release: 5.0.1 (ag)
diff --git a/dist/echarts.common.js b/dist/echarts.common.js
index b44fd98..b4e40cd 100644
--- a/dist/echarts.common.js
+++ b/dist/echarts.common.js
@@ -690,35 +690,6 @@
         noop: noop
     });
 
-    /*! *****************************************************************************

-    Copyright (c) Microsoft Corporation.

-

-    Permission to use, copy, modify, and/or distribute this software for any

-    purpose with or without fee is hereby granted.

-

-    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH

-    REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY

-    AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,

-    INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM

-    LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR

-    OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR

-    PERFORMANCE OF THIS SOFTWARE.

-    ***************************************************************************** */

-    /* global Reflect, Promise */

-

-    var extendStatics$1 = function(d, b) {

-        extendStatics$1 = Object.setPrototypeOf ||

-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||

-            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };

-        return extendStatics$1(d, b);

-    };

-

-    function __extends$1(d, b) {

-        extendStatics$1(d, b);

-        function __() { this.constructor = d; }

-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());

-    }
-
     function create(x, y) {
         if (x == null) {
             x = 0;
@@ -1447,7 +1418,7 @@
         stop(this.event);
     }
     var EmptyProxy = (function (_super) {
-        __extends$1(EmptyProxy, _super);
+        __extends(EmptyProxy, _super);
         function EmptyProxy() {
             var _this = _super !== null && _super.apply(this, arguments) || this;
             _this.handler = null;
@@ -1469,7 +1440,7 @@
         'mouseup', 'mousedown', 'mousemove', 'contextmenu'
     ];
     var Handler = (function (_super) {
-        __extends$1(Handler, _super);
+        __extends(Handler, _super);
         function Handler(storage, painter, proxy, painterRoot) {
             var _this = _super.call(this) || this;
             _this._hovered = new HoveredResult(0, 0);
@@ -5732,7 +5703,7 @@
     var requestAnimationFrame$1 = requestAnimationFrame;
 
     var Animation = (function (_super) {
-        __extends$1(Animation, _super);
+        __extends(Animation, _super);
         function Animation(opts) {
             var _this = _super.call(this) || this;
             _this._running = false;
@@ -6125,7 +6096,7 @@
         return DOMHandlerScope;
     }());
     var HandlerDomProxy = (function (_super) {
-        __extends$1(HandlerDomProxy, _super);
+        __extends(HandlerDomProxy, _super);
         function HandlerDomProxy(dom, painterRoot) {
             var _this = _super.call(this) || this;
             _this.__pointerCapturing = false;
@@ -6162,7 +6133,7 @@
     }(Eventful));
 
     var Group = (function (_super) {
-        __extends$1(Group, _super);
+        __extends(Group, _super);
         function Group(opts) {
             var _this = _super.call(this) || this;
             _this.isGroup = true;
@@ -6582,7 +6553,7 @@
     function registerPainter(name, Ctor) {
         painterCtors[name] = Ctor;
     }
-    var version = '5.0.1';
+    var version = '5.0.3';
 
     var zrender = /*#__PURE__*/Object.freeze({
         __proto__: null,
@@ -8215,7 +8186,7 @@
     DEFAULT_COMMON_STYLE[STYLE_MAGIC_KEY] = true;
     var PRIMARY_STATES_KEYS$1 = ['z', 'z2', 'invisible'];
     var Displayable = (function (_super) {
-        __extends$1(Displayable, _super);
+        __extends(Displayable, _super);
         function Displayable(props) {
             return _super.call(this, props) || this;
         }
@@ -10198,7 +10169,7 @@
         'culling', 'z', 'z2', 'zlevel', 'parent'
     ];
     var Path = (function (_super) {
-        __extends$1(Path, _super);
+        __extends(Path, _super);
         function Path(opts) {
             return _super.call(this, opts) || this;
         }
@@ -10520,7 +10491,7 @@
         };
         Path.extend = function (defaultProps) {
             var Sub = (function (_super) {
-                __extends$1(Sub, _super);
+                __extends(Sub, _super);
                 function Sub(opts) {
                     var _this = _super.call(this, opts) || this;
                     defaultProps.init && defaultProps.init.call(_this, opts);
@@ -10564,7 +10535,7 @@
         miterLimit: 2
     }, DEFAULT_PATH_STYLE);
     var TSpan = (function (_super) {
-        __extends$1(TSpan, _super);
+        __extends(TSpan, _super);
         function TSpan() {
             return _super !== null && _super.apply(this, arguments) || this;
         }
@@ -10633,7 +10604,7 @@
             && source.width && source.height);
     }
     var ZRImage = (function (_super) {
-        __extends$1(ZRImage, _super);
+        __extends(ZRImage, _super);
         function ZRImage() {
             return _super !== null && _super.apply(this, arguments) || this;
         }
@@ -10824,7 +10795,7 @@
     }());
     var subPixelOptimizeOutputShape = {};
     var Rect = (function (_super) {
-        __extends$1(Rect, _super);
+        __extends(Rect, _super);
         function Rect(opts) {
             return _super.call(this, opts) || this;
         }
@@ -10892,7 +10863,7 @@
         }, DEFAULT_COMMON_ANIMATION_PROPS.style)
     };
     var ZRText = (function (_super) {
-        __extends$1(ZRText, _super);
+        __extends(ZRText, _super);
         function ZRText(opts) {
             var _this = _super.call(this) || this;
             _this.type = 'text';
@@ -12231,7 +12202,7 @@
         return path;
     }
     var SVGPath = (function (_super) {
-        __extends$1(SVGPath, _super);
+        __extends(SVGPath, _super);
         function SVGPath() {
             return _super !== null && _super.apply(this, arguments) || this;
         }
@@ -12269,7 +12240,7 @@
     function extendFromString(str, defaultOpts) {
         var innerOpts = createPathOptions(str, defaultOpts);
         var Sub = (function (_super) {
-            __extends$1(Sub, _super);
+            __extends(Sub, _super);
             function Sub(opts) {
                 var _this = _super.call(this, opts) || this;
                 _this.applyTransform = innerOpts.applyTransform;
@@ -12316,7 +12287,7 @@
         return CircleShape;
     }());
     var Circle = (function (_super) {
-        __extends$1(Circle, _super);
+        __extends(Circle, _super);
         function Circle(opts) {
             return _super.call(this, opts) || this;
         }
@@ -12343,7 +12314,7 @@
         return EllipseShape;
     }());
     var Ellipse = (function (_super) {
-        __extends$1(Ellipse, _super);
+        __extends(Ellipse, _super);
         function Ellipse(opts) {
             return _super.call(this, opts) || this;
         }
@@ -12561,7 +12532,7 @@
         return SectorShape;
     }());
     var Sector = (function (_super) {
-        __extends$1(Sector, _super);
+        __extends(Sector, _super);
         function Sector(opts) {
             return _super.call(this, opts) || this;
         }
@@ -12589,7 +12560,7 @@
         return RingShape;
     }());
     var Ring = (function (_super) {
-        __extends$1(Ring, _super);
+        __extends(Ring, _super);
         function Ring(opts) {
             return _super.call(this, opts) || this;
         }
@@ -12753,7 +12724,7 @@
         return PolygonShape;
     }());
     var Polygon = (function (_super) {
-        __extends$1(Polygon, _super);
+        __extends(Polygon, _super);
         function Polygon(opts) {
             return _super.call(this, opts) || this;
         }
@@ -12777,7 +12748,7 @@
         return PolylineShape;
     }());
     var Polyline = (function (_super) {
-        __extends$1(Polyline, _super);
+        __extends(Polyline, _super);
         function Polyline(opts) {
             return _super.call(this, opts) || this;
         }
@@ -12809,7 +12780,7 @@
         return LineShape;
     }());
     var Line = (function (_super) {
-        __extends$1(Line, _super);
+        __extends(Line, _super);
         function Line(opts) {
             return _super.call(this, opts) || this;
         }
@@ -12892,7 +12863,7 @@
         }
     }
     var BezierCurve = (function (_super) {
-        __extends$1(BezierCurve, _super);
+        __extends(BezierCurve, _super);
         function BezierCurve(opts) {
             return _super.call(this, opts) || this;
         }
@@ -12967,7 +12938,7 @@
         return ArcShape;
     }());
     var Arc = (function (_super) {
-        __extends$1(Arc, _super);
+        __extends(Arc, _super);
         function Arc(opts) {
             return _super.call(this, opts) || this;
         }
@@ -12997,7 +12968,7 @@
     Arc.prototype.type = 'arc';
 
     var CompoundPath = (function (_super) {
-        __extends$1(CompoundPath, _super);
+        __extends(CompoundPath, _super);
         function CompoundPath() {
             var _this = _super !== null && _super.apply(this, arguments) || this;
             _this.type = 'compound';
@@ -13057,7 +13028,7 @@
     }());
 
     var LinearGradient = (function (_super) {
-        __extends$1(LinearGradient, _super);
+        __extends(LinearGradient, _super);
         function LinearGradient(x, y, x2, y2, colorStops, globalCoord) {
             var _this = _super.call(this, colorStops) || this;
             _this.x = x == null ? 0 : x;
@@ -13072,7 +13043,7 @@
     }(Gradient));
 
     var RadialGradient = (function (_super) {
-        __extends$1(RadialGradient, _super);
+        __extends(RadialGradient, _super);
         function RadialGradient(x, y, r, colorStops, globalCoord) {
             var _this = _super.call(this, colorStops) || this;
             _this.x = x == null ? 0.5 : x;
@@ -13206,7 +13177,7 @@
 
     var m = [];
     var IncrementalDisplayable = (function (_super) {
-        __extends$1(IncrementalDisplayable, _super);
+        __extends(IncrementalDisplayable, _super);
         function IncrementalDisplayable() {
             var _this = _super !== null && _super.apply(this, arguments) || this;
             _this.notClear = true;
@@ -23947,7 +23918,7 @@
     var hasWindow = typeof window !== 'undefined';
     var version$1 = '5.0.1';
     var dependencies = {
-      zrender: '5.0.2'
+      zrender: '5.0.3'
     };
     var TEST_FRAME_REMAIN_TIME = 1;
     var PRIORITY_PROCESSOR_SERIES_FILTER = 800;
@@ -31663,7 +31634,7 @@
             || value.type === 'radial');
     }
     var GradientManager = (function (_super) {
-        __extends$1(GradientManager, _super);
+        __extends(GradientManager, _super);
         function GradientManager(zrId, svgRoot) {
             return _super.call(this, zrId, svgRoot, ['linearGradient', 'radialGradient'], '__gradient_in_use__') || this;
         }
@@ -31794,7 +31765,7 @@
     }
     var patternDomMap = new WeakMap();
     var PatternManager = (function (_super) {
-        __extends$1(PatternManager, _super);
+        __extends(PatternManager, _super);
         function PatternManager(zrId, svgRoot) {
             return _super.call(this, zrId, svgRoot, ['pattern'], '__pattern_in_use__') || this;
         }
@@ -31938,7 +31909,7 @@
         return clipPaths && clipPaths.length > 0;
     }
     var ClippathManager = (function (_super) {
-        __extends$1(ClippathManager, _super);
+        __extends(ClippathManager, _super);
         function ClippathManager(zrId, svgRoot) {
             var _this = _super.call(this, zrId, svgRoot, 'clipPath', '__clippath_in_use__') || this;
             _this._refGroups = {};
@@ -32040,7 +32011,7 @@
     }(Definable));
 
     var ShadowManager = (function (_super) {
-        __extends$1(ShadowManager, _super);
+        __extends(ShadowManager, _super);
         function ShadowManager(zrId, svgRoot) {
             var _this = _super.call(this, zrId, svgRoot, ['filter'], '__filter_in_use__', '_shadowDom') || this;
             _this._shadowDomMap = {};
@@ -32490,7 +32461,7 @@
         return newDom;
     }
     var Layer = (function (_super) {
-        __extends$1(Layer, _super);
+        __extends(Layer, _super);
         function Layer(id, painter, dpr) {
             var _this = _super.call(this) || this;
             _this.motionBlur = false;
diff --git a/dist/echarts.common.js.map b/dist/echarts.common.js.map
index 257cd33..4568617 100644
--- a/dist/echarts.common.js.map
+++ b/dist/echarts.common.js.map
@@ -1 +1 @@
-{"version":3,"file":"echarts.common.js","sources":["../node_modules/tslib/tslib.es6.js","../node_modules/zrender/lib/core/env.js","../node_modules/zrender/lib/core/util.js","../node_modules/zrender/node_modules/tslib/tslib.es6.js","../node_modules/zrender/lib/core/vector.js","../node_modules/zrender/lib/mixin/Draggable.js","../node_modules/zrender/lib/core/Eventful.js","../node_modules/zrender/lib/core/fourPointsTransform.js","../node_modules/zrender/lib/core/dom.js","../node_modules/zrender/lib/core/event.js","../node_modules/zrender/lib/core/GestureMgr.js","../node_modules/zrender/lib/Handler.js","../node_modules/zrender/lib/core/matrix.js","../node_modules/zrender/lib/core/Transformable.js","../node_modules/zrender/lib/animation/easing.js","../node_modules/zrender/lib/animation/Clip.js","../node_modules/zrender/lib/core/LRU.js","../node_modules/zrender/lib/tool/color.js","../node_modules/zrender/lib/animation/Animator.js","../node_modules/zrender/lib/core/Point.js","../node_modules/zrender/lib/core/BoundingRect.js","../node_modules/zrender/lib/contain/text.js","../node_modules/zrender/lib/config.js","../node_modules/zrender/lib/Element.js","../node_modules/zrender/lib/core/timsort.js","../node_modules/zrender/lib/Storage.js","../node_modules/zrender/lib/animation/requestAnimationFrame.js","../node_modules/zrender/lib/animation/Animation.js","../node_modules/zrender/lib/dom/HandlerProxy.js","../node_modules/zrender/lib/graphic/Group.js","../node_modules/zrender/lib/zrender.js","../lib/util/number.js","../lib/util/log.js","../lib/util/model.js","../lib/util/clazz.js","../lib/model/mixin/makeStyleMapper.js","../lib/model/mixin/areaStyle.js","../node_modules/zrender/lib/graphic/helper/image.js","../node_modules/zrender/lib/graphic/helper/parseText.js","../node_modules/zrender/lib/graphic/Displayable.js","../node_modules/zrender/lib/core/curve.js","../node_modules/zrender/lib/core/bbox.js","../node_modules/zrender/lib/core/PathProxy.js","../node_modules/zrender/lib/contain/line.js","../node_modules/zrender/lib/contain/cubic.js","../node_modules/zrender/lib/contain/quadratic.js","../node_modules/zrender/lib/contain/util.js","../node_modules/zrender/lib/contain/arc.js","../node_modules/zrender/lib/contain/windingLine.js","../node_modules/zrender/lib/contain/path.js","../node_modules/zrender/lib/graphic/Path.js","../node_modules/zrender/lib/graphic/TSpan.js","../node_modules/zrender/lib/graphic/Image.js","../node_modules/zrender/lib/graphic/helper/roundRect.js","../node_modules/zrender/lib/graphic/helper/subPixelOptimize.js","../node_modules/zrender/lib/graphic/shape/Rect.js","../node_modules/zrender/lib/graphic/Text.js","../lib/util/innerStore.js","../lib/util/states.js","../node_modules/zrender/lib/tool/transformPath.js","../node_modules/zrender/lib/tool/path.js","../node_modules/zrender/lib/graphic/shape/Circle.js","../node_modules/zrender/lib/graphic/shape/Ellipse.js","../node_modules/zrender/lib/graphic/helper/roundSector.js","../node_modules/zrender/lib/graphic/shape/Sector.js","../node_modules/zrender/lib/graphic/shape/Ring.js","../node_modules/zrender/lib/graphic/helper/smoothSpline.js","../node_modules/zrender/lib/graphic/helper/smoothBezier.js","../node_modules/zrender/lib/graphic/helper/poly.js","../node_modules/zrender/lib/graphic/shape/Polygon.js","../node_modules/zrender/lib/graphic/shape/Polyline.js","../node_modules/zrender/lib/graphic/shape/Line.js","../node_modules/zrender/lib/graphic/shape/BezierCurve.js","../node_modules/zrender/lib/graphic/shape/Arc.js","../node_modules/zrender/lib/graphic/CompoundPath.js","../node_modules/zrender/lib/graphic/Gradient.js","../node_modules/zrender/lib/graphic/LinearGradient.js","../node_modules/zrender/lib/graphic/RadialGradient.js","../node_modules/zrender/lib/core/OrientedBoundingRect.js","../node_modules/zrender/lib/graphic/IncrementalDisplayable.js","../lib/util/graphic.js","../lib/label/labelStyle.js","../lib/model/mixin/textStyle.js","../lib/model/mixin/lineStyle.js","../lib/model/mixin/itemStyle.js","../lib/model/Model.js","../lib/util/component.js","../lib/i18n/langEN.js","../lib/i18n/langZH.js","../lib/core/locale.js","../lib/util/time.js","../lib/legacy/getTextRect.js","../lib/util/format.js","../lib/util/layout.js","../lib/model/Component.js","../lib/model/globalDefault.js","../lib/util/types.js","../lib/data/helper/sourceHelper.js","../lib/model/internalComponentCreator.js","../lib/model/mixin/palette.js","../lib/model/Global.js","../lib/core/ExtensionAPI.js","../lib/core/CoordinateSystem.js","../lib/model/OptionManager.js","../lib/preprocessor/helper/compatStyle.js","../lib/preprocessor/backwardCompat.js","../lib/processor/dataStack.js","../lib/data/Source.js","../lib/data/helper/dataProvider.js","../lib/model/mixin/dataFormat.js","../lib/core/task.js","../lib/data/helper/dataValueHelper.js","../lib/data/helper/transform.js","../lib/data/helper/sourceManager.js","../lib/component/tooltip/tooltipMarkup.js","../lib/component/tooltip/seriesFormatTooltip.js","../lib/model/Series.js","../lib/view/Component.js","../lib/chart/helper/createRenderPlanner.js","../lib/view/Chart.js","../lib/util/throttle.js","../lib/visual/style.js","../lib/loading/default.js","../lib/core/Scheduler.js","../lib/theme/light.js","../lib/theme/dark.js","../node_modules/zrender/lib/tool/parseXML.js","../lib/coord/geo/mapDataStorage.js","../lib/util/ECEventProcessor.js","../lib/visual/symbol.js","../lib/visual/helper.js","../lib/label/labelGuideHelper.js","../lib/label/labelLayoutHelper.js","../lib/label/LabelManager.js","../lib/legacy/dataSelectAction.js","../lib/util/event.js","../node_modules/zrender/lib/core/WeakMap.js","../lib/util/symbol.js","../node_modules/zrender/lib/canvas/helper.js","../node_modules/zrender/lib/graphic/helper/dashStyle.js","../node_modules/zrender/lib/canvas/graphic.js","../lib/util/decal.js","../lib/visual/decal.js","../lib/core/echarts.js","../lib/extension.js","../lib/data/DataDiffer.js","../lib/data/helper/dimensionHelper.js","../lib/data/DataDimensionInfo.js","../lib/data/List.js","../lib/data/helper/completeDimensions.js","../lib/data/helper/createDimensions.js","../lib/model/referHelper.js","../lib/data/helper/dataStackHelper.js","../lib/chart/helper/createListFromArray.js","../lib/scale/Scale.js","../lib/data/OrdinalMeta.js","../lib/scale/helper.js","../lib/scale/Ordinal.js","../lib/scale/Interval.js","../lib/layout/barGrid.js","../lib/scale/Time.js","../lib/scale/Log.js","../lib/coord/scaleRawExtentInfo.js","../lib/coord/axisHelper.js","../lib/coord/axisModelCommonMixin.js","../lib/export/api/helper.js","../node_modules/zrender/lib/contain/polygon.js","../lib/coord/geo/Region.js","../lib/coord/geo/parseGeoJson.js","../lib/coord/axisTickLabelBuilder.js","../lib/coord/Axis.js","../lib/export/api.js","../node_modules/zrender/lib/svg/core.js","../node_modules/zrender/lib/core/arrayDiff.js","../node_modules/zrender/lib/svg/graphic.js","../node_modules/zrender/lib/svg/helper/Definable.js","../node_modules/zrender/lib/svg/helper/GradientManager.js","../node_modules/zrender/lib/svg/helper/PatternManager.js","../node_modules/zrender/lib/svg/helper/ClippathManager.js","../node_modules/zrender/lib/svg/helper/ShadowManager.js","../node_modules/zrender/lib/svg/Painter.js","../lib/renderer/installSVGRenderer.js","../node_modules/zrender/lib/canvas/Layer.js","../node_modules/zrender/lib/canvas/Painter.js","../lib/renderer/installCanvasRenderer.js","../lib/chart/line/LineSeries.js","../lib/chart/helper/labelHelper.js","../lib/chart/helper/Symbol.js","../lib/chart/helper/SymbolDraw.js","../lib/chart/line/helper.js","../lib/util/vendor.js","../lib/chart/line/lineAnimationDiff.js","../lib/chart/line/poly.js","../lib/chart/helper/createClipPathFromCoordSys.js","../lib/coord/CoordinateSystem.js","../lib/chart/line/LineView.js","../lib/layout/points.js","../lib/processor/dataSample.js","../lib/chart/line/install.js","../lib/chart/bar/BaseBarSeries.js","../lib/chart/bar/BarSeries.js","../lib/util/shape/sausage.js","../lib/chart/bar/BarView.js","../lib/chart/bar/install.js","../lib/chart/pie/pieLayout.js","../lib/processor/dataFilter.js","../lib/chart/pie/labelLayout.js","../lib/chart/helper/pieHelper.js","../lib/chart/pie/PieView.js","../lib/chart/helper/createListSimply.js","../lib/visual/LegendVisualProvider.js","../lib/chart/pie/PieSeries.js","../lib/chart/pie/install.js","../lib/chart/scatter/ScatterSeries.js","../lib/chart/helper/LargeSymbolDraw.js","../lib/chart/scatter/ScatterView.js","../lib/coord/cartesian/GridModel.js","../lib/coord/cartesian/AxisModel.js","../lib/coord/axisDefault.js","../lib/coord/axisCommonTypes.js","../lib/coord/axisModelCreator.js","../lib/coord/cartesian/Cartesian.js","../lib/coord/cartesian/Cartesian2D.js","../lib/coord/cartesian/Axis2D.js","../lib/coord/cartesian/cartesianAxisHelper.js","../lib/coord/cartesian/Grid.js","../lib/component/axis/AxisBuilder.js","../lib/component/axisPointer/modelHelper.js","../lib/component/axis/AxisView.js","../lib/component/axis/axisSplitHelper.js","../lib/component/axis/CartesianAxisView.js","../lib/component/grid/installSimple.js","../lib/chart/scatter/install.js","../lib/component/axisPointer/BaseAxisPointer.js","../lib/component/axisPointer/viewHelper.js","../lib/component/axisPointer/CartesianAxisPointer.js","../lib/component/axisPointer/AxisPointerModel.js","../lib/component/axisPointer/globalListener.js","../lib/component/axisPointer/AxisPointerView.js","../lib/component/axisPointer/findPointFromSeries.js","../lib/component/axisPointer/axisTrigger.js","../lib/component/axisPointer/install.js","../lib/component/grid/install.js","../lib/util/styleCompat.js","../lib/component/graphic/install.js","../lib/component/dataZoom/helper.js","../lib/component/dataZoom/DataZoomModel.js","../lib/component/dataZoom/SelectZoomModel.js","../lib/component/dataZoom/DataZoomView.js","../lib/component/dataZoom/SelectZoomView.js","../lib/component/helper/sliderMove.js","../lib/component/dataZoom/AxisProxy.js","../lib/component/dataZoom/dataZoomProcessor.js","../lib/component/dataZoom/dataZoomAction.js","../lib/component/dataZoom/installCommon.js","../lib/component/dataZoom/installDataZoomSelect.js","../lib/component/toolbox/featureManager.js","../lib/component/toolbox/ToolboxModel.js","../lib/component/helper/listComponent.js","../lib/component/toolbox/ToolboxView.js","../lib/component/toolbox/feature/SaveAsImage.js","../lib/component/toolbox/feature/MagicType.js","../lib/component/toolbox/feature/DataView.js","../lib/component/dataZoom/history.js","../lib/component/toolbox/feature/Restore.js","../lib/component/helper/interactionMutex.js","../lib/component/helper/BrushController.js","../lib/component/helper/cursorHelper.js","../lib/component/helper/brushHelper.js","../lib/component/helper/BrushTargetManager.js","../lib/component/toolbox/feature/DataZoom.js","../lib/component/toolbox/install.js","../lib/component/tooltip/TooltipModel.js","../lib/component/tooltip/helper.js","../lib/component/tooltip/TooltipHTMLContent.js","../lib/component/tooltip/TooltipRichContent.js","../lib/component/tooltip/TooltipView.js","../lib/component/tooltip/install.js","../lib/component/title/install.js","../lib/component/marker/MarkerModel.js","../lib/component/marker/MarkPointModel.js","../lib/component/marker/markerHelper.js","../lib/component/marker/MarkerView.js","../lib/component/marker/MarkPointView.js","../lib/component/marker/installMarkPoint.js","../lib/component/marker/MarkLineModel.js","../lib/chart/helper/LinePath.js","../lib/chart/helper/Line.js","../lib/chart/helper/LineDraw.js","../lib/component/marker/MarkLineView.js","../lib/component/marker/installMarkLine.js","../lib/component/marker/MarkAreaModel.js","../lib/component/marker/MarkAreaView.js","../lib/component/marker/installMarkArea.js","../lib/component/legend/LegendModel.js","../lib/component/legend/LegendView.js","../lib/component/legend/legendFilter.js","../lib/component/legend/legendAction.js","../lib/component/legend/installLegendPlain.js","../lib/component/legend/ScrollableLegendModel.js","../lib/component/legend/ScrollableLegendView.js","../lib/component/legend/scrollableLegendAction.js","../lib/component/legend/installLegendScroll.js","../lib/component/legend/install.js","../lib/component/dataZoom/InsideZoomModel.js","../lib/component/helper/RoamController.js","../lib/component/dataZoom/roams.js","../lib/component/dataZoom/InsideZoomView.js","../lib/component/dataZoom/installDataZoomInside.js","../lib/component/dataZoom/SliderZoomModel.js","../lib/component/dataZoom/SliderZoomView.js","../lib/component/dataZoom/installDataZoomSlider.js","../lib/component/dataZoom/install.js","../lib/visual/aria.js","../lib/component/aria/preprocessor.js","../lib/component/aria/install.js","../lib/component/dataset/install.js","../index.common.js"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar 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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport 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\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\nexport 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};\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to get private field on non-instance\");\r\n    }\r\n    return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to set private field on non-instance\");\r\n    }\r\n    privateMap.set(receiver, value);\r\n    return value;\r\n}\r\n","var Browser = (function () {\n    function Browser() {\n        this.firefox = false;\n        this.ie = false;\n        this.edge = false;\n        this.newEdge = false;\n        this.weChat = false;\n    }\n    return Browser;\n}());\nvar Env = (function () {\n    function Env() {\n        this.browser = new Browser();\n        this.node = false;\n        this.wxa = false;\n        this.worker = false;\n        this.canvasSupported = false;\n        this.svgSupported = false;\n        this.touchEventsSupported = false;\n        this.pointerEventsSupported = false;\n        this.domSupported = false;\n    }\n    return Env;\n}());\nvar env = new Env();\nif (typeof wx === 'object' && typeof wx.getSystemInfoSync === 'function') {\n    env.wxa = true;\n    env.canvasSupported = true;\n    env.touchEventsSupported = true;\n}\nelse if (typeof document === 'undefined' && typeof self !== 'undefined') {\n    env.worker = true;\n    env.canvasSupported = true;\n}\nelse if (typeof navigator === 'undefined') {\n    env.node = true;\n    env.canvasSupported = true;\n    env.svgSupported = true;\n}\nelse {\n    detect(navigator.userAgent, env);\n}\nfunction detect(ua, env) {\n    var browser = env.browser;\n    var firefox = ua.match(/Firefox\\/([\\d.]+)/);\n    var ie = ua.match(/MSIE\\s([\\d.]+)/)\n        || ua.match(/Trident\\/.+?rv:(([\\d.]+))/);\n    var edge = ua.match(/Edge?\\/([\\d.]+)/);\n    var weChat = (/micromessenger/i).test(ua);\n    if (firefox) {\n        browser.firefox = true;\n        browser.version = firefox[1];\n    }\n    if (ie) {\n        browser.ie = true;\n        browser.version = ie[1];\n    }\n    if (edge) {\n        browser.edge = true;\n        browser.version = edge[1];\n        browser.newEdge = +edge[1].split('.')[0] > 18;\n    }\n    if (weChat) {\n        browser.weChat = true;\n    }\n    env.canvasSupported = !!document.createElement('canvas').getContext;\n    env.svgSupported = typeof SVGRect !== 'undefined';\n    env.touchEventsSupported = 'ontouchstart' in window && !browser.ie && !browser.edge;\n    env.pointerEventsSupported = 'onpointerdown' in window\n        && (browser.edge || (browser.ie && +browser.version >= 11));\n    env.domSupported = typeof document !== 'undefined';\n}\nexport default env;\n","var BUILTIN_OBJECT = {\n    '[object Function]': true,\n    '[object RegExp]': true,\n    '[object Date]': true,\n    '[object Error]': true,\n    '[object CanvasGradient]': true,\n    '[object CanvasPattern]': true,\n    '[object Image]': true,\n    '[object Canvas]': true\n};\nvar TYPED_ARRAY = {\n    '[object Int8Array]': true,\n    '[object Uint8Array]': true,\n    '[object Uint8ClampedArray]': true,\n    '[object Int16Array]': true,\n    '[object Uint16Array]': true,\n    '[object Int32Array]': true,\n    '[object Uint32Array]': true,\n    '[object Float32Array]': true,\n    '[object Float64Array]': true\n};\nvar objToString = Object.prototype.toString;\nvar arrayProto = Array.prototype;\nvar nativeForEach = arrayProto.forEach;\nvar nativeFilter = arrayProto.filter;\nvar nativeSlice = arrayProto.slice;\nvar nativeMap = arrayProto.map;\nvar ctorFunction = function () { }.constructor;\nvar protoFunction = ctorFunction ? ctorFunction.prototype : null;\nvar methods = {};\nexport function $override(name, fn) {\n    methods[name] = fn;\n}\nvar idStart = 0x0907;\nexport function guid() {\n    return idStart++;\n}\nexport function logError() {\n    var args = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n    }\n    if (typeof console !== 'undefined') {\n        console.error.apply(console, args);\n    }\n}\nexport function clone(source) {\n    if (source == null || typeof source !== 'object') {\n        return source;\n    }\n    var result = source;\n    var typeStr = objToString.call(source);\n    if (typeStr === '[object Array]') {\n        if (!isPrimitive(source)) {\n            result = [];\n            for (var i = 0, len = source.length; i < len; i++) {\n                result[i] = clone(source[i]);\n            }\n        }\n    }\n    else if (TYPED_ARRAY[typeStr]) {\n        if (!isPrimitive(source)) {\n            var Ctor = source.constructor;\n            if (Ctor.from) {\n                result = Ctor.from(source);\n            }\n            else {\n                result = new Ctor(source.length);\n                for (var i = 0, len = source.length; i < len; i++) {\n                    result[i] = clone(source[i]);\n                }\n            }\n        }\n    }\n    else if (!BUILTIN_OBJECT[typeStr] && !isPrimitive(source) && !isDom(source)) {\n        result = {};\n        for (var key in source) {\n            if (source.hasOwnProperty(key)) {\n                result[key] = clone(source[key]);\n            }\n        }\n    }\n    return result;\n}\nexport function merge(target, source, overwrite) {\n    if (!isObject(source) || !isObject(target)) {\n        return overwrite ? clone(source) : target;\n    }\n    for (var key in source) {\n        if (source.hasOwnProperty(key)) {\n            var targetProp = target[key];\n            var sourceProp = source[key];\n            if (isObject(sourceProp)\n                && isObject(targetProp)\n                && !isArray(sourceProp)\n                && !isArray(targetProp)\n                && !isDom(sourceProp)\n                && !isDom(targetProp)\n                && !isBuiltInObject(sourceProp)\n                && !isBuiltInObject(targetProp)\n                && !isPrimitive(sourceProp)\n                && !isPrimitive(targetProp)) {\n                merge(targetProp, sourceProp, overwrite);\n            }\n            else if (overwrite || !(key in target)) {\n                target[key] = clone(source[key]);\n            }\n        }\n    }\n    return target;\n}\nexport function mergeAll(targetAndSources, overwrite) {\n    var result = targetAndSources[0];\n    for (var i = 1, len = targetAndSources.length; i < len; i++) {\n        result = merge(result, targetAndSources[i], overwrite);\n    }\n    return result;\n}\nexport function extend(target, source) {\n    if (Object.assign) {\n        Object.assign(target, source);\n    }\n    else {\n        for (var key in source) {\n            if (source.hasOwnProperty(key)) {\n                target[key] = source[key];\n            }\n        }\n    }\n    return target;\n}\nexport function defaults(target, source, overlay) {\n    var keysArr = keys(source);\n    for (var i = 0; i < keysArr.length; i++) {\n        var key = keysArr[i];\n        if ((overlay ? source[key] != null : target[key] == null)) {\n            target[key] = source[key];\n        }\n    }\n    return target;\n}\nexport var createCanvas = function () {\n    return methods.createCanvas();\n};\nmethods.createCanvas = function () {\n    return document.createElement('canvas');\n};\nexport function indexOf(array, value) {\n    if (array) {\n        if (array.indexOf) {\n            return array.indexOf(value);\n        }\n        for (var i = 0, len = array.length; i < len; i++) {\n            if (array[i] === value) {\n                return i;\n            }\n        }\n    }\n    return -1;\n}\nexport function inherits(clazz, baseClazz) {\n    var clazzPrototype = clazz.prototype;\n    function F() { }\n    F.prototype = baseClazz.prototype;\n    clazz.prototype = new F();\n    for (var prop in clazzPrototype) {\n        if (clazzPrototype.hasOwnProperty(prop)) {\n            clazz.prototype[prop] = clazzPrototype[prop];\n        }\n    }\n    clazz.prototype.constructor = clazz;\n    clazz.superClass = baseClazz;\n}\nexport function mixin(target, source, override) {\n    target = 'prototype' in target ? target.prototype : target;\n    source = 'prototype' in source ? source.prototype : source;\n    if (Object.getOwnPropertyNames) {\n        var keyList = Object.getOwnPropertyNames(source);\n        for (var i = 0; i < keyList.length; i++) {\n            var key = keyList[i];\n            if (key !== 'constructor') {\n                if ((override ? source[key] != null : target[key] == null)) {\n                    target[key] = source[key];\n                }\n            }\n        }\n    }\n    else {\n        defaults(target, source, override);\n    }\n}\nexport function isArrayLike(data) {\n    if (!data) {\n        return false;\n    }\n    if (typeof data === 'string') {\n        return false;\n    }\n    return typeof data.length === 'number';\n}\nexport function each(arr, cb, context) {\n    if (!(arr && cb)) {\n        return;\n    }\n    if (arr.forEach && arr.forEach === nativeForEach) {\n        arr.forEach(cb, context);\n    }\n    else if (arr.length === +arr.length) {\n        for (var i = 0, len = arr.length; i < len; i++) {\n            cb.call(context, arr[i], i, arr);\n        }\n    }\n    else {\n        for (var key in arr) {\n            if (arr.hasOwnProperty(key)) {\n                cb.call(context, arr[key], key, arr);\n            }\n        }\n    }\n}\nexport function map(arr, cb, context) {\n    if (!arr) {\n        return [];\n    }\n    if (!cb) {\n        return slice(arr);\n    }\n    if (arr.map && arr.map === nativeMap) {\n        return arr.map(cb, context);\n    }\n    else {\n        var result = [];\n        for (var i = 0, len = arr.length; i < len; i++) {\n            result.push(cb.call(context, arr[i], i, arr));\n        }\n        return result;\n    }\n}\nexport function reduce(arr, cb, memo, context) {\n    if (!(arr && cb)) {\n        return;\n    }\n    for (var i = 0, len = arr.length; i < len; i++) {\n        memo = cb.call(context, memo, arr[i], i, arr);\n    }\n    return memo;\n}\nexport function filter(arr, cb, context) {\n    if (!arr) {\n        return [];\n    }\n    if (!cb) {\n        return slice(arr);\n    }\n    if (arr.filter && arr.filter === nativeFilter) {\n        return arr.filter(cb, context);\n    }\n    else {\n        var result = [];\n        for (var i = 0, len = arr.length; i < len; i++) {\n            if (cb.call(context, arr[i], i, arr)) {\n                result.push(arr[i]);\n            }\n        }\n        return result;\n    }\n}\nexport function find(arr, cb, context) {\n    if (!(arr && cb)) {\n        return;\n    }\n    for (var i = 0, len = arr.length; i < len; i++) {\n        if (cb.call(context, arr[i], i, arr)) {\n            return arr[i];\n        }\n    }\n}\nexport function keys(obj) {\n    if (!obj) {\n        return [];\n    }\n    if (Object.keys) {\n        return Object.keys(obj);\n    }\n    var keyList = [];\n    for (var key in obj) {\n        if (obj.hasOwnProperty(key)) {\n            keyList.push(key);\n        }\n    }\n    return keyList;\n}\nfunction bindPolyfill(func, context) {\n    var args = [];\n    for (var _i = 2; _i < arguments.length; _i++) {\n        args[_i - 2] = arguments[_i];\n    }\n    return function () {\n        return func.apply(context, args.concat(nativeSlice.call(arguments)));\n    };\n}\nexport var bind = (protoFunction && isFunction(protoFunction.bind))\n    ? protoFunction.call.bind(protoFunction.bind)\n    : bindPolyfill;\nfunction curry(func) {\n    var args = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        args[_i - 1] = arguments[_i];\n    }\n    return function () {\n        return func.apply(this, args.concat(nativeSlice.call(arguments)));\n    };\n}\nexport { curry };\nexport function isArray(value) {\n    if (Array.isArray) {\n        return Array.isArray(value);\n    }\n    return objToString.call(value) === '[object Array]';\n}\nexport function isFunction(value) {\n    return typeof value === 'function';\n}\nexport function isString(value) {\n    return typeof value === 'string';\n}\nexport function isStringSafe(value) {\n    return objToString.call(value) === '[object String]';\n}\nexport function isNumber(value) {\n    return typeof value === 'number';\n}\nexport function isObject(value) {\n    var type = typeof value;\n    return type === 'function' || (!!value && type === 'object');\n}\nexport function isBuiltInObject(value) {\n    return !!BUILTIN_OBJECT[objToString.call(value)];\n}\nexport function isTypedArray(value) {\n    return !!TYPED_ARRAY[objToString.call(value)];\n}\nexport function isDom(value) {\n    return typeof value === 'object'\n        && typeof value.nodeType === 'number'\n        && typeof value.ownerDocument === 'object';\n}\nexport function isGradientObject(value) {\n    return value.colorStops != null;\n}\nexport function isPatternObject(value) {\n    return value.image != null;\n}\nexport function isRegExp(value) {\n    return objToString.call(value) === '[object RegExp]';\n}\nexport function eqNaN(value) {\n    return value !== value;\n}\nexport function retrieve() {\n    var args = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n    }\n    for (var i = 0, len = args.length; i < len; i++) {\n        if (args[i] != null) {\n            return args[i];\n        }\n    }\n}\nexport function retrieve2(value0, value1) {\n    return value0 != null\n        ? value0\n        : value1;\n}\nexport function retrieve3(value0, value1, value2) {\n    return value0 != null\n        ? value0\n        : value1 != null\n            ? value1\n            : value2;\n}\nexport function slice(arr) {\n    var args = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        args[_i - 1] = arguments[_i];\n    }\n    return nativeSlice.apply(arr, args);\n}\nexport function normalizeCssArray(val) {\n    if (typeof (val) === 'number') {\n        return [val, val, val, val];\n    }\n    var len = val.length;\n    if (len === 2) {\n        return [val[0], val[1], val[0], val[1]];\n    }\n    else if (len === 3) {\n        return [val[0], val[1], val[2], val[1]];\n    }\n    return val;\n}\nexport function assert(condition, message) {\n    if (!condition) {\n        throw new Error(message);\n    }\n}\nexport function trim(str) {\n    if (str == null) {\n        return null;\n    }\n    else if (typeof str.trim === 'function') {\n        return str.trim();\n    }\n    else {\n        return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n    }\n}\nvar primitiveKey = '__ec_primitive__';\nexport function setAsPrimitive(obj) {\n    obj[primitiveKey] = true;\n}\nexport function isPrimitive(obj) {\n    return obj[primitiveKey];\n}\nvar HashMap = (function () {\n    function HashMap(obj) {\n        this.data = {};\n        var isArr = isArray(obj);\n        this.data = {};\n        var thisMap = this;\n        (obj instanceof HashMap)\n            ? obj.each(visit)\n            : (obj && each(obj, visit));\n        function visit(value, key) {\n            isArr ? thisMap.set(value, key) : thisMap.set(key, value);\n        }\n    }\n    HashMap.prototype.get = function (key) {\n        return this.data.hasOwnProperty(key) ? this.data[key] : null;\n    };\n    HashMap.prototype.set = function (key, value) {\n        return (this.data[key] = value);\n    };\n    HashMap.prototype.each = function (cb, context) {\n        for (var key in this.data) {\n            if (this.data.hasOwnProperty(key)) {\n                cb.call(context, this.data[key], key);\n            }\n        }\n    };\n    HashMap.prototype.keys = function () {\n        return keys(this.data);\n    };\n    HashMap.prototype.removeKey = function (key) {\n        delete this.data[key];\n    };\n    return HashMap;\n}());\nexport { HashMap };\nexport function createHashMap(obj) {\n    return new HashMap(obj);\n}\nexport function concatArray(a, b) {\n    var newArray = new a.constructor(a.length + b.length);\n    for (var i = 0; i < a.length; i++) {\n        newArray[i] = a[i];\n    }\n    var offset = a.length;\n    for (var i = 0; i < b.length; i++) {\n        newArray[i + offset] = b[i];\n    }\n    return newArray;\n}\nexport function createObject(proto, properties) {\n    var obj;\n    if (Object.create) {\n        obj = Object.create(proto);\n    }\n    else {\n        var StyleCtor = function () { };\n        StyleCtor.prototype = proto;\n        obj = new StyleCtor();\n    }\n    if (properties) {\n        extend(obj, properties);\n    }\n    return obj;\n}\nexport function hasOwn(own, prop) {\n    return own.hasOwnProperty(prop);\n}\nexport function noop() { }\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar 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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport 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\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\nexport 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};\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to get private field on non-instance\");\r\n    }\r\n    return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to set private field on non-instance\");\r\n    }\r\n    privateMap.set(receiver, value);\r\n    return value;\r\n}\r\n","export function create(x, y) {\n    if (x == null) {\n        x = 0;\n    }\n    if (y == null) {\n        y = 0;\n    }\n    return [x, y];\n}\nexport function copy(out, v) {\n    out[0] = v[0];\n    out[1] = v[1];\n    return out;\n}\nexport function clone(v) {\n    return [v[0], v[1]];\n}\nexport function set(out, a, b) {\n    out[0] = a;\n    out[1] = b;\n    return out;\n}\nexport function add(out, v1, v2) {\n    out[0] = v1[0] + v2[0];\n    out[1] = v1[1] + v2[1];\n    return out;\n}\nexport function scaleAndAdd(out, v1, v2, a) {\n    out[0] = v1[0] + v2[0] * a;\n    out[1] = v1[1] + v2[1] * a;\n    return out;\n}\nexport function sub(out, v1, v2) {\n    out[0] = v1[0] - v2[0];\n    out[1] = v1[1] - v2[1];\n    return out;\n}\nexport function len(v) {\n    return Math.sqrt(lenSquare(v));\n}\nexport var length = len;\nexport function lenSquare(v) {\n    return v[0] * v[0] + v[1] * v[1];\n}\nexport var lengthSquare = lenSquare;\nexport function mul(out, v1, v2) {\n    out[0] = v1[0] * v2[0];\n    out[1] = v1[1] * v2[1];\n    return out;\n}\nexport function div(out, v1, v2) {\n    out[0] = v1[0] / v2[0];\n    out[1] = v1[1] / v2[1];\n    return out;\n}\nexport function dot(v1, v2) {\n    return v1[0] * v2[0] + v1[1] * v2[1];\n}\nexport function scale(out, v, s) {\n    out[0] = v[0] * s;\n    out[1] = v[1] * s;\n    return out;\n}\nexport function normalize(out, v) {\n    var d = len(v);\n    if (d === 0) {\n        out[0] = 0;\n        out[1] = 0;\n    }\n    else {\n        out[0] = v[0] / d;\n        out[1] = v[1] / d;\n    }\n    return out;\n}\nexport function distance(v1, v2) {\n    return Math.sqrt((v1[0] - v2[0]) * (v1[0] - v2[0])\n        + (v1[1] - v2[1]) * (v1[1] - v2[1]));\n}\nexport var dist = distance;\nexport function distanceSquare(v1, v2) {\n    return (v1[0] - v2[0]) * (v1[0] - v2[0])\n        + (v1[1] - v2[1]) * (v1[1] - v2[1]);\n}\nexport var distSquare = distanceSquare;\nexport function negate(out, v) {\n    out[0] = -v[0];\n    out[1] = -v[1];\n    return out;\n}\nexport function lerp(out, v1, v2, t) {\n    out[0] = v1[0] + t * (v2[0] - v1[0]);\n    out[1] = v1[1] + t * (v2[1] - v1[1]);\n    return out;\n}\nexport function applyTransform(out, v, m) {\n    var x = v[0];\n    var y = v[1];\n    out[0] = m[0] * x + m[2] * y + m[4];\n    out[1] = m[1] * x + m[3] * y + m[5];\n    return out;\n}\nexport function min(out, v1, v2) {\n    out[0] = Math.min(v1[0], v2[0]);\n    out[1] = Math.min(v1[1], v2[1]);\n    return out;\n}\nexport function max(out, v1, v2) {\n    out[0] = Math.max(v1[0], v2[0]);\n    out[1] = Math.max(v1[1], v2[1]);\n    return out;\n}\n","var Param = (function () {\n    function Param(target, e) {\n        this.target = target;\n        this.topTarget = e && e.topTarget;\n    }\n    return Param;\n}());\nvar Draggable = (function () {\n    function Draggable(handler) {\n        this.handler = handler;\n        handler.on('mousedown', this._dragStart, this);\n        handler.on('mousemove', this._drag, this);\n        handler.on('mouseup', this._dragEnd, this);\n    }\n    Draggable.prototype._dragStart = function (e) {\n        var draggingTarget = e.target;\n        while (draggingTarget && !draggingTarget.draggable) {\n            draggingTarget = draggingTarget.parent;\n        }\n        if (draggingTarget) {\n            this._draggingTarget = draggingTarget;\n            draggingTarget.dragging = true;\n            this._x = e.offsetX;\n            this._y = e.offsetY;\n            this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragstart', e.event);\n        }\n    };\n    Draggable.prototype._drag = function (e) {\n        var draggingTarget = this._draggingTarget;\n        if (draggingTarget) {\n            var x = e.offsetX;\n            var y = e.offsetY;\n            var dx = x - this._x;\n            var dy = y - this._y;\n            this._x = x;\n            this._y = y;\n            draggingTarget.drift(dx, dy, e);\n            this.handler.dispatchToElement(new Param(draggingTarget, e), 'drag', e.event);\n            var dropTarget = this.handler.findHover(x, y, draggingTarget).target;\n            var lastDropTarget = this._dropTarget;\n            this._dropTarget = dropTarget;\n            if (draggingTarget !== dropTarget) {\n                if (lastDropTarget && dropTarget !== lastDropTarget) {\n                    this.handler.dispatchToElement(new Param(lastDropTarget, e), 'dragleave', e.event);\n                }\n                if (dropTarget && dropTarget !== lastDropTarget) {\n                    this.handler.dispatchToElement(new Param(dropTarget, e), 'dragenter', e.event);\n                }\n            }\n        }\n    };\n    Draggable.prototype._dragEnd = function (e) {\n        var draggingTarget = this._draggingTarget;\n        if (draggingTarget) {\n            draggingTarget.dragging = false;\n        }\n        this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragend', e.event);\n        if (this._dropTarget) {\n            this.handler.dispatchToElement(new Param(this._dropTarget, e), 'drop', e.event);\n        }\n        this._draggingTarget = null;\n        this._dropTarget = null;\n    };\n    return Draggable;\n}());\nexport default Draggable;\n","var Eventful = (function () {\n    function Eventful(eventProcessors) {\n        if (eventProcessors) {\n            this._$eventProcessor = eventProcessors;\n        }\n    }\n    Eventful.prototype.on = function (event, query, handler, context) {\n        if (!this._$handlers) {\n            this._$handlers = {};\n        }\n        var _h = this._$handlers;\n        if (typeof query === 'function') {\n            context = handler;\n            handler = query;\n            query = null;\n        }\n        if (!handler || !event) {\n            return this;\n        }\n        var eventProcessor = this._$eventProcessor;\n        if (query != null && eventProcessor && eventProcessor.normalizeQuery) {\n            query = eventProcessor.normalizeQuery(query);\n        }\n        if (!_h[event]) {\n            _h[event] = [];\n        }\n        for (var i = 0; i < _h[event].length; i++) {\n            if (_h[event][i].h === handler) {\n                return this;\n            }\n        }\n        var wrap = {\n            h: handler,\n            query: query,\n            ctx: (context || this),\n            callAtLast: handler.zrEventfulCallAtLast\n        };\n        var lastIndex = _h[event].length - 1;\n        var lastWrap = _h[event][lastIndex];\n        (lastWrap && lastWrap.callAtLast)\n            ? _h[event].splice(lastIndex, 0, wrap)\n            : _h[event].push(wrap);\n        return this;\n    };\n    Eventful.prototype.isSilent = function (eventName) {\n        var _h = this._$handlers;\n        return !_h || !_h[eventName] || !_h[eventName].length;\n    };\n    Eventful.prototype.off = function (eventType, handler) {\n        var _h = this._$handlers;\n        if (!_h) {\n            return this;\n        }\n        if (!eventType) {\n            this._$handlers = {};\n            return this;\n        }\n        if (handler) {\n            if (_h[eventType]) {\n                var newList = [];\n                for (var i = 0, l = _h[eventType].length; i < l; i++) {\n                    if (_h[eventType][i].h !== handler) {\n                        newList.push(_h[eventType][i]);\n                    }\n                }\n                _h[eventType] = newList;\n            }\n            if (_h[eventType] && _h[eventType].length === 0) {\n                delete _h[eventType];\n            }\n        }\n        else {\n            delete _h[eventType];\n        }\n        return this;\n    };\n    Eventful.prototype.trigger = function (eventType) {\n        var args = [];\n        for (var _i = 1; _i < arguments.length; _i++) {\n            args[_i - 1] = arguments[_i];\n        }\n        if (!this._$handlers) {\n            return this;\n        }\n        var _h = this._$handlers[eventType];\n        var eventProcessor = this._$eventProcessor;\n        if (_h) {\n            var argLen = args.length;\n            var len = _h.length;\n            for (var i = 0; i < len; i++) {\n                var hItem = _h[i];\n                if (eventProcessor\n                    && eventProcessor.filter\n                    && hItem.query != null\n                    && !eventProcessor.filter(eventType, hItem.query)) {\n                    continue;\n                }\n                switch (argLen) {\n                    case 0:\n                        hItem.h.call(hItem.ctx);\n                        break;\n                    case 1:\n                        hItem.h.call(hItem.ctx, args[0]);\n                        break;\n                    case 2:\n                        hItem.h.call(hItem.ctx, args[0], args[1]);\n                        break;\n                    default:\n                        hItem.h.apply(hItem.ctx, args);\n                        break;\n                }\n            }\n        }\n        eventProcessor && eventProcessor.afterTrigger\n            && eventProcessor.afterTrigger(eventType);\n        return this;\n    };\n    Eventful.prototype.triggerWithContext = function (type) {\n        if (!this._$handlers) {\n            return this;\n        }\n        var _h = this._$handlers[type];\n        var eventProcessor = this._$eventProcessor;\n        if (_h) {\n            var args = arguments;\n            var argLen = args.length;\n            var ctx = args[argLen - 1];\n            var len = _h.length;\n            for (var i = 0; i < len; i++) {\n                var hItem = _h[i];\n                if (eventProcessor\n                    && eventProcessor.filter\n                    && hItem.query != null\n                    && !eventProcessor.filter(type, hItem.query)) {\n                    continue;\n                }\n                switch (argLen) {\n                    case 0:\n                        hItem.h.call(ctx);\n                        break;\n                    case 1:\n                        hItem.h.call(ctx, args[0]);\n                        break;\n                    case 2:\n                        hItem.h.call(ctx, args[0], args[1]);\n                        break;\n                    default:\n                        hItem.h.apply(ctx, args.slice(1, argLen - 1));\n                        break;\n                }\n            }\n        }\n        eventProcessor && eventProcessor.afterTrigger\n            && eventProcessor.afterTrigger(type);\n        return this;\n    };\n    return Eventful;\n}());\nexport default Eventful;\n","var LN2 = Math.log(2);\nfunction determinant(rows, rank, rowStart, rowMask, colMask, detCache) {\n    var cacheKey = rowMask + '-' + colMask;\n    var fullRank = rows.length;\n    if (detCache.hasOwnProperty(cacheKey)) {\n        return detCache[cacheKey];\n    }\n    if (rank === 1) {\n        var colStart = Math.round(Math.log(((1 << fullRank) - 1) & ~colMask) / LN2);\n        return rows[rowStart][colStart];\n    }\n    var subRowMask = rowMask | (1 << rowStart);\n    var subRowStart = rowStart + 1;\n    while (rowMask & (1 << subRowStart)) {\n        subRowStart++;\n    }\n    var sum = 0;\n    for (var j = 0, colLocalIdx = 0; j < fullRank; j++) {\n        var colTag = 1 << j;\n        if (!(colTag & colMask)) {\n            sum += (colLocalIdx % 2 ? -1 : 1) * rows[rowStart][j]\n                * determinant(rows, rank - 1, subRowStart, subRowMask, colMask | colTag, detCache);\n            colLocalIdx++;\n        }\n    }\n    detCache[cacheKey] = sum;\n    return sum;\n}\nexport function buildTransformer(src, dest) {\n    var mA = [\n        [src[0], src[1], 1, 0, 0, 0, -dest[0] * src[0], -dest[0] * src[1]],\n        [0, 0, 0, src[0], src[1], 1, -dest[1] * src[0], -dest[1] * src[1]],\n        [src[2], src[3], 1, 0, 0, 0, -dest[2] * src[2], -dest[2] * src[3]],\n        [0, 0, 0, src[2], src[3], 1, -dest[3] * src[2], -dest[3] * src[3]],\n        [src[4], src[5], 1, 0, 0, 0, -dest[4] * src[4], -dest[4] * src[5]],\n        [0, 0, 0, src[4], src[5], 1, -dest[5] * src[4], -dest[5] * src[5]],\n        [src[6], src[7], 1, 0, 0, 0, -dest[6] * src[6], -dest[6] * src[7]],\n        [0, 0, 0, src[6], src[7], 1, -dest[7] * src[6], -dest[7] * src[7]]\n    ];\n    var detCache = {};\n    var det = determinant(mA, 8, 0, 0, 0, detCache);\n    if (det === 0) {\n        return;\n    }\n    var vh = [];\n    for (var i = 0; i < 8; i++) {\n        for (var j = 0; j < 8; j++) {\n            vh[j] == null && (vh[j] = 0);\n            vh[j] += ((i + j) % 2 ? -1 : 1)\n                * determinant(mA, 7, i === 0 ? 1 : 0, 1 << i, 1 << j, detCache)\n                / det * dest[i];\n        }\n    }\n    return function (out, srcPointX, srcPointY) {\n        var pk = srcPointX * vh[6] + srcPointY * vh[7] + 1;\n        out[0] = (srcPointX * vh[0] + srcPointY * vh[1] + vh[2]) / pk;\n        out[1] = (srcPointX * vh[3] + srcPointY * vh[4] + vh[5]) / pk;\n    };\n}\n","import env from './env';\nimport { buildTransformer } from './fourPointsTransform';\nvar EVENT_SAVED_PROP = '___zrEVENTSAVED';\nvar _calcOut = [];\nexport function transformLocalCoord(out, elFrom, elTarget, inX, inY) {\n    return transformCoordWithViewport(_calcOut, elFrom, inX, inY, true)\n        && transformCoordWithViewport(out, elTarget, _calcOut[0], _calcOut[1]);\n}\nexport function transformCoordWithViewport(out, el, inX, inY, inverse) {\n    if (el.getBoundingClientRect && env.domSupported && !isCanvasEl(el)) {\n        var saved = el[EVENT_SAVED_PROP] || (el[EVENT_SAVED_PROP] = {});\n        var markers = prepareCoordMarkers(el, saved);\n        var transformer = preparePointerTransformer(markers, saved, inverse);\n        if (transformer) {\n            transformer(out, inX, inY);\n            return true;\n        }\n    }\n    return false;\n}\nfunction prepareCoordMarkers(el, saved) {\n    var markers = saved.markers;\n    if (markers) {\n        return markers;\n    }\n    markers = saved.markers = [];\n    var propLR = ['left', 'right'];\n    var propTB = ['top', 'bottom'];\n    for (var i = 0; i < 4; i++) {\n        var marker = document.createElement('div');\n        var stl = marker.style;\n        var idxLR = i % 2;\n        var idxTB = (i >> 1) % 2;\n        stl.cssText = [\n            'position: absolute',\n            'visibility: hidden',\n            'padding: 0',\n            'margin: 0',\n            'border-width: 0',\n            'user-select: none',\n            'width:0',\n            'height:0',\n            propLR[idxLR] + ':0',\n            propTB[idxTB] + ':0',\n            propLR[1 - idxLR] + ':auto',\n            propTB[1 - idxTB] + ':auto',\n            ''\n        ].join('!important;');\n        el.appendChild(marker);\n        markers.push(marker);\n    }\n    return markers;\n}\nfunction preparePointerTransformer(markers, saved, inverse) {\n    var transformerName = inverse ? 'invTrans' : 'trans';\n    var transformer = saved[transformerName];\n    var oldSrcCoords = saved.srcCoords;\n    var srcCoords = [];\n    var destCoords = [];\n    var oldCoordTheSame = true;\n    for (var i = 0; i < 4; i++) {\n        var rect = markers[i].getBoundingClientRect();\n        var ii = 2 * i;\n        var x = rect.left;\n        var y = rect.top;\n        srcCoords.push(x, y);\n        oldCoordTheSame = oldCoordTheSame && oldSrcCoords && x === oldSrcCoords[ii] && y === oldSrcCoords[ii + 1];\n        destCoords.push(markers[i].offsetLeft, markers[i].offsetTop);\n    }\n    return (oldCoordTheSame && transformer)\n        ? transformer\n        : (saved.srcCoords = srcCoords,\n            saved[transformerName] = inverse\n                ? buildTransformer(destCoords, srcCoords)\n                : buildTransformer(srcCoords, destCoords));\n}\nexport function isCanvasEl(el) {\n    return el.nodeName.toUpperCase() === 'CANVAS';\n}\n","import Eventful from './Eventful';\nimport env from './env';\nimport { isCanvasEl, transformCoordWithViewport } from './dom';\nvar isDomLevel2 = (typeof window !== 'undefined') && !!window.addEventListener;\nvar MOUSE_EVENT_REG = /^(?:mouse|pointer|contextmenu|drag|drop)|click/;\nvar _calcOut = [];\nexport function clientToLocal(el, e, out, calculate) {\n    out = out || {};\n    if (calculate || !env.canvasSupported) {\n        calculateZrXY(el, e, out);\n    }\n    else if (env.browser.firefox\n        && e.layerX != null\n        && e.layerX !== e.offsetX) {\n        out.zrX = e.layerX;\n        out.zrY = e.layerY;\n    }\n    else if (e.offsetX != null) {\n        out.zrX = e.offsetX;\n        out.zrY = e.offsetY;\n    }\n    else {\n        calculateZrXY(el, e, out);\n    }\n    return out;\n}\nfunction calculateZrXY(el, e, out) {\n    if (env.domSupported && el.getBoundingClientRect) {\n        var ex = e.clientX;\n        var ey = e.clientY;\n        if (isCanvasEl(el)) {\n            var box = el.getBoundingClientRect();\n            out.zrX = ex - box.left;\n            out.zrY = ey - box.top;\n            return;\n        }\n        else {\n            if (transformCoordWithViewport(_calcOut, el, ex, ey)) {\n                out.zrX = _calcOut[0];\n                out.zrY = _calcOut[1];\n                return;\n            }\n        }\n    }\n    out.zrX = out.zrY = 0;\n}\nexport function getNativeEvent(e) {\n    return e\n        || window.event;\n}\nexport function normalizeEvent(el, e, calculate) {\n    e = getNativeEvent(e);\n    if (e.zrX != null) {\n        return e;\n    }\n    var eventType = e.type;\n    var isTouch = eventType && eventType.indexOf('touch') >= 0;\n    if (!isTouch) {\n        clientToLocal(el, e, e, calculate);\n        var wheelDelta = getWheelDeltaMayPolyfill(e);\n        e.zrDelta = wheelDelta ? wheelDelta / 120 : -(e.detail || 0) / 3;\n    }\n    else {\n        var touch = eventType !== 'touchend'\n            ? e.targetTouches[0]\n            : e.changedTouches[0];\n        touch && clientToLocal(el, touch, e, calculate);\n    }\n    var button = e.button;\n    if (e.which == null && button !== undefined && MOUSE_EVENT_REG.test(e.type)) {\n        e.which = (button & 1 ? 1 : (button & 2 ? 3 : (button & 4 ? 2 : 0)));\n    }\n    return e;\n}\nfunction getWheelDeltaMayPolyfill(e) {\n    var rawWheelDelta = e.wheelDelta;\n    if (rawWheelDelta) {\n        return rawWheelDelta;\n    }\n    var deltaX = e.deltaX;\n    var deltaY = e.deltaY;\n    if (deltaX == null || deltaY == null) {\n        return rawWheelDelta;\n    }\n    var delta = deltaY !== 0 ? Math.abs(deltaY) : Math.abs(deltaX);\n    var sign = deltaY > 0 ? -1\n        : deltaY < 0 ? 1\n            : deltaX > 0 ? -1\n                : 1;\n    return 3 * delta * sign;\n}\nexport function addEventListener(el, name, handler, opt) {\n    if (isDomLevel2) {\n        el.addEventListener(name, handler, opt);\n    }\n    else {\n        el.attachEvent('on' + name, handler);\n    }\n}\nexport function removeEventListener(el, name, handler, opt) {\n    if (isDomLevel2) {\n        el.removeEventListener(name, handler, opt);\n    }\n    else {\n        el.detachEvent('on' + name, handler);\n    }\n}\nexport var stop = isDomLevel2\n    ? function (e) {\n        e.preventDefault();\n        e.stopPropagation();\n        e.cancelBubble = true;\n    }\n    : function (e) {\n        e.returnValue = false;\n        e.cancelBubble = true;\n    };\nexport function isMiddleOrRightButtonOnMouseUpDown(e) {\n    return e.which === 2 || e.which === 3;\n}\nexport function notLeftMouse(e) {\n    return e.which > 1;\n}\nexport { Eventful as Dispatcher };\n","import * as eventUtil from './event';\nvar GestureMgr = (function () {\n    function GestureMgr() {\n        this._track = [];\n    }\n    GestureMgr.prototype.recognize = function (event, target, root) {\n        this._doTrack(event, target, root);\n        return this._recognize(event);\n    };\n    GestureMgr.prototype.clear = function () {\n        this._track.length = 0;\n        return this;\n    };\n    GestureMgr.prototype._doTrack = function (event, target, root) {\n        var touches = event.touches;\n        if (!touches) {\n            return;\n        }\n        var trackItem = {\n            points: [],\n            touches: [],\n            target: target,\n            event: event\n        };\n        for (var i = 0, len = touches.length; i < len; i++) {\n            var touch = touches[i];\n            var pos = eventUtil.clientToLocal(root, touch, {});\n            trackItem.points.push([pos.zrX, pos.zrY]);\n            trackItem.touches.push(touch);\n        }\n        this._track.push(trackItem);\n    };\n    GestureMgr.prototype._recognize = function (event) {\n        for (var eventName in recognizers) {\n            if (recognizers.hasOwnProperty(eventName)) {\n                var gestureInfo = recognizers[eventName](this._track, event);\n                if (gestureInfo) {\n                    return gestureInfo;\n                }\n            }\n        }\n    };\n    return GestureMgr;\n}());\nexport { GestureMgr };\nfunction dist(pointPair) {\n    var dx = pointPair[1][0] - pointPair[0][0];\n    var dy = pointPair[1][1] - pointPair[0][1];\n    return Math.sqrt(dx * dx + dy * dy);\n}\nfunction center(pointPair) {\n    return [\n        (pointPair[0][0] + pointPair[1][0]) / 2,\n        (pointPair[0][1] + pointPair[1][1]) / 2\n    ];\n}\nvar recognizers = {\n    pinch: function (tracks, event) {\n        var trackLen = tracks.length;\n        if (!trackLen) {\n            return;\n        }\n        var pinchEnd = (tracks[trackLen - 1] || {}).points;\n        var pinchPre = (tracks[trackLen - 2] || {}).points || pinchEnd;\n        if (pinchPre\n            && pinchPre.length > 1\n            && pinchEnd\n            && pinchEnd.length > 1) {\n            var pinchScale = dist(pinchEnd) / dist(pinchPre);\n            !isFinite(pinchScale) && (pinchScale = 1);\n            event.pinchScale = pinchScale;\n            var pinchCenter = center(pinchEnd);\n            event.pinchX = pinchCenter[0];\n            event.pinchY = pinchCenter[1];\n            return {\n                type: 'pinch',\n                target: tracks[0].target,\n                event: event\n            };\n        }\n    }\n};\n","import { __extends } from \"tslib\";\nimport * as util from './core/util';\nimport * as vec2 from './core/vector';\nimport Draggable from './mixin/Draggable';\nimport Eventful from './core/Eventful';\nimport * as eventTool from './core/event';\nimport { GestureMgr } from './core/GestureMgr';\nvar SILENT = 'silent';\nfunction makeEventPacket(eveType, targetInfo, event) {\n    return {\n        type: eveType,\n        event: event,\n        target: targetInfo.target,\n        topTarget: targetInfo.topTarget,\n        cancelBubble: false,\n        offsetX: event.zrX,\n        offsetY: event.zrY,\n        gestureEvent: event.gestureEvent,\n        pinchX: event.pinchX,\n        pinchY: event.pinchY,\n        pinchScale: event.pinchScale,\n        wheelDelta: event.zrDelta,\n        zrByTouch: event.zrByTouch,\n        which: event.which,\n        stop: stopEvent\n    };\n}\nfunction stopEvent() {\n    eventTool.stop(this.event);\n}\nvar EmptyProxy = (function (_super) {\n    __extends(EmptyProxy, _super);\n    function EmptyProxy() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.handler = null;\n        return _this;\n    }\n    EmptyProxy.prototype.dispose = function () { };\n    EmptyProxy.prototype.setCursor = function () { };\n    return EmptyProxy;\n}(Eventful));\nvar HoveredResult = (function () {\n    function HoveredResult(x, y) {\n        this.x = x;\n        this.y = y;\n    }\n    return HoveredResult;\n}());\nvar handlerNames = [\n    'click', 'dblclick', 'mousewheel', 'mouseout',\n    'mouseup', 'mousedown', 'mousemove', 'contextmenu'\n];\nvar Handler = (function (_super) {\n    __extends(Handler, _super);\n    function Handler(storage, painter, proxy, painterRoot) {\n        var _this = _super.call(this) || this;\n        _this._hovered = new HoveredResult(0, 0);\n        _this.storage = storage;\n        _this.painter = painter;\n        _this.painterRoot = painterRoot;\n        proxy = proxy || new EmptyProxy();\n        _this.proxy = null;\n        _this.setHandlerProxy(proxy);\n        _this._draggingMgr = new Draggable(_this);\n        return _this;\n    }\n    Handler.prototype.setHandlerProxy = function (proxy) {\n        if (this.proxy) {\n            this.proxy.dispose();\n        }\n        if (proxy) {\n            util.each(handlerNames, function (name) {\n                proxy.on && proxy.on(name, this[name], this);\n            }, this);\n            proxy.handler = this;\n        }\n        this.proxy = proxy;\n    };\n    Handler.prototype.mousemove = function (event) {\n        var x = event.zrX;\n        var y = event.zrY;\n        var isOutside = isOutsideBoundary(this, x, y);\n        var lastHovered = this._hovered;\n        var lastHoveredTarget = lastHovered.target;\n        if (lastHoveredTarget && !lastHoveredTarget.__zr) {\n            lastHovered = this.findHover(lastHovered.x, lastHovered.y);\n            lastHoveredTarget = lastHovered.target;\n        }\n        var hovered = this._hovered = isOutside ? new HoveredResult(x, y) : this.findHover(x, y);\n        var hoveredTarget = hovered.target;\n        var proxy = this.proxy;\n        proxy.setCursor && proxy.setCursor(hoveredTarget ? hoveredTarget.cursor : 'default');\n        if (lastHoveredTarget && hoveredTarget !== lastHoveredTarget) {\n            this.dispatchToElement(lastHovered, 'mouseout', event);\n        }\n        this.dispatchToElement(hovered, 'mousemove', event);\n        if (hoveredTarget && hoveredTarget !== lastHoveredTarget) {\n            this.dispatchToElement(hovered, 'mouseover', event);\n        }\n    };\n    Handler.prototype.mouseout = function (event) {\n        var eventControl = event.zrEventControl;\n        if (eventControl !== 'only_globalout') {\n            this.dispatchToElement(this._hovered, 'mouseout', event);\n        }\n        if (eventControl !== 'no_globalout') {\n            this.trigger('globalout', { type: 'globalout', event: event });\n        }\n    };\n    Handler.prototype.resize = function () {\n        this._hovered = new HoveredResult(0, 0);\n    };\n    Handler.prototype.dispatch = function (eventName, eventArgs) {\n        var handler = this[eventName];\n        handler && handler.call(this, eventArgs);\n    };\n    Handler.prototype.dispose = function () {\n        this.proxy.dispose();\n        this.storage = null;\n        this.proxy = null;\n        this.painter = null;\n    };\n    Handler.prototype.setCursorStyle = function (cursorStyle) {\n        var proxy = this.proxy;\n        proxy.setCursor && proxy.setCursor(cursorStyle);\n    };\n    Handler.prototype.dispatchToElement = function (targetInfo, eventName, event) {\n        targetInfo = targetInfo || {};\n        var el = targetInfo.target;\n        if (el && el.silent) {\n            return;\n        }\n        var eventKey = ('on' + eventName);\n        var eventPacket = makeEventPacket(eventName, targetInfo, event);\n        while (el) {\n            el[eventKey]\n                && (eventPacket.cancelBubble = !!el[eventKey].call(el, eventPacket));\n            el.trigger(eventName, eventPacket);\n            el = el.__hostTarget ? el.__hostTarget : el.parent;\n            if (eventPacket.cancelBubble) {\n                break;\n            }\n        }\n        if (!eventPacket.cancelBubble) {\n            this.trigger(eventName, eventPacket);\n            if (this.painter && this.painter.eachOtherLayer) {\n                this.painter.eachOtherLayer(function (layer) {\n                    if (typeof (layer[eventKey]) === 'function') {\n                        layer[eventKey].call(layer, eventPacket);\n                    }\n                    if (layer.trigger) {\n                        layer.trigger(eventName, eventPacket);\n                    }\n                });\n            }\n        }\n    };\n    Handler.prototype.findHover = function (x, y, exclude) {\n        var list = this.storage.getDisplayList();\n        var out = new HoveredResult(x, y);\n        for (var i = list.length - 1; i >= 0; i--) {\n            var hoverCheckResult = void 0;\n            if (list[i] !== exclude\n                && !list[i].ignore\n                && (hoverCheckResult = isHover(list[i], x, y))) {\n                !out.topTarget && (out.topTarget = list[i]);\n                if (hoverCheckResult !== SILENT) {\n                    out.target = list[i];\n                    break;\n                }\n            }\n        }\n        return out;\n    };\n    Handler.prototype.processGesture = function (event, stage) {\n        if (!this._gestureMgr) {\n            this._gestureMgr = new GestureMgr();\n        }\n        var gestureMgr = this._gestureMgr;\n        stage === 'start' && gestureMgr.clear();\n        var gestureInfo = gestureMgr.recognize(event, this.findHover(event.zrX, event.zrY, null).target, this.proxy.dom);\n        stage === 'end' && gestureMgr.clear();\n        if (gestureInfo) {\n            var type = gestureInfo.type;\n            event.gestureEvent = type;\n            var res = new HoveredResult();\n            res.target = gestureInfo.target;\n            this.dispatchToElement(res, type, gestureInfo.event);\n        }\n    };\n    return Handler;\n}(Eventful));\nutil.each(['click', 'mousedown', 'mouseup', 'mousewheel', 'dblclick', 'contextmenu'], function (name) {\n    Handler.prototype[name] = function (event) {\n        var x = event.zrX;\n        var y = event.zrY;\n        var isOutside = isOutsideBoundary(this, x, y);\n        var hovered;\n        var hoveredTarget;\n        if (name !== 'mouseup' || !isOutside) {\n            hovered = this.findHover(x, y);\n            hoveredTarget = hovered.target;\n        }\n        if (name === 'mousedown') {\n            this._downEl = hoveredTarget;\n            this._downPoint = [event.zrX, event.zrY];\n            this._upEl = hoveredTarget;\n        }\n        else if (name === 'mouseup') {\n            this._upEl = hoveredTarget;\n        }\n        else if (name === 'click') {\n            if (this._downEl !== this._upEl\n                || !this._downPoint\n                || vec2.dist(this._downPoint, [event.zrX, event.zrY]) > 4) {\n                return;\n            }\n            this._downPoint = null;\n        }\n        this.dispatchToElement(hovered, name, event);\n    };\n});\nfunction isHover(displayable, x, y) {\n    if (displayable[displayable.rectHover ? 'rectContain' : 'contain'](x, y)) {\n        var el = displayable;\n        var isSilent = void 0;\n        var ignoreClip = false;\n        while (el) {\n            if (el.ignoreClip) {\n                ignoreClip = true;\n            }\n            if (!ignoreClip) {\n                var clipPath = el.getClipPath();\n                if (clipPath && !clipPath.contain(x, y)) {\n                    return false;\n                }\n                if (el.silent) {\n                    isSilent = true;\n                }\n            }\n            var hostEl = el.__hostTarget;\n            el = hostEl ? hostEl : el.parent;\n        }\n        return isSilent ? SILENT : true;\n    }\n    return false;\n}\nfunction isOutsideBoundary(handlerInstance, x, y) {\n    var painter = handlerInstance.painter;\n    return x < 0 || x > painter.getWidth() || y < 0 || y > painter.getHeight();\n}\nexport default Handler;\n","export function create() {\n    return [1, 0, 0, 1, 0, 0];\n}\nexport function identity(out) {\n    out[0] = 1;\n    out[1] = 0;\n    out[2] = 0;\n    out[3] = 1;\n    out[4] = 0;\n    out[5] = 0;\n    return out;\n}\nexport function copy(out, m) {\n    out[0] = m[0];\n    out[1] = m[1];\n    out[2] = m[2];\n    out[3] = m[3];\n    out[4] = m[4];\n    out[5] = m[5];\n    return out;\n}\nexport function mul(out, m1, m2) {\n    var out0 = m1[0] * m2[0] + m1[2] * m2[1];\n    var out1 = m1[1] * m2[0] + m1[3] * m2[1];\n    var out2 = m1[0] * m2[2] + m1[2] * m2[3];\n    var out3 = m1[1] * m2[2] + m1[3] * m2[3];\n    var out4 = m1[0] * m2[4] + m1[2] * m2[5] + m1[4];\n    var out5 = m1[1] * m2[4] + m1[3] * m2[5] + m1[5];\n    out[0] = out0;\n    out[1] = out1;\n    out[2] = out2;\n    out[3] = out3;\n    out[4] = out4;\n    out[5] = out5;\n    return out;\n}\nexport function translate(out, a, v) {\n    out[0] = a[0];\n    out[1] = a[1];\n    out[2] = a[2];\n    out[3] = a[3];\n    out[4] = a[4] + v[0];\n    out[5] = a[5] + v[1];\n    return out;\n}\nexport function rotate(out, a, rad) {\n    var aa = a[0];\n    var ac = a[2];\n    var atx = a[4];\n    var ab = a[1];\n    var ad = a[3];\n    var aty = a[5];\n    var st = Math.sin(rad);\n    var ct = Math.cos(rad);\n    out[0] = aa * ct + ab * st;\n    out[1] = -aa * st + ab * ct;\n    out[2] = ac * ct + ad * st;\n    out[3] = -ac * st + ct * ad;\n    out[4] = ct * atx + st * aty;\n    out[5] = ct * aty - st * atx;\n    return out;\n}\nexport function scale(out, a, v) {\n    var vx = v[0];\n    var vy = v[1];\n    out[0] = a[0] * vx;\n    out[1] = a[1] * vy;\n    out[2] = a[2] * vx;\n    out[3] = a[3] * vy;\n    out[4] = a[4] * vx;\n    out[5] = a[5] * vy;\n    return out;\n}\nexport function invert(out, a) {\n    var aa = a[0];\n    var ac = a[2];\n    var atx = a[4];\n    var ab = a[1];\n    var ad = a[3];\n    var aty = a[5];\n    var det = aa * ad - ab * ac;\n    if (!det) {\n        return null;\n    }\n    det = 1.0 / det;\n    out[0] = ad * det;\n    out[1] = -ab * det;\n    out[2] = -ac * det;\n    out[3] = aa * det;\n    out[4] = (ac * aty - ad * atx) * det;\n    out[5] = (ab * atx - aa * aty) * det;\n    return out;\n}\nexport function clone(a) {\n    var b = create();\n    copy(b, a);\n    return b;\n}\n","import * as matrix from './matrix';\nimport * as vector from './vector';\nvar mIdentity = matrix.identity;\nvar EPSILON = 5e-5;\nfunction isNotAroundZero(val) {\n    return val > EPSILON || val < -EPSILON;\n}\nvar scaleTmp = [];\nvar tmpTransform = [];\nvar originTransform = matrix.create();\nvar abs = Math.abs;\nvar Transformable = (function () {\n    function Transformable() {\n    }\n    Transformable.prototype.setPosition = function (arr) {\n        this.x = arr[0];\n        this.y = arr[1];\n    };\n    Transformable.prototype.setScale = function (arr) {\n        this.scaleX = arr[0];\n        this.scaleY = arr[1];\n    };\n    Transformable.prototype.setOrigin = function (arr) {\n        this.originX = arr[0];\n        this.originY = arr[1];\n    };\n    Transformable.prototype.needLocalTransform = function () {\n        return isNotAroundZero(this.rotation)\n            || isNotAroundZero(this.x)\n            || isNotAroundZero(this.y)\n            || isNotAroundZero(this.scaleX - 1)\n            || isNotAroundZero(this.scaleY - 1);\n    };\n    Transformable.prototype.updateTransform = function () {\n        var parent = this.parent;\n        var parentHasTransform = parent && parent.transform;\n        var needLocalTransform = this.needLocalTransform();\n        var m = this.transform;\n        if (!(needLocalTransform || parentHasTransform)) {\n            m && mIdentity(m);\n            return;\n        }\n        m = m || matrix.create();\n        if (needLocalTransform) {\n            this.getLocalTransform(m);\n        }\n        else {\n            mIdentity(m);\n        }\n        if (parentHasTransform) {\n            if (needLocalTransform) {\n                matrix.mul(m, parent.transform, m);\n            }\n            else {\n                matrix.copy(m, parent.transform);\n            }\n        }\n        this.transform = m;\n        this._resolveGlobalScaleRatio(m);\n    };\n    Transformable.prototype._resolveGlobalScaleRatio = function (m) {\n        var globalScaleRatio = this.globalScaleRatio;\n        if (globalScaleRatio != null && globalScaleRatio !== 1) {\n            this.getGlobalScale(scaleTmp);\n            var relX = scaleTmp[0] < 0 ? -1 : 1;\n            var relY = scaleTmp[1] < 0 ? -1 : 1;\n            var sx = ((scaleTmp[0] - relX) * globalScaleRatio + relX) / scaleTmp[0] || 0;\n            var sy = ((scaleTmp[1] - relY) * globalScaleRatio + relY) / scaleTmp[1] || 0;\n            m[0] *= sx;\n            m[1] *= sx;\n            m[2] *= sy;\n            m[3] *= sy;\n        }\n        this.invTransform = this.invTransform || matrix.create();\n        matrix.invert(this.invTransform, m);\n    };\n    Transformable.prototype.getLocalTransform = function (m) {\n        return Transformable.getLocalTransform(this, m);\n    };\n    Transformable.prototype.getComputedTransform = function () {\n        var transformNode = this;\n        var ancestors = [];\n        while (transformNode) {\n            ancestors.push(transformNode);\n            transformNode = transformNode.parent;\n        }\n        while (transformNode = ancestors.pop()) {\n            transformNode.updateTransform();\n        }\n        return this.transform;\n    };\n    Transformable.prototype.setLocalTransform = function (m) {\n        if (!m) {\n            return;\n        }\n        var sx = m[0] * m[0] + m[1] * m[1];\n        var sy = m[2] * m[2] + m[3] * m[3];\n        if (isNotAroundZero(sx - 1)) {\n            sx = Math.sqrt(sx);\n        }\n        if (isNotAroundZero(sy - 1)) {\n            sy = Math.sqrt(sy);\n        }\n        if (m[0] < 0) {\n            sx = -sx;\n        }\n        if (m[3] < 0) {\n            sy = -sy;\n        }\n        this.rotation = Math.atan2(-m[1] / sy, m[0] / sx);\n        if (sx < 0 && sy < 0) {\n            this.rotation += Math.PI;\n            sx = -sx;\n            sy = -sy;\n        }\n        this.x = m[4];\n        this.y = m[5];\n        this.scaleX = sx;\n        this.scaleY = sy;\n    };\n    Transformable.prototype.decomposeTransform = function () {\n        if (!this.transform) {\n            return;\n        }\n        var parent = this.parent;\n        var m = this.transform;\n        if (parent && parent.transform) {\n            matrix.mul(tmpTransform, parent.invTransform, m);\n            m = tmpTransform;\n        }\n        var ox = this.originX;\n        var oy = this.originY;\n        if (ox || oy) {\n            originTransform[4] = ox;\n            originTransform[5] = oy;\n            matrix.mul(tmpTransform, m, originTransform);\n            tmpTransform[4] -= ox;\n            tmpTransform[5] -= oy;\n            m = tmpTransform;\n        }\n        this.setLocalTransform(m);\n    };\n    Transformable.prototype.getGlobalScale = function (out) {\n        var m = this.transform;\n        out = out || [];\n        if (!m) {\n            out[0] = 1;\n            out[1] = 1;\n            return out;\n        }\n        out[0] = Math.sqrt(m[0] * m[0] + m[1] * m[1]);\n        out[1] = Math.sqrt(m[2] * m[2] + m[3] * m[3]);\n        if (m[0] < 0) {\n            out[0] = -out[0];\n        }\n        if (m[3] < 0) {\n            out[1] = -out[1];\n        }\n        return out;\n    };\n    Transformable.prototype.transformCoordToLocal = function (x, y) {\n        var v2 = [x, y];\n        var invTransform = this.invTransform;\n        if (invTransform) {\n            vector.applyTransform(v2, v2, invTransform);\n        }\n        return v2;\n    };\n    Transformable.prototype.transformCoordToGlobal = function (x, y) {\n        var v2 = [x, y];\n        var transform = this.transform;\n        if (transform) {\n            vector.applyTransform(v2, v2, transform);\n        }\n        return v2;\n    };\n    Transformable.prototype.getLineScale = function () {\n        var m = this.transform;\n        return m && abs(m[0] - 1) > 1e-10 && abs(m[3] - 1) > 1e-10\n            ? Math.sqrt(abs(m[0] * m[3] - m[2] * m[1]))\n            : 1;\n    };\n    Transformable.getLocalTransform = function (target, m) {\n        m = m || [];\n        mIdentity(m);\n        var ox = target.originX || 0;\n        var oy = target.originY || 0;\n        var sx = target.scaleX;\n        var sy = target.scaleY;\n        var rotation = target.rotation || 0;\n        var x = target.x;\n        var y = target.y;\n        m[4] -= ox;\n        m[5] -= oy;\n        m[0] *= sx;\n        m[1] *= sy;\n        m[2] *= sx;\n        m[3] *= sy;\n        m[4] *= sx;\n        m[5] *= sy;\n        if (rotation) {\n            matrix.rotate(m, m, rotation);\n        }\n        m[4] += ox;\n        m[5] += oy;\n        m[4] += x;\n        m[5] += y;\n        return m;\n    };\n    Transformable.initDefaultProps = (function () {\n        var proto = Transformable.prototype;\n        proto.x = 0;\n        proto.y = 0;\n        proto.scaleX = 1;\n        proto.scaleY = 1;\n        proto.originX = 0;\n        proto.originY = 0;\n        proto.rotation = 0;\n        proto.globalScaleRatio = 1;\n    })();\n    return Transformable;\n}());\n;\nexport default Transformable;\n","var easing = {\n    linear: function (k) {\n        return k;\n    },\n    quadraticIn: function (k) {\n        return k * k;\n    },\n    quadraticOut: function (k) {\n        return k * (2 - k);\n    },\n    quadraticInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return 0.5 * k * k;\n        }\n        return -0.5 * (--k * (k - 2) - 1);\n    },\n    cubicIn: function (k) {\n        return k * k * k;\n    },\n    cubicOut: function (k) {\n        return --k * k * k + 1;\n    },\n    cubicInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return 0.5 * k * k * k;\n        }\n        return 0.5 * ((k -= 2) * k * k + 2);\n    },\n    quarticIn: function (k) {\n        return k * k * k * k;\n    },\n    quarticOut: function (k) {\n        return 1 - (--k * k * k * k);\n    },\n    quarticInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return 0.5 * k * k * k * k;\n        }\n        return -0.5 * ((k -= 2) * k * k * k - 2);\n    },\n    quinticIn: function (k) {\n        return k * k * k * k * k;\n    },\n    quinticOut: function (k) {\n        return --k * k * k * k * k + 1;\n    },\n    quinticInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return 0.5 * k * k * k * k * k;\n        }\n        return 0.5 * ((k -= 2) * k * k * k * k + 2);\n    },\n    sinusoidalIn: function (k) {\n        return 1 - Math.cos(k * Math.PI / 2);\n    },\n    sinusoidalOut: function (k) {\n        return Math.sin(k * Math.PI / 2);\n    },\n    sinusoidalInOut: function (k) {\n        return 0.5 * (1 - Math.cos(Math.PI * k));\n    },\n    exponentialIn: function (k) {\n        return k === 0 ? 0 : Math.pow(1024, k - 1);\n    },\n    exponentialOut: function (k) {\n        return k === 1 ? 1 : 1 - Math.pow(2, -10 * k);\n    },\n    exponentialInOut: function (k) {\n        if (k === 0) {\n            return 0;\n        }\n        if (k === 1) {\n            return 1;\n        }\n        if ((k *= 2) < 1) {\n            return 0.5 * Math.pow(1024, k - 1);\n        }\n        return 0.5 * (-Math.pow(2, -10 * (k - 1)) + 2);\n    },\n    circularIn: function (k) {\n        return 1 - Math.sqrt(1 - k * k);\n    },\n    circularOut: function (k) {\n        return Math.sqrt(1 - (--k * k));\n    },\n    circularInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return -0.5 * (Math.sqrt(1 - k * k) - 1);\n        }\n        return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1);\n    },\n    elasticIn: function (k) {\n        var s;\n        var a = 0.1;\n        var p = 0.4;\n        if (k === 0) {\n            return 0;\n        }\n        if (k === 1) {\n            return 1;\n        }\n        if (!a || a < 1) {\n            a = 1;\n            s = p / 4;\n        }\n        else {\n            s = p * Math.asin(1 / a) / (2 * Math.PI);\n        }\n        return -(a * Math.pow(2, 10 * (k -= 1))\n            * Math.sin((k - s) * (2 * Math.PI) / p));\n    },\n    elasticOut: function (k) {\n        var s;\n        var a = 0.1;\n        var p = 0.4;\n        if (k === 0) {\n            return 0;\n        }\n        if (k === 1) {\n            return 1;\n        }\n        if (!a || a < 1) {\n            a = 1;\n            s = p / 4;\n        }\n        else {\n            s = p * Math.asin(1 / a) / (2 * Math.PI);\n        }\n        return (a * Math.pow(2, -10 * k)\n            * Math.sin((k - s) * (2 * Math.PI) / p) + 1);\n    },\n    elasticInOut: function (k) {\n        var s;\n        var a = 0.1;\n        var p = 0.4;\n        if (k === 0) {\n            return 0;\n        }\n        if (k === 1) {\n            return 1;\n        }\n        if (!a || a < 1) {\n            a = 1;\n            s = p / 4;\n        }\n        else {\n            s = p * Math.asin(1 / a) / (2 * Math.PI);\n        }\n        if ((k *= 2) < 1) {\n            return -0.5 * (a * Math.pow(2, 10 * (k -= 1))\n                * Math.sin((k - s) * (2 * Math.PI) / p));\n        }\n        return a * Math.pow(2, -10 * (k -= 1))\n            * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1;\n    },\n    backIn: function (k) {\n        var s = 1.70158;\n        return k * k * ((s + 1) * k - s);\n    },\n    backOut: function (k) {\n        var s = 1.70158;\n        return --k * k * ((s + 1) * k + s) + 1;\n    },\n    backInOut: function (k) {\n        var s = 1.70158 * 1.525;\n        if ((k *= 2) < 1) {\n            return 0.5 * (k * k * ((s + 1) * k - s));\n        }\n        return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2);\n    },\n    bounceIn: function (k) {\n        return 1 - easing.bounceOut(1 - k);\n    },\n    bounceOut: function (k) {\n        if (k < (1 / 2.75)) {\n            return 7.5625 * k * k;\n        }\n        else if (k < (2 / 2.75)) {\n            return 7.5625 * (k -= (1.5 / 2.75)) * k + 0.75;\n        }\n        else if (k < (2.5 / 2.75)) {\n            return 7.5625 * (k -= (2.25 / 2.75)) * k + 0.9375;\n        }\n        else {\n            return 7.5625 * (k -= (2.625 / 2.75)) * k + 0.984375;\n        }\n    },\n    bounceInOut: function (k) {\n        if (k < 0.5) {\n            return easing.bounceIn(k * 2) * 0.5;\n        }\n        return easing.bounceOut(k * 2 - 1) * 0.5 + 0.5;\n    }\n};\nexport default easing;\n","import easingFuncs from './easing';\nvar Clip = (function () {\n    function Clip(opts) {\n        this._initialized = false;\n        this._startTime = 0;\n        this._pausedTime = 0;\n        this._paused = false;\n        this._life = opts.life || 1000;\n        this._delay = opts.delay || 0;\n        this.loop = opts.loop == null ? false : opts.loop;\n        this.gap = opts.gap || 0;\n        this.easing = opts.easing || 'linear';\n        this.onframe = opts.onframe;\n        this.ondestroy = opts.ondestroy;\n        this.onrestart = opts.onrestart;\n    }\n    Clip.prototype.step = function (globalTime, deltaTime) {\n        if (!this._initialized) {\n            this._startTime = globalTime + this._delay;\n            this._initialized = true;\n        }\n        if (this._paused) {\n            this._pausedTime += deltaTime;\n            return;\n        }\n        var percent = (globalTime - this._startTime - this._pausedTime) / this._life;\n        if (percent < 0) {\n            percent = 0;\n        }\n        percent = Math.min(percent, 1);\n        var easing = this.easing;\n        var easingFunc = typeof easing === 'string'\n            ? easingFuncs[easing] : easing;\n        var schedule = typeof easingFunc === 'function'\n            ? easingFunc(percent)\n            : percent;\n        this.onframe && this.onframe(schedule);\n        if (percent === 1) {\n            if (this.loop) {\n                this._restart(globalTime);\n                this.onrestart && this.onrestart();\n            }\n            else {\n                return true;\n            }\n        }\n        return false;\n    };\n    Clip.prototype._restart = function (globalTime) {\n        var remainder = (globalTime - this._startTime - this._pausedTime) % this._life;\n        this._startTime = globalTime - remainder + this.gap;\n        this._pausedTime = 0;\n    };\n    Clip.prototype.pause = function () {\n        this._paused = true;\n    };\n    Clip.prototype.resume = function () {\n        this._paused = false;\n    };\n    return Clip;\n}());\nexport default Clip;\n","var Entry = (function () {\n    function Entry(val) {\n        this.value = val;\n    }\n    return Entry;\n}());\nexport { Entry };\nvar LinkedList = (function () {\n    function LinkedList() {\n        this._len = 0;\n    }\n    LinkedList.prototype.insert = function (val) {\n        var entry = new Entry(val);\n        this.insertEntry(entry);\n        return entry;\n    };\n    LinkedList.prototype.insertEntry = function (entry) {\n        if (!this.head) {\n            this.head = this.tail = entry;\n        }\n        else {\n            this.tail.next = entry;\n            entry.prev = this.tail;\n            entry.next = null;\n            this.tail = entry;\n        }\n        this._len++;\n    };\n    LinkedList.prototype.remove = function (entry) {\n        var prev = entry.prev;\n        var next = entry.next;\n        if (prev) {\n            prev.next = next;\n        }\n        else {\n            this.head = next;\n        }\n        if (next) {\n            next.prev = prev;\n        }\n        else {\n            this.tail = prev;\n        }\n        entry.next = entry.prev = null;\n        this._len--;\n    };\n    LinkedList.prototype.len = function () {\n        return this._len;\n    };\n    LinkedList.prototype.clear = function () {\n        this.head = this.tail = null;\n        this._len = 0;\n    };\n    return LinkedList;\n}());\nexport { LinkedList };\nvar LRU = (function () {\n    function LRU(maxSize) {\n        this._list = new LinkedList();\n        this._maxSize = 10;\n        this._map = {};\n        this._maxSize = maxSize;\n    }\n    LRU.prototype.put = function (key, value) {\n        var list = this._list;\n        var map = this._map;\n        var removed = null;\n        if (map[key] == null) {\n            var len = list.len();\n            var entry = this._lastRemovedEntry;\n            if (len >= this._maxSize && len > 0) {\n                var leastUsedEntry = list.head;\n                list.remove(leastUsedEntry);\n                delete map[leastUsedEntry.key];\n                removed = leastUsedEntry.value;\n                this._lastRemovedEntry = leastUsedEntry;\n            }\n            if (entry) {\n                entry.value = value;\n            }\n            else {\n                entry = new Entry(value);\n            }\n            entry.key = key;\n            list.insertEntry(entry);\n            map[key] = entry;\n        }\n        return removed;\n    };\n    LRU.prototype.get = function (key) {\n        var entry = this._map[key];\n        var list = this._list;\n        if (entry != null) {\n            if (entry !== list.tail) {\n                list.remove(entry);\n                list.insertEntry(entry);\n            }\n            return entry.value;\n        }\n    };\n    LRU.prototype.clear = function () {\n        this._list.clear();\n        this._map = {};\n    };\n    LRU.prototype.len = function () {\n        return this._list.len();\n    };\n    return LRU;\n}());\nexport default LRU;\n","import LRU from '../core/LRU';\nvar kCSSColorTable = {\n    'transparent': [0, 0, 0, 0], 'aliceblue': [240, 248, 255, 1],\n    'antiquewhite': [250, 235, 215, 1], 'aqua': [0, 255, 255, 1],\n    'aquamarine': [127, 255, 212, 1], 'azure': [240, 255, 255, 1],\n    'beige': [245, 245, 220, 1], 'bisque': [255, 228, 196, 1],\n    'black': [0, 0, 0, 1], 'blanchedalmond': [255, 235, 205, 1],\n    'blue': [0, 0, 255, 1], 'blueviolet': [138, 43, 226, 1],\n    'brown': [165, 42, 42, 1], 'burlywood': [222, 184, 135, 1],\n    'cadetblue': [95, 158, 160, 1], 'chartreuse': [127, 255, 0, 1],\n    'chocolate': [210, 105, 30, 1], 'coral': [255, 127, 80, 1],\n    'cornflowerblue': [100, 149, 237, 1], 'cornsilk': [255, 248, 220, 1],\n    'crimson': [220, 20, 60, 1], 'cyan': [0, 255, 255, 1],\n    'darkblue': [0, 0, 139, 1], 'darkcyan': [0, 139, 139, 1],\n    'darkgoldenrod': [184, 134, 11, 1], 'darkgray': [169, 169, 169, 1],\n    'darkgreen': [0, 100, 0, 1], 'darkgrey': [169, 169, 169, 1],\n    'darkkhaki': [189, 183, 107, 1], 'darkmagenta': [139, 0, 139, 1],\n    'darkolivegreen': [85, 107, 47, 1], 'darkorange': [255, 140, 0, 1],\n    'darkorchid': [153, 50, 204, 1], 'darkred': [139, 0, 0, 1],\n    'darksalmon': [233, 150, 122, 1], 'darkseagreen': [143, 188, 143, 1],\n    'darkslateblue': [72, 61, 139, 1], 'darkslategray': [47, 79, 79, 1],\n    'darkslategrey': [47, 79, 79, 1], 'darkturquoise': [0, 206, 209, 1],\n    'darkviolet': [148, 0, 211, 1], 'deeppink': [255, 20, 147, 1],\n    'deepskyblue': [0, 191, 255, 1], 'dimgray': [105, 105, 105, 1],\n    'dimgrey': [105, 105, 105, 1], 'dodgerblue': [30, 144, 255, 1],\n    'firebrick': [178, 34, 34, 1], 'floralwhite': [255, 250, 240, 1],\n    'forestgreen': [34, 139, 34, 1], 'fuchsia': [255, 0, 255, 1],\n    'gainsboro': [220, 220, 220, 1], 'ghostwhite': [248, 248, 255, 1],\n    'gold': [255, 215, 0, 1], 'goldenrod': [218, 165, 32, 1],\n    'gray': [128, 128, 128, 1], 'green': [0, 128, 0, 1],\n    'greenyellow': [173, 255, 47, 1], 'grey': [128, 128, 128, 1],\n    'honeydew': [240, 255, 240, 1], 'hotpink': [255, 105, 180, 1],\n    'indianred': [205, 92, 92, 1], 'indigo': [75, 0, 130, 1],\n    'ivory': [255, 255, 240, 1], 'khaki': [240, 230, 140, 1],\n    'lavender': [230, 230, 250, 1], 'lavenderblush': [255, 240, 245, 1],\n    'lawngreen': [124, 252, 0, 1], 'lemonchiffon': [255, 250, 205, 1],\n    'lightblue': [173, 216, 230, 1], 'lightcoral': [240, 128, 128, 1],\n    'lightcyan': [224, 255, 255, 1], 'lightgoldenrodyellow': [250, 250, 210, 1],\n    'lightgray': [211, 211, 211, 1], 'lightgreen': [144, 238, 144, 1],\n    'lightgrey': [211, 211, 211, 1], 'lightpink': [255, 182, 193, 1],\n    'lightsalmon': [255, 160, 122, 1], 'lightseagreen': [32, 178, 170, 1],\n    'lightskyblue': [135, 206, 250, 1], 'lightslategray': [119, 136, 153, 1],\n    'lightslategrey': [119, 136, 153, 1], 'lightsteelblue': [176, 196, 222, 1],\n    'lightyellow': [255, 255, 224, 1], 'lime': [0, 255, 0, 1],\n    'limegreen': [50, 205, 50, 1], 'linen': [250, 240, 230, 1],\n    'magenta': [255, 0, 255, 1], 'maroon': [128, 0, 0, 1],\n    'mediumaquamarine': [102, 205, 170, 1], 'mediumblue': [0, 0, 205, 1],\n    'mediumorchid': [186, 85, 211, 1], 'mediumpurple': [147, 112, 219, 1],\n    'mediumseagreen': [60, 179, 113, 1], 'mediumslateblue': [123, 104, 238, 1],\n    'mediumspringgreen': [0, 250, 154, 1], 'mediumturquoise': [72, 209, 204, 1],\n    'mediumvioletred': [199, 21, 133, 1], 'midnightblue': [25, 25, 112, 1],\n    'mintcream': [245, 255, 250, 1], 'mistyrose': [255, 228, 225, 1],\n    'moccasin': [255, 228, 181, 1], 'navajowhite': [255, 222, 173, 1],\n    'navy': [0, 0, 128, 1], 'oldlace': [253, 245, 230, 1],\n    'olive': [128, 128, 0, 1], 'olivedrab': [107, 142, 35, 1],\n    'orange': [255, 165, 0, 1], 'orangered': [255, 69, 0, 1],\n    'orchid': [218, 112, 214, 1], 'palegoldenrod': [238, 232, 170, 1],\n    'palegreen': [152, 251, 152, 1], 'paleturquoise': [175, 238, 238, 1],\n    'palevioletred': [219, 112, 147, 1], 'papayawhip': [255, 239, 213, 1],\n    'peachpuff': [255, 218, 185, 1], 'peru': [205, 133, 63, 1],\n    'pink': [255, 192, 203, 1], 'plum': [221, 160, 221, 1],\n    'powderblue': [176, 224, 230, 1], 'purple': [128, 0, 128, 1],\n    'red': [255, 0, 0, 1], 'rosybrown': [188, 143, 143, 1],\n    'royalblue': [65, 105, 225, 1], 'saddlebrown': [139, 69, 19, 1],\n    'salmon': [250, 128, 114, 1], 'sandybrown': [244, 164, 96, 1],\n    'seagreen': [46, 139, 87, 1], 'seashell': [255, 245, 238, 1],\n    'sienna': [160, 82, 45, 1], 'silver': [192, 192, 192, 1],\n    'skyblue': [135, 206, 235, 1], 'slateblue': [106, 90, 205, 1],\n    'slategray': [112, 128, 144, 1], 'slategrey': [112, 128, 144, 1],\n    'snow': [255, 250, 250, 1], 'springgreen': [0, 255, 127, 1],\n    'steelblue': [70, 130, 180, 1], 'tan': [210, 180, 140, 1],\n    'teal': [0, 128, 128, 1], 'thistle': [216, 191, 216, 1],\n    'tomato': [255, 99, 71, 1], 'turquoise': [64, 224, 208, 1],\n    'violet': [238, 130, 238, 1], 'wheat': [245, 222, 179, 1],\n    'white': [255, 255, 255, 1], 'whitesmoke': [245, 245, 245, 1],\n    'yellow': [255, 255, 0, 1], 'yellowgreen': [154, 205, 50, 1]\n};\nfunction clampCssByte(i) {\n    i = Math.round(i);\n    return i < 0 ? 0 : i > 255 ? 255 : i;\n}\nfunction clampCssAngle(i) {\n    i = Math.round(i);\n    return i < 0 ? 0 : i > 360 ? 360 : i;\n}\nfunction clampCssFloat(f) {\n    return f < 0 ? 0 : f > 1 ? 1 : f;\n}\nfunction parseCssInt(val) {\n    var str = val;\n    if (str.length && str.charAt(str.length - 1) === '%') {\n        return clampCssByte(parseFloat(str) / 100 * 255);\n    }\n    return clampCssByte(parseInt(str, 10));\n}\nfunction parseCssFloat(val) {\n    var str = val;\n    if (str.length && str.charAt(str.length - 1) === '%') {\n        return clampCssFloat(parseFloat(str) / 100);\n    }\n    return clampCssFloat(parseFloat(str));\n}\nfunction cssHueToRgb(m1, m2, h) {\n    if (h < 0) {\n        h += 1;\n    }\n    else if (h > 1) {\n        h -= 1;\n    }\n    if (h * 6 < 1) {\n        return m1 + (m2 - m1) * h * 6;\n    }\n    if (h * 2 < 1) {\n        return m2;\n    }\n    if (h * 3 < 2) {\n        return m1 + (m2 - m1) * (2 / 3 - h) * 6;\n    }\n    return m1;\n}\nfunction lerpNumber(a, b, p) {\n    return a + (b - a) * p;\n}\nfunction setRgba(out, r, g, b, a) {\n    out[0] = r;\n    out[1] = g;\n    out[2] = b;\n    out[3] = a;\n    return out;\n}\nfunction copyRgba(out, a) {\n    out[0] = a[0];\n    out[1] = a[1];\n    out[2] = a[2];\n    out[3] = a[3];\n    return out;\n}\nvar colorCache = new LRU(20);\nvar lastRemovedArr = null;\nfunction putToCache(colorStr, rgbaArr) {\n    if (lastRemovedArr) {\n        copyRgba(lastRemovedArr, rgbaArr);\n    }\n    lastRemovedArr = colorCache.put(colorStr, lastRemovedArr || (rgbaArr.slice()));\n}\nexport function parse(colorStr, rgbaArr) {\n    if (!colorStr) {\n        return;\n    }\n    rgbaArr = rgbaArr || [];\n    var cached = colorCache.get(colorStr);\n    if (cached) {\n        return copyRgba(rgbaArr, cached);\n    }\n    colorStr = colorStr + '';\n    var str = colorStr.replace(/ /g, '').toLowerCase();\n    if (str in kCSSColorTable) {\n        copyRgba(rgbaArr, kCSSColorTable[str]);\n        putToCache(colorStr, rgbaArr);\n        return rgbaArr;\n    }\n    var strLen = str.length;\n    if (str.charAt(0) === '#') {\n        if (strLen === 4 || strLen === 5) {\n            var iv = parseInt(str.slice(1, 4), 16);\n            if (!(iv >= 0 && iv <= 0xfff)) {\n                setRgba(rgbaArr, 0, 0, 0, 1);\n                return;\n            }\n            setRgba(rgbaArr, ((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8), (iv & 0xf0) | ((iv & 0xf0) >> 4), (iv & 0xf) | ((iv & 0xf) << 4), strLen === 5 ? parseInt(str.slice(4), 16) / 0xf : 1);\n            putToCache(colorStr, rgbaArr);\n            return rgbaArr;\n        }\n        else if (strLen === 7 || strLen === 9) {\n            var iv = parseInt(str.slice(1, 7), 16);\n            if (!(iv >= 0 && iv <= 0xffffff)) {\n                setRgba(rgbaArr, 0, 0, 0, 1);\n                return;\n            }\n            setRgba(rgbaArr, (iv & 0xff0000) >> 16, (iv & 0xff00) >> 8, iv & 0xff, strLen === 9 ? parseInt(str.slice(7), 16) / 0xff : 1);\n            putToCache(colorStr, rgbaArr);\n            return rgbaArr;\n        }\n        return;\n    }\n    var op = str.indexOf('(');\n    var ep = str.indexOf(')');\n    if (op !== -1 && ep + 1 === strLen) {\n        var fname = str.substr(0, op);\n        var params = str.substr(op + 1, ep - (op + 1)).split(',');\n        var alpha = 1;\n        switch (fname) {\n            case 'rgba':\n                if (params.length !== 4) {\n                    return params.length === 3\n                        ? setRgba(rgbaArr, +params[0], +params[1], +params[2], 1)\n                        : setRgba(rgbaArr, 0, 0, 0, 1);\n                }\n                alpha = parseCssFloat(params.pop());\n            case 'rgb':\n                if (params.length !== 3) {\n                    setRgba(rgbaArr, 0, 0, 0, 1);\n                    return;\n                }\n                setRgba(rgbaArr, parseCssInt(params[0]), parseCssInt(params[1]), parseCssInt(params[2]), alpha);\n                putToCache(colorStr, rgbaArr);\n                return rgbaArr;\n            case 'hsla':\n                if (params.length !== 4) {\n                    setRgba(rgbaArr, 0, 0, 0, 1);\n                    return;\n                }\n                params[3] = parseCssFloat(params[3]);\n                hsla2rgba(params, rgbaArr);\n                putToCache(colorStr, rgbaArr);\n                return rgbaArr;\n            case 'hsl':\n                if (params.length !== 3) {\n                    setRgba(rgbaArr, 0, 0, 0, 1);\n                    return;\n                }\n                hsla2rgba(params, rgbaArr);\n                putToCache(colorStr, rgbaArr);\n                return rgbaArr;\n            default:\n                return;\n        }\n    }\n    setRgba(rgbaArr, 0, 0, 0, 1);\n    return;\n}\nfunction hsla2rgba(hsla, rgba) {\n    var h = (((parseFloat(hsla[0]) % 360) + 360) % 360) / 360;\n    var s = parseCssFloat(hsla[1]);\n    var l = parseCssFloat(hsla[2]);\n    var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n    var m1 = l * 2 - m2;\n    rgba = rgba || [];\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);\n    if (hsla.length === 4) {\n        rgba[3] = hsla[3];\n    }\n    return rgba;\n}\nfunction rgba2hsla(rgba) {\n    if (!rgba) {\n        return;\n    }\n    var R = rgba[0] / 255;\n    var G = rgba[1] / 255;\n    var B = rgba[2] / 255;\n    var vMin = Math.min(R, G, B);\n    var vMax = Math.max(R, G, B);\n    var delta = vMax - vMin;\n    var L = (vMax + vMin) / 2;\n    var H;\n    var S;\n    if (delta === 0) {\n        H = 0;\n        S = 0;\n    }\n    else {\n        if (L < 0.5) {\n            S = delta / (vMax + vMin);\n        }\n        else {\n            S = delta / (2 - vMax - vMin);\n        }\n        var deltaR = (((vMax - R) / 6) + (delta / 2)) / delta;\n        var deltaG = (((vMax - G) / 6) + (delta / 2)) / delta;\n        var deltaB = (((vMax - B) / 6) + (delta / 2)) / delta;\n        if (R === vMax) {\n            H = deltaB - deltaG;\n        }\n        else if (G === vMax) {\n            H = (1 / 3) + deltaR - deltaB;\n        }\n        else if (B === vMax) {\n            H = (2 / 3) + deltaG - deltaR;\n        }\n        if (H < 0) {\n            H += 1;\n        }\n        if (H > 1) {\n            H -= 1;\n        }\n    }\n    var hsla = [H * 360, S, L];\n    if (rgba[3] != null) {\n        hsla.push(rgba[3]);\n    }\n    return hsla;\n}\nexport function lift(color, level) {\n    var colorArr = parse(color);\n    if (colorArr) {\n        for (var i = 0; i < 3; i++) {\n            if (level < 0) {\n                colorArr[i] = colorArr[i] * (1 - level) | 0;\n            }\n            else {\n                colorArr[i] = ((255 - colorArr[i]) * level + colorArr[i]) | 0;\n            }\n            if (colorArr[i] > 255) {\n                colorArr[i] = 255;\n            }\n            else if (colorArr[i] < 0) {\n                colorArr[i] = 0;\n            }\n        }\n        return stringify(colorArr, colorArr.length === 4 ? 'rgba' : 'rgb');\n    }\n}\nexport function toHex(color) {\n    var colorArr = parse(color);\n    if (colorArr) {\n        return ((1 << 24) + (colorArr[0] << 16) + (colorArr[1] << 8) + (+colorArr[2])).toString(16).slice(1);\n    }\n}\nexport function fastLerp(normalizedValue, colors, out) {\n    if (!(colors && colors.length)\n        || !(normalizedValue >= 0 && normalizedValue <= 1)) {\n        return;\n    }\n    out = out || [];\n    var value = normalizedValue * (colors.length - 1);\n    var leftIndex = Math.floor(value);\n    var rightIndex = Math.ceil(value);\n    var leftColor = colors[leftIndex];\n    var rightColor = colors[rightIndex];\n    var dv = value - leftIndex;\n    out[0] = clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv));\n    out[1] = clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv));\n    out[2] = clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv));\n    out[3] = clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv));\n    return out;\n}\nexport var fastMapToColor = fastLerp;\nexport function lerp(normalizedValue, colors, fullOutput) {\n    if (!(colors && colors.length)\n        || !(normalizedValue >= 0 && normalizedValue <= 1)) {\n        return;\n    }\n    var value = normalizedValue * (colors.length - 1);\n    var leftIndex = Math.floor(value);\n    var rightIndex = Math.ceil(value);\n    var leftColor = parse(colors[leftIndex]);\n    var rightColor = parse(colors[rightIndex]);\n    var dv = value - leftIndex;\n    var color = stringify([\n        clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv)),\n        clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv)),\n        clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv)),\n        clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv))\n    ], 'rgba');\n    return fullOutput\n        ? {\n            color: color,\n            leftIndex: leftIndex,\n            rightIndex: rightIndex,\n            value: value\n        }\n        : color;\n}\nexport var mapToColor = lerp;\nexport function modifyHSL(color, h, s, l) {\n    var colorArr = parse(color);\n    if (color) {\n        colorArr = rgba2hsla(colorArr);\n        h != null && (colorArr[0] = clampCssAngle(h));\n        s != null && (colorArr[1] = parseCssFloat(s));\n        l != null && (colorArr[2] = parseCssFloat(l));\n        return stringify(hsla2rgba(colorArr), 'rgba');\n    }\n}\nexport function modifyAlpha(color, alpha) {\n    var colorArr = parse(color);\n    if (colorArr && alpha != null) {\n        colorArr[3] = clampCssFloat(alpha);\n        return stringify(colorArr, 'rgba');\n    }\n}\nexport function stringify(arrColor, type) {\n    if (!arrColor || !arrColor.length) {\n        return;\n    }\n    var colorStr = arrColor[0] + ',' + arrColor[1] + ',' + arrColor[2];\n    if (type === 'rgba' || type === 'hsva' || type === 'hsla') {\n        colorStr += ',' + arrColor[3];\n    }\n    return type + '(' + colorStr + ')';\n}\nexport function lum(color, backgroundLum) {\n    var arr = parse(color);\n    return arr\n        ? (0.299 * arr[0] + 0.587 * arr[1] + 0.114 * arr[2]) * arr[3] / 255\n            + (1 - arr[3]) * backgroundLum\n        : 0;\n}\nexport function random() {\n    var r = Math.round(Math.random() * 255);\n    var g = Math.round(Math.random() * 255);\n    var b = Math.round(Math.random() * 255);\n    return 'rgb(' + r + ',' + g + ',' + b + ')';\n}\n","import Clip from './Clip';\nimport * as color from '../tool/color';\nimport { isArrayLike, keys, logError } from '../core/util';\nvar arraySlice = Array.prototype.slice;\nexport function interpolateNumber(p0, p1, percent) {\n    return (p1 - p0) * percent + p0;\n}\nexport function step(p0, p1, percent) {\n    return percent > 0.5 ? p1 : p0;\n}\nexport function interpolate1DArray(out, p0, p1, percent) {\n    var len = p0.length;\n    for (var i = 0; i < len; i++) {\n        out[i] = interpolateNumber(p0[i], p1[i], percent);\n    }\n}\nexport function interpolate2DArray(out, p0, p1, percent) {\n    var len = p0.length;\n    var len2 = len && p0[0].length;\n    for (var i = 0; i < len; i++) {\n        if (!out[i]) {\n            out[i] = [];\n        }\n        for (var j = 0; j < len2; j++) {\n            out[i][j] = interpolateNumber(p0[i][j], p1[i][j], percent);\n        }\n    }\n}\nfunction add1DArray(out, p0, p1, sign) {\n    var len = p0.length;\n    for (var i = 0; i < len; i++) {\n        out[i] = p0[i] + p1[i] * sign;\n    }\n    return out;\n}\nfunction add2DArray(out, p0, p1, sign) {\n    var len = p0.length;\n    var len2 = len && p0[0].length;\n    for (var i = 0; i < len; i++) {\n        if (!out[i]) {\n            out[i] = [];\n        }\n        for (var j = 0; j < len2; j++) {\n            out[i][j] = p0[i][j] + p1[i][j] * sign;\n        }\n    }\n    return out;\n}\nfunction fillArray(val0, val1, arrDim) {\n    var arr0 = val0;\n    var arr1 = val1;\n    if (!arr0.push || !arr1.push) {\n        return;\n    }\n    var arr0Len = arr0.length;\n    var arr1Len = arr1.length;\n    if (arr0Len !== arr1Len) {\n        var isPreviousLarger = arr0Len > arr1Len;\n        if (isPreviousLarger) {\n            arr0.length = arr1Len;\n        }\n        else {\n            for (var i = arr0Len; i < arr1Len; i++) {\n                arr0.push(arrDim === 1 ? arr1[i] : arraySlice.call(arr1[i]));\n            }\n        }\n    }\n    var len2 = arr0[0] && arr0[0].length;\n    for (var i = 0; i < arr0.length; i++) {\n        if (arrDim === 1) {\n            if (isNaN(arr0[i])) {\n                arr0[i] = arr1[i];\n            }\n        }\n        else {\n            for (var j = 0; j < len2; j++) {\n                if (isNaN(arr0[i][j])) {\n                    arr0[i][j] = arr1[i][j];\n                }\n            }\n        }\n    }\n}\nfunction is1DArraySame(arr0, arr1) {\n    var len = arr0.length;\n    if (len !== arr1.length) {\n        return false;\n    }\n    for (var i = 0; i < len; i++) {\n        if (arr0[i] !== arr1[i]) {\n            return false;\n        }\n    }\n    return true;\n}\nfunction is2DArraySame(arr0, arr1) {\n    var len = arr0.length;\n    if (len !== arr1.length) {\n        return false;\n    }\n    var len2 = arr0[0].length;\n    for (var i = 0; i < len; i++) {\n        for (var j = 0; j < len2; j++) {\n            if (arr0[i][j] !== arr1[i][j]) {\n                return false;\n            }\n        }\n    }\n    return true;\n}\nfunction catmullRomInterpolate(p0, p1, p2, p3, t, t2, t3) {\n    var v0 = (p2 - p0) * 0.5;\n    var v1 = (p3 - p1) * 0.5;\n    return (2 * (p1 - p2) + v0 + v1) * t3\n        + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\n        + v0 * t + p1;\n}\nfunction catmullRomInterpolate1DArray(out, p0, p1, p2, p3, t, t2, t3) {\n    var len = p0.length;\n    for (var i = 0; i < len; i++) {\n        out[i] = catmullRomInterpolate(p0[i], p1[i], p2[i], p3[i], t, t2, t3);\n    }\n}\nfunction catmullRomInterpolate2DArray(out, p0, p1, p2, p3, t, t2, t3) {\n    var len = p0.length;\n    var len2 = p0[0].length;\n    for (var i = 0; i < len; i++) {\n        if (!out[i]) {\n            out[1] = [];\n        }\n        for (var j = 0; j < len2; j++) {\n            out[i][j] = catmullRomInterpolate(p0[i][j], p1[i][j], p2[i][j], p3[i][j], t, t2, t3);\n        }\n    }\n}\nexport function cloneValue(value) {\n    if (isArrayLike(value)) {\n        var len = value.length;\n        if (isArrayLike(value[0])) {\n            var ret = [];\n            for (var i = 0; i < len; i++) {\n                ret.push(arraySlice.call(value[i]));\n            }\n            return ret;\n        }\n        return arraySlice.call(value);\n    }\n    return value;\n}\nfunction rgba2String(rgba) {\n    rgba[0] = Math.floor(rgba[0]);\n    rgba[1] = Math.floor(rgba[1]);\n    rgba[2] = Math.floor(rgba[2]);\n    return 'rgba(' + rgba.join(',') + ')';\n}\nfunction guessArrayDim(value) {\n    return isArrayLike(value && value[0]) ? 2 : 1;\n}\nvar tmpRgba = [0, 0, 0, 0];\nvar Track = (function () {\n    function Track(propName) {\n        this.keyframes = [];\n        this.maxTime = 0;\n        this.arrDim = 0;\n        this.interpolable = true;\n        this._needsSort = false;\n        this._isAllValueEqual = true;\n        this._lastFrame = 0;\n        this._lastFramePercent = 0;\n        this.propName = propName;\n    }\n    Track.prototype.isFinished = function () {\n        return this._finished;\n    };\n    Track.prototype.setFinished = function () {\n        this._finished = true;\n        if (this._additiveTrack) {\n            this._additiveTrack.setFinished();\n        }\n    };\n    Track.prototype.needsAnimate = function () {\n        return !this._isAllValueEqual && this.keyframes.length >= 2 && this.interpolable;\n    };\n    Track.prototype.getAdditiveTrack = function () {\n        return this._additiveTrack;\n    };\n    Track.prototype.addKeyframe = function (time, value) {\n        if (time >= this.maxTime) {\n            this.maxTime = time;\n        }\n        else {\n            this._needsSort = true;\n        }\n        var keyframes = this.keyframes;\n        var len = keyframes.length;\n        if (this.interpolable) {\n            if (isArrayLike(value)) {\n                var arrayDim = guessArrayDim(value);\n                if (len > 0 && this.arrDim !== arrayDim) {\n                    this.interpolable = false;\n                    return;\n                }\n                if (arrayDim === 1 && typeof value[0] !== 'number'\n                    || arrayDim === 2 && typeof value[0][0] !== 'number') {\n                    this.interpolable = false;\n                    return;\n                }\n                if (len > 0) {\n                    var lastFrame = keyframes[len - 1];\n                    if (this._isAllValueEqual) {\n                        if (arrayDim === 1) {\n                            if (!is1DArraySame(value, lastFrame.value)) {\n                                this._isAllValueEqual = false;\n                            }\n                        }\n                        else {\n                            this._isAllValueEqual = false;\n                        }\n                    }\n                }\n                this.arrDim = arrayDim;\n            }\n            else {\n                if (this.arrDim > 0) {\n                    this.interpolable = false;\n                    return;\n                }\n                if (typeof value === 'string') {\n                    var colorArray = color.parse(value);\n                    if (colorArray) {\n                        value = colorArray;\n                        this.isValueColor = true;\n                    }\n                    else {\n                        this.interpolable = false;\n                    }\n                }\n                else if (typeof value !== 'number') {\n                    this.interpolable = false;\n                    return;\n                }\n                if (this._isAllValueEqual && len > 0) {\n                    var lastFrame = keyframes[len - 1];\n                    if (this.isValueColor && !is1DArraySame(lastFrame.value, value)) {\n                        this._isAllValueEqual = false;\n                    }\n                    else if (lastFrame.value !== value) {\n                        this._isAllValueEqual = false;\n                    }\n                }\n            }\n        }\n        var kf = {\n            time: time,\n            value: value,\n            percent: 0\n        };\n        this.keyframes.push(kf);\n        return kf;\n    };\n    Track.prototype.prepare = function (additiveTrack) {\n        var kfs = this.keyframes;\n        if (this._needsSort) {\n            kfs.sort(function (a, b) {\n                return a.time - b.time;\n            });\n        }\n        var arrDim = this.arrDim;\n        var kfsLen = kfs.length;\n        var lastKf = kfs[kfsLen - 1];\n        for (var i = 0; i < kfsLen; i++) {\n            kfs[i].percent = kfs[i].time / this.maxTime;\n            if (arrDim > 0 && i !== kfsLen - 1) {\n                fillArray(kfs[i].value, lastKf.value, arrDim);\n            }\n        }\n        if (additiveTrack\n            && this.needsAnimate()\n            && additiveTrack.needsAnimate()\n            && arrDim === additiveTrack.arrDim\n            && this.isValueColor === additiveTrack.isValueColor\n            && !additiveTrack._finished) {\n            this._additiveTrack = additiveTrack;\n            var startValue = kfs[0].value;\n            for (var i = 0; i < kfsLen; i++) {\n                if (arrDim === 0) {\n                    if (this.isValueColor) {\n                        kfs[i].additiveValue\n                            = add1DArray([], kfs[i].value, startValue, -1);\n                    }\n                    else {\n                        kfs[i].additiveValue = kfs[i].value - startValue;\n                    }\n                }\n                else if (arrDim === 1) {\n                    kfs[i].additiveValue = add1DArray([], kfs[i].value, startValue, -1);\n                }\n                else if (arrDim === 2) {\n                    kfs[i].additiveValue = add2DArray([], kfs[i].value, startValue, -1);\n                }\n            }\n        }\n    };\n    Track.prototype.step = function (target, percent) {\n        if (this._finished) {\n            return;\n        }\n        if (this._additiveTrack && this._additiveTrack._finished) {\n            this._additiveTrack = null;\n        }\n        var isAdditive = this._additiveTrack != null;\n        var valueKey = isAdditive ? 'additiveValue' : 'value';\n        var keyframes = this.keyframes;\n        var kfsNum = this.keyframes.length;\n        var propName = this.propName;\n        var arrDim = this.arrDim;\n        var isValueColor = this.isValueColor;\n        var frameIdx;\n        if (percent < 0) {\n            frameIdx = 0;\n        }\n        else if (percent < this._lastFramePercent) {\n            var start = Math.min(this._lastFrame + 1, kfsNum - 1);\n            for (frameIdx = start; frameIdx >= 0; frameIdx--) {\n                if (keyframes[frameIdx].percent <= percent) {\n                    break;\n                }\n            }\n            frameIdx = Math.min(frameIdx, kfsNum - 2);\n        }\n        else {\n            for (frameIdx = this._lastFrame; frameIdx < kfsNum; frameIdx++) {\n                if (keyframes[frameIdx].percent > percent) {\n                    break;\n                }\n            }\n            frameIdx = Math.min(frameIdx - 1, kfsNum - 2);\n        }\n        var nextFrame = keyframes[frameIdx + 1];\n        var frame = keyframes[frameIdx];\n        if (!(frame && nextFrame)) {\n            return;\n        }\n        this._lastFrame = frameIdx;\n        this._lastFramePercent = percent;\n        var range = (nextFrame.percent - frame.percent);\n        if (range === 0) {\n            return;\n        }\n        var w = (percent - frame.percent) / range;\n        var targetArr = isAdditive ? this._additiveValue\n            : (isValueColor ? tmpRgba : target[propName]);\n        if ((arrDim > 0 || isValueColor) && !targetArr) {\n            targetArr = this._additiveValue = [];\n        }\n        if (this.useSpline) {\n            var p1 = keyframes[frameIdx][valueKey];\n            var p0 = keyframes[frameIdx === 0 ? frameIdx : frameIdx - 1][valueKey];\n            var p2 = keyframes[frameIdx > kfsNum - 2 ? kfsNum - 1 : frameIdx + 1][valueKey];\n            var p3 = keyframes[frameIdx > kfsNum - 3 ? kfsNum - 1 : frameIdx + 2][valueKey];\n            if (arrDim > 0) {\n                arrDim === 1\n                    ? catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w)\n                    : catmullRomInterpolate2DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\n            }\n            else if (isValueColor) {\n                catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\n                if (!isAdditive) {\n                    target[propName] = rgba2String(targetArr);\n                }\n            }\n            else {\n                var value = void 0;\n                if (!this.interpolable) {\n                    value = p2;\n                }\n                else {\n                    value = catmullRomInterpolate(p0, p1, p2, p3, w, w * w, w * w * w);\n                }\n                if (isAdditive) {\n                    this._additiveValue = value;\n                }\n                else {\n                    target[propName] = value;\n                }\n            }\n        }\n        else {\n            if (arrDim > 0) {\n                arrDim === 1\n                    ? interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w)\n                    : interpolate2DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\n            }\n            else if (isValueColor) {\n                interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\n                if (!isAdditive) {\n                    target[propName] = rgba2String(targetArr);\n                }\n            }\n            else {\n                var value = void 0;\n                if (!this.interpolable) {\n                    value = step(frame[valueKey], nextFrame[valueKey], w);\n                }\n                else {\n                    value = interpolateNumber(frame[valueKey], nextFrame[valueKey], w);\n                }\n                if (isAdditive) {\n                    this._additiveValue = value;\n                }\n                else {\n                    target[propName] = value;\n                }\n            }\n        }\n        if (isAdditive) {\n            this._addToTarget(target);\n        }\n    };\n    Track.prototype._addToTarget = function (target) {\n        var arrDim = this.arrDim;\n        var propName = this.propName;\n        var additiveValue = this._additiveValue;\n        if (arrDim === 0) {\n            if (this.isValueColor) {\n                color.parse(target[propName], tmpRgba);\n                add1DArray(tmpRgba, tmpRgba, additiveValue, 1);\n                target[propName] = rgba2String(tmpRgba);\n            }\n            else {\n                target[propName] = target[propName] + additiveValue;\n            }\n        }\n        else if (arrDim === 1) {\n            add1DArray(target[propName], target[propName], additiveValue, 1);\n        }\n        else if (arrDim === 2) {\n            add2DArray(target[propName], target[propName], additiveValue, 1);\n        }\n    };\n    return Track;\n}());\nvar Animator = (function () {\n    function Animator(target, loop, additiveTo) {\n        this._tracks = {};\n        this._trackKeys = [];\n        this._delay = 0;\n        this._maxTime = 0;\n        this._paused = false;\n        this._started = 0;\n        this._clip = null;\n        this._target = target;\n        this._loop = loop;\n        if (loop && additiveTo) {\n            logError('Can\\' use additive animation on looped animation.');\n            return;\n        }\n        this._additiveAnimators = additiveTo;\n    }\n    Animator.prototype.getTarget = function () {\n        return this._target;\n    };\n    Animator.prototype.changeTarget = function (target) {\n        this._target = target;\n    };\n    Animator.prototype.when = function (time, props) {\n        return this.whenWithKeys(time, props, keys(props));\n    };\n    Animator.prototype.whenWithKeys = function (time, props, propNames) {\n        var tracks = this._tracks;\n        for (var i = 0; i < propNames.length; i++) {\n            var propName = propNames[i];\n            var track = tracks[propName];\n            if (!track) {\n                track = tracks[propName] = new Track(propName);\n                var initialValue = void 0;\n                var additiveTrack = this._getAdditiveTrack(propName);\n                if (additiveTrack) {\n                    var lastFinalKf = additiveTrack.keyframes[additiveTrack.keyframes.length - 1];\n                    initialValue = lastFinalKf && lastFinalKf.value;\n                    if (additiveTrack.isValueColor && initialValue) {\n                        initialValue = rgba2String(initialValue);\n                    }\n                }\n                else {\n                    initialValue = this._target[propName];\n                }\n                if (initialValue == null) {\n                    continue;\n                }\n                if (time !== 0) {\n                    track.addKeyframe(0, cloneValue(initialValue));\n                }\n                this._trackKeys.push(propName);\n            }\n            track.addKeyframe(time, cloneValue(props[propName]));\n        }\n        this._maxTime = Math.max(this._maxTime, time);\n        return this;\n    };\n    Animator.prototype.pause = function () {\n        this._clip.pause();\n        this._paused = true;\n    };\n    Animator.prototype.resume = function () {\n        this._clip.resume();\n        this._paused = false;\n    };\n    Animator.prototype.isPaused = function () {\n        return !!this._paused;\n    };\n    Animator.prototype._doneCallback = function () {\n        this._setTracksFinished();\n        this._clip = null;\n        var doneList = this._doneList;\n        if (doneList) {\n            var len = doneList.length;\n            for (var i = 0; i < len; i++) {\n                doneList[i].call(this);\n            }\n        }\n    };\n    Animator.prototype._abortedCallback = function () {\n        this._setTracksFinished();\n        var animation = this.animation;\n        var abortedList = this._abortedList;\n        if (animation) {\n            animation.removeClip(this._clip);\n        }\n        this._clip = null;\n        if (abortedList) {\n            for (var i = 0; i < abortedList.length; i++) {\n                abortedList[i].call(this);\n            }\n        }\n    };\n    Animator.prototype._setTracksFinished = function () {\n        var tracks = this._tracks;\n        var tracksKeys = this._trackKeys;\n        for (var i = 0; i < tracksKeys.length; i++) {\n            tracks[tracksKeys[i]].setFinished();\n        }\n    };\n    Animator.prototype._getAdditiveTrack = function (trackName) {\n        var additiveTrack;\n        var additiveAnimators = this._additiveAnimators;\n        if (additiveAnimators) {\n            for (var i = 0; i < additiveAnimators.length; i++) {\n                var track = additiveAnimators[i].getTrack(trackName);\n                if (track) {\n                    additiveTrack = track;\n                }\n            }\n        }\n        return additiveTrack;\n    };\n    Animator.prototype.start = function (easing, forceAnimate) {\n        if (this._started > 0) {\n            return;\n        }\n        this._started = 1;\n        var self = this;\n        var tracks = [];\n        for (var i = 0; i < this._trackKeys.length; i++) {\n            var propName = this._trackKeys[i];\n            var track = this._tracks[propName];\n            var additiveTrack = this._getAdditiveTrack(propName);\n            var kfs = track.keyframes;\n            track.prepare(additiveTrack);\n            if (track.needsAnimate()) {\n                tracks.push(track);\n            }\n            else if (!track.interpolable) {\n                var lastKf = kfs[kfs.length - 1];\n                if (lastKf) {\n                    self._target[track.propName] = lastKf.value;\n                }\n            }\n        }\n        if (tracks.length || forceAnimate) {\n            var clip = new Clip({\n                life: this._maxTime,\n                loop: this._loop,\n                delay: this._delay,\n                onframe: function (percent) {\n                    self._started = 2;\n                    var additiveAnimators = self._additiveAnimators;\n                    if (additiveAnimators) {\n                        var stillHasAdditiveAnimator = false;\n                        for (var i = 0; i < additiveAnimators.length; i++) {\n                            if (additiveAnimators[i]._clip) {\n                                stillHasAdditiveAnimator = true;\n                                break;\n                            }\n                        }\n                        if (!stillHasAdditiveAnimator) {\n                            self._additiveAnimators = null;\n                        }\n                    }\n                    for (var i = 0; i < tracks.length; i++) {\n                        tracks[i].step(self._target, percent);\n                    }\n                    var onframeList = self._onframeList;\n                    if (onframeList) {\n                        for (var i = 0; i < onframeList.length; i++) {\n                            onframeList[i](self._target, percent);\n                        }\n                    }\n                },\n                ondestroy: function () {\n                    self._doneCallback();\n                }\n            });\n            this._clip = clip;\n            if (this.animation) {\n                this.animation.addClip(clip);\n            }\n            if (easing && easing !== 'spline') {\n                clip.easing = easing;\n            }\n        }\n        else {\n            this._doneCallback();\n        }\n        return this;\n    };\n    Animator.prototype.stop = function (forwardToLast) {\n        if (!this._clip) {\n            return;\n        }\n        var clip = this._clip;\n        if (forwardToLast) {\n            clip.onframe(1);\n        }\n        this._abortedCallback();\n    };\n    Animator.prototype.delay = function (time) {\n        this._delay = time;\n        return this;\n    };\n    Animator.prototype.during = function (cb) {\n        if (cb) {\n            if (!this._onframeList) {\n                this._onframeList = [];\n            }\n            this._onframeList.push(cb);\n        }\n        return this;\n    };\n    Animator.prototype.done = function (cb) {\n        if (cb) {\n            if (!this._doneList) {\n                this._doneList = [];\n            }\n            this._doneList.push(cb);\n        }\n        return this;\n    };\n    Animator.prototype.aborted = function (cb) {\n        if (cb) {\n            if (!this._abortedList) {\n                this._abortedList = [];\n            }\n            this._abortedList.push(cb);\n        }\n        return this;\n    };\n    Animator.prototype.getClip = function () {\n        return this._clip;\n    };\n    Animator.prototype.getTrack = function (propName) {\n        return this._tracks[propName];\n    };\n    Animator.prototype.stopTracks = function (propNames, forwardToLast) {\n        if (!propNames.length || !this._clip) {\n            return true;\n        }\n        var tracks = this._tracks;\n        var tracksKeys = this._trackKeys;\n        for (var i = 0; i < propNames.length; i++) {\n            var track = tracks[propNames[i]];\n            if (track) {\n                if (forwardToLast) {\n                    track.step(this._target, 1);\n                }\n                else if (this._started === 1) {\n                    track.step(this._target, 0);\n                }\n                track.setFinished();\n            }\n        }\n        var allAborted = true;\n        for (var i = 0; i < tracksKeys.length; i++) {\n            if (!tracks[tracksKeys[i]].isFinished()) {\n                allAborted = false;\n                break;\n            }\n        }\n        if (allAborted) {\n            this._abortedCallback();\n        }\n        return allAborted;\n    };\n    Animator.prototype.saveFinalToTarget = function (target, trackKeys) {\n        if (!target) {\n            return;\n        }\n        trackKeys = trackKeys || this._trackKeys;\n        for (var i = 0; i < trackKeys.length; i++) {\n            var propName = trackKeys[i];\n            var track = this._tracks[propName];\n            if (!track || track.isFinished()) {\n                continue;\n            }\n            var kfs = track.keyframes;\n            var lastKf = kfs[kfs.length - 1];\n            if (lastKf) {\n                var val = cloneValue(lastKf.value);\n                if (track.isValueColor) {\n                    val = rgba2String(val);\n                }\n                target[propName] = val;\n            }\n        }\n    };\n    Animator.prototype.__changeFinalValue = function (finalProps, trackKeys) {\n        trackKeys = trackKeys || keys(finalProps);\n        for (var i = 0; i < trackKeys.length; i++) {\n            var propName = trackKeys[i];\n            var track = this._tracks[propName];\n            if (!track) {\n                continue;\n            }\n            var kfs = track.keyframes;\n            if (kfs.length > 1) {\n                var lastKf = kfs.pop();\n                track.addKeyframe(lastKf.time, finalProps[propName]);\n                track.prepare(track.getAdditiveTrack());\n            }\n        }\n    };\n    return Animator;\n}());\nexport default Animator;\n","var Point = (function () {\n    function Point(x, y) {\n        this.x = x || 0;\n        this.y = y || 0;\n    }\n    Point.prototype.copy = function (other) {\n        this.x = other.x;\n        this.y = other.y;\n        return this;\n    };\n    Point.prototype.clone = function () {\n        return new Point(this.x, this.y);\n    };\n    Point.prototype.set = function (x, y) {\n        this.x = x;\n        this.y = y;\n        return this;\n    };\n    Point.prototype.equal = function (other) {\n        return other.x === this.x && other.y === this.y;\n    };\n    Point.prototype.add = function (other) {\n        this.x += other.x;\n        this.y += other.y;\n        return this;\n    };\n    Point.prototype.scale = function (scalar) {\n        this.x *= scalar;\n        this.y *= scalar;\n    };\n    Point.prototype.scaleAndAdd = function (other, scalar) {\n        this.x += other.x * scalar;\n        this.y += other.y * scalar;\n    };\n    Point.prototype.sub = function (other) {\n        this.x -= other.x;\n        this.y -= other.y;\n        return this;\n    };\n    Point.prototype.dot = function (other) {\n        return this.x * other.x + this.y * other.y;\n    };\n    Point.prototype.len = function () {\n        return Math.sqrt(this.x * this.x + this.y * this.y);\n    };\n    Point.prototype.lenSquare = function () {\n        return this.x * this.x + this.y * this.y;\n    };\n    Point.prototype.normalize = function () {\n        var len = this.len();\n        this.x /= len;\n        this.y /= len;\n        return this;\n    };\n    Point.prototype.distance = function (other) {\n        var dx = this.x - other.x;\n        var dy = this.y - other.y;\n        return Math.sqrt(dx * dx + dy * dy);\n    };\n    Point.prototype.distanceSquare = function (other) {\n        var dx = this.x - other.x;\n        var dy = this.y - other.y;\n        return dx * dx + dy * dy;\n    };\n    Point.prototype.negate = function () {\n        this.x = -this.x;\n        this.y = -this.y;\n        return this;\n    };\n    Point.prototype.transform = function (m) {\n        if (!m) {\n            return;\n        }\n        var x = this.x;\n        var y = this.y;\n        this.x = m[0] * x + m[2] * y + m[4];\n        this.y = m[1] * x + m[3] * y + m[5];\n        return this;\n    };\n    Point.prototype.toArray = function (out) {\n        out[0] = this.x;\n        out[1] = this.y;\n        return out;\n    };\n    Point.prototype.fromArray = function (input) {\n        this.x = input[0];\n        this.y = input[1];\n    };\n    Point.set = function (p, x, y) {\n        p.x = x;\n        p.y = y;\n    };\n    Point.copy = function (p, p2) {\n        p.x = p2.x;\n        p.y = p2.y;\n    };\n    Point.len = function (p) {\n        return Math.sqrt(p.x * p.x + p.y * p.y);\n    };\n    Point.lenSquare = function (p) {\n        return p.x * p.x + p.y * p.y;\n    };\n    Point.dot = function (p0, p1) {\n        return p0.x * p1.x + p0.y * p1.y;\n    };\n    Point.add = function (out, p0, p1) {\n        out.x = p0.x + p1.x;\n        out.y = p0.y + p1.y;\n    };\n    Point.sub = function (out, p0, p1) {\n        out.x = p0.x - p1.x;\n        out.y = p0.y - p1.y;\n    };\n    Point.scale = function (out, p0, scalar) {\n        out.x = p0.x * scalar;\n        out.y = p0.y * scalar;\n    };\n    Point.scaleAndAdd = function (out, p0, p1, scalar) {\n        out.x = p0.x + p1.x * scalar;\n        out.y = p0.y + p1.y * scalar;\n    };\n    Point.lerp = function (out, p0, p1, t) {\n        var onet = 1 - t;\n        out.x = onet * p0.x + t * p1.x;\n        out.y = onet * p0.y + t * p1.y;\n    };\n    return Point;\n}());\nexport default Point;\n","import * as matrix from './matrix';\nimport Point from './Point';\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar lt = new Point();\nvar rb = new Point();\nvar lb = new Point();\nvar rt = new Point();\nvar minTv = new Point();\nvar maxTv = new Point();\nvar BoundingRect = (function () {\n    function BoundingRect(x, y, width, height) {\n        if (width < 0 && isFinite(width)) {\n            x = x + width;\n            width = -width;\n        }\n        if (height < 0 && isFinite(height)) {\n            y = y + height;\n            height = -height;\n        }\n        this.x = x;\n        this.y = y;\n        this.width = width;\n        this.height = height;\n    }\n    BoundingRect.prototype.union = function (other) {\n        var x = mathMin(other.x, this.x);\n        var y = mathMin(other.y, this.y);\n        if (isFinite(this.x) && isFinite(this.width)) {\n            this.width = mathMax(other.x + other.width, this.x + this.width) - x;\n        }\n        else {\n            this.width = other.width;\n        }\n        if (isFinite(this.y) && isFinite(this.height)) {\n            this.height = mathMax(other.y + other.height, this.y + this.height) - y;\n        }\n        else {\n            this.height = other.height;\n        }\n        this.x = x;\n        this.y = y;\n    };\n    BoundingRect.prototype.applyTransform = function (m) {\n        BoundingRect.applyTransform(this, this, m);\n    };\n    BoundingRect.prototype.calculateTransform = function (b) {\n        var a = this;\n        var sx = b.width / a.width;\n        var sy = b.height / a.height;\n        var m = matrix.create();\n        matrix.translate(m, m, [-a.x, -a.y]);\n        matrix.scale(m, m, [sx, sy]);\n        matrix.translate(m, m, [b.x, b.y]);\n        return m;\n    };\n    BoundingRect.prototype.intersect = function (b, mtv) {\n        if (!b) {\n            return false;\n        }\n        if (!(b instanceof BoundingRect)) {\n            b = BoundingRect.create(b);\n        }\n        var a = this;\n        var ax0 = a.x;\n        var ax1 = a.x + a.width;\n        var ay0 = a.y;\n        var ay1 = a.y + a.height;\n        var bx0 = b.x;\n        var bx1 = b.x + b.width;\n        var by0 = b.y;\n        var by1 = b.y + b.height;\n        var overlap = !(ax1 < bx0 || bx1 < ax0 || ay1 < by0 || by1 < ay0);\n        if (mtv) {\n            var dMin = Infinity;\n            var dMax = 0;\n            var d0 = Math.abs(ax1 - bx0);\n            var d1 = Math.abs(bx1 - ax0);\n            var d2 = Math.abs(ay1 - by0);\n            var d3 = Math.abs(by1 - ay0);\n            var dx = Math.min(d0, d1);\n            var dy = Math.min(d2, d3);\n            if (ax1 < bx0 || bx1 < ax0) {\n                if (dx > dMax) {\n                    dMax = dx;\n                    if (d0 < d1) {\n                        Point.set(maxTv, -d0, 0);\n                    }\n                    else {\n                        Point.set(maxTv, d1, 0);\n                    }\n                }\n            }\n            else {\n                if (dx < dMin) {\n                    dMin = dx;\n                    if (d0 < d1) {\n                        Point.set(minTv, d0, 0);\n                    }\n                    else {\n                        Point.set(minTv, -d1, 0);\n                    }\n                }\n            }\n            if (ay1 < by0 || by1 < ay0) {\n                if (dy > dMax) {\n                    dMax = dy;\n                    if (d2 < d3) {\n                        Point.set(maxTv, 0, -d2);\n                    }\n                    else {\n                        Point.set(maxTv, 0, d3);\n                    }\n                }\n            }\n            else {\n                if (dx < dMin) {\n                    dMin = dx;\n                    if (d2 < d3) {\n                        Point.set(minTv, 0, d2);\n                    }\n                    else {\n                        Point.set(minTv, 0, -d3);\n                    }\n                }\n            }\n        }\n        if (mtv) {\n            Point.copy(mtv, overlap ? minTv : maxTv);\n        }\n        return overlap;\n    };\n    BoundingRect.prototype.contain = function (x, y) {\n        var rect = this;\n        return x >= rect.x\n            && x <= (rect.x + rect.width)\n            && y >= rect.y\n            && y <= (rect.y + rect.height);\n    };\n    BoundingRect.prototype.clone = function () {\n        return new BoundingRect(this.x, this.y, this.width, this.height);\n    };\n    BoundingRect.prototype.copy = function (other) {\n        BoundingRect.copy(this, other);\n    };\n    BoundingRect.prototype.plain = function () {\n        return {\n            x: this.x,\n            y: this.y,\n            width: this.width,\n            height: this.height\n        };\n    };\n    BoundingRect.prototype.isFinite = function () {\n        return isFinite(this.x)\n            && isFinite(this.y)\n            && isFinite(this.width)\n            && isFinite(this.height);\n    };\n    BoundingRect.prototype.isZero = function () {\n        return this.width === 0 || this.height === 0;\n    };\n    BoundingRect.create = function (rect) {\n        return new BoundingRect(rect.x, rect.y, rect.width, rect.height);\n    };\n    BoundingRect.copy = function (target, source) {\n        target.x = source.x;\n        target.y = source.y;\n        target.width = source.width;\n        target.height = source.height;\n    };\n    BoundingRect.applyTransform = function (target, source, m) {\n        if (!m) {\n            if (target !== source) {\n                BoundingRect.copy(target, source);\n            }\n            return;\n        }\n        if (m[1] < 1e-5 && m[1] > -1e-5 && m[2] < 1e-5 && m[2] > -1e-5) {\n            var sx = m[0];\n            var sy = m[3];\n            var tx = m[4];\n            var ty = m[5];\n            target.x = source.x * sx + tx;\n            target.y = source.y * sy + ty;\n            target.width = source.width * sx;\n            target.height = source.height * sy;\n            if (target.width < 0) {\n                target.x += target.width;\n                target.width = -target.width;\n            }\n            if (target.height < 0) {\n                target.y += target.height;\n                target.height = -target.height;\n            }\n            return;\n        }\n        lt.x = lb.x = source.x;\n        lt.y = rt.y = source.y;\n        rb.x = rt.x = source.x + source.width;\n        rb.y = lb.y = source.y + source.height;\n        lt.transform(m);\n        rt.transform(m);\n        rb.transform(m);\n        lb.transform(m);\n        target.x = mathMin(lt.x, rb.x, lb.x, rt.x);\n        target.y = mathMin(lt.y, rb.y, lb.y, rt.y);\n        var maxX = mathMax(lt.x, rb.x, lb.x, rt.x);\n        var maxY = mathMax(lt.y, rb.y, lb.y, rt.y);\n        target.width = maxX - target.x;\n        target.height = maxY - target.y;\n    };\n    return BoundingRect;\n}());\nexport default BoundingRect;\n","import BoundingRect from '../core/BoundingRect';\nimport { createCanvas } from '../core/util';\nimport LRU from '../core/LRU';\nvar textWidthCache = {};\nexport var DEFAULT_FONT = '12px sans-serif';\nvar _ctx;\nvar _cachedFont;\nfunction defaultMeasureText(text, font) {\n    if (!_ctx) {\n        _ctx = createCanvas().getContext('2d');\n    }\n    if (_cachedFont !== font) {\n        _cachedFont = _ctx.font = font || DEFAULT_FONT;\n    }\n    return _ctx.measureText(text);\n}\nvar methods = {\n    measureText: defaultMeasureText\n};\nexport function $override(name, fn) {\n    methods[name] = fn;\n}\nexport function getWidth(text, font) {\n    font = font || DEFAULT_FONT;\n    var cacheOfFont = textWidthCache[font];\n    if (!cacheOfFont) {\n        cacheOfFont = textWidthCache[font] = new LRU(500);\n    }\n    var width = cacheOfFont.get(text);\n    if (width == null) {\n        width = methods.measureText(text, font).width;\n        cacheOfFont.put(text, width);\n    }\n    return width;\n}\nexport function innerGetBoundingRect(text, font, textAlign, textBaseline) {\n    var width = getWidth(text, font);\n    var height = getLineHeight(font);\n    var x = adjustTextX(0, width, textAlign);\n    var y = adjustTextY(0, height, textBaseline);\n    var rect = new BoundingRect(x, y, width, height);\n    return rect;\n}\nexport function getBoundingRect(text, font, textAlign, textBaseline) {\n    var textLines = ((text || '') + '').split('\\n');\n    var len = textLines.length;\n    if (len === 1) {\n        return innerGetBoundingRect(textLines[0], font, textAlign, textBaseline);\n    }\n    else {\n        var uniondRect = new BoundingRect(0, 0, 0, 0);\n        for (var i = 0; i < textLines.length; i++) {\n            var rect = innerGetBoundingRect(textLines[i], font, textAlign, textBaseline);\n            i === 0 ? uniondRect.copy(rect) : uniondRect.union(rect);\n        }\n        return uniondRect;\n    }\n}\nexport function adjustTextX(x, width, textAlign) {\n    if (textAlign === 'right') {\n        x -= width;\n    }\n    else if (textAlign === 'center') {\n        x -= width / 2;\n    }\n    return x;\n}\nexport function adjustTextY(y, height, verticalAlign) {\n    if (verticalAlign === 'middle') {\n        y -= height / 2;\n    }\n    else if (verticalAlign === 'bottom') {\n        y -= height;\n    }\n    return y;\n}\nexport function getLineHeight(font) {\n    return getWidth('国', font);\n}\nexport function measureText(text, font) {\n    return methods.measureText(text, font);\n}\nexport function parsePercent(value, maxValue) {\n    if (typeof value === 'string') {\n        if (value.lastIndexOf('%') >= 0) {\n            return parseFloat(value) / 100 * maxValue;\n        }\n        return parseFloat(value);\n    }\n    return value;\n}\nexport function calculateTextPosition(out, opts, rect) {\n    var textPosition = opts.position || 'inside';\n    var distance = opts.distance != null ? opts.distance : 5;\n    var height = rect.height;\n    var width = rect.width;\n    var halfHeight = height / 2;\n    var x = rect.x;\n    var y = rect.y;\n    var textAlign = 'left';\n    var textVerticalAlign = 'top';\n    if (textPosition instanceof Array) {\n        x += parsePercent(textPosition[0], rect.width);\n        y += parsePercent(textPosition[1], rect.height);\n        textAlign = null;\n        textVerticalAlign = null;\n    }\n    else {\n        switch (textPosition) {\n            case 'left':\n                x -= distance;\n                y += halfHeight;\n                textAlign = 'right';\n                textVerticalAlign = 'middle';\n                break;\n            case 'right':\n                x += distance + width;\n                y += halfHeight;\n                textVerticalAlign = 'middle';\n                break;\n            case 'top':\n                x += width / 2;\n                y -= distance;\n                textAlign = 'center';\n                textVerticalAlign = 'bottom';\n                break;\n            case 'bottom':\n                x += width / 2;\n                y += height + distance;\n                textAlign = 'center';\n                break;\n            case 'inside':\n                x += width / 2;\n                y += halfHeight;\n                textAlign = 'center';\n                textVerticalAlign = 'middle';\n                break;\n            case 'insideLeft':\n                x += distance;\n                y += halfHeight;\n                textVerticalAlign = 'middle';\n                break;\n            case 'insideRight':\n                x += width - distance;\n                y += halfHeight;\n                textAlign = 'right';\n                textVerticalAlign = 'middle';\n                break;\n            case 'insideTop':\n                x += width / 2;\n                y += distance;\n                textAlign = 'center';\n                break;\n            case 'insideBottom':\n                x += width / 2;\n                y += height - distance;\n                textAlign = 'center';\n                textVerticalAlign = 'bottom';\n                break;\n            case 'insideTopLeft':\n                x += distance;\n                y += distance;\n                break;\n            case 'insideTopRight':\n                x += width - distance;\n                y += distance;\n                textAlign = 'right';\n                break;\n            case 'insideBottomLeft':\n                x += distance;\n                y += height - distance;\n                textVerticalAlign = 'bottom';\n                break;\n            case 'insideBottomRight':\n                x += width - distance;\n                y += height - distance;\n                textAlign = 'right';\n                textVerticalAlign = 'bottom';\n                break;\n        }\n    }\n    out = out || {};\n    out.x = x;\n    out.y = y;\n    out.align = textAlign;\n    out.verticalAlign = textVerticalAlign;\n    return out;\n}\n","var dpr = 1;\nif (typeof window !== 'undefined') {\n    dpr = Math.max(window.devicePixelRatio\n        || (window.screen && window.screen.deviceXDPI / window.screen.logicalXDPI)\n        || 1, 1);\n}\nexport var debugMode = 0;\nexport var devicePixelRatio = dpr;\nexport var DARK_MODE_THRESHOLD = 0.4;\nexport var DARK_LABEL_COLOR = '#333';\nexport var LIGHT_LABEL_COLOR = '#ccc';\nexport var LIGHTER_LABEL_COLOR = '#eee';\n","import Transformable from './core/Transformable';\nimport Animator, { cloneValue } from './animation/Animator';\nimport BoundingRect from './core/BoundingRect';\nimport Eventful from './core/Eventful';\nimport { calculateTextPosition, parsePercent } from './contain/text';\nimport { guid, isObject, keys, extend, indexOf, logError, mixin, isArrayLike, isTypedArray } from './core/util';\nimport { LIGHT_LABEL_COLOR, DARK_LABEL_COLOR } from './config';\nimport { parse, stringify } from './tool/color';\nimport env from './core/env';\nexport var PRESERVED_NORMAL_STATE = '__zr_normal__';\nvar PRIMARY_STATES_KEYS = ['x', 'y', 'scaleX', 'scaleY', 'originX', 'originY', 'rotation', 'ignore'];\nvar DEFAULT_ANIMATABLE_MAP = {\n    x: true,\n    y: true,\n    scaleX: true,\n    scaleY: true,\n    originX: true,\n    originY: true,\n    rotation: true,\n    ignore: false\n};\nvar tmpTextPosCalcRes = {};\nvar tmpBoundingRect = new BoundingRect(0, 0, 0, 0);\nvar Element = (function () {\n    function Element(props) {\n        this.id = guid();\n        this.animators = [];\n        this.currentStates = [];\n        this.states = {};\n        this._init(props);\n    }\n    Element.prototype._init = function (props) {\n        this.attr(props);\n    };\n    Element.prototype.drift = function (dx, dy, e) {\n        switch (this.draggable) {\n            case 'horizontal':\n                dy = 0;\n                break;\n            case 'vertical':\n                dx = 0;\n                break;\n        }\n        var m = this.transform;\n        if (!m) {\n            m = this.transform = [1, 0, 0, 1, 0, 0];\n        }\n        m[4] += dx;\n        m[5] += dy;\n        this.decomposeTransform();\n        this.markRedraw();\n    };\n    Element.prototype.beforeUpdate = function () { };\n    Element.prototype.afterUpdate = function () { };\n    Element.prototype.update = function () {\n        this.updateTransform();\n        if (this.__dirty) {\n            this.updateInnerText();\n        }\n    };\n    Element.prototype.updateInnerText = function (forceUpdate) {\n        var textEl = this._textContent;\n        if (textEl && (!textEl.ignore || forceUpdate)) {\n            if (!this.textConfig) {\n                this.textConfig = {};\n            }\n            var textConfig = this.textConfig;\n            var isLocal = textConfig.local;\n            var attachedTransform = textEl.attachedTransform;\n            var textAlign = void 0;\n            var textVerticalAlign = void 0;\n            var textStyleChanged = false;\n            if (isLocal) {\n                attachedTransform.parent = this;\n            }\n            else {\n                attachedTransform.parent = null;\n            }\n            var innerOrigin = false;\n            attachedTransform.x = textEl.x;\n            attachedTransform.y = textEl.y;\n            attachedTransform.originX = textEl.originX;\n            attachedTransform.originY = textEl.originY;\n            attachedTransform.rotation = textEl.rotation;\n            attachedTransform.scaleX = textEl.scaleX;\n            attachedTransform.scaleY = textEl.scaleY;\n            if (textConfig.position != null) {\n                var layoutRect = tmpBoundingRect;\n                if (textConfig.layoutRect) {\n                    layoutRect.copy(textConfig.layoutRect);\n                }\n                else {\n                    layoutRect.copy(this.getBoundingRect());\n                }\n                if (!isLocal) {\n                    layoutRect.applyTransform(this.transform);\n                }\n                if (this.calculateTextPosition) {\n                    this.calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\n                }\n                else {\n                    calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\n                }\n                attachedTransform.x = tmpTextPosCalcRes.x;\n                attachedTransform.y = tmpTextPosCalcRes.y;\n                textAlign = tmpTextPosCalcRes.align;\n                textVerticalAlign = tmpTextPosCalcRes.verticalAlign;\n                var textOrigin = textConfig.origin;\n                if (textOrigin && textConfig.rotation != null) {\n                    var relOriginX = void 0;\n                    var relOriginY = void 0;\n                    if (textOrigin === 'center') {\n                        relOriginX = layoutRect.width * 0.5;\n                        relOriginY = layoutRect.height * 0.5;\n                    }\n                    else {\n                        relOriginX = parsePercent(textOrigin[0], layoutRect.width);\n                        relOriginY = parsePercent(textOrigin[1], layoutRect.height);\n                    }\n                    innerOrigin = true;\n                    attachedTransform.originX = -attachedTransform.x + relOriginX + (isLocal ? 0 : layoutRect.x);\n                    attachedTransform.originY = -attachedTransform.y + relOriginY + (isLocal ? 0 : layoutRect.y);\n                }\n            }\n            if (textConfig.rotation != null) {\n                attachedTransform.rotation = textConfig.rotation;\n            }\n            var textOffset = textConfig.offset;\n            if (textOffset) {\n                attachedTransform.x += textOffset[0];\n                attachedTransform.y += textOffset[1];\n                if (!innerOrigin) {\n                    attachedTransform.originX = -textOffset[0];\n                    attachedTransform.originY = -textOffset[1];\n                }\n            }\n            var isInside = textConfig.inside == null\n                ? (typeof textConfig.position === 'string' && textConfig.position.indexOf('inside') >= 0)\n                : textConfig.inside;\n            var innerTextDefaultStyle = this._innerTextDefaultStyle || (this._innerTextDefaultStyle = {});\n            var textFill = void 0;\n            var textStroke = void 0;\n            var autoStroke = void 0;\n            if (isInside && this.canBeInsideText()) {\n                textFill = textConfig.insideFill;\n                textStroke = textConfig.insideStroke;\n                if (textFill == null || textFill === 'auto') {\n                    textFill = this.getInsideTextFill();\n                }\n                if (textStroke == null || textStroke === 'auto') {\n                    textStroke = this.getInsideTextStroke(textFill);\n                    autoStroke = true;\n                }\n            }\n            else {\n                textFill = textConfig.outsideFill;\n                textStroke = textConfig.outsideStroke;\n                if (textFill == null || textFill === 'auto') {\n                    textFill = this.getOutsideFill();\n                }\n                if (textStroke == null || textStroke === 'auto') {\n                    textStroke = this.getOutsideStroke(textFill);\n                    autoStroke = true;\n                }\n            }\n            textFill = textFill || '#000';\n            if (textFill !== innerTextDefaultStyle.fill\n                || textStroke !== innerTextDefaultStyle.stroke\n                || autoStroke !== innerTextDefaultStyle.autoStroke\n                || textAlign !== innerTextDefaultStyle.align\n                || textVerticalAlign !== innerTextDefaultStyle.verticalAlign) {\n                textStyleChanged = true;\n                innerTextDefaultStyle.fill = textFill;\n                innerTextDefaultStyle.stroke = textStroke;\n                innerTextDefaultStyle.autoStroke = autoStroke;\n                innerTextDefaultStyle.align = textAlign;\n                innerTextDefaultStyle.verticalAlign = textVerticalAlign;\n                textEl.setDefaultTextStyle(innerTextDefaultStyle);\n            }\n            if (textStyleChanged) {\n                textEl.dirtyStyle();\n            }\n            textEl.markRedraw();\n        }\n    };\n    Element.prototype.canBeInsideText = function () {\n        return true;\n    };\n    Element.prototype.getInsideTextFill = function () {\n        return '#fff';\n    };\n    Element.prototype.getInsideTextStroke = function (textFill) {\n        return '#000';\n    };\n    Element.prototype.getOutsideFill = function () {\n        return this.__zr && this.__zr.isDarkMode() ? LIGHT_LABEL_COLOR : DARK_LABEL_COLOR;\n    };\n    Element.prototype.getOutsideStroke = function (textFill) {\n        var backgroundColor = this.__zr && this.__zr.getBackgroundColor();\n        var colorArr = typeof backgroundColor === 'string' && parse(backgroundColor);\n        if (!colorArr) {\n            colorArr = [255, 255, 255, 1];\n        }\n        var alpha = colorArr[3];\n        var isDark = this.__zr.isDarkMode();\n        for (var i = 0; i < 3; i++) {\n            colorArr[i] = colorArr[i] * alpha + (isDark ? 0 : 255) * (1 - alpha);\n        }\n        colorArr[3] = 1;\n        return stringify(colorArr, 'rgba');\n    };\n    Element.prototype.traverse = function (cb, context) { };\n    Element.prototype.attrKV = function (key, value) {\n        if (key === 'textConfig') {\n            this.setTextConfig(value);\n        }\n        else if (key === 'textContent') {\n            this.setTextContent(value);\n        }\n        else if (key === 'clipPath') {\n            this.setClipPath(value);\n        }\n        else if (key === 'extra') {\n            this.extra = this.extra || {};\n            extend(this.extra, value);\n        }\n        else {\n            this[key] = value;\n        }\n    };\n    Element.prototype.hide = function () {\n        this.ignore = true;\n        this.markRedraw();\n    };\n    Element.prototype.show = function () {\n        this.ignore = false;\n        this.markRedraw();\n    };\n    Element.prototype.attr = function (keyOrObj, value) {\n        if (typeof keyOrObj === 'string') {\n            this.attrKV(keyOrObj, value);\n        }\n        else if (isObject(keyOrObj)) {\n            var obj = keyOrObj;\n            var keysArr = keys(obj);\n            for (var i = 0; i < keysArr.length; i++) {\n                var key = keysArr[i];\n                this.attrKV(key, keyOrObj[key]);\n            }\n        }\n        this.markRedraw();\n        return this;\n    };\n    Element.prototype.saveCurrentToNormalState = function (toState) {\n        this._innerSaveToNormal(toState);\n        var normalState = this._normalState;\n        for (var i = 0; i < this.animators.length; i++) {\n            var animator = this.animators[i];\n            var fromStateTransition = animator.__fromStateTransition;\n            if (fromStateTransition && fromStateTransition !== PRESERVED_NORMAL_STATE) {\n                continue;\n            }\n            var targetName = animator.targetName;\n            var target = targetName\n                ? normalState[targetName] : normalState;\n            animator.saveFinalToTarget(target);\n        }\n    };\n    Element.prototype._innerSaveToNormal = function (toState) {\n        var normalState = this._normalState;\n        if (!normalState) {\n            normalState = this._normalState = {};\n        }\n        if (toState.textConfig && !normalState.textConfig) {\n            normalState.textConfig = this.textConfig;\n        }\n        this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS);\n    };\n    Element.prototype._savePrimaryToNormal = function (toState, normalState, primaryKeys) {\n        for (var i = 0; i < primaryKeys.length; i++) {\n            var key = primaryKeys[i];\n            if (toState[key] != null && !(key in normalState)) {\n                normalState[key] = this[key];\n            }\n        }\n    };\n    Element.prototype.hasState = function () {\n        return this.currentStates.length > 0;\n    };\n    Element.prototype.getState = function (name) {\n        return this.states[name];\n    };\n    Element.prototype.ensureState = function (name) {\n        var states = this.states;\n        if (!states[name]) {\n            states[name] = {};\n        }\n        return states[name];\n    };\n    Element.prototype.clearStates = function (noAnimation) {\n        this.useState(PRESERVED_NORMAL_STATE, false, noAnimation);\n    };\n    Element.prototype.useState = function (stateName, keepCurrentStates, noAnimation) {\n        var toNormalState = stateName === PRESERVED_NORMAL_STATE;\n        var hasStates = this.hasState();\n        if (!hasStates && toNormalState) {\n            return;\n        }\n        var currentStates = this.currentStates;\n        var animationCfg = this.stateTransition;\n        if (indexOf(currentStates, stateName) >= 0 && (keepCurrentStates || currentStates.length === 1)) {\n            return;\n        }\n        var state;\n        if (this.stateProxy && !toNormalState) {\n            state = this.stateProxy(stateName);\n        }\n        if (!state) {\n            state = (this.states && this.states[stateName]);\n        }\n        if (!state && !toNormalState) {\n            logError(\"State \" + stateName + \" not exists.\");\n            return;\n        }\n        if (!toNormalState) {\n            this.saveCurrentToNormalState(state);\n        }\n        var useHoverLayer = !!(state && state.hoverLayer);\n        if (useHoverLayer) {\n            this._toggleHoverLayerFlag(true);\n        }\n        this._applyStateObj(stateName, state, this._normalState, keepCurrentStates, !noAnimation && !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\n        if (this._textContent) {\n            this._textContent.useState(stateName, keepCurrentStates);\n        }\n        if (this._textGuide) {\n            this._textGuide.useState(stateName, keepCurrentStates);\n        }\n        if (toNormalState) {\n            this.currentStates = [];\n            this._normalState = {};\n        }\n        else {\n            if (!keepCurrentStates) {\n                this.currentStates = [stateName];\n            }\n            else {\n                this.currentStates.push(stateName);\n            }\n        }\n        this._updateAnimationTargets();\n        this.markRedraw();\n        if (!useHoverLayer && this.__inHover) {\n            this._toggleHoverLayerFlag(false);\n            this.__dirty &= ~Element.REDARAW_BIT;\n        }\n        return state;\n    };\n    Element.prototype.useStates = function (states, noAnimation) {\n        if (!states.length) {\n            this.clearStates();\n        }\n        else {\n            var stateObjects = [];\n            var currentStates = this.currentStates;\n            var len = states.length;\n            var notChange = len === currentStates.length;\n            if (notChange) {\n                for (var i = 0; i < len; i++) {\n                    if (states[i] !== currentStates[i]) {\n                        notChange = false;\n                        break;\n                    }\n                }\n            }\n            if (notChange) {\n                return;\n            }\n            for (var i = 0; i < len; i++) {\n                var stateName = states[i];\n                var stateObj = void 0;\n                if (this.stateProxy) {\n                    stateObj = this.stateProxy(stateName, states);\n                }\n                if (!stateObj) {\n                    stateObj = this.states[stateName];\n                }\n                if (stateObj) {\n                    stateObjects.push(stateObj);\n                }\n            }\n            var useHoverLayer = !!(stateObjects[len - 1] && stateObjects[len - 1].hoverLayer);\n            if (useHoverLayer) {\n                this._toggleHoverLayerFlag(true);\n            }\n            var mergedState = this._mergeStates(stateObjects);\n            var animationCfg = this.stateTransition;\n            this.saveCurrentToNormalState(mergedState);\n            this._applyStateObj(states.join(','), mergedState, this._normalState, false, !noAnimation && !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\n            if (this._textContent) {\n                this._textContent.useStates(states);\n            }\n            if (this._textGuide) {\n                this._textGuide.useStates(states);\n            }\n            this._updateAnimationTargets();\n            this.currentStates = states.slice();\n            this.markRedraw();\n            if (!useHoverLayer && this.__inHover) {\n                this._toggleHoverLayerFlag(false);\n                this.__dirty &= ~Element.REDARAW_BIT;\n            }\n        }\n    };\n    Element.prototype._updateAnimationTargets = function () {\n        for (var i = 0; i < this.animators.length; i++) {\n            var animator = this.animators[i];\n            if (animator.targetName) {\n                animator.changeTarget(this[animator.targetName]);\n            }\n        }\n    };\n    Element.prototype.removeState = function (state) {\n        var idx = indexOf(this.currentStates, state);\n        if (idx >= 0) {\n            var currentStates = this.currentStates.slice();\n            currentStates.splice(idx, 1);\n            this.useStates(currentStates);\n        }\n    };\n    Element.prototype.replaceState = function (oldState, newState, forceAdd) {\n        var currentStates = this.currentStates.slice();\n        var idx = indexOf(currentStates, oldState);\n        var newStateExists = indexOf(currentStates, newState) >= 0;\n        if (idx >= 0) {\n            if (!newStateExists) {\n                currentStates[idx] = newState;\n            }\n            else {\n                currentStates.splice(idx, 1);\n            }\n        }\n        else if (forceAdd && !newStateExists) {\n            currentStates.push(newState);\n        }\n        this.useStates(currentStates);\n    };\n    Element.prototype.toggleState = function (state, enable) {\n        if (enable) {\n            this.useState(state, true);\n        }\n        else {\n            this.removeState(state);\n        }\n    };\n    Element.prototype._mergeStates = function (states) {\n        var mergedState = {};\n        var mergedTextConfig;\n        for (var i = 0; i < states.length; i++) {\n            var state = states[i];\n            extend(mergedState, state);\n            if (state.textConfig) {\n                mergedTextConfig = mergedTextConfig || {};\n                extend(mergedTextConfig, state.textConfig);\n            }\n        }\n        if (mergedTextConfig) {\n            mergedState.textConfig = mergedTextConfig;\n        }\n        return mergedState;\n    };\n    Element.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\n        var needsRestoreToNormal = !(state && keepCurrentStates);\n        if (state && state.textConfig) {\n            this.textConfig = extend({}, keepCurrentStates ? this.textConfig : normalState.textConfig);\n            extend(this.textConfig, state.textConfig);\n        }\n        else if (needsRestoreToNormal) {\n            if (normalState.textConfig) {\n                this.textConfig = normalState.textConfig;\n            }\n        }\n        var transitionTarget = {};\n        var hasTransition = false;\n        for (var i = 0; i < PRIMARY_STATES_KEYS.length; i++) {\n            var key = PRIMARY_STATES_KEYS[i];\n            var propNeedsTransition = transition && DEFAULT_ANIMATABLE_MAP[key];\n            if (state && state[key] != null) {\n                if (propNeedsTransition) {\n                    hasTransition = true;\n                    transitionTarget[key] = state[key];\n                }\n                else {\n                    this[key] = state[key];\n                }\n            }\n            else if (needsRestoreToNormal) {\n                if (normalState[key] != null) {\n                    if (propNeedsTransition) {\n                        hasTransition = true;\n                        transitionTarget[key] = normalState[key];\n                    }\n                    else {\n                        this[key] = normalState[key];\n                    }\n                }\n            }\n        }\n        if (!transition) {\n            for (var i = 0; i < this.animators.length; i++) {\n                var animator = this.animators[i];\n                var targetName = animator.targetName;\n                animator.__changeFinalValue(targetName\n                    ? (state || normalState)[targetName]\n                    : (state || normalState));\n            }\n        }\n        if (hasTransition) {\n            this._transitionState(stateName, transitionTarget, animationCfg);\n        }\n    };\n    Element.prototype._attachComponent = function (componentEl) {\n        if (componentEl.__zr && !componentEl.__hostTarget) {\n            throw new Error('Text element has been added to zrender.');\n        }\n        if (componentEl === this) {\n            throw new Error('Recursive component attachment.');\n        }\n        var zr = this.__zr;\n        if (zr) {\n            componentEl.addSelfToZr(zr);\n        }\n        componentEl.__zr = zr;\n        componentEl.__hostTarget = this;\n    };\n    Element.prototype._detachComponent = function (componentEl) {\n        if (componentEl.__zr) {\n            componentEl.removeSelfFromZr(componentEl.__zr);\n        }\n        componentEl.__zr = null;\n        componentEl.__hostTarget = null;\n    };\n    Element.prototype.getClipPath = function () {\n        return this._clipPath;\n    };\n    Element.prototype.setClipPath = function (clipPath) {\n        if (this._clipPath && this._clipPath !== clipPath) {\n            this.removeClipPath();\n        }\n        this._attachComponent(clipPath);\n        this._clipPath = clipPath;\n        this.markRedraw();\n    };\n    Element.prototype.removeClipPath = function () {\n        var clipPath = this._clipPath;\n        if (clipPath) {\n            this._detachComponent(clipPath);\n            this._clipPath = null;\n            this.markRedraw();\n        }\n    };\n    Element.prototype.getTextContent = function () {\n        return this._textContent;\n    };\n    Element.prototype.setTextContent = function (textEl) {\n        var previousTextContent = this._textContent;\n        if (previousTextContent === textEl) {\n            return;\n        }\n        if (previousTextContent && previousTextContent !== textEl) {\n            this.removeTextContent();\n        }\n        if (textEl.__zr && !textEl.__hostTarget) {\n            throw new Error('Text element has been added to zrender.');\n        }\n        textEl.attachedTransform = new Transformable();\n        this._attachComponent(textEl);\n        this._textContent = textEl;\n        this.markRedraw();\n    };\n    Element.prototype.setTextConfig = function (cfg) {\n        if (!this.textConfig) {\n            this.textConfig = {};\n        }\n        extend(this.textConfig, cfg);\n        this.markRedraw();\n    };\n    Element.prototype.removeTextContent = function () {\n        var textEl = this._textContent;\n        if (textEl) {\n            textEl.attachedTransform = null;\n            this._detachComponent(textEl);\n            this._textContent = null;\n            this._innerTextDefaultStyle = null;\n            this.markRedraw();\n        }\n    };\n    Element.prototype.getTextGuideLine = function () {\n        return this._textGuide;\n    };\n    Element.prototype.setTextGuideLine = function (guideLine) {\n        if (this._textGuide && this._textGuide !== guideLine) {\n            this.removeTextGuideLine();\n        }\n        this._attachComponent(guideLine);\n        this._textGuide = guideLine;\n        this.markRedraw();\n    };\n    Element.prototype.removeTextGuideLine = function () {\n        var textGuide = this._textGuide;\n        if (textGuide) {\n            this._detachComponent(textGuide);\n            this._textGuide = null;\n            this.markRedraw();\n        }\n    };\n    Element.prototype.markRedraw = function () {\n        this.__dirty |= Element.REDARAW_BIT;\n        var zr = this.__zr;\n        if (zr) {\n            if (this.__inHover) {\n                zr.refreshHover();\n            }\n            else {\n                zr.refresh();\n            }\n        }\n        if (this.__hostTarget) {\n            this.__hostTarget.markRedraw();\n        }\n    };\n    Element.prototype.dirty = function () {\n        this.markRedraw();\n    };\n    Element.prototype._toggleHoverLayerFlag = function (inHover) {\n        this.__inHover = inHover;\n        var textContent = this._textContent;\n        var textGuide = this._textGuide;\n        if (textContent) {\n            textContent.__inHover = inHover;\n        }\n        if (textGuide) {\n            textGuide.__inHover = inHover;\n        }\n    };\n    Element.prototype.addSelfToZr = function (zr) {\n        this.__zr = zr;\n        var animators = this.animators;\n        if (animators) {\n            for (var i = 0; i < animators.length; i++) {\n                zr.animation.addAnimator(animators[i]);\n            }\n        }\n        if (this._clipPath) {\n            this._clipPath.addSelfToZr(zr);\n        }\n        if (this._textContent) {\n            this._textContent.addSelfToZr(zr);\n        }\n        if (this._textGuide) {\n            this._textGuide.addSelfToZr(zr);\n        }\n    };\n    Element.prototype.removeSelfFromZr = function (zr) {\n        this.__zr = null;\n        var animators = this.animators;\n        if (animators) {\n            for (var i = 0; i < animators.length; i++) {\n                zr.animation.removeAnimator(animators[i]);\n            }\n        }\n        if (this._clipPath) {\n            this._clipPath.removeSelfFromZr(zr);\n        }\n        if (this._textContent) {\n            this._textContent.removeSelfFromZr(zr);\n        }\n        if (this._textGuide) {\n            this._textGuide.removeSelfFromZr(zr);\n        }\n    };\n    Element.prototype.animate = function (key, loop) {\n        var target = key ? this[key] : this;\n        if (!target) {\n            logError('Property \"'\n                + key\n                + '\" is not existed in element '\n                + this.id);\n            return;\n        }\n        var animator = new Animator(target, loop);\n        this.addAnimator(animator, key);\n        return animator;\n    };\n    Element.prototype.addAnimator = function (animator, key) {\n        var zr = this.__zr;\n        var el = this;\n        animator.during(function () {\n            el.updateDuringAnimation(key);\n        }).done(function () {\n            var animators = el.animators;\n            var idx = indexOf(animators, animator);\n            if (idx >= 0) {\n                animators.splice(idx, 1);\n            }\n        });\n        this.animators.push(animator);\n        if (zr) {\n            zr.animation.addAnimator(animator);\n        }\n        zr && zr.wakeUp();\n    };\n    Element.prototype.updateDuringAnimation = function (key) {\n        this.markRedraw();\n    };\n    Element.prototype.stopAnimation = function (scope, forwardToLast) {\n        var animators = this.animators;\n        var len = animators.length;\n        var leftAnimators = [];\n        for (var i = 0; i < len; i++) {\n            var animator = animators[i];\n            if (!scope || scope === animator.scope) {\n                animator.stop(forwardToLast);\n            }\n            else {\n                leftAnimators.push(animator);\n            }\n        }\n        this.animators = leftAnimators;\n        return this;\n    };\n    Element.prototype.animateTo = function (target, cfg, animationProps) {\n        animateTo(this, target, cfg, animationProps);\n    };\n    Element.prototype.animateFrom = function (target, cfg, animationProps) {\n        animateTo(this, target, cfg, animationProps, true);\n    };\n    Element.prototype._transitionState = function (stateName, target, cfg, animationProps) {\n        var animators = animateTo(this, target, cfg, animationProps);\n        for (var i = 0; i < animators.length; i++) {\n            animators[i].__fromStateTransition = stateName;\n        }\n    };\n    Element.prototype.getBoundingRect = function () {\n        return null;\n    };\n    Element.prototype.getPaintRect = function () {\n        return null;\n    };\n    Element.REDARAW_BIT = 1;\n    Element.initDefaultProps = (function () {\n        var elProto = Element.prototype;\n        elProto.type = 'element';\n        elProto.name = '';\n        elProto.ignore = false;\n        elProto.silent = false;\n        elProto.isGroup = false;\n        elProto.draggable = false;\n        elProto.dragging = false;\n        elProto.ignoreClip = false;\n        elProto.__inHover = false;\n        elProto.__dirty = Element.REDARAW_BIT;\n        var logs = {};\n        function logDeprecatedError(key, xKey, yKey) {\n            if (!logs[key + xKey + yKey]) {\n                console.warn(\"DEPRECATED: '\" + key + \"' has been deprecated. use '\" + xKey + \"', '\" + yKey + \"' instead\");\n                logs[key + xKey + yKey] = true;\n            }\n        }\n        function createLegacyProperty(key, privateKey, xKey, yKey) {\n            Object.defineProperty(elProto, key, {\n                get: function () {\n                    logDeprecatedError(key, xKey, yKey);\n                    if (!this[privateKey]) {\n                        var pos = this[privateKey] = [];\n                        enhanceArray(this, pos);\n                    }\n                    return this[privateKey];\n                },\n                set: function (pos) {\n                    logDeprecatedError(key, xKey, yKey);\n                    this[xKey] = pos[0];\n                    this[yKey] = pos[1];\n                    this[privateKey] = pos;\n                    enhanceArray(this, pos);\n                }\n            });\n            function enhanceArray(self, pos) {\n                Object.defineProperty(pos, 0, {\n                    get: function () {\n                        return self[xKey];\n                    },\n                    set: function (val) {\n                        self[xKey] = val;\n                    }\n                });\n                Object.defineProperty(pos, 1, {\n                    get: function () {\n                        return self[yKey];\n                    },\n                    set: function (val) {\n                        self[yKey] = val;\n                    }\n                });\n            }\n        }\n        if (Object.defineProperty && (!env.browser.ie || env.browser.version > 8)) {\n            createLegacyProperty('position', '_legacyPos', 'x', 'y');\n            createLegacyProperty('scale', '_legacyScale', 'scaleX', 'scaleY');\n            createLegacyProperty('origin', '_legacyOrigin', 'originX', 'originY');\n        }\n    })();\n    return Element;\n}());\nmixin(Element, Eventful);\nmixin(Element, Transformable);\nfunction animateTo(animatable, target, cfg, animationProps, reverse) {\n    cfg = cfg || {};\n    var animators = [];\n    animateToShallow(animatable, '', animatable, target, cfg, animationProps, animators, reverse);\n    var finishCount = animators.length;\n    var doneHappened = false;\n    var cfgDone = cfg.done;\n    var cfgAborted = cfg.aborted;\n    var doneCb = function () {\n        doneHappened = true;\n        finishCount--;\n        if (finishCount <= 0) {\n            doneHappened\n                ? (cfgDone && cfgDone())\n                : (cfgAborted && cfgAborted());\n        }\n    };\n    var abortedCb = function () {\n        finishCount--;\n        if (finishCount <= 0) {\n            doneHappened\n                ? (cfgDone && cfgDone())\n                : (cfgAborted && cfgAborted());\n        }\n    };\n    if (!finishCount) {\n        cfgDone && cfgDone();\n    }\n    if (animators.length > 0 && cfg.during) {\n        animators[0].during(function (target, percent) {\n            cfg.during(percent);\n        });\n    }\n    for (var i = 0; i < animators.length; i++) {\n        var animator = animators[i];\n        if (doneCb) {\n            animator.done(doneCb);\n        }\n        if (abortedCb) {\n            animator.aborted(abortedCb);\n        }\n        animator.start(cfg.easing, cfg.force);\n    }\n    return animators;\n}\nfunction copyArrShallow(source, target, len) {\n    for (var i = 0; i < len; i++) {\n        source[i] = target[i];\n    }\n}\nfunction is2DArray(value) {\n    return isArrayLike(value[0]);\n}\nfunction copyValue(target, source, key) {\n    if (isArrayLike(source[key])) {\n        if (!isArrayLike(target[key])) {\n            target[key] = [];\n        }\n        if (isTypedArray(source[key])) {\n            var len = source[key].length;\n            if (target[key].length !== len) {\n                target[key] = new (source[key].constructor)(len);\n                copyArrShallow(target[key], source[key], len);\n            }\n        }\n        else {\n            var sourceArr = source[key];\n            var targetArr = target[key];\n            var len0 = sourceArr.length;\n            if (is2DArray(sourceArr)) {\n                var len1 = sourceArr[0].length;\n                for (var i = 0; i < len0; i++) {\n                    if (!targetArr[i]) {\n                        targetArr[i] = Array.prototype.slice.call(sourceArr[i]);\n                    }\n                    else {\n                        copyArrShallow(targetArr[i], sourceArr[i], len1);\n                    }\n                }\n            }\n            else {\n                copyArrShallow(targetArr, sourceArr, len0);\n            }\n            targetArr.length = sourceArr.length;\n        }\n    }\n    else {\n        target[key] = source[key];\n    }\n}\nfunction animateToShallow(animatable, topKey, source, target, cfg, animationProps, animators, reverse) {\n    var animatableKeys = [];\n    var changedKeys = [];\n    var targetKeys = keys(target);\n    var duration = cfg.duration;\n    var delay = cfg.delay;\n    var additive = cfg.additive;\n    var setToFinal = cfg.setToFinal;\n    var animateAll = !isObject(animationProps);\n    for (var k = 0; k < targetKeys.length; k++) {\n        var innerKey = targetKeys[k];\n        if (source[innerKey] != null\n            && target[innerKey] != null\n            && (animateAll || animationProps[innerKey])) {\n            if (isObject(target[innerKey]) && !isArrayLike(target[innerKey])) {\n                if (topKey) {\n                    if (!reverse) {\n                        source[innerKey] = target[innerKey];\n                        animatable.updateDuringAnimation(topKey);\n                    }\n                    continue;\n                }\n                animateToShallow(animatable, innerKey, source[innerKey], target[innerKey], cfg, animationProps && animationProps[innerKey], animators, reverse);\n            }\n            else {\n                animatableKeys.push(innerKey);\n                changedKeys.push(innerKey);\n            }\n        }\n        else if (!reverse) {\n            source[innerKey] = target[innerKey];\n            animatable.updateDuringAnimation(topKey);\n            changedKeys.push(innerKey);\n        }\n    }\n    var keyLen = animatableKeys.length;\n    if (keyLen > 0\n        || (cfg.force && !animators.length)) {\n        var existsAnimators = animatable.animators;\n        var existsAnimatorsOnSameTarget = [];\n        for (var i = 0; i < existsAnimators.length; i++) {\n            if (existsAnimators[i].targetName === topKey) {\n                existsAnimatorsOnSameTarget.push(existsAnimators[i]);\n            }\n        }\n        if (!additive && existsAnimatorsOnSameTarget.length) {\n            for (var i = 0; i < existsAnimatorsOnSameTarget.length; i++) {\n                var allAborted = existsAnimatorsOnSameTarget[i].stopTracks(changedKeys);\n                if (allAborted) {\n                    var idx = indexOf(existsAnimators, existsAnimatorsOnSameTarget[i]);\n                    existsAnimators.splice(idx, 1);\n                }\n            }\n        }\n        var revertedSource = void 0;\n        var reversedTarget = void 0;\n        var sourceClone = void 0;\n        if (reverse) {\n            reversedTarget = {};\n            if (setToFinal) {\n                revertedSource = {};\n            }\n            for (var i = 0; i < keyLen; i++) {\n                var innerKey = animatableKeys[i];\n                reversedTarget[innerKey] = source[innerKey];\n                if (setToFinal) {\n                    revertedSource[innerKey] = target[innerKey];\n                }\n                else {\n                    source[innerKey] = target[innerKey];\n                }\n            }\n        }\n        else if (setToFinal) {\n            sourceClone = {};\n            for (var i = 0; i < keyLen; i++) {\n                var innerKey = animatableKeys[i];\n                sourceClone[innerKey] = cloneValue(source[innerKey]);\n                copyValue(source, target, innerKey);\n            }\n        }\n        var animator = new Animator(source, false, additive ? existsAnimatorsOnSameTarget : null);\n        animator.targetName = topKey;\n        if (cfg.scope) {\n            animator.scope = cfg.scope;\n        }\n        if (setToFinal && revertedSource) {\n            animator.whenWithKeys(0, revertedSource, animatableKeys);\n        }\n        if (sourceClone) {\n            animator.whenWithKeys(0, sourceClone, animatableKeys);\n        }\n        animator.whenWithKeys(duration == null ? 500 : duration, reverse ? reversedTarget : target, animatableKeys).delay(delay || 0);\n        animatable.addAnimator(animator, topKey);\n        animators.push(animator);\n    }\n}\nexport default Element;\n","var DEFAULT_MIN_MERGE = 32;\nvar DEFAULT_MIN_GALLOPING = 7;\nvar DEFAULT_TMP_STORAGE_LENGTH = 256;\nfunction minRunLength(n) {\n    var r = 0;\n    while (n >= DEFAULT_MIN_MERGE) {\n        r |= n & 1;\n        n >>= 1;\n    }\n    return n + r;\n}\nfunction makeAscendingRun(array, lo, hi, compare) {\n    var runHi = lo + 1;\n    if (runHi === hi) {\n        return 1;\n    }\n    if (compare(array[runHi++], array[lo]) < 0) {\n        while (runHi < hi && compare(array[runHi], array[runHi - 1]) < 0) {\n            runHi++;\n        }\n        reverseRun(array, lo, runHi);\n    }\n    else {\n        while (runHi < hi && compare(array[runHi], array[runHi - 1]) >= 0) {\n            runHi++;\n        }\n    }\n    return runHi - lo;\n}\nfunction reverseRun(array, lo, hi) {\n    hi--;\n    while (lo < hi) {\n        var t = array[lo];\n        array[lo++] = array[hi];\n        array[hi--] = t;\n    }\n}\nfunction binaryInsertionSort(array, lo, hi, start, compare) {\n    if (start === lo) {\n        start++;\n    }\n    for (; start < hi; start++) {\n        var pivot = array[start];\n        var left = lo;\n        var right = start;\n        var mid;\n        while (left < right) {\n            mid = left + right >>> 1;\n            if (compare(pivot, array[mid]) < 0) {\n                right = mid;\n            }\n            else {\n                left = mid + 1;\n            }\n        }\n        var n = start - left;\n        switch (n) {\n            case 3:\n                array[left + 3] = array[left + 2];\n            case 2:\n                array[left + 2] = array[left + 1];\n            case 1:\n                array[left + 1] = array[left];\n                break;\n            default:\n                while (n > 0) {\n                    array[left + n] = array[left + n - 1];\n                    n--;\n                }\n        }\n        array[left] = pivot;\n    }\n}\nfunction gallopLeft(value, array, start, length, hint, compare) {\n    var lastOffset = 0;\n    var maxOffset = 0;\n    var offset = 1;\n    if (compare(value, array[start + hint]) > 0) {\n        maxOffset = length - hint;\n        while (offset < maxOffset && compare(value, array[start + hint + offset]) > 0) {\n            lastOffset = offset;\n            offset = (offset << 1) + 1;\n            if (offset <= 0) {\n                offset = maxOffset;\n            }\n        }\n        if (offset > maxOffset) {\n            offset = maxOffset;\n        }\n        lastOffset += hint;\n        offset += hint;\n    }\n    else {\n        maxOffset = hint + 1;\n        while (offset < maxOffset && compare(value, array[start + hint - offset]) <= 0) {\n            lastOffset = offset;\n            offset = (offset << 1) + 1;\n            if (offset <= 0) {\n                offset = maxOffset;\n            }\n        }\n        if (offset > maxOffset) {\n            offset = maxOffset;\n        }\n        var tmp = lastOffset;\n        lastOffset = hint - offset;\n        offset = hint - tmp;\n    }\n    lastOffset++;\n    while (lastOffset < offset) {\n        var m = lastOffset + (offset - lastOffset >>> 1);\n        if (compare(value, array[start + m]) > 0) {\n            lastOffset = m + 1;\n        }\n        else {\n            offset = m;\n        }\n    }\n    return offset;\n}\nfunction gallopRight(value, array, start, length, hint, compare) {\n    var lastOffset = 0;\n    var maxOffset = 0;\n    var offset = 1;\n    if (compare(value, array[start + hint]) < 0) {\n        maxOffset = hint + 1;\n        while (offset < maxOffset && compare(value, array[start + hint - offset]) < 0) {\n            lastOffset = offset;\n            offset = (offset << 1) + 1;\n            if (offset <= 0) {\n                offset = maxOffset;\n            }\n        }\n        if (offset > maxOffset) {\n            offset = maxOffset;\n        }\n        var tmp = lastOffset;\n        lastOffset = hint - offset;\n        offset = hint - tmp;\n    }\n    else {\n        maxOffset = length - hint;\n        while (offset < maxOffset && compare(value, array[start + hint + offset]) >= 0) {\n            lastOffset = offset;\n            offset = (offset << 1) + 1;\n            if (offset <= 0) {\n                offset = maxOffset;\n            }\n        }\n        if (offset > maxOffset) {\n            offset = maxOffset;\n        }\n        lastOffset += hint;\n        offset += hint;\n    }\n    lastOffset++;\n    while (lastOffset < offset) {\n        var m = lastOffset + (offset - lastOffset >>> 1);\n        if (compare(value, array[start + m]) < 0) {\n            offset = m;\n        }\n        else {\n            lastOffset = m + 1;\n        }\n    }\n    return offset;\n}\nfunction TimSort(array, compare) {\n    var minGallop = DEFAULT_MIN_GALLOPING;\n    var length = 0;\n    var tmpStorageLength = DEFAULT_TMP_STORAGE_LENGTH;\n    var stackLength = 0;\n    var runStart;\n    var runLength;\n    var stackSize = 0;\n    length = array.length;\n    if (length < 2 * DEFAULT_TMP_STORAGE_LENGTH) {\n        tmpStorageLength = length >>> 1;\n    }\n    var tmp = [];\n    stackLength = length < 120 ? 5 : length < 1542 ? 10 : length < 119151 ? 19 : 40;\n    runStart = [];\n    runLength = [];\n    function pushRun(_runStart, _runLength) {\n        runStart[stackSize] = _runStart;\n        runLength[stackSize] = _runLength;\n        stackSize += 1;\n    }\n    function mergeRuns() {\n        while (stackSize > 1) {\n            var n = stackSize - 2;\n            if ((n >= 1 && runLength[n - 1] <= runLength[n] + runLength[n + 1])\n                || (n >= 2 && runLength[n - 2] <= runLength[n] + runLength[n - 1])) {\n                if (runLength[n - 1] < runLength[n + 1]) {\n                    n--;\n                }\n            }\n            else if (runLength[n] > runLength[n + 1]) {\n                break;\n            }\n            mergeAt(n);\n        }\n    }\n    function forceMergeRuns() {\n        while (stackSize > 1) {\n            var n = stackSize - 2;\n            if (n > 0 && runLength[n - 1] < runLength[n + 1]) {\n                n--;\n            }\n            mergeAt(n);\n        }\n    }\n    function mergeAt(i) {\n        var start1 = runStart[i];\n        var length1 = runLength[i];\n        var start2 = runStart[i + 1];\n        var length2 = runLength[i + 1];\n        runLength[i] = length1 + length2;\n        if (i === stackSize - 3) {\n            runStart[i + 1] = runStart[i + 2];\n            runLength[i + 1] = runLength[i + 2];\n        }\n        stackSize--;\n        var k = gallopRight(array[start2], array, start1, length1, 0, compare);\n        start1 += k;\n        length1 -= k;\n        if (length1 === 0) {\n            return;\n        }\n        length2 = gallopLeft(array[start1 + length1 - 1], array, start2, length2, length2 - 1, compare);\n        if (length2 === 0) {\n            return;\n        }\n        if (length1 <= length2) {\n            mergeLow(start1, length1, start2, length2);\n        }\n        else {\n            mergeHigh(start1, length1, start2, length2);\n        }\n    }\n    function mergeLow(start1, length1, start2, length2) {\n        var i = 0;\n        for (i = 0; i < length1; i++) {\n            tmp[i] = array[start1 + i];\n        }\n        var cursor1 = 0;\n        var cursor2 = start2;\n        var dest = start1;\n        array[dest++] = array[cursor2++];\n        if (--length2 === 0) {\n            for (i = 0; i < length1; i++) {\n                array[dest + i] = tmp[cursor1 + i];\n            }\n            return;\n        }\n        if (length1 === 1) {\n            for (i = 0; i < length2; i++) {\n                array[dest + i] = array[cursor2 + i];\n            }\n            array[dest + length2] = tmp[cursor1];\n            return;\n        }\n        var _minGallop = minGallop;\n        var count1;\n        var count2;\n        var exit;\n        while (1) {\n            count1 = 0;\n            count2 = 0;\n            exit = false;\n            do {\n                if (compare(array[cursor2], tmp[cursor1]) < 0) {\n                    array[dest++] = array[cursor2++];\n                    count2++;\n                    count1 = 0;\n                    if (--length2 === 0) {\n                        exit = true;\n                        break;\n                    }\n                }\n                else {\n                    array[dest++] = tmp[cursor1++];\n                    count1++;\n                    count2 = 0;\n                    if (--length1 === 1) {\n                        exit = true;\n                        break;\n                    }\n                }\n            } while ((count1 | count2) < _minGallop);\n            if (exit) {\n                break;\n            }\n            do {\n                count1 = gallopRight(array[cursor2], tmp, cursor1, length1, 0, compare);\n                if (count1 !== 0) {\n                    for (i = 0; i < count1; i++) {\n                        array[dest + i] = tmp[cursor1 + i];\n                    }\n                    dest += count1;\n                    cursor1 += count1;\n                    length1 -= count1;\n                    if (length1 <= 1) {\n                        exit = true;\n                        break;\n                    }\n                }\n                array[dest++] = array[cursor2++];\n                if (--length2 === 0) {\n                    exit = true;\n                    break;\n                }\n                count2 = gallopLeft(tmp[cursor1], array, cursor2, length2, 0, compare);\n                if (count2 !== 0) {\n                    for (i = 0; i < count2; i++) {\n                        array[dest + i] = array[cursor2 + i];\n                    }\n                    dest += count2;\n                    cursor2 += count2;\n                    length2 -= count2;\n                    if (length2 === 0) {\n                        exit = true;\n                        break;\n                    }\n                }\n                array[dest++] = tmp[cursor1++];\n                if (--length1 === 1) {\n                    exit = true;\n                    break;\n                }\n                _minGallop--;\n            } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\n            if (exit) {\n                break;\n            }\n            if (_minGallop < 0) {\n                _minGallop = 0;\n            }\n            _minGallop += 2;\n        }\n        minGallop = _minGallop;\n        minGallop < 1 && (minGallop = 1);\n        if (length1 === 1) {\n            for (i = 0; i < length2; i++) {\n                array[dest + i] = array[cursor2 + i];\n            }\n            array[dest + length2] = tmp[cursor1];\n        }\n        else if (length1 === 0) {\n            throw new Error();\n        }\n        else {\n            for (i = 0; i < length1; i++) {\n                array[dest + i] = tmp[cursor1 + i];\n            }\n        }\n    }\n    function mergeHigh(start1, length1, start2, length2) {\n        var i = 0;\n        for (i = 0; i < length2; i++) {\n            tmp[i] = array[start2 + i];\n        }\n        var cursor1 = start1 + length1 - 1;\n        var cursor2 = length2 - 1;\n        var dest = start2 + length2 - 1;\n        var customCursor = 0;\n        var customDest = 0;\n        array[dest--] = array[cursor1--];\n        if (--length1 === 0) {\n            customCursor = dest - (length2 - 1);\n            for (i = 0; i < length2; i++) {\n                array[customCursor + i] = tmp[i];\n            }\n            return;\n        }\n        if (length2 === 1) {\n            dest -= length1;\n            cursor1 -= length1;\n            customDest = dest + 1;\n            customCursor = cursor1 + 1;\n            for (i = length1 - 1; i >= 0; i--) {\n                array[customDest + i] = array[customCursor + i];\n            }\n            array[dest] = tmp[cursor2];\n            return;\n        }\n        var _minGallop = minGallop;\n        while (true) {\n            var count1 = 0;\n            var count2 = 0;\n            var exit = false;\n            do {\n                if (compare(tmp[cursor2], array[cursor1]) < 0) {\n                    array[dest--] = array[cursor1--];\n                    count1++;\n                    count2 = 0;\n                    if (--length1 === 0) {\n                        exit = true;\n                        break;\n                    }\n                }\n                else {\n                    array[dest--] = tmp[cursor2--];\n                    count2++;\n                    count1 = 0;\n                    if (--length2 === 1) {\n                        exit = true;\n                        break;\n                    }\n                }\n            } while ((count1 | count2) < _minGallop);\n            if (exit) {\n                break;\n            }\n            do {\n                count1 = length1 - gallopRight(tmp[cursor2], array, start1, length1, length1 - 1, compare);\n                if (count1 !== 0) {\n                    dest -= count1;\n                    cursor1 -= count1;\n                    length1 -= count1;\n                    customDest = dest + 1;\n                    customCursor = cursor1 + 1;\n                    for (i = count1 - 1; i >= 0; i--) {\n                        array[customDest + i] = array[customCursor + i];\n                    }\n                    if (length1 === 0) {\n                        exit = true;\n                        break;\n                    }\n                }\n                array[dest--] = tmp[cursor2--];\n                if (--length2 === 1) {\n                    exit = true;\n                    break;\n                }\n                count2 = length2 - gallopLeft(array[cursor1], tmp, 0, length2, length2 - 1, compare);\n                if (count2 !== 0) {\n                    dest -= count2;\n                    cursor2 -= count2;\n                    length2 -= count2;\n                    customDest = dest + 1;\n                    customCursor = cursor2 + 1;\n                    for (i = 0; i < count2; i++) {\n                        array[customDest + i] = tmp[customCursor + i];\n                    }\n                    if (length2 <= 1) {\n                        exit = true;\n                        break;\n                    }\n                }\n                array[dest--] = array[cursor1--];\n                if (--length1 === 0) {\n                    exit = true;\n                    break;\n                }\n                _minGallop--;\n            } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\n            if (exit) {\n                break;\n            }\n            if (_minGallop < 0) {\n                _minGallop = 0;\n            }\n            _minGallop += 2;\n        }\n        minGallop = _minGallop;\n        if (minGallop < 1) {\n            minGallop = 1;\n        }\n        if (length2 === 1) {\n            dest -= length1;\n            cursor1 -= length1;\n            customDest = dest + 1;\n            customCursor = cursor1 + 1;\n            for (i = length1 - 1; i >= 0; i--) {\n                array[customDest + i] = array[customCursor + i];\n            }\n            array[dest] = tmp[cursor2];\n        }\n        else if (length2 === 0) {\n            throw new Error();\n        }\n        else {\n            customCursor = dest - (length2 - 1);\n            for (i = 0; i < length2; i++) {\n                array[customCursor + i] = tmp[i];\n            }\n        }\n    }\n    return {\n        mergeRuns: mergeRuns,\n        forceMergeRuns: forceMergeRuns,\n        pushRun: pushRun\n    };\n}\nexport default function sort(array, compare, lo, hi) {\n    if (!lo) {\n        lo = 0;\n    }\n    if (!hi) {\n        hi = array.length;\n    }\n    var remaining = hi - lo;\n    if (remaining < 2) {\n        return;\n    }\n    var runLength = 0;\n    if (remaining < DEFAULT_MIN_MERGE) {\n        runLength = makeAscendingRun(array, lo, hi, compare);\n        binaryInsertionSort(array, lo, hi, lo + runLength, compare);\n        return;\n    }\n    var ts = TimSort(array, compare);\n    var minRun = minRunLength(remaining);\n    do {\n        runLength = makeAscendingRun(array, lo, hi, compare);\n        if (runLength < minRun) {\n            var force = remaining;\n            if (force > minRun) {\n                force = minRun;\n            }\n            binaryInsertionSort(array, lo, lo + force, lo + runLength, compare);\n            runLength = force;\n        }\n        ts.pushRun(lo, runLength);\n        ts.mergeRuns();\n        remaining -= runLength;\n        lo += runLength;\n    } while (remaining !== 0);\n    ts.forceMergeRuns();\n}\n","import * as util from './core/util';\nimport env from './core/env';\nimport Element from './Element';\nimport timsort from './core/timsort';\nvar invalidZErrorLogged = false;\nfunction logInvalidZError() {\n    if (invalidZErrorLogged) {\n        return;\n    }\n    invalidZErrorLogged = true;\n    console.warn('z / z2 / zlevel of displayable is invalid, which may cause unexpected errors');\n}\nfunction shapeCompareFunc(a, b) {\n    if (a.zlevel === b.zlevel) {\n        if (a.z === b.z) {\n            return a.z2 - b.z2;\n        }\n        return a.z - b.z;\n    }\n    return a.zlevel - b.zlevel;\n}\nvar Storage = (function () {\n    function Storage() {\n        this._roots = [];\n        this._displayList = [];\n        this._displayListLen = 0;\n        this.displayableSortFunc = shapeCompareFunc;\n    }\n    Storage.prototype.traverse = function (cb, context) {\n        for (var i = 0; i < this._roots.length; i++) {\n            this._roots[i].traverse(cb, context);\n        }\n    };\n    Storage.prototype.getDisplayList = function (update, includeIgnore) {\n        includeIgnore = includeIgnore || false;\n        var displayList = this._displayList;\n        if (update || !displayList.length) {\n            this.updateDisplayList(includeIgnore);\n        }\n        return displayList;\n    };\n    Storage.prototype.updateDisplayList = function (includeIgnore) {\n        this._displayListLen = 0;\n        var roots = this._roots;\n        var displayList = this._displayList;\n        for (var i = 0, len = roots.length; i < len; i++) {\n            this._updateAndAddDisplayable(roots[i], null, includeIgnore);\n        }\n        displayList.length = this._displayListLen;\n        env.canvasSupported && timsort(displayList, shapeCompareFunc);\n    };\n    Storage.prototype._updateAndAddDisplayable = function (el, clipPaths, includeIgnore) {\n        if (el.ignore && !includeIgnore) {\n            return;\n        }\n        el.beforeUpdate();\n        el.update();\n        el.afterUpdate();\n        var userSetClipPath = el.getClipPath();\n        if (el.ignoreClip) {\n            clipPaths = null;\n        }\n        else if (userSetClipPath) {\n            if (clipPaths) {\n                clipPaths = clipPaths.slice();\n            }\n            else {\n                clipPaths = [];\n            }\n            var currentClipPath = userSetClipPath;\n            var parentClipPath = el;\n            while (currentClipPath) {\n                currentClipPath.parent = parentClipPath;\n                currentClipPath.updateTransform();\n                clipPaths.push(currentClipPath);\n                parentClipPath = currentClipPath;\n                currentClipPath = currentClipPath.getClipPath();\n            }\n        }\n        if (el.childrenRef) {\n            var children = el.childrenRef();\n            for (var i = 0; i < children.length; i++) {\n                var child = children[i];\n                if (el.__dirty) {\n                    child.__dirty |= Element.REDARAW_BIT;\n                }\n                this._updateAndAddDisplayable(child, clipPaths, includeIgnore);\n            }\n            el.__dirty = 0;\n        }\n        else {\n            var disp = el;\n            if (clipPaths && clipPaths.length) {\n                disp.__clipPaths = clipPaths;\n            }\n            else if (disp.__clipPaths && disp.__clipPaths.length > 0) {\n                disp.__clipPaths = [];\n            }\n            if (isNaN(disp.z)) {\n                logInvalidZError();\n                disp.z = 0;\n            }\n            if (isNaN(disp.z2)) {\n                logInvalidZError();\n                disp.z2 = 0;\n            }\n            if (isNaN(disp.zlevel)) {\n                logInvalidZError();\n                disp.zlevel = 0;\n            }\n            this._displayList[this._displayListLen++] = disp;\n        }\n        var decalEl = el.getDecalElement && el.getDecalElement();\n        if (decalEl) {\n            this._updateAndAddDisplayable(decalEl, clipPaths, includeIgnore);\n        }\n        var textGuide = el.getTextGuideLine();\n        if (textGuide) {\n            this._updateAndAddDisplayable(textGuide, clipPaths, includeIgnore);\n        }\n        var textEl = el.getTextContent();\n        if (textEl) {\n            this._updateAndAddDisplayable(textEl, clipPaths, includeIgnore);\n        }\n    };\n    Storage.prototype.addRoot = function (el) {\n        if (el.__zr && el.__zr.storage === this) {\n            return;\n        }\n        this._roots.push(el);\n    };\n    Storage.prototype.delRoot = function (el) {\n        if (el instanceof Array) {\n            for (var i = 0, l = el.length; i < l; i++) {\n                this.delRoot(el[i]);\n            }\n            return;\n        }\n        var idx = util.indexOf(this._roots, el);\n        if (idx >= 0) {\n            this._roots.splice(idx, 1);\n        }\n    };\n    Storage.prototype.delAllRoots = function () {\n        this._roots = [];\n        this._displayList = [];\n        this._displayListLen = 0;\n        return;\n    };\n    Storage.prototype.getRoots = function () {\n        return this._roots;\n    };\n    Storage.prototype.dispose = function () {\n        this._displayList = null;\n        this._roots = null;\n    };\n    return Storage;\n}());\nexport default Storage;\n","var requestAnimationFrame;\nrequestAnimationFrame = (typeof window !== 'undefined'\n    && ((window.requestAnimationFrame && window.requestAnimationFrame.bind(window))\n        || (window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window))\n        || window.mozRequestAnimationFrame\n        || window.webkitRequestAnimationFrame)) || function (func) {\n    return setTimeout(func, 16);\n};\nexport default requestAnimationFrame;\n","import { __extends } from \"tslib\";\nimport Eventful from '../core/Eventful';\nimport requestAnimationFrame from './requestAnimationFrame';\nimport Animator from './Animator';\nvar Animation = (function (_super) {\n    __extends(Animation, _super);\n    function Animation(opts) {\n        var _this = _super.call(this) || this;\n        _this._running = false;\n        _this._time = 0;\n        _this._pausedTime = 0;\n        _this._pauseStart = 0;\n        _this._paused = false;\n        opts = opts || {};\n        _this.stage = opts.stage || {};\n        _this.onframe = opts.onframe || function () { };\n        return _this;\n    }\n    Animation.prototype.addClip = function (clip) {\n        if (clip.animation) {\n            this.removeClip(clip);\n        }\n        if (!this._clipsHead) {\n            this._clipsHead = this._clipsTail = clip;\n        }\n        else {\n            this._clipsTail.next = clip;\n            clip.prev = this._clipsTail;\n            clip.next = null;\n            this._clipsTail = clip;\n        }\n        clip.animation = this;\n    };\n    Animation.prototype.addAnimator = function (animator) {\n        animator.animation = this;\n        var clip = animator.getClip();\n        if (clip) {\n            this.addClip(clip);\n        }\n    };\n    Animation.prototype.removeClip = function (clip) {\n        if (!clip.animation) {\n            return;\n        }\n        var prev = clip.prev;\n        var next = clip.next;\n        if (prev) {\n            prev.next = next;\n        }\n        else {\n            this._clipsHead = next;\n        }\n        if (next) {\n            next.prev = prev;\n        }\n        else {\n            this._clipsTail = prev;\n        }\n        clip.next = clip.prev = clip.animation = null;\n    };\n    Animation.prototype.removeAnimator = function (animator) {\n        var clip = animator.getClip();\n        if (clip) {\n            this.removeClip(clip);\n        }\n        animator.animation = null;\n    };\n    Animation.prototype.update = function (notTriggerFrameAndStageUpdate) {\n        var time = new Date().getTime() - this._pausedTime;\n        var delta = time - this._time;\n        var clip = this._clipsHead;\n        while (clip) {\n            var nextClip = clip.next;\n            var finished = clip.step(time, delta);\n            if (finished) {\n                clip.ondestroy && clip.ondestroy();\n                this.removeClip(clip);\n                clip = nextClip;\n            }\n            else {\n                clip = nextClip;\n            }\n        }\n        this._time = time;\n        if (!notTriggerFrameAndStageUpdate) {\n            this.onframe(delta);\n            this.trigger('frame', delta);\n            this.stage.update && this.stage.update();\n        }\n    };\n    Animation.prototype._startLoop = function () {\n        var self = this;\n        this._running = true;\n        function step() {\n            if (self._running) {\n                requestAnimationFrame(step);\n                !self._paused && self.update();\n            }\n        }\n        requestAnimationFrame(step);\n    };\n    Animation.prototype.start = function () {\n        if (this._running) {\n            return;\n        }\n        this._time = new Date().getTime();\n        this._pausedTime = 0;\n        this._startLoop();\n    };\n    Animation.prototype.stop = function () {\n        this._running = false;\n    };\n    Animation.prototype.pause = function () {\n        if (!this._paused) {\n            this._pauseStart = new Date().getTime();\n            this._paused = true;\n        }\n    };\n    Animation.prototype.resume = function () {\n        if (this._paused) {\n            this._pausedTime += (new Date().getTime()) - this._pauseStart;\n            this._paused = false;\n        }\n    };\n    Animation.prototype.clear = function () {\n        var clip = this._clipsHead;\n        while (clip) {\n            var nextClip = clip.next;\n            clip.prev = clip.next = clip.animation = null;\n            clip = nextClip;\n        }\n        this._clipsHead = this._clipsTail = null;\n    };\n    Animation.prototype.isFinished = function () {\n        return this._clipsHead == null;\n    };\n    Animation.prototype.animate = function (target, options) {\n        options = options || {};\n        this.start();\n        var animator = new Animator(target, options.loop);\n        this.addAnimator(animator);\n        return animator;\n    };\n    return Animation;\n}(Eventful));\nexport default Animation;\n","import { __extends } from \"tslib\";\nimport { addEventListener, removeEventListener, normalizeEvent, getNativeEvent } from '../core/event';\nimport * as zrUtil from '../core/util';\nimport Eventful from '../core/Eventful';\nimport env from '../core/env';\nvar TOUCH_CLICK_DELAY = 300;\nvar globalEventSupported = env.domSupported;\nvar localNativeListenerNames = (function () {\n    var mouseHandlerNames = [\n        'click', 'dblclick', 'mousewheel', 'wheel', 'mouseout',\n        'mouseup', 'mousedown', 'mousemove', 'contextmenu'\n    ];\n    var touchHandlerNames = [\n        'touchstart', 'touchend', 'touchmove'\n    ];\n    var pointerEventNameMap = {\n        pointerdown: 1, pointerup: 1, pointermove: 1, pointerout: 1\n    };\n    var pointerHandlerNames = zrUtil.map(mouseHandlerNames, function (name) {\n        var nm = name.replace('mouse', 'pointer');\n        return pointerEventNameMap.hasOwnProperty(nm) ? nm : name;\n    });\n    return {\n        mouse: mouseHandlerNames,\n        touch: touchHandlerNames,\n        pointer: pointerHandlerNames\n    };\n})();\nvar globalNativeListenerNames = {\n    mouse: ['mousemove', 'mouseup'],\n    pointer: ['pointermove', 'pointerup']\n};\nvar wheelEventSupported = false;\nfunction isPointerFromTouch(event) {\n    var pointerType = event.pointerType;\n    return pointerType === 'pen' || pointerType === 'touch';\n}\nfunction setTouchTimer(scope) {\n    scope.touching = true;\n    if (scope.touchTimer != null) {\n        clearTimeout(scope.touchTimer);\n        scope.touchTimer = null;\n    }\n    scope.touchTimer = setTimeout(function () {\n        scope.touching = false;\n        scope.touchTimer = null;\n    }, 700);\n}\nfunction markTouch(event) {\n    event && (event.zrByTouch = true);\n}\nfunction normalizeGlobalEvent(instance, event) {\n    return normalizeEvent(instance.dom, new FakeGlobalEvent(instance, event), true);\n}\nfunction isLocalEl(instance, el) {\n    var elTmp = el;\n    var isLocal = false;\n    while (elTmp && elTmp.nodeType !== 9\n        && !(isLocal = elTmp.domBelongToZr\n            || (elTmp !== el && elTmp === instance.painterRoot))) {\n        elTmp = elTmp.parentNode;\n    }\n    return isLocal;\n}\nvar FakeGlobalEvent = (function () {\n    function FakeGlobalEvent(instance, event) {\n        this.stopPropagation = zrUtil.noop;\n        this.stopImmediatePropagation = zrUtil.noop;\n        this.preventDefault = zrUtil.noop;\n        this.type = event.type;\n        this.target = this.currentTarget = instance.dom;\n        this.pointerType = event.pointerType;\n        this.clientX = event.clientX;\n        this.clientY = event.clientY;\n    }\n    return FakeGlobalEvent;\n}());\nvar localDOMHandlers = {\n    mousedown: function (event) {\n        event = normalizeEvent(this.dom, event);\n        this.__mayPointerCapture = [event.zrX, event.zrY];\n        this.trigger('mousedown', event);\n    },\n    mousemove: function (event) {\n        event = normalizeEvent(this.dom, event);\n        var downPoint = this.__mayPointerCapture;\n        if (downPoint && (event.zrX !== downPoint[0] || event.zrY !== downPoint[1])) {\n            this.__togglePointerCapture(true);\n        }\n        this.trigger('mousemove', event);\n    },\n    mouseup: function (event) {\n        event = normalizeEvent(this.dom, event);\n        this.__togglePointerCapture(false);\n        this.trigger('mouseup', event);\n    },\n    mouseout: function (event) {\n        event = normalizeEvent(this.dom, event);\n        var element = event.toElement || event.relatedTarget;\n        if (!isLocalEl(this, element)) {\n            if (this.__pointerCapturing) {\n                event.zrEventControl = 'no_globalout';\n            }\n            this.trigger('mouseout', event);\n        }\n    },\n    wheel: function (event) {\n        wheelEventSupported = true;\n        event = normalizeEvent(this.dom, event);\n        this.trigger('mousewheel', event);\n    },\n    mousewheel: function (event) {\n        if (wheelEventSupported) {\n            return;\n        }\n        event = normalizeEvent(this.dom, event);\n        this.trigger('mousewheel', event);\n    },\n    touchstart: function (event) {\n        event = normalizeEvent(this.dom, event);\n        markTouch(event);\n        this.__lastTouchMoment = new Date();\n        this.handler.processGesture(event, 'start');\n        localDOMHandlers.mousemove.call(this, event);\n        localDOMHandlers.mousedown.call(this, event);\n    },\n    touchmove: function (event) {\n        event = normalizeEvent(this.dom, event);\n        markTouch(event);\n        this.handler.processGesture(event, 'change');\n        localDOMHandlers.mousemove.call(this, event);\n    },\n    touchend: function (event) {\n        event = normalizeEvent(this.dom, event);\n        markTouch(event);\n        this.handler.processGesture(event, 'end');\n        localDOMHandlers.mouseup.call(this, event);\n        if (+new Date() - (+this.__lastTouchMoment) < TOUCH_CLICK_DELAY) {\n            localDOMHandlers.click.call(this, event);\n        }\n    },\n    pointerdown: function (event) {\n        localDOMHandlers.mousedown.call(this, event);\n    },\n    pointermove: function (event) {\n        if (!isPointerFromTouch(event)) {\n            localDOMHandlers.mousemove.call(this, event);\n        }\n    },\n    pointerup: function (event) {\n        localDOMHandlers.mouseup.call(this, event);\n    },\n    pointerout: function (event) {\n        if (!isPointerFromTouch(event)) {\n            localDOMHandlers.mouseout.call(this, event);\n        }\n    }\n};\nzrUtil.each(['click', 'dblclick', 'contextmenu'], function (name) {\n    localDOMHandlers[name] = function (event) {\n        event = normalizeEvent(this.dom, event);\n        this.trigger(name, event);\n    };\n});\nvar globalDOMHandlers = {\n    pointermove: function (event) {\n        if (!isPointerFromTouch(event)) {\n            globalDOMHandlers.mousemove.call(this, event);\n        }\n    },\n    pointerup: function (event) {\n        globalDOMHandlers.mouseup.call(this, event);\n    },\n    mousemove: function (event) {\n        this.trigger('mousemove', event);\n    },\n    mouseup: function (event) {\n        var pointerCaptureReleasing = this.__pointerCapturing;\n        this.__togglePointerCapture(false);\n        this.trigger('mouseup', event);\n        if (pointerCaptureReleasing) {\n            event.zrEventControl = 'only_globalout';\n            this.trigger('mouseout', event);\n        }\n    }\n};\nfunction mountLocalDOMEventListeners(instance, scope) {\n    var domHandlers = scope.domHandlers;\n    if (env.pointerEventsSupported) {\n        zrUtil.each(localNativeListenerNames.pointer, function (nativeEventName) {\n            mountSingleDOMEventListener(scope, nativeEventName, function (event) {\n                domHandlers[nativeEventName].call(instance, event);\n            });\n        });\n    }\n    else {\n        if (env.touchEventsSupported) {\n            zrUtil.each(localNativeListenerNames.touch, function (nativeEventName) {\n                mountSingleDOMEventListener(scope, nativeEventName, function (event) {\n                    domHandlers[nativeEventName].call(instance, event);\n                    setTouchTimer(scope);\n                });\n            });\n        }\n        zrUtil.each(localNativeListenerNames.mouse, function (nativeEventName) {\n            mountSingleDOMEventListener(scope, nativeEventName, function (event) {\n                event = getNativeEvent(event);\n                if (!scope.touching) {\n                    domHandlers[nativeEventName].call(instance, event);\n                }\n            });\n        });\n    }\n}\nfunction mountGlobalDOMEventListeners(instance, scope) {\n    if (env.pointerEventsSupported) {\n        zrUtil.each(globalNativeListenerNames.pointer, mount);\n    }\n    else if (!env.touchEventsSupported) {\n        zrUtil.each(globalNativeListenerNames.mouse, mount);\n    }\n    function mount(nativeEventName) {\n        function nativeEventListener(event) {\n            event = getNativeEvent(event);\n            if (!isLocalEl(instance, event.target)) {\n                event = normalizeGlobalEvent(instance, event);\n                scope.domHandlers[nativeEventName].call(instance, event);\n            }\n        }\n        mountSingleDOMEventListener(scope, nativeEventName, nativeEventListener, { capture: true });\n    }\n}\nfunction mountSingleDOMEventListener(scope, nativeEventName, listener, opt) {\n    scope.mounted[nativeEventName] = listener;\n    scope.listenerOpts[nativeEventName] = opt;\n    addEventListener(scope.domTarget, nativeEventName, listener, opt);\n}\nfunction unmountDOMEventListeners(scope) {\n    var mounted = scope.mounted;\n    for (var nativeEventName in mounted) {\n        if (mounted.hasOwnProperty(nativeEventName)) {\n            removeEventListener(scope.domTarget, nativeEventName, mounted[nativeEventName], scope.listenerOpts[nativeEventName]);\n        }\n    }\n    scope.mounted = {};\n}\nvar DOMHandlerScope = (function () {\n    function DOMHandlerScope(domTarget, domHandlers) {\n        this.mounted = {};\n        this.listenerOpts = {};\n        this.touching = false;\n        this.domTarget = domTarget;\n        this.domHandlers = domHandlers;\n    }\n    return DOMHandlerScope;\n}());\nvar HandlerDomProxy = (function (_super) {\n    __extends(HandlerDomProxy, _super);\n    function HandlerDomProxy(dom, painterRoot) {\n        var _this = _super.call(this) || this;\n        _this.__pointerCapturing = false;\n        _this.dom = dom;\n        _this.painterRoot = painterRoot;\n        _this._localHandlerScope = new DOMHandlerScope(dom, localDOMHandlers);\n        if (globalEventSupported) {\n            _this._globalHandlerScope = new DOMHandlerScope(document, globalDOMHandlers);\n        }\n        mountLocalDOMEventListeners(_this, _this._localHandlerScope);\n        return _this;\n    }\n    HandlerDomProxy.prototype.dispose = function () {\n        unmountDOMEventListeners(this._localHandlerScope);\n        if (globalEventSupported) {\n            unmountDOMEventListeners(this._globalHandlerScope);\n        }\n    };\n    HandlerDomProxy.prototype.setCursor = function (cursorStyle) {\n        this.dom.style && (this.dom.style.cursor = cursorStyle || 'default');\n    };\n    HandlerDomProxy.prototype.__togglePointerCapture = function (isPointerCapturing) {\n        this.__mayPointerCapture = null;\n        if (globalEventSupported\n            && ((+this.__pointerCapturing) ^ (+isPointerCapturing))) {\n            this.__pointerCapturing = isPointerCapturing;\n            var globalHandlerScope = this._globalHandlerScope;\n            isPointerCapturing\n                ? mountGlobalDOMEventListeners(this, globalHandlerScope)\n                : unmountDOMEventListeners(globalHandlerScope);\n        }\n    };\n    return HandlerDomProxy;\n}(Eventful));\nexport default HandlerDomProxy;\n","import { __extends } from \"tslib\";\nimport * as zrUtil from '../core/util';\nimport Element from '../Element';\nimport BoundingRect from '../core/BoundingRect';\nvar Group = (function (_super) {\n    __extends(Group, _super);\n    function Group(opts) {\n        var _this = _super.call(this) || this;\n        _this.isGroup = true;\n        _this._children = [];\n        _this.attr(opts);\n        return _this;\n    }\n    Group.prototype.childrenRef = function () {\n        return this._children;\n    };\n    Group.prototype.children = function () {\n        return this._children.slice();\n    };\n    Group.prototype.childAt = function (idx) {\n        return this._children[idx];\n    };\n    Group.prototype.childOfName = function (name) {\n        var children = this._children;\n        for (var i = 0; i < children.length; i++) {\n            if (children[i].name === name) {\n                return children[i];\n            }\n        }\n    };\n    Group.prototype.childCount = function () {\n        return this._children.length;\n    };\n    Group.prototype.add = function (child) {\n        if (child) {\n            if (child !== this && child.parent !== this) {\n                this._children.push(child);\n                this._doAdd(child);\n            }\n            if (child.__hostTarget) {\n                throw 'This elemenet has been used as an attachment';\n            }\n        }\n        return this;\n    };\n    Group.prototype.addBefore = function (child, nextSibling) {\n        if (child && child !== this && child.parent !== this\n            && nextSibling && nextSibling.parent === this) {\n            var children = this._children;\n            var idx = children.indexOf(nextSibling);\n            if (idx >= 0) {\n                children.splice(idx, 0, child);\n                this._doAdd(child);\n            }\n        }\n        return this;\n    };\n    Group.prototype.replaceAt = function (child, index) {\n        var children = this._children;\n        var old = children[index];\n        if (child && child !== this && child.parent !== this && child !== old) {\n            children[index] = child;\n            old.parent = null;\n            var zr = this.__zr;\n            if (zr) {\n                old.removeSelfFromZr(zr);\n            }\n            this._doAdd(child);\n        }\n        return this;\n    };\n    Group.prototype._doAdd = function (child) {\n        if (child.parent) {\n            child.parent.remove(child);\n        }\n        child.parent = this;\n        var zr = this.__zr;\n        if (zr && zr !== child.__zr) {\n            child.addSelfToZr(zr);\n        }\n        zr && zr.refresh();\n    };\n    Group.prototype.remove = function (child) {\n        var zr = this.__zr;\n        var children = this._children;\n        var idx = zrUtil.indexOf(children, child);\n        if (idx < 0) {\n            return this;\n        }\n        children.splice(idx, 1);\n        child.parent = null;\n        if (zr) {\n            child.removeSelfFromZr(zr);\n        }\n        zr && zr.refresh();\n        return this;\n    };\n    Group.prototype.removeAll = function () {\n        var children = this._children;\n        var zr = this.__zr;\n        for (var i = 0; i < children.length; i++) {\n            var child = children[i];\n            if (zr) {\n                child.removeSelfFromZr(zr);\n            }\n            child.parent = null;\n        }\n        children.length = 0;\n        return this;\n    };\n    Group.prototype.eachChild = function (cb, context) {\n        var children = this._children;\n        for (var i = 0; i < children.length; i++) {\n            var child = children[i];\n            cb.call(context, child, i);\n        }\n        return this;\n    };\n    Group.prototype.traverse = function (cb, context) {\n        for (var i = 0; i < this._children.length; i++) {\n            var child = this._children[i];\n            var stopped = cb.call(context, child);\n            if (child.isGroup && !stopped) {\n                child.traverse(cb, context);\n            }\n        }\n        return this;\n    };\n    Group.prototype.addSelfToZr = function (zr) {\n        _super.prototype.addSelfToZr.call(this, zr);\n        for (var i = 0; i < this._children.length; i++) {\n            var child = this._children[i];\n            child.addSelfToZr(zr);\n        }\n    };\n    Group.prototype.removeSelfFromZr = function (zr) {\n        _super.prototype.removeSelfFromZr.call(this, zr);\n        for (var i = 0; i < this._children.length; i++) {\n            var child = this._children[i];\n            child.removeSelfFromZr(zr);\n        }\n    };\n    Group.prototype.getBoundingRect = function (includeChildren) {\n        var tmpRect = new BoundingRect(0, 0, 0, 0);\n        var children = includeChildren || this._children;\n        var tmpMat = [];\n        var rect = null;\n        for (var i = 0; i < children.length; i++) {\n            var child = children[i];\n            if (child.ignore || child.invisible) {\n                continue;\n            }\n            var childRect = child.getBoundingRect();\n            var transform = child.getLocalTransform(tmpMat);\n            if (transform) {\n                BoundingRect.applyTransform(tmpRect, childRect, transform);\n                rect = rect || tmpRect.clone();\n                rect.union(tmpRect);\n            }\n            else {\n                rect = rect || childRect.clone();\n                rect.union(childRect);\n            }\n        }\n        return rect || tmpRect;\n    };\n    return Group;\n}(Element));\nGroup.prototype.type = 'group';\nexport default Group;\n","/*!\n* ZRender, a high performance 2d drawing library.\n*\n* Copyright (c) 2013, Baidu Inc.\n* All rights reserved.\n*\n* LICENSE\n* https://github.com/ecomfe/zrender/blob/master/LICENSE.txt\n*/\nimport env from './core/env';\nimport * as zrUtil from './core/util';\nimport Handler from './Handler';\nimport Storage from './Storage';\nimport Animation from './animation/Animation';\nimport HandlerProxy from './dom/HandlerProxy';\nimport { lum } from './tool/color';\nimport { DARK_MODE_THRESHOLD } from './config';\nimport Group from './graphic/Group';\nvar useVML = !env.canvasSupported;\nvar painterCtors = {};\nvar instances = {};\nfunction delInstance(id) {\n    delete instances[id];\n}\nfunction isDarkMode(backgroundColor) {\n    if (!backgroundColor) {\n        return false;\n    }\n    if (typeof backgroundColor === 'string') {\n        return lum(backgroundColor, 1) < DARK_MODE_THRESHOLD;\n    }\n    else if (backgroundColor.colorStops) {\n        var colorStops = backgroundColor.colorStops;\n        var totalLum = 0;\n        var len = colorStops.length;\n        for (var i = 0; i < len; i++) {\n            totalLum += lum(colorStops[i].color, 1);\n        }\n        totalLum /= len;\n        return totalLum < DARK_MODE_THRESHOLD;\n    }\n    return false;\n}\nvar ZRender = (function () {\n    function ZRender(id, dom, opts) {\n        var _this = this;\n        this._sleepAfterStill = 10;\n        this._stillFrameAccum = 0;\n        this._needsRefresh = true;\n        this._needsRefreshHover = true;\n        this._darkMode = false;\n        opts = opts || {};\n        this.dom = dom;\n        this.id = id;\n        var storage = new Storage();\n        var rendererType = opts.renderer || 'canvas';\n        if (useVML) {\n            throw new Error('IE8 support has been dropped since 5.0');\n        }\n        if (!painterCtors[rendererType]) {\n            rendererType = zrUtil.keys(painterCtors)[0];\n        }\n        if (!painterCtors[rendererType]) {\n            throw new Error(\"Renderer '\" + rendererType + \"' is not imported. Please import it first.\");\n        }\n        opts.useDirtyRect = opts.useDirtyRect == null\n            ? false\n            : opts.useDirtyRect;\n        var painter = new painterCtors[rendererType](dom, storage, opts, id);\n        this.storage = storage;\n        this.painter = painter;\n        var handerProxy = (!env.node && !env.worker)\n            ? new HandlerProxy(painter.getViewportRoot(), painter.root)\n            : null;\n        this.handler = new Handler(storage, painter, handerProxy, painter.root);\n        this.animation = new Animation({\n            stage: {\n                update: function () { return _this._flush(true); }\n            }\n        });\n        this.animation.start();\n    }\n    ZRender.prototype.add = function (el) {\n        if (!el) {\n            return;\n        }\n        this.storage.addRoot(el);\n        el.addSelfToZr(this);\n        this.refresh();\n    };\n    ZRender.prototype.remove = function (el) {\n        if (!el) {\n            return;\n        }\n        this.storage.delRoot(el);\n        el.removeSelfFromZr(this);\n        this.refresh();\n    };\n    ZRender.prototype.configLayer = function (zLevel, config) {\n        if (this.painter.configLayer) {\n            this.painter.configLayer(zLevel, config);\n        }\n        this.refresh();\n    };\n    ZRender.prototype.setBackgroundColor = function (backgroundColor) {\n        if (this.painter.setBackgroundColor) {\n            this.painter.setBackgroundColor(backgroundColor);\n        }\n        this.refresh();\n        this._backgroundColor = backgroundColor;\n        this._darkMode = isDarkMode(backgroundColor);\n    };\n    ZRender.prototype.getBackgroundColor = function () {\n        return this._backgroundColor;\n    };\n    ZRender.prototype.setDarkMode = function (darkMode) {\n        this._darkMode = darkMode;\n    };\n    ZRender.prototype.isDarkMode = function () {\n        return this._darkMode;\n    };\n    ZRender.prototype.refreshImmediately = function (fromInside) {\n        if (!fromInside) {\n            this.animation.update(true);\n        }\n        this._needsRefresh = false;\n        this.painter.refresh();\n        this._needsRefresh = false;\n    };\n    ZRender.prototype.refresh = function () {\n        this._needsRefresh = true;\n        this.animation.start();\n    };\n    ZRender.prototype.flush = function () {\n        this._flush(false);\n    };\n    ZRender.prototype._flush = function (fromInside) {\n        var triggerRendered;\n        var start = new Date().getTime();\n        if (this._needsRefresh) {\n            triggerRendered = true;\n            this.refreshImmediately(fromInside);\n        }\n        if (this._needsRefreshHover) {\n            triggerRendered = true;\n            this.refreshHoverImmediately();\n        }\n        var end = new Date().getTime();\n        if (triggerRendered) {\n            this._stillFrameAccum = 0;\n            this.trigger('rendered', {\n                elapsedTime: end - start\n            });\n        }\n        else if (this._sleepAfterStill > 0) {\n            this._stillFrameAccum++;\n            if (this._stillFrameAccum > this._sleepAfterStill) {\n                this.animation.stop();\n            }\n        }\n    };\n    ZRender.prototype.setSleepAfterStill = function (stillFramesCount) {\n        this._sleepAfterStill = stillFramesCount;\n    };\n    ZRender.prototype.wakeUp = function () {\n        this.animation.start();\n        this._stillFrameAccum = 0;\n    };\n    ZRender.prototype.addHover = function (el) {\n    };\n    ZRender.prototype.removeHover = function (el) {\n    };\n    ZRender.prototype.clearHover = function () {\n    };\n    ZRender.prototype.refreshHover = function () {\n        this._needsRefreshHover = true;\n    };\n    ZRender.prototype.refreshHoverImmediately = function () {\n        this._needsRefreshHover = false;\n        if (this.painter.refreshHover && this.painter.getType() === 'canvas') {\n            this.painter.refreshHover();\n        }\n    };\n    ZRender.prototype.resize = function (opts) {\n        opts = opts || {};\n        this.painter.resize(opts.width, opts.height);\n        this.handler.resize();\n    };\n    ZRender.prototype.clearAnimation = function () {\n        this.animation.clear();\n    };\n    ZRender.prototype.getWidth = function () {\n        return this.painter.getWidth();\n    };\n    ZRender.prototype.getHeight = function () {\n        return this.painter.getHeight();\n    };\n    ZRender.prototype.pathToImage = function (e, dpr) {\n        if (this.painter.pathToImage) {\n            return this.painter.pathToImage(e, dpr);\n        }\n    };\n    ZRender.prototype.setCursorStyle = function (cursorStyle) {\n        this.handler.setCursorStyle(cursorStyle);\n    };\n    ZRender.prototype.findHover = function (x, y) {\n        return this.handler.findHover(x, y);\n    };\n    ZRender.prototype.on = function (eventName, eventHandler, context) {\n        this.handler.on(eventName, eventHandler, context);\n        return this;\n    };\n    ZRender.prototype.off = function (eventName, eventHandler) {\n        this.handler.off(eventName, eventHandler);\n    };\n    ZRender.prototype.trigger = function (eventName, event) {\n        this.handler.trigger(eventName, event);\n    };\n    ZRender.prototype.clear = function () {\n        var roots = this.storage.getRoots();\n        for (var i = 0; i < roots.length; i++) {\n            if (roots[i] instanceof Group) {\n                roots[i].removeSelfFromZr(this);\n            }\n        }\n        this.storage.delAllRoots();\n        this.painter.clear();\n    };\n    ZRender.prototype.dispose = function () {\n        this.animation.stop();\n        this.clear();\n        this.storage.dispose();\n        this.painter.dispose();\n        this.handler.dispose();\n        this.animation =\n            this.storage =\n                this.painter =\n                    this.handler = null;\n        delInstance(this.id);\n    };\n    return ZRender;\n}());\nexport function init(dom, opts) {\n    var zr = new ZRender(zrUtil.guid(), dom, opts);\n    instances[zr.id] = zr;\n    return zr;\n}\nexport function dispose(zr) {\n    zr.dispose();\n}\nexport function disposeAll() {\n    for (var key in instances) {\n        if (instances.hasOwnProperty(key)) {\n            instances[key].dispose();\n        }\n    }\n    instances = {};\n}\nexport function getInstance(id) {\n    return instances[id];\n}\nexport function registerPainter(name, Ctor) {\n    painterCtors[name] = Ctor;\n}\nexport var version = '5.0.1';\n;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar RADIAN_EPSILON = 1e-4;\n\nfunction _trim(str) {\n  return str.replace(/^\\s+|\\s+$/g, '');\n}\n\nexport function linearMap(val, domain, range, clamp) {\n  var subDomain = domain[1] - domain[0];\n  var subRange = range[1] - range[0];\n\n  if (subDomain === 0) {\n    return subRange === 0 ? range[0] : (range[0] + range[1]) / 2;\n  }\n\n  if (clamp) {\n    if (subDomain > 0) {\n      if (val <= domain[0]) {\n        return range[0];\n      } else if (val >= domain[1]) {\n        return range[1];\n      }\n    } else {\n      if (val >= domain[0]) {\n        return range[0];\n      } else if (val <= domain[1]) {\n        return range[1];\n      }\n    }\n  } else {\n    if (val === domain[0]) {\n      return range[0];\n    }\n\n    if (val === domain[1]) {\n      return range[1];\n    }\n  }\n\n  return (val - domain[0]) / subDomain * subRange + range[0];\n}\nexport function parsePercent(percent, all) {\n  switch (percent) {\n    case 'center':\n    case 'middle':\n      percent = '50%';\n      break;\n\n    case 'left':\n    case 'top':\n      percent = '0%';\n      break;\n\n    case 'right':\n    case 'bottom':\n      percent = '100%';\n      break;\n  }\n\n  if (typeof percent === 'string') {\n    if (_trim(percent).match(/%$/)) {\n      return parseFloat(percent) / 100 * all;\n    }\n\n    return parseFloat(percent);\n  }\n\n  return percent == null ? NaN : +percent;\n}\nexport function round(x, precision, returnStr) {\n  if (precision == null) {\n    precision = 10;\n  }\n\n  precision = Math.min(Math.max(0, precision), 20);\n  x = (+x).toFixed(precision);\n  return returnStr ? x : +x;\n}\nexport function asc(arr) {\n  arr.sort(function (a, b) {\n    return a - b;\n  });\n  return arr;\n}\nexport function getPrecision(val) {\n  val = +val;\n\n  if (isNaN(val)) {\n    return 0;\n  }\n\n  var e = 1;\n  var count = 0;\n\n  while (Math.round(val * e) / e !== val) {\n    e *= 10;\n    count++;\n  }\n\n  return count;\n}\nexport function getPrecisionSafe(val) {\n  var str = val.toString();\n  var eIndex = str.indexOf('e');\n\n  if (eIndex > 0) {\n    var precision = +str.slice(eIndex + 1);\n    return precision < 0 ? -precision : 0;\n  } else {\n    var dotIndex = str.indexOf('.');\n    return dotIndex < 0 ? 0 : str.length - 1 - dotIndex;\n  }\n}\nexport function getPixelPrecision(dataExtent, pixelExtent) {\n  var log = Math.log;\n  var LN10 = Math.LN10;\n  var dataQuantity = Math.floor(log(dataExtent[1] - dataExtent[0]) / LN10);\n  var sizeQuantity = Math.round(log(Math.abs(pixelExtent[1] - pixelExtent[0])) / LN10);\n  var precision = Math.min(Math.max(-dataQuantity + sizeQuantity, 0), 20);\n  return !isFinite(precision) ? 20 : precision;\n}\nexport function getPercentWithPrecision(valueList, idx, precision) {\n  if (!valueList[idx]) {\n    return 0;\n  }\n\n  var sum = zrUtil.reduce(valueList, function (acc, val) {\n    return acc + (isNaN(val) ? 0 : val);\n  }, 0);\n\n  if (sum === 0) {\n    return 0;\n  }\n\n  var digits = Math.pow(10, precision);\n  var votesPerQuota = zrUtil.map(valueList, function (val) {\n    return (isNaN(val) ? 0 : val) / sum * digits * 100;\n  });\n  var targetSeats = digits * 100;\n  var seats = zrUtil.map(votesPerQuota, function (votes) {\n    return Math.floor(votes);\n  });\n  var currentSum = zrUtil.reduce(seats, function (acc, val) {\n    return acc + val;\n  }, 0);\n  var remainder = zrUtil.map(votesPerQuota, function (votes, idx) {\n    return votes - seats[idx];\n  });\n\n  while (currentSum < targetSeats) {\n    var max = Number.NEGATIVE_INFINITY;\n    var maxId = null;\n\n    for (var i = 0, len = remainder.length; i < len; ++i) {\n      if (remainder[i] > max) {\n        max = remainder[i];\n        maxId = i;\n      }\n    }\n\n    ++seats[maxId];\n    remainder[maxId] = 0;\n    ++currentSum;\n  }\n\n  return seats[idx] / digits;\n}\nexport var MAX_SAFE_INTEGER = 9007199254740991;\nexport function remRadian(radian) {\n  var pi2 = Math.PI * 2;\n  return (radian % pi2 + pi2) % pi2;\n}\nexport function isRadianAroundZero(val) {\n  return val > -RADIAN_EPSILON && val < RADIAN_EPSILON;\n}\nvar 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)?)?)?)?)?$/;\nexport function parseDate(value) {\n  if (value instanceof Date) {\n    return value;\n  } else if (typeof value === 'string') {\n    var match = TIME_REG.exec(value);\n\n    if (!match) {\n      return new Date(NaN);\n    }\n\n    if (!match[8]) {\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);\n    } else {\n      var hour = +match[4] || 0;\n\n      if (match[8].toUpperCase() !== 'Z') {\n        hour -= +match[8].slice(0, 3);\n      }\n\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));\n    }\n  } else if (value == null) {\n    return new Date(NaN);\n  }\n\n  return new Date(Math.round(value));\n}\nexport function quantity(val) {\n  return Math.pow(10, quantityExponent(val));\n}\nexport function quantityExponent(val) {\n  if (val === 0) {\n    return 0;\n  }\n\n  var exp = Math.floor(Math.log(val) / Math.LN10);\n\n  if (val / Math.pow(10, exp) >= 10) {\n    exp++;\n  }\n\n  return exp;\n}\nexport function nice(val, round) {\n  var exponent = quantityExponent(val);\n  var exp10 = Math.pow(10, exponent);\n  var f = val / exp10;\n  var nf;\n\n  if (round) {\n    if (f < 1.5) {\n      nf = 1;\n    } else if (f < 2.5) {\n      nf = 2;\n    } else if (f < 4) {\n      nf = 3;\n    } else if (f < 7) {\n      nf = 5;\n    } else {\n      nf = 10;\n    }\n  } else {\n    if (f < 1) {\n      nf = 1;\n    } else if (f < 2) {\n      nf = 2;\n    } else if (f < 3) {\n      nf = 3;\n    } else if (f < 5) {\n      nf = 5;\n    } else {\n      nf = 10;\n    }\n  }\n\n  val = nf * exp10;\n  return exponent >= -20 ? +val.toFixed(exponent < 0 ? -exponent : 0) : val;\n}\nexport function quantile(ascArr, p) {\n  var H = (ascArr.length - 1) * p + 1;\n  var h = Math.floor(H);\n  var v = +ascArr[h - 1];\n  var e = H - h;\n  return e ? v + e * (ascArr[h] - v) : v;\n}\nexport function reformIntervals(list) {\n  list.sort(function (a, b) {\n    return littleThan(a, b, 0) ? -1 : 1;\n  });\n  var curr = -Infinity;\n  var currClose = 1;\n\n  for (var i = 0; i < list.length;) {\n    var interval = list[i].interval;\n    var close_1 = list[i].close;\n\n    for (var lg = 0; lg < 2; lg++) {\n      if (interval[lg] <= curr) {\n        interval[lg] = curr;\n        close_1[lg] = !lg ? 1 - currClose : 1;\n      }\n\n      curr = interval[lg];\n      currClose = close_1[lg];\n    }\n\n    if (interval[0] === interval[1] && close_1[0] * close_1[1] !== 1) {\n      list.splice(i, 1);\n    } else {\n      i++;\n    }\n  }\n\n  return list;\n\n  function littleThan(a, b, lg) {\n    return a.interval[lg] < b.interval[lg] || a.interval[lg] === b.interval[lg] && (a.close[lg] - b.close[lg] === (!lg ? 1 : -1) || !lg && littleThan(a, b, 1));\n  }\n}\nexport function numericToNumber(val) {\n  var valFloat = parseFloat(val);\n  return valFloat == val && (valFloat !== 0 || typeof val !== 'string' || val.indexOf('x') <= 0) ? valFloat : NaN;\n}\nexport function isNumeric(val) {\n  return !isNaN(numericToNumber(val));\n}\nexport function getRandomIdBase() {\n  return Math.round(Math.random() * 9);\n}\nexport function getGreatestCommonDividor(a, b) {\n  if (b === 0) {\n    return a;\n  }\n\n  return getGreatestCommonDividor(b, a % b);\n}\nexport function getLeastCommonMultiple(a, b) {\n  if (a == null) {\n    return b;\n  }\n\n  if (b == null) {\n    return a;\n  }\n\n  return a * b / getGreatestCommonDividor(a, b);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { map, isString, isFunction, eqNaN, isRegExp } from 'zrender/lib/core/util';\nvar ECHARTS_PREFIX = '[ECharts] ';\nvar storedLogs = {};\nvar hasConsole = typeof console !== 'undefined' && console.warn && console.log;\nexport function log(str) {\n  if (hasConsole) {\n    console.log(ECHARTS_PREFIX + str);\n  }\n}\nexport function warn(str) {\n  if (hasConsole) {\n    console.warn(ECHARTS_PREFIX + str);\n  }\n}\nexport function error(str) {\n  if (hasConsole) {\n    console.error(ECHARTS_PREFIX + str);\n  }\n}\nexport function deprecateLog(str) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (storedLogs[str]) {\n      return;\n    }\n\n    if (hasConsole) {\n      storedLogs[str] = true;\n      console.warn(ECHARTS_PREFIX + 'DEPRECATED: ' + str);\n    }\n  }\n}\nexport function deprecateReplaceLog(oldOpt, newOpt, scope) {\n  if (process.env.NODE_ENV !== 'production') {\n    deprecateLog((scope ? \"[\" + scope + \"]\" : '') + (oldOpt + \" is deprecated, use \" + newOpt + \" instead.\"));\n  }\n}\nexport function consoleLog() {\n  var args = [];\n\n  for (var _i = 0; _i < arguments.length; _i++) {\n    args[_i] = arguments[_i];\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (typeof console !== 'undefined' && console.log) {\n      console.log.apply(console, args);\n    }\n  }\n}\nexport function makePrintable() {\n  var hintInfo = [];\n\n  for (var _i = 0; _i < arguments.length; _i++) {\n    hintInfo[_i] = arguments[_i];\n  }\n\n  var msg = '';\n\n  if (process.env.NODE_ENV !== 'production') {\n    var makePrintableStringIfPossible_1 = function (val) {\n      return val === void 0 ? 'undefined' : val === Infinity ? 'Infinity' : val === -Infinity ? '-Infinity' : eqNaN(val) ? 'NaN' : val instanceof Date ? 'Date(' + val.toISOString() + ')' : isFunction(val) ? 'function () { ... }' : isRegExp(val) ? val + '' : null;\n    };\n\n    msg = map(hintInfo, function (arg) {\n      if (isString(arg)) {\n        return arg;\n      } else {\n        var printableStr = makePrintableStringIfPossible_1(arg);\n\n        if (printableStr != null) {\n          return printableStr;\n        } else if (typeof JSON !== 'undefined' && JSON.stringify) {\n          try {\n            return JSON.stringify(arg, function (n, val) {\n              var printableStr = makePrintableStringIfPossible_1(val);\n              return printableStr == null ? val : printableStr;\n            });\n          } catch (err) {\n            return '?';\n          }\n        } else {\n          return '?';\n        }\n      }\n    }).join(' ');\n  }\n\n  return msg;\n}\nexport function throwError(msg) {\n  throw new Error(msg);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, isObject, isArray, createHashMap, map, assert, isString, indexOf, isStringSafe } from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport { isNumeric, getRandomIdBase, getPrecisionSafe, round } from './number';\nimport { interpolateNumber } from 'zrender/lib/animation/Animator';\nimport { warn } from './log';\nvar DUMMY_COMPONENT_NAME_PREFIX = 'series\\0';\nvar INTERNAL_COMPONENT_ID_PREFIX = '\\0_ec_\\0';\nexport function normalizeToArray(value) {\n  return value instanceof Array ? value : value == null ? [] : [value];\n}\nexport function defaultEmphasis(opt, key, subOpts) {\n  if (opt) {\n    opt[key] = opt[key] || {};\n    opt.emphasis = opt.emphasis || {};\n    opt.emphasis[key] = opt.emphasis[key] || {};\n\n    for (var i = 0, len = subOpts.length; i < len; i++) {\n      var subOptName = subOpts[i];\n\n      if (!opt.emphasis[key].hasOwnProperty(subOptName) && opt[key].hasOwnProperty(subOptName)) {\n        opt.emphasis[key][subOptName] = opt[key][subOptName];\n      }\n    }\n  }\n}\nexport var TEXT_STYLE_OPTIONS = ['fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'rich', 'tag', 'color', 'textBorderColor', 'textBorderWidth', 'width', 'height', 'lineHeight', 'align', 'verticalAlign', 'baseline', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY', 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY', 'backgroundColor', 'borderColor', 'borderWidth', 'borderRadius', 'padding'];\nexport function getDataItemValue(dataItem) {\n  return isObject(dataItem) && !isArray(dataItem) && !(dataItem instanceof Date) ? dataItem.value : dataItem;\n}\nexport function isDataItemOption(dataItem) {\n  return isObject(dataItem) && !(dataItem instanceof Array);\n}\n;\nexport function mappingToExists(existings, newCmptOptions, mode) {\n  var isNormalMergeMode = mode === 'normalMerge';\n  var isReplaceMergeMode = mode === 'replaceMerge';\n  var isReplaceAllMode = mode === 'replaceAll';\n  existings = existings || [];\n  newCmptOptions = (newCmptOptions || []).slice();\n  var existingIdIdxMap = createHashMap();\n  each(newCmptOptions, function (cmptOption, index) {\n    if (!isObject(cmptOption)) {\n      newCmptOptions[index] = null;\n      return;\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (cmptOption.id != null && !isValidIdOrName(cmptOption.id)) {\n        warnInvalidateIdOrName(cmptOption.id);\n      }\n\n      if (cmptOption.name != null && !isValidIdOrName(cmptOption.name)) {\n        warnInvalidateIdOrName(cmptOption.name);\n      }\n    }\n  });\n  var result = prepareResult(existings, existingIdIdxMap, mode);\n\n  if (isNormalMergeMode || isReplaceMergeMode) {\n    mappingById(result, existings, existingIdIdxMap, newCmptOptions);\n  }\n\n  if (isNormalMergeMode) {\n    mappingByName(result, newCmptOptions);\n  }\n\n  if (isNormalMergeMode || isReplaceMergeMode) {\n    mappingByIndex(result, newCmptOptions, isReplaceMergeMode);\n  } else if (isReplaceAllMode) {\n    mappingInReplaceAllMode(result, newCmptOptions);\n  }\n\n  makeIdAndName(result);\n  return result;\n}\n\nfunction prepareResult(existings, existingIdIdxMap, mode) {\n  var result = [];\n\n  if (mode === 'replaceAll') {\n    return result;\n  }\n\n  for (var index = 0; index < existings.length; index++) {\n    var existing = existings[index];\n\n    if (existing && existing.id != null) {\n      existingIdIdxMap.set(existing.id, index);\n    }\n\n    result.push({\n      existing: mode === 'replaceMerge' || isComponentIdInternal(existing) ? null : existing,\n      newOption: null,\n      keyInfo: null,\n      brandNew: null\n    });\n  }\n\n  return result;\n}\n\nfunction mappingById(result, existings, existingIdIdxMap, newCmptOptions) {\n  each(newCmptOptions, function (cmptOption, index) {\n    if (!cmptOption || cmptOption.id == null) {\n      return;\n    }\n\n    var optionId = makeComparableKey(cmptOption.id);\n    var existingIdx = existingIdIdxMap.get(optionId);\n\n    if (existingIdx != null) {\n      var resultItem = result[existingIdx];\n      assert(!resultItem.newOption, 'Duplicated option on id \"' + optionId + '\".');\n      resultItem.newOption = cmptOption;\n      resultItem.existing = existings[existingIdx];\n      newCmptOptions[index] = null;\n    }\n  });\n}\n\nfunction mappingByName(result, newCmptOptions) {\n  each(newCmptOptions, function (cmptOption, index) {\n    if (!cmptOption || cmptOption.name == null) {\n      return;\n    }\n\n    for (var i = 0; i < result.length; i++) {\n      var existing = result[i].existing;\n\n      if (!result[i].newOption && existing && (existing.id == null || cmptOption.id == null) && !isComponentIdInternal(cmptOption) && !isComponentIdInternal(existing) && keyExistAndEqual('name', existing, cmptOption)) {\n        result[i].newOption = cmptOption;\n        newCmptOptions[index] = null;\n        return;\n      }\n    }\n  });\n}\n\nfunction mappingByIndex(result, newCmptOptions, brandNew) {\n  each(newCmptOptions, function (cmptOption) {\n    if (!cmptOption) {\n      return;\n    }\n\n    var resultItem;\n    var nextIdx = 0;\n\n    while ((resultItem = result[nextIdx]) && (resultItem.newOption || isComponentIdInternal(resultItem.existing) || resultItem.existing && cmptOption.id != null && !keyExistAndEqual('id', cmptOption, resultItem.existing))) {\n      nextIdx++;\n    }\n\n    if (resultItem) {\n      resultItem.newOption = cmptOption;\n      resultItem.brandNew = brandNew;\n    } else {\n      result.push({\n        newOption: cmptOption,\n        brandNew: brandNew,\n        existing: null,\n        keyInfo: null\n      });\n    }\n\n    nextIdx++;\n  });\n}\n\nfunction mappingInReplaceAllMode(result, newCmptOptions) {\n  each(newCmptOptions, function (cmptOption) {\n    result.push({\n      newOption: cmptOption,\n      brandNew: true,\n      existing: null,\n      keyInfo: null\n    });\n  });\n}\n\nfunction makeIdAndName(mapResult) {\n  var idMap = createHashMap();\n  each(mapResult, function (item) {\n    var existing = item.existing;\n    existing && idMap.set(existing.id, item);\n  });\n  each(mapResult, function (item) {\n    var opt = item.newOption;\n    assert(!opt || opt.id == null || !idMap.get(opt.id) || idMap.get(opt.id) === item, 'id duplicates: ' + (opt && opt.id));\n    opt && opt.id != null && idMap.set(opt.id, item);\n    !item.keyInfo && (item.keyInfo = {});\n  });\n  each(mapResult, function (item, index) {\n    var existing = item.existing;\n    var opt = item.newOption;\n    var keyInfo = item.keyInfo;\n\n    if (!isObject(opt)) {\n      return;\n    }\n\n    keyInfo.name = opt.name != null ? makeComparableKey(opt.name) : existing ? existing.name : DUMMY_COMPONENT_NAME_PREFIX + index;\n\n    if (existing) {\n      keyInfo.id = makeComparableKey(existing.id);\n    } else if (opt.id != null) {\n      keyInfo.id = makeComparableKey(opt.id);\n    } else {\n      var idNum = 0;\n\n      do {\n        keyInfo.id = '\\0' + keyInfo.name + '\\0' + idNum++;\n      } while (idMap.get(keyInfo.id));\n    }\n\n    idMap.set(keyInfo.id, item);\n  });\n}\n\nfunction keyExistAndEqual(attr, obj1, obj2) {\n  var key1 = convertOptionIdName(obj1[attr], null);\n  var key2 = convertOptionIdName(obj2[attr], null);\n  return key1 != null && key2 != null && key1 === key2;\n}\n\nfunction makeComparableKey(val) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (val == null) {\n      throw new Error();\n    }\n  }\n\n  return convertOptionIdName(val, '');\n}\n\nexport function convertOptionIdName(idOrName, defaultValue) {\n  if (idOrName == null) {\n    return defaultValue;\n  }\n\n  var type = typeof idOrName;\n  return type === 'string' ? idOrName : type === 'number' || isStringSafe(idOrName) ? idOrName + '' : defaultValue;\n}\n\nfunction warnInvalidateIdOrName(idOrName) {\n  if (process.env.NODE_ENV !== 'production') {\n    warn('`' + idOrName + '` is invalid id or name. Must be a string or number.');\n  }\n}\n\nfunction isValidIdOrName(idOrName) {\n  return isStringSafe(idOrName) || isNumeric(idOrName);\n}\n\nexport function isNameSpecified(componentModel) {\n  var name = componentModel.name;\n  return !!(name && name.indexOf(DUMMY_COMPONENT_NAME_PREFIX));\n}\nexport function isComponentIdInternal(cmptOption) {\n  return cmptOption && cmptOption.id != null && makeComparableKey(cmptOption.id).indexOf(INTERNAL_COMPONENT_ID_PREFIX) === 0;\n}\nexport function makeInternalComponentId(idSuffix) {\n  return INTERNAL_COMPONENT_ID_PREFIX + idSuffix;\n}\nexport function setComponentTypeToKeyInfo(mappingResult, mainType, componentModelCtor) {\n  each(mappingResult, function (item) {\n    var newOption = item.newOption;\n\n    if (isObject(newOption)) {\n      item.keyInfo.mainType = mainType;\n      item.keyInfo.subType = determineSubType(mainType, newOption, item.existing, componentModelCtor);\n    }\n  });\n}\n\nfunction determineSubType(mainType, newCmptOption, existComponent, componentModelCtor) {\n  var subType = newCmptOption.type ? newCmptOption.type : existComponent ? existComponent.subType : componentModelCtor.determineSubType(mainType, newCmptOption);\n  return subType;\n}\n\nexport function compressBatches(batchA, batchB) {\n  var mapA = {};\n  var mapB = {};\n  makeMap(batchA || [], mapA);\n  makeMap(batchB || [], mapB, mapA);\n  return [mapToArray(mapA), mapToArray(mapB)];\n\n  function makeMap(sourceBatch, map, otherMap) {\n    for (var i = 0, len = sourceBatch.length; i < len; i++) {\n      var seriesId = convertOptionIdName(sourceBatch[i].seriesId, null);\n\n      if (seriesId == null) {\n        return;\n      }\n\n      var dataIndices = normalizeToArray(sourceBatch[i].dataIndex);\n      var otherDataIndices = otherMap && otherMap[seriesId];\n\n      for (var j = 0, lenj = dataIndices.length; j < lenj; j++) {\n        var dataIndex = dataIndices[j];\n\n        if (otherDataIndices && otherDataIndices[dataIndex]) {\n          otherDataIndices[dataIndex] = null;\n        } else {\n          (map[seriesId] || (map[seriesId] = {}))[dataIndex] = 1;\n        }\n      }\n    }\n  }\n\n  function mapToArray(map, isData) {\n    var result = [];\n\n    for (var i in map) {\n      if (map.hasOwnProperty(i) && map[i] != null) {\n        if (isData) {\n          result.push(+i);\n        } else {\n          var dataIndices = mapToArray(map[i], true);\n          dataIndices.length && result.push({\n            seriesId: i,\n            dataIndex: dataIndices\n          });\n        }\n      }\n    }\n\n    return result;\n  }\n}\nexport function queryDataIndex(data, payload) {\n  if (payload.dataIndexInside != null) {\n    return payload.dataIndexInside;\n  } else if (payload.dataIndex != null) {\n    return isArray(payload.dataIndex) ? map(payload.dataIndex, function (value) {\n      return data.indexOfRawIndex(value);\n    }) : data.indexOfRawIndex(payload.dataIndex);\n  } else if (payload.name != null) {\n    return isArray(payload.name) ? map(payload.name, function (value) {\n      return data.indexOfName(value);\n    }) : data.indexOfName(payload.name);\n  }\n}\nexport function makeInner() {\n  var key = '__ec_inner_' + innerUniqueIndex++;\n  return function (hostObj) {\n    return hostObj[key] || (hostObj[key] = {});\n  };\n}\nvar innerUniqueIndex = getRandomIdBase();\nexport function parseFinder(ecModel, finderInput, opt) {\n  var finder;\n\n  if (isString(finderInput)) {\n    var obj = {};\n    obj[finderInput + 'Index'] = 0;\n    finder = obj;\n  } else {\n    finder = finderInput;\n  }\n\n  var queryOptionMap = createHashMap();\n  var result = {};\n  var mainTypeSpecified = false;\n  each(finder, function (value, key) {\n    if (key === 'dataIndex' || key === 'dataIndexInside') {\n      result[key] = value;\n      return;\n    }\n\n    var parsedKey = key.match(/^(\\w+)(Index|Id|Name)$/) || [];\n    var mainType = parsedKey[1];\n    var queryType = (parsedKey[2] || '').toLowerCase();\n\n    if (!mainType || !queryType || opt && opt.includeMainTypes && indexOf(opt.includeMainTypes, mainType) < 0) {\n      return;\n    }\n\n    mainTypeSpecified = mainTypeSpecified || !!mainType;\n    var queryOption = queryOptionMap.get(mainType) || queryOptionMap.set(mainType, {});\n    queryOption[queryType] = value;\n  });\n  var defaultMainType = opt ? opt.defaultMainType : null;\n\n  if (!mainTypeSpecified && defaultMainType) {\n    queryOptionMap.set(defaultMainType, {});\n  }\n\n  queryOptionMap.each(function (queryOption, mainType) {\n    var queryResult = queryReferringComponents(ecModel, mainType, queryOption, {\n      useDefault: defaultMainType === mainType,\n      enableAll: opt && opt.enableAll != null ? opt.enableAll : true,\n      enableNone: opt && opt.enableNone != null ? opt.enableNone : true\n    });\n    result[mainType + 'Models'] = queryResult.models;\n    result[mainType + 'Model'] = queryResult.models[0];\n  });\n  return result;\n}\nexport var SINGLE_REFERRING = {\n  useDefault: true,\n  enableAll: false,\n  enableNone: false\n};\nexport var MULTIPLE_REFERRING = {\n  useDefault: false,\n  enableAll: true,\n  enableNone: true\n};\nexport function queryReferringComponents(ecModel, mainType, userOption, opt) {\n  opt = opt || SINGLE_REFERRING;\n  var indexOption = userOption.index;\n  var idOption = userOption.id;\n  var nameOption = userOption.name;\n  var result = {\n    models: null,\n    specified: indexOption != null || idOption != null || nameOption != null\n  };\n\n  if (!result.specified) {\n    var firstCmpt = void 0;\n    result.models = opt.useDefault && (firstCmpt = ecModel.getComponent(mainType)) ? [firstCmpt] : [];\n    return result;\n  }\n\n  if (indexOption === 'none' || indexOption === false) {\n    assert(opt.enableNone, '`\"none\"` or `false` is not a valid value on index option.');\n    result.models = [];\n    return result;\n  }\n\n  if (indexOption === 'all') {\n    assert(opt.enableAll, '`\"all\"` is not a valid value on index option.');\n    indexOption = idOption = nameOption = null;\n  }\n\n  result.models = ecModel.queryComponents({\n    mainType: mainType,\n    index: indexOption,\n    id: idOption,\n    name: nameOption\n  });\n  return result;\n}\nexport function setAttribute(dom, key, value) {\n  dom.setAttribute ? dom.setAttribute(key, value) : dom[key] = value;\n}\nexport function getAttribute(dom, key) {\n  return dom.getAttribute ? dom.getAttribute(key) : dom[key];\n}\nexport function getTooltipRenderMode(renderModeOption) {\n  if (renderModeOption === 'auto') {\n    return env.domSupported ? 'html' : 'richText';\n  } else {\n    return renderModeOption || 'html';\n  }\n}\nexport function groupData(array, getKey) {\n  var buckets = createHashMap();\n  var keys = [];\n  each(array, function (item) {\n    var key = getKey(item);\n    (buckets.get(key) || (keys.push(key), buckets.set(key, []))).push(item);\n  });\n  return {\n    keys: keys,\n    buckets: buckets\n  };\n}\nexport function interpolateRawValues(data, precision, sourceValue, targetValue, percent) {\n  var isAutoPrecision = precision == null || precision === 'auto';\n\n  if (targetValue == null) {\n    return targetValue;\n  }\n\n  if (typeof targetValue === 'number') {\n    var value = interpolateNumber(sourceValue || 0, targetValue, percent);\n    return round(value, isAutoPrecision ? Math.max(getPrecisionSafe(sourceValue || 0), getPrecisionSafe(targetValue)) : precision);\n  } else if (typeof targetValue === 'string') {\n    return percent < 1 ? sourceValue : targetValue;\n  } else {\n    var interpolated = [];\n    var leftArr = sourceValue;\n    var rightArr = targetValue;\n    var length_1 = Math.max(leftArr ? leftArr.length : 0, rightArr.length);\n\n    for (var i = 0; i < length_1; ++i) {\n      var info = data.getDimensionInfo(i);\n\n      if (info.type === 'ordinal') {\n        interpolated[i] = (percent < 1 && leftArr ? leftArr : rightArr)[i];\n      } else {\n        var leftVal = leftArr && leftArr[i] ? leftArr[i] : 0;\n        var rightVal = rightArr[i];\n        var value = interpolateNumber(leftVal, rightVal, percent);\n        interpolated[i] = round(value, isAutoPrecision ? Math.max(getPrecisionSafe(leftVal), getPrecisionSafe(rightVal)) : precision);\n      }\n    }\n\n    return interpolated;\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __spreadArrays } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nvar TYPE_DELIMITER = '.';\nvar IS_CONTAINER = '___EC__COMPONENT__CONTAINER___';\nvar IS_EXTENDED_CLASS = '___EC__EXTENDED_CLASS___';\nexport function parseClassType(componentType) {\n  var ret = {\n    main: '',\n    sub: ''\n  };\n\n  if (componentType) {\n    var typeArr = componentType.split(TYPE_DELIMITER);\n    ret.main = typeArr[0] || '';\n    ret.sub = typeArr[1] || '';\n  }\n\n  return ret;\n}\n\nfunction checkClassType(componentType) {\n  zrUtil.assert(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(componentType), 'componentType \"' + componentType + '\" illegal');\n}\n\nexport function isExtendedClass(clz) {\n  return !!(clz && clz[IS_EXTENDED_CLASS]);\n}\nexport function enableClassExtend(rootClz, mandatoryMethods) {\n  rootClz.$constructor = rootClz;\n\n  rootClz.extend = function (proto) {\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.each(mandatoryMethods, function (method) {\n        if (!proto[method]) {\n          console.warn('Method `' + method + '` should be implemented' + (proto.type ? ' in ' + proto.type : '') + '.');\n        }\n      });\n    }\n\n    var superClass = this;\n\n    function ExtendedClass() {\n      var args = [];\n\n      for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n      }\n\n      if (!proto.$constructor) {\n        if (!isESClass(superClass)) {\n          superClass.apply(this, arguments);\n        } else {\n          var ins = zrUtil.createObject(ExtendedClass.prototype, new (superClass.bind.apply(superClass, __spreadArrays([void 0], args)))());\n          return ins;\n        }\n      } else {\n        proto.$constructor.apply(this, arguments);\n      }\n    }\n\n    ExtendedClass[IS_EXTENDED_CLASS] = true;\n    zrUtil.extend(ExtendedClass.prototype, proto);\n    ExtendedClass.extend = this.extend;\n    ExtendedClass.superCall = superCall;\n    ExtendedClass.superApply = superApply;\n    zrUtil.inherits(ExtendedClass, this);\n    ExtendedClass.superClass = superClass;\n    return ExtendedClass;\n  };\n}\n\nfunction isESClass(fn) {\n  return typeof fn === 'function' && /^class\\s/.test(Function.prototype.toString.call(fn));\n}\n\nexport function mountExtend(SubClz, SupperClz) {\n  SubClz.extend = SupperClz.extend;\n}\nvar classBase = Math.round(Math.random() * 10);\nexport function enableClassCheck(target) {\n  var classAttr = ['__\\0is_clz', classBase++].join('_');\n  target.prototype[classAttr] = true;\n\n  if (process.env.NODE_ENV !== 'production') {\n    zrUtil.assert(!target.isInstance, 'The method \"is\" can not be defined.');\n  }\n\n  target.isInstance = function (obj) {\n    return !!(obj && obj[classAttr]);\n  };\n}\n\nfunction superCall(context, methodName) {\n  var args = [];\n\n  for (var _i = 2; _i < arguments.length; _i++) {\n    args[_i - 2] = arguments[_i];\n  }\n\n  return this.superClass.prototype[methodName].apply(context, args);\n}\n\nfunction superApply(context, methodName, args) {\n  return this.superClass.prototype[methodName].apply(context, args);\n}\n\nexport function enableClassManagement(target) {\n  var storage = {};\n\n  target.registerClass = function (clz) {\n    var componentFullType = clz.type || clz.prototype.type;\n\n    if (componentFullType) {\n      checkClassType(componentFullType);\n      clz.prototype.type = componentFullType;\n      var componentTypeInfo = parseClassType(componentFullType);\n\n      if (!componentTypeInfo.sub) {\n        if (process.env.NODE_ENV !== 'production') {\n          if (storage[componentTypeInfo.main]) {\n            console.warn(componentTypeInfo.main + ' exists.');\n          }\n        }\n\n        storage[componentTypeInfo.main] = clz;\n      } else if (componentTypeInfo.sub !== IS_CONTAINER) {\n        var container = makeContainer(componentTypeInfo);\n        container[componentTypeInfo.sub] = clz;\n      }\n    }\n\n    return clz;\n  };\n\n  target.getClass = function (mainType, subType, throwWhenNotFound) {\n    var clz = storage[mainType];\n\n    if (clz && clz[IS_CONTAINER]) {\n      clz = subType ? clz[subType] : null;\n    }\n\n    if (throwWhenNotFound && !clz) {\n      throw new Error(!subType ? mainType + '.' + 'type should be specified.' : 'Component ' + mainType + '.' + (subType || '') + ' not exists. Load it first.');\n    }\n\n    return clz;\n  };\n\n  target.getClassesByMainType = function (componentType) {\n    var componentTypeInfo = parseClassType(componentType);\n    var result = [];\n    var obj = storage[componentTypeInfo.main];\n\n    if (obj && obj[IS_CONTAINER]) {\n      zrUtil.each(obj, function (o, type) {\n        type !== IS_CONTAINER && result.push(o);\n      });\n    } else {\n      result.push(obj);\n    }\n\n    return result;\n  };\n\n  target.hasClass = function (componentType) {\n    var componentTypeInfo = parseClassType(componentType);\n    return !!storage[componentTypeInfo.main];\n  };\n\n  target.getAllClassMainTypes = function () {\n    var types = [];\n    zrUtil.each(storage, function (obj, type) {\n      types.push(type);\n    });\n    return types;\n  };\n\n  target.hasSubTypes = function (componentType) {\n    var componentTypeInfo = parseClassType(componentType);\n    var obj = storage[componentTypeInfo.main];\n    return obj && obj[IS_CONTAINER];\n  };\n\n  function makeContainer(componentTypeInfo) {\n    var container = storage[componentTypeInfo.main];\n\n    if (!container || !container[IS_CONTAINER]) {\n      container = storage[componentTypeInfo.main] = {};\n      container[IS_CONTAINER] = true;\n    }\n\n    return container;\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function makeStyleMapper(properties, ignoreParent) {\n  for (var i = 0; i < properties.length; i++) {\n    if (!properties[i][1]) {\n      properties[i][1] = properties[i][0];\n    }\n  }\n\n  ignoreParent = ignoreParent || false;\n  return function (model, excludes, includes) {\n    var style = {};\n\n    for (var i = 0; i < properties.length; i++) {\n      var propName = properties[i][1];\n\n      if (excludes && zrUtil.indexOf(excludes, propName) >= 0 || includes && zrUtil.indexOf(includes, propName) < 0) {\n        continue;\n      }\n\n      var val = model.getShallow(propName, ignoreParent);\n\n      if (val != null) {\n        style[properties[i][0]] = val;\n      }\n    }\n\n    return style;\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport makeStyleMapper from './makeStyleMapper';\nexport var AREA_STYLE_KEY_MAP = [['fill', 'color'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['opacity'], ['shadowColor']];\nvar getAreaStyle = makeStyleMapper(AREA_STYLE_KEY_MAP);\n\nvar AreaStyleMixin = function () {\n  function AreaStyleMixin() {}\n\n  AreaStyleMixin.prototype.getAreaStyle = function (excludes, includes) {\n    return getAreaStyle(this, excludes, includes);\n  };\n\n  return AreaStyleMixin;\n}();\n\n;\nexport { AreaStyleMixin };","import LRU from '../../core/LRU';\nvar globalImageCache = new LRU(50);\nexport function findExistImage(newImageOrSrc) {\n    if (typeof newImageOrSrc === 'string') {\n        var cachedImgObj = globalImageCache.get(newImageOrSrc);\n        return cachedImgObj && cachedImgObj.image;\n    }\n    else {\n        return newImageOrSrc;\n    }\n}\nexport function createOrUpdateImage(newImageOrSrc, image, hostEl, onload, cbPayload) {\n    if (!newImageOrSrc) {\n        return image;\n    }\n    else if (typeof newImageOrSrc === 'string') {\n        if ((image && image.__zrImageSrc === newImageOrSrc) || !hostEl) {\n            return image;\n        }\n        var cachedImgObj = globalImageCache.get(newImageOrSrc);\n        var pendingWrap = { hostEl: hostEl, cb: onload, cbPayload: cbPayload };\n        if (cachedImgObj) {\n            image = cachedImgObj.image;\n            !isImageReady(image) && cachedImgObj.pending.push(pendingWrap);\n        }\n        else {\n            image = new Image();\n            image.onload = image.onerror = imageOnLoad;\n            globalImageCache.put(newImageOrSrc, image.__cachedImgObj = {\n                image: image,\n                pending: [pendingWrap]\n            });\n            image.src = image.__zrImageSrc = newImageOrSrc;\n        }\n        return image;\n    }\n    else {\n        return newImageOrSrc;\n    }\n}\nfunction imageOnLoad() {\n    var cachedImgObj = this.__cachedImgObj;\n    this.onload = this.onerror = this.__cachedImgObj = null;\n    for (var i = 0; i < cachedImgObj.pending.length; i++) {\n        var pendingWrap = cachedImgObj.pending[i];\n        var cb = pendingWrap.cb;\n        cb && cb(this, pendingWrap.cbPayload);\n        pendingWrap.hostEl.dirty();\n    }\n    cachedImgObj.pending.length = 0;\n}\nexport function isImageReady(image) {\n    return image && image.width && image.height;\n}\n","import * as imageHelper from '../helper/image';\nimport { extend, retrieve2, retrieve3, reduce } from '../../core/util';\nimport { getLineHeight, getWidth } from '../../contain/text';\nvar STYLE_REG = /\\{([a-zA-Z0-9_]+)\\|([^}]*)\\}/g;\nexport function truncateText(text, containerWidth, font, ellipsis, options) {\n    if (!containerWidth) {\n        return '';\n    }\n    var textLines = (text + '').split('\\n');\n    options = prepareTruncateOptions(containerWidth, font, ellipsis, options);\n    for (var i = 0, len = textLines.length; i < len; i++) {\n        textLines[i] = truncateSingleLine(textLines[i], options);\n    }\n    return textLines.join('\\n');\n}\nfunction prepareTruncateOptions(containerWidth, font, ellipsis, options) {\n    options = options || {};\n    var preparedOpts = extend({}, options);\n    preparedOpts.font = font;\n    ellipsis = retrieve2(ellipsis, '...');\n    preparedOpts.maxIterations = retrieve2(options.maxIterations, 2);\n    var minChar = preparedOpts.minChar = retrieve2(options.minChar, 0);\n    preparedOpts.cnCharWidth = getWidth('国', font);\n    var ascCharWidth = preparedOpts.ascCharWidth = getWidth('a', font);\n    preparedOpts.placeholder = retrieve2(options.placeholder, '');\n    var contentWidth = containerWidth = Math.max(0, containerWidth - 1);\n    for (var i = 0; i < minChar && contentWidth >= ascCharWidth; i++) {\n        contentWidth -= ascCharWidth;\n    }\n    var ellipsisWidth = getWidth(ellipsis, font);\n    if (ellipsisWidth > contentWidth) {\n        ellipsis = '';\n        ellipsisWidth = 0;\n    }\n    contentWidth = containerWidth - ellipsisWidth;\n    preparedOpts.ellipsis = ellipsis;\n    preparedOpts.ellipsisWidth = ellipsisWidth;\n    preparedOpts.contentWidth = contentWidth;\n    preparedOpts.containerWidth = containerWidth;\n    return preparedOpts;\n}\nfunction truncateSingleLine(textLine, options) {\n    var containerWidth = options.containerWidth;\n    var font = options.font;\n    var contentWidth = options.contentWidth;\n    if (!containerWidth) {\n        return '';\n    }\n    var lineWidth = getWidth(textLine, font);\n    if (lineWidth <= containerWidth) {\n        return textLine;\n    }\n    for (var j = 0;; j++) {\n        if (lineWidth <= contentWidth || j >= options.maxIterations) {\n            textLine += options.ellipsis;\n            break;\n        }\n        var subLength = j === 0\n            ? estimateLength(textLine, contentWidth, options.ascCharWidth, options.cnCharWidth)\n            : lineWidth > 0\n                ? Math.floor(textLine.length * contentWidth / lineWidth)\n                : 0;\n        textLine = textLine.substr(0, subLength);\n        lineWidth = getWidth(textLine, font);\n    }\n    if (textLine === '') {\n        textLine = options.placeholder;\n    }\n    return textLine;\n}\nfunction estimateLength(text, contentWidth, ascCharWidth, cnCharWidth) {\n    var width = 0;\n    var i = 0;\n    for (var len = text.length; i < len && width < contentWidth; i++) {\n        var charCode = text.charCodeAt(i);\n        width += (0 <= charCode && charCode <= 127) ? ascCharWidth : cnCharWidth;\n    }\n    return i;\n}\nexport function parsePlainText(text, style) {\n    text != null && (text += '');\n    var overflow = style.overflow;\n    var padding = style.padding;\n    var font = style.font;\n    var truncate = overflow === 'truncate';\n    var calculatedLineHeight = getLineHeight(font);\n    var lineHeight = retrieve2(style.lineHeight, calculatedLineHeight);\n    var truncateLineOverflow = style.lineOverflow === 'truncate';\n    var width = style.width;\n    var lines;\n    if (width != null && overflow === 'break' || overflow === 'breakAll') {\n        lines = text ? wrapText(text, style.font, width, overflow === 'breakAll', 0).lines : [];\n    }\n    else {\n        lines = text ? text.split('\\n') : [];\n    }\n    var contentHeight = lines.length * lineHeight;\n    var height = retrieve2(style.height, contentHeight);\n    if (contentHeight > height && truncateLineOverflow) {\n        var lineCount = Math.floor(height / lineHeight);\n        lines = lines.slice(0, lineCount);\n    }\n    var outerHeight = height;\n    var outerWidth = width;\n    if (padding) {\n        outerHeight += padding[0] + padding[2];\n        if (outerWidth != null) {\n            outerWidth += padding[1] + padding[3];\n        }\n    }\n    if (text && truncate && outerWidth != null) {\n        var options = prepareTruncateOptions(width, font, style.ellipsis, {\n            minChar: style.truncateMinChar,\n            placeholder: style.placeholder\n        });\n        for (var i = 0; i < lines.length; i++) {\n            lines[i] = truncateSingleLine(lines[i], options);\n        }\n    }\n    if (width == null) {\n        var maxWidth = 0;\n        for (var i = 0; i < lines.length; i++) {\n            maxWidth = Math.max(getWidth(lines[i], font), maxWidth);\n        }\n        width = maxWidth;\n    }\n    return {\n        lines: lines,\n        height: height,\n        outerHeight: outerHeight,\n        lineHeight: lineHeight,\n        calculatedLineHeight: calculatedLineHeight,\n        contentHeight: contentHeight,\n        width: width\n    };\n}\nvar RichTextToken = (function () {\n    function RichTextToken() {\n    }\n    return RichTextToken;\n}());\nvar RichTextLine = (function () {\n    function RichTextLine(tokens) {\n        this.tokens = [];\n        if (tokens) {\n            this.tokens = tokens;\n        }\n    }\n    return RichTextLine;\n}());\nvar RichTextContentBlock = (function () {\n    function RichTextContentBlock() {\n        this.width = 0;\n        this.height = 0;\n        this.contentWidth = 0;\n        this.contentHeight = 0;\n        this.outerWidth = 0;\n        this.outerHeight = 0;\n        this.lines = [];\n    }\n    return RichTextContentBlock;\n}());\nexport { RichTextContentBlock };\nexport function parseRichText(text, style) {\n    var contentBlock = new RichTextContentBlock();\n    text != null && (text += '');\n    if (!text) {\n        return contentBlock;\n    }\n    var topWidth = style.width;\n    var topHeight = style.height;\n    var overflow = style.overflow;\n    var wrapInfo = (overflow === 'break' || overflow === 'breakAll') && topWidth != null\n        ? { width: topWidth, accumWidth: 0, breakAll: overflow === 'breakAll' }\n        : null;\n    var lastIndex = STYLE_REG.lastIndex = 0;\n    var result;\n    while ((result = STYLE_REG.exec(text)) != null) {\n        var matchedIndex = result.index;\n        if (matchedIndex > lastIndex) {\n            pushTokens(contentBlock, text.substring(lastIndex, matchedIndex), style, wrapInfo);\n        }\n        pushTokens(contentBlock, result[2], style, wrapInfo, result[1]);\n        lastIndex = STYLE_REG.lastIndex;\n    }\n    if (lastIndex < text.length) {\n        pushTokens(contentBlock, text.substring(lastIndex, text.length), style, wrapInfo);\n    }\n    var pendingList = [];\n    var calculatedHeight = 0;\n    var calculatedWidth = 0;\n    var stlPadding = style.padding;\n    var truncate = overflow === 'truncate';\n    var truncateLine = style.lineOverflow === 'truncate';\n    var prevToken;\n    function finishLine(line, lineWidth, lineHeight) {\n        line.width = lineWidth;\n        line.lineHeight = lineHeight;\n        calculatedHeight += lineHeight;\n        calculatedWidth = Math.max(calculatedWidth, lineWidth);\n    }\n    outer: for (var i = 0; i < contentBlock.lines.length; i++) {\n        var line = contentBlock.lines[i];\n        var lineHeight = 0;\n        var lineWidth = 0;\n        for (var j = 0; j < line.tokens.length; j++) {\n            var token = line.tokens[j];\n            var tokenStyle = token.styleName && style.rich[token.styleName] || {};\n            var textPadding = token.textPadding = tokenStyle.padding;\n            var paddingH = textPadding ? textPadding[1] + textPadding[3] : 0;\n            var font = token.font = tokenStyle.font || style.font;\n            token.contentHeight = getLineHeight(font);\n            var tokenHeight = retrieve2(tokenStyle.height, token.contentHeight);\n            token.innerHeight = tokenHeight;\n            textPadding && (tokenHeight += textPadding[0] + textPadding[2]);\n            token.height = tokenHeight;\n            token.lineHeight = retrieve3(tokenStyle.lineHeight, style.lineHeight, tokenHeight);\n            token.align = tokenStyle && tokenStyle.align || style.align;\n            token.verticalAlign = tokenStyle && tokenStyle.verticalAlign || 'middle';\n            if (truncateLine && topHeight != null && calculatedHeight + token.lineHeight > topHeight) {\n                if (j > 0) {\n                    line.tokens = line.tokens.slice(0, j);\n                    finishLine(line, lineWidth, lineHeight);\n                    contentBlock.lines = contentBlock.lines.slice(0, i + 1);\n                }\n                else {\n                    contentBlock.lines = contentBlock.lines.slice(0, i);\n                }\n                break outer;\n            }\n            var styleTokenWidth = tokenStyle.width;\n            var tokenWidthNotSpecified = styleTokenWidth == null || styleTokenWidth === 'auto';\n            if (typeof styleTokenWidth === 'string' && styleTokenWidth.charAt(styleTokenWidth.length - 1) === '%') {\n                token.percentWidth = styleTokenWidth;\n                pendingList.push(token);\n                token.contentWidth = getWidth(token.text, font);\n            }\n            else {\n                if (tokenWidthNotSpecified) {\n                    var textBackgroundColor = tokenStyle.backgroundColor;\n                    var bgImg = textBackgroundColor && textBackgroundColor.image;\n                    if (bgImg) {\n                        bgImg = imageHelper.findExistImage(bgImg);\n                        if (imageHelper.isImageReady(bgImg)) {\n                            token.width = Math.max(token.width, bgImg.width * tokenHeight / bgImg.height);\n                        }\n                    }\n                }\n                var remainTruncWidth = truncate && topWidth != null\n                    ? topWidth - lineWidth : null;\n                if (remainTruncWidth != null && remainTruncWidth < token.width) {\n                    if (!tokenWidthNotSpecified || remainTruncWidth < paddingH) {\n                        token.text = '';\n                        token.width = token.contentWidth = 0;\n                    }\n                    else {\n                        token.text = truncateText(token.text, remainTruncWidth - paddingH, font, style.ellipsis, { minChar: style.truncateMinChar });\n                        token.width = token.contentWidth = getWidth(token.text, font);\n                    }\n                }\n                else {\n                    token.contentWidth = getWidth(token.text, font);\n                }\n            }\n            token.width += paddingH;\n            lineWidth += token.width;\n            tokenStyle && (lineHeight = Math.max(lineHeight, token.lineHeight));\n            prevToken = token;\n        }\n        finishLine(line, lineWidth, lineHeight);\n    }\n    contentBlock.outerWidth = contentBlock.width = retrieve2(topWidth, calculatedWidth);\n    contentBlock.outerHeight = contentBlock.height = retrieve2(topHeight, calculatedHeight);\n    contentBlock.contentHeight = calculatedHeight;\n    contentBlock.contentWidth = calculatedWidth;\n    if (stlPadding) {\n        contentBlock.outerWidth += stlPadding[1] + stlPadding[3];\n        contentBlock.outerHeight += stlPadding[0] + stlPadding[2];\n    }\n    for (var i = 0; i < pendingList.length; i++) {\n        var token = pendingList[i];\n        var percentWidth = token.percentWidth;\n        token.width = parseInt(percentWidth, 10) / 100 * contentBlock.width;\n    }\n    return contentBlock;\n}\nfunction pushTokens(block, str, style, wrapInfo, styleName) {\n    var isEmptyStr = str === '';\n    var tokenStyle = styleName && style.rich[styleName] || {};\n    var lines = block.lines;\n    var font = tokenStyle.font || style.font;\n    var newLine = false;\n    var strLines;\n    var linesWidths;\n    if (wrapInfo) {\n        var tokenPadding = tokenStyle.padding;\n        var tokenPaddingH = tokenPadding ? tokenPadding[1] + tokenPadding[3] : 0;\n        if (tokenStyle.width != null && tokenStyle.width !== 'auto') {\n            var outerWidth_1 = parsePercent(tokenStyle.width, wrapInfo.width) + tokenPaddingH;\n            if (lines.length > 0) {\n                if (outerWidth_1 + wrapInfo.accumWidth > wrapInfo.width) {\n                    strLines = str.split('\\n');\n                    newLine = true;\n                }\n            }\n            wrapInfo.accumWidth = outerWidth_1;\n        }\n        else {\n            var res = wrapText(str, font, wrapInfo.width, wrapInfo.breakAll, wrapInfo.accumWidth);\n            wrapInfo.accumWidth = res.accumWidth + tokenPaddingH;\n            linesWidths = res.linesWidths;\n            strLines = res.lines;\n        }\n    }\n    else {\n        strLines = str.split('\\n');\n    }\n    for (var i = 0; i < strLines.length; i++) {\n        var text = strLines[i];\n        var token = new RichTextToken();\n        token.styleName = styleName;\n        token.text = text;\n        token.isLineHolder = !text && !isEmptyStr;\n        if (typeof tokenStyle.width === 'number') {\n            token.width = tokenStyle.width;\n        }\n        else {\n            token.width = linesWidths\n                ? linesWidths[i]\n                : getWidth(text, font);\n        }\n        if (!i && !newLine) {\n            var tokens = (lines[lines.length - 1] || (lines[0] = new RichTextLine())).tokens;\n            var tokensLen = tokens.length;\n            (tokensLen === 1 && tokens[0].isLineHolder)\n                ? (tokens[0] = token)\n                : ((text || !tokensLen || isEmptyStr) && tokens.push(token));\n        }\n        else {\n            lines.push(new RichTextLine([token]));\n        }\n    }\n}\nfunction isLatin(ch) {\n    var code = ch.charCodeAt(0);\n    return code >= 0x21 && code <= 0xFF;\n}\nvar breakCharMap = reduce(',&?/;] '.split(''), function (obj, ch) {\n    obj[ch] = true;\n    return obj;\n}, {});\nfunction isWordBreakChar(ch) {\n    if (isLatin(ch)) {\n        if (breakCharMap[ch]) {\n            return true;\n        }\n        return false;\n    }\n    return true;\n}\nfunction wrapText(text, font, lineWidth, isBreakAll, lastAccumWidth) {\n    var lines = [];\n    var linesWidths = [];\n    var line = '';\n    var currentWord = '';\n    var currentWordWidth = 0;\n    var accumWidth = 0;\n    for (var i = 0; i < text.length; i++) {\n        var ch = text.charAt(i);\n        if (ch === '\\n') {\n            if (currentWord) {\n                line += currentWord;\n                accumWidth += currentWordWidth;\n            }\n            lines.push(line);\n            linesWidths.push(accumWidth);\n            line = '';\n            currentWord = '';\n            currentWordWidth = 0;\n            accumWidth = 0;\n            continue;\n        }\n        var chWidth = getWidth(ch, font);\n        var inWord = isBreakAll ? false : !isWordBreakChar(ch);\n        if (!lines.length\n            ? lastAccumWidth + accumWidth + chWidth > lineWidth\n            : accumWidth + chWidth > lineWidth) {\n            if (!accumWidth) {\n                if (inWord) {\n                    lines.push(currentWord);\n                    linesWidths.push(currentWordWidth);\n                    currentWord = ch;\n                    currentWordWidth = chWidth;\n                }\n                else {\n                    lines.push(ch);\n                    linesWidths.push(chWidth);\n                }\n            }\n            else if (line || currentWord) {\n                if (inWord) {\n                    if (!line) {\n                        line = currentWord;\n                        currentWord = '';\n                        currentWordWidth = 0;\n                        accumWidth = currentWordWidth;\n                    }\n                    lines.push(line);\n                    linesWidths.push(accumWidth - currentWordWidth);\n                    currentWord += ch;\n                    currentWordWidth += chWidth;\n                    line = '';\n                    accumWidth = currentWordWidth;\n                }\n                else {\n                    if (currentWord) {\n                        line += currentWord;\n                        accumWidth += currentWordWidth;\n                        currentWord = '';\n                        currentWordWidth = 0;\n                    }\n                    lines.push(line);\n                    linesWidths.push(accumWidth);\n                    line = ch;\n                    accumWidth = chWidth;\n                }\n            }\n            continue;\n        }\n        accumWidth += chWidth;\n        if (inWord) {\n            currentWord += ch;\n            currentWordWidth += chWidth;\n        }\n        else {\n            if (currentWord) {\n                line += currentWord;\n                currentWord = '';\n                currentWordWidth = 0;\n            }\n            line += ch;\n        }\n    }\n    if (!lines.length && !line) {\n        line = text;\n        currentWord = '';\n        currentWordWidth = 0;\n    }\n    if (currentWord) {\n        line += currentWord;\n    }\n    if (line) {\n        lines.push(line);\n        linesWidths.push(accumWidth);\n    }\n    if (lines.length === 1) {\n        accumWidth += lastAccumWidth;\n    }\n    return {\n        accumWidth: accumWidth,\n        lines: lines,\n        linesWidths: linesWidths\n    };\n}\nfunction parsePercent(value, maxValue) {\n    if (typeof value === 'string') {\n        if (value.lastIndexOf('%') >= 0) {\n            return parseFloat(value) / 100 * maxValue;\n        }\n        return parseFloat(value);\n    }\n    return value;\n}\n","import { __extends } from \"tslib\";\nimport Element from '../Element';\nimport BoundingRect from '../core/BoundingRect';\nimport { keys, extend, createObject } from '../core/util';\nvar STYLE_MAGIC_KEY = '__zr_style_' + Math.round((Math.random() * 10));\nexport var DEFAULT_COMMON_STYLE = {\n    shadowBlur: 0,\n    shadowOffsetX: 0,\n    shadowOffsetY: 0,\n    shadowColor: '#000',\n    opacity: 1,\n    blend: 'source-over'\n};\nexport var DEFAULT_COMMON_ANIMATION_PROPS = {\n    style: {\n        shadowBlur: true,\n        shadowOffsetX: true,\n        shadowOffsetY: true,\n        shadowColor: true,\n        opacity: true\n    }\n};\nDEFAULT_COMMON_STYLE[STYLE_MAGIC_KEY] = true;\nvar PRIMARY_STATES_KEYS = ['z', 'z2', 'invisible'];\nvar Displayable = (function (_super) {\n    __extends(Displayable, _super);\n    function Displayable(props) {\n        return _super.call(this, props) || this;\n    }\n    Displayable.prototype._init = function (props) {\n        var keysArr = keys(props);\n        for (var i = 0; i < keysArr.length; i++) {\n            var key = keysArr[i];\n            if (key === 'style') {\n                this.useStyle(props[key]);\n            }\n            else {\n                _super.prototype.attrKV.call(this, key, props[key]);\n            }\n        }\n        if (!this.style) {\n            this.useStyle({});\n        }\n    };\n    Displayable.prototype.beforeBrush = function () { };\n    Displayable.prototype.afterBrush = function () { };\n    Displayable.prototype.innerBeforeBrush = function () { };\n    Displayable.prototype.innerAfterBrush = function () { };\n    Displayable.prototype.shouldBePainted = function (viewWidth, viewHeight, considerClipPath, considerAncestors) {\n        var m = this.transform;\n        if (this.ignore\n            || this.invisible\n            || this.style.opacity === 0\n            || (this.culling\n                && isDisplayableCulled(this, viewWidth, viewHeight))\n            || (m && !m[0] && !m[3])) {\n            return false;\n        }\n        if (considerClipPath && this.__clipPaths) {\n            for (var i = 0; i < this.__clipPaths.length; ++i) {\n                if (this.__clipPaths[i].isZeroArea()) {\n                    return false;\n                }\n            }\n        }\n        if (considerAncestors && this.parent) {\n            var parent_1 = this.parent;\n            while (parent_1) {\n                if (parent_1.ignore) {\n                    return false;\n                }\n                parent_1 = parent_1.parent;\n            }\n        }\n        return true;\n    };\n    Displayable.prototype.contain = function (x, y) {\n        return this.rectContain(x, y);\n    };\n    Displayable.prototype.traverse = function (cb, context) {\n        cb.call(context, this);\n    };\n    Displayable.prototype.rectContain = function (x, y) {\n        var coord = this.transformCoordToLocal(x, y);\n        var rect = this.getBoundingRect();\n        return rect.contain(coord[0], coord[1]);\n    };\n    Displayable.prototype.getPaintRect = function () {\n        var rect = this._paintRect;\n        if (!this._paintRect || this.__dirty) {\n            var transform = this.transform;\n            var elRect = this.getBoundingRect();\n            var style = this.style;\n            var shadowSize = style.shadowBlur || 0;\n            var shadowOffsetX = style.shadowOffsetX || 0;\n            var shadowOffsetY = style.shadowOffsetY || 0;\n            rect = this._paintRect || (this._paintRect = new BoundingRect(0, 0, 0, 0));\n            if (transform) {\n                BoundingRect.applyTransform(rect, elRect, transform);\n            }\n            else {\n                rect.copy(elRect);\n            }\n            if (shadowSize || shadowOffsetX || shadowOffsetY) {\n                rect.width += shadowSize * 2 + Math.abs(shadowOffsetX);\n                rect.height += shadowSize * 2 + Math.abs(shadowOffsetY);\n                rect.x = Math.min(rect.x, rect.x + shadowOffsetX - shadowSize);\n                rect.y = Math.min(rect.y, rect.y + shadowOffsetY - shadowSize);\n            }\n            var tolerance = this.dirtyRectTolerance;\n            if (!rect.isZero()) {\n                rect.x = Math.floor(rect.x - tolerance);\n                rect.y = Math.floor(rect.y - tolerance);\n                rect.width = Math.ceil(rect.width + 1 + tolerance * 2);\n                rect.height = Math.ceil(rect.height + 1 + tolerance * 2);\n            }\n        }\n        return rect;\n    };\n    Displayable.prototype.setPrevPaintRect = function (paintRect) {\n        if (paintRect) {\n            this._prevPaintRect = this._prevPaintRect || new BoundingRect(0, 0, 0, 0);\n            this._prevPaintRect.copy(paintRect);\n        }\n        else {\n            this._prevPaintRect = null;\n        }\n    };\n    Displayable.prototype.getPrevPaintRect = function () {\n        return this._prevPaintRect;\n    };\n    Displayable.prototype.animateStyle = function (loop) {\n        return this.animate('style', loop);\n    };\n    Displayable.prototype.updateDuringAnimation = function (targetKey) {\n        if (targetKey === 'style') {\n            this.dirtyStyle();\n        }\n        else {\n            this.markRedraw();\n        }\n    };\n    Displayable.prototype.attrKV = function (key, value) {\n        if (key !== 'style') {\n            _super.prototype.attrKV.call(this, key, value);\n        }\n        else {\n            if (!this.style) {\n                this.useStyle(value);\n            }\n            else {\n                this.setStyle(value);\n            }\n        }\n    };\n    Displayable.prototype.setStyle = function (keyOrObj, value) {\n        if (typeof keyOrObj === 'string') {\n            this.style[keyOrObj] = value;\n        }\n        else {\n            extend(this.style, keyOrObj);\n        }\n        this.dirtyStyle();\n        return this;\n    };\n    Displayable.prototype.dirtyStyle = function () {\n        this.markRedraw();\n        this.__dirty |= Displayable.STYLE_CHANGED_BIT;\n        if (this._rect) {\n            this._rect = null;\n        }\n    };\n    Displayable.prototype.dirty = function () {\n        this.dirtyStyle();\n    };\n    Displayable.prototype.styleChanged = function () {\n        return !!(this.__dirty & Displayable.STYLE_CHANGED_BIT);\n    };\n    Displayable.prototype.styleUpdated = function () {\n        this.__dirty &= ~Displayable.STYLE_CHANGED_BIT;\n    };\n    Displayable.prototype.createStyle = function (obj) {\n        return createObject(DEFAULT_COMMON_STYLE, obj);\n    };\n    Displayable.prototype.useStyle = function (obj) {\n        if (!obj[STYLE_MAGIC_KEY]) {\n            obj = this.createStyle(obj);\n        }\n        if (this.__inHover) {\n            this.__hoverStyle = obj;\n        }\n        else {\n            this.style = obj;\n        }\n        this.dirtyStyle();\n    };\n    Displayable.prototype.isStyleObject = function (obj) {\n        return obj[STYLE_MAGIC_KEY];\n    };\n    Displayable.prototype._innerSaveToNormal = function (toState) {\n        _super.prototype._innerSaveToNormal.call(this, toState);\n        var normalState = this._normalState;\n        if (toState.style && !normalState.style) {\n            normalState.style = this._mergeStyle(this.createStyle(), this.style);\n        }\n        this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS);\n    };\n    Displayable.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\n        _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\n        var needsRestoreToNormal = !(state && keepCurrentStates);\n        var targetStyle;\n        if (state && state.style) {\n            if (transition) {\n                if (keepCurrentStates) {\n                    targetStyle = state.style;\n                }\n                else {\n                    targetStyle = this._mergeStyle(this.createStyle(), normalState.style);\n                    this._mergeStyle(targetStyle, state.style);\n                }\n            }\n            else {\n                targetStyle = this._mergeStyle(this.createStyle(), keepCurrentStates ? this.style : normalState.style);\n                this._mergeStyle(targetStyle, state.style);\n            }\n        }\n        else if (needsRestoreToNormal) {\n            targetStyle = normalState.style;\n        }\n        if (targetStyle) {\n            if (transition) {\n                var sourceStyle = this.style;\n                this.style = this.createStyle(needsRestoreToNormal ? {} : sourceStyle);\n                if (needsRestoreToNormal) {\n                    var changedKeys = keys(sourceStyle);\n                    for (var i = 0; i < changedKeys.length; i++) {\n                        var key = changedKeys[i];\n                        if (key in targetStyle) {\n                            targetStyle[key] = targetStyle[key];\n                            this.style[key] = sourceStyle[key];\n                        }\n                    }\n                }\n                var targetKeys = keys(targetStyle);\n                for (var i = 0; i < targetKeys.length; i++) {\n                    var key = targetKeys[i];\n                    this.style[key] = this.style[key];\n                }\n                this._transitionState(stateName, {\n                    style: targetStyle\n                }, animationCfg, this.getAnimationStyleProps());\n            }\n            else {\n                this.useStyle(targetStyle);\n            }\n        }\n        for (var i = 0; i < PRIMARY_STATES_KEYS.length; i++) {\n            var key = PRIMARY_STATES_KEYS[i];\n            if (state && state[key] != null) {\n                this[key] = state[key];\n            }\n            else if (needsRestoreToNormal) {\n                if (normalState[key] != null) {\n                    this[key] = normalState[key];\n                }\n            }\n        }\n    };\n    Displayable.prototype._mergeStates = function (states) {\n        var mergedState = _super.prototype._mergeStates.call(this, states);\n        var mergedStyle;\n        for (var i = 0; i < states.length; i++) {\n            var state = states[i];\n            if (state.style) {\n                mergedStyle = mergedStyle || {};\n                this._mergeStyle(mergedStyle, state.style);\n            }\n        }\n        if (mergedStyle) {\n            mergedState.style = mergedStyle;\n        }\n        return mergedState;\n    };\n    Displayable.prototype._mergeStyle = function (targetStyle, sourceStyle) {\n        extend(targetStyle, sourceStyle);\n        return targetStyle;\n    };\n    Displayable.prototype.getAnimationStyleProps = function () {\n        return DEFAULT_COMMON_ANIMATION_PROPS;\n    };\n    Displayable.STYLE_CHANGED_BIT = 2;\n    Displayable.initDefaultProps = (function () {\n        var dispProto = Displayable.prototype;\n        dispProto.type = 'displayable';\n        dispProto.invisible = false;\n        dispProto.z = 0;\n        dispProto.z2 = 0;\n        dispProto.zlevel = 0;\n        dispProto.culling = false;\n        dispProto.cursor = 'pointer';\n        dispProto.rectHover = false;\n        dispProto.incremental = false;\n        dispProto._rect = null;\n        dispProto.dirtyRectTolerance = 0;\n        dispProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT;\n    })();\n    return Displayable;\n}(Element));\nvar tmpRect = new BoundingRect(0, 0, 0, 0);\nvar viewRect = new BoundingRect(0, 0, 0, 0);\nfunction isDisplayableCulled(el, width, height) {\n    tmpRect.copy(el.getBoundingRect());\n    if (el.transform) {\n        tmpRect.applyTransform(el.transform);\n    }\n    viewRect.width = width;\n    viewRect.height = height;\n    return !tmpRect.intersect(viewRect);\n}\nexport default Displayable;\n","import { create as v2Create, distSquare as v2DistSquare } from './vector';\nvar mathPow = Math.pow;\nvar mathSqrt = Math.sqrt;\nvar EPSILON = 1e-8;\nvar EPSILON_NUMERIC = 1e-4;\nvar THREE_SQRT = mathSqrt(3);\nvar ONE_THIRD = 1 / 3;\nvar _v0 = v2Create();\nvar _v1 = v2Create();\nvar _v2 = v2Create();\nfunction isAroundZero(val) {\n    return val > -EPSILON && val < EPSILON;\n}\nfunction isNotAroundZero(val) {\n    return val > EPSILON || val < -EPSILON;\n}\nexport function cubicAt(p0, p1, p2, p3, t) {\n    var onet = 1 - t;\n    return onet * onet * (onet * p0 + 3 * t * p1)\n        + t * t * (t * p3 + 3 * onet * p2);\n}\nexport function cubicDerivativeAt(p0, p1, p2, p3, t) {\n    var onet = 1 - t;\n    return 3 * (((p1 - p0) * onet + 2 * (p2 - p1) * t) * onet\n        + (p3 - p2) * t * t);\n}\nexport function cubicRootAt(p0, p1, p2, p3, val, roots) {\n    var a = p3 + 3 * (p1 - p2) - p0;\n    var b = 3 * (p2 - p1 * 2 + p0);\n    var c = 3 * (p1 - p0);\n    var d = p0 - val;\n    var A = b * b - 3 * a * c;\n    var B = b * c - 9 * a * d;\n    var C = c * c - 3 * b * d;\n    var n = 0;\n    if (isAroundZero(A) && isAroundZero(B)) {\n        if (isAroundZero(b)) {\n            roots[0] = 0;\n        }\n        else {\n            var t1 = -c / b;\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n        }\n    }\n    else {\n        var disc = B * B - 4 * A * C;\n        if (isAroundZero(disc)) {\n            var K = B / A;\n            var t1 = -b / a + K;\n            var t2 = -K / 2;\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n            if (t2 >= 0 && t2 <= 1) {\n                roots[n++] = t2;\n            }\n        }\n        else if (disc > 0) {\n            var discSqrt = mathSqrt(disc);\n            var Y1 = A * b + 1.5 * a * (-B + discSqrt);\n            var Y2 = A * b + 1.5 * a * (-B - discSqrt);\n            if (Y1 < 0) {\n                Y1 = -mathPow(-Y1, ONE_THIRD);\n            }\n            else {\n                Y1 = mathPow(Y1, ONE_THIRD);\n            }\n            if (Y2 < 0) {\n                Y2 = -mathPow(-Y2, ONE_THIRD);\n            }\n            else {\n                Y2 = mathPow(Y2, ONE_THIRD);\n            }\n            var t1 = (-b - (Y1 + Y2)) / (3 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n        }\n        else {\n            var T = (2 * A * b - 3 * a * B) / (2 * mathSqrt(A * A * A));\n            var theta = Math.acos(T) / 3;\n            var ASqrt = mathSqrt(A);\n            var tmp = Math.cos(theta);\n            var t1 = (-b - 2 * ASqrt * tmp) / (3 * a);\n            var t2 = (-b + ASqrt * (tmp + THREE_SQRT * Math.sin(theta))) / (3 * a);\n            var t3 = (-b + ASqrt * (tmp - THREE_SQRT * Math.sin(theta))) / (3 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n            if (t2 >= 0 && t2 <= 1) {\n                roots[n++] = t2;\n            }\n            if (t3 >= 0 && t3 <= 1) {\n                roots[n++] = t3;\n            }\n        }\n    }\n    return n;\n}\nexport function cubicExtrema(p0, p1, p2, p3, extrema) {\n    var b = 6 * p2 - 12 * p1 + 6 * p0;\n    var a = 9 * p1 + 3 * p3 - 3 * p0 - 9 * p2;\n    var c = 3 * p1 - 3 * p0;\n    var n = 0;\n    if (isAroundZero(a)) {\n        if (isNotAroundZero(b)) {\n            var t1 = -c / b;\n            if (t1 >= 0 && t1 <= 1) {\n                extrema[n++] = t1;\n            }\n        }\n    }\n    else {\n        var disc = b * b - 4 * a * c;\n        if (isAroundZero(disc)) {\n            extrema[0] = -b / (2 * a);\n        }\n        else if (disc > 0) {\n            var discSqrt = mathSqrt(disc);\n            var t1 = (-b + discSqrt) / (2 * a);\n            var t2 = (-b - discSqrt) / (2 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                extrema[n++] = t1;\n            }\n            if (t2 >= 0 && t2 <= 1) {\n                extrema[n++] = t2;\n            }\n        }\n    }\n    return n;\n}\nexport function cubicSubdivide(p0, p1, p2, p3, t, out) {\n    var p01 = (p1 - p0) * t + p0;\n    var p12 = (p2 - p1) * t + p1;\n    var p23 = (p3 - p2) * t + p2;\n    var p012 = (p12 - p01) * t + p01;\n    var p123 = (p23 - p12) * t + p12;\n    var p0123 = (p123 - p012) * t + p012;\n    out[0] = p0;\n    out[1] = p01;\n    out[2] = p012;\n    out[3] = p0123;\n    out[4] = p0123;\n    out[5] = p123;\n    out[6] = p23;\n    out[7] = p3;\n}\nexport function cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, out) {\n    var t;\n    var interval = 0.005;\n    var d = Infinity;\n    var prev;\n    var next;\n    var d1;\n    var d2;\n    _v0[0] = x;\n    _v0[1] = y;\n    for (var _t = 0; _t < 1; _t += 0.05) {\n        _v1[0] = cubicAt(x0, x1, x2, x3, _t);\n        _v1[1] = cubicAt(y0, y1, y2, y3, _t);\n        d1 = v2DistSquare(_v0, _v1);\n        if (d1 < d) {\n            t = _t;\n            d = d1;\n        }\n    }\n    d = Infinity;\n    for (var i = 0; i < 32; i++) {\n        if (interval < EPSILON_NUMERIC) {\n            break;\n        }\n        prev = t - interval;\n        next = t + interval;\n        _v1[0] = cubicAt(x0, x1, x2, x3, prev);\n        _v1[1] = cubicAt(y0, y1, y2, y3, prev);\n        d1 = v2DistSquare(_v1, _v0);\n        if (prev >= 0 && d1 < d) {\n            t = prev;\n            d = d1;\n        }\n        else {\n            _v2[0] = cubicAt(x0, x1, x2, x3, next);\n            _v2[1] = cubicAt(y0, y1, y2, y3, next);\n            d2 = v2DistSquare(_v2, _v0);\n            if (next <= 1 && d2 < d) {\n                t = next;\n                d = d2;\n            }\n            else {\n                interval *= 0.5;\n            }\n        }\n    }\n    if (out) {\n        out[0] = cubicAt(x0, x1, x2, x3, t);\n        out[1] = cubicAt(y0, y1, y2, y3, t);\n    }\n    return mathSqrt(d);\n}\nexport function cubicLength(x0, y0, x1, y1, x2, y2, x3, y3, iteration) {\n    var px = x0;\n    var py = y0;\n    var d = 0;\n    var step = 1 / iteration;\n    for (var i = 1; i <= iteration; i++) {\n        var t = i * step;\n        var x = cubicAt(x0, x1, x2, x3, t);\n        var y = cubicAt(y0, y1, y2, y3, t);\n        var dx = x - px;\n        var dy = y - py;\n        d += Math.sqrt(dx * dx + dy * dy);\n        px = x;\n        py = y;\n    }\n    return d;\n}\nexport function quadraticAt(p0, p1, p2, t) {\n    var onet = 1 - t;\n    return onet * (onet * p0 + 2 * t * p1) + t * t * p2;\n}\nexport function quadraticDerivativeAt(p0, p1, p2, t) {\n    return 2 * ((1 - t) * (p1 - p0) + t * (p2 - p1));\n}\nexport function quadraticRootAt(p0, p1, p2, val, roots) {\n    var a = p0 - 2 * p1 + p2;\n    var b = 2 * (p1 - p0);\n    var c = p0 - val;\n    var n = 0;\n    if (isAroundZero(a)) {\n        if (isNotAroundZero(b)) {\n            var t1 = -c / b;\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n        }\n    }\n    else {\n        var disc = b * b - 4 * a * c;\n        if (isAroundZero(disc)) {\n            var t1 = -b / (2 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n        }\n        else if (disc > 0) {\n            var discSqrt = mathSqrt(disc);\n            var t1 = (-b + discSqrt) / (2 * a);\n            var t2 = (-b - discSqrt) / (2 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n            if (t2 >= 0 && t2 <= 1) {\n                roots[n++] = t2;\n            }\n        }\n    }\n    return n;\n}\nexport function quadraticExtremum(p0, p1, p2) {\n    var divider = p0 + p2 - 2 * p1;\n    if (divider === 0) {\n        return 0.5;\n    }\n    else {\n        return (p0 - p1) / divider;\n    }\n}\nexport function quadraticSubdivide(p0, p1, p2, t, out) {\n    var p01 = (p1 - p0) * t + p0;\n    var p12 = (p2 - p1) * t + p1;\n    var p012 = (p12 - p01) * t + p01;\n    out[0] = p0;\n    out[1] = p01;\n    out[2] = p012;\n    out[3] = p012;\n    out[4] = p12;\n    out[5] = p2;\n}\nexport function quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, out) {\n    var t;\n    var interval = 0.005;\n    var d = Infinity;\n    _v0[0] = x;\n    _v0[1] = y;\n    for (var _t = 0; _t < 1; _t += 0.05) {\n        _v1[0] = quadraticAt(x0, x1, x2, _t);\n        _v1[1] = quadraticAt(y0, y1, y2, _t);\n        var d1 = v2DistSquare(_v0, _v1);\n        if (d1 < d) {\n            t = _t;\n            d = d1;\n        }\n    }\n    d = Infinity;\n    for (var i = 0; i < 32; i++) {\n        if (interval < EPSILON_NUMERIC) {\n            break;\n        }\n        var prev = t - interval;\n        var next = t + interval;\n        _v1[0] = quadraticAt(x0, x1, x2, prev);\n        _v1[1] = quadraticAt(y0, y1, y2, prev);\n        var d1 = v2DistSquare(_v1, _v0);\n        if (prev >= 0 && d1 < d) {\n            t = prev;\n            d = d1;\n        }\n        else {\n            _v2[0] = quadraticAt(x0, x1, x2, next);\n            _v2[1] = quadraticAt(y0, y1, y2, next);\n            var d2 = v2DistSquare(_v2, _v0);\n            if (next <= 1 && d2 < d) {\n                t = next;\n                d = d2;\n            }\n            else {\n                interval *= 0.5;\n            }\n        }\n    }\n    if (out) {\n        out[0] = quadraticAt(x0, x1, x2, t);\n        out[1] = quadraticAt(y0, y1, y2, t);\n    }\n    return mathSqrt(d);\n}\nexport function quadraticLength(x0, y0, x1, y1, x2, y2, iteration) {\n    var px = x0;\n    var py = y0;\n    var d = 0;\n    var step = 1 / iteration;\n    for (var i = 1; i <= iteration; i++) {\n        var t = i * step;\n        var x = quadraticAt(x0, x1, x2, t);\n        var y = quadraticAt(y0, y1, y2, t);\n        var dx = x - px;\n        var dy = y - py;\n        d += Math.sqrt(dx * dx + dy * dy);\n        px = x;\n        py = y;\n    }\n    return d;\n}\n","import * as vec2 from './vector';\nimport * as curve from './curve';\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI2 = Math.PI * 2;\nvar start = vec2.create();\nvar end = vec2.create();\nvar extremity = vec2.create();\nexport function fromPoints(points, min, max) {\n    if (points.length === 0) {\n        return;\n    }\n    var p = points[0];\n    var left = p[0];\n    var right = p[0];\n    var top = p[1];\n    var bottom = p[1];\n    for (var i = 1; i < points.length; i++) {\n        p = points[i];\n        left = mathMin(left, p[0]);\n        right = mathMax(right, p[0]);\n        top = mathMin(top, p[1]);\n        bottom = mathMax(bottom, p[1]);\n    }\n    min[0] = left;\n    min[1] = top;\n    max[0] = right;\n    max[1] = bottom;\n}\nexport function fromLine(x0, y0, x1, y1, min, max) {\n    min[0] = mathMin(x0, x1);\n    min[1] = mathMin(y0, y1);\n    max[0] = mathMax(x0, x1);\n    max[1] = mathMax(y0, y1);\n}\nvar xDim = [];\nvar yDim = [];\nexport function fromCubic(x0, y0, x1, y1, x2, y2, x3, y3, min, max) {\n    var cubicExtrema = curve.cubicExtrema;\n    var cubicAt = curve.cubicAt;\n    var n = cubicExtrema(x0, x1, x2, x3, xDim);\n    min[0] = Infinity;\n    min[1] = Infinity;\n    max[0] = -Infinity;\n    max[1] = -Infinity;\n    for (var i = 0; i < n; i++) {\n        var x = cubicAt(x0, x1, x2, x3, xDim[i]);\n        min[0] = mathMin(x, min[0]);\n        max[0] = mathMax(x, max[0]);\n    }\n    n = cubicExtrema(y0, y1, y2, y3, yDim);\n    for (var i = 0; i < n; i++) {\n        var y = cubicAt(y0, y1, y2, y3, yDim[i]);\n        min[1] = mathMin(y, min[1]);\n        max[1] = mathMax(y, max[1]);\n    }\n    min[0] = mathMin(x0, min[0]);\n    max[0] = mathMax(x0, max[0]);\n    min[0] = mathMin(x3, min[0]);\n    max[0] = mathMax(x3, max[0]);\n    min[1] = mathMin(y0, min[1]);\n    max[1] = mathMax(y0, max[1]);\n    min[1] = mathMin(y3, min[1]);\n    max[1] = mathMax(y3, max[1]);\n}\nexport function fromQuadratic(x0, y0, x1, y1, x2, y2, min, max) {\n    var quadraticExtremum = curve.quadraticExtremum;\n    var quadraticAt = curve.quadraticAt;\n    var tx = mathMax(mathMin(quadraticExtremum(x0, x1, x2), 1), 0);\n    var ty = mathMax(mathMin(quadraticExtremum(y0, y1, y2), 1), 0);\n    var x = quadraticAt(x0, x1, x2, tx);\n    var y = quadraticAt(y0, y1, y2, ty);\n    min[0] = mathMin(x0, x2, x);\n    min[1] = mathMin(y0, y2, y);\n    max[0] = mathMax(x0, x2, x);\n    max[1] = mathMax(y0, y2, y);\n}\nexport function fromArc(x, y, rx, ry, startAngle, endAngle, anticlockwise, min, max) {\n    var vec2Min = vec2.min;\n    var vec2Max = vec2.max;\n    var diff = Math.abs(startAngle - endAngle);\n    if (diff % PI2 < 1e-4 && diff > 1e-4) {\n        min[0] = x - rx;\n        min[1] = y - ry;\n        max[0] = x + rx;\n        max[1] = y + ry;\n        return;\n    }\n    start[0] = mathCos(startAngle) * rx + x;\n    start[1] = mathSin(startAngle) * ry + y;\n    end[0] = mathCos(endAngle) * rx + x;\n    end[1] = mathSin(endAngle) * ry + y;\n    vec2Min(min, start, end);\n    vec2Max(max, start, end);\n    startAngle = startAngle % (PI2);\n    if (startAngle < 0) {\n        startAngle = startAngle + PI2;\n    }\n    endAngle = endAngle % (PI2);\n    if (endAngle < 0) {\n        endAngle = endAngle + PI2;\n    }\n    if (startAngle > endAngle && !anticlockwise) {\n        endAngle += PI2;\n    }\n    else if (startAngle < endAngle && anticlockwise) {\n        startAngle += PI2;\n    }\n    if (anticlockwise) {\n        var tmp = endAngle;\n        endAngle = startAngle;\n        startAngle = tmp;\n    }\n    for (var angle = 0; angle < endAngle; angle += Math.PI / 2) {\n        if (angle > startAngle) {\n            extremity[0] = mathCos(angle) * rx + x;\n            extremity[1] = mathSin(angle) * ry + y;\n            vec2Min(min, extremity, min);\n            vec2Max(max, extremity, max);\n        }\n    }\n}\n","import * as vec2 from './vector';\nimport BoundingRect from './BoundingRect';\nimport { devicePixelRatio as dpr } from '../config';\nimport { fromLine, fromCubic, fromQuadratic, fromArc } from './bbox';\nimport { cubicAt, cubicLength, cubicSubdivide, quadraticLength, quadraticSubdivide } from './curve';\nvar CMD = {\n    M: 1,\n    L: 2,\n    C: 3,\n    Q: 4,\n    A: 5,\n    Z: 6,\n    R: 7\n};\nvar tmpOutX = [];\nvar tmpOutY = [];\nvar min = [];\nvar max = [];\nvar min2 = [];\nvar max2 = [];\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathCos = Math.cos;\nvar mathSin = Math.sin;\nvar mathSqrt = Math.sqrt;\nvar mathAbs = Math.abs;\nvar PI = Math.PI;\nvar PI2 = PI * 2;\nvar hasTypedArray = typeof Float32Array !== 'undefined';\nvar tmpAngles = [];\nfunction modPI2(radian) {\n    var n = Math.round(radian / PI * 1e8) / 1e8;\n    return (n % 2) * PI;\n}\nexport function normalizeArcAngles(angles, anticlockwise) {\n    var newStartAngle = modPI2(angles[0]);\n    if (newStartAngle < 0) {\n        newStartAngle += PI2;\n    }\n    var delta = newStartAngle - angles[0];\n    var newEndAngle = angles[1];\n    newEndAngle += delta;\n    if (!anticlockwise && newEndAngle - newStartAngle >= PI2) {\n        newEndAngle = newStartAngle + PI2;\n    }\n    else if (anticlockwise && newStartAngle - newEndAngle >= PI2) {\n        newEndAngle = newStartAngle - PI2;\n    }\n    else if (!anticlockwise && newStartAngle > newEndAngle) {\n        newEndAngle = newStartAngle +\n            (PI2 - modPI2(newStartAngle - newEndAngle));\n    }\n    else if (anticlockwise && newStartAngle < newEndAngle) {\n        newEndAngle = newStartAngle -\n            (PI2 - modPI2(newEndAngle - newStartAngle));\n    }\n    angles[0] = newStartAngle;\n    angles[1] = newEndAngle;\n}\nvar PathProxy = (function () {\n    function PathProxy(notSaveData) {\n        this.dpr = 1;\n        this._version = 0;\n        this._xi = 0;\n        this._yi = 0;\n        this._x0 = 0;\n        this._y0 = 0;\n        this._len = 0;\n        if (notSaveData) {\n            this._saveData = false;\n        }\n        if (this._saveData) {\n            this.data = [];\n        }\n    }\n    PathProxy.prototype.increaseVersion = function () {\n        this._version++;\n    };\n    PathProxy.prototype.getVersion = function () {\n        return this._version;\n    };\n    PathProxy.prototype.setScale = function (sx, sy, segmentIgnoreThreshold) {\n        segmentIgnoreThreshold = segmentIgnoreThreshold || 0;\n        if (segmentIgnoreThreshold > 0) {\n            this._ux = mathAbs(segmentIgnoreThreshold / dpr / sx) || 0;\n            this._uy = mathAbs(segmentIgnoreThreshold / dpr / sy) || 0;\n        }\n    };\n    PathProxy.prototype.setDPR = function (dpr) {\n        this.dpr = dpr;\n    };\n    PathProxy.prototype.setContext = function (ctx) {\n        this._ctx = ctx;\n    };\n    PathProxy.prototype.getContext = function () {\n        return this._ctx;\n    };\n    PathProxy.prototype.beginPath = function () {\n        this._ctx && this._ctx.beginPath();\n        this.reset();\n        return this;\n    };\n    PathProxy.prototype.reset = function () {\n        if (this._saveData) {\n            this._len = 0;\n        }\n        if (this._lineDash) {\n            this._lineDash = null;\n            this._dashOffset = 0;\n        }\n        if (this._pathSegLen) {\n            this._pathSegLen = null;\n            this._pathLen = 0;\n        }\n        this._version++;\n    };\n    PathProxy.prototype.moveTo = function (x, y) {\n        this.addData(CMD.M, x, y);\n        this._ctx && this._ctx.moveTo(x, y);\n        this._x0 = x;\n        this._y0 = y;\n        this._xi = x;\n        this._yi = y;\n        return this;\n    };\n    PathProxy.prototype.lineTo = function (x, y) {\n        var exceedUnit = mathAbs(x - this._xi) > this._ux\n            || mathAbs(y - this._yi) > this._uy\n            || this._len < 5;\n        this.addData(CMD.L, x, y);\n        if (this._ctx && exceedUnit) {\n            this._needsDash ? this._dashedLineTo(x, y)\n                : this._ctx.lineTo(x, y);\n        }\n        if (exceedUnit) {\n            this._xi = x;\n            this._yi = y;\n        }\n        return this;\n    };\n    PathProxy.prototype.bezierCurveTo = function (x1, y1, x2, y2, x3, y3) {\n        this.addData(CMD.C, x1, y1, x2, y2, x3, y3);\n        if (this._ctx) {\n            this._needsDash ? this._dashedBezierTo(x1, y1, x2, y2, x3, y3)\n                : this._ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\n        }\n        this._xi = x3;\n        this._yi = y3;\n        return this;\n    };\n    PathProxy.prototype.quadraticCurveTo = function (x1, y1, x2, y2) {\n        this.addData(CMD.Q, x1, y1, x2, y2);\n        if (this._ctx) {\n            this._needsDash ? this._dashedQuadraticTo(x1, y1, x2, y2)\n                : this._ctx.quadraticCurveTo(x1, y1, x2, y2);\n        }\n        this._xi = x2;\n        this._yi = y2;\n        return this;\n    };\n    PathProxy.prototype.arc = function (cx, cy, r, startAngle, endAngle, anticlockwise) {\n        tmpAngles[0] = startAngle;\n        tmpAngles[1] = endAngle;\n        normalizeArcAngles(tmpAngles, anticlockwise);\n        startAngle = tmpAngles[0];\n        endAngle = tmpAngles[1];\n        var delta = endAngle - startAngle;\n        this.addData(CMD.A, cx, cy, r, r, startAngle, delta, 0, anticlockwise ? 0 : 1);\n        this._ctx && this._ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\n        this._xi = mathCos(endAngle) * r + cx;\n        this._yi = mathSin(endAngle) * r + cy;\n        return this;\n    };\n    PathProxy.prototype.arcTo = function (x1, y1, x2, y2, radius) {\n        if (this._ctx) {\n            this._ctx.arcTo(x1, y1, x2, y2, radius);\n        }\n        return this;\n    };\n    PathProxy.prototype.rect = function (x, y, w, h) {\n        this._ctx && this._ctx.rect(x, y, w, h);\n        this.addData(CMD.R, x, y, w, h);\n        return this;\n    };\n    PathProxy.prototype.closePath = function () {\n        this.addData(CMD.Z);\n        var ctx = this._ctx;\n        var x0 = this._x0;\n        var y0 = this._y0;\n        if (ctx) {\n            this._needsDash && this._dashedLineTo(x0, y0);\n            ctx.closePath();\n        }\n        this._xi = x0;\n        this._yi = y0;\n        return this;\n    };\n    PathProxy.prototype.fill = function (ctx) {\n        ctx && ctx.fill();\n        this.toStatic();\n    };\n    PathProxy.prototype.stroke = function (ctx) {\n        ctx && ctx.stroke();\n        this.toStatic();\n    };\n    PathProxy.prototype.setLineDash = function (lineDash) {\n        if (lineDash instanceof Array) {\n            this._lineDash = lineDash;\n            this._dashIdx = 0;\n            var lineDashSum = 0;\n            for (var i = 0; i < lineDash.length; i++) {\n                lineDashSum += lineDash[i];\n            }\n            this._dashSum = lineDashSum;\n            this._needsDash = true;\n        }\n        else {\n            this._lineDash = null;\n            this._needsDash = false;\n        }\n        return this;\n    };\n    PathProxy.prototype.setLineDashOffset = function (offset) {\n        this._dashOffset = offset;\n        return this;\n    };\n    PathProxy.prototype.len = function () {\n        return this._len;\n    };\n    PathProxy.prototype.setData = function (data) {\n        var len = data.length;\n        if (!(this.data && this.data.length === len) && hasTypedArray) {\n            this.data = new Float32Array(len);\n        }\n        for (var i = 0; i < len; i++) {\n            this.data[i] = data[i];\n        }\n        this._len = len;\n    };\n    PathProxy.prototype.appendPath = function (path) {\n        if (!(path instanceof Array)) {\n            path = [path];\n        }\n        var len = path.length;\n        var appendSize = 0;\n        var offset = this._len;\n        for (var i = 0; i < len; i++) {\n            appendSize += path[i].len();\n        }\n        if (hasTypedArray && (this.data instanceof Float32Array)) {\n            this.data = new Float32Array(offset + appendSize);\n        }\n        for (var i = 0; i < len; i++) {\n            var appendPathData = path[i].data;\n            for (var k = 0; k < appendPathData.length; k++) {\n                this.data[offset++] = appendPathData[k];\n            }\n        }\n        this._len = offset;\n    };\n    PathProxy.prototype.addData = function (cmd, a, b, c, d, e, f, g, h) {\n        if (!this._saveData) {\n            return;\n        }\n        var data = this.data;\n        if (this._len + arguments.length > data.length) {\n            this._expandData();\n            data = this.data;\n        }\n        for (var i = 0; i < arguments.length; i++) {\n            data[this._len++] = arguments[i];\n        }\n    };\n    PathProxy.prototype._expandData = function () {\n        if (!(this.data instanceof Array)) {\n            var newData = [];\n            for (var i = 0; i < this._len; i++) {\n                newData[i] = this.data[i];\n            }\n            this.data = newData;\n        }\n    };\n    PathProxy.prototype._dashedLineTo = function (x1, y1) {\n        var dashSum = this._dashSum;\n        var lineDash = this._lineDash;\n        var ctx = this._ctx;\n        var offset = this._dashOffset;\n        var x0 = this._xi;\n        var y0 = this._yi;\n        var dx = x1 - x0;\n        var dy = y1 - y0;\n        var dist = mathSqrt(dx * dx + dy * dy);\n        var x = x0;\n        var y = y0;\n        var nDash = lineDash.length;\n        var dash;\n        var idx;\n        dx /= dist;\n        dy /= dist;\n        if (offset < 0) {\n            offset = dashSum + offset;\n        }\n        offset %= dashSum;\n        x -= offset * dx;\n        y -= offset * dy;\n        while ((dx > 0 && x <= x1) || (dx < 0 && x >= x1)\n            || (dx === 0 && ((dy > 0 && y <= y1) || (dy < 0 && y >= y1)))) {\n            idx = this._dashIdx;\n            dash = lineDash[idx];\n            x += dx * dash;\n            y += dy * dash;\n            this._dashIdx = (idx + 1) % nDash;\n            if ((dx > 0 && x < x0) || (dx < 0 && x > x0) || (dy > 0 && y < y0) || (dy < 0 && y > y0)) {\n                continue;\n            }\n            ctx[idx % 2 ? 'moveTo' : 'lineTo'](dx >= 0 ? mathMin(x, x1) : mathMax(x, x1), dy >= 0 ? mathMin(y, y1) : mathMax(y, y1));\n        }\n        dx = x - x1;\n        dy = y - y1;\n        this._dashOffset = -mathSqrt(dx * dx + dy * dy);\n    };\n    PathProxy.prototype._dashedBezierTo = function (x1, y1, x2, y2, x3, y3) {\n        var ctx = this._ctx;\n        var dashSum = this._dashSum;\n        var offset = this._dashOffset;\n        var lineDash = this._lineDash;\n        var x0 = this._xi;\n        var y0 = this._yi;\n        var bezierLen = 0;\n        var idx = this._dashIdx;\n        var nDash = lineDash.length;\n        var t;\n        var dx;\n        var dy;\n        var x;\n        var y;\n        var tmpLen = 0;\n        if (offset < 0) {\n            offset = dashSum + offset;\n        }\n        offset %= dashSum;\n        for (t = 0; t < 1; t += 0.1) {\n            dx = cubicAt(x0, x1, x2, x3, t + 0.1)\n                - cubicAt(x0, x1, x2, x3, t);\n            dy = cubicAt(y0, y1, y2, y3, t + 0.1)\n                - cubicAt(y0, y1, y2, y3, t);\n            bezierLen += mathSqrt(dx * dx + dy * dy);\n        }\n        for (; idx < nDash; idx++) {\n            tmpLen += lineDash[idx];\n            if (tmpLen > offset) {\n                break;\n            }\n        }\n        t = (tmpLen - offset) / bezierLen;\n        while (t <= 1) {\n            x = cubicAt(x0, x1, x2, x3, t);\n            y = cubicAt(y0, y1, y2, y3, t);\n            idx % 2 ? ctx.moveTo(x, y)\n                : ctx.lineTo(x, y);\n            t += lineDash[idx] / bezierLen;\n            idx = (idx + 1) % nDash;\n        }\n        (idx % 2 !== 0) && ctx.lineTo(x3, y3);\n        dx = x3 - x;\n        dy = y3 - y;\n        this._dashOffset = -mathSqrt(dx * dx + dy * dy);\n    };\n    PathProxy.prototype._dashedQuadraticTo = function (x1, y1, x2, y2) {\n        var x3 = x2;\n        var y3 = y2;\n        x2 = (x2 + 2 * x1) / 3;\n        y2 = (y2 + 2 * y1) / 3;\n        x1 = (this._xi + 2 * x1) / 3;\n        y1 = (this._yi + 2 * y1) / 3;\n        this._dashedBezierTo(x1, y1, x2, y2, x3, y3);\n    };\n    PathProxy.prototype.toStatic = function () {\n        if (!this._saveData) {\n            return;\n        }\n        var data = this.data;\n        if (data instanceof Array) {\n            data.length = this._len;\n            if (hasTypedArray && this._len > 11) {\n                this.data = new Float32Array(data);\n            }\n        }\n    };\n    PathProxy.prototype.getBoundingRect = function () {\n        min[0] = min[1] = min2[0] = min2[1] = Number.MAX_VALUE;\n        max[0] = max[1] = max2[0] = max2[1] = -Number.MAX_VALUE;\n        var data = this.data;\n        var xi = 0;\n        var yi = 0;\n        var x0 = 0;\n        var y0 = 0;\n        var i;\n        for (i = 0; i < this._len;) {\n            var cmd = data[i++];\n            var isFirst = i === 1;\n            if (isFirst) {\n                xi = data[i];\n                yi = data[i + 1];\n                x0 = xi;\n                y0 = yi;\n            }\n            switch (cmd) {\n                case CMD.M:\n                    xi = x0 = data[i++];\n                    yi = y0 = data[i++];\n                    min2[0] = x0;\n                    min2[1] = y0;\n                    max2[0] = x0;\n                    max2[1] = y0;\n                    break;\n                case CMD.L:\n                    fromLine(xi, yi, data[i], data[i + 1], min2, max2);\n                    xi = data[i++];\n                    yi = data[i++];\n                    break;\n                case CMD.C:\n                    fromCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], min2, max2);\n                    xi = data[i++];\n                    yi = data[i++];\n                    break;\n                case CMD.Q:\n                    fromQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], min2, max2);\n                    xi = data[i++];\n                    yi = data[i++];\n                    break;\n                case CMD.A:\n                    var cx = data[i++];\n                    var cy = data[i++];\n                    var rx = data[i++];\n                    var ry = data[i++];\n                    var startAngle = data[i++];\n                    var endAngle = data[i++] + startAngle;\n                    i += 1;\n                    var anticlockwise = !data[i++];\n                    if (isFirst) {\n                        x0 = mathCos(startAngle) * rx + cx;\n                        y0 = mathSin(startAngle) * ry + cy;\n                    }\n                    fromArc(cx, cy, rx, ry, startAngle, endAngle, anticlockwise, min2, max2);\n                    xi = mathCos(endAngle) * rx + cx;\n                    yi = mathSin(endAngle) * ry + cy;\n                    break;\n                case CMD.R:\n                    x0 = xi = data[i++];\n                    y0 = yi = data[i++];\n                    var width = data[i++];\n                    var height = data[i++];\n                    fromLine(x0, y0, x0 + width, y0 + height, min2, max2);\n                    break;\n                case CMD.Z:\n                    xi = x0;\n                    yi = y0;\n                    break;\n            }\n            vec2.min(min, min, min2);\n            vec2.max(max, max, max2);\n        }\n        if (i === 0) {\n            min[0] = min[1] = max[0] = max[1] = 0;\n        }\n        return new BoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n    };\n    PathProxy.prototype._calculateLength = function () {\n        var data = this.data;\n        var len = this._len;\n        var ux = this._ux;\n        var uy = this._uy;\n        var xi = 0;\n        var yi = 0;\n        var x0 = 0;\n        var y0 = 0;\n        if (!this._pathSegLen) {\n            this._pathSegLen = [];\n        }\n        var pathSegLen = this._pathSegLen;\n        var pathTotalLen = 0;\n        var segCount = 0;\n        for (var i = 0; i < len;) {\n            var cmd = data[i++];\n            var isFirst = i === 1;\n            if (isFirst) {\n                xi = data[i];\n                yi = data[i + 1];\n                x0 = xi;\n                y0 = yi;\n            }\n            var l = -1;\n            switch (cmd) {\n                case CMD.M:\n                    xi = x0 = data[i++];\n                    yi = y0 = data[i++];\n                    break;\n                case CMD.L: {\n                    var x2 = data[i++];\n                    var y2 = data[i++];\n                    var dx = x2 - xi;\n                    var dy = y2 - yi;\n                    if (mathAbs(dx) > ux || mathAbs(dy) > uy || i === len - 1) {\n                        l = Math.sqrt(dx * dx + dy * dy);\n                        xi = x2;\n                        yi = y2;\n                    }\n                    break;\n                }\n                case CMD.C: {\n                    var x1 = data[i++];\n                    var y1 = data[i++];\n                    var x2 = data[i++];\n                    var y2 = data[i++];\n                    var x3 = data[i++];\n                    var y3 = data[i++];\n                    l = cubicLength(xi, yi, x1, y1, x2, y2, x3, y3, 10);\n                    xi = x3;\n                    yi = y3;\n                    break;\n                }\n                case CMD.Q: {\n                    var x1 = data[i++];\n                    var y1 = data[i++];\n                    var x2 = data[i++];\n                    var y2 = data[i++];\n                    l = quadraticLength(xi, yi, x1, y1, x2, y2, 10);\n                    xi = x2;\n                    yi = y2;\n                    break;\n                }\n                case CMD.A:\n                    var cx = data[i++];\n                    var cy = data[i++];\n                    var rx = data[i++];\n                    var ry = data[i++];\n                    var startAngle = data[i++];\n                    var delta = data[i++];\n                    var endAngle = delta + startAngle;\n                    i += 1;\n                    var anticlockwise = !data[i++];\n                    if (isFirst) {\n                        x0 = mathCos(startAngle) * rx + cx;\n                        y0 = mathSin(startAngle) * ry + cy;\n                    }\n                    l = mathMax(rx, ry) * mathMin(PI2, Math.abs(delta));\n                    xi = mathCos(endAngle) * rx + cx;\n                    yi = mathSin(endAngle) * ry + cy;\n                    break;\n                case CMD.R: {\n                    x0 = xi = data[i++];\n                    y0 = yi = data[i++];\n                    var width = data[i++];\n                    var height = data[i++];\n                    l = width * 2 + height * 2;\n                    break;\n                }\n                case CMD.Z: {\n                    var dx = x0 - xi;\n                    var dy = y0 - yi;\n                    l = Math.sqrt(dx * dx + dy * dy);\n                    xi = x0;\n                    yi = y0;\n                    break;\n                }\n            }\n            if (l >= 0) {\n                pathSegLen[segCount++] = l;\n                pathTotalLen += l;\n            }\n        }\n        this._pathLen = pathTotalLen;\n        return pathTotalLen;\n    };\n    PathProxy.prototype.rebuildPath = function (ctx, percent) {\n        var d = this.data;\n        var ux = this._ux;\n        var uy = this._uy;\n        var len = this._len;\n        var x0;\n        var y0;\n        var xi;\n        var yi;\n        var x;\n        var y;\n        var drawPart = percent < 1;\n        var pathSegLen;\n        var pathTotalLen;\n        var accumLength = 0;\n        var segCount = 0;\n        var displayedLength;\n        if (drawPart) {\n            if (!this._pathSegLen) {\n                this._calculateLength();\n            }\n            pathSegLen = this._pathSegLen;\n            pathTotalLen = this._pathLen;\n            displayedLength = percent * pathTotalLen;\n            if (!displayedLength) {\n                return;\n            }\n        }\n        lo: for (var i = 0; i < len;) {\n            var cmd = d[i++];\n            var isFirst = i === 1;\n            if (isFirst) {\n                xi = d[i];\n                yi = d[i + 1];\n                x0 = xi;\n                y0 = yi;\n            }\n            switch (cmd) {\n                case CMD.M:\n                    x0 = xi = d[i++];\n                    y0 = yi = d[i++];\n                    ctx.moveTo(xi, yi);\n                    break;\n                case CMD.L: {\n                    x = d[i++];\n                    y = d[i++];\n                    if (mathAbs(x - xi) > ux || mathAbs(y - yi) > uy || i === len - 1) {\n                        if (drawPart) {\n                            var l = pathSegLen[segCount++];\n                            if (accumLength + l > displayedLength) {\n                                var t = (displayedLength - accumLength) / l;\n                                ctx.lineTo(xi * (1 - t) + x * t, yi * (1 - t) + y * t);\n                                break lo;\n                            }\n                            accumLength += l;\n                        }\n                        ctx.lineTo(x, y);\n                        xi = x;\n                        yi = y;\n                    }\n                    break;\n                }\n                case CMD.C: {\n                    var x1 = d[i++];\n                    var y1 = d[i++];\n                    var x2 = d[i++];\n                    var y2 = d[i++];\n                    var x3 = d[i++];\n                    var y3 = d[i++];\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            var t = (displayedLength - accumLength) / l;\n                            cubicSubdivide(xi, x1, x2, x3, t, tmpOutX);\n                            cubicSubdivide(yi, y1, y2, y3, t, tmpOutY);\n                            ctx.bezierCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2], tmpOutX[3], tmpOutY[3]);\n                            break lo;\n                        }\n                        accumLength += l;\n                    }\n                    ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\n                    xi = x3;\n                    yi = y3;\n                    break;\n                }\n                case CMD.Q: {\n                    var x1 = d[i++];\n                    var y1 = d[i++];\n                    var x2 = d[i++];\n                    var y2 = d[i++];\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            var t = (displayedLength - accumLength) / l;\n                            quadraticSubdivide(xi, x1, x2, t, tmpOutX);\n                            quadraticSubdivide(yi, y1, y2, t, tmpOutY);\n                            ctx.quadraticCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2]);\n                            break lo;\n                        }\n                        accumLength += l;\n                    }\n                    ctx.quadraticCurveTo(x1, y1, x2, y2);\n                    xi = x2;\n                    yi = y2;\n                    break;\n                }\n                case CMD.A:\n                    var cx = d[i++];\n                    var cy = d[i++];\n                    var rx = d[i++];\n                    var ry = d[i++];\n                    var startAngle = d[i++];\n                    var delta = d[i++];\n                    var psi = d[i++];\n                    var anticlockwise = !d[i++];\n                    var r = (rx > ry) ? rx : ry;\n                    var scaleX = (rx > ry) ? 1 : rx / ry;\n                    var scaleY = (rx > ry) ? ry / rx : 1;\n                    var isEllipse = mathAbs(rx - ry) > 1e-3;\n                    var endAngle = startAngle + delta;\n                    var breakBuild = false;\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            endAngle = startAngle + delta * (displayedLength - accumLength) / l;\n                            breakBuild = true;\n                        }\n                        accumLength += l;\n                    }\n                    if (isEllipse && ctx.ellipse) {\n                        ctx.ellipse(cx, cy, rx, ry, psi, startAngle, endAngle, anticlockwise);\n                    }\n                    else {\n                        ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\n                    }\n                    if (breakBuild) {\n                        break lo;\n                    }\n                    if (isFirst) {\n                        x0 = mathCos(startAngle) * rx + cx;\n                        y0 = mathSin(startAngle) * ry + cy;\n                    }\n                    xi = mathCos(endAngle) * rx + cx;\n                    yi = mathSin(endAngle) * ry + cy;\n                    break;\n                case CMD.R:\n                    x0 = xi = d[i];\n                    y0 = yi = d[i + 1];\n                    x = d[i++];\n                    y = d[i++];\n                    var width = d[i++];\n                    var height = d[i++];\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            var d_1 = displayedLength - accumLength;\n                            ctx.moveTo(x, y);\n                            ctx.lineTo(x + mathMin(d_1, width), y);\n                            d_1 -= width;\n                            if (d_1 > 0) {\n                                ctx.lineTo(x + width, y + mathMin(d_1, height));\n                            }\n                            d_1 -= height;\n                            if (d_1 > 0) {\n                                ctx.lineTo(x + mathMax(width - d_1, 0), y + height);\n                            }\n                            d_1 -= width;\n                            if (d_1 > 0) {\n                                ctx.lineTo(x, y + mathMax(height - d_1, 0));\n                            }\n                            break lo;\n                        }\n                        accumLength += l;\n                    }\n                    ctx.rect(x, y, width, height);\n                    break;\n                case CMD.Z:\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            var t = (displayedLength - accumLength) / l;\n                            ctx.lineTo(xi * (1 - t) + x0 * t, yi * (1 - t) + y0 * t);\n                            break lo;\n                        }\n                        accumLength += l;\n                    }\n                    ctx.closePath();\n                    xi = x0;\n                    yi = y0;\n            }\n        }\n    };\n    PathProxy.CMD = CMD;\n    PathProxy.initDefaultProps = (function () {\n        var proto = PathProxy.prototype;\n        proto._saveData = true;\n        proto._needsDash = false;\n        proto._dashOffset = 0;\n        proto._dashIdx = 0;\n        proto._dashSum = 0;\n        proto._ux = 0;\n        proto._uy = 0;\n    })();\n    return PathProxy;\n}());\nexport default PathProxy;\n","export function containStroke(x0, y0, x1, y1, lineWidth, x, y) {\n    if (lineWidth === 0) {\n        return false;\n    }\n    var _l = lineWidth;\n    var _a = 0;\n    var _b = x0;\n    if ((y > y0 + _l && y > y1 + _l)\n        || (y < y0 - _l && y < y1 - _l)\n        || (x > x0 + _l && x > x1 + _l)\n        || (x < x0 - _l && x < x1 - _l)) {\n        return false;\n    }\n    if (x0 !== x1) {\n        _a = (y0 - y1) / (x0 - x1);\n        _b = (x0 * y1 - x1 * y0) / (x0 - x1);\n    }\n    else {\n        return Math.abs(x - x0) <= _l / 2;\n    }\n    var tmp = _a * x - y + _b;\n    var _s = tmp * tmp / (_a * _a + 1);\n    return _s <= _l / 2 * _l / 2;\n}\n","import * as curve from '../core/curve';\nexport function containStroke(x0, y0, x1, y1, x2, y2, x3, y3, lineWidth, x, y) {\n    if (lineWidth === 0) {\n        return false;\n    }\n    var _l = lineWidth;\n    if ((y > y0 + _l && y > y1 + _l && y > y2 + _l && y > y3 + _l)\n        || (y < y0 - _l && y < y1 - _l && y < y2 - _l && y < y3 - _l)\n        || (x > x0 + _l && x > x1 + _l && x > x2 + _l && x > x3 + _l)\n        || (x < x0 - _l && x < x1 - _l && x < x2 - _l && x < x3 - _l)) {\n        return false;\n    }\n    var d = curve.cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, null);\n    return d <= _l / 2;\n}\n","import { quadraticProjectPoint } from '../core/curve';\nexport function containStroke(x0, y0, x1, y1, x2, y2, lineWidth, x, y) {\n    if (lineWidth === 0) {\n        return false;\n    }\n    var _l = lineWidth;\n    if ((y > y0 + _l && y > y1 + _l && y > y2 + _l)\n        || (y < y0 - _l && y < y1 - _l && y < y2 - _l)\n        || (x > x0 + _l && x > x1 + _l && x > x2 + _l)\n        || (x < x0 - _l && x < x1 - _l && x < x2 - _l)) {\n        return false;\n    }\n    var d = quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, null);\n    return d <= _l / 2;\n}\n","var PI2 = Math.PI * 2;\nexport function normalizeRadian(angle) {\n    angle %= PI2;\n    if (angle < 0) {\n        angle += PI2;\n    }\n    return angle;\n}\n","import { normalizeRadian } from './util';\nvar PI2 = Math.PI * 2;\nexport function containStroke(cx, cy, r, startAngle, endAngle, anticlockwise, lineWidth, x, y) {\n    if (lineWidth === 0) {\n        return false;\n    }\n    var _l = lineWidth;\n    x -= cx;\n    y -= cy;\n    var d = Math.sqrt(x * x + y * y);\n    if ((d - _l > r) || (d + _l < r)) {\n        return false;\n    }\n    if (Math.abs(startAngle - endAngle) % PI2 < 1e-4) {\n        return true;\n    }\n    if (anticlockwise) {\n        var tmp = startAngle;\n        startAngle = normalizeRadian(endAngle);\n        endAngle = normalizeRadian(tmp);\n    }\n    else {\n        startAngle = normalizeRadian(startAngle);\n        endAngle = normalizeRadian(endAngle);\n    }\n    if (startAngle > endAngle) {\n        endAngle += PI2;\n    }\n    var angle = Math.atan2(y, x);\n    if (angle < 0) {\n        angle += PI2;\n    }\n    return (angle >= startAngle && angle <= endAngle)\n        || (angle + PI2 >= startAngle && angle + PI2 <= endAngle);\n}\n","export default function windingLine(x0, y0, x1, y1, x, y) {\n    if ((y > y0 && y > y1) || (y < y0 && y < y1)) {\n        return 0;\n    }\n    if (y1 === y0) {\n        return 0;\n    }\n    var t = (y - y0) / (y1 - y0);\n    var dir = y1 < y0 ? 1 : -1;\n    if (t === 1 || t === 0) {\n        dir = y1 < y0 ? 0.5 : -0.5;\n    }\n    var x_ = t * (x1 - x0) + x0;\n    return x_ === x ? Infinity : x_ > x ? dir : 0;\n}\n","import PathProxy from '../core/PathProxy';\nimport * as line from './line';\nimport * as cubic from './cubic';\nimport * as quadratic from './quadratic';\nimport * as arc from './arc';\nimport * as curve from '../core/curve';\nimport windingLine from './windingLine';\nvar CMD = PathProxy.CMD;\nvar PI2 = Math.PI * 2;\nvar EPSILON = 1e-4;\nfunction isAroundEqual(a, b) {\n    return Math.abs(a - b) < EPSILON;\n}\nvar roots = [-1, -1, -1];\nvar extrema = [-1, -1];\nfunction swapExtrema() {\n    var tmp = extrema[0];\n    extrema[0] = extrema[1];\n    extrema[1] = tmp;\n}\nfunction windingCubic(x0, y0, x1, y1, x2, y2, x3, y3, x, y) {\n    if ((y > y0 && y > y1 && y > y2 && y > y3)\n        || (y < y0 && y < y1 && y < y2 && y < y3)) {\n        return 0;\n    }\n    var nRoots = curve.cubicRootAt(y0, y1, y2, y3, y, roots);\n    if (nRoots === 0) {\n        return 0;\n    }\n    else {\n        var w = 0;\n        var nExtrema = -1;\n        var y0_ = void 0;\n        var y1_ = void 0;\n        for (var i = 0; i < nRoots; i++) {\n            var t = roots[i];\n            var unit = (t === 0 || t === 1) ? 0.5 : 1;\n            var x_ = curve.cubicAt(x0, x1, x2, x3, t);\n            if (x_ < x) {\n                continue;\n            }\n            if (nExtrema < 0) {\n                nExtrema = curve.cubicExtrema(y0, y1, y2, y3, extrema);\n                if (extrema[1] < extrema[0] && nExtrema > 1) {\n                    swapExtrema();\n                }\n                y0_ = curve.cubicAt(y0, y1, y2, y3, extrema[0]);\n                if (nExtrema > 1) {\n                    y1_ = curve.cubicAt(y0, y1, y2, y3, extrema[1]);\n                }\n            }\n            if (nExtrema === 2) {\n                if (t < extrema[0]) {\n                    w += y0_ < y0 ? unit : -unit;\n                }\n                else if (t < extrema[1]) {\n                    w += y1_ < y0_ ? unit : -unit;\n                }\n                else {\n                    w += y3 < y1_ ? unit : -unit;\n                }\n            }\n            else {\n                if (t < extrema[0]) {\n                    w += y0_ < y0 ? unit : -unit;\n                }\n                else {\n                    w += y3 < y0_ ? unit : -unit;\n                }\n            }\n        }\n        return w;\n    }\n}\nfunction windingQuadratic(x0, y0, x1, y1, x2, y2, x, y) {\n    if ((y > y0 && y > y1 && y > y2)\n        || (y < y0 && y < y1 && y < y2)) {\n        return 0;\n    }\n    var nRoots = curve.quadraticRootAt(y0, y1, y2, y, roots);\n    if (nRoots === 0) {\n        return 0;\n    }\n    else {\n        var t = curve.quadraticExtremum(y0, y1, y2);\n        if (t >= 0 && t <= 1) {\n            var w = 0;\n            var y_ = curve.quadraticAt(y0, y1, y2, t);\n            for (var i = 0; i < nRoots; i++) {\n                var unit = (roots[i] === 0 || roots[i] === 1) ? 0.5 : 1;\n                var x_ = curve.quadraticAt(x0, x1, x2, roots[i]);\n                if (x_ < x) {\n                    continue;\n                }\n                if (roots[i] < t) {\n                    w += y_ < y0 ? unit : -unit;\n                }\n                else {\n                    w += y2 < y_ ? unit : -unit;\n                }\n            }\n            return w;\n        }\n        else {\n            var unit = (roots[0] === 0 || roots[0] === 1) ? 0.5 : 1;\n            var x_ = curve.quadraticAt(x0, x1, x2, roots[0]);\n            if (x_ < x) {\n                return 0;\n            }\n            return y2 < y0 ? unit : -unit;\n        }\n    }\n}\nfunction windingArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y) {\n    y -= cy;\n    if (y > r || y < -r) {\n        return 0;\n    }\n    var tmp = Math.sqrt(r * r - y * y);\n    roots[0] = -tmp;\n    roots[1] = tmp;\n    var dTheta = Math.abs(startAngle - endAngle);\n    if (dTheta < 1e-4) {\n        return 0;\n    }\n    if (dTheta >= PI2 - 1e-4) {\n        startAngle = 0;\n        endAngle = PI2;\n        var dir = anticlockwise ? 1 : -1;\n        if (x >= roots[0] + cx && x <= roots[1] + cx) {\n            return dir;\n        }\n        else {\n            return 0;\n        }\n    }\n    if (startAngle > endAngle) {\n        var tmp_1 = startAngle;\n        startAngle = endAngle;\n        endAngle = tmp_1;\n    }\n    if (startAngle < 0) {\n        startAngle += PI2;\n        endAngle += PI2;\n    }\n    var w = 0;\n    for (var i = 0; i < 2; i++) {\n        var x_ = roots[i];\n        if (x_ + cx > x) {\n            var angle = Math.atan2(y, x_);\n            var dir = anticlockwise ? 1 : -1;\n            if (angle < 0) {\n                angle = PI2 + angle;\n            }\n            if ((angle >= startAngle && angle <= endAngle)\n                || (angle + PI2 >= startAngle && angle + PI2 <= endAngle)) {\n                if (angle > Math.PI / 2 && angle < Math.PI * 1.5) {\n                    dir = -dir;\n                }\n                w += dir;\n            }\n        }\n    }\n    return w;\n}\nfunction containPath(path, lineWidth, isStroke, x, y) {\n    var data = path.data;\n    var len = path.len();\n    var w = 0;\n    var xi = 0;\n    var yi = 0;\n    var x0 = 0;\n    var y0 = 0;\n    var x1;\n    var y1;\n    for (var i = 0; i < len;) {\n        var cmd = data[i++];\n        var isFirst = i === 1;\n        if (cmd === CMD.M && i > 1) {\n            if (!isStroke) {\n                w += windingLine(xi, yi, x0, y0, x, y);\n            }\n        }\n        if (isFirst) {\n            xi = data[i];\n            yi = data[i + 1];\n            x0 = xi;\n            y0 = yi;\n        }\n        switch (cmd) {\n            case CMD.M:\n                x0 = data[i++];\n                y0 = data[i++];\n                xi = x0;\n                yi = y0;\n                break;\n            case CMD.L:\n                if (isStroke) {\n                    if (line.containStroke(xi, yi, data[i], data[i + 1], lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingLine(xi, yi, data[i], data[i + 1], x, y) || 0;\n                }\n                xi = data[i++];\n                yi = data[i++];\n                break;\n            case CMD.C:\n                if (isStroke) {\n                    if (cubic.containStroke(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\n                }\n                xi = data[i++];\n                yi = data[i++];\n                break;\n            case CMD.Q:\n                if (isStroke) {\n                    if (quadratic.containStroke(xi, yi, data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\n                }\n                xi = data[i++];\n                yi = data[i++];\n                break;\n            case CMD.A:\n                var cx = data[i++];\n                var cy = data[i++];\n                var rx = data[i++];\n                var ry = data[i++];\n                var theta = data[i++];\n                var dTheta = data[i++];\n                i += 1;\n                var anticlockwise = !!(1 - data[i++]);\n                x1 = Math.cos(theta) * rx + cx;\n                y1 = Math.sin(theta) * ry + cy;\n                if (!isFirst) {\n                    w += windingLine(xi, yi, x1, y1, x, y);\n                }\n                else {\n                    x0 = x1;\n                    y0 = y1;\n                }\n                var _x = (x - cx) * ry / rx + cx;\n                if (isStroke) {\n                    if (arc.containStroke(cx, cy, ry, theta, theta + dTheta, anticlockwise, lineWidth, _x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y);\n                }\n                xi = Math.cos(theta + dTheta) * rx + cx;\n                yi = Math.sin(theta + dTheta) * ry + cy;\n                break;\n            case CMD.R:\n                x0 = xi = data[i++];\n                y0 = yi = data[i++];\n                var width = data[i++];\n                var height = data[i++];\n                x1 = x0 + width;\n                y1 = y0 + height;\n                if (isStroke) {\n                    if (line.containStroke(x0, y0, x1, y0, lineWidth, x, y)\n                        || line.containStroke(x1, y0, x1, y1, lineWidth, x, y)\n                        || line.containStroke(x1, y1, x0, y1, lineWidth, x, y)\n                        || line.containStroke(x0, y1, x0, y0, lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingLine(x1, y0, x1, y1, x, y);\n                    w += windingLine(x0, y1, x0, y0, x, y);\n                }\n                break;\n            case CMD.Z:\n                if (isStroke) {\n                    if (line.containStroke(xi, yi, x0, y0, lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingLine(xi, yi, x0, y0, x, y);\n                }\n                xi = x0;\n                yi = y0;\n                break;\n        }\n    }\n    if (!isStroke && !isAroundEqual(yi, y0)) {\n        w += windingLine(xi, yi, x0, y0, x, y) || 0;\n    }\n    return w !== 0;\n}\nexport function contain(pathProxy, x, y) {\n    return containPath(pathProxy, 0, false, x, y);\n}\nexport function containStroke(pathProxy, lineWidth, x, y) {\n    return containPath(pathProxy, lineWidth, true, x, y);\n}\n","import { __extends } from \"tslib\";\nimport Displayable, { DEFAULT_COMMON_STYLE, DEFAULT_COMMON_ANIMATION_PROPS } from './Displayable';\nimport Element from '../Element';\nimport PathProxy from '../core/PathProxy';\nimport * as pathContain from '../contain/path';\nimport { defaults, keys, extend, clone, isString, createObject } from '../core/util';\nimport { lum } from '../tool/color';\nimport { DARK_LABEL_COLOR, LIGHT_LABEL_COLOR, DARK_MODE_THRESHOLD, LIGHTER_LABEL_COLOR } from '../config';\nexport var DEFAULT_PATH_STYLE = defaults({\n    fill: '#000',\n    stroke: null,\n    strokePercent: 1,\n    fillOpacity: 1,\n    strokeOpacity: 1,\n    lineDashOffset: 0,\n    lineWidth: 1,\n    lineCap: 'butt',\n    miterLimit: 10,\n    strokeNoScale: false,\n    strokeFirst: false\n}, DEFAULT_COMMON_STYLE);\nexport var DEFAULT_PATH_ANIMATION_PROPS = {\n    style: defaults({\n        fill: true,\n        stroke: true,\n        strokePercent: true,\n        fillOpacity: true,\n        strokeOpacity: true,\n        lineDashOffset: true,\n        lineWidth: true,\n        miterLimit: true\n    }, DEFAULT_COMMON_ANIMATION_PROPS.style)\n};\nvar pathCopyParams = [\n    'x', 'y', 'rotation', 'scaleX', 'scaleY', 'originX', 'originY', 'invisible',\n    'culling', 'z', 'z2', 'zlevel', 'parent'\n];\nvar Path = (function (_super) {\n    __extends(Path, _super);\n    function Path(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Path.prototype.update = function () {\n        var _this = this;\n        _super.prototype.update.call(this);\n        var style = this.style;\n        if (style.decal) {\n            var decalEl = this._decalEl\n                = this._decalEl || new Path();\n            if (decalEl.buildPath === Path.prototype.buildPath) {\n                decalEl.buildPath = function (ctx) {\n                    _this.buildPath(ctx, _this.shape);\n                };\n            }\n            decalEl.silent = true;\n            var decalElStyle = decalEl.style;\n            for (var key in style) {\n                if (decalElStyle[key] !== style[key]) {\n                    decalElStyle[key] = style[key];\n                }\n            }\n            decalElStyle.fill = style.fill ? style.decal : null;\n            decalElStyle.decal = null;\n            decalElStyle.shadowColor = null;\n            style.strokeFirst && (decalElStyle.stroke = null);\n            for (var i = 0; i < pathCopyParams.length; ++i) {\n                decalEl[pathCopyParams[i]] = this[pathCopyParams[i]];\n            }\n            decalEl.__dirty |= Element.REDARAW_BIT;\n        }\n        else if (this._decalEl) {\n            this._decalEl = null;\n        }\n    };\n    Path.prototype.getDecalElement = function () {\n        return this._decalEl;\n    };\n    Path.prototype._init = function (props) {\n        var keysArr = keys(props);\n        this.shape = this.getDefaultShape();\n        var defaultStyle = this.getDefaultStyle();\n        if (defaultStyle) {\n            this.useStyle(defaultStyle);\n        }\n        for (var i = 0; i < keysArr.length; i++) {\n            var key = keysArr[i];\n            var value = props[key];\n            if (key === 'style') {\n                if (!this.style) {\n                    this.useStyle(value);\n                }\n                else {\n                    extend(this.style, value);\n                }\n            }\n            else if (key === 'shape') {\n                extend(this.shape, value);\n            }\n            else {\n                _super.prototype.attrKV.call(this, key, value);\n            }\n        }\n        if (!this.style) {\n            this.useStyle({});\n        }\n    };\n    Path.prototype.getDefaultStyle = function () {\n        return null;\n    };\n    Path.prototype.getDefaultShape = function () {\n        return {};\n    };\n    Path.prototype.canBeInsideText = function () {\n        return this.hasFill();\n    };\n    Path.prototype.getInsideTextFill = function () {\n        var pathFill = this.style.fill;\n        if (pathFill !== 'none') {\n            if (isString(pathFill)) {\n                var fillLum = lum(pathFill, 0);\n                if (fillLum > 0.5) {\n                    return DARK_LABEL_COLOR;\n                }\n                else if (fillLum > 0.2) {\n                    return LIGHTER_LABEL_COLOR;\n                }\n                return LIGHT_LABEL_COLOR;\n            }\n            else if (pathFill) {\n                return LIGHT_LABEL_COLOR;\n            }\n        }\n        return DARK_LABEL_COLOR;\n    };\n    Path.prototype.getInsideTextStroke = function (textFill) {\n        var pathFill = this.style.fill;\n        if (isString(pathFill)) {\n            var zr = this.__zr;\n            var isDarkMode = !!(zr && zr.isDarkMode());\n            var isDarkLabel = lum(textFill, 0) < DARK_MODE_THRESHOLD;\n            if (isDarkMode === isDarkLabel) {\n                return pathFill;\n            }\n        }\n    };\n    Path.prototype.buildPath = function (ctx, shapeCfg, inBundle) { };\n    Path.prototype.pathUpdated = function () {\n        this.__dirty &= ~Path.SHAPE_CHANGED_BIT;\n    };\n    Path.prototype.createPathProxy = function () {\n        this.path = new PathProxy(false);\n    };\n    Path.prototype.hasStroke = function () {\n        var style = this.style;\n        var stroke = style.stroke;\n        return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\n    };\n    Path.prototype.hasFill = function () {\n        var style = this.style;\n        var fill = style.fill;\n        return fill != null && fill !== 'none';\n    };\n    Path.prototype.getBoundingRect = function () {\n        var rect = this._rect;\n        var style = this.style;\n        var needsUpdateRect = !rect;\n        if (needsUpdateRect) {\n            var firstInvoke = false;\n            if (!this.path) {\n                firstInvoke = true;\n                this.createPathProxy();\n            }\n            var path = this.path;\n            if (firstInvoke || (this.__dirty & Path.SHAPE_CHANGED_BIT)) {\n                path.beginPath();\n                this.buildPath(path, this.shape, false);\n                this.pathUpdated();\n            }\n            rect = path.getBoundingRect();\n        }\n        this._rect = rect;\n        if (this.hasStroke() && this.path && this.path.len() > 0) {\n            var rectWithStroke = this._rectWithStroke || (this._rectWithStroke = rect.clone());\n            if (this.__dirty || needsUpdateRect) {\n                rectWithStroke.copy(rect);\n                var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\n                var w = style.lineWidth;\n                if (!this.hasFill()) {\n                    var strokeContainThreshold = this.strokeContainThreshold;\n                    w = Math.max(w, strokeContainThreshold == null ? 4 : strokeContainThreshold);\n                }\n                if (lineScale > 1e-10) {\n                    rectWithStroke.width += w / lineScale;\n                    rectWithStroke.height += w / lineScale;\n                    rectWithStroke.x -= w / lineScale / 2;\n                    rectWithStroke.y -= w / lineScale / 2;\n                }\n            }\n            return rectWithStroke;\n        }\n        return rect;\n    };\n    Path.prototype.contain = function (x, y) {\n        var localPos = this.transformCoordToLocal(x, y);\n        var rect = this.getBoundingRect();\n        var style = this.style;\n        x = localPos[0];\n        y = localPos[1];\n        if (rect.contain(x, y)) {\n            var pathProxy = this.path;\n            if (this.hasStroke()) {\n                var lineWidth = style.lineWidth;\n                var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\n                if (lineScale > 1e-10) {\n                    if (!this.hasFill()) {\n                        lineWidth = Math.max(lineWidth, this.strokeContainThreshold);\n                    }\n                    if (pathContain.containStroke(pathProxy, lineWidth / lineScale, x, y)) {\n                        return true;\n                    }\n                }\n            }\n            if (this.hasFill()) {\n                return pathContain.contain(pathProxy, x, y);\n            }\n        }\n        return false;\n    };\n    Path.prototype.dirtyShape = function () {\n        this.__dirty |= Path.SHAPE_CHANGED_BIT;\n        if (this._rect) {\n            this._rect = null;\n        }\n        if (this._decalEl) {\n            this._decalEl.dirtyShape();\n        }\n        this.markRedraw();\n    };\n    Path.prototype.dirty = function () {\n        this.dirtyStyle();\n        this.dirtyShape();\n    };\n    Path.prototype.animateShape = function (loop) {\n        return this.animate('shape', loop);\n    };\n    Path.prototype.updateDuringAnimation = function (targetKey) {\n        if (targetKey === 'style') {\n            this.dirtyStyle();\n        }\n        else if (targetKey === 'shape') {\n            this.dirtyShape();\n        }\n        else {\n            this.markRedraw();\n        }\n    };\n    Path.prototype.attrKV = function (key, value) {\n        if (key === 'shape') {\n            this.setShape(value);\n        }\n        else {\n            _super.prototype.attrKV.call(this, key, value);\n        }\n    };\n    Path.prototype.setShape = function (keyOrObj, value) {\n        var shape = this.shape;\n        if (!shape) {\n            shape = this.shape = {};\n        }\n        if (typeof keyOrObj === 'string') {\n            shape[keyOrObj] = value;\n        }\n        else {\n            extend(shape, keyOrObj);\n        }\n        this.dirtyShape();\n        return this;\n    };\n    Path.prototype.shapeChanged = function () {\n        return !!(this.__dirty & Path.SHAPE_CHANGED_BIT);\n    };\n    Path.prototype.createStyle = function (obj) {\n        return createObject(DEFAULT_PATH_STYLE, obj);\n    };\n    Path.prototype._innerSaveToNormal = function (toState) {\n        _super.prototype._innerSaveToNormal.call(this, toState);\n        var normalState = this._normalState;\n        if (toState.shape && !normalState.shape) {\n            normalState.shape = extend({}, this.shape);\n        }\n    };\n    Path.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\n        _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\n        var needsRestoreToNormal = !(state && keepCurrentStates);\n        var targetShape;\n        if (state && state.shape) {\n            if (transition) {\n                if (keepCurrentStates) {\n                    targetShape = state.shape;\n                }\n                else {\n                    targetShape = extend({}, normalState.shape);\n                    extend(targetShape, state.shape);\n                }\n            }\n            else {\n                targetShape = extend({}, keepCurrentStates ? this.shape : normalState.shape);\n                extend(targetShape, state.shape);\n            }\n        }\n        else if (needsRestoreToNormal) {\n            targetShape = normalState.shape;\n        }\n        if (targetShape) {\n            if (transition) {\n                this.shape = extend({}, this.shape);\n                var targetShapePrimaryProps = {};\n                var shapeKeys = keys(targetShape);\n                for (var i = 0; i < shapeKeys.length; i++) {\n                    var key = shapeKeys[i];\n                    if (typeof targetShape[key] === 'object') {\n                        this.shape[key] = targetShape[key];\n                    }\n                    else {\n                        targetShapePrimaryProps[key] = targetShape[key];\n                    }\n                }\n                this._transitionState(stateName, {\n                    shape: targetShapePrimaryProps\n                }, animationCfg);\n            }\n            else {\n                this.shape = targetShape;\n                this.dirtyShape();\n            }\n        }\n    };\n    Path.prototype._mergeStates = function (states) {\n        var mergedState = _super.prototype._mergeStates.call(this, states);\n        var mergedShape;\n        for (var i = 0; i < states.length; i++) {\n            var state = states[i];\n            if (state.shape) {\n                mergedShape = mergedShape || {};\n                this._mergeStyle(mergedShape, state.shape);\n            }\n        }\n        if (mergedShape) {\n            mergedState.shape = mergedShape;\n        }\n        return mergedState;\n    };\n    Path.prototype.getAnimationStyleProps = function () {\n        return DEFAULT_PATH_ANIMATION_PROPS;\n    };\n    Path.prototype.isZeroArea = function () {\n        return false;\n    };\n    Path.extend = function (defaultProps) {\n        var Sub = (function (_super) {\n            __extends(Sub, _super);\n            function Sub(opts) {\n                var _this = _super.call(this, opts) || this;\n                defaultProps.init && defaultProps.init.call(_this, opts);\n                return _this;\n            }\n            Sub.prototype.getDefaultStyle = function () {\n                return clone(defaultProps.style);\n            };\n            Sub.prototype.getDefaultShape = function () {\n                return clone(defaultProps.shape);\n            };\n            return Sub;\n        }(Path));\n        for (var key in defaultProps) {\n            if (typeof defaultProps[key] === 'function') {\n                Sub.prototype[key] = defaultProps[key];\n            }\n        }\n        return Sub;\n    };\n    Path.SHAPE_CHANGED_BIT = 4;\n    Path.initDefaultProps = (function () {\n        var pathProto = Path.prototype;\n        pathProto.type = 'path';\n        pathProto.strokeContainThreshold = 5;\n        pathProto.segmentIgnoreThreshold = 0;\n        pathProto.subPixelOptimize = false;\n        pathProto.autoBatch = false;\n        pathProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT | Path.SHAPE_CHANGED_BIT;\n    })();\n    return Path;\n}(Displayable));\nexport default Path;\n","import { __extends } from \"tslib\";\nimport Displayable from './Displayable';\nimport { getBoundingRect, DEFAULT_FONT } from '../contain/text';\nimport { DEFAULT_PATH_STYLE } from './Path';\nimport { createObject, defaults } from '../core/util';\nexport var DEFAULT_TSPAN_STYLE = defaults({\n    strokeFirst: true,\n    font: DEFAULT_FONT,\n    x: 0,\n    y: 0,\n    textAlign: 'left',\n    textBaseline: 'top',\n    miterLimit: 2\n}, DEFAULT_PATH_STYLE);\nvar TSpan = (function (_super) {\n    __extends(TSpan, _super);\n    function TSpan() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    TSpan.prototype.hasStroke = function () {\n        var style = this.style;\n        var stroke = style.stroke;\n        return stroke != null && stroke !== 'none' && style.lineWidth > 0;\n    };\n    TSpan.prototype.hasFill = function () {\n        var style = this.style;\n        var fill = style.fill;\n        return fill != null && fill !== 'none';\n    };\n    TSpan.prototype.createStyle = function (obj) {\n        return createObject(DEFAULT_TSPAN_STYLE, obj);\n    };\n    TSpan.prototype.setBoundingRect = function (rect) {\n        this._rect = rect;\n    };\n    TSpan.prototype.getBoundingRect = function () {\n        var style = this.style;\n        if (!this._rect) {\n            var text = style.text;\n            text != null ? (text += '') : (text = '');\n            var rect = getBoundingRect(text, style.font, style.textAlign, style.textBaseline);\n            rect.x += style.x || 0;\n            rect.y += style.y || 0;\n            if (this.hasStroke()) {\n                var w = style.lineWidth;\n                rect.x -= w / 2;\n                rect.y -= w / 2;\n                rect.width += w;\n                rect.height += w;\n            }\n            this._rect = rect;\n        }\n        return this._rect;\n    };\n    TSpan.initDefaultProps = (function () {\n        var tspanProto = TSpan.prototype;\n        tspanProto.dirtyRectTolerance = 10;\n    })();\n    return TSpan;\n}(Displayable));\nTSpan.prototype.type = 'tspan';\nexport default TSpan;\n","import { __extends } from \"tslib\";\nimport Displayable, { DEFAULT_COMMON_STYLE, DEFAULT_COMMON_ANIMATION_PROPS } from './Displayable';\nimport BoundingRect from '../core/BoundingRect';\nimport { defaults, createObject } from '../core/util';\nexport var DEFAULT_IMAGE_STYLE = defaults({\n    x: 0,\n    y: 0\n}, DEFAULT_COMMON_STYLE);\nexport var DEFAULT_IMAGE_ANIMATION_PROPS = {\n    style: defaults({\n        x: true,\n        y: true,\n        width: true,\n        height: true,\n        sx: true,\n        sy: true,\n        sWidth: true,\n        sHeight: true\n    }, DEFAULT_COMMON_ANIMATION_PROPS.style)\n};\nfunction isImageLike(source) {\n    return !!(source\n        && typeof source !== 'string'\n        && source.width && source.height);\n}\nvar ZRImage = (function (_super) {\n    __extends(ZRImage, _super);\n    function ZRImage() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    ZRImage.prototype.createStyle = function (obj) {\n        return createObject(DEFAULT_IMAGE_STYLE, obj);\n    };\n    ZRImage.prototype._getSize = function (dim) {\n        var style = this.style;\n        var size = style[dim];\n        if (size != null) {\n            return size;\n        }\n        var imageSource = isImageLike(style.image)\n            ? style.image : this.__image;\n        if (!imageSource) {\n            return 0;\n        }\n        var otherDim = dim === 'width' ? 'height' : 'width';\n        var otherDimSize = style[otherDim];\n        if (otherDimSize == null) {\n            return imageSource[dim];\n        }\n        else {\n            return imageSource[dim] / imageSource[otherDim] * otherDimSize;\n        }\n    };\n    ZRImage.prototype.getWidth = function () {\n        return this._getSize('width');\n    };\n    ZRImage.prototype.getHeight = function () {\n        return this._getSize('height');\n    };\n    ZRImage.prototype.getAnimationStyleProps = function () {\n        return DEFAULT_IMAGE_ANIMATION_PROPS;\n    };\n    ZRImage.prototype.getBoundingRect = function () {\n        var style = this.style;\n        if (!this._rect) {\n            this._rect = new BoundingRect(style.x || 0, style.y || 0, this.getWidth(), this.getHeight());\n        }\n        return this._rect;\n    };\n    return ZRImage;\n}(Displayable));\nZRImage.prototype.type = 'image';\nexport default ZRImage;\n","export function buildPath(ctx, shape) {\n    var x = shape.x;\n    var y = shape.y;\n    var width = shape.width;\n    var height = shape.height;\n    var r = shape.r;\n    var r1;\n    var r2;\n    var r3;\n    var r4;\n    if (width < 0) {\n        x = x + width;\n        width = -width;\n    }\n    if (height < 0) {\n        y = y + height;\n        height = -height;\n    }\n    if (typeof r === 'number') {\n        r1 = r2 = r3 = r4 = r;\n    }\n    else if (r instanceof Array) {\n        if (r.length === 1) {\n            r1 = r2 = r3 = r4 = r[0];\n        }\n        else if (r.length === 2) {\n            r1 = r3 = r[0];\n            r2 = r4 = r[1];\n        }\n        else if (r.length === 3) {\n            r1 = r[0];\n            r2 = r4 = r[1];\n            r3 = r[2];\n        }\n        else {\n            r1 = r[0];\n            r2 = r[1];\n            r3 = r[2];\n            r4 = r[3];\n        }\n    }\n    else {\n        r1 = r2 = r3 = r4 = 0;\n    }\n    var total;\n    if (r1 + r2 > width) {\n        total = r1 + r2;\n        r1 *= width / total;\n        r2 *= width / total;\n    }\n    if (r3 + r4 > width) {\n        total = r3 + r4;\n        r3 *= width / total;\n        r4 *= width / total;\n    }\n    if (r2 + r3 > height) {\n        total = r2 + r3;\n        r2 *= height / total;\n        r3 *= height / total;\n    }\n    if (r1 + r4 > height) {\n        total = r1 + r4;\n        r1 *= height / total;\n        r4 *= height / total;\n    }\n    ctx.moveTo(x + r1, y);\n    ctx.lineTo(x + width - r2, y);\n    r2 !== 0 && ctx.arc(x + width - r2, y + r2, r2, -Math.PI / 2, 0);\n    ctx.lineTo(x + width, y + height - r3);\n    r3 !== 0 && ctx.arc(x + width - r3, y + height - r3, r3, 0, Math.PI / 2);\n    ctx.lineTo(x + r4, y + height);\n    r4 !== 0 && ctx.arc(x + r4, y + height - r4, r4, Math.PI / 2, Math.PI);\n    ctx.lineTo(x, y + r1);\n    r1 !== 0 && ctx.arc(x + r1, y + r1, r1, Math.PI, Math.PI * 1.5);\n}\n","var round = Math.round;\nexport function subPixelOptimizeLine(outputShape, inputShape, style) {\n    if (!inputShape) {\n        return;\n    }\n    var x1 = inputShape.x1;\n    var x2 = inputShape.x2;\n    var y1 = inputShape.y1;\n    var y2 = inputShape.y2;\n    outputShape.x1 = x1;\n    outputShape.x2 = x2;\n    outputShape.y1 = y1;\n    outputShape.y2 = y2;\n    var lineWidth = style && style.lineWidth;\n    if (!lineWidth) {\n        return outputShape;\n    }\n    if (round(x1 * 2) === round(x2 * 2)) {\n        outputShape.x1 = outputShape.x2 = subPixelOptimize(x1, lineWidth, true);\n    }\n    if (round(y1 * 2) === round(y2 * 2)) {\n        outputShape.y1 = outputShape.y2 = subPixelOptimize(y1, lineWidth, true);\n    }\n    return outputShape;\n}\nexport function subPixelOptimizeRect(outputShape, inputShape, style) {\n    if (!inputShape) {\n        return;\n    }\n    var originX = inputShape.x;\n    var originY = inputShape.y;\n    var originWidth = inputShape.width;\n    var originHeight = inputShape.height;\n    outputShape.x = originX;\n    outputShape.y = originY;\n    outputShape.width = originWidth;\n    outputShape.height = originHeight;\n    var lineWidth = style && style.lineWidth;\n    if (!lineWidth) {\n        return outputShape;\n    }\n    outputShape.x = subPixelOptimize(originX, lineWidth, true);\n    outputShape.y = subPixelOptimize(originY, lineWidth, true);\n    outputShape.width = Math.max(subPixelOptimize(originX + originWidth, lineWidth, false) - outputShape.x, originWidth === 0 ? 0 : 1);\n    outputShape.height = Math.max(subPixelOptimize(originY + originHeight, lineWidth, false) - outputShape.y, originHeight === 0 ? 0 : 1);\n    return outputShape;\n}\nexport function subPixelOptimize(position, lineWidth, positiveOrNegative) {\n    if (!lineWidth) {\n        return position;\n    }\n    var doubledPosition = round(position * 2);\n    return (doubledPosition + round(lineWidth)) % 2 === 0\n        ? doubledPosition / 2\n        : (doubledPosition + (positiveOrNegative ? 1 : -1)) / 2;\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as roundRectHelper from '../helper/roundRect';\nimport { subPixelOptimizeRect } from '../helper/subPixelOptimize';\nvar RectShape = (function () {\n    function RectShape() {\n        this.x = 0;\n        this.y = 0;\n        this.width = 0;\n        this.height = 0;\n    }\n    return RectShape;\n}());\nvar subPixelOptimizeOutputShape = {};\nvar Rect = (function (_super) {\n    __extends(Rect, _super);\n    function Rect(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Rect.prototype.getDefaultShape = function () {\n        return new RectShape();\n    };\n    Rect.prototype.buildPath = function (ctx, shape) {\n        var x;\n        var y;\n        var width;\n        var height;\n        if (this.subPixelOptimize) {\n            var optimizedShape = subPixelOptimizeRect(subPixelOptimizeOutputShape, shape, this.style);\n            x = optimizedShape.x;\n            y = optimizedShape.y;\n            width = optimizedShape.width;\n            height = optimizedShape.height;\n            optimizedShape.r = shape.r;\n            shape = optimizedShape;\n        }\n        else {\n            x = shape.x;\n            y = shape.y;\n            width = shape.width;\n            height = shape.height;\n        }\n        if (!shape.r) {\n            ctx.rect(x, y, width, height);\n        }\n        else {\n            roundRectHelper.buildPath(ctx, shape);\n        }\n    };\n    Rect.prototype.isZeroArea = function () {\n        return !this.shape.width || !this.shape.height;\n    };\n    return Rect;\n}(Path));\nRect.prototype.type = 'rect';\nexport default Rect;\n","import { __extends } from \"tslib\";\nimport { parseRichText, parsePlainText } from './helper/parseText';\nimport TSpan from './TSpan';\nimport { retrieve2, isString, each, normalizeCssArray, trim, retrieve3, extend, keys, defaults } from '../core/util';\nimport { DEFAULT_FONT, adjustTextX, adjustTextY } from '../contain/text';\nimport ZRImage from './Image';\nimport Rect from './shape/Rect';\nimport BoundingRect from '../core/BoundingRect';\nimport { copy } from '../core/matrix';\nimport Displayable, { DEFAULT_COMMON_ANIMATION_PROPS } from './Displayable';\nvar DEFAULT_RICH_TEXT_COLOR = {\n    fill: '#000'\n};\nvar DEFAULT_STROKE_LINE_WIDTH = 2;\nexport var DEFAULT_TEXT_ANIMATION_PROPS = {\n    style: defaults({\n        fill: true,\n        stroke: true,\n        fillOpacity: true,\n        strokeOpacity: true,\n        lineWidth: true,\n        fontSize: true,\n        lineHeight: true,\n        width: true,\n        height: true,\n        textShadowColor: true,\n        textShadowBlur: true,\n        textShadowOffsetX: true,\n        textShadowOffsetY: true,\n        backgroundColor: true,\n        padding: true,\n        borderColor: true,\n        borderWidth: true,\n        borderRadius: true\n    }, DEFAULT_COMMON_ANIMATION_PROPS.style)\n};\nvar ZRText = (function (_super) {\n    __extends(ZRText, _super);\n    function ZRText(opts) {\n        var _this = _super.call(this) || this;\n        _this.type = 'text';\n        _this._children = [];\n        _this._defaultStyle = DEFAULT_RICH_TEXT_COLOR;\n        _this.attr(opts);\n        return _this;\n    }\n    ZRText.prototype.childrenRef = function () {\n        return this._children;\n    };\n    ZRText.prototype.update = function () {\n        if (this.styleChanged()) {\n            this._updateSubTexts();\n        }\n        for (var i = 0; i < this._children.length; i++) {\n            var child = this._children[i];\n            child.zlevel = this.zlevel;\n            child.z = this.z;\n            child.z2 = this.z2;\n            child.culling = this.culling;\n            child.cursor = this.cursor;\n            child.invisible = this.invisible;\n        }\n        var attachedTransform = this.attachedTransform;\n        if (attachedTransform) {\n            attachedTransform.updateTransform();\n            var m = attachedTransform.transform;\n            if (m) {\n                this.transform = this.transform || [];\n                copy(this.transform, m);\n            }\n            else {\n                this.transform = null;\n            }\n        }\n        else {\n            _super.prototype.update.call(this);\n        }\n    };\n    ZRText.prototype.getComputedTransform = function () {\n        if (this.__hostTarget) {\n            this.__hostTarget.getComputedTransform();\n            this.__hostTarget.updateInnerText(true);\n        }\n        return this.attachedTransform ? this.attachedTransform.getComputedTransform()\n            : _super.prototype.getComputedTransform.call(this);\n    };\n    ZRText.prototype._updateSubTexts = function () {\n        this._childCursor = 0;\n        normalizeTextStyle(this.style);\n        this.style.rich\n            ? this._updateRichTexts()\n            : this._updatePlainTexts();\n        this._children.length = this._childCursor;\n        this.styleUpdated();\n    };\n    ZRText.prototype.addSelfToZr = function (zr) {\n        _super.prototype.addSelfToZr.call(this, zr);\n        for (var i = 0; i < this._children.length; i++) {\n            this._children[i].__zr = zr;\n        }\n    };\n    ZRText.prototype.removeSelfFromZr = function (zr) {\n        _super.prototype.removeSelfFromZr.call(this, zr);\n        for (var i = 0; i < this._children.length; i++) {\n            this._children[i].__zr = null;\n        }\n    };\n    ZRText.prototype.getBoundingRect = function () {\n        if (this.styleChanged()) {\n            this._updateSubTexts();\n        }\n        if (!this._rect) {\n            var tmpRect = new BoundingRect(0, 0, 0, 0);\n            var children = this._children;\n            var tmpMat = [];\n            var rect = null;\n            for (var i = 0; i < children.length; i++) {\n                var child = children[i];\n                var childRect = child.getBoundingRect();\n                var transform = child.getLocalTransform(tmpMat);\n                if (transform) {\n                    tmpRect.copy(childRect);\n                    tmpRect.applyTransform(transform);\n                    rect = rect || tmpRect.clone();\n                    rect.union(tmpRect);\n                }\n                else {\n                    rect = rect || childRect.clone();\n                    rect.union(childRect);\n                }\n            }\n            this._rect = rect || tmpRect;\n        }\n        return this._rect;\n    };\n    ZRText.prototype.setDefaultTextStyle = function (defaultTextStyle) {\n        this._defaultStyle = defaultTextStyle || DEFAULT_RICH_TEXT_COLOR;\n    };\n    ZRText.prototype.setTextContent = function (textContent) {\n        throw new Error('Can\\'t attach text on another text');\n    };\n    ZRText.prototype._mergeStyle = function (targetStyle, sourceStyle) {\n        if (!sourceStyle) {\n            return targetStyle;\n        }\n        var sourceRich = sourceStyle.rich;\n        var targetRich = targetStyle.rich || (sourceRich && {});\n        extend(targetStyle, sourceStyle);\n        if (sourceRich && targetRich) {\n            this._mergeRich(targetRich, sourceRich);\n            targetStyle.rich = targetRich;\n        }\n        else if (targetRich) {\n            targetStyle.rich = targetRich;\n        }\n        return targetStyle;\n    };\n    ZRText.prototype._mergeRich = function (targetRich, sourceRich) {\n        var richNames = keys(sourceRich);\n        for (var i = 0; i < richNames.length; i++) {\n            var richName = richNames[i];\n            targetRich[richName] = targetRich[richName] || {};\n            extend(targetRich[richName], sourceRich[richName]);\n        }\n    };\n    ZRText.prototype.getAnimationStyleProps = function () {\n        return DEFAULT_TEXT_ANIMATION_PROPS;\n    };\n    ZRText.prototype._getOrCreateChild = function (Ctor) {\n        var child = this._children[this._childCursor];\n        if (!child || !(child instanceof Ctor)) {\n            child = new Ctor();\n        }\n        this._children[this._childCursor++] = child;\n        child.__zr = this.__zr;\n        child.parent = this;\n        return child;\n    };\n    ZRText.prototype._updatePlainTexts = function () {\n        var style = this.style;\n        var textFont = style.font || DEFAULT_FONT;\n        var textPadding = style.padding;\n        var text = getStyleText(style);\n        var contentBlock = parsePlainText(text, style);\n        var needDrawBg = needDrawBackground(style);\n        var bgColorDrawn = !!(style.backgroundColor);\n        var outerHeight = contentBlock.outerHeight;\n        var textLines = contentBlock.lines;\n        var lineHeight = contentBlock.lineHeight;\n        var defaultStyle = this._defaultStyle;\n        var baseX = style.x || 0;\n        var baseY = style.y || 0;\n        var textAlign = style.align || defaultStyle.align || 'left';\n        var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign || 'top';\n        var textX = baseX;\n        var textY = adjustTextY(baseY, contentBlock.contentHeight, verticalAlign);\n        if (needDrawBg || textPadding) {\n            var outerWidth_1 = contentBlock.width;\n            textPadding && (outerWidth_1 += textPadding[1] + textPadding[3]);\n            var boxX = adjustTextX(baseX, outerWidth_1, textAlign);\n            var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\n            needDrawBg && this._renderBackground(style, style, boxX, boxY, outerWidth_1, outerHeight);\n        }\n        textY += lineHeight / 2;\n        if (textPadding) {\n            textX = getTextXForPadding(baseX, textAlign, textPadding);\n            if (verticalAlign === 'top') {\n                textY += textPadding[0];\n            }\n            else if (verticalAlign === 'bottom') {\n                textY -= textPadding[2];\n            }\n        }\n        var defaultLineWidth = 0;\n        var useDefaultFill = false;\n        var textFill = getFill('fill' in style\n            ? style.fill\n            : (useDefaultFill = true, defaultStyle.fill));\n        var textStroke = getStroke('stroke' in style\n            ? style.stroke\n            : (!bgColorDrawn\n                && (!defaultStyle.autoStroke || useDefaultFill))\n                ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\n                : null);\n        var hasShadow = style.textShadowBlur > 0;\n        var fixedBoundingRect = style.width != null\n            && (style.overflow === 'truncate' || style.overflow === 'break' || style.overflow === 'breakAll');\n        var calculatedLineHeight = contentBlock.calculatedLineHeight;\n        for (var i = 0; i < textLines.length; i++) {\n            var el = this._getOrCreateChild(TSpan);\n            var subElStyle = el.createStyle();\n            el.useStyle(subElStyle);\n            subElStyle.text = textLines[i];\n            subElStyle.x = textX;\n            subElStyle.y = textY;\n            if (textAlign) {\n                subElStyle.textAlign = textAlign;\n            }\n            subElStyle.textBaseline = 'middle';\n            subElStyle.opacity = style.opacity;\n            subElStyle.strokeFirst = true;\n            if (hasShadow) {\n                subElStyle.shadowBlur = style.textShadowBlur || 0;\n                subElStyle.shadowColor = style.textShadowColor || 'transparent';\n                subElStyle.shadowOffsetX = style.textShadowOffsetX || 0;\n                subElStyle.shadowOffsetY = style.textShadowOffsetY || 0;\n            }\n            if (textStroke) {\n                subElStyle.stroke = textStroke;\n                subElStyle.lineWidth = style.lineWidth || defaultLineWidth;\n                subElStyle.lineDash = style.lineDash;\n                subElStyle.lineDashOffset = style.lineDashOffset || 0;\n            }\n            if (textFill) {\n                subElStyle.fill = textFill;\n            }\n            subElStyle.font = textFont;\n            textY += lineHeight;\n            if (fixedBoundingRect) {\n                el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, style.width, subElStyle.textAlign), adjustTextY(subElStyle.y, calculatedLineHeight, subElStyle.textBaseline), style.width, calculatedLineHeight));\n            }\n        }\n    };\n    ZRText.prototype._updateRichTexts = function () {\n        var style = this.style;\n        var text = getStyleText(style);\n        var contentBlock = parseRichText(text, style);\n        var contentWidth = contentBlock.width;\n        var outerWidth = contentBlock.outerWidth;\n        var outerHeight = contentBlock.outerHeight;\n        var textPadding = style.padding;\n        var baseX = style.x || 0;\n        var baseY = style.y || 0;\n        var defaultStyle = this._defaultStyle;\n        var textAlign = style.align || defaultStyle.align;\n        var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign;\n        var boxX = adjustTextX(baseX, outerWidth, textAlign);\n        var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\n        var xLeft = boxX;\n        var lineTop = boxY;\n        if (textPadding) {\n            xLeft += textPadding[3];\n            lineTop += textPadding[0];\n        }\n        var xRight = xLeft + contentWidth;\n        if (needDrawBackground(style)) {\n            this._renderBackground(style, style, boxX, boxY, outerWidth, outerHeight);\n        }\n        var bgColorDrawn = !!(style.backgroundColor);\n        for (var i = 0; i < contentBlock.lines.length; i++) {\n            var line = contentBlock.lines[i];\n            var tokens = line.tokens;\n            var tokenCount = tokens.length;\n            var lineHeight = line.lineHeight;\n            var remainedWidth = line.width;\n            var leftIndex = 0;\n            var lineXLeft = xLeft;\n            var lineXRight = xRight;\n            var rightIndex = tokenCount - 1;\n            var token = void 0;\n            while (leftIndex < tokenCount\n                && (token = tokens[leftIndex], !token.align || token.align === 'left')) {\n                this._placeToken(token, style, lineHeight, lineTop, lineXLeft, 'left', bgColorDrawn);\n                remainedWidth -= token.width;\n                lineXLeft += token.width;\n                leftIndex++;\n            }\n            while (rightIndex >= 0\n                && (token = tokens[rightIndex], token.align === 'right')) {\n                this._placeToken(token, style, lineHeight, lineTop, lineXRight, 'right', bgColorDrawn);\n                remainedWidth -= token.width;\n                lineXRight -= token.width;\n                rightIndex--;\n            }\n            lineXLeft += (contentWidth - (lineXLeft - xLeft) - (xRight - lineXRight) - remainedWidth) / 2;\n            while (leftIndex <= rightIndex) {\n                token = tokens[leftIndex];\n                this._placeToken(token, style, lineHeight, lineTop, lineXLeft + token.width / 2, 'center', bgColorDrawn);\n                lineXLeft += token.width;\n                leftIndex++;\n            }\n            lineTop += lineHeight;\n        }\n    };\n    ZRText.prototype._placeToken = function (token, style, lineHeight, lineTop, x, textAlign, parentBgColorDrawn) {\n        var tokenStyle = style.rich[token.styleName] || {};\n        tokenStyle.text = token.text;\n        var verticalAlign = token.verticalAlign;\n        var y = lineTop + lineHeight / 2;\n        if (verticalAlign === 'top') {\n            y = lineTop + token.height / 2;\n        }\n        else if (verticalAlign === 'bottom') {\n            y = lineTop + lineHeight - token.height / 2;\n        }\n        var needDrawBg = !token.isLineHolder && needDrawBackground(tokenStyle);\n        needDrawBg && this._renderBackground(tokenStyle, style, textAlign === 'right'\n            ? x - token.width\n            : textAlign === 'center'\n                ? x - token.width / 2\n                : x, y - token.height / 2, token.width, token.height);\n        var bgColorDrawn = !!tokenStyle.backgroundColor;\n        var textPadding = token.textPadding;\n        if (textPadding) {\n            x = getTextXForPadding(x, textAlign, textPadding);\n            y -= token.height / 2 - textPadding[0] - token.innerHeight / 2;\n        }\n        var el = this._getOrCreateChild(TSpan);\n        var subElStyle = el.createStyle();\n        el.useStyle(subElStyle);\n        var defaultStyle = this._defaultStyle;\n        var useDefaultFill = false;\n        var defaultLineWidth = 0;\n        var textFill = getStroke('fill' in tokenStyle ? tokenStyle.fill\n            : 'fill' in style ? style.fill\n                : (useDefaultFill = true, defaultStyle.fill));\n        var textStroke = getStroke('stroke' in tokenStyle ? tokenStyle.stroke\n            : 'stroke' in style ? style.stroke\n                : (!bgColorDrawn\n                    && !parentBgColorDrawn\n                    && (!defaultStyle.autoStroke || useDefaultFill)) ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\n                    : null);\n        var hasShadow = tokenStyle.textShadowBlur > 0\n            || style.textShadowBlur > 0;\n        subElStyle.text = token.text;\n        subElStyle.x = x;\n        subElStyle.y = y;\n        if (hasShadow) {\n            subElStyle.shadowBlur = tokenStyle.textShadowBlur || style.textShadowBlur || 0;\n            subElStyle.shadowColor = tokenStyle.textShadowColor || style.textShadowColor || 'transparent';\n            subElStyle.shadowOffsetX = tokenStyle.textShadowOffsetX || style.textShadowOffsetX || 0;\n            subElStyle.shadowOffsetY = tokenStyle.textShadowOffsetY || style.textShadowOffsetY || 0;\n        }\n        subElStyle.textAlign = textAlign;\n        subElStyle.textBaseline = 'middle';\n        subElStyle.font = token.font || DEFAULT_FONT;\n        subElStyle.opacity = retrieve3(tokenStyle.opacity, style.opacity, 1);\n        if (textStroke) {\n            subElStyle.lineWidth = retrieve3(tokenStyle.lineWidth, style.lineWidth, defaultLineWidth);\n            subElStyle.lineDash = retrieve2(tokenStyle.lineDash, style.lineDash);\n            subElStyle.lineDashOffset = style.lineDashOffset || 0;\n            subElStyle.stroke = textStroke;\n        }\n        if (textFill) {\n            subElStyle.fill = textFill;\n        }\n        var textWidth = token.contentWidth;\n        var textHeight = token.contentHeight;\n        el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, textWidth, subElStyle.textAlign), adjustTextY(subElStyle.y, textHeight, subElStyle.textBaseline), textWidth, textHeight));\n    };\n    ZRText.prototype._renderBackground = function (style, topStyle, x, y, width, height) {\n        var textBackgroundColor = style.backgroundColor;\n        var textBorderWidth = style.borderWidth;\n        var textBorderColor = style.borderColor;\n        var isPlainBg = isString(textBackgroundColor);\n        var textBorderRadius = style.borderRadius;\n        var self = this;\n        var rectEl;\n        var imgEl;\n        if (isPlainBg || (textBorderWidth && textBorderColor)) {\n            rectEl = this._getOrCreateChild(Rect);\n            rectEl.useStyle(rectEl.createStyle());\n            rectEl.style.fill = null;\n            var rectShape = rectEl.shape;\n            rectShape.x = x;\n            rectShape.y = y;\n            rectShape.width = width;\n            rectShape.height = height;\n            rectShape.r = textBorderRadius;\n            rectEl.dirtyShape();\n        }\n        if (isPlainBg) {\n            var rectStyle = rectEl.style;\n            rectStyle.fill = textBackgroundColor || null;\n            rectStyle.fillOpacity = retrieve2(style.fillOpacity, 1);\n        }\n        else if (textBackgroundColor && textBackgroundColor.image) {\n            imgEl = this._getOrCreateChild(ZRImage);\n            imgEl.onload = function () {\n                self.dirtyStyle();\n            };\n            var imgStyle = imgEl.style;\n            imgStyle.image = textBackgroundColor.image;\n            imgStyle.x = x;\n            imgStyle.y = y;\n            imgStyle.width = width;\n            imgStyle.height = height;\n        }\n        if (textBorderWidth && textBorderColor) {\n            var rectStyle = rectEl.style;\n            rectStyle.lineWidth = textBorderWidth;\n            rectStyle.stroke = textBorderColor;\n            rectStyle.strokeOpacity = retrieve2(style.strokeOpacity, 1);\n            rectStyle.lineDash = style.borderDash;\n            rectStyle.lineDashOffset = style.borderDashOffset || 0;\n            rectEl.strokeContainThreshold = 0;\n            if (rectEl.hasFill() && rectEl.hasStroke()) {\n                rectStyle.strokeFirst = true;\n                rectStyle.lineWidth *= 2;\n            }\n        }\n        var commonStyle = (rectEl || imgEl).style;\n        commonStyle.shadowBlur = style.shadowBlur || 0;\n        commonStyle.shadowColor = style.shadowColor || 'transparent';\n        commonStyle.shadowOffsetX = style.shadowOffsetX || 0;\n        commonStyle.shadowOffsetY = style.shadowOffsetY || 0;\n        commonStyle.opacity = retrieve3(style.opacity, topStyle.opacity, 1);\n    };\n    ZRText.makeFont = function (style) {\n        var font = '';\n        if (style.fontSize || style.fontFamily || style.fontWeight) {\n            var fontSize = '';\n            if (typeof style.fontSize === 'string'\n                && (style.fontSize.indexOf('px') !== -1\n                    || style.fontSize.indexOf('rem') !== -1\n                    || style.fontSize.indexOf('em') !== -1)) {\n                fontSize = style.fontSize;\n            }\n            else if (!isNaN(+style.fontSize)) {\n                fontSize = style.fontSize + 'px';\n            }\n            else {\n                fontSize = '12px';\n            }\n            font = [\n                style.fontStyle,\n                style.fontWeight,\n                fontSize,\n                style.fontFamily || 'sans-serif'\n            ].join(' ');\n        }\n        return font && trim(font) || style.textFont || style.font;\n    };\n    return ZRText;\n}(Displayable));\nvar VALID_TEXT_ALIGN = { left: true, right: 1, center: 1 };\nvar VALID_TEXT_VERTICAL_ALIGN = { top: 1, bottom: 1, middle: 1 };\nexport function normalizeTextStyle(style) {\n    normalizeStyle(style);\n    each(style.rich, normalizeStyle);\n    return style;\n}\nfunction normalizeStyle(style) {\n    if (style) {\n        style.font = ZRText.makeFont(style);\n        var textAlign = style.align;\n        textAlign === 'middle' && (textAlign = 'center');\n        style.align = (textAlign == null || VALID_TEXT_ALIGN[textAlign]) ? textAlign : 'left';\n        var verticalAlign = style.verticalAlign;\n        verticalAlign === 'center' && (verticalAlign = 'middle');\n        style.verticalAlign = (verticalAlign == null || VALID_TEXT_VERTICAL_ALIGN[verticalAlign]) ? verticalAlign : 'top';\n        var textPadding = style.padding;\n        if (textPadding) {\n            style.padding = normalizeCssArray(style.padding);\n        }\n    }\n}\nfunction getStroke(stroke, lineWidth) {\n    return (stroke == null || lineWidth <= 0 || stroke === 'transparent' || stroke === 'none')\n        ? null\n        : (stroke.image || stroke.colorStops)\n            ? '#000'\n            : stroke;\n}\nfunction getFill(fill) {\n    return (fill == null || fill === 'none')\n        ? null\n        : (fill.image || fill.colorStops)\n            ? '#000'\n            : fill;\n}\nfunction getTextXForPadding(x, textAlign, textPadding) {\n    return textAlign === 'right'\n        ? (x - textPadding[1])\n        : textAlign === 'center'\n            ? (x + textPadding[3] / 2 - textPadding[1] / 2)\n            : (x + textPadding[3]);\n}\nfunction getStyleText(style) {\n    var text = style.text;\n    text != null && (text += '');\n    return text;\n}\nfunction needDrawBackground(style) {\n    return !!(style.backgroundColor\n        || (style.borderWidth && style.borderColor));\n}\nexport default ZRText;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner } from './model';\nexport var getECData = makeInner();","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport LRU from 'zrender/lib/core/LRU';\nimport { extend, indexOf, isArrayLike, isObject, keys, isArray, each } from 'zrender/lib/core/util';\nimport { getECData } from './innerStore';\nimport * as colorTool from 'zrender/lib/tool/color';\nimport { queryDataIndex, makeInner } from './model';\nimport Path from 'zrender/lib/graphic/Path';\nvar _highlightNextDigit = 1;\nvar _highlightKeyMap = {};\nvar getSavedStates = makeInner();\nexport var HOVER_STATE_NORMAL = 0;\nexport var HOVER_STATE_BLUR = 1;\nexport var HOVER_STATE_EMPHASIS = 2;\nexport var SPECIAL_STATES = ['emphasis', 'blur', 'select'];\nexport var DISPLAY_STATES = ['normal', 'emphasis', 'blur', 'select'];\nexport var Z2_EMPHASIS_LIFT = 10;\nexport var Z2_SELECT_LIFT = 9;\nexport var HIGHLIGHT_ACTION_TYPE = 'highlight';\nexport var DOWNPLAY_ACTION_TYPE = 'downplay';\nexport var SELECT_ACTION_TYPE = 'select';\nexport var UNSELECT_ACTION_TYPE = 'unselect';\nexport var TOGGLE_SELECT_ACTION_TYPE = 'toggleSelect';\n\nfunction hasFillOrStroke(fillOrStroke) {\n  return fillOrStroke != null && fillOrStroke !== 'none';\n}\n\nvar liftedColorCache = new LRU(100);\n\nfunction liftColor(color) {\n  if (typeof color !== 'string') {\n    return color;\n  }\n\n  var liftedColor = liftedColorCache.get(color);\n\n  if (!liftedColor) {\n    liftedColor = colorTool.lift(color, -0.1);\n    liftedColorCache.put(color, liftedColor);\n  }\n\n  return liftedColor;\n}\n\nfunction doChangeHoverState(el, stateName, hoverStateEnum) {\n  if (el.onHoverStateChange && (el.hoverState || 0) !== hoverStateEnum) {\n    el.onHoverStateChange(stateName);\n  }\n\n  el.hoverState = hoverStateEnum;\n}\n\nfunction singleEnterEmphasis(el) {\n  doChangeHoverState(el, 'emphasis', HOVER_STATE_EMPHASIS);\n}\n\nfunction singleLeaveEmphasis(el) {\n  if (el.hoverState === HOVER_STATE_EMPHASIS) {\n    doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\n  }\n}\n\nfunction singleEnterBlur(el) {\n  doChangeHoverState(el, 'blur', HOVER_STATE_BLUR);\n}\n\nfunction singleLeaveBlur(el) {\n  if (el.hoverState === HOVER_STATE_BLUR) {\n    doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\n  }\n}\n\nfunction singleEnterSelect(el) {\n  el.selected = true;\n}\n\nfunction singleLeaveSelect(el) {\n  el.selected = false;\n}\n\nfunction updateElementState(el, updater, commonParam) {\n  updater(el, commonParam);\n}\n\nfunction traverseUpdateState(el, updater, commonParam) {\n  updateElementState(el, updater, commonParam);\n  el.isGroup && el.traverse(function (child) {\n    updateElementState(child, updater, commonParam);\n  });\n}\n\nexport function setStatesFlag(el, stateName) {\n  switch (stateName) {\n    case 'emphasis':\n      el.hoverState = HOVER_STATE_EMPHASIS;\n      break;\n\n    case 'normal':\n      el.hoverState = HOVER_STATE_NORMAL;\n      break;\n\n    case 'blur':\n      el.hoverState = HOVER_STATE_BLUR;\n      break;\n\n    case 'select':\n      el.selected = true;\n  }\n}\nexport function clearStates(el) {\n  if (el.isGroup) {\n    el.traverse(function (child) {\n      child.clearStates();\n    });\n  } else {\n    el.clearStates();\n  }\n}\n\nfunction getFromStateStyle(el, props, toStateName, defaultValue) {\n  var style = el.style;\n  var fromState = {};\n\n  for (var i = 0; i < props.length; i++) {\n    var propName = props[i];\n    var val = style[propName];\n    fromState[propName] = val == null ? defaultValue && defaultValue[propName] : val;\n  }\n\n  for (var i = 0; i < el.animators.length; i++) {\n    var animator = el.animators[i];\n\n    if (animator.__fromStateTransition && animator.__fromStateTransition.indexOf(toStateName) < 0 && animator.targetName === 'style') {\n      animator.saveFinalToTarget(fromState, props);\n    }\n  }\n\n  return fromState;\n}\n\nfunction createEmphasisDefaultState(el, stateName, targetStates, state) {\n  var hasSelect = targetStates && indexOf(targetStates, 'select') >= 0;\n  var cloned = false;\n\n  if (el instanceof Path) {\n    var store = getSavedStates(el);\n    var fromFill = hasSelect ? store.selectFill || store.normalFill : store.normalFill;\n    var fromStroke = hasSelect ? store.selectStroke || store.normalStroke : store.normalStroke;\n\n    if (hasFillOrStroke(fromFill) || hasFillOrStroke(fromStroke)) {\n      state = state || {};\n      var emphasisStyle = state.style || {};\n\n      if (!hasFillOrStroke(emphasisStyle.fill) && hasFillOrStroke(fromFill)) {\n        cloned = true;\n        state = extend({}, state);\n        emphasisStyle = extend({}, emphasisStyle);\n        emphasisStyle.fill = liftColor(fromFill);\n      } else if (!hasFillOrStroke(emphasisStyle.stroke) && hasFillOrStroke(fromStroke)) {\n        if (!cloned) {\n          state = extend({}, state);\n          emphasisStyle = extend({}, emphasisStyle);\n        }\n\n        emphasisStyle.stroke = liftColor(fromStroke);\n      }\n\n      state.style = emphasisStyle;\n    }\n  }\n\n  if (state) {\n    if (state.z2 == null) {\n      if (!cloned) {\n        state = extend({}, state);\n      }\n\n      var z2EmphasisLift = el.z2EmphasisLift;\n      state.z2 = el.z2 + (z2EmphasisLift != null ? z2EmphasisLift : Z2_EMPHASIS_LIFT);\n    }\n  }\n\n  return state;\n}\n\nfunction createSelectDefaultState(el, stateName, state) {\n  if (state) {\n    if (state.z2 == null) {\n      state = extend({}, state);\n      var z2SelectLift = el.z2SelectLift;\n      state.z2 = el.z2 + (z2SelectLift != null ? z2SelectLift : Z2_SELECT_LIFT);\n    }\n  }\n\n  return state;\n}\n\nfunction createBlurDefaultState(el, stateName, state) {\n  var hasBlur = indexOf(el.currentStates, stateName) >= 0;\n  var currentOpacity = el.style.opacity;\n  var fromState = !hasBlur ? getFromStateStyle(el, ['opacity'], stateName, {\n    opacity: 1\n  }) : null;\n  state = state || {};\n  var blurStyle = state.style || {};\n\n  if (blurStyle.opacity == null) {\n    state = extend({}, state);\n    blurStyle = extend({\n      opacity: hasBlur ? currentOpacity : fromState.opacity * 0.1\n    }, blurStyle);\n    state.style = blurStyle;\n  }\n\n  return state;\n}\n\nfunction elementStateProxy(stateName, targetStates) {\n  var state = this.states[stateName];\n\n  if (this.style) {\n    if (stateName === 'emphasis') {\n      return createEmphasisDefaultState(this, stateName, targetStates, state);\n    } else if (stateName === 'blur') {\n      return createBlurDefaultState(this, stateName, state);\n    } else if (stateName === 'select') {\n      return createSelectDefaultState(this, stateName, state);\n    }\n  }\n\n  return state;\n}\n\nexport function setDefaultStateProxy(el) {\n  el.stateProxy = elementStateProxy;\n  var textContent = el.getTextContent();\n  var textGuide = el.getTextGuideLine();\n\n  if (textContent) {\n    textContent.stateProxy = elementStateProxy;\n  }\n\n  if (textGuide) {\n    textGuide.stateProxy = elementStateProxy;\n  }\n}\nexport function enterEmphasisWhenMouseOver(el, e) {\n  !shouldSilent(el, e) && !el.__highByOuter && traverseUpdateState(el, singleEnterEmphasis);\n}\nexport function leaveEmphasisWhenMouseOut(el, e) {\n  !shouldSilent(el, e) && !el.__highByOuter && traverseUpdateState(el, singleLeaveEmphasis);\n}\nexport function enterEmphasis(el, highlightDigit) {\n  el.__highByOuter |= 1 << (highlightDigit || 0);\n  traverseUpdateState(el, singleEnterEmphasis);\n}\nexport function leaveEmphasis(el, highlightDigit) {\n  !(el.__highByOuter &= ~(1 << (highlightDigit || 0))) && traverseUpdateState(el, singleLeaveEmphasis);\n}\nexport function enterBlur(el) {\n  traverseUpdateState(el, singleEnterBlur);\n}\nexport function leaveBlur(el) {\n  traverseUpdateState(el, singleLeaveBlur);\n}\nexport function enterSelect(el) {\n  traverseUpdateState(el, singleEnterSelect);\n}\nexport function leaveSelect(el) {\n  traverseUpdateState(el, singleLeaveSelect);\n}\n\nfunction shouldSilent(el, e) {\n  return el.__highDownSilentOnTouch && e.zrByTouch;\n}\n\nfunction allLeaveBlur(api) {\n  var model = api.getModel();\n  model.eachComponent(function (componentType, componentModel) {\n    var view = componentType === 'series' ? api.getViewOfSeriesModel(componentModel) : api.getViewOfComponentModel(componentModel);\n    view.group.traverse(function (child) {\n      singleLeaveBlur(child);\n    });\n  });\n}\n\nexport function toggleSeriesBlurState(targetSeriesIndex, focus, blurScope, api, isBlur) {\n  var ecModel = api.getModel();\n  blurScope = blurScope || 'coordinateSystem';\n\n  function leaveBlurOfIndices(data, dataIndices) {\n    for (var i = 0; i < dataIndices.length; i++) {\n      var itemEl = data.getItemGraphicEl(dataIndices[i]);\n      itemEl && leaveBlur(itemEl);\n    }\n  }\n\n  if (!isBlur) {\n    allLeaveBlur(api);\n    return;\n  }\n\n  if (targetSeriesIndex == null) {\n    return;\n  }\n\n  if (!focus || focus === 'none') {\n    return;\n  }\n\n  var targetSeriesModel = ecModel.getSeriesByIndex(targetSeriesIndex);\n  var targetCoordSys = targetSeriesModel.coordinateSystem;\n\n  if (targetCoordSys && targetCoordSys.master) {\n    targetCoordSys = targetCoordSys.master;\n  }\n\n  var blurredSeries = [];\n  ecModel.eachSeries(function (seriesModel) {\n    var sameSeries = targetSeriesModel === seriesModel;\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys && coordSys.master) {\n      coordSys = coordSys.master;\n    }\n\n    var sameCoordSys = coordSys && targetCoordSys ? coordSys === targetCoordSys : sameSeries;\n\n    if (!(blurScope === 'series' && !sameSeries || blurScope === 'coordinateSystem' && !sameCoordSys || focus === 'series' && sameSeries)) {\n      var view = api.getViewOfSeriesModel(seriesModel);\n      view.group.traverse(function (child) {\n        singleEnterBlur(child);\n      });\n\n      if (isArrayLike(focus)) {\n        leaveBlurOfIndices(seriesModel.getData(), focus);\n      } else if (isObject(focus)) {\n        var dataTypes = keys(focus);\n\n        for (var d = 0; d < dataTypes.length; d++) {\n          leaveBlurOfIndices(seriesModel.getData(dataTypes[d]), focus[dataTypes[d]]);\n        }\n      }\n\n      blurredSeries.push(seriesModel);\n    }\n  });\n  ecModel.eachComponent(function (componentType, componentModel) {\n    if (componentType === 'series') {\n      return;\n    }\n\n    var view = api.getViewOfComponentModel(componentModel);\n\n    if (view && view.blurSeries) {\n      view.blurSeries(blurredSeries, ecModel);\n    }\n  });\n}\nexport function toggleSeriesBlurStateFromPayload(seriesModel, payload, api) {\n  if (!isHighDownPayload(payload)) {\n    return;\n  }\n\n  var isHighlight = payload.type === HIGHLIGHT_ACTION_TYPE;\n  var seriesIndex = seriesModel.seriesIndex;\n  var data = seriesModel.getData(payload.dataType);\n  var dataIndex = queryDataIndex(data, payload);\n  dataIndex = (isArray(dataIndex) ? dataIndex[0] : dataIndex) || 0;\n  var el = data.getItemGraphicEl(dataIndex);\n\n  if (!el) {\n    var count = data.count();\n    var current = 0;\n\n    while (!el && current < count) {\n      el = data.getItemGraphicEl(current++);\n    }\n  }\n\n  if (el) {\n    var ecData = getECData(el);\n    toggleSeriesBlurState(seriesIndex, ecData.focus, ecData.blurScope, api, isHighlight);\n  } else {\n    var focus_1 = seriesModel.get(['emphasis', 'focus']);\n    var blurScope = seriesModel.get(['emphasis', 'blurScope']);\n\n    if (focus_1 != null) {\n      toggleSeriesBlurState(seriesIndex, focus_1, blurScope, api, isHighlight);\n    }\n  }\n}\nexport function toggleSelectionFromPayload(seriesModel, payload, api) {\n  if (!isSelectChangePayload(payload)) {\n    return;\n  }\n\n  var dataType = payload.dataType;\n  var data = seriesModel.getData(dataType);\n  var dataIndex = queryDataIndex(data, payload);\n\n  if (!isArray(dataIndex)) {\n    dataIndex = [dataIndex];\n  }\n\n  seriesModel[payload.type === TOGGLE_SELECT_ACTION_TYPE ? 'toggleSelect' : payload.type === SELECT_ACTION_TYPE ? 'select' : 'unselect'](dataIndex, dataType);\n}\nexport function updateSeriesElementSelection(seriesModel) {\n  var allData = seriesModel.getAllData();\n  each(allData, function (_a) {\n    var data = _a.data,\n        type = _a.type;\n    data.eachItemGraphicEl(function (el, idx) {\n      seriesModel.isSelected(idx, type) ? enterSelect(el) : leaveSelect(el);\n    });\n  });\n}\nexport function getAllSelectedIndices(ecModel) {\n  var ret = [];\n  ecModel.eachSeries(function (seriesModel) {\n    var allData = seriesModel.getAllData();\n    each(allData, function (_a) {\n      var data = _a.data,\n          type = _a.type;\n      var dataIndices = seriesModel.getSelectedDataIndices();\n\n      if (dataIndices.length > 0) {\n        var item = {\n          dataIndex: dataIndices,\n          seriesIndex: seriesModel.seriesIndex\n        };\n\n        if (type != null) {\n          item.dataType = type;\n        }\n\n        ret.push(item);\n      }\n    });\n  });\n  return ret;\n}\nexport function enableHoverEmphasis(el, focus, blurScope) {\n  setAsHighDownDispatcher(el, true);\n  traverseUpdateState(el, setDefaultStateProxy);\n  enableHoverFocus(el, focus, blurScope);\n}\nexport function enableHoverFocus(el, focus, blurScope) {\n  var ecData = getECData(el);\n\n  if (focus != null) {\n    ecData.focus = focus;\n    ecData.blurScope = blurScope;\n  } else if (ecData.focus) {\n    ecData.focus = null;\n  }\n}\nvar OTHER_STATES = ['emphasis', 'blur', 'select'];\nvar defaultStyleGetterMap = {\n  itemStyle: 'getItemStyle',\n  lineStyle: 'getLineStyle',\n  areaStyle: 'getAreaStyle'\n};\nexport function setStatesStylesFromModel(el, itemModel, styleType, getter) {\n  styleType = styleType || 'itemStyle';\n\n  for (var i = 0; i < OTHER_STATES.length; i++) {\n    var stateName = OTHER_STATES[i];\n    var model = itemModel.getModel([stateName, styleType]);\n    var state = el.ensureState(stateName);\n    state.style = getter ? getter(model) : model[defaultStyleGetterMap[styleType]]();\n  }\n}\nexport function setAsHighDownDispatcher(el, asDispatcher) {\n  var disable = asDispatcher === false;\n  var extendedEl = el;\n\n  if (el.highDownSilentOnTouch) {\n    extendedEl.__highDownSilentOnTouch = el.highDownSilentOnTouch;\n  }\n\n  if (!disable || extendedEl.__highDownDispatcher) {\n    extendedEl.__highByOuter = extendedEl.__highByOuter || 0;\n    extendedEl.__highDownDispatcher = !disable;\n  }\n}\nexport function isHighDownDispatcher(el) {\n  return !!(el && el.__highDownDispatcher);\n}\nexport function getHighlightDigit(highlightKey) {\n  var highlightDigit = _highlightKeyMap[highlightKey];\n\n  if (highlightDigit == null && _highlightNextDigit <= 32) {\n    highlightDigit = _highlightKeyMap[highlightKey] = _highlightNextDigit++;\n  }\n\n  return highlightDigit;\n}\nexport function isSelectChangePayload(payload) {\n  var payloadType = payload.type;\n  return payloadType === SELECT_ACTION_TYPE || payloadType === UNSELECT_ACTION_TYPE || payloadType === TOGGLE_SELECT_ACTION_TYPE;\n}\nexport function isHighDownPayload(payload) {\n  var payloadType = payload.type;\n  return payloadType === HIGHLIGHT_ACTION_TYPE || payloadType === DOWNPLAY_ACTION_TYPE;\n}\nexport function savePathStates(el) {\n  var store = getSavedStates(el);\n  store.normalFill = el.style.fill;\n  store.normalStroke = el.style.stroke;\n  var selectState = el.states.select || {};\n  store.selectFill = selectState.style && selectState.style.fill || null;\n  store.selectStroke = selectState.style && selectState.style.stroke || null;\n}","import PathProxy from '../core/PathProxy';\nimport { applyTransform as v2ApplyTransform } from '../core/vector';\nvar CMD = PathProxy.CMD;\nvar points = [[], [], []];\nvar mathSqrt = Math.sqrt;\nvar mathAtan2 = Math.atan2;\nexport default function transformPath(path, m) {\n    var data = path.data;\n    var len = path.len();\n    var cmd;\n    var nPoint;\n    var i;\n    var j;\n    var k;\n    var p;\n    var M = CMD.M;\n    var C = CMD.C;\n    var L = CMD.L;\n    var R = CMD.R;\n    var A = CMD.A;\n    var Q = CMD.Q;\n    for (i = 0, j = 0; i < len;) {\n        cmd = data[i++];\n        j = i;\n        nPoint = 0;\n        switch (cmd) {\n            case M:\n                nPoint = 1;\n                break;\n            case L:\n                nPoint = 1;\n                break;\n            case C:\n                nPoint = 3;\n                break;\n            case Q:\n                nPoint = 2;\n                break;\n            case A:\n                var x = m[4];\n                var y = m[5];\n                var sx = mathSqrt(m[0] * m[0] + m[1] * m[1]);\n                var sy = mathSqrt(m[2] * m[2] + m[3] * m[3]);\n                var angle = mathAtan2(-m[1] / sy, m[0] / sx);\n                data[i] *= sx;\n                data[i++] += x;\n                data[i] *= sy;\n                data[i++] += y;\n                data[i++] *= sx;\n                data[i++] *= sy;\n                data[i++] += angle;\n                data[i++] += angle;\n                i += 2;\n                j = i;\n                break;\n            case R:\n                p[0] = data[i++];\n                p[1] = data[i++];\n                v2ApplyTransform(p, p, m);\n                data[j++] = p[0];\n                data[j++] = p[1];\n                p[0] += data[i++];\n                p[1] += data[i++];\n                v2ApplyTransform(p, p, m);\n                data[j++] = p[0];\n                data[j++] = p[1];\n        }\n        for (k = 0; k < nPoint; k++) {\n            var p_1 = points[k];\n            p_1[0] = data[i++];\n            p_1[1] = data[i++];\n            v2ApplyTransform(p_1, p_1, m);\n            data[j++] = p_1[0];\n            data[j++] = p_1[1];\n        }\n    }\n    path.increaseVersion();\n}\n","import { __extends } from \"tslib\";\nimport Path from '../graphic/Path';\nimport PathProxy from '../core/PathProxy';\nimport transformPath from './transformPath';\nimport { extend } from '../core/util';\nvar mathSqrt = Math.sqrt;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI = Math.PI;\nfunction vMag(v) {\n    return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\n}\n;\nfunction vRatio(u, v) {\n    return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));\n}\n;\nfunction vAngle(u, v) {\n    return (u[0] * v[1] < u[1] * v[0] ? -1 : 1)\n        * Math.acos(vRatio(u, v));\n}\n;\nfunction processArc(x1, y1, x2, y2, fa, fs, rx, ry, psiDeg, cmd, path) {\n    var psi = psiDeg * (PI / 180.0);\n    var xp = mathCos(psi) * (x1 - x2) / 2.0\n        + mathSin(psi) * (y1 - y2) / 2.0;\n    var yp = -1 * mathSin(psi) * (x1 - x2) / 2.0\n        + mathCos(psi) * (y1 - y2) / 2.0;\n    var lambda = (xp * xp) / (rx * rx) + (yp * yp) / (ry * ry);\n    if (lambda > 1) {\n        rx *= mathSqrt(lambda);\n        ry *= mathSqrt(lambda);\n    }\n    var f = (fa === fs ? -1 : 1)\n        * mathSqrt((((rx * rx) * (ry * ry))\n            - ((rx * rx) * (yp * yp))\n            - ((ry * ry) * (xp * xp))) / ((rx * rx) * (yp * yp)\n            + (ry * ry) * (xp * xp))) || 0;\n    var cxp = f * rx * yp / ry;\n    var cyp = f * -ry * xp / rx;\n    var cx = (x1 + x2) / 2.0\n        + mathCos(psi) * cxp\n        - mathSin(psi) * cyp;\n    var cy = (y1 + y2) / 2.0\n        + mathSin(psi) * cxp\n        + mathCos(psi) * cyp;\n    var theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]);\n    var u = [(xp - cxp) / rx, (yp - cyp) / ry];\n    var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry];\n    var dTheta = vAngle(u, v);\n    if (vRatio(u, v) <= -1) {\n        dTheta = PI;\n    }\n    if (vRatio(u, v) >= 1) {\n        dTheta = 0;\n    }\n    if (dTheta < 0) {\n        var n = Math.round(dTheta / PI * 1e6) / 1e6;\n        dTheta = PI * 2 + (n % 2) * PI;\n    }\n    path.addData(cmd, cx, cy, rx, ry, theta, dTheta, psi, fs);\n}\nvar commandReg = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig;\nvar numberReg = /-?([0-9]*\\.)?[0-9]+([eE]-?[0-9]+)?/g;\nfunction createPathProxyFromString(data) {\n    var path = new PathProxy();\n    if (!data) {\n        return path;\n    }\n    var cpx = 0;\n    var cpy = 0;\n    var subpathX = cpx;\n    var subpathY = cpy;\n    var prevCmd;\n    var CMD = PathProxy.CMD;\n    var cmdList = data.match(commandReg);\n    if (!cmdList) {\n        return path;\n    }\n    for (var l = 0; l < cmdList.length; l++) {\n        var cmdText = cmdList[l];\n        var cmdStr = cmdText.charAt(0);\n        var cmd = void 0;\n        var p = cmdText.match(numberReg) || [];\n        var pLen = p.length;\n        for (var i = 0; i < pLen; i++) {\n            p[i] = parseFloat(p[i]);\n        }\n        var off = 0;\n        while (off < pLen) {\n            var ctlPtx = void 0;\n            var ctlPty = void 0;\n            var rx = void 0;\n            var ry = void 0;\n            var psi = void 0;\n            var fa = void 0;\n            var fs = void 0;\n            var x1 = cpx;\n            var y1 = cpy;\n            var len = void 0;\n            var pathData = void 0;\n            switch (cmdStr) {\n                case 'l':\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'L':\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'm':\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.M;\n                    path.addData(cmd, cpx, cpy);\n                    subpathX = cpx;\n                    subpathY = cpy;\n                    cmdStr = 'l';\n                    break;\n                case 'M':\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.M;\n                    path.addData(cmd, cpx, cpy);\n                    subpathX = cpx;\n                    subpathY = cpy;\n                    cmdStr = 'L';\n                    break;\n                case 'h':\n                    cpx += p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'H':\n                    cpx = p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'v':\n                    cpy += p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'V':\n                    cpy = p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'C':\n                    cmd = CMD.C;\n                    path.addData(cmd, p[off++], p[off++], p[off++], p[off++], p[off++], p[off++]);\n                    cpx = p[off - 2];\n                    cpy = p[off - 1];\n                    break;\n                case 'c':\n                    cmd = CMD.C;\n                    path.addData(cmd, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy);\n                    cpx += p[off - 2];\n                    cpy += p[off - 1];\n                    break;\n                case 'S':\n                    ctlPtx = cpx;\n                    ctlPty = cpy;\n                    len = path.len();\n                    pathData = path.data;\n                    if (prevCmd === CMD.C) {\n                        ctlPtx += cpx - pathData[len - 4];\n                        ctlPty += cpy - pathData[len - 3];\n                    }\n                    cmd = CMD.C;\n                    x1 = p[off++];\n                    y1 = p[off++];\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\n                    break;\n                case 's':\n                    ctlPtx = cpx;\n                    ctlPty = cpy;\n                    len = path.len();\n                    pathData = path.data;\n                    if (prevCmd === CMD.C) {\n                        ctlPtx += cpx - pathData[len - 4];\n                        ctlPty += cpy - pathData[len - 3];\n                    }\n                    cmd = CMD.C;\n                    x1 = cpx + p[off++];\n                    y1 = cpy + p[off++];\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\n                    break;\n                case 'Q':\n                    x1 = p[off++];\n                    y1 = p[off++];\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.Q;\n                    path.addData(cmd, x1, y1, cpx, cpy);\n                    break;\n                case 'q':\n                    x1 = p[off++] + cpx;\n                    y1 = p[off++] + cpy;\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.Q;\n                    path.addData(cmd, x1, y1, cpx, cpy);\n                    break;\n                case 'T':\n                    ctlPtx = cpx;\n                    ctlPty = cpy;\n                    len = path.len();\n                    pathData = path.data;\n                    if (prevCmd === CMD.Q) {\n                        ctlPtx += cpx - pathData[len - 4];\n                        ctlPty += cpy - pathData[len - 3];\n                    }\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.Q;\n                    path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n                    break;\n                case 't':\n                    ctlPtx = cpx;\n                    ctlPty = cpy;\n                    len = path.len();\n                    pathData = path.data;\n                    if (prevCmd === CMD.Q) {\n                        ctlPtx += cpx - pathData[len - 4];\n                        ctlPty += cpy - pathData[len - 3];\n                    }\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.Q;\n                    path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n                    break;\n                case 'A':\n                    rx = p[off++];\n                    ry = p[off++];\n                    psi = p[off++];\n                    fa = p[off++];\n                    fs = p[off++];\n                    x1 = cpx, y1 = cpy;\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.A;\n                    processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\n                    break;\n                case 'a':\n                    rx = p[off++];\n                    ry = p[off++];\n                    psi = p[off++];\n                    fa = p[off++];\n                    fs = p[off++];\n                    x1 = cpx, y1 = cpy;\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.A;\n                    processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\n                    break;\n            }\n        }\n        if (cmdStr === 'z' || cmdStr === 'Z') {\n            cmd = CMD.Z;\n            path.addData(cmd);\n            cpx = subpathX;\n            cpy = subpathY;\n        }\n        prevCmd = cmd;\n    }\n    path.toStatic();\n    return path;\n}\nvar SVGPath = (function (_super) {\n    __extends(SVGPath, _super);\n    function SVGPath() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    SVGPath.prototype.applyTransform = function (m) { };\n    return SVGPath;\n}(Path));\nfunction isPathProxy(path) {\n    return path.setData != null;\n}\nfunction createPathOptions(str, opts) {\n    var pathProxy = createPathProxyFromString(str);\n    var innerOpts = extend({}, opts);\n    innerOpts.buildPath = function (path) {\n        if (isPathProxy(path)) {\n            path.setData(pathProxy.data);\n            var ctx = path.getContext();\n            if (ctx) {\n                path.rebuildPath(ctx, 1);\n            }\n        }\n        else {\n            var ctx = path;\n            pathProxy.rebuildPath(ctx, 1);\n        }\n    };\n    innerOpts.applyTransform = function (m) {\n        transformPath(pathProxy, m);\n        this.dirtyShape();\n    };\n    return innerOpts;\n}\nexport function createFromString(str, opts) {\n    return new SVGPath(createPathOptions(str, opts));\n}\nexport function extendFromString(str, defaultOpts) {\n    var innerOpts = createPathOptions(str, defaultOpts);\n    var Sub = (function (_super) {\n        __extends(Sub, _super);\n        function Sub(opts) {\n            var _this = _super.call(this, opts) || this;\n            _this.applyTransform = innerOpts.applyTransform;\n            _this.buildPath = innerOpts.buildPath;\n            return _this;\n        }\n        return Sub;\n    }(SVGPath));\n    return Sub;\n}\nexport function mergePath(pathEls, opts) {\n    var pathList = [];\n    var len = pathEls.length;\n    for (var i = 0; i < len; i++) {\n        var pathEl = pathEls[i];\n        if (!pathEl.path) {\n            pathEl.createPathProxy();\n        }\n        if (pathEl.shapeChanged()) {\n            pathEl.buildPath(pathEl.path, pathEl.shape, true);\n        }\n        pathList.push(pathEl.path);\n    }\n    var pathBundle = new Path(opts);\n    pathBundle.createPathProxy();\n    pathBundle.buildPath = function (path) {\n        if (isPathProxy(path)) {\n            path.appendPath(pathList);\n            var ctx = path.getContext();\n            if (ctx) {\n                path.rebuildPath(ctx, 1);\n            }\n        }\n    };\n    return pathBundle;\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar CircleShape = (function () {\n    function CircleShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.r = 0;\n    }\n    return CircleShape;\n}());\nvar Circle = (function (_super) {\n    __extends(Circle, _super);\n    function Circle(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Circle.prototype.getDefaultShape = function () {\n        return new CircleShape();\n    };\n    Circle.prototype.buildPath = function (ctx, shape, inBundle) {\n        if (inBundle) {\n            ctx.moveTo(shape.cx + shape.r, shape.cy);\n        }\n        ctx.arc(shape.cx, shape.cy, shape.r, 0, Math.PI * 2);\n    };\n    return Circle;\n}(Path));\n;\nCircle.prototype.type = 'circle';\nexport default Circle;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar EllipseShape = (function () {\n    function EllipseShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.rx = 0;\n        this.ry = 0;\n    }\n    return EllipseShape;\n}());\nvar Ellipse = (function (_super) {\n    __extends(Ellipse, _super);\n    function Ellipse(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Ellipse.prototype.getDefaultShape = function () {\n        return new EllipseShape();\n    };\n    Ellipse.prototype.buildPath = function (ctx, shape) {\n        var k = 0.5522848;\n        var x = shape.cx;\n        var y = shape.cy;\n        var a = shape.rx;\n        var b = shape.ry;\n        var ox = a * k;\n        var oy = b * k;\n        ctx.moveTo(x - a, y);\n        ctx.bezierCurveTo(x - a, y - oy, x - ox, y - b, x, y - b);\n        ctx.bezierCurveTo(x + ox, y - b, x + a, y - oy, x + a, y);\n        ctx.bezierCurveTo(x + a, y + oy, x + ox, y + b, x, y + b);\n        ctx.bezierCurveTo(x - ox, y + b, x - a, y + oy, x - a, y);\n        ctx.closePath();\n    };\n    return Ellipse;\n}(Path));\nEllipse.prototype.type = 'ellipse';\nexport default Ellipse;\n","import { normalizeArcAngles } from '../../core/PathProxy';\nvar PI = Math.PI;\nvar PI2 = PI * 2;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar mathACos = Math.acos;\nvar mathATan2 = Math.atan2;\nvar mathAbs = Math.abs;\nvar mathSqrt = Math.sqrt;\nvar mathMax = Math.max;\nvar mathMin = Math.min;\nvar e = 1e-4;\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n    var x10 = x1 - x0;\n    var y10 = y1 - y0;\n    var x32 = x3 - x2;\n    var y32 = y3 - y2;\n    var t = y32 * x10 - x32 * y10;\n    if (t * t < e) {\n        return;\n    }\n    t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n    return [x0 + t * x10, y0 + t * y10];\n}\nfunction computeCornerTangents(x0, y0, x1, y1, radius, cr, clockwise) {\n    var x01 = x0 - x1;\n    var y01 = y0 - y1;\n    var lo = (clockwise ? cr : -cr) / mathSqrt(x01 * x01 + y01 * y01);\n    var ox = lo * y01;\n    var oy = -lo * x01;\n    var x11 = x0 + ox;\n    var y11 = y0 + oy;\n    var x10 = x1 + ox;\n    var y10 = y1 + oy;\n    var x00 = (x11 + x10) / 2;\n    var y00 = (y11 + y10) / 2;\n    var dx = x10 - x11;\n    var dy = y10 - y11;\n    var d2 = dx * dx + dy * dy;\n    var r = radius - cr;\n    var s = x11 * y10 - x10 * y11;\n    var d = (dy < 0 ? -1 : 1) * mathSqrt(mathMax(0, r * r * d2 - s * s));\n    var cx0 = (s * dy - dx * d) / d2;\n    var cy0 = (-s * dx - dy * d) / d2;\n    var cx1 = (s * dy + dx * d) / d2;\n    var cy1 = (-s * dx + dy * d) / d2;\n    var dx0 = cx0 - x00;\n    var dy0 = cy0 - y00;\n    var dx1 = cx1 - x00;\n    var dy1 = cy1 - y00;\n    if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) {\n        cx0 = cx1;\n        cy0 = cy1;\n    }\n    return {\n        cx: cx0,\n        cy: cy0,\n        x01: -ox,\n        y01: -oy,\n        x11: cx0 * (radius / r - 1),\n        y11: cy0 * (radius / r - 1)\n    };\n}\nexport function buildPath(ctx, shape) {\n    var radius = mathMax(shape.r, 0);\n    var innerRadius = mathMax(shape.r0 || 0, 0);\n    var hasRadius = radius > 0;\n    var hasInnerRadius = innerRadius > 0;\n    if (!hasRadius && !hasInnerRadius) {\n        return;\n    }\n    if (!hasRadius) {\n        radius = innerRadius;\n        innerRadius = 0;\n    }\n    if (innerRadius > radius) {\n        var tmp = radius;\n        radius = innerRadius;\n        innerRadius = tmp;\n    }\n    var clockwise = !!shape.clockwise;\n    var startAngle = shape.startAngle;\n    var endAngle = shape.endAngle;\n    var tmpAngles = [startAngle, endAngle];\n    normalizeArcAngles(tmpAngles, !clockwise);\n    var arc = mathAbs(tmpAngles[0] - tmpAngles[1]);\n    var x = shape.cx;\n    var y = shape.cy;\n    var cornerRadius = shape.cornerRadius || 0;\n    var innerCornerRadius = shape.innerCornerRadius || 0;\n    if (!(radius > e)) {\n        ctx.moveTo(x, y);\n    }\n    else if (arc > PI2 - e) {\n        ctx.moveTo(x + radius * mathCos(startAngle), y + radius * mathSin(startAngle));\n        ctx.arc(x, y, radius, startAngle, endAngle, !clockwise);\n        if (innerRadius > e) {\n            ctx.moveTo(x + innerRadius * mathCos(endAngle), y + innerRadius * mathSin(endAngle));\n            ctx.arc(x, y, innerRadius, endAngle, startAngle, clockwise);\n        }\n    }\n    else {\n        var halfRd = mathAbs(radius - innerRadius) / 2;\n        var cr = mathMin(halfRd, cornerRadius);\n        var icr = mathMin(halfRd, innerCornerRadius);\n        var cr0 = icr;\n        var cr1 = cr;\n        var xrs = radius * mathCos(startAngle);\n        var yrs = radius * mathSin(startAngle);\n        var xire = innerRadius * mathCos(endAngle);\n        var yire = innerRadius * mathSin(endAngle);\n        var xre = void 0;\n        var yre = void 0;\n        var xirs = void 0;\n        var yirs = void 0;\n        if (cr > e || icr > e) {\n            xre = radius * mathCos(endAngle);\n            yre = radius * mathSin(endAngle);\n            xirs = innerRadius * mathCos(startAngle);\n            yirs = innerRadius * mathSin(startAngle);\n            if (arc < PI) {\n                var it_1 = intersect(xrs, yrs, xirs, yirs, xre, yre, xire, yire);\n                if (it_1) {\n                    var x0 = xrs - it_1[0];\n                    var y0 = yrs - it_1[1];\n                    var x1 = xre - it_1[0];\n                    var y1 = yre - it_1[1];\n                    var a = 1 / mathSin(mathACos((x0 * x1 + y0 * y1) / (mathSqrt(x0 * x0 + y0 * y0) * mathSqrt(x1 * x1 + y1 * y1))) / 2);\n                    var b = mathSqrt(it_1[0] * it_1[0] + it_1[1] * it_1[1]);\n                    cr0 = mathMin(icr, (innerRadius - b) / (a - 1));\n                    cr1 = mathMin(cr, (radius - b) / (a + 1));\n                }\n            }\n        }\n        if (!(arc > e)) {\n            ctx.moveTo(x + xrs, y + yrs);\n        }\n        else if (cr1 > e) {\n            var ct0 = computeCornerTangents(xirs, yirs, xrs, yrs, radius, cr1, clockwise);\n            var ct1 = computeCornerTangents(xre, yre, xire, yire, radius, cr1, clockwise);\n            ctx.moveTo(x + ct0.cx + ct0.x01, y + ct0.cy + ct0.y01);\n            if (cr1 < cr) {\n                ctx.arc(x + ct0.cx, y + ct0.cy, cr1, mathATan2(ct0.y01, ct0.x01), mathATan2(ct1.y01, ct1.x01), !clockwise);\n            }\n            else {\n                ctx.arc(x + ct0.cx, y + ct0.cy, cr1, mathATan2(ct0.y01, ct0.x01), mathATan2(ct0.y11, ct0.x11), !clockwise);\n                ctx.arc(x, y, radius, mathATan2(ct0.cy + ct0.y11, ct0.cx + ct0.x11), mathATan2(ct1.cy + ct1.y11, ct1.cx + ct1.x11), !clockwise);\n                ctx.arc(x + ct1.cx, y + ct1.cy, cr1, mathATan2(ct1.y11, ct1.x11), mathATan2(ct1.y01, ct1.x01), !clockwise);\n            }\n        }\n        else {\n            ctx.moveTo(x + xrs, y + yrs);\n            ctx.arc(x, y, radius, startAngle, endAngle, !clockwise);\n        }\n        if (!(innerRadius > e) || !(arc > e)) {\n            ctx.lineTo(x + xire, y + yire);\n        }\n        else if (cr0 > e) {\n            var ct0 = computeCornerTangents(xire, yire, xre, yre, innerRadius, -cr0, clockwise);\n            var ct1 = computeCornerTangents(xrs, yrs, xirs, yirs, innerRadius, -cr0, clockwise);\n            ctx.lineTo(x + ct0.cx + ct0.x01, y + ct0.cy + ct0.y01);\n            if (cr0 < icr) {\n                ctx.arc(x + ct0.cx, y + ct0.cy, cr0, mathATan2(ct0.y01, ct0.x01), mathATan2(ct1.y01, ct1.x01), !clockwise);\n            }\n            else {\n                ctx.arc(x + ct0.cx, y + ct0.cy, cr0, mathATan2(ct0.y01, ct0.x01), mathATan2(ct0.y11, ct0.x11), !clockwise);\n                ctx.arc(x, y, innerRadius, mathATan2(ct0.cy + ct0.y11, ct0.cx + ct0.x11), mathATan2(ct1.cy + ct1.y11, ct1.cx + ct1.x11), clockwise);\n                ctx.arc(x + ct1.cx, y + ct1.cy, cr0, mathATan2(ct1.y11, ct1.x11), mathATan2(ct1.y01, ct1.x01), !clockwise);\n            }\n        }\n        else {\n            ctx.lineTo(x + xire, y + yire);\n            ctx.arc(x, y, innerRadius, endAngle, startAngle, clockwise);\n        }\n    }\n    ctx.closePath();\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as roundSectorHelper from '../helper/roundSector';\nvar SectorShape = (function () {\n    function SectorShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.r0 = 0;\n        this.r = 0;\n        this.startAngle = 0;\n        this.endAngle = Math.PI * 2;\n        this.clockwise = true;\n        this.cornerRadius = 0;\n        this.innerCornerRadius = 0;\n    }\n    return SectorShape;\n}());\nvar Sector = (function (_super) {\n    __extends(Sector, _super);\n    function Sector(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Sector.prototype.getDefaultShape = function () {\n        return new SectorShape();\n    };\n    Sector.prototype.buildPath = function (ctx, shape) {\n        roundSectorHelper.buildPath(ctx, shape);\n    };\n    Sector.prototype.isZeroArea = function () {\n        return this.shape.startAngle === this.shape.endAngle\n            || this.shape.r === this.shape.r0;\n    };\n    return Sector;\n}(Path));\nSector.prototype.type = 'sector';\nexport default Sector;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar RingShape = (function () {\n    function RingShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.r = 0;\n        this.r0 = 0;\n    }\n    return RingShape;\n}());\nvar Ring = (function (_super) {\n    __extends(Ring, _super);\n    function Ring(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Ring.prototype.getDefaultShape = function () {\n        return new RingShape();\n    };\n    Ring.prototype.buildPath = function (ctx, shape) {\n        var x = shape.cx;\n        var y = shape.cy;\n        var PI2 = Math.PI * 2;\n        ctx.moveTo(x + shape.r, y);\n        ctx.arc(x, y, shape.r, 0, PI2, false);\n        ctx.moveTo(x + shape.r0, y);\n        ctx.arc(x, y, shape.r0, 0, PI2, true);\n    };\n    return Ring;\n}(Path));\nRing.prototype.type = 'ring';\nexport default Ring;\n","import { distance as v2Distance } from '../../core/vector';\nfunction interpolate(p0, p1, p2, p3, t, t2, t3) {\n    var v0 = (p2 - p0) * 0.5;\n    var v1 = (p3 - p1) * 0.5;\n    return (2 * (p1 - p2) + v0 + v1) * t3\n        + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\n        + v0 * t + p1;\n}\nexport default function smoothSpline(points, isLoop) {\n    var len = points.length;\n    var ret = [];\n    var distance = 0;\n    for (var i = 1; i < len; i++) {\n        distance += v2Distance(points[i - 1], points[i]);\n    }\n    var segs = distance / 2;\n    segs = segs < len ? len : segs;\n    for (var i = 0; i < segs; i++) {\n        var pos = i / (segs - 1) * (isLoop ? len : len - 1);\n        var idx = Math.floor(pos);\n        var w = pos - idx;\n        var p0 = void 0;\n        var p1 = points[idx % len];\n        var p2 = void 0;\n        var p3 = void 0;\n        if (!isLoop) {\n            p0 = points[idx === 0 ? idx : idx - 1];\n            p2 = points[idx > len - 2 ? len - 1 : idx + 1];\n            p3 = points[idx > len - 3 ? len - 1 : idx + 2];\n        }\n        else {\n            p0 = points[(idx - 1 + len) % len];\n            p2 = points[(idx + 1) % len];\n            p3 = points[(idx + 2) % len];\n        }\n        var w2 = w * w;\n        var w3 = w * w2;\n        ret.push([\n            interpolate(p0[0], p1[0], p2[0], p3[0], w, w2, w3),\n            interpolate(p0[1], p1[1], p2[1], p3[1], w, w2, w3)\n        ]);\n    }\n    return ret;\n}\n","import { min as v2Min, max as v2Max, scale as v2Scale, distance as v2Distance, add as v2Add, clone as v2Clone, sub as v2Sub } from '../../core/vector';\nexport default function smoothBezier(points, smooth, isLoop, constraint) {\n    var cps = [];\n    var v = [];\n    var v1 = [];\n    var v2 = [];\n    var prevPoint;\n    var nextPoint;\n    var min;\n    var max;\n    if (constraint) {\n        min = [Infinity, Infinity];\n        max = [-Infinity, -Infinity];\n        for (var i = 0, len = points.length; i < len; i++) {\n            v2Min(min, min, points[i]);\n            v2Max(max, max, points[i]);\n        }\n        v2Min(min, min, constraint[0]);\n        v2Max(max, max, constraint[1]);\n    }\n    for (var i = 0, len = points.length; i < len; i++) {\n        var point = points[i];\n        if (isLoop) {\n            prevPoint = points[i ? i - 1 : len - 1];\n            nextPoint = points[(i + 1) % len];\n        }\n        else {\n            if (i === 0 || i === len - 1) {\n                cps.push(v2Clone(points[i]));\n                continue;\n            }\n            else {\n                prevPoint = points[i - 1];\n                nextPoint = points[i + 1];\n            }\n        }\n        v2Sub(v, nextPoint, prevPoint);\n        v2Scale(v, v, smooth);\n        var d0 = v2Distance(point, prevPoint);\n        var d1 = v2Distance(point, nextPoint);\n        var sum = d0 + d1;\n        if (sum !== 0) {\n            d0 /= sum;\n            d1 /= sum;\n        }\n        v2Scale(v1, v, -d0);\n        v2Scale(v2, v, d1);\n        var cp0 = v2Add([], point, v1);\n        var cp1 = v2Add([], point, v2);\n        if (constraint) {\n            v2Max(cp0, cp0, min);\n            v2Min(cp0, cp0, max);\n            v2Max(cp1, cp1, min);\n            v2Min(cp1, cp1, max);\n        }\n        cps.push(cp0);\n        cps.push(cp1);\n    }\n    if (isLoop) {\n        cps.push(cps.shift());\n    }\n    return cps;\n}\n","import smoothSpline from './smoothSpline';\nimport smoothBezier from './smoothBezier';\nexport function buildPath(ctx, shape, closePath) {\n    var smooth = shape.smooth;\n    var points = shape.points;\n    if (points && points.length >= 2) {\n        if (smooth && smooth !== 'spline') {\n            var controlPoints = smoothBezier(points, smooth, closePath, shape.smoothConstraint);\n            ctx.moveTo(points[0][0], points[0][1]);\n            var len = points.length;\n            for (var i = 0; i < (closePath ? len : len - 1); i++) {\n                var cp1 = controlPoints[i * 2];\n                var cp2 = controlPoints[i * 2 + 1];\n                var p = points[(i + 1) % len];\n                ctx.bezierCurveTo(cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]);\n            }\n        }\n        else {\n            if (smooth === 'spline') {\n                points = smoothSpline(points, closePath);\n            }\n            ctx.moveTo(points[0][0], points[0][1]);\n            for (var i = 1, l = points.length; i < l; i++) {\n                ctx.lineTo(points[i][0], points[i][1]);\n            }\n        }\n        closePath && ctx.closePath();\n    }\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as polyHelper from '../helper/poly';\nvar PolygonShape = (function () {\n    function PolygonShape() {\n        this.points = null;\n        this.smooth = 0;\n        this.smoothConstraint = null;\n    }\n    return PolygonShape;\n}());\nvar Polygon = (function (_super) {\n    __extends(Polygon, _super);\n    function Polygon(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Polygon.prototype.getDefaultShape = function () {\n        return new PolygonShape();\n    };\n    Polygon.prototype.buildPath = function (ctx, shape) {\n        polyHelper.buildPath(ctx, shape, true);\n    };\n    return Polygon;\n}(Path));\n;\nPolygon.prototype.type = 'polygon';\nexport default Polygon;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as polyHelper from '../helper/poly';\nvar PolylineShape = (function () {\n    function PolylineShape() {\n        this.points = null;\n        this.percent = 1;\n        this.smooth = 0;\n        this.smoothConstraint = null;\n    }\n    return PolylineShape;\n}());\nvar Polyline = (function (_super) {\n    __extends(Polyline, _super);\n    function Polyline(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Polyline.prototype.getDefaultStyle = function () {\n        return {\n            stroke: '#000',\n            fill: null\n        };\n    };\n    Polyline.prototype.getDefaultShape = function () {\n        return new PolylineShape();\n    };\n    Polyline.prototype.buildPath = function (ctx, shape) {\n        polyHelper.buildPath(ctx, shape, false);\n    };\n    return Polyline;\n}(Path));\nPolyline.prototype.type = 'polyline';\nexport default Polyline;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport { subPixelOptimizeLine } from '../helper/subPixelOptimize';\nvar subPixelOptimizeOutputShape = {};\nvar LineShape = (function () {\n    function LineShape() {\n        this.x1 = 0;\n        this.y1 = 0;\n        this.x2 = 0;\n        this.y2 = 0;\n        this.percent = 1;\n    }\n    return LineShape;\n}());\nvar Line = (function (_super) {\n    __extends(Line, _super);\n    function Line(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Line.prototype.getDefaultStyle = function () {\n        return {\n            stroke: '#000',\n            fill: null\n        };\n    };\n    Line.prototype.getDefaultShape = function () {\n        return new LineShape();\n    };\n    Line.prototype.buildPath = function (ctx, shape) {\n        var x1;\n        var y1;\n        var x2;\n        var y2;\n        if (this.subPixelOptimize) {\n            var optimizedShape = subPixelOptimizeLine(subPixelOptimizeOutputShape, shape, this.style);\n            x1 = optimizedShape.x1;\n            y1 = optimizedShape.y1;\n            x2 = optimizedShape.x2;\n            y2 = optimizedShape.y2;\n        }\n        else {\n            x1 = shape.x1;\n            y1 = shape.y1;\n            x2 = shape.x2;\n            y2 = shape.y2;\n        }\n        var percent = shape.percent;\n        if (percent === 0) {\n            return;\n        }\n        ctx.moveTo(x1, y1);\n        if (percent < 1) {\n            x2 = x1 * (1 - percent) + x2 * percent;\n            y2 = y1 * (1 - percent) + y2 * percent;\n        }\n        ctx.lineTo(x2, y2);\n    };\n    Line.prototype.pointAt = function (p) {\n        var shape = this.shape;\n        return [\n            shape.x1 * (1 - p) + shape.x2 * p,\n            shape.y1 * (1 - p) + shape.y2 * p\n        ];\n    };\n    return Line;\n}(Path));\nLine.prototype.type = 'line';\nexport default Line;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as vec2 from '../../core/vector';\nimport { quadraticSubdivide, cubicSubdivide, quadraticAt, cubicAt, quadraticDerivativeAt, cubicDerivativeAt } from '../../core/curve';\nvar out = [];\nvar BezierCurveShape = (function () {\n    function BezierCurveShape() {\n        this.x1 = 0;\n        this.y1 = 0;\n        this.x2 = 0;\n        this.y2 = 0;\n        this.cpx1 = 0;\n        this.cpy1 = 0;\n        this.percent = 1;\n    }\n    return BezierCurveShape;\n}());\nfunction someVectorAt(shape, t, isTangent) {\n    var cpx2 = shape.cpx2;\n    var cpy2 = shape.cpy2;\n    if (cpx2 === null || cpy2 === null) {\n        return [\n            (isTangent ? cubicDerivativeAt : cubicAt)(shape.x1, shape.cpx1, shape.cpx2, shape.x2, t),\n            (isTangent ? cubicDerivativeAt : cubicAt)(shape.y1, shape.cpy1, shape.cpy2, shape.y2, t)\n        ];\n    }\n    else {\n        return [\n            (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.x1, shape.cpx1, shape.x2, t),\n            (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.y1, shape.cpy1, shape.y2, t)\n        ];\n    }\n}\nvar BezierCurve = (function (_super) {\n    __extends(BezierCurve, _super);\n    function BezierCurve(opts) {\n        return _super.call(this, opts) || this;\n    }\n    BezierCurve.prototype.getDefaultStyle = function () {\n        return {\n            stroke: '#000',\n            fill: null\n        };\n    };\n    BezierCurve.prototype.getDefaultShape = function () {\n        return new BezierCurveShape();\n    };\n    BezierCurve.prototype.buildPath = function (ctx, shape) {\n        var x1 = shape.x1;\n        var y1 = shape.y1;\n        var x2 = shape.x2;\n        var y2 = shape.y2;\n        var cpx1 = shape.cpx1;\n        var cpy1 = shape.cpy1;\n        var cpx2 = shape.cpx2;\n        var cpy2 = shape.cpy2;\n        var percent = shape.percent;\n        if (percent === 0) {\n            return;\n        }\n        ctx.moveTo(x1, y1);\n        if (cpx2 == null || cpy2 == null) {\n            if (percent < 1) {\n                quadraticSubdivide(x1, cpx1, x2, percent, out);\n                cpx1 = out[1];\n                x2 = out[2];\n                quadraticSubdivide(y1, cpy1, y2, percent, out);\n                cpy1 = out[1];\n                y2 = out[2];\n            }\n            ctx.quadraticCurveTo(cpx1, cpy1, x2, y2);\n        }\n        else {\n            if (percent < 1) {\n                cubicSubdivide(x1, cpx1, cpx2, x2, percent, out);\n                cpx1 = out[1];\n                cpx2 = out[2];\n                x2 = out[3];\n                cubicSubdivide(y1, cpy1, cpy2, y2, percent, out);\n                cpy1 = out[1];\n                cpy2 = out[2];\n                y2 = out[3];\n            }\n            ctx.bezierCurveTo(cpx1, cpy1, cpx2, cpy2, x2, y2);\n        }\n    };\n    BezierCurve.prototype.pointAt = function (t) {\n        return someVectorAt(this.shape, t, false);\n    };\n    BezierCurve.prototype.tangentAt = function (t) {\n        var p = someVectorAt(this.shape, t, true);\n        return vec2.normalize(p, p);\n    };\n    return BezierCurve;\n}(Path));\n;\nBezierCurve.prototype.type = 'bezier-curve';\nexport default BezierCurve;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar ArcShape = (function () {\n    function ArcShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.r = 0;\n        this.startAngle = 0;\n        this.endAngle = Math.PI * 2;\n        this.clockwise = true;\n    }\n    return ArcShape;\n}());\nvar Arc = (function (_super) {\n    __extends(Arc, _super);\n    function Arc(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Arc.prototype.getDefaultStyle = function () {\n        return {\n            stroke: '#000',\n            fill: null\n        };\n    };\n    Arc.prototype.getDefaultShape = function () {\n        return new ArcShape();\n    };\n    Arc.prototype.buildPath = function (ctx, shape) {\n        var x = shape.cx;\n        var y = shape.cy;\n        var r = Math.max(shape.r, 0);\n        var startAngle = shape.startAngle;\n        var endAngle = shape.endAngle;\n        var clockwise = shape.clockwise;\n        var unitX = Math.cos(startAngle);\n        var unitY = Math.sin(startAngle);\n        ctx.moveTo(unitX * r + x, unitY * r + y);\n        ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\n    };\n    return Arc;\n}(Path));\nArc.prototype.type = 'arc';\nexport default Arc;\n","import { __extends } from \"tslib\";\nimport Path from './Path';\nvar CompoundPath = (function (_super) {\n    __extends(CompoundPath, _super);\n    function CompoundPath() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.type = 'compound';\n        return _this;\n    }\n    CompoundPath.prototype._updatePathDirty = function () {\n        var paths = this.shape.paths;\n        var dirtyPath = this.shapeChanged();\n        for (var i = 0; i < paths.length; i++) {\n            dirtyPath = dirtyPath || paths[i].shapeChanged();\n        }\n        if (dirtyPath) {\n            this.dirtyShape();\n        }\n    };\n    CompoundPath.prototype.beforeBrush = function () {\n        this._updatePathDirty();\n        var paths = this.shape.paths || [];\n        var scale = this.getGlobalScale();\n        for (var i = 0; i < paths.length; i++) {\n            if (!paths[i].path) {\n                paths[i].createPathProxy();\n            }\n            paths[i].path.setScale(scale[0], scale[1], paths[i].segmentIgnoreThreshold);\n        }\n    };\n    CompoundPath.prototype.buildPath = function (ctx, shape) {\n        var paths = shape.paths || [];\n        for (var i = 0; i < paths.length; i++) {\n            paths[i].buildPath(ctx, paths[i].shape, true);\n        }\n    };\n    CompoundPath.prototype.afterBrush = function () {\n        var paths = this.shape.paths || [];\n        for (var i = 0; i < paths.length; i++) {\n            paths[i].pathUpdated();\n        }\n    };\n    CompoundPath.prototype.getBoundingRect = function () {\n        this._updatePathDirty.call(this);\n        return Path.prototype.getBoundingRect.call(this);\n    };\n    return CompoundPath;\n}(Path));\nexport default CompoundPath;\n","var Gradient = (function () {\n    function Gradient(colorStops) {\n        this.colorStops = colorStops || [];\n    }\n    Gradient.prototype.addColorStop = function (offset, color) {\n        this.colorStops.push({\n            offset: offset,\n            color: color\n        });\n    };\n    return Gradient;\n}());\nexport default Gradient;\n","import { __extends } from \"tslib\";\nimport Gradient from './Gradient';\nvar LinearGradient = (function (_super) {\n    __extends(LinearGradient, _super);\n    function LinearGradient(x, y, x2, y2, colorStops, globalCoord) {\n        var _this = _super.call(this, colorStops) || this;\n        _this.x = x == null ? 0 : x;\n        _this.y = y == null ? 0 : y;\n        _this.x2 = x2 == null ? 1 : x2;\n        _this.y2 = y2 == null ? 0 : y2;\n        _this.type = 'linear';\n        _this.global = globalCoord || false;\n        return _this;\n    }\n    return LinearGradient;\n}(Gradient));\nexport default LinearGradient;\n;\n","import { __extends } from \"tslib\";\nimport Gradient from './Gradient';\nvar RadialGradient = (function (_super) {\n    __extends(RadialGradient, _super);\n    function RadialGradient(x, y, r, colorStops, globalCoord) {\n        var _this = _super.call(this, colorStops) || this;\n        _this.x = x == null ? 0.5 : x;\n        _this.y = y == null ? 0.5 : y;\n        _this.r = r == null ? 0.5 : r;\n        _this.type = 'radial';\n        _this.global = globalCoord || false;\n        return _this;\n    }\n    return RadialGradient;\n}(Gradient));\nexport default RadialGradient;\n","import Point from './Point';\nvar extent = [0, 0];\nvar extent2 = [0, 0];\nvar minTv = new Point();\nvar maxTv = new Point();\nvar OrientedBoundingRect = (function () {\n    function OrientedBoundingRect(rect, transform) {\n        this._corners = [];\n        this._axes = [];\n        this._origin = [0, 0];\n        for (var i = 0; i < 4; i++) {\n            this._corners[i] = new Point();\n        }\n        for (var i = 0; i < 2; i++) {\n            this._axes[i] = new Point();\n        }\n        if (rect) {\n            this.fromBoundingRect(rect, transform);\n        }\n    }\n    OrientedBoundingRect.prototype.fromBoundingRect = function (rect, transform) {\n        var corners = this._corners;\n        var axes = this._axes;\n        var x = rect.x;\n        var y = rect.y;\n        var x2 = x + rect.width;\n        var y2 = y + rect.height;\n        corners[0].set(x, y);\n        corners[1].set(x2, y);\n        corners[2].set(x2, y2);\n        corners[3].set(x, y2);\n        if (transform) {\n            for (var i = 0; i < 4; i++) {\n                corners[i].transform(transform);\n            }\n        }\n        Point.sub(axes[0], corners[1], corners[0]);\n        Point.sub(axes[1], corners[3], corners[0]);\n        axes[0].normalize();\n        axes[1].normalize();\n        for (var i = 0; i < 2; i++) {\n            this._origin[i] = axes[i].dot(corners[0]);\n        }\n    };\n    OrientedBoundingRect.prototype.intersect = function (other, mtv) {\n        var overlapped = true;\n        var noMtv = !mtv;\n        minTv.set(Infinity, Infinity);\n        maxTv.set(0, 0);\n        if (!this._intersectCheckOneSide(this, other, minTv, maxTv, noMtv, 1)) {\n            overlapped = false;\n            if (noMtv) {\n                return overlapped;\n            }\n        }\n        if (!this._intersectCheckOneSide(other, this, minTv, maxTv, noMtv, -1)) {\n            overlapped = false;\n            if (noMtv) {\n                return overlapped;\n            }\n        }\n        if (!noMtv) {\n            Point.copy(mtv, overlapped ? minTv : maxTv);\n        }\n        return overlapped;\n    };\n    OrientedBoundingRect.prototype._intersectCheckOneSide = function (self, other, minTv, maxTv, noMtv, inverse) {\n        var overlapped = true;\n        for (var i = 0; i < 2; i++) {\n            var axis = this._axes[i];\n            this._getProjMinMaxOnAxis(i, self._corners, extent);\n            this._getProjMinMaxOnAxis(i, other._corners, extent2);\n            if (extent[1] < extent2[0] || extent[0] > extent2[1]) {\n                overlapped = false;\n                if (noMtv) {\n                    return overlapped;\n                }\n                var dist0 = Math.abs(extent2[0] - extent[1]);\n                var dist1 = Math.abs(extent[0] - extent2[1]);\n                if (Math.min(dist0, dist1) > maxTv.len()) {\n                    if (dist0 < dist1) {\n                        Point.scale(maxTv, axis, -dist0 * inverse);\n                    }\n                    else {\n                        Point.scale(maxTv, axis, dist1 * inverse);\n                    }\n                }\n            }\n            else if (minTv) {\n                var dist0 = Math.abs(extent2[0] - extent[1]);\n                var dist1 = Math.abs(extent[0] - extent2[1]);\n                if (Math.min(dist0, dist1) < minTv.len()) {\n                    if (dist0 < dist1) {\n                        Point.scale(minTv, axis, dist0 * inverse);\n                    }\n                    else {\n                        Point.scale(minTv, axis, -dist1 * inverse);\n                    }\n                }\n            }\n        }\n        return overlapped;\n    };\n    OrientedBoundingRect.prototype._getProjMinMaxOnAxis = function (dim, corners, out) {\n        var axis = this._axes[dim];\n        var origin = this._origin;\n        var proj = corners[0].dot(axis) + origin[dim];\n        var min = proj;\n        var max = proj;\n        for (var i = 1; i < corners.length; i++) {\n            var proj_1 = corners[i].dot(axis) + origin[dim];\n            min = Math.min(proj_1, min);\n            max = Math.max(proj_1, max);\n        }\n        out[0] = min;\n        out[1] = max;\n    };\n    return OrientedBoundingRect;\n}());\nexport default OrientedBoundingRect;\n","import { __extends } from \"tslib\";\nimport Displayble from './Displayable';\nimport BoundingRect from '../core/BoundingRect';\nvar m = [];\nvar IncrementalDisplayable = (function (_super) {\n    __extends(IncrementalDisplayable, _super);\n    function IncrementalDisplayable() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.notClear = true;\n        _this.incremental = true;\n        _this._displayables = [];\n        _this._temporaryDisplayables = [];\n        _this._cursor = 0;\n        return _this;\n    }\n    IncrementalDisplayable.prototype.traverse = function (cb, context) {\n        cb.call(context, this);\n    };\n    IncrementalDisplayable.prototype.useStyle = function () {\n        this.style = {};\n    };\n    IncrementalDisplayable.prototype.getCursor = function () {\n        return this._cursor;\n    };\n    IncrementalDisplayable.prototype.innerAfterBrush = function () {\n        this._cursor = this._displayables.length;\n    };\n    IncrementalDisplayable.prototype.clearDisplaybles = function () {\n        this._displayables = [];\n        this._temporaryDisplayables = [];\n        this._cursor = 0;\n        this.markRedraw();\n        this.notClear = false;\n    };\n    IncrementalDisplayable.prototype.clearTemporalDisplayables = function () {\n        this._temporaryDisplayables = [];\n    };\n    IncrementalDisplayable.prototype.addDisplayable = function (displayable, notPersistent) {\n        if (notPersistent) {\n            this._temporaryDisplayables.push(displayable);\n        }\n        else {\n            this._displayables.push(displayable);\n        }\n        this.markRedraw();\n    };\n    IncrementalDisplayable.prototype.addDisplayables = function (displayables, notPersistent) {\n        notPersistent = notPersistent || false;\n        for (var i = 0; i < displayables.length; i++) {\n            this.addDisplayable(displayables[i], notPersistent);\n        }\n    };\n    IncrementalDisplayable.prototype.getDisplayables = function () {\n        return this._displayables;\n    };\n    IncrementalDisplayable.prototype.getTemporalDisplayables = function () {\n        return this._temporaryDisplayables;\n    };\n    IncrementalDisplayable.prototype.eachPendingDisplayable = function (cb) {\n        for (var i = this._cursor; i < this._displayables.length; i++) {\n            cb && cb(this._displayables[i]);\n        }\n        for (var i = 0; i < this._temporaryDisplayables.length; i++) {\n            cb && cb(this._temporaryDisplayables[i]);\n        }\n    };\n    IncrementalDisplayable.prototype.update = function () {\n        this.updateTransform();\n        for (var i = this._cursor; i < this._displayables.length; i++) {\n            var displayable = this._displayables[i];\n            displayable.parent = this;\n            displayable.update();\n            displayable.parent = null;\n        }\n        for (var i = 0; i < this._temporaryDisplayables.length; i++) {\n            var displayable = this._temporaryDisplayables[i];\n            displayable.parent = this;\n            displayable.update();\n            displayable.parent = null;\n        }\n    };\n    IncrementalDisplayable.prototype.getBoundingRect = function () {\n        if (!this._rect) {\n            var rect = new BoundingRect(Infinity, Infinity, -Infinity, -Infinity);\n            for (var i = 0; i < this._displayables.length; i++) {\n                var displayable = this._displayables[i];\n                var childRect = displayable.getBoundingRect().clone();\n                if (displayable.needLocalTransform()) {\n                    childRect.applyTransform(displayable.getLocalTransform(m));\n                }\n                rect.union(childRect);\n            }\n            this._rect = rect;\n        }\n        return this._rect;\n    };\n    IncrementalDisplayable.prototype.contain = function (x, y) {\n        var localPos = this.transformCoordToLocal(x, y);\n        var rect = this.getBoundingRect();\n        if (rect.contain(localPos[0], localPos[1])) {\n            for (var i = 0; i < this._displayables.length; i++) {\n                var displayable = this._displayables[i];\n                if (displayable.contain(x, y)) {\n                    return true;\n                }\n            }\n        }\n        return false;\n    };\n    return IncrementalDisplayable;\n}(Displayble));\nexport default IncrementalDisplayable;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as pathTool from 'zrender/lib/tool/path';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport * as vector from 'zrender/lib/core/vector';\nimport Path from 'zrender/lib/graphic/Path';\nimport Transformable from 'zrender/lib/core/Transformable';\nimport ZRImage from 'zrender/lib/graphic/Image';\nimport Group from 'zrender/lib/graphic/Group';\nimport ZRText from 'zrender/lib/graphic/Text';\nimport Circle from 'zrender/lib/graphic/shape/Circle';\nimport Ellipse from 'zrender/lib/graphic/shape/Ellipse';\nimport Sector from 'zrender/lib/graphic/shape/Sector';\nimport Ring from 'zrender/lib/graphic/shape/Ring';\nimport Polygon from 'zrender/lib/graphic/shape/Polygon';\nimport Polyline from 'zrender/lib/graphic/shape/Polyline';\nimport Rect from 'zrender/lib/graphic/shape/Rect';\nimport Line from 'zrender/lib/graphic/shape/Line';\nimport BezierCurve from 'zrender/lib/graphic/shape/BezierCurve';\nimport Arc from 'zrender/lib/graphic/shape/Arc';\nimport CompoundPath from 'zrender/lib/graphic/CompoundPath';\nimport LinearGradient from 'zrender/lib/graphic/LinearGradient';\nimport RadialGradient from 'zrender/lib/graphic/RadialGradient';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport OrientedBoundingRect from 'zrender/lib/core/OrientedBoundingRect';\nimport Point from 'zrender/lib/core/Point';\nimport IncrementalDisplayable from 'zrender/lib/graphic/IncrementalDisplayable';\nimport * as subPixelOptimizeUtil from 'zrender/lib/graphic/helper/subPixelOptimize';\nimport { extend, isArrayLike, map, defaults, isObject, retrieve2 } from 'zrender/lib/core/util';\nimport { getECData } from './innerStore';\nvar mathMax = Math.max;\nvar mathMin = Math.min;\nvar _customShapeMap = {};\nexport function extendShape(opts) {\n  return Path.extend(opts);\n}\nvar extendPathFromString = pathTool.extendFromString;\nexport function extendPath(pathData, opts) {\n  return extendPathFromString(pathData, opts);\n}\nexport function registerShape(name, ShapeClass) {\n  _customShapeMap[name] = ShapeClass;\n}\nexport function getShapeClass(name) {\n  if (_customShapeMap.hasOwnProperty(name)) {\n    return _customShapeMap[name];\n  }\n}\nexport function makePath(pathData, opts, rect, layout) {\n  var path = pathTool.createFromString(pathData, opts);\n\n  if (rect) {\n    if (layout === 'center') {\n      rect = centerGraphic(rect, path.getBoundingRect());\n    }\n\n    resizePath(path, rect);\n  }\n\n  return path;\n}\nexport function makeImage(imageUrl, rect, layout) {\n  var zrImg = new ZRImage({\n    style: {\n      image: imageUrl,\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height\n    },\n    onload: function (img) {\n      if (layout === 'center') {\n        var boundingRect = {\n          width: img.width,\n          height: img.height\n        };\n        zrImg.setStyle(centerGraphic(rect, boundingRect));\n      }\n    }\n  });\n  return zrImg;\n}\n\nfunction centerGraphic(rect, boundingRect) {\n  var aspect = boundingRect.width / boundingRect.height;\n  var width = rect.height * aspect;\n  var height;\n\n  if (width <= rect.width) {\n    height = rect.height;\n  } else {\n    width = rect.width;\n    height = width / aspect;\n  }\n\n  var cx = rect.x + rect.width / 2;\n  var cy = rect.y + rect.height / 2;\n  return {\n    x: cx - width / 2,\n    y: cy - height / 2,\n    width: width,\n    height: height\n  };\n}\n\nexport var mergePath = pathTool.mergePath;\nexport function resizePath(path, rect) {\n  if (!path.applyTransform) {\n    return;\n  }\n\n  var pathRect = path.getBoundingRect();\n  var m = pathRect.calculateTransform(rect);\n  path.applyTransform(m);\n}\nexport function subPixelOptimizeLine(param) {\n  subPixelOptimizeUtil.subPixelOptimizeLine(param.shape, param.shape, param.style);\n  return param;\n}\nexport function subPixelOptimizeRect(param) {\n  subPixelOptimizeUtil.subPixelOptimizeRect(param.shape, param.shape, param.style);\n  return param;\n}\nexport var subPixelOptimize = subPixelOptimizeUtil.subPixelOptimize;\n\nfunction animateOrSetProps(animationType, el, props, animatableModel, dataIndex, cb, during) {\n  var isFrom = false;\n  var removeOpt;\n\n  if (typeof dataIndex === 'function') {\n    during = cb;\n    cb = dataIndex;\n    dataIndex = null;\n  } else if (isObject(dataIndex)) {\n    cb = dataIndex.cb;\n    during = dataIndex.during;\n    isFrom = dataIndex.isFrom;\n    removeOpt = dataIndex.removeOpt;\n    dataIndex = dataIndex.dataIndex;\n  }\n\n  var isUpdate = animationType === 'update';\n  var isRemove = animationType === 'remove';\n  var animationPayload;\n\n  if (animatableModel && animatableModel.ecModel) {\n    var updatePayload = animatableModel.ecModel.getUpdatePayload();\n    animationPayload = updatePayload && updatePayload.animation;\n  }\n\n  var animationEnabled = animatableModel && animatableModel.isAnimationEnabled();\n\n  if (!isRemove) {\n    el.stopAnimation('remove');\n  }\n\n  if (animationEnabled) {\n    var duration = void 0;\n    var animationEasing = void 0;\n    var animationDelay = void 0;\n\n    if (animationPayload) {\n      duration = animationPayload.duration || 0;\n      animationEasing = animationPayload.easing || 'cubicOut';\n      animationDelay = animationPayload.delay || 0;\n    } else if (isRemove) {\n      removeOpt = removeOpt || {};\n      duration = retrieve2(removeOpt.duration, 200);\n      animationEasing = retrieve2(removeOpt.easing, 'cubicOut');\n      animationDelay = 0;\n    } else {\n      duration = animatableModel.getShallow(isUpdate ? 'animationDurationUpdate' : 'animationDuration');\n      animationEasing = animatableModel.getShallow(isUpdate ? 'animationEasingUpdate' : 'animationEasing');\n      animationDelay = animatableModel.getShallow(isUpdate ? 'animationDelayUpdate' : 'animationDelay');\n    }\n\n    if (typeof animationDelay === 'function') {\n      animationDelay = animationDelay(dataIndex, animatableModel.getAnimationDelayParams ? animatableModel.getAnimationDelayParams(el, dataIndex) : null);\n    }\n\n    if (typeof duration === 'function') {\n      duration = duration(dataIndex);\n    }\n\n    duration > 0 ? isFrom ? el.animateFrom(props, {\n      duration: duration,\n      delay: animationDelay || 0,\n      easing: animationEasing,\n      done: cb,\n      force: !!cb || !!during,\n      scope: animationType,\n      during: during\n    }) : el.animateTo(props, {\n      duration: duration,\n      delay: animationDelay || 0,\n      easing: animationEasing,\n      done: cb,\n      force: !!cb || !!during,\n      setToFinal: true,\n      scope: animationType,\n      during: during\n    }) : (el.stopAnimation(), !isFrom && el.attr(props), cb && cb());\n  } else {\n    el.stopAnimation();\n    !isFrom && el.attr(props);\n    during && during(1);\n    cb && cb();\n  }\n}\n\nfunction updateProps(el, props, animatableModel, dataIndex, cb, during) {\n  animateOrSetProps('update', el, props, animatableModel, dataIndex, cb, during);\n}\n\nexport { updateProps };\nexport function initProps(el, props, animatableModel, dataIndex, cb, during) {\n  animateOrSetProps('init', el, props, animatableModel, dataIndex, cb, during);\n}\nexport function removeElement(el, props, animatableModel, dataIndex, cb, during) {\n  if (isElementRemoved(el)) {\n    return;\n  }\n\n  animateOrSetProps('remove', el, props, animatableModel, dataIndex, cb, during);\n}\n\nfunction fadeOutDisplayable(el, animatableModel, dataIndex, done) {\n  el.removeTextContent();\n  el.removeTextGuideLine();\n  removeElement(el, {\n    style: {\n      opacity: 0\n    }\n  }, animatableModel, dataIndex, done);\n}\n\nexport function removeElementWithFadeOut(el, animatableModel, dataIndex) {\n  function doRemove() {\n    el.parent && el.parent.remove(el);\n  }\n\n  if (!el.isGroup) {\n    fadeOutDisplayable(el, animatableModel, dataIndex, doRemove);\n  } else {\n    el.traverse(function (disp) {\n      if (!disp.isGroup) {\n        fadeOutDisplayable(disp, animatableModel, dataIndex, doRemove);\n      }\n    });\n  }\n}\nexport function isElementRemoved(el) {\n  if (!el.__zr) {\n    return true;\n  }\n\n  for (var i = 0; i < el.animators.length; i++) {\n    var animator = el.animators[i];\n\n    if (animator.scope === 'remove') {\n      return true;\n    }\n  }\n\n  return false;\n}\nexport function getTransform(target, ancestor) {\n  var mat = matrix.identity([]);\n\n  while (target && target !== ancestor) {\n    matrix.mul(mat, target.getLocalTransform(), mat);\n    target = target.parent;\n  }\n\n  return mat;\n}\nexport function applyTransform(target, transform, invert) {\n  if (transform && !isArrayLike(transform)) {\n    transform = Transformable.getLocalTransform(transform);\n  }\n\n  if (invert) {\n    transform = matrix.invert([], transform);\n  }\n\n  return vector.applyTransform([], target, transform);\n}\nexport function transformDirection(direction, transform, invert) {\n  var hBase = transform[4] === 0 || transform[5] === 0 || transform[0] === 0 ? 1 : Math.abs(2 * transform[4] / transform[0]);\n  var vBase = transform[4] === 0 || transform[5] === 0 || transform[2] === 0 ? 1 : Math.abs(2 * transform[4] / transform[2]);\n  var vertex = [direction === 'left' ? -hBase : direction === 'right' ? hBase : 0, direction === 'top' ? -vBase : direction === 'bottom' ? vBase : 0];\n  vertex = applyTransform(vertex, transform, invert);\n  return Math.abs(vertex[0]) > Math.abs(vertex[1]) ? vertex[0] > 0 ? 'right' : 'left' : vertex[1] > 0 ? 'bottom' : 'top';\n}\n\nfunction isNotGroup(el) {\n  return !el.isGroup;\n}\n\nfunction isPath(el) {\n  return el.shape != null;\n}\n\nexport function groupTransition(g1, g2, animatableModel) {\n  if (!g1 || !g2) {\n    return;\n  }\n\n  function getElMap(g) {\n    var elMap = {};\n    g.traverse(function (el) {\n      if (isNotGroup(el) && el.anid) {\n        elMap[el.anid] = el;\n      }\n    });\n    return elMap;\n  }\n\n  function getAnimatableProps(el) {\n    var obj = {\n      x: el.x,\n      y: el.y,\n      rotation: el.rotation\n    };\n\n    if (isPath(el)) {\n      obj.shape = extend({}, el.shape);\n    }\n\n    return obj;\n  }\n\n  var elMap1 = getElMap(g1);\n  g2.traverse(function (el) {\n    if (isNotGroup(el) && el.anid) {\n      var oldEl = elMap1[el.anid];\n\n      if (oldEl) {\n        var newProp = getAnimatableProps(el);\n        el.attr(getAnimatableProps(oldEl));\n        updateProps(el, newProp, animatableModel, getECData(el).dataIndex);\n      }\n    }\n  });\n}\nexport function clipPointsByRect(points, rect) {\n  return map(points, function (point) {\n    var x = point[0];\n    x = mathMax(x, rect.x);\n    x = mathMin(x, rect.x + rect.width);\n    var y = point[1];\n    y = mathMax(y, rect.y);\n    y = mathMin(y, rect.y + rect.height);\n    return [x, y];\n  });\n}\nexport function clipRectByRect(targetRect, rect) {\n  var x = mathMax(targetRect.x, rect.x);\n  var x2 = mathMin(targetRect.x + targetRect.width, rect.x + rect.width);\n  var y = mathMax(targetRect.y, rect.y);\n  var y2 = mathMin(targetRect.y + targetRect.height, rect.y + rect.height);\n\n  if (x2 >= x && y2 >= y) {\n    return {\n      x: x,\n      y: y,\n      width: x2 - x,\n      height: y2 - y\n    };\n  }\n}\nexport function createIcon(iconStr, opt, rect) {\n  var innerOpts = extend({\n    rectHover: true\n  }, opt);\n  var style = innerOpts.style = {\n    strokeNoScale: true\n  };\n  rect = rect || {\n    x: -1,\n    y: -1,\n    width: 2,\n    height: 2\n  };\n\n  if (iconStr) {\n    return iconStr.indexOf('image://') === 0 ? (style.image = iconStr.slice(8), defaults(style, rect), new ZRImage(innerOpts)) : makePath(iconStr.replace('path://', ''), innerOpts, rect, 'center');\n  }\n}\nexport function linePolygonIntersect(a1x, a1y, a2x, a2y, points) {\n  for (var i = 0, p2 = points[points.length - 1]; i < points.length; i++) {\n    var p = points[i];\n\n    if (lineLineIntersect(a1x, a1y, a2x, a2y, p[0], p[1], p2[0], p2[1])) {\n      return true;\n    }\n\n    p2 = p;\n  }\n}\nexport function lineLineIntersect(a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y) {\n  var mx = a2x - a1x;\n  var my = a2y - a1y;\n  var nx = b2x - b1x;\n  var ny = b2y - b1y;\n  var nmCrossProduct = crossProduct2d(nx, ny, mx, my);\n\n  if (nearZero(nmCrossProduct)) {\n    return false;\n  }\n\n  var b1a1x = a1x - b1x;\n  var b1a1y = a1y - b1y;\n  var q = crossProduct2d(b1a1x, b1a1y, mx, my) / nmCrossProduct;\n\n  if (q < 0 || q > 1) {\n    return false;\n  }\n\n  var p = crossProduct2d(b1a1x, b1a1y, nx, ny) / nmCrossProduct;\n\n  if (p < 0 || p > 1) {\n    return false;\n  }\n\n  return true;\n}\n\nfunction crossProduct2d(x1, y1, x2, y2) {\n  return x1 * y2 - x2 * y1;\n}\n\nfunction nearZero(val) {\n  return val <= 1e-6 && val >= -1e-6;\n}\n\nregisterShape('circle', Circle);\nregisterShape('ellipse', Ellipse);\nregisterShape('sector', Sector);\nregisterShape('ring', Ring);\nregisterShape('polygon', Polygon);\nregisterShape('polyline', Polyline);\nregisterShape('rect', Rect);\nregisterShape('line', Line);\nregisterShape('bezierCurve', BezierCurve);\nregisterShape('arc', Arc);\nexport { Group, ZRImage as Image, ZRText as Text, Circle, Ellipse, Sector, Ring, Polygon, Polyline, Rect, Line, BezierCurve, Arc, IncrementalDisplayable, CompoundPath, LinearGradient, RadialGradient, BoundingRect, OrientedBoundingRect, Point, Path };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ZRText from 'zrender/lib/graphic/Text';\nimport { isFunction, retrieve2, extend, keys, trim } from 'zrender/lib/core/util';\nimport { SPECIAL_STATES, DISPLAY_STATES } from '../util/states';\nimport { deprecateReplaceLog } from '../util/log';\nimport { makeInner, interpolateRawValues } from '../util/model';\nimport { initProps, updateProps } from '../util/graphic';\nvar EMPTY_OBJ = {};\nexport function setLabelText(label, labelTexts) {\n  for (var i = 0; i < SPECIAL_STATES.length; i++) {\n    var stateName = SPECIAL_STATES[i];\n    var text = labelTexts[stateName];\n    var state = label.ensureState(stateName);\n    state.style = state.style || {};\n    state.style.text = text;\n  }\n\n  var oldStates = label.currentStates.slice();\n  label.clearStates(true);\n  label.setStyle({\n    text: labelTexts.normal\n  });\n  label.useStates(oldStates, true);\n}\n\nfunction getLabelText(opt, stateModels, interpolatedValue) {\n  var labelFetcher = opt.labelFetcher;\n  var labelDataIndex = opt.labelDataIndex;\n  var labelDimIndex = opt.labelDimIndex;\n  var normalModel = stateModels.normal;\n  var baseText;\n\n  if (labelFetcher) {\n    baseText = labelFetcher.getFormattedLabel(labelDataIndex, 'normal', null, labelDimIndex, normalModel && normalModel.get('formatter'), interpolatedValue != null ? {\n      interpolatedValue: interpolatedValue\n    } : null);\n  }\n\n  if (baseText == null) {\n    baseText = isFunction(opt.defaultText) ? opt.defaultText(labelDataIndex, opt, interpolatedValue) : opt.defaultText;\n  }\n\n  var statesText = {\n    normal: baseText\n  };\n\n  for (var i = 0; i < SPECIAL_STATES.length; i++) {\n    var stateName = SPECIAL_STATES[i];\n    var stateModel = stateModels[stateName];\n    statesText[stateName] = retrieve2(labelFetcher ? labelFetcher.getFormattedLabel(labelDataIndex, stateName, null, labelDimIndex, stateModel && stateModel.get('formatter')) : null, baseText);\n  }\n\n  return statesText;\n}\n\nfunction setLabelStyle(targetEl, labelStatesModels, opt, stateSpecified) {\n  opt = opt || EMPTY_OBJ;\n  var isSetOnText = targetEl instanceof ZRText;\n  var needsCreateText = false;\n\n  for (var i = 0; i < DISPLAY_STATES.length; i++) {\n    var stateModel = labelStatesModels[DISPLAY_STATES[i]];\n\n    if (stateModel && stateModel.getShallow('show')) {\n      needsCreateText = true;\n      break;\n    }\n  }\n\n  var textContent = isSetOnText ? targetEl : targetEl.getTextContent();\n\n  if (needsCreateText) {\n    if (!isSetOnText) {\n      if (!textContent) {\n        textContent = new ZRText();\n        targetEl.setTextContent(textContent);\n      }\n\n      if (targetEl.stateProxy) {\n        textContent.stateProxy = targetEl.stateProxy;\n      }\n    }\n\n    var labelStatesTexts = getLabelText(opt, labelStatesModels);\n    var normalModel = labelStatesModels.normal;\n    var showNormal = !!normalModel.getShallow('show');\n    var normalStyle = createTextStyle(normalModel, stateSpecified && stateSpecified.normal, opt, false, !isSetOnText);\n    normalStyle.text = labelStatesTexts.normal;\n\n    if (!isSetOnText) {\n      targetEl.setTextConfig(createTextConfig(normalModel, opt, false));\n    }\n\n    for (var i = 0; i < SPECIAL_STATES.length; i++) {\n      var stateName = SPECIAL_STATES[i];\n      var stateModel = labelStatesModels[stateName];\n\n      if (stateModel) {\n        var stateObj = textContent.ensureState(stateName);\n        var stateShow = !!retrieve2(stateModel.getShallow('show'), showNormal);\n\n        if (stateShow !== showNormal) {\n          stateObj.ignore = !stateShow;\n        }\n\n        stateObj.style = createTextStyle(stateModel, stateSpecified && stateSpecified[stateName], opt, true, !isSetOnText);\n        stateObj.style.text = labelStatesTexts[stateName];\n\n        if (!isSetOnText) {\n          var targetElEmphasisState = targetEl.ensureState(stateName);\n          targetElEmphasisState.textConfig = createTextConfig(stateModel, opt, true);\n        }\n      }\n    }\n\n    textContent.silent = !!normalModel.getShallow('silent');\n\n    if (textContent.style.x != null) {\n      normalStyle.x = textContent.style.x;\n    }\n\n    if (textContent.style.y != null) {\n      normalStyle.y = textContent.style.y;\n    }\n\n    textContent.ignore = !showNormal;\n    textContent.useStyle(normalStyle);\n    textContent.dirty();\n\n    if (opt.enableTextSetter) {\n      labelInner(textContent).setLabelText = function (interpolatedValue) {\n        var labelStatesTexts = getLabelText(opt, labelStatesModels, interpolatedValue);\n        setLabelText(textContent, labelStatesTexts);\n      };\n    }\n  } else if (textContent) {\n    textContent.ignore = true;\n  }\n\n  targetEl.dirty();\n}\n\nexport { setLabelStyle };\nexport function getLabelStatesModels(itemModel, labelName) {\n  labelName = labelName || 'label';\n  var statesModels = {\n    normal: itemModel.getModel(labelName)\n  };\n\n  for (var i = 0; i < SPECIAL_STATES.length; i++) {\n    var stateName = SPECIAL_STATES[i];\n    statesModels[stateName] = itemModel.getModel([stateName, labelName]);\n  }\n\n  return statesModels;\n}\nexport function createTextStyle(textStyleModel, specifiedTextStyle, opt, isNotNormal, isAttached) {\n  var textStyle = {};\n  setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached);\n  specifiedTextStyle && extend(textStyle, specifiedTextStyle);\n  return textStyle;\n}\nexport function createTextConfig(textStyleModel, opt, isNotNormal) {\n  opt = opt || {};\n  var textConfig = {};\n  var labelPosition;\n  var labelRotate = textStyleModel.getShallow('rotate');\n  var labelDistance = retrieve2(textStyleModel.getShallow('distance'), isNotNormal ? null : 5);\n  var labelOffset = textStyleModel.getShallow('offset');\n  labelPosition = textStyleModel.getShallow('position') || (isNotNormal ? null : 'inside');\n  labelPosition === 'outside' && (labelPosition = opt.defaultOutsidePosition || 'top');\n\n  if (labelPosition != null) {\n    textConfig.position = labelPosition;\n  }\n\n  if (labelOffset != null) {\n    textConfig.offset = labelOffset;\n  }\n\n  if (labelRotate != null) {\n    labelRotate *= Math.PI / 180;\n    textConfig.rotation = labelRotate;\n  }\n\n  if (labelDistance != null) {\n    textConfig.distance = labelDistance;\n  }\n\n  textConfig.outsideFill = textStyleModel.get('color') === 'inherit' ? opt.inheritColor || null : 'auto';\n  return textConfig;\n}\n\nfunction setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached) {\n  opt = opt || EMPTY_OBJ;\n  var ecModel = textStyleModel.ecModel;\n  var globalTextStyle = ecModel && ecModel.option.textStyle;\n  var richItemNames = getRichItemNames(textStyleModel);\n  var richResult;\n\n  if (richItemNames) {\n    richResult = {};\n\n    for (var name_1 in richItemNames) {\n      if (richItemNames.hasOwnProperty(name_1)) {\n        var richTextStyle = textStyleModel.getModel(['rich', name_1]);\n        setTokenTextStyle(richResult[name_1] = {}, richTextStyle, globalTextStyle, opt, isNotNormal, isAttached, false, true);\n      }\n    }\n  }\n\n  if (richResult) {\n    textStyle.rich = richResult;\n  }\n\n  var overflow = textStyleModel.get('overflow');\n\n  if (overflow) {\n    textStyle.overflow = overflow;\n  }\n\n  var margin = textStyleModel.get('minMargin');\n\n  if (margin != null) {\n    textStyle.margin = margin;\n  }\n\n  setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, true, false);\n}\n\nfunction getRichItemNames(textStyleModel) {\n  var richItemNameMap;\n\n  while (textStyleModel && textStyleModel !== textStyleModel.ecModel) {\n    var rich = (textStyleModel.option || EMPTY_OBJ).rich;\n\n    if (rich) {\n      richItemNameMap = richItemNameMap || {};\n      var richKeys = keys(rich);\n\n      for (var i = 0; i < richKeys.length; i++) {\n        var richKey = richKeys[i];\n        richItemNameMap[richKey] = 1;\n      }\n    }\n\n    textStyleModel = textStyleModel.parentModel;\n  }\n\n  return richItemNameMap;\n}\n\nvar TEXT_PROPS_WITH_GLOBAL = ['fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY'];\nvar TEXT_PROPS_SELF = ['align', 'lineHeight', 'width', 'height', 'tag', 'verticalAlign'];\nvar TEXT_PROPS_BOX = ['padding', 'borderWidth', 'borderRadius', 'borderDashOffset', 'backgroundColor', 'borderColor', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'];\n\nfunction setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, isBlock, inRich) {\n  globalTextStyle = !isNotNormal && globalTextStyle || EMPTY_OBJ;\n  var inheritColor = opt && opt.inheritColor;\n  var fillColor = textStyleModel.getShallow('color');\n  var strokeColor = textStyleModel.getShallow('textBorderColor');\n  var opacity = retrieve2(textStyleModel.getShallow('opacity'), globalTextStyle.opacity);\n\n  if (fillColor === 'inherit' || fillColor === 'auto') {\n    if (process.env.NODE_ENV !== 'production') {\n      if (fillColor === 'auto') {\n        deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\n      }\n    }\n\n    if (inheritColor) {\n      fillColor = inheritColor;\n    } else {\n      fillColor = null;\n    }\n  }\n\n  if (strokeColor === 'inherit' || strokeColor === 'auto') {\n    if (process.env.NODE_ENV !== 'production') {\n      if (strokeColor === 'auto') {\n        deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\n      }\n    }\n\n    if (inheritColor) {\n      strokeColor = inheritColor;\n    } else {\n      strokeColor = null;\n    }\n  }\n\n  if (!isAttached) {\n    fillColor = fillColor || globalTextStyle.color;\n    strokeColor = strokeColor || globalTextStyle.textBorderColor;\n  }\n\n  if (fillColor != null) {\n    textStyle.fill = fillColor;\n  }\n\n  if (strokeColor != null) {\n    textStyle.stroke = strokeColor;\n  }\n\n  var textBorderWidth = retrieve2(textStyleModel.getShallow('textBorderWidth'), globalTextStyle.textBorderWidth);\n\n  if (textBorderWidth != null) {\n    textStyle.lineWidth = textBorderWidth;\n  }\n\n  var textBorderType = retrieve2(textStyleModel.getShallow('textBorderType'), globalTextStyle.textBorderType);\n\n  if (textBorderType != null) {\n    textStyle.lineDash = textBorderType;\n  }\n\n  var textBorderDashOffset = retrieve2(textStyleModel.getShallow('textBorderDashOffset'), globalTextStyle.textBorderDashOffset);\n\n  if (textBorderDashOffset != null) {\n    textStyle.lineDashOffset = textBorderDashOffset;\n  }\n\n  if (!isNotNormal && opacity == null && !inRich) {\n    opacity = opt && opt.defaultOpacity;\n  }\n\n  if (opacity != null) {\n    textStyle.opacity = opacity;\n  }\n\n  if (!isNotNormal && !isAttached) {\n    if (textStyle.fill == null && opt.inheritColor) {\n      textStyle.fill = opt.inheritColor;\n    }\n  }\n\n  for (var i = 0; i < TEXT_PROPS_WITH_GLOBAL.length; i++) {\n    var key = TEXT_PROPS_WITH_GLOBAL[i];\n    var val = retrieve2(textStyleModel.getShallow(key), globalTextStyle[key]);\n\n    if (val != null) {\n      textStyle[key] = val;\n    }\n  }\n\n  for (var i = 0; i < TEXT_PROPS_SELF.length; i++) {\n    var key = TEXT_PROPS_SELF[i];\n    var val = textStyleModel.getShallow(key);\n\n    if (val != null) {\n      textStyle[key] = val;\n    }\n  }\n\n  if (textStyle.verticalAlign == null) {\n    var baseline = textStyleModel.getShallow('baseline');\n\n    if (baseline != null) {\n      textStyle.verticalAlign = baseline;\n    }\n  }\n\n  if (!isBlock || !opt.disableBox) {\n    for (var i = 0; i < TEXT_PROPS_BOX.length; i++) {\n      var key = TEXT_PROPS_BOX[i];\n      var val = textStyleModel.getShallow(key);\n\n      if (val != null) {\n        textStyle[key] = val;\n      }\n    }\n\n    var borderType = textStyleModel.getShallow('borderType');\n\n    if (borderType != null) {\n      textStyle.borderDash = borderType;\n    }\n\n    if ((textStyle.backgroundColor === 'auto' || textStyle.backgroundColor === 'inherit') && inheritColor) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (textStyle.backgroundColor === 'auto') {\n          deprecateReplaceLog('backgroundColor: \\'auto\\'', 'backgroundColor: \\'inherit\\'');\n        }\n      }\n\n      textStyle.backgroundColor = inheritColor;\n    }\n\n    if ((textStyle.borderColor === 'auto' || textStyle.borderColor === 'inherit') && inheritColor) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (textStyle.borderColor === 'auto') {\n          deprecateReplaceLog('borderColor: \\'auto\\'', 'borderColor: \\'inherit\\'');\n        }\n      }\n\n      textStyle.borderColor = inheritColor;\n    }\n  }\n}\n\nexport function getFont(opt, ecModel) {\n  var gTextStyleModel = ecModel && ecModel.getModel('textStyle');\n  return trim([opt.fontStyle || gTextStyleModel && gTextStyleModel.getShallow('fontStyle') || '', opt.fontWeight || gTextStyleModel && gTextStyleModel.getShallow('fontWeight') || '', (opt.fontSize || gTextStyleModel && gTextStyleModel.getShallow('fontSize') || 12) + 'px', opt.fontFamily || gTextStyleModel && gTextStyleModel.getShallow('fontFamily') || 'sans-serif'].join(' '));\n}\nexport var labelInner = makeInner();\nexport function setLabelValueAnimation(label, labelStatesModels, value, getDefaultText) {\n  if (!label) {\n    return;\n  }\n\n  var obj = labelInner(label);\n  obj.prevValue = obj.value;\n  obj.value = value;\n  var normalLabelModel = labelStatesModels.normal;\n  obj.valueAnimation = normalLabelModel.get('valueAnimation');\n\n  if (obj.valueAnimation) {\n    obj.precision = normalLabelModel.get('precision');\n    obj.defaultInterpolatedText = getDefaultText;\n    obj.statesModels = labelStatesModels;\n  }\n}\nexport function animateLabelValue(textEl, dataIndex, data, animatableModel, labelFetcher) {\n  var labelInnerStore = labelInner(textEl);\n\n  if (!labelInnerStore.valueAnimation) {\n    return;\n  }\n\n  var defaultInterpolatedText = labelInnerStore.defaultInterpolatedText;\n  var currValue = retrieve2(labelInnerStore.interpolatedValue, labelInnerStore.prevValue);\n  var targetValue = labelInnerStore.value;\n\n  function during(percent) {\n    var interpolated = interpolateRawValues(data, labelInnerStore.precision, currValue, targetValue, percent);\n    labelInnerStore.interpolatedValue = percent === 1 ? null : interpolated;\n    var labelText = getLabelText({\n      labelDataIndex: dataIndex,\n      labelFetcher: labelFetcher,\n      defaultText: defaultInterpolatedText ? defaultInterpolatedText(interpolated) : interpolated + ''\n    }, labelInnerStore.statesModels, interpolated);\n    setLabelText(textEl, labelText);\n  }\n\n  (currValue == null ? initProps : updateProps)(textEl, {}, animatableModel, dataIndex, null, during);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { getFont } from '../../label/labelStyle';\nimport ZRText from 'zrender/lib/graphic/Text';\nvar PATH_COLOR = ['textStyle', 'color'];\nvar tmpRichText = new ZRText();\n\nvar TextStyleMixin = function () {\n  function TextStyleMixin() {}\n\n  TextStyleMixin.prototype.getTextColor = function (isEmphasis) {\n    var ecModel = this.ecModel;\n    return this.getShallow('color') || (!isEmphasis && ecModel ? ecModel.get(PATH_COLOR) : null);\n  };\n\n  TextStyleMixin.prototype.getFont = function () {\n    return getFont({\n      fontStyle: this.getShallow('fontStyle'),\n      fontWeight: this.getShallow('fontWeight'),\n      fontSize: this.getShallow('fontSize'),\n      fontFamily: this.getShallow('fontFamily')\n    }, this.ecModel);\n  };\n\n  TextStyleMixin.prototype.getTextRect = function (text) {\n    tmpRichText.useStyle({\n      text: text,\n      fontStyle: this.getShallow('fontStyle'),\n      fontWeight: this.getShallow('fontWeight'),\n      fontSize: this.getShallow('fontSize'),\n      fontFamily: this.getShallow('fontFamily'),\n      verticalAlign: this.getShallow('verticalAlign') || this.getShallow('baseline'),\n      padding: this.getShallow('padding'),\n      lineHeight: this.getShallow('lineHeight'),\n      rich: this.getShallow('rich')\n    });\n    tmpRichText.update();\n    return tmpRichText.getBoundingRect();\n  };\n\n  return TextStyleMixin;\n}();\n\n;\nexport default TextStyleMixin;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport makeStyleMapper from './makeStyleMapper';\nexport var LINE_STYLE_KEY_MAP = [['lineWidth', 'width'], ['stroke', 'color'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor'], ['lineDash', 'type'], ['lineDashOffset', 'dashOffset'], ['lineCap', 'cap'], ['lineJoin', 'join'], ['miterLimit']];\nvar getLineStyle = makeStyleMapper(LINE_STYLE_KEY_MAP);\n\nvar LineStyleMixin = function () {\n  function LineStyleMixin() {}\n\n  LineStyleMixin.prototype.getLineStyle = function (excludes) {\n    return getLineStyle(this, excludes);\n  };\n\n  return LineStyleMixin;\n}();\n\n;\nexport { LineStyleMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport makeStyleMapper from './makeStyleMapper';\nexport var ITEM_STYLE_KEY_MAP = [['fill', 'color'], ['stroke', 'borderColor'], ['lineWidth', 'borderWidth'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor'], ['lineDash', 'borderType'], ['lineDashOffset', 'borderDashOffset'], ['lineCap', 'borderCap'], ['lineJoin', 'borderJoin'], ['miterLimit', 'borderMiterLimit']];\nvar getItemStyle = makeStyleMapper(ITEM_STYLE_KEY_MAP);\n\nvar ItemStyleMixin = function () {\n  function ItemStyleMixin() {}\n\n  ItemStyleMixin.prototype.getItemStyle = function (excludes, includes) {\n    return getItemStyle(this, excludes, includes);\n  };\n\n  return ItemStyleMixin;\n}();\n\nexport { ItemStyleMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport env from 'zrender/lib/core/env';\nimport { enableClassExtend, enableClassCheck } from '../util/clazz';\nimport { AreaStyleMixin } from './mixin/areaStyle';\nimport TextStyleMixin from './mixin/textStyle';\nimport { LineStyleMixin } from './mixin/lineStyle';\nimport { ItemStyleMixin } from './mixin/itemStyle';\nimport { mixin, clone, merge } from 'zrender/lib/core/util';\n\nvar Model = function () {\n  function Model(option, parentModel, ecModel) {\n    this.parentModel = parentModel;\n    this.ecModel = ecModel;\n    this.option = option;\n  }\n\n  Model.prototype.init = function (option, parentModel, ecModel) {\n    var rest = [];\n\n    for (var _i = 3; _i < arguments.length; _i++) {\n      rest[_i - 3] = arguments[_i];\n    }\n  };\n\n  Model.prototype.mergeOption = function (option, ecModel) {\n    merge(this.option, option, true);\n  };\n\n  Model.prototype.get = function (path, ignoreParent) {\n    if (path == null) {\n      return this.option;\n    }\n\n    return this._doGet(this.parsePath(path), !ignoreParent && this.parentModel);\n  };\n\n  Model.prototype.getShallow = function (key, ignoreParent) {\n    var option = this.option;\n    var val = option == null ? option : option[key];\n\n    if (val == null && !ignoreParent) {\n      var parentModel = this.parentModel;\n\n      if (parentModel) {\n        val = parentModel.getShallow(key);\n      }\n    }\n\n    return val;\n  };\n\n  Model.prototype.getModel = function (path, parentModel) {\n    var hasPath = path != null;\n    var pathFinal = hasPath ? this.parsePath(path) : null;\n    var obj = hasPath ? this._doGet(pathFinal) : this.option;\n    parentModel = parentModel || this.parentModel && this.parentModel.getModel(this.resolveParentPath(pathFinal));\n    return new Model(obj, parentModel, this.ecModel);\n  };\n\n  Model.prototype.isEmpty = function () {\n    return this.option == null;\n  };\n\n  Model.prototype.restoreData = function () {};\n\n  Model.prototype.clone = function () {\n    var Ctor = this.constructor;\n    return new Ctor(clone(this.option));\n  };\n\n  Model.prototype.parsePath = function (path) {\n    if (typeof path === 'string') {\n      return path.split('.');\n    }\n\n    return path;\n  };\n\n  Model.prototype.resolveParentPath = function (path) {\n    return path;\n  };\n\n  Model.prototype.isAnimationEnabled = function () {\n    if (!env.node && this.option) {\n      if (this.option.animation != null) {\n        return !!this.option.animation;\n      } else if (this.parentModel) {\n        return this.parentModel.isAnimationEnabled();\n      }\n    }\n  };\n\n  Model.prototype._doGet = function (pathArr, parentModel) {\n    var obj = this.option;\n\n    if (!pathArr) {\n      return obj;\n    }\n\n    for (var i = 0; i < pathArr.length; i++) {\n      if (!pathArr[i]) {\n        continue;\n      }\n\n      obj = obj && typeof obj === 'object' ? obj[pathArr[i]] : null;\n\n      if (obj == null) {\n        break;\n      }\n    }\n\n    if (obj == null && parentModel) {\n      obj = parentModel._doGet(this.resolveParentPath(pathArr), parentModel.parentModel);\n    }\n\n    return obj;\n  };\n\n  return Model;\n}();\n\n;\nenableClassExtend(Model);\nenableClassCheck(Model);\nmixin(Model, LineStyleMixin);\nmixin(Model, ItemStyleMixin);\nmixin(Model, AreaStyleMixin);\nmixin(Model, TextStyleMixin);\nexport default Model;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parseClassType } from './clazz';\nimport { makePrintable } from './log';\nvar base = Math.round(Math.random() * 10);\nexport function getUID(type) {\n  return [type || '', base++].join('_');\n}\nexport function enableSubTypeDefaulter(target) {\n  var subTypeDefaulters = {};\n\n  target.registerSubTypeDefaulter = function (componentType, defaulter) {\n    var componentTypeInfo = parseClassType(componentType);\n    subTypeDefaulters[componentTypeInfo.main] = defaulter;\n  };\n\n  target.determineSubType = function (componentType, option) {\n    var type = option.type;\n\n    if (!type) {\n      var componentTypeMain = parseClassType(componentType).main;\n\n      if (target.hasSubTypes(componentType) && subTypeDefaulters[componentTypeMain]) {\n        type = subTypeDefaulters[componentTypeMain](option);\n      }\n    }\n\n    return type;\n  };\n}\nexport function enableTopologicalTravel(entity, dependencyGetter) {\n  entity.topologicalTravel = function (targetNameList, fullNameList, callback, context) {\n    if (!targetNameList.length) {\n      return;\n    }\n\n    var result = makeDepndencyGraph(fullNameList);\n    var graph = result.graph;\n    var noEntryList = result.noEntryList;\n    var targetNameSet = {};\n    zrUtil.each(targetNameList, function (name) {\n      targetNameSet[name] = true;\n    });\n\n    while (noEntryList.length) {\n      var currComponentType = noEntryList.pop();\n      var currVertex = graph[currComponentType];\n      var isInTargetNameSet = !!targetNameSet[currComponentType];\n\n      if (isInTargetNameSet) {\n        callback.call(context, currComponentType, currVertex.originalDeps.slice());\n        delete targetNameSet[currComponentType];\n      }\n\n      zrUtil.each(currVertex.successor, isInTargetNameSet ? removeEdgeAndAdd : removeEdge);\n    }\n\n    zrUtil.each(targetNameSet, function () {\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = makePrintable('Circle dependency may exists: ', targetNameSet, targetNameList, fullNameList);\n      }\n\n      throw new Error(errMsg);\n    });\n\n    function removeEdge(succComponentType) {\n      graph[succComponentType].entryCount--;\n\n      if (graph[succComponentType].entryCount === 0) {\n        noEntryList.push(succComponentType);\n      }\n    }\n\n    function removeEdgeAndAdd(succComponentType) {\n      targetNameSet[succComponentType] = true;\n      removeEdge(succComponentType);\n    }\n  };\n\n  function makeDepndencyGraph(fullNameList) {\n    var graph = {};\n    var noEntryList = [];\n    zrUtil.each(fullNameList, function (name) {\n      var thisItem = createDependencyGraphItem(graph, name);\n      var originalDeps = thisItem.originalDeps = dependencyGetter(name);\n      var availableDeps = getAvailableDependencies(originalDeps, fullNameList);\n      thisItem.entryCount = availableDeps.length;\n\n      if (thisItem.entryCount === 0) {\n        noEntryList.push(name);\n      }\n\n      zrUtil.each(availableDeps, function (dependentName) {\n        if (zrUtil.indexOf(thisItem.predecessor, dependentName) < 0) {\n          thisItem.predecessor.push(dependentName);\n        }\n\n        var thatItem = createDependencyGraphItem(graph, dependentName);\n\n        if (zrUtil.indexOf(thatItem.successor, dependentName) < 0) {\n          thatItem.successor.push(name);\n        }\n      });\n    });\n    return {\n      graph: graph,\n      noEntryList: noEntryList\n    };\n  }\n\n  function createDependencyGraphItem(graph, name) {\n    if (!graph[name]) {\n      graph[name] = {\n        predecessor: [],\n        successor: []\n      };\n    }\n\n    return graph[name];\n  }\n\n  function getAvailableDependencies(originalDeps, fullNameList) {\n    var availableDeps = [];\n    zrUtil.each(originalDeps, function (dep) {\n      zrUtil.indexOf(fullNameList, dep) >= 0 && availableDeps.push(dep);\n    });\n    return availableDeps;\n  }\n}\nexport function inheritDefaultOption(superOption, subOption) {\n  return zrUtil.merge(zrUtil.merge({}, superOption, true), subOption, true);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default {\n  time: {\n    month: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n    monthAbbr: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n    dayOfWeek: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n    dayOfWeekAbbr: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\n  },\n  legend: {\n    selector: {\n      all: 'All',\n      inverse: 'Inv'\n    }\n  },\n  toolbox: {\n    brush: {\n      title: {\n        rect: 'Box Select',\n        polygon: 'Lasso Select',\n        lineX: 'Horizontally Select',\n        lineY: 'Vertically Select',\n        keep: 'Keep Selections',\n        clear: 'Clear Selections'\n      }\n    },\n    dataView: {\n      title: 'Data View',\n      lang: ['Data View', 'Close', 'Refresh']\n    },\n    dataZoom: {\n      title: {\n        zoom: 'Zoom',\n        back: 'Zoom Reset'\n      }\n    },\n    magicType: {\n      title: {\n        line: 'Switch to Line Chart',\n        bar: 'Switch to Bar Chart',\n        stack: 'Stack',\n        tiled: 'Tile'\n      }\n    },\n    restore: {\n      title: 'Restore'\n    },\n    saveAsImage: {\n      title: 'Save as Image',\n      lang: ['Right Click to Save Image']\n    }\n  },\n  series: {\n    typeNames: {\n      pie: 'Pie chart',\n      bar: 'Bar chart',\n      line: 'Line chart',\n      scatter: 'Scatter plot',\n      effectScatter: 'Ripple scatter plot',\n      radar: 'Radar chart',\n      tree: 'Tree',\n      treemap: 'Treemap',\n      boxplot: 'Boxplot',\n      candlestick: 'Candlestick',\n      k: 'K line chart',\n      heatmap: 'Heat map',\n      map: 'Map',\n      parallel: 'Parallel coordinate map',\n      lines: 'Line graph',\n      graph: 'Relationship graph',\n      sankey: 'Sankey diagram',\n      funnel: 'Funnel chart',\n      gauge: 'Guage',\n      pictorialBar: 'Pictorial bar',\n      themeRiver: 'Theme River Map',\n      sunburst: 'Sunburst'\n    }\n  },\n  aria: {\n    general: {\n      withTitle: 'This is a chart about \"{title}\"',\n      withoutTitle: 'This is a chart'\n    },\n    series: {\n      single: {\n        prefix: '',\n        withName: ' with type {seriesType} named {seriesName}.',\n        withoutName: ' with type {seriesType}.'\n      },\n      multiple: {\n        prefix: '. It consists of {seriesCount} series count.',\n        withName: ' The {seriesId} series is a {seriesType} representing {seriesName}.',\n        withoutName: ' The {seriesId} series is a {seriesType}.',\n        separator: {\n          middle: '',\n          end: ''\n        }\n      }\n    },\n    data: {\n      allData: 'The data is as follows: ',\n      partialData: 'The first {displayCnt} items are: ',\n      withName: 'the data for {name} is {value}',\n      withoutName: '{value}',\n      separator: {\n        middle: ', ',\n        end: '. '\n      }\n    }\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default {\n  time: {\n    month: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],\n    monthAbbr: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\n    dayOfWeek: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],\n    dayOfWeekAbbr: ['日', '一', '二', '三', '四', '五', '六']\n  },\n  legend: {\n    selector: {\n      all: '全选',\n      inverse: '反选'\n    }\n  },\n  toolbox: {\n    brush: {\n      title: {\n        rect: '矩形选择',\n        polygon: '圈选',\n        lineX: '横向选择',\n        lineY: '纵向选择',\n        keep: '保持选择',\n        clear: '清除选择'\n      }\n    },\n    dataView: {\n      title: '数据视图',\n      lang: ['数据视图', '关闭', '刷新']\n    },\n    dataZoom: {\n      title: {\n        zoom: '区域缩放',\n        back: '区域缩放还原'\n      }\n    },\n    magicType: {\n      title: {\n        line: '切换为折线图',\n        bar: '切换为柱状图',\n        stack: '切换为堆叠',\n        tiled: '切换为平铺'\n      }\n    },\n    restore: {\n      title: '还原'\n    },\n    saveAsImage: {\n      title: '保存为图片',\n      lang: ['右键另存为图片']\n    }\n  },\n  series: {\n    typeNames: {\n      pie: '饼图',\n      bar: '柱状图',\n      line: '折线图',\n      scatter: '散点图',\n      effectScatter: '涟漪散点图',\n      radar: '雷达图',\n      tree: '树图',\n      treemap: '矩形树图',\n      boxplot: '箱型图',\n      candlestick: 'K线图',\n      k: 'K线图',\n      heatmap: '热力图',\n      map: '地图',\n      parallel: '平行坐标图',\n      lines: '线图',\n      graph: '关系图',\n      sankey: '桑基图',\n      funnel: '漏斗图',\n      gauge: '仪表盘图',\n      pictorialBar: '象形柱图',\n      themeRiver: '主题河流图',\n      sunburst: '旭日图'\n    }\n  },\n  aria: {\n    general: {\n      withTitle: '这是一个关于“{title}”的图表。',\n      withoutTitle: '这是一个图表,'\n    },\n    series: {\n      single: {\n        prefix: '',\n        withName: '图表类型是{seriesType},表示{seriesName}。',\n        withoutName: '图表类型是{seriesType}。'\n      },\n      multiple: {\n        prefix: '它由{seriesCount}个图表系列组成。',\n        withName: '第{seriesId}个系列是一个表示{seriesName}的{seriesType},',\n        withoutName: '第{seriesId}个系列是一个{seriesType},',\n        separator: {\n          middle: ';',\n          end: '。'\n        }\n      }\n    },\n    data: {\n      allData: '其数据是——',\n      partialData: '其中,前{displayCnt}项是——',\n      withName: '{name}的数据是{value}',\n      withoutName: '{value}',\n      separator: {\n        middle: ',',\n        end: ''\n      }\n    }\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Model from '../model/Model';\nimport env from 'zrender/lib/core/env';\nimport langEN from '../i18n/langEN';\nimport langZH from '../i18n/langZH';\nimport { isString, clone, merge } from 'zrender/lib/core/util';\nvar LOCALE_ZH = 'ZH';\nvar LOCALE_EN = 'EN';\nvar DEFAULT_LOCALE = LOCALE_EN;\nvar localeStorage = {};\nvar localeModels = {};\nexport var SYSTEM_LANG = !env.domSupported ? DEFAULT_LOCALE : function () {\n  var langStr = (document.documentElement.lang || navigator.language || navigator.browserLanguage).toUpperCase();\n  return langStr.indexOf(LOCALE_ZH) > -1 ? LOCALE_ZH : DEFAULT_LOCALE;\n}();\nexport function registerLocale(locale, localeObj) {\n  locale = locale.toUpperCase();\n  localeModels[locale] = new Model(localeObj);\n  localeStorage[locale] = localeObj;\n}\nexport function createLocaleObject(locale) {\n  if (isString(locale)) {\n    var localeObj = localeStorage[locale.toUpperCase()] || {};\n\n    if (locale === LOCALE_ZH || locale === LOCALE_EN) {\n      return clone(localeObj);\n    } else {\n      return merge(clone(localeObj), clone(localeStorage[DEFAULT_LOCALE]), false);\n    }\n  } else {\n    return merge(clone(locale), clone(localeStorage[DEFAULT_LOCALE]), false);\n  }\n}\nexport function getLocaleModel(lang) {\n  return localeModels[lang];\n}\nexport function getDefaultLocaleModel() {\n  return localeModels[DEFAULT_LOCALE];\n}\nregisterLocale(LOCALE_EN, langEN);\nregisterLocale(LOCALE_ZH, langZH);","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as numberUtil from './number';\nimport { getDefaultLocaleModel, getLocaleModel, SYSTEM_LANG } from '../core/locale';\nimport Model from '../model/Model';\nexport var ONE_SECOND = 1000;\nexport var ONE_MINUTE = ONE_SECOND * 60;\nexport var ONE_HOUR = ONE_MINUTE * 60;\nexport var ONE_DAY = ONE_HOUR * 24;\nexport var ONE_YEAR = ONE_DAY * 365;\nexport var defaultLeveledFormatter = {\n  year: '{yyyy}',\n  month: '{MMM}',\n  day: '{d}',\n  hour: '{HH}:{mm}',\n  minute: '{HH}:{mm}',\n  second: '{HH}:{mm}:{ss}',\n  millisecond: '{hh}:{mm}:{ss} {SSS}',\n  none: '{yyyy}-{MM}-{dd} {hh}:{mm}:{ss} {SSS}'\n};\nvar fullDayFormatter = '{yyyy}-{MM}-{dd}';\nexport var fullLeveledFormatter = {\n  year: '{yyyy}',\n  month: '{yyyy}-{MM}',\n  day: fullDayFormatter,\n  hour: fullDayFormatter + ' ' + defaultLeveledFormatter.hour,\n  minute: fullDayFormatter + ' ' + defaultLeveledFormatter.minute,\n  second: fullDayFormatter + ' ' + defaultLeveledFormatter.second,\n  millisecond: defaultLeveledFormatter.none\n};\nexport var primaryTimeUnits = ['year', 'month', 'day', 'hour', 'minute', 'second', 'millisecond'];\nexport var timeUnits = ['year', 'half-year', 'quarter', 'month', 'week', 'half-week', 'day', 'half-day', 'quarter-day', 'hour', 'minute', 'second', 'millisecond'];\nexport function pad(str, len) {\n  str += '';\n  return '0000'.substr(0, len - str.length) + str;\n}\nexport function getPrimaryTimeUnit(timeUnit) {\n  switch (timeUnit) {\n    case 'half-year':\n    case 'quarter':\n      return 'month';\n\n    case 'week':\n    case 'half-week':\n      return 'day';\n\n    case 'half-day':\n    case 'quarter-day':\n      return 'hour';\n\n    default:\n      return timeUnit;\n  }\n}\nexport function isPrimaryTimeUnit(timeUnit) {\n  return timeUnit === getPrimaryTimeUnit(timeUnit);\n}\nexport function getDefaultFormatPrecisionOfInterval(timeUnit) {\n  switch (timeUnit) {\n    case 'year':\n    case 'month':\n      return 'day';\n\n    case 'millisecond':\n      return 'millisecond';\n\n    default:\n      return 'second';\n  }\n}\nexport function format(time, template, isUTC, lang) {\n  var date = numberUtil.parseDate(time);\n  var y = date[fullYearGetterName(isUTC)]();\n  var M = date[monthGetterName(isUTC)]() + 1;\n  var q = Math.floor((M - 1) / 4) + 1;\n  var d = date[dateGetterName(isUTC)]();\n  var e = date['get' + (isUTC ? 'UTC' : '') + 'Day']();\n  var H = date[hoursGetterName(isUTC)]();\n  var h = (H - 1) % 12 + 1;\n  var m = date[minutesGetterName(isUTC)]();\n  var s = date[secondsGetterName(isUTC)]();\n  var S = date[millisecondsGetterName(isUTC)]();\n  var localeModel = lang instanceof Model ? lang : getLocaleModel(lang || SYSTEM_LANG) || getDefaultLocaleModel();\n  var timeModel = localeModel.getModel('time');\n  var month = timeModel.get('month');\n  var monthAbbr = timeModel.get('monthAbbr');\n  var dayOfWeek = timeModel.get('dayOfWeek');\n  var dayOfWeekAbbr = timeModel.get('dayOfWeekAbbr');\n  return (template || '').replace(/{yyyy}/g, y + '').replace(/{yy}/g, y % 100 + '').replace(/{Q}/g, q + '').replace(/{MMMM}/g, month[M - 1]).replace(/{MMM}/g, monthAbbr[M - 1]).replace(/{MM}/g, pad(M, 2)).replace(/{M}/g, M + '').replace(/{dd}/g, pad(d, 2)).replace(/{d}/g, d + '').replace(/{eeee}/g, dayOfWeek[e]).replace(/{ee}/g, dayOfWeekAbbr[e]).replace(/{e}/g, e + '').replace(/{HH}/g, pad(H, 2)).replace(/{H}/g, H + '').replace(/{hh}/g, pad(h + '', 2)).replace(/{h}/g, h + '').replace(/{mm}/g, pad(m, 2)).replace(/{m}/g, m + '').replace(/{ss}/g, pad(s, 2)).replace(/{s}/g, s + '').replace(/{SSS}/g, pad(S, 3)).replace(/{S}/g, S + '');\n}\nexport function leveledFormat(tick, idx, formatter, lang, isUTC) {\n  var template = null;\n\n  if (typeof formatter === 'string') {\n    template = formatter;\n  } else if (typeof formatter === 'function') {\n    template = formatter(tick.value, idx, {\n      level: tick.level\n    });\n  } else {\n    var defaults = zrUtil.extend({}, defaultLeveledFormatter);\n\n    if (tick.level > 0) {\n      for (var i = 0; i < primaryTimeUnits.length; ++i) {\n        defaults[primaryTimeUnits[i]] = \"{primary|\" + defaults[primaryTimeUnits[i]] + \"}\";\n      }\n    }\n\n    var mergedFormatter = formatter ? formatter.inherit === false ? formatter : zrUtil.defaults(formatter, defaults) : defaults;\n    var unit = getUnitFromValue(tick.value, isUTC);\n\n    if (mergedFormatter[unit]) {\n      template = mergedFormatter[unit];\n    } else if (mergedFormatter.inherit) {\n      var targetId = timeUnits.indexOf(unit);\n\n      for (var i = targetId - 1; i >= 0; --i) {\n        if (mergedFormatter[unit]) {\n          template = mergedFormatter[unit];\n          break;\n        }\n      }\n\n      template = template || defaults.none;\n    }\n\n    if (zrUtil.isArray(template)) {\n      var levelId = tick.level == null ? 0 : tick.level >= 0 ? tick.level : template.length + tick.level;\n      levelId = Math.min(levelId, template.length - 1);\n      template = template[levelId];\n    }\n  }\n\n  return format(new Date(tick.value), template, isUTC, lang);\n}\nexport function getUnitFromValue(value, isUTC) {\n  var date = numberUtil.parseDate(value);\n  var M = date[monthGetterName(isUTC)]() + 1;\n  var d = date[dateGetterName(isUTC)]();\n  var h = date[hoursGetterName(isUTC)]();\n  var m = date[minutesGetterName(isUTC)]();\n  var s = date[secondsGetterName(isUTC)]();\n  var S = date[millisecondsGetterName(isUTC)]();\n  var isSecond = S === 0;\n  var isMinute = isSecond && s === 0;\n  var isHour = isMinute && m === 0;\n  var isDay = isHour && h === 0;\n  var isMonth = isDay && d === 1;\n  var isYear = isMonth && M === 1;\n\n  if (isYear) {\n    return 'year';\n  } else if (isMonth) {\n    return 'month';\n  } else if (isDay) {\n    return 'day';\n  } else if (isHour) {\n    return 'hour';\n  } else if (isMinute) {\n    return 'minute';\n  } else if (isSecond) {\n    return 'second';\n  } else {\n    return 'millisecond';\n  }\n}\nexport function getUnitValue(value, unit, isUTC) {\n  var date = typeof value === 'number' ? numberUtil.parseDate(value) : value;\n  unit = unit || getUnitFromValue(value, isUTC);\n\n  switch (unit) {\n    case 'year':\n      return date[fullYearGetterName(isUTC)]();\n\n    case 'half-year':\n      return date[monthGetterName(isUTC)]() >= 6 ? 1 : 0;\n\n    case 'quarter':\n      return Math.floor((date[monthGetterName(isUTC)]() + 1) / 4);\n\n    case 'month':\n      return date[monthGetterName(isUTC)]();\n\n    case 'day':\n      return date[dateGetterName(isUTC)]();\n\n    case 'half-day':\n      return date[hoursGetterName(isUTC)]() / 24;\n\n    case 'hour':\n      return date[hoursGetterName(isUTC)]();\n\n    case 'minute':\n      return date[minutesGetterName(isUTC)]();\n\n    case 'second':\n      return date[secondsGetterName(isUTC)]();\n\n    case 'millisecond':\n      return date[millisecondsGetterName(isUTC)]();\n  }\n}\nexport function fullYearGetterName(isUTC) {\n  return isUTC ? 'getUTCFullYear' : 'getFullYear';\n}\nexport function monthGetterName(isUTC) {\n  return isUTC ? 'getUTCMonth' : 'getMonth';\n}\nexport function dateGetterName(isUTC) {\n  return isUTC ? 'getUTCDate' : 'getDate';\n}\nexport function hoursGetterName(isUTC) {\n  return isUTC ? 'getUTCHours' : 'getHours';\n}\nexport function minutesGetterName(isUTC) {\n  return isUTC ? 'getUTCMinutes' : 'getMinutes';\n}\nexport function secondsGetterName(isUTC) {\n  return isUTC ? 'getUTCSeconds' : 'getSeconds';\n}\nexport function millisecondsGetterName(isUTC) {\n  return isUTC ? 'getUTCSeconds' : 'getSeconds';\n}\nexport function fullYearSetterName(isUTC) {\n  return isUTC ? 'setUTCFullYear' : 'setFullYear';\n}\nexport function monthSetterName(isUTC) {\n  return isUTC ? 'setUTCMonth' : 'setMonth';\n}\nexport function dateSetterName(isUTC) {\n  return isUTC ? 'setUTCDate' : 'setDate';\n}\nexport function hoursSetterName(isUTC) {\n  return isUTC ? 'setUTCHours' : 'setHours';\n}\nexport function minutesSetterName(isUTC) {\n  return isUTC ? 'setUTCMinutes' : 'setMinutes';\n}\nexport function secondsSetterName(isUTC) {\n  return isUTC ? 'setUTCSeconds' : 'setSeconds';\n}\nexport function millisecondsSetterName(isUTC) {\n  return isUTC ? 'setUTCSeconds' : 'setSeconds';\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { Text } from '../util/graphic';\nimport { deprecateLog } from '../util/log';\nexport function getTextRect(text, font, align, verticalAlign, padding, rich, truncate, lineHeight) {\n  deprecateLog('getTextRect is deprecated.');\n  var textEl = new Text({\n    style: {\n      text: text,\n      font: font,\n      align: align,\n      verticalAlign: verticalAlign,\n      padding: padding,\n      rich: rich,\n      overflow: truncate ? 'truncate' : null,\n      lineHeight: lineHeight\n    }\n  });\n  return textEl.getBoundingRect();\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parseDate, isNumeric, numericToNumber } from './number';\nimport { format as timeFormat, pad } from './time';\nimport { deprecateReplaceLog } from './log';\nexport function addCommas(x) {\n  if (!isNumeric(x)) {\n    return zrUtil.isString(x) ? x : '-';\n  }\n\n  var parts = (x + '').split('.');\n  return parts[0].replace(/(\\d{1,3})(?=(?:\\d{3})+(?!\\d))/g, '$1,') + (parts.length > 1 ? '.' + parts[1] : '');\n}\nexport function toCamelCase(str, upperCaseFirst) {\n  str = (str || '').toLowerCase().replace(/-(.)/g, function (match, group1) {\n    return group1.toUpperCase();\n  });\n\n  if (upperCaseFirst && str) {\n    str = str.charAt(0).toUpperCase() + str.slice(1);\n  }\n\n  return str;\n}\nexport var normalizeCssArray = zrUtil.normalizeCssArray;\nvar replaceReg = /([&<>\"'])/g;\nvar replaceMap = {\n  '&': '&amp;',\n  '<': '&lt;',\n  '>': '&gt;',\n  '\"': '&quot;',\n  '\\'': '&#39;'\n};\nexport function encodeHTML(source) {\n  return source == null ? '' : (source + '').replace(replaceReg, function (str, c) {\n    return replaceMap[c];\n  });\n}\nexport function makeValueReadable(value, valueType, useUTC) {\n  var USER_READABLE_DEFUALT_TIME_PATTERN = 'yyyy-MM-dd hh:mm:ss';\n\n  function stringToUserReadable(str) {\n    return str && zrUtil.trim(str) ? str : '-';\n  }\n\n  function isNumberUserReadable(num) {\n    return !!(num != null && !isNaN(num) && isFinite(num));\n  }\n\n  var isTypeTime = valueType === 'time';\n  var isValueDate = value instanceof Date;\n\n  if (isTypeTime || isValueDate) {\n    var date = isTypeTime ? parseDate(value) : value;\n\n    if (!isNaN(+date)) {\n      return timeFormat(date, USER_READABLE_DEFUALT_TIME_PATTERN, useUTC);\n    } else if (isValueDate) {\n      return '-';\n    }\n  }\n\n  if (valueType === 'ordinal') {\n    return zrUtil.isStringSafe(value) ? stringToUserReadable(value) : zrUtil.isNumber(value) ? isNumberUserReadable(value) ? value + '' : '-' : '-';\n  }\n\n  var numericResult = numericToNumber(value);\n  return isNumberUserReadable(numericResult) ? addCommas(numericResult) : zrUtil.isStringSafe(value) ? stringToUserReadable(value) : '-';\n}\nvar TPL_VAR_ALIAS = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];\n\nvar wrapVar = function (varName, seriesIdx) {\n  return '{' + varName + (seriesIdx == null ? '' : seriesIdx) + '}';\n};\n\nexport function formatTpl(tpl, paramsList, encode) {\n  if (!zrUtil.isArray(paramsList)) {\n    paramsList = [paramsList];\n  }\n\n  var seriesLen = paramsList.length;\n\n  if (!seriesLen) {\n    return '';\n  }\n\n  var $vars = paramsList[0].$vars || [];\n\n  for (var i = 0; i < $vars.length; i++) {\n    var alias = TPL_VAR_ALIAS[i];\n    tpl = tpl.replace(wrapVar(alias), wrapVar(alias, 0));\n  }\n\n  for (var seriesIdx = 0; seriesIdx < seriesLen; seriesIdx++) {\n    for (var k = 0; k < $vars.length; k++) {\n      var val = paramsList[seriesIdx][$vars[k]];\n      tpl = tpl.replace(wrapVar(TPL_VAR_ALIAS[k], seriesIdx), encode ? encodeHTML(val) : val);\n    }\n  }\n\n  return tpl;\n}\nexport function formatTplSimple(tpl, param, encode) {\n  zrUtil.each(param, function (value, key) {\n    tpl = tpl.replace('{' + key + '}', encode ? encodeHTML(value) : value);\n  });\n  return tpl;\n}\nexport function getTooltipMarker(inOpt, extraCssText) {\n  var opt = zrUtil.isString(inOpt) ? {\n    color: inOpt,\n    extraCssText: extraCssText\n  } : inOpt || {};\n  var color = opt.color;\n  var type = opt.type;\n  extraCssText = opt.extraCssText;\n  var renderMode = opt.renderMode || 'html';\n\n  if (!color) {\n    return '';\n  }\n\n  if (renderMode === 'html') {\n    return type === 'subItem' ? '<span style=\"display:inline-block;vertical-align:middle;margin-right:8px;margin-left:3px;' + 'border-radius:4px;width:4px;height:4px;background-color:' + encodeHTML(color) + ';' + (extraCssText || '') + '\"></span>' : '<span style=\"display:inline-block;margin-right:4px;' + 'border-radius:10px;width:10px;height:10px;background-color:' + encodeHTML(color) + ';' + (extraCssText || '') + '\"></span>';\n  } else {\n    var markerId = opt.markerId || 'markerX';\n    return {\n      renderMode: renderMode,\n      content: '{' + markerId + '|}  ',\n      style: type === 'subItem' ? {\n        width: 4,\n        height: 4,\n        borderRadius: 2,\n        backgroundColor: color\n      } : {\n        width: 10,\n        height: 10,\n        borderRadius: 5,\n        backgroundColor: color\n      }\n    };\n  }\n}\nexport function formatTime(tpl, value, isUTC) {\n  if (process.env.NODE_ENV !== 'production') {\n    deprecateReplaceLog('echarts.format.formatTime', 'echarts.time.format');\n  }\n\n  if (tpl === 'week' || tpl === 'month' || tpl === 'quarter' || tpl === 'half-year' || tpl === 'year') {\n    tpl = 'MM-dd\\nyyyy';\n  }\n\n  var date = parseDate(value);\n  var utc = isUTC ? 'UTC' : '';\n  var y = date['get' + utc + 'FullYear']();\n  var M = date['get' + utc + 'Month']() + 1;\n  var d = date['get' + utc + 'Date']();\n  var h = date['get' + utc + 'Hours']();\n  var m = date['get' + utc + 'Minutes']();\n  var s = date['get' + utc + 'Seconds']();\n  var S = date['get' + utc + 'Milliseconds']();\n  tpl = tpl.replace('MM', pad(M, 2)).replace('M', M).replace('yyyy', y).replace('yy', y % 100 + '').replace('dd', pad(d, 2)).replace('d', d).replace('hh', pad(h, 2)).replace('h', h).replace('mm', pad(m, 2)).replace('m', m).replace('ss', pad(s, 2)).replace('s', s).replace('SSS', pad(S, 3));\n  return tpl;\n}\nexport function capitalFirst(str) {\n  return str ? str.charAt(0).toUpperCase() + str.substr(1) : str;\n}\nexport function convertToColorString(color, defaultColor) {\n  defaultColor = defaultColor || 'transparent';\n  return zrUtil.isString(color) ? color : zrUtil.isObject(color) ? color.colorStops && (color.colorStops[0] || {}).color || defaultColor : defaultColor;\n}\nexport { truncateText } from 'zrender/lib/graphic/helper/parseText';\nexport function windowOpen(link, target) {\n  if (target === '_blank' || target === 'blank') {\n    var blank = window.open();\n    blank.opener = null;\n    blank.location.href = link;\n  } else {\n    window.open(link, target);\n  }\n}\nexport { getTextRect } from '../legacy/getTextRect';","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { parsePercent } from './number';\nimport * as formatUtil from './format';\nvar each = zrUtil.each;\nexport var LOCATION_PARAMS = ['left', 'right', 'top', 'bottom', 'width', 'height'];\nexport var HV_NAMES = [['width', 'left', 'right'], ['height', 'top', 'bottom']];\n\nfunction boxLayout(orient, group, gap, maxWidth, maxHeight) {\n  var x = 0;\n  var y = 0;\n\n  if (maxWidth == null) {\n    maxWidth = Infinity;\n  }\n\n  if (maxHeight == null) {\n    maxHeight = Infinity;\n  }\n\n  var currentLineMaxSize = 0;\n  group.eachChild(function (child, idx) {\n    var rect = child.getBoundingRect();\n    var nextChild = group.childAt(idx + 1);\n    var nextChildRect = nextChild && nextChild.getBoundingRect();\n    var nextX;\n    var nextY;\n\n    if (orient === 'horizontal') {\n      var moveX = rect.width + (nextChildRect ? -nextChildRect.x + rect.x : 0);\n      nextX = x + moveX;\n\n      if (nextX > maxWidth || child.newline) {\n        x = 0;\n        nextX = moveX;\n        y += currentLineMaxSize + gap;\n        currentLineMaxSize = rect.height;\n      } else {\n        currentLineMaxSize = Math.max(currentLineMaxSize, rect.height);\n      }\n    } else {\n      var moveY = rect.height + (nextChildRect ? -nextChildRect.y + rect.y : 0);\n      nextY = y + moveY;\n\n      if (nextY > maxHeight || child.newline) {\n        x += currentLineMaxSize + gap;\n        y = 0;\n        nextY = moveY;\n        currentLineMaxSize = rect.width;\n      } else {\n        currentLineMaxSize = Math.max(currentLineMaxSize, rect.width);\n      }\n    }\n\n    if (child.newline) {\n      return;\n    }\n\n    child.x = x;\n    child.y = y;\n    child.markRedraw();\n    orient === 'horizontal' ? x = nextX + gap : y = nextY + gap;\n  });\n}\n\nexport var box = boxLayout;\nexport var vbox = zrUtil.curry(boxLayout, 'vertical');\nexport var hbox = zrUtil.curry(boxLayout, 'horizontal');\nexport function getAvailableSize(positionInfo, containerRect, margin) {\n  var containerWidth = containerRect.width;\n  var containerHeight = containerRect.height;\n  var x = parsePercent(positionInfo.left, containerWidth);\n  var y = parsePercent(positionInfo.top, containerHeight);\n  var x2 = parsePercent(positionInfo.right, containerWidth);\n  var y2 = parsePercent(positionInfo.bottom, containerHeight);\n  (isNaN(x) || isNaN(parseFloat(positionInfo.left))) && (x = 0);\n  (isNaN(x2) || isNaN(parseFloat(positionInfo.right))) && (x2 = containerWidth);\n  (isNaN(y) || isNaN(parseFloat(positionInfo.top))) && (y = 0);\n  (isNaN(y2) || isNaN(parseFloat(positionInfo.bottom))) && (y2 = containerHeight);\n  margin = formatUtil.normalizeCssArray(margin || 0);\n  return {\n    width: Math.max(x2 - x - margin[1] - margin[3], 0),\n    height: Math.max(y2 - y - margin[0] - margin[2], 0)\n  };\n}\nexport function getLayoutRect(positionInfo, containerRect, margin) {\n  margin = formatUtil.normalizeCssArray(margin || 0);\n  var containerWidth = containerRect.width;\n  var containerHeight = containerRect.height;\n  var left = parsePercent(positionInfo.left, containerWidth);\n  var top = parsePercent(positionInfo.top, containerHeight);\n  var right = parsePercent(positionInfo.right, containerWidth);\n  var bottom = parsePercent(positionInfo.bottom, containerHeight);\n  var width = parsePercent(positionInfo.width, containerWidth);\n  var height = parsePercent(positionInfo.height, containerHeight);\n  var verticalMargin = margin[2] + margin[0];\n  var horizontalMargin = margin[1] + margin[3];\n  var aspect = positionInfo.aspect;\n\n  if (isNaN(width)) {\n    width = containerWidth - right - horizontalMargin - left;\n  }\n\n  if (isNaN(height)) {\n    height = containerHeight - bottom - verticalMargin - top;\n  }\n\n  if (aspect != null) {\n    if (isNaN(width) && isNaN(height)) {\n      if (aspect > containerWidth / containerHeight) {\n        width = containerWidth * 0.8;\n      } else {\n        height = containerHeight * 0.8;\n      }\n    }\n\n    if (isNaN(width)) {\n      width = aspect * height;\n    }\n\n    if (isNaN(height)) {\n      height = width / aspect;\n    }\n  }\n\n  if (isNaN(left)) {\n    left = containerWidth - right - width - horizontalMargin;\n  }\n\n  if (isNaN(top)) {\n    top = containerHeight - bottom - height - verticalMargin;\n  }\n\n  switch (positionInfo.left || positionInfo.right) {\n    case 'center':\n      left = containerWidth / 2 - width / 2 - margin[3];\n      break;\n\n    case 'right':\n      left = containerWidth - width - horizontalMargin;\n      break;\n  }\n\n  switch (positionInfo.top || positionInfo.bottom) {\n    case 'middle':\n    case 'center':\n      top = containerHeight / 2 - height / 2 - margin[0];\n      break;\n\n    case 'bottom':\n      top = containerHeight - height - verticalMargin;\n      break;\n  }\n\n  left = left || 0;\n  top = top || 0;\n\n  if (isNaN(width)) {\n    width = containerWidth - horizontalMargin - left - (right || 0);\n  }\n\n  if (isNaN(height)) {\n    height = containerHeight - verticalMargin - top - (bottom || 0);\n  }\n\n  var rect = new BoundingRect(left + margin[3], top + margin[0], width, height);\n  rect.margin = margin;\n  return rect;\n}\nexport function positionElement(el, positionInfo, containerRect, margin, opt) {\n  var h = !opt || !opt.hv || opt.hv[0];\n  var v = !opt || !opt.hv || opt.hv[1];\n  var boundingMode = opt && opt.boundingMode || 'all';\n\n  if (!h && !v) {\n    return;\n  }\n\n  var rect;\n\n  if (boundingMode === 'raw') {\n    rect = el.type === 'group' ? new BoundingRect(0, 0, +positionInfo.width || 0, +positionInfo.height || 0) : el.getBoundingRect();\n  } else {\n    rect = el.getBoundingRect();\n\n    if (el.needLocalTransform()) {\n      var transform = el.getLocalTransform();\n      rect = rect.clone();\n      rect.applyTransform(transform);\n    }\n  }\n\n  var layoutRect = getLayoutRect(zrUtil.defaults({\n    width: rect.width,\n    height: rect.height\n  }, positionInfo), containerRect, margin);\n  var dx = h ? layoutRect.x - rect.x : 0;\n  var dy = v ? layoutRect.y - rect.y : 0;\n\n  if (boundingMode === 'raw') {\n    el.x = dx;\n    el.y = dy;\n  } else {\n    el.x += dx;\n    el.y += dy;\n  }\n\n  el.markRedraw();\n}\nexport function sizeCalculable(option, hvIdx) {\n  return option[HV_NAMES[hvIdx][0]] != null || option[HV_NAMES[hvIdx][1]] != null && option[HV_NAMES[hvIdx][2]] != null;\n}\nexport function fetchLayoutMode(ins) {\n  var layoutMode = ins.layoutMode || ins.constructor.layoutMode;\n  return zrUtil.isObject(layoutMode) ? layoutMode : layoutMode ? {\n    type: layoutMode\n  } : null;\n}\nexport function mergeLayoutParam(targetOption, newOption, opt) {\n  var ignoreSize = opt && opt.ignoreSize;\n  !zrUtil.isArray(ignoreSize) && (ignoreSize = [ignoreSize, ignoreSize]);\n  var hResult = merge(HV_NAMES[0], 0);\n  var vResult = merge(HV_NAMES[1], 1);\n  copy(HV_NAMES[0], targetOption, hResult);\n  copy(HV_NAMES[1], targetOption, vResult);\n\n  function merge(names, hvIdx) {\n    var newParams = {};\n    var newValueCount = 0;\n    var merged = {};\n    var mergedValueCount = 0;\n    var enoughParamNumber = 2;\n    each(names, function (name) {\n      merged[name] = targetOption[name];\n    });\n    each(names, function (name) {\n      hasProp(newOption, name) && (newParams[name] = merged[name] = newOption[name]);\n      hasValue(newParams, name) && newValueCount++;\n      hasValue(merged, name) && mergedValueCount++;\n    });\n\n    if (ignoreSize[hvIdx]) {\n      if (hasValue(newOption, names[1])) {\n        merged[names[2]] = null;\n      } else if (hasValue(newOption, names[2])) {\n        merged[names[1]] = null;\n      }\n\n      return merged;\n    }\n\n    if (mergedValueCount === enoughParamNumber || !newValueCount) {\n      return merged;\n    } else if (newValueCount >= enoughParamNumber) {\n      return newParams;\n    } else {\n      for (var i = 0; i < names.length; i++) {\n        var name_1 = names[i];\n\n        if (!hasProp(newParams, name_1) && hasProp(targetOption, name_1)) {\n          newParams[name_1] = targetOption[name_1];\n          break;\n        }\n      }\n\n      return newParams;\n    }\n  }\n\n  function hasProp(obj, name) {\n    return obj.hasOwnProperty(name);\n  }\n\n  function hasValue(obj, name) {\n    return obj[name] != null && obj[name] !== 'auto';\n  }\n\n  function copy(names, target, source) {\n    each(names, function (name) {\n      target[name] = source[name];\n    });\n  }\n}\nexport function getLayoutParams(source) {\n  return copyLayoutParams({}, source);\n}\nexport function copyLayoutParams(target, source) {\n  source && target && each(LOCATION_PARAMS, function (name) {\n    source.hasOwnProperty(name) && (target[name] = source[name]);\n  });\n  return target;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Model from './Model';\nimport * as componentUtil from '../util/component';\nimport { enableClassManagement, parseClassType, isExtendedClass, mountExtend } from '../util/clazz';\nimport { makeInner, queryReferringComponents } from '../util/model';\nimport * as layout from '../util/layout';\nvar inner = makeInner();\n\nvar ComponentModel = function (_super) {\n  __extends(ComponentModel, _super);\n\n  function ComponentModel(option, parentModel, ecModel) {\n    var _this = _super.call(this, option, parentModel, ecModel) || this;\n\n    _this.uid = componentUtil.getUID('ec_cpt_model');\n    return _this;\n  }\n\n  ComponentModel.prototype.init = function (option, parentModel, ecModel) {\n    this.mergeDefaultAndTheme(option, ecModel);\n  };\n\n  ComponentModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n    var layoutMode = layout.fetchLayoutMode(this);\n    var inputPositionParams = layoutMode ? layout.getLayoutParams(option) : {};\n    var themeModel = ecModel.getTheme();\n    zrUtil.merge(option, themeModel.get(this.mainType));\n    zrUtil.merge(option, this.getDefaultOption());\n\n    if (layoutMode) {\n      layout.mergeLayoutParam(option, inputPositionParams, layoutMode);\n    }\n  };\n\n  ComponentModel.prototype.mergeOption = function (option, ecModel) {\n    zrUtil.merge(this.option, option, true);\n    var layoutMode = layout.fetchLayoutMode(this);\n\n    if (layoutMode) {\n      layout.mergeLayoutParam(this.option, option, layoutMode);\n    }\n  };\n\n  ComponentModel.prototype.optionUpdated = function (newCptOption, isInit) {};\n\n  ComponentModel.prototype.getDefaultOption = function () {\n    var ctor = this.constructor;\n\n    if (!isExtendedClass(ctor)) {\n      return ctor.defaultOption;\n    }\n\n    var fields = inner(this);\n\n    if (!fields.defaultOption) {\n      var optList = [];\n      var clz = ctor;\n\n      while (clz) {\n        var opt = clz.prototype.defaultOption;\n        opt && optList.push(opt);\n        clz = clz.superClass;\n      }\n\n      var defaultOption = {};\n\n      for (var i = optList.length - 1; i >= 0; i--) {\n        defaultOption = zrUtil.merge(defaultOption, optList[i], true);\n      }\n\n      fields.defaultOption = defaultOption;\n    }\n\n    return fields.defaultOption;\n  };\n\n  ComponentModel.prototype.getReferringComponents = function (mainType, opt) {\n    var indexKey = mainType + 'Index';\n    var idKey = mainType + 'Id';\n    return queryReferringComponents(this.ecModel, mainType, {\n      index: this.get(indexKey, true),\n      id: this.get(idKey, true)\n    }, opt);\n  };\n\n  ComponentModel.prototype.getBoxLayoutParams = function () {\n    var boxLayoutModel = this;\n    return {\n      left: boxLayoutModel.get('left'),\n      top: boxLayoutModel.get('top'),\n      right: boxLayoutModel.get('right'),\n      bottom: boxLayoutModel.get('bottom'),\n      width: boxLayoutModel.get('width'),\n      height: boxLayoutModel.get('height')\n    };\n  };\n\n  ComponentModel.protoInitialize = function () {\n    var proto = ComponentModel.prototype;\n    proto.type = 'component';\n    proto.id = '';\n    proto.name = '';\n    proto.mainType = '';\n    proto.subType = '';\n    proto.componentIndex = 0;\n  }();\n\n  return ComponentModel;\n}(Model);\n\nmountExtend(ComponentModel, Model);\nenableClassManagement(ComponentModel);\ncomponentUtil.enableSubTypeDefaulter(ComponentModel);\ncomponentUtil.enableTopologicalTravel(ComponentModel, getDependencies);\n\nfunction getDependencies(componentType) {\n  var deps = [];\n  zrUtil.each(ComponentModel.getClassesByMainType(componentType), function (clz) {\n    deps = deps.concat(clz.dependencies || clz.prototype.dependencies || []);\n  });\n  deps = zrUtil.map(deps, function (type) {\n    return parseClassType(type).main;\n  });\n\n  if (componentType !== 'dataset' && zrUtil.indexOf(deps, 'dataset') <= 0) {\n    deps.unshift('dataset');\n  }\n\n  return deps;\n}\n\nexport default ComponentModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar platform = '';\n\nif (typeof navigator !== 'undefined') {\n  platform = navigator.platform || '';\n}\n\nvar decalColor = 'rgba(0, 0, 0, 0.2)';\nexport default {\n  darkMode: 'auto',\n  color: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],\n  gradientColor: ['#f6efa6', '#d88273', '#bf444c'],\n  aria: {\n    decal: {\n      decals: [{\n        color: decalColor,\n        dashArrayX: [1, 0],\n        dashArrayY: [2, 5],\n        symbolSize: 1,\n        rotation: Math.PI / 6\n      }, {\n        color: decalColor,\n        symbol: 'circle',\n        dashArrayX: [[8, 8], [0, 8, 8, 0]],\n        dashArrayY: [6, 0],\n        symbolSize: 0.8\n      }, {\n        color: decalColor,\n        dashArrayX: [1, 0],\n        dashArrayY: [4, 3],\n        rotation: -Math.PI / 4\n      }, {\n        color: decalColor,\n        dashArrayX: [[6, 6], [0, 6, 6, 0]],\n        dashArrayY: [6, 0]\n      }, {\n        color: decalColor,\n        dashArrayX: [[1, 0], [1, 6]],\n        dashArrayY: [1, 0, 6, 0],\n        rotation: Math.PI / 4\n      }, {\n        color: decalColor,\n        symbol: 'triangle',\n        dashArrayX: [[9, 9], [0, 9, 9, 0]],\n        dashArrayY: [7, 2],\n        symbolSize: 0.75\n      }]\n    }\n  },\n  textStyle: {\n    fontFamily: platform.match(/^Win/) ? 'Microsoft YaHei' : 'sans-serif',\n    fontSize: 12,\n    fontStyle: 'normal',\n    fontWeight: 'normal'\n  },\n  blendMode: null,\n  stateAnimation: {\n    duration: 300,\n    easing: 'cubicOut'\n  },\n  animation: 'auto',\n  animationDuration: 1000,\n  animationDurationUpdate: 500,\n  animationEasing: 'cubicInOut',\n  animationEasingUpdate: 'cubicInOut',\n  animationThreshold: 2000,\n  progressiveThreshold: 3000,\n  progressive: 400,\n  hoverLayerThreshold: 3000,\n  useUTC: false\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap } from 'zrender/lib/core/util';\n;\n;\n;\nexport var VISUAL_DIMENSIONS = createHashMap(['tooltip', 'label', 'itemName', 'itemId', 'seriesName']);\nexport var SOURCE_FORMAT_ORIGINAL = 'original';\nexport var SOURCE_FORMAT_ARRAY_ROWS = 'arrayRows';\nexport var SOURCE_FORMAT_OBJECT_ROWS = 'objectRows';\nexport var SOURCE_FORMAT_KEYED_COLUMNS = 'keyedColumns';\nexport var SOURCE_FORMAT_TYPED_ARRAY = 'typedArray';\nexport var SOURCE_FORMAT_UNKNOWN = 'unknown';\nexport var SERIES_LAYOUT_BY_COLUMN = 'column';\nexport var SERIES_LAYOUT_BY_ROW = 'row';\n;\n;\n;\n;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner, getDataItemValue, queryReferringComponents, SINGLE_REFERRING } from '../../util/model';\nimport { createHashMap, each, isArray, isString, isObject, isTypedArray } from 'zrender/lib/core/util';\nimport { SOURCE_FORMAT_ORIGINAL, SOURCE_FORMAT_ARRAY_ROWS, SOURCE_FORMAT_OBJECT_ROWS, SERIES_LAYOUT_BY_ROW, SOURCE_FORMAT_KEYED_COLUMNS } from '../../util/types';\nexport var BE_ORDINAL = {\n  Must: 1,\n  Might: 2,\n  Not: 3\n};\nvar innerGlobalModel = makeInner();\nexport function resetSourceDefaulter(ecModel) {\n  innerGlobalModel(ecModel).datasetMap = createHashMap();\n}\nexport function makeSeriesEncodeForAxisCoordSys(coordDimensions, seriesModel, source) {\n  var encode = {};\n  var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\n\n  if (!datasetModel || !coordDimensions) {\n    return encode;\n  }\n\n  var encodeItemName = [];\n  var encodeSeriesName = [];\n  var ecModel = seriesModel.ecModel;\n  var datasetMap = innerGlobalModel(ecModel).datasetMap;\n  var key = datasetModel.uid + '_' + source.seriesLayoutBy;\n  var baseCategoryDimIndex;\n  var categoryWayValueDimStart;\n  coordDimensions = coordDimensions.slice();\n  each(coordDimensions, function (coordDimInfoLoose, coordDimIdx) {\n    var coordDimInfo = isObject(coordDimInfoLoose) ? coordDimInfoLoose : coordDimensions[coordDimIdx] = {\n      name: coordDimInfoLoose\n    };\n\n    if (coordDimInfo.type === 'ordinal' && baseCategoryDimIndex == null) {\n      baseCategoryDimIndex = coordDimIdx;\n      categoryWayValueDimStart = getDataDimCountOnCoordDim(coordDimInfo);\n    }\n\n    encode[coordDimInfo.name] = [];\n  });\n  var datasetRecord = datasetMap.get(key) || datasetMap.set(key, {\n    categoryWayDim: categoryWayValueDimStart,\n    valueWayDim: 0\n  });\n  each(coordDimensions, function (coordDimInfo, coordDimIdx) {\n    var coordDimName = coordDimInfo.name;\n    var count = getDataDimCountOnCoordDim(coordDimInfo);\n\n    if (baseCategoryDimIndex == null) {\n      var start = datasetRecord.valueWayDim;\n      pushDim(encode[coordDimName], start, count);\n      pushDim(encodeSeriesName, start, count);\n      datasetRecord.valueWayDim += count;\n    } else if (baseCategoryDimIndex === coordDimIdx) {\n      pushDim(encode[coordDimName], 0, count);\n      pushDim(encodeItemName, 0, count);\n    } else {\n      var start = datasetRecord.categoryWayDim;\n      pushDim(encode[coordDimName], start, count);\n      pushDim(encodeSeriesName, start, count);\n      datasetRecord.categoryWayDim += count;\n    }\n  });\n\n  function pushDim(dimIdxArr, idxFrom, idxCount) {\n    for (var i = 0; i < idxCount; i++) {\n      dimIdxArr.push(idxFrom + i);\n    }\n  }\n\n  function getDataDimCountOnCoordDim(coordDimInfo) {\n    var dimsDef = coordDimInfo.dimsDef;\n    return dimsDef ? dimsDef.length : 1;\n  }\n\n  encodeItemName.length && (encode.itemName = encodeItemName);\n  encodeSeriesName.length && (encode.seriesName = encodeSeriesName);\n  return encode;\n}\nexport function makeSeriesEncodeForNameBased(seriesModel, source, dimCount) {\n  var encode = {};\n  var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\n\n  if (!datasetModel) {\n    return encode;\n  }\n\n  var sourceFormat = source.sourceFormat;\n  var dimensionsDefine = source.dimensionsDefine;\n  var potentialNameDimIndex;\n\n  if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS || sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n    each(dimensionsDefine, function (dim, idx) {\n      if ((isObject(dim) ? dim.name : dim) === 'name') {\n        potentialNameDimIndex = idx;\n      }\n    });\n  }\n\n  var idxResult = function () {\n    var idxRes0 = {};\n    var idxRes1 = {};\n    var guessRecords = [];\n\n    for (var i = 0, len = Math.min(5, dimCount); i < len; i++) {\n      var guessResult = doGuessOrdinal(source.data, sourceFormat, source.seriesLayoutBy, dimensionsDefine, source.startIndex, i);\n      guessRecords.push(guessResult);\n      var isPureNumber = guessResult === BE_ORDINAL.Not;\n\n      if (isPureNumber && idxRes0.v == null && i !== potentialNameDimIndex) {\n        idxRes0.v = i;\n      }\n\n      if (idxRes0.n == null || idxRes0.n === idxRes0.v || !isPureNumber && guessRecords[idxRes0.n] === BE_ORDINAL.Not) {\n        idxRes0.n = i;\n      }\n\n      if (fulfilled(idxRes0) && guessRecords[idxRes0.n] !== BE_ORDINAL.Not) {\n        return idxRes0;\n      }\n\n      if (!isPureNumber) {\n        if (guessResult === BE_ORDINAL.Might && idxRes1.v == null && i !== potentialNameDimIndex) {\n          idxRes1.v = i;\n        }\n\n        if (idxRes1.n == null || idxRes1.n === idxRes1.v) {\n          idxRes1.n = i;\n        }\n      }\n    }\n\n    function fulfilled(idxResult) {\n      return idxResult.v != null && idxResult.n != null;\n    }\n\n    return fulfilled(idxRes0) ? idxRes0 : fulfilled(idxRes1) ? idxRes1 : null;\n  }();\n\n  if (idxResult) {\n    encode.value = [idxResult.v];\n    var nameDimIndex = potentialNameDimIndex != null ? potentialNameDimIndex : idxResult.n;\n    encode.itemName = [nameDimIndex];\n    encode.seriesName = [nameDimIndex];\n  }\n\n  return encode;\n}\nexport function querySeriesUpstreamDatasetModel(seriesModel) {\n  var thisData = seriesModel.get('data', true);\n\n  if (!thisData) {\n    return queryReferringComponents(seriesModel.ecModel, 'dataset', {\n      index: seriesModel.get('datasetIndex', true),\n      id: seriesModel.get('datasetId', true)\n    }, SINGLE_REFERRING).models[0];\n  }\n}\nexport function queryDatasetUpstreamDatasetModels(datasetModel) {\n  if (!datasetModel.get('transform', true) && !datasetModel.get('fromTransformResult', true)) {\n    return [];\n  }\n\n  return queryReferringComponents(datasetModel.ecModel, 'dataset', {\n    index: datasetModel.get('fromDatasetIndex', true),\n    id: datasetModel.get('fromDatasetId', true)\n  }, SINGLE_REFERRING).models;\n}\nexport function guessOrdinal(source, dimIndex) {\n  return doGuessOrdinal(source.data, source.sourceFormat, source.seriesLayoutBy, source.dimensionsDefine, source.startIndex, dimIndex);\n}\n\nfunction doGuessOrdinal(data, sourceFormat, seriesLayoutBy, dimensionsDefine, startIndex, dimIndex) {\n  var result;\n  var maxLoop = 5;\n\n  if (isTypedArray(data)) {\n    return BE_ORDINAL.Not;\n  }\n\n  var dimName;\n  var dimType;\n\n  if (dimensionsDefine) {\n    var dimDefItem = dimensionsDefine[dimIndex];\n\n    if (isObject(dimDefItem)) {\n      dimName = dimDefItem.name;\n      dimType = dimDefItem.type;\n    } else if (isString(dimDefItem)) {\n      dimName = dimDefItem;\n    }\n  }\n\n  if (dimType != null) {\n    return dimType === 'ordinal' ? BE_ORDINAL.Must : BE_ORDINAL.Not;\n  }\n\n  if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n    var dataArrayRows = data;\n\n    if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\n      var sample = dataArrayRows[dimIndex];\n\n      for (var i = 0; i < (sample || []).length && i < maxLoop; i++) {\n        if ((result = detectValue(sample[startIndex + i])) != null) {\n          return result;\n        }\n      }\n    } else {\n      for (var i = 0; i < dataArrayRows.length && i < maxLoop; i++) {\n        var row = dataArrayRows[startIndex + i];\n\n        if (row && (result = detectValue(row[dimIndex])) != null) {\n          return result;\n        }\n      }\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n    var dataObjectRows = data;\n\n    if (!dimName) {\n      return BE_ORDINAL.Not;\n    }\n\n    for (var i = 0; i < dataObjectRows.length && i < maxLoop; i++) {\n      var item = dataObjectRows[i];\n\n      if (item && (result = detectValue(item[dimName])) != null) {\n        return result;\n      }\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n    var dataKeyedColumns = data;\n\n    if (!dimName) {\n      return BE_ORDINAL.Not;\n    }\n\n    var sample = dataKeyedColumns[dimName];\n\n    if (!sample || isTypedArray(sample)) {\n      return BE_ORDINAL.Not;\n    }\n\n    for (var i = 0; i < sample.length && i < maxLoop; i++) {\n      if ((result = detectValue(sample[i])) != null) {\n        return result;\n      }\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n    var dataOriginal = data;\n\n    for (var i = 0; i < dataOriginal.length && i < maxLoop; i++) {\n      var item = dataOriginal[i];\n      var val = getDataItemValue(item);\n\n      if (!isArray(val)) {\n        return BE_ORDINAL.Not;\n      }\n\n      if ((result = detectValue(val[dimIndex])) != null) {\n        return result;\n      }\n    }\n  }\n\n  function detectValue(val) {\n    var beStr = isString(val);\n\n    if (val != null && isFinite(val) && val !== '') {\n      return beStr ? BE_ORDINAL.Might : BE_ORDINAL.Not;\n    } else if (beStr && val !== '-') {\n      return BE_ORDINAL.Must;\n    }\n  }\n\n  return BE_ORDINAL.Not;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, assert } from 'zrender/lib/core/util';\nimport { isComponentIdInternal } from '../util/model';\nvar internalOptionCreatorMap = createHashMap();\nexport function registerInternalOptionCreator(mainType, creator) {\n  assert(internalOptionCreatorMap.get(mainType) == null && creator);\n  internalOptionCreatorMap.set(mainType, creator);\n}\nexport function concatInternalOptions(ecModel, mainType, newCmptOptionList) {\n  var internalOptionCreator = internalOptionCreatorMap.get(mainType);\n\n  if (!internalOptionCreator) {\n    return newCmptOptionList;\n  }\n\n  var internalOptions = internalOptionCreator(ecModel);\n\n  if (!internalOptions) {\n    return newCmptOptionList;\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    for (var i = 0; i < internalOptions.length; i++) {\n      assert(isComponentIdInternal(internalOptions[i]));\n    }\n  }\n\n  return newCmptOptionList.concat(internalOptions);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner, normalizeToArray } from '../../util/model';\nvar innerColor = makeInner();\nvar innerDecal = makeInner();\n\nvar PaletteMixin = function () {\n  function PaletteMixin() {}\n\n  PaletteMixin.prototype.getColorFromPalette = function (name, scope, requestNum) {\n    var defaultPalette = normalizeToArray(this.get('color', true));\n    var layeredPalette = this.get('colorLayer', true);\n    return getFromPalette(this, innerColor, defaultPalette, layeredPalette, name, scope, requestNum);\n  };\n\n  PaletteMixin.prototype.clearColorPalette = function () {\n    clearPalette(this, innerColor);\n  };\n\n  return PaletteMixin;\n}();\n\nexport function getDecalFromPalette(ecModel, name, scope, requestNum) {\n  var defaultDecals = normalizeToArray(ecModel.get(['aria', 'decal', 'decals']));\n  return getFromPalette(ecModel, innerDecal, defaultDecals, null, name, scope, requestNum);\n}\n\nfunction getNearestPalette(palettes, requestColorNum) {\n  var paletteNum = palettes.length;\n\n  for (var i = 0; i < paletteNum; i++) {\n    if (palettes[i].length > requestColorNum) {\n      return palettes[i];\n    }\n  }\n\n  return palettes[paletteNum - 1];\n}\n\nfunction getFromPalette(that, inner, defaultPalette, layeredPalette, name, scope, requestNum) {\n  scope = scope || that;\n  var scopeFields = inner(scope);\n  var paletteIdx = scopeFields.paletteIdx || 0;\n  var paletteNameMap = scopeFields.paletteNameMap = scopeFields.paletteNameMap || {};\n\n  if (paletteNameMap.hasOwnProperty(name)) {\n    return paletteNameMap[name];\n  }\n\n  var palette = requestNum == null || !layeredPalette ? defaultPalette : getNearestPalette(layeredPalette, requestNum);\n  palette = palette || defaultPalette;\n\n  if (!palette || !palette.length) {\n    return;\n  }\n\n  var pickedPaletteItem = palette[paletteIdx];\n\n  if (name) {\n    paletteNameMap[name] = pickedPaletteItem;\n  }\n\n  scopeFields.paletteIdx = (paletteIdx + 1) % palette.length;\n  return pickedPaletteItem;\n}\n\nfunction clearPalette(that, inner) {\n  inner(that).paletteIdx = 0;\n  inner(that).paletteNameMap = {};\n}\n\nexport { PaletteMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { each, filter, isArray, isObject, isString, createHashMap, assert, clone, merge, extend, mixin, isFunction } from 'zrender/lib/core/util';\nimport * as modelUtil from '../util/model';\nimport Model from './Model';\nimport ComponentModel from './Component';\nimport globalDefault from './globalDefault';\nimport { resetSourceDefaulter } from '../data/helper/sourceHelper';\nimport { concatInternalOptions } from './internalComponentCreator';\nimport { PaletteMixin } from './mixin/palette';\nvar reCreateSeriesIndices;\nvar assertSeriesInitialized;\nvar initBase;\nvar OPTION_INNER_KEY = '\\0_ec_inner';\nvar OPTION_INNER_VALUE = 1;\n\nvar GlobalModel = function (_super) {\n  __extends(GlobalModel, _super);\n\n  function GlobalModel() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  GlobalModel.prototype.init = function (option, parentModel, ecModel, theme, locale, optionManager) {\n    theme = theme || {};\n    this.option = null;\n    this._theme = new Model(theme);\n    this._locale = new Model(locale);\n    this._optionManager = optionManager;\n  };\n\n  GlobalModel.prototype.setOption = function (option, opts, optionPreprocessorFuncs) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(option != null, 'option is null/undefined');\n      assert(option[OPTION_INNER_KEY] !== OPTION_INNER_VALUE, 'please use chart.getOption()');\n    }\n\n    var innerOpt = normalizeSetOptionInput(opts);\n\n    this._optionManager.setOption(option, optionPreprocessorFuncs, innerOpt);\n\n    this._resetOption(null, innerOpt);\n  };\n\n  GlobalModel.prototype.resetOption = function (type, opt) {\n    return this._resetOption(type, normalizeSetOptionInput(opt));\n  };\n\n  GlobalModel.prototype._resetOption = function (type, opt) {\n    var optionChanged = false;\n    var optionManager = this._optionManager;\n\n    if (!type || type === 'recreate') {\n      var baseOption = optionManager.mountOption(type === 'recreate');\n\n      if (!this.option || type === 'recreate') {\n        initBase(this, baseOption);\n      } else {\n        this.restoreData();\n\n        this._mergeOption(baseOption, opt);\n      }\n\n      optionChanged = true;\n    }\n\n    if (type === 'timeline' || type === 'media') {\n      this.restoreData();\n    }\n\n    if (!type || type === 'recreate' || type === 'timeline') {\n      var timelineOption = optionManager.getTimelineOption(this);\n\n      if (timelineOption) {\n        optionChanged = true;\n\n        this._mergeOption(timelineOption, opt);\n      }\n    }\n\n    if (!type || type === 'recreate' || type === 'media') {\n      var mediaOptions = optionManager.getMediaOption(this);\n\n      if (mediaOptions.length) {\n        each(mediaOptions, function (mediaOption) {\n          optionChanged = true;\n\n          this._mergeOption(mediaOption, opt);\n        }, this);\n      }\n    }\n\n    return optionChanged;\n  };\n\n  GlobalModel.prototype.mergeOption = function (option) {\n    this._mergeOption(option, null);\n  };\n\n  GlobalModel.prototype._mergeOption = function (newOption, opt) {\n    var option = this.option;\n    var componentsMap = this._componentsMap;\n    var componentsCount = this._componentsCount;\n    var newCmptTypes = [];\n    var newCmptTypeMap = createHashMap();\n    var replaceMergeMainTypeMap = opt && opt.replaceMergeMainTypeMap;\n    resetSourceDefaulter(this);\n    each(newOption, function (componentOption, mainType) {\n      if (componentOption == null) {\n        return;\n      }\n\n      if (!ComponentModel.hasClass(mainType)) {\n        option[mainType] = option[mainType] == null ? clone(componentOption) : merge(option[mainType], componentOption, true);\n      } else if (mainType) {\n        newCmptTypes.push(mainType);\n        newCmptTypeMap.set(mainType, true);\n      }\n    });\n\n    if (replaceMergeMainTypeMap) {\n      replaceMergeMainTypeMap.each(function (val, mainTypeInReplaceMerge) {\n        if (ComponentModel.hasClass(mainTypeInReplaceMerge) && !newCmptTypeMap.get(mainTypeInReplaceMerge)) {\n          newCmptTypes.push(mainTypeInReplaceMerge);\n          newCmptTypeMap.set(mainTypeInReplaceMerge, true);\n        }\n      });\n    }\n\n    ComponentModel.topologicalTravel(newCmptTypes, ComponentModel.getAllClassMainTypes(), visitComponent, this);\n\n    function visitComponent(mainType) {\n      var newCmptOptionList = concatInternalOptions(this, mainType, modelUtil.normalizeToArray(newOption[mainType]));\n      var oldCmptList = componentsMap.get(mainType);\n      var mergeMode = !oldCmptList ? 'replaceAll' : replaceMergeMainTypeMap && replaceMergeMainTypeMap.get(mainType) ? 'replaceMerge' : 'normalMerge';\n      var mappingResult = modelUtil.mappingToExists(oldCmptList, newCmptOptionList, mergeMode);\n      modelUtil.setComponentTypeToKeyInfo(mappingResult, mainType, ComponentModel);\n      option[mainType] = null;\n      componentsMap.set(mainType, null);\n      componentsCount.set(mainType, 0);\n      var optionsByMainType = [];\n      var cmptsByMainType = [];\n      var cmptsCountByMainType = 0;\n      each(mappingResult, function (resultItem, index) {\n        var componentModel = resultItem.existing;\n        var newCmptOption = resultItem.newOption;\n\n        if (!newCmptOption) {\n          if (componentModel) {\n            componentModel.mergeOption({}, this);\n            componentModel.optionUpdated({}, false);\n          }\n        } else {\n          var ComponentModelClass = ComponentModel.getClass(mainType, resultItem.keyInfo.subType, true);\n\n          if (componentModel && componentModel.constructor === ComponentModelClass) {\n            componentModel.name = resultItem.keyInfo.name;\n            componentModel.mergeOption(newCmptOption, this);\n            componentModel.optionUpdated(newCmptOption, false);\n          } else {\n            var extraOpt = extend({\n              componentIndex: index\n            }, resultItem.keyInfo);\n            componentModel = new ComponentModelClass(newCmptOption, this, this, extraOpt);\n            extend(componentModel, extraOpt);\n\n            if (resultItem.brandNew) {\n              componentModel.__requireNewView = true;\n            }\n\n            componentModel.init(newCmptOption, this, this);\n            componentModel.optionUpdated(null, true);\n          }\n        }\n\n        if (componentModel) {\n          optionsByMainType.push(componentModel.option);\n          cmptsByMainType.push(componentModel);\n          cmptsCountByMainType++;\n        } else {\n          optionsByMainType.push(void 0);\n          cmptsByMainType.push(void 0);\n        }\n      }, this);\n      option[mainType] = optionsByMainType;\n      componentsMap.set(mainType, cmptsByMainType);\n      componentsCount.set(mainType, cmptsCountByMainType);\n\n      if (mainType === 'series') {\n        reCreateSeriesIndices(this);\n      }\n    }\n\n    if (!this._seriesIndices) {\n      reCreateSeriesIndices(this);\n    }\n  };\n\n  GlobalModel.prototype.getOption = function () {\n    var option = clone(this.option);\n    each(option, function (optInMainType, mainType) {\n      if (ComponentModel.hasClass(mainType)) {\n        var opts = modelUtil.normalizeToArray(optInMainType);\n        var realLen = opts.length;\n        var metNonInner = false;\n\n        for (var i = realLen - 1; i >= 0; i--) {\n          if (opts[i] && !modelUtil.isComponentIdInternal(opts[i])) {\n            metNonInner = true;\n          } else {\n            opts[i] = null;\n            !metNonInner && realLen--;\n          }\n        }\n\n        opts.length = realLen;\n        option[mainType] = opts;\n      }\n    });\n    delete option[OPTION_INNER_KEY];\n    return option;\n  };\n\n  GlobalModel.prototype.getTheme = function () {\n    return this._theme;\n  };\n\n  GlobalModel.prototype.getLocaleModel = function () {\n    return this._locale;\n  };\n\n  GlobalModel.prototype.getLocale = function (localePosition) {\n    var locale = this.getLocaleModel();\n    return locale.get(localePosition);\n  };\n\n  GlobalModel.prototype.setUpdatePayload = function (payload) {\n    this._payload = payload;\n  };\n\n  GlobalModel.prototype.getUpdatePayload = function () {\n    return this._payload;\n  };\n\n  GlobalModel.prototype.getComponent = function (mainType, idx) {\n    var list = this._componentsMap.get(mainType);\n\n    if (list) {\n      var cmpt = list[idx || 0];\n\n      if (cmpt) {\n        return cmpt;\n      } else if (idx == null) {\n        for (var i = 0; i < list.length; i++) {\n          if (list[i]) {\n            return list[i];\n          }\n        }\n      }\n    }\n  };\n\n  GlobalModel.prototype.queryComponents = function (condition) {\n    var mainType = condition.mainType;\n\n    if (!mainType) {\n      return [];\n    }\n\n    var index = condition.index;\n    var id = condition.id;\n    var name = condition.name;\n\n    var cmpts = this._componentsMap.get(mainType);\n\n    if (!cmpts || !cmpts.length) {\n      return [];\n    }\n\n    var result;\n\n    if (index != null) {\n      result = [];\n      each(modelUtil.normalizeToArray(index), function (idx) {\n        cmpts[idx] && result.push(cmpts[idx]);\n      });\n    } else if (id != null) {\n      result = queryByIdOrName('id', id, cmpts);\n    } else if (name != null) {\n      result = queryByIdOrName('name', name, cmpts);\n    } else {\n      result = filter(cmpts, function (cmpt) {\n        return !!cmpt;\n      });\n    }\n\n    return filterBySubType(result, condition);\n  };\n\n  GlobalModel.prototype.findComponents = function (condition) {\n    var query = condition.query;\n    var mainType = condition.mainType;\n    var queryCond = getQueryCond(query);\n    var result = queryCond ? this.queryComponents(queryCond) : filter(this._componentsMap.get(mainType), function (cmpt) {\n      return !!cmpt;\n    });\n    return doFilter(filterBySubType(result, condition));\n\n    function getQueryCond(q) {\n      var indexAttr = mainType + 'Index';\n      var idAttr = mainType + 'Id';\n      var nameAttr = mainType + 'Name';\n      return q && (q[indexAttr] != null || q[idAttr] != null || q[nameAttr] != null) ? {\n        mainType: mainType,\n        index: q[indexAttr],\n        id: q[idAttr],\n        name: q[nameAttr]\n      } : null;\n    }\n\n    function doFilter(res) {\n      return condition.filter ? filter(res, condition.filter) : res;\n    }\n  };\n\n  GlobalModel.prototype.eachComponent = function (mainType, cb, context) {\n    var componentsMap = this._componentsMap;\n\n    if (isFunction(mainType)) {\n      var ctxForAll_1 = cb;\n      var cbForAll_1 = mainType;\n      componentsMap.each(function (cmpts, componentType) {\n        for (var i = 0; cmpts && i < cmpts.length; i++) {\n          var cmpt = cmpts[i];\n          cmpt && cbForAll_1.call(ctxForAll_1, componentType, cmpt, cmpt.componentIndex);\n        }\n      });\n    } else {\n      var cmpts = isString(mainType) ? componentsMap.get(mainType) : isObject(mainType) ? this.findComponents(mainType) : null;\n\n      for (var i = 0; cmpts && i < cmpts.length; i++) {\n        var cmpt = cmpts[i];\n        cmpt && cb.call(context, cmpt, cmpt.componentIndex);\n      }\n    }\n  };\n\n  GlobalModel.prototype.getSeriesByName = function (name) {\n    var nameStr = modelUtil.convertOptionIdName(name, null);\n    return filter(this._componentsMap.get('series'), function (oneSeries) {\n      return !!oneSeries && nameStr != null && oneSeries.name === nameStr;\n    });\n  };\n\n  GlobalModel.prototype.getSeriesByIndex = function (seriesIndex) {\n    return this._componentsMap.get('series')[seriesIndex];\n  };\n\n  GlobalModel.prototype.getSeriesByType = function (subType) {\n    return filter(this._componentsMap.get('series'), function (oneSeries) {\n      return !!oneSeries && oneSeries.subType === subType;\n    });\n  };\n\n  GlobalModel.prototype.getSeries = function () {\n    return filter(this._componentsMap.get('series').slice(), function (oneSeries) {\n      return !!oneSeries;\n    });\n  };\n\n  GlobalModel.prototype.getSeriesCount = function () {\n    return this._componentsCount.get('series');\n  };\n\n  GlobalModel.prototype.eachSeries = function (cb, context) {\n    assertSeriesInitialized(this);\n    each(this._seriesIndices, function (rawSeriesIndex) {\n      var series = this._componentsMap.get('series')[rawSeriesIndex];\n\n      cb.call(context, series, rawSeriesIndex);\n    }, this);\n  };\n\n  GlobalModel.prototype.eachRawSeries = function (cb, context) {\n    each(this._componentsMap.get('series'), function (series) {\n      series && cb.call(context, series, series.componentIndex);\n    });\n  };\n\n  GlobalModel.prototype.eachSeriesByType = function (subType, cb, context) {\n    assertSeriesInitialized(this);\n    each(this._seriesIndices, function (rawSeriesIndex) {\n      var series = this._componentsMap.get('series')[rawSeriesIndex];\n\n      if (series.subType === subType) {\n        cb.call(context, series, rawSeriesIndex);\n      }\n    }, this);\n  };\n\n  GlobalModel.prototype.eachRawSeriesByType = function (subType, cb, context) {\n    return each(this.getSeriesByType(subType), cb, context);\n  };\n\n  GlobalModel.prototype.isSeriesFiltered = function (seriesModel) {\n    assertSeriesInitialized(this);\n    return this._seriesIndicesMap.get(seriesModel.componentIndex) == null;\n  };\n\n  GlobalModel.prototype.getCurrentSeriesIndices = function () {\n    return (this._seriesIndices || []).slice();\n  };\n\n  GlobalModel.prototype.filterSeries = function (cb, context) {\n    assertSeriesInitialized(this);\n    var newSeriesIndices = [];\n    each(this._seriesIndices, function (seriesRawIdx) {\n      var series = this._componentsMap.get('series')[seriesRawIdx];\n\n      cb.call(context, series, seriesRawIdx) && newSeriesIndices.push(seriesRawIdx);\n    }, this);\n    this._seriesIndices = newSeriesIndices;\n    this._seriesIndicesMap = createHashMap(newSeriesIndices);\n  };\n\n  GlobalModel.prototype.restoreData = function (payload) {\n    reCreateSeriesIndices(this);\n    var componentsMap = this._componentsMap;\n    var componentTypes = [];\n    componentsMap.each(function (components, componentType) {\n      if (ComponentModel.hasClass(componentType)) {\n        componentTypes.push(componentType);\n      }\n    });\n    ComponentModel.topologicalTravel(componentTypes, ComponentModel.getAllClassMainTypes(), function (componentType) {\n      each(componentsMap.get(componentType), function (component) {\n        if (component && (componentType !== 'series' || !isNotTargetSeries(component, payload))) {\n          component.restoreData();\n        }\n      });\n    });\n  };\n\n  GlobalModel.internalField = function () {\n    reCreateSeriesIndices = function (ecModel) {\n      var seriesIndices = ecModel._seriesIndices = [];\n      each(ecModel._componentsMap.get('series'), function (series) {\n        series && seriesIndices.push(series.componentIndex);\n      });\n      ecModel._seriesIndicesMap = createHashMap(seriesIndices);\n    };\n\n    assertSeriesInitialized = function (ecModel) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (!ecModel._seriesIndices) {\n          throw new Error('Option should contains series.');\n        }\n      }\n    };\n\n    initBase = function (ecModel, baseOption) {\n      ecModel.option = {};\n      ecModel.option[OPTION_INNER_KEY] = OPTION_INNER_VALUE;\n      ecModel._componentsMap = createHashMap({\n        series: []\n      });\n      ecModel._componentsCount = createHashMap();\n      var airaOption = baseOption.aria;\n\n      if (isObject(airaOption) && airaOption.enabled == null) {\n        airaOption.enabled = true;\n      }\n\n      mergeTheme(baseOption, ecModel._theme.option);\n      merge(baseOption, globalDefault, false);\n\n      ecModel._mergeOption(baseOption, null);\n    };\n  }();\n\n  return GlobalModel;\n}(Model);\n\nfunction isNotTargetSeries(seriesModel, payload) {\n  if (payload) {\n    var index = payload.seriesIndex;\n    var id = payload.seriesId;\n    var name_1 = payload.seriesName;\n    return index != null && seriesModel.componentIndex !== index || id != null && seriesModel.id !== id || name_1 != null && seriesModel.name !== name_1;\n  }\n}\n\nfunction mergeTheme(option, theme) {\n  var notMergeColorLayer = option.color && !option.colorLayer;\n  each(theme, function (themeItem, name) {\n    if (name === 'colorLayer' && notMergeColorLayer) {\n      return;\n    }\n\n    if (!ComponentModel.hasClass(name)) {\n      if (typeof themeItem === 'object') {\n        option[name] = !option[name] ? clone(themeItem) : merge(option[name], themeItem, false);\n      } else {\n        if (option[name] == null) {\n          option[name] = themeItem;\n        }\n      }\n    }\n  });\n}\n\nfunction queryByIdOrName(attr, idOrName, cmpts) {\n  if (isArray(idOrName)) {\n    var keyMap_1 = createHashMap();\n    each(idOrName, function (idOrNameItem) {\n      if (idOrNameItem != null) {\n        var idName = modelUtil.convertOptionIdName(idOrNameItem, null);\n        idName != null && keyMap_1.set(idOrNameItem, true);\n      }\n    });\n    return filter(cmpts, function (cmpt) {\n      return cmpt && keyMap_1.get(cmpt[attr]);\n    });\n  } else {\n    var idName_1 = modelUtil.convertOptionIdName(idOrName, null);\n    return filter(cmpts, function (cmpt) {\n      return cmpt && idName_1 != null && cmpt[attr] === idName_1;\n    });\n  }\n}\n\nfunction filterBySubType(components, condition) {\n  return condition.hasOwnProperty('subType') ? filter(components, function (cmpt) {\n    return cmpt && cmpt.subType === condition.subType;\n  }) : components;\n}\n\nfunction normalizeSetOptionInput(opts) {\n  var replaceMergeMainTypeMap = createHashMap();\n  opts && each(modelUtil.normalizeToArray(opts.replaceMerge), function (mainType) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(ComponentModel.hasClass(mainType), '\"' + mainType + '\" is not valid component main type in \"replaceMerge\"');\n    }\n\n    replaceMergeMainTypeMap.set(mainType, true);\n  });\n  return {\n    replaceMergeMainTypeMap: replaceMergeMainTypeMap\n  };\n}\n\nmixin(GlobalModel, PaletteMixin);\nexport default GlobalModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar availableMethods = ['getDom', 'getZr', 'getWidth', 'getHeight', 'getDevicePixelRatio', 'dispatchAction', 'isDisposed', 'on', 'off', 'getDataURL', 'getConnectedDataURL', 'getOption', 'getId', 'updateLabelLayout'];\n\nvar ExtensionAPI = function () {\n  function ExtensionAPI(ecInstance) {\n    zrUtil.each(availableMethods, function (methodName) {\n      this[methodName] = zrUtil.bind(ecInstance[methodName], ecInstance);\n    }, this);\n  }\n\n  return ExtensionAPI;\n}();\n\nexport default ExtensionAPI;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar coordinateSystemCreators = {};\n\nvar CoordinateSystemManager = function () {\n  function CoordinateSystemManager() {\n    this._coordinateSystems = [];\n  }\n\n  CoordinateSystemManager.prototype.create = function (ecModel, api) {\n    var coordinateSystems = [];\n    zrUtil.each(coordinateSystemCreators, function (creater, type) {\n      var list = creater.create(ecModel, api);\n      coordinateSystems = coordinateSystems.concat(list || []);\n    });\n    this._coordinateSystems = coordinateSystems;\n  };\n\n  CoordinateSystemManager.prototype.update = function (ecModel, api) {\n    zrUtil.each(this._coordinateSystems, function (coordSys) {\n      coordSys.update && coordSys.update(ecModel, api);\n    });\n  };\n\n  CoordinateSystemManager.prototype.getCoordinateSystems = function () {\n    return this._coordinateSystems.slice();\n  };\n\n  CoordinateSystemManager.register = function (type, creator) {\n    coordinateSystemCreators[type] = creator;\n  };\n\n  CoordinateSystemManager.get = function (type) {\n    return coordinateSystemCreators[type];\n  };\n\n  return CoordinateSystemManager;\n}();\n\nexport default CoordinateSystemManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { normalizeToArray } from '../util/model';\nimport { each, clone, map, isTypedArray, setAsPrimitive, isArray, isObject } from 'zrender/lib/core/util';\nimport { error } from '../util/log';\nvar QUERY_REG = /^(min|max)?(.+)$/;\n\nvar OptionManager = function () {\n  function OptionManager(api) {\n    this._timelineOptions = [];\n    this._mediaList = [];\n    this._currentMediaIndices = [];\n    this._api = api;\n  }\n\n  OptionManager.prototype.setOption = function (rawOption, optionPreprocessorFuncs, opt) {\n    if (rawOption) {\n      each(normalizeToArray(rawOption.series), function (series) {\n        series && series.data && isTypedArray(series.data) && setAsPrimitive(series.data);\n      });\n      each(normalizeToArray(rawOption.dataset), function (dataset) {\n        dataset && dataset.source && isTypedArray(dataset.source) && setAsPrimitive(dataset.source);\n      });\n    }\n\n    rawOption = clone(rawOption);\n    var optionBackup = this._optionBackup;\n    var newParsedOption = parseRawOption(rawOption, optionPreprocessorFuncs, !optionBackup);\n    this._newBaseOption = newParsedOption.baseOption;\n\n    if (optionBackup) {\n      if (newParsedOption.timelineOptions.length) {\n        optionBackup.timelineOptions = newParsedOption.timelineOptions;\n      }\n\n      if (newParsedOption.mediaList.length) {\n        optionBackup.mediaList = newParsedOption.mediaList;\n      }\n\n      if (newParsedOption.mediaDefault) {\n        optionBackup.mediaDefault = newParsedOption.mediaDefault;\n      }\n    } else {\n      this._optionBackup = newParsedOption;\n    }\n  };\n\n  OptionManager.prototype.mountOption = function (isRecreate) {\n    var optionBackup = this._optionBackup;\n    this._timelineOptions = optionBackup.timelineOptions;\n    this._mediaList = optionBackup.mediaList;\n    this._mediaDefault = optionBackup.mediaDefault;\n    this._currentMediaIndices = [];\n    return clone(isRecreate ? optionBackup.baseOption : this._newBaseOption);\n  };\n\n  OptionManager.prototype.getTimelineOption = function (ecModel) {\n    var option;\n    var timelineOptions = this._timelineOptions;\n\n    if (timelineOptions.length) {\n      var timelineModel = ecModel.getComponent('timeline');\n\n      if (timelineModel) {\n        option = clone(timelineOptions[timelineModel.getCurrentIndex()]);\n      }\n    }\n\n    return option;\n  };\n\n  OptionManager.prototype.getMediaOption = function (ecModel) {\n    var ecWidth = this._api.getWidth();\n\n    var ecHeight = this._api.getHeight();\n\n    var mediaList = this._mediaList;\n    var mediaDefault = this._mediaDefault;\n    var indices = [];\n    var result = [];\n\n    if (!mediaList.length && !mediaDefault) {\n      return result;\n    }\n\n    for (var i = 0, len = mediaList.length; i < len; i++) {\n      if (applyMediaQuery(mediaList[i].query, ecWidth, ecHeight)) {\n        indices.push(i);\n      }\n    }\n\n    if (!indices.length && mediaDefault) {\n      indices = [-1];\n    }\n\n    if (indices.length && !indicesEquals(indices, this._currentMediaIndices)) {\n      result = map(indices, function (index) {\n        return clone(index === -1 ? mediaDefault.option : mediaList[index].option);\n      });\n    }\n\n    this._currentMediaIndices = indices;\n    return result;\n  };\n\n  return OptionManager;\n}();\n\nfunction parseRawOption(rawOption, optionPreprocessorFuncs, isNew) {\n  var mediaList = [];\n  var mediaDefault;\n  var baseOption;\n  var declaredBaseOption = rawOption.baseOption;\n  var timelineOnRoot = rawOption.timeline;\n  var timelineOptionsOnRoot = rawOption.options;\n  var mediaOnRoot = rawOption.media;\n  var hasMedia = !!rawOption.media;\n  var hasTimeline = !!(timelineOptionsOnRoot || timelineOnRoot || declaredBaseOption && declaredBaseOption.timeline);\n\n  if (declaredBaseOption) {\n    baseOption = declaredBaseOption;\n\n    if (!baseOption.timeline) {\n      baseOption.timeline = timelineOnRoot;\n    }\n  } else {\n    if (hasTimeline || hasMedia) {\n      rawOption.options = rawOption.media = null;\n    }\n\n    baseOption = rawOption;\n  }\n\n  if (hasMedia) {\n    if (isArray(mediaOnRoot)) {\n      each(mediaOnRoot, function (singleMedia) {\n        if (process.env.NODE_ENV !== 'production') {\n          if (singleMedia && !singleMedia.option && isObject(singleMedia.query) && isObject(singleMedia.query.option)) {\n            error('Illegal media option. Must be like { media: [ { query: {}, option: {} } ] }');\n          }\n        }\n\n        if (singleMedia && singleMedia.option) {\n          if (singleMedia.query) {\n            mediaList.push(singleMedia);\n          } else if (!mediaDefault) {\n            mediaDefault = singleMedia;\n          }\n        }\n      });\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        error('Illegal media option. Must be an array. Like { media: [ {...}, {...} ] }');\n      }\n    }\n  }\n\n  doPreprocess(baseOption);\n  each(timelineOptionsOnRoot, function (option) {\n    return doPreprocess(option);\n  });\n  each(mediaList, function (media) {\n    return doPreprocess(media.option);\n  });\n\n  function doPreprocess(option) {\n    each(optionPreprocessorFuncs, function (preProcess) {\n      preProcess(option, isNew);\n    });\n  }\n\n  return {\n    baseOption: baseOption,\n    timelineOptions: timelineOptionsOnRoot || [],\n    mediaDefault: mediaDefault,\n    mediaList: mediaList\n  };\n}\n\nfunction applyMediaQuery(query, ecWidth, ecHeight) {\n  var realMap = {\n    width: ecWidth,\n    height: ecHeight,\n    aspectratio: ecWidth / ecHeight\n  };\n  var applicatable = true;\n  each(query, function (value, attr) {\n    var matched = attr.match(QUERY_REG);\n\n    if (!matched || !matched[1] || !matched[2]) {\n      return;\n    }\n\n    var operator = matched[1];\n    var realAttr = matched[2].toLowerCase();\n\n    if (!compare(realMap[realAttr], value, operator)) {\n      applicatable = false;\n    }\n  });\n  return applicatable;\n}\n\nfunction compare(real, expect, operator) {\n  if (operator === 'min') {\n    return real >= expect;\n  } else if (operator === 'max') {\n    return real <= expect;\n  } else {\n    return real === expect;\n  }\n}\n\nfunction indicesEquals(indices1, indices2) {\n  return indices1.join(',') === indices2.join(',');\n}\n\nexport default OptionManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nimport { deprecateLog, deprecateReplaceLog } from '../../util/log';\nvar each = zrUtil.each;\nvar isObject = zrUtil.isObject;\nvar POSSIBLE_STYLES = ['areaStyle', 'lineStyle', 'nodeStyle', 'linkStyle', 'chordStyle', 'label', 'labelLine'];\n\nfunction compatEC2ItemStyle(opt) {\n  var itemStyleOpt = opt && opt.itemStyle;\n\n  if (!itemStyleOpt) {\n    return;\n  }\n\n  for (var i = 0, len = POSSIBLE_STYLES.length; i < len; i++) {\n    var styleName = POSSIBLE_STYLES[i];\n    var normalItemStyleOpt = itemStyleOpt.normal;\n    var emphasisItemStyleOpt = itemStyleOpt.emphasis;\n\n    if (normalItemStyleOpt && normalItemStyleOpt[styleName]) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateReplaceLog(\"itemStyle.normal.\" + styleName, styleName);\n      }\n\n      opt[styleName] = opt[styleName] || {};\n\n      if (!opt[styleName].normal) {\n        opt[styleName].normal = normalItemStyleOpt[styleName];\n      } else {\n        zrUtil.merge(opt[styleName].normal, normalItemStyleOpt[styleName]);\n      }\n\n      normalItemStyleOpt[styleName] = null;\n    }\n\n    if (emphasisItemStyleOpt && emphasisItemStyleOpt[styleName]) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateReplaceLog(\"itemStyle.emphasis.\" + styleName, \"emphasis.\" + styleName);\n      }\n\n      opt[styleName] = opt[styleName] || {};\n\n      if (!opt[styleName].emphasis) {\n        opt[styleName].emphasis = emphasisItemStyleOpt[styleName];\n      } else {\n        zrUtil.merge(opt[styleName].emphasis, emphasisItemStyleOpt[styleName]);\n      }\n\n      emphasisItemStyleOpt[styleName] = null;\n    }\n  }\n}\n\nfunction convertNormalEmphasis(opt, optType, useExtend) {\n  if (opt && opt[optType] && (opt[optType].normal || opt[optType].emphasis)) {\n    var normalOpt = opt[optType].normal;\n    var emphasisOpt = opt[optType].emphasis;\n\n    if (normalOpt) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateLog(\"'normal' hierarchy in \" + optType + \" has been removed since 4.0. All style properties are configured in \" + optType + \" directly now.\");\n      }\n\n      if (useExtend) {\n        opt[optType].normal = opt[optType].emphasis = null;\n        zrUtil.defaults(opt[optType], normalOpt);\n      } else {\n        opt[optType] = normalOpt;\n      }\n    }\n\n    if (emphasisOpt) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateLog(optType + \".emphasis has been changed to emphasis.\" + optType + \" since 4.0\");\n      }\n\n      opt.emphasis = opt.emphasis || {};\n      opt.emphasis[optType] = emphasisOpt;\n\n      if (emphasisOpt.focus) {\n        opt.emphasis.focus = emphasisOpt.focus;\n      }\n\n      if (emphasisOpt.blurScope) {\n        opt.emphasis.blurScope = emphasisOpt.blurScope;\n      }\n    }\n  }\n}\n\nfunction removeEC3NormalStatus(opt) {\n  convertNormalEmphasis(opt, 'itemStyle');\n  convertNormalEmphasis(opt, 'lineStyle');\n  convertNormalEmphasis(opt, 'areaStyle');\n  convertNormalEmphasis(opt, 'label');\n  convertNormalEmphasis(opt, 'labelLine');\n  convertNormalEmphasis(opt, 'upperLabel');\n  convertNormalEmphasis(opt, 'edgeLabel');\n}\n\nfunction compatTextStyle(opt, propName) {\n  var labelOptSingle = isObject(opt) && opt[propName];\n  var textStyle = isObject(labelOptSingle) && labelOptSingle.textStyle;\n\n  if (textStyle) {\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateLog(\"textStyle hierarchy in \" + propName + \" has been removed since 4.0. All textStyle properties are configured in \" + propName + \" directly now.\");\n    }\n\n    for (var i = 0, len = modelUtil.TEXT_STYLE_OPTIONS.length; i < len; i++) {\n      var textPropName = modelUtil.TEXT_STYLE_OPTIONS[i];\n\n      if (textStyle.hasOwnProperty(textPropName)) {\n        labelOptSingle[textPropName] = textStyle[textPropName];\n      }\n    }\n  }\n}\n\nfunction compatEC3CommonStyles(opt) {\n  if (opt) {\n    removeEC3NormalStatus(opt);\n    compatTextStyle(opt, 'label');\n    opt.emphasis && compatTextStyle(opt.emphasis, 'label');\n  }\n}\n\nfunction processSeries(seriesOpt) {\n  if (!isObject(seriesOpt)) {\n    return;\n  }\n\n  compatEC2ItemStyle(seriesOpt);\n  removeEC3NormalStatus(seriesOpt);\n  compatTextStyle(seriesOpt, 'label');\n  compatTextStyle(seriesOpt, 'upperLabel');\n  compatTextStyle(seriesOpt, 'edgeLabel');\n\n  if (seriesOpt.emphasis) {\n    compatTextStyle(seriesOpt.emphasis, 'label');\n    compatTextStyle(seriesOpt.emphasis, 'upperLabel');\n    compatTextStyle(seriesOpt.emphasis, 'edgeLabel');\n  }\n\n  var markPoint = seriesOpt.markPoint;\n\n  if (markPoint) {\n    compatEC2ItemStyle(markPoint);\n    compatEC3CommonStyles(markPoint);\n  }\n\n  var markLine = seriesOpt.markLine;\n\n  if (markLine) {\n    compatEC2ItemStyle(markLine);\n    compatEC3CommonStyles(markLine);\n  }\n\n  var markArea = seriesOpt.markArea;\n\n  if (markArea) {\n    compatEC3CommonStyles(markArea);\n  }\n\n  var data = seriesOpt.data;\n\n  if (seriesOpt.type === 'graph') {\n    data = data || seriesOpt.nodes;\n    var edgeData = seriesOpt.links || seriesOpt.edges;\n\n    if (edgeData && !zrUtil.isTypedArray(edgeData)) {\n      for (var i = 0; i < edgeData.length; i++) {\n        compatEC3CommonStyles(edgeData[i]);\n      }\n    }\n\n    zrUtil.each(seriesOpt.categories, function (opt) {\n      removeEC3NormalStatus(opt);\n    });\n  }\n\n  if (data && !zrUtil.isTypedArray(data)) {\n    for (var i = 0; i < data.length; i++) {\n      compatEC3CommonStyles(data[i]);\n    }\n  }\n\n  markPoint = seriesOpt.markPoint;\n\n  if (markPoint && markPoint.data) {\n    var mpData = markPoint.data;\n\n    for (var i = 0; i < mpData.length; i++) {\n      compatEC3CommonStyles(mpData[i]);\n    }\n  }\n\n  markLine = seriesOpt.markLine;\n\n  if (markLine && markLine.data) {\n    var mlData = markLine.data;\n\n    for (var i = 0; i < mlData.length; i++) {\n      if (zrUtil.isArray(mlData[i])) {\n        compatEC3CommonStyles(mlData[i][0]);\n        compatEC3CommonStyles(mlData[i][1]);\n      } else {\n        compatEC3CommonStyles(mlData[i]);\n      }\n    }\n  }\n\n  if (seriesOpt.type === 'gauge') {\n    compatTextStyle(seriesOpt, 'axisLabel');\n    compatTextStyle(seriesOpt, 'title');\n    compatTextStyle(seriesOpt, 'detail');\n  } else if (seriesOpt.type === 'treemap') {\n    convertNormalEmphasis(seriesOpt.breadcrumb, 'itemStyle');\n    zrUtil.each(seriesOpt.levels, function (opt) {\n      removeEC3NormalStatus(opt);\n    });\n  } else if (seriesOpt.type === 'tree') {\n    removeEC3NormalStatus(seriesOpt.leaves);\n  }\n}\n\nfunction toArr(o) {\n  return zrUtil.isArray(o) ? o : o ? [o] : [];\n}\n\nfunction toObj(o) {\n  return (zrUtil.isArray(o) ? o[0] : o) || {};\n}\n\nexport default function globalCompatStyle(option, isTheme) {\n  each(toArr(option.series), function (seriesOpt) {\n    isObject(seriesOpt) && processSeries(seriesOpt);\n  });\n  var axes = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'parallelAxis', 'radar'];\n  isTheme && axes.push('valueAxis', 'categoryAxis', 'logAxis', 'timeAxis');\n  each(axes, function (axisName) {\n    each(toArr(option[axisName]), function (axisOpt) {\n      if (axisOpt) {\n        compatTextStyle(axisOpt, 'axisLabel');\n        compatTextStyle(axisOpt.axisPointer, 'label');\n      }\n    });\n  });\n  each(toArr(option.parallel), function (parallelOpt) {\n    var parallelAxisDefault = parallelOpt && parallelOpt.parallelAxisDefault;\n    compatTextStyle(parallelAxisDefault, 'axisLabel');\n    compatTextStyle(parallelAxisDefault && parallelAxisDefault.axisPointer, 'label');\n  });\n  each(toArr(option.calendar), function (calendarOpt) {\n    convertNormalEmphasis(calendarOpt, 'itemStyle');\n    compatTextStyle(calendarOpt, 'dayLabel');\n    compatTextStyle(calendarOpt, 'monthLabel');\n    compatTextStyle(calendarOpt, 'yearLabel');\n  });\n  each(toArr(option.radar), function (radarOpt) {\n    compatTextStyle(radarOpt, 'name');\n\n    if (radarOpt.name && radarOpt.axisName == null) {\n      radarOpt.axisName = radarOpt.name;\n      delete radarOpt.name;\n\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateLog('name property in radar component has been changed to axisName');\n      }\n    }\n\n    if (radarOpt.nameGap != null && radarOpt.axisNameGap == null) {\n      radarOpt.axisNameGap = radarOpt.nameGap;\n      delete radarOpt.nameGap;\n\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateLog('nameGap property in radar component has been changed to axisNameGap');\n      }\n    }\n  });\n  each(toArr(option.geo), function (geoOpt) {\n    if (isObject(geoOpt)) {\n      compatEC3CommonStyles(geoOpt);\n      each(toArr(geoOpt.regions), function (regionObj) {\n        compatEC3CommonStyles(regionObj);\n      });\n    }\n  });\n  each(toArr(option.timeline), function (timelineOpt) {\n    compatEC3CommonStyles(timelineOpt);\n    convertNormalEmphasis(timelineOpt, 'label');\n    convertNormalEmphasis(timelineOpt, 'itemStyle');\n    convertNormalEmphasis(timelineOpt, 'controlStyle', true);\n    var data = timelineOpt.data;\n    zrUtil.isArray(data) && zrUtil.each(data, function (item) {\n      if (zrUtil.isObject(item)) {\n        convertNormalEmphasis(item, 'label');\n        convertNormalEmphasis(item, 'itemStyle');\n      }\n    });\n  });\n  each(toArr(option.toolbox), function (toolboxOpt) {\n    convertNormalEmphasis(toolboxOpt, 'iconStyle');\n    each(toolboxOpt.feature, function (featureOpt) {\n      convertNormalEmphasis(featureOpt, 'iconStyle');\n    });\n  });\n  compatTextStyle(toObj(option.axisPointer), 'label');\n  compatTextStyle(toObj(option.tooltip).axisPointer, 'label');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, isArray, isObject, isTypedArray, defaults } from 'zrender/lib/core/util';\nimport compatStyle from './helper/compatStyle';\nimport { normalizeToArray } from '../util/model';\nimport { deprecateLog, deprecateReplaceLog } from '../util/log';\n\nfunction get(opt, path) {\n  var pathArr = path.split(',');\n  var obj = opt;\n\n  for (var i = 0; i < pathArr.length; i++) {\n    obj = obj && obj[pathArr[i]];\n\n    if (obj == null) {\n      break;\n    }\n  }\n\n  return obj;\n}\n\nfunction set(opt, path, val, overwrite) {\n  var pathArr = path.split(',');\n  var obj = opt;\n  var key;\n  var i = 0;\n\n  for (; i < pathArr.length - 1; i++) {\n    key = pathArr[i];\n\n    if (obj[key] == null) {\n      obj[key] = {};\n    }\n\n    obj = obj[key];\n  }\n\n  if (overwrite || obj[pathArr[i]] == null) {\n    obj[pathArr[i]] = val;\n  }\n}\n\nfunction compatLayoutProperties(option) {\n  option && each(LAYOUT_PROPERTIES, function (prop) {\n    if (prop[0] in option && !(prop[1] in option)) {\n      option[prop[1]] = option[prop[0]];\n    }\n  });\n}\n\nvar LAYOUT_PROPERTIES = [['x', 'left'], ['y', 'top'], ['x2', 'right'], ['y2', 'bottom']];\nvar COMPATITABLE_COMPONENTS = ['grid', 'geo', 'parallel', 'legend', 'toolbox', 'title', 'visualMap', 'dataZoom', 'timeline'];\nvar BAR_ITEM_STYLE_MAP = [['borderRadius', 'barBorderRadius'], ['borderColor', 'barBorderColor'], ['borderWidth', 'barBorderWidth']];\n\nfunction compatBarItemStyle(option) {\n  var itemStyle = option && option.itemStyle;\n\n  if (itemStyle) {\n    for (var i = 0; i < BAR_ITEM_STYLE_MAP.length; i++) {\n      var oldName = BAR_ITEM_STYLE_MAP[i][1];\n      var newName = BAR_ITEM_STYLE_MAP[i][0];\n\n      if (itemStyle[oldName] != null) {\n        itemStyle[newName] = itemStyle[oldName];\n\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog(oldName, newName);\n        }\n      }\n    }\n  }\n}\n\nfunction compatPieLabel(option) {\n  if (!option) {\n    return;\n  }\n\n  if (option.alignTo === 'edge' && option.margin != null && option.edgeDistance == null) {\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateReplaceLog('label.margin', 'label.edgeDistance', 'pie');\n    }\n\n    option.edgeDistance = option.margin;\n  }\n}\n\nfunction compatSunburstState(option) {\n  if (!option) {\n    return;\n  }\n\n  if (option.downplay && !option.blur) {\n    option.blur = option.downplay;\n\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateReplaceLog('downplay', 'blur', 'sunburst');\n    }\n  }\n}\n\nfunction compatGraphFocus(option) {\n  if (!option) {\n    return;\n  }\n\n  if (option.focusNodeAdjacency != null) {\n    option.emphasis = option.emphasis || {};\n\n    if (option.emphasis.focus == null) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateReplaceLog('focusNodeAdjacency', 'emphasis: { focus: \\'adjacency\\'}', 'graph/sankey');\n      }\n\n      option.emphasis.focus = 'adjacency';\n    }\n  }\n}\n\nfunction traverseTree(data, cb) {\n  if (data) {\n    for (var i = 0; i < data.length; i++) {\n      cb(data[i]);\n      data[i] && traverseTree(data[i].children, cb);\n    }\n  }\n}\n\nexport default function globalBackwardCompat(option, isTheme) {\n  compatStyle(option, isTheme);\n  option.series = normalizeToArray(option.series);\n  each(option.series, function (seriesOpt) {\n    if (!isObject(seriesOpt)) {\n      return;\n    }\n\n    var seriesType = seriesOpt.type;\n\n    if (seriesType === 'line') {\n      if (seriesOpt.clipOverflow != null) {\n        seriesOpt.clip = seriesOpt.clipOverflow;\n\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog('clipOverflow', 'clip', 'line');\n        }\n      }\n    } else if (seriesType === 'pie' || seriesType === 'gauge') {\n      if (seriesOpt.clockWise != null) {\n        seriesOpt.clockwise = seriesOpt.clockWise;\n\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog('clockWise', 'clockwise');\n        }\n      }\n\n      compatPieLabel(seriesOpt.label);\n      var data = seriesOpt.data;\n\n      if (data && !isTypedArray(data)) {\n        for (var i = 0; i < data.length; i++) {\n          compatPieLabel(data[i]);\n        }\n      }\n\n      if (seriesOpt.hoverOffset != null) {\n        seriesOpt.emphasis = seriesOpt.emphasis || {};\n\n        if (seriesOpt.emphasis.scaleSize = null) {\n          if (process.env.NODE_ENV !== 'production') {\n            deprecateReplaceLog('hoverOffset', 'emphasis.scaleSize');\n          }\n\n          seriesOpt.emphasis.scaleSize = seriesOpt.hoverOffset;\n        }\n      }\n    } else if (seriesType === 'gauge') {\n      var pointerColor = get(seriesOpt, 'pointer.color');\n      pointerColor != null && set(seriesOpt, 'itemStyle.color', pointerColor);\n    } else if (seriesType === 'bar') {\n      compatBarItemStyle(seriesOpt);\n      compatBarItemStyle(seriesOpt.backgroundStyle);\n      compatBarItemStyle(seriesOpt.emphasis);\n      var data = seriesOpt.data;\n\n      if (data && !isTypedArray(data)) {\n        for (var i = 0; i < data.length; i++) {\n          if (typeof data[i] === 'object') {\n            compatBarItemStyle(data[i]);\n            compatBarItemStyle(data[i] && data[i].emphasis);\n          }\n        }\n      }\n    } else if (seriesType === 'sunburst') {\n      var highlightPolicy = seriesOpt.highlightPolicy;\n\n      if (highlightPolicy) {\n        seriesOpt.emphasis = seriesOpt.emphasis || {};\n\n        if (!seriesOpt.emphasis.focus) {\n          seriesOpt.emphasis.focus = highlightPolicy;\n\n          if (process.env.NODE_ENV !== 'production') {\n            deprecateReplaceLog('highlightPolicy', 'emphasis.focus', 'sunburst');\n          }\n        }\n      }\n\n      compatSunburstState(seriesOpt);\n      traverseTree(seriesOpt.data, compatSunburstState);\n    } else if (seriesType === 'graph' || seriesType === 'sankey') {\n      compatGraphFocus(seriesOpt);\n    } else if (seriesType === 'map') {\n      if (seriesOpt.mapType && !seriesOpt.map) {\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog('mapType', 'map', 'map');\n        }\n\n        seriesOpt.map = seriesOpt.mapType;\n      }\n\n      if (seriesOpt.mapLocation) {\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateLog('`mapLocation` is not used anymore.');\n        }\n\n        defaults(seriesOpt, seriesOpt.mapLocation);\n      }\n    }\n\n    if (seriesOpt.hoverAnimation != null) {\n      seriesOpt.emphasis = seriesOpt.emphasis || {};\n\n      if (seriesOpt.emphasis && seriesOpt.emphasis.scale == null) {\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog('hoverAnimation', 'emphasis.scale');\n        }\n\n        seriesOpt.emphasis.scale = seriesOpt.hoverAnimation;\n      }\n    }\n\n    compatLayoutProperties(seriesOpt);\n  });\n\n  if (option.dataRange) {\n    option.visualMap = option.dataRange;\n  }\n\n  each(COMPATITABLE_COMPONENTS, function (componentName) {\n    var options = option[componentName];\n\n    if (options) {\n      if (!isArray(options)) {\n        options = [options];\n      }\n\n      each(options, function (option) {\n        compatLayoutProperties(option);\n      });\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, each } from 'zrender/lib/core/util';\nexport default function dataStack(ecModel) {\n  var stackInfoMap = createHashMap();\n  ecModel.eachSeries(function (seriesModel) {\n    var stack = seriesModel.get('stack');\n\n    if (stack) {\n      var stackInfoList = stackInfoMap.get(stack) || stackInfoMap.set(stack, []);\n      var data = seriesModel.getData();\n      var stackInfo = {\n        stackResultDimension: data.getCalculationInfo('stackResultDimension'),\n        stackedOverDimension: data.getCalculationInfo('stackedOverDimension'),\n        stackedDimension: data.getCalculationInfo('stackedDimension'),\n        stackedByDimension: data.getCalculationInfo('stackedByDimension'),\n        isStackedByIndex: data.getCalculationInfo('isStackedByIndex'),\n        data: data,\n        seriesModel: seriesModel\n      };\n\n      if (!stackInfo.stackedDimension || !(stackInfo.isStackedByIndex || stackInfo.stackedByDimension)) {\n        return;\n      }\n\n      stackInfoList.length && data.setCalculationInfo('stackedOnSeries', stackInfoList[stackInfoList.length - 1].seriesModel);\n      stackInfoList.push(stackInfo);\n    }\n  });\n  stackInfoMap.each(calculateStack);\n}\n\nfunction calculateStack(stackInfoList) {\n  each(stackInfoList, function (targetStackInfo, idxInStack) {\n    var resultVal = [];\n    var resultNaN = [NaN, NaN];\n    var dims = [targetStackInfo.stackResultDimension, targetStackInfo.stackedOverDimension];\n    var targetData = targetStackInfo.data;\n    var isStackedByIndex = targetStackInfo.isStackedByIndex;\n    var newData = targetData.map(dims, function (v0, v1, dataIndex) {\n      var sum = targetData.get(targetStackInfo.stackedDimension, dataIndex);\n\n      if (isNaN(sum)) {\n        return resultNaN;\n      }\n\n      var byValue;\n      var stackedDataRawIndex;\n\n      if (isStackedByIndex) {\n        stackedDataRawIndex = targetData.getRawIndex(dataIndex);\n      } else {\n        byValue = targetData.get(targetStackInfo.stackedByDimension, dataIndex);\n      }\n\n      var stackedOver = NaN;\n\n      for (var j = idxInStack - 1; j >= 0; j--) {\n        var stackInfo = stackInfoList[j];\n\n        if (!isStackedByIndex) {\n          stackedDataRawIndex = stackInfo.data.rawIndexOf(stackInfo.stackedByDimension, byValue);\n        }\n\n        if (stackedDataRawIndex >= 0) {\n          var val = stackInfo.data.getByRawIndex(stackInfo.stackResultDimension, stackedDataRawIndex);\n\n          if (sum >= 0 && val > 0 || sum <= 0 && val < 0) {\n            sum += val;\n            stackedOver = val;\n            break;\n          }\n        }\n      }\n\n      resultVal[0] = sum;\n      resultVal[1] = stackedOver;\n      return resultVal;\n    });\n    targetData.hostModel.setData(newData);\n    targetStackInfo.data = newData;\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isTypedArray, clone, createHashMap, isArray, isObject, isArrayLike, hasOwn, assert, each, map, isNumber, isString } from 'zrender/lib/core/util';\nimport { SOURCE_FORMAT_ORIGINAL, SERIES_LAYOUT_BY_COLUMN, SOURCE_FORMAT_UNKNOWN, SOURCE_FORMAT_KEYED_COLUMNS, SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ARRAY_ROWS, SOURCE_FORMAT_OBJECT_ROWS, SERIES_LAYOUT_BY_ROW } from '../util/types';\nimport { getDataItemValue } from '../util/model';\n;\n\nvar SourceImpl = function () {\n  function SourceImpl(fields) {\n    this.data = fields.data || (fields.sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS ? {} : []);\n    this.sourceFormat = fields.sourceFormat || SOURCE_FORMAT_UNKNOWN;\n    this.seriesLayoutBy = fields.seriesLayoutBy || SERIES_LAYOUT_BY_COLUMN;\n    this.startIndex = fields.startIndex || 0;\n    this.dimensionsDefine = fields.dimensionsDefine;\n    this.dimensionsDetectedCount = fields.dimensionsDetectedCount;\n    this.encodeDefine = fields.encodeDefine;\n    this.metaRawOption = fields.metaRawOption;\n  }\n\n  return SourceImpl;\n}();\n\nexport function isSourceInstance(val) {\n  return val instanceof SourceImpl;\n}\nexport function createSource(sourceData, thisMetaRawOption, sourceFormat, encodeDefine) {\n  sourceFormat = sourceFormat || detectSourceFormat(sourceData);\n  var seriesLayoutBy = thisMetaRawOption.seriesLayoutBy;\n  var determined = determineSourceDimensions(sourceData, sourceFormat, seriesLayoutBy, thisMetaRawOption.sourceHeader, thisMetaRawOption.dimensions);\n  var source = new SourceImpl({\n    data: sourceData,\n    sourceFormat: sourceFormat,\n    seriesLayoutBy: seriesLayoutBy,\n    dimensionsDefine: determined.dimensionsDefine,\n    startIndex: determined.startIndex,\n    dimensionsDetectedCount: determined.dimensionsDetectedCount,\n    encodeDefine: makeEncodeDefine(encodeDefine),\n    metaRawOption: clone(thisMetaRawOption)\n  });\n  return source;\n}\nexport function createSourceFromSeriesDataOption(data) {\n  return new SourceImpl({\n    data: data,\n    sourceFormat: isTypedArray(data) ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL\n  });\n}\nexport function cloneSourceShallow(source) {\n  return new SourceImpl({\n    data: source.data,\n    sourceFormat: source.sourceFormat,\n    seriesLayoutBy: source.seriesLayoutBy,\n    dimensionsDefine: clone(source.dimensionsDefine),\n    startIndex: source.startIndex,\n    dimensionsDetectedCount: source.dimensionsDetectedCount,\n    encodeDefine: makeEncodeDefine(source.encodeDefine)\n  });\n}\n\nfunction makeEncodeDefine(encodeDefine) {\n  return encodeDefine ? createHashMap(encodeDefine) : null;\n}\n\nexport function detectSourceFormat(data) {\n  var sourceFormat = SOURCE_FORMAT_UNKNOWN;\n\n  if (isTypedArray(data)) {\n    sourceFormat = SOURCE_FORMAT_TYPED_ARRAY;\n  } else if (isArray(data)) {\n    if (data.length === 0) {\n      sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\n    }\n\n    for (var i = 0, len = data.length; i < len; i++) {\n      var item = data[i];\n\n      if (item == null) {\n        continue;\n      } else if (isArray(item)) {\n        sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\n        break;\n      } else if (isObject(item)) {\n        sourceFormat = SOURCE_FORMAT_OBJECT_ROWS;\n        break;\n      }\n    }\n  } else if (isObject(data)) {\n    for (var key in data) {\n      if (hasOwn(data, key) && isArrayLike(data[key])) {\n        sourceFormat = SOURCE_FORMAT_KEYED_COLUMNS;\n        break;\n      }\n    }\n  }\n\n  return sourceFormat;\n}\n\nfunction determineSourceDimensions(data, sourceFormat, seriesLayoutBy, sourceHeader, dimensionsDefine) {\n  var dimensionsDetectedCount;\n  var startIndex;\n\n  if (!data) {\n    return {\n      dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\n      startIndex: startIndex,\n      dimensionsDetectedCount: dimensionsDetectedCount\n    };\n  }\n\n  if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n    var dataArrayRows = data;\n\n    if (sourceHeader === 'auto' || sourceHeader == null) {\n      arrayRowsTravelFirst(function (val) {\n        if (val != null && val !== '-') {\n          if (isString(val)) {\n            startIndex == null && (startIndex = 1);\n          } else {\n            startIndex = 0;\n          }\n        }\n      }, seriesLayoutBy, dataArrayRows, 10);\n    } else {\n      startIndex = isNumber(sourceHeader) ? sourceHeader : sourceHeader ? 1 : 0;\n    }\n\n    if (!dimensionsDefine && startIndex === 1) {\n      dimensionsDefine = [];\n      arrayRowsTravelFirst(function (val, index) {\n        dimensionsDefine[index] = val != null ? val + '' : '';\n      }, seriesLayoutBy, dataArrayRows, Infinity);\n    }\n\n    dimensionsDetectedCount = dimensionsDefine ? dimensionsDefine.length : seriesLayoutBy === SERIES_LAYOUT_BY_ROW ? dataArrayRows.length : dataArrayRows[0] ? dataArrayRows[0].length : null;\n  } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n    if (!dimensionsDefine) {\n      dimensionsDefine = objectRowsCollectDimensions(data);\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n    if (!dimensionsDefine) {\n      dimensionsDefine = [];\n      each(data, function (colArr, key) {\n        dimensionsDefine.push(key);\n      });\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n    var value0 = getDataItemValue(data[0]);\n    dimensionsDetectedCount = isArray(value0) && value0.length || 1;\n  } else if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!!dimensionsDefine, 'dimensions must be given if data is TypedArray.');\n    }\n  }\n\n  return {\n    startIndex: startIndex,\n    dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\n    dimensionsDetectedCount: dimensionsDetectedCount\n  };\n}\n\nfunction objectRowsCollectDimensions(data) {\n  var firstIndex = 0;\n  var obj;\n\n  while (firstIndex < data.length && !(obj = data[firstIndex++])) {}\n\n  if (obj) {\n    var dimensions_1 = [];\n    each(obj, function (value, key) {\n      dimensions_1.push(key);\n    });\n    return dimensions_1;\n  }\n}\n\nfunction normalizeDimensionsOption(dimensionsDefine) {\n  if (!dimensionsDefine) {\n    return;\n  }\n\n  var nameMap = createHashMap();\n  return map(dimensionsDefine, function (rawItem, index) {\n    rawItem = isObject(rawItem) ? rawItem : {\n      name: rawItem\n    };\n    var item = {\n      name: rawItem.name,\n      displayName: rawItem.displayName,\n      type: rawItem.type\n    };\n\n    if (item.name == null) {\n      return item;\n    }\n\n    item.name += '';\n\n    if (item.displayName == null) {\n      item.displayName = item.name;\n    }\n\n    var exist = nameMap.get(item.name);\n\n    if (!exist) {\n      nameMap.set(item.name, {\n        count: 1\n      });\n    } else {\n      item.name += '-' + exist.count++;\n    }\n\n    return item;\n  });\n}\n\nfunction arrayRowsTravelFirst(cb, seriesLayoutBy, data, maxLoop) {\n  if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\n    for (var i = 0; i < data.length && i < maxLoop; i++) {\n      cb(data[i] ? data[i][0] : null, i);\n    }\n  } else {\n    var value0 = data[0] || [];\n\n    for (var i = 0; i < value0.length && i < maxLoop; i++) {\n      cb(value0[i], i);\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar _a, _b, _c;\n\nimport { isTypedArray, extend, assert, each, isObject, bind } from 'zrender/lib/core/util';\nimport { getDataItemValue } from '../../util/model';\nimport { createSourceFromSeriesDataOption, isSourceInstance } from '../Source';\nimport { SOURCE_FORMAT_ORIGINAL, SOURCE_FORMAT_OBJECT_ROWS, SOURCE_FORMAT_KEYED_COLUMNS, SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ARRAY_ROWS, SERIES_LAYOUT_BY_COLUMN, SERIES_LAYOUT_BY_ROW } from '../../util/types';\nvar providerMethods;\nvar mountMethods;\n\nvar DefaultDataProvider = function () {\n  function DefaultDataProvider(sourceParam, dimSize) {\n    var source = !isSourceInstance(sourceParam) ? createSourceFromSeriesDataOption(sourceParam) : sourceParam;\n    this._source = source;\n    var data = this._data = source.data;\n\n    if (source.sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (dimSize == null) {\n          throw new Error('Typed array data must specify dimension size');\n        }\n      }\n\n      this._offset = 0;\n      this._dimSize = dimSize;\n      this._data = data;\n    }\n\n    mountMethods(this, data, source);\n  }\n\n  DefaultDataProvider.prototype.getSource = function () {\n    return this._source;\n  };\n\n  DefaultDataProvider.prototype.count = function () {\n    return 0;\n  };\n\n  DefaultDataProvider.prototype.getItem = function (idx, out) {\n    return;\n  };\n\n  DefaultDataProvider.prototype.appendData = function (newData) {};\n\n  DefaultDataProvider.prototype.clean = function () {};\n\n  DefaultDataProvider.protoInitialize = function () {\n    var proto = DefaultDataProvider.prototype;\n    proto.pure = false;\n    proto.persistent = true;\n  }();\n\n  DefaultDataProvider.internalField = function () {\n    var _a;\n\n    mountMethods = function (provider, data, source) {\n      var sourceFormat = source.sourceFormat;\n      var seriesLayoutBy = source.seriesLayoutBy;\n      var startIndex = source.startIndex;\n      var dimsDef = source.dimensionsDefine;\n      var methods = providerMethods[getMethodMapKey(sourceFormat, seriesLayoutBy)];\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(methods, 'Invalide sourceFormat: ' + sourceFormat);\n      }\n\n      extend(provider, methods);\n\n      if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n        provider.getItem = getItemForTypedArray;\n        provider.count = countForTypedArray;\n        provider.fillStorage = fillStorageForTypedArray;\n      } else {\n        var rawItemGetter = getRawSourceItemGetter(sourceFormat, seriesLayoutBy);\n        provider.getItem = bind(rawItemGetter, null, data, startIndex, dimsDef);\n        var rawCounter = getRawSourceDataCounter(sourceFormat, seriesLayoutBy);\n        provider.count = bind(rawCounter, null, data, startIndex, dimsDef);\n      }\n    };\n\n    var getItemForTypedArray = function (idx, out) {\n      idx = idx - this._offset;\n      out = out || [];\n      var data = this._data;\n      var dimSize = this._dimSize;\n      var offset = dimSize * idx;\n\n      for (var i = 0; i < dimSize; i++) {\n        out[i] = data[offset + i];\n      }\n\n      return out;\n    };\n\n    var fillStorageForTypedArray = function (start, end, storage, extent) {\n      var data = this._data;\n      var dimSize = this._dimSize;\n\n      for (var dim = 0; dim < dimSize; dim++) {\n        var dimExtent = extent[dim];\n        var min = dimExtent[0] == null ? Infinity : dimExtent[0];\n        var max = dimExtent[1] == null ? -Infinity : dimExtent[1];\n        var count = end - start;\n        var arr = storage[dim];\n\n        for (var i = 0; i < count; i++) {\n          var val = data[i * dimSize + dim];\n          arr[start + i] = val;\n          val < min && (min = val);\n          val > max && (max = val);\n        }\n\n        dimExtent[0] = min;\n        dimExtent[1] = max;\n      }\n    };\n\n    var countForTypedArray = function () {\n      return this._data ? this._data.length / this._dimSize : 0;\n    };\n\n    providerMethods = (_a = {}, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = {\n      pure: true,\n      appendData: appendDataSimply\n    }, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = {\n      pure: true,\n      appendData: function () {\n        throw new Error('Do not support appendData when set seriesLayoutBy: \"row\".');\n      }\n    }, _a[SOURCE_FORMAT_OBJECT_ROWS] = {\n      pure: true,\n      appendData: appendDataSimply\n    }, _a[SOURCE_FORMAT_KEYED_COLUMNS] = {\n      pure: true,\n      appendData: function (newData) {\n        var data = this._data;\n        each(newData, function (newCol, key) {\n          var oldCol = data[key] || (data[key] = []);\n\n          for (var i = 0; i < (newCol || []).length; i++) {\n            oldCol.push(newCol[i]);\n          }\n        });\n      }\n    }, _a[SOURCE_FORMAT_ORIGINAL] = {\n      appendData: appendDataSimply\n    }, _a[SOURCE_FORMAT_TYPED_ARRAY] = {\n      persistent: false,\n      pure: true,\n      appendData: function (newData) {\n        if (process.env.NODE_ENV !== 'production') {\n          assert(isTypedArray(newData), 'Added data must be TypedArray if data in initialization is TypedArray');\n        }\n\n        this._data = newData;\n      },\n      clean: function () {\n        this._offset += this.count();\n        this._data = null;\n      }\n    }, _a);\n\n    function appendDataSimply(newData) {\n      for (var i = 0; i < newData.length; i++) {\n        this._data.push(newData[i]);\n      }\n    }\n  }();\n\n  return DefaultDataProvider;\n}();\n\nexport { DefaultDataProvider };\n\nvar getItemSimply = function (rawData, startIndex, dimsDef, idx) {\n  return rawData[idx];\n};\n\nvar rawSourceItemGetterMap = (_a = {}, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef, idx) {\n  return rawData[idx + startIndex];\n}, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef, idx) {\n  idx += startIndex;\n  var item = [];\n  var data = rawData;\n\n  for (var i = 0; i < data.length; i++) {\n    var row = data[i];\n    item.push(row ? row[idx] : null);\n  }\n\n  return item;\n}, _a[SOURCE_FORMAT_OBJECT_ROWS] = getItemSimply, _a[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef, idx) {\n  var item = [];\n\n  for (var i = 0; i < dimsDef.length; i++) {\n    var dimName = dimsDef[i].name;\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (dimName == null) {\n        throw new Error();\n      }\n    }\n\n    var col = rawData[dimName];\n    item.push(col ? col[idx] : null);\n  }\n\n  return item;\n}, _a[SOURCE_FORMAT_ORIGINAL] = getItemSimply, _a);\nexport function getRawSourceItemGetter(sourceFormat, seriesLayoutBy) {\n  var method = rawSourceItemGetterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\n\n  if (process.env.NODE_ENV !== 'production') {\n    assert(method, 'Do not suppport get item on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\n  }\n\n  return method;\n}\n\nvar countSimply = function (rawData, startIndex, dimsDef) {\n  return rawData.length;\n};\n\nvar rawSourceDataCounterMap = (_b = {}, _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef) {\n  return Math.max(0, rawData.length - startIndex);\n}, _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef) {\n  var row = rawData[0];\n  return row ? Math.max(0, row.length - startIndex) : 0;\n}, _b[SOURCE_FORMAT_OBJECT_ROWS] = countSimply, _b[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef) {\n  var dimName = dimsDef[0].name;\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (dimName == null) {\n      throw new Error();\n    }\n  }\n\n  var col = rawData[dimName];\n  return col ? col.length : 0;\n}, _b[SOURCE_FORMAT_ORIGINAL] = countSimply, _b);\nexport function getRawSourceDataCounter(sourceFormat, seriesLayoutBy) {\n  var method = rawSourceDataCounterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\n\n  if (process.env.NODE_ENV !== 'production') {\n    assert(method, 'Do not suppport count on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\n  }\n\n  return method;\n}\n\nvar getRawValueSimply = function (dataItem, dimIndex, dimName) {\n  return dimIndex != null ? dataItem[dimIndex] : dataItem;\n};\n\nvar rawSourceValueGetterMap = (_c = {}, _c[SOURCE_FORMAT_ARRAY_ROWS] = getRawValueSimply, _c[SOURCE_FORMAT_OBJECT_ROWS] = function (dataItem, dimIndex, dimName) {\n  return dimIndex != null ? dataItem[dimName] : dataItem;\n}, _c[SOURCE_FORMAT_KEYED_COLUMNS] = getRawValueSimply, _c[SOURCE_FORMAT_ORIGINAL] = function (dataItem, dimIndex, dimName) {\n  var value = getDataItemValue(dataItem);\n  return dimIndex == null || !(value instanceof Array) ? value : value[dimIndex];\n}, _c[SOURCE_FORMAT_TYPED_ARRAY] = getRawValueSimply, _c);\nexport function getRawSourceValueGetter(sourceFormat) {\n  var method = rawSourceValueGetterMap[sourceFormat];\n\n  if (process.env.NODE_ENV !== 'production') {\n    assert(method, 'Do not suppport get value on \"' + sourceFormat + '\".');\n  }\n\n  return method;\n}\n\nfunction getMethodMapKey(sourceFormat, seriesLayoutBy) {\n  return sourceFormat === SOURCE_FORMAT_ARRAY_ROWS ? sourceFormat + '_' + seriesLayoutBy : sourceFormat;\n}\n\nexport function retrieveRawValue(data, dataIndex, dim) {\n  if (!data) {\n    return;\n  }\n\n  var dataItem = data.getRawDataItem(dataIndex);\n\n  if (dataItem == null) {\n    return;\n  }\n\n  var sourceFormat = data.getProvider().getSource().sourceFormat;\n  var dimName;\n  var dimIndex;\n  var dimInfo = data.getDimensionInfo(dim);\n\n  if (dimInfo) {\n    dimName = dimInfo.name;\n    dimIndex = dimInfo.index;\n  }\n\n  return getRawSourceValueGetter(sourceFormat)(dataItem, dimIndex, dimName);\n}\nexport function retrieveRawAttr(data, dataIndex, attr) {\n  if (!data) {\n    return;\n  }\n\n  var sourceFormat = data.getProvider().getSource().sourceFormat;\n\n  if (sourceFormat !== SOURCE_FORMAT_ORIGINAL && sourceFormat !== SOURCE_FORMAT_OBJECT_ROWS) {\n    return;\n  }\n\n  var dataItem = data.getRawDataItem(dataIndex);\n\n  if (sourceFormat === SOURCE_FORMAT_ORIGINAL && !isObject(dataItem)) {\n    dataItem = null;\n  }\n\n  if (dataItem) {\n    return dataItem[attr];\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { retrieveRawValue } from '../../data/helper/dataProvider';\nimport { formatTpl } from '../../util/format';\nimport { makePrintable } from '../../util/log';\nvar DIMENSION_LABEL_REG = /\\{@(.+?)\\}/g;\n\nvar DataFormatMixin = function () {\n  function DataFormatMixin() {}\n\n  DataFormatMixin.prototype.getDataParams = function (dataIndex, dataType) {\n    var data = this.getData(dataType);\n    var rawValue = this.getRawValue(dataIndex, dataType);\n    var rawDataIndex = data.getRawIndex(dataIndex);\n    var name = data.getName(dataIndex);\n    var itemOpt = data.getRawDataItem(dataIndex);\n    var style = data.getItemVisual(dataIndex, 'style');\n    var color = style && style[data.getItemVisual(dataIndex, 'drawType') || 'fill'];\n    var borderColor = style && style.stroke;\n    var mainType = this.mainType;\n    var isSeries = mainType === 'series';\n    var userOutput = data.userOutput;\n    return {\n      componentType: mainType,\n      componentSubType: this.subType,\n      componentIndex: this.componentIndex,\n      seriesType: isSeries ? this.subType : null,\n      seriesIndex: this.seriesIndex,\n      seriesId: isSeries ? this.id : null,\n      seriesName: isSeries ? this.name : null,\n      name: name,\n      dataIndex: rawDataIndex,\n      data: itemOpt,\n      dataType: dataType,\n      value: rawValue,\n      color: color,\n      borderColor: borderColor,\n      dimensionNames: userOutput ? userOutput.dimensionNames : null,\n      encode: userOutput ? userOutput.encode : null,\n      $vars: ['seriesName', 'name', 'value']\n    };\n  };\n\n  DataFormatMixin.prototype.getFormattedLabel = function (dataIndex, status, dataType, labelDimIndex, formatter, extendParams) {\n    status = status || 'normal';\n    var data = this.getData(dataType);\n    var params = this.getDataParams(dataIndex, dataType);\n\n    if (extendParams) {\n      params.value = extendParams.interpolatedValue;\n    }\n\n    if (labelDimIndex != null && zrUtil.isArray(params.value)) {\n      params.value = params.value[labelDimIndex];\n    }\n\n    if (!formatter) {\n      var itemModel = data.getItemModel(dataIndex);\n      formatter = itemModel.get(status === 'normal' ? ['label', 'formatter'] : [status, 'label', 'formatter']);\n    }\n\n    if (typeof formatter === 'function') {\n      params.status = status;\n      params.dimensionIndex = labelDimIndex;\n      return formatter(params);\n    } else if (typeof formatter === 'string') {\n      var str = formatTpl(formatter, params);\n      return str.replace(DIMENSION_LABEL_REG, function (origin, dimStr) {\n        var len = dimStr.length;\n        var dimLoose = dimStr.charAt(0) === '[' && dimStr.charAt(len - 1) === ']' ? +dimStr.slice(1, len - 1) : dimStr;\n        var val = retrieveRawValue(data, dataIndex, dimLoose);\n\n        if (extendParams && zrUtil.isArray(extendParams.interpolatedValue)) {\n          var dimInfo = data.getDimensionInfo(dimLoose);\n\n          if (dimInfo) {\n            val = extendParams.interpolatedValue[dimInfo.index];\n          }\n        }\n\n        return val != null ? val + '' : '';\n      });\n    }\n  };\n\n  DataFormatMixin.prototype.getRawValue = function (idx, dataType) {\n    return retrieveRawValue(this.getData(dataType), idx);\n  };\n\n  DataFormatMixin.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    return;\n  };\n\n  return DataFormatMixin;\n}();\n\nexport { DataFormatMixin };\n;\nexport function normalizeTooltipFormatResult(result) {\n  var markupText;\n  var markupFragment;\n\n  if (zrUtil.isObject(result)) {\n    if (result.type) {\n      markupFragment = result;\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn('The return type of `formatTooltip` is not supported: ' + makePrintable(result));\n      }\n    }\n  } else {\n    markupText = result;\n  }\n\n  return {\n    markupText: markupText,\n    markupFragment: markupFragment\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { assert, isArray } from 'zrender/lib/core/util';\n;\nexport function createTask(define) {\n  return new Task(define);\n}\n\nvar Task = function () {\n  function Task(define) {\n    define = define || {};\n    this._reset = define.reset;\n    this._plan = define.plan;\n    this._count = define.count;\n    this._onDirty = define.onDirty;\n    this._dirty = true;\n  }\n\n  Task.prototype.perform = function (performArgs) {\n    var upTask = this._upstream;\n    var skip = performArgs && performArgs.skip;\n\n    if (this._dirty && upTask) {\n      var context = this.context;\n      context.data = context.outputData = upTask.context.outputData;\n    }\n\n    if (this.__pipeline) {\n      this.__pipeline.currentTask = this;\n    }\n\n    var planResult;\n\n    if (this._plan && !skip) {\n      planResult = this._plan(this.context);\n    }\n\n    var lastModBy = normalizeModBy(this._modBy);\n    var lastModDataCount = this._modDataCount || 0;\n    var modBy = normalizeModBy(performArgs && performArgs.modBy);\n    var modDataCount = performArgs && performArgs.modDataCount || 0;\n\n    if (lastModBy !== modBy || lastModDataCount !== modDataCount) {\n      planResult = 'reset';\n    }\n\n    function normalizeModBy(val) {\n      !(val >= 1) && (val = 1);\n      return val;\n    }\n\n    var forceFirstProgress;\n\n    if (this._dirty || planResult === 'reset') {\n      this._dirty = false;\n      forceFirstProgress = this._doReset(skip);\n    }\n\n    this._modBy = modBy;\n    this._modDataCount = modDataCount;\n    var step = performArgs && performArgs.step;\n\n    if (upTask) {\n      if (process.env.NODE_ENV !== 'production') {\n        assert(upTask._outputDueEnd != null);\n      }\n\n      this._dueEnd = upTask._outputDueEnd;\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        assert(!this._progress || this._count);\n      }\n\n      this._dueEnd = this._count ? this._count(this.context) : Infinity;\n    }\n\n    if (this._progress) {\n      var start = this._dueIndex;\n      var end = Math.min(step != null ? this._dueIndex + step : Infinity, this._dueEnd);\n\n      if (!skip && (forceFirstProgress || start < end)) {\n        var progress = this._progress;\n\n        if (isArray(progress)) {\n          for (var i = 0; i < progress.length; i++) {\n            this._doProgress(progress[i], start, end, modBy, modDataCount);\n          }\n        } else {\n          this._doProgress(progress, start, end, modBy, modDataCount);\n        }\n      }\n\n      this._dueIndex = end;\n      var outputDueEnd = this._settedOutputEnd != null ? this._settedOutputEnd : end;\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(outputDueEnd >= this._outputDueEnd);\n      }\n\n      this._outputDueEnd = outputDueEnd;\n    } else {\n      this._dueIndex = this._outputDueEnd = this._settedOutputEnd != null ? this._settedOutputEnd : this._dueEnd;\n    }\n\n    return this.unfinished();\n  };\n\n  Task.prototype.dirty = function () {\n    this._dirty = true;\n    this._onDirty && this._onDirty(this.context);\n  };\n\n  Task.prototype._doProgress = function (progress, start, end, modBy, modDataCount) {\n    iterator.reset(start, end, modBy, modDataCount);\n    this._callingProgress = progress;\n\n    this._callingProgress({\n      start: start,\n      end: end,\n      count: end - start,\n      next: iterator.next\n    }, this.context);\n  };\n\n  Task.prototype._doReset = function (skip) {\n    this._dueIndex = this._outputDueEnd = this._dueEnd = 0;\n    this._settedOutputEnd = null;\n    var progress;\n    var forceFirstProgress;\n\n    if (!skip && this._reset) {\n      progress = this._reset(this.context);\n\n      if (progress && progress.progress) {\n        forceFirstProgress = progress.forceFirstProgress;\n        progress = progress.progress;\n      }\n\n      if (isArray(progress) && !progress.length) {\n        progress = null;\n      }\n    }\n\n    this._progress = progress;\n    this._modBy = this._modDataCount = null;\n    var downstream = this._downstream;\n    downstream && downstream.dirty();\n    return forceFirstProgress;\n  };\n\n  Task.prototype.unfinished = function () {\n    return this._progress && this._dueIndex < this._dueEnd;\n  };\n\n  Task.prototype.pipe = function (downTask) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(downTask && !downTask._disposed && downTask !== this);\n    }\n\n    if (this._downstream !== downTask || this._dirty) {\n      this._downstream = downTask;\n      downTask._upstream = this;\n      downTask.dirty();\n    }\n  };\n\n  Task.prototype.dispose = function () {\n    if (this._disposed) {\n      return;\n    }\n\n    this._upstream && (this._upstream._downstream = null);\n    this._downstream && (this._downstream._upstream = null);\n    this._dirty = false;\n    this._disposed = true;\n  };\n\n  Task.prototype.getUpstream = function () {\n    return this._upstream;\n  };\n\n  Task.prototype.getDownstream = function () {\n    return this._downstream;\n  };\n\n  Task.prototype.setOutputEnd = function (end) {\n    this._outputDueEnd = this._settedOutputEnd = end;\n  };\n\n  return Task;\n}();\n\nexport { Task };\n\nvar iterator = function () {\n  var end;\n  var current;\n  var modBy;\n  var modDataCount;\n  var winCount;\n  var it = {\n    reset: function (s, e, sStep, sCount) {\n      current = s;\n      end = e;\n      modBy = sStep;\n      modDataCount = sCount;\n      winCount = Math.ceil(modDataCount / modBy);\n      it.next = modBy > 1 && modDataCount > 0 ? modNext : sequentialNext;\n    }\n  };\n  return it;\n\n  function sequentialNext() {\n    return current < end ? current++ : null;\n  }\n\n  function modNext() {\n    var dataIndex = current % winCount * modBy + Math.ceil(current / winCount);\n    var result = current >= end ? null : dataIndex < modDataCount ? dataIndex : current;\n    current++;\n    return result;\n  }\n}();","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parseDate, numericToNumber } from '../../util/number';\nimport { createHashMap, trim, hasOwn } from 'zrender/lib/core/util';\nimport { throwError } from '../../util/log';\nexport function parseDataValue(value, opt) {\n  var dimType = opt && opt.type;\n\n  if (dimType === 'ordinal') {\n    var ordinalMeta = opt && opt.ordinalMeta;\n    return ordinalMeta ? ordinalMeta.parseAndCollect(value) : value;\n  }\n\n  if (dimType === 'time' && typeof value !== 'number' && value != null && value !== '-') {\n    value = +parseDate(value);\n  }\n\n  return value == null || value === '' ? NaN : +value;\n}\n;\nvar valueParserMap = createHashMap({\n  'number': function (val) {\n    return parseFloat(val);\n  },\n  'time': function (val) {\n    return +parseDate(val);\n  },\n  'trim': function (val) {\n    return typeof val === 'string' ? trim(val) : val;\n  }\n});\nexport function getRawValueParser(type) {\n  return valueParserMap.get(type);\n}\nvar ORDER_COMPARISON_OP_MAP = {\n  lt: function (lval, rval) {\n    return lval < rval;\n  },\n  lte: function (lval, rval) {\n    return lval <= rval;\n  },\n  gt: function (lval, rval) {\n    return lval > rval;\n  },\n  gte: function (lval, rval) {\n    return lval >= rval;\n  }\n};\n\nvar FilterOrderComparator = function () {\n  function FilterOrderComparator(op, rval) {\n    if (typeof rval !== 'number') {\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'rvalue of \"<\", \">\", \"<=\", \">=\" can only be number in filter.';\n      }\n\n      throwError(errMsg);\n    }\n\n    this._opFn = ORDER_COMPARISON_OP_MAP[op];\n    this._rvalFloat = numericToNumber(rval);\n  }\n\n  FilterOrderComparator.prototype.evaluate = function (lval) {\n    return typeof lval === 'number' ? this._opFn(lval, this._rvalFloat) : this._opFn(numericToNumber(lval), this._rvalFloat);\n  };\n\n  return FilterOrderComparator;\n}();\n\nvar SortOrderComparator = function () {\n  function SortOrderComparator(order, incomparable) {\n    var isDesc = order === 'desc';\n    this._resultLT = isDesc ? 1 : -1;\n\n    if (incomparable == null) {\n      incomparable = isDesc ? 'min' : 'max';\n    }\n\n    this._incomparable = incomparable === 'min' ? -Infinity : Infinity;\n  }\n\n  SortOrderComparator.prototype.evaluate = function (lval, rval) {\n    var lvalTypeof = typeof lval;\n    var rvalTypeof = typeof rval;\n    var lvalFloat = lvalTypeof === 'number' ? lval : numericToNumber(lval);\n    var rvalFloat = rvalTypeof === 'number' ? rval : numericToNumber(rval);\n    var lvalNotNumeric = isNaN(lvalFloat);\n    var rvalNotNumeric = isNaN(rvalFloat);\n\n    if (lvalNotNumeric) {\n      lvalFloat = this._incomparable;\n    }\n\n    if (rvalNotNumeric) {\n      rvalFloat = this._incomparable;\n    }\n\n    if (lvalNotNumeric && rvalNotNumeric) {\n      var lvalIsStr = lvalTypeof === 'string';\n      var rvalIsStr = rvalTypeof === 'string';\n\n      if (lvalIsStr) {\n        lvalFloat = rvalIsStr ? lval : 0;\n      }\n\n      if (rvalIsStr) {\n        rvalFloat = lvalIsStr ? rval : 0;\n      }\n    }\n\n    return lvalFloat < rvalFloat ? this._resultLT : lvalFloat > rvalFloat ? -this._resultLT : 0;\n  };\n\n  return SortOrderComparator;\n}();\n\nexport { SortOrderComparator };\n\nvar FilterEqualityComparator = function () {\n  function FilterEqualityComparator(isEq, rval) {\n    this._rval = rval;\n    this._isEQ = isEq;\n    this._rvalTypeof = typeof rval;\n    this._rvalFloat = numericToNumber(rval);\n  }\n\n  FilterEqualityComparator.prototype.evaluate = function (lval) {\n    var eqResult = lval === this._rval;\n\n    if (!eqResult) {\n      var lvalTypeof = typeof lval;\n\n      if (lvalTypeof !== this._rvalTypeof && (lvalTypeof === 'number' || this._rvalTypeof === 'number')) {\n        eqResult = numericToNumber(lval) === this._rvalFloat;\n      }\n    }\n\n    return this._isEQ ? eqResult : !eqResult;\n  };\n\n  return FilterEqualityComparator;\n}();\n\nexport function createFilterComparator(op, rval) {\n  return op === 'eq' || op === 'ne' ? new FilterEqualityComparator(op === 'eq', rval) : hasOwn(ORDER_COMPARISON_OP_MAP, op) ? new FilterOrderComparator(op, rval) : null;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { SERIES_LAYOUT_BY_COLUMN, SOURCE_FORMAT_OBJECT_ROWS, SOURCE_FORMAT_ARRAY_ROWS } from '../../util/types';\nimport { normalizeToArray } from '../../util/model';\nimport { createHashMap, bind, each, hasOwn, map, clone, isObject, extend } from 'zrender/lib/core/util';\nimport { getRawSourceItemGetter, getRawSourceDataCounter, getRawSourceValueGetter } from './dataProvider';\nimport { parseDataValue } from './dataValueHelper';\nimport { consoleLog, makePrintable, throwError } from '../../util/log';\nimport { createSource, detectSourceFormat } from '../Source';\n\nvar ExternalSource = function () {\n  function ExternalSource() {}\n\n  ExternalSource.prototype.getRawData = function () {\n    throw new Error('not supported');\n  };\n\n  ExternalSource.prototype.getRawDataItem = function (dataIndex) {\n    throw new Error('not supported');\n  };\n\n  ExternalSource.prototype.cloneRawData = function () {\n    return;\n  };\n\n  ExternalSource.prototype.getDimensionInfo = function (dim) {\n    return;\n  };\n\n  ExternalSource.prototype.cloneAllDimensionInfo = function () {\n    return;\n  };\n\n  ExternalSource.prototype.count = function () {\n    return;\n  };\n\n  ExternalSource.prototype.retrieveValue = function (dataIndex, dimIndex) {\n    return;\n  };\n\n  ExternalSource.prototype.retrieveValueFromItem = function (dataItem, dimIndex) {\n    return;\n  };\n\n  ExternalSource.prototype.convertValue = function (rawVal, dimInfo) {\n    return parseDataValue(rawVal, dimInfo);\n  };\n\n  return ExternalSource;\n}();\n\nexport { ExternalSource };\n\nfunction createExternalSource(internalSource, externalTransform) {\n  var extSource = new ExternalSource();\n  var data = internalSource.data;\n  var sourceFormat = extSource.sourceFormat = internalSource.sourceFormat;\n  var sourceHeaderCount = internalSource.startIndex;\n  var errMsg = '';\n\n  if (internalSource.seriesLayoutBy !== SERIES_LAYOUT_BY_COLUMN) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = '`seriesLayoutBy` of upstream dataset can only be \"column\" in data transform.';\n    }\n\n    throwError(errMsg);\n  }\n\n  var dimensions = [];\n  var dimsByName = {};\n  var dimsDef = internalSource.dimensionsDefine;\n\n  if (dimsDef) {\n    each(dimsDef, function (dimDef, idx) {\n      var name = dimDef.name;\n      var dimDefExt = {\n        index: idx,\n        name: name,\n        displayName: dimDef.displayName\n      };\n      dimensions.push(dimDefExt);\n\n      if (name != null) {\n        var errMsg_1 = '';\n\n        if (hasOwn(dimsByName, name)) {\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg_1 = 'dimension name \"' + name + '\" duplicated.';\n          }\n\n          throwError(errMsg_1);\n        }\n\n        dimsByName[name] = dimDefExt;\n      }\n    });\n  } else {\n    for (var i = 0; i < internalSource.dimensionsDetectedCount || 0; i++) {\n      dimensions.push({\n        index: i\n      });\n    }\n  }\n\n  var rawItemGetter = getRawSourceItemGetter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\n\n  if (externalTransform.__isBuiltIn) {\n    extSource.getRawDataItem = function (dataIndex) {\n      return rawItemGetter(data, sourceHeaderCount, dimensions, dataIndex);\n    };\n\n    extSource.getRawData = bind(getRawData, null, internalSource);\n  }\n\n  extSource.cloneRawData = bind(cloneRawData, null, internalSource);\n  var rawCounter = getRawSourceDataCounter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\n  extSource.count = bind(rawCounter, null, data, sourceHeaderCount, dimensions);\n  var rawValueGetter = getRawSourceValueGetter(sourceFormat);\n\n  extSource.retrieveValue = function (dataIndex, dimIndex) {\n    var rawItem = rawItemGetter(data, sourceHeaderCount, dimensions, dataIndex);\n    return retrieveValueFromItem(rawItem, dimIndex);\n  };\n\n  var retrieveValueFromItem = extSource.retrieveValueFromItem = function (dataItem, dimIndex) {\n    if (dataItem == null) {\n      return;\n    }\n\n    var dimDef = dimensions[dimIndex];\n\n    if (dimDef) {\n      return rawValueGetter(dataItem, dimIndex, dimDef.name);\n    }\n  };\n\n  extSource.getDimensionInfo = bind(getDimensionInfo, null, dimensions, dimsByName);\n  extSource.cloneAllDimensionInfo = bind(cloneAllDimensionInfo, null, dimensions);\n  return extSource;\n}\n\nfunction getRawData(upstream) {\n  var sourceFormat = upstream.sourceFormat;\n\n  if (!isSupportedSourceFormat(sourceFormat)) {\n    var errMsg = '';\n\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = '`getRawData` is not supported in source format ' + sourceFormat;\n    }\n\n    throwError(errMsg);\n  }\n\n  return upstream.data;\n}\n\nfunction cloneRawData(upstream) {\n  var sourceFormat = upstream.sourceFormat;\n  var data = upstream.data;\n\n  if (!isSupportedSourceFormat(sourceFormat)) {\n    var errMsg = '';\n\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = '`cloneRawData` is not supported in source format ' + sourceFormat;\n    }\n\n    throwError(errMsg);\n  }\n\n  if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n    var result = [];\n\n    for (var i = 0, len = data.length; i < len; i++) {\n      result.push(data[i].slice());\n    }\n\n    return result;\n  } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n    var result = [];\n\n    for (var i = 0, len = data.length; i < len; i++) {\n      result.push(extend({}, data[i]));\n    }\n\n    return result;\n  }\n}\n\nfunction getDimensionInfo(dimensions, dimsByName, dim) {\n  if (dim == null) {\n    return;\n  }\n\n  if (typeof dim === 'number' || !isNaN(dim) && !hasOwn(dimsByName, dim)) {\n    return dimensions[dim];\n  } else if (hasOwn(dimsByName, dim)) {\n    return dimsByName[dim];\n  }\n}\n\nfunction cloneAllDimensionInfo(dimensions) {\n  return clone(dimensions);\n}\n\nvar externalTransformMap = createHashMap();\nexport function registerExternalTransform(externalTransform) {\n  externalTransform = clone(externalTransform);\n  var type = externalTransform.type;\n  var errMsg = '';\n\n  if (!type) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'Must have a `type` when `registerTransform`.';\n    }\n\n    throwError(errMsg);\n  }\n\n  var typeParsed = type.split(':');\n\n  if (typeParsed.length !== 2) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'Name must include namespace like \"ns:regression\".';\n    }\n\n    throwError(errMsg);\n  }\n\n  var isBuiltIn = false;\n\n  if (typeParsed[0] === 'echarts') {\n    type = typeParsed[1];\n    isBuiltIn = true;\n  }\n\n  externalTransform.__isBuiltIn = isBuiltIn;\n  externalTransformMap.set(type, externalTransform);\n}\nexport function applyDataTransform(rawTransOption, sourceList, infoForPrint) {\n  var pipedTransOption = normalizeToArray(rawTransOption);\n  var pipeLen = pipedTransOption.length;\n  var errMsg = '';\n\n  if (!pipeLen) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'If `transform` declared, it should at least contain one transform.';\n    }\n\n    throwError(errMsg);\n  }\n\n  for (var i = 0, len = pipeLen; i < len; i++) {\n    var transOption = pipedTransOption[i];\n    sourceList = applySingleDataTransform(transOption, sourceList, infoForPrint, pipeLen === 1 ? null : i);\n\n    if (i !== len - 1) {\n      sourceList.length = Math.max(sourceList.length, 1);\n    }\n  }\n\n  return sourceList;\n}\n\nfunction applySingleDataTransform(transOption, upSourceList, infoForPrint, pipeIndex) {\n  var errMsg = '';\n\n  if (!upSourceList.length) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'Must have at least one upstream dataset.';\n    }\n\n    throwError(errMsg);\n  }\n\n  if (!isObject(transOption)) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'transform declaration must be an object rather than ' + typeof transOption + '.';\n    }\n\n    throwError(errMsg);\n  }\n\n  var transType = transOption.type;\n  var externalTransform = externalTransformMap.get(transType);\n\n  if (!externalTransform) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'Can not find transform on type \"' + transType + '\".';\n    }\n\n    throwError(errMsg);\n  }\n\n  var extUpSourceList = map(upSourceList, function (upSource) {\n    return createExternalSource(upSource, externalTransform);\n  });\n  var resultList = normalizeToArray(externalTransform.transform({\n    upstream: extUpSourceList[0],\n    upstreamList: extUpSourceList,\n    config: clone(transOption.config)\n  }));\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (transOption.print) {\n      var printStrArr = map(resultList, function (extSource) {\n        var pipeIndexStr = pipeIndex != null ? ' === pipe index: ' + pipeIndex : '';\n        return ['=== dataset index: ' + infoForPrint.datasetIndex + pipeIndexStr + ' ===', '- transform result data:', makePrintable(extSource.data), '- transform result dimensions:', makePrintable(extSource.dimensions)].join('\\n');\n      }).join('\\n');\n      consoleLog(printStrArr);\n    }\n  }\n\n  return map(resultList, function (result, resultIndex) {\n    var errMsg = '';\n\n    if (!isObject(result)) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'A transform should not return some empty results.';\n      }\n\n      throwError(errMsg);\n    }\n\n    if (!result.data) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'Transform result data should be not be null or undefined';\n      }\n\n      throwError(errMsg);\n    }\n\n    var sourceFormat = detectSourceFormat(result.data);\n\n    if (!isSupportedSourceFormat(sourceFormat)) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'Transform result data should be array rows or object rows.';\n      }\n\n      throwError(errMsg);\n    }\n\n    var resultMetaRawOption;\n    var firstUpSource = upSourceList[0];\n\n    if (firstUpSource && resultIndex === 0 && !result.dimensions) {\n      var startIndex = firstUpSource.startIndex;\n\n      if (startIndex) {\n        result.data = firstUpSource.data.slice(0, startIndex).concat(result.data);\n      }\n\n      resultMetaRawOption = {\n        seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN,\n        sourceHeader: startIndex,\n        dimensions: firstUpSource.metaRawOption.dimensions\n      };\n    } else {\n      resultMetaRawOption = {\n        seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN,\n        sourceHeader: 0,\n        dimensions: result.dimensions\n      };\n    }\n\n    return createSource(result.data, resultMetaRawOption, null, null);\n  });\n}\n\nfunction isSupportedSourceFormat(sourceFormat) {\n  return sourceFormat === SOURCE_FORMAT_ARRAY_ROWS || sourceFormat === SOURCE_FORMAT_OBJECT_ROWS;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { setAsPrimitive, map, isTypedArray, assert, each, retrieve2 } from 'zrender/lib/core/util';\nimport { createSource, cloneSourceShallow } from '../Source';\nimport { SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ORIGINAL } from '../../util/types';\nimport { querySeriesUpstreamDatasetModel, queryDatasetUpstreamDatasetModels } from './sourceHelper';\nimport { applyDataTransform } from './transform';\n\nvar SourceManager = function () {\n  function SourceManager(sourceHost) {\n    this._sourceList = [];\n    this._upstreamSignList = [];\n    this._versionSignBase = 0;\n    this._sourceHost = sourceHost;\n  }\n\n  SourceManager.prototype.dirty = function () {\n    this._setLocalSource([], []);\n  };\n\n  SourceManager.prototype._setLocalSource = function (sourceList, upstreamSignList) {\n    this._sourceList = sourceList;\n    this._upstreamSignList = upstreamSignList;\n    this._versionSignBase++;\n\n    if (this._versionSignBase > 9e10) {\n      this._versionSignBase = 0;\n    }\n  };\n\n  SourceManager.prototype._getVersionSign = function () {\n    return this._sourceHost.uid + '_' + this._versionSignBase;\n  };\n\n  SourceManager.prototype.prepareSource = function () {\n    if (this._isDirty()) {\n      this._createSource();\n    }\n  };\n\n  SourceManager.prototype._createSource = function () {\n    this._setLocalSource([], []);\n\n    var sourceHost = this._sourceHost;\n\n    var upSourceMgrList = this._getUpstreamSourceManagers();\n\n    var hasUpstream = !!upSourceMgrList.length;\n    var resultSourceList;\n    var upstreamSignList;\n\n    if (isSeries(sourceHost)) {\n      var seriesModel = sourceHost;\n      var data = void 0;\n      var sourceFormat = void 0;\n      var upSource = void 0;\n\n      if (hasUpstream) {\n        var upSourceMgr = upSourceMgrList[0];\n        upSourceMgr.prepareSource();\n        upSource = upSourceMgr.getSource();\n        data = upSource.data;\n        sourceFormat = upSource.sourceFormat;\n        upstreamSignList = [upSourceMgr._getVersionSign()];\n      } else {\n        data = seriesModel.get('data', true);\n        sourceFormat = isTypedArray(data) ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL;\n        upstreamSignList = [];\n      }\n\n      var newMetaRawOption = this._getSourceMetaRawOption();\n\n      var upMetaRawOption = upSource ? upSource.metaRawOption : null;\n      var seriesLayoutBy = retrieve2(newMetaRawOption.seriesLayoutBy, upMetaRawOption ? upMetaRawOption.seriesLayoutBy : null);\n      var sourceHeader = retrieve2(newMetaRawOption.sourceHeader, upMetaRawOption ? upMetaRawOption.sourceHeader : null);\n      var dimensions = retrieve2(newMetaRawOption.dimensions, upMetaRawOption ? upMetaRawOption.dimensions : null);\n      resultSourceList = [createSource(data, {\n        seriesLayoutBy: seriesLayoutBy,\n        sourceHeader: sourceHeader,\n        dimensions: dimensions\n      }, sourceFormat, seriesModel.get('encode', true))];\n    } else {\n      var datasetModel = sourceHost;\n\n      if (hasUpstream) {\n        var result = this._applyTransform(upSourceMgrList);\n\n        resultSourceList = result.sourceList;\n        upstreamSignList = result.upstreamSignList;\n      } else {\n        var sourceData = datasetModel.get('source', true);\n        resultSourceList = [createSource(sourceData, this._getSourceMetaRawOption(), null, null)];\n        upstreamSignList = [];\n      }\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(resultSourceList && upstreamSignList);\n    }\n\n    this._setLocalSource(resultSourceList, upstreamSignList);\n  };\n\n  SourceManager.prototype._applyTransform = function (upMgrList) {\n    var datasetModel = this._sourceHost;\n    var transformOption = datasetModel.get('transform', true);\n    var fromTransformResult = datasetModel.get('fromTransformResult', true);\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(fromTransformResult != null || transformOption != null);\n    }\n\n    if (fromTransformResult != null) {\n      var errMsg = '';\n\n      if (upMgrList.length !== 1) {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = 'When using `fromTransformResult`, there should be only one upstream dataset';\n        }\n\n        doThrow(errMsg);\n      }\n    }\n\n    var sourceList;\n    var upSourceList = [];\n    var upstreamSignList = [];\n    each(upMgrList, function (upMgr) {\n      upMgr.prepareSource();\n      var upSource = upMgr.getSource(fromTransformResult || 0);\n      var errMsg = '';\n\n      if (fromTransformResult != null && !upSource) {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = 'Can not retrieve result by `fromTransformResult`: ' + fromTransformResult;\n        }\n\n        doThrow(errMsg);\n      }\n\n      upSourceList.push(upSource);\n      upstreamSignList.push(upMgr._getVersionSign());\n    });\n\n    if (transformOption) {\n      sourceList = applyDataTransform(transformOption, upSourceList, {\n        datasetIndex: datasetModel.componentIndex\n      });\n    } else if (fromTransformResult != null) {\n      sourceList = [cloneSourceShallow(upSourceList[0])];\n    }\n\n    return {\n      sourceList: sourceList,\n      upstreamSignList: upstreamSignList\n    };\n  };\n\n  SourceManager.prototype._isDirty = function () {\n    var sourceList = this._sourceList;\n\n    if (!sourceList.length) {\n      return true;\n    }\n\n    var upSourceMgrList = this._getUpstreamSourceManagers();\n\n    for (var i = 0; i < upSourceMgrList.length; i++) {\n      var upSrcMgr = upSourceMgrList[i];\n\n      if (upSrcMgr._isDirty() || this._upstreamSignList[i] !== upSrcMgr._getVersionSign()) {\n        return true;\n      }\n    }\n  };\n\n  SourceManager.prototype.getSource = function (sourceIndex) {\n    return this._sourceList[sourceIndex || 0];\n  };\n\n  SourceManager.prototype._getUpstreamSourceManagers = function () {\n    var sourceHost = this._sourceHost;\n\n    if (isSeries(sourceHost)) {\n      var datasetModel = querySeriesUpstreamDatasetModel(sourceHost);\n      return !datasetModel ? [] : [datasetModel.getSourceManager()];\n    } else {\n      return map(queryDatasetUpstreamDatasetModels(sourceHost), function (datasetModel) {\n        return datasetModel.getSourceManager();\n      });\n    }\n  };\n\n  SourceManager.prototype._getSourceMetaRawOption = function () {\n    var sourceHost = this._sourceHost;\n    var seriesLayoutBy;\n    var sourceHeader;\n    var dimensions;\n\n    if (isSeries(sourceHost)) {\n      seriesLayoutBy = sourceHost.get('seriesLayoutBy', true);\n      sourceHeader = sourceHost.get('sourceHeader', true);\n      dimensions = sourceHost.get('dimensions', true);\n    } else if (!this._getUpstreamSourceManagers().length) {\n      var model = sourceHost;\n      seriesLayoutBy = model.get('seriesLayoutBy', true);\n      sourceHeader = model.get('sourceHeader', true);\n      dimensions = model.get('dimensions', true);\n    }\n\n    return {\n      seriesLayoutBy: seriesLayoutBy,\n      sourceHeader: sourceHeader,\n      dimensions: dimensions\n    };\n  };\n\n  return SourceManager;\n}();\n\nexport { SourceManager };\nexport function disableTransformOptionMerge(datasetModel) {\n  var transformOption = datasetModel.option.transform;\n  transformOption && setAsPrimitive(datasetModel.option.transform);\n}\n\nfunction isSeries(sourceHost) {\n  return sourceHost.mainType === 'series';\n}\n\nfunction doThrow(errMsg) {\n  throw new Error(errMsg);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { getTooltipMarker, encodeHTML, makeValueReadable, convertToColorString } from '../../util/format';\nimport { isString, each, hasOwn, isArray, map, assert, extend } from 'zrender/lib/core/util';\nimport { SortOrderComparator } from '../../data/helper/dataValueHelper';\nimport { getRandomIdBase } from '../../util/number';\nvar TOOLTIP_LINE_HEIGHT_CSS = 'line-height:1';\n\nfunction getTooltipTextStyle(textStyle, renderMode) {\n  var nameFontColor = textStyle.color || '#6e7079';\n  var nameFontSize = textStyle.fontSize || 12;\n  var nameFontWeight = textStyle.fontWeight || '400';\n  var valueFontColor = textStyle.color || '#464646';\n  var valueFontSize = textStyle.fontSize || 14;\n  var valueFontWeight = textStyle.fontWeight || '900';\n\n  if (renderMode === 'html') {\n    return {\n      nameStyle: \"font-size:\" + nameFontSize + \"px;color:\" + nameFontColor + \";font-weight:\" + nameFontWeight,\n      valueStyle: \"font-size:\" + valueFontSize + \"px;color:\" + valueFontColor + \";font-weight:\" + valueFontWeight\n    };\n  } else {\n    return {\n      nameStyle: {\n        fontSize: nameFontSize,\n        fill: nameFontColor,\n        fontWeight: nameFontWeight\n      },\n      valueStyle: {\n        fontSize: valueFontSize,\n        fill: valueFontColor,\n        fontWeight: valueFontWeight\n      }\n    };\n  }\n}\n\nvar HTML_GAPS = [0, 10, 20, 30];\nvar RICH_TEXT_GAPS = ['', '\\n', '\\n\\n', '\\n\\n\\n'];\nexport function createTooltipMarkup(type, option) {\n  option.type = type;\n  return option;\n}\n\nfunction getBuilder(fragment) {\n  return hasOwn(builderMap, fragment.type) && builderMap[fragment.type];\n}\n\nvar builderMap = {\n  section: {\n    planLayout: function (fragment) {\n      var subBlockLen = fragment.blocks.length;\n      var thisBlockHasInnerGap = subBlockLen > 1 || subBlockLen > 0 && !fragment.noHeader;\n      var thisGapLevelBetweenSubBlocks = 0;\n      each(fragment.blocks, function (subBlock) {\n        getBuilder(subBlock).planLayout(subBlock);\n        var subGapLevel = subBlock.__gapLevelBetweenSubBlocks;\n\n        if (subGapLevel >= thisGapLevelBetweenSubBlocks) {\n          thisGapLevelBetweenSubBlocks = subGapLevel + (thisBlockHasInnerGap && (!subGapLevel || subBlock.type === 'section' && !subBlock.noHeader) ? 1 : 0);\n        }\n      });\n      fragment.__gapLevelBetweenSubBlocks = thisGapLevelBetweenSubBlocks;\n    },\n    build: function (ctx, fragment, topMarginForOuterGap, toolTipTextStyle) {\n      var noHeader = fragment.noHeader;\n      var gaps = getGap(fragment);\n      var subMarkupText = buildSubBlocks(ctx, fragment, noHeader ? topMarginForOuterGap : gaps.html, toolTipTextStyle);\n\n      if (noHeader) {\n        return subMarkupText;\n      }\n\n      var displayableHeader = makeValueReadable(fragment.header, 'ordinal', ctx.useUTC);\n      var nameStyle = getTooltipTextStyle(toolTipTextStyle, ctx.renderMode).nameStyle;\n\n      if (ctx.renderMode === 'richText') {\n        return wrapInlineNameRichText(ctx, displayableHeader, nameStyle) + gaps.richText + subMarkupText;\n      } else {\n        return wrapBlockHTML(\"<div style=\\\"\" + nameStyle + \";\" + TOOLTIP_LINE_HEIGHT_CSS + \";\\\">\" + encodeHTML(displayableHeader) + '</div>' + subMarkupText, topMarginForOuterGap);\n      }\n    }\n  },\n  nameValue: {\n    planLayout: function (fragment) {\n      fragment.__gapLevelBetweenSubBlocks = 0;\n    },\n    build: function (ctx, fragment, topMarginForOuterGap, toolTipTextStyle) {\n      var renderMode = ctx.renderMode;\n      var noName = fragment.noName;\n      var noValue = fragment.noValue;\n      var noMarker = !fragment.markerType;\n      var name = fragment.name;\n      var value = fragment.value;\n      var useUTC = ctx.useUTC;\n\n      if (noName && noValue) {\n        return;\n      }\n\n      var markerStr = noMarker ? '' : ctx.markupStyleCreator.makeTooltipMarker(fragment.markerType, fragment.markerColor || '#333', renderMode);\n      var readableName = noName ? '' : makeValueReadable(name, 'ordinal', useUTC);\n      var valueTypeOption = fragment.valueType;\n      var readableValueList = noValue ? [] : isArray(value) ? map(value, function (val, idx) {\n        return makeValueReadable(val, isArray(valueTypeOption) ? valueTypeOption[idx] : valueTypeOption, useUTC);\n      }) : [makeValueReadable(value, isArray(valueTypeOption) ? valueTypeOption[0] : valueTypeOption, useUTC)];\n      var valueAlignRight = !noMarker || !noName;\n      var valueCloseToMarker = !noMarker && noName;\n\n      var _a = getTooltipTextStyle(toolTipTextStyle, renderMode),\n          nameStyle = _a.nameStyle,\n          valueStyle = _a.valueStyle;\n\n      return renderMode === 'richText' ? (noMarker ? '' : markerStr) + (noName ? '' : wrapInlineNameRichText(ctx, readableName, nameStyle)) + (noValue ? '' : wrapInlineValueRichText(ctx, readableValueList, valueAlignRight, valueCloseToMarker, valueStyle)) : wrapBlockHTML((noMarker ? '' : markerStr) + (noName ? '' : wrapInlineNameHTML(readableName, !noMarker, nameStyle)) + (noValue ? '' : wrapInlineValueHTML(readableValueList, valueAlignRight, valueCloseToMarker, valueStyle)), topMarginForOuterGap);\n    }\n  }\n};\n\nfunction buildSubBlocks(ctx, fragment, topMarginForOuterGap, tooltipTextStyle) {\n  var subMarkupTextList = [];\n  var subBlocks = fragment.blocks || [];\n  assert(!subBlocks || isArray(subBlocks));\n  subBlocks = subBlocks || [];\n  var orderMode = ctx.orderMode;\n\n  if (fragment.sortBlocks && orderMode) {\n    subBlocks = subBlocks.slice();\n    var orderMap = {\n      valueAsc: 'asc',\n      valueDesc: 'desc'\n    };\n\n    if (hasOwn(orderMap, orderMode)) {\n      var comparator_1 = new SortOrderComparator(orderMap[orderMode], null);\n      subBlocks.sort(function (a, b) {\n        return comparator_1.evaluate(a.sortParam, b.sortParam);\n      });\n    } else if (orderMode === 'seriesDesc') {\n      subBlocks.reverse();\n    }\n  }\n\n  var gaps = getGap(fragment);\n  each(subBlocks, function (subBlock, idx) {\n    var subMarkupText = getBuilder(subBlock).build(ctx, subBlock, idx > 0 ? gaps.html : 0, tooltipTextStyle);\n    subMarkupText != null && subMarkupTextList.push(subMarkupText);\n  });\n\n  if (!subMarkupTextList.length) {\n    return;\n  }\n\n  return ctx.renderMode === 'richText' ? subMarkupTextList.join(gaps.richText) : wrapBlockHTML(subMarkupTextList.join(''), topMarginForOuterGap);\n}\n\nexport function buildTooltipMarkup(fragment, markupStyleCreator, renderMode, orderMode, useUTC, toolTipTextStyle) {\n  if (!fragment) {\n    return;\n  }\n\n  var builder = getBuilder(fragment);\n  builder.planLayout(fragment);\n  var ctx = {\n    useUTC: useUTC,\n    renderMode: renderMode,\n    orderMode: orderMode,\n    markupStyleCreator: markupStyleCreator\n  };\n  return builder.build(ctx, fragment, 0, toolTipTextStyle);\n}\n\nfunction getGap(fragment) {\n  var gapLevelBetweenSubBlocks = fragment.__gapLevelBetweenSubBlocks;\n  return {\n    html: HTML_GAPS[gapLevelBetweenSubBlocks],\n    richText: RICH_TEXT_GAPS[gapLevelBetweenSubBlocks]\n  };\n}\n\nfunction wrapBlockHTML(encodedContent, topGap) {\n  var clearfix = '<div style=\"clear:both\"></div>';\n  var marginCSS = \"margin: \" + topGap + \"px 0 0\";\n  return \"<div style=\\\"\" + marginCSS + \";\" + TOOLTIP_LINE_HEIGHT_CSS + \";\\\">\" + encodedContent + clearfix + '</div>';\n}\n\nfunction wrapInlineNameHTML(name, leftHasMarker, style) {\n  var marginCss = leftHasMarker ? 'margin-left:2px' : '';\n  return \"<span style=\\\"\" + style + \";\" + marginCss + \"\\\">\" + encodeHTML(name) + '</span>';\n}\n\nfunction wrapInlineValueHTML(valueList, alignRight, valueCloseToMarker, style) {\n  var paddingStr = valueCloseToMarker ? '10px' : '20px';\n  var alignCSS = alignRight ? \"float:right;margin-left:\" + paddingStr : '';\n  return \"<span style=\\\"\" + alignCSS + \";\" + style + \"\\\">\" + map(valueList, function (value) {\n    return encodeHTML(value);\n  }).join('&nbsp;&nbsp;') + '</span>';\n}\n\nfunction wrapInlineNameRichText(ctx, name, style) {\n  return ctx.markupStyleCreator.wrapRichTextStyle(name, style);\n}\n\nfunction wrapInlineValueRichText(ctx, valueList, alignRight, valueCloseToMarker, style) {\n  var styles = [style];\n  var paddingLeft = valueCloseToMarker ? 10 : 20;\n  alignRight && styles.push({\n    padding: [0, 0, 0, paddingLeft],\n    align: 'right'\n  });\n  return ctx.markupStyleCreator.wrapRichTextStyle(valueList.join('  '), styles);\n}\n\nexport function retrieveVisualColorForTooltipMarker(series, dataIndex) {\n  var style = series.getData().getItemVisual(dataIndex, 'style');\n  var color = style[series.visualDrawType];\n  return convertToColorString(color);\n}\nexport function getPaddingFromTooltipModel(model, renderMode) {\n  var padding = model.get('padding');\n  return padding != null ? padding : renderMode === 'richText' ? [8, 10] : 10;\n}\n\nvar TooltipMarkupStyleCreator = function () {\n  function TooltipMarkupStyleCreator() {\n    this.richTextStyles = {};\n    this._nextStyleNameId = getRandomIdBase();\n  }\n\n  TooltipMarkupStyleCreator.prototype._generateStyleName = function () {\n    return '__EC_aUTo_' + this._nextStyleNameId++;\n  };\n\n  TooltipMarkupStyleCreator.prototype.makeTooltipMarker = function (markerType, colorStr, renderMode) {\n    var markerId = renderMode === 'richText' ? this._generateStyleName() : null;\n    var marker = getTooltipMarker({\n      color: colorStr,\n      type: markerType,\n      renderMode: renderMode,\n      markerId: markerId\n    });\n\n    if (isString(marker)) {\n      return marker;\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        assert(markerId);\n      }\n\n      this.richTextStyles[markerId] = marker.style;\n      return marker.content;\n    }\n  };\n\n  TooltipMarkupStyleCreator.prototype.wrapRichTextStyle = function (text, styles) {\n    var finalStl = {};\n\n    if (isArray(styles)) {\n      each(styles, function (stl) {\n        return extend(finalStl, stl);\n      });\n    } else {\n      extend(finalStl, styles);\n    }\n\n    var styleName = this._generateStyleName();\n\n    this.richTextStyles[styleName] = finalStl;\n    return \"{\" + styleName + \"|\" + text + \"}\";\n  };\n\n  return TooltipMarkupStyleCreator;\n}();\n\nexport { TooltipMarkupStyleCreator };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { trim, isArray, each, reduce } from 'zrender/lib/core/util';\nimport { retrieveVisualColorForTooltipMarker, createTooltipMarkup } from './tooltipMarkup';\nimport { retrieveRawValue } from '../../data/helper/dataProvider';\nimport { isNameSpecified } from '../../util/model';\nexport function defaultSeriesFormatTooltip(opt) {\n  var series = opt.series;\n  var dataIndex = opt.dataIndex;\n  var multipleSeries = opt.multipleSeries;\n  var data = series.getData();\n  var tooltipDims = data.mapDimensionsAll('defaultedTooltip');\n  var tooltipDimLen = tooltipDims.length;\n  var value = series.getRawValue(dataIndex);\n  var isValueArr = isArray(value);\n  var markerColor = retrieveVisualColorForTooltipMarker(series, dataIndex);\n  var inlineValue;\n  var inlineValueType;\n  var subBlocks;\n  var sortParam;\n\n  if (tooltipDimLen > 1 || isValueArr && !tooltipDimLen) {\n    var formatArrResult = formatTooltipArrayValue(value, series, dataIndex, tooltipDims, markerColor);\n    inlineValue = formatArrResult.inlineValues;\n    inlineValueType = formatArrResult.inlineValueTypes;\n    subBlocks = formatArrResult.blocks;\n    sortParam = formatArrResult.inlineValues[0];\n  } else if (tooltipDimLen) {\n    var dimInfo = data.getDimensionInfo(tooltipDims[0]);\n    sortParam = inlineValue = retrieveRawValue(data, dataIndex, tooltipDims[0]);\n    inlineValueType = dimInfo.type;\n  } else {\n    sortParam = inlineValue = isValueArr ? value[0] : value;\n  }\n\n  var seriesNameSpecified = isNameSpecified(series);\n  var seriesName = seriesNameSpecified && series.name || '';\n  var itemName = data.getName(dataIndex);\n  var inlineName = multipleSeries ? seriesName : itemName;\n  return createTooltipMarkup('section', {\n    header: seriesName,\n    noHeader: multipleSeries || !seriesNameSpecified,\n    sortParam: sortParam,\n    blocks: [createTooltipMarkup('nameValue', {\n      markerType: 'item',\n      markerColor: markerColor,\n      name: inlineName,\n      noName: !trim(inlineName),\n      value: inlineValue,\n      valueType: inlineValueType\n    })].concat(subBlocks || [])\n  });\n}\n\nfunction formatTooltipArrayValue(value, series, dataIndex, tooltipDims, colorStr) {\n  var data = series.getData();\n  var isValueMultipleLine = reduce(value, function (isValueMultipleLine, val, idx) {\n    var dimItem = data.getDimensionInfo(idx);\n    return isValueMultipleLine = isValueMultipleLine || dimItem && dimItem.tooltip !== false && dimItem.displayName != null;\n  }, false);\n  var inlineValues = [];\n  var inlineValueTypes = [];\n  var blocks = [];\n  tooltipDims.length ? each(tooltipDims, function (dim) {\n    setEachItem(retrieveRawValue(data, dataIndex, dim), dim);\n  }) : each(value, setEachItem);\n\n  function setEachItem(val, dim) {\n    var dimInfo = data.getDimensionInfo(dim);\n\n    if (!dimInfo || dimInfo.otherDims.tooltip === false) {\n      return;\n    }\n\n    if (isValueMultipleLine) {\n      blocks.push(createTooltipMarkup('nameValue', {\n        markerType: 'subItem',\n        markerColor: colorStr,\n        name: dimInfo.displayName,\n        value: val,\n        valueType: dimInfo.type\n      }));\n    } else {\n      inlineValues.push(val);\n      inlineValueTypes.push(dimInfo.type);\n    }\n  }\n\n  return {\n    inlineValues: inlineValues,\n    inlineValueTypes: inlineValueTypes,\n    blocks: blocks\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends, __spreadArrays } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport * as modelUtil from '../util/model';\nimport ComponentModel from './Component';\nimport { PaletteMixin } from './mixin/palette';\nimport { DataFormatMixin } from '../model/mixin/dataFormat';\nimport { getLayoutParams, mergeLayoutParam, fetchLayoutMode } from '../util/layout';\nimport { createTask } from '../core/task';\nimport { mountExtend } from '../util/clazz';\nimport { SourceManager } from '../data/helper/sourceManager';\nimport { defaultSeriesFormatTooltip } from '../component/tooltip/seriesFormatTooltip';\nvar inner = modelUtil.makeInner();\n\nfunction getSelectionKey(data, dataIndex) {\n  return data.getName(dataIndex) || data.getId(dataIndex);\n}\n\nvar SeriesModel = function (_super) {\n  __extends(SeriesModel, _super);\n\n  function SeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this._selectedDataIndicesMap = {};\n    return _this;\n  }\n\n  SeriesModel.prototype.init = function (option, parentModel, ecModel) {\n    this.seriesIndex = this.componentIndex;\n    this.dataTask = createTask({\n      count: dataTaskCount,\n      reset: dataTaskReset\n    });\n    this.dataTask.context = {\n      model: this\n    };\n    this.mergeDefaultAndTheme(option, ecModel);\n    var sourceManager = inner(this).sourceManager = new SourceManager(this);\n    sourceManager.prepareSource();\n    var data = this.getInitialData(option, ecModel);\n    wrapData(data, this);\n    this.dataTask.context.data = data;\n\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.assert(data, 'getInitialData returned invalid data.');\n    }\n\n    inner(this).dataBeforeProcessed = data;\n    autoSeriesName(this);\n\n    this._initSelectedMapFromData(data);\n  };\n\n  SeriesModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n    var layoutMode = fetchLayoutMode(this);\n    var inputPositionParams = layoutMode ? getLayoutParams(option) : {};\n    var themeSubType = this.subType;\n\n    if (ComponentModel.hasClass(themeSubType)) {\n      themeSubType += 'Series';\n    }\n\n    zrUtil.merge(option, ecModel.getTheme().get(this.subType));\n    zrUtil.merge(option, this.getDefaultOption());\n    modelUtil.defaultEmphasis(option, 'label', ['show']);\n    this.fillDataTextStyle(option.data);\n\n    if (layoutMode) {\n      mergeLayoutParam(option, inputPositionParams, layoutMode);\n    }\n  };\n\n  SeriesModel.prototype.mergeOption = function (newSeriesOption, ecModel) {\n    newSeriesOption = zrUtil.merge(this.option, newSeriesOption, true);\n    this.fillDataTextStyle(newSeriesOption.data);\n    var layoutMode = fetchLayoutMode(this);\n\n    if (layoutMode) {\n      mergeLayoutParam(this.option, newSeriesOption, layoutMode);\n    }\n\n    var sourceManager = inner(this).sourceManager;\n    sourceManager.dirty();\n    sourceManager.prepareSource();\n    var data = this.getInitialData(newSeriesOption, ecModel);\n    wrapData(data, this);\n    this.dataTask.dirty();\n    this.dataTask.context.data = data;\n    inner(this).dataBeforeProcessed = data;\n    autoSeriesName(this);\n\n    this._initSelectedMapFromData(data);\n  };\n\n  SeriesModel.prototype.fillDataTextStyle = function (data) {\n    if (data && !zrUtil.isTypedArray(data)) {\n      var props = ['show'];\n\n      for (var i = 0; i < data.length; i++) {\n        if (data[i] && data[i].label) {\n          modelUtil.defaultEmphasis(data[i], 'label', props);\n        }\n      }\n    }\n  };\n\n  SeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return;\n  };\n\n  SeriesModel.prototype.appendData = function (params) {\n    var data = this.getRawData();\n    data.appendData(params.data);\n  };\n\n  SeriesModel.prototype.getData = function (dataType) {\n    var task = getCurrentTask(this);\n\n    if (task) {\n      var data = task.context.data;\n      return dataType == null ? data : data.getLinkedData(dataType);\n    } else {\n      return inner(this).data;\n    }\n  };\n\n  SeriesModel.prototype.getAllData = function () {\n    var mainData = this.getData();\n    return mainData && mainData.getLinkedDataAll ? mainData.getLinkedDataAll() : [{\n      data: mainData\n    }];\n  };\n\n  SeriesModel.prototype.setData = function (data) {\n    var task = getCurrentTask(this);\n\n    if (task) {\n      var context = task.context;\n      context.outputData = data;\n\n      if (task !== this.dataTask) {\n        context.data = data;\n      }\n    }\n\n    inner(this).data = data;\n  };\n\n  SeriesModel.prototype.getSource = function () {\n    return inner(this).sourceManager.getSource();\n  };\n\n  SeriesModel.prototype.getRawData = function () {\n    return inner(this).dataBeforeProcessed;\n  };\n\n  SeriesModel.prototype.getBaseAxis = function () {\n    var coordSys = this.coordinateSystem;\n    return coordSys && coordSys.getBaseAxis && coordSys.getBaseAxis();\n  };\n\n  SeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    return defaultSeriesFormatTooltip({\n      series: this,\n      dataIndex: dataIndex,\n      multipleSeries: multipleSeries\n    });\n  };\n\n  SeriesModel.prototype.isAnimationEnabled = function () {\n    if (env.node) {\n      return false;\n    }\n\n    var animationEnabled = this.getShallow('animation');\n\n    if (animationEnabled) {\n      if (this.getData().count() > this.getShallow('animationThreshold')) {\n        animationEnabled = false;\n      }\n    }\n\n    return !!animationEnabled;\n  };\n\n  SeriesModel.prototype.restoreData = function () {\n    this.dataTask.dirty();\n  };\n\n  SeriesModel.prototype.getColorFromPalette = function (name, scope, requestColorNum) {\n    var ecModel = this.ecModel;\n    var color = PaletteMixin.prototype.getColorFromPalette.call(this, name, scope, requestColorNum);\n\n    if (!color) {\n      color = ecModel.getColorFromPalette(name, scope, requestColorNum);\n    }\n\n    return color;\n  };\n\n  SeriesModel.prototype.coordDimToDataDim = function (coordDim) {\n    return this.getRawData().mapDimensionsAll(coordDim);\n  };\n\n  SeriesModel.prototype.getProgressive = function () {\n    return this.get('progressive');\n  };\n\n  SeriesModel.prototype.getProgressiveThreshold = function () {\n    return this.get('progressiveThreshold');\n  };\n\n  SeriesModel.prototype.select = function (innerDataIndices, dataType) {\n    this._innerSelect(this.getData(dataType), innerDataIndices);\n  };\n\n  SeriesModel.prototype.unselect = function (innerDataIndices, dataType) {\n    var selectedMap = this.option.selectedMap;\n\n    if (!selectedMap) {\n      return;\n    }\n\n    var data = this.getData(dataType);\n\n    for (var i = 0; i < innerDataIndices.length; i++) {\n      var dataIndex = innerDataIndices[i];\n      var nameOrId = getSelectionKey(data, dataIndex);\n      selectedMap[nameOrId] = false;\n      this._selectedDataIndicesMap[nameOrId] = -1;\n    }\n  };\n\n  SeriesModel.prototype.toggleSelect = function (innerDataIndices, dataType) {\n    var tmpArr = [];\n\n    for (var i = 0; i < innerDataIndices.length; i++) {\n      tmpArr[0] = innerDataIndices[i];\n      this.isSelected(innerDataIndices[i], dataType) ? this.unselect(tmpArr, dataType) : this.select(tmpArr, dataType);\n    }\n  };\n\n  SeriesModel.prototype.getSelectedDataIndices = function () {\n    var selectedDataIndicesMap = this._selectedDataIndicesMap;\n    var nameOrIds = zrUtil.keys(selectedDataIndicesMap);\n    var dataIndices = [];\n\n    for (var i = 0; i < nameOrIds.length; i++) {\n      var dataIndex = selectedDataIndicesMap[nameOrIds[i]];\n\n      if (dataIndex >= 0) {\n        dataIndices.push(dataIndex);\n      }\n    }\n\n    return dataIndices;\n  };\n\n  SeriesModel.prototype.isSelected = function (dataIndex, dataType) {\n    var selectedMap = this.option.selectedMap;\n\n    if (!selectedMap) {\n      return false;\n    }\n\n    var data = this.getData(dataType);\n    var nameOrId = getSelectionKey(data, dataIndex);\n    return selectedMap[nameOrId] || false;\n  };\n\n  SeriesModel.prototype._innerSelect = function (data, innerDataIndices) {\n    var _a, _b;\n\n    var selectedMode = this.option.selectedMode;\n    var len = innerDataIndices.length;\n\n    if (!selectedMode || !len) {\n      return;\n    }\n\n    if (selectedMode === 'multiple') {\n      var selectedMap = this.option.selectedMap || (this.option.selectedMap = {});\n\n      for (var i = 0; i < len; i++) {\n        var dataIndex = innerDataIndices[i];\n        var nameOrId = getSelectionKey(data, dataIndex);\n        selectedMap[nameOrId] = true;\n        this._selectedDataIndicesMap[nameOrId] = data.getRawIndex(dataIndex);\n      }\n    } else if (selectedMode === 'single' || selectedMode === true) {\n      var lastDataIndex = innerDataIndices[len - 1];\n      var nameOrId = getSelectionKey(data, lastDataIndex);\n      this.option.selectedMap = (_a = {}, _a[nameOrId] = true, _a);\n      this._selectedDataIndicesMap = (_b = {}, _b[nameOrId] = data.getRawIndex(lastDataIndex), _b);\n    }\n  };\n\n  SeriesModel.prototype._initSelectedMapFromData = function (data) {\n    if (this.option.selectedMap) {\n      return;\n    }\n\n    var dataIndices = [];\n\n    if (data.hasItemOption) {\n      data.each(function (idx) {\n        var rawItem = data.getRawDataItem(idx);\n\n        if (typeof rawItem === 'object' && rawItem.selected) {\n          dataIndices.push(idx);\n        }\n      });\n    }\n\n    if (dataIndices.length > 0) {\n      this._innerSelect(data, dataIndices);\n    }\n  };\n\n  SeriesModel.registerClass = function (clz) {\n    return ComponentModel.registerClass(clz);\n  };\n\n  SeriesModel.protoInitialize = function () {\n    var proto = SeriesModel.prototype;\n    proto.type = 'series.__base__';\n    proto.seriesIndex = 0;\n    proto.useColorPaletteOnData = false;\n    proto.ignoreStyleOnData = false;\n    proto.hasSymbolVisual = false;\n    proto.defaultSymbol = 'circle';\n    proto.visualStyleAccessPath = 'itemStyle';\n    proto.visualDrawType = 'fill';\n  }();\n\n  return SeriesModel;\n}(ComponentModel);\n\nzrUtil.mixin(SeriesModel, DataFormatMixin);\nzrUtil.mixin(SeriesModel, PaletteMixin);\nmountExtend(SeriesModel, ComponentModel);\n\nfunction autoSeriesName(seriesModel) {\n  var name = seriesModel.name;\n\n  if (!modelUtil.isNameSpecified(seriesModel)) {\n    seriesModel.name = getSeriesAutoName(seriesModel) || name;\n  }\n}\n\nfunction getSeriesAutoName(seriesModel) {\n  var data = seriesModel.getRawData();\n  var dataDims = data.mapDimensionsAll('seriesName');\n  var nameArr = [];\n  zrUtil.each(dataDims, function (dataDim) {\n    var dimInfo = data.getDimensionInfo(dataDim);\n    dimInfo.displayName && nameArr.push(dimInfo.displayName);\n  });\n  return nameArr.join(' ');\n}\n\nfunction dataTaskCount(context) {\n  return context.model.getRawData().count();\n}\n\nfunction dataTaskReset(context) {\n  var seriesModel = context.model;\n  seriesModel.setData(seriesModel.getRawData().cloneShallow());\n  return dataTaskProgress;\n}\n\nfunction dataTaskProgress(param, context) {\n  if (context.outputData && param.end > context.outputData.count()) {\n    context.model.getRawData().cloneShallow(context.outputData);\n  }\n}\n\nfunction wrapData(data, seriesModel) {\n  zrUtil.each(__spreadArrays(data.CHANGABLE_METHODS, data.DOWNSAMPLE_METHODS), function (methodName) {\n    data.wrapMethod(methodName, zrUtil.curry(onDataChange, seriesModel));\n  });\n}\n\nfunction onDataChange(seriesModel, newList) {\n  var task = getCurrentTask(seriesModel);\n\n  if (task) {\n    task.setOutputEnd((newList || this).count());\n  }\n\n  return newList;\n}\n\nfunction getCurrentTask(seriesModel) {\n  var scheduler = (seriesModel.ecModel || {}).scheduler;\n  var pipeline = scheduler && scheduler.getPipeline(seriesModel.uid);\n\n  if (pipeline) {\n    var task = pipeline.currentTask;\n\n    if (task) {\n      var agentStubMap = task.agentStubMap;\n\n      if (agentStubMap) {\n        task = agentStubMap.get(seriesModel.uid);\n      }\n    }\n\n    return task;\n  }\n}\n\nexport default SeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Group from 'zrender/lib/graphic/Group';\nimport * as componentUtil from '../util/component';\nimport * as clazzUtil from '../util/clazz';\n\nvar ComponentView = function () {\n  function ComponentView() {\n    this.group = new Group();\n    this.uid = componentUtil.getUID('viewComponent');\n  }\n\n  ComponentView.prototype.init = function (ecModel, api) {};\n\n  ComponentView.prototype.render = function (model, ecModel, api, payload) {};\n\n  ComponentView.prototype.dispose = function (ecModel, api) {};\n\n  ComponentView.prototype.updateView = function (model, ecModel, api, payload) {};\n\n  ComponentView.prototype.updateLayout = function (model, ecModel, api, payload) {};\n\n  ComponentView.prototype.updateVisual = function (model, ecModel, api, payload) {};\n\n  ComponentView.prototype.blurSeries = function (seriesModels, ecModel) {};\n\n  return ComponentView;\n}();\n\n;\nclazzUtil.enableClassExtend(ComponentView);\nclazzUtil.enableClassManagement(ComponentView);\nexport default ComponentView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner } from '../../util/model';\nexport default function createRenderPlanner() {\n  var inner = makeInner();\n  return function (seriesModel) {\n    var fields = inner(seriesModel);\n    var pipelineContext = seriesModel.pipelineContext;\n    var originalLarge = !!fields.large;\n    var originalProgressive = !!fields.progressiveRender;\n    var large = fields.large = !!(pipelineContext && pipelineContext.large);\n    var progressive = fields.progressiveRender = !!(pipelineContext && pipelineContext.progressiveRender);\n    return !!(originalLarge !== large || originalProgressive !== progressive) && 'reset';\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each } from 'zrender/lib/core/util';\nimport Group from 'zrender/lib/graphic/Group';\nimport * as componentUtil from '../util/component';\nimport * as clazzUtil from '../util/clazz';\nimport * as modelUtil from '../util/model';\nimport { enterEmphasis, leaveEmphasis, getHighlightDigit } from '../util/states';\nimport { createTask } from '../core/task';\nimport createRenderPlanner from '../chart/helper/createRenderPlanner';\nvar inner = modelUtil.makeInner();\nvar renderPlanner = createRenderPlanner();\n\nvar ChartView = function () {\n  function ChartView() {\n    this.group = new Group();\n    this.uid = componentUtil.getUID('viewChart');\n    this.renderTask = createTask({\n      plan: renderTaskPlan,\n      reset: renderTaskReset\n    });\n    this.renderTask.context = {\n      view: this\n    };\n  }\n\n  ChartView.prototype.init = function (ecModel, api) {};\n\n  ChartView.prototype.render = function (seriesModel, ecModel, api, payload) {};\n\n  ChartView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\n    toggleHighlight(seriesModel.getData(), payload, 'emphasis');\n  };\n\n  ChartView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\n    toggleHighlight(seriesModel.getData(), payload, 'normal');\n  };\n\n  ChartView.prototype.remove = function (ecModel, api) {\n    this.group.removeAll();\n  };\n\n  ChartView.prototype.dispose = function (ecModel, api) {};\n\n  ChartView.prototype.updateView = function (seriesModel, ecModel, api, payload) {\n    this.render(seriesModel, ecModel, api, payload);\n  };\n\n  ChartView.prototype.updateLayout = function (seriesModel, ecModel, api, payload) {\n    this.render(seriesModel, ecModel, api, payload);\n  };\n\n  ChartView.prototype.updateVisual = function (seriesModel, ecModel, api, payload) {\n    this.render(seriesModel, ecModel, api, payload);\n  };\n\n  ChartView.markUpdateMethod = function (payload, methodName) {\n    inner(payload).updateMethod = methodName;\n  };\n\n  ChartView.protoInitialize = function () {\n    var proto = ChartView.prototype;\n    proto.type = 'chart';\n  }();\n\n  return ChartView;\n}();\n\n;\n\nfunction elSetState(el, state, highlightDigit) {\n  if (el) {\n    (state === 'emphasis' ? enterEmphasis : leaveEmphasis)(el, highlightDigit);\n  }\n}\n\nfunction toggleHighlight(data, payload, state) {\n  var dataIndex = modelUtil.queryDataIndex(data, payload);\n  var highlightDigit = payload && payload.highlightKey != null ? getHighlightDigit(payload.highlightKey) : null;\n\n  if (dataIndex != null) {\n    each(modelUtil.normalizeToArray(dataIndex), function (dataIdx) {\n      elSetState(data.getItemGraphicEl(dataIdx), state, highlightDigit);\n    });\n  } else {\n    data.eachItemGraphicEl(function (el) {\n      elSetState(el, state, highlightDigit);\n    });\n  }\n}\n\nclazzUtil.enableClassExtend(ChartView, ['dispose']);\nclazzUtil.enableClassManagement(ChartView);\n\nfunction renderTaskPlan(context) {\n  return renderPlanner(context.model);\n}\n\nfunction renderTaskReset(context) {\n  var seriesModel = context.model;\n  var ecModel = context.ecModel;\n  var api = context.api;\n  var payload = context.payload;\n  var progressiveRender = seriesModel.pipelineContext.progressiveRender;\n  var view = context.view;\n  var updateMethod = payload && inner(payload).updateMethod;\n  var methodName = progressiveRender ? 'incrementalPrepareRender' : updateMethod && view[updateMethod] ? updateMethod : 'render';\n\n  if (methodName !== 'render') {\n    view[methodName](seriesModel, ecModel, api, payload);\n  }\n\n  return progressMethodMap[methodName];\n}\n\nvar progressMethodMap = {\n  incrementalPrepareRender: {\n    progress: function (params, context) {\n      context.view.incrementalRender(params, context.model, context.ecModel, context.api, context.payload);\n    }\n  },\n  render: {\n    forceFirstProgress: true,\n    progress: function (params, context) {\n      context.view.render(context.model, context.ecModel, context.api, context.payload);\n    }\n  }\n};\nexport default ChartView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar ORIGIN_METHOD = '\\0__throttleOriginMethod';\nvar RATE = '\\0__throttleRate';\nvar THROTTLE_TYPE = '\\0__throttleType';\n;\nexport function throttle(fn, delay, debounce) {\n  var currCall;\n  var lastCall = 0;\n  var lastExec = 0;\n  var timer = null;\n  var diff;\n  var scope;\n  var args;\n  var debounceNextCall;\n  delay = delay || 0;\n\n  function exec() {\n    lastExec = new Date().getTime();\n    timer = null;\n    fn.apply(scope, args || []);\n  }\n\n  var cb = function () {\n    var cbArgs = [];\n\n    for (var _i = 0; _i < arguments.length; _i++) {\n      cbArgs[_i] = arguments[_i];\n    }\n\n    currCall = new Date().getTime();\n    scope = this;\n    args = cbArgs;\n    var thisDelay = debounceNextCall || delay;\n    var thisDebounce = debounceNextCall || debounce;\n    debounceNextCall = null;\n    diff = currCall - (thisDebounce ? lastCall : lastExec) - thisDelay;\n    clearTimeout(timer);\n\n    if (thisDebounce) {\n      timer = setTimeout(exec, thisDelay);\n    } else {\n      if (diff >= 0) {\n        exec();\n      } else {\n        timer = setTimeout(exec, -diff);\n      }\n    }\n\n    lastCall = currCall;\n  };\n\n  cb.clear = function () {\n    if (timer) {\n      clearTimeout(timer);\n      timer = null;\n    }\n  };\n\n  cb.debounceNextCall = function (debounceDelay) {\n    debounceNextCall = debounceDelay;\n  };\n\n  return cb;\n}\nexport function createOrUpdate(obj, fnAttr, rate, throttleType) {\n  var fn = obj[fnAttr];\n\n  if (!fn) {\n    return;\n  }\n\n  var originFn = fn[ORIGIN_METHOD] || fn;\n  var lastThrottleType = fn[THROTTLE_TYPE];\n  var lastRate = fn[RATE];\n\n  if (lastRate !== rate || lastThrottleType !== throttleType) {\n    if (rate == null || !throttleType) {\n      return obj[fnAttr] = originFn;\n    }\n\n    fn = obj[fnAttr] = throttle(originFn, rate, throttleType === 'debounce');\n    fn[ORIGIN_METHOD] = originFn;\n    fn[THROTTLE_TYPE] = throttleType;\n    fn[RATE] = rate;\n  }\n\n  return fn;\n}\nexport function clear(obj, fnAttr) {\n  var fn = obj[fnAttr];\n\n  if (fn && fn[ORIGIN_METHOD]) {\n    obj[fnAttr] = fn[ORIGIN_METHOD];\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isFunction, extend, createHashMap } from 'zrender/lib/core/util';\nimport makeStyleMapper from '../model/mixin/makeStyleMapper';\nimport { ITEM_STYLE_KEY_MAP } from '../model/mixin/itemStyle';\nimport { LINE_STYLE_KEY_MAP } from '../model/mixin/lineStyle';\nimport Model from '../model/Model';\nimport { makeInner } from '../util/model';\nvar inner = makeInner();\nvar defaultStyleMappers = {\n  itemStyle: makeStyleMapper(ITEM_STYLE_KEY_MAP, true),\n  lineStyle: makeStyleMapper(LINE_STYLE_KEY_MAP, true)\n};\nvar defaultColorKey = {\n  lineStyle: 'stroke',\n  itemStyle: 'fill'\n};\n\nfunction getStyleMapper(seriesModel, stylePath) {\n  var styleMapper = seriesModel.visualStyleMapper || defaultStyleMappers[stylePath];\n\n  if (!styleMapper) {\n    console.warn(\"Unkown style type '\" + stylePath + \"'.\");\n    return defaultStyleMappers.itemStyle;\n  }\n\n  return styleMapper;\n}\n\nfunction getDefaultColorKey(seriesModel, stylePath) {\n  var colorKey = seriesModel.visualDrawType || defaultColorKey[stylePath];\n\n  if (!colorKey) {\n    console.warn(\"Unkown style type '\" + stylePath + \"'.\");\n    return 'fill';\n  }\n\n  return colorKey;\n}\n\nvar seriesStyleTask = {\n  createOnAllSeries: true,\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    var data = seriesModel.getData();\n    var stylePath = seriesModel.visualStyleAccessPath || 'itemStyle';\n    var styleModel = seriesModel.getModel(stylePath);\n    var getStyle = getStyleMapper(seriesModel, stylePath);\n    var globalStyle = getStyle(styleModel);\n    var decalOption = styleModel.getShallow('decal');\n\n    if (decalOption) {\n      data.setVisual('decal', decalOption);\n      decalOption.dirty = true;\n    }\n\n    var colorKey = getDefaultColorKey(seriesModel, stylePath);\n    var color = globalStyle[colorKey];\n    var colorCallback = isFunction(color) ? color : null;\n\n    if (!globalStyle[colorKey] || colorCallback) {\n      globalStyle[colorKey] = seriesModel.getColorFromPalette(seriesModel.name, null, ecModel.getSeriesCount());\n      data.setVisual('colorFromPalette', true);\n    }\n\n    data.setVisual('style', globalStyle);\n    data.setVisual('drawType', colorKey);\n\n    if (!ecModel.isSeriesFiltered(seriesModel) && colorCallback) {\n      data.setVisual('colorFromPalette', false);\n      return {\n        dataEach: function (data, idx) {\n          var dataParams = seriesModel.getDataParams(idx);\n          var itemStyle = extend({}, globalStyle);\n          itemStyle[colorKey] = colorCallback(dataParams);\n          data.setItemVisual(idx, 'style', itemStyle);\n        }\n      };\n    }\n  }\n};\nvar sharedModel = new Model();\nvar dataStyleTask = {\n  createOnAllSeries: true,\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    if (seriesModel.ignoreStyleOnData || ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var stylePath = seriesModel.visualStyleAccessPath || 'itemStyle';\n    var getStyle = getStyleMapper(seriesModel, stylePath);\n    var colorKey = data.getVisual('drawType');\n    return {\n      dataEach: data.hasItemOption ? function (data, idx) {\n        var rawItem = data.getRawDataItem(idx);\n\n        if (rawItem && rawItem[stylePath]) {\n          sharedModel.option = rawItem[stylePath];\n          var style = getStyle(sharedModel);\n          var existsStyle = data.ensureUniqueItemVisual(idx, 'style');\n          extend(existsStyle, style);\n\n          if (sharedModel.option.decal) {\n            data.setItemVisual(idx, 'decal', sharedModel.option.decal);\n            sharedModel.option.decal.dirty = true;\n          }\n\n          if (colorKey in style) {\n            data.setItemVisual(idx, 'colorFromPalette', false);\n          }\n        }\n      } : null\n    };\n  }\n};\nvar dataColorPaletteTask = {\n  performRawSeries: true,\n  overallReset: function (ecModel) {\n    var paletteScopeGroupByType = createHashMap();\n    ecModel.eachSeries(function (seriesModel) {\n      if (!seriesModel.useColorPaletteOnData) {\n        return;\n      }\n\n      var colorScope = paletteScopeGroupByType.get(seriesModel.type);\n\n      if (!colorScope) {\n        colorScope = {};\n        paletteScopeGroupByType.set(seriesModel.type, colorScope);\n      }\n\n      inner(seriesModel).scope = colorScope;\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      if (!seriesModel.useColorPaletteOnData || ecModel.isSeriesFiltered(seriesModel)) {\n        return;\n      }\n\n      var dataAll = seriesModel.getRawData();\n      var idxMap = {};\n      var data = seriesModel.getData();\n      var colorScope = inner(seriesModel).scope;\n      var stylePath = seriesModel.visualStyleAccessPath || 'itemStyle';\n      var colorKey = getDefaultColorKey(seriesModel, stylePath);\n      data.each(function (idx) {\n        var rawIdx = data.getRawIndex(idx);\n        idxMap[rawIdx] = idx;\n      });\n      dataAll.each(function (rawIdx) {\n        var idx = idxMap[rawIdx];\n        var fromPalette = data.getItemVisual(idx, 'colorFromPalette');\n\n        if (fromPalette) {\n          var itemStyle = data.ensureUniqueItemVisual(idx, 'style');\n          var name_1 = dataAll.getName(rawIdx) || rawIdx + '';\n          var dataCount = dataAll.count();\n          itemStyle[colorKey] = seriesModel.getColorFromPalette(name_1, colorScope, dataCount);\n        }\n      });\n    });\n  }\n};\nexport { seriesStyleTask, dataStyleTask, dataColorPaletteTask };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../util/graphic';\nvar PI = Math.PI;\nexport default function defaultLoading(api, opts) {\n  opts = opts || {};\n  zrUtil.defaults(opts, {\n    text: 'loading',\n    textColor: '#000',\n    fontSize: 12,\n    fontWeight: 'normal',\n    fontStyle: 'normal',\n    fontFamily: 'sans-serif',\n    maskColor: 'rgba(255, 255, 255, 0.8)',\n    showSpinner: true,\n    color: '#5470c6',\n    spinnerRadius: 10,\n    lineWidth: 5,\n    zlevel: 0\n  });\n  var group = new graphic.Group();\n  var mask = new graphic.Rect({\n    style: {\n      fill: opts.maskColor\n    },\n    zlevel: opts.zlevel,\n    z: 10000\n  });\n  group.add(mask);\n  var textContent = new graphic.Text({\n    style: {\n      text: opts.text,\n      fill: opts.textColor,\n      fontSize: opts.fontSize,\n      fontWeight: opts.fontWeight,\n      fontStyle: opts.fontStyle,\n      fontFamily: opts.fontFamily\n    }\n  });\n  var labelRect = new graphic.Rect({\n    style: {\n      fill: 'none'\n    },\n    textContent: textContent,\n    textConfig: {\n      position: 'right',\n      distance: 10\n    },\n    zlevel: opts.zlevel,\n    z: 10001\n  });\n  group.add(labelRect);\n  var arc;\n\n  if (opts.showSpinner) {\n    arc = new graphic.Arc({\n      shape: {\n        startAngle: -PI / 2,\n        endAngle: -PI / 2 + 0.1,\n        r: opts.spinnerRadius\n      },\n      style: {\n        stroke: opts.color,\n        lineCap: 'round',\n        lineWidth: opts.lineWidth\n      },\n      zlevel: opts.zlevel,\n      z: 10001\n    });\n    arc.animateShape(true).when(1000, {\n      endAngle: PI * 3 / 2\n    }).start('circularInOut');\n    arc.animateShape(true).when(1000, {\n      startAngle: PI * 3 / 2\n    }).delay(300).start('circularInOut');\n    group.add(arc);\n  }\n\n  group.resize = function () {\n    var textWidth = textContent.getBoundingRect().width;\n    var r = opts.showSpinner ? opts.spinnerRadius : 0;\n    var cx = (api.getWidth() - r * 2 - (opts.showSpinner && textWidth ? 10 : 0) - textWidth) / 2 - (opts.showSpinner && textWidth ? 0 : 5 + textWidth / 2) + (opts.showSpinner ? 0 : textWidth / 2) + (textWidth ? 0 : r);\n    var cy = api.getHeight() / 2;\n    opts.showSpinner && arc.setShape({\n      cx: cx,\n      cy: cy\n    });\n    labelRect.setShape({\n      x: cx - r,\n      y: cy - r,\n      width: r * 2,\n      height: r * 2\n    });\n    mask.setShape({\n      x: 0,\n      y: 0,\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n  };\n\n  group.resize();\n  return group;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, map, isFunction, createHashMap, noop, assert } from 'zrender/lib/core/util';\nimport { createTask } from './task';\nimport { getUID } from '../util/component';\nimport GlobalModel from '../model/Global';\nimport ExtensionAPI from './ExtensionAPI';\nimport { normalizeToArray } from '../util/model';\n;\n\nvar Scheduler = function () {\n  function Scheduler(ecInstance, api, dataProcessorHandlers, visualHandlers) {\n    this._stageTaskMap = createHashMap();\n    this.ecInstance = ecInstance;\n    this.api = api;\n    dataProcessorHandlers = this._dataProcessorHandlers = dataProcessorHandlers.slice();\n    visualHandlers = this._visualHandlers = visualHandlers.slice();\n    this._allHandlers = dataProcessorHandlers.concat(visualHandlers);\n  }\n\n  Scheduler.prototype.restoreData = function (ecModel, payload) {\n    ecModel.restoreData(payload);\n\n    this._stageTaskMap.each(function (taskRecord) {\n      var overallTask = taskRecord.overallTask;\n      overallTask && overallTask.dirty();\n    });\n  };\n\n  Scheduler.prototype.getPerformArgs = function (task, isBlock) {\n    if (!task.__pipeline) {\n      return;\n    }\n\n    var pipeline = this._pipelineMap.get(task.__pipeline.id);\n\n    var pCtx = pipeline.context;\n    var incremental = !isBlock && pipeline.progressiveEnabled && (!pCtx || pCtx.progressiveRender) && task.__idxInPipeline > pipeline.blockIndex;\n    var step = incremental ? pipeline.step : null;\n    var modDataCount = pCtx && pCtx.modDataCount;\n    var modBy = modDataCount != null ? Math.ceil(modDataCount / step) : null;\n    return {\n      step: step,\n      modBy: modBy,\n      modDataCount: modDataCount\n    };\n  };\n\n  Scheduler.prototype.getPipeline = function (pipelineId) {\n    return this._pipelineMap.get(pipelineId);\n  };\n\n  Scheduler.prototype.updateStreamModes = function (seriesModel, view) {\n    var pipeline = this._pipelineMap.get(seriesModel.uid);\n\n    var data = seriesModel.getData();\n    var dataLen = data.count();\n    var progressiveRender = pipeline.progressiveEnabled && view.incrementalPrepareRender && dataLen >= pipeline.threshold;\n    var large = seriesModel.get('large') && dataLen >= seriesModel.get('largeThreshold');\n    var modDataCount = seriesModel.get('progressiveChunkMode') === 'mod' ? dataLen : null;\n    seriesModel.pipelineContext = pipeline.context = {\n      progressiveRender: progressiveRender,\n      modDataCount: modDataCount,\n      large: large\n    };\n  };\n\n  Scheduler.prototype.restorePipelines = function (ecModel) {\n    var scheduler = this;\n    var pipelineMap = scheduler._pipelineMap = createHashMap();\n    ecModel.eachSeries(function (seriesModel) {\n      var progressive = seriesModel.getProgressive();\n      var pipelineId = seriesModel.uid;\n      pipelineMap.set(pipelineId, {\n        id: pipelineId,\n        head: null,\n        tail: null,\n        threshold: seriesModel.getProgressiveThreshold(),\n        progressiveEnabled: progressive && !(seriesModel.preventIncremental && seriesModel.preventIncremental()),\n        blockIndex: -1,\n        step: Math.round(progressive || 700),\n        count: 0\n      });\n\n      scheduler._pipe(seriesModel, seriesModel.dataTask);\n    });\n  };\n\n  Scheduler.prototype.prepareStageTasks = function () {\n    var stageTaskMap = this._stageTaskMap;\n    var ecModel = this.api.getModel();\n    var api = this.api;\n    each(this._allHandlers, function (handler) {\n      var record = stageTaskMap.get(handler.uid) || stageTaskMap.set(handler.uid, {});\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = '\"reset\" and \"overallReset\" must not be both specified.';\n      }\n\n      assert(!(handler.reset && handler.overallReset), errMsg);\n      handler.reset && this._createSeriesStageTask(handler, record, ecModel, api);\n      handler.overallReset && this._createOverallStageTask(handler, record, ecModel, api);\n    }, this);\n  };\n\n  Scheduler.prototype.prepareView = function (view, model, ecModel, api) {\n    var renderTask = view.renderTask;\n    var context = renderTask.context;\n    context.model = model;\n    context.ecModel = ecModel;\n    context.api = api;\n    renderTask.__block = !view.incrementalPrepareRender;\n\n    this._pipe(model, renderTask);\n  };\n\n  Scheduler.prototype.performDataProcessorTasks = function (ecModel, payload) {\n    this._performStageTasks(this._dataProcessorHandlers, ecModel, payload, {\n      block: true\n    });\n  };\n\n  Scheduler.prototype.performVisualTasks = function (ecModel, payload, opt) {\n    this._performStageTasks(this._visualHandlers, ecModel, payload, opt);\n  };\n\n  Scheduler.prototype._performStageTasks = function (stageHandlers, ecModel, payload, opt) {\n    opt = opt || {};\n    var unfinished = false;\n    var scheduler = this;\n    each(stageHandlers, function (stageHandler, idx) {\n      if (opt.visualType && opt.visualType !== stageHandler.visualType) {\n        return;\n      }\n\n      var stageHandlerRecord = scheduler._stageTaskMap.get(stageHandler.uid);\n\n      var seriesTaskMap = stageHandlerRecord.seriesTaskMap;\n      var overallTask = stageHandlerRecord.overallTask;\n\n      if (overallTask) {\n        var overallNeedDirty_1;\n        var agentStubMap = overallTask.agentStubMap;\n        agentStubMap.each(function (stub) {\n          if (needSetDirty(opt, stub)) {\n            stub.dirty();\n            overallNeedDirty_1 = true;\n          }\n        });\n        overallNeedDirty_1 && overallTask.dirty();\n        scheduler.updatePayload(overallTask, payload);\n        var performArgs_1 = scheduler.getPerformArgs(overallTask, opt.block);\n        agentStubMap.each(function (stub) {\n          stub.perform(performArgs_1);\n        });\n\n        if (overallTask.perform(performArgs_1)) {\n          unfinished = true;\n        }\n      } else if (seriesTaskMap) {\n        seriesTaskMap.each(function (task, pipelineId) {\n          if (needSetDirty(opt, task)) {\n            task.dirty();\n          }\n\n          var performArgs = scheduler.getPerformArgs(task, opt.block);\n          performArgs.skip = !stageHandler.performRawSeries && ecModel.isSeriesFiltered(task.context.model);\n          scheduler.updatePayload(task, payload);\n\n          if (task.perform(performArgs)) {\n            unfinished = true;\n          }\n        });\n      }\n    });\n\n    function needSetDirty(opt, task) {\n      return opt.setDirty && (!opt.dirtyMap || opt.dirtyMap.get(task.__pipeline.id));\n    }\n\n    this.unfinished = unfinished || this.unfinished;\n  };\n\n  Scheduler.prototype.performSeriesTasks = function (ecModel) {\n    var unfinished;\n    ecModel.eachSeries(function (seriesModel) {\n      unfinished = seriesModel.dataTask.perform() || unfinished;\n    });\n    this.unfinished = unfinished || this.unfinished;\n  };\n\n  Scheduler.prototype.plan = function () {\n    this._pipelineMap.each(function (pipeline) {\n      var task = pipeline.tail;\n\n      do {\n        if (task.__block) {\n          pipeline.blockIndex = task.__idxInPipeline;\n          break;\n        }\n\n        task = task.getUpstream();\n      } while (task);\n    });\n  };\n\n  Scheduler.prototype.updatePayload = function (task, payload) {\n    payload !== 'remain' && (task.context.payload = payload);\n  };\n\n  Scheduler.prototype._createSeriesStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\n    var scheduler = this;\n    var oldSeriesTaskMap = stageHandlerRecord.seriesTaskMap;\n    var newSeriesTaskMap = stageHandlerRecord.seriesTaskMap = createHashMap();\n    var seriesType = stageHandler.seriesType;\n    var getTargetSeries = stageHandler.getTargetSeries;\n\n    if (stageHandler.createOnAllSeries) {\n      ecModel.eachRawSeries(create);\n    } else if (seriesType) {\n      ecModel.eachRawSeriesByType(seriesType, create);\n    } else if (getTargetSeries) {\n      getTargetSeries(ecModel, api).each(create);\n    }\n\n    function create(seriesModel) {\n      var pipelineId = seriesModel.uid;\n      var task = newSeriesTaskMap.set(pipelineId, oldSeriesTaskMap && oldSeriesTaskMap.get(pipelineId) || createTask({\n        plan: seriesTaskPlan,\n        reset: seriesTaskReset,\n        count: seriesTaskCount\n      }));\n      task.context = {\n        model: seriesModel,\n        ecModel: ecModel,\n        api: api,\n        useClearVisual: stageHandler.isVisual && !stageHandler.isLayout,\n        plan: stageHandler.plan,\n        reset: stageHandler.reset,\n        scheduler: scheduler\n      };\n\n      scheduler._pipe(seriesModel, task);\n    }\n  };\n\n  Scheduler.prototype._createOverallStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\n    var scheduler = this;\n    var overallTask = stageHandlerRecord.overallTask = stageHandlerRecord.overallTask || createTask({\n      reset: overallTaskReset\n    });\n    overallTask.context = {\n      ecModel: ecModel,\n      api: api,\n      overallReset: stageHandler.overallReset,\n      scheduler: scheduler\n    };\n    var oldAgentStubMap = overallTask.agentStubMap;\n    var newAgentStubMap = overallTask.agentStubMap = createHashMap();\n    var seriesType = stageHandler.seriesType;\n    var getTargetSeries = stageHandler.getTargetSeries;\n    var overallProgress = true;\n    var shouldOverallTaskDirty = false;\n    var errMsg = '';\n\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = '\"createOnAllSeries\" do not supported for \"overallReset\", ' + 'becuase it will block all streams.';\n    }\n\n    assert(!stageHandler.createOnAllSeries, errMsg);\n\n    if (seriesType) {\n      ecModel.eachRawSeriesByType(seriesType, createStub);\n    } else if (getTargetSeries) {\n      getTargetSeries(ecModel, api).each(createStub);\n    } else {\n      overallProgress = false;\n      each(ecModel.getSeries(), createStub);\n    }\n\n    function createStub(seriesModel) {\n      var pipelineId = seriesModel.uid;\n      var stub = newAgentStubMap.set(pipelineId, oldAgentStubMap && oldAgentStubMap.get(pipelineId) || (shouldOverallTaskDirty = true, createTask({\n        reset: stubReset,\n        onDirty: stubOnDirty\n      })));\n      stub.context = {\n        model: seriesModel,\n        overallProgress: overallProgress\n      };\n      stub.agent = overallTask;\n      stub.__block = overallProgress;\n\n      scheduler._pipe(seriesModel, stub);\n    }\n\n    if (shouldOverallTaskDirty) {\n      overallTask.dirty();\n    }\n  };\n\n  Scheduler.prototype._pipe = function (seriesModel, task) {\n    var pipelineId = seriesModel.uid;\n\n    var pipeline = this._pipelineMap.get(pipelineId);\n\n    !pipeline.head && (pipeline.head = task);\n    pipeline.tail && pipeline.tail.pipe(task);\n    pipeline.tail = task;\n    task.__idxInPipeline = pipeline.count++;\n    task.__pipeline = pipeline;\n  };\n\n  Scheduler.wrapStageHandler = function (stageHandler, visualType) {\n    if (isFunction(stageHandler)) {\n      stageHandler = {\n        overallReset: stageHandler,\n        seriesType: detectSeriseType(stageHandler)\n      };\n    }\n\n    stageHandler.uid = getUID('stageHandler');\n    visualType && (stageHandler.visualType = visualType);\n    return stageHandler;\n  };\n\n  ;\n  return Scheduler;\n}();\n\nfunction overallTaskReset(context) {\n  context.overallReset(context.ecModel, context.api, context.payload);\n}\n\nfunction stubReset(context) {\n  return context.overallProgress && stubProgress;\n}\n\nfunction stubProgress() {\n  this.agent.dirty();\n  this.getDownstream().dirty();\n}\n\nfunction stubOnDirty() {\n  this.agent && this.agent.dirty();\n}\n\nfunction seriesTaskPlan(context) {\n  return context.plan ? context.plan(context.model, context.ecModel, context.api, context.payload) : null;\n}\n\nfunction seriesTaskReset(context) {\n  if (context.useClearVisual) {\n    context.data.clearAllVisual();\n  }\n\n  var resetDefines = context.resetDefines = normalizeToArray(context.reset(context.model, context.ecModel, context.api, context.payload));\n  return resetDefines.length > 1 ? map(resetDefines, function (v, idx) {\n    return makeSeriesTaskProgress(idx);\n  }) : singleSeriesTaskProgress;\n}\n\nvar singleSeriesTaskProgress = makeSeriesTaskProgress(0);\n\nfunction makeSeriesTaskProgress(resetDefineIdx) {\n  return function (params, context) {\n    var data = context.data;\n    var resetDefine = context.resetDefines[resetDefineIdx];\n\n    if (resetDefine && resetDefine.dataEach) {\n      for (var i = params.start; i < params.end; i++) {\n        resetDefine.dataEach(data, i);\n      }\n    } else if (resetDefine && resetDefine.progress) {\n      resetDefine.progress(params, data);\n    }\n  };\n}\n\nfunction seriesTaskCount(context) {\n  return context.data.count();\n}\n\nfunction detectSeriseType(legacyFunc) {\n  seriesType = null;\n\n  try {\n    legacyFunc(ecModelMock, apiMock);\n  } catch (e) {}\n\n  return seriesType;\n}\n\nvar ecModelMock = {};\nvar apiMock = {};\nvar seriesType;\nmockMethods(ecModelMock, GlobalModel);\nmockMethods(apiMock, ExtensionAPI);\n\necModelMock.eachSeriesByType = ecModelMock.eachRawSeriesByType = function (type) {\n  seriesType = type;\n};\n\necModelMock.eachComponent = function (cond) {\n  if (cond.mainType === 'series' && cond.subType) {\n    seriesType = cond.subType;\n  }\n};\n\nfunction mockMethods(target, Clz) {\n  for (var name_1 in Clz.prototype) {\n    target[name_1] = noop;\n  }\n}\n\nexport default Scheduler;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar colorAll = ['#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'];\nexport default {\n  color: colorAll,\n  colorLayer: [['#37A2DA', '#ffd85c', '#fd7b5f'], ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'], ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'], colorAll]\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar contrastColor = '#B9B8CE';\nvar backgroundColor = '#100C2A';\n\nvar axisCommon = function () {\n  return {\n    axisLine: {\n      lineStyle: {\n        color: contrastColor\n      }\n    },\n    splitLine: {\n      lineStyle: {\n        color: '#484753'\n      }\n    },\n    splitArea: {\n      areaStyle: {\n        color: ['rgba(255,255,255,0.02)', 'rgba(255,255,255,0.05)']\n      }\n    },\n    minorSplitLine: {\n      lineStyle: {\n        color: '#20203B'\n      }\n    }\n  };\n};\n\nvar colorPalette = ['#4992ff', '#7cffb2', '#fddd60', '#ff6e76', '#58d9f9', '#05c091', '#ff8a45', '#8d48e3', '#dd79ff'];\nvar theme = {\n  darkMode: true,\n  color: colorPalette,\n  backgroundColor: backgroundColor,\n  axisPointer: {\n    lineStyle: {\n      color: '#817f91'\n    },\n    crossStyle: {\n      color: '#817f91'\n    },\n    label: {\n      color: '#fff'\n    }\n  },\n  legend: {\n    textStyle: {\n      color: contrastColor\n    }\n  },\n  textStyle: {\n    color: contrastColor\n  },\n  title: {\n    textStyle: {\n      color: '#EEF1FA'\n    },\n    subtextStyle: {\n      color: '#B9B8CE'\n    }\n  },\n  toolbox: {\n    iconStyle: {\n      borderColor: contrastColor\n    }\n  },\n  dataZoom: {\n    borderColor: '#71708A',\n    textStyle: {\n      color: contrastColor\n    },\n    brushStyle: {\n      color: 'rgba(135,163,206,0.3)'\n    },\n    handleStyle: {\n      color: '#353450',\n      borderColor: '#C5CBE3'\n    },\n    moveHandleStyle: {\n      color: '#B0B6C3',\n      opacity: 0.3\n    },\n    fillerColor: 'rgba(135,163,206,0.2)',\n    emphasis: {\n      handleStyle: {\n        borderColor: '#91B7F2',\n        color: '#4D587D'\n      },\n      moveHandleStyle: {\n        color: '#636D9A',\n        opacity: 0.7\n      }\n    },\n    dataBackground: {\n      lineStyle: {\n        color: '#71708A',\n        width: 1\n      },\n      areaStyle: {\n        color: '#71708A'\n      }\n    },\n    selectedDataBackground: {\n      lineStyle: {\n        color: '#87A3CE'\n      },\n      areaStyle: {\n        color: '#87A3CE'\n      }\n    }\n  },\n  visualMap: {\n    textStyle: {\n      color: contrastColor\n    }\n  },\n  timeline: {\n    lineStyle: {\n      color: contrastColor\n    },\n    label: {\n      color: contrastColor\n    },\n    controlStyle: {\n      color: contrastColor,\n      borderColor: contrastColor\n    }\n  },\n  calendar: {\n    itemStyle: {\n      color: backgroundColor\n    },\n    dayLabel: {\n      color: contrastColor\n    },\n    monthLabel: {\n      color: contrastColor\n    },\n    yearLabel: {\n      color: contrastColor\n    }\n  },\n  timeAxis: axisCommon(),\n  logAxis: axisCommon(),\n  valueAxis: axisCommon(),\n  categoryAxis: axisCommon(),\n  line: {\n    symbol: 'circle'\n  },\n  graph: {\n    color: colorPalette\n  },\n  gauge: {\n    title: {\n      color: contrastColor\n    },\n    axisLine: {\n      lineStyle: {\n        color: [[1, 'rgba(207,212,219,0.2)']]\n      }\n    },\n    axisLabel: {\n      color: contrastColor\n    },\n    detail: {\n      color: '#EEF1FA'\n    }\n  },\n  candlestick: {\n    itemStyle: {\n      color: '#f64e56',\n      color0: '#54ea92',\n      borderColor: '#f64e56',\n      borderColor0: '#54ea92'\n    }\n  }\n};\ntheme.categoryAxis.splitLine.show = false;\nexport default theme;","import { isString } from '../core/util';\nexport function parseXML(svg) {\n    if (isString(svg)) {\n        var parser = new DOMParser();\n        svg = parser.parseFromString(svg, 'text/xml');\n    }\n    var svgNode = svg;\n    if (svgNode.nodeType === 9) {\n        svgNode = svgNode.firstChild;\n    }\n    while (svgNode.nodeName.toLowerCase() !== 'svg' || svgNode.nodeType !== 1) {\n        svgNode = svgNode.nextSibling;\n    }\n    return svgNode;\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, isString, isArray, each, assert } from 'zrender/lib/core/util';\nimport { parseXML } from 'zrender/lib/tool/parseXML';\nvar storage = createHashMap();\nexport default {\n  registerMap: function (mapName, rawDef, rawSpecialAreas) {\n    var records;\n\n    if (isArray(rawDef)) {\n      records = rawDef;\n    } else if (rawDef.svg) {\n      records = [{\n        type: 'svg',\n        source: rawDef.svg,\n        specialAreas: rawDef.specialAreas\n      }];\n    } else {\n      var geoSource = rawDef.geoJson || rawDef.geoJSON;\n\n      if (geoSource && !rawDef.features) {\n        rawSpecialAreas = rawDef.specialAreas;\n        rawDef = geoSource;\n      }\n\n      records = [{\n        type: 'geoJSON',\n        source: rawDef,\n        specialAreas: rawSpecialAreas\n      }];\n    }\n\n    each(records, function (record) {\n      var type = record.type;\n      type === 'geoJson' && (type = record.type = 'geoJSON');\n      var parse = parsers[type];\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(parse, 'Illegal map type: ' + type);\n      }\n\n      parse(record);\n    });\n    return storage.set(mapName, records);\n  },\n  retrieveMap: function (mapName) {\n    return storage.get(mapName);\n  }\n};\nvar parsers = {\n  geoJSON: function (record) {\n    var source = record.source;\n    record.geoJSON = !isString(source) ? source : typeof JSON !== 'undefined' && JSON.parse ? JSON.parse(source) : new Function('return (' + source + ');')();\n  },\n  svg: function (record) {\n    record.svgXML = parseXML(record.source);\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parseClassType } from './clazz';\n\nvar ECEventProcessor = function () {\n  function ECEventProcessor() {}\n\n  ECEventProcessor.prototype.normalizeQuery = function (query) {\n    var cptQuery = {};\n    var dataQuery = {};\n    var otherQuery = {};\n\n    if (zrUtil.isString(query)) {\n      var condCptType = parseClassType(query);\n      cptQuery.mainType = condCptType.main || null;\n      cptQuery.subType = condCptType.sub || null;\n    } else {\n      var suffixes_1 = ['Index', 'Name', 'Id'];\n      var dataKeys_1 = {\n        name: 1,\n        dataIndex: 1,\n        dataType: 1\n      };\n      zrUtil.each(query, function (val, key) {\n        var reserved = false;\n\n        for (var i = 0; i < suffixes_1.length; i++) {\n          var propSuffix = suffixes_1[i];\n          var suffixPos = key.lastIndexOf(propSuffix);\n\n          if (suffixPos > 0 && suffixPos === key.length - propSuffix.length) {\n            var mainType = key.slice(0, suffixPos);\n\n            if (mainType !== 'data') {\n              cptQuery.mainType = mainType;\n              cptQuery[propSuffix.toLowerCase()] = val;\n              reserved = true;\n            }\n          }\n        }\n\n        if (dataKeys_1.hasOwnProperty(key)) {\n          dataQuery[key] = val;\n          reserved = true;\n        }\n\n        if (!reserved) {\n          otherQuery[key] = val;\n        }\n      });\n    }\n\n    return {\n      cptQuery: cptQuery,\n      dataQuery: dataQuery,\n      otherQuery: otherQuery\n    };\n  };\n\n  ECEventProcessor.prototype.filter = function (eventType, query) {\n    var eventInfo = this.eventInfo;\n\n    if (!eventInfo) {\n      return true;\n    }\n\n    var targetEl = eventInfo.targetEl;\n    var packedEvent = eventInfo.packedEvent;\n    var model = eventInfo.model;\n    var view = eventInfo.view;\n\n    if (!model || !view) {\n      return true;\n    }\n\n    var cptQuery = query.cptQuery;\n    var dataQuery = query.dataQuery;\n    return check(cptQuery, model, 'mainType') && check(cptQuery, model, 'subType') && check(cptQuery, model, 'index', 'componentIndex') && check(cptQuery, model, 'name') && check(cptQuery, model, 'id') && check(dataQuery, packedEvent, 'name') && check(dataQuery, packedEvent, 'dataIndex') && check(dataQuery, packedEvent, 'dataType') && (!view.filterForExposedEvent || view.filterForExposedEvent(eventType, query.otherQuery, targetEl, packedEvent));\n\n    function check(query, host, prop, propOnHost) {\n      return query[prop] == null || host[propOnHost || prop] === query[prop];\n    }\n  };\n\n  ECEventProcessor.prototype.afterTrigger = function () {\n    this.eventInfo = null;\n  };\n\n  return ECEventProcessor;\n}();\n\nexport { ECEventProcessor };\n;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isFunction } from 'zrender/lib/core/util';\nvar seriesSymbolTask = {\n  createOnAllSeries: true,\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    var data = seriesModel.getData();\n\n    if (seriesModel.legendSymbol) {\n      data.setVisual('legendSymbol', seriesModel.legendSymbol);\n    }\n\n    if (!seriesModel.hasSymbolVisual) {\n      return;\n    }\n\n    var symbolType = seriesModel.get('symbol');\n    var symbolSize = seriesModel.get('symbolSize');\n    var keepAspect = seriesModel.get('symbolKeepAspect');\n    var symbolRotate = seriesModel.get('symbolRotate');\n    var hasSymbolTypeCallback = isFunction(symbolType);\n    var hasSymbolSizeCallback = isFunction(symbolSize);\n    var hasSymbolRotateCallback = isFunction(symbolRotate);\n    var hasCallback = hasSymbolTypeCallback || hasSymbolSizeCallback || hasSymbolRotateCallback;\n    var seriesSymbol = !hasSymbolTypeCallback && symbolType ? symbolType : seriesModel.defaultSymbol;\n    var seriesSymbolSize = !hasSymbolSizeCallback ? symbolSize : null;\n    var seriesSymbolRotate = !hasSymbolRotateCallback ? symbolRotate : null;\n    data.setVisual({\n      legendSymbol: seriesModel.legendSymbol || seriesSymbol,\n      symbol: seriesSymbol,\n      symbolSize: seriesSymbolSize,\n      symbolKeepAspect: keepAspect,\n      symbolRotate: seriesSymbolRotate\n    });\n\n    if (ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    function dataEach(data, idx) {\n      var rawValue = seriesModel.getRawValue(idx);\n      var params = seriesModel.getDataParams(idx);\n      hasSymbolTypeCallback && data.setItemVisual(idx, 'symbol', symbolType(rawValue, params));\n      hasSymbolSizeCallback && data.setItemVisual(idx, 'symbolSize', symbolSize(rawValue, params));\n      hasSymbolRotateCallback && data.setItemVisual(idx, 'symbolRotate', symbolRotate(rawValue, params));\n    }\n\n    return {\n      dataEach: hasCallback ? dataEach : null\n    };\n  }\n};\nvar dataSymbolTask = {\n  createOnAllSeries: true,\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    if (!seriesModel.hasSymbolVisual) {\n      return;\n    }\n\n    if (ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n\n    function dataEach(data, idx) {\n      var itemModel = data.getItemModel(idx);\n      var itemSymbolType = itemModel.getShallow('symbol', true);\n      var itemSymbolSize = itemModel.getShallow('symbolSize', true);\n      var itemSymbolRotate = itemModel.getShallow('symbolRotate', true);\n      var itemSymbolKeepAspect = itemModel.getShallow('symbolKeepAspect', true);\n\n      if (itemSymbolType != null) {\n        data.setItemVisual(idx, 'symbol', itemSymbolType);\n      }\n\n      if (itemSymbolSize != null) {\n        data.setItemVisual(idx, 'symbolSize', itemSymbolSize);\n      }\n\n      if (itemSymbolRotate != null) {\n        data.setItemVisual(idx, 'symbolRotate', itemSymbolRotate);\n      }\n\n      if (itemSymbolKeepAspect != null) {\n        data.setItemVisual(idx, 'symbolKeepAspect', itemSymbolKeepAspect);\n      }\n    }\n\n    return {\n      dataEach: data.hasItemOption ? dataEach : null\n    };\n  }\n};\nexport { seriesSymbolTask, dataSymbolTask };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function getItemVisualFromData(data, dataIndex, key) {\n  switch (key) {\n    case 'color':\n      var style = data.getItemVisual(dataIndex, 'style');\n      return style[data.getVisual('drawType')];\n\n    case 'opacity':\n      return data.getItemVisual(dataIndex, 'style').opacity;\n\n    case 'symbol':\n    case 'symbolSize':\n    case 'liftZ':\n      return data.getItemVisual(dataIndex, key);\n\n    default:\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn(\"Unknown visual type \" + key);\n      }\n\n  }\n}\nexport function getVisualFromData(data, key) {\n  switch (key) {\n    case 'color':\n      var style = data.getVisual('style');\n      return style[data.getVisual('drawType')];\n\n    case 'opacity':\n      return data.getVisual('style').opacity;\n\n    case 'symbol':\n    case 'symbolSize':\n    case 'liftZ':\n      return data.getVisual(key);\n\n    default:\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn(\"Unknown visual type \" + key);\n      }\n\n  }\n}\nexport function setItemVisualFromData(data, dataIndex, key, value) {\n  switch (key) {\n    case 'color':\n      var style = data.ensureUniqueItemVisual(dataIndex, 'style');\n      style[data.getVisual('drawType')] = value;\n      data.setItemVisual(dataIndex, 'colorFromPalette', false);\n      break;\n\n    case 'opacity':\n      data.ensureUniqueItemVisual(dataIndex, 'style').opacity = value;\n      break;\n\n    case 'symbol':\n    case 'symbolSize':\n    case 'liftZ':\n      data.setItemVisual(dataIndex, key, value);\n      break;\n\n    default:\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn(\"Unknown visual type \" + key);\n      }\n\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { Point, Path, Polyline } from '../util/graphic';\nimport PathProxy from 'zrender/lib/core/PathProxy';\nimport { normalizeRadian } from 'zrender/lib/contain/util';\nimport { cubicProjectPoint, quadraticProjectPoint } from 'zrender/lib/core/curve';\nimport { defaults, retrieve2 } from 'zrender/lib/core/util';\nimport { invert } from 'zrender/lib/core/matrix';\nimport * as vector from 'zrender/lib/core/vector';\nimport { DISPLAY_STATES, SPECIAL_STATES } from '../util/states';\nvar PI2 = Math.PI * 2;\nvar CMD = PathProxy.CMD;\nvar DEFAULT_SEARCH_SPACE = ['top', 'right', 'bottom', 'left'];\n\nfunction getCandidateAnchor(pos, distance, rect, outPt, outDir) {\n  var width = rect.width;\n  var height = rect.height;\n\n  switch (pos) {\n    case 'top':\n      outPt.set(rect.x + width / 2, rect.y - distance);\n      outDir.set(0, -1);\n      break;\n\n    case 'bottom':\n      outPt.set(rect.x + width / 2, rect.y + height + distance);\n      outDir.set(0, 1);\n      break;\n\n    case 'left':\n      outPt.set(rect.x - distance, rect.y + height / 2);\n      outDir.set(-1, 0);\n      break;\n\n    case 'right':\n      outPt.set(rect.x + width + distance, rect.y + height / 2);\n      outDir.set(1, 0);\n      break;\n  }\n}\n\nfunction projectPointToArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y, out) {\n  x -= cx;\n  y -= cy;\n  var d = Math.sqrt(x * x + y * y);\n  x /= d;\n  y /= d;\n  var ox = x * r + cx;\n  var oy = y * r + cy;\n\n  if (Math.abs(startAngle - endAngle) % PI2 < 1e-4) {\n    out[0] = ox;\n    out[1] = oy;\n    return d - r;\n  }\n\n  if (anticlockwise) {\n    var tmp = startAngle;\n    startAngle = normalizeRadian(endAngle);\n    endAngle = normalizeRadian(tmp);\n  } else {\n    startAngle = normalizeRadian(startAngle);\n    endAngle = normalizeRadian(endAngle);\n  }\n\n  if (startAngle > endAngle) {\n    endAngle += PI2;\n  }\n\n  var angle = Math.atan2(y, x);\n\n  if (angle < 0) {\n    angle += PI2;\n  }\n\n  if (angle >= startAngle && angle <= endAngle || angle + PI2 >= startAngle && angle + PI2 <= endAngle) {\n    out[0] = ox;\n    out[1] = oy;\n    return d - r;\n  }\n\n  var x1 = r * Math.cos(startAngle) + cx;\n  var y1 = r * Math.sin(startAngle) + cy;\n  var x2 = r * Math.cos(endAngle) + cx;\n  var y2 = r * Math.sin(endAngle) + cy;\n  var d1 = (x1 - x) * (x1 - x) + (y1 - y) * (y1 - y);\n  var d2 = (x2 - x) * (x2 - x) + (y2 - y) * (y2 - y);\n\n  if (d1 < d2) {\n    out[0] = x1;\n    out[1] = y1;\n    return Math.sqrt(d1);\n  } else {\n    out[0] = x2;\n    out[1] = y2;\n    return Math.sqrt(d2);\n  }\n}\n\nfunction projectPointToLine(x1, y1, x2, y2, x, y, out, limitToEnds) {\n  var dx = x - x1;\n  var dy = y - y1;\n  var dx1 = x2 - x1;\n  var dy1 = y2 - y1;\n  var lineLen = Math.sqrt(dx1 * dx1 + dy1 * dy1);\n  dx1 /= lineLen;\n  dy1 /= lineLen;\n  var projectedLen = dx * dx1 + dy * dy1;\n  var t = projectedLen / lineLen;\n\n  if (limitToEnds) {\n    t = Math.min(Math.max(t, 0), 1);\n  }\n\n  t *= lineLen;\n  var ox = out[0] = x1 + t * dx1;\n  var oy = out[1] = y1 + t * dy1;\n  return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\n}\n\nfunction projectPointToRect(x1, y1, width, height, x, y, out) {\n  if (width < 0) {\n    x1 = x1 + width;\n    width = -width;\n  }\n\n  if (height < 0) {\n    y1 = y1 + height;\n    height = -height;\n  }\n\n  var x2 = x1 + width;\n  var y2 = y1 + height;\n  var ox = out[0] = Math.min(Math.max(x, x1), x2);\n  var oy = out[1] = Math.min(Math.max(y, y1), y2);\n  return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\n}\n\nvar tmpPt = [];\n\nfunction nearestPointOnRect(pt, rect, out) {\n  var dist = projectPointToRect(rect.x, rect.y, rect.width, rect.height, pt.x, pt.y, tmpPt);\n  out.set(tmpPt[0], tmpPt[1]);\n  return dist;\n}\n\nfunction nearestPointOnPath(pt, path, out) {\n  var xi = 0;\n  var yi = 0;\n  var x0 = 0;\n  var y0 = 0;\n  var x1;\n  var y1;\n  var minDist = Infinity;\n  var data = path.data;\n  var x = pt.x;\n  var y = pt.y;\n\n  for (var i = 0; i < data.length;) {\n    var cmd = data[i++];\n\n    if (i === 1) {\n      xi = data[i];\n      yi = data[i + 1];\n      x0 = xi;\n      y0 = yi;\n    }\n\n    var d = minDist;\n\n    switch (cmd) {\n      case CMD.M:\n        x0 = data[i++];\n        y0 = data[i++];\n        xi = x0;\n        yi = y0;\n        break;\n\n      case CMD.L:\n        d = projectPointToLine(xi, yi, data[i], data[i + 1], x, y, tmpPt, true);\n        xi = data[i++];\n        yi = data[i++];\n        break;\n\n      case CMD.C:\n        d = cubicProjectPoint(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\n        xi = data[i++];\n        yi = data[i++];\n        break;\n\n      case CMD.Q:\n        d = quadraticProjectPoint(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\n        xi = data[i++];\n        yi = data[i++];\n        break;\n\n      case CMD.A:\n        var cx = data[i++];\n        var cy = data[i++];\n        var rx = data[i++];\n        var ry = data[i++];\n        var theta = data[i++];\n        var dTheta = data[i++];\n        i += 1;\n        var anticlockwise = !!(1 - data[i++]);\n        x1 = Math.cos(theta) * rx + cx;\n        y1 = Math.sin(theta) * ry + cy;\n\n        if (i <= 1) {\n          x0 = x1;\n          y0 = y1;\n        }\n\n        var _x = (x - cx) * ry / rx + cx;\n\n        d = projectPointToArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y, tmpPt);\n        xi = Math.cos(theta + dTheta) * rx + cx;\n        yi = Math.sin(theta + dTheta) * ry + cy;\n        break;\n\n      case CMD.R:\n        x0 = xi = data[i++];\n        y0 = yi = data[i++];\n        var width = data[i++];\n        var height = data[i++];\n        d = projectPointToRect(x0, y0, width, height, x, y, tmpPt);\n        break;\n\n      case CMD.Z:\n        d = projectPointToLine(xi, yi, x0, y0, x, y, tmpPt, true);\n        xi = x0;\n        yi = y0;\n        break;\n    }\n\n    if (d < minDist) {\n      minDist = d;\n      out.set(tmpPt[0], tmpPt[1]);\n    }\n  }\n\n  return minDist;\n}\n\nvar pt0 = new Point();\nvar pt1 = new Point();\nvar pt2 = new Point();\nvar dir = new Point();\nvar dir2 = new Point();\nexport function updateLabelLinePoints(target, labelLineModel) {\n  if (!target) {\n    return;\n  }\n\n  var labelLine = target.getTextGuideLine();\n  var label = target.getTextContent();\n\n  if (!(label && labelLine)) {\n    return;\n  }\n\n  var labelGuideConfig = target.textGuideLineConfig || {};\n  var points = [[0, 0], [0, 0], [0, 0]];\n  var searchSpace = labelGuideConfig.candidates || DEFAULT_SEARCH_SPACE;\n  var labelRect = label.getBoundingRect().clone();\n  labelRect.applyTransform(label.getComputedTransform());\n  var minDist = Infinity;\n  var anchorPoint = labelGuideConfig.anchor;\n  var targetTransform = target.getComputedTransform();\n  var targetInversedTransform = targetTransform && invert([], targetTransform);\n  var len = labelLineModel.get('length2') || 0;\n\n  if (anchorPoint) {\n    pt2.copy(anchorPoint);\n  }\n\n  for (var i = 0; i < searchSpace.length; i++) {\n    var candidate = searchSpace[i];\n    getCandidateAnchor(candidate, 0, labelRect, pt0, dir);\n    Point.scaleAndAdd(pt1, pt0, dir, len);\n    pt1.transform(targetInversedTransform);\n    var boundingRect = target.getBoundingRect();\n    var dist = anchorPoint ? anchorPoint.distance(pt1) : target instanceof Path ? nearestPointOnPath(pt1, target.path, pt2) : nearestPointOnRect(pt1, boundingRect, pt2);\n\n    if (dist < minDist) {\n      minDist = dist;\n      pt1.transform(targetTransform);\n      pt2.transform(targetTransform);\n      pt2.toArray(points[0]);\n      pt1.toArray(points[1]);\n      pt0.toArray(points[2]);\n    }\n  }\n\n  limitTurnAngle(points, labelLineModel.get('minTurnAngle'));\n  labelLine.setShape({\n    points: points\n  });\n}\nvar tmpArr = [];\nvar tmpProjPoint = new Point();\nexport function limitTurnAngle(linePoints, minTurnAngle) {\n  if (!(minTurnAngle <= 180 && minTurnAngle > 0)) {\n    return;\n  }\n\n  minTurnAngle = minTurnAngle / 180 * Math.PI;\n  pt0.fromArray(linePoints[0]);\n  pt1.fromArray(linePoints[1]);\n  pt2.fromArray(linePoints[2]);\n  Point.sub(dir, pt0, pt1);\n  Point.sub(dir2, pt2, pt1);\n  var len1 = dir.len();\n  var len2 = dir2.len();\n\n  if (len1 < 1e-3 || len2 < 1e-3) {\n    return;\n  }\n\n  dir.scale(1 / len1);\n  dir2.scale(1 / len2);\n  var angleCos = dir.dot(dir2);\n  var minTurnAngleCos = Math.cos(minTurnAngle);\n\n  if (minTurnAngleCos < angleCos) {\n    var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\n    tmpProjPoint.fromArray(tmpArr);\n    tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI - minTurnAngle));\n    var t = pt2.x !== pt1.x ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x) : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\n\n    if (isNaN(t)) {\n      return;\n    }\n\n    if (t < 0) {\n      Point.copy(tmpProjPoint, pt1);\n    } else if (t > 1) {\n      Point.copy(tmpProjPoint, pt2);\n    }\n\n    tmpProjPoint.toArray(linePoints[1]);\n  }\n}\nexport function limitSurfaceAngle(linePoints, surfaceNormal, maxSurfaceAngle) {\n  if (!(maxSurfaceAngle <= 180 && maxSurfaceAngle > 0)) {\n    return;\n  }\n\n  maxSurfaceAngle = maxSurfaceAngle / 180 * Math.PI;\n  pt0.fromArray(linePoints[0]);\n  pt1.fromArray(linePoints[1]);\n  pt2.fromArray(linePoints[2]);\n  Point.sub(dir, pt1, pt0);\n  Point.sub(dir2, pt2, pt1);\n  var len1 = dir.len();\n  var len2 = dir2.len();\n\n  if (len1 < 1e-3 || len2 < 1e-3) {\n    return;\n  }\n\n  dir.scale(1 / len1);\n  dir2.scale(1 / len2);\n  var angleCos = dir.dot(surfaceNormal);\n  var maxSurfaceAngleCos = Math.cos(maxSurfaceAngle);\n\n  if (angleCos < maxSurfaceAngleCos) {\n    var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\n    tmpProjPoint.fromArray(tmpArr);\n    var HALF_PI = Math.PI / 2;\n    var angle2 = Math.acos(dir2.dot(surfaceNormal));\n    var newAngle = HALF_PI + angle2 - maxSurfaceAngle;\n\n    if (newAngle >= HALF_PI) {\n      Point.copy(tmpProjPoint, pt2);\n    } else {\n      tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI / 2 - newAngle));\n      var t = pt2.x !== pt1.x ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x) : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\n\n      if (isNaN(t)) {\n        return;\n      }\n\n      if (t < 0) {\n        Point.copy(tmpProjPoint, pt1);\n      } else if (t > 1) {\n        Point.copy(tmpProjPoint, pt2);\n      }\n    }\n\n    tmpProjPoint.toArray(linePoints[1]);\n  }\n}\n\nfunction setLabelLineState(labelLine, ignore, stateName, stateModel) {\n  var isNormal = stateName === 'normal';\n  var stateObj = isNormal ? labelLine : labelLine.ensureState(stateName);\n  stateObj.ignore = ignore;\n  var smooth = stateModel.get('smooth');\n\n  if (smooth && smooth === true) {\n    smooth = 0.3;\n  }\n\n  stateObj.shape = stateObj.shape || {};\n\n  if (smooth > 0) {\n    stateObj.shape.smooth = smooth;\n  }\n\n  var styleObj = stateModel.getModel('lineStyle').getLineStyle();\n  isNormal ? labelLine.useStyle(styleObj) : stateObj.style = styleObj;\n}\n\nfunction buildLabelLinePath(path, shape) {\n  var smooth = shape.smooth;\n  var points = shape.points;\n\n  if (!points) {\n    return;\n  }\n\n  path.moveTo(points[0][0], points[0][1]);\n\n  if (smooth > 0 && points.length >= 3) {\n    var len1 = vector.dist(points[0], points[1]);\n    var len2 = vector.dist(points[1], points[2]);\n\n    if (!len1 || !len2) {\n      path.lineTo(points[1][0], points[1][1]);\n      path.lineTo(points[2][0], points[2][1]);\n      return;\n    }\n\n    var moveLen = Math.min(len1, len2) * smooth;\n    var midPoint0 = vector.lerp([], points[1], points[0], moveLen / len1);\n    var midPoint2 = vector.lerp([], points[1], points[2], moveLen / len2);\n    var midPoint1 = vector.lerp([], midPoint0, midPoint2, 0.5);\n    path.bezierCurveTo(midPoint0[0], midPoint0[1], midPoint0[0], midPoint0[1], midPoint1[0], midPoint1[1]);\n    path.bezierCurveTo(midPoint2[0], midPoint2[1], midPoint2[0], midPoint2[1], points[2][0], points[2][1]);\n  } else {\n    for (var i = 1; i < points.length; i++) {\n      path.lineTo(points[i][0], points[i][1]);\n    }\n  }\n}\n\nexport function setLabelLineStyle(targetEl, statesModels, defaultStyle) {\n  var labelLine = targetEl.getTextGuideLine();\n  var label = targetEl.getTextContent();\n\n  if (!label) {\n    if (labelLine) {\n      targetEl.removeTextGuideLine();\n    }\n\n    return;\n  }\n\n  var normalModel = statesModels.normal;\n  var showNormal = normalModel.get('show');\n  var labelIgnoreNormal = label.ignore;\n\n  for (var i = 0; i < DISPLAY_STATES.length; i++) {\n    var stateName = DISPLAY_STATES[i];\n    var stateModel = statesModels[stateName];\n    var isNormal = stateName === 'normal';\n\n    if (stateModel) {\n      var stateShow = stateModel.get('show');\n      var isLabelIgnored = isNormal ? labelIgnoreNormal : retrieve2(label.states[stateName] && label.states[stateName].ignore, labelIgnoreNormal);\n\n      if (isLabelIgnored || !retrieve2(stateShow, showNormal)) {\n        var stateObj = isNormal ? labelLine : labelLine && labelLine.states.normal;\n\n        if (stateObj) {\n          stateObj.ignore = true;\n        }\n\n        continue;\n      }\n\n      if (!labelLine) {\n        labelLine = new Polyline();\n        targetEl.setTextGuideLine(labelLine);\n\n        if (!isNormal && (labelIgnoreNormal || !showNormal)) {\n          setLabelLineState(labelLine, true, 'normal', statesModels.normal);\n        }\n\n        if (targetEl.stateProxy) {\n          labelLine.stateProxy = targetEl.stateProxy;\n        }\n      }\n\n      setLabelLineState(labelLine, false, stateName, stateModel);\n    }\n  }\n\n  if (labelLine) {\n    defaults(labelLine.style, defaultStyle);\n    labelLine.style.fill = null;\n    var showAbove = normalModel.get('showAbove');\n    var labelLineConfig = targetEl.textGuideLineConfig = targetEl.textGuideLineConfig || {};\n    labelLineConfig.showAbove = showAbove || false;\n    labelLine.buildPath = buildLabelLinePath;\n  }\n}\nexport function getLabelLineStatesModels(itemModel, labelLineName) {\n  labelLineName = labelLineName || 'labelLine';\n  var statesModels = {\n    normal: itemModel.getModel(labelLineName)\n  };\n\n  for (var i = 0; i < SPECIAL_STATES.length; i++) {\n    var stateName = SPECIAL_STATES[i];\n    statesModels[stateName] = itemModel.getModel([stateName, labelLineName]);\n  }\n\n  return statesModels;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { BoundingRect, OrientedBoundingRect } from '../util/graphic';\nexport function prepareLayoutList(input) {\n  var list = [];\n\n  for (var i = 0; i < input.length; i++) {\n    var rawItem = input[i];\n\n    if (rawItem.defaultAttr.ignore) {\n      continue;\n    }\n\n    var label = rawItem.label;\n    var transform = label.getComputedTransform();\n    var localRect = label.getBoundingRect();\n    var isAxisAligned = !transform || transform[1] < 1e-5 && transform[2] < 1e-5;\n    var minMargin = label.style.margin || 0;\n    var globalRect = localRect.clone();\n    globalRect.applyTransform(transform);\n    globalRect.x -= minMargin / 2;\n    globalRect.y -= minMargin / 2;\n    globalRect.width += minMargin;\n    globalRect.height += minMargin;\n    var obb = isAxisAligned ? new OrientedBoundingRect(localRect, transform) : null;\n    list.push({\n      label: label,\n      labelLine: rawItem.labelLine,\n      rect: globalRect,\n      localRect: localRect,\n      obb: obb,\n      priority: rawItem.priority,\n      defaultAttr: rawItem.defaultAttr,\n      layoutOption: rawItem.computedLayoutOption,\n      axisAligned: isAxisAligned,\n      transform: transform\n    });\n  }\n\n  return list;\n}\n\nfunction shiftLayout(list, xyDim, sizeDim, minBound, maxBound, balanceShift) {\n  var len = list.length;\n\n  if (len < 2) {\n    return;\n  }\n\n  list.sort(function (a, b) {\n    return a.rect[xyDim] - b.rect[xyDim];\n  });\n  var lastPos = 0;\n  var delta;\n  var adjusted = false;\n  var shifts = [];\n  var totalShifts = 0;\n\n  for (var i = 0; i < len; i++) {\n    var item = list[i];\n    var rect = item.rect;\n    delta = rect[xyDim] - lastPos;\n\n    if (delta < 0) {\n      rect[xyDim] -= delta;\n      item.label[xyDim] -= delta;\n      adjusted = true;\n    }\n\n    var shift = Math.max(-delta, 0);\n    shifts.push(shift);\n    totalShifts += shift;\n    lastPos = rect[xyDim] + rect[sizeDim];\n  }\n\n  if (totalShifts > 0 && balanceShift) {\n    shiftList(-totalShifts / len, 0, len);\n  }\n\n  var first = list[0];\n  var last = list[len - 1];\n  var minGap;\n  var maxGap;\n  updateMinMaxGap();\n  minGap < 0 && squeezeGaps(-minGap, 0.8);\n  maxGap < 0 && squeezeGaps(maxGap, 0.8);\n  updateMinMaxGap();\n  takeBoundsGap(minGap, maxGap, 1);\n  takeBoundsGap(maxGap, minGap, -1);\n  updateMinMaxGap();\n\n  if (minGap < 0) {\n    squeezeWhenBailout(-minGap);\n  }\n\n  if (maxGap < 0) {\n    squeezeWhenBailout(maxGap);\n  }\n\n  function updateMinMaxGap() {\n    minGap = first.rect[xyDim] - minBound;\n    maxGap = maxBound - last.rect[xyDim] - last.rect[sizeDim];\n  }\n\n  function takeBoundsGap(gapThisBound, gapOtherBound, moveDir) {\n    if (gapThisBound < 0) {\n      var moveFromMaxGap = Math.min(gapOtherBound, -gapThisBound);\n\n      if (moveFromMaxGap > 0) {\n        shiftList(moveFromMaxGap * moveDir, 0, len);\n        var remained = moveFromMaxGap + gapThisBound;\n\n        if (remained < 0) {\n          squeezeGaps(-remained * moveDir, 1);\n        }\n      } else {\n        squeezeGaps(-gapThisBound * moveDir, 1);\n      }\n    }\n  }\n\n  function shiftList(delta, start, end) {\n    if (delta !== 0) {\n      adjusted = true;\n    }\n\n    for (var i = start; i < end; i++) {\n      var item = list[i];\n      var rect = item.rect;\n      rect[xyDim] += delta;\n      item.label[xyDim] += delta;\n    }\n  }\n\n  function squeezeGaps(delta, maxSqeezePercent) {\n    var gaps = [];\n    var totalGaps = 0;\n\n    for (var i = 1; i < len; i++) {\n      var prevItemRect = list[i - 1].rect;\n      var gap = Math.max(list[i].rect[xyDim] - prevItemRect[xyDim] - prevItemRect[sizeDim], 0);\n      gaps.push(gap);\n      totalGaps += gap;\n    }\n\n    if (!totalGaps) {\n      return;\n    }\n\n    var squeezePercent = Math.min(Math.abs(delta) / totalGaps, maxSqeezePercent);\n\n    if (delta > 0) {\n      for (var i = 0; i < len - 1; i++) {\n        var movement = gaps[i] * squeezePercent;\n        shiftList(movement, 0, i + 1);\n      }\n    } else {\n      for (var i = len - 1; i > 0; i--) {\n        var movement = gaps[i - 1] * squeezePercent;\n        shiftList(-movement, i, len);\n      }\n    }\n  }\n\n  function squeezeWhenBailout(delta) {\n    var dir = delta < 0 ? -1 : 1;\n    delta = Math.abs(delta);\n    var moveForEachLabel = Math.ceil(delta / (len - 1));\n\n    for (var i = 0; i < len - 1; i++) {\n      if (dir > 0) {\n        shiftList(moveForEachLabel, 0, i + 1);\n      } else {\n        shiftList(-moveForEachLabel, len - i - 1, len);\n      }\n\n      delta -= moveForEachLabel;\n\n      if (delta <= 0) {\n        return;\n      }\n    }\n  }\n\n  return adjusted;\n}\n\nexport function shiftLayoutOnX(list, leftBound, rightBound, balanceShift) {\n  return shiftLayout(list, 'x', 'width', leftBound, rightBound, balanceShift);\n}\nexport function shiftLayoutOnY(list, topBound, bottomBound, balanceShift) {\n  return shiftLayout(list, 'y', 'height', topBound, bottomBound, balanceShift);\n}\nexport function hideOverlap(labelList) {\n  var displayedLabels = [];\n  labelList.sort(function (a, b) {\n    return b.priority - a.priority;\n  });\n  var globalRect = new BoundingRect(0, 0, 0, 0);\n\n  function hideEl(el) {\n    if (!el.ignore) {\n      var emphasisState = el.ensureState('emphasis');\n\n      if (emphasisState.ignore == null) {\n        emphasisState.ignore = false;\n      }\n    }\n\n    el.ignore = true;\n  }\n\n  for (var i = 0; i < labelList.length; i++) {\n    var labelItem = labelList[i];\n    var isAxisAligned = labelItem.axisAligned;\n    var localRect = labelItem.localRect;\n    var transform = labelItem.transform;\n    var label = labelItem.label;\n    var labelLine = labelItem.labelLine;\n    globalRect.copy(labelItem.rect);\n    globalRect.width -= 0.1;\n    globalRect.height -= 0.1;\n    globalRect.x += 0.05;\n    globalRect.y += 0.05;\n    var obb = labelItem.obb;\n    var overlapped = false;\n\n    for (var j = 0; j < displayedLabels.length; j++) {\n      var existsTextCfg = displayedLabels[j];\n\n      if (!globalRect.intersect(existsTextCfg.rect)) {\n        continue;\n      }\n\n      if (isAxisAligned && existsTextCfg.axisAligned) {\n        overlapped = true;\n        break;\n      }\n\n      if (!existsTextCfg.obb) {\n        existsTextCfg.obb = new OrientedBoundingRect(existsTextCfg.localRect, existsTextCfg.transform);\n      }\n\n      if (!obb) {\n        obb = new OrientedBoundingRect(localRect, transform);\n      }\n\n      if (obb.intersect(existsTextCfg.obb)) {\n        overlapped = true;\n        break;\n      }\n    }\n\n    if (overlapped) {\n      hideEl(label);\n      labelLine && hideEl(labelLine);\n    } else {\n      label.attr('ignore', labelItem.defaultAttr.ignore);\n      labelLine && labelLine.attr('ignore', labelItem.defaultAttr.labelGuideIgnore);\n      displayedLabels.push(labelItem);\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { BoundingRect, updateProps, initProps, isElementRemoved } from '../util/graphic';\nimport { getECData } from '../util/innerStore';\nimport { parsePercent } from '../util/number';\nimport Transformable from 'zrender/lib/core/Transformable';\nimport { updateLabelLinePoints, setLabelLineStyle, getLabelLineStatesModels } from './labelGuideHelper';\nimport { makeInner } from '../util/model';\nimport { retrieve2, each, keys, isFunction, filter, indexOf } from 'zrender/lib/core/util';\nimport { prepareLayoutList, hideOverlap, shiftLayoutOnX, shiftLayoutOnY } from './labelLayoutHelper';\nimport { labelInner, animateLabelValue } from './labelStyle';\n\nfunction cloneArr(points) {\n  if (points) {\n    var newPoints = [];\n\n    for (var i = 0; i < points.length; i++) {\n      newPoints.push(points[i].slice());\n    }\n\n    return newPoints;\n  }\n}\n\nfunction prepareLayoutCallbackParams(labelItem, hostEl) {\n  var label = labelItem.label;\n  var labelLine = hostEl && hostEl.getTextGuideLine();\n  return {\n    dataIndex: labelItem.dataIndex,\n    dataType: labelItem.dataType,\n    seriesIndex: labelItem.seriesModel.seriesIndex,\n    text: labelItem.label.style.text,\n    rect: labelItem.hostRect,\n    labelRect: labelItem.rect,\n    align: label.style.align,\n    verticalAlign: label.style.verticalAlign,\n    labelLinePoints: cloneArr(labelLine && labelLine.shape.points)\n  };\n}\n\nvar LABEL_OPTION_TO_STYLE_KEYS = ['align', 'verticalAlign', 'width', 'height', 'fontSize'];\nvar dummyTransformable = new Transformable();\nvar labelLayoutInnerStore = makeInner();\nvar labelLineAnimationStore = makeInner();\n\nfunction extendWithKeys(target, source, keys) {\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n\n    if (source[key] != null) {\n      target[key] = source[key];\n    }\n  }\n}\n\nvar LABEL_LAYOUT_PROPS = ['x', 'y', 'rotation'];\n\nvar LabelManager = function () {\n  function LabelManager() {\n    this._labelList = [];\n    this._chartViewList = [];\n  }\n\n  LabelManager.prototype.clearLabels = function () {\n    this._labelList = [];\n    this._chartViewList = [];\n  };\n\n  LabelManager.prototype._addLabel = function (dataIndex, dataType, seriesModel, label, layoutOption) {\n    var labelStyle = label.style;\n    var hostEl = label.__hostTarget;\n    var textConfig = hostEl.textConfig || {};\n    var labelTransform = label.getComputedTransform();\n    var labelRect = label.getBoundingRect().plain();\n    BoundingRect.applyTransform(labelRect, labelRect, labelTransform);\n\n    if (labelTransform) {\n      dummyTransformable.setLocalTransform(labelTransform);\n    } else {\n      dummyTransformable.x = dummyTransformable.y = dummyTransformable.rotation = dummyTransformable.originX = dummyTransformable.originY = 0;\n      dummyTransformable.scaleX = dummyTransformable.scaleY = 1;\n    }\n\n    var host = label.__hostTarget;\n    var hostRect;\n\n    if (host) {\n      hostRect = host.getBoundingRect().plain();\n      var transform = host.getComputedTransform();\n      BoundingRect.applyTransform(hostRect, hostRect, transform);\n    }\n\n    var labelGuide = hostRect && host.getTextGuideLine();\n\n    this._labelList.push({\n      label: label,\n      labelLine: labelGuide,\n      seriesModel: seriesModel,\n      dataIndex: dataIndex,\n      dataType: dataType,\n      layoutOption: layoutOption,\n      computedLayoutOption: null,\n      rect: labelRect,\n      hostRect: hostRect,\n      priority: hostRect ? hostRect.width * hostRect.height : 0,\n      defaultAttr: {\n        ignore: label.ignore,\n        labelGuideIgnore: labelGuide && labelGuide.ignore,\n        x: dummyTransformable.x,\n        y: dummyTransformable.y,\n        rotation: dummyTransformable.rotation,\n        style: {\n          x: labelStyle.x,\n          y: labelStyle.y,\n          align: labelStyle.align,\n          verticalAlign: labelStyle.verticalAlign,\n          width: labelStyle.width,\n          height: labelStyle.height,\n          fontSize: labelStyle.fontSize\n        },\n        cursor: label.cursor,\n        attachedPos: textConfig.position,\n        attachedRot: textConfig.rotation\n      }\n    });\n  };\n\n  LabelManager.prototype.addLabelsOfSeries = function (chartView) {\n    var _this = this;\n\n    this._chartViewList.push(chartView);\n\n    var seriesModel = chartView.__model;\n    var layoutOption = seriesModel.get('labelLayout');\n\n    if (!(isFunction(layoutOption) || keys(layoutOption).length)) {\n      return;\n    }\n\n    chartView.group.traverse(function (child) {\n      if (child.ignore) {\n        return true;\n      }\n\n      var textEl = child.getTextContent();\n      var ecData = getECData(child);\n\n      if (textEl && !textEl.disableLabelLayout) {\n        _this._addLabel(ecData.dataIndex, ecData.dataType, seriesModel, textEl, layoutOption);\n      }\n    });\n  };\n\n  LabelManager.prototype.updateLayoutConfig = function (api) {\n    var width = api.getWidth();\n    var height = api.getHeight();\n\n    function createDragHandler(el, labelLineModel) {\n      return function () {\n        updateLabelLinePoints(el, labelLineModel);\n      };\n    }\n\n    for (var i = 0; i < this._labelList.length; i++) {\n      var labelItem = this._labelList[i];\n      var label = labelItem.label;\n      var hostEl = label.__hostTarget;\n      var defaultLabelAttr = labelItem.defaultAttr;\n      var layoutOption = void 0;\n\n      if (typeof labelItem.layoutOption === 'function') {\n        layoutOption = labelItem.layoutOption(prepareLayoutCallbackParams(labelItem, hostEl));\n      } else {\n        layoutOption = labelItem.layoutOption;\n      }\n\n      layoutOption = layoutOption || {};\n      labelItem.computedLayoutOption = layoutOption;\n      var degreeToRadian = Math.PI / 180;\n\n      if (hostEl) {\n        hostEl.setTextConfig({\n          local: false,\n          position: layoutOption.x != null || layoutOption.y != null ? null : defaultLabelAttr.attachedPos,\n          rotation: layoutOption.rotate != null ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.attachedRot,\n          offset: [layoutOption.dx || 0, layoutOption.dy || 0]\n        });\n      }\n\n      var needsUpdateLabelLine = false;\n\n      if (layoutOption.x != null) {\n        label.x = parsePercent(layoutOption.x, width);\n        label.setStyle('x', 0);\n        needsUpdateLabelLine = true;\n      } else {\n        label.x = defaultLabelAttr.x;\n        label.setStyle('x', defaultLabelAttr.style.x);\n      }\n\n      if (layoutOption.y != null) {\n        label.y = parsePercent(layoutOption.y, height);\n        label.setStyle('y', 0);\n        needsUpdateLabelLine = true;\n      } else {\n        label.y = defaultLabelAttr.y;\n        label.setStyle('y', defaultLabelAttr.style.y);\n      }\n\n      if (layoutOption.labelLinePoints) {\n        var guideLine = hostEl.getTextGuideLine();\n\n        if (guideLine) {\n          guideLine.setShape({\n            points: layoutOption.labelLinePoints\n          });\n          needsUpdateLabelLine = false;\n        }\n      }\n\n      var labelLayoutStore = labelLayoutInnerStore(label);\n      labelLayoutStore.needsUpdateLabelLine = needsUpdateLabelLine;\n      label.rotation = layoutOption.rotate != null ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.rotation;\n\n      for (var k = 0; k < LABEL_OPTION_TO_STYLE_KEYS.length; k++) {\n        var key = LABEL_OPTION_TO_STYLE_KEYS[k];\n        label.setStyle(key, layoutOption[key] != null ? layoutOption[key] : defaultLabelAttr.style[key]);\n      }\n\n      if (layoutOption.draggable) {\n        label.draggable = true;\n        label.cursor = 'move';\n\n        if (hostEl) {\n          var hostModel = labelItem.seriesModel;\n\n          if (labelItem.dataIndex != null) {\n            var data = labelItem.seriesModel.getData(labelItem.dataType);\n            hostModel = data.getItemModel(labelItem.dataIndex);\n          }\n\n          label.on('drag', createDragHandler(hostEl, hostModel.getModel('labelLine')));\n        }\n      } else {\n        label.off('drag');\n        label.cursor = defaultLabelAttr.cursor;\n      }\n    }\n  };\n\n  LabelManager.prototype.layout = function (api) {\n    var width = api.getWidth();\n    var height = api.getHeight();\n    var labelList = prepareLayoutList(this._labelList);\n    var labelsNeedsAdjustOnX = filter(labelList, function (item) {\n      return item.layoutOption.moveOverlap === 'shiftX';\n    });\n    var labelsNeedsAdjustOnY = filter(labelList, function (item) {\n      return item.layoutOption.moveOverlap === 'shiftY';\n    });\n    shiftLayoutOnX(labelsNeedsAdjustOnX, 0, width);\n    shiftLayoutOnY(labelsNeedsAdjustOnY, 0, height);\n    var labelsNeedsHideOverlap = filter(labelList, function (item) {\n      return item.layoutOption.hideOverlap;\n    });\n    hideOverlap(labelsNeedsHideOverlap);\n  };\n\n  LabelManager.prototype.processLabelsOverall = function () {\n    var _this = this;\n\n    each(this._chartViewList, function (chartView) {\n      var seriesModel = chartView.__model;\n      var ignoreLabelLineUpdate = chartView.ignoreLabelLineUpdate;\n      var animationEnabled = seriesModel.isAnimationEnabled();\n      chartView.group.traverse(function (child) {\n        if (child.ignore) {\n          return true;\n        }\n\n        var needsUpdateLabelLine = !ignoreLabelLineUpdate;\n        var label = child.getTextContent();\n\n        if (!needsUpdateLabelLine && label) {\n          needsUpdateLabelLine = labelLayoutInnerStore(label).needsUpdateLabelLine;\n        }\n\n        if (needsUpdateLabelLine) {\n          _this._updateLabelLine(child, seriesModel);\n        }\n\n        if (animationEnabled) {\n          _this._animateLabels(child, seriesModel);\n        }\n      });\n    });\n  };\n\n  LabelManager.prototype._updateLabelLine = function (el, seriesModel) {\n    var textEl = el.getTextContent();\n    var ecData = getECData(el);\n    var dataIndex = ecData.dataIndex;\n\n    if (textEl && dataIndex != null) {\n      var data = seriesModel.getData(ecData.dataType);\n      var itemModel = data.getItemModel(dataIndex);\n      var defaultStyle = {};\n      var visualStyle = data.getItemVisual(dataIndex, 'style');\n      var visualType = data.getVisual('drawType');\n      defaultStyle.stroke = visualStyle[visualType];\n      var labelLineModel = itemModel.getModel('labelLine');\n      setLabelLineStyle(el, getLabelLineStatesModels(itemModel), defaultStyle);\n      updateLabelLinePoints(el, labelLineModel);\n    }\n  };\n\n  LabelManager.prototype._animateLabels = function (el, seriesModel) {\n    var textEl = el.getTextContent();\n    var guideLine = el.getTextGuideLine();\n\n    if (textEl && !textEl.ignore && !textEl.invisible && !el.disableLabelAnimation && !isElementRemoved(el)) {\n      var layoutStore = labelLayoutInnerStore(textEl);\n      var oldLayout = layoutStore.oldLayout;\n      var ecData = getECData(el);\n      var dataIndex = ecData.dataIndex;\n      var newProps = {\n        x: textEl.x,\n        y: textEl.y,\n        rotation: textEl.rotation\n      };\n      var data = seriesModel.getData(ecData.dataType);\n\n      if (!oldLayout) {\n        textEl.attr(newProps);\n\n        if (!labelInner(textEl).valueAnimation) {\n          var oldOpacity = retrieve2(textEl.style.opacity, 1);\n          textEl.style.opacity = 0;\n          initProps(textEl, {\n            style: {\n              opacity: oldOpacity\n            }\n          }, seriesModel, dataIndex);\n        }\n      } else {\n        textEl.attr(oldLayout);\n        var prevStates = el.prevStates;\n\n        if (prevStates) {\n          if (indexOf(prevStates, 'select') >= 0) {\n            textEl.attr(layoutStore.oldLayoutSelect);\n          }\n\n          if (indexOf(prevStates, 'emphasis') >= 0) {\n            textEl.attr(layoutStore.oldLayoutEmphasis);\n          }\n        }\n\n        updateProps(textEl, newProps, seriesModel, dataIndex);\n      }\n\n      layoutStore.oldLayout = newProps;\n\n      if (textEl.states.select) {\n        var layoutSelect = layoutStore.oldLayoutSelect = {};\n        extendWithKeys(layoutSelect, newProps, LABEL_LAYOUT_PROPS);\n        extendWithKeys(layoutSelect, textEl.states.select, LABEL_LAYOUT_PROPS);\n      }\n\n      if (textEl.states.emphasis) {\n        var layoutEmphasis = layoutStore.oldLayoutEmphasis = {};\n        extendWithKeys(layoutEmphasis, newProps, LABEL_LAYOUT_PROPS);\n        extendWithKeys(layoutEmphasis, textEl.states.emphasis, LABEL_LAYOUT_PROPS);\n      }\n\n      animateLabelValue(textEl, dataIndex, data, seriesModel, seriesModel);\n    }\n\n    if (guideLine && !guideLine.ignore && !guideLine.invisible) {\n      var layoutStore = labelLineAnimationStore(guideLine);\n      var oldLayout = layoutStore.oldLayout;\n      var newLayout = {\n        points: guideLine.shape.points\n      };\n\n      if (!oldLayout) {\n        guideLine.setShape(newLayout);\n        guideLine.style.strokePercent = 0;\n        initProps(guideLine, {\n          style: {\n            strokePercent: 1\n          }\n        }, seriesModel);\n      } else {\n        guideLine.attr({\n          shape: oldLayout\n        });\n        updateProps(guideLine, {\n          shape: newLayout\n        }, seriesModel);\n      }\n\n      layoutStore.oldLayout = newLayout;\n    }\n  };\n\n  return LabelManager;\n}();\n\nexport default LabelManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { extend, each, isArray } from 'zrender/lib/core/util';\nimport { deprecateReplaceLog, deprecateLog } from '../util/log';\nimport { queryDataIndex } from '../util/model';\nexport function createLegacyDataSelectAction(seriesType, ecRegisterAction) {\n  function getSeriesIndices(ecModel, payload) {\n    var seriesIndices = [];\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: seriesType,\n      query: payload\n    }, function (seriesModel) {\n      seriesIndices.push(seriesModel.seriesIndex);\n    });\n    return seriesIndices;\n  }\n\n  each([[seriesType + 'ToggleSelect', 'toggleSelect'], [seriesType + 'Select', 'select'], [seriesType + 'UnSelect', 'unselect']], function (eventsMap) {\n    ecRegisterAction(eventsMap[0], function (payload, ecModel, api) {\n      payload = extend({}, payload);\n\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateReplaceLog(payload.type, eventsMap[1]);\n      }\n\n      api.dispatchAction(extend(payload, {\n        type: eventsMap[1],\n        seriesIndex: getSeriesIndices(ecModel, payload)\n      }));\n    });\n  });\n}\n\nfunction handleSeriesLegacySelectEvents(type, eventPostfix, ecIns, ecModel, payload) {\n  var legacyEventName = type + eventPostfix;\n\n  if (!ecIns.isSilent(legacyEventName)) {\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateLog(\"event \" + legacyEventName + \" is deprecated.\");\n    }\n\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'pie'\n    }, function (seriesModel) {\n      var seriesIndex = seriesModel.seriesIndex;\n      var selected = payload.selected;\n\n      for (var i = 0; i < selected.length; i++) {\n        if (selected[i].seriesIndex === seriesIndex) {\n          var data = seriesModel.getData();\n          var dataIndex = queryDataIndex(data, payload.fromActionPayload);\n          ecIns.trigger(legacyEventName, {\n            type: legacyEventName,\n            seriesId: seriesModel.id,\n            name: isArray(dataIndex) ? data.getName(dataIndex[0]) : data.getName(dataIndex),\n            selected: extend({}, seriesModel.option.selectedMap)\n          });\n        }\n      }\n    });\n  }\n}\n\nexport function handleLegacySelectEvents(messageCenter, ecIns, api) {\n  messageCenter.on('selectchanged', function (params) {\n    var ecModel = api.getModel();\n\n    if (params.isFromClick) {\n      handleSeriesLegacySelectEvents('map', 'selectchanged', ecIns, ecModel, params);\n      handleSeriesLegacySelectEvents('pie', 'selectchanged', ecIns, ecModel, params);\n    } else if (params.fromAction === 'select') {\n      handleSeriesLegacySelectEvents('map', 'selected', ecIns, ecModel, params);\n      handleSeriesLegacySelectEvents('pie', 'selected', ecIns, ecModel, params);\n    } else if (params.fromAction === 'unselect') {\n      handleSeriesLegacySelectEvents('map', 'unselected', ecIns, ecModel, params);\n      handleSeriesLegacySelectEvents('pie', 'unselected', ecIns, ecModel, params);\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function findEventDispatcher(target, det, returnFirstMatch) {\n  var found;\n\n  while (target) {\n    if (det(target)) {\n      found = target;\n\n      if (returnFirstMatch) {\n        break;\n      }\n    }\n\n    target = target.__hostTarget || target.parent;\n  }\n\n  return found;\n}","var wmUniqueIndex = Math.round(Math.random() * 9);\nvar WeakMap = (function () {\n    function WeakMap() {\n        this._id = '__ec_inner_' + wmUniqueIndex++;\n    }\n    WeakMap.prototype.get = function (key) {\n        return this._guard(key)[this._id];\n    };\n    WeakMap.prototype.set = function (key, value) {\n        var target = this._guard(key);\n        if (typeof Object.defineProperty === 'function') {\n            Object.defineProperty(target, this._id, {\n                value: value,\n                enumerable: false,\n                configurable: true\n            });\n        }\n        else {\n            target[this._id] = value;\n        }\n        return this;\n    };\n    WeakMap.prototype[\"delete\"] = function (key) {\n        if (this.has(key)) {\n            delete this._guard(key)[this._id];\n            return true;\n        }\n        return false;\n    };\n    WeakMap.prototype.has = function (key) {\n        return !!this._guard(key)[this._id];\n    };\n    WeakMap.prototype._guard = function (key) {\n        if (key !== Object(key)) {\n            throw TypeError('Value of WeakMap is not a non-null object.');\n        }\n        return key;\n    };\n    return WeakMap;\n}());\nexport default WeakMap;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from './graphic';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { calculateTextPosition } from 'zrender/lib/contain/text';\nvar Triangle = graphic.Path.extend({\n  type: 'triangle',\n  shape: {\n    cx: 0,\n    cy: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (path, shape) {\n    var cx = shape.cx;\n    var cy = shape.cy;\n    var width = shape.width / 2;\n    var height = shape.height / 2;\n    path.moveTo(cx, cy - height);\n    path.lineTo(cx + width, cy + height);\n    path.lineTo(cx - width, cy + height);\n    path.closePath();\n  }\n});\nvar Diamond = graphic.Path.extend({\n  type: 'diamond',\n  shape: {\n    cx: 0,\n    cy: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (path, shape) {\n    var cx = shape.cx;\n    var cy = shape.cy;\n    var width = shape.width / 2;\n    var height = shape.height / 2;\n    path.moveTo(cx, cy - height);\n    path.lineTo(cx + width, cy);\n    path.lineTo(cx, cy + height);\n    path.lineTo(cx - width, cy);\n    path.closePath();\n  }\n});\nvar Pin = graphic.Path.extend({\n  type: 'pin',\n  shape: {\n    x: 0,\n    y: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (path, shape) {\n    var x = shape.x;\n    var y = shape.y;\n    var w = shape.width / 5 * 3;\n    var h = Math.max(w, shape.height);\n    var r = w / 2;\n    var dy = r * r / (h - r);\n    var cy = y - h + r + dy;\n    var angle = Math.asin(dy / r);\n    var dx = Math.cos(angle) * r;\n    var tanX = Math.sin(angle);\n    var tanY = Math.cos(angle);\n    var cpLen = r * 0.6;\n    var cpLen2 = r * 0.7;\n    path.moveTo(x - dx, cy + dy);\n    path.arc(x, cy, r, Math.PI - angle, Math.PI * 2 + angle);\n    path.bezierCurveTo(x + dx - tanX * cpLen, cy + dy + tanY * cpLen, x, y - cpLen2, x, y);\n    path.bezierCurveTo(x, y - cpLen2, x - dx + tanX * cpLen, cy + dy + tanY * cpLen, x - dx, cy + dy);\n    path.closePath();\n  }\n});\nvar Arrow = graphic.Path.extend({\n  type: 'arrow',\n  shape: {\n    x: 0,\n    y: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (ctx, shape) {\n    var height = shape.height;\n    var width = shape.width;\n    var x = shape.x;\n    var y = shape.y;\n    var dx = width / 3 * 2;\n    ctx.moveTo(x, y);\n    ctx.lineTo(x + dx, y + height);\n    ctx.lineTo(x, y + height / 4 * 3);\n    ctx.lineTo(x - dx, y + height);\n    ctx.lineTo(x, y);\n    ctx.closePath();\n  }\n});\nvar symbolCtors = {\n  line: graphic.Rect,\n  rect: graphic.Rect,\n  roundRect: graphic.Rect,\n  square: graphic.Rect,\n  circle: graphic.Circle,\n  diamond: Diamond,\n  pin: Pin,\n  arrow: Arrow,\n  triangle: Triangle\n};\nvar symbolShapeMakers = {\n  line: function (x, y, w, h, shape) {\n    var thickness = 2;\n    shape.x = x;\n    shape.y = y + h / 2 - thickness / 2;\n    shape.width = w;\n    shape.height = thickness;\n  },\n  rect: function (x, y, w, h, shape) {\n    shape.x = x;\n    shape.y = y;\n    shape.width = w;\n    shape.height = h;\n  },\n  roundRect: function (x, y, w, h, shape) {\n    shape.x = x;\n    shape.y = y;\n    shape.width = w;\n    shape.height = h;\n    shape.r = Math.min(w, h) / 4;\n  },\n  square: function (x, y, w, h, shape) {\n    var size = Math.min(w, h);\n    shape.x = x;\n    shape.y = y;\n    shape.width = size;\n    shape.height = size;\n  },\n  circle: function (x, y, w, h, shape) {\n    shape.cx = x + w / 2;\n    shape.cy = y + h / 2;\n    shape.r = Math.min(w, h) / 2;\n  },\n  diamond: function (x, y, w, h, shape) {\n    shape.cx = x + w / 2;\n    shape.cy = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  },\n  pin: function (x, y, w, h, shape) {\n    shape.x = x + w / 2;\n    shape.y = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  },\n  arrow: function (x, y, w, h, shape) {\n    shape.x = x + w / 2;\n    shape.y = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  },\n  triangle: function (x, y, w, h, shape) {\n    shape.cx = x + w / 2;\n    shape.cy = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  }\n};\nexport var symbolBuildProxies = {};\nzrUtil.each(symbolCtors, function (Ctor, name) {\n  symbolBuildProxies[name] = new Ctor();\n});\nvar SymbolClz = graphic.Path.extend({\n  type: 'symbol',\n  shape: {\n    symbolType: '',\n    x: 0,\n    y: 0,\n    width: 0,\n    height: 0\n  },\n  calculateTextPosition: function (out, config, rect) {\n    var res = calculateTextPosition(out, config, rect);\n    var shape = this.shape;\n\n    if (shape && shape.symbolType === 'pin' && config.position === 'inside') {\n      res.y = rect.y + rect.height * 0.4;\n    }\n\n    return res;\n  },\n  buildPath: function (ctx, shape, inBundle) {\n    var symbolType = shape.symbolType;\n\n    if (symbolType !== 'none') {\n      var proxySymbol = symbolBuildProxies[symbolType];\n\n      if (!proxySymbol) {\n        symbolType = 'rect';\n        proxySymbol = symbolBuildProxies[symbolType];\n      }\n\n      symbolShapeMakers[symbolType](shape.x, shape.y, shape.width, shape.height, proxySymbol.shape);\n      proxySymbol.buildPath(ctx, proxySymbol.shape, inBundle);\n    }\n  }\n});\n\nfunction symbolPathSetColor(color, innerColor) {\n  if (this.type !== 'image') {\n    var symbolStyle = this.style;\n\n    if (this.__isEmptyBrush) {\n      symbolStyle.stroke = color;\n      symbolStyle.fill = innerColor || '#fff';\n      symbolStyle.lineWidth = 2;\n    } else {\n      symbolStyle.fill = color;\n    }\n\n    this.markRedraw();\n  }\n}\n\nexport function createSymbol(symbolType, x, y, w, h, color, keepAspect) {\n  var isEmpty = symbolType.indexOf('empty') === 0;\n\n  if (isEmpty) {\n    symbolType = symbolType.substr(5, 1).toLowerCase() + symbolType.substr(6);\n  }\n\n  var symbolPath;\n\n  if (symbolType.indexOf('image://') === 0) {\n    symbolPath = graphic.makeImage(symbolType.slice(8), new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\n  } else if (symbolType.indexOf('path://') === 0) {\n    symbolPath = graphic.makePath(symbolType.slice(7), {}, new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\n  } else {\n    symbolPath = new SymbolClz({\n      shape: {\n        symbolType: symbolType,\n        x: x,\n        y: y,\n        width: w,\n        height: h\n      }\n    });\n  }\n\n  symbolPath.__isEmptyBrush = isEmpty;\n  symbolPath.setColor = symbolPathSetColor;\n\n  if (color) {\n    symbolPath.setColor(color);\n  }\n\n  return symbolPath;\n}","export function createLinearGradient(ctx, obj, rect) {\n    var x = obj.x == null ? 0 : obj.x;\n    var x2 = obj.x2 == null ? 1 : obj.x2;\n    var y = obj.y == null ? 0 : obj.y;\n    var y2 = obj.y2 == null ? 0 : obj.y2;\n    if (!obj.global) {\n        x = x * rect.width + rect.x;\n        x2 = x2 * rect.width + rect.x;\n        y = y * rect.height + rect.y;\n        y2 = y2 * rect.height + rect.y;\n    }\n    x = isNaN(x) ? 0 : x;\n    x2 = isNaN(x2) ? 1 : x2;\n    y = isNaN(y) ? 0 : y;\n    y2 = isNaN(y2) ? 0 : y2;\n    var canvasGradient = ctx.createLinearGradient(x, y, x2, y2);\n    return canvasGradient;\n}\nexport function createRadialGradient(ctx, obj, rect) {\n    var width = rect.width;\n    var height = rect.height;\n    var min = Math.min(width, height);\n    var x = obj.x == null ? 0.5 : obj.x;\n    var y = obj.y == null ? 0.5 : obj.y;\n    var r = obj.r == null ? 0.5 : obj.r;\n    if (!obj.global) {\n        x = x * width + rect.x;\n        y = y * height + rect.y;\n        r = r * min;\n    }\n    var canvasGradient = ctx.createRadialGradient(x, y, 0, x, y, r);\n    return canvasGradient;\n}\nexport function getCanvasGradient(ctx, obj, rect) {\n    var canvasGradient = obj.type === 'radial'\n        ? createRadialGradient(ctx, obj, rect)\n        : createLinearGradient(ctx, obj, rect);\n    var colorStops = obj.colorStops;\n    for (var i = 0; i < colorStops.length; i++) {\n        canvasGradient.addColorStop(colorStops[i].offset, colorStops[i].color);\n    }\n    return canvasGradient;\n}\nexport function isClipPathChanged(clipPaths, prevClipPaths) {\n    if (clipPaths === prevClipPaths || (!clipPaths && !prevClipPaths)) {\n        return false;\n    }\n    if (!clipPaths || !prevClipPaths || (clipPaths.length !== prevClipPaths.length)) {\n        return true;\n    }\n    for (var i = 0; i < clipPaths.length; i++) {\n        if (clipPaths[i] !== prevClipPaths[i]) {\n            return true;\n        }\n    }\n    return false;\n}\n","import { isArray, isNumber } from '../../core/util';\nexport function normalizeLineDash(lineType, lineWidth) {\n    if (!lineType || lineType === 'solid' || !(lineWidth > 0)) {\n        return null;\n    }\n    lineWidth = lineWidth || 1;\n    return lineType === 'dashed'\n        ? [4 * lineWidth, 2 * lineWidth]\n        : lineType === 'dotted'\n            ? [lineWidth]\n            : isNumber(lineType)\n                ? [lineType] : isArray(lineType) ? lineType : null;\n}\n","import { DEFAULT_COMMON_STYLE } from '../graphic/Displayable';\nimport PathProxy from '../core/PathProxy';\nimport { createOrUpdateImage, isImageReady } from '../graphic/helper/image';\nimport { getCanvasGradient, isClipPathChanged } from './helper';\nimport Path from '../graphic/Path';\nimport ZRImage from '../graphic/Image';\nimport TSpan from '../graphic/TSpan';\nimport { DEFAULT_FONT } from '../contain/text';\nimport { map } from '../core/util';\nimport { normalizeLineDash } from '../graphic/helper/dashStyle';\nimport Element from '../Element';\nimport IncrementalDisplayable from '../graphic/IncrementalDisplayable';\nvar pathProxyForDraw = new PathProxy(true);\nfunction styleHasStroke(style) {\n    var stroke = style.stroke;\n    return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\n}\nfunction styleHasFill(style) {\n    var fill = style.fill;\n    return fill != null && fill !== 'none';\n}\nfunction doFillPath(ctx, style) {\n    if (style.fillOpacity != null && style.fillOpacity !== 1) {\n        var originalGlobalAlpha = ctx.globalAlpha;\n        ctx.globalAlpha = style.fillOpacity * style.opacity;\n        ctx.fill();\n        ctx.globalAlpha = originalGlobalAlpha;\n    }\n    else {\n        ctx.fill();\n    }\n}\nfunction doStrokePath(ctx, style) {\n    if (style.strokeOpacity != null && style.strokeOpacity !== 1) {\n        var originalGlobalAlpha = ctx.globalAlpha;\n        ctx.globalAlpha = style.strokeOpacity * style.opacity;\n        ctx.stroke();\n        ctx.globalAlpha = originalGlobalAlpha;\n    }\n    else {\n        ctx.stroke();\n    }\n}\nexport function createCanvasPattern(ctx, pattern, el) {\n    var image = createOrUpdateImage(pattern.image, pattern.__image, el);\n    if (isImageReady(image)) {\n        var canvasPattern = ctx.createPattern(image, pattern.repeat || 'repeat');\n        if (typeof DOMMatrix === 'function') {\n            var matrix = new DOMMatrix();\n            matrix.rotateSelf(0, 0, (pattern.rotation || 0) / Math.PI * 180);\n            matrix.scaleSelf((pattern.scaleX || 1), (pattern.scaleY || 1));\n            matrix.translateSelf((pattern.x || 0), (pattern.y || 0));\n            canvasPattern.setTransform(matrix);\n        }\n        return canvasPattern;\n    }\n}\nfunction brushPath(ctx, el, style, inBatch) {\n    var hasStroke = styleHasStroke(style);\n    var hasFill = styleHasFill(style);\n    var strokePercent = style.strokePercent;\n    var strokePart = strokePercent < 1;\n    var firstDraw = !el.path;\n    if ((!el.silent || strokePart) && firstDraw) {\n        el.createPathProxy();\n    }\n    var path = el.path || pathProxyForDraw;\n    if (!inBatch) {\n        var fill = style.fill;\n        var stroke = style.stroke;\n        var hasFillGradient = hasFill && !!fill.colorStops;\n        var hasStrokeGradient = hasStroke && !!stroke.colorStops;\n        var hasFillPattern = hasFill && !!fill.image;\n        var hasStrokePattern = hasStroke && !!stroke.image;\n        var fillGradient = void 0;\n        var strokeGradient = void 0;\n        var fillPattern = void 0;\n        var strokePattern = void 0;\n        var rect = void 0;\n        if (hasFillGradient || hasStrokeGradient) {\n            rect = el.getBoundingRect();\n        }\n        if (hasFillGradient) {\n            fillGradient = el.__dirty\n                ? getCanvasGradient(ctx, fill, rect)\n                : el.__canvasFillGradient;\n            el.__canvasFillGradient = fillGradient;\n        }\n        if (hasStrokeGradient) {\n            strokeGradient = el.__dirty\n                ? getCanvasGradient(ctx, stroke, rect)\n                : el.__canvasStrokeGradient;\n            el.__canvasStrokeGradient = strokeGradient;\n        }\n        if (hasFillPattern) {\n            fillPattern = (el.__dirty || !el.__canvasFillPattern)\n                ? createCanvasPattern(ctx, fill, el)\n                : el.__canvasFillPattern;\n            el.__canvasFillPattern = fillPattern;\n        }\n        if (hasStrokePattern) {\n            strokePattern = (el.__dirty || !el.__canvasStrokePattern)\n                ? createCanvasPattern(ctx, stroke, el)\n                : el.__canvasStrokePattern;\n            el.__canvasStrokePattern = fillPattern;\n        }\n        if (hasFillGradient) {\n            ctx.fillStyle = fillGradient;\n        }\n        else if (hasFillPattern) {\n            if (fillPattern) {\n                ctx.fillStyle = fillPattern;\n            }\n            else {\n                hasFill = false;\n            }\n        }\n        if (hasStrokeGradient) {\n            ctx.strokeStyle = strokeGradient;\n        }\n        else if (hasStrokePattern) {\n            if (strokePattern) {\n                ctx.strokeStyle = strokePattern;\n            }\n            else {\n                hasStroke = false;\n            }\n        }\n    }\n    var lineDash = style.lineDash && style.lineWidth > 0 && normalizeLineDash(style.lineDash, style.lineWidth);\n    var lineDashOffset = style.lineDashOffset;\n    var ctxLineDash = !!ctx.setLineDash;\n    var scale = el.getGlobalScale();\n    path.setScale(scale[0], scale[1], el.segmentIgnoreThreshold);\n    if (lineDash) {\n        var lineScale_1 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\n        if (lineScale_1 && lineScale_1 !== 1) {\n            lineDash = map(lineDash, function (rawVal) {\n                return rawVal / lineScale_1;\n            });\n            lineDashOffset /= lineScale_1;\n        }\n    }\n    var needsRebuild = true;\n    if (firstDraw || (el.__dirty & Path.SHAPE_CHANGED_BIT)\n        || (lineDash && !ctxLineDash && hasStroke)) {\n        path.setDPR(ctx.dpr);\n        if (strokePart) {\n            path.setContext(null);\n        }\n        else {\n            path.setContext(ctx);\n            needsRebuild = false;\n        }\n        path.reset();\n        if (lineDash && !ctxLineDash) {\n            path.setLineDash(lineDash);\n            path.setLineDashOffset(lineDashOffset);\n        }\n        el.buildPath(path, el.shape, inBatch);\n        path.toStatic();\n        el.pathUpdated();\n    }\n    if (needsRebuild) {\n        path.rebuildPath(ctx, strokePart ? strokePercent : 1);\n    }\n    if (lineDash && ctxLineDash) {\n        ctx.setLineDash(lineDash);\n        ctx.lineDashOffset = lineDashOffset;\n    }\n    if (!inBatch) {\n        if (style.strokeFirst) {\n            if (hasStroke) {\n                doStrokePath(ctx, style);\n            }\n            if (hasFill) {\n                doFillPath(ctx, style);\n            }\n        }\n        else {\n            if (hasFill) {\n                doFillPath(ctx, style);\n            }\n            if (hasStroke) {\n                doStrokePath(ctx, style);\n            }\n        }\n    }\n    if (lineDash && ctxLineDash) {\n        ctx.setLineDash([]);\n    }\n}\nfunction brushImage(ctx, el, style) {\n    var image = el.__image = createOrUpdateImage(style.image, el.__image, el, el.onload);\n    if (!image || !isImageReady(image)) {\n        return;\n    }\n    var x = style.x || 0;\n    var y = style.y || 0;\n    var width = el.getWidth();\n    var height = el.getHeight();\n    var aspect = image.width / image.height;\n    if (width == null && height != null) {\n        width = height * aspect;\n    }\n    else if (height == null && width != null) {\n        height = width / aspect;\n    }\n    else if (width == null && height == null) {\n        width = image.width;\n        height = image.height;\n    }\n    if (style.sWidth && style.sHeight) {\n        var sx = style.sx || 0;\n        var sy = style.sy || 0;\n        ctx.drawImage(image, sx, sy, style.sWidth, style.sHeight, x, y, width, height);\n    }\n    else if (style.sx && style.sy) {\n        var sx = style.sx;\n        var sy = style.sy;\n        var sWidth = width - sx;\n        var sHeight = height - sy;\n        ctx.drawImage(image, sx, sy, sWidth, sHeight, x, y, width, height);\n    }\n    else {\n        ctx.drawImage(image, x, y, width, height);\n    }\n}\nfunction brushText(ctx, el, style) {\n    var text = style.text;\n    text != null && (text += '');\n    if (text) {\n        ctx.font = style.font || DEFAULT_FONT;\n        ctx.textAlign = style.textAlign;\n        ctx.textBaseline = style.textBaseline;\n        var hasLineDash = void 0;\n        if (ctx.setLineDash) {\n            var lineDash = style.lineDash && style.lineWidth > 0 && normalizeLineDash(style.lineDash, style.lineWidth);\n            var lineDashOffset = style.lineDashOffset;\n            if (lineDash) {\n                var lineScale_2 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\n                if (lineScale_2 && lineScale_2 !== 1) {\n                    lineDash = map(lineDash, function (rawVal) {\n                        return rawVal / lineScale_2;\n                    });\n                    lineDashOffset /= lineScale_2;\n                }\n                ctx.setLineDash(lineDash);\n                ctx.lineDashOffset = lineDashOffset;\n                hasLineDash = true;\n            }\n        }\n        if (style.strokeFirst) {\n            if (styleHasStroke(style)) {\n                ctx.strokeText(text, style.x, style.y);\n            }\n            if (styleHasFill(style)) {\n                ctx.fillText(text, style.x, style.y);\n            }\n        }\n        else {\n            if (styleHasFill(style)) {\n                ctx.fillText(text, style.x, style.y);\n            }\n            if (styleHasStroke(style)) {\n                ctx.strokeText(text, style.x, style.y);\n            }\n        }\n        if (hasLineDash) {\n            ctx.setLineDash([]);\n        }\n    }\n}\nvar SHADOW_NUMBER_PROPS = ['shadowBlur', 'shadowOffsetX', 'shadowOffsetY'];\nvar STROKE_PROPS = [\n    ['lineCap', 'butt'], ['lineJoin', 'miter'], ['miterLimit', 10]\n];\nfunction bindCommonProps(ctx, style, prevStyle, forceSetAll, scope) {\n    var styleChanged = false;\n    if (!forceSetAll) {\n        prevStyle = prevStyle || {};\n        if (style === prevStyle) {\n            return false;\n        }\n    }\n    if (forceSetAll || style.opacity !== prevStyle.opacity) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.globalAlpha = style.opacity == null ? DEFAULT_COMMON_STYLE.opacity : style.opacity;\n    }\n    if (forceSetAll || style.blend !== prevStyle.blend) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.globalCompositeOperation = style.blend || DEFAULT_COMMON_STYLE.blend;\n    }\n    for (var i = 0; i < SHADOW_NUMBER_PROPS.length; i++) {\n        var propName = SHADOW_NUMBER_PROPS[i];\n        if (forceSetAll || style[propName] !== prevStyle[propName]) {\n            if (!styleChanged) {\n                flushPathDrawn(ctx, scope);\n                styleChanged = true;\n            }\n            ctx[propName] = ctx.dpr * (style[propName] || 0);\n        }\n    }\n    if (forceSetAll || style.shadowColor !== prevStyle.shadowColor) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.shadowColor = style.shadowColor || DEFAULT_COMMON_STYLE.shadowColor;\n    }\n    return styleChanged;\n}\nfunction bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetAll, scope) {\n    var style = getStyle(el, scope.inHover);\n    var prevStyle = forceSetAll\n        ? null\n        : (prevEl && getStyle(prevEl, scope.inHover) || {});\n    if (style === prevStyle) {\n        return false;\n    }\n    var styleChanged = bindCommonProps(ctx, style, prevStyle, forceSetAll, scope);\n    if (forceSetAll || style.fill !== prevStyle.fill) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.fillStyle = style.fill;\n    }\n    if (forceSetAll || style.stroke !== prevStyle.stroke) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.strokeStyle = style.stroke;\n    }\n    if (forceSetAll || style.opacity !== prevStyle.opacity) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.globalAlpha = style.opacity == null ? 1 : style.opacity;\n    }\n    if (el.hasStroke()) {\n        var lineWidth = style.lineWidth;\n        var newLineWidth = lineWidth / ((style.strokeNoScale && el && el.getLineScale) ? el.getLineScale() : 1);\n        if (ctx.lineWidth !== newLineWidth) {\n            if (!styleChanged) {\n                flushPathDrawn(ctx, scope);\n                styleChanged = true;\n            }\n            ctx.lineWidth = newLineWidth;\n        }\n    }\n    for (var i = 0; i < STROKE_PROPS.length; i++) {\n        var prop = STROKE_PROPS[i];\n        var propName = prop[0];\n        if (forceSetAll || style[propName] !== prevStyle[propName]) {\n            if (!styleChanged) {\n                flushPathDrawn(ctx, scope);\n                styleChanged = true;\n            }\n            ctx[propName] = style[propName] || prop[1];\n        }\n    }\n    return styleChanged;\n}\nfunction bindImageStyle(ctx, el, prevEl, forceSetAll, scope) {\n    return bindCommonProps(ctx, getStyle(el, scope.inHover), prevEl && getStyle(prevEl, scope.inHover), forceSetAll, scope);\n}\nfunction setContextTransform(ctx, el) {\n    var m = el.transform;\n    var dpr = ctx.dpr || 1;\n    if (m) {\n        ctx.setTransform(dpr * m[0], dpr * m[1], dpr * m[2], dpr * m[3], dpr * m[4], dpr * m[5]);\n    }\n    else {\n        ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n    }\n}\nfunction updateClipStatus(clipPaths, ctx, scope) {\n    var allClipped = false;\n    for (var i = 0; i < clipPaths.length; i++) {\n        var clipPath = clipPaths[i];\n        allClipped = allClipped || clipPath.isZeroArea();\n        setContextTransform(ctx, clipPath);\n        ctx.beginPath();\n        clipPath.buildPath(ctx, clipPath.shape);\n        ctx.clip();\n    }\n    scope.allClipped = allClipped;\n}\nfunction isTransformChanged(m0, m1) {\n    if (m0 && m1) {\n        return m0[0] !== m1[0]\n            || m0[1] !== m1[1]\n            || m0[2] !== m1[2]\n            || m0[3] !== m1[3]\n            || m0[4] !== m1[4]\n            || m0[5] !== m1[5];\n    }\n    else if (!m0 && !m1) {\n        return false;\n    }\n    return true;\n}\nvar DRAW_TYPE_PATH = 1;\nvar DRAW_TYPE_IMAGE = 2;\nvar DRAW_TYPE_TEXT = 3;\nvar DRAW_TYPE_INCREMENTAL = 4;\nfunction canPathBatch(style) {\n    var hasFill = styleHasFill(style);\n    var hasStroke = styleHasStroke(style);\n    return !(style.lineDash\n        || !(+hasFill ^ +hasStroke)\n        || (hasFill && typeof style.fill !== 'string')\n        || (hasStroke && typeof style.stroke !== 'string')\n        || style.strokePercent < 1\n        || style.strokeOpacity < 1\n        || style.fillOpacity < 1);\n}\nfunction flushPathDrawn(ctx, scope) {\n    scope.batchFill && ctx.fill();\n    scope.batchStroke && ctx.stroke();\n    scope.batchFill = '';\n    scope.batchStroke = '';\n}\nfunction getStyle(el, inHover) {\n    return inHover ? (el.__hoverStyle || el.style) : el.style;\n}\nexport function brushSingle(ctx, el) {\n    brush(ctx, el, { inHover: false, viewWidth: 0, viewHeight: 0 }, true);\n}\nexport function brush(ctx, el, scope, isLast) {\n    var m = el.transform;\n    if (!el.shouldBePainted(scope.viewWidth, scope.viewHeight, false, false)) {\n        el.__dirty &= ~Element.REDARAW_BIT;\n        el.__isRendered = false;\n        return;\n    }\n    var clipPaths = el.__clipPaths;\n    var prevElClipPaths = scope.prevElClipPaths;\n    var forceSetTransform = false;\n    var forceSetStyle = false;\n    if (!prevElClipPaths || isClipPathChanged(clipPaths, prevElClipPaths)) {\n        if (prevElClipPaths && prevElClipPaths.length) {\n            flushPathDrawn(ctx, scope);\n            ctx.restore();\n            forceSetStyle = forceSetTransform = true;\n            scope.prevElClipPaths = null;\n            scope.allClipped = false;\n            scope.prevEl = null;\n        }\n        if (clipPaths && clipPaths.length) {\n            flushPathDrawn(ctx, scope);\n            ctx.save();\n            updateClipStatus(clipPaths, ctx, scope);\n            forceSetTransform = true;\n        }\n        scope.prevElClipPaths = clipPaths;\n    }\n    if (scope.allClipped) {\n        el.__isRendered = false;\n        return;\n    }\n    el.beforeBrush && el.beforeBrush();\n    el.innerBeforeBrush();\n    var prevEl = scope.prevEl;\n    if (!prevEl) {\n        forceSetStyle = forceSetTransform = true;\n    }\n    var canBatchPath = el instanceof Path\n        && el.autoBatch\n        && canPathBatch(el.style);\n    if (forceSetTransform || isTransformChanged(m, prevEl.transform)) {\n        flushPathDrawn(ctx, scope);\n        setContextTransform(ctx, el);\n    }\n    else if (!canBatchPath) {\n        flushPathDrawn(ctx, scope);\n    }\n    var style = getStyle(el, scope.inHover);\n    if (el instanceof Path) {\n        if (scope.lastDrawType !== DRAW_TYPE_PATH) {\n            forceSetStyle = true;\n            scope.lastDrawType = DRAW_TYPE_PATH;\n        }\n        bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\n        if (!canBatchPath || (!scope.batchFill && !scope.batchStroke)) {\n            ctx.beginPath();\n        }\n        brushPath(ctx, el, style, canBatchPath);\n        if (canBatchPath) {\n            scope.batchFill = style.fill || '';\n            scope.batchStroke = style.stroke || '';\n        }\n    }\n    else {\n        if (el instanceof TSpan) {\n            if (scope.lastDrawType !== DRAW_TYPE_TEXT) {\n                forceSetStyle = true;\n                scope.lastDrawType = DRAW_TYPE_TEXT;\n            }\n            bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\n            brushText(ctx, el, style);\n        }\n        else if (el instanceof ZRImage) {\n            if (scope.lastDrawType !== DRAW_TYPE_IMAGE) {\n                forceSetStyle = true;\n                scope.lastDrawType = DRAW_TYPE_IMAGE;\n            }\n            bindImageStyle(ctx, el, prevEl, forceSetStyle, scope);\n            brushImage(ctx, el, style);\n        }\n        else if (el instanceof IncrementalDisplayable) {\n            if (scope.lastDrawType !== DRAW_TYPE_INCREMENTAL) {\n                forceSetStyle = true;\n                scope.lastDrawType = DRAW_TYPE_INCREMENTAL;\n            }\n            brushIncremental(ctx, el, scope);\n        }\n    }\n    if (canBatchPath && isLast) {\n        flushPathDrawn(ctx, scope);\n    }\n    el.innerAfterBrush();\n    el.afterBrush && el.afterBrush();\n    scope.prevEl = el;\n    el.__dirty = 0;\n    el.__isRendered = true;\n}\nfunction brushIncremental(ctx, el, scope) {\n    var displayables = el.getDisplayables();\n    var temporalDisplayables = el.getTemporalDisplayables();\n    ctx.save();\n    var innerScope = {\n        prevElClipPaths: null,\n        prevEl: null,\n        allClipped: false,\n        viewWidth: scope.viewWidth,\n        viewHeight: scope.viewHeight,\n        inHover: scope.inHover\n    };\n    var i;\n    var len;\n    for (i = el.getCursor(), len = displayables.length; i < len; i++) {\n        var displayable = displayables[i];\n        displayable.beforeBrush && displayable.beforeBrush();\n        displayable.innerBeforeBrush();\n        brush(ctx, displayable, innerScope, i === len - 1);\n        displayable.innerAfterBrush();\n        displayable.afterBrush && displayable.afterBrush();\n        innerScope.prevEl = displayable;\n    }\n    for (var i_1 = 0, len_1 = temporalDisplayables.length; i_1 < len_1; i_1++) {\n        var displayable = temporalDisplayables[i_1];\n        displayable.beforeBrush && displayable.beforeBrush();\n        displayable.innerBeforeBrush();\n        brush(ctx, displayable, innerScope, i_1 === len_1 - 1);\n        displayable.innerAfterBrush();\n        displayable.afterBrush && displayable.afterBrush();\n        innerScope.prevEl = displayable;\n    }\n    el.clearTemporalDisplayables();\n    el.notClear = true;\n    ctx.restore();\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport WeakMap from 'zrender/lib/core/WeakMap';\nimport LRU from 'zrender/lib/core/LRU';\nimport { defaults, createCanvas, map, isArray } from 'zrender/lib/core/util';\nimport { getLeastCommonMultiple } from './number';\nimport { createSymbol } from './symbol';\nimport { brushSingle } from 'zrender/lib/canvas/graphic';\nvar decalMap = new WeakMap();\nvar decalCache = new LRU(100);\nvar decalKeys = ['symbol', 'symbolSize', 'symbolKeepAspect', 'color', 'backgroundColor', 'dashArrayX', 'dashArrayY', 'maxTileWidth', 'maxTileHeight'];\nexport function createOrUpdatePatternFromDecal(decalObject, api) {\n  if (decalObject === 'none') {\n    return null;\n  }\n\n  var dpr = api.getDevicePixelRatio();\n  var zr = api.getZr();\n  var isSVG = zr.painter.type === 'svg';\n\n  if (decalObject.dirty) {\n    decalMap[\"delete\"](decalObject);\n  }\n\n  var oldPattern = decalMap.get(decalObject);\n\n  if (oldPattern) {\n    return oldPattern;\n  }\n\n  var decalOpt = defaults(decalObject, {\n    symbol: 'rect',\n    symbolSize: 1,\n    symbolKeepAspect: true,\n    color: 'rgba(0, 0, 0, 0.2)',\n    backgroundColor: null,\n    dashArrayX: 5,\n    dashArrayY: 5,\n    rotation: 0,\n    maxTileWidth: 512,\n    maxTileHeight: 512\n  });\n\n  if (decalOpt.backgroundColor === 'none') {\n    decalOpt.backgroundColor = null;\n  }\n\n  var pattern = {\n    repeat: 'repeat'\n  };\n  setPatternnSource(pattern);\n  pattern.rotation = decalOpt.rotation;\n  pattern.scaleX = pattern.scaleY = isSVG ? 1 : 1 / dpr;\n  decalMap.set(decalObject, pattern);\n  decalObject.dirty = false;\n  return pattern;\n\n  function setPatternnSource(pattern) {\n    var keys = [dpr];\n    var isValidKey = true;\n\n    for (var i = 0; i < decalKeys.length; ++i) {\n      var value = decalOpt[decalKeys[i]];\n      var valueType = typeof value;\n\n      if (value != null && !isArray(value) && valueType !== 'string' && valueType !== 'number' && valueType !== 'boolean') {\n        isValidKey = false;\n        break;\n      }\n\n      keys.push(value);\n    }\n\n    var cacheKey;\n\n    if (isValidKey) {\n      cacheKey = keys.join(',') + (isSVG ? '-svg' : '');\n      var cache = decalCache.get(cacheKey);\n\n      if (cache) {\n        isSVG ? pattern.svgElement = cache : pattern.image = cache;\n      }\n    }\n\n    var dashArrayX = normalizeDashArrayX(decalOpt.dashArrayX);\n    var dashArrayY = normalizeDashArrayY(decalOpt.dashArrayY);\n    var symbolArray = normalizeSymbolArray(decalOpt.symbol);\n    var lineBlockLengthsX = getLineBlockLengthX(dashArrayX);\n    var lineBlockLengthY = getLineBlockLengthY(dashArrayY);\n    var canvas = !isSVG && createCanvas();\n    var svgRoot = isSVG && zr.painter.createSVGElement('g');\n    var pSize = getPatternSize();\n    var ctx;\n\n    if (canvas) {\n      canvas.width = pSize.width * dpr;\n      canvas.height = pSize.height * dpr;\n      ctx = canvas.getContext('2d');\n    }\n\n    brushDecal();\n\n    if (isValidKey) {\n      decalCache.put(cacheKey, canvas || svgRoot);\n    }\n\n    pattern.image = canvas;\n    pattern.svgElement = svgRoot;\n    pattern.svgWidth = pSize.width;\n    pattern.svgHeight = pSize.height;\n\n    function getPatternSize() {\n      var width = 1;\n\n      for (var i = 0, xlen = lineBlockLengthsX.length; i < xlen; ++i) {\n        width = getLeastCommonMultiple(width, lineBlockLengthsX[i]);\n      }\n\n      var symbolRepeats = 1;\n\n      for (var i = 0, xlen = symbolArray.length; i < xlen; ++i) {\n        symbolRepeats = getLeastCommonMultiple(symbolRepeats, symbolArray[i].length);\n      }\n\n      width *= symbolRepeats;\n      var height = lineBlockLengthY * lineBlockLengthsX.length * symbolArray.length;\n\n      if (process.env.NODE_ENV !== 'production') {\n        var warn = function (attrName) {\n          console.warn(\"Calculated decal size is greater than \" + attrName + \" due to decal option settings so \" + attrName + \" is used for the decal size. Please consider changing the decal option to make a smaller decal or set \" + attrName + \" to be larger to avoid incontinuity.\");\n        };\n\n        if (width > decalOpt.maxTileWidth) {\n          warn('maxTileWidth');\n        }\n\n        if (height > decalOpt.maxTileHeight) {\n          warn('maxTileHeight');\n        }\n      }\n\n      return {\n        width: Math.max(1, Math.min(width, decalOpt.maxTileWidth)),\n        height: Math.max(1, Math.min(height, decalOpt.maxTileHeight))\n      };\n    }\n\n    function brushDecal() {\n      if (ctx) {\n        ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n        if (decalOpt.backgroundColor) {\n          ctx.fillStyle = decalOpt.backgroundColor;\n          ctx.fillRect(0, 0, canvas.width, canvas.height);\n        }\n      }\n\n      var ySum = 0;\n\n      for (var i = 0; i < dashArrayY.length; ++i) {\n        ySum += dashArrayY[i];\n      }\n\n      if (ySum <= 0) {\n        return;\n      }\n\n      var y = -lineBlockLengthY;\n      var yId = 0;\n      var yIdTotal = 0;\n      var xId0 = 0;\n\n      while (y < pSize.height) {\n        if (yId % 2 === 0) {\n          var symbolYId = yIdTotal / 2 % symbolArray.length;\n          var x = 0;\n          var xId1 = 0;\n          var xId1Total = 0;\n\n          while (x < pSize.width * 2) {\n            var xSum = 0;\n\n            for (var i = 0; i < dashArrayX[xId0].length; ++i) {\n              xSum += dashArrayX[xId0][i];\n            }\n\n            if (xSum <= 0) {\n              break;\n            }\n\n            if (xId1 % 2 === 0) {\n              var size = (1 - decalOpt.symbolSize) * 0.5;\n              var left = x + dashArrayX[xId0][xId1] * size;\n              var top_1 = y + dashArrayY[yId] * size;\n              var width = dashArrayX[xId0][xId1] * decalOpt.symbolSize;\n              var height = dashArrayY[yId] * decalOpt.symbolSize;\n              var symbolXId = xId1Total / 2 % symbolArray[symbolYId].length;\n              brushSymbol(left, top_1, width, height, symbolArray[symbolYId][symbolXId]);\n            }\n\n            x += dashArrayX[xId0][xId1];\n            ++xId1Total;\n            ++xId1;\n\n            if (xId1 === dashArrayX[xId0].length) {\n              xId1 = 0;\n            }\n          }\n\n          ++xId0;\n\n          if (xId0 === dashArrayX.length) {\n            xId0 = 0;\n          }\n        }\n\n        y += dashArrayY[yId];\n        ++yIdTotal;\n        ++yId;\n\n        if (yId === dashArrayY.length) {\n          yId = 0;\n        }\n      }\n\n      function brushSymbol(x, y, width, height, symbolType) {\n        var scale = isSVG ? 1 : dpr;\n        var symbol = createSymbol(symbolType, x * scale, y * scale, width * scale, height * scale, decalOpt.color, decalOpt.symbolKeepAspect);\n\n        if (isSVG) {\n          svgRoot.appendChild(zr.painter.paintOne(symbol));\n        } else {\n          brushSingle(ctx, symbol);\n        }\n      }\n    }\n  }\n}\n\nfunction normalizeSymbolArray(symbol) {\n  if (!symbol || symbol.length === 0) {\n    return [['rect']];\n  }\n\n  if (typeof symbol === 'string') {\n    return [[symbol]];\n  }\n\n  var isAllString = true;\n\n  for (var i = 0; i < symbol.length; ++i) {\n    if (typeof symbol[i] !== 'string') {\n      isAllString = false;\n      break;\n    }\n  }\n\n  if (isAllString) {\n    return normalizeSymbolArray([symbol]);\n  }\n\n  var result = [];\n\n  for (var i = 0; i < symbol.length; ++i) {\n    if (typeof symbol[i] === 'string') {\n      result.push([symbol[i]]);\n    } else {\n      result.push(symbol[i]);\n    }\n  }\n\n  return result;\n}\n\nfunction normalizeDashArrayX(dash) {\n  if (!dash || dash.length === 0) {\n    return [[0, 0]];\n  }\n\n  if (typeof dash === 'number') {\n    var dashValue = Math.ceil(dash);\n    return [[dashValue, dashValue]];\n  }\n\n  var isAllNumber = true;\n\n  for (var i = 0; i < dash.length; ++i) {\n    if (typeof dash[i] !== 'number') {\n      isAllNumber = false;\n      break;\n    }\n  }\n\n  if (isAllNumber) {\n    return normalizeDashArrayX([dash]);\n  }\n\n  var result = [];\n\n  for (var i = 0; i < dash.length; ++i) {\n    if (typeof dash[i] === 'number') {\n      var dashValue = Math.ceil(dash[i]);\n      result.push([dashValue, dashValue]);\n    } else {\n      var dashValue = map(dash[i], function (n) {\n        return Math.ceil(n);\n      });\n\n      if (dashValue.length % 2 === 1) {\n        result.push(dashValue.concat(dashValue));\n      } else {\n        result.push(dashValue);\n      }\n    }\n  }\n\n  return result;\n}\n\nfunction normalizeDashArrayY(dash) {\n  if (!dash || typeof dash === 'object' && dash.length === 0) {\n    return [0, 0];\n  }\n\n  if (typeof dash === 'number') {\n    var dashValue_1 = Math.ceil(dash);\n    return [dashValue_1, dashValue_1];\n  }\n\n  var dashValue = map(dash, function (n) {\n    return Math.ceil(n);\n  });\n  return dash.length % 2 ? dashValue.concat(dashValue) : dashValue;\n}\n\nfunction getLineBlockLengthX(dash) {\n  return map(dash, function (line) {\n    return getLineBlockLengthY(line);\n  });\n}\n\nfunction getLineBlockLengthY(dash) {\n  var blockLength = 0;\n\n  for (var i = 0; i < dash.length; ++i) {\n    blockLength += dash[i];\n  }\n\n  if (dash.length % 2 === 1) {\n    return blockLength * 2;\n  }\n\n  return blockLength;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createOrUpdatePatternFromDecal } from '../util/decal';\nexport default function decalVisual(ecModel, api) {\n  ecModel.eachRawSeries(function (seriesModel) {\n    if (ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n\n    if (data.hasItemVisual()) {\n      data.each(function (idx) {\n        var decal = data.getItemVisual(idx, 'decal');\n\n        if (decal) {\n          var itemStyle = data.ensureUniqueItemVisual(idx, 'style');\n          itemStyle.decal = createOrUpdatePatternFromDecal(decal, api);\n        }\n      });\n    }\n\n    var decal = data.getVisual('decal');\n\n    if (decal) {\n      var style = data.getVisual('style');\n      style.decal = createOrUpdatePatternFromDecal(decal, api);\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrender from 'zrender/lib/zrender';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as colorTool from 'zrender/lib/tool/color';\nimport env from 'zrender/lib/core/env';\nimport timsort from 'zrender/lib/core/timsort';\nimport Eventful from 'zrender/lib/core/Eventful';\nimport GlobalModel from '../model/Global';\nimport ExtensionAPI from './ExtensionAPI';\nimport CoordinateSystemManager from './CoordinateSystem';\nimport OptionManager from '../model/OptionManager';\nimport backwardCompat from '../preprocessor/backwardCompat';\nimport dataStack from '../processor/dataStack';\nimport SeriesModel from '../model/Series';\nimport ComponentView from '../view/Component';\nimport ChartView from '../view/Chart';\nimport * as graphic from '../util/graphic';\nimport { getECData } from '../util/innerStore';\nimport { enterEmphasisWhenMouseOver, leaveEmphasisWhenMouseOut, isHighDownDispatcher, HOVER_STATE_EMPHASIS, HOVER_STATE_BLUR, toggleSeriesBlurState, toggleSeriesBlurStateFromPayload, toggleSelectionFromPayload, updateSeriesElementSelection, getAllSelectedIndices, isSelectChangePayload, isHighDownPayload, HIGHLIGHT_ACTION_TYPE, DOWNPLAY_ACTION_TYPE, SELECT_ACTION_TYPE, UNSELECT_ACTION_TYPE, TOGGLE_SELECT_ACTION_TYPE, savePathStates, enterEmphasis, leaveEmphasis, leaveBlur, enterSelect, leaveSelect, enterBlur } from '../util/states';\nimport * as modelUtil from '../util/model';\nimport { throttle } from '../util/throttle';\nimport { seriesStyleTask, dataStyleTask, dataColorPaletteTask } from '../visual/style';\nimport loadingDefault from '../loading/default';\nimport Scheduler from './Scheduler';\nimport lightTheme from '../theme/light';\nimport darkTheme from '../theme/dark';\nimport mapDataStorage from '../coord/geo/mapDataStorage';\nimport { parseClassType } from '../util/clazz';\nimport { ECEventProcessor } from '../util/ECEventProcessor';\nimport { seriesSymbolTask, dataSymbolTask } from '../visual/symbol';\nimport { getVisualFromData, getItemVisualFromData } from '../visual/helper';\nimport LabelManager from '../label/LabelManager';\nimport { deprecateLog, throwError } from '../util/log';\nimport { handleLegacySelectEvents } from '../legacy/dataSelectAction';\nimport { registerExternalTransform } from '../data/helper/transform';\nimport { createLocaleObject, SYSTEM_LANG } from './locale';\nimport { findEventDispatcher } from '../util/event';\nimport decal from '../visual/decal';\nvar assert = zrUtil.assert;\nvar each = zrUtil.each;\nvar isFunction = zrUtil.isFunction;\nvar isObject = zrUtil.isObject;\nvar indexOf = zrUtil.indexOf;\nvar hasWindow = typeof window !== 'undefined';\nexport var version = '5.0.1';\nexport var dependencies = {\n  zrender: '5.0.2'\n};\nvar TEST_FRAME_REMAIN_TIME = 1;\nvar PRIORITY_PROCESSOR_SERIES_FILTER = 800;\nvar PRIORITY_PROCESSOR_DATASTACK = 900;\nvar PRIORITY_PROCESSOR_FILTER = 1000;\nvar PRIORITY_PROCESSOR_DEFAULT = 2000;\nvar PRIORITY_PROCESSOR_STATISTIC = 5000;\nvar PRIORITY_VISUAL_LAYOUT = 1000;\nvar PRIORITY_VISUAL_PROGRESSIVE_LAYOUT = 1100;\nvar PRIORITY_VISUAL_GLOBAL = 2000;\nvar PRIORITY_VISUAL_CHART = 3000;\nvar PRIORITY_VISUAL_COMPONENT = 4000;\nvar PRIORITY_VISUAL_CHART_DATA_CUSTOM = 4500;\nvar PRIORITY_VISUAL_POST_CHART_LAYOUT = 4600;\nvar PRIORITY_VISUAL_BRUSH = 5000;\nvar PRIORITY_VISUAL_ARIA = 6000;\nvar PRIORITY_VISUAL_DECAL = 7000;\nexport var PRIORITY = {\n  PROCESSOR: {\n    FILTER: PRIORITY_PROCESSOR_FILTER,\n    SERIES_FILTER: PRIORITY_PROCESSOR_SERIES_FILTER,\n    STATISTIC: PRIORITY_PROCESSOR_STATISTIC\n  },\n  VISUAL: {\n    LAYOUT: PRIORITY_VISUAL_LAYOUT,\n    PROGRESSIVE_LAYOUT: PRIORITY_VISUAL_PROGRESSIVE_LAYOUT,\n    GLOBAL: PRIORITY_VISUAL_GLOBAL,\n    CHART: PRIORITY_VISUAL_CHART,\n    POST_CHART_LAYOUT: PRIORITY_VISUAL_POST_CHART_LAYOUT,\n    COMPONENT: PRIORITY_VISUAL_COMPONENT,\n    BRUSH: PRIORITY_VISUAL_BRUSH,\n    CHART_ITEM: PRIORITY_VISUAL_CHART_DATA_CUSTOM,\n    ARIA: PRIORITY_VISUAL_ARIA,\n    DECAL: PRIORITY_VISUAL_DECAL\n  }\n};\nvar IN_MAIN_PROCESS_KEY = '__flagInMainProcess';\nvar OPTION_UPDATED_KEY = '__optionUpdated';\nvar STATUS_NEEDS_UPDATE_KEY = '__needsUpdateStatus';\nvar ACTION_REG = /^[a-zA-Z0-9_]+$/;\nvar CONNECT_STATUS_KEY = '__connectUpdateStatus';\nvar CONNECT_STATUS_PENDING = 0;\nvar CONNECT_STATUS_UPDATING = 1;\nvar CONNECT_STATUS_UPDATED = 2;\n;\n\nfunction createRegisterEventWithLowercaseECharts(method) {\n  return function () {\n    var args = [];\n\n    for (var _i = 0; _i < arguments.length; _i++) {\n      args[_i] = arguments[_i];\n    }\n\n    if (this.isDisposed()) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    return toLowercaseNameAndCallEventful(this, method, args);\n  };\n}\n\nfunction createRegisterEventWithLowercaseMessageCenter(method) {\n  return function () {\n    var args = [];\n\n    for (var _i = 0; _i < arguments.length; _i++) {\n      args[_i] = arguments[_i];\n    }\n\n    return toLowercaseNameAndCallEventful(this, method, args);\n  };\n}\n\nfunction toLowercaseNameAndCallEventful(host, method, args) {\n  args[0] = args[0] && args[0].toLowerCase();\n  return Eventful.prototype[method].apply(host, args);\n}\n\nvar MessageCenter = function (_super) {\n  __extends(MessageCenter, _super);\n\n  function MessageCenter() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  return MessageCenter;\n}(Eventful);\n\nvar messageCenterProto = MessageCenter.prototype;\nmessageCenterProto.on = createRegisterEventWithLowercaseMessageCenter('on');\nmessageCenterProto.off = createRegisterEventWithLowercaseMessageCenter('off');\nvar prepare;\nvar prepareView;\nvar updateDirectly;\nvar updateMethods;\nvar doConvertPixel;\nvar updateStreamModes;\nvar doDispatchAction;\nvar flushPendingActions;\nvar triggerUpdatedEvent;\nvar bindRenderedEvent;\nvar bindMouseEvent;\nvar clearColorPalette;\nvar render;\nvar renderComponents;\nvar renderSeries;\nvar performPostUpdateFuncs;\nvar createExtensionAPI;\nvar enableConnect;\nvar setTransitionOpt;\nvar markStatusToUpdate;\nvar applyChangedStates;\n\nvar ECharts = function (_super) {\n  __extends(ECharts, _super);\n\n  function ECharts(dom, theme, opts) {\n    var _this = _super.call(this, new ECEventProcessor()) || this;\n\n    _this._chartsViews = [];\n    _this._chartsMap = {};\n    _this._componentsViews = [];\n    _this._componentsMap = {};\n    _this._pendingActions = [];\n    opts = opts || {};\n\n    if (typeof theme === 'string') {\n      theme = themeStorage[theme];\n    }\n\n    _this._dom = dom;\n    var defaultRenderer = 'canvas';\n    var defaultUseDirtyRect = false;\n\n    if (process.env.NODE_ENV !== 'production') {\n      var root = hasWindow ? window : global;\n      defaultRenderer = root.__ECHARTS__DEFAULT__RENDERER__ || defaultRenderer;\n      var devUseDirtyRect = root.__ECHARTS__DEFAULT__USE_DIRTY_RECT__;\n      defaultUseDirtyRect = devUseDirtyRect == null ? defaultUseDirtyRect : devUseDirtyRect;\n    }\n\n    var zr = _this._zr = zrender.init(dom, {\n      renderer: opts.renderer || defaultRenderer,\n      devicePixelRatio: opts.devicePixelRatio,\n      width: opts.width,\n      height: opts.height,\n      useDirtyRect: opts.useDirtyRect == null ? defaultUseDirtyRect : opts.useDirtyRect\n    });\n    _this._throttledZrFlush = throttle(zrUtil.bind(zr.flush, zr), 17);\n    theme = zrUtil.clone(theme);\n    theme && backwardCompat(theme, true);\n    _this._theme = theme;\n    _this._locale = createLocaleObject(opts.locale || SYSTEM_LANG);\n    _this._coordSysMgr = new CoordinateSystemManager();\n    var api = _this._api = createExtensionAPI(_this);\n\n    function prioritySortFunc(a, b) {\n      return a.__prio - b.__prio;\n    }\n\n    timsort(visualFuncs, prioritySortFunc);\n    timsort(dataProcessorFuncs, prioritySortFunc);\n    _this._scheduler = new Scheduler(_this, api, dataProcessorFuncs, visualFuncs);\n    _this._messageCenter = new MessageCenter();\n    _this._labelManager = new LabelManager();\n\n    _this._initEvents();\n\n    _this.resize = zrUtil.bind(_this.resize, _this);\n    zr.animation.on('frame', _this._onframe, _this);\n    bindRenderedEvent(zr, _this);\n    bindMouseEvent(zr, _this);\n    zrUtil.setAsPrimitive(_this);\n    return _this;\n  }\n\n  ECharts.prototype._onframe = function () {\n    if (this._disposed) {\n      return;\n    }\n\n    applyChangedStates(this);\n    var scheduler = this._scheduler;\n\n    if (this[OPTION_UPDATED_KEY]) {\n      var silent = this[OPTION_UPDATED_KEY].silent;\n      this[IN_MAIN_PROCESS_KEY] = true;\n      prepare(this);\n      updateMethods.update.call(this);\n\n      this._zr.flush();\n\n      this[IN_MAIN_PROCESS_KEY] = false;\n      this[OPTION_UPDATED_KEY] = false;\n      flushPendingActions.call(this, silent);\n      triggerUpdatedEvent.call(this, silent);\n    } else if (scheduler.unfinished) {\n      var remainTime = TEST_FRAME_REMAIN_TIME;\n      var ecModel = this._model;\n      var api = this._api;\n      scheduler.unfinished = false;\n\n      do {\n        var startTime = +new Date();\n        scheduler.performSeriesTasks(ecModel);\n        scheduler.performDataProcessorTasks(ecModel);\n        updateStreamModes(this, ecModel);\n        scheduler.performVisualTasks(ecModel);\n        renderSeries(this, this._model, api, 'remain');\n        remainTime -= +new Date() - startTime;\n      } while (remainTime > 0 && scheduler.unfinished);\n\n      if (!scheduler.unfinished) {\n        this._zr.flush();\n      }\n    }\n  };\n\n  ECharts.prototype.getDom = function () {\n    return this._dom;\n  };\n\n  ECharts.prototype.getId = function () {\n    return this.id;\n  };\n\n  ECharts.prototype.getZr = function () {\n    return this._zr;\n  };\n\n  ECharts.prototype.setOption = function (option, notMerge, lazyUpdate) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!this[IN_MAIN_PROCESS_KEY], '`setOption` should not be called during main process.');\n    }\n\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    var silent;\n    var replaceMerge;\n    var transitionOpt;\n\n    if (isObject(notMerge)) {\n      lazyUpdate = notMerge.lazyUpdate;\n      silent = notMerge.silent;\n      replaceMerge = notMerge.replaceMerge;\n      transitionOpt = notMerge.transition;\n      notMerge = notMerge.notMerge;\n    }\n\n    this[IN_MAIN_PROCESS_KEY] = true;\n\n    if (!this._model || notMerge) {\n      var optionManager = new OptionManager(this._api);\n      var theme = this._theme;\n      var ecModel = this._model = new GlobalModel();\n      ecModel.scheduler = this._scheduler;\n      ecModel.init(null, null, null, theme, this._locale, optionManager);\n    }\n\n    this._model.setOption(option, {\n      replaceMerge: replaceMerge\n    }, optionPreprocessorFuncs);\n\n    setTransitionOpt(this, transitionOpt);\n\n    if (lazyUpdate) {\n      this[OPTION_UPDATED_KEY] = {\n        silent: silent\n      };\n      this[IN_MAIN_PROCESS_KEY] = false;\n      this.getZr().wakeUp();\n    } else {\n      prepare(this);\n      updateMethods.update.call(this);\n\n      this._zr.flush();\n\n      this[OPTION_UPDATED_KEY] = false;\n      this[IN_MAIN_PROCESS_KEY] = false;\n      flushPendingActions.call(this, silent);\n      triggerUpdatedEvent.call(this, silent);\n    }\n  };\n\n  ECharts.prototype.setTheme = function () {\n    console.error('ECharts#setTheme() is DEPRECATED in ECharts 3.0');\n  };\n\n  ECharts.prototype.getModel = function () {\n    return this._model;\n  };\n\n  ECharts.prototype.getOption = function () {\n    return this._model && this._model.getOption();\n  };\n\n  ECharts.prototype.getWidth = function () {\n    return this._zr.getWidth();\n  };\n\n  ECharts.prototype.getHeight = function () {\n    return this._zr.getHeight();\n  };\n\n  ECharts.prototype.getDevicePixelRatio = function () {\n    return this._zr.painter.dpr || hasWindow && window.devicePixelRatio || 1;\n  };\n\n  ECharts.prototype.getRenderedCanvas = function (opts) {\n    if (!env.canvasSupported) {\n      return;\n    }\n\n    opts = zrUtil.extend({}, opts || {});\n    opts.pixelRatio = opts.pixelRatio || 1;\n    opts.backgroundColor = opts.backgroundColor || this._model.get('backgroundColor');\n    var zr = this._zr;\n    return zr.painter.getRenderedCanvas(opts);\n  };\n\n  ECharts.prototype.getSvgDataURL = function () {\n    if (!env.svgSupported) {\n      return;\n    }\n\n    var zr = this._zr;\n    var list = zr.storage.getDisplayList();\n    zrUtil.each(list, function (el) {\n      el.stopAnimation(null, true);\n    });\n    return zr.painter.toDataURL();\n  };\n\n  ECharts.prototype.getDataURL = function (opts) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    opts = opts || {};\n    var excludeComponents = opts.excludeComponents;\n    var ecModel = this._model;\n    var excludesComponentViews = [];\n    var self = this;\n    each(excludeComponents, function (componentType) {\n      ecModel.eachComponent({\n        mainType: componentType\n      }, function (component) {\n        var view = self._componentsMap[component.__viewId];\n\n        if (!view.group.ignore) {\n          excludesComponentViews.push(view);\n          view.group.ignore = true;\n        }\n      });\n    });\n    var url = this._zr.painter.getType() === 'svg' ? this.getSvgDataURL() : this.getRenderedCanvas(opts).toDataURL('image/' + (opts && opts.type || 'png'));\n    each(excludesComponentViews, function (view) {\n      view.group.ignore = false;\n    });\n    return url;\n  };\n\n  ECharts.prototype.getConnectedDataURL = function (opts) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    if (!env.canvasSupported) {\n      return;\n    }\n\n    var isSvg = opts.type === 'svg';\n    var groupId = this.group;\n    var mathMin = Math.min;\n    var mathMax = Math.max;\n    var MAX_NUMBER = Infinity;\n\n    if (connectedGroups[groupId]) {\n      var left_1 = MAX_NUMBER;\n      var top_1 = MAX_NUMBER;\n      var right_1 = -MAX_NUMBER;\n      var bottom_1 = -MAX_NUMBER;\n      var canvasList_1 = [];\n      var dpr_1 = opts && opts.pixelRatio || 1;\n      zrUtil.each(instances, function (chart, id) {\n        if (chart.group === groupId) {\n          var canvas = isSvg ? chart.getZr().painter.getSvgDom().innerHTML : chart.getRenderedCanvas(zrUtil.clone(opts));\n          var boundingRect = chart.getDom().getBoundingClientRect();\n          left_1 = mathMin(boundingRect.left, left_1);\n          top_1 = mathMin(boundingRect.top, top_1);\n          right_1 = mathMax(boundingRect.right, right_1);\n          bottom_1 = mathMax(boundingRect.bottom, bottom_1);\n          canvasList_1.push({\n            dom: canvas,\n            left: boundingRect.left,\n            top: boundingRect.top\n          });\n        }\n      });\n      left_1 *= dpr_1;\n      top_1 *= dpr_1;\n      right_1 *= dpr_1;\n      bottom_1 *= dpr_1;\n      var width = right_1 - left_1;\n      var height = bottom_1 - top_1;\n      var targetCanvas = zrUtil.createCanvas();\n      var zr_1 = zrender.init(targetCanvas, {\n        renderer: isSvg ? 'svg' : 'canvas'\n      });\n      zr_1.resize({\n        width: width,\n        height: height\n      });\n\n      if (isSvg) {\n        var content_1 = '';\n        each(canvasList_1, function (item) {\n          var x = item.left - left_1;\n          var y = item.top - top_1;\n          content_1 += '<g transform=\"translate(' + x + ',' + y + ')\">' + item.dom + '</g>';\n        });\n        zr_1.painter.getSvgRoot().innerHTML = content_1;\n\n        if (opts.connectedBackgroundColor) {\n          zr_1.painter.setBackgroundColor(opts.connectedBackgroundColor);\n        }\n\n        zr_1.refreshImmediately();\n        return zr_1.painter.toDataURL();\n      } else {\n        if (opts.connectedBackgroundColor) {\n          zr_1.add(new graphic.Rect({\n            shape: {\n              x: 0,\n              y: 0,\n              width: width,\n              height: height\n            },\n            style: {\n              fill: opts.connectedBackgroundColor\n            }\n          }));\n        }\n\n        each(canvasList_1, function (item) {\n          var img = new graphic.Image({\n            style: {\n              x: item.left * dpr_1 - left_1,\n              y: item.top * dpr_1 - top_1,\n              image: item.dom\n            }\n          });\n          zr_1.add(img);\n        });\n        zr_1.refreshImmediately();\n        return targetCanvas.toDataURL('image/' + (opts && opts.type || 'png'));\n      }\n    } else {\n      return this.getDataURL(opts);\n    }\n  };\n\n  ECharts.prototype.convertToPixel = function (finder, value) {\n    return doConvertPixel(this, 'convertToPixel', finder, value);\n  };\n\n  ECharts.prototype.convertFromPixel = function (finder, value) {\n    return doConvertPixel(this, 'convertFromPixel', finder, value);\n  };\n\n  ECharts.prototype.containPixel = function (finder, value) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    var ecModel = this._model;\n    var result;\n    var findResult = modelUtil.parseFinder(ecModel, finder);\n    zrUtil.each(findResult, function (models, key) {\n      key.indexOf('Models') >= 0 && zrUtil.each(models, function (model) {\n        var coordSys = model.coordinateSystem;\n\n        if (coordSys && coordSys.containPoint) {\n          result = result || !!coordSys.containPoint(value);\n        } else if (key === 'seriesModels') {\n          var view = this._chartsMap[model.__viewId];\n\n          if (view && view.containPoint) {\n            result = result || view.containPoint(value, model);\n          } else {\n            if (process.env.NODE_ENV !== 'production') {\n              console.warn(key + ': ' + (view ? 'The found component do not support containPoint.' : 'No view mapping to the found component.'));\n            }\n          }\n        } else {\n          if (process.env.NODE_ENV !== 'production') {\n            console.warn(key + ': containPoint is not supported');\n          }\n        }\n      }, this);\n    }, this);\n    return !!result;\n  };\n\n  ECharts.prototype.getVisual = function (finder, visualType) {\n    var ecModel = this._model;\n    var parsedFinder = modelUtil.parseFinder(ecModel, finder, {\n      defaultMainType: 'series'\n    });\n    var seriesModel = parsedFinder.seriesModel;\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!seriesModel) {\n        console.warn('There is no specified seires model');\n      }\n    }\n\n    var data = seriesModel.getData();\n    var dataIndexInside = parsedFinder.hasOwnProperty('dataIndexInside') ? parsedFinder.dataIndexInside : parsedFinder.hasOwnProperty('dataIndex') ? data.indexOfRawIndex(parsedFinder.dataIndex) : null;\n    return dataIndexInside != null ? getItemVisualFromData(data, dataIndexInside, visualType) : getVisualFromData(data, visualType);\n  };\n\n  ECharts.prototype.getViewOfComponentModel = function (componentModel) {\n    return this._componentsMap[componentModel.__viewId];\n  };\n\n  ECharts.prototype.getViewOfSeriesModel = function (seriesModel) {\n    return this._chartsMap[seriesModel.__viewId];\n  };\n\n  ECharts.prototype._initEvents = function () {\n    var _this = this;\n\n    each(MOUSE_EVENT_NAMES, function (eveName) {\n      var handler = function (e) {\n        var ecModel = _this.getModel();\n\n        var el = e.target;\n        var params;\n        var isGlobalOut = eveName === 'globalout';\n\n        if (isGlobalOut) {\n          params = {};\n        } else {\n          el && findEventDispatcher(el, function (parent) {\n            var ecData = getECData(parent);\n\n            if (ecData && ecData.dataIndex != null) {\n              var dataModel = ecData.dataModel || ecModel.getSeriesByIndex(ecData.seriesIndex);\n              params = dataModel && dataModel.getDataParams(ecData.dataIndex, ecData.dataType) || {};\n              return true;\n            } else if (ecData.eventData) {\n              params = zrUtil.extend({}, ecData.eventData);\n              return true;\n            }\n          }, true);\n        }\n\n        if (params) {\n          var componentType = params.componentType;\n          var componentIndex = params.componentIndex;\n\n          if (componentType === 'markLine' || componentType === 'markPoint' || componentType === 'markArea') {\n            componentType = 'series';\n            componentIndex = params.seriesIndex;\n          }\n\n          var model = componentType && componentIndex != null && ecModel.getComponent(componentType, componentIndex);\n          var view = model && _this[model.mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId];\n\n          if (process.env.NODE_ENV !== 'production') {\n            if (!isGlobalOut && !(model && view)) {\n              console.warn('model or view can not be found by params');\n            }\n          }\n\n          params.event = e;\n          params.type = eveName;\n          _this._$eventProcessor.eventInfo = {\n            targetEl: el,\n            packedEvent: params,\n            model: model,\n            view: view\n          };\n\n          _this.trigger(eveName, params);\n        }\n      };\n\n      handler.zrEventfulCallAtLast = true;\n\n      _this._zr.on(eveName, handler, _this);\n    });\n    each(eventActionMap, function (actionType, eventType) {\n      _this._messageCenter.on(eventType, function (event) {\n        this.trigger(eventType, event);\n      }, _this);\n    });\n    each(['selectchanged'], function (eventType) {\n      _this._messageCenter.on(eventType, function (event) {\n        this.trigger(eventType, event);\n      }, _this);\n    });\n    handleLegacySelectEvents(this._messageCenter, this, this._api);\n  };\n\n  ECharts.prototype.isDisposed = function () {\n    return this._disposed;\n  };\n\n  ECharts.prototype.clear = function () {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    this.setOption({\n      series: []\n    }, true);\n  };\n\n  ECharts.prototype.dispose = function () {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    this._disposed = true;\n    modelUtil.setAttribute(this.getDom(), DOM_ATTRIBUTE_KEY, '');\n    var api = this._api;\n    var ecModel = this._model;\n    each(this._componentsViews, function (component) {\n      component.dispose(ecModel, api);\n    });\n    each(this._chartsViews, function (chart) {\n      chart.dispose(ecModel, api);\n    });\n\n    this._zr.dispose();\n\n    delete instances[this.id];\n  };\n\n  ECharts.prototype.resize = function (opts) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!this[IN_MAIN_PROCESS_KEY], '`resize` should not be called during main process.');\n    }\n\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    this._zr.resize(opts);\n\n    var ecModel = this._model;\n    this._loadingFX && this._loadingFX.resize();\n\n    if (!ecModel) {\n      return;\n    }\n\n    var optionChanged = ecModel.resetOption('media');\n    var silent = opts && opts.silent;\n    this[IN_MAIN_PROCESS_KEY] = true;\n    optionChanged && prepare(this);\n    updateMethods.update.call(this, {\n      type: 'resize',\n      animation: {\n        duration: 0\n      }\n    });\n    this[IN_MAIN_PROCESS_KEY] = false;\n    flushPendingActions.call(this, silent);\n    triggerUpdatedEvent.call(this, silent);\n  };\n\n  ECharts.prototype.showLoading = function (name, cfg) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    if (isObject(name)) {\n      cfg = name;\n      name = '';\n    }\n\n    name = name || 'default';\n    this.hideLoading();\n\n    if (!loadingEffects[name]) {\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn('Loading effects ' + name + ' not exists.');\n      }\n\n      return;\n    }\n\n    var el = loadingEffects[name](this._api, cfg);\n    var zr = this._zr;\n    this._loadingFX = el;\n    zr.add(el);\n  };\n\n  ECharts.prototype.hideLoading = function () {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    this._loadingFX && this._zr.remove(this._loadingFX);\n    this._loadingFX = null;\n  };\n\n  ECharts.prototype.makeActionFromEvent = function (eventObj) {\n    var payload = zrUtil.extend({}, eventObj);\n    payload.type = eventActionMap[eventObj.type];\n    return payload;\n  };\n\n  ECharts.prototype.dispatchAction = function (payload, opt) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    if (!isObject(opt)) {\n      opt = {\n        silent: !!opt\n      };\n    }\n\n    if (!actions[payload.type]) {\n      return;\n    }\n\n    if (!this._model) {\n      return;\n    }\n\n    if (this[IN_MAIN_PROCESS_KEY]) {\n      this._pendingActions.push(payload);\n\n      return;\n    }\n\n    var silent = opt.silent;\n    doDispatchAction.call(this, payload, silent);\n    var flush = opt.flush;\n\n    if (flush) {\n      this._zr.flush();\n    } else if (flush !== false && env.browser.weChat) {\n      this._throttledZrFlush();\n    }\n\n    flushPendingActions.call(this, silent);\n    triggerUpdatedEvent.call(this, silent);\n  };\n\n  ECharts.prototype.updateLabelLayout = function () {\n    var labelManager = this._labelManager;\n    labelManager.updateLayoutConfig(this._api);\n    labelManager.layout(this._api);\n    labelManager.processLabelsOverall();\n  };\n\n  ECharts.prototype.appendData = function (params) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    var seriesIndex = params.seriesIndex;\n    var ecModel = this.getModel();\n    var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(params.data && seriesModel);\n    }\n\n    seriesModel.appendData(params);\n    this._scheduler.unfinished = true;\n    this.getZr().wakeUp();\n  };\n\n  ECharts.internalField = function () {\n    prepare = function (ecIns) {\n      var scheduler = ecIns._scheduler;\n      scheduler.restorePipelines(ecIns._model);\n      scheduler.prepareStageTasks();\n      prepareView(ecIns, true);\n      prepareView(ecIns, false);\n      scheduler.plan();\n    };\n\n    prepareView = function (ecIns, isComponent) {\n      var ecModel = ecIns._model;\n      var scheduler = ecIns._scheduler;\n      var viewList = isComponent ? ecIns._componentsViews : ecIns._chartsViews;\n      var viewMap = isComponent ? ecIns._componentsMap : ecIns._chartsMap;\n      var zr = ecIns._zr;\n      var api = ecIns._api;\n\n      for (var i = 0; i < viewList.length; i++) {\n        viewList[i].__alive = false;\n      }\n\n      isComponent ? ecModel.eachComponent(function (componentType, model) {\n        componentType !== 'series' && doPrepare(model);\n      }) : ecModel.eachSeries(doPrepare);\n\n      function doPrepare(model) {\n        var requireNewView = model.__requireNewView;\n        model.__requireNewView = false;\n        var viewId = '_ec_' + model.id + '_' + model.type;\n        var view = !requireNewView && viewMap[viewId];\n\n        if (!view) {\n          var classType = parseClassType(model.type);\n          var Clazz = isComponent ? ComponentView.getClass(classType.main, classType.sub) : ChartView.getClass(classType.sub);\n\n          if (process.env.NODE_ENV !== 'production') {\n            assert(Clazz, classType.sub + ' does not exist.');\n          }\n\n          view = new Clazz();\n          view.init(ecModel, api);\n          viewMap[viewId] = view;\n          viewList.push(view);\n          zr.add(view.group);\n        }\n\n        model.__viewId = view.__id = viewId;\n        view.__alive = true;\n        view.__model = model;\n        view.group.__ecComponentInfo = {\n          mainType: model.mainType,\n          index: model.componentIndex\n        };\n        !isComponent && scheduler.prepareView(view, model, ecModel, api);\n      }\n\n      for (var i = 0; i < viewList.length;) {\n        var view = viewList[i];\n\n        if (!view.__alive) {\n          !isComponent && view.renderTask.dispose();\n          zr.remove(view.group);\n          view.dispose(ecModel, api);\n          viewList.splice(i, 1);\n\n          if (viewMap[view.__id] === view) {\n            delete viewMap[view.__id];\n          }\n\n          view.__id = view.group.__ecComponentInfo = null;\n        } else {\n          i++;\n        }\n      }\n    };\n\n    updateDirectly = function (ecIns, method, payload, mainType, subType) {\n      var ecModel = ecIns._model;\n      ecModel.setUpdatePayload(payload);\n\n      if (!mainType) {\n        each([].concat(ecIns._componentsViews).concat(ecIns._chartsViews), callView);\n        return;\n      }\n\n      var query = {};\n      query[mainType + 'Id'] = payload[mainType + 'Id'];\n      query[mainType + 'Index'] = payload[mainType + 'Index'];\n      query[mainType + 'Name'] = payload[mainType + 'Name'];\n      var condition = {\n        mainType: mainType,\n        query: query\n      };\n      subType && (condition.subType = subType);\n      var excludeSeriesId = payload.excludeSeriesId;\n      var excludeSeriesIdMap;\n\n      if (excludeSeriesId != null) {\n        excludeSeriesIdMap = zrUtil.createHashMap();\n        each(modelUtil.normalizeToArray(excludeSeriesId), function (id) {\n          var modelId = modelUtil.convertOptionIdName(id, null);\n\n          if (modelId != null) {\n            excludeSeriesIdMap.set(modelId, true);\n          }\n        });\n      }\n\n      ecModel && ecModel.eachComponent(condition, function (model) {\n        if (!excludeSeriesIdMap || excludeSeriesIdMap.get(model.id) == null) {\n          if (isHighDownPayload(payload) && !payload.notBlur) {\n            if (model instanceof SeriesModel) {\n              toggleSeriesBlurStateFromPayload(model, payload, ecIns._api);\n            }\n          } else if (isSelectChangePayload(payload)) {\n            if (model instanceof SeriesModel) {\n              toggleSelectionFromPayload(model, payload, ecIns._api);\n              updateSeriesElementSelection(model);\n              markStatusToUpdate(ecIns);\n            }\n          }\n\n          callView(ecIns[mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId]);\n        }\n      }, ecIns);\n\n      function callView(view) {\n        view && view.__alive && view[method] && view[method](view.__model, ecModel, ecIns._api, payload);\n      }\n    };\n\n    updateMethods = {\n      prepareAndUpdate: function (payload) {\n        prepare(this);\n        updateMethods.update.call(this, payload);\n      },\n      update: function (payload) {\n        var ecModel = this._model;\n        var api = this._api;\n        var zr = this._zr;\n        var coordSysMgr = this._coordSysMgr;\n        var scheduler = this._scheduler;\n\n        if (!ecModel) {\n          return;\n        }\n\n        ecModel.setUpdatePayload(payload);\n        scheduler.restoreData(ecModel, payload);\n        scheduler.performSeriesTasks(ecModel);\n        coordSysMgr.create(ecModel, api);\n        scheduler.performDataProcessorTasks(ecModel, payload);\n        updateStreamModes(this, ecModel);\n        coordSysMgr.update(ecModel, api);\n        clearColorPalette(ecModel);\n        scheduler.performVisualTasks(ecModel, payload);\n        render(this, ecModel, api, payload);\n        var backgroundColor = ecModel.get('backgroundColor') || 'transparent';\n        var darkMode = ecModel.get('darkMode');\n\n        if (!env.canvasSupported) {\n          var colorArr = colorTool.parse(backgroundColor);\n          backgroundColor = colorTool.stringify(colorArr, 'rgb');\n\n          if (colorArr[3] === 0) {\n            backgroundColor = 'transparent';\n          }\n        } else {\n          zr.setBackgroundColor(backgroundColor);\n\n          if (darkMode != null && darkMode !== 'auto') {\n            zr.setDarkMode(darkMode);\n          }\n        }\n\n        performPostUpdateFuncs(ecModel, api);\n      },\n      updateTransform: function (payload) {\n        var _this = this;\n\n        var ecModel = this._model;\n        var api = this._api;\n\n        if (!ecModel) {\n          return;\n        }\n\n        ecModel.setUpdatePayload(payload);\n        var componentDirtyList = [];\n        ecModel.eachComponent(function (componentType, componentModel) {\n          if (componentType === 'series') {\n            return;\n          }\n\n          var componentView = _this.getViewOfComponentModel(componentModel);\n\n          if (componentView && componentView.__alive) {\n            if (componentView.updateTransform) {\n              var result = componentView.updateTransform(componentModel, ecModel, api, payload);\n              result && result.update && componentDirtyList.push(componentView);\n            } else {\n              componentDirtyList.push(componentView);\n            }\n          }\n        });\n        var seriesDirtyMap = zrUtil.createHashMap();\n        ecModel.eachSeries(function (seriesModel) {\n          var chartView = _this._chartsMap[seriesModel.__viewId];\n\n          if (chartView.updateTransform) {\n            var result = chartView.updateTransform(seriesModel, ecModel, api, payload);\n            result && result.update && seriesDirtyMap.set(seriesModel.uid, 1);\n          } else {\n            seriesDirtyMap.set(seriesModel.uid, 1);\n          }\n        });\n        clearColorPalette(ecModel);\n\n        this._scheduler.performVisualTasks(ecModel, payload, {\n          setDirty: true,\n          dirtyMap: seriesDirtyMap\n        });\n\n        renderSeries(this, ecModel, api, payload, seriesDirtyMap);\n        performPostUpdateFuncs(ecModel, this._api);\n      },\n      updateView: function (payload) {\n        var ecModel = this._model;\n\n        if (!ecModel) {\n          return;\n        }\n\n        ecModel.setUpdatePayload(payload);\n        ChartView.markUpdateMethod(payload, 'updateView');\n        clearColorPalette(ecModel);\n\n        this._scheduler.performVisualTasks(ecModel, payload, {\n          setDirty: true\n        });\n\n        render(this, this._model, this._api, payload);\n        performPostUpdateFuncs(ecModel, this._api);\n      },\n      updateVisual: function (payload) {\n        var _this = this;\n\n        var ecModel = this._model;\n\n        if (!ecModel) {\n          return;\n        }\n\n        ecModel.setUpdatePayload(payload);\n        ecModel.eachSeries(function (seriesModel) {\n          seriesModel.getData().clearAllVisual();\n        });\n        ChartView.markUpdateMethod(payload, 'updateVisual');\n        clearColorPalette(ecModel);\n\n        this._scheduler.performVisualTasks(ecModel, payload, {\n          visualType: 'visual',\n          setDirty: true\n        });\n\n        ecModel.eachComponent(function (componentType, componentModel) {\n          if (componentType !== 'series') {\n            var componentView = _this.getViewOfComponentModel(componentModel);\n\n            componentView && componentView.__alive && componentView.updateVisual(componentModel, ecModel, _this._api, payload);\n          }\n        });\n        ecModel.eachSeries(function (seriesModel) {\n          var chartView = _this._chartsMap[seriesModel.__viewId];\n          chartView.updateVisual(seriesModel, ecModel, _this._api, payload);\n        });\n        performPostUpdateFuncs(ecModel, this._api);\n      },\n      updateLayout: function (payload) {\n        updateMethods.update.call(this, payload);\n      }\n    };\n\n    doConvertPixel = function (ecIns, methodName, finder, value) {\n      if (ecIns._disposed) {\n        disposedWarning(ecIns.id);\n        return;\n      }\n\n      var ecModel = ecIns._model;\n\n      var coordSysList = ecIns._coordSysMgr.getCoordinateSystems();\n\n      var result;\n      var parsedFinder = modelUtil.parseFinder(ecModel, finder);\n\n      for (var i = 0; i < coordSysList.length; i++) {\n        var coordSys = coordSysList[i];\n\n        if (coordSys[methodName] && (result = coordSys[methodName](ecModel, parsedFinder, value)) != null) {\n          return result;\n        }\n      }\n\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn('No coordinate system that supports ' + methodName + ' found by the given finder.');\n      }\n    };\n\n    updateStreamModes = function (ecIns, ecModel) {\n      var chartsMap = ecIns._chartsMap;\n      var scheduler = ecIns._scheduler;\n      ecModel.eachSeries(function (seriesModel) {\n        scheduler.updateStreamModes(seriesModel, chartsMap[seriesModel.__viewId]);\n      });\n    };\n\n    doDispatchAction = function (payload, silent) {\n      var _this = this;\n\n      var ecModel = this.getModel();\n      var payloadType = payload.type;\n      var escapeConnect = payload.escapeConnect;\n      var actionWrap = actions[payloadType];\n      var actionInfo = actionWrap.actionInfo;\n      var cptTypeTmp = (actionInfo.update || 'update').split(':');\n      var updateMethod = cptTypeTmp.pop();\n      var cptType = cptTypeTmp[0] != null && parseClassType(cptTypeTmp[0]);\n      this[IN_MAIN_PROCESS_KEY] = true;\n      var payloads = [payload];\n      var batched = false;\n\n      if (payload.batch) {\n        batched = true;\n        payloads = zrUtil.map(payload.batch, function (item) {\n          item = zrUtil.defaults(zrUtil.extend({}, item), payload);\n          item.batch = null;\n          return item;\n        });\n      }\n\n      var eventObjBatch = [];\n      var eventObj;\n      var isSelectChange = isSelectChangePayload(payload);\n      var isStatusChange = isHighDownPayload(payload) || isSelectChange;\n      each(payloads, function (batchItem) {\n        eventObj = actionWrap.action(batchItem, _this._model, _this._api);\n        eventObj = eventObj || zrUtil.extend({}, batchItem);\n        eventObj.type = actionInfo.event || eventObj.type;\n        eventObjBatch.push(eventObj);\n\n        if (isStatusChange) {\n          updateDirectly(_this, updateMethod, batchItem, 'series');\n          markStatusToUpdate(_this);\n        } else if (cptType) {\n          updateDirectly(_this, updateMethod, batchItem, cptType.main, cptType.sub);\n        }\n      });\n\n      if (updateMethod !== 'none' && !isStatusChange && !cptType) {\n        if (this[OPTION_UPDATED_KEY]) {\n          prepare(this);\n          updateMethods.update.call(this, payload);\n          this[OPTION_UPDATED_KEY] = false;\n        } else {\n          updateMethods[updateMethod].call(this, payload);\n        }\n      }\n\n      if (batched) {\n        eventObj = {\n          type: actionInfo.event || payloadType,\n          escapeConnect: escapeConnect,\n          batch: eventObjBatch\n        };\n      } else {\n        eventObj = eventObjBatch[0];\n      }\n\n      this[IN_MAIN_PROCESS_KEY] = false;\n\n      if (!silent) {\n        var messageCenter = this._messageCenter;\n        messageCenter.trigger(eventObj.type, eventObj);\n\n        if (isSelectChange) {\n          var newObj = {\n            type: 'selectchanged',\n            escapeConnect: escapeConnect,\n            selected: getAllSelectedIndices(ecModel),\n            isFromClick: payload.isFromClick || false,\n            fromAction: payload.type,\n            fromActionPayload: payload\n          };\n          messageCenter.trigger(newObj.type, newObj);\n        }\n      }\n    };\n\n    flushPendingActions = function (silent) {\n      var pendingActions = this._pendingActions;\n\n      while (pendingActions.length) {\n        var payload = pendingActions.shift();\n        doDispatchAction.call(this, payload, silent);\n      }\n    };\n\n    triggerUpdatedEvent = function (silent) {\n      !silent && this.trigger('updated');\n    };\n\n    bindRenderedEvent = function (zr, ecIns) {\n      zr.on('rendered', function (params) {\n        ecIns.trigger('rendered', params);\n\n        if (zr.animation.isFinished() && !ecIns[OPTION_UPDATED_KEY] && !ecIns._scheduler.unfinished && !ecIns._pendingActions.length) {\n          ecIns.trigger('finished');\n        }\n      });\n    };\n\n    bindMouseEvent = function (zr, ecIns) {\n      zr.on('mouseover', function (e) {\n        var el = e.target;\n        var dispatcher = findEventDispatcher(el, isHighDownDispatcher);\n\n        if (dispatcher) {\n          var ecData = getECData(dispatcher);\n          toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns._api, true);\n          enterEmphasisWhenMouseOver(dispatcher, e);\n          markStatusToUpdate(ecIns);\n        }\n      }).on('mouseout', function (e) {\n        var el = e.target;\n        var dispatcher = findEventDispatcher(el, isHighDownDispatcher);\n\n        if (dispatcher) {\n          var ecData = getECData(dispatcher);\n          toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns._api, false);\n          leaveEmphasisWhenMouseOut(dispatcher, e);\n          markStatusToUpdate(ecIns);\n        }\n      }).on('click', function (e) {\n        var el = e.target;\n        var dispatcher = findEventDispatcher(el, function (target) {\n          return getECData(target).dataIndex != null;\n        }, true);\n\n        if (dispatcher) {\n          var actionType = dispatcher.selected ? 'unselect' : 'select';\n          var ecData = getECData(dispatcher);\n\n          ecIns._api.dispatchAction({\n            type: actionType,\n            dataType: ecData.dataType,\n            dataIndexInside: ecData.dataIndex,\n            seriesIndex: ecData.seriesIndex,\n            isFromClick: true\n          });\n        }\n      });\n    };\n\n    clearColorPalette = function (ecModel) {\n      ecModel.clearColorPalette();\n      ecModel.eachSeries(function (seriesModel) {\n        seriesModel.clearColorPalette();\n      });\n    };\n\n    render = function (ecIns, ecModel, api, payload) {\n      renderComponents(ecIns, ecModel, api, payload);\n      each(ecIns._chartsViews, function (chart) {\n        chart.__alive = false;\n      });\n      renderSeries(ecIns, ecModel, api, payload);\n      each(ecIns._chartsViews, function (chart) {\n        if (!chart.__alive) {\n          chart.remove(ecModel, api);\n        }\n      });\n    };\n\n    renderComponents = function (ecIns, ecModel, api, payload, dirtyList) {\n      each(dirtyList || ecIns._componentsViews, function (componentView) {\n        var componentModel = componentView.__model;\n        clearStates(componentModel, componentView);\n        componentView.render(componentModel, ecModel, api, payload);\n        updateZ(componentModel, componentView);\n        updateStates(componentModel, componentView);\n      });\n    };\n\n    renderSeries = function (ecIns, ecModel, api, payload, dirtyMap) {\n      var scheduler = ecIns._scheduler;\n      var labelManager = ecIns._labelManager;\n      labelManager.clearLabels();\n      var unfinished = false;\n      ecModel.eachSeries(function (seriesModel) {\n        var chartView = ecIns._chartsMap[seriesModel.__viewId];\n        chartView.__alive = true;\n        var renderTask = chartView.renderTask;\n        scheduler.updatePayload(renderTask, payload);\n        clearStates(seriesModel, chartView);\n\n        if (dirtyMap && dirtyMap.get(seriesModel.uid)) {\n          renderTask.dirty();\n        }\n\n        if (renderTask.perform(scheduler.getPerformArgs(renderTask))) {\n          unfinished = true;\n        }\n\n        seriesModel.__transientTransitionOpt = null;\n        chartView.group.silent = !!seriesModel.get('silent');\n        updateBlend(seriesModel, chartView);\n        updateSeriesElementSelection(seriesModel);\n        labelManager.addLabelsOfSeries(chartView);\n      });\n      scheduler.unfinished = unfinished || scheduler.unfinished;\n      labelManager.updateLayoutConfig(api);\n      labelManager.layout(api);\n      labelManager.processLabelsOverall();\n      ecModel.eachSeries(function (seriesModel) {\n        var chartView = ecIns._chartsMap[seriesModel.__viewId];\n        updateZ(seriesModel, chartView);\n        updateStates(seriesModel, chartView);\n      });\n      updateHoverLayerStatus(ecIns, ecModel);\n    };\n\n    performPostUpdateFuncs = function (ecModel, api) {\n      each(postUpdateFuncs, function (func) {\n        func(ecModel, api);\n      });\n    };\n\n    markStatusToUpdate = function (ecIns) {\n      ecIns[STATUS_NEEDS_UPDATE_KEY] = true;\n      ecIns.getZr().wakeUp();\n    };\n\n    applyChangedStates = function (ecIns) {\n      if (!ecIns[STATUS_NEEDS_UPDATE_KEY]) {\n        return;\n      }\n\n      ecIns.getZr().storage.traverse(function (el) {\n        if (graphic.isElementRemoved(el)) {\n          return;\n        }\n\n        applyElementStates(el);\n      });\n      ecIns[STATUS_NEEDS_UPDATE_KEY] = false;\n    };\n\n    function applyElementStates(el) {\n      var newStates = [];\n      var oldStates = el.currentStates;\n\n      for (var i = 0; i < oldStates.length; i++) {\n        var stateName = oldStates[i];\n\n        if (!(stateName === 'emphasis' || stateName === 'blur' || stateName === 'select')) {\n          newStates.push(stateName);\n        }\n      }\n\n      if (el.selected && el.states.select) {\n        newStates.push('select');\n      }\n\n      if (el.hoverState === HOVER_STATE_EMPHASIS && el.states.emphasis) {\n        newStates.push('emphasis');\n      } else if (el.hoverState === HOVER_STATE_BLUR && el.states.blur) {\n        newStates.push('blur');\n      }\n\n      el.useStates(newStates);\n    }\n\n    function updateHoverLayerStatus(ecIns, ecModel) {\n      var zr = ecIns._zr;\n      var storage = zr.storage;\n      var elCount = 0;\n      storage.traverse(function (el) {\n        if (!el.isGroup) {\n          elCount++;\n        }\n      });\n\n      if (elCount > ecModel.get('hoverLayerThreshold') && !env.node && !env.worker) {\n        ecModel.eachSeries(function (seriesModel) {\n          if (seriesModel.preventUsingHoverLayer) {\n            return;\n          }\n\n          var chartView = ecIns._chartsMap[seriesModel.__viewId];\n\n          if (chartView.__alive) {\n            chartView.group.traverse(function (el) {\n              if (el.states.emphasis) {\n                el.states.emphasis.hoverLayer = true;\n              }\n            });\n          }\n        });\n      }\n    }\n\n    ;\n\n    function updateBlend(seriesModel, chartView) {\n      var blendMode = seriesModel.get('blendMode') || null;\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (!env.canvasSupported && blendMode && blendMode !== 'source-over') {\n          console.warn('Only canvas support blendMode');\n        }\n      }\n\n      chartView.group.traverse(function (el) {\n        if (!el.isGroup) {\n          el.style.blend = blendMode;\n        }\n\n        if (el.eachPendingDisplayable) {\n          el.eachPendingDisplayable(function (displayable) {\n            displayable.style.blend = blendMode;\n          });\n        }\n      });\n    }\n\n    ;\n\n    function updateZ(model, view) {\n      if (model.preventAutoZ) {\n        return;\n      }\n\n      var z = model.get('z');\n      var zlevel = model.get('zlevel');\n      view.group.traverse(function (el) {\n        if (!el.isGroup) {\n          z != null && (el.z = z);\n          zlevel != null && (el.zlevel = zlevel);\n          var label = el.getTextContent();\n          var labelLine = el.getTextGuideLine();\n\n          if (label) {\n            label.z = el.z;\n            label.zlevel = el.zlevel;\n            label.z2 = el.z2 + 2;\n          }\n\n          if (labelLine) {\n            var showAbove = el.textGuideLineConfig && el.textGuideLineConfig.showAbove;\n            labelLine.z = el.z;\n            labelLine.zlevel = el.zlevel;\n            labelLine.z2 = el.z2 + (showAbove ? 1 : -1);\n          }\n        }\n      });\n    }\n\n    ;\n\n    function clearStates(model, view) {\n      view.group.traverse(function (el) {\n        if (graphic.isElementRemoved(el)) {\n          return;\n        }\n\n        var textContent = el.getTextContent();\n        var textGuide = el.getTextGuideLine();\n\n        if (el.stateTransition) {\n          el.stateTransition = null;\n        }\n\n        if (textContent && textContent.stateTransition) {\n          textContent.stateTransition = null;\n        }\n\n        if (textGuide && textGuide.stateTransition) {\n          textGuide.stateTransition = null;\n        }\n\n        if (el.hasState()) {\n          el.prevStates = el.currentStates;\n          el.clearStates();\n        } else if (el.prevStates) {\n          el.prevStates = null;\n        }\n      });\n    }\n\n    function updateStates(model, view) {\n      var stateAnimationModel = model.getModel('stateAnimation');\n      var enableAnimation = model.isAnimationEnabled();\n      var duration = stateAnimationModel.get('duration');\n      var stateTransition = duration > 0 ? {\n        duration: duration,\n        delay: stateAnimationModel.get('delay'),\n        easing: stateAnimationModel.get('easing')\n      } : null;\n      view.group.traverse(function (el) {\n        if (el.states && el.states.emphasis) {\n          if (graphic.isElementRemoved(el)) {\n            return;\n          }\n\n          if (el instanceof graphic.Path) {\n            savePathStates(el);\n          }\n\n          if (el.__dirty) {\n            var prevStates = el.prevStates;\n\n            if (prevStates) {\n              el.useStates(prevStates);\n            }\n          }\n\n          if (enableAnimation) {\n            el.stateTransition = stateTransition;\n            var textContent = el.getTextContent();\n            var textGuide = el.getTextGuideLine();\n\n            if (textContent) {\n              textContent.stateTransition = stateTransition;\n            }\n\n            if (textGuide) {\n              textGuide.stateTransition = stateTransition;\n            }\n          }\n\n          if (el.__dirty) {\n            applyElementStates(el);\n          }\n        }\n      });\n    }\n\n    ;\n\n    createExtensionAPI = function (ecIns) {\n      return new (function (_super) {\n        __extends(class_1, _super);\n\n        function class_1() {\n          return _super !== null && _super.apply(this, arguments) || this;\n        }\n\n        class_1.prototype.getCoordinateSystems = function () {\n          return ecIns._coordSysMgr.getCoordinateSystems();\n        };\n\n        class_1.prototype.getComponentByElement = function (el) {\n          while (el) {\n            var modelInfo = el.__ecComponentInfo;\n\n            if (modelInfo != null) {\n              return ecIns._model.getComponent(modelInfo.mainType, modelInfo.index);\n            }\n\n            el = el.parent;\n          }\n        };\n\n        class_1.prototype.enterEmphasis = function (el, highlightDigit) {\n          enterEmphasis(el, highlightDigit);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.leaveEmphasis = function (el, highlightDigit) {\n          leaveEmphasis(el, highlightDigit);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.enterBlur = function (el) {\n          enterBlur(el);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.leaveBlur = function (el) {\n          leaveBlur(el);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.enterSelect = function (el) {\n          enterSelect(el);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.leaveSelect = function (el) {\n          leaveSelect(el);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.getModel = function () {\n          return ecIns.getModel();\n        };\n\n        class_1.prototype.getViewOfComponentModel = function (componentModel) {\n          return ecIns.getViewOfComponentModel(componentModel);\n        };\n\n        class_1.prototype.getViewOfSeriesModel = function (seriesModel) {\n          return ecIns.getViewOfSeriesModel(seriesModel);\n        };\n\n        return class_1;\n      }(ExtensionAPI))(ecIns);\n    };\n\n    enableConnect = function (chart) {\n      function updateConnectedChartsStatus(charts, status) {\n        for (var i = 0; i < charts.length; i++) {\n          var otherChart = charts[i];\n          otherChart[CONNECT_STATUS_KEY] = status;\n        }\n      }\n\n      each(eventActionMap, function (actionType, eventType) {\n        chart._messageCenter.on(eventType, function (event) {\n          if (connectedGroups[chart.group] && chart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_PENDING) {\n            if (event && event.escapeConnect) {\n              return;\n            }\n\n            var action_1 = chart.makeActionFromEvent(event);\n            var otherCharts_1 = [];\n            each(instances, function (otherChart) {\n              if (otherChart !== chart && otherChart.group === chart.group) {\n                otherCharts_1.push(otherChart);\n              }\n            });\n            updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_PENDING);\n            each(otherCharts_1, function (otherChart) {\n              if (otherChart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_UPDATING) {\n                otherChart.dispatchAction(action_1);\n              }\n            });\n            updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_UPDATED);\n          }\n        });\n      });\n    };\n\n    setTransitionOpt = function (chart, transitionOpt) {\n      var ecModel = chart._model;\n      zrUtil.each(modelUtil.normalizeToArray(transitionOpt), function (transOpt) {\n        var errMsg;\n        var fromOpt = transOpt.from;\n        var toOpt = transOpt.to;\n\n        if (toOpt == null) {\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg = '`transition.to` must be specified.';\n          }\n\n          throwError(errMsg);\n        }\n\n        var finderOpt = {\n          includeMainTypes: ['series'],\n          enableAll: false,\n          enableNone: false\n        };\n        var fromResult = fromOpt ? modelUtil.parseFinder(ecModel, fromOpt, finderOpt) : null;\n        var toResult = modelUtil.parseFinder(ecModel, toOpt, finderOpt);\n        var toSeries = toResult.seriesModel;\n\n        if (toSeries == null) {\n          errMsg = '';\n\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg = '`transition` is only supported on series.';\n          }\n        }\n\n        if (fromResult && fromResult.seriesModel !== toSeries) {\n          errMsg = '';\n\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg = '`transition.from` and `transition.to` must be specified to the same series.';\n          }\n        }\n\n        if (errMsg != null) {\n          throwError(errMsg);\n        }\n\n        toSeries.__transientTransitionOpt = {\n          from: fromOpt ? fromOpt.dimension : null,\n          to: toOpt.dimension,\n          dividingMethod: transOpt.dividingMethod\n        };\n      });\n    };\n  }();\n\n  return ECharts;\n}(Eventful);\n\nvar echartsProto = ECharts.prototype;\nechartsProto.on = createRegisterEventWithLowercaseECharts('on');\nechartsProto.off = createRegisterEventWithLowercaseECharts('off');\n\nechartsProto.one = function (eventName, cb, ctx) {\n  var self = this;\n  deprecateLog('ECharts#one is deprecated.');\n\n  function wrapped() {\n    var args2 = [];\n\n    for (var _i = 0; _i < arguments.length; _i++) {\n      args2[_i] = arguments[_i];\n    }\n\n    cb && cb.apply && cb.apply(this, args2);\n    self.off(eventName, wrapped);\n  }\n\n  ;\n  this.on.call(this, eventName, wrapped, ctx);\n};\n\nvar MOUSE_EVENT_NAMES = ['click', 'dblclick', 'mouseover', 'mouseout', 'mousemove', 'mousedown', 'mouseup', 'globalout', 'contextmenu'];\n\nfunction disposedWarning(id) {\n  if (process.env.NODE_ENV !== 'production') {\n    console.warn('Instance ' + id + ' has been disposed');\n  }\n}\n\nvar actions = {};\nvar eventActionMap = {};\nvar dataProcessorFuncs = [];\nvar optionPreprocessorFuncs = [];\nvar postInitFuncs = [];\nvar postUpdateFuncs = [];\nvar visualFuncs = [];\nvar themeStorage = {};\nvar loadingEffects = {};\nvar instances = {};\nvar connectedGroups = {};\nvar idBase = +new Date() - 0;\nvar groupIdBase = +new Date() - 0;\nvar DOM_ATTRIBUTE_KEY = '_echarts_instance_';\nexport function init(dom, theme, opts) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (!dom) {\n      throw new Error('Initialize failed: invalid dom.');\n    }\n  }\n\n  var existInstance = getInstanceByDom(dom);\n\n  if (existInstance) {\n    if (process.env.NODE_ENV !== 'production') {\n      console.warn('There is a chart instance already initialized on the dom.');\n    }\n\n    return existInstance;\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (zrUtil.isDom(dom) && dom.nodeName.toUpperCase() !== 'CANVAS' && (!dom.clientWidth && (!opts || opts.width == null) || !dom.clientHeight && (!opts || opts.height == null))) {\n      console.warn('Can\\'t get DOM width or height. Please check ' + 'dom.clientWidth and dom.clientHeight. They should not be 0.' + 'For example, you may need to call this in the callback ' + 'of window.onload.');\n    }\n  }\n\n  var chart = new ECharts(dom, theme, opts);\n  chart.id = 'ec_' + idBase++;\n  instances[chart.id] = chart;\n  modelUtil.setAttribute(dom, DOM_ATTRIBUTE_KEY, chart.id);\n  enableConnect(chart);\n  each(postInitFuncs, function (postInitFunc) {\n    postInitFunc(chart);\n  });\n  return chart;\n}\nexport function connect(groupId) {\n  if (zrUtil.isArray(groupId)) {\n    var charts = groupId;\n    groupId = null;\n    each(charts, function (chart) {\n      if (chart.group != null) {\n        groupId = chart.group;\n      }\n    });\n    groupId = groupId || 'g_' + groupIdBase++;\n    each(charts, function (chart) {\n      chart.group = groupId;\n    });\n  }\n\n  connectedGroups[groupId] = true;\n  return groupId;\n}\nexport function disConnect(groupId) {\n  connectedGroups[groupId] = false;\n}\nexport var disconnect = disConnect;\nexport function dispose(chart) {\n  if (typeof chart === 'string') {\n    chart = instances[chart];\n  } else if (!(chart instanceof ECharts)) {\n    chart = getInstanceByDom(chart);\n  }\n\n  if (chart instanceof ECharts && !chart.isDisposed()) {\n    chart.dispose();\n  }\n}\nexport function getInstanceByDom(dom) {\n  return instances[modelUtil.getAttribute(dom, DOM_ATTRIBUTE_KEY)];\n}\nexport function getInstanceById(key) {\n  return instances[key];\n}\nexport function registerTheme(name, theme) {\n  themeStorage[name] = theme;\n}\nexport function registerPreprocessor(preprocessorFunc) {\n  if (indexOf(optionPreprocessorFuncs, preprocessorFunc) < 0) {\n    optionPreprocessorFuncs.push(preprocessorFunc);\n  }\n}\nexport function registerProcessor(priority, processor) {\n  normalizeRegister(dataProcessorFuncs, priority, processor, PRIORITY_PROCESSOR_DEFAULT);\n}\nexport function registerPostInit(postInitFunc) {\n  if (indexOf(postInitFuncs, postInitFunc) < 0) {\n    postInitFunc && postInitFuncs.push(postInitFunc);\n  }\n}\nexport function registerPostUpdate(postUpdateFunc) {\n  if (indexOf(postUpdateFuncs, postUpdateFunc) < 0) {\n    postUpdateFunc && postUpdateFuncs.push(postUpdateFunc);\n  }\n}\nexport function registerAction(actionInfo, eventName, action) {\n  if (typeof eventName === 'function') {\n    action = eventName;\n    eventName = '';\n  }\n\n  var actionType = isObject(actionInfo) ? actionInfo.type : [actionInfo, actionInfo = {\n    event: eventName\n  }][0];\n  actionInfo.event = (actionInfo.event || actionType).toLowerCase();\n  eventName = actionInfo.event;\n\n  if (eventActionMap[eventName]) {\n    return;\n  }\n\n  assert(ACTION_REG.test(actionType) && ACTION_REG.test(eventName));\n\n  if (!actions[actionType]) {\n    actions[actionType] = {\n      action: action,\n      actionInfo: actionInfo\n    };\n  }\n\n  eventActionMap[eventName] = actionType;\n}\nexport function registerCoordinateSystem(type, coordSysCreator) {\n  CoordinateSystemManager.register(type, coordSysCreator);\n}\nexport function getCoordinateSystemDimensions(type) {\n  var coordSysCreator = CoordinateSystemManager.get(type);\n\n  if (coordSysCreator) {\n    return coordSysCreator.getDimensionsInfo ? coordSysCreator.getDimensionsInfo() : coordSysCreator.dimensions.slice();\n  }\n}\nexport { registerLocale } from './locale';\n\nfunction registerLayout(priority, layoutTask) {\n  normalizeRegister(visualFuncs, priority, layoutTask, PRIORITY_VISUAL_LAYOUT, 'layout');\n}\n\nfunction registerVisual(priority, visualTask) {\n  normalizeRegister(visualFuncs, priority, visualTask, PRIORITY_VISUAL_CHART, 'visual');\n}\n\nexport { registerLayout, registerVisual };\nvar registeredTasks = [];\n\nfunction normalizeRegister(targetList, priority, fn, defaultPriority, visualType) {\n  if (isFunction(priority) || isObject(priority)) {\n    fn = priority;\n    priority = defaultPriority;\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (isNaN(priority) || priority == null) {\n      throw new Error('Illegal priority');\n    }\n\n    each(targetList, function (wrap) {\n      assert(wrap.__raw !== fn);\n    });\n  }\n\n  if (indexOf(registeredTasks, fn) >= 0) {\n    return;\n  }\n\n  registeredTasks.push(fn);\n  var stageHandler = Scheduler.wrapStageHandler(fn, visualType);\n  stageHandler.__prio = priority;\n  stageHandler.__raw = fn;\n  targetList.push(stageHandler);\n}\n\nexport function registerLoading(name, loadingFx) {\n  loadingEffects[name] = loadingFx;\n}\nexport function setCanvasCreator(creator) {\n  zrUtil.$override('createCanvas', creator);\n}\nexport function registerMap(mapName, geoJson, specialAreas) {\n  mapDataStorage.registerMap(mapName, geoJson, specialAreas);\n}\nexport function getMap(mapName) {\n  var records = mapDataStorage.retrieveMap(mapName);\n  return records && records[0] && {\n    geoJson: records[0].geoJSON,\n    specialAreas: records[0].specialAreas\n  };\n}\nexport var registerTransform = registerExternalTransform;\nregisterVisual(PRIORITY_VISUAL_GLOBAL, seriesStyleTask);\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataStyleTask);\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataColorPaletteTask);\nregisterVisual(PRIORITY_VISUAL_GLOBAL, seriesSymbolTask);\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataSymbolTask);\nregisterVisual(PRIORITY_VISUAL_DECAL, decal);\nregisterPreprocessor(backwardCompat);\nregisterProcessor(PRIORITY_PROCESSOR_DATASTACK, dataStack);\nregisterLoading('default', loadingDefault);\nregisterAction({\n  type: HIGHLIGHT_ACTION_TYPE,\n  event: HIGHLIGHT_ACTION_TYPE,\n  update: HIGHLIGHT_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n  type: DOWNPLAY_ACTION_TYPE,\n  event: DOWNPLAY_ACTION_TYPE,\n  update: DOWNPLAY_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n  type: SELECT_ACTION_TYPE,\n  event: SELECT_ACTION_TYPE,\n  update: SELECT_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n  type: UNSELECT_ACTION_TYPE,\n  event: UNSELECT_ACTION_TYPE,\n  update: UNSELECT_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n  type: TOGGLE_SELECT_ACTION_TYPE,\n  event: TOGGLE_SELECT_ACTION_TYPE,\n  update: TOGGLE_SELECT_ACTION_TYPE\n}, zrUtil.noop);\nregisterTheme('light', lightTheme);\nregisterTheme('dark', darkTheme);\nexport var dataTool = {};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { registerPreprocessor, registerProcessor, registerPostInit, registerPostUpdate, registerAction, registerCoordinateSystem, registerLayout, registerVisual, registerTransform, registerLoading, registerMap, PRIORITY } from './core/echarts';\nimport ComponentView from './view/Component';\nimport ChartView from './view/Chart';\nimport ComponentModel from './model/Component';\nimport SeriesModel from './model/Series';\nimport { isFunction, indexOf, isArray, each } from 'zrender/lib/core/util';\nimport { registerPainter } from 'zrender/lib/zrender';\nvar extensions = [];\nvar extensionRegisters = {\n  registerPreprocessor: registerPreprocessor,\n  registerProcessor: registerProcessor,\n  registerPostInit: registerPostInit,\n  registerPostUpdate: registerPostUpdate,\n  registerAction: registerAction,\n  registerCoordinateSystem: registerCoordinateSystem,\n  registerLayout: registerLayout,\n  registerVisual: registerVisual,\n  registerTransform: registerTransform,\n  registerLoading: registerLoading,\n  registerMap: registerMap,\n  PRIORITY: PRIORITY,\n  ComponentModel: ComponentModel,\n  ComponentView: ComponentView,\n  SeriesModel: SeriesModel,\n  ChartView: ChartView,\n  registerComponentModel: function (ComponentModelClass) {\n    ComponentModel.registerClass(ComponentModelClass);\n  },\n  registerComponentView: function (ComponentViewClass) {\n    ComponentView.registerClass(ComponentViewClass);\n  },\n  registerSeriesModel: function (SeriesModelClass) {\n    SeriesModel.registerClass(SeriesModelClass);\n  },\n  registerChartView: function (ChartViewClass) {\n    ChartView.registerClass(ChartViewClass);\n  },\n  registerSubTypeDefaulter: function (componentType, defaulter) {\n    ComponentModel.registerSubTypeDefaulter(componentType, defaulter);\n  },\n  registerPainter: function (painterType, PainterCtor) {\n    registerPainter(painterType, PainterCtor);\n  }\n};\nexport function use(ext) {\n  if (isArray(ext)) {\n    each(ext, function (singleExt) {\n      use(singleExt);\n    });\n    return;\n  }\n\n  if (indexOf(extensions, ext) >= 0) {\n    return;\n  }\n\n  extensions.push(ext);\n\n  if (isFunction(ext)) {\n    ext = {\n      install: ext\n    };\n  }\n\n  ext.install(extensionRegisters);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nfunction dataIndexMapValueLength(valNumOrArrLengthMoreThan2) {\n  return valNumOrArrLengthMoreThan2 == null ? 0 : valNumOrArrLengthMoreThan2.length || 1;\n}\n\nfunction defaultKeyGetter(item) {\n  return item;\n}\n\nvar DataDiffer = function () {\n  function DataDiffer(oldArr, newArr, oldKeyGetter, newKeyGetter, context, diffMode) {\n    this._old = oldArr;\n    this._new = newArr;\n    this._oldKeyGetter = oldKeyGetter || defaultKeyGetter;\n    this._newKeyGetter = newKeyGetter || defaultKeyGetter;\n    this.context = context;\n    this._diffModeMultiple = diffMode === 'multiple';\n  }\n\n  DataDiffer.prototype.add = function (func) {\n    this._add = func;\n    return this;\n  };\n\n  DataDiffer.prototype.update = function (func) {\n    this._update = func;\n    return this;\n  };\n\n  DataDiffer.prototype.updateManyToOne = function (func) {\n    this._updateManyToOne = func;\n    return this;\n  };\n\n  DataDiffer.prototype.updateOneToMany = function (func) {\n    this._updateOneToMany = func;\n    return this;\n  };\n\n  DataDiffer.prototype.remove = function (func) {\n    this._remove = func;\n    return this;\n  };\n\n  DataDiffer.prototype.execute = function () {\n    this[this._diffModeMultiple ? '_executeMultiple' : '_executeOneToOne']();\n  };\n\n  DataDiffer.prototype._executeOneToOne = function () {\n    var oldArr = this._old;\n    var newArr = this._new;\n    var newDataIndexMap = {};\n    var oldDataKeyArr = new Array(oldArr.length);\n    var newDataKeyArr = new Array(newArr.length);\n\n    this._initIndexMap(oldArr, null, oldDataKeyArr, '_oldKeyGetter');\n\n    this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, '_newKeyGetter');\n\n    for (var i = 0; i < oldArr.length; i++) {\n      var oldKey = oldDataKeyArr[i];\n      var newIdxMapVal = newDataIndexMap[oldKey];\n      var newIdxMapValLen = dataIndexMapValueLength(newIdxMapVal);\n\n      if (newIdxMapValLen > 1) {\n        var newIdx = newIdxMapVal.shift();\n\n        if (newIdxMapVal.length === 1) {\n          newDataIndexMap[oldKey] = newIdxMapVal[0];\n        }\n\n        this._update && this._update(newIdx, i);\n      } else if (newIdxMapValLen === 1) {\n        newDataIndexMap[oldKey] = null;\n        this._update && this._update(newIdxMapVal, i);\n      } else {\n        this._remove && this._remove(i);\n      }\n    }\n\n    this._performRestAdd(newDataKeyArr, newDataIndexMap);\n  };\n\n  DataDiffer.prototype._executeMultiple = function () {\n    var oldArr = this._old;\n    var newArr = this._new;\n    var oldDataIndexMap = {};\n    var newDataIndexMap = {};\n    var oldDataKeyArr = [];\n    var newDataKeyArr = [];\n\n    this._initIndexMap(oldArr, oldDataIndexMap, oldDataKeyArr, '_oldKeyGetter');\n\n    this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, '_newKeyGetter');\n\n    for (var i = 0; i < oldDataKeyArr.length; i++) {\n      var oldKey = oldDataKeyArr[i];\n      var oldIdxMapVal = oldDataIndexMap[oldKey];\n      var newIdxMapVal = newDataIndexMap[oldKey];\n      var oldIdxMapValLen = dataIndexMapValueLength(oldIdxMapVal);\n      var newIdxMapValLen = dataIndexMapValueLength(newIdxMapVal);\n\n      if (oldIdxMapValLen > 1 && newIdxMapValLen === 1) {\n        this._updateManyToOne && this._updateManyToOne(newIdxMapVal, oldIdxMapVal);\n        newDataIndexMap[oldKey] = null;\n      } else if (oldIdxMapValLen === 1 && newIdxMapValLen > 1) {\n        this._updateOneToMany && this._updateOneToMany(newIdxMapVal, oldIdxMapVal);\n        newDataIndexMap[oldKey] = null;\n      } else if (oldIdxMapValLen === 1 && newIdxMapValLen === 1) {\n        this._update && this._update(newIdxMapVal, oldIdxMapVal);\n        newDataIndexMap[oldKey] = null;\n      } else if (oldIdxMapValLen > 1) {\n        for (var i_1 = 0; i_1 < oldIdxMapValLen; i_1++) {\n          this._remove && this._remove(oldIdxMapVal[i_1]);\n        }\n      } else {\n        this._remove && this._remove(oldIdxMapVal);\n      }\n    }\n\n    this._performRestAdd(newDataKeyArr, newDataIndexMap);\n  };\n\n  DataDiffer.prototype._performRestAdd = function (newDataKeyArr, newDataIndexMap) {\n    for (var i = 0; i < newDataKeyArr.length; i++) {\n      var newKey = newDataKeyArr[i];\n      var newIdxMapVal = newDataIndexMap[newKey];\n      var idxMapValLen = dataIndexMapValueLength(newIdxMapVal);\n\n      if (idxMapValLen > 1) {\n        for (var j = 0; j < idxMapValLen; j++) {\n          this._add && this._add(newIdxMapVal[j]);\n        }\n      } else if (idxMapValLen === 1) {\n        this._add && this._add(newIdxMapVal);\n      }\n\n      newDataIndexMap[newKey] = null;\n    }\n  };\n\n  DataDiffer.prototype._initIndexMap = function (arr, map, keyArr, keyGetterName) {\n    var cbModeMultiple = this._diffModeMultiple;\n\n    for (var i = 0; i < arr.length; i++) {\n      var key = '_ec_' + this[keyGetterName](arr[i], i);\n\n      if (!cbModeMultiple) {\n        keyArr[i] = key;\n      }\n\n      if (!map) {\n        continue;\n      }\n\n      var idxMapVal = map[key];\n      var idxMapValLen = dataIndexMapValueLength(idxMapVal);\n\n      if (idxMapValLen === 0) {\n        map[key] = i;\n\n        if (cbModeMultiple) {\n          keyArr.push(key);\n        }\n      } else if (idxMapValLen === 1) {\n        map[key] = [idxMapVal, i];\n      } else {\n        idxMapVal.push(i);\n      }\n    }\n  };\n\n  return DataDiffer;\n}();\n\nexport default DataDiffer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, createHashMap, assert } from 'zrender/lib/core/util';\nimport { VISUAL_DIMENSIONS } from '../../util/types';\nexport function summarizeDimensions(data) {\n  var summary = {};\n  var encode = summary.encode = {};\n  var notExtraCoordDimMap = createHashMap();\n  var defaultedLabel = [];\n  var defaultedTooltip = [];\n  var userOutput = summary.userOutput = {\n    dimensionNames: data.dimensions.slice(),\n    encode: {}\n  };\n  each(data.dimensions, function (dimName) {\n    var dimItem = data.getDimensionInfo(dimName);\n    var coordDim = dimItem.coordDim;\n\n    if (coordDim) {\n      if (process.env.NODE_ENV !== 'production') {\n        assert(VISUAL_DIMENSIONS.get(coordDim) == null);\n      }\n\n      var coordDimIndex = dimItem.coordDimIndex;\n      getOrCreateEncodeArr(encode, coordDim)[coordDimIndex] = dimName;\n\n      if (!dimItem.isExtraCoord) {\n        notExtraCoordDimMap.set(coordDim, 1);\n\n        if (mayLabelDimType(dimItem.type)) {\n          defaultedLabel[0] = dimName;\n        }\n\n        getOrCreateEncodeArr(userOutput.encode, coordDim)[coordDimIndex] = dimItem.index;\n      }\n\n      if (dimItem.defaultTooltip) {\n        defaultedTooltip.push(dimName);\n      }\n    }\n\n    VISUAL_DIMENSIONS.each(function (v, otherDim) {\n      var encodeArr = getOrCreateEncodeArr(encode, otherDim);\n      var dimIndex = dimItem.otherDims[otherDim];\n\n      if (dimIndex != null && dimIndex !== false) {\n        encodeArr[dimIndex] = dimItem.name;\n      }\n    });\n  });\n  var dataDimsOnCoord = [];\n  var encodeFirstDimNotExtra = {};\n  notExtraCoordDimMap.each(function (v, coordDim) {\n    var dimArr = encode[coordDim];\n    encodeFirstDimNotExtra[coordDim] = dimArr[0];\n    dataDimsOnCoord = dataDimsOnCoord.concat(dimArr);\n  });\n  summary.dataDimsOnCoord = dataDimsOnCoord;\n  summary.encodeFirstDimNotExtra = encodeFirstDimNotExtra;\n  var encodeLabel = encode.label;\n\n  if (encodeLabel && encodeLabel.length) {\n    defaultedLabel = encodeLabel.slice();\n  }\n\n  var encodeTooltip = encode.tooltip;\n\n  if (encodeTooltip && encodeTooltip.length) {\n    defaultedTooltip = encodeTooltip.slice();\n  } else if (!defaultedTooltip.length) {\n    defaultedTooltip = defaultedLabel.slice();\n  }\n\n  encode.defaultedLabel = defaultedLabel;\n  encode.defaultedTooltip = defaultedTooltip;\n  return summary;\n}\n\nfunction getOrCreateEncodeArr(encode, dim) {\n  if (!encode.hasOwnProperty(dim)) {\n    encode[dim] = [];\n  }\n\n  return encode[dim];\n}\n\nexport function getDimensionTypeByAxis(axisType) {\n  return axisType === 'category' ? 'ordinal' : axisType === 'time' ? 'time' : 'float';\n}\n\nfunction mayLabelDimType(dimType) {\n  return !(dimType === 'ordinal' || dimType === 'time');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nvar DataDimensionInfo = function () {\n  function DataDimensionInfo(opt) {\n    this.otherDims = {};\n\n    if (opt != null) {\n      zrUtil.extend(this, opt);\n    }\n  }\n\n  return DataDimensionInfo;\n}();\n\n;\nexport default DataDimensionInfo;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Model from '../model/Model';\nimport DataDiffer from './DataDiffer';\nimport { DefaultDataProvider } from './helper/dataProvider';\nimport { summarizeDimensions } from './helper/dimensionHelper';\nimport DataDimensionInfo from './DataDimensionInfo';\nimport { SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ORIGINAL } from '../util/types';\nimport { isDataItemOption, convertOptionIdName } from '../util/model';\nimport { getECData } from '../util/innerStore';\nimport { parseDataValue } from './helper/dataValueHelper';\nimport { isSourceInstance } from './Source';\nvar mathFloor = Math.floor;\nvar isObject = zrUtil.isObject;\nvar map = zrUtil.map;\nvar UNDEFINED = 'undefined';\nvar INDEX_NOT_FOUND = -1;\nvar ID_PREFIX = 'e\\0\\0';\nvar dataCtors = {\n  'float': typeof Float64Array === UNDEFINED ? Array : Float64Array,\n  'int': typeof Int32Array === UNDEFINED ? Array : Int32Array,\n  'ordinal': Array,\n  'number': Array,\n  'time': Array\n};\nvar CtorUint32Array = typeof Uint32Array === UNDEFINED ? Array : Uint32Array;\nvar CtorInt32Array = typeof Int32Array === UNDEFINED ? Array : Int32Array;\nvar CtorUint16Array = typeof Uint16Array === UNDEFINED ? Array : Uint16Array;\nvar TRANSFERABLE_PROPERTIES = ['hasItemOption', '_nameList', '_idList', '_invertedIndicesMap', '_rawData', '_dimValueGetter', '_count', '_rawCount', '_nameDimIdx', '_idDimIdx', '_nameRepeatCount'];\nvar CLONE_PROPERTIES = ['_extent', '_approximateExtent', '_rawExtent'];\nvar defaultDimValueGetters;\nvar prepareInvertedIndex;\nvar getIndicesCtor;\nvar prepareStorage;\nvar getRawIndexWithoutIndices;\nvar getRawIndexWithIndices;\nvar getId;\nvar getIdNameFromStore;\nvar makeIdFromName;\nvar normalizeDimensions;\nvar validateDimensions;\nvar cloneListForMapAndSample;\nvar getInitialExtent;\nvar setItemDataAndSeriesIndex;\nvar transferProperties;\n\nvar List = function () {\n  function List(dimensions, hostModel) {\n    this.type = 'list';\n    this._count = 0;\n    this._rawCount = 0;\n    this._storage = {};\n    this._storageArr = [];\n    this._nameList = [];\n    this._idList = [];\n    this._visual = {};\n    this._layout = {};\n    this._itemVisuals = [];\n    this._itemLayouts = [];\n    this._graphicEls = [];\n    this._rawExtent = {};\n    this._extent = {};\n    this._approximateExtent = {};\n    this._calculationInfo = {};\n    this.hasItemOption = true;\n    this.TRANSFERABLE_METHODS = ['cloneShallow', 'downSample', 'lttbDownSample', 'map'];\n    this.CHANGABLE_METHODS = ['filterSelf', 'selectRange'];\n    this.DOWNSAMPLE_METHODS = ['downSample', 'lttbDownSample'];\n    this.getRawIndex = getRawIndexWithoutIndices;\n    dimensions = dimensions || ['x', 'y'];\n    var dimensionInfos = {};\n    var dimensionNames = [];\n    var invertedIndicesMap = {};\n\n    for (var i = 0; i < dimensions.length; i++) {\n      var dimInfoInput = dimensions[i];\n      var dimensionInfo = zrUtil.isString(dimInfoInput) ? new DataDimensionInfo({\n        name: dimInfoInput\n      }) : !(dimInfoInput instanceof DataDimensionInfo) ? new DataDimensionInfo(dimInfoInput) : dimInfoInput;\n      var dimensionName = dimensionInfo.name;\n      dimensionInfo.type = dimensionInfo.type || 'float';\n\n      if (!dimensionInfo.coordDim) {\n        dimensionInfo.coordDim = dimensionName;\n        dimensionInfo.coordDimIndex = 0;\n      }\n\n      var otherDims = dimensionInfo.otherDims = dimensionInfo.otherDims || {};\n      dimensionNames.push(dimensionName);\n      dimensionInfos[dimensionName] = dimensionInfo;\n      dimensionInfo.index = i;\n\n      if (dimensionInfo.createInvertedIndices) {\n        invertedIndicesMap[dimensionName] = [];\n      }\n\n      if (otherDims.itemName === 0) {\n        this._nameDimIdx = i;\n        this._nameOrdinalMeta = dimensionInfo.ordinalMeta;\n      }\n\n      if (otherDims.itemId === 0) {\n        this._idDimIdx = i;\n        this._idOrdinalMeta = dimensionInfo.ordinalMeta;\n      }\n    }\n\n    this.dimensions = dimensionNames;\n    this._dimensionInfos = dimensionInfos;\n    this.hostModel = hostModel;\n    this._dimensionsSummary = summarizeDimensions(this);\n    this._invertedIndicesMap = invertedIndicesMap;\n    this.userOutput = this._dimensionsSummary.userOutput;\n  }\n\n  List.prototype.getDimension = function (dim) {\n    if (typeof dim === 'number' || !isNaN(dim) && !this._dimensionInfos.hasOwnProperty(dim)) {\n      dim = this.dimensions[dim];\n    }\n\n    return dim;\n  };\n\n  List.prototype.getDimensionInfo = function (dim) {\n    return this._dimensionInfos[this.getDimension(dim)];\n  };\n\n  List.prototype.getDimensionsOnCoord = function () {\n    return this._dimensionsSummary.dataDimsOnCoord.slice();\n  };\n\n  List.prototype.mapDimension = function (coordDim, idx) {\n    var dimensionsSummary = this._dimensionsSummary;\n\n    if (idx == null) {\n      return dimensionsSummary.encodeFirstDimNotExtra[coordDim];\n    }\n\n    var dims = dimensionsSummary.encode[coordDim];\n    return dims ? dims[idx] : null;\n  };\n\n  List.prototype.mapDimensionsAll = function (coordDim) {\n    var dimensionsSummary = this._dimensionsSummary;\n    var dims = dimensionsSummary.encode[coordDim];\n    return (dims || []).slice();\n  };\n\n  List.prototype.initData = function (data, nameList, dimValueGetter) {\n    var notProvider = isSourceInstance(data) || zrUtil.isArrayLike(data);\n    var provider = notProvider ? new DefaultDataProvider(data, this.dimensions.length) : data;\n\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.assert(notProvider || zrUtil.isFunction(provider.getItem) && zrUtil.isFunction(provider.count), 'Inavlid data provider.');\n    }\n\n    this._rawData = provider;\n    var sourceFormat = provider.getSource().sourceFormat;\n    this._storage = {};\n    this._indices = null;\n    this._dontMakeIdFromName = this._idDimIdx != null || sourceFormat === SOURCE_FORMAT_TYPED_ARRAY || !!provider.fillStorage;\n    this._nameList = (nameList || []).slice();\n    this._idList = [];\n    this._nameRepeatCount = {};\n\n    if (!dimValueGetter) {\n      this.hasItemOption = false;\n    }\n\n    this.defaultDimValueGetter = defaultDimValueGetters[sourceFormat];\n    this._dimValueGetter = dimValueGetter = dimValueGetter || this.defaultDimValueGetter;\n    this._dimValueGetterArrayRows = defaultDimValueGetters.arrayRows;\n    this._rawExtent = {};\n\n    this._initDataFromProvider(0, provider.count());\n\n    if (provider.pure) {\n      this.hasItemOption = false;\n    }\n  };\n\n  List.prototype.getProvider = function () {\n    return this._rawData;\n  };\n\n  List.prototype.appendData = function (data) {\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.assert(!this._indices, 'appendData can only be called on raw data.');\n    }\n\n    var rawData = this._rawData;\n    var start = this.count();\n    rawData.appendData(data);\n    var end = rawData.count();\n\n    if (!rawData.persistent) {\n      end += start;\n    }\n\n    this._initDataFromProvider(start, end, true);\n  };\n\n  List.prototype.appendValues = function (values, names) {\n    var storage = this._storage;\n    var dimensions = this.dimensions;\n    var dimLen = dimensions.length;\n    var rawExtent = this._rawExtent;\n    var start = this.count();\n    var end = start + Math.max(values.length, names ? names.length : 0);\n\n    for (var i = 0; i < dimLen; i++) {\n      var dim = dimensions[i];\n\n      if (!rawExtent[dim]) {\n        rawExtent[dim] = getInitialExtent();\n      }\n\n      prepareStorage(storage, this._dimensionInfos[dim], end, true);\n    }\n\n    var rawExtentArr = map(dimensions, function (dim) {\n      return rawExtent[dim];\n    });\n    var storageArr = this._storageArr = map(dimensions, function (dim) {\n      return storage[dim];\n    });\n    var emptyDataItem = [];\n\n    for (var idx = start; idx < end; idx++) {\n      var sourceIdx = idx - start;\n\n      for (var dimIdx = 0; dimIdx < dimLen; dimIdx++) {\n        var dim = dimensions[dimIdx];\n\n        var val = this._dimValueGetterArrayRows(values[sourceIdx] || emptyDataItem, dim, sourceIdx, dimIdx);\n\n        storageArr[dimIdx][idx] = val;\n        var dimRawExtent = rawExtentArr[dimIdx];\n        val < dimRawExtent[0] && (dimRawExtent[0] = val);\n        val > dimRawExtent[1] && (dimRawExtent[1] = val);\n      }\n\n      if (names) {\n        this._nameList[idx] = names[sourceIdx];\n\n        if (!this._dontMakeIdFromName) {\n          makeIdFromName(this, idx);\n        }\n      }\n    }\n\n    this._rawCount = this._count = end;\n    this._extent = {};\n    prepareInvertedIndex(this);\n  };\n\n  List.prototype._initDataFromProvider = function (start, end, append) {\n    if (start >= end) {\n      return;\n    }\n\n    var rawData = this._rawData;\n    var storage = this._storage;\n    var dimensions = this.dimensions;\n    var dimLen = dimensions.length;\n    var dimensionInfoMap = this._dimensionInfos;\n    var nameList = this._nameList;\n    var idList = this._idList;\n    var rawExtent = this._rawExtent;\n    var sourceFormat = rawData.getSource().sourceFormat;\n    var isFormatOriginal = sourceFormat === SOURCE_FORMAT_ORIGINAL;\n\n    for (var i = 0; i < dimLen; i++) {\n      var dim = dimensions[i];\n\n      if (!rawExtent[dim]) {\n        rawExtent[dim] = getInitialExtent();\n      }\n\n      prepareStorage(storage, dimensionInfoMap[dim], end, append);\n    }\n\n    var storageArr = this._storageArr = map(dimensions, function (dim) {\n      return storage[dim];\n    });\n    var rawExtentArr = map(dimensions, function (dim) {\n      return rawExtent[dim];\n    });\n\n    if (rawData.fillStorage) {\n      rawData.fillStorage(start, end, storageArr, rawExtentArr);\n    } else {\n      var dataItem = [];\n\n      for (var idx = start; idx < end; idx++) {\n        dataItem = rawData.getItem(idx, dataItem);\n\n        for (var dimIdx = 0; dimIdx < dimLen; dimIdx++) {\n          var dim = dimensions[dimIdx];\n          var dimStorage = storageArr[dimIdx];\n\n          var val = this._dimValueGetter(dataItem, dim, idx, dimIdx);\n\n          dimStorage[idx] = val;\n          var dimRawExtent = rawExtentArr[dimIdx];\n          val < dimRawExtent[0] && (dimRawExtent[0] = val);\n          val > dimRawExtent[1] && (dimRawExtent[1] = val);\n        }\n\n        if (isFormatOriginal && !rawData.pure && dataItem) {\n          var itemName = dataItem.name;\n\n          if (nameList[idx] == null && itemName != null) {\n            nameList[idx] = convertOptionIdName(itemName, null);\n          }\n\n          var itemId = dataItem.id;\n\n          if (idList[idx] == null && itemId != null) {\n            idList[idx] = convertOptionIdName(itemId, null);\n          }\n        }\n\n        if (!this._dontMakeIdFromName) {\n          makeIdFromName(this, idx);\n        }\n      }\n    }\n\n    if (!rawData.persistent && rawData.clean) {\n      rawData.clean();\n    }\n\n    this._rawCount = this._count = end;\n    this._extent = {};\n    prepareInvertedIndex(this);\n  };\n\n  List.prototype.count = function () {\n    return this._count;\n  };\n\n  List.prototype.getIndices = function () {\n    var newIndices;\n    var indices = this._indices;\n\n    if (indices) {\n      var Ctor = indices.constructor;\n      var thisCount = this._count;\n\n      if (Ctor === Array) {\n        newIndices = new Ctor(thisCount);\n\n        for (var i = 0; i < thisCount; i++) {\n          newIndices[i] = indices[i];\n        }\n      } else {\n        newIndices = new Ctor(indices.buffer, 0, thisCount);\n      }\n    } else {\n      var Ctor = getIndicesCtor(this);\n      newIndices = new Ctor(this.count());\n\n      for (var i = 0; i < newIndices.length; i++) {\n        newIndices[i] = i;\n      }\n    }\n\n    return newIndices;\n  };\n\n  List.prototype.getByDimIdx = function (dimIdx, idx) {\n    if (!(idx >= 0 && idx < this._count)) {\n      return NaN;\n    }\n\n    var dimStore = this._storageArr[dimIdx];\n    return dimStore ? dimStore[this.getRawIndex(idx)] : NaN;\n  };\n\n  List.prototype.get = function (dim, idx) {\n    if (!(idx >= 0 && idx < this._count)) {\n      return NaN;\n    }\n\n    var dimStore = this._storage[dim];\n    return dimStore ? dimStore[this.getRawIndex(idx)] : NaN;\n  };\n\n  List.prototype.getByRawIndex = function (dim, rawIdx) {\n    if (!(rawIdx >= 0 && rawIdx < this._rawCount)) {\n      return NaN;\n    }\n\n    var dimStore = this._storage[dim];\n    return dimStore ? dimStore[rawIdx] : NaN;\n  };\n\n  List.prototype.getValues = function (dimensions, idx) {\n    var values = [];\n\n    if (!zrUtil.isArray(dimensions)) {\n      idx = dimensions;\n      dimensions = this.dimensions;\n    }\n\n    for (var i = 0, len = dimensions.length; i < len; i++) {\n      values.push(this.get(dimensions[i], idx));\n    }\n\n    return values;\n  };\n\n  List.prototype.hasValue = function (idx) {\n    var dataDimsOnCoord = this._dimensionsSummary.dataDimsOnCoord;\n\n    for (var i = 0, len = dataDimsOnCoord.length; i < len; i++) {\n      if (isNaN(this.get(dataDimsOnCoord[i], idx))) {\n        return false;\n      }\n    }\n\n    return true;\n  };\n\n  List.prototype.getDataExtent = function (dim) {\n    dim = this.getDimension(dim);\n    var dimData = this._storage[dim];\n    var initialExtent = getInitialExtent();\n\n    if (!dimData) {\n      return initialExtent;\n    }\n\n    var currEnd = this.count();\n    var useRaw = !this._indices;\n    var dimExtent;\n\n    if (useRaw) {\n      return this._rawExtent[dim].slice();\n    }\n\n    dimExtent = this._extent[dim];\n\n    if (dimExtent) {\n      return dimExtent.slice();\n    }\n\n    dimExtent = initialExtent;\n    var min = dimExtent[0];\n    var max = dimExtent[1];\n\n    for (var i = 0; i < currEnd; i++) {\n      var rawIdx = this.getRawIndex(i);\n      var value = dimData[rawIdx];\n      value < min && (min = value);\n      value > max && (max = value);\n    }\n\n    dimExtent = [min, max];\n    this._extent[dim] = dimExtent;\n    return dimExtent;\n  };\n\n  List.prototype.getApproximateExtent = function (dim) {\n    dim = this.getDimension(dim);\n    return this._approximateExtent[dim] || this.getDataExtent(dim);\n  };\n\n  List.prototype.setApproximateExtent = function (extent, dim) {\n    dim = this.getDimension(dim);\n    this._approximateExtent[dim] = extent.slice();\n  };\n\n  List.prototype.getCalculationInfo = function (key) {\n    return this._calculationInfo[key];\n  };\n\n  List.prototype.setCalculationInfo = function (key, value) {\n    isObject(key) ? zrUtil.extend(this._calculationInfo, key) : this._calculationInfo[key] = value;\n  };\n\n  List.prototype.getSum = function (dim) {\n    var dimData = this._storage[dim];\n    var sum = 0;\n\n    if (dimData) {\n      for (var i = 0, len = this.count(); i < len; i++) {\n        var value = this.get(dim, i);\n\n        if (!isNaN(value)) {\n          sum += value;\n        }\n      }\n    }\n\n    return sum;\n  };\n\n  List.prototype.getMedian = function (dim) {\n    var dimDataArray = [];\n    this.each(dim, function (val) {\n      if (!isNaN(val)) {\n        dimDataArray.push(val);\n      }\n    });\n    var sortedDimDataArray = dimDataArray.sort(function (a, b) {\n      return a - b;\n    });\n    var len = this.count();\n    return len === 0 ? 0 : len % 2 === 1 ? sortedDimDataArray[(len - 1) / 2] : (sortedDimDataArray[len / 2] + sortedDimDataArray[len / 2 - 1]) / 2;\n  };\n\n  List.prototype.rawIndexOf = function (dim, value) {\n    var invertedIndices = dim && this._invertedIndicesMap[dim];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!invertedIndices) {\n        throw new Error('Do not supported yet');\n      }\n    }\n\n    var rawIndex = invertedIndices[value];\n\n    if (rawIndex == null || isNaN(rawIndex)) {\n      return INDEX_NOT_FOUND;\n    }\n\n    return rawIndex;\n  };\n\n  List.prototype.indexOfName = function (name) {\n    for (var i = 0, len = this.count(); i < len; i++) {\n      if (this.getName(i) === name) {\n        return i;\n      }\n    }\n\n    return -1;\n  };\n\n  List.prototype.indexOfRawIndex = function (rawIndex) {\n    if (rawIndex >= this._rawCount || rawIndex < 0) {\n      return -1;\n    }\n\n    if (!this._indices) {\n      return rawIndex;\n    }\n\n    var indices = this._indices;\n    var rawDataIndex = indices[rawIndex];\n\n    if (rawDataIndex != null && rawDataIndex < this._count && rawDataIndex === rawIndex) {\n      return rawIndex;\n    }\n\n    var left = 0;\n    var right = this._count - 1;\n\n    while (left <= right) {\n      var mid = (left + right) / 2 | 0;\n\n      if (indices[mid] < rawIndex) {\n        left = mid + 1;\n      } else if (indices[mid] > rawIndex) {\n        right = mid - 1;\n      } else {\n        return mid;\n      }\n    }\n\n    return -1;\n  };\n\n  List.prototype.indicesOfNearest = function (dim, value, maxDistance) {\n    var storage = this._storage;\n    var dimData = storage[dim];\n    var nearestIndices = [];\n\n    if (!dimData) {\n      return nearestIndices;\n    }\n\n    if (maxDistance == null) {\n      maxDistance = Infinity;\n    }\n\n    var minDist = Infinity;\n    var minDiff = -1;\n    var nearestIndicesLen = 0;\n\n    for (var i = 0, len = this.count(); i < len; i++) {\n      var dataIndex = this.getRawIndex(i);\n      var diff = value - dimData[dataIndex];\n      var dist = Math.abs(diff);\n\n      if (dist <= maxDistance) {\n        if (dist < minDist || dist === minDist && diff >= 0 && minDiff < 0) {\n          minDist = dist;\n          minDiff = diff;\n          nearestIndicesLen = 0;\n        }\n\n        if (diff === minDiff) {\n          nearestIndices[nearestIndicesLen++] = i;\n        }\n      }\n    }\n\n    nearestIndices.length = nearestIndicesLen;\n    return nearestIndices;\n  };\n\n  List.prototype.getRawDataItem = function (idx) {\n    if (!this._rawData.persistent) {\n      var val = [];\n\n      for (var i = 0; i < this.dimensions.length; i++) {\n        var dim = this.dimensions[i];\n        val.push(this.get(dim, idx));\n      }\n\n      return val;\n    } else {\n      return this._rawData.getItem(this.getRawIndex(idx));\n    }\n  };\n\n  List.prototype.getName = function (idx) {\n    var rawIndex = this.getRawIndex(idx);\n    var name = this._nameList[rawIndex];\n\n    if (name == null && this._nameDimIdx != null) {\n      name = getIdNameFromStore(this, this._nameDimIdx, this._nameOrdinalMeta, rawIndex);\n    }\n\n    if (name == null) {\n      name = '';\n    }\n\n    return name;\n  };\n\n  List.prototype.getId = function (idx) {\n    return getId(this, this.getRawIndex(idx));\n  };\n\n  List.prototype.each = function (dims, cb, ctx, ctxCompat) {\n    'use strict';\n\n    var _this = this;\n\n    if (!this._count) {\n      return;\n    }\n\n    if (typeof dims === 'function') {\n      ctxCompat = ctx;\n      ctx = cb;\n      cb = dims;\n      dims = [];\n    }\n\n    var fCtx = ctx || ctxCompat || this;\n    var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\n\n    if (process.env.NODE_ENV !== 'production') {\n      validateDimensions(this, dimNames);\n    }\n\n    var dimSize = dimNames.length;\n    var dimIndices = map(dimNames, function (dimName) {\n      return _this._dimensionInfos[dimName].index;\n    });\n    var storageArr = this._storageArr;\n\n    for (var i = 0, len = this.count(); i < len; i++) {\n      var rawIdx = this.getRawIndex(i);\n\n      switch (dimSize) {\n        case 0:\n          cb.call(fCtx, i);\n          break;\n\n        case 1:\n          cb.call(fCtx, storageArr[dimIndices[0]][rawIdx], i);\n          break;\n\n        case 2:\n          cb.call(fCtx, storageArr[dimIndices[0]][rawIdx], storageArr[dimIndices[1]][rawIdx], i);\n          break;\n\n        default:\n          var k = 0;\n          var value = [];\n\n          for (; k < dimSize; k++) {\n            value[k] = storageArr[dimIndices[k]][rawIdx];\n          }\n\n          value[k] = i;\n          cb.apply(fCtx, value);\n      }\n    }\n  };\n\n  List.prototype.filterSelf = function (dims, cb, ctx, ctxCompat) {\n    'use strict';\n\n    var _this = this;\n\n    if (!this._count) {\n      return;\n    }\n\n    if (typeof dims === 'function') {\n      ctxCompat = ctx;\n      ctx = cb;\n      cb = dims;\n      dims = [];\n    }\n\n    var fCtx = ctx || ctxCompat || this;\n    var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\n\n    if (process.env.NODE_ENV !== 'production') {\n      validateDimensions(this, dimNames);\n    }\n\n    var count = this.count();\n    var Ctor = getIndicesCtor(this);\n    var newIndices = new Ctor(count);\n    var value = [];\n    var dimSize = dimNames.length;\n    var offset = 0;\n    var dimIndices = map(dimNames, function (dimName) {\n      return _this._dimensionInfos[dimName].index;\n    });\n    var dim0 = dimIndices[0];\n    var storageArr = this._storageArr;\n\n    for (var i = 0; i < count; i++) {\n      var keep = void 0;\n      var rawIdx = this.getRawIndex(i);\n\n      if (dimSize === 0) {\n        keep = cb.call(fCtx, i);\n      } else if (dimSize === 1) {\n        var val = storageArr[dim0][rawIdx];\n        keep = cb.call(fCtx, val, i);\n      } else {\n        var k = 0;\n\n        for (; k < dimSize; k++) {\n          value[k] = storageArr[dimIndices[k]][rawIdx];\n        }\n\n        value[k] = i;\n        keep = cb.apply(fCtx, value);\n      }\n\n      if (keep) {\n        newIndices[offset++] = rawIdx;\n      }\n    }\n\n    if (offset < count) {\n      this._indices = newIndices;\n    }\n\n    this._count = offset;\n    this._extent = {};\n    this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n    return this;\n  };\n\n  List.prototype.selectRange = function (range) {\n    'use strict';\n\n    var _this = this;\n\n    var len = this._count;\n\n    if (!len) {\n      return;\n    }\n\n    var dimensions = [];\n\n    for (var dim in range) {\n      if (range.hasOwnProperty(dim)) {\n        dimensions.push(dim);\n      }\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      validateDimensions(this, dimensions);\n    }\n\n    var dimSize = dimensions.length;\n\n    if (!dimSize) {\n      return;\n    }\n\n    var originalCount = this.count();\n    var Ctor = getIndicesCtor(this);\n    var newIndices = new Ctor(originalCount);\n    var offset = 0;\n    var dim0 = dimensions[0];\n    var dimIndices = map(dimensions, function (dimName) {\n      return _this._dimensionInfos[dimName].index;\n    });\n    var min = range[dim0][0];\n    var max = range[dim0][1];\n    var storageArr = this._storageArr;\n    var quickFinished = false;\n\n    if (!this._indices) {\n      var idx = 0;\n\n      if (dimSize === 1) {\n        var dimStorage = storageArr[dimIndices[0]];\n\n        for (var i = 0; i < len; i++) {\n          var val = dimStorage[i];\n\n          if (val >= min && val <= max || isNaN(val)) {\n            newIndices[offset++] = idx;\n          }\n\n          idx++;\n        }\n\n        quickFinished = true;\n      } else if (dimSize === 2) {\n        var dimStorage = storageArr[dimIndices[0]];\n        var dimStorage2 = storageArr[dimIndices[1]];\n        var min2 = range[dimensions[1]][0];\n        var max2 = range[dimensions[1]][1];\n\n        for (var i = 0; i < len; i++) {\n          var val = dimStorage[i];\n          var val2 = dimStorage2[i];\n\n          if ((val >= min && val <= max || isNaN(val)) && (val2 >= min2 && val2 <= max2 || isNaN(val2))) {\n            newIndices[offset++] = idx;\n          }\n\n          idx++;\n        }\n\n        quickFinished = true;\n      }\n    }\n\n    if (!quickFinished) {\n      if (dimSize === 1) {\n        for (var i = 0; i < originalCount; i++) {\n          var rawIndex = this.getRawIndex(i);\n          var val = storageArr[dimIndices[0]][rawIndex];\n\n          if (val >= min && val <= max || isNaN(val)) {\n            newIndices[offset++] = rawIndex;\n          }\n        }\n      } else {\n        for (var i = 0; i < originalCount; i++) {\n          var keep = true;\n          var rawIndex = this.getRawIndex(i);\n\n          for (var k = 0; k < dimSize; k++) {\n            var dimk = dimensions[k];\n            var val = storageArr[dimIndices[k]][rawIndex];\n\n            if (val < range[dimk][0] || val > range[dimk][1]) {\n              keep = false;\n            }\n          }\n\n          if (keep) {\n            newIndices[offset++] = this.getRawIndex(i);\n          }\n        }\n      }\n    }\n\n    if (offset < originalCount) {\n      this._indices = newIndices;\n    }\n\n    this._count = offset;\n    this._extent = {};\n    this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n    return this;\n  };\n\n  List.prototype.mapArray = function (dims, cb, ctx, ctxCompat) {\n    'use strict';\n\n    if (typeof dims === 'function') {\n      ctxCompat = ctx;\n      ctx = cb;\n      cb = dims;\n      dims = [];\n    }\n\n    ctx = ctx || ctxCompat || this;\n    var result = [];\n    this.each(dims, function () {\n      result.push(cb && cb.apply(this, arguments));\n    }, ctx);\n    return result;\n  };\n\n  List.prototype.map = function (dims, cb, ctx, ctxCompat) {\n    'use strict';\n\n    var fCtx = ctx || ctxCompat || this;\n    var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\n\n    if (process.env.NODE_ENV !== 'production') {\n      validateDimensions(this, dimNames);\n    }\n\n    var list = cloneListForMapAndSample(this, dimNames);\n    var storage = list._storage;\n    list._indices = this._indices;\n    list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n    var tmpRetValue = [];\n    var dimSize = dimNames.length;\n    var dataCount = this.count();\n    var values = [];\n    var rawExtent = list._rawExtent;\n\n    for (var dataIndex = 0; dataIndex < dataCount; dataIndex++) {\n      for (var dimIndex = 0; dimIndex < dimSize; dimIndex++) {\n        values[dimIndex] = this.get(dimNames[dimIndex], dataIndex);\n      }\n\n      values[dimSize] = dataIndex;\n      var retValue = cb && cb.apply(fCtx, values);\n\n      if (retValue != null) {\n        if (typeof retValue !== 'object') {\n          tmpRetValue[0] = retValue;\n          retValue = tmpRetValue;\n        }\n\n        var rawIndex = this.getRawIndex(dataIndex);\n\n        for (var i = 0; i < retValue.length; i++) {\n          var dim = dimNames[i];\n          var val = retValue[i];\n          var rawExtentOnDim = rawExtent[dim];\n          var dimStore = storage[dim];\n\n          if (dimStore) {\n            dimStore[rawIndex] = val;\n          }\n\n          if (val < rawExtentOnDim[0]) {\n            rawExtentOnDim[0] = val;\n          }\n\n          if (val > rawExtentOnDim[1]) {\n            rawExtentOnDim[1] = val;\n          }\n        }\n      }\n    }\n\n    return list;\n  };\n\n  List.prototype.downSample = function (dimension, rate, sampleValue, sampleIndex) {\n    var list = cloneListForMapAndSample(this, [dimension]);\n    var targetStorage = list._storage;\n    var frameValues = [];\n    var frameSize = mathFloor(1 / rate);\n    var dimStore = targetStorage[dimension];\n    var len = this.count();\n    var rawExtentOnDim = list._rawExtent[dimension];\n    var newIndices = new (getIndicesCtor(this))(len);\n    var offset = 0;\n\n    for (var i = 0; i < len; i += frameSize) {\n      if (frameSize > len - i) {\n        frameSize = len - i;\n        frameValues.length = frameSize;\n      }\n\n      for (var k = 0; k < frameSize; k++) {\n        var dataIdx = this.getRawIndex(i + k);\n        frameValues[k] = dimStore[dataIdx];\n      }\n\n      var value = sampleValue(frameValues);\n      var sampleFrameIdx = this.getRawIndex(Math.min(i + sampleIndex(frameValues, value) || 0, len - 1));\n      dimStore[sampleFrameIdx] = value;\n\n      if (value < rawExtentOnDim[0]) {\n        rawExtentOnDim[0] = value;\n      }\n\n      if (value > rawExtentOnDim[1]) {\n        rawExtentOnDim[1] = value;\n      }\n\n      newIndices[offset++] = sampleFrameIdx;\n    }\n\n    list._count = offset;\n    list._indices = newIndices;\n    list.getRawIndex = getRawIndexWithIndices;\n    return list;\n  };\n\n  List.prototype.lttbDownSample = function (valueDimension, rate) {\n    var list = cloneListForMapAndSample(this, []);\n    var targetStorage = list._storage;\n    var dimStore = targetStorage[valueDimension];\n    var len = this.count();\n    var newIndices = new (getIndicesCtor(this))(len);\n    var sampledIndex = 0;\n    var frameSize = mathFloor(1 / rate);\n    var currentRawIndex = this.getRawIndex(0);\n    var maxArea;\n    var area;\n    var nextRawIndex;\n    newIndices[sampledIndex++] = currentRawIndex;\n\n    for (var i = 1; i < len - 1; i += frameSize) {\n      var nextFrameStart = Math.min(i + frameSize, len - 1);\n      var nextFrameEnd = Math.min(i + frameSize * 2, len);\n      var avgX = (nextFrameEnd + nextFrameStart) / 2;\n      var avgY = 0;\n\n      for (var idx = nextFrameStart; idx < nextFrameEnd; idx++) {\n        var rawIndex = this.getRawIndex(idx);\n        var y = dimStore[rawIndex];\n\n        if (isNaN(y)) {\n          continue;\n        }\n\n        avgY += y;\n      }\n\n      avgY /= nextFrameEnd - nextFrameStart;\n      var frameStart = i;\n      var frameEnd = Math.min(i + frameSize, len);\n      var pointAX = i - 1;\n      var pointAY = dimStore[currentRawIndex];\n      maxArea = -1;\n      nextRawIndex = frameStart;\n\n      for (var idx = frameStart; idx < frameEnd; idx++) {\n        var rawIndex = this.getRawIndex(idx);\n        var y = dimStore[rawIndex];\n\n        if (isNaN(y)) {\n          continue;\n        }\n\n        area = Math.abs((pointAX - avgX) * (y - pointAY) - (pointAX - idx) * (avgY - pointAY));\n\n        if (area > maxArea) {\n          maxArea = area;\n          nextRawIndex = rawIndex;\n        }\n      }\n\n      newIndices[sampledIndex++] = nextRawIndex;\n      currentRawIndex = nextRawIndex;\n    }\n\n    newIndices[sampledIndex++] = this.getRawIndex(len - 1);\n    list._count = sampledIndex;\n    list._indices = newIndices;\n    list.getRawIndex = getRawIndexWithIndices;\n    return list;\n  };\n\n  List.prototype.getItemModel = function (idx) {\n    var hostModel = this.hostModel;\n    var dataItem = this.getRawDataItem(idx);\n    return new Model(dataItem, hostModel, hostModel && hostModel.ecModel);\n  };\n\n  List.prototype.diff = function (otherList) {\n    var thisList = this;\n    return new DataDiffer(otherList ? otherList.getIndices() : [], this.getIndices(), function (idx) {\n      return getId(otherList, idx);\n    }, function (idx) {\n      return getId(thisList, idx);\n    });\n  };\n\n  List.prototype.getVisual = function (key) {\n    var visual = this._visual;\n    return visual && visual[key];\n  };\n\n  List.prototype.setVisual = function (kvObj, val) {\n    this._visual = this._visual || {};\n\n    if (isObject(kvObj)) {\n      zrUtil.extend(this._visual, kvObj);\n    } else {\n      this._visual[kvObj] = val;\n    }\n  };\n\n  List.prototype.getItemVisual = function (idx, key) {\n    var itemVisual = this._itemVisuals[idx];\n    var val = itemVisual && itemVisual[key];\n\n    if (val == null) {\n      return this.getVisual(key);\n    }\n\n    return val;\n  };\n\n  List.prototype.hasItemVisual = function () {\n    return this._itemVisuals.length > 0;\n  };\n\n  List.prototype.ensureUniqueItemVisual = function (idx, key) {\n    var itemVisuals = this._itemVisuals;\n    var itemVisual = itemVisuals[idx];\n\n    if (!itemVisual) {\n      itemVisual = itemVisuals[idx] = {};\n    }\n\n    var val = itemVisual[key];\n\n    if (val == null) {\n      val = this.getVisual(key);\n\n      if (zrUtil.isArray(val)) {\n        val = val.slice();\n      } else if (isObject(val)) {\n        val = zrUtil.extend({}, val);\n      }\n\n      itemVisual[key] = val;\n    }\n\n    return val;\n  };\n\n  List.prototype.setItemVisual = function (idx, key, value) {\n    var itemVisual = this._itemVisuals[idx] || {};\n    this._itemVisuals[idx] = itemVisual;\n\n    if (isObject(key)) {\n      zrUtil.extend(itemVisual, key);\n    } else {\n      itemVisual[key] = value;\n    }\n  };\n\n  List.prototype.clearAllVisual = function () {\n    this._visual = {};\n    this._itemVisuals = [];\n  };\n\n  List.prototype.setLayout = function (key, val) {\n    if (isObject(key)) {\n      for (var name_1 in key) {\n        if (key.hasOwnProperty(name_1)) {\n          this.setLayout(name_1, key[name_1]);\n        }\n      }\n\n      return;\n    }\n\n    this._layout[key] = val;\n  };\n\n  List.prototype.getLayout = function (key) {\n    return this._layout[key];\n  };\n\n  List.prototype.getItemLayout = function (idx) {\n    return this._itemLayouts[idx];\n  };\n\n  List.prototype.setItemLayout = function (idx, layout, merge) {\n    this._itemLayouts[idx] = merge ? zrUtil.extend(this._itemLayouts[idx] || {}, layout) : layout;\n  };\n\n  List.prototype.clearItemLayouts = function () {\n    this._itemLayouts.length = 0;\n  };\n\n  List.prototype.setItemGraphicEl = function (idx, el) {\n    var hostModel = this.hostModel;\n\n    if (el) {\n      var ecData = getECData(el);\n      ecData.dataIndex = idx;\n      ecData.dataType = this.dataType;\n      ecData.seriesIndex = hostModel && hostModel.seriesIndex;\n\n      if (el.type === 'group') {\n        el.traverse(setItemDataAndSeriesIndex, el);\n      }\n    }\n\n    this._graphicEls[idx] = el;\n  };\n\n  List.prototype.getItemGraphicEl = function (idx) {\n    return this._graphicEls[idx];\n  };\n\n  List.prototype.eachItemGraphicEl = function (cb, context) {\n    zrUtil.each(this._graphicEls, function (el, idx) {\n      if (el) {\n        cb && cb.call(context, el, idx);\n      }\n    });\n  };\n\n  List.prototype.cloneShallow = function (list) {\n    if (!list) {\n      var dimensionInfoList = map(this.dimensions, this.getDimensionInfo, this);\n      list = new List(dimensionInfoList, this.hostModel);\n    }\n\n    list._storage = this._storage;\n    list._storageArr = this._storageArr;\n    transferProperties(list, this);\n\n    if (this._indices) {\n      var Ctor = this._indices.constructor;\n\n      if (Ctor === Array) {\n        var thisCount = this._indices.length;\n        list._indices = new Ctor(thisCount);\n\n        for (var i = 0; i < thisCount; i++) {\n          list._indices[i] = this._indices[i];\n        }\n      } else {\n        list._indices = new Ctor(this._indices);\n      }\n    } else {\n      list._indices = null;\n    }\n\n    list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n    return list;\n  };\n\n  List.prototype.wrapMethod = function (methodName, injectFunction) {\n    var originalMethod = this[methodName];\n\n    if (typeof originalMethod !== 'function') {\n      return;\n    }\n\n    this.__wrappedMethods = this.__wrappedMethods || [];\n\n    this.__wrappedMethods.push(methodName);\n\n    this[methodName] = function () {\n      var res = originalMethod.apply(this, arguments);\n      return injectFunction.apply(this, [res].concat(zrUtil.slice(arguments)));\n    };\n  };\n\n  List.internalField = function () {\n    defaultDimValueGetters = {\n      arrayRows: getDimValueSimply,\n      objectRows: function (dataItem, dimName, dataIndex, dimIndex) {\n        return parseDataValue(dataItem[dimName], this._dimensionInfos[dimName]);\n      },\n      keyedColumns: getDimValueSimply,\n      original: function (dataItem, dimName, dataIndex, dimIndex) {\n        var value = dataItem && (dataItem.value == null ? dataItem : dataItem.value);\n\n        if (!this._rawData.pure && isDataItemOption(dataItem)) {\n          this.hasItemOption = true;\n        }\n\n        return parseDataValue(value instanceof Array ? value[dimIndex] : value, this._dimensionInfos[dimName]);\n      },\n      typedArray: function (dataItem, dimName, dataIndex, dimIndex) {\n        return dataItem[dimIndex];\n      }\n    };\n\n    function getDimValueSimply(dataItem, dimName, dataIndex, dimIndex) {\n      return parseDataValue(dataItem[dimIndex], this._dimensionInfos[dimName]);\n    }\n\n    prepareInvertedIndex = function (list) {\n      var invertedIndicesMap = list._invertedIndicesMap;\n      zrUtil.each(invertedIndicesMap, function (invertedIndices, dim) {\n        var dimInfo = list._dimensionInfos[dim];\n        var ordinalMeta = dimInfo.ordinalMeta;\n\n        if (ordinalMeta) {\n          invertedIndices = invertedIndicesMap[dim] = new CtorInt32Array(ordinalMeta.categories.length);\n\n          for (var i = 0; i < invertedIndices.length; i++) {\n            invertedIndices[i] = INDEX_NOT_FOUND;\n          }\n\n          for (var i = 0; i < list._count; i++) {\n            invertedIndices[list.get(dim, i)] = i;\n          }\n        }\n      });\n    };\n\n    getIdNameFromStore = function (list, dimIdx, ordinalMeta, rawIndex) {\n      var val;\n      var chunk = list._storageArr[dimIdx];\n\n      if (chunk) {\n        val = chunk[rawIndex];\n\n        if (ordinalMeta && ordinalMeta.categories.length) {\n          val = ordinalMeta.categories[val];\n        }\n      }\n\n      return convertOptionIdName(val, null);\n    };\n\n    getIndicesCtor = function (list) {\n      return list._rawCount > 65535 ? CtorUint32Array : CtorUint16Array;\n    };\n\n    prepareStorage = function (storage, dimInfo, end, append) {\n      var DataCtor = dataCtors[dimInfo.type];\n      var dim = dimInfo.name;\n\n      if (append) {\n        var oldStore = storage[dim];\n        var oldLen = oldStore && oldStore.length;\n\n        if (!(oldLen === end)) {\n          var newStore = new DataCtor(end);\n\n          for (var j = 0; j < oldLen; j++) {\n            newStore[j] = oldStore[j];\n          }\n\n          storage[dim] = newStore;\n        }\n      } else {\n        storage[dim] = new DataCtor(end);\n      }\n    };\n\n    getRawIndexWithoutIndices = function (idx) {\n      return idx;\n    };\n\n    getRawIndexWithIndices = function (idx) {\n      if (idx < this._count && idx >= 0) {\n        return this._indices[idx];\n      }\n\n      return -1;\n    };\n\n    getId = function (list, rawIndex) {\n      var id = list._idList[rawIndex];\n\n      if (id == null && list._idDimIdx != null) {\n        id = getIdNameFromStore(list, list._idDimIdx, list._idOrdinalMeta, rawIndex);\n      }\n\n      if (id == null) {\n        id = ID_PREFIX + rawIndex;\n      }\n\n      return id;\n    };\n\n    normalizeDimensions = function (dimensions) {\n      if (!zrUtil.isArray(dimensions)) {\n        dimensions = dimensions != null ? [dimensions] : [];\n      }\n\n      return dimensions;\n    };\n\n    validateDimensions = function (list, dims) {\n      for (var i = 0; i < dims.length; i++) {\n        if (!list._dimensionInfos[dims[i]]) {\n          console.error('Unkown dimension ' + dims[i]);\n        }\n      }\n    };\n\n    cloneListForMapAndSample = function (original, excludeDimensions) {\n      var allDimensions = original.dimensions;\n      var list = new List(map(allDimensions, original.getDimensionInfo, original), original.hostModel);\n      transferProperties(list, original);\n      var storage = list._storage = {};\n      var originalStorage = original._storage;\n      var storageArr = list._storageArr = [];\n\n      for (var i = 0; i < allDimensions.length; i++) {\n        var dim = allDimensions[i];\n\n        if (originalStorage[dim]) {\n          if (zrUtil.indexOf(excludeDimensions, dim) >= 0) {\n            storage[dim] = cloneChunk(originalStorage[dim]);\n            list._rawExtent[dim] = getInitialExtent();\n            list._extent[dim] = null;\n          } else {\n            storage[dim] = originalStorage[dim];\n          }\n\n          storageArr.push(storage[dim]);\n        }\n      }\n\n      return list;\n    };\n\n    function cloneChunk(originalChunk) {\n      var Ctor = originalChunk.constructor;\n      return Ctor === Array ? originalChunk.slice() : new Ctor(originalChunk);\n    }\n\n    getInitialExtent = function () {\n      return [Infinity, -Infinity];\n    };\n\n    setItemDataAndSeriesIndex = function (child) {\n      var childECData = getECData(child);\n      var thisECData = getECData(this);\n      childECData.seriesIndex = thisECData.seriesIndex;\n      childECData.dataIndex = thisECData.dataIndex;\n      childECData.dataType = thisECData.dataType;\n    };\n\n    transferProperties = function (target, source) {\n      zrUtil.each(TRANSFERABLE_PROPERTIES.concat(source.__wrappedMethods || []), function (propName) {\n        if (source.hasOwnProperty(propName)) {\n          target[propName] = source[propName];\n        }\n      });\n      target.__wrappedMethods = source.__wrappedMethods;\n      zrUtil.each(CLONE_PROPERTIES, function (propName) {\n        target[propName] = zrUtil.clone(source[propName]);\n      });\n      target._calculationInfo = zrUtil.extend({}, source._calculationInfo);\n    };\n\n    makeIdFromName = function (list, idx) {\n      var nameList = list._nameList;\n      var idList = list._idList;\n      var nameDimIdx = list._nameDimIdx;\n      var idDimIdx = list._idDimIdx;\n      var name = nameList[idx];\n      var id = idList[idx];\n\n      if (name == null && nameDimIdx != null) {\n        nameList[idx] = name = getIdNameFromStore(list, nameDimIdx, list._nameOrdinalMeta, idx);\n      }\n\n      if (id == null && idDimIdx != null) {\n        idList[idx] = id = getIdNameFromStore(list, idDimIdx, list._idOrdinalMeta, idx);\n      }\n\n      if (id == null && name != null) {\n        var nameRepeatCount = list._nameRepeatCount;\n        var nmCnt = nameRepeatCount[name] = (nameRepeatCount[name] || 0) + 1;\n        id = name;\n\n        if (nmCnt > 1) {\n          id += '__ec__' + nmCnt;\n        }\n\n        idList[idx] = id;\n      }\n    };\n  }();\n\n  return List;\n}();\n\nexport default List;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, each, isString, defaults, extend, isObject, clone } from 'zrender/lib/core/util';\nimport { normalizeToArray } from '../../util/model';\nimport { guessOrdinal, BE_ORDINAL } from './sourceHelper';\nimport { createSourceFromSeriesDataOption, isSourceInstance } from '../Source';\nimport { VISUAL_DIMENSIONS } from '../../util/types';\nimport DataDimensionInfo from '../DataDimensionInfo';\n\nfunction completeDimensions(sysDims, source, opt) {\n  if (!isSourceInstance(source)) {\n    source = createSourceFromSeriesDataOption(source);\n  }\n\n  opt = opt || {};\n  sysDims = (sysDims || []).slice();\n  var dimsDef = (opt.dimsDef || []).slice();\n  var dataDimNameMap = createHashMap();\n  var coordDimNameMap = createHashMap();\n  var result = [];\n  var dimCount = getDimCount(source, sysDims, dimsDef, opt.dimCount);\n\n  for (var i = 0; i < dimCount; i++) {\n    var dimDefItemRaw = dimsDef[i];\n    var dimDefItem = dimsDef[i] = extend({}, isObject(dimDefItemRaw) ? dimDefItemRaw : {\n      name: dimDefItemRaw\n    });\n    var userDimName = dimDefItem.name;\n    var resultItem = result[i] = new DataDimensionInfo();\n\n    if (userDimName != null && dataDimNameMap.get(userDimName) == null) {\n      resultItem.name = resultItem.displayName = userDimName;\n      dataDimNameMap.set(userDimName, i);\n    }\n\n    dimDefItem.type != null && (resultItem.type = dimDefItem.type);\n    dimDefItem.displayName != null && (resultItem.displayName = dimDefItem.displayName);\n  }\n\n  var encodeDef = opt.encodeDef;\n\n  if (!encodeDef && opt.encodeDefaulter) {\n    encodeDef = opt.encodeDefaulter(source, dimCount);\n  }\n\n  var encodeDefMap = createHashMap(encodeDef);\n  encodeDefMap.each(function (dataDimsRaw, coordDim) {\n    var dataDims = normalizeToArray(dataDimsRaw).slice();\n\n    if (dataDims.length === 1 && !isString(dataDims[0]) && dataDims[0] < 0) {\n      encodeDefMap.set(coordDim, false);\n      return;\n    }\n\n    var validDataDims = encodeDefMap.set(coordDim, []);\n    each(dataDims, function (resultDimIdxOrName, idx) {\n      var resultDimIdx = isString(resultDimIdxOrName) ? dataDimNameMap.get(resultDimIdxOrName) : resultDimIdxOrName;\n\n      if (resultDimIdx != null && resultDimIdx < dimCount) {\n        validDataDims[idx] = resultDimIdx;\n        applyDim(result[resultDimIdx], coordDim, idx);\n      }\n    });\n  });\n  var availDimIdx = 0;\n  each(sysDims, function (sysDimItemRaw) {\n    var coordDim;\n    var sysDimItemDimsDef;\n    var sysDimItemOtherDims;\n    var sysDimItem;\n\n    if (isString(sysDimItemRaw)) {\n      coordDim = sysDimItemRaw;\n      sysDimItem = {};\n    } else {\n      sysDimItem = sysDimItemRaw;\n      coordDim = sysDimItem.name;\n      var ordinalMeta = sysDimItem.ordinalMeta;\n      sysDimItem.ordinalMeta = null;\n      sysDimItem = clone(sysDimItem);\n      sysDimItem.ordinalMeta = ordinalMeta;\n      sysDimItemDimsDef = sysDimItem.dimsDef;\n      sysDimItemOtherDims = sysDimItem.otherDims;\n      sysDimItem.name = sysDimItem.coordDim = sysDimItem.coordDimIndex = sysDimItem.dimsDef = sysDimItem.otherDims = null;\n    }\n\n    var dataDims = encodeDefMap.get(coordDim);\n\n    if (dataDims === false) {\n      return;\n    }\n\n    dataDims = normalizeToArray(dataDims);\n\n    if (!dataDims.length) {\n      for (var i = 0; i < (sysDimItemDimsDef && sysDimItemDimsDef.length || 1); i++) {\n        while (availDimIdx < result.length && result[availDimIdx].coordDim != null) {\n          availDimIdx++;\n        }\n\n        availDimIdx < result.length && dataDims.push(availDimIdx++);\n      }\n    }\n\n    each(dataDims, function (resultDimIdx, coordDimIndex) {\n      var resultItem = result[resultDimIdx];\n      applyDim(defaults(resultItem, sysDimItem), coordDim, coordDimIndex);\n\n      if (resultItem.name == null && sysDimItemDimsDef) {\n        var sysDimItemDimsDefItem = sysDimItemDimsDef[coordDimIndex];\n        !isObject(sysDimItemDimsDefItem) && (sysDimItemDimsDefItem = {\n          name: sysDimItemDimsDefItem\n        });\n        resultItem.name = resultItem.displayName = sysDimItemDimsDefItem.name;\n        resultItem.defaultTooltip = sysDimItemDimsDefItem.defaultTooltip;\n      }\n\n      sysDimItemOtherDims && defaults(resultItem.otherDims, sysDimItemOtherDims);\n    });\n  });\n\n  function applyDim(resultItem, coordDim, coordDimIndex) {\n    if (VISUAL_DIMENSIONS.get(coordDim) != null) {\n      resultItem.otherDims[coordDim] = coordDimIndex;\n    } else {\n      resultItem.coordDim = coordDim;\n      resultItem.coordDimIndex = coordDimIndex;\n      coordDimNameMap.set(coordDim, true);\n    }\n  }\n\n  var generateCoord = opt.generateCoord;\n  var generateCoordCount = opt.generateCoordCount;\n  var fromZero = generateCoordCount != null;\n  generateCoordCount = generateCoord ? generateCoordCount || 1 : 0;\n  var extra = generateCoord || 'value';\n\n  for (var resultDimIdx = 0; resultDimIdx < dimCount; resultDimIdx++) {\n    var resultItem = result[resultDimIdx] = result[resultDimIdx] || new DataDimensionInfo();\n    var coordDim = resultItem.coordDim;\n\n    if (coordDim == null) {\n      resultItem.coordDim = genName(extra, coordDimNameMap, fromZero);\n      resultItem.coordDimIndex = 0;\n\n      if (!generateCoord || generateCoordCount <= 0) {\n        resultItem.isExtraCoord = true;\n      }\n\n      generateCoordCount--;\n    }\n\n    resultItem.name == null && (resultItem.name = genName(resultItem.coordDim, dataDimNameMap, false));\n\n    if (resultItem.type == null && (guessOrdinal(source, resultDimIdx) === BE_ORDINAL.Must || resultItem.isExtraCoord && (resultItem.otherDims.itemName != null || resultItem.otherDims.seriesName != null))) {\n      resultItem.type = 'ordinal';\n    }\n  }\n\n  return result;\n}\n\nfunction getDimCount(source, sysDims, dimsDef, optDimCount) {\n  var dimCount = Math.max(source.dimensionsDetectedCount || 1, sysDims.length, dimsDef.length, optDimCount || 0);\n  each(sysDims, function (sysDimItem) {\n    var sysDimItemDimsDef;\n\n    if (isObject(sysDimItem) && (sysDimItemDimsDef = sysDimItem.dimsDef)) {\n      dimCount = Math.max(dimCount, sysDimItemDimsDef.length);\n    }\n  });\n  return dimCount;\n}\n\nfunction genName(name, map, fromZero) {\n  if (fromZero || map.get(name) != null) {\n    var i = 0;\n\n    while (map.get(name + i) != null) {\n      i++;\n    }\n\n    name += i;\n  }\n\n  map.set(name, true);\n  return name;\n}\n\nexport default completeDimensions;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport completeDimensions from './completeDimensions';\nexport default function createDimensions(source, opt) {\n  opt = opt || {};\n  return completeDimensions(opt.coordDimensions || [], source, {\n    dimsDef: opt.dimensionsDefine || source.dimensionsDefine,\n    encodeDef: opt.encodeDefine || source.encodeDefine,\n    dimCount: opt.dimensionsCount,\n    encodeDefaulter: opt.encodeDefaulter,\n    generateCoord: opt.generateCoord,\n    generateCoordCount: opt.generateCoordCount\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, retrieve, each } from 'zrender/lib/core/util';\nimport { SINGLE_REFERRING } from '../util/model';\n\nvar CoordSysInfo = function () {\n  function CoordSysInfo(coordSysName) {\n    this.coordSysDims = [];\n    this.axisMap = createHashMap();\n    this.categoryAxisMap = createHashMap();\n    this.coordSysName = coordSysName;\n  }\n\n  return CoordSysInfo;\n}();\n\nexport function getCoordSysInfoBySeries(seriesModel) {\n  var coordSysName = seriesModel.get('coordinateSystem');\n  var result = new CoordSysInfo(coordSysName);\n  var fetch = fetchers[coordSysName];\n\n  if (fetch) {\n    fetch(seriesModel, result, result.axisMap, result.categoryAxisMap);\n    return result;\n  }\n}\nvar fetchers = {\n  cartesian2d: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var xAxisModel = seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0];\n    var yAxisModel = seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!xAxisModel) {\n        throw new Error('xAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('xAxisId'), 0) + '\" not found');\n      }\n\n      if (!yAxisModel) {\n        throw new Error('yAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('yAxisId'), 0) + '\" not found');\n      }\n    }\n\n    result.coordSysDims = ['x', 'y'];\n    axisMap.set('x', xAxisModel);\n    axisMap.set('y', yAxisModel);\n\n    if (isCategory(xAxisModel)) {\n      categoryAxisMap.set('x', xAxisModel);\n      result.firstCategoryDimIndex = 0;\n    }\n\n    if (isCategory(yAxisModel)) {\n      categoryAxisMap.set('y', yAxisModel);\n      result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\n    }\n  },\n  singleAxis: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var singleAxisModel = seriesModel.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!singleAxisModel) {\n        throw new Error('singleAxis should be specified.');\n      }\n    }\n\n    result.coordSysDims = ['single'];\n    axisMap.set('single', singleAxisModel);\n\n    if (isCategory(singleAxisModel)) {\n      categoryAxisMap.set('single', singleAxisModel);\n      result.firstCategoryDimIndex = 0;\n    }\n  },\n  polar: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var polarModel = seriesModel.getReferringComponents('polar', SINGLE_REFERRING).models[0];\n    var radiusAxisModel = polarModel.findAxisModel('radiusAxis');\n    var angleAxisModel = polarModel.findAxisModel('angleAxis');\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!angleAxisModel) {\n        throw new Error('angleAxis option not found');\n      }\n\n      if (!radiusAxisModel) {\n        throw new Error('radiusAxis option not found');\n      }\n    }\n\n    result.coordSysDims = ['radius', 'angle'];\n    axisMap.set('radius', radiusAxisModel);\n    axisMap.set('angle', angleAxisModel);\n\n    if (isCategory(radiusAxisModel)) {\n      categoryAxisMap.set('radius', radiusAxisModel);\n      result.firstCategoryDimIndex = 0;\n    }\n\n    if (isCategory(angleAxisModel)) {\n      categoryAxisMap.set('angle', angleAxisModel);\n      result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\n    }\n  },\n  geo: function (seriesModel, result, axisMap, categoryAxisMap) {\n    result.coordSysDims = ['lng', 'lat'];\n  },\n  parallel: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var ecModel = seriesModel.ecModel;\n    var parallelModel = ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\n    var coordSysDims = result.coordSysDims = parallelModel.dimensions.slice();\n    each(parallelModel.parallelAxisIndex, function (axisIndex, index) {\n      var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\n      var axisDim = coordSysDims[index];\n      axisMap.set(axisDim, axisModel);\n\n      if (isCategory(axisModel)) {\n        categoryAxisMap.set(axisDim, axisModel);\n\n        if (result.firstCategoryDimIndex == null) {\n          result.firstCategoryDimIndex = index;\n        }\n      }\n    });\n  }\n};\n\nfunction isCategory(axisModel) {\n  return axisModel.get('type') === 'category';\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, isString } from 'zrender/lib/core/util';\nexport function enableDataStack(seriesModel, dimensionInfoList, opt) {\n  opt = opt || {};\n  var byIndex = opt.byIndex;\n  var stackedCoordDimension = opt.stackedCoordDimension;\n  var mayStack = !!(seriesModel && seriesModel.get('stack'));\n  var stackedByDimInfo;\n  var stackedDimInfo;\n  var stackResultDimension;\n  var stackedOverDimension;\n  each(dimensionInfoList, function (dimensionInfo, index) {\n    if (isString(dimensionInfo)) {\n      dimensionInfoList[index] = dimensionInfo = {\n        name: dimensionInfo\n      };\n    }\n\n    if (mayStack && !dimensionInfo.isExtraCoord) {\n      if (!byIndex && !stackedByDimInfo && dimensionInfo.ordinalMeta) {\n        stackedByDimInfo = dimensionInfo;\n      }\n\n      if (!stackedDimInfo && dimensionInfo.type !== 'ordinal' && dimensionInfo.type !== 'time' && (!stackedCoordDimension || stackedCoordDimension === dimensionInfo.coordDim)) {\n        stackedDimInfo = dimensionInfo;\n      }\n    }\n  });\n\n  if (stackedDimInfo && !byIndex && !stackedByDimInfo) {\n    byIndex = true;\n  }\n\n  if (stackedDimInfo) {\n    stackResultDimension = '__\\0ecstackresult';\n    stackedOverDimension = '__\\0ecstackedover';\n\n    if (stackedByDimInfo) {\n      stackedByDimInfo.createInvertedIndices = true;\n    }\n\n    var stackedDimCoordDim_1 = stackedDimInfo.coordDim;\n    var stackedDimType = stackedDimInfo.type;\n    var stackedDimCoordIndex_1 = 0;\n    each(dimensionInfoList, function (dimensionInfo) {\n      if (dimensionInfo.coordDim === stackedDimCoordDim_1) {\n        stackedDimCoordIndex_1++;\n      }\n    });\n    dimensionInfoList.push({\n      name: stackResultDimension,\n      coordDim: stackedDimCoordDim_1,\n      coordDimIndex: stackedDimCoordIndex_1,\n      type: stackedDimType,\n      isExtraCoord: true,\n      isCalculationCoord: true\n    });\n    stackedDimCoordIndex_1++;\n    dimensionInfoList.push({\n      name: stackedOverDimension,\n      coordDim: stackedOverDimension,\n      coordDimIndex: stackedDimCoordIndex_1,\n      type: stackedDimType,\n      isExtraCoord: true,\n      isCalculationCoord: true\n    });\n  }\n\n  return {\n    stackedDimension: stackedDimInfo && stackedDimInfo.name,\n    stackedByDimension: stackedByDimInfo && stackedByDimInfo.name,\n    isStackedByIndex: byIndex,\n    stackedOverDimension: stackedOverDimension,\n    stackResultDimension: stackResultDimension\n  };\n}\nexport function isDimensionStacked(data, stackedDim) {\n  return !!stackedDim && stackedDim === data.getCalculationInfo('stackedDimension');\n}\nexport function getStackedDimension(data, targetDim) {\n  return isDimensionStacked(data, targetDim) ? data.getCalculationInfo('stackResultDimension') : targetDim;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport List from '../../data/List';\nimport createDimensions from '../../data/helper/createDimensions';\nimport { getDimensionTypeByAxis } from '../../data/helper/dimensionHelper';\nimport { getDataItemValue } from '../../util/model';\nimport CoordinateSystem from '../../core/CoordinateSystem';\nimport { getCoordSysInfoBySeries } from '../../model/referHelper';\nimport { createSourceFromSeriesDataOption, isSourceInstance } from '../../data/Source';\nimport { enableDataStack } from '../../data/helper/dataStackHelper';\nimport { makeSeriesEncodeForAxisCoordSys } from '../../data/helper/sourceHelper';\nimport { SOURCE_FORMAT_ORIGINAL } from '../../util/types';\n\nfunction createListFromArray(source, seriesModel, opt) {\n  opt = opt || {};\n\n  if (!isSourceInstance(source)) {\n    source = createSourceFromSeriesDataOption(source);\n  }\n\n  var coordSysName = seriesModel.get('coordinateSystem');\n  var registeredCoordSys = CoordinateSystem.get(coordSysName);\n  var coordSysInfo = getCoordSysInfoBySeries(seriesModel);\n  var coordSysDimDefs;\n\n  if (coordSysInfo && coordSysInfo.coordSysDims) {\n    coordSysDimDefs = zrUtil.map(coordSysInfo.coordSysDims, function (dim) {\n      var dimInfo = {\n        name: dim\n      };\n      var axisModel = coordSysInfo.axisMap.get(dim);\n\n      if (axisModel) {\n        var axisType = axisModel.get('type');\n        dimInfo.type = getDimensionTypeByAxis(axisType);\n      }\n\n      return dimInfo;\n    });\n  }\n\n  if (!coordSysDimDefs) {\n    coordSysDimDefs = registeredCoordSys && (registeredCoordSys.getDimensionsInfo ? registeredCoordSys.getDimensionsInfo() : registeredCoordSys.dimensions.slice()) || ['x', 'y'];\n  }\n\n  var useEncodeDefaulter = opt.useEncodeDefaulter;\n  var dimInfoList = createDimensions(source, {\n    coordDimensions: coordSysDimDefs,\n    generateCoord: opt.generateCoord,\n    encodeDefaulter: zrUtil.isFunction(useEncodeDefaulter) ? useEncodeDefaulter : useEncodeDefaulter ? zrUtil.curry(makeSeriesEncodeForAxisCoordSys, coordSysDimDefs, seriesModel) : null\n  });\n  var firstCategoryDimIndex;\n  var hasNameEncode;\n  coordSysInfo && zrUtil.each(dimInfoList, function (dimInfo, dimIndex) {\n    var coordDim = dimInfo.coordDim;\n    var categoryAxisModel = coordSysInfo.categoryAxisMap.get(coordDim);\n\n    if (categoryAxisModel) {\n      if (firstCategoryDimIndex == null) {\n        firstCategoryDimIndex = dimIndex;\n      }\n\n      dimInfo.ordinalMeta = categoryAxisModel.getOrdinalMeta();\n\n      if (opt.createInvertedIndices) {\n        dimInfo.createInvertedIndices = true;\n      }\n    }\n\n    if (dimInfo.otherDims.itemName != null) {\n      hasNameEncode = true;\n    }\n  });\n\n  if (!hasNameEncode && firstCategoryDimIndex != null) {\n    dimInfoList[firstCategoryDimIndex].otherDims.itemName = 0;\n  }\n\n  var stackCalculationInfo = enableDataStack(seriesModel, dimInfoList);\n  var list = new List(dimInfoList, seriesModel);\n  list.setCalculationInfo(stackCalculationInfo);\n  var dimValueGetter = firstCategoryDimIndex != null && isNeedCompleteOrdinalData(source) ? function (itemOpt, dimName, dataIndex, dimIndex) {\n    return dimIndex === firstCategoryDimIndex ? dataIndex : this.defaultDimValueGetter(itemOpt, dimName, dataIndex, dimIndex);\n  } : null;\n  list.hasItemOption = false;\n  list.initData(source, null, dimValueGetter);\n  return list;\n}\n\nfunction isNeedCompleteOrdinalData(source) {\n  if (source.sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n    var sampleItem = firstDataNotNull(source.data || []);\n    return sampleItem != null && !zrUtil.isArray(getDataItemValue(sampleItem));\n  }\n}\n\nfunction firstDataNotNull(data) {\n  var i = 0;\n\n  while (i < data.length && data[i] == null) {\n    i++;\n  }\n\n  return data[i];\n}\n\nexport default createListFromArray;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as clazzUtil from '../util/clazz';\n\nvar Scale = function () {\n  function Scale(setting) {\n    this._setting = setting || {};\n    this._extent = [Infinity, -Infinity];\n  }\n\n  Scale.prototype.getSetting = function (name) {\n    return this._setting[name];\n  };\n\n  Scale.prototype.unionExtent = function (other) {\n    var extent = this._extent;\n    other[0] < extent[0] && (extent[0] = other[0]);\n    other[1] > extent[1] && (extent[1] = other[1]);\n  };\n\n  Scale.prototype.unionExtentFromData = function (data, dim) {\n    this.unionExtent(data.getApproximateExtent(dim));\n  };\n\n  Scale.prototype.getExtent = function () {\n    return this._extent.slice();\n  };\n\n  Scale.prototype.setExtent = function (start, end) {\n    var thisExtent = this._extent;\n\n    if (!isNaN(start)) {\n      thisExtent[0] = start;\n    }\n\n    if (!isNaN(end)) {\n      thisExtent[1] = end;\n    }\n  };\n\n  Scale.prototype.isInExtentRange = function (value) {\n    return this._extent[0] <= value && this._extent[1] >= value;\n  };\n\n  Scale.prototype.isBlank = function () {\n    return this._isBlank;\n  };\n\n  Scale.prototype.setBlank = function (isBlank) {\n    this._isBlank = isBlank;\n  };\n\n  return Scale;\n}();\n\nclazzUtil.enableClassManagement(Scale);\nexport default Scale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, isObject, map } from 'zrender/lib/core/util';\n\nvar OrdinalMeta = function () {\n  function OrdinalMeta(opt) {\n    this.categories = opt.categories || [];\n    this._needCollect = opt.needCollect;\n    this._deduplication = opt.deduplication;\n  }\n\n  OrdinalMeta.createByAxisModel = function (axisModel) {\n    var option = axisModel.option;\n    var data = option.data;\n    var categories = data && map(data, getName);\n    return new OrdinalMeta({\n      categories: categories,\n      needCollect: !categories,\n      deduplication: option.dedplication !== false\n    });\n  };\n\n  ;\n\n  OrdinalMeta.prototype.getOrdinal = function (category) {\n    return this._getOrCreateMap().get(category);\n  };\n\n  OrdinalMeta.prototype.parseAndCollect = function (category) {\n    var index;\n    var needCollect = this._needCollect;\n\n    if (typeof category !== 'string' && !needCollect) {\n      return category;\n    }\n\n    if (needCollect && !this._deduplication) {\n      index = this.categories.length;\n      this.categories[index] = category;\n      return index;\n    }\n\n    var map = this._getOrCreateMap();\n\n    index = map.get(category);\n\n    if (index == null) {\n      if (needCollect) {\n        index = this.categories.length;\n        this.categories[index] = category;\n        map.set(category, index);\n      } else {\n        index = NaN;\n      }\n    }\n\n    return index;\n  };\n\n  OrdinalMeta.prototype._getOrCreateMap = function () {\n    return this._map || (this._map = createHashMap(this.categories));\n  };\n\n  return OrdinalMeta;\n}();\n\nfunction getName(obj) {\n  if (isObject(obj) && obj.value != null) {\n    return obj.value;\n  } else {\n    return obj + '';\n  }\n}\n\nexport default OrdinalMeta;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as numberUtil from '../util/number';\nvar roundNumber = numberUtil.round;\nexport function intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval) {\n  var result = {};\n  var span = extent[1] - extent[0];\n  var interval = result.interval = numberUtil.nice(span / splitNumber, true);\n\n  if (minInterval != null && interval < minInterval) {\n    interval = result.interval = minInterval;\n  }\n\n  if (maxInterval != null && interval > maxInterval) {\n    interval = result.interval = maxInterval;\n  }\n\n  var precision = result.intervalPrecision = getIntervalPrecision(interval);\n  var niceTickExtent = result.niceTickExtent = [roundNumber(Math.ceil(extent[0] / interval) * interval, precision), roundNumber(Math.floor(extent[1] / interval) * interval, precision)];\n  fixExtent(niceTickExtent, extent);\n  return result;\n}\nexport function getIntervalPrecision(interval) {\n  return numberUtil.getPrecisionSafe(interval) + 2;\n}\n\nfunction clamp(niceTickExtent, idx, extent) {\n  niceTickExtent[idx] = Math.max(Math.min(niceTickExtent[idx], extent[1]), extent[0]);\n}\n\nexport function fixExtent(niceTickExtent, extent) {\n  !isFinite(niceTickExtent[0]) && (niceTickExtent[0] = extent[0]);\n  !isFinite(niceTickExtent[1]) && (niceTickExtent[1] = extent[1]);\n  clamp(niceTickExtent, 0, extent);\n  clamp(niceTickExtent, 1, extent);\n\n  if (niceTickExtent[0] > niceTickExtent[1]) {\n    niceTickExtent[0] = niceTickExtent[1];\n  }\n}\nexport function contain(val, extent) {\n  return val >= extent[0] && val <= extent[1];\n}\nexport function normalize(val, extent) {\n  if (extent[1] === extent[0]) {\n    return 0.5;\n  }\n\n  return (val - extent[0]) / (extent[1] - extent[0]);\n}\nexport function scale(val, extent) {\n  return val * (extent[1] - extent[0]) + extent[0];\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Scale from './Scale';\nimport OrdinalMeta from '../data/OrdinalMeta';\nimport * as scaleHelper from './helper';\nimport { isArray, map, isObject } from 'zrender/lib/core/util';\n\nvar OrdinalScale = function (_super) {\n  __extends(OrdinalScale, _super);\n\n  function OrdinalScale(setting) {\n    var _this = _super.call(this, setting) || this;\n\n    _this.type = 'ordinal';\n\n    var ordinalMeta = _this.getSetting('ordinalMeta');\n\n    if (!ordinalMeta) {\n      ordinalMeta = new OrdinalMeta({});\n    }\n\n    if (isArray(ordinalMeta)) {\n      ordinalMeta = new OrdinalMeta({\n        categories: map(ordinalMeta, function (item) {\n          return isObject(item) ? item.value : item;\n        })\n      });\n    }\n\n    _this._ordinalMeta = ordinalMeta;\n    _this._extent = _this.getSetting('extent') || [0, ordinalMeta.categories.length - 1];\n    return _this;\n  }\n\n  OrdinalScale.prototype.parse = function (val) {\n    return typeof val === 'string' ? this._ordinalMeta.getOrdinal(val) : Math.round(val);\n  };\n\n  OrdinalScale.prototype.contain = function (rank) {\n    rank = this.parse(rank);\n    return scaleHelper.contain(rank, this._extent) && this._ordinalMeta.categories[rank] != null;\n  };\n\n  OrdinalScale.prototype.normalize = function (val) {\n    val = this._getTickNumber(this.parse(val));\n    return scaleHelper.normalize(val, this._extent);\n  };\n\n  OrdinalScale.prototype.scale = function (val) {\n    val = Math.round(scaleHelper.scale(val, this._extent));\n    return this.getRawOrdinalNumber(val);\n  };\n\n  OrdinalScale.prototype.getTicks = function () {\n    var ticks = [];\n    var extent = this._extent;\n    var rank = extent[0];\n\n    while (rank <= extent[1]) {\n      ticks.push({\n        value: rank\n      });\n      rank++;\n    }\n\n    return ticks;\n  };\n\n  OrdinalScale.prototype.getMinorTicks = function (splitNumber) {\n    return;\n  };\n\n  OrdinalScale.prototype.setSortInfo = function (info) {\n    if (info == null) {\n      this._ordinalNumbersByTick = this._ticksByOrdinalNumber = null;\n      return;\n    }\n\n    var infoOrdinalNumbers = info.ordinalNumbers;\n    var ordinalsByTick = this._ordinalNumbersByTick = [];\n    var ticksByOrdinal = this._ticksByOrdinalNumber = [];\n    var tickNum = 0;\n    var allCategoryLen = this._ordinalMeta.categories.length;\n\n    for (var len = Math.min(allCategoryLen, infoOrdinalNumbers.length); tickNum < len; ++tickNum) {\n      var ordinalNumber = infoOrdinalNumbers[tickNum];\n      ordinalsByTick[tickNum] = ordinalNumber;\n      ticksByOrdinal[ordinalNumber] = tickNum;\n    }\n\n    var unusedOrdinal = 0;\n\n    for (; tickNum < allCategoryLen; ++tickNum) {\n      while (ticksByOrdinal[unusedOrdinal] != null) {\n        unusedOrdinal++;\n      }\n\n      ;\n      ordinalsByTick.push(unusedOrdinal);\n      ticksByOrdinal[unusedOrdinal] = tickNum;\n    }\n  };\n\n  OrdinalScale.prototype._getTickNumber = function (ordinal) {\n    var ticksByOrdinalNumber = this._ticksByOrdinalNumber;\n    return ticksByOrdinalNumber && ordinal >= 0 && ordinal < ticksByOrdinalNumber.length ? ticksByOrdinalNumber[ordinal] : ordinal;\n  };\n\n  OrdinalScale.prototype.getRawOrdinalNumber = function (tickNumber) {\n    var ordinalNumbersByTick = this._ordinalNumbersByTick;\n    return ordinalNumbersByTick && tickNumber >= 0 && tickNumber < ordinalNumbersByTick.length ? ordinalNumbersByTick[tickNumber] : tickNumber;\n  };\n\n  OrdinalScale.prototype.getLabel = function (tick) {\n    if (!this.isBlank()) {\n      var ordinalNumber = this.getRawOrdinalNumber(tick.value);\n      var cateogry = this._ordinalMeta.categories[ordinalNumber];\n      return cateogry == null ? '' : cateogry + '';\n    }\n  };\n\n  OrdinalScale.prototype.count = function () {\n    return this._extent[1] - this._extent[0] + 1;\n  };\n\n  OrdinalScale.prototype.unionExtentFromData = function (data, dim) {\n    this.unionExtent(data.getApproximateExtent(dim));\n  };\n\n  OrdinalScale.prototype.isInExtentRange = function (value) {\n    value = this._getTickNumber(value);\n    return this._extent[0] <= value && this._extent[1] >= value;\n  };\n\n  OrdinalScale.prototype.getOrdinalMeta = function () {\n    return this._ordinalMeta;\n  };\n\n  OrdinalScale.prototype.niceTicks = function () {};\n\n  OrdinalScale.prototype.niceExtent = function () {};\n\n  OrdinalScale.type = 'ordinal';\n  return OrdinalScale;\n}(Scale);\n\nScale.registerClass(OrdinalScale);\nexport default OrdinalScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as numberUtil from '../util/number';\nimport * as formatUtil from '../util/format';\nimport Scale from './Scale';\nimport * as helper from './helper';\nvar roundNumber = numberUtil.round;\n\nvar IntervalScale = function (_super) {\n  __extends(IntervalScale, _super);\n\n  function IntervalScale() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'interval';\n    _this._interval = 0;\n    _this._intervalPrecision = 2;\n    return _this;\n  }\n\n  IntervalScale.prototype.parse = function (val) {\n    return val;\n  };\n\n  IntervalScale.prototype.contain = function (val) {\n    return helper.contain(val, this._extent);\n  };\n\n  IntervalScale.prototype.normalize = function (val) {\n    return helper.normalize(val, this._extent);\n  };\n\n  IntervalScale.prototype.scale = function (val) {\n    return helper.scale(val, this._extent);\n  };\n\n  IntervalScale.prototype.setExtent = function (start, end) {\n    var thisExtent = this._extent;\n\n    if (!isNaN(start)) {\n      thisExtent[0] = parseFloat(start);\n    }\n\n    if (!isNaN(end)) {\n      thisExtent[1] = parseFloat(end);\n    }\n  };\n\n  IntervalScale.prototype.unionExtent = function (other) {\n    var extent = this._extent;\n    other[0] < extent[0] && (extent[0] = other[0]);\n    other[1] > extent[1] && (extent[1] = other[1]);\n    this.setExtent(extent[0], extent[1]);\n  };\n\n  IntervalScale.prototype.getInterval = function () {\n    return this._interval;\n  };\n\n  IntervalScale.prototype.setInterval = function (interval) {\n    this._interval = interval;\n    this._niceExtent = this._extent.slice();\n    this._intervalPrecision = helper.getIntervalPrecision(interval);\n  };\n\n  IntervalScale.prototype.getTicks = function (expandToNicedExtent) {\n    var interval = this._interval;\n    var extent = this._extent;\n    var niceTickExtent = this._niceExtent;\n    var intervalPrecision = this._intervalPrecision;\n    var ticks = [];\n\n    if (!interval) {\n      return ticks;\n    }\n\n    var safeLimit = 10000;\n\n    if (extent[0] < niceTickExtent[0]) {\n      if (expandToNicedExtent) {\n        ticks.push({\n          value: roundNumber(niceTickExtent[0] - interval, intervalPrecision)\n        });\n      } else {\n        ticks.push({\n          value: extent[0]\n        });\n      }\n    }\n\n    var tick = niceTickExtent[0];\n\n    while (tick <= niceTickExtent[1]) {\n      ticks.push({\n        value: tick\n      });\n      tick = roundNumber(tick + interval, intervalPrecision);\n\n      if (tick === ticks[ticks.length - 1].value) {\n        break;\n      }\n\n      if (ticks.length > safeLimit) {\n        return [];\n      }\n    }\n\n    var lastNiceTick = ticks.length ? ticks[ticks.length - 1].value : niceTickExtent[1];\n\n    if (extent[1] > lastNiceTick) {\n      if (expandToNicedExtent) {\n        ticks.push({\n          value: roundNumber(lastNiceTick + interval, intervalPrecision)\n        });\n      } else {\n        ticks.push({\n          value: extent[1]\n        });\n      }\n    }\n\n    return ticks;\n  };\n\n  IntervalScale.prototype.getMinorTicks = function (splitNumber) {\n    var ticks = this.getTicks(true);\n    var minorTicks = [];\n    var extent = this.getExtent();\n\n    for (var i = 1; i < ticks.length; i++) {\n      var nextTick = ticks[i];\n      var prevTick = ticks[i - 1];\n      var count = 0;\n      var minorTicksGroup = [];\n      var interval = nextTick.value - prevTick.value;\n      var minorInterval = interval / splitNumber;\n\n      while (count < splitNumber - 1) {\n        var minorTick = roundNumber(prevTick.value + (count + 1) * minorInterval);\n\n        if (minorTick > extent[0] && minorTick < extent[1]) {\n          minorTicksGroup.push(minorTick);\n        }\n\n        count++;\n      }\n\n      minorTicks.push(minorTicksGroup);\n    }\n\n    return minorTicks;\n  };\n\n  IntervalScale.prototype.getLabel = function (data, opt) {\n    if (data == null) {\n      return '';\n    }\n\n    var precision = opt && opt.precision;\n\n    if (precision == null) {\n      precision = numberUtil.getPrecisionSafe(data.value) || 0;\n    } else if (precision === 'auto') {\n      precision = this._intervalPrecision;\n    }\n\n    var dataNum = roundNumber(data.value, precision, true);\n    return formatUtil.addCommas(dataNum);\n  };\n\n  IntervalScale.prototype.niceTicks = function (splitNumber, minInterval, maxInterval) {\n    splitNumber = splitNumber || 5;\n    var extent = this._extent;\n    var span = extent[1] - extent[0];\n\n    if (!isFinite(span)) {\n      return;\n    }\n\n    if (span < 0) {\n      span = -span;\n      extent.reverse();\n    }\n\n    var result = helper.intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval);\n    this._intervalPrecision = result.intervalPrecision;\n    this._interval = result.interval;\n    this._niceExtent = result.niceTickExtent;\n  };\n\n  IntervalScale.prototype.niceExtent = function (opt) {\n    var extent = this._extent;\n\n    if (extent[0] === extent[1]) {\n      if (extent[0] !== 0) {\n        var expandSize = extent[0];\n\n        if (!opt.fixMax) {\n          extent[1] += expandSize / 2;\n          extent[0] -= expandSize / 2;\n        } else {\n          extent[0] -= expandSize / 2;\n        }\n      } else {\n        extent[1] = 1;\n      }\n    }\n\n    var span = extent[1] - extent[0];\n\n    if (!isFinite(span)) {\n      extent[0] = 0;\n      extent[1] = 1;\n    }\n\n    this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\n    var interval = this._interval;\n\n    if (!opt.fixMin) {\n      extent[0] = roundNumber(Math.floor(extent[0] / interval) * interval);\n    }\n\n    if (!opt.fixMax) {\n      extent[1] = roundNumber(Math.ceil(extent[1] / interval) * interval);\n    }\n  };\n\n  IntervalScale.type = 'interval';\n  return IntervalScale;\n}(Scale);\n\nScale.registerClass(IntervalScale);\nexport default IntervalScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parsePercent } from '../util/number';\nimport { isDimensionStacked } from '../data/helper/dataStackHelper';\nimport createRenderPlanner from '../chart/helper/createRenderPlanner';\nvar STACK_PREFIX = '__ec_stack_';\nvar LARGE_BAR_MIN_WIDTH = 0.5;\nvar LargeArr = typeof Float32Array !== 'undefined' ? Float32Array : Array;\n\nfunction getSeriesStackId(seriesModel) {\n  return seriesModel.get('stack') || STACK_PREFIX + seriesModel.seriesIndex;\n}\n\nfunction getAxisKey(axis) {\n  return axis.dim + axis.index;\n}\n\nexport function getLayoutOnAxis(opt) {\n  var params = [];\n  var baseAxis = opt.axis;\n  var axisKey = 'axis0';\n\n  if (baseAxis.type !== 'category') {\n    return;\n  }\n\n  var bandWidth = baseAxis.getBandWidth();\n\n  for (var i = 0; i < opt.count || 0; i++) {\n    params.push(zrUtil.defaults({\n      bandWidth: bandWidth,\n      axisKey: axisKey,\n      stackId: STACK_PREFIX + i\n    }, opt));\n  }\n\n  var widthAndOffsets = doCalBarWidthAndOffset(params);\n  var result = [];\n\n  for (var i = 0; i < opt.count; i++) {\n    var item = widthAndOffsets[axisKey][STACK_PREFIX + i];\n    item.offsetCenter = item.offset + item.width / 2;\n    result.push(item);\n  }\n\n  return result;\n}\nexport function prepareLayoutBarSeries(seriesType, ecModel) {\n  var seriesModels = [];\n  ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n    if (isOnCartesian(seriesModel) && !isInLargeMode(seriesModel)) {\n      seriesModels.push(seriesModel);\n    }\n  });\n  return seriesModels;\n}\n\nfunction getValueAxesMinGaps(barSeries) {\n  var axisValues = {};\n  zrUtil.each(barSeries, function (seriesModel) {\n    var cartesian = seriesModel.coordinateSystem;\n    var baseAxis = cartesian.getBaseAxis();\n\n    if (baseAxis.type !== 'time' && baseAxis.type !== 'value') {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var key = baseAxis.dim + '_' + baseAxis.index;\n    var dim = data.mapDimension(baseAxis.dim);\n\n    for (var i = 0, cnt = data.count(); i < cnt; ++i) {\n      var value = data.get(dim, i);\n\n      if (!axisValues[key]) {\n        axisValues[key] = [value];\n      } else {\n        axisValues[key].push(value);\n      }\n    }\n  });\n  var axisMinGaps = {};\n\n  for (var key in axisValues) {\n    if (axisValues.hasOwnProperty(key)) {\n      var valuesInAxis = axisValues[key];\n\n      if (valuesInAxis) {\n        valuesInAxis.sort(function (a, b) {\n          return a - b;\n        });\n        var min = null;\n\n        for (var j = 1; j < valuesInAxis.length; ++j) {\n          var delta = valuesInAxis[j] - valuesInAxis[j - 1];\n\n          if (delta > 0) {\n            min = min === null ? delta : Math.min(min, delta);\n          }\n        }\n\n        axisMinGaps[key] = min;\n      }\n    }\n  }\n\n  return axisMinGaps;\n}\n\nexport function makeColumnLayout(barSeries) {\n  var axisMinGaps = getValueAxesMinGaps(barSeries);\n  var seriesInfoList = [];\n  zrUtil.each(barSeries, function (seriesModel) {\n    var cartesian = seriesModel.coordinateSystem;\n    var baseAxis = cartesian.getBaseAxis();\n    var axisExtent = baseAxis.getExtent();\n    var bandWidth;\n\n    if (baseAxis.type === 'category') {\n      bandWidth = baseAxis.getBandWidth();\n    } else if (baseAxis.type === 'value' || baseAxis.type === 'time') {\n      var key = baseAxis.dim + '_' + baseAxis.index;\n      var minGap = axisMinGaps[key];\n      var extentSpan = Math.abs(axisExtent[1] - axisExtent[0]);\n      var scale = baseAxis.scale.getExtent();\n      var scaleSpan = Math.abs(scale[1] - scale[0]);\n      bandWidth = minGap ? extentSpan / scaleSpan * minGap : extentSpan;\n    } else {\n      var data = seriesModel.getData();\n      bandWidth = Math.abs(axisExtent[1] - axisExtent[0]) / data.count();\n    }\n\n    var barWidth = parsePercent(seriesModel.get('barWidth'), bandWidth);\n    var barMaxWidth = parsePercent(seriesModel.get('barMaxWidth'), bandWidth);\n    var barMinWidth = parsePercent(seriesModel.get('barMinWidth') || 1, bandWidth);\n    var barGap = seriesModel.get('barGap');\n    var barCategoryGap = seriesModel.get('barCategoryGap');\n    seriesInfoList.push({\n      bandWidth: bandWidth,\n      barWidth: barWidth,\n      barMaxWidth: barMaxWidth,\n      barMinWidth: barMinWidth,\n      barGap: barGap,\n      barCategoryGap: barCategoryGap,\n      axisKey: getAxisKey(baseAxis),\n      stackId: getSeriesStackId(seriesModel)\n    });\n  });\n  return doCalBarWidthAndOffset(seriesInfoList);\n}\n\nfunction doCalBarWidthAndOffset(seriesInfoList) {\n  var columnsMap = {};\n  zrUtil.each(seriesInfoList, function (seriesInfo, idx) {\n    var axisKey = seriesInfo.axisKey;\n    var bandWidth = seriesInfo.bandWidth;\n    var columnsOnAxis = columnsMap[axisKey] || {\n      bandWidth: bandWidth,\n      remainedWidth: bandWidth,\n      autoWidthCount: 0,\n      categoryGap: null,\n      gap: '20%',\n      stacks: {}\n    };\n    var stacks = columnsOnAxis.stacks;\n    columnsMap[axisKey] = columnsOnAxis;\n    var stackId = seriesInfo.stackId;\n\n    if (!stacks[stackId]) {\n      columnsOnAxis.autoWidthCount++;\n    }\n\n    stacks[stackId] = stacks[stackId] || {\n      width: 0,\n      maxWidth: 0\n    };\n    var barWidth = seriesInfo.barWidth;\n\n    if (barWidth && !stacks[stackId].width) {\n      stacks[stackId].width = barWidth;\n      barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\n      columnsOnAxis.remainedWidth -= barWidth;\n    }\n\n    var barMaxWidth = seriesInfo.barMaxWidth;\n    barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\n    var barMinWidth = seriesInfo.barMinWidth;\n    barMinWidth && (stacks[stackId].minWidth = barMinWidth);\n    var barGap = seriesInfo.barGap;\n    barGap != null && (columnsOnAxis.gap = barGap);\n    var barCategoryGap = seriesInfo.barCategoryGap;\n    barCategoryGap != null && (columnsOnAxis.categoryGap = barCategoryGap);\n  });\n  var result = {};\n  zrUtil.each(columnsMap, function (columnsOnAxis, coordSysName) {\n    result[coordSysName] = {};\n    var stacks = columnsOnAxis.stacks;\n    var bandWidth = columnsOnAxis.bandWidth;\n    var categoryGapPercent = columnsOnAxis.categoryGap;\n\n    if (categoryGapPercent == null) {\n      var columnCount = zrUtil.keys(stacks).length;\n      categoryGapPercent = Math.max(35 - columnCount * 4, 15) + '%';\n    }\n\n    var categoryGap = parsePercent(categoryGapPercent, bandWidth);\n    var barGapPercent = parsePercent(columnsOnAxis.gap, 1);\n    var remainedWidth = columnsOnAxis.remainedWidth;\n    var autoWidthCount = columnsOnAxis.autoWidthCount;\n    var autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n    autoWidth = Math.max(autoWidth, 0);\n    zrUtil.each(stacks, function (column) {\n      var maxWidth = column.maxWidth;\n      var minWidth = column.minWidth;\n\n      if (!column.width) {\n        var finalWidth = autoWidth;\n\n        if (maxWidth && maxWidth < finalWidth) {\n          finalWidth = Math.min(maxWidth, remainedWidth);\n        }\n\n        if (minWidth && minWidth > finalWidth) {\n          finalWidth = minWidth;\n        }\n\n        if (finalWidth !== autoWidth) {\n          column.width = finalWidth;\n          remainedWidth -= finalWidth + barGapPercent * finalWidth;\n          autoWidthCount--;\n        }\n      } else {\n        var finalWidth = column.width;\n\n        if (maxWidth) {\n          finalWidth = Math.min(finalWidth, maxWidth);\n        }\n\n        if (minWidth) {\n          finalWidth = Math.max(finalWidth, minWidth);\n        }\n\n        column.width = finalWidth;\n        remainedWidth -= finalWidth + barGapPercent * finalWidth;\n        autoWidthCount--;\n      }\n    });\n    autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n    autoWidth = Math.max(autoWidth, 0);\n    var widthSum = 0;\n    var lastColumn;\n    zrUtil.each(stacks, function (column, idx) {\n      if (!column.width) {\n        column.width = autoWidth;\n      }\n\n      lastColumn = column;\n      widthSum += column.width * (1 + barGapPercent);\n    });\n\n    if (lastColumn) {\n      widthSum -= lastColumn.width * barGapPercent;\n    }\n\n    var offset = -widthSum / 2;\n    zrUtil.each(stacks, function (column, stackId) {\n      result[coordSysName][stackId] = result[coordSysName][stackId] || {\n        bandWidth: bandWidth,\n        offset: offset,\n        width: column.width\n      };\n      offset += column.width * (1 + barGapPercent);\n    });\n  });\n  return result;\n}\n\nfunction retrieveColumnLayout(barWidthAndOffset, axis, seriesModel) {\n  if (barWidthAndOffset && axis) {\n    var result = barWidthAndOffset[getAxisKey(axis)];\n\n    if (result != null && seriesModel != null) {\n      return result[getSeriesStackId(seriesModel)];\n    }\n\n    return result;\n  }\n}\n\nexport { retrieveColumnLayout };\nexport function layout(seriesType, ecModel) {\n  var seriesModels = prepareLayoutBarSeries(seriesType, ecModel);\n  var barWidthAndOffset = makeColumnLayout(seriesModels);\n  var lastStackCoords = {};\n  zrUtil.each(seriesModels, function (seriesModel) {\n    var data = seriesModel.getData();\n    var cartesian = seriesModel.coordinateSystem;\n    var baseAxis = cartesian.getBaseAxis();\n    var stackId = getSeriesStackId(seriesModel);\n    var columnLayoutInfo = barWidthAndOffset[getAxisKey(baseAxis)][stackId];\n    var columnOffset = columnLayoutInfo.offset;\n    var columnWidth = columnLayoutInfo.width;\n    var valueAxis = cartesian.getOtherAxis(baseAxis);\n    var barMinHeight = seriesModel.get('barMinHeight') || 0;\n    lastStackCoords[stackId] = lastStackCoords[stackId] || [];\n    data.setLayout({\n      bandWidth: columnLayoutInfo.bandWidth,\n      offset: columnOffset,\n      size: columnWidth\n    });\n    var valueDim = data.mapDimension(valueAxis.dim);\n    var baseDim = data.mapDimension(baseAxis.dim);\n    var stacked = isDimensionStacked(data, valueDim);\n    var isValueAxisH = valueAxis.isHorizontal();\n    var valueAxisStart = getValueAxisStart(baseAxis, valueAxis, stacked);\n\n    for (var idx = 0, len = data.count(); idx < len; idx++) {\n      var value = data.get(valueDim, idx);\n      var baseValue = data.get(baseDim, idx);\n      var sign = value >= 0 ? 'p' : 'n';\n      var baseCoord = valueAxisStart;\n\n      if (stacked) {\n        if (!lastStackCoords[stackId][baseValue]) {\n          lastStackCoords[stackId][baseValue] = {\n            p: valueAxisStart,\n            n: valueAxisStart\n          };\n        }\n\n        baseCoord = lastStackCoords[stackId][baseValue][sign];\n      }\n\n      var x = void 0;\n      var y = void 0;\n      var width = void 0;\n      var height = void 0;\n\n      if (isValueAxisH) {\n        var coord = cartesian.dataToPoint([value, baseValue]);\n        x = baseCoord;\n        y = coord[1] + columnOffset;\n        width = coord[0] - valueAxisStart;\n        height = columnWidth;\n\n        if (Math.abs(width) < barMinHeight) {\n          width = (width < 0 ? -1 : 1) * barMinHeight;\n        }\n\n        if (!isNaN(width)) {\n          stacked && (lastStackCoords[stackId][baseValue][sign] += width);\n        }\n      } else {\n        var coord = cartesian.dataToPoint([baseValue, value]);\n        x = coord[0] + columnOffset;\n        y = baseCoord;\n        width = columnWidth;\n        height = coord[1] - valueAxisStart;\n\n        if (Math.abs(height) < barMinHeight) {\n          height = (height <= 0 ? -1 : 1) * barMinHeight;\n        }\n\n        if (!isNaN(height)) {\n          stacked && (lastStackCoords[stackId][baseValue][sign] += height);\n        }\n      }\n\n      data.setItemLayout(idx, {\n        x: x,\n        y: y,\n        width: width,\n        height: height\n      });\n    }\n  });\n}\nexport var largeLayout = {\n  seriesType: 'bar',\n  plan: createRenderPlanner(),\n  reset: function (seriesModel) {\n    if (!isOnCartesian(seriesModel) || !isInLargeMode(seriesModel)) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var cartesian = seriesModel.coordinateSystem;\n    var coordLayout = cartesian.master.getRect();\n    var baseAxis = cartesian.getBaseAxis();\n    var valueAxis = cartesian.getOtherAxis(baseAxis);\n    var valueDim = data.mapDimension(valueAxis.dim);\n    var baseDim = data.mapDimension(baseAxis.dim);\n    var valueAxisHorizontal = valueAxis.isHorizontal();\n    var valueDimIdx = valueAxisHorizontal ? 0 : 1;\n    var barWidth = retrieveColumnLayout(makeColumnLayout([seriesModel]), baseAxis, seriesModel).width;\n\n    if (!(barWidth > LARGE_BAR_MIN_WIDTH)) {\n      barWidth = LARGE_BAR_MIN_WIDTH;\n    }\n\n    return {\n      progress: function (params, data) {\n        var count = params.count;\n        var largePoints = new LargeArr(count * 2);\n        var largeBackgroundPoints = new LargeArr(count * 2);\n        var largeDataIndices = new LargeArr(count);\n        var dataIndex;\n        var coord = [];\n        var valuePair = [];\n        var pointsOffset = 0;\n        var idxOffset = 0;\n\n        while ((dataIndex = params.next()) != null) {\n          valuePair[valueDimIdx] = data.get(valueDim, dataIndex);\n          valuePair[1 - valueDimIdx] = data.get(baseDim, dataIndex);\n          coord = cartesian.dataToPoint(valuePair, null, coord);\n          largeBackgroundPoints[pointsOffset] = valueAxisHorizontal ? coordLayout.x + coordLayout.width : coord[0];\n          largePoints[pointsOffset++] = coord[0];\n          largeBackgroundPoints[pointsOffset] = valueAxisHorizontal ? coord[1] : coordLayout.y + coordLayout.height;\n          largePoints[pointsOffset++] = coord[1];\n          largeDataIndices[idxOffset++] = dataIndex;\n        }\n\n        data.setLayout({\n          largePoints: largePoints,\n          largeDataIndices: largeDataIndices,\n          largeBackgroundPoints: largeBackgroundPoints,\n          barWidth: barWidth,\n          valueAxisStart: getValueAxisStart(baseAxis, valueAxis, false),\n          backgroundStart: valueAxisHorizontal ? coordLayout.x : coordLayout.y,\n          valueAxisHorizontal: valueAxisHorizontal\n        });\n      }\n    };\n  }\n};\n\nfunction isOnCartesian(seriesModel) {\n  return seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'cartesian2d';\n}\n\nfunction isInLargeMode(seriesModel) {\n  return seriesModel.pipelineContext && seriesModel.pipelineContext.large;\n}\n\nfunction getValueAxisStart(baseAxis, valueAxis, stacked) {\n  return valueAxis.toGlobalCoord(valueAxis.dataToCoord(valueAxis.type === 'log' ? 1 : 0));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as numberUtil from '../util/number';\nimport { ONE_SECOND, ONE_MINUTE, ONE_HOUR, ONE_DAY, ONE_YEAR, format, leveledFormat, getUnitValue, timeUnits, fullLeveledFormatter, getPrimaryTimeUnit, isPrimaryTimeUnit, getDefaultFormatPrecisionOfInterval, fullYearGetterName, monthSetterName, fullYearSetterName, dateSetterName, hoursGetterName, hoursSetterName, minutesSetterName, secondsSetterName, millisecondsSetterName, monthGetterName, dateGetterName, minutesGetterName, secondsGetterName, millisecondsGetterName } from '../util/time';\nimport * as scaleHelper from './helper';\nimport IntervalScale from './Interval';\nimport Scale from './Scale';\nimport { warn } from '../util/log';\nimport { filter, map } from 'zrender/lib/core/util';\n\nvar bisect = function (a, x, lo, hi) {\n  while (lo < hi) {\n    var mid = lo + hi >>> 1;\n\n    if (a[mid][1] < x) {\n      lo = mid + 1;\n    } else {\n      hi = mid;\n    }\n  }\n\n  return lo;\n};\n\nvar TimeScale = function (_super) {\n  __extends(TimeScale, _super);\n\n  function TimeScale(settings) {\n    var _this = _super.call(this, settings) || this;\n\n    _this.type = 'time';\n    return _this;\n  }\n\n  TimeScale.prototype.getLabel = function (tick) {\n    var useUTC = this.getSetting('useUTC');\n    return format(tick.value, fullLeveledFormatter[getDefaultFormatPrecisionOfInterval(getPrimaryTimeUnit(this._minLevelUnit))] || fullLeveledFormatter.second, useUTC, this.getSetting('locale'));\n  };\n\n  TimeScale.prototype.getFormattedLabel = function (tick, idx, labelFormatter) {\n    var isUTC = this.getSetting('useUTC');\n    var lang = this.getSetting('locale');\n    return leveledFormat(tick, idx, labelFormatter, lang, isUTC);\n  };\n\n  TimeScale.prototype.getTicks = function (expandToNicedExtent) {\n    var interval = this._interval;\n    var extent = this._extent;\n    var ticks = [];\n\n    if (!interval) {\n      return ticks;\n    }\n\n    ticks.push({\n      value: extent[0],\n      level: 0\n    });\n    var useUTC = this.getSetting('useUTC');\n    var innerTicks = getIntervalTicks(this._minLevelUnit, this._approxInterval, useUTC, extent);\n    ticks = ticks.concat(innerTicks);\n    ticks.push({\n      value: extent[1],\n      level: 0\n    });\n    return ticks;\n  };\n\n  TimeScale.prototype.niceExtent = function (opt) {\n    var extent = this._extent;\n\n    if (extent[0] === extent[1]) {\n      extent[0] -= ONE_DAY;\n      extent[1] += ONE_DAY;\n    }\n\n    if (extent[1] === -Infinity && extent[0] === Infinity) {\n      var d = new Date();\n      extent[1] = +new Date(d.getFullYear(), d.getMonth(), d.getDate());\n      extent[0] = extent[1] - ONE_DAY;\n    }\n\n    this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\n  };\n\n  TimeScale.prototype.niceTicks = function (approxTickNum, minInterval, maxInterval) {\n    approxTickNum = approxTickNum || 10;\n    var extent = this._extent;\n    var span = extent[1] - extent[0];\n    this._approxInterval = span / approxTickNum;\n\n    if (minInterval != null && this._approxInterval < minInterval) {\n      this._approxInterval = minInterval;\n    }\n\n    if (maxInterval != null && this._approxInterval > maxInterval) {\n      this._approxInterval = maxInterval;\n    }\n\n    var scaleIntervalsLen = scaleIntervals.length;\n    var idx = Math.min(bisect(scaleIntervals, this._approxInterval, 0, scaleIntervalsLen), scaleIntervalsLen - 1);\n    this._interval = scaleIntervals[idx][1];\n    this._minLevelUnit = scaleIntervals[Math.max(idx - 1, 0)][0];\n  };\n\n  TimeScale.prototype.parse = function (val) {\n    return typeof val === 'number' ? val : +numberUtil.parseDate(val);\n  };\n\n  TimeScale.prototype.contain = function (val) {\n    return scaleHelper.contain(this.parse(val), this._extent);\n  };\n\n  TimeScale.prototype.normalize = function (val) {\n    return scaleHelper.normalize(this.parse(val), this._extent);\n  };\n\n  TimeScale.prototype.scale = function (val) {\n    return scaleHelper.scale(val, this._extent);\n  };\n\n  TimeScale.type = 'time';\n  return TimeScale;\n}(IntervalScale);\n\nvar scaleIntervals = [['second', ONE_SECOND], ['minute', ONE_MINUTE], ['hour', ONE_HOUR], ['quarter-day', ONE_HOUR * 6], ['half-day', ONE_HOUR * 12], ['day', ONE_DAY * 1.2], ['half-week', ONE_DAY * 3.5], ['week', ONE_DAY * 7], ['month', ONE_DAY * 31], ['quarter', ONE_DAY * 95], ['half-year', ONE_YEAR / 2], ['year', ONE_YEAR]];\n\nfunction isUnitValueSame(unit, valueA, valueB, isUTC) {\n  var dateA = numberUtil.parseDate(valueA);\n  var dateB = numberUtil.parseDate(valueB);\n\n  var isSame = function (unit) {\n    return getUnitValue(dateA, unit, isUTC) === getUnitValue(dateB, unit, isUTC);\n  };\n\n  var isSameYear = function () {\n    return isSame('year');\n  };\n\n  var isSameMonth = function () {\n    return isSameYear() && isSame('month');\n  };\n\n  var isSameDay = function () {\n    return isSameMonth() && isSame('day');\n  };\n\n  var isSameHour = function () {\n    return isSameDay() && isSame('hour');\n  };\n\n  var isSameMinute = function () {\n    return isSameHour() && isSame('minute');\n  };\n\n  var isSameSecond = function () {\n    return isSameMinute() && isSame('second');\n  };\n\n  var isSameMilliSecond = function () {\n    return isSameSecond() && isSame('millisecond');\n  };\n\n  switch (unit) {\n    case 'year':\n      return isSameYear();\n\n    case 'month':\n      return isSameMonth();\n\n    case 'day':\n      return isSameDay();\n\n    case 'hour':\n      return isSameHour();\n\n    case 'minute':\n      return isSameMinute();\n\n    case 'second':\n      return isSameSecond();\n\n    case 'millisecond':\n      return isSameMilliSecond();\n  }\n}\n\nfunction getDateInterval(approxInterval, daysInMonth) {\n  approxInterval /= ONE_DAY;\n  return approxInterval > 16 ? 16 : approxInterval > 7.5 ? 7 : approxInterval > 3.5 ? 4 : approxInterval > 1.5 ? 2 : 1;\n}\n\nfunction getMonthInterval(approxInterval) {\n  var APPROX_ONE_MONTH = 30 * ONE_DAY;\n  approxInterval /= APPROX_ONE_MONTH;\n  return approxInterval > 6 ? 6 : approxInterval > 3 ? 3 : approxInterval > 2 ? 2 : 1;\n}\n\nfunction getHourInterval(approxInterval) {\n  approxInterval /= ONE_HOUR;\n  return approxInterval > 12 ? 12 : approxInterval > 6 ? 6 : approxInterval > 3.5 ? 4 : approxInterval > 2 ? 2 : 1;\n}\n\nfunction getMinutesAndSecondsInterval(approxInterval, isMinutes) {\n  approxInterval /= isMinutes ? ONE_MINUTE : ONE_SECOND;\n  return approxInterval > 30 ? 30 : approxInterval > 20 ? 20 : approxInterval > 15 ? 15 : approxInterval > 10 ? 10 : approxInterval > 5 ? 5 : approxInterval > 2 ? 2 : 1;\n}\n\nfunction getMillisecondsInterval(approxInterval) {\n  return numberUtil.nice(approxInterval, true);\n}\n\nfunction getFirstTimestampOfUnit(date, unitName, isUTC) {\n  var outDate = new Date(date);\n\n  switch (getPrimaryTimeUnit(unitName)) {\n    case 'year':\n    case 'month':\n      outDate[monthSetterName(isUTC)](0);\n\n    case 'day':\n      outDate[dateSetterName(isUTC)](1);\n\n    case 'hour':\n      outDate[hoursSetterName(isUTC)](0);\n\n    case 'minute':\n      outDate[minutesSetterName(isUTC)](0);\n\n    case 'second':\n      outDate[secondsSetterName(isUTC)](0);\n      outDate[millisecondsSetterName(isUTC)](0);\n  }\n\n  return outDate.getTime();\n}\n\nfunction getIntervalTicks(bottomUnitName, approxInterval, isUTC, extent) {\n  var safeLimit = 10000;\n  var unitNames = timeUnits;\n  var iter = 0;\n\n  function addTicksInSpan(interval, minTimestamp, maxTimestamp, getMethodName, setMethodName, isDate, out) {\n    var date = new Date(minTimestamp);\n    var dateTime = minTimestamp;\n    var d = date[getMethodName]();\n\n    while (dateTime < maxTimestamp && dateTime <= extent[1]) {\n      out.push({\n        value: dateTime\n      });\n      d += interval;\n      date[setMethodName](d);\n      dateTime = date.getTime();\n    }\n\n    out.push({\n      value: dateTime,\n      notAdd: true\n    });\n  }\n\n  function addLevelTicks(unitName, lastLevelTicks, levelTicks) {\n    var newAddedTicks = [];\n    var isFirstLevel = !lastLevelTicks.length;\n\n    if (isUnitValueSame(getPrimaryTimeUnit(unitName), extent[0], extent[1], isUTC)) {\n      return;\n    }\n\n    if (isFirstLevel) {\n      lastLevelTicks = [{\n        value: getFirstTimestampOfUnit(new Date(extent[0]), unitName, isUTC)\n      }, {\n        value: extent[1]\n      }];\n    }\n\n    for (var i = 0; i < lastLevelTicks.length - 1; i++) {\n      var startTick = lastLevelTicks[i].value;\n      var endTick = lastLevelTicks[i + 1].value;\n\n      if (startTick === endTick) {\n        continue;\n      }\n\n      var interval = void 0;\n      var getterName = void 0;\n      var setterName = void 0;\n      var isDate = false;\n\n      switch (unitName) {\n        case 'year':\n          interval = Math.max(1, Math.round(approxInterval / ONE_DAY / 365));\n          getterName = fullYearGetterName(isUTC);\n          setterName = fullYearSetterName(isUTC);\n          break;\n\n        case 'half-year':\n        case 'quarter':\n        case 'month':\n          interval = getMonthInterval(approxInterval);\n          getterName = monthGetterName(isUTC);\n          setterName = monthSetterName(isUTC);\n          break;\n\n        case 'week':\n        case 'half-week':\n        case 'day':\n          interval = getDateInterval(approxInterval, 31);\n          getterName = dateGetterName(isUTC);\n          setterName = dateSetterName(isUTC);\n          isDate = true;\n          break;\n\n        case 'half-day':\n        case 'quarter-day':\n        case 'hour':\n          interval = getHourInterval(approxInterval);\n          getterName = hoursGetterName(isUTC);\n          setterName = hoursSetterName(isUTC);\n          break;\n\n        case 'minute':\n          interval = getMinutesAndSecondsInterval(approxInterval, true);\n          getterName = minutesGetterName(isUTC);\n          setterName = minutesSetterName(isUTC);\n          break;\n\n        case 'second':\n          interval = getMinutesAndSecondsInterval(approxInterval, false);\n          getterName = secondsGetterName(isUTC);\n          setterName = secondsSetterName(isUTC);\n          break;\n\n        case 'millisecond':\n          interval = getMillisecondsInterval(approxInterval);\n          getterName = millisecondsGetterName(isUTC);\n          setterName = millisecondsSetterName(isUTC);\n          break;\n      }\n\n      addTicksInSpan(interval, startTick, endTick, getterName, setterName, isDate, newAddedTicks);\n\n      if (unitName === 'year' && levelTicks.length > 1 && i === 0) {\n        levelTicks.unshift({\n          value: levelTicks[0].value - interval\n        });\n      }\n    }\n\n    for (var i = 0; i < newAddedTicks.length; i++) {\n      levelTicks.push(newAddedTicks[i]);\n    }\n\n    return newAddedTicks;\n  }\n\n  var levelsTicks = [];\n  var currentLevelTicks = [];\n  var tickCount = 0;\n  var lastLevelTickCount = 0;\n\n  for (var i = 0; i < unitNames.length && iter++ < safeLimit; ++i) {\n    var primaryTimeUnit = getPrimaryTimeUnit(unitNames[i]);\n\n    if (!isPrimaryTimeUnit(unitNames[i])) {\n      continue;\n    }\n\n    addLevelTicks(unitNames[i], levelsTicks[levelsTicks.length - 1] || [], currentLevelTicks);\n    var nextPrimaryTimeUnit = unitNames[i + 1] ? getPrimaryTimeUnit(unitNames[i + 1]) : null;\n\n    if (primaryTimeUnit !== nextPrimaryTimeUnit) {\n      if (currentLevelTicks.length) {\n        lastLevelTickCount = tickCount;\n        currentLevelTicks.sort(function (a, b) {\n          return a.value - b.value;\n        });\n        var levelTicksRemoveDuplicated = [];\n\n        for (var i_1 = 0; i_1 < currentLevelTicks.length; ++i_1) {\n          var tickValue = currentLevelTicks[i_1].value;\n\n          if (i_1 === 0 || currentLevelTicks[i_1 - 1].value !== tickValue) {\n            levelTicksRemoveDuplicated.push(currentLevelTicks[i_1]);\n\n            if (tickValue >= extent[0] && tickValue <= extent[1]) {\n              tickCount++;\n            }\n          }\n        }\n\n        var targetTickNum = (extent[1] - extent[0]) / approxInterval;\n\n        if (tickCount > targetTickNum * 1.5 && lastLevelTickCount > targetTickNum / 1.5) {\n          break;\n        }\n\n        levelsTicks.push(levelTicksRemoveDuplicated);\n\n        if (tickCount > targetTickNum || bottomUnitName === unitNames[i]) {\n          break;\n        }\n      }\n\n      currentLevelTicks = [];\n    }\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (iter >= safeLimit) {\n      warn('Exceed safe limit.');\n    }\n  }\n\n  var levelsTicksInExtent = filter(map(levelsTicks, function (levelTicks) {\n    return filter(levelTicks, function (tick) {\n      return tick.value >= extent[0] && tick.value <= extent[1] && !tick.notAdd;\n    });\n  }), function (levelTicks) {\n    return levelTicks.length > 0;\n  });\n  var ticks = [];\n  var maxLevel = levelsTicksInExtent.length - 1;\n\n  for (var i = 0; i < levelsTicksInExtent.length; ++i) {\n    var levelTicks = levelsTicksInExtent[i];\n\n    for (var k = 0; k < levelTicks.length; ++k) {\n      ticks.push({\n        value: levelTicks[k].value,\n        level: maxLevel - i\n      });\n    }\n  }\n\n  ticks.sort(function (a, b) {\n    return a.value - b.value;\n  });\n  var result = [];\n\n  for (var i = 0; i < ticks.length; ++i) {\n    if (i === 0 || ticks[i].value !== ticks[i - 1].value) {\n      result.push(ticks[i]);\n    }\n  }\n\n  return result;\n}\n\nScale.registerClass(TimeScale);\nexport default TimeScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Scale from './Scale';\nimport * as numberUtil from '../util/number';\nimport * as scaleHelper from './helper';\nimport IntervalScale from './Interval';\nvar scaleProto = Scale.prototype;\nvar intervalScaleProto = IntervalScale.prototype;\nvar getPrecisionSafe = numberUtil.getPrecisionSafe;\nvar roundingErrorFix = numberUtil.round;\nvar mathFloor = Math.floor;\nvar mathCeil = Math.ceil;\nvar mathPow = Math.pow;\nvar mathLog = Math.log;\n\nvar LogScale = function (_super) {\n  __extends(LogScale, _super);\n\n  function LogScale() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'log';\n    _this.base = 10;\n    _this._originalScale = new IntervalScale();\n    _this._interval = 0;\n    return _this;\n  }\n\n  LogScale.prototype.getTicks = function (expandToNicedExtent) {\n    var originalScale = this._originalScale;\n    var extent = this._extent;\n    var originalExtent = originalScale.getExtent();\n    var ticks = intervalScaleProto.getTicks.call(this, expandToNicedExtent);\n    return zrUtil.map(ticks, function (tick) {\n      var val = tick.value;\n      var powVal = numberUtil.round(mathPow(this.base, val));\n      powVal = val === extent[0] && this._fixMin ? fixRoundingError(powVal, originalExtent[0]) : powVal;\n      powVal = val === extent[1] && this._fixMax ? fixRoundingError(powVal, originalExtent[1]) : powVal;\n      return {\n        value: powVal\n      };\n    }, this);\n  };\n\n  LogScale.prototype.setExtent = function (start, end) {\n    var base = this.base;\n    start = mathLog(start) / mathLog(base);\n    end = mathLog(end) / mathLog(base);\n    intervalScaleProto.setExtent.call(this, start, end);\n  };\n\n  LogScale.prototype.getExtent = function () {\n    var base = this.base;\n    var extent = scaleProto.getExtent.call(this);\n    extent[0] = mathPow(base, extent[0]);\n    extent[1] = mathPow(base, extent[1]);\n    var originalScale = this._originalScale;\n    var originalExtent = originalScale.getExtent();\n    this._fixMin && (extent[0] = fixRoundingError(extent[0], originalExtent[0]));\n    this._fixMax && (extent[1] = fixRoundingError(extent[1], originalExtent[1]));\n    return extent;\n  };\n\n  LogScale.prototype.unionExtent = function (extent) {\n    this._originalScale.unionExtent(extent);\n\n    var base = this.base;\n    extent[0] = mathLog(extent[0]) / mathLog(base);\n    extent[1] = mathLog(extent[1]) / mathLog(base);\n    scaleProto.unionExtent.call(this, extent);\n  };\n\n  LogScale.prototype.unionExtentFromData = function (data, dim) {\n    this.unionExtent(data.getApproximateExtent(dim));\n  };\n\n  LogScale.prototype.niceTicks = function (approxTickNum) {\n    approxTickNum = approxTickNum || 10;\n    var extent = this._extent;\n    var span = extent[1] - extent[0];\n\n    if (span === Infinity || span <= 0) {\n      return;\n    }\n\n    var interval = numberUtil.quantity(span);\n    var err = approxTickNum / span * interval;\n\n    if (err <= 0.5) {\n      interval *= 10;\n    }\n\n    while (!isNaN(interval) && Math.abs(interval) < 1 && Math.abs(interval) > 0) {\n      interval *= 10;\n    }\n\n    var niceExtent = [numberUtil.round(mathCeil(extent[0] / interval) * interval), numberUtil.round(mathFloor(extent[1] / interval) * interval)];\n    this._interval = interval;\n    this._niceExtent = niceExtent;\n  };\n\n  LogScale.prototype.niceExtent = function (opt) {\n    intervalScaleProto.niceExtent.call(this, opt);\n    this._fixMin = opt.fixMin;\n    this._fixMax = opt.fixMax;\n  };\n\n  LogScale.prototype.parse = function (val) {\n    return val;\n  };\n\n  LogScale.prototype.contain = function (val) {\n    val = mathLog(val) / mathLog(this.base);\n    return scaleHelper.contain(val, this._extent);\n  };\n\n  LogScale.prototype.normalize = function (val) {\n    val = mathLog(val) / mathLog(this.base);\n    return scaleHelper.normalize(val, this._extent);\n  };\n\n  LogScale.prototype.scale = function (val) {\n    val = scaleHelper.scale(val, this._extent);\n    return mathPow(this.base, val);\n  };\n\n  LogScale.type = 'log';\n  return LogScale;\n}(Scale);\n\nvar proto = LogScale.prototype;\nproto.getMinorTicks = intervalScaleProto.getMinorTicks;\nproto.getLabel = intervalScaleProto.getLabel;\n\nfunction fixRoundingError(val, originalVal) {\n  return roundingErrorFix(val, getPrecisionSafe(originalVal));\n}\n\nScale.registerClass(LogScale);\nexport default LogScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { assert, isArray, eqNaN, isFunction } from 'zrender/lib/core/util';\nimport { parsePercent } from 'zrender/lib/contain/text';\n\nvar ScaleRawExtentInfo = function () {\n  function ScaleRawExtentInfo(scale, model, originalExtent) {\n    this._prepareParams(scale, model, originalExtent);\n  }\n\n  ScaleRawExtentInfo.prototype._prepareParams = function (scale, model, dataExtent) {\n    if (dataExtent[1] < dataExtent[0]) {\n      dataExtent = [NaN, NaN];\n    }\n\n    this._dataMin = dataExtent[0];\n    this._dataMax = dataExtent[1];\n    var isOrdinal = this._isOrdinal = scale.type === 'ordinal';\n    this._needCrossZero = model.getNeedCrossZero && model.getNeedCrossZero();\n    var modelMinRaw = this._modelMinRaw = model.get('min', true);\n\n    if (isFunction(modelMinRaw)) {\n      this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw({\n        min: dataExtent[0],\n        max: dataExtent[1]\n      }));\n    } else if (modelMinRaw !== 'dataMin') {\n      this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw);\n    }\n\n    var modelMaxRaw = this._modelMaxRaw = model.get('max', true);\n\n    if (isFunction(modelMaxRaw)) {\n      this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw({\n        min: dataExtent[0],\n        max: dataExtent[1]\n      }));\n    } else if (modelMaxRaw !== 'dataMax') {\n      this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw);\n    }\n\n    if (isOrdinal) {\n      this._axisDataLen = model.getCategories().length;\n    } else {\n      var boundaryGap = model.get('boundaryGap');\n      var boundaryGapArr = isArray(boundaryGap) ? boundaryGap : [boundaryGap || 0, boundaryGap || 0];\n\n      if (typeof boundaryGapArr[0] === 'boolean' || typeof boundaryGapArr[1] === 'boolean') {\n        if (process.env.NODE_ENV !== 'production') {\n          console.warn('Boolean type for boundaryGap is only ' + 'allowed for ordinal axis. Please use string in ' + 'percentage instead, e.g., \"20%\". Currently, ' + 'boundaryGap is set to be 0.');\n        }\n\n        this._boundaryGapInner = [0, 0];\n      } else {\n        this._boundaryGapInner = [parsePercent(boundaryGapArr[0], 1), parsePercent(boundaryGapArr[1], 1)];\n      }\n    }\n  };\n\n  ScaleRawExtentInfo.prototype.calculate = function () {\n    var isOrdinal = this._isOrdinal;\n    var dataMin = this._dataMin;\n    var dataMax = this._dataMax;\n    var axisDataLen = this._axisDataLen;\n    var boundaryGapInner = this._boundaryGapInner;\n    var span = !isOrdinal ? dataMax - dataMin || Math.abs(dataMin) : null;\n    var min = this._modelMinRaw === 'dataMin' ? dataMin : this._modelMinNum;\n    var max = this._modelMaxRaw === 'dataMax' ? dataMax : this._modelMaxNum;\n    var minFixed = min != null;\n    var maxFixed = max != null;\n\n    if (min == null) {\n      min = isOrdinal ? axisDataLen ? 0 : NaN : dataMin - boundaryGapInner[0] * span;\n    }\n\n    if (max == null) {\n      max = isOrdinal ? axisDataLen ? axisDataLen - 1 : NaN : dataMax + boundaryGapInner[1] * span;\n    }\n\n    (min == null || !isFinite(min)) && (min = NaN);\n    (max == null || !isFinite(max)) && (max = NaN);\n\n    if (min > max) {\n      min = NaN;\n      max = NaN;\n    }\n\n    var isBlank = eqNaN(min) || eqNaN(max) || isOrdinal && !axisDataLen;\n\n    if (this._needCrossZero) {\n      if (min > 0 && max > 0 && !minFixed) {\n        min = 0;\n      }\n\n      if (min < 0 && max < 0 && !maxFixed) {\n        max = 0;\n      }\n    }\n\n    var determinedMin = this._determinedMin;\n    var determinedMax = this._determinedMax;\n\n    if (determinedMin != null) {\n      min = determinedMin;\n      minFixed = true;\n    }\n\n    if (determinedMax != null) {\n      max = determinedMax;\n      maxFixed = true;\n    }\n\n    return {\n      min: min,\n      max: max,\n      minFixed: minFixed,\n      maxFixed: maxFixed,\n      isBlank: isBlank\n    };\n  };\n\n  ScaleRawExtentInfo.prototype.modifyDataMinMax = function (minMaxName, val) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!this.frozen);\n    }\n\n    this[DATA_MIN_MAX_ATTR[minMaxName]] = val;\n  };\n\n  ScaleRawExtentInfo.prototype.setDeterminedMinMax = function (minMaxName, val) {\n    var attr = DETERMINED_MIN_MAX_ATTR[minMaxName];\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!this.frozen && this[attr] == null);\n    }\n\n    this[attr] = val;\n  };\n\n  ScaleRawExtentInfo.prototype.freeze = function () {\n    this.frozen = true;\n  };\n\n  return ScaleRawExtentInfo;\n}();\n\nexport { ScaleRawExtentInfo };\nvar DETERMINED_MIN_MAX_ATTR = {\n  min: '_determinedMin',\n  max: '_determinedMax'\n};\nvar DATA_MIN_MAX_ATTR = {\n  min: '_dataMin',\n  max: '_dataMax'\n};\nexport function ensureScaleRawExtentInfo(scale, model, originalExtent) {\n  var rawExtentInfo = scale.rawExtentInfo;\n\n  if (rawExtentInfo) {\n    return rawExtentInfo;\n  }\n\n  rawExtentInfo = new ScaleRawExtentInfo(scale, model, originalExtent);\n  scale.rawExtentInfo = rawExtentInfo;\n  return rawExtentInfo;\n}\nexport function parseAxisModelMinMax(scale, minMax) {\n  return minMax == null ? null : eqNaN(minMax) ? NaN : scale.parse(minMax);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport OrdinalScale from '../scale/Ordinal';\nimport IntervalScale from '../scale/Interval';\nimport Scale from '../scale/Scale';\nimport { prepareLayoutBarSeries, makeColumnLayout, retrieveColumnLayout } from '../layout/barGrid';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport TimeScale from '../scale/Time';\nimport LogScale from '../scale/Log';\nimport { getStackedDimension } from '../data/helper/dataStackHelper';\nimport { ensureScaleRawExtentInfo } from './scaleRawExtentInfo';\nexport function getScaleExtent(scale, model) {\n  var scaleType = scale.type;\n  var rawExtentResult = ensureScaleRawExtentInfo(scale, model, scale.getExtent()).calculate();\n  scale.setBlank(rawExtentResult.isBlank);\n  var min = rawExtentResult.min;\n  var max = rawExtentResult.max;\n  var ecModel = model.ecModel;\n\n  if (ecModel && scaleType === 'time') {\n    var barSeriesModels = prepareLayoutBarSeries('bar', ecModel);\n    var isBaseAxisAndHasBarSeries_1 = false;\n    zrUtil.each(barSeriesModels, function (seriesModel) {\n      isBaseAxisAndHasBarSeries_1 = isBaseAxisAndHasBarSeries_1 || seriesModel.getBaseAxis() === model.axis;\n    });\n\n    if (isBaseAxisAndHasBarSeries_1) {\n      var barWidthAndOffset = makeColumnLayout(barSeriesModels);\n      var adjustedScale = adjustScaleForOverflow(min, max, model, barWidthAndOffset);\n      min = adjustedScale.min;\n      max = adjustedScale.max;\n    }\n  }\n\n  return {\n    extent: [min, max],\n    fixMin: rawExtentResult.minFixed,\n    fixMax: rawExtentResult.maxFixed\n  };\n}\n\nfunction adjustScaleForOverflow(min, max, model, barWidthAndOffset) {\n  var axisExtent = model.axis.getExtent();\n  var axisLength = axisExtent[1] - axisExtent[0];\n  var barsOnCurrentAxis = retrieveColumnLayout(barWidthAndOffset, model.axis);\n\n  if (barsOnCurrentAxis === undefined) {\n    return {\n      min: min,\n      max: max\n    };\n  }\n\n  var minOverflow = Infinity;\n  zrUtil.each(barsOnCurrentAxis, function (item) {\n    minOverflow = Math.min(item.offset, minOverflow);\n  });\n  var maxOverflow = -Infinity;\n  zrUtil.each(barsOnCurrentAxis, function (item) {\n    maxOverflow = Math.max(item.offset + item.width, maxOverflow);\n  });\n  minOverflow = Math.abs(minOverflow);\n  maxOverflow = Math.abs(maxOverflow);\n  var totalOverFlow = minOverflow + maxOverflow;\n  var oldRange = max - min;\n  var oldRangePercentOfNew = 1 - (minOverflow + maxOverflow) / axisLength;\n  var overflowBuffer = oldRange / oldRangePercentOfNew - oldRange;\n  max += overflowBuffer * (maxOverflow / totalOverFlow);\n  min -= overflowBuffer * (minOverflow / totalOverFlow);\n  return {\n    min: min,\n    max: max\n  };\n}\n\nexport function niceScaleExtent(scale, model) {\n  var extentInfo = getScaleExtent(scale, model);\n  var extent = extentInfo.extent;\n  var splitNumber = model.get('splitNumber');\n\n  if (scale instanceof LogScale) {\n    scale.base = model.get('logBase');\n  }\n\n  var scaleType = scale.type;\n  scale.setExtent(extent[0], extent[1]);\n  scale.niceExtent({\n    splitNumber: splitNumber,\n    fixMin: extentInfo.fixMin,\n    fixMax: extentInfo.fixMax,\n    minInterval: scaleType === 'interval' || scaleType === 'time' ? model.get('minInterval') : null,\n    maxInterval: scaleType === 'interval' || scaleType === 'time' ? model.get('maxInterval') : null\n  });\n  var interval = model.get('interval');\n\n  if (interval != null) {\n    scale.setInterval && scale.setInterval(interval);\n  }\n}\nexport function createScaleByModel(model, axisType) {\n  axisType = axisType || model.get('type');\n\n  if (axisType) {\n    switch (axisType) {\n      case 'category':\n        return new OrdinalScale({\n          ordinalMeta: model.getOrdinalMeta ? model.getOrdinalMeta() : model.getCategories(),\n          extent: [Infinity, -Infinity]\n        });\n\n      case 'time':\n        return new TimeScale({\n          locale: model.ecModel.getLocaleModel(),\n          useUTC: model.ecModel.get('useUTC')\n        });\n\n      default:\n        return new (Scale.getClass(axisType) || IntervalScale)();\n    }\n  }\n}\nexport function ifAxisCrossZero(axis) {\n  var dataExtent = axis.scale.getExtent();\n  var min = dataExtent[0];\n  var max = dataExtent[1];\n  return !(min > 0 && max > 0 || min < 0 && max < 0);\n}\nexport function makeLabelFormatter(axis) {\n  var labelFormatter = axis.getLabelModel().get('formatter');\n  var categoryTickStart = axis.type === 'category' ? axis.scale.getExtent()[0] : null;\n\n  if (axis.scale.type === 'time') {\n    return function (tpl) {\n      return function (tick, idx) {\n        return axis.scale.getFormattedLabel(tick, idx, tpl);\n      };\n    }(labelFormatter);\n  } else if (typeof labelFormatter === 'string') {\n    return function (tpl) {\n      return function (tick) {\n        var label = axis.scale.getLabel(tick);\n        var text = tpl.replace('{value}', label != null ? label : '');\n        return text;\n      };\n    }(labelFormatter);\n  } else if (typeof labelFormatter === 'function') {\n    return function (cb) {\n      return function (tick, idx) {\n        if (categoryTickStart != null) {\n          idx = tick.value - categoryTickStart;\n        }\n\n        return cb(getAxisRawValue(axis, tick), idx, tick.level != null ? {\n          level: tick.level\n        } : null);\n      };\n    }(labelFormatter);\n  } else {\n    return function (tick) {\n      return axis.scale.getLabel(tick);\n    };\n  }\n}\nexport function getAxisRawValue(axis, tick) {\n  return axis.type === 'category' ? axis.scale.getLabel(tick) : tick.value;\n}\nexport function estimateLabelUnionRect(axis) {\n  var axisModel = axis.model;\n  var scale = axis.scale;\n\n  if (!axisModel.get(['axisLabel', 'show']) || scale.isBlank()) {\n    return;\n  }\n\n  var realNumberScaleTicks;\n  var tickCount;\n  var categoryScaleExtent = scale.getExtent();\n\n  if (scale instanceof OrdinalScale) {\n    tickCount = scale.count();\n  } else {\n    realNumberScaleTicks = scale.getTicks();\n    tickCount = realNumberScaleTicks.length;\n  }\n\n  var axisLabelModel = axis.getLabelModel();\n  var labelFormatter = makeLabelFormatter(axis);\n  var rect;\n  var step = 1;\n\n  if (tickCount > 40) {\n    step = Math.ceil(tickCount / 40);\n  }\n\n  for (var i = 0; i < tickCount; i += step) {\n    var tick = realNumberScaleTicks ? realNumberScaleTicks[i] : {\n      value: categoryScaleExtent[0] + i\n    };\n    var label = labelFormatter(tick, i);\n    var unrotatedSingleRect = axisLabelModel.getTextRect(label);\n    var singleRect = rotateTextRect(unrotatedSingleRect, axisLabelModel.get('rotate') || 0);\n    rect ? rect.union(singleRect) : rect = singleRect;\n  }\n\n  return rect;\n}\n\nfunction rotateTextRect(textRect, rotate) {\n  var rotateRadians = rotate * Math.PI / 180;\n  var beforeWidth = textRect.width;\n  var beforeHeight = textRect.height;\n  var afterWidth = beforeWidth * Math.abs(Math.cos(rotateRadians)) + Math.abs(beforeHeight * Math.sin(rotateRadians));\n  var afterHeight = beforeWidth * Math.abs(Math.sin(rotateRadians)) + Math.abs(beforeHeight * Math.cos(rotateRadians));\n  var rotatedRect = new BoundingRect(textRect.x, textRect.y, afterWidth, afterHeight);\n  return rotatedRect;\n}\n\nexport function getOptionCategoryInterval(model) {\n  var interval = model.get('interval');\n  return interval == null ? 'auto' : interval;\n}\nexport function shouldShowAllLabels(axis) {\n  return axis.type === 'category' && getOptionCategoryInterval(axis.getLabelModel()) === 0;\n}\nexport function getDataDimensionsOnAxis(data, axisDim) {\n  var dataDimMap = {};\n  zrUtil.each(data.mapDimensionsAll(axisDim), function (dataDim) {\n    dataDimMap[getStackedDimension(data, dataDim)] = true;\n  });\n  return zrUtil.keys(dataDimMap);\n}\nexport function unionAxisExtentFromData(dataExtent, data, axisDim) {\n  if (data) {\n    zrUtil.each(getDataDimensionsOnAxis(data, axisDim), function (dim) {\n      var seriesExtent = data.getApproximateExtent(dim);\n      seriesExtent[0] < dataExtent[0] && (dataExtent[0] = seriesExtent[0]);\n      seriesExtent[1] > dataExtent[1] && (dataExtent[1] = seriesExtent[1]);\n    });\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar AxisModelCommonMixin = function () {\n  function AxisModelCommonMixin() {}\n\n  AxisModelCommonMixin.prototype.getNeedCrossZero = function () {\n    var option = this.option;\n    return !option.scale;\n  };\n\n  AxisModelCommonMixin.prototype.getCoordSysModel = function () {\n    return;\n  };\n\n  return AxisModelCommonMixin;\n}();\n\nexport { AxisModelCommonMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport createListFromArray from '../../chart/helper/createListFromArray';\nimport * as axisHelper from '../../coord/axisHelper';\nimport { AxisModelCommonMixin } from '../../coord/axisModelCommonMixin';\nimport Model from '../../model/Model';\nimport { getLayoutRect } from '../../util/layout';\nimport { enableDataStack, isDimensionStacked, getStackedDimension } from '../../data/helper/dataStackHelper';\nimport { getECData } from '../../util/innerStore';\nimport { createTextStyle as innerCreateTextStyle } from '../../label/labelStyle';\nexport function createList(seriesModel) {\n  return createListFromArray(seriesModel.getSource(), seriesModel);\n}\nexport { getLayoutRect };\nexport { default as createDimensions } from '../../data/helper/createDimensions';\nexport var dataStack = {\n  isDimensionStacked: isDimensionStacked,\n  enableDataStack: enableDataStack,\n  getStackedDimension: getStackedDimension\n};\nexport { createSymbol } from '../../util/symbol';\nexport function createScale(dataExtent, option) {\n  var axisModel = option;\n\n  if (!(option instanceof Model)) {\n    axisModel = new Model(option);\n  }\n\n  var scale = axisHelper.createScaleByModel(axisModel);\n  scale.setExtent(dataExtent[0], dataExtent[1]);\n  axisHelper.niceScaleExtent(scale, axisModel);\n  return scale;\n}\nexport function mixinAxisModelCommonMethods(Model) {\n  zrUtil.mixin(Model, AxisModelCommonMixin);\n}\nexport { getECData };\nexport { enableHoverEmphasis } from '../../util/states';\nexport function createTextStyle(textStyleModel, opts) {\n  opts = opts || {};\n  return innerCreateTextStyle(textStyleModel, null, null, opts.state !== 'normal');\n}","import windingLine from './windingLine';\nvar EPSILON = 1e-8;\nfunction isAroundEqual(a, b) {\n    return Math.abs(a - b) < EPSILON;\n}\nexport function contain(points, x, y) {\n    var w = 0;\n    var p = points[0];\n    if (!p) {\n        return false;\n    }\n    for (var i = 1; i < points.length; i++) {\n        var p2 = points[i];\n        w += windingLine(p[0], p[1], p2[0], p2[1], x, y);\n        p = p2;\n    }\n    var p0 = points[0];\n    if (!isAroundEqual(p[0], p0[0]) || !isAroundEqual(p[1], p0[1])) {\n        w += windingLine(p[0], p[1], p0[0], p0[1], x, y);\n    }\n    return w !== 0;\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport * as bbox from 'zrender/lib/core/bbox';\nimport * as vec2 from 'zrender/lib/core/vector';\nimport * as polygonContain from 'zrender/lib/contain/polygon';\n\nvar Region = function () {\n  function Region(name, geometries, cp) {\n    this.name = name;\n    this.geometries = geometries;\n\n    if (!cp) {\n      var rect = this.getBoundingRect();\n      cp = [rect.x + rect.width / 2, rect.y + rect.height / 2];\n    } else {\n      cp = [cp[0], cp[1]];\n    }\n\n    this.center = cp;\n  }\n\n  Region.prototype.getBoundingRect = function () {\n    var rect = this._rect;\n\n    if (rect) {\n      return rect;\n    }\n\n    var MAX_NUMBER = Number.MAX_VALUE;\n    var min = [MAX_NUMBER, MAX_NUMBER];\n    var max = [-MAX_NUMBER, -MAX_NUMBER];\n    var min2 = [];\n    var max2 = [];\n    var geometries = this.geometries;\n    var i = 0;\n\n    for (; i < geometries.length; i++) {\n      if (geometries[i].type !== 'polygon') {\n        continue;\n      }\n\n      var exterior = geometries[i].exterior;\n      bbox.fromPoints(exterior, min2, max2);\n      vec2.min(min, min, min2);\n      vec2.max(max, max, max2);\n    }\n\n    if (i === 0) {\n      min[0] = min[1] = max[0] = max[1] = 0;\n    }\n\n    return this._rect = new BoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n  };\n\n  Region.prototype.contain = function (coord) {\n    var rect = this.getBoundingRect();\n    var geometries = this.geometries;\n\n    if (!rect.contain(coord[0], coord[1])) {\n      return false;\n    }\n\n    loopGeo: for (var i = 0, len = geometries.length; i < len; i++) {\n      if (geometries[i].type !== 'polygon') {\n        continue;\n      }\n\n      var exterior = geometries[i].exterior;\n      var interiors = geometries[i].interiors;\n\n      if (polygonContain.contain(exterior, coord[0], coord[1])) {\n        for (var k = 0; k < (interiors ? interiors.length : 0); k++) {\n          if (polygonContain.contain(interiors[k], coord[0], coord[1])) {\n            continue loopGeo;\n          }\n        }\n\n        return true;\n      }\n    }\n\n    return false;\n  };\n\n  Region.prototype.transformTo = function (x, y, width, height) {\n    var rect = this.getBoundingRect();\n    var aspect = rect.width / rect.height;\n\n    if (!width) {\n      width = aspect * height;\n    } else if (!height) {\n      height = width / aspect;\n    }\n\n    var target = new BoundingRect(x, y, width, height);\n    var transform = rect.calculateTransform(target);\n    var geometries = this.geometries;\n\n    for (var i = 0; i < geometries.length; i++) {\n      if (geometries[i].type !== 'polygon') {\n        continue;\n      }\n\n      var exterior = geometries[i].exterior;\n      var interiors = geometries[i].interiors;\n\n      for (var p = 0; p < exterior.length; p++) {\n        vec2.applyTransform(exterior[p], exterior[p], transform);\n      }\n\n      for (var h = 0; h < (interiors ? interiors.length : 0); h++) {\n        for (var p = 0; p < interiors[h].length; p++) {\n          vec2.applyTransform(interiors[h][p], interiors[h][p], transform);\n        }\n      }\n    }\n\n    rect = this._rect;\n    rect.copy(target);\n    this.center = [rect.x + rect.width / 2, rect.y + rect.height / 2];\n  };\n\n  Region.prototype.cloneShallow = function (name) {\n    name == null && (name = this.name);\n    var newRegion = new Region(name, this.geometries, this.center);\n    newRegion._rect = this._rect;\n    newRegion.transformTo = null;\n    return newRegion;\n  };\n\n  return Region;\n}();\n\nexport default Region;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Region from './Region';\n\nfunction decode(json) {\n  if (!json.UTF8Encoding) {\n    return json;\n  }\n\n  var jsonCompressed = json;\n  var encodeScale = jsonCompressed.UTF8Scale;\n\n  if (encodeScale == null) {\n    encodeScale = 1024;\n  }\n\n  var features = jsonCompressed.features;\n\n  for (var f = 0; f < features.length; f++) {\n    var feature = features[f];\n    var geometry = feature.geometry;\n\n    if (geometry.type === 'Polygon') {\n      var coordinates = geometry.coordinates;\n\n      for (var c = 0; c < coordinates.length; c++) {\n        coordinates[c] = decodePolygon(coordinates[c], geometry.encodeOffsets[c], encodeScale);\n      }\n    } else if (geometry.type === 'MultiPolygon') {\n      var coordinates = geometry.coordinates;\n\n      for (var c = 0; c < coordinates.length; c++) {\n        var coordinate = coordinates[c];\n\n        for (var c2 = 0; c2 < coordinate.length; c2++) {\n          coordinate[c2] = decodePolygon(coordinate[c2], geometry.encodeOffsets[c][c2], encodeScale);\n        }\n      }\n    }\n  }\n\n  jsonCompressed.UTF8Encoding = false;\n  return jsonCompressed;\n}\n\nfunction decodePolygon(coordinate, encodeOffsets, encodeScale) {\n  var result = [];\n  var prevX = encodeOffsets[0];\n  var prevY = encodeOffsets[1];\n\n  for (var i = 0; i < coordinate.length; i += 2) {\n    var x = coordinate.charCodeAt(i) - 64;\n    var y = coordinate.charCodeAt(i + 1) - 64;\n    x = x >> 1 ^ -(x & 1);\n    y = y >> 1 ^ -(y & 1);\n    x += prevX;\n    y += prevY;\n    prevX = x;\n    prevY = y;\n    result.push([x / encodeScale, y / encodeScale]);\n  }\n\n  return result;\n}\n\nexport default function parseGeoJSON(geoJson, nameProperty) {\n  geoJson = decode(geoJson);\n  return zrUtil.map(zrUtil.filter(geoJson.features, function (featureObj) {\n    return featureObj.geometry && featureObj.properties && featureObj.geometry.coordinates.length > 0;\n  }), function (featureObj) {\n    var properties = featureObj.properties;\n    var geo = featureObj.geometry;\n    var geometries = [];\n\n    if (geo.type === 'Polygon') {\n      var coordinates = geo.coordinates;\n      geometries.push({\n        type: 'polygon',\n        exterior: coordinates[0],\n        interiors: coordinates.slice(1)\n      });\n    }\n\n    if (geo.type === 'MultiPolygon') {\n      var coordinates = geo.coordinates;\n      zrUtil.each(coordinates, function (item) {\n        if (item[0]) {\n          geometries.push({\n            type: 'polygon',\n            exterior: item[0],\n            interiors: item.slice(1)\n          });\n        }\n      });\n    }\n\n    var region = new Region(properties[nameProperty || 'name'], geometries, properties.cp);\n    region.properties = properties;\n    return region;\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as textContain from 'zrender/lib/contain/text';\nimport { makeInner } from '../util/model';\nimport { makeLabelFormatter, getOptionCategoryInterval, shouldShowAllLabels } from './axisHelper';\nvar inner = makeInner();\nexport function createAxisLabels(axis) {\n  return axis.type === 'category' ? makeCategoryLabels(axis) : makeRealNumberLabels(axis);\n}\nexport function createAxisTicks(axis, tickModel) {\n  return axis.type === 'category' ? makeCategoryTicks(axis, tickModel) : {\n    ticks: zrUtil.map(axis.scale.getTicks(), function (tick) {\n      return tick.value;\n    })\n  };\n}\n\nfunction makeCategoryLabels(axis) {\n  var labelModel = axis.getLabelModel();\n  var result = makeCategoryLabelsActually(axis, labelModel);\n  return !labelModel.get('show') || axis.scale.isBlank() ? {\n    labels: [],\n    labelCategoryInterval: result.labelCategoryInterval\n  } : result;\n}\n\nfunction makeCategoryLabelsActually(axis, labelModel) {\n  var labelsCache = getListCache(axis, 'labels');\n  var optionLabelInterval = getOptionCategoryInterval(labelModel);\n  var result = listCacheGet(labelsCache, optionLabelInterval);\n\n  if (result) {\n    return result;\n  }\n\n  var labels;\n  var numericLabelInterval;\n\n  if (zrUtil.isFunction(optionLabelInterval)) {\n    labels = makeLabelsByCustomizedCategoryInterval(axis, optionLabelInterval);\n  } else {\n    numericLabelInterval = optionLabelInterval === 'auto' ? makeAutoCategoryInterval(axis) : optionLabelInterval;\n    labels = makeLabelsByNumericCategoryInterval(axis, numericLabelInterval);\n  }\n\n  return listCacheSet(labelsCache, optionLabelInterval, {\n    labels: labels,\n    labelCategoryInterval: numericLabelInterval\n  });\n}\n\nfunction makeCategoryTicks(axis, tickModel) {\n  var ticksCache = getListCache(axis, 'ticks');\n  var optionTickInterval = getOptionCategoryInterval(tickModel);\n  var result = listCacheGet(ticksCache, optionTickInterval);\n\n  if (result) {\n    return result;\n  }\n\n  var ticks;\n  var tickCategoryInterval;\n\n  if (!tickModel.get('show') || axis.scale.isBlank()) {\n    ticks = [];\n  }\n\n  if (zrUtil.isFunction(optionTickInterval)) {\n    ticks = makeLabelsByCustomizedCategoryInterval(axis, optionTickInterval, true);\n  } else if (optionTickInterval === 'auto') {\n    var labelsResult = makeCategoryLabelsActually(axis, axis.getLabelModel());\n    tickCategoryInterval = labelsResult.labelCategoryInterval;\n    ticks = zrUtil.map(labelsResult.labels, function (labelItem) {\n      return labelItem.tickValue;\n    });\n  } else {\n    tickCategoryInterval = optionTickInterval;\n    ticks = makeLabelsByNumericCategoryInterval(axis, tickCategoryInterval, true);\n  }\n\n  return listCacheSet(ticksCache, optionTickInterval, {\n    ticks: ticks,\n    tickCategoryInterval: tickCategoryInterval\n  });\n}\n\nfunction makeRealNumberLabels(axis) {\n  var ticks = axis.scale.getTicks();\n  var labelFormatter = makeLabelFormatter(axis);\n  return {\n    labels: zrUtil.map(ticks, function (tick, idx) {\n      return {\n        formattedLabel: labelFormatter(tick, idx),\n        rawLabel: axis.scale.getLabel(tick),\n        tickValue: tick.value\n      };\n    })\n  };\n}\n\nfunction getListCache(axis, prop) {\n  return inner(axis)[prop] || (inner(axis)[prop] = []);\n}\n\nfunction listCacheGet(cache, key) {\n  for (var i = 0; i < cache.length; i++) {\n    if (cache[i].key === key) {\n      return cache[i].value;\n    }\n  }\n}\n\nfunction listCacheSet(cache, key, value) {\n  cache.push({\n    key: key,\n    value: value\n  });\n  return value;\n}\n\nfunction makeAutoCategoryInterval(axis) {\n  var result = inner(axis).autoInterval;\n  return result != null ? result : inner(axis).autoInterval = axis.calculateCategoryInterval();\n}\n\nexport function calculateCategoryInterval(axis) {\n  var params = fetchAutoCategoryIntervalCalculationParams(axis);\n  var labelFormatter = makeLabelFormatter(axis);\n  var rotation = (params.axisRotate - params.labelRotate) / 180 * Math.PI;\n  var ordinalScale = axis.scale;\n  var ordinalExtent = ordinalScale.getExtent();\n  var tickCount = ordinalScale.count();\n\n  if (ordinalExtent[1] - ordinalExtent[0] < 1) {\n    return 0;\n  }\n\n  var step = 1;\n\n  if (tickCount > 40) {\n    step = Math.max(1, Math.floor(tickCount / 40));\n  }\n\n  var tickValue = ordinalExtent[0];\n  var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue);\n  var unitW = Math.abs(unitSpan * Math.cos(rotation));\n  var unitH = Math.abs(unitSpan * Math.sin(rotation));\n  var maxW = 0;\n  var maxH = 0;\n\n  for (; tickValue <= ordinalExtent[1]; tickValue += step) {\n    var width = 0;\n    var height = 0;\n    var rect = textContain.getBoundingRect(labelFormatter({\n      value: tickValue\n    }), params.font, 'center', 'top');\n    width = rect.width * 1.3;\n    height = rect.height * 1.3;\n    maxW = Math.max(maxW, width, 7);\n    maxH = Math.max(maxH, height, 7);\n  }\n\n  var dw = maxW / unitW;\n  var dh = maxH / unitH;\n  isNaN(dw) && (dw = Infinity);\n  isNaN(dh) && (dh = Infinity);\n  var interval = Math.max(0, Math.floor(Math.min(dw, dh)));\n  var cache = inner(axis.model);\n  var axisExtent = axis.getExtent();\n  var lastAutoInterval = cache.lastAutoInterval;\n  var lastTickCount = cache.lastTickCount;\n\n  if (lastAutoInterval != null && lastTickCount != null && Math.abs(lastAutoInterval - interval) <= 1 && Math.abs(lastTickCount - tickCount) <= 1 && lastAutoInterval > interval && cache.axisExtent0 === axisExtent[0] && cache.axisExtent1 === axisExtent[1]) {\n    interval = lastAutoInterval;\n  } else {\n    cache.lastTickCount = tickCount;\n    cache.lastAutoInterval = interval;\n    cache.axisExtent0 = axisExtent[0];\n    cache.axisExtent1 = axisExtent[1];\n  }\n\n  return interval;\n}\n\nfunction fetchAutoCategoryIntervalCalculationParams(axis) {\n  var labelModel = axis.getLabelModel();\n  return {\n    axisRotate: axis.getRotate ? axis.getRotate() : axis.isHorizontal && !axis.isHorizontal() ? 90 : 0,\n    labelRotate: labelModel.get('rotate') || 0,\n    font: labelModel.getFont()\n  };\n}\n\nfunction makeLabelsByNumericCategoryInterval(axis, categoryInterval, onlyTick) {\n  var labelFormatter = makeLabelFormatter(axis);\n  var ordinalScale = axis.scale;\n  var ordinalExtent = ordinalScale.getExtent();\n  var labelModel = axis.getLabelModel();\n  var result = [];\n  var step = Math.max((categoryInterval || 0) + 1, 1);\n  var startTick = ordinalExtent[0];\n  var tickCount = ordinalScale.count();\n\n  if (startTick !== 0 && step > 1 && tickCount / step > 2) {\n    startTick = Math.round(Math.ceil(startTick / step) * step);\n  }\n\n  var showAllLabel = shouldShowAllLabels(axis);\n  var includeMinLabel = labelModel.get('showMinLabel') || showAllLabel;\n  var includeMaxLabel = labelModel.get('showMaxLabel') || showAllLabel;\n\n  if (includeMinLabel && startTick !== ordinalExtent[0]) {\n    addItem(ordinalExtent[0]);\n  }\n\n  var tickValue = startTick;\n\n  for (; tickValue <= ordinalExtent[1]; tickValue += step) {\n    addItem(tickValue);\n  }\n\n  if (includeMaxLabel && tickValue - step !== ordinalExtent[1]) {\n    addItem(ordinalExtent[1]);\n  }\n\n  function addItem(tickValue) {\n    var tickObj = {\n      value: tickValue\n    };\n    result.push(onlyTick ? tickValue : {\n      formattedLabel: labelFormatter(tickObj),\n      rawLabel: ordinalScale.getLabel(tickObj),\n      tickValue: tickValue\n    });\n  }\n\n  return result;\n}\n\nfunction makeLabelsByCustomizedCategoryInterval(axis, categoryInterval, onlyTick) {\n  var ordinalScale = axis.scale;\n  var labelFormatter = makeLabelFormatter(axis);\n  var result = [];\n  zrUtil.each(ordinalScale.getTicks(), function (tick) {\n    var rawLabel = ordinalScale.getLabel(tick);\n    var tickValue = tick.value;\n\n    if (categoryInterval(tick.value, rawLabel)) {\n      result.push(onlyTick ? tickValue : {\n        formattedLabel: labelFormatter(tick),\n        rawLabel: rawLabel,\n        tickValue: tickValue\n      });\n    }\n  });\n  return result;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, map } from 'zrender/lib/core/util';\nimport { linearMap, getPixelPrecision, round } from '../util/number';\nimport { createAxisTicks, createAxisLabels, calculateCategoryInterval } from './axisTickLabelBuilder';\nvar NORMALIZED_EXTENT = [0, 1];\n\nvar Axis = function () {\n  function Axis(dim, scale, extent) {\n    this.onBand = false;\n    this.inverse = false;\n    this.dim = dim;\n    this.scale = scale;\n    this._extent = extent || [0, 0];\n  }\n\n  Axis.prototype.contain = function (coord) {\n    var extent = this._extent;\n    var min = Math.min(extent[0], extent[1]);\n    var max = Math.max(extent[0], extent[1]);\n    return coord >= min && coord <= max;\n  };\n\n  Axis.prototype.containData = function (data) {\n    return this.scale.contain(data);\n  };\n\n  Axis.prototype.getExtent = function () {\n    return this._extent.slice();\n  };\n\n  Axis.prototype.getPixelPrecision = function (dataExtent) {\n    return getPixelPrecision(dataExtent || this.scale.getExtent(), this._extent);\n  };\n\n  Axis.prototype.setExtent = function (start, end) {\n    var extent = this._extent;\n    extent[0] = start;\n    extent[1] = end;\n  };\n\n  Axis.prototype.dataToCoord = function (data, clamp) {\n    var extent = this._extent;\n    var scale = this.scale;\n    data = scale.normalize(data);\n\n    if (this.onBand && scale.type === 'ordinal') {\n      extent = extent.slice();\n      fixExtentWithBands(extent, scale.count());\n    }\n\n    return linearMap(data, NORMALIZED_EXTENT, extent, clamp);\n  };\n\n  Axis.prototype.coordToData = function (coord, clamp) {\n    var extent = this._extent;\n    var scale = this.scale;\n\n    if (this.onBand && scale.type === 'ordinal') {\n      extent = extent.slice();\n      fixExtentWithBands(extent, scale.count());\n    }\n\n    var t = linearMap(coord, extent, NORMALIZED_EXTENT, clamp);\n    return this.scale.scale(t);\n  };\n\n  Axis.prototype.pointToData = function (point, clamp) {\n    return;\n  };\n\n  Axis.prototype.getTicksCoords = function (opt) {\n    opt = opt || {};\n    var tickModel = opt.tickModel || this.getTickModel();\n    var result = createAxisTicks(this, tickModel);\n    var ticks = result.ticks;\n    var ticksCoords = map(ticks, function (tickVal) {\n      return {\n        coord: this.dataToCoord(this.scale.type === 'ordinal' ? this.scale.getRawOrdinalNumber(tickVal) : tickVal),\n        tickValue: tickVal\n      };\n    }, this);\n    var alignWithLabel = tickModel.get('alignWithLabel');\n    fixOnBandTicksCoords(this, ticksCoords, alignWithLabel, opt.clamp);\n    return ticksCoords;\n  };\n\n  Axis.prototype.getMinorTicksCoords = function () {\n    if (this.scale.type === 'ordinal') {\n      return [];\n    }\n\n    var minorTickModel = this.model.getModel('minorTick');\n    var splitNumber = minorTickModel.get('splitNumber');\n\n    if (!(splitNumber > 0 && splitNumber < 100)) {\n      splitNumber = 5;\n    }\n\n    var minorTicks = this.scale.getMinorTicks(splitNumber);\n    var minorTicksCoords = map(minorTicks, function (minorTicksGroup) {\n      return map(minorTicksGroup, function (minorTick) {\n        return {\n          coord: this.dataToCoord(minorTick),\n          tickValue: minorTick\n        };\n      }, this);\n    }, this);\n    return minorTicksCoords;\n  };\n\n  Axis.prototype.getViewLabels = function () {\n    return createAxisLabels(this).labels;\n  };\n\n  Axis.prototype.getLabelModel = function () {\n    return this.model.getModel('axisLabel');\n  };\n\n  Axis.prototype.getTickModel = function () {\n    return this.model.getModel('axisTick');\n  };\n\n  Axis.prototype.getBandWidth = function () {\n    var axisExtent = this._extent;\n    var dataExtent = this.scale.getExtent();\n    var len = dataExtent[1] - dataExtent[0] + (this.onBand ? 1 : 0);\n    len === 0 && (len = 1);\n    var size = Math.abs(axisExtent[1] - axisExtent[0]);\n    return Math.abs(size) / len;\n  };\n\n  Axis.prototype.calculateCategoryInterval = function () {\n    return calculateCategoryInterval(this);\n  };\n\n  return Axis;\n}();\n\nfunction fixExtentWithBands(extent, nTick) {\n  var size = extent[1] - extent[0];\n  var len = nTick;\n  var margin = size / len / 2;\n  extent[0] += margin;\n  extent[1] -= margin;\n}\n\nfunction fixOnBandTicksCoords(axis, ticksCoords, alignWithLabel, clamp) {\n  var ticksLen = ticksCoords.length;\n\n  if (!axis.onBand || alignWithLabel || !ticksLen) {\n    return;\n  }\n\n  var axisExtent = axis.getExtent();\n  var last;\n  var diffSize;\n\n  if (ticksLen === 1) {\n    ticksCoords[0].coord = axisExtent[0];\n    last = ticksCoords[1] = {\n      coord: axisExtent[0]\n    };\n  } else {\n    var crossLen = ticksCoords[ticksLen - 1].tickValue - ticksCoords[0].tickValue;\n    var shift_1 = (ticksCoords[ticksLen - 1].coord - ticksCoords[0].coord) / crossLen;\n    each(ticksCoords, function (ticksItem) {\n      ticksItem.coord -= shift_1 / 2;\n    });\n    var dataExtent = axis.scale.getExtent();\n    diffSize = 1 + dataExtent[1] - ticksCoords[ticksLen - 1].tickValue;\n    last = {\n      coord: ticksCoords[ticksLen - 1].coord + shift_1 * diffSize\n    };\n    ticksCoords.push(last);\n  }\n\n  var inverse = axisExtent[0] > axisExtent[1];\n\n  if (littleThan(ticksCoords[0].coord, axisExtent[0])) {\n    clamp ? ticksCoords[0].coord = axisExtent[0] : ticksCoords.shift();\n  }\n\n  if (clamp && littleThan(axisExtent[0], ticksCoords[0].coord)) {\n    ticksCoords.unshift({\n      coord: axisExtent[0]\n    });\n  }\n\n  if (littleThan(axisExtent[1], last.coord)) {\n    clamp ? last.coord = axisExtent[1] : ticksCoords.pop();\n  }\n\n  if (clamp && littleThan(last.coord, axisExtent[1])) {\n    ticksCoords.push({\n      coord: axisExtent[1]\n    });\n  }\n\n  function littleThan(a, b) {\n    a = round(a);\n    b = round(b);\n    return inverse ? a > b : a < b;\n  }\n}\n\nexport default Axis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ComponentModel from '../model/Component';\nimport ComponentView from '../view/Component';\nimport SeriesModel from '../model/Series';\nimport ChartView from '../view/Chart';\nimport * as zrender_1 from 'zrender/lib/zrender';\nexport { zrender_1 as zrender };\nimport * as matrix_1 from 'zrender/lib/core/matrix';\nexport { matrix_1 as matrix };\nimport * as vector_1 from 'zrender/lib/core/vector';\nexport { vector_1 as vector };\nimport * as zrUtil_1 from 'zrender/lib/core/util';\nexport { zrUtil_1 as zrUtil };\nimport * as color_1 from 'zrender/lib/tool/color';\nexport { color_1 as color };\nexport { throttle } from '../util/throttle';\nimport * as helper_1 from './api/helper';\nexport { helper_1 as helper };\nexport { use } from '../extension';\nexport { default as parseGeoJSON } from '../coord/geo/parseGeoJson';\nexport { default as parseGeoJson } from '../coord/geo/parseGeoJson';\nimport * as number_1 from './api/number';\nexport { number_1 as number };\nimport * as time_1 from './api/time';\nexport { time_1 as time };\nimport * as graphic_1 from './api/graphic';\nexport { graphic_1 as graphic };\nimport * as format_1 from './api/format';\nexport { format_1 as format };\nimport * as util_1 from './api/util';\nexport { util_1 as util };\nexport { default as env } from 'zrender/lib/core/env';\nexport { default as List } from '../data/List';\nexport { default as Model } from '../model/Model';\nexport { default as Axis } from '../coord/Axis';\nexport { ComponentModel, ComponentView, SeriesModel, ChartView };\nexport { brushSingle as innerDrawElementOnCanvas } from 'zrender/lib/canvas/graphic';\nexport function extendComponentModel(proto) {\n  var Model = ComponentModel.extend(proto);\n  ComponentModel.registerClass(Model);\n  return Model;\n}\nexport function extendComponentView(proto) {\n  var View = ComponentView.extend(proto);\n  ComponentView.registerClass(View);\n  return View;\n}\nexport function extendSeriesModel(proto) {\n  var Model = SeriesModel.extend(proto);\n  SeriesModel.registerClass(Model);\n  return Model;\n}\nexport function extendChartView(proto) {\n  var View = ChartView.extend(proto);\n  ChartView.registerClass(View);\n  return View;\n}","export function createElement(name) {\n    return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\n","function diff(oldArr, newArr, equals) {\n    if (!equals) {\n        equals = function (a, b) {\n            return a === b;\n        };\n    }\n    oldArr = oldArr.slice();\n    newArr = newArr.slice();\n    var newLen = newArr.length;\n    var oldLen = oldArr.length;\n    var editLength = 1;\n    var maxEditLength = newLen + oldLen;\n    var bestPath = [{ newPos: -1, components: [] }];\n    var oldPos = extractCommon(bestPath[0], newArr, oldArr, 0, equals);\n    if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n        var indices = [];\n        for (var i = 0; i < newArr.length; i++) {\n            indices.push(i);\n        }\n        return [{\n                indices: indices,\n                count: newArr.length,\n                added: false,\n                removed: false\n            }];\n    }\n    function execEditLength() {\n        for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {\n            var basePath;\n            var addPath = bestPath[diagonalPath - 1];\n            var removePath = bestPath[diagonalPath + 1];\n            var oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;\n            if (addPath) {\n                bestPath[diagonalPath - 1] = undefined;\n            }\n            var canAdd = addPath && addPath.newPos + 1 < newLen;\n            var canRemove = removePath && 0 <= oldPos && oldPos < oldLen;\n            if (!canAdd && !canRemove) {\n                bestPath[diagonalPath] = undefined;\n                continue;\n            }\n            if (!canAdd || (canRemove && addPath.newPos < removePath.newPos)) {\n                basePath = clonePath(removePath);\n                pushComponent(basePath.components, false, true);\n            }\n            else {\n                basePath = addPath;\n                basePath.newPos++;\n                pushComponent(basePath.components, true, false);\n            }\n            oldPos = extractCommon(basePath, newArr, oldArr, diagonalPath, equals);\n            if (basePath.newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n                return buildValues(basePath.components);\n            }\n            else {\n                bestPath[diagonalPath] = basePath;\n            }\n        }\n        editLength++;\n    }\n    while (editLength <= maxEditLength) {\n        var ret = execEditLength();\n        if (ret) {\n            return ret;\n        }\n    }\n}\nfunction extractCommon(basePath, newArr, oldArr, diagonalPath, equals) {\n    var newLen = newArr.length;\n    var oldLen = oldArr.length;\n    var newPos = basePath.newPos;\n    var oldPos = newPos - diagonalPath;\n    var commonCount = 0;\n    while (newPos + 1 < newLen && oldPos + 1 < oldLen && equals(newArr[newPos + 1], oldArr[oldPos + 1])) {\n        newPos++;\n        oldPos++;\n        commonCount++;\n    }\n    if (commonCount) {\n        basePath.components.push({\n            count: commonCount,\n            added: false,\n            removed: false,\n            indices: []\n        });\n    }\n    basePath.newPos = newPos;\n    return oldPos;\n}\nfunction pushComponent(components, added, removed) {\n    var last = components[components.length - 1];\n    if (last && last.added === added && last.removed === removed) {\n        components[components.length - 1] = {\n            count: last.count + 1,\n            added: added,\n            removed: removed,\n            indices: []\n        };\n    }\n    else {\n        components.push({\n            count: 1,\n            added: added,\n            removed: removed,\n            indices: []\n        });\n    }\n}\nfunction buildValues(components) {\n    var componentPos = 0;\n    var componentLen = components.length;\n    var newPos = 0;\n    var oldPos = 0;\n    for (; componentPos < componentLen; componentPos++) {\n        var component = components[componentPos];\n        if (!component.removed) {\n            var indices = [];\n            for (var i = newPos; i < newPos + component.count; i++) {\n                indices.push(i);\n            }\n            component.indices = indices;\n            newPos += component.count;\n            if (!component.added) {\n                oldPos += component.count;\n            }\n        }\n        else {\n            for (var i = oldPos; i < oldPos + component.count; i++) {\n                component.indices.push(i);\n            }\n            oldPos += component.count;\n        }\n    }\n    return components;\n}\nfunction clonePath(path) {\n    return { newPos: path.newPos, components: path.components.slice(0) };\n}\nexport default function arrayDiff(oldArr, newArr, equal) {\n    return diff(oldArr, newArr, equal);\n}\n","import { createElement } from './core';\nimport ZRImage from '../graphic/Image';\nimport { DEFAULT_FONT, getLineHeight } from '../contain/text';\nimport { map } from '../core/util';\nimport { normalizeLineDash } from '../graphic/helper/dashStyle';\nvar NONE = 'none';\nvar mathRound = Math.round;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI = Math.PI;\nvar PI2 = Math.PI * 2;\nvar degree = 180 / PI;\nvar EPSILON = 1e-4;\nfunction round3(val) {\n    return mathRound(val * 1e3) / 1e3;\n}\nfunction round4(val) {\n    return mathRound(val * 1e4) / 1e4;\n}\nfunction isAroundZero(val) {\n    return val < EPSILON && val > -EPSILON;\n}\nfunction pathHasFill(style) {\n    var fill = style.fill;\n    return fill != null && fill !== NONE;\n}\nfunction pathHasStroke(style) {\n    var stroke = style.stroke;\n    return stroke != null && stroke !== NONE;\n}\nfunction setTransform(svgEl, m) {\n    if (m) {\n        attr(svgEl, 'transform', 'matrix('\n            + round3(m[0]) + ','\n            + round3(m[1]) + ','\n            + round3(m[2]) + ','\n            + round3(m[3]) + ','\n            + round4(m[4]) + ','\n            + round4(m[5])\n            + ')');\n    }\n}\nfunction attr(el, key, val) {\n    if (!val || val.type !== 'linear' && val.type !== 'radial') {\n        el.setAttribute(key, val);\n    }\n}\nfunction attrXLink(el, key, val) {\n    el.setAttributeNS('http://www.w3.org/1999/xlink', key, val);\n}\nfunction attrXML(el, key, val) {\n    el.setAttributeNS('http://www.w3.org/XML/1998/namespace', key, val);\n}\nfunction bindStyle(svgEl, style, el) {\n    var opacity = style.opacity == null ? 1 : style.opacity;\n    if (el instanceof ZRImage) {\n        svgEl.style.opacity = opacity + '';\n        return;\n    }\n    if (pathHasFill(style)) {\n        var fill = style.fill;\n        fill = fill === 'transparent' ? NONE : fill;\n        attr(svgEl, 'fill', fill);\n        attr(svgEl, 'fill-opacity', (style.fillOpacity != null ? style.fillOpacity * opacity : opacity) + '');\n    }\n    else {\n        attr(svgEl, 'fill', NONE);\n    }\n    if (pathHasStroke(style)) {\n        var stroke = style.stroke;\n        stroke = stroke === 'transparent' ? NONE : stroke;\n        attr(svgEl, 'stroke', stroke);\n        var strokeWidth = style.lineWidth;\n        var strokeScale_1 = style.strokeNoScale\n            ? el.getLineScale()\n            : 1;\n        attr(svgEl, 'stroke-width', (strokeScale_1 ? strokeWidth / strokeScale_1 : 0) + '');\n        attr(svgEl, 'paint-order', style.strokeFirst ? 'stroke' : 'fill');\n        attr(svgEl, 'stroke-opacity', (style.strokeOpacity != null ? style.strokeOpacity * opacity : opacity) + '');\n        var lineDash = style.lineDash && strokeWidth > 0 && normalizeLineDash(style.lineDash, strokeWidth);\n        if (lineDash) {\n            var lineDashOffset = style.lineDashOffset;\n            if (strokeScale_1 && strokeScale_1 !== 1) {\n                lineDash = map(lineDash, function (rawVal) {\n                    return rawVal / strokeScale_1;\n                });\n                if (lineDashOffset) {\n                    lineDashOffset /= strokeScale_1;\n                    lineDashOffset = mathRound(lineDashOffset);\n                }\n            }\n            attr(svgEl, 'stroke-dasharray', lineDash.join(','));\n            attr(svgEl, 'stroke-dashoffset', (lineDashOffset || 0) + '');\n        }\n        else {\n            attr(svgEl, 'stroke-dasharray', '');\n        }\n        style.lineCap && attr(svgEl, 'stroke-linecap', style.lineCap);\n        style.lineJoin && attr(svgEl, 'stroke-linejoin', style.lineJoin);\n        style.miterLimit && attr(svgEl, 'stroke-miterlimit', style.miterLimit + '');\n    }\n    else {\n        attr(svgEl, 'stroke', NONE);\n    }\n}\nvar SVGPathRebuilder = (function () {\n    function SVGPathRebuilder() {\n    }\n    SVGPathRebuilder.prototype.reset = function () {\n        this._d = [];\n        this._str = '';\n    };\n    SVGPathRebuilder.prototype.moveTo = function (x, y) {\n        this._add('M', x, y);\n    };\n    SVGPathRebuilder.prototype.lineTo = function (x, y) {\n        this._add('L', x, y);\n    };\n    SVGPathRebuilder.prototype.bezierCurveTo = function (x, y, x2, y2, x3, y3) {\n        this._add('C', x, y, x2, y2, x3, y3);\n    };\n    SVGPathRebuilder.prototype.quadraticCurveTo = function (x, y, x2, y2) {\n        this._add('Q', x, y, x2, y2);\n    };\n    SVGPathRebuilder.prototype.arc = function (cx, cy, r, startAngle, endAngle, anticlockwise) {\n        this.ellipse(cx, cy, r, r, 0, startAngle, endAngle, anticlockwise);\n    };\n    SVGPathRebuilder.prototype.ellipse = function (cx, cy, rx, ry, psi, startAngle, endAngle, anticlockwise) {\n        var firstCmd = this._d.length === 0;\n        var dTheta = endAngle - startAngle;\n        var clockwise = !anticlockwise;\n        var dThetaPositive = Math.abs(dTheta);\n        var isCircle = isAroundZero(dThetaPositive - PI2)\n            || (clockwise ? dTheta >= PI2 : -dTheta >= PI2);\n        var unifiedTheta = dTheta > 0 ? dTheta % PI2 : (dTheta % PI2 + PI2);\n        var large = false;\n        if (isCircle) {\n            large = true;\n        }\n        else if (isAroundZero(dThetaPositive)) {\n            large = false;\n        }\n        else {\n            large = (unifiedTheta >= PI) === !!clockwise;\n        }\n        var x0 = round4(cx + rx * mathCos(startAngle));\n        var y0 = round4(cy + ry * mathSin(startAngle));\n        if (isCircle) {\n            if (clockwise) {\n                dTheta = PI2 - 1e-4;\n            }\n            else {\n                dTheta = -PI2 + 1e-4;\n            }\n            large = true;\n            if (firstCmd) {\n                this._d.push('M', x0, y0);\n            }\n        }\n        var x = round4(cx + rx * mathCos(startAngle + dTheta));\n        var y = round4(cy + ry * mathSin(startAngle + dTheta));\n        if (isNaN(x0) || isNaN(y0) || isNaN(rx) || isNaN(ry) || isNaN(psi) || isNaN(degree) || isNaN(x) || isNaN(y)) {\n            return '';\n        }\n        this._d.push('A', round4(rx), round4(ry), mathRound(psi * degree), +large, +clockwise, x, y);\n    };\n    SVGPathRebuilder.prototype.rect = function (x, y, w, h) {\n        this._add('M', x, y);\n        this._add('L', x + w, y);\n        this._add('L', x + w, y + h);\n        this._add('L', x, y + h);\n        this._add('L', x, y);\n    };\n    SVGPathRebuilder.prototype.closePath = function () {\n        if (this._d.length > 0) {\n            this._add('Z');\n        }\n    };\n    SVGPathRebuilder.prototype._add = function (cmd, a, b, c, d, e, f, g, h) {\n        this._d.push(cmd);\n        for (var i = 1; i < arguments.length; i++) {\n            var val = arguments[i];\n            if (isNaN(val)) {\n                this._invalid = true;\n                return;\n            }\n            this._d.push(round4(val));\n        }\n    };\n    SVGPathRebuilder.prototype.generateStr = function () {\n        this._str = this._invalid ? '' : this._d.join(' ');\n        this._d = [];\n    };\n    SVGPathRebuilder.prototype.getStr = function () {\n        return this._str;\n    };\n    return SVGPathRebuilder;\n}());\nvar svgPath = {\n    brush: function (el) {\n        var style = el.style;\n        var svgEl = el.__svgEl;\n        if (!svgEl) {\n            svgEl = createElement('path');\n            el.__svgEl = svgEl;\n        }\n        if (!el.path) {\n            el.createPathProxy();\n        }\n        var path = el.path;\n        if (el.shapeChanged()) {\n            path.beginPath();\n            el.buildPath(path, el.shape);\n            el.pathUpdated();\n        }\n        var pathVersion = path.getVersion();\n        var elExt = el;\n        var svgPathBuilder = elExt.__svgPathBuilder;\n        if (elExt.__svgPathVersion !== pathVersion || !svgPathBuilder || el.style.strokePercent < 1) {\n            if (!svgPathBuilder) {\n                svgPathBuilder = elExt.__svgPathBuilder = new SVGPathRebuilder();\n            }\n            svgPathBuilder.reset();\n            path.rebuildPath(svgPathBuilder, el.style.strokePercent);\n            svgPathBuilder.generateStr();\n            elExt.__svgPathVersion = pathVersion;\n        }\n        attr(svgEl, 'd', svgPathBuilder.getStr());\n        bindStyle(svgEl, style, el);\n        setTransform(svgEl, el.transform);\n    }\n};\nexport { svgPath as path };\nvar svgImage = {\n    brush: function (el) {\n        var style = el.style;\n        var image = style.image;\n        if (image instanceof HTMLImageElement) {\n            image = image.src;\n        }\n        else if (image instanceof HTMLCanvasElement) {\n            image = image.toDataURL();\n        }\n        if (!image) {\n            return;\n        }\n        var x = style.x || 0;\n        var y = style.y || 0;\n        var dw = style.width;\n        var dh = style.height;\n        var svgEl = el.__svgEl;\n        if (!svgEl) {\n            svgEl = createElement('image');\n            el.__svgEl = svgEl;\n        }\n        if (image !== el.__imageSrc) {\n            attrXLink(svgEl, 'href', image);\n            el.__imageSrc = image;\n        }\n        attr(svgEl, 'width', dw + '');\n        attr(svgEl, 'height', dh + '');\n        attr(svgEl, 'x', x + '');\n        attr(svgEl, 'y', y + '');\n        bindStyle(svgEl, style, el);\n        setTransform(svgEl, el.transform);\n    }\n};\nexport { svgImage as image };\nvar TEXT_ALIGN_TO_ANCHOR = {\n    left: 'start',\n    right: 'end',\n    center: 'middle',\n    middle: 'middle'\n};\nfunction adjustTextY(y, lineHeight, textBaseline) {\n    if (textBaseline === 'top') {\n        y += lineHeight / 2;\n    }\n    else if (textBaseline === 'bottom') {\n        y -= lineHeight / 2;\n    }\n    return y;\n}\nvar svgText = {\n    brush: function (el) {\n        var style = el.style;\n        var text = style.text;\n        text != null && (text += '');\n        if (!text || isNaN(style.x) || isNaN(style.y)) {\n            return;\n        }\n        var textSvgEl = el.__svgEl;\n        if (!textSvgEl) {\n            textSvgEl = createElement('text');\n            attrXML(textSvgEl, 'xml:space', 'preserve');\n            el.__svgEl = textSvgEl;\n        }\n        var font = style.font || DEFAULT_FONT;\n        var textSvgElStyle = textSvgEl.style;\n        textSvgElStyle.font = font;\n        textSvgEl.textContent = text;\n        bindStyle(textSvgEl, style, el);\n        setTransform(textSvgEl, el.transform);\n        var x = style.x || 0;\n        var y = adjustTextY(style.y || 0, getLineHeight(font), style.textBaseline);\n        var textAlign = TEXT_ALIGN_TO_ANCHOR[style.textAlign]\n            || style.textAlign;\n        attr(textSvgEl, 'dominant-baseline', 'central');\n        attr(textSvgEl, 'text-anchor', textAlign);\n        attr(textSvgEl, 'x', x + '');\n        attr(textSvgEl, 'y', y + '');\n    }\n};\nexport { svgText as text };\n","import { createElement } from '../core';\nimport * as zrUtil from '../../core/util';\nimport Path from '../../graphic/Path';\nimport ZRImage from '../../graphic/Image';\nimport TSpan from '../../graphic/TSpan';\nimport { path as svgPath, image as svgImage, text as svgText } from '../graphic';\nvar MARK_UNUSED = '0';\nvar MARK_USED = '1';\nvar Definable = (function () {\n    function Definable(zrId, svgRoot, tagNames, markLabel, domName) {\n        this.nextId = 0;\n        this._domName = '_dom';\n        this.createElement = createElement;\n        this._zrId = zrId;\n        this._svgRoot = svgRoot;\n        this._tagNames = typeof tagNames === 'string' ? [tagNames] : tagNames;\n        this._markLabel = markLabel;\n        if (domName) {\n            this._domName = domName;\n        }\n    }\n    Definable.prototype.getDefs = function (isForceCreating) {\n        var svgRoot = this._svgRoot;\n        var defs = this._svgRoot.getElementsByTagName('defs');\n        if (defs.length === 0) {\n            if (isForceCreating) {\n                var defs_1 = svgRoot.insertBefore(this.createElement('defs'), svgRoot.firstChild);\n                if (!defs_1.contains) {\n                    defs_1.contains = function (el) {\n                        var children = defs_1.children;\n                        if (!children) {\n                            return false;\n                        }\n                        for (var i = children.length - 1; i >= 0; --i) {\n                            if (children[i] === el) {\n                                return true;\n                            }\n                        }\n                        return false;\n                    };\n                }\n                return defs_1;\n            }\n            else {\n                return null;\n            }\n        }\n        else {\n            return defs[0];\n        }\n    };\n    Definable.prototype.doUpdate = function (target, onUpdate) {\n        if (!target) {\n            return;\n        }\n        var defs = this.getDefs(false);\n        if (target[this._domName] && defs.contains(target[this._domName])) {\n            if (typeof onUpdate === 'function') {\n                onUpdate(target);\n            }\n        }\n        else {\n            var dom = this.add(target);\n            if (dom) {\n                target[this._domName] = dom;\n            }\n        }\n    };\n    Definable.prototype.add = function (target) {\n        return null;\n    };\n    Definable.prototype.addDom = function (dom) {\n        var defs = this.getDefs(true);\n        if (dom.parentNode !== defs) {\n            defs.appendChild(dom);\n        }\n    };\n    Definable.prototype.removeDom = function (target) {\n        var defs = this.getDefs(false);\n        if (defs && target[this._domName]) {\n            defs.removeChild(target[this._domName]);\n            target[this._domName] = null;\n        }\n    };\n    Definable.prototype.getDoms = function () {\n        var defs = this.getDefs(false);\n        if (!defs) {\n            return [];\n        }\n        var doms = [];\n        zrUtil.each(this._tagNames, function (tagName) {\n            var tags = defs.getElementsByTagName(tagName);\n            for (var i = 0; i < tags.length; i++) {\n                doms.push(tags[i]);\n            }\n        });\n        return doms;\n    };\n    Definable.prototype.markAllUnused = function () {\n        var doms = this.getDoms();\n        var that = this;\n        zrUtil.each(doms, function (dom) {\n            dom[that._markLabel] = MARK_UNUSED;\n        });\n    };\n    Definable.prototype.markDomUsed = function (dom) {\n        dom && (dom[this._markLabel] = MARK_USED);\n    };\n    ;\n    Definable.prototype.markDomUnused = function (dom) {\n        dom && (dom[this._markLabel] = MARK_UNUSED);\n    };\n    ;\n    Definable.prototype.isDomUnused = function (dom) {\n        return dom && dom[this._markLabel] !== MARK_USED;\n    };\n    Definable.prototype.removeUnused = function () {\n        var _this = this;\n        var defs = this.getDefs(false);\n        if (!defs) {\n            return;\n        }\n        var doms = this.getDoms();\n        zrUtil.each(doms, function (dom) {\n            if (_this.isDomUnused(dom)) {\n                defs.removeChild(dom);\n            }\n        });\n    };\n    Definable.prototype.getSvgProxy = function (displayable) {\n        if (displayable instanceof Path) {\n            return svgPath;\n        }\n        else if (displayable instanceof ZRImage) {\n            return svgImage;\n        }\n        else if (displayable instanceof TSpan) {\n            return svgText;\n        }\n        else {\n            return svgPath;\n        }\n    };\n    Definable.prototype.getSvgElement = function (displayable) {\n        return displayable.__svgEl;\n    };\n    return Definable;\n}());\nexport default Definable;\n","import { __extends } from \"tslib\";\nimport Definable from './Definable';\nimport * as zrUtil from '../../core/util';\nimport * as colorTool from '../../tool/color';\nfunction isLinearGradient(value) {\n    return value.type === 'linear';\n}\nfunction isRadialGradient(value) {\n    return value.type === 'radial';\n}\nfunction isGradient(value) {\n    return value && (value.type === 'linear'\n        || value.type === 'radial');\n}\nvar GradientManager = (function (_super) {\n    __extends(GradientManager, _super);\n    function GradientManager(zrId, svgRoot) {\n        return _super.call(this, zrId, svgRoot, ['linearGradient', 'radialGradient'], '__gradient_in_use__') || this;\n    }\n    GradientManager.prototype.addWithoutUpdate = function (svgElement, displayable) {\n        if (displayable && displayable.style) {\n            var that_1 = this;\n            zrUtil.each(['fill', 'stroke'], function (fillOrStroke) {\n                var value = displayable.style[fillOrStroke];\n                if (isGradient(value)) {\n                    var gradient = value;\n                    var defs = that_1.getDefs(true);\n                    var dom = void 0;\n                    if (gradient.__dom) {\n                        dom = gradient.__dom;\n                        if (!defs.contains(gradient.__dom)) {\n                            that_1.addDom(dom);\n                        }\n                    }\n                    else {\n                        dom = that_1.add(gradient);\n                    }\n                    that_1.markUsed(displayable);\n                    var id = dom.getAttribute('id');\n                    svgElement.setAttribute(fillOrStroke, 'url(#' + id + ')');\n                }\n            });\n        }\n    };\n    GradientManager.prototype.add = function (gradient) {\n        var dom;\n        if (isLinearGradient(gradient)) {\n            dom = this.createElement('linearGradient');\n        }\n        else if (isRadialGradient(gradient)) {\n            dom = this.createElement('radialGradient');\n        }\n        else {\n            zrUtil.logError('Illegal gradient type.');\n            return null;\n        }\n        gradient.id = gradient.id || this.nextId++;\n        dom.setAttribute('id', 'zr' + this._zrId\n            + '-gradient-' + gradient.id);\n        this.updateDom(gradient, dom);\n        this.addDom(dom);\n        return dom;\n    };\n    GradientManager.prototype.update = function (gradient) {\n        if (!isGradient(gradient)) {\n            return;\n        }\n        var that = this;\n        this.doUpdate(gradient, function () {\n            var dom = gradient.__dom;\n            if (!dom) {\n                return;\n            }\n            var tagName = dom.tagName;\n            var type = gradient.type;\n            if (type === 'linear' && tagName === 'linearGradient'\n                || type === 'radial' && tagName === 'radialGradient') {\n                that.updateDom(gradient, gradient.__dom);\n            }\n            else {\n                that.removeDom(gradient);\n                that.add(gradient);\n            }\n        });\n    };\n    GradientManager.prototype.updateDom = function (gradient, dom) {\n        if (isLinearGradient(gradient)) {\n            dom.setAttribute('x1', gradient.x + '');\n            dom.setAttribute('y1', gradient.y + '');\n            dom.setAttribute('x2', gradient.x2 + '');\n            dom.setAttribute('y2', gradient.y2 + '');\n        }\n        else if (isRadialGradient(gradient)) {\n            dom.setAttribute('cx', gradient.x + '');\n            dom.setAttribute('cy', gradient.y + '');\n            dom.setAttribute('r', gradient.r + '');\n        }\n        else {\n            zrUtil.logError('Illegal gradient type.');\n            return;\n        }\n        if (gradient.global) {\n            dom.setAttribute('gradientUnits', 'userSpaceOnUse');\n        }\n        else {\n            dom.setAttribute('gradientUnits', 'objectBoundingBox');\n        }\n        dom.innerHTML = '';\n        var colors = gradient.colorStops;\n        for (var i = 0, len = colors.length; i < len; ++i) {\n            var stop_1 = this.createElement('stop');\n            stop_1.setAttribute('offset', colors[i].offset * 100 + '%');\n            var color = colors[i].color;\n            if (color.indexOf('rgba') > -1) {\n                var opacity = colorTool.parse(color)[3];\n                var hex = colorTool.toHex(color);\n                stop_1.setAttribute('stop-color', '#' + hex);\n                stop_1.setAttribute('stop-opacity', opacity + '');\n            }\n            else {\n                stop_1.setAttribute('stop-color', colors[i].color);\n            }\n            dom.appendChild(stop_1);\n        }\n        gradient.__dom = dom;\n    };\n    GradientManager.prototype.markUsed = function (displayable) {\n        if (displayable.style) {\n            var gradient = displayable.style.fill;\n            if (gradient && gradient.__dom) {\n                _super.prototype.markDomUsed.call(this, gradient.__dom);\n            }\n            gradient = displayable.style.stroke;\n            if (gradient && gradient.__dom) {\n                _super.prototype.markDomUsed.call(this, gradient.__dom);\n            }\n        }\n    };\n    return GradientManager;\n}(Definable));\nexport default GradientManager;\n","import { __extends } from \"tslib\";\nimport Definable from './Definable';\nimport * as zrUtil from '../../core/util';\nimport LRU from '../../core/LRU';\nimport { createOrUpdateImage } from '../../graphic/helper/image';\nimport WeakMap from '../../core/WeakMap';\nfunction isPattern(value) {\n    return value && (!!value.image || !!value.svgElement);\n}\nvar patternDomMap = new WeakMap();\nvar PatternManager = (function (_super) {\n    __extends(PatternManager, _super);\n    function PatternManager(zrId, svgRoot) {\n        return _super.call(this, zrId, svgRoot, ['pattern'], '__pattern_in_use__') || this;\n    }\n    PatternManager.prototype.addWithoutUpdate = function (svgElement, displayable) {\n        if (displayable && displayable.style) {\n            var that_1 = this;\n            zrUtil.each(['fill', 'stroke'], function (fillOrStroke) {\n                var pattern = displayable.style[fillOrStroke];\n                if (isPattern(pattern)) {\n                    var defs = that_1.getDefs(true);\n                    var dom = patternDomMap.get(pattern);\n                    if (dom) {\n                        if (!defs.contains(dom)) {\n                            that_1.addDom(dom);\n                        }\n                    }\n                    else {\n                        dom = that_1.add(pattern);\n                    }\n                    that_1.markUsed(displayable);\n                    var id = dom.getAttribute('id');\n                    svgElement.setAttribute(fillOrStroke, 'url(#' + id + ')');\n                }\n            });\n        }\n    };\n    PatternManager.prototype.add = function (pattern) {\n        if (!isPattern(pattern)) {\n            return;\n        }\n        var dom = this.createElement('pattern');\n        pattern.id = pattern.id == null ? this.nextId++ : pattern.id;\n        dom.setAttribute('id', 'zr' + this._zrId\n            + '-pattern-' + pattern.id);\n        dom.setAttribute('x', '0');\n        dom.setAttribute('y', '0');\n        dom.setAttribute('patternUnits', 'userSpaceOnUse');\n        this.updateDom(pattern, dom);\n        this.addDom(dom);\n        return dom;\n    };\n    PatternManager.prototype.update = function (pattern) {\n        if (!isPattern(pattern)) {\n            return;\n        }\n        var that = this;\n        this.doUpdate(pattern, function () {\n            var dom = patternDomMap.get(pattern);\n            that.updateDom(pattern, dom);\n        });\n    };\n    PatternManager.prototype.updateDom = function (pattern, patternDom) {\n        var svgElement = pattern.svgElement;\n        if (svgElement instanceof SVGElement) {\n            if (svgElement.parentNode !== patternDom) {\n                patternDom.innerHTML = '';\n                patternDom.appendChild(svgElement);\n                patternDom.setAttribute('width', pattern.svgWidth + '');\n                patternDom.setAttribute('height', pattern.svgHeight + '');\n            }\n        }\n        else {\n            var img = void 0;\n            var prevImage = patternDom.getElementsByTagName('image');\n            if (prevImage.length) {\n                if (pattern.image) {\n                    img = prevImage[0];\n                }\n                else {\n                    patternDom.removeChild(prevImage[0]);\n                    return;\n                }\n            }\n            else if (pattern.image) {\n                img = this.createElement('image');\n            }\n            if (img) {\n                var imageSrc = void 0;\n                if (typeof pattern.image === 'string') {\n                    imageSrc = pattern.image;\n                }\n                else if (pattern.image instanceof HTMLImageElement) {\n                    imageSrc = pattern.image.src;\n                }\n                else if (pattern.image instanceof HTMLCanvasElement) {\n                    imageSrc = pattern.image.toDataURL();\n                }\n                if (imageSrc) {\n                    img.setAttribute('href', imageSrc);\n                    img.setAttribute('x', '0');\n                    img.setAttribute('y', '0');\n                    var hostEl = {\n                        dirty: function () { }\n                    };\n                    var createdImage = createOrUpdateImage(imageSrc, img, hostEl, function (img) {\n                        patternDom.setAttribute('width', img.width + '');\n                        patternDom.setAttribute('height', img.height + '');\n                    });\n                    if (createdImage && createdImage.width && createdImage.height) {\n                        patternDom.setAttribute('width', createdImage.width + '');\n                        patternDom.setAttribute('height', createdImage.height + '');\n                    }\n                    patternDom.appendChild(img);\n                }\n            }\n        }\n        var x = pattern.x || 0;\n        var y = pattern.y || 0;\n        var rotation = (pattern.rotation || 0) / Math.PI * 180;\n        var scaleX = pattern.scaleX || 1;\n        var scaleY = pattern.scaleY || 1;\n        var transform = \"translate(\" + x + \", \" + y + \") rotate(\" + rotation + \") scale(\" + scaleX + \", \" + scaleY + \")\";\n        patternDom.setAttribute('patternTransform', transform);\n        patternDomMap.set(pattern, patternDom);\n    };\n    PatternManager.prototype.markUsed = function (displayable) {\n        if (displayable.style) {\n            if (isPattern(displayable.style.fill)) {\n                _super.prototype.markDomUsed.call(this, patternDomMap.get(displayable.style.fill));\n            }\n            if (isPattern(displayable.style.stroke)) {\n                _super.prototype.markDomUsed.call(this, patternDomMap.get(displayable.style.stroke));\n            }\n        }\n    };\n    return PatternManager;\n}(Definable));\nexport default PatternManager;\nvar patternSizeCache = new LRU(50);\n","import { __extends } from \"tslib\";\nimport Definable from './Definable';\nimport * as zrUtil from '../../core/util';\nimport { isClipPathChanged } from '../../canvas/helper';\nfunction generateClipPathsKey(clipPaths) {\n    var key = [];\n    if (clipPaths) {\n        for (var i = 0; i < clipPaths.length; i++) {\n            var clipPath = clipPaths[i];\n            key.push(clipPath.id);\n        }\n    }\n    return key.join(',');\n}\nexport function hasClipPath(displayable) {\n    var clipPaths = displayable.__clipPaths;\n    return clipPaths && clipPaths.length > 0;\n}\nvar ClippathManager = (function (_super) {\n    __extends(ClippathManager, _super);\n    function ClippathManager(zrId, svgRoot) {\n        var _this = _super.call(this, zrId, svgRoot, 'clipPath', '__clippath_in_use__') || this;\n        _this._refGroups = {};\n        _this._keyDuplicateCount = {};\n        return _this;\n    }\n    ClippathManager.prototype.markAllUnused = function () {\n        _super.prototype.markAllUnused.call(this);\n        for (var key in this._refGroups) {\n            this.markDomUnused(this._refGroups[key]);\n        }\n        this._keyDuplicateCount = {};\n    };\n    ClippathManager.prototype._getClipPathGroup = function (displayable, prevDisplayable) {\n        if (!hasClipPath(displayable)) {\n            return;\n        }\n        var clipPaths = displayable.__clipPaths;\n        var keyDuplicateCount = this._keyDuplicateCount;\n        var clipPathKey = generateClipPathsKey(clipPaths);\n        if (isClipPathChanged(clipPaths, prevDisplayable && prevDisplayable.__clipPaths)) {\n            keyDuplicateCount[clipPathKey] = keyDuplicateCount[clipPathKey] || 0;\n            keyDuplicateCount[clipPathKey] && (clipPathKey += '-' + keyDuplicateCount[clipPathKey]);\n            keyDuplicateCount[clipPathKey]++;\n        }\n        return this._refGroups[clipPathKey]\n            || (this._refGroups[clipPathKey] = this.createElement('g'));\n    };\n    ClippathManager.prototype.update = function (displayable, prevDisplayable) {\n        var clipGroup = this._getClipPathGroup(displayable, prevDisplayable);\n        if (clipGroup) {\n            this.markDomUsed(clipGroup);\n            this.updateDom(clipGroup, displayable.__clipPaths);\n        }\n        return clipGroup;\n    };\n    ;\n    ClippathManager.prototype.updateDom = function (parentEl, clipPaths) {\n        if (clipPaths && clipPaths.length > 0) {\n            var defs = this.getDefs(true);\n            var clipPath = clipPaths[0];\n            var clipPathEl = void 0;\n            var id = void 0;\n            if (clipPath._dom) {\n                id = clipPath._dom.getAttribute('id');\n                clipPathEl = clipPath._dom;\n                if (!defs.contains(clipPathEl)) {\n                    defs.appendChild(clipPathEl);\n                }\n            }\n            else {\n                id = 'zr' + this._zrId + '-clip-' + this.nextId;\n                ++this.nextId;\n                clipPathEl = this.createElement('clipPath');\n                clipPathEl.setAttribute('id', id);\n                defs.appendChild(clipPathEl);\n                clipPath._dom = clipPathEl;\n            }\n            var svgProxy = this.getSvgProxy(clipPath);\n            svgProxy.brush(clipPath);\n            var pathEl = this.getSvgElement(clipPath);\n            clipPathEl.innerHTML = '';\n            clipPathEl.appendChild(pathEl);\n            parentEl.setAttribute('clip-path', 'url(#' + id + ')');\n            if (clipPaths.length > 1) {\n                this.updateDom(clipPathEl, clipPaths.slice(1));\n            }\n        }\n        else {\n            if (parentEl) {\n                parentEl.setAttribute('clip-path', 'none');\n            }\n        }\n    };\n    ;\n    ClippathManager.prototype.markUsed = function (displayable) {\n        var _this = this;\n        if (displayable.__clipPaths) {\n            zrUtil.each(displayable.__clipPaths, function (clipPath) {\n                if (clipPath._dom) {\n                    _super.prototype.markDomUsed.call(_this, clipPath._dom);\n                }\n            });\n        }\n    };\n    ;\n    ClippathManager.prototype.removeUnused = function () {\n        _super.prototype.removeUnused.call(this);\n        var newRefGroupsMap = {};\n        for (var key in this._refGroups) {\n            var group = this._refGroups[key];\n            if (!this.isDomUnused(group)) {\n                newRefGroupsMap[key] = group;\n            }\n            else if (group.parentNode) {\n                group.parentNode.removeChild(group);\n            }\n        }\n        this._refGroups = newRefGroupsMap;\n    };\n    return ClippathManager;\n}(Definable));\nexport default ClippathManager;\n","import { __extends } from \"tslib\";\nimport Definable from './Definable';\nvar ShadowManager = (function (_super) {\n    __extends(ShadowManager, _super);\n    function ShadowManager(zrId, svgRoot) {\n        var _this = _super.call(this, zrId, svgRoot, ['filter'], '__filter_in_use__', '_shadowDom') || this;\n        _this._shadowDomMap = {};\n        _this._shadowDomPool = [];\n        return _this;\n    }\n    ShadowManager.prototype._getFromPool = function () {\n        var shadowDom = this._shadowDomPool.pop();\n        if (!shadowDom) {\n            shadowDom = this.createElement('filter');\n            shadowDom.setAttribute('id', 'zr' + this._zrId + '-shadow-' + this.nextId++);\n            var domChild = this.createElement('feDropShadow');\n            shadowDom.appendChild(domChild);\n            this.addDom(shadowDom);\n        }\n        return shadowDom;\n    };\n    ShadowManager.prototype.update = function (svgElement, displayable) {\n        var style = displayable.style;\n        if (hasShadow(style)) {\n            var shadowKey = getShadowKey(displayable);\n            var shadowDom = displayable._shadowDom = this._shadowDomMap[shadowKey];\n            if (!shadowDom) {\n                shadowDom = this._getFromPool();\n                this._shadowDomMap[shadowKey] = shadowDom;\n            }\n            this.updateDom(svgElement, displayable, shadowDom);\n        }\n        else {\n            this.remove(svgElement, displayable);\n        }\n    };\n    ShadowManager.prototype.remove = function (svgElement, displayable) {\n        if (displayable._shadowDom != null) {\n            displayable._shadowDom = null;\n            svgElement.style.filter = '';\n        }\n    };\n    ShadowManager.prototype.updateDom = function (svgElement, displayable, shadowDom) {\n        var domChild = shadowDom.children[0];\n        var style = displayable.style;\n        var globalScale = displayable.getGlobalScale();\n        var scaleX = globalScale[0];\n        var scaleY = globalScale[1];\n        if (!scaleX || !scaleY) {\n            return;\n        }\n        var offsetX = style.shadowOffsetX || 0;\n        var offsetY = style.shadowOffsetY || 0;\n        var blur = style.shadowBlur;\n        var color = style.shadowColor;\n        domChild.setAttribute('dx', offsetX / scaleX + '');\n        domChild.setAttribute('dy', offsetY / scaleY + '');\n        domChild.setAttribute('flood-color', color);\n        var stdDx = blur / 2 / scaleX;\n        var stdDy = blur / 2 / scaleY;\n        var stdDeviation = stdDx + ' ' + stdDy;\n        domChild.setAttribute('stdDeviation', stdDeviation);\n        shadowDom.setAttribute('x', '-100%');\n        shadowDom.setAttribute('y', '-100%');\n        shadowDom.setAttribute('width', '300%');\n        shadowDom.setAttribute('height', '300%');\n        displayable._shadowDom = shadowDom;\n        var id = shadowDom.getAttribute('id');\n        svgElement.style.filter = 'url(#' + id + ')';\n    };\n    ShadowManager.prototype.removeUnused = function () {\n        var defs = this.getDefs(false);\n        if (!defs) {\n            return;\n        }\n        var shadowDomsPool = this._shadowDomPool;\n        var currentUsedShadow = 0;\n        for (var key in this._shadowDomMap) {\n            var dom = this._shadowDomMap[key];\n            shadowDomsPool.push(dom);\n            currentUsedShadow++;\n        }\n        this._shadowDomMap = {};\n    };\n    return ShadowManager;\n}(Definable));\nexport default ShadowManager;\nfunction hasShadow(style) {\n    return style\n        && (style.shadowBlur || style.shadowOffsetX || style.shadowOffsetY);\n}\nfunction getShadowKey(displayable) {\n    var style = displayable.style;\n    var globalScale = displayable.getGlobalScale();\n    return [\n        style.shadowColor,\n        (style.shadowBlur || 0).toFixed(2),\n        (style.shadowOffsetX || 0).toFixed(2),\n        (style.shadowOffsetY || 0).toFixed(2),\n        globalScale[0],\n        globalScale[1]\n    ].join(',');\n}\n","import { createElement } from './core';\nimport * as util from '../core/util';\nimport Path from '../graphic/Path';\nimport ZRImage from '../graphic/Image';\nimport TSpan from '../graphic/TSpan';\nimport arrayDiff from '../core/arrayDiff';\nimport GradientManager from './helper/GradientManager';\nimport PatternManager from './helper/PatternManager';\nimport ClippathManager, { hasClipPath } from './helper/ClippathManager';\nimport ShadowManager from './helper/ShadowManager';\nimport { path as svgPath, image as svgImage, text as svgText } from './graphic';\nfunction parseInt10(val) {\n    return parseInt(val, 10);\n}\nfunction getSvgProxy(el) {\n    if (el instanceof Path) {\n        return svgPath;\n    }\n    else if (el instanceof ZRImage) {\n        return svgImage;\n    }\n    else if (el instanceof TSpan) {\n        return svgText;\n    }\n    else {\n        return svgPath;\n    }\n}\nfunction checkParentAvailable(parent, child) {\n    return child && parent && child.parentNode !== parent;\n}\nfunction insertAfter(parent, child, prevSibling) {\n    if (checkParentAvailable(parent, child) && prevSibling) {\n        var nextSibling = prevSibling.nextSibling;\n        nextSibling ? parent.insertBefore(child, nextSibling)\n            : parent.appendChild(child);\n    }\n}\nfunction prepend(parent, child) {\n    if (checkParentAvailable(parent, child)) {\n        var firstChild = parent.firstChild;\n        firstChild ? parent.insertBefore(child, firstChild)\n            : parent.appendChild(child);\n    }\n}\nfunction remove(parent, child) {\n    if (child && parent && child.parentNode === parent) {\n        parent.removeChild(child);\n    }\n}\nfunction removeFromMyParent(child) {\n    if (child && child.parentNode) {\n        child.parentNode.removeChild(child);\n    }\n}\nfunction getSvgElement(displayable) {\n    return displayable.__svgEl;\n}\nvar SVGPainter = (function () {\n    function SVGPainter(root, storage, opts, zrId) {\n        this.type = 'svg';\n        this.refreshHover = createMethodNotSupport('refreshHover');\n        this.pathToImage = createMethodNotSupport('pathToImage');\n        this.configLayer = createMethodNotSupport('configLayer');\n        this.root = root;\n        this.storage = storage;\n        this._opts = opts = util.extend({}, opts || {});\n        var svgDom = createElement('svg');\n        svgDom.setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns', 'http://www.w3.org/2000/svg');\n        svgDom.setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:xlink', 'http://www.w3.org/1999/xlink');\n        svgDom.setAttribute('version', '1.1');\n        svgDom.setAttribute('baseProfile', 'full');\n        svgDom.style.cssText = 'user-select:none;position:absolute;left:0;top:0;';\n        var bgRoot = createElement('g');\n        svgDom.appendChild(bgRoot);\n        var svgRoot = createElement('g');\n        svgDom.appendChild(svgRoot);\n        this._gradientManager = new GradientManager(zrId, svgRoot);\n        this._patternManager = new PatternManager(zrId, svgRoot);\n        this._clipPathManager = new ClippathManager(zrId, svgRoot);\n        this._shadowManager = new ShadowManager(zrId, svgRoot);\n        var viewport = document.createElement('div');\n        viewport.style.cssText = 'overflow:hidden;position:relative';\n        this._svgDom = svgDom;\n        this._svgRoot = svgRoot;\n        this._backgroundRoot = bgRoot;\n        this._viewport = viewport;\n        root.appendChild(viewport);\n        viewport.appendChild(svgDom);\n        this.resize(opts.width, opts.height);\n        this._visibleList = [];\n    }\n    SVGPainter.prototype.getType = function () {\n        return 'svg';\n    };\n    SVGPainter.prototype.getViewportRoot = function () {\n        return this._viewport;\n    };\n    SVGPainter.prototype.getSvgDom = function () {\n        return this._svgDom;\n    };\n    SVGPainter.prototype.getSvgRoot = function () {\n        return this._svgRoot;\n    };\n    SVGPainter.prototype.getViewportRootOffset = function () {\n        var viewportRoot = this.getViewportRoot();\n        if (viewportRoot) {\n            return {\n                offsetLeft: viewportRoot.offsetLeft || 0,\n                offsetTop: viewportRoot.offsetTop || 0\n            };\n        }\n    };\n    SVGPainter.prototype.refresh = function () {\n        var list = this.storage.getDisplayList(true);\n        this._paintList(list);\n    };\n    SVGPainter.prototype.setBackgroundColor = function (backgroundColor) {\n        if (this._backgroundRoot && this._backgroundNode) {\n            this._backgroundRoot.removeChild(this._backgroundNode);\n        }\n        var bgNode = createElement('rect');\n        bgNode.setAttribute('width', this.getWidth());\n        bgNode.setAttribute('height', this.getHeight());\n        bgNode.setAttribute('x', 0);\n        bgNode.setAttribute('y', 0);\n        bgNode.setAttribute('id', 0);\n        bgNode.style.fill = backgroundColor;\n        this._backgroundRoot.appendChild(bgNode);\n        this._backgroundNode = bgNode;\n    };\n    SVGPainter.prototype.createSVGElement = function (tag) {\n        return createElement(tag);\n    };\n    SVGPainter.prototype.paintOne = function (el) {\n        var svgProxy = getSvgProxy(el);\n        svgProxy && svgProxy.brush(el);\n        return getSvgElement(el);\n    };\n    SVGPainter.prototype._paintList = function (list) {\n        var gradientManager = this._gradientManager;\n        var patternManager = this._patternManager;\n        var clipPathManager = this._clipPathManager;\n        var shadowManager = this._shadowManager;\n        gradientManager.markAllUnused();\n        patternManager.markAllUnused();\n        clipPathManager.markAllUnused();\n        shadowManager.markAllUnused();\n        var svgRoot = this._svgRoot;\n        var visibleList = this._visibleList;\n        var listLen = list.length;\n        var newVisibleList = [];\n        for (var i = 0; i < listLen; i++) {\n            var displayable = list[i];\n            var svgProxy = getSvgProxy(displayable);\n            var svgElement = getSvgElement(displayable);\n            if (!displayable.invisible) {\n                if (displayable.__dirty || !svgElement) {\n                    svgProxy && svgProxy.brush(displayable);\n                    svgElement = getSvgElement(displayable);\n                    if (svgElement && displayable.style) {\n                        gradientManager.update(displayable.style.fill);\n                        gradientManager.update(displayable.style.stroke);\n                        patternManager.update(displayable.style.fill);\n                        patternManager.update(displayable.style.stroke);\n                        shadowManager.update(svgElement, displayable);\n                    }\n                    displayable.__dirty = 0;\n                }\n                if (svgElement) {\n                    newVisibleList.push(displayable);\n                }\n            }\n        }\n        var diff = arrayDiff(visibleList, newVisibleList);\n        var prevSvgElement;\n        var topPrevSvgElement;\n        for (var i = 0; i < diff.length; i++) {\n            var item = diff[i];\n            if (item.removed) {\n                for (var k = 0; k < item.count; k++) {\n                    var displayable = visibleList[item.indices[k]];\n                    var svgElement = getSvgElement(displayable);\n                    hasClipPath(displayable) ? removeFromMyParent(svgElement)\n                        : remove(svgRoot, svgElement);\n                }\n            }\n        }\n        var prevDisplayable;\n        var currentClipGroup;\n        for (var i = 0; i < diff.length; i++) {\n            var item = diff[i];\n            var isAdd = item.added;\n            if (item.removed) {\n                continue;\n            }\n            for (var k = 0; k < item.count; k++) {\n                var displayable = newVisibleList[item.indices[k]];\n                var clipGroup = clipPathManager.update(displayable, prevDisplayable);\n                if (clipGroup !== currentClipGroup) {\n                    prevSvgElement = topPrevSvgElement;\n                    if (clipGroup) {\n                        prevSvgElement ? insertAfter(svgRoot, clipGroup, prevSvgElement)\n                            : prepend(svgRoot, clipGroup);\n                        topPrevSvgElement = clipGroup;\n                        prevSvgElement = null;\n                    }\n                    currentClipGroup = clipGroup;\n                }\n                var svgElement = getSvgElement(displayable);\n                prevSvgElement\n                    ? insertAfter(currentClipGroup || svgRoot, svgElement, prevSvgElement)\n                    : prepend(currentClipGroup || svgRoot, svgElement);\n                prevSvgElement = svgElement || prevSvgElement;\n                if (!currentClipGroup) {\n                    topPrevSvgElement = prevSvgElement;\n                }\n                gradientManager.markUsed(displayable);\n                gradientManager.addWithoutUpdate(svgElement, displayable);\n                patternManager.markUsed(displayable);\n                patternManager.addWithoutUpdate(svgElement, displayable);\n                clipPathManager.markUsed(displayable);\n                prevDisplayable = displayable;\n            }\n        }\n        gradientManager.removeUnused();\n        patternManager.removeUnused();\n        clipPathManager.removeUnused();\n        shadowManager.removeUnused();\n        this._visibleList = newVisibleList;\n    };\n    SVGPainter.prototype._getDefs = function (isForceCreating) {\n        var svgRoot = this._svgDom;\n        var defs = svgRoot.getElementsByTagName('defs');\n        if (defs.length === 0) {\n            if (isForceCreating) {\n                var defs_1 = svgRoot.insertBefore(createElement('defs'), svgRoot.firstChild);\n                if (!defs_1.contains) {\n                    defs_1.contains = function (el) {\n                        var children = defs_1.children;\n                        if (!children) {\n                            return false;\n                        }\n                        for (var i = children.length - 1; i >= 0; --i) {\n                            if (children[i] === el) {\n                                return true;\n                            }\n                        }\n                        return false;\n                    };\n                }\n                return defs_1;\n            }\n            else {\n                return null;\n            }\n        }\n        else {\n            return defs[0];\n        }\n    };\n    SVGPainter.prototype.resize = function (width, height) {\n        var viewport = this._viewport;\n        viewport.style.display = 'none';\n        var opts = this._opts;\n        width != null && (opts.width = width);\n        height != null && (opts.height = height);\n        width = this._getSize(0);\n        height = this._getSize(1);\n        viewport.style.display = '';\n        if (this._width !== width || this._height !== height) {\n            this._width = width;\n            this._height = height;\n            var viewportStyle = viewport.style;\n            viewportStyle.width = width + 'px';\n            viewportStyle.height = height + 'px';\n            var svgRoot = this._svgDom;\n            svgRoot.setAttribute('width', width + '');\n            svgRoot.setAttribute('height', height + '');\n        }\n        if (this._backgroundNode) {\n            this._backgroundNode.setAttribute('width', width);\n            this._backgroundNode.setAttribute('height', height);\n        }\n    };\n    SVGPainter.prototype.getWidth = function () {\n        return this._width;\n    };\n    SVGPainter.prototype.getHeight = function () {\n        return this._height;\n    };\n    SVGPainter.prototype._getSize = function (whIdx) {\n        var opts = this._opts;\n        var wh = ['width', 'height'][whIdx];\n        var cwh = ['clientWidth', 'clientHeight'][whIdx];\n        var plt = ['paddingLeft', 'paddingTop'][whIdx];\n        var prb = ['paddingRight', 'paddingBottom'][whIdx];\n        if (opts[wh] != null && opts[wh] !== 'auto') {\n            return parseFloat(opts[wh]);\n        }\n        var root = this.root;\n        var stl = document.defaultView.getComputedStyle(root);\n        return ((root[cwh] || parseInt10(stl[wh]) || parseInt10(root.style[wh]))\n            - (parseInt10(stl[plt]) || 0)\n            - (parseInt10(stl[prb]) || 0)) | 0;\n    };\n    SVGPainter.prototype.dispose = function () {\n        this.root.innerHTML = '';\n        this._svgRoot\n            = this._backgroundRoot\n                = this._svgDom\n                    = this._backgroundNode\n                        = this._viewport\n                            = this.storage\n                                = null;\n    };\n    SVGPainter.prototype.clear = function () {\n        var viewportNode = this._viewport;\n        if (viewportNode && viewportNode.parentNode) {\n            viewportNode.parentNode.removeChild(viewportNode);\n        }\n    };\n    SVGPainter.prototype.toDataURL = function () {\n        this.refresh();\n        var svgDom = this._svgDom;\n        var outerHTML = svgDom.outerHTML\n            || (svgDom.parentNode && svgDom.parentNode).innerHTML;\n        var html = encodeURIComponent(outerHTML.replace(/></g, '>\\n\\r<'));\n        return 'data:image/svg+xml;charset=UTF-8,' + html;\n    };\n    return SVGPainter;\n}());\nfunction createMethodNotSupport(method) {\n    return function () {\n        util.logError('In SVG mode painter not support method \"' + method + '\"');\n    };\n}\nexport default SVGPainter;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SVGPainter from 'zrender/lib/svg/Painter';\nexport function install(registers) {\n  registers.registerPainter('svg', SVGPainter);\n}","import { __extends } from \"tslib\";\nimport * as util from '../core/util';\nimport { devicePixelRatio } from '../config';\nimport Eventful from '../core/Eventful';\nimport Element from '../Element';\nimport { getCanvasGradient } from './helper';\nimport { createCanvasPattern } from './graphic';\nimport BoundingRect from '../core/BoundingRect';\nfunction returnFalse() {\n    return false;\n}\nfunction createDom(id, painter, dpr) {\n    var newDom = util.createCanvas();\n    var width = painter.getWidth();\n    var height = painter.getHeight();\n    var newDomStyle = newDom.style;\n    if (newDomStyle) {\n        newDomStyle.position = 'absolute';\n        newDomStyle.left = '0';\n        newDomStyle.top = '0';\n        newDomStyle.width = width + 'px';\n        newDomStyle.height = height + 'px';\n        newDom.setAttribute('data-zr-dom-id', id);\n    }\n    newDom.width = width * dpr;\n    newDom.height = height * dpr;\n    return newDom;\n}\n;\nvar Layer = (function (_super) {\n    __extends(Layer, _super);\n    function Layer(id, painter, dpr) {\n        var _this = _super.call(this) || this;\n        _this.motionBlur = false;\n        _this.lastFrameAlpha = 0.7;\n        _this.dpr = 1;\n        _this.virtual = false;\n        _this.config = {};\n        _this.incremental = false;\n        _this.zlevel = 0;\n        _this.maxRepaintRectCount = 5;\n        _this.__dirty = true;\n        _this.__firstTimePaint = true;\n        _this.__used = false;\n        _this.__drawIndex = 0;\n        _this.__startIndex = 0;\n        _this.__endIndex = 0;\n        _this.__prevStartIndex = null;\n        _this.__prevEndIndex = null;\n        var dom;\n        dpr = dpr || devicePixelRatio;\n        if (typeof id === 'string') {\n            dom = createDom(id, painter, dpr);\n        }\n        else if (util.isObject(id)) {\n            dom = id;\n            id = dom.id;\n        }\n        _this.id = id;\n        _this.dom = dom;\n        var domStyle = dom.style;\n        if (domStyle) {\n            dom.onselectstart = returnFalse;\n            domStyle.webkitUserSelect = 'none';\n            domStyle.userSelect = 'none';\n            domStyle.webkitTapHighlightColor = 'rgba(0,0,0,0)';\n            domStyle['-webkit-touch-callout'] = 'none';\n            domStyle.padding = '0';\n            domStyle.margin = '0';\n            domStyle.borderWidth = '0';\n        }\n        _this.domBack = null;\n        _this.ctxBack = null;\n        _this.painter = painter;\n        _this.config = null;\n        _this.dpr = dpr;\n        return _this;\n    }\n    Layer.prototype.getElementCount = function () {\n        return this.__endIndex - this.__startIndex;\n    };\n    Layer.prototype.afterBrush = function () {\n        this.__prevStartIndex = this.__startIndex;\n        this.__prevEndIndex = this.__endIndex;\n    };\n    Layer.prototype.initContext = function () {\n        this.ctx = this.dom.getContext('2d');\n        this.ctx.dpr = this.dpr;\n    };\n    Layer.prototype.setUnpainted = function () {\n        this.__firstTimePaint = true;\n    };\n    Layer.prototype.createBackBuffer = function () {\n        var dpr = this.dpr;\n        this.domBack = createDom('back-' + this.id, this.painter, dpr);\n        this.ctxBack = this.domBack.getContext('2d');\n        if (dpr !== 1) {\n            this.ctxBack.scale(dpr, dpr);\n        }\n    };\n    Layer.prototype.createRepaintRects = function (displayList, prevList, viewWidth, viewHeight) {\n        if (this.__firstTimePaint) {\n            this.__firstTimePaint = false;\n            return null;\n        }\n        var mergedRepaintRects = [];\n        var maxRepaintRectCount = this.maxRepaintRectCount;\n        var full = false;\n        var pendingRect = new BoundingRect(0, 0, 0, 0);\n        function addRectToMergePool(rect) {\n            if (!rect.isFinite() || rect.isZero()) {\n                return;\n            }\n            if (mergedRepaintRects.length === 0) {\n                var boundingRect = new BoundingRect(0, 0, 0, 0);\n                boundingRect.copy(rect);\n                mergedRepaintRects.push(boundingRect);\n            }\n            else {\n                var isMerged = false;\n                var minDeltaArea = Infinity;\n                var bestRectToMergeIdx = 0;\n                for (var i = 0; i < mergedRepaintRects.length; ++i) {\n                    var mergedRect = mergedRepaintRects[i];\n                    if (mergedRect.intersect(rect)) {\n                        var pendingRect_1 = new BoundingRect(0, 0, 0, 0);\n                        pendingRect_1.copy(mergedRect);\n                        pendingRect_1.union(rect);\n                        mergedRepaintRects[i] = pendingRect_1;\n                        isMerged = true;\n                        break;\n                    }\n                    else if (full) {\n                        pendingRect.copy(rect);\n                        pendingRect.union(mergedRect);\n                        var aArea = rect.width * rect.height;\n                        var bArea = mergedRect.width * mergedRect.height;\n                        var pendingArea = pendingRect.width * pendingRect.height;\n                        var deltaArea = pendingArea - aArea - bArea;\n                        if (deltaArea < minDeltaArea) {\n                            minDeltaArea = deltaArea;\n                            bestRectToMergeIdx = i;\n                        }\n                    }\n                }\n                if (full) {\n                    mergedRepaintRects[bestRectToMergeIdx].union(rect);\n                    isMerged = true;\n                }\n                if (!isMerged) {\n                    var boundingRect = new BoundingRect(0, 0, 0, 0);\n                    boundingRect.copy(rect);\n                    mergedRepaintRects.push(boundingRect);\n                }\n                if (!full) {\n                    full = mergedRepaintRects.length >= maxRepaintRectCount;\n                }\n            }\n        }\n        for (var i = this.__startIndex; i < this.__endIndex; ++i) {\n            var el = displayList[i];\n            if (el) {\n                var shouldPaint = el.shouldBePainted(viewWidth, viewHeight, true, true);\n                var prevRect = el.__isRendered && ((el.__dirty & Element.REDARAW_BIT) || !shouldPaint)\n                    ? el.getPrevPaintRect()\n                    : null;\n                if (prevRect) {\n                    addRectToMergePool(prevRect);\n                }\n                var curRect = shouldPaint && ((el.__dirty & Element.REDARAW_BIT) || !el.__isRendered)\n                    ? el.getPaintRect()\n                    : null;\n                if (curRect) {\n                    addRectToMergePool(curRect);\n                }\n            }\n        }\n        for (var i = this.__prevStartIndex; i < this.__prevEndIndex; ++i) {\n            var el = prevList[i];\n            var shouldPaint = el.shouldBePainted(viewWidth, viewHeight, true, true);\n            if (el && (!shouldPaint || !el.__zr) && el.__isRendered) {\n                var prevRect = el.getPrevPaintRect();\n                if (prevRect) {\n                    addRectToMergePool(prevRect);\n                }\n            }\n        }\n        var hasIntersections;\n        do {\n            hasIntersections = false;\n            for (var i = 0; i < mergedRepaintRects.length;) {\n                if (mergedRepaintRects[i].isZero()) {\n                    mergedRepaintRects.splice(i, 1);\n                    continue;\n                }\n                for (var j = i + 1; j < mergedRepaintRects.length;) {\n                    if (mergedRepaintRects[i].intersect(mergedRepaintRects[j])) {\n                        hasIntersections = true;\n                        mergedRepaintRects[i].union(mergedRepaintRects[j]);\n                        mergedRepaintRects.splice(j, 1);\n                    }\n                    else {\n                        j++;\n                    }\n                }\n                i++;\n            }\n        } while (hasIntersections);\n        this._paintRects = mergedRepaintRects;\n        return mergedRepaintRects;\n    };\n    Layer.prototype.debugGetPaintRects = function () {\n        return (this._paintRects || []).slice();\n    };\n    Layer.prototype.resize = function (width, height) {\n        var dpr = this.dpr;\n        var dom = this.dom;\n        var domStyle = dom.style;\n        var domBack = this.domBack;\n        if (domStyle) {\n            domStyle.width = width + 'px';\n            domStyle.height = height + 'px';\n        }\n        dom.width = width * dpr;\n        dom.height = height * dpr;\n        if (domBack) {\n            domBack.width = width * dpr;\n            domBack.height = height * dpr;\n            if (dpr !== 1) {\n                this.ctxBack.scale(dpr, dpr);\n            }\n        }\n    };\n    Layer.prototype.clear = function (clearAll, clearColor, repaintRects) {\n        var dom = this.dom;\n        var ctx = this.ctx;\n        var width = dom.width;\n        var height = dom.height;\n        clearColor = clearColor || this.clearColor;\n        var haveMotionBLur = this.motionBlur && !clearAll;\n        var lastFrameAlpha = this.lastFrameAlpha;\n        var dpr = this.dpr;\n        var self = this;\n        if (haveMotionBLur) {\n            if (!this.domBack) {\n                this.createBackBuffer();\n            }\n            this.ctxBack.globalCompositeOperation = 'copy';\n            this.ctxBack.drawImage(dom, 0, 0, width / dpr, height / dpr);\n        }\n        var domBack = this.domBack;\n        function doClear(x, y, width, height) {\n            ctx.clearRect(x, y, width, height);\n            if (clearColor && clearColor !== 'transparent') {\n                var clearColorGradientOrPattern = void 0;\n                if (util.isGradientObject(clearColor)) {\n                    clearColorGradientOrPattern = clearColor.__canvasGradient\n                        || getCanvasGradient(ctx, clearColor, {\n                            x: 0,\n                            y: 0,\n                            width: width,\n                            height: height\n                        });\n                    clearColor.__canvasGradient = clearColorGradientOrPattern;\n                }\n                else if (util.isPatternObject(clearColor)) {\n                    clearColorGradientOrPattern = createCanvasPattern(ctx, clearColor, {\n                        dirty: function () {\n                            self.setUnpainted();\n                            self.__painter.refresh();\n                        }\n                    });\n                }\n                ctx.save();\n                ctx.fillStyle = clearColorGradientOrPattern || clearColor;\n                ctx.fillRect(x, y, width, height);\n                ctx.restore();\n            }\n            if (haveMotionBLur) {\n                ctx.save();\n                ctx.globalAlpha = lastFrameAlpha;\n                ctx.drawImage(domBack, x, y, width, height);\n                ctx.restore();\n            }\n        }\n        ;\n        if (!repaintRects || haveMotionBLur) {\n            doClear(0, 0, width, height);\n        }\n        else if (repaintRects.length) {\n            util.each(repaintRects, function (rect) {\n                doClear(rect.x * dpr, rect.y * dpr, rect.width * dpr, rect.height * dpr);\n            });\n        }\n    };\n    return Layer;\n}(Eventful));\nexport default Layer;\n","import { devicePixelRatio } from '../config';\nimport * as util from '../core/util';\nimport Layer from './Layer';\nimport requestAnimationFrame from '../animation/requestAnimationFrame';\nimport ZRImage from '../graphic/Image';\nimport env from '../core/env';\nimport { brush, brushSingle } from './graphic';\nimport Element from '../Element';\nvar HOVER_LAYER_ZLEVEL = 1e5;\nvar CANVAS_ZLEVEL = 314159;\nvar EL_AFTER_INCREMENTAL_INC = 0.01;\nvar INCREMENTAL_INC = 0.001;\nfunction parseInt10(val) {\n    return parseInt(val, 10);\n}\nfunction isLayerValid(layer) {\n    if (!layer) {\n        return false;\n    }\n    if (layer.__builtin__) {\n        return true;\n    }\n    if (typeof (layer.resize) !== 'function'\n        || typeof (layer.refresh) !== 'function') {\n        return false;\n    }\n    return true;\n}\nfunction createRoot(width, height) {\n    var domRoot = document.createElement('div');\n    domRoot.style.cssText = [\n        'position:relative',\n        'width:' + width + 'px',\n        'height:' + height + 'px',\n        'padding:0',\n        'margin:0',\n        'border-width:0'\n    ].join(';') + ';';\n    return domRoot;\n}\nvar CanvasPainter = (function () {\n    function CanvasPainter(root, storage, opts, id) {\n        this.type = 'canvas';\n        this._zlevelList = [];\n        this._prevDisplayList = [];\n        this._layers = {};\n        this._layerConfig = {};\n        this._needsManuallyCompositing = false;\n        this.type = 'canvas';\n        var singleCanvas = !root.nodeName\n            || root.nodeName.toUpperCase() === 'CANVAS';\n        this._opts = opts = util.extend({}, opts || {});\n        this.dpr = opts.devicePixelRatio || devicePixelRatio;\n        this._singleCanvas = singleCanvas;\n        this.root = root;\n        var rootStyle = root.style;\n        if (rootStyle) {\n            rootStyle.webkitTapHighlightColor = 'transparent';\n            rootStyle.webkitUserSelect = 'none';\n            rootStyle.userSelect = 'none';\n            rootStyle['-webkit-touch-callout'] = 'none';\n            root.innerHTML = '';\n        }\n        this.storage = storage;\n        var zlevelList = this._zlevelList;\n        this._prevDisplayList = [];\n        var layers = this._layers;\n        if (!singleCanvas) {\n            this._width = this._getSize(0);\n            this._height = this._getSize(1);\n            var domRoot = this._domRoot = createRoot(this._width, this._height);\n            root.appendChild(domRoot);\n        }\n        else {\n            var rootCanvas = root;\n            var width = rootCanvas.width;\n            var height = rootCanvas.height;\n            if (opts.width != null) {\n                width = opts.width;\n            }\n            if (opts.height != null) {\n                height = opts.height;\n            }\n            this.dpr = opts.devicePixelRatio || 1;\n            rootCanvas.width = width * this.dpr;\n            rootCanvas.height = height * this.dpr;\n            this._width = width;\n            this._height = height;\n            var mainLayer = new Layer(rootCanvas, this, this.dpr);\n            mainLayer.__builtin__ = true;\n            mainLayer.initContext();\n            layers[CANVAS_ZLEVEL] = mainLayer;\n            mainLayer.zlevel = CANVAS_ZLEVEL;\n            zlevelList.push(CANVAS_ZLEVEL);\n            this._domRoot = root;\n        }\n    }\n    CanvasPainter.prototype.getType = function () {\n        return 'canvas';\n    };\n    CanvasPainter.prototype.isSingleCanvas = function () {\n        return this._singleCanvas;\n    };\n    CanvasPainter.prototype.getViewportRoot = function () {\n        return this._domRoot;\n    };\n    CanvasPainter.prototype.getViewportRootOffset = function () {\n        var viewportRoot = this.getViewportRoot();\n        if (viewportRoot) {\n            return {\n                offsetLeft: viewportRoot.offsetLeft || 0,\n                offsetTop: viewportRoot.offsetTop || 0\n            };\n        }\n    };\n    CanvasPainter.prototype.refresh = function (paintAll) {\n        var list = this.storage.getDisplayList(true);\n        var prevList = this._prevDisplayList;\n        var zlevelList = this._zlevelList;\n        this._redrawId = Math.random();\n        this._paintList(list, prevList, paintAll, this._redrawId);\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            var layer = this._layers[z];\n            if (!layer.__builtin__ && layer.refresh) {\n                var clearColor = i === 0 ? this._backgroundColor : null;\n                layer.refresh(clearColor);\n            }\n        }\n        if (this._opts.useDirtyRect) {\n            this._prevDisplayList = list.slice();\n        }\n        return this;\n    };\n    CanvasPainter.prototype.refreshHover = function () {\n        this._paintHoverList(this.storage.getDisplayList(false));\n    };\n    CanvasPainter.prototype._paintHoverList = function (list) {\n        var len = list.length;\n        var hoverLayer = this._hoverlayer;\n        hoverLayer && hoverLayer.clear();\n        if (!len) {\n            return;\n        }\n        var scope = {\n            inHover: true,\n            viewWidth: this._width,\n            viewHeight: this._height\n        };\n        var ctx;\n        for (var i = 0; i < len; i++) {\n            var el = list[i];\n            if (el.__inHover) {\n                if (!hoverLayer) {\n                    hoverLayer = this._hoverlayer = this.getLayer(HOVER_LAYER_ZLEVEL);\n                }\n                if (!ctx) {\n                    ctx = hoverLayer.ctx;\n                    ctx.save();\n                }\n                brush(ctx, el, scope, i === len - 1);\n            }\n        }\n        if (ctx) {\n            ctx.restore();\n        }\n    };\n    CanvasPainter.prototype.getHoverLayer = function () {\n        return this.getLayer(HOVER_LAYER_ZLEVEL);\n    };\n    CanvasPainter.prototype.paintOne = function (ctx, el) {\n        brushSingle(ctx, el);\n    };\n    CanvasPainter.prototype._paintList = function (list, prevList, paintAll, redrawId) {\n        if (this._redrawId !== redrawId) {\n            return;\n        }\n        paintAll = paintAll || false;\n        this._updateLayerStatus(list);\n        var _a = this._doPaintList(list, prevList, paintAll), finished = _a.finished, needsRefreshHover = _a.needsRefreshHover;\n        if (this._needsManuallyCompositing) {\n            this._compositeManually();\n        }\n        if (needsRefreshHover) {\n            this._paintHoverList(list);\n        }\n        if (!finished) {\n            var self_1 = this;\n            requestAnimationFrame(function () {\n                self_1._paintList(list, prevList, paintAll, redrawId);\n            });\n        }\n        else {\n            this.eachLayer(function (layer) {\n                layer.afterBrush && layer.afterBrush();\n            });\n        }\n    };\n    CanvasPainter.prototype._compositeManually = function () {\n        var ctx = this.getLayer(CANVAS_ZLEVEL).ctx;\n        var width = this._domRoot.width;\n        var height = this._domRoot.height;\n        ctx.clearRect(0, 0, width, height);\n        this.eachBuiltinLayer(function (layer) {\n            if (layer.virtual) {\n                ctx.drawImage(layer.dom, 0, 0, width, height);\n            }\n        });\n    };\n    CanvasPainter.prototype._doPaintList = function (list, prevList, paintAll) {\n        var _this = this;\n        var layerList = [];\n        var useDirtyRect = this._opts.useDirtyRect;\n        for (var zi = 0; zi < this._zlevelList.length; zi++) {\n            var zlevel = this._zlevelList[zi];\n            var layer = this._layers[zlevel];\n            if (layer.__builtin__\n                && layer !== this._hoverlayer\n                && (layer.__dirty || paintAll)) {\n                layerList.push(layer);\n            }\n        }\n        var finished = true;\n        var needsRefreshHover = false;\n        var _loop_1 = function (k) {\n            var layer = layerList[k];\n            var ctx = layer.ctx;\n            var repaintRects = useDirtyRect\n                && layer.createRepaintRects(list, prevList, this_1._width, this_1._height);\n            ctx.save();\n            var start = paintAll ? layer.__startIndex : layer.__drawIndex;\n            var useTimer = !paintAll && layer.incremental && Date.now;\n            var startTime = useTimer && Date.now();\n            var clearColor = layer.zlevel === this_1._zlevelList[0]\n                ? this_1._backgroundColor : null;\n            if (layer.__startIndex === layer.__endIndex) {\n                layer.clear(false, clearColor, repaintRects);\n            }\n            else if (start === layer.__startIndex) {\n                var firstEl = list[start];\n                if (!firstEl.incremental || !firstEl.notClear || paintAll) {\n                    layer.clear(false, clearColor, repaintRects);\n                }\n            }\n            if (start === -1) {\n                console.error('For some unknown reason. drawIndex is -1');\n                start = layer.__startIndex;\n            }\n            var i;\n            var repaint = function (repaintRect) {\n                var scope = {\n                    inHover: false,\n                    allClipped: false,\n                    prevEl: null,\n                    viewWidth: _this._width,\n                    viewHeight: _this._height\n                };\n                for (i = start; i < layer.__endIndex; i++) {\n                    var el = list[i];\n                    if (el.__inHover) {\n                        needsRefreshHover = true;\n                    }\n                    _this._doPaintEl(el, layer, useDirtyRect, repaintRect, scope, i === layer.__endIndex - 1);\n                    if (useTimer) {\n                        var dTime = Date.now() - startTime;\n                        if (dTime > 15) {\n                            break;\n                        }\n                    }\n                }\n                if (scope.prevElClipPaths) {\n                    ctx.restore();\n                }\n            };\n            if (repaintRects) {\n                if (repaintRects.length === 0) {\n                    i = layer.__endIndex;\n                }\n                else {\n                    var dpr = this_1.dpr;\n                    for (var r = 0; r < repaintRects.length; ++r) {\n                        var rect = repaintRects[r];\n                        ctx.save();\n                        ctx.beginPath();\n                        ctx.rect(rect.x * dpr, rect.y * dpr, rect.width * dpr, rect.height * dpr);\n                        ctx.clip();\n                        repaint(rect);\n                        ctx.restore();\n                    }\n                }\n            }\n            else {\n                ctx.save();\n                repaint();\n                ctx.restore();\n            }\n            layer.__drawIndex = i;\n            if (layer.__drawIndex < layer.__endIndex) {\n                finished = false;\n            }\n        };\n        var this_1 = this;\n        for (var k = 0; k < layerList.length; k++) {\n            _loop_1(k);\n        }\n        if (env.wxa) {\n            util.each(this._layers, function (layer) {\n                if (layer && layer.ctx && layer.ctx.draw) {\n                    layer.ctx.draw();\n                }\n            });\n        }\n        return {\n            finished: finished,\n            needsRefreshHover: needsRefreshHover\n        };\n    };\n    CanvasPainter.prototype._doPaintEl = function (el, currentLayer, useDirtyRect, repaintRect, scope, isLast) {\n        var ctx = currentLayer.ctx;\n        if (useDirtyRect) {\n            var paintRect = el.getPaintRect();\n            if (!repaintRect || paintRect && paintRect.intersect(repaintRect)) {\n                brush(ctx, el, scope, isLast);\n                el.setPrevPaintRect(paintRect);\n            }\n        }\n        else {\n            brush(ctx, el, scope, isLast);\n        }\n    };\n    CanvasPainter.prototype.getLayer = function (zlevel, virtual) {\n        if (this._singleCanvas && !this._needsManuallyCompositing) {\n            zlevel = CANVAS_ZLEVEL;\n        }\n        var layer = this._layers[zlevel];\n        if (!layer) {\n            layer = new Layer('zr_' + zlevel, this, this.dpr);\n            layer.zlevel = zlevel;\n            layer.__builtin__ = true;\n            if (this._layerConfig[zlevel]) {\n                util.merge(layer, this._layerConfig[zlevel], true);\n            }\n            else if (this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC]) {\n                util.merge(layer, this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC], true);\n            }\n            if (virtual) {\n                layer.virtual = virtual;\n            }\n            this.insertLayer(zlevel, layer);\n            layer.initContext();\n        }\n        return layer;\n    };\n    CanvasPainter.prototype.insertLayer = function (zlevel, layer) {\n        var layersMap = this._layers;\n        var zlevelList = this._zlevelList;\n        var len = zlevelList.length;\n        var domRoot = this._domRoot;\n        var prevLayer = null;\n        var i = -1;\n        if (layersMap[zlevel]) {\n            util.logError('ZLevel ' + zlevel + ' has been used already');\n            return;\n        }\n        if (!isLayerValid(layer)) {\n            util.logError('Layer of zlevel ' + zlevel + ' is not valid');\n            return;\n        }\n        if (len > 0 && zlevel > zlevelList[0]) {\n            for (i = 0; i < len - 1; i++) {\n                if (zlevelList[i] < zlevel\n                    && zlevelList[i + 1] > zlevel) {\n                    break;\n                }\n            }\n            prevLayer = layersMap[zlevelList[i]];\n        }\n        zlevelList.splice(i + 1, 0, zlevel);\n        layersMap[zlevel] = layer;\n        if (!layer.virtual) {\n            if (prevLayer) {\n                var prevDom = prevLayer.dom;\n                if (prevDom.nextSibling) {\n                    domRoot.insertBefore(layer.dom, prevDom.nextSibling);\n                }\n                else {\n                    domRoot.appendChild(layer.dom);\n                }\n            }\n            else {\n                if (domRoot.firstChild) {\n                    domRoot.insertBefore(layer.dom, domRoot.firstChild);\n                }\n                else {\n                    domRoot.appendChild(layer.dom);\n                }\n            }\n        }\n        layer.__painter = this;\n    };\n    CanvasPainter.prototype.eachLayer = function (cb, context) {\n        var zlevelList = this._zlevelList;\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            cb.call(context, this._layers[z], z);\n        }\n    };\n    CanvasPainter.prototype.eachBuiltinLayer = function (cb, context) {\n        var zlevelList = this._zlevelList;\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            var layer = this._layers[z];\n            if (layer.__builtin__) {\n                cb.call(context, layer, z);\n            }\n        }\n    };\n    CanvasPainter.prototype.eachOtherLayer = function (cb, context) {\n        var zlevelList = this._zlevelList;\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            var layer = this._layers[z];\n            if (!layer.__builtin__) {\n                cb.call(context, layer, z);\n            }\n        }\n    };\n    CanvasPainter.prototype.getLayers = function () {\n        return this._layers;\n    };\n    CanvasPainter.prototype._updateLayerStatus = function (list) {\n        this.eachBuiltinLayer(function (layer, z) {\n            layer.__dirty = layer.__used = false;\n        });\n        function updatePrevLayer(idx) {\n            if (prevLayer) {\n                if (prevLayer.__endIndex !== idx) {\n                    prevLayer.__dirty = true;\n                }\n                prevLayer.__endIndex = idx;\n            }\n        }\n        if (this._singleCanvas) {\n            for (var i_1 = 1; i_1 < list.length; i_1++) {\n                var el = list[i_1];\n                if (el.zlevel !== list[i_1 - 1].zlevel || el.incremental) {\n                    this._needsManuallyCompositing = true;\n                    break;\n                }\n            }\n        }\n        var prevLayer = null;\n        var incrementalLayerCount = 0;\n        var prevZlevel;\n        var i;\n        for (i = 0; i < list.length; i++) {\n            var el = list[i];\n            var zlevel = el.zlevel;\n            var layer = void 0;\n            if (prevZlevel !== zlevel) {\n                prevZlevel = zlevel;\n                incrementalLayerCount = 0;\n            }\n            if (el.incremental) {\n                layer = this.getLayer(zlevel + INCREMENTAL_INC, this._needsManuallyCompositing);\n                layer.incremental = true;\n                incrementalLayerCount = 1;\n            }\n            else {\n                layer = this.getLayer(zlevel + (incrementalLayerCount > 0 ? EL_AFTER_INCREMENTAL_INC : 0), this._needsManuallyCompositing);\n            }\n            if (!layer.__builtin__) {\n                util.logError('ZLevel ' + zlevel + ' has been used by unkown layer ' + layer.id);\n            }\n            if (layer !== prevLayer) {\n                layer.__used = true;\n                if (layer.__startIndex !== i) {\n                    layer.__dirty = true;\n                }\n                layer.__startIndex = i;\n                if (!layer.incremental) {\n                    layer.__drawIndex = i;\n                }\n                else {\n                    layer.__drawIndex = -1;\n                }\n                updatePrevLayer(i);\n                prevLayer = layer;\n            }\n            if ((el.__dirty & Element.REDARAW_BIT) && !el.__inHover) {\n                layer.__dirty = true;\n                if (layer.incremental && layer.__drawIndex < 0) {\n                    layer.__drawIndex = i;\n                }\n            }\n        }\n        updatePrevLayer(i);\n        this.eachBuiltinLayer(function (layer, z) {\n            if (!layer.__used && layer.getElementCount() > 0) {\n                layer.__dirty = true;\n                layer.__startIndex = layer.__endIndex = layer.__drawIndex = 0;\n            }\n            if (layer.__dirty && layer.__drawIndex < 0) {\n                layer.__drawIndex = layer.__startIndex;\n            }\n        });\n    };\n    CanvasPainter.prototype.clear = function () {\n        this.eachBuiltinLayer(this._clearLayer);\n        return this;\n    };\n    CanvasPainter.prototype._clearLayer = function (layer) {\n        layer.clear();\n    };\n    CanvasPainter.prototype.setBackgroundColor = function (backgroundColor) {\n        this._backgroundColor = backgroundColor;\n        util.each(this._layers, function (layer) {\n            layer.setUnpainted();\n        });\n    };\n    CanvasPainter.prototype.configLayer = function (zlevel, config) {\n        if (config) {\n            var layerConfig = this._layerConfig;\n            if (!layerConfig[zlevel]) {\n                layerConfig[zlevel] = config;\n            }\n            else {\n                util.merge(layerConfig[zlevel], config, true);\n            }\n            for (var i = 0; i < this._zlevelList.length; i++) {\n                var _zlevel = this._zlevelList[i];\n                if (_zlevel === zlevel || _zlevel === zlevel + EL_AFTER_INCREMENTAL_INC) {\n                    var layer = this._layers[_zlevel];\n                    util.merge(layer, layerConfig[zlevel], true);\n                }\n            }\n        }\n    };\n    CanvasPainter.prototype.delLayer = function (zlevel) {\n        var layers = this._layers;\n        var zlevelList = this._zlevelList;\n        var layer = layers[zlevel];\n        if (!layer) {\n            return;\n        }\n        layer.dom.parentNode.removeChild(layer.dom);\n        delete layers[zlevel];\n        zlevelList.splice(util.indexOf(zlevelList, zlevel), 1);\n    };\n    CanvasPainter.prototype.resize = function (width, height) {\n        if (!this._domRoot.style) {\n            if (width == null || height == null) {\n                return;\n            }\n            this._width = width;\n            this._height = height;\n            this.getLayer(CANVAS_ZLEVEL).resize(width, height);\n        }\n        else {\n            var domRoot = this._domRoot;\n            domRoot.style.display = 'none';\n            var opts = this._opts;\n            width != null && (opts.width = width);\n            height != null && (opts.height = height);\n            width = this._getSize(0);\n            height = this._getSize(1);\n            domRoot.style.display = '';\n            if (this._width !== width || height !== this._height) {\n                domRoot.style.width = width + 'px';\n                domRoot.style.height = height + 'px';\n                for (var id in this._layers) {\n                    if (this._layers.hasOwnProperty(id)) {\n                        this._layers[id].resize(width, height);\n                    }\n                }\n                this.refresh(true);\n            }\n            this._width = width;\n            this._height = height;\n        }\n        return this;\n    };\n    CanvasPainter.prototype.clearLayer = function (zlevel) {\n        var layer = this._layers[zlevel];\n        if (layer) {\n            layer.clear();\n        }\n    };\n    CanvasPainter.prototype.dispose = function () {\n        this.root.innerHTML = '';\n        this.root =\n            this.storage =\n                this._domRoot =\n                    this._layers = null;\n    };\n    CanvasPainter.prototype.getRenderedCanvas = function (opts) {\n        opts = opts || {};\n        if (this._singleCanvas && !this._compositeManually) {\n            return this._layers[CANVAS_ZLEVEL].dom;\n        }\n        var imageLayer = new Layer('image', this, opts.pixelRatio || this.dpr);\n        var ctx = imageLayer.ctx;\n        imageLayer.initContext();\n        imageLayer.clear(false, opts.backgroundColor || this._backgroundColor);\n        if (opts.pixelRatio <= this.dpr) {\n            this.refresh();\n            var width_1 = imageLayer.dom.width;\n            var height_1 = imageLayer.dom.height;\n            var ctx_1 = imageLayer.ctx;\n            this.eachLayer(function (layer) {\n                if (layer.__builtin__) {\n                    ctx_1.drawImage(layer.dom, 0, 0, width_1, height_1);\n                }\n                else if (layer.renderToCanvas) {\n                    imageLayer.ctx.save();\n                    layer.renderToCanvas(imageLayer.ctx);\n                    imageLayer.ctx.restore();\n                }\n            });\n        }\n        else {\n            var scope = {\n                inHover: false,\n                viewWidth: this._width,\n                viewHeight: this._height\n            };\n            var displayList = this.storage.getDisplayList(true);\n            for (var i = 0, len = displayList.length; i < len; i++) {\n                var el = displayList[i];\n                brush(ctx, el, scope, i === len - 1);\n            }\n        }\n        return imageLayer.dom;\n    };\n    CanvasPainter.prototype.getWidth = function () {\n        return this._width;\n    };\n    CanvasPainter.prototype.getHeight = function () {\n        return this._height;\n    };\n    CanvasPainter.prototype._getSize = function (whIdx) {\n        var opts = this._opts;\n        var wh = ['width', 'height'][whIdx];\n        var cwh = ['clientWidth', 'clientHeight'][whIdx];\n        var plt = ['paddingLeft', 'paddingTop'][whIdx];\n        var prb = ['paddingRight', 'paddingBottom'][whIdx];\n        if (opts[wh] != null && opts[wh] !== 'auto') {\n            return parseFloat(opts[wh]);\n        }\n        var root = this.root;\n        var stl = document.defaultView.getComputedStyle(root);\n        return ((root[cwh] || parseInt10(stl[wh]) || parseInt10(root.style[wh]))\n            - (parseInt10(stl[plt]) || 0)\n            - (parseInt10(stl[prb]) || 0)) | 0;\n    };\n    CanvasPainter.prototype.pathToImage = function (path, dpr) {\n        dpr = dpr || this.dpr;\n        var canvas = document.createElement('canvas');\n        var ctx = canvas.getContext('2d');\n        var rect = path.getBoundingRect();\n        var style = path.style;\n        var shadowBlurSize = style.shadowBlur * dpr;\n        var shadowOffsetX = style.shadowOffsetX * dpr;\n        var shadowOffsetY = style.shadowOffsetY * dpr;\n        var lineWidth = path.hasStroke() ? style.lineWidth : 0;\n        var leftMargin = Math.max(lineWidth / 2, -shadowOffsetX + shadowBlurSize);\n        var rightMargin = Math.max(lineWidth / 2, shadowOffsetX + shadowBlurSize);\n        var topMargin = Math.max(lineWidth / 2, -shadowOffsetY + shadowBlurSize);\n        var bottomMargin = Math.max(lineWidth / 2, shadowOffsetY + shadowBlurSize);\n        var width = rect.width + leftMargin + rightMargin;\n        var height = rect.height + topMargin + bottomMargin;\n        canvas.width = width * dpr;\n        canvas.height = height * dpr;\n        ctx.scale(dpr, dpr);\n        ctx.clearRect(0, 0, width, height);\n        ctx.dpr = dpr;\n        var pathTransform = {\n            x: path.x,\n            y: path.y,\n            scaleX: path.scaleX,\n            scaleY: path.scaleY,\n            rotation: path.rotation,\n            originX: path.originX,\n            originY: path.originY\n        };\n        path.x = leftMargin - rect.x;\n        path.y = topMargin - rect.y;\n        path.rotation = 0;\n        path.scaleX = 1;\n        path.scaleY = 1;\n        path.updateTransform();\n        if (path) {\n            brush(ctx, path, {\n                inHover: false,\n                viewWidth: this._width,\n                viewHeight: this._height\n            }, true);\n        }\n        var imgShape = new ZRImage({\n            style: {\n                x: 0,\n                y: 0,\n                image: canvas\n            }\n        });\n        util.extend(path, pathTransform);\n        return imgShape;\n    };\n    return CanvasPainter;\n}());\nexport default CanvasPainter;\n;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport CanvasPainter from 'zrender/lib/canvas/Painter';\nexport function install(registers) {\n  registers.registerPainter('canvas', CanvasPainter);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListFromArray from '../helper/createListFromArray';\nimport SeriesModel from '../../model/Series';\n\nvar LineSeriesModel = function (_super) {\n  __extends(LineSeriesModel, _super);\n\n  function LineSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = LineSeriesModel.type;\n    _this.hasSymbolVisual = true;\n    _this.legendSymbol = 'line';\n    return _this;\n  }\n\n  LineSeriesModel.prototype.getInitialData = function (option) {\n    if (process.env.NODE_ENV !== 'production') {\n      var coordSys = option.coordinateSystem;\n\n      if (coordSys !== 'polar' && coordSys !== 'cartesian2d') {\n        throw new Error('Line not support coordinateSystem besides cartesian and polar');\n      }\n    }\n\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: true\n    });\n  };\n\n  LineSeriesModel.type = 'series.line';\n  LineSeriesModel.dependencies = ['grid', 'polar'];\n  LineSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 3,\n    coordinateSystem: 'cartesian2d',\n    legendHoverLink: true,\n    clip: true,\n    label: {\n      position: 'top'\n    },\n    endLabel: {\n      show: false,\n      valueAnimation: true,\n      distance: 8\n    },\n    lineStyle: {\n      width: 2,\n      type: 'solid'\n    },\n    emphasis: {\n      scale: true,\n      lineStyle: {\n        width: 'bolder'\n      }\n    },\n    step: false,\n    smooth: false,\n    smoothMonotone: null,\n    symbol: 'emptyCircle',\n    symbolSize: 4,\n    symbolRotate: null,\n    showSymbol: true,\n    showAllSymbol: 'auto',\n    connectNulls: false,\n    sampling: 'none',\n    animationEasing: 'linear',\n    progressive: 0,\n    hoverLayerThreshold: Infinity\n  };\n  return LineSeriesModel;\n}(SeriesModel);\n\nexport default LineSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { retrieveRawValue } from '../../data/helper/dataProvider';\nimport { isArray } from 'zrender/lib/core/util';\nexport function getDefaultLabel(data, dataIndex) {\n  var labelDims = data.mapDimensionsAll('defaultedLabel');\n  var len = labelDims.length;\n\n  if (len === 1) {\n    var rawVal = retrieveRawValue(data, dataIndex, labelDims[0]);\n    return rawVal != null ? rawVal + '' : null;\n  } else if (len) {\n    var vals = [];\n\n    for (var i = 0; i < labelDims.length; i++) {\n      vals.push(retrieveRawValue(data, dataIndex, labelDims[i]));\n    }\n\n    return vals.join(' ');\n  }\n}\nexport function getDefaultInterpolatedLabel(data, interpolatedValue) {\n  var labelDims = data.mapDimensionsAll('defaultedLabel');\n\n  if (!isArray(interpolatedValue)) {\n    return interpolatedValue + '';\n  }\n\n  var vals = [];\n\n  for (var i = 0; i < labelDims.length; i++) {\n    var dimInfo = data.getDimensionInfo(labelDims[i]);\n\n    if (dimInfo) {\n      vals.push(interpolatedValue[dimInfo.index]);\n    }\n  }\n\n  return vals.join(' ');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { createSymbol } from '../../util/symbol';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { enterEmphasis, leaveEmphasis, enableHoverEmphasis } from '../../util/states';\nimport { parsePercent } from '../../util/number';\nimport { getDefaultLabel } from './labelHelper';\nimport { extend } from 'zrender/lib/core/util';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport ZRImage from 'zrender/lib/graphic/Image';\n\nvar Symbol = function (_super) {\n  __extends(Symbol, _super);\n\n  function Symbol(data, idx, seriesScope, opts) {\n    var _this = _super.call(this) || this;\n\n    _this.updateData(data, idx, seriesScope, opts);\n\n    return _this;\n  }\n\n  Symbol.prototype._createSymbol = function (symbolType, data, idx, symbolSize, keepAspect) {\n    this.removeAll();\n    var symbolPath = createSymbol(symbolType, -1, -1, 2, 2, null, keepAspect);\n    symbolPath.attr({\n      z2: 100,\n      culling: true,\n      scaleX: symbolSize[0] / 2,\n      scaleY: symbolSize[1] / 2\n    });\n    symbolPath.drift = driftSymbol;\n    this._symbolType = symbolType;\n    this.add(symbolPath);\n  };\n\n  Symbol.prototype.stopSymbolAnimation = function (toLastFrame) {\n    this.childAt(0).stopAnimation(null, toLastFrame);\n  };\n\n  Symbol.prototype.getSymbolPath = function () {\n    return this.childAt(0);\n  };\n\n  Symbol.prototype.highlight = function () {\n    enterEmphasis(this.childAt(0));\n  };\n\n  Symbol.prototype.downplay = function () {\n    leaveEmphasis(this.childAt(0));\n  };\n\n  Symbol.prototype.setZ = function (zlevel, z) {\n    var symbolPath = this.childAt(0);\n    symbolPath.zlevel = zlevel;\n    symbolPath.z = z;\n  };\n\n  Symbol.prototype.setDraggable = function (draggable) {\n    var symbolPath = this.childAt(0);\n    symbolPath.draggable = draggable;\n    symbolPath.cursor = draggable ? 'move' : symbolPath.cursor;\n  };\n\n  Symbol.prototype.updateData = function (data, idx, seriesScope, opts) {\n    this.silent = false;\n    var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\n    var seriesModel = data.hostModel;\n    var symbolSize = Symbol.getSymbolSize(data, idx);\n    var isInit = symbolType !== this._symbolType;\n    var disableAnimation = opts && opts.disableAnimation;\n\n    if (isInit) {\n      var keepAspect = data.getItemVisual(idx, 'symbolKeepAspect');\n\n      this._createSymbol(symbolType, data, idx, symbolSize, keepAspect);\n    } else {\n      var symbolPath = this.childAt(0);\n      symbolPath.silent = false;\n      var target = {\n        scaleX: symbolSize[0] / 2,\n        scaleY: symbolSize[1] / 2\n      };\n      disableAnimation ? symbolPath.attr(target) : graphic.updateProps(symbolPath, target, seriesModel, idx);\n    }\n\n    this._updateCommon(data, idx, symbolSize, seriesScope, opts);\n\n    if (isInit) {\n      var symbolPath = this.childAt(0);\n\n      if (!disableAnimation) {\n        var target = {\n          scaleX: this._sizeX,\n          scaleY: this._sizeY,\n          style: {\n            opacity: symbolPath.style.opacity\n          }\n        };\n        symbolPath.scaleX = symbolPath.scaleY = 0;\n        symbolPath.style.opacity = 0;\n        graphic.initProps(symbolPath, target, seriesModel, idx);\n      }\n    }\n\n    if (disableAnimation) {\n      this.childAt(0).stopAnimation('remove');\n    }\n\n    this._seriesModel = seriesModel;\n  };\n\n  Symbol.prototype._updateCommon = function (data, idx, symbolSize, seriesScope, opts) {\n    var symbolPath = this.childAt(0);\n    var seriesModel = data.hostModel;\n    var emphasisItemStyle;\n    var blurItemStyle;\n    var selectItemStyle;\n    var focus;\n    var blurScope;\n    var symbolOffset;\n    var labelStatesModels;\n    var hoverScale;\n    var cursorStyle;\n\n    if (seriesScope) {\n      emphasisItemStyle = seriesScope.emphasisItemStyle;\n      blurItemStyle = seriesScope.blurItemStyle;\n      selectItemStyle = seriesScope.selectItemStyle;\n      focus = seriesScope.focus;\n      blurScope = seriesScope.blurScope;\n      symbolOffset = seriesScope.symbolOffset;\n      labelStatesModels = seriesScope.labelStatesModels;\n      hoverScale = seriesScope.hoverScale;\n      cursorStyle = seriesScope.cursorStyle;\n    }\n\n    if (!seriesScope || data.hasItemOption) {\n      var itemModel = seriesScope && seriesScope.itemModel ? seriesScope.itemModel : data.getItemModel(idx);\n      var emphasisModel = itemModel.getModel('emphasis');\n      emphasisItemStyle = emphasisModel.getModel('itemStyle').getItemStyle();\n      selectItemStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\n      blurItemStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\n      focus = emphasisModel.get('focus');\n      blurScope = emphasisModel.get('blurScope');\n      symbolOffset = itemModel.getShallow('symbolOffset');\n      labelStatesModels = getLabelStatesModels(itemModel);\n      hoverScale = emphasisModel.getShallow('scale');\n      cursorStyle = itemModel.getShallow('cursor');\n    }\n\n    var symbolRotate = data.getItemVisual(idx, 'symbolRotate');\n    symbolPath.attr('rotation', (symbolRotate || 0) * Math.PI / 180 || 0);\n\n    if (symbolOffset) {\n      symbolPath.x = parsePercent(symbolOffset[0], symbolSize[0]);\n      symbolPath.y = parsePercent(symbolOffset[1], symbolSize[1]);\n    }\n\n    cursorStyle && symbolPath.attr('cursor', cursorStyle);\n    var symbolStyle = data.getItemVisual(idx, 'style');\n    var visualColor = symbolStyle.fill;\n\n    if (symbolPath instanceof ZRImage) {\n      var pathStyle = symbolPath.style;\n      symbolPath.useStyle(extend({\n        image: pathStyle.image,\n        x: pathStyle.x,\n        y: pathStyle.y,\n        width: pathStyle.width,\n        height: pathStyle.height\n      }, symbolStyle));\n    } else {\n      if (symbolPath.__isEmptyBrush) {\n        symbolPath.useStyle(extend({}, symbolStyle));\n      } else {\n        symbolPath.useStyle(symbolStyle);\n      }\n\n      symbolPath.style.decal = null;\n      symbolPath.setColor(visualColor, opts && opts.symbolInnerColor);\n      symbolPath.style.strokeNoScale = true;\n    }\n\n    var liftZ = data.getItemVisual(idx, 'liftZ');\n    var z2Origin = this._z2;\n\n    if (liftZ != null) {\n      if (z2Origin == null) {\n        this._z2 = symbolPath.z2;\n        symbolPath.z2 += liftZ;\n      }\n    } else if (z2Origin != null) {\n      symbolPath.z2 = z2Origin;\n      this._z2 = null;\n    }\n\n    var useNameLabel = opts && opts.useNameLabel;\n    setLabelStyle(symbolPath, labelStatesModels, {\n      labelFetcher: seriesModel,\n      labelDataIndex: idx,\n      defaultText: getLabelDefaultText,\n      inheritColor: visualColor,\n      defaultOpacity: symbolStyle.opacity\n    });\n\n    function getLabelDefaultText(idx) {\n      return useNameLabel ? data.getName(idx) : getDefaultLabel(data, idx);\n    }\n\n    this._sizeX = symbolSize[0] / 2;\n    this._sizeY = symbolSize[1] / 2;\n    var emphasisState = symbolPath.ensureState('emphasis');\n    emphasisState.style = emphasisItemStyle;\n    symbolPath.ensureState('select').style = selectItemStyle;\n    symbolPath.ensureState('blur').style = blurItemStyle;\n\n    if (hoverScale) {\n      var scaleRatio = Math.max(1.1, 3 / this._sizeY);\n      emphasisState.scaleX = this._sizeX * scaleRatio;\n      emphasisState.scaleY = this._sizeY * scaleRatio;\n    }\n\n    this.setSymbolScale(1);\n    enableHoverEmphasis(this, focus, blurScope);\n  };\n\n  Symbol.prototype.setSymbolScale = function (scale) {\n    this.scaleX = this.scaleY = scale;\n  };\n\n  Symbol.prototype.fadeOut = function (cb, opt) {\n    var symbolPath = this.childAt(0);\n    var seriesModel = this._seriesModel;\n    var dataIndex = getECData(this).dataIndex;\n    var animationOpt = opt && opt.animation;\n    this.silent = symbolPath.silent = true;\n\n    if (opt && opt.fadeLabel) {\n      var textContent = symbolPath.getTextContent();\n\n      if (textContent) {\n        graphic.removeElement(textContent, {\n          style: {\n            opacity: 0\n          }\n        }, seriesModel, {\n          dataIndex: dataIndex,\n          removeOpt: animationOpt,\n          cb: function () {\n            symbolPath.removeTextContent();\n          }\n        });\n      }\n    } else {\n      symbolPath.removeTextContent();\n    }\n\n    graphic.removeElement(symbolPath, {\n      style: {\n        opacity: 0\n      },\n      scaleX: 0,\n      scaleY: 0\n    }, seriesModel, {\n      dataIndex: dataIndex,\n      cb: cb,\n      removeOpt: animationOpt\n    });\n  };\n\n  Symbol.getSymbolSize = function (data, idx) {\n    var symbolSize = data.getItemVisual(idx, 'symbolSize');\n    return symbolSize instanceof Array ? symbolSize.slice() : [+symbolSize, +symbolSize];\n  };\n\n  return Symbol;\n}(graphic.Group);\n\nfunction driftSymbol(dx, dy) {\n  this.parent.drift(dx, dy);\n}\n\nexport default Symbol;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as graphic from '../../util/graphic';\nimport SymbolClz from './Symbol';\nimport { isObject } from 'zrender/lib/core/util';\nimport { getLabelStatesModels } from '../../label/labelStyle';\n\nfunction symbolNeedsDraw(data, point, idx, opt) {\n  return point && !isNaN(point[0]) && !isNaN(point[1]) && !(opt.isIgnore && opt.isIgnore(idx)) && !(opt.clipShape && !opt.clipShape.contain(point[0], point[1])) && data.getItemVisual(idx, 'symbol') !== 'none';\n}\n\nfunction normalizeUpdateOpt(opt) {\n  if (opt != null && !isObject(opt)) {\n    opt = {\n      isIgnore: opt\n    };\n  }\n\n  return opt || {};\n}\n\nfunction makeSeriesScope(data) {\n  var seriesModel = data.hostModel;\n  var emphasisModel = seriesModel.getModel('emphasis');\n  return {\n    emphasisItemStyle: emphasisModel.getModel('itemStyle').getItemStyle(),\n    blurItemStyle: seriesModel.getModel(['blur', 'itemStyle']).getItemStyle(),\n    selectItemStyle: seriesModel.getModel(['select', 'itemStyle']).getItemStyle(),\n    focus: emphasisModel.get('focus'),\n    blurScope: emphasisModel.get('blurScope'),\n    symbolRotate: seriesModel.get('symbolRotate'),\n    symbolOffset: seriesModel.get('symbolOffset'),\n    hoverScale: emphasisModel.get('scale'),\n    labelStatesModels: getLabelStatesModels(seriesModel),\n    cursorStyle: seriesModel.get('cursor')\n  };\n}\n\nvar SymbolDraw = function () {\n  function SymbolDraw(SymbolCtor) {\n    this.group = new graphic.Group();\n    this._SymbolCtor = SymbolCtor || SymbolClz;\n  }\n\n  SymbolDraw.prototype.updateData = function (data, opt) {\n    opt = normalizeUpdateOpt(opt);\n    var group = this.group;\n    var seriesModel = data.hostModel;\n    var oldData = this._data;\n    var SymbolCtor = this._SymbolCtor;\n    var disableAnimation = opt.disableAnimation;\n    var seriesScope = makeSeriesScope(data);\n    var symbolUpdateOpt = {\n      disableAnimation: disableAnimation\n    };\n\n    var getSymbolPoint = opt.getSymbolPoint || function (idx) {\n      return data.getItemLayout(idx);\n    };\n\n    if (!oldData) {\n      group.removeAll();\n    }\n\n    data.diff(oldData).add(function (newIdx) {\n      var point = getSymbolPoint(newIdx);\n\n      if (symbolNeedsDraw(data, point, newIdx, opt)) {\n        var symbolEl = new SymbolCtor(data, newIdx, seriesScope, symbolUpdateOpt);\n        symbolEl.setPosition(point);\n        data.setItemGraphicEl(newIdx, symbolEl);\n        group.add(symbolEl);\n      }\n    }).update(function (newIdx, oldIdx) {\n      var symbolEl = oldData.getItemGraphicEl(oldIdx);\n      var point = getSymbolPoint(newIdx);\n\n      if (!symbolNeedsDraw(data, point, newIdx, opt)) {\n        group.remove(symbolEl);\n        return;\n      }\n\n      if (!symbolEl) {\n        symbolEl = new SymbolCtor(data, newIdx);\n        symbolEl.setPosition(point);\n      } else {\n        symbolEl.updateData(data, newIdx, seriesScope, symbolUpdateOpt);\n        var target = {\n          x: point[0],\n          y: point[1]\n        };\n        disableAnimation ? symbolEl.attr(target) : graphic.updateProps(symbolEl, target, seriesModel);\n      }\n\n      group.add(symbolEl);\n      data.setItemGraphicEl(newIdx, symbolEl);\n    }).remove(function (oldIdx) {\n      var el = oldData.getItemGraphicEl(oldIdx);\n      el && el.fadeOut(function () {\n        group.remove(el);\n      });\n    }).execute();\n    this._getSymbolPoint = getSymbolPoint;\n    this._data = data;\n  };\n\n  ;\n\n  SymbolDraw.prototype.isPersistent = function () {\n    return true;\n  };\n\n  ;\n\n  SymbolDraw.prototype.updateLayout = function () {\n    var _this = this;\n\n    var data = this._data;\n\n    if (data) {\n      data.eachItemGraphicEl(function (el, idx) {\n        var point = _this._getSymbolPoint(idx);\n\n        el.setPosition(point);\n        el.markRedraw();\n      });\n    }\n  };\n\n  ;\n\n  SymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\n    this._seriesScope = makeSeriesScope(data);\n    this._data = null;\n    this.group.removeAll();\n  };\n\n  ;\n\n  SymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\n    opt = normalizeUpdateOpt(opt);\n\n    function updateIncrementalAndHover(el) {\n      if (!el.isGroup) {\n        el.incremental = true;\n        el.ensureState('emphasis').hoverLayer = true;\n      }\n    }\n\n    for (var idx = taskParams.start; idx < taskParams.end; idx++) {\n      var point = data.getItemLayout(idx);\n\n      if (symbolNeedsDraw(data, point, idx, opt)) {\n        var el = new this._SymbolCtor(data, idx, this._seriesScope);\n        el.traverse(updateIncrementalAndHover);\n        el.setPosition(point);\n        this.group.add(el);\n        data.setItemGraphicEl(idx, el);\n      }\n    }\n  };\n\n  ;\n\n  SymbolDraw.prototype.remove = function (enableAnimation) {\n    var group = this.group;\n    var data = this._data;\n\n    if (data && enableAnimation) {\n      data.eachItemGraphicEl(function (el) {\n        el.fadeOut(function () {\n          group.remove(el);\n        });\n      });\n    } else {\n      group.removeAll();\n    }\n  };\n\n  ;\n  return SymbolDraw;\n}();\n\nexport default SymbolDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isDimensionStacked } from '../../data/helper/dataStackHelper';\nimport { map } from 'zrender/lib/core/util';\nexport function prepareDataCoordInfo(coordSys, data, valueOrigin) {\n  var baseAxis = coordSys.getBaseAxis();\n  var valueAxis = coordSys.getOtherAxis(baseAxis);\n  var valueStart = getValueStart(valueAxis, valueOrigin);\n  var baseAxisDim = baseAxis.dim;\n  var valueAxisDim = valueAxis.dim;\n  var valueDim = data.mapDimension(valueAxisDim);\n  var baseDim = data.mapDimension(baseAxisDim);\n  var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\n  var dims = map(coordSys.dimensions, function (coordDim) {\n    return data.mapDimension(coordDim);\n  });\n  var stacked = false;\n  var stackResultDim = data.getCalculationInfo('stackResultDimension');\n\n  if (isDimensionStacked(data, dims[0])) {\n    stacked = true;\n    dims[0] = stackResultDim;\n  }\n\n  if (isDimensionStacked(data, dims[1])) {\n    stacked = true;\n    dims[1] = stackResultDim;\n  }\n\n  return {\n    dataDimsForPoint: dims,\n    valueStart: valueStart,\n    valueAxisDim: valueAxisDim,\n    baseAxisDim: baseAxisDim,\n    stacked: !!stacked,\n    valueDim: valueDim,\n    baseDim: baseDim,\n    baseDataOffset: baseDataOffset,\n    stackedOverDimension: data.getCalculationInfo('stackedOverDimension')\n  };\n}\n\nfunction getValueStart(valueAxis, valueOrigin) {\n  var valueStart = 0;\n  var extent = valueAxis.scale.getExtent();\n\n  if (valueOrigin === 'start') {\n    valueStart = extent[0];\n  } else if (valueOrigin === 'end') {\n    valueStart = extent[1];\n  } else {\n    if (extent[0] > 0) {\n      valueStart = extent[0];\n    } else if (extent[1] < 0) {\n      valueStart = extent[1];\n    }\n  }\n\n  return valueStart;\n}\n\nexport function getStackedOnPoint(dataCoordInfo, coordSys, data, idx) {\n  var value = NaN;\n\n  if (dataCoordInfo.stacked) {\n    value = data.get(data.getCalculationInfo('stackedOverDimension'), idx);\n  }\n\n  if (isNaN(value)) {\n    value = dataCoordInfo.valueStart;\n  }\n\n  var baseDataOffset = dataCoordInfo.baseDataOffset;\n  var stackedData = [];\n  stackedData[baseDataOffset] = data.get(dataCoordInfo.baseDim, idx);\n  stackedData[1 - baseDataOffset] = value;\n  return coordSys.dataToPoint(stackedData);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isArray } from 'zrender/lib/core/util';\nvar supportFloat32Array = typeof Float32Array !== 'undefined';\nvar Float32ArrayCtor = !supportFloat32Array ? Array : Float32Array;\nexport function createFloat32Array(arg) {\n  if (isArray(arg)) {\n    return supportFloat32Array ? new Float32Array(arg) : arg;\n  }\n\n  return new Float32ArrayCtor(arg);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { prepareDataCoordInfo, getStackedOnPoint } from './helper';\nimport { createFloat32Array } from '../../util/vendor';\n\nfunction diffData(oldData, newData) {\n  var diffResult = [];\n  newData.diff(oldData).add(function (idx) {\n    diffResult.push({\n      cmd: '+',\n      idx: idx\n    });\n  }).update(function (newIdx, oldIdx) {\n    diffResult.push({\n      cmd: '=',\n      idx: oldIdx,\n      idx1: newIdx\n    });\n  }).remove(function (idx) {\n    diffResult.push({\n      cmd: '-',\n      idx: idx\n    });\n  }).execute();\n  return diffResult;\n}\n\nexport default function lineAnimationDiff(oldData, newData, oldStackedOnPoints, newStackedOnPoints, oldCoordSys, newCoordSys, oldValueOrigin, newValueOrigin) {\n  var diff = diffData(oldData, newData);\n  var currPoints = [];\n  var nextPoints = [];\n  var currStackedPoints = [];\n  var nextStackedPoints = [];\n  var status = [];\n  var sortedIndices = [];\n  var rawIndices = [];\n  var newDataOldCoordInfo = prepareDataCoordInfo(oldCoordSys, newData, oldValueOrigin);\n  var oldDataNewCoordInfo = prepareDataCoordInfo(newCoordSys, oldData, newValueOrigin);\n  var oldPoints = oldData.getLayout('points') || [];\n  var newPoints = newData.getLayout('points') || [];\n\n  for (var i = 0; i < diff.length; i++) {\n    var diffItem = diff[i];\n    var pointAdded = true;\n    var oldIdx2 = void 0;\n    var newIdx2 = void 0;\n\n    switch (diffItem.cmd) {\n      case '=':\n        oldIdx2 = diffItem.idx * 2;\n        newIdx2 = diffItem.idx1 * 2;\n        var currentX = oldPoints[oldIdx2];\n        var currentY = oldPoints[oldIdx2 + 1];\n        var nextX = newPoints[newIdx2];\n        var nextY = newPoints[newIdx2 + 1];\n\n        if (isNaN(currentX) || isNaN(currentY)) {\n          currentX = nextX;\n          currentY = nextY;\n        }\n\n        currPoints.push(currentX, currentY);\n        nextPoints.push(nextX, nextY);\n        currStackedPoints.push(oldStackedOnPoints[oldIdx2], oldStackedOnPoints[oldIdx2 + 1]);\n        nextStackedPoints.push(newStackedOnPoints[newIdx2], newStackedOnPoints[newIdx2 + 1]);\n        rawIndices.push(newData.getRawIndex(diffItem.idx1));\n        break;\n\n      case '+':\n        var newIdx = diffItem.idx;\n        var newDataDimsForPoint = newDataOldCoordInfo.dataDimsForPoint;\n        var oldPt = oldCoordSys.dataToPoint([newData.get(newDataDimsForPoint[0], newIdx), newData.get(newDataDimsForPoint[1], newIdx)]);\n        newIdx2 = newIdx * 2;\n        currPoints.push(oldPt[0], oldPt[1]);\n        nextPoints.push(newPoints[newIdx2], newPoints[newIdx2 + 1]);\n        var stackedOnPoint = getStackedOnPoint(newDataOldCoordInfo, oldCoordSys, newData, newIdx);\n        currStackedPoints.push(stackedOnPoint[0], stackedOnPoint[1]);\n        nextStackedPoints.push(newStackedOnPoints[newIdx2], newStackedOnPoints[newIdx2 + 1]);\n        rawIndices.push(newData.getRawIndex(newIdx));\n        break;\n\n      case '-':\n        var oldIdx = diffItem.idx;\n        var rawIndex = oldData.getRawIndex(oldIdx);\n        var oldDataDimsForPoint = oldDataNewCoordInfo.dataDimsForPoint;\n        oldIdx2 = oldIdx * 2;\n\n        if (rawIndex !== oldIdx) {\n          var newPt = newCoordSys.dataToPoint([oldData.get(oldDataDimsForPoint[0], oldIdx), oldData.get(oldDataDimsForPoint[1], oldIdx)]);\n          var newStackedOnPt = getStackedOnPoint(oldDataNewCoordInfo, newCoordSys, oldData, oldIdx);\n          currPoints.push(oldPoints[oldIdx2], oldPoints[oldIdx2 + 1]);\n          nextPoints.push(newPt[0], newPt[1]);\n          currStackedPoints.push(oldStackedOnPoints[oldIdx2], oldStackedOnPoints[oldIdx2 + 1]);\n          nextStackedPoints.push(newStackedOnPt[0], newStackedOnPt[1]);\n          rawIndices.push(rawIndex);\n        } else {\n          pointAdded = false;\n        }\n\n    }\n\n    if (pointAdded) {\n      status.push(diffItem);\n      sortedIndices.push(sortedIndices.length);\n    }\n  }\n\n  sortedIndices.sort(function (a, b) {\n    return rawIndices[a] - rawIndices[b];\n  });\n  var len = currPoints.length;\n  var sortedCurrPoints = createFloat32Array(len);\n  var sortedNextPoints = createFloat32Array(len);\n  var sortedCurrStackedPoints = createFloat32Array(len);\n  var sortedNextStackedPoints = createFloat32Array(len);\n  var sortedStatus = [];\n\n  for (var i = 0; i < sortedIndices.length; i++) {\n    var idx = sortedIndices[i];\n    var i2 = i * 2;\n    var idx2 = idx * 2;\n    sortedCurrPoints[i2] = currPoints[idx2];\n    sortedCurrPoints[i2 + 1] = currPoints[idx2 + 1];\n    sortedNextPoints[i2] = nextPoints[idx2];\n    sortedNextPoints[i2 + 1] = nextPoints[idx2 + 1];\n    sortedCurrStackedPoints[i2] = currStackedPoints[idx2];\n    sortedCurrStackedPoints[i2 + 1] = currStackedPoints[idx2 + 1];\n    sortedNextStackedPoints[i2] = nextStackedPoints[idx2];\n    sortedNextStackedPoints[i2 + 1] = nextStackedPoints[idx2 + 1];\n    sortedStatus[i] = status[idx];\n  }\n\n  return {\n    current: sortedCurrPoints,\n    next: sortedNextPoints,\n    stackedOnCurrent: sortedCurrStackedPoints,\n    stackedOnNext: sortedNextStackedPoints,\n    status: sortedStatus\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Path from 'zrender/lib/graphic/Path';\nimport PathProxy from 'zrender/lib/core/PathProxy';\nimport { cubicRootAt, cubicAt } from 'zrender/lib/core/curve';\nvar mathMin = Math.min;\nvar mathMax = Math.max;\n\nfunction isPointNull(x, y) {\n  return isNaN(x) || isNaN(y);\n}\n\nfunction drawSegment(ctx, points, start, segLen, allLen, dir, smooth, smoothMonotone, connectNulls) {\n  var prevX;\n  var prevY;\n  var cpx0;\n  var cpy0;\n  var cpx1;\n  var cpy1;\n  var idx = start;\n  var k = 0;\n\n  for (; k < segLen; k++) {\n    var x = points[idx * 2];\n    var y = points[idx * 2 + 1];\n\n    if (idx >= allLen || idx < 0) {\n      break;\n    }\n\n    if (isPointNull(x, y)) {\n      if (connectNulls) {\n        idx += dir;\n        continue;\n      }\n\n      break;\n    }\n\n    if (idx === start) {\n      ctx[dir > 0 ? 'moveTo' : 'lineTo'](x, y);\n      cpx0 = x;\n      cpy0 = y;\n    } else {\n      var dx = x - prevX;\n      var dy = y - prevY;\n\n      if (dx * dx + dy * dy < 0.5) {\n        idx += dir;\n        continue;\n      }\n\n      if (smooth > 0) {\n        var nextIdx = idx + dir;\n        var nextX = points[nextIdx * 2];\n        var nextY = points[nextIdx * 2 + 1];\n        var tmpK = k + 1;\n\n        if (connectNulls) {\n          while (isPointNull(nextX, nextY) && tmpK < segLen) {\n            tmpK++;\n            nextIdx += dir;\n            nextX = points[nextIdx * 2];\n            nextY = points[nextIdx * 2 + 1];\n          }\n        }\n\n        var ratioNextSeg = 0.5;\n        var vx = 0;\n        var vy = 0;\n        var nextCpx0 = void 0;\n        var nextCpy0 = void 0;\n\n        if (tmpK >= segLen || isPointNull(nextX, nextY)) {\n          cpx1 = x;\n          cpy1 = y;\n        } else {\n          vx = nextX - prevX;\n          vy = nextY - prevY;\n          var dx0 = x - prevX;\n          var dx1 = nextX - x;\n          var dy0 = y - prevY;\n          var dy1 = nextY - y;\n          var lenPrevSeg = void 0;\n          var lenNextSeg = void 0;\n\n          if (smoothMonotone === 'x') {\n            lenPrevSeg = Math.abs(dx0);\n            lenNextSeg = Math.abs(dx1);\n            cpx1 = x - lenPrevSeg * smooth;\n            cpy1 = y;\n            nextCpx0 = x + lenPrevSeg * smooth;\n            nextCpy0 = y;\n          } else if (smoothMonotone === 'y') {\n            lenPrevSeg = Math.abs(dy0);\n            lenNextSeg = Math.abs(dy1);\n            cpx1 = x;\n            cpy1 = y - lenPrevSeg * smooth;\n            nextCpx0 = x;\n            nextCpy0 = y + lenPrevSeg * smooth;\n          } else {\n            lenPrevSeg = Math.sqrt(dx0 * dx0 + dy0 * dy0);\n            lenNextSeg = Math.sqrt(dx1 * dx1 + dy1 * dy1);\n            ratioNextSeg = lenNextSeg / (lenNextSeg + lenPrevSeg);\n            cpx1 = x - vx * smooth * (1 - ratioNextSeg);\n            cpy1 = y - vy * smooth * (1 - ratioNextSeg);\n            nextCpx0 = x + vx * smooth * ratioNextSeg;\n            nextCpy0 = y + vy * smooth * ratioNextSeg;\n            nextCpx0 = mathMin(nextCpx0, mathMax(nextX, x));\n            nextCpy0 = mathMin(nextCpy0, mathMax(nextY, y));\n            nextCpx0 = mathMax(nextCpx0, mathMin(nextX, x));\n            nextCpy0 = mathMax(nextCpy0, mathMin(nextY, y));\n            vx = nextCpx0 - x;\n            vy = nextCpy0 - y;\n            cpx1 = x - vx * lenPrevSeg / lenNextSeg;\n            cpy1 = y - vy * lenPrevSeg / lenNextSeg;\n            cpx1 = mathMin(cpx1, mathMax(prevX, x));\n            cpy1 = mathMin(cpy1, mathMax(prevY, y));\n            cpx1 = mathMax(cpx1, mathMin(prevX, x));\n            cpy1 = mathMax(cpy1, mathMin(prevY, y));\n            vx = x - cpx1;\n            vy = y - cpy1;\n            nextCpx0 = x + vx * lenNextSeg / lenPrevSeg;\n            nextCpy0 = y + vy * lenNextSeg / lenPrevSeg;\n          }\n        }\n\n        ctx.bezierCurveTo(cpx0, cpy0, cpx1, cpy1, x, y);\n        cpx0 = nextCpx0;\n        cpy0 = nextCpy0;\n      } else {\n        ctx.lineTo(x, y);\n      }\n    }\n\n    prevX = x;\n    prevY = y;\n    idx += dir;\n  }\n\n  return k;\n}\n\nvar ECPolylineShape = function () {\n  function ECPolylineShape() {\n    this.smooth = 0;\n    this.smoothConstraint = true;\n  }\n\n  return ECPolylineShape;\n}();\n\nvar ECPolyline = function (_super) {\n  __extends(ECPolyline, _super);\n\n  function ECPolyline(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'ec-polyline';\n    return _this;\n  }\n\n  ECPolyline.prototype.getDefaultStyle = function () {\n    return {\n      stroke: '#000',\n      fill: null\n    };\n  };\n\n  ECPolyline.prototype.getDefaultShape = function () {\n    return new ECPolylineShape();\n  };\n\n  ECPolyline.prototype.buildPath = function (ctx, shape) {\n    var points = shape.points;\n    var i = 0;\n    var len = points.length / 2;\n\n    if (shape.connectNulls) {\n      for (; len > 0; len--) {\n        if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n          break;\n        }\n      }\n\n      for (; i < len; i++) {\n        if (!isPointNull(points[i * 2], points[i * 2 + 1])) {\n          break;\n        }\n      }\n    }\n\n    while (i < len) {\n      i += drawSegment(ctx, points, i, len, len, 1, shape.smooth, shape.smoothMonotone, shape.connectNulls) + 1;\n    }\n  };\n\n  ECPolyline.prototype.getPointOn = function (xOrY, dim) {\n    if (!this.path) {\n      this.createPathProxy();\n      this.buildPath(this.path, this.shape);\n    }\n\n    var path = this.path;\n    var data = path.data;\n    var CMD = PathProxy.CMD;\n    var x0;\n    var y0;\n    var isDimX = dim === 'x';\n    var roots = [];\n\n    for (var i = 0; i < data.length;) {\n      var cmd = data[i++];\n      var x = void 0;\n      var y = void 0;\n      var x2 = void 0;\n      var y2 = void 0;\n      var x3 = void 0;\n      var y3 = void 0;\n      var t = void 0;\n\n      switch (cmd) {\n        case CMD.M:\n          x0 = data[i++];\n          y0 = data[i++];\n          break;\n\n        case CMD.L:\n          x = data[i++];\n          y = data[i++];\n          t = isDimX ? (xOrY - x0) / (x - x0) : (xOrY - y0) / (y - y0);\n\n          if (t <= 1 && t >= 0) {\n            var val = isDimX ? (y - y0) * t + y0 : (x - x0) * t + x0;\n            return isDimX ? [xOrY, val] : [val, xOrY];\n          }\n\n          x0 = x;\n          y0 = y;\n          break;\n\n        case CMD.C:\n          x = data[i++];\n          y = data[i++];\n          x2 = data[i++];\n          y2 = data[i++];\n          x3 = data[i++];\n          y3 = data[i++];\n          var nRoot = isDimX ? cubicRootAt(x0, x, x2, x3, xOrY, roots) : cubicRootAt(y0, y, y2, y3, xOrY, roots);\n\n          if (nRoot > 0) {\n            for (var i_1 = 0; i_1 < nRoot; i_1++) {\n              var t_1 = roots[i_1];\n\n              if (t_1 <= 1 && t_1 >= 0) {\n                var val = isDimX ? cubicAt(y0, y, y2, y3, t_1) : cubicAt(x0, x, x2, x3, t_1);\n                return isDimX ? [xOrY, val] : [val, xOrY];\n              }\n            }\n          }\n\n          x0 = x3;\n          y0 = y3;\n          break;\n      }\n    }\n  };\n\n  return ECPolyline;\n}(Path);\n\nexport { ECPolyline };\n\nvar ECPolygonShape = function (_super) {\n  __extends(ECPolygonShape, _super);\n\n  function ECPolygonShape() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  return ECPolygonShape;\n}(ECPolylineShape);\n\nvar ECPolygon = function (_super) {\n  __extends(ECPolygon, _super);\n\n  function ECPolygon(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'ec-polygon';\n    return _this;\n  }\n\n  ECPolygon.prototype.getDefaultShape = function () {\n    return new ECPolygonShape();\n  };\n\n  ECPolygon.prototype.buildPath = function (ctx, shape) {\n    var points = shape.points;\n    var stackedOnPoints = shape.stackedOnPoints;\n    var i = 0;\n    var len = points.length / 2;\n    var smoothMonotone = shape.smoothMonotone;\n\n    if (shape.connectNulls) {\n      for (; len > 0; len--) {\n        if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n          break;\n        }\n      }\n\n      for (; i < len; i++) {\n        if (!isPointNull(points[i * 2], points[i * 2 + 1])) {\n          break;\n        }\n      }\n    }\n\n    while (i < len) {\n      var k = drawSegment(ctx, points, i, len, len, 1, shape.smooth, smoothMonotone, shape.connectNulls);\n      drawSegment(ctx, stackedOnPoints, i + k - 1, k, len, -1, shape.stackedOnSmooth, smoothMonotone, shape.connectNulls);\n      i += k + 1;\n      ctx.closePath();\n    }\n  };\n\n  return ECPolygon;\n}(Path);\n\nexport { ECPolygon };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as graphic from '../../util/graphic';\nimport { round } from '../../util/number';\n\nfunction createGridClipPath(cartesian, hasAnimation, seriesModel, done, during) {\n  var rect = cartesian.getArea();\n  var x = rect.x;\n  var y = rect.y;\n  var width = rect.width;\n  var height = rect.height;\n  var lineWidth = seriesModel.get(['lineStyle', 'width']) || 2;\n  x -= lineWidth / 2;\n  y -= lineWidth / 2;\n  width += lineWidth;\n  height += lineWidth;\n  x = Math.floor(x);\n  width = Math.round(width);\n  var clipPath = new graphic.Rect({\n    shape: {\n      x: x,\n      y: y,\n      width: width,\n      height: height\n    }\n  });\n\n  if (hasAnimation) {\n    var baseAxis = cartesian.getBaseAxis();\n    var isHorizontal = baseAxis.isHorizontal();\n    var isAxisInversed = baseAxis.inverse;\n\n    if (isHorizontal) {\n      if (isAxisInversed) {\n        clipPath.shape.x += width;\n      }\n\n      clipPath.shape.width = 0;\n    } else {\n      if (!isAxisInversed) {\n        clipPath.shape.y += height;\n      }\n\n      clipPath.shape.height = 0;\n    }\n\n    var duringCb = typeof during === 'function' ? function (percent) {\n      during(percent, clipPath);\n    } : null;\n    graphic.initProps(clipPath, {\n      shape: {\n        width: width,\n        height: height,\n        x: x,\n        y: y\n      }\n    }, seriesModel, null, done, duringCb);\n  }\n\n  return clipPath;\n}\n\nfunction createPolarClipPath(polar, hasAnimation, seriesModel) {\n  var sectorArea = polar.getArea();\n  var r0 = round(sectorArea.r0, 1);\n  var r = round(sectorArea.r, 1);\n  var clipPath = new graphic.Sector({\n    shape: {\n      cx: round(polar.cx, 1),\n      cy: round(polar.cy, 1),\n      r0: r0,\n      r: r,\n      startAngle: sectorArea.startAngle,\n      endAngle: sectorArea.endAngle,\n      clockwise: sectorArea.clockwise\n    }\n  });\n\n  if (hasAnimation) {\n    var isRadial = polar.getBaseAxis().dim === 'angle';\n\n    if (isRadial) {\n      clipPath.shape.endAngle = sectorArea.startAngle;\n    } else {\n      clipPath.shape.r = r0;\n    }\n\n    graphic.initProps(clipPath, {\n      shape: {\n        endAngle: sectorArea.endAngle,\n        r: r\n      }\n    }, seriesModel);\n  }\n\n  return clipPath;\n}\n\nfunction createClipPath(coordSys, hasAnimation, seriesModel, done, during) {\n  if (!coordSys) {\n    return null;\n  } else if (coordSys.type === 'polar') {\n    return createPolarClipPath(coordSys, hasAnimation, seriesModel);\n  } else if (coordSys.type === 'cartesian2d') {\n    return createGridClipPath(coordSys, hasAnimation, seriesModel, done, during);\n  }\n\n  return null;\n}\n\nexport { createGridClipPath, createPolarClipPath, createClipPath };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function isCoordinateSystemType(coordSys, type) {\n  return coordSys.type === type;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport SymbolDraw from '../helper/SymbolDraw';\nimport SymbolClz from '../helper/Symbol';\nimport lineAnimationDiff from './lineAnimationDiff';\nimport * as graphic from '../../util/graphic';\nimport * as modelUtil from '../../util/model';\nimport { ECPolyline, ECPolygon } from './poly';\nimport ChartView from '../../view/Chart';\nimport { prepareDataCoordInfo, getStackedOnPoint } from './helper';\nimport { createGridClipPath, createPolarClipPath } from '../helper/createClipPathFromCoordSys';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport { setStatesStylesFromModel, setStatesFlag, enableHoverEmphasis } from '../../util/states';\nimport { setLabelStyle, getLabelStatesModels, labelInner } from '../../label/labelStyle';\nimport { getDefaultLabel, getDefaultInterpolatedLabel } from '../helper/labelHelper';\nimport { getECData } from '../../util/innerStore';\nimport { createFloat32Array } from '../../util/vendor';\n\nfunction isPointsSame(points1, points2) {\n  if (points1.length !== points2.length) {\n    return;\n  }\n\n  for (var i = 0; i < points1.length; i++) {\n    if (points1[i] !== points2[i]) {\n      return;\n    }\n  }\n\n  return true;\n}\n\nfunction bboxFromPoints(points) {\n  var minX = Infinity;\n  var minY = Infinity;\n  var maxX = -Infinity;\n  var maxY = -Infinity;\n\n  for (var i = 0; i < points.length;) {\n    var x = points[i++];\n    var y = points[i++];\n\n    if (!isNaN(x)) {\n      minX = Math.min(x, minX);\n      maxX = Math.max(x, maxX);\n    }\n\n    if (!isNaN(y)) {\n      minY = Math.min(y, minY);\n      maxY = Math.max(y, maxY);\n    }\n  }\n\n  return [[minX, minY], [maxX, maxY]];\n}\n\nfunction getBoundingDiff(points1, points2) {\n  var _a = bboxFromPoints(points1),\n      min1 = _a[0],\n      max1 = _a[1];\n\n  var _b = bboxFromPoints(points2),\n      min2 = _b[0],\n      max2 = _b[1];\n\n  return Math.max(Math.abs(min1[0] - min2[0]), Math.abs(min1[1] - min2[1]), Math.abs(max1[0] - max2[0]), Math.abs(max1[1] - max2[1]));\n}\n\nfunction getSmooth(smooth) {\n  return typeof smooth === 'number' ? smooth : smooth ? 0.5 : 0;\n}\n\nfunction getStackedOnPoints(coordSys, data, dataCoordInfo) {\n  if (!dataCoordInfo.valueDim) {\n    return [];\n  }\n\n  var len = data.count();\n  var points = createFloat32Array(len * 2);\n\n  for (var idx = 0; idx < len; idx++) {\n    var pt = getStackedOnPoint(dataCoordInfo, coordSys, data, idx);\n    points[idx * 2] = pt[0];\n    points[idx * 2 + 1] = pt[1];\n  }\n\n  return points;\n}\n\nfunction turnPointsIntoStep(points, coordSys, stepTurnAt) {\n  var baseAxis = coordSys.getBaseAxis();\n  var baseIndex = baseAxis.dim === 'x' || baseAxis.dim === 'radius' ? 0 : 1;\n  var stepPoints = [];\n  var i = 0;\n  var stepPt = [];\n  var pt = [];\n  var nextPt = [];\n\n  for (; i < points.length - 2; i += 2) {\n    nextPt[0] = points[i + 2];\n    nextPt[1] = points[i + 3];\n    pt[0] = points[i];\n    pt[1] = points[i + 1];\n    stepPoints.push(pt[0], pt[1]);\n\n    switch (stepTurnAt) {\n      case 'end':\n        stepPt[baseIndex] = nextPt[baseIndex];\n        stepPt[1 - baseIndex] = pt[1 - baseIndex];\n        stepPoints.push(stepPt[0], stepPt[1]);\n        break;\n\n      case 'middle':\n        var middle = (pt[baseIndex] + nextPt[baseIndex]) / 2;\n        var stepPt2 = [];\n        stepPt[baseIndex] = stepPt2[baseIndex] = middle;\n        stepPt[1 - baseIndex] = pt[1 - baseIndex];\n        stepPt2[1 - baseIndex] = nextPt[1 - baseIndex];\n        stepPoints.push(stepPt[0], stepPt[1]);\n        stepPoints.push(stepPt2[0], stepPt2[1]);\n        break;\n\n      default:\n        stepPt[baseIndex] = pt[baseIndex];\n        stepPt[1 - baseIndex] = nextPt[1 - baseIndex];\n        stepPoints.push(stepPt[0], stepPt[1]);\n    }\n  }\n\n  stepPoints.push(points[i++], points[i++]);\n  return stepPoints;\n}\n\nfunction getVisualGradient(data, coordSys) {\n  var visualMetaList = data.getVisual('visualMeta');\n\n  if (!visualMetaList || !visualMetaList.length || !data.count()) {\n    return;\n  }\n\n  if (coordSys.type !== 'cartesian2d') {\n    if (process.env.NODE_ENV !== 'production') {\n      console.warn('Visual map on line style is only supported on cartesian2d.');\n    }\n\n    return;\n  }\n\n  var coordDim;\n  var visualMeta;\n\n  for (var i = visualMetaList.length - 1; i >= 0; i--) {\n    var dimIndex = visualMetaList[i].dimension;\n    var dimName = data.dimensions[dimIndex];\n    var dimInfo = data.getDimensionInfo(dimName);\n    coordDim = dimInfo && dimInfo.coordDim;\n\n    if (coordDim === 'x' || coordDim === 'y') {\n      visualMeta = visualMetaList[i];\n      break;\n    }\n  }\n\n  if (!visualMeta) {\n    if (process.env.NODE_ENV !== 'production') {\n      console.warn('Visual map on line style only support x or y dimension.');\n    }\n\n    return;\n  }\n\n  var axis = coordSys.getAxis(coordDim);\n  var colorStops = zrUtil.map(visualMeta.stops, function (stop) {\n    return {\n      offset: 0,\n      coord: axis.toGlobalCoord(axis.dataToCoord(stop.value)),\n      color: stop.color\n    };\n  });\n  var stopLen = colorStops.length;\n  var outerColors = visualMeta.outerColors.slice();\n\n  if (stopLen && colorStops[0].coord > colorStops[stopLen - 1].coord) {\n    colorStops.reverse();\n    outerColors.reverse();\n  }\n\n  var tinyExtent = 10;\n  var minCoord = colorStops[0].coord - tinyExtent;\n  var maxCoord = colorStops[stopLen - 1].coord + tinyExtent;\n  var coordSpan = maxCoord - minCoord;\n\n  if (coordSpan < 1e-3) {\n    return 'transparent';\n  }\n\n  zrUtil.each(colorStops, function (stop) {\n    stop.offset = (stop.coord - minCoord) / coordSpan;\n  });\n  colorStops.push({\n    offset: stopLen ? colorStops[stopLen - 1].offset : 0.5,\n    color: outerColors[1] || 'transparent'\n  });\n  colorStops.unshift({\n    offset: stopLen ? colorStops[0].offset : 0.5,\n    color: outerColors[0] || 'transparent'\n  });\n  var gradient = new graphic.LinearGradient(0, 0, 0, 0, colorStops, true);\n  gradient[coordDim] = minCoord;\n  gradient[coordDim + '2'] = maxCoord;\n  return gradient;\n}\n\nfunction getIsIgnoreFunc(seriesModel, data, coordSys) {\n  var showAllSymbol = seriesModel.get('showAllSymbol');\n  var isAuto = showAllSymbol === 'auto';\n\n  if (showAllSymbol && !isAuto) {\n    return;\n  }\n\n  var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\n\n  if (!categoryAxis) {\n    return;\n  }\n\n  if (isAuto && canShowAllSymbolForCategory(categoryAxis, data)) {\n    return;\n  }\n\n  var categoryDataDim = data.mapDimension(categoryAxis.dim);\n  var labelMap = {};\n  zrUtil.each(categoryAxis.getViewLabels(), function (labelItem) {\n    var ordinalNumber = categoryAxis.scale.getRawOrdinalNumber(labelItem.tickValue);\n    labelMap[ordinalNumber] = 1;\n  });\n  return function (dataIndex) {\n    return !labelMap.hasOwnProperty(data.get(categoryDataDim, dataIndex));\n  };\n}\n\nfunction canShowAllSymbolForCategory(categoryAxis, data) {\n  var axisExtent = categoryAxis.getExtent();\n  var availSize = Math.abs(axisExtent[1] - axisExtent[0]) / categoryAxis.scale.count();\n  isNaN(availSize) && (availSize = 0);\n  var dataLen = data.count();\n  var step = Math.max(1, Math.round(dataLen / 5));\n\n  for (var dataIndex = 0; dataIndex < dataLen; dataIndex += step) {\n    if (SymbolClz.getSymbolSize(data, dataIndex)[categoryAxis.isHorizontal() ? 1 : 0] * 1.5 > availSize) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nfunction isPointNull(x, y) {\n  return isNaN(x) || isNaN(y);\n}\n\nfunction getLastIndexNotNull(points) {\n  var len = points.length / 2;\n\n  for (; len > 0; len--) {\n    if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n      break;\n    }\n  }\n\n  return len - 1;\n}\n\nfunction getPointAtIndex(points, idx) {\n  return [points[idx * 2], points[idx * 2 + 1]];\n}\n\nfunction getIndexRange(points, xOrY, dim) {\n  var len = points.length / 2;\n  var dimIdx = dim === 'x' ? 0 : 1;\n  var a;\n  var b;\n  var prevIndex = 0;\n  var nextIndex = -1;\n\n  for (var i = 0; i < len; i++) {\n    b = points[i * 2 + dimIdx];\n\n    if (isNaN(b) || isNaN(points[i * 2 + 1 - dimIdx])) {\n      continue;\n    }\n\n    if (i === 0) {\n      a = b;\n      continue;\n    }\n\n    if (a <= xOrY && b >= xOrY || a >= xOrY && b <= xOrY) {\n      nextIndex = i;\n      break;\n    }\n\n    prevIndex = i;\n    a = b;\n  }\n\n  return {\n    range: [prevIndex, nextIndex],\n    t: (xOrY - a) / (b - a)\n  };\n}\n\nfunction createLineClipPath(lineView, coordSys, hasAnimation, seriesModel) {\n  if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n    var endLabelModel_1 = seriesModel.getModel('endLabel');\n    var showEndLabel = endLabelModel_1.get('show');\n    var valueAnimation_1 = endLabelModel_1.get('valueAnimation');\n    var data_1 = seriesModel.getData();\n    var labelAnimationRecord_1 = {\n      lastFrameIndex: 0\n    };\n    var during = showEndLabel ? function (percent, clipRect) {\n      lineView._endLabelOnDuring(percent, clipRect, data_1, labelAnimationRecord_1, valueAnimation_1, endLabelModel_1, coordSys);\n    } : null;\n    var isHorizontal = coordSys.getBaseAxis().isHorizontal();\n    var clipPath = createGridClipPath(coordSys, hasAnimation, seriesModel, function () {\n      var endLabel = lineView._endLabel;\n\n      if (endLabel && hasAnimation) {\n        if (labelAnimationRecord_1.originalX != null) {\n          endLabel.attr({\n            x: labelAnimationRecord_1.originalX,\n            y: labelAnimationRecord_1.originalY\n          });\n        }\n      }\n    }, during);\n\n    if (!seriesModel.get('clip', true)) {\n      var rectShape = clipPath.shape;\n      var expandSize = Math.max(rectShape.width, rectShape.height);\n\n      if (isHorizontal) {\n        rectShape.y -= expandSize;\n        rectShape.height += expandSize * 2;\n      } else {\n        rectShape.x -= expandSize;\n        rectShape.width += expandSize * 2;\n      }\n    }\n\n    if (during) {\n      during(1, clipPath);\n    }\n\n    return clipPath;\n  } else {\n    if (process.env.NODE_ENV !== 'production') {\n      if (seriesModel.get(['endLabel', 'show'])) {\n        console.warn('endLabel is not supported for lines in polar systems.');\n      }\n    }\n\n    return createPolarClipPath(coordSys, hasAnimation, seriesModel);\n  }\n}\n\nfunction getEndLabelStateSpecified(endLabelModel, coordSys) {\n  var baseAxis = coordSys.getBaseAxis();\n  var isHorizontal = baseAxis.isHorizontal();\n  var isBaseInversed = baseAxis.inverse;\n  var align = isHorizontal ? isBaseInversed ? 'right' : 'left' : 'center';\n  var verticalAlign = isHorizontal ? 'middle' : isBaseInversed ? 'top' : 'bottom';\n  return {\n    normal: {\n      align: endLabelModel.get('align') || align,\n      verticalAlign: endLabelModel.get('verticalAlign') || verticalAlign\n    }\n  };\n}\n\nvar LineView = function (_super) {\n  __extends(LineView, _super);\n\n  function LineView() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  LineView.prototype.init = function () {\n    var lineGroup = new graphic.Group();\n    var symbolDraw = new SymbolDraw();\n    this.group.add(symbolDraw.group);\n    this._symbolDraw = symbolDraw;\n    this._lineGroup = lineGroup;\n  };\n\n  LineView.prototype.render = function (seriesModel, ecModel, api) {\n    var _this = this;\n\n    var coordSys = seriesModel.coordinateSystem;\n    var group = this.group;\n    var data = seriesModel.getData();\n    var lineStyleModel = seriesModel.getModel('lineStyle');\n    var areaStyleModel = seriesModel.getModel('areaStyle');\n    var points = data.getLayout('points') || [];\n    var isCoordSysPolar = coordSys.type === 'polar';\n    var prevCoordSys = this._coordSys;\n    var symbolDraw = this._symbolDraw;\n    var polyline = this._polyline;\n    var polygon = this._polygon;\n    var lineGroup = this._lineGroup;\n    var hasAnimation = seriesModel.get('animation');\n    var isAreaChart = !areaStyleModel.isEmpty();\n    var valueOrigin = areaStyleModel.get('origin');\n    var dataCoordInfo = prepareDataCoordInfo(coordSys, data, valueOrigin);\n    var stackedOnPoints = isAreaChart && getStackedOnPoints(coordSys, data, dataCoordInfo);\n    var showSymbol = seriesModel.get('showSymbol');\n    var isIgnoreFunc = showSymbol && !isCoordSysPolar && getIsIgnoreFunc(seriesModel, data, coordSys);\n    var oldData = this._data;\n    oldData && oldData.eachItemGraphicEl(function (el, idx) {\n      if (el.__temp) {\n        group.remove(el);\n        oldData.setItemGraphicEl(idx, null);\n      }\n    });\n\n    if (!showSymbol) {\n      symbolDraw.remove();\n    }\n\n    group.add(lineGroup);\n    var step = !isCoordSysPolar ? seriesModel.get('step') : false;\n    var clipShapeForSymbol;\n\n    if (coordSys && coordSys.getArea && seriesModel.get('clip', true)) {\n      clipShapeForSymbol = coordSys.getArea();\n\n      if (clipShapeForSymbol.width != null) {\n        clipShapeForSymbol.x -= 0.1;\n        clipShapeForSymbol.y -= 0.1;\n        clipShapeForSymbol.width += 0.2;\n        clipShapeForSymbol.height += 0.2;\n      } else if (clipShapeForSymbol.r0) {\n        clipShapeForSymbol.r0 -= 0.5;\n        clipShapeForSymbol.r += 0.5;\n      }\n    }\n\n    this._clipShapeForSymbol = clipShapeForSymbol;\n\n    if (!(polyline && prevCoordSys.type === coordSys.type && step === this._step)) {\n      showSymbol && symbolDraw.updateData(data, {\n        isIgnore: isIgnoreFunc,\n        clipShape: clipShapeForSymbol,\n        disableAnimation: true,\n        getSymbolPoint: function (idx) {\n          return [points[idx * 2], points[idx * 2 + 1]];\n        }\n      });\n      hasAnimation && this._initSymbolLabelAnimation(data, coordSys, clipShapeForSymbol);\n\n      if (step) {\n        points = turnPointsIntoStep(points, coordSys, step);\n\n        if (stackedOnPoints) {\n          stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\n        }\n      }\n\n      polyline = this._newPolyline(points);\n\n      if (isAreaChart) {\n        polygon = this._newPolygon(points, stackedOnPoints);\n      }\n\n      if (!isCoordSysPolar) {\n        this._initOrUpdateEndLabel(seriesModel, coordSys);\n      }\n\n      lineGroup.setClipPath(createLineClipPath(this, coordSys, true, seriesModel));\n    } else {\n      if (isAreaChart && !polygon) {\n        polygon = this._newPolygon(points, stackedOnPoints);\n      } else if (polygon && !isAreaChart) {\n        lineGroup.remove(polygon);\n        polygon = this._polygon = null;\n      }\n\n      if (!isCoordSysPolar) {\n        this._initOrUpdateEndLabel(seriesModel, coordSys);\n      }\n\n      lineGroup.setClipPath(createLineClipPath(this, coordSys, false, seriesModel));\n      showSymbol && symbolDraw.updateData(data, {\n        isIgnore: isIgnoreFunc,\n        clipShape: clipShapeForSymbol,\n        disableAnimation: true,\n        getSymbolPoint: function (idx) {\n          return [points[idx * 2], points[idx * 2 + 1]];\n        }\n      });\n\n      if (!isPointsSame(this._stackedOnPoints, stackedOnPoints) || !isPointsSame(this._points, points)) {\n        if (hasAnimation) {\n          this._doUpdateAnimation(data, stackedOnPoints, coordSys, api, step, valueOrigin);\n        } else {\n          if (step) {\n            points = turnPointsIntoStep(points, coordSys, step);\n\n            if (stackedOnPoints) {\n              stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\n            }\n          }\n\n          polyline.setShape({\n            points: points\n          });\n          polygon && polygon.setShape({\n            points: points,\n            stackedOnPoints: stackedOnPoints\n          });\n        }\n      }\n    }\n\n    var visualColor = getVisualGradient(data, coordSys) || data.getVisual('style')[data.getVisual('drawType')];\n    var focus = seriesModel.get(['emphasis', 'focus']);\n    var blurScope = seriesModel.get(['emphasis', 'blurScope']);\n    polyline.useStyle(zrUtil.defaults(lineStyleModel.getLineStyle(), {\n      fill: 'none',\n      stroke: visualColor,\n      lineJoin: 'bevel'\n    }));\n    setStatesStylesFromModel(polyline, seriesModel, 'lineStyle');\n\n    if (polyline.style.lineWidth > 0 && seriesModel.get(['emphasis', 'lineStyle', 'width']) === 'bolder') {\n      var emphasisLineStyle = polyline.getState('emphasis').style;\n      emphasisLineStyle.lineWidth = polyline.style.lineWidth + 1;\n    }\n\n    getECData(polyline).seriesIndex = seriesModel.seriesIndex;\n    enableHoverEmphasis(polyline, focus, blurScope);\n    var smooth = getSmooth(seriesModel.get('smooth'));\n    var smoothMonotone = seriesModel.get('smoothMonotone');\n    var connectNulls = seriesModel.get('connectNulls');\n    polyline.setShape({\n      smooth: smooth,\n      smoothMonotone: smoothMonotone,\n      connectNulls: connectNulls\n    });\n\n    if (polygon) {\n      var stackedOnSeries = data.getCalculationInfo('stackedOnSeries');\n      var stackedOnSmooth = 0;\n      polygon.useStyle(zrUtil.defaults(areaStyleModel.getAreaStyle(), {\n        fill: visualColor,\n        opacity: 0.7,\n        lineJoin: 'bevel',\n        decal: data.getVisual('style').decal\n      }));\n\n      if (stackedOnSeries) {\n        stackedOnSmooth = getSmooth(stackedOnSeries.get('smooth'));\n      }\n\n      polygon.setShape({\n        smooth: smooth,\n        stackedOnSmooth: stackedOnSmooth,\n        smoothMonotone: smoothMonotone,\n        connectNulls: connectNulls\n      });\n      setStatesStylesFromModel(polygon, seriesModel, 'areaStyle');\n      getECData(polygon).seriesIndex = seriesModel.seriesIndex;\n      enableHoverEmphasis(polygon, focus, blurScope);\n    }\n\n    var changePolyState = function (toState) {\n      _this._changePolyState(toState);\n    };\n\n    data.eachItemGraphicEl(function (el) {\n      el && (el.onHoverStateChange = changePolyState);\n    });\n    this._polyline.onHoverStateChange = changePolyState;\n    this._data = data;\n    this._coordSys = coordSys;\n    this._stackedOnPoints = stackedOnPoints;\n    this._points = points;\n    this._step = step;\n    this._valueOrigin = valueOrigin;\n  };\n\n  LineView.prototype.dispose = function () {};\n\n  LineView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\n    var data = seriesModel.getData();\n    var dataIndex = modelUtil.queryDataIndex(data, payload);\n\n    this._changePolyState('emphasis');\n\n    if (!(dataIndex instanceof Array) && dataIndex != null && dataIndex >= 0) {\n      var points = data.getLayout('points');\n      var symbol = data.getItemGraphicEl(dataIndex);\n\n      if (!symbol) {\n        var x = points[dataIndex * 2];\n        var y = points[dataIndex * 2 + 1];\n\n        if (isNaN(x) || isNaN(y)) {\n          return;\n        }\n\n        if (this._clipShapeForSymbol && !this._clipShapeForSymbol.contain(x, y)) {\n          return;\n        }\n\n        symbol = new SymbolClz(data, dataIndex);\n        symbol.x = x;\n        symbol.y = y;\n        symbol.setZ(seriesModel.get('zlevel'), seriesModel.get('z'));\n        symbol.__temp = true;\n        data.setItemGraphicEl(dataIndex, symbol);\n        symbol.stopSymbolAnimation(true);\n        this.group.add(symbol);\n      }\n\n      symbol.highlight();\n    } else {\n      ChartView.prototype.highlight.call(this, seriesModel, ecModel, api, payload);\n    }\n  };\n\n  LineView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\n    var data = seriesModel.getData();\n    var dataIndex = modelUtil.queryDataIndex(data, payload);\n\n    this._changePolyState('normal');\n\n    if (dataIndex != null && dataIndex >= 0) {\n      var symbol = data.getItemGraphicEl(dataIndex);\n\n      if (symbol) {\n        if (symbol.__temp) {\n          data.setItemGraphicEl(dataIndex, null);\n          this.group.remove(symbol);\n        } else {\n          symbol.downplay();\n        }\n      }\n    } else {\n      ChartView.prototype.downplay.call(this, seriesModel, ecModel, api, payload);\n    }\n  };\n\n  LineView.prototype._changePolyState = function (toState) {\n    var polygon = this._polygon;\n    setStatesFlag(this._polyline, toState);\n    polygon && setStatesFlag(polygon, toState);\n  };\n\n  LineView.prototype._newPolyline = function (points) {\n    var polyline = this._polyline;\n\n    if (polyline) {\n      this._lineGroup.remove(polyline);\n    }\n\n    polyline = new ECPolyline({\n      shape: {\n        points: points\n      },\n      segmentIgnoreThreshold: 2,\n      z2: 10\n    });\n\n    this._lineGroup.add(polyline);\n\n    this._polyline = polyline;\n    return polyline;\n  };\n\n  LineView.prototype._newPolygon = function (points, stackedOnPoints) {\n    var polygon = this._polygon;\n\n    if (polygon) {\n      this._lineGroup.remove(polygon);\n    }\n\n    polygon = new ECPolygon({\n      shape: {\n        points: points,\n        stackedOnPoints: stackedOnPoints\n      },\n      segmentIgnoreThreshold: 2\n    });\n\n    this._lineGroup.add(polygon);\n\n    this._polygon = polygon;\n    return polygon;\n  };\n\n  LineView.prototype._initSymbolLabelAnimation = function (data, coordSys, clipShape) {\n    var isHorizontalOrRadial;\n    var isCoordSysPolar;\n    var baseAxis = coordSys.getBaseAxis();\n    var isAxisInverse = baseAxis.inverse;\n\n    if (coordSys.type === 'cartesian2d') {\n      isHorizontalOrRadial = baseAxis.isHorizontal();\n      isCoordSysPolar = false;\n    } else if (coordSys.type === 'polar') {\n      isHorizontalOrRadial = baseAxis.dim === 'angle';\n      isCoordSysPolar = true;\n    }\n\n    var seriesModel = data.hostModel;\n    var seriesDuration = seriesModel.get('animationDuration');\n\n    if (typeof seriesDuration === 'function') {\n      seriesDuration = seriesDuration(null);\n    }\n\n    var seriesDalay = seriesModel.get('animationDelay') || 0;\n    var seriesDalayValue = typeof seriesDalay === 'function' ? seriesDalay(null) : seriesDalay;\n    data.eachItemGraphicEl(function (symbol, idx) {\n      var el = symbol;\n\n      if (el) {\n        var point = [symbol.x, symbol.y];\n        var start = void 0;\n        var end = void 0;\n        var current = void 0;\n\n        if (isCoordSysPolar) {\n          var polarClip = clipShape;\n          var coord = coordSys.pointToCoord(point);\n\n          if (isHorizontalOrRadial) {\n            start = polarClip.startAngle;\n            end = polarClip.endAngle;\n            current = -coord[1] / 180 * Math.PI;\n          } else {\n            start = polarClip.r0;\n            end = polarClip.r;\n            current = coord[0];\n          }\n        } else {\n          var gridClip = clipShape;\n\n          if (isHorizontalOrRadial) {\n            start = gridClip.x;\n            end = gridClip.x + gridClip.width;\n            current = symbol.x;\n          } else {\n            start = gridClip.y + gridClip.height;\n            end = gridClip.y;\n            current = symbol.y;\n          }\n        }\n\n        var ratio = end === start ? 0 : (current - start) / (end - start);\n\n        if (isAxisInverse) {\n          ratio = 1 - ratio;\n        }\n\n        var delay = typeof seriesDalay === 'function' ? seriesDalay(idx) : seriesDuration * ratio + seriesDalayValue;\n        var symbolPath = el.getSymbolPath();\n        var text = symbolPath.getTextContent();\n        el.attr({\n          scaleX: 0,\n          scaleY: 0\n        });\n        el.animateTo({\n          scaleX: 1,\n          scaleY: 1\n        }, {\n          duration: 200,\n          delay: delay\n        });\n\n        if (text) {\n          text.animateFrom({\n            style: {\n              opacity: 0\n            }\n          }, {\n            duration: 300,\n            delay: delay\n          });\n        }\n\n        symbolPath.disableLabelAnimation = true;\n      }\n    });\n  };\n\n  LineView.prototype._initOrUpdateEndLabel = function (seriesModel, coordSys) {\n    var endLabelModel = seriesModel.getModel('endLabel');\n\n    if (endLabelModel.get('show')) {\n      var data_2 = seriesModel.getData();\n      var polyline = this._polyline;\n      var endLabel = this._endLabel;\n\n      if (!endLabel) {\n        endLabel = this._endLabel = new graphic.Text({\n          z2: 200\n        });\n        endLabel.ignoreClip = true;\n        polyline.setTextContent(this._endLabel);\n        polyline.disableLabelAnimation = true;\n      }\n\n      var dataIndex = getLastIndexNotNull(data_2.getLayout('points'));\n\n      if (dataIndex >= 0) {\n        setLabelStyle(polyline, getLabelStatesModels(seriesModel, 'endLabel'), {\n          labelFetcher: seriesModel,\n          labelDataIndex: dataIndex,\n          defaultText: function (dataIndex, opt, interpolatedValue) {\n            return interpolatedValue != null ? getDefaultInterpolatedLabel(data_2, interpolatedValue) : getDefaultLabel(data_2, dataIndex);\n          },\n          enableTextSetter: true\n        }, getEndLabelStateSpecified(endLabelModel, coordSys));\n        polyline.textConfig.position = null;\n      }\n    } else if (this._endLabel) {\n      this._polyline.removeTextContent();\n\n      this._endLabel = null;\n    }\n  };\n\n  LineView.prototype._endLabelOnDuring = function (percent, clipRect, data, animationRecord, valueAnimation, endLabelModel, coordSys) {\n    var endLabel = this._endLabel;\n    var polyline = this._polyline;\n\n    if (endLabel) {\n      if (percent < 1 && animationRecord.originalX == null) {\n        animationRecord.originalX = endLabel.x;\n        animationRecord.originalY = endLabel.y;\n      }\n\n      var points = data.getLayout('points');\n      var seriesModel = data.hostModel;\n      var connectNulls = seriesModel.get('connectNulls');\n      var precision = endLabelModel.get('precision');\n      var distance = endLabelModel.get('distance') || 0;\n      var baseAxis = coordSys.getBaseAxis();\n      var isHorizontal = baseAxis.isHorizontal();\n      var isBaseInversed = baseAxis.inverse;\n      var clipShape = clipRect.shape;\n      var xOrY = isBaseInversed ? isHorizontal ? clipShape.x : clipShape.y + clipShape.height : isHorizontal ? clipShape.x + clipShape.width : clipShape.y;\n      var distanceX = (isHorizontal ? distance : 0) * (isBaseInversed ? -1 : 1);\n      var distanceY = (isHorizontal ? 0 : -distance) * (isBaseInversed ? -1 : 1);\n      var dim = isHorizontal ? 'x' : 'y';\n      var dataIndexRange = getIndexRange(points, xOrY, dim);\n      var indices = dataIndexRange.range;\n      var diff = indices[1] - indices[0];\n      var value = void 0;\n\n      if (diff >= 1) {\n        if (diff > 1 && !connectNulls) {\n          var pt = getPointAtIndex(points, indices[0]);\n          endLabel.attr({\n            x: pt[0] + distanceX,\n            y: pt[1] + distanceY\n          });\n          valueAnimation && (value = seriesModel.getRawValue(indices[0]));\n        } else {\n          var pt = polyline.getPointOn(xOrY, dim);\n          pt && endLabel.attr({\n            x: pt[0] + distanceX,\n            y: pt[1] + distanceY\n          });\n          var startValue = seriesModel.getRawValue(indices[0]);\n          var endValue = seriesModel.getRawValue(indices[1]);\n          valueAnimation && (value = modelUtil.interpolateRawValues(data, precision, startValue, endValue, dataIndexRange.t));\n        }\n\n        animationRecord.lastFrameIndex = indices[0];\n      } else {\n        var idx = percent === 1 || animationRecord.lastFrameIndex > 0 ? indices[0] : 0;\n        var pt = getPointAtIndex(points, idx);\n        valueAnimation && (value = seriesModel.getRawValue(idx));\n        endLabel.attr({\n          x: pt[0] + distanceX,\n          y: pt[1] + distanceY\n        });\n      }\n\n      if (valueAnimation) {\n        labelInner(endLabel).setLabelText(value);\n      }\n    }\n  };\n\n  LineView.prototype._doUpdateAnimation = function (data, stackedOnPoints, coordSys, api, step, valueOrigin) {\n    var polyline = this._polyline;\n    var polygon = this._polygon;\n    var seriesModel = data.hostModel;\n    var diff = lineAnimationDiff(this._data, data, this._stackedOnPoints, stackedOnPoints, this._coordSys, coordSys, this._valueOrigin, valueOrigin);\n    var current = diff.current;\n    var stackedOnCurrent = diff.stackedOnCurrent;\n    var next = diff.next;\n    var stackedOnNext = diff.stackedOnNext;\n\n    if (step) {\n      current = turnPointsIntoStep(diff.current, coordSys, step);\n      stackedOnCurrent = turnPointsIntoStep(diff.stackedOnCurrent, coordSys, step);\n      next = turnPointsIntoStep(diff.next, coordSys, step);\n      stackedOnNext = turnPointsIntoStep(diff.stackedOnNext, coordSys, step);\n    }\n\n    if (getBoundingDiff(current, next) > 3000 || polygon && getBoundingDiff(stackedOnCurrent, stackedOnNext) > 3000) {\n      polyline.setShape({\n        points: next\n      });\n\n      if (polygon) {\n        polygon.setShape({\n          points: next,\n          stackedOnPoints: stackedOnNext\n        });\n      }\n\n      return;\n    }\n\n    polyline.shape.__points = diff.current;\n    polyline.shape.points = current;\n    var target = {\n      shape: {\n        points: next\n      }\n    };\n\n    if (diff.current !== current) {\n      target.shape.__points = diff.next;\n    }\n\n    polyline.stopAnimation();\n    graphic.updateProps(polyline, target, seriesModel);\n\n    if (polygon) {\n      polygon.setShape({\n        points: current,\n        stackedOnPoints: stackedOnCurrent\n      });\n      polygon.stopAnimation();\n      graphic.updateProps(polygon, {\n        shape: {\n          stackedOnPoints: stackedOnNext\n        }\n      }, seriesModel);\n\n      if (polyline.shape.points !== polygon.shape.points) {\n        polygon.shape.points = polyline.shape.points;\n      }\n    }\n\n    var updatedDataInfo = [];\n    var diffStatus = diff.status;\n\n    for (var i = 0; i < diffStatus.length; i++) {\n      var cmd = diffStatus[i].cmd;\n\n      if (cmd === '=') {\n        var el = data.getItemGraphicEl(diffStatus[i].idx1);\n\n        if (el) {\n          updatedDataInfo.push({\n            el: el,\n            ptIdx: i\n          });\n        }\n      }\n    }\n\n    if (polyline.animators && polyline.animators.length) {\n      polyline.animators[0].during(function () {\n        polygon && polygon.dirtyShape();\n        var points = polyline.shape.__points;\n\n        for (var i = 0; i < updatedDataInfo.length; i++) {\n          var el = updatedDataInfo[i].el;\n          var offset = updatedDataInfo[i].ptIdx * 2;\n          el.x = points[offset];\n          el.y = points[offset + 1];\n          el.markRedraw();\n        }\n      });\n    }\n  };\n\n  LineView.prototype.remove = function (ecModel) {\n    var group = this.group;\n    var oldData = this._data;\n\n    this._lineGroup.removeAll();\n\n    this._symbolDraw.remove(true);\n\n    oldData && oldData.eachItemGraphicEl(function (el, idx) {\n      if (el.__temp) {\n        group.remove(el);\n        oldData.setItemGraphicEl(idx, null);\n      }\n    });\n    this._polyline = this._polygon = this._coordSys = this._points = this._stackedOnPoints = this._endLabel = this._data = null;\n  };\n\n  LineView.type = 'line';\n  return LineView;\n}(ChartView);\n\nexport default LineView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { map } from 'zrender/lib/core/util';\nimport createRenderPlanner from '../chart/helper/createRenderPlanner';\nimport { isDimensionStacked } from '../data/helper/dataStackHelper';\nimport { createFloat32Array } from '../util/vendor';\nexport default function pointsLayout(seriesType, forceStoreInTypedArray) {\n  return {\n    seriesType: seriesType,\n    plan: createRenderPlanner(),\n    reset: function (seriesModel) {\n      var data = seriesModel.getData();\n      var coordSys = seriesModel.coordinateSystem;\n      var pipelineContext = seriesModel.pipelineContext;\n      var useTypedArray = forceStoreInTypedArray || pipelineContext.large;\n\n      if (!coordSys) {\n        return;\n      }\n\n      var dims = map(coordSys.dimensions, function (dim) {\n        return data.mapDimension(dim);\n      }).slice(0, 2);\n      var dimLen = dims.length;\n      var stackResultDim = data.getCalculationInfo('stackResultDimension');\n\n      if (isDimensionStacked(data, dims[0])) {\n        dims[0] = stackResultDim;\n      }\n\n      if (isDimensionStacked(data, dims[1])) {\n        dims[1] = stackResultDim;\n      }\n\n      var dimInfo0 = data.getDimensionInfo(dims[0]);\n      var dimInfo1 = data.getDimensionInfo(dims[1]);\n      var dimIdx0 = dimInfo0 && dimInfo0.index;\n      var dimIdx1 = dimInfo1 && dimInfo1.index;\n      return dimLen && {\n        progress: function (params, data) {\n          var segCount = params.end - params.start;\n          var points = useTypedArray && createFloat32Array(segCount * dimLen);\n          var tmpIn = [];\n          var tmpOut = [];\n\n          for (var i = params.start, offset = 0; i < params.end; i++) {\n            var point = void 0;\n\n            if (dimLen === 1) {\n              var x = data.getByDimIdx(dimIdx0, i);\n              point = coordSys.dataToPoint(x, null, tmpOut);\n            } else {\n              tmpIn[0] = data.getByDimIdx(dimIdx0, i);\n              tmpIn[1] = data.getByDimIdx(dimIdx1, i);\n              point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n            }\n\n            if (useTypedArray) {\n              points[offset++] = point[0];\n              points[offset++] = point[1];\n            } else {\n              data.setItemLayout(i, point.slice());\n            }\n          }\n\n          useTypedArray && data.setLayout('points', points);\n        }\n      };\n    }\n  };\n}\n;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar samplers = {\n  average: function (frame) {\n    var sum = 0;\n    var count = 0;\n\n    for (var i = 0; i < frame.length; i++) {\n      if (!isNaN(frame[i])) {\n        sum += frame[i];\n        count++;\n      }\n    }\n\n    return count === 0 ? NaN : sum / count;\n  },\n  sum: function (frame) {\n    var sum = 0;\n\n    for (var i = 0; i < frame.length; i++) {\n      sum += frame[i] || 0;\n    }\n\n    return sum;\n  },\n  max: function (frame) {\n    var max = -Infinity;\n\n    for (var i = 0; i < frame.length; i++) {\n      frame[i] > max && (max = frame[i]);\n    }\n\n    return isFinite(max) ? max : NaN;\n  },\n  min: function (frame) {\n    var min = Infinity;\n\n    for (var i = 0; i < frame.length; i++) {\n      frame[i] < min && (min = frame[i]);\n    }\n\n    return isFinite(min) ? min : NaN;\n  },\n  nearest: function (frame) {\n    return frame[0];\n  }\n};\n\nvar indexSampler = function (frame) {\n  return Math.round(frame.length / 2);\n};\n\nexport default function dataSample(seriesType) {\n  return {\n    seriesType: seriesType,\n    reset: function (seriesModel, ecModel, api) {\n      var data = seriesModel.getData();\n      var sampling = seriesModel.get('sampling');\n      var coordSys = seriesModel.coordinateSystem;\n      var count = data.count();\n\n      if (count > 10 && coordSys.type === 'cartesian2d' && sampling) {\n        var baseAxis = coordSys.getBaseAxis();\n        var valueAxis = coordSys.getOtherAxis(baseAxis);\n        var extent = baseAxis.getExtent();\n        var dpr = api.getDevicePixelRatio();\n        var size = Math.abs(extent[1] - extent[0]) * (dpr || 1);\n        var rate = Math.round(count / size);\n\n        if (rate > 1) {\n          if (sampling === 'lttb') {\n            seriesModel.setData(data.lttbDownSample(data.mapDimension(valueAxis.dim), 1 / rate));\n          }\n\n          var sampler = void 0;\n\n          if (typeof sampling === 'string') {\n            sampler = samplers[sampling];\n          } else if (typeof sampling === 'function') {\n            sampler = sampling;\n          }\n\n          if (sampler) {\n            seriesModel.setData(data.downSample(data.mapDimension(valueAxis.dim), 1 / rate, sampler, indexSampler));\n          }\n        }\n      }\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport LineSeries from './LineSeries';\nimport LineView from './LineView';\nimport layoutPoints from '../../layout/points';\nimport dataSample from '../../processor/dataSample';\nexport function install(registers) {\n  registers.registerChartView(LineView);\n  registers.registerSeriesModel(LineSeries);\n  registers.registerLayout(layoutPoints('line', true));\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, dataSample('line'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport createListFromArray from '../helper/createListFromArray';\n\nvar BaseBarSeriesModel = function (_super) {\n  __extends(BaseBarSeriesModel, _super);\n\n  function BaseBarSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BaseBarSeriesModel.type;\n    return _this;\n  }\n\n  BaseBarSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: true\n    });\n  };\n\n  BaseBarSeriesModel.prototype.getMarkerPosition = function (value) {\n    var coordSys = this.coordinateSystem;\n\n    if (coordSys) {\n      var pt = coordSys.dataToPoint(coordSys.clampData(value));\n      var data = this.getData();\n      var offset = data.getLayout('offset');\n      var size = data.getLayout('size');\n      var offsetIndex = coordSys.getBaseAxis().isHorizontal() ? 0 : 1;\n      pt[offsetIndex] += offset + size / 2;\n      return pt;\n    }\n\n    return [NaN, NaN];\n  };\n\n  BaseBarSeriesModel.type = 'series.__base_bar__';\n  BaseBarSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'cartesian2d',\n    legendHoverLink: true,\n    barMinHeight: 0,\n    barMinAngle: 0,\n    large: false,\n    largeThreshold: 400,\n    progressive: 3e3,\n    progressiveChunkMode: 'mod'\n  };\n  return BaseBarSeriesModel;\n}(SeriesModel);\n\nSeriesModel.registerClass(BaseBarSeriesModel);\nexport default BaseBarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BaseBarSeriesModel from './BaseBarSeries';\nimport createListFromArray from '../helper/createListFromArray';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar BarSeriesModel = function (_super) {\n  __extends(BarSeriesModel, _super);\n\n  function BarSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BarSeriesModel.type;\n    return _this;\n  }\n\n  BarSeriesModel.prototype.getInitialData = function () {\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: true,\n      createInvertedIndices: !!this.get('realtimeSort', true) || null\n    });\n  };\n\n  BarSeriesModel.prototype.getProgressive = function () {\n    return this.get('large') ? this.get('progressive') : false;\n  };\n\n  BarSeriesModel.prototype.getProgressiveThreshold = function () {\n    var progressiveThreshold = this.get('progressiveThreshold');\n    var largeThreshold = this.get('largeThreshold');\n\n    if (largeThreshold > progressiveThreshold) {\n      progressiveThreshold = largeThreshold;\n    }\n\n    return progressiveThreshold;\n  };\n\n  BarSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n    return selectors.rect(data.getItemLayout(dataIndex));\n  };\n\n  BarSeriesModel.type = 'series.bar';\n  BarSeriesModel.dependencies = ['grid', 'polar'];\n  BarSeriesModel.defaultOption = inheritDefaultOption(BaseBarSeriesModel.defaultOption, {\n    clip: true,\n    roundCap: false,\n    showBackground: false,\n    backgroundStyle: {\n      color: 'rgba(180, 180, 180, 0.2)',\n      borderColor: null,\n      borderWidth: 0,\n      borderType: 'solid',\n      borderRadius: 0,\n      shadowBlur: 0,\n      shadowColor: null,\n      shadowOffsetX: 0,\n      shadowOffsetY: 0,\n      opacity: 1\n    },\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    },\n    realtimeSort: false\n  });\n  return BarSeriesModel;\n}(BaseBarSeriesModel);\n\nexport default BarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { Path } from '../graphic';\n\nvar SausageShape = function () {\n  function SausageShape() {\n    this.cx = 0;\n    this.cy = 0;\n    this.r0 = 0;\n    this.r = 0;\n    this.startAngle = 0;\n    this.endAngle = Math.PI * 2;\n    this.clockwise = true;\n  }\n\n  return SausageShape;\n}();\n\nvar SausagePath = function (_super) {\n  __extends(SausagePath, _super);\n\n  function SausagePath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'sausage';\n    return _this;\n  }\n\n  SausagePath.prototype.getDefaultShape = function () {\n    return new SausageShape();\n  };\n\n  SausagePath.prototype.buildPath = function (ctx, shape) {\n    var x = shape.cx;\n    var y = shape.cy;\n    var r0 = Math.max(shape.r0 || 0, 0);\n    var r = Math.max(shape.r, 0);\n    var dr = (r - r0) * 0.5;\n    var rCenter = r0 + dr;\n    var startAngle = shape.startAngle;\n    var endAngle = shape.endAngle;\n    var clockwise = shape.clockwise;\n    var unitStartX = Math.cos(startAngle);\n    var unitStartY = Math.sin(startAngle);\n    var unitEndX = Math.cos(endAngle);\n    var unitEndY = Math.sin(endAngle);\n    var lessThanCircle = clockwise ? endAngle - startAngle < Math.PI * 2 : startAngle - endAngle < Math.PI * 2;\n\n    if (lessThanCircle) {\n      ctx.moveTo(unitStartX * r0 + x, unitStartY * r0 + y);\n      ctx.arc(unitStartX * rCenter + x, unitStartY * rCenter + y, dr, -Math.PI + startAngle, startAngle, !clockwise);\n    }\n\n    ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\n    ctx.moveTo(unitEndX * r + x, unitEndY * r + y);\n    ctx.arc(unitEndX * rCenter + x, unitEndY * rCenter + y, dr, endAngle - Math.PI * 2, endAngle - Math.PI, !clockwise);\n\n    if (r0 !== 0) {\n      ctx.arc(x, y, r0, endAngle, startAngle, clockwise);\n      ctx.moveTo(unitStartX * r0 + x, unitEndY * r0 + y);\n    }\n\n    ctx.closePath();\n  };\n\n  return SausagePath;\n}(Path);\n\nexport default SausagePath;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Path from 'zrender/lib/graphic/Path';\nimport Group from 'zrender/lib/graphic/Group';\nimport { extend, defaults, each, map } from 'zrender/lib/core/util';\nimport { Rect, Sector, updateProps, initProps, removeElementWithFadeOut } from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { enableHoverEmphasis, setStatesStylesFromModel } from '../../util/states';\nimport { setLabelStyle, getLabelStatesModels, setLabelValueAnimation } from '../../label/labelStyle';\nimport { throttle } from '../../util/throttle';\nimport { createClipPath } from '../helper/createClipPathFromCoordSys';\nimport Sausage from '../../util/shape/sausage';\nimport ChartView from '../../view/Chart';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport { getDefaultLabel, getDefaultInterpolatedLabel } from '../helper/labelHelper';\nimport { warn } from '../../util/log';\nvar BAR_BORDER_WIDTH_QUERY = ['itemStyle', 'borderWidth'];\nvar BAR_BORDER_RADIUS_QUERY = ['itemStyle', 'borderRadius'];\nvar _eventPos = [0, 0];\nvar mathMax = Math.max;\nvar mathMin = Math.min;\n\nfunction getClipArea(coord, data) {\n  var coordSysClipArea = coord.getArea && coord.getArea();\n\n  if (isCoordinateSystemType(coord, 'cartesian2d')) {\n    var baseAxis = coord.getBaseAxis();\n\n    if (baseAxis.type !== 'category' || !baseAxis.onBand) {\n      var expandWidth = data.getLayout('bandWidth');\n\n      if (baseAxis.isHorizontal()) {\n        coordSysClipArea.x -= expandWidth;\n        coordSysClipArea.width += expandWidth * 2;\n      } else {\n        coordSysClipArea.y -= expandWidth;\n        coordSysClipArea.height += expandWidth * 2;\n      }\n    }\n  }\n\n  return coordSysClipArea;\n}\n\nvar BarView = function (_super) {\n  __extends(BarView, _super);\n\n  function BarView() {\n    var _this = _super.call(this) || this;\n\n    _this.type = BarView.type;\n    _this._isFirstFrame = true;\n    return _this;\n  }\n\n  BarView.prototype.render = function (seriesModel, ecModel, api, payload) {\n    this._model = seriesModel;\n\n    this._removeOnRenderedListener(api);\n\n    this._updateDrawMode(seriesModel);\n\n    var coordinateSystemType = seriesModel.get('coordinateSystem');\n\n    if (coordinateSystemType === 'cartesian2d' || coordinateSystemType === 'polar') {\n      this._isLargeDraw ? this._renderLarge(seriesModel, ecModel, api) : this._renderNormal(seriesModel, ecModel, api, payload);\n    } else if (process.env.NODE_ENV !== 'production') {\n      warn('Only cartesian2d and polar supported for bar.');\n    }\n  };\n\n  BarView.prototype.incrementalPrepareRender = function (seriesModel) {\n    this._clear();\n\n    this._updateDrawMode(seriesModel);\n\n    this._updateLargeClip(seriesModel);\n  };\n\n  BarView.prototype.incrementalRender = function (params, seriesModel) {\n    this._incrementalRenderLarge(params, seriesModel);\n  };\n\n  BarView.prototype._updateDrawMode = function (seriesModel) {\n    var isLargeDraw = seriesModel.pipelineContext.large;\n\n    if (this._isLargeDraw == null || isLargeDraw !== this._isLargeDraw) {\n      this._isLargeDraw = isLargeDraw;\n\n      this._clear();\n    }\n  };\n\n  BarView.prototype._renderNormal = function (seriesModel, ecModel, api, payload) {\n    var group = this.group;\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var coord = seriesModel.coordinateSystem;\n    var baseAxis = coord.getBaseAxis();\n    var isHorizontalOrRadial;\n\n    if (coord.type === 'cartesian2d') {\n      isHorizontalOrRadial = baseAxis.isHorizontal();\n    } else if (coord.type === 'polar') {\n      isHorizontalOrRadial = baseAxis.dim === 'angle';\n    }\n\n    var animationModel = seriesModel.isAnimationEnabled() ? seriesModel : null;\n    var realtimeSortCfg = shouldRealtimeSort(seriesModel, coord);\n\n    if (realtimeSortCfg) {\n      this._enableRealtimeSort(realtimeSortCfg, data, api);\n    }\n\n    var needsClip = seriesModel.get('clip', true) || realtimeSortCfg;\n    var coordSysClipArea = getClipArea(coord, data);\n    group.removeClipPath();\n    var roundCap = seriesModel.get('roundCap', true);\n    var drawBackground = seriesModel.get('showBackground', true);\n    var backgroundModel = seriesModel.getModel('backgroundStyle');\n    var barBorderRadius = backgroundModel.get('borderRadius') || 0;\n    var bgEls = [];\n    var oldBgEls = this._backgroundEls;\n    var isInitSort = payload && payload.isInitSort;\n    var isChangeOrder = payload && payload.type === 'changeAxisOrder';\n\n    function createBackground(dataIndex) {\n      var bgLayout = getLayout[coord.type](data, dataIndex);\n      var bgEl = createBackgroundEl(coord, isHorizontalOrRadial, bgLayout);\n      bgEl.useStyle(backgroundModel.getItemStyle());\n\n      if (coord.type === 'cartesian2d') {\n        bgEl.setShape('r', barBorderRadius);\n      }\n\n      bgEls[dataIndex] = bgEl;\n      return bgEl;\n    }\n\n    ;\n    data.diff(oldData).add(function (dataIndex) {\n      var itemModel = data.getItemModel(dataIndex);\n      var layout = getLayout[coord.type](data, dataIndex, itemModel);\n\n      if (drawBackground) {\n        createBackground(dataIndex);\n      }\n\n      if (!data.hasValue(dataIndex)) {\n        return;\n      }\n\n      var isClipped = false;\n\n      if (needsClip) {\n        isClipped = clip[coord.type](coordSysClipArea, layout);\n      }\n\n      var el = elementCreator[coord.type](seriesModel, data, dataIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, false, roundCap);\n      updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\n\n      if (isInitSort) {\n        el.attr({\n          shape: layout\n        });\n      } else if (realtimeSortCfg) {\n        updateRealtimeAnimation(realtimeSortCfg, animationModel, el, layout, dataIndex, isHorizontalOrRadial, false, false);\n      } else {\n        initProps(el, {\n          shape: layout\n        }, seriesModel, dataIndex);\n      }\n\n      data.setItemGraphicEl(dataIndex, el);\n      group.add(el);\n      el.ignore = isClipped;\n    }).update(function (newIndex, oldIndex) {\n      var itemModel = data.getItemModel(newIndex);\n      var layout = getLayout[coord.type](data, newIndex, itemModel);\n\n      if (drawBackground) {\n        var bgEl = void 0;\n\n        if (oldBgEls.length === 0) {\n          bgEl = createBackground(oldIndex);\n        } else {\n          bgEl = oldBgEls[oldIndex];\n          bgEl.useStyle(backgroundModel.getItemStyle());\n\n          if (coord.type === 'cartesian2d') {\n            bgEl.setShape('r', barBorderRadius);\n          }\n\n          bgEls[newIndex] = bgEl;\n        }\n\n        var bgLayout = getLayout[coord.type](data, newIndex);\n        var shape = createBackgroundShape(isHorizontalOrRadial, bgLayout, coord);\n        updateProps(bgEl, {\n          shape: shape\n        }, animationModel, newIndex);\n      }\n\n      var el = oldData.getItemGraphicEl(oldIndex);\n\n      if (!data.hasValue(newIndex)) {\n        group.remove(el);\n        el = null;\n        return;\n      }\n\n      var isClipped = false;\n\n      if (needsClip) {\n        isClipped = clip[coord.type](coordSysClipArea, layout);\n\n        if (isClipped) {\n          group.remove(el);\n        }\n      }\n\n      if (!el) {\n        el = elementCreator[coord.type](seriesModel, data, newIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, !!el, roundCap);\n      }\n\n      if (!isChangeOrder) {\n        updateStyle(el, data, newIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\n      }\n\n      if (isInitSort) {\n        el.attr({\n          shape: layout\n        });\n      } else if (realtimeSortCfg) {\n        updateRealtimeAnimation(realtimeSortCfg, animationModel, el, layout, newIndex, isHorizontalOrRadial, true, isChangeOrder);\n      } else {\n        updateProps(el, {\n          shape: layout\n        }, seriesModel, newIndex, null);\n      }\n\n      data.setItemGraphicEl(newIndex, el);\n      el.ignore = isClipped;\n      group.add(el);\n    }).remove(function (dataIndex) {\n      var el = oldData.getItemGraphicEl(dataIndex);\n      el && removeElementWithFadeOut(el, seriesModel, dataIndex);\n    }).execute();\n    var bgGroup = this._backgroundGroup || (this._backgroundGroup = new Group());\n    bgGroup.removeAll();\n\n    for (var i = 0; i < bgEls.length; ++i) {\n      bgGroup.add(bgEls[i]);\n    }\n\n    group.add(bgGroup);\n    this._backgroundEls = bgEls;\n    this._data = data;\n  };\n\n  BarView.prototype._renderLarge = function (seriesModel, ecModel, api) {\n    this._clear();\n\n    createLarge(seriesModel, this.group);\n\n    this._updateLargeClip(seriesModel);\n  };\n\n  BarView.prototype._incrementalRenderLarge = function (params, seriesModel) {\n    this._removeBackground();\n\n    createLarge(seriesModel, this.group, true);\n  };\n\n  BarView.prototype._updateLargeClip = function (seriesModel) {\n    var clipPath = seriesModel.get('clip', true) ? createClipPath(seriesModel.coordinateSystem, false, seriesModel) : null;\n\n    if (clipPath) {\n      this.group.setClipPath(clipPath);\n    } else {\n      this.group.removeClipPath();\n    }\n  };\n\n  BarView.prototype._enableRealtimeSort = function (realtimeSortCfg, data, api) {\n    var _this = this;\n\n    if (!data.count()) {\n      return;\n    }\n\n    var baseAxis = realtimeSortCfg.baseAxis;\n\n    if (this._isFirstFrame) {\n      this._dispatchInitSort(data, realtimeSortCfg, api);\n\n      this._isFirstFrame = false;\n    } else {\n      var orderMapping_1 = function (idx) {\n        var el = data.getItemGraphicEl(idx);\n\n        if (el) {\n          var shape = el.shape;\n          return (baseAxis.isHorizontal() ? Math.abs(shape.height) : Math.abs(shape.width)) || 0;\n        } else {\n          return 0;\n        }\n      };\n\n      this._onRendered = function () {\n        _this._updateSortWithinSameData(data, orderMapping_1, baseAxis, api);\n      };\n\n      api.getZr().on('rendered', this._onRendered);\n    }\n  };\n\n  BarView.prototype._dataSort = function (data, baseAxis, orderMapping) {\n    var info = [];\n    data.each(data.mapDimension(baseAxis.dim), function (ordinalNumber, dataIdx) {\n      var mappedValue = orderMapping(dataIdx);\n      mappedValue = mappedValue == null ? NaN : mappedValue;\n      info.push({\n        dataIndex: dataIdx,\n        mappedValue: mappedValue,\n        ordinalNumber: ordinalNumber\n      });\n    });\n    info.sort(function (a, b) {\n      return b.mappedValue - a.mappedValue;\n    });\n    return {\n      ordinalNumbers: map(info, function (item) {\n        return item.ordinalNumber;\n      })\n    };\n  };\n\n  BarView.prototype._isOrderChangedWithinSameData = function (data, orderMapping, baseAxis) {\n    var scale = baseAxis.scale;\n    var ordinalDataDim = data.mapDimension(baseAxis.dim);\n    var lastValue = Number.MAX_VALUE;\n\n    for (var tickNum = 0, len = scale.getOrdinalMeta().categories.length; tickNum < len; ++tickNum) {\n      var rawIdx = data.rawIndexOf(ordinalDataDim, scale.getRawOrdinalNumber(tickNum));\n      var value = rawIdx < 0 ? Number.MIN_VALUE : orderMapping(data.indexOfRawIndex(rawIdx));\n\n      if (value > lastValue) {\n        return true;\n      }\n\n      lastValue = value;\n    }\n\n    return false;\n  };\n\n  BarView.prototype._isOrderDifferentInView = function (orderInfo, baseAxis) {\n    var scale = baseAxis.scale;\n    var extent = scale.getExtent();\n    var tickNum = Math.max(0, extent[0]);\n    var tickMax = Math.min(extent[1], scale.getOrdinalMeta().categories.length - 1);\n\n    for (; tickNum <= tickMax; ++tickNum) {\n      if (orderInfo.ordinalNumbers[tickNum] !== scale.getRawOrdinalNumber(tickNum)) {\n        return true;\n      }\n    }\n  };\n\n  BarView.prototype._updateSortWithinSameData = function (data, orderMapping, baseAxis, api) {\n    if (!this._isOrderChangedWithinSameData(data, orderMapping, baseAxis)) {\n      return;\n    }\n\n    var sortInfo = this._dataSort(data, baseAxis, orderMapping);\n\n    if (this._isOrderDifferentInView(sortInfo, baseAxis)) {\n      this._removeOnRenderedListener(api);\n\n      api.dispatchAction({\n        type: 'changeAxisOrder',\n        componentType: baseAxis.dim + 'Axis',\n        axisId: baseAxis.index,\n        sortInfo: sortInfo\n      });\n    }\n  };\n\n  BarView.prototype._dispatchInitSort = function (data, realtimeSortCfg, api) {\n    var baseAxis = realtimeSortCfg.baseAxis;\n\n    var sortResult = this._dataSort(data, baseAxis, function (dataIdx) {\n      return data.get(data.mapDimension(realtimeSortCfg.otherAxis.dim), dataIdx);\n    });\n\n    api.dispatchAction({\n      type: 'changeAxisOrder',\n      componentType: baseAxis.dim + 'Axis',\n      isInitSort: true,\n      axisId: baseAxis.index,\n      sortInfo: sortResult,\n      animation: {\n        duration: 0\n      }\n    });\n  };\n\n  BarView.prototype.remove = function (ecModel, api) {\n    this._clear(this._model);\n\n    this._removeOnRenderedListener(api);\n  };\n\n  BarView.prototype.dispose = function (ecModel, api) {\n    this._removeOnRenderedListener(api);\n  };\n\n  BarView.prototype._removeOnRenderedListener = function (api) {\n    if (this._onRendered) {\n      api.getZr().off('rendered', this._onRendered);\n      this._onRendered = null;\n    }\n  };\n\n  BarView.prototype._clear = function (model) {\n    var group = this.group;\n    var data = this._data;\n\n    if (model && model.isAnimationEnabled() && data && !this._isLargeDraw) {\n      this._removeBackground();\n\n      this._backgroundEls = [];\n      data.eachItemGraphicEl(function (el) {\n        removeElementWithFadeOut(el, model, getECData(el).dataIndex);\n      });\n    } else {\n      group.removeAll();\n    }\n\n    this._data = null;\n    this._isFirstFrame = true;\n  };\n\n  BarView.prototype._removeBackground = function () {\n    this.group.remove(this._backgroundGroup);\n    this._backgroundGroup = null;\n  };\n\n  BarView.type = 'bar';\n  return BarView;\n}(ChartView);\n\nvar clip = {\n  cartesian2d: function (coordSysBoundingRect, layout) {\n    var signWidth = layout.width < 0 ? -1 : 1;\n    var signHeight = layout.height < 0 ? -1 : 1;\n\n    if (signWidth < 0) {\n      layout.x += layout.width;\n      layout.width = -layout.width;\n    }\n\n    if (signHeight < 0) {\n      layout.y += layout.height;\n      layout.height = -layout.height;\n    }\n\n    var coordSysX2 = coordSysBoundingRect.x + coordSysBoundingRect.width;\n    var coordSysY2 = coordSysBoundingRect.y + coordSysBoundingRect.height;\n    var x = mathMax(layout.x, coordSysBoundingRect.x);\n    var x2 = mathMin(layout.x + layout.width, coordSysX2);\n    var y = mathMax(layout.y, coordSysBoundingRect.y);\n    var y2 = mathMin(layout.y + layout.height, coordSysY2);\n    var xClipped = x2 < x;\n    var yClipped = y2 < y;\n    layout.x = xClipped && x > coordSysX2 ? x2 : x;\n    layout.y = yClipped && y > coordSysY2 ? y2 : y;\n    layout.width = xClipped ? 0 : x2 - x;\n    layout.height = yClipped ? 0 : y2 - y;\n\n    if (signWidth < 0) {\n      layout.x += layout.width;\n      layout.width = -layout.width;\n    }\n\n    if (signHeight < 0) {\n      layout.y += layout.height;\n      layout.height = -layout.height;\n    }\n\n    return xClipped || yClipped;\n  },\n  polar: function (coordSysClipArea, layout) {\n    var signR = layout.r0 <= layout.r ? 1 : -1;\n\n    if (signR < 0) {\n      var tmp = layout.r;\n      layout.r = layout.r0;\n      layout.r0 = tmp;\n    }\n\n    var r = mathMin(layout.r, coordSysClipArea.r);\n    var r0 = mathMax(layout.r0, coordSysClipArea.r0);\n    layout.r = r;\n    layout.r0 = r0;\n    var clipped = r - r0 < 0;\n\n    if (signR < 0) {\n      var tmp = layout.r;\n      layout.r = layout.r0;\n      layout.r0 = tmp;\n    }\n\n    return clipped;\n  }\n};\nvar elementCreator = {\n  cartesian2d: function (seriesModel, data, newIndex, layout, isHorizontal, animationModel, axisModel, isUpdate, roundCap) {\n    var rect = new Rect({\n      shape: extend({}, layout),\n      z2: 1\n    });\n    rect.__dataIndex = newIndex;\n    rect.name = 'item';\n\n    if (animationModel) {\n      var rectShape = rect.shape;\n      var animateProperty = isHorizontal ? 'height' : 'width';\n      rectShape[animateProperty] = 0;\n    }\n\n    return rect;\n  },\n  polar: function (seriesModel, data, newIndex, layout, isRadial, animationModel, axisModel, isUpdate, roundCap) {\n    var clockwise = layout.startAngle < layout.endAngle;\n    var ShapeClass = !isRadial && roundCap ? Sausage : Sector;\n    var sector = new ShapeClass({\n      shape: defaults({\n        clockwise: clockwise\n      }, layout),\n      z2: 1\n    });\n    sector.name = 'item';\n\n    if (animationModel) {\n      var sectorShape = sector.shape;\n      var animateProperty = isRadial ? 'r' : 'endAngle';\n      var animateTarget = {};\n      sectorShape[animateProperty] = isRadial ? 0 : layout.startAngle;\n      animateTarget[animateProperty] = layout[animateProperty];\n      (isUpdate ? updateProps : initProps)(sector, {\n        shape: animateTarget\n      }, animationModel);\n    }\n\n    return sector;\n  }\n};\n\nfunction shouldRealtimeSort(seriesModel, coordSys) {\n  var realtimeSortOption = seriesModel.get('realtimeSort', true);\n  var baseAxis = coordSys.getBaseAxis();\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (realtimeSortOption) {\n      if (baseAxis.type !== 'category') {\n        warn('`realtimeSort` will not work because this bar series is not based on a category axis.');\n      }\n\n      if (coordSys.type !== 'cartesian2d') {\n        warn('`realtimeSort` will not work because this bar series is not on cartesian2d.');\n      }\n    }\n  }\n\n  if (realtimeSortOption && baseAxis.type === 'category' && coordSys.type === 'cartesian2d') {\n    return {\n      baseAxis: baseAxis,\n      otherAxis: coordSys.getOtherAxis(baseAxis)\n    };\n  }\n}\n\nfunction updateRealtimeAnimation(realtimeSortCfg, seriesAnimationModel, el, layout, newIndex, isHorizontal, isUpdate, isChangeOrder) {\n  var seriesTarget;\n  var axisTarget;\n\n  if (isHorizontal) {\n    axisTarget = {\n      x: layout.x,\n      width: layout.width\n    };\n    seriesTarget = {\n      y: layout.y,\n      height: layout.height\n    };\n  } else {\n    axisTarget = {\n      y: layout.y,\n      height: layout.height\n    };\n    seriesTarget = {\n      x: layout.x,\n      width: layout.width\n    };\n  }\n\n  if (!isChangeOrder) {\n    (isUpdate ? updateProps : initProps)(el, {\n      shape: seriesTarget\n    }, seriesAnimationModel, newIndex, null);\n  }\n\n  var axisAnimationModel = seriesAnimationModel ? realtimeSortCfg.baseAxis.model : null;\n  (isUpdate ? updateProps : initProps)(el, {\n    shape: axisTarget\n  }, axisAnimationModel, newIndex);\n}\n\nvar getLayout = {\n  cartesian2d: function (data, dataIndex, itemModel) {\n    var layout = data.getItemLayout(dataIndex);\n    var fixedLineWidth = itemModel ? getLineWidth(itemModel, layout) : 0;\n    var signX = layout.width > 0 ? 1 : -1;\n    var signY = layout.height > 0 ? 1 : -1;\n    return {\n      x: layout.x + signX * fixedLineWidth / 2,\n      y: layout.y + signY * fixedLineWidth / 2,\n      width: layout.width - signX * fixedLineWidth,\n      height: layout.height - signY * fixedLineWidth\n    };\n  },\n  polar: function (data, dataIndex, itemModel) {\n    var layout = data.getItemLayout(dataIndex);\n    return {\n      cx: layout.cx,\n      cy: layout.cy,\n      r0: layout.r0,\n      r: layout.r,\n      startAngle: layout.startAngle,\n      endAngle: layout.endAngle\n    };\n  }\n};\n\nfunction isZeroOnPolar(layout) {\n  return layout.startAngle != null && layout.endAngle != null && layout.startAngle === layout.endAngle;\n}\n\nfunction updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontal, isPolar) {\n  var style = data.getItemVisual(dataIndex, 'style');\n\n  if (!isPolar) {\n    el.setShape('r', itemModel.get(BAR_BORDER_RADIUS_QUERY) || 0);\n  }\n\n  el.useStyle(style);\n  var cursorStyle = itemModel.getShallow('cursor');\n  cursorStyle && el.attr('cursor', cursorStyle);\n\n  if (!isPolar) {\n    var labelPositionOutside = isHorizontal ? layout.height > 0 ? 'bottom' : 'top' : layout.width > 0 ? 'left' : 'right';\n    var labelStatesModels = getLabelStatesModels(itemModel);\n    setLabelStyle(el, labelStatesModels, {\n      labelFetcher: seriesModel,\n      labelDataIndex: dataIndex,\n      defaultText: getDefaultLabel(seriesModel.getData(), dataIndex),\n      inheritColor: style.fill,\n      defaultOpacity: style.opacity,\n      defaultOutsidePosition: labelPositionOutside\n    });\n    var label = el.getTextContent();\n    setLabelValueAnimation(label, labelStatesModels, seriesModel.getRawValue(dataIndex), function (value) {\n      return getDefaultInterpolatedLabel(data, value);\n    });\n  }\n\n  var emphasisModel = itemModel.getModel(['emphasis']);\n  enableHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n  setStatesStylesFromModel(el, itemModel);\n\n  if (isZeroOnPolar(layout)) {\n    el.style.fill = 'none';\n    el.style.stroke = 'none';\n    each(el.states, function (state) {\n      if (state.style) {\n        state.style.fill = state.style.stroke = 'none';\n      }\n    });\n  }\n}\n\nfunction getLineWidth(itemModel, rawLayout) {\n  var lineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0;\n  var width = isNaN(rawLayout.width) ? Number.MAX_VALUE : Math.abs(rawLayout.width);\n  var height = isNaN(rawLayout.height) ? Number.MAX_VALUE : Math.abs(rawLayout.height);\n  return Math.min(lineWidth, width, height);\n}\n\nvar LagePathShape = function () {\n  function LagePathShape() {}\n\n  return LagePathShape;\n}();\n\nvar LargePath = function (_super) {\n  __extends(LargePath, _super);\n\n  function LargePath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'largeBar';\n    return _this;\n  }\n\n  ;\n\n  LargePath.prototype.getDefaultShape = function () {\n    return new LagePathShape();\n  };\n\n  LargePath.prototype.buildPath = function (ctx, shape) {\n    var points = shape.points;\n    var startPoint = this.__startPoint;\n    var baseDimIdx = this.__baseDimIdx;\n\n    for (var i = 0; i < points.length; i += 2) {\n      startPoint[baseDimIdx] = points[i + baseDimIdx];\n      ctx.moveTo(startPoint[0], startPoint[1]);\n      ctx.lineTo(points[i], points[i + 1]);\n    }\n  };\n\n  return LargePath;\n}(Path);\n\nfunction createLarge(seriesModel, group, incremental) {\n  var data = seriesModel.getData();\n  var startPoint = [];\n  var baseDimIdx = data.getLayout('valueAxisHorizontal') ? 1 : 0;\n  startPoint[1 - baseDimIdx] = data.getLayout('valueAxisStart');\n  var largeDataIndices = data.getLayout('largeDataIndices');\n  var barWidth = data.getLayout('barWidth');\n  var backgroundModel = seriesModel.getModel('backgroundStyle');\n  var drawBackground = seriesModel.get('showBackground', true);\n\n  if (drawBackground) {\n    var points = data.getLayout('largeBackgroundPoints');\n    var backgroundStartPoint = [];\n    backgroundStartPoint[1 - baseDimIdx] = data.getLayout('backgroundStart');\n    var bgEl = new LargePath({\n      shape: {\n        points: points\n      },\n      incremental: !!incremental,\n      silent: true,\n      z2: 0\n    });\n    bgEl.__startPoint = backgroundStartPoint;\n    bgEl.__baseDimIdx = baseDimIdx;\n    bgEl.__largeDataIndices = largeDataIndices;\n    bgEl.__barWidth = barWidth;\n    setLargeBackgroundStyle(bgEl, backgroundModel, data);\n    group.add(bgEl);\n  }\n\n  var el = new LargePath({\n    shape: {\n      points: data.getLayout('largePoints')\n    },\n    incremental: !!incremental\n  });\n  el.__startPoint = startPoint;\n  el.__baseDimIdx = baseDimIdx;\n  el.__largeDataIndices = largeDataIndices;\n  el.__barWidth = barWidth;\n  group.add(el);\n  setLargeStyle(el, seriesModel, data);\n  getECData(el).seriesIndex = seriesModel.seriesIndex;\n\n  if (!seriesModel.get('silent')) {\n    el.on('mousedown', largePathUpdateDataIndex);\n    el.on('mousemove', largePathUpdateDataIndex);\n  }\n}\n\nvar largePathUpdateDataIndex = throttle(function (event) {\n  var largePath = this;\n  var dataIndex = largePathFindDataIndex(largePath, event.offsetX, event.offsetY);\n  getECData(largePath).dataIndex = dataIndex >= 0 ? dataIndex : null;\n}, 30, false);\n\nfunction largePathFindDataIndex(largePath, x, y) {\n  var baseDimIdx = largePath.__baseDimIdx;\n  var valueDimIdx = 1 - baseDimIdx;\n  var points = largePath.shape.points;\n  var largeDataIndices = largePath.__largeDataIndices;\n  var barWidthHalf = Math.abs(largePath.__barWidth / 2);\n  var startValueVal = largePath.__startPoint[valueDimIdx];\n  _eventPos[0] = x;\n  _eventPos[1] = y;\n  var pointerBaseVal = _eventPos[baseDimIdx];\n  var pointerValueVal = _eventPos[1 - baseDimIdx];\n  var baseLowerBound = pointerBaseVal - barWidthHalf;\n  var baseUpperBound = pointerBaseVal + barWidthHalf;\n\n  for (var i = 0, len = points.length / 2; i < len; i++) {\n    var ii = i * 2;\n    var barBaseVal = points[ii + baseDimIdx];\n    var barValueVal = points[ii + valueDimIdx];\n\n    if (barBaseVal >= baseLowerBound && barBaseVal <= baseUpperBound && (startValueVal <= barValueVal ? pointerValueVal >= startValueVal && pointerValueVal <= barValueVal : pointerValueVal >= barValueVal && pointerValueVal <= startValueVal)) {\n      return largeDataIndices[i];\n    }\n  }\n\n  return -1;\n}\n\nfunction setLargeStyle(el, seriesModel, data) {\n  var globalStyle = data.getVisual('style');\n  el.useStyle(extend({}, globalStyle));\n  el.style.fill = null;\n  el.style.stroke = globalStyle.fill;\n  el.style.lineWidth = data.getLayout('barWidth');\n}\n\nfunction setLargeBackgroundStyle(el, backgroundModel, data) {\n  var borderColor = backgroundModel.get('borderColor') || backgroundModel.get('color');\n  var itemStyle = backgroundModel.getItemStyle();\n  el.useStyle(itemStyle);\n  el.style.fill = null;\n  el.style.stroke = borderColor;\n  el.style.lineWidth = data.getLayout('barWidth');\n}\n\nfunction createBackgroundShape(isHorizontalOrRadial, layout, coord) {\n  if (isCoordinateSystemType(coord, 'cartesian2d')) {\n    var rectShape = layout;\n    var coordLayout = coord.getArea();\n    return {\n      x: isHorizontalOrRadial ? rectShape.x : coordLayout.x,\n      y: isHorizontalOrRadial ? coordLayout.y : rectShape.y,\n      width: isHorizontalOrRadial ? rectShape.width : coordLayout.width,\n      height: isHorizontalOrRadial ? coordLayout.height : rectShape.height\n    };\n  } else {\n    var coordLayout = coord.getArea();\n    var sectorShape = layout;\n    return {\n      cx: coordLayout.cx,\n      cy: coordLayout.cy,\n      r0: isHorizontalOrRadial ? coordLayout.r0 : sectorShape.r0,\n      r: isHorizontalOrRadial ? coordLayout.r : sectorShape.r,\n      startAngle: isHorizontalOrRadial ? sectorShape.startAngle : 0,\n      endAngle: isHorizontalOrRadial ? sectorShape.endAngle : Math.PI * 2\n    };\n  }\n}\n\nfunction createBackgroundEl(coord, isHorizontalOrRadial, layout) {\n  var ElementClz = coord.type === 'polar' ? Sector : Rect;\n  return new ElementClz({\n    shape: createBackgroundShape(isHorizontalOrRadial, layout, coord),\n    silent: true,\n    z2: 0\n  });\n}\n\nexport default BarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { layout, largeLayout } from '../../layout/barGrid';\nimport dataSample from '../../processor/dataSample';\nimport BarSeries from './BarSeries';\nimport BarView from './BarView';\nexport function install(registers) {\n  registers.registerChartView(BarView);\n  registers.registerSeriesModel(BarSeries);\n  registers.registerLayout(registers.PRIORITY.VISUAL.LAYOUT, zrUtil.curry(layout, 'bar'));\n  registers.registerLayout(registers.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT, largeLayout);\n  registers.registerVisual({\n    seriesType: 'bar',\n    reset: function (seriesModel) {\n      seriesModel.getData().setVisual('legendSymbol', 'roundRect');\n    }\n  });\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, dataSample('bar'));\n  registers.registerAction({\n    type: 'changeAxisOrder',\n    event: 'changeAxisOrder',\n    update: 'update'\n  }, function (payload, ecModel) {\n    var componentType = payload.componentType || 'series';\n    ecModel.eachComponent({\n      mainType: componentType,\n      query: payload\n    }, function (componentModel) {\n      if (payload.sortInfo) {\n        componentModel.axis.setCategorySortInfo(payload.sortInfo);\n      }\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parsePercent, linearMap } from '../../util/number';\nimport * as layout from '../../util/layout';\nimport * as zrUtil from 'zrender/lib/core/util';\nvar PI2 = Math.PI * 2;\nvar RADIAN = Math.PI / 180;\n\nfunction getViewRect(seriesModel, api) {\n  return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n}\n\nexport default function pieLayout(seriesType, ecModel, api) {\n  ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n    var data = seriesModel.getData();\n    var valueDim = data.mapDimension('value');\n    var viewRect = getViewRect(seriesModel, api);\n    var center = seriesModel.get('center');\n    var radius = seriesModel.get('radius');\n\n    if (!zrUtil.isArray(radius)) {\n      radius = [0, radius];\n    }\n\n    if (!zrUtil.isArray(center)) {\n      center = [center, center];\n    }\n\n    var width = parsePercent(viewRect.width, api.getWidth());\n    var height = parsePercent(viewRect.height, api.getHeight());\n    var size = Math.min(width, height);\n    var cx = parsePercent(center[0], width) + viewRect.x;\n    var cy = parsePercent(center[1], height) + viewRect.y;\n    var r0 = parsePercent(radius[0], size / 2);\n    var r = parsePercent(radius[1], size / 2);\n    var startAngle = -seriesModel.get('startAngle') * RADIAN;\n    var minAngle = seriesModel.get('minAngle') * RADIAN;\n    var validDataCount = 0;\n    data.each(valueDim, function (value) {\n      !isNaN(value) && validDataCount++;\n    });\n    var sum = data.getSum(valueDim);\n    var unitRadian = Math.PI / (sum || validDataCount) * 2;\n    var clockwise = seriesModel.get('clockwise');\n    var roseType = seriesModel.get('roseType');\n    var stillShowZeroSum = seriesModel.get('stillShowZeroSum');\n    var extent = data.getDataExtent(valueDim);\n    extent[0] = 0;\n    var restAngle = PI2;\n    var valueSumLargerThanMinAngle = 0;\n    var currentAngle = startAngle;\n    var dir = clockwise ? 1 : -1;\n    data.setLayout({\n      viewRect: viewRect,\n      r: r\n    });\n    data.each(valueDim, function (value, idx) {\n      var angle;\n\n      if (isNaN(value)) {\n        data.setItemLayout(idx, {\n          angle: NaN,\n          startAngle: NaN,\n          endAngle: NaN,\n          clockwise: clockwise,\n          cx: cx,\n          cy: cy,\n          r0: r0,\n          r: roseType ? NaN : r\n        });\n        return;\n      }\n\n      if (roseType !== 'area') {\n        angle = sum === 0 && stillShowZeroSum ? unitRadian : value * unitRadian;\n      } else {\n        angle = PI2 / validDataCount;\n      }\n\n      if (angle < minAngle) {\n        angle = minAngle;\n        restAngle -= minAngle;\n      } else {\n        valueSumLargerThanMinAngle += value;\n      }\n\n      var endAngle = currentAngle + dir * angle;\n      data.setItemLayout(idx, {\n        angle: angle,\n        startAngle: currentAngle,\n        endAngle: endAngle,\n        clockwise: clockwise,\n        cx: cx,\n        cy: cy,\n        r0: r0,\n        r: roseType ? linearMap(value, extent, [r0, r]) : r\n      });\n      currentAngle = endAngle;\n    });\n\n    if (restAngle < PI2 && validDataCount) {\n      if (restAngle <= 1e-3) {\n        var angle_1 = PI2 / validDataCount;\n        data.each(valueDim, function (value, idx) {\n          if (!isNaN(value)) {\n            var layout_1 = data.getItemLayout(idx);\n            layout_1.angle = angle_1;\n            layout_1.startAngle = startAngle + dir * idx * angle_1;\n            layout_1.endAngle = startAngle + dir * (idx + 1) * angle_1;\n          }\n        });\n      } else {\n        unitRadian = restAngle / valueSumLargerThanMinAngle;\n        currentAngle = startAngle;\n        data.each(valueDim, function (value, idx) {\n          if (!isNaN(value)) {\n            var layout_2 = data.getItemLayout(idx);\n            var angle = layout_2.angle === minAngle ? minAngle : value * unitRadian;\n            layout_2.startAngle = currentAngle;\n            layout_2.endAngle = currentAngle + dir * angle;\n            currentAngle += dir * angle;\n          }\n        });\n      }\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function dataFilter(seriesType) {\n  return {\n    seriesType: seriesType,\n    reset: function (seriesModel, ecModel) {\n      var legendModels = ecModel.findComponents({\n        mainType: 'legend'\n      });\n\n      if (!legendModels || !legendModels.length) {\n        return;\n      }\n\n      var data = seriesModel.getData();\n      data.filterSelf(function (idx) {\n        var name = data.getName(idx);\n\n        for (var i = 0; i < legendModels.length; i++) {\n          if (!legendModels[i].isSelected(name)) {\n            return false;\n          }\n        }\n\n        return true;\n      });\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parsePercent } from '../../util/number';\nimport { Point } from '../../util/graphic';\nimport { each } from 'zrender/lib/core/util';\nimport { limitTurnAngle, limitSurfaceAngle } from '../../label/labelGuideHelper';\nimport { shiftLayoutOnY } from '../../label/labelLayoutHelper';\nvar RADIAN = Math.PI / 180;\n\nfunction adjustSingleSide(list, cx, cy, r, dir, viewWidth, viewHeight, viewLeft, viewTop, farthestX) {\n  if (list.length < 2) {\n    return;\n  }\n\n  ;\n\n  function recalculateXOnSemiToAlignOnEllipseCurve(semi) {\n    var rB = semi.rB;\n    var rB2 = rB * rB;\n\n    for (var i = 0; i < semi.list.length; i++) {\n      var item = semi.list[i];\n      var dy = Math.abs(item.label.y - cy);\n      var rA = r + item.len;\n      var rA2 = rA * rA;\n      var dx = Math.sqrt((1 - Math.abs(dy * dy / rB2)) * rA2);\n      item.label.x = cx + (dx + item.len2) * dir;\n    }\n  }\n\n  function recalculateX(items) {\n    var topSemi = {\n      list: [],\n      maxY: 0\n    };\n    var bottomSemi = {\n      list: [],\n      maxY: 0\n    };\n\n    for (var i = 0; i < items.length; i++) {\n      if (items[i].labelAlignTo !== 'none') {\n        continue;\n      }\n\n      var item = items[i];\n      var semi = item.label.y > cy ? bottomSemi : topSemi;\n      var dy = Math.abs(item.label.y - cy);\n\n      if (dy > semi.maxY) {\n        var dx = item.label.x - cx - item.len2 * dir;\n        var rA = r + item.len;\n        var rB = dx < rA ? Math.sqrt(dy * dy / (1 - dx * dx / rA / rA)) : rA;\n        semi.rB = rB;\n        semi.maxY = dy;\n      }\n\n      semi.list.push(item);\n    }\n\n    recalculateXOnSemiToAlignOnEllipseCurve(topSemi);\n    recalculateXOnSemiToAlignOnEllipseCurve(bottomSemi);\n  }\n\n  var len = list.length;\n\n  for (var i = 0; i < len; i++) {\n    if (list[i].position === 'outer' && list[i].labelAlignTo === 'labelLine') {\n      var dx = list[i].label.x - farthestX;\n      list[i].linePoints[1][0] += dx;\n      list[i].label.x = farthestX;\n    }\n  }\n\n  if (shiftLayoutOnY(list, viewTop, viewTop + viewHeight)) {\n    recalculateX(list);\n  }\n}\n\nfunction avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop) {\n  var leftList = [];\n  var rightList = [];\n  var leftmostX = Number.MAX_VALUE;\n  var rightmostX = -Number.MAX_VALUE;\n\n  for (var i = 0; i < labelLayoutList.length; i++) {\n    var label = labelLayoutList[i].label;\n\n    if (isPositionCenter(labelLayoutList[i])) {\n      continue;\n    }\n\n    if (label.x < cx) {\n      leftmostX = Math.min(leftmostX, label.x);\n      leftList.push(labelLayoutList[i]);\n    } else {\n      rightmostX = Math.max(rightmostX, label.x);\n      rightList.push(labelLayoutList[i]);\n    }\n  }\n\n  adjustSingleSide(rightList, cx, cy, r, 1, viewWidth, viewHeight, viewLeft, viewTop, rightmostX);\n  adjustSingleSide(leftList, cx, cy, r, -1, viewWidth, viewHeight, viewLeft, viewTop, leftmostX);\n\n  for (var i = 0; i < labelLayoutList.length; i++) {\n    var layout = labelLayoutList[i];\n    var label = layout.label;\n\n    if (isPositionCenter(layout)) {\n      continue;\n    }\n\n    var linePoints = layout.linePoints;\n\n    if (linePoints) {\n      var isAlignToEdge = layout.labelAlignTo === 'edge';\n      var realTextWidth = layout.rect.width;\n      var targetTextWidth = void 0;\n\n      if (isAlignToEdge) {\n        if (label.x < cx) {\n          targetTextWidth = linePoints[2][0] - layout.labelDistance - viewLeft - layout.edgeDistance;\n        } else {\n          targetTextWidth = viewLeft + viewWidth - layout.edgeDistance - linePoints[2][0] - layout.labelDistance;\n        }\n      } else {\n        if (label.x < cx) {\n          targetTextWidth = label.x - viewLeft - layout.bleedMargin;\n        } else {\n          targetTextWidth = viewLeft + viewWidth - label.x - layout.bleedMargin;\n        }\n      }\n\n      if (targetTextWidth < layout.rect.width) {\n        layout.label.style.width = targetTextWidth;\n\n        if (layout.labelAlignTo === 'edge') {\n          realTextWidth = targetTextWidth;\n        }\n      }\n\n      var dist = linePoints[1][0] - linePoints[2][0];\n\n      if (isAlignToEdge) {\n        if (label.x < cx) {\n          linePoints[2][0] = viewLeft + layout.edgeDistance + realTextWidth + layout.labelDistance;\n        } else {\n          linePoints[2][0] = viewLeft + viewWidth - layout.edgeDistance - realTextWidth - layout.labelDistance;\n        }\n      } else {\n        if (label.x < cx) {\n          linePoints[2][0] = label.x + layout.labelDistance;\n        } else {\n          linePoints[2][0] = label.x - layout.labelDistance;\n        }\n\n        linePoints[1][0] = linePoints[2][0] + dist;\n      }\n\n      linePoints[1][1] = linePoints[2][1] = label.y;\n    }\n  }\n}\n\nfunction isPositionCenter(sectorShape) {\n  return sectorShape.position === 'center';\n}\n\nexport default function pieLabelLayout(seriesModel) {\n  var data = seriesModel.getData();\n  var labelLayoutList = [];\n  var cx;\n  var cy;\n  var hasLabelRotate = false;\n  var minShowLabelRadian = (seriesModel.get('minShowLabelAngle') || 0) * RADIAN;\n  var viewRect = data.getLayout('viewRect');\n  var r = data.getLayout('r');\n  var viewWidth = viewRect.width;\n  var viewLeft = viewRect.x;\n  var viewTop = viewRect.y;\n  var viewHeight = viewRect.height;\n\n  function setNotShow(el) {\n    el.ignore = true;\n  }\n\n  function isLabelShown(label) {\n    if (!label.ignore) {\n      return true;\n    }\n\n    for (var key in label.states) {\n      if (label.states[key].ignore === false) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  data.each(function (idx) {\n    var sector = data.getItemGraphicEl(idx);\n    var sectorShape = sector.shape;\n    var label = sector.getTextContent();\n    var labelLine = sector.getTextGuideLine();\n    var itemModel = data.getItemModel(idx);\n    var labelModel = itemModel.getModel('label');\n    var labelPosition = labelModel.get('position') || itemModel.get(['emphasis', 'label', 'position']);\n    var labelDistance = labelModel.get('distanceToLabelLine');\n    var labelAlignTo = labelModel.get('alignTo');\n    var edgeDistance = parsePercent(labelModel.get('edgeDistance'), viewWidth);\n    var bleedMargin = labelModel.get('bleedMargin');\n    var labelLineModel = itemModel.getModel('labelLine');\n    var labelLineLen = labelLineModel.get('length');\n    labelLineLen = parsePercent(labelLineLen, viewWidth);\n    var labelLineLen2 = labelLineModel.get('length2');\n    labelLineLen2 = parsePercent(labelLineLen2, viewWidth);\n\n    if (Math.abs(sectorShape.endAngle - sectorShape.startAngle) < minShowLabelRadian) {\n      each(label.states, setNotShow);\n      label.ignore = true;\n      return;\n    }\n\n    if (!isLabelShown(label)) {\n      return;\n    }\n\n    var midAngle = (sectorShape.startAngle + sectorShape.endAngle) / 2;\n    var nx = Math.cos(midAngle);\n    var ny = Math.sin(midAngle);\n    var textX;\n    var textY;\n    var linePoints;\n    var textAlign;\n    cx = sectorShape.cx;\n    cy = sectorShape.cy;\n    var isLabelInside = labelPosition === 'inside' || labelPosition === 'inner';\n\n    if (labelPosition === 'center') {\n      textX = sectorShape.cx;\n      textY = sectorShape.cy;\n      textAlign = 'center';\n    } else {\n      var x1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * nx : sectorShape.r * nx) + cx;\n      var y1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * ny : sectorShape.r * ny) + cy;\n      textX = x1 + nx * 3;\n      textY = y1 + ny * 3;\n\n      if (!isLabelInside) {\n        var x2 = x1 + nx * (labelLineLen + r - sectorShape.r);\n        var y2 = y1 + ny * (labelLineLen + r - sectorShape.r);\n        var x3 = x2 + (nx < 0 ? -1 : 1) * labelLineLen2;\n        var y3 = y2;\n\n        if (labelAlignTo === 'edge') {\n          textX = nx < 0 ? viewLeft + edgeDistance : viewLeft + viewWidth - edgeDistance;\n        } else {\n          textX = x3 + (nx < 0 ? -labelDistance : labelDistance);\n        }\n\n        textY = y3;\n        linePoints = [[x1, y1], [x2, y2], [x3, y3]];\n      }\n\n      textAlign = isLabelInside ? 'center' : labelAlignTo === 'edge' ? nx > 0 ? 'right' : 'left' : nx > 0 ? 'left' : 'right';\n    }\n\n    var labelRotate;\n    var rotate = labelModel.get('rotate');\n\n    if (typeof rotate === 'number') {\n      labelRotate = rotate * (Math.PI / 180);\n    } else {\n      labelRotate = rotate ? nx < 0 ? -midAngle + Math.PI : -midAngle : 0;\n    }\n\n    hasLabelRotate = !!labelRotate;\n    label.x = textX;\n    label.y = textY;\n    label.rotation = labelRotate;\n    label.setStyle({\n      verticalAlign: 'middle'\n    });\n\n    if (!isLabelInside) {\n      var textRect = label.getBoundingRect().clone();\n      textRect.applyTransform(label.getComputedTransform());\n      var margin = (label.style.margin || 0) + 2.1;\n      textRect.y -= margin / 2;\n      textRect.height += margin;\n      labelLayoutList.push({\n        label: label,\n        labelLine: labelLine,\n        position: labelPosition,\n        len: labelLineLen,\n        len2: labelLineLen2,\n        minTurnAngle: labelLineModel.get('minTurnAngle'),\n        maxSurfaceAngle: labelLineModel.get('maxSurfaceAngle'),\n        surfaceNormal: new Point(nx, ny),\n        linePoints: linePoints,\n        textAlign: textAlign,\n        labelDistance: labelDistance,\n        labelAlignTo: labelAlignTo,\n        edgeDistance: edgeDistance,\n        bleedMargin: bleedMargin,\n        rect: textRect\n      });\n    } else {\n      label.setStyle({\n        align: textAlign\n      });\n      var selectState = label.states.select;\n\n      if (selectState) {\n        selectState.x += label.x;\n        selectState.y += label.y;\n      }\n    }\n\n    sector.setTextConfig({\n      inside: isLabelInside\n    });\n  });\n\n  if (!hasLabelRotate && seriesModel.get('avoidLabelOverlap')) {\n    avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop);\n  }\n\n  for (var i = 0; i < labelLayoutList.length; i++) {\n    var layout = labelLayoutList[i];\n    var label = layout.label;\n    var labelLine = layout.labelLine;\n    var notShowLabel = isNaN(label.x) || isNaN(label.y);\n\n    if (label) {\n      label.setStyle({\n        align: layout.textAlign\n      });\n\n      if (notShowLabel) {\n        each(label.states, setNotShow);\n        label.ignore = true;\n      }\n\n      var selectState = label.states.select;\n\n      if (selectState) {\n        selectState.x += label.x;\n        selectState.y += label.y;\n      }\n    }\n\n    if (labelLine) {\n      var linePoints = layout.linePoints;\n\n      if (notShowLabel || !linePoints) {\n        each(labelLine.states, setNotShow);\n        labelLine.ignore = true;\n      } else {\n        limitTurnAngle(linePoints, layout.minTurnAngle);\n        limitSurfaceAngle(linePoints, layout.surfaceNormal, layout.maxSurfaceAngle);\n        labelLine.setShape({\n          points: linePoints\n        });\n        label.__hostTarget.textGuideLineConfig = {\n          anchor: new Point(linePoints[0][0], linePoints[0][1])\n        };\n      }\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isArray } from 'zrender/lib/core/util';\nimport { parsePercent } from 'zrender/lib/contain/text';\nexport function getSectorCornerRadius(model, shape) {\n  var cornerRadius = model.get('borderRadius');\n\n  if (cornerRadius == null) {\n    return null;\n  }\n\n  if (!isArray(cornerRadius)) {\n    cornerRadius = [cornerRadius, cornerRadius];\n  }\n\n  return {\n    innerCornerRadius: parsePercent(cornerRadius[0], shape.r0),\n    cornerRadius: parsePercent(cornerRadius[1], shape.r)\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __assign, __extends } from \"tslib\";\nimport { extend, retrieve3 } from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport ChartView from '../../view/Chart';\nimport labelLayout from './labelLayout';\nimport { setLabelLineStyle, getLabelLineStatesModels } from '../../label/labelGuideHelper';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { getSectorCornerRadius } from '../helper/pieHelper';\n\nvar PiePiece = function (_super) {\n  __extends(PiePiece, _super);\n\n  function PiePiece(data, idx, startAngle) {\n    var _this = _super.call(this) || this;\n\n    _this.z2 = 2;\n    var polyline = new graphic.Polyline();\n    var text = new graphic.Text();\n\n    _this.setTextGuideLine(polyline);\n\n    _this.setTextContent(text);\n\n    _this.updateData(data, idx, startAngle, true);\n\n    return _this;\n  }\n\n  PiePiece.prototype.updateData = function (data, idx, startAngle, firstCreate) {\n    var sector = this;\n    var seriesModel = data.hostModel;\n    var itemModel = data.getItemModel(idx);\n    var emphasisModel = itemModel.getModel('emphasis');\n    var layout = data.getItemLayout(idx);\n    var sectorShape = extend(getSectorCornerRadius(itemModel.getModel('itemStyle'), layout) || {}, layout);\n\n    if (firstCreate) {\n      sector.setShape(sectorShape);\n      var animationType = seriesModel.getShallow('animationType');\n\n      if (animationType === 'scale') {\n        sector.shape.r = layout.r0;\n        graphic.initProps(sector, {\n          shape: {\n            r: layout.r\n          }\n        }, seriesModel, idx);\n      } else {\n        if (startAngle != null) {\n          sector.setShape({\n            startAngle: startAngle,\n            endAngle: startAngle\n          });\n          graphic.initProps(sector, {\n            shape: {\n              startAngle: layout.startAngle,\n              endAngle: layout.endAngle\n            }\n          }, seriesModel, idx);\n        } else {\n          sector.shape.endAngle = layout.startAngle;\n          graphic.updateProps(sector, {\n            shape: {\n              endAngle: layout.endAngle\n            }\n          }, seriesModel, idx);\n        }\n      }\n    } else {\n      graphic.updateProps(sector, {\n        shape: sectorShape\n      }, seriesModel, idx);\n    }\n\n    sector.useStyle(data.getItemVisual(idx, 'style'));\n    setStatesStylesFromModel(sector, itemModel);\n    var midAngle = (layout.startAngle + layout.endAngle) / 2;\n    var offset = seriesModel.get('selectedOffset');\n    var dx = Math.cos(midAngle) * offset;\n    var dy = Math.sin(midAngle) * offset;\n    var cursorStyle = itemModel.getShallow('cursor');\n    cursorStyle && sector.attr('cursor', cursorStyle);\n\n    this._updateLabel(seriesModel, data, idx);\n\n    sector.ensureState('emphasis').shape = __assign({\n      r: layout.r + (emphasisModel.get('scale') ? emphasisModel.get('scaleSize') || 0 : 0)\n    }, getSectorCornerRadius(emphasisModel.getModel('itemStyle'), layout));\n    extend(sector.ensureState('select'), {\n      x: dx,\n      y: dy,\n      shape: getSectorCornerRadius(itemModel.getModel(['select', 'itemStyle']), layout)\n    });\n    extend(sector.ensureState('blur'), {\n      shape: getSectorCornerRadius(itemModel.getModel(['blur', 'itemStyle']), layout)\n    });\n    var labelLine = sector.getTextGuideLine();\n    var labelText = sector.getTextContent();\n    extend(labelLine.ensureState('select'), {\n      x: dx,\n      y: dy\n    });\n    extend(labelText.ensureState('select'), {\n      x: dx,\n      y: dy\n    });\n    enableHoverEmphasis(this, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n  };\n\n  PiePiece.prototype._updateLabel = function (seriesModel, data, idx) {\n    var sector = this;\n    var itemModel = data.getItemModel(idx);\n    var labelLineModel = itemModel.getModel('labelLine');\n    var style = data.getItemVisual(idx, 'style');\n    var visualColor = style && style.fill;\n    var visualOpacity = style && style.opacity;\n    setLabelStyle(sector, getLabelStatesModels(itemModel), {\n      labelFetcher: data.hostModel,\n      labelDataIndex: idx,\n      inheritColor: visualColor,\n      defaultOpacity: visualOpacity,\n      defaultText: seriesModel.getFormattedLabel(idx, 'normal') || data.getName(idx)\n    });\n    var labelText = sector.getTextContent();\n    sector.setTextConfig({\n      position: null,\n      rotation: null\n    });\n    labelText.attr({\n      z2: 10\n    });\n    setLabelLineStyle(this, getLabelLineStatesModels(itemModel), {\n      stroke: visualColor,\n      opacity: retrieve3(labelLineModel.get(['lineStyle', 'opacity']), visualOpacity, 1)\n    });\n  };\n\n  return PiePiece;\n}(graphic.Sector);\n\nvar PieView = function (_super) {\n  __extends(PieView, _super);\n\n  function PieView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.ignoreLabelLineUpdate = true;\n    return _this;\n  }\n\n  PieView.prototype.init = function () {\n    var sectorGroup = new graphic.Group();\n    this._sectorGroup = sectorGroup;\n  };\n\n  PieView.prototype.render = function (seriesModel, ecModel, api, payload) {\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var group = this.group;\n    var startAngle;\n\n    if (!oldData && data.count() > 0) {\n      var shape = data.getItemLayout(0);\n\n      for (var s = 1; isNaN(shape && shape.startAngle) && s < data.count(); ++s) {\n        shape = data.getItemLayout(s);\n      }\n\n      if (shape) {\n        startAngle = shape.startAngle;\n      }\n    }\n\n    data.diff(oldData).add(function (idx) {\n      var piePiece = new PiePiece(data, idx, startAngle);\n      data.setItemGraphicEl(idx, piePiece);\n      group.add(piePiece);\n    }).update(function (newIdx, oldIdx) {\n      var piePiece = oldData.getItemGraphicEl(oldIdx);\n      piePiece.updateData(data, newIdx, startAngle);\n      piePiece.off('click');\n      group.add(piePiece);\n      data.setItemGraphicEl(newIdx, piePiece);\n    }).remove(function (idx) {\n      var piePiece = oldData.getItemGraphicEl(idx);\n      graphic.removeElementWithFadeOut(piePiece, seriesModel, idx);\n    }).execute();\n    labelLayout(seriesModel);\n\n    if (seriesModel.get('animationTypeUpdate') !== 'expansion') {\n      this._data = data;\n    }\n  };\n\n  PieView.prototype.dispose = function () {};\n\n  PieView.prototype.containPoint = function (point, seriesModel) {\n    var data = seriesModel.getData();\n    var itemLayout = data.getItemLayout(0);\n\n    if (itemLayout) {\n      var dx = point[0] - itemLayout.cx;\n      var dy = point[1] - itemLayout.cy;\n      var radius = Math.sqrt(dx * dx + dy * dy);\n      return radius <= itemLayout.r && radius >= itemLayout.r0;\n    }\n  };\n\n  PieView.type = 'pie';\n  return PieView;\n}(ChartView);\n\nexport default PieView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport createDimensions from '../../data/helper/createDimensions';\nimport List from '../../data/List';\nimport { extend, isArray } from 'zrender/lib/core/util';\nexport default function createListSimply(seriesModel, opt, nameList) {\n  opt = isArray(opt) && {\n    coordDimensions: opt\n  } || extend({}, opt);\n  var source = seriesModel.getSource();\n  var dimensionsInfo = createDimensions(source, opt);\n  var list = new List(dimensionsInfo, seriesModel);\n  list.initData(source, nameList);\n  return list;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar LegendVisualProvider = function () {\n  function LegendVisualProvider(getDataWithEncodedVisual, getRawData) {\n    this._getDataWithEncodedVisual = getDataWithEncodedVisual;\n    this._getRawData = getRawData;\n  }\n\n  LegendVisualProvider.prototype.getAllNames = function () {\n    var rawData = this._getRawData();\n\n    return rawData.mapArray(rawData.getName);\n  };\n\n  LegendVisualProvider.prototype.containName = function (name) {\n    var rawData = this._getRawData();\n\n    return rawData.indexOfName(name) >= 0;\n  };\n\n  LegendVisualProvider.prototype.indexOfName = function (name) {\n    var dataWithEncodedVisual = this._getDataWithEncodedVisual();\n\n    return dataWithEncodedVisual.indexOfName(name);\n  };\n\n  LegendVisualProvider.prototype.getItemVisual = function (dataIndex, key) {\n    var dataWithEncodedVisual = this._getDataWithEncodedVisual();\n\n    return dataWithEncodedVisual.getItemVisual(dataIndex, key);\n  };\n\n  return LegendVisualProvider;\n}();\n\nexport default LegendVisualProvider;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListSimply from '../helper/createListSimply';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nimport { getPercentWithPrecision } from '../../util/number';\nimport { makeSeriesEncodeForNameBased } from '../../data/helper/sourceHelper';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider';\nimport SeriesModel from '../../model/Series';\n\nvar PieSeriesModel = function (_super) {\n  __extends(PieSeriesModel, _super);\n\n  function PieSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.useColorPaletteOnData = true;\n    return _this;\n  }\n\n  PieSeriesModel.prototype.init = function (option) {\n    _super.prototype.init.apply(this, arguments);\n\n    this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));\n\n    this._defaultLabelLine(option);\n  };\n\n  PieSeriesModel.prototype.mergeOption = function () {\n    _super.prototype.mergeOption.apply(this, arguments);\n  };\n\n  PieSeriesModel.prototype.getInitialData = function () {\n    return createListSimply(this, {\n      coordDimensions: ['value'],\n      encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)\n    });\n  };\n\n  PieSeriesModel.prototype.getDataParams = function (dataIndex) {\n    var data = this.getData();\n\n    var params = _super.prototype.getDataParams.call(this, dataIndex);\n\n    var valueList = [];\n    data.each(data.mapDimension('value'), function (value) {\n      valueList.push(value);\n    });\n    params.percent = getPercentWithPrecision(valueList, dataIndex, data.hostModel.get('percentPrecision'));\n    params.$vars.push('percent');\n    return params;\n  };\n\n  PieSeriesModel.prototype._defaultLabelLine = function (option) {\n    modelUtil.defaultEmphasis(option, 'labelLine', ['show']);\n    var labelLineNormalOpt = option.labelLine;\n    var labelLineEmphasisOpt = option.emphasis.labelLine;\n    labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show;\n    labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show;\n  };\n\n  PieSeriesModel.type = 'series.pie';\n  PieSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    center: ['50%', '50%'],\n    radius: [0, '75%'],\n    clockwise: true,\n    startAngle: 90,\n    minAngle: 0,\n    minShowLabelAngle: 0,\n    selectedOffset: 10,\n    percentPrecision: 2,\n    stillShowZeroSum: true,\n    left: 0,\n    top: 0,\n    right: 0,\n    bottom: 0,\n    width: null,\n    height: null,\n    label: {\n      rotate: 0,\n      show: true,\n      overflow: 'truncate',\n      position: 'outer',\n      alignTo: 'none',\n      edgeDistance: '25%',\n      bleedMargin: 10,\n      distanceToLabelLine: 5\n    },\n    labelLine: {\n      show: true,\n      length: 15,\n      length2: 15,\n      smooth: false,\n      minTurnAngle: 90,\n      maxSurfaceAngle: 90,\n      lineStyle: {\n        width: 1,\n        type: 'solid'\n      }\n    },\n    itemStyle: {\n      borderWidth: 1\n    },\n    labelLayout: {\n      hideOverlap: true\n    },\n    emphasis: {\n      scale: true,\n      scaleSize: 5\n    },\n    avoidLabelOverlap: true,\n    animationType: 'expansion',\n    animationDuration: 1000,\n    animationTypeUpdate: 'transition',\n    animationEasingUpdate: 'cubicInOut',\n    animationDurationUpdate: 500,\n    animationEasing: 'cubicInOut'\n  };\n  return PieSeriesModel;\n}(SeriesModel);\n\nexport default PieSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createLegacyDataSelectAction } from '../../legacy/dataSelectAction';\nimport pieLayout from '../pie/pieLayout';\nimport dataFilter from '../../processor/dataFilter';\nimport { curry } from 'zrender/lib/core/util';\nimport PieView from './PieView';\nimport PieSeriesModel from './PieSeries';\nexport function install(registers) {\n  registers.registerChartView(PieView);\n  registers.registerSeriesModel(PieSeriesModel);\n  createLegacyDataSelectAction('pie', registers.registerAction);\n  registers.registerLayout(curry(pieLayout, 'pie'));\n  registers.registerProcessor(dataFilter('pie'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListFromArray from '../helper/createListFromArray';\nimport SeriesModel from '../../model/Series';\n\nvar ScatterSeriesModel = function (_super) {\n  __extends(ScatterSeriesModel, _super);\n\n  function ScatterSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ScatterSeriesModel.type;\n    _this.hasSymbolVisual = true;\n    return _this;\n  }\n\n  ScatterSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: true\n    });\n  };\n\n  ScatterSeriesModel.prototype.getProgressive = function () {\n    var progressive = this.option.progressive;\n\n    if (progressive == null) {\n      return this.option.large ? 5e3 : this.get('progressive');\n    }\n\n    return progressive;\n  };\n\n  ScatterSeriesModel.prototype.getProgressiveThreshold = function () {\n    var progressiveThreshold = this.option.progressiveThreshold;\n\n    if (progressiveThreshold == null) {\n      return this.option.large ? 1e4 : this.get('progressiveThreshold');\n    }\n\n    return progressiveThreshold;\n  };\n\n  ScatterSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n    return selectors.point(data.getItemLayout(dataIndex));\n  };\n\n  ScatterSeriesModel.type = 'series.scatter';\n  ScatterSeriesModel.dependencies = ['grid', 'polar', 'geo', 'singleAxis', 'calendar'];\n  ScatterSeriesModel.defaultOption = {\n    coordinateSystem: 'cartesian2d',\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    symbolSize: 10,\n    large: false,\n    largeThreshold: 2000,\n    itemStyle: {\n      opacity: 0.8\n    },\n    emphasis: {\n      scale: true\n    },\n    clip: true,\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    }\n  };\n  return ScatterSeriesModel;\n}(SeriesModel);\n\nexport default ScatterSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { createSymbol } from '../../util/symbol';\nimport IncrementalDisplayable from 'zrender/lib/graphic/IncrementalDisplayable';\nimport { getECData } from '../../util/innerStore';\nvar BOOST_SIZE_THRESHOLD = 4;\n\nvar LargeSymbolPathShape = function () {\n  function LargeSymbolPathShape() {}\n\n  return LargeSymbolPathShape;\n}();\n\nvar LargeSymbolPath = function (_super) {\n  __extends(LargeSymbolPath, _super);\n\n  function LargeSymbolPath(opts) {\n    return _super.call(this, opts) || this;\n  }\n\n  LargeSymbolPath.prototype.getDefaultShape = function () {\n    return new LargeSymbolPathShape();\n  };\n\n  LargeSymbolPath.prototype.buildPath = function (path, shape) {\n    var points = shape.points;\n    var size = shape.size;\n    var symbolProxy = this.symbolProxy;\n    var symbolProxyShape = symbolProxy.shape;\n    var ctx = path.getContext ? path.getContext() : path;\n    var canBoost = ctx && size[0] < BOOST_SIZE_THRESHOLD;\n\n    if (canBoost) {\n      this._ctx = ctx;\n      return;\n    }\n\n    this._ctx = null;\n\n    for (var i = 0; i < points.length;) {\n      var x = points[i++];\n      var y = points[i++];\n\n      if (isNaN(x) || isNaN(y)) {\n        continue;\n      }\n\n      if (this.softClipShape && !this.softClipShape.contain(x, y)) {\n        continue;\n      }\n\n      symbolProxyShape.x = x - size[0] / 2;\n      symbolProxyShape.y = y - size[1] / 2;\n      symbolProxyShape.width = size[0];\n      symbolProxyShape.height = size[1];\n      symbolProxy.buildPath(path, symbolProxyShape, true);\n    }\n  };\n\n  LargeSymbolPath.prototype.afterBrush = function () {\n    var shape = this.shape;\n    var points = shape.points;\n    var size = shape.size;\n    var ctx = this._ctx;\n\n    if (!ctx) {\n      return;\n    }\n\n    for (var i = 0; i < points.length;) {\n      var x = points[i++];\n      var y = points[i++];\n\n      if (isNaN(x) || isNaN(y)) {\n        continue;\n      }\n\n      if (this.softClipShape && !this.softClipShape.contain(x, y)) {\n        continue;\n      }\n\n      ctx.fillRect(x - size[0] / 2, y - size[1] / 2, size[0], size[1]);\n    }\n  };\n\n  LargeSymbolPath.prototype.findDataIndex = function (x, y) {\n    var shape = this.shape;\n    var points = shape.points;\n    var size = shape.size;\n    var w = Math.max(size[0], 4);\n    var h = Math.max(size[1], 4);\n\n    for (var idx = points.length / 2 - 1; idx >= 0; idx--) {\n      var i = idx * 2;\n      var x0 = points[i] - w / 2;\n      var y0 = points[i + 1] - h / 2;\n\n      if (x >= x0 && y >= y0 && x <= x0 + w && y <= y0 + h) {\n        return idx;\n      }\n    }\n\n    return -1;\n  };\n\n  return LargeSymbolPath;\n}(graphic.Path);\n\nvar LargeSymbolDraw = function () {\n  function LargeSymbolDraw() {\n    this.group = new graphic.Group();\n  }\n\n  LargeSymbolDraw.prototype.isPersistent = function () {\n    return !this._incremental;\n  };\n\n  ;\n\n  LargeSymbolDraw.prototype.updateData = function (data, opt) {\n    this.group.removeAll();\n    var symbolEl = new LargeSymbolPath({\n      rectHover: true,\n      cursor: 'default'\n    });\n    symbolEl.setShape({\n      points: data.getLayout('points')\n    });\n\n    this._setCommon(symbolEl, data, false, opt);\n\n    this.group.add(symbolEl);\n    this._incremental = null;\n  };\n\n  LargeSymbolDraw.prototype.updateLayout = function (data) {\n    if (this._incremental) {\n      return;\n    }\n\n    var points = data.getLayout('points');\n    this.group.eachChild(function (child) {\n      if (child.startIndex != null) {\n        var len = (child.endIndex - child.startIndex) * 2;\n        var byteOffset = child.startIndex * 4 * 2;\n        points = new Float32Array(points.buffer, byteOffset, len);\n      }\n\n      child.setShape('points', points);\n    });\n  };\n\n  LargeSymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\n    this.group.removeAll();\n\n    this._clearIncremental();\n\n    if (data.count() > 2e6) {\n      if (!this._incremental) {\n        this._incremental = new IncrementalDisplayable({\n          silent: true\n        });\n      }\n\n      this.group.add(this._incremental);\n    } else {\n      this._incremental = null;\n    }\n  };\n\n  LargeSymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\n    var symbolEl;\n\n    if (this._incremental) {\n      symbolEl = new LargeSymbolPath();\n\n      this._incremental.addDisplayable(symbolEl, true);\n    } else {\n      symbolEl = new LargeSymbolPath({\n        rectHover: true,\n        cursor: 'default',\n        startIndex: taskParams.start,\n        endIndex: taskParams.end\n      });\n      symbolEl.incremental = true;\n      this.group.add(symbolEl);\n    }\n\n    symbolEl.setShape({\n      points: data.getLayout('points')\n    });\n\n    this._setCommon(symbolEl, data, !!this._incremental, opt);\n  };\n\n  LargeSymbolDraw.prototype._setCommon = function (symbolEl, data, isIncremental, opt) {\n    var hostModel = data.hostModel;\n    opt = opt || {};\n    var size = data.getVisual('symbolSize');\n    symbolEl.setShape('size', size instanceof Array ? size : [size, size]);\n    symbolEl.softClipShape = opt.clipShape || null;\n    symbolEl.symbolProxy = createSymbol(data.getVisual('symbol'), 0, 0, 0, 0);\n    symbolEl.setColor = symbolEl.symbolProxy.setColor;\n    var extrudeShadow = symbolEl.shape.size[0] < BOOST_SIZE_THRESHOLD;\n    symbolEl.useStyle(hostModel.getModel('itemStyle').getItemStyle(extrudeShadow ? ['color', 'shadowBlur', 'shadowColor'] : ['color']));\n    var globalStyle = data.getVisual('style');\n    var visualColor = globalStyle && globalStyle.fill;\n\n    if (visualColor) {\n      symbolEl.setColor(visualColor);\n    }\n\n    if (!isIncremental) {\n      var ecData_1 = getECData(symbolEl);\n      ecData_1.seriesIndex = hostModel.seriesIndex;\n      symbolEl.on('mousemove', function (e) {\n        ecData_1.dataIndex = null;\n        var dataIndex = symbolEl.findDataIndex(e.offsetX, e.offsetY);\n\n        if (dataIndex >= 0) {\n          ecData_1.dataIndex = dataIndex + (symbolEl.startIndex || 0);\n        }\n      });\n    }\n  };\n\n  LargeSymbolDraw.prototype.remove = function () {\n    this._clearIncremental();\n\n    this._incremental = null;\n    this.group.removeAll();\n  };\n\n  LargeSymbolDraw.prototype._clearIncremental = function () {\n    var incremental = this._incremental;\n\n    if (incremental) {\n      incremental.clearDisplaybles();\n    }\n  };\n\n  return LargeSymbolDraw;\n}();\n\nexport default LargeSymbolDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SymbolDraw from '../helper/SymbolDraw';\nimport LargeSymbolDraw from '../helper/LargeSymbolDraw';\nimport pointsLayout from '../../layout/points';\nimport ChartView from '../../view/Chart';\n\nvar ScatterView = function (_super) {\n  __extends(ScatterView, _super);\n\n  function ScatterView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ScatterView.type;\n    return _this;\n  }\n\n  ScatterView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n\n    var symbolDraw = this._updateSymbolDraw(data, seriesModel);\n\n    symbolDraw.updateData(data, {\n      clipShape: this._getClipShape(seriesModel)\n    });\n    this._finished = true;\n  };\n\n  ScatterView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n\n    var symbolDraw = this._updateSymbolDraw(data, seriesModel);\n\n    symbolDraw.incrementalPrepareUpdate(data);\n    this._finished = false;\n  };\n\n  ScatterView.prototype.incrementalRender = function (taskParams, seriesModel, ecModel) {\n    this._symbolDraw.incrementalUpdate(taskParams, seriesModel.getData(), {\n      clipShape: this._getClipShape(seriesModel)\n    });\n\n    this._finished = taskParams.end === seriesModel.getData().count();\n  };\n\n  ScatterView.prototype.updateTransform = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    this.group.dirty();\n\n    if (!this._finished || data.count() > 1e4 || !this._symbolDraw.isPersistent()) {\n      return {\n        update: true\n      };\n    } else {\n      var res = pointsLayout('').reset(seriesModel, ecModel, api);\n\n      if (res.progress) {\n        res.progress({\n          start: 0,\n          end: data.count(),\n          count: data.count()\n        }, data);\n      }\n\n      this._symbolDraw.updateLayout(data);\n    }\n  };\n\n  ScatterView.prototype._getClipShape = function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n    var clipArea = coordSys && coordSys.getArea && coordSys.getArea();\n    return seriesModel.get('clip', true) ? clipArea : null;\n  };\n\n  ScatterView.prototype._updateSymbolDraw = function (data, seriesModel) {\n    var symbolDraw = this._symbolDraw;\n    var pipelineContext = seriesModel.pipelineContext;\n    var isLargeDraw = pipelineContext.large;\n\n    if (!symbolDraw || isLargeDraw !== this._isLargeDraw) {\n      symbolDraw && symbolDraw.remove();\n      symbolDraw = this._symbolDraw = isLargeDraw ? new LargeSymbolDraw() : new SymbolDraw();\n      this._isLargeDraw = isLargeDraw;\n      this.group.removeAll();\n    }\n\n    this.group.add(symbolDraw.group);\n    return symbolDraw;\n  };\n\n  ScatterView.prototype.remove = function (ecModel, api) {\n    this._symbolDraw && this._symbolDraw.remove(true);\n    this._symbolDraw = null;\n  };\n\n  ScatterView.prototype.dispose = function () {};\n\n  ScatterView.type = 'scatter';\n  return ScatterView;\n}(ChartView);\n\nexport default ScatterView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\n\nvar GridModel = function (_super) {\n  __extends(GridModel, _super);\n\n  function GridModel() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  GridModel.type = 'grid';\n  GridModel.dependencies = ['xAxis', 'yAxis'];\n  GridModel.layoutMode = 'box';\n  GridModel.defaultOption = {\n    show: false,\n    zlevel: 0,\n    z: 0,\n    left: '10%',\n    top: 60,\n    right: '10%',\n    bottom: 70,\n    containLabel: false,\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderWidth: 1,\n    borderColor: '#ccc'\n  };\n  return GridModel;\n}(ComponentModel);\n\nexport default GridModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin';\nimport { SINGLE_REFERRING } from '../../util/model';\n\nvar CartesianAxisModel = function (_super) {\n  __extends(CartesianAxisModel, _super);\n\n  function CartesianAxisModel() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  CartesianAxisModel.prototype.getCoordSysModel = function () {\n    return this.getReferringComponents('grid', SINGLE_REFERRING).models[0];\n  };\n\n  CartesianAxisModel.type = 'cartesian2dAxis';\n  return CartesianAxisModel;\n}(ComponentModel);\n\nexport { CartesianAxisModel };\nzrUtil.mixin(CartesianAxisModel, AxisModelCommonMixin);\nexport default CartesianAxisModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar defaultOption = {\n  show: true,\n  zlevel: 0,\n  z: 0,\n  inverse: false,\n  name: '',\n  nameLocation: 'end',\n  nameRotate: null,\n  nameTruncate: {\n    maxWidth: null,\n    ellipsis: '...',\n    placeholder: '.'\n  },\n  nameTextStyle: {},\n  nameGap: 15,\n  silent: false,\n  triggerEvent: false,\n  tooltip: {\n    show: false\n  },\n  axisPointer: {},\n  axisLine: {\n    show: true,\n    onZero: true,\n    onZeroAxisIndex: null,\n    lineStyle: {\n      color: '#6E7079',\n      width: 1,\n      type: 'solid'\n    },\n    symbol: ['none', 'none'],\n    symbolSize: [10, 15]\n  },\n  axisTick: {\n    show: true,\n    inside: false,\n    length: 5,\n    lineStyle: {\n      width: 1\n    }\n  },\n  axisLabel: {\n    show: true,\n    inside: false,\n    rotate: 0,\n    showMinLabel: null,\n    showMaxLabel: null,\n    margin: 8,\n    fontSize: 12\n  },\n  splitLine: {\n    show: true,\n    lineStyle: {\n      color: ['#E0E6F1'],\n      width: 1,\n      type: 'solid'\n    }\n  },\n  splitArea: {\n    show: false,\n    areaStyle: {\n      color: ['rgba(250,250,250,0.2)', 'rgba(210,219,238,0.2)']\n    }\n  }\n};\nvar categoryAxis = zrUtil.merge({\n  boundaryGap: true,\n  deduplication: null,\n  splitLine: {\n    show: false\n  },\n  axisTick: {\n    alignWithLabel: false,\n    interval: 'auto'\n  },\n  axisLabel: {\n    interval: 'auto'\n  }\n}, defaultOption);\nvar valueAxis = zrUtil.merge({\n  boundaryGap: [0, 0],\n  axisLine: {\n    show: 'auto'\n  },\n  axisTick: {\n    show: 'auto'\n  },\n  splitNumber: 5,\n  minorTick: {\n    show: false,\n    splitNumber: 5,\n    length: 3,\n    lineStyle: {}\n  },\n  minorSplitLine: {\n    show: false,\n    lineStyle: {\n      color: '#F4F7FD',\n      width: 1\n    }\n  }\n}, defaultOption);\nvar timeAxis = zrUtil.merge({\n  scale: true,\n  splitNumber: 6,\n  axisLabel: {\n    showMinLabel: false,\n    showMaxLabel: false,\n    rich: {\n      primary: {\n        fontWeight: 'bold'\n      }\n    }\n  },\n  splitLine: {\n    show: false\n  }\n}, valueAxis);\nvar logAxis = zrUtil.defaults({\n  scale: true,\n  logBase: 10\n}, valueAxis);\nexport default {\n  category: categoryAxis,\n  value: valueAxis,\n  time: timeAxis,\n  log: logAxis\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport var AXIS_TYPES = {\n  value: 1,\n  category: 1,\n  time: 1,\n  log: 1\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport axisDefault from './axisDefault';\nimport { getLayoutParams, mergeLayoutParam, fetchLayoutMode } from '../util/layout';\nimport OrdinalMeta from '../data/OrdinalMeta';\nimport { AXIS_TYPES } from './axisCommonTypes';\nimport { each, merge } from 'zrender/lib/core/util';\nexport default function axisModelCreator(registers, axisName, BaseAxisModelClass, extraDefaultOption) {\n  each(AXIS_TYPES, function (v, axisType) {\n    var defaultOption = merge(merge({}, axisDefault[axisType], true), extraDefaultOption, true);\n\n    var AxisModel = function (_super) {\n      __extends(AxisModel, _super);\n\n      function AxisModel() {\n        var args = [];\n\n        for (var _i = 0; _i < arguments.length; _i++) {\n          args[_i] = arguments[_i];\n        }\n\n        var _this = _super.apply(this, args) || this;\n\n        _this.type = axisName + 'Axis.' + axisType;\n        return _this;\n      }\n\n      AxisModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n        var layoutMode = fetchLayoutMode(this);\n        var inputPositionParams = layoutMode ? getLayoutParams(option) : {};\n        var themeModel = ecModel.getTheme();\n        merge(option, themeModel.get(axisType + 'Axis'));\n        merge(option, this.getDefaultOption());\n        option.type = getAxisType(option);\n\n        if (layoutMode) {\n          mergeLayoutParam(option, inputPositionParams, layoutMode);\n        }\n      };\n\n      AxisModel.prototype.optionUpdated = function () {\n        var thisOption = this.option;\n\n        if (thisOption.type === 'category') {\n          this.__ordinalMeta = OrdinalMeta.createByAxisModel(this);\n        }\n      };\n\n      AxisModel.prototype.getCategories = function (rawData) {\n        var option = this.option;\n\n        if (option.type === 'category') {\n          if (rawData) {\n            return option.data;\n          }\n\n          return this.__ordinalMeta.categories;\n        }\n      };\n\n      AxisModel.prototype.getOrdinalMeta = function () {\n        return this.__ordinalMeta;\n      };\n\n      AxisModel.type = axisName + 'Axis.' + axisType;\n      AxisModel.defaultOption = defaultOption;\n      return AxisModel;\n    }(BaseAxisModelClass);\n\n    registers.registerComponentModel(AxisModel);\n  });\n  registers.registerSubTypeDefaulter(axisName + 'Axis', getAxisType);\n}\n\nfunction getAxisType(option) {\n  return option.type || (option.data ? 'category' : 'value');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nvar Cartesian = function () {\n  function Cartesian(name) {\n    this.type = 'cartesian';\n    this._dimList = [];\n    this._axes = {};\n    this.name = name || '';\n  }\n\n  Cartesian.prototype.getAxis = function (dim) {\n    return this._axes[dim];\n  };\n\n  Cartesian.prototype.getAxes = function () {\n    return zrUtil.map(this._dimList, function (dim) {\n      return this._axes[dim];\n    }, this);\n  };\n\n  Cartesian.prototype.getAxesByScale = function (scaleType) {\n    scaleType = scaleType.toLowerCase();\n    return zrUtil.filter(this.getAxes(), function (axis) {\n      return axis.scale.type === scaleType;\n    });\n  };\n\n  Cartesian.prototype.addAxis = function (axis) {\n    var dim = axis.dim;\n    this._axes[dim] = axis;\n\n    this._dimList.push(dim);\n  };\n\n  return Cartesian;\n}();\n\n;\nexport default Cartesian;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport Cartesian from './Cartesian';\nimport { invert } from 'zrender/lib/core/matrix';\nimport { applyTransform } from 'zrender/lib/core/vector';\nexport var cartesian2DDimensions = ['x', 'y'];\n\nfunction canCalculateAffineTransform(scale) {\n  return scale.type === 'interval' || scale.type === 'time';\n}\n\nvar Cartesian2D = function (_super) {\n  __extends(Cartesian2D, _super);\n\n  function Cartesian2D() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'cartesian2d';\n    _this.dimensions = cartesian2DDimensions;\n    return _this;\n  }\n\n  Cartesian2D.prototype.calcAffineTransform = function () {\n    this._transform = this._invTransform = null;\n    var xAxisScale = this.getAxis('x').scale;\n    var yAxisScale = this.getAxis('y').scale;\n\n    if (!canCalculateAffineTransform(xAxisScale) || !canCalculateAffineTransform(yAxisScale)) {\n      return;\n    }\n\n    var xScaleExtent = xAxisScale.getExtent();\n    var yScaleExtent = yAxisScale.getExtent();\n    var start = this.dataToPoint([xScaleExtent[0], yScaleExtent[0]]);\n    var end = this.dataToPoint([xScaleExtent[1], yScaleExtent[1]]);\n    var xScaleSpan = xScaleExtent[1] - xScaleExtent[0];\n    var yScaleSpan = yScaleExtent[1] - yScaleExtent[0];\n\n    if (!xScaleSpan || !yScaleSpan) {\n      return;\n    }\n\n    var scaleX = (end[0] - start[0]) / xScaleSpan;\n    var scaleY = (end[1] - start[1]) / yScaleSpan;\n    var translateX = start[0] - xScaleExtent[0] * scaleX;\n    var translateY = start[1] - yScaleExtent[0] * scaleY;\n    var m = this._transform = [scaleX, 0, 0, scaleY, translateX, translateY];\n    this._invTransform = invert([], m);\n  };\n\n  Cartesian2D.prototype.getBaseAxis = function () {\n    return this.getAxesByScale('ordinal')[0] || this.getAxesByScale('time')[0] || this.getAxis('x');\n  };\n\n  Cartesian2D.prototype.containPoint = function (point) {\n    var axisX = this.getAxis('x');\n    var axisY = this.getAxis('y');\n    return axisX.contain(axisX.toLocalCoord(point[0])) && axisY.contain(axisY.toLocalCoord(point[1]));\n  };\n\n  Cartesian2D.prototype.containData = function (data) {\n    return this.getAxis('x').containData(data[0]) && this.getAxis('y').containData(data[1]);\n  };\n\n  Cartesian2D.prototype.dataToPoint = function (data, reserved, out) {\n    out = out || [];\n    var xVal = data[0];\n    var yVal = data[1];\n\n    if (this._transform && xVal != null && isFinite(xVal) && yVal != null && isFinite(yVal)) {\n      return applyTransform(out, data, this._transform);\n    }\n\n    var xAxis = this.getAxis('x');\n    var yAxis = this.getAxis('y');\n    out[0] = xAxis.toGlobalCoord(xAxis.dataToCoord(xVal));\n    out[1] = yAxis.toGlobalCoord(yAxis.dataToCoord(yVal));\n    return out;\n  };\n\n  Cartesian2D.prototype.clampData = function (data, out) {\n    var xScale = this.getAxis('x').scale;\n    var yScale = this.getAxis('y').scale;\n    var xAxisExtent = xScale.getExtent();\n    var yAxisExtent = yScale.getExtent();\n    var x = xScale.parse(data[0]);\n    var y = yScale.parse(data[1]);\n    out = out || [];\n    out[0] = Math.min(Math.max(Math.min(xAxisExtent[0], xAxisExtent[1]), x), Math.max(xAxisExtent[0], xAxisExtent[1]));\n    out[1] = Math.min(Math.max(Math.min(yAxisExtent[0], yAxisExtent[1]), y), Math.max(yAxisExtent[0], yAxisExtent[1]));\n    return out;\n  };\n\n  Cartesian2D.prototype.pointToData = function (point, out) {\n    out = out || [];\n\n    if (this._invTransform) {\n      return applyTransform(out, point, this._invTransform);\n    }\n\n    var xAxis = this.getAxis('x');\n    var yAxis = this.getAxis('y');\n    out[0] = xAxis.coordToData(xAxis.toLocalCoord(point[0]));\n    out[1] = yAxis.coordToData(yAxis.toLocalCoord(point[1]));\n    return out;\n  };\n\n  Cartesian2D.prototype.getOtherAxis = function (axis) {\n    return this.getAxis(axis.dim === 'x' ? 'y' : 'x');\n  };\n\n  Cartesian2D.prototype.getArea = function () {\n    var xExtent = this.getAxis('x').getGlobalExtent();\n    var yExtent = this.getAxis('y').getGlobalExtent();\n    var x = Math.min(xExtent[0], xExtent[1]);\n    var y = Math.min(yExtent[0], yExtent[1]);\n    var width = Math.max(xExtent[0], xExtent[1]) - x;\n    var height = Math.max(yExtent[0], yExtent[1]) - y;\n    return new BoundingRect(x, y, width, height);\n  };\n\n  return Cartesian2D;\n}(Cartesian);\n\n;\nexport default Cartesian2D;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis';\n\nvar Axis2D = function (_super) {\n  __extends(Axis2D, _super);\n\n  function Axis2D(dim, scale, coordExtent, axisType, position) {\n    var _this = _super.call(this, dim, scale, coordExtent) || this;\n\n    _this.index = 0;\n    _this.type = axisType || 'value';\n    _this.position = position || 'bottom';\n    return _this;\n  }\n\n  Axis2D.prototype.isHorizontal = function () {\n    var position = this.position;\n    return position === 'top' || position === 'bottom';\n  };\n\n  Axis2D.prototype.getGlobalExtent = function (asc) {\n    var ret = this.getExtent();\n    ret[0] = this.toGlobalCoord(ret[0]);\n    ret[1] = this.toGlobalCoord(ret[1]);\n    asc && ret[0] > ret[1] && ret.reverse();\n    return ret;\n  };\n\n  Axis2D.prototype.pointToData = function (point, clamp) {\n    return this.coordToData(this.toLocalCoord(point[this.dim === 'x' ? 0 : 1]), clamp);\n  };\n\n  Axis2D.prototype.setCategorySortInfo = function (info) {\n    if (this.type !== 'category') {\n      return false;\n    }\n\n    this.model.option.categorySortInfo = info;\n    this.scale.setSortInfo(info);\n  };\n\n  return Axis2D;\n}(Axis);\n\nexport default Axis2D;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { SINGLE_REFERRING } from '../../util/model';\nexport function layout(gridModel, axisModel, opt) {\n  opt = opt || {};\n  var grid = gridModel.coordinateSystem;\n  var axis = axisModel.axis;\n  var layout = {};\n  var otherAxisOnZeroOf = axis.getAxesOnZeroOf()[0];\n  var rawAxisPosition = axis.position;\n  var axisPosition = otherAxisOnZeroOf ? 'onZero' : rawAxisPosition;\n  var axisDim = axis.dim;\n  var rect = grid.getRect();\n  var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height];\n  var idx = {\n    left: 0,\n    right: 1,\n    top: 0,\n    bottom: 1,\n    onZero: 2\n  };\n  var axisOffset = axisModel.get('offset') || 0;\n  var posBound = axisDim === 'x' ? [rectBound[2] - axisOffset, rectBound[3] + axisOffset] : [rectBound[0] - axisOffset, rectBound[1] + axisOffset];\n\n  if (otherAxisOnZeroOf) {\n    var onZeroCoord = otherAxisOnZeroOf.toGlobalCoord(otherAxisOnZeroOf.dataToCoord(0));\n    posBound[idx.onZero] = Math.max(Math.min(onZeroCoord, posBound[1]), posBound[0]);\n  }\n\n  layout.position = [axisDim === 'y' ? posBound[idx[axisPosition]] : rectBound[0], axisDim === 'x' ? posBound[idx[axisPosition]] : rectBound[3]];\n  layout.rotation = Math.PI / 2 * (axisDim === 'x' ? 0 : 1);\n  var dirMap = {\n    top: -1,\n    bottom: 1,\n    left: -1,\n    right: 1\n  };\n  layout.labelDirection = layout.tickDirection = layout.nameDirection = dirMap[rawAxisPosition];\n  layout.labelOffset = otherAxisOnZeroOf ? posBound[idx[rawAxisPosition]] - posBound[idx.onZero] : 0;\n\n  if (axisModel.get(['axisTick', 'inside'])) {\n    layout.tickDirection = -layout.tickDirection;\n  }\n\n  if (zrUtil.retrieve(opt.labelInside, axisModel.get(['axisLabel', 'inside']))) {\n    layout.labelDirection = -layout.labelDirection;\n  }\n\n  var labelRotate = axisModel.get(['axisLabel', 'rotate']);\n  layout.labelRotate = axisPosition === 'top' ? -labelRotate : labelRotate;\n  layout.z2 = 1;\n  return layout;\n}\nexport function isCartesian2DSeries(seriesModel) {\n  return seriesModel.get('coordinateSystem') === 'cartesian2d';\n}\nexport function findAxisModels(seriesModel) {\n  var axisModelMap = {\n    xAxisModel: null,\n    yAxisModel: null\n  };\n  zrUtil.each(axisModelMap, function (v, key) {\n    var axisType = key.replace(/Model$/, '');\n    var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!axisModel) {\n        throw new Error(axisType + ' \"' + zrUtil.retrieve3(seriesModel.get(axisType + 'Index'), seriesModel.get(axisType + 'Id'), 0) + '\" not found');\n      }\n    }\n\n    axisModelMap[key] = axisModel;\n  });\n  return axisModelMap;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isObject, each, indexOf, retrieve3 } from 'zrender/lib/core/util';\nimport { getLayoutRect } from '../../util/layout';\nimport { createScaleByModel, ifAxisCrossZero, niceScaleExtent, estimateLabelUnionRect, getDataDimensionsOnAxis } from '../../coord/axisHelper';\nimport Cartesian2D, { cartesian2DDimensions } from './Cartesian2D';\nimport Axis2D from './Axis2D';\nimport { SINGLE_REFERRING } from '../../util/model';\nimport { isCartesian2DSeries, findAxisModels } from './cartesianAxisHelper';\n\nvar Grid = function () {\n  function Grid(gridModel, ecModel, api) {\n    this.type = 'grid';\n    this._coordsMap = {};\n    this._coordsList = [];\n    this._axesMap = {};\n    this._axesList = [];\n    this.axisPointerEnabled = true;\n    this.dimensions = cartesian2DDimensions;\n\n    this._initCartesian(gridModel, ecModel, api);\n\n    this.model = gridModel;\n  }\n\n  Grid.prototype.getRect = function () {\n    return this._rect;\n  };\n\n  Grid.prototype.update = function (ecModel, api) {\n    var axesMap = this._axesMap;\n\n    this._updateScale(ecModel, this.model);\n\n    each(axesMap.x, function (xAxis) {\n      niceScaleExtent(xAxis.scale, xAxis.model);\n    });\n    each(axesMap.y, function (yAxis) {\n      niceScaleExtent(yAxis.scale, yAxis.model);\n    });\n    var onZeroRecords = {};\n    each(axesMap.x, function (xAxis) {\n      fixAxisOnZero(axesMap, 'y', xAxis, onZeroRecords);\n    });\n    each(axesMap.y, function (yAxis) {\n      fixAxisOnZero(axesMap, 'x', yAxis, onZeroRecords);\n    });\n    this.resize(this.model, api);\n  };\n\n  Grid.prototype.resize = function (gridModel, api, ignoreContainLabel) {\n    var boxLayoutParams = gridModel.getBoxLayoutParams();\n    var isContainLabel = !ignoreContainLabel && gridModel.get('containLabel');\n    var gridRect = getLayoutRect(boxLayoutParams, {\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n    this._rect = gridRect;\n    var axesList = this._axesList;\n    adjustAxes();\n\n    if (isContainLabel) {\n      each(axesList, function (axis) {\n        if (!axis.model.get(['axisLabel', 'inside'])) {\n          var labelUnionRect = estimateLabelUnionRect(axis);\n\n          if (labelUnionRect) {\n            var dim = axis.isHorizontal() ? 'height' : 'width';\n            var margin = axis.model.get(['axisLabel', 'margin']);\n            gridRect[dim] -= labelUnionRect[dim] + margin;\n\n            if (axis.position === 'top') {\n              gridRect.y += labelUnionRect.height + margin;\n            } else if (axis.position === 'left') {\n              gridRect.x += labelUnionRect.width + margin;\n            }\n          }\n        }\n      });\n      adjustAxes();\n    }\n\n    each(this._coordsList, function (coord) {\n      coord.calcAffineTransform();\n    });\n\n    function adjustAxes() {\n      each(axesList, function (axis) {\n        var isHorizontal = axis.isHorizontal();\n        var extent = isHorizontal ? [0, gridRect.width] : [0, gridRect.height];\n        var idx = axis.inverse ? 1 : 0;\n        axis.setExtent(extent[idx], extent[1 - idx]);\n        updateAxisTransform(axis, isHorizontal ? gridRect.x : gridRect.y);\n      });\n    }\n  };\n\n  Grid.prototype.getAxis = function (dim, axisIndex) {\n    var axesMapOnDim = this._axesMap[dim];\n\n    if (axesMapOnDim != null) {\n      return axesMapOnDim[axisIndex || 0];\n    }\n  };\n\n  Grid.prototype.getAxes = function () {\n    return this._axesList.slice();\n  };\n\n  Grid.prototype.getCartesian = function (xAxisIndex, yAxisIndex) {\n    if (xAxisIndex != null && yAxisIndex != null) {\n      var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\n      return this._coordsMap[key];\n    }\n\n    if (isObject(xAxisIndex)) {\n      yAxisIndex = xAxisIndex.yAxisIndex;\n      xAxisIndex = xAxisIndex.xAxisIndex;\n    }\n\n    for (var i = 0, coordList = this._coordsList; i < coordList.length; i++) {\n      if (coordList[i].getAxis('x').index === xAxisIndex || coordList[i].getAxis('y').index === yAxisIndex) {\n        return coordList[i];\n      }\n    }\n  };\n\n  Grid.prototype.getCartesians = function () {\n    return this._coordsList.slice();\n  };\n\n  Grid.prototype.convertToPixel = function (ecModel, finder, value) {\n    var target = this._findConvertTarget(finder);\n\n    return target.cartesian ? target.cartesian.dataToPoint(value) : target.axis ? target.axis.toGlobalCoord(target.axis.dataToCoord(value)) : null;\n  };\n\n  Grid.prototype.convertFromPixel = function (ecModel, finder, value) {\n    var target = this._findConvertTarget(finder);\n\n    return target.cartesian ? target.cartesian.pointToData(value) : target.axis ? target.axis.coordToData(target.axis.toLocalCoord(value)) : null;\n  };\n\n  Grid.prototype._findConvertTarget = function (finder) {\n    var seriesModel = finder.seriesModel;\n    var xAxisModel = finder.xAxisModel || seriesModel && seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0];\n    var yAxisModel = finder.yAxisModel || seriesModel && seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0];\n    var gridModel = finder.gridModel;\n    var coordsList = this._coordsList;\n    var cartesian;\n    var axis;\n\n    if (seriesModel) {\n      cartesian = seriesModel.coordinateSystem;\n      indexOf(coordsList, cartesian) < 0 && (cartesian = null);\n    } else if (xAxisModel && yAxisModel) {\n      cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n    } else if (xAxisModel) {\n      axis = this.getAxis('x', xAxisModel.componentIndex);\n    } else if (yAxisModel) {\n      axis = this.getAxis('y', yAxisModel.componentIndex);\n    } else if (gridModel) {\n      var grid = gridModel.coordinateSystem;\n\n      if (grid === this) {\n        cartesian = this._coordsList[0];\n      }\n    }\n\n    return {\n      cartesian: cartesian,\n      axis: axis\n    };\n  };\n\n  Grid.prototype.containPoint = function (point) {\n    var coord = this._coordsList[0];\n\n    if (coord) {\n      return coord.containPoint(point);\n    }\n  };\n\n  Grid.prototype._initCartesian = function (gridModel, ecModel, api) {\n    var _this = this;\n\n    var grid = this;\n    var axisPositionUsed = {\n      left: false,\n      right: false,\n      top: false,\n      bottom: false\n    };\n    var axesMap = {\n      x: {},\n      y: {}\n    };\n    var axesCount = {\n      x: 0,\n      y: 0\n    };\n    ecModel.eachComponent('xAxis', createAxisCreator('x'), this);\n    ecModel.eachComponent('yAxis', createAxisCreator('y'), this);\n\n    if (!axesCount.x || !axesCount.y) {\n      this._axesMap = {};\n      this._axesList = [];\n      return;\n    }\n\n    this._axesMap = axesMap;\n    each(axesMap.x, function (xAxis, xAxisIndex) {\n      each(axesMap.y, function (yAxis, yAxisIndex) {\n        var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\n        var cartesian = new Cartesian2D(key);\n        cartesian.master = _this;\n        cartesian.model = gridModel;\n        _this._coordsMap[key] = cartesian;\n\n        _this._coordsList.push(cartesian);\n\n        cartesian.addAxis(xAxis);\n        cartesian.addAxis(yAxis);\n      });\n    });\n\n    function createAxisCreator(dimName) {\n      return function (axisModel, idx) {\n        if (!isAxisUsedInTheGrid(axisModel, gridModel)) {\n          return;\n        }\n\n        var axisPosition = axisModel.get('position');\n\n        if (dimName === 'x') {\n          if (axisPosition !== 'top' && axisPosition !== 'bottom') {\n            axisPosition = axisPositionUsed.bottom ? 'top' : 'bottom';\n          }\n        } else {\n          if (axisPosition !== 'left' && axisPosition !== 'right') {\n            axisPosition = axisPositionUsed.left ? 'right' : 'left';\n          }\n        }\n\n        axisPositionUsed[axisPosition] = true;\n        var axis = new Axis2D(dimName, createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisPosition);\n        var isCategory = axis.type === 'category';\n        axis.onBand = isCategory && axisModel.get('boundaryGap');\n        axis.inverse = axisModel.get('inverse');\n        axisModel.axis = axis;\n        axis.model = axisModel;\n        axis.grid = grid;\n        axis.index = idx;\n\n        grid._axesList.push(axis);\n\n        axesMap[dimName][idx] = axis;\n        axesCount[dimName]++;\n      };\n    }\n  };\n\n  Grid.prototype._updateScale = function (ecModel, gridModel) {\n    each(this._axesList, function (axis) {\n      axis.scale.setExtent(Infinity, -Infinity);\n\n      if (axis.type === 'category') {\n        var categorySortInfo = axis.model.get('categorySortInfo');\n        axis.scale.setSortInfo(categorySortInfo);\n      }\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      if (isCartesian2DSeries(seriesModel)) {\n        var axesModelMap = findAxisModels(seriesModel);\n        var xAxisModel = axesModelMap.xAxisModel;\n        var yAxisModel = axesModelMap.yAxisModel;\n\n        if (!isAxisUsedInTheGrid(xAxisModel, gridModel) || !isAxisUsedInTheGrid(yAxisModel, gridModel)) {\n          return;\n        }\n\n        var cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n        var data = seriesModel.getData();\n        var xAxis = cartesian.getAxis('x');\n        var yAxis = cartesian.getAxis('y');\n\n        if (data.type === 'list') {\n          unionExtent(data, xAxis);\n          unionExtent(data, yAxis);\n        }\n      }\n    }, this);\n\n    function unionExtent(data, axis) {\n      each(getDataDimensionsOnAxis(data, axis.dim), function (dim) {\n        axis.scale.unionExtentFromData(data, dim);\n      });\n    }\n  };\n\n  Grid.prototype.getTooltipAxes = function (dim) {\n    var baseAxes = [];\n    var otherAxes = [];\n    each(this.getCartesians(), function (cartesian) {\n      var baseAxis = dim != null && dim !== 'auto' ? cartesian.getAxis(dim) : cartesian.getBaseAxis();\n      var otherAxis = cartesian.getOtherAxis(baseAxis);\n      indexOf(baseAxes, baseAxis) < 0 && baseAxes.push(baseAxis);\n      indexOf(otherAxes, otherAxis) < 0 && otherAxes.push(otherAxis);\n    });\n    return {\n      baseAxes: baseAxes,\n      otherAxes: otherAxes\n    };\n  };\n\n  Grid.create = function (ecModel, api) {\n    var grids = [];\n    ecModel.eachComponent('grid', function (gridModel, idx) {\n      var grid = new Grid(gridModel, ecModel, api);\n      grid.name = 'grid_' + idx;\n      grid.resize(gridModel, api, true);\n      gridModel.coordinateSystem = grid;\n      grids.push(grid);\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      if (!isCartesian2DSeries(seriesModel)) {\n        return;\n      }\n\n      var axesModelMap = findAxisModels(seriesModel);\n      var xAxisModel = axesModelMap.xAxisModel;\n      var yAxisModel = axesModelMap.yAxisModel;\n      var gridModel = xAxisModel.getCoordSysModel();\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (!gridModel) {\n          throw new Error('Grid \"' + retrieve3(xAxisModel.get('gridIndex'), xAxisModel.get('gridId'), 0) + '\" not found');\n        }\n\n        if (xAxisModel.getCoordSysModel() !== yAxisModel.getCoordSysModel()) {\n          throw new Error('xAxis and yAxis must use the same grid');\n        }\n      }\n\n      var grid = gridModel.coordinateSystem;\n      seriesModel.coordinateSystem = grid.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n    });\n    return grids;\n  };\n\n  Grid.dimensions = cartesian2DDimensions;\n  return Grid;\n}();\n\nfunction isAxisUsedInTheGrid(axisModel, gridModel) {\n  return axisModel.getCoordSysModel() === gridModel;\n}\n\nfunction fixAxisOnZero(axesMap, otherAxisDim, axis, onZeroRecords) {\n  axis.getAxesOnZeroOf = function () {\n    return otherAxisOnZeroOf ? [otherAxisOnZeroOf] : [];\n  };\n\n  var otherAxes = axesMap[otherAxisDim];\n  var otherAxisOnZeroOf;\n  var axisModel = axis.model;\n  var onZero = axisModel.get(['axisLine', 'onZero']);\n  var onZeroAxisIndex = axisModel.get(['axisLine', 'onZeroAxisIndex']);\n\n  if (!onZero) {\n    return;\n  }\n\n  if (onZeroAxisIndex != null) {\n    if (canOnZeroToAxis(otherAxes[onZeroAxisIndex])) {\n      otherAxisOnZeroOf = otherAxes[onZeroAxisIndex];\n    }\n  } else {\n    for (var idx in otherAxes) {\n      if (otherAxes.hasOwnProperty(idx) && canOnZeroToAxis(otherAxes[idx]) && !onZeroRecords[getOnZeroRecordKey(otherAxes[idx])]) {\n        otherAxisOnZeroOf = otherAxes[idx];\n        break;\n      }\n    }\n  }\n\n  if (otherAxisOnZeroOf) {\n    onZeroRecords[getOnZeroRecordKey(otherAxisOnZeroOf)] = true;\n  }\n\n  function getOnZeroRecordKey(axis) {\n    return axis.dim + '_' + axis.index;\n  }\n}\n\nfunction canOnZeroToAxis(axis) {\n  return axis && axis.type !== 'category' && axis.type !== 'time' && ifAxisCrossZero(axis);\n}\n\nfunction updateAxisTransform(axis, coordBase) {\n  var axisExtent = axis.getExtent();\n  var axisExtentSum = axisExtent[0] + axisExtent[1];\n  axis.toGlobalCoord = axis.dim === 'x' ? function (coord) {\n    return coord + coordBase;\n  } : function (coord) {\n    return axisExtentSum - coord + coordBase;\n  };\n  axis.toLocalCoord = axis.dim === 'x' ? function (coord) {\n    return coord - coordBase;\n  } : function (coord) {\n    return axisExtentSum - coord + coordBase;\n  };\n}\n\nexport default Grid;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { retrieve, defaults, extend, each, isObject } from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { createTextStyle } from '../../label/labelStyle';\nimport Model from '../../model/Model';\nimport { isRadianAroundZero, remRadian } from '../../util/number';\nimport { createSymbol } from '../../util/symbol';\nimport * as matrixUtil from 'zrender/lib/core/matrix';\nimport { applyTransform as v2ApplyTransform } from 'zrender/lib/core/vector';\nimport { shouldShowAllLabels } from '../../coord/axisHelper';\nvar PI = Math.PI;\n\nvar AxisBuilder = function () {\n  function AxisBuilder(axisModel, opt) {\n    this.group = new graphic.Group();\n    this.opt = opt;\n    this.axisModel = axisModel;\n    defaults(opt, {\n      labelOffset: 0,\n      nameDirection: 1,\n      tickDirection: 1,\n      labelDirection: 1,\n      silent: true,\n      handleAutoShown: function () {\n        return true;\n      }\n    });\n    var transformGroup = new graphic.Group({\n      x: opt.position[0],\n      y: opt.position[1],\n      rotation: opt.rotation\n    });\n    transformGroup.updateTransform();\n    this._transformGroup = transformGroup;\n  }\n\n  AxisBuilder.prototype.hasBuilder = function (name) {\n    return !!builders[name];\n  };\n\n  AxisBuilder.prototype.add = function (name) {\n    builders[name](this.opt, this.axisModel, this.group, this._transformGroup);\n  };\n\n  AxisBuilder.prototype.getGroup = function () {\n    return this.group;\n  };\n\n  AxisBuilder.innerTextLayout = function (axisRotation, textRotation, direction) {\n    var rotationDiff = remRadian(textRotation - axisRotation);\n    var textAlign;\n    var textVerticalAlign;\n\n    if (isRadianAroundZero(rotationDiff)) {\n      textVerticalAlign = direction > 0 ? 'top' : 'bottom';\n      textAlign = 'center';\n    } else if (isRadianAroundZero(rotationDiff - PI)) {\n      textVerticalAlign = direction > 0 ? 'bottom' : 'top';\n      textAlign = 'center';\n    } else {\n      textVerticalAlign = 'middle';\n\n      if (rotationDiff > 0 && rotationDiff < PI) {\n        textAlign = direction > 0 ? 'right' : 'left';\n      } else {\n        textAlign = direction > 0 ? 'left' : 'right';\n      }\n    }\n\n    return {\n      rotation: rotationDiff,\n      textAlign: textAlign,\n      textVerticalAlign: textVerticalAlign\n    };\n  };\n\n  AxisBuilder.makeAxisEventDataBase = function (axisModel) {\n    var eventData = {\n      componentType: axisModel.mainType,\n      componentIndex: axisModel.componentIndex\n    };\n    eventData[axisModel.mainType + 'Index'] = axisModel.componentIndex;\n    return eventData;\n  };\n\n  AxisBuilder.isLabelSilent = function (axisModel) {\n    var tooltipOpt = axisModel.get('tooltip');\n    return axisModel.get('silent') || !(axisModel.get('triggerEvent') || tooltipOpt && tooltipOpt.show);\n  };\n\n  return AxisBuilder;\n}();\n\n;\nvar builders = {\n  axisLine: function (opt, axisModel, group, transformGroup) {\n    var shown = axisModel.get(['axisLine', 'show']);\n\n    if (shown === 'auto' && opt.handleAutoShown) {\n      shown = opt.handleAutoShown('axisLine');\n    }\n\n    if (!shown) {\n      return;\n    }\n\n    var extent = axisModel.axis.getExtent();\n    var matrix = transformGroup.transform;\n    var pt1 = [extent[0], 0];\n    var pt2 = [extent[1], 0];\n\n    if (matrix) {\n      v2ApplyTransform(pt1, pt1, matrix);\n      v2ApplyTransform(pt2, pt2, matrix);\n    }\n\n    var lineStyle = extend({\n      lineCap: 'round'\n    }, axisModel.getModel(['axisLine', 'lineStyle']).getLineStyle());\n    var line = new graphic.Line({\n      subPixelOptimize: true,\n      shape: {\n        x1: pt1[0],\n        y1: pt1[1],\n        x2: pt2[0],\n        y2: pt2[1]\n      },\n      style: lineStyle,\n      strokeContainThreshold: opt.strokeContainThreshold || 5,\n      silent: true,\n      z2: 1\n    });\n    line.anid = 'line';\n    group.add(line);\n    var arrows = axisModel.get(['axisLine', 'symbol']);\n    var arrowSize = axisModel.get(['axisLine', 'symbolSize']);\n    var arrowOffset = axisModel.get(['axisLine', 'symbolOffset']) || 0;\n\n    if (typeof arrowOffset === 'number') {\n      arrowOffset = [arrowOffset, arrowOffset];\n    }\n\n    if (arrows != null) {\n      if (typeof arrows === 'string') {\n        arrows = [arrows, arrows];\n      }\n\n      if (typeof arrowSize === 'string' || typeof arrowSize === 'number') {\n        arrowSize = [arrowSize, arrowSize];\n      }\n\n      var symbolWidth_1 = arrowSize[0];\n      var symbolHeight_1 = arrowSize[1];\n      each([{\n        rotate: opt.rotation + Math.PI / 2,\n        offset: arrowOffset[0],\n        r: 0\n      }, {\n        rotate: opt.rotation - Math.PI / 2,\n        offset: arrowOffset[1],\n        r: Math.sqrt((pt1[0] - pt2[0]) * (pt1[0] - pt2[0]) + (pt1[1] - pt2[1]) * (pt1[1] - pt2[1]))\n      }], function (point, index) {\n        if (arrows[index] !== 'none' && arrows[index] != null) {\n          var symbol = createSymbol(arrows[index], -symbolWidth_1 / 2, -symbolHeight_1 / 2, symbolWidth_1, symbolHeight_1, lineStyle.stroke, true);\n          var r = point.r + point.offset;\n          symbol.attr({\n            rotation: point.rotate,\n            x: pt1[0] + r * Math.cos(opt.rotation),\n            y: pt1[1] - r * Math.sin(opt.rotation),\n            silent: true,\n            z2: 11\n          });\n          group.add(symbol);\n        }\n      });\n    }\n  },\n  axisTickLabel: function (opt, axisModel, group, transformGroup) {\n    var ticksEls = buildAxisMajorTicks(group, transformGroup, axisModel, opt);\n    var labelEls = buildAxisLabel(group, transformGroup, axisModel, opt);\n    fixMinMaxLabelShow(axisModel, labelEls, ticksEls);\n    buildAxisMinorTicks(group, transformGroup, axisModel, opt.tickDirection);\n  },\n  axisName: function (opt, axisModel, group, transformGroup) {\n    var name = retrieve(opt.axisName, axisModel.get('name'));\n\n    if (!name) {\n      return;\n    }\n\n    var nameLocation = axisModel.get('nameLocation');\n    var nameDirection = opt.nameDirection;\n    var textStyleModel = axisModel.getModel('nameTextStyle');\n    var gap = axisModel.get('nameGap') || 0;\n    var extent = axisModel.axis.getExtent();\n    var gapSignal = extent[0] > extent[1] ? -1 : 1;\n    var pos = [nameLocation === 'start' ? extent[0] - gapSignal * gap : nameLocation === 'end' ? extent[1] + gapSignal * gap : (extent[0] + extent[1]) / 2, isNameLocationCenter(nameLocation) ? opt.labelOffset + nameDirection * gap : 0];\n    var labelLayout;\n    var nameRotation = axisModel.get('nameRotate');\n\n    if (nameRotation != null) {\n      nameRotation = nameRotation * PI / 180;\n    }\n\n    var axisNameAvailableWidth;\n\n    if (isNameLocationCenter(nameLocation)) {\n      labelLayout = AxisBuilder.innerTextLayout(opt.rotation, nameRotation != null ? nameRotation : opt.rotation, nameDirection);\n    } else {\n      labelLayout = endTextLayout(opt.rotation, nameLocation, nameRotation || 0, extent);\n      axisNameAvailableWidth = opt.axisNameAvailableWidth;\n\n      if (axisNameAvailableWidth != null) {\n        axisNameAvailableWidth = Math.abs(axisNameAvailableWidth / Math.sin(labelLayout.rotation));\n        !isFinite(axisNameAvailableWidth) && (axisNameAvailableWidth = null);\n      }\n    }\n\n    var textFont = textStyleModel.getFont();\n    var truncateOpt = axisModel.get('nameTruncate', true) || {};\n    var ellipsis = truncateOpt.ellipsis;\n    var maxWidth = retrieve(opt.nameTruncateMaxWidth, truncateOpt.maxWidth, axisNameAvailableWidth);\n    var tooltipOpt = axisModel.get('tooltip', true);\n    var mainType = axisModel.mainType;\n    var formatterParams = {\n      componentType: mainType,\n      name: name,\n      $vars: ['name']\n    };\n    formatterParams[mainType + 'Index'] = axisModel.componentIndex;\n    var textEl = new graphic.Text({\n      x: pos[0],\n      y: pos[1],\n      rotation: labelLayout.rotation,\n      silent: AxisBuilder.isLabelSilent(axisModel),\n      style: createTextStyle(textStyleModel, {\n        text: name,\n        font: textFont,\n        overflow: 'truncate',\n        width: maxWidth,\n        ellipsis: ellipsis,\n        fill: textStyleModel.getTextColor() || axisModel.get(['axisLine', 'lineStyle', 'color']),\n        align: textStyleModel.get('align') || labelLayout.textAlign,\n        verticalAlign: textStyleModel.get('verticalAlign') || labelLayout.textVerticalAlign\n      }),\n      z2: 1\n    });\n    textEl.tooltip = tooltipOpt && tooltipOpt.show ? extend({\n      content: name,\n      formatter: function () {\n        return name;\n      },\n      formatterParams: formatterParams\n    }, tooltipOpt) : null;\n    textEl.__fullText = name;\n    textEl.anid = 'name';\n\n    if (axisModel.get('triggerEvent')) {\n      var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\n      eventData.targetType = 'axisName';\n      eventData.name = name;\n      getECData(textEl).eventData = eventData;\n    }\n\n    transformGroup.add(textEl);\n    textEl.updateTransform();\n    group.add(textEl);\n    textEl.decomposeTransform();\n  }\n};\n\nfunction endTextLayout(rotation, textPosition, textRotate, extent) {\n  var rotationDiff = remRadian(textRotate - rotation);\n  var textAlign;\n  var textVerticalAlign;\n  var inverse = extent[0] > extent[1];\n  var onLeft = textPosition === 'start' && !inverse || textPosition !== 'start' && inverse;\n\n  if (isRadianAroundZero(rotationDiff - PI / 2)) {\n    textVerticalAlign = onLeft ? 'bottom' : 'top';\n    textAlign = 'center';\n  } else if (isRadianAroundZero(rotationDiff - PI * 1.5)) {\n    textVerticalAlign = onLeft ? 'top' : 'bottom';\n    textAlign = 'center';\n  } else {\n    textVerticalAlign = 'middle';\n\n    if (rotationDiff < PI * 1.5 && rotationDiff > PI / 2) {\n      textAlign = onLeft ? 'left' : 'right';\n    } else {\n      textAlign = onLeft ? 'right' : 'left';\n    }\n  }\n\n  return {\n    rotation: rotationDiff,\n    textAlign: textAlign,\n    textVerticalAlign: textVerticalAlign\n  };\n}\n\nfunction fixMinMaxLabelShow(axisModel, labelEls, tickEls) {\n  if (shouldShowAllLabels(axisModel.axis)) {\n    return;\n  }\n\n  var showMinLabel = axisModel.get(['axisLabel', 'showMinLabel']);\n  var showMaxLabel = axisModel.get(['axisLabel', 'showMaxLabel']);\n  labelEls = labelEls || [];\n  tickEls = tickEls || [];\n  var firstLabel = labelEls[0];\n  var nextLabel = labelEls[1];\n  var lastLabel = labelEls[labelEls.length - 1];\n  var prevLabel = labelEls[labelEls.length - 2];\n  var firstTick = tickEls[0];\n  var nextTick = tickEls[1];\n  var lastTick = tickEls[tickEls.length - 1];\n  var prevTick = tickEls[tickEls.length - 2];\n\n  if (showMinLabel === false) {\n    ignoreEl(firstLabel);\n    ignoreEl(firstTick);\n  } else if (isTwoLabelOverlapped(firstLabel, nextLabel)) {\n    if (showMinLabel) {\n      ignoreEl(nextLabel);\n      ignoreEl(nextTick);\n    } else {\n      ignoreEl(firstLabel);\n      ignoreEl(firstTick);\n    }\n  }\n\n  if (showMaxLabel === false) {\n    ignoreEl(lastLabel);\n    ignoreEl(lastTick);\n  } else if (isTwoLabelOverlapped(prevLabel, lastLabel)) {\n    if (showMaxLabel) {\n      ignoreEl(prevLabel);\n      ignoreEl(prevTick);\n    } else {\n      ignoreEl(lastLabel);\n      ignoreEl(lastTick);\n    }\n  }\n}\n\nfunction ignoreEl(el) {\n  el && (el.ignore = true);\n}\n\nfunction isTwoLabelOverlapped(current, next) {\n  var firstRect = current && current.getBoundingRect().clone();\n  var nextRect = next && next.getBoundingRect().clone();\n\n  if (!firstRect || !nextRect) {\n    return;\n  }\n\n  var mRotationBack = matrixUtil.identity([]);\n  matrixUtil.rotate(mRotationBack, mRotationBack, -current.rotation);\n  firstRect.applyTransform(matrixUtil.mul([], mRotationBack, current.getLocalTransform()));\n  nextRect.applyTransform(matrixUtil.mul([], mRotationBack, next.getLocalTransform()));\n  return firstRect.intersect(nextRect);\n}\n\nfunction isNameLocationCenter(nameLocation) {\n  return nameLocation === 'middle' || nameLocation === 'center';\n}\n\nfunction createTicks(ticksCoords, tickTransform, tickEndCoord, tickLineStyle, anidPrefix) {\n  var tickEls = [];\n  var pt1 = [];\n  var pt2 = [];\n\n  for (var i = 0; i < ticksCoords.length; i++) {\n    var tickCoord = ticksCoords[i].coord;\n    pt1[0] = tickCoord;\n    pt1[1] = 0;\n    pt2[0] = tickCoord;\n    pt2[1] = tickEndCoord;\n\n    if (tickTransform) {\n      v2ApplyTransform(pt1, pt1, tickTransform);\n      v2ApplyTransform(pt2, pt2, tickTransform);\n    }\n\n    var tickEl = new graphic.Line({\n      subPixelOptimize: true,\n      shape: {\n        x1: pt1[0],\n        y1: pt1[1],\n        x2: pt2[0],\n        y2: pt2[1]\n      },\n      style: tickLineStyle,\n      z2: 2,\n      autoBatch: true,\n      silent: true\n    });\n    tickEl.anid = anidPrefix + '_' + ticksCoords[i].tickValue;\n    tickEls.push(tickEl);\n  }\n\n  return tickEls;\n}\n\nfunction buildAxisMajorTicks(group, transformGroup, axisModel, opt) {\n  var axis = axisModel.axis;\n  var tickModel = axisModel.getModel('axisTick');\n  var shown = tickModel.get('show');\n\n  if (shown === 'auto' && opt.handleAutoShown) {\n    shown = opt.handleAutoShown('axisTick');\n  }\n\n  if (!shown || axis.scale.isBlank()) {\n    return;\n  }\n\n  var lineStyleModel = tickModel.getModel('lineStyle');\n  var tickEndCoord = opt.tickDirection * tickModel.get('length');\n  var ticksCoords = axis.getTicksCoords();\n  var ticksEls = createTicks(ticksCoords, transformGroup.transform, tickEndCoord, defaults(lineStyleModel.getLineStyle(), {\n    stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\n  }), 'ticks');\n\n  for (var i = 0; i < ticksEls.length; i++) {\n    group.add(ticksEls[i]);\n  }\n\n  return ticksEls;\n}\n\nfunction buildAxisMinorTicks(group, transformGroup, axisModel, tickDirection) {\n  var axis = axisModel.axis;\n  var minorTickModel = axisModel.getModel('minorTick');\n\n  if (!minorTickModel.get('show') || axis.scale.isBlank()) {\n    return;\n  }\n\n  var minorTicksCoords = axis.getMinorTicksCoords();\n\n  if (!minorTicksCoords.length) {\n    return;\n  }\n\n  var lineStyleModel = minorTickModel.getModel('lineStyle');\n  var tickEndCoord = tickDirection * minorTickModel.get('length');\n  var minorTickLineStyle = defaults(lineStyleModel.getLineStyle(), defaults(axisModel.getModel('axisTick').getLineStyle(), {\n    stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\n  }));\n\n  for (var i = 0; i < minorTicksCoords.length; i++) {\n    var minorTicksEls = createTicks(minorTicksCoords[i], transformGroup.transform, tickEndCoord, minorTickLineStyle, 'minorticks_' + i);\n\n    for (var k = 0; k < minorTicksEls.length; k++) {\n      group.add(minorTicksEls[k]);\n    }\n  }\n}\n\nfunction buildAxisLabel(group, transformGroup, axisModel, opt) {\n  var axis = axisModel.axis;\n  var show = retrieve(opt.axisLabelShow, axisModel.get(['axisLabel', 'show']));\n\n  if (!show || axis.scale.isBlank()) {\n    return;\n  }\n\n  var labelModel = axisModel.getModel('axisLabel');\n  var labelMargin = labelModel.get('margin');\n  var labels = axis.getViewLabels();\n  var labelRotation = (retrieve(opt.labelRotate, labelModel.get('rotate')) || 0) * PI / 180;\n  var labelLayout = AxisBuilder.innerTextLayout(opt.rotation, labelRotation, opt.labelDirection);\n  var rawCategoryData = axisModel.getCategories && axisModel.getCategories(true);\n  var labelEls = [];\n  var silent = AxisBuilder.isLabelSilent(axisModel);\n  var triggerEvent = axisModel.get('triggerEvent');\n  each(labels, function (labelItem, index) {\n    var tickValue = axis.scale.type === 'ordinal' ? axis.scale.getRawOrdinalNumber(labelItem.tickValue) : labelItem.tickValue;\n    var formattedLabel = labelItem.formattedLabel;\n    var rawLabel = labelItem.rawLabel;\n    var itemLabelModel = labelModel;\n\n    if (rawCategoryData && rawCategoryData[tickValue]) {\n      var rawCategoryItem = rawCategoryData[tickValue];\n\n      if (isObject(rawCategoryItem) && rawCategoryItem.textStyle) {\n        itemLabelModel = new Model(rawCategoryItem.textStyle, labelModel, axisModel.ecModel);\n      }\n    }\n\n    var textColor = itemLabelModel.getTextColor() || axisModel.get(['axisLine', 'lineStyle', 'color']);\n    var tickCoord = axis.dataToCoord(tickValue);\n    var textEl = new graphic.Text({\n      x: tickCoord,\n      y: opt.labelOffset + opt.labelDirection * labelMargin,\n      rotation: labelLayout.rotation,\n      silent: silent,\n      z2: 10,\n      style: createTextStyle(itemLabelModel, {\n        text: formattedLabel,\n        align: itemLabelModel.getShallow('align', true) || labelLayout.textAlign,\n        verticalAlign: itemLabelModel.getShallow('verticalAlign', true) || itemLabelModel.getShallow('baseline', true) || labelLayout.textVerticalAlign,\n        fill: typeof textColor === 'function' ? textColor(axis.type === 'category' ? rawLabel : axis.type === 'value' ? tickValue + '' : tickValue, index) : textColor\n      })\n    });\n    textEl.anid = 'label_' + tickValue;\n\n    if (triggerEvent) {\n      var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\n      eventData.targetType = 'axisLabel';\n      eventData.value = rawLabel;\n      getECData(textEl).eventData = eventData;\n    }\n\n    transformGroup.add(textEl);\n    textEl.updateTransform();\n    labelEls.push(textEl);\n    group.add(textEl);\n    textEl.decomposeTransform();\n  });\n  return labelEls;\n}\n\nexport default AxisBuilder;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Model from '../../model/Model';\nimport { each, curry, clone, defaults, isArray, indexOf } from 'zrender/lib/core/util';\nexport function collect(ecModel, api) {\n  var result = {\n    axesInfo: {},\n    seriesInvolved: false,\n    coordSysAxesInfo: {},\n    coordSysMap: {}\n  };\n  collectAxesInfo(result, ecModel, api);\n  result.seriesInvolved && collectSeriesInfo(result, ecModel);\n  return result;\n}\n\nfunction collectAxesInfo(result, ecModel, api) {\n  var globalTooltipModel = ecModel.getComponent('tooltip');\n  var globalAxisPointerModel = ecModel.getComponent('axisPointer');\n  var linksOption = globalAxisPointerModel.get('link', true) || [];\n  var linkGroups = [];\n  each(api.getCoordinateSystems(), function (coordSys) {\n    if (!coordSys.axisPointerEnabled) {\n      return;\n    }\n\n    var coordSysKey = makeKey(coordSys.model);\n    var axesInfoInCoordSys = result.coordSysAxesInfo[coordSysKey] = {};\n    result.coordSysMap[coordSysKey] = coordSys;\n    var coordSysModel = coordSys.model;\n    var baseTooltipModel = coordSysModel.getModel('tooltip', globalTooltipModel);\n    each(coordSys.getAxes(), curry(saveTooltipAxisInfo, false, null));\n\n    if (coordSys.getTooltipAxes && globalTooltipModel && baseTooltipModel.get('show')) {\n      var triggerAxis = baseTooltipModel.get('trigger') === 'axis';\n      var cross = baseTooltipModel.get(['axisPointer', 'type']) === 'cross';\n      var tooltipAxes = coordSys.getTooltipAxes(baseTooltipModel.get(['axisPointer', 'axis']));\n\n      if (triggerAxis || cross) {\n        each(tooltipAxes.baseAxes, curry(saveTooltipAxisInfo, cross ? 'cross' : true, triggerAxis));\n      }\n\n      if (cross) {\n        each(tooltipAxes.otherAxes, curry(saveTooltipAxisInfo, 'cross', false));\n      }\n    }\n\n    function saveTooltipAxisInfo(fromTooltip, triggerTooltip, axis) {\n      var axisPointerModel = axis.model.getModel('axisPointer', globalAxisPointerModel);\n      var axisPointerShow = axisPointerModel.get('show');\n\n      if (!axisPointerShow || axisPointerShow === 'auto' && !fromTooltip && !isHandleTrigger(axisPointerModel)) {\n        return;\n      }\n\n      if (triggerTooltip == null) {\n        triggerTooltip = axisPointerModel.get('triggerTooltip');\n      }\n\n      axisPointerModel = fromTooltip ? makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) : axisPointerModel;\n      var snap = axisPointerModel.get('snap');\n      var axisKey = makeKey(axis.model);\n      var involveSeries = triggerTooltip || snap || axis.type === 'category';\n      var axisInfo = result.axesInfo[axisKey] = {\n        key: axisKey,\n        axis: axis,\n        coordSys: coordSys,\n        axisPointerModel: axisPointerModel,\n        triggerTooltip: triggerTooltip,\n        involveSeries: involveSeries,\n        snap: snap,\n        useHandle: isHandleTrigger(axisPointerModel),\n        seriesModels: [],\n        linkGroup: null\n      };\n      axesInfoInCoordSys[axisKey] = axisInfo;\n      result.seriesInvolved = result.seriesInvolved || involveSeries;\n      var groupIndex = getLinkGroupIndex(linksOption, axis);\n\n      if (groupIndex != null) {\n        var linkGroup = linkGroups[groupIndex] || (linkGroups[groupIndex] = {\n          axesInfo: {}\n        });\n        linkGroup.axesInfo[axisKey] = axisInfo;\n        linkGroup.mapper = linksOption[groupIndex].mapper;\n        axisInfo.linkGroup = linkGroup;\n      }\n    }\n  });\n}\n\nfunction makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) {\n  var tooltipAxisPointerModel = baseTooltipModel.getModel('axisPointer');\n  var fields = ['type', 'snap', 'lineStyle', 'shadowStyle', 'label', 'animation', 'animationDurationUpdate', 'animationEasingUpdate', 'z'];\n  var volatileOption = {};\n  each(fields, function (field) {\n    volatileOption[field] = clone(tooltipAxisPointerModel.get(field));\n  });\n  volatileOption.snap = axis.type !== 'category' && !!triggerTooltip;\n\n  if (tooltipAxisPointerModel.get('type') === 'cross') {\n    volatileOption.type = 'line';\n  }\n\n  var labelOption = volatileOption.label || (volatileOption.label = {});\n  labelOption.show == null && (labelOption.show = false);\n\n  if (fromTooltip === 'cross') {\n    var tooltipAxisPointerLabelShow = tooltipAxisPointerModel.get(['label', 'show']);\n    labelOption.show = tooltipAxisPointerLabelShow != null ? tooltipAxisPointerLabelShow : true;\n\n    if (!triggerTooltip) {\n      var crossStyle = volatileOption.lineStyle = tooltipAxisPointerModel.get('crossStyle');\n      crossStyle && defaults(labelOption, crossStyle.textStyle);\n    }\n  }\n\n  return axis.model.getModel('axisPointer', new Model(volatileOption, globalAxisPointerModel, ecModel));\n}\n\nfunction collectSeriesInfo(result, ecModel) {\n  ecModel.eachSeries(function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n    var seriesTooltipTrigger = seriesModel.get(['tooltip', 'trigger'], true);\n    var seriesTooltipShow = seriesModel.get(['tooltip', 'show'], true);\n\n    if (!coordSys || seriesTooltipTrigger === 'none' || seriesTooltipTrigger === false || seriesTooltipTrigger === 'item' || seriesTooltipShow === false || seriesModel.get(['axisPointer', 'show'], true) === false) {\n      return;\n    }\n\n    each(result.coordSysAxesInfo[makeKey(coordSys.model)], function (axisInfo) {\n      var axis = axisInfo.axis;\n\n      if (coordSys.getAxis(axis.dim) === axis) {\n        axisInfo.seriesModels.push(seriesModel);\n        axisInfo.seriesDataCount == null && (axisInfo.seriesDataCount = 0);\n        axisInfo.seriesDataCount += seriesModel.getData().count();\n      }\n    });\n  });\n}\n\nfunction getLinkGroupIndex(linksOption, axis) {\n  var axisModel = axis.model;\n  var dim = axis.dim;\n\n  for (var i = 0; i < linksOption.length; i++) {\n    var linkOption = linksOption[i] || {};\n\n    if (checkPropInLink(linkOption[dim + 'AxisId'], axisModel.id) || checkPropInLink(linkOption[dim + 'AxisIndex'], axisModel.componentIndex) || checkPropInLink(linkOption[dim + 'AxisName'], axisModel.name)) {\n      return i;\n    }\n  }\n}\n\nfunction checkPropInLink(linkPropValue, axisPropValue) {\n  return linkPropValue === 'all' || isArray(linkPropValue) && indexOf(linkPropValue, axisPropValue) >= 0 || linkPropValue === axisPropValue;\n}\n\nexport function fixValue(axisModel) {\n  var axisInfo = getAxisInfo(axisModel);\n\n  if (!axisInfo) {\n    return;\n  }\n\n  var axisPointerModel = axisInfo.axisPointerModel;\n  var scale = axisInfo.axis.scale;\n  var option = axisPointerModel.option;\n  var status = axisPointerModel.get('status');\n  var value = axisPointerModel.get('value');\n\n  if (value != null) {\n    value = scale.parse(value);\n  }\n\n  var useHandle = isHandleTrigger(axisPointerModel);\n\n  if (status == null) {\n    option.status = useHandle ? 'show' : 'hide';\n  }\n\n  var extent = scale.getExtent().slice();\n  extent[0] > extent[1] && extent.reverse();\n\n  if (value == null || value > extent[1]) {\n    value = extent[1];\n  }\n\n  if (value < extent[0]) {\n    value = extent[0];\n  }\n\n  option.value = value;\n\n  if (useHandle) {\n    option.status = axisInfo.axis.scale.isBlank() ? 'hide' : 'show';\n  }\n}\nexport function getAxisInfo(axisModel) {\n  var coordSysAxesInfo = (axisModel.ecModel.getComponent('axisPointer') || {}).coordSysAxesInfo;\n  return coordSysAxesInfo && coordSysAxesInfo.axesInfo[makeKey(axisModel)];\n}\nexport function getAxisPointerModel(axisModel) {\n  var axisInfo = getAxisInfo(axisModel);\n  return axisInfo && axisInfo.axisPointerModel;\n}\n\nfunction isHandleTrigger(axisPointerModel) {\n  return !!axisPointerModel.get(['handle', 'show']);\n}\n\nexport function makeKey(model) {\n  return model.type + '||' + model.id;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as axisPointerModelHelper from '../axisPointer/modelHelper';\nimport ComponentView from '../../view/Component';\nvar axisPointerClazz = {};\n\nvar AxisView = function (_super) {\n  __extends(AxisView, _super);\n\n  function AxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = AxisView.type;\n    return _this;\n  }\n\n  AxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n    this.axisPointerClass && axisPointerModelHelper.fixValue(axisModel);\n\n    _super.prototype.render.apply(this, arguments);\n\n    this._doUpdateAxisPointerClass(axisModel, api, true);\n  };\n\n  AxisView.prototype.updateAxisPointer = function (axisModel, ecModel, api, payload) {\n    this._doUpdateAxisPointerClass(axisModel, api, false);\n  };\n\n  AxisView.prototype.remove = function (ecModel, api) {\n    var axisPointer = this._axisPointer;\n    axisPointer && axisPointer.remove(api);\n  };\n\n  AxisView.prototype.dispose = function (ecModel, api) {\n    this._disposeAxisPointer(api);\n\n    _super.prototype.dispose.apply(this, arguments);\n  };\n\n  AxisView.prototype._doUpdateAxisPointerClass = function (axisModel, api, forceRender) {\n    var Clazz = AxisView.getAxisPointerClass(this.axisPointerClass);\n\n    if (!Clazz) {\n      return;\n    }\n\n    var axisPointerModel = axisPointerModelHelper.getAxisPointerModel(axisModel);\n    axisPointerModel ? (this._axisPointer || (this._axisPointer = new Clazz())).render(axisModel, axisPointerModel, api, forceRender) : this._disposeAxisPointer(api);\n  };\n\n  AxisView.prototype._disposeAxisPointer = function (api) {\n    this._axisPointer && this._axisPointer.dispose(api);\n    this._axisPointer = null;\n  };\n\n  AxisView.registerAxisPointerClass = function (type, clazz) {\n    if (process.env.NODE_ENV !== 'production') {\n      if (axisPointerClazz[type]) {\n        throw new Error('axisPointer ' + type + ' exists');\n      }\n    }\n\n    axisPointerClazz[type] = clazz;\n  };\n\n  ;\n\n  AxisView.getAxisPointerClass = function (type) {\n    return type && axisPointerClazz[type];\n  };\n\n  ;\n  AxisView.type = 'axis';\n  return AxisView;\n}(ComponentView);\n\nexport default AxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\nexport function rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel) {\n  var axis = axisModel.axis;\n\n  if (axis.scale.isBlank()) {\n    return;\n  }\n\n  var splitAreaModel = axisModel.getModel('splitArea');\n  var areaStyleModel = splitAreaModel.getModel('areaStyle');\n  var areaColors = areaStyleModel.get('color');\n  var gridRect = gridModel.coordinateSystem.getRect();\n  var ticksCoords = axis.getTicksCoords({\n    tickModel: splitAreaModel,\n    clamp: true\n  });\n\n  if (!ticksCoords.length) {\n    return;\n  }\n\n  var areaColorsLen = areaColors.length;\n  var lastSplitAreaColors = inner(axisView).splitAreaColors;\n  var newSplitAreaColors = zrUtil.createHashMap();\n  var colorIndex = 0;\n\n  if (lastSplitAreaColors) {\n    for (var i = 0; i < ticksCoords.length; i++) {\n      var cIndex = lastSplitAreaColors.get(ticksCoords[i].tickValue);\n\n      if (cIndex != null) {\n        colorIndex = (cIndex + (areaColorsLen - 1) * i) % areaColorsLen;\n        break;\n      }\n    }\n  }\n\n  var prev = axis.toGlobalCoord(ticksCoords[0].coord);\n  var areaStyle = areaStyleModel.getAreaStyle();\n  areaColors = zrUtil.isArray(areaColors) ? areaColors : [areaColors];\n\n  for (var i = 1; i < ticksCoords.length; i++) {\n    var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n    var x = void 0;\n    var y = void 0;\n    var width = void 0;\n    var height = void 0;\n\n    if (axis.isHorizontal()) {\n      x = prev;\n      y = gridRect.y;\n      width = tickCoord - x;\n      height = gridRect.height;\n      prev = x + width;\n    } else {\n      x = gridRect.x;\n      y = prev;\n      width = gridRect.width;\n      height = tickCoord - y;\n      prev = y + height;\n    }\n\n    var tickValue = ticksCoords[i - 1].tickValue;\n    tickValue != null && newSplitAreaColors.set(tickValue, colorIndex);\n    axisGroup.add(new graphic.Rect({\n      anid: tickValue != null ? 'area_' + tickValue : null,\n      shape: {\n        x: x,\n        y: y,\n        width: width,\n        height: height\n      },\n      style: zrUtil.defaults({\n        fill: areaColors[colorIndex]\n      }, areaStyle),\n      autoBatch: true,\n      silent: true\n    }));\n    colorIndex = (colorIndex + 1) % areaColorsLen;\n  }\n\n  inner(axisView).splitAreaColors = newSplitAreaColors;\n}\nexport function rectCoordAxisHandleRemove(axisView) {\n  inner(axisView).splitAreaColors = null;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport AxisBuilder from './AxisBuilder';\nimport AxisView from './AxisView';\nimport * as cartesianAxisHelper from '../../coord/cartesian/cartesianAxisHelper';\nimport { rectCoordAxisBuildSplitArea, rectCoordAxisHandleRemove } from './axisSplitHelper';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitArea', 'splitLine', 'minorSplitLine'];\n\nvar CartesianAxisView = function (_super) {\n  __extends(CartesianAxisView, _super);\n\n  function CartesianAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CartesianAxisView.type;\n    _this.axisPointerClass = 'CartesianAxisPointer';\n    return _this;\n  }\n\n  CartesianAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n    this.group.removeAll();\n    var oldAxisGroup = this._axisGroup;\n    this._axisGroup = new graphic.Group();\n    this.group.add(this._axisGroup);\n\n    if (!axisModel.get('show')) {\n      return;\n    }\n\n    var gridModel = axisModel.getCoordSysModel();\n    var layout = cartesianAxisHelper.layout(gridModel, axisModel);\n    var axisBuilder = new AxisBuilder(axisModel, zrUtil.extend({\n      handleAutoShown: function (elementType) {\n        var cartesians = gridModel.coordinateSystem.getCartesians();\n\n        for (var i = 0; i < cartesians.length; i++) {\n          var otherAxisType = cartesians[i].getOtherAxis(axisModel.axis).type;\n\n          if (otherAxisType === 'value' || otherAxisType === 'log') {\n            return true;\n          }\n        }\n\n        return false;\n      }\n    }, layout));\n    zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n\n    this._axisGroup.add(axisBuilder.getGroup());\n\n    zrUtil.each(selfBuilderAttrs, function (name) {\n      if (axisModel.get([name, 'show'])) {\n        axisElementBuilders[name](this, this._axisGroup, axisModel, gridModel);\n      }\n    }, this);\n    graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel);\n\n    _super.prototype.render.call(this, axisModel, ecModel, api, payload);\n  };\n\n  CartesianAxisView.prototype.remove = function () {\n    rectCoordAxisHandleRemove(this);\n  };\n\n  CartesianAxisView.type = 'cartesianAxis';\n  return CartesianAxisView;\n}(AxisView);\n\nvar axisElementBuilders = {\n  splitLine: function (axisView, axisGroup, axisModel, gridModel) {\n    var axis = axisModel.axis;\n\n    if (axis.scale.isBlank()) {\n      return;\n    }\n\n    var splitLineModel = axisModel.getModel('splitLine');\n    var lineStyleModel = splitLineModel.getModel('lineStyle');\n    var lineColors = lineStyleModel.get('color');\n    lineColors = zrUtil.isArray(lineColors) ? lineColors : [lineColors];\n    var gridRect = gridModel.coordinateSystem.getRect();\n    var isHorizontal = axis.isHorizontal();\n    var lineCount = 0;\n    var ticksCoords = axis.getTicksCoords({\n      tickModel: splitLineModel\n    });\n    var p1 = [];\n    var p2 = [];\n    var lineStyle = lineStyleModel.getLineStyle();\n\n    for (var i = 0; i < ticksCoords.length; i++) {\n      var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n\n      if (isHorizontal) {\n        p1[0] = tickCoord;\n        p1[1] = gridRect.y;\n        p2[0] = tickCoord;\n        p2[1] = gridRect.y + gridRect.height;\n      } else {\n        p1[0] = gridRect.x;\n        p1[1] = tickCoord;\n        p2[0] = gridRect.x + gridRect.width;\n        p2[1] = tickCoord;\n      }\n\n      var colorIndex = lineCount++ % lineColors.length;\n      var tickValue = ticksCoords[i].tickValue;\n      axisGroup.add(new graphic.Line({\n        anid: tickValue != null ? 'line_' + ticksCoords[i].tickValue : null,\n        subPixelOptimize: true,\n        autoBatch: true,\n        shape: {\n          x1: p1[0],\n          y1: p1[1],\n          x2: p2[0],\n          y2: p2[1]\n        },\n        style: zrUtil.defaults({\n          stroke: lineColors[colorIndex]\n        }, lineStyle),\n        silent: true\n      }));\n    }\n  },\n  minorSplitLine: function (axisView, axisGroup, axisModel, gridModel) {\n    var axis = axisModel.axis;\n    var minorSplitLineModel = axisModel.getModel('minorSplitLine');\n    var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\n    var gridRect = gridModel.coordinateSystem.getRect();\n    var isHorizontal = axis.isHorizontal();\n    var minorTicksCoords = axis.getMinorTicksCoords();\n\n    if (!minorTicksCoords.length) {\n      return;\n    }\n\n    var p1 = [];\n    var p2 = [];\n    var lineStyle = lineStyleModel.getLineStyle();\n\n    for (var i = 0; i < minorTicksCoords.length; i++) {\n      for (var k = 0; k < minorTicksCoords[i].length; k++) {\n        var tickCoord = axis.toGlobalCoord(minorTicksCoords[i][k].coord);\n\n        if (isHorizontal) {\n          p1[0] = tickCoord;\n          p1[1] = gridRect.y;\n          p2[0] = tickCoord;\n          p2[1] = gridRect.y + gridRect.height;\n        } else {\n          p1[0] = gridRect.x;\n          p1[1] = tickCoord;\n          p2[0] = gridRect.x + gridRect.width;\n          p2[1] = tickCoord;\n        }\n\n        axisGroup.add(new graphic.Line({\n          anid: 'minor_line_' + minorTicksCoords[i][k].tickValue,\n          subPixelOptimize: true,\n          autoBatch: true,\n          shape: {\n            x1: p1[0],\n            y1: p1[1],\n            x2: p2[0],\n            y2: p2[1]\n          },\n          style: lineStyle,\n          silent: true\n        }));\n      }\n    }\n  },\n  splitArea: function (axisView, axisGroup, axisModel, gridModel) {\n    rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel);\n  }\n};\n\nvar CartesianXAxisView = function (_super) {\n  __extends(CartesianXAxisView, _super);\n\n  function CartesianXAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CartesianXAxisView.type;\n    return _this;\n  }\n\n  CartesianXAxisView.type = 'xAxis';\n  return CartesianXAxisView;\n}(CartesianAxisView);\n\nexport { CartesianXAxisView };\n\nvar CartesianYAxisView = function (_super) {\n  __extends(CartesianYAxisView, _super);\n\n  function CartesianYAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CartesianXAxisView.type;\n    return _this;\n  }\n\n  CartesianYAxisView.type = 'yAxis';\n  return CartesianYAxisView;\n}(CartesianAxisView);\n\nexport { CartesianYAxisView };\nexport default CartesianAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component';\nimport GridModel from '../../coord/cartesian/GridModel';\nimport { Rect } from '../../util/graphic';\nimport { defaults } from 'zrender/lib/core/util';\nimport { CartesianAxisModel } from '../../coord/cartesian/AxisModel';\nimport axisModelCreator from '../../coord/axisModelCreator';\nimport Grid from '../../coord/cartesian/Grid';\nimport { CartesianXAxisView, CartesianYAxisView } from '../axis/CartesianAxisView';\n\nvar GridView = function (_super) {\n  __extends(GridView, _super);\n\n  function GridView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'grid';\n    return _this;\n  }\n\n  GridView.prototype.render = function (gridModel, ecModel) {\n    this.group.removeAll();\n\n    if (gridModel.get('show')) {\n      this.group.add(new Rect({\n        shape: gridModel.coordinateSystem.getRect(),\n        style: defaults({\n          fill: gridModel.get('backgroundColor')\n        }, gridModel.getItemStyle()),\n        silent: true,\n        z2: -1\n      }));\n    }\n  };\n\n  GridView.type = 'grid';\n  return GridView;\n}(ComponentView);\n\nvar extraOption = {\n  offset: 0\n};\nexport function install(registers) {\n  registers.registerComponentView(GridView);\n  registers.registerComponentModel(GridModel);\n  registers.registerCoordinateSystem('cartesian2d', Grid);\n  axisModelCreator(registers, 'x', CartesianAxisModel, extraOption);\n  axisModelCreator(registers, 'y', CartesianAxisModel, extraOption);\n  registers.registerComponentView(CartesianXAxisView);\n  registers.registerComponentView(CartesianYAxisView);\n  registers.registerPreprocessor(function (option) {\n    if (option.xAxis && option.yAxis && !option.grid) {\n      option.grid = {};\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport ScatterSeriesModel from './ScatterSeries';\nimport ScatterView from './ScatterView';\nimport { install as installGridSimple } from '../../component/grid/installSimple';\nimport layoutPoints from '../../layout/points';\nexport function install(registers) {\n  use(installGridSimple);\n  registers.registerSeriesModel(ScatterSeriesModel);\n  registers.registerChartView(ScatterView);\n  registers.registerLayout(layoutPoints('scatter'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport * as axisPointerModelHelper from './modelHelper';\nimport * as eventTool from 'zrender/lib/core/event';\nimport * as throttleUtil from '../../util/throttle';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\nvar clone = zrUtil.clone;\nvar bind = zrUtil.bind;\n\nvar BaseAxisPointer = function () {\n  function BaseAxisPointer() {\n    this._dragging = false;\n    this.animationThreshold = 15;\n  }\n\n  BaseAxisPointer.prototype.render = function (axisModel, axisPointerModel, api, forceRender) {\n    var value = axisPointerModel.get('value');\n    var status = axisPointerModel.get('status');\n    this._axisModel = axisModel;\n    this._axisPointerModel = axisPointerModel;\n    this._api = api;\n\n    if (!forceRender && this._lastValue === value && this._lastStatus === status) {\n      return;\n    }\n\n    this._lastValue = value;\n    this._lastStatus = status;\n    var group = this._group;\n    var handle = this._handle;\n\n    if (!status || status === 'hide') {\n      group && group.hide();\n      handle && handle.hide();\n      return;\n    }\n\n    group && group.show();\n    handle && handle.show();\n    var elOption = {};\n    this.makeElOption(elOption, value, axisModel, axisPointerModel, api);\n    var graphicKey = elOption.graphicKey;\n\n    if (graphicKey !== this._lastGraphicKey) {\n      this.clear(api);\n    }\n\n    this._lastGraphicKey = graphicKey;\n    var moveAnimation = this._moveAnimation = this.determineAnimation(axisModel, axisPointerModel);\n\n    if (!group) {\n      group = this._group = new graphic.Group();\n      this.createPointerEl(group, elOption, axisModel, axisPointerModel);\n      this.createLabelEl(group, elOption, axisModel, axisPointerModel);\n      api.getZr().add(group);\n    } else {\n      var doUpdateProps = zrUtil.curry(updateProps, axisPointerModel, moveAnimation);\n      this.updatePointerEl(group, elOption, doUpdateProps);\n      this.updateLabelEl(group, elOption, doUpdateProps, axisPointerModel);\n    }\n\n    updateMandatoryProps(group, axisPointerModel, true);\n\n    this._renderHandle(value);\n  };\n\n  BaseAxisPointer.prototype.remove = function (api) {\n    this.clear(api);\n  };\n\n  BaseAxisPointer.prototype.dispose = function (api) {\n    this.clear(api);\n  };\n\n  BaseAxisPointer.prototype.determineAnimation = function (axisModel, axisPointerModel) {\n    var animation = axisPointerModel.get('animation');\n    var axis = axisModel.axis;\n    var isCategoryAxis = axis.type === 'category';\n    var useSnap = axisPointerModel.get('snap');\n\n    if (!useSnap && !isCategoryAxis) {\n      return false;\n    }\n\n    if (animation === 'auto' || animation == null) {\n      var animationThreshold = this.animationThreshold;\n\n      if (isCategoryAxis && axis.getBandWidth() > animationThreshold) {\n        return true;\n      }\n\n      if (useSnap) {\n        var seriesDataCount = axisPointerModelHelper.getAxisInfo(axisModel).seriesDataCount;\n        var axisExtent = axis.getExtent();\n        return Math.abs(axisExtent[0] - axisExtent[1]) / seriesDataCount > animationThreshold;\n      }\n\n      return false;\n    }\n\n    return animation === true;\n  };\n\n  BaseAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {};\n\n  BaseAxisPointer.prototype.createPointerEl = function (group, elOption, axisModel, axisPointerModel) {\n    var pointerOption = elOption.pointer;\n\n    if (pointerOption) {\n      var pointerEl = inner(group).pointerEl = new graphic[pointerOption.type](clone(elOption.pointer));\n      group.add(pointerEl);\n    }\n  };\n\n  BaseAxisPointer.prototype.createLabelEl = function (group, elOption, axisModel, axisPointerModel) {\n    if (elOption.label) {\n      var labelEl = inner(group).labelEl = new graphic.Text(clone(elOption.label));\n      group.add(labelEl);\n      updateLabelShowHide(labelEl, axisPointerModel);\n    }\n  };\n\n  BaseAxisPointer.prototype.updatePointerEl = function (group, elOption, updateProps) {\n    var pointerEl = inner(group).pointerEl;\n\n    if (pointerEl && elOption.pointer) {\n      pointerEl.setStyle(elOption.pointer.style);\n      updateProps(pointerEl, {\n        shape: elOption.pointer.shape\n      });\n    }\n  };\n\n  BaseAxisPointer.prototype.updateLabelEl = function (group, elOption, updateProps, axisPointerModel) {\n    var labelEl = inner(group).labelEl;\n\n    if (labelEl) {\n      labelEl.setStyle(elOption.label.style);\n      updateProps(labelEl, {\n        x: elOption.label.x,\n        y: elOption.label.y\n      });\n      updateLabelShowHide(labelEl, axisPointerModel);\n    }\n  };\n\n  BaseAxisPointer.prototype._renderHandle = function (value) {\n    if (this._dragging || !this.updateHandleTransform) {\n      return;\n    }\n\n    var axisPointerModel = this._axisPointerModel;\n\n    var zr = this._api.getZr();\n\n    var handle = this._handle;\n    var handleModel = axisPointerModel.getModel('handle');\n    var status = axisPointerModel.get('status');\n\n    if (!handleModel.get('show') || !status || status === 'hide') {\n      handle && zr.remove(handle);\n      this._handle = null;\n      return;\n    }\n\n    var isInit;\n\n    if (!this._handle) {\n      isInit = true;\n      handle = this._handle = graphic.createIcon(handleModel.get('icon'), {\n        cursor: 'move',\n        draggable: true,\n        onmousemove: function (e) {\n          eventTool.stop(e.event);\n        },\n        onmousedown: bind(this._onHandleDragMove, this, 0, 0),\n        drift: bind(this._onHandleDragMove, this),\n        ondragend: bind(this._onHandleDragEnd, this)\n      });\n      zr.add(handle);\n    }\n\n    updateMandatoryProps(handle, axisPointerModel, false);\n    handle.setStyle(handleModel.getItemStyle(null, ['color', 'borderColor', 'borderWidth', 'opacity', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY']));\n    var handleSize = handleModel.get('size');\n\n    if (!zrUtil.isArray(handleSize)) {\n      handleSize = [handleSize, handleSize];\n    }\n\n    handle.scaleX = handleSize[0] / 2;\n    handle.scaleY = handleSize[1] / 2;\n    throttleUtil.createOrUpdate(this, '_doDispatchAxisPointer', handleModel.get('throttle') || 0, 'fixRate');\n\n    this._moveHandleToValue(value, isInit);\n  };\n\n  BaseAxisPointer.prototype._moveHandleToValue = function (value, isInit) {\n    updateProps(this._axisPointerModel, !isInit && this._moveAnimation, this._handle, getHandleTransProps(this.getHandleTransform(value, this._axisModel, this._axisPointerModel)));\n  };\n\n  BaseAxisPointer.prototype._onHandleDragMove = function (dx, dy) {\n    var handle = this._handle;\n\n    if (!handle) {\n      return;\n    }\n\n    this._dragging = true;\n    var trans = this.updateHandleTransform(getHandleTransProps(handle), [dx, dy], this._axisModel, this._axisPointerModel);\n    this._payloadInfo = trans;\n    handle.stopAnimation();\n    handle.attr(getHandleTransProps(trans));\n    inner(handle).lastProp = null;\n\n    this._doDispatchAxisPointer();\n  };\n\n  BaseAxisPointer.prototype._doDispatchAxisPointer = function () {\n    var handle = this._handle;\n\n    if (!handle) {\n      return;\n    }\n\n    var payloadInfo = this._payloadInfo;\n    var axisModel = this._axisModel;\n\n    this._api.dispatchAction({\n      type: 'updateAxisPointer',\n      x: payloadInfo.cursorPoint[0],\n      y: payloadInfo.cursorPoint[1],\n      tooltipOption: payloadInfo.tooltipOption,\n      axesInfo: [{\n        axisDim: axisModel.axis.dim,\n        axisIndex: axisModel.componentIndex\n      }]\n    });\n  };\n\n  BaseAxisPointer.prototype._onHandleDragEnd = function () {\n    this._dragging = false;\n    var handle = this._handle;\n\n    if (!handle) {\n      return;\n    }\n\n    var value = this._axisPointerModel.get('value');\n\n    this._moveHandleToValue(value);\n\n    this._api.dispatchAction({\n      type: 'hideTip'\n    });\n  };\n\n  BaseAxisPointer.prototype.clear = function (api) {\n    this._lastValue = null;\n    this._lastStatus = null;\n    var zr = api.getZr();\n    var group = this._group;\n    var handle = this._handle;\n\n    if (zr && group) {\n      this._lastGraphicKey = null;\n      group && zr.remove(group);\n      handle && zr.remove(handle);\n      this._group = null;\n      this._handle = null;\n      this._payloadInfo = null;\n    }\n  };\n\n  BaseAxisPointer.prototype.doClear = function () {};\n\n  BaseAxisPointer.prototype.buildLabel = function (xy, wh, xDimIndex) {\n    xDimIndex = xDimIndex || 0;\n    return {\n      x: xy[xDimIndex],\n      y: xy[1 - xDimIndex],\n      width: wh[xDimIndex],\n      height: wh[1 - xDimIndex]\n    };\n  };\n\n  return BaseAxisPointer;\n}();\n\nfunction updateProps(animationModel, moveAnimation, el, props) {\n  if (!propsEqual(inner(el).lastProp, props)) {\n    inner(el).lastProp = props;\n    moveAnimation ? graphic.updateProps(el, props, animationModel) : (el.stopAnimation(), el.attr(props));\n  }\n}\n\nfunction propsEqual(lastProps, newProps) {\n  if (zrUtil.isObject(lastProps) && zrUtil.isObject(newProps)) {\n    var equals_1 = true;\n    zrUtil.each(newProps, function (item, key) {\n      equals_1 = equals_1 && propsEqual(lastProps[key], item);\n    });\n    return !!equals_1;\n  } else {\n    return lastProps === newProps;\n  }\n}\n\nfunction updateLabelShowHide(labelEl, axisPointerModel) {\n  labelEl[axisPointerModel.get(['label', 'show']) ? 'show' : 'hide']();\n}\n\nfunction getHandleTransProps(trans) {\n  return {\n    x: trans.x || 0,\n    y: trans.y || 0,\n    rotation: trans.rotation || 0\n  };\n}\n\nfunction updateMandatoryProps(group, axisPointerModel, silent) {\n  var z = axisPointerModel.get('z');\n  var zlevel = axisPointerModel.get('zlevel');\n  group && group.traverse(function (el) {\n    if (el.type !== 'group') {\n      z != null && (el.z = z);\n      zlevel != null && (el.zlevel = zlevel);\n      el.silent = silent;\n    }\n  });\n}\n\nexport default BaseAxisPointer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport * as textContain from 'zrender/lib/contain/text';\nimport * as formatUtil from '../../util/format';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport * as axisHelper from '../../coord/axisHelper';\nimport AxisBuilder from '../axis/AxisBuilder';\nimport { createTextStyle } from '../../label/labelStyle';\nexport function buildElStyle(axisPointerModel) {\n  var axisPointerType = axisPointerModel.get('type');\n  var styleModel = axisPointerModel.getModel(axisPointerType + 'Style');\n  var style;\n\n  if (axisPointerType === 'line') {\n    style = styleModel.getLineStyle();\n    style.fill = null;\n  } else if (axisPointerType === 'shadow') {\n    style = styleModel.getAreaStyle();\n    style.stroke = null;\n  }\n\n  return style;\n}\nexport function buildLabelElOption(elOption, axisModel, axisPointerModel, api, labelPos) {\n  var value = axisPointerModel.get('value');\n  var text = getValueLabel(value, axisModel.axis, axisModel.ecModel, axisPointerModel.get('seriesDataIndices'), {\n    precision: axisPointerModel.get(['label', 'precision']),\n    formatter: axisPointerModel.get(['label', 'formatter'])\n  });\n  var labelModel = axisPointerModel.getModel('label');\n  var paddings = formatUtil.normalizeCssArray(labelModel.get('padding') || 0);\n  var font = labelModel.getFont();\n  var textRect = textContain.getBoundingRect(text, font);\n  var position = labelPos.position;\n  var width = textRect.width + paddings[1] + paddings[3];\n  var height = textRect.height + paddings[0] + paddings[2];\n  var align = labelPos.align;\n  align === 'right' && (position[0] -= width);\n  align === 'center' && (position[0] -= width / 2);\n  var verticalAlign = labelPos.verticalAlign;\n  verticalAlign === 'bottom' && (position[1] -= height);\n  verticalAlign === 'middle' && (position[1] -= height / 2);\n  confineInContainer(position, width, height, api);\n  var bgColor = labelModel.get('backgroundColor');\n\n  if (!bgColor || bgColor === 'auto') {\n    bgColor = axisModel.get(['axisLine', 'lineStyle', 'color']);\n  }\n\n  elOption.label = {\n    x: position[0],\n    y: position[1],\n    style: createTextStyle(labelModel, {\n      text: text,\n      font: font,\n      fill: labelModel.getTextColor(),\n      padding: paddings,\n      backgroundColor: bgColor\n    }),\n    z2: 10\n  };\n}\n\nfunction confineInContainer(position, width, height, api) {\n  var viewWidth = api.getWidth();\n  var viewHeight = api.getHeight();\n  position[0] = Math.min(position[0] + width, viewWidth) - width;\n  position[1] = Math.min(position[1] + height, viewHeight) - height;\n  position[0] = Math.max(position[0], 0);\n  position[1] = Math.max(position[1], 0);\n}\n\nexport function getValueLabel(value, axis, ecModel, seriesDataIndices, opt) {\n  value = axis.scale.parse(value);\n  var text = axis.scale.getLabel({\n    value: value\n  }, {\n    precision: opt.precision\n  });\n  var formatter = opt.formatter;\n\n  if (formatter) {\n    var params_1 = {\n      value: axisHelper.getAxisRawValue(axis, {\n        value: value\n      }),\n      axisDimension: axis.dim,\n      axisIndex: axis.index,\n      seriesData: []\n    };\n    zrUtil.each(seriesDataIndices, function (idxItem) {\n      var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\n      var dataIndex = idxItem.dataIndexInside;\n      var dataParams = series && series.getDataParams(dataIndex);\n      dataParams && params_1.seriesData.push(dataParams);\n    });\n\n    if (zrUtil.isString(formatter)) {\n      text = formatter.replace('{value}', text);\n    } else if (zrUtil.isFunction(formatter)) {\n      text = formatter(params_1);\n    }\n  }\n\n  return text;\n}\nexport function getTransformedPosition(axis, value, layoutInfo) {\n  var transform = matrix.create();\n  matrix.rotate(transform, transform, layoutInfo.rotation);\n  matrix.translate(transform, transform, layoutInfo.position);\n  return graphic.applyTransform([axis.dataToCoord(value), (layoutInfo.labelOffset || 0) + (layoutInfo.labelDirection || 1) * (layoutInfo.labelMargin || 0)], transform);\n}\nexport function buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api) {\n  var textLayout = AxisBuilder.innerTextLayout(layoutInfo.rotation, 0, layoutInfo.labelDirection);\n  layoutInfo.labelMargin = axisPointerModel.get(['label', 'margin']);\n  buildLabelElOption(elOption, axisModel, axisPointerModel, api, {\n    position: getTransformedPosition(axisModel.axis, value, layoutInfo),\n    align: textLayout.textAlign,\n    verticalAlign: textLayout.textVerticalAlign\n  });\n}\nexport function makeLineShape(p1, p2, xDimIndex) {\n  xDimIndex = xDimIndex || 0;\n  return {\n    x1: p1[xDimIndex],\n    y1: p1[1 - xDimIndex],\n    x2: p2[xDimIndex],\n    y2: p2[1 - xDimIndex]\n  };\n}\nexport function makeRectShape(xy, wh, xDimIndex) {\n  xDimIndex = xDimIndex || 0;\n  return {\n    x: xy[xDimIndex],\n    y: xy[1 - xDimIndex],\n    width: wh[xDimIndex],\n    height: wh[1 - xDimIndex]\n  };\n}\nexport function makeSectorShape(cx, cy, r0, r, startAngle, endAngle) {\n  return {\n    cx: cx,\n    cy: cy,\n    r0: r0,\n    r: r,\n    startAngle: startAngle,\n    endAngle: endAngle,\n    clockwise: true\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BaseAxisPointer from './BaseAxisPointer';\nimport * as viewHelper from './viewHelper';\nimport * as cartesianAxisHelper from '../../coord/cartesian/cartesianAxisHelper';\n\nvar CartesianAxisPointer = function (_super) {\n  __extends(CartesianAxisPointer, _super);\n\n  function CartesianAxisPointer() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  CartesianAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\n    var axis = axisModel.axis;\n    var grid = axis.grid;\n    var axisPointerType = axisPointerModel.get('type');\n    var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent();\n    var pixelValue = axis.toGlobalCoord(axis.dataToCoord(value, true));\n\n    if (axisPointerType && axisPointerType !== 'none') {\n      var elStyle = viewHelper.buildElStyle(axisPointerModel);\n      var pointerOption = pointerShapeBuilder[axisPointerType](axis, pixelValue, otherExtent);\n      pointerOption.style = elStyle;\n      elOption.graphicKey = pointerOption.type;\n      elOption.pointer = pointerOption;\n    }\n\n    var layoutInfo = cartesianAxisHelper.layout(grid.model, axisModel);\n    viewHelper.buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api);\n  };\n\n  CartesianAxisPointer.prototype.getHandleTransform = function (value, axisModel, axisPointerModel) {\n    var layoutInfo = cartesianAxisHelper.layout(axisModel.axis.grid.model, axisModel, {\n      labelInside: false\n    });\n    layoutInfo.labelMargin = axisPointerModel.get(['handle', 'margin']);\n    var pos = viewHelper.getTransformedPosition(axisModel.axis, value, layoutInfo);\n    return {\n      x: pos[0],\n      y: pos[1],\n      rotation: layoutInfo.rotation + (layoutInfo.labelDirection < 0 ? Math.PI : 0)\n    };\n  };\n\n  CartesianAxisPointer.prototype.updateHandleTransform = function (transform, delta, axisModel, axisPointerModel) {\n    var axis = axisModel.axis;\n    var grid = axis.grid;\n    var axisExtent = axis.getGlobalExtent(true);\n    var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent();\n    var dimIndex = axis.dim === 'x' ? 0 : 1;\n    var currPosition = [transform.x, transform.y];\n    currPosition[dimIndex] += delta[dimIndex];\n    currPosition[dimIndex] = Math.min(axisExtent[1], currPosition[dimIndex]);\n    currPosition[dimIndex] = Math.max(axisExtent[0], currPosition[dimIndex]);\n    var cursorOtherValue = (otherExtent[1] + otherExtent[0]) / 2;\n    var cursorPoint = [cursorOtherValue, cursorOtherValue];\n    cursorPoint[dimIndex] = currPosition[dimIndex];\n    var tooltipOptions = [{\n      verticalAlign: 'middle'\n    }, {\n      align: 'center'\n    }];\n    return {\n      x: currPosition[0],\n      y: currPosition[1],\n      rotation: transform.rotation,\n      cursorPoint: cursorPoint,\n      tooltipOption: tooltipOptions[dimIndex]\n    };\n  };\n\n  return CartesianAxisPointer;\n}(BaseAxisPointer);\n\nfunction getCartesian(grid, axis) {\n  var opt = {};\n  opt[axis.dim + 'AxisIndex'] = axis.index;\n  return grid.getCartesian(opt);\n}\n\nvar pointerShapeBuilder = {\n  line: function (axis, pixelValue, otherExtent) {\n    var targetShape = viewHelper.makeLineShape([pixelValue, otherExtent[0]], [pixelValue, otherExtent[1]], getAxisDimIndex(axis));\n    return {\n      type: 'Line',\n      subPixelOptimize: true,\n      shape: targetShape\n    };\n  },\n  shadow: function (axis, pixelValue, otherExtent) {\n    var bandWidth = Math.max(1, axis.getBandWidth());\n    var span = otherExtent[1] - otherExtent[0];\n    return {\n      type: 'Rect',\n      shape: viewHelper.makeRectShape([pixelValue - bandWidth / 2, otherExtent[0]], [bandWidth, span], getAxisDimIndex(axis))\n    };\n  }\n};\n\nfunction getAxisDimIndex(axis) {\n  return axis.dim === 'x' ? 0 : 1;\n}\n\nexport default CartesianAxisPointer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\n\nvar AxisPointerModel = function (_super) {\n  __extends(AxisPointerModel, _super);\n\n  function AxisPointerModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = AxisPointerModel.type;\n    return _this;\n  }\n\n  AxisPointerModel.type = 'axisPointer';\n  AxisPointerModel.defaultOption = {\n    show: 'auto',\n    zlevel: 0,\n    z: 50,\n    type: 'line',\n    snap: false,\n    triggerTooltip: true,\n    value: null,\n    status: null,\n    link: [],\n    animation: null,\n    animationDurationUpdate: 200,\n    lineStyle: {\n      color: '#B9BEC9',\n      width: 1,\n      type: 'dashed'\n    },\n    shadowStyle: {\n      color: 'rgba(210,219,238,0.2)'\n    },\n    label: {\n      show: true,\n      formatter: null,\n      precision: 'auto',\n      margin: 3,\n      color: '#fff',\n      padding: [5, 7, 5, 7],\n      backgroundColor: 'auto',\n      borderColor: null,\n      borderWidth: 0,\n      borderRadius: 3\n    },\n    handle: {\n      show: false,\n      icon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z',\n      size: 45,\n      margin: 50,\n      color: '#333',\n      shadowBlur: 3,\n      shadowColor: '#aaa',\n      shadowOffsetX: 0,\n      shadowOffsetY: 2,\n      throttle: 40\n    }\n  };\n  return AxisPointerModel;\n}(ComponentModel);\n\nexport default AxisPointerModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\nvar each = zrUtil.each;\nexport function register(key, api, handler) {\n  if (env.node) {\n    return;\n  }\n\n  var zr = api.getZr();\n  inner(zr).records || (inner(zr).records = {});\n  initGlobalListeners(zr, api);\n  var record = inner(zr).records[key] || (inner(zr).records[key] = {});\n  record.handler = handler;\n}\n\nfunction initGlobalListeners(zr, api) {\n  if (inner(zr).initialized) {\n    return;\n  }\n\n  inner(zr).initialized = true;\n  useHandler('click', zrUtil.curry(doEnter, 'click'));\n  useHandler('mousemove', zrUtil.curry(doEnter, 'mousemove'));\n  useHandler('globalout', onLeave);\n\n  function useHandler(eventType, cb) {\n    zr.on(eventType, function (e) {\n      var dis = makeDispatchAction(api);\n      each(inner(zr).records, function (record) {\n        record && cb(record, e, dis.dispatchAction);\n      });\n      dispatchTooltipFinally(dis.pendings, api);\n    });\n  }\n}\n\nfunction dispatchTooltipFinally(pendings, api) {\n  var showLen = pendings.showTip.length;\n  var hideLen = pendings.hideTip.length;\n  var actuallyPayload;\n\n  if (showLen) {\n    actuallyPayload = pendings.showTip[showLen - 1];\n  } else if (hideLen) {\n    actuallyPayload = pendings.hideTip[hideLen - 1];\n  }\n\n  if (actuallyPayload) {\n    actuallyPayload.dispatchAction = null;\n    api.dispatchAction(actuallyPayload);\n  }\n}\n\nfunction onLeave(record, e, dispatchAction) {\n  record.handler('leave', null, dispatchAction);\n}\n\nfunction doEnter(currTrigger, record, e, dispatchAction) {\n  record.handler(currTrigger, e, dispatchAction);\n}\n\nfunction makeDispatchAction(api) {\n  var pendings = {\n    showTip: [],\n    hideTip: []\n  };\n\n  var dispatchAction = function (payload) {\n    var pendingList = pendings[payload.type];\n\n    if (pendingList) {\n      pendingList.push(payload);\n    } else {\n      payload.dispatchAction = dispatchAction;\n      api.dispatchAction(payload);\n    }\n  };\n\n  return {\n    dispatchAction: dispatchAction,\n    pendings: pendings\n  };\n}\n\nexport function unregister(key, api) {\n  if (env.node) {\n    return;\n  }\n\n  var zr = api.getZr();\n  var record = (inner(zr).records || {})[key];\n\n  if (record) {\n    inner(zr).records[key] = null;\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as globalListener from './globalListener';\nimport ComponentView from '../../view/Component';\n\nvar AxisPointerView = function (_super) {\n  __extends(AxisPointerView, _super);\n\n  function AxisPointerView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = AxisPointerView.type;\n    return _this;\n  }\n\n  AxisPointerView.prototype.render = function (globalAxisPointerModel, ecModel, api) {\n    var globalTooltipModel = ecModel.getComponent('tooltip');\n    var triggerOn = globalAxisPointerModel.get('triggerOn') || globalTooltipModel && globalTooltipModel.get('triggerOn') || 'mousemove|click';\n    globalListener.register('axisPointer', api, function (currTrigger, e, dispatchAction) {\n      if (triggerOn !== 'none' && (currTrigger === 'leave' || triggerOn.indexOf(currTrigger) >= 0)) {\n        dispatchAction({\n          type: 'updateAxisPointer',\n          currTrigger: currTrigger,\n          x: e && e.offsetX,\n          y: e && e.offsetY\n        });\n      }\n    });\n  };\n\n  AxisPointerView.prototype.remove = function (ecModel, api) {\n    globalListener.unregister('axisPointer', api);\n  };\n\n  AxisPointerView.prototype.dispose = function (ecModel, api) {\n    globalListener.unregister('axisPointer', api);\n  };\n\n  AxisPointerView.type = 'axisPointer';\n  return AxisPointerView;\n}(ComponentView);\n\nexport default AxisPointerView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nexport default function findPointFromSeries(finder, ecModel) {\n  var point = [];\n  var seriesIndex = finder.seriesIndex;\n  var seriesModel;\n\n  if (seriesIndex == null || !(seriesModel = ecModel.getSeriesByIndex(seriesIndex))) {\n    return {\n      point: []\n    };\n  }\n\n  var data = seriesModel.getData();\n  var dataIndex = modelUtil.queryDataIndex(data, finder);\n\n  if (dataIndex == null || dataIndex < 0 || zrUtil.isArray(dataIndex)) {\n    return {\n      point: []\n    };\n  }\n\n  var el = data.getItemGraphicEl(dataIndex);\n  var coordSys = seriesModel.coordinateSystem;\n\n  if (seriesModel.getTooltipPosition) {\n    point = seriesModel.getTooltipPosition(dataIndex) || [];\n  } else if (coordSys && coordSys.dataToPoint) {\n    if (finder.isStacked) {\n      var baseAxis = coordSys.getBaseAxis();\n      var valueAxis = coordSys.getOtherAxis(baseAxis);\n      var valueAxisDim = valueAxis.dim;\n      var baseAxisDim = baseAxis.dim;\n      var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\n      var baseDim = data.mapDimension(baseAxisDim);\n      var stackedData = [];\n      stackedData[baseDataOffset] = data.get(baseDim, dataIndex);\n      stackedData[1 - baseDataOffset] = data.get(data.getCalculationInfo('stackResultDimension'), dataIndex);\n      point = coordSys.dataToPoint(stackedData) || [];\n    } else {\n      point = coordSys.dataToPoint(data.getValues(zrUtil.map(coordSys.dimensions, function (dim) {\n        return data.mapDimension(dim);\n      }), dataIndex)) || [];\n    }\n  } else if (el) {\n    var rect = el.getBoundingRect().clone();\n    rect.applyTransform(el.transform);\n    point = [rect.x + rect.width / 2, rect.y + rect.height / 2];\n  }\n\n  return {\n    point: point,\n    el: el\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner } from '../../util/model';\nimport * as modelHelper from './modelHelper';\nimport findPointFromSeries from './findPointFromSeries';\nimport { each, curry, bind, extend } from 'zrender/lib/core/util';\nvar inner = makeInner();\nexport default function axisTrigger(payload, ecModel, api) {\n  var currTrigger = payload.currTrigger;\n  var point = [payload.x, payload.y];\n  var finder = payload;\n  var dispatchAction = payload.dispatchAction || bind(api.dispatchAction, api);\n  var coordSysAxesInfo = ecModel.getComponent('axisPointer').coordSysAxesInfo;\n\n  if (!coordSysAxesInfo) {\n    return;\n  }\n\n  if (illegalPoint(point)) {\n    point = findPointFromSeries({\n      seriesIndex: finder.seriesIndex,\n      dataIndex: finder.dataIndex\n    }, ecModel).point;\n  }\n\n  var isIllegalPoint = illegalPoint(point);\n  var inputAxesInfo = finder.axesInfo;\n  var axesInfo = coordSysAxesInfo.axesInfo;\n  var shouldHide = currTrigger === 'leave' || illegalPoint(point);\n  var outputPayload = {};\n  var showValueMap = {};\n  var dataByCoordSys = {\n    list: [],\n    map: {}\n  };\n  var updaters = {\n    showPointer: curry(showPointer, showValueMap),\n    showTooltip: curry(showTooltip, dataByCoordSys)\n  };\n  each(coordSysAxesInfo.coordSysMap, function (coordSys, coordSysKey) {\n    var coordSysContainsPoint = isIllegalPoint || coordSys.containPoint(point);\n    each(coordSysAxesInfo.coordSysAxesInfo[coordSysKey], function (axisInfo, key) {\n      var axis = axisInfo.axis;\n      var inputAxisInfo = findInputAxisInfo(inputAxesInfo, axisInfo);\n\n      if (!shouldHide && coordSysContainsPoint && (!inputAxesInfo || inputAxisInfo)) {\n        var val = inputAxisInfo && inputAxisInfo.value;\n\n        if (val == null && !isIllegalPoint) {\n          val = axis.pointToData(point);\n        }\n\n        val != null && processOnAxis(axisInfo, val, updaters, false, outputPayload);\n      }\n    });\n  });\n  var linkTriggers = {};\n  each(axesInfo, function (tarAxisInfo, tarKey) {\n    var linkGroup = tarAxisInfo.linkGroup;\n\n    if (linkGroup && !showValueMap[tarKey]) {\n      each(linkGroup.axesInfo, function (srcAxisInfo, srcKey) {\n        var srcValItem = showValueMap[srcKey];\n\n        if (srcAxisInfo !== tarAxisInfo && srcValItem) {\n          var val = srcValItem.value;\n          linkGroup.mapper && (val = tarAxisInfo.axis.scale.parse(linkGroup.mapper(val, makeMapperParam(srcAxisInfo), makeMapperParam(tarAxisInfo))));\n          linkTriggers[tarAxisInfo.key] = val;\n        }\n      });\n    }\n  });\n  each(linkTriggers, function (val, tarKey) {\n    processOnAxis(axesInfo[tarKey], val, updaters, true, outputPayload);\n  });\n  updateModelActually(showValueMap, axesInfo, outputPayload);\n  dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction);\n  dispatchHighDownActually(axesInfo, dispatchAction, api);\n  return outputPayload;\n}\n\nfunction processOnAxis(axisInfo, newValue, updaters, noSnap, outputFinder) {\n  var axis = axisInfo.axis;\n\n  if (axis.scale.isBlank() || !axis.containData(newValue)) {\n    return;\n  }\n\n  if (!axisInfo.involveSeries) {\n    updaters.showPointer(axisInfo, newValue);\n    return;\n  }\n\n  var payloadInfo = buildPayloadsBySeries(newValue, axisInfo);\n  var payloadBatch = payloadInfo.payloadBatch;\n  var snapToValue = payloadInfo.snapToValue;\n\n  if (payloadBatch[0] && outputFinder.seriesIndex == null) {\n    extend(outputFinder, payloadBatch[0]);\n  }\n\n  if (!noSnap && axisInfo.snap) {\n    if (axis.containData(snapToValue) && snapToValue != null) {\n      newValue = snapToValue;\n    }\n  }\n\n  updaters.showPointer(axisInfo, newValue, payloadBatch);\n  updaters.showTooltip(axisInfo, payloadInfo, snapToValue);\n}\n\nfunction buildPayloadsBySeries(value, axisInfo) {\n  var axis = axisInfo.axis;\n  var dim = axis.dim;\n  var snapToValue = value;\n  var payloadBatch = [];\n  var minDist = Number.MAX_VALUE;\n  var minDiff = -1;\n  each(axisInfo.seriesModels, function (series, idx) {\n    var dataDim = series.getData().mapDimensionsAll(dim);\n    var seriesNestestValue;\n    var dataIndices;\n\n    if (series.getAxisTooltipData) {\n      var result = series.getAxisTooltipData(dataDim, value, axis);\n      dataIndices = result.dataIndices;\n      seriesNestestValue = result.nestestValue;\n    } else {\n      dataIndices = series.getData().indicesOfNearest(dataDim[0], value, axis.type === 'category' ? 0.5 : null);\n\n      if (!dataIndices.length) {\n        return;\n      }\n\n      seriesNestestValue = series.getData().get(dataDim[0], dataIndices[0]);\n    }\n\n    if (seriesNestestValue == null || !isFinite(seriesNestestValue)) {\n      return;\n    }\n\n    var diff = value - seriesNestestValue;\n    var dist = Math.abs(diff);\n\n    if (dist <= minDist) {\n      if (dist < minDist || diff >= 0 && minDiff < 0) {\n        minDist = dist;\n        minDiff = diff;\n        snapToValue = seriesNestestValue;\n        payloadBatch.length = 0;\n      }\n\n      each(dataIndices, function (dataIndex) {\n        payloadBatch.push({\n          seriesIndex: series.seriesIndex,\n          dataIndexInside: dataIndex,\n          dataIndex: series.getData().getRawIndex(dataIndex)\n        });\n      });\n    }\n  });\n  return {\n    payloadBatch: payloadBatch,\n    snapToValue: snapToValue\n  };\n}\n\nfunction showPointer(showValueMap, axisInfo, value, payloadBatch) {\n  showValueMap[axisInfo.key] = {\n    value: value,\n    payloadBatch: payloadBatch\n  };\n}\n\nfunction showTooltip(dataByCoordSys, axisInfo, payloadInfo, value) {\n  var payloadBatch = payloadInfo.payloadBatch;\n  var axis = axisInfo.axis;\n  var axisModel = axis.model;\n  var axisPointerModel = axisInfo.axisPointerModel;\n\n  if (!axisInfo.triggerTooltip || !payloadBatch.length) {\n    return;\n  }\n\n  var coordSysModel = axisInfo.coordSys.model;\n  var coordSysKey = modelHelper.makeKey(coordSysModel);\n  var coordSysItem = dataByCoordSys.map[coordSysKey];\n\n  if (!coordSysItem) {\n    coordSysItem = dataByCoordSys.map[coordSysKey] = {\n      coordSysId: coordSysModel.id,\n      coordSysIndex: coordSysModel.componentIndex,\n      coordSysType: coordSysModel.type,\n      coordSysMainType: coordSysModel.mainType,\n      dataByAxis: []\n    };\n    dataByCoordSys.list.push(coordSysItem);\n  }\n\n  coordSysItem.dataByAxis.push({\n    axisDim: axis.dim,\n    axisIndex: axisModel.componentIndex,\n    axisType: axisModel.type,\n    axisId: axisModel.id,\n    value: value,\n    valueLabelOpt: {\n      precision: axisPointerModel.get(['label', 'precision']),\n      formatter: axisPointerModel.get(['label', 'formatter'])\n    },\n    seriesDataIndices: payloadBatch.slice()\n  });\n}\n\nfunction updateModelActually(showValueMap, axesInfo, outputPayload) {\n  var outputAxesInfo = outputPayload.axesInfo = [];\n  each(axesInfo, function (axisInfo, key) {\n    var option = axisInfo.axisPointerModel.option;\n    var valItem = showValueMap[key];\n\n    if (valItem) {\n      !axisInfo.useHandle && (option.status = 'show');\n      option.value = valItem.value;\n      option.seriesDataIndices = (valItem.payloadBatch || []).slice();\n    } else {\n      !axisInfo.useHandle && (option.status = 'hide');\n    }\n\n    option.status === 'show' && outputAxesInfo.push({\n      axisDim: axisInfo.axis.dim,\n      axisIndex: axisInfo.axis.model.componentIndex,\n      value: option.value\n    });\n  });\n}\n\nfunction dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction) {\n  if (illegalPoint(point) || !dataByCoordSys.list.length) {\n    dispatchAction({\n      type: 'hideTip'\n    });\n    return;\n  }\n\n  var sampleItem = ((dataByCoordSys.list[0].dataByAxis[0] || {}).seriesDataIndices || [])[0] || {};\n  dispatchAction({\n    type: 'showTip',\n    escapeConnect: true,\n    x: point[0],\n    y: point[1],\n    tooltipOption: payload.tooltipOption,\n    position: payload.position,\n    dataIndexInside: sampleItem.dataIndexInside,\n    dataIndex: sampleItem.dataIndex,\n    seriesIndex: sampleItem.seriesIndex,\n    dataByCoordSys: dataByCoordSys.list\n  });\n}\n\nfunction dispatchHighDownActually(axesInfo, dispatchAction, api) {\n  var zr = api.getZr();\n  var highDownKey = 'axisPointerLastHighlights';\n  var lastHighlights = inner(zr)[highDownKey] || {};\n  var newHighlights = inner(zr)[highDownKey] = {};\n  each(axesInfo, function (axisInfo, key) {\n    var option = axisInfo.axisPointerModel.option;\n    option.status === 'show' && each(option.seriesDataIndices, function (batchItem) {\n      var key = batchItem.seriesIndex + ' | ' + batchItem.dataIndex;\n      newHighlights[key] = batchItem;\n    });\n  });\n  var toHighlight = [];\n  var toDownplay = [];\n  each(lastHighlights, function (batchItem, key) {\n    !newHighlights[key] && toDownplay.push(batchItem);\n  });\n  each(newHighlights, function (batchItem, key) {\n    !lastHighlights[key] && toHighlight.push(batchItem);\n  });\n  toDownplay.length && api.dispatchAction({\n    type: 'downplay',\n    escapeConnect: true,\n    notBlur: true,\n    batch: toDownplay\n  });\n  toHighlight.length && api.dispatchAction({\n    type: 'highlight',\n    escapeConnect: true,\n    notBlur: true,\n    batch: toHighlight\n  });\n}\n\nfunction findInputAxisInfo(inputAxesInfo, axisInfo) {\n  for (var i = 0; i < (inputAxesInfo || []).length; i++) {\n    var inputAxisInfo = inputAxesInfo[i];\n\n    if (axisInfo.axis.dim === inputAxisInfo.axisDim && axisInfo.axis.model.componentIndex === inputAxisInfo.axisIndex) {\n      return inputAxisInfo;\n    }\n  }\n}\n\nfunction makeMapperParam(axisInfo) {\n  var axisModel = axisInfo.axis.model;\n  var item = {};\n  var dim = item.axisDim = axisInfo.axis.dim;\n  item.axisIndex = item[dim + 'AxisIndex'] = axisModel.componentIndex;\n  item.axisName = item[dim + 'AxisName'] = axisModel.name;\n  item.axisId = item[dim + 'AxisId'] = axisModel.id;\n  return item;\n}\n\nfunction illegalPoint(point) {\n  return !point || point[0] == null || isNaN(point[0]) || point[1] == null || isNaN(point[1]);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport AxisView from '../axis/AxisView';\nimport CartesianAxisPointer from './CartesianAxisPointer';\nimport AxisPointerModel from './AxisPointerModel';\nimport AxisPointerView from './AxisPointerView';\nimport { isArray } from 'zrender/lib/core/util';\nimport { collect } from './modelHelper';\nimport axisTrigger from './axisTrigger';\nexport function install(registers) {\n  AxisView.registerAxisPointerClass('CartesianAxisPointer', CartesianAxisPointer);\n  registers.registerComponentModel(AxisPointerModel);\n  registers.registerComponentView(AxisPointerView);\n  registers.registerPreprocessor(function (option) {\n    if (option) {\n      (!option.axisPointer || option.axisPointer.length === 0) && (option.axisPointer = {});\n      var link = option.axisPointer.link;\n\n      if (link && !isArray(link)) {\n        option.axisPointer.link = [link];\n      }\n    }\n  });\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, function (ecModel, api) {\n    ecModel.getComponent('axisPointer').coordSysAxesInfo = collect(ecModel, api);\n  });\n  registers.registerAction({\n    type: 'updateAxisPointer',\n    event: 'updateAxisPointer',\n    update: ':updateAxisPointer'\n  }, axisTrigger);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { install as installSimple } from './installSimple';\nimport { install as installAxisPointer } from '../axisPointer/install';\nimport { use } from '../../extension';\nexport function install(registers) {\n  use(installSimple);\n  use(installAxisPointer);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, hasOwn } from 'zrender/lib/core/util';\nvar deprecatedLogs = {};\nexport function isEC4CompatibleStyle(style, elType, hasOwnTextContentOption, hasOwnTextConfig) {\n  return style && (style.legacy || style.legacy !== false && !hasOwnTextContentOption && !hasOwnTextConfig && elType !== 'tspan' && (elType === 'text' || hasOwn(style, 'text')));\n}\nexport function convertFromEC4CompatibleStyle(hostStyle, elType, isNormal) {\n  var srcStyle = hostStyle;\n  var textConfig;\n  var textContent;\n  var textContentStyle;\n\n  if (elType === 'text') {\n    textContentStyle = srcStyle;\n  } else {\n    textContentStyle = {};\n    hasOwn(srcStyle, 'text') && (textContentStyle.text = srcStyle.text);\n    hasOwn(srcStyle, 'rich') && (textContentStyle.rich = srcStyle.rich);\n    hasOwn(srcStyle, 'textFill') && (textContentStyle.fill = srcStyle.textFill);\n    hasOwn(srcStyle, 'textStroke') && (textContentStyle.stroke = srcStyle.textStroke);\n    textContent = {\n      type: 'text',\n      style: textContentStyle,\n      silent: true\n    };\n    textConfig = {};\n    var hasOwnPos = hasOwn(srcStyle, 'textPosition');\n\n    if (isNormal) {\n      textConfig.position = hasOwnPos ? srcStyle.textPosition : 'inside';\n    } else {\n      hasOwnPos && (textConfig.position = srcStyle.textPosition);\n    }\n\n    hasOwn(srcStyle, 'textPosition') && (textConfig.position = srcStyle.textPosition);\n    hasOwn(srcStyle, 'textOffset') && (textConfig.offset = srcStyle.textOffset);\n    hasOwn(srcStyle, 'textRotation') && (textConfig.rotation = srcStyle.textRotation);\n    hasOwn(srcStyle, 'textDistance') && (textConfig.distance = srcStyle.textDistance);\n  }\n\n  convertEC4CompatibleRichItem(textContentStyle, hostStyle);\n  each(textContentStyle.rich, function (richItem) {\n    convertEC4CompatibleRichItem(richItem, richItem);\n  });\n  return {\n    textConfig: textConfig,\n    textContent: textContent\n  };\n}\n\nfunction convertEC4CompatibleRichItem(out, richItem) {\n  if (!richItem) {\n    return;\n  }\n\n  richItem.font = richItem.textFont || richItem.font;\n  hasOwn(richItem, 'textStrokeWidth') && (out.lineWidth = richItem.textStrokeWidth);\n  hasOwn(richItem, 'textAlign') && (out.align = richItem.textAlign);\n  hasOwn(richItem, 'textVerticalAlign') && (out.verticalAlign = richItem.textVerticalAlign);\n  hasOwn(richItem, 'textLineHeight') && (out.lineHeight = richItem.textLineHeight);\n  hasOwn(richItem, 'textWidth') && (out.width = richItem.textWidth);\n  hasOwn(richItem, 'textHeight') && (out.height = richItem.textHeight);\n  hasOwn(richItem, 'textBackgroundColor') && (out.backgroundColor = richItem.textBackgroundColor);\n  hasOwn(richItem, 'textPadding') && (out.padding = richItem.textPadding);\n  hasOwn(richItem, 'textBorderColor') && (out.borderColor = richItem.textBorderColor);\n  hasOwn(richItem, 'textBorderWidth') && (out.borderWidth = richItem.textBorderWidth);\n  hasOwn(richItem, 'textBorderRadius') && (out.borderRadius = richItem.textBorderRadius);\n  hasOwn(richItem, 'textBoxShadowColor') && (out.shadowColor = richItem.textBoxShadowColor);\n  hasOwn(richItem, 'textBoxShadowBlur') && (out.shadowBlur = richItem.textBoxShadowBlur);\n  hasOwn(richItem, 'textBoxShadowOffsetX') && (out.shadowOffsetX = richItem.textBoxShadowOffsetX);\n  hasOwn(richItem, 'textBoxShadowOffsetY') && (out.shadowOffsetY = richItem.textBoxShadowOffsetY);\n}\n\nexport function convertToEC4StyleForCustomSerise(itemStl, txStl, txCfg) {\n  var out = itemStl;\n  out.textPosition = out.textPosition || txCfg.position || 'inside';\n  txCfg.offset != null && (out.textOffset = txCfg.offset);\n  txCfg.rotation != null && (out.textRotation = txCfg.rotation);\n  txCfg.distance != null && (out.textDistance = txCfg.distance);\n  var isInside = out.textPosition.indexOf('inside') >= 0;\n  var hostFill = itemStl.fill || '#000';\n  convertToEC4RichItem(out, txStl);\n  var textFillNotSet = out.textFill == null;\n\n  if (isInside) {\n    if (textFillNotSet) {\n      out.textFill = txCfg.insideFill || '#fff';\n      !out.textStroke && txCfg.insideStroke && (out.textStroke = txCfg.insideStroke);\n      !out.textStroke && (out.textStroke = hostFill);\n      out.textStrokeWidth == null && (out.textStrokeWidth = 2);\n    }\n  } else {\n    if (textFillNotSet) {\n      out.textFill = txCfg.outsideFill || hostFill;\n    }\n\n    !out.textStroke && txCfg.outsideStroke && (out.textStroke = txCfg.outsideStroke);\n  }\n\n  out.text = txStl.text;\n  out.rich = txStl.rich;\n  each(txStl.rich, function (richItem) {\n    convertToEC4RichItem(richItem, richItem);\n  });\n  return out;\n}\n\nfunction convertToEC4RichItem(out, richItem) {\n  if (!richItem) {\n    return;\n  }\n\n  hasOwn(richItem, 'fill') && (out.textFill = richItem.fill);\n  hasOwn(richItem, 'stroke') && (out.textStroke = richItem.fill);\n  hasOwn(richItem, 'lineWidth') && (out.textStrokeWidth = richItem.lineWidth);\n  hasOwn(richItem, 'font') && (out.font = richItem.font);\n  hasOwn(richItem, 'fontStyle') && (out.fontStyle = richItem.fontStyle);\n  hasOwn(richItem, 'fontWeight') && (out.fontWeight = richItem.fontWeight);\n  hasOwn(richItem, 'fontSize') && (out.fontSize = richItem.fontSize);\n  hasOwn(richItem, 'fontFamily') && (out.fontFamily = richItem.fontFamily);\n  hasOwn(richItem, 'align') && (out.textAlign = richItem.align);\n  hasOwn(richItem, 'verticalAlign') && (out.textVerticalAlign = richItem.verticalAlign);\n  hasOwn(richItem, 'lineHeight') && (out.textLineHeight = richItem.lineHeight);\n  hasOwn(richItem, 'width') && (out.textWidth = richItem.width);\n  hasOwn(richItem, 'height') && (out.textHeight = richItem.height);\n  hasOwn(richItem, 'backgroundColor') && (out.textBackgroundColor = richItem.backgroundColor);\n  hasOwn(richItem, 'padding') && (out.textPadding = richItem.padding);\n  hasOwn(richItem, 'borderColor') && (out.textBorderColor = richItem.borderColor);\n  hasOwn(richItem, 'borderWidth') && (out.textBorderWidth = richItem.borderWidth);\n  hasOwn(richItem, 'borderRadius') && (out.textBorderRadius = richItem.borderRadius);\n  hasOwn(richItem, 'shadowColor') && (out.textBoxShadowColor = richItem.shadowColor);\n  hasOwn(richItem, 'shadowBlur') && (out.textBoxShadowBlur = richItem.shadowBlur);\n  hasOwn(richItem, 'shadowOffsetX') && (out.textBoxShadowOffsetX = richItem.shadowOffsetX);\n  hasOwn(richItem, 'shadowOffsetY') && (out.textBoxShadowOffsetY = richItem.shadowOffsetY);\n  hasOwn(richItem, 'textShadowColor') && (out.textShadowColor = richItem.textShadowColor);\n  hasOwn(richItem, 'textShadowBlur') && (out.textShadowBlur = richItem.textShadowBlur);\n  hasOwn(richItem, 'textShadowOffsetX') && (out.textShadowOffsetX = richItem.textShadowOffsetX);\n  hasOwn(richItem, 'textShadowOffsetY') && (out.textShadowOffsetY = richItem.textShadowOffsetY);\n}\n\nexport function warnDeprecated(deprecated, insteadApproach) {\n  if (process.env.NODE_ENV !== 'production') {\n    var key = deprecated + '^_^' + insteadApproach;\n\n    if (!deprecatedLogs[key]) {\n      console.warn(\"[ECharts] DEPRECATED: \\\"\" + deprecated + \"\\\" has been deprecated. \" + insteadApproach);\n      deprecatedLogs[key] = true;\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nimport * as graphicUtil from '../../util/graphic';\nimport * as layoutUtil from '../../util/layout';\nimport { parsePercent } from '../../util/number';\nimport ComponentModel from '../../model/Component';\nimport ComponentView from '../../view/Component';\nimport { getECData } from '../../util/innerStore';\nimport { isEC4CompatibleStyle, convertFromEC4CompatibleStyle } from '../../util/styleCompat';\nvar TRANSFORM_PROPS = {\n  x: 1,\n  y: 1,\n  scaleX: 1,\n  scaleY: 1,\n  originX: 1,\n  originY: 1,\n  rotation: 1\n};\n;\nvar inner = modelUtil.makeInner();\nvar _nonShapeGraphicElements = {\n  path: null,\n  compoundPath: null,\n  group: graphicUtil.Group,\n  image: graphicUtil.Image,\n  text: graphicUtil.Text\n};\n\nvar preprocessor = function (option) {\n  var graphicOption = option.graphic;\n\n  if (zrUtil.isArray(graphicOption)) {\n    if (!graphicOption[0] || !graphicOption[0].elements) {\n      option.graphic = [{\n        elements: graphicOption\n      }];\n    } else {\n      option.graphic = [option.graphic[0]];\n    }\n  } else if (graphicOption && !graphicOption.elements) {\n    option.graphic = [{\n      elements: [graphicOption]\n    }];\n  }\n};\n\n;\n\nvar GraphicComponentModel = function (_super) {\n  __extends(GraphicComponentModel, _super);\n\n  function GraphicComponentModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GraphicComponentModel.type;\n    return _this;\n  }\n\n  GraphicComponentModel.prototype.mergeOption = function (option, ecModel) {\n    var elements = this.option.elements;\n    this.option.elements = null;\n\n    _super.prototype.mergeOption.call(this, option, ecModel);\n\n    this.option.elements = elements;\n  };\n\n  GraphicComponentModel.prototype.optionUpdated = function (newOption, isInit) {\n    var thisOption = this.option;\n    var newList = (isInit ? thisOption : newOption).elements;\n    var existList = thisOption.elements = isInit ? [] : thisOption.elements;\n    var flattenedList = [];\n\n    this._flatten(newList, flattenedList, null);\n\n    var mappingResult = modelUtil.mappingToExists(existList, flattenedList, 'normalMerge');\n    var elOptionsToUpdate = this._elOptionsToUpdate = [];\n    zrUtil.each(mappingResult, function (resultItem, index) {\n      var newElOption = resultItem.newOption;\n\n      if (process.env.NODE_ENV !== 'production') {\n        zrUtil.assert(zrUtil.isObject(newElOption) || resultItem.existing, 'Empty graphic option definition');\n      }\n\n      if (!newElOption) {\n        return;\n      }\n\n      elOptionsToUpdate.push(newElOption);\n      setKeyInfoToNewElOption(resultItem, newElOption);\n      mergeNewElOptionToExist(existList, index, newElOption);\n      setLayoutInfoToExist(existList[index], newElOption);\n    }, this);\n\n    for (var i = existList.length - 1; i >= 0; i--) {\n      if (existList[i] == null) {\n        existList.splice(i, 1);\n      } else {\n        delete existList[i].$action;\n      }\n    }\n  };\n\n  GraphicComponentModel.prototype._flatten = function (optionList, result, parentOption) {\n    zrUtil.each(optionList, function (option) {\n      if (!option) {\n        return;\n      }\n\n      if (parentOption) {\n        option.parentOption = parentOption;\n      }\n\n      result.push(option);\n      var children = option.children;\n\n      if (option.type === 'group' && children) {\n        this._flatten(children, result, option);\n      }\n\n      delete option.children;\n    }, this);\n  };\n\n  GraphicComponentModel.prototype.useElOptionsToUpdate = function () {\n    var els = this._elOptionsToUpdate;\n    this._elOptionsToUpdate = null;\n    return els;\n  };\n\n  GraphicComponentModel.type = 'graphic';\n  GraphicComponentModel.defaultOption = {\n    elements: []\n  };\n  return GraphicComponentModel;\n}(ComponentModel);\n\nvar GraphicComponentView = function (_super) {\n  __extends(GraphicComponentView, _super);\n\n  function GraphicComponentView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GraphicComponentView.type;\n    return _this;\n  }\n\n  GraphicComponentView.prototype.init = function () {\n    this._elMap = zrUtil.createHashMap();\n  };\n\n  GraphicComponentView.prototype.render = function (graphicModel, ecModel, api) {\n    if (graphicModel !== this._lastGraphicModel) {\n      this._clear();\n    }\n\n    this._lastGraphicModel = graphicModel;\n\n    this._updateElements(graphicModel);\n\n    this._relocate(graphicModel, api);\n  };\n\n  GraphicComponentView.prototype._updateElements = function (graphicModel) {\n    var elOptionsToUpdate = graphicModel.useElOptionsToUpdate();\n\n    if (!elOptionsToUpdate) {\n      return;\n    }\n\n    var elMap = this._elMap;\n    var rootGroup = this.group;\n    zrUtil.each(elOptionsToUpdate, function (elOption) {\n      var id = modelUtil.convertOptionIdName(elOption.id, null);\n      var elExisting = id != null ? elMap.get(id) : null;\n      var parentId = modelUtil.convertOptionIdName(elOption.parentId, null);\n      var targetElParent = parentId != null ? elMap.get(parentId) : rootGroup;\n      var elType = elOption.type;\n      var elOptionStyle = elOption.style;\n\n      if (elType === 'text' && elOptionStyle) {\n        if (elOption.hv && elOption.hv[1]) {\n          elOptionStyle.textVerticalAlign = elOptionStyle.textBaseline = elOptionStyle.verticalAlign = elOptionStyle.align = null;\n        }\n      }\n\n      var textContentOption = elOption.textContent;\n      var textConfig = elOption.textConfig;\n\n      if (elOptionStyle && isEC4CompatibleStyle(elOptionStyle, elType, !!textConfig, !!textContentOption)) {\n        var convertResult = convertFromEC4CompatibleStyle(elOptionStyle, elType, true);\n\n        if (!textConfig && convertResult.textConfig) {\n          textConfig = elOption.textConfig = convertResult.textConfig;\n        }\n\n        if (!textContentOption && convertResult.textContent) {\n          textContentOption = convertResult.textContent;\n        }\n      }\n\n      var elOptionCleaned = getCleanedElOption(elOption);\n\n      if (process.env.NODE_ENV !== 'production') {\n        elExisting && zrUtil.assert(targetElParent === elExisting.parent, 'Changing parent is not supported.');\n      }\n\n      var $action = elOption.$action || 'merge';\n\n      if ($action === 'merge') {\n        elExisting ? elExisting.attr(elOptionCleaned) : createEl(id, targetElParent, elOptionCleaned, elMap);\n      } else if ($action === 'replace') {\n        removeEl(elExisting, elMap);\n        createEl(id, targetElParent, elOptionCleaned, elMap);\n      } else if ($action === 'remove') {\n        removeEl(elExisting, elMap);\n      }\n\n      var el = elMap.get(id);\n\n      if (el && textContentOption) {\n        if ($action === 'merge') {\n          var textContentExisting = el.getTextContent();\n          textContentExisting ? textContentExisting.attr(textContentOption) : el.setTextContent(new graphicUtil.Text(textContentOption));\n        } else if ($action === 'replace') {\n          el.setTextContent(new graphicUtil.Text(textContentOption));\n        }\n      }\n\n      if (el) {\n        var elInner = inner(el);\n        elInner.__ecGraphicWidthOption = elOption.width;\n        elInner.__ecGraphicHeightOption = elOption.height;\n        setEventData(el, graphicModel, elOption);\n      }\n    });\n  };\n\n  GraphicComponentView.prototype._relocate = function (graphicModel, api) {\n    var elOptions = graphicModel.option.elements;\n    var rootGroup = this.group;\n    var elMap = this._elMap;\n    var apiWidth = api.getWidth();\n    var apiHeight = api.getHeight();\n\n    for (var i = 0; i < elOptions.length; i++) {\n      var elOption = elOptions[i];\n      var id = modelUtil.convertOptionIdName(elOption.id, null);\n      var el = id != null ? elMap.get(id) : null;\n\n      if (!el || !el.isGroup) {\n        continue;\n      }\n\n      var parentEl = el.parent;\n      var isParentRoot = parentEl === rootGroup;\n      var elInner = inner(el);\n      var parentElInner = inner(parentEl);\n      elInner.__ecGraphicWidth = parsePercent(elInner.__ecGraphicWidthOption, isParentRoot ? apiWidth : parentElInner.__ecGraphicWidth) || 0;\n      elInner.__ecGraphicHeight = parsePercent(elInner.__ecGraphicHeightOption, isParentRoot ? apiHeight : parentElInner.__ecGraphicHeight) || 0;\n    }\n\n    for (var i = elOptions.length - 1; i >= 0; i--) {\n      var elOption = elOptions[i];\n      var id = modelUtil.convertOptionIdName(elOption.id, null);\n      var el = id != null ? elMap.get(id) : null;\n\n      if (!el) {\n        continue;\n      }\n\n      var parentEl = el.parent;\n      var parentElInner = inner(parentEl);\n      var containerInfo = parentEl === rootGroup ? {\n        width: apiWidth,\n        height: apiHeight\n      } : {\n        width: parentElInner.__ecGraphicWidth,\n        height: parentElInner.__ecGraphicHeight\n      };\n      layoutUtil.positionElement(el, elOption, containerInfo, null, {\n        hv: elOption.hv,\n        boundingMode: elOption.bounding\n      });\n    }\n  };\n\n  GraphicComponentView.prototype._clear = function () {\n    var elMap = this._elMap;\n    elMap.each(function (el) {\n      removeEl(el, elMap);\n    });\n    this._elMap = zrUtil.createHashMap();\n  };\n\n  GraphicComponentView.prototype.dispose = function () {\n    this._clear();\n  };\n\n  GraphicComponentView.type = 'graphic';\n  return GraphicComponentView;\n}(ComponentView);\n\nfunction createEl(id, targetElParent, elOption, elMap) {\n  var graphicType = elOption.type;\n\n  if (process.env.NODE_ENV !== 'production') {\n    zrUtil.assert(graphicType, 'graphic type MUST be set');\n  }\n\n  var Clz = zrUtil.hasOwn(_nonShapeGraphicElements, graphicType) ? _nonShapeGraphicElements[graphicType] : graphicUtil.getShapeClass(graphicType);\n\n  if (process.env.NODE_ENV !== 'production') {\n    zrUtil.assert(Clz, 'graphic type can not be found');\n  }\n\n  var el = new Clz(elOption);\n  targetElParent.add(el);\n  elMap.set(id, el);\n  inner(el).__ecGraphicId = id;\n}\n\nfunction removeEl(elExisting, elMap) {\n  var existElParent = elExisting && elExisting.parent;\n\n  if (existElParent) {\n    elExisting.type === 'group' && elExisting.traverse(function (el) {\n      removeEl(el, elMap);\n    });\n    elMap.removeKey(inner(elExisting).__ecGraphicId);\n    existElParent.remove(elExisting);\n  }\n}\n\nfunction getCleanedElOption(elOption) {\n  elOption = zrUtil.extend({}, elOption);\n  zrUtil.each(['id', 'parentId', '$action', 'hv', 'bounding', 'textContent'].concat(layoutUtil.LOCATION_PARAMS), function (name) {\n    delete elOption[name];\n  });\n  return elOption;\n}\n\nfunction isSetLoc(obj, props) {\n  var isSet;\n  zrUtil.each(props, function (prop) {\n    obj[prop] != null && obj[prop] !== 'auto' && (isSet = true);\n  });\n  return isSet;\n}\n\nfunction setKeyInfoToNewElOption(resultItem, newElOption) {\n  var existElOption = resultItem.existing;\n  newElOption.id = resultItem.keyInfo.id;\n  !newElOption.type && existElOption && (newElOption.type = existElOption.type);\n\n  if (newElOption.parentId == null) {\n    var newElParentOption = newElOption.parentOption;\n\n    if (newElParentOption) {\n      newElOption.parentId = newElParentOption.id;\n    } else if (existElOption) {\n      newElOption.parentId = existElOption.parentId;\n    }\n  }\n\n  newElOption.parentOption = null;\n}\n\nfunction mergeNewElOptionToExist(existList, index, newElOption) {\n  var newElOptCopy = zrUtil.extend({}, newElOption);\n  var existElOption = existList[index];\n  var $action = newElOption.$action || 'merge';\n\n  if ($action === 'merge') {\n    if (existElOption) {\n      if (process.env.NODE_ENV !== 'production') {\n        var newType = newElOption.type;\n        zrUtil.assert(!newType || existElOption.type === newType, 'Please set $action: \"replace\" to change `type`');\n      }\n\n      zrUtil.merge(existElOption, newElOptCopy, true);\n      layoutUtil.mergeLayoutParam(existElOption, newElOptCopy, {\n        ignoreSize: true\n      });\n      layoutUtil.copyLayoutParams(newElOption, existElOption);\n    } else {\n      existList[index] = newElOptCopy;\n    }\n  } else if ($action === 'replace') {\n    existList[index] = newElOptCopy;\n  } else if ($action === 'remove') {\n    existElOption && (existList[index] = null);\n  }\n}\n\nfunction setLayoutInfoToExist(existItem, newElOption) {\n  if (!existItem) {\n    return;\n  }\n\n  existItem.hv = newElOption.hv = [isSetLoc(newElOption, ['left', 'right']), isSetLoc(newElOption, ['top', 'bottom'])];\n\n  if (existItem.type === 'group') {\n    var existingGroupOpt = existItem;\n    var newGroupOpt = newElOption;\n    existingGroupOpt.width == null && (existingGroupOpt.width = newGroupOpt.width = 0);\n    existingGroupOpt.height == null && (existingGroupOpt.height = newGroupOpt.height = 0);\n  }\n}\n\nfunction setEventData(el, graphicModel, elOption) {\n  var eventData = getECData(el).eventData;\n\n  if (!el.silent && !el.ignore && !eventData) {\n    eventData = getECData(el).eventData = {\n      componentType: 'graphic',\n      componentIndex: graphicModel.componentIndex,\n      name: el.name\n    };\n  }\n\n  if (eventData) {\n    eventData.info = elOption.info;\n  }\n}\n\nexport function install(registers) {\n  registers.registerComponentModel(GraphicComponentModel);\n  registers.registerComponentView(GraphicComponentView);\n  registers.registerPreprocessor(preprocessor);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { indexOf, createHashMap, assert } from 'zrender/lib/core/util';\nexport var DATA_ZOOM_AXIS_DIMENSIONS = ['x', 'y', 'radius', 'angle', 'single'];\nvar SERIES_COORDS = ['cartesian2d', 'polar', 'singleAxis'];\nexport function isCoordSupported(seriesModel) {\n  var coordType = seriesModel.get('coordinateSystem');\n  return indexOf(SERIES_COORDS, coordType) >= 0;\n}\nexport function getAxisMainType(axisDim) {\n  if (process.env.NODE_ENV !== 'production') {\n    assert(axisDim);\n  }\n\n  return axisDim + 'Axis';\n}\nexport function getAxisIndexPropName(axisDim) {\n  if (process.env.NODE_ENV !== 'production') {\n    assert(axisDim);\n  }\n\n  return axisDim + 'AxisIndex';\n}\nexport function getAxisIdPropName(axisDim) {\n  if (process.env.NODE_ENV !== 'production') {\n    assert(axisDim);\n  }\n\n  return axisDim + 'AxisId';\n}\nexport function findEffectedDataZooms(ecModel, payload) {\n  var axisRecords = createHashMap();\n  var effectedModels = [];\n  var effectedModelMap = createHashMap();\n  ecModel.eachComponent({\n    mainType: 'dataZoom',\n    query: payload\n  }, function (dataZoomModel) {\n    if (!effectedModelMap.get(dataZoomModel.uid)) {\n      addToEffected(dataZoomModel);\n    }\n  });\n  var foundNewLink;\n\n  do {\n    foundNewLink = false;\n    ecModel.eachComponent('dataZoom', processSingle);\n  } while (foundNewLink);\n\n  function processSingle(dataZoomModel) {\n    if (!effectedModelMap.get(dataZoomModel.uid) && isLinked(dataZoomModel)) {\n      addToEffected(dataZoomModel);\n      foundNewLink = true;\n    }\n  }\n\n  function addToEffected(dataZoom) {\n    effectedModelMap.set(dataZoom.uid, true);\n    effectedModels.push(dataZoom);\n    markAxisControlled(dataZoom);\n  }\n\n  function isLinked(dataZoomModel) {\n    var isLink = false;\n    dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n      var axisIdxArr = axisRecords.get(axisDim);\n\n      if (axisIdxArr && axisIdxArr[axisIndex]) {\n        isLink = true;\n      }\n    });\n    return isLink;\n  }\n\n  function markAxisControlled(dataZoomModel) {\n    dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n      (axisRecords.get(axisDim) || axisRecords.set(axisDim, []))[axisIndex] = true;\n    });\n  }\n\n  return effectedModels;\n}\nexport function collectReferCoordSysModelInfo(dataZoomModel) {\n  var ecModel = dataZoomModel.ecModel;\n  var coordSysInfoWrap = {\n    infoList: [],\n    infoMap: createHashMap()\n  };\n  dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n    var axisModel = ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n\n    if (!axisModel) {\n      return;\n    }\n\n    var coordSysModel = axisModel.getCoordSysModel();\n\n    if (!coordSysModel) {\n      return;\n    }\n\n    var coordSysUid = coordSysModel.uid;\n    var coordSysInfo = coordSysInfoWrap.infoMap.get(coordSysUid);\n\n    if (!coordSysInfo) {\n      coordSysInfo = {\n        model: coordSysModel,\n        axisModels: []\n      };\n      coordSysInfoWrap.infoList.push(coordSysInfo);\n      coordSysInfoWrap.infoMap.set(coordSysUid, coordSysInfo);\n    }\n\n    coordSysInfo.axisModels.push(axisModel);\n  });\n  return coordSysInfoWrap;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { each, createHashMap, merge, assert } from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\nimport { getAxisMainType, DATA_ZOOM_AXIS_DIMENSIONS } from './helper';\nimport { MULTIPLE_REFERRING, SINGLE_REFERRING } from '../../util/model';\n\nvar DataZoomAxisInfo = function () {\n  function DataZoomAxisInfo() {\n    this.indexList = [];\n    this.indexMap = [];\n  }\n\n  DataZoomAxisInfo.prototype.add = function (axisCmptIdx) {\n    if (!this.indexMap[axisCmptIdx]) {\n      this.indexList.push(axisCmptIdx);\n      this.indexMap[axisCmptIdx] = true;\n    }\n  };\n\n  return DataZoomAxisInfo;\n}();\n\nvar DataZoomModel = function (_super) {\n  __extends(DataZoomModel, _super);\n\n  function DataZoomModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = DataZoomModel.type;\n    _this._autoThrottle = true;\n    _this._noTarget = true;\n    _this._rangePropMode = ['percent', 'percent'];\n    return _this;\n  }\n\n  DataZoomModel.prototype.init = function (option, parentModel, ecModel) {\n    var inputRawOption = retrieveRawOption(option);\n    this.settledOption = inputRawOption;\n    this.mergeDefaultAndTheme(option, ecModel);\n\n    this._doInit(inputRawOption);\n  };\n\n  DataZoomModel.prototype.mergeOption = function (newOption) {\n    var inputRawOption = retrieveRawOption(newOption);\n    merge(this.option, newOption, true);\n    merge(this.settledOption, inputRawOption, true);\n\n    this._doInit(inputRawOption);\n  };\n\n  DataZoomModel.prototype._doInit = function (inputRawOption) {\n    var thisOption = this.option;\n\n    this._setDefaultThrottle(inputRawOption);\n\n    this._updateRangeUse(inputRawOption);\n\n    var settledOption = this.settledOption;\n    each([['start', 'startValue'], ['end', 'endValue']], function (names, index) {\n      if (this._rangePropMode[index] === 'value') {\n        thisOption[names[0]] = settledOption[names[0]] = null;\n      }\n    }, this);\n\n    this._resetTarget();\n  };\n\n  DataZoomModel.prototype._resetTarget = function () {\n    var optionOrient = this.get('orient', true);\n    var targetAxisIndexMap = this._targetAxisInfoMap = createHashMap();\n\n    var hasAxisSpecified = this._fillSpecifiedTargetAxis(targetAxisIndexMap);\n\n    if (hasAxisSpecified) {\n      this._orient = optionOrient || this._makeAutoOrientByTargetAxis();\n    } else {\n      this._orient = optionOrient || 'horizontal';\n\n      this._fillAutoTargetAxisByOrient(targetAxisIndexMap, this._orient);\n    }\n\n    this._noTarget = true;\n    targetAxisIndexMap.each(function (axisInfo) {\n      if (axisInfo.indexList.length) {\n        this._noTarget = false;\n      }\n    }, this);\n  };\n\n  DataZoomModel.prototype._fillSpecifiedTargetAxis = function (targetAxisIndexMap) {\n    var hasAxisSpecified = false;\n    each(DATA_ZOOM_AXIS_DIMENSIONS, function (axisDim) {\n      var refering = this.getReferringComponents(getAxisMainType(axisDim), MULTIPLE_REFERRING);\n\n      if (!refering.specified) {\n        return;\n      }\n\n      hasAxisSpecified = true;\n      var axisInfo = new DataZoomAxisInfo();\n      each(refering.models, function (axisModel) {\n        axisInfo.add(axisModel.componentIndex);\n      });\n      targetAxisIndexMap.set(axisDim, axisInfo);\n    }, this);\n    return hasAxisSpecified;\n  };\n\n  DataZoomModel.prototype._fillAutoTargetAxisByOrient = function (targetAxisIndexMap, orient) {\n    var ecModel = this.ecModel;\n    var needAuto = true;\n\n    if (needAuto) {\n      var axisDim = orient === 'vertical' ? 'y' : 'x';\n      var axisModels = ecModel.findComponents({\n        mainType: axisDim + 'Axis'\n      });\n      setParallelAxis(axisModels, axisDim);\n    }\n\n    if (needAuto) {\n      var axisModels = ecModel.findComponents({\n        mainType: 'singleAxis',\n        filter: function (axisModel) {\n          return axisModel.get('orient', true) === orient;\n        }\n      });\n      setParallelAxis(axisModels, 'single');\n    }\n\n    function setParallelAxis(axisModels, axisDim) {\n      var axisModel = axisModels[0];\n\n      if (!axisModel) {\n        return;\n      }\n\n      var axisInfo = new DataZoomAxisInfo();\n      axisInfo.add(axisModel.componentIndex);\n      targetAxisIndexMap.set(axisDim, axisInfo);\n      needAuto = false;\n\n      if (axisDim === 'x' || axisDim === 'y') {\n        var gridModel_1 = axisModel.getReferringComponents('grid', SINGLE_REFERRING).models[0];\n        gridModel_1 && each(axisModels, function (axModel) {\n          if (axisModel.componentIndex !== axModel.componentIndex && gridModel_1 === axModel.getReferringComponents('grid', SINGLE_REFERRING).models[0]) {\n            axisInfo.add(axModel.componentIndex);\n          }\n        });\n      }\n    }\n\n    if (needAuto) {\n      each(DATA_ZOOM_AXIS_DIMENSIONS, function (axisDim) {\n        if (!needAuto) {\n          return;\n        }\n\n        var axisModels = ecModel.findComponents({\n          mainType: getAxisMainType(axisDim),\n          filter: function (axisModel) {\n            return axisModel.get('type', true) === 'category';\n          }\n        });\n\n        if (axisModels[0]) {\n          var axisInfo = new DataZoomAxisInfo();\n          axisInfo.add(axisModels[0].componentIndex);\n          targetAxisIndexMap.set(axisDim, axisInfo);\n          needAuto = false;\n        }\n      }, this);\n    }\n  };\n\n  DataZoomModel.prototype._makeAutoOrientByTargetAxis = function () {\n    var dim;\n    this.eachTargetAxis(function (axisDim) {\n      !dim && (dim = axisDim);\n    }, this);\n    return dim === 'y' ? 'vertical' : 'horizontal';\n  };\n\n  DataZoomModel.prototype._setDefaultThrottle = function (inputRawOption) {\n    if (inputRawOption.hasOwnProperty('throttle')) {\n      this._autoThrottle = false;\n    }\n\n    if (this._autoThrottle) {\n      var globalOption = this.ecModel.option;\n      this.option.throttle = globalOption.animation && globalOption.animationDurationUpdate > 0 ? 100 : 20;\n    }\n  };\n\n  DataZoomModel.prototype._updateRangeUse = function (inputRawOption) {\n    var rangePropMode = this._rangePropMode;\n    var rangeModeInOption = this.get('rangeMode');\n    each([['start', 'startValue'], ['end', 'endValue']], function (names, index) {\n      var percentSpecified = inputRawOption[names[0]] != null;\n      var valueSpecified = inputRawOption[names[1]] != null;\n\n      if (percentSpecified && !valueSpecified) {\n        rangePropMode[index] = 'percent';\n      } else if (!percentSpecified && valueSpecified) {\n        rangePropMode[index] = 'value';\n      } else if (rangeModeInOption) {\n        rangePropMode[index] = rangeModeInOption[index];\n      } else if (percentSpecified) {\n        rangePropMode[index] = 'percent';\n      }\n    });\n  };\n\n  DataZoomModel.prototype.noTarget = function () {\n    return this._noTarget;\n  };\n\n  DataZoomModel.prototype.getFirstTargetAxisModel = function () {\n    var firstAxisModel;\n    this.eachTargetAxis(function (axisDim, axisIndex) {\n      if (firstAxisModel == null) {\n        firstAxisModel = this.ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n      }\n    }, this);\n    return firstAxisModel;\n  };\n\n  DataZoomModel.prototype.eachTargetAxis = function (callback, context) {\n    this._targetAxisInfoMap.each(function (axisInfo, axisDim) {\n      each(axisInfo.indexList, function (axisIndex) {\n        callback.call(context, axisDim, axisIndex);\n      });\n    });\n  };\n\n  DataZoomModel.prototype.getAxisProxy = function (axisDim, axisIndex) {\n    var axisModel = this.getAxisModel(axisDim, axisIndex);\n\n    if (axisModel) {\n      return axisModel.__dzAxisProxy;\n    }\n  };\n\n  DataZoomModel.prototype.getAxisModel = function (axisDim, axisIndex) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(axisDim && axisIndex != null);\n    }\n\n    var axisInfo = this._targetAxisInfoMap.get(axisDim);\n\n    if (axisInfo && axisInfo.indexMap[axisIndex]) {\n      return this.ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n    }\n  };\n\n  DataZoomModel.prototype.setRawRange = function (opt) {\n    var thisOption = this.option;\n    var settledOption = this.settledOption;\n    each([['start', 'startValue'], ['end', 'endValue']], function (names) {\n      if (opt[names[0]] != null || opt[names[1]] != null) {\n        thisOption[names[0]] = settledOption[names[0]] = opt[names[0]];\n        thisOption[names[1]] = settledOption[names[1]] = opt[names[1]];\n      }\n    }, this);\n\n    this._updateRangeUse(opt);\n  };\n\n  DataZoomModel.prototype.setCalculatedRange = function (opt) {\n    var option = this.option;\n    each(['start', 'startValue', 'end', 'endValue'], function (name) {\n      option[name] = opt[name];\n    });\n  };\n\n  DataZoomModel.prototype.getPercentRange = function () {\n    var axisProxy = this.findRepresentativeAxisProxy();\n\n    if (axisProxy) {\n      return axisProxy.getDataPercentWindow();\n    }\n  };\n\n  DataZoomModel.prototype.getValueRange = function (axisDim, axisIndex) {\n    if (axisDim == null && axisIndex == null) {\n      var axisProxy = this.findRepresentativeAxisProxy();\n\n      if (axisProxy) {\n        return axisProxy.getDataValueWindow();\n      }\n    } else {\n      return this.getAxisProxy(axisDim, axisIndex).getDataValueWindow();\n    }\n  };\n\n  DataZoomModel.prototype.findRepresentativeAxisProxy = function (axisModel) {\n    if (axisModel) {\n      return axisModel.__dzAxisProxy;\n    }\n\n    var firstProxy;\n\n    var axisDimList = this._targetAxisInfoMap.keys();\n\n    for (var i = 0; i < axisDimList.length; i++) {\n      var axisDim = axisDimList[i];\n\n      var axisInfo = this._targetAxisInfoMap.get(axisDim);\n\n      for (var j = 0; j < axisInfo.indexList.length; j++) {\n        var proxy = this.getAxisProxy(axisDim, axisInfo.indexList[j]);\n\n        if (proxy.hostedBy(this)) {\n          return proxy;\n        }\n\n        if (!firstProxy) {\n          firstProxy = proxy;\n        }\n      }\n    }\n\n    return firstProxy;\n  };\n\n  DataZoomModel.prototype.getRangePropMode = function () {\n    return this._rangePropMode.slice();\n  };\n\n  DataZoomModel.prototype.getOrient = function () {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(this._orient);\n    }\n\n    return this._orient;\n  };\n\n  DataZoomModel.type = 'dataZoom';\n  DataZoomModel.dependencies = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'series', 'toolbox'];\n  DataZoomModel.defaultOption = {\n    zlevel: 0,\n    z: 4,\n    filterMode: 'filter',\n    start: 0,\n    end: 100\n  };\n  return DataZoomModel;\n}(ComponentModel);\n\nfunction retrieveRawOption(option) {\n  var ret = {};\n  each(['start', 'end', 'startValue', 'endValue', 'throttle'], function (name) {\n    option.hasOwnProperty(name) && (ret[name] = option[name]);\n  });\n  return ret;\n}\n\nexport default DataZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport DataZoomModel from './DataZoomModel';\n\nvar SelectDataZoomModel = function (_super) {\n  __extends(SelectDataZoomModel, _super);\n\n  function SelectDataZoomModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SelectDataZoomModel.type;\n    return _this;\n  }\n\n  SelectDataZoomModel.type = 'dataZoom.select';\n  return SelectDataZoomModel;\n}(DataZoomModel);\n\nexport default SelectDataZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component';\n\nvar DataZoomView = function (_super) {\n  __extends(DataZoomView, _super);\n\n  function DataZoomView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = DataZoomView.type;\n    return _this;\n  }\n\n  DataZoomView.prototype.render = function (dataZoomModel, ecModel, api, payload) {\n    this.dataZoomModel = dataZoomModel;\n    this.ecModel = ecModel;\n    this.api = api;\n  };\n\n  DataZoomView.type = 'dataZoom';\n  return DataZoomView;\n}(ComponentView);\n\nexport default DataZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport DataZoomView from './DataZoomView';\n\nvar SelectDataZoomView = function (_super) {\n  __extends(SelectDataZoomView, _super);\n\n  function SelectDataZoomView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SelectDataZoomView.type;\n    return _this;\n  }\n\n  SelectDataZoomView.type = 'dataZoom.select';\n  return SelectDataZoomView;\n}(DataZoomView);\n\nexport default SelectDataZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function sliderMove(delta, handleEnds, extent, handleIndex, minSpan, maxSpan) {\n  delta = delta || 0;\n  var extentSpan = extent[1] - extent[0];\n\n  if (minSpan != null) {\n    minSpan = restrict(minSpan, [0, extentSpan]);\n  }\n\n  if (maxSpan != null) {\n    maxSpan = Math.max(maxSpan, minSpan != null ? minSpan : 0);\n  }\n\n  if (handleIndex === 'all') {\n    var handleSpan = Math.abs(handleEnds[1] - handleEnds[0]);\n    handleSpan = restrict(handleSpan, [0, extentSpan]);\n    minSpan = maxSpan = restrict(handleSpan, [minSpan, maxSpan]);\n    handleIndex = 0;\n  }\n\n  handleEnds[0] = restrict(handleEnds[0], extent);\n  handleEnds[1] = restrict(handleEnds[1], extent);\n  var originalDistSign = getSpanSign(handleEnds, handleIndex);\n  handleEnds[handleIndex] += delta;\n  var extentMinSpan = minSpan || 0;\n  var realExtent = extent.slice();\n  originalDistSign.sign < 0 ? realExtent[0] += extentMinSpan : realExtent[1] -= extentMinSpan;\n  handleEnds[handleIndex] = restrict(handleEnds[handleIndex], realExtent);\n  var currDistSign;\n  currDistSign = getSpanSign(handleEnds, handleIndex);\n\n  if (minSpan != null && (currDistSign.sign !== originalDistSign.sign || currDistSign.span < minSpan)) {\n    handleEnds[1 - handleIndex] = handleEnds[handleIndex] + originalDistSign.sign * minSpan;\n  }\n\n  currDistSign = getSpanSign(handleEnds, handleIndex);\n\n  if (maxSpan != null && currDistSign.span > maxSpan) {\n    handleEnds[1 - handleIndex] = handleEnds[handleIndex] + currDistSign.sign * maxSpan;\n  }\n\n  return handleEnds;\n}\n\nfunction getSpanSign(handleEnds, handleIndex) {\n  var dist = handleEnds[handleIndex] - handleEnds[1 - handleIndex];\n  return {\n    span: Math.abs(dist),\n    sign: dist > 0 ? -1 : dist < 0 ? 1 : handleIndex ? -1 : 1\n  };\n}\n\nfunction restrict(value, extend) {\n  return Math.min(extend[1] != null ? extend[1] : Infinity, Math.max(extend[0] != null ? extend[0] : -Infinity, value));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as numberUtil from '../../util/number';\nimport sliderMove from '../helper/sliderMove';\nimport { unionAxisExtentFromData } from '../../coord/axisHelper';\nimport { ensureScaleRawExtentInfo } from '../../coord/scaleRawExtentInfo';\nimport { getAxisMainType, isCoordSupported } from './helper';\nimport { SINGLE_REFERRING } from '../../util/model';\nvar each = zrUtil.each;\nvar asc = numberUtil.asc;\n\nvar AxisProxy = function () {\n  function AxisProxy(dimName, axisIndex, dataZoomModel, ecModel) {\n    this._dimName = dimName;\n    this._axisIndex = axisIndex;\n    this.ecModel = ecModel;\n    this._dataZoomModel = dataZoomModel;\n  }\n\n  AxisProxy.prototype.hostedBy = function (dataZoomModel) {\n    return this._dataZoomModel === dataZoomModel;\n  };\n\n  AxisProxy.prototype.getDataValueWindow = function () {\n    return this._valueWindow.slice();\n  };\n\n  AxisProxy.prototype.getDataPercentWindow = function () {\n    return this._percentWindow.slice();\n  };\n\n  AxisProxy.prototype.getTargetSeriesModels = function () {\n    var seriesModels = [];\n    this.ecModel.eachSeries(function (seriesModel) {\n      if (isCoordSupported(seriesModel)) {\n        var axisMainType = getAxisMainType(this._dimName);\n        var axisModel = seriesModel.getReferringComponents(axisMainType, SINGLE_REFERRING).models[0];\n\n        if (axisModel && this._axisIndex === axisModel.componentIndex) {\n          seriesModels.push(seriesModel);\n        }\n      }\n    }, this);\n    return seriesModels;\n  };\n\n  AxisProxy.prototype.getAxisModel = function () {\n    return this.ecModel.getComponent(this._dimName + 'Axis', this._axisIndex);\n  };\n\n  AxisProxy.prototype.getMinMaxSpan = function () {\n    return zrUtil.clone(this._minMaxSpan);\n  };\n\n  AxisProxy.prototype.calculateDataWindow = function (opt) {\n    var dataExtent = this._dataExtent;\n    var axisModel = this.getAxisModel();\n    var scale = axisModel.axis.scale;\n\n    var rangePropMode = this._dataZoomModel.getRangePropMode();\n\n    var percentExtent = [0, 100];\n    var percentWindow = [];\n    var valueWindow = [];\n    var hasPropModeValue;\n    each(['start', 'end'], function (prop, idx) {\n      var boundPercent = opt[prop];\n      var boundValue = opt[prop + 'Value'];\n\n      if (rangePropMode[idx] === 'percent') {\n        boundPercent == null && (boundPercent = percentExtent[idx]);\n        boundValue = scale.parse(numberUtil.linearMap(boundPercent, percentExtent, dataExtent));\n      } else {\n        hasPropModeValue = true;\n        boundValue = boundValue == null ? dataExtent[idx] : scale.parse(boundValue);\n        boundPercent = numberUtil.linearMap(boundValue, dataExtent, percentExtent);\n      }\n\n      valueWindow[idx] = boundValue;\n      percentWindow[idx] = boundPercent;\n    });\n    asc(valueWindow);\n    asc(percentWindow);\n    var spans = this._minMaxSpan;\n    hasPropModeValue ? restrictSet(valueWindow, percentWindow, dataExtent, percentExtent, false) : restrictSet(percentWindow, valueWindow, percentExtent, dataExtent, true);\n\n    function restrictSet(fromWindow, toWindow, fromExtent, toExtent, toValue) {\n      var suffix = toValue ? 'Span' : 'ValueSpan';\n      sliderMove(0, fromWindow, fromExtent, 'all', spans['min' + suffix], spans['max' + suffix]);\n\n      for (var i = 0; i < 2; i++) {\n        toWindow[i] = numberUtil.linearMap(fromWindow[i], fromExtent, toExtent, true);\n        toValue && (toWindow[i] = scale.parse(toWindow[i]));\n      }\n    }\n\n    return {\n      valueWindow: valueWindow,\n      percentWindow: percentWindow\n    };\n  };\n\n  AxisProxy.prototype.reset = function (dataZoomModel) {\n    if (dataZoomModel !== this._dataZoomModel) {\n      return;\n    }\n\n    var targetSeries = this.getTargetSeriesModels();\n    this._dataExtent = calculateDataExtent(this, this._dimName, targetSeries);\n\n    this._updateMinMaxSpan();\n\n    var dataWindow = this.calculateDataWindow(dataZoomModel.settledOption);\n    this._valueWindow = dataWindow.valueWindow;\n    this._percentWindow = dataWindow.percentWindow;\n\n    this._setAxisModel();\n  };\n\n  AxisProxy.prototype.filterData = function (dataZoomModel, api) {\n    if (dataZoomModel !== this._dataZoomModel) {\n      return;\n    }\n\n    var axisDim = this._dimName;\n    var seriesModels = this.getTargetSeriesModels();\n    var filterMode = dataZoomModel.get('filterMode');\n    var valueWindow = this._valueWindow;\n\n    if (filterMode === 'none') {\n      return;\n    }\n\n    each(seriesModels, function (seriesModel) {\n      var seriesData = seriesModel.getData();\n      var dataDims = seriesData.mapDimensionsAll(axisDim);\n\n      if (!dataDims.length) {\n        return;\n      }\n\n      if (filterMode === 'weakFilter') {\n        seriesData.filterSelf(function (dataIndex) {\n          var leftOut;\n          var rightOut;\n          var hasValue;\n\n          for (var i = 0; i < dataDims.length; i++) {\n            var value = seriesData.get(dataDims[i], dataIndex);\n            var thisHasValue = !isNaN(value);\n            var thisLeftOut = value < valueWindow[0];\n            var thisRightOut = value > valueWindow[1];\n\n            if (thisHasValue && !thisLeftOut && !thisRightOut) {\n              return true;\n            }\n\n            thisHasValue && (hasValue = true);\n            thisLeftOut && (leftOut = true);\n            thisRightOut && (rightOut = true);\n          }\n\n          return hasValue && leftOut && rightOut;\n        });\n      } else {\n        each(dataDims, function (dim) {\n          if (filterMode === 'empty') {\n            seriesModel.setData(seriesData = seriesData.map(dim, function (value) {\n              return !isInWindow(value) ? NaN : value;\n            }));\n          } else {\n            var range = {};\n            range[dim] = valueWindow;\n            seriesData.selectRange(range);\n          }\n        });\n      }\n\n      each(dataDims, function (dim) {\n        seriesData.setApproximateExtent(valueWindow, dim);\n      });\n    });\n\n    function isInWindow(value) {\n      return value >= valueWindow[0] && value <= valueWindow[1];\n    }\n  };\n\n  AxisProxy.prototype._updateMinMaxSpan = function () {\n    var minMaxSpan = this._minMaxSpan = {};\n    var dataZoomModel = this._dataZoomModel;\n    var dataExtent = this._dataExtent;\n    each(['min', 'max'], function (minMax) {\n      var percentSpan = dataZoomModel.get(minMax + 'Span');\n      var valueSpan = dataZoomModel.get(minMax + 'ValueSpan');\n      valueSpan != null && (valueSpan = this.getAxisModel().axis.scale.parse(valueSpan));\n\n      if (valueSpan != null) {\n        percentSpan = numberUtil.linearMap(dataExtent[0] + valueSpan, dataExtent, [0, 100], true);\n      } else if (percentSpan != null) {\n        valueSpan = numberUtil.linearMap(percentSpan, [0, 100], dataExtent, true) - dataExtent[0];\n      }\n\n      minMaxSpan[minMax + 'Span'] = percentSpan;\n      minMaxSpan[minMax + 'ValueSpan'] = valueSpan;\n    }, this);\n  };\n\n  AxisProxy.prototype._setAxisModel = function () {\n    var axisModel = this.getAxisModel();\n    var percentWindow = this._percentWindow;\n    var valueWindow = this._valueWindow;\n\n    if (!percentWindow) {\n      return;\n    }\n\n    var precision = numberUtil.getPixelPrecision(valueWindow, [0, 500]);\n    precision = Math.min(precision, 20);\n    var rawExtentInfo = axisModel.axis.scale.rawExtentInfo;\n\n    if (percentWindow[0] !== 0) {\n      rawExtentInfo.setDeterminedMinMax('min', +valueWindow[0].toFixed(precision));\n    }\n\n    if (percentWindow[1] !== 100) {\n      rawExtentInfo.setDeterminedMinMax('max', +valueWindow[1].toFixed(precision));\n    }\n\n    rawExtentInfo.freeze();\n  };\n\n  return AxisProxy;\n}();\n\nfunction calculateDataExtent(axisProxy, axisDim, seriesModels) {\n  var dataExtent = [Infinity, -Infinity];\n  each(seriesModels, function (seriesModel) {\n    unionAxisExtentFromData(dataExtent, seriesModel.getData(), axisDim);\n  });\n  var axisModel = axisProxy.getAxisModel();\n  var rawExtentResult = ensureScaleRawExtentInfo(axisModel.axis.scale, axisModel, dataExtent).calculate();\n  return [rawExtentResult.min, rawExtentResult.max];\n}\n\nexport default AxisProxy;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, each } from 'zrender/lib/core/util';\nimport { getAxisMainType } from './helper';\nimport AxisProxy from './AxisProxy';\nvar dataZoomProcessor = {\n  getTargetSeries: function (ecModel) {\n    function eachAxisModel(cb) {\n      ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n        dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n          var axisModel = ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n          cb(axisDim, axisIndex, axisModel, dataZoomModel);\n        });\n      });\n    }\n\n    eachAxisModel(function (axisDim, axisIndex, axisModel, dataZoomModel) {\n      axisModel.__dzAxisProxy = null;\n    });\n    var proxyList = [];\n    eachAxisModel(function (axisDim, axisIndex, axisModel, dataZoomModel) {\n      if (!axisModel.__dzAxisProxy) {\n        axisModel.__dzAxisProxy = new AxisProxy(axisDim, axisIndex, dataZoomModel, ecModel);\n        proxyList.push(axisModel.__dzAxisProxy);\n      }\n    });\n    var seriesModelMap = createHashMap();\n    each(proxyList, function (axisProxy) {\n      each(axisProxy.getTargetSeriesModels(), function (seriesModel) {\n        seriesModelMap.set(seriesModel.uid, seriesModel);\n      });\n    });\n    return seriesModelMap;\n  },\n  overallReset: function (ecModel, api) {\n    ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n      dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n        dataZoomModel.getAxisProxy(axisDim, axisIndex).reset(dataZoomModel);\n      });\n      dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n        dataZoomModel.getAxisProxy(axisDim, axisIndex).filterData(dataZoomModel, api);\n      });\n    });\n    ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n      var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\n\n      if (axisProxy) {\n        var percentRange = axisProxy.getDataPercentWindow();\n        var valueRange = axisProxy.getDataValueWindow();\n        dataZoomModel.setCalculatedRange({\n          start: percentRange[0],\n          end: percentRange[1],\n          startValue: valueRange[0],\n          endValue: valueRange[1]\n        });\n      }\n    });\n  }\n};\nexport default dataZoomProcessor;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { findEffectedDataZooms } from './helper';\nimport { each } from 'zrender/lib/core/util';\nexport default function installDataZoomAction(registers) {\n  registers.registerAction('dataZoom', function (payload, ecModel) {\n    var effectedModels = findEffectedDataZooms(ecModel, payload);\n    each(effectedModels, function (dataZoomModel) {\n      dataZoomModel.setRawRange({\n        start: payload.start,\n        end: payload.end,\n        startValue: payload.startValue,\n        endValue: payload.endValue\n      });\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport dataZoomProcessor from './dataZoomProcessor';\nimport installDataZoomAction from './dataZoomAction';\nvar installed = false;\nexport default function installCommon(registers) {\n  if (installed) {\n    return;\n  }\n\n  installed = true;\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.FILTER, dataZoomProcessor);\n  installDataZoomAction(registers);\n  registers.registerSubTypeDefaulter('dataZoom', function () {\n    return 'slider';\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SelectZoomModel from './SelectZoomModel';\nimport SelectZoomView from './SelectZoomView';\nimport installCommon from './installCommon';\nexport function install(registers) {\n  registers.registerComponentModel(SelectZoomModel);\n  registers.registerComponentView(SelectZoomView);\n  installCommon(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar ToolboxFeature = function () {\n  function ToolboxFeature() {}\n\n  return ToolboxFeature;\n}();\n\nexport { ToolboxFeature };\nvar features = {};\nexport function registerFeature(name, ctor) {\n  features[name] = ctor;\n}\nexport function getFeature(name) {\n  return features[name];\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as featureManager from './featureManager';\nimport ComponentModel from '../../model/Component';\n\nvar ToolboxModel = function (_super) {\n  __extends(ToolboxModel, _super);\n\n  function ToolboxModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ToolboxModel.type;\n    return _this;\n  }\n\n  ToolboxModel.prototype.optionUpdated = function () {\n    _super.prototype.optionUpdated.apply(this, arguments);\n\n    var ecModel = this.ecModel;\n    zrUtil.each(this.option.feature, function (featureOpt, featureName) {\n      var Feature = featureManager.getFeature(featureName);\n\n      if (Feature) {\n        if (Feature.getDefaultOption) {\n          Feature.defaultOption = Feature.getDefaultOption(ecModel);\n        }\n\n        zrUtil.merge(featureOpt, Feature.defaultOption);\n      }\n    });\n  };\n\n  ToolboxModel.type = 'toolbox';\n  ToolboxModel.layoutMode = {\n    type: 'box',\n    ignoreSize: true\n  };\n  ToolboxModel.defaultOption = {\n    show: true,\n    z: 6,\n    zlevel: 0,\n    orient: 'horizontal',\n    left: 'right',\n    top: 'top',\n    backgroundColor: 'transparent',\n    borderColor: '#ccc',\n    borderRadius: 0,\n    borderWidth: 0,\n    padding: 5,\n    itemSize: 15,\n    itemGap: 8,\n    showTitle: true,\n    iconStyle: {\n      borderColor: '#666',\n      color: 'none'\n    },\n    emphasis: {\n      iconStyle: {\n        borderColor: '#3E98C5'\n      }\n    },\n    tooltip: {\n      show: false\n    }\n  };\n  return ToolboxModel;\n}(ComponentModel);\n\nexport default ToolboxModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { getLayoutRect, box as layoutBox, positionElement } from '../../util/layout';\nimport * as formatUtil from '../../util/format';\nimport * as graphic from '../../util/graphic';\nexport function layout(group, componentModel, api) {\n  var boxLayoutParams = componentModel.getBoxLayoutParams();\n  var padding = componentModel.get('padding');\n  var viewportSize = {\n    width: api.getWidth(),\n    height: api.getHeight()\n  };\n  var rect = getLayoutRect(boxLayoutParams, viewportSize, padding);\n  layoutBox(componentModel.get('orient'), group, componentModel.get('itemGap'), rect.width, rect.height);\n  positionElement(group, boxLayoutParams, viewportSize, padding);\n}\nexport function makeBackground(rect, componentModel) {\n  var padding = formatUtil.normalizeCssArray(componentModel.get('padding'));\n  var style = componentModel.getItemStyle(['color', 'opacity']);\n  style.fill = componentModel.get('backgroundColor');\n  rect = new graphic.Rect({\n    shape: {\n      x: rect.x - padding[3],\n      y: rect.y - padding[0],\n      width: rect.width + padding[1] + padding[3],\n      height: rect.height + padding[0] + padding[2],\n      r: componentModel.get('borderRadius')\n    },\n    style: style,\n    silent: true,\n    z2: -1\n  });\n  return rect;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as textContain from 'zrender/lib/contain/text';\nimport * as graphic from '../../util/graphic';\nimport { enterEmphasis, leaveEmphasis } from '../../util/states';\nimport Model from '../../model/Model';\nimport DataDiffer from '../../data/DataDiffer';\nimport * as listComponentHelper from '../helper/listComponent';\nimport ComponentView from '../../view/Component';\nimport { ToolboxFeature, getFeature } from './featureManager';\nimport { getUID } from '../../util/component';\nimport ZRText from 'zrender/lib/graphic/Text';\n\nvar ToolboxView = function (_super) {\n  __extends(ToolboxView, _super);\n\n  function ToolboxView() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  ToolboxView.prototype.render = function (toolboxModel, ecModel, api, payload) {\n    var group = this.group;\n    group.removeAll();\n\n    if (!toolboxModel.get('show')) {\n      return;\n    }\n\n    var itemSize = +toolboxModel.get('itemSize');\n    var featureOpts = toolboxModel.get('feature') || {};\n    var features = this._features || (this._features = {});\n    var featureNames = [];\n    zrUtil.each(featureOpts, function (opt, name) {\n      featureNames.push(name);\n    });\n    new DataDiffer(this._featureNames || [], featureNames).add(processFeature).update(processFeature).remove(zrUtil.curry(processFeature, null)).execute();\n    this._featureNames = featureNames;\n\n    function processFeature(newIndex, oldIndex) {\n      var featureName = featureNames[newIndex];\n      var oldName = featureNames[oldIndex];\n      var featureOpt = featureOpts[featureName];\n      var featureModel = new Model(featureOpt, toolboxModel, toolboxModel.ecModel);\n      var feature;\n\n      if (payload && payload.newTitle != null && payload.featureName === featureName) {\n        featureOpt.title = payload.newTitle;\n      }\n\n      if (featureName && !oldName) {\n        if (isUserFeatureName(featureName)) {\n          feature = {\n            onclick: featureModel.option.onclick,\n            featureName: featureName\n          };\n        } else {\n          var Feature = getFeature(featureName);\n\n          if (!Feature) {\n            return;\n          }\n\n          feature = new Feature();\n        }\n\n        features[featureName] = feature;\n      } else {\n        feature = features[oldName];\n\n        if (!feature) {\n          return;\n        }\n      }\n\n      feature.uid = getUID('toolbox-feature');\n      feature.model = featureModel;\n      feature.ecModel = ecModel;\n      feature.api = api;\n\n      if (feature instanceof ToolboxFeature) {\n        if (!featureName && oldName) {\n          feature.dispose && feature.dispose(ecModel, api);\n          return;\n        }\n\n        if (!featureModel.get('show') || feature.unusable) {\n          feature.remove && feature.remove(ecModel, api);\n          return;\n        }\n      }\n\n      createIconPaths(featureModel, feature, featureName);\n\n      featureModel.setIconStatus = function (iconName, status) {\n        var option = this.option;\n        var iconPaths = this.iconPaths;\n        option.iconStatus = option.iconStatus || {};\n        option.iconStatus[iconName] = status;\n\n        if (iconPaths[iconName]) {\n          (status === 'emphasis' ? enterEmphasis : leaveEmphasis)(iconPaths[iconName]);\n        }\n      };\n\n      if (feature instanceof ToolboxFeature) {\n        if (feature.render) {\n          feature.render(featureModel, ecModel, api, payload);\n        }\n      }\n    }\n\n    function createIconPaths(featureModel, feature, featureName) {\n      var iconStyleModel = featureModel.getModel('iconStyle');\n      var iconStyleEmphasisModel = featureModel.getModel(['emphasis', 'iconStyle']);\n      var icons = feature instanceof ToolboxFeature && feature.getIcons ? feature.getIcons() : featureModel.get('icon');\n      var titles = featureModel.get('title') || {};\n      var iconsMap;\n      var titlesMap;\n\n      if (typeof icons === 'string') {\n        iconsMap = {};\n        iconsMap[featureName] = icons;\n      } else {\n        iconsMap = icons;\n      }\n\n      if (typeof titles === 'string') {\n        titlesMap = {};\n        titlesMap[featureName] = titles;\n      } else {\n        titlesMap = titles;\n      }\n\n      var iconPaths = featureModel.iconPaths = {};\n      zrUtil.each(iconsMap, function (iconStr, iconName) {\n        var path = graphic.createIcon(iconStr, {}, {\n          x: -itemSize / 2,\n          y: -itemSize / 2,\n          width: itemSize,\n          height: itemSize\n        });\n        path.setStyle(iconStyleModel.getItemStyle());\n        var pathEmphasisState = path.ensureState('emphasis');\n        pathEmphasisState.style = iconStyleEmphasisModel.getItemStyle();\n        var textContent = new ZRText({\n          style: {\n            text: titlesMap[iconName],\n            align: iconStyleEmphasisModel.get('textAlign'),\n            borderRadius: iconStyleEmphasisModel.get('textBorderRadius'),\n            padding: iconStyleEmphasisModel.get('textPadding'),\n            fill: null\n          },\n          ignore: true\n        });\n        path.setTextContent(textContent);\n        var tooltipModel = toolboxModel.getModel('tooltip');\n\n        if (tooltipModel && tooltipModel.get('show')) {\n          path.tooltip = zrUtil.extend({\n            content: titlesMap[iconName],\n            formatter: tooltipModel.get('formatter', true) || function () {\n              return titlesMap[iconName];\n            },\n            formatterParams: {\n              componentType: 'toolbox',\n              name: iconName,\n              title: titlesMap[iconName],\n              $vars: ['name', 'title']\n            },\n            position: tooltipModel.get('position', true) || 'bottom'\n          }, tooltipModel.option);\n        }\n\n        path.__title = titlesMap[iconName];\n        path.on('mouseover', function () {\n          var hoverStyle = iconStyleEmphasisModel.getItemStyle();\n          var defaultTextPosition = toolboxModel.get('orient') === 'vertical' ? toolboxModel.get('right') == null ? 'right' : 'left' : toolboxModel.get('bottom') == null ? 'bottom' : 'top';\n          textContent.setStyle({\n            fill: iconStyleEmphasisModel.get('textFill') || hoverStyle.fill || hoverStyle.stroke || '#000',\n            backgroundColor: iconStyleEmphasisModel.get('textBackgroundColor')\n          });\n          path.setTextConfig({\n            position: iconStyleEmphasisModel.get('textPosition') || defaultTextPosition\n          });\n          textContent.ignore = !toolboxModel.get('showTitle');\n          enterEmphasis(this);\n        }).on('mouseout', function () {\n          if (featureModel.get(['iconStatus', iconName]) !== 'emphasis') {\n            leaveEmphasis(this);\n          }\n\n          textContent.hide();\n        });\n        (featureModel.get(['iconStatus', iconName]) === 'emphasis' ? enterEmphasis : leaveEmphasis)(path);\n        group.add(path);\n        path.on('click', zrUtil.bind(feature.onclick, feature, ecModel, api, iconName));\n        iconPaths[iconName] = path;\n      });\n    }\n\n    listComponentHelper.layout(group, toolboxModel, api);\n    group.add(listComponentHelper.makeBackground(group.getBoundingRect(), toolboxModel));\n    group.eachChild(function (icon) {\n      var titleText = icon.__title;\n      var emphasisState = icon.ensureState('emphasis');\n      var emphasisTextConfig = emphasisState.textConfig || (emphasisState.textConfig = {});\n      var textContent = icon.getTextContent();\n      var emphasisTextState = textContent && textContent.states.emphasis;\n\n      if (emphasisTextState && !zrUtil.isFunction(emphasisTextState) && titleText) {\n        var emphasisTextStyle = emphasisTextState.style || (emphasisTextState.style = {});\n        var rect = textContain.getBoundingRect(titleText, ZRText.makeFont(emphasisTextStyle));\n        var offsetX = icon.x + group.x;\n        var offsetY = icon.y + group.y + itemSize;\n        var needPutOnTop = false;\n\n        if (offsetY + rect.height > api.getHeight()) {\n          emphasisTextConfig.position = 'top';\n          needPutOnTop = true;\n        }\n\n        var topOffset = needPutOnTop ? -5 - rect.height : itemSize + 8;\n\n        if (offsetX + rect.width / 2 > api.getWidth()) {\n          emphasisTextConfig.position = ['100%', topOffset];\n          emphasisTextStyle.align = 'right';\n        } else if (offsetX - rect.width / 2 < 0) {\n          emphasisTextConfig.position = [0, topOffset];\n          emphasisTextStyle.align = 'left';\n        }\n      }\n    });\n  };\n\n  ToolboxView.prototype.updateView = function (toolboxModel, ecModel, api, payload) {\n    zrUtil.each(this._features, function (feature) {\n      feature instanceof ToolboxFeature && feature.updateView && feature.updateView(feature.model, ecModel, api, payload);\n    });\n  };\n\n  ToolboxView.prototype.remove = function (ecModel, api) {\n    zrUtil.each(this._features, function (feature) {\n      feature instanceof ToolboxFeature && feature.remove && feature.remove(ecModel, api);\n    });\n    this.group.removeAll();\n  };\n\n  ToolboxView.prototype.dispose = function (ecModel, api) {\n    zrUtil.each(this._features, function (feature) {\n      feature instanceof ToolboxFeature && feature.dispose && feature.dispose(ecModel, api);\n    });\n  };\n\n  ToolboxView.type = 'toolbox';\n  return ToolboxView;\n}(ComponentView);\n\nfunction isUserFeatureName(featureName) {\n  return featureName.indexOf('my') === 0;\n}\n\nexport default ToolboxView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport env from 'zrender/lib/core/env';\nimport { ToolboxFeature } from '../featureManager';\n\nvar SaveAsImage = function (_super) {\n  __extends(SaveAsImage, _super);\n\n  function SaveAsImage() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  SaveAsImage.prototype.onclick = function (ecModel, api) {\n    var model = this.model;\n    var title = model.get('name') || ecModel.get('title.0.text') || 'echarts';\n    var isSvg = api.getZr().painter.getType() === 'svg';\n    var type = isSvg ? 'svg' : model.get('type', true) || 'png';\n    var url = api.getConnectedDataURL({\n      type: type,\n      backgroundColor: model.get('backgroundColor', true) || ecModel.get('backgroundColor') || '#fff',\n      connectedBackgroundColor: model.get('connectedBackgroundColor'),\n      excludeComponents: model.get('excludeComponents'),\n      pixelRatio: model.get('pixelRatio')\n    });\n\n    if (typeof MouseEvent === 'function' && (env.browser.newEdge || !env.browser.ie && !env.browser.edge)) {\n      var $a = document.createElement('a');\n      $a.download = title + '.' + type;\n      $a.target = '_blank';\n      $a.href = url;\n      var evt = new MouseEvent('click', {\n        view: document.defaultView,\n        bubbles: true,\n        cancelable: false\n      });\n      $a.dispatchEvent(evt);\n    } else {\n      if (window.navigator.msSaveOrOpenBlob || isSvg) {\n        var parts = url.split(',');\n        var base64Encoded = parts[0].indexOf('base64') > -1;\n        var bstr = isSvg ? decodeURIComponent(parts[1]) : parts[1];\n        base64Encoded && (bstr = atob(bstr));\n        var filename = title + '.' + type;\n\n        if (window.navigator.msSaveOrOpenBlob) {\n          var n = bstr.length;\n          var u8arr = new Uint8Array(n);\n\n          while (n--) {\n            u8arr[n] = bstr.charCodeAt(n);\n          }\n\n          var blob = new Blob([u8arr]);\n          window.navigator.msSaveOrOpenBlob(blob, filename);\n        } else {\n          var frame = document.createElement('iframe');\n          document.body.appendChild(frame);\n          var cw = frame.contentWindow;\n          var doc = cw.document;\n          doc.open('image/svg+xml', 'replace');\n          doc.write(bstr);\n          doc.close();\n          cw.focus();\n          doc.execCommand('SaveAs', true, filename);\n          document.body.removeChild(frame);\n        }\n      } else {\n        var lang = model.get('lang');\n        var html = '' + '<body style=\"margin:0;\">' + '<img src=\"' + url + '\" style=\"max-width:100%;\" title=\"' + (lang && lang[0] || '') + '\" />' + '</body>';\n        var tab = window.open();\n        tab.document.write(html);\n        tab.document.title = title;\n      }\n    }\n  };\n\n  SaveAsImage.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      icon: 'M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0',\n      title: ecModel.getLocale(['toolbox', 'saveAsImage', 'title']),\n      type: 'png',\n      connectedBackgroundColor: '#fff',\n      name: '',\n      excludeComponents: ['toolbox'],\n      pixelRatio: 1,\n      lang: ecModel.getLocale(['toolbox', 'saveAsImage', 'lang'])\n    };\n    return defaultOption;\n  };\n\n  return SaveAsImage;\n}(ToolboxFeature);\n\nSaveAsImage.prototype.unusable = !env.canvasSupported;\nexport default SaveAsImage;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as echarts from '../../../core/echarts';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { ToolboxFeature } from '../featureManager';\nimport { SINGLE_REFERRING } from '../../../util/model';\nvar INNER_STACK_KEYWORD = '__ec_magicType_stack__';\nvar ICON_TYPES = ['line', 'bar', 'stack'];\nvar TITLE_TYPES = ['line', 'bar', 'stack', 'tiled'];\nvar radioTypes = [['line', 'bar'], ['stack']];\n\nvar MagicType = function (_super) {\n  __extends(MagicType, _super);\n\n  function MagicType() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  MagicType.prototype.getIcons = function () {\n    var model = this.model;\n    var availableIcons = model.get('icon');\n    var icons = {};\n    zrUtil.each(model.get('type'), function (type) {\n      if (availableIcons[type]) {\n        icons[type] = availableIcons[type];\n      }\n    });\n    return icons;\n  };\n\n  MagicType.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      type: [],\n      icon: {\n        line: 'M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4',\n        bar: 'M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7',\n        stack: 'M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z'\n      },\n      title: ecModel.getLocale(['toolbox', 'magicType', 'title']),\n      option: {},\n      seriesIndex: {}\n    };\n    return defaultOption;\n  };\n\n  MagicType.prototype.onclick = function (ecModel, api, type) {\n    var model = this.model;\n    var seriesIndex = model.get(['seriesIndex', type]);\n\n    if (!seriesOptGenreator[type]) {\n      return;\n    }\n\n    var newOption = {\n      series: []\n    };\n\n    var generateNewSeriesTypes = function (seriesModel) {\n      var seriesType = seriesModel.subType;\n      var seriesId = seriesModel.id;\n      var newSeriesOpt = seriesOptGenreator[type](seriesType, seriesId, seriesModel, model);\n\n      if (newSeriesOpt) {\n        zrUtil.defaults(newSeriesOpt, seriesModel.option);\n        newOption.series.push(newSeriesOpt);\n      }\n\n      var coordSys = seriesModel.coordinateSystem;\n\n      if (coordSys && coordSys.type === 'cartesian2d' && (type === 'line' || type === 'bar')) {\n        var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\n\n        if (categoryAxis) {\n          var axisDim = categoryAxis.dim;\n          var axisType = axisDim + 'Axis';\n          var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\n          var axisIndex = axisModel.componentIndex;\n          newOption[axisType] = newOption[axisType] || [];\n\n          for (var i = 0; i <= axisIndex; i++) {\n            newOption[axisType][axisIndex] = newOption[axisType][axisIndex] || {};\n          }\n\n          newOption[axisType][axisIndex].boundaryGap = type === 'bar';\n        }\n      }\n    };\n\n    zrUtil.each(radioTypes, function (radio) {\n      if (zrUtil.indexOf(radio, type) >= 0) {\n        zrUtil.each(radio, function (item) {\n          model.setIconStatus(item, 'normal');\n        });\n      }\n    });\n    model.setIconStatus(type, 'emphasis');\n    ecModel.eachComponent({\n      mainType: 'series',\n      query: seriesIndex == null ? null : {\n        seriesIndex: seriesIndex\n      }\n    }, generateNewSeriesTypes);\n    var newTitle;\n\n    if (type === 'stack') {\n      newTitle = zrUtil.merge({\n        stack: model.option.title.tiled,\n        tiled: model.option.title.stack\n      }, model.option.title);\n    }\n\n    api.dispatchAction({\n      type: 'changeMagicType',\n      currentType: type,\n      newOption: newOption,\n      newTitle: newTitle,\n      featureName: 'magicType'\n    });\n  };\n\n  return MagicType;\n}(ToolboxFeature);\n\nvar seriesOptGenreator = {\n  'line': function (seriesType, seriesId, seriesModel, model) {\n    if (seriesType === 'bar') {\n      return zrUtil.merge({\n        id: seriesId,\n        type: 'line',\n        data: seriesModel.get('data'),\n        stack: seriesModel.get('stack'),\n        markPoint: seriesModel.get('markPoint'),\n        markLine: seriesModel.get('markLine')\n      }, model.get(['option', 'line']) || {}, true);\n    }\n  },\n  'bar': function (seriesType, seriesId, seriesModel, model) {\n    if (seriesType === 'line') {\n      return zrUtil.merge({\n        id: seriesId,\n        type: 'bar',\n        data: seriesModel.get('data'),\n        stack: seriesModel.get('stack'),\n        markPoint: seriesModel.get('markPoint'),\n        markLine: seriesModel.get('markLine')\n      }, model.get(['option', 'bar']) || {}, true);\n    }\n  },\n  'stack': function (seriesType, seriesId, seriesModel, model) {\n    var isStack = seriesModel.get('stack') === INNER_STACK_KEYWORD;\n\n    if (seriesType === 'line' || seriesType === 'bar') {\n      model.setIconStatus('stack', isStack ? 'normal' : 'emphasis');\n      return zrUtil.merge({\n        id: seriesId,\n        stack: isStack ? '' : INNER_STACK_KEYWORD\n      }, model.get(['option', 'stack']) || {}, true);\n    }\n  }\n};\necharts.registerAction({\n  type: 'changeMagicType',\n  event: 'magicTypeChanged',\n  update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n  ecModel.mergeOption(payload.newOption);\n});\nexport default MagicType;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as echarts from '../../../core/echarts';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { ToolboxFeature } from '../featureManager';\nimport { addEventListener } from 'zrender/lib/core/event';\nvar BLOCK_SPLITER = new Array(60).join('-');\nvar ITEM_SPLITER = '\\t';\n\nfunction groupSeries(ecModel) {\n  var seriesGroupByCategoryAxis = {};\n  var otherSeries = [];\n  var meta = [];\n  ecModel.eachRawSeries(function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys && (coordSys.type === 'cartesian2d' || coordSys.type === 'polar')) {\n      var baseAxis = coordSys.getBaseAxis();\n\n      if (baseAxis.type === 'category') {\n        var key = baseAxis.dim + '_' + baseAxis.index;\n\n        if (!seriesGroupByCategoryAxis[key]) {\n          seriesGroupByCategoryAxis[key] = {\n            categoryAxis: baseAxis,\n            valueAxis: coordSys.getOtherAxis(baseAxis),\n            series: []\n          };\n          meta.push({\n            axisDim: baseAxis.dim,\n            axisIndex: baseAxis.index\n          });\n        }\n\n        seriesGroupByCategoryAxis[key].series.push(seriesModel);\n      } else {\n        otherSeries.push(seriesModel);\n      }\n    } else {\n      otherSeries.push(seriesModel);\n    }\n  });\n  return {\n    seriesGroupByCategoryAxis: seriesGroupByCategoryAxis,\n    other: otherSeries,\n    meta: meta\n  };\n}\n\nfunction assembleSeriesWithCategoryAxis(groups) {\n  var tables = [];\n  zrUtil.each(groups, function (group, key) {\n    var categoryAxis = group.categoryAxis;\n    var valueAxis = group.valueAxis;\n    var valueAxisDim = valueAxis.dim;\n    var headers = [' '].concat(zrUtil.map(group.series, function (series) {\n      return series.name;\n    }));\n    var columns = [categoryAxis.model.getCategories()];\n    zrUtil.each(group.series, function (series) {\n      var rawData = series.getRawData();\n      columns.push(series.getRawData().mapArray(rawData.mapDimension(valueAxisDim), function (val) {\n        return val;\n      }));\n    });\n    var lines = [headers.join(ITEM_SPLITER)];\n\n    for (var i = 0; i < columns[0].length; i++) {\n      var items = [];\n\n      for (var j = 0; j < columns.length; j++) {\n        items.push(columns[j][i]);\n      }\n\n      lines.push(items.join(ITEM_SPLITER));\n    }\n\n    tables.push(lines.join('\\n'));\n  });\n  return tables.join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\n}\n\nfunction assembleOtherSeries(series) {\n  return zrUtil.map(series, function (series) {\n    var data = series.getRawData();\n    var lines = [series.name];\n    var vals = [];\n    data.each(data.dimensions, function () {\n      var argLen = arguments.length;\n      var dataIndex = arguments[argLen - 1];\n      var name = data.getName(dataIndex);\n\n      for (var i = 0; i < argLen - 1; i++) {\n        vals[i] = arguments[i];\n      }\n\n      lines.push((name ? name + ITEM_SPLITER : '') + vals.join(ITEM_SPLITER));\n    });\n    return lines.join('\\n');\n  }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\n}\n\nfunction getContentFromModel(ecModel) {\n  var result = groupSeries(ecModel);\n  return {\n    value: zrUtil.filter([assembleSeriesWithCategoryAxis(result.seriesGroupByCategoryAxis), assembleOtherSeries(result.other)], function (str) {\n      return !!str.replace(/[\\n\\t\\s]/g, '');\n    }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n'),\n    meta: result.meta\n  };\n}\n\nfunction trim(str) {\n  return str.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n}\n\nfunction isTSVFormat(block) {\n  var firstLine = block.slice(0, block.indexOf('\\n'));\n\n  if (firstLine.indexOf(ITEM_SPLITER) >= 0) {\n    return true;\n  }\n}\n\nvar itemSplitRegex = new RegExp('[' + ITEM_SPLITER + ']+', 'g');\n\nfunction parseTSVContents(tsv) {\n  var tsvLines = tsv.split(/\\n+/g);\n  var headers = trim(tsvLines.shift()).split(itemSplitRegex);\n  var categories = [];\n  var series = zrUtil.map(headers, function (header) {\n    return {\n      name: header,\n      data: []\n    };\n  });\n\n  for (var i = 0; i < tsvLines.length; i++) {\n    var items = trim(tsvLines[i]).split(itemSplitRegex);\n    categories.push(items.shift());\n\n    for (var j = 0; j < items.length; j++) {\n      series[j] && (series[j].data[i] = items[j]);\n    }\n  }\n\n  return {\n    series: series,\n    categories: categories\n  };\n}\n\nfunction parseListContents(str) {\n  var lines = str.split(/\\n+/g);\n  var seriesName = trim(lines.shift());\n  var data = [];\n\n  for (var i = 0; i < lines.length; i++) {\n    var line = trim(lines[i]);\n\n    if (!line) {\n      continue;\n    }\n\n    var items = line.split(itemSplitRegex);\n    var name_1 = '';\n    var value = void 0;\n    var hasName = false;\n\n    if (isNaN(items[0])) {\n      hasName = true;\n      name_1 = items[0];\n      items = items.slice(1);\n      data[i] = {\n        name: name_1,\n        value: []\n      };\n      value = data[i].value;\n    } else {\n      value = data[i] = [];\n    }\n\n    for (var j = 0; j < items.length; j++) {\n      value.push(+items[j]);\n    }\n\n    if (value.length === 1) {\n      hasName ? data[i].value = value[0] : data[i] = value[0];\n    }\n  }\n\n  return {\n    name: seriesName,\n    data: data\n  };\n}\n\nfunction parseContents(str, blockMetaList) {\n  var blocks = str.split(new RegExp('\\n*' + BLOCK_SPLITER + '\\n*', 'g'));\n  var newOption = {\n    series: []\n  };\n  zrUtil.each(blocks, function (block, idx) {\n    if (isTSVFormat(block)) {\n      var result = parseTSVContents(block);\n      var blockMeta = blockMetaList[idx];\n      var axisKey = blockMeta.axisDim + 'Axis';\n\n      if (blockMeta) {\n        newOption[axisKey] = newOption[axisKey] || [];\n        newOption[axisKey][blockMeta.axisIndex] = {\n          data: result.categories\n        };\n        newOption.series = newOption.series.concat(result.series);\n      }\n    } else {\n      var result = parseListContents(block);\n      newOption.series.push(result);\n    }\n  });\n  return newOption;\n}\n\nvar DataView = function (_super) {\n  __extends(DataView, _super);\n\n  function DataView() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  DataView.prototype.onclick = function (ecModel, api) {\n    var container = api.getDom();\n    var model = this.model;\n\n    if (this._dom) {\n      container.removeChild(this._dom);\n    }\n\n    var root = document.createElement('div');\n    root.style.cssText = 'position:absolute;left:5px;top:5px;bottom:5px;right:5px;';\n    root.style.backgroundColor = model.get('backgroundColor') || '#fff';\n    var header = document.createElement('h4');\n    var lang = model.get('lang') || [];\n    header.innerHTML = lang[0] || model.get('title');\n    header.style.cssText = 'margin: 10px 20px;';\n    header.style.color = model.get('textColor');\n    var viewMain = document.createElement('div');\n    var textarea = document.createElement('textarea');\n    viewMain.style.cssText = 'display:block;width:100%;overflow:auto;';\n    var optionToContent = model.get('optionToContent');\n    var contentToOption = model.get('contentToOption');\n    var result = getContentFromModel(ecModel);\n\n    if (typeof optionToContent === 'function') {\n      var htmlOrDom = optionToContent(api.getOption());\n\n      if (typeof htmlOrDom === 'string') {\n        viewMain.innerHTML = htmlOrDom;\n      } else if (zrUtil.isDom(htmlOrDom)) {\n        viewMain.appendChild(htmlOrDom);\n      }\n    } else {\n      viewMain.appendChild(textarea);\n      textarea.readOnly = model.get('readOnly');\n      textarea.style.cssText = 'width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;';\n      textarea.style.color = model.get('textColor');\n      textarea.style.borderColor = model.get('textareaBorderColor');\n      textarea.style.backgroundColor = model.get('textareaColor');\n      textarea.value = result.value;\n    }\n\n    var blockMetaList = result.meta;\n    var buttonContainer = document.createElement('div');\n    buttonContainer.style.cssText = 'position:absolute;bottom:0;left:0;right:0;';\n    var buttonStyle = 'float:right;margin-right:20px;border:none;' + 'cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px';\n    var closeButton = document.createElement('div');\n    var refreshButton = document.createElement('div');\n    buttonStyle += ';background-color:' + model.get('buttonColor');\n    buttonStyle += ';color:' + model.get('buttonTextColor');\n    var self = this;\n\n    function close() {\n      container.removeChild(root);\n      self._dom = null;\n    }\n\n    addEventListener(closeButton, 'click', close);\n    addEventListener(refreshButton, 'click', function () {\n      if (contentToOption == null && optionToContent != null || contentToOption != null && optionToContent == null) {\n        if (process.env.NODE_ENV !== 'production') {\n          console.warn('It seems you have just provided one of `contentToOption` and `optionToContent` functions but missed the other one. Data change is ignored.');\n        }\n\n        close();\n        return;\n      }\n\n      var newOption;\n\n      try {\n        if (typeof contentToOption === 'function') {\n          newOption = contentToOption(viewMain, api.getOption());\n        } else {\n          newOption = parseContents(textarea.value, blockMetaList);\n        }\n      } catch (e) {\n        close();\n        throw new Error('Data view format error ' + e);\n      }\n\n      if (newOption) {\n        api.dispatchAction({\n          type: 'changeDataView',\n          newOption: newOption\n        });\n      }\n\n      close();\n    });\n    closeButton.innerHTML = lang[1];\n    refreshButton.innerHTML = lang[2];\n    refreshButton.style.cssText = buttonStyle;\n    closeButton.style.cssText = buttonStyle;\n    !model.get('readOnly') && buttonContainer.appendChild(refreshButton);\n    buttonContainer.appendChild(closeButton);\n    root.appendChild(header);\n    root.appendChild(viewMain);\n    root.appendChild(buttonContainer);\n    viewMain.style.height = container.clientHeight - 80 + 'px';\n    container.appendChild(root);\n    this._dom = root;\n  };\n\n  DataView.prototype.remove = function (ecModel, api) {\n    this._dom && api.getDom().removeChild(this._dom);\n  };\n\n  DataView.prototype.dispose = function (ecModel, api) {\n    this.remove(ecModel, api);\n  };\n\n  DataView.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      readOnly: false,\n      optionToContent: null,\n      contentToOption: null,\n      icon: 'M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28',\n      title: ecModel.getLocale(['toolbox', 'dataView', 'title']),\n      lang: ecModel.getLocale(['toolbox', 'dataView', 'lang']),\n      backgroundColor: '#fff',\n      textColor: '#000',\n      textareaColor: '#fff',\n      textareaBorderColor: '#333',\n      buttonColor: '#c23531',\n      buttonTextColor: '#fff'\n    };\n    return defaultOption;\n  };\n\n  return DataView;\n}(ToolboxFeature);\n\nfunction tryMergeDataOption(newData, originalData) {\n  return zrUtil.map(newData, function (newVal, idx) {\n    var original = originalData && originalData[idx];\n\n    if (zrUtil.isObject(original) && !zrUtil.isArray(original)) {\n      var newValIsObject = zrUtil.isObject(newVal) && !zrUtil.isArray(newVal);\n\n      if (!newValIsObject) {\n        newVal = {\n          value: newVal\n        };\n      }\n\n      var shouldDeleteName = original.name != null && newVal.name == null;\n      newVal = zrUtil.defaults(newVal, original);\n      shouldDeleteName && delete newVal.name;\n      return newVal;\n    } else {\n      return newVal;\n    }\n  });\n}\n\necharts.registerAction({\n  type: 'changeDataView',\n  event: 'dataViewChanged',\n  update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n  var newSeriesOptList = [];\n  zrUtil.each(payload.newOption.series, function (seriesOpt) {\n    var seriesModel = ecModel.getSeriesByName(seriesOpt.name)[0];\n\n    if (!seriesModel) {\n      newSeriesOptList.push(zrUtil.extend({\n        type: 'scatter'\n      }, seriesOpt));\n    } else {\n      var originalData = seriesModel.get('data');\n      newSeriesOptList.push({\n        name: seriesOpt.name,\n        data: tryMergeDataOption(seriesOpt.data, originalData)\n      });\n    }\n  });\n  ecModel.mergeOption(zrUtil.defaults({\n    series: newSeriesOptList\n  }, payload.newOption));\n});\nexport default DataView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { makeInner } from '../../util/model';\nvar each = zrUtil.each;\nvar inner = makeInner();\nexport function push(ecModel, newSnapshot) {\n  var storedSnapshots = getStoreSnapshots(ecModel);\n  each(newSnapshot, function (batchItem, dataZoomId) {\n    var i = storedSnapshots.length - 1;\n\n    for (; i >= 0; i--) {\n      var snapshot = storedSnapshots[i];\n\n      if (snapshot[dataZoomId]) {\n        break;\n      }\n    }\n\n    if (i < 0) {\n      var dataZoomModel = ecModel.queryComponents({\n        mainType: 'dataZoom',\n        subType: 'select',\n        id: dataZoomId\n      })[0];\n\n      if (dataZoomModel) {\n        var percentRange = dataZoomModel.getPercentRange();\n        storedSnapshots[0][dataZoomId] = {\n          dataZoomId: dataZoomId,\n          start: percentRange[0],\n          end: percentRange[1]\n        };\n      }\n    }\n  });\n  storedSnapshots.push(newSnapshot);\n}\nexport function pop(ecModel) {\n  var storedSnapshots = getStoreSnapshots(ecModel);\n  var head = storedSnapshots[storedSnapshots.length - 1];\n  storedSnapshots.length > 1 && storedSnapshots.pop();\n  var snapshot = {};\n  each(head, function (batchItem, dataZoomId) {\n    for (var i = storedSnapshots.length - 1; i >= 0; i--) {\n      batchItem = storedSnapshots[i][dataZoomId];\n\n      if (batchItem) {\n        snapshot[dataZoomId] = batchItem;\n        break;\n      }\n    }\n  });\n  return snapshot;\n}\nexport function clear(ecModel) {\n  inner(ecModel).snapshots = null;\n}\nexport function count(ecModel) {\n  return getStoreSnapshots(ecModel).length;\n}\n\nfunction getStoreSnapshots(ecModel) {\n  var store = inner(ecModel);\n\n  if (!store.snapshots) {\n    store.snapshots = [{}];\n  }\n\n  return store.snapshots;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as echarts from '../../../core/echarts';\nimport * as history from '../../dataZoom/history';\nimport { ToolboxFeature } from '../featureManager';\n\nvar RestoreOption = function (_super) {\n  __extends(RestoreOption, _super);\n\n  function RestoreOption() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  RestoreOption.prototype.onclick = function (ecModel, api) {\n    history.clear(ecModel);\n    api.dispatchAction({\n      type: 'restore',\n      from: this.uid\n    });\n  };\n\n  RestoreOption.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      icon: 'M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5',\n      title: ecModel.getLocale(['toolbox', 'restore', 'title'])\n    };\n    return defaultOption;\n  };\n\n  return RestoreOption;\n}(ToolboxFeature);\n\necharts.registerAction({\n  type: 'restore',\n  event: 'restore',\n  update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n  ecModel.resetOption('recreate');\n});\nexport default RestoreOption;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as echarts from '../../core/echarts';\nvar ATTR = '\\0_ec_interaction_mutex';\nexport function take(zr, resourceKey, userKey) {\n  var store = getStore(zr);\n  store[resourceKey] = userKey;\n}\nexport function release(zr, resourceKey, userKey) {\n  var store = getStore(zr);\n  var uKey = store[resourceKey];\n\n  if (uKey === userKey) {\n    store[resourceKey] = null;\n  }\n}\nexport function isTaken(zr, resourceKey) {\n  return !!getStore(zr)[resourceKey];\n}\n\nfunction getStore(zr) {\n  return zr[ATTR] || (zr[ATTR] = {});\n}\n\necharts.registerAction({\n  type: 'takeGlobalCursor',\n  event: 'globalCursorTaken',\n  update: 'update'\n}, function () {});","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { curry, each, map, bind, merge, clone, defaults, assert } from 'zrender/lib/core/util';\nimport Eventful from 'zrender/lib/core/Eventful';\nimport * as graphic from '../../util/graphic';\nimport * as interactionMutex from './interactionMutex';\nimport DataDiffer from '../../data/DataDiffer';\nvar BRUSH_PANEL_GLOBAL = true;\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathPow = Math.pow;\nvar COVER_Z = 10000;\nvar UNSELECT_THRESHOLD = 6;\nvar MIN_RESIZE_LINE_WIDTH = 6;\nvar MUTEX_RESOURCE_KEY = 'globalPan';\nvar DIRECTION_MAP = {\n  w: [0, 0],\n  e: [0, 1],\n  n: [1, 0],\n  s: [1, 1]\n};\nvar CURSOR_MAP = {\n  w: 'ew',\n  e: 'ew',\n  n: 'ns',\n  s: 'ns',\n  ne: 'nesw',\n  sw: 'nesw',\n  nw: 'nwse',\n  se: 'nwse'\n};\nvar DEFAULT_BRUSH_OPT = {\n  brushStyle: {\n    lineWidth: 2,\n    stroke: 'rgba(210,219,238,0.3)',\n    fill: '#D2DBEE'\n  },\n  transformable: true,\n  brushMode: 'single',\n  removeOnClick: false\n};\nvar baseUID = 0;\n\nvar BrushController = function (_super) {\n  __extends(BrushController, _super);\n\n  function BrushController(zr) {\n    var _this = _super.call(this) || this;\n\n    _this._track = [];\n    _this._covers = [];\n    _this._handlers = {};\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(zr);\n    }\n\n    _this._zr = zr;\n    _this.group = new graphic.Group();\n    _this._uid = 'brushController_' + baseUID++;\n    each(pointerHandlers, function (handler, eventName) {\n      this._handlers[eventName] = bind(handler, this);\n    }, _this);\n    return _this;\n  }\n\n  BrushController.prototype.enableBrush = function (brushOption) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(this._mounted);\n    }\n\n    this._brushType && this._doDisableBrush();\n    brushOption.brushType && this._doEnableBrush(brushOption);\n    return this;\n  };\n\n  BrushController.prototype._doEnableBrush = function (brushOption) {\n    var zr = this._zr;\n\n    if (!this._enableGlobalPan) {\n      interactionMutex.take(zr, MUTEX_RESOURCE_KEY, this._uid);\n    }\n\n    each(this._handlers, function (handler, eventName) {\n      zr.on(eventName, handler);\n    });\n    this._brushType = brushOption.brushType;\n    this._brushOption = merge(clone(DEFAULT_BRUSH_OPT), brushOption, true);\n  };\n\n  BrushController.prototype._doDisableBrush = function () {\n    var zr = this._zr;\n    interactionMutex.release(zr, MUTEX_RESOURCE_KEY, this._uid);\n    each(this._handlers, function (handler, eventName) {\n      zr.off(eventName, handler);\n    });\n    this._brushType = this._brushOption = null;\n  };\n\n  BrushController.prototype.setPanels = function (panelOpts) {\n    if (panelOpts && panelOpts.length) {\n      var panels_1 = this._panels = {};\n      each(panelOpts, function (panelOpts) {\n        panels_1[panelOpts.panelId] = clone(panelOpts);\n      });\n    } else {\n      this._panels = null;\n    }\n\n    return this;\n  };\n\n  BrushController.prototype.mount = function (opt) {\n    opt = opt || {};\n\n    if (process.env.NODE_ENV !== 'production') {\n      this._mounted = true;\n    }\n\n    this._enableGlobalPan = opt.enableGlobalPan;\n    var thisGroup = this.group;\n\n    this._zr.add(thisGroup);\n\n    thisGroup.attr({\n      x: opt.x || 0,\n      y: opt.y || 0,\n      rotation: opt.rotation || 0,\n      scaleX: opt.scaleX || 1,\n      scaleY: opt.scaleY || 1\n    });\n    this._transform = thisGroup.getLocalTransform();\n    return this;\n  };\n\n  BrushController.prototype.updateCovers = function (coverConfigList) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(this._mounted);\n    }\n\n    coverConfigList = map(coverConfigList, function (coverConfig) {\n      return merge(clone(DEFAULT_BRUSH_OPT), coverConfig, true);\n    });\n    var tmpIdPrefix = '\\0-brush-index-';\n    var oldCovers = this._covers;\n    var newCovers = this._covers = [];\n    var controller = this;\n    var creatingCover = this._creatingCover;\n    new DataDiffer(oldCovers, coverConfigList, oldGetKey, getKey).add(addOrUpdate).update(addOrUpdate).remove(remove).execute();\n    return this;\n\n    function getKey(brushOption, index) {\n      return (brushOption.id != null ? brushOption.id : tmpIdPrefix + index) + '-' + brushOption.brushType;\n    }\n\n    function oldGetKey(cover, index) {\n      return getKey(cover.__brushOption, index);\n    }\n\n    function addOrUpdate(newIndex, oldIndex) {\n      var newBrushInternal = coverConfigList[newIndex];\n\n      if (oldIndex != null && oldCovers[oldIndex] === creatingCover) {\n        newCovers[newIndex] = oldCovers[oldIndex];\n      } else {\n        var cover = newCovers[newIndex] = oldIndex != null ? (oldCovers[oldIndex].__brushOption = newBrushInternal, oldCovers[oldIndex]) : endCreating(controller, createCover(controller, newBrushInternal));\n        updateCoverAfterCreation(controller, cover);\n      }\n    }\n\n    function remove(oldIndex) {\n      if (oldCovers[oldIndex] !== creatingCover) {\n        controller.group.remove(oldCovers[oldIndex]);\n      }\n    }\n  };\n\n  BrushController.prototype.unmount = function () {\n    if (process.env.NODE_ENV !== 'production') {\n      if (!this._mounted) {\n        return;\n      }\n    }\n\n    this.enableBrush(false);\n    clearCovers(this);\n\n    this._zr.remove(this.group);\n\n    if (process.env.NODE_ENV !== 'production') {\n      this._mounted = false;\n    }\n\n    return this;\n  };\n\n  BrushController.prototype.dispose = function () {\n    this.unmount();\n    this.off();\n  };\n\n  return BrushController;\n}(Eventful);\n\nfunction createCover(controller, brushOption) {\n  var cover = coverRenderers[brushOption.brushType].createCover(controller, brushOption);\n  cover.__brushOption = brushOption;\n  updateZ(cover, brushOption);\n  controller.group.add(cover);\n  return cover;\n}\n\nfunction endCreating(controller, creatingCover) {\n  var coverRenderer = getCoverRenderer(creatingCover);\n\n  if (coverRenderer.endCreating) {\n    coverRenderer.endCreating(controller, creatingCover);\n    updateZ(creatingCover, creatingCover.__brushOption);\n  }\n\n  return creatingCover;\n}\n\nfunction updateCoverShape(controller, cover) {\n  var brushOption = cover.__brushOption;\n  getCoverRenderer(cover).updateCoverShape(controller, cover, brushOption.range, brushOption);\n}\n\nfunction updateZ(cover, brushOption) {\n  var z = brushOption.z;\n  z == null && (z = COVER_Z);\n  cover.traverse(function (el) {\n    el.z = z;\n    el.z2 = z;\n  });\n}\n\nfunction updateCoverAfterCreation(controller, cover) {\n  getCoverRenderer(cover).updateCommon(controller, cover);\n  updateCoverShape(controller, cover);\n}\n\nfunction getCoverRenderer(cover) {\n  return coverRenderers[cover.__brushOption.brushType];\n}\n\nfunction getPanelByPoint(controller, e, localCursorPoint) {\n  var panels = controller._panels;\n\n  if (!panels) {\n    return BRUSH_PANEL_GLOBAL;\n  }\n\n  var panel;\n  var transform = controller._transform;\n  each(panels, function (pn) {\n    pn.isTargetByCursor(e, localCursorPoint, transform) && (panel = pn);\n  });\n  return panel;\n}\n\nfunction getPanelByCover(controller, cover) {\n  var panels = controller._panels;\n\n  if (!panels) {\n    return BRUSH_PANEL_GLOBAL;\n  }\n\n  var panelId = cover.__brushOption.panelId;\n  return panelId != null ? panels[panelId] : BRUSH_PANEL_GLOBAL;\n}\n\nfunction clearCovers(controller) {\n  var covers = controller._covers;\n  var originalLength = covers.length;\n  each(covers, function (cover) {\n    controller.group.remove(cover);\n  }, controller);\n  covers.length = 0;\n  return !!originalLength;\n}\n\nfunction trigger(controller, opt) {\n  var areas = map(controller._covers, function (cover) {\n    var brushOption = cover.__brushOption;\n    var range = clone(brushOption.range);\n    return {\n      brushType: brushOption.brushType,\n      panelId: brushOption.panelId,\n      range: range\n    };\n  });\n  controller.trigger('brush', {\n    areas: areas,\n    isEnd: !!opt.isEnd,\n    removeOnClick: !!opt.removeOnClick\n  });\n}\n\nfunction shouldShowCover(controller) {\n  var track = controller._track;\n\n  if (!track.length) {\n    return false;\n  }\n\n  var p2 = track[track.length - 1];\n  var p1 = track[0];\n  var dx = p2[0] - p1[0];\n  var dy = p2[1] - p1[1];\n  var dist = mathPow(dx * dx + dy * dy, 0.5);\n  return dist > UNSELECT_THRESHOLD;\n}\n\nfunction getTrackEnds(track) {\n  var tail = track.length - 1;\n  tail < 0 && (tail = 0);\n  return [track[0], track[tail]];\n}\n\n;\n\nfunction createBaseRectCover(rectRangeConverter, controller, brushOption, edgeNameSequences) {\n  var cover = new graphic.Group();\n  cover.add(new graphic.Rect({\n    name: 'main',\n    style: makeStyle(brushOption),\n    silent: true,\n    draggable: true,\n    cursor: 'move',\n    drift: curry(driftRect, rectRangeConverter, controller, cover, ['n', 's', 'w', 'e']),\n    ondragend: curry(trigger, controller, {\n      isEnd: true\n    })\n  }));\n  each(edgeNameSequences, function (nameSequence) {\n    cover.add(new graphic.Rect({\n      name: nameSequence.join(''),\n      style: {\n        opacity: 0\n      },\n      draggable: true,\n      silent: true,\n      invisible: true,\n      drift: curry(driftRect, rectRangeConverter, controller, cover, nameSequence),\n      ondragend: curry(trigger, controller, {\n        isEnd: true\n      })\n    }));\n  });\n  return cover;\n}\n\nfunction updateBaseRect(controller, cover, localRange, brushOption) {\n  var lineWidth = brushOption.brushStyle.lineWidth || 0;\n  var handleSize = mathMax(lineWidth, MIN_RESIZE_LINE_WIDTH);\n  var x = localRange[0][0];\n  var y = localRange[1][0];\n  var xa = x - lineWidth / 2;\n  var ya = y - lineWidth / 2;\n  var x2 = localRange[0][1];\n  var y2 = localRange[1][1];\n  var x2a = x2 - handleSize + lineWidth / 2;\n  var y2a = y2 - handleSize + lineWidth / 2;\n  var width = x2 - x;\n  var height = y2 - y;\n  var widtha = width + lineWidth;\n  var heighta = height + lineWidth;\n  updateRectShape(controller, cover, 'main', x, y, width, height);\n\n  if (brushOption.transformable) {\n    updateRectShape(controller, cover, 'w', xa, ya, handleSize, heighta);\n    updateRectShape(controller, cover, 'e', x2a, ya, handleSize, heighta);\n    updateRectShape(controller, cover, 'n', xa, ya, widtha, handleSize);\n    updateRectShape(controller, cover, 's', xa, y2a, widtha, handleSize);\n    updateRectShape(controller, cover, 'nw', xa, ya, handleSize, handleSize);\n    updateRectShape(controller, cover, 'ne', x2a, ya, handleSize, handleSize);\n    updateRectShape(controller, cover, 'sw', xa, y2a, handleSize, handleSize);\n    updateRectShape(controller, cover, 'se', x2a, y2a, handleSize, handleSize);\n  }\n}\n\nfunction updateCommon(controller, cover) {\n  var brushOption = cover.__brushOption;\n  var transformable = brushOption.transformable;\n  var mainEl = cover.childAt(0);\n  mainEl.useStyle(makeStyle(brushOption));\n  mainEl.attr({\n    silent: !transformable,\n    cursor: transformable ? 'move' : 'default'\n  });\n  each([['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w']], function (nameSequence) {\n    var el = cover.childOfName(nameSequence.join(''));\n    var globalDir = nameSequence.length === 1 ? getGlobalDirection1(controller, nameSequence[0]) : getGlobalDirection2(controller, nameSequence);\n    el && el.attr({\n      silent: !transformable,\n      invisible: !transformable,\n      cursor: transformable ? CURSOR_MAP[globalDir] + '-resize' : null\n    });\n  });\n}\n\nfunction updateRectShape(controller, cover, name, x, y, w, h) {\n  var el = cover.childOfName(name);\n  el && el.setShape(pointsToRect(clipByPanel(controller, cover, [[x, y], [x + w, y + h]])));\n}\n\nfunction makeStyle(brushOption) {\n  return defaults({\n    strokeNoScale: true\n  }, brushOption.brushStyle);\n}\n\nfunction formatRectRange(x, y, x2, y2) {\n  var min = [mathMin(x, x2), mathMin(y, y2)];\n  var max = [mathMax(x, x2), mathMax(y, y2)];\n  return [[min[0], max[0]], [min[1], max[1]]];\n}\n\nfunction getTransform(controller) {\n  return graphic.getTransform(controller.group);\n}\n\nfunction getGlobalDirection1(controller, localDirName) {\n  var map = {\n    w: 'left',\n    e: 'right',\n    n: 'top',\n    s: 'bottom'\n  };\n  var inverseMap = {\n    left: 'w',\n    right: 'e',\n    top: 'n',\n    bottom: 's'\n  };\n  var dir = graphic.transformDirection(map[localDirName], getTransform(controller));\n  return inverseMap[dir];\n}\n\nfunction getGlobalDirection2(controller, localDirNameSeq) {\n  var globalDir = [getGlobalDirection1(controller, localDirNameSeq[0]), getGlobalDirection1(controller, localDirNameSeq[1])];\n  (globalDir[0] === 'e' || globalDir[0] === 'w') && globalDir.reverse();\n  return globalDir.join('');\n}\n\nfunction driftRect(rectRangeConverter, controller, cover, dirNameSequence, dx, dy) {\n  var brushOption = cover.__brushOption;\n  var rectRange = rectRangeConverter.toRectRange(brushOption.range);\n  var localDelta = toLocalDelta(controller, dx, dy);\n  each(dirNameSequence, function (dirName) {\n    var ind = DIRECTION_MAP[dirName];\n    rectRange[ind[0]][ind[1]] += localDelta[ind[0]];\n  });\n  brushOption.range = rectRangeConverter.fromRectRange(formatRectRange(rectRange[0][0], rectRange[1][0], rectRange[0][1], rectRange[1][1]));\n  updateCoverAfterCreation(controller, cover);\n  trigger(controller, {\n    isEnd: false\n  });\n}\n\nfunction driftPolygon(controller, cover, dx, dy) {\n  var range = cover.__brushOption.range;\n  var localDelta = toLocalDelta(controller, dx, dy);\n  each(range, function (point) {\n    point[0] += localDelta[0];\n    point[1] += localDelta[1];\n  });\n  updateCoverAfterCreation(controller, cover);\n  trigger(controller, {\n    isEnd: false\n  });\n}\n\nfunction toLocalDelta(controller, dx, dy) {\n  var thisGroup = controller.group;\n  var localD = thisGroup.transformCoordToLocal(dx, dy);\n  var localZero = thisGroup.transformCoordToLocal(0, 0);\n  return [localD[0] - localZero[0], localD[1] - localZero[1]];\n}\n\nfunction clipByPanel(controller, cover, data) {\n  var panel = getPanelByCover(controller, cover);\n  return panel && panel !== BRUSH_PANEL_GLOBAL ? panel.clipPath(data, controller._transform) : clone(data);\n}\n\nfunction pointsToRect(points) {\n  var xmin = mathMin(points[0][0], points[1][0]);\n  var ymin = mathMin(points[0][1], points[1][1]);\n  var xmax = mathMax(points[0][0], points[1][0]);\n  var ymax = mathMax(points[0][1], points[1][1]);\n  return {\n    x: xmin,\n    y: ymin,\n    width: xmax - xmin,\n    height: ymax - ymin\n  };\n}\n\nfunction resetCursor(controller, e, localCursorPoint) {\n  if (!controller._brushType || isOutsideZrArea(controller, e.offsetX, e.offsetY)) {\n    return;\n  }\n\n  var zr = controller._zr;\n  var covers = controller._covers;\n  var currPanel = getPanelByPoint(controller, e, localCursorPoint);\n\n  if (!controller._dragging) {\n    for (var i = 0; i < covers.length; i++) {\n      var brushOption = covers[i].__brushOption;\n\n      if (currPanel && (currPanel === BRUSH_PANEL_GLOBAL || brushOption.panelId === currPanel.panelId) && coverRenderers[brushOption.brushType].contain(covers[i], localCursorPoint[0], localCursorPoint[1])) {\n        return;\n      }\n    }\n  }\n\n  currPanel && zr.setCursorStyle('crosshair');\n}\n\nfunction preventDefault(e) {\n  var rawE = e.event;\n  rawE.preventDefault && rawE.preventDefault();\n}\n\nfunction mainShapeContain(cover, x, y) {\n  return cover.childOfName('main').contain(x, y);\n}\n\nfunction updateCoverByMouse(controller, e, localCursorPoint, isEnd) {\n  var creatingCover = controller._creatingCover;\n  var panel = controller._creatingPanel;\n  var thisBrushOption = controller._brushOption;\n  var eventParams;\n\n  controller._track.push(localCursorPoint.slice());\n\n  if (shouldShowCover(controller) || creatingCover) {\n    if (panel && !creatingCover) {\n      thisBrushOption.brushMode === 'single' && clearCovers(controller);\n      var brushOption = clone(thisBrushOption);\n      brushOption.brushType = determineBrushType(brushOption.brushType, panel);\n      brushOption.panelId = panel === BRUSH_PANEL_GLOBAL ? null : panel.panelId;\n      creatingCover = controller._creatingCover = createCover(controller, brushOption);\n\n      controller._covers.push(creatingCover);\n    }\n\n    if (creatingCover) {\n      var coverRenderer = coverRenderers[determineBrushType(controller._brushType, panel)];\n      var coverBrushOption = creatingCover.__brushOption;\n      coverBrushOption.range = coverRenderer.getCreatingRange(clipByPanel(controller, creatingCover, controller._track));\n\n      if (isEnd) {\n        endCreating(controller, creatingCover);\n        coverRenderer.updateCommon(controller, creatingCover);\n      }\n\n      updateCoverShape(controller, creatingCover);\n      eventParams = {\n        isEnd: isEnd\n      };\n    }\n  } else if (isEnd && thisBrushOption.brushMode === 'single' && thisBrushOption.removeOnClick) {\n    if (getPanelByPoint(controller, e, localCursorPoint) && clearCovers(controller)) {\n      eventParams = {\n        isEnd: isEnd,\n        removeOnClick: true\n      };\n    }\n  }\n\n  return eventParams;\n}\n\nfunction determineBrushType(brushType, panel) {\n  if (brushType === 'auto') {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(panel && panel.defaultBrushType, 'MUST have defaultBrushType when brushType is \"atuo\"');\n    }\n\n    return panel.defaultBrushType;\n  }\n\n  return brushType;\n}\n\nvar pointerHandlers = {\n  mousedown: function (e) {\n    if (this._dragging) {\n      handleDragEnd(this, e);\n    } else if (!e.target || !e.target.draggable) {\n      preventDefault(e);\n      var localCursorPoint = this.group.transformCoordToLocal(e.offsetX, e.offsetY);\n      this._creatingCover = null;\n      var panel = this._creatingPanel = getPanelByPoint(this, e, localCursorPoint);\n\n      if (panel) {\n        this._dragging = true;\n        this._track = [localCursorPoint.slice()];\n      }\n    }\n  },\n  mousemove: function (e) {\n    var x = e.offsetX;\n    var y = e.offsetY;\n    var localCursorPoint = this.group.transformCoordToLocal(x, y);\n    resetCursor(this, e, localCursorPoint);\n\n    if (this._dragging) {\n      preventDefault(e);\n      var eventParams = updateCoverByMouse(this, e, localCursorPoint, false);\n      eventParams && trigger(this, eventParams);\n    }\n  },\n  mouseup: function (e) {\n    handleDragEnd(this, e);\n  }\n};\n\nfunction handleDragEnd(controller, e) {\n  if (controller._dragging) {\n    preventDefault(e);\n    var x = e.offsetX;\n    var y = e.offsetY;\n    var localCursorPoint = controller.group.transformCoordToLocal(x, y);\n    var eventParams = updateCoverByMouse(controller, e, localCursorPoint, true);\n    controller._dragging = false;\n    controller._track = [];\n    controller._creatingCover = null;\n    eventParams && trigger(controller, eventParams);\n  }\n}\n\nfunction isOutsideZrArea(controller, x, y) {\n  var zr = controller._zr;\n  return x < 0 || x > zr.getWidth() || y < 0 || y > zr.getHeight();\n}\n\nvar coverRenderers = {\n  lineX: getLineRenderer(0),\n  lineY: getLineRenderer(1),\n  rect: {\n    createCover: function (controller, brushOption) {\n      function returnInput(range) {\n        return range;\n      }\n\n      return createBaseRectCover({\n        toRectRange: returnInput,\n        fromRectRange: returnInput\n      }, controller, brushOption, [['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w']]);\n    },\n    getCreatingRange: function (localTrack) {\n      var ends = getTrackEnds(localTrack);\n      return formatRectRange(ends[1][0], ends[1][1], ends[0][0], ends[0][1]);\n    },\n    updateCoverShape: function (controller, cover, localRange, brushOption) {\n      updateBaseRect(controller, cover, localRange, brushOption);\n    },\n    updateCommon: updateCommon,\n    contain: mainShapeContain\n  },\n  polygon: {\n    createCover: function (controller, brushOption) {\n      var cover = new graphic.Group();\n      cover.add(new graphic.Polyline({\n        name: 'main',\n        style: makeStyle(brushOption),\n        silent: true\n      }));\n      return cover;\n    },\n    getCreatingRange: function (localTrack) {\n      return localTrack;\n    },\n    endCreating: function (controller, cover) {\n      cover.remove(cover.childAt(0));\n      cover.add(new graphic.Polygon({\n        name: 'main',\n        draggable: true,\n        drift: curry(driftPolygon, controller, cover),\n        ondragend: curry(trigger, controller, {\n          isEnd: true\n        })\n      }));\n    },\n    updateCoverShape: function (controller, cover, localRange, brushOption) {\n      cover.childAt(0).setShape({\n        points: clipByPanel(controller, cover, localRange)\n      });\n    },\n    updateCommon: updateCommon,\n    contain: mainShapeContain\n  }\n};\n\nfunction getLineRenderer(xyIndex) {\n  return {\n    createCover: function (controller, brushOption) {\n      return createBaseRectCover({\n        toRectRange: function (range) {\n          var rectRange = [range, [0, 100]];\n          xyIndex && rectRange.reverse();\n          return rectRange;\n        },\n        fromRectRange: function (rectRange) {\n          return rectRange[xyIndex];\n        }\n      }, controller, brushOption, [[['w'], ['e']], [['n'], ['s']]][xyIndex]);\n    },\n    getCreatingRange: function (localTrack) {\n      var ends = getTrackEnds(localTrack);\n      var min = mathMin(ends[0][xyIndex], ends[1][xyIndex]);\n      var max = mathMax(ends[0][xyIndex], ends[1][xyIndex]);\n      return [min, max];\n    },\n    updateCoverShape: function (controller, cover, localRange, brushOption) {\n      var otherExtent;\n      var panel = getPanelByCover(controller, cover);\n\n      if (panel !== BRUSH_PANEL_GLOBAL && panel.getLinearBrushOtherExtent) {\n        otherExtent = panel.getLinearBrushOtherExtent(xyIndex);\n      } else {\n        var zr = controller._zr;\n        otherExtent = [0, [zr.getWidth(), zr.getHeight()][1 - xyIndex]];\n      }\n\n      var rectRange = [localRange, otherExtent];\n      xyIndex && rectRange.reverse();\n      updateBaseRect(controller, cover, rectRange, brushOption);\n    },\n    updateCommon: updateCommon,\n    contain: mainShapeContain\n  };\n}\n\nexport default BrushController;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar IRRELEVANT_EXCLUDES = {\n  'axisPointer': 1,\n  'tooltip': 1,\n  'brush': 1\n};\nexport function onIrrelevantElement(e, api, targetCoordSysModel) {\n  var model = api.getComponentByElement(e.topTarget);\n  var coordSys = model && model.coordinateSystem;\n  return model && model !== targetCoordSysModel && !IRRELEVANT_EXCLUDES.hasOwnProperty(model.mainType) && coordSys && coordSys.model !== targetCoordSysModel;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { onIrrelevantElement } from './cursorHelper';\nimport * as graphicUtil from '../../util/graphic';\nexport function makeRectPanelClipPath(rect) {\n  rect = normalizeRect(rect);\n  return function (localPoints) {\n    return graphicUtil.clipPointsByRect(localPoints, rect);\n  };\n}\nexport function makeLinearBrushOtherExtent(rect, specifiedXYIndex) {\n  rect = normalizeRect(rect);\n  return function (xyIndex) {\n    var idx = specifiedXYIndex != null ? specifiedXYIndex : xyIndex;\n    var brushWidth = idx ? rect.width : rect.height;\n    var base = idx ? rect.x : rect.y;\n    return [base, base + (brushWidth || 0)];\n  };\n}\nexport function makeRectIsTargetByCursor(rect, api, targetModel) {\n  var boundingRect = normalizeRect(rect);\n  return function (e, localCursorPoint) {\n    return boundingRect.contain(localCursorPoint[0], localCursorPoint[1]) && !onIrrelevantElement(e, api, targetModel);\n  };\n}\n\nfunction normalizeRect(rect) {\n  return BoundingRect.create(rect);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, indexOf, curry, assert, map, createHashMap } from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport * as brushHelper from './brushHelper';\nimport { parseFinder as modelUtilParseFinder } from '../../util/model';\nvar COORD_CONVERTS = ['dataToPoint', 'pointToData'];\nvar INCLUDE_FINDER_MAIN_TYPES = ['grid', 'xAxis', 'yAxis', 'geo', 'graph', 'polar', 'radiusAxis', 'angleAxis', 'bmap'];\n\nvar BrushTargetManager = function () {\n  function BrushTargetManager(finder, ecModel, opt) {\n    var _this = this;\n\n    this._targetInfoList = [];\n    var foundCpts = parseFinder(ecModel, finder);\n    each(targetInfoBuilders, function (builder, type) {\n      if (!opt || !opt.include || indexOf(opt.include, type) >= 0) {\n        builder(foundCpts, _this._targetInfoList);\n      }\n    });\n  }\n\n  BrushTargetManager.prototype.setOutputRanges = function (areas, ecModel) {\n    this.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) {\n      (area.coordRanges || (area.coordRanges = [])).push(coordRange);\n\n      if (!area.coordRange) {\n        area.coordRange = coordRange;\n        var result = coordConvert[area.brushType](0, coordSys, coordRange);\n        area.__rangeOffset = {\n          offset: diffProcessor[area.brushType](result.values, area.range, [1, 1]),\n          xyMinMax: result.xyMinMax\n        };\n      }\n    });\n    return areas;\n  };\n\n  BrushTargetManager.prototype.matchOutputRanges = function (areas, ecModel, cb) {\n    each(areas, function (area) {\n      var targetInfo = this.findTargetInfo(area, ecModel);\n\n      if (targetInfo && targetInfo !== true) {\n        each(targetInfo.coordSyses, function (coordSys) {\n          var result = coordConvert[area.brushType](1, coordSys, area.range);\n          cb(area, result.values, coordSys, ecModel);\n        });\n      }\n    }, this);\n  };\n\n  BrushTargetManager.prototype.setInputRanges = function (areas, ecModel) {\n    each(areas, function (area) {\n      var targetInfo = this.findTargetInfo(area, ecModel);\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(!targetInfo || targetInfo === true || area.coordRange, 'coordRange must be specified when coord index specified.');\n        assert(!targetInfo || targetInfo !== true || area.range, 'range must be specified in global brush.');\n      }\n\n      area.range = area.range || [];\n\n      if (targetInfo && targetInfo !== true) {\n        area.panelId = targetInfo.panelId;\n        var result = coordConvert[area.brushType](0, targetInfo.coordSys, area.coordRange);\n        var rangeOffset = area.__rangeOffset;\n        area.range = rangeOffset ? diffProcessor[area.brushType](result.values, rangeOffset.offset, getScales(result.xyMinMax, rangeOffset.xyMinMax)) : result.values;\n      }\n    }, this);\n  };\n\n  BrushTargetManager.prototype.makePanelOpts = function (api, getDefaultBrushType) {\n    return map(this._targetInfoList, function (targetInfo) {\n      var rect = targetInfo.getPanelRect();\n      return {\n        panelId: targetInfo.panelId,\n        defaultBrushType: getDefaultBrushType ? getDefaultBrushType(targetInfo) : null,\n        clipPath: brushHelper.makeRectPanelClipPath(rect),\n        isTargetByCursor: brushHelper.makeRectIsTargetByCursor(rect, api, targetInfo.coordSysModel),\n        getLinearBrushOtherExtent: brushHelper.makeLinearBrushOtherExtent(rect)\n      };\n    });\n  };\n\n  BrushTargetManager.prototype.controlSeries = function (area, seriesModel, ecModel) {\n    var targetInfo = this.findTargetInfo(area, ecModel);\n    return targetInfo === true || targetInfo && indexOf(targetInfo.coordSyses, seriesModel.coordinateSystem) >= 0;\n  };\n\n  BrushTargetManager.prototype.findTargetInfo = function (area, ecModel) {\n    var targetInfoList = this._targetInfoList;\n    var foundCpts = parseFinder(ecModel, area);\n\n    for (var i = 0; i < targetInfoList.length; i++) {\n      var targetInfo = targetInfoList[i];\n      var areaPanelId = area.panelId;\n\n      if (areaPanelId) {\n        if (targetInfo.panelId === areaPanelId) {\n          return targetInfo;\n        }\n      } else {\n        for (var j = 0; j < targetInfoMatchers.length; j++) {\n          if (targetInfoMatchers[j](foundCpts, targetInfo)) {\n            return targetInfo;\n          }\n        }\n      }\n    }\n\n    return true;\n  };\n\n  return BrushTargetManager;\n}();\n\nfunction formatMinMax(minMax) {\n  minMax[0] > minMax[1] && minMax.reverse();\n  return minMax;\n}\n\nfunction parseFinder(ecModel, finder) {\n  return modelUtilParseFinder(ecModel, finder, {\n    includeMainTypes: INCLUDE_FINDER_MAIN_TYPES\n  });\n}\n\nvar targetInfoBuilders = {\n  grid: function (foundCpts, targetInfoList) {\n    var xAxisModels = foundCpts.xAxisModels;\n    var yAxisModels = foundCpts.yAxisModels;\n    var gridModels = foundCpts.gridModels;\n    var gridModelMap = createHashMap();\n    var xAxesHas = {};\n    var yAxesHas = {};\n\n    if (!xAxisModels && !yAxisModels && !gridModels) {\n      return;\n    }\n\n    each(xAxisModels, function (axisModel) {\n      var gridModel = axisModel.axis.grid.model;\n      gridModelMap.set(gridModel.id, gridModel);\n      xAxesHas[gridModel.id] = true;\n    });\n    each(yAxisModels, function (axisModel) {\n      var gridModel = axisModel.axis.grid.model;\n      gridModelMap.set(gridModel.id, gridModel);\n      yAxesHas[gridModel.id] = true;\n    });\n    each(gridModels, function (gridModel) {\n      gridModelMap.set(gridModel.id, gridModel);\n      xAxesHas[gridModel.id] = true;\n      yAxesHas[gridModel.id] = true;\n    });\n    gridModelMap.each(function (gridModel) {\n      var grid = gridModel.coordinateSystem;\n      var cartesians = [];\n      each(grid.getCartesians(), function (cartesian, index) {\n        if (indexOf(xAxisModels, cartesian.getAxis('x').model) >= 0 || indexOf(yAxisModels, cartesian.getAxis('y').model) >= 0) {\n          cartesians.push(cartesian);\n        }\n      });\n      targetInfoList.push({\n        panelId: 'grid--' + gridModel.id,\n        gridModel: gridModel,\n        coordSysModel: gridModel,\n        coordSys: cartesians[0],\n        coordSyses: cartesians,\n        getPanelRect: panelRectBuilders.grid,\n        xAxisDeclared: xAxesHas[gridModel.id],\n        yAxisDeclared: yAxesHas[gridModel.id]\n      });\n    });\n  },\n  geo: function (foundCpts, targetInfoList) {\n    each(foundCpts.geoModels, function (geoModel) {\n      var coordSys = geoModel.coordinateSystem;\n      targetInfoList.push({\n        panelId: 'geo--' + geoModel.id,\n        geoModel: geoModel,\n        coordSysModel: geoModel,\n        coordSys: coordSys,\n        coordSyses: [coordSys],\n        getPanelRect: panelRectBuilders.geo\n      });\n    });\n  }\n};\nvar targetInfoMatchers = [function (foundCpts, targetInfo) {\n  var xAxisModel = foundCpts.xAxisModel;\n  var yAxisModel = foundCpts.yAxisModel;\n  var gridModel = foundCpts.gridModel;\n  !gridModel && xAxisModel && (gridModel = xAxisModel.axis.grid.model);\n  !gridModel && yAxisModel && (gridModel = yAxisModel.axis.grid.model);\n  return gridModel && gridModel === targetInfo.gridModel;\n}, function (foundCpts, targetInfo) {\n  var geoModel = foundCpts.geoModel;\n  return geoModel && geoModel === targetInfo.geoModel;\n}];\nvar panelRectBuilders = {\n  grid: function () {\n    return this.coordSys.master.getRect().clone();\n  },\n  geo: function () {\n    var coordSys = this.coordSys;\n    var rect = coordSys.getBoundingRect().clone();\n    rect.applyTransform(graphic.getTransform(coordSys));\n    return rect;\n  }\n};\nvar coordConvert = {\n  lineX: curry(axisConvert, 0),\n  lineY: curry(axisConvert, 1),\n  rect: function (to, coordSys, rangeOrCoordRange) {\n    var xminymin = coordSys[COORD_CONVERTS[to]]([rangeOrCoordRange[0][0], rangeOrCoordRange[1][0]]);\n    var xmaxymax = coordSys[COORD_CONVERTS[to]]([rangeOrCoordRange[0][1], rangeOrCoordRange[1][1]]);\n    var values = [formatMinMax([xminymin[0], xmaxymax[0]]), formatMinMax([xminymin[1], xmaxymax[1]])];\n    return {\n      values: values,\n      xyMinMax: values\n    };\n  },\n  polygon: function (to, coordSys, rangeOrCoordRange) {\n    var xyMinMax = [[Infinity, -Infinity], [Infinity, -Infinity]];\n    var values = map(rangeOrCoordRange, function (item) {\n      var p = coordSys[COORD_CONVERTS[to]](item);\n      xyMinMax[0][0] = Math.min(xyMinMax[0][0], p[0]);\n      xyMinMax[1][0] = Math.min(xyMinMax[1][0], p[1]);\n      xyMinMax[0][1] = Math.max(xyMinMax[0][1], p[0]);\n      xyMinMax[1][1] = Math.max(xyMinMax[1][1], p[1]);\n      return p;\n    });\n    return {\n      values: values,\n      xyMinMax: xyMinMax\n    };\n  }\n};\n\nfunction axisConvert(axisNameIndex, to, coordSys, rangeOrCoordRange) {\n  if (process.env.NODE_ENV !== 'production') {\n    assert(coordSys.type === 'cartesian2d', 'lineX/lineY brush is available only in cartesian2d.');\n  }\n\n  var axis = coordSys.getAxis(['x', 'y'][axisNameIndex]);\n  var values = formatMinMax(map([0, 1], function (i) {\n    return to ? axis.coordToData(axis.toLocalCoord(rangeOrCoordRange[i])) : axis.toGlobalCoord(axis.dataToCoord(rangeOrCoordRange[i]));\n  }));\n  var xyMinMax = [];\n  xyMinMax[axisNameIndex] = values;\n  xyMinMax[1 - axisNameIndex] = [NaN, NaN];\n  return {\n    values: values,\n    xyMinMax: xyMinMax\n  };\n}\n\nvar diffProcessor = {\n  lineX: curry(axisDiffProcessor, 0),\n  lineY: curry(axisDiffProcessor, 1),\n  rect: function (values, refer, scales) {\n    return [[values[0][0] - scales[0] * refer[0][0], values[0][1] - scales[0] * refer[0][1]], [values[1][0] - scales[1] * refer[1][0], values[1][1] - scales[1] * refer[1][1]]];\n  },\n  polygon: function (values, refer, scales) {\n    return map(values, function (item, idx) {\n      return [item[0] - scales[0] * refer[idx][0], item[1] - scales[1] * refer[idx][1]];\n    });\n  }\n};\n\nfunction axisDiffProcessor(axisNameIndex, values, refer, scales) {\n  return [values[0] - scales[axisNameIndex] * refer[0], values[1] - scales[axisNameIndex] * refer[1]];\n}\n\nfunction getScales(xyMinMaxCurr, xyMinMaxOrigin) {\n  var sizeCurr = getSize(xyMinMaxCurr);\n  var sizeOrigin = getSize(xyMinMaxOrigin);\n  var scales = [sizeCurr[0] / sizeOrigin[0], sizeCurr[1] / sizeOrigin[1]];\n  isNaN(scales[0]) && (scales[0] = 1);\n  isNaN(scales[1]) && (scales[1] = 1);\n  return scales;\n}\n\nfunction getSize(xyMinMax) {\n  return xyMinMax ? [xyMinMax[0][1] - xyMinMax[0][0], xyMinMax[1][1] - xyMinMax[1][0]] : [NaN, NaN];\n}\n\nexport default BrushTargetManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BrushController from '../../helper/BrushController';\nimport BrushTargetManager from '../../helper/BrushTargetManager';\nimport * as history from '../../dataZoom/history';\nimport sliderMove from '../../helper/sliderMove';\nimport { ToolboxFeature } from '../featureManager';\nimport { makeInternalComponentId, parseFinder } from '../../../util/model';\nimport { registerInternalOptionCreator } from '../../../model/internalComponentCreator';\nvar each = zrUtil.each;\nvar DATA_ZOOM_ID_BASE = makeInternalComponentId('toolbox-dataZoom_');\nvar ICON_TYPES = ['zoom', 'back'];\n\nvar DataZoomFeature = function (_super) {\n  __extends(DataZoomFeature, _super);\n\n  function DataZoomFeature() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  DataZoomFeature.prototype.render = function (featureModel, ecModel, api, payload) {\n    if (!this.brushController) {\n      this.brushController = new BrushController(api.getZr());\n      this.brushController.on('brush', zrUtil.bind(this._onBrush, this)).mount();\n    }\n\n    updateZoomBtnStatus(featureModel, ecModel, this, payload, api);\n    updateBackBtnStatus(featureModel, ecModel);\n  };\n\n  DataZoomFeature.prototype.onclick = function (ecModel, api, type) {\n    handlers[type].call(this);\n  };\n\n  DataZoomFeature.prototype.remove = function (ecModel, api) {\n    this.brushController.unmount();\n  };\n\n  DataZoomFeature.prototype.dispose = function (ecModel, api) {\n    this.brushController.dispose();\n  };\n\n  DataZoomFeature.prototype._onBrush = function (eventParam) {\n    var areas = eventParam.areas;\n\n    if (!eventParam.isEnd || !areas.length) {\n      return;\n    }\n\n    var snapshot = {};\n    var ecModel = this.ecModel;\n    this.brushController.updateCovers([]);\n    var brushTargetManager = new BrushTargetManager(makeAxisFinder(this.model), ecModel, {\n      include: ['grid']\n    });\n    brushTargetManager.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) {\n      if (coordSys.type !== 'cartesian2d') {\n        return;\n      }\n\n      var brushType = area.brushType;\n\n      if (brushType === 'rect') {\n        setBatch('x', coordSys, coordRange[0]);\n        setBatch('y', coordSys, coordRange[1]);\n      } else {\n        setBatch({\n          lineX: 'x',\n          lineY: 'y'\n        }[brushType], coordSys, coordRange);\n      }\n    });\n    history.push(ecModel, snapshot);\n\n    this._dispatchZoomAction(snapshot);\n\n    function setBatch(dimName, coordSys, minMax) {\n      var axis = coordSys.getAxis(dimName);\n      var axisModel = axis.model;\n      var dataZoomModel = findDataZoom(dimName, axisModel, ecModel);\n      var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy(axisModel).getMinMaxSpan();\n\n      if (minMaxSpan.minValueSpan != null || minMaxSpan.maxValueSpan != null) {\n        minMax = sliderMove(0, minMax.slice(), axis.scale.getExtent(), 0, minMaxSpan.minValueSpan, minMaxSpan.maxValueSpan);\n      }\n\n      dataZoomModel && (snapshot[dataZoomModel.id] = {\n        dataZoomId: dataZoomModel.id,\n        startValue: minMax[0],\n        endValue: minMax[1]\n      });\n    }\n\n    function findDataZoom(dimName, axisModel, ecModel) {\n      var found;\n      ecModel.eachComponent({\n        mainType: 'dataZoom',\n        subType: 'select'\n      }, function (dzModel) {\n        var has = dzModel.getAxisModel(dimName, axisModel.componentIndex);\n        has && (found = dzModel);\n      });\n      return found;\n    }\n  };\n\n  ;\n\n  DataZoomFeature.prototype._dispatchZoomAction = function (snapshot) {\n    var batch = [];\n    each(snapshot, function (batchItem, dataZoomId) {\n      batch.push(zrUtil.clone(batchItem));\n    });\n    batch.length && this.api.dispatchAction({\n      type: 'dataZoom',\n      from: this.uid,\n      batch: batch\n    });\n  };\n\n  DataZoomFeature.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      filterMode: 'filter',\n      icon: {\n        zoom: 'M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1',\n        back: 'M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26'\n      },\n      title: ecModel.getLocale(['toolbox', 'dataZoom', 'title']),\n      brushStyle: {\n        borderWidth: 0,\n        color: 'rgba(210,219,238,0.2)'\n      }\n    };\n    return defaultOption;\n  };\n\n  return DataZoomFeature;\n}(ToolboxFeature);\n\nvar handlers = {\n  zoom: function () {\n    var nextActive = !this.isZoomActive;\n    this.api.dispatchAction({\n      type: 'takeGlobalCursor',\n      key: 'dataZoomSelect',\n      dataZoomSelectActive: nextActive\n    });\n  },\n  back: function () {\n    this._dispatchZoomAction(history.pop(this.ecModel));\n  }\n};\n\nfunction makeAxisFinder(dzFeatureModel) {\n  var setting = {\n    xAxisIndex: dzFeatureModel.get('xAxisIndex', true),\n    yAxisIndex: dzFeatureModel.get('yAxisIndex', true),\n    xAxisId: dzFeatureModel.get('xAxisId', true),\n    yAxisId: dzFeatureModel.get('yAxisId', true)\n  };\n\n  if (setting.xAxisIndex == null && setting.xAxisId == null) {\n    setting.xAxisIndex = 'all';\n  }\n\n  if (setting.yAxisIndex == null && setting.yAxisId == null) {\n    setting.yAxisIndex = 'all';\n  }\n\n  return setting;\n}\n\nfunction updateBackBtnStatus(featureModel, ecModel) {\n  featureModel.setIconStatus('back', history.count(ecModel) > 1 ? 'emphasis' : 'normal');\n}\n\nfunction updateZoomBtnStatus(featureModel, ecModel, view, payload, api) {\n  var zoomActive = view.isZoomActive;\n\n  if (payload && payload.type === 'takeGlobalCursor') {\n    zoomActive = payload.key === 'dataZoomSelect' ? payload.dataZoomSelectActive : false;\n  }\n\n  view.isZoomActive = zoomActive;\n  featureModel.setIconStatus('zoom', zoomActive ? 'emphasis' : 'normal');\n  var brushTargetManager = new BrushTargetManager(makeAxisFinder(featureModel), ecModel, {\n    include: ['grid']\n  });\n  var panels = brushTargetManager.makePanelOpts(api, function (targetInfo) {\n    return targetInfo.xAxisDeclared && !targetInfo.yAxisDeclared ? 'lineX' : !targetInfo.xAxisDeclared && targetInfo.yAxisDeclared ? 'lineY' : 'rect';\n  });\n  view.brushController.setPanels(panels).enableBrush(zoomActive && panels.length ? {\n    brushType: 'auto',\n    brushStyle: featureModel.getModel('brushStyle').getItemStyle()\n  } : false);\n}\n\nregisterInternalOptionCreator('dataZoom', function (ecModel) {\n  var toolboxModel = ecModel.getComponent('toolbox', 0);\n\n  if (!toolboxModel) {\n    return;\n  }\n\n  var dzFeatureModel = toolboxModel.getModel(['feature', 'dataZoom']);\n  var dzOptions = [];\n  var finder = makeAxisFinder(dzFeatureModel);\n  var finderResult = parseFinder(ecModel, finder);\n  each(finderResult.xAxisModels, function (axisModel) {\n    return buildInternalOptions(axisModel, 'xAxis', 'xAxisIndex');\n  });\n  each(finderResult.yAxisModels, function (axisModel) {\n    return buildInternalOptions(axisModel, 'yAxis', 'yAxisIndex');\n  });\n\n  function buildInternalOptions(axisModel, axisMainType, axisIndexPropName) {\n    var axisIndex = axisModel.componentIndex;\n    var newOpt = {\n      type: 'select',\n      $fromToolbox: true,\n      filterMode: dzFeatureModel.get('filterMode', true) || 'filter',\n      id: DATA_ZOOM_ID_BASE + axisMainType + axisIndex\n    };\n    newOpt[axisIndexPropName] = axisIndex;\n    dzOptions.push(newOpt);\n  }\n\n  return dzOptions;\n});\nexport default DataZoomFeature;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport { install as installDataZoomSelect } from '../../component/dataZoom/installDataZoomSelect';\nimport ToolboxModel from './ToolboxModel';\nimport ToolboxView from './ToolboxView';\nimport { registerFeature } from './featureManager';\nimport SaveAsImage from './feature/SaveAsImage';\nimport MagicType from './feature/MagicType';\nimport DataView from './feature/DataView';\nimport Restore from './feature/Restore';\nimport DataZoom from './feature/DataZoom';\nexport function install(registers) {\n  registers.registerComponentModel(ToolboxModel);\n  registers.registerComponentView(ToolboxView);\n  registerFeature('saveAsImage', SaveAsImage);\n  registerFeature('magicType', MagicType);\n  registerFeature('dataView', DataView);\n  registerFeature('dataZoom', DataZoom);\n  registerFeature('restore', Restore);\n  use(installDataZoomSelect);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\n\nvar TooltipModel = function (_super) {\n  __extends(TooltipModel, _super);\n\n  function TooltipModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TooltipModel.type;\n    return _this;\n  }\n\n  TooltipModel.type = 'tooltip';\n  TooltipModel.dependencies = ['axisPointer'];\n  TooltipModel.defaultOption = {\n    zlevel: 0,\n    z: 60,\n    show: true,\n    showContent: true,\n    trigger: 'item',\n    triggerOn: 'mousemove|click',\n    alwaysShowContent: false,\n    displayMode: 'single',\n    renderMode: 'auto',\n    confine: null,\n    showDelay: 0,\n    hideDelay: 100,\n    transitionDuration: 0.4,\n    enterable: false,\n    backgroundColor: '#fff',\n    shadowBlur: 10,\n    shadowColor: 'rgba(0, 0, 0, .2)',\n    shadowOffsetX: 1,\n    shadowOffsetY: 2,\n    borderRadius: 4,\n    borderWidth: 1,\n    padding: null,\n    extraCssText: '',\n    axisPointer: {\n      type: 'line',\n      axis: 'auto',\n      animation: 'auto',\n      animationDurationUpdate: 200,\n      animationEasingUpdate: 'exponentialOut',\n      crossStyle: {\n        color: '#999',\n        width: 1,\n        type: 'dashed',\n        textStyle: {}\n      }\n    },\n    textStyle: {\n      color: '#666',\n      fontSize: 14\n    }\n  };\n  return TooltipModel;\n}(ComponentModel);\n\nexport default TooltipModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function shouldTooltipConfine(tooltipModel) {\n  var confineOption = tooltipModel.get('confine');\n  return confineOption != null ? !!confineOption : tooltipModel.get('renderMode') === 'richText';\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isString, indexOf, map, each, bind, isArray, isDom } from 'zrender/lib/core/util';\nimport { toHex } from 'zrender/lib/tool/color';\nimport { normalizeEvent } from 'zrender/lib/core/event';\nimport { transformLocalCoord } from 'zrender/lib/core/dom';\nimport env from 'zrender/lib/core/env';\nimport { convertToColorString, toCamelCase, normalizeCssArray } from '../../util/format';\nimport { shouldTooltipConfine } from './helper';\nimport { getPaddingFromTooltipModel } from './tooltipMarkup';\nvar vendors = ['-ms-', '-moz-', '-o-', '-webkit-', ''];\nvar gCssText = 'position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;';\n\nfunction mirrorPos(pos) {\n  pos = pos === 'left' ? 'right' : pos === 'right' ? 'left' : pos === 'top' ? 'bottom' : 'top';\n  return pos;\n}\n\nfunction assembleArrow(backgroundColor, borderColor, arrowPosition) {\n  if (!isString(arrowPosition) || arrowPosition === 'inside') {\n    return '';\n  }\n\n  borderColor = convertToColorString(borderColor);\n  var arrowPos = mirrorPos(arrowPosition);\n  var positionStyle = '';\n  var transformStyle = '';\n\n  if (indexOf(['left', 'right'], arrowPos) > -1) {\n    positionStyle = arrowPos + \":-6px;top:50%;\";\n    transformStyle = \"translateY(-50%) rotate(\" + (arrowPos === 'left' ? -225 : -45) + \"deg)\";\n  } else {\n    positionStyle = arrowPos + \":-6px;left:50%;\";\n    transformStyle = \"translateX(-50%) rotate(\" + (arrowPos === 'top' ? 225 : 45) + \"deg)\";\n  }\n\n  transformStyle = map(vendors, function (vendorPrefix) {\n    return vendorPrefix + 'transform:' + transformStyle;\n  }).join(';');\n  var styleCss = ['position:absolute;width:10px;height:10px;', \"\" + positionStyle + transformStyle + \";\", \"border-bottom: \" + borderColor + \" solid 1px;\", \"border-right: \" + borderColor + \" solid 1px;\", \"background-color: \" + backgroundColor + \";\", 'box-shadow: 8px 8px 16px -3px #000;'];\n  return \"<div style=\\\"\" + styleCss.join('') + \"\\\"></div>\";\n}\n\nfunction assembleTransition(duration, onlyFade) {\n  var transitionCurve = 'cubic-bezier(0.23, 1, 0.32, 1)';\n  var transitionText = 'opacity ' + duration / 2 + 's ' + transitionCurve + ',' + 'visibility ' + duration / 2 + 's ' + transitionCurve;\n\n  if (!onlyFade) {\n    transitionText += ',left ' + duration + 's ' + transitionCurve + ',top ' + duration + 's ' + transitionCurve;\n  }\n\n  return map(vendors, function (vendorPrefix) {\n    return vendorPrefix + 'transition:' + transitionText;\n  }).join(';');\n}\n\nfunction assembleFont(textStyleModel) {\n  var cssText = [];\n  var fontSize = textStyleModel.get('fontSize');\n  var color = textStyleModel.getTextColor();\n  color && cssText.push('color:' + color);\n  cssText.push('font:' + textStyleModel.getFont());\n  fontSize && cssText.push('line-height:' + Math.round(fontSize * 3 / 2) + 'px');\n  var shadowColor = textStyleModel.get('textShadowColor');\n  var shadowBlur = textStyleModel.get('textShadowBlur') || 0;\n  var shadowOffsetX = textStyleModel.get('textShadowOffsetX') || 0;\n  var shadowOffsetY = textStyleModel.get('textShadowOffsetY') || 0;\n  shadowColor && shadowBlur && cssText.push('text-shadow:' + shadowOffsetX + 'px ' + shadowOffsetY + 'px ' + shadowBlur + 'px ' + shadowColor);\n  each(['decoration', 'align'], function (name) {\n    var val = textStyleModel.get(name);\n    val && cssText.push('text-' + name + ':' + val);\n  });\n  return cssText.join(';');\n}\n\nfunction assembleCssText(tooltipModel, enableTransition, onlyFade) {\n  var cssText = [];\n  var transitionDuration = tooltipModel.get('transitionDuration');\n  var backgroundColor = tooltipModel.get('backgroundColor');\n  var shadowBlur = tooltipModel.get('shadowBlur');\n  var shadowColor = tooltipModel.get('shadowColor');\n  var shadowOffsetX = tooltipModel.get('shadowOffsetX');\n  var shadowOffsetY = tooltipModel.get('shadowOffsetY');\n  var textStyleModel = tooltipModel.getModel('textStyle');\n  var padding = getPaddingFromTooltipModel(tooltipModel, 'html');\n  var boxShadow = shadowOffsetX + \"px \" + shadowOffsetY + \"px \" + shadowBlur + \"px \" + shadowColor;\n  cssText.push('box-shadow:' + boxShadow);\n  enableTransition && transitionDuration && cssText.push(assembleTransition(transitionDuration, onlyFade));\n\n  if (backgroundColor) {\n    if (env.canvasSupported) {\n      cssText.push('background-Color:' + backgroundColor);\n    } else {\n      cssText.push('background-Color:#' + toHex(backgroundColor));\n      cssText.push('filter:alpha(opacity=70)');\n    }\n  }\n\n  each(['width', 'color', 'radius'], function (name) {\n    var borderName = 'border-' + name;\n    var camelCase = toCamelCase(borderName);\n    var val = tooltipModel.get(camelCase);\n    val != null && cssText.push(borderName + ':' + val + (name === 'color' ? '' : 'px'));\n  });\n  cssText.push(assembleFont(textStyleModel));\n\n  if (padding != null) {\n    cssText.push('padding:' + normalizeCssArray(padding).join('px ') + 'px');\n  }\n\n  return cssText.join(';') + ';';\n}\n\nfunction makeStyleCoord(out, zr, appendToBody, zrX, zrY) {\n  var zrPainter = zr && zr.painter;\n\n  if (appendToBody) {\n    var zrViewportRoot = zrPainter && zrPainter.getViewportRoot();\n\n    if (zrViewportRoot) {\n      transformLocalCoord(out, zrViewportRoot, document.body, zrX, zrY);\n    }\n  } else {\n    out[0] = zrX;\n    out[1] = zrY;\n    var viewportRootOffset = zrPainter && zrPainter.getViewportRootOffset();\n\n    if (viewportRootOffset) {\n      out[0] += viewportRootOffset.offsetLeft;\n      out[1] += viewportRootOffset.offsetTop;\n    }\n  }\n\n  out[2] = out[0] / zr.getWidth();\n  out[3] = out[1] / zr.getHeight();\n}\n\nvar TooltipHTMLContent = function () {\n  function TooltipHTMLContent(container, api, opt) {\n    this._show = false;\n    this._styleCoord = [0, 0, 0, 0];\n    this._enterable = true;\n    this._firstShow = true;\n    this._longHide = true;\n\n    if (env.wxa) {\n      return null;\n    }\n\n    var el = document.createElement('div');\n    el.domBelongToZr = true;\n    this.el = el;\n    var zr = this._zr = api.getZr();\n    var appendToBody = this._appendToBody = opt && opt.appendToBody;\n    makeStyleCoord(this._styleCoord, zr, appendToBody, api.getWidth() / 2, api.getHeight() / 2);\n\n    if (appendToBody) {\n      document.body.appendChild(el);\n    } else {\n      container.appendChild(el);\n    }\n\n    this._container = container;\n    var self = this;\n\n    el.onmouseenter = function () {\n      if (self._enterable) {\n        clearTimeout(self._hideTimeout);\n        self._show = true;\n      }\n\n      self._inContent = true;\n    };\n\n    el.onmousemove = function (e) {\n      e = e || window.event;\n\n      if (!self._enterable) {\n        var handler = zr.handler;\n        var zrViewportRoot = zr.painter.getViewportRoot();\n        normalizeEvent(zrViewportRoot, e, true);\n        handler.dispatch('mousemove', e);\n      }\n    };\n\n    el.onmouseleave = function () {\n      self._inContent = false;\n\n      if (self._enterable) {\n        if (self._show) {\n          self.hideLater(self._hideDelay);\n        }\n      }\n    };\n  }\n\n  TooltipHTMLContent.prototype.update = function (tooltipModel) {\n    var container = this._container;\n    var stl = container.currentStyle || document.defaultView.getComputedStyle(container);\n    var domStyle = container.style;\n\n    if (domStyle.position !== 'absolute' && stl.position !== 'absolute') {\n      domStyle.position = 'relative';\n    }\n\n    var alwaysShowContent = tooltipModel.get('alwaysShowContent');\n    alwaysShowContent && this._moveIfResized();\n    this.el.className = tooltipModel.get('className') || '';\n  };\n\n  TooltipHTMLContent.prototype.show = function (tooltipModel, nearPointColor) {\n    clearTimeout(this._hideTimeout);\n    clearTimeout(this._longHideTimeout);\n    var el = this.el;\n    var styleCoord = this._styleCoord;\n    var offset = el.offsetHeight / 2;\n    nearPointColor = convertToColorString(nearPointColor);\n    el.style.cssText = gCssText + assembleCssText(tooltipModel, !this._firstShow, this._longHide) + ';left:' + styleCoord[0] + 'px;top:' + (styleCoord[1] - offset) + 'px;' + (\"border-color: \" + nearPointColor + \";\") + (tooltipModel.get('extraCssText') || '');\n    el.style.display = el.innerHTML ? 'block' : 'none';\n    el.style.pointerEvents = this._enterable ? 'auto' : 'none';\n    this._show = true;\n    this._firstShow = false;\n    this._longHide = false;\n  };\n\n  TooltipHTMLContent.prototype.setContent = function (content, markers, tooltipModel, borderColor, arrowPosition) {\n    if (content == null) {\n      return;\n    }\n\n    var el = this.el;\n\n    if (isString(arrowPosition) && tooltipModel.get('trigger') === 'item' && !shouldTooltipConfine(tooltipModel)) {\n      content += assembleArrow(tooltipModel.get('backgroundColor'), borderColor, arrowPosition);\n    }\n\n    if (isString(content)) {\n      el.innerHTML = content;\n    } else if (content) {\n      el.innerHTML = '';\n\n      if (!isArray(content)) {\n        content = [content];\n      }\n\n      for (var i = 0; i < content.length; i++) {\n        if (isDom(content[i]) && content[i].parentNode !== el) {\n          el.appendChild(content[i]);\n        }\n      }\n    }\n  };\n\n  TooltipHTMLContent.prototype.setEnterable = function (enterable) {\n    this._enterable = enterable;\n  };\n\n  TooltipHTMLContent.prototype.getSize = function () {\n    var el = this.el;\n    return [el.clientWidth, el.clientHeight];\n  };\n\n  TooltipHTMLContent.prototype.moveTo = function (zrX, zrY) {\n    var styleCoord = this._styleCoord;\n    makeStyleCoord(styleCoord, this._zr, this._appendToBody, zrX, zrY);\n\n    if (styleCoord[0] != null && styleCoord[1] != null) {\n      var style = this.el.style;\n      style.left = styleCoord[0].toFixed(0) + 'px';\n      style.top = styleCoord[1].toFixed(0) + 'px';\n    }\n  };\n\n  TooltipHTMLContent.prototype._moveIfResized = function () {\n    var ratioX = this._styleCoord[2];\n    var ratioY = this._styleCoord[3];\n    this.moveTo(ratioX * this._zr.getWidth(), ratioY * this._zr.getHeight());\n  };\n\n  TooltipHTMLContent.prototype.hide = function () {\n    var _this = this;\n\n    this.el.style.visibility = 'hidden';\n    this.el.style.opacity = '0';\n    this._show = false;\n    this._longHideTimeout = setTimeout(function () {\n      return _this._longHide = true;\n    }, 500);\n  };\n\n  TooltipHTMLContent.prototype.hideLater = function (time) {\n    if (this._show && !(this._inContent && this._enterable)) {\n      if (time) {\n        this._hideDelay = time;\n        this._show = false;\n        this._hideTimeout = setTimeout(bind(this.hide, this), time);\n      } else {\n        this.hide();\n      }\n    }\n  };\n\n  TooltipHTMLContent.prototype.isShow = function () {\n    return this._show;\n  };\n\n  TooltipHTMLContent.prototype.dispose = function () {\n    this.el.parentNode.removeChild(this.el);\n  };\n\n  TooltipHTMLContent.prototype.getOuterSize = function () {\n    var width = this.el.clientWidth;\n    var height = this.el.clientHeight;\n\n    if (document.defaultView && document.defaultView.getComputedStyle) {\n      var stl = document.defaultView.getComputedStyle(this.el);\n\n      if (stl) {\n        width += parseInt(stl.borderLeftWidth, 10) + parseInt(stl.borderRightWidth, 10);\n        height += parseInt(stl.borderTopWidth, 10) + parseInt(stl.borderBottomWidth, 10);\n      }\n    }\n\n    return {\n      width: width,\n      height: height\n    };\n  };\n\n  return TooltipHTMLContent;\n}();\n\nexport default TooltipHTMLContent;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ZRText from 'zrender/lib/graphic/Text';\nimport { getPaddingFromTooltipModel } from './tooltipMarkup';\nimport { throwError } from '../../util/log';\n\nvar TooltipRichContent = function () {\n  function TooltipRichContent(api) {\n    this._show = false;\n    this._styleCoord = [0, 0, 0, 0];\n    this._enterable = true;\n    this._zr = api.getZr();\n    makeStyleCoord(this._styleCoord, this._zr, api.getWidth() / 2, api.getHeight() / 2);\n  }\n\n  TooltipRichContent.prototype.update = function (tooltipModel) {\n    var alwaysShowContent = tooltipModel.get('alwaysShowContent');\n    alwaysShowContent && this._moveIfResized();\n  };\n\n  TooltipRichContent.prototype.show = function () {\n    if (this._hideTimeout) {\n      clearTimeout(this._hideTimeout);\n    }\n\n    this.el.show();\n    this._show = true;\n  };\n\n  TooltipRichContent.prototype.setContent = function (content, markupStyleCreator, tooltipModel, borderColor, arrowPosition) {\n    if (zrUtil.isObject(content)) {\n      throwError(process.env.NODE_ENV !== 'production' ? 'Passing DOM nodes as content is not supported in richText tooltip!' : '');\n    }\n\n    if (this.el) {\n      this._zr.remove(this.el);\n    }\n\n    var textStyleModel = tooltipModel.getModel('textStyle');\n    this.el = new ZRText({\n      style: {\n        rich: markupStyleCreator.richTextStyles,\n        text: content,\n        lineHeight: 22,\n        backgroundColor: tooltipModel.get('backgroundColor'),\n        borderRadius: tooltipModel.get('borderRadius'),\n        borderWidth: 1,\n        borderColor: borderColor,\n        shadowColor: tooltipModel.get('shadowColor'),\n        shadowBlur: tooltipModel.get('shadowBlur'),\n        shadowOffsetX: tooltipModel.get('shadowOffsetX'),\n        shadowOffsetY: tooltipModel.get('shadowOffsetY'),\n        textShadowColor: textStyleModel.get('textShadowColor'),\n        textShadowBlur: textStyleModel.get('textShadowBlur') || 0,\n        textShadowOffsetX: textStyleModel.get('textShadowOffsetX') || 0,\n        textShadowOffsetY: textStyleModel.get('textShadowOffsetY') || 0,\n        fill: tooltipModel.get(['textStyle', 'color']),\n        padding: getPaddingFromTooltipModel(tooltipModel, 'richText'),\n        verticalAlign: 'top',\n        align: 'left'\n      },\n      z: tooltipModel.get('z')\n    });\n\n    this._zr.add(this.el);\n\n    var self = this;\n    this.el.on('mouseover', function () {\n      if (self._enterable) {\n        clearTimeout(self._hideTimeout);\n        self._show = true;\n      }\n\n      self._inContent = true;\n    });\n    this.el.on('mouseout', function () {\n      if (self._enterable) {\n        if (self._show) {\n          self.hideLater(self._hideDelay);\n        }\n      }\n\n      self._inContent = false;\n    });\n  };\n\n  TooltipRichContent.prototype.setEnterable = function (enterable) {\n    this._enterable = enterable;\n  };\n\n  TooltipRichContent.prototype.getSize = function () {\n    var el = this.el;\n    var bounding = this.el.getBoundingRect();\n    var shadowOuterSize = calcShadowOuterSize(el.style);\n    return [bounding.width + shadowOuterSize.left + shadowOuterSize.right, bounding.height + shadowOuterSize.top + shadowOuterSize.bottom];\n  };\n\n  TooltipRichContent.prototype.moveTo = function (x, y) {\n    var el = this.el;\n\n    if (el) {\n      var styleCoord = this._styleCoord;\n      makeStyleCoord(styleCoord, this._zr, x, y);\n      x = styleCoord[0];\n      y = styleCoord[1];\n      var style = el.style;\n      var borderWidth = mathMaxWith0(style.borderWidth || 0);\n      var shadowOuterSize = calcShadowOuterSize(style);\n      el.x = x + borderWidth + shadowOuterSize.left;\n      el.y = y + borderWidth + shadowOuterSize.top;\n      el.markRedraw();\n    }\n  };\n\n  TooltipRichContent.prototype._moveIfResized = function () {\n    var ratioX = this._styleCoord[2];\n    var ratioY = this._styleCoord[3];\n    this.moveTo(ratioX * this._zr.getWidth(), ratioY * this._zr.getHeight());\n  };\n\n  TooltipRichContent.prototype.hide = function () {\n    if (this.el) {\n      this.el.hide();\n    }\n\n    this._show = false;\n  };\n\n  TooltipRichContent.prototype.hideLater = function (time) {\n    if (this._show && !(this._inContent && this._enterable)) {\n      if (time) {\n        this._hideDelay = time;\n        this._show = false;\n        this._hideTimeout = setTimeout(zrUtil.bind(this.hide, this), time);\n      } else {\n        this.hide();\n      }\n    }\n  };\n\n  TooltipRichContent.prototype.isShow = function () {\n    return this._show;\n  };\n\n  TooltipRichContent.prototype.getOuterSize = function () {\n    var size = this.getSize();\n    return {\n      width: size[0],\n      height: size[1]\n    };\n  };\n\n  TooltipRichContent.prototype.dispose = function () {\n    this._zr.remove(this.el);\n  };\n\n  return TooltipRichContent;\n}();\n\nfunction mathMaxWith0(val) {\n  return Math.max(0, val);\n}\n\nfunction calcShadowOuterSize(style) {\n  var shadowBlur = mathMaxWith0(style.shadowBlur || 0);\n  var shadowOffsetX = mathMaxWith0(style.shadowOffsetX || 0);\n  var shadowOffsetY = mathMaxWith0(style.shadowOffsetY || 0);\n  return {\n    left: mathMaxWith0(shadowBlur - shadowOffsetX),\n    right: mathMaxWith0(shadowBlur + shadowOffsetX),\n    top: mathMaxWith0(shadowBlur - shadowOffsetY),\n    bottom: mathMaxWith0(shadowBlur + shadowOffsetY)\n  };\n}\n\nfunction makeStyleCoord(out, zr, zrX, zrY) {\n  out[0] = zrX;\n  out[1] = zrY;\n  out[2] = out[0] / zr.getWidth();\n  out[3] = out[1] / zr.getHeight();\n}\n\nexport default TooltipRichContent;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport TooltipHTMLContent from './TooltipHTMLContent';\nimport TooltipRichContent from './TooltipRichContent';\nimport * as formatUtil from '../../util/format';\nimport * as numberUtil from '../../util/number';\nimport * as graphic from '../../util/graphic';\nimport findPointFromSeries from '../axisPointer/findPointFromSeries';\nimport * as layoutUtil from '../../util/layout';\nimport Model from '../../model/Model';\nimport * as globalListener from '../axisPointer/globalListener';\nimport * as axisHelper from '../../coord/axisHelper';\nimport * as axisPointerViewHelper from '../axisPointer/viewHelper';\nimport { getTooltipRenderMode } from '../../util/model';\nimport ComponentView from '../../view/Component';\nimport { format as timeFormat } from '../../util/time';\nimport { getECData } from '../../util/innerStore';\nimport { shouldTooltipConfine } from './helper';\nimport { normalizeTooltipFormatResult } from '../../model/mixin/dataFormat';\nimport { createTooltipMarkup, buildTooltipMarkup, TooltipMarkupStyleCreator } from './tooltipMarkup';\nimport { findEventDispatcher } from '../../util/event';\nvar bind = zrUtil.bind;\nvar each = zrUtil.each;\nvar parsePercent = numberUtil.parsePercent;\nvar proxyRect = new graphic.Rect({\n  shape: {\n    x: -1,\n    y: -1,\n    width: 2,\n    height: 2\n  }\n});\n\nvar TooltipView = function (_super) {\n  __extends(TooltipView, _super);\n\n  function TooltipView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TooltipView.type;\n    return _this;\n  }\n\n  TooltipView.prototype.init = function (ecModel, api) {\n    if (env.node) {\n      return;\n    }\n\n    var tooltipModel = ecModel.getComponent('tooltip');\n    var renderMode = tooltipModel.get('renderMode');\n    this._renderMode = getTooltipRenderMode(renderMode);\n    this._tooltipContent = this._renderMode === 'richText' ? new TooltipRichContent(api) : new TooltipHTMLContent(api.getDom(), api, {\n      appendToBody: tooltipModel.get('appendToBody', true)\n    });\n  };\n\n  TooltipView.prototype.render = function (tooltipModel, ecModel, api) {\n    if (env.node) {\n      return;\n    }\n\n    this.group.removeAll();\n    this._tooltipModel = tooltipModel;\n    this._ecModel = ecModel;\n    this._api = api;\n    this._alwaysShowContent = tooltipModel.get('alwaysShowContent');\n    var tooltipContent = this._tooltipContent;\n    tooltipContent.update(tooltipModel);\n    tooltipContent.setEnterable(tooltipModel.get('enterable'));\n\n    this._initGlobalListener();\n\n    this._keepShow();\n  };\n\n  TooltipView.prototype._initGlobalListener = function () {\n    var tooltipModel = this._tooltipModel;\n    var triggerOn = tooltipModel.get('triggerOn');\n    globalListener.register('itemTooltip', this._api, bind(function (currTrigger, e, dispatchAction) {\n      if (triggerOn !== 'none') {\n        if (triggerOn.indexOf(currTrigger) >= 0) {\n          this._tryShow(e, dispatchAction);\n        } else if (currTrigger === 'leave') {\n          this._hide(dispatchAction);\n        }\n      }\n    }, this));\n  };\n\n  TooltipView.prototype._keepShow = function () {\n    var tooltipModel = this._tooltipModel;\n    var ecModel = this._ecModel;\n    var api = this._api;\n\n    if (this._lastX != null && this._lastY != null && tooltipModel.get('triggerOn') !== 'none') {\n      var self_1 = this;\n      clearTimeout(this._refreshUpdateTimeout);\n      this._refreshUpdateTimeout = setTimeout(function () {\n        !api.isDisposed() && self_1.manuallyShowTip(tooltipModel, ecModel, api, {\n          x: self_1._lastX,\n          y: self_1._lastY,\n          dataByCoordSys: self_1._lastDataByCoordSys\n        });\n      });\n    }\n  };\n\n  TooltipView.prototype.manuallyShowTip = function (tooltipModel, ecModel, api, payload) {\n    if (payload.from === this.uid || env.node) {\n      return;\n    }\n\n    var dispatchAction = makeDispatchAction(payload, api);\n    this._ticket = '';\n    var dataByCoordSys = payload.dataByCoordSys;\n\n    if (payload.tooltip && payload.x != null && payload.y != null) {\n      var el = proxyRect;\n      el.x = payload.x;\n      el.y = payload.y;\n      el.update();\n      el.tooltip = payload.tooltip;\n\n      this._tryShow({\n        offsetX: payload.x,\n        offsetY: payload.y,\n        target: el\n      }, dispatchAction);\n    } else if (dataByCoordSys) {\n      this._tryShow({\n        offsetX: payload.x,\n        offsetY: payload.y,\n        position: payload.position,\n        dataByCoordSys: dataByCoordSys,\n        tooltipOption: payload.tooltipOption\n      }, dispatchAction);\n    } else if (payload.seriesIndex != null) {\n      if (this._manuallyAxisShowTip(tooltipModel, ecModel, api, payload)) {\n        return;\n      }\n\n      var pointInfo = findPointFromSeries(payload, ecModel);\n      var cx = pointInfo.point[0];\n      var cy = pointInfo.point[1];\n\n      if (cx != null && cy != null) {\n        this._tryShow({\n          offsetX: cx,\n          offsetY: cy,\n          position: payload.position,\n          target: pointInfo.el\n        }, dispatchAction);\n      }\n    } else if (payload.x != null && payload.y != null) {\n      api.dispatchAction({\n        type: 'updateAxisPointer',\n        x: payload.x,\n        y: payload.y\n      });\n\n      this._tryShow({\n        offsetX: payload.x,\n        offsetY: payload.y,\n        position: payload.position,\n        target: api.getZr().findHover(payload.x, payload.y).target\n      }, dispatchAction);\n    }\n  };\n\n  TooltipView.prototype.manuallyHideTip = function (tooltipModel, ecModel, api, payload) {\n    var tooltipContent = this._tooltipContent;\n\n    if (!this._alwaysShowContent && this._tooltipModel) {\n      tooltipContent.hideLater(this._tooltipModel.get('hideDelay'));\n    }\n\n    this._lastX = this._lastY = this._lastDataByCoordSys = null;\n\n    if (payload.from !== this.uid) {\n      this._hide(makeDispatchAction(payload, api));\n    }\n  };\n\n  TooltipView.prototype._manuallyAxisShowTip = function (tooltipModel, ecModel, api, payload) {\n    var seriesIndex = payload.seriesIndex;\n    var dataIndex = payload.dataIndex;\n    var coordSysAxesInfo = ecModel.getComponent('axisPointer').coordSysAxesInfo;\n\n    if (seriesIndex == null || dataIndex == null || coordSysAxesInfo == null) {\n      return;\n    }\n\n    var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n\n    if (!seriesModel) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var tooltipCascadedModel = buildTooltipModel([data.getItemModel(dataIndex), seriesModel, (seriesModel.coordinateSystem || {}).model, tooltipModel]);\n\n    if (tooltipCascadedModel.get('trigger') !== 'axis') {\n      return;\n    }\n\n    api.dispatchAction({\n      type: 'updateAxisPointer',\n      seriesIndex: seriesIndex,\n      dataIndex: dataIndex,\n      position: payload.position\n    });\n    return true;\n  };\n\n  TooltipView.prototype._tryShow = function (e, dispatchAction) {\n    var el = e.target;\n    var tooltipModel = this._tooltipModel;\n\n    if (!tooltipModel) {\n      return;\n    }\n\n    this._lastX = e.offsetX;\n    this._lastY = e.offsetY;\n    var dataByCoordSys = e.dataByCoordSys;\n\n    if (dataByCoordSys && dataByCoordSys.length) {\n      this._showAxisTooltip(dataByCoordSys, e);\n    } else if (el && findEventDispatcher(el, function (target) {\n      return getECData(target).dataIndex != null;\n    }, true)) {\n      this._lastDataByCoordSys = null;\n\n      this._showSeriesItemTooltip(e, el, dispatchAction);\n    } else if (el && el.tooltip) {\n      this._lastDataByCoordSys = null;\n\n      this._showComponentItemTooltip(e, el, dispatchAction);\n    } else {\n      this._lastDataByCoordSys = null;\n\n      this._hide(dispatchAction);\n    }\n  };\n\n  TooltipView.prototype._showOrMove = function (tooltipModel, cb) {\n    var delay = tooltipModel.get('showDelay');\n    cb = zrUtil.bind(cb, this);\n    clearTimeout(this._showTimout);\n    delay > 0 ? this._showTimout = setTimeout(cb, delay) : cb();\n  };\n\n  TooltipView.prototype._showAxisTooltip = function (dataByCoordSys, e) {\n    var ecModel = this._ecModel;\n    var globalTooltipModel = this._tooltipModel;\n    var point = [e.offsetX, e.offsetY];\n    var singleTooltipModel = buildTooltipModel([e.tooltipOption, globalTooltipModel]);\n    var renderMode = this._renderMode;\n    var cbParamsList = [];\n    var articleMarkup = createTooltipMarkup('section', {\n      blocks: [],\n      noHeader: true\n    });\n    var markupTextArrLegacy = [];\n    var markupStyleCreator = new TooltipMarkupStyleCreator();\n    each(dataByCoordSys, function (itemCoordSys) {\n      each(itemCoordSys.dataByAxis, function (axisItem) {\n        var axisModel = ecModel.getComponent(axisItem.axisDim + 'Axis', axisItem.axisIndex);\n        var axisValue = axisItem.value;\n\n        if (!axisModel || axisValue == null) {\n          return;\n        }\n\n        var axisValueLabel = axisPointerViewHelper.getValueLabel(axisValue, axisModel.axis, ecModel, axisItem.seriesDataIndices, axisItem.valueLabelOpt);\n        var axisSectionMarkup = createTooltipMarkup('section', {\n          header: axisValueLabel,\n          noHeader: !zrUtil.trim(axisValueLabel),\n          sortBlocks: true,\n          blocks: []\n        });\n        articleMarkup.blocks.push(axisSectionMarkup);\n        zrUtil.each(axisItem.seriesDataIndices, function (idxItem) {\n          var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\n          var dataIndex = idxItem.dataIndexInside;\n          var cbParams = series.getDataParams(dataIndex);\n          cbParams.axisDim = axisItem.axisDim;\n          cbParams.axisIndex = axisItem.axisIndex;\n          cbParams.axisType = axisItem.axisType;\n          cbParams.axisId = axisItem.axisId;\n          cbParams.axisValue = axisHelper.getAxisRawValue(axisModel.axis, {\n            value: axisValue\n          });\n          cbParams.axisValueLabel = axisValueLabel;\n          cbParams.marker = markupStyleCreator.makeTooltipMarker('item', formatUtil.convertToColorString(cbParams.color), renderMode);\n          var seriesTooltipResult = normalizeTooltipFormatResult(series.formatTooltip(dataIndex, true, null));\n\n          if (seriesTooltipResult.markupFragment) {\n            axisSectionMarkup.blocks.push(seriesTooltipResult.markupFragment);\n          }\n\n          if (seriesTooltipResult.markupText) {\n            markupTextArrLegacy.push(seriesTooltipResult.markupText);\n          }\n\n          cbParamsList.push(cbParams);\n        });\n      });\n    });\n    articleMarkup.blocks.reverse();\n    markupTextArrLegacy.reverse();\n    var positionExpr = e.position;\n    var orderMode = singleTooltipModel.get('order');\n    var builtMarkupText = buildTooltipMarkup(articleMarkup, markupStyleCreator, renderMode, orderMode, ecModel.get('useUTC'), singleTooltipModel.get('textStyle'));\n    builtMarkupText && markupTextArrLegacy.unshift(builtMarkupText);\n    var blockBreak = renderMode === 'richText' ? '\\n\\n' : '<br/>';\n    var allMarkupText = markupTextArrLegacy.join(blockBreak);\n\n    this._showOrMove(singleTooltipModel, function () {\n      if (this._updateContentNotChangedOnAxis(dataByCoordSys)) {\n        this._updatePosition(singleTooltipModel, positionExpr, point[0], point[1], this._tooltipContent, cbParamsList);\n      } else {\n        this._showTooltipContent(singleTooltipModel, allMarkupText, cbParamsList, Math.random() + '', point[0], point[1], positionExpr, null, markupStyleCreator);\n      }\n    });\n  };\n\n  TooltipView.prototype._showSeriesItemTooltip = function (e, el, dispatchAction) {\n    var dispatcher = findEventDispatcher(el, function (target) {\n      return getECData(target).dataIndex != null;\n    }, true);\n    var ecModel = this._ecModel;\n    var ecData = getECData(dispatcher);\n    var seriesIndex = ecData.seriesIndex;\n    var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n    var dataModel = ecData.dataModel || seriesModel;\n    var dataIndex = ecData.dataIndex;\n    var dataType = ecData.dataType;\n    var data = dataModel.getData(dataType);\n    var renderMode = this._renderMode;\n    var tooltipModel = buildTooltipModel([data.getItemModel(dataIndex), dataModel, seriesModel && (seriesModel.coordinateSystem || {}).model, this._tooltipModel]);\n    var tooltipTrigger = tooltipModel.get('trigger');\n\n    if (tooltipTrigger != null && tooltipTrigger !== 'item') {\n      return;\n    }\n\n    var params = dataModel.getDataParams(dataIndex, dataType);\n    var markupStyleCreator = new TooltipMarkupStyleCreator();\n    params.marker = markupStyleCreator.makeTooltipMarker('item', formatUtil.convertToColorString(params.color), renderMode);\n    var seriesTooltipResult = normalizeTooltipFormatResult(dataModel.formatTooltip(dataIndex, false, dataType));\n    var orderMode = tooltipModel.get('order');\n    var markupText = seriesTooltipResult.markupFragment ? buildTooltipMarkup(seriesTooltipResult.markupFragment, markupStyleCreator, renderMode, orderMode, ecModel.get('useUTC'), tooltipModel.get('textStyle')) : seriesTooltipResult.markupText;\n    var asyncTicket = 'item_' + dataModel.name + '_' + dataIndex;\n\n    this._showOrMove(tooltipModel, function () {\n      this._showTooltipContent(tooltipModel, markupText, params, asyncTicket, e.offsetX, e.offsetY, e.position, e.target, markupStyleCreator);\n    });\n\n    dispatchAction({\n      type: 'showTip',\n      dataIndexInside: dataIndex,\n      dataIndex: data.getRawIndex(dataIndex),\n      seriesIndex: seriesIndex,\n      from: this.uid\n    });\n  };\n\n  TooltipView.prototype._showComponentItemTooltip = function (e, el, dispatchAction) {\n    var tooltipOpt = el.tooltip;\n\n    if (zrUtil.isString(tooltipOpt)) {\n      var content = tooltipOpt;\n      tooltipOpt = {\n        content: content,\n        formatter: content\n      };\n    }\n\n    var subTooltipModel = new Model(tooltipOpt, this._tooltipModel, this._ecModel);\n    var defaultHtml = subTooltipModel.get('content');\n    var asyncTicket = Math.random() + '';\n    var markupStyleCreator = new TooltipMarkupStyleCreator();\n\n    this._showOrMove(subTooltipModel, function () {\n      this._showTooltipContent(subTooltipModel, defaultHtml, subTooltipModel.get('formatterParams') || {}, asyncTicket, e.offsetX, e.offsetY, e.position, el, markupStyleCreator);\n    });\n\n    dispatchAction({\n      type: 'showTip',\n      from: this.uid\n    });\n  };\n\n  TooltipView.prototype._showTooltipContent = function (tooltipModel, defaultHtml, params, asyncTicket, x, y, positionExpr, el, markupStyleCreator) {\n    this._ticket = '';\n\n    if (!tooltipModel.get('showContent') || !tooltipModel.get('show')) {\n      return;\n    }\n\n    var tooltipContent = this._tooltipContent;\n    var formatter = tooltipModel.get('formatter');\n    positionExpr = positionExpr || tooltipModel.get('position');\n    var html = defaultHtml;\n\n    var nearPoint = this._getNearestPoint([x, y], params, tooltipModel.get('trigger'), tooltipModel.get('borderColor'));\n\n    if (formatter && zrUtil.isString(formatter)) {\n      var useUTC = tooltipModel.ecModel.get('useUTC');\n      var params0 = zrUtil.isArray(params) ? params[0] : params;\n      var isTimeAxis = params0 && params0.axisType && params0.axisType.indexOf('time') >= 0;\n      html = formatter;\n\n      if (isTimeAxis) {\n        html = timeFormat(params0.axisValue, html, useUTC);\n      }\n\n      html = formatUtil.formatTpl(html, params, true);\n    } else if (zrUtil.isFunction(formatter)) {\n      var callback = bind(function (cbTicket, html) {\n        if (cbTicket === this._ticket) {\n          tooltipContent.setContent(html, markupStyleCreator, tooltipModel, nearPoint.color, positionExpr);\n\n          this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\n        }\n      }, this);\n      this._ticket = asyncTicket;\n      html = formatter(params, asyncTicket, callback);\n    }\n\n    tooltipContent.setContent(html, markupStyleCreator, tooltipModel, nearPoint.color, positionExpr);\n    tooltipContent.show(tooltipModel, nearPoint.color);\n\n    this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\n  };\n\n  TooltipView.prototype._getNearestPoint = function (point, tooltipDataParams, trigger, borderColor) {\n    if (trigger === 'axis' || zrUtil.isArray(tooltipDataParams)) {\n      return {\n        color: borderColor || (this._renderMode === 'html' ? '#fff' : 'none')\n      };\n    }\n\n    if (!zrUtil.isArray(tooltipDataParams)) {\n      return {\n        color: borderColor || tooltipDataParams.color || tooltipDataParams.borderColor\n      };\n    }\n  };\n\n  TooltipView.prototype._updatePosition = function (tooltipModel, positionExpr, x, y, content, params, el) {\n    var viewWidth = this._api.getWidth();\n\n    var viewHeight = this._api.getHeight();\n\n    positionExpr = positionExpr || tooltipModel.get('position');\n    var contentSize = content.getSize();\n    var align = tooltipModel.get('align');\n    var vAlign = tooltipModel.get('verticalAlign');\n    var rect = el && el.getBoundingRect().clone();\n    el && rect.applyTransform(el.transform);\n\n    if (zrUtil.isFunction(positionExpr)) {\n      positionExpr = positionExpr([x, y], params, content.el, rect, {\n        viewSize: [viewWidth, viewHeight],\n        contentSize: contentSize.slice()\n      });\n    }\n\n    if (zrUtil.isArray(positionExpr)) {\n      x = parsePercent(positionExpr[0], viewWidth);\n      y = parsePercent(positionExpr[1], viewHeight);\n    } else if (zrUtil.isObject(positionExpr)) {\n      var boxLayoutPosition = positionExpr;\n      boxLayoutPosition.width = contentSize[0];\n      boxLayoutPosition.height = contentSize[1];\n      var layoutRect = layoutUtil.getLayoutRect(boxLayoutPosition, {\n        width: viewWidth,\n        height: viewHeight\n      });\n      x = layoutRect.x;\n      y = layoutRect.y;\n      align = null;\n      vAlign = null;\n    } else if (zrUtil.isString(positionExpr) && el) {\n      var pos = calcTooltipPosition(positionExpr, rect, contentSize);\n      x = pos[0];\n      y = pos[1];\n    } else {\n      var pos = refixTooltipPosition(x, y, content, viewWidth, viewHeight, align ? null : 20, vAlign ? null : 20);\n      x = pos[0];\n      y = pos[1];\n    }\n\n    align && (x -= isCenterAlign(align) ? contentSize[0] / 2 : align === 'right' ? contentSize[0] : 0);\n    vAlign && (y -= isCenterAlign(vAlign) ? contentSize[1] / 2 : vAlign === 'bottom' ? contentSize[1] : 0);\n\n    if (shouldTooltipConfine(tooltipModel)) {\n      var pos = confineTooltipPosition(x, y, content, viewWidth, viewHeight);\n      x = pos[0];\n      y = pos[1];\n    }\n\n    content.moveTo(x, y);\n  };\n\n  TooltipView.prototype._updateContentNotChangedOnAxis = function (dataByCoordSys) {\n    var lastCoordSys = this._lastDataByCoordSys;\n    var contentNotChanged = !!lastCoordSys && lastCoordSys.length === dataByCoordSys.length;\n    contentNotChanged && each(lastCoordSys, function (lastItemCoordSys, indexCoordSys) {\n      var lastDataByAxis = lastItemCoordSys.dataByAxis || [];\n      var thisItemCoordSys = dataByCoordSys[indexCoordSys] || {};\n      var thisDataByAxis = thisItemCoordSys.dataByAxis || [];\n      contentNotChanged = contentNotChanged && lastDataByAxis.length === thisDataByAxis.length;\n      contentNotChanged && each(lastDataByAxis, function (lastItem, indexAxis) {\n        var thisItem = thisDataByAxis[indexAxis] || {};\n        var lastIndices = lastItem.seriesDataIndices || [];\n        var newIndices = thisItem.seriesDataIndices || [];\n        contentNotChanged = contentNotChanged && lastItem.value === thisItem.value && lastItem.axisType === thisItem.axisType && lastItem.axisId === thisItem.axisId && lastIndices.length === newIndices.length;\n        contentNotChanged && each(lastIndices, function (lastIdxItem, j) {\n          var newIdxItem = newIndices[j];\n          contentNotChanged = contentNotChanged && lastIdxItem.seriesIndex === newIdxItem.seriesIndex && lastIdxItem.dataIndex === newIdxItem.dataIndex;\n        });\n      });\n    });\n    this._lastDataByCoordSys = dataByCoordSys;\n    return !!contentNotChanged;\n  };\n\n  TooltipView.prototype._hide = function (dispatchAction) {\n    this._lastDataByCoordSys = null;\n    dispatchAction({\n      type: 'hideTip',\n      from: this.uid\n    });\n  };\n\n  TooltipView.prototype.dispose = function (ecModel, api) {\n    if (env.node) {\n      return;\n    }\n\n    this._tooltipContent.dispose();\n\n    globalListener.unregister('itemTooltip', api);\n  };\n\n  TooltipView.type = 'tooltip';\n  return TooltipView;\n}(ComponentView);\n\nfunction buildTooltipModel(modelCascade) {\n  var resultModel = modelCascade.pop();\n\n  while (modelCascade.length) {\n    var tooltipOpt = modelCascade.pop();\n\n    if (tooltipOpt) {\n      if (tooltipOpt instanceof Model) {\n        tooltipOpt = tooltipOpt.get('tooltip', true);\n      }\n\n      if (zrUtil.isString(tooltipOpt)) {\n        tooltipOpt = {\n          formatter: tooltipOpt\n        };\n      }\n\n      resultModel = new Model(tooltipOpt, resultModel, resultModel.ecModel);\n    }\n  }\n\n  return resultModel;\n}\n\nfunction makeDispatchAction(payload, api) {\n  return payload.dispatchAction || zrUtil.bind(api.dispatchAction, api);\n}\n\nfunction refixTooltipPosition(x, y, content, viewWidth, viewHeight, gapH, gapV) {\n  var size = content.getOuterSize();\n  var width = size.width;\n  var height = size.height;\n\n  if (gapH != null) {\n    if (x + width + gapH + 2 > viewWidth) {\n      x -= width + gapH;\n    } else {\n      x += gapH;\n    }\n  }\n\n  if (gapV != null) {\n    if (y + height + gapV > viewHeight) {\n      y -= height + gapV;\n    } else {\n      y += gapV;\n    }\n  }\n\n  return [x, y];\n}\n\nfunction confineTooltipPosition(x, y, content, viewWidth, viewHeight) {\n  var size = content.getOuterSize();\n  var width = size.width;\n  var height = size.height;\n  x = Math.min(x + width, viewWidth) - width;\n  y = Math.min(y + height, viewHeight) - height;\n  x = Math.max(x, 0);\n  y = Math.max(y, 0);\n  return [x, y];\n}\n\nfunction calcTooltipPosition(position, rect, contentSize) {\n  var domWidth = contentSize[0];\n  var domHeight = contentSize[1];\n  var gap = 10;\n  var offset = 5;\n  var x = 0;\n  var y = 0;\n  var rectWidth = rect.width;\n  var rectHeight = rect.height;\n\n  switch (position) {\n    case 'inside':\n      x = rect.x + rectWidth / 2 - domWidth / 2;\n      y = rect.y + rectHeight / 2 - domHeight / 2;\n      break;\n\n    case 'top':\n      x = rect.x + rectWidth / 2 - domWidth / 2;\n      y = rect.y - domHeight - gap;\n      break;\n\n    case 'bottom':\n      x = rect.x + rectWidth / 2 - domWidth / 2;\n      y = rect.y + rectHeight + gap;\n      break;\n\n    case 'left':\n      x = rect.x - domWidth - gap - offset;\n      y = rect.y + rectHeight / 2 - domHeight / 2;\n      break;\n\n    case 'right':\n      x = rect.x + rectWidth + gap + offset;\n      y = rect.y + rectHeight / 2 - domHeight / 2;\n  }\n\n  return [x, y];\n}\n\nfunction isCenterAlign(align) {\n  return align === 'center' || align === 'middle';\n}\n\nexport default TooltipView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { install as installAxisPointer } from '../axisPointer/install';\nimport { use } from '../../extension';\nimport TooltipModel from './TooltipModel';\nimport TooltipView from './TooltipView';\nexport function install(registers) {\n  use(installAxisPointer);\n  registers.registerComponentModel(TooltipModel);\n  registers.registerComponentView(TooltipView);\n  registers.registerAction({\n    type: 'showTip',\n    event: 'showTip',\n    update: 'tooltip:manuallyShowTip'\n  }, function () {});\n  registers.registerAction({\n    type: 'hideTip',\n    event: 'hideTip',\n    update: 'tooltip:manuallyHideTip'\n  }, function () {});\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { createTextStyle } from '../../label/labelStyle';\nimport { getLayoutRect } from '../../util/layout';\nimport ComponentModel from '../../model/Component';\nimport ComponentView from '../../view/Component';\nimport { windowOpen } from '../../util/format';\n\nvar TitleModel = function (_super) {\n  __extends(TitleModel, _super);\n\n  function TitleModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TitleModel.type;\n    _this.layoutMode = {\n      type: 'box',\n      ignoreSize: true\n    };\n    return _this;\n  }\n\n  TitleModel.type = 'title';\n  TitleModel.defaultOption = {\n    zlevel: 0,\n    z: 6,\n    show: true,\n    text: '',\n    target: 'blank',\n    subtext: '',\n    subtarget: 'blank',\n    left: 0,\n    top: 0,\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderColor: '#ccc',\n    borderWidth: 0,\n    padding: 5,\n    itemGap: 10,\n    textStyle: {\n      fontSize: 18,\n      fontWeight: 'bold',\n      color: '#464646'\n    },\n    subtextStyle: {\n      fontSize: 12,\n      color: '#6E7079'\n    }\n  };\n  return TitleModel;\n}(ComponentModel);\n\nvar TitleView = function (_super) {\n  __extends(TitleView, _super);\n\n  function TitleView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TitleView.type;\n    return _this;\n  }\n\n  TitleView.prototype.render = function (titleModel, ecModel, api) {\n    this.group.removeAll();\n\n    if (!titleModel.get('show')) {\n      return;\n    }\n\n    var group = this.group;\n    var textStyleModel = titleModel.getModel('textStyle');\n    var subtextStyleModel = titleModel.getModel('subtextStyle');\n    var textAlign = titleModel.get('textAlign');\n    var textVerticalAlign = zrUtil.retrieve2(titleModel.get('textBaseline'), titleModel.get('textVerticalAlign'));\n    var textEl = new graphic.Text({\n      style: createTextStyle(textStyleModel, {\n        text: titleModel.get('text'),\n        fill: textStyleModel.getTextColor()\n      }, {\n        disableBox: true\n      }),\n      z2: 10\n    });\n    var textRect = textEl.getBoundingRect();\n    var subText = titleModel.get('subtext');\n    var subTextEl = new graphic.Text({\n      style: createTextStyle(subtextStyleModel, {\n        text: subText,\n        fill: subtextStyleModel.getTextColor(),\n        y: textRect.height + titleModel.get('itemGap'),\n        verticalAlign: 'top'\n      }, {\n        disableBox: true\n      }),\n      z2: 10\n    });\n    var link = titleModel.get('link');\n    var sublink = titleModel.get('sublink');\n    var triggerEvent = titleModel.get('triggerEvent', true);\n    textEl.silent = !link && !triggerEvent;\n    subTextEl.silent = !sublink && !triggerEvent;\n\n    if (link) {\n      textEl.on('click', function () {\n        windowOpen(link, '_' + titleModel.get('target'));\n      });\n    }\n\n    if (sublink) {\n      subTextEl.on('click', function () {\n        windowOpen(sublink, '_' + titleModel.get('subtarget'));\n      });\n    }\n\n    getECData(textEl).eventData = getECData(subTextEl).eventData = triggerEvent ? {\n      componentType: 'title',\n      componentIndex: titleModel.componentIndex\n    } : null;\n    group.add(textEl);\n    subText && group.add(subTextEl);\n    var groupRect = group.getBoundingRect();\n    var layoutOption = titleModel.getBoxLayoutParams();\n    layoutOption.width = groupRect.width;\n    layoutOption.height = groupRect.height;\n    var layoutRect = getLayoutRect(layoutOption, {\n      width: api.getWidth(),\n      height: api.getHeight()\n    }, titleModel.get('padding'));\n\n    if (!textAlign) {\n      textAlign = titleModel.get('left') || titleModel.get('right');\n\n      if (textAlign === 'middle') {\n        textAlign = 'center';\n      }\n\n      if (textAlign === 'right') {\n        layoutRect.x += layoutRect.width;\n      } else if (textAlign === 'center') {\n        layoutRect.x += layoutRect.width / 2;\n      }\n    }\n\n    if (!textVerticalAlign) {\n      textVerticalAlign = titleModel.get('top') || titleModel.get('bottom');\n\n      if (textVerticalAlign === 'center') {\n        textVerticalAlign = 'middle';\n      }\n\n      if (textVerticalAlign === 'bottom') {\n        layoutRect.y += layoutRect.height;\n      } else if (textVerticalAlign === 'middle') {\n        layoutRect.y += layoutRect.height / 2;\n      }\n\n      textVerticalAlign = textVerticalAlign || 'top';\n    }\n\n    group.x = layoutRect.x;\n    group.y = layoutRect.y;\n    group.markRedraw();\n    var alignStyle = {\n      align: textAlign,\n      verticalAlign: textVerticalAlign\n    };\n    textEl.setStyle(alignStyle);\n    subTextEl.setStyle(alignStyle);\n    groupRect = group.getBoundingRect();\n    var padding = layoutRect.margin;\n    var style = titleModel.getItemStyle(['color', 'opacity']);\n    style.fill = titleModel.get('backgroundColor');\n    var rect = new graphic.Rect({\n      shape: {\n        x: groupRect.x - padding[3],\n        y: groupRect.y - padding[0],\n        width: groupRect.width + padding[1] + padding[3],\n        height: groupRect.height + padding[0] + padding[2],\n        r: titleModel.get('borderRadius')\n      },\n      style: style,\n      subPixelOptimize: true,\n      silent: true\n    });\n    group.add(rect);\n  };\n\n  TitleView.type = 'title';\n  return TitleView;\n}(ComponentView);\n\nexport function install(registers) {\n  registers.registerComponentModel(TitleModel);\n  registers.registerComponentView(TitleView);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport { DataFormatMixin } from '../../model/mixin/dataFormat';\nimport ComponentModel from '../../model/Component';\nimport { makeInner, defaultEmphasis } from '../../util/model';\nimport { createTooltipMarkup } from '../tooltip/tooltipMarkup';\n\nfunction fillLabel(opt) {\n  defaultEmphasis(opt, 'label', ['show']);\n}\n\nvar inner = makeInner();\n\nvar MarkerModel = function (_super) {\n  __extends(MarkerModel, _super);\n\n  function MarkerModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkerModel.type;\n    _this.createdBySelf = false;\n    return _this;\n  }\n\n  MarkerModel.prototype.init = function (option, parentModel, ecModel) {\n    if (process.env.NODE_ENV !== 'production') {\n      if (this.type === 'marker') {\n        throw new Error('Marker component is abstract component. Use markLine, markPoint, markArea instead.');\n      }\n    }\n\n    this.mergeDefaultAndTheme(option, ecModel);\n\n    this._mergeOption(option, ecModel, false, true);\n  };\n\n  MarkerModel.prototype.isAnimationEnabled = function () {\n    if (env.node) {\n      return false;\n    }\n\n    var hostSeries = this.__hostSeries;\n    return this.getShallow('animation') && hostSeries && hostSeries.isAnimationEnabled();\n  };\n\n  MarkerModel.prototype.mergeOption = function (newOpt, ecModel) {\n    this._mergeOption(newOpt, ecModel, false, false);\n  };\n\n  MarkerModel.prototype._mergeOption = function (newOpt, ecModel, createdBySelf, isInit) {\n    var componentType = this.mainType;\n\n    if (!createdBySelf) {\n      ecModel.eachSeries(function (seriesModel) {\n        var markerOpt = seriesModel.get(this.mainType, true);\n        var markerModel = inner(seriesModel)[componentType];\n\n        if (!markerOpt || !markerOpt.data) {\n          inner(seriesModel)[componentType] = null;\n          return;\n        }\n\n        if (!markerModel) {\n          if (isInit) {\n            fillLabel(markerOpt);\n          }\n\n          zrUtil.each(markerOpt.data, function (item) {\n            if (item instanceof Array) {\n              fillLabel(item[0]);\n              fillLabel(item[1]);\n            } else {\n              fillLabel(item);\n            }\n          });\n          markerModel = this.createMarkerModelFromSeries(markerOpt, this, ecModel);\n          zrUtil.extend(markerModel, {\n            mainType: this.mainType,\n            seriesIndex: seriesModel.seriesIndex,\n            name: seriesModel.name,\n            createdBySelf: true\n          });\n          markerModel.__hostSeries = seriesModel;\n        } else {\n          markerModel._mergeOption(markerOpt, ecModel, true);\n        }\n\n        inner(seriesModel)[componentType] = markerModel;\n      }, this);\n    }\n  };\n\n  MarkerModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var data = this.getData();\n    var value = this.getRawValue(dataIndex);\n    var itemName = data.getName(dataIndex);\n    return createTooltipMarkup('section', {\n      header: this.name,\n      blocks: [createTooltipMarkup('nameValue', {\n        name: itemName,\n        value: value,\n        noName: !itemName,\n        noValue: value == null\n      })]\n    });\n  };\n\n  MarkerModel.prototype.getData = function () {\n    return this._data;\n  };\n\n  MarkerModel.prototype.setData = function (data) {\n    this._data = data;\n  };\n\n  MarkerModel.getMarkerModelFromSeries = function (seriesModel, componentType) {\n    return inner(seriesModel)[componentType];\n  };\n\n  MarkerModel.type = 'marker';\n  MarkerModel.dependencies = ['series', 'grid', 'polar', 'geo'];\n  return MarkerModel;\n}(ComponentModel);\n\nzrUtil.mixin(MarkerModel, DataFormatMixin.prototype);\nexport default MarkerModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport MarkerModel from './MarkerModel';\n\nvar MarkPointModel = function (_super) {\n  __extends(MarkPointModel, _super);\n\n  function MarkPointModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkPointModel.type;\n    return _this;\n  }\n\n  MarkPointModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\n    return new MarkPointModel(markerOpt, masterMarkerModel, ecModel);\n  };\n\n  MarkPointModel.type = 'markPoint';\n  MarkPointModel.defaultOption = {\n    zlevel: 0,\n    z: 5,\n    symbol: 'pin',\n    symbolSize: 50,\n    tooltip: {\n      trigger: 'item'\n    },\n    label: {\n      show: true,\n      position: 'inside'\n    },\n    itemStyle: {\n      borderWidth: 2\n    },\n    emphasis: {\n      label: {\n        show: true\n      }\n    }\n  };\n  return MarkPointModel;\n}(MarkerModel);\n\nexport default MarkPointModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as numberUtil from '../../util/number';\nimport { isDimensionStacked } from '../../data/helper/dataStackHelper';\nimport { indexOf, curry, clone, isArray } from 'zrender/lib/core/util';\n\nfunction hasXOrY(item) {\n  return !(isNaN(parseFloat(item.x)) && isNaN(parseFloat(item.y)));\n}\n\nfunction hasXAndY(item) {\n  return !isNaN(parseFloat(item.x)) && !isNaN(parseFloat(item.y));\n}\n\nfunction markerTypeCalculatorWithExtent(markerType, data, otherDataDim, targetDataDim, otherCoordIndex, targetCoordIndex) {\n  var coordArr = [];\n  var stacked = isDimensionStacked(data, targetDataDim);\n  var calcDataDim = stacked ? data.getCalculationInfo('stackResultDimension') : targetDataDim;\n  var value = numCalculate(data, calcDataDim, markerType);\n  var dataIndex = data.indicesOfNearest(calcDataDim, value)[0];\n  coordArr[otherCoordIndex] = data.get(otherDataDim, dataIndex);\n  coordArr[targetCoordIndex] = data.get(calcDataDim, dataIndex);\n  var coordArrValue = data.get(targetDataDim, dataIndex);\n  var precision = numberUtil.getPrecision(data.get(targetDataDim, dataIndex));\n  precision = Math.min(precision, 20);\n\n  if (precision >= 0) {\n    coordArr[targetCoordIndex] = +coordArr[targetCoordIndex].toFixed(precision);\n  }\n\n  return [coordArr, coordArrValue];\n}\n\nvar markerTypeCalculator = {\n  min: curry(markerTypeCalculatorWithExtent, 'min'),\n  max: curry(markerTypeCalculatorWithExtent, 'max'),\n  average: curry(markerTypeCalculatorWithExtent, 'average'),\n  median: curry(markerTypeCalculatorWithExtent, 'median')\n};\nexport function dataTransform(seriesModel, item) {\n  var data = seriesModel.getData();\n  var coordSys = seriesModel.coordinateSystem;\n\n  if (item && !hasXAndY(item) && !isArray(item.coord) && coordSys) {\n    var dims = coordSys.dimensions;\n    var axisInfo = getAxisInfo(item, data, coordSys, seriesModel);\n    item = clone(item);\n\n    if (item.type && markerTypeCalculator[item.type] && axisInfo.baseAxis && axisInfo.valueAxis) {\n      var otherCoordIndex = indexOf(dims, axisInfo.baseAxis.dim);\n      var targetCoordIndex = indexOf(dims, axisInfo.valueAxis.dim);\n      var coordInfo = markerTypeCalculator[item.type](data, axisInfo.baseDataDim, axisInfo.valueDataDim, otherCoordIndex, targetCoordIndex);\n      item.coord = coordInfo[0];\n      item.value = coordInfo[1];\n    } else {\n      var coord = [item.xAxis != null ? item.xAxis : item.radiusAxis, item.yAxis != null ? item.yAxis : item.angleAxis];\n\n      for (var i = 0; i < 2; i++) {\n        if (markerTypeCalculator[coord[i]]) {\n          coord[i] = numCalculate(data, data.mapDimension(dims[i]), coord[i]);\n        }\n      }\n\n      item.coord = coord;\n    }\n  }\n\n  return item;\n}\nexport function getAxisInfo(item, data, coordSys, seriesModel) {\n  var ret = {};\n\n  if (item.valueIndex != null || item.valueDim != null) {\n    ret.valueDataDim = item.valueIndex != null ? data.getDimension(item.valueIndex) : item.valueDim;\n    ret.valueAxis = coordSys.getAxis(dataDimToCoordDim(seriesModel, ret.valueDataDim));\n    ret.baseAxis = coordSys.getOtherAxis(ret.valueAxis);\n    ret.baseDataDim = data.mapDimension(ret.baseAxis.dim);\n  } else {\n    ret.baseAxis = seriesModel.getBaseAxis();\n    ret.valueAxis = coordSys.getOtherAxis(ret.baseAxis);\n    ret.baseDataDim = data.mapDimension(ret.baseAxis.dim);\n    ret.valueDataDim = data.mapDimension(ret.valueAxis.dim);\n  }\n\n  return ret;\n}\n\nfunction dataDimToCoordDim(seriesModel, dataDim) {\n  var data = seriesModel.getData();\n  var dimensions = data.dimensions;\n  dataDim = data.getDimension(dataDim);\n\n  for (var i = 0; i < dimensions.length; i++) {\n    var dimItem = data.getDimensionInfo(dimensions[i]);\n\n    if (dimItem.name === dataDim) {\n      return dimItem.coordDim;\n    }\n  }\n}\n\nexport function dataFilter(coordSys, item) {\n  return coordSys && coordSys.containData && item.coord && !hasXOrY(item) ? coordSys.containData(item.coord) : true;\n}\nexport function dimValueGetter(item, dimName, dataIndex, dimIndex) {\n  if (dimIndex < 2) {\n    return item.coord && item.coord[dimIndex];\n  }\n\n  return item.value;\n}\nexport function numCalculate(data, valueDataDim, type) {\n  if (type === 'average') {\n    var sum_1 = 0;\n    var count_1 = 0;\n    data.each(valueDataDim, function (val, idx) {\n      if (!isNaN(val)) {\n        sum_1 += val;\n        count_1++;\n      }\n    });\n    return sum_1 / count_1;\n  } else if (type === 'median') {\n    return data.getMedian(valueDataDim);\n  } else {\n    return data.getDataExtent(valueDataDim)[type === 'max' ? 1 : 0];\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component';\nimport { createHashMap, each } from 'zrender/lib/core/util';\nimport MarkerModel from './MarkerModel';\nimport { makeInner } from '../../util/model';\nimport { enterBlur } from '../../util/states';\nvar inner = makeInner();\n\nvar MarkerView = function (_super) {\n  __extends(MarkerView, _super);\n\n  function MarkerView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkerView.type;\n    return _this;\n  }\n\n  MarkerView.prototype.init = function () {\n    this.markerGroupMap = createHashMap();\n  };\n\n  MarkerView.prototype.render = function (markerModel, ecModel, api) {\n    var _this = this;\n\n    var markerGroupMap = this.markerGroupMap;\n    markerGroupMap.each(function (item) {\n      inner(item).keep = false;\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      var markerModel = MarkerModel.getMarkerModelFromSeries(seriesModel, _this.type);\n      markerModel && _this.renderSeries(seriesModel, markerModel, ecModel, api);\n    });\n    markerGroupMap.each(function (item) {\n      !inner(item).keep && _this.group.remove(item.group);\n    });\n  };\n\n  MarkerView.prototype.markKeep = function (drawGroup) {\n    inner(drawGroup).keep = true;\n  };\n\n  MarkerView.prototype.blurSeries = function (seriesModelList) {\n    var _this = this;\n\n    each(seriesModelList, function (seriesModel) {\n      var markerModel = MarkerModel.getMarkerModelFromSeries(seriesModel, _this.type);\n\n      if (markerModel) {\n        var data = markerModel.getData();\n        data.eachItemGraphicEl(function (el) {\n          if (el) {\n            enterBlur(el);\n          }\n        });\n      }\n    });\n  };\n\n  MarkerView.type = 'marker';\n  return MarkerView;\n}(ComponentView);\n\nexport default MarkerView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SymbolDraw from '../../chart/helper/SymbolDraw';\nimport * as numberUtil from '../../util/number';\nimport List from '../../data/List';\nimport * as markerHelper from './markerHelper';\nimport MarkerView from './MarkerView';\nimport MarkerModel from './MarkerModel';\nimport { isFunction, map, defaults, filter, curry } from 'zrender/lib/core/util';\nimport { getECData } from '../../util/innerStore';\nimport { getVisualFromData } from '../../visual/helper';\n\nfunction updateMarkerLayout(mpData, seriesModel, api) {\n  var coordSys = seriesModel.coordinateSystem;\n  mpData.each(function (idx) {\n    var itemModel = mpData.getItemModel(idx);\n    var point;\n    var xPx = numberUtil.parsePercent(itemModel.get('x'), api.getWidth());\n    var yPx = numberUtil.parsePercent(itemModel.get('y'), api.getHeight());\n\n    if (!isNaN(xPx) && !isNaN(yPx)) {\n      point = [xPx, yPx];\n    } else if (seriesModel.getMarkerPosition) {\n      point = seriesModel.getMarkerPosition(mpData.getValues(mpData.dimensions, idx));\n    } else if (coordSys) {\n      var x = mpData.get(coordSys.dimensions[0], idx);\n      var y = mpData.get(coordSys.dimensions[1], idx);\n      point = coordSys.dataToPoint([x, y]);\n    }\n\n    if (!isNaN(xPx)) {\n      point[0] = xPx;\n    }\n\n    if (!isNaN(yPx)) {\n      point[1] = yPx;\n    }\n\n    mpData.setItemLayout(idx, point);\n  });\n}\n\nvar MarkPointView = function (_super) {\n  __extends(MarkPointView, _super);\n\n  function MarkPointView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkPointView.type;\n    return _this;\n  }\n\n  MarkPointView.prototype.updateTransform = function (markPointModel, ecModel, api) {\n    ecModel.eachSeries(function (seriesModel) {\n      var mpModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markPoint');\n\n      if (mpModel) {\n        updateMarkerLayout(mpModel.getData(), seriesModel, api);\n        this.markerGroupMap.get(seriesModel.id).updateLayout();\n      }\n    }, this);\n  };\n\n  MarkPointView.prototype.renderSeries = function (seriesModel, mpModel, ecModel, api) {\n    var coordSys = seriesModel.coordinateSystem;\n    var seriesId = seriesModel.id;\n    var seriesData = seriesModel.getData();\n    var symbolDrawMap = this.markerGroupMap;\n    var symbolDraw = symbolDrawMap.get(seriesId) || symbolDrawMap.set(seriesId, new SymbolDraw());\n    var mpData = createList(coordSys, seriesModel, mpModel);\n    mpModel.setData(mpData);\n    updateMarkerLayout(mpModel.getData(), seriesModel, api);\n    mpData.each(function (idx) {\n      var itemModel = mpData.getItemModel(idx);\n      var symbol = itemModel.getShallow('symbol');\n      var symbolSize = itemModel.getShallow('symbolSize');\n      var symbolRotate = itemModel.getShallow('symbolRotate');\n\n      if (isFunction(symbol) || isFunction(symbolSize) || isFunction(symbolRotate)) {\n        var rawIdx = mpModel.getRawValue(idx);\n        var dataParams = mpModel.getDataParams(idx);\n\n        if (isFunction(symbol)) {\n          symbol = symbol(rawIdx, dataParams);\n        }\n\n        if (isFunction(symbolSize)) {\n          symbolSize = symbolSize(rawIdx, dataParams);\n        }\n\n        if (isFunction(symbolRotate)) {\n          symbolRotate = symbolRotate(rawIdx, dataParams);\n        }\n      }\n\n      var style = itemModel.getModel('itemStyle').getItemStyle();\n      var color = getVisualFromData(seriesData, 'color');\n\n      if (!style.fill) {\n        style.fill = color;\n      }\n\n      mpData.setItemVisual(idx, {\n        symbol: symbol,\n        symbolSize: symbolSize,\n        symbolRotate: symbolRotate,\n        style: style\n      });\n    });\n    symbolDraw.updateData(mpData);\n    this.group.add(symbolDraw.group);\n    mpData.eachItemGraphicEl(function (el) {\n      el.traverse(function (child) {\n        getECData(child).dataModel = mpModel;\n      });\n    });\n    this.markKeep(symbolDraw);\n    symbolDraw.group.silent = mpModel.get('silent') || seriesModel.get('silent');\n  };\n\n  MarkPointView.type = 'markPoint';\n  return MarkPointView;\n}(MarkerView);\n\nfunction createList(coordSys, seriesModel, mpModel) {\n  var coordDimsInfos;\n\n  if (coordSys) {\n    coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\n      var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {};\n      return defaults({\n        name: coordDim\n      }, info);\n    });\n  } else {\n    coordDimsInfos = [{\n      name: 'value',\n      type: 'float'\n    }];\n  }\n\n  var mpData = new List(coordDimsInfos, mpModel);\n  var dataOpt = map(mpModel.get('data'), curry(markerHelper.dataTransform, seriesModel));\n\n  if (coordSys) {\n    dataOpt = filter(dataOpt, curry(markerHelper.dataFilter, coordSys));\n  }\n\n  mpData.initData(dataOpt, null, coordSys ? markerHelper.dimValueGetter : function (item) {\n    return item.value;\n  });\n  return mpData;\n}\n\nexport default MarkPointView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport MarkPointModel from './MarkPointModel';\nimport MarkPointView from './MarkPointView';\nexport function install(registers) {\n  registers.registerComponentModel(MarkPointModel);\n  registers.registerComponentView(MarkPointView);\n  registers.registerPreprocessor(function (opt) {\n    opt.markPoint = opt.markPoint || {};\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport MarkerModel from './MarkerModel';\n\nvar MarkLineModel = function (_super) {\n  __extends(MarkLineModel, _super);\n\n  function MarkLineModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkLineModel.type;\n    return _this;\n  }\n\n  MarkLineModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\n    return new MarkLineModel(markerOpt, masterMarkerModel, ecModel);\n  };\n\n  MarkLineModel.type = 'markLine';\n  MarkLineModel.defaultOption = {\n    zlevel: 0,\n    z: 5,\n    symbol: ['circle', 'arrow'],\n    symbolSize: [8, 16],\n    precision: 2,\n    tooltip: {\n      trigger: 'item'\n    },\n    label: {\n      show: true,\n      position: 'end',\n      distance: 5\n    },\n    lineStyle: {\n      type: 'dashed'\n    },\n    emphasis: {\n      label: {\n        show: true\n      },\n      lineStyle: {\n        width: 3\n      }\n    },\n    animationEasing: 'linear'\n  };\n  return MarkLineModel;\n}(MarkerModel);\n\nexport default MarkLineModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport * as vec2 from 'zrender/lib/core/vector';\nvar straightLineProto = graphic.Line.prototype;\nvar bezierCurveProto = graphic.BezierCurve.prototype;\n\nvar StraightLineShape = function () {\n  function StraightLineShape() {\n    this.x1 = 0;\n    this.y1 = 0;\n    this.x2 = 0;\n    this.y2 = 0;\n    this.percent = 1;\n  }\n\n  return StraightLineShape;\n}();\n\nvar CurveShape = function (_super) {\n  __extends(CurveShape, _super);\n\n  function CurveShape() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  return CurveShape;\n}(StraightLineShape);\n\nfunction isStraightLine(shape) {\n  return isNaN(+shape.cpx1) || isNaN(+shape.cpy1);\n}\n\nvar ECLinePath = function (_super) {\n  __extends(ECLinePath, _super);\n\n  function ECLinePath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'ec-line';\n    return _this;\n  }\n\n  ECLinePath.prototype.getDefaultStyle = function () {\n    return {\n      stroke: '#000',\n      fill: null\n    };\n  };\n\n  ECLinePath.prototype.getDefaultShape = function () {\n    return new StraightLineShape();\n  };\n\n  ECLinePath.prototype.buildPath = function (ctx, shape) {\n    if (isStraightLine(shape)) {\n      straightLineProto.buildPath.call(this, ctx, shape);\n    } else {\n      bezierCurveProto.buildPath.call(this, ctx, shape);\n    }\n  };\n\n  ECLinePath.prototype.pointAt = function (t) {\n    if (isStraightLine(this.shape)) {\n      return straightLineProto.pointAt.call(this, t);\n    } else {\n      return bezierCurveProto.pointAt.call(this, t);\n    }\n  };\n\n  ECLinePath.prototype.tangentAt = function (t) {\n    var shape = this.shape;\n    var p = isStraightLine(shape) ? [shape.x2 - shape.x1, shape.y2 - shape.y1] : bezierCurveProto.tangentAt.call(this, t);\n    return vec2.normalize(p, p);\n  };\n\n  return ECLinePath;\n}(graphic.Path);\n\nexport default ECLinePath;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as vector from 'zrender/lib/core/vector';\nimport * as symbolUtil from '../../util/symbol';\nimport ECLinePath from './LinePath';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis, enterEmphasis, leaveEmphasis, SPECIAL_STATES } from '../../util/states';\nimport { getLabelStatesModels, setLabelStyle } from '../../label/labelStyle';\nimport { round } from '../../util/number';\nvar SYMBOL_CATEGORIES = ['fromSymbol', 'toSymbol'];\n\nfunction makeSymbolTypeKey(symbolCategory) {\n  return '_' + symbolCategory + 'Type';\n}\n\nfunction createSymbol(name, lineData, idx) {\n  var symbolType = lineData.getItemVisual(idx, name);\n\n  if (!symbolType || symbolType === 'none') {\n    return;\n  }\n\n  var symbolSize = lineData.getItemVisual(idx, name + 'Size');\n  var symbolRotate = lineData.getItemVisual(idx, name + 'Rotate');\n  var symbolSizeArr = zrUtil.isArray(symbolSize) ? symbolSize : [symbolSize, symbolSize];\n  var symbolPath = symbolUtil.createSymbol(symbolType, -symbolSizeArr[0] / 2, -symbolSizeArr[1] / 2, symbolSizeArr[0], symbolSizeArr[1]);\n  symbolPath.__specifiedRotation = symbolRotate == null || isNaN(symbolRotate) ? void 0 : +symbolRotate * Math.PI / 180 || 0;\n  symbolPath.name = name;\n  return symbolPath;\n}\n\nfunction createLine(points) {\n  var line = new ECLinePath({\n    name: 'line',\n    subPixelOptimize: true\n  });\n  setLinePoints(line.shape, points);\n  return line;\n}\n\nfunction setLinePoints(targetShape, points) {\n  targetShape.x1 = points[0][0];\n  targetShape.y1 = points[0][1];\n  targetShape.x2 = points[1][0];\n  targetShape.y2 = points[1][1];\n  targetShape.percent = 1;\n  var cp1 = points[2];\n\n  if (cp1) {\n    targetShape.cpx1 = cp1[0];\n    targetShape.cpy1 = cp1[1];\n  } else {\n    targetShape.cpx1 = NaN;\n    targetShape.cpy1 = NaN;\n  }\n}\n\nvar Line = function (_super) {\n  __extends(Line, _super);\n\n  function Line(lineData, idx, seriesScope) {\n    var _this = _super.call(this) || this;\n\n    _this._createLine(lineData, idx, seriesScope);\n\n    return _this;\n  }\n\n  Line.prototype._createLine = function (lineData, idx, seriesScope) {\n    var seriesModel = lineData.hostModel;\n    var linePoints = lineData.getItemLayout(idx);\n    var line = createLine(linePoints);\n    line.shape.percent = 0;\n    graphic.initProps(line, {\n      shape: {\n        percent: 1\n      }\n    }, seriesModel, idx);\n    this.add(line);\n    zrUtil.each(SYMBOL_CATEGORIES, function (symbolCategory) {\n      var symbol = createSymbol(symbolCategory, lineData, idx);\n      this.add(symbol);\n      this[makeSymbolTypeKey(symbolCategory)] = lineData.getItemVisual(idx, symbolCategory);\n    }, this);\n\n    this._updateCommonStl(lineData, idx, seriesScope);\n  };\n\n  Line.prototype.updateData = function (lineData, idx, seriesScope) {\n    var seriesModel = lineData.hostModel;\n    var line = this.childOfName('line');\n    var linePoints = lineData.getItemLayout(idx);\n    var target = {\n      shape: {}\n    };\n    setLinePoints(target.shape, linePoints);\n    graphic.updateProps(line, target, seriesModel, idx);\n    zrUtil.each(SYMBOL_CATEGORIES, function (symbolCategory) {\n      var symbolType = lineData.getItemVisual(idx, symbolCategory);\n      var key = makeSymbolTypeKey(symbolCategory);\n\n      if (this[key] !== symbolType) {\n        this.remove(this.childOfName(symbolCategory));\n        var symbol = createSymbol(symbolCategory, lineData, idx);\n        this.add(symbol);\n      }\n\n      this[key] = symbolType;\n    }, this);\n\n    this._updateCommonStl(lineData, idx, seriesScope);\n  };\n\n  ;\n\n  Line.prototype.getLinePath = function () {\n    return this.childAt(0);\n  };\n\n  Line.prototype._updateCommonStl = function (lineData, idx, seriesScope) {\n    var seriesModel = lineData.hostModel;\n    var line = this.childOfName('line');\n    var emphasisLineStyle = seriesScope && seriesScope.emphasisLineStyle;\n    var blurLineStyle = seriesScope && seriesScope.blurLineStyle;\n    var selectLineStyle = seriesScope && seriesScope.selectLineStyle;\n    var labelStatesModels = seriesScope && seriesScope.labelStatesModels;\n\n    if (!seriesScope || lineData.hasItemOption) {\n      var itemModel = lineData.getItemModel(idx);\n      emphasisLineStyle = itemModel.getModel(['emphasis', 'lineStyle']).getLineStyle();\n      blurLineStyle = itemModel.getModel(['blur', 'lineStyle']).getLineStyle();\n      selectLineStyle = itemModel.getModel(['select', 'lineStyle']).getLineStyle();\n      labelStatesModels = getLabelStatesModels(itemModel);\n    }\n\n    var lineStyle = lineData.getItemVisual(idx, 'style');\n    var visualColor = lineStyle.stroke;\n    line.useStyle(lineStyle);\n    line.style.fill = null;\n    line.style.strokeNoScale = true;\n    line.ensureState('emphasis').style = emphasisLineStyle;\n    line.ensureState('blur').style = blurLineStyle;\n    line.ensureState('select').style = selectLineStyle;\n    zrUtil.each(SYMBOL_CATEGORIES, function (symbolCategory) {\n      var symbol = this.childOfName(symbolCategory);\n\n      if (symbol) {\n        symbol.setColor(visualColor);\n        symbol.style.opacity = lineStyle.opacity;\n\n        for (var i = 0; i < SPECIAL_STATES.length; i++) {\n          var stateName = SPECIAL_STATES[i];\n          var lineState = line.getState(stateName);\n\n          if (lineState) {\n            var lineStateStyle = lineState.style || {};\n            var state = symbol.ensureState(stateName);\n            var stateStyle = state.style || (state.style = {});\n\n            if (lineStateStyle.stroke != null) {\n              stateStyle[symbol.__isEmptyBrush ? 'stroke' : 'fill'] = lineStateStyle.stroke;\n            }\n\n            if (lineStateStyle.opacity != null) {\n              stateStyle.opacity = lineStateStyle.opacity;\n            }\n          }\n        }\n\n        symbol.markRedraw();\n      }\n    }, this);\n    var rawVal = seriesModel.getRawValue(idx);\n    setLabelStyle(this, labelStatesModels, {\n      labelDataIndex: idx,\n      labelFetcher: {\n        getFormattedLabel: function (dataIndex, stateName) {\n          return seriesModel.getFormattedLabel(dataIndex, stateName, lineData.dataType);\n        }\n      },\n      inheritColor: visualColor || '#000',\n      defaultOpacity: lineStyle.opacity,\n      defaultText: (rawVal == null ? lineData.getName(idx) : isFinite(rawVal) ? round(rawVal) : rawVal) + ''\n    });\n    var label = this.getTextContent();\n\n    if (label) {\n      var labelNormalModel = labelStatesModels.normal;\n      label.__align = label.style.align;\n      label.__verticalAlign = label.style.verticalAlign;\n      label.__position = labelNormalModel.get('position') || 'middle';\n      var distance = labelNormalModel.get('distance');\n\n      if (!zrUtil.isArray(distance)) {\n        distance = [distance, distance];\n      }\n\n      label.__labelDistance = distance;\n    }\n\n    this.setTextConfig({\n      position: null,\n      local: true,\n      inside: false\n    });\n    enableHoverEmphasis(this);\n  };\n\n  Line.prototype.highlight = function () {\n    enterEmphasis(this);\n  };\n\n  Line.prototype.downplay = function () {\n    leaveEmphasis(this);\n  };\n\n  Line.prototype.updateLayout = function (lineData, idx) {\n    this.setLinePoints(lineData.getItemLayout(idx));\n  };\n\n  Line.prototype.setLinePoints = function (points) {\n    var linePath = this.childOfName('line');\n    setLinePoints(linePath.shape, points);\n    linePath.dirty();\n  };\n\n  Line.prototype.beforeUpdate = function () {\n    var lineGroup = this;\n    var symbolFrom = lineGroup.childOfName('fromSymbol');\n    var symbolTo = lineGroup.childOfName('toSymbol');\n    var label = lineGroup.getTextContent();\n\n    if (!symbolFrom && !symbolTo && (!label || label.ignore)) {\n      return;\n    }\n\n    var invScale = 1;\n    var parentNode = this.parent;\n\n    while (parentNode) {\n      if (parentNode.scaleX) {\n        invScale /= parentNode.scaleX;\n      }\n\n      parentNode = parentNode.parent;\n    }\n\n    var line = lineGroup.childOfName('line');\n\n    if (!this.__dirty && !line.__dirty) {\n      return;\n    }\n\n    var percent = line.shape.percent;\n    var fromPos = line.pointAt(0);\n    var toPos = line.pointAt(percent);\n    var d = vector.sub([], toPos, fromPos);\n    vector.normalize(d, d);\n\n    function setSymbolRotation(symbol, percent) {\n      var specifiedRotation = symbol.__specifiedRotation;\n\n      if (specifiedRotation == null) {\n        var tangent = line.tangentAt(percent);\n        symbol.attr('rotation', (percent === 1 ? -1 : 1) * Math.PI / 2 - Math.atan2(tangent[1], tangent[0]));\n      } else {\n        symbol.attr('rotation', specifiedRotation);\n      }\n    }\n\n    if (symbolFrom) {\n      symbolFrom.setPosition(fromPos);\n      setSymbolRotation(symbolFrom, 0);\n      symbolFrom.scaleX = symbolFrom.scaleY = invScale * percent;\n      symbolFrom.markRedraw();\n    }\n\n    if (symbolTo) {\n      symbolTo.setPosition(toPos);\n      setSymbolRotation(symbolTo, 1);\n      symbolTo.scaleX = symbolTo.scaleY = invScale * percent;\n      symbolTo.markRedraw();\n    }\n\n    if (label && !label.ignore) {\n      label.x = label.y = 0;\n      label.originX = label.originY = 0;\n      var textAlign = void 0;\n      var textVerticalAlign = void 0;\n      var distance = label.__labelDistance;\n      var distanceX = distance[0] * invScale;\n      var distanceY = distance[1] * invScale;\n      var halfPercent = percent / 2;\n      var tangent = line.tangentAt(halfPercent);\n      var n = [tangent[1], -tangent[0]];\n      var cp = line.pointAt(halfPercent);\n\n      if (n[1] > 0) {\n        n[0] = -n[0];\n        n[1] = -n[1];\n      }\n\n      var dir = tangent[0] < 0 ? -1 : 1;\n\n      if (label.__position !== 'start' && label.__position !== 'end') {\n        var rotation = -Math.atan2(tangent[1], tangent[0]);\n\n        if (toPos[0] < fromPos[0]) {\n          rotation = Math.PI + rotation;\n        }\n\n        label.rotation = rotation;\n      }\n\n      var dy = void 0;\n\n      switch (label.__position) {\n        case 'insideStartTop':\n        case 'insideMiddleTop':\n        case 'insideEndTop':\n        case 'middle':\n          dy = -distanceY;\n          textVerticalAlign = 'bottom';\n          break;\n\n        case 'insideStartBottom':\n        case 'insideMiddleBottom':\n        case 'insideEndBottom':\n          dy = distanceY;\n          textVerticalAlign = 'top';\n          break;\n\n        default:\n          dy = 0;\n          textVerticalAlign = 'middle';\n      }\n\n      switch (label.__position) {\n        case 'end':\n          label.x = d[0] * distanceX + toPos[0];\n          label.y = d[1] * distanceY + toPos[1];\n          textAlign = d[0] > 0.8 ? 'left' : d[0] < -0.8 ? 'right' : 'center';\n          textVerticalAlign = d[1] > 0.8 ? 'top' : d[1] < -0.8 ? 'bottom' : 'middle';\n          break;\n\n        case 'start':\n          label.x = -d[0] * distanceX + fromPos[0];\n          label.y = -d[1] * distanceY + fromPos[1];\n          textAlign = d[0] > 0.8 ? 'right' : d[0] < -0.8 ? 'left' : 'center';\n          textVerticalAlign = d[1] > 0.8 ? 'bottom' : d[1] < -0.8 ? 'top' : 'middle';\n          break;\n\n        case 'insideStartTop':\n        case 'insideStart':\n        case 'insideStartBottom':\n          label.x = distanceX * dir + fromPos[0];\n          label.y = fromPos[1] + dy;\n          textAlign = tangent[0] < 0 ? 'right' : 'left';\n          label.originX = -distanceX * dir;\n          label.originY = -dy;\n          break;\n\n        case 'insideMiddleTop':\n        case 'insideMiddle':\n        case 'insideMiddleBottom':\n        case 'middle':\n          label.x = cp[0];\n          label.y = cp[1] + dy;\n          textAlign = 'center';\n          label.originY = -dy;\n          break;\n\n        case 'insideEndTop':\n        case 'insideEnd':\n        case 'insideEndBottom':\n          label.x = -distanceX * dir + toPos[0];\n          label.y = toPos[1] + dy;\n          textAlign = tangent[0] >= 0 ? 'right' : 'left';\n          label.originX = distanceX * dir;\n          label.originY = -dy;\n          break;\n      }\n\n      label.scaleX = label.scaleY = invScale;\n      label.setStyle({\n        verticalAlign: label.__verticalAlign || textVerticalAlign,\n        align: label.__align || textAlign\n      });\n    }\n  };\n\n  return Line;\n}(graphic.Group);\n\nexport default Line;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as graphic from '../../util/graphic';\nimport LineGroup from './Line';\nimport { getLabelStatesModels } from '../../label/labelStyle';\n\nvar LineDraw = function () {\n  function LineDraw(LineCtor) {\n    this.group = new graphic.Group();\n    this._LineCtor = LineCtor || LineGroup;\n  }\n\n  LineDraw.prototype.isPersistent = function () {\n    return true;\n  };\n\n  ;\n\n  LineDraw.prototype.updateData = function (lineData) {\n    var _this = this;\n\n    var lineDraw = this;\n    var group = lineDraw.group;\n    var oldLineData = lineDraw._lineData;\n    lineDraw._lineData = lineData;\n\n    if (!oldLineData) {\n      group.removeAll();\n    }\n\n    var seriesScope = makeSeriesScope(lineData);\n    lineData.diff(oldLineData).add(function (idx) {\n      _this._doAdd(lineData, idx, seriesScope);\n    }).update(function (newIdx, oldIdx) {\n      _this._doUpdate(oldLineData, lineData, oldIdx, newIdx, seriesScope);\n    }).remove(function (idx) {\n      group.remove(oldLineData.getItemGraphicEl(idx));\n    }).execute();\n  };\n\n  ;\n\n  LineDraw.prototype.updateLayout = function () {\n    var lineData = this._lineData;\n\n    if (!lineData) {\n      return;\n    }\n\n    lineData.eachItemGraphicEl(function (el, idx) {\n      el.updateLayout(lineData, idx);\n    }, this);\n  };\n\n  ;\n\n  LineDraw.prototype.incrementalPrepareUpdate = function (lineData) {\n    this._seriesScope = makeSeriesScope(lineData);\n    this._lineData = null;\n    this.group.removeAll();\n  };\n\n  ;\n\n  LineDraw.prototype.incrementalUpdate = function (taskParams, lineData) {\n    function updateIncrementalAndHover(el) {\n      if (!el.isGroup && !isEffectObject(el)) {\n        el.incremental = true;\n        el.ensureState('emphasis').hoverLayer = true;\n      }\n    }\n\n    for (var idx = taskParams.start; idx < taskParams.end; idx++) {\n      var itemLayout = lineData.getItemLayout(idx);\n\n      if (lineNeedsDraw(itemLayout)) {\n        var el = new this._LineCtor(lineData, idx, this._seriesScope);\n        el.traverse(updateIncrementalAndHover);\n        this.group.add(el);\n        lineData.setItemGraphicEl(idx, el);\n      }\n    }\n  };\n\n  ;\n\n  LineDraw.prototype.remove = function () {\n    this.group.removeAll();\n  };\n\n  ;\n\n  LineDraw.prototype._doAdd = function (lineData, idx, seriesScope) {\n    var itemLayout = lineData.getItemLayout(idx);\n\n    if (!lineNeedsDraw(itemLayout)) {\n      return;\n    }\n\n    var el = new this._LineCtor(lineData, idx, seriesScope);\n    lineData.setItemGraphicEl(idx, el);\n    this.group.add(el);\n  };\n\n  LineDraw.prototype._doUpdate = function (oldLineData, newLineData, oldIdx, newIdx, seriesScope) {\n    var itemEl = oldLineData.getItemGraphicEl(oldIdx);\n\n    if (!lineNeedsDraw(newLineData.getItemLayout(newIdx))) {\n      this.group.remove(itemEl);\n      return;\n    }\n\n    if (!itemEl) {\n      itemEl = new this._LineCtor(newLineData, newIdx, seriesScope);\n    } else {\n      itemEl.updateData(newLineData, newIdx, seriesScope);\n    }\n\n    newLineData.setItemGraphicEl(newIdx, itemEl);\n    this.group.add(itemEl);\n  };\n\n  return LineDraw;\n}();\n\nfunction isEffectObject(el) {\n  return el.animators && el.animators.length > 0;\n}\n\nfunction makeSeriesScope(lineData) {\n  var hostModel = lineData.hostModel;\n  return {\n    lineStyle: hostModel.getModel('lineStyle').getLineStyle(),\n    emphasisLineStyle: hostModel.getModel(['emphasis', 'lineStyle']).getLineStyle(),\n    blurLineStyle: hostModel.getModel(['blur', 'lineStyle']).getLineStyle(),\n    selectLineStyle: hostModel.getModel(['select', 'lineStyle']).getLineStyle(),\n    labelStatesModels: getLabelStatesModels(hostModel)\n  };\n}\n\nfunction isPointNaN(pt) {\n  return isNaN(pt[0]) || isNaN(pt[1]);\n}\n\nfunction lineNeedsDraw(pts) {\n  return !isPointNaN(pts[0]) && !isPointNaN(pts[1]);\n}\n\nexport default LineDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport List from '../../data/List';\nimport * as numberUtil from '../../util/number';\nimport * as markerHelper from './markerHelper';\nimport LineDraw from '../../chart/helper/LineDraw';\nimport MarkerView from './MarkerView';\nimport { getStackedDimension } from '../../data/helper/dataStackHelper';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport { getECData } from '../../util/innerStore';\nimport MarkerModel from './MarkerModel';\nimport { isArray, retrieve, clone, extend, logError, merge, map, defaults, curry, filter } from 'zrender/lib/core/util';\nimport { makeInner } from '../../util/model';\nimport { getVisualFromData } from '../../visual/helper';\nvar inner = makeInner();\n\nvar markLineTransform = function (seriesModel, coordSys, mlModel, item) {\n  var data = seriesModel.getData();\n  var itemArray;\n\n  if (!isArray(item)) {\n    var mlType = item.type;\n\n    if (mlType === 'min' || mlType === 'max' || mlType === 'average' || mlType === 'median' || item.xAxis != null || item.yAxis != null) {\n      var valueAxis = void 0;\n      var value = void 0;\n\n      if (item.yAxis != null || item.xAxis != null) {\n        valueAxis = coordSys.getAxis(item.yAxis != null ? 'y' : 'x');\n        value = retrieve(item.yAxis, item.xAxis);\n      } else {\n        var axisInfo = markerHelper.getAxisInfo(item, data, coordSys, seriesModel);\n        valueAxis = axisInfo.valueAxis;\n        var valueDataDim = getStackedDimension(data, axisInfo.valueDataDim);\n        value = markerHelper.numCalculate(data, valueDataDim, mlType);\n      }\n\n      var valueIndex = valueAxis.dim === 'x' ? 0 : 1;\n      var baseIndex = 1 - valueIndex;\n      var mlFrom = clone(item);\n      var mlTo = {\n        coord: []\n      };\n      mlFrom.type = null;\n      mlFrom.coord = [];\n      mlFrom.coord[baseIndex] = -Infinity;\n      mlTo.coord[baseIndex] = Infinity;\n      var precision = mlModel.get('precision');\n\n      if (precision >= 0 && typeof value === 'number') {\n        value = +value.toFixed(Math.min(precision, 20));\n      }\n\n      mlFrom.coord[valueIndex] = mlTo.coord[valueIndex] = value;\n      itemArray = [mlFrom, mlTo, {\n        type: mlType,\n        valueIndex: item.valueIndex,\n        value: value\n      }];\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        logError('Invalid markLine data.');\n      }\n\n      itemArray = [];\n    }\n  } else {\n    itemArray = item;\n  }\n\n  var normalizedItem = [markerHelper.dataTransform(seriesModel, itemArray[0]), markerHelper.dataTransform(seriesModel, itemArray[1]), extend({}, itemArray[2])];\n  normalizedItem[2].type = normalizedItem[2].type || null;\n  merge(normalizedItem[2], normalizedItem[0]);\n  merge(normalizedItem[2], normalizedItem[1]);\n  return normalizedItem;\n};\n\nfunction isInifinity(val) {\n  return !isNaN(val) && !isFinite(val);\n}\n\nfunction ifMarkLineHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\n  var otherDimIndex = 1 - dimIndex;\n  var dimName = coordSys.dimensions[dimIndex];\n  return isInifinity(fromCoord[otherDimIndex]) && isInifinity(toCoord[otherDimIndex]) && fromCoord[dimIndex] === toCoord[dimIndex] && coordSys.getAxis(dimName).containData(fromCoord[dimIndex]);\n}\n\nfunction markLineFilter(coordSys, item) {\n  if (coordSys.type === 'cartesian2d') {\n    var fromCoord = item[0].coord;\n    var toCoord = item[1].coord;\n\n    if (fromCoord && toCoord && (ifMarkLineHasOnlyDim(1, fromCoord, toCoord, coordSys) || ifMarkLineHasOnlyDim(0, fromCoord, toCoord, coordSys))) {\n      return true;\n    }\n  }\n\n  return markerHelper.dataFilter(coordSys, item[0]) && markerHelper.dataFilter(coordSys, item[1]);\n}\n\nfunction updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api) {\n  var coordSys = seriesModel.coordinateSystem;\n  var itemModel = data.getItemModel(idx);\n  var point;\n  var xPx = numberUtil.parsePercent(itemModel.get('x'), api.getWidth());\n  var yPx = numberUtil.parsePercent(itemModel.get('y'), api.getHeight());\n\n  if (!isNaN(xPx) && !isNaN(yPx)) {\n    point = [xPx, yPx];\n  } else {\n    if (seriesModel.getMarkerPosition) {\n      point = seriesModel.getMarkerPosition(data.getValues(data.dimensions, idx));\n    } else {\n      var dims = coordSys.dimensions;\n      var x = data.get(dims[0], idx);\n      var y = data.get(dims[1], idx);\n      point = coordSys.dataToPoint([x, y]);\n    }\n\n    if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n      var xAxis = coordSys.getAxis('x');\n      var yAxis = coordSys.getAxis('y');\n      var dims = coordSys.dimensions;\n\n      if (isInifinity(data.get(dims[0], idx))) {\n        point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[isFrom ? 0 : 1]);\n      } else if (isInifinity(data.get(dims[1], idx))) {\n        point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[isFrom ? 0 : 1]);\n      }\n    }\n\n    if (!isNaN(xPx)) {\n      point[0] = xPx;\n    }\n\n    if (!isNaN(yPx)) {\n      point[1] = yPx;\n    }\n  }\n\n  data.setItemLayout(idx, point);\n}\n\nvar MarkLineView = function (_super) {\n  __extends(MarkLineView, _super);\n\n  function MarkLineView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkLineView.type;\n    return _this;\n  }\n\n  MarkLineView.prototype.updateTransform = function (markLineModel, ecModel, api) {\n    ecModel.eachSeries(function (seriesModel) {\n      var mlModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markLine');\n\n      if (mlModel) {\n        var mlData_1 = mlModel.getData();\n        var fromData_1 = inner(mlModel).from;\n        var toData_1 = inner(mlModel).to;\n        fromData_1.each(function (idx) {\n          updateSingleMarkerEndLayout(fromData_1, idx, true, seriesModel, api);\n          updateSingleMarkerEndLayout(toData_1, idx, false, seriesModel, api);\n        });\n        mlData_1.each(function (idx) {\n          mlData_1.setItemLayout(idx, [fromData_1.getItemLayout(idx), toData_1.getItemLayout(idx)]);\n        });\n        this.markerGroupMap.get(seriesModel.id).updateLayout();\n      }\n    }, this);\n  };\n\n  MarkLineView.prototype.renderSeries = function (seriesModel, mlModel, ecModel, api) {\n    var coordSys = seriesModel.coordinateSystem;\n    var seriesId = seriesModel.id;\n    var seriesData = seriesModel.getData();\n    var lineDrawMap = this.markerGroupMap;\n    var lineDraw = lineDrawMap.get(seriesId) || lineDrawMap.set(seriesId, new LineDraw());\n    this.group.add(lineDraw.group);\n    var mlData = createList(coordSys, seriesModel, mlModel);\n    var fromData = mlData.from;\n    var toData = mlData.to;\n    var lineData = mlData.line;\n    inner(mlModel).from = fromData;\n    inner(mlModel).to = toData;\n    mlModel.setData(lineData);\n    var symbolType = mlModel.get('symbol');\n    var symbolSize = mlModel.get('symbolSize');\n\n    if (!isArray(symbolType)) {\n      symbolType = [symbolType, symbolType];\n    }\n\n    if (!isArray(symbolSize)) {\n      symbolSize = [symbolSize, symbolSize];\n    }\n\n    mlData.from.each(function (idx) {\n      updateDataVisualAndLayout(fromData, idx, true);\n      updateDataVisualAndLayout(toData, idx, false);\n    });\n    lineData.each(function (idx) {\n      var lineStyle = lineData.getItemModel(idx).getModel('lineStyle').getLineStyle();\n      lineData.setItemLayout(idx, [fromData.getItemLayout(idx), toData.getItemLayout(idx)]);\n\n      if (lineStyle.stroke == null) {\n        lineStyle.stroke = fromData.getItemVisual(idx, 'style').fill;\n      }\n\n      lineData.setItemVisual(idx, {\n        fromSymbolRotate: fromData.getItemVisual(idx, 'symbolRotate'),\n        fromSymbolSize: fromData.getItemVisual(idx, 'symbolSize'),\n        fromSymbol: fromData.getItemVisual(idx, 'symbol'),\n        toSymbolRotate: toData.getItemVisual(idx, 'symbolRotate'),\n        toSymbolSize: toData.getItemVisual(idx, 'symbolSize'),\n        toSymbol: toData.getItemVisual(idx, 'symbol'),\n        style: lineStyle\n      });\n    });\n    lineDraw.updateData(lineData);\n    mlData.line.eachItemGraphicEl(function (el, idx) {\n      el.traverse(function (child) {\n        getECData(child).dataModel = mlModel;\n      });\n    });\n\n    function updateDataVisualAndLayout(data, idx, isFrom) {\n      var itemModel = data.getItemModel(idx);\n      updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api);\n      var style = itemModel.getModel('itemStyle').getItemStyle();\n\n      if (style.fill == null) {\n        style.fill = getVisualFromData(seriesData, 'color');\n      }\n\n      data.setItemVisual(idx, {\n        symbolRotate: itemModel.get('symbolRotate'),\n        symbolSize: itemModel.get('symbolSize') || symbolSize[isFrom ? 0 : 1],\n        symbol: itemModel.get('symbol', true) || symbolType[isFrom ? 0 : 1],\n        style: style\n      });\n    }\n\n    this.markKeep(lineDraw);\n    lineDraw.group.silent = mlModel.get('silent') || seriesModel.get('silent');\n  };\n\n  MarkLineView.type = 'markLine';\n  return MarkLineView;\n}(MarkerView);\n\nfunction createList(coordSys, seriesModel, mlModel) {\n  var coordDimsInfos;\n\n  if (coordSys) {\n    coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\n      var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {};\n      return defaults({\n        name: coordDim\n      }, info);\n    });\n  } else {\n    coordDimsInfos = [{\n      name: 'value',\n      type: 'float'\n    }];\n  }\n\n  var fromData = new List(coordDimsInfos, mlModel);\n  var toData = new List(coordDimsInfos, mlModel);\n  var lineData = new List([], mlModel);\n  var optData = map(mlModel.get('data'), curry(markLineTransform, seriesModel, coordSys, mlModel));\n\n  if (coordSys) {\n    optData = filter(optData, curry(markLineFilter, coordSys));\n  }\n\n  var dimValueGetter = coordSys ? markerHelper.dimValueGetter : function (item) {\n    return item.value;\n  };\n  fromData.initData(map(optData, function (item) {\n    return item[0];\n  }), null, dimValueGetter);\n  toData.initData(map(optData, function (item) {\n    return item[1];\n  }), null, dimValueGetter);\n  lineData.initData(map(optData, function (item) {\n    return item[2];\n  }));\n  lineData.hasItemOption = true;\n  return {\n    from: fromData,\n    to: toData,\n    line: lineData\n  };\n}\n\nexport default MarkLineView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport MarkLineModel from './MarkLineModel';\nimport MarkLineView from './MarkLineView';\nexport function install(registers) {\n  registers.registerComponentModel(MarkLineModel);\n  registers.registerComponentView(MarkLineView);\n  registers.registerPreprocessor(function (opt) {\n    opt.markLine = opt.markLine || {};\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport MarkerModel from './MarkerModel';\n\nvar MarkAreaModel = function (_super) {\n  __extends(MarkAreaModel, _super);\n\n  function MarkAreaModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkAreaModel.type;\n    return _this;\n  }\n\n  MarkAreaModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\n    return new MarkAreaModel(markerOpt, masterMarkerModel, ecModel);\n  };\n\n  MarkAreaModel.type = 'markArea';\n  MarkAreaModel.defaultOption = {\n    zlevel: 0,\n    z: 1,\n    tooltip: {\n      trigger: 'item'\n    },\n    animation: false,\n    label: {\n      show: true,\n      position: 'top'\n    },\n    itemStyle: {\n      borderWidth: 0\n    },\n    emphasis: {\n      label: {\n        show: true,\n        position: 'top'\n      }\n    }\n  };\n  return MarkAreaModel;\n}(MarkerModel);\n\nexport default MarkAreaModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as colorUtil from 'zrender/lib/tool/color';\nimport List from '../../data/List';\nimport * as numberUtil from '../../util/number';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis, setStatesStylesFromModel } from '../../util/states';\nimport * as markerHelper from './markerHelper';\nimport MarkerView from './MarkerView';\nimport { retrieve, mergeAll, map, defaults, curry, filter, each } from 'zrender/lib/core/util';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport MarkerModel from './MarkerModel';\nimport { makeInner } from '../../util/model';\nimport { getVisualFromData } from '../../visual/helper';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { getECData } from '../../util/innerStore';\nvar inner = makeInner();\n\nvar markAreaTransform = function (seriesModel, coordSys, maModel, item) {\n  var lt = markerHelper.dataTransform(seriesModel, item[0]);\n  var rb = markerHelper.dataTransform(seriesModel, item[1]);\n  var ltCoord = lt.coord;\n  var rbCoord = rb.coord;\n  ltCoord[0] = retrieve(ltCoord[0], -Infinity);\n  ltCoord[1] = retrieve(ltCoord[1], -Infinity);\n  rbCoord[0] = retrieve(rbCoord[0], Infinity);\n  rbCoord[1] = retrieve(rbCoord[1], Infinity);\n  var result = mergeAll([{}, lt, rb]);\n  result.coord = [lt.coord, rb.coord];\n  result.x0 = lt.x;\n  result.y0 = lt.y;\n  result.x1 = rb.x;\n  result.y1 = rb.y;\n  return result;\n};\n\nfunction isInifinity(val) {\n  return !isNaN(val) && !isFinite(val);\n}\n\nfunction ifMarkAreaHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\n  var otherDimIndex = 1 - dimIndex;\n  return isInifinity(fromCoord[otherDimIndex]) && isInifinity(toCoord[otherDimIndex]);\n}\n\nfunction markAreaFilter(coordSys, item) {\n  var fromCoord = item.coord[0];\n  var toCoord = item.coord[1];\n\n  if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n    if (fromCoord && toCoord && (ifMarkAreaHasOnlyDim(1, fromCoord, toCoord, coordSys) || ifMarkAreaHasOnlyDim(0, fromCoord, toCoord, coordSys))) {\n      return true;\n    }\n  }\n\n  return markerHelper.dataFilter(coordSys, {\n    coord: fromCoord,\n    x: item.x0,\n    y: item.y0\n  }) || markerHelper.dataFilter(coordSys, {\n    coord: toCoord,\n    x: item.x1,\n    y: item.y1\n  });\n}\n\nfunction getSingleMarkerEndPoint(data, idx, dims, seriesModel, api) {\n  var coordSys = seriesModel.coordinateSystem;\n  var itemModel = data.getItemModel(idx);\n  var point;\n  var xPx = numberUtil.parsePercent(itemModel.get(dims[0]), api.getWidth());\n  var yPx = numberUtil.parsePercent(itemModel.get(dims[1]), api.getHeight());\n\n  if (!isNaN(xPx) && !isNaN(yPx)) {\n    point = [xPx, yPx];\n  } else {\n    if (seriesModel.getMarkerPosition) {\n      point = seriesModel.getMarkerPosition(data.getValues(dims, idx));\n    } else {\n      var x = data.get(dims[0], idx);\n      var y = data.get(dims[1], idx);\n      var pt = [x, y];\n      coordSys.clampData && coordSys.clampData(pt, pt);\n      point = coordSys.dataToPoint(pt, true);\n    }\n\n    if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n      var xAxis = coordSys.getAxis('x');\n      var yAxis = coordSys.getAxis('y');\n      var x = data.get(dims[0], idx);\n      var y = data.get(dims[1], idx);\n\n      if (isInifinity(x)) {\n        point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[dims[0] === 'x0' ? 0 : 1]);\n      } else if (isInifinity(y)) {\n        point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[dims[1] === 'y0' ? 0 : 1]);\n      }\n    }\n\n    if (!isNaN(xPx)) {\n      point[0] = xPx;\n    }\n\n    if (!isNaN(yPx)) {\n      point[1] = yPx;\n    }\n  }\n\n  return point;\n}\n\nvar dimPermutations = [['x0', 'y0'], ['x1', 'y0'], ['x1', 'y1'], ['x0', 'y1']];\n\nvar MarkAreaView = function (_super) {\n  __extends(MarkAreaView, _super);\n\n  function MarkAreaView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkAreaView.type;\n    return _this;\n  }\n\n  MarkAreaView.prototype.updateTransform = function (markAreaModel, ecModel, api) {\n    ecModel.eachSeries(function (seriesModel) {\n      var maModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markArea');\n\n      if (maModel) {\n        var areaData_1 = maModel.getData();\n        areaData_1.each(function (idx) {\n          var points = map(dimPermutations, function (dim) {\n            return getSingleMarkerEndPoint(areaData_1, idx, dim, seriesModel, api);\n          });\n          areaData_1.setItemLayout(idx, points);\n          var el = areaData_1.getItemGraphicEl(idx);\n          el.setShape('points', points);\n        });\n      }\n    }, this);\n  };\n\n  MarkAreaView.prototype.renderSeries = function (seriesModel, maModel, ecModel, api) {\n    var coordSys = seriesModel.coordinateSystem;\n    var seriesId = seriesModel.id;\n    var seriesData = seriesModel.getData();\n    var areaGroupMap = this.markerGroupMap;\n    var polygonGroup = areaGroupMap.get(seriesId) || areaGroupMap.set(seriesId, {\n      group: new graphic.Group()\n    });\n    this.group.add(polygonGroup.group);\n    this.markKeep(polygonGroup);\n    var areaData = createList(coordSys, seriesModel, maModel);\n    maModel.setData(areaData);\n    areaData.each(function (idx) {\n      var points = map(dimPermutations, function (dim) {\n        return getSingleMarkerEndPoint(areaData, idx, dim, seriesModel, api);\n      });\n      var allClipped = true;\n      each(dimPermutations, function (dim) {\n        if (!allClipped) {\n          return;\n        }\n\n        var xValue = areaData.get(dim[0], idx);\n        var yValue = areaData.get(dim[1], idx);\n\n        if ((isInifinity(xValue) || coordSys.getAxis('x').containData(xValue)) && (isInifinity(yValue) || coordSys.getAxis('y').containData(yValue))) {\n          allClipped = false;\n        }\n      });\n      areaData.setItemLayout(idx, {\n        points: points,\n        allClipped: allClipped\n      });\n      var style = areaData.getItemModel(idx).getModel('itemStyle').getItemStyle();\n      var color = getVisualFromData(seriesData, 'color');\n\n      if (!style.fill) {\n        style.fill = color;\n\n        if (typeof style.fill === 'string') {\n          style.fill = colorUtil.modifyAlpha(style.fill, 0.4);\n        }\n      }\n\n      if (!style.stroke) {\n        style.stroke = color;\n      }\n\n      areaData.setItemVisual(idx, 'style', style);\n    });\n    areaData.diff(inner(polygonGroup).data).add(function (idx) {\n      var layout = areaData.getItemLayout(idx);\n\n      if (!layout.allClipped) {\n        var polygon = new graphic.Polygon({\n          shape: {\n            points: layout.points\n          }\n        });\n        areaData.setItemGraphicEl(idx, polygon);\n        polygonGroup.group.add(polygon);\n      }\n    }).update(function (newIdx, oldIdx) {\n      var polygon = inner(polygonGroup).data.getItemGraphicEl(oldIdx);\n      var layout = areaData.getItemLayout(newIdx);\n\n      if (!layout.allClipped) {\n        if (polygon) {\n          graphic.updateProps(polygon, {\n            shape: {\n              points: layout.points\n            }\n          }, maModel, newIdx);\n        } else {\n          polygon = new graphic.Polygon({\n            shape: {\n              points: layout.points\n            }\n          });\n        }\n\n        areaData.setItemGraphicEl(newIdx, polygon);\n        polygonGroup.group.add(polygon);\n      } else if (polygon) {\n        polygonGroup.group.remove(polygon);\n      }\n    }).remove(function (idx) {\n      var polygon = inner(polygonGroup).data.getItemGraphicEl(idx);\n      polygonGroup.group.remove(polygon);\n    }).execute();\n    areaData.eachItemGraphicEl(function (polygon, idx) {\n      var itemModel = areaData.getItemModel(idx);\n      var style = areaData.getItemVisual(idx, 'style');\n      polygon.useStyle(areaData.getItemVisual(idx, 'style'));\n      setLabelStyle(polygon, getLabelStatesModels(itemModel), {\n        labelFetcher: maModel,\n        labelDataIndex: idx,\n        defaultText: areaData.getName(idx) || '',\n        inheritColor: typeof style.fill === 'string' ? colorUtil.modifyAlpha(style.fill, 1) : '#000'\n      });\n      setStatesStylesFromModel(polygon, itemModel);\n      enableHoverEmphasis(polygon);\n      getECData(polygon).dataModel = maModel;\n    });\n    inner(polygonGroup).data = areaData;\n    polygonGroup.group.silent = maModel.get('silent') || seriesModel.get('silent');\n  };\n\n  MarkAreaView.type = 'markArea';\n  return MarkAreaView;\n}(MarkerView);\n\nfunction createList(coordSys, seriesModel, maModel) {\n  var coordDimsInfos;\n  var areaData;\n  var dims = ['x0', 'y0', 'x1', 'y1'];\n\n  if (coordSys) {\n    coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\n      var data = seriesModel.getData();\n      var info = data.getDimensionInfo(data.mapDimension(coordDim)) || {};\n      return defaults({\n        name: coordDim\n      }, info);\n    });\n    areaData = new List(map(dims, function (dim, idx) {\n      return {\n        name: dim,\n        type: coordDimsInfos[idx % 2].type\n      };\n    }), maModel);\n  } else {\n    coordDimsInfos = [{\n      name: 'value',\n      type: 'float'\n    }];\n    areaData = new List(coordDimsInfos, maModel);\n  }\n\n  var optData = map(maModel.get('data'), curry(markAreaTransform, seriesModel, coordSys, maModel));\n\n  if (coordSys) {\n    optData = filter(optData, curry(markAreaFilter, coordSys));\n  }\n\n  var dimValueGetter = coordSys ? function (item, dimName, dataIndex, dimIndex) {\n    return item.coord[Math.floor(dimIndex / 2)][dimIndex % 2];\n  } : function (item) {\n    return item.value;\n  };\n  areaData.initData(optData, null, dimValueGetter);\n  areaData.hasItemOption = true;\n  return areaData;\n}\n\nexport default MarkAreaView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport MarkAreaModel from './MarkAreaModel';\nimport MarkAreaView from './MarkAreaView';\nexport function install(registers) {\n  registers.registerComponentModel(MarkAreaModel);\n  registers.registerComponentView(MarkAreaView);\n  registers.registerPreprocessor(function (opt) {\n    opt.markArea = opt.markArea || {};\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Model from '../../model/Model';\nimport { isNameSpecified } from '../../util/model';\nimport ComponentModel from '../../model/Component';\n\nvar getDefaultSelectorOptions = function (ecModel, type) {\n  if (type === 'all') {\n    return {\n      type: 'all',\n      title: ecModel.getLocale(['legend', 'selector', 'all'])\n    };\n  } else if (type === 'inverse') {\n    return {\n      type: 'inverse',\n      title: ecModel.getLocale(['legend', 'selector', 'inverse'])\n    };\n  }\n};\n\nvar LegendModel = function (_super) {\n  __extends(LegendModel, _super);\n\n  function LegendModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = LegendModel.type;\n    _this.layoutMode = {\n      type: 'box',\n      ignoreSize: true\n    };\n    return _this;\n  }\n\n  LegendModel.prototype.init = function (option, parentModel, ecModel) {\n    this.mergeDefaultAndTheme(option, ecModel);\n    option.selected = option.selected || {};\n\n    this._updateSelector(option);\n  };\n\n  LegendModel.prototype.mergeOption = function (option, ecModel) {\n    _super.prototype.mergeOption.call(this, option, ecModel);\n\n    this._updateSelector(option);\n  };\n\n  LegendModel.prototype._updateSelector = function (option) {\n    var selector = option.selector;\n    var ecModel = this.ecModel;\n\n    if (selector === true) {\n      selector = option.selector = ['all', 'inverse'];\n    }\n\n    if (zrUtil.isArray(selector)) {\n      zrUtil.each(selector, function (item, index) {\n        zrUtil.isString(item) && (item = {\n          type: item\n        });\n        selector[index] = zrUtil.merge(item, getDefaultSelectorOptions(ecModel, item.type));\n      });\n    }\n  };\n\n  LegendModel.prototype.optionUpdated = function () {\n    this._updateData(this.ecModel);\n\n    var legendData = this._data;\n\n    if (legendData[0] && this.get('selectedMode') === 'single') {\n      var hasSelected = false;\n\n      for (var i = 0; i < legendData.length; i++) {\n        var name_1 = legendData[i].get('name');\n\n        if (this.isSelected(name_1)) {\n          this.select(name_1);\n          hasSelected = true;\n          break;\n        }\n      }\n\n      !hasSelected && this.select(legendData[0].get('name'));\n    }\n  };\n\n  LegendModel.prototype._updateData = function (ecModel) {\n    var potentialData = [];\n    var availableNames = [];\n    ecModel.eachRawSeries(function (seriesModel) {\n      var seriesName = seriesModel.name;\n      availableNames.push(seriesName);\n      var isPotential;\n\n      if (seriesModel.legendVisualProvider) {\n        var provider = seriesModel.legendVisualProvider;\n        var names = provider.getAllNames();\n\n        if (!ecModel.isSeriesFiltered(seriesModel)) {\n          availableNames = availableNames.concat(names);\n        }\n\n        if (names.length) {\n          potentialData = potentialData.concat(names);\n        } else {\n          isPotential = true;\n        }\n      } else {\n        isPotential = true;\n      }\n\n      if (isPotential && isNameSpecified(seriesModel)) {\n        potentialData.push(seriesModel.name);\n      }\n    });\n    this._availableNames = availableNames;\n    var rawData = this.get('data') || potentialData;\n    var legendData = zrUtil.map(rawData, function (dataItem) {\n      if (typeof dataItem === 'string' || typeof dataItem === 'number') {\n        dataItem = {\n          name: dataItem\n        };\n      }\n\n      return new Model(dataItem, this, this.ecModel);\n    }, this);\n    this._data = legendData;\n  };\n\n  LegendModel.prototype.getData = function () {\n    return this._data;\n  };\n\n  LegendModel.prototype.select = function (name) {\n    var selected = this.option.selected;\n    var selectedMode = this.get('selectedMode');\n\n    if (selectedMode === 'single') {\n      var data = this._data;\n      zrUtil.each(data, function (dataItem) {\n        selected[dataItem.get('name')] = false;\n      });\n    }\n\n    selected[name] = true;\n  };\n\n  LegendModel.prototype.unSelect = function (name) {\n    if (this.get('selectedMode') !== 'single') {\n      this.option.selected[name] = false;\n    }\n  };\n\n  LegendModel.prototype.toggleSelected = function (name) {\n    var selected = this.option.selected;\n\n    if (!selected.hasOwnProperty(name)) {\n      selected[name] = true;\n    }\n\n    this[selected[name] ? 'unSelect' : 'select'](name);\n  };\n\n  LegendModel.prototype.allSelect = function () {\n    var data = this._data;\n    var selected = this.option.selected;\n    zrUtil.each(data, function (dataItem) {\n      selected[dataItem.get('name', true)] = true;\n    });\n  };\n\n  LegendModel.prototype.inverseSelect = function () {\n    var data = this._data;\n    var selected = this.option.selected;\n    zrUtil.each(data, function (dataItem) {\n      var name = dataItem.get('name', true);\n\n      if (!selected.hasOwnProperty(name)) {\n        selected[name] = true;\n      }\n\n      selected[name] = !selected[name];\n    });\n  };\n\n  LegendModel.prototype.isSelected = function (name) {\n    var selected = this.option.selected;\n    return !(selected.hasOwnProperty(name) && !selected[name]) && zrUtil.indexOf(this._availableNames, name) >= 0;\n  };\n\n  LegendModel.prototype.getOrient = function () {\n    return this.get('orient') === 'vertical' ? {\n      index: 1,\n      name: 'vertical'\n    } : {\n      index: 0,\n      name: 'horizontal'\n    };\n  };\n\n  LegendModel.type = 'legend.plain';\n  LegendModel.dependencies = ['series'];\n  LegendModel.defaultOption = {\n    zlevel: 0,\n    z: 4,\n    show: true,\n    orient: 'horizontal',\n    left: 'center',\n    top: 0,\n    align: 'auto',\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderColor: '#ccc',\n    borderRadius: 0,\n    borderWidth: 0,\n    padding: 5,\n    itemGap: 10,\n    itemWidth: 25,\n    itemHeight: 14,\n    inactiveColor: '#ccc',\n    inactiveBorderColor: '#ccc',\n    itemStyle: {\n      borderWidth: 0\n    },\n    textStyle: {\n      color: '#333'\n    },\n    selectedMode: true,\n    selector: false,\n    selectorLabel: {\n      show: true,\n      borderRadius: 10,\n      padding: [3, 5, 3, 5],\n      fontSize: 12,\n      fontFamily: ' sans-serif',\n      color: '#666',\n      borderWidth: 1,\n      borderColor: '#666'\n    },\n    emphasis: {\n      selectorLabel: {\n        show: true,\n        color: '#eee',\n        backgroundColor: '#666'\n      }\n    },\n    selectorPosition: 'auto',\n    selectorItemGap: 7,\n    selectorButtonGap: 10,\n    tooltip: {\n      show: false\n    }\n  };\n  return LegendModel;\n}(ComponentModel);\n\nexport default LegendModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { createSymbol } from '../../util/symbol';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis } from '../../util/states';\nimport { setLabelStyle, createTextStyle } from '../../label/labelStyle';\nimport { makeBackground } from '../helper/listComponent';\nimport * as layoutUtil from '../../util/layout';\nimport ComponentView from '../../view/Component';\nimport { parse, stringify } from 'zrender/lib/tool/color';\nvar curry = zrUtil.curry;\nvar each = zrUtil.each;\nvar Group = graphic.Group;\n\nvar LegendView = function (_super) {\n  __extends(LegendView, _super);\n\n  function LegendView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = LegendView.type;\n    _this.newlineDisabled = false;\n    return _this;\n  }\n\n  LegendView.prototype.init = function () {\n    this.group.add(this._contentGroup = new Group());\n    this.group.add(this._selectorGroup = new Group());\n    this._isFirstRender = true;\n  };\n\n  LegendView.prototype.getContentGroup = function () {\n    return this._contentGroup;\n  };\n\n  LegendView.prototype.getSelectorGroup = function () {\n    return this._selectorGroup;\n  };\n\n  LegendView.prototype.render = function (legendModel, ecModel, api) {\n    var isFirstRender = this._isFirstRender;\n    this._isFirstRender = false;\n    this.resetInner();\n\n    if (!legendModel.get('show', true)) {\n      return;\n    }\n\n    var itemAlign = legendModel.get('align');\n    var orient = legendModel.get('orient');\n\n    if (!itemAlign || itemAlign === 'auto') {\n      itemAlign = legendModel.get('left') === 'right' && orient === 'vertical' ? 'right' : 'left';\n    }\n\n    var selector = legendModel.get('selector', true);\n    var selectorPosition = legendModel.get('selectorPosition', true);\n\n    if (selector && (!selectorPosition || selectorPosition === 'auto')) {\n      selectorPosition = orient === 'horizontal' ? 'end' : 'start';\n    }\n\n    this.renderInner(itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\n    var positionInfo = legendModel.getBoxLayoutParams();\n    var viewportSize = {\n      width: api.getWidth(),\n      height: api.getHeight()\n    };\n    var padding = legendModel.get('padding');\n    var maxSize = layoutUtil.getLayoutRect(positionInfo, viewportSize, padding);\n    var mainRect = this.layoutInner(legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition);\n    var layoutRect = layoutUtil.getLayoutRect(zrUtil.defaults({\n      width: mainRect.width,\n      height: mainRect.height\n    }, positionInfo), viewportSize, padding);\n    this.group.x = layoutRect.x - mainRect.x;\n    this.group.y = layoutRect.y - mainRect.y;\n    this.group.markRedraw();\n    this.group.add(this._backgroundEl = makeBackground(mainRect, legendModel));\n  };\n\n  LegendView.prototype.resetInner = function () {\n    this.getContentGroup().removeAll();\n    this._backgroundEl && this.group.remove(this._backgroundEl);\n    this.getSelectorGroup().removeAll();\n  };\n\n  LegendView.prototype.renderInner = function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\n    var contentGroup = this.getContentGroup();\n    var legendDrawnMap = zrUtil.createHashMap();\n    var selectMode = legendModel.get('selectedMode');\n    var excludeSeriesId = [];\n    ecModel.eachRawSeries(function (seriesModel) {\n      !seriesModel.get('legendHoverLink') && excludeSeriesId.push(seriesModel.id);\n    });\n    each(legendModel.getData(), function (itemModel, dataIndex) {\n      var name = itemModel.get('name');\n\n      if (!this.newlineDisabled && (name === '' || name === '\\n')) {\n        var g = new Group();\n        g.newline = true;\n        contentGroup.add(g);\n        return;\n      }\n\n      var seriesModel = ecModel.getSeriesByName(name)[0];\n\n      if (legendDrawnMap.get(name)) {\n        return;\n      }\n\n      if (seriesModel) {\n        var data = seriesModel.getData();\n        var style = data.getVisual('style');\n        var color = style[data.getVisual('drawType')] || style.fill;\n        var borderColor = style.stroke;\n        var decal = style.decal;\n        var legendSymbolType = data.getVisual('legendSymbol') || 'roundRect';\n        var symbolType = data.getVisual('symbol');\n\n        var itemGroup = this._createItem(name, dataIndex, itemModel, legendModel, legendSymbolType, symbolType, itemAlign, color, borderColor, decal, selectMode);\n\n        itemGroup.on('click', curry(dispatchSelectAction, name, null, api, excludeSeriesId)).on('mouseover', curry(dispatchHighlightAction, seriesModel.name, null, api, excludeSeriesId)).on('mouseout', curry(dispatchDownplayAction, seriesModel.name, null, api, excludeSeriesId));\n        legendDrawnMap.set(name, true);\n      } else {\n        ecModel.eachRawSeries(function (seriesModel) {\n          if (legendDrawnMap.get(name)) {\n            return;\n          }\n\n          if (seriesModel.legendVisualProvider) {\n            var provider = seriesModel.legendVisualProvider;\n\n            if (!provider.containName(name)) {\n              return;\n            }\n\n            var idx = provider.indexOfName(name);\n            var style = provider.getItemVisual(idx, 'style');\n            var borderColor = style.stroke;\n            var decal = style.decal;\n            var color = style.fill;\n            var colorArr = parse(style.fill);\n\n            if (colorArr && colorArr[3] === 0) {\n              colorArr[3] = 0.2;\n              color = stringify(colorArr, 'rgba');\n            }\n\n            var legendSymbolType = 'roundRect';\n\n            var itemGroup = this._createItem(name, dataIndex, itemModel, legendModel, legendSymbolType, null, itemAlign, color, borderColor, decal, selectMode);\n\n            itemGroup.on('click', curry(dispatchSelectAction, null, name, api, excludeSeriesId)).on('mouseover', curry(dispatchHighlightAction, null, name, api, excludeSeriesId)).on('mouseout', curry(dispatchDownplayAction, null, name, api, excludeSeriesId));\n            legendDrawnMap.set(name, true);\n          }\n        }, this);\n      }\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (!legendDrawnMap.get(name)) {\n          console.warn(name + ' series not exists. Legend data should be same with series name or data name.');\n        }\n      }\n    }, this);\n\n    if (selector) {\n      this._createSelector(selector, legendModel, api, orient, selectorPosition);\n    }\n  };\n\n  LegendView.prototype._createSelector = function (selector, legendModel, api, orient, selectorPosition) {\n    var selectorGroup = this.getSelectorGroup();\n    each(selector, function createSelectorButton(selectorItem) {\n      var type = selectorItem.type;\n      var labelText = new graphic.Text({\n        style: {\n          x: 0,\n          y: 0,\n          align: 'center',\n          verticalAlign: 'middle'\n        },\n        onclick: function () {\n          api.dispatchAction({\n            type: type === 'all' ? 'legendAllSelect' : 'legendInverseSelect'\n          });\n        }\n      });\n      selectorGroup.add(labelText);\n      var labelModel = legendModel.getModel('selectorLabel');\n      var emphasisLabelModel = legendModel.getModel(['emphasis', 'selectorLabel']);\n      setLabelStyle(labelText, {\n        normal: labelModel,\n        emphasis: emphasisLabelModel\n      }, {\n        defaultText: selectorItem.title\n      });\n      enableHoverEmphasis(labelText);\n    });\n  };\n\n  LegendView.prototype._createItem = function (name, dataIndex, itemModel, legendModel, legendSymbolType, symbolType, itemAlign, color, borderColor, decal, selectMode) {\n    var itemWidth = legendModel.get('itemWidth');\n    var itemHeight = legendModel.get('itemHeight');\n    var inactiveColor = legendModel.get('inactiveColor');\n    var inactiveBorderColor = legendModel.get('inactiveBorderColor');\n    var symbolKeepAspect = legendModel.get('symbolKeepAspect');\n    var legendModelItemStyle = legendModel.getModel('itemStyle');\n    var isSelected = legendModel.isSelected(name);\n    var itemGroup = new Group();\n    var textStyleModel = itemModel.getModel('textStyle');\n    var itemIcon = itemModel.get('icon');\n    var tooltipModel = itemModel.getModel('tooltip');\n    var legendGlobalTooltipModel = tooltipModel.parentModel;\n    legendSymbolType = itemIcon || legendSymbolType;\n    var legendSymbol = createSymbol(legendSymbolType, 0, 0, itemWidth, itemHeight, isSelected ? color : inactiveColor, symbolKeepAspect == null ? true : symbolKeepAspect);\n    itemGroup.add(setSymbolStyle(legendSymbol, legendSymbolType, legendModelItemStyle, borderColor, inactiveBorderColor, decal, isSelected));\n\n    if (!itemIcon && symbolType && (symbolType !== legendSymbolType || symbolType === 'none')) {\n      var size = itemHeight * 0.8;\n\n      if (symbolType === 'none') {\n        symbolType = 'circle';\n      }\n\n      var legendSymbolCenter = createSymbol(symbolType, (itemWidth - size) / 2, (itemHeight - size) / 2, size, size, isSelected ? color : inactiveColor, symbolKeepAspect == null ? true : symbolKeepAspect);\n      itemGroup.add(setSymbolStyle(legendSymbolCenter, symbolType, legendModelItemStyle, borderColor, inactiveBorderColor, decal, isSelected));\n    }\n\n    var textX = itemAlign === 'left' ? itemWidth + 5 : -5;\n    var textAlign = itemAlign;\n    var formatter = legendModel.get('formatter');\n    var content = name;\n\n    if (typeof formatter === 'string' && formatter) {\n      content = formatter.replace('{name}', name != null ? name : '');\n    } else if (typeof formatter === 'function') {\n      content = formatter(name);\n    }\n\n    itemGroup.add(new graphic.Text({\n      style: createTextStyle(textStyleModel, {\n        text: content,\n        x: textX,\n        y: itemHeight / 2,\n        fill: isSelected ? textStyleModel.getTextColor() : inactiveColor,\n        align: textAlign,\n        verticalAlign: 'middle'\n      })\n    }));\n    var hitRect = new graphic.Rect({\n      shape: itemGroup.getBoundingRect(),\n      invisible: true\n    });\n\n    if (tooltipModel.get('show')) {\n      var formatterParams = {\n        componentType: 'legend',\n        legendIndex: legendModel.componentIndex,\n        name: name,\n        $vars: ['name']\n      };\n      hitRect.tooltip = zrUtil.extend({\n        content: name,\n        formatter: legendGlobalTooltipModel.get('formatter', true) || function (params) {\n          return params.name;\n        },\n        formatterParams: formatterParams\n      }, tooltipModel.option);\n    }\n\n    itemGroup.add(hitRect);\n    itemGroup.eachChild(function (child) {\n      child.silent = true;\n    });\n    hitRect.silent = !selectMode;\n    this.getContentGroup().add(itemGroup);\n    enableHoverEmphasis(itemGroup);\n    itemGroup.__legendDataIndex = dataIndex;\n    return itemGroup;\n  };\n\n  LegendView.prototype.layoutInner = function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\n    var contentGroup = this.getContentGroup();\n    var selectorGroup = this.getSelectorGroup();\n    layoutUtil.box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), maxSize.width, maxSize.height);\n    var contentRect = contentGroup.getBoundingRect();\n    var contentPos = [-contentRect.x, -contentRect.y];\n    selectorGroup.markRedraw();\n    contentGroup.markRedraw();\n\n    if (selector) {\n      layoutUtil.box('horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\n      var selectorRect = selectorGroup.getBoundingRect();\n      var selectorPos = [-selectorRect.x, -selectorRect.y];\n      var selectorButtonGap = legendModel.get('selectorButtonGap', true);\n      var orientIdx = legendModel.getOrient().index;\n      var wh = orientIdx === 0 ? 'width' : 'height';\n      var hw = orientIdx === 0 ? 'height' : 'width';\n      var yx = orientIdx === 0 ? 'y' : 'x';\n\n      if (selectorPosition === 'end') {\n        selectorPos[orientIdx] += contentRect[wh] + selectorButtonGap;\n      } else {\n        contentPos[orientIdx] += selectorRect[wh] + selectorButtonGap;\n      }\n\n      selectorPos[1 - orientIdx] += contentRect[hw] / 2 - selectorRect[hw] / 2;\n      selectorGroup.x = selectorPos[0];\n      selectorGroup.y = selectorPos[1];\n      contentGroup.x = contentPos[0];\n      contentGroup.y = contentPos[1];\n      var mainRect = {\n        x: 0,\n        y: 0\n      };\n      mainRect[wh] = contentRect[wh] + selectorButtonGap + selectorRect[wh];\n      mainRect[hw] = Math.max(contentRect[hw], selectorRect[hw]);\n      mainRect[yx] = Math.min(0, selectorRect[yx] + selectorPos[1 - orientIdx]);\n      return mainRect;\n    } else {\n      contentGroup.x = contentPos[0];\n      contentGroup.y = contentPos[1];\n      return this.group.getBoundingRect();\n    }\n  };\n\n  LegendView.prototype.remove = function () {\n    this.getContentGroup().removeAll();\n    this._isFirstRender = true;\n  };\n\n  LegendView.type = 'legend.plain';\n  return LegendView;\n}(ComponentView);\n\nfunction setSymbolStyle(symbol, symbolType, legendModelItemStyle, borderColor, inactiveBorderColor, decal, isSelected) {\n  var itemStyle;\n\n  if (symbolType !== 'line' && symbolType.indexOf('empty') < 0) {\n    itemStyle = legendModelItemStyle.getItemStyle();\n    symbol.style.stroke = borderColor;\n    symbol.style.decal = decal;\n\n    if (!isSelected) {\n      itemStyle.stroke = inactiveBorderColor;\n    }\n  } else {\n    itemStyle = legendModelItemStyle.getItemStyle(['borderWidth', 'borderColor']);\n  }\n\n  symbol.setStyle(itemStyle);\n  return symbol;\n}\n\nfunction dispatchSelectAction(seriesName, dataName, api, excludeSeriesId) {\n  dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId);\n  api.dispatchAction({\n    type: 'legendToggleSelect',\n    name: seriesName != null ? seriesName : dataName\n  });\n  dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId);\n}\n\nfunction isUseHoverLayer(api) {\n  var list = api.getZr().storage.getDisplayList();\n  var emphasisState;\n  var i = 0;\n  var len = list.length;\n\n  while (i < len && !(emphasisState = list[i].states.emphasis)) {\n    i++;\n  }\n\n  return emphasisState && emphasisState.hoverLayer;\n}\n\nfunction dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId) {\n  if (!isUseHoverLayer(api)) {\n    api.dispatchAction({\n      type: 'highlight',\n      seriesName: seriesName,\n      name: dataName,\n      excludeSeriesId: excludeSeriesId\n    });\n  }\n}\n\nfunction dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId) {\n  if (!isUseHoverLayer(api)) {\n    api.dispatchAction({\n      type: 'downplay',\n      seriesName: seriesName,\n      name: dataName,\n      excludeSeriesId: excludeSeriesId\n    });\n  }\n}\n\nexport default LegendView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function legendFilter(ecModel) {\n  var legendModels = ecModel.findComponents({\n    mainType: 'legend'\n  });\n\n  if (legendModels && legendModels.length) {\n    ecModel.filterSeries(function (series) {\n      for (var i = 0; i < legendModels.length; i++) {\n        if (!legendModels[i].isSelected(series.name)) {\n          return false;\n        }\n      }\n\n      return true;\n    });\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { curry, each } from 'zrender/lib/core/util';\n\nfunction legendSelectActionHandler(methodName, payload, ecModel) {\n  var selectedMap = {};\n  var isToggleSelect = methodName === 'toggleSelected';\n  var isSelected;\n  ecModel.eachComponent('legend', function (legendModel) {\n    if (isToggleSelect && isSelected != null) {\n      legendModel[isSelected ? 'select' : 'unSelect'](payload.name);\n    } else if (methodName === 'allSelect' || methodName === 'inverseSelect') {\n      legendModel[methodName]();\n    } else {\n      legendModel[methodName](payload.name);\n      isSelected = legendModel.isSelected(payload.name);\n    }\n\n    var legendData = legendModel.getData();\n    each(legendData, function (model) {\n      var name = model.get('name');\n\n      if (name === '\\n' || name === '') {\n        return;\n      }\n\n      var isItemSelected = legendModel.isSelected(name);\n\n      if (selectedMap.hasOwnProperty(name)) {\n        selectedMap[name] = selectedMap[name] && isItemSelected;\n      } else {\n        selectedMap[name] = isItemSelected;\n      }\n    });\n  });\n  return methodName === 'allSelect' || methodName === 'inverseSelect' ? {\n    selected: selectedMap\n  } : {\n    name: payload.name,\n    selected: selectedMap\n  };\n}\n\nexport function installLegendAction(registers) {\n  registers.registerAction('legendToggleSelect', 'legendselectchanged', curry(legendSelectActionHandler, 'toggleSelected'));\n  registers.registerAction('legendAllSelect', 'legendselectall', curry(legendSelectActionHandler, 'allSelect'));\n  registers.registerAction('legendInverseSelect', 'legendinverseselect', curry(legendSelectActionHandler, 'inverseSelect'));\n  registers.registerAction('legendSelect', 'legendselected', curry(legendSelectActionHandler, 'select'));\n  registers.registerAction('legendUnSelect', 'legendunselected', curry(legendSelectActionHandler, 'unSelect'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport LegendModel from './LegendModel';\nimport LegendView from './LegendView';\nimport legendFilter from './legendFilter';\nimport { installLegendAction } from './legendAction';\nexport function install(registers) {\n  registers.registerComponentModel(LegendModel);\n  registers.registerComponentView(LegendView);\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.SERIES_FILTER, legendFilter);\n  registers.registerSubTypeDefaulter('legend', function () {\n    return 'plain';\n  });\n  installLegendAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport LegendModel from './LegendModel';\nimport { mergeLayoutParam, getLayoutParams } from '../../util/layout';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar ScrollableLegendModel = function (_super) {\n  __extends(ScrollableLegendModel, _super);\n\n  function ScrollableLegendModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ScrollableLegendModel.type;\n    return _this;\n  }\n\n  ScrollableLegendModel.prototype.setScrollDataIndex = function (scrollDataIndex) {\n    this.option.scrollDataIndex = scrollDataIndex;\n  };\n\n  ScrollableLegendModel.prototype.init = function (option, parentModel, ecModel) {\n    var inputPositionParams = getLayoutParams(option);\n\n    _super.prototype.init.call(this, option, parentModel, ecModel);\n\n    mergeAndNormalizeLayoutParams(this, option, inputPositionParams);\n  };\n\n  ScrollableLegendModel.prototype.mergeOption = function (option, ecModel) {\n    _super.prototype.mergeOption.call(this, option, ecModel);\n\n    mergeAndNormalizeLayoutParams(this, this.option, option);\n  };\n\n  ScrollableLegendModel.type = 'legend.scroll';\n  ScrollableLegendModel.defaultOption = inheritDefaultOption(LegendModel.defaultOption, {\n    scrollDataIndex: 0,\n    pageButtonItemGap: 5,\n    pageButtonGap: null,\n    pageButtonPosition: 'end',\n    pageFormatter: '{current}/{total}',\n    pageIcons: {\n      horizontal: ['M0,0L12,-10L12,10z', 'M0,0L-12,-10L-12,10z'],\n      vertical: ['M0,0L20,0L10,-20z', 'M0,0L20,0L10,20z']\n    },\n    pageIconColor: '#2f4554',\n    pageIconInactiveColor: '#aaa',\n    pageIconSize: 15,\n    pageTextStyle: {\n      color: '#333'\n    },\n    animationDurationUpdate: 800\n  });\n  return ScrollableLegendModel;\n}(LegendModel);\n\n;\n\nfunction mergeAndNormalizeLayoutParams(legendModel, target, raw) {\n  var orient = legendModel.getOrient();\n  var ignoreSize = [1, 1];\n  ignoreSize[orient.index] = 0;\n  mergeLayoutParam(target, raw, {\n    type: 'box',\n    ignoreSize: !!ignoreSize\n  });\n}\n\nexport default ScrollableLegendModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport * as layoutUtil from '../../util/layout';\nimport LegendView from './LegendView';\nvar Group = graphic.Group;\nvar WH = ['width', 'height'];\nvar XY = ['x', 'y'];\n\nvar ScrollableLegendView = function (_super) {\n  __extends(ScrollableLegendView, _super);\n\n  function ScrollableLegendView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ScrollableLegendView.type;\n    _this.newlineDisabled = true;\n    _this._currentIndex = 0;\n    return _this;\n  }\n\n  ScrollableLegendView.prototype.init = function () {\n    _super.prototype.init.call(this);\n\n    this.group.add(this._containerGroup = new Group());\n\n    this._containerGroup.add(this.getContentGroup());\n\n    this.group.add(this._controllerGroup = new Group());\n  };\n\n  ScrollableLegendView.prototype.resetInner = function () {\n    _super.prototype.resetInner.call(this);\n\n    this._controllerGroup.removeAll();\n\n    this._containerGroup.removeClipPath();\n\n    this._containerGroup.__rectSize = null;\n  };\n\n  ScrollableLegendView.prototype.renderInner = function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\n    var self = this;\n\n    _super.prototype.renderInner.call(this, itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\n\n    var controllerGroup = this._controllerGroup;\n    var pageIconSize = legendModel.get('pageIconSize', true);\n    var pageIconSizeArr = zrUtil.isArray(pageIconSize) ? pageIconSize : [pageIconSize, pageIconSize];\n    createPageButton('pagePrev', 0);\n    var pageTextStyleModel = legendModel.getModel('pageTextStyle');\n    controllerGroup.add(new graphic.Text({\n      name: 'pageText',\n      style: {\n        text: 'xx/xx',\n        fill: pageTextStyleModel.getTextColor(),\n        font: pageTextStyleModel.getFont(),\n        verticalAlign: 'middle',\n        align: 'center'\n      },\n      silent: true\n    }));\n    createPageButton('pageNext', 1);\n\n    function createPageButton(name, iconIdx) {\n      var pageDataIndexName = name + 'DataIndex';\n      var icon = graphic.createIcon(legendModel.get('pageIcons', true)[legendModel.getOrient().name][iconIdx], {\n        onclick: zrUtil.bind(self._pageGo, self, pageDataIndexName, legendModel, api)\n      }, {\n        x: -pageIconSizeArr[0] / 2,\n        y: -pageIconSizeArr[1] / 2,\n        width: pageIconSizeArr[0],\n        height: pageIconSizeArr[1]\n      });\n      icon.name = name;\n      controllerGroup.add(icon);\n    }\n  };\n\n  ScrollableLegendView.prototype.layoutInner = function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\n    var selectorGroup = this.getSelectorGroup();\n    var orientIdx = legendModel.getOrient().index;\n    var wh = WH[orientIdx];\n    var xy = XY[orientIdx];\n    var hw = WH[1 - orientIdx];\n    var yx = XY[1 - orientIdx];\n    selector && layoutUtil.box('horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\n    var selectorButtonGap = legendModel.get('selectorButtonGap', true);\n    var selectorRect = selectorGroup.getBoundingRect();\n    var selectorPos = [-selectorRect.x, -selectorRect.y];\n    var processMaxSize = zrUtil.clone(maxSize);\n    selector && (processMaxSize[wh] = maxSize[wh] - selectorRect[wh] - selectorButtonGap);\n\n    var mainRect = this._layoutContentAndController(legendModel, isFirstRender, processMaxSize, orientIdx, wh, hw, yx, xy);\n\n    if (selector) {\n      if (selectorPosition === 'end') {\n        selectorPos[orientIdx] += mainRect[wh] + selectorButtonGap;\n      } else {\n        var offset = selectorRect[wh] + selectorButtonGap;\n        selectorPos[orientIdx] -= offset;\n        mainRect[xy] -= offset;\n      }\n\n      mainRect[wh] += selectorRect[wh] + selectorButtonGap;\n      selectorPos[1 - orientIdx] += mainRect[yx] + mainRect[hw] / 2 - selectorRect[hw] / 2;\n      mainRect[hw] = Math.max(mainRect[hw], selectorRect[hw]);\n      mainRect[yx] = Math.min(mainRect[yx], selectorRect[yx] + selectorPos[1 - orientIdx]);\n      selectorGroup.x = selectorPos[0];\n      selectorGroup.y = selectorPos[1];\n      selectorGroup.markRedraw();\n    }\n\n    return mainRect;\n  };\n\n  ScrollableLegendView.prototype._layoutContentAndController = function (legendModel, isFirstRender, maxSize, orientIdx, wh, hw, yx, xy) {\n    var contentGroup = this.getContentGroup();\n    var containerGroup = this._containerGroup;\n    var controllerGroup = this._controllerGroup;\n    layoutUtil.box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), !orientIdx ? null : maxSize.width, orientIdx ? null : maxSize.height);\n    layoutUtil.box('horizontal', controllerGroup, legendModel.get('pageButtonItemGap', true));\n    var contentRect = contentGroup.getBoundingRect();\n    var controllerRect = controllerGroup.getBoundingRect();\n    var showController = this._showController = contentRect[wh] > maxSize[wh];\n    var contentPos = [-contentRect.x, -contentRect.y];\n\n    if (!isFirstRender) {\n      contentPos[orientIdx] = contentGroup[xy];\n    }\n\n    var containerPos = [0, 0];\n    var controllerPos = [-controllerRect.x, -controllerRect.y];\n    var pageButtonGap = zrUtil.retrieve2(legendModel.get('pageButtonGap', true), legendModel.get('itemGap', true));\n\n    if (showController) {\n      var pageButtonPosition = legendModel.get('pageButtonPosition', true);\n\n      if (pageButtonPosition === 'end') {\n        controllerPos[orientIdx] += maxSize[wh] - controllerRect[wh];\n      } else {\n        containerPos[orientIdx] += controllerRect[wh] + pageButtonGap;\n      }\n    }\n\n    controllerPos[1 - orientIdx] += contentRect[hw] / 2 - controllerRect[hw] / 2;\n    contentGroup.setPosition(contentPos);\n    containerGroup.setPosition(containerPos);\n    controllerGroup.setPosition(controllerPos);\n    var mainRect = {\n      x: 0,\n      y: 0\n    };\n    mainRect[wh] = showController ? maxSize[wh] : contentRect[wh];\n    mainRect[hw] = Math.max(contentRect[hw], controllerRect[hw]);\n    mainRect[yx] = Math.min(0, controllerRect[yx] + controllerPos[1 - orientIdx]);\n    containerGroup.__rectSize = maxSize[wh];\n\n    if (showController) {\n      var clipShape = {\n        x: 0,\n        y: 0\n      };\n      clipShape[wh] = Math.max(maxSize[wh] - controllerRect[wh] - pageButtonGap, 0);\n      clipShape[hw] = mainRect[hw];\n      containerGroup.setClipPath(new graphic.Rect({\n        shape: clipShape\n      }));\n      containerGroup.__rectSize = clipShape[wh];\n    } else {\n      controllerGroup.eachChild(function (child) {\n        child.attr({\n          invisible: true,\n          silent: true\n        });\n      });\n    }\n\n    var pageInfo = this._getPageInfo(legendModel);\n\n    pageInfo.pageIndex != null && graphic.updateProps(contentGroup, {\n      x: pageInfo.contentPosition[0],\n      y: pageInfo.contentPosition[1]\n    }, showController ? legendModel : null);\n\n    this._updatePageInfoView(legendModel, pageInfo);\n\n    return mainRect;\n  };\n\n  ScrollableLegendView.prototype._pageGo = function (to, legendModel, api) {\n    var scrollDataIndex = this._getPageInfo(legendModel)[to];\n\n    scrollDataIndex != null && api.dispatchAction({\n      type: 'legendScroll',\n      scrollDataIndex: scrollDataIndex,\n      legendId: legendModel.id\n    });\n  };\n\n  ScrollableLegendView.prototype._updatePageInfoView = function (legendModel, pageInfo) {\n    var controllerGroup = this._controllerGroup;\n    zrUtil.each(['pagePrev', 'pageNext'], function (name) {\n      var key = name + 'DataIndex';\n      var canJump = pageInfo[key] != null;\n      var icon = controllerGroup.childOfName(name);\n\n      if (icon) {\n        icon.setStyle('fill', canJump ? legendModel.get('pageIconColor', true) : legendModel.get('pageIconInactiveColor', true));\n        icon.cursor = canJump ? 'pointer' : 'default';\n      }\n    });\n    var pageText = controllerGroup.childOfName('pageText');\n    var pageFormatter = legendModel.get('pageFormatter');\n    var pageIndex = pageInfo.pageIndex;\n    var current = pageIndex != null ? pageIndex + 1 : 0;\n    var total = pageInfo.pageCount;\n    pageText && pageFormatter && pageText.setStyle('text', zrUtil.isString(pageFormatter) ? pageFormatter.replace('{current}', current == null ? '' : current + '').replace('{total}', total == null ? '' : total + '') : pageFormatter({\n      current: current,\n      total: total\n    }));\n  };\n\n  ScrollableLegendView.prototype._getPageInfo = function (legendModel) {\n    var scrollDataIndex = legendModel.get('scrollDataIndex', true);\n    var contentGroup = this.getContentGroup();\n    var containerRectSize = this._containerGroup.__rectSize;\n    var orientIdx = legendModel.getOrient().index;\n    var wh = WH[orientIdx];\n    var xy = XY[orientIdx];\n\n    var targetItemIndex = this._findTargetItemIndex(scrollDataIndex);\n\n    var children = contentGroup.children();\n    var targetItem = children[targetItemIndex];\n    var itemCount = children.length;\n    var pCount = !itemCount ? 0 : 1;\n    var result = {\n      contentPosition: [contentGroup.x, contentGroup.y],\n      pageCount: pCount,\n      pageIndex: pCount - 1,\n      pagePrevDataIndex: null,\n      pageNextDataIndex: null\n    };\n\n    if (!targetItem) {\n      return result;\n    }\n\n    var targetItemInfo = getItemInfo(targetItem);\n    result.contentPosition[orientIdx] = -targetItemInfo.s;\n\n    for (var i = targetItemIndex + 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i <= itemCount; ++i) {\n      currItemInfo = getItemInfo(children[i]);\n\n      if (!currItemInfo && winEndItemInfo.e > winStartItemInfo.s + containerRectSize || currItemInfo && !intersect(currItemInfo, winStartItemInfo.s)) {\n        if (winEndItemInfo.i > winStartItemInfo.i) {\n          winStartItemInfo = winEndItemInfo;\n        } else {\n          winStartItemInfo = currItemInfo;\n        }\n\n        if (winStartItemInfo) {\n          if (result.pageNextDataIndex == null) {\n            result.pageNextDataIndex = winStartItemInfo.i;\n          }\n\n          ++result.pageCount;\n        }\n      }\n\n      winEndItemInfo = currItemInfo;\n    }\n\n    for (var i = targetItemIndex - 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i >= -1; --i) {\n      currItemInfo = getItemInfo(children[i]);\n\n      if ((!currItemInfo || !intersect(winEndItemInfo, currItemInfo.s)) && winStartItemInfo.i < winEndItemInfo.i) {\n        winEndItemInfo = winStartItemInfo;\n\n        if (result.pagePrevDataIndex == null) {\n          result.pagePrevDataIndex = winStartItemInfo.i;\n        }\n\n        ++result.pageCount;\n        ++result.pageIndex;\n      }\n\n      winStartItemInfo = currItemInfo;\n    }\n\n    return result;\n\n    function getItemInfo(el) {\n      if (el) {\n        var itemRect = el.getBoundingRect();\n        var start = itemRect[xy] + el[xy];\n        return {\n          s: start,\n          e: start + itemRect[wh],\n          i: el.__legendDataIndex\n        };\n      }\n    }\n\n    function intersect(itemInfo, winStart) {\n      return itemInfo.e >= winStart && itemInfo.s <= winStart + containerRectSize;\n    }\n  };\n\n  ScrollableLegendView.prototype._findTargetItemIndex = function (targetDataIndex) {\n    if (!this._showController) {\n      return 0;\n    }\n\n    var index;\n    var contentGroup = this.getContentGroup();\n    var defaultIndex;\n    contentGroup.eachChild(function (child, idx) {\n      var legendDataIdx = child.__legendDataIndex;\n\n      if (defaultIndex == null && legendDataIdx != null) {\n        defaultIndex = idx;\n      }\n\n      if (legendDataIdx === targetDataIndex) {\n        index = idx;\n      }\n    });\n    return index != null ? index : defaultIndex;\n  };\n\n  ScrollableLegendView.type = 'legend.scroll';\n  return ScrollableLegendView;\n}(LegendView);\n\nexport default ScrollableLegendView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function installScrollableLegendAction(registers) {\n  registers.registerAction('legendScroll', 'legendscroll', function (payload, ecModel) {\n    var scrollDataIndex = payload.scrollDataIndex;\n    scrollDataIndex != null && ecModel.eachComponent({\n      mainType: 'legend',\n      subType: 'scroll',\n      query: payload\n    }, function (legendModel) {\n      legendModel.setScrollDataIndex(scrollDataIndex);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport { install as installLegendPlain } from './installLegendPlain';\nimport ScrollableLegendModel from './ScrollableLegendModel';\nimport ScrollableLegendView from './ScrollableLegendView';\nimport installScrollableLegendAction from './scrollableLegendAction';\nexport function install(registers) {\n  use(installLegendPlain);\n  registers.registerComponentModel(ScrollableLegendModel);\n  registers.registerComponentView(ScrollableLegendView);\n  installScrollableLegendAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport { install as installLegendPlain } from './installLegendPlain';\nimport { install as installLegendScroll } from './installLegendScroll';\nexport function install(registers) {\n  use(installLegendPlain);\n  use(installLegendScroll);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport DataZoomModel from './DataZoomModel';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar InsideZoomModel = function (_super) {\n  __extends(InsideZoomModel, _super);\n\n  function InsideZoomModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = InsideZoomModel.type;\n    return _this;\n  }\n\n  InsideZoomModel.type = 'dataZoom.inside';\n  InsideZoomModel.defaultOption = inheritDefaultOption(DataZoomModel.defaultOption, {\n    disabled: false,\n    zoomLock: false,\n    zoomOnMouseWheel: true,\n    moveOnMouseMove: true,\n    moveOnMouseWheel: false,\n    preventDefaultMouseMove: true\n  });\n  return InsideZoomModel;\n}(DataZoomModel);\n\nexport default InsideZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Eventful from 'zrender/lib/core/Eventful';\nimport * as eventTool from 'zrender/lib/core/event';\nimport * as interactionMutex from './interactionMutex';\nimport { isString, bind, defaults, clone } from 'zrender/lib/core/util';\n\nvar RoamController = function (_super) {\n  __extends(RoamController, _super);\n\n  function RoamController(zr) {\n    var _this = _super.call(this) || this;\n\n    _this._zr = zr;\n    var mousedownHandler = bind(_this._mousedownHandler, _this);\n    var mousemoveHandler = bind(_this._mousemoveHandler, _this);\n    var mouseupHandler = bind(_this._mouseupHandler, _this);\n    var mousewheelHandler = bind(_this._mousewheelHandler, _this);\n    var pinchHandler = bind(_this._pinchHandler, _this);\n\n    _this.enable = function (controlType, opt) {\n      this.disable();\n      this._opt = defaults(clone(opt) || {}, {\n        zoomOnMouseWheel: true,\n        moveOnMouseMove: true,\n        moveOnMouseWheel: false,\n        preventDefaultMouseMove: true\n      });\n\n      if (controlType == null) {\n        controlType = true;\n      }\n\n      if (controlType === true || controlType === 'move' || controlType === 'pan') {\n        zr.on('mousedown', mousedownHandler);\n        zr.on('mousemove', mousemoveHandler);\n        zr.on('mouseup', mouseupHandler);\n      }\n\n      if (controlType === true || controlType === 'scale' || controlType === 'zoom') {\n        zr.on('mousewheel', mousewheelHandler);\n        zr.on('pinch', pinchHandler);\n      }\n    };\n\n    _this.disable = function () {\n      zr.off('mousedown', mousedownHandler);\n      zr.off('mousemove', mousemoveHandler);\n      zr.off('mouseup', mouseupHandler);\n      zr.off('mousewheel', mousewheelHandler);\n      zr.off('pinch', pinchHandler);\n    };\n\n    return _this;\n  }\n\n  RoamController.prototype.isDragging = function () {\n    return this._dragging;\n  };\n\n  RoamController.prototype.isPinching = function () {\n    return this._pinching;\n  };\n\n  RoamController.prototype.setPointerChecker = function (pointerChecker) {\n    this.pointerChecker = pointerChecker;\n  };\n\n  RoamController.prototype.dispose = function () {\n    this.disable();\n  };\n\n  RoamController.prototype._mousedownHandler = function (e) {\n    if (eventTool.isMiddleOrRightButtonOnMouseUpDown(e) || e.target && e.target.draggable) {\n      return;\n    }\n\n    var x = e.offsetX;\n    var y = e.offsetY;\n\n    if (this.pointerChecker && this.pointerChecker(e, x, y)) {\n      this._x = x;\n      this._y = y;\n      this._dragging = true;\n    }\n  };\n\n  RoamController.prototype._mousemoveHandler = function (e) {\n    if (!this._dragging || !isAvailableBehavior('moveOnMouseMove', e, this._opt) || e.gestureEvent === 'pinch' || interactionMutex.isTaken(this._zr, 'globalPan')) {\n      return;\n    }\n\n    var x = e.offsetX;\n    var y = e.offsetY;\n    var oldX = this._x;\n    var oldY = this._y;\n    var dx = x - oldX;\n    var dy = y - oldY;\n    this._x = x;\n    this._y = y;\n    this._opt.preventDefaultMouseMove && eventTool.stop(e.event);\n    trigger(this, 'pan', 'moveOnMouseMove', e, {\n      dx: dx,\n      dy: dy,\n      oldX: oldX,\n      oldY: oldY,\n      newX: x,\n      newY: y,\n      isAvailableBehavior: null\n    });\n  };\n\n  RoamController.prototype._mouseupHandler = function (e) {\n    if (!eventTool.isMiddleOrRightButtonOnMouseUpDown(e)) {\n      this._dragging = false;\n    }\n  };\n\n  RoamController.prototype._mousewheelHandler = function (e) {\n    var shouldZoom = isAvailableBehavior('zoomOnMouseWheel', e, this._opt);\n    var shouldMove = isAvailableBehavior('moveOnMouseWheel', e, this._opt);\n    var wheelDelta = e.wheelDelta;\n    var absWheelDeltaDelta = Math.abs(wheelDelta);\n    var originX = e.offsetX;\n    var originY = e.offsetY;\n\n    if (wheelDelta === 0 || !shouldZoom && !shouldMove) {\n      return;\n    }\n\n    if (shouldZoom) {\n      var factor = absWheelDeltaDelta > 3 ? 1.4 : absWheelDeltaDelta > 1 ? 1.2 : 1.1;\n      var scale = wheelDelta > 0 ? factor : 1 / factor;\n      checkPointerAndTrigger(this, 'zoom', 'zoomOnMouseWheel', e, {\n        scale: scale,\n        originX: originX,\n        originY: originY,\n        isAvailableBehavior: null\n      });\n    }\n\n    if (shouldMove) {\n      var absDelta = Math.abs(wheelDelta);\n      var scrollDelta = (wheelDelta > 0 ? 1 : -1) * (absDelta > 3 ? 0.4 : absDelta > 1 ? 0.15 : 0.05);\n      checkPointerAndTrigger(this, 'scrollMove', 'moveOnMouseWheel', e, {\n        scrollDelta: scrollDelta,\n        originX: originX,\n        originY: originY,\n        isAvailableBehavior: null\n      });\n    }\n  };\n\n  RoamController.prototype._pinchHandler = function (e) {\n    if (interactionMutex.isTaken(this._zr, 'globalPan')) {\n      return;\n    }\n\n    var scale = e.pinchScale > 1 ? 1.1 : 1 / 1.1;\n    checkPointerAndTrigger(this, 'zoom', null, e, {\n      scale: scale,\n      originX: e.pinchX,\n      originY: e.pinchY,\n      isAvailableBehavior: null\n    });\n  };\n\n  return RoamController;\n}(Eventful);\n\nfunction checkPointerAndTrigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\n  if (controller.pointerChecker && controller.pointerChecker(e, contollerEvent.originX, contollerEvent.originY)) {\n    eventTool.stop(e.event);\n    trigger(controller, eventName, behaviorToCheck, e, contollerEvent);\n  }\n}\n\nfunction trigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\n  contollerEvent.isAvailableBehavior = bind(isAvailableBehavior, null, behaviorToCheck, e);\n  controller.trigger(eventName, contollerEvent);\n}\n\nfunction isAvailableBehavior(behaviorToCheck, e, settings) {\n  var setting = settings[behaviorToCheck];\n  return !behaviorToCheck || setting && (!isString(setting) || e.event[setting + 'Key']);\n}\n\nexport default RoamController;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport RoamController from '../../component/helper/RoamController';\nimport * as throttleUtil from '../../util/throttle';\nimport { makeInner } from '../../util/model';\nimport { each, curry, createHashMap } from 'zrender/lib/core/util';\nimport { collectReferCoordSysModelInfo } from './helper';\nvar inner = makeInner();\nexport function setViewInfoToCoordSysRecord(api, dataZoomModel, getRange) {\n  inner(api).coordSysRecordMap.each(function (coordSysRecord) {\n    var dzInfo = coordSysRecord.dataZoomInfoMap.get(dataZoomModel.uid);\n\n    if (dzInfo) {\n      dzInfo.getRange = getRange;\n    }\n  });\n}\nexport function disposeCoordSysRecordIfNeeded(api, dataZoomModel) {\n  var coordSysRecordMap = inner(api).coordSysRecordMap;\n  var coordSysKeyArr = coordSysRecordMap.keys();\n\n  for (var i = 0; i < coordSysKeyArr.length; i++) {\n    var coordSysKey = coordSysKeyArr[i];\n    var coordSysRecord = coordSysRecordMap.get(coordSysKey);\n    var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap;\n\n    if (dataZoomInfoMap) {\n      var dzUid = dataZoomModel.uid;\n      var dzInfo = dataZoomInfoMap.get(dzUid);\n\n      if (dzInfo) {\n        dataZoomInfoMap.removeKey(dzUid);\n\n        if (!dataZoomInfoMap.keys().length) {\n          disposeCoordSysRecord(coordSysRecordMap, coordSysRecord);\n        }\n      }\n    }\n  }\n}\n\nfunction disposeCoordSysRecord(coordSysRecordMap, coordSysRecord) {\n  if (coordSysRecord) {\n    coordSysRecordMap.removeKey(coordSysRecord.model.uid);\n    var controller = coordSysRecord.controller;\n    controller && controller.dispose();\n  }\n}\n\nfunction createCoordSysRecord(api, coordSysModel) {\n  var coordSysRecord = {\n    model: coordSysModel,\n    containsPoint: curry(containsPoint, coordSysModel),\n    dispatchAction: curry(dispatchAction, api),\n    dataZoomInfoMap: null,\n    controller: null\n  };\n  var controller = coordSysRecord.controller = new RoamController(api.getZr());\n  each(['pan', 'zoom', 'scrollMove'], function (eventName) {\n    controller.on(eventName, function (event) {\n      var batch = [];\n      coordSysRecord.dataZoomInfoMap.each(function (dzInfo) {\n        if (!event.isAvailableBehavior(dzInfo.model.option)) {\n          return;\n        }\n\n        var method = (dzInfo.getRange || {})[eventName];\n        var range = method && method(dzInfo.dzReferCoordSysInfo, coordSysRecord.model.mainType, coordSysRecord.controller, event);\n        !dzInfo.model.get('disabled', true) && range && batch.push({\n          dataZoomId: dzInfo.model.id,\n          start: range[0],\n          end: range[1]\n        });\n      });\n      batch.length && coordSysRecord.dispatchAction(batch);\n    });\n  });\n  return coordSysRecord;\n}\n\nfunction dispatchAction(api, batch) {\n  api.dispatchAction({\n    type: 'dataZoom',\n    animation: {\n      easing: 'cubicOut',\n      duration: 100\n    },\n    batch: batch\n  });\n}\n\nfunction containsPoint(coordSysModel, e, x, y) {\n  return coordSysModel.coordinateSystem.containPoint([x, y]);\n}\n\nfunction mergeControllerParams(dataZoomInfoMap) {\n  var controlType;\n  var prefix = 'type_';\n  var typePriority = {\n    'type_true': 2,\n    'type_move': 1,\n    'type_false': 0,\n    'type_undefined': -1\n  };\n  var preventDefaultMouseMove = true;\n  dataZoomInfoMap.each(function (dataZoomInfo) {\n    var dataZoomModel = dataZoomInfo.model;\n    var oneType = dataZoomModel.get('disabled', true) ? false : dataZoomModel.get('zoomLock', true) ? 'move' : true;\n\n    if (typePriority[prefix + oneType] > typePriority[prefix + controlType]) {\n      controlType = oneType;\n    }\n\n    preventDefaultMouseMove = preventDefaultMouseMove && dataZoomModel.get('preventDefaultMouseMove', true);\n  });\n  return {\n    controlType: controlType,\n    opt: {\n      zoomOnMouseWheel: true,\n      moveOnMouseMove: true,\n      moveOnMouseWheel: true,\n      preventDefaultMouseMove: !!preventDefaultMouseMove\n    }\n  };\n}\n\nexport function installDataZoomRoamProcessor(registers) {\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.FILTER, function (ecModel, api) {\n    var apiInner = inner(api);\n    var coordSysRecordMap = apiInner.coordSysRecordMap || (apiInner.coordSysRecordMap = createHashMap());\n    coordSysRecordMap.each(function (coordSysRecord) {\n      coordSysRecord.dataZoomInfoMap = null;\n    });\n    ecModel.eachComponent({\n      mainType: 'dataZoom',\n      subType: 'inside'\n    }, function (dataZoomModel) {\n      var dzReferCoordSysWrap = collectReferCoordSysModelInfo(dataZoomModel);\n      each(dzReferCoordSysWrap.infoList, function (dzCoordSysInfo) {\n        var coordSysUid = dzCoordSysInfo.model.uid;\n        var coordSysRecord = coordSysRecordMap.get(coordSysUid) || coordSysRecordMap.set(coordSysUid, createCoordSysRecord(api, dzCoordSysInfo.model));\n        var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap || (coordSysRecord.dataZoomInfoMap = createHashMap());\n        dataZoomInfoMap.set(dataZoomModel.uid, {\n          dzReferCoordSysInfo: dzCoordSysInfo,\n          model: dataZoomModel,\n          getRange: null\n        });\n      });\n    });\n    coordSysRecordMap.each(function (coordSysRecord) {\n      var controller = coordSysRecord.controller;\n      var firstDzInfo;\n      var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap;\n\n      if (dataZoomInfoMap) {\n        var firstDzKey = dataZoomInfoMap.keys()[0];\n\n        if (firstDzKey != null) {\n          firstDzInfo = dataZoomInfoMap.get(firstDzKey);\n        }\n      }\n\n      if (!firstDzInfo) {\n        disposeCoordSysRecord(coordSysRecordMap, coordSysRecord);\n        return;\n      }\n\n      var controllerParams = mergeControllerParams(dataZoomInfoMap);\n      controller.enable(controllerParams.controlType, controllerParams.opt);\n      controller.setPointerChecker(coordSysRecord.containsPoint);\n      throttleUtil.createOrUpdate(coordSysRecord, 'dispatchAction', firstDzInfo.model.get('throttle', true), 'fixRate');\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport DataZoomView from './DataZoomView';\nimport sliderMove from '../helper/sliderMove';\nimport * as roams from './roams';\nimport { bind } from 'zrender/lib/core/util';\n\nvar InsideZoomView = function (_super) {\n  __extends(InsideZoomView, _super);\n\n  function InsideZoomView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'dataZoom.inside';\n    return _this;\n  }\n\n  InsideZoomView.prototype.render = function (dataZoomModel, ecModel, api) {\n    _super.prototype.render.apply(this, arguments);\n\n    if (dataZoomModel.noTarget()) {\n      this._clear();\n\n      return;\n    }\n\n    this.range = dataZoomModel.getPercentRange();\n    roams.setViewInfoToCoordSysRecord(api, dataZoomModel, {\n      pan: bind(getRangeHandlers.pan, this),\n      zoom: bind(getRangeHandlers.zoom, this),\n      scrollMove: bind(getRangeHandlers.scrollMove, this)\n    });\n  };\n\n  InsideZoomView.prototype.dispose = function () {\n    this._clear();\n\n    _super.prototype.dispose.apply(this, arguments);\n  };\n\n  InsideZoomView.prototype._clear = function () {\n    roams.disposeCoordSysRecordIfNeeded(this.api, this.dataZoomModel);\n    this.range = null;\n  };\n\n  InsideZoomView.type = 'dataZoom.inside';\n  return InsideZoomView;\n}(DataZoomView);\n\nvar getRangeHandlers = {\n  zoom: function (coordSysInfo, coordSysMainType, controller, e) {\n    var lastRange = this.range;\n    var range = lastRange.slice();\n    var axisModel = coordSysInfo.axisModels[0];\n\n    if (!axisModel) {\n      return;\n    }\n\n    var directionInfo = getDirectionInfo[coordSysMainType](null, [e.originX, e.originY], axisModel, controller, coordSysInfo);\n    var percentPoint = (directionInfo.signal > 0 ? directionInfo.pixelStart + directionInfo.pixelLength - directionInfo.pixel : directionInfo.pixel - directionInfo.pixelStart) / directionInfo.pixelLength * (range[1] - range[0]) + range[0];\n    var scale = Math.max(1 / e.scale, 0);\n    range[0] = (range[0] - percentPoint) * scale + percentPoint;\n    range[1] = (range[1] - percentPoint) * scale + percentPoint;\n    var minMaxSpan = this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\n    sliderMove(0, range, [0, 100], 0, minMaxSpan.minSpan, minMaxSpan.maxSpan);\n    this.range = range;\n\n    if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\n      return range;\n    }\n  },\n  pan: makeMover(function (range, axisModel, coordSysInfo, coordSysMainType, controller, e) {\n    var directionInfo = getDirectionInfo[coordSysMainType]([e.oldX, e.oldY], [e.newX, e.newY], axisModel, controller, coordSysInfo);\n    return directionInfo.signal * (range[1] - range[0]) * directionInfo.pixel / directionInfo.pixelLength;\n  }),\n  scrollMove: makeMover(function (range, axisModel, coordSysInfo, coordSysMainType, controller, e) {\n    var directionInfo = getDirectionInfo[coordSysMainType]([0, 0], [e.scrollDelta, e.scrollDelta], axisModel, controller, coordSysInfo);\n    return directionInfo.signal * (range[1] - range[0]) * e.scrollDelta;\n  })\n};\n\nfunction makeMover(getPercentDelta) {\n  return function (coordSysInfo, coordSysMainType, controller, e) {\n    var lastRange = this.range;\n    var range = lastRange.slice();\n    var axisModel = coordSysInfo.axisModels[0];\n\n    if (!axisModel) {\n      return;\n    }\n\n    var percentDelta = getPercentDelta(range, axisModel, coordSysInfo, coordSysMainType, controller, e);\n    sliderMove(percentDelta, range, [0, 100], 'all');\n    this.range = range;\n\n    if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\n      return range;\n    }\n  };\n}\n\nvar getDirectionInfo = {\n  grid: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\n    var axis = axisModel.axis;\n    var ret = {};\n    var rect = coordSysInfo.model.coordinateSystem.getRect();\n    oldPoint = oldPoint || [0, 0];\n\n    if (axis.dim === 'x') {\n      ret.pixel = newPoint[0] - oldPoint[0];\n      ret.pixelLength = rect.width;\n      ret.pixelStart = rect.x;\n      ret.signal = axis.inverse ? 1 : -1;\n    } else {\n      ret.pixel = newPoint[1] - oldPoint[1];\n      ret.pixelLength = rect.height;\n      ret.pixelStart = rect.y;\n      ret.signal = axis.inverse ? -1 : 1;\n    }\n\n    return ret;\n  },\n  polar: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\n    var axis = axisModel.axis;\n    var ret = {};\n    var polar = coordSysInfo.model.coordinateSystem;\n    var radiusExtent = polar.getRadiusAxis().getExtent();\n    var angleExtent = polar.getAngleAxis().getExtent();\n    oldPoint = oldPoint ? polar.pointToCoord(oldPoint) : [0, 0];\n    newPoint = polar.pointToCoord(newPoint);\n\n    if (axisModel.mainType === 'radiusAxis') {\n      ret.pixel = newPoint[0] - oldPoint[0];\n      ret.pixelLength = radiusExtent[1] - radiusExtent[0];\n      ret.pixelStart = radiusExtent[0];\n      ret.signal = axis.inverse ? 1 : -1;\n    } else {\n      ret.pixel = newPoint[1] - oldPoint[1];\n      ret.pixelLength = angleExtent[1] - angleExtent[0];\n      ret.pixelStart = angleExtent[0];\n      ret.signal = axis.inverse ? -1 : 1;\n    }\n\n    return ret;\n  },\n  singleAxis: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\n    var axis = axisModel.axis;\n    var rect = coordSysInfo.model.coordinateSystem.getRect();\n    var ret = {};\n    oldPoint = oldPoint || [0, 0];\n\n    if (axis.orient === 'horizontal') {\n      ret.pixel = newPoint[0] - oldPoint[0];\n      ret.pixelLength = rect.width;\n      ret.pixelStart = rect.x;\n      ret.signal = axis.inverse ? 1 : -1;\n    } else {\n      ret.pixel = newPoint[1] - oldPoint[1];\n      ret.pixelLength = rect.height;\n      ret.pixelStart = rect.y;\n      ret.signal = axis.inverse ? -1 : 1;\n    }\n\n    return ret;\n  }\n};\nexport default InsideZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport InsideZoomModel from './InsideZoomModel';\nimport InsideZoomView from './InsideZoomView';\nimport { installDataZoomRoamProcessor } from './roams';\nimport installCommon from './installCommon';\nexport function install(registers) {\n  installCommon(registers);\n  registers.registerComponentModel(InsideZoomModel);\n  registers.registerComponentView(InsideZoomView);\n  installDataZoomRoamProcessor(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport DataZoomModel from './DataZoomModel';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar SliderZoomModel = function (_super) {\n  __extends(SliderZoomModel, _super);\n\n  function SliderZoomModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SliderZoomModel.type;\n    return _this;\n  }\n\n  SliderZoomModel.type = 'dataZoom.slider';\n  SliderZoomModel.layoutMode = 'box';\n  SliderZoomModel.defaultOption = inheritDefaultOption(DataZoomModel.defaultOption, {\n    show: true,\n    right: 'ph',\n    top: 'ph',\n    width: 'ph',\n    height: 'ph',\n    left: null,\n    bottom: null,\n    borderColor: '#d2dbee',\n    borderRadius: 3,\n    backgroundColor: 'rgba(47,69,84,0)',\n    dataBackground: {\n      lineStyle: {\n        color: '#d2dbee',\n        width: 0.5\n      },\n      areaStyle: {\n        color: '#d2dbee',\n        opacity: 0.2\n      }\n    },\n    selectedDataBackground: {\n      lineStyle: {\n        color: '#8fb0f7',\n        width: 0.5\n      },\n      areaStyle: {\n        color: '#8fb0f7',\n        opacity: 0.2\n      }\n    },\n    fillerColor: 'rgba(135,175,274,0.2)',\n    handleIcon: 'path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z',\n    handleSize: '100%',\n    handleStyle: {\n      color: '#fff',\n      borderColor: '#ACB8D1'\n    },\n    moveHandleSize: 7,\n    moveHandleIcon: 'path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z',\n    moveHandleStyle: {\n      color: '#D2DBEE',\n      opacity: 0.7\n    },\n    showDetail: true,\n    showDataShadow: 'auto',\n    realtime: true,\n    zoomLock: false,\n    textStyle: {\n      color: '#6E7079'\n    },\n    brushSelect: true,\n    brushStyle: {\n      color: 'rgba(135,175,274,0.15)'\n    },\n    emphasis: {\n      handleStyle: {\n        borderColor: '#8FB0F7'\n      },\n      moveHandleStyle: {\n        color: '#8FB0F7'\n      }\n    }\n  });\n  return SliderZoomModel;\n}(DataZoomModel);\n\nexport default SliderZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { bind, each, isFunction, isString, indexOf } from 'zrender/lib/core/util';\nimport * as eventTool from 'zrender/lib/core/event';\nimport * as graphic from '../../util/graphic';\nimport * as throttle from '../../util/throttle';\nimport DataZoomView from './DataZoomView';\nimport { linearMap, asc, parsePercent } from '../../util/number';\nimport * as layout from '../../util/layout';\nimport sliderMove from '../helper/sliderMove';\nimport { getAxisMainType, collectReferCoordSysModelInfo } from './helper';\nimport { enableHoverEmphasis } from '../../util/states';\nimport { createSymbol, symbolBuildProxies } from '../../util/symbol';\nimport { deprecateLog } from '../../util/log';\nvar Rect = graphic.Rect;\nvar DEFAULT_LOCATION_EDGE_GAP = 7;\nvar DEFAULT_FRAME_BORDER_WIDTH = 1;\nvar DEFAULT_FILLER_SIZE = 30;\nvar DEFAULT_MOVE_HANDLE_SIZE = 7;\nvar HORIZONTAL = 'horizontal';\nvar VERTICAL = 'vertical';\nvar LABEL_GAP = 5;\nvar SHOW_DATA_SHADOW_SERIES_TYPE = ['line', 'bar', 'candlestick', 'scatter'];\nvar REALTIME_ANIMATION_CONFIG = {\n  easing: 'cubicOut',\n  duration: 100\n};\n\nvar SliderZoomView = function (_super) {\n  __extends(SliderZoomView, _super);\n\n  function SliderZoomView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SliderZoomView.type;\n    _this._displayables = {};\n    return _this;\n  }\n\n  SliderZoomView.prototype.init = function (ecModel, api) {\n    this.api = api;\n    this._onBrush = bind(this._onBrush, this);\n    this._onBrushEnd = bind(this._onBrushEnd, this);\n  };\n\n  SliderZoomView.prototype.render = function (dataZoomModel, ecModel, api, payload) {\n    _super.prototype.render.apply(this, arguments);\n\n    throttle.createOrUpdate(this, '_dispatchZoomAction', dataZoomModel.get('throttle'), 'fixRate');\n    this._orient = dataZoomModel.getOrient();\n\n    if (dataZoomModel.get('show') === false) {\n      this.group.removeAll();\n      return;\n    }\n\n    if (dataZoomModel.noTarget()) {\n      this._clear();\n\n      this.group.removeAll();\n      return;\n    }\n\n    if (!payload || payload.type !== 'dataZoom' || payload.from !== this.uid) {\n      this._buildView();\n    }\n\n    this._updateView();\n  };\n\n  SliderZoomView.prototype.dispose = function () {\n    this._clear();\n\n    _super.prototype.dispose.apply(this, arguments);\n  };\n\n  SliderZoomView.prototype._clear = function () {\n    throttle.clear(this, '_dispatchZoomAction');\n    var zr = this.api.getZr();\n    zr.off('mousemove', this._onBrush);\n    zr.off('mouseup', this._onBrushEnd);\n  };\n\n  SliderZoomView.prototype._buildView = function () {\n    var thisGroup = this.group;\n    thisGroup.removeAll();\n    this._brushing = false;\n    this._displayables.brushRect = null;\n\n    this._resetLocation();\n\n    this._resetInterval();\n\n    var barGroup = this._displayables.sliderGroup = new graphic.Group();\n\n    this._renderBackground();\n\n    this._renderHandle();\n\n    this._renderDataShadow();\n\n    thisGroup.add(barGroup);\n\n    this._positionGroup();\n  };\n\n  SliderZoomView.prototype._resetLocation = function () {\n    var dataZoomModel = this.dataZoomModel;\n    var api = this.api;\n    var showMoveHandle = dataZoomModel.get('brushSelect');\n    var moveHandleSize = showMoveHandle ? DEFAULT_MOVE_HANDLE_SIZE : 0;\n\n    var coordRect = this._findCoordRect();\n\n    var ecSize = {\n      width: api.getWidth(),\n      height: api.getHeight()\n    };\n    var positionInfo = this._orient === HORIZONTAL ? {\n      right: ecSize.width - coordRect.x - coordRect.width,\n      top: ecSize.height - DEFAULT_FILLER_SIZE - DEFAULT_LOCATION_EDGE_GAP - moveHandleSize,\n      width: coordRect.width,\n      height: DEFAULT_FILLER_SIZE\n    } : {\n      right: DEFAULT_LOCATION_EDGE_GAP,\n      top: coordRect.y,\n      width: DEFAULT_FILLER_SIZE,\n      height: coordRect.height\n    };\n    var layoutParams = layout.getLayoutParams(dataZoomModel.option);\n    each(['right', 'top', 'width', 'height'], function (name) {\n      if (layoutParams[name] === 'ph') {\n        layoutParams[name] = positionInfo[name];\n      }\n    });\n    var layoutRect = layout.getLayoutRect(layoutParams, ecSize);\n    this._location = {\n      x: layoutRect.x,\n      y: layoutRect.y\n    };\n    this._size = [layoutRect.width, layoutRect.height];\n    this._orient === VERTICAL && this._size.reverse();\n  };\n\n  SliderZoomView.prototype._positionGroup = function () {\n    var thisGroup = this.group;\n    var location = this._location;\n    var orient = this._orient;\n    var targetAxisModel = this.dataZoomModel.getFirstTargetAxisModel();\n    var inverse = targetAxisModel && targetAxisModel.get('inverse');\n    var sliderGroup = this._displayables.sliderGroup;\n    var otherAxisInverse = (this._dataShadowInfo || {}).otherAxisInverse;\n    sliderGroup.attr(orient === HORIZONTAL && !inverse ? {\n      scaleY: otherAxisInverse ? 1 : -1,\n      scaleX: 1\n    } : orient === HORIZONTAL && inverse ? {\n      scaleY: otherAxisInverse ? 1 : -1,\n      scaleX: -1\n    } : orient === VERTICAL && !inverse ? {\n      scaleY: otherAxisInverse ? -1 : 1,\n      scaleX: 1,\n      rotation: Math.PI / 2\n    } : {\n      scaleY: otherAxisInverse ? -1 : 1,\n      scaleX: -1,\n      rotation: Math.PI / 2\n    });\n    var rect = thisGroup.getBoundingRect([sliderGroup]);\n    thisGroup.x = location.x - rect.x;\n    thisGroup.y = location.y - rect.y;\n    thisGroup.markRedraw();\n  };\n\n  SliderZoomView.prototype._getViewExtent = function () {\n    return [0, this._size[0]];\n  };\n\n  SliderZoomView.prototype._renderBackground = function () {\n    var dataZoomModel = this.dataZoomModel;\n    var size = this._size;\n    var barGroup = this._displayables.sliderGroup;\n    var brushSelect = dataZoomModel.get('brushSelect');\n    barGroup.add(new Rect({\n      silent: true,\n      shape: {\n        x: 0,\n        y: 0,\n        width: size[0],\n        height: size[1]\n      },\n      style: {\n        fill: dataZoomModel.get('backgroundColor')\n      },\n      z2: -40\n    }));\n    var clickPanel = new Rect({\n      shape: {\n        x: 0,\n        y: 0,\n        width: size[0],\n        height: size[1]\n      },\n      style: {\n        fill: 'transparent'\n      },\n      z2: 0,\n      onclick: bind(this._onClickPanel, this)\n    });\n    var zr = this.api.getZr();\n\n    if (brushSelect) {\n      clickPanel.on('mousedown', this._onBrushStart, this);\n      clickPanel.cursor = 'crosshair';\n      zr.on('mousemove', this._onBrush);\n      zr.on('mouseup', this._onBrushEnd);\n    } else {\n      zr.off('mousemove', this._onBrush);\n      zr.off('mouseup', this._onBrushEnd);\n    }\n\n    barGroup.add(clickPanel);\n  };\n\n  SliderZoomView.prototype._renderDataShadow = function () {\n    var info = this._dataShadowInfo = this._prepareDataShadowInfo();\n\n    this._displayables.dataShadowSegs = [];\n\n    if (!info) {\n      return;\n    }\n\n    var size = this._size;\n    var seriesModel = info.series;\n    var data = seriesModel.getRawData();\n    var otherDim = seriesModel.getShadowDim ? seriesModel.getShadowDim() : info.otherDim;\n\n    if (otherDim == null) {\n      return;\n    }\n\n    var otherDataExtent = data.getDataExtent(otherDim);\n    var otherOffset = (otherDataExtent[1] - otherDataExtent[0]) * 0.3;\n    otherDataExtent = [otherDataExtent[0] - otherOffset, otherDataExtent[1] + otherOffset];\n    var otherShadowExtent = [0, size[1]];\n    var thisShadowExtent = [0, size[0]];\n    var areaPoints = [[size[0], 0], [0, 0]];\n    var linePoints = [];\n    var step = thisShadowExtent[1] / (data.count() - 1);\n    var thisCoord = 0;\n    var stride = Math.round(data.count() / size[0]);\n    var lastIsEmpty;\n    data.each([otherDim], function (value, index) {\n      if (stride > 0 && index % stride) {\n        thisCoord += step;\n        return;\n      }\n\n      var isEmpty = value == null || isNaN(value) || value === '';\n      var otherCoord = isEmpty ? 0 : linearMap(value, otherDataExtent, otherShadowExtent, true);\n\n      if (isEmpty && !lastIsEmpty && index) {\n        areaPoints.push([areaPoints[areaPoints.length - 1][0], 0]);\n        linePoints.push([linePoints[linePoints.length - 1][0], 0]);\n      } else if (!isEmpty && lastIsEmpty) {\n        areaPoints.push([thisCoord, 0]);\n        linePoints.push([thisCoord, 0]);\n      }\n\n      areaPoints.push([thisCoord, otherCoord]);\n      linePoints.push([thisCoord, otherCoord]);\n      thisCoord += step;\n      lastIsEmpty = isEmpty;\n    });\n    var dataZoomModel = this.dataZoomModel;\n\n    function createDataShadowGroup(isSelectedArea) {\n      var model = dataZoomModel.getModel(isSelectedArea ? 'selectedDataBackground' : 'dataBackground');\n      var group = new graphic.Group();\n      var polygon = new graphic.Polygon({\n        shape: {\n          points: areaPoints\n        },\n        segmentIgnoreThreshold: 1,\n        style: model.getModel('areaStyle').getAreaStyle(),\n        silent: true,\n        z2: -20\n      });\n      var polyline = new graphic.Polyline({\n        shape: {\n          points: linePoints\n        },\n        segmentIgnoreThreshold: 1,\n        style: model.getModel('lineStyle').getLineStyle(),\n        silent: true,\n        z2: -19\n      });\n      group.add(polygon);\n      group.add(polyline);\n      return group;\n    }\n\n    for (var i = 0; i < 3; i++) {\n      var group = createDataShadowGroup(i === 1);\n\n      this._displayables.sliderGroup.add(group);\n\n      this._displayables.dataShadowSegs.push(group);\n    }\n  };\n\n  SliderZoomView.prototype._prepareDataShadowInfo = function () {\n    var dataZoomModel = this.dataZoomModel;\n    var showDataShadow = dataZoomModel.get('showDataShadow');\n\n    if (showDataShadow === false) {\n      return;\n    }\n\n    var result;\n    var ecModel = this.ecModel;\n    dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n      var seriesModels = dataZoomModel.getAxisProxy(axisDim, axisIndex).getTargetSeriesModels();\n      each(seriesModels, function (seriesModel) {\n        if (result) {\n          return;\n        }\n\n        if (showDataShadow !== true && indexOf(SHOW_DATA_SHADOW_SERIES_TYPE, seriesModel.get('type')) < 0) {\n          return;\n        }\n\n        var thisAxis = ecModel.getComponent(getAxisMainType(axisDim), axisIndex).axis;\n        var otherDim = getOtherDim(axisDim);\n        var otherAxisInverse;\n        var coordSys = seriesModel.coordinateSystem;\n\n        if (otherDim != null && coordSys.getOtherAxis) {\n          otherAxisInverse = coordSys.getOtherAxis(thisAxis).inverse;\n        }\n\n        otherDim = seriesModel.getData().mapDimension(otherDim);\n        result = {\n          thisAxis: thisAxis,\n          series: seriesModel,\n          thisDim: axisDim,\n          otherDim: otherDim,\n          otherAxisInverse: otherAxisInverse\n        };\n      }, this);\n    }, this);\n    return result;\n  };\n\n  SliderZoomView.prototype._renderHandle = function () {\n    var thisGroup = this.group;\n    var displayables = this._displayables;\n    var handles = displayables.handles = [null, null];\n    var handleLabels = displayables.handleLabels = [null, null];\n    var sliderGroup = this._displayables.sliderGroup;\n    var size = this._size;\n    var dataZoomModel = this.dataZoomModel;\n    var api = this.api;\n    var borderRadius = dataZoomModel.get('borderRadius') || 0;\n    var brushSelect = dataZoomModel.get('brushSelect');\n    var filler = displayables.filler = new Rect({\n      silent: brushSelect,\n      style: {\n        fill: dataZoomModel.get('fillerColor')\n      },\n      textConfig: {\n        position: 'inside'\n      }\n    });\n    sliderGroup.add(filler);\n    sliderGroup.add(new Rect({\n      silent: true,\n      subPixelOptimize: true,\n      shape: {\n        x: 0,\n        y: 0,\n        width: size[0],\n        height: size[1],\n        r: borderRadius\n      },\n      style: {\n        stroke: dataZoomModel.get('dataBackgroundColor') || dataZoomModel.get('borderColor'),\n        lineWidth: DEFAULT_FRAME_BORDER_WIDTH,\n        fill: 'rgba(0,0,0,0)'\n      }\n    }));\n    each([0, 1], function (handleIndex) {\n      var iconStr = dataZoomModel.get('handleIcon');\n\n      if (!symbolBuildProxies[iconStr] && iconStr.indexOf('path://') < 0) {\n        iconStr = 'path://' + iconStr;\n\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateLog('handleIcon now needs \\'path://\\' prefix when using a path string');\n        }\n      }\n\n      var path = createSymbol(iconStr, -1, 0, 2, 2, null, true);\n      path.attr({\n        cursor: getCursor(this._orient),\n        draggable: true,\n        drift: bind(this._onDragMove, this, handleIndex),\n        ondragend: bind(this._onDragEnd, this),\n        onmouseover: bind(this._showDataInfo, this, true),\n        onmouseout: bind(this._showDataInfo, this, false),\n        z2: 5\n      });\n      var bRect = path.getBoundingRect();\n      var handleSize = dataZoomModel.get('handleSize');\n      this._handleHeight = parsePercent(handleSize, this._size[1]);\n      this._handleWidth = bRect.width / bRect.height * this._handleHeight;\n      path.setStyle(dataZoomModel.getModel('handleStyle').getItemStyle());\n      path.style.strokeNoScale = true;\n      path.rectHover = true;\n      path.ensureState('emphasis').style = dataZoomModel.getModel(['emphasis', 'handleStyle']).getItemStyle();\n      enableHoverEmphasis(path);\n      var handleColor = dataZoomModel.get('handleColor');\n\n      if (handleColor != null) {\n        path.style.fill = handleColor;\n      }\n\n      sliderGroup.add(handles[handleIndex] = path);\n      var textStyleModel = dataZoomModel.getModel('textStyle');\n      thisGroup.add(handleLabels[handleIndex] = new graphic.Text({\n        silent: true,\n        invisible: true,\n        style: {\n          x: 0,\n          y: 0,\n          text: '',\n          verticalAlign: 'middle',\n          align: 'center',\n          fill: textStyleModel.getTextColor(),\n          font: textStyleModel.getFont()\n        },\n        z2: 10\n      }));\n    }, this);\n    var actualMoveZone = filler;\n\n    if (brushSelect) {\n      var moveHandleHeight = parsePercent(dataZoomModel.get('moveHandleSize'), size[1]);\n      var moveHandle_1 = displayables.moveHandle = new graphic.Rect({\n        style: dataZoomModel.getModel('moveHandleStyle').getItemStyle(),\n        silent: true,\n        shape: {\n          r: [0, 0, 2, 2],\n          y: size[1] - 0.5,\n          height: moveHandleHeight\n        }\n      });\n      var iconSize = moveHandleHeight * 0.8;\n      var moveHandleIcon = displayables.moveHandleIcon = createSymbol(dataZoomModel.get('moveHandleIcon'), -iconSize / 2, -iconSize / 2, iconSize, iconSize, '#fff', true);\n      moveHandleIcon.silent = true;\n      moveHandleIcon.y = size[1] + moveHandleHeight / 2 - 0.5;\n      moveHandle_1.ensureState('emphasis').style = dataZoomModel.getModel(['emphasis', 'moveHandleStyle']).getItemStyle();\n      var moveZoneExpandSize = Math.min(size[1] / 2, Math.max(moveHandleHeight, 10));\n      actualMoveZone = displayables.moveZone = new graphic.Rect({\n        invisible: true,\n        shape: {\n          y: size[1] - moveZoneExpandSize,\n          height: moveHandleHeight + moveZoneExpandSize\n        }\n      });\n      actualMoveZone.on('mouseover', function () {\n        api.enterEmphasis(moveHandle_1);\n      }).on('mouseout', function () {\n        api.leaveEmphasis(moveHandle_1);\n      });\n      sliderGroup.add(moveHandle_1);\n      sliderGroup.add(moveHandleIcon);\n      sliderGroup.add(actualMoveZone);\n    }\n\n    actualMoveZone.attr({\n      draggable: true,\n      cursor: getCursor(this._orient),\n      drift: bind(this._onDragMove, this, 'all'),\n      ondragstart: bind(this._showDataInfo, this, true),\n      ondragend: bind(this._onDragEnd, this),\n      onmouseover: bind(this._showDataInfo, this, true),\n      onmouseout: bind(this._showDataInfo, this, false)\n    });\n  };\n\n  SliderZoomView.prototype._resetInterval = function () {\n    var range = this._range = this.dataZoomModel.getPercentRange();\n\n    var viewExtent = this._getViewExtent();\n\n    this._handleEnds = [linearMap(range[0], [0, 100], viewExtent, true), linearMap(range[1], [0, 100], viewExtent, true)];\n  };\n\n  SliderZoomView.prototype._updateInterval = function (handleIndex, delta) {\n    var dataZoomModel = this.dataZoomModel;\n    var handleEnds = this._handleEnds;\n\n    var viewExtend = this._getViewExtent();\n\n    var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\n    var percentExtent = [0, 100];\n    sliderMove(delta, handleEnds, viewExtend, dataZoomModel.get('zoomLock') ? 'all' : handleIndex, minMaxSpan.minSpan != null ? linearMap(minMaxSpan.minSpan, percentExtent, viewExtend, true) : null, minMaxSpan.maxSpan != null ? linearMap(minMaxSpan.maxSpan, percentExtent, viewExtend, true) : null);\n    var lastRange = this._range;\n    var range = this._range = asc([linearMap(handleEnds[0], viewExtend, percentExtent, true), linearMap(handleEnds[1], viewExtend, percentExtent, true)]);\n    return !lastRange || lastRange[0] !== range[0] || lastRange[1] !== range[1];\n  };\n\n  SliderZoomView.prototype._updateView = function (nonRealtime) {\n    var displaybles = this._displayables;\n    var handleEnds = this._handleEnds;\n    var handleInterval = asc(handleEnds.slice());\n    var size = this._size;\n    each([0, 1], function (handleIndex) {\n      var handle = displaybles.handles[handleIndex];\n      var handleHeight = this._handleHeight;\n      handle.attr({\n        scaleX: handleHeight / 2,\n        scaleY: handleHeight / 2,\n        x: handleEnds[handleIndex] + (handleIndex ? -1 : 1),\n        y: size[1] / 2 - handleHeight / 2\n      });\n    }, this);\n    displaybles.filler.setShape({\n      x: handleInterval[0],\n      y: 0,\n      width: handleInterval[1] - handleInterval[0],\n      height: size[1]\n    });\n    var viewExtent = {\n      x: handleInterval[0],\n      width: handleInterval[1] - handleInterval[0]\n    };\n\n    if (displaybles.moveHandle) {\n      displaybles.moveHandle.setShape(viewExtent);\n      displaybles.moveZone.setShape(viewExtent);\n      displaybles.moveZone.getBoundingRect();\n      displaybles.moveHandleIcon && displaybles.moveHandleIcon.attr('x', viewExtent.x + viewExtent.width / 2);\n    }\n\n    var dataShadowSegs = displaybles.dataShadowSegs;\n    var segIntervals = [0, handleInterval[0], handleInterval[1], size[0]];\n\n    for (var i = 0; i < dataShadowSegs.length; i++) {\n      var segGroup = dataShadowSegs[i];\n      var clipPath = segGroup.getClipPath();\n\n      if (!clipPath) {\n        clipPath = new graphic.Rect();\n        segGroup.setClipPath(clipPath);\n      }\n\n      clipPath.setShape({\n        x: segIntervals[i],\n        y: 0,\n        width: segIntervals[i + 1] - segIntervals[i],\n        height: size[1]\n      });\n    }\n\n    this._updateDataInfo(nonRealtime);\n  };\n\n  SliderZoomView.prototype._updateDataInfo = function (nonRealtime) {\n    var dataZoomModel = this.dataZoomModel;\n    var displaybles = this._displayables;\n    var handleLabels = displaybles.handleLabels;\n    var orient = this._orient;\n    var labelTexts = ['', ''];\n\n    if (dataZoomModel.get('showDetail')) {\n      var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\n\n      if (axisProxy) {\n        var axis = axisProxy.getAxisModel().axis;\n        var range = this._range;\n        var dataInterval = nonRealtime ? axisProxy.calculateDataWindow({\n          start: range[0],\n          end: range[1]\n        }).valueWindow : axisProxy.getDataValueWindow();\n        labelTexts = [this._formatLabel(dataInterval[0], axis), this._formatLabel(dataInterval[1], axis)];\n      }\n    }\n\n    var orderedHandleEnds = asc(this._handleEnds.slice());\n    setLabel.call(this, 0);\n    setLabel.call(this, 1);\n\n    function setLabel(handleIndex) {\n      var barTransform = graphic.getTransform(displaybles.handles[handleIndex].parent, this.group);\n      var direction = graphic.transformDirection(handleIndex === 0 ? 'right' : 'left', barTransform);\n      var offset = this._handleWidth / 2 + LABEL_GAP;\n      var textPoint = graphic.applyTransform([orderedHandleEnds[handleIndex] + (handleIndex === 0 ? -offset : offset), this._size[1] / 2], barTransform);\n      handleLabels[handleIndex].setStyle({\n        x: textPoint[0],\n        y: textPoint[1],\n        verticalAlign: orient === HORIZONTAL ? 'middle' : direction,\n        align: orient === HORIZONTAL ? direction : 'center',\n        text: labelTexts[handleIndex]\n      });\n    }\n  };\n\n  SliderZoomView.prototype._formatLabel = function (value, axis) {\n    var dataZoomModel = this.dataZoomModel;\n    var labelFormatter = dataZoomModel.get('labelFormatter');\n    var labelPrecision = dataZoomModel.get('labelPrecision');\n\n    if (labelPrecision == null || labelPrecision === 'auto') {\n      labelPrecision = axis.getPixelPrecision();\n    }\n\n    var valueStr = value == null || isNaN(value) ? '' : axis.type === 'category' || axis.type === 'time' ? axis.scale.getLabel({\n      value: Math.round(value)\n    }) : value.toFixed(Math.min(labelPrecision, 20));\n    return isFunction(labelFormatter) ? labelFormatter(value, valueStr) : isString(labelFormatter) ? labelFormatter.replace('{value}', valueStr) : valueStr;\n  };\n\n  SliderZoomView.prototype._showDataInfo = function (showOrHide) {\n    showOrHide = this._dragging || showOrHide;\n    var displayables = this._displayables;\n    var handleLabels = displayables.handleLabels;\n    handleLabels[0].attr('invisible', !showOrHide);\n    handleLabels[1].attr('invisible', !showOrHide);\n    displayables.moveHandle && this.api[showOrHide ? 'enterEmphasis' : 'leaveEmphasis'](displayables.moveHandle, 1);\n  };\n\n  SliderZoomView.prototype._onDragMove = function (handleIndex, dx, dy, event) {\n    this._dragging = true;\n    eventTool.stop(event.event);\n\n    var barTransform = this._displayables.sliderGroup.getLocalTransform();\n\n    var vertex = graphic.applyTransform([dx, dy], barTransform, true);\n\n    var changed = this._updateInterval(handleIndex, vertex[0]);\n\n    var realtime = this.dataZoomModel.get('realtime');\n\n    this._updateView(!realtime);\n\n    changed && realtime && this._dispatchZoomAction(true);\n  };\n\n  SliderZoomView.prototype._onDragEnd = function () {\n    this._dragging = false;\n\n    this._showDataInfo(false);\n\n    var realtime = this.dataZoomModel.get('realtime');\n    !realtime && this._dispatchZoomAction(false);\n  };\n\n  SliderZoomView.prototype._onClickPanel = function (e) {\n    var size = this._size;\n\n    var localPoint = this._displayables.sliderGroup.transformCoordToLocal(e.offsetX, e.offsetY);\n\n    if (localPoint[0] < 0 || localPoint[0] > size[0] || localPoint[1] < 0 || localPoint[1] > size[1]) {\n      return;\n    }\n\n    var handleEnds = this._handleEnds;\n    var center = (handleEnds[0] + handleEnds[1]) / 2;\n\n    var changed = this._updateInterval('all', localPoint[0] - center);\n\n    this._updateView();\n\n    changed && this._dispatchZoomAction(false);\n  };\n\n  SliderZoomView.prototype._onBrushStart = function (e) {\n    var x = e.offsetX;\n    var y = e.offsetY;\n    this._brushStart = new graphic.Point(x, y);\n    this._brushing = true;\n    this._brushStartTime = +new Date();\n  };\n\n  SliderZoomView.prototype._onBrushEnd = function (e) {\n    if (!this._brushing) {\n      return;\n    }\n\n    var brushRect = this._displayables.brushRect;\n    this._brushing = false;\n\n    if (!brushRect) {\n      return;\n    }\n\n    brushRect.attr('ignore', true);\n    var brushShape = brushRect.shape;\n    var brushEndTime = +new Date();\n\n    if (brushEndTime - this._brushStartTime < 200 && Math.abs(brushShape.width) < 5) {\n      return;\n    }\n\n    var viewExtend = this._getViewExtent();\n\n    var percentExtent = [0, 100];\n    this._range = asc([linearMap(brushShape.x, viewExtend, percentExtent, true), linearMap(brushShape.x + brushShape.width, viewExtend, percentExtent, true)]);\n    this._handleEnds = [brushShape.x, brushShape.x + brushShape.width];\n\n    this._updateView();\n\n    this._dispatchZoomAction(false);\n  };\n\n  SliderZoomView.prototype._onBrush = function (e) {\n    if (this._brushing) {\n      eventTool.stop(e.event);\n\n      this._updateBrushRect(e.offsetX, e.offsetY);\n    }\n  };\n\n  SliderZoomView.prototype._updateBrushRect = function (mouseX, mouseY) {\n    var displayables = this._displayables;\n    var dataZoomModel = this.dataZoomModel;\n    var brushRect = displayables.brushRect;\n\n    if (!brushRect) {\n      brushRect = displayables.brushRect = new Rect({\n        silent: true,\n        style: dataZoomModel.getModel('brushStyle').getItemStyle()\n      });\n      displayables.sliderGroup.add(brushRect);\n    }\n\n    brushRect.attr('ignore', false);\n    var brushStart = this._brushStart;\n    var sliderGroup = this._displayables.sliderGroup;\n    var endPoint = sliderGroup.transformCoordToLocal(mouseX, mouseY);\n    var startPoint = sliderGroup.transformCoordToLocal(brushStart.x, brushStart.y);\n    var size = this._size;\n    endPoint[0] = Math.max(Math.min(size[0], endPoint[0]), 0);\n    brushRect.setShape({\n      x: startPoint[0],\n      y: 0,\n      width: endPoint[0] - startPoint[0],\n      height: size[1]\n    });\n  };\n\n  SliderZoomView.prototype._dispatchZoomAction = function (realtime) {\n    var range = this._range;\n    this.api.dispatchAction({\n      type: 'dataZoom',\n      from: this.uid,\n      dataZoomId: this.dataZoomModel.id,\n      animation: realtime ? REALTIME_ANIMATION_CONFIG : null,\n      start: range[0],\n      end: range[1]\n    });\n  };\n\n  SliderZoomView.prototype._findCoordRect = function () {\n    var rect;\n    var coordSysInfoList = collectReferCoordSysModelInfo(this.dataZoomModel).infoList;\n\n    if (!rect && coordSysInfoList.length) {\n      var coordSys = coordSysInfoList[0].model.coordinateSystem;\n      rect = coordSys.getRect && coordSys.getRect();\n    }\n\n    if (!rect) {\n      var width = this.api.getWidth();\n      var height = this.api.getHeight();\n      rect = {\n        x: width * 0.2,\n        y: height * 0.2,\n        width: width * 0.6,\n        height: height * 0.6\n      };\n    }\n\n    return rect;\n  };\n\n  SliderZoomView.type = 'dataZoom.slider';\n  return SliderZoomView;\n}(DataZoomView);\n\nfunction getOtherDim(thisDim) {\n  var map = {\n    x: 'y',\n    y: 'x',\n    radius: 'angle',\n    angle: 'radius'\n  };\n  return map[thisDim];\n}\n\nfunction getCursor(orient) {\n  return orient === 'vertical' ? 'ns-resize' : 'ew-resize';\n}\n\nexport default SliderZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SliderZoomModel from './SliderZoomModel';\nimport SliderZoomView from './SliderZoomView';\nimport installCommon from './installCommon';\nexport function install(registers) {\n  registers.registerComponentModel(SliderZoomModel);\n  registers.registerComponentView(SliderZoomView);\n  installCommon(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport { install as installDataZoomInside } from './installDataZoomInside';\nimport { install as installDataZoomSlider } from './installDataZoomSlider';\nexport function install(registers) {\n  use(installDataZoomInside);\n  use(installDataZoomSlider);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { retrieveRawValue } from '../data/helper/dataProvider';\nimport { makeInner } from '../util/model';\nimport { getDecalFromPalette } from '../model/mixin/palette';\nvar DEFAULT_OPTION = {\n  label: {\n    enabled: true\n  },\n  decal: {\n    show: false\n  }\n};\nvar inner = makeInner();\nvar decalPaletteScope = {};\nexport default function ariaVisual(ecModel, api) {\n  var ariaModel = ecModel.getModel('aria');\n\n  if (!ariaModel.get('enabled')) {\n    return;\n  }\n\n  var defaultOption = zrUtil.clone(DEFAULT_OPTION);\n  zrUtil.merge(defaultOption.label, ecModel.getLocaleModel().get('aria'), false);\n  zrUtil.merge(ariaModel.option, defaultOption, false);\n  setDecal();\n  setLabel();\n\n  function setDecal() {\n    var decalModel = ariaModel.getModel('decal');\n    var useDecal = decalModel.get('show');\n\n    if (useDecal) {\n      var paletteScopeGroupByType_1 = zrUtil.createHashMap();\n      ecModel.eachSeries(function (seriesModel) {\n        if (!seriesModel.useColorPaletteOnData) {\n          return;\n        }\n\n        var decalScope = paletteScopeGroupByType_1.get(seriesModel.type);\n\n        if (!decalScope) {\n          decalScope = {};\n          paletteScopeGroupByType_1.set(seriesModel.type, decalScope);\n        }\n\n        inner(seriesModel).scope = decalScope;\n      });\n      ecModel.eachRawSeries(function (seriesModel) {\n        if (ecModel.isSeriesFiltered(seriesModel)) {\n          return;\n        }\n\n        if (typeof seriesModel.enableAriaDecal === 'function') {\n          seriesModel.enableAriaDecal();\n          return;\n        }\n\n        var data = seriesModel.getData();\n\n        if (seriesModel.useColorPaletteOnData) {\n          var dataAll_1 = seriesModel.getRawData();\n          var idxMap_1 = {};\n          var decalScope_1 = inner(seriesModel).scope;\n          data.each(function (idx) {\n            var rawIdx = data.getRawIndex(idx);\n            idxMap_1[rawIdx] = idx;\n          });\n          var dataCount_1 = dataAll_1.count();\n          dataAll_1.each(function (rawIdx) {\n            var idx = idxMap_1[rawIdx];\n            var name = dataAll_1.getName(rawIdx) || rawIdx + '';\n            var paletteDecal = getDecalFromPalette(seriesModel.ecModel, name, decalScope_1, dataCount_1);\n            var specifiedDecal = data.getItemVisual(idx, 'decal');\n            data.setItemVisual(idx, 'decal', mergeDecal(specifiedDecal, paletteDecal));\n          });\n        } else {\n          var paletteDecal = getDecalFromPalette(seriesModel.ecModel, seriesModel.name, decalPaletteScope, ecModel.getSeriesCount());\n          var specifiedDecal = data.getVisual('decal');\n          data.setVisual('decal', mergeDecal(specifiedDecal, paletteDecal));\n        }\n\n        function mergeDecal(specifiedDecal, paletteDecal) {\n          var resultDecal = specifiedDecal ? zrUtil.extend(zrUtil.extend({}, paletteDecal), specifiedDecal) : paletteDecal;\n          resultDecal.dirty = true;\n          return resultDecal;\n        }\n      });\n    }\n  }\n\n  function setLabel() {\n    var labelLocale = ecModel.getLocaleModel().get('aria');\n    var labelModel = ariaModel.getModel('label');\n    labelModel.option = zrUtil.defaults(labelModel.option, labelLocale);\n\n    if (!labelModel.get('enabled')) {\n      return;\n    }\n\n    var dom = api.getZr().dom;\n\n    if (labelModel.get('description')) {\n      dom.setAttribute('aria-label', labelModel.get('description'));\n      return;\n    }\n\n    var seriesCnt = ecModel.getSeriesCount();\n    var maxDataCnt = labelModel.get(['data', 'maxCount']) || 10;\n    var maxSeriesCnt = labelModel.get(['series', 'maxCount']) || 10;\n    var displaySeriesCnt = Math.min(seriesCnt, maxSeriesCnt);\n    var ariaLabel;\n\n    if (seriesCnt < 1) {\n      return;\n    } else {\n      var title = getTitle();\n\n      if (title) {\n        var withTitle = labelModel.get(['general', 'withTitle']);\n        ariaLabel = replace(withTitle, {\n          title: title\n        });\n      } else {\n        ariaLabel = labelModel.get(['general', 'withoutTitle']);\n      }\n\n      var seriesLabels_1 = [];\n      var prefix = seriesCnt > 1 ? labelModel.get(['series', 'multiple', 'prefix']) : labelModel.get(['series', 'single', 'prefix']);\n      ariaLabel += replace(prefix, {\n        seriesCount: seriesCnt\n      });\n      ecModel.eachSeries(function (seriesModel, idx) {\n        if (idx < displaySeriesCnt) {\n          var seriesLabel = void 0;\n          var seriesName = seriesModel.get('name');\n          var withName = seriesName ? 'withName' : 'withoutName';\n          seriesLabel = seriesCnt > 1 ? labelModel.get(['series', 'multiple', withName]) : labelModel.get(['series', 'single', withName]);\n          seriesLabel = replace(seriesLabel, {\n            seriesId: seriesModel.seriesIndex,\n            seriesName: seriesModel.get('name'),\n            seriesType: getSeriesTypeName(seriesModel.subType)\n          });\n          var data = seriesModel.getData();\n\n          if (data.count() > maxDataCnt) {\n            var partialLabel = labelModel.get(['data', 'partialData']);\n            seriesLabel += replace(partialLabel, {\n              displayCnt: maxDataCnt\n            });\n          } else {\n            seriesLabel += labelModel.get(['data', 'allData']);\n          }\n\n          var dataLabels = [];\n\n          for (var i = 0; i < data.count(); i++) {\n            if (i < maxDataCnt) {\n              var name_1 = data.getName(i);\n              var value = retrieveRawValue(data, i);\n              var dataLabel = labelModel.get(['data', name_1 ? 'withName' : 'withoutName']);\n              dataLabels.push(replace(dataLabel, {\n                name: name_1,\n                value: value\n              }));\n            }\n          }\n\n          var middleSeparator_1 = labelModel.get(['data', 'separator', 'middle']);\n          var endSeparator_1 = labelModel.get(['data', 'separator', 'end']);\n          seriesLabel += dataLabels.join(middleSeparator_1) + endSeparator_1;\n          seriesLabels_1.push(seriesLabel);\n        }\n      });\n      var separatorModel = labelModel.getModel(['series', 'multiple', 'separator']);\n      var middleSeparator = separatorModel.get('middle');\n      var endSeparator = separatorModel.get('end');\n      ariaLabel += seriesLabels_1.join(middleSeparator) + endSeparator;\n      dom.setAttribute('aria-label', ariaLabel);\n    }\n  }\n\n  function replace(str, keyValues) {\n    if (typeof str !== 'string') {\n      return str;\n    }\n\n    var result = str;\n    zrUtil.each(keyValues, function (value, key) {\n      result = result.replace(new RegExp('\\\\{\\\\s*' + key + '\\\\s*\\\\}', 'g'), value);\n    });\n    return result;\n  }\n\n  function getTitle() {\n    var title = ecModel.get('title');\n\n    if (title && title.length) {\n      title = title[0];\n    }\n\n    return title && title.text;\n  }\n\n  function getSeriesTypeName(type) {\n    return ecModel.getLocaleModel().get(['series', 'typeNames'])[type] || '自定义图';\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function ariaPreprocessor(option) {\n  if (!option || !option.aria) {\n    return;\n  }\n\n  var aria = option.aria;\n\n  if (aria.show != null) {\n    aria.enabled = aria.show;\n  }\n\n  aria.label = aria.label || {};\n  zrUtil.each(['description', 'general', 'series', 'data'], function (name) {\n    if (aria[name] != null) {\n      aria.label[name] = aria[name];\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ariaVisual from '../../visual/aria';\nimport ariaPreprocessor from './preprocessor';\nexport function install(registers) {\n  registers.registerPreprocessor(ariaPreprocessor);\n  registers.registerVisual(registers.PRIORITY.VISUAL.ARIA, ariaVisual);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\nimport ComponentView from '../../view/Component';\nimport { SERIES_LAYOUT_BY_COLUMN } from '../../util/types';\nimport { disableTransformOptionMerge, SourceManager } from '../../data/helper/sourceManager';\n\nvar DatasetModel = function (_super) {\n  __extends(DatasetModel, _super);\n\n  function DatasetModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'dataset';\n    return _this;\n  }\n\n  DatasetModel.prototype.init = function (option, parentModel, ecModel) {\n    _super.prototype.init.call(this, option, parentModel, ecModel);\n\n    this._sourceManager = new SourceManager(this);\n    disableTransformOptionMerge(this);\n  };\n\n  DatasetModel.prototype.mergeOption = function (newOption, ecModel) {\n    _super.prototype.mergeOption.call(this, newOption, ecModel);\n\n    disableTransformOptionMerge(this);\n  };\n\n  DatasetModel.prototype.optionUpdated = function () {\n    this._sourceManager.dirty();\n  };\n\n  DatasetModel.prototype.getSourceManager = function () {\n    return this._sourceManager;\n  };\n\n  DatasetModel.type = 'dataset';\n  DatasetModel.defaultOption = {\n    seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN\n  };\n  return DatasetModel;\n}(ComponentModel);\n\nexport { DatasetModel };\n\nvar DatasetView = function (_super) {\n  __extends(DatasetView, _super);\n\n  function DatasetView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'dataset';\n    return _this;\n  }\n\n  DatasetView.type = 'dataset';\n  return DatasetView;\n}(ComponentView);\n\nexport function install(registers) {\n  registers.registerComponentModel(DatasetModel);\n  registers.registerComponentView(DatasetView);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from './lib/extension';\nexport * from './lib/export/core';\nimport { install as SVGRenderer } from './lib/renderer/installSVGRenderer';\nimport { install as CanvasRenderer } from './lib/renderer/installCanvasRenderer';\nimport { install as LineChart } from './lib/chart/line/install';\nimport { install as BarChart } from './lib/chart/bar/install';\nimport { install as PieChart } from './lib/chart/pie/install';\nimport { install as ScatterChart } from './lib/chart/scatter/install';\nimport { install as GridComponent } from './lib/component/grid/install';\nimport { install as GraphicComponent } from './lib/component/graphic/install';\nimport { install as ToolboxComponent } from './lib/component/toolbox/install';\nimport { install as TooltipComponent } from './lib/component/tooltip/install';\nimport { install as AxisPointerComponent } from './lib/component/axisPointer/install';\nimport { install as TitleComponent } from './lib/component/title/install';\nimport { install as MarkPointComponent } from './lib/component/marker/installMarkPoint';\nimport { install as MarkLineComponent } from './lib/component/marker/installMarkLine';\nimport { install as MarkAreaComponent } from './lib/component/marker/installMarkArea';\nimport { install as LegendComponent } from './lib/component/legend/install';\nimport { install as DataZoomComponent } from './lib/component/dataZoom/install';\nimport { install as AriaComponent } from './lib/component/aria/install';\nimport { install as DatasetComponent } from './lib/component/dataset/install';\nuse([CanvasRenderer]);\nuse([SVGRenderer]);\nuse([LineChart, BarChart, PieChart, ScatterChart]);\nuse([GraphicComponent, TooltipComponent, AxisPointerComponent, LegendComponent, GridComponent, TitleComponent, MarkPointComponent, MarkLineComponent, MarkAreaComponent, DataZoomComponent, ToolboxComponent, AriaComponent, DatasetComponent]);"],"names":["extendStatics","__extends","clone","_calcOut","eventUtil.clientToLocal","dist","eventTool.stop","util.each","vec2.dist","create","copy","mul","scale","matrix.identity","matrix.create","matrix.mul","matrix.copy","matrix.invert","vector.applyTransform","matrix.rotate","easing","easingFuncs","lerp","color.parse","matrix.translate","matrix.scale","methods","timsort","util.indexOf","requestAnimationFrame","zrUtil.map","zrUtil.noop","zrUtil.each","zrUtil.indexOf","zrUtil.keys","HandlerProxy","zrUtil.guid","parsePercent","zrUtil.reduce","zrUtil.assert","zrUtil.createObject","zrUtil.extend","zrUtil.inherits","imageHelper.findExistImage","imageHelper.isImageReady","PRIMARY_STATES_KEYS","EPSILON","v2Create","isNotAroundZero","v2DistSquare","mathMin","mathMax","vec2.create","cubicExtrema","curve.cubicExtrema","cubicAt","curve.cubicAt","quadraticExtremum","curve.quadraticExtremum","quadraticAt","curve.quadraticAt","min","max","vec2.min","vec2.max","mathCos","mathSin","mathSqrt","PI2","dpr","containStroke","curve.cubicProjectPoint","CMD","curve.cubicRootAt","curve.quadraticRootAt","line.containStroke","cubic.containStroke","quadratic.containStroke","arc.containStroke","pathContain.containStroke","pathContain.contain","round","roundRectHelper.buildPath","color","colorTool.lift","v2ApplyTransform","PI","mathAbs","buildPath","roundSectorHelper.buildPath","distance","v2Distance","v2Min","v2Max","v2Clone","v2Sub","v2Scale","v2Add","polyHelper.buildPath","subPixelOptimizeOutputShape","vec2.normalize","minTv","maxTv","Displayble","pathTool.extendFromString","pathTool.createFromString","mergePath","pathTool.mergePath","subPixelOptimizeLine","subPixelOptimizeUtil.subPixelOptimizeLine","subPixelOptimizeRect","subPixelOptimizeUtil.subPixelOptimizeRect","subPixelOptimize","subPixelOptimizeUtil.subPixelOptimize","applyTransform","invert","zrUtil.merge","numberUtil.parseDate","defaults","zrUtil.defaults","zrUtil.isArray","Text","zrUtil.isString","normalizeCssArray","zrUtil.normalizeCssArray","zrUtil.trim","timeFormat","zrUtil.isStringSafe","zrUtil.isNumber","zrUtil.isObject","each","zrUtil.curry","formatUtil.normalizeCssArray","componentUtil.getUID","layout.fetchLayoutMode","layout.getLayoutParams","layout.mergeLayoutParam","componentUtil.enableSubTypeDefaulter","componentUtil.enableTopologicalTravel","modelUtil.normalizeToArray","modelUtil.mappingToExists","modelUtil.setComponentTypeToKeyInfo","modelUtil.isComponentIdInternal","modelUtil.convertOptionIdName","zrUtil.bind","isObject","modelUtil.TEXT_STYLE_OPTIONS","zrUtil.isTypedArray","set","compatStyle","inner","modelUtil.makeInner","modelUtil.defaultEmphasis","zrUtil.mixin","modelUtil.isNameSpecified","clazzUtil.enableClassExtend","clazzUtil.enableClassManagement","modelUtil.queryDataIndex","graphic.Group","graphic.Rect","graphic.Text","graphic.Arc","vector.dist","vector.lerp","graphic.Path","graphic.Circle","graphic.makeImage","graphic.makePath","assert","isFunction","zrUtil.isFunction","indexOf","version","zrender.init","zrUtil.clone","backwardCompat","zrUtil.setAsPrimitive","instances","zrUtil.createCanvas","graphic.Image","modelUtil.parseFinder","modelUtil.setAttribute","zrUtil.createHashMap","colorTool.parse","colorTool.stringify","graphic.isElementRemoved","init","zrUtil.isDom","dispose","modelUtil.getAttribute","zrUtil.$override","decal","loadingDefault","darkTheme","map","zrUtil.isArrayLike","zrUtil.slice","CoordinateSystem","numberUtil.round","numberUtil.nice","numberUtil.getPrecisionSafe","contain","normalize","scaleHelper.contain","scaleHelper.normalize","scaleHelper.scale","roundNumber","helper.contain","helper.normalize","helper.scale","helper.getIntervalPrecision","formatUtil.addCommas","helper.intervalScaleNiceTicks","getPrecisionSafe","mathFloor","mathPow","numberUtil.quantity","dataStack","axisHelper.createScaleByModel","axisHelper.niceScaleExtent","createTextStyle","innerCreateTextStyle","isAroundEqual","bbox.fromPoints","polygonContain.contain","vec2.applyTransform","zrUtil.filter","textContain.getBoundingRect","isAroundZero","adjustTextY","zrUtil.logError","colorTool.toHex","util.extend","util.logError","util.createCanvas","util.isObject","util.isGradientObject","util.isPatternObject","parseInt10","util.merge","install","graphic.updateProps","graphic.initProps","graphic.removeElement","SymbolClz","graphic.Sector","graphic.LinearGradient","isPointNull","modelUtil.interpolateRawValues","LineSeries","layoutPoints","Sausage","BarSeries","layout.getLayoutRect","RADIAN","graphic.Polyline","graphic.removeElementWithFadeOut","labelLayout","layout","zrUtil.retrieve","zrUtil.retrieve3","graphic.Line","matrixUtil.identity","matrixUtil.rotate","matrixUtil.mul","axisPointerModelHelper.fixValue","axisPointerModelHelper.getAxisPointerModel","cartesianAxisHelper.layout","graphic.groupTransition","installGridSimple","bind","updateProps","axisPointerModelHelper.getAxisInfo","graphic.createIcon","throttleUtil.createOrUpdate","axisHelper.getAxisRawValue","graphic.applyTransform","viewHelper.buildElStyle","viewHelper.buildCartesianSingleLabelElOption","viewHelper.getTransformedPosition","viewHelper.makeLineShape","viewHelper.makeRectShape","globalListener.register","globalListener.unregister","modelHelper.makeKey","installSimple","installAxisPointer","graphicUtil.Group","graphicUtil.Image","graphicUtil.Text","layoutUtil.positionElement","zrUtil.hasOwn","graphicUtil.getShapeClass","layoutUtil.LOCATION_PARAMS","layoutUtil.mergeLayoutParam","layoutUtil.copyLayoutParams","asc","numberUtil.asc","numberUtil.linearMap","numberUtil.getPixelPrecision","SelectZoomModel","SelectZoomView","featureManager.getFeature","layoutBox","listComponentHelper.layout","listComponentHelper.makeBackground","echarts.registerAction","trim","clear","history.clear","interactionMutex.take","interactionMutex.release","getTransform","graphic.getTransform","graphic.transformDirection","graphic.Polygon","graphicUtil.clipPointsByRect","parseFinder","brushHelper.makeRectPanelClipPath","brushHelper.makeRectIsTargetByCursor","brushHelper.makeLinearBrushOtherExtent","modelUtilParseFinder","history.push","history.pop","history.count","DataZoom","Restore","installDataZoomSelect","makeStyleCoord","numberUtil.parsePercent","makeDispatchAction","axisPointerViewHelper.getValueLabel","formatUtil.convertToColorString","formatUtil.formatTpl","layoutUtil.getLayoutRect","zrUtil.retrieve2","numberUtil.getPrecision","getAxisInfo","dataFilter","createList","markerHelper.dataTransform","markerHelper.dataFilter","markerHelper.dimValueGetter","graphic.BezierCurve","createSymbol","symbolUtil.createSymbol","Line","vector.sub","vector.normalize","LineGroup","makeSeriesScope","markerHelper.getAxisInfo","markerHelper.numCalculate","dimValueGetter","isInifinity","colorUtil.modifyAlpha","curry","Group","layoutUtil.box","installLegendPlain","installLegendScroll","eventTool.isMiddleOrRightButtonOnMouseUpDown","interactionMutex.isTaken","trigger","roams.setViewInfoToCoordSysRecord","roams.disposeCoordSysRecordIfNeeded","Rect","throttle.createOrUpdate","throttle.clear","graphic.Point","installDataZoomInside","installDataZoomSlider","CanvasRenderer","SVGRenderer","LineChart","BarChart","PieChart","ScatterChart","GraphicComponent","TooltipComponent","AxisPointerComponent","LegendComponent","GridComponent","TitleComponent","MarkPointComponent","MarkLineComponent","MarkAreaComponent","DataZoomComponent","ToolboxComponent","AriaComponent","DatasetComponent"],"mappings":"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E,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1E,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1E,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1E,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1E,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1E,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAA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"}
\ No newline at end of file
+{"version":3,"file":"echarts.common.js","sources":["../node_modules/tslib/tslib.es6.js","../node_modules/zrender/lib/core/env.js","../node_modules/zrender/lib/core/util.js","../node_modules/zrender/lib/core/vector.js","../node_modules/zrender/lib/mixin/Draggable.js","../node_modules/zrender/lib/core/Eventful.js","../node_modules/zrender/lib/core/fourPointsTransform.js","../node_modules/zrender/lib/core/dom.js","../node_modules/zrender/lib/core/event.js","../node_modules/zrender/lib/core/GestureMgr.js","../node_modules/zrender/lib/Handler.js","../node_modules/zrender/lib/core/matrix.js","../node_modules/zrender/lib/core/Transformable.js","../node_modules/zrender/lib/animation/easing.js","../node_modules/zrender/lib/animation/Clip.js","../node_modules/zrender/lib/core/LRU.js","../node_modules/zrender/lib/tool/color.js","../node_modules/zrender/lib/animation/Animator.js","../node_modules/zrender/lib/core/Point.js","../node_modules/zrender/lib/core/BoundingRect.js","../node_modules/zrender/lib/contain/text.js","../node_modules/zrender/lib/config.js","../node_modules/zrender/lib/Element.js","../node_modules/zrender/lib/core/timsort.js","../node_modules/zrender/lib/Storage.js","../node_modules/zrender/lib/animation/requestAnimationFrame.js","../node_modules/zrender/lib/animation/Animation.js","../node_modules/zrender/lib/dom/HandlerProxy.js","../node_modules/zrender/lib/graphic/Group.js","../node_modules/zrender/lib/zrender.js","../lib/util/number.js","../lib/util/log.js","../lib/util/model.js","../lib/util/clazz.js","../lib/model/mixin/makeStyleMapper.js","../lib/model/mixin/areaStyle.js","../node_modules/zrender/lib/graphic/helper/image.js","../node_modules/zrender/lib/graphic/helper/parseText.js","../node_modules/zrender/lib/graphic/Displayable.js","../node_modules/zrender/lib/core/curve.js","../node_modules/zrender/lib/core/bbox.js","../node_modules/zrender/lib/core/PathProxy.js","../node_modules/zrender/lib/contain/line.js","../node_modules/zrender/lib/contain/cubic.js","../node_modules/zrender/lib/contain/quadratic.js","../node_modules/zrender/lib/contain/util.js","../node_modules/zrender/lib/contain/arc.js","../node_modules/zrender/lib/contain/windingLine.js","../node_modules/zrender/lib/contain/path.js","../node_modules/zrender/lib/graphic/Path.js","../node_modules/zrender/lib/graphic/TSpan.js","../node_modules/zrender/lib/graphic/Image.js","../node_modules/zrender/lib/graphic/helper/roundRect.js","../node_modules/zrender/lib/graphic/helper/subPixelOptimize.js","../node_modules/zrender/lib/graphic/shape/Rect.js","../node_modules/zrender/lib/graphic/Text.js","../lib/util/innerStore.js","../lib/util/states.js","../node_modules/zrender/lib/tool/transformPath.js","../node_modules/zrender/lib/tool/path.js","../node_modules/zrender/lib/graphic/shape/Circle.js","../node_modules/zrender/lib/graphic/shape/Ellipse.js","../node_modules/zrender/lib/graphic/helper/roundSector.js","../node_modules/zrender/lib/graphic/shape/Sector.js","../node_modules/zrender/lib/graphic/shape/Ring.js","../node_modules/zrender/lib/graphic/helper/smoothSpline.js","../node_modules/zrender/lib/graphic/helper/smoothBezier.js","../node_modules/zrender/lib/graphic/helper/poly.js","../node_modules/zrender/lib/graphic/shape/Polygon.js","../node_modules/zrender/lib/graphic/shape/Polyline.js","../node_modules/zrender/lib/graphic/shape/Line.js","../node_modules/zrender/lib/graphic/shape/BezierCurve.js","../node_modules/zrender/lib/graphic/shape/Arc.js","../node_modules/zrender/lib/graphic/CompoundPath.js","../node_modules/zrender/lib/graphic/Gradient.js","../node_modules/zrender/lib/graphic/LinearGradient.js","../node_modules/zrender/lib/graphic/RadialGradient.js","../node_modules/zrender/lib/core/OrientedBoundingRect.js","../node_modules/zrender/lib/graphic/IncrementalDisplayable.js","../lib/util/graphic.js","../lib/label/labelStyle.js","../lib/model/mixin/textStyle.js","../lib/model/mixin/lineStyle.js","../lib/model/mixin/itemStyle.js","../lib/model/Model.js","../lib/util/component.js","../lib/i18n/langEN.js","../lib/i18n/langZH.js","../lib/core/locale.js","../lib/util/time.js","../lib/legacy/getTextRect.js","../lib/util/format.js","../lib/util/layout.js","../lib/model/Component.js","../lib/model/globalDefault.js","../lib/util/types.js","../lib/data/helper/sourceHelper.js","../lib/model/internalComponentCreator.js","../lib/model/mixin/palette.js","../lib/model/Global.js","../lib/core/ExtensionAPI.js","../lib/core/CoordinateSystem.js","../lib/model/OptionManager.js","../lib/preprocessor/helper/compatStyle.js","../lib/preprocessor/backwardCompat.js","../lib/processor/dataStack.js","../lib/data/Source.js","../lib/data/helper/dataProvider.js","../lib/model/mixin/dataFormat.js","../lib/core/task.js","../lib/data/helper/dataValueHelper.js","../lib/data/helper/transform.js","../lib/data/helper/sourceManager.js","../lib/component/tooltip/tooltipMarkup.js","../lib/component/tooltip/seriesFormatTooltip.js","../lib/model/Series.js","../lib/view/Component.js","../lib/chart/helper/createRenderPlanner.js","../lib/view/Chart.js","../lib/util/throttle.js","../lib/visual/style.js","../lib/loading/default.js","../lib/core/Scheduler.js","../lib/theme/light.js","../lib/theme/dark.js","../node_modules/zrender/lib/tool/parseXML.js","../lib/coord/geo/mapDataStorage.js","../lib/util/ECEventProcessor.js","../lib/visual/symbol.js","../lib/visual/helper.js","../lib/label/labelGuideHelper.js","../lib/label/labelLayoutHelper.js","../lib/label/LabelManager.js","../lib/legacy/dataSelectAction.js","../lib/util/event.js","../node_modules/zrender/lib/core/WeakMap.js","../lib/util/symbol.js","../node_modules/zrender/lib/canvas/helper.js","../node_modules/zrender/lib/graphic/helper/dashStyle.js","../node_modules/zrender/lib/canvas/graphic.js","../lib/util/decal.js","../lib/visual/decal.js","../lib/core/echarts.js","../lib/extension.js","../lib/data/DataDiffer.js","../lib/data/helper/dimensionHelper.js","../lib/data/DataDimensionInfo.js","../lib/data/List.js","../lib/data/helper/completeDimensions.js","../lib/data/helper/createDimensions.js","../lib/model/referHelper.js","../lib/data/helper/dataStackHelper.js","../lib/chart/helper/createListFromArray.js","../lib/scale/Scale.js","../lib/data/OrdinalMeta.js","../lib/scale/helper.js","../lib/scale/Ordinal.js","../lib/scale/Interval.js","../lib/layout/barGrid.js","../lib/scale/Time.js","../lib/scale/Log.js","../lib/coord/scaleRawExtentInfo.js","../lib/coord/axisHelper.js","../lib/coord/axisModelCommonMixin.js","../lib/export/api/helper.js","../node_modules/zrender/lib/contain/polygon.js","../lib/coord/geo/Region.js","../lib/coord/geo/parseGeoJson.js","../lib/coord/axisTickLabelBuilder.js","../lib/coord/Axis.js","../lib/export/api.js","../node_modules/zrender/lib/svg/core.js","../node_modules/zrender/lib/core/arrayDiff.js","../node_modules/zrender/lib/svg/graphic.js","../node_modules/zrender/lib/svg/helper/Definable.js","../node_modules/zrender/lib/svg/helper/GradientManager.js","../node_modules/zrender/lib/svg/helper/PatternManager.js","../node_modules/zrender/lib/svg/helper/ClippathManager.js","../node_modules/zrender/lib/svg/helper/ShadowManager.js","../node_modules/zrender/lib/svg/Painter.js","../lib/renderer/installSVGRenderer.js","../node_modules/zrender/lib/canvas/Layer.js","../node_modules/zrender/lib/canvas/Painter.js","../lib/renderer/installCanvasRenderer.js","../lib/chart/line/LineSeries.js","../lib/chart/helper/labelHelper.js","../lib/chart/helper/Symbol.js","../lib/chart/helper/SymbolDraw.js","../lib/chart/line/helper.js","../lib/util/vendor.js","../lib/chart/line/lineAnimationDiff.js","../lib/chart/line/poly.js","../lib/chart/helper/createClipPathFromCoordSys.js","../lib/coord/CoordinateSystem.js","../lib/chart/line/LineView.js","../lib/layout/points.js","../lib/processor/dataSample.js","../lib/chart/line/install.js","../lib/chart/bar/BaseBarSeries.js","../lib/chart/bar/BarSeries.js","../lib/util/shape/sausage.js","../lib/chart/bar/BarView.js","../lib/chart/bar/install.js","../lib/chart/pie/pieLayout.js","../lib/processor/dataFilter.js","../lib/chart/pie/labelLayout.js","../lib/chart/helper/pieHelper.js","../lib/chart/pie/PieView.js","../lib/chart/helper/createListSimply.js","../lib/visual/LegendVisualProvider.js","../lib/chart/pie/PieSeries.js","../lib/chart/pie/install.js","../lib/chart/scatter/ScatterSeries.js","../lib/chart/helper/LargeSymbolDraw.js","../lib/chart/scatter/ScatterView.js","../lib/coord/cartesian/GridModel.js","../lib/coord/cartesian/AxisModel.js","../lib/coord/axisDefault.js","../lib/coord/axisCommonTypes.js","../lib/coord/axisModelCreator.js","../lib/coord/cartesian/Cartesian.js","../lib/coord/cartesian/Cartesian2D.js","../lib/coord/cartesian/Axis2D.js","../lib/coord/cartesian/cartesianAxisHelper.js","../lib/coord/cartesian/Grid.js","../lib/component/axis/AxisBuilder.js","../lib/component/axisPointer/modelHelper.js","../lib/component/axis/AxisView.js","../lib/component/axis/axisSplitHelper.js","../lib/component/axis/CartesianAxisView.js","../lib/component/grid/installSimple.js","../lib/chart/scatter/install.js","../lib/component/axisPointer/BaseAxisPointer.js","../lib/component/axisPointer/viewHelper.js","../lib/component/axisPointer/CartesianAxisPointer.js","../lib/component/axisPointer/AxisPointerModel.js","../lib/component/axisPointer/globalListener.js","../lib/component/axisPointer/AxisPointerView.js","../lib/component/axisPointer/findPointFromSeries.js","../lib/component/axisPointer/axisTrigger.js","../lib/component/axisPointer/install.js","../lib/component/grid/install.js","../lib/util/styleCompat.js","../lib/component/graphic/install.js","../lib/component/dataZoom/helper.js","../lib/component/dataZoom/DataZoomModel.js","../lib/component/dataZoom/SelectZoomModel.js","../lib/component/dataZoom/DataZoomView.js","../lib/component/dataZoom/SelectZoomView.js","../lib/component/helper/sliderMove.js","../lib/component/dataZoom/AxisProxy.js","../lib/component/dataZoom/dataZoomProcessor.js","../lib/component/dataZoom/dataZoomAction.js","../lib/component/dataZoom/installCommon.js","../lib/component/dataZoom/installDataZoomSelect.js","../lib/component/toolbox/featureManager.js","../lib/component/toolbox/ToolboxModel.js","../lib/component/helper/listComponent.js","../lib/component/toolbox/ToolboxView.js","../lib/component/toolbox/feature/SaveAsImage.js","../lib/component/toolbox/feature/MagicType.js","../lib/component/toolbox/feature/DataView.js","../lib/component/dataZoom/history.js","../lib/component/toolbox/feature/Restore.js","../lib/component/helper/interactionMutex.js","../lib/component/helper/BrushController.js","../lib/component/helper/cursorHelper.js","../lib/component/helper/brushHelper.js","../lib/component/helper/BrushTargetManager.js","../lib/component/toolbox/feature/DataZoom.js","../lib/component/toolbox/install.js","../lib/component/tooltip/TooltipModel.js","../lib/component/tooltip/helper.js","../lib/component/tooltip/TooltipHTMLContent.js","../lib/component/tooltip/TooltipRichContent.js","../lib/component/tooltip/TooltipView.js","../lib/component/tooltip/install.js","../lib/component/title/install.js","../lib/component/marker/MarkerModel.js","../lib/component/marker/MarkPointModel.js","../lib/component/marker/markerHelper.js","../lib/component/marker/MarkerView.js","../lib/component/marker/MarkPointView.js","../lib/component/marker/installMarkPoint.js","../lib/component/marker/MarkLineModel.js","../lib/chart/helper/LinePath.js","../lib/chart/helper/Line.js","../lib/chart/helper/LineDraw.js","../lib/component/marker/MarkLineView.js","../lib/component/marker/installMarkLine.js","../lib/component/marker/MarkAreaModel.js","../lib/component/marker/MarkAreaView.js","../lib/component/marker/installMarkArea.js","../lib/component/legend/LegendModel.js","../lib/component/legend/LegendView.js","../lib/component/legend/legendFilter.js","../lib/component/legend/legendAction.js","../lib/component/legend/installLegendPlain.js","../lib/component/legend/ScrollableLegendModel.js","../lib/component/legend/ScrollableLegendView.js","../lib/component/legend/scrollableLegendAction.js","../lib/component/legend/installLegendScroll.js","../lib/component/legend/install.js","../lib/component/dataZoom/InsideZoomModel.js","../lib/component/helper/RoamController.js","../lib/component/dataZoom/roams.js","../lib/component/dataZoom/InsideZoomView.js","../lib/component/dataZoom/installDataZoomInside.js","../lib/component/dataZoom/SliderZoomModel.js","../lib/component/dataZoom/SliderZoomView.js","../lib/component/dataZoom/installDataZoomSlider.js","../lib/component/dataZoom/install.js","../lib/visual/aria.js","../lib/component/aria/preprocessor.js","../lib/component/aria/install.js","../lib/component/dataset/install.js","../index.common.js"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar 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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport 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\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\nexport 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};\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to get private field on non-instance\");\r\n    }\r\n    return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to set private field on non-instance\");\r\n    }\r\n    privateMap.set(receiver, value);\r\n    return value;\r\n}\r\n","var Browser = (function () {\n    function Browser() {\n        this.firefox = false;\n        this.ie = false;\n        this.edge = false;\n        this.newEdge = false;\n        this.weChat = false;\n    }\n    return Browser;\n}());\nvar Env = (function () {\n    function Env() {\n        this.browser = new Browser();\n        this.node = false;\n        this.wxa = false;\n        this.worker = false;\n        this.canvasSupported = false;\n        this.svgSupported = false;\n        this.touchEventsSupported = false;\n        this.pointerEventsSupported = false;\n        this.domSupported = false;\n    }\n    return Env;\n}());\nvar env = new Env();\nif (typeof wx === 'object' && typeof wx.getSystemInfoSync === 'function') {\n    env.wxa = true;\n    env.canvasSupported = true;\n    env.touchEventsSupported = true;\n}\nelse if (typeof document === 'undefined' && typeof self !== 'undefined') {\n    env.worker = true;\n    env.canvasSupported = true;\n}\nelse if (typeof navigator === 'undefined') {\n    env.node = true;\n    env.canvasSupported = true;\n    env.svgSupported = true;\n}\nelse {\n    detect(navigator.userAgent, env);\n}\nfunction detect(ua, env) {\n    var browser = env.browser;\n    var firefox = ua.match(/Firefox\\/([\\d.]+)/);\n    var ie = ua.match(/MSIE\\s([\\d.]+)/)\n        || ua.match(/Trident\\/.+?rv:(([\\d.]+))/);\n    var edge = ua.match(/Edge?\\/([\\d.]+)/);\n    var weChat = (/micromessenger/i).test(ua);\n    if (firefox) {\n        browser.firefox = true;\n        browser.version = firefox[1];\n    }\n    if (ie) {\n        browser.ie = true;\n        browser.version = ie[1];\n    }\n    if (edge) {\n        browser.edge = true;\n        browser.version = edge[1];\n        browser.newEdge = +edge[1].split('.')[0] > 18;\n    }\n    if (weChat) {\n        browser.weChat = true;\n    }\n    env.canvasSupported = !!document.createElement('canvas').getContext;\n    env.svgSupported = typeof SVGRect !== 'undefined';\n    env.touchEventsSupported = 'ontouchstart' in window && !browser.ie && !browser.edge;\n    env.pointerEventsSupported = 'onpointerdown' in window\n        && (browser.edge || (browser.ie && +browser.version >= 11));\n    env.domSupported = typeof document !== 'undefined';\n}\nexport default env;\n","var BUILTIN_OBJECT = {\n    '[object Function]': true,\n    '[object RegExp]': true,\n    '[object Date]': true,\n    '[object Error]': true,\n    '[object CanvasGradient]': true,\n    '[object CanvasPattern]': true,\n    '[object Image]': true,\n    '[object Canvas]': true\n};\nvar TYPED_ARRAY = {\n    '[object Int8Array]': true,\n    '[object Uint8Array]': true,\n    '[object Uint8ClampedArray]': true,\n    '[object Int16Array]': true,\n    '[object Uint16Array]': true,\n    '[object Int32Array]': true,\n    '[object Uint32Array]': true,\n    '[object Float32Array]': true,\n    '[object Float64Array]': true\n};\nvar objToString = Object.prototype.toString;\nvar arrayProto = Array.prototype;\nvar nativeForEach = arrayProto.forEach;\nvar nativeFilter = arrayProto.filter;\nvar nativeSlice = arrayProto.slice;\nvar nativeMap = arrayProto.map;\nvar ctorFunction = function () { }.constructor;\nvar protoFunction = ctorFunction ? ctorFunction.prototype : null;\nvar methods = {};\nexport function $override(name, fn) {\n    methods[name] = fn;\n}\nvar idStart = 0x0907;\nexport function guid() {\n    return idStart++;\n}\nexport function logError() {\n    var args = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n    }\n    if (typeof console !== 'undefined') {\n        console.error.apply(console, args);\n    }\n}\nexport function clone(source) {\n    if (source == null || typeof source !== 'object') {\n        return source;\n    }\n    var result = source;\n    var typeStr = objToString.call(source);\n    if (typeStr === '[object Array]') {\n        if (!isPrimitive(source)) {\n            result = [];\n            for (var i = 0, len = source.length; i < len; i++) {\n                result[i] = clone(source[i]);\n            }\n        }\n    }\n    else if (TYPED_ARRAY[typeStr]) {\n        if (!isPrimitive(source)) {\n            var Ctor = source.constructor;\n            if (Ctor.from) {\n                result = Ctor.from(source);\n            }\n            else {\n                result = new Ctor(source.length);\n                for (var i = 0, len = source.length; i < len; i++) {\n                    result[i] = clone(source[i]);\n                }\n            }\n        }\n    }\n    else if (!BUILTIN_OBJECT[typeStr] && !isPrimitive(source) && !isDom(source)) {\n        result = {};\n        for (var key in source) {\n            if (source.hasOwnProperty(key)) {\n                result[key] = clone(source[key]);\n            }\n        }\n    }\n    return result;\n}\nexport function merge(target, source, overwrite) {\n    if (!isObject(source) || !isObject(target)) {\n        return overwrite ? clone(source) : target;\n    }\n    for (var key in source) {\n        if (source.hasOwnProperty(key)) {\n            var targetProp = target[key];\n            var sourceProp = source[key];\n            if (isObject(sourceProp)\n                && isObject(targetProp)\n                && !isArray(sourceProp)\n                && !isArray(targetProp)\n                && !isDom(sourceProp)\n                && !isDom(targetProp)\n                && !isBuiltInObject(sourceProp)\n                && !isBuiltInObject(targetProp)\n                && !isPrimitive(sourceProp)\n                && !isPrimitive(targetProp)) {\n                merge(targetProp, sourceProp, overwrite);\n            }\n            else if (overwrite || !(key in target)) {\n                target[key] = clone(source[key]);\n            }\n        }\n    }\n    return target;\n}\nexport function mergeAll(targetAndSources, overwrite) {\n    var result = targetAndSources[0];\n    for (var i = 1, len = targetAndSources.length; i < len; i++) {\n        result = merge(result, targetAndSources[i], overwrite);\n    }\n    return result;\n}\nexport function extend(target, source) {\n    if (Object.assign) {\n        Object.assign(target, source);\n    }\n    else {\n        for (var key in source) {\n            if (source.hasOwnProperty(key)) {\n                target[key] = source[key];\n            }\n        }\n    }\n    return target;\n}\nexport function defaults(target, source, overlay) {\n    var keysArr = keys(source);\n    for (var i = 0; i < keysArr.length; i++) {\n        var key = keysArr[i];\n        if ((overlay ? source[key] != null : target[key] == null)) {\n            target[key] = source[key];\n        }\n    }\n    return target;\n}\nexport var createCanvas = function () {\n    return methods.createCanvas();\n};\nmethods.createCanvas = function () {\n    return document.createElement('canvas');\n};\nexport function indexOf(array, value) {\n    if (array) {\n        if (array.indexOf) {\n            return array.indexOf(value);\n        }\n        for (var i = 0, len = array.length; i < len; i++) {\n            if (array[i] === value) {\n                return i;\n            }\n        }\n    }\n    return -1;\n}\nexport function inherits(clazz, baseClazz) {\n    var clazzPrototype = clazz.prototype;\n    function F() { }\n    F.prototype = baseClazz.prototype;\n    clazz.prototype = new F();\n    for (var prop in clazzPrototype) {\n        if (clazzPrototype.hasOwnProperty(prop)) {\n            clazz.prototype[prop] = clazzPrototype[prop];\n        }\n    }\n    clazz.prototype.constructor = clazz;\n    clazz.superClass = baseClazz;\n}\nexport function mixin(target, source, override) {\n    target = 'prototype' in target ? target.prototype : target;\n    source = 'prototype' in source ? source.prototype : source;\n    if (Object.getOwnPropertyNames) {\n        var keyList = Object.getOwnPropertyNames(source);\n        for (var i = 0; i < keyList.length; i++) {\n            var key = keyList[i];\n            if (key !== 'constructor') {\n                if ((override ? source[key] != null : target[key] == null)) {\n                    target[key] = source[key];\n                }\n            }\n        }\n    }\n    else {\n        defaults(target, source, override);\n    }\n}\nexport function isArrayLike(data) {\n    if (!data) {\n        return false;\n    }\n    if (typeof data === 'string') {\n        return false;\n    }\n    return typeof data.length === 'number';\n}\nexport function each(arr, cb, context) {\n    if (!(arr && cb)) {\n        return;\n    }\n    if (arr.forEach && arr.forEach === nativeForEach) {\n        arr.forEach(cb, context);\n    }\n    else if (arr.length === +arr.length) {\n        for (var i = 0, len = arr.length; i < len; i++) {\n            cb.call(context, arr[i], i, arr);\n        }\n    }\n    else {\n        for (var key in arr) {\n            if (arr.hasOwnProperty(key)) {\n                cb.call(context, arr[key], key, arr);\n            }\n        }\n    }\n}\nexport function map(arr, cb, context) {\n    if (!arr) {\n        return [];\n    }\n    if (!cb) {\n        return slice(arr);\n    }\n    if (arr.map && arr.map === nativeMap) {\n        return arr.map(cb, context);\n    }\n    else {\n        var result = [];\n        for (var i = 0, len = arr.length; i < len; i++) {\n            result.push(cb.call(context, arr[i], i, arr));\n        }\n        return result;\n    }\n}\nexport function reduce(arr, cb, memo, context) {\n    if (!(arr && cb)) {\n        return;\n    }\n    for (var i = 0, len = arr.length; i < len; i++) {\n        memo = cb.call(context, memo, arr[i], i, arr);\n    }\n    return memo;\n}\nexport function filter(arr, cb, context) {\n    if (!arr) {\n        return [];\n    }\n    if (!cb) {\n        return slice(arr);\n    }\n    if (arr.filter && arr.filter === nativeFilter) {\n        return arr.filter(cb, context);\n    }\n    else {\n        var result = [];\n        for (var i = 0, len = arr.length; i < len; i++) {\n            if (cb.call(context, arr[i], i, arr)) {\n                result.push(arr[i]);\n            }\n        }\n        return result;\n    }\n}\nexport function find(arr, cb, context) {\n    if (!(arr && cb)) {\n        return;\n    }\n    for (var i = 0, len = arr.length; i < len; i++) {\n        if (cb.call(context, arr[i], i, arr)) {\n            return arr[i];\n        }\n    }\n}\nexport function keys(obj) {\n    if (!obj) {\n        return [];\n    }\n    if (Object.keys) {\n        return Object.keys(obj);\n    }\n    var keyList = [];\n    for (var key in obj) {\n        if (obj.hasOwnProperty(key)) {\n            keyList.push(key);\n        }\n    }\n    return keyList;\n}\nfunction bindPolyfill(func, context) {\n    var args = [];\n    for (var _i = 2; _i < arguments.length; _i++) {\n        args[_i - 2] = arguments[_i];\n    }\n    return function () {\n        return func.apply(context, args.concat(nativeSlice.call(arguments)));\n    };\n}\nexport var bind = (protoFunction && isFunction(protoFunction.bind))\n    ? protoFunction.call.bind(protoFunction.bind)\n    : bindPolyfill;\nfunction curry(func) {\n    var args = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        args[_i - 1] = arguments[_i];\n    }\n    return function () {\n        return func.apply(this, args.concat(nativeSlice.call(arguments)));\n    };\n}\nexport { curry };\nexport function isArray(value) {\n    if (Array.isArray) {\n        return Array.isArray(value);\n    }\n    return objToString.call(value) === '[object Array]';\n}\nexport function isFunction(value) {\n    return typeof value === 'function';\n}\nexport function isString(value) {\n    return typeof value === 'string';\n}\nexport function isStringSafe(value) {\n    return objToString.call(value) === '[object String]';\n}\nexport function isNumber(value) {\n    return typeof value === 'number';\n}\nexport function isObject(value) {\n    var type = typeof value;\n    return type === 'function' || (!!value && type === 'object');\n}\nexport function isBuiltInObject(value) {\n    return !!BUILTIN_OBJECT[objToString.call(value)];\n}\nexport function isTypedArray(value) {\n    return !!TYPED_ARRAY[objToString.call(value)];\n}\nexport function isDom(value) {\n    return typeof value === 'object'\n        && typeof value.nodeType === 'number'\n        && typeof value.ownerDocument === 'object';\n}\nexport function isGradientObject(value) {\n    return value.colorStops != null;\n}\nexport function isPatternObject(value) {\n    return value.image != null;\n}\nexport function isRegExp(value) {\n    return objToString.call(value) === '[object RegExp]';\n}\nexport function eqNaN(value) {\n    return value !== value;\n}\nexport function retrieve() {\n    var args = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n    }\n    for (var i = 0, len = args.length; i < len; i++) {\n        if (args[i] != null) {\n            return args[i];\n        }\n    }\n}\nexport function retrieve2(value0, value1) {\n    return value0 != null\n        ? value0\n        : value1;\n}\nexport function retrieve3(value0, value1, value2) {\n    return value0 != null\n        ? value0\n        : value1 != null\n            ? value1\n            : value2;\n}\nexport function slice(arr) {\n    var args = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        args[_i - 1] = arguments[_i];\n    }\n    return nativeSlice.apply(arr, args);\n}\nexport function normalizeCssArray(val) {\n    if (typeof (val) === 'number') {\n        return [val, val, val, val];\n    }\n    var len = val.length;\n    if (len === 2) {\n        return [val[0], val[1], val[0], val[1]];\n    }\n    else if (len === 3) {\n        return [val[0], val[1], val[2], val[1]];\n    }\n    return val;\n}\nexport function assert(condition, message) {\n    if (!condition) {\n        throw new Error(message);\n    }\n}\nexport function trim(str) {\n    if (str == null) {\n        return null;\n    }\n    else if (typeof str.trim === 'function') {\n        return str.trim();\n    }\n    else {\n        return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n    }\n}\nvar primitiveKey = '__ec_primitive__';\nexport function setAsPrimitive(obj) {\n    obj[primitiveKey] = true;\n}\nexport function isPrimitive(obj) {\n    return obj[primitiveKey];\n}\nvar HashMap = (function () {\n    function HashMap(obj) {\n        this.data = {};\n        var isArr = isArray(obj);\n        this.data = {};\n        var thisMap = this;\n        (obj instanceof HashMap)\n            ? obj.each(visit)\n            : (obj && each(obj, visit));\n        function visit(value, key) {\n            isArr ? thisMap.set(value, key) : thisMap.set(key, value);\n        }\n    }\n    HashMap.prototype.get = function (key) {\n        return this.data.hasOwnProperty(key) ? this.data[key] : null;\n    };\n    HashMap.prototype.set = function (key, value) {\n        return (this.data[key] = value);\n    };\n    HashMap.prototype.each = function (cb, context) {\n        for (var key in this.data) {\n            if (this.data.hasOwnProperty(key)) {\n                cb.call(context, this.data[key], key);\n            }\n        }\n    };\n    HashMap.prototype.keys = function () {\n        return keys(this.data);\n    };\n    HashMap.prototype.removeKey = function (key) {\n        delete this.data[key];\n    };\n    return HashMap;\n}());\nexport { HashMap };\nexport function createHashMap(obj) {\n    return new HashMap(obj);\n}\nexport function concatArray(a, b) {\n    var newArray = new a.constructor(a.length + b.length);\n    for (var i = 0; i < a.length; i++) {\n        newArray[i] = a[i];\n    }\n    var offset = a.length;\n    for (var i = 0; i < b.length; i++) {\n        newArray[i + offset] = b[i];\n    }\n    return newArray;\n}\nexport function createObject(proto, properties) {\n    var obj;\n    if (Object.create) {\n        obj = Object.create(proto);\n    }\n    else {\n        var StyleCtor = function () { };\n        StyleCtor.prototype = proto;\n        obj = new StyleCtor();\n    }\n    if (properties) {\n        extend(obj, properties);\n    }\n    return obj;\n}\nexport function hasOwn(own, prop) {\n    return own.hasOwnProperty(prop);\n}\nexport function noop() { }\n","export function create(x, y) {\n    if (x == null) {\n        x = 0;\n    }\n    if (y == null) {\n        y = 0;\n    }\n    return [x, y];\n}\nexport function copy(out, v) {\n    out[0] = v[0];\n    out[1] = v[1];\n    return out;\n}\nexport function clone(v) {\n    return [v[0], v[1]];\n}\nexport function set(out, a, b) {\n    out[0] = a;\n    out[1] = b;\n    return out;\n}\nexport function add(out, v1, v2) {\n    out[0] = v1[0] + v2[0];\n    out[1] = v1[1] + v2[1];\n    return out;\n}\nexport function scaleAndAdd(out, v1, v2, a) {\n    out[0] = v1[0] + v2[0] * a;\n    out[1] = v1[1] + v2[1] * a;\n    return out;\n}\nexport function sub(out, v1, v2) {\n    out[0] = v1[0] - v2[0];\n    out[1] = v1[1] - v2[1];\n    return out;\n}\nexport function len(v) {\n    return Math.sqrt(lenSquare(v));\n}\nexport var length = len;\nexport function lenSquare(v) {\n    return v[0] * v[0] + v[1] * v[1];\n}\nexport var lengthSquare = lenSquare;\nexport function mul(out, v1, v2) {\n    out[0] = v1[0] * v2[0];\n    out[1] = v1[1] * v2[1];\n    return out;\n}\nexport function div(out, v1, v2) {\n    out[0] = v1[0] / v2[0];\n    out[1] = v1[1] / v2[1];\n    return out;\n}\nexport function dot(v1, v2) {\n    return v1[0] * v2[0] + v1[1] * v2[1];\n}\nexport function scale(out, v, s) {\n    out[0] = v[0] * s;\n    out[1] = v[1] * s;\n    return out;\n}\nexport function normalize(out, v) {\n    var d = len(v);\n    if (d === 0) {\n        out[0] = 0;\n        out[1] = 0;\n    }\n    else {\n        out[0] = v[0] / d;\n        out[1] = v[1] / d;\n    }\n    return out;\n}\nexport function distance(v1, v2) {\n    return Math.sqrt((v1[0] - v2[0]) * (v1[0] - v2[0])\n        + (v1[1] - v2[1]) * (v1[1] - v2[1]));\n}\nexport var dist = distance;\nexport function distanceSquare(v1, v2) {\n    return (v1[0] - v2[0]) * (v1[0] - v2[0])\n        + (v1[1] - v2[1]) * (v1[1] - v2[1]);\n}\nexport var distSquare = distanceSquare;\nexport function negate(out, v) {\n    out[0] = -v[0];\n    out[1] = -v[1];\n    return out;\n}\nexport function lerp(out, v1, v2, t) {\n    out[0] = v1[0] + t * (v2[0] - v1[0]);\n    out[1] = v1[1] + t * (v2[1] - v1[1]);\n    return out;\n}\nexport function applyTransform(out, v, m) {\n    var x = v[0];\n    var y = v[1];\n    out[0] = m[0] * x + m[2] * y + m[4];\n    out[1] = m[1] * x + m[3] * y + m[5];\n    return out;\n}\nexport function min(out, v1, v2) {\n    out[0] = Math.min(v1[0], v2[0]);\n    out[1] = Math.min(v1[1], v2[1]);\n    return out;\n}\nexport function max(out, v1, v2) {\n    out[0] = Math.max(v1[0], v2[0]);\n    out[1] = Math.max(v1[1], v2[1]);\n    return out;\n}\n","var Param = (function () {\n    function Param(target, e) {\n        this.target = target;\n        this.topTarget = e && e.topTarget;\n    }\n    return Param;\n}());\nvar Draggable = (function () {\n    function Draggable(handler) {\n        this.handler = handler;\n        handler.on('mousedown', this._dragStart, this);\n        handler.on('mousemove', this._drag, this);\n        handler.on('mouseup', this._dragEnd, this);\n    }\n    Draggable.prototype._dragStart = function (e) {\n        var draggingTarget = e.target;\n        while (draggingTarget && !draggingTarget.draggable) {\n            draggingTarget = draggingTarget.parent;\n        }\n        if (draggingTarget) {\n            this._draggingTarget = draggingTarget;\n            draggingTarget.dragging = true;\n            this._x = e.offsetX;\n            this._y = e.offsetY;\n            this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragstart', e.event);\n        }\n    };\n    Draggable.prototype._drag = function (e) {\n        var draggingTarget = this._draggingTarget;\n        if (draggingTarget) {\n            var x = e.offsetX;\n            var y = e.offsetY;\n            var dx = x - this._x;\n            var dy = y - this._y;\n            this._x = x;\n            this._y = y;\n            draggingTarget.drift(dx, dy, e);\n            this.handler.dispatchToElement(new Param(draggingTarget, e), 'drag', e.event);\n            var dropTarget = this.handler.findHover(x, y, draggingTarget).target;\n            var lastDropTarget = this._dropTarget;\n            this._dropTarget = dropTarget;\n            if (draggingTarget !== dropTarget) {\n                if (lastDropTarget && dropTarget !== lastDropTarget) {\n                    this.handler.dispatchToElement(new Param(lastDropTarget, e), 'dragleave', e.event);\n                }\n                if (dropTarget && dropTarget !== lastDropTarget) {\n                    this.handler.dispatchToElement(new Param(dropTarget, e), 'dragenter', e.event);\n                }\n            }\n        }\n    };\n    Draggable.prototype._dragEnd = function (e) {\n        var draggingTarget = this._draggingTarget;\n        if (draggingTarget) {\n            draggingTarget.dragging = false;\n        }\n        this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragend', e.event);\n        if (this._dropTarget) {\n            this.handler.dispatchToElement(new Param(this._dropTarget, e), 'drop', e.event);\n        }\n        this._draggingTarget = null;\n        this._dropTarget = null;\n    };\n    return Draggable;\n}());\nexport default Draggable;\n","var Eventful = (function () {\n    function Eventful(eventProcessors) {\n        if (eventProcessors) {\n            this._$eventProcessor = eventProcessors;\n        }\n    }\n    Eventful.prototype.on = function (event, query, handler, context) {\n        if (!this._$handlers) {\n            this._$handlers = {};\n        }\n        var _h = this._$handlers;\n        if (typeof query === 'function') {\n            context = handler;\n            handler = query;\n            query = null;\n        }\n        if (!handler || !event) {\n            return this;\n        }\n        var eventProcessor = this._$eventProcessor;\n        if (query != null && eventProcessor && eventProcessor.normalizeQuery) {\n            query = eventProcessor.normalizeQuery(query);\n        }\n        if (!_h[event]) {\n            _h[event] = [];\n        }\n        for (var i = 0; i < _h[event].length; i++) {\n            if (_h[event][i].h === handler) {\n                return this;\n            }\n        }\n        var wrap = {\n            h: handler,\n            query: query,\n            ctx: (context || this),\n            callAtLast: handler.zrEventfulCallAtLast\n        };\n        var lastIndex = _h[event].length - 1;\n        var lastWrap = _h[event][lastIndex];\n        (lastWrap && lastWrap.callAtLast)\n            ? _h[event].splice(lastIndex, 0, wrap)\n            : _h[event].push(wrap);\n        return this;\n    };\n    Eventful.prototype.isSilent = function (eventName) {\n        var _h = this._$handlers;\n        return !_h || !_h[eventName] || !_h[eventName].length;\n    };\n    Eventful.prototype.off = function (eventType, handler) {\n        var _h = this._$handlers;\n        if (!_h) {\n            return this;\n        }\n        if (!eventType) {\n            this._$handlers = {};\n            return this;\n        }\n        if (handler) {\n            if (_h[eventType]) {\n                var newList = [];\n                for (var i = 0, l = _h[eventType].length; i < l; i++) {\n                    if (_h[eventType][i].h !== handler) {\n                        newList.push(_h[eventType][i]);\n                    }\n                }\n                _h[eventType] = newList;\n            }\n            if (_h[eventType] && _h[eventType].length === 0) {\n                delete _h[eventType];\n            }\n        }\n        else {\n            delete _h[eventType];\n        }\n        return this;\n    };\n    Eventful.prototype.trigger = function (eventType) {\n        var args = [];\n        for (var _i = 1; _i < arguments.length; _i++) {\n            args[_i - 1] = arguments[_i];\n        }\n        if (!this._$handlers) {\n            return this;\n        }\n        var _h = this._$handlers[eventType];\n        var eventProcessor = this._$eventProcessor;\n        if (_h) {\n            var argLen = args.length;\n            var len = _h.length;\n            for (var i = 0; i < len; i++) {\n                var hItem = _h[i];\n                if (eventProcessor\n                    && eventProcessor.filter\n                    && hItem.query != null\n                    && !eventProcessor.filter(eventType, hItem.query)) {\n                    continue;\n                }\n                switch (argLen) {\n                    case 0:\n                        hItem.h.call(hItem.ctx);\n                        break;\n                    case 1:\n                        hItem.h.call(hItem.ctx, args[0]);\n                        break;\n                    case 2:\n                        hItem.h.call(hItem.ctx, args[0], args[1]);\n                        break;\n                    default:\n                        hItem.h.apply(hItem.ctx, args);\n                        break;\n                }\n            }\n        }\n        eventProcessor && eventProcessor.afterTrigger\n            && eventProcessor.afterTrigger(eventType);\n        return this;\n    };\n    Eventful.prototype.triggerWithContext = function (type) {\n        if (!this._$handlers) {\n            return this;\n        }\n        var _h = this._$handlers[type];\n        var eventProcessor = this._$eventProcessor;\n        if (_h) {\n            var args = arguments;\n            var argLen = args.length;\n            var ctx = args[argLen - 1];\n            var len = _h.length;\n            for (var i = 0; i < len; i++) {\n                var hItem = _h[i];\n                if (eventProcessor\n                    && eventProcessor.filter\n                    && hItem.query != null\n                    && !eventProcessor.filter(type, hItem.query)) {\n                    continue;\n                }\n                switch (argLen) {\n                    case 0:\n                        hItem.h.call(ctx);\n                        break;\n                    case 1:\n                        hItem.h.call(ctx, args[0]);\n                        break;\n                    case 2:\n                        hItem.h.call(ctx, args[0], args[1]);\n                        break;\n                    default:\n                        hItem.h.apply(ctx, args.slice(1, argLen - 1));\n                        break;\n                }\n            }\n        }\n        eventProcessor && eventProcessor.afterTrigger\n            && eventProcessor.afterTrigger(type);\n        return this;\n    };\n    return Eventful;\n}());\nexport default Eventful;\n","var LN2 = Math.log(2);\nfunction determinant(rows, rank, rowStart, rowMask, colMask, detCache) {\n    var cacheKey = rowMask + '-' + colMask;\n    var fullRank = rows.length;\n    if (detCache.hasOwnProperty(cacheKey)) {\n        return detCache[cacheKey];\n    }\n    if (rank === 1) {\n        var colStart = Math.round(Math.log(((1 << fullRank) - 1) & ~colMask) / LN2);\n        return rows[rowStart][colStart];\n    }\n    var subRowMask = rowMask | (1 << rowStart);\n    var subRowStart = rowStart + 1;\n    while (rowMask & (1 << subRowStart)) {\n        subRowStart++;\n    }\n    var sum = 0;\n    for (var j = 0, colLocalIdx = 0; j < fullRank; j++) {\n        var colTag = 1 << j;\n        if (!(colTag & colMask)) {\n            sum += (colLocalIdx % 2 ? -1 : 1) * rows[rowStart][j]\n                * determinant(rows, rank - 1, subRowStart, subRowMask, colMask | colTag, detCache);\n            colLocalIdx++;\n        }\n    }\n    detCache[cacheKey] = sum;\n    return sum;\n}\nexport function buildTransformer(src, dest) {\n    var mA = [\n        [src[0], src[1], 1, 0, 0, 0, -dest[0] * src[0], -dest[0] * src[1]],\n        [0, 0, 0, src[0], src[1], 1, -dest[1] * src[0], -dest[1] * src[1]],\n        [src[2], src[3], 1, 0, 0, 0, -dest[2] * src[2], -dest[2] * src[3]],\n        [0, 0, 0, src[2], src[3], 1, -dest[3] * src[2], -dest[3] * src[3]],\n        [src[4], src[5], 1, 0, 0, 0, -dest[4] * src[4], -dest[4] * src[5]],\n        [0, 0, 0, src[4], src[5], 1, -dest[5] * src[4], -dest[5] * src[5]],\n        [src[6], src[7], 1, 0, 0, 0, -dest[6] * src[6], -dest[6] * src[7]],\n        [0, 0, 0, src[6], src[7], 1, -dest[7] * src[6], -dest[7] * src[7]]\n    ];\n    var detCache = {};\n    var det = determinant(mA, 8, 0, 0, 0, detCache);\n    if (det === 0) {\n        return;\n    }\n    var vh = [];\n    for (var i = 0; i < 8; i++) {\n        for (var j = 0; j < 8; j++) {\n            vh[j] == null && (vh[j] = 0);\n            vh[j] += ((i + j) % 2 ? -1 : 1)\n                * determinant(mA, 7, i === 0 ? 1 : 0, 1 << i, 1 << j, detCache)\n                / det * dest[i];\n        }\n    }\n    return function (out, srcPointX, srcPointY) {\n        var pk = srcPointX * vh[6] + srcPointY * vh[7] + 1;\n        out[0] = (srcPointX * vh[0] + srcPointY * vh[1] + vh[2]) / pk;\n        out[1] = (srcPointX * vh[3] + srcPointY * vh[4] + vh[5]) / pk;\n    };\n}\n","import env from './env';\nimport { buildTransformer } from './fourPointsTransform';\nvar EVENT_SAVED_PROP = '___zrEVENTSAVED';\nvar _calcOut = [];\nexport function transformLocalCoord(out, elFrom, elTarget, inX, inY) {\n    return transformCoordWithViewport(_calcOut, elFrom, inX, inY, true)\n        && transformCoordWithViewport(out, elTarget, _calcOut[0], _calcOut[1]);\n}\nexport function transformCoordWithViewport(out, el, inX, inY, inverse) {\n    if (el.getBoundingClientRect && env.domSupported && !isCanvasEl(el)) {\n        var saved = el[EVENT_SAVED_PROP] || (el[EVENT_SAVED_PROP] = {});\n        var markers = prepareCoordMarkers(el, saved);\n        var transformer = preparePointerTransformer(markers, saved, inverse);\n        if (transformer) {\n            transformer(out, inX, inY);\n            return true;\n        }\n    }\n    return false;\n}\nfunction prepareCoordMarkers(el, saved) {\n    var markers = saved.markers;\n    if (markers) {\n        return markers;\n    }\n    markers = saved.markers = [];\n    var propLR = ['left', 'right'];\n    var propTB = ['top', 'bottom'];\n    for (var i = 0; i < 4; i++) {\n        var marker = document.createElement('div');\n        var stl = marker.style;\n        var idxLR = i % 2;\n        var idxTB = (i >> 1) % 2;\n        stl.cssText = [\n            'position: absolute',\n            'visibility: hidden',\n            'padding: 0',\n            'margin: 0',\n            'border-width: 0',\n            'user-select: none',\n            'width:0',\n            'height:0',\n            propLR[idxLR] + ':0',\n            propTB[idxTB] + ':0',\n            propLR[1 - idxLR] + ':auto',\n            propTB[1 - idxTB] + ':auto',\n            ''\n        ].join('!important;');\n        el.appendChild(marker);\n        markers.push(marker);\n    }\n    return markers;\n}\nfunction preparePointerTransformer(markers, saved, inverse) {\n    var transformerName = inverse ? 'invTrans' : 'trans';\n    var transformer = saved[transformerName];\n    var oldSrcCoords = saved.srcCoords;\n    var srcCoords = [];\n    var destCoords = [];\n    var oldCoordTheSame = true;\n    for (var i = 0; i < 4; i++) {\n        var rect = markers[i].getBoundingClientRect();\n        var ii = 2 * i;\n        var x = rect.left;\n        var y = rect.top;\n        srcCoords.push(x, y);\n        oldCoordTheSame = oldCoordTheSame && oldSrcCoords && x === oldSrcCoords[ii] && y === oldSrcCoords[ii + 1];\n        destCoords.push(markers[i].offsetLeft, markers[i].offsetTop);\n    }\n    return (oldCoordTheSame && transformer)\n        ? transformer\n        : (saved.srcCoords = srcCoords,\n            saved[transformerName] = inverse\n                ? buildTransformer(destCoords, srcCoords)\n                : buildTransformer(srcCoords, destCoords));\n}\nexport function isCanvasEl(el) {\n    return el.nodeName.toUpperCase() === 'CANVAS';\n}\n","import Eventful from './Eventful';\nimport env from './env';\nimport { isCanvasEl, transformCoordWithViewport } from './dom';\nvar isDomLevel2 = (typeof window !== 'undefined') && !!window.addEventListener;\nvar MOUSE_EVENT_REG = /^(?:mouse|pointer|contextmenu|drag|drop)|click/;\nvar _calcOut = [];\nexport function clientToLocal(el, e, out, calculate) {\n    out = out || {};\n    if (calculate || !env.canvasSupported) {\n        calculateZrXY(el, e, out);\n    }\n    else if (env.browser.firefox\n        && e.layerX != null\n        && e.layerX !== e.offsetX) {\n        out.zrX = e.layerX;\n        out.zrY = e.layerY;\n    }\n    else if (e.offsetX != null) {\n        out.zrX = e.offsetX;\n        out.zrY = e.offsetY;\n    }\n    else {\n        calculateZrXY(el, e, out);\n    }\n    return out;\n}\nfunction calculateZrXY(el, e, out) {\n    if (env.domSupported && el.getBoundingClientRect) {\n        var ex = e.clientX;\n        var ey = e.clientY;\n        if (isCanvasEl(el)) {\n            var box = el.getBoundingClientRect();\n            out.zrX = ex - box.left;\n            out.zrY = ey - box.top;\n            return;\n        }\n        else {\n            if (transformCoordWithViewport(_calcOut, el, ex, ey)) {\n                out.zrX = _calcOut[0];\n                out.zrY = _calcOut[1];\n                return;\n            }\n        }\n    }\n    out.zrX = out.zrY = 0;\n}\nexport function getNativeEvent(e) {\n    return e\n        || window.event;\n}\nexport function normalizeEvent(el, e, calculate) {\n    e = getNativeEvent(e);\n    if (e.zrX != null) {\n        return e;\n    }\n    var eventType = e.type;\n    var isTouch = eventType && eventType.indexOf('touch') >= 0;\n    if (!isTouch) {\n        clientToLocal(el, e, e, calculate);\n        var wheelDelta = getWheelDeltaMayPolyfill(e);\n        e.zrDelta = wheelDelta ? wheelDelta / 120 : -(e.detail || 0) / 3;\n    }\n    else {\n        var touch = eventType !== 'touchend'\n            ? e.targetTouches[0]\n            : e.changedTouches[0];\n        touch && clientToLocal(el, touch, e, calculate);\n    }\n    var button = e.button;\n    if (e.which == null && button !== undefined && MOUSE_EVENT_REG.test(e.type)) {\n        e.which = (button & 1 ? 1 : (button & 2 ? 3 : (button & 4 ? 2 : 0)));\n    }\n    return e;\n}\nfunction getWheelDeltaMayPolyfill(e) {\n    var rawWheelDelta = e.wheelDelta;\n    if (rawWheelDelta) {\n        return rawWheelDelta;\n    }\n    var deltaX = e.deltaX;\n    var deltaY = e.deltaY;\n    if (deltaX == null || deltaY == null) {\n        return rawWheelDelta;\n    }\n    var delta = deltaY !== 0 ? Math.abs(deltaY) : Math.abs(deltaX);\n    var sign = deltaY > 0 ? -1\n        : deltaY < 0 ? 1\n            : deltaX > 0 ? -1\n                : 1;\n    return 3 * delta * sign;\n}\nexport function addEventListener(el, name, handler, opt) {\n    if (isDomLevel2) {\n        el.addEventListener(name, handler, opt);\n    }\n    else {\n        el.attachEvent('on' + name, handler);\n    }\n}\nexport function removeEventListener(el, name, handler, opt) {\n    if (isDomLevel2) {\n        el.removeEventListener(name, handler, opt);\n    }\n    else {\n        el.detachEvent('on' + name, handler);\n    }\n}\nexport var stop = isDomLevel2\n    ? function (e) {\n        e.preventDefault();\n        e.stopPropagation();\n        e.cancelBubble = true;\n    }\n    : function (e) {\n        e.returnValue = false;\n        e.cancelBubble = true;\n    };\nexport function isMiddleOrRightButtonOnMouseUpDown(e) {\n    return e.which === 2 || e.which === 3;\n}\nexport function notLeftMouse(e) {\n    return e.which > 1;\n}\nexport { Eventful as Dispatcher };\n","import * as eventUtil from './event';\nvar GestureMgr = (function () {\n    function GestureMgr() {\n        this._track = [];\n    }\n    GestureMgr.prototype.recognize = function (event, target, root) {\n        this._doTrack(event, target, root);\n        return this._recognize(event);\n    };\n    GestureMgr.prototype.clear = function () {\n        this._track.length = 0;\n        return this;\n    };\n    GestureMgr.prototype._doTrack = function (event, target, root) {\n        var touches = event.touches;\n        if (!touches) {\n            return;\n        }\n        var trackItem = {\n            points: [],\n            touches: [],\n            target: target,\n            event: event\n        };\n        for (var i = 0, len = touches.length; i < len; i++) {\n            var touch = touches[i];\n            var pos = eventUtil.clientToLocal(root, touch, {});\n            trackItem.points.push([pos.zrX, pos.zrY]);\n            trackItem.touches.push(touch);\n        }\n        this._track.push(trackItem);\n    };\n    GestureMgr.prototype._recognize = function (event) {\n        for (var eventName in recognizers) {\n            if (recognizers.hasOwnProperty(eventName)) {\n                var gestureInfo = recognizers[eventName](this._track, event);\n                if (gestureInfo) {\n                    return gestureInfo;\n                }\n            }\n        }\n    };\n    return GestureMgr;\n}());\nexport { GestureMgr };\nfunction dist(pointPair) {\n    var dx = pointPair[1][0] - pointPair[0][0];\n    var dy = pointPair[1][1] - pointPair[0][1];\n    return Math.sqrt(dx * dx + dy * dy);\n}\nfunction center(pointPair) {\n    return [\n        (pointPair[0][0] + pointPair[1][0]) / 2,\n        (pointPair[0][1] + pointPair[1][1]) / 2\n    ];\n}\nvar recognizers = {\n    pinch: function (tracks, event) {\n        var trackLen = tracks.length;\n        if (!trackLen) {\n            return;\n        }\n        var pinchEnd = (tracks[trackLen - 1] || {}).points;\n        var pinchPre = (tracks[trackLen - 2] || {}).points || pinchEnd;\n        if (pinchPre\n            && pinchPre.length > 1\n            && pinchEnd\n            && pinchEnd.length > 1) {\n            var pinchScale = dist(pinchEnd) / dist(pinchPre);\n            !isFinite(pinchScale) && (pinchScale = 1);\n            event.pinchScale = pinchScale;\n            var pinchCenter = center(pinchEnd);\n            event.pinchX = pinchCenter[0];\n            event.pinchY = pinchCenter[1];\n            return {\n                type: 'pinch',\n                target: tracks[0].target,\n                event: event\n            };\n        }\n    }\n};\n","import { __extends } from \"tslib\";\nimport * as util from './core/util';\nimport * as vec2 from './core/vector';\nimport Draggable from './mixin/Draggable';\nimport Eventful from './core/Eventful';\nimport * as eventTool from './core/event';\nimport { GestureMgr } from './core/GestureMgr';\nvar SILENT = 'silent';\nfunction makeEventPacket(eveType, targetInfo, event) {\n    return {\n        type: eveType,\n        event: event,\n        target: targetInfo.target,\n        topTarget: targetInfo.topTarget,\n        cancelBubble: false,\n        offsetX: event.zrX,\n        offsetY: event.zrY,\n        gestureEvent: event.gestureEvent,\n        pinchX: event.pinchX,\n        pinchY: event.pinchY,\n        pinchScale: event.pinchScale,\n        wheelDelta: event.zrDelta,\n        zrByTouch: event.zrByTouch,\n        which: event.which,\n        stop: stopEvent\n    };\n}\nfunction stopEvent() {\n    eventTool.stop(this.event);\n}\nvar EmptyProxy = (function (_super) {\n    __extends(EmptyProxy, _super);\n    function EmptyProxy() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.handler = null;\n        return _this;\n    }\n    EmptyProxy.prototype.dispose = function () { };\n    EmptyProxy.prototype.setCursor = function () { };\n    return EmptyProxy;\n}(Eventful));\nvar HoveredResult = (function () {\n    function HoveredResult(x, y) {\n        this.x = x;\n        this.y = y;\n    }\n    return HoveredResult;\n}());\nvar handlerNames = [\n    'click', 'dblclick', 'mousewheel', 'mouseout',\n    'mouseup', 'mousedown', 'mousemove', 'contextmenu'\n];\nvar Handler = (function (_super) {\n    __extends(Handler, _super);\n    function Handler(storage, painter, proxy, painterRoot) {\n        var _this = _super.call(this) || this;\n        _this._hovered = new HoveredResult(0, 0);\n        _this.storage = storage;\n        _this.painter = painter;\n        _this.painterRoot = painterRoot;\n        proxy = proxy || new EmptyProxy();\n        _this.proxy = null;\n        _this.setHandlerProxy(proxy);\n        _this._draggingMgr = new Draggable(_this);\n        return _this;\n    }\n    Handler.prototype.setHandlerProxy = function (proxy) {\n        if (this.proxy) {\n            this.proxy.dispose();\n        }\n        if (proxy) {\n            util.each(handlerNames, function (name) {\n                proxy.on && proxy.on(name, this[name], this);\n            }, this);\n            proxy.handler = this;\n        }\n        this.proxy = proxy;\n    };\n    Handler.prototype.mousemove = function (event) {\n        var x = event.zrX;\n        var y = event.zrY;\n        var isOutside = isOutsideBoundary(this, x, y);\n        var lastHovered = this._hovered;\n        var lastHoveredTarget = lastHovered.target;\n        if (lastHoveredTarget && !lastHoveredTarget.__zr) {\n            lastHovered = this.findHover(lastHovered.x, lastHovered.y);\n            lastHoveredTarget = lastHovered.target;\n        }\n        var hovered = this._hovered = isOutside ? new HoveredResult(x, y) : this.findHover(x, y);\n        var hoveredTarget = hovered.target;\n        var proxy = this.proxy;\n        proxy.setCursor && proxy.setCursor(hoveredTarget ? hoveredTarget.cursor : 'default');\n        if (lastHoveredTarget && hoveredTarget !== lastHoveredTarget) {\n            this.dispatchToElement(lastHovered, 'mouseout', event);\n        }\n        this.dispatchToElement(hovered, 'mousemove', event);\n        if (hoveredTarget && hoveredTarget !== lastHoveredTarget) {\n            this.dispatchToElement(hovered, 'mouseover', event);\n        }\n    };\n    Handler.prototype.mouseout = function (event) {\n        var eventControl = event.zrEventControl;\n        if (eventControl !== 'only_globalout') {\n            this.dispatchToElement(this._hovered, 'mouseout', event);\n        }\n        if (eventControl !== 'no_globalout') {\n            this.trigger('globalout', { type: 'globalout', event: event });\n        }\n    };\n    Handler.prototype.resize = function () {\n        this._hovered = new HoveredResult(0, 0);\n    };\n    Handler.prototype.dispatch = function (eventName, eventArgs) {\n        var handler = this[eventName];\n        handler && handler.call(this, eventArgs);\n    };\n    Handler.prototype.dispose = function () {\n        this.proxy.dispose();\n        this.storage = null;\n        this.proxy = null;\n        this.painter = null;\n    };\n    Handler.prototype.setCursorStyle = function (cursorStyle) {\n        var proxy = this.proxy;\n        proxy.setCursor && proxy.setCursor(cursorStyle);\n    };\n    Handler.prototype.dispatchToElement = function (targetInfo, eventName, event) {\n        targetInfo = targetInfo || {};\n        var el = targetInfo.target;\n        if (el && el.silent) {\n            return;\n        }\n        var eventKey = ('on' + eventName);\n        var eventPacket = makeEventPacket(eventName, targetInfo, event);\n        while (el) {\n            el[eventKey]\n                && (eventPacket.cancelBubble = !!el[eventKey].call(el, eventPacket));\n            el.trigger(eventName, eventPacket);\n            el = el.__hostTarget ? el.__hostTarget : el.parent;\n            if (eventPacket.cancelBubble) {\n                break;\n            }\n        }\n        if (!eventPacket.cancelBubble) {\n            this.trigger(eventName, eventPacket);\n            if (this.painter && this.painter.eachOtherLayer) {\n                this.painter.eachOtherLayer(function (layer) {\n                    if (typeof (layer[eventKey]) === 'function') {\n                        layer[eventKey].call(layer, eventPacket);\n                    }\n                    if (layer.trigger) {\n                        layer.trigger(eventName, eventPacket);\n                    }\n                });\n            }\n        }\n    };\n    Handler.prototype.findHover = function (x, y, exclude) {\n        var list = this.storage.getDisplayList();\n        var out = new HoveredResult(x, y);\n        for (var i = list.length - 1; i >= 0; i--) {\n            var hoverCheckResult = void 0;\n            if (list[i] !== exclude\n                && !list[i].ignore\n                && (hoverCheckResult = isHover(list[i], x, y))) {\n                !out.topTarget && (out.topTarget = list[i]);\n                if (hoverCheckResult !== SILENT) {\n                    out.target = list[i];\n                    break;\n                }\n            }\n        }\n        return out;\n    };\n    Handler.prototype.processGesture = function (event, stage) {\n        if (!this._gestureMgr) {\n            this._gestureMgr = new GestureMgr();\n        }\n        var gestureMgr = this._gestureMgr;\n        stage === 'start' && gestureMgr.clear();\n        var gestureInfo = gestureMgr.recognize(event, this.findHover(event.zrX, event.zrY, null).target, this.proxy.dom);\n        stage === 'end' && gestureMgr.clear();\n        if (gestureInfo) {\n            var type = gestureInfo.type;\n            event.gestureEvent = type;\n            var res = new HoveredResult();\n            res.target = gestureInfo.target;\n            this.dispatchToElement(res, type, gestureInfo.event);\n        }\n    };\n    return Handler;\n}(Eventful));\nutil.each(['click', 'mousedown', 'mouseup', 'mousewheel', 'dblclick', 'contextmenu'], function (name) {\n    Handler.prototype[name] = function (event) {\n        var x = event.zrX;\n        var y = event.zrY;\n        var isOutside = isOutsideBoundary(this, x, y);\n        var hovered;\n        var hoveredTarget;\n        if (name !== 'mouseup' || !isOutside) {\n            hovered = this.findHover(x, y);\n            hoveredTarget = hovered.target;\n        }\n        if (name === 'mousedown') {\n            this._downEl = hoveredTarget;\n            this._downPoint = [event.zrX, event.zrY];\n            this._upEl = hoveredTarget;\n        }\n        else if (name === 'mouseup') {\n            this._upEl = hoveredTarget;\n        }\n        else if (name === 'click') {\n            if (this._downEl !== this._upEl\n                || !this._downPoint\n                || vec2.dist(this._downPoint, [event.zrX, event.zrY]) > 4) {\n                return;\n            }\n            this._downPoint = null;\n        }\n        this.dispatchToElement(hovered, name, event);\n    };\n});\nfunction isHover(displayable, x, y) {\n    if (displayable[displayable.rectHover ? 'rectContain' : 'contain'](x, y)) {\n        var el = displayable;\n        var isSilent = void 0;\n        var ignoreClip = false;\n        while (el) {\n            if (el.ignoreClip) {\n                ignoreClip = true;\n            }\n            if (!ignoreClip) {\n                var clipPath = el.getClipPath();\n                if (clipPath && !clipPath.contain(x, y)) {\n                    return false;\n                }\n                if (el.silent) {\n                    isSilent = true;\n                }\n            }\n            var hostEl = el.__hostTarget;\n            el = hostEl ? hostEl : el.parent;\n        }\n        return isSilent ? SILENT : true;\n    }\n    return false;\n}\nfunction isOutsideBoundary(handlerInstance, x, y) {\n    var painter = handlerInstance.painter;\n    return x < 0 || x > painter.getWidth() || y < 0 || y > painter.getHeight();\n}\nexport default Handler;\n","export function create() {\n    return [1, 0, 0, 1, 0, 0];\n}\nexport function identity(out) {\n    out[0] = 1;\n    out[1] = 0;\n    out[2] = 0;\n    out[3] = 1;\n    out[4] = 0;\n    out[5] = 0;\n    return out;\n}\nexport function copy(out, m) {\n    out[0] = m[0];\n    out[1] = m[1];\n    out[2] = m[2];\n    out[3] = m[3];\n    out[4] = m[4];\n    out[5] = m[5];\n    return out;\n}\nexport function mul(out, m1, m2) {\n    var out0 = m1[0] * m2[0] + m1[2] * m2[1];\n    var out1 = m1[1] * m2[0] + m1[3] * m2[1];\n    var out2 = m1[0] * m2[2] + m1[2] * m2[3];\n    var out3 = m1[1] * m2[2] + m1[3] * m2[3];\n    var out4 = m1[0] * m2[4] + m1[2] * m2[5] + m1[4];\n    var out5 = m1[1] * m2[4] + m1[3] * m2[5] + m1[5];\n    out[0] = out0;\n    out[1] = out1;\n    out[2] = out2;\n    out[3] = out3;\n    out[4] = out4;\n    out[5] = out5;\n    return out;\n}\nexport function translate(out, a, v) {\n    out[0] = a[0];\n    out[1] = a[1];\n    out[2] = a[2];\n    out[3] = a[3];\n    out[4] = a[4] + v[0];\n    out[5] = a[5] + v[1];\n    return out;\n}\nexport function rotate(out, a, rad) {\n    var aa = a[0];\n    var ac = a[2];\n    var atx = a[4];\n    var ab = a[1];\n    var ad = a[3];\n    var aty = a[5];\n    var st = Math.sin(rad);\n    var ct = Math.cos(rad);\n    out[0] = aa * ct + ab * st;\n    out[1] = -aa * st + ab * ct;\n    out[2] = ac * ct + ad * st;\n    out[3] = -ac * st + ct * ad;\n    out[4] = ct * atx + st * aty;\n    out[5] = ct * aty - st * atx;\n    return out;\n}\nexport function scale(out, a, v) {\n    var vx = v[0];\n    var vy = v[1];\n    out[0] = a[0] * vx;\n    out[1] = a[1] * vy;\n    out[2] = a[2] * vx;\n    out[3] = a[3] * vy;\n    out[4] = a[4] * vx;\n    out[5] = a[5] * vy;\n    return out;\n}\nexport function invert(out, a) {\n    var aa = a[0];\n    var ac = a[2];\n    var atx = a[4];\n    var ab = a[1];\n    var ad = a[3];\n    var aty = a[5];\n    var det = aa * ad - ab * ac;\n    if (!det) {\n        return null;\n    }\n    det = 1.0 / det;\n    out[0] = ad * det;\n    out[1] = -ab * det;\n    out[2] = -ac * det;\n    out[3] = aa * det;\n    out[4] = (ac * aty - ad * atx) * det;\n    out[5] = (ab * atx - aa * aty) * det;\n    return out;\n}\nexport function clone(a) {\n    var b = create();\n    copy(b, a);\n    return b;\n}\n","import * as matrix from './matrix';\nimport * as vector from './vector';\nvar mIdentity = matrix.identity;\nvar EPSILON = 5e-5;\nfunction isNotAroundZero(val) {\n    return val > EPSILON || val < -EPSILON;\n}\nvar scaleTmp = [];\nvar tmpTransform = [];\nvar originTransform = matrix.create();\nvar abs = Math.abs;\nvar Transformable = (function () {\n    function Transformable() {\n    }\n    Transformable.prototype.setPosition = function (arr) {\n        this.x = arr[0];\n        this.y = arr[1];\n    };\n    Transformable.prototype.setScale = function (arr) {\n        this.scaleX = arr[0];\n        this.scaleY = arr[1];\n    };\n    Transformable.prototype.setOrigin = function (arr) {\n        this.originX = arr[0];\n        this.originY = arr[1];\n    };\n    Transformable.prototype.needLocalTransform = function () {\n        return isNotAroundZero(this.rotation)\n            || isNotAroundZero(this.x)\n            || isNotAroundZero(this.y)\n            || isNotAroundZero(this.scaleX - 1)\n            || isNotAroundZero(this.scaleY - 1);\n    };\n    Transformable.prototype.updateTransform = function () {\n        var parent = this.parent;\n        var parentHasTransform = parent && parent.transform;\n        var needLocalTransform = this.needLocalTransform();\n        var m = this.transform;\n        if (!(needLocalTransform || parentHasTransform)) {\n            m && mIdentity(m);\n            return;\n        }\n        m = m || matrix.create();\n        if (needLocalTransform) {\n            this.getLocalTransform(m);\n        }\n        else {\n            mIdentity(m);\n        }\n        if (parentHasTransform) {\n            if (needLocalTransform) {\n                matrix.mul(m, parent.transform, m);\n            }\n            else {\n                matrix.copy(m, parent.transform);\n            }\n        }\n        this.transform = m;\n        this._resolveGlobalScaleRatio(m);\n    };\n    Transformable.prototype._resolveGlobalScaleRatio = function (m) {\n        var globalScaleRatio = this.globalScaleRatio;\n        if (globalScaleRatio != null && globalScaleRatio !== 1) {\n            this.getGlobalScale(scaleTmp);\n            var relX = scaleTmp[0] < 0 ? -1 : 1;\n            var relY = scaleTmp[1] < 0 ? -1 : 1;\n            var sx = ((scaleTmp[0] - relX) * globalScaleRatio + relX) / scaleTmp[0] || 0;\n            var sy = ((scaleTmp[1] - relY) * globalScaleRatio + relY) / scaleTmp[1] || 0;\n            m[0] *= sx;\n            m[1] *= sx;\n            m[2] *= sy;\n            m[3] *= sy;\n        }\n        this.invTransform = this.invTransform || matrix.create();\n        matrix.invert(this.invTransform, m);\n    };\n    Transformable.prototype.getLocalTransform = function (m) {\n        return Transformable.getLocalTransform(this, m);\n    };\n    Transformable.prototype.getComputedTransform = function () {\n        var transformNode = this;\n        var ancestors = [];\n        while (transformNode) {\n            ancestors.push(transformNode);\n            transformNode = transformNode.parent;\n        }\n        while (transformNode = ancestors.pop()) {\n            transformNode.updateTransform();\n        }\n        return this.transform;\n    };\n    Transformable.prototype.setLocalTransform = function (m) {\n        if (!m) {\n            return;\n        }\n        var sx = m[0] * m[0] + m[1] * m[1];\n        var sy = m[2] * m[2] + m[3] * m[3];\n        if (isNotAroundZero(sx - 1)) {\n            sx = Math.sqrt(sx);\n        }\n        if (isNotAroundZero(sy - 1)) {\n            sy = Math.sqrt(sy);\n        }\n        if (m[0] < 0) {\n            sx = -sx;\n        }\n        if (m[3] < 0) {\n            sy = -sy;\n        }\n        this.rotation = Math.atan2(-m[1] / sy, m[0] / sx);\n        if (sx < 0 && sy < 0) {\n            this.rotation += Math.PI;\n            sx = -sx;\n            sy = -sy;\n        }\n        this.x = m[4];\n        this.y = m[5];\n        this.scaleX = sx;\n        this.scaleY = sy;\n    };\n    Transformable.prototype.decomposeTransform = function () {\n        if (!this.transform) {\n            return;\n        }\n        var parent = this.parent;\n        var m = this.transform;\n        if (parent && parent.transform) {\n            matrix.mul(tmpTransform, parent.invTransform, m);\n            m = tmpTransform;\n        }\n        var ox = this.originX;\n        var oy = this.originY;\n        if (ox || oy) {\n            originTransform[4] = ox;\n            originTransform[5] = oy;\n            matrix.mul(tmpTransform, m, originTransform);\n            tmpTransform[4] -= ox;\n            tmpTransform[5] -= oy;\n            m = tmpTransform;\n        }\n        this.setLocalTransform(m);\n    };\n    Transformable.prototype.getGlobalScale = function (out) {\n        var m = this.transform;\n        out = out || [];\n        if (!m) {\n            out[0] = 1;\n            out[1] = 1;\n            return out;\n        }\n        out[0] = Math.sqrt(m[0] * m[0] + m[1] * m[1]);\n        out[1] = Math.sqrt(m[2] * m[2] + m[3] * m[3]);\n        if (m[0] < 0) {\n            out[0] = -out[0];\n        }\n        if (m[3] < 0) {\n            out[1] = -out[1];\n        }\n        return out;\n    };\n    Transformable.prototype.transformCoordToLocal = function (x, y) {\n        var v2 = [x, y];\n        var invTransform = this.invTransform;\n        if (invTransform) {\n            vector.applyTransform(v2, v2, invTransform);\n        }\n        return v2;\n    };\n    Transformable.prototype.transformCoordToGlobal = function (x, y) {\n        var v2 = [x, y];\n        var transform = this.transform;\n        if (transform) {\n            vector.applyTransform(v2, v2, transform);\n        }\n        return v2;\n    };\n    Transformable.prototype.getLineScale = function () {\n        var m = this.transform;\n        return m && abs(m[0] - 1) > 1e-10 && abs(m[3] - 1) > 1e-10\n            ? Math.sqrt(abs(m[0] * m[3] - m[2] * m[1]))\n            : 1;\n    };\n    Transformable.getLocalTransform = function (target, m) {\n        m = m || [];\n        mIdentity(m);\n        var ox = target.originX || 0;\n        var oy = target.originY || 0;\n        var sx = target.scaleX;\n        var sy = target.scaleY;\n        var rotation = target.rotation || 0;\n        var x = target.x;\n        var y = target.y;\n        m[4] -= ox;\n        m[5] -= oy;\n        m[0] *= sx;\n        m[1] *= sy;\n        m[2] *= sx;\n        m[3] *= sy;\n        m[4] *= sx;\n        m[5] *= sy;\n        if (rotation) {\n            matrix.rotate(m, m, rotation);\n        }\n        m[4] += ox;\n        m[5] += oy;\n        m[4] += x;\n        m[5] += y;\n        return m;\n    };\n    Transformable.initDefaultProps = (function () {\n        var proto = Transformable.prototype;\n        proto.x = 0;\n        proto.y = 0;\n        proto.scaleX = 1;\n        proto.scaleY = 1;\n        proto.originX = 0;\n        proto.originY = 0;\n        proto.rotation = 0;\n        proto.globalScaleRatio = 1;\n    })();\n    return Transformable;\n}());\n;\nexport default Transformable;\n","var easing = {\n    linear: function (k) {\n        return k;\n    },\n    quadraticIn: function (k) {\n        return k * k;\n    },\n    quadraticOut: function (k) {\n        return k * (2 - k);\n    },\n    quadraticInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return 0.5 * k * k;\n        }\n        return -0.5 * (--k * (k - 2) - 1);\n    },\n    cubicIn: function (k) {\n        return k * k * k;\n    },\n    cubicOut: function (k) {\n        return --k * k * k + 1;\n    },\n    cubicInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return 0.5 * k * k * k;\n        }\n        return 0.5 * ((k -= 2) * k * k + 2);\n    },\n    quarticIn: function (k) {\n        return k * k * k * k;\n    },\n    quarticOut: function (k) {\n        return 1 - (--k * k * k * k);\n    },\n    quarticInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return 0.5 * k * k * k * k;\n        }\n        return -0.5 * ((k -= 2) * k * k * k - 2);\n    },\n    quinticIn: function (k) {\n        return k * k * k * k * k;\n    },\n    quinticOut: function (k) {\n        return --k * k * k * k * k + 1;\n    },\n    quinticInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return 0.5 * k * k * k * k * k;\n        }\n        return 0.5 * ((k -= 2) * k * k * k * k + 2);\n    },\n    sinusoidalIn: function (k) {\n        return 1 - Math.cos(k * Math.PI / 2);\n    },\n    sinusoidalOut: function (k) {\n        return Math.sin(k * Math.PI / 2);\n    },\n    sinusoidalInOut: function (k) {\n        return 0.5 * (1 - Math.cos(Math.PI * k));\n    },\n    exponentialIn: function (k) {\n        return k === 0 ? 0 : Math.pow(1024, k - 1);\n    },\n    exponentialOut: function (k) {\n        return k === 1 ? 1 : 1 - Math.pow(2, -10 * k);\n    },\n    exponentialInOut: function (k) {\n        if (k === 0) {\n            return 0;\n        }\n        if (k === 1) {\n            return 1;\n        }\n        if ((k *= 2) < 1) {\n            return 0.5 * Math.pow(1024, k - 1);\n        }\n        return 0.5 * (-Math.pow(2, -10 * (k - 1)) + 2);\n    },\n    circularIn: function (k) {\n        return 1 - Math.sqrt(1 - k * k);\n    },\n    circularOut: function (k) {\n        return Math.sqrt(1 - (--k * k));\n    },\n    circularInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return -0.5 * (Math.sqrt(1 - k * k) - 1);\n        }\n        return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1);\n    },\n    elasticIn: function (k) {\n        var s;\n        var a = 0.1;\n        var p = 0.4;\n        if (k === 0) {\n            return 0;\n        }\n        if (k === 1) {\n            return 1;\n        }\n        if (!a || a < 1) {\n            a = 1;\n            s = p / 4;\n        }\n        else {\n            s = p * Math.asin(1 / a) / (2 * Math.PI);\n        }\n        return -(a * Math.pow(2, 10 * (k -= 1))\n            * Math.sin((k - s) * (2 * Math.PI) / p));\n    },\n    elasticOut: function (k) {\n        var s;\n        var a = 0.1;\n        var p = 0.4;\n        if (k === 0) {\n            return 0;\n        }\n        if (k === 1) {\n            return 1;\n        }\n        if (!a || a < 1) {\n            a = 1;\n            s = p / 4;\n        }\n        else {\n            s = p * Math.asin(1 / a) / (2 * Math.PI);\n        }\n        return (a * Math.pow(2, -10 * k)\n            * Math.sin((k - s) * (2 * Math.PI) / p) + 1);\n    },\n    elasticInOut: function (k) {\n        var s;\n        var a = 0.1;\n        var p = 0.4;\n        if (k === 0) {\n            return 0;\n        }\n        if (k === 1) {\n            return 1;\n        }\n        if (!a || a < 1) {\n            a = 1;\n            s = p / 4;\n        }\n        else {\n            s = p * Math.asin(1 / a) / (2 * Math.PI);\n        }\n        if ((k *= 2) < 1) {\n            return -0.5 * (a * Math.pow(2, 10 * (k -= 1))\n                * Math.sin((k - s) * (2 * Math.PI) / p));\n        }\n        return a * Math.pow(2, -10 * (k -= 1))\n            * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1;\n    },\n    backIn: function (k) {\n        var s = 1.70158;\n        return k * k * ((s + 1) * k - s);\n    },\n    backOut: function (k) {\n        var s = 1.70158;\n        return --k * k * ((s + 1) * k + s) + 1;\n    },\n    backInOut: function (k) {\n        var s = 1.70158 * 1.525;\n        if ((k *= 2) < 1) {\n            return 0.5 * (k * k * ((s + 1) * k - s));\n        }\n        return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2);\n    },\n    bounceIn: function (k) {\n        return 1 - easing.bounceOut(1 - k);\n    },\n    bounceOut: function (k) {\n        if (k < (1 / 2.75)) {\n            return 7.5625 * k * k;\n        }\n        else if (k < (2 / 2.75)) {\n            return 7.5625 * (k -= (1.5 / 2.75)) * k + 0.75;\n        }\n        else if (k < (2.5 / 2.75)) {\n            return 7.5625 * (k -= (2.25 / 2.75)) * k + 0.9375;\n        }\n        else {\n            return 7.5625 * (k -= (2.625 / 2.75)) * k + 0.984375;\n        }\n    },\n    bounceInOut: function (k) {\n        if (k < 0.5) {\n            return easing.bounceIn(k * 2) * 0.5;\n        }\n        return easing.bounceOut(k * 2 - 1) * 0.5 + 0.5;\n    }\n};\nexport default easing;\n","import easingFuncs from './easing';\nvar Clip = (function () {\n    function Clip(opts) {\n        this._initialized = false;\n        this._startTime = 0;\n        this._pausedTime = 0;\n        this._paused = false;\n        this._life = opts.life || 1000;\n        this._delay = opts.delay || 0;\n        this.loop = opts.loop == null ? false : opts.loop;\n        this.gap = opts.gap || 0;\n        this.easing = opts.easing || 'linear';\n        this.onframe = opts.onframe;\n        this.ondestroy = opts.ondestroy;\n        this.onrestart = opts.onrestart;\n    }\n    Clip.prototype.step = function (globalTime, deltaTime) {\n        if (!this._initialized) {\n            this._startTime = globalTime + this._delay;\n            this._initialized = true;\n        }\n        if (this._paused) {\n            this._pausedTime += deltaTime;\n            return;\n        }\n        var percent = (globalTime - this._startTime - this._pausedTime) / this._life;\n        if (percent < 0) {\n            percent = 0;\n        }\n        percent = Math.min(percent, 1);\n        var easing = this.easing;\n        var easingFunc = typeof easing === 'string'\n            ? easingFuncs[easing] : easing;\n        var schedule = typeof easingFunc === 'function'\n            ? easingFunc(percent)\n            : percent;\n        this.onframe && this.onframe(schedule);\n        if (percent === 1) {\n            if (this.loop) {\n                this._restart(globalTime);\n                this.onrestart && this.onrestart();\n            }\n            else {\n                return true;\n            }\n        }\n        return false;\n    };\n    Clip.prototype._restart = function (globalTime) {\n        var remainder = (globalTime - this._startTime - this._pausedTime) % this._life;\n        this._startTime = globalTime - remainder + this.gap;\n        this._pausedTime = 0;\n    };\n    Clip.prototype.pause = function () {\n        this._paused = true;\n    };\n    Clip.prototype.resume = function () {\n        this._paused = false;\n    };\n    return Clip;\n}());\nexport default Clip;\n","var Entry = (function () {\n    function Entry(val) {\n        this.value = val;\n    }\n    return Entry;\n}());\nexport { Entry };\nvar LinkedList = (function () {\n    function LinkedList() {\n        this._len = 0;\n    }\n    LinkedList.prototype.insert = function (val) {\n        var entry = new Entry(val);\n        this.insertEntry(entry);\n        return entry;\n    };\n    LinkedList.prototype.insertEntry = function (entry) {\n        if (!this.head) {\n            this.head = this.tail = entry;\n        }\n        else {\n            this.tail.next = entry;\n            entry.prev = this.tail;\n            entry.next = null;\n            this.tail = entry;\n        }\n        this._len++;\n    };\n    LinkedList.prototype.remove = function (entry) {\n        var prev = entry.prev;\n        var next = entry.next;\n        if (prev) {\n            prev.next = next;\n        }\n        else {\n            this.head = next;\n        }\n        if (next) {\n            next.prev = prev;\n        }\n        else {\n            this.tail = prev;\n        }\n        entry.next = entry.prev = null;\n        this._len--;\n    };\n    LinkedList.prototype.len = function () {\n        return this._len;\n    };\n    LinkedList.prototype.clear = function () {\n        this.head = this.tail = null;\n        this._len = 0;\n    };\n    return LinkedList;\n}());\nexport { LinkedList };\nvar LRU = (function () {\n    function LRU(maxSize) {\n        this._list = new LinkedList();\n        this._maxSize = 10;\n        this._map = {};\n        this._maxSize = maxSize;\n    }\n    LRU.prototype.put = function (key, value) {\n        var list = this._list;\n        var map = this._map;\n        var removed = null;\n        if (map[key] == null) {\n            var len = list.len();\n            var entry = this._lastRemovedEntry;\n            if (len >= this._maxSize && len > 0) {\n                var leastUsedEntry = list.head;\n                list.remove(leastUsedEntry);\n                delete map[leastUsedEntry.key];\n                removed = leastUsedEntry.value;\n                this._lastRemovedEntry = leastUsedEntry;\n            }\n            if (entry) {\n                entry.value = value;\n            }\n            else {\n                entry = new Entry(value);\n            }\n            entry.key = key;\n            list.insertEntry(entry);\n            map[key] = entry;\n        }\n        return removed;\n    };\n    LRU.prototype.get = function (key) {\n        var entry = this._map[key];\n        var list = this._list;\n        if (entry != null) {\n            if (entry !== list.tail) {\n                list.remove(entry);\n                list.insertEntry(entry);\n            }\n            return entry.value;\n        }\n    };\n    LRU.prototype.clear = function () {\n        this._list.clear();\n        this._map = {};\n    };\n    LRU.prototype.len = function () {\n        return this._list.len();\n    };\n    return LRU;\n}());\nexport default LRU;\n","import LRU from '../core/LRU';\nvar kCSSColorTable = {\n    'transparent': [0, 0, 0, 0], 'aliceblue': [240, 248, 255, 1],\n    'antiquewhite': [250, 235, 215, 1], 'aqua': [0, 255, 255, 1],\n    'aquamarine': [127, 255, 212, 1], 'azure': [240, 255, 255, 1],\n    'beige': [245, 245, 220, 1], 'bisque': [255, 228, 196, 1],\n    'black': [0, 0, 0, 1], 'blanchedalmond': [255, 235, 205, 1],\n    'blue': [0, 0, 255, 1], 'blueviolet': [138, 43, 226, 1],\n    'brown': [165, 42, 42, 1], 'burlywood': [222, 184, 135, 1],\n    'cadetblue': [95, 158, 160, 1], 'chartreuse': [127, 255, 0, 1],\n    'chocolate': [210, 105, 30, 1], 'coral': [255, 127, 80, 1],\n    'cornflowerblue': [100, 149, 237, 1], 'cornsilk': [255, 248, 220, 1],\n    'crimson': [220, 20, 60, 1], 'cyan': [0, 255, 255, 1],\n    'darkblue': [0, 0, 139, 1], 'darkcyan': [0, 139, 139, 1],\n    'darkgoldenrod': [184, 134, 11, 1], 'darkgray': [169, 169, 169, 1],\n    'darkgreen': [0, 100, 0, 1], 'darkgrey': [169, 169, 169, 1],\n    'darkkhaki': [189, 183, 107, 1], 'darkmagenta': [139, 0, 139, 1],\n    'darkolivegreen': [85, 107, 47, 1], 'darkorange': [255, 140, 0, 1],\n    'darkorchid': [153, 50, 204, 1], 'darkred': [139, 0, 0, 1],\n    'darksalmon': [233, 150, 122, 1], 'darkseagreen': [143, 188, 143, 1],\n    'darkslateblue': [72, 61, 139, 1], 'darkslategray': [47, 79, 79, 1],\n    'darkslategrey': [47, 79, 79, 1], 'darkturquoise': [0, 206, 209, 1],\n    'darkviolet': [148, 0, 211, 1], 'deeppink': [255, 20, 147, 1],\n    'deepskyblue': [0, 191, 255, 1], 'dimgray': [105, 105, 105, 1],\n    'dimgrey': [105, 105, 105, 1], 'dodgerblue': [30, 144, 255, 1],\n    'firebrick': [178, 34, 34, 1], 'floralwhite': [255, 250, 240, 1],\n    'forestgreen': [34, 139, 34, 1], 'fuchsia': [255, 0, 255, 1],\n    'gainsboro': [220, 220, 220, 1], 'ghostwhite': [248, 248, 255, 1],\n    'gold': [255, 215, 0, 1], 'goldenrod': [218, 165, 32, 1],\n    'gray': [128, 128, 128, 1], 'green': [0, 128, 0, 1],\n    'greenyellow': [173, 255, 47, 1], 'grey': [128, 128, 128, 1],\n    'honeydew': [240, 255, 240, 1], 'hotpink': [255, 105, 180, 1],\n    'indianred': [205, 92, 92, 1], 'indigo': [75, 0, 130, 1],\n    'ivory': [255, 255, 240, 1], 'khaki': [240, 230, 140, 1],\n    'lavender': [230, 230, 250, 1], 'lavenderblush': [255, 240, 245, 1],\n    'lawngreen': [124, 252, 0, 1], 'lemonchiffon': [255, 250, 205, 1],\n    'lightblue': [173, 216, 230, 1], 'lightcoral': [240, 128, 128, 1],\n    'lightcyan': [224, 255, 255, 1], 'lightgoldenrodyellow': [250, 250, 210, 1],\n    'lightgray': [211, 211, 211, 1], 'lightgreen': [144, 238, 144, 1],\n    'lightgrey': [211, 211, 211, 1], 'lightpink': [255, 182, 193, 1],\n    'lightsalmon': [255, 160, 122, 1], 'lightseagreen': [32, 178, 170, 1],\n    'lightskyblue': [135, 206, 250, 1], 'lightslategray': [119, 136, 153, 1],\n    'lightslategrey': [119, 136, 153, 1], 'lightsteelblue': [176, 196, 222, 1],\n    'lightyellow': [255, 255, 224, 1], 'lime': [0, 255, 0, 1],\n    'limegreen': [50, 205, 50, 1], 'linen': [250, 240, 230, 1],\n    'magenta': [255, 0, 255, 1], 'maroon': [128, 0, 0, 1],\n    'mediumaquamarine': [102, 205, 170, 1], 'mediumblue': [0, 0, 205, 1],\n    'mediumorchid': [186, 85, 211, 1], 'mediumpurple': [147, 112, 219, 1],\n    'mediumseagreen': [60, 179, 113, 1], 'mediumslateblue': [123, 104, 238, 1],\n    'mediumspringgreen': [0, 250, 154, 1], 'mediumturquoise': [72, 209, 204, 1],\n    'mediumvioletred': [199, 21, 133, 1], 'midnightblue': [25, 25, 112, 1],\n    'mintcream': [245, 255, 250, 1], 'mistyrose': [255, 228, 225, 1],\n    'moccasin': [255, 228, 181, 1], 'navajowhite': [255, 222, 173, 1],\n    'navy': [0, 0, 128, 1], 'oldlace': [253, 245, 230, 1],\n    'olive': [128, 128, 0, 1], 'olivedrab': [107, 142, 35, 1],\n    'orange': [255, 165, 0, 1], 'orangered': [255, 69, 0, 1],\n    'orchid': [218, 112, 214, 1], 'palegoldenrod': [238, 232, 170, 1],\n    'palegreen': [152, 251, 152, 1], 'paleturquoise': [175, 238, 238, 1],\n    'palevioletred': [219, 112, 147, 1], 'papayawhip': [255, 239, 213, 1],\n    'peachpuff': [255, 218, 185, 1], 'peru': [205, 133, 63, 1],\n    'pink': [255, 192, 203, 1], 'plum': [221, 160, 221, 1],\n    'powderblue': [176, 224, 230, 1], 'purple': [128, 0, 128, 1],\n    'red': [255, 0, 0, 1], 'rosybrown': [188, 143, 143, 1],\n    'royalblue': [65, 105, 225, 1], 'saddlebrown': [139, 69, 19, 1],\n    'salmon': [250, 128, 114, 1], 'sandybrown': [244, 164, 96, 1],\n    'seagreen': [46, 139, 87, 1], 'seashell': [255, 245, 238, 1],\n    'sienna': [160, 82, 45, 1], 'silver': [192, 192, 192, 1],\n    'skyblue': [135, 206, 235, 1], 'slateblue': [106, 90, 205, 1],\n    'slategray': [112, 128, 144, 1], 'slategrey': [112, 128, 144, 1],\n    'snow': [255, 250, 250, 1], 'springgreen': [0, 255, 127, 1],\n    'steelblue': [70, 130, 180, 1], 'tan': [210, 180, 140, 1],\n    'teal': [0, 128, 128, 1], 'thistle': [216, 191, 216, 1],\n    'tomato': [255, 99, 71, 1], 'turquoise': [64, 224, 208, 1],\n    'violet': [238, 130, 238, 1], 'wheat': [245, 222, 179, 1],\n    'white': [255, 255, 255, 1], 'whitesmoke': [245, 245, 245, 1],\n    'yellow': [255, 255, 0, 1], 'yellowgreen': [154, 205, 50, 1]\n};\nfunction clampCssByte(i) {\n    i = Math.round(i);\n    return i < 0 ? 0 : i > 255 ? 255 : i;\n}\nfunction clampCssAngle(i) {\n    i = Math.round(i);\n    return i < 0 ? 0 : i > 360 ? 360 : i;\n}\nfunction clampCssFloat(f) {\n    return f < 0 ? 0 : f > 1 ? 1 : f;\n}\nfunction parseCssInt(val) {\n    var str = val;\n    if (str.length && str.charAt(str.length - 1) === '%') {\n        return clampCssByte(parseFloat(str) / 100 * 255);\n    }\n    return clampCssByte(parseInt(str, 10));\n}\nfunction parseCssFloat(val) {\n    var str = val;\n    if (str.length && str.charAt(str.length - 1) === '%') {\n        return clampCssFloat(parseFloat(str) / 100);\n    }\n    return clampCssFloat(parseFloat(str));\n}\nfunction cssHueToRgb(m1, m2, h) {\n    if (h < 0) {\n        h += 1;\n    }\n    else if (h > 1) {\n        h -= 1;\n    }\n    if (h * 6 < 1) {\n        return m1 + (m2 - m1) * h * 6;\n    }\n    if (h * 2 < 1) {\n        return m2;\n    }\n    if (h * 3 < 2) {\n        return m1 + (m2 - m1) * (2 / 3 - h) * 6;\n    }\n    return m1;\n}\nfunction lerpNumber(a, b, p) {\n    return a + (b - a) * p;\n}\nfunction setRgba(out, r, g, b, a) {\n    out[0] = r;\n    out[1] = g;\n    out[2] = b;\n    out[3] = a;\n    return out;\n}\nfunction copyRgba(out, a) {\n    out[0] = a[0];\n    out[1] = a[1];\n    out[2] = a[2];\n    out[3] = a[3];\n    return out;\n}\nvar colorCache = new LRU(20);\nvar lastRemovedArr = null;\nfunction putToCache(colorStr, rgbaArr) {\n    if (lastRemovedArr) {\n        copyRgba(lastRemovedArr, rgbaArr);\n    }\n    lastRemovedArr = colorCache.put(colorStr, lastRemovedArr || (rgbaArr.slice()));\n}\nexport function parse(colorStr, rgbaArr) {\n    if (!colorStr) {\n        return;\n    }\n    rgbaArr = rgbaArr || [];\n    var cached = colorCache.get(colorStr);\n    if (cached) {\n        return copyRgba(rgbaArr, cached);\n    }\n    colorStr = colorStr + '';\n    var str = colorStr.replace(/ /g, '').toLowerCase();\n    if (str in kCSSColorTable) {\n        copyRgba(rgbaArr, kCSSColorTable[str]);\n        putToCache(colorStr, rgbaArr);\n        return rgbaArr;\n    }\n    var strLen = str.length;\n    if (str.charAt(0) === '#') {\n        if (strLen === 4 || strLen === 5) {\n            var iv = parseInt(str.slice(1, 4), 16);\n            if (!(iv >= 0 && iv <= 0xfff)) {\n                setRgba(rgbaArr, 0, 0, 0, 1);\n                return;\n            }\n            setRgba(rgbaArr, ((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8), (iv & 0xf0) | ((iv & 0xf0) >> 4), (iv & 0xf) | ((iv & 0xf) << 4), strLen === 5 ? parseInt(str.slice(4), 16) / 0xf : 1);\n            putToCache(colorStr, rgbaArr);\n            return rgbaArr;\n        }\n        else if (strLen === 7 || strLen === 9) {\n            var iv = parseInt(str.slice(1, 7), 16);\n            if (!(iv >= 0 && iv <= 0xffffff)) {\n                setRgba(rgbaArr, 0, 0, 0, 1);\n                return;\n            }\n            setRgba(rgbaArr, (iv & 0xff0000) >> 16, (iv & 0xff00) >> 8, iv & 0xff, strLen === 9 ? parseInt(str.slice(7), 16) / 0xff : 1);\n            putToCache(colorStr, rgbaArr);\n            return rgbaArr;\n        }\n        return;\n    }\n    var op = str.indexOf('(');\n    var ep = str.indexOf(')');\n    if (op !== -1 && ep + 1 === strLen) {\n        var fname = str.substr(0, op);\n        var params = str.substr(op + 1, ep - (op + 1)).split(',');\n        var alpha = 1;\n        switch (fname) {\n            case 'rgba':\n                if (params.length !== 4) {\n                    return params.length === 3\n                        ? setRgba(rgbaArr, +params[0], +params[1], +params[2], 1)\n                        : setRgba(rgbaArr, 0, 0, 0, 1);\n                }\n                alpha = parseCssFloat(params.pop());\n            case 'rgb':\n                if (params.length !== 3) {\n                    setRgba(rgbaArr, 0, 0, 0, 1);\n                    return;\n                }\n                setRgba(rgbaArr, parseCssInt(params[0]), parseCssInt(params[1]), parseCssInt(params[2]), alpha);\n                putToCache(colorStr, rgbaArr);\n                return rgbaArr;\n            case 'hsla':\n                if (params.length !== 4) {\n                    setRgba(rgbaArr, 0, 0, 0, 1);\n                    return;\n                }\n                params[3] = parseCssFloat(params[3]);\n                hsla2rgba(params, rgbaArr);\n                putToCache(colorStr, rgbaArr);\n                return rgbaArr;\n            case 'hsl':\n                if (params.length !== 3) {\n                    setRgba(rgbaArr, 0, 0, 0, 1);\n                    return;\n                }\n                hsla2rgba(params, rgbaArr);\n                putToCache(colorStr, rgbaArr);\n                return rgbaArr;\n            default:\n                return;\n        }\n    }\n    setRgba(rgbaArr, 0, 0, 0, 1);\n    return;\n}\nfunction hsla2rgba(hsla, rgba) {\n    var h = (((parseFloat(hsla[0]) % 360) + 360) % 360) / 360;\n    var s = parseCssFloat(hsla[1]);\n    var l = parseCssFloat(hsla[2]);\n    var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n    var m1 = l * 2 - m2;\n    rgba = rgba || [];\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);\n    if (hsla.length === 4) {\n        rgba[3] = hsla[3];\n    }\n    return rgba;\n}\nfunction rgba2hsla(rgba) {\n    if (!rgba) {\n        return;\n    }\n    var R = rgba[0] / 255;\n    var G = rgba[1] / 255;\n    var B = rgba[2] / 255;\n    var vMin = Math.min(R, G, B);\n    var vMax = Math.max(R, G, B);\n    var delta = vMax - vMin;\n    var L = (vMax + vMin) / 2;\n    var H;\n    var S;\n    if (delta === 0) {\n        H = 0;\n        S = 0;\n    }\n    else {\n        if (L < 0.5) {\n            S = delta / (vMax + vMin);\n        }\n        else {\n            S = delta / (2 - vMax - vMin);\n        }\n        var deltaR = (((vMax - R) / 6) + (delta / 2)) / delta;\n        var deltaG = (((vMax - G) / 6) + (delta / 2)) / delta;\n        var deltaB = (((vMax - B) / 6) + (delta / 2)) / delta;\n        if (R === vMax) {\n            H = deltaB - deltaG;\n        }\n        else if (G === vMax) {\n            H = (1 / 3) + deltaR - deltaB;\n        }\n        else if (B === vMax) {\n            H = (2 / 3) + deltaG - deltaR;\n        }\n        if (H < 0) {\n            H += 1;\n        }\n        if (H > 1) {\n            H -= 1;\n        }\n    }\n    var hsla = [H * 360, S, L];\n    if (rgba[3] != null) {\n        hsla.push(rgba[3]);\n    }\n    return hsla;\n}\nexport function lift(color, level) {\n    var colorArr = parse(color);\n    if (colorArr) {\n        for (var i = 0; i < 3; i++) {\n            if (level < 0) {\n                colorArr[i] = colorArr[i] * (1 - level) | 0;\n            }\n            else {\n                colorArr[i] = ((255 - colorArr[i]) * level + colorArr[i]) | 0;\n            }\n            if (colorArr[i] > 255) {\n                colorArr[i] = 255;\n            }\n            else if (colorArr[i] < 0) {\n                colorArr[i] = 0;\n            }\n        }\n        return stringify(colorArr, colorArr.length === 4 ? 'rgba' : 'rgb');\n    }\n}\nexport function toHex(color) {\n    var colorArr = parse(color);\n    if (colorArr) {\n        return ((1 << 24) + (colorArr[0] << 16) + (colorArr[1] << 8) + (+colorArr[2])).toString(16).slice(1);\n    }\n}\nexport function fastLerp(normalizedValue, colors, out) {\n    if (!(colors && colors.length)\n        || !(normalizedValue >= 0 && normalizedValue <= 1)) {\n        return;\n    }\n    out = out || [];\n    var value = normalizedValue * (colors.length - 1);\n    var leftIndex = Math.floor(value);\n    var rightIndex = Math.ceil(value);\n    var leftColor = colors[leftIndex];\n    var rightColor = colors[rightIndex];\n    var dv = value - leftIndex;\n    out[0] = clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv));\n    out[1] = clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv));\n    out[2] = clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv));\n    out[3] = clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv));\n    return out;\n}\nexport var fastMapToColor = fastLerp;\nexport function lerp(normalizedValue, colors, fullOutput) {\n    if (!(colors && colors.length)\n        || !(normalizedValue >= 0 && normalizedValue <= 1)) {\n        return;\n    }\n    var value = normalizedValue * (colors.length - 1);\n    var leftIndex = Math.floor(value);\n    var rightIndex = Math.ceil(value);\n    var leftColor = parse(colors[leftIndex]);\n    var rightColor = parse(colors[rightIndex]);\n    var dv = value - leftIndex;\n    var color = stringify([\n        clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv)),\n        clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv)),\n        clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv)),\n        clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv))\n    ], 'rgba');\n    return fullOutput\n        ? {\n            color: color,\n            leftIndex: leftIndex,\n            rightIndex: rightIndex,\n            value: value\n        }\n        : color;\n}\nexport var mapToColor = lerp;\nexport function modifyHSL(color, h, s, l) {\n    var colorArr = parse(color);\n    if (color) {\n        colorArr = rgba2hsla(colorArr);\n        h != null && (colorArr[0] = clampCssAngle(h));\n        s != null && (colorArr[1] = parseCssFloat(s));\n        l != null && (colorArr[2] = parseCssFloat(l));\n        return stringify(hsla2rgba(colorArr), 'rgba');\n    }\n}\nexport function modifyAlpha(color, alpha) {\n    var colorArr = parse(color);\n    if (colorArr && alpha != null) {\n        colorArr[3] = clampCssFloat(alpha);\n        return stringify(colorArr, 'rgba');\n    }\n}\nexport function stringify(arrColor, type) {\n    if (!arrColor || !arrColor.length) {\n        return;\n    }\n    var colorStr = arrColor[0] + ',' + arrColor[1] + ',' + arrColor[2];\n    if (type === 'rgba' || type === 'hsva' || type === 'hsla') {\n        colorStr += ',' + arrColor[3];\n    }\n    return type + '(' + colorStr + ')';\n}\nexport function lum(color, backgroundLum) {\n    var arr = parse(color);\n    return arr\n        ? (0.299 * arr[0] + 0.587 * arr[1] + 0.114 * arr[2]) * arr[3] / 255\n            + (1 - arr[3]) * backgroundLum\n        : 0;\n}\nexport function random() {\n    var r = Math.round(Math.random() * 255);\n    var g = Math.round(Math.random() * 255);\n    var b = Math.round(Math.random() * 255);\n    return 'rgb(' + r + ',' + g + ',' + b + ')';\n}\n","import Clip from './Clip';\nimport * as color from '../tool/color';\nimport { isArrayLike, keys, logError } from '../core/util';\nvar arraySlice = Array.prototype.slice;\nexport function interpolateNumber(p0, p1, percent) {\n    return (p1 - p0) * percent + p0;\n}\nexport function step(p0, p1, percent) {\n    return percent > 0.5 ? p1 : p0;\n}\nexport function interpolate1DArray(out, p0, p1, percent) {\n    var len = p0.length;\n    for (var i = 0; i < len; i++) {\n        out[i] = interpolateNumber(p0[i], p1[i], percent);\n    }\n}\nexport function interpolate2DArray(out, p0, p1, percent) {\n    var len = p0.length;\n    var len2 = len && p0[0].length;\n    for (var i = 0; i < len; i++) {\n        if (!out[i]) {\n            out[i] = [];\n        }\n        for (var j = 0; j < len2; j++) {\n            out[i][j] = interpolateNumber(p0[i][j], p1[i][j], percent);\n        }\n    }\n}\nfunction add1DArray(out, p0, p1, sign) {\n    var len = p0.length;\n    for (var i = 0; i < len; i++) {\n        out[i] = p0[i] + p1[i] * sign;\n    }\n    return out;\n}\nfunction add2DArray(out, p0, p1, sign) {\n    var len = p0.length;\n    var len2 = len && p0[0].length;\n    for (var i = 0; i < len; i++) {\n        if (!out[i]) {\n            out[i] = [];\n        }\n        for (var j = 0; j < len2; j++) {\n            out[i][j] = p0[i][j] + p1[i][j] * sign;\n        }\n    }\n    return out;\n}\nfunction fillArray(val0, val1, arrDim) {\n    var arr0 = val0;\n    var arr1 = val1;\n    if (!arr0.push || !arr1.push) {\n        return;\n    }\n    var arr0Len = arr0.length;\n    var arr1Len = arr1.length;\n    if (arr0Len !== arr1Len) {\n        var isPreviousLarger = arr0Len > arr1Len;\n        if (isPreviousLarger) {\n            arr0.length = arr1Len;\n        }\n        else {\n            for (var i = arr0Len; i < arr1Len; i++) {\n                arr0.push(arrDim === 1 ? arr1[i] : arraySlice.call(arr1[i]));\n            }\n        }\n    }\n    var len2 = arr0[0] && arr0[0].length;\n    for (var i = 0; i < arr0.length; i++) {\n        if (arrDim === 1) {\n            if (isNaN(arr0[i])) {\n                arr0[i] = arr1[i];\n            }\n        }\n        else {\n            for (var j = 0; j < len2; j++) {\n                if (isNaN(arr0[i][j])) {\n                    arr0[i][j] = arr1[i][j];\n                }\n            }\n        }\n    }\n}\nfunction is1DArraySame(arr0, arr1) {\n    var len = arr0.length;\n    if (len !== arr1.length) {\n        return false;\n    }\n    for (var i = 0; i < len; i++) {\n        if (arr0[i] !== arr1[i]) {\n            return false;\n        }\n    }\n    return true;\n}\nfunction is2DArraySame(arr0, arr1) {\n    var len = arr0.length;\n    if (len !== arr1.length) {\n        return false;\n    }\n    var len2 = arr0[0].length;\n    for (var i = 0; i < len; i++) {\n        for (var j = 0; j < len2; j++) {\n            if (arr0[i][j] !== arr1[i][j]) {\n                return false;\n            }\n        }\n    }\n    return true;\n}\nfunction catmullRomInterpolate(p0, p1, p2, p3, t, t2, t3) {\n    var v0 = (p2 - p0) * 0.5;\n    var v1 = (p3 - p1) * 0.5;\n    return (2 * (p1 - p2) + v0 + v1) * t3\n        + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\n        + v0 * t + p1;\n}\nfunction catmullRomInterpolate1DArray(out, p0, p1, p2, p3, t, t2, t3) {\n    var len = p0.length;\n    for (var i = 0; i < len; i++) {\n        out[i] = catmullRomInterpolate(p0[i], p1[i], p2[i], p3[i], t, t2, t3);\n    }\n}\nfunction catmullRomInterpolate2DArray(out, p0, p1, p2, p3, t, t2, t3) {\n    var len = p0.length;\n    var len2 = p0[0].length;\n    for (var i = 0; i < len; i++) {\n        if (!out[i]) {\n            out[1] = [];\n        }\n        for (var j = 0; j < len2; j++) {\n            out[i][j] = catmullRomInterpolate(p0[i][j], p1[i][j], p2[i][j], p3[i][j], t, t2, t3);\n        }\n    }\n}\nexport function cloneValue(value) {\n    if (isArrayLike(value)) {\n        var len = value.length;\n        if (isArrayLike(value[0])) {\n            var ret = [];\n            for (var i = 0; i < len; i++) {\n                ret.push(arraySlice.call(value[i]));\n            }\n            return ret;\n        }\n        return arraySlice.call(value);\n    }\n    return value;\n}\nfunction rgba2String(rgba) {\n    rgba[0] = Math.floor(rgba[0]);\n    rgba[1] = Math.floor(rgba[1]);\n    rgba[2] = Math.floor(rgba[2]);\n    return 'rgba(' + rgba.join(',') + ')';\n}\nfunction guessArrayDim(value) {\n    return isArrayLike(value && value[0]) ? 2 : 1;\n}\nvar tmpRgba = [0, 0, 0, 0];\nvar Track = (function () {\n    function Track(propName) {\n        this.keyframes = [];\n        this.maxTime = 0;\n        this.arrDim = 0;\n        this.interpolable = true;\n        this._needsSort = false;\n        this._isAllValueEqual = true;\n        this._lastFrame = 0;\n        this._lastFramePercent = 0;\n        this.propName = propName;\n    }\n    Track.prototype.isFinished = function () {\n        return this._finished;\n    };\n    Track.prototype.setFinished = function () {\n        this._finished = true;\n        if (this._additiveTrack) {\n            this._additiveTrack.setFinished();\n        }\n    };\n    Track.prototype.needsAnimate = function () {\n        return !this._isAllValueEqual && this.keyframes.length >= 2 && this.interpolable;\n    };\n    Track.prototype.getAdditiveTrack = function () {\n        return this._additiveTrack;\n    };\n    Track.prototype.addKeyframe = function (time, value) {\n        if (time >= this.maxTime) {\n            this.maxTime = time;\n        }\n        else {\n            this._needsSort = true;\n        }\n        var keyframes = this.keyframes;\n        var len = keyframes.length;\n        if (this.interpolable) {\n            if (isArrayLike(value)) {\n                var arrayDim = guessArrayDim(value);\n                if (len > 0 && this.arrDim !== arrayDim) {\n                    this.interpolable = false;\n                    return;\n                }\n                if (arrayDim === 1 && typeof value[0] !== 'number'\n                    || arrayDim === 2 && typeof value[0][0] !== 'number') {\n                    this.interpolable = false;\n                    return;\n                }\n                if (len > 0) {\n                    var lastFrame = keyframes[len - 1];\n                    if (this._isAllValueEqual) {\n                        if (arrayDim === 1) {\n                            if (!is1DArraySame(value, lastFrame.value)) {\n                                this._isAllValueEqual = false;\n                            }\n                        }\n                        else {\n                            this._isAllValueEqual = false;\n                        }\n                    }\n                }\n                this.arrDim = arrayDim;\n            }\n            else {\n                if (this.arrDim > 0) {\n                    this.interpolable = false;\n                    return;\n                }\n                if (typeof value === 'string') {\n                    var colorArray = color.parse(value);\n                    if (colorArray) {\n                        value = colorArray;\n                        this.isValueColor = true;\n                    }\n                    else {\n                        this.interpolable = false;\n                    }\n                }\n                else if (typeof value !== 'number') {\n                    this.interpolable = false;\n                    return;\n                }\n                if (this._isAllValueEqual && len > 0) {\n                    var lastFrame = keyframes[len - 1];\n                    if (this.isValueColor && !is1DArraySame(lastFrame.value, value)) {\n                        this._isAllValueEqual = false;\n                    }\n                    else if (lastFrame.value !== value) {\n                        this._isAllValueEqual = false;\n                    }\n                }\n            }\n        }\n        var kf = {\n            time: time,\n            value: value,\n            percent: 0\n        };\n        this.keyframes.push(kf);\n        return kf;\n    };\n    Track.prototype.prepare = function (additiveTrack) {\n        var kfs = this.keyframes;\n        if (this._needsSort) {\n            kfs.sort(function (a, b) {\n                return a.time - b.time;\n            });\n        }\n        var arrDim = this.arrDim;\n        var kfsLen = kfs.length;\n        var lastKf = kfs[kfsLen - 1];\n        for (var i = 0; i < kfsLen; i++) {\n            kfs[i].percent = kfs[i].time / this.maxTime;\n            if (arrDim > 0 && i !== kfsLen - 1) {\n                fillArray(kfs[i].value, lastKf.value, arrDim);\n            }\n        }\n        if (additiveTrack\n            && this.needsAnimate()\n            && additiveTrack.needsAnimate()\n            && arrDim === additiveTrack.arrDim\n            && this.isValueColor === additiveTrack.isValueColor\n            && !additiveTrack._finished) {\n            this._additiveTrack = additiveTrack;\n            var startValue = kfs[0].value;\n            for (var i = 0; i < kfsLen; i++) {\n                if (arrDim === 0) {\n                    if (this.isValueColor) {\n                        kfs[i].additiveValue\n                            = add1DArray([], kfs[i].value, startValue, -1);\n                    }\n                    else {\n                        kfs[i].additiveValue = kfs[i].value - startValue;\n                    }\n                }\n                else if (arrDim === 1) {\n                    kfs[i].additiveValue = add1DArray([], kfs[i].value, startValue, -1);\n                }\n                else if (arrDim === 2) {\n                    kfs[i].additiveValue = add2DArray([], kfs[i].value, startValue, -1);\n                }\n            }\n        }\n    };\n    Track.prototype.step = function (target, percent) {\n        if (this._finished) {\n            return;\n        }\n        if (this._additiveTrack && this._additiveTrack._finished) {\n            this._additiveTrack = null;\n        }\n        var isAdditive = this._additiveTrack != null;\n        var valueKey = isAdditive ? 'additiveValue' : 'value';\n        var keyframes = this.keyframes;\n        var kfsNum = this.keyframes.length;\n        var propName = this.propName;\n        var arrDim = this.arrDim;\n        var isValueColor = this.isValueColor;\n        var frameIdx;\n        if (percent < 0) {\n            frameIdx = 0;\n        }\n        else if (percent < this._lastFramePercent) {\n            var start = Math.min(this._lastFrame + 1, kfsNum - 1);\n            for (frameIdx = start; frameIdx >= 0; frameIdx--) {\n                if (keyframes[frameIdx].percent <= percent) {\n                    break;\n                }\n            }\n            frameIdx = Math.min(frameIdx, kfsNum - 2);\n        }\n        else {\n            for (frameIdx = this._lastFrame; frameIdx < kfsNum; frameIdx++) {\n                if (keyframes[frameIdx].percent > percent) {\n                    break;\n                }\n            }\n            frameIdx = Math.min(frameIdx - 1, kfsNum - 2);\n        }\n        var nextFrame = keyframes[frameIdx + 1];\n        var frame = keyframes[frameIdx];\n        if (!(frame && nextFrame)) {\n            return;\n        }\n        this._lastFrame = frameIdx;\n        this._lastFramePercent = percent;\n        var range = (nextFrame.percent - frame.percent);\n        if (range === 0) {\n            return;\n        }\n        var w = (percent - frame.percent) / range;\n        var targetArr = isAdditive ? this._additiveValue\n            : (isValueColor ? tmpRgba : target[propName]);\n        if ((arrDim > 0 || isValueColor) && !targetArr) {\n            targetArr = this._additiveValue = [];\n        }\n        if (this.useSpline) {\n            var p1 = keyframes[frameIdx][valueKey];\n            var p0 = keyframes[frameIdx === 0 ? frameIdx : frameIdx - 1][valueKey];\n            var p2 = keyframes[frameIdx > kfsNum - 2 ? kfsNum - 1 : frameIdx + 1][valueKey];\n            var p3 = keyframes[frameIdx > kfsNum - 3 ? kfsNum - 1 : frameIdx + 2][valueKey];\n            if (arrDim > 0) {\n                arrDim === 1\n                    ? catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w)\n                    : catmullRomInterpolate2DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\n            }\n            else if (isValueColor) {\n                catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\n                if (!isAdditive) {\n                    target[propName] = rgba2String(targetArr);\n                }\n            }\n            else {\n                var value = void 0;\n                if (!this.interpolable) {\n                    value = p2;\n                }\n                else {\n                    value = catmullRomInterpolate(p0, p1, p2, p3, w, w * w, w * w * w);\n                }\n                if (isAdditive) {\n                    this._additiveValue = value;\n                }\n                else {\n                    target[propName] = value;\n                }\n            }\n        }\n        else {\n            if (arrDim > 0) {\n                arrDim === 1\n                    ? interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w)\n                    : interpolate2DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\n            }\n            else if (isValueColor) {\n                interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\n                if (!isAdditive) {\n                    target[propName] = rgba2String(targetArr);\n                }\n            }\n            else {\n                var value = void 0;\n                if (!this.interpolable) {\n                    value = step(frame[valueKey], nextFrame[valueKey], w);\n                }\n                else {\n                    value = interpolateNumber(frame[valueKey], nextFrame[valueKey], w);\n                }\n                if (isAdditive) {\n                    this._additiveValue = value;\n                }\n                else {\n                    target[propName] = value;\n                }\n            }\n        }\n        if (isAdditive) {\n            this._addToTarget(target);\n        }\n    };\n    Track.prototype._addToTarget = function (target) {\n        var arrDim = this.arrDim;\n        var propName = this.propName;\n        var additiveValue = this._additiveValue;\n        if (arrDim === 0) {\n            if (this.isValueColor) {\n                color.parse(target[propName], tmpRgba);\n                add1DArray(tmpRgba, tmpRgba, additiveValue, 1);\n                target[propName] = rgba2String(tmpRgba);\n            }\n            else {\n                target[propName] = target[propName] + additiveValue;\n            }\n        }\n        else if (arrDim === 1) {\n            add1DArray(target[propName], target[propName], additiveValue, 1);\n        }\n        else if (arrDim === 2) {\n            add2DArray(target[propName], target[propName], additiveValue, 1);\n        }\n    };\n    return Track;\n}());\nvar Animator = (function () {\n    function Animator(target, loop, additiveTo) {\n        this._tracks = {};\n        this._trackKeys = [];\n        this._delay = 0;\n        this._maxTime = 0;\n        this._paused = false;\n        this._started = 0;\n        this._clip = null;\n        this._target = target;\n        this._loop = loop;\n        if (loop && additiveTo) {\n            logError('Can\\' use additive animation on looped animation.');\n            return;\n        }\n        this._additiveAnimators = additiveTo;\n    }\n    Animator.prototype.getTarget = function () {\n        return this._target;\n    };\n    Animator.prototype.changeTarget = function (target) {\n        this._target = target;\n    };\n    Animator.prototype.when = function (time, props) {\n        return this.whenWithKeys(time, props, keys(props));\n    };\n    Animator.prototype.whenWithKeys = function (time, props, propNames) {\n        var tracks = this._tracks;\n        for (var i = 0; i < propNames.length; i++) {\n            var propName = propNames[i];\n            var track = tracks[propName];\n            if (!track) {\n                track = tracks[propName] = new Track(propName);\n                var initialValue = void 0;\n                var additiveTrack = this._getAdditiveTrack(propName);\n                if (additiveTrack) {\n                    var lastFinalKf = additiveTrack.keyframes[additiveTrack.keyframes.length - 1];\n                    initialValue = lastFinalKf && lastFinalKf.value;\n                    if (additiveTrack.isValueColor && initialValue) {\n                        initialValue = rgba2String(initialValue);\n                    }\n                }\n                else {\n                    initialValue = this._target[propName];\n                }\n                if (initialValue == null) {\n                    continue;\n                }\n                if (time !== 0) {\n                    track.addKeyframe(0, cloneValue(initialValue));\n                }\n                this._trackKeys.push(propName);\n            }\n            track.addKeyframe(time, cloneValue(props[propName]));\n        }\n        this._maxTime = Math.max(this._maxTime, time);\n        return this;\n    };\n    Animator.prototype.pause = function () {\n        this._clip.pause();\n        this._paused = true;\n    };\n    Animator.prototype.resume = function () {\n        this._clip.resume();\n        this._paused = false;\n    };\n    Animator.prototype.isPaused = function () {\n        return !!this._paused;\n    };\n    Animator.prototype._doneCallback = function () {\n        this._setTracksFinished();\n        this._clip = null;\n        var doneList = this._doneList;\n        if (doneList) {\n            var len = doneList.length;\n            for (var i = 0; i < len; i++) {\n                doneList[i].call(this);\n            }\n        }\n    };\n    Animator.prototype._abortedCallback = function () {\n        this._setTracksFinished();\n        var animation = this.animation;\n        var abortedList = this._abortedList;\n        if (animation) {\n            animation.removeClip(this._clip);\n        }\n        this._clip = null;\n        if (abortedList) {\n            for (var i = 0; i < abortedList.length; i++) {\n                abortedList[i].call(this);\n            }\n        }\n    };\n    Animator.prototype._setTracksFinished = function () {\n        var tracks = this._tracks;\n        var tracksKeys = this._trackKeys;\n        for (var i = 0; i < tracksKeys.length; i++) {\n            tracks[tracksKeys[i]].setFinished();\n        }\n    };\n    Animator.prototype._getAdditiveTrack = function (trackName) {\n        var additiveTrack;\n        var additiveAnimators = this._additiveAnimators;\n        if (additiveAnimators) {\n            for (var i = 0; i < additiveAnimators.length; i++) {\n                var track = additiveAnimators[i].getTrack(trackName);\n                if (track) {\n                    additiveTrack = track;\n                }\n            }\n        }\n        return additiveTrack;\n    };\n    Animator.prototype.start = function (easing, forceAnimate) {\n        if (this._started > 0) {\n            return;\n        }\n        this._started = 1;\n        var self = this;\n        var tracks = [];\n        for (var i = 0; i < this._trackKeys.length; i++) {\n            var propName = this._trackKeys[i];\n            var track = this._tracks[propName];\n            var additiveTrack = this._getAdditiveTrack(propName);\n            var kfs = track.keyframes;\n            track.prepare(additiveTrack);\n            if (track.needsAnimate()) {\n                tracks.push(track);\n            }\n            else if (!track.interpolable) {\n                var lastKf = kfs[kfs.length - 1];\n                if (lastKf) {\n                    self._target[track.propName] = lastKf.value;\n                }\n            }\n        }\n        if (tracks.length || forceAnimate) {\n            var clip = new Clip({\n                life: this._maxTime,\n                loop: this._loop,\n                delay: this._delay,\n                onframe: function (percent) {\n                    self._started = 2;\n                    var additiveAnimators = self._additiveAnimators;\n                    if (additiveAnimators) {\n                        var stillHasAdditiveAnimator = false;\n                        for (var i = 0; i < additiveAnimators.length; i++) {\n                            if (additiveAnimators[i]._clip) {\n                                stillHasAdditiveAnimator = true;\n                                break;\n                            }\n                        }\n                        if (!stillHasAdditiveAnimator) {\n                            self._additiveAnimators = null;\n                        }\n                    }\n                    for (var i = 0; i < tracks.length; i++) {\n                        tracks[i].step(self._target, percent);\n                    }\n                    var onframeList = self._onframeList;\n                    if (onframeList) {\n                        for (var i = 0; i < onframeList.length; i++) {\n                            onframeList[i](self._target, percent);\n                        }\n                    }\n                },\n                ondestroy: function () {\n                    self._doneCallback();\n                }\n            });\n            this._clip = clip;\n            if (this.animation) {\n                this.animation.addClip(clip);\n            }\n            if (easing && easing !== 'spline') {\n                clip.easing = easing;\n            }\n        }\n        else {\n            this._doneCallback();\n        }\n        return this;\n    };\n    Animator.prototype.stop = function (forwardToLast) {\n        if (!this._clip) {\n            return;\n        }\n        var clip = this._clip;\n        if (forwardToLast) {\n            clip.onframe(1);\n        }\n        this._abortedCallback();\n    };\n    Animator.prototype.delay = function (time) {\n        this._delay = time;\n        return this;\n    };\n    Animator.prototype.during = function (cb) {\n        if (cb) {\n            if (!this._onframeList) {\n                this._onframeList = [];\n            }\n            this._onframeList.push(cb);\n        }\n        return this;\n    };\n    Animator.prototype.done = function (cb) {\n        if (cb) {\n            if (!this._doneList) {\n                this._doneList = [];\n            }\n            this._doneList.push(cb);\n        }\n        return this;\n    };\n    Animator.prototype.aborted = function (cb) {\n        if (cb) {\n            if (!this._abortedList) {\n                this._abortedList = [];\n            }\n            this._abortedList.push(cb);\n        }\n        return this;\n    };\n    Animator.prototype.getClip = function () {\n        return this._clip;\n    };\n    Animator.prototype.getTrack = function (propName) {\n        return this._tracks[propName];\n    };\n    Animator.prototype.stopTracks = function (propNames, forwardToLast) {\n        if (!propNames.length || !this._clip) {\n            return true;\n        }\n        var tracks = this._tracks;\n        var tracksKeys = this._trackKeys;\n        for (var i = 0; i < propNames.length; i++) {\n            var track = tracks[propNames[i]];\n            if (track) {\n                if (forwardToLast) {\n                    track.step(this._target, 1);\n                }\n                else if (this._started === 1) {\n                    track.step(this._target, 0);\n                }\n                track.setFinished();\n            }\n        }\n        var allAborted = true;\n        for (var i = 0; i < tracksKeys.length; i++) {\n            if (!tracks[tracksKeys[i]].isFinished()) {\n                allAborted = false;\n                break;\n            }\n        }\n        if (allAborted) {\n            this._abortedCallback();\n        }\n        return allAborted;\n    };\n    Animator.prototype.saveFinalToTarget = function (target, trackKeys) {\n        if (!target) {\n            return;\n        }\n        trackKeys = trackKeys || this._trackKeys;\n        for (var i = 0; i < trackKeys.length; i++) {\n            var propName = trackKeys[i];\n            var track = this._tracks[propName];\n            if (!track || track.isFinished()) {\n                continue;\n            }\n            var kfs = track.keyframes;\n            var lastKf = kfs[kfs.length - 1];\n            if (lastKf) {\n                var val = cloneValue(lastKf.value);\n                if (track.isValueColor) {\n                    val = rgba2String(val);\n                }\n                target[propName] = val;\n            }\n        }\n    };\n    Animator.prototype.__changeFinalValue = function (finalProps, trackKeys) {\n        trackKeys = trackKeys || keys(finalProps);\n        for (var i = 0; i < trackKeys.length; i++) {\n            var propName = trackKeys[i];\n            var track = this._tracks[propName];\n            if (!track) {\n                continue;\n            }\n            var kfs = track.keyframes;\n            if (kfs.length > 1) {\n                var lastKf = kfs.pop();\n                track.addKeyframe(lastKf.time, finalProps[propName]);\n                track.prepare(track.getAdditiveTrack());\n            }\n        }\n    };\n    return Animator;\n}());\nexport default Animator;\n","var Point = (function () {\n    function Point(x, y) {\n        this.x = x || 0;\n        this.y = y || 0;\n    }\n    Point.prototype.copy = function (other) {\n        this.x = other.x;\n        this.y = other.y;\n        return this;\n    };\n    Point.prototype.clone = function () {\n        return new Point(this.x, this.y);\n    };\n    Point.prototype.set = function (x, y) {\n        this.x = x;\n        this.y = y;\n        return this;\n    };\n    Point.prototype.equal = function (other) {\n        return other.x === this.x && other.y === this.y;\n    };\n    Point.prototype.add = function (other) {\n        this.x += other.x;\n        this.y += other.y;\n        return this;\n    };\n    Point.prototype.scale = function (scalar) {\n        this.x *= scalar;\n        this.y *= scalar;\n    };\n    Point.prototype.scaleAndAdd = function (other, scalar) {\n        this.x += other.x * scalar;\n        this.y += other.y * scalar;\n    };\n    Point.prototype.sub = function (other) {\n        this.x -= other.x;\n        this.y -= other.y;\n        return this;\n    };\n    Point.prototype.dot = function (other) {\n        return this.x * other.x + this.y * other.y;\n    };\n    Point.prototype.len = function () {\n        return Math.sqrt(this.x * this.x + this.y * this.y);\n    };\n    Point.prototype.lenSquare = function () {\n        return this.x * this.x + this.y * this.y;\n    };\n    Point.prototype.normalize = function () {\n        var len = this.len();\n        this.x /= len;\n        this.y /= len;\n        return this;\n    };\n    Point.prototype.distance = function (other) {\n        var dx = this.x - other.x;\n        var dy = this.y - other.y;\n        return Math.sqrt(dx * dx + dy * dy);\n    };\n    Point.prototype.distanceSquare = function (other) {\n        var dx = this.x - other.x;\n        var dy = this.y - other.y;\n        return dx * dx + dy * dy;\n    };\n    Point.prototype.negate = function () {\n        this.x = -this.x;\n        this.y = -this.y;\n        return this;\n    };\n    Point.prototype.transform = function (m) {\n        if (!m) {\n            return;\n        }\n        var x = this.x;\n        var y = this.y;\n        this.x = m[0] * x + m[2] * y + m[4];\n        this.y = m[1] * x + m[3] * y + m[5];\n        return this;\n    };\n    Point.prototype.toArray = function (out) {\n        out[0] = this.x;\n        out[1] = this.y;\n        return out;\n    };\n    Point.prototype.fromArray = function (input) {\n        this.x = input[0];\n        this.y = input[1];\n    };\n    Point.set = function (p, x, y) {\n        p.x = x;\n        p.y = y;\n    };\n    Point.copy = function (p, p2) {\n        p.x = p2.x;\n        p.y = p2.y;\n    };\n    Point.len = function (p) {\n        return Math.sqrt(p.x * p.x + p.y * p.y);\n    };\n    Point.lenSquare = function (p) {\n        return p.x * p.x + p.y * p.y;\n    };\n    Point.dot = function (p0, p1) {\n        return p0.x * p1.x + p0.y * p1.y;\n    };\n    Point.add = function (out, p0, p1) {\n        out.x = p0.x + p1.x;\n        out.y = p0.y + p1.y;\n    };\n    Point.sub = function (out, p0, p1) {\n        out.x = p0.x - p1.x;\n        out.y = p0.y - p1.y;\n    };\n    Point.scale = function (out, p0, scalar) {\n        out.x = p0.x * scalar;\n        out.y = p0.y * scalar;\n    };\n    Point.scaleAndAdd = function (out, p0, p1, scalar) {\n        out.x = p0.x + p1.x * scalar;\n        out.y = p0.y + p1.y * scalar;\n    };\n    Point.lerp = function (out, p0, p1, t) {\n        var onet = 1 - t;\n        out.x = onet * p0.x + t * p1.x;\n        out.y = onet * p0.y + t * p1.y;\n    };\n    return Point;\n}());\nexport default Point;\n","import * as matrix from './matrix';\nimport Point from './Point';\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar lt = new Point();\nvar rb = new Point();\nvar lb = new Point();\nvar rt = new Point();\nvar minTv = new Point();\nvar maxTv = new Point();\nvar BoundingRect = (function () {\n    function BoundingRect(x, y, width, height) {\n        if (width < 0 && isFinite(width)) {\n            x = x + width;\n            width = -width;\n        }\n        if (height < 0 && isFinite(height)) {\n            y = y + height;\n            height = -height;\n        }\n        this.x = x;\n        this.y = y;\n        this.width = width;\n        this.height = height;\n    }\n    BoundingRect.prototype.union = function (other) {\n        var x = mathMin(other.x, this.x);\n        var y = mathMin(other.y, this.y);\n        if (isFinite(this.x) && isFinite(this.width)) {\n            this.width = mathMax(other.x + other.width, this.x + this.width) - x;\n        }\n        else {\n            this.width = other.width;\n        }\n        if (isFinite(this.y) && isFinite(this.height)) {\n            this.height = mathMax(other.y + other.height, this.y + this.height) - y;\n        }\n        else {\n            this.height = other.height;\n        }\n        this.x = x;\n        this.y = y;\n    };\n    BoundingRect.prototype.applyTransform = function (m) {\n        BoundingRect.applyTransform(this, this, m);\n    };\n    BoundingRect.prototype.calculateTransform = function (b) {\n        var a = this;\n        var sx = b.width / a.width;\n        var sy = b.height / a.height;\n        var m = matrix.create();\n        matrix.translate(m, m, [-a.x, -a.y]);\n        matrix.scale(m, m, [sx, sy]);\n        matrix.translate(m, m, [b.x, b.y]);\n        return m;\n    };\n    BoundingRect.prototype.intersect = function (b, mtv) {\n        if (!b) {\n            return false;\n        }\n        if (!(b instanceof BoundingRect)) {\n            b = BoundingRect.create(b);\n        }\n        var a = this;\n        var ax0 = a.x;\n        var ax1 = a.x + a.width;\n        var ay0 = a.y;\n        var ay1 = a.y + a.height;\n        var bx0 = b.x;\n        var bx1 = b.x + b.width;\n        var by0 = b.y;\n        var by1 = b.y + b.height;\n        var overlap = !(ax1 < bx0 || bx1 < ax0 || ay1 < by0 || by1 < ay0);\n        if (mtv) {\n            var dMin = Infinity;\n            var dMax = 0;\n            var d0 = Math.abs(ax1 - bx0);\n            var d1 = Math.abs(bx1 - ax0);\n            var d2 = Math.abs(ay1 - by0);\n            var d3 = Math.abs(by1 - ay0);\n            var dx = Math.min(d0, d1);\n            var dy = Math.min(d2, d3);\n            if (ax1 < bx0 || bx1 < ax0) {\n                if (dx > dMax) {\n                    dMax = dx;\n                    if (d0 < d1) {\n                        Point.set(maxTv, -d0, 0);\n                    }\n                    else {\n                        Point.set(maxTv, d1, 0);\n                    }\n                }\n            }\n            else {\n                if (dx < dMin) {\n                    dMin = dx;\n                    if (d0 < d1) {\n                        Point.set(minTv, d0, 0);\n                    }\n                    else {\n                        Point.set(minTv, -d1, 0);\n                    }\n                }\n            }\n            if (ay1 < by0 || by1 < ay0) {\n                if (dy > dMax) {\n                    dMax = dy;\n                    if (d2 < d3) {\n                        Point.set(maxTv, 0, -d2);\n                    }\n                    else {\n                        Point.set(maxTv, 0, d3);\n                    }\n                }\n            }\n            else {\n                if (dx < dMin) {\n                    dMin = dx;\n                    if (d2 < d3) {\n                        Point.set(minTv, 0, d2);\n                    }\n                    else {\n                        Point.set(minTv, 0, -d3);\n                    }\n                }\n            }\n        }\n        if (mtv) {\n            Point.copy(mtv, overlap ? minTv : maxTv);\n        }\n        return overlap;\n    };\n    BoundingRect.prototype.contain = function (x, y) {\n        var rect = this;\n        return x >= rect.x\n            && x <= (rect.x + rect.width)\n            && y >= rect.y\n            && y <= (rect.y + rect.height);\n    };\n    BoundingRect.prototype.clone = function () {\n        return new BoundingRect(this.x, this.y, this.width, this.height);\n    };\n    BoundingRect.prototype.copy = function (other) {\n        BoundingRect.copy(this, other);\n    };\n    BoundingRect.prototype.plain = function () {\n        return {\n            x: this.x,\n            y: this.y,\n            width: this.width,\n            height: this.height\n        };\n    };\n    BoundingRect.prototype.isFinite = function () {\n        return isFinite(this.x)\n            && isFinite(this.y)\n            && isFinite(this.width)\n            && isFinite(this.height);\n    };\n    BoundingRect.prototype.isZero = function () {\n        return this.width === 0 || this.height === 0;\n    };\n    BoundingRect.create = function (rect) {\n        return new BoundingRect(rect.x, rect.y, rect.width, rect.height);\n    };\n    BoundingRect.copy = function (target, source) {\n        target.x = source.x;\n        target.y = source.y;\n        target.width = source.width;\n        target.height = source.height;\n    };\n    BoundingRect.applyTransform = function (target, source, m) {\n        if (!m) {\n            if (target !== source) {\n                BoundingRect.copy(target, source);\n            }\n            return;\n        }\n        if (m[1] < 1e-5 && m[1] > -1e-5 && m[2] < 1e-5 && m[2] > -1e-5) {\n            var sx = m[0];\n            var sy = m[3];\n            var tx = m[4];\n            var ty = m[5];\n            target.x = source.x * sx + tx;\n            target.y = source.y * sy + ty;\n            target.width = source.width * sx;\n            target.height = source.height * sy;\n            if (target.width < 0) {\n                target.x += target.width;\n                target.width = -target.width;\n            }\n            if (target.height < 0) {\n                target.y += target.height;\n                target.height = -target.height;\n            }\n            return;\n        }\n        lt.x = lb.x = source.x;\n        lt.y = rt.y = source.y;\n        rb.x = rt.x = source.x + source.width;\n        rb.y = lb.y = source.y + source.height;\n        lt.transform(m);\n        rt.transform(m);\n        rb.transform(m);\n        lb.transform(m);\n        target.x = mathMin(lt.x, rb.x, lb.x, rt.x);\n        target.y = mathMin(lt.y, rb.y, lb.y, rt.y);\n        var maxX = mathMax(lt.x, rb.x, lb.x, rt.x);\n        var maxY = mathMax(lt.y, rb.y, lb.y, rt.y);\n        target.width = maxX - target.x;\n        target.height = maxY - target.y;\n    };\n    return BoundingRect;\n}());\nexport default BoundingRect;\n","import BoundingRect from '../core/BoundingRect';\nimport { createCanvas } from '../core/util';\nimport LRU from '../core/LRU';\nvar textWidthCache = {};\nexport var DEFAULT_FONT = '12px sans-serif';\nvar _ctx;\nvar _cachedFont;\nfunction defaultMeasureText(text, font) {\n    if (!_ctx) {\n        _ctx = createCanvas().getContext('2d');\n    }\n    if (_cachedFont !== font) {\n        _cachedFont = _ctx.font = font || DEFAULT_FONT;\n    }\n    return _ctx.measureText(text);\n}\nvar methods = {\n    measureText: defaultMeasureText\n};\nexport function $override(name, fn) {\n    methods[name] = fn;\n}\nexport function getWidth(text, font) {\n    font = font || DEFAULT_FONT;\n    var cacheOfFont = textWidthCache[font];\n    if (!cacheOfFont) {\n        cacheOfFont = textWidthCache[font] = new LRU(500);\n    }\n    var width = cacheOfFont.get(text);\n    if (width == null) {\n        width = methods.measureText(text, font).width;\n        cacheOfFont.put(text, width);\n    }\n    return width;\n}\nexport function innerGetBoundingRect(text, font, textAlign, textBaseline) {\n    var width = getWidth(text, font);\n    var height = getLineHeight(font);\n    var x = adjustTextX(0, width, textAlign);\n    var y = adjustTextY(0, height, textBaseline);\n    var rect = new BoundingRect(x, y, width, height);\n    return rect;\n}\nexport function getBoundingRect(text, font, textAlign, textBaseline) {\n    var textLines = ((text || '') + '').split('\\n');\n    var len = textLines.length;\n    if (len === 1) {\n        return innerGetBoundingRect(textLines[0], font, textAlign, textBaseline);\n    }\n    else {\n        var uniondRect = new BoundingRect(0, 0, 0, 0);\n        for (var i = 0; i < textLines.length; i++) {\n            var rect = innerGetBoundingRect(textLines[i], font, textAlign, textBaseline);\n            i === 0 ? uniondRect.copy(rect) : uniondRect.union(rect);\n        }\n        return uniondRect;\n    }\n}\nexport function adjustTextX(x, width, textAlign) {\n    if (textAlign === 'right') {\n        x -= width;\n    }\n    else if (textAlign === 'center') {\n        x -= width / 2;\n    }\n    return x;\n}\nexport function adjustTextY(y, height, verticalAlign) {\n    if (verticalAlign === 'middle') {\n        y -= height / 2;\n    }\n    else if (verticalAlign === 'bottom') {\n        y -= height;\n    }\n    return y;\n}\nexport function getLineHeight(font) {\n    return getWidth('国', font);\n}\nexport function measureText(text, font) {\n    return methods.measureText(text, font);\n}\nexport function parsePercent(value, maxValue) {\n    if (typeof value === 'string') {\n        if (value.lastIndexOf('%') >= 0) {\n            return parseFloat(value) / 100 * maxValue;\n        }\n        return parseFloat(value);\n    }\n    return value;\n}\nexport function calculateTextPosition(out, opts, rect) {\n    var textPosition = opts.position || 'inside';\n    var distance = opts.distance != null ? opts.distance : 5;\n    var height = rect.height;\n    var width = rect.width;\n    var halfHeight = height / 2;\n    var x = rect.x;\n    var y = rect.y;\n    var textAlign = 'left';\n    var textVerticalAlign = 'top';\n    if (textPosition instanceof Array) {\n        x += parsePercent(textPosition[0], rect.width);\n        y += parsePercent(textPosition[1], rect.height);\n        textAlign = null;\n        textVerticalAlign = null;\n    }\n    else {\n        switch (textPosition) {\n            case 'left':\n                x -= distance;\n                y += halfHeight;\n                textAlign = 'right';\n                textVerticalAlign = 'middle';\n                break;\n            case 'right':\n                x += distance + width;\n                y += halfHeight;\n                textVerticalAlign = 'middle';\n                break;\n            case 'top':\n                x += width / 2;\n                y -= distance;\n                textAlign = 'center';\n                textVerticalAlign = 'bottom';\n                break;\n            case 'bottom':\n                x += width / 2;\n                y += height + distance;\n                textAlign = 'center';\n                break;\n            case 'inside':\n                x += width / 2;\n                y += halfHeight;\n                textAlign = 'center';\n                textVerticalAlign = 'middle';\n                break;\n            case 'insideLeft':\n                x += distance;\n                y += halfHeight;\n                textVerticalAlign = 'middle';\n                break;\n            case 'insideRight':\n                x += width - distance;\n                y += halfHeight;\n                textAlign = 'right';\n                textVerticalAlign = 'middle';\n                break;\n            case 'insideTop':\n                x += width / 2;\n                y += distance;\n                textAlign = 'center';\n                break;\n            case 'insideBottom':\n                x += width / 2;\n                y += height - distance;\n                textAlign = 'center';\n                textVerticalAlign = 'bottom';\n                break;\n            case 'insideTopLeft':\n                x += distance;\n                y += distance;\n                break;\n            case 'insideTopRight':\n                x += width - distance;\n                y += distance;\n                textAlign = 'right';\n                break;\n            case 'insideBottomLeft':\n                x += distance;\n                y += height - distance;\n                textVerticalAlign = 'bottom';\n                break;\n            case 'insideBottomRight':\n                x += width - distance;\n                y += height - distance;\n                textAlign = 'right';\n                textVerticalAlign = 'bottom';\n                break;\n        }\n    }\n    out = out || {};\n    out.x = x;\n    out.y = y;\n    out.align = textAlign;\n    out.verticalAlign = textVerticalAlign;\n    return out;\n}\n","var dpr = 1;\nif (typeof window !== 'undefined') {\n    dpr = Math.max(window.devicePixelRatio\n        || (window.screen && window.screen.deviceXDPI / window.screen.logicalXDPI)\n        || 1, 1);\n}\nexport var debugMode = 0;\nexport var devicePixelRatio = dpr;\nexport var DARK_MODE_THRESHOLD = 0.4;\nexport var DARK_LABEL_COLOR = '#333';\nexport var LIGHT_LABEL_COLOR = '#ccc';\nexport var LIGHTER_LABEL_COLOR = '#eee';\n","import Transformable from './core/Transformable';\nimport Animator, { cloneValue } from './animation/Animator';\nimport BoundingRect from './core/BoundingRect';\nimport Eventful from './core/Eventful';\nimport { calculateTextPosition, parsePercent } from './contain/text';\nimport { guid, isObject, keys, extend, indexOf, logError, mixin, isArrayLike, isTypedArray } from './core/util';\nimport { LIGHT_LABEL_COLOR, DARK_LABEL_COLOR } from './config';\nimport { parse, stringify } from './tool/color';\nimport env from './core/env';\nexport var PRESERVED_NORMAL_STATE = '__zr_normal__';\nvar PRIMARY_STATES_KEYS = ['x', 'y', 'scaleX', 'scaleY', 'originX', 'originY', 'rotation', 'ignore'];\nvar DEFAULT_ANIMATABLE_MAP = {\n    x: true,\n    y: true,\n    scaleX: true,\n    scaleY: true,\n    originX: true,\n    originY: true,\n    rotation: true,\n    ignore: false\n};\nvar tmpTextPosCalcRes = {};\nvar tmpBoundingRect = new BoundingRect(0, 0, 0, 0);\nvar Element = (function () {\n    function Element(props) {\n        this.id = guid();\n        this.animators = [];\n        this.currentStates = [];\n        this.states = {};\n        this._init(props);\n    }\n    Element.prototype._init = function (props) {\n        this.attr(props);\n    };\n    Element.prototype.drift = function (dx, dy, e) {\n        switch (this.draggable) {\n            case 'horizontal':\n                dy = 0;\n                break;\n            case 'vertical':\n                dx = 0;\n                break;\n        }\n        var m = this.transform;\n        if (!m) {\n            m = this.transform = [1, 0, 0, 1, 0, 0];\n        }\n        m[4] += dx;\n        m[5] += dy;\n        this.decomposeTransform();\n        this.markRedraw();\n    };\n    Element.prototype.beforeUpdate = function () { };\n    Element.prototype.afterUpdate = function () { };\n    Element.prototype.update = function () {\n        this.updateTransform();\n        if (this.__dirty) {\n            this.updateInnerText();\n        }\n    };\n    Element.prototype.updateInnerText = function (forceUpdate) {\n        var textEl = this._textContent;\n        if (textEl && (!textEl.ignore || forceUpdate)) {\n            if (!this.textConfig) {\n                this.textConfig = {};\n            }\n            var textConfig = this.textConfig;\n            var isLocal = textConfig.local;\n            var attachedTransform = textEl.attachedTransform;\n            var textAlign = void 0;\n            var textVerticalAlign = void 0;\n            var textStyleChanged = false;\n            if (isLocal) {\n                attachedTransform.parent = this;\n            }\n            else {\n                attachedTransform.parent = null;\n            }\n            var innerOrigin = false;\n            attachedTransform.x = textEl.x;\n            attachedTransform.y = textEl.y;\n            attachedTransform.originX = textEl.originX;\n            attachedTransform.originY = textEl.originY;\n            attachedTransform.rotation = textEl.rotation;\n            attachedTransform.scaleX = textEl.scaleX;\n            attachedTransform.scaleY = textEl.scaleY;\n            if (textConfig.position != null) {\n                var layoutRect = tmpBoundingRect;\n                if (textConfig.layoutRect) {\n                    layoutRect.copy(textConfig.layoutRect);\n                }\n                else {\n                    layoutRect.copy(this.getBoundingRect());\n                }\n                if (!isLocal) {\n                    layoutRect.applyTransform(this.transform);\n                }\n                if (this.calculateTextPosition) {\n                    this.calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\n                }\n                else {\n                    calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\n                }\n                attachedTransform.x = tmpTextPosCalcRes.x;\n                attachedTransform.y = tmpTextPosCalcRes.y;\n                textAlign = tmpTextPosCalcRes.align;\n                textVerticalAlign = tmpTextPosCalcRes.verticalAlign;\n                var textOrigin = textConfig.origin;\n                if (textOrigin && textConfig.rotation != null) {\n                    var relOriginX = void 0;\n                    var relOriginY = void 0;\n                    if (textOrigin === 'center') {\n                        relOriginX = layoutRect.width * 0.5;\n                        relOriginY = layoutRect.height * 0.5;\n                    }\n                    else {\n                        relOriginX = parsePercent(textOrigin[0], layoutRect.width);\n                        relOriginY = parsePercent(textOrigin[1], layoutRect.height);\n                    }\n                    innerOrigin = true;\n                    attachedTransform.originX = -attachedTransform.x + relOriginX + (isLocal ? 0 : layoutRect.x);\n                    attachedTransform.originY = -attachedTransform.y + relOriginY + (isLocal ? 0 : layoutRect.y);\n                }\n            }\n            if (textConfig.rotation != null) {\n                attachedTransform.rotation = textConfig.rotation;\n            }\n            var textOffset = textConfig.offset;\n            if (textOffset) {\n                attachedTransform.x += textOffset[0];\n                attachedTransform.y += textOffset[1];\n                if (!innerOrigin) {\n                    attachedTransform.originX = -textOffset[0];\n                    attachedTransform.originY = -textOffset[1];\n                }\n            }\n            var isInside = textConfig.inside == null\n                ? (typeof textConfig.position === 'string' && textConfig.position.indexOf('inside') >= 0)\n                : textConfig.inside;\n            var innerTextDefaultStyle = this._innerTextDefaultStyle || (this._innerTextDefaultStyle = {});\n            var textFill = void 0;\n            var textStroke = void 0;\n            var autoStroke = void 0;\n            if (isInside && this.canBeInsideText()) {\n                textFill = textConfig.insideFill;\n                textStroke = textConfig.insideStroke;\n                if (textFill == null || textFill === 'auto') {\n                    textFill = this.getInsideTextFill();\n                }\n                if (textStroke == null || textStroke === 'auto') {\n                    textStroke = this.getInsideTextStroke(textFill);\n                    autoStroke = true;\n                }\n            }\n            else {\n                textFill = textConfig.outsideFill;\n                textStroke = textConfig.outsideStroke;\n                if (textFill == null || textFill === 'auto') {\n                    textFill = this.getOutsideFill();\n                }\n                if (textStroke == null || textStroke === 'auto') {\n                    textStroke = this.getOutsideStroke(textFill);\n                    autoStroke = true;\n                }\n            }\n            textFill = textFill || '#000';\n            if (textFill !== innerTextDefaultStyle.fill\n                || textStroke !== innerTextDefaultStyle.stroke\n                || autoStroke !== innerTextDefaultStyle.autoStroke\n                || textAlign !== innerTextDefaultStyle.align\n                || textVerticalAlign !== innerTextDefaultStyle.verticalAlign) {\n                textStyleChanged = true;\n                innerTextDefaultStyle.fill = textFill;\n                innerTextDefaultStyle.stroke = textStroke;\n                innerTextDefaultStyle.autoStroke = autoStroke;\n                innerTextDefaultStyle.align = textAlign;\n                innerTextDefaultStyle.verticalAlign = textVerticalAlign;\n                textEl.setDefaultTextStyle(innerTextDefaultStyle);\n            }\n            if (textStyleChanged) {\n                textEl.dirtyStyle();\n            }\n            textEl.markRedraw();\n        }\n    };\n    Element.prototype.canBeInsideText = function () {\n        return true;\n    };\n    Element.prototype.getInsideTextFill = function () {\n        return '#fff';\n    };\n    Element.prototype.getInsideTextStroke = function (textFill) {\n        return '#000';\n    };\n    Element.prototype.getOutsideFill = function () {\n        return this.__zr && this.__zr.isDarkMode() ? LIGHT_LABEL_COLOR : DARK_LABEL_COLOR;\n    };\n    Element.prototype.getOutsideStroke = function (textFill) {\n        var backgroundColor = this.__zr && this.__zr.getBackgroundColor();\n        var colorArr = typeof backgroundColor === 'string' && parse(backgroundColor);\n        if (!colorArr) {\n            colorArr = [255, 255, 255, 1];\n        }\n        var alpha = colorArr[3];\n        var isDark = this.__zr.isDarkMode();\n        for (var i = 0; i < 3; i++) {\n            colorArr[i] = colorArr[i] * alpha + (isDark ? 0 : 255) * (1 - alpha);\n        }\n        colorArr[3] = 1;\n        return stringify(colorArr, 'rgba');\n    };\n    Element.prototype.traverse = function (cb, context) { };\n    Element.prototype.attrKV = function (key, value) {\n        if (key === 'textConfig') {\n            this.setTextConfig(value);\n        }\n        else if (key === 'textContent') {\n            this.setTextContent(value);\n        }\n        else if (key === 'clipPath') {\n            this.setClipPath(value);\n        }\n        else if (key === 'extra') {\n            this.extra = this.extra || {};\n            extend(this.extra, value);\n        }\n        else {\n            this[key] = value;\n        }\n    };\n    Element.prototype.hide = function () {\n        this.ignore = true;\n        this.markRedraw();\n    };\n    Element.prototype.show = function () {\n        this.ignore = false;\n        this.markRedraw();\n    };\n    Element.prototype.attr = function (keyOrObj, value) {\n        if (typeof keyOrObj === 'string') {\n            this.attrKV(keyOrObj, value);\n        }\n        else if (isObject(keyOrObj)) {\n            var obj = keyOrObj;\n            var keysArr = keys(obj);\n            for (var i = 0; i < keysArr.length; i++) {\n                var key = keysArr[i];\n                this.attrKV(key, keyOrObj[key]);\n            }\n        }\n        this.markRedraw();\n        return this;\n    };\n    Element.prototype.saveCurrentToNormalState = function (toState) {\n        this._innerSaveToNormal(toState);\n        var normalState = this._normalState;\n        for (var i = 0; i < this.animators.length; i++) {\n            var animator = this.animators[i];\n            var fromStateTransition = animator.__fromStateTransition;\n            if (fromStateTransition && fromStateTransition !== PRESERVED_NORMAL_STATE) {\n                continue;\n            }\n            var targetName = animator.targetName;\n            var target = targetName\n                ? normalState[targetName] : normalState;\n            animator.saveFinalToTarget(target);\n        }\n    };\n    Element.prototype._innerSaveToNormal = function (toState) {\n        var normalState = this._normalState;\n        if (!normalState) {\n            normalState = this._normalState = {};\n        }\n        if (toState.textConfig && !normalState.textConfig) {\n            normalState.textConfig = this.textConfig;\n        }\n        this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS);\n    };\n    Element.prototype._savePrimaryToNormal = function (toState, normalState, primaryKeys) {\n        for (var i = 0; i < primaryKeys.length; i++) {\n            var key = primaryKeys[i];\n            if (toState[key] != null && !(key in normalState)) {\n                normalState[key] = this[key];\n            }\n        }\n    };\n    Element.prototype.hasState = function () {\n        return this.currentStates.length > 0;\n    };\n    Element.prototype.getState = function (name) {\n        return this.states[name];\n    };\n    Element.prototype.ensureState = function (name) {\n        var states = this.states;\n        if (!states[name]) {\n            states[name] = {};\n        }\n        return states[name];\n    };\n    Element.prototype.clearStates = function (noAnimation) {\n        this.useState(PRESERVED_NORMAL_STATE, false, noAnimation);\n    };\n    Element.prototype.useState = function (stateName, keepCurrentStates, noAnimation) {\n        var toNormalState = stateName === PRESERVED_NORMAL_STATE;\n        var hasStates = this.hasState();\n        if (!hasStates && toNormalState) {\n            return;\n        }\n        var currentStates = this.currentStates;\n        var animationCfg = this.stateTransition;\n        if (indexOf(currentStates, stateName) >= 0 && (keepCurrentStates || currentStates.length === 1)) {\n            return;\n        }\n        var state;\n        if (this.stateProxy && !toNormalState) {\n            state = this.stateProxy(stateName);\n        }\n        if (!state) {\n            state = (this.states && this.states[stateName]);\n        }\n        if (!state && !toNormalState) {\n            logError(\"State \" + stateName + \" not exists.\");\n            return;\n        }\n        if (!toNormalState) {\n            this.saveCurrentToNormalState(state);\n        }\n        var useHoverLayer = !!(state && state.hoverLayer);\n        if (useHoverLayer) {\n            this._toggleHoverLayerFlag(true);\n        }\n        this._applyStateObj(stateName, state, this._normalState, keepCurrentStates, !noAnimation && !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\n        if (this._textContent) {\n            this._textContent.useState(stateName, keepCurrentStates);\n        }\n        if (this._textGuide) {\n            this._textGuide.useState(stateName, keepCurrentStates);\n        }\n        if (toNormalState) {\n            this.currentStates = [];\n            this._normalState = {};\n        }\n        else {\n            if (!keepCurrentStates) {\n                this.currentStates = [stateName];\n            }\n            else {\n                this.currentStates.push(stateName);\n            }\n        }\n        this._updateAnimationTargets();\n        this.markRedraw();\n        if (!useHoverLayer && this.__inHover) {\n            this._toggleHoverLayerFlag(false);\n            this.__dirty &= ~Element.REDARAW_BIT;\n        }\n        return state;\n    };\n    Element.prototype.useStates = function (states, noAnimation) {\n        if (!states.length) {\n            this.clearStates();\n        }\n        else {\n            var stateObjects = [];\n            var currentStates = this.currentStates;\n            var len = states.length;\n            var notChange = len === currentStates.length;\n            if (notChange) {\n                for (var i = 0; i < len; i++) {\n                    if (states[i] !== currentStates[i]) {\n                        notChange = false;\n                        break;\n                    }\n                }\n            }\n            if (notChange) {\n                return;\n            }\n            for (var i = 0; i < len; i++) {\n                var stateName = states[i];\n                var stateObj = void 0;\n                if (this.stateProxy) {\n                    stateObj = this.stateProxy(stateName, states);\n                }\n                if (!stateObj) {\n                    stateObj = this.states[stateName];\n                }\n                if (stateObj) {\n                    stateObjects.push(stateObj);\n                }\n            }\n            var useHoverLayer = !!(stateObjects[len - 1] && stateObjects[len - 1].hoverLayer);\n            if (useHoverLayer) {\n                this._toggleHoverLayerFlag(true);\n            }\n            var mergedState = this._mergeStates(stateObjects);\n            var animationCfg = this.stateTransition;\n            this.saveCurrentToNormalState(mergedState);\n            this._applyStateObj(states.join(','), mergedState, this._normalState, false, !noAnimation && !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\n            if (this._textContent) {\n                this._textContent.useStates(states);\n            }\n            if (this._textGuide) {\n                this._textGuide.useStates(states);\n            }\n            this._updateAnimationTargets();\n            this.currentStates = states.slice();\n            this.markRedraw();\n            if (!useHoverLayer && this.__inHover) {\n                this._toggleHoverLayerFlag(false);\n                this.__dirty &= ~Element.REDARAW_BIT;\n            }\n        }\n    };\n    Element.prototype._updateAnimationTargets = function () {\n        for (var i = 0; i < this.animators.length; i++) {\n            var animator = this.animators[i];\n            if (animator.targetName) {\n                animator.changeTarget(this[animator.targetName]);\n            }\n        }\n    };\n    Element.prototype.removeState = function (state) {\n        var idx = indexOf(this.currentStates, state);\n        if (idx >= 0) {\n            var currentStates = this.currentStates.slice();\n            currentStates.splice(idx, 1);\n            this.useStates(currentStates);\n        }\n    };\n    Element.prototype.replaceState = function (oldState, newState, forceAdd) {\n        var currentStates = this.currentStates.slice();\n        var idx = indexOf(currentStates, oldState);\n        var newStateExists = indexOf(currentStates, newState) >= 0;\n        if (idx >= 0) {\n            if (!newStateExists) {\n                currentStates[idx] = newState;\n            }\n            else {\n                currentStates.splice(idx, 1);\n            }\n        }\n        else if (forceAdd && !newStateExists) {\n            currentStates.push(newState);\n        }\n        this.useStates(currentStates);\n    };\n    Element.prototype.toggleState = function (state, enable) {\n        if (enable) {\n            this.useState(state, true);\n        }\n        else {\n            this.removeState(state);\n        }\n    };\n    Element.prototype._mergeStates = function (states) {\n        var mergedState = {};\n        var mergedTextConfig;\n        for (var i = 0; i < states.length; i++) {\n            var state = states[i];\n            extend(mergedState, state);\n            if (state.textConfig) {\n                mergedTextConfig = mergedTextConfig || {};\n                extend(mergedTextConfig, state.textConfig);\n            }\n        }\n        if (mergedTextConfig) {\n            mergedState.textConfig = mergedTextConfig;\n        }\n        return mergedState;\n    };\n    Element.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\n        var needsRestoreToNormal = !(state && keepCurrentStates);\n        if (state && state.textConfig) {\n            this.textConfig = extend({}, keepCurrentStates ? this.textConfig : normalState.textConfig);\n            extend(this.textConfig, state.textConfig);\n        }\n        else if (needsRestoreToNormal) {\n            if (normalState.textConfig) {\n                this.textConfig = normalState.textConfig;\n            }\n        }\n        var transitionTarget = {};\n        var hasTransition = false;\n        for (var i = 0; i < PRIMARY_STATES_KEYS.length; i++) {\n            var key = PRIMARY_STATES_KEYS[i];\n            var propNeedsTransition = transition && DEFAULT_ANIMATABLE_MAP[key];\n            if (state && state[key] != null) {\n                if (propNeedsTransition) {\n                    hasTransition = true;\n                    transitionTarget[key] = state[key];\n                }\n                else {\n                    this[key] = state[key];\n                }\n            }\n            else if (needsRestoreToNormal) {\n                if (normalState[key] != null) {\n                    if (propNeedsTransition) {\n                        hasTransition = true;\n                        transitionTarget[key] = normalState[key];\n                    }\n                    else {\n                        this[key] = normalState[key];\n                    }\n                }\n            }\n        }\n        if (!transition) {\n            for (var i = 0; i < this.animators.length; i++) {\n                var animator = this.animators[i];\n                var targetName = animator.targetName;\n                animator.__changeFinalValue(targetName\n                    ? (state || normalState)[targetName]\n                    : (state || normalState));\n            }\n        }\n        if (hasTransition) {\n            this._transitionState(stateName, transitionTarget, animationCfg);\n        }\n    };\n    Element.prototype._attachComponent = function (componentEl) {\n        if (componentEl.__zr && !componentEl.__hostTarget) {\n            throw new Error('Text element has been added to zrender.');\n        }\n        if (componentEl === this) {\n            throw new Error('Recursive component attachment.');\n        }\n        var zr = this.__zr;\n        if (zr) {\n            componentEl.addSelfToZr(zr);\n        }\n        componentEl.__zr = zr;\n        componentEl.__hostTarget = this;\n    };\n    Element.prototype._detachComponent = function (componentEl) {\n        if (componentEl.__zr) {\n            componentEl.removeSelfFromZr(componentEl.__zr);\n        }\n        componentEl.__zr = null;\n        componentEl.__hostTarget = null;\n    };\n    Element.prototype.getClipPath = function () {\n        return this._clipPath;\n    };\n    Element.prototype.setClipPath = function (clipPath) {\n        if (this._clipPath && this._clipPath !== clipPath) {\n            this.removeClipPath();\n        }\n        this._attachComponent(clipPath);\n        this._clipPath = clipPath;\n        this.markRedraw();\n    };\n    Element.prototype.removeClipPath = function () {\n        var clipPath = this._clipPath;\n        if (clipPath) {\n            this._detachComponent(clipPath);\n            this._clipPath = null;\n            this.markRedraw();\n        }\n    };\n    Element.prototype.getTextContent = function () {\n        return this._textContent;\n    };\n    Element.prototype.setTextContent = function (textEl) {\n        var previousTextContent = this._textContent;\n        if (previousTextContent === textEl) {\n            return;\n        }\n        if (previousTextContent && previousTextContent !== textEl) {\n            this.removeTextContent();\n        }\n        if (textEl.__zr && !textEl.__hostTarget) {\n            throw new Error('Text element has been added to zrender.');\n        }\n        textEl.attachedTransform = new Transformable();\n        this._attachComponent(textEl);\n        this._textContent = textEl;\n        this.markRedraw();\n    };\n    Element.prototype.setTextConfig = function (cfg) {\n        if (!this.textConfig) {\n            this.textConfig = {};\n        }\n        extend(this.textConfig, cfg);\n        this.markRedraw();\n    };\n    Element.prototype.removeTextContent = function () {\n        var textEl = this._textContent;\n        if (textEl) {\n            textEl.attachedTransform = null;\n            this._detachComponent(textEl);\n            this._textContent = null;\n            this._innerTextDefaultStyle = null;\n            this.markRedraw();\n        }\n    };\n    Element.prototype.getTextGuideLine = function () {\n        return this._textGuide;\n    };\n    Element.prototype.setTextGuideLine = function (guideLine) {\n        if (this._textGuide && this._textGuide !== guideLine) {\n            this.removeTextGuideLine();\n        }\n        this._attachComponent(guideLine);\n        this._textGuide = guideLine;\n        this.markRedraw();\n    };\n    Element.prototype.removeTextGuideLine = function () {\n        var textGuide = this._textGuide;\n        if (textGuide) {\n            this._detachComponent(textGuide);\n            this._textGuide = null;\n            this.markRedraw();\n        }\n    };\n    Element.prototype.markRedraw = function () {\n        this.__dirty |= Element.REDARAW_BIT;\n        var zr = this.__zr;\n        if (zr) {\n            if (this.__inHover) {\n                zr.refreshHover();\n            }\n            else {\n                zr.refresh();\n            }\n        }\n        if (this.__hostTarget) {\n            this.__hostTarget.markRedraw();\n        }\n    };\n    Element.prototype.dirty = function () {\n        this.markRedraw();\n    };\n    Element.prototype._toggleHoverLayerFlag = function (inHover) {\n        this.__inHover = inHover;\n        var textContent = this._textContent;\n        var textGuide = this._textGuide;\n        if (textContent) {\n            textContent.__inHover = inHover;\n        }\n        if (textGuide) {\n            textGuide.__inHover = inHover;\n        }\n    };\n    Element.prototype.addSelfToZr = function (zr) {\n        this.__zr = zr;\n        var animators = this.animators;\n        if (animators) {\n            for (var i = 0; i < animators.length; i++) {\n                zr.animation.addAnimator(animators[i]);\n            }\n        }\n        if (this._clipPath) {\n            this._clipPath.addSelfToZr(zr);\n        }\n        if (this._textContent) {\n            this._textContent.addSelfToZr(zr);\n        }\n        if (this._textGuide) {\n            this._textGuide.addSelfToZr(zr);\n        }\n    };\n    Element.prototype.removeSelfFromZr = function (zr) {\n        this.__zr = null;\n        var animators = this.animators;\n        if (animators) {\n            for (var i = 0; i < animators.length; i++) {\n                zr.animation.removeAnimator(animators[i]);\n            }\n        }\n        if (this._clipPath) {\n            this._clipPath.removeSelfFromZr(zr);\n        }\n        if (this._textContent) {\n            this._textContent.removeSelfFromZr(zr);\n        }\n        if (this._textGuide) {\n            this._textGuide.removeSelfFromZr(zr);\n        }\n    };\n    Element.prototype.animate = function (key, loop) {\n        var target = key ? this[key] : this;\n        if (!target) {\n            logError('Property \"'\n                + key\n                + '\" is not existed in element '\n                + this.id);\n            return;\n        }\n        var animator = new Animator(target, loop);\n        this.addAnimator(animator, key);\n        return animator;\n    };\n    Element.prototype.addAnimator = function (animator, key) {\n        var zr = this.__zr;\n        var el = this;\n        animator.during(function () {\n            el.updateDuringAnimation(key);\n        }).done(function () {\n            var animators = el.animators;\n            var idx = indexOf(animators, animator);\n            if (idx >= 0) {\n                animators.splice(idx, 1);\n            }\n        });\n        this.animators.push(animator);\n        if (zr) {\n            zr.animation.addAnimator(animator);\n        }\n        zr && zr.wakeUp();\n    };\n    Element.prototype.updateDuringAnimation = function (key) {\n        this.markRedraw();\n    };\n    Element.prototype.stopAnimation = function (scope, forwardToLast) {\n        var animators = this.animators;\n        var len = animators.length;\n        var leftAnimators = [];\n        for (var i = 0; i < len; i++) {\n            var animator = animators[i];\n            if (!scope || scope === animator.scope) {\n                animator.stop(forwardToLast);\n            }\n            else {\n                leftAnimators.push(animator);\n            }\n        }\n        this.animators = leftAnimators;\n        return this;\n    };\n    Element.prototype.animateTo = function (target, cfg, animationProps) {\n        animateTo(this, target, cfg, animationProps);\n    };\n    Element.prototype.animateFrom = function (target, cfg, animationProps) {\n        animateTo(this, target, cfg, animationProps, true);\n    };\n    Element.prototype._transitionState = function (stateName, target, cfg, animationProps) {\n        var animators = animateTo(this, target, cfg, animationProps);\n        for (var i = 0; i < animators.length; i++) {\n            animators[i].__fromStateTransition = stateName;\n        }\n    };\n    Element.prototype.getBoundingRect = function () {\n        return null;\n    };\n    Element.prototype.getPaintRect = function () {\n        return null;\n    };\n    Element.REDARAW_BIT = 1;\n    Element.initDefaultProps = (function () {\n        var elProto = Element.prototype;\n        elProto.type = 'element';\n        elProto.name = '';\n        elProto.ignore = false;\n        elProto.silent = false;\n        elProto.isGroup = false;\n        elProto.draggable = false;\n        elProto.dragging = false;\n        elProto.ignoreClip = false;\n        elProto.__inHover = false;\n        elProto.__dirty = Element.REDARAW_BIT;\n        var logs = {};\n        function logDeprecatedError(key, xKey, yKey) {\n            if (!logs[key + xKey + yKey]) {\n                console.warn(\"DEPRECATED: '\" + key + \"' has been deprecated. use '\" + xKey + \"', '\" + yKey + \"' instead\");\n                logs[key + xKey + yKey] = true;\n            }\n        }\n        function createLegacyProperty(key, privateKey, xKey, yKey) {\n            Object.defineProperty(elProto, key, {\n                get: function () {\n                    logDeprecatedError(key, xKey, yKey);\n                    if (!this[privateKey]) {\n                        var pos = this[privateKey] = [];\n                        enhanceArray(this, pos);\n                    }\n                    return this[privateKey];\n                },\n                set: function (pos) {\n                    logDeprecatedError(key, xKey, yKey);\n                    this[xKey] = pos[0];\n                    this[yKey] = pos[1];\n                    this[privateKey] = pos;\n                    enhanceArray(this, pos);\n                }\n            });\n            function enhanceArray(self, pos) {\n                Object.defineProperty(pos, 0, {\n                    get: function () {\n                        return self[xKey];\n                    },\n                    set: function (val) {\n                        self[xKey] = val;\n                    }\n                });\n                Object.defineProperty(pos, 1, {\n                    get: function () {\n                        return self[yKey];\n                    },\n                    set: function (val) {\n                        self[yKey] = val;\n                    }\n                });\n            }\n        }\n        if (Object.defineProperty && (!env.browser.ie || env.browser.version > 8)) {\n            createLegacyProperty('position', '_legacyPos', 'x', 'y');\n            createLegacyProperty('scale', '_legacyScale', 'scaleX', 'scaleY');\n            createLegacyProperty('origin', '_legacyOrigin', 'originX', 'originY');\n        }\n    })();\n    return Element;\n}());\nmixin(Element, Eventful);\nmixin(Element, Transformable);\nfunction animateTo(animatable, target, cfg, animationProps, reverse) {\n    cfg = cfg || {};\n    var animators = [];\n    animateToShallow(animatable, '', animatable, target, cfg, animationProps, animators, reverse);\n    var finishCount = animators.length;\n    var doneHappened = false;\n    var cfgDone = cfg.done;\n    var cfgAborted = cfg.aborted;\n    var doneCb = function () {\n        doneHappened = true;\n        finishCount--;\n        if (finishCount <= 0) {\n            doneHappened\n                ? (cfgDone && cfgDone())\n                : (cfgAborted && cfgAborted());\n        }\n    };\n    var abortedCb = function () {\n        finishCount--;\n        if (finishCount <= 0) {\n            doneHappened\n                ? (cfgDone && cfgDone())\n                : (cfgAborted && cfgAborted());\n        }\n    };\n    if (!finishCount) {\n        cfgDone && cfgDone();\n    }\n    if (animators.length > 0 && cfg.during) {\n        animators[0].during(function (target, percent) {\n            cfg.during(percent);\n        });\n    }\n    for (var i = 0; i < animators.length; i++) {\n        var animator = animators[i];\n        if (doneCb) {\n            animator.done(doneCb);\n        }\n        if (abortedCb) {\n            animator.aborted(abortedCb);\n        }\n        animator.start(cfg.easing, cfg.force);\n    }\n    return animators;\n}\nfunction copyArrShallow(source, target, len) {\n    for (var i = 0; i < len; i++) {\n        source[i] = target[i];\n    }\n}\nfunction is2DArray(value) {\n    return isArrayLike(value[0]);\n}\nfunction copyValue(target, source, key) {\n    if (isArrayLike(source[key])) {\n        if (!isArrayLike(target[key])) {\n            target[key] = [];\n        }\n        if (isTypedArray(source[key])) {\n            var len = source[key].length;\n            if (target[key].length !== len) {\n                target[key] = new (source[key].constructor)(len);\n                copyArrShallow(target[key], source[key], len);\n            }\n        }\n        else {\n            var sourceArr = source[key];\n            var targetArr = target[key];\n            var len0 = sourceArr.length;\n            if (is2DArray(sourceArr)) {\n                var len1 = sourceArr[0].length;\n                for (var i = 0; i < len0; i++) {\n                    if (!targetArr[i]) {\n                        targetArr[i] = Array.prototype.slice.call(sourceArr[i]);\n                    }\n                    else {\n                        copyArrShallow(targetArr[i], sourceArr[i], len1);\n                    }\n                }\n            }\n            else {\n                copyArrShallow(targetArr, sourceArr, len0);\n            }\n            targetArr.length = sourceArr.length;\n        }\n    }\n    else {\n        target[key] = source[key];\n    }\n}\nfunction animateToShallow(animatable, topKey, source, target, cfg, animationProps, animators, reverse) {\n    var animatableKeys = [];\n    var changedKeys = [];\n    var targetKeys = keys(target);\n    var duration = cfg.duration;\n    var delay = cfg.delay;\n    var additive = cfg.additive;\n    var setToFinal = cfg.setToFinal;\n    var animateAll = !isObject(animationProps);\n    for (var k = 0; k < targetKeys.length; k++) {\n        var innerKey = targetKeys[k];\n        if (source[innerKey] != null\n            && target[innerKey] != null\n            && (animateAll || animationProps[innerKey])) {\n            if (isObject(target[innerKey]) && !isArrayLike(target[innerKey])) {\n                if (topKey) {\n                    if (!reverse) {\n                        source[innerKey] = target[innerKey];\n                        animatable.updateDuringAnimation(topKey);\n                    }\n                    continue;\n                }\n                animateToShallow(animatable, innerKey, source[innerKey], target[innerKey], cfg, animationProps && animationProps[innerKey], animators, reverse);\n            }\n            else {\n                animatableKeys.push(innerKey);\n                changedKeys.push(innerKey);\n            }\n        }\n        else if (!reverse) {\n            source[innerKey] = target[innerKey];\n            animatable.updateDuringAnimation(topKey);\n            changedKeys.push(innerKey);\n        }\n    }\n    var keyLen = animatableKeys.length;\n    if (keyLen > 0\n        || (cfg.force && !animators.length)) {\n        var existsAnimators = animatable.animators;\n        var existsAnimatorsOnSameTarget = [];\n        for (var i = 0; i < existsAnimators.length; i++) {\n            if (existsAnimators[i].targetName === topKey) {\n                existsAnimatorsOnSameTarget.push(existsAnimators[i]);\n            }\n        }\n        if (!additive && existsAnimatorsOnSameTarget.length) {\n            for (var i = 0; i < existsAnimatorsOnSameTarget.length; i++) {\n                var allAborted = existsAnimatorsOnSameTarget[i].stopTracks(changedKeys);\n                if (allAborted) {\n                    var idx = indexOf(existsAnimators, existsAnimatorsOnSameTarget[i]);\n                    existsAnimators.splice(idx, 1);\n                }\n            }\n        }\n        var revertedSource = void 0;\n        var reversedTarget = void 0;\n        var sourceClone = void 0;\n        if (reverse) {\n            reversedTarget = {};\n            if (setToFinal) {\n                revertedSource = {};\n            }\n            for (var i = 0; i < keyLen; i++) {\n                var innerKey = animatableKeys[i];\n                reversedTarget[innerKey] = source[innerKey];\n                if (setToFinal) {\n                    revertedSource[innerKey] = target[innerKey];\n                }\n                else {\n                    source[innerKey] = target[innerKey];\n                }\n            }\n        }\n        else if (setToFinal) {\n            sourceClone = {};\n            for (var i = 0; i < keyLen; i++) {\n                var innerKey = animatableKeys[i];\n                sourceClone[innerKey] = cloneValue(source[innerKey]);\n                copyValue(source, target, innerKey);\n            }\n        }\n        var animator = new Animator(source, false, additive ? existsAnimatorsOnSameTarget : null);\n        animator.targetName = topKey;\n        if (cfg.scope) {\n            animator.scope = cfg.scope;\n        }\n        if (setToFinal && revertedSource) {\n            animator.whenWithKeys(0, revertedSource, animatableKeys);\n        }\n        if (sourceClone) {\n            animator.whenWithKeys(0, sourceClone, animatableKeys);\n        }\n        animator.whenWithKeys(duration == null ? 500 : duration, reverse ? reversedTarget : target, animatableKeys).delay(delay || 0);\n        animatable.addAnimator(animator, topKey);\n        animators.push(animator);\n    }\n}\nexport default Element;\n","var DEFAULT_MIN_MERGE = 32;\nvar DEFAULT_MIN_GALLOPING = 7;\nvar DEFAULT_TMP_STORAGE_LENGTH = 256;\nfunction minRunLength(n) {\n    var r = 0;\n    while (n >= DEFAULT_MIN_MERGE) {\n        r |= n & 1;\n        n >>= 1;\n    }\n    return n + r;\n}\nfunction makeAscendingRun(array, lo, hi, compare) {\n    var runHi = lo + 1;\n    if (runHi === hi) {\n        return 1;\n    }\n    if (compare(array[runHi++], array[lo]) < 0) {\n        while (runHi < hi && compare(array[runHi], array[runHi - 1]) < 0) {\n            runHi++;\n        }\n        reverseRun(array, lo, runHi);\n    }\n    else {\n        while (runHi < hi && compare(array[runHi], array[runHi - 1]) >= 0) {\n            runHi++;\n        }\n    }\n    return runHi - lo;\n}\nfunction reverseRun(array, lo, hi) {\n    hi--;\n    while (lo < hi) {\n        var t = array[lo];\n        array[lo++] = array[hi];\n        array[hi--] = t;\n    }\n}\nfunction binaryInsertionSort(array, lo, hi, start, compare) {\n    if (start === lo) {\n        start++;\n    }\n    for (; start < hi; start++) {\n        var pivot = array[start];\n        var left = lo;\n        var right = start;\n        var mid;\n        while (left < right) {\n            mid = left + right >>> 1;\n            if (compare(pivot, array[mid]) < 0) {\n                right = mid;\n            }\n            else {\n                left = mid + 1;\n            }\n        }\n        var n = start - left;\n        switch (n) {\n            case 3:\n                array[left + 3] = array[left + 2];\n            case 2:\n                array[left + 2] = array[left + 1];\n            case 1:\n                array[left + 1] = array[left];\n                break;\n            default:\n                while (n > 0) {\n                    array[left + n] = array[left + n - 1];\n                    n--;\n                }\n        }\n        array[left] = pivot;\n    }\n}\nfunction gallopLeft(value, array, start, length, hint, compare) {\n    var lastOffset = 0;\n    var maxOffset = 0;\n    var offset = 1;\n    if (compare(value, array[start + hint]) > 0) {\n        maxOffset = length - hint;\n        while (offset < maxOffset && compare(value, array[start + hint + offset]) > 0) {\n            lastOffset = offset;\n            offset = (offset << 1) + 1;\n            if (offset <= 0) {\n                offset = maxOffset;\n            }\n        }\n        if (offset > maxOffset) {\n            offset = maxOffset;\n        }\n        lastOffset += hint;\n        offset += hint;\n    }\n    else {\n        maxOffset = hint + 1;\n        while (offset < maxOffset && compare(value, array[start + hint - offset]) <= 0) {\n            lastOffset = offset;\n            offset = (offset << 1) + 1;\n            if (offset <= 0) {\n                offset = maxOffset;\n            }\n        }\n        if (offset > maxOffset) {\n            offset = maxOffset;\n        }\n        var tmp = lastOffset;\n        lastOffset = hint - offset;\n        offset = hint - tmp;\n    }\n    lastOffset++;\n    while (lastOffset < offset) {\n        var m = lastOffset + (offset - lastOffset >>> 1);\n        if (compare(value, array[start + m]) > 0) {\n            lastOffset = m + 1;\n        }\n        else {\n            offset = m;\n        }\n    }\n    return offset;\n}\nfunction gallopRight(value, array, start, length, hint, compare) {\n    var lastOffset = 0;\n    var maxOffset = 0;\n    var offset = 1;\n    if (compare(value, array[start + hint]) < 0) {\n        maxOffset = hint + 1;\n        while (offset < maxOffset && compare(value, array[start + hint - offset]) < 0) {\n            lastOffset = offset;\n            offset = (offset << 1) + 1;\n            if (offset <= 0) {\n                offset = maxOffset;\n            }\n        }\n        if (offset > maxOffset) {\n            offset = maxOffset;\n        }\n        var tmp = lastOffset;\n        lastOffset = hint - offset;\n        offset = hint - tmp;\n    }\n    else {\n        maxOffset = length - hint;\n        while (offset < maxOffset && compare(value, array[start + hint + offset]) >= 0) {\n            lastOffset = offset;\n            offset = (offset << 1) + 1;\n            if (offset <= 0) {\n                offset = maxOffset;\n            }\n        }\n        if (offset > maxOffset) {\n            offset = maxOffset;\n        }\n        lastOffset += hint;\n        offset += hint;\n    }\n    lastOffset++;\n    while (lastOffset < offset) {\n        var m = lastOffset + (offset - lastOffset >>> 1);\n        if (compare(value, array[start + m]) < 0) {\n            offset = m;\n        }\n        else {\n            lastOffset = m + 1;\n        }\n    }\n    return offset;\n}\nfunction TimSort(array, compare) {\n    var minGallop = DEFAULT_MIN_GALLOPING;\n    var length = 0;\n    var tmpStorageLength = DEFAULT_TMP_STORAGE_LENGTH;\n    var stackLength = 0;\n    var runStart;\n    var runLength;\n    var stackSize = 0;\n    length = array.length;\n    if (length < 2 * DEFAULT_TMP_STORAGE_LENGTH) {\n        tmpStorageLength = length >>> 1;\n    }\n    var tmp = [];\n    stackLength = length < 120 ? 5 : length < 1542 ? 10 : length < 119151 ? 19 : 40;\n    runStart = [];\n    runLength = [];\n    function pushRun(_runStart, _runLength) {\n        runStart[stackSize] = _runStart;\n        runLength[stackSize] = _runLength;\n        stackSize += 1;\n    }\n    function mergeRuns() {\n        while (stackSize > 1) {\n            var n = stackSize - 2;\n            if ((n >= 1 && runLength[n - 1] <= runLength[n] + runLength[n + 1])\n                || (n >= 2 && runLength[n - 2] <= runLength[n] + runLength[n - 1])) {\n                if (runLength[n - 1] < runLength[n + 1]) {\n                    n--;\n                }\n            }\n            else if (runLength[n] > runLength[n + 1]) {\n                break;\n            }\n            mergeAt(n);\n        }\n    }\n    function forceMergeRuns() {\n        while (stackSize > 1) {\n            var n = stackSize - 2;\n            if (n > 0 && runLength[n - 1] < runLength[n + 1]) {\n                n--;\n            }\n            mergeAt(n);\n        }\n    }\n    function mergeAt(i) {\n        var start1 = runStart[i];\n        var length1 = runLength[i];\n        var start2 = runStart[i + 1];\n        var length2 = runLength[i + 1];\n        runLength[i] = length1 + length2;\n        if (i === stackSize - 3) {\n            runStart[i + 1] = runStart[i + 2];\n            runLength[i + 1] = runLength[i + 2];\n        }\n        stackSize--;\n        var k = gallopRight(array[start2], array, start1, length1, 0, compare);\n        start1 += k;\n        length1 -= k;\n        if (length1 === 0) {\n            return;\n        }\n        length2 = gallopLeft(array[start1 + length1 - 1], array, start2, length2, length2 - 1, compare);\n        if (length2 === 0) {\n            return;\n        }\n        if (length1 <= length2) {\n            mergeLow(start1, length1, start2, length2);\n        }\n        else {\n            mergeHigh(start1, length1, start2, length2);\n        }\n    }\n    function mergeLow(start1, length1, start2, length2) {\n        var i = 0;\n        for (i = 0; i < length1; i++) {\n            tmp[i] = array[start1 + i];\n        }\n        var cursor1 = 0;\n        var cursor2 = start2;\n        var dest = start1;\n        array[dest++] = array[cursor2++];\n        if (--length2 === 0) {\n            for (i = 0; i < length1; i++) {\n                array[dest + i] = tmp[cursor1 + i];\n            }\n            return;\n        }\n        if (length1 === 1) {\n            for (i = 0; i < length2; i++) {\n                array[dest + i] = array[cursor2 + i];\n            }\n            array[dest + length2] = tmp[cursor1];\n            return;\n        }\n        var _minGallop = minGallop;\n        var count1;\n        var count2;\n        var exit;\n        while (1) {\n            count1 = 0;\n            count2 = 0;\n            exit = false;\n            do {\n                if (compare(array[cursor2], tmp[cursor1]) < 0) {\n                    array[dest++] = array[cursor2++];\n                    count2++;\n                    count1 = 0;\n                    if (--length2 === 0) {\n                        exit = true;\n                        break;\n                    }\n                }\n                else {\n                    array[dest++] = tmp[cursor1++];\n                    count1++;\n                    count2 = 0;\n                    if (--length1 === 1) {\n                        exit = true;\n                        break;\n                    }\n                }\n            } while ((count1 | count2) < _minGallop);\n            if (exit) {\n                break;\n            }\n            do {\n                count1 = gallopRight(array[cursor2], tmp, cursor1, length1, 0, compare);\n                if (count1 !== 0) {\n                    for (i = 0; i < count1; i++) {\n                        array[dest + i] = tmp[cursor1 + i];\n                    }\n                    dest += count1;\n                    cursor1 += count1;\n                    length1 -= count1;\n                    if (length1 <= 1) {\n                        exit = true;\n                        break;\n                    }\n                }\n                array[dest++] = array[cursor2++];\n                if (--length2 === 0) {\n                    exit = true;\n                    break;\n                }\n                count2 = gallopLeft(tmp[cursor1], array, cursor2, length2, 0, compare);\n                if (count2 !== 0) {\n                    for (i = 0; i < count2; i++) {\n                        array[dest + i] = array[cursor2 + i];\n                    }\n                    dest += count2;\n                    cursor2 += count2;\n                    length2 -= count2;\n                    if (length2 === 0) {\n                        exit = true;\n                        break;\n                    }\n                }\n                array[dest++] = tmp[cursor1++];\n                if (--length1 === 1) {\n                    exit = true;\n                    break;\n                }\n                _minGallop--;\n            } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\n            if (exit) {\n                break;\n            }\n            if (_minGallop < 0) {\n                _minGallop = 0;\n            }\n            _minGallop += 2;\n        }\n        minGallop = _minGallop;\n        minGallop < 1 && (minGallop = 1);\n        if (length1 === 1) {\n            for (i = 0; i < length2; i++) {\n                array[dest + i] = array[cursor2 + i];\n            }\n            array[dest + length2] = tmp[cursor1];\n        }\n        else if (length1 === 0) {\n            throw new Error();\n        }\n        else {\n            for (i = 0; i < length1; i++) {\n                array[dest + i] = tmp[cursor1 + i];\n            }\n        }\n    }\n    function mergeHigh(start1, length1, start2, length2) {\n        var i = 0;\n        for (i = 0; i < length2; i++) {\n            tmp[i] = array[start2 + i];\n        }\n        var cursor1 = start1 + length1 - 1;\n        var cursor2 = length2 - 1;\n        var dest = start2 + length2 - 1;\n        var customCursor = 0;\n        var customDest = 0;\n        array[dest--] = array[cursor1--];\n        if (--length1 === 0) {\n            customCursor = dest - (length2 - 1);\n            for (i = 0; i < length2; i++) {\n                array[customCursor + i] = tmp[i];\n            }\n            return;\n        }\n        if (length2 === 1) {\n            dest -= length1;\n            cursor1 -= length1;\n            customDest = dest + 1;\n            customCursor = cursor1 + 1;\n            for (i = length1 - 1; i >= 0; i--) {\n                array[customDest + i] = array[customCursor + i];\n            }\n            array[dest] = tmp[cursor2];\n            return;\n        }\n        var _minGallop = minGallop;\n        while (true) {\n            var count1 = 0;\n            var count2 = 0;\n            var exit = false;\n            do {\n                if (compare(tmp[cursor2], array[cursor1]) < 0) {\n                    array[dest--] = array[cursor1--];\n                    count1++;\n                    count2 = 0;\n                    if (--length1 === 0) {\n                        exit = true;\n                        break;\n                    }\n                }\n                else {\n                    array[dest--] = tmp[cursor2--];\n                    count2++;\n                    count1 = 0;\n                    if (--length2 === 1) {\n                        exit = true;\n                        break;\n                    }\n                }\n            } while ((count1 | count2) < _minGallop);\n            if (exit) {\n                break;\n            }\n            do {\n                count1 = length1 - gallopRight(tmp[cursor2], array, start1, length1, length1 - 1, compare);\n                if (count1 !== 0) {\n                    dest -= count1;\n                    cursor1 -= count1;\n                    length1 -= count1;\n                    customDest = dest + 1;\n                    customCursor = cursor1 + 1;\n                    for (i = count1 - 1; i >= 0; i--) {\n                        array[customDest + i] = array[customCursor + i];\n                    }\n                    if (length1 === 0) {\n                        exit = true;\n                        break;\n                    }\n                }\n                array[dest--] = tmp[cursor2--];\n                if (--length2 === 1) {\n                    exit = true;\n                    break;\n                }\n                count2 = length2 - gallopLeft(array[cursor1], tmp, 0, length2, length2 - 1, compare);\n                if (count2 !== 0) {\n                    dest -= count2;\n                    cursor2 -= count2;\n                    length2 -= count2;\n                    customDest = dest + 1;\n                    customCursor = cursor2 + 1;\n                    for (i = 0; i < count2; i++) {\n                        array[customDest + i] = tmp[customCursor + i];\n                    }\n                    if (length2 <= 1) {\n                        exit = true;\n                        break;\n                    }\n                }\n                array[dest--] = array[cursor1--];\n                if (--length1 === 0) {\n                    exit = true;\n                    break;\n                }\n                _minGallop--;\n            } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\n            if (exit) {\n                break;\n            }\n            if (_minGallop < 0) {\n                _minGallop = 0;\n            }\n            _minGallop += 2;\n        }\n        minGallop = _minGallop;\n        if (minGallop < 1) {\n            minGallop = 1;\n        }\n        if (length2 === 1) {\n            dest -= length1;\n            cursor1 -= length1;\n            customDest = dest + 1;\n            customCursor = cursor1 + 1;\n            for (i = length1 - 1; i >= 0; i--) {\n                array[customDest + i] = array[customCursor + i];\n            }\n            array[dest] = tmp[cursor2];\n        }\n        else if (length2 === 0) {\n            throw new Error();\n        }\n        else {\n            customCursor = dest - (length2 - 1);\n            for (i = 0; i < length2; i++) {\n                array[customCursor + i] = tmp[i];\n            }\n        }\n    }\n    return {\n        mergeRuns: mergeRuns,\n        forceMergeRuns: forceMergeRuns,\n        pushRun: pushRun\n    };\n}\nexport default function sort(array, compare, lo, hi) {\n    if (!lo) {\n        lo = 0;\n    }\n    if (!hi) {\n        hi = array.length;\n    }\n    var remaining = hi - lo;\n    if (remaining < 2) {\n        return;\n    }\n    var runLength = 0;\n    if (remaining < DEFAULT_MIN_MERGE) {\n        runLength = makeAscendingRun(array, lo, hi, compare);\n        binaryInsertionSort(array, lo, hi, lo + runLength, compare);\n        return;\n    }\n    var ts = TimSort(array, compare);\n    var minRun = minRunLength(remaining);\n    do {\n        runLength = makeAscendingRun(array, lo, hi, compare);\n        if (runLength < minRun) {\n            var force = remaining;\n            if (force > minRun) {\n                force = minRun;\n            }\n            binaryInsertionSort(array, lo, lo + force, lo + runLength, compare);\n            runLength = force;\n        }\n        ts.pushRun(lo, runLength);\n        ts.mergeRuns();\n        remaining -= runLength;\n        lo += runLength;\n    } while (remaining !== 0);\n    ts.forceMergeRuns();\n}\n","import * as util from './core/util';\nimport env from './core/env';\nimport Element from './Element';\nimport timsort from './core/timsort';\nvar invalidZErrorLogged = false;\nfunction logInvalidZError() {\n    if (invalidZErrorLogged) {\n        return;\n    }\n    invalidZErrorLogged = true;\n    console.warn('z / z2 / zlevel of displayable is invalid, which may cause unexpected errors');\n}\nfunction shapeCompareFunc(a, b) {\n    if (a.zlevel === b.zlevel) {\n        if (a.z === b.z) {\n            return a.z2 - b.z2;\n        }\n        return a.z - b.z;\n    }\n    return a.zlevel - b.zlevel;\n}\nvar Storage = (function () {\n    function Storage() {\n        this._roots = [];\n        this._displayList = [];\n        this._displayListLen = 0;\n        this.displayableSortFunc = shapeCompareFunc;\n    }\n    Storage.prototype.traverse = function (cb, context) {\n        for (var i = 0; i < this._roots.length; i++) {\n            this._roots[i].traverse(cb, context);\n        }\n    };\n    Storage.prototype.getDisplayList = function (update, includeIgnore) {\n        includeIgnore = includeIgnore || false;\n        var displayList = this._displayList;\n        if (update || !displayList.length) {\n            this.updateDisplayList(includeIgnore);\n        }\n        return displayList;\n    };\n    Storage.prototype.updateDisplayList = function (includeIgnore) {\n        this._displayListLen = 0;\n        var roots = this._roots;\n        var displayList = this._displayList;\n        for (var i = 0, len = roots.length; i < len; i++) {\n            this._updateAndAddDisplayable(roots[i], null, includeIgnore);\n        }\n        displayList.length = this._displayListLen;\n        env.canvasSupported && timsort(displayList, shapeCompareFunc);\n    };\n    Storage.prototype._updateAndAddDisplayable = function (el, clipPaths, includeIgnore) {\n        if (el.ignore && !includeIgnore) {\n            return;\n        }\n        el.beforeUpdate();\n        el.update();\n        el.afterUpdate();\n        var userSetClipPath = el.getClipPath();\n        if (el.ignoreClip) {\n            clipPaths = null;\n        }\n        else if (userSetClipPath) {\n            if (clipPaths) {\n                clipPaths = clipPaths.slice();\n            }\n            else {\n                clipPaths = [];\n            }\n            var currentClipPath = userSetClipPath;\n            var parentClipPath = el;\n            while (currentClipPath) {\n                currentClipPath.parent = parentClipPath;\n                currentClipPath.updateTransform();\n                clipPaths.push(currentClipPath);\n                parentClipPath = currentClipPath;\n                currentClipPath = currentClipPath.getClipPath();\n            }\n        }\n        if (el.childrenRef) {\n            var children = el.childrenRef();\n            for (var i = 0; i < children.length; i++) {\n                var child = children[i];\n                if (el.__dirty) {\n                    child.__dirty |= Element.REDARAW_BIT;\n                }\n                this._updateAndAddDisplayable(child, clipPaths, includeIgnore);\n            }\n            el.__dirty = 0;\n        }\n        else {\n            var disp = el;\n            if (clipPaths && clipPaths.length) {\n                disp.__clipPaths = clipPaths;\n            }\n            else if (disp.__clipPaths && disp.__clipPaths.length > 0) {\n                disp.__clipPaths = [];\n            }\n            if (isNaN(disp.z)) {\n                logInvalidZError();\n                disp.z = 0;\n            }\n            if (isNaN(disp.z2)) {\n                logInvalidZError();\n                disp.z2 = 0;\n            }\n            if (isNaN(disp.zlevel)) {\n                logInvalidZError();\n                disp.zlevel = 0;\n            }\n            this._displayList[this._displayListLen++] = disp;\n        }\n        var decalEl = el.getDecalElement && el.getDecalElement();\n        if (decalEl) {\n            this._updateAndAddDisplayable(decalEl, clipPaths, includeIgnore);\n        }\n        var textGuide = el.getTextGuideLine();\n        if (textGuide) {\n            this._updateAndAddDisplayable(textGuide, clipPaths, includeIgnore);\n        }\n        var textEl = el.getTextContent();\n        if (textEl) {\n            this._updateAndAddDisplayable(textEl, clipPaths, includeIgnore);\n        }\n    };\n    Storage.prototype.addRoot = function (el) {\n        if (el.__zr && el.__zr.storage === this) {\n            return;\n        }\n        this._roots.push(el);\n    };\n    Storage.prototype.delRoot = function (el) {\n        if (el instanceof Array) {\n            for (var i = 0, l = el.length; i < l; i++) {\n                this.delRoot(el[i]);\n            }\n            return;\n        }\n        var idx = util.indexOf(this._roots, el);\n        if (idx >= 0) {\n            this._roots.splice(idx, 1);\n        }\n    };\n    Storage.prototype.delAllRoots = function () {\n        this._roots = [];\n        this._displayList = [];\n        this._displayListLen = 0;\n        return;\n    };\n    Storage.prototype.getRoots = function () {\n        return this._roots;\n    };\n    Storage.prototype.dispose = function () {\n        this._displayList = null;\n        this._roots = null;\n    };\n    return Storage;\n}());\nexport default Storage;\n","var requestAnimationFrame;\nrequestAnimationFrame = (typeof window !== 'undefined'\n    && ((window.requestAnimationFrame && window.requestAnimationFrame.bind(window))\n        || (window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window))\n        || window.mozRequestAnimationFrame\n        || window.webkitRequestAnimationFrame)) || function (func) {\n    return setTimeout(func, 16);\n};\nexport default requestAnimationFrame;\n","import { __extends } from \"tslib\";\nimport Eventful from '../core/Eventful';\nimport requestAnimationFrame from './requestAnimationFrame';\nimport Animator from './Animator';\nvar Animation = (function (_super) {\n    __extends(Animation, _super);\n    function Animation(opts) {\n        var _this = _super.call(this) || this;\n        _this._running = false;\n        _this._time = 0;\n        _this._pausedTime = 0;\n        _this._pauseStart = 0;\n        _this._paused = false;\n        opts = opts || {};\n        _this.stage = opts.stage || {};\n        _this.onframe = opts.onframe || function () { };\n        return _this;\n    }\n    Animation.prototype.addClip = function (clip) {\n        if (clip.animation) {\n            this.removeClip(clip);\n        }\n        if (!this._clipsHead) {\n            this._clipsHead = this._clipsTail = clip;\n        }\n        else {\n            this._clipsTail.next = clip;\n            clip.prev = this._clipsTail;\n            clip.next = null;\n            this._clipsTail = clip;\n        }\n        clip.animation = this;\n    };\n    Animation.prototype.addAnimator = function (animator) {\n        animator.animation = this;\n        var clip = animator.getClip();\n        if (clip) {\n            this.addClip(clip);\n        }\n    };\n    Animation.prototype.removeClip = function (clip) {\n        if (!clip.animation) {\n            return;\n        }\n        var prev = clip.prev;\n        var next = clip.next;\n        if (prev) {\n            prev.next = next;\n        }\n        else {\n            this._clipsHead = next;\n        }\n        if (next) {\n            next.prev = prev;\n        }\n        else {\n            this._clipsTail = prev;\n        }\n        clip.next = clip.prev = clip.animation = null;\n    };\n    Animation.prototype.removeAnimator = function (animator) {\n        var clip = animator.getClip();\n        if (clip) {\n            this.removeClip(clip);\n        }\n        animator.animation = null;\n    };\n    Animation.prototype.update = function (notTriggerFrameAndStageUpdate) {\n        var time = new Date().getTime() - this._pausedTime;\n        var delta = time - this._time;\n        var clip = this._clipsHead;\n        while (clip) {\n            var nextClip = clip.next;\n            var finished = clip.step(time, delta);\n            if (finished) {\n                clip.ondestroy && clip.ondestroy();\n                this.removeClip(clip);\n                clip = nextClip;\n            }\n            else {\n                clip = nextClip;\n            }\n        }\n        this._time = time;\n        if (!notTriggerFrameAndStageUpdate) {\n            this.onframe(delta);\n            this.trigger('frame', delta);\n            this.stage.update && this.stage.update();\n        }\n    };\n    Animation.prototype._startLoop = function () {\n        var self = this;\n        this._running = true;\n        function step() {\n            if (self._running) {\n                requestAnimationFrame(step);\n                !self._paused && self.update();\n            }\n        }\n        requestAnimationFrame(step);\n    };\n    Animation.prototype.start = function () {\n        if (this._running) {\n            return;\n        }\n        this._time = new Date().getTime();\n        this._pausedTime = 0;\n        this._startLoop();\n    };\n    Animation.prototype.stop = function () {\n        this._running = false;\n    };\n    Animation.prototype.pause = function () {\n        if (!this._paused) {\n            this._pauseStart = new Date().getTime();\n            this._paused = true;\n        }\n    };\n    Animation.prototype.resume = function () {\n        if (this._paused) {\n            this._pausedTime += (new Date().getTime()) - this._pauseStart;\n            this._paused = false;\n        }\n    };\n    Animation.prototype.clear = function () {\n        var clip = this._clipsHead;\n        while (clip) {\n            var nextClip = clip.next;\n            clip.prev = clip.next = clip.animation = null;\n            clip = nextClip;\n        }\n        this._clipsHead = this._clipsTail = null;\n    };\n    Animation.prototype.isFinished = function () {\n        return this._clipsHead == null;\n    };\n    Animation.prototype.animate = function (target, options) {\n        options = options || {};\n        this.start();\n        var animator = new Animator(target, options.loop);\n        this.addAnimator(animator);\n        return animator;\n    };\n    return Animation;\n}(Eventful));\nexport default Animation;\n","import { __extends } from \"tslib\";\nimport { addEventListener, removeEventListener, normalizeEvent, getNativeEvent } from '../core/event';\nimport * as zrUtil from '../core/util';\nimport Eventful from '../core/Eventful';\nimport env from '../core/env';\nvar TOUCH_CLICK_DELAY = 300;\nvar globalEventSupported = env.domSupported;\nvar localNativeListenerNames = (function () {\n    var mouseHandlerNames = [\n        'click', 'dblclick', 'mousewheel', 'wheel', 'mouseout',\n        'mouseup', 'mousedown', 'mousemove', 'contextmenu'\n    ];\n    var touchHandlerNames = [\n        'touchstart', 'touchend', 'touchmove'\n    ];\n    var pointerEventNameMap = {\n        pointerdown: 1, pointerup: 1, pointermove: 1, pointerout: 1\n    };\n    var pointerHandlerNames = zrUtil.map(mouseHandlerNames, function (name) {\n        var nm = name.replace('mouse', 'pointer');\n        return pointerEventNameMap.hasOwnProperty(nm) ? nm : name;\n    });\n    return {\n        mouse: mouseHandlerNames,\n        touch: touchHandlerNames,\n        pointer: pointerHandlerNames\n    };\n})();\nvar globalNativeListenerNames = {\n    mouse: ['mousemove', 'mouseup'],\n    pointer: ['pointermove', 'pointerup']\n};\nvar wheelEventSupported = false;\nfunction isPointerFromTouch(event) {\n    var pointerType = event.pointerType;\n    return pointerType === 'pen' || pointerType === 'touch';\n}\nfunction setTouchTimer(scope) {\n    scope.touching = true;\n    if (scope.touchTimer != null) {\n        clearTimeout(scope.touchTimer);\n        scope.touchTimer = null;\n    }\n    scope.touchTimer = setTimeout(function () {\n        scope.touching = false;\n        scope.touchTimer = null;\n    }, 700);\n}\nfunction markTouch(event) {\n    event && (event.zrByTouch = true);\n}\nfunction normalizeGlobalEvent(instance, event) {\n    return normalizeEvent(instance.dom, new FakeGlobalEvent(instance, event), true);\n}\nfunction isLocalEl(instance, el) {\n    var elTmp = el;\n    var isLocal = false;\n    while (elTmp && elTmp.nodeType !== 9\n        && !(isLocal = elTmp.domBelongToZr\n            || (elTmp !== el && elTmp === instance.painterRoot))) {\n        elTmp = elTmp.parentNode;\n    }\n    return isLocal;\n}\nvar FakeGlobalEvent = (function () {\n    function FakeGlobalEvent(instance, event) {\n        this.stopPropagation = zrUtil.noop;\n        this.stopImmediatePropagation = zrUtil.noop;\n        this.preventDefault = zrUtil.noop;\n        this.type = event.type;\n        this.target = this.currentTarget = instance.dom;\n        this.pointerType = event.pointerType;\n        this.clientX = event.clientX;\n        this.clientY = event.clientY;\n    }\n    return FakeGlobalEvent;\n}());\nvar localDOMHandlers = {\n    mousedown: function (event) {\n        event = normalizeEvent(this.dom, event);\n        this.__mayPointerCapture = [event.zrX, event.zrY];\n        this.trigger('mousedown', event);\n    },\n    mousemove: function (event) {\n        event = normalizeEvent(this.dom, event);\n        var downPoint = this.__mayPointerCapture;\n        if (downPoint && (event.zrX !== downPoint[0] || event.zrY !== downPoint[1])) {\n            this.__togglePointerCapture(true);\n        }\n        this.trigger('mousemove', event);\n    },\n    mouseup: function (event) {\n        event = normalizeEvent(this.dom, event);\n        this.__togglePointerCapture(false);\n        this.trigger('mouseup', event);\n    },\n    mouseout: function (event) {\n        event = normalizeEvent(this.dom, event);\n        var element = event.toElement || event.relatedTarget;\n        if (!isLocalEl(this, element)) {\n            if (this.__pointerCapturing) {\n                event.zrEventControl = 'no_globalout';\n            }\n            this.trigger('mouseout', event);\n        }\n    },\n    wheel: function (event) {\n        wheelEventSupported = true;\n        event = normalizeEvent(this.dom, event);\n        this.trigger('mousewheel', event);\n    },\n    mousewheel: function (event) {\n        if (wheelEventSupported) {\n            return;\n        }\n        event = normalizeEvent(this.dom, event);\n        this.trigger('mousewheel', event);\n    },\n    touchstart: function (event) {\n        event = normalizeEvent(this.dom, event);\n        markTouch(event);\n        this.__lastTouchMoment = new Date();\n        this.handler.processGesture(event, 'start');\n        localDOMHandlers.mousemove.call(this, event);\n        localDOMHandlers.mousedown.call(this, event);\n    },\n    touchmove: function (event) {\n        event = normalizeEvent(this.dom, event);\n        markTouch(event);\n        this.handler.processGesture(event, 'change');\n        localDOMHandlers.mousemove.call(this, event);\n    },\n    touchend: function (event) {\n        event = normalizeEvent(this.dom, event);\n        markTouch(event);\n        this.handler.processGesture(event, 'end');\n        localDOMHandlers.mouseup.call(this, event);\n        if (+new Date() - (+this.__lastTouchMoment) < TOUCH_CLICK_DELAY) {\n            localDOMHandlers.click.call(this, event);\n        }\n    },\n    pointerdown: function (event) {\n        localDOMHandlers.mousedown.call(this, event);\n    },\n    pointermove: function (event) {\n        if (!isPointerFromTouch(event)) {\n            localDOMHandlers.mousemove.call(this, event);\n        }\n    },\n    pointerup: function (event) {\n        localDOMHandlers.mouseup.call(this, event);\n    },\n    pointerout: function (event) {\n        if (!isPointerFromTouch(event)) {\n            localDOMHandlers.mouseout.call(this, event);\n        }\n    }\n};\nzrUtil.each(['click', 'dblclick', 'contextmenu'], function (name) {\n    localDOMHandlers[name] = function (event) {\n        event = normalizeEvent(this.dom, event);\n        this.trigger(name, event);\n    };\n});\nvar globalDOMHandlers = {\n    pointermove: function (event) {\n        if (!isPointerFromTouch(event)) {\n            globalDOMHandlers.mousemove.call(this, event);\n        }\n    },\n    pointerup: function (event) {\n        globalDOMHandlers.mouseup.call(this, event);\n    },\n    mousemove: function (event) {\n        this.trigger('mousemove', event);\n    },\n    mouseup: function (event) {\n        var pointerCaptureReleasing = this.__pointerCapturing;\n        this.__togglePointerCapture(false);\n        this.trigger('mouseup', event);\n        if (pointerCaptureReleasing) {\n            event.zrEventControl = 'only_globalout';\n            this.trigger('mouseout', event);\n        }\n    }\n};\nfunction mountLocalDOMEventListeners(instance, scope) {\n    var domHandlers = scope.domHandlers;\n    if (env.pointerEventsSupported) {\n        zrUtil.each(localNativeListenerNames.pointer, function (nativeEventName) {\n            mountSingleDOMEventListener(scope, nativeEventName, function (event) {\n                domHandlers[nativeEventName].call(instance, event);\n            });\n        });\n    }\n    else {\n        if (env.touchEventsSupported) {\n            zrUtil.each(localNativeListenerNames.touch, function (nativeEventName) {\n                mountSingleDOMEventListener(scope, nativeEventName, function (event) {\n                    domHandlers[nativeEventName].call(instance, event);\n                    setTouchTimer(scope);\n                });\n            });\n        }\n        zrUtil.each(localNativeListenerNames.mouse, function (nativeEventName) {\n            mountSingleDOMEventListener(scope, nativeEventName, function (event) {\n                event = getNativeEvent(event);\n                if (!scope.touching) {\n                    domHandlers[nativeEventName].call(instance, event);\n                }\n            });\n        });\n    }\n}\nfunction mountGlobalDOMEventListeners(instance, scope) {\n    if (env.pointerEventsSupported) {\n        zrUtil.each(globalNativeListenerNames.pointer, mount);\n    }\n    else if (!env.touchEventsSupported) {\n        zrUtil.each(globalNativeListenerNames.mouse, mount);\n    }\n    function mount(nativeEventName) {\n        function nativeEventListener(event) {\n            event = getNativeEvent(event);\n            if (!isLocalEl(instance, event.target)) {\n                event = normalizeGlobalEvent(instance, event);\n                scope.domHandlers[nativeEventName].call(instance, event);\n            }\n        }\n        mountSingleDOMEventListener(scope, nativeEventName, nativeEventListener, { capture: true });\n    }\n}\nfunction mountSingleDOMEventListener(scope, nativeEventName, listener, opt) {\n    scope.mounted[nativeEventName] = listener;\n    scope.listenerOpts[nativeEventName] = opt;\n    addEventListener(scope.domTarget, nativeEventName, listener, opt);\n}\nfunction unmountDOMEventListeners(scope) {\n    var mounted = scope.mounted;\n    for (var nativeEventName in mounted) {\n        if (mounted.hasOwnProperty(nativeEventName)) {\n            removeEventListener(scope.domTarget, nativeEventName, mounted[nativeEventName], scope.listenerOpts[nativeEventName]);\n        }\n    }\n    scope.mounted = {};\n}\nvar DOMHandlerScope = (function () {\n    function DOMHandlerScope(domTarget, domHandlers) {\n        this.mounted = {};\n        this.listenerOpts = {};\n        this.touching = false;\n        this.domTarget = domTarget;\n        this.domHandlers = domHandlers;\n    }\n    return DOMHandlerScope;\n}());\nvar HandlerDomProxy = (function (_super) {\n    __extends(HandlerDomProxy, _super);\n    function HandlerDomProxy(dom, painterRoot) {\n        var _this = _super.call(this) || this;\n        _this.__pointerCapturing = false;\n        _this.dom = dom;\n        _this.painterRoot = painterRoot;\n        _this._localHandlerScope = new DOMHandlerScope(dom, localDOMHandlers);\n        if (globalEventSupported) {\n            _this._globalHandlerScope = new DOMHandlerScope(document, globalDOMHandlers);\n        }\n        mountLocalDOMEventListeners(_this, _this._localHandlerScope);\n        return _this;\n    }\n    HandlerDomProxy.prototype.dispose = function () {\n        unmountDOMEventListeners(this._localHandlerScope);\n        if (globalEventSupported) {\n            unmountDOMEventListeners(this._globalHandlerScope);\n        }\n    };\n    HandlerDomProxy.prototype.setCursor = function (cursorStyle) {\n        this.dom.style && (this.dom.style.cursor = cursorStyle || 'default');\n    };\n    HandlerDomProxy.prototype.__togglePointerCapture = function (isPointerCapturing) {\n        this.__mayPointerCapture = null;\n        if (globalEventSupported\n            && ((+this.__pointerCapturing) ^ (+isPointerCapturing))) {\n            this.__pointerCapturing = isPointerCapturing;\n            var globalHandlerScope = this._globalHandlerScope;\n            isPointerCapturing\n                ? mountGlobalDOMEventListeners(this, globalHandlerScope)\n                : unmountDOMEventListeners(globalHandlerScope);\n        }\n    };\n    return HandlerDomProxy;\n}(Eventful));\nexport default HandlerDomProxy;\n","import { __extends } from \"tslib\";\nimport * as zrUtil from '../core/util';\nimport Element from '../Element';\nimport BoundingRect from '../core/BoundingRect';\nvar Group = (function (_super) {\n    __extends(Group, _super);\n    function Group(opts) {\n        var _this = _super.call(this) || this;\n        _this.isGroup = true;\n        _this._children = [];\n        _this.attr(opts);\n        return _this;\n    }\n    Group.prototype.childrenRef = function () {\n        return this._children;\n    };\n    Group.prototype.children = function () {\n        return this._children.slice();\n    };\n    Group.prototype.childAt = function (idx) {\n        return this._children[idx];\n    };\n    Group.prototype.childOfName = function (name) {\n        var children = this._children;\n        for (var i = 0; i < children.length; i++) {\n            if (children[i].name === name) {\n                return children[i];\n            }\n        }\n    };\n    Group.prototype.childCount = function () {\n        return this._children.length;\n    };\n    Group.prototype.add = function (child) {\n        if (child) {\n            if (child !== this && child.parent !== this) {\n                this._children.push(child);\n                this._doAdd(child);\n            }\n            if (child.__hostTarget) {\n                throw 'This elemenet has been used as an attachment';\n            }\n        }\n        return this;\n    };\n    Group.prototype.addBefore = function (child, nextSibling) {\n        if (child && child !== this && child.parent !== this\n            && nextSibling && nextSibling.parent === this) {\n            var children = this._children;\n            var idx = children.indexOf(nextSibling);\n            if (idx >= 0) {\n                children.splice(idx, 0, child);\n                this._doAdd(child);\n            }\n        }\n        return this;\n    };\n    Group.prototype.replaceAt = function (child, index) {\n        var children = this._children;\n        var old = children[index];\n        if (child && child !== this && child.parent !== this && child !== old) {\n            children[index] = child;\n            old.parent = null;\n            var zr = this.__zr;\n            if (zr) {\n                old.removeSelfFromZr(zr);\n            }\n            this._doAdd(child);\n        }\n        return this;\n    };\n    Group.prototype._doAdd = function (child) {\n        if (child.parent) {\n            child.parent.remove(child);\n        }\n        child.parent = this;\n        var zr = this.__zr;\n        if (zr && zr !== child.__zr) {\n            child.addSelfToZr(zr);\n        }\n        zr && zr.refresh();\n    };\n    Group.prototype.remove = function (child) {\n        var zr = this.__zr;\n        var children = this._children;\n        var idx = zrUtil.indexOf(children, child);\n        if (idx < 0) {\n            return this;\n        }\n        children.splice(idx, 1);\n        child.parent = null;\n        if (zr) {\n            child.removeSelfFromZr(zr);\n        }\n        zr && zr.refresh();\n        return this;\n    };\n    Group.prototype.removeAll = function () {\n        var children = this._children;\n        var zr = this.__zr;\n        for (var i = 0; i < children.length; i++) {\n            var child = children[i];\n            if (zr) {\n                child.removeSelfFromZr(zr);\n            }\n            child.parent = null;\n        }\n        children.length = 0;\n        return this;\n    };\n    Group.prototype.eachChild = function (cb, context) {\n        var children = this._children;\n        for (var i = 0; i < children.length; i++) {\n            var child = children[i];\n            cb.call(context, child, i);\n        }\n        return this;\n    };\n    Group.prototype.traverse = function (cb, context) {\n        for (var i = 0; i < this._children.length; i++) {\n            var child = this._children[i];\n            var stopped = cb.call(context, child);\n            if (child.isGroup && !stopped) {\n                child.traverse(cb, context);\n            }\n        }\n        return this;\n    };\n    Group.prototype.addSelfToZr = function (zr) {\n        _super.prototype.addSelfToZr.call(this, zr);\n        for (var i = 0; i < this._children.length; i++) {\n            var child = this._children[i];\n            child.addSelfToZr(zr);\n        }\n    };\n    Group.prototype.removeSelfFromZr = function (zr) {\n        _super.prototype.removeSelfFromZr.call(this, zr);\n        for (var i = 0; i < this._children.length; i++) {\n            var child = this._children[i];\n            child.removeSelfFromZr(zr);\n        }\n    };\n    Group.prototype.getBoundingRect = function (includeChildren) {\n        var tmpRect = new BoundingRect(0, 0, 0, 0);\n        var children = includeChildren || this._children;\n        var tmpMat = [];\n        var rect = null;\n        for (var i = 0; i < children.length; i++) {\n            var child = children[i];\n            if (child.ignore || child.invisible) {\n                continue;\n            }\n            var childRect = child.getBoundingRect();\n            var transform = child.getLocalTransform(tmpMat);\n            if (transform) {\n                BoundingRect.applyTransform(tmpRect, childRect, transform);\n                rect = rect || tmpRect.clone();\n                rect.union(tmpRect);\n            }\n            else {\n                rect = rect || childRect.clone();\n                rect.union(childRect);\n            }\n        }\n        return rect || tmpRect;\n    };\n    return Group;\n}(Element));\nGroup.prototype.type = 'group';\nexport default Group;\n","/*!\n* ZRender, a high performance 2d drawing library.\n*\n* Copyright (c) 2013, Baidu Inc.\n* All rights reserved.\n*\n* LICENSE\n* https://github.com/ecomfe/zrender/blob/master/LICENSE.txt\n*/\nimport env from './core/env';\nimport * as zrUtil from './core/util';\nimport Handler from './Handler';\nimport Storage from './Storage';\nimport Animation from './animation/Animation';\nimport HandlerProxy from './dom/HandlerProxy';\nimport { lum } from './tool/color';\nimport { DARK_MODE_THRESHOLD } from './config';\nimport Group from './graphic/Group';\nvar useVML = !env.canvasSupported;\nvar painterCtors = {};\nvar instances = {};\nfunction delInstance(id) {\n    delete instances[id];\n}\nfunction isDarkMode(backgroundColor) {\n    if (!backgroundColor) {\n        return false;\n    }\n    if (typeof backgroundColor === 'string') {\n        return lum(backgroundColor, 1) < DARK_MODE_THRESHOLD;\n    }\n    else if (backgroundColor.colorStops) {\n        var colorStops = backgroundColor.colorStops;\n        var totalLum = 0;\n        var len = colorStops.length;\n        for (var i = 0; i < len; i++) {\n            totalLum += lum(colorStops[i].color, 1);\n        }\n        totalLum /= len;\n        return totalLum < DARK_MODE_THRESHOLD;\n    }\n    return false;\n}\nvar ZRender = (function () {\n    function ZRender(id, dom, opts) {\n        var _this = this;\n        this._sleepAfterStill = 10;\n        this._stillFrameAccum = 0;\n        this._needsRefresh = true;\n        this._needsRefreshHover = true;\n        this._darkMode = false;\n        opts = opts || {};\n        this.dom = dom;\n        this.id = id;\n        var storage = new Storage();\n        var rendererType = opts.renderer || 'canvas';\n        if (useVML) {\n            throw new Error('IE8 support has been dropped since 5.0');\n        }\n        if (!painterCtors[rendererType]) {\n            rendererType = zrUtil.keys(painterCtors)[0];\n        }\n        if (!painterCtors[rendererType]) {\n            throw new Error(\"Renderer '\" + rendererType + \"' is not imported. Please import it first.\");\n        }\n        opts.useDirtyRect = opts.useDirtyRect == null\n            ? false\n            : opts.useDirtyRect;\n        var painter = new painterCtors[rendererType](dom, storage, opts, id);\n        this.storage = storage;\n        this.painter = painter;\n        var handerProxy = (!env.node && !env.worker)\n            ? new HandlerProxy(painter.getViewportRoot(), painter.root)\n            : null;\n        this.handler = new Handler(storage, painter, handerProxy, painter.root);\n        this.animation = new Animation({\n            stage: {\n                update: function () { return _this._flush(true); }\n            }\n        });\n        this.animation.start();\n    }\n    ZRender.prototype.add = function (el) {\n        if (!el) {\n            return;\n        }\n        this.storage.addRoot(el);\n        el.addSelfToZr(this);\n        this.refresh();\n    };\n    ZRender.prototype.remove = function (el) {\n        if (!el) {\n            return;\n        }\n        this.storage.delRoot(el);\n        el.removeSelfFromZr(this);\n        this.refresh();\n    };\n    ZRender.prototype.configLayer = function (zLevel, config) {\n        if (this.painter.configLayer) {\n            this.painter.configLayer(zLevel, config);\n        }\n        this.refresh();\n    };\n    ZRender.prototype.setBackgroundColor = function (backgroundColor) {\n        if (this.painter.setBackgroundColor) {\n            this.painter.setBackgroundColor(backgroundColor);\n        }\n        this.refresh();\n        this._backgroundColor = backgroundColor;\n        this._darkMode = isDarkMode(backgroundColor);\n    };\n    ZRender.prototype.getBackgroundColor = function () {\n        return this._backgroundColor;\n    };\n    ZRender.prototype.setDarkMode = function (darkMode) {\n        this._darkMode = darkMode;\n    };\n    ZRender.prototype.isDarkMode = function () {\n        return this._darkMode;\n    };\n    ZRender.prototype.refreshImmediately = function (fromInside) {\n        if (!fromInside) {\n            this.animation.update(true);\n        }\n        this._needsRefresh = false;\n        this.painter.refresh();\n        this._needsRefresh = false;\n    };\n    ZRender.prototype.refresh = function () {\n        this._needsRefresh = true;\n        this.animation.start();\n    };\n    ZRender.prototype.flush = function () {\n        this._flush(false);\n    };\n    ZRender.prototype._flush = function (fromInside) {\n        var triggerRendered;\n        var start = new Date().getTime();\n        if (this._needsRefresh) {\n            triggerRendered = true;\n            this.refreshImmediately(fromInside);\n        }\n        if (this._needsRefreshHover) {\n            triggerRendered = true;\n            this.refreshHoverImmediately();\n        }\n        var end = new Date().getTime();\n        if (triggerRendered) {\n            this._stillFrameAccum = 0;\n            this.trigger('rendered', {\n                elapsedTime: end - start\n            });\n        }\n        else if (this._sleepAfterStill > 0) {\n            this._stillFrameAccum++;\n            if (this._stillFrameAccum > this._sleepAfterStill) {\n                this.animation.stop();\n            }\n        }\n    };\n    ZRender.prototype.setSleepAfterStill = function (stillFramesCount) {\n        this._sleepAfterStill = stillFramesCount;\n    };\n    ZRender.prototype.wakeUp = function () {\n        this.animation.start();\n        this._stillFrameAccum = 0;\n    };\n    ZRender.prototype.addHover = function (el) {\n    };\n    ZRender.prototype.removeHover = function (el) {\n    };\n    ZRender.prototype.clearHover = function () {\n    };\n    ZRender.prototype.refreshHover = function () {\n        this._needsRefreshHover = true;\n    };\n    ZRender.prototype.refreshHoverImmediately = function () {\n        this._needsRefreshHover = false;\n        if (this.painter.refreshHover && this.painter.getType() === 'canvas') {\n            this.painter.refreshHover();\n        }\n    };\n    ZRender.prototype.resize = function (opts) {\n        opts = opts || {};\n        this.painter.resize(opts.width, opts.height);\n        this.handler.resize();\n    };\n    ZRender.prototype.clearAnimation = function () {\n        this.animation.clear();\n    };\n    ZRender.prototype.getWidth = function () {\n        return this.painter.getWidth();\n    };\n    ZRender.prototype.getHeight = function () {\n        return this.painter.getHeight();\n    };\n    ZRender.prototype.pathToImage = function (e, dpr) {\n        if (this.painter.pathToImage) {\n            return this.painter.pathToImage(e, dpr);\n        }\n    };\n    ZRender.prototype.setCursorStyle = function (cursorStyle) {\n        this.handler.setCursorStyle(cursorStyle);\n    };\n    ZRender.prototype.findHover = function (x, y) {\n        return this.handler.findHover(x, y);\n    };\n    ZRender.prototype.on = function (eventName, eventHandler, context) {\n        this.handler.on(eventName, eventHandler, context);\n        return this;\n    };\n    ZRender.prototype.off = function (eventName, eventHandler) {\n        this.handler.off(eventName, eventHandler);\n    };\n    ZRender.prototype.trigger = function (eventName, event) {\n        this.handler.trigger(eventName, event);\n    };\n    ZRender.prototype.clear = function () {\n        var roots = this.storage.getRoots();\n        for (var i = 0; i < roots.length; i++) {\n            if (roots[i] instanceof Group) {\n                roots[i].removeSelfFromZr(this);\n            }\n        }\n        this.storage.delAllRoots();\n        this.painter.clear();\n    };\n    ZRender.prototype.dispose = function () {\n        this.animation.stop();\n        this.clear();\n        this.storage.dispose();\n        this.painter.dispose();\n        this.handler.dispose();\n        this.animation =\n            this.storage =\n                this.painter =\n                    this.handler = null;\n        delInstance(this.id);\n    };\n    return ZRender;\n}());\nexport function init(dom, opts) {\n    var zr = new ZRender(zrUtil.guid(), dom, opts);\n    instances[zr.id] = zr;\n    return zr;\n}\nexport function dispose(zr) {\n    zr.dispose();\n}\nexport function disposeAll() {\n    for (var key in instances) {\n        if (instances.hasOwnProperty(key)) {\n            instances[key].dispose();\n        }\n    }\n    instances = {};\n}\nexport function getInstance(id) {\n    return instances[id];\n}\nexport function registerPainter(name, Ctor) {\n    painterCtors[name] = Ctor;\n}\nexport var version = '5.0.3';\n;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar RADIAN_EPSILON = 1e-4;\n\nfunction _trim(str) {\n  return str.replace(/^\\s+|\\s+$/g, '');\n}\n\nexport function linearMap(val, domain, range, clamp) {\n  var subDomain = domain[1] - domain[0];\n  var subRange = range[1] - range[0];\n\n  if (subDomain === 0) {\n    return subRange === 0 ? range[0] : (range[0] + range[1]) / 2;\n  }\n\n  if (clamp) {\n    if (subDomain > 0) {\n      if (val <= domain[0]) {\n        return range[0];\n      } else if (val >= domain[1]) {\n        return range[1];\n      }\n    } else {\n      if (val >= domain[0]) {\n        return range[0];\n      } else if (val <= domain[1]) {\n        return range[1];\n      }\n    }\n  } else {\n    if (val === domain[0]) {\n      return range[0];\n    }\n\n    if (val === domain[1]) {\n      return range[1];\n    }\n  }\n\n  return (val - domain[0]) / subDomain * subRange + range[0];\n}\nexport function parsePercent(percent, all) {\n  switch (percent) {\n    case 'center':\n    case 'middle':\n      percent = '50%';\n      break;\n\n    case 'left':\n    case 'top':\n      percent = '0%';\n      break;\n\n    case 'right':\n    case 'bottom':\n      percent = '100%';\n      break;\n  }\n\n  if (typeof percent === 'string') {\n    if (_trim(percent).match(/%$/)) {\n      return parseFloat(percent) / 100 * all;\n    }\n\n    return parseFloat(percent);\n  }\n\n  return percent == null ? NaN : +percent;\n}\nexport function round(x, precision, returnStr) {\n  if (precision == null) {\n    precision = 10;\n  }\n\n  precision = Math.min(Math.max(0, precision), 20);\n  x = (+x).toFixed(precision);\n  return returnStr ? x : +x;\n}\nexport function asc(arr) {\n  arr.sort(function (a, b) {\n    return a - b;\n  });\n  return arr;\n}\nexport function getPrecision(val) {\n  val = +val;\n\n  if (isNaN(val)) {\n    return 0;\n  }\n\n  var e = 1;\n  var count = 0;\n\n  while (Math.round(val * e) / e !== val) {\n    e *= 10;\n    count++;\n  }\n\n  return count;\n}\nexport function getPrecisionSafe(val) {\n  var str = val.toString();\n  var eIndex = str.indexOf('e');\n\n  if (eIndex > 0) {\n    var precision = +str.slice(eIndex + 1);\n    return precision < 0 ? -precision : 0;\n  } else {\n    var dotIndex = str.indexOf('.');\n    return dotIndex < 0 ? 0 : str.length - 1 - dotIndex;\n  }\n}\nexport function getPixelPrecision(dataExtent, pixelExtent) {\n  var log = Math.log;\n  var LN10 = Math.LN10;\n  var dataQuantity = Math.floor(log(dataExtent[1] - dataExtent[0]) / LN10);\n  var sizeQuantity = Math.round(log(Math.abs(pixelExtent[1] - pixelExtent[0])) / LN10);\n  var precision = Math.min(Math.max(-dataQuantity + sizeQuantity, 0), 20);\n  return !isFinite(precision) ? 20 : precision;\n}\nexport function getPercentWithPrecision(valueList, idx, precision) {\n  if (!valueList[idx]) {\n    return 0;\n  }\n\n  var sum = zrUtil.reduce(valueList, function (acc, val) {\n    return acc + (isNaN(val) ? 0 : val);\n  }, 0);\n\n  if (sum === 0) {\n    return 0;\n  }\n\n  var digits = Math.pow(10, precision);\n  var votesPerQuota = zrUtil.map(valueList, function (val) {\n    return (isNaN(val) ? 0 : val) / sum * digits * 100;\n  });\n  var targetSeats = digits * 100;\n  var seats = zrUtil.map(votesPerQuota, function (votes) {\n    return Math.floor(votes);\n  });\n  var currentSum = zrUtil.reduce(seats, function (acc, val) {\n    return acc + val;\n  }, 0);\n  var remainder = zrUtil.map(votesPerQuota, function (votes, idx) {\n    return votes - seats[idx];\n  });\n\n  while (currentSum < targetSeats) {\n    var max = Number.NEGATIVE_INFINITY;\n    var maxId = null;\n\n    for (var i = 0, len = remainder.length; i < len; ++i) {\n      if (remainder[i] > max) {\n        max = remainder[i];\n        maxId = i;\n      }\n    }\n\n    ++seats[maxId];\n    remainder[maxId] = 0;\n    ++currentSum;\n  }\n\n  return seats[idx] / digits;\n}\nexport var MAX_SAFE_INTEGER = 9007199254740991;\nexport function remRadian(radian) {\n  var pi2 = Math.PI * 2;\n  return (radian % pi2 + pi2) % pi2;\n}\nexport function isRadianAroundZero(val) {\n  return val > -RADIAN_EPSILON && val < RADIAN_EPSILON;\n}\nvar 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)?)?)?)?)?$/;\nexport function parseDate(value) {\n  if (value instanceof Date) {\n    return value;\n  } else if (typeof value === 'string') {\n    var match = TIME_REG.exec(value);\n\n    if (!match) {\n      return new Date(NaN);\n    }\n\n    if (!match[8]) {\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);\n    } else {\n      var hour = +match[4] || 0;\n\n      if (match[8].toUpperCase() !== 'Z') {\n        hour -= +match[8].slice(0, 3);\n      }\n\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));\n    }\n  } else if (value == null) {\n    return new Date(NaN);\n  }\n\n  return new Date(Math.round(value));\n}\nexport function quantity(val) {\n  return Math.pow(10, quantityExponent(val));\n}\nexport function quantityExponent(val) {\n  if (val === 0) {\n    return 0;\n  }\n\n  var exp = Math.floor(Math.log(val) / Math.LN10);\n\n  if (val / Math.pow(10, exp) >= 10) {\n    exp++;\n  }\n\n  return exp;\n}\nexport function nice(val, round) {\n  var exponent = quantityExponent(val);\n  var exp10 = Math.pow(10, exponent);\n  var f = val / exp10;\n  var nf;\n\n  if (round) {\n    if (f < 1.5) {\n      nf = 1;\n    } else if (f < 2.5) {\n      nf = 2;\n    } else if (f < 4) {\n      nf = 3;\n    } else if (f < 7) {\n      nf = 5;\n    } else {\n      nf = 10;\n    }\n  } else {\n    if (f < 1) {\n      nf = 1;\n    } else if (f < 2) {\n      nf = 2;\n    } else if (f < 3) {\n      nf = 3;\n    } else if (f < 5) {\n      nf = 5;\n    } else {\n      nf = 10;\n    }\n  }\n\n  val = nf * exp10;\n  return exponent >= -20 ? +val.toFixed(exponent < 0 ? -exponent : 0) : val;\n}\nexport function quantile(ascArr, p) {\n  var H = (ascArr.length - 1) * p + 1;\n  var h = Math.floor(H);\n  var v = +ascArr[h - 1];\n  var e = H - h;\n  return e ? v + e * (ascArr[h] - v) : v;\n}\nexport function reformIntervals(list) {\n  list.sort(function (a, b) {\n    return littleThan(a, b, 0) ? -1 : 1;\n  });\n  var curr = -Infinity;\n  var currClose = 1;\n\n  for (var i = 0; i < list.length;) {\n    var interval = list[i].interval;\n    var close_1 = list[i].close;\n\n    for (var lg = 0; lg < 2; lg++) {\n      if (interval[lg] <= curr) {\n        interval[lg] = curr;\n        close_1[lg] = !lg ? 1 - currClose : 1;\n      }\n\n      curr = interval[lg];\n      currClose = close_1[lg];\n    }\n\n    if (interval[0] === interval[1] && close_1[0] * close_1[1] !== 1) {\n      list.splice(i, 1);\n    } else {\n      i++;\n    }\n  }\n\n  return list;\n\n  function littleThan(a, b, lg) {\n    return a.interval[lg] < b.interval[lg] || a.interval[lg] === b.interval[lg] && (a.close[lg] - b.close[lg] === (!lg ? 1 : -1) || !lg && littleThan(a, b, 1));\n  }\n}\nexport function numericToNumber(val) {\n  var valFloat = parseFloat(val);\n  return valFloat == val && (valFloat !== 0 || typeof val !== 'string' || val.indexOf('x') <= 0) ? valFloat : NaN;\n}\nexport function isNumeric(val) {\n  return !isNaN(numericToNumber(val));\n}\nexport function getRandomIdBase() {\n  return Math.round(Math.random() * 9);\n}\nexport function getGreatestCommonDividor(a, b) {\n  if (b === 0) {\n    return a;\n  }\n\n  return getGreatestCommonDividor(b, a % b);\n}\nexport function getLeastCommonMultiple(a, b) {\n  if (a == null) {\n    return b;\n  }\n\n  if (b == null) {\n    return a;\n  }\n\n  return a * b / getGreatestCommonDividor(a, b);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { map, isString, isFunction, eqNaN, isRegExp } from 'zrender/lib/core/util';\nvar ECHARTS_PREFIX = '[ECharts] ';\nvar storedLogs = {};\nvar hasConsole = typeof console !== 'undefined' && console.warn && console.log;\nexport function log(str) {\n  if (hasConsole) {\n    console.log(ECHARTS_PREFIX + str);\n  }\n}\nexport function warn(str) {\n  if (hasConsole) {\n    console.warn(ECHARTS_PREFIX + str);\n  }\n}\nexport function error(str) {\n  if (hasConsole) {\n    console.error(ECHARTS_PREFIX + str);\n  }\n}\nexport function deprecateLog(str) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (storedLogs[str]) {\n      return;\n    }\n\n    if (hasConsole) {\n      storedLogs[str] = true;\n      console.warn(ECHARTS_PREFIX + 'DEPRECATED: ' + str);\n    }\n  }\n}\nexport function deprecateReplaceLog(oldOpt, newOpt, scope) {\n  if (process.env.NODE_ENV !== 'production') {\n    deprecateLog((scope ? \"[\" + scope + \"]\" : '') + (oldOpt + \" is deprecated, use \" + newOpt + \" instead.\"));\n  }\n}\nexport function consoleLog() {\n  var args = [];\n\n  for (var _i = 0; _i < arguments.length; _i++) {\n    args[_i] = arguments[_i];\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (typeof console !== 'undefined' && console.log) {\n      console.log.apply(console, args);\n    }\n  }\n}\nexport function makePrintable() {\n  var hintInfo = [];\n\n  for (var _i = 0; _i < arguments.length; _i++) {\n    hintInfo[_i] = arguments[_i];\n  }\n\n  var msg = '';\n\n  if (process.env.NODE_ENV !== 'production') {\n    var makePrintableStringIfPossible_1 = function (val) {\n      return val === void 0 ? 'undefined' : val === Infinity ? 'Infinity' : val === -Infinity ? '-Infinity' : eqNaN(val) ? 'NaN' : val instanceof Date ? 'Date(' + val.toISOString() + ')' : isFunction(val) ? 'function () { ... }' : isRegExp(val) ? val + '' : null;\n    };\n\n    msg = map(hintInfo, function (arg) {\n      if (isString(arg)) {\n        return arg;\n      } else {\n        var printableStr = makePrintableStringIfPossible_1(arg);\n\n        if (printableStr != null) {\n          return printableStr;\n        } else if (typeof JSON !== 'undefined' && JSON.stringify) {\n          try {\n            return JSON.stringify(arg, function (n, val) {\n              var printableStr = makePrintableStringIfPossible_1(val);\n              return printableStr == null ? val : printableStr;\n            });\n          } catch (err) {\n            return '?';\n          }\n        } else {\n          return '?';\n        }\n      }\n    }).join(' ');\n  }\n\n  return msg;\n}\nexport function throwError(msg) {\n  throw new Error(msg);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, isObject, isArray, createHashMap, map, assert, isString, indexOf, isStringSafe } from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport { isNumeric, getRandomIdBase, getPrecisionSafe, round } from './number';\nimport { interpolateNumber } from 'zrender/lib/animation/Animator';\nimport { warn } from './log';\nvar DUMMY_COMPONENT_NAME_PREFIX = 'series\\0';\nvar INTERNAL_COMPONENT_ID_PREFIX = '\\0_ec_\\0';\nexport function normalizeToArray(value) {\n  return value instanceof Array ? value : value == null ? [] : [value];\n}\nexport function defaultEmphasis(opt, key, subOpts) {\n  if (opt) {\n    opt[key] = opt[key] || {};\n    opt.emphasis = opt.emphasis || {};\n    opt.emphasis[key] = opt.emphasis[key] || {};\n\n    for (var i = 0, len = subOpts.length; i < len; i++) {\n      var subOptName = subOpts[i];\n\n      if (!opt.emphasis[key].hasOwnProperty(subOptName) && opt[key].hasOwnProperty(subOptName)) {\n        opt.emphasis[key][subOptName] = opt[key][subOptName];\n      }\n    }\n  }\n}\nexport var TEXT_STYLE_OPTIONS = ['fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'rich', 'tag', 'color', 'textBorderColor', 'textBorderWidth', 'width', 'height', 'lineHeight', 'align', 'verticalAlign', 'baseline', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY', 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY', 'backgroundColor', 'borderColor', 'borderWidth', 'borderRadius', 'padding'];\nexport function getDataItemValue(dataItem) {\n  return isObject(dataItem) && !isArray(dataItem) && !(dataItem instanceof Date) ? dataItem.value : dataItem;\n}\nexport function isDataItemOption(dataItem) {\n  return isObject(dataItem) && !(dataItem instanceof Array);\n}\n;\nexport function mappingToExists(existings, newCmptOptions, mode) {\n  var isNormalMergeMode = mode === 'normalMerge';\n  var isReplaceMergeMode = mode === 'replaceMerge';\n  var isReplaceAllMode = mode === 'replaceAll';\n  existings = existings || [];\n  newCmptOptions = (newCmptOptions || []).slice();\n  var existingIdIdxMap = createHashMap();\n  each(newCmptOptions, function (cmptOption, index) {\n    if (!isObject(cmptOption)) {\n      newCmptOptions[index] = null;\n      return;\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (cmptOption.id != null && !isValidIdOrName(cmptOption.id)) {\n        warnInvalidateIdOrName(cmptOption.id);\n      }\n\n      if (cmptOption.name != null && !isValidIdOrName(cmptOption.name)) {\n        warnInvalidateIdOrName(cmptOption.name);\n      }\n    }\n  });\n  var result = prepareResult(existings, existingIdIdxMap, mode);\n\n  if (isNormalMergeMode || isReplaceMergeMode) {\n    mappingById(result, existings, existingIdIdxMap, newCmptOptions);\n  }\n\n  if (isNormalMergeMode) {\n    mappingByName(result, newCmptOptions);\n  }\n\n  if (isNormalMergeMode || isReplaceMergeMode) {\n    mappingByIndex(result, newCmptOptions, isReplaceMergeMode);\n  } else if (isReplaceAllMode) {\n    mappingInReplaceAllMode(result, newCmptOptions);\n  }\n\n  makeIdAndName(result);\n  return result;\n}\n\nfunction prepareResult(existings, existingIdIdxMap, mode) {\n  var result = [];\n\n  if (mode === 'replaceAll') {\n    return result;\n  }\n\n  for (var index = 0; index < existings.length; index++) {\n    var existing = existings[index];\n\n    if (existing && existing.id != null) {\n      existingIdIdxMap.set(existing.id, index);\n    }\n\n    result.push({\n      existing: mode === 'replaceMerge' || isComponentIdInternal(existing) ? null : existing,\n      newOption: null,\n      keyInfo: null,\n      brandNew: null\n    });\n  }\n\n  return result;\n}\n\nfunction mappingById(result, existings, existingIdIdxMap, newCmptOptions) {\n  each(newCmptOptions, function (cmptOption, index) {\n    if (!cmptOption || cmptOption.id == null) {\n      return;\n    }\n\n    var optionId = makeComparableKey(cmptOption.id);\n    var existingIdx = existingIdIdxMap.get(optionId);\n\n    if (existingIdx != null) {\n      var resultItem = result[existingIdx];\n      assert(!resultItem.newOption, 'Duplicated option on id \"' + optionId + '\".');\n      resultItem.newOption = cmptOption;\n      resultItem.existing = existings[existingIdx];\n      newCmptOptions[index] = null;\n    }\n  });\n}\n\nfunction mappingByName(result, newCmptOptions) {\n  each(newCmptOptions, function (cmptOption, index) {\n    if (!cmptOption || cmptOption.name == null) {\n      return;\n    }\n\n    for (var i = 0; i < result.length; i++) {\n      var existing = result[i].existing;\n\n      if (!result[i].newOption && existing && (existing.id == null || cmptOption.id == null) && !isComponentIdInternal(cmptOption) && !isComponentIdInternal(existing) && keyExistAndEqual('name', existing, cmptOption)) {\n        result[i].newOption = cmptOption;\n        newCmptOptions[index] = null;\n        return;\n      }\n    }\n  });\n}\n\nfunction mappingByIndex(result, newCmptOptions, brandNew) {\n  each(newCmptOptions, function (cmptOption) {\n    if (!cmptOption) {\n      return;\n    }\n\n    var resultItem;\n    var nextIdx = 0;\n\n    while ((resultItem = result[nextIdx]) && (resultItem.newOption || isComponentIdInternal(resultItem.existing) || resultItem.existing && cmptOption.id != null && !keyExistAndEqual('id', cmptOption, resultItem.existing))) {\n      nextIdx++;\n    }\n\n    if (resultItem) {\n      resultItem.newOption = cmptOption;\n      resultItem.brandNew = brandNew;\n    } else {\n      result.push({\n        newOption: cmptOption,\n        brandNew: brandNew,\n        existing: null,\n        keyInfo: null\n      });\n    }\n\n    nextIdx++;\n  });\n}\n\nfunction mappingInReplaceAllMode(result, newCmptOptions) {\n  each(newCmptOptions, function (cmptOption) {\n    result.push({\n      newOption: cmptOption,\n      brandNew: true,\n      existing: null,\n      keyInfo: null\n    });\n  });\n}\n\nfunction makeIdAndName(mapResult) {\n  var idMap = createHashMap();\n  each(mapResult, function (item) {\n    var existing = item.existing;\n    existing && idMap.set(existing.id, item);\n  });\n  each(mapResult, function (item) {\n    var opt = item.newOption;\n    assert(!opt || opt.id == null || !idMap.get(opt.id) || idMap.get(opt.id) === item, 'id duplicates: ' + (opt && opt.id));\n    opt && opt.id != null && idMap.set(opt.id, item);\n    !item.keyInfo && (item.keyInfo = {});\n  });\n  each(mapResult, function (item, index) {\n    var existing = item.existing;\n    var opt = item.newOption;\n    var keyInfo = item.keyInfo;\n\n    if (!isObject(opt)) {\n      return;\n    }\n\n    keyInfo.name = opt.name != null ? makeComparableKey(opt.name) : existing ? existing.name : DUMMY_COMPONENT_NAME_PREFIX + index;\n\n    if (existing) {\n      keyInfo.id = makeComparableKey(existing.id);\n    } else if (opt.id != null) {\n      keyInfo.id = makeComparableKey(opt.id);\n    } else {\n      var idNum = 0;\n\n      do {\n        keyInfo.id = '\\0' + keyInfo.name + '\\0' + idNum++;\n      } while (idMap.get(keyInfo.id));\n    }\n\n    idMap.set(keyInfo.id, item);\n  });\n}\n\nfunction keyExistAndEqual(attr, obj1, obj2) {\n  var key1 = convertOptionIdName(obj1[attr], null);\n  var key2 = convertOptionIdName(obj2[attr], null);\n  return key1 != null && key2 != null && key1 === key2;\n}\n\nfunction makeComparableKey(val) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (val == null) {\n      throw new Error();\n    }\n  }\n\n  return convertOptionIdName(val, '');\n}\n\nexport function convertOptionIdName(idOrName, defaultValue) {\n  if (idOrName == null) {\n    return defaultValue;\n  }\n\n  var type = typeof idOrName;\n  return type === 'string' ? idOrName : type === 'number' || isStringSafe(idOrName) ? idOrName + '' : defaultValue;\n}\n\nfunction warnInvalidateIdOrName(idOrName) {\n  if (process.env.NODE_ENV !== 'production') {\n    warn('`' + idOrName + '` is invalid id or name. Must be a string or number.');\n  }\n}\n\nfunction isValidIdOrName(idOrName) {\n  return isStringSafe(idOrName) || isNumeric(idOrName);\n}\n\nexport function isNameSpecified(componentModel) {\n  var name = componentModel.name;\n  return !!(name && name.indexOf(DUMMY_COMPONENT_NAME_PREFIX));\n}\nexport function isComponentIdInternal(cmptOption) {\n  return cmptOption && cmptOption.id != null && makeComparableKey(cmptOption.id).indexOf(INTERNAL_COMPONENT_ID_PREFIX) === 0;\n}\nexport function makeInternalComponentId(idSuffix) {\n  return INTERNAL_COMPONENT_ID_PREFIX + idSuffix;\n}\nexport function setComponentTypeToKeyInfo(mappingResult, mainType, componentModelCtor) {\n  each(mappingResult, function (item) {\n    var newOption = item.newOption;\n\n    if (isObject(newOption)) {\n      item.keyInfo.mainType = mainType;\n      item.keyInfo.subType = determineSubType(mainType, newOption, item.existing, componentModelCtor);\n    }\n  });\n}\n\nfunction determineSubType(mainType, newCmptOption, existComponent, componentModelCtor) {\n  var subType = newCmptOption.type ? newCmptOption.type : existComponent ? existComponent.subType : componentModelCtor.determineSubType(mainType, newCmptOption);\n  return subType;\n}\n\nexport function compressBatches(batchA, batchB) {\n  var mapA = {};\n  var mapB = {};\n  makeMap(batchA || [], mapA);\n  makeMap(batchB || [], mapB, mapA);\n  return [mapToArray(mapA), mapToArray(mapB)];\n\n  function makeMap(sourceBatch, map, otherMap) {\n    for (var i = 0, len = sourceBatch.length; i < len; i++) {\n      var seriesId = convertOptionIdName(sourceBatch[i].seriesId, null);\n\n      if (seriesId == null) {\n        return;\n      }\n\n      var dataIndices = normalizeToArray(sourceBatch[i].dataIndex);\n      var otherDataIndices = otherMap && otherMap[seriesId];\n\n      for (var j = 0, lenj = dataIndices.length; j < lenj; j++) {\n        var dataIndex = dataIndices[j];\n\n        if (otherDataIndices && otherDataIndices[dataIndex]) {\n          otherDataIndices[dataIndex] = null;\n        } else {\n          (map[seriesId] || (map[seriesId] = {}))[dataIndex] = 1;\n        }\n      }\n    }\n  }\n\n  function mapToArray(map, isData) {\n    var result = [];\n\n    for (var i in map) {\n      if (map.hasOwnProperty(i) && map[i] != null) {\n        if (isData) {\n          result.push(+i);\n        } else {\n          var dataIndices = mapToArray(map[i], true);\n          dataIndices.length && result.push({\n            seriesId: i,\n            dataIndex: dataIndices\n          });\n        }\n      }\n    }\n\n    return result;\n  }\n}\nexport function queryDataIndex(data, payload) {\n  if (payload.dataIndexInside != null) {\n    return payload.dataIndexInside;\n  } else if (payload.dataIndex != null) {\n    return isArray(payload.dataIndex) ? map(payload.dataIndex, function (value) {\n      return data.indexOfRawIndex(value);\n    }) : data.indexOfRawIndex(payload.dataIndex);\n  } else if (payload.name != null) {\n    return isArray(payload.name) ? map(payload.name, function (value) {\n      return data.indexOfName(value);\n    }) : data.indexOfName(payload.name);\n  }\n}\nexport function makeInner() {\n  var key = '__ec_inner_' + innerUniqueIndex++;\n  return function (hostObj) {\n    return hostObj[key] || (hostObj[key] = {});\n  };\n}\nvar innerUniqueIndex = getRandomIdBase();\nexport function parseFinder(ecModel, finderInput, opt) {\n  var finder;\n\n  if (isString(finderInput)) {\n    var obj = {};\n    obj[finderInput + 'Index'] = 0;\n    finder = obj;\n  } else {\n    finder = finderInput;\n  }\n\n  var queryOptionMap = createHashMap();\n  var result = {};\n  var mainTypeSpecified = false;\n  each(finder, function (value, key) {\n    if (key === 'dataIndex' || key === 'dataIndexInside') {\n      result[key] = value;\n      return;\n    }\n\n    var parsedKey = key.match(/^(\\w+)(Index|Id|Name)$/) || [];\n    var mainType = parsedKey[1];\n    var queryType = (parsedKey[2] || '').toLowerCase();\n\n    if (!mainType || !queryType || opt && opt.includeMainTypes && indexOf(opt.includeMainTypes, mainType) < 0) {\n      return;\n    }\n\n    mainTypeSpecified = mainTypeSpecified || !!mainType;\n    var queryOption = queryOptionMap.get(mainType) || queryOptionMap.set(mainType, {});\n    queryOption[queryType] = value;\n  });\n  var defaultMainType = opt ? opt.defaultMainType : null;\n\n  if (!mainTypeSpecified && defaultMainType) {\n    queryOptionMap.set(defaultMainType, {});\n  }\n\n  queryOptionMap.each(function (queryOption, mainType) {\n    var queryResult = queryReferringComponents(ecModel, mainType, queryOption, {\n      useDefault: defaultMainType === mainType,\n      enableAll: opt && opt.enableAll != null ? opt.enableAll : true,\n      enableNone: opt && opt.enableNone != null ? opt.enableNone : true\n    });\n    result[mainType + 'Models'] = queryResult.models;\n    result[mainType + 'Model'] = queryResult.models[0];\n  });\n  return result;\n}\nexport var SINGLE_REFERRING = {\n  useDefault: true,\n  enableAll: false,\n  enableNone: false\n};\nexport var MULTIPLE_REFERRING = {\n  useDefault: false,\n  enableAll: true,\n  enableNone: true\n};\nexport function queryReferringComponents(ecModel, mainType, userOption, opt) {\n  opt = opt || SINGLE_REFERRING;\n  var indexOption = userOption.index;\n  var idOption = userOption.id;\n  var nameOption = userOption.name;\n  var result = {\n    models: null,\n    specified: indexOption != null || idOption != null || nameOption != null\n  };\n\n  if (!result.specified) {\n    var firstCmpt = void 0;\n    result.models = opt.useDefault && (firstCmpt = ecModel.getComponent(mainType)) ? [firstCmpt] : [];\n    return result;\n  }\n\n  if (indexOption === 'none' || indexOption === false) {\n    assert(opt.enableNone, '`\"none\"` or `false` is not a valid value on index option.');\n    result.models = [];\n    return result;\n  }\n\n  if (indexOption === 'all') {\n    assert(opt.enableAll, '`\"all\"` is not a valid value on index option.');\n    indexOption = idOption = nameOption = null;\n  }\n\n  result.models = ecModel.queryComponents({\n    mainType: mainType,\n    index: indexOption,\n    id: idOption,\n    name: nameOption\n  });\n  return result;\n}\nexport function setAttribute(dom, key, value) {\n  dom.setAttribute ? dom.setAttribute(key, value) : dom[key] = value;\n}\nexport function getAttribute(dom, key) {\n  return dom.getAttribute ? dom.getAttribute(key) : dom[key];\n}\nexport function getTooltipRenderMode(renderModeOption) {\n  if (renderModeOption === 'auto') {\n    return env.domSupported ? 'html' : 'richText';\n  } else {\n    return renderModeOption || 'html';\n  }\n}\nexport function groupData(array, getKey) {\n  var buckets = createHashMap();\n  var keys = [];\n  each(array, function (item) {\n    var key = getKey(item);\n    (buckets.get(key) || (keys.push(key), buckets.set(key, []))).push(item);\n  });\n  return {\n    keys: keys,\n    buckets: buckets\n  };\n}\nexport function interpolateRawValues(data, precision, sourceValue, targetValue, percent) {\n  var isAutoPrecision = precision == null || precision === 'auto';\n\n  if (targetValue == null) {\n    return targetValue;\n  }\n\n  if (typeof targetValue === 'number') {\n    var value = interpolateNumber(sourceValue || 0, targetValue, percent);\n    return round(value, isAutoPrecision ? Math.max(getPrecisionSafe(sourceValue || 0), getPrecisionSafe(targetValue)) : precision);\n  } else if (typeof targetValue === 'string') {\n    return percent < 1 ? sourceValue : targetValue;\n  } else {\n    var interpolated = [];\n    var leftArr = sourceValue;\n    var rightArr = targetValue;\n    var length_1 = Math.max(leftArr ? leftArr.length : 0, rightArr.length);\n\n    for (var i = 0; i < length_1; ++i) {\n      var info = data.getDimensionInfo(i);\n\n      if (info.type === 'ordinal') {\n        interpolated[i] = (percent < 1 && leftArr ? leftArr : rightArr)[i];\n      } else {\n        var leftVal = leftArr && leftArr[i] ? leftArr[i] : 0;\n        var rightVal = rightArr[i];\n        var value = interpolateNumber(leftVal, rightVal, percent);\n        interpolated[i] = round(value, isAutoPrecision ? Math.max(getPrecisionSafe(leftVal), getPrecisionSafe(rightVal)) : precision);\n      }\n    }\n\n    return interpolated;\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __spreadArrays } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nvar TYPE_DELIMITER = '.';\nvar IS_CONTAINER = '___EC__COMPONENT__CONTAINER___';\nvar IS_EXTENDED_CLASS = '___EC__EXTENDED_CLASS___';\nexport function parseClassType(componentType) {\n  var ret = {\n    main: '',\n    sub: ''\n  };\n\n  if (componentType) {\n    var typeArr = componentType.split(TYPE_DELIMITER);\n    ret.main = typeArr[0] || '';\n    ret.sub = typeArr[1] || '';\n  }\n\n  return ret;\n}\n\nfunction checkClassType(componentType) {\n  zrUtil.assert(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(componentType), 'componentType \"' + componentType + '\" illegal');\n}\n\nexport function isExtendedClass(clz) {\n  return !!(clz && clz[IS_EXTENDED_CLASS]);\n}\nexport function enableClassExtend(rootClz, mandatoryMethods) {\n  rootClz.$constructor = rootClz;\n\n  rootClz.extend = function (proto) {\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.each(mandatoryMethods, function (method) {\n        if (!proto[method]) {\n          console.warn('Method `' + method + '` should be implemented' + (proto.type ? ' in ' + proto.type : '') + '.');\n        }\n      });\n    }\n\n    var superClass = this;\n\n    function ExtendedClass() {\n      var args = [];\n\n      for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n      }\n\n      if (!proto.$constructor) {\n        if (!isESClass(superClass)) {\n          superClass.apply(this, arguments);\n        } else {\n          var ins = zrUtil.createObject(ExtendedClass.prototype, new (superClass.bind.apply(superClass, __spreadArrays([void 0], args)))());\n          return ins;\n        }\n      } else {\n        proto.$constructor.apply(this, arguments);\n      }\n    }\n\n    ExtendedClass[IS_EXTENDED_CLASS] = true;\n    zrUtil.extend(ExtendedClass.prototype, proto);\n    ExtendedClass.extend = this.extend;\n    ExtendedClass.superCall = superCall;\n    ExtendedClass.superApply = superApply;\n    zrUtil.inherits(ExtendedClass, this);\n    ExtendedClass.superClass = superClass;\n    return ExtendedClass;\n  };\n}\n\nfunction isESClass(fn) {\n  return typeof fn === 'function' && /^class\\s/.test(Function.prototype.toString.call(fn));\n}\n\nexport function mountExtend(SubClz, SupperClz) {\n  SubClz.extend = SupperClz.extend;\n}\nvar classBase = Math.round(Math.random() * 10);\nexport function enableClassCheck(target) {\n  var classAttr = ['__\\0is_clz', classBase++].join('_');\n  target.prototype[classAttr] = true;\n\n  if (process.env.NODE_ENV !== 'production') {\n    zrUtil.assert(!target.isInstance, 'The method \"is\" can not be defined.');\n  }\n\n  target.isInstance = function (obj) {\n    return !!(obj && obj[classAttr]);\n  };\n}\n\nfunction superCall(context, methodName) {\n  var args = [];\n\n  for (var _i = 2; _i < arguments.length; _i++) {\n    args[_i - 2] = arguments[_i];\n  }\n\n  return this.superClass.prototype[methodName].apply(context, args);\n}\n\nfunction superApply(context, methodName, args) {\n  return this.superClass.prototype[methodName].apply(context, args);\n}\n\nexport function enableClassManagement(target) {\n  var storage = {};\n\n  target.registerClass = function (clz) {\n    var componentFullType = clz.type || clz.prototype.type;\n\n    if (componentFullType) {\n      checkClassType(componentFullType);\n      clz.prototype.type = componentFullType;\n      var componentTypeInfo = parseClassType(componentFullType);\n\n      if (!componentTypeInfo.sub) {\n        if (process.env.NODE_ENV !== 'production') {\n          if (storage[componentTypeInfo.main]) {\n            console.warn(componentTypeInfo.main + ' exists.');\n          }\n        }\n\n        storage[componentTypeInfo.main] = clz;\n      } else if (componentTypeInfo.sub !== IS_CONTAINER) {\n        var container = makeContainer(componentTypeInfo);\n        container[componentTypeInfo.sub] = clz;\n      }\n    }\n\n    return clz;\n  };\n\n  target.getClass = function (mainType, subType, throwWhenNotFound) {\n    var clz = storage[mainType];\n\n    if (clz && clz[IS_CONTAINER]) {\n      clz = subType ? clz[subType] : null;\n    }\n\n    if (throwWhenNotFound && !clz) {\n      throw new Error(!subType ? mainType + '.' + 'type should be specified.' : 'Component ' + mainType + '.' + (subType || '') + ' not exists. Load it first.');\n    }\n\n    return clz;\n  };\n\n  target.getClassesByMainType = function (componentType) {\n    var componentTypeInfo = parseClassType(componentType);\n    var result = [];\n    var obj = storage[componentTypeInfo.main];\n\n    if (obj && obj[IS_CONTAINER]) {\n      zrUtil.each(obj, function (o, type) {\n        type !== IS_CONTAINER && result.push(o);\n      });\n    } else {\n      result.push(obj);\n    }\n\n    return result;\n  };\n\n  target.hasClass = function (componentType) {\n    var componentTypeInfo = parseClassType(componentType);\n    return !!storage[componentTypeInfo.main];\n  };\n\n  target.getAllClassMainTypes = function () {\n    var types = [];\n    zrUtil.each(storage, function (obj, type) {\n      types.push(type);\n    });\n    return types;\n  };\n\n  target.hasSubTypes = function (componentType) {\n    var componentTypeInfo = parseClassType(componentType);\n    var obj = storage[componentTypeInfo.main];\n    return obj && obj[IS_CONTAINER];\n  };\n\n  function makeContainer(componentTypeInfo) {\n    var container = storage[componentTypeInfo.main];\n\n    if (!container || !container[IS_CONTAINER]) {\n      container = storage[componentTypeInfo.main] = {};\n      container[IS_CONTAINER] = true;\n    }\n\n    return container;\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function makeStyleMapper(properties, ignoreParent) {\n  for (var i = 0; i < properties.length; i++) {\n    if (!properties[i][1]) {\n      properties[i][1] = properties[i][0];\n    }\n  }\n\n  ignoreParent = ignoreParent || false;\n  return function (model, excludes, includes) {\n    var style = {};\n\n    for (var i = 0; i < properties.length; i++) {\n      var propName = properties[i][1];\n\n      if (excludes && zrUtil.indexOf(excludes, propName) >= 0 || includes && zrUtil.indexOf(includes, propName) < 0) {\n        continue;\n      }\n\n      var val = model.getShallow(propName, ignoreParent);\n\n      if (val != null) {\n        style[properties[i][0]] = val;\n      }\n    }\n\n    return style;\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport makeStyleMapper from './makeStyleMapper';\nexport var AREA_STYLE_KEY_MAP = [['fill', 'color'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['opacity'], ['shadowColor']];\nvar getAreaStyle = makeStyleMapper(AREA_STYLE_KEY_MAP);\n\nvar AreaStyleMixin = function () {\n  function AreaStyleMixin() {}\n\n  AreaStyleMixin.prototype.getAreaStyle = function (excludes, includes) {\n    return getAreaStyle(this, excludes, includes);\n  };\n\n  return AreaStyleMixin;\n}();\n\n;\nexport { AreaStyleMixin };","import LRU from '../../core/LRU';\nvar globalImageCache = new LRU(50);\nexport function findExistImage(newImageOrSrc) {\n    if (typeof newImageOrSrc === 'string') {\n        var cachedImgObj = globalImageCache.get(newImageOrSrc);\n        return cachedImgObj && cachedImgObj.image;\n    }\n    else {\n        return newImageOrSrc;\n    }\n}\nexport function createOrUpdateImage(newImageOrSrc, image, hostEl, onload, cbPayload) {\n    if (!newImageOrSrc) {\n        return image;\n    }\n    else if (typeof newImageOrSrc === 'string') {\n        if ((image && image.__zrImageSrc === newImageOrSrc) || !hostEl) {\n            return image;\n        }\n        var cachedImgObj = globalImageCache.get(newImageOrSrc);\n        var pendingWrap = { hostEl: hostEl, cb: onload, cbPayload: cbPayload };\n        if (cachedImgObj) {\n            image = cachedImgObj.image;\n            !isImageReady(image) && cachedImgObj.pending.push(pendingWrap);\n        }\n        else {\n            image = new Image();\n            image.onload = image.onerror = imageOnLoad;\n            globalImageCache.put(newImageOrSrc, image.__cachedImgObj = {\n                image: image,\n                pending: [pendingWrap]\n            });\n            image.src = image.__zrImageSrc = newImageOrSrc;\n        }\n        return image;\n    }\n    else {\n        return newImageOrSrc;\n    }\n}\nfunction imageOnLoad() {\n    var cachedImgObj = this.__cachedImgObj;\n    this.onload = this.onerror = this.__cachedImgObj = null;\n    for (var i = 0; i < cachedImgObj.pending.length; i++) {\n        var pendingWrap = cachedImgObj.pending[i];\n        var cb = pendingWrap.cb;\n        cb && cb(this, pendingWrap.cbPayload);\n        pendingWrap.hostEl.dirty();\n    }\n    cachedImgObj.pending.length = 0;\n}\nexport function isImageReady(image) {\n    return image && image.width && image.height;\n}\n","import * as imageHelper from '../helper/image';\nimport { extend, retrieve2, retrieve3, reduce } from '../../core/util';\nimport { getLineHeight, getWidth } from '../../contain/text';\nvar STYLE_REG = /\\{([a-zA-Z0-9_]+)\\|([^}]*)\\}/g;\nexport function truncateText(text, containerWidth, font, ellipsis, options) {\n    if (!containerWidth) {\n        return '';\n    }\n    var textLines = (text + '').split('\\n');\n    options = prepareTruncateOptions(containerWidth, font, ellipsis, options);\n    for (var i = 0, len = textLines.length; i < len; i++) {\n        textLines[i] = truncateSingleLine(textLines[i], options);\n    }\n    return textLines.join('\\n');\n}\nfunction prepareTruncateOptions(containerWidth, font, ellipsis, options) {\n    options = options || {};\n    var preparedOpts = extend({}, options);\n    preparedOpts.font = font;\n    ellipsis = retrieve2(ellipsis, '...');\n    preparedOpts.maxIterations = retrieve2(options.maxIterations, 2);\n    var minChar = preparedOpts.minChar = retrieve2(options.minChar, 0);\n    preparedOpts.cnCharWidth = getWidth('国', font);\n    var ascCharWidth = preparedOpts.ascCharWidth = getWidth('a', font);\n    preparedOpts.placeholder = retrieve2(options.placeholder, '');\n    var contentWidth = containerWidth = Math.max(0, containerWidth - 1);\n    for (var i = 0; i < minChar && contentWidth >= ascCharWidth; i++) {\n        contentWidth -= ascCharWidth;\n    }\n    var ellipsisWidth = getWidth(ellipsis, font);\n    if (ellipsisWidth > contentWidth) {\n        ellipsis = '';\n        ellipsisWidth = 0;\n    }\n    contentWidth = containerWidth - ellipsisWidth;\n    preparedOpts.ellipsis = ellipsis;\n    preparedOpts.ellipsisWidth = ellipsisWidth;\n    preparedOpts.contentWidth = contentWidth;\n    preparedOpts.containerWidth = containerWidth;\n    return preparedOpts;\n}\nfunction truncateSingleLine(textLine, options) {\n    var containerWidth = options.containerWidth;\n    var font = options.font;\n    var contentWidth = options.contentWidth;\n    if (!containerWidth) {\n        return '';\n    }\n    var lineWidth = getWidth(textLine, font);\n    if (lineWidth <= containerWidth) {\n        return textLine;\n    }\n    for (var j = 0;; j++) {\n        if (lineWidth <= contentWidth || j >= options.maxIterations) {\n            textLine += options.ellipsis;\n            break;\n        }\n        var subLength = j === 0\n            ? estimateLength(textLine, contentWidth, options.ascCharWidth, options.cnCharWidth)\n            : lineWidth > 0\n                ? Math.floor(textLine.length * contentWidth / lineWidth)\n                : 0;\n        textLine = textLine.substr(0, subLength);\n        lineWidth = getWidth(textLine, font);\n    }\n    if (textLine === '') {\n        textLine = options.placeholder;\n    }\n    return textLine;\n}\nfunction estimateLength(text, contentWidth, ascCharWidth, cnCharWidth) {\n    var width = 0;\n    var i = 0;\n    for (var len = text.length; i < len && width < contentWidth; i++) {\n        var charCode = text.charCodeAt(i);\n        width += (0 <= charCode && charCode <= 127) ? ascCharWidth : cnCharWidth;\n    }\n    return i;\n}\nexport function parsePlainText(text, style) {\n    text != null && (text += '');\n    var overflow = style.overflow;\n    var padding = style.padding;\n    var font = style.font;\n    var truncate = overflow === 'truncate';\n    var calculatedLineHeight = getLineHeight(font);\n    var lineHeight = retrieve2(style.lineHeight, calculatedLineHeight);\n    var truncateLineOverflow = style.lineOverflow === 'truncate';\n    var width = style.width;\n    var lines;\n    if (width != null && overflow === 'break' || overflow === 'breakAll') {\n        lines = text ? wrapText(text, style.font, width, overflow === 'breakAll', 0).lines : [];\n    }\n    else {\n        lines = text ? text.split('\\n') : [];\n    }\n    var contentHeight = lines.length * lineHeight;\n    var height = retrieve2(style.height, contentHeight);\n    if (contentHeight > height && truncateLineOverflow) {\n        var lineCount = Math.floor(height / lineHeight);\n        lines = lines.slice(0, lineCount);\n    }\n    var outerHeight = height;\n    var outerWidth = width;\n    if (padding) {\n        outerHeight += padding[0] + padding[2];\n        if (outerWidth != null) {\n            outerWidth += padding[1] + padding[3];\n        }\n    }\n    if (text && truncate && outerWidth != null) {\n        var options = prepareTruncateOptions(width, font, style.ellipsis, {\n            minChar: style.truncateMinChar,\n            placeholder: style.placeholder\n        });\n        for (var i = 0; i < lines.length; i++) {\n            lines[i] = truncateSingleLine(lines[i], options);\n        }\n    }\n    if (width == null) {\n        var maxWidth = 0;\n        for (var i = 0; i < lines.length; i++) {\n            maxWidth = Math.max(getWidth(lines[i], font), maxWidth);\n        }\n        width = maxWidth;\n    }\n    return {\n        lines: lines,\n        height: height,\n        outerHeight: outerHeight,\n        lineHeight: lineHeight,\n        calculatedLineHeight: calculatedLineHeight,\n        contentHeight: contentHeight,\n        width: width\n    };\n}\nvar RichTextToken = (function () {\n    function RichTextToken() {\n    }\n    return RichTextToken;\n}());\nvar RichTextLine = (function () {\n    function RichTextLine(tokens) {\n        this.tokens = [];\n        if (tokens) {\n            this.tokens = tokens;\n        }\n    }\n    return RichTextLine;\n}());\nvar RichTextContentBlock = (function () {\n    function RichTextContentBlock() {\n        this.width = 0;\n        this.height = 0;\n        this.contentWidth = 0;\n        this.contentHeight = 0;\n        this.outerWidth = 0;\n        this.outerHeight = 0;\n        this.lines = [];\n    }\n    return RichTextContentBlock;\n}());\nexport { RichTextContentBlock };\nexport function parseRichText(text, style) {\n    var contentBlock = new RichTextContentBlock();\n    text != null && (text += '');\n    if (!text) {\n        return contentBlock;\n    }\n    var topWidth = style.width;\n    var topHeight = style.height;\n    var overflow = style.overflow;\n    var wrapInfo = (overflow === 'break' || overflow === 'breakAll') && topWidth != null\n        ? { width: topWidth, accumWidth: 0, breakAll: overflow === 'breakAll' }\n        : null;\n    var lastIndex = STYLE_REG.lastIndex = 0;\n    var result;\n    while ((result = STYLE_REG.exec(text)) != null) {\n        var matchedIndex = result.index;\n        if (matchedIndex > lastIndex) {\n            pushTokens(contentBlock, text.substring(lastIndex, matchedIndex), style, wrapInfo);\n        }\n        pushTokens(contentBlock, result[2], style, wrapInfo, result[1]);\n        lastIndex = STYLE_REG.lastIndex;\n    }\n    if (lastIndex < text.length) {\n        pushTokens(contentBlock, text.substring(lastIndex, text.length), style, wrapInfo);\n    }\n    var pendingList = [];\n    var calculatedHeight = 0;\n    var calculatedWidth = 0;\n    var stlPadding = style.padding;\n    var truncate = overflow === 'truncate';\n    var truncateLine = style.lineOverflow === 'truncate';\n    var prevToken;\n    function finishLine(line, lineWidth, lineHeight) {\n        line.width = lineWidth;\n        line.lineHeight = lineHeight;\n        calculatedHeight += lineHeight;\n        calculatedWidth = Math.max(calculatedWidth, lineWidth);\n    }\n    outer: for (var i = 0; i < contentBlock.lines.length; i++) {\n        var line = contentBlock.lines[i];\n        var lineHeight = 0;\n        var lineWidth = 0;\n        for (var j = 0; j < line.tokens.length; j++) {\n            var token = line.tokens[j];\n            var tokenStyle = token.styleName && style.rich[token.styleName] || {};\n            var textPadding = token.textPadding = tokenStyle.padding;\n            var paddingH = textPadding ? textPadding[1] + textPadding[3] : 0;\n            var font = token.font = tokenStyle.font || style.font;\n            token.contentHeight = getLineHeight(font);\n            var tokenHeight = retrieve2(tokenStyle.height, token.contentHeight);\n            token.innerHeight = tokenHeight;\n            textPadding && (tokenHeight += textPadding[0] + textPadding[2]);\n            token.height = tokenHeight;\n            token.lineHeight = retrieve3(tokenStyle.lineHeight, style.lineHeight, tokenHeight);\n            token.align = tokenStyle && tokenStyle.align || style.align;\n            token.verticalAlign = tokenStyle && tokenStyle.verticalAlign || 'middle';\n            if (truncateLine && topHeight != null && calculatedHeight + token.lineHeight > topHeight) {\n                if (j > 0) {\n                    line.tokens = line.tokens.slice(0, j);\n                    finishLine(line, lineWidth, lineHeight);\n                    contentBlock.lines = contentBlock.lines.slice(0, i + 1);\n                }\n                else {\n                    contentBlock.lines = contentBlock.lines.slice(0, i);\n                }\n                break outer;\n            }\n            var styleTokenWidth = tokenStyle.width;\n            var tokenWidthNotSpecified = styleTokenWidth == null || styleTokenWidth === 'auto';\n            if (typeof styleTokenWidth === 'string' && styleTokenWidth.charAt(styleTokenWidth.length - 1) === '%') {\n                token.percentWidth = styleTokenWidth;\n                pendingList.push(token);\n                token.contentWidth = getWidth(token.text, font);\n            }\n            else {\n                if (tokenWidthNotSpecified) {\n                    var textBackgroundColor = tokenStyle.backgroundColor;\n                    var bgImg = textBackgroundColor && textBackgroundColor.image;\n                    if (bgImg) {\n                        bgImg = imageHelper.findExistImage(bgImg);\n                        if (imageHelper.isImageReady(bgImg)) {\n                            token.width = Math.max(token.width, bgImg.width * tokenHeight / bgImg.height);\n                        }\n                    }\n                }\n                var remainTruncWidth = truncate && topWidth != null\n                    ? topWidth - lineWidth : null;\n                if (remainTruncWidth != null && remainTruncWidth < token.width) {\n                    if (!tokenWidthNotSpecified || remainTruncWidth < paddingH) {\n                        token.text = '';\n                        token.width = token.contentWidth = 0;\n                    }\n                    else {\n                        token.text = truncateText(token.text, remainTruncWidth - paddingH, font, style.ellipsis, { minChar: style.truncateMinChar });\n                        token.width = token.contentWidth = getWidth(token.text, font);\n                    }\n                }\n                else {\n                    token.contentWidth = getWidth(token.text, font);\n                }\n            }\n            token.width += paddingH;\n            lineWidth += token.width;\n            tokenStyle && (lineHeight = Math.max(lineHeight, token.lineHeight));\n            prevToken = token;\n        }\n        finishLine(line, lineWidth, lineHeight);\n    }\n    contentBlock.outerWidth = contentBlock.width = retrieve2(topWidth, calculatedWidth);\n    contentBlock.outerHeight = contentBlock.height = retrieve2(topHeight, calculatedHeight);\n    contentBlock.contentHeight = calculatedHeight;\n    contentBlock.contentWidth = calculatedWidth;\n    if (stlPadding) {\n        contentBlock.outerWidth += stlPadding[1] + stlPadding[3];\n        contentBlock.outerHeight += stlPadding[0] + stlPadding[2];\n    }\n    for (var i = 0; i < pendingList.length; i++) {\n        var token = pendingList[i];\n        var percentWidth = token.percentWidth;\n        token.width = parseInt(percentWidth, 10) / 100 * contentBlock.width;\n    }\n    return contentBlock;\n}\nfunction pushTokens(block, str, style, wrapInfo, styleName) {\n    var isEmptyStr = str === '';\n    var tokenStyle = styleName && style.rich[styleName] || {};\n    var lines = block.lines;\n    var font = tokenStyle.font || style.font;\n    var newLine = false;\n    var strLines;\n    var linesWidths;\n    if (wrapInfo) {\n        var tokenPadding = tokenStyle.padding;\n        var tokenPaddingH = tokenPadding ? tokenPadding[1] + tokenPadding[3] : 0;\n        if (tokenStyle.width != null && tokenStyle.width !== 'auto') {\n            var outerWidth_1 = parsePercent(tokenStyle.width, wrapInfo.width) + tokenPaddingH;\n            if (lines.length > 0) {\n                if (outerWidth_1 + wrapInfo.accumWidth > wrapInfo.width) {\n                    strLines = str.split('\\n');\n                    newLine = true;\n                }\n            }\n            wrapInfo.accumWidth = outerWidth_1;\n        }\n        else {\n            var res = wrapText(str, font, wrapInfo.width, wrapInfo.breakAll, wrapInfo.accumWidth);\n            wrapInfo.accumWidth = res.accumWidth + tokenPaddingH;\n            linesWidths = res.linesWidths;\n            strLines = res.lines;\n        }\n    }\n    else {\n        strLines = str.split('\\n');\n    }\n    for (var i = 0; i < strLines.length; i++) {\n        var text = strLines[i];\n        var token = new RichTextToken();\n        token.styleName = styleName;\n        token.text = text;\n        token.isLineHolder = !text && !isEmptyStr;\n        if (typeof tokenStyle.width === 'number') {\n            token.width = tokenStyle.width;\n        }\n        else {\n            token.width = linesWidths\n                ? linesWidths[i]\n                : getWidth(text, font);\n        }\n        if (!i && !newLine) {\n            var tokens = (lines[lines.length - 1] || (lines[0] = new RichTextLine())).tokens;\n            var tokensLen = tokens.length;\n            (tokensLen === 1 && tokens[0].isLineHolder)\n                ? (tokens[0] = token)\n                : ((text || !tokensLen || isEmptyStr) && tokens.push(token));\n        }\n        else {\n            lines.push(new RichTextLine([token]));\n        }\n    }\n}\nfunction isLatin(ch) {\n    var code = ch.charCodeAt(0);\n    return code >= 0x21 && code <= 0xFF;\n}\nvar breakCharMap = reduce(',&?/;] '.split(''), function (obj, ch) {\n    obj[ch] = true;\n    return obj;\n}, {});\nfunction isWordBreakChar(ch) {\n    if (isLatin(ch)) {\n        if (breakCharMap[ch]) {\n            return true;\n        }\n        return false;\n    }\n    return true;\n}\nfunction wrapText(text, font, lineWidth, isBreakAll, lastAccumWidth) {\n    var lines = [];\n    var linesWidths = [];\n    var line = '';\n    var currentWord = '';\n    var currentWordWidth = 0;\n    var accumWidth = 0;\n    for (var i = 0; i < text.length; i++) {\n        var ch = text.charAt(i);\n        if (ch === '\\n') {\n            if (currentWord) {\n                line += currentWord;\n                accumWidth += currentWordWidth;\n            }\n            lines.push(line);\n            linesWidths.push(accumWidth);\n            line = '';\n            currentWord = '';\n            currentWordWidth = 0;\n            accumWidth = 0;\n            continue;\n        }\n        var chWidth = getWidth(ch, font);\n        var inWord = isBreakAll ? false : !isWordBreakChar(ch);\n        if (!lines.length\n            ? lastAccumWidth + accumWidth + chWidth > lineWidth\n            : accumWidth + chWidth > lineWidth) {\n            if (!accumWidth) {\n                if (inWord) {\n                    lines.push(currentWord);\n                    linesWidths.push(currentWordWidth);\n                    currentWord = ch;\n                    currentWordWidth = chWidth;\n                }\n                else {\n                    lines.push(ch);\n                    linesWidths.push(chWidth);\n                }\n            }\n            else if (line || currentWord) {\n                if (inWord) {\n                    if (!line) {\n                        line = currentWord;\n                        currentWord = '';\n                        currentWordWidth = 0;\n                        accumWidth = currentWordWidth;\n                    }\n                    lines.push(line);\n                    linesWidths.push(accumWidth - currentWordWidth);\n                    currentWord += ch;\n                    currentWordWidth += chWidth;\n                    line = '';\n                    accumWidth = currentWordWidth;\n                }\n                else {\n                    if (currentWord) {\n                        line += currentWord;\n                        accumWidth += currentWordWidth;\n                        currentWord = '';\n                        currentWordWidth = 0;\n                    }\n                    lines.push(line);\n                    linesWidths.push(accumWidth);\n                    line = ch;\n                    accumWidth = chWidth;\n                }\n            }\n            continue;\n        }\n        accumWidth += chWidth;\n        if (inWord) {\n            currentWord += ch;\n            currentWordWidth += chWidth;\n        }\n        else {\n            if (currentWord) {\n                line += currentWord;\n                currentWord = '';\n                currentWordWidth = 0;\n            }\n            line += ch;\n        }\n    }\n    if (!lines.length && !line) {\n        line = text;\n        currentWord = '';\n        currentWordWidth = 0;\n    }\n    if (currentWord) {\n        line += currentWord;\n    }\n    if (line) {\n        lines.push(line);\n        linesWidths.push(accumWidth);\n    }\n    if (lines.length === 1) {\n        accumWidth += lastAccumWidth;\n    }\n    return {\n        accumWidth: accumWidth,\n        lines: lines,\n        linesWidths: linesWidths\n    };\n}\nfunction parsePercent(value, maxValue) {\n    if (typeof value === 'string') {\n        if (value.lastIndexOf('%') >= 0) {\n            return parseFloat(value) / 100 * maxValue;\n        }\n        return parseFloat(value);\n    }\n    return value;\n}\n","import { __extends } from \"tslib\";\nimport Element from '../Element';\nimport BoundingRect from '../core/BoundingRect';\nimport { keys, extend, createObject } from '../core/util';\nvar STYLE_MAGIC_KEY = '__zr_style_' + Math.round((Math.random() * 10));\nexport var DEFAULT_COMMON_STYLE = {\n    shadowBlur: 0,\n    shadowOffsetX: 0,\n    shadowOffsetY: 0,\n    shadowColor: '#000',\n    opacity: 1,\n    blend: 'source-over'\n};\nexport var DEFAULT_COMMON_ANIMATION_PROPS = {\n    style: {\n        shadowBlur: true,\n        shadowOffsetX: true,\n        shadowOffsetY: true,\n        shadowColor: true,\n        opacity: true\n    }\n};\nDEFAULT_COMMON_STYLE[STYLE_MAGIC_KEY] = true;\nvar PRIMARY_STATES_KEYS = ['z', 'z2', 'invisible'];\nvar Displayable = (function (_super) {\n    __extends(Displayable, _super);\n    function Displayable(props) {\n        return _super.call(this, props) || this;\n    }\n    Displayable.prototype._init = function (props) {\n        var keysArr = keys(props);\n        for (var i = 0; i < keysArr.length; i++) {\n            var key = keysArr[i];\n            if (key === 'style') {\n                this.useStyle(props[key]);\n            }\n            else {\n                _super.prototype.attrKV.call(this, key, props[key]);\n            }\n        }\n        if (!this.style) {\n            this.useStyle({});\n        }\n    };\n    Displayable.prototype.beforeBrush = function () { };\n    Displayable.prototype.afterBrush = function () { };\n    Displayable.prototype.innerBeforeBrush = function () { };\n    Displayable.prototype.innerAfterBrush = function () { };\n    Displayable.prototype.shouldBePainted = function (viewWidth, viewHeight, considerClipPath, considerAncestors) {\n        var m = this.transform;\n        if (this.ignore\n            || this.invisible\n            || this.style.opacity === 0\n            || (this.culling\n                && isDisplayableCulled(this, viewWidth, viewHeight))\n            || (m && !m[0] && !m[3])) {\n            return false;\n        }\n        if (considerClipPath && this.__clipPaths) {\n            for (var i = 0; i < this.__clipPaths.length; ++i) {\n                if (this.__clipPaths[i].isZeroArea()) {\n                    return false;\n                }\n            }\n        }\n        if (considerAncestors && this.parent) {\n            var parent_1 = this.parent;\n            while (parent_1) {\n                if (parent_1.ignore) {\n                    return false;\n                }\n                parent_1 = parent_1.parent;\n            }\n        }\n        return true;\n    };\n    Displayable.prototype.contain = function (x, y) {\n        return this.rectContain(x, y);\n    };\n    Displayable.prototype.traverse = function (cb, context) {\n        cb.call(context, this);\n    };\n    Displayable.prototype.rectContain = function (x, y) {\n        var coord = this.transformCoordToLocal(x, y);\n        var rect = this.getBoundingRect();\n        return rect.contain(coord[0], coord[1]);\n    };\n    Displayable.prototype.getPaintRect = function () {\n        var rect = this._paintRect;\n        if (!this._paintRect || this.__dirty) {\n            var transform = this.transform;\n            var elRect = this.getBoundingRect();\n            var style = this.style;\n            var shadowSize = style.shadowBlur || 0;\n            var shadowOffsetX = style.shadowOffsetX || 0;\n            var shadowOffsetY = style.shadowOffsetY || 0;\n            rect = this._paintRect || (this._paintRect = new BoundingRect(0, 0, 0, 0));\n            if (transform) {\n                BoundingRect.applyTransform(rect, elRect, transform);\n            }\n            else {\n                rect.copy(elRect);\n            }\n            if (shadowSize || shadowOffsetX || shadowOffsetY) {\n                rect.width += shadowSize * 2 + Math.abs(shadowOffsetX);\n                rect.height += shadowSize * 2 + Math.abs(shadowOffsetY);\n                rect.x = Math.min(rect.x, rect.x + shadowOffsetX - shadowSize);\n                rect.y = Math.min(rect.y, rect.y + shadowOffsetY - shadowSize);\n            }\n            var tolerance = this.dirtyRectTolerance;\n            if (!rect.isZero()) {\n                rect.x = Math.floor(rect.x - tolerance);\n                rect.y = Math.floor(rect.y - tolerance);\n                rect.width = Math.ceil(rect.width + 1 + tolerance * 2);\n                rect.height = Math.ceil(rect.height + 1 + tolerance * 2);\n            }\n        }\n        return rect;\n    };\n    Displayable.prototype.setPrevPaintRect = function (paintRect) {\n        if (paintRect) {\n            this._prevPaintRect = this._prevPaintRect || new BoundingRect(0, 0, 0, 0);\n            this._prevPaintRect.copy(paintRect);\n        }\n        else {\n            this._prevPaintRect = null;\n        }\n    };\n    Displayable.prototype.getPrevPaintRect = function () {\n        return this._prevPaintRect;\n    };\n    Displayable.prototype.animateStyle = function (loop) {\n        return this.animate('style', loop);\n    };\n    Displayable.prototype.updateDuringAnimation = function (targetKey) {\n        if (targetKey === 'style') {\n            this.dirtyStyle();\n        }\n        else {\n            this.markRedraw();\n        }\n    };\n    Displayable.prototype.attrKV = function (key, value) {\n        if (key !== 'style') {\n            _super.prototype.attrKV.call(this, key, value);\n        }\n        else {\n            if (!this.style) {\n                this.useStyle(value);\n            }\n            else {\n                this.setStyle(value);\n            }\n        }\n    };\n    Displayable.prototype.setStyle = function (keyOrObj, value) {\n        if (typeof keyOrObj === 'string') {\n            this.style[keyOrObj] = value;\n        }\n        else {\n            extend(this.style, keyOrObj);\n        }\n        this.dirtyStyle();\n        return this;\n    };\n    Displayable.prototype.dirtyStyle = function () {\n        this.markRedraw();\n        this.__dirty |= Displayable.STYLE_CHANGED_BIT;\n        if (this._rect) {\n            this._rect = null;\n        }\n    };\n    Displayable.prototype.dirty = function () {\n        this.dirtyStyle();\n    };\n    Displayable.prototype.styleChanged = function () {\n        return !!(this.__dirty & Displayable.STYLE_CHANGED_BIT);\n    };\n    Displayable.prototype.styleUpdated = function () {\n        this.__dirty &= ~Displayable.STYLE_CHANGED_BIT;\n    };\n    Displayable.prototype.createStyle = function (obj) {\n        return createObject(DEFAULT_COMMON_STYLE, obj);\n    };\n    Displayable.prototype.useStyle = function (obj) {\n        if (!obj[STYLE_MAGIC_KEY]) {\n            obj = this.createStyle(obj);\n        }\n        if (this.__inHover) {\n            this.__hoverStyle = obj;\n        }\n        else {\n            this.style = obj;\n        }\n        this.dirtyStyle();\n    };\n    Displayable.prototype.isStyleObject = function (obj) {\n        return obj[STYLE_MAGIC_KEY];\n    };\n    Displayable.prototype._innerSaveToNormal = function (toState) {\n        _super.prototype._innerSaveToNormal.call(this, toState);\n        var normalState = this._normalState;\n        if (toState.style && !normalState.style) {\n            normalState.style = this._mergeStyle(this.createStyle(), this.style);\n        }\n        this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS);\n    };\n    Displayable.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\n        _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\n        var needsRestoreToNormal = !(state && keepCurrentStates);\n        var targetStyle;\n        if (state && state.style) {\n            if (transition) {\n                if (keepCurrentStates) {\n                    targetStyle = state.style;\n                }\n                else {\n                    targetStyle = this._mergeStyle(this.createStyle(), normalState.style);\n                    this._mergeStyle(targetStyle, state.style);\n                }\n            }\n            else {\n                targetStyle = this._mergeStyle(this.createStyle(), keepCurrentStates ? this.style : normalState.style);\n                this._mergeStyle(targetStyle, state.style);\n            }\n        }\n        else if (needsRestoreToNormal) {\n            targetStyle = normalState.style;\n        }\n        if (targetStyle) {\n            if (transition) {\n                var sourceStyle = this.style;\n                this.style = this.createStyle(needsRestoreToNormal ? {} : sourceStyle);\n                if (needsRestoreToNormal) {\n                    var changedKeys = keys(sourceStyle);\n                    for (var i = 0; i < changedKeys.length; i++) {\n                        var key = changedKeys[i];\n                        if (key in targetStyle) {\n                            targetStyle[key] = targetStyle[key];\n                            this.style[key] = sourceStyle[key];\n                        }\n                    }\n                }\n                var targetKeys = keys(targetStyle);\n                for (var i = 0; i < targetKeys.length; i++) {\n                    var key = targetKeys[i];\n                    this.style[key] = this.style[key];\n                }\n                this._transitionState(stateName, {\n                    style: targetStyle\n                }, animationCfg, this.getAnimationStyleProps());\n            }\n            else {\n                this.useStyle(targetStyle);\n            }\n        }\n        for (var i = 0; i < PRIMARY_STATES_KEYS.length; i++) {\n            var key = PRIMARY_STATES_KEYS[i];\n            if (state && state[key] != null) {\n                this[key] = state[key];\n            }\n            else if (needsRestoreToNormal) {\n                if (normalState[key] != null) {\n                    this[key] = normalState[key];\n                }\n            }\n        }\n    };\n    Displayable.prototype._mergeStates = function (states) {\n        var mergedState = _super.prototype._mergeStates.call(this, states);\n        var mergedStyle;\n        for (var i = 0; i < states.length; i++) {\n            var state = states[i];\n            if (state.style) {\n                mergedStyle = mergedStyle || {};\n                this._mergeStyle(mergedStyle, state.style);\n            }\n        }\n        if (mergedStyle) {\n            mergedState.style = mergedStyle;\n        }\n        return mergedState;\n    };\n    Displayable.prototype._mergeStyle = function (targetStyle, sourceStyle) {\n        extend(targetStyle, sourceStyle);\n        return targetStyle;\n    };\n    Displayable.prototype.getAnimationStyleProps = function () {\n        return DEFAULT_COMMON_ANIMATION_PROPS;\n    };\n    Displayable.STYLE_CHANGED_BIT = 2;\n    Displayable.initDefaultProps = (function () {\n        var dispProto = Displayable.prototype;\n        dispProto.type = 'displayable';\n        dispProto.invisible = false;\n        dispProto.z = 0;\n        dispProto.z2 = 0;\n        dispProto.zlevel = 0;\n        dispProto.culling = false;\n        dispProto.cursor = 'pointer';\n        dispProto.rectHover = false;\n        dispProto.incremental = false;\n        dispProto._rect = null;\n        dispProto.dirtyRectTolerance = 0;\n        dispProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT;\n    })();\n    return Displayable;\n}(Element));\nvar tmpRect = new BoundingRect(0, 0, 0, 0);\nvar viewRect = new BoundingRect(0, 0, 0, 0);\nfunction isDisplayableCulled(el, width, height) {\n    tmpRect.copy(el.getBoundingRect());\n    if (el.transform) {\n        tmpRect.applyTransform(el.transform);\n    }\n    viewRect.width = width;\n    viewRect.height = height;\n    return !tmpRect.intersect(viewRect);\n}\nexport default Displayable;\n","import { create as v2Create, distSquare as v2DistSquare } from './vector';\nvar mathPow = Math.pow;\nvar mathSqrt = Math.sqrt;\nvar EPSILON = 1e-8;\nvar EPSILON_NUMERIC = 1e-4;\nvar THREE_SQRT = mathSqrt(3);\nvar ONE_THIRD = 1 / 3;\nvar _v0 = v2Create();\nvar _v1 = v2Create();\nvar _v2 = v2Create();\nfunction isAroundZero(val) {\n    return val > -EPSILON && val < EPSILON;\n}\nfunction isNotAroundZero(val) {\n    return val > EPSILON || val < -EPSILON;\n}\nexport function cubicAt(p0, p1, p2, p3, t) {\n    var onet = 1 - t;\n    return onet * onet * (onet * p0 + 3 * t * p1)\n        + t * t * (t * p3 + 3 * onet * p2);\n}\nexport function cubicDerivativeAt(p0, p1, p2, p3, t) {\n    var onet = 1 - t;\n    return 3 * (((p1 - p0) * onet + 2 * (p2 - p1) * t) * onet\n        + (p3 - p2) * t * t);\n}\nexport function cubicRootAt(p0, p1, p2, p3, val, roots) {\n    var a = p3 + 3 * (p1 - p2) - p0;\n    var b = 3 * (p2 - p1 * 2 + p0);\n    var c = 3 * (p1 - p0);\n    var d = p0 - val;\n    var A = b * b - 3 * a * c;\n    var B = b * c - 9 * a * d;\n    var C = c * c - 3 * b * d;\n    var n = 0;\n    if (isAroundZero(A) && isAroundZero(B)) {\n        if (isAroundZero(b)) {\n            roots[0] = 0;\n        }\n        else {\n            var t1 = -c / b;\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n        }\n    }\n    else {\n        var disc = B * B - 4 * A * C;\n        if (isAroundZero(disc)) {\n            var K = B / A;\n            var t1 = -b / a + K;\n            var t2 = -K / 2;\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n            if (t2 >= 0 && t2 <= 1) {\n                roots[n++] = t2;\n            }\n        }\n        else if (disc > 0) {\n            var discSqrt = mathSqrt(disc);\n            var Y1 = A * b + 1.5 * a * (-B + discSqrt);\n            var Y2 = A * b + 1.5 * a * (-B - discSqrt);\n            if (Y1 < 0) {\n                Y1 = -mathPow(-Y1, ONE_THIRD);\n            }\n            else {\n                Y1 = mathPow(Y1, ONE_THIRD);\n            }\n            if (Y2 < 0) {\n                Y2 = -mathPow(-Y2, ONE_THIRD);\n            }\n            else {\n                Y2 = mathPow(Y2, ONE_THIRD);\n            }\n            var t1 = (-b - (Y1 + Y2)) / (3 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n        }\n        else {\n            var T = (2 * A * b - 3 * a * B) / (2 * mathSqrt(A * A * A));\n            var theta = Math.acos(T) / 3;\n            var ASqrt = mathSqrt(A);\n            var tmp = Math.cos(theta);\n            var t1 = (-b - 2 * ASqrt * tmp) / (3 * a);\n            var t2 = (-b + ASqrt * (tmp + THREE_SQRT * Math.sin(theta))) / (3 * a);\n            var t3 = (-b + ASqrt * (tmp - THREE_SQRT * Math.sin(theta))) / (3 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n            if (t2 >= 0 && t2 <= 1) {\n                roots[n++] = t2;\n            }\n            if (t3 >= 0 && t3 <= 1) {\n                roots[n++] = t3;\n            }\n        }\n    }\n    return n;\n}\nexport function cubicExtrema(p0, p1, p2, p3, extrema) {\n    var b = 6 * p2 - 12 * p1 + 6 * p0;\n    var a = 9 * p1 + 3 * p3 - 3 * p0 - 9 * p2;\n    var c = 3 * p1 - 3 * p0;\n    var n = 0;\n    if (isAroundZero(a)) {\n        if (isNotAroundZero(b)) {\n            var t1 = -c / b;\n            if (t1 >= 0 && t1 <= 1) {\n                extrema[n++] = t1;\n            }\n        }\n    }\n    else {\n        var disc = b * b - 4 * a * c;\n        if (isAroundZero(disc)) {\n            extrema[0] = -b / (2 * a);\n        }\n        else if (disc > 0) {\n            var discSqrt = mathSqrt(disc);\n            var t1 = (-b + discSqrt) / (2 * a);\n            var t2 = (-b - discSqrt) / (2 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                extrema[n++] = t1;\n            }\n            if (t2 >= 0 && t2 <= 1) {\n                extrema[n++] = t2;\n            }\n        }\n    }\n    return n;\n}\nexport function cubicSubdivide(p0, p1, p2, p3, t, out) {\n    var p01 = (p1 - p0) * t + p0;\n    var p12 = (p2 - p1) * t + p1;\n    var p23 = (p3 - p2) * t + p2;\n    var p012 = (p12 - p01) * t + p01;\n    var p123 = (p23 - p12) * t + p12;\n    var p0123 = (p123 - p012) * t + p012;\n    out[0] = p0;\n    out[1] = p01;\n    out[2] = p012;\n    out[3] = p0123;\n    out[4] = p0123;\n    out[5] = p123;\n    out[6] = p23;\n    out[7] = p3;\n}\nexport function cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, out) {\n    var t;\n    var interval = 0.005;\n    var d = Infinity;\n    var prev;\n    var next;\n    var d1;\n    var d2;\n    _v0[0] = x;\n    _v0[1] = y;\n    for (var _t = 0; _t < 1; _t += 0.05) {\n        _v1[0] = cubicAt(x0, x1, x2, x3, _t);\n        _v1[1] = cubicAt(y0, y1, y2, y3, _t);\n        d1 = v2DistSquare(_v0, _v1);\n        if (d1 < d) {\n            t = _t;\n            d = d1;\n        }\n    }\n    d = Infinity;\n    for (var i = 0; i < 32; i++) {\n        if (interval < EPSILON_NUMERIC) {\n            break;\n        }\n        prev = t - interval;\n        next = t + interval;\n        _v1[0] = cubicAt(x0, x1, x2, x3, prev);\n        _v1[1] = cubicAt(y0, y1, y2, y3, prev);\n        d1 = v2DistSquare(_v1, _v0);\n        if (prev >= 0 && d1 < d) {\n            t = prev;\n            d = d1;\n        }\n        else {\n            _v2[0] = cubicAt(x0, x1, x2, x3, next);\n            _v2[1] = cubicAt(y0, y1, y2, y3, next);\n            d2 = v2DistSquare(_v2, _v0);\n            if (next <= 1 && d2 < d) {\n                t = next;\n                d = d2;\n            }\n            else {\n                interval *= 0.5;\n            }\n        }\n    }\n    if (out) {\n        out[0] = cubicAt(x0, x1, x2, x3, t);\n        out[1] = cubicAt(y0, y1, y2, y3, t);\n    }\n    return mathSqrt(d);\n}\nexport function cubicLength(x0, y0, x1, y1, x2, y2, x3, y3, iteration) {\n    var px = x0;\n    var py = y0;\n    var d = 0;\n    var step = 1 / iteration;\n    for (var i = 1; i <= iteration; i++) {\n        var t = i * step;\n        var x = cubicAt(x0, x1, x2, x3, t);\n        var y = cubicAt(y0, y1, y2, y3, t);\n        var dx = x - px;\n        var dy = y - py;\n        d += Math.sqrt(dx * dx + dy * dy);\n        px = x;\n        py = y;\n    }\n    return d;\n}\nexport function quadraticAt(p0, p1, p2, t) {\n    var onet = 1 - t;\n    return onet * (onet * p0 + 2 * t * p1) + t * t * p2;\n}\nexport function quadraticDerivativeAt(p0, p1, p2, t) {\n    return 2 * ((1 - t) * (p1 - p0) + t * (p2 - p1));\n}\nexport function quadraticRootAt(p0, p1, p2, val, roots) {\n    var a = p0 - 2 * p1 + p2;\n    var b = 2 * (p1 - p0);\n    var c = p0 - val;\n    var n = 0;\n    if (isAroundZero(a)) {\n        if (isNotAroundZero(b)) {\n            var t1 = -c / b;\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n        }\n    }\n    else {\n        var disc = b * b - 4 * a * c;\n        if (isAroundZero(disc)) {\n            var t1 = -b / (2 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n        }\n        else if (disc > 0) {\n            var discSqrt = mathSqrt(disc);\n            var t1 = (-b + discSqrt) / (2 * a);\n            var t2 = (-b - discSqrt) / (2 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n            if (t2 >= 0 && t2 <= 1) {\n                roots[n++] = t2;\n            }\n        }\n    }\n    return n;\n}\nexport function quadraticExtremum(p0, p1, p2) {\n    var divider = p0 + p2 - 2 * p1;\n    if (divider === 0) {\n        return 0.5;\n    }\n    else {\n        return (p0 - p1) / divider;\n    }\n}\nexport function quadraticSubdivide(p0, p1, p2, t, out) {\n    var p01 = (p1 - p0) * t + p0;\n    var p12 = (p2 - p1) * t + p1;\n    var p012 = (p12 - p01) * t + p01;\n    out[0] = p0;\n    out[1] = p01;\n    out[2] = p012;\n    out[3] = p012;\n    out[4] = p12;\n    out[5] = p2;\n}\nexport function quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, out) {\n    var t;\n    var interval = 0.005;\n    var d = Infinity;\n    _v0[0] = x;\n    _v0[1] = y;\n    for (var _t = 0; _t < 1; _t += 0.05) {\n        _v1[0] = quadraticAt(x0, x1, x2, _t);\n        _v1[1] = quadraticAt(y0, y1, y2, _t);\n        var d1 = v2DistSquare(_v0, _v1);\n        if (d1 < d) {\n            t = _t;\n            d = d1;\n        }\n    }\n    d = Infinity;\n    for (var i = 0; i < 32; i++) {\n        if (interval < EPSILON_NUMERIC) {\n            break;\n        }\n        var prev = t - interval;\n        var next = t + interval;\n        _v1[0] = quadraticAt(x0, x1, x2, prev);\n        _v1[1] = quadraticAt(y0, y1, y2, prev);\n        var d1 = v2DistSquare(_v1, _v0);\n        if (prev >= 0 && d1 < d) {\n            t = prev;\n            d = d1;\n        }\n        else {\n            _v2[0] = quadraticAt(x0, x1, x2, next);\n            _v2[1] = quadraticAt(y0, y1, y2, next);\n            var d2 = v2DistSquare(_v2, _v0);\n            if (next <= 1 && d2 < d) {\n                t = next;\n                d = d2;\n            }\n            else {\n                interval *= 0.5;\n            }\n        }\n    }\n    if (out) {\n        out[0] = quadraticAt(x0, x1, x2, t);\n        out[1] = quadraticAt(y0, y1, y2, t);\n    }\n    return mathSqrt(d);\n}\nexport function quadraticLength(x0, y0, x1, y1, x2, y2, iteration) {\n    var px = x0;\n    var py = y0;\n    var d = 0;\n    var step = 1 / iteration;\n    for (var i = 1; i <= iteration; i++) {\n        var t = i * step;\n        var x = quadraticAt(x0, x1, x2, t);\n        var y = quadraticAt(y0, y1, y2, t);\n        var dx = x - px;\n        var dy = y - py;\n        d += Math.sqrt(dx * dx + dy * dy);\n        px = x;\n        py = y;\n    }\n    return d;\n}\n","import * as vec2 from './vector';\nimport * as curve from './curve';\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI2 = Math.PI * 2;\nvar start = vec2.create();\nvar end = vec2.create();\nvar extremity = vec2.create();\nexport function fromPoints(points, min, max) {\n    if (points.length === 0) {\n        return;\n    }\n    var p = points[0];\n    var left = p[0];\n    var right = p[0];\n    var top = p[1];\n    var bottom = p[1];\n    for (var i = 1; i < points.length; i++) {\n        p = points[i];\n        left = mathMin(left, p[0]);\n        right = mathMax(right, p[0]);\n        top = mathMin(top, p[1]);\n        bottom = mathMax(bottom, p[1]);\n    }\n    min[0] = left;\n    min[1] = top;\n    max[0] = right;\n    max[1] = bottom;\n}\nexport function fromLine(x0, y0, x1, y1, min, max) {\n    min[0] = mathMin(x0, x1);\n    min[1] = mathMin(y0, y1);\n    max[0] = mathMax(x0, x1);\n    max[1] = mathMax(y0, y1);\n}\nvar xDim = [];\nvar yDim = [];\nexport function fromCubic(x0, y0, x1, y1, x2, y2, x3, y3, min, max) {\n    var cubicExtrema = curve.cubicExtrema;\n    var cubicAt = curve.cubicAt;\n    var n = cubicExtrema(x0, x1, x2, x3, xDim);\n    min[0] = Infinity;\n    min[1] = Infinity;\n    max[0] = -Infinity;\n    max[1] = -Infinity;\n    for (var i = 0; i < n; i++) {\n        var x = cubicAt(x0, x1, x2, x3, xDim[i]);\n        min[0] = mathMin(x, min[0]);\n        max[0] = mathMax(x, max[0]);\n    }\n    n = cubicExtrema(y0, y1, y2, y3, yDim);\n    for (var i = 0; i < n; i++) {\n        var y = cubicAt(y0, y1, y2, y3, yDim[i]);\n        min[1] = mathMin(y, min[1]);\n        max[1] = mathMax(y, max[1]);\n    }\n    min[0] = mathMin(x0, min[0]);\n    max[0] = mathMax(x0, max[0]);\n    min[0] = mathMin(x3, min[0]);\n    max[0] = mathMax(x3, max[0]);\n    min[1] = mathMin(y0, min[1]);\n    max[1] = mathMax(y0, max[1]);\n    min[1] = mathMin(y3, min[1]);\n    max[1] = mathMax(y3, max[1]);\n}\nexport function fromQuadratic(x0, y0, x1, y1, x2, y2, min, max) {\n    var quadraticExtremum = curve.quadraticExtremum;\n    var quadraticAt = curve.quadraticAt;\n    var tx = mathMax(mathMin(quadraticExtremum(x0, x1, x2), 1), 0);\n    var ty = mathMax(mathMin(quadraticExtremum(y0, y1, y2), 1), 0);\n    var x = quadraticAt(x0, x1, x2, tx);\n    var y = quadraticAt(y0, y1, y2, ty);\n    min[0] = mathMin(x0, x2, x);\n    min[1] = mathMin(y0, y2, y);\n    max[0] = mathMax(x0, x2, x);\n    max[1] = mathMax(y0, y2, y);\n}\nexport function fromArc(x, y, rx, ry, startAngle, endAngle, anticlockwise, min, max) {\n    var vec2Min = vec2.min;\n    var vec2Max = vec2.max;\n    var diff = Math.abs(startAngle - endAngle);\n    if (diff % PI2 < 1e-4 && diff > 1e-4) {\n        min[0] = x - rx;\n        min[1] = y - ry;\n        max[0] = x + rx;\n        max[1] = y + ry;\n        return;\n    }\n    start[0] = mathCos(startAngle) * rx + x;\n    start[1] = mathSin(startAngle) * ry + y;\n    end[0] = mathCos(endAngle) * rx + x;\n    end[1] = mathSin(endAngle) * ry + y;\n    vec2Min(min, start, end);\n    vec2Max(max, start, end);\n    startAngle = startAngle % (PI2);\n    if (startAngle < 0) {\n        startAngle = startAngle + PI2;\n    }\n    endAngle = endAngle % (PI2);\n    if (endAngle < 0) {\n        endAngle = endAngle + PI2;\n    }\n    if (startAngle > endAngle && !anticlockwise) {\n        endAngle += PI2;\n    }\n    else if (startAngle < endAngle && anticlockwise) {\n        startAngle += PI2;\n    }\n    if (anticlockwise) {\n        var tmp = endAngle;\n        endAngle = startAngle;\n        startAngle = tmp;\n    }\n    for (var angle = 0; angle < endAngle; angle += Math.PI / 2) {\n        if (angle > startAngle) {\n            extremity[0] = mathCos(angle) * rx + x;\n            extremity[1] = mathSin(angle) * ry + y;\n            vec2Min(min, extremity, min);\n            vec2Max(max, extremity, max);\n        }\n    }\n}\n","import * as vec2 from './vector';\nimport BoundingRect from './BoundingRect';\nimport { devicePixelRatio as dpr } from '../config';\nimport { fromLine, fromCubic, fromQuadratic, fromArc } from './bbox';\nimport { cubicAt, cubicLength, cubicSubdivide, quadraticLength, quadraticSubdivide } from './curve';\nvar CMD = {\n    M: 1,\n    L: 2,\n    C: 3,\n    Q: 4,\n    A: 5,\n    Z: 6,\n    R: 7\n};\nvar tmpOutX = [];\nvar tmpOutY = [];\nvar min = [];\nvar max = [];\nvar min2 = [];\nvar max2 = [];\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathCos = Math.cos;\nvar mathSin = Math.sin;\nvar mathSqrt = Math.sqrt;\nvar mathAbs = Math.abs;\nvar PI = Math.PI;\nvar PI2 = PI * 2;\nvar hasTypedArray = typeof Float32Array !== 'undefined';\nvar tmpAngles = [];\nfunction modPI2(radian) {\n    var n = Math.round(radian / PI * 1e8) / 1e8;\n    return (n % 2) * PI;\n}\nexport function normalizeArcAngles(angles, anticlockwise) {\n    var newStartAngle = modPI2(angles[0]);\n    if (newStartAngle < 0) {\n        newStartAngle += PI2;\n    }\n    var delta = newStartAngle - angles[0];\n    var newEndAngle = angles[1];\n    newEndAngle += delta;\n    if (!anticlockwise && newEndAngle - newStartAngle >= PI2) {\n        newEndAngle = newStartAngle + PI2;\n    }\n    else if (anticlockwise && newStartAngle - newEndAngle >= PI2) {\n        newEndAngle = newStartAngle - PI2;\n    }\n    else if (!anticlockwise && newStartAngle > newEndAngle) {\n        newEndAngle = newStartAngle +\n            (PI2 - modPI2(newStartAngle - newEndAngle));\n    }\n    else if (anticlockwise && newStartAngle < newEndAngle) {\n        newEndAngle = newStartAngle -\n            (PI2 - modPI2(newEndAngle - newStartAngle));\n    }\n    angles[0] = newStartAngle;\n    angles[1] = newEndAngle;\n}\nvar PathProxy = (function () {\n    function PathProxy(notSaveData) {\n        this.dpr = 1;\n        this._version = 0;\n        this._xi = 0;\n        this._yi = 0;\n        this._x0 = 0;\n        this._y0 = 0;\n        this._len = 0;\n        if (notSaveData) {\n            this._saveData = false;\n        }\n        if (this._saveData) {\n            this.data = [];\n        }\n    }\n    PathProxy.prototype.increaseVersion = function () {\n        this._version++;\n    };\n    PathProxy.prototype.getVersion = function () {\n        return this._version;\n    };\n    PathProxy.prototype.setScale = function (sx, sy, segmentIgnoreThreshold) {\n        segmentIgnoreThreshold = segmentIgnoreThreshold || 0;\n        if (segmentIgnoreThreshold > 0) {\n            this._ux = mathAbs(segmentIgnoreThreshold / dpr / sx) || 0;\n            this._uy = mathAbs(segmentIgnoreThreshold / dpr / sy) || 0;\n        }\n    };\n    PathProxy.prototype.setDPR = function (dpr) {\n        this.dpr = dpr;\n    };\n    PathProxy.prototype.setContext = function (ctx) {\n        this._ctx = ctx;\n    };\n    PathProxy.prototype.getContext = function () {\n        return this._ctx;\n    };\n    PathProxy.prototype.beginPath = function () {\n        this._ctx && this._ctx.beginPath();\n        this.reset();\n        return this;\n    };\n    PathProxy.prototype.reset = function () {\n        if (this._saveData) {\n            this._len = 0;\n        }\n        if (this._lineDash) {\n            this._lineDash = null;\n            this._dashOffset = 0;\n        }\n        if (this._pathSegLen) {\n            this._pathSegLen = null;\n            this._pathLen = 0;\n        }\n        this._version++;\n    };\n    PathProxy.prototype.moveTo = function (x, y) {\n        this.addData(CMD.M, x, y);\n        this._ctx && this._ctx.moveTo(x, y);\n        this._x0 = x;\n        this._y0 = y;\n        this._xi = x;\n        this._yi = y;\n        return this;\n    };\n    PathProxy.prototype.lineTo = function (x, y) {\n        var exceedUnit = mathAbs(x - this._xi) > this._ux\n            || mathAbs(y - this._yi) > this._uy\n            || this._len < 5;\n        this.addData(CMD.L, x, y);\n        if (this._ctx && exceedUnit) {\n            this._needsDash ? this._dashedLineTo(x, y)\n                : this._ctx.lineTo(x, y);\n        }\n        if (exceedUnit) {\n            this._xi = x;\n            this._yi = y;\n        }\n        return this;\n    };\n    PathProxy.prototype.bezierCurveTo = function (x1, y1, x2, y2, x3, y3) {\n        this.addData(CMD.C, x1, y1, x2, y2, x3, y3);\n        if (this._ctx) {\n            this._needsDash ? this._dashedBezierTo(x1, y1, x2, y2, x3, y3)\n                : this._ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\n        }\n        this._xi = x3;\n        this._yi = y3;\n        return this;\n    };\n    PathProxy.prototype.quadraticCurveTo = function (x1, y1, x2, y2) {\n        this.addData(CMD.Q, x1, y1, x2, y2);\n        if (this._ctx) {\n            this._needsDash ? this._dashedQuadraticTo(x1, y1, x2, y2)\n                : this._ctx.quadraticCurveTo(x1, y1, x2, y2);\n        }\n        this._xi = x2;\n        this._yi = y2;\n        return this;\n    };\n    PathProxy.prototype.arc = function (cx, cy, r, startAngle, endAngle, anticlockwise) {\n        tmpAngles[0] = startAngle;\n        tmpAngles[1] = endAngle;\n        normalizeArcAngles(tmpAngles, anticlockwise);\n        startAngle = tmpAngles[0];\n        endAngle = tmpAngles[1];\n        var delta = endAngle - startAngle;\n        this.addData(CMD.A, cx, cy, r, r, startAngle, delta, 0, anticlockwise ? 0 : 1);\n        this._ctx && this._ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\n        this._xi = mathCos(endAngle) * r + cx;\n        this._yi = mathSin(endAngle) * r + cy;\n        return this;\n    };\n    PathProxy.prototype.arcTo = function (x1, y1, x2, y2, radius) {\n        if (this._ctx) {\n            this._ctx.arcTo(x1, y1, x2, y2, radius);\n        }\n        return this;\n    };\n    PathProxy.prototype.rect = function (x, y, w, h) {\n        this._ctx && this._ctx.rect(x, y, w, h);\n        this.addData(CMD.R, x, y, w, h);\n        return this;\n    };\n    PathProxy.prototype.closePath = function () {\n        this.addData(CMD.Z);\n        var ctx = this._ctx;\n        var x0 = this._x0;\n        var y0 = this._y0;\n        if (ctx) {\n            this._needsDash && this._dashedLineTo(x0, y0);\n            ctx.closePath();\n        }\n        this._xi = x0;\n        this._yi = y0;\n        return this;\n    };\n    PathProxy.prototype.fill = function (ctx) {\n        ctx && ctx.fill();\n        this.toStatic();\n    };\n    PathProxy.prototype.stroke = function (ctx) {\n        ctx && ctx.stroke();\n        this.toStatic();\n    };\n    PathProxy.prototype.setLineDash = function (lineDash) {\n        if (lineDash instanceof Array) {\n            this._lineDash = lineDash;\n            this._dashIdx = 0;\n            var lineDashSum = 0;\n            for (var i = 0; i < lineDash.length; i++) {\n                lineDashSum += lineDash[i];\n            }\n            this._dashSum = lineDashSum;\n            this._needsDash = true;\n        }\n        else {\n            this._lineDash = null;\n            this._needsDash = false;\n        }\n        return this;\n    };\n    PathProxy.prototype.setLineDashOffset = function (offset) {\n        this._dashOffset = offset;\n        return this;\n    };\n    PathProxy.prototype.len = function () {\n        return this._len;\n    };\n    PathProxy.prototype.setData = function (data) {\n        var len = data.length;\n        if (!(this.data && this.data.length === len) && hasTypedArray) {\n            this.data = new Float32Array(len);\n        }\n        for (var i = 0; i < len; i++) {\n            this.data[i] = data[i];\n        }\n        this._len = len;\n    };\n    PathProxy.prototype.appendPath = function (path) {\n        if (!(path instanceof Array)) {\n            path = [path];\n        }\n        var len = path.length;\n        var appendSize = 0;\n        var offset = this._len;\n        for (var i = 0; i < len; i++) {\n            appendSize += path[i].len();\n        }\n        if (hasTypedArray && (this.data instanceof Float32Array)) {\n            this.data = new Float32Array(offset + appendSize);\n        }\n        for (var i = 0; i < len; i++) {\n            var appendPathData = path[i].data;\n            for (var k = 0; k < appendPathData.length; k++) {\n                this.data[offset++] = appendPathData[k];\n            }\n        }\n        this._len = offset;\n    };\n    PathProxy.prototype.addData = function (cmd, a, b, c, d, e, f, g, h) {\n        if (!this._saveData) {\n            return;\n        }\n        var data = this.data;\n        if (this._len + arguments.length > data.length) {\n            this._expandData();\n            data = this.data;\n        }\n        for (var i = 0; i < arguments.length; i++) {\n            data[this._len++] = arguments[i];\n        }\n    };\n    PathProxy.prototype._expandData = function () {\n        if (!(this.data instanceof Array)) {\n            var newData = [];\n            for (var i = 0; i < this._len; i++) {\n                newData[i] = this.data[i];\n            }\n            this.data = newData;\n        }\n    };\n    PathProxy.prototype._dashedLineTo = function (x1, y1) {\n        var dashSum = this._dashSum;\n        var lineDash = this._lineDash;\n        var ctx = this._ctx;\n        var offset = this._dashOffset;\n        var x0 = this._xi;\n        var y0 = this._yi;\n        var dx = x1 - x0;\n        var dy = y1 - y0;\n        var dist = mathSqrt(dx * dx + dy * dy);\n        var x = x0;\n        var y = y0;\n        var nDash = lineDash.length;\n        var dash;\n        var idx;\n        dx /= dist;\n        dy /= dist;\n        if (offset < 0) {\n            offset = dashSum + offset;\n        }\n        offset %= dashSum;\n        x -= offset * dx;\n        y -= offset * dy;\n        while ((dx > 0 && x <= x1) || (dx < 0 && x >= x1)\n            || (dx === 0 && ((dy > 0 && y <= y1) || (dy < 0 && y >= y1)))) {\n            idx = this._dashIdx;\n            dash = lineDash[idx];\n            x += dx * dash;\n            y += dy * dash;\n            this._dashIdx = (idx + 1) % nDash;\n            if ((dx > 0 && x < x0) || (dx < 0 && x > x0) || (dy > 0 && y < y0) || (dy < 0 && y > y0)) {\n                continue;\n            }\n            ctx[idx % 2 ? 'moveTo' : 'lineTo'](dx >= 0 ? mathMin(x, x1) : mathMax(x, x1), dy >= 0 ? mathMin(y, y1) : mathMax(y, y1));\n        }\n        dx = x - x1;\n        dy = y - y1;\n        this._dashOffset = -mathSqrt(dx * dx + dy * dy);\n    };\n    PathProxy.prototype._dashedBezierTo = function (x1, y1, x2, y2, x3, y3) {\n        var ctx = this._ctx;\n        var dashSum = this._dashSum;\n        var offset = this._dashOffset;\n        var lineDash = this._lineDash;\n        var x0 = this._xi;\n        var y0 = this._yi;\n        var bezierLen = 0;\n        var idx = this._dashIdx;\n        var nDash = lineDash.length;\n        var t;\n        var dx;\n        var dy;\n        var x;\n        var y;\n        var tmpLen = 0;\n        if (offset < 0) {\n            offset = dashSum + offset;\n        }\n        offset %= dashSum;\n        for (t = 0; t < 1; t += 0.1) {\n            dx = cubicAt(x0, x1, x2, x3, t + 0.1)\n                - cubicAt(x0, x1, x2, x3, t);\n            dy = cubicAt(y0, y1, y2, y3, t + 0.1)\n                - cubicAt(y0, y1, y2, y3, t);\n            bezierLen += mathSqrt(dx * dx + dy * dy);\n        }\n        for (; idx < nDash; idx++) {\n            tmpLen += lineDash[idx];\n            if (tmpLen > offset) {\n                break;\n            }\n        }\n        t = (tmpLen - offset) / bezierLen;\n        while (t <= 1) {\n            x = cubicAt(x0, x1, x2, x3, t);\n            y = cubicAt(y0, y1, y2, y3, t);\n            idx % 2 ? ctx.moveTo(x, y)\n                : ctx.lineTo(x, y);\n            t += lineDash[idx] / bezierLen;\n            idx = (idx + 1) % nDash;\n        }\n        (idx % 2 !== 0) && ctx.lineTo(x3, y3);\n        dx = x3 - x;\n        dy = y3 - y;\n        this._dashOffset = -mathSqrt(dx * dx + dy * dy);\n    };\n    PathProxy.prototype._dashedQuadraticTo = function (x1, y1, x2, y2) {\n        var x3 = x2;\n        var y3 = y2;\n        x2 = (x2 + 2 * x1) / 3;\n        y2 = (y2 + 2 * y1) / 3;\n        x1 = (this._xi + 2 * x1) / 3;\n        y1 = (this._yi + 2 * y1) / 3;\n        this._dashedBezierTo(x1, y1, x2, y2, x3, y3);\n    };\n    PathProxy.prototype.toStatic = function () {\n        if (!this._saveData) {\n            return;\n        }\n        var data = this.data;\n        if (data instanceof Array) {\n            data.length = this._len;\n            if (hasTypedArray && this._len > 11) {\n                this.data = new Float32Array(data);\n            }\n        }\n    };\n    PathProxy.prototype.getBoundingRect = function () {\n        min[0] = min[1] = min2[0] = min2[1] = Number.MAX_VALUE;\n        max[0] = max[1] = max2[0] = max2[1] = -Number.MAX_VALUE;\n        var data = this.data;\n        var xi = 0;\n        var yi = 0;\n        var x0 = 0;\n        var y0 = 0;\n        var i;\n        for (i = 0; i < this._len;) {\n            var cmd = data[i++];\n            var isFirst = i === 1;\n            if (isFirst) {\n                xi = data[i];\n                yi = data[i + 1];\n                x0 = xi;\n                y0 = yi;\n            }\n            switch (cmd) {\n                case CMD.M:\n                    xi = x0 = data[i++];\n                    yi = y0 = data[i++];\n                    min2[0] = x0;\n                    min2[1] = y0;\n                    max2[0] = x0;\n                    max2[1] = y0;\n                    break;\n                case CMD.L:\n                    fromLine(xi, yi, data[i], data[i + 1], min2, max2);\n                    xi = data[i++];\n                    yi = data[i++];\n                    break;\n                case CMD.C:\n                    fromCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], min2, max2);\n                    xi = data[i++];\n                    yi = data[i++];\n                    break;\n                case CMD.Q:\n                    fromQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], min2, max2);\n                    xi = data[i++];\n                    yi = data[i++];\n                    break;\n                case CMD.A:\n                    var cx = data[i++];\n                    var cy = data[i++];\n                    var rx = data[i++];\n                    var ry = data[i++];\n                    var startAngle = data[i++];\n                    var endAngle = data[i++] + startAngle;\n                    i += 1;\n                    var anticlockwise = !data[i++];\n                    if (isFirst) {\n                        x0 = mathCos(startAngle) * rx + cx;\n                        y0 = mathSin(startAngle) * ry + cy;\n                    }\n                    fromArc(cx, cy, rx, ry, startAngle, endAngle, anticlockwise, min2, max2);\n                    xi = mathCos(endAngle) * rx + cx;\n                    yi = mathSin(endAngle) * ry + cy;\n                    break;\n                case CMD.R:\n                    x0 = xi = data[i++];\n                    y0 = yi = data[i++];\n                    var width = data[i++];\n                    var height = data[i++];\n                    fromLine(x0, y0, x0 + width, y0 + height, min2, max2);\n                    break;\n                case CMD.Z:\n                    xi = x0;\n                    yi = y0;\n                    break;\n            }\n            vec2.min(min, min, min2);\n            vec2.max(max, max, max2);\n        }\n        if (i === 0) {\n            min[0] = min[1] = max[0] = max[1] = 0;\n        }\n        return new BoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n    };\n    PathProxy.prototype._calculateLength = function () {\n        var data = this.data;\n        var len = this._len;\n        var ux = this._ux;\n        var uy = this._uy;\n        var xi = 0;\n        var yi = 0;\n        var x0 = 0;\n        var y0 = 0;\n        if (!this._pathSegLen) {\n            this._pathSegLen = [];\n        }\n        var pathSegLen = this._pathSegLen;\n        var pathTotalLen = 0;\n        var segCount = 0;\n        for (var i = 0; i < len;) {\n            var cmd = data[i++];\n            var isFirst = i === 1;\n            if (isFirst) {\n                xi = data[i];\n                yi = data[i + 1];\n                x0 = xi;\n                y0 = yi;\n            }\n            var l = -1;\n            switch (cmd) {\n                case CMD.M:\n                    xi = x0 = data[i++];\n                    yi = y0 = data[i++];\n                    break;\n                case CMD.L: {\n                    var x2 = data[i++];\n                    var y2 = data[i++];\n                    var dx = x2 - xi;\n                    var dy = y2 - yi;\n                    if (mathAbs(dx) > ux || mathAbs(dy) > uy || i === len - 1) {\n                        l = Math.sqrt(dx * dx + dy * dy);\n                        xi = x2;\n                        yi = y2;\n                    }\n                    break;\n                }\n                case CMD.C: {\n                    var x1 = data[i++];\n                    var y1 = data[i++];\n                    var x2 = data[i++];\n                    var y2 = data[i++];\n                    var x3 = data[i++];\n                    var y3 = data[i++];\n                    l = cubicLength(xi, yi, x1, y1, x2, y2, x3, y3, 10);\n                    xi = x3;\n                    yi = y3;\n                    break;\n                }\n                case CMD.Q: {\n                    var x1 = data[i++];\n                    var y1 = data[i++];\n                    var x2 = data[i++];\n                    var y2 = data[i++];\n                    l = quadraticLength(xi, yi, x1, y1, x2, y2, 10);\n                    xi = x2;\n                    yi = y2;\n                    break;\n                }\n                case CMD.A:\n                    var cx = data[i++];\n                    var cy = data[i++];\n                    var rx = data[i++];\n                    var ry = data[i++];\n                    var startAngle = data[i++];\n                    var delta = data[i++];\n                    var endAngle = delta + startAngle;\n                    i += 1;\n                    var anticlockwise = !data[i++];\n                    if (isFirst) {\n                        x0 = mathCos(startAngle) * rx + cx;\n                        y0 = mathSin(startAngle) * ry + cy;\n                    }\n                    l = mathMax(rx, ry) * mathMin(PI2, Math.abs(delta));\n                    xi = mathCos(endAngle) * rx + cx;\n                    yi = mathSin(endAngle) * ry + cy;\n                    break;\n                case CMD.R: {\n                    x0 = xi = data[i++];\n                    y0 = yi = data[i++];\n                    var width = data[i++];\n                    var height = data[i++];\n                    l = width * 2 + height * 2;\n                    break;\n                }\n                case CMD.Z: {\n                    var dx = x0 - xi;\n                    var dy = y0 - yi;\n                    l = Math.sqrt(dx * dx + dy * dy);\n                    xi = x0;\n                    yi = y0;\n                    break;\n                }\n            }\n            if (l >= 0) {\n                pathSegLen[segCount++] = l;\n                pathTotalLen += l;\n            }\n        }\n        this._pathLen = pathTotalLen;\n        return pathTotalLen;\n    };\n    PathProxy.prototype.rebuildPath = function (ctx, percent) {\n        var d = this.data;\n        var ux = this._ux;\n        var uy = this._uy;\n        var len = this._len;\n        var x0;\n        var y0;\n        var xi;\n        var yi;\n        var x;\n        var y;\n        var drawPart = percent < 1;\n        var pathSegLen;\n        var pathTotalLen;\n        var accumLength = 0;\n        var segCount = 0;\n        var displayedLength;\n        if (drawPart) {\n            if (!this._pathSegLen) {\n                this._calculateLength();\n            }\n            pathSegLen = this._pathSegLen;\n            pathTotalLen = this._pathLen;\n            displayedLength = percent * pathTotalLen;\n            if (!displayedLength) {\n                return;\n            }\n        }\n        lo: for (var i = 0; i < len;) {\n            var cmd = d[i++];\n            var isFirst = i === 1;\n            if (isFirst) {\n                xi = d[i];\n                yi = d[i + 1];\n                x0 = xi;\n                y0 = yi;\n            }\n            switch (cmd) {\n                case CMD.M:\n                    x0 = xi = d[i++];\n                    y0 = yi = d[i++];\n                    ctx.moveTo(xi, yi);\n                    break;\n                case CMD.L: {\n                    x = d[i++];\n                    y = d[i++];\n                    if (mathAbs(x - xi) > ux || mathAbs(y - yi) > uy || i === len - 1) {\n                        if (drawPart) {\n                            var l = pathSegLen[segCount++];\n                            if (accumLength + l > displayedLength) {\n                                var t = (displayedLength - accumLength) / l;\n                                ctx.lineTo(xi * (1 - t) + x * t, yi * (1 - t) + y * t);\n                                break lo;\n                            }\n                            accumLength += l;\n                        }\n                        ctx.lineTo(x, y);\n                        xi = x;\n                        yi = y;\n                    }\n                    break;\n                }\n                case CMD.C: {\n                    var x1 = d[i++];\n                    var y1 = d[i++];\n                    var x2 = d[i++];\n                    var y2 = d[i++];\n                    var x3 = d[i++];\n                    var y3 = d[i++];\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            var t = (displayedLength - accumLength) / l;\n                            cubicSubdivide(xi, x1, x2, x3, t, tmpOutX);\n                            cubicSubdivide(yi, y1, y2, y3, t, tmpOutY);\n                            ctx.bezierCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2], tmpOutX[3], tmpOutY[3]);\n                            break lo;\n                        }\n                        accumLength += l;\n                    }\n                    ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\n                    xi = x3;\n                    yi = y3;\n                    break;\n                }\n                case CMD.Q: {\n                    var x1 = d[i++];\n                    var y1 = d[i++];\n                    var x2 = d[i++];\n                    var y2 = d[i++];\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            var t = (displayedLength - accumLength) / l;\n                            quadraticSubdivide(xi, x1, x2, t, tmpOutX);\n                            quadraticSubdivide(yi, y1, y2, t, tmpOutY);\n                            ctx.quadraticCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2]);\n                            break lo;\n                        }\n                        accumLength += l;\n                    }\n                    ctx.quadraticCurveTo(x1, y1, x2, y2);\n                    xi = x2;\n                    yi = y2;\n                    break;\n                }\n                case CMD.A:\n                    var cx = d[i++];\n                    var cy = d[i++];\n                    var rx = d[i++];\n                    var ry = d[i++];\n                    var startAngle = d[i++];\n                    var delta = d[i++];\n                    var psi = d[i++];\n                    var anticlockwise = !d[i++];\n                    var r = (rx > ry) ? rx : ry;\n                    var scaleX = (rx > ry) ? 1 : rx / ry;\n                    var scaleY = (rx > ry) ? ry / rx : 1;\n                    var isEllipse = mathAbs(rx - ry) > 1e-3;\n                    var endAngle = startAngle + delta;\n                    var breakBuild = false;\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            endAngle = startAngle + delta * (displayedLength - accumLength) / l;\n                            breakBuild = true;\n                        }\n                        accumLength += l;\n                    }\n                    if (isEllipse && ctx.ellipse) {\n                        ctx.ellipse(cx, cy, rx, ry, psi, startAngle, endAngle, anticlockwise);\n                    }\n                    else {\n                        ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\n                    }\n                    if (breakBuild) {\n                        break lo;\n                    }\n                    if (isFirst) {\n                        x0 = mathCos(startAngle) * rx + cx;\n                        y0 = mathSin(startAngle) * ry + cy;\n                    }\n                    xi = mathCos(endAngle) * rx + cx;\n                    yi = mathSin(endAngle) * ry + cy;\n                    break;\n                case CMD.R:\n                    x0 = xi = d[i];\n                    y0 = yi = d[i + 1];\n                    x = d[i++];\n                    y = d[i++];\n                    var width = d[i++];\n                    var height = d[i++];\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            var d_1 = displayedLength - accumLength;\n                            ctx.moveTo(x, y);\n                            ctx.lineTo(x + mathMin(d_1, width), y);\n                            d_1 -= width;\n                            if (d_1 > 0) {\n                                ctx.lineTo(x + width, y + mathMin(d_1, height));\n                            }\n                            d_1 -= height;\n                            if (d_1 > 0) {\n                                ctx.lineTo(x + mathMax(width - d_1, 0), y + height);\n                            }\n                            d_1 -= width;\n                            if (d_1 > 0) {\n                                ctx.lineTo(x, y + mathMax(height - d_1, 0));\n                            }\n                            break lo;\n                        }\n                        accumLength += l;\n                    }\n                    ctx.rect(x, y, width, height);\n                    break;\n                case CMD.Z:\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            var t = (displayedLength - accumLength) / l;\n                            ctx.lineTo(xi * (1 - t) + x0 * t, yi * (1 - t) + y0 * t);\n                            break lo;\n                        }\n                        accumLength += l;\n                    }\n                    ctx.closePath();\n                    xi = x0;\n                    yi = y0;\n            }\n        }\n    };\n    PathProxy.CMD = CMD;\n    PathProxy.initDefaultProps = (function () {\n        var proto = PathProxy.prototype;\n        proto._saveData = true;\n        proto._needsDash = false;\n        proto._dashOffset = 0;\n        proto._dashIdx = 0;\n        proto._dashSum = 0;\n        proto._ux = 0;\n        proto._uy = 0;\n    })();\n    return PathProxy;\n}());\nexport default PathProxy;\n","export function containStroke(x0, y0, x1, y1, lineWidth, x, y) {\n    if (lineWidth === 0) {\n        return false;\n    }\n    var _l = lineWidth;\n    var _a = 0;\n    var _b = x0;\n    if ((y > y0 + _l && y > y1 + _l)\n        || (y < y0 - _l && y < y1 - _l)\n        || (x > x0 + _l && x > x1 + _l)\n        || (x < x0 - _l && x < x1 - _l)) {\n        return false;\n    }\n    if (x0 !== x1) {\n        _a = (y0 - y1) / (x0 - x1);\n        _b = (x0 * y1 - x1 * y0) / (x0 - x1);\n    }\n    else {\n        return Math.abs(x - x0) <= _l / 2;\n    }\n    var tmp = _a * x - y + _b;\n    var _s = tmp * tmp / (_a * _a + 1);\n    return _s <= _l / 2 * _l / 2;\n}\n","import * as curve from '../core/curve';\nexport function containStroke(x0, y0, x1, y1, x2, y2, x3, y3, lineWidth, x, y) {\n    if (lineWidth === 0) {\n        return false;\n    }\n    var _l = lineWidth;\n    if ((y > y0 + _l && y > y1 + _l && y > y2 + _l && y > y3 + _l)\n        || (y < y0 - _l && y < y1 - _l && y < y2 - _l && y < y3 - _l)\n        || (x > x0 + _l && x > x1 + _l && x > x2 + _l && x > x3 + _l)\n        || (x < x0 - _l && x < x1 - _l && x < x2 - _l && x < x3 - _l)) {\n        return false;\n    }\n    var d = curve.cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, null);\n    return d <= _l / 2;\n}\n","import { quadraticProjectPoint } from '../core/curve';\nexport function containStroke(x0, y0, x1, y1, x2, y2, lineWidth, x, y) {\n    if (lineWidth === 0) {\n        return false;\n    }\n    var _l = lineWidth;\n    if ((y > y0 + _l && y > y1 + _l && y > y2 + _l)\n        || (y < y0 - _l && y < y1 - _l && y < y2 - _l)\n        || (x > x0 + _l && x > x1 + _l && x > x2 + _l)\n        || (x < x0 - _l && x < x1 - _l && x < x2 - _l)) {\n        return false;\n    }\n    var d = quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, null);\n    return d <= _l / 2;\n}\n","var PI2 = Math.PI * 2;\nexport function normalizeRadian(angle) {\n    angle %= PI2;\n    if (angle < 0) {\n        angle += PI2;\n    }\n    return angle;\n}\n","import { normalizeRadian } from './util';\nvar PI2 = Math.PI * 2;\nexport function containStroke(cx, cy, r, startAngle, endAngle, anticlockwise, lineWidth, x, y) {\n    if (lineWidth === 0) {\n        return false;\n    }\n    var _l = lineWidth;\n    x -= cx;\n    y -= cy;\n    var d = Math.sqrt(x * x + y * y);\n    if ((d - _l > r) || (d + _l < r)) {\n        return false;\n    }\n    if (Math.abs(startAngle - endAngle) % PI2 < 1e-4) {\n        return true;\n    }\n    if (anticlockwise) {\n        var tmp = startAngle;\n        startAngle = normalizeRadian(endAngle);\n        endAngle = normalizeRadian(tmp);\n    }\n    else {\n        startAngle = normalizeRadian(startAngle);\n        endAngle = normalizeRadian(endAngle);\n    }\n    if (startAngle > endAngle) {\n        endAngle += PI2;\n    }\n    var angle = Math.atan2(y, x);\n    if (angle < 0) {\n        angle += PI2;\n    }\n    return (angle >= startAngle && angle <= endAngle)\n        || (angle + PI2 >= startAngle && angle + PI2 <= endAngle);\n}\n","export default function windingLine(x0, y0, x1, y1, x, y) {\n    if ((y > y0 && y > y1) || (y < y0 && y < y1)) {\n        return 0;\n    }\n    if (y1 === y0) {\n        return 0;\n    }\n    var t = (y - y0) / (y1 - y0);\n    var dir = y1 < y0 ? 1 : -1;\n    if (t === 1 || t === 0) {\n        dir = y1 < y0 ? 0.5 : -0.5;\n    }\n    var x_ = t * (x1 - x0) + x0;\n    return x_ === x ? Infinity : x_ > x ? dir : 0;\n}\n","import PathProxy from '../core/PathProxy';\nimport * as line from './line';\nimport * as cubic from './cubic';\nimport * as quadratic from './quadratic';\nimport * as arc from './arc';\nimport * as curve from '../core/curve';\nimport windingLine from './windingLine';\nvar CMD = PathProxy.CMD;\nvar PI2 = Math.PI * 2;\nvar EPSILON = 1e-4;\nfunction isAroundEqual(a, b) {\n    return Math.abs(a - b) < EPSILON;\n}\nvar roots = [-1, -1, -1];\nvar extrema = [-1, -1];\nfunction swapExtrema() {\n    var tmp = extrema[0];\n    extrema[0] = extrema[1];\n    extrema[1] = tmp;\n}\nfunction windingCubic(x0, y0, x1, y1, x2, y2, x3, y3, x, y) {\n    if ((y > y0 && y > y1 && y > y2 && y > y3)\n        || (y < y0 && y < y1 && y < y2 && y < y3)) {\n        return 0;\n    }\n    var nRoots = curve.cubicRootAt(y0, y1, y2, y3, y, roots);\n    if (nRoots === 0) {\n        return 0;\n    }\n    else {\n        var w = 0;\n        var nExtrema = -1;\n        var y0_ = void 0;\n        var y1_ = void 0;\n        for (var i = 0; i < nRoots; i++) {\n            var t = roots[i];\n            var unit = (t === 0 || t === 1) ? 0.5 : 1;\n            var x_ = curve.cubicAt(x0, x1, x2, x3, t);\n            if (x_ < x) {\n                continue;\n            }\n            if (nExtrema < 0) {\n                nExtrema = curve.cubicExtrema(y0, y1, y2, y3, extrema);\n                if (extrema[1] < extrema[0] && nExtrema > 1) {\n                    swapExtrema();\n                }\n                y0_ = curve.cubicAt(y0, y1, y2, y3, extrema[0]);\n                if (nExtrema > 1) {\n                    y1_ = curve.cubicAt(y0, y1, y2, y3, extrema[1]);\n                }\n            }\n            if (nExtrema === 2) {\n                if (t < extrema[0]) {\n                    w += y0_ < y0 ? unit : -unit;\n                }\n                else if (t < extrema[1]) {\n                    w += y1_ < y0_ ? unit : -unit;\n                }\n                else {\n                    w += y3 < y1_ ? unit : -unit;\n                }\n            }\n            else {\n                if (t < extrema[0]) {\n                    w += y0_ < y0 ? unit : -unit;\n                }\n                else {\n                    w += y3 < y0_ ? unit : -unit;\n                }\n            }\n        }\n        return w;\n    }\n}\nfunction windingQuadratic(x0, y0, x1, y1, x2, y2, x, y) {\n    if ((y > y0 && y > y1 && y > y2)\n        || (y < y0 && y < y1 && y < y2)) {\n        return 0;\n    }\n    var nRoots = curve.quadraticRootAt(y0, y1, y2, y, roots);\n    if (nRoots === 0) {\n        return 0;\n    }\n    else {\n        var t = curve.quadraticExtremum(y0, y1, y2);\n        if (t >= 0 && t <= 1) {\n            var w = 0;\n            var y_ = curve.quadraticAt(y0, y1, y2, t);\n            for (var i = 0; i < nRoots; i++) {\n                var unit = (roots[i] === 0 || roots[i] === 1) ? 0.5 : 1;\n                var x_ = curve.quadraticAt(x0, x1, x2, roots[i]);\n                if (x_ < x) {\n                    continue;\n                }\n                if (roots[i] < t) {\n                    w += y_ < y0 ? unit : -unit;\n                }\n                else {\n                    w += y2 < y_ ? unit : -unit;\n                }\n            }\n            return w;\n        }\n        else {\n            var unit = (roots[0] === 0 || roots[0] === 1) ? 0.5 : 1;\n            var x_ = curve.quadraticAt(x0, x1, x2, roots[0]);\n            if (x_ < x) {\n                return 0;\n            }\n            return y2 < y0 ? unit : -unit;\n        }\n    }\n}\nfunction windingArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y) {\n    y -= cy;\n    if (y > r || y < -r) {\n        return 0;\n    }\n    var tmp = Math.sqrt(r * r - y * y);\n    roots[0] = -tmp;\n    roots[1] = tmp;\n    var dTheta = Math.abs(startAngle - endAngle);\n    if (dTheta < 1e-4) {\n        return 0;\n    }\n    if (dTheta >= PI2 - 1e-4) {\n        startAngle = 0;\n        endAngle = PI2;\n        var dir = anticlockwise ? 1 : -1;\n        if (x >= roots[0] + cx && x <= roots[1] + cx) {\n            return dir;\n        }\n        else {\n            return 0;\n        }\n    }\n    if (startAngle > endAngle) {\n        var tmp_1 = startAngle;\n        startAngle = endAngle;\n        endAngle = tmp_1;\n    }\n    if (startAngle < 0) {\n        startAngle += PI2;\n        endAngle += PI2;\n    }\n    var w = 0;\n    for (var i = 0; i < 2; i++) {\n        var x_ = roots[i];\n        if (x_ + cx > x) {\n            var angle = Math.atan2(y, x_);\n            var dir = anticlockwise ? 1 : -1;\n            if (angle < 0) {\n                angle = PI2 + angle;\n            }\n            if ((angle >= startAngle && angle <= endAngle)\n                || (angle + PI2 >= startAngle && angle + PI2 <= endAngle)) {\n                if (angle > Math.PI / 2 && angle < Math.PI * 1.5) {\n                    dir = -dir;\n                }\n                w += dir;\n            }\n        }\n    }\n    return w;\n}\nfunction containPath(path, lineWidth, isStroke, x, y) {\n    var data = path.data;\n    var len = path.len();\n    var w = 0;\n    var xi = 0;\n    var yi = 0;\n    var x0 = 0;\n    var y0 = 0;\n    var x1;\n    var y1;\n    for (var i = 0; i < len;) {\n        var cmd = data[i++];\n        var isFirst = i === 1;\n        if (cmd === CMD.M && i > 1) {\n            if (!isStroke) {\n                w += windingLine(xi, yi, x0, y0, x, y);\n            }\n        }\n        if (isFirst) {\n            xi = data[i];\n            yi = data[i + 1];\n            x0 = xi;\n            y0 = yi;\n        }\n        switch (cmd) {\n            case CMD.M:\n                x0 = data[i++];\n                y0 = data[i++];\n                xi = x0;\n                yi = y0;\n                break;\n            case CMD.L:\n                if (isStroke) {\n                    if (line.containStroke(xi, yi, data[i], data[i + 1], lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingLine(xi, yi, data[i], data[i + 1], x, y) || 0;\n                }\n                xi = data[i++];\n                yi = data[i++];\n                break;\n            case CMD.C:\n                if (isStroke) {\n                    if (cubic.containStroke(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\n                }\n                xi = data[i++];\n                yi = data[i++];\n                break;\n            case CMD.Q:\n                if (isStroke) {\n                    if (quadratic.containStroke(xi, yi, data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\n                }\n                xi = data[i++];\n                yi = data[i++];\n                break;\n            case CMD.A:\n                var cx = data[i++];\n                var cy = data[i++];\n                var rx = data[i++];\n                var ry = data[i++];\n                var theta = data[i++];\n                var dTheta = data[i++];\n                i += 1;\n                var anticlockwise = !!(1 - data[i++]);\n                x1 = Math.cos(theta) * rx + cx;\n                y1 = Math.sin(theta) * ry + cy;\n                if (!isFirst) {\n                    w += windingLine(xi, yi, x1, y1, x, y);\n                }\n                else {\n                    x0 = x1;\n                    y0 = y1;\n                }\n                var _x = (x - cx) * ry / rx + cx;\n                if (isStroke) {\n                    if (arc.containStroke(cx, cy, ry, theta, theta + dTheta, anticlockwise, lineWidth, _x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y);\n                }\n                xi = Math.cos(theta + dTheta) * rx + cx;\n                yi = Math.sin(theta + dTheta) * ry + cy;\n                break;\n            case CMD.R:\n                x0 = xi = data[i++];\n                y0 = yi = data[i++];\n                var width = data[i++];\n                var height = data[i++];\n                x1 = x0 + width;\n                y1 = y0 + height;\n                if (isStroke) {\n                    if (line.containStroke(x0, y0, x1, y0, lineWidth, x, y)\n                        || line.containStroke(x1, y0, x1, y1, lineWidth, x, y)\n                        || line.containStroke(x1, y1, x0, y1, lineWidth, x, y)\n                        || line.containStroke(x0, y1, x0, y0, lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingLine(x1, y0, x1, y1, x, y);\n                    w += windingLine(x0, y1, x0, y0, x, y);\n                }\n                break;\n            case CMD.Z:\n                if (isStroke) {\n                    if (line.containStroke(xi, yi, x0, y0, lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingLine(xi, yi, x0, y0, x, y);\n                }\n                xi = x0;\n                yi = y0;\n                break;\n        }\n    }\n    if (!isStroke && !isAroundEqual(yi, y0)) {\n        w += windingLine(xi, yi, x0, y0, x, y) || 0;\n    }\n    return w !== 0;\n}\nexport function contain(pathProxy, x, y) {\n    return containPath(pathProxy, 0, false, x, y);\n}\nexport function containStroke(pathProxy, lineWidth, x, y) {\n    return containPath(pathProxy, lineWidth, true, x, y);\n}\n","import { __extends } from \"tslib\";\nimport Displayable, { DEFAULT_COMMON_STYLE, DEFAULT_COMMON_ANIMATION_PROPS } from './Displayable';\nimport Element from '../Element';\nimport PathProxy from '../core/PathProxy';\nimport * as pathContain from '../contain/path';\nimport { defaults, keys, extend, clone, isString, createObject } from '../core/util';\nimport { lum } from '../tool/color';\nimport { DARK_LABEL_COLOR, LIGHT_LABEL_COLOR, DARK_MODE_THRESHOLD, LIGHTER_LABEL_COLOR } from '../config';\nexport var DEFAULT_PATH_STYLE = defaults({\n    fill: '#000',\n    stroke: null,\n    strokePercent: 1,\n    fillOpacity: 1,\n    strokeOpacity: 1,\n    lineDashOffset: 0,\n    lineWidth: 1,\n    lineCap: 'butt',\n    miterLimit: 10,\n    strokeNoScale: false,\n    strokeFirst: false\n}, DEFAULT_COMMON_STYLE);\nexport var DEFAULT_PATH_ANIMATION_PROPS = {\n    style: defaults({\n        fill: true,\n        stroke: true,\n        strokePercent: true,\n        fillOpacity: true,\n        strokeOpacity: true,\n        lineDashOffset: true,\n        lineWidth: true,\n        miterLimit: true\n    }, DEFAULT_COMMON_ANIMATION_PROPS.style)\n};\nvar pathCopyParams = [\n    'x', 'y', 'rotation', 'scaleX', 'scaleY', 'originX', 'originY', 'invisible',\n    'culling', 'z', 'z2', 'zlevel', 'parent'\n];\nvar Path = (function (_super) {\n    __extends(Path, _super);\n    function Path(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Path.prototype.update = function () {\n        var _this = this;\n        _super.prototype.update.call(this);\n        var style = this.style;\n        if (style.decal) {\n            var decalEl = this._decalEl\n                = this._decalEl || new Path();\n            if (decalEl.buildPath === Path.prototype.buildPath) {\n                decalEl.buildPath = function (ctx) {\n                    _this.buildPath(ctx, _this.shape);\n                };\n            }\n            decalEl.silent = true;\n            var decalElStyle = decalEl.style;\n            for (var key in style) {\n                if (decalElStyle[key] !== style[key]) {\n                    decalElStyle[key] = style[key];\n                }\n            }\n            decalElStyle.fill = style.fill ? style.decal : null;\n            decalElStyle.decal = null;\n            decalElStyle.shadowColor = null;\n            style.strokeFirst && (decalElStyle.stroke = null);\n            for (var i = 0; i < pathCopyParams.length; ++i) {\n                decalEl[pathCopyParams[i]] = this[pathCopyParams[i]];\n            }\n            decalEl.__dirty |= Element.REDARAW_BIT;\n        }\n        else if (this._decalEl) {\n            this._decalEl = null;\n        }\n    };\n    Path.prototype.getDecalElement = function () {\n        return this._decalEl;\n    };\n    Path.prototype._init = function (props) {\n        var keysArr = keys(props);\n        this.shape = this.getDefaultShape();\n        var defaultStyle = this.getDefaultStyle();\n        if (defaultStyle) {\n            this.useStyle(defaultStyle);\n        }\n        for (var i = 0; i < keysArr.length; i++) {\n            var key = keysArr[i];\n            var value = props[key];\n            if (key === 'style') {\n                if (!this.style) {\n                    this.useStyle(value);\n                }\n                else {\n                    extend(this.style, value);\n                }\n            }\n            else if (key === 'shape') {\n                extend(this.shape, value);\n            }\n            else {\n                _super.prototype.attrKV.call(this, key, value);\n            }\n        }\n        if (!this.style) {\n            this.useStyle({});\n        }\n    };\n    Path.prototype.getDefaultStyle = function () {\n        return null;\n    };\n    Path.prototype.getDefaultShape = function () {\n        return {};\n    };\n    Path.prototype.canBeInsideText = function () {\n        return this.hasFill();\n    };\n    Path.prototype.getInsideTextFill = function () {\n        var pathFill = this.style.fill;\n        if (pathFill !== 'none') {\n            if (isString(pathFill)) {\n                var fillLum = lum(pathFill, 0);\n                if (fillLum > 0.5) {\n                    return DARK_LABEL_COLOR;\n                }\n                else if (fillLum > 0.2) {\n                    return LIGHTER_LABEL_COLOR;\n                }\n                return LIGHT_LABEL_COLOR;\n            }\n            else if (pathFill) {\n                return LIGHT_LABEL_COLOR;\n            }\n        }\n        return DARK_LABEL_COLOR;\n    };\n    Path.prototype.getInsideTextStroke = function (textFill) {\n        var pathFill = this.style.fill;\n        if (isString(pathFill)) {\n            var zr = this.__zr;\n            var isDarkMode = !!(zr && zr.isDarkMode());\n            var isDarkLabel = lum(textFill, 0) < DARK_MODE_THRESHOLD;\n            if (isDarkMode === isDarkLabel) {\n                return pathFill;\n            }\n        }\n    };\n    Path.prototype.buildPath = function (ctx, shapeCfg, inBundle) { };\n    Path.prototype.pathUpdated = function () {\n        this.__dirty &= ~Path.SHAPE_CHANGED_BIT;\n    };\n    Path.prototype.createPathProxy = function () {\n        this.path = new PathProxy(false);\n    };\n    Path.prototype.hasStroke = function () {\n        var style = this.style;\n        var stroke = style.stroke;\n        return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\n    };\n    Path.prototype.hasFill = function () {\n        var style = this.style;\n        var fill = style.fill;\n        return fill != null && fill !== 'none';\n    };\n    Path.prototype.getBoundingRect = function () {\n        var rect = this._rect;\n        var style = this.style;\n        var needsUpdateRect = !rect;\n        if (needsUpdateRect) {\n            var firstInvoke = false;\n            if (!this.path) {\n                firstInvoke = true;\n                this.createPathProxy();\n            }\n            var path = this.path;\n            if (firstInvoke || (this.__dirty & Path.SHAPE_CHANGED_BIT)) {\n                path.beginPath();\n                this.buildPath(path, this.shape, false);\n                this.pathUpdated();\n            }\n            rect = path.getBoundingRect();\n        }\n        this._rect = rect;\n        if (this.hasStroke() && this.path && this.path.len() > 0) {\n            var rectWithStroke = this._rectWithStroke || (this._rectWithStroke = rect.clone());\n            if (this.__dirty || needsUpdateRect) {\n                rectWithStroke.copy(rect);\n                var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\n                var w = style.lineWidth;\n                if (!this.hasFill()) {\n                    var strokeContainThreshold = this.strokeContainThreshold;\n                    w = Math.max(w, strokeContainThreshold == null ? 4 : strokeContainThreshold);\n                }\n                if (lineScale > 1e-10) {\n                    rectWithStroke.width += w / lineScale;\n                    rectWithStroke.height += w / lineScale;\n                    rectWithStroke.x -= w / lineScale / 2;\n                    rectWithStroke.y -= w / lineScale / 2;\n                }\n            }\n            return rectWithStroke;\n        }\n        return rect;\n    };\n    Path.prototype.contain = function (x, y) {\n        var localPos = this.transformCoordToLocal(x, y);\n        var rect = this.getBoundingRect();\n        var style = this.style;\n        x = localPos[0];\n        y = localPos[1];\n        if (rect.contain(x, y)) {\n            var pathProxy = this.path;\n            if (this.hasStroke()) {\n                var lineWidth = style.lineWidth;\n                var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\n                if (lineScale > 1e-10) {\n                    if (!this.hasFill()) {\n                        lineWidth = Math.max(lineWidth, this.strokeContainThreshold);\n                    }\n                    if (pathContain.containStroke(pathProxy, lineWidth / lineScale, x, y)) {\n                        return true;\n                    }\n                }\n            }\n            if (this.hasFill()) {\n                return pathContain.contain(pathProxy, x, y);\n            }\n        }\n        return false;\n    };\n    Path.prototype.dirtyShape = function () {\n        this.__dirty |= Path.SHAPE_CHANGED_BIT;\n        if (this._rect) {\n            this._rect = null;\n        }\n        if (this._decalEl) {\n            this._decalEl.dirtyShape();\n        }\n        this.markRedraw();\n    };\n    Path.prototype.dirty = function () {\n        this.dirtyStyle();\n        this.dirtyShape();\n    };\n    Path.prototype.animateShape = function (loop) {\n        return this.animate('shape', loop);\n    };\n    Path.prototype.updateDuringAnimation = function (targetKey) {\n        if (targetKey === 'style') {\n            this.dirtyStyle();\n        }\n        else if (targetKey === 'shape') {\n            this.dirtyShape();\n        }\n        else {\n            this.markRedraw();\n        }\n    };\n    Path.prototype.attrKV = function (key, value) {\n        if (key === 'shape') {\n            this.setShape(value);\n        }\n        else {\n            _super.prototype.attrKV.call(this, key, value);\n        }\n    };\n    Path.prototype.setShape = function (keyOrObj, value) {\n        var shape = this.shape;\n        if (!shape) {\n            shape = this.shape = {};\n        }\n        if (typeof keyOrObj === 'string') {\n            shape[keyOrObj] = value;\n        }\n        else {\n            extend(shape, keyOrObj);\n        }\n        this.dirtyShape();\n        return this;\n    };\n    Path.prototype.shapeChanged = function () {\n        return !!(this.__dirty & Path.SHAPE_CHANGED_BIT);\n    };\n    Path.prototype.createStyle = function (obj) {\n        return createObject(DEFAULT_PATH_STYLE, obj);\n    };\n    Path.prototype._innerSaveToNormal = function (toState) {\n        _super.prototype._innerSaveToNormal.call(this, toState);\n        var normalState = this._normalState;\n        if (toState.shape && !normalState.shape) {\n            normalState.shape = extend({}, this.shape);\n        }\n    };\n    Path.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\n        _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\n        var needsRestoreToNormal = !(state && keepCurrentStates);\n        var targetShape;\n        if (state && state.shape) {\n            if (transition) {\n                if (keepCurrentStates) {\n                    targetShape = state.shape;\n                }\n                else {\n                    targetShape = extend({}, normalState.shape);\n                    extend(targetShape, state.shape);\n                }\n            }\n            else {\n                targetShape = extend({}, keepCurrentStates ? this.shape : normalState.shape);\n                extend(targetShape, state.shape);\n            }\n        }\n        else if (needsRestoreToNormal) {\n            targetShape = normalState.shape;\n        }\n        if (targetShape) {\n            if (transition) {\n                this.shape = extend({}, this.shape);\n                var targetShapePrimaryProps = {};\n                var shapeKeys = keys(targetShape);\n                for (var i = 0; i < shapeKeys.length; i++) {\n                    var key = shapeKeys[i];\n                    if (typeof targetShape[key] === 'object') {\n                        this.shape[key] = targetShape[key];\n                    }\n                    else {\n                        targetShapePrimaryProps[key] = targetShape[key];\n                    }\n                }\n                this._transitionState(stateName, {\n                    shape: targetShapePrimaryProps\n                }, animationCfg);\n            }\n            else {\n                this.shape = targetShape;\n                this.dirtyShape();\n            }\n        }\n    };\n    Path.prototype._mergeStates = function (states) {\n        var mergedState = _super.prototype._mergeStates.call(this, states);\n        var mergedShape;\n        for (var i = 0; i < states.length; i++) {\n            var state = states[i];\n            if (state.shape) {\n                mergedShape = mergedShape || {};\n                this._mergeStyle(mergedShape, state.shape);\n            }\n        }\n        if (mergedShape) {\n            mergedState.shape = mergedShape;\n        }\n        return mergedState;\n    };\n    Path.prototype.getAnimationStyleProps = function () {\n        return DEFAULT_PATH_ANIMATION_PROPS;\n    };\n    Path.prototype.isZeroArea = function () {\n        return false;\n    };\n    Path.extend = function (defaultProps) {\n        var Sub = (function (_super) {\n            __extends(Sub, _super);\n            function Sub(opts) {\n                var _this = _super.call(this, opts) || this;\n                defaultProps.init && defaultProps.init.call(_this, opts);\n                return _this;\n            }\n            Sub.prototype.getDefaultStyle = function () {\n                return clone(defaultProps.style);\n            };\n            Sub.prototype.getDefaultShape = function () {\n                return clone(defaultProps.shape);\n            };\n            return Sub;\n        }(Path));\n        for (var key in defaultProps) {\n            if (typeof defaultProps[key] === 'function') {\n                Sub.prototype[key] = defaultProps[key];\n            }\n        }\n        return Sub;\n    };\n    Path.SHAPE_CHANGED_BIT = 4;\n    Path.initDefaultProps = (function () {\n        var pathProto = Path.prototype;\n        pathProto.type = 'path';\n        pathProto.strokeContainThreshold = 5;\n        pathProto.segmentIgnoreThreshold = 0;\n        pathProto.subPixelOptimize = false;\n        pathProto.autoBatch = false;\n        pathProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT | Path.SHAPE_CHANGED_BIT;\n    })();\n    return Path;\n}(Displayable));\nexport default Path;\n","import { __extends } from \"tslib\";\nimport Displayable from './Displayable';\nimport { getBoundingRect, DEFAULT_FONT } from '../contain/text';\nimport { DEFAULT_PATH_STYLE } from './Path';\nimport { createObject, defaults } from '../core/util';\nexport var DEFAULT_TSPAN_STYLE = defaults({\n    strokeFirst: true,\n    font: DEFAULT_FONT,\n    x: 0,\n    y: 0,\n    textAlign: 'left',\n    textBaseline: 'top',\n    miterLimit: 2\n}, DEFAULT_PATH_STYLE);\nvar TSpan = (function (_super) {\n    __extends(TSpan, _super);\n    function TSpan() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    TSpan.prototype.hasStroke = function () {\n        var style = this.style;\n        var stroke = style.stroke;\n        return stroke != null && stroke !== 'none' && style.lineWidth > 0;\n    };\n    TSpan.prototype.hasFill = function () {\n        var style = this.style;\n        var fill = style.fill;\n        return fill != null && fill !== 'none';\n    };\n    TSpan.prototype.createStyle = function (obj) {\n        return createObject(DEFAULT_TSPAN_STYLE, obj);\n    };\n    TSpan.prototype.setBoundingRect = function (rect) {\n        this._rect = rect;\n    };\n    TSpan.prototype.getBoundingRect = function () {\n        var style = this.style;\n        if (!this._rect) {\n            var text = style.text;\n            text != null ? (text += '') : (text = '');\n            var rect = getBoundingRect(text, style.font, style.textAlign, style.textBaseline);\n            rect.x += style.x || 0;\n            rect.y += style.y || 0;\n            if (this.hasStroke()) {\n                var w = style.lineWidth;\n                rect.x -= w / 2;\n                rect.y -= w / 2;\n                rect.width += w;\n                rect.height += w;\n            }\n            this._rect = rect;\n        }\n        return this._rect;\n    };\n    TSpan.initDefaultProps = (function () {\n        var tspanProto = TSpan.prototype;\n        tspanProto.dirtyRectTolerance = 10;\n    })();\n    return TSpan;\n}(Displayable));\nTSpan.prototype.type = 'tspan';\nexport default TSpan;\n","import { __extends } from \"tslib\";\nimport Displayable, { DEFAULT_COMMON_STYLE, DEFAULT_COMMON_ANIMATION_PROPS } from './Displayable';\nimport BoundingRect from '../core/BoundingRect';\nimport { defaults, createObject } from '../core/util';\nexport var DEFAULT_IMAGE_STYLE = defaults({\n    x: 0,\n    y: 0\n}, DEFAULT_COMMON_STYLE);\nexport var DEFAULT_IMAGE_ANIMATION_PROPS = {\n    style: defaults({\n        x: true,\n        y: true,\n        width: true,\n        height: true,\n        sx: true,\n        sy: true,\n        sWidth: true,\n        sHeight: true\n    }, DEFAULT_COMMON_ANIMATION_PROPS.style)\n};\nfunction isImageLike(source) {\n    return !!(source\n        && typeof source !== 'string'\n        && source.width && source.height);\n}\nvar ZRImage = (function (_super) {\n    __extends(ZRImage, _super);\n    function ZRImage() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    ZRImage.prototype.createStyle = function (obj) {\n        return createObject(DEFAULT_IMAGE_STYLE, obj);\n    };\n    ZRImage.prototype._getSize = function (dim) {\n        var style = this.style;\n        var size = style[dim];\n        if (size != null) {\n            return size;\n        }\n        var imageSource = isImageLike(style.image)\n            ? style.image : this.__image;\n        if (!imageSource) {\n            return 0;\n        }\n        var otherDim = dim === 'width' ? 'height' : 'width';\n        var otherDimSize = style[otherDim];\n        if (otherDimSize == null) {\n            return imageSource[dim];\n        }\n        else {\n            return imageSource[dim] / imageSource[otherDim] * otherDimSize;\n        }\n    };\n    ZRImage.prototype.getWidth = function () {\n        return this._getSize('width');\n    };\n    ZRImage.prototype.getHeight = function () {\n        return this._getSize('height');\n    };\n    ZRImage.prototype.getAnimationStyleProps = function () {\n        return DEFAULT_IMAGE_ANIMATION_PROPS;\n    };\n    ZRImage.prototype.getBoundingRect = function () {\n        var style = this.style;\n        if (!this._rect) {\n            this._rect = new BoundingRect(style.x || 0, style.y || 0, this.getWidth(), this.getHeight());\n        }\n        return this._rect;\n    };\n    return ZRImage;\n}(Displayable));\nZRImage.prototype.type = 'image';\nexport default ZRImage;\n","export function buildPath(ctx, shape) {\n    var x = shape.x;\n    var y = shape.y;\n    var width = shape.width;\n    var height = shape.height;\n    var r = shape.r;\n    var r1;\n    var r2;\n    var r3;\n    var r4;\n    if (width < 0) {\n        x = x + width;\n        width = -width;\n    }\n    if (height < 0) {\n        y = y + height;\n        height = -height;\n    }\n    if (typeof r === 'number') {\n        r1 = r2 = r3 = r4 = r;\n    }\n    else if (r instanceof Array) {\n        if (r.length === 1) {\n            r1 = r2 = r3 = r4 = r[0];\n        }\n        else if (r.length === 2) {\n            r1 = r3 = r[0];\n            r2 = r4 = r[1];\n        }\n        else if (r.length === 3) {\n            r1 = r[0];\n            r2 = r4 = r[1];\n            r3 = r[2];\n        }\n        else {\n            r1 = r[0];\n            r2 = r[1];\n            r3 = r[2];\n            r4 = r[3];\n        }\n    }\n    else {\n        r1 = r2 = r3 = r4 = 0;\n    }\n    var total;\n    if (r1 + r2 > width) {\n        total = r1 + r2;\n        r1 *= width / total;\n        r2 *= width / total;\n    }\n    if (r3 + r4 > width) {\n        total = r3 + r4;\n        r3 *= width / total;\n        r4 *= width / total;\n    }\n    if (r2 + r3 > height) {\n        total = r2 + r3;\n        r2 *= height / total;\n        r3 *= height / total;\n    }\n    if (r1 + r4 > height) {\n        total = r1 + r4;\n        r1 *= height / total;\n        r4 *= height / total;\n    }\n    ctx.moveTo(x + r1, y);\n    ctx.lineTo(x + width - r2, y);\n    r2 !== 0 && ctx.arc(x + width - r2, y + r2, r2, -Math.PI / 2, 0);\n    ctx.lineTo(x + width, y + height - r3);\n    r3 !== 0 && ctx.arc(x + width - r3, y + height - r3, r3, 0, Math.PI / 2);\n    ctx.lineTo(x + r4, y + height);\n    r4 !== 0 && ctx.arc(x + r4, y + height - r4, r4, Math.PI / 2, Math.PI);\n    ctx.lineTo(x, y + r1);\n    r1 !== 0 && ctx.arc(x + r1, y + r1, r1, Math.PI, Math.PI * 1.5);\n}\n","var round = Math.round;\nexport function subPixelOptimizeLine(outputShape, inputShape, style) {\n    if (!inputShape) {\n        return;\n    }\n    var x1 = inputShape.x1;\n    var x2 = inputShape.x2;\n    var y1 = inputShape.y1;\n    var y2 = inputShape.y2;\n    outputShape.x1 = x1;\n    outputShape.x2 = x2;\n    outputShape.y1 = y1;\n    outputShape.y2 = y2;\n    var lineWidth = style && style.lineWidth;\n    if (!lineWidth) {\n        return outputShape;\n    }\n    if (round(x1 * 2) === round(x2 * 2)) {\n        outputShape.x1 = outputShape.x2 = subPixelOptimize(x1, lineWidth, true);\n    }\n    if (round(y1 * 2) === round(y2 * 2)) {\n        outputShape.y1 = outputShape.y2 = subPixelOptimize(y1, lineWidth, true);\n    }\n    return outputShape;\n}\nexport function subPixelOptimizeRect(outputShape, inputShape, style) {\n    if (!inputShape) {\n        return;\n    }\n    var originX = inputShape.x;\n    var originY = inputShape.y;\n    var originWidth = inputShape.width;\n    var originHeight = inputShape.height;\n    outputShape.x = originX;\n    outputShape.y = originY;\n    outputShape.width = originWidth;\n    outputShape.height = originHeight;\n    var lineWidth = style && style.lineWidth;\n    if (!lineWidth) {\n        return outputShape;\n    }\n    outputShape.x = subPixelOptimize(originX, lineWidth, true);\n    outputShape.y = subPixelOptimize(originY, lineWidth, true);\n    outputShape.width = Math.max(subPixelOptimize(originX + originWidth, lineWidth, false) - outputShape.x, originWidth === 0 ? 0 : 1);\n    outputShape.height = Math.max(subPixelOptimize(originY + originHeight, lineWidth, false) - outputShape.y, originHeight === 0 ? 0 : 1);\n    return outputShape;\n}\nexport function subPixelOptimize(position, lineWidth, positiveOrNegative) {\n    if (!lineWidth) {\n        return position;\n    }\n    var doubledPosition = round(position * 2);\n    return (doubledPosition + round(lineWidth)) % 2 === 0\n        ? doubledPosition / 2\n        : (doubledPosition + (positiveOrNegative ? 1 : -1)) / 2;\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as roundRectHelper from '../helper/roundRect';\nimport { subPixelOptimizeRect } from '../helper/subPixelOptimize';\nvar RectShape = (function () {\n    function RectShape() {\n        this.x = 0;\n        this.y = 0;\n        this.width = 0;\n        this.height = 0;\n    }\n    return RectShape;\n}());\nvar subPixelOptimizeOutputShape = {};\nvar Rect = (function (_super) {\n    __extends(Rect, _super);\n    function Rect(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Rect.prototype.getDefaultShape = function () {\n        return new RectShape();\n    };\n    Rect.prototype.buildPath = function (ctx, shape) {\n        var x;\n        var y;\n        var width;\n        var height;\n        if (this.subPixelOptimize) {\n            var optimizedShape = subPixelOptimizeRect(subPixelOptimizeOutputShape, shape, this.style);\n            x = optimizedShape.x;\n            y = optimizedShape.y;\n            width = optimizedShape.width;\n            height = optimizedShape.height;\n            optimizedShape.r = shape.r;\n            shape = optimizedShape;\n        }\n        else {\n            x = shape.x;\n            y = shape.y;\n            width = shape.width;\n            height = shape.height;\n        }\n        if (!shape.r) {\n            ctx.rect(x, y, width, height);\n        }\n        else {\n            roundRectHelper.buildPath(ctx, shape);\n        }\n    };\n    Rect.prototype.isZeroArea = function () {\n        return !this.shape.width || !this.shape.height;\n    };\n    return Rect;\n}(Path));\nRect.prototype.type = 'rect';\nexport default Rect;\n","import { __extends } from \"tslib\";\nimport { parseRichText, parsePlainText } from './helper/parseText';\nimport TSpan from './TSpan';\nimport { retrieve2, isString, each, normalizeCssArray, trim, retrieve3, extend, keys, defaults } from '../core/util';\nimport { DEFAULT_FONT, adjustTextX, adjustTextY } from '../contain/text';\nimport ZRImage from './Image';\nimport Rect from './shape/Rect';\nimport BoundingRect from '../core/BoundingRect';\nimport { copy } from '../core/matrix';\nimport Displayable, { DEFAULT_COMMON_ANIMATION_PROPS } from './Displayable';\nvar DEFAULT_RICH_TEXT_COLOR = {\n    fill: '#000'\n};\nvar DEFAULT_STROKE_LINE_WIDTH = 2;\nexport var DEFAULT_TEXT_ANIMATION_PROPS = {\n    style: defaults({\n        fill: true,\n        stroke: true,\n        fillOpacity: true,\n        strokeOpacity: true,\n        lineWidth: true,\n        fontSize: true,\n        lineHeight: true,\n        width: true,\n        height: true,\n        textShadowColor: true,\n        textShadowBlur: true,\n        textShadowOffsetX: true,\n        textShadowOffsetY: true,\n        backgroundColor: true,\n        padding: true,\n        borderColor: true,\n        borderWidth: true,\n        borderRadius: true\n    }, DEFAULT_COMMON_ANIMATION_PROPS.style)\n};\nvar ZRText = (function (_super) {\n    __extends(ZRText, _super);\n    function ZRText(opts) {\n        var _this = _super.call(this) || this;\n        _this.type = 'text';\n        _this._children = [];\n        _this._defaultStyle = DEFAULT_RICH_TEXT_COLOR;\n        _this.attr(opts);\n        return _this;\n    }\n    ZRText.prototype.childrenRef = function () {\n        return this._children;\n    };\n    ZRText.prototype.update = function () {\n        if (this.styleChanged()) {\n            this._updateSubTexts();\n        }\n        for (var i = 0; i < this._children.length; i++) {\n            var child = this._children[i];\n            child.zlevel = this.zlevel;\n            child.z = this.z;\n            child.z2 = this.z2;\n            child.culling = this.culling;\n            child.cursor = this.cursor;\n            child.invisible = this.invisible;\n        }\n        var attachedTransform = this.attachedTransform;\n        if (attachedTransform) {\n            attachedTransform.updateTransform();\n            var m = attachedTransform.transform;\n            if (m) {\n                this.transform = this.transform || [];\n                copy(this.transform, m);\n            }\n            else {\n                this.transform = null;\n            }\n        }\n        else {\n            _super.prototype.update.call(this);\n        }\n    };\n    ZRText.prototype.getComputedTransform = function () {\n        if (this.__hostTarget) {\n            this.__hostTarget.getComputedTransform();\n            this.__hostTarget.updateInnerText(true);\n        }\n        return this.attachedTransform ? this.attachedTransform.getComputedTransform()\n            : _super.prototype.getComputedTransform.call(this);\n    };\n    ZRText.prototype._updateSubTexts = function () {\n        this._childCursor = 0;\n        normalizeTextStyle(this.style);\n        this.style.rich\n            ? this._updateRichTexts()\n            : this._updatePlainTexts();\n        this._children.length = this._childCursor;\n        this.styleUpdated();\n    };\n    ZRText.prototype.addSelfToZr = function (zr) {\n        _super.prototype.addSelfToZr.call(this, zr);\n        for (var i = 0; i < this._children.length; i++) {\n            this._children[i].__zr = zr;\n        }\n    };\n    ZRText.prototype.removeSelfFromZr = function (zr) {\n        _super.prototype.removeSelfFromZr.call(this, zr);\n        for (var i = 0; i < this._children.length; i++) {\n            this._children[i].__zr = null;\n        }\n    };\n    ZRText.prototype.getBoundingRect = function () {\n        if (this.styleChanged()) {\n            this._updateSubTexts();\n        }\n        if (!this._rect) {\n            var tmpRect = new BoundingRect(0, 0, 0, 0);\n            var children = this._children;\n            var tmpMat = [];\n            var rect = null;\n            for (var i = 0; i < children.length; i++) {\n                var child = children[i];\n                var childRect = child.getBoundingRect();\n                var transform = child.getLocalTransform(tmpMat);\n                if (transform) {\n                    tmpRect.copy(childRect);\n                    tmpRect.applyTransform(transform);\n                    rect = rect || tmpRect.clone();\n                    rect.union(tmpRect);\n                }\n                else {\n                    rect = rect || childRect.clone();\n                    rect.union(childRect);\n                }\n            }\n            this._rect = rect || tmpRect;\n        }\n        return this._rect;\n    };\n    ZRText.prototype.setDefaultTextStyle = function (defaultTextStyle) {\n        this._defaultStyle = defaultTextStyle || DEFAULT_RICH_TEXT_COLOR;\n    };\n    ZRText.prototype.setTextContent = function (textContent) {\n        throw new Error('Can\\'t attach text on another text');\n    };\n    ZRText.prototype._mergeStyle = function (targetStyle, sourceStyle) {\n        if (!sourceStyle) {\n            return targetStyle;\n        }\n        var sourceRich = sourceStyle.rich;\n        var targetRich = targetStyle.rich || (sourceRich && {});\n        extend(targetStyle, sourceStyle);\n        if (sourceRich && targetRich) {\n            this._mergeRich(targetRich, sourceRich);\n            targetStyle.rich = targetRich;\n        }\n        else if (targetRich) {\n            targetStyle.rich = targetRich;\n        }\n        return targetStyle;\n    };\n    ZRText.prototype._mergeRich = function (targetRich, sourceRich) {\n        var richNames = keys(sourceRich);\n        for (var i = 0; i < richNames.length; i++) {\n            var richName = richNames[i];\n            targetRich[richName] = targetRich[richName] || {};\n            extend(targetRich[richName], sourceRich[richName]);\n        }\n    };\n    ZRText.prototype.getAnimationStyleProps = function () {\n        return DEFAULT_TEXT_ANIMATION_PROPS;\n    };\n    ZRText.prototype._getOrCreateChild = function (Ctor) {\n        var child = this._children[this._childCursor];\n        if (!child || !(child instanceof Ctor)) {\n            child = new Ctor();\n        }\n        this._children[this._childCursor++] = child;\n        child.__zr = this.__zr;\n        child.parent = this;\n        return child;\n    };\n    ZRText.prototype._updatePlainTexts = function () {\n        var style = this.style;\n        var textFont = style.font || DEFAULT_FONT;\n        var textPadding = style.padding;\n        var text = getStyleText(style);\n        var contentBlock = parsePlainText(text, style);\n        var needDrawBg = needDrawBackground(style);\n        var bgColorDrawn = !!(style.backgroundColor);\n        var outerHeight = contentBlock.outerHeight;\n        var textLines = contentBlock.lines;\n        var lineHeight = contentBlock.lineHeight;\n        var defaultStyle = this._defaultStyle;\n        var baseX = style.x || 0;\n        var baseY = style.y || 0;\n        var textAlign = style.align || defaultStyle.align || 'left';\n        var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign || 'top';\n        var textX = baseX;\n        var textY = adjustTextY(baseY, contentBlock.contentHeight, verticalAlign);\n        if (needDrawBg || textPadding) {\n            var outerWidth_1 = contentBlock.width;\n            textPadding && (outerWidth_1 += textPadding[1] + textPadding[3]);\n            var boxX = adjustTextX(baseX, outerWidth_1, textAlign);\n            var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\n            needDrawBg && this._renderBackground(style, style, boxX, boxY, outerWidth_1, outerHeight);\n        }\n        textY += lineHeight / 2;\n        if (textPadding) {\n            textX = getTextXForPadding(baseX, textAlign, textPadding);\n            if (verticalAlign === 'top') {\n                textY += textPadding[0];\n            }\n            else if (verticalAlign === 'bottom') {\n                textY -= textPadding[2];\n            }\n        }\n        var defaultLineWidth = 0;\n        var useDefaultFill = false;\n        var textFill = getFill('fill' in style\n            ? style.fill\n            : (useDefaultFill = true, defaultStyle.fill));\n        var textStroke = getStroke('stroke' in style\n            ? style.stroke\n            : (!bgColorDrawn\n                && (!defaultStyle.autoStroke || useDefaultFill))\n                ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\n                : null);\n        var hasShadow = style.textShadowBlur > 0;\n        var fixedBoundingRect = style.width != null\n            && (style.overflow === 'truncate' || style.overflow === 'break' || style.overflow === 'breakAll');\n        var calculatedLineHeight = contentBlock.calculatedLineHeight;\n        for (var i = 0; i < textLines.length; i++) {\n            var el = this._getOrCreateChild(TSpan);\n            var subElStyle = el.createStyle();\n            el.useStyle(subElStyle);\n            subElStyle.text = textLines[i];\n            subElStyle.x = textX;\n            subElStyle.y = textY;\n            if (textAlign) {\n                subElStyle.textAlign = textAlign;\n            }\n            subElStyle.textBaseline = 'middle';\n            subElStyle.opacity = style.opacity;\n            subElStyle.strokeFirst = true;\n            if (hasShadow) {\n                subElStyle.shadowBlur = style.textShadowBlur || 0;\n                subElStyle.shadowColor = style.textShadowColor || 'transparent';\n                subElStyle.shadowOffsetX = style.textShadowOffsetX || 0;\n                subElStyle.shadowOffsetY = style.textShadowOffsetY || 0;\n            }\n            if (textStroke) {\n                subElStyle.stroke = textStroke;\n                subElStyle.lineWidth = style.lineWidth || defaultLineWidth;\n                subElStyle.lineDash = style.lineDash;\n                subElStyle.lineDashOffset = style.lineDashOffset || 0;\n            }\n            if (textFill) {\n                subElStyle.fill = textFill;\n            }\n            subElStyle.font = textFont;\n            textY += lineHeight;\n            if (fixedBoundingRect) {\n                el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, style.width, subElStyle.textAlign), adjustTextY(subElStyle.y, calculatedLineHeight, subElStyle.textBaseline), style.width, calculatedLineHeight));\n            }\n        }\n    };\n    ZRText.prototype._updateRichTexts = function () {\n        var style = this.style;\n        var text = getStyleText(style);\n        var contentBlock = parseRichText(text, style);\n        var contentWidth = contentBlock.width;\n        var outerWidth = contentBlock.outerWidth;\n        var outerHeight = contentBlock.outerHeight;\n        var textPadding = style.padding;\n        var baseX = style.x || 0;\n        var baseY = style.y || 0;\n        var defaultStyle = this._defaultStyle;\n        var textAlign = style.align || defaultStyle.align;\n        var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign;\n        var boxX = adjustTextX(baseX, outerWidth, textAlign);\n        var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\n        var xLeft = boxX;\n        var lineTop = boxY;\n        if (textPadding) {\n            xLeft += textPadding[3];\n            lineTop += textPadding[0];\n        }\n        var xRight = xLeft + contentWidth;\n        if (needDrawBackground(style)) {\n            this._renderBackground(style, style, boxX, boxY, outerWidth, outerHeight);\n        }\n        var bgColorDrawn = !!(style.backgroundColor);\n        for (var i = 0; i < contentBlock.lines.length; i++) {\n            var line = contentBlock.lines[i];\n            var tokens = line.tokens;\n            var tokenCount = tokens.length;\n            var lineHeight = line.lineHeight;\n            var remainedWidth = line.width;\n            var leftIndex = 0;\n            var lineXLeft = xLeft;\n            var lineXRight = xRight;\n            var rightIndex = tokenCount - 1;\n            var token = void 0;\n            while (leftIndex < tokenCount\n                && (token = tokens[leftIndex], !token.align || token.align === 'left')) {\n                this._placeToken(token, style, lineHeight, lineTop, lineXLeft, 'left', bgColorDrawn);\n                remainedWidth -= token.width;\n                lineXLeft += token.width;\n                leftIndex++;\n            }\n            while (rightIndex >= 0\n                && (token = tokens[rightIndex], token.align === 'right')) {\n                this._placeToken(token, style, lineHeight, lineTop, lineXRight, 'right', bgColorDrawn);\n                remainedWidth -= token.width;\n                lineXRight -= token.width;\n                rightIndex--;\n            }\n            lineXLeft += (contentWidth - (lineXLeft - xLeft) - (xRight - lineXRight) - remainedWidth) / 2;\n            while (leftIndex <= rightIndex) {\n                token = tokens[leftIndex];\n                this._placeToken(token, style, lineHeight, lineTop, lineXLeft + token.width / 2, 'center', bgColorDrawn);\n                lineXLeft += token.width;\n                leftIndex++;\n            }\n            lineTop += lineHeight;\n        }\n    };\n    ZRText.prototype._placeToken = function (token, style, lineHeight, lineTop, x, textAlign, parentBgColorDrawn) {\n        var tokenStyle = style.rich[token.styleName] || {};\n        tokenStyle.text = token.text;\n        var verticalAlign = token.verticalAlign;\n        var y = lineTop + lineHeight / 2;\n        if (verticalAlign === 'top') {\n            y = lineTop + token.height / 2;\n        }\n        else if (verticalAlign === 'bottom') {\n            y = lineTop + lineHeight - token.height / 2;\n        }\n        var needDrawBg = !token.isLineHolder && needDrawBackground(tokenStyle);\n        needDrawBg && this._renderBackground(tokenStyle, style, textAlign === 'right'\n            ? x - token.width\n            : textAlign === 'center'\n                ? x - token.width / 2\n                : x, y - token.height / 2, token.width, token.height);\n        var bgColorDrawn = !!tokenStyle.backgroundColor;\n        var textPadding = token.textPadding;\n        if (textPadding) {\n            x = getTextXForPadding(x, textAlign, textPadding);\n            y -= token.height / 2 - textPadding[0] - token.innerHeight / 2;\n        }\n        var el = this._getOrCreateChild(TSpan);\n        var subElStyle = el.createStyle();\n        el.useStyle(subElStyle);\n        var defaultStyle = this._defaultStyle;\n        var useDefaultFill = false;\n        var defaultLineWidth = 0;\n        var textFill = getStroke('fill' in tokenStyle ? tokenStyle.fill\n            : 'fill' in style ? style.fill\n                : (useDefaultFill = true, defaultStyle.fill));\n        var textStroke = getStroke('stroke' in tokenStyle ? tokenStyle.stroke\n            : 'stroke' in style ? style.stroke\n                : (!bgColorDrawn\n                    && !parentBgColorDrawn\n                    && (!defaultStyle.autoStroke || useDefaultFill)) ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\n                    : null);\n        var hasShadow = tokenStyle.textShadowBlur > 0\n            || style.textShadowBlur > 0;\n        subElStyle.text = token.text;\n        subElStyle.x = x;\n        subElStyle.y = y;\n        if (hasShadow) {\n            subElStyle.shadowBlur = tokenStyle.textShadowBlur || style.textShadowBlur || 0;\n            subElStyle.shadowColor = tokenStyle.textShadowColor || style.textShadowColor || 'transparent';\n            subElStyle.shadowOffsetX = tokenStyle.textShadowOffsetX || style.textShadowOffsetX || 0;\n            subElStyle.shadowOffsetY = tokenStyle.textShadowOffsetY || style.textShadowOffsetY || 0;\n        }\n        subElStyle.textAlign = textAlign;\n        subElStyle.textBaseline = 'middle';\n        subElStyle.font = token.font || DEFAULT_FONT;\n        subElStyle.opacity = retrieve3(tokenStyle.opacity, style.opacity, 1);\n        if (textStroke) {\n            subElStyle.lineWidth = retrieve3(tokenStyle.lineWidth, style.lineWidth, defaultLineWidth);\n            subElStyle.lineDash = retrieve2(tokenStyle.lineDash, style.lineDash);\n            subElStyle.lineDashOffset = style.lineDashOffset || 0;\n            subElStyle.stroke = textStroke;\n        }\n        if (textFill) {\n            subElStyle.fill = textFill;\n        }\n        var textWidth = token.contentWidth;\n        var textHeight = token.contentHeight;\n        el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, textWidth, subElStyle.textAlign), adjustTextY(subElStyle.y, textHeight, subElStyle.textBaseline), textWidth, textHeight));\n    };\n    ZRText.prototype._renderBackground = function (style, topStyle, x, y, width, height) {\n        var textBackgroundColor = style.backgroundColor;\n        var textBorderWidth = style.borderWidth;\n        var textBorderColor = style.borderColor;\n        var isPlainBg = isString(textBackgroundColor);\n        var textBorderRadius = style.borderRadius;\n        var self = this;\n        var rectEl;\n        var imgEl;\n        if (isPlainBg || (textBorderWidth && textBorderColor)) {\n            rectEl = this._getOrCreateChild(Rect);\n            rectEl.useStyle(rectEl.createStyle());\n            rectEl.style.fill = null;\n            var rectShape = rectEl.shape;\n            rectShape.x = x;\n            rectShape.y = y;\n            rectShape.width = width;\n            rectShape.height = height;\n            rectShape.r = textBorderRadius;\n            rectEl.dirtyShape();\n        }\n        if (isPlainBg) {\n            var rectStyle = rectEl.style;\n            rectStyle.fill = textBackgroundColor || null;\n            rectStyle.fillOpacity = retrieve2(style.fillOpacity, 1);\n        }\n        else if (textBackgroundColor && textBackgroundColor.image) {\n            imgEl = this._getOrCreateChild(ZRImage);\n            imgEl.onload = function () {\n                self.dirtyStyle();\n            };\n            var imgStyle = imgEl.style;\n            imgStyle.image = textBackgroundColor.image;\n            imgStyle.x = x;\n            imgStyle.y = y;\n            imgStyle.width = width;\n            imgStyle.height = height;\n        }\n        if (textBorderWidth && textBorderColor) {\n            var rectStyle = rectEl.style;\n            rectStyle.lineWidth = textBorderWidth;\n            rectStyle.stroke = textBorderColor;\n            rectStyle.strokeOpacity = retrieve2(style.strokeOpacity, 1);\n            rectStyle.lineDash = style.borderDash;\n            rectStyle.lineDashOffset = style.borderDashOffset || 0;\n            rectEl.strokeContainThreshold = 0;\n            if (rectEl.hasFill() && rectEl.hasStroke()) {\n                rectStyle.strokeFirst = true;\n                rectStyle.lineWidth *= 2;\n            }\n        }\n        var commonStyle = (rectEl || imgEl).style;\n        commonStyle.shadowBlur = style.shadowBlur || 0;\n        commonStyle.shadowColor = style.shadowColor || 'transparent';\n        commonStyle.shadowOffsetX = style.shadowOffsetX || 0;\n        commonStyle.shadowOffsetY = style.shadowOffsetY || 0;\n        commonStyle.opacity = retrieve3(style.opacity, topStyle.opacity, 1);\n    };\n    ZRText.makeFont = function (style) {\n        var font = '';\n        if (style.fontSize || style.fontFamily || style.fontWeight) {\n            var fontSize = '';\n            if (typeof style.fontSize === 'string'\n                && (style.fontSize.indexOf('px') !== -1\n                    || style.fontSize.indexOf('rem') !== -1\n                    || style.fontSize.indexOf('em') !== -1)) {\n                fontSize = style.fontSize;\n            }\n            else if (!isNaN(+style.fontSize)) {\n                fontSize = style.fontSize + 'px';\n            }\n            else {\n                fontSize = '12px';\n            }\n            font = [\n                style.fontStyle,\n                style.fontWeight,\n                fontSize,\n                style.fontFamily || 'sans-serif'\n            ].join(' ');\n        }\n        return font && trim(font) || style.textFont || style.font;\n    };\n    return ZRText;\n}(Displayable));\nvar VALID_TEXT_ALIGN = { left: true, right: 1, center: 1 };\nvar VALID_TEXT_VERTICAL_ALIGN = { top: 1, bottom: 1, middle: 1 };\nexport function normalizeTextStyle(style) {\n    normalizeStyle(style);\n    each(style.rich, normalizeStyle);\n    return style;\n}\nfunction normalizeStyle(style) {\n    if (style) {\n        style.font = ZRText.makeFont(style);\n        var textAlign = style.align;\n        textAlign === 'middle' && (textAlign = 'center');\n        style.align = (textAlign == null || VALID_TEXT_ALIGN[textAlign]) ? textAlign : 'left';\n        var verticalAlign = style.verticalAlign;\n        verticalAlign === 'center' && (verticalAlign = 'middle');\n        style.verticalAlign = (verticalAlign == null || VALID_TEXT_VERTICAL_ALIGN[verticalAlign]) ? verticalAlign : 'top';\n        var textPadding = style.padding;\n        if (textPadding) {\n            style.padding = normalizeCssArray(style.padding);\n        }\n    }\n}\nfunction getStroke(stroke, lineWidth) {\n    return (stroke == null || lineWidth <= 0 || stroke === 'transparent' || stroke === 'none')\n        ? null\n        : (stroke.image || stroke.colorStops)\n            ? '#000'\n            : stroke;\n}\nfunction getFill(fill) {\n    return (fill == null || fill === 'none')\n        ? null\n        : (fill.image || fill.colorStops)\n            ? '#000'\n            : fill;\n}\nfunction getTextXForPadding(x, textAlign, textPadding) {\n    return textAlign === 'right'\n        ? (x - textPadding[1])\n        : textAlign === 'center'\n            ? (x + textPadding[3] / 2 - textPadding[1] / 2)\n            : (x + textPadding[3]);\n}\nfunction getStyleText(style) {\n    var text = style.text;\n    text != null && (text += '');\n    return text;\n}\nfunction needDrawBackground(style) {\n    return !!(style.backgroundColor\n        || (style.borderWidth && style.borderColor));\n}\nexport default ZRText;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner } from './model';\nexport var getECData = makeInner();","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport LRU from 'zrender/lib/core/LRU';\nimport { extend, indexOf, isArrayLike, isObject, keys, isArray, each } from 'zrender/lib/core/util';\nimport { getECData } from './innerStore';\nimport * as colorTool from 'zrender/lib/tool/color';\nimport { queryDataIndex, makeInner } from './model';\nimport Path from 'zrender/lib/graphic/Path';\nvar _highlightNextDigit = 1;\nvar _highlightKeyMap = {};\nvar getSavedStates = makeInner();\nexport var HOVER_STATE_NORMAL = 0;\nexport var HOVER_STATE_BLUR = 1;\nexport var HOVER_STATE_EMPHASIS = 2;\nexport var SPECIAL_STATES = ['emphasis', 'blur', 'select'];\nexport var DISPLAY_STATES = ['normal', 'emphasis', 'blur', 'select'];\nexport var Z2_EMPHASIS_LIFT = 10;\nexport var Z2_SELECT_LIFT = 9;\nexport var HIGHLIGHT_ACTION_TYPE = 'highlight';\nexport var DOWNPLAY_ACTION_TYPE = 'downplay';\nexport var SELECT_ACTION_TYPE = 'select';\nexport var UNSELECT_ACTION_TYPE = 'unselect';\nexport var TOGGLE_SELECT_ACTION_TYPE = 'toggleSelect';\n\nfunction hasFillOrStroke(fillOrStroke) {\n  return fillOrStroke != null && fillOrStroke !== 'none';\n}\n\nvar liftedColorCache = new LRU(100);\n\nfunction liftColor(color) {\n  if (typeof color !== 'string') {\n    return color;\n  }\n\n  var liftedColor = liftedColorCache.get(color);\n\n  if (!liftedColor) {\n    liftedColor = colorTool.lift(color, -0.1);\n    liftedColorCache.put(color, liftedColor);\n  }\n\n  return liftedColor;\n}\n\nfunction doChangeHoverState(el, stateName, hoverStateEnum) {\n  if (el.onHoverStateChange && (el.hoverState || 0) !== hoverStateEnum) {\n    el.onHoverStateChange(stateName);\n  }\n\n  el.hoverState = hoverStateEnum;\n}\n\nfunction singleEnterEmphasis(el) {\n  doChangeHoverState(el, 'emphasis', HOVER_STATE_EMPHASIS);\n}\n\nfunction singleLeaveEmphasis(el) {\n  if (el.hoverState === HOVER_STATE_EMPHASIS) {\n    doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\n  }\n}\n\nfunction singleEnterBlur(el) {\n  doChangeHoverState(el, 'blur', HOVER_STATE_BLUR);\n}\n\nfunction singleLeaveBlur(el) {\n  if (el.hoverState === HOVER_STATE_BLUR) {\n    doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\n  }\n}\n\nfunction singleEnterSelect(el) {\n  el.selected = true;\n}\n\nfunction singleLeaveSelect(el) {\n  el.selected = false;\n}\n\nfunction updateElementState(el, updater, commonParam) {\n  updater(el, commonParam);\n}\n\nfunction traverseUpdateState(el, updater, commonParam) {\n  updateElementState(el, updater, commonParam);\n  el.isGroup && el.traverse(function (child) {\n    updateElementState(child, updater, commonParam);\n  });\n}\n\nexport function setStatesFlag(el, stateName) {\n  switch (stateName) {\n    case 'emphasis':\n      el.hoverState = HOVER_STATE_EMPHASIS;\n      break;\n\n    case 'normal':\n      el.hoverState = HOVER_STATE_NORMAL;\n      break;\n\n    case 'blur':\n      el.hoverState = HOVER_STATE_BLUR;\n      break;\n\n    case 'select':\n      el.selected = true;\n  }\n}\nexport function clearStates(el) {\n  if (el.isGroup) {\n    el.traverse(function (child) {\n      child.clearStates();\n    });\n  } else {\n    el.clearStates();\n  }\n}\n\nfunction getFromStateStyle(el, props, toStateName, defaultValue) {\n  var style = el.style;\n  var fromState = {};\n\n  for (var i = 0; i < props.length; i++) {\n    var propName = props[i];\n    var val = style[propName];\n    fromState[propName] = val == null ? defaultValue && defaultValue[propName] : val;\n  }\n\n  for (var i = 0; i < el.animators.length; i++) {\n    var animator = el.animators[i];\n\n    if (animator.__fromStateTransition && animator.__fromStateTransition.indexOf(toStateName) < 0 && animator.targetName === 'style') {\n      animator.saveFinalToTarget(fromState, props);\n    }\n  }\n\n  return fromState;\n}\n\nfunction createEmphasisDefaultState(el, stateName, targetStates, state) {\n  var hasSelect = targetStates && indexOf(targetStates, 'select') >= 0;\n  var cloned = false;\n\n  if (el instanceof Path) {\n    var store = getSavedStates(el);\n    var fromFill = hasSelect ? store.selectFill || store.normalFill : store.normalFill;\n    var fromStroke = hasSelect ? store.selectStroke || store.normalStroke : store.normalStroke;\n\n    if (hasFillOrStroke(fromFill) || hasFillOrStroke(fromStroke)) {\n      state = state || {};\n      var emphasisStyle = state.style || {};\n\n      if (!hasFillOrStroke(emphasisStyle.fill) && hasFillOrStroke(fromFill)) {\n        cloned = true;\n        state = extend({}, state);\n        emphasisStyle = extend({}, emphasisStyle);\n        emphasisStyle.fill = liftColor(fromFill);\n      } else if (!hasFillOrStroke(emphasisStyle.stroke) && hasFillOrStroke(fromStroke)) {\n        if (!cloned) {\n          state = extend({}, state);\n          emphasisStyle = extend({}, emphasisStyle);\n        }\n\n        emphasisStyle.stroke = liftColor(fromStroke);\n      }\n\n      state.style = emphasisStyle;\n    }\n  }\n\n  if (state) {\n    if (state.z2 == null) {\n      if (!cloned) {\n        state = extend({}, state);\n      }\n\n      var z2EmphasisLift = el.z2EmphasisLift;\n      state.z2 = el.z2 + (z2EmphasisLift != null ? z2EmphasisLift : Z2_EMPHASIS_LIFT);\n    }\n  }\n\n  return state;\n}\n\nfunction createSelectDefaultState(el, stateName, state) {\n  if (state) {\n    if (state.z2 == null) {\n      state = extend({}, state);\n      var z2SelectLift = el.z2SelectLift;\n      state.z2 = el.z2 + (z2SelectLift != null ? z2SelectLift : Z2_SELECT_LIFT);\n    }\n  }\n\n  return state;\n}\n\nfunction createBlurDefaultState(el, stateName, state) {\n  var hasBlur = indexOf(el.currentStates, stateName) >= 0;\n  var currentOpacity = el.style.opacity;\n  var fromState = !hasBlur ? getFromStateStyle(el, ['opacity'], stateName, {\n    opacity: 1\n  }) : null;\n  state = state || {};\n  var blurStyle = state.style || {};\n\n  if (blurStyle.opacity == null) {\n    state = extend({}, state);\n    blurStyle = extend({\n      opacity: hasBlur ? currentOpacity : fromState.opacity * 0.1\n    }, blurStyle);\n    state.style = blurStyle;\n  }\n\n  return state;\n}\n\nfunction elementStateProxy(stateName, targetStates) {\n  var state = this.states[stateName];\n\n  if (this.style) {\n    if (stateName === 'emphasis') {\n      return createEmphasisDefaultState(this, stateName, targetStates, state);\n    } else if (stateName === 'blur') {\n      return createBlurDefaultState(this, stateName, state);\n    } else if (stateName === 'select') {\n      return createSelectDefaultState(this, stateName, state);\n    }\n  }\n\n  return state;\n}\n\nexport function setDefaultStateProxy(el) {\n  el.stateProxy = elementStateProxy;\n  var textContent = el.getTextContent();\n  var textGuide = el.getTextGuideLine();\n\n  if (textContent) {\n    textContent.stateProxy = elementStateProxy;\n  }\n\n  if (textGuide) {\n    textGuide.stateProxy = elementStateProxy;\n  }\n}\nexport function enterEmphasisWhenMouseOver(el, e) {\n  !shouldSilent(el, e) && !el.__highByOuter && traverseUpdateState(el, singleEnterEmphasis);\n}\nexport function leaveEmphasisWhenMouseOut(el, e) {\n  !shouldSilent(el, e) && !el.__highByOuter && traverseUpdateState(el, singleLeaveEmphasis);\n}\nexport function enterEmphasis(el, highlightDigit) {\n  el.__highByOuter |= 1 << (highlightDigit || 0);\n  traverseUpdateState(el, singleEnterEmphasis);\n}\nexport function leaveEmphasis(el, highlightDigit) {\n  !(el.__highByOuter &= ~(1 << (highlightDigit || 0))) && traverseUpdateState(el, singleLeaveEmphasis);\n}\nexport function enterBlur(el) {\n  traverseUpdateState(el, singleEnterBlur);\n}\nexport function leaveBlur(el) {\n  traverseUpdateState(el, singleLeaveBlur);\n}\nexport function enterSelect(el) {\n  traverseUpdateState(el, singleEnterSelect);\n}\nexport function leaveSelect(el) {\n  traverseUpdateState(el, singleLeaveSelect);\n}\n\nfunction shouldSilent(el, e) {\n  return el.__highDownSilentOnTouch && e.zrByTouch;\n}\n\nfunction allLeaveBlur(api) {\n  var model = api.getModel();\n  model.eachComponent(function (componentType, componentModel) {\n    var view = componentType === 'series' ? api.getViewOfSeriesModel(componentModel) : api.getViewOfComponentModel(componentModel);\n    view.group.traverse(function (child) {\n      singleLeaveBlur(child);\n    });\n  });\n}\n\nexport function toggleSeriesBlurState(targetSeriesIndex, focus, blurScope, api, isBlur) {\n  var ecModel = api.getModel();\n  blurScope = blurScope || 'coordinateSystem';\n\n  function leaveBlurOfIndices(data, dataIndices) {\n    for (var i = 0; i < dataIndices.length; i++) {\n      var itemEl = data.getItemGraphicEl(dataIndices[i]);\n      itemEl && leaveBlur(itemEl);\n    }\n  }\n\n  if (!isBlur) {\n    allLeaveBlur(api);\n    return;\n  }\n\n  if (targetSeriesIndex == null) {\n    return;\n  }\n\n  if (!focus || focus === 'none') {\n    return;\n  }\n\n  var targetSeriesModel = ecModel.getSeriesByIndex(targetSeriesIndex);\n  var targetCoordSys = targetSeriesModel.coordinateSystem;\n\n  if (targetCoordSys && targetCoordSys.master) {\n    targetCoordSys = targetCoordSys.master;\n  }\n\n  var blurredSeries = [];\n  ecModel.eachSeries(function (seriesModel) {\n    var sameSeries = targetSeriesModel === seriesModel;\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys && coordSys.master) {\n      coordSys = coordSys.master;\n    }\n\n    var sameCoordSys = coordSys && targetCoordSys ? coordSys === targetCoordSys : sameSeries;\n\n    if (!(blurScope === 'series' && !sameSeries || blurScope === 'coordinateSystem' && !sameCoordSys || focus === 'series' && sameSeries)) {\n      var view = api.getViewOfSeriesModel(seriesModel);\n      view.group.traverse(function (child) {\n        singleEnterBlur(child);\n      });\n\n      if (isArrayLike(focus)) {\n        leaveBlurOfIndices(seriesModel.getData(), focus);\n      } else if (isObject(focus)) {\n        var dataTypes = keys(focus);\n\n        for (var d = 0; d < dataTypes.length; d++) {\n          leaveBlurOfIndices(seriesModel.getData(dataTypes[d]), focus[dataTypes[d]]);\n        }\n      }\n\n      blurredSeries.push(seriesModel);\n    }\n  });\n  ecModel.eachComponent(function (componentType, componentModel) {\n    if (componentType === 'series') {\n      return;\n    }\n\n    var view = api.getViewOfComponentModel(componentModel);\n\n    if (view && view.blurSeries) {\n      view.blurSeries(blurredSeries, ecModel);\n    }\n  });\n}\nexport function toggleSeriesBlurStateFromPayload(seriesModel, payload, api) {\n  if (!isHighDownPayload(payload)) {\n    return;\n  }\n\n  var isHighlight = payload.type === HIGHLIGHT_ACTION_TYPE;\n  var seriesIndex = seriesModel.seriesIndex;\n  var data = seriesModel.getData(payload.dataType);\n  var dataIndex = queryDataIndex(data, payload);\n  dataIndex = (isArray(dataIndex) ? dataIndex[0] : dataIndex) || 0;\n  var el = data.getItemGraphicEl(dataIndex);\n\n  if (!el) {\n    var count = data.count();\n    var current = 0;\n\n    while (!el && current < count) {\n      el = data.getItemGraphicEl(current++);\n    }\n  }\n\n  if (el) {\n    var ecData = getECData(el);\n    toggleSeriesBlurState(seriesIndex, ecData.focus, ecData.blurScope, api, isHighlight);\n  } else {\n    var focus_1 = seriesModel.get(['emphasis', 'focus']);\n    var blurScope = seriesModel.get(['emphasis', 'blurScope']);\n\n    if (focus_1 != null) {\n      toggleSeriesBlurState(seriesIndex, focus_1, blurScope, api, isHighlight);\n    }\n  }\n}\nexport function toggleSelectionFromPayload(seriesModel, payload, api) {\n  if (!isSelectChangePayload(payload)) {\n    return;\n  }\n\n  var dataType = payload.dataType;\n  var data = seriesModel.getData(dataType);\n  var dataIndex = queryDataIndex(data, payload);\n\n  if (!isArray(dataIndex)) {\n    dataIndex = [dataIndex];\n  }\n\n  seriesModel[payload.type === TOGGLE_SELECT_ACTION_TYPE ? 'toggleSelect' : payload.type === SELECT_ACTION_TYPE ? 'select' : 'unselect'](dataIndex, dataType);\n}\nexport function updateSeriesElementSelection(seriesModel) {\n  var allData = seriesModel.getAllData();\n  each(allData, function (_a) {\n    var data = _a.data,\n        type = _a.type;\n    data.eachItemGraphicEl(function (el, idx) {\n      seriesModel.isSelected(idx, type) ? enterSelect(el) : leaveSelect(el);\n    });\n  });\n}\nexport function getAllSelectedIndices(ecModel) {\n  var ret = [];\n  ecModel.eachSeries(function (seriesModel) {\n    var allData = seriesModel.getAllData();\n    each(allData, function (_a) {\n      var data = _a.data,\n          type = _a.type;\n      var dataIndices = seriesModel.getSelectedDataIndices();\n\n      if (dataIndices.length > 0) {\n        var item = {\n          dataIndex: dataIndices,\n          seriesIndex: seriesModel.seriesIndex\n        };\n\n        if (type != null) {\n          item.dataType = type;\n        }\n\n        ret.push(item);\n      }\n    });\n  });\n  return ret;\n}\nexport function enableHoverEmphasis(el, focus, blurScope) {\n  setAsHighDownDispatcher(el, true);\n  traverseUpdateState(el, setDefaultStateProxy);\n  enableHoverFocus(el, focus, blurScope);\n}\nexport function enableHoverFocus(el, focus, blurScope) {\n  var ecData = getECData(el);\n\n  if (focus != null) {\n    ecData.focus = focus;\n    ecData.blurScope = blurScope;\n  } else if (ecData.focus) {\n    ecData.focus = null;\n  }\n}\nvar OTHER_STATES = ['emphasis', 'blur', 'select'];\nvar defaultStyleGetterMap = {\n  itemStyle: 'getItemStyle',\n  lineStyle: 'getLineStyle',\n  areaStyle: 'getAreaStyle'\n};\nexport function setStatesStylesFromModel(el, itemModel, styleType, getter) {\n  styleType = styleType || 'itemStyle';\n\n  for (var i = 0; i < OTHER_STATES.length; i++) {\n    var stateName = OTHER_STATES[i];\n    var model = itemModel.getModel([stateName, styleType]);\n    var state = el.ensureState(stateName);\n    state.style = getter ? getter(model) : model[defaultStyleGetterMap[styleType]]();\n  }\n}\nexport function setAsHighDownDispatcher(el, asDispatcher) {\n  var disable = asDispatcher === false;\n  var extendedEl = el;\n\n  if (el.highDownSilentOnTouch) {\n    extendedEl.__highDownSilentOnTouch = el.highDownSilentOnTouch;\n  }\n\n  if (!disable || extendedEl.__highDownDispatcher) {\n    extendedEl.__highByOuter = extendedEl.__highByOuter || 0;\n    extendedEl.__highDownDispatcher = !disable;\n  }\n}\nexport function isHighDownDispatcher(el) {\n  return !!(el && el.__highDownDispatcher);\n}\nexport function getHighlightDigit(highlightKey) {\n  var highlightDigit = _highlightKeyMap[highlightKey];\n\n  if (highlightDigit == null && _highlightNextDigit <= 32) {\n    highlightDigit = _highlightKeyMap[highlightKey] = _highlightNextDigit++;\n  }\n\n  return highlightDigit;\n}\nexport function isSelectChangePayload(payload) {\n  var payloadType = payload.type;\n  return payloadType === SELECT_ACTION_TYPE || payloadType === UNSELECT_ACTION_TYPE || payloadType === TOGGLE_SELECT_ACTION_TYPE;\n}\nexport function isHighDownPayload(payload) {\n  var payloadType = payload.type;\n  return payloadType === HIGHLIGHT_ACTION_TYPE || payloadType === DOWNPLAY_ACTION_TYPE;\n}\nexport function savePathStates(el) {\n  var store = getSavedStates(el);\n  store.normalFill = el.style.fill;\n  store.normalStroke = el.style.stroke;\n  var selectState = el.states.select || {};\n  store.selectFill = selectState.style && selectState.style.fill || null;\n  store.selectStroke = selectState.style && selectState.style.stroke || null;\n}","import PathProxy from '../core/PathProxy';\nimport { applyTransform as v2ApplyTransform } from '../core/vector';\nvar CMD = PathProxy.CMD;\nvar points = [[], [], []];\nvar mathSqrt = Math.sqrt;\nvar mathAtan2 = Math.atan2;\nexport default function transformPath(path, m) {\n    var data = path.data;\n    var len = path.len();\n    var cmd;\n    var nPoint;\n    var i;\n    var j;\n    var k;\n    var p;\n    var M = CMD.M;\n    var C = CMD.C;\n    var L = CMD.L;\n    var R = CMD.R;\n    var A = CMD.A;\n    var Q = CMD.Q;\n    for (i = 0, j = 0; i < len;) {\n        cmd = data[i++];\n        j = i;\n        nPoint = 0;\n        switch (cmd) {\n            case M:\n                nPoint = 1;\n                break;\n            case L:\n                nPoint = 1;\n                break;\n            case C:\n                nPoint = 3;\n                break;\n            case Q:\n                nPoint = 2;\n                break;\n            case A:\n                var x = m[4];\n                var y = m[5];\n                var sx = mathSqrt(m[0] * m[0] + m[1] * m[1]);\n                var sy = mathSqrt(m[2] * m[2] + m[3] * m[3]);\n                var angle = mathAtan2(-m[1] / sy, m[0] / sx);\n                data[i] *= sx;\n                data[i++] += x;\n                data[i] *= sy;\n                data[i++] += y;\n                data[i++] *= sx;\n                data[i++] *= sy;\n                data[i++] += angle;\n                data[i++] += angle;\n                i += 2;\n                j = i;\n                break;\n            case R:\n                p[0] = data[i++];\n                p[1] = data[i++];\n                v2ApplyTransform(p, p, m);\n                data[j++] = p[0];\n                data[j++] = p[1];\n                p[0] += data[i++];\n                p[1] += data[i++];\n                v2ApplyTransform(p, p, m);\n                data[j++] = p[0];\n                data[j++] = p[1];\n        }\n        for (k = 0; k < nPoint; k++) {\n            var p_1 = points[k];\n            p_1[0] = data[i++];\n            p_1[1] = data[i++];\n            v2ApplyTransform(p_1, p_1, m);\n            data[j++] = p_1[0];\n            data[j++] = p_1[1];\n        }\n    }\n    path.increaseVersion();\n}\n","import { __extends } from \"tslib\";\nimport Path from '../graphic/Path';\nimport PathProxy from '../core/PathProxy';\nimport transformPath from './transformPath';\nimport { extend } from '../core/util';\nvar mathSqrt = Math.sqrt;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI = Math.PI;\nfunction vMag(v) {\n    return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\n}\n;\nfunction vRatio(u, v) {\n    return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));\n}\n;\nfunction vAngle(u, v) {\n    return (u[0] * v[1] < u[1] * v[0] ? -1 : 1)\n        * Math.acos(vRatio(u, v));\n}\n;\nfunction processArc(x1, y1, x2, y2, fa, fs, rx, ry, psiDeg, cmd, path) {\n    var psi = psiDeg * (PI / 180.0);\n    var xp = mathCos(psi) * (x1 - x2) / 2.0\n        + mathSin(psi) * (y1 - y2) / 2.0;\n    var yp = -1 * mathSin(psi) * (x1 - x2) / 2.0\n        + mathCos(psi) * (y1 - y2) / 2.0;\n    var lambda = (xp * xp) / (rx * rx) + (yp * yp) / (ry * ry);\n    if (lambda > 1) {\n        rx *= mathSqrt(lambda);\n        ry *= mathSqrt(lambda);\n    }\n    var f = (fa === fs ? -1 : 1)\n        * mathSqrt((((rx * rx) * (ry * ry))\n            - ((rx * rx) * (yp * yp))\n            - ((ry * ry) * (xp * xp))) / ((rx * rx) * (yp * yp)\n            + (ry * ry) * (xp * xp))) || 0;\n    var cxp = f * rx * yp / ry;\n    var cyp = f * -ry * xp / rx;\n    var cx = (x1 + x2) / 2.0\n        + mathCos(psi) * cxp\n        - mathSin(psi) * cyp;\n    var cy = (y1 + y2) / 2.0\n        + mathSin(psi) * cxp\n        + mathCos(psi) * cyp;\n    var theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]);\n    var u = [(xp - cxp) / rx, (yp - cyp) / ry];\n    var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry];\n    var dTheta = vAngle(u, v);\n    if (vRatio(u, v) <= -1) {\n        dTheta = PI;\n    }\n    if (vRatio(u, v) >= 1) {\n        dTheta = 0;\n    }\n    if (dTheta < 0) {\n        var n = Math.round(dTheta / PI * 1e6) / 1e6;\n        dTheta = PI * 2 + (n % 2) * PI;\n    }\n    path.addData(cmd, cx, cy, rx, ry, theta, dTheta, psi, fs);\n}\nvar commandReg = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig;\nvar numberReg = /-?([0-9]*\\.)?[0-9]+([eE]-?[0-9]+)?/g;\nfunction createPathProxyFromString(data) {\n    var path = new PathProxy();\n    if (!data) {\n        return path;\n    }\n    var cpx = 0;\n    var cpy = 0;\n    var subpathX = cpx;\n    var subpathY = cpy;\n    var prevCmd;\n    var CMD = PathProxy.CMD;\n    var cmdList = data.match(commandReg);\n    if (!cmdList) {\n        return path;\n    }\n    for (var l = 0; l < cmdList.length; l++) {\n        var cmdText = cmdList[l];\n        var cmdStr = cmdText.charAt(0);\n        var cmd = void 0;\n        var p = cmdText.match(numberReg) || [];\n        var pLen = p.length;\n        for (var i = 0; i < pLen; i++) {\n            p[i] = parseFloat(p[i]);\n        }\n        var off = 0;\n        while (off < pLen) {\n            var ctlPtx = void 0;\n            var ctlPty = void 0;\n            var rx = void 0;\n            var ry = void 0;\n            var psi = void 0;\n            var fa = void 0;\n            var fs = void 0;\n            var x1 = cpx;\n            var y1 = cpy;\n            var len = void 0;\n            var pathData = void 0;\n            switch (cmdStr) {\n                case 'l':\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'L':\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'm':\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.M;\n                    path.addData(cmd, cpx, cpy);\n                    subpathX = cpx;\n                    subpathY = cpy;\n                    cmdStr = 'l';\n                    break;\n                case 'M':\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.M;\n                    path.addData(cmd, cpx, cpy);\n                    subpathX = cpx;\n                    subpathY = cpy;\n                    cmdStr = 'L';\n                    break;\n                case 'h':\n                    cpx += p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'H':\n                    cpx = p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'v':\n                    cpy += p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'V':\n                    cpy = p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'C':\n                    cmd = CMD.C;\n                    path.addData(cmd, p[off++], p[off++], p[off++], p[off++], p[off++], p[off++]);\n                    cpx = p[off - 2];\n                    cpy = p[off - 1];\n                    break;\n                case 'c':\n                    cmd = CMD.C;\n                    path.addData(cmd, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy);\n                    cpx += p[off - 2];\n                    cpy += p[off - 1];\n                    break;\n                case 'S':\n                    ctlPtx = cpx;\n                    ctlPty = cpy;\n                    len = path.len();\n                    pathData = path.data;\n                    if (prevCmd === CMD.C) {\n                        ctlPtx += cpx - pathData[len - 4];\n                        ctlPty += cpy - pathData[len - 3];\n                    }\n                    cmd = CMD.C;\n                    x1 = p[off++];\n                    y1 = p[off++];\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\n                    break;\n                case 's':\n                    ctlPtx = cpx;\n                    ctlPty = cpy;\n                    len = path.len();\n                    pathData = path.data;\n                    if (prevCmd === CMD.C) {\n                        ctlPtx += cpx - pathData[len - 4];\n                        ctlPty += cpy - pathData[len - 3];\n                    }\n                    cmd = CMD.C;\n                    x1 = cpx + p[off++];\n                    y1 = cpy + p[off++];\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\n                    break;\n                case 'Q':\n                    x1 = p[off++];\n                    y1 = p[off++];\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.Q;\n                    path.addData(cmd, x1, y1, cpx, cpy);\n                    break;\n                case 'q':\n                    x1 = p[off++] + cpx;\n                    y1 = p[off++] + cpy;\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.Q;\n                    path.addData(cmd, x1, y1, cpx, cpy);\n                    break;\n                case 'T':\n                    ctlPtx = cpx;\n                    ctlPty = cpy;\n                    len = path.len();\n                    pathData = path.data;\n                    if (prevCmd === CMD.Q) {\n                        ctlPtx += cpx - pathData[len - 4];\n                        ctlPty += cpy - pathData[len - 3];\n                    }\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.Q;\n                    path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n                    break;\n                case 't':\n                    ctlPtx = cpx;\n                    ctlPty = cpy;\n                    len = path.len();\n                    pathData = path.data;\n                    if (prevCmd === CMD.Q) {\n                        ctlPtx += cpx - pathData[len - 4];\n                        ctlPty += cpy - pathData[len - 3];\n                    }\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.Q;\n                    path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n                    break;\n                case 'A':\n                    rx = p[off++];\n                    ry = p[off++];\n                    psi = p[off++];\n                    fa = p[off++];\n                    fs = p[off++];\n                    x1 = cpx, y1 = cpy;\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.A;\n                    processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\n                    break;\n                case 'a':\n                    rx = p[off++];\n                    ry = p[off++];\n                    psi = p[off++];\n                    fa = p[off++];\n                    fs = p[off++];\n                    x1 = cpx, y1 = cpy;\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.A;\n                    processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\n                    break;\n            }\n        }\n        if (cmdStr === 'z' || cmdStr === 'Z') {\n            cmd = CMD.Z;\n            path.addData(cmd);\n            cpx = subpathX;\n            cpy = subpathY;\n        }\n        prevCmd = cmd;\n    }\n    path.toStatic();\n    return path;\n}\nvar SVGPath = (function (_super) {\n    __extends(SVGPath, _super);\n    function SVGPath() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    SVGPath.prototype.applyTransform = function (m) { };\n    return SVGPath;\n}(Path));\nfunction isPathProxy(path) {\n    return path.setData != null;\n}\nfunction createPathOptions(str, opts) {\n    var pathProxy = createPathProxyFromString(str);\n    var innerOpts = extend({}, opts);\n    innerOpts.buildPath = function (path) {\n        if (isPathProxy(path)) {\n            path.setData(pathProxy.data);\n            var ctx = path.getContext();\n            if (ctx) {\n                path.rebuildPath(ctx, 1);\n            }\n        }\n        else {\n            var ctx = path;\n            pathProxy.rebuildPath(ctx, 1);\n        }\n    };\n    innerOpts.applyTransform = function (m) {\n        transformPath(pathProxy, m);\n        this.dirtyShape();\n    };\n    return innerOpts;\n}\nexport function createFromString(str, opts) {\n    return new SVGPath(createPathOptions(str, opts));\n}\nexport function extendFromString(str, defaultOpts) {\n    var innerOpts = createPathOptions(str, defaultOpts);\n    var Sub = (function (_super) {\n        __extends(Sub, _super);\n        function Sub(opts) {\n            var _this = _super.call(this, opts) || this;\n            _this.applyTransform = innerOpts.applyTransform;\n            _this.buildPath = innerOpts.buildPath;\n            return _this;\n        }\n        return Sub;\n    }(SVGPath));\n    return Sub;\n}\nexport function mergePath(pathEls, opts) {\n    var pathList = [];\n    var len = pathEls.length;\n    for (var i = 0; i < len; i++) {\n        var pathEl = pathEls[i];\n        if (!pathEl.path) {\n            pathEl.createPathProxy();\n        }\n        if (pathEl.shapeChanged()) {\n            pathEl.buildPath(pathEl.path, pathEl.shape, true);\n        }\n        pathList.push(pathEl.path);\n    }\n    var pathBundle = new Path(opts);\n    pathBundle.createPathProxy();\n    pathBundle.buildPath = function (path) {\n        if (isPathProxy(path)) {\n            path.appendPath(pathList);\n            var ctx = path.getContext();\n            if (ctx) {\n                path.rebuildPath(ctx, 1);\n            }\n        }\n    };\n    return pathBundle;\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar CircleShape = (function () {\n    function CircleShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.r = 0;\n    }\n    return CircleShape;\n}());\nvar Circle = (function (_super) {\n    __extends(Circle, _super);\n    function Circle(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Circle.prototype.getDefaultShape = function () {\n        return new CircleShape();\n    };\n    Circle.prototype.buildPath = function (ctx, shape, inBundle) {\n        if (inBundle) {\n            ctx.moveTo(shape.cx + shape.r, shape.cy);\n        }\n        ctx.arc(shape.cx, shape.cy, shape.r, 0, Math.PI * 2);\n    };\n    return Circle;\n}(Path));\n;\nCircle.prototype.type = 'circle';\nexport default Circle;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar EllipseShape = (function () {\n    function EllipseShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.rx = 0;\n        this.ry = 0;\n    }\n    return EllipseShape;\n}());\nvar Ellipse = (function (_super) {\n    __extends(Ellipse, _super);\n    function Ellipse(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Ellipse.prototype.getDefaultShape = function () {\n        return new EllipseShape();\n    };\n    Ellipse.prototype.buildPath = function (ctx, shape) {\n        var k = 0.5522848;\n        var x = shape.cx;\n        var y = shape.cy;\n        var a = shape.rx;\n        var b = shape.ry;\n        var ox = a * k;\n        var oy = b * k;\n        ctx.moveTo(x - a, y);\n        ctx.bezierCurveTo(x - a, y - oy, x - ox, y - b, x, y - b);\n        ctx.bezierCurveTo(x + ox, y - b, x + a, y - oy, x + a, y);\n        ctx.bezierCurveTo(x + a, y + oy, x + ox, y + b, x, y + b);\n        ctx.bezierCurveTo(x - ox, y + b, x - a, y + oy, x - a, y);\n        ctx.closePath();\n    };\n    return Ellipse;\n}(Path));\nEllipse.prototype.type = 'ellipse';\nexport default Ellipse;\n","import { normalizeArcAngles } from '../../core/PathProxy';\nvar PI = Math.PI;\nvar PI2 = PI * 2;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar mathACos = Math.acos;\nvar mathATan2 = Math.atan2;\nvar mathAbs = Math.abs;\nvar mathSqrt = Math.sqrt;\nvar mathMax = Math.max;\nvar mathMin = Math.min;\nvar e = 1e-4;\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n    var x10 = x1 - x0;\n    var y10 = y1 - y0;\n    var x32 = x3 - x2;\n    var y32 = y3 - y2;\n    var t = y32 * x10 - x32 * y10;\n    if (t * t < e) {\n        return;\n    }\n    t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n    return [x0 + t * x10, y0 + t * y10];\n}\nfunction computeCornerTangents(x0, y0, x1, y1, radius, cr, clockwise) {\n    var x01 = x0 - x1;\n    var y01 = y0 - y1;\n    var lo = (clockwise ? cr : -cr) / mathSqrt(x01 * x01 + y01 * y01);\n    var ox = lo * y01;\n    var oy = -lo * x01;\n    var x11 = x0 + ox;\n    var y11 = y0 + oy;\n    var x10 = x1 + ox;\n    var y10 = y1 + oy;\n    var x00 = (x11 + x10) / 2;\n    var y00 = (y11 + y10) / 2;\n    var dx = x10 - x11;\n    var dy = y10 - y11;\n    var d2 = dx * dx + dy * dy;\n    var r = radius - cr;\n    var s = x11 * y10 - x10 * y11;\n    var d = (dy < 0 ? -1 : 1) * mathSqrt(mathMax(0, r * r * d2 - s * s));\n    var cx0 = (s * dy - dx * d) / d2;\n    var cy0 = (-s * dx - dy * d) / d2;\n    var cx1 = (s * dy + dx * d) / d2;\n    var cy1 = (-s * dx + dy * d) / d2;\n    var dx0 = cx0 - x00;\n    var dy0 = cy0 - y00;\n    var dx1 = cx1 - x00;\n    var dy1 = cy1 - y00;\n    if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) {\n        cx0 = cx1;\n        cy0 = cy1;\n    }\n    return {\n        cx: cx0,\n        cy: cy0,\n        x01: -ox,\n        y01: -oy,\n        x11: cx0 * (radius / r - 1),\n        y11: cy0 * (radius / r - 1)\n    };\n}\nexport function buildPath(ctx, shape) {\n    var radius = mathMax(shape.r, 0);\n    var innerRadius = mathMax(shape.r0 || 0, 0);\n    var hasRadius = radius > 0;\n    var hasInnerRadius = innerRadius > 0;\n    if (!hasRadius && !hasInnerRadius) {\n        return;\n    }\n    if (!hasRadius) {\n        radius = innerRadius;\n        innerRadius = 0;\n    }\n    if (innerRadius > radius) {\n        var tmp = radius;\n        radius = innerRadius;\n        innerRadius = tmp;\n    }\n    var clockwise = !!shape.clockwise;\n    var startAngle = shape.startAngle;\n    var endAngle = shape.endAngle;\n    var tmpAngles = [startAngle, endAngle];\n    normalizeArcAngles(tmpAngles, !clockwise);\n    var arc = mathAbs(tmpAngles[0] - tmpAngles[1]);\n    var x = shape.cx;\n    var y = shape.cy;\n    var cornerRadius = shape.cornerRadius || 0;\n    var innerCornerRadius = shape.innerCornerRadius || 0;\n    if (!(radius > e)) {\n        ctx.moveTo(x, y);\n    }\n    else if (arc > PI2 - e) {\n        ctx.moveTo(x + radius * mathCos(startAngle), y + radius * mathSin(startAngle));\n        ctx.arc(x, y, radius, startAngle, endAngle, !clockwise);\n        if (innerRadius > e) {\n            ctx.moveTo(x + innerRadius * mathCos(endAngle), y + innerRadius * mathSin(endAngle));\n            ctx.arc(x, y, innerRadius, endAngle, startAngle, clockwise);\n        }\n    }\n    else {\n        var halfRd = mathAbs(radius - innerRadius) / 2;\n        var cr = mathMin(halfRd, cornerRadius);\n        var icr = mathMin(halfRd, innerCornerRadius);\n        var cr0 = icr;\n        var cr1 = cr;\n        var xrs = radius * mathCos(startAngle);\n        var yrs = radius * mathSin(startAngle);\n        var xire = innerRadius * mathCos(endAngle);\n        var yire = innerRadius * mathSin(endAngle);\n        var xre = void 0;\n        var yre = void 0;\n        var xirs = void 0;\n        var yirs = void 0;\n        if (cr > e || icr > e) {\n            xre = radius * mathCos(endAngle);\n            yre = radius * mathSin(endAngle);\n            xirs = innerRadius * mathCos(startAngle);\n            yirs = innerRadius * mathSin(startAngle);\n            if (arc < PI) {\n                var it_1 = intersect(xrs, yrs, xirs, yirs, xre, yre, xire, yire);\n                if (it_1) {\n                    var x0 = xrs - it_1[0];\n                    var y0 = yrs - it_1[1];\n                    var x1 = xre - it_1[0];\n                    var y1 = yre - it_1[1];\n                    var a = 1 / mathSin(mathACos((x0 * x1 + y0 * y1) / (mathSqrt(x0 * x0 + y0 * y0) * mathSqrt(x1 * x1 + y1 * y1))) / 2);\n                    var b = mathSqrt(it_1[0] * it_1[0] + it_1[1] * it_1[1]);\n                    cr0 = mathMin(icr, (innerRadius - b) / (a - 1));\n                    cr1 = mathMin(cr, (radius - b) / (a + 1));\n                }\n            }\n        }\n        if (!(arc > e)) {\n            ctx.moveTo(x + xrs, y + yrs);\n        }\n        else if (cr1 > e) {\n            var ct0 = computeCornerTangents(xirs, yirs, xrs, yrs, radius, cr1, clockwise);\n            var ct1 = computeCornerTangents(xre, yre, xire, yire, radius, cr1, clockwise);\n            ctx.moveTo(x + ct0.cx + ct0.x01, y + ct0.cy + ct0.y01);\n            if (cr1 < cr) {\n                ctx.arc(x + ct0.cx, y + ct0.cy, cr1, mathATan2(ct0.y01, ct0.x01), mathATan2(ct1.y01, ct1.x01), !clockwise);\n            }\n            else {\n                ctx.arc(x + ct0.cx, y + ct0.cy, cr1, mathATan2(ct0.y01, ct0.x01), mathATan2(ct0.y11, ct0.x11), !clockwise);\n                ctx.arc(x, y, radius, mathATan2(ct0.cy + ct0.y11, ct0.cx + ct0.x11), mathATan2(ct1.cy + ct1.y11, ct1.cx + ct1.x11), !clockwise);\n                ctx.arc(x + ct1.cx, y + ct1.cy, cr1, mathATan2(ct1.y11, ct1.x11), mathATan2(ct1.y01, ct1.x01), !clockwise);\n            }\n        }\n        else {\n            ctx.moveTo(x + xrs, y + yrs);\n            ctx.arc(x, y, radius, startAngle, endAngle, !clockwise);\n        }\n        if (!(innerRadius > e) || !(arc > e)) {\n            ctx.lineTo(x + xire, y + yire);\n        }\n        else if (cr0 > e) {\n            var ct0 = computeCornerTangents(xire, yire, xre, yre, innerRadius, -cr0, clockwise);\n            var ct1 = computeCornerTangents(xrs, yrs, xirs, yirs, innerRadius, -cr0, clockwise);\n            ctx.lineTo(x + ct0.cx + ct0.x01, y + ct0.cy + ct0.y01);\n            if (cr0 < icr) {\n                ctx.arc(x + ct0.cx, y + ct0.cy, cr0, mathATan2(ct0.y01, ct0.x01), mathATan2(ct1.y01, ct1.x01), !clockwise);\n            }\n            else {\n                ctx.arc(x + ct0.cx, y + ct0.cy, cr0, mathATan2(ct0.y01, ct0.x01), mathATan2(ct0.y11, ct0.x11), !clockwise);\n                ctx.arc(x, y, innerRadius, mathATan2(ct0.cy + ct0.y11, ct0.cx + ct0.x11), mathATan2(ct1.cy + ct1.y11, ct1.cx + ct1.x11), clockwise);\n                ctx.arc(x + ct1.cx, y + ct1.cy, cr0, mathATan2(ct1.y11, ct1.x11), mathATan2(ct1.y01, ct1.x01), !clockwise);\n            }\n        }\n        else {\n            ctx.lineTo(x + xire, y + yire);\n            ctx.arc(x, y, innerRadius, endAngle, startAngle, clockwise);\n        }\n    }\n    ctx.closePath();\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as roundSectorHelper from '../helper/roundSector';\nvar SectorShape = (function () {\n    function SectorShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.r0 = 0;\n        this.r = 0;\n        this.startAngle = 0;\n        this.endAngle = Math.PI * 2;\n        this.clockwise = true;\n        this.cornerRadius = 0;\n        this.innerCornerRadius = 0;\n    }\n    return SectorShape;\n}());\nvar Sector = (function (_super) {\n    __extends(Sector, _super);\n    function Sector(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Sector.prototype.getDefaultShape = function () {\n        return new SectorShape();\n    };\n    Sector.prototype.buildPath = function (ctx, shape) {\n        roundSectorHelper.buildPath(ctx, shape);\n    };\n    Sector.prototype.isZeroArea = function () {\n        return this.shape.startAngle === this.shape.endAngle\n            || this.shape.r === this.shape.r0;\n    };\n    return Sector;\n}(Path));\nSector.prototype.type = 'sector';\nexport default Sector;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar RingShape = (function () {\n    function RingShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.r = 0;\n        this.r0 = 0;\n    }\n    return RingShape;\n}());\nvar Ring = (function (_super) {\n    __extends(Ring, _super);\n    function Ring(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Ring.prototype.getDefaultShape = function () {\n        return new RingShape();\n    };\n    Ring.prototype.buildPath = function (ctx, shape) {\n        var x = shape.cx;\n        var y = shape.cy;\n        var PI2 = Math.PI * 2;\n        ctx.moveTo(x + shape.r, y);\n        ctx.arc(x, y, shape.r, 0, PI2, false);\n        ctx.moveTo(x + shape.r0, y);\n        ctx.arc(x, y, shape.r0, 0, PI2, true);\n    };\n    return Ring;\n}(Path));\nRing.prototype.type = 'ring';\nexport default Ring;\n","import { distance as v2Distance } from '../../core/vector';\nfunction interpolate(p0, p1, p2, p3, t, t2, t3) {\n    var v0 = (p2 - p0) * 0.5;\n    var v1 = (p3 - p1) * 0.5;\n    return (2 * (p1 - p2) + v0 + v1) * t3\n        + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\n        + v0 * t + p1;\n}\nexport default function smoothSpline(points, isLoop) {\n    var len = points.length;\n    var ret = [];\n    var distance = 0;\n    for (var i = 1; i < len; i++) {\n        distance += v2Distance(points[i - 1], points[i]);\n    }\n    var segs = distance / 2;\n    segs = segs < len ? len : segs;\n    for (var i = 0; i < segs; i++) {\n        var pos = i / (segs - 1) * (isLoop ? len : len - 1);\n        var idx = Math.floor(pos);\n        var w = pos - idx;\n        var p0 = void 0;\n        var p1 = points[idx % len];\n        var p2 = void 0;\n        var p3 = void 0;\n        if (!isLoop) {\n            p0 = points[idx === 0 ? idx : idx - 1];\n            p2 = points[idx > len - 2 ? len - 1 : idx + 1];\n            p3 = points[idx > len - 3 ? len - 1 : idx + 2];\n        }\n        else {\n            p0 = points[(idx - 1 + len) % len];\n            p2 = points[(idx + 1) % len];\n            p3 = points[(idx + 2) % len];\n        }\n        var w2 = w * w;\n        var w3 = w * w2;\n        ret.push([\n            interpolate(p0[0], p1[0], p2[0], p3[0], w, w2, w3),\n            interpolate(p0[1], p1[1], p2[1], p3[1], w, w2, w3)\n        ]);\n    }\n    return ret;\n}\n","import { min as v2Min, max as v2Max, scale as v2Scale, distance as v2Distance, add as v2Add, clone as v2Clone, sub as v2Sub } from '../../core/vector';\nexport default function smoothBezier(points, smooth, isLoop, constraint) {\n    var cps = [];\n    var v = [];\n    var v1 = [];\n    var v2 = [];\n    var prevPoint;\n    var nextPoint;\n    var min;\n    var max;\n    if (constraint) {\n        min = [Infinity, Infinity];\n        max = [-Infinity, -Infinity];\n        for (var i = 0, len = points.length; i < len; i++) {\n            v2Min(min, min, points[i]);\n            v2Max(max, max, points[i]);\n        }\n        v2Min(min, min, constraint[0]);\n        v2Max(max, max, constraint[1]);\n    }\n    for (var i = 0, len = points.length; i < len; i++) {\n        var point = points[i];\n        if (isLoop) {\n            prevPoint = points[i ? i - 1 : len - 1];\n            nextPoint = points[(i + 1) % len];\n        }\n        else {\n            if (i === 0 || i === len - 1) {\n                cps.push(v2Clone(points[i]));\n                continue;\n            }\n            else {\n                prevPoint = points[i - 1];\n                nextPoint = points[i + 1];\n            }\n        }\n        v2Sub(v, nextPoint, prevPoint);\n        v2Scale(v, v, smooth);\n        var d0 = v2Distance(point, prevPoint);\n        var d1 = v2Distance(point, nextPoint);\n        var sum = d0 + d1;\n        if (sum !== 0) {\n            d0 /= sum;\n            d1 /= sum;\n        }\n        v2Scale(v1, v, -d0);\n        v2Scale(v2, v, d1);\n        var cp0 = v2Add([], point, v1);\n        var cp1 = v2Add([], point, v2);\n        if (constraint) {\n            v2Max(cp0, cp0, min);\n            v2Min(cp0, cp0, max);\n            v2Max(cp1, cp1, min);\n            v2Min(cp1, cp1, max);\n        }\n        cps.push(cp0);\n        cps.push(cp1);\n    }\n    if (isLoop) {\n        cps.push(cps.shift());\n    }\n    return cps;\n}\n","import smoothSpline from './smoothSpline';\nimport smoothBezier from './smoothBezier';\nexport function buildPath(ctx, shape, closePath) {\n    var smooth = shape.smooth;\n    var points = shape.points;\n    if (points && points.length >= 2) {\n        if (smooth && smooth !== 'spline') {\n            var controlPoints = smoothBezier(points, smooth, closePath, shape.smoothConstraint);\n            ctx.moveTo(points[0][0], points[0][1]);\n            var len = points.length;\n            for (var i = 0; i < (closePath ? len : len - 1); i++) {\n                var cp1 = controlPoints[i * 2];\n                var cp2 = controlPoints[i * 2 + 1];\n                var p = points[(i + 1) % len];\n                ctx.bezierCurveTo(cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]);\n            }\n        }\n        else {\n            if (smooth === 'spline') {\n                points = smoothSpline(points, closePath);\n            }\n            ctx.moveTo(points[0][0], points[0][1]);\n            for (var i = 1, l = points.length; i < l; i++) {\n                ctx.lineTo(points[i][0], points[i][1]);\n            }\n        }\n        closePath && ctx.closePath();\n    }\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as polyHelper from '../helper/poly';\nvar PolygonShape = (function () {\n    function PolygonShape() {\n        this.points = null;\n        this.smooth = 0;\n        this.smoothConstraint = null;\n    }\n    return PolygonShape;\n}());\nvar Polygon = (function (_super) {\n    __extends(Polygon, _super);\n    function Polygon(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Polygon.prototype.getDefaultShape = function () {\n        return new PolygonShape();\n    };\n    Polygon.prototype.buildPath = function (ctx, shape) {\n        polyHelper.buildPath(ctx, shape, true);\n    };\n    return Polygon;\n}(Path));\n;\nPolygon.prototype.type = 'polygon';\nexport default Polygon;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as polyHelper from '../helper/poly';\nvar PolylineShape = (function () {\n    function PolylineShape() {\n        this.points = null;\n        this.percent = 1;\n        this.smooth = 0;\n        this.smoothConstraint = null;\n    }\n    return PolylineShape;\n}());\nvar Polyline = (function (_super) {\n    __extends(Polyline, _super);\n    function Polyline(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Polyline.prototype.getDefaultStyle = function () {\n        return {\n            stroke: '#000',\n            fill: null\n        };\n    };\n    Polyline.prototype.getDefaultShape = function () {\n        return new PolylineShape();\n    };\n    Polyline.prototype.buildPath = function (ctx, shape) {\n        polyHelper.buildPath(ctx, shape, false);\n    };\n    return Polyline;\n}(Path));\nPolyline.prototype.type = 'polyline';\nexport default Polyline;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport { subPixelOptimizeLine } from '../helper/subPixelOptimize';\nvar subPixelOptimizeOutputShape = {};\nvar LineShape = (function () {\n    function LineShape() {\n        this.x1 = 0;\n        this.y1 = 0;\n        this.x2 = 0;\n        this.y2 = 0;\n        this.percent = 1;\n    }\n    return LineShape;\n}());\nvar Line = (function (_super) {\n    __extends(Line, _super);\n    function Line(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Line.prototype.getDefaultStyle = function () {\n        return {\n            stroke: '#000',\n            fill: null\n        };\n    };\n    Line.prototype.getDefaultShape = function () {\n        return new LineShape();\n    };\n    Line.prototype.buildPath = function (ctx, shape) {\n        var x1;\n        var y1;\n        var x2;\n        var y2;\n        if (this.subPixelOptimize) {\n            var optimizedShape = subPixelOptimizeLine(subPixelOptimizeOutputShape, shape, this.style);\n            x1 = optimizedShape.x1;\n            y1 = optimizedShape.y1;\n            x2 = optimizedShape.x2;\n            y2 = optimizedShape.y2;\n        }\n        else {\n            x1 = shape.x1;\n            y1 = shape.y1;\n            x2 = shape.x2;\n            y2 = shape.y2;\n        }\n        var percent = shape.percent;\n        if (percent === 0) {\n            return;\n        }\n        ctx.moveTo(x1, y1);\n        if (percent < 1) {\n            x2 = x1 * (1 - percent) + x2 * percent;\n            y2 = y1 * (1 - percent) + y2 * percent;\n        }\n        ctx.lineTo(x2, y2);\n    };\n    Line.prototype.pointAt = function (p) {\n        var shape = this.shape;\n        return [\n            shape.x1 * (1 - p) + shape.x2 * p,\n            shape.y1 * (1 - p) + shape.y2 * p\n        ];\n    };\n    return Line;\n}(Path));\nLine.prototype.type = 'line';\nexport default Line;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as vec2 from '../../core/vector';\nimport { quadraticSubdivide, cubicSubdivide, quadraticAt, cubicAt, quadraticDerivativeAt, cubicDerivativeAt } from '../../core/curve';\nvar out = [];\nvar BezierCurveShape = (function () {\n    function BezierCurveShape() {\n        this.x1 = 0;\n        this.y1 = 0;\n        this.x2 = 0;\n        this.y2 = 0;\n        this.cpx1 = 0;\n        this.cpy1 = 0;\n        this.percent = 1;\n    }\n    return BezierCurveShape;\n}());\nfunction someVectorAt(shape, t, isTangent) {\n    var cpx2 = shape.cpx2;\n    var cpy2 = shape.cpy2;\n    if (cpx2 === null || cpy2 === null) {\n        return [\n            (isTangent ? cubicDerivativeAt : cubicAt)(shape.x1, shape.cpx1, shape.cpx2, shape.x2, t),\n            (isTangent ? cubicDerivativeAt : cubicAt)(shape.y1, shape.cpy1, shape.cpy2, shape.y2, t)\n        ];\n    }\n    else {\n        return [\n            (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.x1, shape.cpx1, shape.x2, t),\n            (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.y1, shape.cpy1, shape.y2, t)\n        ];\n    }\n}\nvar BezierCurve = (function (_super) {\n    __extends(BezierCurve, _super);\n    function BezierCurve(opts) {\n        return _super.call(this, opts) || this;\n    }\n    BezierCurve.prototype.getDefaultStyle = function () {\n        return {\n            stroke: '#000',\n            fill: null\n        };\n    };\n    BezierCurve.prototype.getDefaultShape = function () {\n        return new BezierCurveShape();\n    };\n    BezierCurve.prototype.buildPath = function (ctx, shape) {\n        var x1 = shape.x1;\n        var y1 = shape.y1;\n        var x2 = shape.x2;\n        var y2 = shape.y2;\n        var cpx1 = shape.cpx1;\n        var cpy1 = shape.cpy1;\n        var cpx2 = shape.cpx2;\n        var cpy2 = shape.cpy2;\n        var percent = shape.percent;\n        if (percent === 0) {\n            return;\n        }\n        ctx.moveTo(x1, y1);\n        if (cpx2 == null || cpy2 == null) {\n            if (percent < 1) {\n                quadraticSubdivide(x1, cpx1, x2, percent, out);\n                cpx1 = out[1];\n                x2 = out[2];\n                quadraticSubdivide(y1, cpy1, y2, percent, out);\n                cpy1 = out[1];\n                y2 = out[2];\n            }\n            ctx.quadraticCurveTo(cpx1, cpy1, x2, y2);\n        }\n        else {\n            if (percent < 1) {\n                cubicSubdivide(x1, cpx1, cpx2, x2, percent, out);\n                cpx1 = out[1];\n                cpx2 = out[2];\n                x2 = out[3];\n                cubicSubdivide(y1, cpy1, cpy2, y2, percent, out);\n                cpy1 = out[1];\n                cpy2 = out[2];\n                y2 = out[3];\n            }\n            ctx.bezierCurveTo(cpx1, cpy1, cpx2, cpy2, x2, y2);\n        }\n    };\n    BezierCurve.prototype.pointAt = function (t) {\n        return someVectorAt(this.shape, t, false);\n    };\n    BezierCurve.prototype.tangentAt = function (t) {\n        var p = someVectorAt(this.shape, t, true);\n        return vec2.normalize(p, p);\n    };\n    return BezierCurve;\n}(Path));\n;\nBezierCurve.prototype.type = 'bezier-curve';\nexport default BezierCurve;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar ArcShape = (function () {\n    function ArcShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.r = 0;\n        this.startAngle = 0;\n        this.endAngle = Math.PI * 2;\n        this.clockwise = true;\n    }\n    return ArcShape;\n}());\nvar Arc = (function (_super) {\n    __extends(Arc, _super);\n    function Arc(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Arc.prototype.getDefaultStyle = function () {\n        return {\n            stroke: '#000',\n            fill: null\n        };\n    };\n    Arc.prototype.getDefaultShape = function () {\n        return new ArcShape();\n    };\n    Arc.prototype.buildPath = function (ctx, shape) {\n        var x = shape.cx;\n        var y = shape.cy;\n        var r = Math.max(shape.r, 0);\n        var startAngle = shape.startAngle;\n        var endAngle = shape.endAngle;\n        var clockwise = shape.clockwise;\n        var unitX = Math.cos(startAngle);\n        var unitY = Math.sin(startAngle);\n        ctx.moveTo(unitX * r + x, unitY * r + y);\n        ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\n    };\n    return Arc;\n}(Path));\nArc.prototype.type = 'arc';\nexport default Arc;\n","import { __extends } from \"tslib\";\nimport Path from './Path';\nvar CompoundPath = (function (_super) {\n    __extends(CompoundPath, _super);\n    function CompoundPath() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.type = 'compound';\n        return _this;\n    }\n    CompoundPath.prototype._updatePathDirty = function () {\n        var paths = this.shape.paths;\n        var dirtyPath = this.shapeChanged();\n        for (var i = 0; i < paths.length; i++) {\n            dirtyPath = dirtyPath || paths[i].shapeChanged();\n        }\n        if (dirtyPath) {\n            this.dirtyShape();\n        }\n    };\n    CompoundPath.prototype.beforeBrush = function () {\n        this._updatePathDirty();\n        var paths = this.shape.paths || [];\n        var scale = this.getGlobalScale();\n        for (var i = 0; i < paths.length; i++) {\n            if (!paths[i].path) {\n                paths[i].createPathProxy();\n            }\n            paths[i].path.setScale(scale[0], scale[1], paths[i].segmentIgnoreThreshold);\n        }\n    };\n    CompoundPath.prototype.buildPath = function (ctx, shape) {\n        var paths = shape.paths || [];\n        for (var i = 0; i < paths.length; i++) {\n            paths[i].buildPath(ctx, paths[i].shape, true);\n        }\n    };\n    CompoundPath.prototype.afterBrush = function () {\n        var paths = this.shape.paths || [];\n        for (var i = 0; i < paths.length; i++) {\n            paths[i].pathUpdated();\n        }\n    };\n    CompoundPath.prototype.getBoundingRect = function () {\n        this._updatePathDirty.call(this);\n        return Path.prototype.getBoundingRect.call(this);\n    };\n    return CompoundPath;\n}(Path));\nexport default CompoundPath;\n","var Gradient = (function () {\n    function Gradient(colorStops) {\n        this.colorStops = colorStops || [];\n    }\n    Gradient.prototype.addColorStop = function (offset, color) {\n        this.colorStops.push({\n            offset: offset,\n            color: color\n        });\n    };\n    return Gradient;\n}());\nexport default Gradient;\n","import { __extends } from \"tslib\";\nimport Gradient from './Gradient';\nvar LinearGradient = (function (_super) {\n    __extends(LinearGradient, _super);\n    function LinearGradient(x, y, x2, y2, colorStops, globalCoord) {\n        var _this = _super.call(this, colorStops) || this;\n        _this.x = x == null ? 0 : x;\n        _this.y = y == null ? 0 : y;\n        _this.x2 = x2 == null ? 1 : x2;\n        _this.y2 = y2 == null ? 0 : y2;\n        _this.type = 'linear';\n        _this.global = globalCoord || false;\n        return _this;\n    }\n    return LinearGradient;\n}(Gradient));\nexport default LinearGradient;\n;\n","import { __extends } from \"tslib\";\nimport Gradient from './Gradient';\nvar RadialGradient = (function (_super) {\n    __extends(RadialGradient, _super);\n    function RadialGradient(x, y, r, colorStops, globalCoord) {\n        var _this = _super.call(this, colorStops) || this;\n        _this.x = x == null ? 0.5 : x;\n        _this.y = y == null ? 0.5 : y;\n        _this.r = r == null ? 0.5 : r;\n        _this.type = 'radial';\n        _this.global = globalCoord || false;\n        return _this;\n    }\n    return RadialGradient;\n}(Gradient));\nexport default RadialGradient;\n","import Point from './Point';\nvar extent = [0, 0];\nvar extent2 = [0, 0];\nvar minTv = new Point();\nvar maxTv = new Point();\nvar OrientedBoundingRect = (function () {\n    function OrientedBoundingRect(rect, transform) {\n        this._corners = [];\n        this._axes = [];\n        this._origin = [0, 0];\n        for (var i = 0; i < 4; i++) {\n            this._corners[i] = new Point();\n        }\n        for (var i = 0; i < 2; i++) {\n            this._axes[i] = new Point();\n        }\n        if (rect) {\n            this.fromBoundingRect(rect, transform);\n        }\n    }\n    OrientedBoundingRect.prototype.fromBoundingRect = function (rect, transform) {\n        var corners = this._corners;\n        var axes = this._axes;\n        var x = rect.x;\n        var y = rect.y;\n        var x2 = x + rect.width;\n        var y2 = y + rect.height;\n        corners[0].set(x, y);\n        corners[1].set(x2, y);\n        corners[2].set(x2, y2);\n        corners[3].set(x, y2);\n        if (transform) {\n            for (var i = 0; i < 4; i++) {\n                corners[i].transform(transform);\n            }\n        }\n        Point.sub(axes[0], corners[1], corners[0]);\n        Point.sub(axes[1], corners[3], corners[0]);\n        axes[0].normalize();\n        axes[1].normalize();\n        for (var i = 0; i < 2; i++) {\n            this._origin[i] = axes[i].dot(corners[0]);\n        }\n    };\n    OrientedBoundingRect.prototype.intersect = function (other, mtv) {\n        var overlapped = true;\n        var noMtv = !mtv;\n        minTv.set(Infinity, Infinity);\n        maxTv.set(0, 0);\n        if (!this._intersectCheckOneSide(this, other, minTv, maxTv, noMtv, 1)) {\n            overlapped = false;\n            if (noMtv) {\n                return overlapped;\n            }\n        }\n        if (!this._intersectCheckOneSide(other, this, minTv, maxTv, noMtv, -1)) {\n            overlapped = false;\n            if (noMtv) {\n                return overlapped;\n            }\n        }\n        if (!noMtv) {\n            Point.copy(mtv, overlapped ? minTv : maxTv);\n        }\n        return overlapped;\n    };\n    OrientedBoundingRect.prototype._intersectCheckOneSide = function (self, other, minTv, maxTv, noMtv, inverse) {\n        var overlapped = true;\n        for (var i = 0; i < 2; i++) {\n            var axis = this._axes[i];\n            this._getProjMinMaxOnAxis(i, self._corners, extent);\n            this._getProjMinMaxOnAxis(i, other._corners, extent2);\n            if (extent[1] < extent2[0] || extent[0] > extent2[1]) {\n                overlapped = false;\n                if (noMtv) {\n                    return overlapped;\n                }\n                var dist0 = Math.abs(extent2[0] - extent[1]);\n                var dist1 = Math.abs(extent[0] - extent2[1]);\n                if (Math.min(dist0, dist1) > maxTv.len()) {\n                    if (dist0 < dist1) {\n                        Point.scale(maxTv, axis, -dist0 * inverse);\n                    }\n                    else {\n                        Point.scale(maxTv, axis, dist1 * inverse);\n                    }\n                }\n            }\n            else if (minTv) {\n                var dist0 = Math.abs(extent2[0] - extent[1]);\n                var dist1 = Math.abs(extent[0] - extent2[1]);\n                if (Math.min(dist0, dist1) < minTv.len()) {\n                    if (dist0 < dist1) {\n                        Point.scale(minTv, axis, dist0 * inverse);\n                    }\n                    else {\n                        Point.scale(minTv, axis, -dist1 * inverse);\n                    }\n                }\n            }\n        }\n        return overlapped;\n    };\n    OrientedBoundingRect.prototype._getProjMinMaxOnAxis = function (dim, corners, out) {\n        var axis = this._axes[dim];\n        var origin = this._origin;\n        var proj = corners[0].dot(axis) + origin[dim];\n        var min = proj;\n        var max = proj;\n        for (var i = 1; i < corners.length; i++) {\n            var proj_1 = corners[i].dot(axis) + origin[dim];\n            min = Math.min(proj_1, min);\n            max = Math.max(proj_1, max);\n        }\n        out[0] = min;\n        out[1] = max;\n    };\n    return OrientedBoundingRect;\n}());\nexport default OrientedBoundingRect;\n","import { __extends } from \"tslib\";\nimport Displayble from './Displayable';\nimport BoundingRect from '../core/BoundingRect';\nvar m = [];\nvar IncrementalDisplayable = (function (_super) {\n    __extends(IncrementalDisplayable, _super);\n    function IncrementalDisplayable() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.notClear = true;\n        _this.incremental = true;\n        _this._displayables = [];\n        _this._temporaryDisplayables = [];\n        _this._cursor = 0;\n        return _this;\n    }\n    IncrementalDisplayable.prototype.traverse = function (cb, context) {\n        cb.call(context, this);\n    };\n    IncrementalDisplayable.prototype.useStyle = function () {\n        this.style = {};\n    };\n    IncrementalDisplayable.prototype.getCursor = function () {\n        return this._cursor;\n    };\n    IncrementalDisplayable.prototype.innerAfterBrush = function () {\n        this._cursor = this._displayables.length;\n    };\n    IncrementalDisplayable.prototype.clearDisplaybles = function () {\n        this._displayables = [];\n        this._temporaryDisplayables = [];\n        this._cursor = 0;\n        this.markRedraw();\n        this.notClear = false;\n    };\n    IncrementalDisplayable.prototype.clearTemporalDisplayables = function () {\n        this._temporaryDisplayables = [];\n    };\n    IncrementalDisplayable.prototype.addDisplayable = function (displayable, notPersistent) {\n        if (notPersistent) {\n            this._temporaryDisplayables.push(displayable);\n        }\n        else {\n            this._displayables.push(displayable);\n        }\n        this.markRedraw();\n    };\n    IncrementalDisplayable.prototype.addDisplayables = function (displayables, notPersistent) {\n        notPersistent = notPersistent || false;\n        for (var i = 0; i < displayables.length; i++) {\n            this.addDisplayable(displayables[i], notPersistent);\n        }\n    };\n    IncrementalDisplayable.prototype.getDisplayables = function () {\n        return this._displayables;\n    };\n    IncrementalDisplayable.prototype.getTemporalDisplayables = function () {\n        return this._temporaryDisplayables;\n    };\n    IncrementalDisplayable.prototype.eachPendingDisplayable = function (cb) {\n        for (var i = this._cursor; i < this._displayables.length; i++) {\n            cb && cb(this._displayables[i]);\n        }\n        for (var i = 0; i < this._temporaryDisplayables.length; i++) {\n            cb && cb(this._temporaryDisplayables[i]);\n        }\n    };\n    IncrementalDisplayable.prototype.update = function () {\n        this.updateTransform();\n        for (var i = this._cursor; i < this._displayables.length; i++) {\n            var displayable = this._displayables[i];\n            displayable.parent = this;\n            displayable.update();\n            displayable.parent = null;\n        }\n        for (var i = 0; i < this._temporaryDisplayables.length; i++) {\n            var displayable = this._temporaryDisplayables[i];\n            displayable.parent = this;\n            displayable.update();\n            displayable.parent = null;\n        }\n    };\n    IncrementalDisplayable.prototype.getBoundingRect = function () {\n        if (!this._rect) {\n            var rect = new BoundingRect(Infinity, Infinity, -Infinity, -Infinity);\n            for (var i = 0; i < this._displayables.length; i++) {\n                var displayable = this._displayables[i];\n                var childRect = displayable.getBoundingRect().clone();\n                if (displayable.needLocalTransform()) {\n                    childRect.applyTransform(displayable.getLocalTransform(m));\n                }\n                rect.union(childRect);\n            }\n            this._rect = rect;\n        }\n        return this._rect;\n    };\n    IncrementalDisplayable.prototype.contain = function (x, y) {\n        var localPos = this.transformCoordToLocal(x, y);\n        var rect = this.getBoundingRect();\n        if (rect.contain(localPos[0], localPos[1])) {\n            for (var i = 0; i < this._displayables.length; i++) {\n                var displayable = this._displayables[i];\n                if (displayable.contain(x, y)) {\n                    return true;\n                }\n            }\n        }\n        return false;\n    };\n    return IncrementalDisplayable;\n}(Displayble));\nexport default IncrementalDisplayable;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as pathTool from 'zrender/lib/tool/path';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport * as vector from 'zrender/lib/core/vector';\nimport Path from 'zrender/lib/graphic/Path';\nimport Transformable from 'zrender/lib/core/Transformable';\nimport ZRImage from 'zrender/lib/graphic/Image';\nimport Group from 'zrender/lib/graphic/Group';\nimport ZRText from 'zrender/lib/graphic/Text';\nimport Circle from 'zrender/lib/graphic/shape/Circle';\nimport Ellipse from 'zrender/lib/graphic/shape/Ellipse';\nimport Sector from 'zrender/lib/graphic/shape/Sector';\nimport Ring from 'zrender/lib/graphic/shape/Ring';\nimport Polygon from 'zrender/lib/graphic/shape/Polygon';\nimport Polyline from 'zrender/lib/graphic/shape/Polyline';\nimport Rect from 'zrender/lib/graphic/shape/Rect';\nimport Line from 'zrender/lib/graphic/shape/Line';\nimport BezierCurve from 'zrender/lib/graphic/shape/BezierCurve';\nimport Arc from 'zrender/lib/graphic/shape/Arc';\nimport CompoundPath from 'zrender/lib/graphic/CompoundPath';\nimport LinearGradient from 'zrender/lib/graphic/LinearGradient';\nimport RadialGradient from 'zrender/lib/graphic/RadialGradient';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport OrientedBoundingRect from 'zrender/lib/core/OrientedBoundingRect';\nimport Point from 'zrender/lib/core/Point';\nimport IncrementalDisplayable from 'zrender/lib/graphic/IncrementalDisplayable';\nimport * as subPixelOptimizeUtil from 'zrender/lib/graphic/helper/subPixelOptimize';\nimport { extend, isArrayLike, map, defaults, isObject, retrieve2 } from 'zrender/lib/core/util';\nimport { getECData } from './innerStore';\nvar mathMax = Math.max;\nvar mathMin = Math.min;\nvar _customShapeMap = {};\nexport function extendShape(opts) {\n  return Path.extend(opts);\n}\nvar extendPathFromString = pathTool.extendFromString;\nexport function extendPath(pathData, opts) {\n  return extendPathFromString(pathData, opts);\n}\nexport function registerShape(name, ShapeClass) {\n  _customShapeMap[name] = ShapeClass;\n}\nexport function getShapeClass(name) {\n  if (_customShapeMap.hasOwnProperty(name)) {\n    return _customShapeMap[name];\n  }\n}\nexport function makePath(pathData, opts, rect, layout) {\n  var path = pathTool.createFromString(pathData, opts);\n\n  if (rect) {\n    if (layout === 'center') {\n      rect = centerGraphic(rect, path.getBoundingRect());\n    }\n\n    resizePath(path, rect);\n  }\n\n  return path;\n}\nexport function makeImage(imageUrl, rect, layout) {\n  var zrImg = new ZRImage({\n    style: {\n      image: imageUrl,\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height\n    },\n    onload: function (img) {\n      if (layout === 'center') {\n        var boundingRect = {\n          width: img.width,\n          height: img.height\n        };\n        zrImg.setStyle(centerGraphic(rect, boundingRect));\n      }\n    }\n  });\n  return zrImg;\n}\n\nfunction centerGraphic(rect, boundingRect) {\n  var aspect = boundingRect.width / boundingRect.height;\n  var width = rect.height * aspect;\n  var height;\n\n  if (width <= rect.width) {\n    height = rect.height;\n  } else {\n    width = rect.width;\n    height = width / aspect;\n  }\n\n  var cx = rect.x + rect.width / 2;\n  var cy = rect.y + rect.height / 2;\n  return {\n    x: cx - width / 2,\n    y: cy - height / 2,\n    width: width,\n    height: height\n  };\n}\n\nexport var mergePath = pathTool.mergePath;\nexport function resizePath(path, rect) {\n  if (!path.applyTransform) {\n    return;\n  }\n\n  var pathRect = path.getBoundingRect();\n  var m = pathRect.calculateTransform(rect);\n  path.applyTransform(m);\n}\nexport function subPixelOptimizeLine(param) {\n  subPixelOptimizeUtil.subPixelOptimizeLine(param.shape, param.shape, param.style);\n  return param;\n}\nexport function subPixelOptimizeRect(param) {\n  subPixelOptimizeUtil.subPixelOptimizeRect(param.shape, param.shape, param.style);\n  return param;\n}\nexport var subPixelOptimize = subPixelOptimizeUtil.subPixelOptimize;\n\nfunction animateOrSetProps(animationType, el, props, animatableModel, dataIndex, cb, during) {\n  var isFrom = false;\n  var removeOpt;\n\n  if (typeof dataIndex === 'function') {\n    during = cb;\n    cb = dataIndex;\n    dataIndex = null;\n  } else if (isObject(dataIndex)) {\n    cb = dataIndex.cb;\n    during = dataIndex.during;\n    isFrom = dataIndex.isFrom;\n    removeOpt = dataIndex.removeOpt;\n    dataIndex = dataIndex.dataIndex;\n  }\n\n  var isUpdate = animationType === 'update';\n  var isRemove = animationType === 'remove';\n  var animationPayload;\n\n  if (animatableModel && animatableModel.ecModel) {\n    var updatePayload = animatableModel.ecModel.getUpdatePayload();\n    animationPayload = updatePayload && updatePayload.animation;\n  }\n\n  var animationEnabled = animatableModel && animatableModel.isAnimationEnabled();\n\n  if (!isRemove) {\n    el.stopAnimation('remove');\n  }\n\n  if (animationEnabled) {\n    var duration = void 0;\n    var animationEasing = void 0;\n    var animationDelay = void 0;\n\n    if (animationPayload) {\n      duration = animationPayload.duration || 0;\n      animationEasing = animationPayload.easing || 'cubicOut';\n      animationDelay = animationPayload.delay || 0;\n    } else if (isRemove) {\n      removeOpt = removeOpt || {};\n      duration = retrieve2(removeOpt.duration, 200);\n      animationEasing = retrieve2(removeOpt.easing, 'cubicOut');\n      animationDelay = 0;\n    } else {\n      duration = animatableModel.getShallow(isUpdate ? 'animationDurationUpdate' : 'animationDuration');\n      animationEasing = animatableModel.getShallow(isUpdate ? 'animationEasingUpdate' : 'animationEasing');\n      animationDelay = animatableModel.getShallow(isUpdate ? 'animationDelayUpdate' : 'animationDelay');\n    }\n\n    if (typeof animationDelay === 'function') {\n      animationDelay = animationDelay(dataIndex, animatableModel.getAnimationDelayParams ? animatableModel.getAnimationDelayParams(el, dataIndex) : null);\n    }\n\n    if (typeof duration === 'function') {\n      duration = duration(dataIndex);\n    }\n\n    duration > 0 ? isFrom ? el.animateFrom(props, {\n      duration: duration,\n      delay: animationDelay || 0,\n      easing: animationEasing,\n      done: cb,\n      force: !!cb || !!during,\n      scope: animationType,\n      during: during\n    }) : el.animateTo(props, {\n      duration: duration,\n      delay: animationDelay || 0,\n      easing: animationEasing,\n      done: cb,\n      force: !!cb || !!during,\n      setToFinal: true,\n      scope: animationType,\n      during: during\n    }) : (el.stopAnimation(), !isFrom && el.attr(props), cb && cb());\n  } else {\n    el.stopAnimation();\n    !isFrom && el.attr(props);\n    during && during(1);\n    cb && cb();\n  }\n}\n\nfunction updateProps(el, props, animatableModel, dataIndex, cb, during) {\n  animateOrSetProps('update', el, props, animatableModel, dataIndex, cb, during);\n}\n\nexport { updateProps };\nexport function initProps(el, props, animatableModel, dataIndex, cb, during) {\n  animateOrSetProps('init', el, props, animatableModel, dataIndex, cb, during);\n}\nexport function removeElement(el, props, animatableModel, dataIndex, cb, during) {\n  if (isElementRemoved(el)) {\n    return;\n  }\n\n  animateOrSetProps('remove', el, props, animatableModel, dataIndex, cb, during);\n}\n\nfunction fadeOutDisplayable(el, animatableModel, dataIndex, done) {\n  el.removeTextContent();\n  el.removeTextGuideLine();\n  removeElement(el, {\n    style: {\n      opacity: 0\n    }\n  }, animatableModel, dataIndex, done);\n}\n\nexport function removeElementWithFadeOut(el, animatableModel, dataIndex) {\n  function doRemove() {\n    el.parent && el.parent.remove(el);\n  }\n\n  if (!el.isGroup) {\n    fadeOutDisplayable(el, animatableModel, dataIndex, doRemove);\n  } else {\n    el.traverse(function (disp) {\n      if (!disp.isGroup) {\n        fadeOutDisplayable(disp, animatableModel, dataIndex, doRemove);\n      }\n    });\n  }\n}\nexport function isElementRemoved(el) {\n  if (!el.__zr) {\n    return true;\n  }\n\n  for (var i = 0; i < el.animators.length; i++) {\n    var animator = el.animators[i];\n\n    if (animator.scope === 'remove') {\n      return true;\n    }\n  }\n\n  return false;\n}\nexport function getTransform(target, ancestor) {\n  var mat = matrix.identity([]);\n\n  while (target && target !== ancestor) {\n    matrix.mul(mat, target.getLocalTransform(), mat);\n    target = target.parent;\n  }\n\n  return mat;\n}\nexport function applyTransform(target, transform, invert) {\n  if (transform && !isArrayLike(transform)) {\n    transform = Transformable.getLocalTransform(transform);\n  }\n\n  if (invert) {\n    transform = matrix.invert([], transform);\n  }\n\n  return vector.applyTransform([], target, transform);\n}\nexport function transformDirection(direction, transform, invert) {\n  var hBase = transform[4] === 0 || transform[5] === 0 || transform[0] === 0 ? 1 : Math.abs(2 * transform[4] / transform[0]);\n  var vBase = transform[4] === 0 || transform[5] === 0 || transform[2] === 0 ? 1 : Math.abs(2 * transform[4] / transform[2]);\n  var vertex = [direction === 'left' ? -hBase : direction === 'right' ? hBase : 0, direction === 'top' ? -vBase : direction === 'bottom' ? vBase : 0];\n  vertex = applyTransform(vertex, transform, invert);\n  return Math.abs(vertex[0]) > Math.abs(vertex[1]) ? vertex[0] > 0 ? 'right' : 'left' : vertex[1] > 0 ? 'bottom' : 'top';\n}\n\nfunction isNotGroup(el) {\n  return !el.isGroup;\n}\n\nfunction isPath(el) {\n  return el.shape != null;\n}\n\nexport function groupTransition(g1, g2, animatableModel) {\n  if (!g1 || !g2) {\n    return;\n  }\n\n  function getElMap(g) {\n    var elMap = {};\n    g.traverse(function (el) {\n      if (isNotGroup(el) && el.anid) {\n        elMap[el.anid] = el;\n      }\n    });\n    return elMap;\n  }\n\n  function getAnimatableProps(el) {\n    var obj = {\n      x: el.x,\n      y: el.y,\n      rotation: el.rotation\n    };\n\n    if (isPath(el)) {\n      obj.shape = extend({}, el.shape);\n    }\n\n    return obj;\n  }\n\n  var elMap1 = getElMap(g1);\n  g2.traverse(function (el) {\n    if (isNotGroup(el) && el.anid) {\n      var oldEl = elMap1[el.anid];\n\n      if (oldEl) {\n        var newProp = getAnimatableProps(el);\n        el.attr(getAnimatableProps(oldEl));\n        updateProps(el, newProp, animatableModel, getECData(el).dataIndex);\n      }\n    }\n  });\n}\nexport function clipPointsByRect(points, rect) {\n  return map(points, function (point) {\n    var x = point[0];\n    x = mathMax(x, rect.x);\n    x = mathMin(x, rect.x + rect.width);\n    var y = point[1];\n    y = mathMax(y, rect.y);\n    y = mathMin(y, rect.y + rect.height);\n    return [x, y];\n  });\n}\nexport function clipRectByRect(targetRect, rect) {\n  var x = mathMax(targetRect.x, rect.x);\n  var x2 = mathMin(targetRect.x + targetRect.width, rect.x + rect.width);\n  var y = mathMax(targetRect.y, rect.y);\n  var y2 = mathMin(targetRect.y + targetRect.height, rect.y + rect.height);\n\n  if (x2 >= x && y2 >= y) {\n    return {\n      x: x,\n      y: y,\n      width: x2 - x,\n      height: y2 - y\n    };\n  }\n}\nexport function createIcon(iconStr, opt, rect) {\n  var innerOpts = extend({\n    rectHover: true\n  }, opt);\n  var style = innerOpts.style = {\n    strokeNoScale: true\n  };\n  rect = rect || {\n    x: -1,\n    y: -1,\n    width: 2,\n    height: 2\n  };\n\n  if (iconStr) {\n    return iconStr.indexOf('image://') === 0 ? (style.image = iconStr.slice(8), defaults(style, rect), new ZRImage(innerOpts)) : makePath(iconStr.replace('path://', ''), innerOpts, rect, 'center');\n  }\n}\nexport function linePolygonIntersect(a1x, a1y, a2x, a2y, points) {\n  for (var i = 0, p2 = points[points.length - 1]; i < points.length; i++) {\n    var p = points[i];\n\n    if (lineLineIntersect(a1x, a1y, a2x, a2y, p[0], p[1], p2[0], p2[1])) {\n      return true;\n    }\n\n    p2 = p;\n  }\n}\nexport function lineLineIntersect(a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y) {\n  var mx = a2x - a1x;\n  var my = a2y - a1y;\n  var nx = b2x - b1x;\n  var ny = b2y - b1y;\n  var nmCrossProduct = crossProduct2d(nx, ny, mx, my);\n\n  if (nearZero(nmCrossProduct)) {\n    return false;\n  }\n\n  var b1a1x = a1x - b1x;\n  var b1a1y = a1y - b1y;\n  var q = crossProduct2d(b1a1x, b1a1y, mx, my) / nmCrossProduct;\n\n  if (q < 0 || q > 1) {\n    return false;\n  }\n\n  var p = crossProduct2d(b1a1x, b1a1y, nx, ny) / nmCrossProduct;\n\n  if (p < 0 || p > 1) {\n    return false;\n  }\n\n  return true;\n}\n\nfunction crossProduct2d(x1, y1, x2, y2) {\n  return x1 * y2 - x2 * y1;\n}\n\nfunction nearZero(val) {\n  return val <= 1e-6 && val >= -1e-6;\n}\n\nregisterShape('circle', Circle);\nregisterShape('ellipse', Ellipse);\nregisterShape('sector', Sector);\nregisterShape('ring', Ring);\nregisterShape('polygon', Polygon);\nregisterShape('polyline', Polyline);\nregisterShape('rect', Rect);\nregisterShape('line', Line);\nregisterShape('bezierCurve', BezierCurve);\nregisterShape('arc', Arc);\nexport { Group, ZRImage as Image, ZRText as Text, Circle, Ellipse, Sector, Ring, Polygon, Polyline, Rect, Line, BezierCurve, Arc, IncrementalDisplayable, CompoundPath, LinearGradient, RadialGradient, BoundingRect, OrientedBoundingRect, Point, Path };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ZRText from 'zrender/lib/graphic/Text';\nimport { isFunction, retrieve2, extend, keys, trim } from 'zrender/lib/core/util';\nimport { SPECIAL_STATES, DISPLAY_STATES } from '../util/states';\nimport { deprecateReplaceLog } from '../util/log';\nimport { makeInner, interpolateRawValues } from '../util/model';\nimport { initProps, updateProps } from '../util/graphic';\nvar EMPTY_OBJ = {};\nexport function setLabelText(label, labelTexts) {\n  for (var i = 0; i < SPECIAL_STATES.length; i++) {\n    var stateName = SPECIAL_STATES[i];\n    var text = labelTexts[stateName];\n    var state = label.ensureState(stateName);\n    state.style = state.style || {};\n    state.style.text = text;\n  }\n\n  var oldStates = label.currentStates.slice();\n  label.clearStates(true);\n  label.setStyle({\n    text: labelTexts.normal\n  });\n  label.useStates(oldStates, true);\n}\n\nfunction getLabelText(opt, stateModels, interpolatedValue) {\n  var labelFetcher = opt.labelFetcher;\n  var labelDataIndex = opt.labelDataIndex;\n  var labelDimIndex = opt.labelDimIndex;\n  var normalModel = stateModels.normal;\n  var baseText;\n\n  if (labelFetcher) {\n    baseText = labelFetcher.getFormattedLabel(labelDataIndex, 'normal', null, labelDimIndex, normalModel && normalModel.get('formatter'), interpolatedValue != null ? {\n      interpolatedValue: interpolatedValue\n    } : null);\n  }\n\n  if (baseText == null) {\n    baseText = isFunction(opt.defaultText) ? opt.defaultText(labelDataIndex, opt, interpolatedValue) : opt.defaultText;\n  }\n\n  var statesText = {\n    normal: baseText\n  };\n\n  for (var i = 0; i < SPECIAL_STATES.length; i++) {\n    var stateName = SPECIAL_STATES[i];\n    var stateModel = stateModels[stateName];\n    statesText[stateName] = retrieve2(labelFetcher ? labelFetcher.getFormattedLabel(labelDataIndex, stateName, null, labelDimIndex, stateModel && stateModel.get('formatter')) : null, baseText);\n  }\n\n  return statesText;\n}\n\nfunction setLabelStyle(targetEl, labelStatesModels, opt, stateSpecified) {\n  opt = opt || EMPTY_OBJ;\n  var isSetOnText = targetEl instanceof ZRText;\n  var needsCreateText = false;\n\n  for (var i = 0; i < DISPLAY_STATES.length; i++) {\n    var stateModel = labelStatesModels[DISPLAY_STATES[i]];\n\n    if (stateModel && stateModel.getShallow('show')) {\n      needsCreateText = true;\n      break;\n    }\n  }\n\n  var textContent = isSetOnText ? targetEl : targetEl.getTextContent();\n\n  if (needsCreateText) {\n    if (!isSetOnText) {\n      if (!textContent) {\n        textContent = new ZRText();\n        targetEl.setTextContent(textContent);\n      }\n\n      if (targetEl.stateProxy) {\n        textContent.stateProxy = targetEl.stateProxy;\n      }\n    }\n\n    var labelStatesTexts = getLabelText(opt, labelStatesModels);\n    var normalModel = labelStatesModels.normal;\n    var showNormal = !!normalModel.getShallow('show');\n    var normalStyle = createTextStyle(normalModel, stateSpecified && stateSpecified.normal, opt, false, !isSetOnText);\n    normalStyle.text = labelStatesTexts.normal;\n\n    if (!isSetOnText) {\n      targetEl.setTextConfig(createTextConfig(normalModel, opt, false));\n    }\n\n    for (var i = 0; i < SPECIAL_STATES.length; i++) {\n      var stateName = SPECIAL_STATES[i];\n      var stateModel = labelStatesModels[stateName];\n\n      if (stateModel) {\n        var stateObj = textContent.ensureState(stateName);\n        var stateShow = !!retrieve2(stateModel.getShallow('show'), showNormal);\n\n        if (stateShow !== showNormal) {\n          stateObj.ignore = !stateShow;\n        }\n\n        stateObj.style = createTextStyle(stateModel, stateSpecified && stateSpecified[stateName], opt, true, !isSetOnText);\n        stateObj.style.text = labelStatesTexts[stateName];\n\n        if (!isSetOnText) {\n          var targetElEmphasisState = targetEl.ensureState(stateName);\n          targetElEmphasisState.textConfig = createTextConfig(stateModel, opt, true);\n        }\n      }\n    }\n\n    textContent.silent = !!normalModel.getShallow('silent');\n\n    if (textContent.style.x != null) {\n      normalStyle.x = textContent.style.x;\n    }\n\n    if (textContent.style.y != null) {\n      normalStyle.y = textContent.style.y;\n    }\n\n    textContent.ignore = !showNormal;\n    textContent.useStyle(normalStyle);\n    textContent.dirty();\n\n    if (opt.enableTextSetter) {\n      labelInner(textContent).setLabelText = function (interpolatedValue) {\n        var labelStatesTexts = getLabelText(opt, labelStatesModels, interpolatedValue);\n        setLabelText(textContent, labelStatesTexts);\n      };\n    }\n  } else if (textContent) {\n    textContent.ignore = true;\n  }\n\n  targetEl.dirty();\n}\n\nexport { setLabelStyle };\nexport function getLabelStatesModels(itemModel, labelName) {\n  labelName = labelName || 'label';\n  var statesModels = {\n    normal: itemModel.getModel(labelName)\n  };\n\n  for (var i = 0; i < SPECIAL_STATES.length; i++) {\n    var stateName = SPECIAL_STATES[i];\n    statesModels[stateName] = itemModel.getModel([stateName, labelName]);\n  }\n\n  return statesModels;\n}\nexport function createTextStyle(textStyleModel, specifiedTextStyle, opt, isNotNormal, isAttached) {\n  var textStyle = {};\n  setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached);\n  specifiedTextStyle && extend(textStyle, specifiedTextStyle);\n  return textStyle;\n}\nexport function createTextConfig(textStyleModel, opt, isNotNormal) {\n  opt = opt || {};\n  var textConfig = {};\n  var labelPosition;\n  var labelRotate = textStyleModel.getShallow('rotate');\n  var labelDistance = retrieve2(textStyleModel.getShallow('distance'), isNotNormal ? null : 5);\n  var labelOffset = textStyleModel.getShallow('offset');\n  labelPosition = textStyleModel.getShallow('position') || (isNotNormal ? null : 'inside');\n  labelPosition === 'outside' && (labelPosition = opt.defaultOutsidePosition || 'top');\n\n  if (labelPosition != null) {\n    textConfig.position = labelPosition;\n  }\n\n  if (labelOffset != null) {\n    textConfig.offset = labelOffset;\n  }\n\n  if (labelRotate != null) {\n    labelRotate *= Math.PI / 180;\n    textConfig.rotation = labelRotate;\n  }\n\n  if (labelDistance != null) {\n    textConfig.distance = labelDistance;\n  }\n\n  textConfig.outsideFill = textStyleModel.get('color') === 'inherit' ? opt.inheritColor || null : 'auto';\n  return textConfig;\n}\n\nfunction setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached) {\n  opt = opt || EMPTY_OBJ;\n  var ecModel = textStyleModel.ecModel;\n  var globalTextStyle = ecModel && ecModel.option.textStyle;\n  var richItemNames = getRichItemNames(textStyleModel);\n  var richResult;\n\n  if (richItemNames) {\n    richResult = {};\n\n    for (var name_1 in richItemNames) {\n      if (richItemNames.hasOwnProperty(name_1)) {\n        var richTextStyle = textStyleModel.getModel(['rich', name_1]);\n        setTokenTextStyle(richResult[name_1] = {}, richTextStyle, globalTextStyle, opt, isNotNormal, isAttached, false, true);\n      }\n    }\n  }\n\n  if (richResult) {\n    textStyle.rich = richResult;\n  }\n\n  var overflow = textStyleModel.get('overflow');\n\n  if (overflow) {\n    textStyle.overflow = overflow;\n  }\n\n  var margin = textStyleModel.get('minMargin');\n\n  if (margin != null) {\n    textStyle.margin = margin;\n  }\n\n  setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, true, false);\n}\n\nfunction getRichItemNames(textStyleModel) {\n  var richItemNameMap;\n\n  while (textStyleModel && textStyleModel !== textStyleModel.ecModel) {\n    var rich = (textStyleModel.option || EMPTY_OBJ).rich;\n\n    if (rich) {\n      richItemNameMap = richItemNameMap || {};\n      var richKeys = keys(rich);\n\n      for (var i = 0; i < richKeys.length; i++) {\n        var richKey = richKeys[i];\n        richItemNameMap[richKey] = 1;\n      }\n    }\n\n    textStyleModel = textStyleModel.parentModel;\n  }\n\n  return richItemNameMap;\n}\n\nvar TEXT_PROPS_WITH_GLOBAL = ['fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY'];\nvar TEXT_PROPS_SELF = ['align', 'lineHeight', 'width', 'height', 'tag', 'verticalAlign'];\nvar TEXT_PROPS_BOX = ['padding', 'borderWidth', 'borderRadius', 'borderDashOffset', 'backgroundColor', 'borderColor', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'];\n\nfunction setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, isBlock, inRich) {\n  globalTextStyle = !isNotNormal && globalTextStyle || EMPTY_OBJ;\n  var inheritColor = opt && opt.inheritColor;\n  var fillColor = textStyleModel.getShallow('color');\n  var strokeColor = textStyleModel.getShallow('textBorderColor');\n  var opacity = retrieve2(textStyleModel.getShallow('opacity'), globalTextStyle.opacity);\n\n  if (fillColor === 'inherit' || fillColor === 'auto') {\n    if (process.env.NODE_ENV !== 'production') {\n      if (fillColor === 'auto') {\n        deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\n      }\n    }\n\n    if (inheritColor) {\n      fillColor = inheritColor;\n    } else {\n      fillColor = null;\n    }\n  }\n\n  if (strokeColor === 'inherit' || strokeColor === 'auto') {\n    if (process.env.NODE_ENV !== 'production') {\n      if (strokeColor === 'auto') {\n        deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\n      }\n    }\n\n    if (inheritColor) {\n      strokeColor = inheritColor;\n    } else {\n      strokeColor = null;\n    }\n  }\n\n  if (!isAttached) {\n    fillColor = fillColor || globalTextStyle.color;\n    strokeColor = strokeColor || globalTextStyle.textBorderColor;\n  }\n\n  if (fillColor != null) {\n    textStyle.fill = fillColor;\n  }\n\n  if (strokeColor != null) {\n    textStyle.stroke = strokeColor;\n  }\n\n  var textBorderWidth = retrieve2(textStyleModel.getShallow('textBorderWidth'), globalTextStyle.textBorderWidth);\n\n  if (textBorderWidth != null) {\n    textStyle.lineWidth = textBorderWidth;\n  }\n\n  var textBorderType = retrieve2(textStyleModel.getShallow('textBorderType'), globalTextStyle.textBorderType);\n\n  if (textBorderType != null) {\n    textStyle.lineDash = textBorderType;\n  }\n\n  var textBorderDashOffset = retrieve2(textStyleModel.getShallow('textBorderDashOffset'), globalTextStyle.textBorderDashOffset);\n\n  if (textBorderDashOffset != null) {\n    textStyle.lineDashOffset = textBorderDashOffset;\n  }\n\n  if (!isNotNormal && opacity == null && !inRich) {\n    opacity = opt && opt.defaultOpacity;\n  }\n\n  if (opacity != null) {\n    textStyle.opacity = opacity;\n  }\n\n  if (!isNotNormal && !isAttached) {\n    if (textStyle.fill == null && opt.inheritColor) {\n      textStyle.fill = opt.inheritColor;\n    }\n  }\n\n  for (var i = 0; i < TEXT_PROPS_WITH_GLOBAL.length; i++) {\n    var key = TEXT_PROPS_WITH_GLOBAL[i];\n    var val = retrieve2(textStyleModel.getShallow(key), globalTextStyle[key]);\n\n    if (val != null) {\n      textStyle[key] = val;\n    }\n  }\n\n  for (var i = 0; i < TEXT_PROPS_SELF.length; i++) {\n    var key = TEXT_PROPS_SELF[i];\n    var val = textStyleModel.getShallow(key);\n\n    if (val != null) {\n      textStyle[key] = val;\n    }\n  }\n\n  if (textStyle.verticalAlign == null) {\n    var baseline = textStyleModel.getShallow('baseline');\n\n    if (baseline != null) {\n      textStyle.verticalAlign = baseline;\n    }\n  }\n\n  if (!isBlock || !opt.disableBox) {\n    for (var i = 0; i < TEXT_PROPS_BOX.length; i++) {\n      var key = TEXT_PROPS_BOX[i];\n      var val = textStyleModel.getShallow(key);\n\n      if (val != null) {\n        textStyle[key] = val;\n      }\n    }\n\n    var borderType = textStyleModel.getShallow('borderType');\n\n    if (borderType != null) {\n      textStyle.borderDash = borderType;\n    }\n\n    if ((textStyle.backgroundColor === 'auto' || textStyle.backgroundColor === 'inherit') && inheritColor) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (textStyle.backgroundColor === 'auto') {\n          deprecateReplaceLog('backgroundColor: \\'auto\\'', 'backgroundColor: \\'inherit\\'');\n        }\n      }\n\n      textStyle.backgroundColor = inheritColor;\n    }\n\n    if ((textStyle.borderColor === 'auto' || textStyle.borderColor === 'inherit') && inheritColor) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (textStyle.borderColor === 'auto') {\n          deprecateReplaceLog('borderColor: \\'auto\\'', 'borderColor: \\'inherit\\'');\n        }\n      }\n\n      textStyle.borderColor = inheritColor;\n    }\n  }\n}\n\nexport function getFont(opt, ecModel) {\n  var gTextStyleModel = ecModel && ecModel.getModel('textStyle');\n  return trim([opt.fontStyle || gTextStyleModel && gTextStyleModel.getShallow('fontStyle') || '', opt.fontWeight || gTextStyleModel && gTextStyleModel.getShallow('fontWeight') || '', (opt.fontSize || gTextStyleModel && gTextStyleModel.getShallow('fontSize') || 12) + 'px', opt.fontFamily || gTextStyleModel && gTextStyleModel.getShallow('fontFamily') || 'sans-serif'].join(' '));\n}\nexport var labelInner = makeInner();\nexport function setLabelValueAnimation(label, labelStatesModels, value, getDefaultText) {\n  if (!label) {\n    return;\n  }\n\n  var obj = labelInner(label);\n  obj.prevValue = obj.value;\n  obj.value = value;\n  var normalLabelModel = labelStatesModels.normal;\n  obj.valueAnimation = normalLabelModel.get('valueAnimation');\n\n  if (obj.valueAnimation) {\n    obj.precision = normalLabelModel.get('precision');\n    obj.defaultInterpolatedText = getDefaultText;\n    obj.statesModels = labelStatesModels;\n  }\n}\nexport function animateLabelValue(textEl, dataIndex, data, animatableModel, labelFetcher) {\n  var labelInnerStore = labelInner(textEl);\n\n  if (!labelInnerStore.valueAnimation) {\n    return;\n  }\n\n  var defaultInterpolatedText = labelInnerStore.defaultInterpolatedText;\n  var currValue = retrieve2(labelInnerStore.interpolatedValue, labelInnerStore.prevValue);\n  var targetValue = labelInnerStore.value;\n\n  function during(percent) {\n    var interpolated = interpolateRawValues(data, labelInnerStore.precision, currValue, targetValue, percent);\n    labelInnerStore.interpolatedValue = percent === 1 ? null : interpolated;\n    var labelText = getLabelText({\n      labelDataIndex: dataIndex,\n      labelFetcher: labelFetcher,\n      defaultText: defaultInterpolatedText ? defaultInterpolatedText(interpolated) : interpolated + ''\n    }, labelInnerStore.statesModels, interpolated);\n    setLabelText(textEl, labelText);\n  }\n\n  (currValue == null ? initProps : updateProps)(textEl, {}, animatableModel, dataIndex, null, during);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { getFont } from '../../label/labelStyle';\nimport ZRText from 'zrender/lib/graphic/Text';\nvar PATH_COLOR = ['textStyle', 'color'];\nvar tmpRichText = new ZRText();\n\nvar TextStyleMixin = function () {\n  function TextStyleMixin() {}\n\n  TextStyleMixin.prototype.getTextColor = function (isEmphasis) {\n    var ecModel = this.ecModel;\n    return this.getShallow('color') || (!isEmphasis && ecModel ? ecModel.get(PATH_COLOR) : null);\n  };\n\n  TextStyleMixin.prototype.getFont = function () {\n    return getFont({\n      fontStyle: this.getShallow('fontStyle'),\n      fontWeight: this.getShallow('fontWeight'),\n      fontSize: this.getShallow('fontSize'),\n      fontFamily: this.getShallow('fontFamily')\n    }, this.ecModel);\n  };\n\n  TextStyleMixin.prototype.getTextRect = function (text) {\n    tmpRichText.useStyle({\n      text: text,\n      fontStyle: this.getShallow('fontStyle'),\n      fontWeight: this.getShallow('fontWeight'),\n      fontSize: this.getShallow('fontSize'),\n      fontFamily: this.getShallow('fontFamily'),\n      verticalAlign: this.getShallow('verticalAlign') || this.getShallow('baseline'),\n      padding: this.getShallow('padding'),\n      lineHeight: this.getShallow('lineHeight'),\n      rich: this.getShallow('rich')\n    });\n    tmpRichText.update();\n    return tmpRichText.getBoundingRect();\n  };\n\n  return TextStyleMixin;\n}();\n\n;\nexport default TextStyleMixin;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport makeStyleMapper from './makeStyleMapper';\nexport var LINE_STYLE_KEY_MAP = [['lineWidth', 'width'], ['stroke', 'color'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor'], ['lineDash', 'type'], ['lineDashOffset', 'dashOffset'], ['lineCap', 'cap'], ['lineJoin', 'join'], ['miterLimit']];\nvar getLineStyle = makeStyleMapper(LINE_STYLE_KEY_MAP);\n\nvar LineStyleMixin = function () {\n  function LineStyleMixin() {}\n\n  LineStyleMixin.prototype.getLineStyle = function (excludes) {\n    return getLineStyle(this, excludes);\n  };\n\n  return LineStyleMixin;\n}();\n\n;\nexport { LineStyleMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport makeStyleMapper from './makeStyleMapper';\nexport var ITEM_STYLE_KEY_MAP = [['fill', 'color'], ['stroke', 'borderColor'], ['lineWidth', 'borderWidth'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor'], ['lineDash', 'borderType'], ['lineDashOffset', 'borderDashOffset'], ['lineCap', 'borderCap'], ['lineJoin', 'borderJoin'], ['miterLimit', 'borderMiterLimit']];\nvar getItemStyle = makeStyleMapper(ITEM_STYLE_KEY_MAP);\n\nvar ItemStyleMixin = function () {\n  function ItemStyleMixin() {}\n\n  ItemStyleMixin.prototype.getItemStyle = function (excludes, includes) {\n    return getItemStyle(this, excludes, includes);\n  };\n\n  return ItemStyleMixin;\n}();\n\nexport { ItemStyleMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport env from 'zrender/lib/core/env';\nimport { enableClassExtend, enableClassCheck } from '../util/clazz';\nimport { AreaStyleMixin } from './mixin/areaStyle';\nimport TextStyleMixin from './mixin/textStyle';\nimport { LineStyleMixin } from './mixin/lineStyle';\nimport { ItemStyleMixin } from './mixin/itemStyle';\nimport { mixin, clone, merge } from 'zrender/lib/core/util';\n\nvar Model = function () {\n  function Model(option, parentModel, ecModel) {\n    this.parentModel = parentModel;\n    this.ecModel = ecModel;\n    this.option = option;\n  }\n\n  Model.prototype.init = function (option, parentModel, ecModel) {\n    var rest = [];\n\n    for (var _i = 3; _i < arguments.length; _i++) {\n      rest[_i - 3] = arguments[_i];\n    }\n  };\n\n  Model.prototype.mergeOption = function (option, ecModel) {\n    merge(this.option, option, true);\n  };\n\n  Model.prototype.get = function (path, ignoreParent) {\n    if (path == null) {\n      return this.option;\n    }\n\n    return this._doGet(this.parsePath(path), !ignoreParent && this.parentModel);\n  };\n\n  Model.prototype.getShallow = function (key, ignoreParent) {\n    var option = this.option;\n    var val = option == null ? option : option[key];\n\n    if (val == null && !ignoreParent) {\n      var parentModel = this.parentModel;\n\n      if (parentModel) {\n        val = parentModel.getShallow(key);\n      }\n    }\n\n    return val;\n  };\n\n  Model.prototype.getModel = function (path, parentModel) {\n    var hasPath = path != null;\n    var pathFinal = hasPath ? this.parsePath(path) : null;\n    var obj = hasPath ? this._doGet(pathFinal) : this.option;\n    parentModel = parentModel || this.parentModel && this.parentModel.getModel(this.resolveParentPath(pathFinal));\n    return new Model(obj, parentModel, this.ecModel);\n  };\n\n  Model.prototype.isEmpty = function () {\n    return this.option == null;\n  };\n\n  Model.prototype.restoreData = function () {};\n\n  Model.prototype.clone = function () {\n    var Ctor = this.constructor;\n    return new Ctor(clone(this.option));\n  };\n\n  Model.prototype.parsePath = function (path) {\n    if (typeof path === 'string') {\n      return path.split('.');\n    }\n\n    return path;\n  };\n\n  Model.prototype.resolveParentPath = function (path) {\n    return path;\n  };\n\n  Model.prototype.isAnimationEnabled = function () {\n    if (!env.node && this.option) {\n      if (this.option.animation != null) {\n        return !!this.option.animation;\n      } else if (this.parentModel) {\n        return this.parentModel.isAnimationEnabled();\n      }\n    }\n  };\n\n  Model.prototype._doGet = function (pathArr, parentModel) {\n    var obj = this.option;\n\n    if (!pathArr) {\n      return obj;\n    }\n\n    for (var i = 0; i < pathArr.length; i++) {\n      if (!pathArr[i]) {\n        continue;\n      }\n\n      obj = obj && typeof obj === 'object' ? obj[pathArr[i]] : null;\n\n      if (obj == null) {\n        break;\n      }\n    }\n\n    if (obj == null && parentModel) {\n      obj = parentModel._doGet(this.resolveParentPath(pathArr), parentModel.parentModel);\n    }\n\n    return obj;\n  };\n\n  return Model;\n}();\n\n;\nenableClassExtend(Model);\nenableClassCheck(Model);\nmixin(Model, LineStyleMixin);\nmixin(Model, ItemStyleMixin);\nmixin(Model, AreaStyleMixin);\nmixin(Model, TextStyleMixin);\nexport default Model;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parseClassType } from './clazz';\nimport { makePrintable } from './log';\nvar base = Math.round(Math.random() * 10);\nexport function getUID(type) {\n  return [type || '', base++].join('_');\n}\nexport function enableSubTypeDefaulter(target) {\n  var subTypeDefaulters = {};\n\n  target.registerSubTypeDefaulter = function (componentType, defaulter) {\n    var componentTypeInfo = parseClassType(componentType);\n    subTypeDefaulters[componentTypeInfo.main] = defaulter;\n  };\n\n  target.determineSubType = function (componentType, option) {\n    var type = option.type;\n\n    if (!type) {\n      var componentTypeMain = parseClassType(componentType).main;\n\n      if (target.hasSubTypes(componentType) && subTypeDefaulters[componentTypeMain]) {\n        type = subTypeDefaulters[componentTypeMain](option);\n      }\n    }\n\n    return type;\n  };\n}\nexport function enableTopologicalTravel(entity, dependencyGetter) {\n  entity.topologicalTravel = function (targetNameList, fullNameList, callback, context) {\n    if (!targetNameList.length) {\n      return;\n    }\n\n    var result = makeDepndencyGraph(fullNameList);\n    var graph = result.graph;\n    var noEntryList = result.noEntryList;\n    var targetNameSet = {};\n    zrUtil.each(targetNameList, function (name) {\n      targetNameSet[name] = true;\n    });\n\n    while (noEntryList.length) {\n      var currComponentType = noEntryList.pop();\n      var currVertex = graph[currComponentType];\n      var isInTargetNameSet = !!targetNameSet[currComponentType];\n\n      if (isInTargetNameSet) {\n        callback.call(context, currComponentType, currVertex.originalDeps.slice());\n        delete targetNameSet[currComponentType];\n      }\n\n      zrUtil.each(currVertex.successor, isInTargetNameSet ? removeEdgeAndAdd : removeEdge);\n    }\n\n    zrUtil.each(targetNameSet, function () {\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = makePrintable('Circle dependency may exists: ', targetNameSet, targetNameList, fullNameList);\n      }\n\n      throw new Error(errMsg);\n    });\n\n    function removeEdge(succComponentType) {\n      graph[succComponentType].entryCount--;\n\n      if (graph[succComponentType].entryCount === 0) {\n        noEntryList.push(succComponentType);\n      }\n    }\n\n    function removeEdgeAndAdd(succComponentType) {\n      targetNameSet[succComponentType] = true;\n      removeEdge(succComponentType);\n    }\n  };\n\n  function makeDepndencyGraph(fullNameList) {\n    var graph = {};\n    var noEntryList = [];\n    zrUtil.each(fullNameList, function (name) {\n      var thisItem = createDependencyGraphItem(graph, name);\n      var originalDeps = thisItem.originalDeps = dependencyGetter(name);\n      var availableDeps = getAvailableDependencies(originalDeps, fullNameList);\n      thisItem.entryCount = availableDeps.length;\n\n      if (thisItem.entryCount === 0) {\n        noEntryList.push(name);\n      }\n\n      zrUtil.each(availableDeps, function (dependentName) {\n        if (zrUtil.indexOf(thisItem.predecessor, dependentName) < 0) {\n          thisItem.predecessor.push(dependentName);\n        }\n\n        var thatItem = createDependencyGraphItem(graph, dependentName);\n\n        if (zrUtil.indexOf(thatItem.successor, dependentName) < 0) {\n          thatItem.successor.push(name);\n        }\n      });\n    });\n    return {\n      graph: graph,\n      noEntryList: noEntryList\n    };\n  }\n\n  function createDependencyGraphItem(graph, name) {\n    if (!graph[name]) {\n      graph[name] = {\n        predecessor: [],\n        successor: []\n      };\n    }\n\n    return graph[name];\n  }\n\n  function getAvailableDependencies(originalDeps, fullNameList) {\n    var availableDeps = [];\n    zrUtil.each(originalDeps, function (dep) {\n      zrUtil.indexOf(fullNameList, dep) >= 0 && availableDeps.push(dep);\n    });\n    return availableDeps;\n  }\n}\nexport function inheritDefaultOption(superOption, subOption) {\n  return zrUtil.merge(zrUtil.merge({}, superOption, true), subOption, true);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default {\n  time: {\n    month: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n    monthAbbr: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n    dayOfWeek: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n    dayOfWeekAbbr: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\n  },\n  legend: {\n    selector: {\n      all: 'All',\n      inverse: 'Inv'\n    }\n  },\n  toolbox: {\n    brush: {\n      title: {\n        rect: 'Box Select',\n        polygon: 'Lasso Select',\n        lineX: 'Horizontally Select',\n        lineY: 'Vertically Select',\n        keep: 'Keep Selections',\n        clear: 'Clear Selections'\n      }\n    },\n    dataView: {\n      title: 'Data View',\n      lang: ['Data View', 'Close', 'Refresh']\n    },\n    dataZoom: {\n      title: {\n        zoom: 'Zoom',\n        back: 'Zoom Reset'\n      }\n    },\n    magicType: {\n      title: {\n        line: 'Switch to Line Chart',\n        bar: 'Switch to Bar Chart',\n        stack: 'Stack',\n        tiled: 'Tile'\n      }\n    },\n    restore: {\n      title: 'Restore'\n    },\n    saveAsImage: {\n      title: 'Save as Image',\n      lang: ['Right Click to Save Image']\n    }\n  },\n  series: {\n    typeNames: {\n      pie: 'Pie chart',\n      bar: 'Bar chart',\n      line: 'Line chart',\n      scatter: 'Scatter plot',\n      effectScatter: 'Ripple scatter plot',\n      radar: 'Radar chart',\n      tree: 'Tree',\n      treemap: 'Treemap',\n      boxplot: 'Boxplot',\n      candlestick: 'Candlestick',\n      k: 'K line chart',\n      heatmap: 'Heat map',\n      map: 'Map',\n      parallel: 'Parallel coordinate map',\n      lines: 'Line graph',\n      graph: 'Relationship graph',\n      sankey: 'Sankey diagram',\n      funnel: 'Funnel chart',\n      gauge: 'Guage',\n      pictorialBar: 'Pictorial bar',\n      themeRiver: 'Theme River Map',\n      sunburst: 'Sunburst'\n    }\n  },\n  aria: {\n    general: {\n      withTitle: 'This is a chart about \"{title}\"',\n      withoutTitle: 'This is a chart'\n    },\n    series: {\n      single: {\n        prefix: '',\n        withName: ' with type {seriesType} named {seriesName}.',\n        withoutName: ' with type {seriesType}.'\n      },\n      multiple: {\n        prefix: '. It consists of {seriesCount} series count.',\n        withName: ' The {seriesId} series is a {seriesType} representing {seriesName}.',\n        withoutName: ' The {seriesId} series is a {seriesType}.',\n        separator: {\n          middle: '',\n          end: ''\n        }\n      }\n    },\n    data: {\n      allData: 'The data is as follows: ',\n      partialData: 'The first {displayCnt} items are: ',\n      withName: 'the data for {name} is {value}',\n      withoutName: '{value}',\n      separator: {\n        middle: ', ',\n        end: '. '\n      }\n    }\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default {\n  time: {\n    month: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],\n    monthAbbr: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\n    dayOfWeek: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],\n    dayOfWeekAbbr: ['日', '一', '二', '三', '四', '五', '六']\n  },\n  legend: {\n    selector: {\n      all: '全选',\n      inverse: '反选'\n    }\n  },\n  toolbox: {\n    brush: {\n      title: {\n        rect: '矩形选择',\n        polygon: '圈选',\n        lineX: '横向选择',\n        lineY: '纵向选择',\n        keep: '保持选择',\n        clear: '清除选择'\n      }\n    },\n    dataView: {\n      title: '数据视图',\n      lang: ['数据视图', '关闭', '刷新']\n    },\n    dataZoom: {\n      title: {\n        zoom: '区域缩放',\n        back: '区域缩放还原'\n      }\n    },\n    magicType: {\n      title: {\n        line: '切换为折线图',\n        bar: '切换为柱状图',\n        stack: '切换为堆叠',\n        tiled: '切换为平铺'\n      }\n    },\n    restore: {\n      title: '还原'\n    },\n    saveAsImage: {\n      title: '保存为图片',\n      lang: ['右键另存为图片']\n    }\n  },\n  series: {\n    typeNames: {\n      pie: '饼图',\n      bar: '柱状图',\n      line: '折线图',\n      scatter: '散点图',\n      effectScatter: '涟漪散点图',\n      radar: '雷达图',\n      tree: '树图',\n      treemap: '矩形树图',\n      boxplot: '箱型图',\n      candlestick: 'K线图',\n      k: 'K线图',\n      heatmap: '热力图',\n      map: '地图',\n      parallel: '平行坐标图',\n      lines: '线图',\n      graph: '关系图',\n      sankey: '桑基图',\n      funnel: '漏斗图',\n      gauge: '仪表盘图',\n      pictorialBar: '象形柱图',\n      themeRiver: '主题河流图',\n      sunburst: '旭日图'\n    }\n  },\n  aria: {\n    general: {\n      withTitle: '这是一个关于“{title}”的图表。',\n      withoutTitle: '这是一个图表,'\n    },\n    series: {\n      single: {\n        prefix: '',\n        withName: '图表类型是{seriesType},表示{seriesName}。',\n        withoutName: '图表类型是{seriesType}。'\n      },\n      multiple: {\n        prefix: '它由{seriesCount}个图表系列组成。',\n        withName: '第{seriesId}个系列是一个表示{seriesName}的{seriesType},',\n        withoutName: '第{seriesId}个系列是一个{seriesType},',\n        separator: {\n          middle: ';',\n          end: '。'\n        }\n      }\n    },\n    data: {\n      allData: '其数据是——',\n      partialData: '其中,前{displayCnt}项是——',\n      withName: '{name}的数据是{value}',\n      withoutName: '{value}',\n      separator: {\n        middle: ',',\n        end: ''\n      }\n    }\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Model from '../model/Model';\nimport env from 'zrender/lib/core/env';\nimport langEN from '../i18n/langEN';\nimport langZH from '../i18n/langZH';\nimport { isString, clone, merge } from 'zrender/lib/core/util';\nvar LOCALE_ZH = 'ZH';\nvar LOCALE_EN = 'EN';\nvar DEFAULT_LOCALE = LOCALE_EN;\nvar localeStorage = {};\nvar localeModels = {};\nexport var SYSTEM_LANG = !env.domSupported ? DEFAULT_LOCALE : function () {\n  var langStr = (document.documentElement.lang || navigator.language || navigator.browserLanguage).toUpperCase();\n  return langStr.indexOf(LOCALE_ZH) > -1 ? LOCALE_ZH : DEFAULT_LOCALE;\n}();\nexport function registerLocale(locale, localeObj) {\n  locale = locale.toUpperCase();\n  localeModels[locale] = new Model(localeObj);\n  localeStorage[locale] = localeObj;\n}\nexport function createLocaleObject(locale) {\n  if (isString(locale)) {\n    var localeObj = localeStorage[locale.toUpperCase()] || {};\n\n    if (locale === LOCALE_ZH || locale === LOCALE_EN) {\n      return clone(localeObj);\n    } else {\n      return merge(clone(localeObj), clone(localeStorage[DEFAULT_LOCALE]), false);\n    }\n  } else {\n    return merge(clone(locale), clone(localeStorage[DEFAULT_LOCALE]), false);\n  }\n}\nexport function getLocaleModel(lang) {\n  return localeModels[lang];\n}\nexport function getDefaultLocaleModel() {\n  return localeModels[DEFAULT_LOCALE];\n}\nregisterLocale(LOCALE_EN, langEN);\nregisterLocale(LOCALE_ZH, langZH);","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as numberUtil from './number';\nimport { getDefaultLocaleModel, getLocaleModel, SYSTEM_LANG } from '../core/locale';\nimport Model from '../model/Model';\nexport var ONE_SECOND = 1000;\nexport var ONE_MINUTE = ONE_SECOND * 60;\nexport var ONE_HOUR = ONE_MINUTE * 60;\nexport var ONE_DAY = ONE_HOUR * 24;\nexport var ONE_YEAR = ONE_DAY * 365;\nexport var defaultLeveledFormatter = {\n  year: '{yyyy}',\n  month: '{MMM}',\n  day: '{d}',\n  hour: '{HH}:{mm}',\n  minute: '{HH}:{mm}',\n  second: '{HH}:{mm}:{ss}',\n  millisecond: '{hh}:{mm}:{ss} {SSS}',\n  none: '{yyyy}-{MM}-{dd} {hh}:{mm}:{ss} {SSS}'\n};\nvar fullDayFormatter = '{yyyy}-{MM}-{dd}';\nexport var fullLeveledFormatter = {\n  year: '{yyyy}',\n  month: '{yyyy}-{MM}',\n  day: fullDayFormatter,\n  hour: fullDayFormatter + ' ' + defaultLeveledFormatter.hour,\n  minute: fullDayFormatter + ' ' + defaultLeveledFormatter.minute,\n  second: fullDayFormatter + ' ' + defaultLeveledFormatter.second,\n  millisecond: defaultLeveledFormatter.none\n};\nexport var primaryTimeUnits = ['year', 'month', 'day', 'hour', 'minute', 'second', 'millisecond'];\nexport var timeUnits = ['year', 'half-year', 'quarter', 'month', 'week', 'half-week', 'day', 'half-day', 'quarter-day', 'hour', 'minute', 'second', 'millisecond'];\nexport function pad(str, len) {\n  str += '';\n  return '0000'.substr(0, len - str.length) + str;\n}\nexport function getPrimaryTimeUnit(timeUnit) {\n  switch (timeUnit) {\n    case 'half-year':\n    case 'quarter':\n      return 'month';\n\n    case 'week':\n    case 'half-week':\n      return 'day';\n\n    case 'half-day':\n    case 'quarter-day':\n      return 'hour';\n\n    default:\n      return timeUnit;\n  }\n}\nexport function isPrimaryTimeUnit(timeUnit) {\n  return timeUnit === getPrimaryTimeUnit(timeUnit);\n}\nexport function getDefaultFormatPrecisionOfInterval(timeUnit) {\n  switch (timeUnit) {\n    case 'year':\n    case 'month':\n      return 'day';\n\n    case 'millisecond':\n      return 'millisecond';\n\n    default:\n      return 'second';\n  }\n}\nexport function format(time, template, isUTC, lang) {\n  var date = numberUtil.parseDate(time);\n  var y = date[fullYearGetterName(isUTC)]();\n  var M = date[monthGetterName(isUTC)]() + 1;\n  var q = Math.floor((M - 1) / 4) + 1;\n  var d = date[dateGetterName(isUTC)]();\n  var e = date['get' + (isUTC ? 'UTC' : '') + 'Day']();\n  var H = date[hoursGetterName(isUTC)]();\n  var h = (H - 1) % 12 + 1;\n  var m = date[minutesGetterName(isUTC)]();\n  var s = date[secondsGetterName(isUTC)]();\n  var S = date[millisecondsGetterName(isUTC)]();\n  var localeModel = lang instanceof Model ? lang : getLocaleModel(lang || SYSTEM_LANG) || getDefaultLocaleModel();\n  var timeModel = localeModel.getModel('time');\n  var month = timeModel.get('month');\n  var monthAbbr = timeModel.get('monthAbbr');\n  var dayOfWeek = timeModel.get('dayOfWeek');\n  var dayOfWeekAbbr = timeModel.get('dayOfWeekAbbr');\n  return (template || '').replace(/{yyyy}/g, y + '').replace(/{yy}/g, y % 100 + '').replace(/{Q}/g, q + '').replace(/{MMMM}/g, month[M - 1]).replace(/{MMM}/g, monthAbbr[M - 1]).replace(/{MM}/g, pad(M, 2)).replace(/{M}/g, M + '').replace(/{dd}/g, pad(d, 2)).replace(/{d}/g, d + '').replace(/{eeee}/g, dayOfWeek[e]).replace(/{ee}/g, dayOfWeekAbbr[e]).replace(/{e}/g, e + '').replace(/{HH}/g, pad(H, 2)).replace(/{H}/g, H + '').replace(/{hh}/g, pad(h + '', 2)).replace(/{h}/g, h + '').replace(/{mm}/g, pad(m, 2)).replace(/{m}/g, m + '').replace(/{ss}/g, pad(s, 2)).replace(/{s}/g, s + '').replace(/{SSS}/g, pad(S, 3)).replace(/{S}/g, S + '');\n}\nexport function leveledFormat(tick, idx, formatter, lang, isUTC) {\n  var template = null;\n\n  if (typeof formatter === 'string') {\n    template = formatter;\n  } else if (typeof formatter === 'function') {\n    template = formatter(tick.value, idx, {\n      level: tick.level\n    });\n  } else {\n    var defaults = zrUtil.extend({}, defaultLeveledFormatter);\n\n    if (tick.level > 0) {\n      for (var i = 0; i < primaryTimeUnits.length; ++i) {\n        defaults[primaryTimeUnits[i]] = \"{primary|\" + defaults[primaryTimeUnits[i]] + \"}\";\n      }\n    }\n\n    var mergedFormatter = formatter ? formatter.inherit === false ? formatter : zrUtil.defaults(formatter, defaults) : defaults;\n    var unit = getUnitFromValue(tick.value, isUTC);\n\n    if (mergedFormatter[unit]) {\n      template = mergedFormatter[unit];\n    } else if (mergedFormatter.inherit) {\n      var targetId = timeUnits.indexOf(unit);\n\n      for (var i = targetId - 1; i >= 0; --i) {\n        if (mergedFormatter[unit]) {\n          template = mergedFormatter[unit];\n          break;\n        }\n      }\n\n      template = template || defaults.none;\n    }\n\n    if (zrUtil.isArray(template)) {\n      var levelId = tick.level == null ? 0 : tick.level >= 0 ? tick.level : template.length + tick.level;\n      levelId = Math.min(levelId, template.length - 1);\n      template = template[levelId];\n    }\n  }\n\n  return format(new Date(tick.value), template, isUTC, lang);\n}\nexport function getUnitFromValue(value, isUTC) {\n  var date = numberUtil.parseDate(value);\n  var M = date[monthGetterName(isUTC)]() + 1;\n  var d = date[dateGetterName(isUTC)]();\n  var h = date[hoursGetterName(isUTC)]();\n  var m = date[minutesGetterName(isUTC)]();\n  var s = date[secondsGetterName(isUTC)]();\n  var S = date[millisecondsGetterName(isUTC)]();\n  var isSecond = S === 0;\n  var isMinute = isSecond && s === 0;\n  var isHour = isMinute && m === 0;\n  var isDay = isHour && h === 0;\n  var isMonth = isDay && d === 1;\n  var isYear = isMonth && M === 1;\n\n  if (isYear) {\n    return 'year';\n  } else if (isMonth) {\n    return 'month';\n  } else if (isDay) {\n    return 'day';\n  } else if (isHour) {\n    return 'hour';\n  } else if (isMinute) {\n    return 'minute';\n  } else if (isSecond) {\n    return 'second';\n  } else {\n    return 'millisecond';\n  }\n}\nexport function getUnitValue(value, unit, isUTC) {\n  var date = typeof value === 'number' ? numberUtil.parseDate(value) : value;\n  unit = unit || getUnitFromValue(value, isUTC);\n\n  switch (unit) {\n    case 'year':\n      return date[fullYearGetterName(isUTC)]();\n\n    case 'half-year':\n      return date[monthGetterName(isUTC)]() >= 6 ? 1 : 0;\n\n    case 'quarter':\n      return Math.floor((date[monthGetterName(isUTC)]() + 1) / 4);\n\n    case 'month':\n      return date[monthGetterName(isUTC)]();\n\n    case 'day':\n      return date[dateGetterName(isUTC)]();\n\n    case 'half-day':\n      return date[hoursGetterName(isUTC)]() / 24;\n\n    case 'hour':\n      return date[hoursGetterName(isUTC)]();\n\n    case 'minute':\n      return date[minutesGetterName(isUTC)]();\n\n    case 'second':\n      return date[secondsGetterName(isUTC)]();\n\n    case 'millisecond':\n      return date[millisecondsGetterName(isUTC)]();\n  }\n}\nexport function fullYearGetterName(isUTC) {\n  return isUTC ? 'getUTCFullYear' : 'getFullYear';\n}\nexport function monthGetterName(isUTC) {\n  return isUTC ? 'getUTCMonth' : 'getMonth';\n}\nexport function dateGetterName(isUTC) {\n  return isUTC ? 'getUTCDate' : 'getDate';\n}\nexport function hoursGetterName(isUTC) {\n  return isUTC ? 'getUTCHours' : 'getHours';\n}\nexport function minutesGetterName(isUTC) {\n  return isUTC ? 'getUTCMinutes' : 'getMinutes';\n}\nexport function secondsGetterName(isUTC) {\n  return isUTC ? 'getUTCSeconds' : 'getSeconds';\n}\nexport function millisecondsGetterName(isUTC) {\n  return isUTC ? 'getUTCSeconds' : 'getSeconds';\n}\nexport function fullYearSetterName(isUTC) {\n  return isUTC ? 'setUTCFullYear' : 'setFullYear';\n}\nexport function monthSetterName(isUTC) {\n  return isUTC ? 'setUTCMonth' : 'setMonth';\n}\nexport function dateSetterName(isUTC) {\n  return isUTC ? 'setUTCDate' : 'setDate';\n}\nexport function hoursSetterName(isUTC) {\n  return isUTC ? 'setUTCHours' : 'setHours';\n}\nexport function minutesSetterName(isUTC) {\n  return isUTC ? 'setUTCMinutes' : 'setMinutes';\n}\nexport function secondsSetterName(isUTC) {\n  return isUTC ? 'setUTCSeconds' : 'setSeconds';\n}\nexport function millisecondsSetterName(isUTC) {\n  return isUTC ? 'setUTCSeconds' : 'setSeconds';\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { Text } from '../util/graphic';\nimport { deprecateLog } from '../util/log';\nexport function getTextRect(text, font, align, verticalAlign, padding, rich, truncate, lineHeight) {\n  deprecateLog('getTextRect is deprecated.');\n  var textEl = new Text({\n    style: {\n      text: text,\n      font: font,\n      align: align,\n      verticalAlign: verticalAlign,\n      padding: padding,\n      rich: rich,\n      overflow: truncate ? 'truncate' : null,\n      lineHeight: lineHeight\n    }\n  });\n  return textEl.getBoundingRect();\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parseDate, isNumeric, numericToNumber } from './number';\nimport { format as timeFormat, pad } from './time';\nimport { deprecateReplaceLog } from './log';\nexport function addCommas(x) {\n  if (!isNumeric(x)) {\n    return zrUtil.isString(x) ? x : '-';\n  }\n\n  var parts = (x + '').split('.');\n  return parts[0].replace(/(\\d{1,3})(?=(?:\\d{3})+(?!\\d))/g, '$1,') + (parts.length > 1 ? '.' + parts[1] : '');\n}\nexport function toCamelCase(str, upperCaseFirst) {\n  str = (str || '').toLowerCase().replace(/-(.)/g, function (match, group1) {\n    return group1.toUpperCase();\n  });\n\n  if (upperCaseFirst && str) {\n    str = str.charAt(0).toUpperCase() + str.slice(1);\n  }\n\n  return str;\n}\nexport var normalizeCssArray = zrUtil.normalizeCssArray;\nvar replaceReg = /([&<>\"'])/g;\nvar replaceMap = {\n  '&': '&amp;',\n  '<': '&lt;',\n  '>': '&gt;',\n  '\"': '&quot;',\n  '\\'': '&#39;'\n};\nexport function encodeHTML(source) {\n  return source == null ? '' : (source + '').replace(replaceReg, function (str, c) {\n    return replaceMap[c];\n  });\n}\nexport function makeValueReadable(value, valueType, useUTC) {\n  var USER_READABLE_DEFUALT_TIME_PATTERN = 'yyyy-MM-dd hh:mm:ss';\n\n  function stringToUserReadable(str) {\n    return str && zrUtil.trim(str) ? str : '-';\n  }\n\n  function isNumberUserReadable(num) {\n    return !!(num != null && !isNaN(num) && isFinite(num));\n  }\n\n  var isTypeTime = valueType === 'time';\n  var isValueDate = value instanceof Date;\n\n  if (isTypeTime || isValueDate) {\n    var date = isTypeTime ? parseDate(value) : value;\n\n    if (!isNaN(+date)) {\n      return timeFormat(date, USER_READABLE_DEFUALT_TIME_PATTERN, useUTC);\n    } else if (isValueDate) {\n      return '-';\n    }\n  }\n\n  if (valueType === 'ordinal') {\n    return zrUtil.isStringSafe(value) ? stringToUserReadable(value) : zrUtil.isNumber(value) ? isNumberUserReadable(value) ? value + '' : '-' : '-';\n  }\n\n  var numericResult = numericToNumber(value);\n  return isNumberUserReadable(numericResult) ? addCommas(numericResult) : zrUtil.isStringSafe(value) ? stringToUserReadable(value) : '-';\n}\nvar TPL_VAR_ALIAS = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];\n\nvar wrapVar = function (varName, seriesIdx) {\n  return '{' + varName + (seriesIdx == null ? '' : seriesIdx) + '}';\n};\n\nexport function formatTpl(tpl, paramsList, encode) {\n  if (!zrUtil.isArray(paramsList)) {\n    paramsList = [paramsList];\n  }\n\n  var seriesLen = paramsList.length;\n\n  if (!seriesLen) {\n    return '';\n  }\n\n  var $vars = paramsList[0].$vars || [];\n\n  for (var i = 0; i < $vars.length; i++) {\n    var alias = TPL_VAR_ALIAS[i];\n    tpl = tpl.replace(wrapVar(alias), wrapVar(alias, 0));\n  }\n\n  for (var seriesIdx = 0; seriesIdx < seriesLen; seriesIdx++) {\n    for (var k = 0; k < $vars.length; k++) {\n      var val = paramsList[seriesIdx][$vars[k]];\n      tpl = tpl.replace(wrapVar(TPL_VAR_ALIAS[k], seriesIdx), encode ? encodeHTML(val) : val);\n    }\n  }\n\n  return tpl;\n}\nexport function formatTplSimple(tpl, param, encode) {\n  zrUtil.each(param, function (value, key) {\n    tpl = tpl.replace('{' + key + '}', encode ? encodeHTML(value) : value);\n  });\n  return tpl;\n}\nexport function getTooltipMarker(inOpt, extraCssText) {\n  var opt = zrUtil.isString(inOpt) ? {\n    color: inOpt,\n    extraCssText: extraCssText\n  } : inOpt || {};\n  var color = opt.color;\n  var type = opt.type;\n  extraCssText = opt.extraCssText;\n  var renderMode = opt.renderMode || 'html';\n\n  if (!color) {\n    return '';\n  }\n\n  if (renderMode === 'html') {\n    return type === 'subItem' ? '<span style=\"display:inline-block;vertical-align:middle;margin-right:8px;margin-left:3px;' + 'border-radius:4px;width:4px;height:4px;background-color:' + encodeHTML(color) + ';' + (extraCssText || '') + '\"></span>' : '<span style=\"display:inline-block;margin-right:4px;' + 'border-radius:10px;width:10px;height:10px;background-color:' + encodeHTML(color) + ';' + (extraCssText || '') + '\"></span>';\n  } else {\n    var markerId = opt.markerId || 'markerX';\n    return {\n      renderMode: renderMode,\n      content: '{' + markerId + '|}  ',\n      style: type === 'subItem' ? {\n        width: 4,\n        height: 4,\n        borderRadius: 2,\n        backgroundColor: color\n      } : {\n        width: 10,\n        height: 10,\n        borderRadius: 5,\n        backgroundColor: color\n      }\n    };\n  }\n}\nexport function formatTime(tpl, value, isUTC) {\n  if (process.env.NODE_ENV !== 'production') {\n    deprecateReplaceLog('echarts.format.formatTime', 'echarts.time.format');\n  }\n\n  if (tpl === 'week' || tpl === 'month' || tpl === 'quarter' || tpl === 'half-year' || tpl === 'year') {\n    tpl = 'MM-dd\\nyyyy';\n  }\n\n  var date = parseDate(value);\n  var utc = isUTC ? 'UTC' : '';\n  var y = date['get' + utc + 'FullYear']();\n  var M = date['get' + utc + 'Month']() + 1;\n  var d = date['get' + utc + 'Date']();\n  var h = date['get' + utc + 'Hours']();\n  var m = date['get' + utc + 'Minutes']();\n  var s = date['get' + utc + 'Seconds']();\n  var S = date['get' + utc + 'Milliseconds']();\n  tpl = tpl.replace('MM', pad(M, 2)).replace('M', M).replace('yyyy', y).replace('yy', y % 100 + '').replace('dd', pad(d, 2)).replace('d', d).replace('hh', pad(h, 2)).replace('h', h).replace('mm', pad(m, 2)).replace('m', m).replace('ss', pad(s, 2)).replace('s', s).replace('SSS', pad(S, 3));\n  return tpl;\n}\nexport function capitalFirst(str) {\n  return str ? str.charAt(0).toUpperCase() + str.substr(1) : str;\n}\nexport function convertToColorString(color, defaultColor) {\n  defaultColor = defaultColor || 'transparent';\n  return zrUtil.isString(color) ? color : zrUtil.isObject(color) ? color.colorStops && (color.colorStops[0] || {}).color || defaultColor : defaultColor;\n}\nexport { truncateText } from 'zrender/lib/graphic/helper/parseText';\nexport function windowOpen(link, target) {\n  if (target === '_blank' || target === 'blank') {\n    var blank = window.open();\n    blank.opener = null;\n    blank.location.href = link;\n  } else {\n    window.open(link, target);\n  }\n}\nexport { getTextRect } from '../legacy/getTextRect';","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { parsePercent } from './number';\nimport * as formatUtil from './format';\nvar each = zrUtil.each;\nexport var LOCATION_PARAMS = ['left', 'right', 'top', 'bottom', 'width', 'height'];\nexport var HV_NAMES = [['width', 'left', 'right'], ['height', 'top', 'bottom']];\n\nfunction boxLayout(orient, group, gap, maxWidth, maxHeight) {\n  var x = 0;\n  var y = 0;\n\n  if (maxWidth == null) {\n    maxWidth = Infinity;\n  }\n\n  if (maxHeight == null) {\n    maxHeight = Infinity;\n  }\n\n  var currentLineMaxSize = 0;\n  group.eachChild(function (child, idx) {\n    var rect = child.getBoundingRect();\n    var nextChild = group.childAt(idx + 1);\n    var nextChildRect = nextChild && nextChild.getBoundingRect();\n    var nextX;\n    var nextY;\n\n    if (orient === 'horizontal') {\n      var moveX = rect.width + (nextChildRect ? -nextChildRect.x + rect.x : 0);\n      nextX = x + moveX;\n\n      if (nextX > maxWidth || child.newline) {\n        x = 0;\n        nextX = moveX;\n        y += currentLineMaxSize + gap;\n        currentLineMaxSize = rect.height;\n      } else {\n        currentLineMaxSize = Math.max(currentLineMaxSize, rect.height);\n      }\n    } else {\n      var moveY = rect.height + (nextChildRect ? -nextChildRect.y + rect.y : 0);\n      nextY = y + moveY;\n\n      if (nextY > maxHeight || child.newline) {\n        x += currentLineMaxSize + gap;\n        y = 0;\n        nextY = moveY;\n        currentLineMaxSize = rect.width;\n      } else {\n        currentLineMaxSize = Math.max(currentLineMaxSize, rect.width);\n      }\n    }\n\n    if (child.newline) {\n      return;\n    }\n\n    child.x = x;\n    child.y = y;\n    child.markRedraw();\n    orient === 'horizontal' ? x = nextX + gap : y = nextY + gap;\n  });\n}\n\nexport var box = boxLayout;\nexport var vbox = zrUtil.curry(boxLayout, 'vertical');\nexport var hbox = zrUtil.curry(boxLayout, 'horizontal');\nexport function getAvailableSize(positionInfo, containerRect, margin) {\n  var containerWidth = containerRect.width;\n  var containerHeight = containerRect.height;\n  var x = parsePercent(positionInfo.left, containerWidth);\n  var y = parsePercent(positionInfo.top, containerHeight);\n  var x2 = parsePercent(positionInfo.right, containerWidth);\n  var y2 = parsePercent(positionInfo.bottom, containerHeight);\n  (isNaN(x) || isNaN(parseFloat(positionInfo.left))) && (x = 0);\n  (isNaN(x2) || isNaN(parseFloat(positionInfo.right))) && (x2 = containerWidth);\n  (isNaN(y) || isNaN(parseFloat(positionInfo.top))) && (y = 0);\n  (isNaN(y2) || isNaN(parseFloat(positionInfo.bottom))) && (y2 = containerHeight);\n  margin = formatUtil.normalizeCssArray(margin || 0);\n  return {\n    width: Math.max(x2 - x - margin[1] - margin[3], 0),\n    height: Math.max(y2 - y - margin[0] - margin[2], 0)\n  };\n}\nexport function getLayoutRect(positionInfo, containerRect, margin) {\n  margin = formatUtil.normalizeCssArray(margin || 0);\n  var containerWidth = containerRect.width;\n  var containerHeight = containerRect.height;\n  var left = parsePercent(positionInfo.left, containerWidth);\n  var top = parsePercent(positionInfo.top, containerHeight);\n  var right = parsePercent(positionInfo.right, containerWidth);\n  var bottom = parsePercent(positionInfo.bottom, containerHeight);\n  var width = parsePercent(positionInfo.width, containerWidth);\n  var height = parsePercent(positionInfo.height, containerHeight);\n  var verticalMargin = margin[2] + margin[0];\n  var horizontalMargin = margin[1] + margin[3];\n  var aspect = positionInfo.aspect;\n\n  if (isNaN(width)) {\n    width = containerWidth - right - horizontalMargin - left;\n  }\n\n  if (isNaN(height)) {\n    height = containerHeight - bottom - verticalMargin - top;\n  }\n\n  if (aspect != null) {\n    if (isNaN(width) && isNaN(height)) {\n      if (aspect > containerWidth / containerHeight) {\n        width = containerWidth * 0.8;\n      } else {\n        height = containerHeight * 0.8;\n      }\n    }\n\n    if (isNaN(width)) {\n      width = aspect * height;\n    }\n\n    if (isNaN(height)) {\n      height = width / aspect;\n    }\n  }\n\n  if (isNaN(left)) {\n    left = containerWidth - right - width - horizontalMargin;\n  }\n\n  if (isNaN(top)) {\n    top = containerHeight - bottom - height - verticalMargin;\n  }\n\n  switch (positionInfo.left || positionInfo.right) {\n    case 'center':\n      left = containerWidth / 2 - width / 2 - margin[3];\n      break;\n\n    case 'right':\n      left = containerWidth - width - horizontalMargin;\n      break;\n  }\n\n  switch (positionInfo.top || positionInfo.bottom) {\n    case 'middle':\n    case 'center':\n      top = containerHeight / 2 - height / 2 - margin[0];\n      break;\n\n    case 'bottom':\n      top = containerHeight - height - verticalMargin;\n      break;\n  }\n\n  left = left || 0;\n  top = top || 0;\n\n  if (isNaN(width)) {\n    width = containerWidth - horizontalMargin - left - (right || 0);\n  }\n\n  if (isNaN(height)) {\n    height = containerHeight - verticalMargin - top - (bottom || 0);\n  }\n\n  var rect = new BoundingRect(left + margin[3], top + margin[0], width, height);\n  rect.margin = margin;\n  return rect;\n}\nexport function positionElement(el, positionInfo, containerRect, margin, opt) {\n  var h = !opt || !opt.hv || opt.hv[0];\n  var v = !opt || !opt.hv || opt.hv[1];\n  var boundingMode = opt && opt.boundingMode || 'all';\n\n  if (!h && !v) {\n    return;\n  }\n\n  var rect;\n\n  if (boundingMode === 'raw') {\n    rect = el.type === 'group' ? new BoundingRect(0, 0, +positionInfo.width || 0, +positionInfo.height || 0) : el.getBoundingRect();\n  } else {\n    rect = el.getBoundingRect();\n\n    if (el.needLocalTransform()) {\n      var transform = el.getLocalTransform();\n      rect = rect.clone();\n      rect.applyTransform(transform);\n    }\n  }\n\n  var layoutRect = getLayoutRect(zrUtil.defaults({\n    width: rect.width,\n    height: rect.height\n  }, positionInfo), containerRect, margin);\n  var dx = h ? layoutRect.x - rect.x : 0;\n  var dy = v ? layoutRect.y - rect.y : 0;\n\n  if (boundingMode === 'raw') {\n    el.x = dx;\n    el.y = dy;\n  } else {\n    el.x += dx;\n    el.y += dy;\n  }\n\n  el.markRedraw();\n}\nexport function sizeCalculable(option, hvIdx) {\n  return option[HV_NAMES[hvIdx][0]] != null || option[HV_NAMES[hvIdx][1]] != null && option[HV_NAMES[hvIdx][2]] != null;\n}\nexport function fetchLayoutMode(ins) {\n  var layoutMode = ins.layoutMode || ins.constructor.layoutMode;\n  return zrUtil.isObject(layoutMode) ? layoutMode : layoutMode ? {\n    type: layoutMode\n  } : null;\n}\nexport function mergeLayoutParam(targetOption, newOption, opt) {\n  var ignoreSize = opt && opt.ignoreSize;\n  !zrUtil.isArray(ignoreSize) && (ignoreSize = [ignoreSize, ignoreSize]);\n  var hResult = merge(HV_NAMES[0], 0);\n  var vResult = merge(HV_NAMES[1], 1);\n  copy(HV_NAMES[0], targetOption, hResult);\n  copy(HV_NAMES[1], targetOption, vResult);\n\n  function merge(names, hvIdx) {\n    var newParams = {};\n    var newValueCount = 0;\n    var merged = {};\n    var mergedValueCount = 0;\n    var enoughParamNumber = 2;\n    each(names, function (name) {\n      merged[name] = targetOption[name];\n    });\n    each(names, function (name) {\n      hasProp(newOption, name) && (newParams[name] = merged[name] = newOption[name]);\n      hasValue(newParams, name) && newValueCount++;\n      hasValue(merged, name) && mergedValueCount++;\n    });\n\n    if (ignoreSize[hvIdx]) {\n      if (hasValue(newOption, names[1])) {\n        merged[names[2]] = null;\n      } else if (hasValue(newOption, names[2])) {\n        merged[names[1]] = null;\n      }\n\n      return merged;\n    }\n\n    if (mergedValueCount === enoughParamNumber || !newValueCount) {\n      return merged;\n    } else if (newValueCount >= enoughParamNumber) {\n      return newParams;\n    } else {\n      for (var i = 0; i < names.length; i++) {\n        var name_1 = names[i];\n\n        if (!hasProp(newParams, name_1) && hasProp(targetOption, name_1)) {\n          newParams[name_1] = targetOption[name_1];\n          break;\n        }\n      }\n\n      return newParams;\n    }\n  }\n\n  function hasProp(obj, name) {\n    return obj.hasOwnProperty(name);\n  }\n\n  function hasValue(obj, name) {\n    return obj[name] != null && obj[name] !== 'auto';\n  }\n\n  function copy(names, target, source) {\n    each(names, function (name) {\n      target[name] = source[name];\n    });\n  }\n}\nexport function getLayoutParams(source) {\n  return copyLayoutParams({}, source);\n}\nexport function copyLayoutParams(target, source) {\n  source && target && each(LOCATION_PARAMS, function (name) {\n    source.hasOwnProperty(name) && (target[name] = source[name]);\n  });\n  return target;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Model from './Model';\nimport * as componentUtil from '../util/component';\nimport { enableClassManagement, parseClassType, isExtendedClass, mountExtend } from '../util/clazz';\nimport { makeInner, queryReferringComponents } from '../util/model';\nimport * as layout from '../util/layout';\nvar inner = makeInner();\n\nvar ComponentModel = function (_super) {\n  __extends(ComponentModel, _super);\n\n  function ComponentModel(option, parentModel, ecModel) {\n    var _this = _super.call(this, option, parentModel, ecModel) || this;\n\n    _this.uid = componentUtil.getUID('ec_cpt_model');\n    return _this;\n  }\n\n  ComponentModel.prototype.init = function (option, parentModel, ecModel) {\n    this.mergeDefaultAndTheme(option, ecModel);\n  };\n\n  ComponentModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n    var layoutMode = layout.fetchLayoutMode(this);\n    var inputPositionParams = layoutMode ? layout.getLayoutParams(option) : {};\n    var themeModel = ecModel.getTheme();\n    zrUtil.merge(option, themeModel.get(this.mainType));\n    zrUtil.merge(option, this.getDefaultOption());\n\n    if (layoutMode) {\n      layout.mergeLayoutParam(option, inputPositionParams, layoutMode);\n    }\n  };\n\n  ComponentModel.prototype.mergeOption = function (option, ecModel) {\n    zrUtil.merge(this.option, option, true);\n    var layoutMode = layout.fetchLayoutMode(this);\n\n    if (layoutMode) {\n      layout.mergeLayoutParam(this.option, option, layoutMode);\n    }\n  };\n\n  ComponentModel.prototype.optionUpdated = function (newCptOption, isInit) {};\n\n  ComponentModel.prototype.getDefaultOption = function () {\n    var ctor = this.constructor;\n\n    if (!isExtendedClass(ctor)) {\n      return ctor.defaultOption;\n    }\n\n    var fields = inner(this);\n\n    if (!fields.defaultOption) {\n      var optList = [];\n      var clz = ctor;\n\n      while (clz) {\n        var opt = clz.prototype.defaultOption;\n        opt && optList.push(opt);\n        clz = clz.superClass;\n      }\n\n      var defaultOption = {};\n\n      for (var i = optList.length - 1; i >= 0; i--) {\n        defaultOption = zrUtil.merge(defaultOption, optList[i], true);\n      }\n\n      fields.defaultOption = defaultOption;\n    }\n\n    return fields.defaultOption;\n  };\n\n  ComponentModel.prototype.getReferringComponents = function (mainType, opt) {\n    var indexKey = mainType + 'Index';\n    var idKey = mainType + 'Id';\n    return queryReferringComponents(this.ecModel, mainType, {\n      index: this.get(indexKey, true),\n      id: this.get(idKey, true)\n    }, opt);\n  };\n\n  ComponentModel.prototype.getBoxLayoutParams = function () {\n    var boxLayoutModel = this;\n    return {\n      left: boxLayoutModel.get('left'),\n      top: boxLayoutModel.get('top'),\n      right: boxLayoutModel.get('right'),\n      bottom: boxLayoutModel.get('bottom'),\n      width: boxLayoutModel.get('width'),\n      height: boxLayoutModel.get('height')\n    };\n  };\n\n  ComponentModel.protoInitialize = function () {\n    var proto = ComponentModel.prototype;\n    proto.type = 'component';\n    proto.id = '';\n    proto.name = '';\n    proto.mainType = '';\n    proto.subType = '';\n    proto.componentIndex = 0;\n  }();\n\n  return ComponentModel;\n}(Model);\n\nmountExtend(ComponentModel, Model);\nenableClassManagement(ComponentModel);\ncomponentUtil.enableSubTypeDefaulter(ComponentModel);\ncomponentUtil.enableTopologicalTravel(ComponentModel, getDependencies);\n\nfunction getDependencies(componentType) {\n  var deps = [];\n  zrUtil.each(ComponentModel.getClassesByMainType(componentType), function (clz) {\n    deps = deps.concat(clz.dependencies || clz.prototype.dependencies || []);\n  });\n  deps = zrUtil.map(deps, function (type) {\n    return parseClassType(type).main;\n  });\n\n  if (componentType !== 'dataset' && zrUtil.indexOf(deps, 'dataset') <= 0) {\n    deps.unshift('dataset');\n  }\n\n  return deps;\n}\n\nexport default ComponentModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar platform = '';\n\nif (typeof navigator !== 'undefined') {\n  platform = navigator.platform || '';\n}\n\nvar decalColor = 'rgba(0, 0, 0, 0.2)';\nexport default {\n  darkMode: 'auto',\n  color: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],\n  gradientColor: ['#f6efa6', '#d88273', '#bf444c'],\n  aria: {\n    decal: {\n      decals: [{\n        color: decalColor,\n        dashArrayX: [1, 0],\n        dashArrayY: [2, 5],\n        symbolSize: 1,\n        rotation: Math.PI / 6\n      }, {\n        color: decalColor,\n        symbol: 'circle',\n        dashArrayX: [[8, 8], [0, 8, 8, 0]],\n        dashArrayY: [6, 0],\n        symbolSize: 0.8\n      }, {\n        color: decalColor,\n        dashArrayX: [1, 0],\n        dashArrayY: [4, 3],\n        rotation: -Math.PI / 4\n      }, {\n        color: decalColor,\n        dashArrayX: [[6, 6], [0, 6, 6, 0]],\n        dashArrayY: [6, 0]\n      }, {\n        color: decalColor,\n        dashArrayX: [[1, 0], [1, 6]],\n        dashArrayY: [1, 0, 6, 0],\n        rotation: Math.PI / 4\n      }, {\n        color: decalColor,\n        symbol: 'triangle',\n        dashArrayX: [[9, 9], [0, 9, 9, 0]],\n        dashArrayY: [7, 2],\n        symbolSize: 0.75\n      }]\n    }\n  },\n  textStyle: {\n    fontFamily: platform.match(/^Win/) ? 'Microsoft YaHei' : 'sans-serif',\n    fontSize: 12,\n    fontStyle: 'normal',\n    fontWeight: 'normal'\n  },\n  blendMode: null,\n  stateAnimation: {\n    duration: 300,\n    easing: 'cubicOut'\n  },\n  animation: 'auto',\n  animationDuration: 1000,\n  animationDurationUpdate: 500,\n  animationEasing: 'cubicInOut',\n  animationEasingUpdate: 'cubicInOut',\n  animationThreshold: 2000,\n  progressiveThreshold: 3000,\n  progressive: 400,\n  hoverLayerThreshold: 3000,\n  useUTC: false\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap } from 'zrender/lib/core/util';\n;\n;\n;\nexport var VISUAL_DIMENSIONS = createHashMap(['tooltip', 'label', 'itemName', 'itemId', 'seriesName']);\nexport var SOURCE_FORMAT_ORIGINAL = 'original';\nexport var SOURCE_FORMAT_ARRAY_ROWS = 'arrayRows';\nexport var SOURCE_FORMAT_OBJECT_ROWS = 'objectRows';\nexport var SOURCE_FORMAT_KEYED_COLUMNS = 'keyedColumns';\nexport var SOURCE_FORMAT_TYPED_ARRAY = 'typedArray';\nexport var SOURCE_FORMAT_UNKNOWN = 'unknown';\nexport var SERIES_LAYOUT_BY_COLUMN = 'column';\nexport var SERIES_LAYOUT_BY_ROW = 'row';\n;\n;\n;\n;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner, getDataItemValue, queryReferringComponents, SINGLE_REFERRING } from '../../util/model';\nimport { createHashMap, each, isArray, isString, isObject, isTypedArray } from 'zrender/lib/core/util';\nimport { SOURCE_FORMAT_ORIGINAL, SOURCE_FORMAT_ARRAY_ROWS, SOURCE_FORMAT_OBJECT_ROWS, SERIES_LAYOUT_BY_ROW, SOURCE_FORMAT_KEYED_COLUMNS } from '../../util/types';\nexport var BE_ORDINAL = {\n  Must: 1,\n  Might: 2,\n  Not: 3\n};\nvar innerGlobalModel = makeInner();\nexport function resetSourceDefaulter(ecModel) {\n  innerGlobalModel(ecModel).datasetMap = createHashMap();\n}\nexport function makeSeriesEncodeForAxisCoordSys(coordDimensions, seriesModel, source) {\n  var encode = {};\n  var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\n\n  if (!datasetModel || !coordDimensions) {\n    return encode;\n  }\n\n  var encodeItemName = [];\n  var encodeSeriesName = [];\n  var ecModel = seriesModel.ecModel;\n  var datasetMap = innerGlobalModel(ecModel).datasetMap;\n  var key = datasetModel.uid + '_' + source.seriesLayoutBy;\n  var baseCategoryDimIndex;\n  var categoryWayValueDimStart;\n  coordDimensions = coordDimensions.slice();\n  each(coordDimensions, function (coordDimInfoLoose, coordDimIdx) {\n    var coordDimInfo = isObject(coordDimInfoLoose) ? coordDimInfoLoose : coordDimensions[coordDimIdx] = {\n      name: coordDimInfoLoose\n    };\n\n    if (coordDimInfo.type === 'ordinal' && baseCategoryDimIndex == null) {\n      baseCategoryDimIndex = coordDimIdx;\n      categoryWayValueDimStart = getDataDimCountOnCoordDim(coordDimInfo);\n    }\n\n    encode[coordDimInfo.name] = [];\n  });\n  var datasetRecord = datasetMap.get(key) || datasetMap.set(key, {\n    categoryWayDim: categoryWayValueDimStart,\n    valueWayDim: 0\n  });\n  each(coordDimensions, function (coordDimInfo, coordDimIdx) {\n    var coordDimName = coordDimInfo.name;\n    var count = getDataDimCountOnCoordDim(coordDimInfo);\n\n    if (baseCategoryDimIndex == null) {\n      var start = datasetRecord.valueWayDim;\n      pushDim(encode[coordDimName], start, count);\n      pushDim(encodeSeriesName, start, count);\n      datasetRecord.valueWayDim += count;\n    } else if (baseCategoryDimIndex === coordDimIdx) {\n      pushDim(encode[coordDimName], 0, count);\n      pushDim(encodeItemName, 0, count);\n    } else {\n      var start = datasetRecord.categoryWayDim;\n      pushDim(encode[coordDimName], start, count);\n      pushDim(encodeSeriesName, start, count);\n      datasetRecord.categoryWayDim += count;\n    }\n  });\n\n  function pushDim(dimIdxArr, idxFrom, idxCount) {\n    for (var i = 0; i < idxCount; i++) {\n      dimIdxArr.push(idxFrom + i);\n    }\n  }\n\n  function getDataDimCountOnCoordDim(coordDimInfo) {\n    var dimsDef = coordDimInfo.dimsDef;\n    return dimsDef ? dimsDef.length : 1;\n  }\n\n  encodeItemName.length && (encode.itemName = encodeItemName);\n  encodeSeriesName.length && (encode.seriesName = encodeSeriesName);\n  return encode;\n}\nexport function makeSeriesEncodeForNameBased(seriesModel, source, dimCount) {\n  var encode = {};\n  var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\n\n  if (!datasetModel) {\n    return encode;\n  }\n\n  var sourceFormat = source.sourceFormat;\n  var dimensionsDefine = source.dimensionsDefine;\n  var potentialNameDimIndex;\n\n  if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS || sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n    each(dimensionsDefine, function (dim, idx) {\n      if ((isObject(dim) ? dim.name : dim) === 'name') {\n        potentialNameDimIndex = idx;\n      }\n    });\n  }\n\n  var idxResult = function () {\n    var idxRes0 = {};\n    var idxRes1 = {};\n    var guessRecords = [];\n\n    for (var i = 0, len = Math.min(5, dimCount); i < len; i++) {\n      var guessResult = doGuessOrdinal(source.data, sourceFormat, source.seriesLayoutBy, dimensionsDefine, source.startIndex, i);\n      guessRecords.push(guessResult);\n      var isPureNumber = guessResult === BE_ORDINAL.Not;\n\n      if (isPureNumber && idxRes0.v == null && i !== potentialNameDimIndex) {\n        idxRes0.v = i;\n      }\n\n      if (idxRes0.n == null || idxRes0.n === idxRes0.v || !isPureNumber && guessRecords[idxRes0.n] === BE_ORDINAL.Not) {\n        idxRes0.n = i;\n      }\n\n      if (fulfilled(idxRes0) && guessRecords[idxRes0.n] !== BE_ORDINAL.Not) {\n        return idxRes0;\n      }\n\n      if (!isPureNumber) {\n        if (guessResult === BE_ORDINAL.Might && idxRes1.v == null && i !== potentialNameDimIndex) {\n          idxRes1.v = i;\n        }\n\n        if (idxRes1.n == null || idxRes1.n === idxRes1.v) {\n          idxRes1.n = i;\n        }\n      }\n    }\n\n    function fulfilled(idxResult) {\n      return idxResult.v != null && idxResult.n != null;\n    }\n\n    return fulfilled(idxRes0) ? idxRes0 : fulfilled(idxRes1) ? idxRes1 : null;\n  }();\n\n  if (idxResult) {\n    encode.value = [idxResult.v];\n    var nameDimIndex = potentialNameDimIndex != null ? potentialNameDimIndex : idxResult.n;\n    encode.itemName = [nameDimIndex];\n    encode.seriesName = [nameDimIndex];\n  }\n\n  return encode;\n}\nexport function querySeriesUpstreamDatasetModel(seriesModel) {\n  var thisData = seriesModel.get('data', true);\n\n  if (!thisData) {\n    return queryReferringComponents(seriesModel.ecModel, 'dataset', {\n      index: seriesModel.get('datasetIndex', true),\n      id: seriesModel.get('datasetId', true)\n    }, SINGLE_REFERRING).models[0];\n  }\n}\nexport function queryDatasetUpstreamDatasetModels(datasetModel) {\n  if (!datasetModel.get('transform', true) && !datasetModel.get('fromTransformResult', true)) {\n    return [];\n  }\n\n  return queryReferringComponents(datasetModel.ecModel, 'dataset', {\n    index: datasetModel.get('fromDatasetIndex', true),\n    id: datasetModel.get('fromDatasetId', true)\n  }, SINGLE_REFERRING).models;\n}\nexport function guessOrdinal(source, dimIndex) {\n  return doGuessOrdinal(source.data, source.sourceFormat, source.seriesLayoutBy, source.dimensionsDefine, source.startIndex, dimIndex);\n}\n\nfunction doGuessOrdinal(data, sourceFormat, seriesLayoutBy, dimensionsDefine, startIndex, dimIndex) {\n  var result;\n  var maxLoop = 5;\n\n  if (isTypedArray(data)) {\n    return BE_ORDINAL.Not;\n  }\n\n  var dimName;\n  var dimType;\n\n  if (dimensionsDefine) {\n    var dimDefItem = dimensionsDefine[dimIndex];\n\n    if (isObject(dimDefItem)) {\n      dimName = dimDefItem.name;\n      dimType = dimDefItem.type;\n    } else if (isString(dimDefItem)) {\n      dimName = dimDefItem;\n    }\n  }\n\n  if (dimType != null) {\n    return dimType === 'ordinal' ? BE_ORDINAL.Must : BE_ORDINAL.Not;\n  }\n\n  if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n    var dataArrayRows = data;\n\n    if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\n      var sample = dataArrayRows[dimIndex];\n\n      for (var i = 0; i < (sample || []).length && i < maxLoop; i++) {\n        if ((result = detectValue(sample[startIndex + i])) != null) {\n          return result;\n        }\n      }\n    } else {\n      for (var i = 0; i < dataArrayRows.length && i < maxLoop; i++) {\n        var row = dataArrayRows[startIndex + i];\n\n        if (row && (result = detectValue(row[dimIndex])) != null) {\n          return result;\n        }\n      }\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n    var dataObjectRows = data;\n\n    if (!dimName) {\n      return BE_ORDINAL.Not;\n    }\n\n    for (var i = 0; i < dataObjectRows.length && i < maxLoop; i++) {\n      var item = dataObjectRows[i];\n\n      if (item && (result = detectValue(item[dimName])) != null) {\n        return result;\n      }\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n    var dataKeyedColumns = data;\n\n    if (!dimName) {\n      return BE_ORDINAL.Not;\n    }\n\n    var sample = dataKeyedColumns[dimName];\n\n    if (!sample || isTypedArray(sample)) {\n      return BE_ORDINAL.Not;\n    }\n\n    for (var i = 0; i < sample.length && i < maxLoop; i++) {\n      if ((result = detectValue(sample[i])) != null) {\n        return result;\n      }\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n    var dataOriginal = data;\n\n    for (var i = 0; i < dataOriginal.length && i < maxLoop; i++) {\n      var item = dataOriginal[i];\n      var val = getDataItemValue(item);\n\n      if (!isArray(val)) {\n        return BE_ORDINAL.Not;\n      }\n\n      if ((result = detectValue(val[dimIndex])) != null) {\n        return result;\n      }\n    }\n  }\n\n  function detectValue(val) {\n    var beStr = isString(val);\n\n    if (val != null && isFinite(val) && val !== '') {\n      return beStr ? BE_ORDINAL.Might : BE_ORDINAL.Not;\n    } else if (beStr && val !== '-') {\n      return BE_ORDINAL.Must;\n    }\n  }\n\n  return BE_ORDINAL.Not;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, assert } from 'zrender/lib/core/util';\nimport { isComponentIdInternal } from '../util/model';\nvar internalOptionCreatorMap = createHashMap();\nexport function registerInternalOptionCreator(mainType, creator) {\n  assert(internalOptionCreatorMap.get(mainType) == null && creator);\n  internalOptionCreatorMap.set(mainType, creator);\n}\nexport function concatInternalOptions(ecModel, mainType, newCmptOptionList) {\n  var internalOptionCreator = internalOptionCreatorMap.get(mainType);\n\n  if (!internalOptionCreator) {\n    return newCmptOptionList;\n  }\n\n  var internalOptions = internalOptionCreator(ecModel);\n\n  if (!internalOptions) {\n    return newCmptOptionList;\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    for (var i = 0; i < internalOptions.length; i++) {\n      assert(isComponentIdInternal(internalOptions[i]));\n    }\n  }\n\n  return newCmptOptionList.concat(internalOptions);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner, normalizeToArray } from '../../util/model';\nvar innerColor = makeInner();\nvar innerDecal = makeInner();\n\nvar PaletteMixin = function () {\n  function PaletteMixin() {}\n\n  PaletteMixin.prototype.getColorFromPalette = function (name, scope, requestNum) {\n    var defaultPalette = normalizeToArray(this.get('color', true));\n    var layeredPalette = this.get('colorLayer', true);\n    return getFromPalette(this, innerColor, defaultPalette, layeredPalette, name, scope, requestNum);\n  };\n\n  PaletteMixin.prototype.clearColorPalette = function () {\n    clearPalette(this, innerColor);\n  };\n\n  return PaletteMixin;\n}();\n\nexport function getDecalFromPalette(ecModel, name, scope, requestNum) {\n  var defaultDecals = normalizeToArray(ecModel.get(['aria', 'decal', 'decals']));\n  return getFromPalette(ecModel, innerDecal, defaultDecals, null, name, scope, requestNum);\n}\n\nfunction getNearestPalette(palettes, requestColorNum) {\n  var paletteNum = palettes.length;\n\n  for (var i = 0; i < paletteNum; i++) {\n    if (palettes[i].length > requestColorNum) {\n      return palettes[i];\n    }\n  }\n\n  return palettes[paletteNum - 1];\n}\n\nfunction getFromPalette(that, inner, defaultPalette, layeredPalette, name, scope, requestNum) {\n  scope = scope || that;\n  var scopeFields = inner(scope);\n  var paletteIdx = scopeFields.paletteIdx || 0;\n  var paletteNameMap = scopeFields.paletteNameMap = scopeFields.paletteNameMap || {};\n\n  if (paletteNameMap.hasOwnProperty(name)) {\n    return paletteNameMap[name];\n  }\n\n  var palette = requestNum == null || !layeredPalette ? defaultPalette : getNearestPalette(layeredPalette, requestNum);\n  palette = palette || defaultPalette;\n\n  if (!palette || !palette.length) {\n    return;\n  }\n\n  var pickedPaletteItem = palette[paletteIdx];\n\n  if (name) {\n    paletteNameMap[name] = pickedPaletteItem;\n  }\n\n  scopeFields.paletteIdx = (paletteIdx + 1) % palette.length;\n  return pickedPaletteItem;\n}\n\nfunction clearPalette(that, inner) {\n  inner(that).paletteIdx = 0;\n  inner(that).paletteNameMap = {};\n}\n\nexport { PaletteMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { each, filter, isArray, isObject, isString, createHashMap, assert, clone, merge, extend, mixin, isFunction } from 'zrender/lib/core/util';\nimport * as modelUtil from '../util/model';\nimport Model from './Model';\nimport ComponentModel from './Component';\nimport globalDefault from './globalDefault';\nimport { resetSourceDefaulter } from '../data/helper/sourceHelper';\nimport { concatInternalOptions } from './internalComponentCreator';\nimport { PaletteMixin } from './mixin/palette';\nvar reCreateSeriesIndices;\nvar assertSeriesInitialized;\nvar initBase;\nvar OPTION_INNER_KEY = '\\0_ec_inner';\nvar OPTION_INNER_VALUE = 1;\n\nvar GlobalModel = function (_super) {\n  __extends(GlobalModel, _super);\n\n  function GlobalModel() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  GlobalModel.prototype.init = function (option, parentModel, ecModel, theme, locale, optionManager) {\n    theme = theme || {};\n    this.option = null;\n    this._theme = new Model(theme);\n    this._locale = new Model(locale);\n    this._optionManager = optionManager;\n  };\n\n  GlobalModel.prototype.setOption = function (option, opts, optionPreprocessorFuncs) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(option != null, 'option is null/undefined');\n      assert(option[OPTION_INNER_KEY] !== OPTION_INNER_VALUE, 'please use chart.getOption()');\n    }\n\n    var innerOpt = normalizeSetOptionInput(opts);\n\n    this._optionManager.setOption(option, optionPreprocessorFuncs, innerOpt);\n\n    this._resetOption(null, innerOpt);\n  };\n\n  GlobalModel.prototype.resetOption = function (type, opt) {\n    return this._resetOption(type, normalizeSetOptionInput(opt));\n  };\n\n  GlobalModel.prototype._resetOption = function (type, opt) {\n    var optionChanged = false;\n    var optionManager = this._optionManager;\n\n    if (!type || type === 'recreate') {\n      var baseOption = optionManager.mountOption(type === 'recreate');\n\n      if (!this.option || type === 'recreate') {\n        initBase(this, baseOption);\n      } else {\n        this.restoreData();\n\n        this._mergeOption(baseOption, opt);\n      }\n\n      optionChanged = true;\n    }\n\n    if (type === 'timeline' || type === 'media') {\n      this.restoreData();\n    }\n\n    if (!type || type === 'recreate' || type === 'timeline') {\n      var timelineOption = optionManager.getTimelineOption(this);\n\n      if (timelineOption) {\n        optionChanged = true;\n\n        this._mergeOption(timelineOption, opt);\n      }\n    }\n\n    if (!type || type === 'recreate' || type === 'media') {\n      var mediaOptions = optionManager.getMediaOption(this);\n\n      if (mediaOptions.length) {\n        each(mediaOptions, function (mediaOption) {\n          optionChanged = true;\n\n          this._mergeOption(mediaOption, opt);\n        }, this);\n      }\n    }\n\n    return optionChanged;\n  };\n\n  GlobalModel.prototype.mergeOption = function (option) {\n    this._mergeOption(option, null);\n  };\n\n  GlobalModel.prototype._mergeOption = function (newOption, opt) {\n    var option = this.option;\n    var componentsMap = this._componentsMap;\n    var componentsCount = this._componentsCount;\n    var newCmptTypes = [];\n    var newCmptTypeMap = createHashMap();\n    var replaceMergeMainTypeMap = opt && opt.replaceMergeMainTypeMap;\n    resetSourceDefaulter(this);\n    each(newOption, function (componentOption, mainType) {\n      if (componentOption == null) {\n        return;\n      }\n\n      if (!ComponentModel.hasClass(mainType)) {\n        option[mainType] = option[mainType] == null ? clone(componentOption) : merge(option[mainType], componentOption, true);\n      } else if (mainType) {\n        newCmptTypes.push(mainType);\n        newCmptTypeMap.set(mainType, true);\n      }\n    });\n\n    if (replaceMergeMainTypeMap) {\n      replaceMergeMainTypeMap.each(function (val, mainTypeInReplaceMerge) {\n        if (ComponentModel.hasClass(mainTypeInReplaceMerge) && !newCmptTypeMap.get(mainTypeInReplaceMerge)) {\n          newCmptTypes.push(mainTypeInReplaceMerge);\n          newCmptTypeMap.set(mainTypeInReplaceMerge, true);\n        }\n      });\n    }\n\n    ComponentModel.topologicalTravel(newCmptTypes, ComponentModel.getAllClassMainTypes(), visitComponent, this);\n\n    function visitComponent(mainType) {\n      var newCmptOptionList = concatInternalOptions(this, mainType, modelUtil.normalizeToArray(newOption[mainType]));\n      var oldCmptList = componentsMap.get(mainType);\n      var mergeMode = !oldCmptList ? 'replaceAll' : replaceMergeMainTypeMap && replaceMergeMainTypeMap.get(mainType) ? 'replaceMerge' : 'normalMerge';\n      var mappingResult = modelUtil.mappingToExists(oldCmptList, newCmptOptionList, mergeMode);\n      modelUtil.setComponentTypeToKeyInfo(mappingResult, mainType, ComponentModel);\n      option[mainType] = null;\n      componentsMap.set(mainType, null);\n      componentsCount.set(mainType, 0);\n      var optionsByMainType = [];\n      var cmptsByMainType = [];\n      var cmptsCountByMainType = 0;\n      each(mappingResult, function (resultItem, index) {\n        var componentModel = resultItem.existing;\n        var newCmptOption = resultItem.newOption;\n\n        if (!newCmptOption) {\n          if (componentModel) {\n            componentModel.mergeOption({}, this);\n            componentModel.optionUpdated({}, false);\n          }\n        } else {\n          var ComponentModelClass = ComponentModel.getClass(mainType, resultItem.keyInfo.subType, true);\n\n          if (componentModel && componentModel.constructor === ComponentModelClass) {\n            componentModel.name = resultItem.keyInfo.name;\n            componentModel.mergeOption(newCmptOption, this);\n            componentModel.optionUpdated(newCmptOption, false);\n          } else {\n            var extraOpt = extend({\n              componentIndex: index\n            }, resultItem.keyInfo);\n            componentModel = new ComponentModelClass(newCmptOption, this, this, extraOpt);\n            extend(componentModel, extraOpt);\n\n            if (resultItem.brandNew) {\n              componentModel.__requireNewView = true;\n            }\n\n            componentModel.init(newCmptOption, this, this);\n            componentModel.optionUpdated(null, true);\n          }\n        }\n\n        if (componentModel) {\n          optionsByMainType.push(componentModel.option);\n          cmptsByMainType.push(componentModel);\n          cmptsCountByMainType++;\n        } else {\n          optionsByMainType.push(void 0);\n          cmptsByMainType.push(void 0);\n        }\n      }, this);\n      option[mainType] = optionsByMainType;\n      componentsMap.set(mainType, cmptsByMainType);\n      componentsCount.set(mainType, cmptsCountByMainType);\n\n      if (mainType === 'series') {\n        reCreateSeriesIndices(this);\n      }\n    }\n\n    if (!this._seriesIndices) {\n      reCreateSeriesIndices(this);\n    }\n  };\n\n  GlobalModel.prototype.getOption = function () {\n    var option = clone(this.option);\n    each(option, function (optInMainType, mainType) {\n      if (ComponentModel.hasClass(mainType)) {\n        var opts = modelUtil.normalizeToArray(optInMainType);\n        var realLen = opts.length;\n        var metNonInner = false;\n\n        for (var i = realLen - 1; i >= 0; i--) {\n          if (opts[i] && !modelUtil.isComponentIdInternal(opts[i])) {\n            metNonInner = true;\n          } else {\n            opts[i] = null;\n            !metNonInner && realLen--;\n          }\n        }\n\n        opts.length = realLen;\n        option[mainType] = opts;\n      }\n    });\n    delete option[OPTION_INNER_KEY];\n    return option;\n  };\n\n  GlobalModel.prototype.getTheme = function () {\n    return this._theme;\n  };\n\n  GlobalModel.prototype.getLocaleModel = function () {\n    return this._locale;\n  };\n\n  GlobalModel.prototype.getLocale = function (localePosition) {\n    var locale = this.getLocaleModel();\n    return locale.get(localePosition);\n  };\n\n  GlobalModel.prototype.setUpdatePayload = function (payload) {\n    this._payload = payload;\n  };\n\n  GlobalModel.prototype.getUpdatePayload = function () {\n    return this._payload;\n  };\n\n  GlobalModel.prototype.getComponent = function (mainType, idx) {\n    var list = this._componentsMap.get(mainType);\n\n    if (list) {\n      var cmpt = list[idx || 0];\n\n      if (cmpt) {\n        return cmpt;\n      } else if (idx == null) {\n        for (var i = 0; i < list.length; i++) {\n          if (list[i]) {\n            return list[i];\n          }\n        }\n      }\n    }\n  };\n\n  GlobalModel.prototype.queryComponents = function (condition) {\n    var mainType = condition.mainType;\n\n    if (!mainType) {\n      return [];\n    }\n\n    var index = condition.index;\n    var id = condition.id;\n    var name = condition.name;\n\n    var cmpts = this._componentsMap.get(mainType);\n\n    if (!cmpts || !cmpts.length) {\n      return [];\n    }\n\n    var result;\n\n    if (index != null) {\n      result = [];\n      each(modelUtil.normalizeToArray(index), function (idx) {\n        cmpts[idx] && result.push(cmpts[idx]);\n      });\n    } else if (id != null) {\n      result = queryByIdOrName('id', id, cmpts);\n    } else if (name != null) {\n      result = queryByIdOrName('name', name, cmpts);\n    } else {\n      result = filter(cmpts, function (cmpt) {\n        return !!cmpt;\n      });\n    }\n\n    return filterBySubType(result, condition);\n  };\n\n  GlobalModel.prototype.findComponents = function (condition) {\n    var query = condition.query;\n    var mainType = condition.mainType;\n    var queryCond = getQueryCond(query);\n    var result = queryCond ? this.queryComponents(queryCond) : filter(this._componentsMap.get(mainType), function (cmpt) {\n      return !!cmpt;\n    });\n    return doFilter(filterBySubType(result, condition));\n\n    function getQueryCond(q) {\n      var indexAttr = mainType + 'Index';\n      var idAttr = mainType + 'Id';\n      var nameAttr = mainType + 'Name';\n      return q && (q[indexAttr] != null || q[idAttr] != null || q[nameAttr] != null) ? {\n        mainType: mainType,\n        index: q[indexAttr],\n        id: q[idAttr],\n        name: q[nameAttr]\n      } : null;\n    }\n\n    function doFilter(res) {\n      return condition.filter ? filter(res, condition.filter) : res;\n    }\n  };\n\n  GlobalModel.prototype.eachComponent = function (mainType, cb, context) {\n    var componentsMap = this._componentsMap;\n\n    if (isFunction(mainType)) {\n      var ctxForAll_1 = cb;\n      var cbForAll_1 = mainType;\n      componentsMap.each(function (cmpts, componentType) {\n        for (var i = 0; cmpts && i < cmpts.length; i++) {\n          var cmpt = cmpts[i];\n          cmpt && cbForAll_1.call(ctxForAll_1, componentType, cmpt, cmpt.componentIndex);\n        }\n      });\n    } else {\n      var cmpts = isString(mainType) ? componentsMap.get(mainType) : isObject(mainType) ? this.findComponents(mainType) : null;\n\n      for (var i = 0; cmpts && i < cmpts.length; i++) {\n        var cmpt = cmpts[i];\n        cmpt && cb.call(context, cmpt, cmpt.componentIndex);\n      }\n    }\n  };\n\n  GlobalModel.prototype.getSeriesByName = function (name) {\n    var nameStr = modelUtil.convertOptionIdName(name, null);\n    return filter(this._componentsMap.get('series'), function (oneSeries) {\n      return !!oneSeries && nameStr != null && oneSeries.name === nameStr;\n    });\n  };\n\n  GlobalModel.prototype.getSeriesByIndex = function (seriesIndex) {\n    return this._componentsMap.get('series')[seriesIndex];\n  };\n\n  GlobalModel.prototype.getSeriesByType = function (subType) {\n    return filter(this._componentsMap.get('series'), function (oneSeries) {\n      return !!oneSeries && oneSeries.subType === subType;\n    });\n  };\n\n  GlobalModel.prototype.getSeries = function () {\n    return filter(this._componentsMap.get('series').slice(), function (oneSeries) {\n      return !!oneSeries;\n    });\n  };\n\n  GlobalModel.prototype.getSeriesCount = function () {\n    return this._componentsCount.get('series');\n  };\n\n  GlobalModel.prototype.eachSeries = function (cb, context) {\n    assertSeriesInitialized(this);\n    each(this._seriesIndices, function (rawSeriesIndex) {\n      var series = this._componentsMap.get('series')[rawSeriesIndex];\n\n      cb.call(context, series, rawSeriesIndex);\n    }, this);\n  };\n\n  GlobalModel.prototype.eachRawSeries = function (cb, context) {\n    each(this._componentsMap.get('series'), function (series) {\n      series && cb.call(context, series, series.componentIndex);\n    });\n  };\n\n  GlobalModel.prototype.eachSeriesByType = function (subType, cb, context) {\n    assertSeriesInitialized(this);\n    each(this._seriesIndices, function (rawSeriesIndex) {\n      var series = this._componentsMap.get('series')[rawSeriesIndex];\n\n      if (series.subType === subType) {\n        cb.call(context, series, rawSeriesIndex);\n      }\n    }, this);\n  };\n\n  GlobalModel.prototype.eachRawSeriesByType = function (subType, cb, context) {\n    return each(this.getSeriesByType(subType), cb, context);\n  };\n\n  GlobalModel.prototype.isSeriesFiltered = function (seriesModel) {\n    assertSeriesInitialized(this);\n    return this._seriesIndicesMap.get(seriesModel.componentIndex) == null;\n  };\n\n  GlobalModel.prototype.getCurrentSeriesIndices = function () {\n    return (this._seriesIndices || []).slice();\n  };\n\n  GlobalModel.prototype.filterSeries = function (cb, context) {\n    assertSeriesInitialized(this);\n    var newSeriesIndices = [];\n    each(this._seriesIndices, function (seriesRawIdx) {\n      var series = this._componentsMap.get('series')[seriesRawIdx];\n\n      cb.call(context, series, seriesRawIdx) && newSeriesIndices.push(seriesRawIdx);\n    }, this);\n    this._seriesIndices = newSeriesIndices;\n    this._seriesIndicesMap = createHashMap(newSeriesIndices);\n  };\n\n  GlobalModel.prototype.restoreData = function (payload) {\n    reCreateSeriesIndices(this);\n    var componentsMap = this._componentsMap;\n    var componentTypes = [];\n    componentsMap.each(function (components, componentType) {\n      if (ComponentModel.hasClass(componentType)) {\n        componentTypes.push(componentType);\n      }\n    });\n    ComponentModel.topologicalTravel(componentTypes, ComponentModel.getAllClassMainTypes(), function (componentType) {\n      each(componentsMap.get(componentType), function (component) {\n        if (component && (componentType !== 'series' || !isNotTargetSeries(component, payload))) {\n          component.restoreData();\n        }\n      });\n    });\n  };\n\n  GlobalModel.internalField = function () {\n    reCreateSeriesIndices = function (ecModel) {\n      var seriesIndices = ecModel._seriesIndices = [];\n      each(ecModel._componentsMap.get('series'), function (series) {\n        series && seriesIndices.push(series.componentIndex);\n      });\n      ecModel._seriesIndicesMap = createHashMap(seriesIndices);\n    };\n\n    assertSeriesInitialized = function (ecModel) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (!ecModel._seriesIndices) {\n          throw new Error('Option should contains series.');\n        }\n      }\n    };\n\n    initBase = function (ecModel, baseOption) {\n      ecModel.option = {};\n      ecModel.option[OPTION_INNER_KEY] = OPTION_INNER_VALUE;\n      ecModel._componentsMap = createHashMap({\n        series: []\n      });\n      ecModel._componentsCount = createHashMap();\n      var airaOption = baseOption.aria;\n\n      if (isObject(airaOption) && airaOption.enabled == null) {\n        airaOption.enabled = true;\n      }\n\n      mergeTheme(baseOption, ecModel._theme.option);\n      merge(baseOption, globalDefault, false);\n\n      ecModel._mergeOption(baseOption, null);\n    };\n  }();\n\n  return GlobalModel;\n}(Model);\n\nfunction isNotTargetSeries(seriesModel, payload) {\n  if (payload) {\n    var index = payload.seriesIndex;\n    var id = payload.seriesId;\n    var name_1 = payload.seriesName;\n    return index != null && seriesModel.componentIndex !== index || id != null && seriesModel.id !== id || name_1 != null && seriesModel.name !== name_1;\n  }\n}\n\nfunction mergeTheme(option, theme) {\n  var notMergeColorLayer = option.color && !option.colorLayer;\n  each(theme, function (themeItem, name) {\n    if (name === 'colorLayer' && notMergeColorLayer) {\n      return;\n    }\n\n    if (!ComponentModel.hasClass(name)) {\n      if (typeof themeItem === 'object') {\n        option[name] = !option[name] ? clone(themeItem) : merge(option[name], themeItem, false);\n      } else {\n        if (option[name] == null) {\n          option[name] = themeItem;\n        }\n      }\n    }\n  });\n}\n\nfunction queryByIdOrName(attr, idOrName, cmpts) {\n  if (isArray(idOrName)) {\n    var keyMap_1 = createHashMap();\n    each(idOrName, function (idOrNameItem) {\n      if (idOrNameItem != null) {\n        var idName = modelUtil.convertOptionIdName(idOrNameItem, null);\n        idName != null && keyMap_1.set(idOrNameItem, true);\n      }\n    });\n    return filter(cmpts, function (cmpt) {\n      return cmpt && keyMap_1.get(cmpt[attr]);\n    });\n  } else {\n    var idName_1 = modelUtil.convertOptionIdName(idOrName, null);\n    return filter(cmpts, function (cmpt) {\n      return cmpt && idName_1 != null && cmpt[attr] === idName_1;\n    });\n  }\n}\n\nfunction filterBySubType(components, condition) {\n  return condition.hasOwnProperty('subType') ? filter(components, function (cmpt) {\n    return cmpt && cmpt.subType === condition.subType;\n  }) : components;\n}\n\nfunction normalizeSetOptionInput(opts) {\n  var replaceMergeMainTypeMap = createHashMap();\n  opts && each(modelUtil.normalizeToArray(opts.replaceMerge), function (mainType) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(ComponentModel.hasClass(mainType), '\"' + mainType + '\" is not valid component main type in \"replaceMerge\"');\n    }\n\n    replaceMergeMainTypeMap.set(mainType, true);\n  });\n  return {\n    replaceMergeMainTypeMap: replaceMergeMainTypeMap\n  };\n}\n\nmixin(GlobalModel, PaletteMixin);\nexport default GlobalModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar availableMethods = ['getDom', 'getZr', 'getWidth', 'getHeight', 'getDevicePixelRatio', 'dispatchAction', 'isDisposed', 'on', 'off', 'getDataURL', 'getConnectedDataURL', 'getOption', 'getId', 'updateLabelLayout'];\n\nvar ExtensionAPI = function () {\n  function ExtensionAPI(ecInstance) {\n    zrUtil.each(availableMethods, function (methodName) {\n      this[methodName] = zrUtil.bind(ecInstance[methodName], ecInstance);\n    }, this);\n  }\n\n  return ExtensionAPI;\n}();\n\nexport default ExtensionAPI;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar coordinateSystemCreators = {};\n\nvar CoordinateSystemManager = function () {\n  function CoordinateSystemManager() {\n    this._coordinateSystems = [];\n  }\n\n  CoordinateSystemManager.prototype.create = function (ecModel, api) {\n    var coordinateSystems = [];\n    zrUtil.each(coordinateSystemCreators, function (creater, type) {\n      var list = creater.create(ecModel, api);\n      coordinateSystems = coordinateSystems.concat(list || []);\n    });\n    this._coordinateSystems = coordinateSystems;\n  };\n\n  CoordinateSystemManager.prototype.update = function (ecModel, api) {\n    zrUtil.each(this._coordinateSystems, function (coordSys) {\n      coordSys.update && coordSys.update(ecModel, api);\n    });\n  };\n\n  CoordinateSystemManager.prototype.getCoordinateSystems = function () {\n    return this._coordinateSystems.slice();\n  };\n\n  CoordinateSystemManager.register = function (type, creator) {\n    coordinateSystemCreators[type] = creator;\n  };\n\n  CoordinateSystemManager.get = function (type) {\n    return coordinateSystemCreators[type];\n  };\n\n  return CoordinateSystemManager;\n}();\n\nexport default CoordinateSystemManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { normalizeToArray } from '../util/model';\nimport { each, clone, map, isTypedArray, setAsPrimitive, isArray, isObject } from 'zrender/lib/core/util';\nimport { error } from '../util/log';\nvar QUERY_REG = /^(min|max)?(.+)$/;\n\nvar OptionManager = function () {\n  function OptionManager(api) {\n    this._timelineOptions = [];\n    this._mediaList = [];\n    this._currentMediaIndices = [];\n    this._api = api;\n  }\n\n  OptionManager.prototype.setOption = function (rawOption, optionPreprocessorFuncs, opt) {\n    if (rawOption) {\n      each(normalizeToArray(rawOption.series), function (series) {\n        series && series.data && isTypedArray(series.data) && setAsPrimitive(series.data);\n      });\n      each(normalizeToArray(rawOption.dataset), function (dataset) {\n        dataset && dataset.source && isTypedArray(dataset.source) && setAsPrimitive(dataset.source);\n      });\n    }\n\n    rawOption = clone(rawOption);\n    var optionBackup = this._optionBackup;\n    var newParsedOption = parseRawOption(rawOption, optionPreprocessorFuncs, !optionBackup);\n    this._newBaseOption = newParsedOption.baseOption;\n\n    if (optionBackup) {\n      if (newParsedOption.timelineOptions.length) {\n        optionBackup.timelineOptions = newParsedOption.timelineOptions;\n      }\n\n      if (newParsedOption.mediaList.length) {\n        optionBackup.mediaList = newParsedOption.mediaList;\n      }\n\n      if (newParsedOption.mediaDefault) {\n        optionBackup.mediaDefault = newParsedOption.mediaDefault;\n      }\n    } else {\n      this._optionBackup = newParsedOption;\n    }\n  };\n\n  OptionManager.prototype.mountOption = function (isRecreate) {\n    var optionBackup = this._optionBackup;\n    this._timelineOptions = optionBackup.timelineOptions;\n    this._mediaList = optionBackup.mediaList;\n    this._mediaDefault = optionBackup.mediaDefault;\n    this._currentMediaIndices = [];\n    return clone(isRecreate ? optionBackup.baseOption : this._newBaseOption);\n  };\n\n  OptionManager.prototype.getTimelineOption = function (ecModel) {\n    var option;\n    var timelineOptions = this._timelineOptions;\n\n    if (timelineOptions.length) {\n      var timelineModel = ecModel.getComponent('timeline');\n\n      if (timelineModel) {\n        option = clone(timelineOptions[timelineModel.getCurrentIndex()]);\n      }\n    }\n\n    return option;\n  };\n\n  OptionManager.prototype.getMediaOption = function (ecModel) {\n    var ecWidth = this._api.getWidth();\n\n    var ecHeight = this._api.getHeight();\n\n    var mediaList = this._mediaList;\n    var mediaDefault = this._mediaDefault;\n    var indices = [];\n    var result = [];\n\n    if (!mediaList.length && !mediaDefault) {\n      return result;\n    }\n\n    for (var i = 0, len = mediaList.length; i < len; i++) {\n      if (applyMediaQuery(mediaList[i].query, ecWidth, ecHeight)) {\n        indices.push(i);\n      }\n    }\n\n    if (!indices.length && mediaDefault) {\n      indices = [-1];\n    }\n\n    if (indices.length && !indicesEquals(indices, this._currentMediaIndices)) {\n      result = map(indices, function (index) {\n        return clone(index === -1 ? mediaDefault.option : mediaList[index].option);\n      });\n    }\n\n    this._currentMediaIndices = indices;\n    return result;\n  };\n\n  return OptionManager;\n}();\n\nfunction parseRawOption(rawOption, optionPreprocessorFuncs, isNew) {\n  var mediaList = [];\n  var mediaDefault;\n  var baseOption;\n  var declaredBaseOption = rawOption.baseOption;\n  var timelineOnRoot = rawOption.timeline;\n  var timelineOptionsOnRoot = rawOption.options;\n  var mediaOnRoot = rawOption.media;\n  var hasMedia = !!rawOption.media;\n  var hasTimeline = !!(timelineOptionsOnRoot || timelineOnRoot || declaredBaseOption && declaredBaseOption.timeline);\n\n  if (declaredBaseOption) {\n    baseOption = declaredBaseOption;\n\n    if (!baseOption.timeline) {\n      baseOption.timeline = timelineOnRoot;\n    }\n  } else {\n    if (hasTimeline || hasMedia) {\n      rawOption.options = rawOption.media = null;\n    }\n\n    baseOption = rawOption;\n  }\n\n  if (hasMedia) {\n    if (isArray(mediaOnRoot)) {\n      each(mediaOnRoot, function (singleMedia) {\n        if (process.env.NODE_ENV !== 'production') {\n          if (singleMedia && !singleMedia.option && isObject(singleMedia.query) && isObject(singleMedia.query.option)) {\n            error('Illegal media option. Must be like { media: [ { query: {}, option: {} } ] }');\n          }\n        }\n\n        if (singleMedia && singleMedia.option) {\n          if (singleMedia.query) {\n            mediaList.push(singleMedia);\n          } else if (!mediaDefault) {\n            mediaDefault = singleMedia;\n          }\n        }\n      });\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        error('Illegal media option. Must be an array. Like { media: [ {...}, {...} ] }');\n      }\n    }\n  }\n\n  doPreprocess(baseOption);\n  each(timelineOptionsOnRoot, function (option) {\n    return doPreprocess(option);\n  });\n  each(mediaList, function (media) {\n    return doPreprocess(media.option);\n  });\n\n  function doPreprocess(option) {\n    each(optionPreprocessorFuncs, function (preProcess) {\n      preProcess(option, isNew);\n    });\n  }\n\n  return {\n    baseOption: baseOption,\n    timelineOptions: timelineOptionsOnRoot || [],\n    mediaDefault: mediaDefault,\n    mediaList: mediaList\n  };\n}\n\nfunction applyMediaQuery(query, ecWidth, ecHeight) {\n  var realMap = {\n    width: ecWidth,\n    height: ecHeight,\n    aspectratio: ecWidth / ecHeight\n  };\n  var applicatable = true;\n  each(query, function (value, attr) {\n    var matched = attr.match(QUERY_REG);\n\n    if (!matched || !matched[1] || !matched[2]) {\n      return;\n    }\n\n    var operator = matched[1];\n    var realAttr = matched[2].toLowerCase();\n\n    if (!compare(realMap[realAttr], value, operator)) {\n      applicatable = false;\n    }\n  });\n  return applicatable;\n}\n\nfunction compare(real, expect, operator) {\n  if (operator === 'min') {\n    return real >= expect;\n  } else if (operator === 'max') {\n    return real <= expect;\n  } else {\n    return real === expect;\n  }\n}\n\nfunction indicesEquals(indices1, indices2) {\n  return indices1.join(',') === indices2.join(',');\n}\n\nexport default OptionManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nimport { deprecateLog, deprecateReplaceLog } from '../../util/log';\nvar each = zrUtil.each;\nvar isObject = zrUtil.isObject;\nvar POSSIBLE_STYLES = ['areaStyle', 'lineStyle', 'nodeStyle', 'linkStyle', 'chordStyle', 'label', 'labelLine'];\n\nfunction compatEC2ItemStyle(opt) {\n  var itemStyleOpt = opt && opt.itemStyle;\n\n  if (!itemStyleOpt) {\n    return;\n  }\n\n  for (var i = 0, len = POSSIBLE_STYLES.length; i < len; i++) {\n    var styleName = POSSIBLE_STYLES[i];\n    var normalItemStyleOpt = itemStyleOpt.normal;\n    var emphasisItemStyleOpt = itemStyleOpt.emphasis;\n\n    if (normalItemStyleOpt && normalItemStyleOpt[styleName]) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateReplaceLog(\"itemStyle.normal.\" + styleName, styleName);\n      }\n\n      opt[styleName] = opt[styleName] || {};\n\n      if (!opt[styleName].normal) {\n        opt[styleName].normal = normalItemStyleOpt[styleName];\n      } else {\n        zrUtil.merge(opt[styleName].normal, normalItemStyleOpt[styleName]);\n      }\n\n      normalItemStyleOpt[styleName] = null;\n    }\n\n    if (emphasisItemStyleOpt && emphasisItemStyleOpt[styleName]) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateReplaceLog(\"itemStyle.emphasis.\" + styleName, \"emphasis.\" + styleName);\n      }\n\n      opt[styleName] = opt[styleName] || {};\n\n      if (!opt[styleName].emphasis) {\n        opt[styleName].emphasis = emphasisItemStyleOpt[styleName];\n      } else {\n        zrUtil.merge(opt[styleName].emphasis, emphasisItemStyleOpt[styleName]);\n      }\n\n      emphasisItemStyleOpt[styleName] = null;\n    }\n  }\n}\n\nfunction convertNormalEmphasis(opt, optType, useExtend) {\n  if (opt && opt[optType] && (opt[optType].normal || opt[optType].emphasis)) {\n    var normalOpt = opt[optType].normal;\n    var emphasisOpt = opt[optType].emphasis;\n\n    if (normalOpt) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateLog(\"'normal' hierarchy in \" + optType + \" has been removed since 4.0. All style properties are configured in \" + optType + \" directly now.\");\n      }\n\n      if (useExtend) {\n        opt[optType].normal = opt[optType].emphasis = null;\n        zrUtil.defaults(opt[optType], normalOpt);\n      } else {\n        opt[optType] = normalOpt;\n      }\n    }\n\n    if (emphasisOpt) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateLog(optType + \".emphasis has been changed to emphasis.\" + optType + \" since 4.0\");\n      }\n\n      opt.emphasis = opt.emphasis || {};\n      opt.emphasis[optType] = emphasisOpt;\n\n      if (emphasisOpt.focus) {\n        opt.emphasis.focus = emphasisOpt.focus;\n      }\n\n      if (emphasisOpt.blurScope) {\n        opt.emphasis.blurScope = emphasisOpt.blurScope;\n      }\n    }\n  }\n}\n\nfunction removeEC3NormalStatus(opt) {\n  convertNormalEmphasis(opt, 'itemStyle');\n  convertNormalEmphasis(opt, 'lineStyle');\n  convertNormalEmphasis(opt, 'areaStyle');\n  convertNormalEmphasis(opt, 'label');\n  convertNormalEmphasis(opt, 'labelLine');\n  convertNormalEmphasis(opt, 'upperLabel');\n  convertNormalEmphasis(opt, 'edgeLabel');\n}\n\nfunction compatTextStyle(opt, propName) {\n  var labelOptSingle = isObject(opt) && opt[propName];\n  var textStyle = isObject(labelOptSingle) && labelOptSingle.textStyle;\n\n  if (textStyle) {\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateLog(\"textStyle hierarchy in \" + propName + \" has been removed since 4.0. All textStyle properties are configured in \" + propName + \" directly now.\");\n    }\n\n    for (var i = 0, len = modelUtil.TEXT_STYLE_OPTIONS.length; i < len; i++) {\n      var textPropName = modelUtil.TEXT_STYLE_OPTIONS[i];\n\n      if (textStyle.hasOwnProperty(textPropName)) {\n        labelOptSingle[textPropName] = textStyle[textPropName];\n      }\n    }\n  }\n}\n\nfunction compatEC3CommonStyles(opt) {\n  if (opt) {\n    removeEC3NormalStatus(opt);\n    compatTextStyle(opt, 'label');\n    opt.emphasis && compatTextStyle(opt.emphasis, 'label');\n  }\n}\n\nfunction processSeries(seriesOpt) {\n  if (!isObject(seriesOpt)) {\n    return;\n  }\n\n  compatEC2ItemStyle(seriesOpt);\n  removeEC3NormalStatus(seriesOpt);\n  compatTextStyle(seriesOpt, 'label');\n  compatTextStyle(seriesOpt, 'upperLabel');\n  compatTextStyle(seriesOpt, 'edgeLabel');\n\n  if (seriesOpt.emphasis) {\n    compatTextStyle(seriesOpt.emphasis, 'label');\n    compatTextStyle(seriesOpt.emphasis, 'upperLabel');\n    compatTextStyle(seriesOpt.emphasis, 'edgeLabel');\n  }\n\n  var markPoint = seriesOpt.markPoint;\n\n  if (markPoint) {\n    compatEC2ItemStyle(markPoint);\n    compatEC3CommonStyles(markPoint);\n  }\n\n  var markLine = seriesOpt.markLine;\n\n  if (markLine) {\n    compatEC2ItemStyle(markLine);\n    compatEC3CommonStyles(markLine);\n  }\n\n  var markArea = seriesOpt.markArea;\n\n  if (markArea) {\n    compatEC3CommonStyles(markArea);\n  }\n\n  var data = seriesOpt.data;\n\n  if (seriesOpt.type === 'graph') {\n    data = data || seriesOpt.nodes;\n    var edgeData = seriesOpt.links || seriesOpt.edges;\n\n    if (edgeData && !zrUtil.isTypedArray(edgeData)) {\n      for (var i = 0; i < edgeData.length; i++) {\n        compatEC3CommonStyles(edgeData[i]);\n      }\n    }\n\n    zrUtil.each(seriesOpt.categories, function (opt) {\n      removeEC3NormalStatus(opt);\n    });\n  }\n\n  if (data && !zrUtil.isTypedArray(data)) {\n    for (var i = 0; i < data.length; i++) {\n      compatEC3CommonStyles(data[i]);\n    }\n  }\n\n  markPoint = seriesOpt.markPoint;\n\n  if (markPoint && markPoint.data) {\n    var mpData = markPoint.data;\n\n    for (var i = 0; i < mpData.length; i++) {\n      compatEC3CommonStyles(mpData[i]);\n    }\n  }\n\n  markLine = seriesOpt.markLine;\n\n  if (markLine && markLine.data) {\n    var mlData = markLine.data;\n\n    for (var i = 0; i < mlData.length; i++) {\n      if (zrUtil.isArray(mlData[i])) {\n        compatEC3CommonStyles(mlData[i][0]);\n        compatEC3CommonStyles(mlData[i][1]);\n      } else {\n        compatEC3CommonStyles(mlData[i]);\n      }\n    }\n  }\n\n  if (seriesOpt.type === 'gauge') {\n    compatTextStyle(seriesOpt, 'axisLabel');\n    compatTextStyle(seriesOpt, 'title');\n    compatTextStyle(seriesOpt, 'detail');\n  } else if (seriesOpt.type === 'treemap') {\n    convertNormalEmphasis(seriesOpt.breadcrumb, 'itemStyle');\n    zrUtil.each(seriesOpt.levels, function (opt) {\n      removeEC3NormalStatus(opt);\n    });\n  } else if (seriesOpt.type === 'tree') {\n    removeEC3NormalStatus(seriesOpt.leaves);\n  }\n}\n\nfunction toArr(o) {\n  return zrUtil.isArray(o) ? o : o ? [o] : [];\n}\n\nfunction toObj(o) {\n  return (zrUtil.isArray(o) ? o[0] : o) || {};\n}\n\nexport default function globalCompatStyle(option, isTheme) {\n  each(toArr(option.series), function (seriesOpt) {\n    isObject(seriesOpt) && processSeries(seriesOpt);\n  });\n  var axes = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'parallelAxis', 'radar'];\n  isTheme && axes.push('valueAxis', 'categoryAxis', 'logAxis', 'timeAxis');\n  each(axes, function (axisName) {\n    each(toArr(option[axisName]), function (axisOpt) {\n      if (axisOpt) {\n        compatTextStyle(axisOpt, 'axisLabel');\n        compatTextStyle(axisOpt.axisPointer, 'label');\n      }\n    });\n  });\n  each(toArr(option.parallel), function (parallelOpt) {\n    var parallelAxisDefault = parallelOpt && parallelOpt.parallelAxisDefault;\n    compatTextStyle(parallelAxisDefault, 'axisLabel');\n    compatTextStyle(parallelAxisDefault && parallelAxisDefault.axisPointer, 'label');\n  });\n  each(toArr(option.calendar), function (calendarOpt) {\n    convertNormalEmphasis(calendarOpt, 'itemStyle');\n    compatTextStyle(calendarOpt, 'dayLabel');\n    compatTextStyle(calendarOpt, 'monthLabel');\n    compatTextStyle(calendarOpt, 'yearLabel');\n  });\n  each(toArr(option.radar), function (radarOpt) {\n    compatTextStyle(radarOpt, 'name');\n\n    if (radarOpt.name && radarOpt.axisName == null) {\n      radarOpt.axisName = radarOpt.name;\n      delete radarOpt.name;\n\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateLog('name property in radar component has been changed to axisName');\n      }\n    }\n\n    if (radarOpt.nameGap != null && radarOpt.axisNameGap == null) {\n      radarOpt.axisNameGap = radarOpt.nameGap;\n      delete radarOpt.nameGap;\n\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateLog('nameGap property in radar component has been changed to axisNameGap');\n      }\n    }\n  });\n  each(toArr(option.geo), function (geoOpt) {\n    if (isObject(geoOpt)) {\n      compatEC3CommonStyles(geoOpt);\n      each(toArr(geoOpt.regions), function (regionObj) {\n        compatEC3CommonStyles(regionObj);\n      });\n    }\n  });\n  each(toArr(option.timeline), function (timelineOpt) {\n    compatEC3CommonStyles(timelineOpt);\n    convertNormalEmphasis(timelineOpt, 'label');\n    convertNormalEmphasis(timelineOpt, 'itemStyle');\n    convertNormalEmphasis(timelineOpt, 'controlStyle', true);\n    var data = timelineOpt.data;\n    zrUtil.isArray(data) && zrUtil.each(data, function (item) {\n      if (zrUtil.isObject(item)) {\n        convertNormalEmphasis(item, 'label');\n        convertNormalEmphasis(item, 'itemStyle');\n      }\n    });\n  });\n  each(toArr(option.toolbox), function (toolboxOpt) {\n    convertNormalEmphasis(toolboxOpt, 'iconStyle');\n    each(toolboxOpt.feature, function (featureOpt) {\n      convertNormalEmphasis(featureOpt, 'iconStyle');\n    });\n  });\n  compatTextStyle(toObj(option.axisPointer), 'label');\n  compatTextStyle(toObj(option.tooltip).axisPointer, 'label');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, isArray, isObject, isTypedArray, defaults } from 'zrender/lib/core/util';\nimport compatStyle from './helper/compatStyle';\nimport { normalizeToArray } from '../util/model';\nimport { deprecateLog, deprecateReplaceLog } from '../util/log';\n\nfunction get(opt, path) {\n  var pathArr = path.split(',');\n  var obj = opt;\n\n  for (var i = 0; i < pathArr.length; i++) {\n    obj = obj && obj[pathArr[i]];\n\n    if (obj == null) {\n      break;\n    }\n  }\n\n  return obj;\n}\n\nfunction set(opt, path, val, overwrite) {\n  var pathArr = path.split(',');\n  var obj = opt;\n  var key;\n  var i = 0;\n\n  for (; i < pathArr.length - 1; i++) {\n    key = pathArr[i];\n\n    if (obj[key] == null) {\n      obj[key] = {};\n    }\n\n    obj = obj[key];\n  }\n\n  if (overwrite || obj[pathArr[i]] == null) {\n    obj[pathArr[i]] = val;\n  }\n}\n\nfunction compatLayoutProperties(option) {\n  option && each(LAYOUT_PROPERTIES, function (prop) {\n    if (prop[0] in option && !(prop[1] in option)) {\n      option[prop[1]] = option[prop[0]];\n    }\n  });\n}\n\nvar LAYOUT_PROPERTIES = [['x', 'left'], ['y', 'top'], ['x2', 'right'], ['y2', 'bottom']];\nvar COMPATITABLE_COMPONENTS = ['grid', 'geo', 'parallel', 'legend', 'toolbox', 'title', 'visualMap', 'dataZoom', 'timeline'];\nvar BAR_ITEM_STYLE_MAP = [['borderRadius', 'barBorderRadius'], ['borderColor', 'barBorderColor'], ['borderWidth', 'barBorderWidth']];\n\nfunction compatBarItemStyle(option) {\n  var itemStyle = option && option.itemStyle;\n\n  if (itemStyle) {\n    for (var i = 0; i < BAR_ITEM_STYLE_MAP.length; i++) {\n      var oldName = BAR_ITEM_STYLE_MAP[i][1];\n      var newName = BAR_ITEM_STYLE_MAP[i][0];\n\n      if (itemStyle[oldName] != null) {\n        itemStyle[newName] = itemStyle[oldName];\n\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog(oldName, newName);\n        }\n      }\n    }\n  }\n}\n\nfunction compatPieLabel(option) {\n  if (!option) {\n    return;\n  }\n\n  if (option.alignTo === 'edge' && option.margin != null && option.edgeDistance == null) {\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateReplaceLog('label.margin', 'label.edgeDistance', 'pie');\n    }\n\n    option.edgeDistance = option.margin;\n  }\n}\n\nfunction compatSunburstState(option) {\n  if (!option) {\n    return;\n  }\n\n  if (option.downplay && !option.blur) {\n    option.blur = option.downplay;\n\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateReplaceLog('downplay', 'blur', 'sunburst');\n    }\n  }\n}\n\nfunction compatGraphFocus(option) {\n  if (!option) {\n    return;\n  }\n\n  if (option.focusNodeAdjacency != null) {\n    option.emphasis = option.emphasis || {};\n\n    if (option.emphasis.focus == null) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateReplaceLog('focusNodeAdjacency', 'emphasis: { focus: \\'adjacency\\'}', 'graph/sankey');\n      }\n\n      option.emphasis.focus = 'adjacency';\n    }\n  }\n}\n\nfunction traverseTree(data, cb) {\n  if (data) {\n    for (var i = 0; i < data.length; i++) {\n      cb(data[i]);\n      data[i] && traverseTree(data[i].children, cb);\n    }\n  }\n}\n\nexport default function globalBackwardCompat(option, isTheme) {\n  compatStyle(option, isTheme);\n  option.series = normalizeToArray(option.series);\n  each(option.series, function (seriesOpt) {\n    if (!isObject(seriesOpt)) {\n      return;\n    }\n\n    var seriesType = seriesOpt.type;\n\n    if (seriesType === 'line') {\n      if (seriesOpt.clipOverflow != null) {\n        seriesOpt.clip = seriesOpt.clipOverflow;\n\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog('clipOverflow', 'clip', 'line');\n        }\n      }\n    } else if (seriesType === 'pie' || seriesType === 'gauge') {\n      if (seriesOpt.clockWise != null) {\n        seriesOpt.clockwise = seriesOpt.clockWise;\n\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog('clockWise', 'clockwise');\n        }\n      }\n\n      compatPieLabel(seriesOpt.label);\n      var data = seriesOpt.data;\n\n      if (data && !isTypedArray(data)) {\n        for (var i = 0; i < data.length; i++) {\n          compatPieLabel(data[i]);\n        }\n      }\n\n      if (seriesOpt.hoverOffset != null) {\n        seriesOpt.emphasis = seriesOpt.emphasis || {};\n\n        if (seriesOpt.emphasis.scaleSize = null) {\n          if (process.env.NODE_ENV !== 'production') {\n            deprecateReplaceLog('hoverOffset', 'emphasis.scaleSize');\n          }\n\n          seriesOpt.emphasis.scaleSize = seriesOpt.hoverOffset;\n        }\n      }\n    } else if (seriesType === 'gauge') {\n      var pointerColor = get(seriesOpt, 'pointer.color');\n      pointerColor != null && set(seriesOpt, 'itemStyle.color', pointerColor);\n    } else if (seriesType === 'bar') {\n      compatBarItemStyle(seriesOpt);\n      compatBarItemStyle(seriesOpt.backgroundStyle);\n      compatBarItemStyle(seriesOpt.emphasis);\n      var data = seriesOpt.data;\n\n      if (data && !isTypedArray(data)) {\n        for (var i = 0; i < data.length; i++) {\n          if (typeof data[i] === 'object') {\n            compatBarItemStyle(data[i]);\n            compatBarItemStyle(data[i] && data[i].emphasis);\n          }\n        }\n      }\n    } else if (seriesType === 'sunburst') {\n      var highlightPolicy = seriesOpt.highlightPolicy;\n\n      if (highlightPolicy) {\n        seriesOpt.emphasis = seriesOpt.emphasis || {};\n\n        if (!seriesOpt.emphasis.focus) {\n          seriesOpt.emphasis.focus = highlightPolicy;\n\n          if (process.env.NODE_ENV !== 'production') {\n            deprecateReplaceLog('highlightPolicy', 'emphasis.focus', 'sunburst');\n          }\n        }\n      }\n\n      compatSunburstState(seriesOpt);\n      traverseTree(seriesOpt.data, compatSunburstState);\n    } else if (seriesType === 'graph' || seriesType === 'sankey') {\n      compatGraphFocus(seriesOpt);\n    } else if (seriesType === 'map') {\n      if (seriesOpt.mapType && !seriesOpt.map) {\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog('mapType', 'map', 'map');\n        }\n\n        seriesOpt.map = seriesOpt.mapType;\n      }\n\n      if (seriesOpt.mapLocation) {\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateLog('`mapLocation` is not used anymore.');\n        }\n\n        defaults(seriesOpt, seriesOpt.mapLocation);\n      }\n    }\n\n    if (seriesOpt.hoverAnimation != null) {\n      seriesOpt.emphasis = seriesOpt.emphasis || {};\n\n      if (seriesOpt.emphasis && seriesOpt.emphasis.scale == null) {\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog('hoverAnimation', 'emphasis.scale');\n        }\n\n        seriesOpt.emphasis.scale = seriesOpt.hoverAnimation;\n      }\n    }\n\n    compatLayoutProperties(seriesOpt);\n  });\n\n  if (option.dataRange) {\n    option.visualMap = option.dataRange;\n  }\n\n  each(COMPATITABLE_COMPONENTS, function (componentName) {\n    var options = option[componentName];\n\n    if (options) {\n      if (!isArray(options)) {\n        options = [options];\n      }\n\n      each(options, function (option) {\n        compatLayoutProperties(option);\n      });\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, each } from 'zrender/lib/core/util';\nexport default function dataStack(ecModel) {\n  var stackInfoMap = createHashMap();\n  ecModel.eachSeries(function (seriesModel) {\n    var stack = seriesModel.get('stack');\n\n    if (stack) {\n      var stackInfoList = stackInfoMap.get(stack) || stackInfoMap.set(stack, []);\n      var data = seriesModel.getData();\n      var stackInfo = {\n        stackResultDimension: data.getCalculationInfo('stackResultDimension'),\n        stackedOverDimension: data.getCalculationInfo('stackedOverDimension'),\n        stackedDimension: data.getCalculationInfo('stackedDimension'),\n        stackedByDimension: data.getCalculationInfo('stackedByDimension'),\n        isStackedByIndex: data.getCalculationInfo('isStackedByIndex'),\n        data: data,\n        seriesModel: seriesModel\n      };\n\n      if (!stackInfo.stackedDimension || !(stackInfo.isStackedByIndex || stackInfo.stackedByDimension)) {\n        return;\n      }\n\n      stackInfoList.length && data.setCalculationInfo('stackedOnSeries', stackInfoList[stackInfoList.length - 1].seriesModel);\n      stackInfoList.push(stackInfo);\n    }\n  });\n  stackInfoMap.each(calculateStack);\n}\n\nfunction calculateStack(stackInfoList) {\n  each(stackInfoList, function (targetStackInfo, idxInStack) {\n    var resultVal = [];\n    var resultNaN = [NaN, NaN];\n    var dims = [targetStackInfo.stackResultDimension, targetStackInfo.stackedOverDimension];\n    var targetData = targetStackInfo.data;\n    var isStackedByIndex = targetStackInfo.isStackedByIndex;\n    var newData = targetData.map(dims, function (v0, v1, dataIndex) {\n      var sum = targetData.get(targetStackInfo.stackedDimension, dataIndex);\n\n      if (isNaN(sum)) {\n        return resultNaN;\n      }\n\n      var byValue;\n      var stackedDataRawIndex;\n\n      if (isStackedByIndex) {\n        stackedDataRawIndex = targetData.getRawIndex(dataIndex);\n      } else {\n        byValue = targetData.get(targetStackInfo.stackedByDimension, dataIndex);\n      }\n\n      var stackedOver = NaN;\n\n      for (var j = idxInStack - 1; j >= 0; j--) {\n        var stackInfo = stackInfoList[j];\n\n        if (!isStackedByIndex) {\n          stackedDataRawIndex = stackInfo.data.rawIndexOf(stackInfo.stackedByDimension, byValue);\n        }\n\n        if (stackedDataRawIndex >= 0) {\n          var val = stackInfo.data.getByRawIndex(stackInfo.stackResultDimension, stackedDataRawIndex);\n\n          if (sum >= 0 && val > 0 || sum <= 0 && val < 0) {\n            sum += val;\n            stackedOver = val;\n            break;\n          }\n        }\n      }\n\n      resultVal[0] = sum;\n      resultVal[1] = stackedOver;\n      return resultVal;\n    });\n    targetData.hostModel.setData(newData);\n    targetStackInfo.data = newData;\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isTypedArray, clone, createHashMap, isArray, isObject, isArrayLike, hasOwn, assert, each, map, isNumber, isString } from 'zrender/lib/core/util';\nimport { SOURCE_FORMAT_ORIGINAL, SERIES_LAYOUT_BY_COLUMN, SOURCE_FORMAT_UNKNOWN, SOURCE_FORMAT_KEYED_COLUMNS, SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ARRAY_ROWS, SOURCE_FORMAT_OBJECT_ROWS, SERIES_LAYOUT_BY_ROW } from '../util/types';\nimport { getDataItemValue } from '../util/model';\n;\n\nvar SourceImpl = function () {\n  function SourceImpl(fields) {\n    this.data = fields.data || (fields.sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS ? {} : []);\n    this.sourceFormat = fields.sourceFormat || SOURCE_FORMAT_UNKNOWN;\n    this.seriesLayoutBy = fields.seriesLayoutBy || SERIES_LAYOUT_BY_COLUMN;\n    this.startIndex = fields.startIndex || 0;\n    this.dimensionsDefine = fields.dimensionsDefine;\n    this.dimensionsDetectedCount = fields.dimensionsDetectedCount;\n    this.encodeDefine = fields.encodeDefine;\n    this.metaRawOption = fields.metaRawOption;\n  }\n\n  return SourceImpl;\n}();\n\nexport function isSourceInstance(val) {\n  return val instanceof SourceImpl;\n}\nexport function createSource(sourceData, thisMetaRawOption, sourceFormat, encodeDefine) {\n  sourceFormat = sourceFormat || detectSourceFormat(sourceData);\n  var seriesLayoutBy = thisMetaRawOption.seriesLayoutBy;\n  var determined = determineSourceDimensions(sourceData, sourceFormat, seriesLayoutBy, thisMetaRawOption.sourceHeader, thisMetaRawOption.dimensions);\n  var source = new SourceImpl({\n    data: sourceData,\n    sourceFormat: sourceFormat,\n    seriesLayoutBy: seriesLayoutBy,\n    dimensionsDefine: determined.dimensionsDefine,\n    startIndex: determined.startIndex,\n    dimensionsDetectedCount: determined.dimensionsDetectedCount,\n    encodeDefine: makeEncodeDefine(encodeDefine),\n    metaRawOption: clone(thisMetaRawOption)\n  });\n  return source;\n}\nexport function createSourceFromSeriesDataOption(data) {\n  return new SourceImpl({\n    data: data,\n    sourceFormat: isTypedArray(data) ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL\n  });\n}\nexport function cloneSourceShallow(source) {\n  return new SourceImpl({\n    data: source.data,\n    sourceFormat: source.sourceFormat,\n    seriesLayoutBy: source.seriesLayoutBy,\n    dimensionsDefine: clone(source.dimensionsDefine),\n    startIndex: source.startIndex,\n    dimensionsDetectedCount: source.dimensionsDetectedCount,\n    encodeDefine: makeEncodeDefine(source.encodeDefine)\n  });\n}\n\nfunction makeEncodeDefine(encodeDefine) {\n  return encodeDefine ? createHashMap(encodeDefine) : null;\n}\n\nexport function detectSourceFormat(data) {\n  var sourceFormat = SOURCE_FORMAT_UNKNOWN;\n\n  if (isTypedArray(data)) {\n    sourceFormat = SOURCE_FORMAT_TYPED_ARRAY;\n  } else if (isArray(data)) {\n    if (data.length === 0) {\n      sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\n    }\n\n    for (var i = 0, len = data.length; i < len; i++) {\n      var item = data[i];\n\n      if (item == null) {\n        continue;\n      } else if (isArray(item)) {\n        sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\n        break;\n      } else if (isObject(item)) {\n        sourceFormat = SOURCE_FORMAT_OBJECT_ROWS;\n        break;\n      }\n    }\n  } else if (isObject(data)) {\n    for (var key in data) {\n      if (hasOwn(data, key) && isArrayLike(data[key])) {\n        sourceFormat = SOURCE_FORMAT_KEYED_COLUMNS;\n        break;\n      }\n    }\n  }\n\n  return sourceFormat;\n}\n\nfunction determineSourceDimensions(data, sourceFormat, seriesLayoutBy, sourceHeader, dimensionsDefine) {\n  var dimensionsDetectedCount;\n  var startIndex;\n\n  if (!data) {\n    return {\n      dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\n      startIndex: startIndex,\n      dimensionsDetectedCount: dimensionsDetectedCount\n    };\n  }\n\n  if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n    var dataArrayRows = data;\n\n    if (sourceHeader === 'auto' || sourceHeader == null) {\n      arrayRowsTravelFirst(function (val) {\n        if (val != null && val !== '-') {\n          if (isString(val)) {\n            startIndex == null && (startIndex = 1);\n          } else {\n            startIndex = 0;\n          }\n        }\n      }, seriesLayoutBy, dataArrayRows, 10);\n    } else {\n      startIndex = isNumber(sourceHeader) ? sourceHeader : sourceHeader ? 1 : 0;\n    }\n\n    if (!dimensionsDefine && startIndex === 1) {\n      dimensionsDefine = [];\n      arrayRowsTravelFirst(function (val, index) {\n        dimensionsDefine[index] = val != null ? val + '' : '';\n      }, seriesLayoutBy, dataArrayRows, Infinity);\n    }\n\n    dimensionsDetectedCount = dimensionsDefine ? dimensionsDefine.length : seriesLayoutBy === SERIES_LAYOUT_BY_ROW ? dataArrayRows.length : dataArrayRows[0] ? dataArrayRows[0].length : null;\n  } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n    if (!dimensionsDefine) {\n      dimensionsDefine = objectRowsCollectDimensions(data);\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n    if (!dimensionsDefine) {\n      dimensionsDefine = [];\n      each(data, function (colArr, key) {\n        dimensionsDefine.push(key);\n      });\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n    var value0 = getDataItemValue(data[0]);\n    dimensionsDetectedCount = isArray(value0) && value0.length || 1;\n  } else if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!!dimensionsDefine, 'dimensions must be given if data is TypedArray.');\n    }\n  }\n\n  return {\n    startIndex: startIndex,\n    dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\n    dimensionsDetectedCount: dimensionsDetectedCount\n  };\n}\n\nfunction objectRowsCollectDimensions(data) {\n  var firstIndex = 0;\n  var obj;\n\n  while (firstIndex < data.length && !(obj = data[firstIndex++])) {}\n\n  if (obj) {\n    var dimensions_1 = [];\n    each(obj, function (value, key) {\n      dimensions_1.push(key);\n    });\n    return dimensions_1;\n  }\n}\n\nfunction normalizeDimensionsOption(dimensionsDefine) {\n  if (!dimensionsDefine) {\n    return;\n  }\n\n  var nameMap = createHashMap();\n  return map(dimensionsDefine, function (rawItem, index) {\n    rawItem = isObject(rawItem) ? rawItem : {\n      name: rawItem\n    };\n    var item = {\n      name: rawItem.name,\n      displayName: rawItem.displayName,\n      type: rawItem.type\n    };\n\n    if (item.name == null) {\n      return item;\n    }\n\n    item.name += '';\n\n    if (item.displayName == null) {\n      item.displayName = item.name;\n    }\n\n    var exist = nameMap.get(item.name);\n\n    if (!exist) {\n      nameMap.set(item.name, {\n        count: 1\n      });\n    } else {\n      item.name += '-' + exist.count++;\n    }\n\n    return item;\n  });\n}\n\nfunction arrayRowsTravelFirst(cb, seriesLayoutBy, data, maxLoop) {\n  if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\n    for (var i = 0; i < data.length && i < maxLoop; i++) {\n      cb(data[i] ? data[i][0] : null, i);\n    }\n  } else {\n    var value0 = data[0] || [];\n\n    for (var i = 0; i < value0.length && i < maxLoop; i++) {\n      cb(value0[i], i);\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar _a, _b, _c;\n\nimport { isTypedArray, extend, assert, each, isObject, bind } from 'zrender/lib/core/util';\nimport { getDataItemValue } from '../../util/model';\nimport { createSourceFromSeriesDataOption, isSourceInstance } from '../Source';\nimport { SOURCE_FORMAT_ORIGINAL, SOURCE_FORMAT_OBJECT_ROWS, SOURCE_FORMAT_KEYED_COLUMNS, SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ARRAY_ROWS, SERIES_LAYOUT_BY_COLUMN, SERIES_LAYOUT_BY_ROW } from '../../util/types';\nvar providerMethods;\nvar mountMethods;\n\nvar DefaultDataProvider = function () {\n  function DefaultDataProvider(sourceParam, dimSize) {\n    var source = !isSourceInstance(sourceParam) ? createSourceFromSeriesDataOption(sourceParam) : sourceParam;\n    this._source = source;\n    var data = this._data = source.data;\n\n    if (source.sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (dimSize == null) {\n          throw new Error('Typed array data must specify dimension size');\n        }\n      }\n\n      this._offset = 0;\n      this._dimSize = dimSize;\n      this._data = data;\n    }\n\n    mountMethods(this, data, source);\n  }\n\n  DefaultDataProvider.prototype.getSource = function () {\n    return this._source;\n  };\n\n  DefaultDataProvider.prototype.count = function () {\n    return 0;\n  };\n\n  DefaultDataProvider.prototype.getItem = function (idx, out) {\n    return;\n  };\n\n  DefaultDataProvider.prototype.appendData = function (newData) {};\n\n  DefaultDataProvider.prototype.clean = function () {};\n\n  DefaultDataProvider.protoInitialize = function () {\n    var proto = DefaultDataProvider.prototype;\n    proto.pure = false;\n    proto.persistent = true;\n  }();\n\n  DefaultDataProvider.internalField = function () {\n    var _a;\n\n    mountMethods = function (provider, data, source) {\n      var sourceFormat = source.sourceFormat;\n      var seriesLayoutBy = source.seriesLayoutBy;\n      var startIndex = source.startIndex;\n      var dimsDef = source.dimensionsDefine;\n      var methods = providerMethods[getMethodMapKey(sourceFormat, seriesLayoutBy)];\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(methods, 'Invalide sourceFormat: ' + sourceFormat);\n      }\n\n      extend(provider, methods);\n\n      if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n        provider.getItem = getItemForTypedArray;\n        provider.count = countForTypedArray;\n        provider.fillStorage = fillStorageForTypedArray;\n      } else {\n        var rawItemGetter = getRawSourceItemGetter(sourceFormat, seriesLayoutBy);\n        provider.getItem = bind(rawItemGetter, null, data, startIndex, dimsDef);\n        var rawCounter = getRawSourceDataCounter(sourceFormat, seriesLayoutBy);\n        provider.count = bind(rawCounter, null, data, startIndex, dimsDef);\n      }\n    };\n\n    var getItemForTypedArray = function (idx, out) {\n      idx = idx - this._offset;\n      out = out || [];\n      var data = this._data;\n      var dimSize = this._dimSize;\n      var offset = dimSize * idx;\n\n      for (var i = 0; i < dimSize; i++) {\n        out[i] = data[offset + i];\n      }\n\n      return out;\n    };\n\n    var fillStorageForTypedArray = function (start, end, storage, extent) {\n      var data = this._data;\n      var dimSize = this._dimSize;\n\n      for (var dim = 0; dim < dimSize; dim++) {\n        var dimExtent = extent[dim];\n        var min = dimExtent[0] == null ? Infinity : dimExtent[0];\n        var max = dimExtent[1] == null ? -Infinity : dimExtent[1];\n        var count = end - start;\n        var arr = storage[dim];\n\n        for (var i = 0; i < count; i++) {\n          var val = data[i * dimSize + dim];\n          arr[start + i] = val;\n          val < min && (min = val);\n          val > max && (max = val);\n        }\n\n        dimExtent[0] = min;\n        dimExtent[1] = max;\n      }\n    };\n\n    var countForTypedArray = function () {\n      return this._data ? this._data.length / this._dimSize : 0;\n    };\n\n    providerMethods = (_a = {}, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = {\n      pure: true,\n      appendData: appendDataSimply\n    }, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = {\n      pure: true,\n      appendData: function () {\n        throw new Error('Do not support appendData when set seriesLayoutBy: \"row\".');\n      }\n    }, _a[SOURCE_FORMAT_OBJECT_ROWS] = {\n      pure: true,\n      appendData: appendDataSimply\n    }, _a[SOURCE_FORMAT_KEYED_COLUMNS] = {\n      pure: true,\n      appendData: function (newData) {\n        var data = this._data;\n        each(newData, function (newCol, key) {\n          var oldCol = data[key] || (data[key] = []);\n\n          for (var i = 0; i < (newCol || []).length; i++) {\n            oldCol.push(newCol[i]);\n          }\n        });\n      }\n    }, _a[SOURCE_FORMAT_ORIGINAL] = {\n      appendData: appendDataSimply\n    }, _a[SOURCE_FORMAT_TYPED_ARRAY] = {\n      persistent: false,\n      pure: true,\n      appendData: function (newData) {\n        if (process.env.NODE_ENV !== 'production') {\n          assert(isTypedArray(newData), 'Added data must be TypedArray if data in initialization is TypedArray');\n        }\n\n        this._data = newData;\n      },\n      clean: function () {\n        this._offset += this.count();\n        this._data = null;\n      }\n    }, _a);\n\n    function appendDataSimply(newData) {\n      for (var i = 0; i < newData.length; i++) {\n        this._data.push(newData[i]);\n      }\n    }\n  }();\n\n  return DefaultDataProvider;\n}();\n\nexport { DefaultDataProvider };\n\nvar getItemSimply = function (rawData, startIndex, dimsDef, idx) {\n  return rawData[idx];\n};\n\nvar rawSourceItemGetterMap = (_a = {}, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef, idx) {\n  return rawData[idx + startIndex];\n}, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef, idx) {\n  idx += startIndex;\n  var item = [];\n  var data = rawData;\n\n  for (var i = 0; i < data.length; i++) {\n    var row = data[i];\n    item.push(row ? row[idx] : null);\n  }\n\n  return item;\n}, _a[SOURCE_FORMAT_OBJECT_ROWS] = getItemSimply, _a[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef, idx) {\n  var item = [];\n\n  for (var i = 0; i < dimsDef.length; i++) {\n    var dimName = dimsDef[i].name;\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (dimName == null) {\n        throw new Error();\n      }\n    }\n\n    var col = rawData[dimName];\n    item.push(col ? col[idx] : null);\n  }\n\n  return item;\n}, _a[SOURCE_FORMAT_ORIGINAL] = getItemSimply, _a);\nexport function getRawSourceItemGetter(sourceFormat, seriesLayoutBy) {\n  var method = rawSourceItemGetterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\n\n  if (process.env.NODE_ENV !== 'production') {\n    assert(method, 'Do not suppport get item on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\n  }\n\n  return method;\n}\n\nvar countSimply = function (rawData, startIndex, dimsDef) {\n  return rawData.length;\n};\n\nvar rawSourceDataCounterMap = (_b = {}, _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef) {\n  return Math.max(0, rawData.length - startIndex);\n}, _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef) {\n  var row = rawData[0];\n  return row ? Math.max(0, row.length - startIndex) : 0;\n}, _b[SOURCE_FORMAT_OBJECT_ROWS] = countSimply, _b[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef) {\n  var dimName = dimsDef[0].name;\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (dimName == null) {\n      throw new Error();\n    }\n  }\n\n  var col = rawData[dimName];\n  return col ? col.length : 0;\n}, _b[SOURCE_FORMAT_ORIGINAL] = countSimply, _b);\nexport function getRawSourceDataCounter(sourceFormat, seriesLayoutBy) {\n  var method = rawSourceDataCounterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\n\n  if (process.env.NODE_ENV !== 'production') {\n    assert(method, 'Do not suppport count on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\n  }\n\n  return method;\n}\n\nvar getRawValueSimply = function (dataItem, dimIndex, dimName) {\n  return dimIndex != null ? dataItem[dimIndex] : dataItem;\n};\n\nvar rawSourceValueGetterMap = (_c = {}, _c[SOURCE_FORMAT_ARRAY_ROWS] = getRawValueSimply, _c[SOURCE_FORMAT_OBJECT_ROWS] = function (dataItem, dimIndex, dimName) {\n  return dimIndex != null ? dataItem[dimName] : dataItem;\n}, _c[SOURCE_FORMAT_KEYED_COLUMNS] = getRawValueSimply, _c[SOURCE_FORMAT_ORIGINAL] = function (dataItem, dimIndex, dimName) {\n  var value = getDataItemValue(dataItem);\n  return dimIndex == null || !(value instanceof Array) ? value : value[dimIndex];\n}, _c[SOURCE_FORMAT_TYPED_ARRAY] = getRawValueSimply, _c);\nexport function getRawSourceValueGetter(sourceFormat) {\n  var method = rawSourceValueGetterMap[sourceFormat];\n\n  if (process.env.NODE_ENV !== 'production') {\n    assert(method, 'Do not suppport get value on \"' + sourceFormat + '\".');\n  }\n\n  return method;\n}\n\nfunction getMethodMapKey(sourceFormat, seriesLayoutBy) {\n  return sourceFormat === SOURCE_FORMAT_ARRAY_ROWS ? sourceFormat + '_' + seriesLayoutBy : sourceFormat;\n}\n\nexport function retrieveRawValue(data, dataIndex, dim) {\n  if (!data) {\n    return;\n  }\n\n  var dataItem = data.getRawDataItem(dataIndex);\n\n  if (dataItem == null) {\n    return;\n  }\n\n  var sourceFormat = data.getProvider().getSource().sourceFormat;\n  var dimName;\n  var dimIndex;\n  var dimInfo = data.getDimensionInfo(dim);\n\n  if (dimInfo) {\n    dimName = dimInfo.name;\n    dimIndex = dimInfo.index;\n  }\n\n  return getRawSourceValueGetter(sourceFormat)(dataItem, dimIndex, dimName);\n}\nexport function retrieveRawAttr(data, dataIndex, attr) {\n  if (!data) {\n    return;\n  }\n\n  var sourceFormat = data.getProvider().getSource().sourceFormat;\n\n  if (sourceFormat !== SOURCE_FORMAT_ORIGINAL && sourceFormat !== SOURCE_FORMAT_OBJECT_ROWS) {\n    return;\n  }\n\n  var dataItem = data.getRawDataItem(dataIndex);\n\n  if (sourceFormat === SOURCE_FORMAT_ORIGINAL && !isObject(dataItem)) {\n    dataItem = null;\n  }\n\n  if (dataItem) {\n    return dataItem[attr];\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { retrieveRawValue } from '../../data/helper/dataProvider';\nimport { formatTpl } from '../../util/format';\nimport { makePrintable } from '../../util/log';\nvar DIMENSION_LABEL_REG = /\\{@(.+?)\\}/g;\n\nvar DataFormatMixin = function () {\n  function DataFormatMixin() {}\n\n  DataFormatMixin.prototype.getDataParams = function (dataIndex, dataType) {\n    var data = this.getData(dataType);\n    var rawValue = this.getRawValue(dataIndex, dataType);\n    var rawDataIndex = data.getRawIndex(dataIndex);\n    var name = data.getName(dataIndex);\n    var itemOpt = data.getRawDataItem(dataIndex);\n    var style = data.getItemVisual(dataIndex, 'style');\n    var color = style && style[data.getItemVisual(dataIndex, 'drawType') || 'fill'];\n    var borderColor = style && style.stroke;\n    var mainType = this.mainType;\n    var isSeries = mainType === 'series';\n    var userOutput = data.userOutput;\n    return {\n      componentType: mainType,\n      componentSubType: this.subType,\n      componentIndex: this.componentIndex,\n      seriesType: isSeries ? this.subType : null,\n      seriesIndex: this.seriesIndex,\n      seriesId: isSeries ? this.id : null,\n      seriesName: isSeries ? this.name : null,\n      name: name,\n      dataIndex: rawDataIndex,\n      data: itemOpt,\n      dataType: dataType,\n      value: rawValue,\n      color: color,\n      borderColor: borderColor,\n      dimensionNames: userOutput ? userOutput.dimensionNames : null,\n      encode: userOutput ? userOutput.encode : null,\n      $vars: ['seriesName', 'name', 'value']\n    };\n  };\n\n  DataFormatMixin.prototype.getFormattedLabel = function (dataIndex, status, dataType, labelDimIndex, formatter, extendParams) {\n    status = status || 'normal';\n    var data = this.getData(dataType);\n    var params = this.getDataParams(dataIndex, dataType);\n\n    if (extendParams) {\n      params.value = extendParams.interpolatedValue;\n    }\n\n    if (labelDimIndex != null && zrUtil.isArray(params.value)) {\n      params.value = params.value[labelDimIndex];\n    }\n\n    if (!formatter) {\n      var itemModel = data.getItemModel(dataIndex);\n      formatter = itemModel.get(status === 'normal' ? ['label', 'formatter'] : [status, 'label', 'formatter']);\n    }\n\n    if (typeof formatter === 'function') {\n      params.status = status;\n      params.dimensionIndex = labelDimIndex;\n      return formatter(params);\n    } else if (typeof formatter === 'string') {\n      var str = formatTpl(formatter, params);\n      return str.replace(DIMENSION_LABEL_REG, function (origin, dimStr) {\n        var len = dimStr.length;\n        var dimLoose = dimStr.charAt(0) === '[' && dimStr.charAt(len - 1) === ']' ? +dimStr.slice(1, len - 1) : dimStr;\n        var val = retrieveRawValue(data, dataIndex, dimLoose);\n\n        if (extendParams && zrUtil.isArray(extendParams.interpolatedValue)) {\n          var dimInfo = data.getDimensionInfo(dimLoose);\n\n          if (dimInfo) {\n            val = extendParams.interpolatedValue[dimInfo.index];\n          }\n        }\n\n        return val != null ? val + '' : '';\n      });\n    }\n  };\n\n  DataFormatMixin.prototype.getRawValue = function (idx, dataType) {\n    return retrieveRawValue(this.getData(dataType), idx);\n  };\n\n  DataFormatMixin.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    return;\n  };\n\n  return DataFormatMixin;\n}();\n\nexport { DataFormatMixin };\n;\nexport function normalizeTooltipFormatResult(result) {\n  var markupText;\n  var markupFragment;\n\n  if (zrUtil.isObject(result)) {\n    if (result.type) {\n      markupFragment = result;\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn('The return type of `formatTooltip` is not supported: ' + makePrintable(result));\n      }\n    }\n  } else {\n    markupText = result;\n  }\n\n  return {\n    markupText: markupText,\n    markupFragment: markupFragment\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { assert, isArray } from 'zrender/lib/core/util';\n;\nexport function createTask(define) {\n  return new Task(define);\n}\n\nvar Task = function () {\n  function Task(define) {\n    define = define || {};\n    this._reset = define.reset;\n    this._plan = define.plan;\n    this._count = define.count;\n    this._onDirty = define.onDirty;\n    this._dirty = true;\n  }\n\n  Task.prototype.perform = function (performArgs) {\n    var upTask = this._upstream;\n    var skip = performArgs && performArgs.skip;\n\n    if (this._dirty && upTask) {\n      var context = this.context;\n      context.data = context.outputData = upTask.context.outputData;\n    }\n\n    if (this.__pipeline) {\n      this.__pipeline.currentTask = this;\n    }\n\n    var planResult;\n\n    if (this._plan && !skip) {\n      planResult = this._plan(this.context);\n    }\n\n    var lastModBy = normalizeModBy(this._modBy);\n    var lastModDataCount = this._modDataCount || 0;\n    var modBy = normalizeModBy(performArgs && performArgs.modBy);\n    var modDataCount = performArgs && performArgs.modDataCount || 0;\n\n    if (lastModBy !== modBy || lastModDataCount !== modDataCount) {\n      planResult = 'reset';\n    }\n\n    function normalizeModBy(val) {\n      !(val >= 1) && (val = 1);\n      return val;\n    }\n\n    var forceFirstProgress;\n\n    if (this._dirty || planResult === 'reset') {\n      this._dirty = false;\n      forceFirstProgress = this._doReset(skip);\n    }\n\n    this._modBy = modBy;\n    this._modDataCount = modDataCount;\n    var step = performArgs && performArgs.step;\n\n    if (upTask) {\n      if (process.env.NODE_ENV !== 'production') {\n        assert(upTask._outputDueEnd != null);\n      }\n\n      this._dueEnd = upTask._outputDueEnd;\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        assert(!this._progress || this._count);\n      }\n\n      this._dueEnd = this._count ? this._count(this.context) : Infinity;\n    }\n\n    if (this._progress) {\n      var start = this._dueIndex;\n      var end = Math.min(step != null ? this._dueIndex + step : Infinity, this._dueEnd);\n\n      if (!skip && (forceFirstProgress || start < end)) {\n        var progress = this._progress;\n\n        if (isArray(progress)) {\n          for (var i = 0; i < progress.length; i++) {\n            this._doProgress(progress[i], start, end, modBy, modDataCount);\n          }\n        } else {\n          this._doProgress(progress, start, end, modBy, modDataCount);\n        }\n      }\n\n      this._dueIndex = end;\n      var outputDueEnd = this._settedOutputEnd != null ? this._settedOutputEnd : end;\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(outputDueEnd >= this._outputDueEnd);\n      }\n\n      this._outputDueEnd = outputDueEnd;\n    } else {\n      this._dueIndex = this._outputDueEnd = this._settedOutputEnd != null ? this._settedOutputEnd : this._dueEnd;\n    }\n\n    return this.unfinished();\n  };\n\n  Task.prototype.dirty = function () {\n    this._dirty = true;\n    this._onDirty && this._onDirty(this.context);\n  };\n\n  Task.prototype._doProgress = function (progress, start, end, modBy, modDataCount) {\n    iterator.reset(start, end, modBy, modDataCount);\n    this._callingProgress = progress;\n\n    this._callingProgress({\n      start: start,\n      end: end,\n      count: end - start,\n      next: iterator.next\n    }, this.context);\n  };\n\n  Task.prototype._doReset = function (skip) {\n    this._dueIndex = this._outputDueEnd = this._dueEnd = 0;\n    this._settedOutputEnd = null;\n    var progress;\n    var forceFirstProgress;\n\n    if (!skip && this._reset) {\n      progress = this._reset(this.context);\n\n      if (progress && progress.progress) {\n        forceFirstProgress = progress.forceFirstProgress;\n        progress = progress.progress;\n      }\n\n      if (isArray(progress) && !progress.length) {\n        progress = null;\n      }\n    }\n\n    this._progress = progress;\n    this._modBy = this._modDataCount = null;\n    var downstream = this._downstream;\n    downstream && downstream.dirty();\n    return forceFirstProgress;\n  };\n\n  Task.prototype.unfinished = function () {\n    return this._progress && this._dueIndex < this._dueEnd;\n  };\n\n  Task.prototype.pipe = function (downTask) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(downTask && !downTask._disposed && downTask !== this);\n    }\n\n    if (this._downstream !== downTask || this._dirty) {\n      this._downstream = downTask;\n      downTask._upstream = this;\n      downTask.dirty();\n    }\n  };\n\n  Task.prototype.dispose = function () {\n    if (this._disposed) {\n      return;\n    }\n\n    this._upstream && (this._upstream._downstream = null);\n    this._downstream && (this._downstream._upstream = null);\n    this._dirty = false;\n    this._disposed = true;\n  };\n\n  Task.prototype.getUpstream = function () {\n    return this._upstream;\n  };\n\n  Task.prototype.getDownstream = function () {\n    return this._downstream;\n  };\n\n  Task.prototype.setOutputEnd = function (end) {\n    this._outputDueEnd = this._settedOutputEnd = end;\n  };\n\n  return Task;\n}();\n\nexport { Task };\n\nvar iterator = function () {\n  var end;\n  var current;\n  var modBy;\n  var modDataCount;\n  var winCount;\n  var it = {\n    reset: function (s, e, sStep, sCount) {\n      current = s;\n      end = e;\n      modBy = sStep;\n      modDataCount = sCount;\n      winCount = Math.ceil(modDataCount / modBy);\n      it.next = modBy > 1 && modDataCount > 0 ? modNext : sequentialNext;\n    }\n  };\n  return it;\n\n  function sequentialNext() {\n    return current < end ? current++ : null;\n  }\n\n  function modNext() {\n    var dataIndex = current % winCount * modBy + Math.ceil(current / winCount);\n    var result = current >= end ? null : dataIndex < modDataCount ? dataIndex : current;\n    current++;\n    return result;\n  }\n}();","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parseDate, numericToNumber } from '../../util/number';\nimport { createHashMap, trim, hasOwn } from 'zrender/lib/core/util';\nimport { throwError } from '../../util/log';\nexport function parseDataValue(value, opt) {\n  var dimType = opt && opt.type;\n\n  if (dimType === 'ordinal') {\n    var ordinalMeta = opt && opt.ordinalMeta;\n    return ordinalMeta ? ordinalMeta.parseAndCollect(value) : value;\n  }\n\n  if (dimType === 'time' && typeof value !== 'number' && value != null && value !== '-') {\n    value = +parseDate(value);\n  }\n\n  return value == null || value === '' ? NaN : +value;\n}\n;\nvar valueParserMap = createHashMap({\n  'number': function (val) {\n    return parseFloat(val);\n  },\n  'time': function (val) {\n    return +parseDate(val);\n  },\n  'trim': function (val) {\n    return typeof val === 'string' ? trim(val) : val;\n  }\n});\nexport function getRawValueParser(type) {\n  return valueParserMap.get(type);\n}\nvar ORDER_COMPARISON_OP_MAP = {\n  lt: function (lval, rval) {\n    return lval < rval;\n  },\n  lte: function (lval, rval) {\n    return lval <= rval;\n  },\n  gt: function (lval, rval) {\n    return lval > rval;\n  },\n  gte: function (lval, rval) {\n    return lval >= rval;\n  }\n};\n\nvar FilterOrderComparator = function () {\n  function FilterOrderComparator(op, rval) {\n    if (typeof rval !== 'number') {\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'rvalue of \"<\", \">\", \"<=\", \">=\" can only be number in filter.';\n      }\n\n      throwError(errMsg);\n    }\n\n    this._opFn = ORDER_COMPARISON_OP_MAP[op];\n    this._rvalFloat = numericToNumber(rval);\n  }\n\n  FilterOrderComparator.prototype.evaluate = function (lval) {\n    return typeof lval === 'number' ? this._opFn(lval, this._rvalFloat) : this._opFn(numericToNumber(lval), this._rvalFloat);\n  };\n\n  return FilterOrderComparator;\n}();\n\nvar SortOrderComparator = function () {\n  function SortOrderComparator(order, incomparable) {\n    var isDesc = order === 'desc';\n    this._resultLT = isDesc ? 1 : -1;\n\n    if (incomparable == null) {\n      incomparable = isDesc ? 'min' : 'max';\n    }\n\n    this._incomparable = incomparable === 'min' ? -Infinity : Infinity;\n  }\n\n  SortOrderComparator.prototype.evaluate = function (lval, rval) {\n    var lvalTypeof = typeof lval;\n    var rvalTypeof = typeof rval;\n    var lvalFloat = lvalTypeof === 'number' ? lval : numericToNumber(lval);\n    var rvalFloat = rvalTypeof === 'number' ? rval : numericToNumber(rval);\n    var lvalNotNumeric = isNaN(lvalFloat);\n    var rvalNotNumeric = isNaN(rvalFloat);\n\n    if (lvalNotNumeric) {\n      lvalFloat = this._incomparable;\n    }\n\n    if (rvalNotNumeric) {\n      rvalFloat = this._incomparable;\n    }\n\n    if (lvalNotNumeric && rvalNotNumeric) {\n      var lvalIsStr = lvalTypeof === 'string';\n      var rvalIsStr = rvalTypeof === 'string';\n\n      if (lvalIsStr) {\n        lvalFloat = rvalIsStr ? lval : 0;\n      }\n\n      if (rvalIsStr) {\n        rvalFloat = lvalIsStr ? rval : 0;\n      }\n    }\n\n    return lvalFloat < rvalFloat ? this._resultLT : lvalFloat > rvalFloat ? -this._resultLT : 0;\n  };\n\n  return SortOrderComparator;\n}();\n\nexport { SortOrderComparator };\n\nvar FilterEqualityComparator = function () {\n  function FilterEqualityComparator(isEq, rval) {\n    this._rval = rval;\n    this._isEQ = isEq;\n    this._rvalTypeof = typeof rval;\n    this._rvalFloat = numericToNumber(rval);\n  }\n\n  FilterEqualityComparator.prototype.evaluate = function (lval) {\n    var eqResult = lval === this._rval;\n\n    if (!eqResult) {\n      var lvalTypeof = typeof lval;\n\n      if (lvalTypeof !== this._rvalTypeof && (lvalTypeof === 'number' || this._rvalTypeof === 'number')) {\n        eqResult = numericToNumber(lval) === this._rvalFloat;\n      }\n    }\n\n    return this._isEQ ? eqResult : !eqResult;\n  };\n\n  return FilterEqualityComparator;\n}();\n\nexport function createFilterComparator(op, rval) {\n  return op === 'eq' || op === 'ne' ? new FilterEqualityComparator(op === 'eq', rval) : hasOwn(ORDER_COMPARISON_OP_MAP, op) ? new FilterOrderComparator(op, rval) : null;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { SERIES_LAYOUT_BY_COLUMN, SOURCE_FORMAT_OBJECT_ROWS, SOURCE_FORMAT_ARRAY_ROWS } from '../../util/types';\nimport { normalizeToArray } from '../../util/model';\nimport { createHashMap, bind, each, hasOwn, map, clone, isObject, extend } from 'zrender/lib/core/util';\nimport { getRawSourceItemGetter, getRawSourceDataCounter, getRawSourceValueGetter } from './dataProvider';\nimport { parseDataValue } from './dataValueHelper';\nimport { consoleLog, makePrintable, throwError } from '../../util/log';\nimport { createSource, detectSourceFormat } from '../Source';\n\nvar ExternalSource = function () {\n  function ExternalSource() {}\n\n  ExternalSource.prototype.getRawData = function () {\n    throw new Error('not supported');\n  };\n\n  ExternalSource.prototype.getRawDataItem = function (dataIndex) {\n    throw new Error('not supported');\n  };\n\n  ExternalSource.prototype.cloneRawData = function () {\n    return;\n  };\n\n  ExternalSource.prototype.getDimensionInfo = function (dim) {\n    return;\n  };\n\n  ExternalSource.prototype.cloneAllDimensionInfo = function () {\n    return;\n  };\n\n  ExternalSource.prototype.count = function () {\n    return;\n  };\n\n  ExternalSource.prototype.retrieveValue = function (dataIndex, dimIndex) {\n    return;\n  };\n\n  ExternalSource.prototype.retrieveValueFromItem = function (dataItem, dimIndex) {\n    return;\n  };\n\n  ExternalSource.prototype.convertValue = function (rawVal, dimInfo) {\n    return parseDataValue(rawVal, dimInfo);\n  };\n\n  return ExternalSource;\n}();\n\nexport { ExternalSource };\n\nfunction createExternalSource(internalSource, externalTransform) {\n  var extSource = new ExternalSource();\n  var data = internalSource.data;\n  var sourceFormat = extSource.sourceFormat = internalSource.sourceFormat;\n  var sourceHeaderCount = internalSource.startIndex;\n  var errMsg = '';\n\n  if (internalSource.seriesLayoutBy !== SERIES_LAYOUT_BY_COLUMN) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = '`seriesLayoutBy` of upstream dataset can only be \"column\" in data transform.';\n    }\n\n    throwError(errMsg);\n  }\n\n  var dimensions = [];\n  var dimsByName = {};\n  var dimsDef = internalSource.dimensionsDefine;\n\n  if (dimsDef) {\n    each(dimsDef, function (dimDef, idx) {\n      var name = dimDef.name;\n      var dimDefExt = {\n        index: idx,\n        name: name,\n        displayName: dimDef.displayName\n      };\n      dimensions.push(dimDefExt);\n\n      if (name != null) {\n        var errMsg_1 = '';\n\n        if (hasOwn(dimsByName, name)) {\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg_1 = 'dimension name \"' + name + '\" duplicated.';\n          }\n\n          throwError(errMsg_1);\n        }\n\n        dimsByName[name] = dimDefExt;\n      }\n    });\n  } else {\n    for (var i = 0; i < internalSource.dimensionsDetectedCount || 0; i++) {\n      dimensions.push({\n        index: i\n      });\n    }\n  }\n\n  var rawItemGetter = getRawSourceItemGetter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\n\n  if (externalTransform.__isBuiltIn) {\n    extSource.getRawDataItem = function (dataIndex) {\n      return rawItemGetter(data, sourceHeaderCount, dimensions, dataIndex);\n    };\n\n    extSource.getRawData = bind(getRawData, null, internalSource);\n  }\n\n  extSource.cloneRawData = bind(cloneRawData, null, internalSource);\n  var rawCounter = getRawSourceDataCounter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\n  extSource.count = bind(rawCounter, null, data, sourceHeaderCount, dimensions);\n  var rawValueGetter = getRawSourceValueGetter(sourceFormat);\n\n  extSource.retrieveValue = function (dataIndex, dimIndex) {\n    var rawItem = rawItemGetter(data, sourceHeaderCount, dimensions, dataIndex);\n    return retrieveValueFromItem(rawItem, dimIndex);\n  };\n\n  var retrieveValueFromItem = extSource.retrieveValueFromItem = function (dataItem, dimIndex) {\n    if (dataItem == null) {\n      return;\n    }\n\n    var dimDef = dimensions[dimIndex];\n\n    if (dimDef) {\n      return rawValueGetter(dataItem, dimIndex, dimDef.name);\n    }\n  };\n\n  extSource.getDimensionInfo = bind(getDimensionInfo, null, dimensions, dimsByName);\n  extSource.cloneAllDimensionInfo = bind(cloneAllDimensionInfo, null, dimensions);\n  return extSource;\n}\n\nfunction getRawData(upstream) {\n  var sourceFormat = upstream.sourceFormat;\n\n  if (!isSupportedSourceFormat(sourceFormat)) {\n    var errMsg = '';\n\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = '`getRawData` is not supported in source format ' + sourceFormat;\n    }\n\n    throwError(errMsg);\n  }\n\n  return upstream.data;\n}\n\nfunction cloneRawData(upstream) {\n  var sourceFormat = upstream.sourceFormat;\n  var data = upstream.data;\n\n  if (!isSupportedSourceFormat(sourceFormat)) {\n    var errMsg = '';\n\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = '`cloneRawData` is not supported in source format ' + sourceFormat;\n    }\n\n    throwError(errMsg);\n  }\n\n  if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n    var result = [];\n\n    for (var i = 0, len = data.length; i < len; i++) {\n      result.push(data[i].slice());\n    }\n\n    return result;\n  } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n    var result = [];\n\n    for (var i = 0, len = data.length; i < len; i++) {\n      result.push(extend({}, data[i]));\n    }\n\n    return result;\n  }\n}\n\nfunction getDimensionInfo(dimensions, dimsByName, dim) {\n  if (dim == null) {\n    return;\n  }\n\n  if (typeof dim === 'number' || !isNaN(dim) && !hasOwn(dimsByName, dim)) {\n    return dimensions[dim];\n  } else if (hasOwn(dimsByName, dim)) {\n    return dimsByName[dim];\n  }\n}\n\nfunction cloneAllDimensionInfo(dimensions) {\n  return clone(dimensions);\n}\n\nvar externalTransformMap = createHashMap();\nexport function registerExternalTransform(externalTransform) {\n  externalTransform = clone(externalTransform);\n  var type = externalTransform.type;\n  var errMsg = '';\n\n  if (!type) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'Must have a `type` when `registerTransform`.';\n    }\n\n    throwError(errMsg);\n  }\n\n  var typeParsed = type.split(':');\n\n  if (typeParsed.length !== 2) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'Name must include namespace like \"ns:regression\".';\n    }\n\n    throwError(errMsg);\n  }\n\n  var isBuiltIn = false;\n\n  if (typeParsed[0] === 'echarts') {\n    type = typeParsed[1];\n    isBuiltIn = true;\n  }\n\n  externalTransform.__isBuiltIn = isBuiltIn;\n  externalTransformMap.set(type, externalTransform);\n}\nexport function applyDataTransform(rawTransOption, sourceList, infoForPrint) {\n  var pipedTransOption = normalizeToArray(rawTransOption);\n  var pipeLen = pipedTransOption.length;\n  var errMsg = '';\n\n  if (!pipeLen) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'If `transform` declared, it should at least contain one transform.';\n    }\n\n    throwError(errMsg);\n  }\n\n  for (var i = 0, len = pipeLen; i < len; i++) {\n    var transOption = pipedTransOption[i];\n    sourceList = applySingleDataTransform(transOption, sourceList, infoForPrint, pipeLen === 1 ? null : i);\n\n    if (i !== len - 1) {\n      sourceList.length = Math.max(sourceList.length, 1);\n    }\n  }\n\n  return sourceList;\n}\n\nfunction applySingleDataTransform(transOption, upSourceList, infoForPrint, pipeIndex) {\n  var errMsg = '';\n\n  if (!upSourceList.length) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'Must have at least one upstream dataset.';\n    }\n\n    throwError(errMsg);\n  }\n\n  if (!isObject(transOption)) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'transform declaration must be an object rather than ' + typeof transOption + '.';\n    }\n\n    throwError(errMsg);\n  }\n\n  var transType = transOption.type;\n  var externalTransform = externalTransformMap.get(transType);\n\n  if (!externalTransform) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'Can not find transform on type \"' + transType + '\".';\n    }\n\n    throwError(errMsg);\n  }\n\n  var extUpSourceList = map(upSourceList, function (upSource) {\n    return createExternalSource(upSource, externalTransform);\n  });\n  var resultList = normalizeToArray(externalTransform.transform({\n    upstream: extUpSourceList[0],\n    upstreamList: extUpSourceList,\n    config: clone(transOption.config)\n  }));\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (transOption.print) {\n      var printStrArr = map(resultList, function (extSource) {\n        var pipeIndexStr = pipeIndex != null ? ' === pipe index: ' + pipeIndex : '';\n        return ['=== dataset index: ' + infoForPrint.datasetIndex + pipeIndexStr + ' ===', '- transform result data:', makePrintable(extSource.data), '- transform result dimensions:', makePrintable(extSource.dimensions)].join('\\n');\n      }).join('\\n');\n      consoleLog(printStrArr);\n    }\n  }\n\n  return map(resultList, function (result, resultIndex) {\n    var errMsg = '';\n\n    if (!isObject(result)) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'A transform should not return some empty results.';\n      }\n\n      throwError(errMsg);\n    }\n\n    if (!result.data) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'Transform result data should be not be null or undefined';\n      }\n\n      throwError(errMsg);\n    }\n\n    var sourceFormat = detectSourceFormat(result.data);\n\n    if (!isSupportedSourceFormat(sourceFormat)) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'Transform result data should be array rows or object rows.';\n      }\n\n      throwError(errMsg);\n    }\n\n    var resultMetaRawOption;\n    var firstUpSource = upSourceList[0];\n\n    if (firstUpSource && resultIndex === 0 && !result.dimensions) {\n      var startIndex = firstUpSource.startIndex;\n\n      if (startIndex) {\n        result.data = firstUpSource.data.slice(0, startIndex).concat(result.data);\n      }\n\n      resultMetaRawOption = {\n        seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN,\n        sourceHeader: startIndex,\n        dimensions: firstUpSource.metaRawOption.dimensions\n      };\n    } else {\n      resultMetaRawOption = {\n        seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN,\n        sourceHeader: 0,\n        dimensions: result.dimensions\n      };\n    }\n\n    return createSource(result.data, resultMetaRawOption, null, null);\n  });\n}\n\nfunction isSupportedSourceFormat(sourceFormat) {\n  return sourceFormat === SOURCE_FORMAT_ARRAY_ROWS || sourceFormat === SOURCE_FORMAT_OBJECT_ROWS;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { setAsPrimitive, map, isTypedArray, assert, each, retrieve2 } from 'zrender/lib/core/util';\nimport { createSource, cloneSourceShallow } from '../Source';\nimport { SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ORIGINAL } from '../../util/types';\nimport { querySeriesUpstreamDatasetModel, queryDatasetUpstreamDatasetModels } from './sourceHelper';\nimport { applyDataTransform } from './transform';\n\nvar SourceManager = function () {\n  function SourceManager(sourceHost) {\n    this._sourceList = [];\n    this._upstreamSignList = [];\n    this._versionSignBase = 0;\n    this._sourceHost = sourceHost;\n  }\n\n  SourceManager.prototype.dirty = function () {\n    this._setLocalSource([], []);\n  };\n\n  SourceManager.prototype._setLocalSource = function (sourceList, upstreamSignList) {\n    this._sourceList = sourceList;\n    this._upstreamSignList = upstreamSignList;\n    this._versionSignBase++;\n\n    if (this._versionSignBase > 9e10) {\n      this._versionSignBase = 0;\n    }\n  };\n\n  SourceManager.prototype._getVersionSign = function () {\n    return this._sourceHost.uid + '_' + this._versionSignBase;\n  };\n\n  SourceManager.prototype.prepareSource = function () {\n    if (this._isDirty()) {\n      this._createSource();\n    }\n  };\n\n  SourceManager.prototype._createSource = function () {\n    this._setLocalSource([], []);\n\n    var sourceHost = this._sourceHost;\n\n    var upSourceMgrList = this._getUpstreamSourceManagers();\n\n    var hasUpstream = !!upSourceMgrList.length;\n    var resultSourceList;\n    var upstreamSignList;\n\n    if (isSeries(sourceHost)) {\n      var seriesModel = sourceHost;\n      var data = void 0;\n      var sourceFormat = void 0;\n      var upSource = void 0;\n\n      if (hasUpstream) {\n        var upSourceMgr = upSourceMgrList[0];\n        upSourceMgr.prepareSource();\n        upSource = upSourceMgr.getSource();\n        data = upSource.data;\n        sourceFormat = upSource.sourceFormat;\n        upstreamSignList = [upSourceMgr._getVersionSign()];\n      } else {\n        data = seriesModel.get('data', true);\n        sourceFormat = isTypedArray(data) ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL;\n        upstreamSignList = [];\n      }\n\n      var newMetaRawOption = this._getSourceMetaRawOption();\n\n      var upMetaRawOption = upSource ? upSource.metaRawOption : null;\n      var seriesLayoutBy = retrieve2(newMetaRawOption.seriesLayoutBy, upMetaRawOption ? upMetaRawOption.seriesLayoutBy : null);\n      var sourceHeader = retrieve2(newMetaRawOption.sourceHeader, upMetaRawOption ? upMetaRawOption.sourceHeader : null);\n      var dimensions = retrieve2(newMetaRawOption.dimensions, upMetaRawOption ? upMetaRawOption.dimensions : null);\n      resultSourceList = [createSource(data, {\n        seriesLayoutBy: seriesLayoutBy,\n        sourceHeader: sourceHeader,\n        dimensions: dimensions\n      }, sourceFormat, seriesModel.get('encode', true))];\n    } else {\n      var datasetModel = sourceHost;\n\n      if (hasUpstream) {\n        var result = this._applyTransform(upSourceMgrList);\n\n        resultSourceList = result.sourceList;\n        upstreamSignList = result.upstreamSignList;\n      } else {\n        var sourceData = datasetModel.get('source', true);\n        resultSourceList = [createSource(sourceData, this._getSourceMetaRawOption(), null, null)];\n        upstreamSignList = [];\n      }\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(resultSourceList && upstreamSignList);\n    }\n\n    this._setLocalSource(resultSourceList, upstreamSignList);\n  };\n\n  SourceManager.prototype._applyTransform = function (upMgrList) {\n    var datasetModel = this._sourceHost;\n    var transformOption = datasetModel.get('transform', true);\n    var fromTransformResult = datasetModel.get('fromTransformResult', true);\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(fromTransformResult != null || transformOption != null);\n    }\n\n    if (fromTransformResult != null) {\n      var errMsg = '';\n\n      if (upMgrList.length !== 1) {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = 'When using `fromTransformResult`, there should be only one upstream dataset';\n        }\n\n        doThrow(errMsg);\n      }\n    }\n\n    var sourceList;\n    var upSourceList = [];\n    var upstreamSignList = [];\n    each(upMgrList, function (upMgr) {\n      upMgr.prepareSource();\n      var upSource = upMgr.getSource(fromTransformResult || 0);\n      var errMsg = '';\n\n      if (fromTransformResult != null && !upSource) {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = 'Can not retrieve result by `fromTransformResult`: ' + fromTransformResult;\n        }\n\n        doThrow(errMsg);\n      }\n\n      upSourceList.push(upSource);\n      upstreamSignList.push(upMgr._getVersionSign());\n    });\n\n    if (transformOption) {\n      sourceList = applyDataTransform(transformOption, upSourceList, {\n        datasetIndex: datasetModel.componentIndex\n      });\n    } else if (fromTransformResult != null) {\n      sourceList = [cloneSourceShallow(upSourceList[0])];\n    }\n\n    return {\n      sourceList: sourceList,\n      upstreamSignList: upstreamSignList\n    };\n  };\n\n  SourceManager.prototype._isDirty = function () {\n    var sourceList = this._sourceList;\n\n    if (!sourceList.length) {\n      return true;\n    }\n\n    var upSourceMgrList = this._getUpstreamSourceManagers();\n\n    for (var i = 0; i < upSourceMgrList.length; i++) {\n      var upSrcMgr = upSourceMgrList[i];\n\n      if (upSrcMgr._isDirty() || this._upstreamSignList[i] !== upSrcMgr._getVersionSign()) {\n        return true;\n      }\n    }\n  };\n\n  SourceManager.prototype.getSource = function (sourceIndex) {\n    return this._sourceList[sourceIndex || 0];\n  };\n\n  SourceManager.prototype._getUpstreamSourceManagers = function () {\n    var sourceHost = this._sourceHost;\n\n    if (isSeries(sourceHost)) {\n      var datasetModel = querySeriesUpstreamDatasetModel(sourceHost);\n      return !datasetModel ? [] : [datasetModel.getSourceManager()];\n    } else {\n      return map(queryDatasetUpstreamDatasetModels(sourceHost), function (datasetModel) {\n        return datasetModel.getSourceManager();\n      });\n    }\n  };\n\n  SourceManager.prototype._getSourceMetaRawOption = function () {\n    var sourceHost = this._sourceHost;\n    var seriesLayoutBy;\n    var sourceHeader;\n    var dimensions;\n\n    if (isSeries(sourceHost)) {\n      seriesLayoutBy = sourceHost.get('seriesLayoutBy', true);\n      sourceHeader = sourceHost.get('sourceHeader', true);\n      dimensions = sourceHost.get('dimensions', true);\n    } else if (!this._getUpstreamSourceManagers().length) {\n      var model = sourceHost;\n      seriesLayoutBy = model.get('seriesLayoutBy', true);\n      sourceHeader = model.get('sourceHeader', true);\n      dimensions = model.get('dimensions', true);\n    }\n\n    return {\n      seriesLayoutBy: seriesLayoutBy,\n      sourceHeader: sourceHeader,\n      dimensions: dimensions\n    };\n  };\n\n  return SourceManager;\n}();\n\nexport { SourceManager };\nexport function disableTransformOptionMerge(datasetModel) {\n  var transformOption = datasetModel.option.transform;\n  transformOption && setAsPrimitive(datasetModel.option.transform);\n}\n\nfunction isSeries(sourceHost) {\n  return sourceHost.mainType === 'series';\n}\n\nfunction doThrow(errMsg) {\n  throw new Error(errMsg);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { getTooltipMarker, encodeHTML, makeValueReadable, convertToColorString } from '../../util/format';\nimport { isString, each, hasOwn, isArray, map, assert, extend } from 'zrender/lib/core/util';\nimport { SortOrderComparator } from '../../data/helper/dataValueHelper';\nimport { getRandomIdBase } from '../../util/number';\nvar TOOLTIP_LINE_HEIGHT_CSS = 'line-height:1';\n\nfunction getTooltipTextStyle(textStyle, renderMode) {\n  var nameFontColor = textStyle.color || '#6e7079';\n  var nameFontSize = textStyle.fontSize || 12;\n  var nameFontWeight = textStyle.fontWeight || '400';\n  var valueFontColor = textStyle.color || '#464646';\n  var valueFontSize = textStyle.fontSize || 14;\n  var valueFontWeight = textStyle.fontWeight || '900';\n\n  if (renderMode === 'html') {\n    return {\n      nameStyle: \"font-size:\" + nameFontSize + \"px;color:\" + nameFontColor + \";font-weight:\" + nameFontWeight,\n      valueStyle: \"font-size:\" + valueFontSize + \"px;color:\" + valueFontColor + \";font-weight:\" + valueFontWeight\n    };\n  } else {\n    return {\n      nameStyle: {\n        fontSize: nameFontSize,\n        fill: nameFontColor,\n        fontWeight: nameFontWeight\n      },\n      valueStyle: {\n        fontSize: valueFontSize,\n        fill: valueFontColor,\n        fontWeight: valueFontWeight\n      }\n    };\n  }\n}\n\nvar HTML_GAPS = [0, 10, 20, 30];\nvar RICH_TEXT_GAPS = ['', '\\n', '\\n\\n', '\\n\\n\\n'];\nexport function createTooltipMarkup(type, option) {\n  option.type = type;\n  return option;\n}\n\nfunction getBuilder(fragment) {\n  return hasOwn(builderMap, fragment.type) && builderMap[fragment.type];\n}\n\nvar builderMap = {\n  section: {\n    planLayout: function (fragment) {\n      var subBlockLen = fragment.blocks.length;\n      var thisBlockHasInnerGap = subBlockLen > 1 || subBlockLen > 0 && !fragment.noHeader;\n      var thisGapLevelBetweenSubBlocks = 0;\n      each(fragment.blocks, function (subBlock) {\n        getBuilder(subBlock).planLayout(subBlock);\n        var subGapLevel = subBlock.__gapLevelBetweenSubBlocks;\n\n        if (subGapLevel >= thisGapLevelBetweenSubBlocks) {\n          thisGapLevelBetweenSubBlocks = subGapLevel + (thisBlockHasInnerGap && (!subGapLevel || subBlock.type === 'section' && !subBlock.noHeader) ? 1 : 0);\n        }\n      });\n      fragment.__gapLevelBetweenSubBlocks = thisGapLevelBetweenSubBlocks;\n    },\n    build: function (ctx, fragment, topMarginForOuterGap, toolTipTextStyle) {\n      var noHeader = fragment.noHeader;\n      var gaps = getGap(fragment);\n      var subMarkupText = buildSubBlocks(ctx, fragment, noHeader ? topMarginForOuterGap : gaps.html, toolTipTextStyle);\n\n      if (noHeader) {\n        return subMarkupText;\n      }\n\n      var displayableHeader = makeValueReadable(fragment.header, 'ordinal', ctx.useUTC);\n      var nameStyle = getTooltipTextStyle(toolTipTextStyle, ctx.renderMode).nameStyle;\n\n      if (ctx.renderMode === 'richText') {\n        return wrapInlineNameRichText(ctx, displayableHeader, nameStyle) + gaps.richText + subMarkupText;\n      } else {\n        return wrapBlockHTML(\"<div style=\\\"\" + nameStyle + \";\" + TOOLTIP_LINE_HEIGHT_CSS + \";\\\">\" + encodeHTML(displayableHeader) + '</div>' + subMarkupText, topMarginForOuterGap);\n      }\n    }\n  },\n  nameValue: {\n    planLayout: function (fragment) {\n      fragment.__gapLevelBetweenSubBlocks = 0;\n    },\n    build: function (ctx, fragment, topMarginForOuterGap, toolTipTextStyle) {\n      var renderMode = ctx.renderMode;\n      var noName = fragment.noName;\n      var noValue = fragment.noValue;\n      var noMarker = !fragment.markerType;\n      var name = fragment.name;\n      var value = fragment.value;\n      var useUTC = ctx.useUTC;\n\n      if (noName && noValue) {\n        return;\n      }\n\n      var markerStr = noMarker ? '' : ctx.markupStyleCreator.makeTooltipMarker(fragment.markerType, fragment.markerColor || '#333', renderMode);\n      var readableName = noName ? '' : makeValueReadable(name, 'ordinal', useUTC);\n      var valueTypeOption = fragment.valueType;\n      var readableValueList = noValue ? [] : isArray(value) ? map(value, function (val, idx) {\n        return makeValueReadable(val, isArray(valueTypeOption) ? valueTypeOption[idx] : valueTypeOption, useUTC);\n      }) : [makeValueReadable(value, isArray(valueTypeOption) ? valueTypeOption[0] : valueTypeOption, useUTC)];\n      var valueAlignRight = !noMarker || !noName;\n      var valueCloseToMarker = !noMarker && noName;\n\n      var _a = getTooltipTextStyle(toolTipTextStyle, renderMode),\n          nameStyle = _a.nameStyle,\n          valueStyle = _a.valueStyle;\n\n      return renderMode === 'richText' ? (noMarker ? '' : markerStr) + (noName ? '' : wrapInlineNameRichText(ctx, readableName, nameStyle)) + (noValue ? '' : wrapInlineValueRichText(ctx, readableValueList, valueAlignRight, valueCloseToMarker, valueStyle)) : wrapBlockHTML((noMarker ? '' : markerStr) + (noName ? '' : wrapInlineNameHTML(readableName, !noMarker, nameStyle)) + (noValue ? '' : wrapInlineValueHTML(readableValueList, valueAlignRight, valueCloseToMarker, valueStyle)), topMarginForOuterGap);\n    }\n  }\n};\n\nfunction buildSubBlocks(ctx, fragment, topMarginForOuterGap, tooltipTextStyle) {\n  var subMarkupTextList = [];\n  var subBlocks = fragment.blocks || [];\n  assert(!subBlocks || isArray(subBlocks));\n  subBlocks = subBlocks || [];\n  var orderMode = ctx.orderMode;\n\n  if (fragment.sortBlocks && orderMode) {\n    subBlocks = subBlocks.slice();\n    var orderMap = {\n      valueAsc: 'asc',\n      valueDesc: 'desc'\n    };\n\n    if (hasOwn(orderMap, orderMode)) {\n      var comparator_1 = new SortOrderComparator(orderMap[orderMode], null);\n      subBlocks.sort(function (a, b) {\n        return comparator_1.evaluate(a.sortParam, b.sortParam);\n      });\n    } else if (orderMode === 'seriesDesc') {\n      subBlocks.reverse();\n    }\n  }\n\n  var gaps = getGap(fragment);\n  each(subBlocks, function (subBlock, idx) {\n    var subMarkupText = getBuilder(subBlock).build(ctx, subBlock, idx > 0 ? gaps.html : 0, tooltipTextStyle);\n    subMarkupText != null && subMarkupTextList.push(subMarkupText);\n  });\n\n  if (!subMarkupTextList.length) {\n    return;\n  }\n\n  return ctx.renderMode === 'richText' ? subMarkupTextList.join(gaps.richText) : wrapBlockHTML(subMarkupTextList.join(''), topMarginForOuterGap);\n}\n\nexport function buildTooltipMarkup(fragment, markupStyleCreator, renderMode, orderMode, useUTC, toolTipTextStyle) {\n  if (!fragment) {\n    return;\n  }\n\n  var builder = getBuilder(fragment);\n  builder.planLayout(fragment);\n  var ctx = {\n    useUTC: useUTC,\n    renderMode: renderMode,\n    orderMode: orderMode,\n    markupStyleCreator: markupStyleCreator\n  };\n  return builder.build(ctx, fragment, 0, toolTipTextStyle);\n}\n\nfunction getGap(fragment) {\n  var gapLevelBetweenSubBlocks = fragment.__gapLevelBetweenSubBlocks;\n  return {\n    html: HTML_GAPS[gapLevelBetweenSubBlocks],\n    richText: RICH_TEXT_GAPS[gapLevelBetweenSubBlocks]\n  };\n}\n\nfunction wrapBlockHTML(encodedContent, topGap) {\n  var clearfix = '<div style=\"clear:both\"></div>';\n  var marginCSS = \"margin: \" + topGap + \"px 0 0\";\n  return \"<div style=\\\"\" + marginCSS + \";\" + TOOLTIP_LINE_HEIGHT_CSS + \";\\\">\" + encodedContent + clearfix + '</div>';\n}\n\nfunction wrapInlineNameHTML(name, leftHasMarker, style) {\n  var marginCss = leftHasMarker ? 'margin-left:2px' : '';\n  return \"<span style=\\\"\" + style + \";\" + marginCss + \"\\\">\" + encodeHTML(name) + '</span>';\n}\n\nfunction wrapInlineValueHTML(valueList, alignRight, valueCloseToMarker, style) {\n  var paddingStr = valueCloseToMarker ? '10px' : '20px';\n  var alignCSS = alignRight ? \"float:right;margin-left:\" + paddingStr : '';\n  return \"<span style=\\\"\" + alignCSS + \";\" + style + \"\\\">\" + map(valueList, function (value) {\n    return encodeHTML(value);\n  }).join('&nbsp;&nbsp;') + '</span>';\n}\n\nfunction wrapInlineNameRichText(ctx, name, style) {\n  return ctx.markupStyleCreator.wrapRichTextStyle(name, style);\n}\n\nfunction wrapInlineValueRichText(ctx, valueList, alignRight, valueCloseToMarker, style) {\n  var styles = [style];\n  var paddingLeft = valueCloseToMarker ? 10 : 20;\n  alignRight && styles.push({\n    padding: [0, 0, 0, paddingLeft],\n    align: 'right'\n  });\n  return ctx.markupStyleCreator.wrapRichTextStyle(valueList.join('  '), styles);\n}\n\nexport function retrieveVisualColorForTooltipMarker(series, dataIndex) {\n  var style = series.getData().getItemVisual(dataIndex, 'style');\n  var color = style[series.visualDrawType];\n  return convertToColorString(color);\n}\nexport function getPaddingFromTooltipModel(model, renderMode) {\n  var padding = model.get('padding');\n  return padding != null ? padding : renderMode === 'richText' ? [8, 10] : 10;\n}\n\nvar TooltipMarkupStyleCreator = function () {\n  function TooltipMarkupStyleCreator() {\n    this.richTextStyles = {};\n    this._nextStyleNameId = getRandomIdBase();\n  }\n\n  TooltipMarkupStyleCreator.prototype._generateStyleName = function () {\n    return '__EC_aUTo_' + this._nextStyleNameId++;\n  };\n\n  TooltipMarkupStyleCreator.prototype.makeTooltipMarker = function (markerType, colorStr, renderMode) {\n    var markerId = renderMode === 'richText' ? this._generateStyleName() : null;\n    var marker = getTooltipMarker({\n      color: colorStr,\n      type: markerType,\n      renderMode: renderMode,\n      markerId: markerId\n    });\n\n    if (isString(marker)) {\n      return marker;\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        assert(markerId);\n      }\n\n      this.richTextStyles[markerId] = marker.style;\n      return marker.content;\n    }\n  };\n\n  TooltipMarkupStyleCreator.prototype.wrapRichTextStyle = function (text, styles) {\n    var finalStl = {};\n\n    if (isArray(styles)) {\n      each(styles, function (stl) {\n        return extend(finalStl, stl);\n      });\n    } else {\n      extend(finalStl, styles);\n    }\n\n    var styleName = this._generateStyleName();\n\n    this.richTextStyles[styleName] = finalStl;\n    return \"{\" + styleName + \"|\" + text + \"}\";\n  };\n\n  return TooltipMarkupStyleCreator;\n}();\n\nexport { TooltipMarkupStyleCreator };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { trim, isArray, each, reduce } from 'zrender/lib/core/util';\nimport { retrieveVisualColorForTooltipMarker, createTooltipMarkup } from './tooltipMarkup';\nimport { retrieveRawValue } from '../../data/helper/dataProvider';\nimport { isNameSpecified } from '../../util/model';\nexport function defaultSeriesFormatTooltip(opt) {\n  var series = opt.series;\n  var dataIndex = opt.dataIndex;\n  var multipleSeries = opt.multipleSeries;\n  var data = series.getData();\n  var tooltipDims = data.mapDimensionsAll('defaultedTooltip');\n  var tooltipDimLen = tooltipDims.length;\n  var value = series.getRawValue(dataIndex);\n  var isValueArr = isArray(value);\n  var markerColor = retrieveVisualColorForTooltipMarker(series, dataIndex);\n  var inlineValue;\n  var inlineValueType;\n  var subBlocks;\n  var sortParam;\n\n  if (tooltipDimLen > 1 || isValueArr && !tooltipDimLen) {\n    var formatArrResult = formatTooltipArrayValue(value, series, dataIndex, tooltipDims, markerColor);\n    inlineValue = formatArrResult.inlineValues;\n    inlineValueType = formatArrResult.inlineValueTypes;\n    subBlocks = formatArrResult.blocks;\n    sortParam = formatArrResult.inlineValues[0];\n  } else if (tooltipDimLen) {\n    var dimInfo = data.getDimensionInfo(tooltipDims[0]);\n    sortParam = inlineValue = retrieveRawValue(data, dataIndex, tooltipDims[0]);\n    inlineValueType = dimInfo.type;\n  } else {\n    sortParam = inlineValue = isValueArr ? value[0] : value;\n  }\n\n  var seriesNameSpecified = isNameSpecified(series);\n  var seriesName = seriesNameSpecified && series.name || '';\n  var itemName = data.getName(dataIndex);\n  var inlineName = multipleSeries ? seriesName : itemName;\n  return createTooltipMarkup('section', {\n    header: seriesName,\n    noHeader: multipleSeries || !seriesNameSpecified,\n    sortParam: sortParam,\n    blocks: [createTooltipMarkup('nameValue', {\n      markerType: 'item',\n      markerColor: markerColor,\n      name: inlineName,\n      noName: !trim(inlineName),\n      value: inlineValue,\n      valueType: inlineValueType\n    })].concat(subBlocks || [])\n  });\n}\n\nfunction formatTooltipArrayValue(value, series, dataIndex, tooltipDims, colorStr) {\n  var data = series.getData();\n  var isValueMultipleLine = reduce(value, function (isValueMultipleLine, val, idx) {\n    var dimItem = data.getDimensionInfo(idx);\n    return isValueMultipleLine = isValueMultipleLine || dimItem && dimItem.tooltip !== false && dimItem.displayName != null;\n  }, false);\n  var inlineValues = [];\n  var inlineValueTypes = [];\n  var blocks = [];\n  tooltipDims.length ? each(tooltipDims, function (dim) {\n    setEachItem(retrieveRawValue(data, dataIndex, dim), dim);\n  }) : each(value, setEachItem);\n\n  function setEachItem(val, dim) {\n    var dimInfo = data.getDimensionInfo(dim);\n\n    if (!dimInfo || dimInfo.otherDims.tooltip === false) {\n      return;\n    }\n\n    if (isValueMultipleLine) {\n      blocks.push(createTooltipMarkup('nameValue', {\n        markerType: 'subItem',\n        markerColor: colorStr,\n        name: dimInfo.displayName,\n        value: val,\n        valueType: dimInfo.type\n      }));\n    } else {\n      inlineValues.push(val);\n      inlineValueTypes.push(dimInfo.type);\n    }\n  }\n\n  return {\n    inlineValues: inlineValues,\n    inlineValueTypes: inlineValueTypes,\n    blocks: blocks\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends, __spreadArrays } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport * as modelUtil from '../util/model';\nimport ComponentModel from './Component';\nimport { PaletteMixin } from './mixin/palette';\nimport { DataFormatMixin } from '../model/mixin/dataFormat';\nimport { getLayoutParams, mergeLayoutParam, fetchLayoutMode } from '../util/layout';\nimport { createTask } from '../core/task';\nimport { mountExtend } from '../util/clazz';\nimport { SourceManager } from '../data/helper/sourceManager';\nimport { defaultSeriesFormatTooltip } from '../component/tooltip/seriesFormatTooltip';\nvar inner = modelUtil.makeInner();\n\nfunction getSelectionKey(data, dataIndex) {\n  return data.getName(dataIndex) || data.getId(dataIndex);\n}\n\nvar SeriesModel = function (_super) {\n  __extends(SeriesModel, _super);\n\n  function SeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this._selectedDataIndicesMap = {};\n    return _this;\n  }\n\n  SeriesModel.prototype.init = function (option, parentModel, ecModel) {\n    this.seriesIndex = this.componentIndex;\n    this.dataTask = createTask({\n      count: dataTaskCount,\n      reset: dataTaskReset\n    });\n    this.dataTask.context = {\n      model: this\n    };\n    this.mergeDefaultAndTheme(option, ecModel);\n    var sourceManager = inner(this).sourceManager = new SourceManager(this);\n    sourceManager.prepareSource();\n    var data = this.getInitialData(option, ecModel);\n    wrapData(data, this);\n    this.dataTask.context.data = data;\n\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.assert(data, 'getInitialData returned invalid data.');\n    }\n\n    inner(this).dataBeforeProcessed = data;\n    autoSeriesName(this);\n\n    this._initSelectedMapFromData(data);\n  };\n\n  SeriesModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n    var layoutMode = fetchLayoutMode(this);\n    var inputPositionParams = layoutMode ? getLayoutParams(option) : {};\n    var themeSubType = this.subType;\n\n    if (ComponentModel.hasClass(themeSubType)) {\n      themeSubType += 'Series';\n    }\n\n    zrUtil.merge(option, ecModel.getTheme().get(this.subType));\n    zrUtil.merge(option, this.getDefaultOption());\n    modelUtil.defaultEmphasis(option, 'label', ['show']);\n    this.fillDataTextStyle(option.data);\n\n    if (layoutMode) {\n      mergeLayoutParam(option, inputPositionParams, layoutMode);\n    }\n  };\n\n  SeriesModel.prototype.mergeOption = function (newSeriesOption, ecModel) {\n    newSeriesOption = zrUtil.merge(this.option, newSeriesOption, true);\n    this.fillDataTextStyle(newSeriesOption.data);\n    var layoutMode = fetchLayoutMode(this);\n\n    if (layoutMode) {\n      mergeLayoutParam(this.option, newSeriesOption, layoutMode);\n    }\n\n    var sourceManager = inner(this).sourceManager;\n    sourceManager.dirty();\n    sourceManager.prepareSource();\n    var data = this.getInitialData(newSeriesOption, ecModel);\n    wrapData(data, this);\n    this.dataTask.dirty();\n    this.dataTask.context.data = data;\n    inner(this).dataBeforeProcessed = data;\n    autoSeriesName(this);\n\n    this._initSelectedMapFromData(data);\n  };\n\n  SeriesModel.prototype.fillDataTextStyle = function (data) {\n    if (data && !zrUtil.isTypedArray(data)) {\n      var props = ['show'];\n\n      for (var i = 0; i < data.length; i++) {\n        if (data[i] && data[i].label) {\n          modelUtil.defaultEmphasis(data[i], 'label', props);\n        }\n      }\n    }\n  };\n\n  SeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return;\n  };\n\n  SeriesModel.prototype.appendData = function (params) {\n    var data = this.getRawData();\n    data.appendData(params.data);\n  };\n\n  SeriesModel.prototype.getData = function (dataType) {\n    var task = getCurrentTask(this);\n\n    if (task) {\n      var data = task.context.data;\n      return dataType == null ? data : data.getLinkedData(dataType);\n    } else {\n      return inner(this).data;\n    }\n  };\n\n  SeriesModel.prototype.getAllData = function () {\n    var mainData = this.getData();\n    return mainData && mainData.getLinkedDataAll ? mainData.getLinkedDataAll() : [{\n      data: mainData\n    }];\n  };\n\n  SeriesModel.prototype.setData = function (data) {\n    var task = getCurrentTask(this);\n\n    if (task) {\n      var context = task.context;\n      context.outputData = data;\n\n      if (task !== this.dataTask) {\n        context.data = data;\n      }\n    }\n\n    inner(this).data = data;\n  };\n\n  SeriesModel.prototype.getSource = function () {\n    return inner(this).sourceManager.getSource();\n  };\n\n  SeriesModel.prototype.getRawData = function () {\n    return inner(this).dataBeforeProcessed;\n  };\n\n  SeriesModel.prototype.getBaseAxis = function () {\n    var coordSys = this.coordinateSystem;\n    return coordSys && coordSys.getBaseAxis && coordSys.getBaseAxis();\n  };\n\n  SeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    return defaultSeriesFormatTooltip({\n      series: this,\n      dataIndex: dataIndex,\n      multipleSeries: multipleSeries\n    });\n  };\n\n  SeriesModel.prototype.isAnimationEnabled = function () {\n    if (env.node) {\n      return false;\n    }\n\n    var animationEnabled = this.getShallow('animation');\n\n    if (animationEnabled) {\n      if (this.getData().count() > this.getShallow('animationThreshold')) {\n        animationEnabled = false;\n      }\n    }\n\n    return !!animationEnabled;\n  };\n\n  SeriesModel.prototype.restoreData = function () {\n    this.dataTask.dirty();\n  };\n\n  SeriesModel.prototype.getColorFromPalette = function (name, scope, requestColorNum) {\n    var ecModel = this.ecModel;\n    var color = PaletteMixin.prototype.getColorFromPalette.call(this, name, scope, requestColorNum);\n\n    if (!color) {\n      color = ecModel.getColorFromPalette(name, scope, requestColorNum);\n    }\n\n    return color;\n  };\n\n  SeriesModel.prototype.coordDimToDataDim = function (coordDim) {\n    return this.getRawData().mapDimensionsAll(coordDim);\n  };\n\n  SeriesModel.prototype.getProgressive = function () {\n    return this.get('progressive');\n  };\n\n  SeriesModel.prototype.getProgressiveThreshold = function () {\n    return this.get('progressiveThreshold');\n  };\n\n  SeriesModel.prototype.select = function (innerDataIndices, dataType) {\n    this._innerSelect(this.getData(dataType), innerDataIndices);\n  };\n\n  SeriesModel.prototype.unselect = function (innerDataIndices, dataType) {\n    var selectedMap = this.option.selectedMap;\n\n    if (!selectedMap) {\n      return;\n    }\n\n    var data = this.getData(dataType);\n\n    for (var i = 0; i < innerDataIndices.length; i++) {\n      var dataIndex = innerDataIndices[i];\n      var nameOrId = getSelectionKey(data, dataIndex);\n      selectedMap[nameOrId] = false;\n      this._selectedDataIndicesMap[nameOrId] = -1;\n    }\n  };\n\n  SeriesModel.prototype.toggleSelect = function (innerDataIndices, dataType) {\n    var tmpArr = [];\n\n    for (var i = 0; i < innerDataIndices.length; i++) {\n      tmpArr[0] = innerDataIndices[i];\n      this.isSelected(innerDataIndices[i], dataType) ? this.unselect(tmpArr, dataType) : this.select(tmpArr, dataType);\n    }\n  };\n\n  SeriesModel.prototype.getSelectedDataIndices = function () {\n    var selectedDataIndicesMap = this._selectedDataIndicesMap;\n    var nameOrIds = zrUtil.keys(selectedDataIndicesMap);\n    var dataIndices = [];\n\n    for (var i = 0; i < nameOrIds.length; i++) {\n      var dataIndex = selectedDataIndicesMap[nameOrIds[i]];\n\n      if (dataIndex >= 0) {\n        dataIndices.push(dataIndex);\n      }\n    }\n\n    return dataIndices;\n  };\n\n  SeriesModel.prototype.isSelected = function (dataIndex, dataType) {\n    var selectedMap = this.option.selectedMap;\n\n    if (!selectedMap) {\n      return false;\n    }\n\n    var data = this.getData(dataType);\n    var nameOrId = getSelectionKey(data, dataIndex);\n    return selectedMap[nameOrId] || false;\n  };\n\n  SeriesModel.prototype._innerSelect = function (data, innerDataIndices) {\n    var _a, _b;\n\n    var selectedMode = this.option.selectedMode;\n    var len = innerDataIndices.length;\n\n    if (!selectedMode || !len) {\n      return;\n    }\n\n    if (selectedMode === 'multiple') {\n      var selectedMap = this.option.selectedMap || (this.option.selectedMap = {});\n\n      for (var i = 0; i < len; i++) {\n        var dataIndex = innerDataIndices[i];\n        var nameOrId = getSelectionKey(data, dataIndex);\n        selectedMap[nameOrId] = true;\n        this._selectedDataIndicesMap[nameOrId] = data.getRawIndex(dataIndex);\n      }\n    } else if (selectedMode === 'single' || selectedMode === true) {\n      var lastDataIndex = innerDataIndices[len - 1];\n      var nameOrId = getSelectionKey(data, lastDataIndex);\n      this.option.selectedMap = (_a = {}, _a[nameOrId] = true, _a);\n      this._selectedDataIndicesMap = (_b = {}, _b[nameOrId] = data.getRawIndex(lastDataIndex), _b);\n    }\n  };\n\n  SeriesModel.prototype._initSelectedMapFromData = function (data) {\n    if (this.option.selectedMap) {\n      return;\n    }\n\n    var dataIndices = [];\n\n    if (data.hasItemOption) {\n      data.each(function (idx) {\n        var rawItem = data.getRawDataItem(idx);\n\n        if (typeof rawItem === 'object' && rawItem.selected) {\n          dataIndices.push(idx);\n        }\n      });\n    }\n\n    if (dataIndices.length > 0) {\n      this._innerSelect(data, dataIndices);\n    }\n  };\n\n  SeriesModel.registerClass = function (clz) {\n    return ComponentModel.registerClass(clz);\n  };\n\n  SeriesModel.protoInitialize = function () {\n    var proto = SeriesModel.prototype;\n    proto.type = 'series.__base__';\n    proto.seriesIndex = 0;\n    proto.useColorPaletteOnData = false;\n    proto.ignoreStyleOnData = false;\n    proto.hasSymbolVisual = false;\n    proto.defaultSymbol = 'circle';\n    proto.visualStyleAccessPath = 'itemStyle';\n    proto.visualDrawType = 'fill';\n  }();\n\n  return SeriesModel;\n}(ComponentModel);\n\nzrUtil.mixin(SeriesModel, DataFormatMixin);\nzrUtil.mixin(SeriesModel, PaletteMixin);\nmountExtend(SeriesModel, ComponentModel);\n\nfunction autoSeriesName(seriesModel) {\n  var name = seriesModel.name;\n\n  if (!modelUtil.isNameSpecified(seriesModel)) {\n    seriesModel.name = getSeriesAutoName(seriesModel) || name;\n  }\n}\n\nfunction getSeriesAutoName(seriesModel) {\n  var data = seriesModel.getRawData();\n  var dataDims = data.mapDimensionsAll('seriesName');\n  var nameArr = [];\n  zrUtil.each(dataDims, function (dataDim) {\n    var dimInfo = data.getDimensionInfo(dataDim);\n    dimInfo.displayName && nameArr.push(dimInfo.displayName);\n  });\n  return nameArr.join(' ');\n}\n\nfunction dataTaskCount(context) {\n  return context.model.getRawData().count();\n}\n\nfunction dataTaskReset(context) {\n  var seriesModel = context.model;\n  seriesModel.setData(seriesModel.getRawData().cloneShallow());\n  return dataTaskProgress;\n}\n\nfunction dataTaskProgress(param, context) {\n  if (context.outputData && param.end > context.outputData.count()) {\n    context.model.getRawData().cloneShallow(context.outputData);\n  }\n}\n\nfunction wrapData(data, seriesModel) {\n  zrUtil.each(__spreadArrays(data.CHANGABLE_METHODS, data.DOWNSAMPLE_METHODS), function (methodName) {\n    data.wrapMethod(methodName, zrUtil.curry(onDataChange, seriesModel));\n  });\n}\n\nfunction onDataChange(seriesModel, newList) {\n  var task = getCurrentTask(seriesModel);\n\n  if (task) {\n    task.setOutputEnd((newList || this).count());\n  }\n\n  return newList;\n}\n\nfunction getCurrentTask(seriesModel) {\n  var scheduler = (seriesModel.ecModel || {}).scheduler;\n  var pipeline = scheduler && scheduler.getPipeline(seriesModel.uid);\n\n  if (pipeline) {\n    var task = pipeline.currentTask;\n\n    if (task) {\n      var agentStubMap = task.agentStubMap;\n\n      if (agentStubMap) {\n        task = agentStubMap.get(seriesModel.uid);\n      }\n    }\n\n    return task;\n  }\n}\n\nexport default SeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Group from 'zrender/lib/graphic/Group';\nimport * as componentUtil from '../util/component';\nimport * as clazzUtil from '../util/clazz';\n\nvar ComponentView = function () {\n  function ComponentView() {\n    this.group = new Group();\n    this.uid = componentUtil.getUID('viewComponent');\n  }\n\n  ComponentView.prototype.init = function (ecModel, api) {};\n\n  ComponentView.prototype.render = function (model, ecModel, api, payload) {};\n\n  ComponentView.prototype.dispose = function (ecModel, api) {};\n\n  ComponentView.prototype.updateView = function (model, ecModel, api, payload) {};\n\n  ComponentView.prototype.updateLayout = function (model, ecModel, api, payload) {};\n\n  ComponentView.prototype.updateVisual = function (model, ecModel, api, payload) {};\n\n  ComponentView.prototype.blurSeries = function (seriesModels, ecModel) {};\n\n  return ComponentView;\n}();\n\n;\nclazzUtil.enableClassExtend(ComponentView);\nclazzUtil.enableClassManagement(ComponentView);\nexport default ComponentView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner } from '../../util/model';\nexport default function createRenderPlanner() {\n  var inner = makeInner();\n  return function (seriesModel) {\n    var fields = inner(seriesModel);\n    var pipelineContext = seriesModel.pipelineContext;\n    var originalLarge = !!fields.large;\n    var originalProgressive = !!fields.progressiveRender;\n    var large = fields.large = !!(pipelineContext && pipelineContext.large);\n    var progressive = fields.progressiveRender = !!(pipelineContext && pipelineContext.progressiveRender);\n    return !!(originalLarge !== large || originalProgressive !== progressive) && 'reset';\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each } from 'zrender/lib/core/util';\nimport Group from 'zrender/lib/graphic/Group';\nimport * as componentUtil from '../util/component';\nimport * as clazzUtil from '../util/clazz';\nimport * as modelUtil from '../util/model';\nimport { enterEmphasis, leaveEmphasis, getHighlightDigit } from '../util/states';\nimport { createTask } from '../core/task';\nimport createRenderPlanner from '../chart/helper/createRenderPlanner';\nvar inner = modelUtil.makeInner();\nvar renderPlanner = createRenderPlanner();\n\nvar ChartView = function () {\n  function ChartView() {\n    this.group = new Group();\n    this.uid = componentUtil.getUID('viewChart');\n    this.renderTask = createTask({\n      plan: renderTaskPlan,\n      reset: renderTaskReset\n    });\n    this.renderTask.context = {\n      view: this\n    };\n  }\n\n  ChartView.prototype.init = function (ecModel, api) {};\n\n  ChartView.prototype.render = function (seriesModel, ecModel, api, payload) {};\n\n  ChartView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\n    toggleHighlight(seriesModel.getData(), payload, 'emphasis');\n  };\n\n  ChartView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\n    toggleHighlight(seriesModel.getData(), payload, 'normal');\n  };\n\n  ChartView.prototype.remove = function (ecModel, api) {\n    this.group.removeAll();\n  };\n\n  ChartView.prototype.dispose = function (ecModel, api) {};\n\n  ChartView.prototype.updateView = function (seriesModel, ecModel, api, payload) {\n    this.render(seriesModel, ecModel, api, payload);\n  };\n\n  ChartView.prototype.updateLayout = function (seriesModel, ecModel, api, payload) {\n    this.render(seriesModel, ecModel, api, payload);\n  };\n\n  ChartView.prototype.updateVisual = function (seriesModel, ecModel, api, payload) {\n    this.render(seriesModel, ecModel, api, payload);\n  };\n\n  ChartView.markUpdateMethod = function (payload, methodName) {\n    inner(payload).updateMethod = methodName;\n  };\n\n  ChartView.protoInitialize = function () {\n    var proto = ChartView.prototype;\n    proto.type = 'chart';\n  }();\n\n  return ChartView;\n}();\n\n;\n\nfunction elSetState(el, state, highlightDigit) {\n  if (el) {\n    (state === 'emphasis' ? enterEmphasis : leaveEmphasis)(el, highlightDigit);\n  }\n}\n\nfunction toggleHighlight(data, payload, state) {\n  var dataIndex = modelUtil.queryDataIndex(data, payload);\n  var highlightDigit = payload && payload.highlightKey != null ? getHighlightDigit(payload.highlightKey) : null;\n\n  if (dataIndex != null) {\n    each(modelUtil.normalizeToArray(dataIndex), function (dataIdx) {\n      elSetState(data.getItemGraphicEl(dataIdx), state, highlightDigit);\n    });\n  } else {\n    data.eachItemGraphicEl(function (el) {\n      elSetState(el, state, highlightDigit);\n    });\n  }\n}\n\nclazzUtil.enableClassExtend(ChartView, ['dispose']);\nclazzUtil.enableClassManagement(ChartView);\n\nfunction renderTaskPlan(context) {\n  return renderPlanner(context.model);\n}\n\nfunction renderTaskReset(context) {\n  var seriesModel = context.model;\n  var ecModel = context.ecModel;\n  var api = context.api;\n  var payload = context.payload;\n  var progressiveRender = seriesModel.pipelineContext.progressiveRender;\n  var view = context.view;\n  var updateMethod = payload && inner(payload).updateMethod;\n  var methodName = progressiveRender ? 'incrementalPrepareRender' : updateMethod && view[updateMethod] ? updateMethod : 'render';\n\n  if (methodName !== 'render') {\n    view[methodName](seriesModel, ecModel, api, payload);\n  }\n\n  return progressMethodMap[methodName];\n}\n\nvar progressMethodMap = {\n  incrementalPrepareRender: {\n    progress: function (params, context) {\n      context.view.incrementalRender(params, context.model, context.ecModel, context.api, context.payload);\n    }\n  },\n  render: {\n    forceFirstProgress: true,\n    progress: function (params, context) {\n      context.view.render(context.model, context.ecModel, context.api, context.payload);\n    }\n  }\n};\nexport default ChartView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar ORIGIN_METHOD = '\\0__throttleOriginMethod';\nvar RATE = '\\0__throttleRate';\nvar THROTTLE_TYPE = '\\0__throttleType';\n;\nexport function throttle(fn, delay, debounce) {\n  var currCall;\n  var lastCall = 0;\n  var lastExec = 0;\n  var timer = null;\n  var diff;\n  var scope;\n  var args;\n  var debounceNextCall;\n  delay = delay || 0;\n\n  function exec() {\n    lastExec = new Date().getTime();\n    timer = null;\n    fn.apply(scope, args || []);\n  }\n\n  var cb = function () {\n    var cbArgs = [];\n\n    for (var _i = 0; _i < arguments.length; _i++) {\n      cbArgs[_i] = arguments[_i];\n    }\n\n    currCall = new Date().getTime();\n    scope = this;\n    args = cbArgs;\n    var thisDelay = debounceNextCall || delay;\n    var thisDebounce = debounceNextCall || debounce;\n    debounceNextCall = null;\n    diff = currCall - (thisDebounce ? lastCall : lastExec) - thisDelay;\n    clearTimeout(timer);\n\n    if (thisDebounce) {\n      timer = setTimeout(exec, thisDelay);\n    } else {\n      if (diff >= 0) {\n        exec();\n      } else {\n        timer = setTimeout(exec, -diff);\n      }\n    }\n\n    lastCall = currCall;\n  };\n\n  cb.clear = function () {\n    if (timer) {\n      clearTimeout(timer);\n      timer = null;\n    }\n  };\n\n  cb.debounceNextCall = function (debounceDelay) {\n    debounceNextCall = debounceDelay;\n  };\n\n  return cb;\n}\nexport function createOrUpdate(obj, fnAttr, rate, throttleType) {\n  var fn = obj[fnAttr];\n\n  if (!fn) {\n    return;\n  }\n\n  var originFn = fn[ORIGIN_METHOD] || fn;\n  var lastThrottleType = fn[THROTTLE_TYPE];\n  var lastRate = fn[RATE];\n\n  if (lastRate !== rate || lastThrottleType !== throttleType) {\n    if (rate == null || !throttleType) {\n      return obj[fnAttr] = originFn;\n    }\n\n    fn = obj[fnAttr] = throttle(originFn, rate, throttleType === 'debounce');\n    fn[ORIGIN_METHOD] = originFn;\n    fn[THROTTLE_TYPE] = throttleType;\n    fn[RATE] = rate;\n  }\n\n  return fn;\n}\nexport function clear(obj, fnAttr) {\n  var fn = obj[fnAttr];\n\n  if (fn && fn[ORIGIN_METHOD]) {\n    obj[fnAttr] = fn[ORIGIN_METHOD];\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isFunction, extend, createHashMap } from 'zrender/lib/core/util';\nimport makeStyleMapper from '../model/mixin/makeStyleMapper';\nimport { ITEM_STYLE_KEY_MAP } from '../model/mixin/itemStyle';\nimport { LINE_STYLE_KEY_MAP } from '../model/mixin/lineStyle';\nimport Model from '../model/Model';\nimport { makeInner } from '../util/model';\nvar inner = makeInner();\nvar defaultStyleMappers = {\n  itemStyle: makeStyleMapper(ITEM_STYLE_KEY_MAP, true),\n  lineStyle: makeStyleMapper(LINE_STYLE_KEY_MAP, true)\n};\nvar defaultColorKey = {\n  lineStyle: 'stroke',\n  itemStyle: 'fill'\n};\n\nfunction getStyleMapper(seriesModel, stylePath) {\n  var styleMapper = seriesModel.visualStyleMapper || defaultStyleMappers[stylePath];\n\n  if (!styleMapper) {\n    console.warn(\"Unkown style type '\" + stylePath + \"'.\");\n    return defaultStyleMappers.itemStyle;\n  }\n\n  return styleMapper;\n}\n\nfunction getDefaultColorKey(seriesModel, stylePath) {\n  var colorKey = seriesModel.visualDrawType || defaultColorKey[stylePath];\n\n  if (!colorKey) {\n    console.warn(\"Unkown style type '\" + stylePath + \"'.\");\n    return 'fill';\n  }\n\n  return colorKey;\n}\n\nvar seriesStyleTask = {\n  createOnAllSeries: true,\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    var data = seriesModel.getData();\n    var stylePath = seriesModel.visualStyleAccessPath || 'itemStyle';\n    var styleModel = seriesModel.getModel(stylePath);\n    var getStyle = getStyleMapper(seriesModel, stylePath);\n    var globalStyle = getStyle(styleModel);\n    var decalOption = styleModel.getShallow('decal');\n\n    if (decalOption) {\n      data.setVisual('decal', decalOption);\n      decalOption.dirty = true;\n    }\n\n    var colorKey = getDefaultColorKey(seriesModel, stylePath);\n    var color = globalStyle[colorKey];\n    var colorCallback = isFunction(color) ? color : null;\n\n    if (!globalStyle[colorKey] || colorCallback) {\n      globalStyle[colorKey] = seriesModel.getColorFromPalette(seriesModel.name, null, ecModel.getSeriesCount());\n      data.setVisual('colorFromPalette', true);\n    }\n\n    data.setVisual('style', globalStyle);\n    data.setVisual('drawType', colorKey);\n\n    if (!ecModel.isSeriesFiltered(seriesModel) && colorCallback) {\n      data.setVisual('colorFromPalette', false);\n      return {\n        dataEach: function (data, idx) {\n          var dataParams = seriesModel.getDataParams(idx);\n          var itemStyle = extend({}, globalStyle);\n          itemStyle[colorKey] = colorCallback(dataParams);\n          data.setItemVisual(idx, 'style', itemStyle);\n        }\n      };\n    }\n  }\n};\nvar sharedModel = new Model();\nvar dataStyleTask = {\n  createOnAllSeries: true,\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    if (seriesModel.ignoreStyleOnData || ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var stylePath = seriesModel.visualStyleAccessPath || 'itemStyle';\n    var getStyle = getStyleMapper(seriesModel, stylePath);\n    var colorKey = data.getVisual('drawType');\n    return {\n      dataEach: data.hasItemOption ? function (data, idx) {\n        var rawItem = data.getRawDataItem(idx);\n\n        if (rawItem && rawItem[stylePath]) {\n          sharedModel.option = rawItem[stylePath];\n          var style = getStyle(sharedModel);\n          var existsStyle = data.ensureUniqueItemVisual(idx, 'style');\n          extend(existsStyle, style);\n\n          if (sharedModel.option.decal) {\n            data.setItemVisual(idx, 'decal', sharedModel.option.decal);\n            sharedModel.option.decal.dirty = true;\n          }\n\n          if (colorKey in style) {\n            data.setItemVisual(idx, 'colorFromPalette', false);\n          }\n        }\n      } : null\n    };\n  }\n};\nvar dataColorPaletteTask = {\n  performRawSeries: true,\n  overallReset: function (ecModel) {\n    var paletteScopeGroupByType = createHashMap();\n    ecModel.eachSeries(function (seriesModel) {\n      if (!seriesModel.useColorPaletteOnData) {\n        return;\n      }\n\n      var colorScope = paletteScopeGroupByType.get(seriesModel.type);\n\n      if (!colorScope) {\n        colorScope = {};\n        paletteScopeGroupByType.set(seriesModel.type, colorScope);\n      }\n\n      inner(seriesModel).scope = colorScope;\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      if (!seriesModel.useColorPaletteOnData || ecModel.isSeriesFiltered(seriesModel)) {\n        return;\n      }\n\n      var dataAll = seriesModel.getRawData();\n      var idxMap = {};\n      var data = seriesModel.getData();\n      var colorScope = inner(seriesModel).scope;\n      var stylePath = seriesModel.visualStyleAccessPath || 'itemStyle';\n      var colorKey = getDefaultColorKey(seriesModel, stylePath);\n      data.each(function (idx) {\n        var rawIdx = data.getRawIndex(idx);\n        idxMap[rawIdx] = idx;\n      });\n      dataAll.each(function (rawIdx) {\n        var idx = idxMap[rawIdx];\n        var fromPalette = data.getItemVisual(idx, 'colorFromPalette');\n\n        if (fromPalette) {\n          var itemStyle = data.ensureUniqueItemVisual(idx, 'style');\n          var name_1 = dataAll.getName(rawIdx) || rawIdx + '';\n          var dataCount = dataAll.count();\n          itemStyle[colorKey] = seriesModel.getColorFromPalette(name_1, colorScope, dataCount);\n        }\n      });\n    });\n  }\n};\nexport { seriesStyleTask, dataStyleTask, dataColorPaletteTask };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../util/graphic';\nvar PI = Math.PI;\nexport default function defaultLoading(api, opts) {\n  opts = opts || {};\n  zrUtil.defaults(opts, {\n    text: 'loading',\n    textColor: '#000',\n    fontSize: 12,\n    fontWeight: 'normal',\n    fontStyle: 'normal',\n    fontFamily: 'sans-serif',\n    maskColor: 'rgba(255, 255, 255, 0.8)',\n    showSpinner: true,\n    color: '#5470c6',\n    spinnerRadius: 10,\n    lineWidth: 5,\n    zlevel: 0\n  });\n  var group = new graphic.Group();\n  var mask = new graphic.Rect({\n    style: {\n      fill: opts.maskColor\n    },\n    zlevel: opts.zlevel,\n    z: 10000\n  });\n  group.add(mask);\n  var textContent = new graphic.Text({\n    style: {\n      text: opts.text,\n      fill: opts.textColor,\n      fontSize: opts.fontSize,\n      fontWeight: opts.fontWeight,\n      fontStyle: opts.fontStyle,\n      fontFamily: opts.fontFamily\n    }\n  });\n  var labelRect = new graphic.Rect({\n    style: {\n      fill: 'none'\n    },\n    textContent: textContent,\n    textConfig: {\n      position: 'right',\n      distance: 10\n    },\n    zlevel: opts.zlevel,\n    z: 10001\n  });\n  group.add(labelRect);\n  var arc;\n\n  if (opts.showSpinner) {\n    arc = new graphic.Arc({\n      shape: {\n        startAngle: -PI / 2,\n        endAngle: -PI / 2 + 0.1,\n        r: opts.spinnerRadius\n      },\n      style: {\n        stroke: opts.color,\n        lineCap: 'round',\n        lineWidth: opts.lineWidth\n      },\n      zlevel: opts.zlevel,\n      z: 10001\n    });\n    arc.animateShape(true).when(1000, {\n      endAngle: PI * 3 / 2\n    }).start('circularInOut');\n    arc.animateShape(true).when(1000, {\n      startAngle: PI * 3 / 2\n    }).delay(300).start('circularInOut');\n    group.add(arc);\n  }\n\n  group.resize = function () {\n    var textWidth = textContent.getBoundingRect().width;\n    var r = opts.showSpinner ? opts.spinnerRadius : 0;\n    var cx = (api.getWidth() - r * 2 - (opts.showSpinner && textWidth ? 10 : 0) - textWidth) / 2 - (opts.showSpinner && textWidth ? 0 : 5 + textWidth / 2) + (opts.showSpinner ? 0 : textWidth / 2) + (textWidth ? 0 : r);\n    var cy = api.getHeight() / 2;\n    opts.showSpinner && arc.setShape({\n      cx: cx,\n      cy: cy\n    });\n    labelRect.setShape({\n      x: cx - r,\n      y: cy - r,\n      width: r * 2,\n      height: r * 2\n    });\n    mask.setShape({\n      x: 0,\n      y: 0,\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n  };\n\n  group.resize();\n  return group;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, map, isFunction, createHashMap, noop, assert } from 'zrender/lib/core/util';\nimport { createTask } from './task';\nimport { getUID } from '../util/component';\nimport GlobalModel from '../model/Global';\nimport ExtensionAPI from './ExtensionAPI';\nimport { normalizeToArray } from '../util/model';\n;\n\nvar Scheduler = function () {\n  function Scheduler(ecInstance, api, dataProcessorHandlers, visualHandlers) {\n    this._stageTaskMap = createHashMap();\n    this.ecInstance = ecInstance;\n    this.api = api;\n    dataProcessorHandlers = this._dataProcessorHandlers = dataProcessorHandlers.slice();\n    visualHandlers = this._visualHandlers = visualHandlers.slice();\n    this._allHandlers = dataProcessorHandlers.concat(visualHandlers);\n  }\n\n  Scheduler.prototype.restoreData = function (ecModel, payload) {\n    ecModel.restoreData(payload);\n\n    this._stageTaskMap.each(function (taskRecord) {\n      var overallTask = taskRecord.overallTask;\n      overallTask && overallTask.dirty();\n    });\n  };\n\n  Scheduler.prototype.getPerformArgs = function (task, isBlock) {\n    if (!task.__pipeline) {\n      return;\n    }\n\n    var pipeline = this._pipelineMap.get(task.__pipeline.id);\n\n    var pCtx = pipeline.context;\n    var incremental = !isBlock && pipeline.progressiveEnabled && (!pCtx || pCtx.progressiveRender) && task.__idxInPipeline > pipeline.blockIndex;\n    var step = incremental ? pipeline.step : null;\n    var modDataCount = pCtx && pCtx.modDataCount;\n    var modBy = modDataCount != null ? Math.ceil(modDataCount / step) : null;\n    return {\n      step: step,\n      modBy: modBy,\n      modDataCount: modDataCount\n    };\n  };\n\n  Scheduler.prototype.getPipeline = function (pipelineId) {\n    return this._pipelineMap.get(pipelineId);\n  };\n\n  Scheduler.prototype.updateStreamModes = function (seriesModel, view) {\n    var pipeline = this._pipelineMap.get(seriesModel.uid);\n\n    var data = seriesModel.getData();\n    var dataLen = data.count();\n    var progressiveRender = pipeline.progressiveEnabled && view.incrementalPrepareRender && dataLen >= pipeline.threshold;\n    var large = seriesModel.get('large') && dataLen >= seriesModel.get('largeThreshold');\n    var modDataCount = seriesModel.get('progressiveChunkMode') === 'mod' ? dataLen : null;\n    seriesModel.pipelineContext = pipeline.context = {\n      progressiveRender: progressiveRender,\n      modDataCount: modDataCount,\n      large: large\n    };\n  };\n\n  Scheduler.prototype.restorePipelines = function (ecModel) {\n    var scheduler = this;\n    var pipelineMap = scheduler._pipelineMap = createHashMap();\n    ecModel.eachSeries(function (seriesModel) {\n      var progressive = seriesModel.getProgressive();\n      var pipelineId = seriesModel.uid;\n      pipelineMap.set(pipelineId, {\n        id: pipelineId,\n        head: null,\n        tail: null,\n        threshold: seriesModel.getProgressiveThreshold(),\n        progressiveEnabled: progressive && !(seriesModel.preventIncremental && seriesModel.preventIncremental()),\n        blockIndex: -1,\n        step: Math.round(progressive || 700),\n        count: 0\n      });\n\n      scheduler._pipe(seriesModel, seriesModel.dataTask);\n    });\n  };\n\n  Scheduler.prototype.prepareStageTasks = function () {\n    var stageTaskMap = this._stageTaskMap;\n    var ecModel = this.api.getModel();\n    var api = this.api;\n    each(this._allHandlers, function (handler) {\n      var record = stageTaskMap.get(handler.uid) || stageTaskMap.set(handler.uid, {});\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = '\"reset\" and \"overallReset\" must not be both specified.';\n      }\n\n      assert(!(handler.reset && handler.overallReset), errMsg);\n      handler.reset && this._createSeriesStageTask(handler, record, ecModel, api);\n      handler.overallReset && this._createOverallStageTask(handler, record, ecModel, api);\n    }, this);\n  };\n\n  Scheduler.prototype.prepareView = function (view, model, ecModel, api) {\n    var renderTask = view.renderTask;\n    var context = renderTask.context;\n    context.model = model;\n    context.ecModel = ecModel;\n    context.api = api;\n    renderTask.__block = !view.incrementalPrepareRender;\n\n    this._pipe(model, renderTask);\n  };\n\n  Scheduler.prototype.performDataProcessorTasks = function (ecModel, payload) {\n    this._performStageTasks(this._dataProcessorHandlers, ecModel, payload, {\n      block: true\n    });\n  };\n\n  Scheduler.prototype.performVisualTasks = function (ecModel, payload, opt) {\n    this._performStageTasks(this._visualHandlers, ecModel, payload, opt);\n  };\n\n  Scheduler.prototype._performStageTasks = function (stageHandlers, ecModel, payload, opt) {\n    opt = opt || {};\n    var unfinished = false;\n    var scheduler = this;\n    each(stageHandlers, function (stageHandler, idx) {\n      if (opt.visualType && opt.visualType !== stageHandler.visualType) {\n        return;\n      }\n\n      var stageHandlerRecord = scheduler._stageTaskMap.get(stageHandler.uid);\n\n      var seriesTaskMap = stageHandlerRecord.seriesTaskMap;\n      var overallTask = stageHandlerRecord.overallTask;\n\n      if (overallTask) {\n        var overallNeedDirty_1;\n        var agentStubMap = overallTask.agentStubMap;\n        agentStubMap.each(function (stub) {\n          if (needSetDirty(opt, stub)) {\n            stub.dirty();\n            overallNeedDirty_1 = true;\n          }\n        });\n        overallNeedDirty_1 && overallTask.dirty();\n        scheduler.updatePayload(overallTask, payload);\n        var performArgs_1 = scheduler.getPerformArgs(overallTask, opt.block);\n        agentStubMap.each(function (stub) {\n          stub.perform(performArgs_1);\n        });\n\n        if (overallTask.perform(performArgs_1)) {\n          unfinished = true;\n        }\n      } else if (seriesTaskMap) {\n        seriesTaskMap.each(function (task, pipelineId) {\n          if (needSetDirty(opt, task)) {\n            task.dirty();\n          }\n\n          var performArgs = scheduler.getPerformArgs(task, opt.block);\n          performArgs.skip = !stageHandler.performRawSeries && ecModel.isSeriesFiltered(task.context.model);\n          scheduler.updatePayload(task, payload);\n\n          if (task.perform(performArgs)) {\n            unfinished = true;\n          }\n        });\n      }\n    });\n\n    function needSetDirty(opt, task) {\n      return opt.setDirty && (!opt.dirtyMap || opt.dirtyMap.get(task.__pipeline.id));\n    }\n\n    this.unfinished = unfinished || this.unfinished;\n  };\n\n  Scheduler.prototype.performSeriesTasks = function (ecModel) {\n    var unfinished;\n    ecModel.eachSeries(function (seriesModel) {\n      unfinished = seriesModel.dataTask.perform() || unfinished;\n    });\n    this.unfinished = unfinished || this.unfinished;\n  };\n\n  Scheduler.prototype.plan = function () {\n    this._pipelineMap.each(function (pipeline) {\n      var task = pipeline.tail;\n\n      do {\n        if (task.__block) {\n          pipeline.blockIndex = task.__idxInPipeline;\n          break;\n        }\n\n        task = task.getUpstream();\n      } while (task);\n    });\n  };\n\n  Scheduler.prototype.updatePayload = function (task, payload) {\n    payload !== 'remain' && (task.context.payload = payload);\n  };\n\n  Scheduler.prototype._createSeriesStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\n    var scheduler = this;\n    var oldSeriesTaskMap = stageHandlerRecord.seriesTaskMap;\n    var newSeriesTaskMap = stageHandlerRecord.seriesTaskMap = createHashMap();\n    var seriesType = stageHandler.seriesType;\n    var getTargetSeries = stageHandler.getTargetSeries;\n\n    if (stageHandler.createOnAllSeries) {\n      ecModel.eachRawSeries(create);\n    } else if (seriesType) {\n      ecModel.eachRawSeriesByType(seriesType, create);\n    } else if (getTargetSeries) {\n      getTargetSeries(ecModel, api).each(create);\n    }\n\n    function create(seriesModel) {\n      var pipelineId = seriesModel.uid;\n      var task = newSeriesTaskMap.set(pipelineId, oldSeriesTaskMap && oldSeriesTaskMap.get(pipelineId) || createTask({\n        plan: seriesTaskPlan,\n        reset: seriesTaskReset,\n        count: seriesTaskCount\n      }));\n      task.context = {\n        model: seriesModel,\n        ecModel: ecModel,\n        api: api,\n        useClearVisual: stageHandler.isVisual && !stageHandler.isLayout,\n        plan: stageHandler.plan,\n        reset: stageHandler.reset,\n        scheduler: scheduler\n      };\n\n      scheduler._pipe(seriesModel, task);\n    }\n  };\n\n  Scheduler.prototype._createOverallStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\n    var scheduler = this;\n    var overallTask = stageHandlerRecord.overallTask = stageHandlerRecord.overallTask || createTask({\n      reset: overallTaskReset\n    });\n    overallTask.context = {\n      ecModel: ecModel,\n      api: api,\n      overallReset: stageHandler.overallReset,\n      scheduler: scheduler\n    };\n    var oldAgentStubMap = overallTask.agentStubMap;\n    var newAgentStubMap = overallTask.agentStubMap = createHashMap();\n    var seriesType = stageHandler.seriesType;\n    var getTargetSeries = stageHandler.getTargetSeries;\n    var overallProgress = true;\n    var shouldOverallTaskDirty = false;\n    var errMsg = '';\n\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = '\"createOnAllSeries\" do not supported for \"overallReset\", ' + 'becuase it will block all streams.';\n    }\n\n    assert(!stageHandler.createOnAllSeries, errMsg);\n\n    if (seriesType) {\n      ecModel.eachRawSeriesByType(seriesType, createStub);\n    } else if (getTargetSeries) {\n      getTargetSeries(ecModel, api).each(createStub);\n    } else {\n      overallProgress = false;\n      each(ecModel.getSeries(), createStub);\n    }\n\n    function createStub(seriesModel) {\n      var pipelineId = seriesModel.uid;\n      var stub = newAgentStubMap.set(pipelineId, oldAgentStubMap && oldAgentStubMap.get(pipelineId) || (shouldOverallTaskDirty = true, createTask({\n        reset: stubReset,\n        onDirty: stubOnDirty\n      })));\n      stub.context = {\n        model: seriesModel,\n        overallProgress: overallProgress\n      };\n      stub.agent = overallTask;\n      stub.__block = overallProgress;\n\n      scheduler._pipe(seriesModel, stub);\n    }\n\n    if (shouldOverallTaskDirty) {\n      overallTask.dirty();\n    }\n  };\n\n  Scheduler.prototype._pipe = function (seriesModel, task) {\n    var pipelineId = seriesModel.uid;\n\n    var pipeline = this._pipelineMap.get(pipelineId);\n\n    !pipeline.head && (pipeline.head = task);\n    pipeline.tail && pipeline.tail.pipe(task);\n    pipeline.tail = task;\n    task.__idxInPipeline = pipeline.count++;\n    task.__pipeline = pipeline;\n  };\n\n  Scheduler.wrapStageHandler = function (stageHandler, visualType) {\n    if (isFunction(stageHandler)) {\n      stageHandler = {\n        overallReset: stageHandler,\n        seriesType: detectSeriseType(stageHandler)\n      };\n    }\n\n    stageHandler.uid = getUID('stageHandler');\n    visualType && (stageHandler.visualType = visualType);\n    return stageHandler;\n  };\n\n  ;\n  return Scheduler;\n}();\n\nfunction overallTaskReset(context) {\n  context.overallReset(context.ecModel, context.api, context.payload);\n}\n\nfunction stubReset(context) {\n  return context.overallProgress && stubProgress;\n}\n\nfunction stubProgress() {\n  this.agent.dirty();\n  this.getDownstream().dirty();\n}\n\nfunction stubOnDirty() {\n  this.agent && this.agent.dirty();\n}\n\nfunction seriesTaskPlan(context) {\n  return context.plan ? context.plan(context.model, context.ecModel, context.api, context.payload) : null;\n}\n\nfunction seriesTaskReset(context) {\n  if (context.useClearVisual) {\n    context.data.clearAllVisual();\n  }\n\n  var resetDefines = context.resetDefines = normalizeToArray(context.reset(context.model, context.ecModel, context.api, context.payload));\n  return resetDefines.length > 1 ? map(resetDefines, function (v, idx) {\n    return makeSeriesTaskProgress(idx);\n  }) : singleSeriesTaskProgress;\n}\n\nvar singleSeriesTaskProgress = makeSeriesTaskProgress(0);\n\nfunction makeSeriesTaskProgress(resetDefineIdx) {\n  return function (params, context) {\n    var data = context.data;\n    var resetDefine = context.resetDefines[resetDefineIdx];\n\n    if (resetDefine && resetDefine.dataEach) {\n      for (var i = params.start; i < params.end; i++) {\n        resetDefine.dataEach(data, i);\n      }\n    } else if (resetDefine && resetDefine.progress) {\n      resetDefine.progress(params, data);\n    }\n  };\n}\n\nfunction seriesTaskCount(context) {\n  return context.data.count();\n}\n\nfunction detectSeriseType(legacyFunc) {\n  seriesType = null;\n\n  try {\n    legacyFunc(ecModelMock, apiMock);\n  } catch (e) {}\n\n  return seriesType;\n}\n\nvar ecModelMock = {};\nvar apiMock = {};\nvar seriesType;\nmockMethods(ecModelMock, GlobalModel);\nmockMethods(apiMock, ExtensionAPI);\n\necModelMock.eachSeriesByType = ecModelMock.eachRawSeriesByType = function (type) {\n  seriesType = type;\n};\n\necModelMock.eachComponent = function (cond) {\n  if (cond.mainType === 'series' && cond.subType) {\n    seriesType = cond.subType;\n  }\n};\n\nfunction mockMethods(target, Clz) {\n  for (var name_1 in Clz.prototype) {\n    target[name_1] = noop;\n  }\n}\n\nexport default Scheduler;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar colorAll = ['#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'];\nexport default {\n  color: colorAll,\n  colorLayer: [['#37A2DA', '#ffd85c', '#fd7b5f'], ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'], ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'], colorAll]\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar contrastColor = '#B9B8CE';\nvar backgroundColor = '#100C2A';\n\nvar axisCommon = function () {\n  return {\n    axisLine: {\n      lineStyle: {\n        color: contrastColor\n      }\n    },\n    splitLine: {\n      lineStyle: {\n        color: '#484753'\n      }\n    },\n    splitArea: {\n      areaStyle: {\n        color: ['rgba(255,255,255,0.02)', 'rgba(255,255,255,0.05)']\n      }\n    },\n    minorSplitLine: {\n      lineStyle: {\n        color: '#20203B'\n      }\n    }\n  };\n};\n\nvar colorPalette = ['#4992ff', '#7cffb2', '#fddd60', '#ff6e76', '#58d9f9', '#05c091', '#ff8a45', '#8d48e3', '#dd79ff'];\nvar theme = {\n  darkMode: true,\n  color: colorPalette,\n  backgroundColor: backgroundColor,\n  axisPointer: {\n    lineStyle: {\n      color: '#817f91'\n    },\n    crossStyle: {\n      color: '#817f91'\n    },\n    label: {\n      color: '#fff'\n    }\n  },\n  legend: {\n    textStyle: {\n      color: contrastColor\n    }\n  },\n  textStyle: {\n    color: contrastColor\n  },\n  title: {\n    textStyle: {\n      color: '#EEF1FA'\n    },\n    subtextStyle: {\n      color: '#B9B8CE'\n    }\n  },\n  toolbox: {\n    iconStyle: {\n      borderColor: contrastColor\n    }\n  },\n  dataZoom: {\n    borderColor: '#71708A',\n    textStyle: {\n      color: contrastColor\n    },\n    brushStyle: {\n      color: 'rgba(135,163,206,0.3)'\n    },\n    handleStyle: {\n      color: '#353450',\n      borderColor: '#C5CBE3'\n    },\n    moveHandleStyle: {\n      color: '#B0B6C3',\n      opacity: 0.3\n    },\n    fillerColor: 'rgba(135,163,206,0.2)',\n    emphasis: {\n      handleStyle: {\n        borderColor: '#91B7F2',\n        color: '#4D587D'\n      },\n      moveHandleStyle: {\n        color: '#636D9A',\n        opacity: 0.7\n      }\n    },\n    dataBackground: {\n      lineStyle: {\n        color: '#71708A',\n        width: 1\n      },\n      areaStyle: {\n        color: '#71708A'\n      }\n    },\n    selectedDataBackground: {\n      lineStyle: {\n        color: '#87A3CE'\n      },\n      areaStyle: {\n        color: '#87A3CE'\n      }\n    }\n  },\n  visualMap: {\n    textStyle: {\n      color: contrastColor\n    }\n  },\n  timeline: {\n    lineStyle: {\n      color: contrastColor\n    },\n    label: {\n      color: contrastColor\n    },\n    controlStyle: {\n      color: contrastColor,\n      borderColor: contrastColor\n    }\n  },\n  calendar: {\n    itemStyle: {\n      color: backgroundColor\n    },\n    dayLabel: {\n      color: contrastColor\n    },\n    monthLabel: {\n      color: contrastColor\n    },\n    yearLabel: {\n      color: contrastColor\n    }\n  },\n  timeAxis: axisCommon(),\n  logAxis: axisCommon(),\n  valueAxis: axisCommon(),\n  categoryAxis: axisCommon(),\n  line: {\n    symbol: 'circle'\n  },\n  graph: {\n    color: colorPalette\n  },\n  gauge: {\n    title: {\n      color: contrastColor\n    },\n    axisLine: {\n      lineStyle: {\n        color: [[1, 'rgba(207,212,219,0.2)']]\n      }\n    },\n    axisLabel: {\n      color: contrastColor\n    },\n    detail: {\n      color: '#EEF1FA'\n    }\n  },\n  candlestick: {\n    itemStyle: {\n      color: '#f64e56',\n      color0: '#54ea92',\n      borderColor: '#f64e56',\n      borderColor0: '#54ea92'\n    }\n  }\n};\ntheme.categoryAxis.splitLine.show = false;\nexport default theme;","import { isString } from '../core/util';\nexport function parseXML(svg) {\n    if (isString(svg)) {\n        var parser = new DOMParser();\n        svg = parser.parseFromString(svg, 'text/xml');\n    }\n    var svgNode = svg;\n    if (svgNode.nodeType === 9) {\n        svgNode = svgNode.firstChild;\n    }\n    while (svgNode.nodeName.toLowerCase() !== 'svg' || svgNode.nodeType !== 1) {\n        svgNode = svgNode.nextSibling;\n    }\n    return svgNode;\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, isString, isArray, each, assert } from 'zrender/lib/core/util';\nimport { parseXML } from 'zrender/lib/tool/parseXML';\nvar storage = createHashMap();\nexport default {\n  registerMap: function (mapName, rawDef, rawSpecialAreas) {\n    var records;\n\n    if (isArray(rawDef)) {\n      records = rawDef;\n    } else if (rawDef.svg) {\n      records = [{\n        type: 'svg',\n        source: rawDef.svg,\n        specialAreas: rawDef.specialAreas\n      }];\n    } else {\n      var geoSource = rawDef.geoJson || rawDef.geoJSON;\n\n      if (geoSource && !rawDef.features) {\n        rawSpecialAreas = rawDef.specialAreas;\n        rawDef = geoSource;\n      }\n\n      records = [{\n        type: 'geoJSON',\n        source: rawDef,\n        specialAreas: rawSpecialAreas\n      }];\n    }\n\n    each(records, function (record) {\n      var type = record.type;\n      type === 'geoJson' && (type = record.type = 'geoJSON');\n      var parse = parsers[type];\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(parse, 'Illegal map type: ' + type);\n      }\n\n      parse(record);\n    });\n    return storage.set(mapName, records);\n  },\n  retrieveMap: function (mapName) {\n    return storage.get(mapName);\n  }\n};\nvar parsers = {\n  geoJSON: function (record) {\n    var source = record.source;\n    record.geoJSON = !isString(source) ? source : typeof JSON !== 'undefined' && JSON.parse ? JSON.parse(source) : new Function('return (' + source + ');')();\n  },\n  svg: function (record) {\n    record.svgXML = parseXML(record.source);\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parseClassType } from './clazz';\n\nvar ECEventProcessor = function () {\n  function ECEventProcessor() {}\n\n  ECEventProcessor.prototype.normalizeQuery = function (query) {\n    var cptQuery = {};\n    var dataQuery = {};\n    var otherQuery = {};\n\n    if (zrUtil.isString(query)) {\n      var condCptType = parseClassType(query);\n      cptQuery.mainType = condCptType.main || null;\n      cptQuery.subType = condCptType.sub || null;\n    } else {\n      var suffixes_1 = ['Index', 'Name', 'Id'];\n      var dataKeys_1 = {\n        name: 1,\n        dataIndex: 1,\n        dataType: 1\n      };\n      zrUtil.each(query, function (val, key) {\n        var reserved = false;\n\n        for (var i = 0; i < suffixes_1.length; i++) {\n          var propSuffix = suffixes_1[i];\n          var suffixPos = key.lastIndexOf(propSuffix);\n\n          if (suffixPos > 0 && suffixPos === key.length - propSuffix.length) {\n            var mainType = key.slice(0, suffixPos);\n\n            if (mainType !== 'data') {\n              cptQuery.mainType = mainType;\n              cptQuery[propSuffix.toLowerCase()] = val;\n              reserved = true;\n            }\n          }\n        }\n\n        if (dataKeys_1.hasOwnProperty(key)) {\n          dataQuery[key] = val;\n          reserved = true;\n        }\n\n        if (!reserved) {\n          otherQuery[key] = val;\n        }\n      });\n    }\n\n    return {\n      cptQuery: cptQuery,\n      dataQuery: dataQuery,\n      otherQuery: otherQuery\n    };\n  };\n\n  ECEventProcessor.prototype.filter = function (eventType, query) {\n    var eventInfo = this.eventInfo;\n\n    if (!eventInfo) {\n      return true;\n    }\n\n    var targetEl = eventInfo.targetEl;\n    var packedEvent = eventInfo.packedEvent;\n    var model = eventInfo.model;\n    var view = eventInfo.view;\n\n    if (!model || !view) {\n      return true;\n    }\n\n    var cptQuery = query.cptQuery;\n    var dataQuery = query.dataQuery;\n    return check(cptQuery, model, 'mainType') && check(cptQuery, model, 'subType') && check(cptQuery, model, 'index', 'componentIndex') && check(cptQuery, model, 'name') && check(cptQuery, model, 'id') && check(dataQuery, packedEvent, 'name') && check(dataQuery, packedEvent, 'dataIndex') && check(dataQuery, packedEvent, 'dataType') && (!view.filterForExposedEvent || view.filterForExposedEvent(eventType, query.otherQuery, targetEl, packedEvent));\n\n    function check(query, host, prop, propOnHost) {\n      return query[prop] == null || host[propOnHost || prop] === query[prop];\n    }\n  };\n\n  ECEventProcessor.prototype.afterTrigger = function () {\n    this.eventInfo = null;\n  };\n\n  return ECEventProcessor;\n}();\n\nexport { ECEventProcessor };\n;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isFunction } from 'zrender/lib/core/util';\nvar seriesSymbolTask = {\n  createOnAllSeries: true,\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    var data = seriesModel.getData();\n\n    if (seriesModel.legendSymbol) {\n      data.setVisual('legendSymbol', seriesModel.legendSymbol);\n    }\n\n    if (!seriesModel.hasSymbolVisual) {\n      return;\n    }\n\n    var symbolType = seriesModel.get('symbol');\n    var symbolSize = seriesModel.get('symbolSize');\n    var keepAspect = seriesModel.get('symbolKeepAspect');\n    var symbolRotate = seriesModel.get('symbolRotate');\n    var hasSymbolTypeCallback = isFunction(symbolType);\n    var hasSymbolSizeCallback = isFunction(symbolSize);\n    var hasSymbolRotateCallback = isFunction(symbolRotate);\n    var hasCallback = hasSymbolTypeCallback || hasSymbolSizeCallback || hasSymbolRotateCallback;\n    var seriesSymbol = !hasSymbolTypeCallback && symbolType ? symbolType : seriesModel.defaultSymbol;\n    var seriesSymbolSize = !hasSymbolSizeCallback ? symbolSize : null;\n    var seriesSymbolRotate = !hasSymbolRotateCallback ? symbolRotate : null;\n    data.setVisual({\n      legendSymbol: seriesModel.legendSymbol || seriesSymbol,\n      symbol: seriesSymbol,\n      symbolSize: seriesSymbolSize,\n      symbolKeepAspect: keepAspect,\n      symbolRotate: seriesSymbolRotate\n    });\n\n    if (ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    function dataEach(data, idx) {\n      var rawValue = seriesModel.getRawValue(idx);\n      var params = seriesModel.getDataParams(idx);\n      hasSymbolTypeCallback && data.setItemVisual(idx, 'symbol', symbolType(rawValue, params));\n      hasSymbolSizeCallback && data.setItemVisual(idx, 'symbolSize', symbolSize(rawValue, params));\n      hasSymbolRotateCallback && data.setItemVisual(idx, 'symbolRotate', symbolRotate(rawValue, params));\n    }\n\n    return {\n      dataEach: hasCallback ? dataEach : null\n    };\n  }\n};\nvar dataSymbolTask = {\n  createOnAllSeries: true,\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    if (!seriesModel.hasSymbolVisual) {\n      return;\n    }\n\n    if (ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n\n    function dataEach(data, idx) {\n      var itemModel = data.getItemModel(idx);\n      var itemSymbolType = itemModel.getShallow('symbol', true);\n      var itemSymbolSize = itemModel.getShallow('symbolSize', true);\n      var itemSymbolRotate = itemModel.getShallow('symbolRotate', true);\n      var itemSymbolKeepAspect = itemModel.getShallow('symbolKeepAspect', true);\n\n      if (itemSymbolType != null) {\n        data.setItemVisual(idx, 'symbol', itemSymbolType);\n      }\n\n      if (itemSymbolSize != null) {\n        data.setItemVisual(idx, 'symbolSize', itemSymbolSize);\n      }\n\n      if (itemSymbolRotate != null) {\n        data.setItemVisual(idx, 'symbolRotate', itemSymbolRotate);\n      }\n\n      if (itemSymbolKeepAspect != null) {\n        data.setItemVisual(idx, 'symbolKeepAspect', itemSymbolKeepAspect);\n      }\n    }\n\n    return {\n      dataEach: data.hasItemOption ? dataEach : null\n    };\n  }\n};\nexport { seriesSymbolTask, dataSymbolTask };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function getItemVisualFromData(data, dataIndex, key) {\n  switch (key) {\n    case 'color':\n      var style = data.getItemVisual(dataIndex, 'style');\n      return style[data.getVisual('drawType')];\n\n    case 'opacity':\n      return data.getItemVisual(dataIndex, 'style').opacity;\n\n    case 'symbol':\n    case 'symbolSize':\n    case 'liftZ':\n      return data.getItemVisual(dataIndex, key);\n\n    default:\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn(\"Unknown visual type \" + key);\n      }\n\n  }\n}\nexport function getVisualFromData(data, key) {\n  switch (key) {\n    case 'color':\n      var style = data.getVisual('style');\n      return style[data.getVisual('drawType')];\n\n    case 'opacity':\n      return data.getVisual('style').opacity;\n\n    case 'symbol':\n    case 'symbolSize':\n    case 'liftZ':\n      return data.getVisual(key);\n\n    default:\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn(\"Unknown visual type \" + key);\n      }\n\n  }\n}\nexport function setItemVisualFromData(data, dataIndex, key, value) {\n  switch (key) {\n    case 'color':\n      var style = data.ensureUniqueItemVisual(dataIndex, 'style');\n      style[data.getVisual('drawType')] = value;\n      data.setItemVisual(dataIndex, 'colorFromPalette', false);\n      break;\n\n    case 'opacity':\n      data.ensureUniqueItemVisual(dataIndex, 'style').opacity = value;\n      break;\n\n    case 'symbol':\n    case 'symbolSize':\n    case 'liftZ':\n      data.setItemVisual(dataIndex, key, value);\n      break;\n\n    default:\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn(\"Unknown visual type \" + key);\n      }\n\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { Point, Path, Polyline } from '../util/graphic';\nimport PathProxy from 'zrender/lib/core/PathProxy';\nimport { normalizeRadian } from 'zrender/lib/contain/util';\nimport { cubicProjectPoint, quadraticProjectPoint } from 'zrender/lib/core/curve';\nimport { defaults, retrieve2 } from 'zrender/lib/core/util';\nimport { invert } from 'zrender/lib/core/matrix';\nimport * as vector from 'zrender/lib/core/vector';\nimport { DISPLAY_STATES, SPECIAL_STATES } from '../util/states';\nvar PI2 = Math.PI * 2;\nvar CMD = PathProxy.CMD;\nvar DEFAULT_SEARCH_SPACE = ['top', 'right', 'bottom', 'left'];\n\nfunction getCandidateAnchor(pos, distance, rect, outPt, outDir) {\n  var width = rect.width;\n  var height = rect.height;\n\n  switch (pos) {\n    case 'top':\n      outPt.set(rect.x + width / 2, rect.y - distance);\n      outDir.set(0, -1);\n      break;\n\n    case 'bottom':\n      outPt.set(rect.x + width / 2, rect.y + height + distance);\n      outDir.set(0, 1);\n      break;\n\n    case 'left':\n      outPt.set(rect.x - distance, rect.y + height / 2);\n      outDir.set(-1, 0);\n      break;\n\n    case 'right':\n      outPt.set(rect.x + width + distance, rect.y + height / 2);\n      outDir.set(1, 0);\n      break;\n  }\n}\n\nfunction projectPointToArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y, out) {\n  x -= cx;\n  y -= cy;\n  var d = Math.sqrt(x * x + y * y);\n  x /= d;\n  y /= d;\n  var ox = x * r + cx;\n  var oy = y * r + cy;\n\n  if (Math.abs(startAngle - endAngle) % PI2 < 1e-4) {\n    out[0] = ox;\n    out[1] = oy;\n    return d - r;\n  }\n\n  if (anticlockwise) {\n    var tmp = startAngle;\n    startAngle = normalizeRadian(endAngle);\n    endAngle = normalizeRadian(tmp);\n  } else {\n    startAngle = normalizeRadian(startAngle);\n    endAngle = normalizeRadian(endAngle);\n  }\n\n  if (startAngle > endAngle) {\n    endAngle += PI2;\n  }\n\n  var angle = Math.atan2(y, x);\n\n  if (angle < 0) {\n    angle += PI2;\n  }\n\n  if (angle >= startAngle && angle <= endAngle || angle + PI2 >= startAngle && angle + PI2 <= endAngle) {\n    out[0] = ox;\n    out[1] = oy;\n    return d - r;\n  }\n\n  var x1 = r * Math.cos(startAngle) + cx;\n  var y1 = r * Math.sin(startAngle) + cy;\n  var x2 = r * Math.cos(endAngle) + cx;\n  var y2 = r * Math.sin(endAngle) + cy;\n  var d1 = (x1 - x) * (x1 - x) + (y1 - y) * (y1 - y);\n  var d2 = (x2 - x) * (x2 - x) + (y2 - y) * (y2 - y);\n\n  if (d1 < d2) {\n    out[0] = x1;\n    out[1] = y1;\n    return Math.sqrt(d1);\n  } else {\n    out[0] = x2;\n    out[1] = y2;\n    return Math.sqrt(d2);\n  }\n}\n\nfunction projectPointToLine(x1, y1, x2, y2, x, y, out, limitToEnds) {\n  var dx = x - x1;\n  var dy = y - y1;\n  var dx1 = x2 - x1;\n  var dy1 = y2 - y1;\n  var lineLen = Math.sqrt(dx1 * dx1 + dy1 * dy1);\n  dx1 /= lineLen;\n  dy1 /= lineLen;\n  var projectedLen = dx * dx1 + dy * dy1;\n  var t = projectedLen / lineLen;\n\n  if (limitToEnds) {\n    t = Math.min(Math.max(t, 0), 1);\n  }\n\n  t *= lineLen;\n  var ox = out[0] = x1 + t * dx1;\n  var oy = out[1] = y1 + t * dy1;\n  return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\n}\n\nfunction projectPointToRect(x1, y1, width, height, x, y, out) {\n  if (width < 0) {\n    x1 = x1 + width;\n    width = -width;\n  }\n\n  if (height < 0) {\n    y1 = y1 + height;\n    height = -height;\n  }\n\n  var x2 = x1 + width;\n  var y2 = y1 + height;\n  var ox = out[0] = Math.min(Math.max(x, x1), x2);\n  var oy = out[1] = Math.min(Math.max(y, y1), y2);\n  return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\n}\n\nvar tmpPt = [];\n\nfunction nearestPointOnRect(pt, rect, out) {\n  var dist = projectPointToRect(rect.x, rect.y, rect.width, rect.height, pt.x, pt.y, tmpPt);\n  out.set(tmpPt[0], tmpPt[1]);\n  return dist;\n}\n\nfunction nearestPointOnPath(pt, path, out) {\n  var xi = 0;\n  var yi = 0;\n  var x0 = 0;\n  var y0 = 0;\n  var x1;\n  var y1;\n  var minDist = Infinity;\n  var data = path.data;\n  var x = pt.x;\n  var y = pt.y;\n\n  for (var i = 0; i < data.length;) {\n    var cmd = data[i++];\n\n    if (i === 1) {\n      xi = data[i];\n      yi = data[i + 1];\n      x0 = xi;\n      y0 = yi;\n    }\n\n    var d = minDist;\n\n    switch (cmd) {\n      case CMD.M:\n        x0 = data[i++];\n        y0 = data[i++];\n        xi = x0;\n        yi = y0;\n        break;\n\n      case CMD.L:\n        d = projectPointToLine(xi, yi, data[i], data[i + 1], x, y, tmpPt, true);\n        xi = data[i++];\n        yi = data[i++];\n        break;\n\n      case CMD.C:\n        d = cubicProjectPoint(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\n        xi = data[i++];\n        yi = data[i++];\n        break;\n\n      case CMD.Q:\n        d = quadraticProjectPoint(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\n        xi = data[i++];\n        yi = data[i++];\n        break;\n\n      case CMD.A:\n        var cx = data[i++];\n        var cy = data[i++];\n        var rx = data[i++];\n        var ry = data[i++];\n        var theta = data[i++];\n        var dTheta = data[i++];\n        i += 1;\n        var anticlockwise = !!(1 - data[i++]);\n        x1 = Math.cos(theta) * rx + cx;\n        y1 = Math.sin(theta) * ry + cy;\n\n        if (i <= 1) {\n          x0 = x1;\n          y0 = y1;\n        }\n\n        var _x = (x - cx) * ry / rx + cx;\n\n        d = projectPointToArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y, tmpPt);\n        xi = Math.cos(theta + dTheta) * rx + cx;\n        yi = Math.sin(theta + dTheta) * ry + cy;\n        break;\n\n      case CMD.R:\n        x0 = xi = data[i++];\n        y0 = yi = data[i++];\n        var width = data[i++];\n        var height = data[i++];\n        d = projectPointToRect(x0, y0, width, height, x, y, tmpPt);\n        break;\n\n      case CMD.Z:\n        d = projectPointToLine(xi, yi, x0, y0, x, y, tmpPt, true);\n        xi = x0;\n        yi = y0;\n        break;\n    }\n\n    if (d < minDist) {\n      minDist = d;\n      out.set(tmpPt[0], tmpPt[1]);\n    }\n  }\n\n  return minDist;\n}\n\nvar pt0 = new Point();\nvar pt1 = new Point();\nvar pt2 = new Point();\nvar dir = new Point();\nvar dir2 = new Point();\nexport function updateLabelLinePoints(target, labelLineModel) {\n  if (!target) {\n    return;\n  }\n\n  var labelLine = target.getTextGuideLine();\n  var label = target.getTextContent();\n\n  if (!(label && labelLine)) {\n    return;\n  }\n\n  var labelGuideConfig = target.textGuideLineConfig || {};\n  var points = [[0, 0], [0, 0], [0, 0]];\n  var searchSpace = labelGuideConfig.candidates || DEFAULT_SEARCH_SPACE;\n  var labelRect = label.getBoundingRect().clone();\n  labelRect.applyTransform(label.getComputedTransform());\n  var minDist = Infinity;\n  var anchorPoint = labelGuideConfig.anchor;\n  var targetTransform = target.getComputedTransform();\n  var targetInversedTransform = targetTransform && invert([], targetTransform);\n  var len = labelLineModel.get('length2') || 0;\n\n  if (anchorPoint) {\n    pt2.copy(anchorPoint);\n  }\n\n  for (var i = 0; i < searchSpace.length; i++) {\n    var candidate = searchSpace[i];\n    getCandidateAnchor(candidate, 0, labelRect, pt0, dir);\n    Point.scaleAndAdd(pt1, pt0, dir, len);\n    pt1.transform(targetInversedTransform);\n    var boundingRect = target.getBoundingRect();\n    var dist = anchorPoint ? anchorPoint.distance(pt1) : target instanceof Path ? nearestPointOnPath(pt1, target.path, pt2) : nearestPointOnRect(pt1, boundingRect, pt2);\n\n    if (dist < minDist) {\n      minDist = dist;\n      pt1.transform(targetTransform);\n      pt2.transform(targetTransform);\n      pt2.toArray(points[0]);\n      pt1.toArray(points[1]);\n      pt0.toArray(points[2]);\n    }\n  }\n\n  limitTurnAngle(points, labelLineModel.get('minTurnAngle'));\n  labelLine.setShape({\n    points: points\n  });\n}\nvar tmpArr = [];\nvar tmpProjPoint = new Point();\nexport function limitTurnAngle(linePoints, minTurnAngle) {\n  if (!(minTurnAngle <= 180 && minTurnAngle > 0)) {\n    return;\n  }\n\n  minTurnAngle = minTurnAngle / 180 * Math.PI;\n  pt0.fromArray(linePoints[0]);\n  pt1.fromArray(linePoints[1]);\n  pt2.fromArray(linePoints[2]);\n  Point.sub(dir, pt0, pt1);\n  Point.sub(dir2, pt2, pt1);\n  var len1 = dir.len();\n  var len2 = dir2.len();\n\n  if (len1 < 1e-3 || len2 < 1e-3) {\n    return;\n  }\n\n  dir.scale(1 / len1);\n  dir2.scale(1 / len2);\n  var angleCos = dir.dot(dir2);\n  var minTurnAngleCos = Math.cos(minTurnAngle);\n\n  if (minTurnAngleCos < angleCos) {\n    var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\n    tmpProjPoint.fromArray(tmpArr);\n    tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI - minTurnAngle));\n    var t = pt2.x !== pt1.x ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x) : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\n\n    if (isNaN(t)) {\n      return;\n    }\n\n    if (t < 0) {\n      Point.copy(tmpProjPoint, pt1);\n    } else if (t > 1) {\n      Point.copy(tmpProjPoint, pt2);\n    }\n\n    tmpProjPoint.toArray(linePoints[1]);\n  }\n}\nexport function limitSurfaceAngle(linePoints, surfaceNormal, maxSurfaceAngle) {\n  if (!(maxSurfaceAngle <= 180 && maxSurfaceAngle > 0)) {\n    return;\n  }\n\n  maxSurfaceAngle = maxSurfaceAngle / 180 * Math.PI;\n  pt0.fromArray(linePoints[0]);\n  pt1.fromArray(linePoints[1]);\n  pt2.fromArray(linePoints[2]);\n  Point.sub(dir, pt1, pt0);\n  Point.sub(dir2, pt2, pt1);\n  var len1 = dir.len();\n  var len2 = dir2.len();\n\n  if (len1 < 1e-3 || len2 < 1e-3) {\n    return;\n  }\n\n  dir.scale(1 / len1);\n  dir2.scale(1 / len2);\n  var angleCos = dir.dot(surfaceNormal);\n  var maxSurfaceAngleCos = Math.cos(maxSurfaceAngle);\n\n  if (angleCos < maxSurfaceAngleCos) {\n    var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\n    tmpProjPoint.fromArray(tmpArr);\n    var HALF_PI = Math.PI / 2;\n    var angle2 = Math.acos(dir2.dot(surfaceNormal));\n    var newAngle = HALF_PI + angle2 - maxSurfaceAngle;\n\n    if (newAngle >= HALF_PI) {\n      Point.copy(tmpProjPoint, pt2);\n    } else {\n      tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI / 2 - newAngle));\n      var t = pt2.x !== pt1.x ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x) : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\n\n      if (isNaN(t)) {\n        return;\n      }\n\n      if (t < 0) {\n        Point.copy(tmpProjPoint, pt1);\n      } else if (t > 1) {\n        Point.copy(tmpProjPoint, pt2);\n      }\n    }\n\n    tmpProjPoint.toArray(linePoints[1]);\n  }\n}\n\nfunction setLabelLineState(labelLine, ignore, stateName, stateModel) {\n  var isNormal = stateName === 'normal';\n  var stateObj = isNormal ? labelLine : labelLine.ensureState(stateName);\n  stateObj.ignore = ignore;\n  var smooth = stateModel.get('smooth');\n\n  if (smooth && smooth === true) {\n    smooth = 0.3;\n  }\n\n  stateObj.shape = stateObj.shape || {};\n\n  if (smooth > 0) {\n    stateObj.shape.smooth = smooth;\n  }\n\n  var styleObj = stateModel.getModel('lineStyle').getLineStyle();\n  isNormal ? labelLine.useStyle(styleObj) : stateObj.style = styleObj;\n}\n\nfunction buildLabelLinePath(path, shape) {\n  var smooth = shape.smooth;\n  var points = shape.points;\n\n  if (!points) {\n    return;\n  }\n\n  path.moveTo(points[0][0], points[0][1]);\n\n  if (smooth > 0 && points.length >= 3) {\n    var len1 = vector.dist(points[0], points[1]);\n    var len2 = vector.dist(points[1], points[2]);\n\n    if (!len1 || !len2) {\n      path.lineTo(points[1][0], points[1][1]);\n      path.lineTo(points[2][0], points[2][1]);\n      return;\n    }\n\n    var moveLen = Math.min(len1, len2) * smooth;\n    var midPoint0 = vector.lerp([], points[1], points[0], moveLen / len1);\n    var midPoint2 = vector.lerp([], points[1], points[2], moveLen / len2);\n    var midPoint1 = vector.lerp([], midPoint0, midPoint2, 0.5);\n    path.bezierCurveTo(midPoint0[0], midPoint0[1], midPoint0[0], midPoint0[1], midPoint1[0], midPoint1[1]);\n    path.bezierCurveTo(midPoint2[0], midPoint2[1], midPoint2[0], midPoint2[1], points[2][0], points[2][1]);\n  } else {\n    for (var i = 1; i < points.length; i++) {\n      path.lineTo(points[i][0], points[i][1]);\n    }\n  }\n}\n\nexport function setLabelLineStyle(targetEl, statesModels, defaultStyle) {\n  var labelLine = targetEl.getTextGuideLine();\n  var label = targetEl.getTextContent();\n\n  if (!label) {\n    if (labelLine) {\n      targetEl.removeTextGuideLine();\n    }\n\n    return;\n  }\n\n  var normalModel = statesModels.normal;\n  var showNormal = normalModel.get('show');\n  var labelIgnoreNormal = label.ignore;\n\n  for (var i = 0; i < DISPLAY_STATES.length; i++) {\n    var stateName = DISPLAY_STATES[i];\n    var stateModel = statesModels[stateName];\n    var isNormal = stateName === 'normal';\n\n    if (stateModel) {\n      var stateShow = stateModel.get('show');\n      var isLabelIgnored = isNormal ? labelIgnoreNormal : retrieve2(label.states[stateName] && label.states[stateName].ignore, labelIgnoreNormal);\n\n      if (isLabelIgnored || !retrieve2(stateShow, showNormal)) {\n        var stateObj = isNormal ? labelLine : labelLine && labelLine.states.normal;\n\n        if (stateObj) {\n          stateObj.ignore = true;\n        }\n\n        continue;\n      }\n\n      if (!labelLine) {\n        labelLine = new Polyline();\n        targetEl.setTextGuideLine(labelLine);\n\n        if (!isNormal && (labelIgnoreNormal || !showNormal)) {\n          setLabelLineState(labelLine, true, 'normal', statesModels.normal);\n        }\n\n        if (targetEl.stateProxy) {\n          labelLine.stateProxy = targetEl.stateProxy;\n        }\n      }\n\n      setLabelLineState(labelLine, false, stateName, stateModel);\n    }\n  }\n\n  if (labelLine) {\n    defaults(labelLine.style, defaultStyle);\n    labelLine.style.fill = null;\n    var showAbove = normalModel.get('showAbove');\n    var labelLineConfig = targetEl.textGuideLineConfig = targetEl.textGuideLineConfig || {};\n    labelLineConfig.showAbove = showAbove || false;\n    labelLine.buildPath = buildLabelLinePath;\n  }\n}\nexport function getLabelLineStatesModels(itemModel, labelLineName) {\n  labelLineName = labelLineName || 'labelLine';\n  var statesModels = {\n    normal: itemModel.getModel(labelLineName)\n  };\n\n  for (var i = 0; i < SPECIAL_STATES.length; i++) {\n    var stateName = SPECIAL_STATES[i];\n    statesModels[stateName] = itemModel.getModel([stateName, labelLineName]);\n  }\n\n  return statesModels;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { BoundingRect, OrientedBoundingRect } from '../util/graphic';\nexport function prepareLayoutList(input) {\n  var list = [];\n\n  for (var i = 0; i < input.length; i++) {\n    var rawItem = input[i];\n\n    if (rawItem.defaultAttr.ignore) {\n      continue;\n    }\n\n    var label = rawItem.label;\n    var transform = label.getComputedTransform();\n    var localRect = label.getBoundingRect();\n    var isAxisAligned = !transform || transform[1] < 1e-5 && transform[2] < 1e-5;\n    var minMargin = label.style.margin || 0;\n    var globalRect = localRect.clone();\n    globalRect.applyTransform(transform);\n    globalRect.x -= minMargin / 2;\n    globalRect.y -= minMargin / 2;\n    globalRect.width += minMargin;\n    globalRect.height += minMargin;\n    var obb = isAxisAligned ? new OrientedBoundingRect(localRect, transform) : null;\n    list.push({\n      label: label,\n      labelLine: rawItem.labelLine,\n      rect: globalRect,\n      localRect: localRect,\n      obb: obb,\n      priority: rawItem.priority,\n      defaultAttr: rawItem.defaultAttr,\n      layoutOption: rawItem.computedLayoutOption,\n      axisAligned: isAxisAligned,\n      transform: transform\n    });\n  }\n\n  return list;\n}\n\nfunction shiftLayout(list, xyDim, sizeDim, minBound, maxBound, balanceShift) {\n  var len = list.length;\n\n  if (len < 2) {\n    return;\n  }\n\n  list.sort(function (a, b) {\n    return a.rect[xyDim] - b.rect[xyDim];\n  });\n  var lastPos = 0;\n  var delta;\n  var adjusted = false;\n  var shifts = [];\n  var totalShifts = 0;\n\n  for (var i = 0; i < len; i++) {\n    var item = list[i];\n    var rect = item.rect;\n    delta = rect[xyDim] - lastPos;\n\n    if (delta < 0) {\n      rect[xyDim] -= delta;\n      item.label[xyDim] -= delta;\n      adjusted = true;\n    }\n\n    var shift = Math.max(-delta, 0);\n    shifts.push(shift);\n    totalShifts += shift;\n    lastPos = rect[xyDim] + rect[sizeDim];\n  }\n\n  if (totalShifts > 0 && balanceShift) {\n    shiftList(-totalShifts / len, 0, len);\n  }\n\n  var first = list[0];\n  var last = list[len - 1];\n  var minGap;\n  var maxGap;\n  updateMinMaxGap();\n  minGap < 0 && squeezeGaps(-minGap, 0.8);\n  maxGap < 0 && squeezeGaps(maxGap, 0.8);\n  updateMinMaxGap();\n  takeBoundsGap(minGap, maxGap, 1);\n  takeBoundsGap(maxGap, minGap, -1);\n  updateMinMaxGap();\n\n  if (minGap < 0) {\n    squeezeWhenBailout(-minGap);\n  }\n\n  if (maxGap < 0) {\n    squeezeWhenBailout(maxGap);\n  }\n\n  function updateMinMaxGap() {\n    minGap = first.rect[xyDim] - minBound;\n    maxGap = maxBound - last.rect[xyDim] - last.rect[sizeDim];\n  }\n\n  function takeBoundsGap(gapThisBound, gapOtherBound, moveDir) {\n    if (gapThisBound < 0) {\n      var moveFromMaxGap = Math.min(gapOtherBound, -gapThisBound);\n\n      if (moveFromMaxGap > 0) {\n        shiftList(moveFromMaxGap * moveDir, 0, len);\n        var remained = moveFromMaxGap + gapThisBound;\n\n        if (remained < 0) {\n          squeezeGaps(-remained * moveDir, 1);\n        }\n      } else {\n        squeezeGaps(-gapThisBound * moveDir, 1);\n      }\n    }\n  }\n\n  function shiftList(delta, start, end) {\n    if (delta !== 0) {\n      adjusted = true;\n    }\n\n    for (var i = start; i < end; i++) {\n      var item = list[i];\n      var rect = item.rect;\n      rect[xyDim] += delta;\n      item.label[xyDim] += delta;\n    }\n  }\n\n  function squeezeGaps(delta, maxSqeezePercent) {\n    var gaps = [];\n    var totalGaps = 0;\n\n    for (var i = 1; i < len; i++) {\n      var prevItemRect = list[i - 1].rect;\n      var gap = Math.max(list[i].rect[xyDim] - prevItemRect[xyDim] - prevItemRect[sizeDim], 0);\n      gaps.push(gap);\n      totalGaps += gap;\n    }\n\n    if (!totalGaps) {\n      return;\n    }\n\n    var squeezePercent = Math.min(Math.abs(delta) / totalGaps, maxSqeezePercent);\n\n    if (delta > 0) {\n      for (var i = 0; i < len - 1; i++) {\n        var movement = gaps[i] * squeezePercent;\n        shiftList(movement, 0, i + 1);\n      }\n    } else {\n      for (var i = len - 1; i > 0; i--) {\n        var movement = gaps[i - 1] * squeezePercent;\n        shiftList(-movement, i, len);\n      }\n    }\n  }\n\n  function squeezeWhenBailout(delta) {\n    var dir = delta < 0 ? -1 : 1;\n    delta = Math.abs(delta);\n    var moveForEachLabel = Math.ceil(delta / (len - 1));\n\n    for (var i = 0; i < len - 1; i++) {\n      if (dir > 0) {\n        shiftList(moveForEachLabel, 0, i + 1);\n      } else {\n        shiftList(-moveForEachLabel, len - i - 1, len);\n      }\n\n      delta -= moveForEachLabel;\n\n      if (delta <= 0) {\n        return;\n      }\n    }\n  }\n\n  return adjusted;\n}\n\nexport function shiftLayoutOnX(list, leftBound, rightBound, balanceShift) {\n  return shiftLayout(list, 'x', 'width', leftBound, rightBound, balanceShift);\n}\nexport function shiftLayoutOnY(list, topBound, bottomBound, balanceShift) {\n  return shiftLayout(list, 'y', 'height', topBound, bottomBound, balanceShift);\n}\nexport function hideOverlap(labelList) {\n  var displayedLabels = [];\n  labelList.sort(function (a, b) {\n    return b.priority - a.priority;\n  });\n  var globalRect = new BoundingRect(0, 0, 0, 0);\n\n  function hideEl(el) {\n    if (!el.ignore) {\n      var emphasisState = el.ensureState('emphasis');\n\n      if (emphasisState.ignore == null) {\n        emphasisState.ignore = false;\n      }\n    }\n\n    el.ignore = true;\n  }\n\n  for (var i = 0; i < labelList.length; i++) {\n    var labelItem = labelList[i];\n    var isAxisAligned = labelItem.axisAligned;\n    var localRect = labelItem.localRect;\n    var transform = labelItem.transform;\n    var label = labelItem.label;\n    var labelLine = labelItem.labelLine;\n    globalRect.copy(labelItem.rect);\n    globalRect.width -= 0.1;\n    globalRect.height -= 0.1;\n    globalRect.x += 0.05;\n    globalRect.y += 0.05;\n    var obb = labelItem.obb;\n    var overlapped = false;\n\n    for (var j = 0; j < displayedLabels.length; j++) {\n      var existsTextCfg = displayedLabels[j];\n\n      if (!globalRect.intersect(existsTextCfg.rect)) {\n        continue;\n      }\n\n      if (isAxisAligned && existsTextCfg.axisAligned) {\n        overlapped = true;\n        break;\n      }\n\n      if (!existsTextCfg.obb) {\n        existsTextCfg.obb = new OrientedBoundingRect(existsTextCfg.localRect, existsTextCfg.transform);\n      }\n\n      if (!obb) {\n        obb = new OrientedBoundingRect(localRect, transform);\n      }\n\n      if (obb.intersect(existsTextCfg.obb)) {\n        overlapped = true;\n        break;\n      }\n    }\n\n    if (overlapped) {\n      hideEl(label);\n      labelLine && hideEl(labelLine);\n    } else {\n      label.attr('ignore', labelItem.defaultAttr.ignore);\n      labelLine && labelLine.attr('ignore', labelItem.defaultAttr.labelGuideIgnore);\n      displayedLabels.push(labelItem);\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { BoundingRect, updateProps, initProps, isElementRemoved } from '../util/graphic';\nimport { getECData } from '../util/innerStore';\nimport { parsePercent } from '../util/number';\nimport Transformable from 'zrender/lib/core/Transformable';\nimport { updateLabelLinePoints, setLabelLineStyle, getLabelLineStatesModels } from './labelGuideHelper';\nimport { makeInner } from '../util/model';\nimport { retrieve2, each, keys, isFunction, filter, indexOf } from 'zrender/lib/core/util';\nimport { prepareLayoutList, hideOverlap, shiftLayoutOnX, shiftLayoutOnY } from './labelLayoutHelper';\nimport { labelInner, animateLabelValue } from './labelStyle';\n\nfunction cloneArr(points) {\n  if (points) {\n    var newPoints = [];\n\n    for (var i = 0; i < points.length; i++) {\n      newPoints.push(points[i].slice());\n    }\n\n    return newPoints;\n  }\n}\n\nfunction prepareLayoutCallbackParams(labelItem, hostEl) {\n  var label = labelItem.label;\n  var labelLine = hostEl && hostEl.getTextGuideLine();\n  return {\n    dataIndex: labelItem.dataIndex,\n    dataType: labelItem.dataType,\n    seriesIndex: labelItem.seriesModel.seriesIndex,\n    text: labelItem.label.style.text,\n    rect: labelItem.hostRect,\n    labelRect: labelItem.rect,\n    align: label.style.align,\n    verticalAlign: label.style.verticalAlign,\n    labelLinePoints: cloneArr(labelLine && labelLine.shape.points)\n  };\n}\n\nvar LABEL_OPTION_TO_STYLE_KEYS = ['align', 'verticalAlign', 'width', 'height', 'fontSize'];\nvar dummyTransformable = new Transformable();\nvar labelLayoutInnerStore = makeInner();\nvar labelLineAnimationStore = makeInner();\n\nfunction extendWithKeys(target, source, keys) {\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n\n    if (source[key] != null) {\n      target[key] = source[key];\n    }\n  }\n}\n\nvar LABEL_LAYOUT_PROPS = ['x', 'y', 'rotation'];\n\nvar LabelManager = function () {\n  function LabelManager() {\n    this._labelList = [];\n    this._chartViewList = [];\n  }\n\n  LabelManager.prototype.clearLabels = function () {\n    this._labelList = [];\n    this._chartViewList = [];\n  };\n\n  LabelManager.prototype._addLabel = function (dataIndex, dataType, seriesModel, label, layoutOption) {\n    var labelStyle = label.style;\n    var hostEl = label.__hostTarget;\n    var textConfig = hostEl.textConfig || {};\n    var labelTransform = label.getComputedTransform();\n    var labelRect = label.getBoundingRect().plain();\n    BoundingRect.applyTransform(labelRect, labelRect, labelTransform);\n\n    if (labelTransform) {\n      dummyTransformable.setLocalTransform(labelTransform);\n    } else {\n      dummyTransformable.x = dummyTransformable.y = dummyTransformable.rotation = dummyTransformable.originX = dummyTransformable.originY = 0;\n      dummyTransformable.scaleX = dummyTransformable.scaleY = 1;\n    }\n\n    var host = label.__hostTarget;\n    var hostRect;\n\n    if (host) {\n      hostRect = host.getBoundingRect().plain();\n      var transform = host.getComputedTransform();\n      BoundingRect.applyTransform(hostRect, hostRect, transform);\n    }\n\n    var labelGuide = hostRect && host.getTextGuideLine();\n\n    this._labelList.push({\n      label: label,\n      labelLine: labelGuide,\n      seriesModel: seriesModel,\n      dataIndex: dataIndex,\n      dataType: dataType,\n      layoutOption: layoutOption,\n      computedLayoutOption: null,\n      rect: labelRect,\n      hostRect: hostRect,\n      priority: hostRect ? hostRect.width * hostRect.height : 0,\n      defaultAttr: {\n        ignore: label.ignore,\n        labelGuideIgnore: labelGuide && labelGuide.ignore,\n        x: dummyTransformable.x,\n        y: dummyTransformable.y,\n        rotation: dummyTransformable.rotation,\n        style: {\n          x: labelStyle.x,\n          y: labelStyle.y,\n          align: labelStyle.align,\n          verticalAlign: labelStyle.verticalAlign,\n          width: labelStyle.width,\n          height: labelStyle.height,\n          fontSize: labelStyle.fontSize\n        },\n        cursor: label.cursor,\n        attachedPos: textConfig.position,\n        attachedRot: textConfig.rotation\n      }\n    });\n  };\n\n  LabelManager.prototype.addLabelsOfSeries = function (chartView) {\n    var _this = this;\n\n    this._chartViewList.push(chartView);\n\n    var seriesModel = chartView.__model;\n    var layoutOption = seriesModel.get('labelLayout');\n\n    if (!(isFunction(layoutOption) || keys(layoutOption).length)) {\n      return;\n    }\n\n    chartView.group.traverse(function (child) {\n      if (child.ignore) {\n        return true;\n      }\n\n      var textEl = child.getTextContent();\n      var ecData = getECData(child);\n\n      if (textEl && !textEl.disableLabelLayout) {\n        _this._addLabel(ecData.dataIndex, ecData.dataType, seriesModel, textEl, layoutOption);\n      }\n    });\n  };\n\n  LabelManager.prototype.updateLayoutConfig = function (api) {\n    var width = api.getWidth();\n    var height = api.getHeight();\n\n    function createDragHandler(el, labelLineModel) {\n      return function () {\n        updateLabelLinePoints(el, labelLineModel);\n      };\n    }\n\n    for (var i = 0; i < this._labelList.length; i++) {\n      var labelItem = this._labelList[i];\n      var label = labelItem.label;\n      var hostEl = label.__hostTarget;\n      var defaultLabelAttr = labelItem.defaultAttr;\n      var layoutOption = void 0;\n\n      if (typeof labelItem.layoutOption === 'function') {\n        layoutOption = labelItem.layoutOption(prepareLayoutCallbackParams(labelItem, hostEl));\n      } else {\n        layoutOption = labelItem.layoutOption;\n      }\n\n      layoutOption = layoutOption || {};\n      labelItem.computedLayoutOption = layoutOption;\n      var degreeToRadian = Math.PI / 180;\n\n      if (hostEl) {\n        hostEl.setTextConfig({\n          local: false,\n          position: layoutOption.x != null || layoutOption.y != null ? null : defaultLabelAttr.attachedPos,\n          rotation: layoutOption.rotate != null ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.attachedRot,\n          offset: [layoutOption.dx || 0, layoutOption.dy || 0]\n        });\n      }\n\n      var needsUpdateLabelLine = false;\n\n      if (layoutOption.x != null) {\n        label.x = parsePercent(layoutOption.x, width);\n        label.setStyle('x', 0);\n        needsUpdateLabelLine = true;\n      } else {\n        label.x = defaultLabelAttr.x;\n        label.setStyle('x', defaultLabelAttr.style.x);\n      }\n\n      if (layoutOption.y != null) {\n        label.y = parsePercent(layoutOption.y, height);\n        label.setStyle('y', 0);\n        needsUpdateLabelLine = true;\n      } else {\n        label.y = defaultLabelAttr.y;\n        label.setStyle('y', defaultLabelAttr.style.y);\n      }\n\n      if (layoutOption.labelLinePoints) {\n        var guideLine = hostEl.getTextGuideLine();\n\n        if (guideLine) {\n          guideLine.setShape({\n            points: layoutOption.labelLinePoints\n          });\n          needsUpdateLabelLine = false;\n        }\n      }\n\n      var labelLayoutStore = labelLayoutInnerStore(label);\n      labelLayoutStore.needsUpdateLabelLine = needsUpdateLabelLine;\n      label.rotation = layoutOption.rotate != null ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.rotation;\n\n      for (var k = 0; k < LABEL_OPTION_TO_STYLE_KEYS.length; k++) {\n        var key = LABEL_OPTION_TO_STYLE_KEYS[k];\n        label.setStyle(key, layoutOption[key] != null ? layoutOption[key] : defaultLabelAttr.style[key]);\n      }\n\n      if (layoutOption.draggable) {\n        label.draggable = true;\n        label.cursor = 'move';\n\n        if (hostEl) {\n          var hostModel = labelItem.seriesModel;\n\n          if (labelItem.dataIndex != null) {\n            var data = labelItem.seriesModel.getData(labelItem.dataType);\n            hostModel = data.getItemModel(labelItem.dataIndex);\n          }\n\n          label.on('drag', createDragHandler(hostEl, hostModel.getModel('labelLine')));\n        }\n      } else {\n        label.off('drag');\n        label.cursor = defaultLabelAttr.cursor;\n      }\n    }\n  };\n\n  LabelManager.prototype.layout = function (api) {\n    var width = api.getWidth();\n    var height = api.getHeight();\n    var labelList = prepareLayoutList(this._labelList);\n    var labelsNeedsAdjustOnX = filter(labelList, function (item) {\n      return item.layoutOption.moveOverlap === 'shiftX';\n    });\n    var labelsNeedsAdjustOnY = filter(labelList, function (item) {\n      return item.layoutOption.moveOverlap === 'shiftY';\n    });\n    shiftLayoutOnX(labelsNeedsAdjustOnX, 0, width);\n    shiftLayoutOnY(labelsNeedsAdjustOnY, 0, height);\n    var labelsNeedsHideOverlap = filter(labelList, function (item) {\n      return item.layoutOption.hideOverlap;\n    });\n    hideOverlap(labelsNeedsHideOverlap);\n  };\n\n  LabelManager.prototype.processLabelsOverall = function () {\n    var _this = this;\n\n    each(this._chartViewList, function (chartView) {\n      var seriesModel = chartView.__model;\n      var ignoreLabelLineUpdate = chartView.ignoreLabelLineUpdate;\n      var animationEnabled = seriesModel.isAnimationEnabled();\n      chartView.group.traverse(function (child) {\n        if (child.ignore) {\n          return true;\n        }\n\n        var needsUpdateLabelLine = !ignoreLabelLineUpdate;\n        var label = child.getTextContent();\n\n        if (!needsUpdateLabelLine && label) {\n          needsUpdateLabelLine = labelLayoutInnerStore(label).needsUpdateLabelLine;\n        }\n\n        if (needsUpdateLabelLine) {\n          _this._updateLabelLine(child, seriesModel);\n        }\n\n        if (animationEnabled) {\n          _this._animateLabels(child, seriesModel);\n        }\n      });\n    });\n  };\n\n  LabelManager.prototype._updateLabelLine = function (el, seriesModel) {\n    var textEl = el.getTextContent();\n    var ecData = getECData(el);\n    var dataIndex = ecData.dataIndex;\n\n    if (textEl && dataIndex != null) {\n      var data = seriesModel.getData(ecData.dataType);\n      var itemModel = data.getItemModel(dataIndex);\n      var defaultStyle = {};\n      var visualStyle = data.getItemVisual(dataIndex, 'style');\n      var visualType = data.getVisual('drawType');\n      defaultStyle.stroke = visualStyle[visualType];\n      var labelLineModel = itemModel.getModel('labelLine');\n      setLabelLineStyle(el, getLabelLineStatesModels(itemModel), defaultStyle);\n      updateLabelLinePoints(el, labelLineModel);\n    }\n  };\n\n  LabelManager.prototype._animateLabels = function (el, seriesModel) {\n    var textEl = el.getTextContent();\n    var guideLine = el.getTextGuideLine();\n\n    if (textEl && !textEl.ignore && !textEl.invisible && !el.disableLabelAnimation && !isElementRemoved(el)) {\n      var layoutStore = labelLayoutInnerStore(textEl);\n      var oldLayout = layoutStore.oldLayout;\n      var ecData = getECData(el);\n      var dataIndex = ecData.dataIndex;\n      var newProps = {\n        x: textEl.x,\n        y: textEl.y,\n        rotation: textEl.rotation\n      };\n      var data = seriesModel.getData(ecData.dataType);\n\n      if (!oldLayout) {\n        textEl.attr(newProps);\n\n        if (!labelInner(textEl).valueAnimation) {\n          var oldOpacity = retrieve2(textEl.style.opacity, 1);\n          textEl.style.opacity = 0;\n          initProps(textEl, {\n            style: {\n              opacity: oldOpacity\n            }\n          }, seriesModel, dataIndex);\n        }\n      } else {\n        textEl.attr(oldLayout);\n        var prevStates = el.prevStates;\n\n        if (prevStates) {\n          if (indexOf(prevStates, 'select') >= 0) {\n            textEl.attr(layoutStore.oldLayoutSelect);\n          }\n\n          if (indexOf(prevStates, 'emphasis') >= 0) {\n            textEl.attr(layoutStore.oldLayoutEmphasis);\n          }\n        }\n\n        updateProps(textEl, newProps, seriesModel, dataIndex);\n      }\n\n      layoutStore.oldLayout = newProps;\n\n      if (textEl.states.select) {\n        var layoutSelect = layoutStore.oldLayoutSelect = {};\n        extendWithKeys(layoutSelect, newProps, LABEL_LAYOUT_PROPS);\n        extendWithKeys(layoutSelect, textEl.states.select, LABEL_LAYOUT_PROPS);\n      }\n\n      if (textEl.states.emphasis) {\n        var layoutEmphasis = layoutStore.oldLayoutEmphasis = {};\n        extendWithKeys(layoutEmphasis, newProps, LABEL_LAYOUT_PROPS);\n        extendWithKeys(layoutEmphasis, textEl.states.emphasis, LABEL_LAYOUT_PROPS);\n      }\n\n      animateLabelValue(textEl, dataIndex, data, seriesModel, seriesModel);\n    }\n\n    if (guideLine && !guideLine.ignore && !guideLine.invisible) {\n      var layoutStore = labelLineAnimationStore(guideLine);\n      var oldLayout = layoutStore.oldLayout;\n      var newLayout = {\n        points: guideLine.shape.points\n      };\n\n      if (!oldLayout) {\n        guideLine.setShape(newLayout);\n        guideLine.style.strokePercent = 0;\n        initProps(guideLine, {\n          style: {\n            strokePercent: 1\n          }\n        }, seriesModel);\n      } else {\n        guideLine.attr({\n          shape: oldLayout\n        });\n        updateProps(guideLine, {\n          shape: newLayout\n        }, seriesModel);\n      }\n\n      layoutStore.oldLayout = newLayout;\n    }\n  };\n\n  return LabelManager;\n}();\n\nexport default LabelManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { extend, each, isArray } from 'zrender/lib/core/util';\nimport { deprecateReplaceLog, deprecateLog } from '../util/log';\nimport { queryDataIndex } from '../util/model';\nexport function createLegacyDataSelectAction(seriesType, ecRegisterAction) {\n  function getSeriesIndices(ecModel, payload) {\n    var seriesIndices = [];\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: seriesType,\n      query: payload\n    }, function (seriesModel) {\n      seriesIndices.push(seriesModel.seriesIndex);\n    });\n    return seriesIndices;\n  }\n\n  each([[seriesType + 'ToggleSelect', 'toggleSelect'], [seriesType + 'Select', 'select'], [seriesType + 'UnSelect', 'unselect']], function (eventsMap) {\n    ecRegisterAction(eventsMap[0], function (payload, ecModel, api) {\n      payload = extend({}, payload);\n\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateReplaceLog(payload.type, eventsMap[1]);\n      }\n\n      api.dispatchAction(extend(payload, {\n        type: eventsMap[1],\n        seriesIndex: getSeriesIndices(ecModel, payload)\n      }));\n    });\n  });\n}\n\nfunction handleSeriesLegacySelectEvents(type, eventPostfix, ecIns, ecModel, payload) {\n  var legacyEventName = type + eventPostfix;\n\n  if (!ecIns.isSilent(legacyEventName)) {\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateLog(\"event \" + legacyEventName + \" is deprecated.\");\n    }\n\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'pie'\n    }, function (seriesModel) {\n      var seriesIndex = seriesModel.seriesIndex;\n      var selected = payload.selected;\n\n      for (var i = 0; i < selected.length; i++) {\n        if (selected[i].seriesIndex === seriesIndex) {\n          var data = seriesModel.getData();\n          var dataIndex = queryDataIndex(data, payload.fromActionPayload);\n          ecIns.trigger(legacyEventName, {\n            type: legacyEventName,\n            seriesId: seriesModel.id,\n            name: isArray(dataIndex) ? data.getName(dataIndex[0]) : data.getName(dataIndex),\n            selected: extend({}, seriesModel.option.selectedMap)\n          });\n        }\n      }\n    });\n  }\n}\n\nexport function handleLegacySelectEvents(messageCenter, ecIns, api) {\n  messageCenter.on('selectchanged', function (params) {\n    var ecModel = api.getModel();\n\n    if (params.isFromClick) {\n      handleSeriesLegacySelectEvents('map', 'selectchanged', ecIns, ecModel, params);\n      handleSeriesLegacySelectEvents('pie', 'selectchanged', ecIns, ecModel, params);\n    } else if (params.fromAction === 'select') {\n      handleSeriesLegacySelectEvents('map', 'selected', ecIns, ecModel, params);\n      handleSeriesLegacySelectEvents('pie', 'selected', ecIns, ecModel, params);\n    } else if (params.fromAction === 'unselect') {\n      handleSeriesLegacySelectEvents('map', 'unselected', ecIns, ecModel, params);\n      handleSeriesLegacySelectEvents('pie', 'unselected', ecIns, ecModel, params);\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function findEventDispatcher(target, det, returnFirstMatch) {\n  var found;\n\n  while (target) {\n    if (det(target)) {\n      found = target;\n\n      if (returnFirstMatch) {\n        break;\n      }\n    }\n\n    target = target.__hostTarget || target.parent;\n  }\n\n  return found;\n}","var wmUniqueIndex = Math.round(Math.random() * 9);\nvar WeakMap = (function () {\n    function WeakMap() {\n        this._id = '__ec_inner_' + wmUniqueIndex++;\n    }\n    WeakMap.prototype.get = function (key) {\n        return this._guard(key)[this._id];\n    };\n    WeakMap.prototype.set = function (key, value) {\n        var target = this._guard(key);\n        if (typeof Object.defineProperty === 'function') {\n            Object.defineProperty(target, this._id, {\n                value: value,\n                enumerable: false,\n                configurable: true\n            });\n        }\n        else {\n            target[this._id] = value;\n        }\n        return this;\n    };\n    WeakMap.prototype[\"delete\"] = function (key) {\n        if (this.has(key)) {\n            delete this._guard(key)[this._id];\n            return true;\n        }\n        return false;\n    };\n    WeakMap.prototype.has = function (key) {\n        return !!this._guard(key)[this._id];\n    };\n    WeakMap.prototype._guard = function (key) {\n        if (key !== Object(key)) {\n            throw TypeError('Value of WeakMap is not a non-null object.');\n        }\n        return key;\n    };\n    return WeakMap;\n}());\nexport default WeakMap;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from './graphic';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { calculateTextPosition } from 'zrender/lib/contain/text';\nvar Triangle = graphic.Path.extend({\n  type: 'triangle',\n  shape: {\n    cx: 0,\n    cy: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (path, shape) {\n    var cx = shape.cx;\n    var cy = shape.cy;\n    var width = shape.width / 2;\n    var height = shape.height / 2;\n    path.moveTo(cx, cy - height);\n    path.lineTo(cx + width, cy + height);\n    path.lineTo(cx - width, cy + height);\n    path.closePath();\n  }\n});\nvar Diamond = graphic.Path.extend({\n  type: 'diamond',\n  shape: {\n    cx: 0,\n    cy: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (path, shape) {\n    var cx = shape.cx;\n    var cy = shape.cy;\n    var width = shape.width / 2;\n    var height = shape.height / 2;\n    path.moveTo(cx, cy - height);\n    path.lineTo(cx + width, cy);\n    path.lineTo(cx, cy + height);\n    path.lineTo(cx - width, cy);\n    path.closePath();\n  }\n});\nvar Pin = graphic.Path.extend({\n  type: 'pin',\n  shape: {\n    x: 0,\n    y: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (path, shape) {\n    var x = shape.x;\n    var y = shape.y;\n    var w = shape.width / 5 * 3;\n    var h = Math.max(w, shape.height);\n    var r = w / 2;\n    var dy = r * r / (h - r);\n    var cy = y - h + r + dy;\n    var angle = Math.asin(dy / r);\n    var dx = Math.cos(angle) * r;\n    var tanX = Math.sin(angle);\n    var tanY = Math.cos(angle);\n    var cpLen = r * 0.6;\n    var cpLen2 = r * 0.7;\n    path.moveTo(x - dx, cy + dy);\n    path.arc(x, cy, r, Math.PI - angle, Math.PI * 2 + angle);\n    path.bezierCurveTo(x + dx - tanX * cpLen, cy + dy + tanY * cpLen, x, y - cpLen2, x, y);\n    path.bezierCurveTo(x, y - cpLen2, x - dx + tanX * cpLen, cy + dy + tanY * cpLen, x - dx, cy + dy);\n    path.closePath();\n  }\n});\nvar Arrow = graphic.Path.extend({\n  type: 'arrow',\n  shape: {\n    x: 0,\n    y: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (ctx, shape) {\n    var height = shape.height;\n    var width = shape.width;\n    var x = shape.x;\n    var y = shape.y;\n    var dx = width / 3 * 2;\n    ctx.moveTo(x, y);\n    ctx.lineTo(x + dx, y + height);\n    ctx.lineTo(x, y + height / 4 * 3);\n    ctx.lineTo(x - dx, y + height);\n    ctx.lineTo(x, y);\n    ctx.closePath();\n  }\n});\nvar symbolCtors = {\n  line: graphic.Rect,\n  rect: graphic.Rect,\n  roundRect: graphic.Rect,\n  square: graphic.Rect,\n  circle: graphic.Circle,\n  diamond: Diamond,\n  pin: Pin,\n  arrow: Arrow,\n  triangle: Triangle\n};\nvar symbolShapeMakers = {\n  line: function (x, y, w, h, shape) {\n    var thickness = 2;\n    shape.x = x;\n    shape.y = y + h / 2 - thickness / 2;\n    shape.width = w;\n    shape.height = thickness;\n  },\n  rect: function (x, y, w, h, shape) {\n    shape.x = x;\n    shape.y = y;\n    shape.width = w;\n    shape.height = h;\n  },\n  roundRect: function (x, y, w, h, shape) {\n    shape.x = x;\n    shape.y = y;\n    shape.width = w;\n    shape.height = h;\n    shape.r = Math.min(w, h) / 4;\n  },\n  square: function (x, y, w, h, shape) {\n    var size = Math.min(w, h);\n    shape.x = x;\n    shape.y = y;\n    shape.width = size;\n    shape.height = size;\n  },\n  circle: function (x, y, w, h, shape) {\n    shape.cx = x + w / 2;\n    shape.cy = y + h / 2;\n    shape.r = Math.min(w, h) / 2;\n  },\n  diamond: function (x, y, w, h, shape) {\n    shape.cx = x + w / 2;\n    shape.cy = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  },\n  pin: function (x, y, w, h, shape) {\n    shape.x = x + w / 2;\n    shape.y = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  },\n  arrow: function (x, y, w, h, shape) {\n    shape.x = x + w / 2;\n    shape.y = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  },\n  triangle: function (x, y, w, h, shape) {\n    shape.cx = x + w / 2;\n    shape.cy = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  }\n};\nexport var symbolBuildProxies = {};\nzrUtil.each(symbolCtors, function (Ctor, name) {\n  symbolBuildProxies[name] = new Ctor();\n});\nvar SymbolClz = graphic.Path.extend({\n  type: 'symbol',\n  shape: {\n    symbolType: '',\n    x: 0,\n    y: 0,\n    width: 0,\n    height: 0\n  },\n  calculateTextPosition: function (out, config, rect) {\n    var res = calculateTextPosition(out, config, rect);\n    var shape = this.shape;\n\n    if (shape && shape.symbolType === 'pin' && config.position === 'inside') {\n      res.y = rect.y + rect.height * 0.4;\n    }\n\n    return res;\n  },\n  buildPath: function (ctx, shape, inBundle) {\n    var symbolType = shape.symbolType;\n\n    if (symbolType !== 'none') {\n      var proxySymbol = symbolBuildProxies[symbolType];\n\n      if (!proxySymbol) {\n        symbolType = 'rect';\n        proxySymbol = symbolBuildProxies[symbolType];\n      }\n\n      symbolShapeMakers[symbolType](shape.x, shape.y, shape.width, shape.height, proxySymbol.shape);\n      proxySymbol.buildPath(ctx, proxySymbol.shape, inBundle);\n    }\n  }\n});\n\nfunction symbolPathSetColor(color, innerColor) {\n  if (this.type !== 'image') {\n    var symbolStyle = this.style;\n\n    if (this.__isEmptyBrush) {\n      symbolStyle.stroke = color;\n      symbolStyle.fill = innerColor || '#fff';\n      symbolStyle.lineWidth = 2;\n    } else {\n      symbolStyle.fill = color;\n    }\n\n    this.markRedraw();\n  }\n}\n\nexport function createSymbol(symbolType, x, y, w, h, color, keepAspect) {\n  var isEmpty = symbolType.indexOf('empty') === 0;\n\n  if (isEmpty) {\n    symbolType = symbolType.substr(5, 1).toLowerCase() + symbolType.substr(6);\n  }\n\n  var symbolPath;\n\n  if (symbolType.indexOf('image://') === 0) {\n    symbolPath = graphic.makeImage(symbolType.slice(8), new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\n  } else if (symbolType.indexOf('path://') === 0) {\n    symbolPath = graphic.makePath(symbolType.slice(7), {}, new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\n  } else {\n    symbolPath = new SymbolClz({\n      shape: {\n        symbolType: symbolType,\n        x: x,\n        y: y,\n        width: w,\n        height: h\n      }\n    });\n  }\n\n  symbolPath.__isEmptyBrush = isEmpty;\n  symbolPath.setColor = symbolPathSetColor;\n\n  if (color) {\n    symbolPath.setColor(color);\n  }\n\n  return symbolPath;\n}","export function createLinearGradient(ctx, obj, rect) {\n    var x = obj.x == null ? 0 : obj.x;\n    var x2 = obj.x2 == null ? 1 : obj.x2;\n    var y = obj.y == null ? 0 : obj.y;\n    var y2 = obj.y2 == null ? 0 : obj.y2;\n    if (!obj.global) {\n        x = x * rect.width + rect.x;\n        x2 = x2 * rect.width + rect.x;\n        y = y * rect.height + rect.y;\n        y2 = y2 * rect.height + rect.y;\n    }\n    x = isNaN(x) ? 0 : x;\n    x2 = isNaN(x2) ? 1 : x2;\n    y = isNaN(y) ? 0 : y;\n    y2 = isNaN(y2) ? 0 : y2;\n    var canvasGradient = ctx.createLinearGradient(x, y, x2, y2);\n    return canvasGradient;\n}\nexport function createRadialGradient(ctx, obj, rect) {\n    var width = rect.width;\n    var height = rect.height;\n    var min = Math.min(width, height);\n    var x = obj.x == null ? 0.5 : obj.x;\n    var y = obj.y == null ? 0.5 : obj.y;\n    var r = obj.r == null ? 0.5 : obj.r;\n    if (!obj.global) {\n        x = x * width + rect.x;\n        y = y * height + rect.y;\n        r = r * min;\n    }\n    var canvasGradient = ctx.createRadialGradient(x, y, 0, x, y, r);\n    return canvasGradient;\n}\nexport function getCanvasGradient(ctx, obj, rect) {\n    var canvasGradient = obj.type === 'radial'\n        ? createRadialGradient(ctx, obj, rect)\n        : createLinearGradient(ctx, obj, rect);\n    var colorStops = obj.colorStops;\n    for (var i = 0; i < colorStops.length; i++) {\n        canvasGradient.addColorStop(colorStops[i].offset, colorStops[i].color);\n    }\n    return canvasGradient;\n}\nexport function isClipPathChanged(clipPaths, prevClipPaths) {\n    if (clipPaths === prevClipPaths || (!clipPaths && !prevClipPaths)) {\n        return false;\n    }\n    if (!clipPaths || !prevClipPaths || (clipPaths.length !== prevClipPaths.length)) {\n        return true;\n    }\n    for (var i = 0; i < clipPaths.length; i++) {\n        if (clipPaths[i] !== prevClipPaths[i]) {\n            return true;\n        }\n    }\n    return false;\n}\n","import { isArray, isNumber } from '../../core/util';\nexport function normalizeLineDash(lineType, lineWidth) {\n    if (!lineType || lineType === 'solid' || !(lineWidth > 0)) {\n        return null;\n    }\n    lineWidth = lineWidth || 1;\n    return lineType === 'dashed'\n        ? [4 * lineWidth, 2 * lineWidth]\n        : lineType === 'dotted'\n            ? [lineWidth]\n            : isNumber(lineType)\n                ? [lineType] : isArray(lineType) ? lineType : null;\n}\n","import { DEFAULT_COMMON_STYLE } from '../graphic/Displayable';\nimport PathProxy from '../core/PathProxy';\nimport { createOrUpdateImage, isImageReady } from '../graphic/helper/image';\nimport { getCanvasGradient, isClipPathChanged } from './helper';\nimport Path from '../graphic/Path';\nimport ZRImage from '../graphic/Image';\nimport TSpan from '../graphic/TSpan';\nimport { DEFAULT_FONT } from '../contain/text';\nimport { map } from '../core/util';\nimport { normalizeLineDash } from '../graphic/helper/dashStyle';\nimport Element from '../Element';\nimport IncrementalDisplayable from '../graphic/IncrementalDisplayable';\nvar pathProxyForDraw = new PathProxy(true);\nfunction styleHasStroke(style) {\n    var stroke = style.stroke;\n    return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\n}\nfunction styleHasFill(style) {\n    var fill = style.fill;\n    return fill != null && fill !== 'none';\n}\nfunction doFillPath(ctx, style) {\n    if (style.fillOpacity != null && style.fillOpacity !== 1) {\n        var originalGlobalAlpha = ctx.globalAlpha;\n        ctx.globalAlpha = style.fillOpacity * style.opacity;\n        ctx.fill();\n        ctx.globalAlpha = originalGlobalAlpha;\n    }\n    else {\n        ctx.fill();\n    }\n}\nfunction doStrokePath(ctx, style) {\n    if (style.strokeOpacity != null && style.strokeOpacity !== 1) {\n        var originalGlobalAlpha = ctx.globalAlpha;\n        ctx.globalAlpha = style.strokeOpacity * style.opacity;\n        ctx.stroke();\n        ctx.globalAlpha = originalGlobalAlpha;\n    }\n    else {\n        ctx.stroke();\n    }\n}\nexport function createCanvasPattern(ctx, pattern, el) {\n    var image = createOrUpdateImage(pattern.image, pattern.__image, el);\n    if (isImageReady(image)) {\n        var canvasPattern = ctx.createPattern(image, pattern.repeat || 'repeat');\n        if (typeof DOMMatrix === 'function') {\n            var matrix = new DOMMatrix();\n            matrix.rotateSelf(0, 0, (pattern.rotation || 0) / Math.PI * 180);\n            matrix.scaleSelf((pattern.scaleX || 1), (pattern.scaleY || 1));\n            matrix.translateSelf((pattern.x || 0), (pattern.y || 0));\n            canvasPattern.setTransform(matrix);\n        }\n        return canvasPattern;\n    }\n}\nfunction brushPath(ctx, el, style, inBatch) {\n    var hasStroke = styleHasStroke(style);\n    var hasFill = styleHasFill(style);\n    var strokePercent = style.strokePercent;\n    var strokePart = strokePercent < 1;\n    var firstDraw = !el.path;\n    if ((!el.silent || strokePart) && firstDraw) {\n        el.createPathProxy();\n    }\n    var path = el.path || pathProxyForDraw;\n    if (!inBatch) {\n        var fill = style.fill;\n        var stroke = style.stroke;\n        var hasFillGradient = hasFill && !!fill.colorStops;\n        var hasStrokeGradient = hasStroke && !!stroke.colorStops;\n        var hasFillPattern = hasFill && !!fill.image;\n        var hasStrokePattern = hasStroke && !!stroke.image;\n        var fillGradient = void 0;\n        var strokeGradient = void 0;\n        var fillPattern = void 0;\n        var strokePattern = void 0;\n        var rect = void 0;\n        if (hasFillGradient || hasStrokeGradient) {\n            rect = el.getBoundingRect();\n        }\n        if (hasFillGradient) {\n            fillGradient = el.__dirty\n                ? getCanvasGradient(ctx, fill, rect)\n                : el.__canvasFillGradient;\n            el.__canvasFillGradient = fillGradient;\n        }\n        if (hasStrokeGradient) {\n            strokeGradient = el.__dirty\n                ? getCanvasGradient(ctx, stroke, rect)\n                : el.__canvasStrokeGradient;\n            el.__canvasStrokeGradient = strokeGradient;\n        }\n        if (hasFillPattern) {\n            fillPattern = (el.__dirty || !el.__canvasFillPattern)\n                ? createCanvasPattern(ctx, fill, el)\n                : el.__canvasFillPattern;\n            el.__canvasFillPattern = fillPattern;\n        }\n        if (hasStrokePattern) {\n            strokePattern = (el.__dirty || !el.__canvasStrokePattern)\n                ? createCanvasPattern(ctx, stroke, el)\n                : el.__canvasStrokePattern;\n            el.__canvasStrokePattern = fillPattern;\n        }\n        if (hasFillGradient) {\n            ctx.fillStyle = fillGradient;\n        }\n        else if (hasFillPattern) {\n            if (fillPattern) {\n                ctx.fillStyle = fillPattern;\n            }\n            else {\n                hasFill = false;\n            }\n        }\n        if (hasStrokeGradient) {\n            ctx.strokeStyle = strokeGradient;\n        }\n        else if (hasStrokePattern) {\n            if (strokePattern) {\n                ctx.strokeStyle = strokePattern;\n            }\n            else {\n                hasStroke = false;\n            }\n        }\n    }\n    var lineDash = style.lineDash && style.lineWidth > 0 && normalizeLineDash(style.lineDash, style.lineWidth);\n    var lineDashOffset = style.lineDashOffset;\n    var ctxLineDash = !!ctx.setLineDash;\n    var scale = el.getGlobalScale();\n    path.setScale(scale[0], scale[1], el.segmentIgnoreThreshold);\n    if (lineDash) {\n        var lineScale_1 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\n        if (lineScale_1 && lineScale_1 !== 1) {\n            lineDash = map(lineDash, function (rawVal) {\n                return rawVal / lineScale_1;\n            });\n            lineDashOffset /= lineScale_1;\n        }\n    }\n    var needsRebuild = true;\n    if (firstDraw || (el.__dirty & Path.SHAPE_CHANGED_BIT)\n        || (lineDash && !ctxLineDash && hasStroke)) {\n        path.setDPR(ctx.dpr);\n        if (strokePart) {\n            path.setContext(null);\n        }\n        else {\n            path.setContext(ctx);\n            needsRebuild = false;\n        }\n        path.reset();\n        if (lineDash && !ctxLineDash) {\n            path.setLineDash(lineDash);\n            path.setLineDashOffset(lineDashOffset);\n        }\n        el.buildPath(path, el.shape, inBatch);\n        path.toStatic();\n        el.pathUpdated();\n    }\n    if (needsRebuild) {\n        path.rebuildPath(ctx, strokePart ? strokePercent : 1);\n    }\n    if (lineDash && ctxLineDash) {\n        ctx.setLineDash(lineDash);\n        ctx.lineDashOffset = lineDashOffset;\n    }\n    if (!inBatch) {\n        if (style.strokeFirst) {\n            if (hasStroke) {\n                doStrokePath(ctx, style);\n            }\n            if (hasFill) {\n                doFillPath(ctx, style);\n            }\n        }\n        else {\n            if (hasFill) {\n                doFillPath(ctx, style);\n            }\n            if (hasStroke) {\n                doStrokePath(ctx, style);\n            }\n        }\n    }\n    if (lineDash && ctxLineDash) {\n        ctx.setLineDash([]);\n    }\n}\nfunction brushImage(ctx, el, style) {\n    var image = el.__image = createOrUpdateImage(style.image, el.__image, el, el.onload);\n    if (!image || !isImageReady(image)) {\n        return;\n    }\n    var x = style.x || 0;\n    var y = style.y || 0;\n    var width = el.getWidth();\n    var height = el.getHeight();\n    var aspect = image.width / image.height;\n    if (width == null && height != null) {\n        width = height * aspect;\n    }\n    else if (height == null && width != null) {\n        height = width / aspect;\n    }\n    else if (width == null && height == null) {\n        width = image.width;\n        height = image.height;\n    }\n    if (style.sWidth && style.sHeight) {\n        var sx = style.sx || 0;\n        var sy = style.sy || 0;\n        ctx.drawImage(image, sx, sy, style.sWidth, style.sHeight, x, y, width, height);\n    }\n    else if (style.sx && style.sy) {\n        var sx = style.sx;\n        var sy = style.sy;\n        var sWidth = width - sx;\n        var sHeight = height - sy;\n        ctx.drawImage(image, sx, sy, sWidth, sHeight, x, y, width, height);\n    }\n    else {\n        ctx.drawImage(image, x, y, width, height);\n    }\n}\nfunction brushText(ctx, el, style) {\n    var text = style.text;\n    text != null && (text += '');\n    if (text) {\n        ctx.font = style.font || DEFAULT_FONT;\n        ctx.textAlign = style.textAlign;\n        ctx.textBaseline = style.textBaseline;\n        var hasLineDash = void 0;\n        if (ctx.setLineDash) {\n            var lineDash = style.lineDash && style.lineWidth > 0 && normalizeLineDash(style.lineDash, style.lineWidth);\n            var lineDashOffset = style.lineDashOffset;\n            if (lineDash) {\n                var lineScale_2 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\n                if (lineScale_2 && lineScale_2 !== 1) {\n                    lineDash = map(lineDash, function (rawVal) {\n                        return rawVal / lineScale_2;\n                    });\n                    lineDashOffset /= lineScale_2;\n                }\n                ctx.setLineDash(lineDash);\n                ctx.lineDashOffset = lineDashOffset;\n                hasLineDash = true;\n            }\n        }\n        if (style.strokeFirst) {\n            if (styleHasStroke(style)) {\n                ctx.strokeText(text, style.x, style.y);\n            }\n            if (styleHasFill(style)) {\n                ctx.fillText(text, style.x, style.y);\n            }\n        }\n        else {\n            if (styleHasFill(style)) {\n                ctx.fillText(text, style.x, style.y);\n            }\n            if (styleHasStroke(style)) {\n                ctx.strokeText(text, style.x, style.y);\n            }\n        }\n        if (hasLineDash) {\n            ctx.setLineDash([]);\n        }\n    }\n}\nvar SHADOW_NUMBER_PROPS = ['shadowBlur', 'shadowOffsetX', 'shadowOffsetY'];\nvar STROKE_PROPS = [\n    ['lineCap', 'butt'], ['lineJoin', 'miter'], ['miterLimit', 10]\n];\nfunction bindCommonProps(ctx, style, prevStyle, forceSetAll, scope) {\n    var styleChanged = false;\n    if (!forceSetAll) {\n        prevStyle = prevStyle || {};\n        if (style === prevStyle) {\n            return false;\n        }\n    }\n    if (forceSetAll || style.opacity !== prevStyle.opacity) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.globalAlpha = style.opacity == null ? DEFAULT_COMMON_STYLE.opacity : style.opacity;\n    }\n    if (forceSetAll || style.blend !== prevStyle.blend) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.globalCompositeOperation = style.blend || DEFAULT_COMMON_STYLE.blend;\n    }\n    for (var i = 0; i < SHADOW_NUMBER_PROPS.length; i++) {\n        var propName = SHADOW_NUMBER_PROPS[i];\n        if (forceSetAll || style[propName] !== prevStyle[propName]) {\n            if (!styleChanged) {\n                flushPathDrawn(ctx, scope);\n                styleChanged = true;\n            }\n            ctx[propName] = ctx.dpr * (style[propName] || 0);\n        }\n    }\n    if (forceSetAll || style.shadowColor !== prevStyle.shadowColor) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.shadowColor = style.shadowColor || DEFAULT_COMMON_STYLE.shadowColor;\n    }\n    return styleChanged;\n}\nfunction bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetAll, scope) {\n    var style = getStyle(el, scope.inHover);\n    var prevStyle = forceSetAll\n        ? null\n        : (prevEl && getStyle(prevEl, scope.inHover) || {});\n    if (style === prevStyle) {\n        return false;\n    }\n    var styleChanged = bindCommonProps(ctx, style, prevStyle, forceSetAll, scope);\n    if (forceSetAll || style.fill !== prevStyle.fill) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.fillStyle = style.fill;\n    }\n    if (forceSetAll || style.stroke !== prevStyle.stroke) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.strokeStyle = style.stroke;\n    }\n    if (forceSetAll || style.opacity !== prevStyle.opacity) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.globalAlpha = style.opacity == null ? 1 : style.opacity;\n    }\n    if (el.hasStroke()) {\n        var lineWidth = style.lineWidth;\n        var newLineWidth = lineWidth / ((style.strokeNoScale && el && el.getLineScale) ? el.getLineScale() : 1);\n        if (ctx.lineWidth !== newLineWidth) {\n            if (!styleChanged) {\n                flushPathDrawn(ctx, scope);\n                styleChanged = true;\n            }\n            ctx.lineWidth = newLineWidth;\n        }\n    }\n    for (var i = 0; i < STROKE_PROPS.length; i++) {\n        var prop = STROKE_PROPS[i];\n        var propName = prop[0];\n        if (forceSetAll || style[propName] !== prevStyle[propName]) {\n            if (!styleChanged) {\n                flushPathDrawn(ctx, scope);\n                styleChanged = true;\n            }\n            ctx[propName] = style[propName] || prop[1];\n        }\n    }\n    return styleChanged;\n}\nfunction bindImageStyle(ctx, el, prevEl, forceSetAll, scope) {\n    return bindCommonProps(ctx, getStyle(el, scope.inHover), prevEl && getStyle(prevEl, scope.inHover), forceSetAll, scope);\n}\nfunction setContextTransform(ctx, el) {\n    var m = el.transform;\n    var dpr = ctx.dpr || 1;\n    if (m) {\n        ctx.setTransform(dpr * m[0], dpr * m[1], dpr * m[2], dpr * m[3], dpr * m[4], dpr * m[5]);\n    }\n    else {\n        ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n    }\n}\nfunction updateClipStatus(clipPaths, ctx, scope) {\n    var allClipped = false;\n    for (var i = 0; i < clipPaths.length; i++) {\n        var clipPath = clipPaths[i];\n        allClipped = allClipped || clipPath.isZeroArea();\n        setContextTransform(ctx, clipPath);\n        ctx.beginPath();\n        clipPath.buildPath(ctx, clipPath.shape);\n        ctx.clip();\n    }\n    scope.allClipped = allClipped;\n}\nfunction isTransformChanged(m0, m1) {\n    if (m0 && m1) {\n        return m0[0] !== m1[0]\n            || m0[1] !== m1[1]\n            || m0[2] !== m1[2]\n            || m0[3] !== m1[3]\n            || m0[4] !== m1[4]\n            || m0[5] !== m1[5];\n    }\n    else if (!m0 && !m1) {\n        return false;\n    }\n    return true;\n}\nvar DRAW_TYPE_PATH = 1;\nvar DRAW_TYPE_IMAGE = 2;\nvar DRAW_TYPE_TEXT = 3;\nvar DRAW_TYPE_INCREMENTAL = 4;\nfunction canPathBatch(style) {\n    var hasFill = styleHasFill(style);\n    var hasStroke = styleHasStroke(style);\n    return !(style.lineDash\n        || !(+hasFill ^ +hasStroke)\n        || (hasFill && typeof style.fill !== 'string')\n        || (hasStroke && typeof style.stroke !== 'string')\n        || style.strokePercent < 1\n        || style.strokeOpacity < 1\n        || style.fillOpacity < 1);\n}\nfunction flushPathDrawn(ctx, scope) {\n    scope.batchFill && ctx.fill();\n    scope.batchStroke && ctx.stroke();\n    scope.batchFill = '';\n    scope.batchStroke = '';\n}\nfunction getStyle(el, inHover) {\n    return inHover ? (el.__hoverStyle || el.style) : el.style;\n}\nexport function brushSingle(ctx, el) {\n    brush(ctx, el, { inHover: false, viewWidth: 0, viewHeight: 0 }, true);\n}\nexport function brush(ctx, el, scope, isLast) {\n    var m = el.transform;\n    if (!el.shouldBePainted(scope.viewWidth, scope.viewHeight, false, false)) {\n        el.__dirty &= ~Element.REDARAW_BIT;\n        el.__isRendered = false;\n        return;\n    }\n    var clipPaths = el.__clipPaths;\n    var prevElClipPaths = scope.prevElClipPaths;\n    var forceSetTransform = false;\n    var forceSetStyle = false;\n    if (!prevElClipPaths || isClipPathChanged(clipPaths, prevElClipPaths)) {\n        if (prevElClipPaths && prevElClipPaths.length) {\n            flushPathDrawn(ctx, scope);\n            ctx.restore();\n            forceSetStyle = forceSetTransform = true;\n            scope.prevElClipPaths = null;\n            scope.allClipped = false;\n            scope.prevEl = null;\n        }\n        if (clipPaths && clipPaths.length) {\n            flushPathDrawn(ctx, scope);\n            ctx.save();\n            updateClipStatus(clipPaths, ctx, scope);\n            forceSetTransform = true;\n        }\n        scope.prevElClipPaths = clipPaths;\n    }\n    if (scope.allClipped) {\n        el.__isRendered = false;\n        return;\n    }\n    el.beforeBrush && el.beforeBrush();\n    el.innerBeforeBrush();\n    var prevEl = scope.prevEl;\n    if (!prevEl) {\n        forceSetStyle = forceSetTransform = true;\n    }\n    var canBatchPath = el instanceof Path\n        && el.autoBatch\n        && canPathBatch(el.style);\n    if (forceSetTransform || isTransformChanged(m, prevEl.transform)) {\n        flushPathDrawn(ctx, scope);\n        setContextTransform(ctx, el);\n    }\n    else if (!canBatchPath) {\n        flushPathDrawn(ctx, scope);\n    }\n    var style = getStyle(el, scope.inHover);\n    if (el instanceof Path) {\n        if (scope.lastDrawType !== DRAW_TYPE_PATH) {\n            forceSetStyle = true;\n            scope.lastDrawType = DRAW_TYPE_PATH;\n        }\n        bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\n        if (!canBatchPath || (!scope.batchFill && !scope.batchStroke)) {\n            ctx.beginPath();\n        }\n        brushPath(ctx, el, style, canBatchPath);\n        if (canBatchPath) {\n            scope.batchFill = style.fill || '';\n            scope.batchStroke = style.stroke || '';\n        }\n    }\n    else {\n        if (el instanceof TSpan) {\n            if (scope.lastDrawType !== DRAW_TYPE_TEXT) {\n                forceSetStyle = true;\n                scope.lastDrawType = DRAW_TYPE_TEXT;\n            }\n            bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\n            brushText(ctx, el, style);\n        }\n        else if (el instanceof ZRImage) {\n            if (scope.lastDrawType !== DRAW_TYPE_IMAGE) {\n                forceSetStyle = true;\n                scope.lastDrawType = DRAW_TYPE_IMAGE;\n            }\n            bindImageStyle(ctx, el, prevEl, forceSetStyle, scope);\n            brushImage(ctx, el, style);\n        }\n        else if (el instanceof IncrementalDisplayable) {\n            if (scope.lastDrawType !== DRAW_TYPE_INCREMENTAL) {\n                forceSetStyle = true;\n                scope.lastDrawType = DRAW_TYPE_INCREMENTAL;\n            }\n            brushIncremental(ctx, el, scope);\n        }\n    }\n    if (canBatchPath && isLast) {\n        flushPathDrawn(ctx, scope);\n    }\n    el.innerAfterBrush();\n    el.afterBrush && el.afterBrush();\n    scope.prevEl = el;\n    el.__dirty = 0;\n    el.__isRendered = true;\n}\nfunction brushIncremental(ctx, el, scope) {\n    var displayables = el.getDisplayables();\n    var temporalDisplayables = el.getTemporalDisplayables();\n    ctx.save();\n    var innerScope = {\n        prevElClipPaths: null,\n        prevEl: null,\n        allClipped: false,\n        viewWidth: scope.viewWidth,\n        viewHeight: scope.viewHeight,\n        inHover: scope.inHover\n    };\n    var i;\n    var len;\n    for (i = el.getCursor(), len = displayables.length; i < len; i++) {\n        var displayable = displayables[i];\n        displayable.beforeBrush && displayable.beforeBrush();\n        displayable.innerBeforeBrush();\n        brush(ctx, displayable, innerScope, i === len - 1);\n        displayable.innerAfterBrush();\n        displayable.afterBrush && displayable.afterBrush();\n        innerScope.prevEl = displayable;\n    }\n    for (var i_1 = 0, len_1 = temporalDisplayables.length; i_1 < len_1; i_1++) {\n        var displayable = temporalDisplayables[i_1];\n        displayable.beforeBrush && displayable.beforeBrush();\n        displayable.innerBeforeBrush();\n        brush(ctx, displayable, innerScope, i_1 === len_1 - 1);\n        displayable.innerAfterBrush();\n        displayable.afterBrush && displayable.afterBrush();\n        innerScope.prevEl = displayable;\n    }\n    el.clearTemporalDisplayables();\n    el.notClear = true;\n    ctx.restore();\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport WeakMap from 'zrender/lib/core/WeakMap';\nimport LRU from 'zrender/lib/core/LRU';\nimport { defaults, createCanvas, map, isArray } from 'zrender/lib/core/util';\nimport { getLeastCommonMultiple } from './number';\nimport { createSymbol } from './symbol';\nimport { brushSingle } from 'zrender/lib/canvas/graphic';\nvar decalMap = new WeakMap();\nvar decalCache = new LRU(100);\nvar decalKeys = ['symbol', 'symbolSize', 'symbolKeepAspect', 'color', 'backgroundColor', 'dashArrayX', 'dashArrayY', 'maxTileWidth', 'maxTileHeight'];\nexport function createOrUpdatePatternFromDecal(decalObject, api) {\n  if (decalObject === 'none') {\n    return null;\n  }\n\n  var dpr = api.getDevicePixelRatio();\n  var zr = api.getZr();\n  var isSVG = zr.painter.type === 'svg';\n\n  if (decalObject.dirty) {\n    decalMap[\"delete\"](decalObject);\n  }\n\n  var oldPattern = decalMap.get(decalObject);\n\n  if (oldPattern) {\n    return oldPattern;\n  }\n\n  var decalOpt = defaults(decalObject, {\n    symbol: 'rect',\n    symbolSize: 1,\n    symbolKeepAspect: true,\n    color: 'rgba(0, 0, 0, 0.2)',\n    backgroundColor: null,\n    dashArrayX: 5,\n    dashArrayY: 5,\n    rotation: 0,\n    maxTileWidth: 512,\n    maxTileHeight: 512\n  });\n\n  if (decalOpt.backgroundColor === 'none') {\n    decalOpt.backgroundColor = null;\n  }\n\n  var pattern = {\n    repeat: 'repeat'\n  };\n  setPatternnSource(pattern);\n  pattern.rotation = decalOpt.rotation;\n  pattern.scaleX = pattern.scaleY = isSVG ? 1 : 1 / dpr;\n  decalMap.set(decalObject, pattern);\n  decalObject.dirty = false;\n  return pattern;\n\n  function setPatternnSource(pattern) {\n    var keys = [dpr];\n    var isValidKey = true;\n\n    for (var i = 0; i < decalKeys.length; ++i) {\n      var value = decalOpt[decalKeys[i]];\n      var valueType = typeof value;\n\n      if (value != null && !isArray(value) && valueType !== 'string' && valueType !== 'number' && valueType !== 'boolean') {\n        isValidKey = false;\n        break;\n      }\n\n      keys.push(value);\n    }\n\n    var cacheKey;\n\n    if (isValidKey) {\n      cacheKey = keys.join(',') + (isSVG ? '-svg' : '');\n      var cache = decalCache.get(cacheKey);\n\n      if (cache) {\n        isSVG ? pattern.svgElement = cache : pattern.image = cache;\n      }\n    }\n\n    var dashArrayX = normalizeDashArrayX(decalOpt.dashArrayX);\n    var dashArrayY = normalizeDashArrayY(decalOpt.dashArrayY);\n    var symbolArray = normalizeSymbolArray(decalOpt.symbol);\n    var lineBlockLengthsX = getLineBlockLengthX(dashArrayX);\n    var lineBlockLengthY = getLineBlockLengthY(dashArrayY);\n    var canvas = !isSVG && createCanvas();\n    var svgRoot = isSVG && zr.painter.createSVGElement('g');\n    var pSize = getPatternSize();\n    var ctx;\n\n    if (canvas) {\n      canvas.width = pSize.width * dpr;\n      canvas.height = pSize.height * dpr;\n      ctx = canvas.getContext('2d');\n    }\n\n    brushDecal();\n\n    if (isValidKey) {\n      decalCache.put(cacheKey, canvas || svgRoot);\n    }\n\n    pattern.image = canvas;\n    pattern.svgElement = svgRoot;\n    pattern.svgWidth = pSize.width;\n    pattern.svgHeight = pSize.height;\n\n    function getPatternSize() {\n      var width = 1;\n\n      for (var i = 0, xlen = lineBlockLengthsX.length; i < xlen; ++i) {\n        width = getLeastCommonMultiple(width, lineBlockLengthsX[i]);\n      }\n\n      var symbolRepeats = 1;\n\n      for (var i = 0, xlen = symbolArray.length; i < xlen; ++i) {\n        symbolRepeats = getLeastCommonMultiple(symbolRepeats, symbolArray[i].length);\n      }\n\n      width *= symbolRepeats;\n      var height = lineBlockLengthY * lineBlockLengthsX.length * symbolArray.length;\n\n      if (process.env.NODE_ENV !== 'production') {\n        var warn = function (attrName) {\n          console.warn(\"Calculated decal size is greater than \" + attrName + \" due to decal option settings so \" + attrName + \" is used for the decal size. Please consider changing the decal option to make a smaller decal or set \" + attrName + \" to be larger to avoid incontinuity.\");\n        };\n\n        if (width > decalOpt.maxTileWidth) {\n          warn('maxTileWidth');\n        }\n\n        if (height > decalOpt.maxTileHeight) {\n          warn('maxTileHeight');\n        }\n      }\n\n      return {\n        width: Math.max(1, Math.min(width, decalOpt.maxTileWidth)),\n        height: Math.max(1, Math.min(height, decalOpt.maxTileHeight))\n      };\n    }\n\n    function brushDecal() {\n      if (ctx) {\n        ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n        if (decalOpt.backgroundColor) {\n          ctx.fillStyle = decalOpt.backgroundColor;\n          ctx.fillRect(0, 0, canvas.width, canvas.height);\n        }\n      }\n\n      var ySum = 0;\n\n      for (var i = 0; i < dashArrayY.length; ++i) {\n        ySum += dashArrayY[i];\n      }\n\n      if (ySum <= 0) {\n        return;\n      }\n\n      var y = -lineBlockLengthY;\n      var yId = 0;\n      var yIdTotal = 0;\n      var xId0 = 0;\n\n      while (y < pSize.height) {\n        if (yId % 2 === 0) {\n          var symbolYId = yIdTotal / 2 % symbolArray.length;\n          var x = 0;\n          var xId1 = 0;\n          var xId1Total = 0;\n\n          while (x < pSize.width * 2) {\n            var xSum = 0;\n\n            for (var i = 0; i < dashArrayX[xId0].length; ++i) {\n              xSum += dashArrayX[xId0][i];\n            }\n\n            if (xSum <= 0) {\n              break;\n            }\n\n            if (xId1 % 2 === 0) {\n              var size = (1 - decalOpt.symbolSize) * 0.5;\n              var left = x + dashArrayX[xId0][xId1] * size;\n              var top_1 = y + dashArrayY[yId] * size;\n              var width = dashArrayX[xId0][xId1] * decalOpt.symbolSize;\n              var height = dashArrayY[yId] * decalOpt.symbolSize;\n              var symbolXId = xId1Total / 2 % symbolArray[symbolYId].length;\n              brushSymbol(left, top_1, width, height, symbolArray[symbolYId][symbolXId]);\n            }\n\n            x += dashArrayX[xId0][xId1];\n            ++xId1Total;\n            ++xId1;\n\n            if (xId1 === dashArrayX[xId0].length) {\n              xId1 = 0;\n            }\n          }\n\n          ++xId0;\n\n          if (xId0 === dashArrayX.length) {\n            xId0 = 0;\n          }\n        }\n\n        y += dashArrayY[yId];\n        ++yIdTotal;\n        ++yId;\n\n        if (yId === dashArrayY.length) {\n          yId = 0;\n        }\n      }\n\n      function brushSymbol(x, y, width, height, symbolType) {\n        var scale = isSVG ? 1 : dpr;\n        var symbol = createSymbol(symbolType, x * scale, y * scale, width * scale, height * scale, decalOpt.color, decalOpt.symbolKeepAspect);\n\n        if (isSVG) {\n          svgRoot.appendChild(zr.painter.paintOne(symbol));\n        } else {\n          brushSingle(ctx, symbol);\n        }\n      }\n    }\n  }\n}\n\nfunction normalizeSymbolArray(symbol) {\n  if (!symbol || symbol.length === 0) {\n    return [['rect']];\n  }\n\n  if (typeof symbol === 'string') {\n    return [[symbol]];\n  }\n\n  var isAllString = true;\n\n  for (var i = 0; i < symbol.length; ++i) {\n    if (typeof symbol[i] !== 'string') {\n      isAllString = false;\n      break;\n    }\n  }\n\n  if (isAllString) {\n    return normalizeSymbolArray([symbol]);\n  }\n\n  var result = [];\n\n  for (var i = 0; i < symbol.length; ++i) {\n    if (typeof symbol[i] === 'string') {\n      result.push([symbol[i]]);\n    } else {\n      result.push(symbol[i]);\n    }\n  }\n\n  return result;\n}\n\nfunction normalizeDashArrayX(dash) {\n  if (!dash || dash.length === 0) {\n    return [[0, 0]];\n  }\n\n  if (typeof dash === 'number') {\n    var dashValue = Math.ceil(dash);\n    return [[dashValue, dashValue]];\n  }\n\n  var isAllNumber = true;\n\n  for (var i = 0; i < dash.length; ++i) {\n    if (typeof dash[i] !== 'number') {\n      isAllNumber = false;\n      break;\n    }\n  }\n\n  if (isAllNumber) {\n    return normalizeDashArrayX([dash]);\n  }\n\n  var result = [];\n\n  for (var i = 0; i < dash.length; ++i) {\n    if (typeof dash[i] === 'number') {\n      var dashValue = Math.ceil(dash[i]);\n      result.push([dashValue, dashValue]);\n    } else {\n      var dashValue = map(dash[i], function (n) {\n        return Math.ceil(n);\n      });\n\n      if (dashValue.length % 2 === 1) {\n        result.push(dashValue.concat(dashValue));\n      } else {\n        result.push(dashValue);\n      }\n    }\n  }\n\n  return result;\n}\n\nfunction normalizeDashArrayY(dash) {\n  if (!dash || typeof dash === 'object' && dash.length === 0) {\n    return [0, 0];\n  }\n\n  if (typeof dash === 'number') {\n    var dashValue_1 = Math.ceil(dash);\n    return [dashValue_1, dashValue_1];\n  }\n\n  var dashValue = map(dash, function (n) {\n    return Math.ceil(n);\n  });\n  return dash.length % 2 ? dashValue.concat(dashValue) : dashValue;\n}\n\nfunction getLineBlockLengthX(dash) {\n  return map(dash, function (line) {\n    return getLineBlockLengthY(line);\n  });\n}\n\nfunction getLineBlockLengthY(dash) {\n  var blockLength = 0;\n\n  for (var i = 0; i < dash.length; ++i) {\n    blockLength += dash[i];\n  }\n\n  if (dash.length % 2 === 1) {\n    return blockLength * 2;\n  }\n\n  return blockLength;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createOrUpdatePatternFromDecal } from '../util/decal';\nexport default function decalVisual(ecModel, api) {\n  ecModel.eachRawSeries(function (seriesModel) {\n    if (ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n\n    if (data.hasItemVisual()) {\n      data.each(function (idx) {\n        var decal = data.getItemVisual(idx, 'decal');\n\n        if (decal) {\n          var itemStyle = data.ensureUniqueItemVisual(idx, 'style');\n          itemStyle.decal = createOrUpdatePatternFromDecal(decal, api);\n        }\n      });\n    }\n\n    var decal = data.getVisual('decal');\n\n    if (decal) {\n      var style = data.getVisual('style');\n      style.decal = createOrUpdatePatternFromDecal(decal, api);\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrender from 'zrender/lib/zrender';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as colorTool from 'zrender/lib/tool/color';\nimport env from 'zrender/lib/core/env';\nimport timsort from 'zrender/lib/core/timsort';\nimport Eventful from 'zrender/lib/core/Eventful';\nimport GlobalModel from '../model/Global';\nimport ExtensionAPI from './ExtensionAPI';\nimport CoordinateSystemManager from './CoordinateSystem';\nimport OptionManager from '../model/OptionManager';\nimport backwardCompat from '../preprocessor/backwardCompat';\nimport dataStack from '../processor/dataStack';\nimport SeriesModel from '../model/Series';\nimport ComponentView from '../view/Component';\nimport ChartView from '../view/Chart';\nimport * as graphic from '../util/graphic';\nimport { getECData } from '../util/innerStore';\nimport { enterEmphasisWhenMouseOver, leaveEmphasisWhenMouseOut, isHighDownDispatcher, HOVER_STATE_EMPHASIS, HOVER_STATE_BLUR, toggleSeriesBlurState, toggleSeriesBlurStateFromPayload, toggleSelectionFromPayload, updateSeriesElementSelection, getAllSelectedIndices, isSelectChangePayload, isHighDownPayload, HIGHLIGHT_ACTION_TYPE, DOWNPLAY_ACTION_TYPE, SELECT_ACTION_TYPE, UNSELECT_ACTION_TYPE, TOGGLE_SELECT_ACTION_TYPE, savePathStates, enterEmphasis, leaveEmphasis, leaveBlur, enterSelect, leaveSelect, enterBlur } from '../util/states';\nimport * as modelUtil from '../util/model';\nimport { throttle } from '../util/throttle';\nimport { seriesStyleTask, dataStyleTask, dataColorPaletteTask } from '../visual/style';\nimport loadingDefault from '../loading/default';\nimport Scheduler from './Scheduler';\nimport lightTheme from '../theme/light';\nimport darkTheme from '../theme/dark';\nimport mapDataStorage from '../coord/geo/mapDataStorage';\nimport { parseClassType } from '../util/clazz';\nimport { ECEventProcessor } from '../util/ECEventProcessor';\nimport { seriesSymbolTask, dataSymbolTask } from '../visual/symbol';\nimport { getVisualFromData, getItemVisualFromData } from '../visual/helper';\nimport LabelManager from '../label/LabelManager';\nimport { deprecateLog, throwError } from '../util/log';\nimport { handleLegacySelectEvents } from '../legacy/dataSelectAction';\nimport { registerExternalTransform } from '../data/helper/transform';\nimport { createLocaleObject, SYSTEM_LANG } from './locale';\nimport { findEventDispatcher } from '../util/event';\nimport decal from '../visual/decal';\nvar assert = zrUtil.assert;\nvar each = zrUtil.each;\nvar isFunction = zrUtil.isFunction;\nvar isObject = zrUtil.isObject;\nvar indexOf = zrUtil.indexOf;\nvar hasWindow = typeof window !== 'undefined';\nexport var version = '5.0.1';\nexport var dependencies = {\n  zrender: '5.0.3'\n};\nvar TEST_FRAME_REMAIN_TIME = 1;\nvar PRIORITY_PROCESSOR_SERIES_FILTER = 800;\nvar PRIORITY_PROCESSOR_DATASTACK = 900;\nvar PRIORITY_PROCESSOR_FILTER = 1000;\nvar PRIORITY_PROCESSOR_DEFAULT = 2000;\nvar PRIORITY_PROCESSOR_STATISTIC = 5000;\nvar PRIORITY_VISUAL_LAYOUT = 1000;\nvar PRIORITY_VISUAL_PROGRESSIVE_LAYOUT = 1100;\nvar PRIORITY_VISUAL_GLOBAL = 2000;\nvar PRIORITY_VISUAL_CHART = 3000;\nvar PRIORITY_VISUAL_COMPONENT = 4000;\nvar PRIORITY_VISUAL_CHART_DATA_CUSTOM = 4500;\nvar PRIORITY_VISUAL_POST_CHART_LAYOUT = 4600;\nvar PRIORITY_VISUAL_BRUSH = 5000;\nvar PRIORITY_VISUAL_ARIA = 6000;\nvar PRIORITY_VISUAL_DECAL = 7000;\nexport var PRIORITY = {\n  PROCESSOR: {\n    FILTER: PRIORITY_PROCESSOR_FILTER,\n    SERIES_FILTER: PRIORITY_PROCESSOR_SERIES_FILTER,\n    STATISTIC: PRIORITY_PROCESSOR_STATISTIC\n  },\n  VISUAL: {\n    LAYOUT: PRIORITY_VISUAL_LAYOUT,\n    PROGRESSIVE_LAYOUT: PRIORITY_VISUAL_PROGRESSIVE_LAYOUT,\n    GLOBAL: PRIORITY_VISUAL_GLOBAL,\n    CHART: PRIORITY_VISUAL_CHART,\n    POST_CHART_LAYOUT: PRIORITY_VISUAL_POST_CHART_LAYOUT,\n    COMPONENT: PRIORITY_VISUAL_COMPONENT,\n    BRUSH: PRIORITY_VISUAL_BRUSH,\n    CHART_ITEM: PRIORITY_VISUAL_CHART_DATA_CUSTOM,\n    ARIA: PRIORITY_VISUAL_ARIA,\n    DECAL: PRIORITY_VISUAL_DECAL\n  }\n};\nvar IN_MAIN_PROCESS_KEY = '__flagInMainProcess';\nvar OPTION_UPDATED_KEY = '__optionUpdated';\nvar STATUS_NEEDS_UPDATE_KEY = '__needsUpdateStatus';\nvar ACTION_REG = /^[a-zA-Z0-9_]+$/;\nvar CONNECT_STATUS_KEY = '__connectUpdateStatus';\nvar CONNECT_STATUS_PENDING = 0;\nvar CONNECT_STATUS_UPDATING = 1;\nvar CONNECT_STATUS_UPDATED = 2;\n;\n\nfunction createRegisterEventWithLowercaseECharts(method) {\n  return function () {\n    var args = [];\n\n    for (var _i = 0; _i < arguments.length; _i++) {\n      args[_i] = arguments[_i];\n    }\n\n    if (this.isDisposed()) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    return toLowercaseNameAndCallEventful(this, method, args);\n  };\n}\n\nfunction createRegisterEventWithLowercaseMessageCenter(method) {\n  return function () {\n    var args = [];\n\n    for (var _i = 0; _i < arguments.length; _i++) {\n      args[_i] = arguments[_i];\n    }\n\n    return toLowercaseNameAndCallEventful(this, method, args);\n  };\n}\n\nfunction toLowercaseNameAndCallEventful(host, method, args) {\n  args[0] = args[0] && args[0].toLowerCase();\n  return Eventful.prototype[method].apply(host, args);\n}\n\nvar MessageCenter = function (_super) {\n  __extends(MessageCenter, _super);\n\n  function MessageCenter() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  return MessageCenter;\n}(Eventful);\n\nvar messageCenterProto = MessageCenter.prototype;\nmessageCenterProto.on = createRegisterEventWithLowercaseMessageCenter('on');\nmessageCenterProto.off = createRegisterEventWithLowercaseMessageCenter('off');\nvar prepare;\nvar prepareView;\nvar updateDirectly;\nvar updateMethods;\nvar doConvertPixel;\nvar updateStreamModes;\nvar doDispatchAction;\nvar flushPendingActions;\nvar triggerUpdatedEvent;\nvar bindRenderedEvent;\nvar bindMouseEvent;\nvar clearColorPalette;\nvar render;\nvar renderComponents;\nvar renderSeries;\nvar performPostUpdateFuncs;\nvar createExtensionAPI;\nvar enableConnect;\nvar setTransitionOpt;\nvar markStatusToUpdate;\nvar applyChangedStates;\n\nvar ECharts = function (_super) {\n  __extends(ECharts, _super);\n\n  function ECharts(dom, theme, opts) {\n    var _this = _super.call(this, new ECEventProcessor()) || this;\n\n    _this._chartsViews = [];\n    _this._chartsMap = {};\n    _this._componentsViews = [];\n    _this._componentsMap = {};\n    _this._pendingActions = [];\n    opts = opts || {};\n\n    if (typeof theme === 'string') {\n      theme = themeStorage[theme];\n    }\n\n    _this._dom = dom;\n    var defaultRenderer = 'canvas';\n    var defaultUseDirtyRect = false;\n\n    if (process.env.NODE_ENV !== 'production') {\n      var root = hasWindow ? window : global;\n      defaultRenderer = root.__ECHARTS__DEFAULT__RENDERER__ || defaultRenderer;\n      var devUseDirtyRect = root.__ECHARTS__DEFAULT__USE_DIRTY_RECT__;\n      defaultUseDirtyRect = devUseDirtyRect == null ? defaultUseDirtyRect : devUseDirtyRect;\n    }\n\n    var zr = _this._zr = zrender.init(dom, {\n      renderer: opts.renderer || defaultRenderer,\n      devicePixelRatio: opts.devicePixelRatio,\n      width: opts.width,\n      height: opts.height,\n      useDirtyRect: opts.useDirtyRect == null ? defaultUseDirtyRect : opts.useDirtyRect\n    });\n    _this._throttledZrFlush = throttle(zrUtil.bind(zr.flush, zr), 17);\n    theme = zrUtil.clone(theme);\n    theme && backwardCompat(theme, true);\n    _this._theme = theme;\n    _this._locale = createLocaleObject(opts.locale || SYSTEM_LANG);\n    _this._coordSysMgr = new CoordinateSystemManager();\n    var api = _this._api = createExtensionAPI(_this);\n\n    function prioritySortFunc(a, b) {\n      return a.__prio - b.__prio;\n    }\n\n    timsort(visualFuncs, prioritySortFunc);\n    timsort(dataProcessorFuncs, prioritySortFunc);\n    _this._scheduler = new Scheduler(_this, api, dataProcessorFuncs, visualFuncs);\n    _this._messageCenter = new MessageCenter();\n    _this._labelManager = new LabelManager();\n\n    _this._initEvents();\n\n    _this.resize = zrUtil.bind(_this.resize, _this);\n    zr.animation.on('frame', _this._onframe, _this);\n    bindRenderedEvent(zr, _this);\n    bindMouseEvent(zr, _this);\n    zrUtil.setAsPrimitive(_this);\n    return _this;\n  }\n\n  ECharts.prototype._onframe = function () {\n    if (this._disposed) {\n      return;\n    }\n\n    applyChangedStates(this);\n    var scheduler = this._scheduler;\n\n    if (this[OPTION_UPDATED_KEY]) {\n      var silent = this[OPTION_UPDATED_KEY].silent;\n      this[IN_MAIN_PROCESS_KEY] = true;\n      prepare(this);\n      updateMethods.update.call(this);\n\n      this._zr.flush();\n\n      this[IN_MAIN_PROCESS_KEY] = false;\n      this[OPTION_UPDATED_KEY] = false;\n      flushPendingActions.call(this, silent);\n      triggerUpdatedEvent.call(this, silent);\n    } else if (scheduler.unfinished) {\n      var remainTime = TEST_FRAME_REMAIN_TIME;\n      var ecModel = this._model;\n      var api = this._api;\n      scheduler.unfinished = false;\n\n      do {\n        var startTime = +new Date();\n        scheduler.performSeriesTasks(ecModel);\n        scheduler.performDataProcessorTasks(ecModel);\n        updateStreamModes(this, ecModel);\n        scheduler.performVisualTasks(ecModel);\n        renderSeries(this, this._model, api, 'remain');\n        remainTime -= +new Date() - startTime;\n      } while (remainTime > 0 && scheduler.unfinished);\n\n      if (!scheduler.unfinished) {\n        this._zr.flush();\n      }\n    }\n  };\n\n  ECharts.prototype.getDom = function () {\n    return this._dom;\n  };\n\n  ECharts.prototype.getId = function () {\n    return this.id;\n  };\n\n  ECharts.prototype.getZr = function () {\n    return this._zr;\n  };\n\n  ECharts.prototype.setOption = function (option, notMerge, lazyUpdate) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!this[IN_MAIN_PROCESS_KEY], '`setOption` should not be called during main process.');\n    }\n\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    var silent;\n    var replaceMerge;\n    var transitionOpt;\n\n    if (isObject(notMerge)) {\n      lazyUpdate = notMerge.lazyUpdate;\n      silent = notMerge.silent;\n      replaceMerge = notMerge.replaceMerge;\n      transitionOpt = notMerge.transition;\n      notMerge = notMerge.notMerge;\n    }\n\n    this[IN_MAIN_PROCESS_KEY] = true;\n\n    if (!this._model || notMerge) {\n      var optionManager = new OptionManager(this._api);\n      var theme = this._theme;\n      var ecModel = this._model = new GlobalModel();\n      ecModel.scheduler = this._scheduler;\n      ecModel.init(null, null, null, theme, this._locale, optionManager);\n    }\n\n    this._model.setOption(option, {\n      replaceMerge: replaceMerge\n    }, optionPreprocessorFuncs);\n\n    setTransitionOpt(this, transitionOpt);\n\n    if (lazyUpdate) {\n      this[OPTION_UPDATED_KEY] = {\n        silent: silent\n      };\n      this[IN_MAIN_PROCESS_KEY] = false;\n      this.getZr().wakeUp();\n    } else {\n      prepare(this);\n      updateMethods.update.call(this);\n\n      this._zr.flush();\n\n      this[OPTION_UPDATED_KEY] = false;\n      this[IN_MAIN_PROCESS_KEY] = false;\n      flushPendingActions.call(this, silent);\n      triggerUpdatedEvent.call(this, silent);\n    }\n  };\n\n  ECharts.prototype.setTheme = function () {\n    console.error('ECharts#setTheme() is DEPRECATED in ECharts 3.0');\n  };\n\n  ECharts.prototype.getModel = function () {\n    return this._model;\n  };\n\n  ECharts.prototype.getOption = function () {\n    return this._model && this._model.getOption();\n  };\n\n  ECharts.prototype.getWidth = function () {\n    return this._zr.getWidth();\n  };\n\n  ECharts.prototype.getHeight = function () {\n    return this._zr.getHeight();\n  };\n\n  ECharts.prototype.getDevicePixelRatio = function () {\n    return this._zr.painter.dpr || hasWindow && window.devicePixelRatio || 1;\n  };\n\n  ECharts.prototype.getRenderedCanvas = function (opts) {\n    if (!env.canvasSupported) {\n      return;\n    }\n\n    opts = zrUtil.extend({}, opts || {});\n    opts.pixelRatio = opts.pixelRatio || 1;\n    opts.backgroundColor = opts.backgroundColor || this._model.get('backgroundColor');\n    var zr = this._zr;\n    return zr.painter.getRenderedCanvas(opts);\n  };\n\n  ECharts.prototype.getSvgDataURL = function () {\n    if (!env.svgSupported) {\n      return;\n    }\n\n    var zr = this._zr;\n    var list = zr.storage.getDisplayList();\n    zrUtil.each(list, function (el) {\n      el.stopAnimation(null, true);\n    });\n    return zr.painter.toDataURL();\n  };\n\n  ECharts.prototype.getDataURL = function (opts) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    opts = opts || {};\n    var excludeComponents = opts.excludeComponents;\n    var ecModel = this._model;\n    var excludesComponentViews = [];\n    var self = this;\n    each(excludeComponents, function (componentType) {\n      ecModel.eachComponent({\n        mainType: componentType\n      }, function (component) {\n        var view = self._componentsMap[component.__viewId];\n\n        if (!view.group.ignore) {\n          excludesComponentViews.push(view);\n          view.group.ignore = true;\n        }\n      });\n    });\n    var url = this._zr.painter.getType() === 'svg' ? this.getSvgDataURL() : this.getRenderedCanvas(opts).toDataURL('image/' + (opts && opts.type || 'png'));\n    each(excludesComponentViews, function (view) {\n      view.group.ignore = false;\n    });\n    return url;\n  };\n\n  ECharts.prototype.getConnectedDataURL = function (opts) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    if (!env.canvasSupported) {\n      return;\n    }\n\n    var isSvg = opts.type === 'svg';\n    var groupId = this.group;\n    var mathMin = Math.min;\n    var mathMax = Math.max;\n    var MAX_NUMBER = Infinity;\n\n    if (connectedGroups[groupId]) {\n      var left_1 = MAX_NUMBER;\n      var top_1 = MAX_NUMBER;\n      var right_1 = -MAX_NUMBER;\n      var bottom_1 = -MAX_NUMBER;\n      var canvasList_1 = [];\n      var dpr_1 = opts && opts.pixelRatio || 1;\n      zrUtil.each(instances, function (chart, id) {\n        if (chart.group === groupId) {\n          var canvas = isSvg ? chart.getZr().painter.getSvgDom().innerHTML : chart.getRenderedCanvas(zrUtil.clone(opts));\n          var boundingRect = chart.getDom().getBoundingClientRect();\n          left_1 = mathMin(boundingRect.left, left_1);\n          top_1 = mathMin(boundingRect.top, top_1);\n          right_1 = mathMax(boundingRect.right, right_1);\n          bottom_1 = mathMax(boundingRect.bottom, bottom_1);\n          canvasList_1.push({\n            dom: canvas,\n            left: boundingRect.left,\n            top: boundingRect.top\n          });\n        }\n      });\n      left_1 *= dpr_1;\n      top_1 *= dpr_1;\n      right_1 *= dpr_1;\n      bottom_1 *= dpr_1;\n      var width = right_1 - left_1;\n      var height = bottom_1 - top_1;\n      var targetCanvas = zrUtil.createCanvas();\n      var zr_1 = zrender.init(targetCanvas, {\n        renderer: isSvg ? 'svg' : 'canvas'\n      });\n      zr_1.resize({\n        width: width,\n        height: height\n      });\n\n      if (isSvg) {\n        var content_1 = '';\n        each(canvasList_1, function (item) {\n          var x = item.left - left_1;\n          var y = item.top - top_1;\n          content_1 += '<g transform=\"translate(' + x + ',' + y + ')\">' + item.dom + '</g>';\n        });\n        zr_1.painter.getSvgRoot().innerHTML = content_1;\n\n        if (opts.connectedBackgroundColor) {\n          zr_1.painter.setBackgroundColor(opts.connectedBackgroundColor);\n        }\n\n        zr_1.refreshImmediately();\n        return zr_1.painter.toDataURL();\n      } else {\n        if (opts.connectedBackgroundColor) {\n          zr_1.add(new graphic.Rect({\n            shape: {\n              x: 0,\n              y: 0,\n              width: width,\n              height: height\n            },\n            style: {\n              fill: opts.connectedBackgroundColor\n            }\n          }));\n        }\n\n        each(canvasList_1, function (item) {\n          var img = new graphic.Image({\n            style: {\n              x: item.left * dpr_1 - left_1,\n              y: item.top * dpr_1 - top_1,\n              image: item.dom\n            }\n          });\n          zr_1.add(img);\n        });\n        zr_1.refreshImmediately();\n        return targetCanvas.toDataURL('image/' + (opts && opts.type || 'png'));\n      }\n    } else {\n      return this.getDataURL(opts);\n    }\n  };\n\n  ECharts.prototype.convertToPixel = function (finder, value) {\n    return doConvertPixel(this, 'convertToPixel', finder, value);\n  };\n\n  ECharts.prototype.convertFromPixel = function (finder, value) {\n    return doConvertPixel(this, 'convertFromPixel', finder, value);\n  };\n\n  ECharts.prototype.containPixel = function (finder, value) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    var ecModel = this._model;\n    var result;\n    var findResult = modelUtil.parseFinder(ecModel, finder);\n    zrUtil.each(findResult, function (models, key) {\n      key.indexOf('Models') >= 0 && zrUtil.each(models, function (model) {\n        var coordSys = model.coordinateSystem;\n\n        if (coordSys && coordSys.containPoint) {\n          result = result || !!coordSys.containPoint(value);\n        } else if (key === 'seriesModels') {\n          var view = this._chartsMap[model.__viewId];\n\n          if (view && view.containPoint) {\n            result = result || view.containPoint(value, model);\n          } else {\n            if (process.env.NODE_ENV !== 'production') {\n              console.warn(key + ': ' + (view ? 'The found component do not support containPoint.' : 'No view mapping to the found component.'));\n            }\n          }\n        } else {\n          if (process.env.NODE_ENV !== 'production') {\n            console.warn(key + ': containPoint is not supported');\n          }\n        }\n      }, this);\n    }, this);\n    return !!result;\n  };\n\n  ECharts.prototype.getVisual = function (finder, visualType) {\n    var ecModel = this._model;\n    var parsedFinder = modelUtil.parseFinder(ecModel, finder, {\n      defaultMainType: 'series'\n    });\n    var seriesModel = parsedFinder.seriesModel;\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!seriesModel) {\n        console.warn('There is no specified seires model');\n      }\n    }\n\n    var data = seriesModel.getData();\n    var dataIndexInside = parsedFinder.hasOwnProperty('dataIndexInside') ? parsedFinder.dataIndexInside : parsedFinder.hasOwnProperty('dataIndex') ? data.indexOfRawIndex(parsedFinder.dataIndex) : null;\n    return dataIndexInside != null ? getItemVisualFromData(data, dataIndexInside, visualType) : getVisualFromData(data, visualType);\n  };\n\n  ECharts.prototype.getViewOfComponentModel = function (componentModel) {\n    return this._componentsMap[componentModel.__viewId];\n  };\n\n  ECharts.prototype.getViewOfSeriesModel = function (seriesModel) {\n    return this._chartsMap[seriesModel.__viewId];\n  };\n\n  ECharts.prototype._initEvents = function () {\n    var _this = this;\n\n    each(MOUSE_EVENT_NAMES, function (eveName) {\n      var handler = function (e) {\n        var ecModel = _this.getModel();\n\n        var el = e.target;\n        var params;\n        var isGlobalOut = eveName === 'globalout';\n\n        if (isGlobalOut) {\n          params = {};\n        } else {\n          el && findEventDispatcher(el, function (parent) {\n            var ecData = getECData(parent);\n\n            if (ecData && ecData.dataIndex != null) {\n              var dataModel = ecData.dataModel || ecModel.getSeriesByIndex(ecData.seriesIndex);\n              params = dataModel && dataModel.getDataParams(ecData.dataIndex, ecData.dataType) || {};\n              return true;\n            } else if (ecData.eventData) {\n              params = zrUtil.extend({}, ecData.eventData);\n              return true;\n            }\n          }, true);\n        }\n\n        if (params) {\n          var componentType = params.componentType;\n          var componentIndex = params.componentIndex;\n\n          if (componentType === 'markLine' || componentType === 'markPoint' || componentType === 'markArea') {\n            componentType = 'series';\n            componentIndex = params.seriesIndex;\n          }\n\n          var model = componentType && componentIndex != null && ecModel.getComponent(componentType, componentIndex);\n          var view = model && _this[model.mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId];\n\n          if (process.env.NODE_ENV !== 'production') {\n            if (!isGlobalOut && !(model && view)) {\n              console.warn('model or view can not be found by params');\n            }\n          }\n\n          params.event = e;\n          params.type = eveName;\n          _this._$eventProcessor.eventInfo = {\n            targetEl: el,\n            packedEvent: params,\n            model: model,\n            view: view\n          };\n\n          _this.trigger(eveName, params);\n        }\n      };\n\n      handler.zrEventfulCallAtLast = true;\n\n      _this._zr.on(eveName, handler, _this);\n    });\n    each(eventActionMap, function (actionType, eventType) {\n      _this._messageCenter.on(eventType, function (event) {\n        this.trigger(eventType, event);\n      }, _this);\n    });\n    each(['selectchanged'], function (eventType) {\n      _this._messageCenter.on(eventType, function (event) {\n        this.trigger(eventType, event);\n      }, _this);\n    });\n    handleLegacySelectEvents(this._messageCenter, this, this._api);\n  };\n\n  ECharts.prototype.isDisposed = function () {\n    return this._disposed;\n  };\n\n  ECharts.prototype.clear = function () {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    this.setOption({\n      series: []\n    }, true);\n  };\n\n  ECharts.prototype.dispose = function () {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    this._disposed = true;\n    modelUtil.setAttribute(this.getDom(), DOM_ATTRIBUTE_KEY, '');\n    var api = this._api;\n    var ecModel = this._model;\n    each(this._componentsViews, function (component) {\n      component.dispose(ecModel, api);\n    });\n    each(this._chartsViews, function (chart) {\n      chart.dispose(ecModel, api);\n    });\n\n    this._zr.dispose();\n\n    delete instances[this.id];\n  };\n\n  ECharts.prototype.resize = function (opts) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!this[IN_MAIN_PROCESS_KEY], '`resize` should not be called during main process.');\n    }\n\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    this._zr.resize(opts);\n\n    var ecModel = this._model;\n    this._loadingFX && this._loadingFX.resize();\n\n    if (!ecModel) {\n      return;\n    }\n\n    var optionChanged = ecModel.resetOption('media');\n    var silent = opts && opts.silent;\n    this[IN_MAIN_PROCESS_KEY] = true;\n    optionChanged && prepare(this);\n    updateMethods.update.call(this, {\n      type: 'resize',\n      animation: {\n        duration: 0\n      }\n    });\n    this[IN_MAIN_PROCESS_KEY] = false;\n    flushPendingActions.call(this, silent);\n    triggerUpdatedEvent.call(this, silent);\n  };\n\n  ECharts.prototype.showLoading = function (name, cfg) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    if (isObject(name)) {\n      cfg = name;\n      name = '';\n    }\n\n    name = name || 'default';\n    this.hideLoading();\n\n    if (!loadingEffects[name]) {\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn('Loading effects ' + name + ' not exists.');\n      }\n\n      return;\n    }\n\n    var el = loadingEffects[name](this._api, cfg);\n    var zr = this._zr;\n    this._loadingFX = el;\n    zr.add(el);\n  };\n\n  ECharts.prototype.hideLoading = function () {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    this._loadingFX && this._zr.remove(this._loadingFX);\n    this._loadingFX = null;\n  };\n\n  ECharts.prototype.makeActionFromEvent = function (eventObj) {\n    var payload = zrUtil.extend({}, eventObj);\n    payload.type = eventActionMap[eventObj.type];\n    return payload;\n  };\n\n  ECharts.prototype.dispatchAction = function (payload, opt) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    if (!isObject(opt)) {\n      opt = {\n        silent: !!opt\n      };\n    }\n\n    if (!actions[payload.type]) {\n      return;\n    }\n\n    if (!this._model) {\n      return;\n    }\n\n    if (this[IN_MAIN_PROCESS_KEY]) {\n      this._pendingActions.push(payload);\n\n      return;\n    }\n\n    var silent = opt.silent;\n    doDispatchAction.call(this, payload, silent);\n    var flush = opt.flush;\n\n    if (flush) {\n      this._zr.flush();\n    } else if (flush !== false && env.browser.weChat) {\n      this._throttledZrFlush();\n    }\n\n    flushPendingActions.call(this, silent);\n    triggerUpdatedEvent.call(this, silent);\n  };\n\n  ECharts.prototype.updateLabelLayout = function () {\n    var labelManager = this._labelManager;\n    labelManager.updateLayoutConfig(this._api);\n    labelManager.layout(this._api);\n    labelManager.processLabelsOverall();\n  };\n\n  ECharts.prototype.appendData = function (params) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    var seriesIndex = params.seriesIndex;\n    var ecModel = this.getModel();\n    var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(params.data && seriesModel);\n    }\n\n    seriesModel.appendData(params);\n    this._scheduler.unfinished = true;\n    this.getZr().wakeUp();\n  };\n\n  ECharts.internalField = function () {\n    prepare = function (ecIns) {\n      var scheduler = ecIns._scheduler;\n      scheduler.restorePipelines(ecIns._model);\n      scheduler.prepareStageTasks();\n      prepareView(ecIns, true);\n      prepareView(ecIns, false);\n      scheduler.plan();\n    };\n\n    prepareView = function (ecIns, isComponent) {\n      var ecModel = ecIns._model;\n      var scheduler = ecIns._scheduler;\n      var viewList = isComponent ? ecIns._componentsViews : ecIns._chartsViews;\n      var viewMap = isComponent ? ecIns._componentsMap : ecIns._chartsMap;\n      var zr = ecIns._zr;\n      var api = ecIns._api;\n\n      for (var i = 0; i < viewList.length; i++) {\n        viewList[i].__alive = false;\n      }\n\n      isComponent ? ecModel.eachComponent(function (componentType, model) {\n        componentType !== 'series' && doPrepare(model);\n      }) : ecModel.eachSeries(doPrepare);\n\n      function doPrepare(model) {\n        var requireNewView = model.__requireNewView;\n        model.__requireNewView = false;\n        var viewId = '_ec_' + model.id + '_' + model.type;\n        var view = !requireNewView && viewMap[viewId];\n\n        if (!view) {\n          var classType = parseClassType(model.type);\n          var Clazz = isComponent ? ComponentView.getClass(classType.main, classType.sub) : ChartView.getClass(classType.sub);\n\n          if (process.env.NODE_ENV !== 'production') {\n            assert(Clazz, classType.sub + ' does not exist.');\n          }\n\n          view = new Clazz();\n          view.init(ecModel, api);\n          viewMap[viewId] = view;\n          viewList.push(view);\n          zr.add(view.group);\n        }\n\n        model.__viewId = view.__id = viewId;\n        view.__alive = true;\n        view.__model = model;\n        view.group.__ecComponentInfo = {\n          mainType: model.mainType,\n          index: model.componentIndex\n        };\n        !isComponent && scheduler.prepareView(view, model, ecModel, api);\n      }\n\n      for (var i = 0; i < viewList.length;) {\n        var view = viewList[i];\n\n        if (!view.__alive) {\n          !isComponent && view.renderTask.dispose();\n          zr.remove(view.group);\n          view.dispose(ecModel, api);\n          viewList.splice(i, 1);\n\n          if (viewMap[view.__id] === view) {\n            delete viewMap[view.__id];\n          }\n\n          view.__id = view.group.__ecComponentInfo = null;\n        } else {\n          i++;\n        }\n      }\n    };\n\n    updateDirectly = function (ecIns, method, payload, mainType, subType) {\n      var ecModel = ecIns._model;\n      ecModel.setUpdatePayload(payload);\n\n      if (!mainType) {\n        each([].concat(ecIns._componentsViews).concat(ecIns._chartsViews), callView);\n        return;\n      }\n\n      var query = {};\n      query[mainType + 'Id'] = payload[mainType + 'Id'];\n      query[mainType + 'Index'] = payload[mainType + 'Index'];\n      query[mainType + 'Name'] = payload[mainType + 'Name'];\n      var condition = {\n        mainType: mainType,\n        query: query\n      };\n      subType && (condition.subType = subType);\n      var excludeSeriesId = payload.excludeSeriesId;\n      var excludeSeriesIdMap;\n\n      if (excludeSeriesId != null) {\n        excludeSeriesIdMap = zrUtil.createHashMap();\n        each(modelUtil.normalizeToArray(excludeSeriesId), function (id) {\n          var modelId = modelUtil.convertOptionIdName(id, null);\n\n          if (modelId != null) {\n            excludeSeriesIdMap.set(modelId, true);\n          }\n        });\n      }\n\n      ecModel && ecModel.eachComponent(condition, function (model) {\n        if (!excludeSeriesIdMap || excludeSeriesIdMap.get(model.id) == null) {\n          if (isHighDownPayload(payload) && !payload.notBlur) {\n            if (model instanceof SeriesModel) {\n              toggleSeriesBlurStateFromPayload(model, payload, ecIns._api);\n            }\n          } else if (isSelectChangePayload(payload)) {\n            if (model instanceof SeriesModel) {\n              toggleSelectionFromPayload(model, payload, ecIns._api);\n              updateSeriesElementSelection(model);\n              markStatusToUpdate(ecIns);\n            }\n          }\n\n          callView(ecIns[mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId]);\n        }\n      }, ecIns);\n\n      function callView(view) {\n        view && view.__alive && view[method] && view[method](view.__model, ecModel, ecIns._api, payload);\n      }\n    };\n\n    updateMethods = {\n      prepareAndUpdate: function (payload) {\n        prepare(this);\n        updateMethods.update.call(this, payload);\n      },\n      update: function (payload) {\n        var ecModel = this._model;\n        var api = this._api;\n        var zr = this._zr;\n        var coordSysMgr = this._coordSysMgr;\n        var scheduler = this._scheduler;\n\n        if (!ecModel) {\n          return;\n        }\n\n        ecModel.setUpdatePayload(payload);\n        scheduler.restoreData(ecModel, payload);\n        scheduler.performSeriesTasks(ecModel);\n        coordSysMgr.create(ecModel, api);\n        scheduler.performDataProcessorTasks(ecModel, payload);\n        updateStreamModes(this, ecModel);\n        coordSysMgr.update(ecModel, api);\n        clearColorPalette(ecModel);\n        scheduler.performVisualTasks(ecModel, payload);\n        render(this, ecModel, api, payload);\n        var backgroundColor = ecModel.get('backgroundColor') || 'transparent';\n        var darkMode = ecModel.get('darkMode');\n\n        if (!env.canvasSupported) {\n          var colorArr = colorTool.parse(backgroundColor);\n          backgroundColor = colorTool.stringify(colorArr, 'rgb');\n\n          if (colorArr[3] === 0) {\n            backgroundColor = 'transparent';\n          }\n        } else {\n          zr.setBackgroundColor(backgroundColor);\n\n          if (darkMode != null && darkMode !== 'auto') {\n            zr.setDarkMode(darkMode);\n          }\n        }\n\n        performPostUpdateFuncs(ecModel, api);\n      },\n      updateTransform: function (payload) {\n        var _this = this;\n\n        var ecModel = this._model;\n        var api = this._api;\n\n        if (!ecModel) {\n          return;\n        }\n\n        ecModel.setUpdatePayload(payload);\n        var componentDirtyList = [];\n        ecModel.eachComponent(function (componentType, componentModel) {\n          if (componentType === 'series') {\n            return;\n          }\n\n          var componentView = _this.getViewOfComponentModel(componentModel);\n\n          if (componentView && componentView.__alive) {\n            if (componentView.updateTransform) {\n              var result = componentView.updateTransform(componentModel, ecModel, api, payload);\n              result && result.update && componentDirtyList.push(componentView);\n            } else {\n              componentDirtyList.push(componentView);\n            }\n          }\n        });\n        var seriesDirtyMap = zrUtil.createHashMap();\n        ecModel.eachSeries(function (seriesModel) {\n          var chartView = _this._chartsMap[seriesModel.__viewId];\n\n          if (chartView.updateTransform) {\n            var result = chartView.updateTransform(seriesModel, ecModel, api, payload);\n            result && result.update && seriesDirtyMap.set(seriesModel.uid, 1);\n          } else {\n            seriesDirtyMap.set(seriesModel.uid, 1);\n          }\n        });\n        clearColorPalette(ecModel);\n\n        this._scheduler.performVisualTasks(ecModel, payload, {\n          setDirty: true,\n          dirtyMap: seriesDirtyMap\n        });\n\n        renderSeries(this, ecModel, api, payload, seriesDirtyMap);\n        performPostUpdateFuncs(ecModel, this._api);\n      },\n      updateView: function (payload) {\n        var ecModel = this._model;\n\n        if (!ecModel) {\n          return;\n        }\n\n        ecModel.setUpdatePayload(payload);\n        ChartView.markUpdateMethod(payload, 'updateView');\n        clearColorPalette(ecModel);\n\n        this._scheduler.performVisualTasks(ecModel, payload, {\n          setDirty: true\n        });\n\n        render(this, this._model, this._api, payload);\n        performPostUpdateFuncs(ecModel, this._api);\n      },\n      updateVisual: function (payload) {\n        var _this = this;\n\n        var ecModel = this._model;\n\n        if (!ecModel) {\n          return;\n        }\n\n        ecModel.setUpdatePayload(payload);\n        ecModel.eachSeries(function (seriesModel) {\n          seriesModel.getData().clearAllVisual();\n        });\n        ChartView.markUpdateMethod(payload, 'updateVisual');\n        clearColorPalette(ecModel);\n\n        this._scheduler.performVisualTasks(ecModel, payload, {\n          visualType: 'visual',\n          setDirty: true\n        });\n\n        ecModel.eachComponent(function (componentType, componentModel) {\n          if (componentType !== 'series') {\n            var componentView = _this.getViewOfComponentModel(componentModel);\n\n            componentView && componentView.__alive && componentView.updateVisual(componentModel, ecModel, _this._api, payload);\n          }\n        });\n        ecModel.eachSeries(function (seriesModel) {\n          var chartView = _this._chartsMap[seriesModel.__viewId];\n          chartView.updateVisual(seriesModel, ecModel, _this._api, payload);\n        });\n        performPostUpdateFuncs(ecModel, this._api);\n      },\n      updateLayout: function (payload) {\n        updateMethods.update.call(this, payload);\n      }\n    };\n\n    doConvertPixel = function (ecIns, methodName, finder, value) {\n      if (ecIns._disposed) {\n        disposedWarning(ecIns.id);\n        return;\n      }\n\n      var ecModel = ecIns._model;\n\n      var coordSysList = ecIns._coordSysMgr.getCoordinateSystems();\n\n      var result;\n      var parsedFinder = modelUtil.parseFinder(ecModel, finder);\n\n      for (var i = 0; i < coordSysList.length; i++) {\n        var coordSys = coordSysList[i];\n\n        if (coordSys[methodName] && (result = coordSys[methodName](ecModel, parsedFinder, value)) != null) {\n          return result;\n        }\n      }\n\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn('No coordinate system that supports ' + methodName + ' found by the given finder.');\n      }\n    };\n\n    updateStreamModes = function (ecIns, ecModel) {\n      var chartsMap = ecIns._chartsMap;\n      var scheduler = ecIns._scheduler;\n      ecModel.eachSeries(function (seriesModel) {\n        scheduler.updateStreamModes(seriesModel, chartsMap[seriesModel.__viewId]);\n      });\n    };\n\n    doDispatchAction = function (payload, silent) {\n      var _this = this;\n\n      var ecModel = this.getModel();\n      var payloadType = payload.type;\n      var escapeConnect = payload.escapeConnect;\n      var actionWrap = actions[payloadType];\n      var actionInfo = actionWrap.actionInfo;\n      var cptTypeTmp = (actionInfo.update || 'update').split(':');\n      var updateMethod = cptTypeTmp.pop();\n      var cptType = cptTypeTmp[0] != null && parseClassType(cptTypeTmp[0]);\n      this[IN_MAIN_PROCESS_KEY] = true;\n      var payloads = [payload];\n      var batched = false;\n\n      if (payload.batch) {\n        batched = true;\n        payloads = zrUtil.map(payload.batch, function (item) {\n          item = zrUtil.defaults(zrUtil.extend({}, item), payload);\n          item.batch = null;\n          return item;\n        });\n      }\n\n      var eventObjBatch = [];\n      var eventObj;\n      var isSelectChange = isSelectChangePayload(payload);\n      var isStatusChange = isHighDownPayload(payload) || isSelectChange;\n      each(payloads, function (batchItem) {\n        eventObj = actionWrap.action(batchItem, _this._model, _this._api);\n        eventObj = eventObj || zrUtil.extend({}, batchItem);\n        eventObj.type = actionInfo.event || eventObj.type;\n        eventObjBatch.push(eventObj);\n\n        if (isStatusChange) {\n          updateDirectly(_this, updateMethod, batchItem, 'series');\n          markStatusToUpdate(_this);\n        } else if (cptType) {\n          updateDirectly(_this, updateMethod, batchItem, cptType.main, cptType.sub);\n        }\n      });\n\n      if (updateMethod !== 'none' && !isStatusChange && !cptType) {\n        if (this[OPTION_UPDATED_KEY]) {\n          prepare(this);\n          updateMethods.update.call(this, payload);\n          this[OPTION_UPDATED_KEY] = false;\n        } else {\n          updateMethods[updateMethod].call(this, payload);\n        }\n      }\n\n      if (batched) {\n        eventObj = {\n          type: actionInfo.event || payloadType,\n          escapeConnect: escapeConnect,\n          batch: eventObjBatch\n        };\n      } else {\n        eventObj = eventObjBatch[0];\n      }\n\n      this[IN_MAIN_PROCESS_KEY] = false;\n\n      if (!silent) {\n        var messageCenter = this._messageCenter;\n        messageCenter.trigger(eventObj.type, eventObj);\n\n        if (isSelectChange) {\n          var newObj = {\n            type: 'selectchanged',\n            escapeConnect: escapeConnect,\n            selected: getAllSelectedIndices(ecModel),\n            isFromClick: payload.isFromClick || false,\n            fromAction: payload.type,\n            fromActionPayload: payload\n          };\n          messageCenter.trigger(newObj.type, newObj);\n        }\n      }\n    };\n\n    flushPendingActions = function (silent) {\n      var pendingActions = this._pendingActions;\n\n      while (pendingActions.length) {\n        var payload = pendingActions.shift();\n        doDispatchAction.call(this, payload, silent);\n      }\n    };\n\n    triggerUpdatedEvent = function (silent) {\n      !silent && this.trigger('updated');\n    };\n\n    bindRenderedEvent = function (zr, ecIns) {\n      zr.on('rendered', function (params) {\n        ecIns.trigger('rendered', params);\n\n        if (zr.animation.isFinished() && !ecIns[OPTION_UPDATED_KEY] && !ecIns._scheduler.unfinished && !ecIns._pendingActions.length) {\n          ecIns.trigger('finished');\n        }\n      });\n    };\n\n    bindMouseEvent = function (zr, ecIns) {\n      zr.on('mouseover', function (e) {\n        var el = e.target;\n        var dispatcher = findEventDispatcher(el, isHighDownDispatcher);\n\n        if (dispatcher) {\n          var ecData = getECData(dispatcher);\n          toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns._api, true);\n          enterEmphasisWhenMouseOver(dispatcher, e);\n          markStatusToUpdate(ecIns);\n        }\n      }).on('mouseout', function (e) {\n        var el = e.target;\n        var dispatcher = findEventDispatcher(el, isHighDownDispatcher);\n\n        if (dispatcher) {\n          var ecData = getECData(dispatcher);\n          toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns._api, false);\n          leaveEmphasisWhenMouseOut(dispatcher, e);\n          markStatusToUpdate(ecIns);\n        }\n      }).on('click', function (e) {\n        var el = e.target;\n        var dispatcher = findEventDispatcher(el, function (target) {\n          return getECData(target).dataIndex != null;\n        }, true);\n\n        if (dispatcher) {\n          var actionType = dispatcher.selected ? 'unselect' : 'select';\n          var ecData = getECData(dispatcher);\n\n          ecIns._api.dispatchAction({\n            type: actionType,\n            dataType: ecData.dataType,\n            dataIndexInside: ecData.dataIndex,\n            seriesIndex: ecData.seriesIndex,\n            isFromClick: true\n          });\n        }\n      });\n    };\n\n    clearColorPalette = function (ecModel) {\n      ecModel.clearColorPalette();\n      ecModel.eachSeries(function (seriesModel) {\n        seriesModel.clearColorPalette();\n      });\n    };\n\n    render = function (ecIns, ecModel, api, payload) {\n      renderComponents(ecIns, ecModel, api, payload);\n      each(ecIns._chartsViews, function (chart) {\n        chart.__alive = false;\n      });\n      renderSeries(ecIns, ecModel, api, payload);\n      each(ecIns._chartsViews, function (chart) {\n        if (!chart.__alive) {\n          chart.remove(ecModel, api);\n        }\n      });\n    };\n\n    renderComponents = function (ecIns, ecModel, api, payload, dirtyList) {\n      each(dirtyList || ecIns._componentsViews, function (componentView) {\n        var componentModel = componentView.__model;\n        clearStates(componentModel, componentView);\n        componentView.render(componentModel, ecModel, api, payload);\n        updateZ(componentModel, componentView);\n        updateStates(componentModel, componentView);\n      });\n    };\n\n    renderSeries = function (ecIns, ecModel, api, payload, dirtyMap) {\n      var scheduler = ecIns._scheduler;\n      var labelManager = ecIns._labelManager;\n      labelManager.clearLabels();\n      var unfinished = false;\n      ecModel.eachSeries(function (seriesModel) {\n        var chartView = ecIns._chartsMap[seriesModel.__viewId];\n        chartView.__alive = true;\n        var renderTask = chartView.renderTask;\n        scheduler.updatePayload(renderTask, payload);\n        clearStates(seriesModel, chartView);\n\n        if (dirtyMap && dirtyMap.get(seriesModel.uid)) {\n          renderTask.dirty();\n        }\n\n        if (renderTask.perform(scheduler.getPerformArgs(renderTask))) {\n          unfinished = true;\n        }\n\n        seriesModel.__transientTransitionOpt = null;\n        chartView.group.silent = !!seriesModel.get('silent');\n        updateBlend(seriesModel, chartView);\n        updateSeriesElementSelection(seriesModel);\n        labelManager.addLabelsOfSeries(chartView);\n      });\n      scheduler.unfinished = unfinished || scheduler.unfinished;\n      labelManager.updateLayoutConfig(api);\n      labelManager.layout(api);\n      labelManager.processLabelsOverall();\n      ecModel.eachSeries(function (seriesModel) {\n        var chartView = ecIns._chartsMap[seriesModel.__viewId];\n        updateZ(seriesModel, chartView);\n        updateStates(seriesModel, chartView);\n      });\n      updateHoverLayerStatus(ecIns, ecModel);\n    };\n\n    performPostUpdateFuncs = function (ecModel, api) {\n      each(postUpdateFuncs, function (func) {\n        func(ecModel, api);\n      });\n    };\n\n    markStatusToUpdate = function (ecIns) {\n      ecIns[STATUS_NEEDS_UPDATE_KEY] = true;\n      ecIns.getZr().wakeUp();\n    };\n\n    applyChangedStates = function (ecIns) {\n      if (!ecIns[STATUS_NEEDS_UPDATE_KEY]) {\n        return;\n      }\n\n      ecIns.getZr().storage.traverse(function (el) {\n        if (graphic.isElementRemoved(el)) {\n          return;\n        }\n\n        applyElementStates(el);\n      });\n      ecIns[STATUS_NEEDS_UPDATE_KEY] = false;\n    };\n\n    function applyElementStates(el) {\n      var newStates = [];\n      var oldStates = el.currentStates;\n\n      for (var i = 0; i < oldStates.length; i++) {\n        var stateName = oldStates[i];\n\n        if (!(stateName === 'emphasis' || stateName === 'blur' || stateName === 'select')) {\n          newStates.push(stateName);\n        }\n      }\n\n      if (el.selected && el.states.select) {\n        newStates.push('select');\n      }\n\n      if (el.hoverState === HOVER_STATE_EMPHASIS && el.states.emphasis) {\n        newStates.push('emphasis');\n      } else if (el.hoverState === HOVER_STATE_BLUR && el.states.blur) {\n        newStates.push('blur');\n      }\n\n      el.useStates(newStates);\n    }\n\n    function updateHoverLayerStatus(ecIns, ecModel) {\n      var zr = ecIns._zr;\n      var storage = zr.storage;\n      var elCount = 0;\n      storage.traverse(function (el) {\n        if (!el.isGroup) {\n          elCount++;\n        }\n      });\n\n      if (elCount > ecModel.get('hoverLayerThreshold') && !env.node && !env.worker) {\n        ecModel.eachSeries(function (seriesModel) {\n          if (seriesModel.preventUsingHoverLayer) {\n            return;\n          }\n\n          var chartView = ecIns._chartsMap[seriesModel.__viewId];\n\n          if (chartView.__alive) {\n            chartView.group.traverse(function (el) {\n              if (el.states.emphasis) {\n                el.states.emphasis.hoverLayer = true;\n              }\n            });\n          }\n        });\n      }\n    }\n\n    ;\n\n    function updateBlend(seriesModel, chartView) {\n      var blendMode = seriesModel.get('blendMode') || null;\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (!env.canvasSupported && blendMode && blendMode !== 'source-over') {\n          console.warn('Only canvas support blendMode');\n        }\n      }\n\n      chartView.group.traverse(function (el) {\n        if (!el.isGroup) {\n          el.style.blend = blendMode;\n        }\n\n        if (el.eachPendingDisplayable) {\n          el.eachPendingDisplayable(function (displayable) {\n            displayable.style.blend = blendMode;\n          });\n        }\n      });\n    }\n\n    ;\n\n    function updateZ(model, view) {\n      if (model.preventAutoZ) {\n        return;\n      }\n\n      var z = model.get('z');\n      var zlevel = model.get('zlevel');\n      view.group.traverse(function (el) {\n        if (!el.isGroup) {\n          z != null && (el.z = z);\n          zlevel != null && (el.zlevel = zlevel);\n          var label = el.getTextContent();\n          var labelLine = el.getTextGuideLine();\n\n          if (label) {\n            label.z = el.z;\n            label.zlevel = el.zlevel;\n            label.z2 = el.z2 + 2;\n          }\n\n          if (labelLine) {\n            var showAbove = el.textGuideLineConfig && el.textGuideLineConfig.showAbove;\n            labelLine.z = el.z;\n            labelLine.zlevel = el.zlevel;\n            labelLine.z2 = el.z2 + (showAbove ? 1 : -1);\n          }\n        }\n      });\n    }\n\n    ;\n\n    function clearStates(model, view) {\n      view.group.traverse(function (el) {\n        if (graphic.isElementRemoved(el)) {\n          return;\n        }\n\n        var textContent = el.getTextContent();\n        var textGuide = el.getTextGuideLine();\n\n        if (el.stateTransition) {\n          el.stateTransition = null;\n        }\n\n        if (textContent && textContent.stateTransition) {\n          textContent.stateTransition = null;\n        }\n\n        if (textGuide && textGuide.stateTransition) {\n          textGuide.stateTransition = null;\n        }\n\n        if (el.hasState()) {\n          el.prevStates = el.currentStates;\n          el.clearStates();\n        } else if (el.prevStates) {\n          el.prevStates = null;\n        }\n      });\n    }\n\n    function updateStates(model, view) {\n      var stateAnimationModel = model.getModel('stateAnimation');\n      var enableAnimation = model.isAnimationEnabled();\n      var duration = stateAnimationModel.get('duration');\n      var stateTransition = duration > 0 ? {\n        duration: duration,\n        delay: stateAnimationModel.get('delay'),\n        easing: stateAnimationModel.get('easing')\n      } : null;\n      view.group.traverse(function (el) {\n        if (el.states && el.states.emphasis) {\n          if (graphic.isElementRemoved(el)) {\n            return;\n          }\n\n          if (el instanceof graphic.Path) {\n            savePathStates(el);\n          }\n\n          if (el.__dirty) {\n            var prevStates = el.prevStates;\n\n            if (prevStates) {\n              el.useStates(prevStates);\n            }\n          }\n\n          if (enableAnimation) {\n            el.stateTransition = stateTransition;\n            var textContent = el.getTextContent();\n            var textGuide = el.getTextGuideLine();\n\n            if (textContent) {\n              textContent.stateTransition = stateTransition;\n            }\n\n            if (textGuide) {\n              textGuide.stateTransition = stateTransition;\n            }\n          }\n\n          if (el.__dirty) {\n            applyElementStates(el);\n          }\n        }\n      });\n    }\n\n    ;\n\n    createExtensionAPI = function (ecIns) {\n      return new (function (_super) {\n        __extends(class_1, _super);\n\n        function class_1() {\n          return _super !== null && _super.apply(this, arguments) || this;\n        }\n\n        class_1.prototype.getCoordinateSystems = function () {\n          return ecIns._coordSysMgr.getCoordinateSystems();\n        };\n\n        class_1.prototype.getComponentByElement = function (el) {\n          while (el) {\n            var modelInfo = el.__ecComponentInfo;\n\n            if (modelInfo != null) {\n              return ecIns._model.getComponent(modelInfo.mainType, modelInfo.index);\n            }\n\n            el = el.parent;\n          }\n        };\n\n        class_1.prototype.enterEmphasis = function (el, highlightDigit) {\n          enterEmphasis(el, highlightDigit);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.leaveEmphasis = function (el, highlightDigit) {\n          leaveEmphasis(el, highlightDigit);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.enterBlur = function (el) {\n          enterBlur(el);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.leaveBlur = function (el) {\n          leaveBlur(el);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.enterSelect = function (el) {\n          enterSelect(el);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.leaveSelect = function (el) {\n          leaveSelect(el);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.getModel = function () {\n          return ecIns.getModel();\n        };\n\n        class_1.prototype.getViewOfComponentModel = function (componentModel) {\n          return ecIns.getViewOfComponentModel(componentModel);\n        };\n\n        class_1.prototype.getViewOfSeriesModel = function (seriesModel) {\n          return ecIns.getViewOfSeriesModel(seriesModel);\n        };\n\n        return class_1;\n      }(ExtensionAPI))(ecIns);\n    };\n\n    enableConnect = function (chart) {\n      function updateConnectedChartsStatus(charts, status) {\n        for (var i = 0; i < charts.length; i++) {\n          var otherChart = charts[i];\n          otherChart[CONNECT_STATUS_KEY] = status;\n        }\n      }\n\n      each(eventActionMap, function (actionType, eventType) {\n        chart._messageCenter.on(eventType, function (event) {\n          if (connectedGroups[chart.group] && chart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_PENDING) {\n            if (event && event.escapeConnect) {\n              return;\n            }\n\n            var action_1 = chart.makeActionFromEvent(event);\n            var otherCharts_1 = [];\n            each(instances, function (otherChart) {\n              if (otherChart !== chart && otherChart.group === chart.group) {\n                otherCharts_1.push(otherChart);\n              }\n            });\n            updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_PENDING);\n            each(otherCharts_1, function (otherChart) {\n              if (otherChart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_UPDATING) {\n                otherChart.dispatchAction(action_1);\n              }\n            });\n            updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_UPDATED);\n          }\n        });\n      });\n    };\n\n    setTransitionOpt = function (chart, transitionOpt) {\n      var ecModel = chart._model;\n      zrUtil.each(modelUtil.normalizeToArray(transitionOpt), function (transOpt) {\n        var errMsg;\n        var fromOpt = transOpt.from;\n        var toOpt = transOpt.to;\n\n        if (toOpt == null) {\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg = '`transition.to` must be specified.';\n          }\n\n          throwError(errMsg);\n        }\n\n        var finderOpt = {\n          includeMainTypes: ['series'],\n          enableAll: false,\n          enableNone: false\n        };\n        var fromResult = fromOpt ? modelUtil.parseFinder(ecModel, fromOpt, finderOpt) : null;\n        var toResult = modelUtil.parseFinder(ecModel, toOpt, finderOpt);\n        var toSeries = toResult.seriesModel;\n\n        if (toSeries == null) {\n          errMsg = '';\n\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg = '`transition` is only supported on series.';\n          }\n        }\n\n        if (fromResult && fromResult.seriesModel !== toSeries) {\n          errMsg = '';\n\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg = '`transition.from` and `transition.to` must be specified to the same series.';\n          }\n        }\n\n        if (errMsg != null) {\n          throwError(errMsg);\n        }\n\n        toSeries.__transientTransitionOpt = {\n          from: fromOpt ? fromOpt.dimension : null,\n          to: toOpt.dimension,\n          dividingMethod: transOpt.dividingMethod\n        };\n      });\n    };\n  }();\n\n  return ECharts;\n}(Eventful);\n\nvar echartsProto = ECharts.prototype;\nechartsProto.on = createRegisterEventWithLowercaseECharts('on');\nechartsProto.off = createRegisterEventWithLowercaseECharts('off');\n\nechartsProto.one = function (eventName, cb, ctx) {\n  var self = this;\n  deprecateLog('ECharts#one is deprecated.');\n\n  function wrapped() {\n    var args2 = [];\n\n    for (var _i = 0; _i < arguments.length; _i++) {\n      args2[_i] = arguments[_i];\n    }\n\n    cb && cb.apply && cb.apply(this, args2);\n    self.off(eventName, wrapped);\n  }\n\n  ;\n  this.on.call(this, eventName, wrapped, ctx);\n};\n\nvar MOUSE_EVENT_NAMES = ['click', 'dblclick', 'mouseover', 'mouseout', 'mousemove', 'mousedown', 'mouseup', 'globalout', 'contextmenu'];\n\nfunction disposedWarning(id) {\n  if (process.env.NODE_ENV !== 'production') {\n    console.warn('Instance ' + id + ' has been disposed');\n  }\n}\n\nvar actions = {};\nvar eventActionMap = {};\nvar dataProcessorFuncs = [];\nvar optionPreprocessorFuncs = [];\nvar postInitFuncs = [];\nvar postUpdateFuncs = [];\nvar visualFuncs = [];\nvar themeStorage = {};\nvar loadingEffects = {};\nvar instances = {};\nvar connectedGroups = {};\nvar idBase = +new Date() - 0;\nvar groupIdBase = +new Date() - 0;\nvar DOM_ATTRIBUTE_KEY = '_echarts_instance_';\nexport function init(dom, theme, opts) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (!dom) {\n      throw new Error('Initialize failed: invalid dom.');\n    }\n  }\n\n  var existInstance = getInstanceByDom(dom);\n\n  if (existInstance) {\n    if (process.env.NODE_ENV !== 'production') {\n      console.warn('There is a chart instance already initialized on the dom.');\n    }\n\n    return existInstance;\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (zrUtil.isDom(dom) && dom.nodeName.toUpperCase() !== 'CANVAS' && (!dom.clientWidth && (!opts || opts.width == null) || !dom.clientHeight && (!opts || opts.height == null))) {\n      console.warn('Can\\'t get DOM width or height. Please check ' + 'dom.clientWidth and dom.clientHeight. They should not be 0.' + 'For example, you may need to call this in the callback ' + 'of window.onload.');\n    }\n  }\n\n  var chart = new ECharts(dom, theme, opts);\n  chart.id = 'ec_' + idBase++;\n  instances[chart.id] = chart;\n  modelUtil.setAttribute(dom, DOM_ATTRIBUTE_KEY, chart.id);\n  enableConnect(chart);\n  each(postInitFuncs, function (postInitFunc) {\n    postInitFunc(chart);\n  });\n  return chart;\n}\nexport function connect(groupId) {\n  if (zrUtil.isArray(groupId)) {\n    var charts = groupId;\n    groupId = null;\n    each(charts, function (chart) {\n      if (chart.group != null) {\n        groupId = chart.group;\n      }\n    });\n    groupId = groupId || 'g_' + groupIdBase++;\n    each(charts, function (chart) {\n      chart.group = groupId;\n    });\n  }\n\n  connectedGroups[groupId] = true;\n  return groupId;\n}\nexport function disConnect(groupId) {\n  connectedGroups[groupId] = false;\n}\nexport var disconnect = disConnect;\nexport function dispose(chart) {\n  if (typeof chart === 'string') {\n    chart = instances[chart];\n  } else if (!(chart instanceof ECharts)) {\n    chart = getInstanceByDom(chart);\n  }\n\n  if (chart instanceof ECharts && !chart.isDisposed()) {\n    chart.dispose();\n  }\n}\nexport function getInstanceByDom(dom) {\n  return instances[modelUtil.getAttribute(dom, DOM_ATTRIBUTE_KEY)];\n}\nexport function getInstanceById(key) {\n  return instances[key];\n}\nexport function registerTheme(name, theme) {\n  themeStorage[name] = theme;\n}\nexport function registerPreprocessor(preprocessorFunc) {\n  if (indexOf(optionPreprocessorFuncs, preprocessorFunc) < 0) {\n    optionPreprocessorFuncs.push(preprocessorFunc);\n  }\n}\nexport function registerProcessor(priority, processor) {\n  normalizeRegister(dataProcessorFuncs, priority, processor, PRIORITY_PROCESSOR_DEFAULT);\n}\nexport function registerPostInit(postInitFunc) {\n  if (indexOf(postInitFuncs, postInitFunc) < 0) {\n    postInitFunc && postInitFuncs.push(postInitFunc);\n  }\n}\nexport function registerPostUpdate(postUpdateFunc) {\n  if (indexOf(postUpdateFuncs, postUpdateFunc) < 0) {\n    postUpdateFunc && postUpdateFuncs.push(postUpdateFunc);\n  }\n}\nexport function registerAction(actionInfo, eventName, action) {\n  if (typeof eventName === 'function') {\n    action = eventName;\n    eventName = '';\n  }\n\n  var actionType = isObject(actionInfo) ? actionInfo.type : [actionInfo, actionInfo = {\n    event: eventName\n  }][0];\n  actionInfo.event = (actionInfo.event || actionType).toLowerCase();\n  eventName = actionInfo.event;\n\n  if (eventActionMap[eventName]) {\n    return;\n  }\n\n  assert(ACTION_REG.test(actionType) && ACTION_REG.test(eventName));\n\n  if (!actions[actionType]) {\n    actions[actionType] = {\n      action: action,\n      actionInfo: actionInfo\n    };\n  }\n\n  eventActionMap[eventName] = actionType;\n}\nexport function registerCoordinateSystem(type, coordSysCreator) {\n  CoordinateSystemManager.register(type, coordSysCreator);\n}\nexport function getCoordinateSystemDimensions(type) {\n  var coordSysCreator = CoordinateSystemManager.get(type);\n\n  if (coordSysCreator) {\n    return coordSysCreator.getDimensionsInfo ? coordSysCreator.getDimensionsInfo() : coordSysCreator.dimensions.slice();\n  }\n}\nexport { registerLocale } from './locale';\n\nfunction registerLayout(priority, layoutTask) {\n  normalizeRegister(visualFuncs, priority, layoutTask, PRIORITY_VISUAL_LAYOUT, 'layout');\n}\n\nfunction registerVisual(priority, visualTask) {\n  normalizeRegister(visualFuncs, priority, visualTask, PRIORITY_VISUAL_CHART, 'visual');\n}\n\nexport { registerLayout, registerVisual };\nvar registeredTasks = [];\n\nfunction normalizeRegister(targetList, priority, fn, defaultPriority, visualType) {\n  if (isFunction(priority) || isObject(priority)) {\n    fn = priority;\n    priority = defaultPriority;\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (isNaN(priority) || priority == null) {\n      throw new Error('Illegal priority');\n    }\n\n    each(targetList, function (wrap) {\n      assert(wrap.__raw !== fn);\n    });\n  }\n\n  if (indexOf(registeredTasks, fn) >= 0) {\n    return;\n  }\n\n  registeredTasks.push(fn);\n  var stageHandler = Scheduler.wrapStageHandler(fn, visualType);\n  stageHandler.__prio = priority;\n  stageHandler.__raw = fn;\n  targetList.push(stageHandler);\n}\n\nexport function registerLoading(name, loadingFx) {\n  loadingEffects[name] = loadingFx;\n}\nexport function setCanvasCreator(creator) {\n  zrUtil.$override('createCanvas', creator);\n}\nexport function registerMap(mapName, geoJson, specialAreas) {\n  mapDataStorage.registerMap(mapName, geoJson, specialAreas);\n}\nexport function getMap(mapName) {\n  var records = mapDataStorage.retrieveMap(mapName);\n  return records && records[0] && {\n    geoJson: records[0].geoJSON,\n    specialAreas: records[0].specialAreas\n  };\n}\nexport var registerTransform = registerExternalTransform;\nregisterVisual(PRIORITY_VISUAL_GLOBAL, seriesStyleTask);\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataStyleTask);\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataColorPaletteTask);\nregisterVisual(PRIORITY_VISUAL_GLOBAL, seriesSymbolTask);\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataSymbolTask);\nregisterVisual(PRIORITY_VISUAL_DECAL, decal);\nregisterPreprocessor(backwardCompat);\nregisterProcessor(PRIORITY_PROCESSOR_DATASTACK, dataStack);\nregisterLoading('default', loadingDefault);\nregisterAction({\n  type: HIGHLIGHT_ACTION_TYPE,\n  event: HIGHLIGHT_ACTION_TYPE,\n  update: HIGHLIGHT_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n  type: DOWNPLAY_ACTION_TYPE,\n  event: DOWNPLAY_ACTION_TYPE,\n  update: DOWNPLAY_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n  type: SELECT_ACTION_TYPE,\n  event: SELECT_ACTION_TYPE,\n  update: SELECT_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n  type: UNSELECT_ACTION_TYPE,\n  event: UNSELECT_ACTION_TYPE,\n  update: UNSELECT_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n  type: TOGGLE_SELECT_ACTION_TYPE,\n  event: TOGGLE_SELECT_ACTION_TYPE,\n  update: TOGGLE_SELECT_ACTION_TYPE\n}, zrUtil.noop);\nregisterTheme('light', lightTheme);\nregisterTheme('dark', darkTheme);\nexport var dataTool = {};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { registerPreprocessor, registerProcessor, registerPostInit, registerPostUpdate, registerAction, registerCoordinateSystem, registerLayout, registerVisual, registerTransform, registerLoading, registerMap, PRIORITY } from './core/echarts';\nimport ComponentView from './view/Component';\nimport ChartView from './view/Chart';\nimport ComponentModel from './model/Component';\nimport SeriesModel from './model/Series';\nimport { isFunction, indexOf, isArray, each } from 'zrender/lib/core/util';\nimport { registerPainter } from 'zrender/lib/zrender';\nvar extensions = [];\nvar extensionRegisters = {\n  registerPreprocessor: registerPreprocessor,\n  registerProcessor: registerProcessor,\n  registerPostInit: registerPostInit,\n  registerPostUpdate: registerPostUpdate,\n  registerAction: registerAction,\n  registerCoordinateSystem: registerCoordinateSystem,\n  registerLayout: registerLayout,\n  registerVisual: registerVisual,\n  registerTransform: registerTransform,\n  registerLoading: registerLoading,\n  registerMap: registerMap,\n  PRIORITY: PRIORITY,\n  ComponentModel: ComponentModel,\n  ComponentView: ComponentView,\n  SeriesModel: SeriesModel,\n  ChartView: ChartView,\n  registerComponentModel: function (ComponentModelClass) {\n    ComponentModel.registerClass(ComponentModelClass);\n  },\n  registerComponentView: function (ComponentViewClass) {\n    ComponentView.registerClass(ComponentViewClass);\n  },\n  registerSeriesModel: function (SeriesModelClass) {\n    SeriesModel.registerClass(SeriesModelClass);\n  },\n  registerChartView: function (ChartViewClass) {\n    ChartView.registerClass(ChartViewClass);\n  },\n  registerSubTypeDefaulter: function (componentType, defaulter) {\n    ComponentModel.registerSubTypeDefaulter(componentType, defaulter);\n  },\n  registerPainter: function (painterType, PainterCtor) {\n    registerPainter(painterType, PainterCtor);\n  }\n};\nexport function use(ext) {\n  if (isArray(ext)) {\n    each(ext, function (singleExt) {\n      use(singleExt);\n    });\n    return;\n  }\n\n  if (indexOf(extensions, ext) >= 0) {\n    return;\n  }\n\n  extensions.push(ext);\n\n  if (isFunction(ext)) {\n    ext = {\n      install: ext\n    };\n  }\n\n  ext.install(extensionRegisters);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nfunction dataIndexMapValueLength(valNumOrArrLengthMoreThan2) {\n  return valNumOrArrLengthMoreThan2 == null ? 0 : valNumOrArrLengthMoreThan2.length || 1;\n}\n\nfunction defaultKeyGetter(item) {\n  return item;\n}\n\nvar DataDiffer = function () {\n  function DataDiffer(oldArr, newArr, oldKeyGetter, newKeyGetter, context, diffMode) {\n    this._old = oldArr;\n    this._new = newArr;\n    this._oldKeyGetter = oldKeyGetter || defaultKeyGetter;\n    this._newKeyGetter = newKeyGetter || defaultKeyGetter;\n    this.context = context;\n    this._diffModeMultiple = diffMode === 'multiple';\n  }\n\n  DataDiffer.prototype.add = function (func) {\n    this._add = func;\n    return this;\n  };\n\n  DataDiffer.prototype.update = function (func) {\n    this._update = func;\n    return this;\n  };\n\n  DataDiffer.prototype.updateManyToOne = function (func) {\n    this._updateManyToOne = func;\n    return this;\n  };\n\n  DataDiffer.prototype.updateOneToMany = function (func) {\n    this._updateOneToMany = func;\n    return this;\n  };\n\n  DataDiffer.prototype.remove = function (func) {\n    this._remove = func;\n    return this;\n  };\n\n  DataDiffer.prototype.execute = function () {\n    this[this._diffModeMultiple ? '_executeMultiple' : '_executeOneToOne']();\n  };\n\n  DataDiffer.prototype._executeOneToOne = function () {\n    var oldArr = this._old;\n    var newArr = this._new;\n    var newDataIndexMap = {};\n    var oldDataKeyArr = new Array(oldArr.length);\n    var newDataKeyArr = new Array(newArr.length);\n\n    this._initIndexMap(oldArr, null, oldDataKeyArr, '_oldKeyGetter');\n\n    this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, '_newKeyGetter');\n\n    for (var i = 0; i < oldArr.length; i++) {\n      var oldKey = oldDataKeyArr[i];\n      var newIdxMapVal = newDataIndexMap[oldKey];\n      var newIdxMapValLen = dataIndexMapValueLength(newIdxMapVal);\n\n      if (newIdxMapValLen > 1) {\n        var newIdx = newIdxMapVal.shift();\n\n        if (newIdxMapVal.length === 1) {\n          newDataIndexMap[oldKey] = newIdxMapVal[0];\n        }\n\n        this._update && this._update(newIdx, i);\n      } else if (newIdxMapValLen === 1) {\n        newDataIndexMap[oldKey] = null;\n        this._update && this._update(newIdxMapVal, i);\n      } else {\n        this._remove && this._remove(i);\n      }\n    }\n\n    this._performRestAdd(newDataKeyArr, newDataIndexMap);\n  };\n\n  DataDiffer.prototype._executeMultiple = function () {\n    var oldArr = this._old;\n    var newArr = this._new;\n    var oldDataIndexMap = {};\n    var newDataIndexMap = {};\n    var oldDataKeyArr = [];\n    var newDataKeyArr = [];\n\n    this._initIndexMap(oldArr, oldDataIndexMap, oldDataKeyArr, '_oldKeyGetter');\n\n    this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, '_newKeyGetter');\n\n    for (var i = 0; i < oldDataKeyArr.length; i++) {\n      var oldKey = oldDataKeyArr[i];\n      var oldIdxMapVal = oldDataIndexMap[oldKey];\n      var newIdxMapVal = newDataIndexMap[oldKey];\n      var oldIdxMapValLen = dataIndexMapValueLength(oldIdxMapVal);\n      var newIdxMapValLen = dataIndexMapValueLength(newIdxMapVal);\n\n      if (oldIdxMapValLen > 1 && newIdxMapValLen === 1) {\n        this._updateManyToOne && this._updateManyToOne(newIdxMapVal, oldIdxMapVal);\n        newDataIndexMap[oldKey] = null;\n      } else if (oldIdxMapValLen === 1 && newIdxMapValLen > 1) {\n        this._updateOneToMany && this._updateOneToMany(newIdxMapVal, oldIdxMapVal);\n        newDataIndexMap[oldKey] = null;\n      } else if (oldIdxMapValLen === 1 && newIdxMapValLen === 1) {\n        this._update && this._update(newIdxMapVal, oldIdxMapVal);\n        newDataIndexMap[oldKey] = null;\n      } else if (oldIdxMapValLen > 1) {\n        for (var i_1 = 0; i_1 < oldIdxMapValLen; i_1++) {\n          this._remove && this._remove(oldIdxMapVal[i_1]);\n        }\n      } else {\n        this._remove && this._remove(oldIdxMapVal);\n      }\n    }\n\n    this._performRestAdd(newDataKeyArr, newDataIndexMap);\n  };\n\n  DataDiffer.prototype._performRestAdd = function (newDataKeyArr, newDataIndexMap) {\n    for (var i = 0; i < newDataKeyArr.length; i++) {\n      var newKey = newDataKeyArr[i];\n      var newIdxMapVal = newDataIndexMap[newKey];\n      var idxMapValLen = dataIndexMapValueLength(newIdxMapVal);\n\n      if (idxMapValLen > 1) {\n        for (var j = 0; j < idxMapValLen; j++) {\n          this._add && this._add(newIdxMapVal[j]);\n        }\n      } else if (idxMapValLen === 1) {\n        this._add && this._add(newIdxMapVal);\n      }\n\n      newDataIndexMap[newKey] = null;\n    }\n  };\n\n  DataDiffer.prototype._initIndexMap = function (arr, map, keyArr, keyGetterName) {\n    var cbModeMultiple = this._diffModeMultiple;\n\n    for (var i = 0; i < arr.length; i++) {\n      var key = '_ec_' + this[keyGetterName](arr[i], i);\n\n      if (!cbModeMultiple) {\n        keyArr[i] = key;\n      }\n\n      if (!map) {\n        continue;\n      }\n\n      var idxMapVal = map[key];\n      var idxMapValLen = dataIndexMapValueLength(idxMapVal);\n\n      if (idxMapValLen === 0) {\n        map[key] = i;\n\n        if (cbModeMultiple) {\n          keyArr.push(key);\n        }\n      } else if (idxMapValLen === 1) {\n        map[key] = [idxMapVal, i];\n      } else {\n        idxMapVal.push(i);\n      }\n    }\n  };\n\n  return DataDiffer;\n}();\n\nexport default DataDiffer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, createHashMap, assert } from 'zrender/lib/core/util';\nimport { VISUAL_DIMENSIONS } from '../../util/types';\nexport function summarizeDimensions(data) {\n  var summary = {};\n  var encode = summary.encode = {};\n  var notExtraCoordDimMap = createHashMap();\n  var defaultedLabel = [];\n  var defaultedTooltip = [];\n  var userOutput = summary.userOutput = {\n    dimensionNames: data.dimensions.slice(),\n    encode: {}\n  };\n  each(data.dimensions, function (dimName) {\n    var dimItem = data.getDimensionInfo(dimName);\n    var coordDim = dimItem.coordDim;\n\n    if (coordDim) {\n      if (process.env.NODE_ENV !== 'production') {\n        assert(VISUAL_DIMENSIONS.get(coordDim) == null);\n      }\n\n      var coordDimIndex = dimItem.coordDimIndex;\n      getOrCreateEncodeArr(encode, coordDim)[coordDimIndex] = dimName;\n\n      if (!dimItem.isExtraCoord) {\n        notExtraCoordDimMap.set(coordDim, 1);\n\n        if (mayLabelDimType(dimItem.type)) {\n          defaultedLabel[0] = dimName;\n        }\n\n        getOrCreateEncodeArr(userOutput.encode, coordDim)[coordDimIndex] = dimItem.index;\n      }\n\n      if (dimItem.defaultTooltip) {\n        defaultedTooltip.push(dimName);\n      }\n    }\n\n    VISUAL_DIMENSIONS.each(function (v, otherDim) {\n      var encodeArr = getOrCreateEncodeArr(encode, otherDim);\n      var dimIndex = dimItem.otherDims[otherDim];\n\n      if (dimIndex != null && dimIndex !== false) {\n        encodeArr[dimIndex] = dimItem.name;\n      }\n    });\n  });\n  var dataDimsOnCoord = [];\n  var encodeFirstDimNotExtra = {};\n  notExtraCoordDimMap.each(function (v, coordDim) {\n    var dimArr = encode[coordDim];\n    encodeFirstDimNotExtra[coordDim] = dimArr[0];\n    dataDimsOnCoord = dataDimsOnCoord.concat(dimArr);\n  });\n  summary.dataDimsOnCoord = dataDimsOnCoord;\n  summary.encodeFirstDimNotExtra = encodeFirstDimNotExtra;\n  var encodeLabel = encode.label;\n\n  if (encodeLabel && encodeLabel.length) {\n    defaultedLabel = encodeLabel.slice();\n  }\n\n  var encodeTooltip = encode.tooltip;\n\n  if (encodeTooltip && encodeTooltip.length) {\n    defaultedTooltip = encodeTooltip.slice();\n  } else if (!defaultedTooltip.length) {\n    defaultedTooltip = defaultedLabel.slice();\n  }\n\n  encode.defaultedLabel = defaultedLabel;\n  encode.defaultedTooltip = defaultedTooltip;\n  return summary;\n}\n\nfunction getOrCreateEncodeArr(encode, dim) {\n  if (!encode.hasOwnProperty(dim)) {\n    encode[dim] = [];\n  }\n\n  return encode[dim];\n}\n\nexport function getDimensionTypeByAxis(axisType) {\n  return axisType === 'category' ? 'ordinal' : axisType === 'time' ? 'time' : 'float';\n}\n\nfunction mayLabelDimType(dimType) {\n  return !(dimType === 'ordinal' || dimType === 'time');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nvar DataDimensionInfo = function () {\n  function DataDimensionInfo(opt) {\n    this.otherDims = {};\n\n    if (opt != null) {\n      zrUtil.extend(this, opt);\n    }\n  }\n\n  return DataDimensionInfo;\n}();\n\n;\nexport default DataDimensionInfo;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Model from '../model/Model';\nimport DataDiffer from './DataDiffer';\nimport { DefaultDataProvider } from './helper/dataProvider';\nimport { summarizeDimensions } from './helper/dimensionHelper';\nimport DataDimensionInfo from './DataDimensionInfo';\nimport { SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ORIGINAL } from '../util/types';\nimport { isDataItemOption, convertOptionIdName } from '../util/model';\nimport { getECData } from '../util/innerStore';\nimport { parseDataValue } from './helper/dataValueHelper';\nimport { isSourceInstance } from './Source';\nvar mathFloor = Math.floor;\nvar isObject = zrUtil.isObject;\nvar map = zrUtil.map;\nvar UNDEFINED = 'undefined';\nvar INDEX_NOT_FOUND = -1;\nvar ID_PREFIX = 'e\\0\\0';\nvar dataCtors = {\n  'float': typeof Float64Array === UNDEFINED ? Array : Float64Array,\n  'int': typeof Int32Array === UNDEFINED ? Array : Int32Array,\n  'ordinal': Array,\n  'number': Array,\n  'time': Array\n};\nvar CtorUint32Array = typeof Uint32Array === UNDEFINED ? Array : Uint32Array;\nvar CtorInt32Array = typeof Int32Array === UNDEFINED ? Array : Int32Array;\nvar CtorUint16Array = typeof Uint16Array === UNDEFINED ? Array : Uint16Array;\nvar TRANSFERABLE_PROPERTIES = ['hasItemOption', '_nameList', '_idList', '_invertedIndicesMap', '_rawData', '_dimValueGetter', '_count', '_rawCount', '_nameDimIdx', '_idDimIdx', '_nameRepeatCount'];\nvar CLONE_PROPERTIES = ['_extent', '_approximateExtent', '_rawExtent'];\nvar defaultDimValueGetters;\nvar prepareInvertedIndex;\nvar getIndicesCtor;\nvar prepareStorage;\nvar getRawIndexWithoutIndices;\nvar getRawIndexWithIndices;\nvar getId;\nvar getIdNameFromStore;\nvar makeIdFromName;\nvar normalizeDimensions;\nvar validateDimensions;\nvar cloneListForMapAndSample;\nvar getInitialExtent;\nvar setItemDataAndSeriesIndex;\nvar transferProperties;\n\nvar List = function () {\n  function List(dimensions, hostModel) {\n    this.type = 'list';\n    this._count = 0;\n    this._rawCount = 0;\n    this._storage = {};\n    this._storageArr = [];\n    this._nameList = [];\n    this._idList = [];\n    this._visual = {};\n    this._layout = {};\n    this._itemVisuals = [];\n    this._itemLayouts = [];\n    this._graphicEls = [];\n    this._rawExtent = {};\n    this._extent = {};\n    this._approximateExtent = {};\n    this._calculationInfo = {};\n    this.hasItemOption = true;\n    this.TRANSFERABLE_METHODS = ['cloneShallow', 'downSample', 'lttbDownSample', 'map'];\n    this.CHANGABLE_METHODS = ['filterSelf', 'selectRange'];\n    this.DOWNSAMPLE_METHODS = ['downSample', 'lttbDownSample'];\n    this.getRawIndex = getRawIndexWithoutIndices;\n    dimensions = dimensions || ['x', 'y'];\n    var dimensionInfos = {};\n    var dimensionNames = [];\n    var invertedIndicesMap = {};\n\n    for (var i = 0; i < dimensions.length; i++) {\n      var dimInfoInput = dimensions[i];\n      var dimensionInfo = zrUtil.isString(dimInfoInput) ? new DataDimensionInfo({\n        name: dimInfoInput\n      }) : !(dimInfoInput instanceof DataDimensionInfo) ? new DataDimensionInfo(dimInfoInput) : dimInfoInput;\n      var dimensionName = dimensionInfo.name;\n      dimensionInfo.type = dimensionInfo.type || 'float';\n\n      if (!dimensionInfo.coordDim) {\n        dimensionInfo.coordDim = dimensionName;\n        dimensionInfo.coordDimIndex = 0;\n      }\n\n      var otherDims = dimensionInfo.otherDims = dimensionInfo.otherDims || {};\n      dimensionNames.push(dimensionName);\n      dimensionInfos[dimensionName] = dimensionInfo;\n      dimensionInfo.index = i;\n\n      if (dimensionInfo.createInvertedIndices) {\n        invertedIndicesMap[dimensionName] = [];\n      }\n\n      if (otherDims.itemName === 0) {\n        this._nameDimIdx = i;\n        this._nameOrdinalMeta = dimensionInfo.ordinalMeta;\n      }\n\n      if (otherDims.itemId === 0) {\n        this._idDimIdx = i;\n        this._idOrdinalMeta = dimensionInfo.ordinalMeta;\n      }\n    }\n\n    this.dimensions = dimensionNames;\n    this._dimensionInfos = dimensionInfos;\n    this.hostModel = hostModel;\n    this._dimensionsSummary = summarizeDimensions(this);\n    this._invertedIndicesMap = invertedIndicesMap;\n    this.userOutput = this._dimensionsSummary.userOutput;\n  }\n\n  List.prototype.getDimension = function (dim) {\n    if (typeof dim === 'number' || !isNaN(dim) && !this._dimensionInfos.hasOwnProperty(dim)) {\n      dim = this.dimensions[dim];\n    }\n\n    return dim;\n  };\n\n  List.prototype.getDimensionInfo = function (dim) {\n    return this._dimensionInfos[this.getDimension(dim)];\n  };\n\n  List.prototype.getDimensionsOnCoord = function () {\n    return this._dimensionsSummary.dataDimsOnCoord.slice();\n  };\n\n  List.prototype.mapDimension = function (coordDim, idx) {\n    var dimensionsSummary = this._dimensionsSummary;\n\n    if (idx == null) {\n      return dimensionsSummary.encodeFirstDimNotExtra[coordDim];\n    }\n\n    var dims = dimensionsSummary.encode[coordDim];\n    return dims ? dims[idx] : null;\n  };\n\n  List.prototype.mapDimensionsAll = function (coordDim) {\n    var dimensionsSummary = this._dimensionsSummary;\n    var dims = dimensionsSummary.encode[coordDim];\n    return (dims || []).slice();\n  };\n\n  List.prototype.initData = function (data, nameList, dimValueGetter) {\n    var notProvider = isSourceInstance(data) || zrUtil.isArrayLike(data);\n    var provider = notProvider ? new DefaultDataProvider(data, this.dimensions.length) : data;\n\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.assert(notProvider || zrUtil.isFunction(provider.getItem) && zrUtil.isFunction(provider.count), 'Inavlid data provider.');\n    }\n\n    this._rawData = provider;\n    var sourceFormat = provider.getSource().sourceFormat;\n    this._storage = {};\n    this._indices = null;\n    this._dontMakeIdFromName = this._idDimIdx != null || sourceFormat === SOURCE_FORMAT_TYPED_ARRAY || !!provider.fillStorage;\n    this._nameList = (nameList || []).slice();\n    this._idList = [];\n    this._nameRepeatCount = {};\n\n    if (!dimValueGetter) {\n      this.hasItemOption = false;\n    }\n\n    this.defaultDimValueGetter = defaultDimValueGetters[sourceFormat];\n    this._dimValueGetter = dimValueGetter = dimValueGetter || this.defaultDimValueGetter;\n    this._dimValueGetterArrayRows = defaultDimValueGetters.arrayRows;\n    this._rawExtent = {};\n\n    this._initDataFromProvider(0, provider.count());\n\n    if (provider.pure) {\n      this.hasItemOption = false;\n    }\n  };\n\n  List.prototype.getProvider = function () {\n    return this._rawData;\n  };\n\n  List.prototype.appendData = function (data) {\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.assert(!this._indices, 'appendData can only be called on raw data.');\n    }\n\n    var rawData = this._rawData;\n    var start = this.count();\n    rawData.appendData(data);\n    var end = rawData.count();\n\n    if (!rawData.persistent) {\n      end += start;\n    }\n\n    this._initDataFromProvider(start, end, true);\n  };\n\n  List.prototype.appendValues = function (values, names) {\n    var storage = this._storage;\n    var dimensions = this.dimensions;\n    var dimLen = dimensions.length;\n    var rawExtent = this._rawExtent;\n    var start = this.count();\n    var end = start + Math.max(values.length, names ? names.length : 0);\n\n    for (var i = 0; i < dimLen; i++) {\n      var dim = dimensions[i];\n\n      if (!rawExtent[dim]) {\n        rawExtent[dim] = getInitialExtent();\n      }\n\n      prepareStorage(storage, this._dimensionInfos[dim], end, true);\n    }\n\n    var rawExtentArr = map(dimensions, function (dim) {\n      return rawExtent[dim];\n    });\n    var storageArr = this._storageArr = map(dimensions, function (dim) {\n      return storage[dim];\n    });\n    var emptyDataItem = [];\n\n    for (var idx = start; idx < end; idx++) {\n      var sourceIdx = idx - start;\n\n      for (var dimIdx = 0; dimIdx < dimLen; dimIdx++) {\n        var dim = dimensions[dimIdx];\n\n        var val = this._dimValueGetterArrayRows(values[sourceIdx] || emptyDataItem, dim, sourceIdx, dimIdx);\n\n        storageArr[dimIdx][idx] = val;\n        var dimRawExtent = rawExtentArr[dimIdx];\n        val < dimRawExtent[0] && (dimRawExtent[0] = val);\n        val > dimRawExtent[1] && (dimRawExtent[1] = val);\n      }\n\n      if (names) {\n        this._nameList[idx] = names[sourceIdx];\n\n        if (!this._dontMakeIdFromName) {\n          makeIdFromName(this, idx);\n        }\n      }\n    }\n\n    this._rawCount = this._count = end;\n    this._extent = {};\n    prepareInvertedIndex(this);\n  };\n\n  List.prototype._initDataFromProvider = function (start, end, append) {\n    if (start >= end) {\n      return;\n    }\n\n    var rawData = this._rawData;\n    var storage = this._storage;\n    var dimensions = this.dimensions;\n    var dimLen = dimensions.length;\n    var dimensionInfoMap = this._dimensionInfos;\n    var nameList = this._nameList;\n    var idList = this._idList;\n    var rawExtent = this._rawExtent;\n    var sourceFormat = rawData.getSource().sourceFormat;\n    var isFormatOriginal = sourceFormat === SOURCE_FORMAT_ORIGINAL;\n\n    for (var i = 0; i < dimLen; i++) {\n      var dim = dimensions[i];\n\n      if (!rawExtent[dim]) {\n        rawExtent[dim] = getInitialExtent();\n      }\n\n      prepareStorage(storage, dimensionInfoMap[dim], end, append);\n    }\n\n    var storageArr = this._storageArr = map(dimensions, function (dim) {\n      return storage[dim];\n    });\n    var rawExtentArr = map(dimensions, function (dim) {\n      return rawExtent[dim];\n    });\n\n    if (rawData.fillStorage) {\n      rawData.fillStorage(start, end, storageArr, rawExtentArr);\n    } else {\n      var dataItem = [];\n\n      for (var idx = start; idx < end; idx++) {\n        dataItem = rawData.getItem(idx, dataItem);\n\n        for (var dimIdx = 0; dimIdx < dimLen; dimIdx++) {\n          var dim = dimensions[dimIdx];\n          var dimStorage = storageArr[dimIdx];\n\n          var val = this._dimValueGetter(dataItem, dim, idx, dimIdx);\n\n          dimStorage[idx] = val;\n          var dimRawExtent = rawExtentArr[dimIdx];\n          val < dimRawExtent[0] && (dimRawExtent[0] = val);\n          val > dimRawExtent[1] && (dimRawExtent[1] = val);\n        }\n\n        if (isFormatOriginal && !rawData.pure && dataItem) {\n          var itemName = dataItem.name;\n\n          if (nameList[idx] == null && itemName != null) {\n            nameList[idx] = convertOptionIdName(itemName, null);\n          }\n\n          var itemId = dataItem.id;\n\n          if (idList[idx] == null && itemId != null) {\n            idList[idx] = convertOptionIdName(itemId, null);\n          }\n        }\n\n        if (!this._dontMakeIdFromName) {\n          makeIdFromName(this, idx);\n        }\n      }\n    }\n\n    if (!rawData.persistent && rawData.clean) {\n      rawData.clean();\n    }\n\n    this._rawCount = this._count = end;\n    this._extent = {};\n    prepareInvertedIndex(this);\n  };\n\n  List.prototype.count = function () {\n    return this._count;\n  };\n\n  List.prototype.getIndices = function () {\n    var newIndices;\n    var indices = this._indices;\n\n    if (indices) {\n      var Ctor = indices.constructor;\n      var thisCount = this._count;\n\n      if (Ctor === Array) {\n        newIndices = new Ctor(thisCount);\n\n        for (var i = 0; i < thisCount; i++) {\n          newIndices[i] = indices[i];\n        }\n      } else {\n        newIndices = new Ctor(indices.buffer, 0, thisCount);\n      }\n    } else {\n      var Ctor = getIndicesCtor(this);\n      newIndices = new Ctor(this.count());\n\n      for (var i = 0; i < newIndices.length; i++) {\n        newIndices[i] = i;\n      }\n    }\n\n    return newIndices;\n  };\n\n  List.prototype.getByDimIdx = function (dimIdx, idx) {\n    if (!(idx >= 0 && idx < this._count)) {\n      return NaN;\n    }\n\n    var dimStore = this._storageArr[dimIdx];\n    return dimStore ? dimStore[this.getRawIndex(idx)] : NaN;\n  };\n\n  List.prototype.get = function (dim, idx) {\n    if (!(idx >= 0 && idx < this._count)) {\n      return NaN;\n    }\n\n    var dimStore = this._storage[dim];\n    return dimStore ? dimStore[this.getRawIndex(idx)] : NaN;\n  };\n\n  List.prototype.getByRawIndex = function (dim, rawIdx) {\n    if (!(rawIdx >= 0 && rawIdx < this._rawCount)) {\n      return NaN;\n    }\n\n    var dimStore = this._storage[dim];\n    return dimStore ? dimStore[rawIdx] : NaN;\n  };\n\n  List.prototype.getValues = function (dimensions, idx) {\n    var values = [];\n\n    if (!zrUtil.isArray(dimensions)) {\n      idx = dimensions;\n      dimensions = this.dimensions;\n    }\n\n    for (var i = 0, len = dimensions.length; i < len; i++) {\n      values.push(this.get(dimensions[i], idx));\n    }\n\n    return values;\n  };\n\n  List.prototype.hasValue = function (idx) {\n    var dataDimsOnCoord = this._dimensionsSummary.dataDimsOnCoord;\n\n    for (var i = 0, len = dataDimsOnCoord.length; i < len; i++) {\n      if (isNaN(this.get(dataDimsOnCoord[i], idx))) {\n        return false;\n      }\n    }\n\n    return true;\n  };\n\n  List.prototype.getDataExtent = function (dim) {\n    dim = this.getDimension(dim);\n    var dimData = this._storage[dim];\n    var initialExtent = getInitialExtent();\n\n    if (!dimData) {\n      return initialExtent;\n    }\n\n    var currEnd = this.count();\n    var useRaw = !this._indices;\n    var dimExtent;\n\n    if (useRaw) {\n      return this._rawExtent[dim].slice();\n    }\n\n    dimExtent = this._extent[dim];\n\n    if (dimExtent) {\n      return dimExtent.slice();\n    }\n\n    dimExtent = initialExtent;\n    var min = dimExtent[0];\n    var max = dimExtent[1];\n\n    for (var i = 0; i < currEnd; i++) {\n      var rawIdx = this.getRawIndex(i);\n      var value = dimData[rawIdx];\n      value < min && (min = value);\n      value > max && (max = value);\n    }\n\n    dimExtent = [min, max];\n    this._extent[dim] = dimExtent;\n    return dimExtent;\n  };\n\n  List.prototype.getApproximateExtent = function (dim) {\n    dim = this.getDimension(dim);\n    return this._approximateExtent[dim] || this.getDataExtent(dim);\n  };\n\n  List.prototype.setApproximateExtent = function (extent, dim) {\n    dim = this.getDimension(dim);\n    this._approximateExtent[dim] = extent.slice();\n  };\n\n  List.prototype.getCalculationInfo = function (key) {\n    return this._calculationInfo[key];\n  };\n\n  List.prototype.setCalculationInfo = function (key, value) {\n    isObject(key) ? zrUtil.extend(this._calculationInfo, key) : this._calculationInfo[key] = value;\n  };\n\n  List.prototype.getSum = function (dim) {\n    var dimData = this._storage[dim];\n    var sum = 0;\n\n    if (dimData) {\n      for (var i = 0, len = this.count(); i < len; i++) {\n        var value = this.get(dim, i);\n\n        if (!isNaN(value)) {\n          sum += value;\n        }\n      }\n    }\n\n    return sum;\n  };\n\n  List.prototype.getMedian = function (dim) {\n    var dimDataArray = [];\n    this.each(dim, function (val) {\n      if (!isNaN(val)) {\n        dimDataArray.push(val);\n      }\n    });\n    var sortedDimDataArray = dimDataArray.sort(function (a, b) {\n      return a - b;\n    });\n    var len = this.count();\n    return len === 0 ? 0 : len % 2 === 1 ? sortedDimDataArray[(len - 1) / 2] : (sortedDimDataArray[len / 2] + sortedDimDataArray[len / 2 - 1]) / 2;\n  };\n\n  List.prototype.rawIndexOf = function (dim, value) {\n    var invertedIndices = dim && this._invertedIndicesMap[dim];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!invertedIndices) {\n        throw new Error('Do not supported yet');\n      }\n    }\n\n    var rawIndex = invertedIndices[value];\n\n    if (rawIndex == null || isNaN(rawIndex)) {\n      return INDEX_NOT_FOUND;\n    }\n\n    return rawIndex;\n  };\n\n  List.prototype.indexOfName = function (name) {\n    for (var i = 0, len = this.count(); i < len; i++) {\n      if (this.getName(i) === name) {\n        return i;\n      }\n    }\n\n    return -1;\n  };\n\n  List.prototype.indexOfRawIndex = function (rawIndex) {\n    if (rawIndex >= this._rawCount || rawIndex < 0) {\n      return -1;\n    }\n\n    if (!this._indices) {\n      return rawIndex;\n    }\n\n    var indices = this._indices;\n    var rawDataIndex = indices[rawIndex];\n\n    if (rawDataIndex != null && rawDataIndex < this._count && rawDataIndex === rawIndex) {\n      return rawIndex;\n    }\n\n    var left = 0;\n    var right = this._count - 1;\n\n    while (left <= right) {\n      var mid = (left + right) / 2 | 0;\n\n      if (indices[mid] < rawIndex) {\n        left = mid + 1;\n      } else if (indices[mid] > rawIndex) {\n        right = mid - 1;\n      } else {\n        return mid;\n      }\n    }\n\n    return -1;\n  };\n\n  List.prototype.indicesOfNearest = function (dim, value, maxDistance) {\n    var storage = this._storage;\n    var dimData = storage[dim];\n    var nearestIndices = [];\n\n    if (!dimData) {\n      return nearestIndices;\n    }\n\n    if (maxDistance == null) {\n      maxDistance = Infinity;\n    }\n\n    var minDist = Infinity;\n    var minDiff = -1;\n    var nearestIndicesLen = 0;\n\n    for (var i = 0, len = this.count(); i < len; i++) {\n      var dataIndex = this.getRawIndex(i);\n      var diff = value - dimData[dataIndex];\n      var dist = Math.abs(diff);\n\n      if (dist <= maxDistance) {\n        if (dist < minDist || dist === minDist && diff >= 0 && minDiff < 0) {\n          minDist = dist;\n          minDiff = diff;\n          nearestIndicesLen = 0;\n        }\n\n        if (diff === minDiff) {\n          nearestIndices[nearestIndicesLen++] = i;\n        }\n      }\n    }\n\n    nearestIndices.length = nearestIndicesLen;\n    return nearestIndices;\n  };\n\n  List.prototype.getRawDataItem = function (idx) {\n    if (!this._rawData.persistent) {\n      var val = [];\n\n      for (var i = 0; i < this.dimensions.length; i++) {\n        var dim = this.dimensions[i];\n        val.push(this.get(dim, idx));\n      }\n\n      return val;\n    } else {\n      return this._rawData.getItem(this.getRawIndex(idx));\n    }\n  };\n\n  List.prototype.getName = function (idx) {\n    var rawIndex = this.getRawIndex(idx);\n    var name = this._nameList[rawIndex];\n\n    if (name == null && this._nameDimIdx != null) {\n      name = getIdNameFromStore(this, this._nameDimIdx, this._nameOrdinalMeta, rawIndex);\n    }\n\n    if (name == null) {\n      name = '';\n    }\n\n    return name;\n  };\n\n  List.prototype.getId = function (idx) {\n    return getId(this, this.getRawIndex(idx));\n  };\n\n  List.prototype.each = function (dims, cb, ctx, ctxCompat) {\n    'use strict';\n\n    var _this = this;\n\n    if (!this._count) {\n      return;\n    }\n\n    if (typeof dims === 'function') {\n      ctxCompat = ctx;\n      ctx = cb;\n      cb = dims;\n      dims = [];\n    }\n\n    var fCtx = ctx || ctxCompat || this;\n    var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\n\n    if (process.env.NODE_ENV !== 'production') {\n      validateDimensions(this, dimNames);\n    }\n\n    var dimSize = dimNames.length;\n    var dimIndices = map(dimNames, function (dimName) {\n      return _this._dimensionInfos[dimName].index;\n    });\n    var storageArr = this._storageArr;\n\n    for (var i = 0, len = this.count(); i < len; i++) {\n      var rawIdx = this.getRawIndex(i);\n\n      switch (dimSize) {\n        case 0:\n          cb.call(fCtx, i);\n          break;\n\n        case 1:\n          cb.call(fCtx, storageArr[dimIndices[0]][rawIdx], i);\n          break;\n\n        case 2:\n          cb.call(fCtx, storageArr[dimIndices[0]][rawIdx], storageArr[dimIndices[1]][rawIdx], i);\n          break;\n\n        default:\n          var k = 0;\n          var value = [];\n\n          for (; k < dimSize; k++) {\n            value[k] = storageArr[dimIndices[k]][rawIdx];\n          }\n\n          value[k] = i;\n          cb.apply(fCtx, value);\n      }\n    }\n  };\n\n  List.prototype.filterSelf = function (dims, cb, ctx, ctxCompat) {\n    'use strict';\n\n    var _this = this;\n\n    if (!this._count) {\n      return;\n    }\n\n    if (typeof dims === 'function') {\n      ctxCompat = ctx;\n      ctx = cb;\n      cb = dims;\n      dims = [];\n    }\n\n    var fCtx = ctx || ctxCompat || this;\n    var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\n\n    if (process.env.NODE_ENV !== 'production') {\n      validateDimensions(this, dimNames);\n    }\n\n    var count = this.count();\n    var Ctor = getIndicesCtor(this);\n    var newIndices = new Ctor(count);\n    var value = [];\n    var dimSize = dimNames.length;\n    var offset = 0;\n    var dimIndices = map(dimNames, function (dimName) {\n      return _this._dimensionInfos[dimName].index;\n    });\n    var dim0 = dimIndices[0];\n    var storageArr = this._storageArr;\n\n    for (var i = 0; i < count; i++) {\n      var keep = void 0;\n      var rawIdx = this.getRawIndex(i);\n\n      if (dimSize === 0) {\n        keep = cb.call(fCtx, i);\n      } else if (dimSize === 1) {\n        var val = storageArr[dim0][rawIdx];\n        keep = cb.call(fCtx, val, i);\n      } else {\n        var k = 0;\n\n        for (; k < dimSize; k++) {\n          value[k] = storageArr[dimIndices[k]][rawIdx];\n        }\n\n        value[k] = i;\n        keep = cb.apply(fCtx, value);\n      }\n\n      if (keep) {\n        newIndices[offset++] = rawIdx;\n      }\n    }\n\n    if (offset < count) {\n      this._indices = newIndices;\n    }\n\n    this._count = offset;\n    this._extent = {};\n    this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n    return this;\n  };\n\n  List.prototype.selectRange = function (range) {\n    'use strict';\n\n    var _this = this;\n\n    var len = this._count;\n\n    if (!len) {\n      return;\n    }\n\n    var dimensions = [];\n\n    for (var dim in range) {\n      if (range.hasOwnProperty(dim)) {\n        dimensions.push(dim);\n      }\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      validateDimensions(this, dimensions);\n    }\n\n    var dimSize = dimensions.length;\n\n    if (!dimSize) {\n      return;\n    }\n\n    var originalCount = this.count();\n    var Ctor = getIndicesCtor(this);\n    var newIndices = new Ctor(originalCount);\n    var offset = 0;\n    var dim0 = dimensions[0];\n    var dimIndices = map(dimensions, function (dimName) {\n      return _this._dimensionInfos[dimName].index;\n    });\n    var min = range[dim0][0];\n    var max = range[dim0][1];\n    var storageArr = this._storageArr;\n    var quickFinished = false;\n\n    if (!this._indices) {\n      var idx = 0;\n\n      if (dimSize === 1) {\n        var dimStorage = storageArr[dimIndices[0]];\n\n        for (var i = 0; i < len; i++) {\n          var val = dimStorage[i];\n\n          if (val >= min && val <= max || isNaN(val)) {\n            newIndices[offset++] = idx;\n          }\n\n          idx++;\n        }\n\n        quickFinished = true;\n      } else if (dimSize === 2) {\n        var dimStorage = storageArr[dimIndices[0]];\n        var dimStorage2 = storageArr[dimIndices[1]];\n        var min2 = range[dimensions[1]][0];\n        var max2 = range[dimensions[1]][1];\n\n        for (var i = 0; i < len; i++) {\n          var val = dimStorage[i];\n          var val2 = dimStorage2[i];\n\n          if ((val >= min && val <= max || isNaN(val)) && (val2 >= min2 && val2 <= max2 || isNaN(val2))) {\n            newIndices[offset++] = idx;\n          }\n\n          idx++;\n        }\n\n        quickFinished = true;\n      }\n    }\n\n    if (!quickFinished) {\n      if (dimSize === 1) {\n        for (var i = 0; i < originalCount; i++) {\n          var rawIndex = this.getRawIndex(i);\n          var val = storageArr[dimIndices[0]][rawIndex];\n\n          if (val >= min && val <= max || isNaN(val)) {\n            newIndices[offset++] = rawIndex;\n          }\n        }\n      } else {\n        for (var i = 0; i < originalCount; i++) {\n          var keep = true;\n          var rawIndex = this.getRawIndex(i);\n\n          for (var k = 0; k < dimSize; k++) {\n            var dimk = dimensions[k];\n            var val = storageArr[dimIndices[k]][rawIndex];\n\n            if (val < range[dimk][0] || val > range[dimk][1]) {\n              keep = false;\n            }\n          }\n\n          if (keep) {\n            newIndices[offset++] = this.getRawIndex(i);\n          }\n        }\n      }\n    }\n\n    if (offset < originalCount) {\n      this._indices = newIndices;\n    }\n\n    this._count = offset;\n    this._extent = {};\n    this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n    return this;\n  };\n\n  List.prototype.mapArray = function (dims, cb, ctx, ctxCompat) {\n    'use strict';\n\n    if (typeof dims === 'function') {\n      ctxCompat = ctx;\n      ctx = cb;\n      cb = dims;\n      dims = [];\n    }\n\n    ctx = ctx || ctxCompat || this;\n    var result = [];\n    this.each(dims, function () {\n      result.push(cb && cb.apply(this, arguments));\n    }, ctx);\n    return result;\n  };\n\n  List.prototype.map = function (dims, cb, ctx, ctxCompat) {\n    'use strict';\n\n    var fCtx = ctx || ctxCompat || this;\n    var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\n\n    if (process.env.NODE_ENV !== 'production') {\n      validateDimensions(this, dimNames);\n    }\n\n    var list = cloneListForMapAndSample(this, dimNames);\n    var storage = list._storage;\n    list._indices = this._indices;\n    list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n    var tmpRetValue = [];\n    var dimSize = dimNames.length;\n    var dataCount = this.count();\n    var values = [];\n    var rawExtent = list._rawExtent;\n\n    for (var dataIndex = 0; dataIndex < dataCount; dataIndex++) {\n      for (var dimIndex = 0; dimIndex < dimSize; dimIndex++) {\n        values[dimIndex] = this.get(dimNames[dimIndex], dataIndex);\n      }\n\n      values[dimSize] = dataIndex;\n      var retValue = cb && cb.apply(fCtx, values);\n\n      if (retValue != null) {\n        if (typeof retValue !== 'object') {\n          tmpRetValue[0] = retValue;\n          retValue = tmpRetValue;\n        }\n\n        var rawIndex = this.getRawIndex(dataIndex);\n\n        for (var i = 0; i < retValue.length; i++) {\n          var dim = dimNames[i];\n          var val = retValue[i];\n          var rawExtentOnDim = rawExtent[dim];\n          var dimStore = storage[dim];\n\n          if (dimStore) {\n            dimStore[rawIndex] = val;\n          }\n\n          if (val < rawExtentOnDim[0]) {\n            rawExtentOnDim[0] = val;\n          }\n\n          if (val > rawExtentOnDim[1]) {\n            rawExtentOnDim[1] = val;\n          }\n        }\n      }\n    }\n\n    return list;\n  };\n\n  List.prototype.downSample = function (dimension, rate, sampleValue, sampleIndex) {\n    var list = cloneListForMapAndSample(this, [dimension]);\n    var targetStorage = list._storage;\n    var frameValues = [];\n    var frameSize = mathFloor(1 / rate);\n    var dimStore = targetStorage[dimension];\n    var len = this.count();\n    var rawExtentOnDim = list._rawExtent[dimension];\n    var newIndices = new (getIndicesCtor(this))(len);\n    var offset = 0;\n\n    for (var i = 0; i < len; i += frameSize) {\n      if (frameSize > len - i) {\n        frameSize = len - i;\n        frameValues.length = frameSize;\n      }\n\n      for (var k = 0; k < frameSize; k++) {\n        var dataIdx = this.getRawIndex(i + k);\n        frameValues[k] = dimStore[dataIdx];\n      }\n\n      var value = sampleValue(frameValues);\n      var sampleFrameIdx = this.getRawIndex(Math.min(i + sampleIndex(frameValues, value) || 0, len - 1));\n      dimStore[sampleFrameIdx] = value;\n\n      if (value < rawExtentOnDim[0]) {\n        rawExtentOnDim[0] = value;\n      }\n\n      if (value > rawExtentOnDim[1]) {\n        rawExtentOnDim[1] = value;\n      }\n\n      newIndices[offset++] = sampleFrameIdx;\n    }\n\n    list._count = offset;\n    list._indices = newIndices;\n    list.getRawIndex = getRawIndexWithIndices;\n    return list;\n  };\n\n  List.prototype.lttbDownSample = function (valueDimension, rate) {\n    var list = cloneListForMapAndSample(this, []);\n    var targetStorage = list._storage;\n    var dimStore = targetStorage[valueDimension];\n    var len = this.count();\n    var newIndices = new (getIndicesCtor(this))(len);\n    var sampledIndex = 0;\n    var frameSize = mathFloor(1 / rate);\n    var currentRawIndex = this.getRawIndex(0);\n    var maxArea;\n    var area;\n    var nextRawIndex;\n    newIndices[sampledIndex++] = currentRawIndex;\n\n    for (var i = 1; i < len - 1; i += frameSize) {\n      var nextFrameStart = Math.min(i + frameSize, len - 1);\n      var nextFrameEnd = Math.min(i + frameSize * 2, len);\n      var avgX = (nextFrameEnd + nextFrameStart) / 2;\n      var avgY = 0;\n\n      for (var idx = nextFrameStart; idx < nextFrameEnd; idx++) {\n        var rawIndex = this.getRawIndex(idx);\n        var y = dimStore[rawIndex];\n\n        if (isNaN(y)) {\n          continue;\n        }\n\n        avgY += y;\n      }\n\n      avgY /= nextFrameEnd - nextFrameStart;\n      var frameStart = i;\n      var frameEnd = Math.min(i + frameSize, len);\n      var pointAX = i - 1;\n      var pointAY = dimStore[currentRawIndex];\n      maxArea = -1;\n      nextRawIndex = frameStart;\n\n      for (var idx = frameStart; idx < frameEnd; idx++) {\n        var rawIndex = this.getRawIndex(idx);\n        var y = dimStore[rawIndex];\n\n        if (isNaN(y)) {\n          continue;\n        }\n\n        area = Math.abs((pointAX - avgX) * (y - pointAY) - (pointAX - idx) * (avgY - pointAY));\n\n        if (area > maxArea) {\n          maxArea = area;\n          nextRawIndex = rawIndex;\n        }\n      }\n\n      newIndices[sampledIndex++] = nextRawIndex;\n      currentRawIndex = nextRawIndex;\n    }\n\n    newIndices[sampledIndex++] = this.getRawIndex(len - 1);\n    list._count = sampledIndex;\n    list._indices = newIndices;\n    list.getRawIndex = getRawIndexWithIndices;\n    return list;\n  };\n\n  List.prototype.getItemModel = function (idx) {\n    var hostModel = this.hostModel;\n    var dataItem = this.getRawDataItem(idx);\n    return new Model(dataItem, hostModel, hostModel && hostModel.ecModel);\n  };\n\n  List.prototype.diff = function (otherList) {\n    var thisList = this;\n    return new DataDiffer(otherList ? otherList.getIndices() : [], this.getIndices(), function (idx) {\n      return getId(otherList, idx);\n    }, function (idx) {\n      return getId(thisList, idx);\n    });\n  };\n\n  List.prototype.getVisual = function (key) {\n    var visual = this._visual;\n    return visual && visual[key];\n  };\n\n  List.prototype.setVisual = function (kvObj, val) {\n    this._visual = this._visual || {};\n\n    if (isObject(kvObj)) {\n      zrUtil.extend(this._visual, kvObj);\n    } else {\n      this._visual[kvObj] = val;\n    }\n  };\n\n  List.prototype.getItemVisual = function (idx, key) {\n    var itemVisual = this._itemVisuals[idx];\n    var val = itemVisual && itemVisual[key];\n\n    if (val == null) {\n      return this.getVisual(key);\n    }\n\n    return val;\n  };\n\n  List.prototype.hasItemVisual = function () {\n    return this._itemVisuals.length > 0;\n  };\n\n  List.prototype.ensureUniqueItemVisual = function (idx, key) {\n    var itemVisuals = this._itemVisuals;\n    var itemVisual = itemVisuals[idx];\n\n    if (!itemVisual) {\n      itemVisual = itemVisuals[idx] = {};\n    }\n\n    var val = itemVisual[key];\n\n    if (val == null) {\n      val = this.getVisual(key);\n\n      if (zrUtil.isArray(val)) {\n        val = val.slice();\n      } else if (isObject(val)) {\n        val = zrUtil.extend({}, val);\n      }\n\n      itemVisual[key] = val;\n    }\n\n    return val;\n  };\n\n  List.prototype.setItemVisual = function (idx, key, value) {\n    var itemVisual = this._itemVisuals[idx] || {};\n    this._itemVisuals[idx] = itemVisual;\n\n    if (isObject(key)) {\n      zrUtil.extend(itemVisual, key);\n    } else {\n      itemVisual[key] = value;\n    }\n  };\n\n  List.prototype.clearAllVisual = function () {\n    this._visual = {};\n    this._itemVisuals = [];\n  };\n\n  List.prototype.setLayout = function (key, val) {\n    if (isObject(key)) {\n      for (var name_1 in key) {\n        if (key.hasOwnProperty(name_1)) {\n          this.setLayout(name_1, key[name_1]);\n        }\n      }\n\n      return;\n    }\n\n    this._layout[key] = val;\n  };\n\n  List.prototype.getLayout = function (key) {\n    return this._layout[key];\n  };\n\n  List.prototype.getItemLayout = function (idx) {\n    return this._itemLayouts[idx];\n  };\n\n  List.prototype.setItemLayout = function (idx, layout, merge) {\n    this._itemLayouts[idx] = merge ? zrUtil.extend(this._itemLayouts[idx] || {}, layout) : layout;\n  };\n\n  List.prototype.clearItemLayouts = function () {\n    this._itemLayouts.length = 0;\n  };\n\n  List.prototype.setItemGraphicEl = function (idx, el) {\n    var hostModel = this.hostModel;\n\n    if (el) {\n      var ecData = getECData(el);\n      ecData.dataIndex = idx;\n      ecData.dataType = this.dataType;\n      ecData.seriesIndex = hostModel && hostModel.seriesIndex;\n\n      if (el.type === 'group') {\n        el.traverse(setItemDataAndSeriesIndex, el);\n      }\n    }\n\n    this._graphicEls[idx] = el;\n  };\n\n  List.prototype.getItemGraphicEl = function (idx) {\n    return this._graphicEls[idx];\n  };\n\n  List.prototype.eachItemGraphicEl = function (cb, context) {\n    zrUtil.each(this._graphicEls, function (el, idx) {\n      if (el) {\n        cb && cb.call(context, el, idx);\n      }\n    });\n  };\n\n  List.prototype.cloneShallow = function (list) {\n    if (!list) {\n      var dimensionInfoList = map(this.dimensions, this.getDimensionInfo, this);\n      list = new List(dimensionInfoList, this.hostModel);\n    }\n\n    list._storage = this._storage;\n    list._storageArr = this._storageArr;\n    transferProperties(list, this);\n\n    if (this._indices) {\n      var Ctor = this._indices.constructor;\n\n      if (Ctor === Array) {\n        var thisCount = this._indices.length;\n        list._indices = new Ctor(thisCount);\n\n        for (var i = 0; i < thisCount; i++) {\n          list._indices[i] = this._indices[i];\n        }\n      } else {\n        list._indices = new Ctor(this._indices);\n      }\n    } else {\n      list._indices = null;\n    }\n\n    list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n    return list;\n  };\n\n  List.prototype.wrapMethod = function (methodName, injectFunction) {\n    var originalMethod = this[methodName];\n\n    if (typeof originalMethod !== 'function') {\n      return;\n    }\n\n    this.__wrappedMethods = this.__wrappedMethods || [];\n\n    this.__wrappedMethods.push(methodName);\n\n    this[methodName] = function () {\n      var res = originalMethod.apply(this, arguments);\n      return injectFunction.apply(this, [res].concat(zrUtil.slice(arguments)));\n    };\n  };\n\n  List.internalField = function () {\n    defaultDimValueGetters = {\n      arrayRows: getDimValueSimply,\n      objectRows: function (dataItem, dimName, dataIndex, dimIndex) {\n        return parseDataValue(dataItem[dimName], this._dimensionInfos[dimName]);\n      },\n      keyedColumns: getDimValueSimply,\n      original: function (dataItem, dimName, dataIndex, dimIndex) {\n        var value = dataItem && (dataItem.value == null ? dataItem : dataItem.value);\n\n        if (!this._rawData.pure && isDataItemOption(dataItem)) {\n          this.hasItemOption = true;\n        }\n\n        return parseDataValue(value instanceof Array ? value[dimIndex] : value, this._dimensionInfos[dimName]);\n      },\n      typedArray: function (dataItem, dimName, dataIndex, dimIndex) {\n        return dataItem[dimIndex];\n      }\n    };\n\n    function getDimValueSimply(dataItem, dimName, dataIndex, dimIndex) {\n      return parseDataValue(dataItem[dimIndex], this._dimensionInfos[dimName]);\n    }\n\n    prepareInvertedIndex = function (list) {\n      var invertedIndicesMap = list._invertedIndicesMap;\n      zrUtil.each(invertedIndicesMap, function (invertedIndices, dim) {\n        var dimInfo = list._dimensionInfos[dim];\n        var ordinalMeta = dimInfo.ordinalMeta;\n\n        if (ordinalMeta) {\n          invertedIndices = invertedIndicesMap[dim] = new CtorInt32Array(ordinalMeta.categories.length);\n\n          for (var i = 0; i < invertedIndices.length; i++) {\n            invertedIndices[i] = INDEX_NOT_FOUND;\n          }\n\n          for (var i = 0; i < list._count; i++) {\n            invertedIndices[list.get(dim, i)] = i;\n          }\n        }\n      });\n    };\n\n    getIdNameFromStore = function (list, dimIdx, ordinalMeta, rawIndex) {\n      var val;\n      var chunk = list._storageArr[dimIdx];\n\n      if (chunk) {\n        val = chunk[rawIndex];\n\n        if (ordinalMeta && ordinalMeta.categories.length) {\n          val = ordinalMeta.categories[val];\n        }\n      }\n\n      return convertOptionIdName(val, null);\n    };\n\n    getIndicesCtor = function (list) {\n      return list._rawCount > 65535 ? CtorUint32Array : CtorUint16Array;\n    };\n\n    prepareStorage = function (storage, dimInfo, end, append) {\n      var DataCtor = dataCtors[dimInfo.type];\n      var dim = dimInfo.name;\n\n      if (append) {\n        var oldStore = storage[dim];\n        var oldLen = oldStore && oldStore.length;\n\n        if (!(oldLen === end)) {\n          var newStore = new DataCtor(end);\n\n          for (var j = 0; j < oldLen; j++) {\n            newStore[j] = oldStore[j];\n          }\n\n          storage[dim] = newStore;\n        }\n      } else {\n        storage[dim] = new DataCtor(end);\n      }\n    };\n\n    getRawIndexWithoutIndices = function (idx) {\n      return idx;\n    };\n\n    getRawIndexWithIndices = function (idx) {\n      if (idx < this._count && idx >= 0) {\n        return this._indices[idx];\n      }\n\n      return -1;\n    };\n\n    getId = function (list, rawIndex) {\n      var id = list._idList[rawIndex];\n\n      if (id == null && list._idDimIdx != null) {\n        id = getIdNameFromStore(list, list._idDimIdx, list._idOrdinalMeta, rawIndex);\n      }\n\n      if (id == null) {\n        id = ID_PREFIX + rawIndex;\n      }\n\n      return id;\n    };\n\n    normalizeDimensions = function (dimensions) {\n      if (!zrUtil.isArray(dimensions)) {\n        dimensions = dimensions != null ? [dimensions] : [];\n      }\n\n      return dimensions;\n    };\n\n    validateDimensions = function (list, dims) {\n      for (var i = 0; i < dims.length; i++) {\n        if (!list._dimensionInfos[dims[i]]) {\n          console.error('Unkown dimension ' + dims[i]);\n        }\n      }\n    };\n\n    cloneListForMapAndSample = function (original, excludeDimensions) {\n      var allDimensions = original.dimensions;\n      var list = new List(map(allDimensions, original.getDimensionInfo, original), original.hostModel);\n      transferProperties(list, original);\n      var storage = list._storage = {};\n      var originalStorage = original._storage;\n      var storageArr = list._storageArr = [];\n\n      for (var i = 0; i < allDimensions.length; i++) {\n        var dim = allDimensions[i];\n\n        if (originalStorage[dim]) {\n          if (zrUtil.indexOf(excludeDimensions, dim) >= 0) {\n            storage[dim] = cloneChunk(originalStorage[dim]);\n            list._rawExtent[dim] = getInitialExtent();\n            list._extent[dim] = null;\n          } else {\n            storage[dim] = originalStorage[dim];\n          }\n\n          storageArr.push(storage[dim]);\n        }\n      }\n\n      return list;\n    };\n\n    function cloneChunk(originalChunk) {\n      var Ctor = originalChunk.constructor;\n      return Ctor === Array ? originalChunk.slice() : new Ctor(originalChunk);\n    }\n\n    getInitialExtent = function () {\n      return [Infinity, -Infinity];\n    };\n\n    setItemDataAndSeriesIndex = function (child) {\n      var childECData = getECData(child);\n      var thisECData = getECData(this);\n      childECData.seriesIndex = thisECData.seriesIndex;\n      childECData.dataIndex = thisECData.dataIndex;\n      childECData.dataType = thisECData.dataType;\n    };\n\n    transferProperties = function (target, source) {\n      zrUtil.each(TRANSFERABLE_PROPERTIES.concat(source.__wrappedMethods || []), function (propName) {\n        if (source.hasOwnProperty(propName)) {\n          target[propName] = source[propName];\n        }\n      });\n      target.__wrappedMethods = source.__wrappedMethods;\n      zrUtil.each(CLONE_PROPERTIES, function (propName) {\n        target[propName] = zrUtil.clone(source[propName]);\n      });\n      target._calculationInfo = zrUtil.extend({}, source._calculationInfo);\n    };\n\n    makeIdFromName = function (list, idx) {\n      var nameList = list._nameList;\n      var idList = list._idList;\n      var nameDimIdx = list._nameDimIdx;\n      var idDimIdx = list._idDimIdx;\n      var name = nameList[idx];\n      var id = idList[idx];\n\n      if (name == null && nameDimIdx != null) {\n        nameList[idx] = name = getIdNameFromStore(list, nameDimIdx, list._nameOrdinalMeta, idx);\n      }\n\n      if (id == null && idDimIdx != null) {\n        idList[idx] = id = getIdNameFromStore(list, idDimIdx, list._idOrdinalMeta, idx);\n      }\n\n      if (id == null && name != null) {\n        var nameRepeatCount = list._nameRepeatCount;\n        var nmCnt = nameRepeatCount[name] = (nameRepeatCount[name] || 0) + 1;\n        id = name;\n\n        if (nmCnt > 1) {\n          id += '__ec__' + nmCnt;\n        }\n\n        idList[idx] = id;\n      }\n    };\n  }();\n\n  return List;\n}();\n\nexport default List;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, each, isString, defaults, extend, isObject, clone } from 'zrender/lib/core/util';\nimport { normalizeToArray } from '../../util/model';\nimport { guessOrdinal, BE_ORDINAL } from './sourceHelper';\nimport { createSourceFromSeriesDataOption, isSourceInstance } from '../Source';\nimport { VISUAL_DIMENSIONS } from '../../util/types';\nimport DataDimensionInfo from '../DataDimensionInfo';\n\nfunction completeDimensions(sysDims, source, opt) {\n  if (!isSourceInstance(source)) {\n    source = createSourceFromSeriesDataOption(source);\n  }\n\n  opt = opt || {};\n  sysDims = (sysDims || []).slice();\n  var dimsDef = (opt.dimsDef || []).slice();\n  var dataDimNameMap = createHashMap();\n  var coordDimNameMap = createHashMap();\n  var result = [];\n  var dimCount = getDimCount(source, sysDims, dimsDef, opt.dimCount);\n\n  for (var i = 0; i < dimCount; i++) {\n    var dimDefItemRaw = dimsDef[i];\n    var dimDefItem = dimsDef[i] = extend({}, isObject(dimDefItemRaw) ? dimDefItemRaw : {\n      name: dimDefItemRaw\n    });\n    var userDimName = dimDefItem.name;\n    var resultItem = result[i] = new DataDimensionInfo();\n\n    if (userDimName != null && dataDimNameMap.get(userDimName) == null) {\n      resultItem.name = resultItem.displayName = userDimName;\n      dataDimNameMap.set(userDimName, i);\n    }\n\n    dimDefItem.type != null && (resultItem.type = dimDefItem.type);\n    dimDefItem.displayName != null && (resultItem.displayName = dimDefItem.displayName);\n  }\n\n  var encodeDef = opt.encodeDef;\n\n  if (!encodeDef && opt.encodeDefaulter) {\n    encodeDef = opt.encodeDefaulter(source, dimCount);\n  }\n\n  var encodeDefMap = createHashMap(encodeDef);\n  encodeDefMap.each(function (dataDimsRaw, coordDim) {\n    var dataDims = normalizeToArray(dataDimsRaw).slice();\n\n    if (dataDims.length === 1 && !isString(dataDims[0]) && dataDims[0] < 0) {\n      encodeDefMap.set(coordDim, false);\n      return;\n    }\n\n    var validDataDims = encodeDefMap.set(coordDim, []);\n    each(dataDims, function (resultDimIdxOrName, idx) {\n      var resultDimIdx = isString(resultDimIdxOrName) ? dataDimNameMap.get(resultDimIdxOrName) : resultDimIdxOrName;\n\n      if (resultDimIdx != null && resultDimIdx < dimCount) {\n        validDataDims[idx] = resultDimIdx;\n        applyDim(result[resultDimIdx], coordDim, idx);\n      }\n    });\n  });\n  var availDimIdx = 0;\n  each(sysDims, function (sysDimItemRaw) {\n    var coordDim;\n    var sysDimItemDimsDef;\n    var sysDimItemOtherDims;\n    var sysDimItem;\n\n    if (isString(sysDimItemRaw)) {\n      coordDim = sysDimItemRaw;\n      sysDimItem = {};\n    } else {\n      sysDimItem = sysDimItemRaw;\n      coordDim = sysDimItem.name;\n      var ordinalMeta = sysDimItem.ordinalMeta;\n      sysDimItem.ordinalMeta = null;\n      sysDimItem = clone(sysDimItem);\n      sysDimItem.ordinalMeta = ordinalMeta;\n      sysDimItemDimsDef = sysDimItem.dimsDef;\n      sysDimItemOtherDims = sysDimItem.otherDims;\n      sysDimItem.name = sysDimItem.coordDim = sysDimItem.coordDimIndex = sysDimItem.dimsDef = sysDimItem.otherDims = null;\n    }\n\n    var dataDims = encodeDefMap.get(coordDim);\n\n    if (dataDims === false) {\n      return;\n    }\n\n    dataDims = normalizeToArray(dataDims);\n\n    if (!dataDims.length) {\n      for (var i = 0; i < (sysDimItemDimsDef && sysDimItemDimsDef.length || 1); i++) {\n        while (availDimIdx < result.length && result[availDimIdx].coordDim != null) {\n          availDimIdx++;\n        }\n\n        availDimIdx < result.length && dataDims.push(availDimIdx++);\n      }\n    }\n\n    each(dataDims, function (resultDimIdx, coordDimIndex) {\n      var resultItem = result[resultDimIdx];\n      applyDim(defaults(resultItem, sysDimItem), coordDim, coordDimIndex);\n\n      if (resultItem.name == null && sysDimItemDimsDef) {\n        var sysDimItemDimsDefItem = sysDimItemDimsDef[coordDimIndex];\n        !isObject(sysDimItemDimsDefItem) && (sysDimItemDimsDefItem = {\n          name: sysDimItemDimsDefItem\n        });\n        resultItem.name = resultItem.displayName = sysDimItemDimsDefItem.name;\n        resultItem.defaultTooltip = sysDimItemDimsDefItem.defaultTooltip;\n      }\n\n      sysDimItemOtherDims && defaults(resultItem.otherDims, sysDimItemOtherDims);\n    });\n  });\n\n  function applyDim(resultItem, coordDim, coordDimIndex) {\n    if (VISUAL_DIMENSIONS.get(coordDim) != null) {\n      resultItem.otherDims[coordDim] = coordDimIndex;\n    } else {\n      resultItem.coordDim = coordDim;\n      resultItem.coordDimIndex = coordDimIndex;\n      coordDimNameMap.set(coordDim, true);\n    }\n  }\n\n  var generateCoord = opt.generateCoord;\n  var generateCoordCount = opt.generateCoordCount;\n  var fromZero = generateCoordCount != null;\n  generateCoordCount = generateCoord ? generateCoordCount || 1 : 0;\n  var extra = generateCoord || 'value';\n\n  for (var resultDimIdx = 0; resultDimIdx < dimCount; resultDimIdx++) {\n    var resultItem = result[resultDimIdx] = result[resultDimIdx] || new DataDimensionInfo();\n    var coordDim = resultItem.coordDim;\n\n    if (coordDim == null) {\n      resultItem.coordDim = genName(extra, coordDimNameMap, fromZero);\n      resultItem.coordDimIndex = 0;\n\n      if (!generateCoord || generateCoordCount <= 0) {\n        resultItem.isExtraCoord = true;\n      }\n\n      generateCoordCount--;\n    }\n\n    resultItem.name == null && (resultItem.name = genName(resultItem.coordDim, dataDimNameMap, false));\n\n    if (resultItem.type == null && (guessOrdinal(source, resultDimIdx) === BE_ORDINAL.Must || resultItem.isExtraCoord && (resultItem.otherDims.itemName != null || resultItem.otherDims.seriesName != null))) {\n      resultItem.type = 'ordinal';\n    }\n  }\n\n  return result;\n}\n\nfunction getDimCount(source, sysDims, dimsDef, optDimCount) {\n  var dimCount = Math.max(source.dimensionsDetectedCount || 1, sysDims.length, dimsDef.length, optDimCount || 0);\n  each(sysDims, function (sysDimItem) {\n    var sysDimItemDimsDef;\n\n    if (isObject(sysDimItem) && (sysDimItemDimsDef = sysDimItem.dimsDef)) {\n      dimCount = Math.max(dimCount, sysDimItemDimsDef.length);\n    }\n  });\n  return dimCount;\n}\n\nfunction genName(name, map, fromZero) {\n  if (fromZero || map.get(name) != null) {\n    var i = 0;\n\n    while (map.get(name + i) != null) {\n      i++;\n    }\n\n    name += i;\n  }\n\n  map.set(name, true);\n  return name;\n}\n\nexport default completeDimensions;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport completeDimensions from './completeDimensions';\nexport default function createDimensions(source, opt) {\n  opt = opt || {};\n  return completeDimensions(opt.coordDimensions || [], source, {\n    dimsDef: opt.dimensionsDefine || source.dimensionsDefine,\n    encodeDef: opt.encodeDefine || source.encodeDefine,\n    dimCount: opt.dimensionsCount,\n    encodeDefaulter: opt.encodeDefaulter,\n    generateCoord: opt.generateCoord,\n    generateCoordCount: opt.generateCoordCount\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, retrieve, each } from 'zrender/lib/core/util';\nimport { SINGLE_REFERRING } from '../util/model';\n\nvar CoordSysInfo = function () {\n  function CoordSysInfo(coordSysName) {\n    this.coordSysDims = [];\n    this.axisMap = createHashMap();\n    this.categoryAxisMap = createHashMap();\n    this.coordSysName = coordSysName;\n  }\n\n  return CoordSysInfo;\n}();\n\nexport function getCoordSysInfoBySeries(seriesModel) {\n  var coordSysName = seriesModel.get('coordinateSystem');\n  var result = new CoordSysInfo(coordSysName);\n  var fetch = fetchers[coordSysName];\n\n  if (fetch) {\n    fetch(seriesModel, result, result.axisMap, result.categoryAxisMap);\n    return result;\n  }\n}\nvar fetchers = {\n  cartesian2d: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var xAxisModel = seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0];\n    var yAxisModel = seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!xAxisModel) {\n        throw new Error('xAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('xAxisId'), 0) + '\" not found');\n      }\n\n      if (!yAxisModel) {\n        throw new Error('yAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('yAxisId'), 0) + '\" not found');\n      }\n    }\n\n    result.coordSysDims = ['x', 'y'];\n    axisMap.set('x', xAxisModel);\n    axisMap.set('y', yAxisModel);\n\n    if (isCategory(xAxisModel)) {\n      categoryAxisMap.set('x', xAxisModel);\n      result.firstCategoryDimIndex = 0;\n    }\n\n    if (isCategory(yAxisModel)) {\n      categoryAxisMap.set('y', yAxisModel);\n      result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\n    }\n  },\n  singleAxis: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var singleAxisModel = seriesModel.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!singleAxisModel) {\n        throw new Error('singleAxis should be specified.');\n      }\n    }\n\n    result.coordSysDims = ['single'];\n    axisMap.set('single', singleAxisModel);\n\n    if (isCategory(singleAxisModel)) {\n      categoryAxisMap.set('single', singleAxisModel);\n      result.firstCategoryDimIndex = 0;\n    }\n  },\n  polar: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var polarModel = seriesModel.getReferringComponents('polar', SINGLE_REFERRING).models[0];\n    var radiusAxisModel = polarModel.findAxisModel('radiusAxis');\n    var angleAxisModel = polarModel.findAxisModel('angleAxis');\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!angleAxisModel) {\n        throw new Error('angleAxis option not found');\n      }\n\n      if (!radiusAxisModel) {\n        throw new Error('radiusAxis option not found');\n      }\n    }\n\n    result.coordSysDims = ['radius', 'angle'];\n    axisMap.set('radius', radiusAxisModel);\n    axisMap.set('angle', angleAxisModel);\n\n    if (isCategory(radiusAxisModel)) {\n      categoryAxisMap.set('radius', radiusAxisModel);\n      result.firstCategoryDimIndex = 0;\n    }\n\n    if (isCategory(angleAxisModel)) {\n      categoryAxisMap.set('angle', angleAxisModel);\n      result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\n    }\n  },\n  geo: function (seriesModel, result, axisMap, categoryAxisMap) {\n    result.coordSysDims = ['lng', 'lat'];\n  },\n  parallel: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var ecModel = seriesModel.ecModel;\n    var parallelModel = ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\n    var coordSysDims = result.coordSysDims = parallelModel.dimensions.slice();\n    each(parallelModel.parallelAxisIndex, function (axisIndex, index) {\n      var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\n      var axisDim = coordSysDims[index];\n      axisMap.set(axisDim, axisModel);\n\n      if (isCategory(axisModel)) {\n        categoryAxisMap.set(axisDim, axisModel);\n\n        if (result.firstCategoryDimIndex == null) {\n          result.firstCategoryDimIndex = index;\n        }\n      }\n    });\n  }\n};\n\nfunction isCategory(axisModel) {\n  return axisModel.get('type') === 'category';\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, isString } from 'zrender/lib/core/util';\nexport function enableDataStack(seriesModel, dimensionInfoList, opt) {\n  opt = opt || {};\n  var byIndex = opt.byIndex;\n  var stackedCoordDimension = opt.stackedCoordDimension;\n  var mayStack = !!(seriesModel && seriesModel.get('stack'));\n  var stackedByDimInfo;\n  var stackedDimInfo;\n  var stackResultDimension;\n  var stackedOverDimension;\n  each(dimensionInfoList, function (dimensionInfo, index) {\n    if (isString(dimensionInfo)) {\n      dimensionInfoList[index] = dimensionInfo = {\n        name: dimensionInfo\n      };\n    }\n\n    if (mayStack && !dimensionInfo.isExtraCoord) {\n      if (!byIndex && !stackedByDimInfo && dimensionInfo.ordinalMeta) {\n        stackedByDimInfo = dimensionInfo;\n      }\n\n      if (!stackedDimInfo && dimensionInfo.type !== 'ordinal' && dimensionInfo.type !== 'time' && (!stackedCoordDimension || stackedCoordDimension === dimensionInfo.coordDim)) {\n        stackedDimInfo = dimensionInfo;\n      }\n    }\n  });\n\n  if (stackedDimInfo && !byIndex && !stackedByDimInfo) {\n    byIndex = true;\n  }\n\n  if (stackedDimInfo) {\n    stackResultDimension = '__\\0ecstackresult';\n    stackedOverDimension = '__\\0ecstackedover';\n\n    if (stackedByDimInfo) {\n      stackedByDimInfo.createInvertedIndices = true;\n    }\n\n    var stackedDimCoordDim_1 = stackedDimInfo.coordDim;\n    var stackedDimType = stackedDimInfo.type;\n    var stackedDimCoordIndex_1 = 0;\n    each(dimensionInfoList, function (dimensionInfo) {\n      if (dimensionInfo.coordDim === stackedDimCoordDim_1) {\n        stackedDimCoordIndex_1++;\n      }\n    });\n    dimensionInfoList.push({\n      name: stackResultDimension,\n      coordDim: stackedDimCoordDim_1,\n      coordDimIndex: stackedDimCoordIndex_1,\n      type: stackedDimType,\n      isExtraCoord: true,\n      isCalculationCoord: true\n    });\n    stackedDimCoordIndex_1++;\n    dimensionInfoList.push({\n      name: stackedOverDimension,\n      coordDim: stackedOverDimension,\n      coordDimIndex: stackedDimCoordIndex_1,\n      type: stackedDimType,\n      isExtraCoord: true,\n      isCalculationCoord: true\n    });\n  }\n\n  return {\n    stackedDimension: stackedDimInfo && stackedDimInfo.name,\n    stackedByDimension: stackedByDimInfo && stackedByDimInfo.name,\n    isStackedByIndex: byIndex,\n    stackedOverDimension: stackedOverDimension,\n    stackResultDimension: stackResultDimension\n  };\n}\nexport function isDimensionStacked(data, stackedDim) {\n  return !!stackedDim && stackedDim === data.getCalculationInfo('stackedDimension');\n}\nexport function getStackedDimension(data, targetDim) {\n  return isDimensionStacked(data, targetDim) ? data.getCalculationInfo('stackResultDimension') : targetDim;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport List from '../../data/List';\nimport createDimensions from '../../data/helper/createDimensions';\nimport { getDimensionTypeByAxis } from '../../data/helper/dimensionHelper';\nimport { getDataItemValue } from '../../util/model';\nimport CoordinateSystem from '../../core/CoordinateSystem';\nimport { getCoordSysInfoBySeries } from '../../model/referHelper';\nimport { createSourceFromSeriesDataOption, isSourceInstance } from '../../data/Source';\nimport { enableDataStack } from '../../data/helper/dataStackHelper';\nimport { makeSeriesEncodeForAxisCoordSys } from '../../data/helper/sourceHelper';\nimport { SOURCE_FORMAT_ORIGINAL } from '../../util/types';\n\nfunction createListFromArray(source, seriesModel, opt) {\n  opt = opt || {};\n\n  if (!isSourceInstance(source)) {\n    source = createSourceFromSeriesDataOption(source);\n  }\n\n  var coordSysName = seriesModel.get('coordinateSystem');\n  var registeredCoordSys = CoordinateSystem.get(coordSysName);\n  var coordSysInfo = getCoordSysInfoBySeries(seriesModel);\n  var coordSysDimDefs;\n\n  if (coordSysInfo && coordSysInfo.coordSysDims) {\n    coordSysDimDefs = zrUtil.map(coordSysInfo.coordSysDims, function (dim) {\n      var dimInfo = {\n        name: dim\n      };\n      var axisModel = coordSysInfo.axisMap.get(dim);\n\n      if (axisModel) {\n        var axisType = axisModel.get('type');\n        dimInfo.type = getDimensionTypeByAxis(axisType);\n      }\n\n      return dimInfo;\n    });\n  }\n\n  if (!coordSysDimDefs) {\n    coordSysDimDefs = registeredCoordSys && (registeredCoordSys.getDimensionsInfo ? registeredCoordSys.getDimensionsInfo() : registeredCoordSys.dimensions.slice()) || ['x', 'y'];\n  }\n\n  var useEncodeDefaulter = opt.useEncodeDefaulter;\n  var dimInfoList = createDimensions(source, {\n    coordDimensions: coordSysDimDefs,\n    generateCoord: opt.generateCoord,\n    encodeDefaulter: zrUtil.isFunction(useEncodeDefaulter) ? useEncodeDefaulter : useEncodeDefaulter ? zrUtil.curry(makeSeriesEncodeForAxisCoordSys, coordSysDimDefs, seriesModel) : null\n  });\n  var firstCategoryDimIndex;\n  var hasNameEncode;\n  coordSysInfo && zrUtil.each(dimInfoList, function (dimInfo, dimIndex) {\n    var coordDim = dimInfo.coordDim;\n    var categoryAxisModel = coordSysInfo.categoryAxisMap.get(coordDim);\n\n    if (categoryAxisModel) {\n      if (firstCategoryDimIndex == null) {\n        firstCategoryDimIndex = dimIndex;\n      }\n\n      dimInfo.ordinalMeta = categoryAxisModel.getOrdinalMeta();\n\n      if (opt.createInvertedIndices) {\n        dimInfo.createInvertedIndices = true;\n      }\n    }\n\n    if (dimInfo.otherDims.itemName != null) {\n      hasNameEncode = true;\n    }\n  });\n\n  if (!hasNameEncode && firstCategoryDimIndex != null) {\n    dimInfoList[firstCategoryDimIndex].otherDims.itemName = 0;\n  }\n\n  var stackCalculationInfo = enableDataStack(seriesModel, dimInfoList);\n  var list = new List(dimInfoList, seriesModel);\n  list.setCalculationInfo(stackCalculationInfo);\n  var dimValueGetter = firstCategoryDimIndex != null && isNeedCompleteOrdinalData(source) ? function (itemOpt, dimName, dataIndex, dimIndex) {\n    return dimIndex === firstCategoryDimIndex ? dataIndex : this.defaultDimValueGetter(itemOpt, dimName, dataIndex, dimIndex);\n  } : null;\n  list.hasItemOption = false;\n  list.initData(source, null, dimValueGetter);\n  return list;\n}\n\nfunction isNeedCompleteOrdinalData(source) {\n  if (source.sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n    var sampleItem = firstDataNotNull(source.data || []);\n    return sampleItem != null && !zrUtil.isArray(getDataItemValue(sampleItem));\n  }\n}\n\nfunction firstDataNotNull(data) {\n  var i = 0;\n\n  while (i < data.length && data[i] == null) {\n    i++;\n  }\n\n  return data[i];\n}\n\nexport default createListFromArray;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as clazzUtil from '../util/clazz';\n\nvar Scale = function () {\n  function Scale(setting) {\n    this._setting = setting || {};\n    this._extent = [Infinity, -Infinity];\n  }\n\n  Scale.prototype.getSetting = function (name) {\n    return this._setting[name];\n  };\n\n  Scale.prototype.unionExtent = function (other) {\n    var extent = this._extent;\n    other[0] < extent[0] && (extent[0] = other[0]);\n    other[1] > extent[1] && (extent[1] = other[1]);\n  };\n\n  Scale.prototype.unionExtentFromData = function (data, dim) {\n    this.unionExtent(data.getApproximateExtent(dim));\n  };\n\n  Scale.prototype.getExtent = function () {\n    return this._extent.slice();\n  };\n\n  Scale.prototype.setExtent = function (start, end) {\n    var thisExtent = this._extent;\n\n    if (!isNaN(start)) {\n      thisExtent[0] = start;\n    }\n\n    if (!isNaN(end)) {\n      thisExtent[1] = end;\n    }\n  };\n\n  Scale.prototype.isInExtentRange = function (value) {\n    return this._extent[0] <= value && this._extent[1] >= value;\n  };\n\n  Scale.prototype.isBlank = function () {\n    return this._isBlank;\n  };\n\n  Scale.prototype.setBlank = function (isBlank) {\n    this._isBlank = isBlank;\n  };\n\n  return Scale;\n}();\n\nclazzUtil.enableClassManagement(Scale);\nexport default Scale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, isObject, map } from 'zrender/lib/core/util';\n\nvar OrdinalMeta = function () {\n  function OrdinalMeta(opt) {\n    this.categories = opt.categories || [];\n    this._needCollect = opt.needCollect;\n    this._deduplication = opt.deduplication;\n  }\n\n  OrdinalMeta.createByAxisModel = function (axisModel) {\n    var option = axisModel.option;\n    var data = option.data;\n    var categories = data && map(data, getName);\n    return new OrdinalMeta({\n      categories: categories,\n      needCollect: !categories,\n      deduplication: option.dedplication !== false\n    });\n  };\n\n  ;\n\n  OrdinalMeta.prototype.getOrdinal = function (category) {\n    return this._getOrCreateMap().get(category);\n  };\n\n  OrdinalMeta.prototype.parseAndCollect = function (category) {\n    var index;\n    var needCollect = this._needCollect;\n\n    if (typeof category !== 'string' && !needCollect) {\n      return category;\n    }\n\n    if (needCollect && !this._deduplication) {\n      index = this.categories.length;\n      this.categories[index] = category;\n      return index;\n    }\n\n    var map = this._getOrCreateMap();\n\n    index = map.get(category);\n\n    if (index == null) {\n      if (needCollect) {\n        index = this.categories.length;\n        this.categories[index] = category;\n        map.set(category, index);\n      } else {\n        index = NaN;\n      }\n    }\n\n    return index;\n  };\n\n  OrdinalMeta.prototype._getOrCreateMap = function () {\n    return this._map || (this._map = createHashMap(this.categories));\n  };\n\n  return OrdinalMeta;\n}();\n\nfunction getName(obj) {\n  if (isObject(obj) && obj.value != null) {\n    return obj.value;\n  } else {\n    return obj + '';\n  }\n}\n\nexport default OrdinalMeta;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as numberUtil from '../util/number';\nvar roundNumber = numberUtil.round;\nexport function intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval) {\n  var result = {};\n  var span = extent[1] - extent[0];\n  var interval = result.interval = numberUtil.nice(span / splitNumber, true);\n\n  if (minInterval != null && interval < minInterval) {\n    interval = result.interval = minInterval;\n  }\n\n  if (maxInterval != null && interval > maxInterval) {\n    interval = result.interval = maxInterval;\n  }\n\n  var precision = result.intervalPrecision = getIntervalPrecision(interval);\n  var niceTickExtent = result.niceTickExtent = [roundNumber(Math.ceil(extent[0] / interval) * interval, precision), roundNumber(Math.floor(extent[1] / interval) * interval, precision)];\n  fixExtent(niceTickExtent, extent);\n  return result;\n}\nexport function getIntervalPrecision(interval) {\n  return numberUtil.getPrecisionSafe(interval) + 2;\n}\n\nfunction clamp(niceTickExtent, idx, extent) {\n  niceTickExtent[idx] = Math.max(Math.min(niceTickExtent[idx], extent[1]), extent[0]);\n}\n\nexport function fixExtent(niceTickExtent, extent) {\n  !isFinite(niceTickExtent[0]) && (niceTickExtent[0] = extent[0]);\n  !isFinite(niceTickExtent[1]) && (niceTickExtent[1] = extent[1]);\n  clamp(niceTickExtent, 0, extent);\n  clamp(niceTickExtent, 1, extent);\n\n  if (niceTickExtent[0] > niceTickExtent[1]) {\n    niceTickExtent[0] = niceTickExtent[1];\n  }\n}\nexport function contain(val, extent) {\n  return val >= extent[0] && val <= extent[1];\n}\nexport function normalize(val, extent) {\n  if (extent[1] === extent[0]) {\n    return 0.5;\n  }\n\n  return (val - extent[0]) / (extent[1] - extent[0]);\n}\nexport function scale(val, extent) {\n  return val * (extent[1] - extent[0]) + extent[0];\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Scale from './Scale';\nimport OrdinalMeta from '../data/OrdinalMeta';\nimport * as scaleHelper from './helper';\nimport { isArray, map, isObject } from 'zrender/lib/core/util';\n\nvar OrdinalScale = function (_super) {\n  __extends(OrdinalScale, _super);\n\n  function OrdinalScale(setting) {\n    var _this = _super.call(this, setting) || this;\n\n    _this.type = 'ordinal';\n\n    var ordinalMeta = _this.getSetting('ordinalMeta');\n\n    if (!ordinalMeta) {\n      ordinalMeta = new OrdinalMeta({});\n    }\n\n    if (isArray(ordinalMeta)) {\n      ordinalMeta = new OrdinalMeta({\n        categories: map(ordinalMeta, function (item) {\n          return isObject(item) ? item.value : item;\n        })\n      });\n    }\n\n    _this._ordinalMeta = ordinalMeta;\n    _this._extent = _this.getSetting('extent') || [0, ordinalMeta.categories.length - 1];\n    return _this;\n  }\n\n  OrdinalScale.prototype.parse = function (val) {\n    return typeof val === 'string' ? this._ordinalMeta.getOrdinal(val) : Math.round(val);\n  };\n\n  OrdinalScale.prototype.contain = function (rank) {\n    rank = this.parse(rank);\n    return scaleHelper.contain(rank, this._extent) && this._ordinalMeta.categories[rank] != null;\n  };\n\n  OrdinalScale.prototype.normalize = function (val) {\n    val = this._getTickNumber(this.parse(val));\n    return scaleHelper.normalize(val, this._extent);\n  };\n\n  OrdinalScale.prototype.scale = function (val) {\n    val = Math.round(scaleHelper.scale(val, this._extent));\n    return this.getRawOrdinalNumber(val);\n  };\n\n  OrdinalScale.prototype.getTicks = function () {\n    var ticks = [];\n    var extent = this._extent;\n    var rank = extent[0];\n\n    while (rank <= extent[1]) {\n      ticks.push({\n        value: rank\n      });\n      rank++;\n    }\n\n    return ticks;\n  };\n\n  OrdinalScale.prototype.getMinorTicks = function (splitNumber) {\n    return;\n  };\n\n  OrdinalScale.prototype.setSortInfo = function (info) {\n    if (info == null) {\n      this._ordinalNumbersByTick = this._ticksByOrdinalNumber = null;\n      return;\n    }\n\n    var infoOrdinalNumbers = info.ordinalNumbers;\n    var ordinalsByTick = this._ordinalNumbersByTick = [];\n    var ticksByOrdinal = this._ticksByOrdinalNumber = [];\n    var tickNum = 0;\n    var allCategoryLen = this._ordinalMeta.categories.length;\n\n    for (var len = Math.min(allCategoryLen, infoOrdinalNumbers.length); tickNum < len; ++tickNum) {\n      var ordinalNumber = infoOrdinalNumbers[tickNum];\n      ordinalsByTick[tickNum] = ordinalNumber;\n      ticksByOrdinal[ordinalNumber] = tickNum;\n    }\n\n    var unusedOrdinal = 0;\n\n    for (; tickNum < allCategoryLen; ++tickNum) {\n      while (ticksByOrdinal[unusedOrdinal] != null) {\n        unusedOrdinal++;\n      }\n\n      ;\n      ordinalsByTick.push(unusedOrdinal);\n      ticksByOrdinal[unusedOrdinal] = tickNum;\n    }\n  };\n\n  OrdinalScale.prototype._getTickNumber = function (ordinal) {\n    var ticksByOrdinalNumber = this._ticksByOrdinalNumber;\n    return ticksByOrdinalNumber && ordinal >= 0 && ordinal < ticksByOrdinalNumber.length ? ticksByOrdinalNumber[ordinal] : ordinal;\n  };\n\n  OrdinalScale.prototype.getRawOrdinalNumber = function (tickNumber) {\n    var ordinalNumbersByTick = this._ordinalNumbersByTick;\n    return ordinalNumbersByTick && tickNumber >= 0 && tickNumber < ordinalNumbersByTick.length ? ordinalNumbersByTick[tickNumber] : tickNumber;\n  };\n\n  OrdinalScale.prototype.getLabel = function (tick) {\n    if (!this.isBlank()) {\n      var ordinalNumber = this.getRawOrdinalNumber(tick.value);\n      var cateogry = this._ordinalMeta.categories[ordinalNumber];\n      return cateogry == null ? '' : cateogry + '';\n    }\n  };\n\n  OrdinalScale.prototype.count = function () {\n    return this._extent[1] - this._extent[0] + 1;\n  };\n\n  OrdinalScale.prototype.unionExtentFromData = function (data, dim) {\n    this.unionExtent(data.getApproximateExtent(dim));\n  };\n\n  OrdinalScale.prototype.isInExtentRange = function (value) {\n    value = this._getTickNumber(value);\n    return this._extent[0] <= value && this._extent[1] >= value;\n  };\n\n  OrdinalScale.prototype.getOrdinalMeta = function () {\n    return this._ordinalMeta;\n  };\n\n  OrdinalScale.prototype.niceTicks = function () {};\n\n  OrdinalScale.prototype.niceExtent = function () {};\n\n  OrdinalScale.type = 'ordinal';\n  return OrdinalScale;\n}(Scale);\n\nScale.registerClass(OrdinalScale);\nexport default OrdinalScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as numberUtil from '../util/number';\nimport * as formatUtil from '../util/format';\nimport Scale from './Scale';\nimport * as helper from './helper';\nvar roundNumber = numberUtil.round;\n\nvar IntervalScale = function (_super) {\n  __extends(IntervalScale, _super);\n\n  function IntervalScale() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'interval';\n    _this._interval = 0;\n    _this._intervalPrecision = 2;\n    return _this;\n  }\n\n  IntervalScale.prototype.parse = function (val) {\n    return val;\n  };\n\n  IntervalScale.prototype.contain = function (val) {\n    return helper.contain(val, this._extent);\n  };\n\n  IntervalScale.prototype.normalize = function (val) {\n    return helper.normalize(val, this._extent);\n  };\n\n  IntervalScale.prototype.scale = function (val) {\n    return helper.scale(val, this._extent);\n  };\n\n  IntervalScale.prototype.setExtent = function (start, end) {\n    var thisExtent = this._extent;\n\n    if (!isNaN(start)) {\n      thisExtent[0] = parseFloat(start);\n    }\n\n    if (!isNaN(end)) {\n      thisExtent[1] = parseFloat(end);\n    }\n  };\n\n  IntervalScale.prototype.unionExtent = function (other) {\n    var extent = this._extent;\n    other[0] < extent[0] && (extent[0] = other[0]);\n    other[1] > extent[1] && (extent[1] = other[1]);\n    this.setExtent(extent[0], extent[1]);\n  };\n\n  IntervalScale.prototype.getInterval = function () {\n    return this._interval;\n  };\n\n  IntervalScale.prototype.setInterval = function (interval) {\n    this._interval = interval;\n    this._niceExtent = this._extent.slice();\n    this._intervalPrecision = helper.getIntervalPrecision(interval);\n  };\n\n  IntervalScale.prototype.getTicks = function (expandToNicedExtent) {\n    var interval = this._interval;\n    var extent = this._extent;\n    var niceTickExtent = this._niceExtent;\n    var intervalPrecision = this._intervalPrecision;\n    var ticks = [];\n\n    if (!interval) {\n      return ticks;\n    }\n\n    var safeLimit = 10000;\n\n    if (extent[0] < niceTickExtent[0]) {\n      if (expandToNicedExtent) {\n        ticks.push({\n          value: roundNumber(niceTickExtent[0] - interval, intervalPrecision)\n        });\n      } else {\n        ticks.push({\n          value: extent[0]\n        });\n      }\n    }\n\n    var tick = niceTickExtent[0];\n\n    while (tick <= niceTickExtent[1]) {\n      ticks.push({\n        value: tick\n      });\n      tick = roundNumber(tick + interval, intervalPrecision);\n\n      if (tick === ticks[ticks.length - 1].value) {\n        break;\n      }\n\n      if (ticks.length > safeLimit) {\n        return [];\n      }\n    }\n\n    var lastNiceTick = ticks.length ? ticks[ticks.length - 1].value : niceTickExtent[1];\n\n    if (extent[1] > lastNiceTick) {\n      if (expandToNicedExtent) {\n        ticks.push({\n          value: roundNumber(lastNiceTick + interval, intervalPrecision)\n        });\n      } else {\n        ticks.push({\n          value: extent[1]\n        });\n      }\n    }\n\n    return ticks;\n  };\n\n  IntervalScale.prototype.getMinorTicks = function (splitNumber) {\n    var ticks = this.getTicks(true);\n    var minorTicks = [];\n    var extent = this.getExtent();\n\n    for (var i = 1; i < ticks.length; i++) {\n      var nextTick = ticks[i];\n      var prevTick = ticks[i - 1];\n      var count = 0;\n      var minorTicksGroup = [];\n      var interval = nextTick.value - prevTick.value;\n      var minorInterval = interval / splitNumber;\n\n      while (count < splitNumber - 1) {\n        var minorTick = roundNumber(prevTick.value + (count + 1) * minorInterval);\n\n        if (minorTick > extent[0] && minorTick < extent[1]) {\n          minorTicksGroup.push(minorTick);\n        }\n\n        count++;\n      }\n\n      minorTicks.push(minorTicksGroup);\n    }\n\n    return minorTicks;\n  };\n\n  IntervalScale.prototype.getLabel = function (data, opt) {\n    if (data == null) {\n      return '';\n    }\n\n    var precision = opt && opt.precision;\n\n    if (precision == null) {\n      precision = numberUtil.getPrecisionSafe(data.value) || 0;\n    } else if (precision === 'auto') {\n      precision = this._intervalPrecision;\n    }\n\n    var dataNum = roundNumber(data.value, precision, true);\n    return formatUtil.addCommas(dataNum);\n  };\n\n  IntervalScale.prototype.niceTicks = function (splitNumber, minInterval, maxInterval) {\n    splitNumber = splitNumber || 5;\n    var extent = this._extent;\n    var span = extent[1] - extent[0];\n\n    if (!isFinite(span)) {\n      return;\n    }\n\n    if (span < 0) {\n      span = -span;\n      extent.reverse();\n    }\n\n    var result = helper.intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval);\n    this._intervalPrecision = result.intervalPrecision;\n    this._interval = result.interval;\n    this._niceExtent = result.niceTickExtent;\n  };\n\n  IntervalScale.prototype.niceExtent = function (opt) {\n    var extent = this._extent;\n\n    if (extent[0] === extent[1]) {\n      if (extent[0] !== 0) {\n        var expandSize = extent[0];\n\n        if (!opt.fixMax) {\n          extent[1] += expandSize / 2;\n          extent[0] -= expandSize / 2;\n        } else {\n          extent[0] -= expandSize / 2;\n        }\n      } else {\n        extent[1] = 1;\n      }\n    }\n\n    var span = extent[1] - extent[0];\n\n    if (!isFinite(span)) {\n      extent[0] = 0;\n      extent[1] = 1;\n    }\n\n    this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\n    var interval = this._interval;\n\n    if (!opt.fixMin) {\n      extent[0] = roundNumber(Math.floor(extent[0] / interval) * interval);\n    }\n\n    if (!opt.fixMax) {\n      extent[1] = roundNumber(Math.ceil(extent[1] / interval) * interval);\n    }\n  };\n\n  IntervalScale.type = 'interval';\n  return IntervalScale;\n}(Scale);\n\nScale.registerClass(IntervalScale);\nexport default IntervalScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parsePercent } from '../util/number';\nimport { isDimensionStacked } from '../data/helper/dataStackHelper';\nimport createRenderPlanner from '../chart/helper/createRenderPlanner';\nvar STACK_PREFIX = '__ec_stack_';\nvar LARGE_BAR_MIN_WIDTH = 0.5;\nvar LargeArr = typeof Float32Array !== 'undefined' ? Float32Array : Array;\n\nfunction getSeriesStackId(seriesModel) {\n  return seriesModel.get('stack') || STACK_PREFIX + seriesModel.seriesIndex;\n}\n\nfunction getAxisKey(axis) {\n  return axis.dim + axis.index;\n}\n\nexport function getLayoutOnAxis(opt) {\n  var params = [];\n  var baseAxis = opt.axis;\n  var axisKey = 'axis0';\n\n  if (baseAxis.type !== 'category') {\n    return;\n  }\n\n  var bandWidth = baseAxis.getBandWidth();\n\n  for (var i = 0; i < opt.count || 0; i++) {\n    params.push(zrUtil.defaults({\n      bandWidth: bandWidth,\n      axisKey: axisKey,\n      stackId: STACK_PREFIX + i\n    }, opt));\n  }\n\n  var widthAndOffsets = doCalBarWidthAndOffset(params);\n  var result = [];\n\n  for (var i = 0; i < opt.count; i++) {\n    var item = widthAndOffsets[axisKey][STACK_PREFIX + i];\n    item.offsetCenter = item.offset + item.width / 2;\n    result.push(item);\n  }\n\n  return result;\n}\nexport function prepareLayoutBarSeries(seriesType, ecModel) {\n  var seriesModels = [];\n  ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n    if (isOnCartesian(seriesModel) && !isInLargeMode(seriesModel)) {\n      seriesModels.push(seriesModel);\n    }\n  });\n  return seriesModels;\n}\n\nfunction getValueAxesMinGaps(barSeries) {\n  var axisValues = {};\n  zrUtil.each(barSeries, function (seriesModel) {\n    var cartesian = seriesModel.coordinateSystem;\n    var baseAxis = cartesian.getBaseAxis();\n\n    if (baseAxis.type !== 'time' && baseAxis.type !== 'value') {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var key = baseAxis.dim + '_' + baseAxis.index;\n    var dim = data.mapDimension(baseAxis.dim);\n\n    for (var i = 0, cnt = data.count(); i < cnt; ++i) {\n      var value = data.get(dim, i);\n\n      if (!axisValues[key]) {\n        axisValues[key] = [value];\n      } else {\n        axisValues[key].push(value);\n      }\n    }\n  });\n  var axisMinGaps = {};\n\n  for (var key in axisValues) {\n    if (axisValues.hasOwnProperty(key)) {\n      var valuesInAxis = axisValues[key];\n\n      if (valuesInAxis) {\n        valuesInAxis.sort(function (a, b) {\n          return a - b;\n        });\n        var min = null;\n\n        for (var j = 1; j < valuesInAxis.length; ++j) {\n          var delta = valuesInAxis[j] - valuesInAxis[j - 1];\n\n          if (delta > 0) {\n            min = min === null ? delta : Math.min(min, delta);\n          }\n        }\n\n        axisMinGaps[key] = min;\n      }\n    }\n  }\n\n  return axisMinGaps;\n}\n\nexport function makeColumnLayout(barSeries) {\n  var axisMinGaps = getValueAxesMinGaps(barSeries);\n  var seriesInfoList = [];\n  zrUtil.each(barSeries, function (seriesModel) {\n    var cartesian = seriesModel.coordinateSystem;\n    var baseAxis = cartesian.getBaseAxis();\n    var axisExtent = baseAxis.getExtent();\n    var bandWidth;\n\n    if (baseAxis.type === 'category') {\n      bandWidth = baseAxis.getBandWidth();\n    } else if (baseAxis.type === 'value' || baseAxis.type === 'time') {\n      var key = baseAxis.dim + '_' + baseAxis.index;\n      var minGap = axisMinGaps[key];\n      var extentSpan = Math.abs(axisExtent[1] - axisExtent[0]);\n      var scale = baseAxis.scale.getExtent();\n      var scaleSpan = Math.abs(scale[1] - scale[0]);\n      bandWidth = minGap ? extentSpan / scaleSpan * minGap : extentSpan;\n    } else {\n      var data = seriesModel.getData();\n      bandWidth = Math.abs(axisExtent[1] - axisExtent[0]) / data.count();\n    }\n\n    var barWidth = parsePercent(seriesModel.get('barWidth'), bandWidth);\n    var barMaxWidth = parsePercent(seriesModel.get('barMaxWidth'), bandWidth);\n    var barMinWidth = parsePercent(seriesModel.get('barMinWidth') || 1, bandWidth);\n    var barGap = seriesModel.get('barGap');\n    var barCategoryGap = seriesModel.get('barCategoryGap');\n    seriesInfoList.push({\n      bandWidth: bandWidth,\n      barWidth: barWidth,\n      barMaxWidth: barMaxWidth,\n      barMinWidth: barMinWidth,\n      barGap: barGap,\n      barCategoryGap: barCategoryGap,\n      axisKey: getAxisKey(baseAxis),\n      stackId: getSeriesStackId(seriesModel)\n    });\n  });\n  return doCalBarWidthAndOffset(seriesInfoList);\n}\n\nfunction doCalBarWidthAndOffset(seriesInfoList) {\n  var columnsMap = {};\n  zrUtil.each(seriesInfoList, function (seriesInfo, idx) {\n    var axisKey = seriesInfo.axisKey;\n    var bandWidth = seriesInfo.bandWidth;\n    var columnsOnAxis = columnsMap[axisKey] || {\n      bandWidth: bandWidth,\n      remainedWidth: bandWidth,\n      autoWidthCount: 0,\n      categoryGap: null,\n      gap: '20%',\n      stacks: {}\n    };\n    var stacks = columnsOnAxis.stacks;\n    columnsMap[axisKey] = columnsOnAxis;\n    var stackId = seriesInfo.stackId;\n\n    if (!stacks[stackId]) {\n      columnsOnAxis.autoWidthCount++;\n    }\n\n    stacks[stackId] = stacks[stackId] || {\n      width: 0,\n      maxWidth: 0\n    };\n    var barWidth = seriesInfo.barWidth;\n\n    if (barWidth && !stacks[stackId].width) {\n      stacks[stackId].width = barWidth;\n      barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\n      columnsOnAxis.remainedWidth -= barWidth;\n    }\n\n    var barMaxWidth = seriesInfo.barMaxWidth;\n    barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\n    var barMinWidth = seriesInfo.barMinWidth;\n    barMinWidth && (stacks[stackId].minWidth = barMinWidth);\n    var barGap = seriesInfo.barGap;\n    barGap != null && (columnsOnAxis.gap = barGap);\n    var barCategoryGap = seriesInfo.barCategoryGap;\n    barCategoryGap != null && (columnsOnAxis.categoryGap = barCategoryGap);\n  });\n  var result = {};\n  zrUtil.each(columnsMap, function (columnsOnAxis, coordSysName) {\n    result[coordSysName] = {};\n    var stacks = columnsOnAxis.stacks;\n    var bandWidth = columnsOnAxis.bandWidth;\n    var categoryGapPercent = columnsOnAxis.categoryGap;\n\n    if (categoryGapPercent == null) {\n      var columnCount = zrUtil.keys(stacks).length;\n      categoryGapPercent = Math.max(35 - columnCount * 4, 15) + '%';\n    }\n\n    var categoryGap = parsePercent(categoryGapPercent, bandWidth);\n    var barGapPercent = parsePercent(columnsOnAxis.gap, 1);\n    var remainedWidth = columnsOnAxis.remainedWidth;\n    var autoWidthCount = columnsOnAxis.autoWidthCount;\n    var autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n    autoWidth = Math.max(autoWidth, 0);\n    zrUtil.each(stacks, function (column) {\n      var maxWidth = column.maxWidth;\n      var minWidth = column.minWidth;\n\n      if (!column.width) {\n        var finalWidth = autoWidth;\n\n        if (maxWidth && maxWidth < finalWidth) {\n          finalWidth = Math.min(maxWidth, remainedWidth);\n        }\n\n        if (minWidth && minWidth > finalWidth) {\n          finalWidth = minWidth;\n        }\n\n        if (finalWidth !== autoWidth) {\n          column.width = finalWidth;\n          remainedWidth -= finalWidth + barGapPercent * finalWidth;\n          autoWidthCount--;\n        }\n      } else {\n        var finalWidth = column.width;\n\n        if (maxWidth) {\n          finalWidth = Math.min(finalWidth, maxWidth);\n        }\n\n        if (minWidth) {\n          finalWidth = Math.max(finalWidth, minWidth);\n        }\n\n        column.width = finalWidth;\n        remainedWidth -= finalWidth + barGapPercent * finalWidth;\n        autoWidthCount--;\n      }\n    });\n    autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n    autoWidth = Math.max(autoWidth, 0);\n    var widthSum = 0;\n    var lastColumn;\n    zrUtil.each(stacks, function (column, idx) {\n      if (!column.width) {\n        column.width = autoWidth;\n      }\n\n      lastColumn = column;\n      widthSum += column.width * (1 + barGapPercent);\n    });\n\n    if (lastColumn) {\n      widthSum -= lastColumn.width * barGapPercent;\n    }\n\n    var offset = -widthSum / 2;\n    zrUtil.each(stacks, function (column, stackId) {\n      result[coordSysName][stackId] = result[coordSysName][stackId] || {\n        bandWidth: bandWidth,\n        offset: offset,\n        width: column.width\n      };\n      offset += column.width * (1 + barGapPercent);\n    });\n  });\n  return result;\n}\n\nfunction retrieveColumnLayout(barWidthAndOffset, axis, seriesModel) {\n  if (barWidthAndOffset && axis) {\n    var result = barWidthAndOffset[getAxisKey(axis)];\n\n    if (result != null && seriesModel != null) {\n      return result[getSeriesStackId(seriesModel)];\n    }\n\n    return result;\n  }\n}\n\nexport { retrieveColumnLayout };\nexport function layout(seriesType, ecModel) {\n  var seriesModels = prepareLayoutBarSeries(seriesType, ecModel);\n  var barWidthAndOffset = makeColumnLayout(seriesModels);\n  var lastStackCoords = {};\n  zrUtil.each(seriesModels, function (seriesModel) {\n    var data = seriesModel.getData();\n    var cartesian = seriesModel.coordinateSystem;\n    var baseAxis = cartesian.getBaseAxis();\n    var stackId = getSeriesStackId(seriesModel);\n    var columnLayoutInfo = barWidthAndOffset[getAxisKey(baseAxis)][stackId];\n    var columnOffset = columnLayoutInfo.offset;\n    var columnWidth = columnLayoutInfo.width;\n    var valueAxis = cartesian.getOtherAxis(baseAxis);\n    var barMinHeight = seriesModel.get('barMinHeight') || 0;\n    lastStackCoords[stackId] = lastStackCoords[stackId] || [];\n    data.setLayout({\n      bandWidth: columnLayoutInfo.bandWidth,\n      offset: columnOffset,\n      size: columnWidth\n    });\n    var valueDim = data.mapDimension(valueAxis.dim);\n    var baseDim = data.mapDimension(baseAxis.dim);\n    var stacked = isDimensionStacked(data, valueDim);\n    var isValueAxisH = valueAxis.isHorizontal();\n    var valueAxisStart = getValueAxisStart(baseAxis, valueAxis, stacked);\n\n    for (var idx = 0, len = data.count(); idx < len; idx++) {\n      var value = data.get(valueDim, idx);\n      var baseValue = data.get(baseDim, idx);\n      var sign = value >= 0 ? 'p' : 'n';\n      var baseCoord = valueAxisStart;\n\n      if (stacked) {\n        if (!lastStackCoords[stackId][baseValue]) {\n          lastStackCoords[stackId][baseValue] = {\n            p: valueAxisStart,\n            n: valueAxisStart\n          };\n        }\n\n        baseCoord = lastStackCoords[stackId][baseValue][sign];\n      }\n\n      var x = void 0;\n      var y = void 0;\n      var width = void 0;\n      var height = void 0;\n\n      if (isValueAxisH) {\n        var coord = cartesian.dataToPoint([value, baseValue]);\n        x = baseCoord;\n        y = coord[1] + columnOffset;\n        width = coord[0] - valueAxisStart;\n        height = columnWidth;\n\n        if (Math.abs(width) < barMinHeight) {\n          width = (width < 0 ? -1 : 1) * barMinHeight;\n        }\n\n        if (!isNaN(width)) {\n          stacked && (lastStackCoords[stackId][baseValue][sign] += width);\n        }\n      } else {\n        var coord = cartesian.dataToPoint([baseValue, value]);\n        x = coord[0] + columnOffset;\n        y = baseCoord;\n        width = columnWidth;\n        height = coord[1] - valueAxisStart;\n\n        if (Math.abs(height) < barMinHeight) {\n          height = (height <= 0 ? -1 : 1) * barMinHeight;\n        }\n\n        if (!isNaN(height)) {\n          stacked && (lastStackCoords[stackId][baseValue][sign] += height);\n        }\n      }\n\n      data.setItemLayout(idx, {\n        x: x,\n        y: y,\n        width: width,\n        height: height\n      });\n    }\n  });\n}\nexport var largeLayout = {\n  seriesType: 'bar',\n  plan: createRenderPlanner(),\n  reset: function (seriesModel) {\n    if (!isOnCartesian(seriesModel) || !isInLargeMode(seriesModel)) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var cartesian = seriesModel.coordinateSystem;\n    var coordLayout = cartesian.master.getRect();\n    var baseAxis = cartesian.getBaseAxis();\n    var valueAxis = cartesian.getOtherAxis(baseAxis);\n    var valueDim = data.mapDimension(valueAxis.dim);\n    var baseDim = data.mapDimension(baseAxis.dim);\n    var valueAxisHorizontal = valueAxis.isHorizontal();\n    var valueDimIdx = valueAxisHorizontal ? 0 : 1;\n    var barWidth = retrieveColumnLayout(makeColumnLayout([seriesModel]), baseAxis, seriesModel).width;\n\n    if (!(barWidth > LARGE_BAR_MIN_WIDTH)) {\n      barWidth = LARGE_BAR_MIN_WIDTH;\n    }\n\n    return {\n      progress: function (params, data) {\n        var count = params.count;\n        var largePoints = new LargeArr(count * 2);\n        var largeBackgroundPoints = new LargeArr(count * 2);\n        var largeDataIndices = new LargeArr(count);\n        var dataIndex;\n        var coord = [];\n        var valuePair = [];\n        var pointsOffset = 0;\n        var idxOffset = 0;\n\n        while ((dataIndex = params.next()) != null) {\n          valuePair[valueDimIdx] = data.get(valueDim, dataIndex);\n          valuePair[1 - valueDimIdx] = data.get(baseDim, dataIndex);\n          coord = cartesian.dataToPoint(valuePair, null, coord);\n          largeBackgroundPoints[pointsOffset] = valueAxisHorizontal ? coordLayout.x + coordLayout.width : coord[0];\n          largePoints[pointsOffset++] = coord[0];\n          largeBackgroundPoints[pointsOffset] = valueAxisHorizontal ? coord[1] : coordLayout.y + coordLayout.height;\n          largePoints[pointsOffset++] = coord[1];\n          largeDataIndices[idxOffset++] = dataIndex;\n        }\n\n        data.setLayout({\n          largePoints: largePoints,\n          largeDataIndices: largeDataIndices,\n          largeBackgroundPoints: largeBackgroundPoints,\n          barWidth: barWidth,\n          valueAxisStart: getValueAxisStart(baseAxis, valueAxis, false),\n          backgroundStart: valueAxisHorizontal ? coordLayout.x : coordLayout.y,\n          valueAxisHorizontal: valueAxisHorizontal\n        });\n      }\n    };\n  }\n};\n\nfunction isOnCartesian(seriesModel) {\n  return seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'cartesian2d';\n}\n\nfunction isInLargeMode(seriesModel) {\n  return seriesModel.pipelineContext && seriesModel.pipelineContext.large;\n}\n\nfunction getValueAxisStart(baseAxis, valueAxis, stacked) {\n  return valueAxis.toGlobalCoord(valueAxis.dataToCoord(valueAxis.type === 'log' ? 1 : 0));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as numberUtil from '../util/number';\nimport { ONE_SECOND, ONE_MINUTE, ONE_HOUR, ONE_DAY, ONE_YEAR, format, leveledFormat, getUnitValue, timeUnits, fullLeveledFormatter, getPrimaryTimeUnit, isPrimaryTimeUnit, getDefaultFormatPrecisionOfInterval, fullYearGetterName, monthSetterName, fullYearSetterName, dateSetterName, hoursGetterName, hoursSetterName, minutesSetterName, secondsSetterName, millisecondsSetterName, monthGetterName, dateGetterName, minutesGetterName, secondsGetterName, millisecondsGetterName } from '../util/time';\nimport * as scaleHelper from './helper';\nimport IntervalScale from './Interval';\nimport Scale from './Scale';\nimport { warn } from '../util/log';\nimport { filter, map } from 'zrender/lib/core/util';\n\nvar bisect = function (a, x, lo, hi) {\n  while (lo < hi) {\n    var mid = lo + hi >>> 1;\n\n    if (a[mid][1] < x) {\n      lo = mid + 1;\n    } else {\n      hi = mid;\n    }\n  }\n\n  return lo;\n};\n\nvar TimeScale = function (_super) {\n  __extends(TimeScale, _super);\n\n  function TimeScale(settings) {\n    var _this = _super.call(this, settings) || this;\n\n    _this.type = 'time';\n    return _this;\n  }\n\n  TimeScale.prototype.getLabel = function (tick) {\n    var useUTC = this.getSetting('useUTC');\n    return format(tick.value, fullLeveledFormatter[getDefaultFormatPrecisionOfInterval(getPrimaryTimeUnit(this._minLevelUnit))] || fullLeveledFormatter.second, useUTC, this.getSetting('locale'));\n  };\n\n  TimeScale.prototype.getFormattedLabel = function (tick, idx, labelFormatter) {\n    var isUTC = this.getSetting('useUTC');\n    var lang = this.getSetting('locale');\n    return leveledFormat(tick, idx, labelFormatter, lang, isUTC);\n  };\n\n  TimeScale.prototype.getTicks = function (expandToNicedExtent) {\n    var interval = this._interval;\n    var extent = this._extent;\n    var ticks = [];\n\n    if (!interval) {\n      return ticks;\n    }\n\n    ticks.push({\n      value: extent[0],\n      level: 0\n    });\n    var useUTC = this.getSetting('useUTC');\n    var innerTicks = getIntervalTicks(this._minLevelUnit, this._approxInterval, useUTC, extent);\n    ticks = ticks.concat(innerTicks);\n    ticks.push({\n      value: extent[1],\n      level: 0\n    });\n    return ticks;\n  };\n\n  TimeScale.prototype.niceExtent = function (opt) {\n    var extent = this._extent;\n\n    if (extent[0] === extent[1]) {\n      extent[0] -= ONE_DAY;\n      extent[1] += ONE_DAY;\n    }\n\n    if (extent[1] === -Infinity && extent[0] === Infinity) {\n      var d = new Date();\n      extent[1] = +new Date(d.getFullYear(), d.getMonth(), d.getDate());\n      extent[0] = extent[1] - ONE_DAY;\n    }\n\n    this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\n  };\n\n  TimeScale.prototype.niceTicks = function (approxTickNum, minInterval, maxInterval) {\n    approxTickNum = approxTickNum || 10;\n    var extent = this._extent;\n    var span = extent[1] - extent[0];\n    this._approxInterval = span / approxTickNum;\n\n    if (minInterval != null && this._approxInterval < minInterval) {\n      this._approxInterval = minInterval;\n    }\n\n    if (maxInterval != null && this._approxInterval > maxInterval) {\n      this._approxInterval = maxInterval;\n    }\n\n    var scaleIntervalsLen = scaleIntervals.length;\n    var idx = Math.min(bisect(scaleIntervals, this._approxInterval, 0, scaleIntervalsLen), scaleIntervalsLen - 1);\n    this._interval = scaleIntervals[idx][1];\n    this._minLevelUnit = scaleIntervals[Math.max(idx - 1, 0)][0];\n  };\n\n  TimeScale.prototype.parse = function (val) {\n    return typeof val === 'number' ? val : +numberUtil.parseDate(val);\n  };\n\n  TimeScale.prototype.contain = function (val) {\n    return scaleHelper.contain(this.parse(val), this._extent);\n  };\n\n  TimeScale.prototype.normalize = function (val) {\n    return scaleHelper.normalize(this.parse(val), this._extent);\n  };\n\n  TimeScale.prototype.scale = function (val) {\n    return scaleHelper.scale(val, this._extent);\n  };\n\n  TimeScale.type = 'time';\n  return TimeScale;\n}(IntervalScale);\n\nvar scaleIntervals = [['second', ONE_SECOND], ['minute', ONE_MINUTE], ['hour', ONE_HOUR], ['quarter-day', ONE_HOUR * 6], ['half-day', ONE_HOUR * 12], ['day', ONE_DAY * 1.2], ['half-week', ONE_DAY * 3.5], ['week', ONE_DAY * 7], ['month', ONE_DAY * 31], ['quarter', ONE_DAY * 95], ['half-year', ONE_YEAR / 2], ['year', ONE_YEAR]];\n\nfunction isUnitValueSame(unit, valueA, valueB, isUTC) {\n  var dateA = numberUtil.parseDate(valueA);\n  var dateB = numberUtil.parseDate(valueB);\n\n  var isSame = function (unit) {\n    return getUnitValue(dateA, unit, isUTC) === getUnitValue(dateB, unit, isUTC);\n  };\n\n  var isSameYear = function () {\n    return isSame('year');\n  };\n\n  var isSameMonth = function () {\n    return isSameYear() && isSame('month');\n  };\n\n  var isSameDay = function () {\n    return isSameMonth() && isSame('day');\n  };\n\n  var isSameHour = function () {\n    return isSameDay() && isSame('hour');\n  };\n\n  var isSameMinute = function () {\n    return isSameHour() && isSame('minute');\n  };\n\n  var isSameSecond = function () {\n    return isSameMinute() && isSame('second');\n  };\n\n  var isSameMilliSecond = function () {\n    return isSameSecond() && isSame('millisecond');\n  };\n\n  switch (unit) {\n    case 'year':\n      return isSameYear();\n\n    case 'month':\n      return isSameMonth();\n\n    case 'day':\n      return isSameDay();\n\n    case 'hour':\n      return isSameHour();\n\n    case 'minute':\n      return isSameMinute();\n\n    case 'second':\n      return isSameSecond();\n\n    case 'millisecond':\n      return isSameMilliSecond();\n  }\n}\n\nfunction getDateInterval(approxInterval, daysInMonth) {\n  approxInterval /= ONE_DAY;\n  return approxInterval > 16 ? 16 : approxInterval > 7.5 ? 7 : approxInterval > 3.5 ? 4 : approxInterval > 1.5 ? 2 : 1;\n}\n\nfunction getMonthInterval(approxInterval) {\n  var APPROX_ONE_MONTH = 30 * ONE_DAY;\n  approxInterval /= APPROX_ONE_MONTH;\n  return approxInterval > 6 ? 6 : approxInterval > 3 ? 3 : approxInterval > 2 ? 2 : 1;\n}\n\nfunction getHourInterval(approxInterval) {\n  approxInterval /= ONE_HOUR;\n  return approxInterval > 12 ? 12 : approxInterval > 6 ? 6 : approxInterval > 3.5 ? 4 : approxInterval > 2 ? 2 : 1;\n}\n\nfunction getMinutesAndSecondsInterval(approxInterval, isMinutes) {\n  approxInterval /= isMinutes ? ONE_MINUTE : ONE_SECOND;\n  return approxInterval > 30 ? 30 : approxInterval > 20 ? 20 : approxInterval > 15 ? 15 : approxInterval > 10 ? 10 : approxInterval > 5 ? 5 : approxInterval > 2 ? 2 : 1;\n}\n\nfunction getMillisecondsInterval(approxInterval) {\n  return numberUtil.nice(approxInterval, true);\n}\n\nfunction getFirstTimestampOfUnit(date, unitName, isUTC) {\n  var outDate = new Date(date);\n\n  switch (getPrimaryTimeUnit(unitName)) {\n    case 'year':\n    case 'month':\n      outDate[monthSetterName(isUTC)](0);\n\n    case 'day':\n      outDate[dateSetterName(isUTC)](1);\n\n    case 'hour':\n      outDate[hoursSetterName(isUTC)](0);\n\n    case 'minute':\n      outDate[minutesSetterName(isUTC)](0);\n\n    case 'second':\n      outDate[secondsSetterName(isUTC)](0);\n      outDate[millisecondsSetterName(isUTC)](0);\n  }\n\n  return outDate.getTime();\n}\n\nfunction getIntervalTicks(bottomUnitName, approxInterval, isUTC, extent) {\n  var safeLimit = 10000;\n  var unitNames = timeUnits;\n  var iter = 0;\n\n  function addTicksInSpan(interval, minTimestamp, maxTimestamp, getMethodName, setMethodName, isDate, out) {\n    var date = new Date(minTimestamp);\n    var dateTime = minTimestamp;\n    var d = date[getMethodName]();\n\n    while (dateTime < maxTimestamp && dateTime <= extent[1]) {\n      out.push({\n        value: dateTime\n      });\n      d += interval;\n      date[setMethodName](d);\n      dateTime = date.getTime();\n    }\n\n    out.push({\n      value: dateTime,\n      notAdd: true\n    });\n  }\n\n  function addLevelTicks(unitName, lastLevelTicks, levelTicks) {\n    var newAddedTicks = [];\n    var isFirstLevel = !lastLevelTicks.length;\n\n    if (isUnitValueSame(getPrimaryTimeUnit(unitName), extent[0], extent[1], isUTC)) {\n      return;\n    }\n\n    if (isFirstLevel) {\n      lastLevelTicks = [{\n        value: getFirstTimestampOfUnit(new Date(extent[0]), unitName, isUTC)\n      }, {\n        value: extent[1]\n      }];\n    }\n\n    for (var i = 0; i < lastLevelTicks.length - 1; i++) {\n      var startTick = lastLevelTicks[i].value;\n      var endTick = lastLevelTicks[i + 1].value;\n\n      if (startTick === endTick) {\n        continue;\n      }\n\n      var interval = void 0;\n      var getterName = void 0;\n      var setterName = void 0;\n      var isDate = false;\n\n      switch (unitName) {\n        case 'year':\n          interval = Math.max(1, Math.round(approxInterval / ONE_DAY / 365));\n          getterName = fullYearGetterName(isUTC);\n          setterName = fullYearSetterName(isUTC);\n          break;\n\n        case 'half-year':\n        case 'quarter':\n        case 'month':\n          interval = getMonthInterval(approxInterval);\n          getterName = monthGetterName(isUTC);\n          setterName = monthSetterName(isUTC);\n          break;\n\n        case 'week':\n        case 'half-week':\n        case 'day':\n          interval = getDateInterval(approxInterval, 31);\n          getterName = dateGetterName(isUTC);\n          setterName = dateSetterName(isUTC);\n          isDate = true;\n          break;\n\n        case 'half-day':\n        case 'quarter-day':\n        case 'hour':\n          interval = getHourInterval(approxInterval);\n          getterName = hoursGetterName(isUTC);\n          setterName = hoursSetterName(isUTC);\n          break;\n\n        case 'minute':\n          interval = getMinutesAndSecondsInterval(approxInterval, true);\n          getterName = minutesGetterName(isUTC);\n          setterName = minutesSetterName(isUTC);\n          break;\n\n        case 'second':\n          interval = getMinutesAndSecondsInterval(approxInterval, false);\n          getterName = secondsGetterName(isUTC);\n          setterName = secondsSetterName(isUTC);\n          break;\n\n        case 'millisecond':\n          interval = getMillisecondsInterval(approxInterval);\n          getterName = millisecondsGetterName(isUTC);\n          setterName = millisecondsSetterName(isUTC);\n          break;\n      }\n\n      addTicksInSpan(interval, startTick, endTick, getterName, setterName, isDate, newAddedTicks);\n\n      if (unitName === 'year' && levelTicks.length > 1 && i === 0) {\n        levelTicks.unshift({\n          value: levelTicks[0].value - interval\n        });\n      }\n    }\n\n    for (var i = 0; i < newAddedTicks.length; i++) {\n      levelTicks.push(newAddedTicks[i]);\n    }\n\n    return newAddedTicks;\n  }\n\n  var levelsTicks = [];\n  var currentLevelTicks = [];\n  var tickCount = 0;\n  var lastLevelTickCount = 0;\n\n  for (var i = 0; i < unitNames.length && iter++ < safeLimit; ++i) {\n    var primaryTimeUnit = getPrimaryTimeUnit(unitNames[i]);\n\n    if (!isPrimaryTimeUnit(unitNames[i])) {\n      continue;\n    }\n\n    addLevelTicks(unitNames[i], levelsTicks[levelsTicks.length - 1] || [], currentLevelTicks);\n    var nextPrimaryTimeUnit = unitNames[i + 1] ? getPrimaryTimeUnit(unitNames[i + 1]) : null;\n\n    if (primaryTimeUnit !== nextPrimaryTimeUnit) {\n      if (currentLevelTicks.length) {\n        lastLevelTickCount = tickCount;\n        currentLevelTicks.sort(function (a, b) {\n          return a.value - b.value;\n        });\n        var levelTicksRemoveDuplicated = [];\n\n        for (var i_1 = 0; i_1 < currentLevelTicks.length; ++i_1) {\n          var tickValue = currentLevelTicks[i_1].value;\n\n          if (i_1 === 0 || currentLevelTicks[i_1 - 1].value !== tickValue) {\n            levelTicksRemoveDuplicated.push(currentLevelTicks[i_1]);\n\n            if (tickValue >= extent[0] && tickValue <= extent[1]) {\n              tickCount++;\n            }\n          }\n        }\n\n        var targetTickNum = (extent[1] - extent[0]) / approxInterval;\n\n        if (tickCount > targetTickNum * 1.5 && lastLevelTickCount > targetTickNum / 1.5) {\n          break;\n        }\n\n        levelsTicks.push(levelTicksRemoveDuplicated);\n\n        if (tickCount > targetTickNum || bottomUnitName === unitNames[i]) {\n          break;\n        }\n      }\n\n      currentLevelTicks = [];\n    }\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (iter >= safeLimit) {\n      warn('Exceed safe limit.');\n    }\n  }\n\n  var levelsTicksInExtent = filter(map(levelsTicks, function (levelTicks) {\n    return filter(levelTicks, function (tick) {\n      return tick.value >= extent[0] && tick.value <= extent[1] && !tick.notAdd;\n    });\n  }), function (levelTicks) {\n    return levelTicks.length > 0;\n  });\n  var ticks = [];\n  var maxLevel = levelsTicksInExtent.length - 1;\n\n  for (var i = 0; i < levelsTicksInExtent.length; ++i) {\n    var levelTicks = levelsTicksInExtent[i];\n\n    for (var k = 0; k < levelTicks.length; ++k) {\n      ticks.push({\n        value: levelTicks[k].value,\n        level: maxLevel - i\n      });\n    }\n  }\n\n  ticks.sort(function (a, b) {\n    return a.value - b.value;\n  });\n  var result = [];\n\n  for (var i = 0; i < ticks.length; ++i) {\n    if (i === 0 || ticks[i].value !== ticks[i - 1].value) {\n      result.push(ticks[i]);\n    }\n  }\n\n  return result;\n}\n\nScale.registerClass(TimeScale);\nexport default TimeScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Scale from './Scale';\nimport * as numberUtil from '../util/number';\nimport * as scaleHelper from './helper';\nimport IntervalScale from './Interval';\nvar scaleProto = Scale.prototype;\nvar intervalScaleProto = IntervalScale.prototype;\nvar getPrecisionSafe = numberUtil.getPrecisionSafe;\nvar roundingErrorFix = numberUtil.round;\nvar mathFloor = Math.floor;\nvar mathCeil = Math.ceil;\nvar mathPow = Math.pow;\nvar mathLog = Math.log;\n\nvar LogScale = function (_super) {\n  __extends(LogScale, _super);\n\n  function LogScale() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'log';\n    _this.base = 10;\n    _this._originalScale = new IntervalScale();\n    _this._interval = 0;\n    return _this;\n  }\n\n  LogScale.prototype.getTicks = function (expandToNicedExtent) {\n    var originalScale = this._originalScale;\n    var extent = this._extent;\n    var originalExtent = originalScale.getExtent();\n    var ticks = intervalScaleProto.getTicks.call(this, expandToNicedExtent);\n    return zrUtil.map(ticks, function (tick) {\n      var val = tick.value;\n      var powVal = numberUtil.round(mathPow(this.base, val));\n      powVal = val === extent[0] && this._fixMin ? fixRoundingError(powVal, originalExtent[0]) : powVal;\n      powVal = val === extent[1] && this._fixMax ? fixRoundingError(powVal, originalExtent[1]) : powVal;\n      return {\n        value: powVal\n      };\n    }, this);\n  };\n\n  LogScale.prototype.setExtent = function (start, end) {\n    var base = this.base;\n    start = mathLog(start) / mathLog(base);\n    end = mathLog(end) / mathLog(base);\n    intervalScaleProto.setExtent.call(this, start, end);\n  };\n\n  LogScale.prototype.getExtent = function () {\n    var base = this.base;\n    var extent = scaleProto.getExtent.call(this);\n    extent[0] = mathPow(base, extent[0]);\n    extent[1] = mathPow(base, extent[1]);\n    var originalScale = this._originalScale;\n    var originalExtent = originalScale.getExtent();\n    this._fixMin && (extent[0] = fixRoundingError(extent[0], originalExtent[0]));\n    this._fixMax && (extent[1] = fixRoundingError(extent[1], originalExtent[1]));\n    return extent;\n  };\n\n  LogScale.prototype.unionExtent = function (extent) {\n    this._originalScale.unionExtent(extent);\n\n    var base = this.base;\n    extent[0] = mathLog(extent[0]) / mathLog(base);\n    extent[1] = mathLog(extent[1]) / mathLog(base);\n    scaleProto.unionExtent.call(this, extent);\n  };\n\n  LogScale.prototype.unionExtentFromData = function (data, dim) {\n    this.unionExtent(data.getApproximateExtent(dim));\n  };\n\n  LogScale.prototype.niceTicks = function (approxTickNum) {\n    approxTickNum = approxTickNum || 10;\n    var extent = this._extent;\n    var span = extent[1] - extent[0];\n\n    if (span === Infinity || span <= 0) {\n      return;\n    }\n\n    var interval = numberUtil.quantity(span);\n    var err = approxTickNum / span * interval;\n\n    if (err <= 0.5) {\n      interval *= 10;\n    }\n\n    while (!isNaN(interval) && Math.abs(interval) < 1 && Math.abs(interval) > 0) {\n      interval *= 10;\n    }\n\n    var niceExtent = [numberUtil.round(mathCeil(extent[0] / interval) * interval), numberUtil.round(mathFloor(extent[1] / interval) * interval)];\n    this._interval = interval;\n    this._niceExtent = niceExtent;\n  };\n\n  LogScale.prototype.niceExtent = function (opt) {\n    intervalScaleProto.niceExtent.call(this, opt);\n    this._fixMin = opt.fixMin;\n    this._fixMax = opt.fixMax;\n  };\n\n  LogScale.prototype.parse = function (val) {\n    return val;\n  };\n\n  LogScale.prototype.contain = function (val) {\n    val = mathLog(val) / mathLog(this.base);\n    return scaleHelper.contain(val, this._extent);\n  };\n\n  LogScale.prototype.normalize = function (val) {\n    val = mathLog(val) / mathLog(this.base);\n    return scaleHelper.normalize(val, this._extent);\n  };\n\n  LogScale.prototype.scale = function (val) {\n    val = scaleHelper.scale(val, this._extent);\n    return mathPow(this.base, val);\n  };\n\n  LogScale.type = 'log';\n  return LogScale;\n}(Scale);\n\nvar proto = LogScale.prototype;\nproto.getMinorTicks = intervalScaleProto.getMinorTicks;\nproto.getLabel = intervalScaleProto.getLabel;\n\nfunction fixRoundingError(val, originalVal) {\n  return roundingErrorFix(val, getPrecisionSafe(originalVal));\n}\n\nScale.registerClass(LogScale);\nexport default LogScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { assert, isArray, eqNaN, isFunction } from 'zrender/lib/core/util';\nimport { parsePercent } from 'zrender/lib/contain/text';\n\nvar ScaleRawExtentInfo = function () {\n  function ScaleRawExtentInfo(scale, model, originalExtent) {\n    this._prepareParams(scale, model, originalExtent);\n  }\n\n  ScaleRawExtentInfo.prototype._prepareParams = function (scale, model, dataExtent) {\n    if (dataExtent[1] < dataExtent[0]) {\n      dataExtent = [NaN, NaN];\n    }\n\n    this._dataMin = dataExtent[0];\n    this._dataMax = dataExtent[1];\n    var isOrdinal = this._isOrdinal = scale.type === 'ordinal';\n    this._needCrossZero = model.getNeedCrossZero && model.getNeedCrossZero();\n    var modelMinRaw = this._modelMinRaw = model.get('min', true);\n\n    if (isFunction(modelMinRaw)) {\n      this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw({\n        min: dataExtent[0],\n        max: dataExtent[1]\n      }));\n    } else if (modelMinRaw !== 'dataMin') {\n      this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw);\n    }\n\n    var modelMaxRaw = this._modelMaxRaw = model.get('max', true);\n\n    if (isFunction(modelMaxRaw)) {\n      this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw({\n        min: dataExtent[0],\n        max: dataExtent[1]\n      }));\n    } else if (modelMaxRaw !== 'dataMax') {\n      this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw);\n    }\n\n    if (isOrdinal) {\n      this._axisDataLen = model.getCategories().length;\n    } else {\n      var boundaryGap = model.get('boundaryGap');\n      var boundaryGapArr = isArray(boundaryGap) ? boundaryGap : [boundaryGap || 0, boundaryGap || 0];\n\n      if (typeof boundaryGapArr[0] === 'boolean' || typeof boundaryGapArr[1] === 'boolean') {\n        if (process.env.NODE_ENV !== 'production') {\n          console.warn('Boolean type for boundaryGap is only ' + 'allowed for ordinal axis. Please use string in ' + 'percentage instead, e.g., \"20%\". Currently, ' + 'boundaryGap is set to be 0.');\n        }\n\n        this._boundaryGapInner = [0, 0];\n      } else {\n        this._boundaryGapInner = [parsePercent(boundaryGapArr[0], 1), parsePercent(boundaryGapArr[1], 1)];\n      }\n    }\n  };\n\n  ScaleRawExtentInfo.prototype.calculate = function () {\n    var isOrdinal = this._isOrdinal;\n    var dataMin = this._dataMin;\n    var dataMax = this._dataMax;\n    var axisDataLen = this._axisDataLen;\n    var boundaryGapInner = this._boundaryGapInner;\n    var span = !isOrdinal ? dataMax - dataMin || Math.abs(dataMin) : null;\n    var min = this._modelMinRaw === 'dataMin' ? dataMin : this._modelMinNum;\n    var max = this._modelMaxRaw === 'dataMax' ? dataMax : this._modelMaxNum;\n    var minFixed = min != null;\n    var maxFixed = max != null;\n\n    if (min == null) {\n      min = isOrdinal ? axisDataLen ? 0 : NaN : dataMin - boundaryGapInner[0] * span;\n    }\n\n    if (max == null) {\n      max = isOrdinal ? axisDataLen ? axisDataLen - 1 : NaN : dataMax + boundaryGapInner[1] * span;\n    }\n\n    (min == null || !isFinite(min)) && (min = NaN);\n    (max == null || !isFinite(max)) && (max = NaN);\n\n    if (min > max) {\n      min = NaN;\n      max = NaN;\n    }\n\n    var isBlank = eqNaN(min) || eqNaN(max) || isOrdinal && !axisDataLen;\n\n    if (this._needCrossZero) {\n      if (min > 0 && max > 0 && !minFixed) {\n        min = 0;\n      }\n\n      if (min < 0 && max < 0 && !maxFixed) {\n        max = 0;\n      }\n    }\n\n    var determinedMin = this._determinedMin;\n    var determinedMax = this._determinedMax;\n\n    if (determinedMin != null) {\n      min = determinedMin;\n      minFixed = true;\n    }\n\n    if (determinedMax != null) {\n      max = determinedMax;\n      maxFixed = true;\n    }\n\n    return {\n      min: min,\n      max: max,\n      minFixed: minFixed,\n      maxFixed: maxFixed,\n      isBlank: isBlank\n    };\n  };\n\n  ScaleRawExtentInfo.prototype.modifyDataMinMax = function (minMaxName, val) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!this.frozen);\n    }\n\n    this[DATA_MIN_MAX_ATTR[minMaxName]] = val;\n  };\n\n  ScaleRawExtentInfo.prototype.setDeterminedMinMax = function (minMaxName, val) {\n    var attr = DETERMINED_MIN_MAX_ATTR[minMaxName];\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!this.frozen && this[attr] == null);\n    }\n\n    this[attr] = val;\n  };\n\n  ScaleRawExtentInfo.prototype.freeze = function () {\n    this.frozen = true;\n  };\n\n  return ScaleRawExtentInfo;\n}();\n\nexport { ScaleRawExtentInfo };\nvar DETERMINED_MIN_MAX_ATTR = {\n  min: '_determinedMin',\n  max: '_determinedMax'\n};\nvar DATA_MIN_MAX_ATTR = {\n  min: '_dataMin',\n  max: '_dataMax'\n};\nexport function ensureScaleRawExtentInfo(scale, model, originalExtent) {\n  var rawExtentInfo = scale.rawExtentInfo;\n\n  if (rawExtentInfo) {\n    return rawExtentInfo;\n  }\n\n  rawExtentInfo = new ScaleRawExtentInfo(scale, model, originalExtent);\n  scale.rawExtentInfo = rawExtentInfo;\n  return rawExtentInfo;\n}\nexport function parseAxisModelMinMax(scale, minMax) {\n  return minMax == null ? null : eqNaN(minMax) ? NaN : scale.parse(minMax);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport OrdinalScale from '../scale/Ordinal';\nimport IntervalScale from '../scale/Interval';\nimport Scale from '../scale/Scale';\nimport { prepareLayoutBarSeries, makeColumnLayout, retrieveColumnLayout } from '../layout/barGrid';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport TimeScale from '../scale/Time';\nimport LogScale from '../scale/Log';\nimport { getStackedDimension } from '../data/helper/dataStackHelper';\nimport { ensureScaleRawExtentInfo } from './scaleRawExtentInfo';\nexport function getScaleExtent(scale, model) {\n  var scaleType = scale.type;\n  var rawExtentResult = ensureScaleRawExtentInfo(scale, model, scale.getExtent()).calculate();\n  scale.setBlank(rawExtentResult.isBlank);\n  var min = rawExtentResult.min;\n  var max = rawExtentResult.max;\n  var ecModel = model.ecModel;\n\n  if (ecModel && scaleType === 'time') {\n    var barSeriesModels = prepareLayoutBarSeries('bar', ecModel);\n    var isBaseAxisAndHasBarSeries_1 = false;\n    zrUtil.each(barSeriesModels, function (seriesModel) {\n      isBaseAxisAndHasBarSeries_1 = isBaseAxisAndHasBarSeries_1 || seriesModel.getBaseAxis() === model.axis;\n    });\n\n    if (isBaseAxisAndHasBarSeries_1) {\n      var barWidthAndOffset = makeColumnLayout(barSeriesModels);\n      var adjustedScale = adjustScaleForOverflow(min, max, model, barWidthAndOffset);\n      min = adjustedScale.min;\n      max = adjustedScale.max;\n    }\n  }\n\n  return {\n    extent: [min, max],\n    fixMin: rawExtentResult.minFixed,\n    fixMax: rawExtentResult.maxFixed\n  };\n}\n\nfunction adjustScaleForOverflow(min, max, model, barWidthAndOffset) {\n  var axisExtent = model.axis.getExtent();\n  var axisLength = axisExtent[1] - axisExtent[0];\n  var barsOnCurrentAxis = retrieveColumnLayout(barWidthAndOffset, model.axis);\n\n  if (barsOnCurrentAxis === undefined) {\n    return {\n      min: min,\n      max: max\n    };\n  }\n\n  var minOverflow = Infinity;\n  zrUtil.each(barsOnCurrentAxis, function (item) {\n    minOverflow = Math.min(item.offset, minOverflow);\n  });\n  var maxOverflow = -Infinity;\n  zrUtil.each(barsOnCurrentAxis, function (item) {\n    maxOverflow = Math.max(item.offset + item.width, maxOverflow);\n  });\n  minOverflow = Math.abs(minOverflow);\n  maxOverflow = Math.abs(maxOverflow);\n  var totalOverFlow = minOverflow + maxOverflow;\n  var oldRange = max - min;\n  var oldRangePercentOfNew = 1 - (minOverflow + maxOverflow) / axisLength;\n  var overflowBuffer = oldRange / oldRangePercentOfNew - oldRange;\n  max += overflowBuffer * (maxOverflow / totalOverFlow);\n  min -= overflowBuffer * (minOverflow / totalOverFlow);\n  return {\n    min: min,\n    max: max\n  };\n}\n\nexport function niceScaleExtent(scale, model) {\n  var extentInfo = getScaleExtent(scale, model);\n  var extent = extentInfo.extent;\n  var splitNumber = model.get('splitNumber');\n\n  if (scale instanceof LogScale) {\n    scale.base = model.get('logBase');\n  }\n\n  var scaleType = scale.type;\n  scale.setExtent(extent[0], extent[1]);\n  scale.niceExtent({\n    splitNumber: splitNumber,\n    fixMin: extentInfo.fixMin,\n    fixMax: extentInfo.fixMax,\n    minInterval: scaleType === 'interval' || scaleType === 'time' ? model.get('minInterval') : null,\n    maxInterval: scaleType === 'interval' || scaleType === 'time' ? model.get('maxInterval') : null\n  });\n  var interval = model.get('interval');\n\n  if (interval != null) {\n    scale.setInterval && scale.setInterval(interval);\n  }\n}\nexport function createScaleByModel(model, axisType) {\n  axisType = axisType || model.get('type');\n\n  if (axisType) {\n    switch (axisType) {\n      case 'category':\n        return new OrdinalScale({\n          ordinalMeta: model.getOrdinalMeta ? model.getOrdinalMeta() : model.getCategories(),\n          extent: [Infinity, -Infinity]\n        });\n\n      case 'time':\n        return new TimeScale({\n          locale: model.ecModel.getLocaleModel(),\n          useUTC: model.ecModel.get('useUTC')\n        });\n\n      default:\n        return new (Scale.getClass(axisType) || IntervalScale)();\n    }\n  }\n}\nexport function ifAxisCrossZero(axis) {\n  var dataExtent = axis.scale.getExtent();\n  var min = dataExtent[0];\n  var max = dataExtent[1];\n  return !(min > 0 && max > 0 || min < 0 && max < 0);\n}\nexport function makeLabelFormatter(axis) {\n  var labelFormatter = axis.getLabelModel().get('formatter');\n  var categoryTickStart = axis.type === 'category' ? axis.scale.getExtent()[0] : null;\n\n  if (axis.scale.type === 'time') {\n    return function (tpl) {\n      return function (tick, idx) {\n        return axis.scale.getFormattedLabel(tick, idx, tpl);\n      };\n    }(labelFormatter);\n  } else if (typeof labelFormatter === 'string') {\n    return function (tpl) {\n      return function (tick) {\n        var label = axis.scale.getLabel(tick);\n        var text = tpl.replace('{value}', label != null ? label : '');\n        return text;\n      };\n    }(labelFormatter);\n  } else if (typeof labelFormatter === 'function') {\n    return function (cb) {\n      return function (tick, idx) {\n        if (categoryTickStart != null) {\n          idx = tick.value - categoryTickStart;\n        }\n\n        return cb(getAxisRawValue(axis, tick), idx, tick.level != null ? {\n          level: tick.level\n        } : null);\n      };\n    }(labelFormatter);\n  } else {\n    return function (tick) {\n      return axis.scale.getLabel(tick);\n    };\n  }\n}\nexport function getAxisRawValue(axis, tick) {\n  return axis.type === 'category' ? axis.scale.getLabel(tick) : tick.value;\n}\nexport function estimateLabelUnionRect(axis) {\n  var axisModel = axis.model;\n  var scale = axis.scale;\n\n  if (!axisModel.get(['axisLabel', 'show']) || scale.isBlank()) {\n    return;\n  }\n\n  var realNumberScaleTicks;\n  var tickCount;\n  var categoryScaleExtent = scale.getExtent();\n\n  if (scale instanceof OrdinalScale) {\n    tickCount = scale.count();\n  } else {\n    realNumberScaleTicks = scale.getTicks();\n    tickCount = realNumberScaleTicks.length;\n  }\n\n  var axisLabelModel = axis.getLabelModel();\n  var labelFormatter = makeLabelFormatter(axis);\n  var rect;\n  var step = 1;\n\n  if (tickCount > 40) {\n    step = Math.ceil(tickCount / 40);\n  }\n\n  for (var i = 0; i < tickCount; i += step) {\n    var tick = realNumberScaleTicks ? realNumberScaleTicks[i] : {\n      value: categoryScaleExtent[0] + i\n    };\n    var label = labelFormatter(tick, i);\n    var unrotatedSingleRect = axisLabelModel.getTextRect(label);\n    var singleRect = rotateTextRect(unrotatedSingleRect, axisLabelModel.get('rotate') || 0);\n    rect ? rect.union(singleRect) : rect = singleRect;\n  }\n\n  return rect;\n}\n\nfunction rotateTextRect(textRect, rotate) {\n  var rotateRadians = rotate * Math.PI / 180;\n  var beforeWidth = textRect.width;\n  var beforeHeight = textRect.height;\n  var afterWidth = beforeWidth * Math.abs(Math.cos(rotateRadians)) + Math.abs(beforeHeight * Math.sin(rotateRadians));\n  var afterHeight = beforeWidth * Math.abs(Math.sin(rotateRadians)) + Math.abs(beforeHeight * Math.cos(rotateRadians));\n  var rotatedRect = new BoundingRect(textRect.x, textRect.y, afterWidth, afterHeight);\n  return rotatedRect;\n}\n\nexport function getOptionCategoryInterval(model) {\n  var interval = model.get('interval');\n  return interval == null ? 'auto' : interval;\n}\nexport function shouldShowAllLabels(axis) {\n  return axis.type === 'category' && getOptionCategoryInterval(axis.getLabelModel()) === 0;\n}\nexport function getDataDimensionsOnAxis(data, axisDim) {\n  var dataDimMap = {};\n  zrUtil.each(data.mapDimensionsAll(axisDim), function (dataDim) {\n    dataDimMap[getStackedDimension(data, dataDim)] = true;\n  });\n  return zrUtil.keys(dataDimMap);\n}\nexport function unionAxisExtentFromData(dataExtent, data, axisDim) {\n  if (data) {\n    zrUtil.each(getDataDimensionsOnAxis(data, axisDim), function (dim) {\n      var seriesExtent = data.getApproximateExtent(dim);\n      seriesExtent[0] < dataExtent[0] && (dataExtent[0] = seriesExtent[0]);\n      seriesExtent[1] > dataExtent[1] && (dataExtent[1] = seriesExtent[1]);\n    });\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar AxisModelCommonMixin = function () {\n  function AxisModelCommonMixin() {}\n\n  AxisModelCommonMixin.prototype.getNeedCrossZero = function () {\n    var option = this.option;\n    return !option.scale;\n  };\n\n  AxisModelCommonMixin.prototype.getCoordSysModel = function () {\n    return;\n  };\n\n  return AxisModelCommonMixin;\n}();\n\nexport { AxisModelCommonMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport createListFromArray from '../../chart/helper/createListFromArray';\nimport * as axisHelper from '../../coord/axisHelper';\nimport { AxisModelCommonMixin } from '../../coord/axisModelCommonMixin';\nimport Model from '../../model/Model';\nimport { getLayoutRect } from '../../util/layout';\nimport { enableDataStack, isDimensionStacked, getStackedDimension } from '../../data/helper/dataStackHelper';\nimport { getECData } from '../../util/innerStore';\nimport { createTextStyle as innerCreateTextStyle } from '../../label/labelStyle';\nexport function createList(seriesModel) {\n  return createListFromArray(seriesModel.getSource(), seriesModel);\n}\nexport { getLayoutRect };\nexport { default as createDimensions } from '../../data/helper/createDimensions';\nexport var dataStack = {\n  isDimensionStacked: isDimensionStacked,\n  enableDataStack: enableDataStack,\n  getStackedDimension: getStackedDimension\n};\nexport { createSymbol } from '../../util/symbol';\nexport function createScale(dataExtent, option) {\n  var axisModel = option;\n\n  if (!(option instanceof Model)) {\n    axisModel = new Model(option);\n  }\n\n  var scale = axisHelper.createScaleByModel(axisModel);\n  scale.setExtent(dataExtent[0], dataExtent[1]);\n  axisHelper.niceScaleExtent(scale, axisModel);\n  return scale;\n}\nexport function mixinAxisModelCommonMethods(Model) {\n  zrUtil.mixin(Model, AxisModelCommonMixin);\n}\nexport { getECData };\nexport { enableHoverEmphasis } from '../../util/states';\nexport function createTextStyle(textStyleModel, opts) {\n  opts = opts || {};\n  return innerCreateTextStyle(textStyleModel, null, null, opts.state !== 'normal');\n}","import windingLine from './windingLine';\nvar EPSILON = 1e-8;\nfunction isAroundEqual(a, b) {\n    return Math.abs(a - b) < EPSILON;\n}\nexport function contain(points, x, y) {\n    var w = 0;\n    var p = points[0];\n    if (!p) {\n        return false;\n    }\n    for (var i = 1; i < points.length; i++) {\n        var p2 = points[i];\n        w += windingLine(p[0], p[1], p2[0], p2[1], x, y);\n        p = p2;\n    }\n    var p0 = points[0];\n    if (!isAroundEqual(p[0], p0[0]) || !isAroundEqual(p[1], p0[1])) {\n        w += windingLine(p[0], p[1], p0[0], p0[1], x, y);\n    }\n    return w !== 0;\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport * as bbox from 'zrender/lib/core/bbox';\nimport * as vec2 from 'zrender/lib/core/vector';\nimport * as polygonContain from 'zrender/lib/contain/polygon';\n\nvar Region = function () {\n  function Region(name, geometries, cp) {\n    this.name = name;\n    this.geometries = geometries;\n\n    if (!cp) {\n      var rect = this.getBoundingRect();\n      cp = [rect.x + rect.width / 2, rect.y + rect.height / 2];\n    } else {\n      cp = [cp[0], cp[1]];\n    }\n\n    this.center = cp;\n  }\n\n  Region.prototype.getBoundingRect = function () {\n    var rect = this._rect;\n\n    if (rect) {\n      return rect;\n    }\n\n    var MAX_NUMBER = Number.MAX_VALUE;\n    var min = [MAX_NUMBER, MAX_NUMBER];\n    var max = [-MAX_NUMBER, -MAX_NUMBER];\n    var min2 = [];\n    var max2 = [];\n    var geometries = this.geometries;\n    var i = 0;\n\n    for (; i < geometries.length; i++) {\n      if (geometries[i].type !== 'polygon') {\n        continue;\n      }\n\n      var exterior = geometries[i].exterior;\n      bbox.fromPoints(exterior, min2, max2);\n      vec2.min(min, min, min2);\n      vec2.max(max, max, max2);\n    }\n\n    if (i === 0) {\n      min[0] = min[1] = max[0] = max[1] = 0;\n    }\n\n    return this._rect = new BoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n  };\n\n  Region.prototype.contain = function (coord) {\n    var rect = this.getBoundingRect();\n    var geometries = this.geometries;\n\n    if (!rect.contain(coord[0], coord[1])) {\n      return false;\n    }\n\n    loopGeo: for (var i = 0, len = geometries.length; i < len; i++) {\n      if (geometries[i].type !== 'polygon') {\n        continue;\n      }\n\n      var exterior = geometries[i].exterior;\n      var interiors = geometries[i].interiors;\n\n      if (polygonContain.contain(exterior, coord[0], coord[1])) {\n        for (var k = 0; k < (interiors ? interiors.length : 0); k++) {\n          if (polygonContain.contain(interiors[k], coord[0], coord[1])) {\n            continue loopGeo;\n          }\n        }\n\n        return true;\n      }\n    }\n\n    return false;\n  };\n\n  Region.prototype.transformTo = function (x, y, width, height) {\n    var rect = this.getBoundingRect();\n    var aspect = rect.width / rect.height;\n\n    if (!width) {\n      width = aspect * height;\n    } else if (!height) {\n      height = width / aspect;\n    }\n\n    var target = new BoundingRect(x, y, width, height);\n    var transform = rect.calculateTransform(target);\n    var geometries = this.geometries;\n\n    for (var i = 0; i < geometries.length; i++) {\n      if (geometries[i].type !== 'polygon') {\n        continue;\n      }\n\n      var exterior = geometries[i].exterior;\n      var interiors = geometries[i].interiors;\n\n      for (var p = 0; p < exterior.length; p++) {\n        vec2.applyTransform(exterior[p], exterior[p], transform);\n      }\n\n      for (var h = 0; h < (interiors ? interiors.length : 0); h++) {\n        for (var p = 0; p < interiors[h].length; p++) {\n          vec2.applyTransform(interiors[h][p], interiors[h][p], transform);\n        }\n      }\n    }\n\n    rect = this._rect;\n    rect.copy(target);\n    this.center = [rect.x + rect.width / 2, rect.y + rect.height / 2];\n  };\n\n  Region.prototype.cloneShallow = function (name) {\n    name == null && (name = this.name);\n    var newRegion = new Region(name, this.geometries, this.center);\n    newRegion._rect = this._rect;\n    newRegion.transformTo = null;\n    return newRegion;\n  };\n\n  return Region;\n}();\n\nexport default Region;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Region from './Region';\n\nfunction decode(json) {\n  if (!json.UTF8Encoding) {\n    return json;\n  }\n\n  var jsonCompressed = json;\n  var encodeScale = jsonCompressed.UTF8Scale;\n\n  if (encodeScale == null) {\n    encodeScale = 1024;\n  }\n\n  var features = jsonCompressed.features;\n\n  for (var f = 0; f < features.length; f++) {\n    var feature = features[f];\n    var geometry = feature.geometry;\n\n    if (geometry.type === 'Polygon') {\n      var coordinates = geometry.coordinates;\n\n      for (var c = 0; c < coordinates.length; c++) {\n        coordinates[c] = decodePolygon(coordinates[c], geometry.encodeOffsets[c], encodeScale);\n      }\n    } else if (geometry.type === 'MultiPolygon') {\n      var coordinates = geometry.coordinates;\n\n      for (var c = 0; c < coordinates.length; c++) {\n        var coordinate = coordinates[c];\n\n        for (var c2 = 0; c2 < coordinate.length; c2++) {\n          coordinate[c2] = decodePolygon(coordinate[c2], geometry.encodeOffsets[c][c2], encodeScale);\n        }\n      }\n    }\n  }\n\n  jsonCompressed.UTF8Encoding = false;\n  return jsonCompressed;\n}\n\nfunction decodePolygon(coordinate, encodeOffsets, encodeScale) {\n  var result = [];\n  var prevX = encodeOffsets[0];\n  var prevY = encodeOffsets[1];\n\n  for (var i = 0; i < coordinate.length; i += 2) {\n    var x = coordinate.charCodeAt(i) - 64;\n    var y = coordinate.charCodeAt(i + 1) - 64;\n    x = x >> 1 ^ -(x & 1);\n    y = y >> 1 ^ -(y & 1);\n    x += prevX;\n    y += prevY;\n    prevX = x;\n    prevY = y;\n    result.push([x / encodeScale, y / encodeScale]);\n  }\n\n  return result;\n}\n\nexport default function parseGeoJSON(geoJson, nameProperty) {\n  geoJson = decode(geoJson);\n  return zrUtil.map(zrUtil.filter(geoJson.features, function (featureObj) {\n    return featureObj.geometry && featureObj.properties && featureObj.geometry.coordinates.length > 0;\n  }), function (featureObj) {\n    var properties = featureObj.properties;\n    var geo = featureObj.geometry;\n    var geometries = [];\n\n    if (geo.type === 'Polygon') {\n      var coordinates = geo.coordinates;\n      geometries.push({\n        type: 'polygon',\n        exterior: coordinates[0],\n        interiors: coordinates.slice(1)\n      });\n    }\n\n    if (geo.type === 'MultiPolygon') {\n      var coordinates = geo.coordinates;\n      zrUtil.each(coordinates, function (item) {\n        if (item[0]) {\n          geometries.push({\n            type: 'polygon',\n            exterior: item[0],\n            interiors: item.slice(1)\n          });\n        }\n      });\n    }\n\n    var region = new Region(properties[nameProperty || 'name'], geometries, properties.cp);\n    region.properties = properties;\n    return region;\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as textContain from 'zrender/lib/contain/text';\nimport { makeInner } from '../util/model';\nimport { makeLabelFormatter, getOptionCategoryInterval, shouldShowAllLabels } from './axisHelper';\nvar inner = makeInner();\nexport function createAxisLabels(axis) {\n  return axis.type === 'category' ? makeCategoryLabels(axis) : makeRealNumberLabels(axis);\n}\nexport function createAxisTicks(axis, tickModel) {\n  return axis.type === 'category' ? makeCategoryTicks(axis, tickModel) : {\n    ticks: zrUtil.map(axis.scale.getTicks(), function (tick) {\n      return tick.value;\n    })\n  };\n}\n\nfunction makeCategoryLabels(axis) {\n  var labelModel = axis.getLabelModel();\n  var result = makeCategoryLabelsActually(axis, labelModel);\n  return !labelModel.get('show') || axis.scale.isBlank() ? {\n    labels: [],\n    labelCategoryInterval: result.labelCategoryInterval\n  } : result;\n}\n\nfunction makeCategoryLabelsActually(axis, labelModel) {\n  var labelsCache = getListCache(axis, 'labels');\n  var optionLabelInterval = getOptionCategoryInterval(labelModel);\n  var result = listCacheGet(labelsCache, optionLabelInterval);\n\n  if (result) {\n    return result;\n  }\n\n  var labels;\n  var numericLabelInterval;\n\n  if (zrUtil.isFunction(optionLabelInterval)) {\n    labels = makeLabelsByCustomizedCategoryInterval(axis, optionLabelInterval);\n  } else {\n    numericLabelInterval = optionLabelInterval === 'auto' ? makeAutoCategoryInterval(axis) : optionLabelInterval;\n    labels = makeLabelsByNumericCategoryInterval(axis, numericLabelInterval);\n  }\n\n  return listCacheSet(labelsCache, optionLabelInterval, {\n    labels: labels,\n    labelCategoryInterval: numericLabelInterval\n  });\n}\n\nfunction makeCategoryTicks(axis, tickModel) {\n  var ticksCache = getListCache(axis, 'ticks');\n  var optionTickInterval = getOptionCategoryInterval(tickModel);\n  var result = listCacheGet(ticksCache, optionTickInterval);\n\n  if (result) {\n    return result;\n  }\n\n  var ticks;\n  var tickCategoryInterval;\n\n  if (!tickModel.get('show') || axis.scale.isBlank()) {\n    ticks = [];\n  }\n\n  if (zrUtil.isFunction(optionTickInterval)) {\n    ticks = makeLabelsByCustomizedCategoryInterval(axis, optionTickInterval, true);\n  } else if (optionTickInterval === 'auto') {\n    var labelsResult = makeCategoryLabelsActually(axis, axis.getLabelModel());\n    tickCategoryInterval = labelsResult.labelCategoryInterval;\n    ticks = zrUtil.map(labelsResult.labels, function (labelItem) {\n      return labelItem.tickValue;\n    });\n  } else {\n    tickCategoryInterval = optionTickInterval;\n    ticks = makeLabelsByNumericCategoryInterval(axis, tickCategoryInterval, true);\n  }\n\n  return listCacheSet(ticksCache, optionTickInterval, {\n    ticks: ticks,\n    tickCategoryInterval: tickCategoryInterval\n  });\n}\n\nfunction makeRealNumberLabels(axis) {\n  var ticks = axis.scale.getTicks();\n  var labelFormatter = makeLabelFormatter(axis);\n  return {\n    labels: zrUtil.map(ticks, function (tick, idx) {\n      return {\n        formattedLabel: labelFormatter(tick, idx),\n        rawLabel: axis.scale.getLabel(tick),\n        tickValue: tick.value\n      };\n    })\n  };\n}\n\nfunction getListCache(axis, prop) {\n  return inner(axis)[prop] || (inner(axis)[prop] = []);\n}\n\nfunction listCacheGet(cache, key) {\n  for (var i = 0; i < cache.length; i++) {\n    if (cache[i].key === key) {\n      return cache[i].value;\n    }\n  }\n}\n\nfunction listCacheSet(cache, key, value) {\n  cache.push({\n    key: key,\n    value: value\n  });\n  return value;\n}\n\nfunction makeAutoCategoryInterval(axis) {\n  var result = inner(axis).autoInterval;\n  return result != null ? result : inner(axis).autoInterval = axis.calculateCategoryInterval();\n}\n\nexport function calculateCategoryInterval(axis) {\n  var params = fetchAutoCategoryIntervalCalculationParams(axis);\n  var labelFormatter = makeLabelFormatter(axis);\n  var rotation = (params.axisRotate - params.labelRotate) / 180 * Math.PI;\n  var ordinalScale = axis.scale;\n  var ordinalExtent = ordinalScale.getExtent();\n  var tickCount = ordinalScale.count();\n\n  if (ordinalExtent[1] - ordinalExtent[0] < 1) {\n    return 0;\n  }\n\n  var step = 1;\n\n  if (tickCount > 40) {\n    step = Math.max(1, Math.floor(tickCount / 40));\n  }\n\n  var tickValue = ordinalExtent[0];\n  var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue);\n  var unitW = Math.abs(unitSpan * Math.cos(rotation));\n  var unitH = Math.abs(unitSpan * Math.sin(rotation));\n  var maxW = 0;\n  var maxH = 0;\n\n  for (; tickValue <= ordinalExtent[1]; tickValue += step) {\n    var width = 0;\n    var height = 0;\n    var rect = textContain.getBoundingRect(labelFormatter({\n      value: tickValue\n    }), params.font, 'center', 'top');\n    width = rect.width * 1.3;\n    height = rect.height * 1.3;\n    maxW = Math.max(maxW, width, 7);\n    maxH = Math.max(maxH, height, 7);\n  }\n\n  var dw = maxW / unitW;\n  var dh = maxH / unitH;\n  isNaN(dw) && (dw = Infinity);\n  isNaN(dh) && (dh = Infinity);\n  var interval = Math.max(0, Math.floor(Math.min(dw, dh)));\n  var cache = inner(axis.model);\n  var axisExtent = axis.getExtent();\n  var lastAutoInterval = cache.lastAutoInterval;\n  var lastTickCount = cache.lastTickCount;\n\n  if (lastAutoInterval != null && lastTickCount != null && Math.abs(lastAutoInterval - interval) <= 1 && Math.abs(lastTickCount - tickCount) <= 1 && lastAutoInterval > interval && cache.axisExtent0 === axisExtent[0] && cache.axisExtent1 === axisExtent[1]) {\n    interval = lastAutoInterval;\n  } else {\n    cache.lastTickCount = tickCount;\n    cache.lastAutoInterval = interval;\n    cache.axisExtent0 = axisExtent[0];\n    cache.axisExtent1 = axisExtent[1];\n  }\n\n  return interval;\n}\n\nfunction fetchAutoCategoryIntervalCalculationParams(axis) {\n  var labelModel = axis.getLabelModel();\n  return {\n    axisRotate: axis.getRotate ? axis.getRotate() : axis.isHorizontal && !axis.isHorizontal() ? 90 : 0,\n    labelRotate: labelModel.get('rotate') || 0,\n    font: labelModel.getFont()\n  };\n}\n\nfunction makeLabelsByNumericCategoryInterval(axis, categoryInterval, onlyTick) {\n  var labelFormatter = makeLabelFormatter(axis);\n  var ordinalScale = axis.scale;\n  var ordinalExtent = ordinalScale.getExtent();\n  var labelModel = axis.getLabelModel();\n  var result = [];\n  var step = Math.max((categoryInterval || 0) + 1, 1);\n  var startTick = ordinalExtent[0];\n  var tickCount = ordinalScale.count();\n\n  if (startTick !== 0 && step > 1 && tickCount / step > 2) {\n    startTick = Math.round(Math.ceil(startTick / step) * step);\n  }\n\n  var showAllLabel = shouldShowAllLabels(axis);\n  var includeMinLabel = labelModel.get('showMinLabel') || showAllLabel;\n  var includeMaxLabel = labelModel.get('showMaxLabel') || showAllLabel;\n\n  if (includeMinLabel && startTick !== ordinalExtent[0]) {\n    addItem(ordinalExtent[0]);\n  }\n\n  var tickValue = startTick;\n\n  for (; tickValue <= ordinalExtent[1]; tickValue += step) {\n    addItem(tickValue);\n  }\n\n  if (includeMaxLabel && tickValue - step !== ordinalExtent[1]) {\n    addItem(ordinalExtent[1]);\n  }\n\n  function addItem(tickValue) {\n    var tickObj = {\n      value: tickValue\n    };\n    result.push(onlyTick ? tickValue : {\n      formattedLabel: labelFormatter(tickObj),\n      rawLabel: ordinalScale.getLabel(tickObj),\n      tickValue: tickValue\n    });\n  }\n\n  return result;\n}\n\nfunction makeLabelsByCustomizedCategoryInterval(axis, categoryInterval, onlyTick) {\n  var ordinalScale = axis.scale;\n  var labelFormatter = makeLabelFormatter(axis);\n  var result = [];\n  zrUtil.each(ordinalScale.getTicks(), function (tick) {\n    var rawLabel = ordinalScale.getLabel(tick);\n    var tickValue = tick.value;\n\n    if (categoryInterval(tick.value, rawLabel)) {\n      result.push(onlyTick ? tickValue : {\n        formattedLabel: labelFormatter(tick),\n        rawLabel: rawLabel,\n        tickValue: tickValue\n      });\n    }\n  });\n  return result;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, map } from 'zrender/lib/core/util';\nimport { linearMap, getPixelPrecision, round } from '../util/number';\nimport { createAxisTicks, createAxisLabels, calculateCategoryInterval } from './axisTickLabelBuilder';\nvar NORMALIZED_EXTENT = [0, 1];\n\nvar Axis = function () {\n  function Axis(dim, scale, extent) {\n    this.onBand = false;\n    this.inverse = false;\n    this.dim = dim;\n    this.scale = scale;\n    this._extent = extent || [0, 0];\n  }\n\n  Axis.prototype.contain = function (coord) {\n    var extent = this._extent;\n    var min = Math.min(extent[0], extent[1]);\n    var max = Math.max(extent[0], extent[1]);\n    return coord >= min && coord <= max;\n  };\n\n  Axis.prototype.containData = function (data) {\n    return this.scale.contain(data);\n  };\n\n  Axis.prototype.getExtent = function () {\n    return this._extent.slice();\n  };\n\n  Axis.prototype.getPixelPrecision = function (dataExtent) {\n    return getPixelPrecision(dataExtent || this.scale.getExtent(), this._extent);\n  };\n\n  Axis.prototype.setExtent = function (start, end) {\n    var extent = this._extent;\n    extent[0] = start;\n    extent[1] = end;\n  };\n\n  Axis.prototype.dataToCoord = function (data, clamp) {\n    var extent = this._extent;\n    var scale = this.scale;\n    data = scale.normalize(data);\n\n    if (this.onBand && scale.type === 'ordinal') {\n      extent = extent.slice();\n      fixExtentWithBands(extent, scale.count());\n    }\n\n    return linearMap(data, NORMALIZED_EXTENT, extent, clamp);\n  };\n\n  Axis.prototype.coordToData = function (coord, clamp) {\n    var extent = this._extent;\n    var scale = this.scale;\n\n    if (this.onBand && scale.type === 'ordinal') {\n      extent = extent.slice();\n      fixExtentWithBands(extent, scale.count());\n    }\n\n    var t = linearMap(coord, extent, NORMALIZED_EXTENT, clamp);\n    return this.scale.scale(t);\n  };\n\n  Axis.prototype.pointToData = function (point, clamp) {\n    return;\n  };\n\n  Axis.prototype.getTicksCoords = function (opt) {\n    opt = opt || {};\n    var tickModel = opt.tickModel || this.getTickModel();\n    var result = createAxisTicks(this, tickModel);\n    var ticks = result.ticks;\n    var ticksCoords = map(ticks, function (tickVal) {\n      return {\n        coord: this.dataToCoord(this.scale.type === 'ordinal' ? this.scale.getRawOrdinalNumber(tickVal) : tickVal),\n        tickValue: tickVal\n      };\n    }, this);\n    var alignWithLabel = tickModel.get('alignWithLabel');\n    fixOnBandTicksCoords(this, ticksCoords, alignWithLabel, opt.clamp);\n    return ticksCoords;\n  };\n\n  Axis.prototype.getMinorTicksCoords = function () {\n    if (this.scale.type === 'ordinal') {\n      return [];\n    }\n\n    var minorTickModel = this.model.getModel('minorTick');\n    var splitNumber = minorTickModel.get('splitNumber');\n\n    if (!(splitNumber > 0 && splitNumber < 100)) {\n      splitNumber = 5;\n    }\n\n    var minorTicks = this.scale.getMinorTicks(splitNumber);\n    var minorTicksCoords = map(minorTicks, function (minorTicksGroup) {\n      return map(minorTicksGroup, function (minorTick) {\n        return {\n          coord: this.dataToCoord(minorTick),\n          tickValue: minorTick\n        };\n      }, this);\n    }, this);\n    return minorTicksCoords;\n  };\n\n  Axis.prototype.getViewLabels = function () {\n    return createAxisLabels(this).labels;\n  };\n\n  Axis.prototype.getLabelModel = function () {\n    return this.model.getModel('axisLabel');\n  };\n\n  Axis.prototype.getTickModel = function () {\n    return this.model.getModel('axisTick');\n  };\n\n  Axis.prototype.getBandWidth = function () {\n    var axisExtent = this._extent;\n    var dataExtent = this.scale.getExtent();\n    var len = dataExtent[1] - dataExtent[0] + (this.onBand ? 1 : 0);\n    len === 0 && (len = 1);\n    var size = Math.abs(axisExtent[1] - axisExtent[0]);\n    return Math.abs(size) / len;\n  };\n\n  Axis.prototype.calculateCategoryInterval = function () {\n    return calculateCategoryInterval(this);\n  };\n\n  return Axis;\n}();\n\nfunction fixExtentWithBands(extent, nTick) {\n  var size = extent[1] - extent[0];\n  var len = nTick;\n  var margin = size / len / 2;\n  extent[0] += margin;\n  extent[1] -= margin;\n}\n\nfunction fixOnBandTicksCoords(axis, ticksCoords, alignWithLabel, clamp) {\n  var ticksLen = ticksCoords.length;\n\n  if (!axis.onBand || alignWithLabel || !ticksLen) {\n    return;\n  }\n\n  var axisExtent = axis.getExtent();\n  var last;\n  var diffSize;\n\n  if (ticksLen === 1) {\n    ticksCoords[0].coord = axisExtent[0];\n    last = ticksCoords[1] = {\n      coord: axisExtent[0]\n    };\n  } else {\n    var crossLen = ticksCoords[ticksLen - 1].tickValue - ticksCoords[0].tickValue;\n    var shift_1 = (ticksCoords[ticksLen - 1].coord - ticksCoords[0].coord) / crossLen;\n    each(ticksCoords, function (ticksItem) {\n      ticksItem.coord -= shift_1 / 2;\n    });\n    var dataExtent = axis.scale.getExtent();\n    diffSize = 1 + dataExtent[1] - ticksCoords[ticksLen - 1].tickValue;\n    last = {\n      coord: ticksCoords[ticksLen - 1].coord + shift_1 * diffSize\n    };\n    ticksCoords.push(last);\n  }\n\n  var inverse = axisExtent[0] > axisExtent[1];\n\n  if (littleThan(ticksCoords[0].coord, axisExtent[0])) {\n    clamp ? ticksCoords[0].coord = axisExtent[0] : ticksCoords.shift();\n  }\n\n  if (clamp && littleThan(axisExtent[0], ticksCoords[0].coord)) {\n    ticksCoords.unshift({\n      coord: axisExtent[0]\n    });\n  }\n\n  if (littleThan(axisExtent[1], last.coord)) {\n    clamp ? last.coord = axisExtent[1] : ticksCoords.pop();\n  }\n\n  if (clamp && littleThan(last.coord, axisExtent[1])) {\n    ticksCoords.push({\n      coord: axisExtent[1]\n    });\n  }\n\n  function littleThan(a, b) {\n    a = round(a);\n    b = round(b);\n    return inverse ? a > b : a < b;\n  }\n}\n\nexport default Axis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ComponentModel from '../model/Component';\nimport ComponentView from '../view/Component';\nimport SeriesModel from '../model/Series';\nimport ChartView from '../view/Chart';\nimport * as zrender_1 from 'zrender/lib/zrender';\nexport { zrender_1 as zrender };\nimport * as matrix_1 from 'zrender/lib/core/matrix';\nexport { matrix_1 as matrix };\nimport * as vector_1 from 'zrender/lib/core/vector';\nexport { vector_1 as vector };\nimport * as zrUtil_1 from 'zrender/lib/core/util';\nexport { zrUtil_1 as zrUtil };\nimport * as color_1 from 'zrender/lib/tool/color';\nexport { color_1 as color };\nexport { throttle } from '../util/throttle';\nimport * as helper_1 from './api/helper';\nexport { helper_1 as helper };\nexport { use } from '../extension';\nexport { default as parseGeoJSON } from '../coord/geo/parseGeoJson';\nexport { default as parseGeoJson } from '../coord/geo/parseGeoJson';\nimport * as number_1 from './api/number';\nexport { number_1 as number };\nimport * as time_1 from './api/time';\nexport { time_1 as time };\nimport * as graphic_1 from './api/graphic';\nexport { graphic_1 as graphic };\nimport * as format_1 from './api/format';\nexport { format_1 as format };\nimport * as util_1 from './api/util';\nexport { util_1 as util };\nexport { default as env } from 'zrender/lib/core/env';\nexport { default as List } from '../data/List';\nexport { default as Model } from '../model/Model';\nexport { default as Axis } from '../coord/Axis';\nexport { ComponentModel, ComponentView, SeriesModel, ChartView };\nexport { brushSingle as innerDrawElementOnCanvas } from 'zrender/lib/canvas/graphic';\nexport function extendComponentModel(proto) {\n  var Model = ComponentModel.extend(proto);\n  ComponentModel.registerClass(Model);\n  return Model;\n}\nexport function extendComponentView(proto) {\n  var View = ComponentView.extend(proto);\n  ComponentView.registerClass(View);\n  return View;\n}\nexport function extendSeriesModel(proto) {\n  var Model = SeriesModel.extend(proto);\n  SeriesModel.registerClass(Model);\n  return Model;\n}\nexport function extendChartView(proto) {\n  var View = ChartView.extend(proto);\n  ChartView.registerClass(View);\n  return View;\n}","export function createElement(name) {\n    return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\n","function diff(oldArr, newArr, equals) {\n    if (!equals) {\n        equals = function (a, b) {\n            return a === b;\n        };\n    }\n    oldArr = oldArr.slice();\n    newArr = newArr.slice();\n    var newLen = newArr.length;\n    var oldLen = oldArr.length;\n    var editLength = 1;\n    var maxEditLength = newLen + oldLen;\n    var bestPath = [{ newPos: -1, components: [] }];\n    var oldPos = extractCommon(bestPath[0], newArr, oldArr, 0, equals);\n    if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n        var indices = [];\n        for (var i = 0; i < newArr.length; i++) {\n            indices.push(i);\n        }\n        return [{\n                indices: indices,\n                count: newArr.length,\n                added: false,\n                removed: false\n            }];\n    }\n    function execEditLength() {\n        for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {\n            var basePath;\n            var addPath = bestPath[diagonalPath - 1];\n            var removePath = bestPath[diagonalPath + 1];\n            var oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;\n            if (addPath) {\n                bestPath[diagonalPath - 1] = undefined;\n            }\n            var canAdd = addPath && addPath.newPos + 1 < newLen;\n            var canRemove = removePath && 0 <= oldPos && oldPos < oldLen;\n            if (!canAdd && !canRemove) {\n                bestPath[diagonalPath] = undefined;\n                continue;\n            }\n            if (!canAdd || (canRemove && addPath.newPos < removePath.newPos)) {\n                basePath = clonePath(removePath);\n                pushComponent(basePath.components, false, true);\n            }\n            else {\n                basePath = addPath;\n                basePath.newPos++;\n                pushComponent(basePath.components, true, false);\n            }\n            oldPos = extractCommon(basePath, newArr, oldArr, diagonalPath, equals);\n            if (basePath.newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n                return buildValues(basePath.components);\n            }\n            else {\n                bestPath[diagonalPath] = basePath;\n            }\n        }\n        editLength++;\n    }\n    while (editLength <= maxEditLength) {\n        var ret = execEditLength();\n        if (ret) {\n            return ret;\n        }\n    }\n}\nfunction extractCommon(basePath, newArr, oldArr, diagonalPath, equals) {\n    var newLen = newArr.length;\n    var oldLen = oldArr.length;\n    var newPos = basePath.newPos;\n    var oldPos = newPos - diagonalPath;\n    var commonCount = 0;\n    while (newPos + 1 < newLen && oldPos + 1 < oldLen && equals(newArr[newPos + 1], oldArr[oldPos + 1])) {\n        newPos++;\n        oldPos++;\n        commonCount++;\n    }\n    if (commonCount) {\n        basePath.components.push({\n            count: commonCount,\n            added: false,\n            removed: false,\n            indices: []\n        });\n    }\n    basePath.newPos = newPos;\n    return oldPos;\n}\nfunction pushComponent(components, added, removed) {\n    var last = components[components.length - 1];\n    if (last && last.added === added && last.removed === removed) {\n        components[components.length - 1] = {\n            count: last.count + 1,\n            added: added,\n            removed: removed,\n            indices: []\n        };\n    }\n    else {\n        components.push({\n            count: 1,\n            added: added,\n            removed: removed,\n            indices: []\n        });\n    }\n}\nfunction buildValues(components) {\n    var componentPos = 0;\n    var componentLen = components.length;\n    var newPos = 0;\n    var oldPos = 0;\n    for (; componentPos < componentLen; componentPos++) {\n        var component = components[componentPos];\n        if (!component.removed) {\n            var indices = [];\n            for (var i = newPos; i < newPos + component.count; i++) {\n                indices.push(i);\n            }\n            component.indices = indices;\n            newPos += component.count;\n            if (!component.added) {\n                oldPos += component.count;\n            }\n        }\n        else {\n            for (var i = oldPos; i < oldPos + component.count; i++) {\n                component.indices.push(i);\n            }\n            oldPos += component.count;\n        }\n    }\n    return components;\n}\nfunction clonePath(path) {\n    return { newPos: path.newPos, components: path.components.slice(0) };\n}\nexport default function arrayDiff(oldArr, newArr, equal) {\n    return diff(oldArr, newArr, equal);\n}\n","import { createElement } from './core';\nimport ZRImage from '../graphic/Image';\nimport { DEFAULT_FONT, getLineHeight } from '../contain/text';\nimport { map } from '../core/util';\nimport { normalizeLineDash } from '../graphic/helper/dashStyle';\nvar NONE = 'none';\nvar mathRound = Math.round;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI = Math.PI;\nvar PI2 = Math.PI * 2;\nvar degree = 180 / PI;\nvar EPSILON = 1e-4;\nfunction round3(val) {\n    return mathRound(val * 1e3) / 1e3;\n}\nfunction round4(val) {\n    return mathRound(val * 1e4) / 1e4;\n}\nfunction isAroundZero(val) {\n    return val < EPSILON && val > -EPSILON;\n}\nfunction pathHasFill(style) {\n    var fill = style.fill;\n    return fill != null && fill !== NONE;\n}\nfunction pathHasStroke(style) {\n    var stroke = style.stroke;\n    return stroke != null && stroke !== NONE;\n}\nfunction setTransform(svgEl, m) {\n    if (m) {\n        attr(svgEl, 'transform', 'matrix('\n            + round3(m[0]) + ','\n            + round3(m[1]) + ','\n            + round3(m[2]) + ','\n            + round3(m[3]) + ','\n            + round4(m[4]) + ','\n            + round4(m[5])\n            + ')');\n    }\n}\nfunction attr(el, key, val) {\n    if (!val || val.type !== 'linear' && val.type !== 'radial') {\n        el.setAttribute(key, val);\n    }\n}\nfunction attrXLink(el, key, val) {\n    el.setAttributeNS('http://www.w3.org/1999/xlink', key, val);\n}\nfunction attrXML(el, key, val) {\n    el.setAttributeNS('http://www.w3.org/XML/1998/namespace', key, val);\n}\nfunction bindStyle(svgEl, style, el) {\n    var opacity = style.opacity == null ? 1 : style.opacity;\n    if (el instanceof ZRImage) {\n        svgEl.style.opacity = opacity + '';\n        return;\n    }\n    if (pathHasFill(style)) {\n        var fill = style.fill;\n        fill = fill === 'transparent' ? NONE : fill;\n        attr(svgEl, 'fill', fill);\n        attr(svgEl, 'fill-opacity', (style.fillOpacity != null ? style.fillOpacity * opacity : opacity) + '');\n    }\n    else {\n        attr(svgEl, 'fill', NONE);\n    }\n    if (pathHasStroke(style)) {\n        var stroke = style.stroke;\n        stroke = stroke === 'transparent' ? NONE : stroke;\n        attr(svgEl, 'stroke', stroke);\n        var strokeWidth = style.lineWidth;\n        var strokeScale_1 = style.strokeNoScale\n            ? el.getLineScale()\n            : 1;\n        attr(svgEl, 'stroke-width', (strokeScale_1 ? strokeWidth / strokeScale_1 : 0) + '');\n        attr(svgEl, 'paint-order', style.strokeFirst ? 'stroke' : 'fill');\n        attr(svgEl, 'stroke-opacity', (style.strokeOpacity != null ? style.strokeOpacity * opacity : opacity) + '');\n        var lineDash = style.lineDash && strokeWidth > 0 && normalizeLineDash(style.lineDash, strokeWidth);\n        if (lineDash) {\n            var lineDashOffset = style.lineDashOffset;\n            if (strokeScale_1 && strokeScale_1 !== 1) {\n                lineDash = map(lineDash, function (rawVal) {\n                    return rawVal / strokeScale_1;\n                });\n                if (lineDashOffset) {\n                    lineDashOffset /= strokeScale_1;\n                    lineDashOffset = mathRound(lineDashOffset);\n                }\n            }\n            attr(svgEl, 'stroke-dasharray', lineDash.join(','));\n            attr(svgEl, 'stroke-dashoffset', (lineDashOffset || 0) + '');\n        }\n        else {\n            attr(svgEl, 'stroke-dasharray', '');\n        }\n        style.lineCap && attr(svgEl, 'stroke-linecap', style.lineCap);\n        style.lineJoin && attr(svgEl, 'stroke-linejoin', style.lineJoin);\n        style.miterLimit && attr(svgEl, 'stroke-miterlimit', style.miterLimit + '');\n    }\n    else {\n        attr(svgEl, 'stroke', NONE);\n    }\n}\nvar SVGPathRebuilder = (function () {\n    function SVGPathRebuilder() {\n    }\n    SVGPathRebuilder.prototype.reset = function () {\n        this._d = [];\n        this._str = '';\n    };\n    SVGPathRebuilder.prototype.moveTo = function (x, y) {\n        this._add('M', x, y);\n    };\n    SVGPathRebuilder.prototype.lineTo = function (x, y) {\n        this._add('L', x, y);\n    };\n    SVGPathRebuilder.prototype.bezierCurveTo = function (x, y, x2, y2, x3, y3) {\n        this._add('C', x, y, x2, y2, x3, y3);\n    };\n    SVGPathRebuilder.prototype.quadraticCurveTo = function (x, y, x2, y2) {\n        this._add('Q', x, y, x2, y2);\n    };\n    SVGPathRebuilder.prototype.arc = function (cx, cy, r, startAngle, endAngle, anticlockwise) {\n        this.ellipse(cx, cy, r, r, 0, startAngle, endAngle, anticlockwise);\n    };\n    SVGPathRebuilder.prototype.ellipse = function (cx, cy, rx, ry, psi, startAngle, endAngle, anticlockwise) {\n        var firstCmd = this._d.length === 0;\n        var dTheta = endAngle - startAngle;\n        var clockwise = !anticlockwise;\n        var dThetaPositive = Math.abs(dTheta);\n        var isCircle = isAroundZero(dThetaPositive - PI2)\n            || (clockwise ? dTheta >= PI2 : -dTheta >= PI2);\n        var unifiedTheta = dTheta > 0 ? dTheta % PI2 : (dTheta % PI2 + PI2);\n        var large = false;\n        if (isCircle) {\n            large = true;\n        }\n        else if (isAroundZero(dThetaPositive)) {\n            large = false;\n        }\n        else {\n            large = (unifiedTheta >= PI) === !!clockwise;\n        }\n        var x0 = round4(cx + rx * mathCos(startAngle));\n        var y0 = round4(cy + ry * mathSin(startAngle));\n        if (isCircle) {\n            if (clockwise) {\n                dTheta = PI2 - 1e-4;\n            }\n            else {\n                dTheta = -PI2 + 1e-4;\n            }\n            large = true;\n            if (firstCmd) {\n                this._d.push('M', x0, y0);\n            }\n        }\n        var x = round4(cx + rx * mathCos(startAngle + dTheta));\n        var y = round4(cy + ry * mathSin(startAngle + dTheta));\n        if (isNaN(x0) || isNaN(y0) || isNaN(rx) || isNaN(ry) || isNaN(psi) || isNaN(degree) || isNaN(x) || isNaN(y)) {\n            return '';\n        }\n        this._d.push('A', round4(rx), round4(ry), mathRound(psi * degree), +large, +clockwise, x, y);\n    };\n    SVGPathRebuilder.prototype.rect = function (x, y, w, h) {\n        this._add('M', x, y);\n        this._add('L', x + w, y);\n        this._add('L', x + w, y + h);\n        this._add('L', x, y + h);\n        this._add('L', x, y);\n    };\n    SVGPathRebuilder.prototype.closePath = function () {\n        if (this._d.length > 0) {\n            this._add('Z');\n        }\n    };\n    SVGPathRebuilder.prototype._add = function (cmd, a, b, c, d, e, f, g, h) {\n        this._d.push(cmd);\n        for (var i = 1; i < arguments.length; i++) {\n            var val = arguments[i];\n            if (isNaN(val)) {\n                this._invalid = true;\n                return;\n            }\n            this._d.push(round4(val));\n        }\n    };\n    SVGPathRebuilder.prototype.generateStr = function () {\n        this._str = this._invalid ? '' : this._d.join(' ');\n        this._d = [];\n    };\n    SVGPathRebuilder.prototype.getStr = function () {\n        return this._str;\n    };\n    return SVGPathRebuilder;\n}());\nvar svgPath = {\n    brush: function (el) {\n        var style = el.style;\n        var svgEl = el.__svgEl;\n        if (!svgEl) {\n            svgEl = createElement('path');\n            el.__svgEl = svgEl;\n        }\n        if (!el.path) {\n            el.createPathProxy();\n        }\n        var path = el.path;\n        if (el.shapeChanged()) {\n            path.beginPath();\n            el.buildPath(path, el.shape);\n            el.pathUpdated();\n        }\n        var pathVersion = path.getVersion();\n        var elExt = el;\n        var svgPathBuilder = elExt.__svgPathBuilder;\n        if (elExt.__svgPathVersion !== pathVersion || !svgPathBuilder || el.style.strokePercent < 1) {\n            if (!svgPathBuilder) {\n                svgPathBuilder = elExt.__svgPathBuilder = new SVGPathRebuilder();\n            }\n            svgPathBuilder.reset();\n            path.rebuildPath(svgPathBuilder, el.style.strokePercent);\n            svgPathBuilder.generateStr();\n            elExt.__svgPathVersion = pathVersion;\n        }\n        attr(svgEl, 'd', svgPathBuilder.getStr());\n        bindStyle(svgEl, style, el);\n        setTransform(svgEl, el.transform);\n    }\n};\nexport { svgPath as path };\nvar svgImage = {\n    brush: function (el) {\n        var style = el.style;\n        var image = style.image;\n        if (image instanceof HTMLImageElement) {\n            image = image.src;\n        }\n        else if (image instanceof HTMLCanvasElement) {\n            image = image.toDataURL();\n        }\n        if (!image) {\n            return;\n        }\n        var x = style.x || 0;\n        var y = style.y || 0;\n        var dw = style.width;\n        var dh = style.height;\n        var svgEl = el.__svgEl;\n        if (!svgEl) {\n            svgEl = createElement('image');\n            el.__svgEl = svgEl;\n        }\n        if (image !== el.__imageSrc) {\n            attrXLink(svgEl, 'href', image);\n            el.__imageSrc = image;\n        }\n        attr(svgEl, 'width', dw + '');\n        attr(svgEl, 'height', dh + '');\n        attr(svgEl, 'x', x + '');\n        attr(svgEl, 'y', y + '');\n        bindStyle(svgEl, style, el);\n        setTransform(svgEl, el.transform);\n    }\n};\nexport { svgImage as image };\nvar TEXT_ALIGN_TO_ANCHOR = {\n    left: 'start',\n    right: 'end',\n    center: 'middle',\n    middle: 'middle'\n};\nfunction adjustTextY(y, lineHeight, textBaseline) {\n    if (textBaseline === 'top') {\n        y += lineHeight / 2;\n    }\n    else if (textBaseline === 'bottom') {\n        y -= lineHeight / 2;\n    }\n    return y;\n}\nvar svgText = {\n    brush: function (el) {\n        var style = el.style;\n        var text = style.text;\n        text != null && (text += '');\n        if (!text || isNaN(style.x) || isNaN(style.y)) {\n            return;\n        }\n        var textSvgEl = el.__svgEl;\n        if (!textSvgEl) {\n            textSvgEl = createElement('text');\n            attrXML(textSvgEl, 'xml:space', 'preserve');\n            el.__svgEl = textSvgEl;\n        }\n        var font = style.font || DEFAULT_FONT;\n        var textSvgElStyle = textSvgEl.style;\n        textSvgElStyle.font = font;\n        textSvgEl.textContent = text;\n        bindStyle(textSvgEl, style, el);\n        setTransform(textSvgEl, el.transform);\n        var x = style.x || 0;\n        var y = adjustTextY(style.y || 0, getLineHeight(font), style.textBaseline);\n        var textAlign = TEXT_ALIGN_TO_ANCHOR[style.textAlign]\n            || style.textAlign;\n        attr(textSvgEl, 'dominant-baseline', 'central');\n        attr(textSvgEl, 'text-anchor', textAlign);\n        attr(textSvgEl, 'x', x + '');\n        attr(textSvgEl, 'y', y + '');\n    }\n};\nexport { svgText as text };\n","import { createElement } from '../core';\nimport * as zrUtil from '../../core/util';\nimport Path from '../../graphic/Path';\nimport ZRImage from '../../graphic/Image';\nimport TSpan from '../../graphic/TSpan';\nimport { path as svgPath, image as svgImage, text as svgText } from '../graphic';\nvar MARK_UNUSED = '0';\nvar MARK_USED = '1';\nvar Definable = (function () {\n    function Definable(zrId, svgRoot, tagNames, markLabel, domName) {\n        this.nextId = 0;\n        this._domName = '_dom';\n        this.createElement = createElement;\n        this._zrId = zrId;\n        this._svgRoot = svgRoot;\n        this._tagNames = typeof tagNames === 'string' ? [tagNames] : tagNames;\n        this._markLabel = markLabel;\n        if (domName) {\n            this._domName = domName;\n        }\n    }\n    Definable.prototype.getDefs = function (isForceCreating) {\n        var svgRoot = this._svgRoot;\n        var defs = this._svgRoot.getElementsByTagName('defs');\n        if (defs.length === 0) {\n            if (isForceCreating) {\n                var defs_1 = svgRoot.insertBefore(this.createElement('defs'), svgRoot.firstChild);\n                if (!defs_1.contains) {\n                    defs_1.contains = function (el) {\n                        var children = defs_1.children;\n                        if (!children) {\n                            return false;\n                        }\n                        for (var i = children.length - 1; i >= 0; --i) {\n                            if (children[i] === el) {\n                                return true;\n                            }\n                        }\n                        return false;\n                    };\n                }\n                return defs_1;\n            }\n            else {\n                return null;\n            }\n        }\n        else {\n            return defs[0];\n        }\n    };\n    Definable.prototype.doUpdate = function (target, onUpdate) {\n        if (!target) {\n            return;\n        }\n        var defs = this.getDefs(false);\n        if (target[this._domName] && defs.contains(target[this._domName])) {\n            if (typeof onUpdate === 'function') {\n                onUpdate(target);\n            }\n        }\n        else {\n            var dom = this.add(target);\n            if (dom) {\n                target[this._domName] = dom;\n            }\n        }\n    };\n    Definable.prototype.add = function (target) {\n        return null;\n    };\n    Definable.prototype.addDom = function (dom) {\n        var defs = this.getDefs(true);\n        if (dom.parentNode !== defs) {\n            defs.appendChild(dom);\n        }\n    };\n    Definable.prototype.removeDom = function (target) {\n        var defs = this.getDefs(false);\n        if (defs && target[this._domName]) {\n            defs.removeChild(target[this._domName]);\n            target[this._domName] = null;\n        }\n    };\n    Definable.prototype.getDoms = function () {\n        var defs = this.getDefs(false);\n        if (!defs) {\n            return [];\n        }\n        var doms = [];\n        zrUtil.each(this._tagNames, function (tagName) {\n            var tags = defs.getElementsByTagName(tagName);\n            for (var i = 0; i < tags.length; i++) {\n                doms.push(tags[i]);\n            }\n        });\n        return doms;\n    };\n    Definable.prototype.markAllUnused = function () {\n        var doms = this.getDoms();\n        var that = this;\n        zrUtil.each(doms, function (dom) {\n            dom[that._markLabel] = MARK_UNUSED;\n        });\n    };\n    Definable.prototype.markDomUsed = function (dom) {\n        dom && (dom[this._markLabel] = MARK_USED);\n    };\n    ;\n    Definable.prototype.markDomUnused = function (dom) {\n        dom && (dom[this._markLabel] = MARK_UNUSED);\n    };\n    ;\n    Definable.prototype.isDomUnused = function (dom) {\n        return dom && dom[this._markLabel] !== MARK_USED;\n    };\n    Definable.prototype.removeUnused = function () {\n        var _this = this;\n        var defs = this.getDefs(false);\n        if (!defs) {\n            return;\n        }\n        var doms = this.getDoms();\n        zrUtil.each(doms, function (dom) {\n            if (_this.isDomUnused(dom)) {\n                defs.removeChild(dom);\n            }\n        });\n    };\n    Definable.prototype.getSvgProxy = function (displayable) {\n        if (displayable instanceof Path) {\n            return svgPath;\n        }\n        else if (displayable instanceof ZRImage) {\n            return svgImage;\n        }\n        else if (displayable instanceof TSpan) {\n            return svgText;\n        }\n        else {\n            return svgPath;\n        }\n    };\n    Definable.prototype.getSvgElement = function (displayable) {\n        return displayable.__svgEl;\n    };\n    return Definable;\n}());\nexport default Definable;\n","import { __extends } from \"tslib\";\nimport Definable from './Definable';\nimport * as zrUtil from '../../core/util';\nimport * as colorTool from '../../tool/color';\nfunction isLinearGradient(value) {\n    return value.type === 'linear';\n}\nfunction isRadialGradient(value) {\n    return value.type === 'radial';\n}\nfunction isGradient(value) {\n    return value && (value.type === 'linear'\n        || value.type === 'radial');\n}\nvar GradientManager = (function (_super) {\n    __extends(GradientManager, _super);\n    function GradientManager(zrId, svgRoot) {\n        return _super.call(this, zrId, svgRoot, ['linearGradient', 'radialGradient'], '__gradient_in_use__') || this;\n    }\n    GradientManager.prototype.addWithoutUpdate = function (svgElement, displayable) {\n        if (displayable && displayable.style) {\n            var that_1 = this;\n            zrUtil.each(['fill', 'stroke'], function (fillOrStroke) {\n                var value = displayable.style[fillOrStroke];\n                if (isGradient(value)) {\n                    var gradient = value;\n                    var defs = that_1.getDefs(true);\n                    var dom = void 0;\n                    if (gradient.__dom) {\n                        dom = gradient.__dom;\n                        if (!defs.contains(gradient.__dom)) {\n                            that_1.addDom(dom);\n                        }\n                    }\n                    else {\n                        dom = that_1.add(gradient);\n                    }\n                    that_1.markUsed(displayable);\n                    var id = dom.getAttribute('id');\n                    svgElement.setAttribute(fillOrStroke, 'url(#' + id + ')');\n                }\n            });\n        }\n    };\n    GradientManager.prototype.add = function (gradient) {\n        var dom;\n        if (isLinearGradient(gradient)) {\n            dom = this.createElement('linearGradient');\n        }\n        else if (isRadialGradient(gradient)) {\n            dom = this.createElement('radialGradient');\n        }\n        else {\n            zrUtil.logError('Illegal gradient type.');\n            return null;\n        }\n        gradient.id = gradient.id || this.nextId++;\n        dom.setAttribute('id', 'zr' + this._zrId\n            + '-gradient-' + gradient.id);\n        this.updateDom(gradient, dom);\n        this.addDom(dom);\n        return dom;\n    };\n    GradientManager.prototype.update = function (gradient) {\n        if (!isGradient(gradient)) {\n            return;\n        }\n        var that = this;\n        this.doUpdate(gradient, function () {\n            var dom = gradient.__dom;\n            if (!dom) {\n                return;\n            }\n            var tagName = dom.tagName;\n            var type = gradient.type;\n            if (type === 'linear' && tagName === 'linearGradient'\n                || type === 'radial' && tagName === 'radialGradient') {\n                that.updateDom(gradient, gradient.__dom);\n            }\n            else {\n                that.removeDom(gradient);\n                that.add(gradient);\n            }\n        });\n    };\n    GradientManager.prototype.updateDom = function (gradient, dom) {\n        if (isLinearGradient(gradient)) {\n            dom.setAttribute('x1', gradient.x + '');\n            dom.setAttribute('y1', gradient.y + '');\n            dom.setAttribute('x2', gradient.x2 + '');\n            dom.setAttribute('y2', gradient.y2 + '');\n        }\n        else if (isRadialGradient(gradient)) {\n            dom.setAttribute('cx', gradient.x + '');\n            dom.setAttribute('cy', gradient.y + '');\n            dom.setAttribute('r', gradient.r + '');\n        }\n        else {\n            zrUtil.logError('Illegal gradient type.');\n            return;\n        }\n        if (gradient.global) {\n            dom.setAttribute('gradientUnits', 'userSpaceOnUse');\n        }\n        else {\n            dom.setAttribute('gradientUnits', 'objectBoundingBox');\n        }\n        dom.innerHTML = '';\n        var colors = gradient.colorStops;\n        for (var i = 0, len = colors.length; i < len; ++i) {\n            var stop_1 = this.createElement('stop');\n            stop_1.setAttribute('offset', colors[i].offset * 100 + '%');\n            var color = colors[i].color;\n            if (color.indexOf('rgba') > -1) {\n                var opacity = colorTool.parse(color)[3];\n                var hex = colorTool.toHex(color);\n                stop_1.setAttribute('stop-color', '#' + hex);\n                stop_1.setAttribute('stop-opacity', opacity + '');\n            }\n            else {\n                stop_1.setAttribute('stop-color', colors[i].color);\n            }\n            dom.appendChild(stop_1);\n        }\n        gradient.__dom = dom;\n    };\n    GradientManager.prototype.markUsed = function (displayable) {\n        if (displayable.style) {\n            var gradient = displayable.style.fill;\n            if (gradient && gradient.__dom) {\n                _super.prototype.markDomUsed.call(this, gradient.__dom);\n            }\n            gradient = displayable.style.stroke;\n            if (gradient && gradient.__dom) {\n                _super.prototype.markDomUsed.call(this, gradient.__dom);\n            }\n        }\n    };\n    return GradientManager;\n}(Definable));\nexport default GradientManager;\n","import { __extends } from \"tslib\";\nimport Definable from './Definable';\nimport * as zrUtil from '../../core/util';\nimport LRU from '../../core/LRU';\nimport { createOrUpdateImage } from '../../graphic/helper/image';\nimport WeakMap from '../../core/WeakMap';\nfunction isPattern(value) {\n    return value && (!!value.image || !!value.svgElement);\n}\nvar patternDomMap = new WeakMap();\nvar PatternManager = (function (_super) {\n    __extends(PatternManager, _super);\n    function PatternManager(zrId, svgRoot) {\n        return _super.call(this, zrId, svgRoot, ['pattern'], '__pattern_in_use__') || this;\n    }\n    PatternManager.prototype.addWithoutUpdate = function (svgElement, displayable) {\n        if (displayable && displayable.style) {\n            var that_1 = this;\n            zrUtil.each(['fill', 'stroke'], function (fillOrStroke) {\n                var pattern = displayable.style[fillOrStroke];\n                if (isPattern(pattern)) {\n                    var defs = that_1.getDefs(true);\n                    var dom = patternDomMap.get(pattern);\n                    if (dom) {\n                        if (!defs.contains(dom)) {\n                            that_1.addDom(dom);\n                        }\n                    }\n                    else {\n                        dom = that_1.add(pattern);\n                    }\n                    that_1.markUsed(displayable);\n                    var id = dom.getAttribute('id');\n                    svgElement.setAttribute(fillOrStroke, 'url(#' + id + ')');\n                }\n            });\n        }\n    };\n    PatternManager.prototype.add = function (pattern) {\n        if (!isPattern(pattern)) {\n            return;\n        }\n        var dom = this.createElement('pattern');\n        pattern.id = pattern.id == null ? this.nextId++ : pattern.id;\n        dom.setAttribute('id', 'zr' + this._zrId\n            + '-pattern-' + pattern.id);\n        dom.setAttribute('x', '0');\n        dom.setAttribute('y', '0');\n        dom.setAttribute('patternUnits', 'userSpaceOnUse');\n        this.updateDom(pattern, dom);\n        this.addDom(dom);\n        return dom;\n    };\n    PatternManager.prototype.update = function (pattern) {\n        if (!isPattern(pattern)) {\n            return;\n        }\n        var that = this;\n        this.doUpdate(pattern, function () {\n            var dom = patternDomMap.get(pattern);\n            that.updateDom(pattern, dom);\n        });\n    };\n    PatternManager.prototype.updateDom = function (pattern, patternDom) {\n        var svgElement = pattern.svgElement;\n        if (svgElement instanceof SVGElement) {\n            if (svgElement.parentNode !== patternDom) {\n                patternDom.innerHTML = '';\n                patternDom.appendChild(svgElement);\n                patternDom.setAttribute('width', pattern.svgWidth + '');\n                patternDom.setAttribute('height', pattern.svgHeight + '');\n            }\n        }\n        else {\n            var img = void 0;\n            var prevImage = patternDom.getElementsByTagName('image');\n            if (prevImage.length) {\n                if (pattern.image) {\n                    img = prevImage[0];\n                }\n                else {\n                    patternDom.removeChild(prevImage[0]);\n                    return;\n                }\n            }\n            else if (pattern.image) {\n                img = this.createElement('image');\n            }\n            if (img) {\n                var imageSrc = void 0;\n                if (typeof pattern.image === 'string') {\n                    imageSrc = pattern.image;\n                }\n                else if (pattern.image instanceof HTMLImageElement) {\n                    imageSrc = pattern.image.src;\n                }\n                else if (pattern.image instanceof HTMLCanvasElement) {\n                    imageSrc = pattern.image.toDataURL();\n                }\n                if (imageSrc) {\n                    img.setAttribute('href', imageSrc);\n                    img.setAttribute('x', '0');\n                    img.setAttribute('y', '0');\n                    var hostEl = {\n                        dirty: function () { }\n                    };\n                    var createdImage = createOrUpdateImage(imageSrc, img, hostEl, function (img) {\n                        patternDom.setAttribute('width', img.width + '');\n                        patternDom.setAttribute('height', img.height + '');\n                    });\n                    if (createdImage && createdImage.width && createdImage.height) {\n                        patternDom.setAttribute('width', createdImage.width + '');\n                        patternDom.setAttribute('height', createdImage.height + '');\n                    }\n                    patternDom.appendChild(img);\n                }\n            }\n        }\n        var x = pattern.x || 0;\n        var y = pattern.y || 0;\n        var rotation = (pattern.rotation || 0) / Math.PI * 180;\n        var scaleX = pattern.scaleX || 1;\n        var scaleY = pattern.scaleY || 1;\n        var transform = \"translate(\" + x + \", \" + y + \") rotate(\" + rotation + \") scale(\" + scaleX + \", \" + scaleY + \")\";\n        patternDom.setAttribute('patternTransform', transform);\n        patternDomMap.set(pattern, patternDom);\n    };\n    PatternManager.prototype.markUsed = function (displayable) {\n        if (displayable.style) {\n            if (isPattern(displayable.style.fill)) {\n                _super.prototype.markDomUsed.call(this, patternDomMap.get(displayable.style.fill));\n            }\n            if (isPattern(displayable.style.stroke)) {\n                _super.prototype.markDomUsed.call(this, patternDomMap.get(displayable.style.stroke));\n            }\n        }\n    };\n    return PatternManager;\n}(Definable));\nexport default PatternManager;\nvar patternSizeCache = new LRU(50);\n","import { __extends } from \"tslib\";\nimport Definable from './Definable';\nimport * as zrUtil from '../../core/util';\nimport { isClipPathChanged } from '../../canvas/helper';\nfunction generateClipPathsKey(clipPaths) {\n    var key = [];\n    if (clipPaths) {\n        for (var i = 0; i < clipPaths.length; i++) {\n            var clipPath = clipPaths[i];\n            key.push(clipPath.id);\n        }\n    }\n    return key.join(',');\n}\nexport function hasClipPath(displayable) {\n    var clipPaths = displayable.__clipPaths;\n    return clipPaths && clipPaths.length > 0;\n}\nvar ClippathManager = (function (_super) {\n    __extends(ClippathManager, _super);\n    function ClippathManager(zrId, svgRoot) {\n        var _this = _super.call(this, zrId, svgRoot, 'clipPath', '__clippath_in_use__') || this;\n        _this._refGroups = {};\n        _this._keyDuplicateCount = {};\n        return _this;\n    }\n    ClippathManager.prototype.markAllUnused = function () {\n        _super.prototype.markAllUnused.call(this);\n        for (var key in this._refGroups) {\n            this.markDomUnused(this._refGroups[key]);\n        }\n        this._keyDuplicateCount = {};\n    };\n    ClippathManager.prototype._getClipPathGroup = function (displayable, prevDisplayable) {\n        if (!hasClipPath(displayable)) {\n            return;\n        }\n        var clipPaths = displayable.__clipPaths;\n        var keyDuplicateCount = this._keyDuplicateCount;\n        var clipPathKey = generateClipPathsKey(clipPaths);\n        if (isClipPathChanged(clipPaths, prevDisplayable && prevDisplayable.__clipPaths)) {\n            keyDuplicateCount[clipPathKey] = keyDuplicateCount[clipPathKey] || 0;\n            keyDuplicateCount[clipPathKey] && (clipPathKey += '-' + keyDuplicateCount[clipPathKey]);\n            keyDuplicateCount[clipPathKey]++;\n        }\n        return this._refGroups[clipPathKey]\n            || (this._refGroups[clipPathKey] = this.createElement('g'));\n    };\n    ClippathManager.prototype.update = function (displayable, prevDisplayable) {\n        var clipGroup = this._getClipPathGroup(displayable, prevDisplayable);\n        if (clipGroup) {\n            this.markDomUsed(clipGroup);\n            this.updateDom(clipGroup, displayable.__clipPaths);\n        }\n        return clipGroup;\n    };\n    ;\n    ClippathManager.prototype.updateDom = function (parentEl, clipPaths) {\n        if (clipPaths && clipPaths.length > 0) {\n            var defs = this.getDefs(true);\n            var clipPath = clipPaths[0];\n            var clipPathEl = void 0;\n            var id = void 0;\n            if (clipPath._dom) {\n                id = clipPath._dom.getAttribute('id');\n                clipPathEl = clipPath._dom;\n                if (!defs.contains(clipPathEl)) {\n                    defs.appendChild(clipPathEl);\n                }\n            }\n            else {\n                id = 'zr' + this._zrId + '-clip-' + this.nextId;\n                ++this.nextId;\n                clipPathEl = this.createElement('clipPath');\n                clipPathEl.setAttribute('id', id);\n                defs.appendChild(clipPathEl);\n                clipPath._dom = clipPathEl;\n            }\n            var svgProxy = this.getSvgProxy(clipPath);\n            svgProxy.brush(clipPath);\n            var pathEl = this.getSvgElement(clipPath);\n            clipPathEl.innerHTML = '';\n            clipPathEl.appendChild(pathEl);\n            parentEl.setAttribute('clip-path', 'url(#' + id + ')');\n            if (clipPaths.length > 1) {\n                this.updateDom(clipPathEl, clipPaths.slice(1));\n            }\n        }\n        else {\n            if (parentEl) {\n                parentEl.setAttribute('clip-path', 'none');\n            }\n        }\n    };\n    ;\n    ClippathManager.prototype.markUsed = function (displayable) {\n        var _this = this;\n        if (displayable.__clipPaths) {\n            zrUtil.each(displayable.__clipPaths, function (clipPath) {\n                if (clipPath._dom) {\n                    _super.prototype.markDomUsed.call(_this, clipPath._dom);\n                }\n            });\n        }\n    };\n    ;\n    ClippathManager.prototype.removeUnused = function () {\n        _super.prototype.removeUnused.call(this);\n        var newRefGroupsMap = {};\n        for (var key in this._refGroups) {\n            var group = this._refGroups[key];\n            if (!this.isDomUnused(group)) {\n                newRefGroupsMap[key] = group;\n            }\n            else if (group.parentNode) {\n                group.parentNode.removeChild(group);\n            }\n        }\n        this._refGroups = newRefGroupsMap;\n    };\n    return ClippathManager;\n}(Definable));\nexport default ClippathManager;\n","import { __extends } from \"tslib\";\nimport Definable from './Definable';\nvar ShadowManager = (function (_super) {\n    __extends(ShadowManager, _super);\n    function ShadowManager(zrId, svgRoot) {\n        var _this = _super.call(this, zrId, svgRoot, ['filter'], '__filter_in_use__', '_shadowDom') || this;\n        _this._shadowDomMap = {};\n        _this._shadowDomPool = [];\n        return _this;\n    }\n    ShadowManager.prototype._getFromPool = function () {\n        var shadowDom = this._shadowDomPool.pop();\n        if (!shadowDom) {\n            shadowDom = this.createElement('filter');\n            shadowDom.setAttribute('id', 'zr' + this._zrId + '-shadow-' + this.nextId++);\n            var domChild = this.createElement('feDropShadow');\n            shadowDom.appendChild(domChild);\n            this.addDom(shadowDom);\n        }\n        return shadowDom;\n    };\n    ShadowManager.prototype.update = function (svgElement, displayable) {\n        var style = displayable.style;\n        if (hasShadow(style)) {\n            var shadowKey = getShadowKey(displayable);\n            var shadowDom = displayable._shadowDom = this._shadowDomMap[shadowKey];\n            if (!shadowDom) {\n                shadowDom = this._getFromPool();\n                this._shadowDomMap[shadowKey] = shadowDom;\n            }\n            this.updateDom(svgElement, displayable, shadowDom);\n        }\n        else {\n            this.remove(svgElement, displayable);\n        }\n    };\n    ShadowManager.prototype.remove = function (svgElement, displayable) {\n        if (displayable._shadowDom != null) {\n            displayable._shadowDom = null;\n            svgElement.style.filter = '';\n        }\n    };\n    ShadowManager.prototype.updateDom = function (svgElement, displayable, shadowDom) {\n        var domChild = shadowDom.children[0];\n        var style = displayable.style;\n        var globalScale = displayable.getGlobalScale();\n        var scaleX = globalScale[0];\n        var scaleY = globalScale[1];\n        if (!scaleX || !scaleY) {\n            return;\n        }\n        var offsetX = style.shadowOffsetX || 0;\n        var offsetY = style.shadowOffsetY || 0;\n        var blur = style.shadowBlur;\n        var color = style.shadowColor;\n        domChild.setAttribute('dx', offsetX / scaleX + '');\n        domChild.setAttribute('dy', offsetY / scaleY + '');\n        domChild.setAttribute('flood-color', color);\n        var stdDx = blur / 2 / scaleX;\n        var stdDy = blur / 2 / scaleY;\n        var stdDeviation = stdDx + ' ' + stdDy;\n        domChild.setAttribute('stdDeviation', stdDeviation);\n        shadowDom.setAttribute('x', '-100%');\n        shadowDom.setAttribute('y', '-100%');\n        shadowDom.setAttribute('width', '300%');\n        shadowDom.setAttribute('height', '300%');\n        displayable._shadowDom = shadowDom;\n        var id = shadowDom.getAttribute('id');\n        svgElement.style.filter = 'url(#' + id + ')';\n    };\n    ShadowManager.prototype.removeUnused = function () {\n        var defs = this.getDefs(false);\n        if (!defs) {\n            return;\n        }\n        var shadowDomsPool = this._shadowDomPool;\n        var currentUsedShadow = 0;\n        for (var key in this._shadowDomMap) {\n            var dom = this._shadowDomMap[key];\n            shadowDomsPool.push(dom);\n            currentUsedShadow++;\n        }\n        this._shadowDomMap = {};\n    };\n    return ShadowManager;\n}(Definable));\nexport default ShadowManager;\nfunction hasShadow(style) {\n    return style\n        && (style.shadowBlur || style.shadowOffsetX || style.shadowOffsetY);\n}\nfunction getShadowKey(displayable) {\n    var style = displayable.style;\n    var globalScale = displayable.getGlobalScale();\n    return [\n        style.shadowColor,\n        (style.shadowBlur || 0).toFixed(2),\n        (style.shadowOffsetX || 0).toFixed(2),\n        (style.shadowOffsetY || 0).toFixed(2),\n        globalScale[0],\n        globalScale[1]\n    ].join(',');\n}\n","import { createElement } from './core';\nimport * as util from '../core/util';\nimport Path from '../graphic/Path';\nimport ZRImage from '../graphic/Image';\nimport TSpan from '../graphic/TSpan';\nimport arrayDiff from '../core/arrayDiff';\nimport GradientManager from './helper/GradientManager';\nimport PatternManager from './helper/PatternManager';\nimport ClippathManager, { hasClipPath } from './helper/ClippathManager';\nimport ShadowManager from './helper/ShadowManager';\nimport { path as svgPath, image as svgImage, text as svgText } from './graphic';\nfunction parseInt10(val) {\n    return parseInt(val, 10);\n}\nfunction getSvgProxy(el) {\n    if (el instanceof Path) {\n        return svgPath;\n    }\n    else if (el instanceof ZRImage) {\n        return svgImage;\n    }\n    else if (el instanceof TSpan) {\n        return svgText;\n    }\n    else {\n        return svgPath;\n    }\n}\nfunction checkParentAvailable(parent, child) {\n    return child && parent && child.parentNode !== parent;\n}\nfunction insertAfter(parent, child, prevSibling) {\n    if (checkParentAvailable(parent, child) && prevSibling) {\n        var nextSibling = prevSibling.nextSibling;\n        nextSibling ? parent.insertBefore(child, nextSibling)\n            : parent.appendChild(child);\n    }\n}\nfunction prepend(parent, child) {\n    if (checkParentAvailable(parent, child)) {\n        var firstChild = parent.firstChild;\n        firstChild ? parent.insertBefore(child, firstChild)\n            : parent.appendChild(child);\n    }\n}\nfunction remove(parent, child) {\n    if (child && parent && child.parentNode === parent) {\n        parent.removeChild(child);\n    }\n}\nfunction removeFromMyParent(child) {\n    if (child && child.parentNode) {\n        child.parentNode.removeChild(child);\n    }\n}\nfunction getSvgElement(displayable) {\n    return displayable.__svgEl;\n}\nvar SVGPainter = (function () {\n    function SVGPainter(root, storage, opts, zrId) {\n        this.type = 'svg';\n        this.refreshHover = createMethodNotSupport('refreshHover');\n        this.pathToImage = createMethodNotSupport('pathToImage');\n        this.configLayer = createMethodNotSupport('configLayer');\n        this.root = root;\n        this.storage = storage;\n        this._opts = opts = util.extend({}, opts || {});\n        var svgDom = createElement('svg');\n        svgDom.setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns', 'http://www.w3.org/2000/svg');\n        svgDom.setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:xlink', 'http://www.w3.org/1999/xlink');\n        svgDom.setAttribute('version', '1.1');\n        svgDom.setAttribute('baseProfile', 'full');\n        svgDom.style.cssText = 'user-select:none;position:absolute;left:0;top:0;';\n        var bgRoot = createElement('g');\n        svgDom.appendChild(bgRoot);\n        var svgRoot = createElement('g');\n        svgDom.appendChild(svgRoot);\n        this._gradientManager = new GradientManager(zrId, svgRoot);\n        this._patternManager = new PatternManager(zrId, svgRoot);\n        this._clipPathManager = new ClippathManager(zrId, svgRoot);\n        this._shadowManager = new ShadowManager(zrId, svgRoot);\n        var viewport = document.createElement('div');\n        viewport.style.cssText = 'overflow:hidden;position:relative';\n        this._svgDom = svgDom;\n        this._svgRoot = svgRoot;\n        this._backgroundRoot = bgRoot;\n        this._viewport = viewport;\n        root.appendChild(viewport);\n        viewport.appendChild(svgDom);\n        this.resize(opts.width, opts.height);\n        this._visibleList = [];\n    }\n    SVGPainter.prototype.getType = function () {\n        return 'svg';\n    };\n    SVGPainter.prototype.getViewportRoot = function () {\n        return this._viewport;\n    };\n    SVGPainter.prototype.getSvgDom = function () {\n        return this._svgDom;\n    };\n    SVGPainter.prototype.getSvgRoot = function () {\n        return this._svgRoot;\n    };\n    SVGPainter.prototype.getViewportRootOffset = function () {\n        var viewportRoot = this.getViewportRoot();\n        if (viewportRoot) {\n            return {\n                offsetLeft: viewportRoot.offsetLeft || 0,\n                offsetTop: viewportRoot.offsetTop || 0\n            };\n        }\n    };\n    SVGPainter.prototype.refresh = function () {\n        var list = this.storage.getDisplayList(true);\n        this._paintList(list);\n    };\n    SVGPainter.prototype.setBackgroundColor = function (backgroundColor) {\n        if (this._backgroundRoot && this._backgroundNode) {\n            this._backgroundRoot.removeChild(this._backgroundNode);\n        }\n        var bgNode = createElement('rect');\n        bgNode.setAttribute('width', this.getWidth());\n        bgNode.setAttribute('height', this.getHeight());\n        bgNode.setAttribute('x', 0);\n        bgNode.setAttribute('y', 0);\n        bgNode.setAttribute('id', 0);\n        bgNode.style.fill = backgroundColor;\n        this._backgroundRoot.appendChild(bgNode);\n        this._backgroundNode = bgNode;\n    };\n    SVGPainter.prototype.createSVGElement = function (tag) {\n        return createElement(tag);\n    };\n    SVGPainter.prototype.paintOne = function (el) {\n        var svgProxy = getSvgProxy(el);\n        svgProxy && svgProxy.brush(el);\n        return getSvgElement(el);\n    };\n    SVGPainter.prototype._paintList = function (list) {\n        var gradientManager = this._gradientManager;\n        var patternManager = this._patternManager;\n        var clipPathManager = this._clipPathManager;\n        var shadowManager = this._shadowManager;\n        gradientManager.markAllUnused();\n        patternManager.markAllUnused();\n        clipPathManager.markAllUnused();\n        shadowManager.markAllUnused();\n        var svgRoot = this._svgRoot;\n        var visibleList = this._visibleList;\n        var listLen = list.length;\n        var newVisibleList = [];\n        for (var i = 0; i < listLen; i++) {\n            var displayable = list[i];\n            var svgProxy = getSvgProxy(displayable);\n            var svgElement = getSvgElement(displayable);\n            if (!displayable.invisible) {\n                if (displayable.__dirty || !svgElement) {\n                    svgProxy && svgProxy.brush(displayable);\n                    svgElement = getSvgElement(displayable);\n                    if (svgElement && displayable.style) {\n                        gradientManager.update(displayable.style.fill);\n                        gradientManager.update(displayable.style.stroke);\n                        patternManager.update(displayable.style.fill);\n                        patternManager.update(displayable.style.stroke);\n                        shadowManager.update(svgElement, displayable);\n                    }\n                    displayable.__dirty = 0;\n                }\n                if (svgElement) {\n                    newVisibleList.push(displayable);\n                }\n            }\n        }\n        var diff = arrayDiff(visibleList, newVisibleList);\n        var prevSvgElement;\n        var topPrevSvgElement;\n        for (var i = 0; i < diff.length; i++) {\n            var item = diff[i];\n            if (item.removed) {\n                for (var k = 0; k < item.count; k++) {\n                    var displayable = visibleList[item.indices[k]];\n                    var svgElement = getSvgElement(displayable);\n                    hasClipPath(displayable) ? removeFromMyParent(svgElement)\n                        : remove(svgRoot, svgElement);\n                }\n            }\n        }\n        var prevDisplayable;\n        var currentClipGroup;\n        for (var i = 0; i < diff.length; i++) {\n            var item = diff[i];\n            var isAdd = item.added;\n            if (item.removed) {\n                continue;\n            }\n            for (var k = 0; k < item.count; k++) {\n                var displayable = newVisibleList[item.indices[k]];\n                var clipGroup = clipPathManager.update(displayable, prevDisplayable);\n                if (clipGroup !== currentClipGroup) {\n                    prevSvgElement = topPrevSvgElement;\n                    if (clipGroup) {\n                        prevSvgElement ? insertAfter(svgRoot, clipGroup, prevSvgElement)\n                            : prepend(svgRoot, clipGroup);\n                        topPrevSvgElement = clipGroup;\n                        prevSvgElement = null;\n                    }\n                    currentClipGroup = clipGroup;\n                }\n                var svgElement = getSvgElement(displayable);\n                prevSvgElement\n                    ? insertAfter(currentClipGroup || svgRoot, svgElement, prevSvgElement)\n                    : prepend(currentClipGroup || svgRoot, svgElement);\n                prevSvgElement = svgElement || prevSvgElement;\n                if (!currentClipGroup) {\n                    topPrevSvgElement = prevSvgElement;\n                }\n                gradientManager.markUsed(displayable);\n                gradientManager.addWithoutUpdate(svgElement, displayable);\n                patternManager.markUsed(displayable);\n                patternManager.addWithoutUpdate(svgElement, displayable);\n                clipPathManager.markUsed(displayable);\n                prevDisplayable = displayable;\n            }\n        }\n        gradientManager.removeUnused();\n        patternManager.removeUnused();\n        clipPathManager.removeUnused();\n        shadowManager.removeUnused();\n        this._visibleList = newVisibleList;\n    };\n    SVGPainter.prototype._getDefs = function (isForceCreating) {\n        var svgRoot = this._svgDom;\n        var defs = svgRoot.getElementsByTagName('defs');\n        if (defs.length === 0) {\n            if (isForceCreating) {\n                var defs_1 = svgRoot.insertBefore(createElement('defs'), svgRoot.firstChild);\n                if (!defs_1.contains) {\n                    defs_1.contains = function (el) {\n                        var children = defs_1.children;\n                        if (!children) {\n                            return false;\n                        }\n                        for (var i = children.length - 1; i >= 0; --i) {\n                            if (children[i] === el) {\n                                return true;\n                            }\n                        }\n                        return false;\n                    };\n                }\n                return defs_1;\n            }\n            else {\n                return null;\n            }\n        }\n        else {\n            return defs[0];\n        }\n    };\n    SVGPainter.prototype.resize = function (width, height) {\n        var viewport = this._viewport;\n        viewport.style.display = 'none';\n        var opts = this._opts;\n        width != null && (opts.width = width);\n        height != null && (opts.height = height);\n        width = this._getSize(0);\n        height = this._getSize(1);\n        viewport.style.display = '';\n        if (this._width !== width || this._height !== height) {\n            this._width = width;\n            this._height = height;\n            var viewportStyle = viewport.style;\n            viewportStyle.width = width + 'px';\n            viewportStyle.height = height + 'px';\n            var svgRoot = this._svgDom;\n            svgRoot.setAttribute('width', width + '');\n            svgRoot.setAttribute('height', height + '');\n        }\n        if (this._backgroundNode) {\n            this._backgroundNode.setAttribute('width', width);\n            this._backgroundNode.setAttribute('height', height);\n        }\n    };\n    SVGPainter.prototype.getWidth = function () {\n        return this._width;\n    };\n    SVGPainter.prototype.getHeight = function () {\n        return this._height;\n    };\n    SVGPainter.prototype._getSize = function (whIdx) {\n        var opts = this._opts;\n        var wh = ['width', 'height'][whIdx];\n        var cwh = ['clientWidth', 'clientHeight'][whIdx];\n        var plt = ['paddingLeft', 'paddingTop'][whIdx];\n        var prb = ['paddingRight', 'paddingBottom'][whIdx];\n        if (opts[wh] != null && opts[wh] !== 'auto') {\n            return parseFloat(opts[wh]);\n        }\n        var root = this.root;\n        var stl = document.defaultView.getComputedStyle(root);\n        return ((root[cwh] || parseInt10(stl[wh]) || parseInt10(root.style[wh]))\n            - (parseInt10(stl[plt]) || 0)\n            - (parseInt10(stl[prb]) || 0)) | 0;\n    };\n    SVGPainter.prototype.dispose = function () {\n        this.root.innerHTML = '';\n        this._svgRoot\n            = this._backgroundRoot\n                = this._svgDom\n                    = this._backgroundNode\n                        = this._viewport\n                            = this.storage\n                                = null;\n    };\n    SVGPainter.prototype.clear = function () {\n        var viewportNode = this._viewport;\n        if (viewportNode && viewportNode.parentNode) {\n            viewportNode.parentNode.removeChild(viewportNode);\n        }\n    };\n    SVGPainter.prototype.toDataURL = function () {\n        this.refresh();\n        var svgDom = this._svgDom;\n        var outerHTML = svgDom.outerHTML\n            || (svgDom.parentNode && svgDom.parentNode).innerHTML;\n        var html = encodeURIComponent(outerHTML.replace(/></g, '>\\n\\r<'));\n        return 'data:image/svg+xml;charset=UTF-8,' + html;\n    };\n    return SVGPainter;\n}());\nfunction createMethodNotSupport(method) {\n    return function () {\n        util.logError('In SVG mode painter not support method \"' + method + '\"');\n    };\n}\nexport default SVGPainter;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SVGPainter from 'zrender/lib/svg/Painter';\nexport function install(registers) {\n  registers.registerPainter('svg', SVGPainter);\n}","import { __extends } from \"tslib\";\nimport * as util from '../core/util';\nimport { devicePixelRatio } from '../config';\nimport Eventful from '../core/Eventful';\nimport Element from '../Element';\nimport { getCanvasGradient } from './helper';\nimport { createCanvasPattern } from './graphic';\nimport BoundingRect from '../core/BoundingRect';\nfunction returnFalse() {\n    return false;\n}\nfunction createDom(id, painter, dpr) {\n    var newDom = util.createCanvas();\n    var width = painter.getWidth();\n    var height = painter.getHeight();\n    var newDomStyle = newDom.style;\n    if (newDomStyle) {\n        newDomStyle.position = 'absolute';\n        newDomStyle.left = '0';\n        newDomStyle.top = '0';\n        newDomStyle.width = width + 'px';\n        newDomStyle.height = height + 'px';\n        newDom.setAttribute('data-zr-dom-id', id);\n    }\n    newDom.width = width * dpr;\n    newDom.height = height * dpr;\n    return newDom;\n}\n;\nvar Layer = (function (_super) {\n    __extends(Layer, _super);\n    function Layer(id, painter, dpr) {\n        var _this = _super.call(this) || this;\n        _this.motionBlur = false;\n        _this.lastFrameAlpha = 0.7;\n        _this.dpr = 1;\n        _this.virtual = false;\n        _this.config = {};\n        _this.incremental = false;\n        _this.zlevel = 0;\n        _this.maxRepaintRectCount = 5;\n        _this.__dirty = true;\n        _this.__firstTimePaint = true;\n        _this.__used = false;\n        _this.__drawIndex = 0;\n        _this.__startIndex = 0;\n        _this.__endIndex = 0;\n        _this.__prevStartIndex = null;\n        _this.__prevEndIndex = null;\n        var dom;\n        dpr = dpr || devicePixelRatio;\n        if (typeof id === 'string') {\n            dom = createDom(id, painter, dpr);\n        }\n        else if (util.isObject(id)) {\n            dom = id;\n            id = dom.id;\n        }\n        _this.id = id;\n        _this.dom = dom;\n        var domStyle = dom.style;\n        if (domStyle) {\n            dom.onselectstart = returnFalse;\n            domStyle.webkitUserSelect = 'none';\n            domStyle.userSelect = 'none';\n            domStyle.webkitTapHighlightColor = 'rgba(0,0,0,0)';\n            domStyle['-webkit-touch-callout'] = 'none';\n            domStyle.padding = '0';\n            domStyle.margin = '0';\n            domStyle.borderWidth = '0';\n        }\n        _this.domBack = null;\n        _this.ctxBack = null;\n        _this.painter = painter;\n        _this.config = null;\n        _this.dpr = dpr;\n        return _this;\n    }\n    Layer.prototype.getElementCount = function () {\n        return this.__endIndex - this.__startIndex;\n    };\n    Layer.prototype.afterBrush = function () {\n        this.__prevStartIndex = this.__startIndex;\n        this.__prevEndIndex = this.__endIndex;\n    };\n    Layer.prototype.initContext = function () {\n        this.ctx = this.dom.getContext('2d');\n        this.ctx.dpr = this.dpr;\n    };\n    Layer.prototype.setUnpainted = function () {\n        this.__firstTimePaint = true;\n    };\n    Layer.prototype.createBackBuffer = function () {\n        var dpr = this.dpr;\n        this.domBack = createDom('back-' + this.id, this.painter, dpr);\n        this.ctxBack = this.domBack.getContext('2d');\n        if (dpr !== 1) {\n            this.ctxBack.scale(dpr, dpr);\n        }\n    };\n    Layer.prototype.createRepaintRects = function (displayList, prevList, viewWidth, viewHeight) {\n        if (this.__firstTimePaint) {\n            this.__firstTimePaint = false;\n            return null;\n        }\n        var mergedRepaintRects = [];\n        var maxRepaintRectCount = this.maxRepaintRectCount;\n        var full = false;\n        var pendingRect = new BoundingRect(0, 0, 0, 0);\n        function addRectToMergePool(rect) {\n            if (!rect.isFinite() || rect.isZero()) {\n                return;\n            }\n            if (mergedRepaintRects.length === 0) {\n                var boundingRect = new BoundingRect(0, 0, 0, 0);\n                boundingRect.copy(rect);\n                mergedRepaintRects.push(boundingRect);\n            }\n            else {\n                var isMerged = false;\n                var minDeltaArea = Infinity;\n                var bestRectToMergeIdx = 0;\n                for (var i = 0; i < mergedRepaintRects.length; ++i) {\n                    var mergedRect = mergedRepaintRects[i];\n                    if (mergedRect.intersect(rect)) {\n                        var pendingRect_1 = new BoundingRect(0, 0, 0, 0);\n                        pendingRect_1.copy(mergedRect);\n                        pendingRect_1.union(rect);\n                        mergedRepaintRects[i] = pendingRect_1;\n                        isMerged = true;\n                        break;\n                    }\n                    else if (full) {\n                        pendingRect.copy(rect);\n                        pendingRect.union(mergedRect);\n                        var aArea = rect.width * rect.height;\n                        var bArea = mergedRect.width * mergedRect.height;\n                        var pendingArea = pendingRect.width * pendingRect.height;\n                        var deltaArea = pendingArea - aArea - bArea;\n                        if (deltaArea < minDeltaArea) {\n                            minDeltaArea = deltaArea;\n                            bestRectToMergeIdx = i;\n                        }\n                    }\n                }\n                if (full) {\n                    mergedRepaintRects[bestRectToMergeIdx].union(rect);\n                    isMerged = true;\n                }\n                if (!isMerged) {\n                    var boundingRect = new BoundingRect(0, 0, 0, 0);\n                    boundingRect.copy(rect);\n                    mergedRepaintRects.push(boundingRect);\n                }\n                if (!full) {\n                    full = mergedRepaintRects.length >= maxRepaintRectCount;\n                }\n            }\n        }\n        for (var i = this.__startIndex; i < this.__endIndex; ++i) {\n            var el = displayList[i];\n            if (el) {\n                var shouldPaint = el.shouldBePainted(viewWidth, viewHeight, true, true);\n                var prevRect = el.__isRendered && ((el.__dirty & Element.REDARAW_BIT) || !shouldPaint)\n                    ? el.getPrevPaintRect()\n                    : null;\n                if (prevRect) {\n                    addRectToMergePool(prevRect);\n                }\n                var curRect = shouldPaint && ((el.__dirty & Element.REDARAW_BIT) || !el.__isRendered)\n                    ? el.getPaintRect()\n                    : null;\n                if (curRect) {\n                    addRectToMergePool(curRect);\n                }\n            }\n        }\n        for (var i = this.__prevStartIndex; i < this.__prevEndIndex; ++i) {\n            var el = prevList[i];\n            var shouldPaint = el.shouldBePainted(viewWidth, viewHeight, true, true);\n            if (el && (!shouldPaint || !el.__zr) && el.__isRendered) {\n                var prevRect = el.getPrevPaintRect();\n                if (prevRect) {\n                    addRectToMergePool(prevRect);\n                }\n            }\n        }\n        var hasIntersections;\n        do {\n            hasIntersections = false;\n            for (var i = 0; i < mergedRepaintRects.length;) {\n                if (mergedRepaintRects[i].isZero()) {\n                    mergedRepaintRects.splice(i, 1);\n                    continue;\n                }\n                for (var j = i + 1; j < mergedRepaintRects.length;) {\n                    if (mergedRepaintRects[i].intersect(mergedRepaintRects[j])) {\n                        hasIntersections = true;\n                        mergedRepaintRects[i].union(mergedRepaintRects[j]);\n                        mergedRepaintRects.splice(j, 1);\n                    }\n                    else {\n                        j++;\n                    }\n                }\n                i++;\n            }\n        } while (hasIntersections);\n        this._paintRects = mergedRepaintRects;\n        return mergedRepaintRects;\n    };\n    Layer.prototype.debugGetPaintRects = function () {\n        return (this._paintRects || []).slice();\n    };\n    Layer.prototype.resize = function (width, height) {\n        var dpr = this.dpr;\n        var dom = this.dom;\n        var domStyle = dom.style;\n        var domBack = this.domBack;\n        if (domStyle) {\n            domStyle.width = width + 'px';\n            domStyle.height = height + 'px';\n        }\n        dom.width = width * dpr;\n        dom.height = height * dpr;\n        if (domBack) {\n            domBack.width = width * dpr;\n            domBack.height = height * dpr;\n            if (dpr !== 1) {\n                this.ctxBack.scale(dpr, dpr);\n            }\n        }\n    };\n    Layer.prototype.clear = function (clearAll, clearColor, repaintRects) {\n        var dom = this.dom;\n        var ctx = this.ctx;\n        var width = dom.width;\n        var height = dom.height;\n        clearColor = clearColor || this.clearColor;\n        var haveMotionBLur = this.motionBlur && !clearAll;\n        var lastFrameAlpha = this.lastFrameAlpha;\n        var dpr = this.dpr;\n        var self = this;\n        if (haveMotionBLur) {\n            if (!this.domBack) {\n                this.createBackBuffer();\n            }\n            this.ctxBack.globalCompositeOperation = 'copy';\n            this.ctxBack.drawImage(dom, 0, 0, width / dpr, height / dpr);\n        }\n        var domBack = this.domBack;\n        function doClear(x, y, width, height) {\n            ctx.clearRect(x, y, width, height);\n            if (clearColor && clearColor !== 'transparent') {\n                var clearColorGradientOrPattern = void 0;\n                if (util.isGradientObject(clearColor)) {\n                    clearColorGradientOrPattern = clearColor.__canvasGradient\n                        || getCanvasGradient(ctx, clearColor, {\n                            x: 0,\n                            y: 0,\n                            width: width,\n                            height: height\n                        });\n                    clearColor.__canvasGradient = clearColorGradientOrPattern;\n                }\n                else if (util.isPatternObject(clearColor)) {\n                    clearColorGradientOrPattern = createCanvasPattern(ctx, clearColor, {\n                        dirty: function () {\n                            self.setUnpainted();\n                            self.__painter.refresh();\n                        }\n                    });\n                }\n                ctx.save();\n                ctx.fillStyle = clearColorGradientOrPattern || clearColor;\n                ctx.fillRect(x, y, width, height);\n                ctx.restore();\n            }\n            if (haveMotionBLur) {\n                ctx.save();\n                ctx.globalAlpha = lastFrameAlpha;\n                ctx.drawImage(domBack, x, y, width, height);\n                ctx.restore();\n            }\n        }\n        ;\n        if (!repaintRects || haveMotionBLur) {\n            doClear(0, 0, width, height);\n        }\n        else if (repaintRects.length) {\n            util.each(repaintRects, function (rect) {\n                doClear(rect.x * dpr, rect.y * dpr, rect.width * dpr, rect.height * dpr);\n            });\n        }\n    };\n    return Layer;\n}(Eventful));\nexport default Layer;\n","import { devicePixelRatio } from '../config';\nimport * as util from '../core/util';\nimport Layer from './Layer';\nimport requestAnimationFrame from '../animation/requestAnimationFrame';\nimport ZRImage from '../graphic/Image';\nimport env from '../core/env';\nimport { brush, brushSingle } from './graphic';\nimport Element from '../Element';\nvar HOVER_LAYER_ZLEVEL = 1e5;\nvar CANVAS_ZLEVEL = 314159;\nvar EL_AFTER_INCREMENTAL_INC = 0.01;\nvar INCREMENTAL_INC = 0.001;\nfunction parseInt10(val) {\n    return parseInt(val, 10);\n}\nfunction isLayerValid(layer) {\n    if (!layer) {\n        return false;\n    }\n    if (layer.__builtin__) {\n        return true;\n    }\n    if (typeof (layer.resize) !== 'function'\n        || typeof (layer.refresh) !== 'function') {\n        return false;\n    }\n    return true;\n}\nfunction createRoot(width, height) {\n    var domRoot = document.createElement('div');\n    domRoot.style.cssText = [\n        'position:relative',\n        'width:' + width + 'px',\n        'height:' + height + 'px',\n        'padding:0',\n        'margin:0',\n        'border-width:0'\n    ].join(';') + ';';\n    return domRoot;\n}\nvar CanvasPainter = (function () {\n    function CanvasPainter(root, storage, opts, id) {\n        this.type = 'canvas';\n        this._zlevelList = [];\n        this._prevDisplayList = [];\n        this._layers = {};\n        this._layerConfig = {};\n        this._needsManuallyCompositing = false;\n        this.type = 'canvas';\n        var singleCanvas = !root.nodeName\n            || root.nodeName.toUpperCase() === 'CANVAS';\n        this._opts = opts = util.extend({}, opts || {});\n        this.dpr = opts.devicePixelRatio || devicePixelRatio;\n        this._singleCanvas = singleCanvas;\n        this.root = root;\n        var rootStyle = root.style;\n        if (rootStyle) {\n            rootStyle.webkitTapHighlightColor = 'transparent';\n            rootStyle.webkitUserSelect = 'none';\n            rootStyle.userSelect = 'none';\n            rootStyle['-webkit-touch-callout'] = 'none';\n            root.innerHTML = '';\n        }\n        this.storage = storage;\n        var zlevelList = this._zlevelList;\n        this._prevDisplayList = [];\n        var layers = this._layers;\n        if (!singleCanvas) {\n            this._width = this._getSize(0);\n            this._height = this._getSize(1);\n            var domRoot = this._domRoot = createRoot(this._width, this._height);\n            root.appendChild(domRoot);\n        }\n        else {\n            var rootCanvas = root;\n            var width = rootCanvas.width;\n            var height = rootCanvas.height;\n            if (opts.width != null) {\n                width = opts.width;\n            }\n            if (opts.height != null) {\n                height = opts.height;\n            }\n            this.dpr = opts.devicePixelRatio || 1;\n            rootCanvas.width = width * this.dpr;\n            rootCanvas.height = height * this.dpr;\n            this._width = width;\n            this._height = height;\n            var mainLayer = new Layer(rootCanvas, this, this.dpr);\n            mainLayer.__builtin__ = true;\n            mainLayer.initContext();\n            layers[CANVAS_ZLEVEL] = mainLayer;\n            mainLayer.zlevel = CANVAS_ZLEVEL;\n            zlevelList.push(CANVAS_ZLEVEL);\n            this._domRoot = root;\n        }\n    }\n    CanvasPainter.prototype.getType = function () {\n        return 'canvas';\n    };\n    CanvasPainter.prototype.isSingleCanvas = function () {\n        return this._singleCanvas;\n    };\n    CanvasPainter.prototype.getViewportRoot = function () {\n        return this._domRoot;\n    };\n    CanvasPainter.prototype.getViewportRootOffset = function () {\n        var viewportRoot = this.getViewportRoot();\n        if (viewportRoot) {\n            return {\n                offsetLeft: viewportRoot.offsetLeft || 0,\n                offsetTop: viewportRoot.offsetTop || 0\n            };\n        }\n    };\n    CanvasPainter.prototype.refresh = function (paintAll) {\n        var list = this.storage.getDisplayList(true);\n        var prevList = this._prevDisplayList;\n        var zlevelList = this._zlevelList;\n        this._redrawId = Math.random();\n        this._paintList(list, prevList, paintAll, this._redrawId);\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            var layer = this._layers[z];\n            if (!layer.__builtin__ && layer.refresh) {\n                var clearColor = i === 0 ? this._backgroundColor : null;\n                layer.refresh(clearColor);\n            }\n        }\n        if (this._opts.useDirtyRect) {\n            this._prevDisplayList = list.slice();\n        }\n        return this;\n    };\n    CanvasPainter.prototype.refreshHover = function () {\n        this._paintHoverList(this.storage.getDisplayList(false));\n    };\n    CanvasPainter.prototype._paintHoverList = function (list) {\n        var len = list.length;\n        var hoverLayer = this._hoverlayer;\n        hoverLayer && hoverLayer.clear();\n        if (!len) {\n            return;\n        }\n        var scope = {\n            inHover: true,\n            viewWidth: this._width,\n            viewHeight: this._height\n        };\n        var ctx;\n        for (var i = 0; i < len; i++) {\n            var el = list[i];\n            if (el.__inHover) {\n                if (!hoverLayer) {\n                    hoverLayer = this._hoverlayer = this.getLayer(HOVER_LAYER_ZLEVEL);\n                }\n                if (!ctx) {\n                    ctx = hoverLayer.ctx;\n                    ctx.save();\n                }\n                brush(ctx, el, scope, i === len - 1);\n            }\n        }\n        if (ctx) {\n            ctx.restore();\n        }\n    };\n    CanvasPainter.prototype.getHoverLayer = function () {\n        return this.getLayer(HOVER_LAYER_ZLEVEL);\n    };\n    CanvasPainter.prototype.paintOne = function (ctx, el) {\n        brushSingle(ctx, el);\n    };\n    CanvasPainter.prototype._paintList = function (list, prevList, paintAll, redrawId) {\n        if (this._redrawId !== redrawId) {\n            return;\n        }\n        paintAll = paintAll || false;\n        this._updateLayerStatus(list);\n        var _a = this._doPaintList(list, prevList, paintAll), finished = _a.finished, needsRefreshHover = _a.needsRefreshHover;\n        if (this._needsManuallyCompositing) {\n            this._compositeManually();\n        }\n        if (needsRefreshHover) {\n            this._paintHoverList(list);\n        }\n        if (!finished) {\n            var self_1 = this;\n            requestAnimationFrame(function () {\n                self_1._paintList(list, prevList, paintAll, redrawId);\n            });\n        }\n        else {\n            this.eachLayer(function (layer) {\n                layer.afterBrush && layer.afterBrush();\n            });\n        }\n    };\n    CanvasPainter.prototype._compositeManually = function () {\n        var ctx = this.getLayer(CANVAS_ZLEVEL).ctx;\n        var width = this._domRoot.width;\n        var height = this._domRoot.height;\n        ctx.clearRect(0, 0, width, height);\n        this.eachBuiltinLayer(function (layer) {\n            if (layer.virtual) {\n                ctx.drawImage(layer.dom, 0, 0, width, height);\n            }\n        });\n    };\n    CanvasPainter.prototype._doPaintList = function (list, prevList, paintAll) {\n        var _this = this;\n        var layerList = [];\n        var useDirtyRect = this._opts.useDirtyRect;\n        for (var zi = 0; zi < this._zlevelList.length; zi++) {\n            var zlevel = this._zlevelList[zi];\n            var layer = this._layers[zlevel];\n            if (layer.__builtin__\n                && layer !== this._hoverlayer\n                && (layer.__dirty || paintAll)) {\n                layerList.push(layer);\n            }\n        }\n        var finished = true;\n        var needsRefreshHover = false;\n        var _loop_1 = function (k) {\n            var layer = layerList[k];\n            var ctx = layer.ctx;\n            var repaintRects = useDirtyRect\n                && layer.createRepaintRects(list, prevList, this_1._width, this_1._height);\n            ctx.save();\n            var start = paintAll ? layer.__startIndex : layer.__drawIndex;\n            var useTimer = !paintAll && layer.incremental && Date.now;\n            var startTime = useTimer && Date.now();\n            var clearColor = layer.zlevel === this_1._zlevelList[0]\n                ? this_1._backgroundColor : null;\n            if (layer.__startIndex === layer.__endIndex) {\n                layer.clear(false, clearColor, repaintRects);\n            }\n            else if (start === layer.__startIndex) {\n                var firstEl = list[start];\n                if (!firstEl.incremental || !firstEl.notClear || paintAll) {\n                    layer.clear(false, clearColor, repaintRects);\n                }\n            }\n            if (start === -1) {\n                console.error('For some unknown reason. drawIndex is -1');\n                start = layer.__startIndex;\n            }\n            var i;\n            var repaint = function (repaintRect) {\n                var scope = {\n                    inHover: false,\n                    allClipped: false,\n                    prevEl: null,\n                    viewWidth: _this._width,\n                    viewHeight: _this._height\n                };\n                for (i = start; i < layer.__endIndex; i++) {\n                    var el = list[i];\n                    if (el.__inHover) {\n                        needsRefreshHover = true;\n                    }\n                    _this._doPaintEl(el, layer, useDirtyRect, repaintRect, scope, i === layer.__endIndex - 1);\n                    if (useTimer) {\n                        var dTime = Date.now() - startTime;\n                        if (dTime > 15) {\n                            break;\n                        }\n                    }\n                }\n                if (scope.prevElClipPaths) {\n                    ctx.restore();\n                }\n            };\n            if (repaintRects) {\n                if (repaintRects.length === 0) {\n                    i = layer.__endIndex;\n                }\n                else {\n                    var dpr = this_1.dpr;\n                    for (var r = 0; r < repaintRects.length; ++r) {\n                        var rect = repaintRects[r];\n                        ctx.save();\n                        ctx.beginPath();\n                        ctx.rect(rect.x * dpr, rect.y * dpr, rect.width * dpr, rect.height * dpr);\n                        ctx.clip();\n                        repaint(rect);\n                        ctx.restore();\n                    }\n                }\n            }\n            else {\n                ctx.save();\n                repaint();\n                ctx.restore();\n            }\n            layer.__drawIndex = i;\n            if (layer.__drawIndex < layer.__endIndex) {\n                finished = false;\n            }\n        };\n        var this_1 = this;\n        for (var k = 0; k < layerList.length; k++) {\n            _loop_1(k);\n        }\n        if (env.wxa) {\n            util.each(this._layers, function (layer) {\n                if (layer && layer.ctx && layer.ctx.draw) {\n                    layer.ctx.draw();\n                }\n            });\n        }\n        return {\n            finished: finished,\n            needsRefreshHover: needsRefreshHover\n        };\n    };\n    CanvasPainter.prototype._doPaintEl = function (el, currentLayer, useDirtyRect, repaintRect, scope, isLast) {\n        var ctx = currentLayer.ctx;\n        if (useDirtyRect) {\n            var paintRect = el.getPaintRect();\n            if (!repaintRect || paintRect && paintRect.intersect(repaintRect)) {\n                brush(ctx, el, scope, isLast);\n                el.setPrevPaintRect(paintRect);\n            }\n        }\n        else {\n            brush(ctx, el, scope, isLast);\n        }\n    };\n    CanvasPainter.prototype.getLayer = function (zlevel, virtual) {\n        if (this._singleCanvas && !this._needsManuallyCompositing) {\n            zlevel = CANVAS_ZLEVEL;\n        }\n        var layer = this._layers[zlevel];\n        if (!layer) {\n            layer = new Layer('zr_' + zlevel, this, this.dpr);\n            layer.zlevel = zlevel;\n            layer.__builtin__ = true;\n            if (this._layerConfig[zlevel]) {\n                util.merge(layer, this._layerConfig[zlevel], true);\n            }\n            else if (this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC]) {\n                util.merge(layer, this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC], true);\n            }\n            if (virtual) {\n                layer.virtual = virtual;\n            }\n            this.insertLayer(zlevel, layer);\n            layer.initContext();\n        }\n        return layer;\n    };\n    CanvasPainter.prototype.insertLayer = function (zlevel, layer) {\n        var layersMap = this._layers;\n        var zlevelList = this._zlevelList;\n        var len = zlevelList.length;\n        var domRoot = this._domRoot;\n        var prevLayer = null;\n        var i = -1;\n        if (layersMap[zlevel]) {\n            util.logError('ZLevel ' + zlevel + ' has been used already');\n            return;\n        }\n        if (!isLayerValid(layer)) {\n            util.logError('Layer of zlevel ' + zlevel + ' is not valid');\n            return;\n        }\n        if (len > 0 && zlevel > zlevelList[0]) {\n            for (i = 0; i < len - 1; i++) {\n                if (zlevelList[i] < zlevel\n                    && zlevelList[i + 1] > zlevel) {\n                    break;\n                }\n            }\n            prevLayer = layersMap[zlevelList[i]];\n        }\n        zlevelList.splice(i + 1, 0, zlevel);\n        layersMap[zlevel] = layer;\n        if (!layer.virtual) {\n            if (prevLayer) {\n                var prevDom = prevLayer.dom;\n                if (prevDom.nextSibling) {\n                    domRoot.insertBefore(layer.dom, prevDom.nextSibling);\n                }\n                else {\n                    domRoot.appendChild(layer.dom);\n                }\n            }\n            else {\n                if (domRoot.firstChild) {\n                    domRoot.insertBefore(layer.dom, domRoot.firstChild);\n                }\n                else {\n                    domRoot.appendChild(layer.dom);\n                }\n            }\n        }\n        layer.__painter = this;\n    };\n    CanvasPainter.prototype.eachLayer = function (cb, context) {\n        var zlevelList = this._zlevelList;\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            cb.call(context, this._layers[z], z);\n        }\n    };\n    CanvasPainter.prototype.eachBuiltinLayer = function (cb, context) {\n        var zlevelList = this._zlevelList;\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            var layer = this._layers[z];\n            if (layer.__builtin__) {\n                cb.call(context, layer, z);\n            }\n        }\n    };\n    CanvasPainter.prototype.eachOtherLayer = function (cb, context) {\n        var zlevelList = this._zlevelList;\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            var layer = this._layers[z];\n            if (!layer.__builtin__) {\n                cb.call(context, layer, z);\n            }\n        }\n    };\n    CanvasPainter.prototype.getLayers = function () {\n        return this._layers;\n    };\n    CanvasPainter.prototype._updateLayerStatus = function (list) {\n        this.eachBuiltinLayer(function (layer, z) {\n            layer.__dirty = layer.__used = false;\n        });\n        function updatePrevLayer(idx) {\n            if (prevLayer) {\n                if (prevLayer.__endIndex !== idx) {\n                    prevLayer.__dirty = true;\n                }\n                prevLayer.__endIndex = idx;\n            }\n        }\n        if (this._singleCanvas) {\n            for (var i_1 = 1; i_1 < list.length; i_1++) {\n                var el = list[i_1];\n                if (el.zlevel !== list[i_1 - 1].zlevel || el.incremental) {\n                    this._needsManuallyCompositing = true;\n                    break;\n                }\n            }\n        }\n        var prevLayer = null;\n        var incrementalLayerCount = 0;\n        var prevZlevel;\n        var i;\n        for (i = 0; i < list.length; i++) {\n            var el = list[i];\n            var zlevel = el.zlevel;\n            var layer = void 0;\n            if (prevZlevel !== zlevel) {\n                prevZlevel = zlevel;\n                incrementalLayerCount = 0;\n            }\n            if (el.incremental) {\n                layer = this.getLayer(zlevel + INCREMENTAL_INC, this._needsManuallyCompositing);\n                layer.incremental = true;\n                incrementalLayerCount = 1;\n            }\n            else {\n                layer = this.getLayer(zlevel + (incrementalLayerCount > 0 ? EL_AFTER_INCREMENTAL_INC : 0), this._needsManuallyCompositing);\n            }\n            if (!layer.__builtin__) {\n                util.logError('ZLevel ' + zlevel + ' has been used by unkown layer ' + layer.id);\n            }\n            if (layer !== prevLayer) {\n                layer.__used = true;\n                if (layer.__startIndex !== i) {\n                    layer.__dirty = true;\n                }\n                layer.__startIndex = i;\n                if (!layer.incremental) {\n                    layer.__drawIndex = i;\n                }\n                else {\n                    layer.__drawIndex = -1;\n                }\n                updatePrevLayer(i);\n                prevLayer = layer;\n            }\n            if ((el.__dirty & Element.REDARAW_BIT) && !el.__inHover) {\n                layer.__dirty = true;\n                if (layer.incremental && layer.__drawIndex < 0) {\n                    layer.__drawIndex = i;\n                }\n            }\n        }\n        updatePrevLayer(i);\n        this.eachBuiltinLayer(function (layer, z) {\n            if (!layer.__used && layer.getElementCount() > 0) {\n                layer.__dirty = true;\n                layer.__startIndex = layer.__endIndex = layer.__drawIndex = 0;\n            }\n            if (layer.__dirty && layer.__drawIndex < 0) {\n                layer.__drawIndex = layer.__startIndex;\n            }\n        });\n    };\n    CanvasPainter.prototype.clear = function () {\n        this.eachBuiltinLayer(this._clearLayer);\n        return this;\n    };\n    CanvasPainter.prototype._clearLayer = function (layer) {\n        layer.clear();\n    };\n    CanvasPainter.prototype.setBackgroundColor = function (backgroundColor) {\n        this._backgroundColor = backgroundColor;\n        util.each(this._layers, function (layer) {\n            layer.setUnpainted();\n        });\n    };\n    CanvasPainter.prototype.configLayer = function (zlevel, config) {\n        if (config) {\n            var layerConfig = this._layerConfig;\n            if (!layerConfig[zlevel]) {\n                layerConfig[zlevel] = config;\n            }\n            else {\n                util.merge(layerConfig[zlevel], config, true);\n            }\n            for (var i = 0; i < this._zlevelList.length; i++) {\n                var _zlevel = this._zlevelList[i];\n                if (_zlevel === zlevel || _zlevel === zlevel + EL_AFTER_INCREMENTAL_INC) {\n                    var layer = this._layers[_zlevel];\n                    util.merge(layer, layerConfig[zlevel], true);\n                }\n            }\n        }\n    };\n    CanvasPainter.prototype.delLayer = function (zlevel) {\n        var layers = this._layers;\n        var zlevelList = this._zlevelList;\n        var layer = layers[zlevel];\n        if (!layer) {\n            return;\n        }\n        layer.dom.parentNode.removeChild(layer.dom);\n        delete layers[zlevel];\n        zlevelList.splice(util.indexOf(zlevelList, zlevel), 1);\n    };\n    CanvasPainter.prototype.resize = function (width, height) {\n        if (!this._domRoot.style) {\n            if (width == null || height == null) {\n                return;\n            }\n            this._width = width;\n            this._height = height;\n            this.getLayer(CANVAS_ZLEVEL).resize(width, height);\n        }\n        else {\n            var domRoot = this._domRoot;\n            domRoot.style.display = 'none';\n            var opts = this._opts;\n            width != null && (opts.width = width);\n            height != null && (opts.height = height);\n            width = this._getSize(0);\n            height = this._getSize(1);\n            domRoot.style.display = '';\n            if (this._width !== width || height !== this._height) {\n                domRoot.style.width = width + 'px';\n                domRoot.style.height = height + 'px';\n                for (var id in this._layers) {\n                    if (this._layers.hasOwnProperty(id)) {\n                        this._layers[id].resize(width, height);\n                    }\n                }\n                this.refresh(true);\n            }\n            this._width = width;\n            this._height = height;\n        }\n        return this;\n    };\n    CanvasPainter.prototype.clearLayer = function (zlevel) {\n        var layer = this._layers[zlevel];\n        if (layer) {\n            layer.clear();\n        }\n    };\n    CanvasPainter.prototype.dispose = function () {\n        this.root.innerHTML = '';\n        this.root =\n            this.storage =\n                this._domRoot =\n                    this._layers = null;\n    };\n    CanvasPainter.prototype.getRenderedCanvas = function (opts) {\n        opts = opts || {};\n        if (this._singleCanvas && !this._compositeManually) {\n            return this._layers[CANVAS_ZLEVEL].dom;\n        }\n        var imageLayer = new Layer('image', this, opts.pixelRatio || this.dpr);\n        var ctx = imageLayer.ctx;\n        imageLayer.initContext();\n        imageLayer.clear(false, opts.backgroundColor || this._backgroundColor);\n        if (opts.pixelRatio <= this.dpr) {\n            this.refresh();\n            var width_1 = imageLayer.dom.width;\n            var height_1 = imageLayer.dom.height;\n            var ctx_1 = imageLayer.ctx;\n            this.eachLayer(function (layer) {\n                if (layer.__builtin__) {\n                    ctx_1.drawImage(layer.dom, 0, 0, width_1, height_1);\n                }\n                else if (layer.renderToCanvas) {\n                    imageLayer.ctx.save();\n                    layer.renderToCanvas(imageLayer.ctx);\n                    imageLayer.ctx.restore();\n                }\n            });\n        }\n        else {\n            var scope = {\n                inHover: false,\n                viewWidth: this._width,\n                viewHeight: this._height\n            };\n            var displayList = this.storage.getDisplayList(true);\n            for (var i = 0, len = displayList.length; i < len; i++) {\n                var el = displayList[i];\n                brush(ctx, el, scope, i === len - 1);\n            }\n        }\n        return imageLayer.dom;\n    };\n    CanvasPainter.prototype.getWidth = function () {\n        return this._width;\n    };\n    CanvasPainter.prototype.getHeight = function () {\n        return this._height;\n    };\n    CanvasPainter.prototype._getSize = function (whIdx) {\n        var opts = this._opts;\n        var wh = ['width', 'height'][whIdx];\n        var cwh = ['clientWidth', 'clientHeight'][whIdx];\n        var plt = ['paddingLeft', 'paddingTop'][whIdx];\n        var prb = ['paddingRight', 'paddingBottom'][whIdx];\n        if (opts[wh] != null && opts[wh] !== 'auto') {\n            return parseFloat(opts[wh]);\n        }\n        var root = this.root;\n        var stl = document.defaultView.getComputedStyle(root);\n        return ((root[cwh] || parseInt10(stl[wh]) || parseInt10(root.style[wh]))\n            - (parseInt10(stl[plt]) || 0)\n            - (parseInt10(stl[prb]) || 0)) | 0;\n    };\n    CanvasPainter.prototype.pathToImage = function (path, dpr) {\n        dpr = dpr || this.dpr;\n        var canvas = document.createElement('canvas');\n        var ctx = canvas.getContext('2d');\n        var rect = path.getBoundingRect();\n        var style = path.style;\n        var shadowBlurSize = style.shadowBlur * dpr;\n        var shadowOffsetX = style.shadowOffsetX * dpr;\n        var shadowOffsetY = style.shadowOffsetY * dpr;\n        var lineWidth = path.hasStroke() ? style.lineWidth : 0;\n        var leftMargin = Math.max(lineWidth / 2, -shadowOffsetX + shadowBlurSize);\n        var rightMargin = Math.max(lineWidth / 2, shadowOffsetX + shadowBlurSize);\n        var topMargin = Math.max(lineWidth / 2, -shadowOffsetY + shadowBlurSize);\n        var bottomMargin = Math.max(lineWidth / 2, shadowOffsetY + shadowBlurSize);\n        var width = rect.width + leftMargin + rightMargin;\n        var height = rect.height + topMargin + bottomMargin;\n        canvas.width = width * dpr;\n        canvas.height = height * dpr;\n        ctx.scale(dpr, dpr);\n        ctx.clearRect(0, 0, width, height);\n        ctx.dpr = dpr;\n        var pathTransform = {\n            x: path.x,\n            y: path.y,\n            scaleX: path.scaleX,\n            scaleY: path.scaleY,\n            rotation: path.rotation,\n            originX: path.originX,\n            originY: path.originY\n        };\n        path.x = leftMargin - rect.x;\n        path.y = topMargin - rect.y;\n        path.rotation = 0;\n        path.scaleX = 1;\n        path.scaleY = 1;\n        path.updateTransform();\n        if (path) {\n            brush(ctx, path, {\n                inHover: false,\n                viewWidth: this._width,\n                viewHeight: this._height\n            }, true);\n        }\n        var imgShape = new ZRImage({\n            style: {\n                x: 0,\n                y: 0,\n                image: canvas\n            }\n        });\n        util.extend(path, pathTransform);\n        return imgShape;\n    };\n    return CanvasPainter;\n}());\nexport default CanvasPainter;\n;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport CanvasPainter from 'zrender/lib/canvas/Painter';\nexport function install(registers) {\n  registers.registerPainter('canvas', CanvasPainter);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListFromArray from '../helper/createListFromArray';\nimport SeriesModel from '../../model/Series';\n\nvar LineSeriesModel = function (_super) {\n  __extends(LineSeriesModel, _super);\n\n  function LineSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = LineSeriesModel.type;\n    _this.hasSymbolVisual = true;\n    _this.legendSymbol = 'line';\n    return _this;\n  }\n\n  LineSeriesModel.prototype.getInitialData = function (option) {\n    if (process.env.NODE_ENV !== 'production') {\n      var coordSys = option.coordinateSystem;\n\n      if (coordSys !== 'polar' && coordSys !== 'cartesian2d') {\n        throw new Error('Line not support coordinateSystem besides cartesian and polar');\n      }\n    }\n\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: true\n    });\n  };\n\n  LineSeriesModel.type = 'series.line';\n  LineSeriesModel.dependencies = ['grid', 'polar'];\n  LineSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 3,\n    coordinateSystem: 'cartesian2d',\n    legendHoverLink: true,\n    clip: true,\n    label: {\n      position: 'top'\n    },\n    endLabel: {\n      show: false,\n      valueAnimation: true,\n      distance: 8\n    },\n    lineStyle: {\n      width: 2,\n      type: 'solid'\n    },\n    emphasis: {\n      scale: true,\n      lineStyle: {\n        width: 'bolder'\n      }\n    },\n    step: false,\n    smooth: false,\n    smoothMonotone: null,\n    symbol: 'emptyCircle',\n    symbolSize: 4,\n    symbolRotate: null,\n    showSymbol: true,\n    showAllSymbol: 'auto',\n    connectNulls: false,\n    sampling: 'none',\n    animationEasing: 'linear',\n    progressive: 0,\n    hoverLayerThreshold: Infinity\n  };\n  return LineSeriesModel;\n}(SeriesModel);\n\nexport default LineSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { retrieveRawValue } from '../../data/helper/dataProvider';\nimport { isArray } from 'zrender/lib/core/util';\nexport function getDefaultLabel(data, dataIndex) {\n  var labelDims = data.mapDimensionsAll('defaultedLabel');\n  var len = labelDims.length;\n\n  if (len === 1) {\n    var rawVal = retrieveRawValue(data, dataIndex, labelDims[0]);\n    return rawVal != null ? rawVal + '' : null;\n  } else if (len) {\n    var vals = [];\n\n    for (var i = 0; i < labelDims.length; i++) {\n      vals.push(retrieveRawValue(data, dataIndex, labelDims[i]));\n    }\n\n    return vals.join(' ');\n  }\n}\nexport function getDefaultInterpolatedLabel(data, interpolatedValue) {\n  var labelDims = data.mapDimensionsAll('defaultedLabel');\n\n  if (!isArray(interpolatedValue)) {\n    return interpolatedValue + '';\n  }\n\n  var vals = [];\n\n  for (var i = 0; i < labelDims.length; i++) {\n    var dimInfo = data.getDimensionInfo(labelDims[i]);\n\n    if (dimInfo) {\n      vals.push(interpolatedValue[dimInfo.index]);\n    }\n  }\n\n  return vals.join(' ');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { createSymbol } from '../../util/symbol';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { enterEmphasis, leaveEmphasis, enableHoverEmphasis } from '../../util/states';\nimport { parsePercent } from '../../util/number';\nimport { getDefaultLabel } from './labelHelper';\nimport { extend } from 'zrender/lib/core/util';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport ZRImage from 'zrender/lib/graphic/Image';\n\nvar Symbol = function (_super) {\n  __extends(Symbol, _super);\n\n  function Symbol(data, idx, seriesScope, opts) {\n    var _this = _super.call(this) || this;\n\n    _this.updateData(data, idx, seriesScope, opts);\n\n    return _this;\n  }\n\n  Symbol.prototype._createSymbol = function (symbolType, data, idx, symbolSize, keepAspect) {\n    this.removeAll();\n    var symbolPath = createSymbol(symbolType, -1, -1, 2, 2, null, keepAspect);\n    symbolPath.attr({\n      z2: 100,\n      culling: true,\n      scaleX: symbolSize[0] / 2,\n      scaleY: symbolSize[1] / 2\n    });\n    symbolPath.drift = driftSymbol;\n    this._symbolType = symbolType;\n    this.add(symbolPath);\n  };\n\n  Symbol.prototype.stopSymbolAnimation = function (toLastFrame) {\n    this.childAt(0).stopAnimation(null, toLastFrame);\n  };\n\n  Symbol.prototype.getSymbolPath = function () {\n    return this.childAt(0);\n  };\n\n  Symbol.prototype.highlight = function () {\n    enterEmphasis(this.childAt(0));\n  };\n\n  Symbol.prototype.downplay = function () {\n    leaveEmphasis(this.childAt(0));\n  };\n\n  Symbol.prototype.setZ = function (zlevel, z) {\n    var symbolPath = this.childAt(0);\n    symbolPath.zlevel = zlevel;\n    symbolPath.z = z;\n  };\n\n  Symbol.prototype.setDraggable = function (draggable) {\n    var symbolPath = this.childAt(0);\n    symbolPath.draggable = draggable;\n    symbolPath.cursor = draggable ? 'move' : symbolPath.cursor;\n  };\n\n  Symbol.prototype.updateData = function (data, idx, seriesScope, opts) {\n    this.silent = false;\n    var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\n    var seriesModel = data.hostModel;\n    var symbolSize = Symbol.getSymbolSize(data, idx);\n    var isInit = symbolType !== this._symbolType;\n    var disableAnimation = opts && opts.disableAnimation;\n\n    if (isInit) {\n      var keepAspect = data.getItemVisual(idx, 'symbolKeepAspect');\n\n      this._createSymbol(symbolType, data, idx, symbolSize, keepAspect);\n    } else {\n      var symbolPath = this.childAt(0);\n      symbolPath.silent = false;\n      var target = {\n        scaleX: symbolSize[0] / 2,\n        scaleY: symbolSize[1] / 2\n      };\n      disableAnimation ? symbolPath.attr(target) : graphic.updateProps(symbolPath, target, seriesModel, idx);\n    }\n\n    this._updateCommon(data, idx, symbolSize, seriesScope, opts);\n\n    if (isInit) {\n      var symbolPath = this.childAt(0);\n\n      if (!disableAnimation) {\n        var target = {\n          scaleX: this._sizeX,\n          scaleY: this._sizeY,\n          style: {\n            opacity: symbolPath.style.opacity\n          }\n        };\n        symbolPath.scaleX = symbolPath.scaleY = 0;\n        symbolPath.style.opacity = 0;\n        graphic.initProps(symbolPath, target, seriesModel, idx);\n      }\n    }\n\n    if (disableAnimation) {\n      this.childAt(0).stopAnimation('remove');\n    }\n\n    this._seriesModel = seriesModel;\n  };\n\n  Symbol.prototype._updateCommon = function (data, idx, symbolSize, seriesScope, opts) {\n    var symbolPath = this.childAt(0);\n    var seriesModel = data.hostModel;\n    var emphasisItemStyle;\n    var blurItemStyle;\n    var selectItemStyle;\n    var focus;\n    var blurScope;\n    var symbolOffset;\n    var labelStatesModels;\n    var hoverScale;\n    var cursorStyle;\n\n    if (seriesScope) {\n      emphasisItemStyle = seriesScope.emphasisItemStyle;\n      blurItemStyle = seriesScope.blurItemStyle;\n      selectItemStyle = seriesScope.selectItemStyle;\n      focus = seriesScope.focus;\n      blurScope = seriesScope.blurScope;\n      symbolOffset = seriesScope.symbolOffset;\n      labelStatesModels = seriesScope.labelStatesModels;\n      hoverScale = seriesScope.hoverScale;\n      cursorStyle = seriesScope.cursorStyle;\n    }\n\n    if (!seriesScope || data.hasItemOption) {\n      var itemModel = seriesScope && seriesScope.itemModel ? seriesScope.itemModel : data.getItemModel(idx);\n      var emphasisModel = itemModel.getModel('emphasis');\n      emphasisItemStyle = emphasisModel.getModel('itemStyle').getItemStyle();\n      selectItemStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\n      blurItemStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\n      focus = emphasisModel.get('focus');\n      blurScope = emphasisModel.get('blurScope');\n      symbolOffset = itemModel.getShallow('symbolOffset');\n      labelStatesModels = getLabelStatesModels(itemModel);\n      hoverScale = emphasisModel.getShallow('scale');\n      cursorStyle = itemModel.getShallow('cursor');\n    }\n\n    var symbolRotate = data.getItemVisual(idx, 'symbolRotate');\n    symbolPath.attr('rotation', (symbolRotate || 0) * Math.PI / 180 || 0);\n\n    if (symbolOffset) {\n      symbolPath.x = parsePercent(symbolOffset[0], symbolSize[0]);\n      symbolPath.y = parsePercent(symbolOffset[1], symbolSize[1]);\n    }\n\n    cursorStyle && symbolPath.attr('cursor', cursorStyle);\n    var symbolStyle = data.getItemVisual(idx, 'style');\n    var visualColor = symbolStyle.fill;\n\n    if (symbolPath instanceof ZRImage) {\n      var pathStyle = symbolPath.style;\n      symbolPath.useStyle(extend({\n        image: pathStyle.image,\n        x: pathStyle.x,\n        y: pathStyle.y,\n        width: pathStyle.width,\n        height: pathStyle.height\n      }, symbolStyle));\n    } else {\n      if (symbolPath.__isEmptyBrush) {\n        symbolPath.useStyle(extend({}, symbolStyle));\n      } else {\n        symbolPath.useStyle(symbolStyle);\n      }\n\n      symbolPath.style.decal = null;\n      symbolPath.setColor(visualColor, opts && opts.symbolInnerColor);\n      symbolPath.style.strokeNoScale = true;\n    }\n\n    var liftZ = data.getItemVisual(idx, 'liftZ');\n    var z2Origin = this._z2;\n\n    if (liftZ != null) {\n      if (z2Origin == null) {\n        this._z2 = symbolPath.z2;\n        symbolPath.z2 += liftZ;\n      }\n    } else if (z2Origin != null) {\n      symbolPath.z2 = z2Origin;\n      this._z2 = null;\n    }\n\n    var useNameLabel = opts && opts.useNameLabel;\n    setLabelStyle(symbolPath, labelStatesModels, {\n      labelFetcher: seriesModel,\n      labelDataIndex: idx,\n      defaultText: getLabelDefaultText,\n      inheritColor: visualColor,\n      defaultOpacity: symbolStyle.opacity\n    });\n\n    function getLabelDefaultText(idx) {\n      return useNameLabel ? data.getName(idx) : getDefaultLabel(data, idx);\n    }\n\n    this._sizeX = symbolSize[0] / 2;\n    this._sizeY = symbolSize[1] / 2;\n    var emphasisState = symbolPath.ensureState('emphasis');\n    emphasisState.style = emphasisItemStyle;\n    symbolPath.ensureState('select').style = selectItemStyle;\n    symbolPath.ensureState('blur').style = blurItemStyle;\n\n    if (hoverScale) {\n      var scaleRatio = Math.max(1.1, 3 / this._sizeY);\n      emphasisState.scaleX = this._sizeX * scaleRatio;\n      emphasisState.scaleY = this._sizeY * scaleRatio;\n    }\n\n    this.setSymbolScale(1);\n    enableHoverEmphasis(this, focus, blurScope);\n  };\n\n  Symbol.prototype.setSymbolScale = function (scale) {\n    this.scaleX = this.scaleY = scale;\n  };\n\n  Symbol.prototype.fadeOut = function (cb, opt) {\n    var symbolPath = this.childAt(0);\n    var seriesModel = this._seriesModel;\n    var dataIndex = getECData(this).dataIndex;\n    var animationOpt = opt && opt.animation;\n    this.silent = symbolPath.silent = true;\n\n    if (opt && opt.fadeLabel) {\n      var textContent = symbolPath.getTextContent();\n\n      if (textContent) {\n        graphic.removeElement(textContent, {\n          style: {\n            opacity: 0\n          }\n        }, seriesModel, {\n          dataIndex: dataIndex,\n          removeOpt: animationOpt,\n          cb: function () {\n            symbolPath.removeTextContent();\n          }\n        });\n      }\n    } else {\n      symbolPath.removeTextContent();\n    }\n\n    graphic.removeElement(symbolPath, {\n      style: {\n        opacity: 0\n      },\n      scaleX: 0,\n      scaleY: 0\n    }, seriesModel, {\n      dataIndex: dataIndex,\n      cb: cb,\n      removeOpt: animationOpt\n    });\n  };\n\n  Symbol.getSymbolSize = function (data, idx) {\n    var symbolSize = data.getItemVisual(idx, 'symbolSize');\n    return symbolSize instanceof Array ? symbolSize.slice() : [+symbolSize, +symbolSize];\n  };\n\n  return Symbol;\n}(graphic.Group);\n\nfunction driftSymbol(dx, dy) {\n  this.parent.drift(dx, dy);\n}\n\nexport default Symbol;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as graphic from '../../util/graphic';\nimport SymbolClz from './Symbol';\nimport { isObject } from 'zrender/lib/core/util';\nimport { getLabelStatesModels } from '../../label/labelStyle';\n\nfunction symbolNeedsDraw(data, point, idx, opt) {\n  return point && !isNaN(point[0]) && !isNaN(point[1]) && !(opt.isIgnore && opt.isIgnore(idx)) && !(opt.clipShape && !opt.clipShape.contain(point[0], point[1])) && data.getItemVisual(idx, 'symbol') !== 'none';\n}\n\nfunction normalizeUpdateOpt(opt) {\n  if (opt != null && !isObject(opt)) {\n    opt = {\n      isIgnore: opt\n    };\n  }\n\n  return opt || {};\n}\n\nfunction makeSeriesScope(data) {\n  var seriesModel = data.hostModel;\n  var emphasisModel = seriesModel.getModel('emphasis');\n  return {\n    emphasisItemStyle: emphasisModel.getModel('itemStyle').getItemStyle(),\n    blurItemStyle: seriesModel.getModel(['blur', 'itemStyle']).getItemStyle(),\n    selectItemStyle: seriesModel.getModel(['select', 'itemStyle']).getItemStyle(),\n    focus: emphasisModel.get('focus'),\n    blurScope: emphasisModel.get('blurScope'),\n    symbolRotate: seriesModel.get('symbolRotate'),\n    symbolOffset: seriesModel.get('symbolOffset'),\n    hoverScale: emphasisModel.get('scale'),\n    labelStatesModels: getLabelStatesModels(seriesModel),\n    cursorStyle: seriesModel.get('cursor')\n  };\n}\n\nvar SymbolDraw = function () {\n  function SymbolDraw(SymbolCtor) {\n    this.group = new graphic.Group();\n    this._SymbolCtor = SymbolCtor || SymbolClz;\n  }\n\n  SymbolDraw.prototype.updateData = function (data, opt) {\n    opt = normalizeUpdateOpt(opt);\n    var group = this.group;\n    var seriesModel = data.hostModel;\n    var oldData = this._data;\n    var SymbolCtor = this._SymbolCtor;\n    var disableAnimation = opt.disableAnimation;\n    var seriesScope = makeSeriesScope(data);\n    var symbolUpdateOpt = {\n      disableAnimation: disableAnimation\n    };\n\n    var getSymbolPoint = opt.getSymbolPoint || function (idx) {\n      return data.getItemLayout(idx);\n    };\n\n    if (!oldData) {\n      group.removeAll();\n    }\n\n    data.diff(oldData).add(function (newIdx) {\n      var point = getSymbolPoint(newIdx);\n\n      if (symbolNeedsDraw(data, point, newIdx, opt)) {\n        var symbolEl = new SymbolCtor(data, newIdx, seriesScope, symbolUpdateOpt);\n        symbolEl.setPosition(point);\n        data.setItemGraphicEl(newIdx, symbolEl);\n        group.add(symbolEl);\n      }\n    }).update(function (newIdx, oldIdx) {\n      var symbolEl = oldData.getItemGraphicEl(oldIdx);\n      var point = getSymbolPoint(newIdx);\n\n      if (!symbolNeedsDraw(data, point, newIdx, opt)) {\n        group.remove(symbolEl);\n        return;\n      }\n\n      if (!symbolEl) {\n        symbolEl = new SymbolCtor(data, newIdx);\n        symbolEl.setPosition(point);\n      } else {\n        symbolEl.updateData(data, newIdx, seriesScope, symbolUpdateOpt);\n        var target = {\n          x: point[0],\n          y: point[1]\n        };\n        disableAnimation ? symbolEl.attr(target) : graphic.updateProps(symbolEl, target, seriesModel);\n      }\n\n      group.add(symbolEl);\n      data.setItemGraphicEl(newIdx, symbolEl);\n    }).remove(function (oldIdx) {\n      var el = oldData.getItemGraphicEl(oldIdx);\n      el && el.fadeOut(function () {\n        group.remove(el);\n      });\n    }).execute();\n    this._getSymbolPoint = getSymbolPoint;\n    this._data = data;\n  };\n\n  ;\n\n  SymbolDraw.prototype.isPersistent = function () {\n    return true;\n  };\n\n  ;\n\n  SymbolDraw.prototype.updateLayout = function () {\n    var _this = this;\n\n    var data = this._data;\n\n    if (data) {\n      data.eachItemGraphicEl(function (el, idx) {\n        var point = _this._getSymbolPoint(idx);\n\n        el.setPosition(point);\n        el.markRedraw();\n      });\n    }\n  };\n\n  ;\n\n  SymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\n    this._seriesScope = makeSeriesScope(data);\n    this._data = null;\n    this.group.removeAll();\n  };\n\n  ;\n\n  SymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\n    opt = normalizeUpdateOpt(opt);\n\n    function updateIncrementalAndHover(el) {\n      if (!el.isGroup) {\n        el.incremental = true;\n        el.ensureState('emphasis').hoverLayer = true;\n      }\n    }\n\n    for (var idx = taskParams.start; idx < taskParams.end; idx++) {\n      var point = data.getItemLayout(idx);\n\n      if (symbolNeedsDraw(data, point, idx, opt)) {\n        var el = new this._SymbolCtor(data, idx, this._seriesScope);\n        el.traverse(updateIncrementalAndHover);\n        el.setPosition(point);\n        this.group.add(el);\n        data.setItemGraphicEl(idx, el);\n      }\n    }\n  };\n\n  ;\n\n  SymbolDraw.prototype.remove = function (enableAnimation) {\n    var group = this.group;\n    var data = this._data;\n\n    if (data && enableAnimation) {\n      data.eachItemGraphicEl(function (el) {\n        el.fadeOut(function () {\n          group.remove(el);\n        });\n      });\n    } else {\n      group.removeAll();\n    }\n  };\n\n  ;\n  return SymbolDraw;\n}();\n\nexport default SymbolDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isDimensionStacked } from '../../data/helper/dataStackHelper';\nimport { map } from 'zrender/lib/core/util';\nexport function prepareDataCoordInfo(coordSys, data, valueOrigin) {\n  var baseAxis = coordSys.getBaseAxis();\n  var valueAxis = coordSys.getOtherAxis(baseAxis);\n  var valueStart = getValueStart(valueAxis, valueOrigin);\n  var baseAxisDim = baseAxis.dim;\n  var valueAxisDim = valueAxis.dim;\n  var valueDim = data.mapDimension(valueAxisDim);\n  var baseDim = data.mapDimension(baseAxisDim);\n  var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\n  var dims = map(coordSys.dimensions, function (coordDim) {\n    return data.mapDimension(coordDim);\n  });\n  var stacked = false;\n  var stackResultDim = data.getCalculationInfo('stackResultDimension');\n\n  if (isDimensionStacked(data, dims[0])) {\n    stacked = true;\n    dims[0] = stackResultDim;\n  }\n\n  if (isDimensionStacked(data, dims[1])) {\n    stacked = true;\n    dims[1] = stackResultDim;\n  }\n\n  return {\n    dataDimsForPoint: dims,\n    valueStart: valueStart,\n    valueAxisDim: valueAxisDim,\n    baseAxisDim: baseAxisDim,\n    stacked: !!stacked,\n    valueDim: valueDim,\n    baseDim: baseDim,\n    baseDataOffset: baseDataOffset,\n    stackedOverDimension: data.getCalculationInfo('stackedOverDimension')\n  };\n}\n\nfunction getValueStart(valueAxis, valueOrigin) {\n  var valueStart = 0;\n  var extent = valueAxis.scale.getExtent();\n\n  if (valueOrigin === 'start') {\n    valueStart = extent[0];\n  } else if (valueOrigin === 'end') {\n    valueStart = extent[1];\n  } else {\n    if (extent[0] > 0) {\n      valueStart = extent[0];\n    } else if (extent[1] < 0) {\n      valueStart = extent[1];\n    }\n  }\n\n  return valueStart;\n}\n\nexport function getStackedOnPoint(dataCoordInfo, coordSys, data, idx) {\n  var value = NaN;\n\n  if (dataCoordInfo.stacked) {\n    value = data.get(data.getCalculationInfo('stackedOverDimension'), idx);\n  }\n\n  if (isNaN(value)) {\n    value = dataCoordInfo.valueStart;\n  }\n\n  var baseDataOffset = dataCoordInfo.baseDataOffset;\n  var stackedData = [];\n  stackedData[baseDataOffset] = data.get(dataCoordInfo.baseDim, idx);\n  stackedData[1 - baseDataOffset] = value;\n  return coordSys.dataToPoint(stackedData);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isArray } from 'zrender/lib/core/util';\nvar supportFloat32Array = typeof Float32Array !== 'undefined';\nvar Float32ArrayCtor = !supportFloat32Array ? Array : Float32Array;\nexport function createFloat32Array(arg) {\n  if (isArray(arg)) {\n    return supportFloat32Array ? new Float32Array(arg) : arg;\n  }\n\n  return new Float32ArrayCtor(arg);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { prepareDataCoordInfo, getStackedOnPoint } from './helper';\nimport { createFloat32Array } from '../../util/vendor';\n\nfunction diffData(oldData, newData) {\n  var diffResult = [];\n  newData.diff(oldData).add(function (idx) {\n    diffResult.push({\n      cmd: '+',\n      idx: idx\n    });\n  }).update(function (newIdx, oldIdx) {\n    diffResult.push({\n      cmd: '=',\n      idx: oldIdx,\n      idx1: newIdx\n    });\n  }).remove(function (idx) {\n    diffResult.push({\n      cmd: '-',\n      idx: idx\n    });\n  }).execute();\n  return diffResult;\n}\n\nexport default function lineAnimationDiff(oldData, newData, oldStackedOnPoints, newStackedOnPoints, oldCoordSys, newCoordSys, oldValueOrigin, newValueOrigin) {\n  var diff = diffData(oldData, newData);\n  var currPoints = [];\n  var nextPoints = [];\n  var currStackedPoints = [];\n  var nextStackedPoints = [];\n  var status = [];\n  var sortedIndices = [];\n  var rawIndices = [];\n  var newDataOldCoordInfo = prepareDataCoordInfo(oldCoordSys, newData, oldValueOrigin);\n  var oldDataNewCoordInfo = prepareDataCoordInfo(newCoordSys, oldData, newValueOrigin);\n  var oldPoints = oldData.getLayout('points') || [];\n  var newPoints = newData.getLayout('points') || [];\n\n  for (var i = 0; i < diff.length; i++) {\n    var diffItem = diff[i];\n    var pointAdded = true;\n    var oldIdx2 = void 0;\n    var newIdx2 = void 0;\n\n    switch (diffItem.cmd) {\n      case '=':\n        oldIdx2 = diffItem.idx * 2;\n        newIdx2 = diffItem.idx1 * 2;\n        var currentX = oldPoints[oldIdx2];\n        var currentY = oldPoints[oldIdx2 + 1];\n        var nextX = newPoints[newIdx2];\n        var nextY = newPoints[newIdx2 + 1];\n\n        if (isNaN(currentX) || isNaN(currentY)) {\n          currentX = nextX;\n          currentY = nextY;\n        }\n\n        currPoints.push(currentX, currentY);\n        nextPoints.push(nextX, nextY);\n        currStackedPoints.push(oldStackedOnPoints[oldIdx2], oldStackedOnPoints[oldIdx2 + 1]);\n        nextStackedPoints.push(newStackedOnPoints[newIdx2], newStackedOnPoints[newIdx2 + 1]);\n        rawIndices.push(newData.getRawIndex(diffItem.idx1));\n        break;\n\n      case '+':\n        var newIdx = diffItem.idx;\n        var newDataDimsForPoint = newDataOldCoordInfo.dataDimsForPoint;\n        var oldPt = oldCoordSys.dataToPoint([newData.get(newDataDimsForPoint[0], newIdx), newData.get(newDataDimsForPoint[1], newIdx)]);\n        newIdx2 = newIdx * 2;\n        currPoints.push(oldPt[0], oldPt[1]);\n        nextPoints.push(newPoints[newIdx2], newPoints[newIdx2 + 1]);\n        var stackedOnPoint = getStackedOnPoint(newDataOldCoordInfo, oldCoordSys, newData, newIdx);\n        currStackedPoints.push(stackedOnPoint[0], stackedOnPoint[1]);\n        nextStackedPoints.push(newStackedOnPoints[newIdx2], newStackedOnPoints[newIdx2 + 1]);\n        rawIndices.push(newData.getRawIndex(newIdx));\n        break;\n\n      case '-':\n        var oldIdx = diffItem.idx;\n        var rawIndex = oldData.getRawIndex(oldIdx);\n        var oldDataDimsForPoint = oldDataNewCoordInfo.dataDimsForPoint;\n        oldIdx2 = oldIdx * 2;\n\n        if (rawIndex !== oldIdx) {\n          var newPt = newCoordSys.dataToPoint([oldData.get(oldDataDimsForPoint[0], oldIdx), oldData.get(oldDataDimsForPoint[1], oldIdx)]);\n          var newStackedOnPt = getStackedOnPoint(oldDataNewCoordInfo, newCoordSys, oldData, oldIdx);\n          currPoints.push(oldPoints[oldIdx2], oldPoints[oldIdx2 + 1]);\n          nextPoints.push(newPt[0], newPt[1]);\n          currStackedPoints.push(oldStackedOnPoints[oldIdx2], oldStackedOnPoints[oldIdx2 + 1]);\n          nextStackedPoints.push(newStackedOnPt[0], newStackedOnPt[1]);\n          rawIndices.push(rawIndex);\n        } else {\n          pointAdded = false;\n        }\n\n    }\n\n    if (pointAdded) {\n      status.push(diffItem);\n      sortedIndices.push(sortedIndices.length);\n    }\n  }\n\n  sortedIndices.sort(function (a, b) {\n    return rawIndices[a] - rawIndices[b];\n  });\n  var len = currPoints.length;\n  var sortedCurrPoints = createFloat32Array(len);\n  var sortedNextPoints = createFloat32Array(len);\n  var sortedCurrStackedPoints = createFloat32Array(len);\n  var sortedNextStackedPoints = createFloat32Array(len);\n  var sortedStatus = [];\n\n  for (var i = 0; i < sortedIndices.length; i++) {\n    var idx = sortedIndices[i];\n    var i2 = i * 2;\n    var idx2 = idx * 2;\n    sortedCurrPoints[i2] = currPoints[idx2];\n    sortedCurrPoints[i2 + 1] = currPoints[idx2 + 1];\n    sortedNextPoints[i2] = nextPoints[idx2];\n    sortedNextPoints[i2 + 1] = nextPoints[idx2 + 1];\n    sortedCurrStackedPoints[i2] = currStackedPoints[idx2];\n    sortedCurrStackedPoints[i2 + 1] = currStackedPoints[idx2 + 1];\n    sortedNextStackedPoints[i2] = nextStackedPoints[idx2];\n    sortedNextStackedPoints[i2 + 1] = nextStackedPoints[idx2 + 1];\n    sortedStatus[i] = status[idx];\n  }\n\n  return {\n    current: sortedCurrPoints,\n    next: sortedNextPoints,\n    stackedOnCurrent: sortedCurrStackedPoints,\n    stackedOnNext: sortedNextStackedPoints,\n    status: sortedStatus\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Path from 'zrender/lib/graphic/Path';\nimport PathProxy from 'zrender/lib/core/PathProxy';\nimport { cubicRootAt, cubicAt } from 'zrender/lib/core/curve';\nvar mathMin = Math.min;\nvar mathMax = Math.max;\n\nfunction isPointNull(x, y) {\n  return isNaN(x) || isNaN(y);\n}\n\nfunction drawSegment(ctx, points, start, segLen, allLen, dir, smooth, smoothMonotone, connectNulls) {\n  var prevX;\n  var prevY;\n  var cpx0;\n  var cpy0;\n  var cpx1;\n  var cpy1;\n  var idx = start;\n  var k = 0;\n\n  for (; k < segLen; k++) {\n    var x = points[idx * 2];\n    var y = points[idx * 2 + 1];\n\n    if (idx >= allLen || idx < 0) {\n      break;\n    }\n\n    if (isPointNull(x, y)) {\n      if (connectNulls) {\n        idx += dir;\n        continue;\n      }\n\n      break;\n    }\n\n    if (idx === start) {\n      ctx[dir > 0 ? 'moveTo' : 'lineTo'](x, y);\n      cpx0 = x;\n      cpy0 = y;\n    } else {\n      var dx = x - prevX;\n      var dy = y - prevY;\n\n      if (dx * dx + dy * dy < 0.5) {\n        idx += dir;\n        continue;\n      }\n\n      if (smooth > 0) {\n        var nextIdx = idx + dir;\n        var nextX = points[nextIdx * 2];\n        var nextY = points[nextIdx * 2 + 1];\n        var tmpK = k + 1;\n\n        if (connectNulls) {\n          while (isPointNull(nextX, nextY) && tmpK < segLen) {\n            tmpK++;\n            nextIdx += dir;\n            nextX = points[nextIdx * 2];\n            nextY = points[nextIdx * 2 + 1];\n          }\n        }\n\n        var ratioNextSeg = 0.5;\n        var vx = 0;\n        var vy = 0;\n        var nextCpx0 = void 0;\n        var nextCpy0 = void 0;\n\n        if (tmpK >= segLen || isPointNull(nextX, nextY)) {\n          cpx1 = x;\n          cpy1 = y;\n        } else {\n          vx = nextX - prevX;\n          vy = nextY - prevY;\n          var dx0 = x - prevX;\n          var dx1 = nextX - x;\n          var dy0 = y - prevY;\n          var dy1 = nextY - y;\n          var lenPrevSeg = void 0;\n          var lenNextSeg = void 0;\n\n          if (smoothMonotone === 'x') {\n            lenPrevSeg = Math.abs(dx0);\n            lenNextSeg = Math.abs(dx1);\n            cpx1 = x - lenPrevSeg * smooth;\n            cpy1 = y;\n            nextCpx0 = x + lenPrevSeg * smooth;\n            nextCpy0 = y;\n          } else if (smoothMonotone === 'y') {\n            lenPrevSeg = Math.abs(dy0);\n            lenNextSeg = Math.abs(dy1);\n            cpx1 = x;\n            cpy1 = y - lenPrevSeg * smooth;\n            nextCpx0 = x;\n            nextCpy0 = y + lenPrevSeg * smooth;\n          } else {\n            lenPrevSeg = Math.sqrt(dx0 * dx0 + dy0 * dy0);\n            lenNextSeg = Math.sqrt(dx1 * dx1 + dy1 * dy1);\n            ratioNextSeg = lenNextSeg / (lenNextSeg + lenPrevSeg);\n            cpx1 = x - vx * smooth * (1 - ratioNextSeg);\n            cpy1 = y - vy * smooth * (1 - ratioNextSeg);\n            nextCpx0 = x + vx * smooth * ratioNextSeg;\n            nextCpy0 = y + vy * smooth * ratioNextSeg;\n            nextCpx0 = mathMin(nextCpx0, mathMax(nextX, x));\n            nextCpy0 = mathMin(nextCpy0, mathMax(nextY, y));\n            nextCpx0 = mathMax(nextCpx0, mathMin(nextX, x));\n            nextCpy0 = mathMax(nextCpy0, mathMin(nextY, y));\n            vx = nextCpx0 - x;\n            vy = nextCpy0 - y;\n            cpx1 = x - vx * lenPrevSeg / lenNextSeg;\n            cpy1 = y - vy * lenPrevSeg / lenNextSeg;\n            cpx1 = mathMin(cpx1, mathMax(prevX, x));\n            cpy1 = mathMin(cpy1, mathMax(prevY, y));\n            cpx1 = mathMax(cpx1, mathMin(prevX, x));\n            cpy1 = mathMax(cpy1, mathMin(prevY, y));\n            vx = x - cpx1;\n            vy = y - cpy1;\n            nextCpx0 = x + vx * lenNextSeg / lenPrevSeg;\n            nextCpy0 = y + vy * lenNextSeg / lenPrevSeg;\n          }\n        }\n\n        ctx.bezierCurveTo(cpx0, cpy0, cpx1, cpy1, x, y);\n        cpx0 = nextCpx0;\n        cpy0 = nextCpy0;\n      } else {\n        ctx.lineTo(x, y);\n      }\n    }\n\n    prevX = x;\n    prevY = y;\n    idx += dir;\n  }\n\n  return k;\n}\n\nvar ECPolylineShape = function () {\n  function ECPolylineShape() {\n    this.smooth = 0;\n    this.smoothConstraint = true;\n  }\n\n  return ECPolylineShape;\n}();\n\nvar ECPolyline = function (_super) {\n  __extends(ECPolyline, _super);\n\n  function ECPolyline(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'ec-polyline';\n    return _this;\n  }\n\n  ECPolyline.prototype.getDefaultStyle = function () {\n    return {\n      stroke: '#000',\n      fill: null\n    };\n  };\n\n  ECPolyline.prototype.getDefaultShape = function () {\n    return new ECPolylineShape();\n  };\n\n  ECPolyline.prototype.buildPath = function (ctx, shape) {\n    var points = shape.points;\n    var i = 0;\n    var len = points.length / 2;\n\n    if (shape.connectNulls) {\n      for (; len > 0; len--) {\n        if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n          break;\n        }\n      }\n\n      for (; i < len; i++) {\n        if (!isPointNull(points[i * 2], points[i * 2 + 1])) {\n          break;\n        }\n      }\n    }\n\n    while (i < len) {\n      i += drawSegment(ctx, points, i, len, len, 1, shape.smooth, shape.smoothMonotone, shape.connectNulls) + 1;\n    }\n  };\n\n  ECPolyline.prototype.getPointOn = function (xOrY, dim) {\n    if (!this.path) {\n      this.createPathProxy();\n      this.buildPath(this.path, this.shape);\n    }\n\n    var path = this.path;\n    var data = path.data;\n    var CMD = PathProxy.CMD;\n    var x0;\n    var y0;\n    var isDimX = dim === 'x';\n    var roots = [];\n\n    for (var i = 0; i < data.length;) {\n      var cmd = data[i++];\n      var x = void 0;\n      var y = void 0;\n      var x2 = void 0;\n      var y2 = void 0;\n      var x3 = void 0;\n      var y3 = void 0;\n      var t = void 0;\n\n      switch (cmd) {\n        case CMD.M:\n          x0 = data[i++];\n          y0 = data[i++];\n          break;\n\n        case CMD.L:\n          x = data[i++];\n          y = data[i++];\n          t = isDimX ? (xOrY - x0) / (x - x0) : (xOrY - y0) / (y - y0);\n\n          if (t <= 1 && t >= 0) {\n            var val = isDimX ? (y - y0) * t + y0 : (x - x0) * t + x0;\n            return isDimX ? [xOrY, val] : [val, xOrY];\n          }\n\n          x0 = x;\n          y0 = y;\n          break;\n\n        case CMD.C:\n          x = data[i++];\n          y = data[i++];\n          x2 = data[i++];\n          y2 = data[i++];\n          x3 = data[i++];\n          y3 = data[i++];\n          var nRoot = isDimX ? cubicRootAt(x0, x, x2, x3, xOrY, roots) : cubicRootAt(y0, y, y2, y3, xOrY, roots);\n\n          if (nRoot > 0) {\n            for (var i_1 = 0; i_1 < nRoot; i_1++) {\n              var t_1 = roots[i_1];\n\n              if (t_1 <= 1 && t_1 >= 0) {\n                var val = isDimX ? cubicAt(y0, y, y2, y3, t_1) : cubicAt(x0, x, x2, x3, t_1);\n                return isDimX ? [xOrY, val] : [val, xOrY];\n              }\n            }\n          }\n\n          x0 = x3;\n          y0 = y3;\n          break;\n      }\n    }\n  };\n\n  return ECPolyline;\n}(Path);\n\nexport { ECPolyline };\n\nvar ECPolygonShape = function (_super) {\n  __extends(ECPolygonShape, _super);\n\n  function ECPolygonShape() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  return ECPolygonShape;\n}(ECPolylineShape);\n\nvar ECPolygon = function (_super) {\n  __extends(ECPolygon, _super);\n\n  function ECPolygon(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'ec-polygon';\n    return _this;\n  }\n\n  ECPolygon.prototype.getDefaultShape = function () {\n    return new ECPolygonShape();\n  };\n\n  ECPolygon.prototype.buildPath = function (ctx, shape) {\n    var points = shape.points;\n    var stackedOnPoints = shape.stackedOnPoints;\n    var i = 0;\n    var len = points.length / 2;\n    var smoothMonotone = shape.smoothMonotone;\n\n    if (shape.connectNulls) {\n      for (; len > 0; len--) {\n        if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n          break;\n        }\n      }\n\n      for (; i < len; i++) {\n        if (!isPointNull(points[i * 2], points[i * 2 + 1])) {\n          break;\n        }\n      }\n    }\n\n    while (i < len) {\n      var k = drawSegment(ctx, points, i, len, len, 1, shape.smooth, smoothMonotone, shape.connectNulls);\n      drawSegment(ctx, stackedOnPoints, i + k - 1, k, len, -1, shape.stackedOnSmooth, smoothMonotone, shape.connectNulls);\n      i += k + 1;\n      ctx.closePath();\n    }\n  };\n\n  return ECPolygon;\n}(Path);\n\nexport { ECPolygon };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as graphic from '../../util/graphic';\nimport { round } from '../../util/number';\n\nfunction createGridClipPath(cartesian, hasAnimation, seriesModel, done, during) {\n  var rect = cartesian.getArea();\n  var x = rect.x;\n  var y = rect.y;\n  var width = rect.width;\n  var height = rect.height;\n  var lineWidth = seriesModel.get(['lineStyle', 'width']) || 2;\n  x -= lineWidth / 2;\n  y -= lineWidth / 2;\n  width += lineWidth;\n  height += lineWidth;\n  x = Math.floor(x);\n  width = Math.round(width);\n  var clipPath = new graphic.Rect({\n    shape: {\n      x: x,\n      y: y,\n      width: width,\n      height: height\n    }\n  });\n\n  if (hasAnimation) {\n    var baseAxis = cartesian.getBaseAxis();\n    var isHorizontal = baseAxis.isHorizontal();\n    var isAxisInversed = baseAxis.inverse;\n\n    if (isHorizontal) {\n      if (isAxisInversed) {\n        clipPath.shape.x += width;\n      }\n\n      clipPath.shape.width = 0;\n    } else {\n      if (!isAxisInversed) {\n        clipPath.shape.y += height;\n      }\n\n      clipPath.shape.height = 0;\n    }\n\n    var duringCb = typeof during === 'function' ? function (percent) {\n      during(percent, clipPath);\n    } : null;\n    graphic.initProps(clipPath, {\n      shape: {\n        width: width,\n        height: height,\n        x: x,\n        y: y\n      }\n    }, seriesModel, null, done, duringCb);\n  }\n\n  return clipPath;\n}\n\nfunction createPolarClipPath(polar, hasAnimation, seriesModel) {\n  var sectorArea = polar.getArea();\n  var r0 = round(sectorArea.r0, 1);\n  var r = round(sectorArea.r, 1);\n  var clipPath = new graphic.Sector({\n    shape: {\n      cx: round(polar.cx, 1),\n      cy: round(polar.cy, 1),\n      r0: r0,\n      r: r,\n      startAngle: sectorArea.startAngle,\n      endAngle: sectorArea.endAngle,\n      clockwise: sectorArea.clockwise\n    }\n  });\n\n  if (hasAnimation) {\n    var isRadial = polar.getBaseAxis().dim === 'angle';\n\n    if (isRadial) {\n      clipPath.shape.endAngle = sectorArea.startAngle;\n    } else {\n      clipPath.shape.r = r0;\n    }\n\n    graphic.initProps(clipPath, {\n      shape: {\n        endAngle: sectorArea.endAngle,\n        r: r\n      }\n    }, seriesModel);\n  }\n\n  return clipPath;\n}\n\nfunction createClipPath(coordSys, hasAnimation, seriesModel, done, during) {\n  if (!coordSys) {\n    return null;\n  } else if (coordSys.type === 'polar') {\n    return createPolarClipPath(coordSys, hasAnimation, seriesModel);\n  } else if (coordSys.type === 'cartesian2d') {\n    return createGridClipPath(coordSys, hasAnimation, seriesModel, done, during);\n  }\n\n  return null;\n}\n\nexport { createGridClipPath, createPolarClipPath, createClipPath };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function isCoordinateSystemType(coordSys, type) {\n  return coordSys.type === type;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport SymbolDraw from '../helper/SymbolDraw';\nimport SymbolClz from '../helper/Symbol';\nimport lineAnimationDiff from './lineAnimationDiff';\nimport * as graphic from '../../util/graphic';\nimport * as modelUtil from '../../util/model';\nimport { ECPolyline, ECPolygon } from './poly';\nimport ChartView from '../../view/Chart';\nimport { prepareDataCoordInfo, getStackedOnPoint } from './helper';\nimport { createGridClipPath, createPolarClipPath } from '../helper/createClipPathFromCoordSys';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport { setStatesStylesFromModel, setStatesFlag, enableHoverEmphasis } from '../../util/states';\nimport { setLabelStyle, getLabelStatesModels, labelInner } from '../../label/labelStyle';\nimport { getDefaultLabel, getDefaultInterpolatedLabel } from '../helper/labelHelper';\nimport { getECData } from '../../util/innerStore';\nimport { createFloat32Array } from '../../util/vendor';\n\nfunction isPointsSame(points1, points2) {\n  if (points1.length !== points2.length) {\n    return;\n  }\n\n  for (var i = 0; i < points1.length; i++) {\n    if (points1[i] !== points2[i]) {\n      return;\n    }\n  }\n\n  return true;\n}\n\nfunction bboxFromPoints(points) {\n  var minX = Infinity;\n  var minY = Infinity;\n  var maxX = -Infinity;\n  var maxY = -Infinity;\n\n  for (var i = 0; i < points.length;) {\n    var x = points[i++];\n    var y = points[i++];\n\n    if (!isNaN(x)) {\n      minX = Math.min(x, minX);\n      maxX = Math.max(x, maxX);\n    }\n\n    if (!isNaN(y)) {\n      minY = Math.min(y, minY);\n      maxY = Math.max(y, maxY);\n    }\n  }\n\n  return [[minX, minY], [maxX, maxY]];\n}\n\nfunction getBoundingDiff(points1, points2) {\n  var _a = bboxFromPoints(points1),\n      min1 = _a[0],\n      max1 = _a[1];\n\n  var _b = bboxFromPoints(points2),\n      min2 = _b[0],\n      max2 = _b[1];\n\n  return Math.max(Math.abs(min1[0] - min2[0]), Math.abs(min1[1] - min2[1]), Math.abs(max1[0] - max2[0]), Math.abs(max1[1] - max2[1]));\n}\n\nfunction getSmooth(smooth) {\n  return typeof smooth === 'number' ? smooth : smooth ? 0.5 : 0;\n}\n\nfunction getStackedOnPoints(coordSys, data, dataCoordInfo) {\n  if (!dataCoordInfo.valueDim) {\n    return [];\n  }\n\n  var len = data.count();\n  var points = createFloat32Array(len * 2);\n\n  for (var idx = 0; idx < len; idx++) {\n    var pt = getStackedOnPoint(dataCoordInfo, coordSys, data, idx);\n    points[idx * 2] = pt[0];\n    points[idx * 2 + 1] = pt[1];\n  }\n\n  return points;\n}\n\nfunction turnPointsIntoStep(points, coordSys, stepTurnAt) {\n  var baseAxis = coordSys.getBaseAxis();\n  var baseIndex = baseAxis.dim === 'x' || baseAxis.dim === 'radius' ? 0 : 1;\n  var stepPoints = [];\n  var i = 0;\n  var stepPt = [];\n  var pt = [];\n  var nextPt = [];\n\n  for (; i < points.length - 2; i += 2) {\n    nextPt[0] = points[i + 2];\n    nextPt[1] = points[i + 3];\n    pt[0] = points[i];\n    pt[1] = points[i + 1];\n    stepPoints.push(pt[0], pt[1]);\n\n    switch (stepTurnAt) {\n      case 'end':\n        stepPt[baseIndex] = nextPt[baseIndex];\n        stepPt[1 - baseIndex] = pt[1 - baseIndex];\n        stepPoints.push(stepPt[0], stepPt[1]);\n        break;\n\n      case 'middle':\n        var middle = (pt[baseIndex] + nextPt[baseIndex]) / 2;\n        var stepPt2 = [];\n        stepPt[baseIndex] = stepPt2[baseIndex] = middle;\n        stepPt[1 - baseIndex] = pt[1 - baseIndex];\n        stepPt2[1 - baseIndex] = nextPt[1 - baseIndex];\n        stepPoints.push(stepPt[0], stepPt[1]);\n        stepPoints.push(stepPt2[0], stepPt2[1]);\n        break;\n\n      default:\n        stepPt[baseIndex] = pt[baseIndex];\n        stepPt[1 - baseIndex] = nextPt[1 - baseIndex];\n        stepPoints.push(stepPt[0], stepPt[1]);\n    }\n  }\n\n  stepPoints.push(points[i++], points[i++]);\n  return stepPoints;\n}\n\nfunction getVisualGradient(data, coordSys) {\n  var visualMetaList = data.getVisual('visualMeta');\n\n  if (!visualMetaList || !visualMetaList.length || !data.count()) {\n    return;\n  }\n\n  if (coordSys.type !== 'cartesian2d') {\n    if (process.env.NODE_ENV !== 'production') {\n      console.warn('Visual map on line style is only supported on cartesian2d.');\n    }\n\n    return;\n  }\n\n  var coordDim;\n  var visualMeta;\n\n  for (var i = visualMetaList.length - 1; i >= 0; i--) {\n    var dimIndex = visualMetaList[i].dimension;\n    var dimName = data.dimensions[dimIndex];\n    var dimInfo = data.getDimensionInfo(dimName);\n    coordDim = dimInfo && dimInfo.coordDim;\n\n    if (coordDim === 'x' || coordDim === 'y') {\n      visualMeta = visualMetaList[i];\n      break;\n    }\n  }\n\n  if (!visualMeta) {\n    if (process.env.NODE_ENV !== 'production') {\n      console.warn('Visual map on line style only support x or y dimension.');\n    }\n\n    return;\n  }\n\n  var axis = coordSys.getAxis(coordDim);\n  var colorStops = zrUtil.map(visualMeta.stops, function (stop) {\n    return {\n      offset: 0,\n      coord: axis.toGlobalCoord(axis.dataToCoord(stop.value)),\n      color: stop.color\n    };\n  });\n  var stopLen = colorStops.length;\n  var outerColors = visualMeta.outerColors.slice();\n\n  if (stopLen && colorStops[0].coord > colorStops[stopLen - 1].coord) {\n    colorStops.reverse();\n    outerColors.reverse();\n  }\n\n  var tinyExtent = 10;\n  var minCoord = colorStops[0].coord - tinyExtent;\n  var maxCoord = colorStops[stopLen - 1].coord + tinyExtent;\n  var coordSpan = maxCoord - minCoord;\n\n  if (coordSpan < 1e-3) {\n    return 'transparent';\n  }\n\n  zrUtil.each(colorStops, function (stop) {\n    stop.offset = (stop.coord - minCoord) / coordSpan;\n  });\n  colorStops.push({\n    offset: stopLen ? colorStops[stopLen - 1].offset : 0.5,\n    color: outerColors[1] || 'transparent'\n  });\n  colorStops.unshift({\n    offset: stopLen ? colorStops[0].offset : 0.5,\n    color: outerColors[0] || 'transparent'\n  });\n  var gradient = new graphic.LinearGradient(0, 0, 0, 0, colorStops, true);\n  gradient[coordDim] = minCoord;\n  gradient[coordDim + '2'] = maxCoord;\n  return gradient;\n}\n\nfunction getIsIgnoreFunc(seriesModel, data, coordSys) {\n  var showAllSymbol = seriesModel.get('showAllSymbol');\n  var isAuto = showAllSymbol === 'auto';\n\n  if (showAllSymbol && !isAuto) {\n    return;\n  }\n\n  var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\n\n  if (!categoryAxis) {\n    return;\n  }\n\n  if (isAuto && canShowAllSymbolForCategory(categoryAxis, data)) {\n    return;\n  }\n\n  var categoryDataDim = data.mapDimension(categoryAxis.dim);\n  var labelMap = {};\n  zrUtil.each(categoryAxis.getViewLabels(), function (labelItem) {\n    var ordinalNumber = categoryAxis.scale.getRawOrdinalNumber(labelItem.tickValue);\n    labelMap[ordinalNumber] = 1;\n  });\n  return function (dataIndex) {\n    return !labelMap.hasOwnProperty(data.get(categoryDataDim, dataIndex));\n  };\n}\n\nfunction canShowAllSymbolForCategory(categoryAxis, data) {\n  var axisExtent = categoryAxis.getExtent();\n  var availSize = Math.abs(axisExtent[1] - axisExtent[0]) / categoryAxis.scale.count();\n  isNaN(availSize) && (availSize = 0);\n  var dataLen = data.count();\n  var step = Math.max(1, Math.round(dataLen / 5));\n\n  for (var dataIndex = 0; dataIndex < dataLen; dataIndex += step) {\n    if (SymbolClz.getSymbolSize(data, dataIndex)[categoryAxis.isHorizontal() ? 1 : 0] * 1.5 > availSize) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nfunction isPointNull(x, y) {\n  return isNaN(x) || isNaN(y);\n}\n\nfunction getLastIndexNotNull(points) {\n  var len = points.length / 2;\n\n  for (; len > 0; len--) {\n    if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n      break;\n    }\n  }\n\n  return len - 1;\n}\n\nfunction getPointAtIndex(points, idx) {\n  return [points[idx * 2], points[idx * 2 + 1]];\n}\n\nfunction getIndexRange(points, xOrY, dim) {\n  var len = points.length / 2;\n  var dimIdx = dim === 'x' ? 0 : 1;\n  var a;\n  var b;\n  var prevIndex = 0;\n  var nextIndex = -1;\n\n  for (var i = 0; i < len; i++) {\n    b = points[i * 2 + dimIdx];\n\n    if (isNaN(b) || isNaN(points[i * 2 + 1 - dimIdx])) {\n      continue;\n    }\n\n    if (i === 0) {\n      a = b;\n      continue;\n    }\n\n    if (a <= xOrY && b >= xOrY || a >= xOrY && b <= xOrY) {\n      nextIndex = i;\n      break;\n    }\n\n    prevIndex = i;\n    a = b;\n  }\n\n  return {\n    range: [prevIndex, nextIndex],\n    t: (xOrY - a) / (b - a)\n  };\n}\n\nfunction createLineClipPath(lineView, coordSys, hasAnimation, seriesModel) {\n  if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n    var endLabelModel_1 = seriesModel.getModel('endLabel');\n    var showEndLabel = endLabelModel_1.get('show');\n    var valueAnimation_1 = endLabelModel_1.get('valueAnimation');\n    var data_1 = seriesModel.getData();\n    var labelAnimationRecord_1 = {\n      lastFrameIndex: 0\n    };\n    var during = showEndLabel ? function (percent, clipRect) {\n      lineView._endLabelOnDuring(percent, clipRect, data_1, labelAnimationRecord_1, valueAnimation_1, endLabelModel_1, coordSys);\n    } : null;\n    var isHorizontal = coordSys.getBaseAxis().isHorizontal();\n    var clipPath = createGridClipPath(coordSys, hasAnimation, seriesModel, function () {\n      var endLabel = lineView._endLabel;\n\n      if (endLabel && hasAnimation) {\n        if (labelAnimationRecord_1.originalX != null) {\n          endLabel.attr({\n            x: labelAnimationRecord_1.originalX,\n            y: labelAnimationRecord_1.originalY\n          });\n        }\n      }\n    }, during);\n\n    if (!seriesModel.get('clip', true)) {\n      var rectShape = clipPath.shape;\n      var expandSize = Math.max(rectShape.width, rectShape.height);\n\n      if (isHorizontal) {\n        rectShape.y -= expandSize;\n        rectShape.height += expandSize * 2;\n      } else {\n        rectShape.x -= expandSize;\n        rectShape.width += expandSize * 2;\n      }\n    }\n\n    if (during) {\n      during(1, clipPath);\n    }\n\n    return clipPath;\n  } else {\n    if (process.env.NODE_ENV !== 'production') {\n      if (seriesModel.get(['endLabel', 'show'])) {\n        console.warn('endLabel is not supported for lines in polar systems.');\n      }\n    }\n\n    return createPolarClipPath(coordSys, hasAnimation, seriesModel);\n  }\n}\n\nfunction getEndLabelStateSpecified(endLabelModel, coordSys) {\n  var baseAxis = coordSys.getBaseAxis();\n  var isHorizontal = baseAxis.isHorizontal();\n  var isBaseInversed = baseAxis.inverse;\n  var align = isHorizontal ? isBaseInversed ? 'right' : 'left' : 'center';\n  var verticalAlign = isHorizontal ? 'middle' : isBaseInversed ? 'top' : 'bottom';\n  return {\n    normal: {\n      align: endLabelModel.get('align') || align,\n      verticalAlign: endLabelModel.get('verticalAlign') || verticalAlign\n    }\n  };\n}\n\nvar LineView = function (_super) {\n  __extends(LineView, _super);\n\n  function LineView() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  LineView.prototype.init = function () {\n    var lineGroup = new graphic.Group();\n    var symbolDraw = new SymbolDraw();\n    this.group.add(symbolDraw.group);\n    this._symbolDraw = symbolDraw;\n    this._lineGroup = lineGroup;\n  };\n\n  LineView.prototype.render = function (seriesModel, ecModel, api) {\n    var _this = this;\n\n    var coordSys = seriesModel.coordinateSystem;\n    var group = this.group;\n    var data = seriesModel.getData();\n    var lineStyleModel = seriesModel.getModel('lineStyle');\n    var areaStyleModel = seriesModel.getModel('areaStyle');\n    var points = data.getLayout('points') || [];\n    var isCoordSysPolar = coordSys.type === 'polar';\n    var prevCoordSys = this._coordSys;\n    var symbolDraw = this._symbolDraw;\n    var polyline = this._polyline;\n    var polygon = this._polygon;\n    var lineGroup = this._lineGroup;\n    var hasAnimation = seriesModel.get('animation');\n    var isAreaChart = !areaStyleModel.isEmpty();\n    var valueOrigin = areaStyleModel.get('origin');\n    var dataCoordInfo = prepareDataCoordInfo(coordSys, data, valueOrigin);\n    var stackedOnPoints = isAreaChart && getStackedOnPoints(coordSys, data, dataCoordInfo);\n    var showSymbol = seriesModel.get('showSymbol');\n    var isIgnoreFunc = showSymbol && !isCoordSysPolar && getIsIgnoreFunc(seriesModel, data, coordSys);\n    var oldData = this._data;\n    oldData && oldData.eachItemGraphicEl(function (el, idx) {\n      if (el.__temp) {\n        group.remove(el);\n        oldData.setItemGraphicEl(idx, null);\n      }\n    });\n\n    if (!showSymbol) {\n      symbolDraw.remove();\n    }\n\n    group.add(lineGroup);\n    var step = !isCoordSysPolar ? seriesModel.get('step') : false;\n    var clipShapeForSymbol;\n\n    if (coordSys && coordSys.getArea && seriesModel.get('clip', true)) {\n      clipShapeForSymbol = coordSys.getArea();\n\n      if (clipShapeForSymbol.width != null) {\n        clipShapeForSymbol.x -= 0.1;\n        clipShapeForSymbol.y -= 0.1;\n        clipShapeForSymbol.width += 0.2;\n        clipShapeForSymbol.height += 0.2;\n      } else if (clipShapeForSymbol.r0) {\n        clipShapeForSymbol.r0 -= 0.5;\n        clipShapeForSymbol.r += 0.5;\n      }\n    }\n\n    this._clipShapeForSymbol = clipShapeForSymbol;\n\n    if (!(polyline && prevCoordSys.type === coordSys.type && step === this._step)) {\n      showSymbol && symbolDraw.updateData(data, {\n        isIgnore: isIgnoreFunc,\n        clipShape: clipShapeForSymbol,\n        disableAnimation: true,\n        getSymbolPoint: function (idx) {\n          return [points[idx * 2], points[idx * 2 + 1]];\n        }\n      });\n      hasAnimation && this._initSymbolLabelAnimation(data, coordSys, clipShapeForSymbol);\n\n      if (step) {\n        points = turnPointsIntoStep(points, coordSys, step);\n\n        if (stackedOnPoints) {\n          stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\n        }\n      }\n\n      polyline = this._newPolyline(points);\n\n      if (isAreaChart) {\n        polygon = this._newPolygon(points, stackedOnPoints);\n      }\n\n      if (!isCoordSysPolar) {\n        this._initOrUpdateEndLabel(seriesModel, coordSys);\n      }\n\n      lineGroup.setClipPath(createLineClipPath(this, coordSys, true, seriesModel));\n    } else {\n      if (isAreaChart && !polygon) {\n        polygon = this._newPolygon(points, stackedOnPoints);\n      } else if (polygon && !isAreaChart) {\n        lineGroup.remove(polygon);\n        polygon = this._polygon = null;\n      }\n\n      if (!isCoordSysPolar) {\n        this._initOrUpdateEndLabel(seriesModel, coordSys);\n      }\n\n      lineGroup.setClipPath(createLineClipPath(this, coordSys, false, seriesModel));\n      showSymbol && symbolDraw.updateData(data, {\n        isIgnore: isIgnoreFunc,\n        clipShape: clipShapeForSymbol,\n        disableAnimation: true,\n        getSymbolPoint: function (idx) {\n          return [points[idx * 2], points[idx * 2 + 1]];\n        }\n      });\n\n      if (!isPointsSame(this._stackedOnPoints, stackedOnPoints) || !isPointsSame(this._points, points)) {\n        if (hasAnimation) {\n          this._doUpdateAnimation(data, stackedOnPoints, coordSys, api, step, valueOrigin);\n        } else {\n          if (step) {\n            points = turnPointsIntoStep(points, coordSys, step);\n\n            if (stackedOnPoints) {\n              stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\n            }\n          }\n\n          polyline.setShape({\n            points: points\n          });\n          polygon && polygon.setShape({\n            points: points,\n            stackedOnPoints: stackedOnPoints\n          });\n        }\n      }\n    }\n\n    var visualColor = getVisualGradient(data, coordSys) || data.getVisual('style')[data.getVisual('drawType')];\n    var focus = seriesModel.get(['emphasis', 'focus']);\n    var blurScope = seriesModel.get(['emphasis', 'blurScope']);\n    polyline.useStyle(zrUtil.defaults(lineStyleModel.getLineStyle(), {\n      fill: 'none',\n      stroke: visualColor,\n      lineJoin: 'bevel'\n    }));\n    setStatesStylesFromModel(polyline, seriesModel, 'lineStyle');\n\n    if (polyline.style.lineWidth > 0 && seriesModel.get(['emphasis', 'lineStyle', 'width']) === 'bolder') {\n      var emphasisLineStyle = polyline.getState('emphasis').style;\n      emphasisLineStyle.lineWidth = polyline.style.lineWidth + 1;\n    }\n\n    getECData(polyline).seriesIndex = seriesModel.seriesIndex;\n    enableHoverEmphasis(polyline, focus, blurScope);\n    var smooth = getSmooth(seriesModel.get('smooth'));\n    var smoothMonotone = seriesModel.get('smoothMonotone');\n    var connectNulls = seriesModel.get('connectNulls');\n    polyline.setShape({\n      smooth: smooth,\n      smoothMonotone: smoothMonotone,\n      connectNulls: connectNulls\n    });\n\n    if (polygon) {\n      var stackedOnSeries = data.getCalculationInfo('stackedOnSeries');\n      var stackedOnSmooth = 0;\n      polygon.useStyle(zrUtil.defaults(areaStyleModel.getAreaStyle(), {\n        fill: visualColor,\n        opacity: 0.7,\n        lineJoin: 'bevel',\n        decal: data.getVisual('style').decal\n      }));\n\n      if (stackedOnSeries) {\n        stackedOnSmooth = getSmooth(stackedOnSeries.get('smooth'));\n      }\n\n      polygon.setShape({\n        smooth: smooth,\n        stackedOnSmooth: stackedOnSmooth,\n        smoothMonotone: smoothMonotone,\n        connectNulls: connectNulls\n      });\n      setStatesStylesFromModel(polygon, seriesModel, 'areaStyle');\n      getECData(polygon).seriesIndex = seriesModel.seriesIndex;\n      enableHoverEmphasis(polygon, focus, blurScope);\n    }\n\n    var changePolyState = function (toState) {\n      _this._changePolyState(toState);\n    };\n\n    data.eachItemGraphicEl(function (el) {\n      el && (el.onHoverStateChange = changePolyState);\n    });\n    this._polyline.onHoverStateChange = changePolyState;\n    this._data = data;\n    this._coordSys = coordSys;\n    this._stackedOnPoints = stackedOnPoints;\n    this._points = points;\n    this._step = step;\n    this._valueOrigin = valueOrigin;\n  };\n\n  LineView.prototype.dispose = function () {};\n\n  LineView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\n    var data = seriesModel.getData();\n    var dataIndex = modelUtil.queryDataIndex(data, payload);\n\n    this._changePolyState('emphasis');\n\n    if (!(dataIndex instanceof Array) && dataIndex != null && dataIndex >= 0) {\n      var points = data.getLayout('points');\n      var symbol = data.getItemGraphicEl(dataIndex);\n\n      if (!symbol) {\n        var x = points[dataIndex * 2];\n        var y = points[dataIndex * 2 + 1];\n\n        if (isNaN(x) || isNaN(y)) {\n          return;\n        }\n\n        if (this._clipShapeForSymbol && !this._clipShapeForSymbol.contain(x, y)) {\n          return;\n        }\n\n        symbol = new SymbolClz(data, dataIndex);\n        symbol.x = x;\n        symbol.y = y;\n        symbol.setZ(seriesModel.get('zlevel'), seriesModel.get('z'));\n        symbol.__temp = true;\n        data.setItemGraphicEl(dataIndex, symbol);\n        symbol.stopSymbolAnimation(true);\n        this.group.add(symbol);\n      }\n\n      symbol.highlight();\n    } else {\n      ChartView.prototype.highlight.call(this, seriesModel, ecModel, api, payload);\n    }\n  };\n\n  LineView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\n    var data = seriesModel.getData();\n    var dataIndex = modelUtil.queryDataIndex(data, payload);\n\n    this._changePolyState('normal');\n\n    if (dataIndex != null && dataIndex >= 0) {\n      var symbol = data.getItemGraphicEl(dataIndex);\n\n      if (symbol) {\n        if (symbol.__temp) {\n          data.setItemGraphicEl(dataIndex, null);\n          this.group.remove(symbol);\n        } else {\n          symbol.downplay();\n        }\n      }\n    } else {\n      ChartView.prototype.downplay.call(this, seriesModel, ecModel, api, payload);\n    }\n  };\n\n  LineView.prototype._changePolyState = function (toState) {\n    var polygon = this._polygon;\n    setStatesFlag(this._polyline, toState);\n    polygon && setStatesFlag(polygon, toState);\n  };\n\n  LineView.prototype._newPolyline = function (points) {\n    var polyline = this._polyline;\n\n    if (polyline) {\n      this._lineGroup.remove(polyline);\n    }\n\n    polyline = new ECPolyline({\n      shape: {\n        points: points\n      },\n      segmentIgnoreThreshold: 2,\n      z2: 10\n    });\n\n    this._lineGroup.add(polyline);\n\n    this._polyline = polyline;\n    return polyline;\n  };\n\n  LineView.prototype._newPolygon = function (points, stackedOnPoints) {\n    var polygon = this._polygon;\n\n    if (polygon) {\n      this._lineGroup.remove(polygon);\n    }\n\n    polygon = new ECPolygon({\n      shape: {\n        points: points,\n        stackedOnPoints: stackedOnPoints\n      },\n      segmentIgnoreThreshold: 2\n    });\n\n    this._lineGroup.add(polygon);\n\n    this._polygon = polygon;\n    return polygon;\n  };\n\n  LineView.prototype._initSymbolLabelAnimation = function (data, coordSys, clipShape) {\n    var isHorizontalOrRadial;\n    var isCoordSysPolar;\n    var baseAxis = coordSys.getBaseAxis();\n    var isAxisInverse = baseAxis.inverse;\n\n    if (coordSys.type === 'cartesian2d') {\n      isHorizontalOrRadial = baseAxis.isHorizontal();\n      isCoordSysPolar = false;\n    } else if (coordSys.type === 'polar') {\n      isHorizontalOrRadial = baseAxis.dim === 'angle';\n      isCoordSysPolar = true;\n    }\n\n    var seriesModel = data.hostModel;\n    var seriesDuration = seriesModel.get('animationDuration');\n\n    if (typeof seriesDuration === 'function') {\n      seriesDuration = seriesDuration(null);\n    }\n\n    var seriesDalay = seriesModel.get('animationDelay') || 0;\n    var seriesDalayValue = typeof seriesDalay === 'function' ? seriesDalay(null) : seriesDalay;\n    data.eachItemGraphicEl(function (symbol, idx) {\n      var el = symbol;\n\n      if (el) {\n        var point = [symbol.x, symbol.y];\n        var start = void 0;\n        var end = void 0;\n        var current = void 0;\n\n        if (isCoordSysPolar) {\n          var polarClip = clipShape;\n          var coord = coordSys.pointToCoord(point);\n\n          if (isHorizontalOrRadial) {\n            start = polarClip.startAngle;\n            end = polarClip.endAngle;\n            current = -coord[1] / 180 * Math.PI;\n          } else {\n            start = polarClip.r0;\n            end = polarClip.r;\n            current = coord[0];\n          }\n        } else {\n          var gridClip = clipShape;\n\n          if (isHorizontalOrRadial) {\n            start = gridClip.x;\n            end = gridClip.x + gridClip.width;\n            current = symbol.x;\n          } else {\n            start = gridClip.y + gridClip.height;\n            end = gridClip.y;\n            current = symbol.y;\n          }\n        }\n\n        var ratio = end === start ? 0 : (current - start) / (end - start);\n\n        if (isAxisInverse) {\n          ratio = 1 - ratio;\n        }\n\n        var delay = typeof seriesDalay === 'function' ? seriesDalay(idx) : seriesDuration * ratio + seriesDalayValue;\n        var symbolPath = el.getSymbolPath();\n        var text = symbolPath.getTextContent();\n        el.attr({\n          scaleX: 0,\n          scaleY: 0\n        });\n        el.animateTo({\n          scaleX: 1,\n          scaleY: 1\n        }, {\n          duration: 200,\n          delay: delay\n        });\n\n        if (text) {\n          text.animateFrom({\n            style: {\n              opacity: 0\n            }\n          }, {\n            duration: 300,\n            delay: delay\n          });\n        }\n\n        symbolPath.disableLabelAnimation = true;\n      }\n    });\n  };\n\n  LineView.prototype._initOrUpdateEndLabel = function (seriesModel, coordSys) {\n    var endLabelModel = seriesModel.getModel('endLabel');\n\n    if (endLabelModel.get('show')) {\n      var data_2 = seriesModel.getData();\n      var polyline = this._polyline;\n      var endLabel = this._endLabel;\n\n      if (!endLabel) {\n        endLabel = this._endLabel = new graphic.Text({\n          z2: 200\n        });\n        endLabel.ignoreClip = true;\n        polyline.setTextContent(this._endLabel);\n        polyline.disableLabelAnimation = true;\n      }\n\n      var dataIndex = getLastIndexNotNull(data_2.getLayout('points'));\n\n      if (dataIndex >= 0) {\n        setLabelStyle(polyline, getLabelStatesModels(seriesModel, 'endLabel'), {\n          labelFetcher: seriesModel,\n          labelDataIndex: dataIndex,\n          defaultText: function (dataIndex, opt, interpolatedValue) {\n            return interpolatedValue != null ? getDefaultInterpolatedLabel(data_2, interpolatedValue) : getDefaultLabel(data_2, dataIndex);\n          },\n          enableTextSetter: true\n        }, getEndLabelStateSpecified(endLabelModel, coordSys));\n        polyline.textConfig.position = null;\n      }\n    } else if (this._endLabel) {\n      this._polyline.removeTextContent();\n\n      this._endLabel = null;\n    }\n  };\n\n  LineView.prototype._endLabelOnDuring = function (percent, clipRect, data, animationRecord, valueAnimation, endLabelModel, coordSys) {\n    var endLabel = this._endLabel;\n    var polyline = this._polyline;\n\n    if (endLabel) {\n      if (percent < 1 && animationRecord.originalX == null) {\n        animationRecord.originalX = endLabel.x;\n        animationRecord.originalY = endLabel.y;\n      }\n\n      var points = data.getLayout('points');\n      var seriesModel = data.hostModel;\n      var connectNulls = seriesModel.get('connectNulls');\n      var precision = endLabelModel.get('precision');\n      var distance = endLabelModel.get('distance') || 0;\n      var baseAxis = coordSys.getBaseAxis();\n      var isHorizontal = baseAxis.isHorizontal();\n      var isBaseInversed = baseAxis.inverse;\n      var clipShape = clipRect.shape;\n      var xOrY = isBaseInversed ? isHorizontal ? clipShape.x : clipShape.y + clipShape.height : isHorizontal ? clipShape.x + clipShape.width : clipShape.y;\n      var distanceX = (isHorizontal ? distance : 0) * (isBaseInversed ? -1 : 1);\n      var distanceY = (isHorizontal ? 0 : -distance) * (isBaseInversed ? -1 : 1);\n      var dim = isHorizontal ? 'x' : 'y';\n      var dataIndexRange = getIndexRange(points, xOrY, dim);\n      var indices = dataIndexRange.range;\n      var diff = indices[1] - indices[0];\n      var value = void 0;\n\n      if (diff >= 1) {\n        if (diff > 1 && !connectNulls) {\n          var pt = getPointAtIndex(points, indices[0]);\n          endLabel.attr({\n            x: pt[0] + distanceX,\n            y: pt[1] + distanceY\n          });\n          valueAnimation && (value = seriesModel.getRawValue(indices[0]));\n        } else {\n          var pt = polyline.getPointOn(xOrY, dim);\n          pt && endLabel.attr({\n            x: pt[0] + distanceX,\n            y: pt[1] + distanceY\n          });\n          var startValue = seriesModel.getRawValue(indices[0]);\n          var endValue = seriesModel.getRawValue(indices[1]);\n          valueAnimation && (value = modelUtil.interpolateRawValues(data, precision, startValue, endValue, dataIndexRange.t));\n        }\n\n        animationRecord.lastFrameIndex = indices[0];\n      } else {\n        var idx = percent === 1 || animationRecord.lastFrameIndex > 0 ? indices[0] : 0;\n        var pt = getPointAtIndex(points, idx);\n        valueAnimation && (value = seriesModel.getRawValue(idx));\n        endLabel.attr({\n          x: pt[0] + distanceX,\n          y: pt[1] + distanceY\n        });\n      }\n\n      if (valueAnimation) {\n        labelInner(endLabel).setLabelText(value);\n      }\n    }\n  };\n\n  LineView.prototype._doUpdateAnimation = function (data, stackedOnPoints, coordSys, api, step, valueOrigin) {\n    var polyline = this._polyline;\n    var polygon = this._polygon;\n    var seriesModel = data.hostModel;\n    var diff = lineAnimationDiff(this._data, data, this._stackedOnPoints, stackedOnPoints, this._coordSys, coordSys, this._valueOrigin, valueOrigin);\n    var current = diff.current;\n    var stackedOnCurrent = diff.stackedOnCurrent;\n    var next = diff.next;\n    var stackedOnNext = diff.stackedOnNext;\n\n    if (step) {\n      current = turnPointsIntoStep(diff.current, coordSys, step);\n      stackedOnCurrent = turnPointsIntoStep(diff.stackedOnCurrent, coordSys, step);\n      next = turnPointsIntoStep(diff.next, coordSys, step);\n      stackedOnNext = turnPointsIntoStep(diff.stackedOnNext, coordSys, step);\n    }\n\n    if (getBoundingDiff(current, next) > 3000 || polygon && getBoundingDiff(stackedOnCurrent, stackedOnNext) > 3000) {\n      polyline.setShape({\n        points: next\n      });\n\n      if (polygon) {\n        polygon.setShape({\n          points: next,\n          stackedOnPoints: stackedOnNext\n        });\n      }\n\n      return;\n    }\n\n    polyline.shape.__points = diff.current;\n    polyline.shape.points = current;\n    var target = {\n      shape: {\n        points: next\n      }\n    };\n\n    if (diff.current !== current) {\n      target.shape.__points = diff.next;\n    }\n\n    polyline.stopAnimation();\n    graphic.updateProps(polyline, target, seriesModel);\n\n    if (polygon) {\n      polygon.setShape({\n        points: current,\n        stackedOnPoints: stackedOnCurrent\n      });\n      polygon.stopAnimation();\n      graphic.updateProps(polygon, {\n        shape: {\n          stackedOnPoints: stackedOnNext\n        }\n      }, seriesModel);\n\n      if (polyline.shape.points !== polygon.shape.points) {\n        polygon.shape.points = polyline.shape.points;\n      }\n    }\n\n    var updatedDataInfo = [];\n    var diffStatus = diff.status;\n\n    for (var i = 0; i < diffStatus.length; i++) {\n      var cmd = diffStatus[i].cmd;\n\n      if (cmd === '=') {\n        var el = data.getItemGraphicEl(diffStatus[i].idx1);\n\n        if (el) {\n          updatedDataInfo.push({\n            el: el,\n            ptIdx: i\n          });\n        }\n      }\n    }\n\n    if (polyline.animators && polyline.animators.length) {\n      polyline.animators[0].during(function () {\n        polygon && polygon.dirtyShape();\n        var points = polyline.shape.__points;\n\n        for (var i = 0; i < updatedDataInfo.length; i++) {\n          var el = updatedDataInfo[i].el;\n          var offset = updatedDataInfo[i].ptIdx * 2;\n          el.x = points[offset];\n          el.y = points[offset + 1];\n          el.markRedraw();\n        }\n      });\n    }\n  };\n\n  LineView.prototype.remove = function (ecModel) {\n    var group = this.group;\n    var oldData = this._data;\n\n    this._lineGroup.removeAll();\n\n    this._symbolDraw.remove(true);\n\n    oldData && oldData.eachItemGraphicEl(function (el, idx) {\n      if (el.__temp) {\n        group.remove(el);\n        oldData.setItemGraphicEl(idx, null);\n      }\n    });\n    this._polyline = this._polygon = this._coordSys = this._points = this._stackedOnPoints = this._endLabel = this._data = null;\n  };\n\n  LineView.type = 'line';\n  return LineView;\n}(ChartView);\n\nexport default LineView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { map } from 'zrender/lib/core/util';\nimport createRenderPlanner from '../chart/helper/createRenderPlanner';\nimport { isDimensionStacked } from '../data/helper/dataStackHelper';\nimport { createFloat32Array } from '../util/vendor';\nexport default function pointsLayout(seriesType, forceStoreInTypedArray) {\n  return {\n    seriesType: seriesType,\n    plan: createRenderPlanner(),\n    reset: function (seriesModel) {\n      var data = seriesModel.getData();\n      var coordSys = seriesModel.coordinateSystem;\n      var pipelineContext = seriesModel.pipelineContext;\n      var useTypedArray = forceStoreInTypedArray || pipelineContext.large;\n\n      if (!coordSys) {\n        return;\n      }\n\n      var dims = map(coordSys.dimensions, function (dim) {\n        return data.mapDimension(dim);\n      }).slice(0, 2);\n      var dimLen = dims.length;\n      var stackResultDim = data.getCalculationInfo('stackResultDimension');\n\n      if (isDimensionStacked(data, dims[0])) {\n        dims[0] = stackResultDim;\n      }\n\n      if (isDimensionStacked(data, dims[1])) {\n        dims[1] = stackResultDim;\n      }\n\n      var dimInfo0 = data.getDimensionInfo(dims[0]);\n      var dimInfo1 = data.getDimensionInfo(dims[1]);\n      var dimIdx0 = dimInfo0 && dimInfo0.index;\n      var dimIdx1 = dimInfo1 && dimInfo1.index;\n      return dimLen && {\n        progress: function (params, data) {\n          var segCount = params.end - params.start;\n          var points = useTypedArray && createFloat32Array(segCount * dimLen);\n          var tmpIn = [];\n          var tmpOut = [];\n\n          for (var i = params.start, offset = 0; i < params.end; i++) {\n            var point = void 0;\n\n            if (dimLen === 1) {\n              var x = data.getByDimIdx(dimIdx0, i);\n              point = coordSys.dataToPoint(x, null, tmpOut);\n            } else {\n              tmpIn[0] = data.getByDimIdx(dimIdx0, i);\n              tmpIn[1] = data.getByDimIdx(dimIdx1, i);\n              point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n            }\n\n            if (useTypedArray) {\n              points[offset++] = point[0];\n              points[offset++] = point[1];\n            } else {\n              data.setItemLayout(i, point.slice());\n            }\n          }\n\n          useTypedArray && data.setLayout('points', points);\n        }\n      };\n    }\n  };\n}\n;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar samplers = {\n  average: function (frame) {\n    var sum = 0;\n    var count = 0;\n\n    for (var i = 0; i < frame.length; i++) {\n      if (!isNaN(frame[i])) {\n        sum += frame[i];\n        count++;\n      }\n    }\n\n    return count === 0 ? NaN : sum / count;\n  },\n  sum: function (frame) {\n    var sum = 0;\n\n    for (var i = 0; i < frame.length; i++) {\n      sum += frame[i] || 0;\n    }\n\n    return sum;\n  },\n  max: function (frame) {\n    var max = -Infinity;\n\n    for (var i = 0; i < frame.length; i++) {\n      frame[i] > max && (max = frame[i]);\n    }\n\n    return isFinite(max) ? max : NaN;\n  },\n  min: function (frame) {\n    var min = Infinity;\n\n    for (var i = 0; i < frame.length; i++) {\n      frame[i] < min && (min = frame[i]);\n    }\n\n    return isFinite(min) ? min : NaN;\n  },\n  nearest: function (frame) {\n    return frame[0];\n  }\n};\n\nvar indexSampler = function (frame) {\n  return Math.round(frame.length / 2);\n};\n\nexport default function dataSample(seriesType) {\n  return {\n    seriesType: seriesType,\n    reset: function (seriesModel, ecModel, api) {\n      var data = seriesModel.getData();\n      var sampling = seriesModel.get('sampling');\n      var coordSys = seriesModel.coordinateSystem;\n      var count = data.count();\n\n      if (count > 10 && coordSys.type === 'cartesian2d' && sampling) {\n        var baseAxis = coordSys.getBaseAxis();\n        var valueAxis = coordSys.getOtherAxis(baseAxis);\n        var extent = baseAxis.getExtent();\n        var dpr = api.getDevicePixelRatio();\n        var size = Math.abs(extent[1] - extent[0]) * (dpr || 1);\n        var rate = Math.round(count / size);\n\n        if (rate > 1) {\n          if (sampling === 'lttb') {\n            seriesModel.setData(data.lttbDownSample(data.mapDimension(valueAxis.dim), 1 / rate));\n          }\n\n          var sampler = void 0;\n\n          if (typeof sampling === 'string') {\n            sampler = samplers[sampling];\n          } else if (typeof sampling === 'function') {\n            sampler = sampling;\n          }\n\n          if (sampler) {\n            seriesModel.setData(data.downSample(data.mapDimension(valueAxis.dim), 1 / rate, sampler, indexSampler));\n          }\n        }\n      }\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport LineSeries from './LineSeries';\nimport LineView from './LineView';\nimport layoutPoints from '../../layout/points';\nimport dataSample from '../../processor/dataSample';\nexport function install(registers) {\n  registers.registerChartView(LineView);\n  registers.registerSeriesModel(LineSeries);\n  registers.registerLayout(layoutPoints('line', true));\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, dataSample('line'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport createListFromArray from '../helper/createListFromArray';\n\nvar BaseBarSeriesModel = function (_super) {\n  __extends(BaseBarSeriesModel, _super);\n\n  function BaseBarSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BaseBarSeriesModel.type;\n    return _this;\n  }\n\n  BaseBarSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: true\n    });\n  };\n\n  BaseBarSeriesModel.prototype.getMarkerPosition = function (value) {\n    var coordSys = this.coordinateSystem;\n\n    if (coordSys) {\n      var pt = coordSys.dataToPoint(coordSys.clampData(value));\n      var data = this.getData();\n      var offset = data.getLayout('offset');\n      var size = data.getLayout('size');\n      var offsetIndex = coordSys.getBaseAxis().isHorizontal() ? 0 : 1;\n      pt[offsetIndex] += offset + size / 2;\n      return pt;\n    }\n\n    return [NaN, NaN];\n  };\n\n  BaseBarSeriesModel.type = 'series.__base_bar__';\n  BaseBarSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'cartesian2d',\n    legendHoverLink: true,\n    barMinHeight: 0,\n    barMinAngle: 0,\n    large: false,\n    largeThreshold: 400,\n    progressive: 3e3,\n    progressiveChunkMode: 'mod'\n  };\n  return BaseBarSeriesModel;\n}(SeriesModel);\n\nSeriesModel.registerClass(BaseBarSeriesModel);\nexport default BaseBarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BaseBarSeriesModel from './BaseBarSeries';\nimport createListFromArray from '../helper/createListFromArray';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar BarSeriesModel = function (_super) {\n  __extends(BarSeriesModel, _super);\n\n  function BarSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BarSeriesModel.type;\n    return _this;\n  }\n\n  BarSeriesModel.prototype.getInitialData = function () {\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: true,\n      createInvertedIndices: !!this.get('realtimeSort', true) || null\n    });\n  };\n\n  BarSeriesModel.prototype.getProgressive = function () {\n    return this.get('large') ? this.get('progressive') : false;\n  };\n\n  BarSeriesModel.prototype.getProgressiveThreshold = function () {\n    var progressiveThreshold = this.get('progressiveThreshold');\n    var largeThreshold = this.get('largeThreshold');\n\n    if (largeThreshold > progressiveThreshold) {\n      progressiveThreshold = largeThreshold;\n    }\n\n    return progressiveThreshold;\n  };\n\n  BarSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n    return selectors.rect(data.getItemLayout(dataIndex));\n  };\n\n  BarSeriesModel.type = 'series.bar';\n  BarSeriesModel.dependencies = ['grid', 'polar'];\n  BarSeriesModel.defaultOption = inheritDefaultOption(BaseBarSeriesModel.defaultOption, {\n    clip: true,\n    roundCap: false,\n    showBackground: false,\n    backgroundStyle: {\n      color: 'rgba(180, 180, 180, 0.2)',\n      borderColor: null,\n      borderWidth: 0,\n      borderType: 'solid',\n      borderRadius: 0,\n      shadowBlur: 0,\n      shadowColor: null,\n      shadowOffsetX: 0,\n      shadowOffsetY: 0,\n      opacity: 1\n    },\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    },\n    realtimeSort: false\n  });\n  return BarSeriesModel;\n}(BaseBarSeriesModel);\n\nexport default BarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { Path } from '../graphic';\n\nvar SausageShape = function () {\n  function SausageShape() {\n    this.cx = 0;\n    this.cy = 0;\n    this.r0 = 0;\n    this.r = 0;\n    this.startAngle = 0;\n    this.endAngle = Math.PI * 2;\n    this.clockwise = true;\n  }\n\n  return SausageShape;\n}();\n\nvar SausagePath = function (_super) {\n  __extends(SausagePath, _super);\n\n  function SausagePath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'sausage';\n    return _this;\n  }\n\n  SausagePath.prototype.getDefaultShape = function () {\n    return new SausageShape();\n  };\n\n  SausagePath.prototype.buildPath = function (ctx, shape) {\n    var x = shape.cx;\n    var y = shape.cy;\n    var r0 = Math.max(shape.r0 || 0, 0);\n    var r = Math.max(shape.r, 0);\n    var dr = (r - r0) * 0.5;\n    var rCenter = r0 + dr;\n    var startAngle = shape.startAngle;\n    var endAngle = shape.endAngle;\n    var clockwise = shape.clockwise;\n    var unitStartX = Math.cos(startAngle);\n    var unitStartY = Math.sin(startAngle);\n    var unitEndX = Math.cos(endAngle);\n    var unitEndY = Math.sin(endAngle);\n    var lessThanCircle = clockwise ? endAngle - startAngle < Math.PI * 2 : startAngle - endAngle < Math.PI * 2;\n\n    if (lessThanCircle) {\n      ctx.moveTo(unitStartX * r0 + x, unitStartY * r0 + y);\n      ctx.arc(unitStartX * rCenter + x, unitStartY * rCenter + y, dr, -Math.PI + startAngle, startAngle, !clockwise);\n    }\n\n    ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\n    ctx.moveTo(unitEndX * r + x, unitEndY * r + y);\n    ctx.arc(unitEndX * rCenter + x, unitEndY * rCenter + y, dr, endAngle - Math.PI * 2, endAngle - Math.PI, !clockwise);\n\n    if (r0 !== 0) {\n      ctx.arc(x, y, r0, endAngle, startAngle, clockwise);\n      ctx.moveTo(unitStartX * r0 + x, unitEndY * r0 + y);\n    }\n\n    ctx.closePath();\n  };\n\n  return SausagePath;\n}(Path);\n\nexport default SausagePath;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Path from 'zrender/lib/graphic/Path';\nimport Group from 'zrender/lib/graphic/Group';\nimport { extend, defaults, each, map } from 'zrender/lib/core/util';\nimport { Rect, Sector, updateProps, initProps, removeElementWithFadeOut } from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { enableHoverEmphasis, setStatesStylesFromModel } from '../../util/states';\nimport { setLabelStyle, getLabelStatesModels, setLabelValueAnimation } from '../../label/labelStyle';\nimport { throttle } from '../../util/throttle';\nimport { createClipPath } from '../helper/createClipPathFromCoordSys';\nimport Sausage from '../../util/shape/sausage';\nimport ChartView from '../../view/Chart';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport { getDefaultLabel, getDefaultInterpolatedLabel } from '../helper/labelHelper';\nimport { warn } from '../../util/log';\nvar BAR_BORDER_WIDTH_QUERY = ['itemStyle', 'borderWidth'];\nvar BAR_BORDER_RADIUS_QUERY = ['itemStyle', 'borderRadius'];\nvar _eventPos = [0, 0];\nvar mathMax = Math.max;\nvar mathMin = Math.min;\n\nfunction getClipArea(coord, data) {\n  var coordSysClipArea = coord.getArea && coord.getArea();\n\n  if (isCoordinateSystemType(coord, 'cartesian2d')) {\n    var baseAxis = coord.getBaseAxis();\n\n    if (baseAxis.type !== 'category' || !baseAxis.onBand) {\n      var expandWidth = data.getLayout('bandWidth');\n\n      if (baseAxis.isHorizontal()) {\n        coordSysClipArea.x -= expandWidth;\n        coordSysClipArea.width += expandWidth * 2;\n      } else {\n        coordSysClipArea.y -= expandWidth;\n        coordSysClipArea.height += expandWidth * 2;\n      }\n    }\n  }\n\n  return coordSysClipArea;\n}\n\nvar BarView = function (_super) {\n  __extends(BarView, _super);\n\n  function BarView() {\n    var _this = _super.call(this) || this;\n\n    _this.type = BarView.type;\n    _this._isFirstFrame = true;\n    return _this;\n  }\n\n  BarView.prototype.render = function (seriesModel, ecModel, api, payload) {\n    this._model = seriesModel;\n\n    this._removeOnRenderedListener(api);\n\n    this._updateDrawMode(seriesModel);\n\n    var coordinateSystemType = seriesModel.get('coordinateSystem');\n\n    if (coordinateSystemType === 'cartesian2d' || coordinateSystemType === 'polar') {\n      this._isLargeDraw ? this._renderLarge(seriesModel, ecModel, api) : this._renderNormal(seriesModel, ecModel, api, payload);\n    } else if (process.env.NODE_ENV !== 'production') {\n      warn('Only cartesian2d and polar supported for bar.');\n    }\n  };\n\n  BarView.prototype.incrementalPrepareRender = function (seriesModel) {\n    this._clear();\n\n    this._updateDrawMode(seriesModel);\n\n    this._updateLargeClip(seriesModel);\n  };\n\n  BarView.prototype.incrementalRender = function (params, seriesModel) {\n    this._incrementalRenderLarge(params, seriesModel);\n  };\n\n  BarView.prototype._updateDrawMode = function (seriesModel) {\n    var isLargeDraw = seriesModel.pipelineContext.large;\n\n    if (this._isLargeDraw == null || isLargeDraw !== this._isLargeDraw) {\n      this._isLargeDraw = isLargeDraw;\n\n      this._clear();\n    }\n  };\n\n  BarView.prototype._renderNormal = function (seriesModel, ecModel, api, payload) {\n    var group = this.group;\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var coord = seriesModel.coordinateSystem;\n    var baseAxis = coord.getBaseAxis();\n    var isHorizontalOrRadial;\n\n    if (coord.type === 'cartesian2d') {\n      isHorizontalOrRadial = baseAxis.isHorizontal();\n    } else if (coord.type === 'polar') {\n      isHorizontalOrRadial = baseAxis.dim === 'angle';\n    }\n\n    var animationModel = seriesModel.isAnimationEnabled() ? seriesModel : null;\n    var realtimeSortCfg = shouldRealtimeSort(seriesModel, coord);\n\n    if (realtimeSortCfg) {\n      this._enableRealtimeSort(realtimeSortCfg, data, api);\n    }\n\n    var needsClip = seriesModel.get('clip', true) || realtimeSortCfg;\n    var coordSysClipArea = getClipArea(coord, data);\n    group.removeClipPath();\n    var roundCap = seriesModel.get('roundCap', true);\n    var drawBackground = seriesModel.get('showBackground', true);\n    var backgroundModel = seriesModel.getModel('backgroundStyle');\n    var barBorderRadius = backgroundModel.get('borderRadius') || 0;\n    var bgEls = [];\n    var oldBgEls = this._backgroundEls;\n    var isInitSort = payload && payload.isInitSort;\n    var isChangeOrder = payload && payload.type === 'changeAxisOrder';\n\n    function createBackground(dataIndex) {\n      var bgLayout = getLayout[coord.type](data, dataIndex);\n      var bgEl = createBackgroundEl(coord, isHorizontalOrRadial, bgLayout);\n      bgEl.useStyle(backgroundModel.getItemStyle());\n\n      if (coord.type === 'cartesian2d') {\n        bgEl.setShape('r', barBorderRadius);\n      }\n\n      bgEls[dataIndex] = bgEl;\n      return bgEl;\n    }\n\n    ;\n    data.diff(oldData).add(function (dataIndex) {\n      var itemModel = data.getItemModel(dataIndex);\n      var layout = getLayout[coord.type](data, dataIndex, itemModel);\n\n      if (drawBackground) {\n        createBackground(dataIndex);\n      }\n\n      if (!data.hasValue(dataIndex)) {\n        return;\n      }\n\n      var isClipped = false;\n\n      if (needsClip) {\n        isClipped = clip[coord.type](coordSysClipArea, layout);\n      }\n\n      var el = elementCreator[coord.type](seriesModel, data, dataIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, false, roundCap);\n      updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\n\n      if (isInitSort) {\n        el.attr({\n          shape: layout\n        });\n      } else if (realtimeSortCfg) {\n        updateRealtimeAnimation(realtimeSortCfg, animationModel, el, layout, dataIndex, isHorizontalOrRadial, false, false);\n      } else {\n        initProps(el, {\n          shape: layout\n        }, seriesModel, dataIndex);\n      }\n\n      data.setItemGraphicEl(dataIndex, el);\n      group.add(el);\n      el.ignore = isClipped;\n    }).update(function (newIndex, oldIndex) {\n      var itemModel = data.getItemModel(newIndex);\n      var layout = getLayout[coord.type](data, newIndex, itemModel);\n\n      if (drawBackground) {\n        var bgEl = void 0;\n\n        if (oldBgEls.length === 0) {\n          bgEl = createBackground(oldIndex);\n        } else {\n          bgEl = oldBgEls[oldIndex];\n          bgEl.useStyle(backgroundModel.getItemStyle());\n\n          if (coord.type === 'cartesian2d') {\n            bgEl.setShape('r', barBorderRadius);\n          }\n\n          bgEls[newIndex] = bgEl;\n        }\n\n        var bgLayout = getLayout[coord.type](data, newIndex);\n        var shape = createBackgroundShape(isHorizontalOrRadial, bgLayout, coord);\n        updateProps(bgEl, {\n          shape: shape\n        }, animationModel, newIndex);\n      }\n\n      var el = oldData.getItemGraphicEl(oldIndex);\n\n      if (!data.hasValue(newIndex)) {\n        group.remove(el);\n        el = null;\n        return;\n      }\n\n      var isClipped = false;\n\n      if (needsClip) {\n        isClipped = clip[coord.type](coordSysClipArea, layout);\n\n        if (isClipped) {\n          group.remove(el);\n        }\n      }\n\n      if (!el) {\n        el = elementCreator[coord.type](seriesModel, data, newIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, !!el, roundCap);\n      }\n\n      if (!isChangeOrder) {\n        updateStyle(el, data, newIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\n      }\n\n      if (isInitSort) {\n        el.attr({\n          shape: layout\n        });\n      } else if (realtimeSortCfg) {\n        updateRealtimeAnimation(realtimeSortCfg, animationModel, el, layout, newIndex, isHorizontalOrRadial, true, isChangeOrder);\n      } else {\n        updateProps(el, {\n          shape: layout\n        }, seriesModel, newIndex, null);\n      }\n\n      data.setItemGraphicEl(newIndex, el);\n      el.ignore = isClipped;\n      group.add(el);\n    }).remove(function (dataIndex) {\n      var el = oldData.getItemGraphicEl(dataIndex);\n      el && removeElementWithFadeOut(el, seriesModel, dataIndex);\n    }).execute();\n    var bgGroup = this._backgroundGroup || (this._backgroundGroup = new Group());\n    bgGroup.removeAll();\n\n    for (var i = 0; i < bgEls.length; ++i) {\n      bgGroup.add(bgEls[i]);\n    }\n\n    group.add(bgGroup);\n    this._backgroundEls = bgEls;\n    this._data = data;\n  };\n\n  BarView.prototype._renderLarge = function (seriesModel, ecModel, api) {\n    this._clear();\n\n    createLarge(seriesModel, this.group);\n\n    this._updateLargeClip(seriesModel);\n  };\n\n  BarView.prototype._incrementalRenderLarge = function (params, seriesModel) {\n    this._removeBackground();\n\n    createLarge(seriesModel, this.group, true);\n  };\n\n  BarView.prototype._updateLargeClip = function (seriesModel) {\n    var clipPath = seriesModel.get('clip', true) ? createClipPath(seriesModel.coordinateSystem, false, seriesModel) : null;\n\n    if (clipPath) {\n      this.group.setClipPath(clipPath);\n    } else {\n      this.group.removeClipPath();\n    }\n  };\n\n  BarView.prototype._enableRealtimeSort = function (realtimeSortCfg, data, api) {\n    var _this = this;\n\n    if (!data.count()) {\n      return;\n    }\n\n    var baseAxis = realtimeSortCfg.baseAxis;\n\n    if (this._isFirstFrame) {\n      this._dispatchInitSort(data, realtimeSortCfg, api);\n\n      this._isFirstFrame = false;\n    } else {\n      var orderMapping_1 = function (idx) {\n        var el = data.getItemGraphicEl(idx);\n\n        if (el) {\n          var shape = el.shape;\n          return (baseAxis.isHorizontal() ? Math.abs(shape.height) : Math.abs(shape.width)) || 0;\n        } else {\n          return 0;\n        }\n      };\n\n      this._onRendered = function () {\n        _this._updateSortWithinSameData(data, orderMapping_1, baseAxis, api);\n      };\n\n      api.getZr().on('rendered', this._onRendered);\n    }\n  };\n\n  BarView.prototype._dataSort = function (data, baseAxis, orderMapping) {\n    var info = [];\n    data.each(data.mapDimension(baseAxis.dim), function (ordinalNumber, dataIdx) {\n      var mappedValue = orderMapping(dataIdx);\n      mappedValue = mappedValue == null ? NaN : mappedValue;\n      info.push({\n        dataIndex: dataIdx,\n        mappedValue: mappedValue,\n        ordinalNumber: ordinalNumber\n      });\n    });\n    info.sort(function (a, b) {\n      return b.mappedValue - a.mappedValue;\n    });\n    return {\n      ordinalNumbers: map(info, function (item) {\n        return item.ordinalNumber;\n      })\n    };\n  };\n\n  BarView.prototype._isOrderChangedWithinSameData = function (data, orderMapping, baseAxis) {\n    var scale = baseAxis.scale;\n    var ordinalDataDim = data.mapDimension(baseAxis.dim);\n    var lastValue = Number.MAX_VALUE;\n\n    for (var tickNum = 0, len = scale.getOrdinalMeta().categories.length; tickNum < len; ++tickNum) {\n      var rawIdx = data.rawIndexOf(ordinalDataDim, scale.getRawOrdinalNumber(tickNum));\n      var value = rawIdx < 0 ? Number.MIN_VALUE : orderMapping(data.indexOfRawIndex(rawIdx));\n\n      if (value > lastValue) {\n        return true;\n      }\n\n      lastValue = value;\n    }\n\n    return false;\n  };\n\n  BarView.prototype._isOrderDifferentInView = function (orderInfo, baseAxis) {\n    var scale = baseAxis.scale;\n    var extent = scale.getExtent();\n    var tickNum = Math.max(0, extent[0]);\n    var tickMax = Math.min(extent[1], scale.getOrdinalMeta().categories.length - 1);\n\n    for (; tickNum <= tickMax; ++tickNum) {\n      if (orderInfo.ordinalNumbers[tickNum] !== scale.getRawOrdinalNumber(tickNum)) {\n        return true;\n      }\n    }\n  };\n\n  BarView.prototype._updateSortWithinSameData = function (data, orderMapping, baseAxis, api) {\n    if (!this._isOrderChangedWithinSameData(data, orderMapping, baseAxis)) {\n      return;\n    }\n\n    var sortInfo = this._dataSort(data, baseAxis, orderMapping);\n\n    if (this._isOrderDifferentInView(sortInfo, baseAxis)) {\n      this._removeOnRenderedListener(api);\n\n      api.dispatchAction({\n        type: 'changeAxisOrder',\n        componentType: baseAxis.dim + 'Axis',\n        axisId: baseAxis.index,\n        sortInfo: sortInfo\n      });\n    }\n  };\n\n  BarView.prototype._dispatchInitSort = function (data, realtimeSortCfg, api) {\n    var baseAxis = realtimeSortCfg.baseAxis;\n\n    var sortResult = this._dataSort(data, baseAxis, function (dataIdx) {\n      return data.get(data.mapDimension(realtimeSortCfg.otherAxis.dim), dataIdx);\n    });\n\n    api.dispatchAction({\n      type: 'changeAxisOrder',\n      componentType: baseAxis.dim + 'Axis',\n      isInitSort: true,\n      axisId: baseAxis.index,\n      sortInfo: sortResult,\n      animation: {\n        duration: 0\n      }\n    });\n  };\n\n  BarView.prototype.remove = function (ecModel, api) {\n    this._clear(this._model);\n\n    this._removeOnRenderedListener(api);\n  };\n\n  BarView.prototype.dispose = function (ecModel, api) {\n    this._removeOnRenderedListener(api);\n  };\n\n  BarView.prototype._removeOnRenderedListener = function (api) {\n    if (this._onRendered) {\n      api.getZr().off('rendered', this._onRendered);\n      this._onRendered = null;\n    }\n  };\n\n  BarView.prototype._clear = function (model) {\n    var group = this.group;\n    var data = this._data;\n\n    if (model && model.isAnimationEnabled() && data && !this._isLargeDraw) {\n      this._removeBackground();\n\n      this._backgroundEls = [];\n      data.eachItemGraphicEl(function (el) {\n        removeElementWithFadeOut(el, model, getECData(el).dataIndex);\n      });\n    } else {\n      group.removeAll();\n    }\n\n    this._data = null;\n    this._isFirstFrame = true;\n  };\n\n  BarView.prototype._removeBackground = function () {\n    this.group.remove(this._backgroundGroup);\n    this._backgroundGroup = null;\n  };\n\n  BarView.type = 'bar';\n  return BarView;\n}(ChartView);\n\nvar clip = {\n  cartesian2d: function (coordSysBoundingRect, layout) {\n    var signWidth = layout.width < 0 ? -1 : 1;\n    var signHeight = layout.height < 0 ? -1 : 1;\n\n    if (signWidth < 0) {\n      layout.x += layout.width;\n      layout.width = -layout.width;\n    }\n\n    if (signHeight < 0) {\n      layout.y += layout.height;\n      layout.height = -layout.height;\n    }\n\n    var coordSysX2 = coordSysBoundingRect.x + coordSysBoundingRect.width;\n    var coordSysY2 = coordSysBoundingRect.y + coordSysBoundingRect.height;\n    var x = mathMax(layout.x, coordSysBoundingRect.x);\n    var x2 = mathMin(layout.x + layout.width, coordSysX2);\n    var y = mathMax(layout.y, coordSysBoundingRect.y);\n    var y2 = mathMin(layout.y + layout.height, coordSysY2);\n    var xClipped = x2 < x;\n    var yClipped = y2 < y;\n    layout.x = xClipped && x > coordSysX2 ? x2 : x;\n    layout.y = yClipped && y > coordSysY2 ? y2 : y;\n    layout.width = xClipped ? 0 : x2 - x;\n    layout.height = yClipped ? 0 : y2 - y;\n\n    if (signWidth < 0) {\n      layout.x += layout.width;\n      layout.width = -layout.width;\n    }\n\n    if (signHeight < 0) {\n      layout.y += layout.height;\n      layout.height = -layout.height;\n    }\n\n    return xClipped || yClipped;\n  },\n  polar: function (coordSysClipArea, layout) {\n    var signR = layout.r0 <= layout.r ? 1 : -1;\n\n    if (signR < 0) {\n      var tmp = layout.r;\n      layout.r = layout.r0;\n      layout.r0 = tmp;\n    }\n\n    var r = mathMin(layout.r, coordSysClipArea.r);\n    var r0 = mathMax(layout.r0, coordSysClipArea.r0);\n    layout.r = r;\n    layout.r0 = r0;\n    var clipped = r - r0 < 0;\n\n    if (signR < 0) {\n      var tmp = layout.r;\n      layout.r = layout.r0;\n      layout.r0 = tmp;\n    }\n\n    return clipped;\n  }\n};\nvar elementCreator = {\n  cartesian2d: function (seriesModel, data, newIndex, layout, isHorizontal, animationModel, axisModel, isUpdate, roundCap) {\n    var rect = new Rect({\n      shape: extend({}, layout),\n      z2: 1\n    });\n    rect.__dataIndex = newIndex;\n    rect.name = 'item';\n\n    if (animationModel) {\n      var rectShape = rect.shape;\n      var animateProperty = isHorizontal ? 'height' : 'width';\n      rectShape[animateProperty] = 0;\n    }\n\n    return rect;\n  },\n  polar: function (seriesModel, data, newIndex, layout, isRadial, animationModel, axisModel, isUpdate, roundCap) {\n    var clockwise = layout.startAngle < layout.endAngle;\n    var ShapeClass = !isRadial && roundCap ? Sausage : Sector;\n    var sector = new ShapeClass({\n      shape: defaults({\n        clockwise: clockwise\n      }, layout),\n      z2: 1\n    });\n    sector.name = 'item';\n\n    if (animationModel) {\n      var sectorShape = sector.shape;\n      var animateProperty = isRadial ? 'r' : 'endAngle';\n      var animateTarget = {};\n      sectorShape[animateProperty] = isRadial ? 0 : layout.startAngle;\n      animateTarget[animateProperty] = layout[animateProperty];\n      (isUpdate ? updateProps : initProps)(sector, {\n        shape: animateTarget\n      }, animationModel);\n    }\n\n    return sector;\n  }\n};\n\nfunction shouldRealtimeSort(seriesModel, coordSys) {\n  var realtimeSortOption = seriesModel.get('realtimeSort', true);\n  var baseAxis = coordSys.getBaseAxis();\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (realtimeSortOption) {\n      if (baseAxis.type !== 'category') {\n        warn('`realtimeSort` will not work because this bar series is not based on a category axis.');\n      }\n\n      if (coordSys.type !== 'cartesian2d') {\n        warn('`realtimeSort` will not work because this bar series is not on cartesian2d.');\n      }\n    }\n  }\n\n  if (realtimeSortOption && baseAxis.type === 'category' && coordSys.type === 'cartesian2d') {\n    return {\n      baseAxis: baseAxis,\n      otherAxis: coordSys.getOtherAxis(baseAxis)\n    };\n  }\n}\n\nfunction updateRealtimeAnimation(realtimeSortCfg, seriesAnimationModel, el, layout, newIndex, isHorizontal, isUpdate, isChangeOrder) {\n  var seriesTarget;\n  var axisTarget;\n\n  if (isHorizontal) {\n    axisTarget = {\n      x: layout.x,\n      width: layout.width\n    };\n    seriesTarget = {\n      y: layout.y,\n      height: layout.height\n    };\n  } else {\n    axisTarget = {\n      y: layout.y,\n      height: layout.height\n    };\n    seriesTarget = {\n      x: layout.x,\n      width: layout.width\n    };\n  }\n\n  if (!isChangeOrder) {\n    (isUpdate ? updateProps : initProps)(el, {\n      shape: seriesTarget\n    }, seriesAnimationModel, newIndex, null);\n  }\n\n  var axisAnimationModel = seriesAnimationModel ? realtimeSortCfg.baseAxis.model : null;\n  (isUpdate ? updateProps : initProps)(el, {\n    shape: axisTarget\n  }, axisAnimationModel, newIndex);\n}\n\nvar getLayout = {\n  cartesian2d: function (data, dataIndex, itemModel) {\n    var layout = data.getItemLayout(dataIndex);\n    var fixedLineWidth = itemModel ? getLineWidth(itemModel, layout) : 0;\n    var signX = layout.width > 0 ? 1 : -1;\n    var signY = layout.height > 0 ? 1 : -1;\n    return {\n      x: layout.x + signX * fixedLineWidth / 2,\n      y: layout.y + signY * fixedLineWidth / 2,\n      width: layout.width - signX * fixedLineWidth,\n      height: layout.height - signY * fixedLineWidth\n    };\n  },\n  polar: function (data, dataIndex, itemModel) {\n    var layout = data.getItemLayout(dataIndex);\n    return {\n      cx: layout.cx,\n      cy: layout.cy,\n      r0: layout.r0,\n      r: layout.r,\n      startAngle: layout.startAngle,\n      endAngle: layout.endAngle\n    };\n  }\n};\n\nfunction isZeroOnPolar(layout) {\n  return layout.startAngle != null && layout.endAngle != null && layout.startAngle === layout.endAngle;\n}\n\nfunction updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontal, isPolar) {\n  var style = data.getItemVisual(dataIndex, 'style');\n\n  if (!isPolar) {\n    el.setShape('r', itemModel.get(BAR_BORDER_RADIUS_QUERY) || 0);\n  }\n\n  el.useStyle(style);\n  var cursorStyle = itemModel.getShallow('cursor');\n  cursorStyle && el.attr('cursor', cursorStyle);\n\n  if (!isPolar) {\n    var labelPositionOutside = isHorizontal ? layout.height > 0 ? 'bottom' : 'top' : layout.width > 0 ? 'left' : 'right';\n    var labelStatesModels = getLabelStatesModels(itemModel);\n    setLabelStyle(el, labelStatesModels, {\n      labelFetcher: seriesModel,\n      labelDataIndex: dataIndex,\n      defaultText: getDefaultLabel(seriesModel.getData(), dataIndex),\n      inheritColor: style.fill,\n      defaultOpacity: style.opacity,\n      defaultOutsidePosition: labelPositionOutside\n    });\n    var label = el.getTextContent();\n    setLabelValueAnimation(label, labelStatesModels, seriesModel.getRawValue(dataIndex), function (value) {\n      return getDefaultInterpolatedLabel(data, value);\n    });\n  }\n\n  var emphasisModel = itemModel.getModel(['emphasis']);\n  enableHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n  setStatesStylesFromModel(el, itemModel);\n\n  if (isZeroOnPolar(layout)) {\n    el.style.fill = 'none';\n    el.style.stroke = 'none';\n    each(el.states, function (state) {\n      if (state.style) {\n        state.style.fill = state.style.stroke = 'none';\n      }\n    });\n  }\n}\n\nfunction getLineWidth(itemModel, rawLayout) {\n  var lineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0;\n  var width = isNaN(rawLayout.width) ? Number.MAX_VALUE : Math.abs(rawLayout.width);\n  var height = isNaN(rawLayout.height) ? Number.MAX_VALUE : Math.abs(rawLayout.height);\n  return Math.min(lineWidth, width, height);\n}\n\nvar LagePathShape = function () {\n  function LagePathShape() {}\n\n  return LagePathShape;\n}();\n\nvar LargePath = function (_super) {\n  __extends(LargePath, _super);\n\n  function LargePath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'largeBar';\n    return _this;\n  }\n\n  ;\n\n  LargePath.prototype.getDefaultShape = function () {\n    return new LagePathShape();\n  };\n\n  LargePath.prototype.buildPath = function (ctx, shape) {\n    var points = shape.points;\n    var startPoint = this.__startPoint;\n    var baseDimIdx = this.__baseDimIdx;\n\n    for (var i = 0; i < points.length; i += 2) {\n      startPoint[baseDimIdx] = points[i + baseDimIdx];\n      ctx.moveTo(startPoint[0], startPoint[1]);\n      ctx.lineTo(points[i], points[i + 1]);\n    }\n  };\n\n  return LargePath;\n}(Path);\n\nfunction createLarge(seriesModel, group, incremental) {\n  var data = seriesModel.getData();\n  var startPoint = [];\n  var baseDimIdx = data.getLayout('valueAxisHorizontal') ? 1 : 0;\n  startPoint[1 - baseDimIdx] = data.getLayout('valueAxisStart');\n  var largeDataIndices = data.getLayout('largeDataIndices');\n  var barWidth = data.getLayout('barWidth');\n  var backgroundModel = seriesModel.getModel('backgroundStyle');\n  var drawBackground = seriesModel.get('showBackground', true);\n\n  if (drawBackground) {\n    var points = data.getLayout('largeBackgroundPoints');\n    var backgroundStartPoint = [];\n    backgroundStartPoint[1 - baseDimIdx] = data.getLayout('backgroundStart');\n    var bgEl = new LargePath({\n      shape: {\n        points: points\n      },\n      incremental: !!incremental,\n      silent: true,\n      z2: 0\n    });\n    bgEl.__startPoint = backgroundStartPoint;\n    bgEl.__baseDimIdx = baseDimIdx;\n    bgEl.__largeDataIndices = largeDataIndices;\n    bgEl.__barWidth = barWidth;\n    setLargeBackgroundStyle(bgEl, backgroundModel, data);\n    group.add(bgEl);\n  }\n\n  var el = new LargePath({\n    shape: {\n      points: data.getLayout('largePoints')\n    },\n    incremental: !!incremental\n  });\n  el.__startPoint = startPoint;\n  el.__baseDimIdx = baseDimIdx;\n  el.__largeDataIndices = largeDataIndices;\n  el.__barWidth = barWidth;\n  group.add(el);\n  setLargeStyle(el, seriesModel, data);\n  getECData(el).seriesIndex = seriesModel.seriesIndex;\n\n  if (!seriesModel.get('silent')) {\n    el.on('mousedown', largePathUpdateDataIndex);\n    el.on('mousemove', largePathUpdateDataIndex);\n  }\n}\n\nvar largePathUpdateDataIndex = throttle(function (event) {\n  var largePath = this;\n  var dataIndex = largePathFindDataIndex(largePath, event.offsetX, event.offsetY);\n  getECData(largePath).dataIndex = dataIndex >= 0 ? dataIndex : null;\n}, 30, false);\n\nfunction largePathFindDataIndex(largePath, x, y) {\n  var baseDimIdx = largePath.__baseDimIdx;\n  var valueDimIdx = 1 - baseDimIdx;\n  var points = largePath.shape.points;\n  var largeDataIndices = largePath.__largeDataIndices;\n  var barWidthHalf = Math.abs(largePath.__barWidth / 2);\n  var startValueVal = largePath.__startPoint[valueDimIdx];\n  _eventPos[0] = x;\n  _eventPos[1] = y;\n  var pointerBaseVal = _eventPos[baseDimIdx];\n  var pointerValueVal = _eventPos[1 - baseDimIdx];\n  var baseLowerBound = pointerBaseVal - barWidthHalf;\n  var baseUpperBound = pointerBaseVal + barWidthHalf;\n\n  for (var i = 0, len = points.length / 2; i < len; i++) {\n    var ii = i * 2;\n    var barBaseVal = points[ii + baseDimIdx];\n    var barValueVal = points[ii + valueDimIdx];\n\n    if (barBaseVal >= baseLowerBound && barBaseVal <= baseUpperBound && (startValueVal <= barValueVal ? pointerValueVal >= startValueVal && pointerValueVal <= barValueVal : pointerValueVal >= barValueVal && pointerValueVal <= startValueVal)) {\n      return largeDataIndices[i];\n    }\n  }\n\n  return -1;\n}\n\nfunction setLargeStyle(el, seriesModel, data) {\n  var globalStyle = data.getVisual('style');\n  el.useStyle(extend({}, globalStyle));\n  el.style.fill = null;\n  el.style.stroke = globalStyle.fill;\n  el.style.lineWidth = data.getLayout('barWidth');\n}\n\nfunction setLargeBackgroundStyle(el, backgroundModel, data) {\n  var borderColor = backgroundModel.get('borderColor') || backgroundModel.get('color');\n  var itemStyle = backgroundModel.getItemStyle();\n  el.useStyle(itemStyle);\n  el.style.fill = null;\n  el.style.stroke = borderColor;\n  el.style.lineWidth = data.getLayout('barWidth');\n}\n\nfunction createBackgroundShape(isHorizontalOrRadial, layout, coord) {\n  if (isCoordinateSystemType(coord, 'cartesian2d')) {\n    var rectShape = layout;\n    var coordLayout = coord.getArea();\n    return {\n      x: isHorizontalOrRadial ? rectShape.x : coordLayout.x,\n      y: isHorizontalOrRadial ? coordLayout.y : rectShape.y,\n      width: isHorizontalOrRadial ? rectShape.width : coordLayout.width,\n      height: isHorizontalOrRadial ? coordLayout.height : rectShape.height\n    };\n  } else {\n    var coordLayout = coord.getArea();\n    var sectorShape = layout;\n    return {\n      cx: coordLayout.cx,\n      cy: coordLayout.cy,\n      r0: isHorizontalOrRadial ? coordLayout.r0 : sectorShape.r0,\n      r: isHorizontalOrRadial ? coordLayout.r : sectorShape.r,\n      startAngle: isHorizontalOrRadial ? sectorShape.startAngle : 0,\n      endAngle: isHorizontalOrRadial ? sectorShape.endAngle : Math.PI * 2\n    };\n  }\n}\n\nfunction createBackgroundEl(coord, isHorizontalOrRadial, layout) {\n  var ElementClz = coord.type === 'polar' ? Sector : Rect;\n  return new ElementClz({\n    shape: createBackgroundShape(isHorizontalOrRadial, layout, coord),\n    silent: true,\n    z2: 0\n  });\n}\n\nexport default BarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { layout, largeLayout } from '../../layout/barGrid';\nimport dataSample from '../../processor/dataSample';\nimport BarSeries from './BarSeries';\nimport BarView from './BarView';\nexport function install(registers) {\n  registers.registerChartView(BarView);\n  registers.registerSeriesModel(BarSeries);\n  registers.registerLayout(registers.PRIORITY.VISUAL.LAYOUT, zrUtil.curry(layout, 'bar'));\n  registers.registerLayout(registers.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT, largeLayout);\n  registers.registerVisual({\n    seriesType: 'bar',\n    reset: function (seriesModel) {\n      seriesModel.getData().setVisual('legendSymbol', 'roundRect');\n    }\n  });\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, dataSample('bar'));\n  registers.registerAction({\n    type: 'changeAxisOrder',\n    event: 'changeAxisOrder',\n    update: 'update'\n  }, function (payload, ecModel) {\n    var componentType = payload.componentType || 'series';\n    ecModel.eachComponent({\n      mainType: componentType,\n      query: payload\n    }, function (componentModel) {\n      if (payload.sortInfo) {\n        componentModel.axis.setCategorySortInfo(payload.sortInfo);\n      }\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parsePercent, linearMap } from '../../util/number';\nimport * as layout from '../../util/layout';\nimport * as zrUtil from 'zrender/lib/core/util';\nvar PI2 = Math.PI * 2;\nvar RADIAN = Math.PI / 180;\n\nfunction getViewRect(seriesModel, api) {\n  return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n}\n\nexport default function pieLayout(seriesType, ecModel, api) {\n  ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n    var data = seriesModel.getData();\n    var valueDim = data.mapDimension('value');\n    var viewRect = getViewRect(seriesModel, api);\n    var center = seriesModel.get('center');\n    var radius = seriesModel.get('radius');\n\n    if (!zrUtil.isArray(radius)) {\n      radius = [0, radius];\n    }\n\n    if (!zrUtil.isArray(center)) {\n      center = [center, center];\n    }\n\n    var width = parsePercent(viewRect.width, api.getWidth());\n    var height = parsePercent(viewRect.height, api.getHeight());\n    var size = Math.min(width, height);\n    var cx = parsePercent(center[0], width) + viewRect.x;\n    var cy = parsePercent(center[1], height) + viewRect.y;\n    var r0 = parsePercent(radius[0], size / 2);\n    var r = parsePercent(radius[1], size / 2);\n    var startAngle = -seriesModel.get('startAngle') * RADIAN;\n    var minAngle = seriesModel.get('minAngle') * RADIAN;\n    var validDataCount = 0;\n    data.each(valueDim, function (value) {\n      !isNaN(value) && validDataCount++;\n    });\n    var sum = data.getSum(valueDim);\n    var unitRadian = Math.PI / (sum || validDataCount) * 2;\n    var clockwise = seriesModel.get('clockwise');\n    var roseType = seriesModel.get('roseType');\n    var stillShowZeroSum = seriesModel.get('stillShowZeroSum');\n    var extent = data.getDataExtent(valueDim);\n    extent[0] = 0;\n    var restAngle = PI2;\n    var valueSumLargerThanMinAngle = 0;\n    var currentAngle = startAngle;\n    var dir = clockwise ? 1 : -1;\n    data.setLayout({\n      viewRect: viewRect,\n      r: r\n    });\n    data.each(valueDim, function (value, idx) {\n      var angle;\n\n      if (isNaN(value)) {\n        data.setItemLayout(idx, {\n          angle: NaN,\n          startAngle: NaN,\n          endAngle: NaN,\n          clockwise: clockwise,\n          cx: cx,\n          cy: cy,\n          r0: r0,\n          r: roseType ? NaN : r\n        });\n        return;\n      }\n\n      if (roseType !== 'area') {\n        angle = sum === 0 && stillShowZeroSum ? unitRadian : value * unitRadian;\n      } else {\n        angle = PI2 / validDataCount;\n      }\n\n      if (angle < minAngle) {\n        angle = minAngle;\n        restAngle -= minAngle;\n      } else {\n        valueSumLargerThanMinAngle += value;\n      }\n\n      var endAngle = currentAngle + dir * angle;\n      data.setItemLayout(idx, {\n        angle: angle,\n        startAngle: currentAngle,\n        endAngle: endAngle,\n        clockwise: clockwise,\n        cx: cx,\n        cy: cy,\n        r0: r0,\n        r: roseType ? linearMap(value, extent, [r0, r]) : r\n      });\n      currentAngle = endAngle;\n    });\n\n    if (restAngle < PI2 && validDataCount) {\n      if (restAngle <= 1e-3) {\n        var angle_1 = PI2 / validDataCount;\n        data.each(valueDim, function (value, idx) {\n          if (!isNaN(value)) {\n            var layout_1 = data.getItemLayout(idx);\n            layout_1.angle = angle_1;\n            layout_1.startAngle = startAngle + dir * idx * angle_1;\n            layout_1.endAngle = startAngle + dir * (idx + 1) * angle_1;\n          }\n        });\n      } else {\n        unitRadian = restAngle / valueSumLargerThanMinAngle;\n        currentAngle = startAngle;\n        data.each(valueDim, function (value, idx) {\n          if (!isNaN(value)) {\n            var layout_2 = data.getItemLayout(idx);\n            var angle = layout_2.angle === minAngle ? minAngle : value * unitRadian;\n            layout_2.startAngle = currentAngle;\n            layout_2.endAngle = currentAngle + dir * angle;\n            currentAngle += dir * angle;\n          }\n        });\n      }\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function dataFilter(seriesType) {\n  return {\n    seriesType: seriesType,\n    reset: function (seriesModel, ecModel) {\n      var legendModels = ecModel.findComponents({\n        mainType: 'legend'\n      });\n\n      if (!legendModels || !legendModels.length) {\n        return;\n      }\n\n      var data = seriesModel.getData();\n      data.filterSelf(function (idx) {\n        var name = data.getName(idx);\n\n        for (var i = 0; i < legendModels.length; i++) {\n          if (!legendModels[i].isSelected(name)) {\n            return false;\n          }\n        }\n\n        return true;\n      });\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parsePercent } from '../../util/number';\nimport { Point } from '../../util/graphic';\nimport { each } from 'zrender/lib/core/util';\nimport { limitTurnAngle, limitSurfaceAngle } from '../../label/labelGuideHelper';\nimport { shiftLayoutOnY } from '../../label/labelLayoutHelper';\nvar RADIAN = Math.PI / 180;\n\nfunction adjustSingleSide(list, cx, cy, r, dir, viewWidth, viewHeight, viewLeft, viewTop, farthestX) {\n  if (list.length < 2) {\n    return;\n  }\n\n  ;\n\n  function recalculateXOnSemiToAlignOnEllipseCurve(semi) {\n    var rB = semi.rB;\n    var rB2 = rB * rB;\n\n    for (var i = 0; i < semi.list.length; i++) {\n      var item = semi.list[i];\n      var dy = Math.abs(item.label.y - cy);\n      var rA = r + item.len;\n      var rA2 = rA * rA;\n      var dx = Math.sqrt((1 - Math.abs(dy * dy / rB2)) * rA2);\n      item.label.x = cx + (dx + item.len2) * dir;\n    }\n  }\n\n  function recalculateX(items) {\n    var topSemi = {\n      list: [],\n      maxY: 0\n    };\n    var bottomSemi = {\n      list: [],\n      maxY: 0\n    };\n\n    for (var i = 0; i < items.length; i++) {\n      if (items[i].labelAlignTo !== 'none') {\n        continue;\n      }\n\n      var item = items[i];\n      var semi = item.label.y > cy ? bottomSemi : topSemi;\n      var dy = Math.abs(item.label.y - cy);\n\n      if (dy > semi.maxY) {\n        var dx = item.label.x - cx - item.len2 * dir;\n        var rA = r + item.len;\n        var rB = dx < rA ? Math.sqrt(dy * dy / (1 - dx * dx / rA / rA)) : rA;\n        semi.rB = rB;\n        semi.maxY = dy;\n      }\n\n      semi.list.push(item);\n    }\n\n    recalculateXOnSemiToAlignOnEllipseCurve(topSemi);\n    recalculateXOnSemiToAlignOnEllipseCurve(bottomSemi);\n  }\n\n  var len = list.length;\n\n  for (var i = 0; i < len; i++) {\n    if (list[i].position === 'outer' && list[i].labelAlignTo === 'labelLine') {\n      var dx = list[i].label.x - farthestX;\n      list[i].linePoints[1][0] += dx;\n      list[i].label.x = farthestX;\n    }\n  }\n\n  if (shiftLayoutOnY(list, viewTop, viewTop + viewHeight)) {\n    recalculateX(list);\n  }\n}\n\nfunction avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop) {\n  var leftList = [];\n  var rightList = [];\n  var leftmostX = Number.MAX_VALUE;\n  var rightmostX = -Number.MAX_VALUE;\n\n  for (var i = 0; i < labelLayoutList.length; i++) {\n    var label = labelLayoutList[i].label;\n\n    if (isPositionCenter(labelLayoutList[i])) {\n      continue;\n    }\n\n    if (label.x < cx) {\n      leftmostX = Math.min(leftmostX, label.x);\n      leftList.push(labelLayoutList[i]);\n    } else {\n      rightmostX = Math.max(rightmostX, label.x);\n      rightList.push(labelLayoutList[i]);\n    }\n  }\n\n  adjustSingleSide(rightList, cx, cy, r, 1, viewWidth, viewHeight, viewLeft, viewTop, rightmostX);\n  adjustSingleSide(leftList, cx, cy, r, -1, viewWidth, viewHeight, viewLeft, viewTop, leftmostX);\n\n  for (var i = 0; i < labelLayoutList.length; i++) {\n    var layout = labelLayoutList[i];\n    var label = layout.label;\n\n    if (isPositionCenter(layout)) {\n      continue;\n    }\n\n    var linePoints = layout.linePoints;\n\n    if (linePoints) {\n      var isAlignToEdge = layout.labelAlignTo === 'edge';\n      var realTextWidth = layout.rect.width;\n      var targetTextWidth = void 0;\n\n      if (isAlignToEdge) {\n        if (label.x < cx) {\n          targetTextWidth = linePoints[2][0] - layout.labelDistance - viewLeft - layout.edgeDistance;\n        } else {\n          targetTextWidth = viewLeft + viewWidth - layout.edgeDistance - linePoints[2][0] - layout.labelDistance;\n        }\n      } else {\n        if (label.x < cx) {\n          targetTextWidth = label.x - viewLeft - layout.bleedMargin;\n        } else {\n          targetTextWidth = viewLeft + viewWidth - label.x - layout.bleedMargin;\n        }\n      }\n\n      if (targetTextWidth < layout.rect.width) {\n        layout.label.style.width = targetTextWidth;\n\n        if (layout.labelAlignTo === 'edge') {\n          realTextWidth = targetTextWidth;\n        }\n      }\n\n      var dist = linePoints[1][0] - linePoints[2][0];\n\n      if (isAlignToEdge) {\n        if (label.x < cx) {\n          linePoints[2][0] = viewLeft + layout.edgeDistance + realTextWidth + layout.labelDistance;\n        } else {\n          linePoints[2][0] = viewLeft + viewWidth - layout.edgeDistance - realTextWidth - layout.labelDistance;\n        }\n      } else {\n        if (label.x < cx) {\n          linePoints[2][0] = label.x + layout.labelDistance;\n        } else {\n          linePoints[2][0] = label.x - layout.labelDistance;\n        }\n\n        linePoints[1][0] = linePoints[2][0] + dist;\n      }\n\n      linePoints[1][1] = linePoints[2][1] = label.y;\n    }\n  }\n}\n\nfunction isPositionCenter(sectorShape) {\n  return sectorShape.position === 'center';\n}\n\nexport default function pieLabelLayout(seriesModel) {\n  var data = seriesModel.getData();\n  var labelLayoutList = [];\n  var cx;\n  var cy;\n  var hasLabelRotate = false;\n  var minShowLabelRadian = (seriesModel.get('minShowLabelAngle') || 0) * RADIAN;\n  var viewRect = data.getLayout('viewRect');\n  var r = data.getLayout('r');\n  var viewWidth = viewRect.width;\n  var viewLeft = viewRect.x;\n  var viewTop = viewRect.y;\n  var viewHeight = viewRect.height;\n\n  function setNotShow(el) {\n    el.ignore = true;\n  }\n\n  function isLabelShown(label) {\n    if (!label.ignore) {\n      return true;\n    }\n\n    for (var key in label.states) {\n      if (label.states[key].ignore === false) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  data.each(function (idx) {\n    var sector = data.getItemGraphicEl(idx);\n    var sectorShape = sector.shape;\n    var label = sector.getTextContent();\n    var labelLine = sector.getTextGuideLine();\n    var itemModel = data.getItemModel(idx);\n    var labelModel = itemModel.getModel('label');\n    var labelPosition = labelModel.get('position') || itemModel.get(['emphasis', 'label', 'position']);\n    var labelDistance = labelModel.get('distanceToLabelLine');\n    var labelAlignTo = labelModel.get('alignTo');\n    var edgeDistance = parsePercent(labelModel.get('edgeDistance'), viewWidth);\n    var bleedMargin = labelModel.get('bleedMargin');\n    var labelLineModel = itemModel.getModel('labelLine');\n    var labelLineLen = labelLineModel.get('length');\n    labelLineLen = parsePercent(labelLineLen, viewWidth);\n    var labelLineLen2 = labelLineModel.get('length2');\n    labelLineLen2 = parsePercent(labelLineLen2, viewWidth);\n\n    if (Math.abs(sectorShape.endAngle - sectorShape.startAngle) < minShowLabelRadian) {\n      each(label.states, setNotShow);\n      label.ignore = true;\n      return;\n    }\n\n    if (!isLabelShown(label)) {\n      return;\n    }\n\n    var midAngle = (sectorShape.startAngle + sectorShape.endAngle) / 2;\n    var nx = Math.cos(midAngle);\n    var ny = Math.sin(midAngle);\n    var textX;\n    var textY;\n    var linePoints;\n    var textAlign;\n    cx = sectorShape.cx;\n    cy = sectorShape.cy;\n    var isLabelInside = labelPosition === 'inside' || labelPosition === 'inner';\n\n    if (labelPosition === 'center') {\n      textX = sectorShape.cx;\n      textY = sectorShape.cy;\n      textAlign = 'center';\n    } else {\n      var x1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * nx : sectorShape.r * nx) + cx;\n      var y1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * ny : sectorShape.r * ny) + cy;\n      textX = x1 + nx * 3;\n      textY = y1 + ny * 3;\n\n      if (!isLabelInside) {\n        var x2 = x1 + nx * (labelLineLen + r - sectorShape.r);\n        var y2 = y1 + ny * (labelLineLen + r - sectorShape.r);\n        var x3 = x2 + (nx < 0 ? -1 : 1) * labelLineLen2;\n        var y3 = y2;\n\n        if (labelAlignTo === 'edge') {\n          textX = nx < 0 ? viewLeft + edgeDistance : viewLeft + viewWidth - edgeDistance;\n        } else {\n          textX = x3 + (nx < 0 ? -labelDistance : labelDistance);\n        }\n\n        textY = y3;\n        linePoints = [[x1, y1], [x2, y2], [x3, y3]];\n      }\n\n      textAlign = isLabelInside ? 'center' : labelAlignTo === 'edge' ? nx > 0 ? 'right' : 'left' : nx > 0 ? 'left' : 'right';\n    }\n\n    var labelRotate;\n    var rotate = labelModel.get('rotate');\n\n    if (typeof rotate === 'number') {\n      labelRotate = rotate * (Math.PI / 180);\n    } else {\n      labelRotate = rotate ? nx < 0 ? -midAngle + Math.PI : -midAngle : 0;\n    }\n\n    hasLabelRotate = !!labelRotate;\n    label.x = textX;\n    label.y = textY;\n    label.rotation = labelRotate;\n    label.setStyle({\n      verticalAlign: 'middle'\n    });\n\n    if (!isLabelInside) {\n      var textRect = label.getBoundingRect().clone();\n      textRect.applyTransform(label.getComputedTransform());\n      var margin = (label.style.margin || 0) + 2.1;\n      textRect.y -= margin / 2;\n      textRect.height += margin;\n      labelLayoutList.push({\n        label: label,\n        labelLine: labelLine,\n        position: labelPosition,\n        len: labelLineLen,\n        len2: labelLineLen2,\n        minTurnAngle: labelLineModel.get('minTurnAngle'),\n        maxSurfaceAngle: labelLineModel.get('maxSurfaceAngle'),\n        surfaceNormal: new Point(nx, ny),\n        linePoints: linePoints,\n        textAlign: textAlign,\n        labelDistance: labelDistance,\n        labelAlignTo: labelAlignTo,\n        edgeDistance: edgeDistance,\n        bleedMargin: bleedMargin,\n        rect: textRect\n      });\n    } else {\n      label.setStyle({\n        align: textAlign\n      });\n      var selectState = label.states.select;\n\n      if (selectState) {\n        selectState.x += label.x;\n        selectState.y += label.y;\n      }\n    }\n\n    sector.setTextConfig({\n      inside: isLabelInside\n    });\n  });\n\n  if (!hasLabelRotate && seriesModel.get('avoidLabelOverlap')) {\n    avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop);\n  }\n\n  for (var i = 0; i < labelLayoutList.length; i++) {\n    var layout = labelLayoutList[i];\n    var label = layout.label;\n    var labelLine = layout.labelLine;\n    var notShowLabel = isNaN(label.x) || isNaN(label.y);\n\n    if (label) {\n      label.setStyle({\n        align: layout.textAlign\n      });\n\n      if (notShowLabel) {\n        each(label.states, setNotShow);\n        label.ignore = true;\n      }\n\n      var selectState = label.states.select;\n\n      if (selectState) {\n        selectState.x += label.x;\n        selectState.y += label.y;\n      }\n    }\n\n    if (labelLine) {\n      var linePoints = layout.linePoints;\n\n      if (notShowLabel || !linePoints) {\n        each(labelLine.states, setNotShow);\n        labelLine.ignore = true;\n      } else {\n        limitTurnAngle(linePoints, layout.minTurnAngle);\n        limitSurfaceAngle(linePoints, layout.surfaceNormal, layout.maxSurfaceAngle);\n        labelLine.setShape({\n          points: linePoints\n        });\n        label.__hostTarget.textGuideLineConfig = {\n          anchor: new Point(linePoints[0][0], linePoints[0][1])\n        };\n      }\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isArray } from 'zrender/lib/core/util';\nimport { parsePercent } from 'zrender/lib/contain/text';\nexport function getSectorCornerRadius(model, shape) {\n  var cornerRadius = model.get('borderRadius');\n\n  if (cornerRadius == null) {\n    return null;\n  }\n\n  if (!isArray(cornerRadius)) {\n    cornerRadius = [cornerRadius, cornerRadius];\n  }\n\n  return {\n    innerCornerRadius: parsePercent(cornerRadius[0], shape.r0),\n    cornerRadius: parsePercent(cornerRadius[1], shape.r)\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __assign, __extends } from \"tslib\";\nimport { extend, retrieve3 } from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport ChartView from '../../view/Chart';\nimport labelLayout from './labelLayout';\nimport { setLabelLineStyle, getLabelLineStatesModels } from '../../label/labelGuideHelper';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { getSectorCornerRadius } from '../helper/pieHelper';\n\nvar PiePiece = function (_super) {\n  __extends(PiePiece, _super);\n\n  function PiePiece(data, idx, startAngle) {\n    var _this = _super.call(this) || this;\n\n    _this.z2 = 2;\n    var polyline = new graphic.Polyline();\n    var text = new graphic.Text();\n\n    _this.setTextGuideLine(polyline);\n\n    _this.setTextContent(text);\n\n    _this.updateData(data, idx, startAngle, true);\n\n    return _this;\n  }\n\n  PiePiece.prototype.updateData = function (data, idx, startAngle, firstCreate) {\n    var sector = this;\n    var seriesModel = data.hostModel;\n    var itemModel = data.getItemModel(idx);\n    var emphasisModel = itemModel.getModel('emphasis');\n    var layout = data.getItemLayout(idx);\n    var sectorShape = extend(getSectorCornerRadius(itemModel.getModel('itemStyle'), layout) || {}, layout);\n\n    if (firstCreate) {\n      sector.setShape(sectorShape);\n      var animationType = seriesModel.getShallow('animationType');\n\n      if (animationType === 'scale') {\n        sector.shape.r = layout.r0;\n        graphic.initProps(sector, {\n          shape: {\n            r: layout.r\n          }\n        }, seriesModel, idx);\n      } else {\n        if (startAngle != null) {\n          sector.setShape({\n            startAngle: startAngle,\n            endAngle: startAngle\n          });\n          graphic.initProps(sector, {\n            shape: {\n              startAngle: layout.startAngle,\n              endAngle: layout.endAngle\n            }\n          }, seriesModel, idx);\n        } else {\n          sector.shape.endAngle = layout.startAngle;\n          graphic.updateProps(sector, {\n            shape: {\n              endAngle: layout.endAngle\n            }\n          }, seriesModel, idx);\n        }\n      }\n    } else {\n      graphic.updateProps(sector, {\n        shape: sectorShape\n      }, seriesModel, idx);\n    }\n\n    sector.useStyle(data.getItemVisual(idx, 'style'));\n    setStatesStylesFromModel(sector, itemModel);\n    var midAngle = (layout.startAngle + layout.endAngle) / 2;\n    var offset = seriesModel.get('selectedOffset');\n    var dx = Math.cos(midAngle) * offset;\n    var dy = Math.sin(midAngle) * offset;\n    var cursorStyle = itemModel.getShallow('cursor');\n    cursorStyle && sector.attr('cursor', cursorStyle);\n\n    this._updateLabel(seriesModel, data, idx);\n\n    sector.ensureState('emphasis').shape = __assign({\n      r: layout.r + (emphasisModel.get('scale') ? emphasisModel.get('scaleSize') || 0 : 0)\n    }, getSectorCornerRadius(emphasisModel.getModel('itemStyle'), layout));\n    extend(sector.ensureState('select'), {\n      x: dx,\n      y: dy,\n      shape: getSectorCornerRadius(itemModel.getModel(['select', 'itemStyle']), layout)\n    });\n    extend(sector.ensureState('blur'), {\n      shape: getSectorCornerRadius(itemModel.getModel(['blur', 'itemStyle']), layout)\n    });\n    var labelLine = sector.getTextGuideLine();\n    var labelText = sector.getTextContent();\n    extend(labelLine.ensureState('select'), {\n      x: dx,\n      y: dy\n    });\n    extend(labelText.ensureState('select'), {\n      x: dx,\n      y: dy\n    });\n    enableHoverEmphasis(this, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n  };\n\n  PiePiece.prototype._updateLabel = function (seriesModel, data, idx) {\n    var sector = this;\n    var itemModel = data.getItemModel(idx);\n    var labelLineModel = itemModel.getModel('labelLine');\n    var style = data.getItemVisual(idx, 'style');\n    var visualColor = style && style.fill;\n    var visualOpacity = style && style.opacity;\n    setLabelStyle(sector, getLabelStatesModels(itemModel), {\n      labelFetcher: data.hostModel,\n      labelDataIndex: idx,\n      inheritColor: visualColor,\n      defaultOpacity: visualOpacity,\n      defaultText: seriesModel.getFormattedLabel(idx, 'normal') || data.getName(idx)\n    });\n    var labelText = sector.getTextContent();\n    sector.setTextConfig({\n      position: null,\n      rotation: null\n    });\n    labelText.attr({\n      z2: 10\n    });\n    setLabelLineStyle(this, getLabelLineStatesModels(itemModel), {\n      stroke: visualColor,\n      opacity: retrieve3(labelLineModel.get(['lineStyle', 'opacity']), visualOpacity, 1)\n    });\n  };\n\n  return PiePiece;\n}(graphic.Sector);\n\nvar PieView = function (_super) {\n  __extends(PieView, _super);\n\n  function PieView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.ignoreLabelLineUpdate = true;\n    return _this;\n  }\n\n  PieView.prototype.init = function () {\n    var sectorGroup = new graphic.Group();\n    this._sectorGroup = sectorGroup;\n  };\n\n  PieView.prototype.render = function (seriesModel, ecModel, api, payload) {\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var group = this.group;\n    var startAngle;\n\n    if (!oldData && data.count() > 0) {\n      var shape = data.getItemLayout(0);\n\n      for (var s = 1; isNaN(shape && shape.startAngle) && s < data.count(); ++s) {\n        shape = data.getItemLayout(s);\n      }\n\n      if (shape) {\n        startAngle = shape.startAngle;\n      }\n    }\n\n    data.diff(oldData).add(function (idx) {\n      var piePiece = new PiePiece(data, idx, startAngle);\n      data.setItemGraphicEl(idx, piePiece);\n      group.add(piePiece);\n    }).update(function (newIdx, oldIdx) {\n      var piePiece = oldData.getItemGraphicEl(oldIdx);\n      piePiece.updateData(data, newIdx, startAngle);\n      piePiece.off('click');\n      group.add(piePiece);\n      data.setItemGraphicEl(newIdx, piePiece);\n    }).remove(function (idx) {\n      var piePiece = oldData.getItemGraphicEl(idx);\n      graphic.removeElementWithFadeOut(piePiece, seriesModel, idx);\n    }).execute();\n    labelLayout(seriesModel);\n\n    if (seriesModel.get('animationTypeUpdate') !== 'expansion') {\n      this._data = data;\n    }\n  };\n\n  PieView.prototype.dispose = function () {};\n\n  PieView.prototype.containPoint = function (point, seriesModel) {\n    var data = seriesModel.getData();\n    var itemLayout = data.getItemLayout(0);\n\n    if (itemLayout) {\n      var dx = point[0] - itemLayout.cx;\n      var dy = point[1] - itemLayout.cy;\n      var radius = Math.sqrt(dx * dx + dy * dy);\n      return radius <= itemLayout.r && radius >= itemLayout.r0;\n    }\n  };\n\n  PieView.type = 'pie';\n  return PieView;\n}(ChartView);\n\nexport default PieView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport createDimensions from '../../data/helper/createDimensions';\nimport List from '../../data/List';\nimport { extend, isArray } from 'zrender/lib/core/util';\nexport default function createListSimply(seriesModel, opt, nameList) {\n  opt = isArray(opt) && {\n    coordDimensions: opt\n  } || extend({}, opt);\n  var source = seriesModel.getSource();\n  var dimensionsInfo = createDimensions(source, opt);\n  var list = new List(dimensionsInfo, seriesModel);\n  list.initData(source, nameList);\n  return list;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar LegendVisualProvider = function () {\n  function LegendVisualProvider(getDataWithEncodedVisual, getRawData) {\n    this._getDataWithEncodedVisual = getDataWithEncodedVisual;\n    this._getRawData = getRawData;\n  }\n\n  LegendVisualProvider.prototype.getAllNames = function () {\n    var rawData = this._getRawData();\n\n    return rawData.mapArray(rawData.getName);\n  };\n\n  LegendVisualProvider.prototype.containName = function (name) {\n    var rawData = this._getRawData();\n\n    return rawData.indexOfName(name) >= 0;\n  };\n\n  LegendVisualProvider.prototype.indexOfName = function (name) {\n    var dataWithEncodedVisual = this._getDataWithEncodedVisual();\n\n    return dataWithEncodedVisual.indexOfName(name);\n  };\n\n  LegendVisualProvider.prototype.getItemVisual = function (dataIndex, key) {\n    var dataWithEncodedVisual = this._getDataWithEncodedVisual();\n\n    return dataWithEncodedVisual.getItemVisual(dataIndex, key);\n  };\n\n  return LegendVisualProvider;\n}();\n\nexport default LegendVisualProvider;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListSimply from '../helper/createListSimply';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nimport { getPercentWithPrecision } from '../../util/number';\nimport { makeSeriesEncodeForNameBased } from '../../data/helper/sourceHelper';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider';\nimport SeriesModel from '../../model/Series';\n\nvar PieSeriesModel = function (_super) {\n  __extends(PieSeriesModel, _super);\n\n  function PieSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.useColorPaletteOnData = true;\n    return _this;\n  }\n\n  PieSeriesModel.prototype.init = function (option) {\n    _super.prototype.init.apply(this, arguments);\n\n    this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));\n\n    this._defaultLabelLine(option);\n  };\n\n  PieSeriesModel.prototype.mergeOption = function () {\n    _super.prototype.mergeOption.apply(this, arguments);\n  };\n\n  PieSeriesModel.prototype.getInitialData = function () {\n    return createListSimply(this, {\n      coordDimensions: ['value'],\n      encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)\n    });\n  };\n\n  PieSeriesModel.prototype.getDataParams = function (dataIndex) {\n    var data = this.getData();\n\n    var params = _super.prototype.getDataParams.call(this, dataIndex);\n\n    var valueList = [];\n    data.each(data.mapDimension('value'), function (value) {\n      valueList.push(value);\n    });\n    params.percent = getPercentWithPrecision(valueList, dataIndex, data.hostModel.get('percentPrecision'));\n    params.$vars.push('percent');\n    return params;\n  };\n\n  PieSeriesModel.prototype._defaultLabelLine = function (option) {\n    modelUtil.defaultEmphasis(option, 'labelLine', ['show']);\n    var labelLineNormalOpt = option.labelLine;\n    var labelLineEmphasisOpt = option.emphasis.labelLine;\n    labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show;\n    labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show;\n  };\n\n  PieSeriesModel.type = 'series.pie';\n  PieSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    center: ['50%', '50%'],\n    radius: [0, '75%'],\n    clockwise: true,\n    startAngle: 90,\n    minAngle: 0,\n    minShowLabelAngle: 0,\n    selectedOffset: 10,\n    percentPrecision: 2,\n    stillShowZeroSum: true,\n    left: 0,\n    top: 0,\n    right: 0,\n    bottom: 0,\n    width: null,\n    height: null,\n    label: {\n      rotate: 0,\n      show: true,\n      overflow: 'truncate',\n      position: 'outer',\n      alignTo: 'none',\n      edgeDistance: '25%',\n      bleedMargin: 10,\n      distanceToLabelLine: 5\n    },\n    labelLine: {\n      show: true,\n      length: 15,\n      length2: 15,\n      smooth: false,\n      minTurnAngle: 90,\n      maxSurfaceAngle: 90,\n      lineStyle: {\n        width: 1,\n        type: 'solid'\n      }\n    },\n    itemStyle: {\n      borderWidth: 1\n    },\n    labelLayout: {\n      hideOverlap: true\n    },\n    emphasis: {\n      scale: true,\n      scaleSize: 5\n    },\n    avoidLabelOverlap: true,\n    animationType: 'expansion',\n    animationDuration: 1000,\n    animationTypeUpdate: 'transition',\n    animationEasingUpdate: 'cubicInOut',\n    animationDurationUpdate: 500,\n    animationEasing: 'cubicInOut'\n  };\n  return PieSeriesModel;\n}(SeriesModel);\n\nexport default PieSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createLegacyDataSelectAction } from '../../legacy/dataSelectAction';\nimport pieLayout from '../pie/pieLayout';\nimport dataFilter from '../../processor/dataFilter';\nimport { curry } from 'zrender/lib/core/util';\nimport PieView from './PieView';\nimport PieSeriesModel from './PieSeries';\nexport function install(registers) {\n  registers.registerChartView(PieView);\n  registers.registerSeriesModel(PieSeriesModel);\n  createLegacyDataSelectAction('pie', registers.registerAction);\n  registers.registerLayout(curry(pieLayout, 'pie'));\n  registers.registerProcessor(dataFilter('pie'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListFromArray from '../helper/createListFromArray';\nimport SeriesModel from '../../model/Series';\n\nvar ScatterSeriesModel = function (_super) {\n  __extends(ScatterSeriesModel, _super);\n\n  function ScatterSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ScatterSeriesModel.type;\n    _this.hasSymbolVisual = true;\n    return _this;\n  }\n\n  ScatterSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: true\n    });\n  };\n\n  ScatterSeriesModel.prototype.getProgressive = function () {\n    var progressive = this.option.progressive;\n\n    if (progressive == null) {\n      return this.option.large ? 5e3 : this.get('progressive');\n    }\n\n    return progressive;\n  };\n\n  ScatterSeriesModel.prototype.getProgressiveThreshold = function () {\n    var progressiveThreshold = this.option.progressiveThreshold;\n\n    if (progressiveThreshold == null) {\n      return this.option.large ? 1e4 : this.get('progressiveThreshold');\n    }\n\n    return progressiveThreshold;\n  };\n\n  ScatterSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n    return selectors.point(data.getItemLayout(dataIndex));\n  };\n\n  ScatterSeriesModel.type = 'series.scatter';\n  ScatterSeriesModel.dependencies = ['grid', 'polar', 'geo', 'singleAxis', 'calendar'];\n  ScatterSeriesModel.defaultOption = {\n    coordinateSystem: 'cartesian2d',\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    symbolSize: 10,\n    large: false,\n    largeThreshold: 2000,\n    itemStyle: {\n      opacity: 0.8\n    },\n    emphasis: {\n      scale: true\n    },\n    clip: true,\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    }\n  };\n  return ScatterSeriesModel;\n}(SeriesModel);\n\nexport default ScatterSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { createSymbol } from '../../util/symbol';\nimport IncrementalDisplayable from 'zrender/lib/graphic/IncrementalDisplayable';\nimport { getECData } from '../../util/innerStore';\nvar BOOST_SIZE_THRESHOLD = 4;\n\nvar LargeSymbolPathShape = function () {\n  function LargeSymbolPathShape() {}\n\n  return LargeSymbolPathShape;\n}();\n\nvar LargeSymbolPath = function (_super) {\n  __extends(LargeSymbolPath, _super);\n\n  function LargeSymbolPath(opts) {\n    return _super.call(this, opts) || this;\n  }\n\n  LargeSymbolPath.prototype.getDefaultShape = function () {\n    return new LargeSymbolPathShape();\n  };\n\n  LargeSymbolPath.prototype.buildPath = function (path, shape) {\n    var points = shape.points;\n    var size = shape.size;\n    var symbolProxy = this.symbolProxy;\n    var symbolProxyShape = symbolProxy.shape;\n    var ctx = path.getContext ? path.getContext() : path;\n    var canBoost = ctx && size[0] < BOOST_SIZE_THRESHOLD;\n\n    if (canBoost) {\n      this._ctx = ctx;\n      return;\n    }\n\n    this._ctx = null;\n\n    for (var i = 0; i < points.length;) {\n      var x = points[i++];\n      var y = points[i++];\n\n      if (isNaN(x) || isNaN(y)) {\n        continue;\n      }\n\n      if (this.softClipShape && !this.softClipShape.contain(x, y)) {\n        continue;\n      }\n\n      symbolProxyShape.x = x - size[0] / 2;\n      symbolProxyShape.y = y - size[1] / 2;\n      symbolProxyShape.width = size[0];\n      symbolProxyShape.height = size[1];\n      symbolProxy.buildPath(path, symbolProxyShape, true);\n    }\n  };\n\n  LargeSymbolPath.prototype.afterBrush = function () {\n    var shape = this.shape;\n    var points = shape.points;\n    var size = shape.size;\n    var ctx = this._ctx;\n\n    if (!ctx) {\n      return;\n    }\n\n    for (var i = 0; i < points.length;) {\n      var x = points[i++];\n      var y = points[i++];\n\n      if (isNaN(x) || isNaN(y)) {\n        continue;\n      }\n\n      if (this.softClipShape && !this.softClipShape.contain(x, y)) {\n        continue;\n      }\n\n      ctx.fillRect(x - size[0] / 2, y - size[1] / 2, size[0], size[1]);\n    }\n  };\n\n  LargeSymbolPath.prototype.findDataIndex = function (x, y) {\n    var shape = this.shape;\n    var points = shape.points;\n    var size = shape.size;\n    var w = Math.max(size[0], 4);\n    var h = Math.max(size[1], 4);\n\n    for (var idx = points.length / 2 - 1; idx >= 0; idx--) {\n      var i = idx * 2;\n      var x0 = points[i] - w / 2;\n      var y0 = points[i + 1] - h / 2;\n\n      if (x >= x0 && y >= y0 && x <= x0 + w && y <= y0 + h) {\n        return idx;\n      }\n    }\n\n    return -1;\n  };\n\n  return LargeSymbolPath;\n}(graphic.Path);\n\nvar LargeSymbolDraw = function () {\n  function LargeSymbolDraw() {\n    this.group = new graphic.Group();\n  }\n\n  LargeSymbolDraw.prototype.isPersistent = function () {\n    return !this._incremental;\n  };\n\n  ;\n\n  LargeSymbolDraw.prototype.updateData = function (data, opt) {\n    this.group.removeAll();\n    var symbolEl = new LargeSymbolPath({\n      rectHover: true,\n      cursor: 'default'\n    });\n    symbolEl.setShape({\n      points: data.getLayout('points')\n    });\n\n    this._setCommon(symbolEl, data, false, opt);\n\n    this.group.add(symbolEl);\n    this._incremental = null;\n  };\n\n  LargeSymbolDraw.prototype.updateLayout = function (data) {\n    if (this._incremental) {\n      return;\n    }\n\n    var points = data.getLayout('points');\n    this.group.eachChild(function (child) {\n      if (child.startIndex != null) {\n        var len = (child.endIndex - child.startIndex) * 2;\n        var byteOffset = child.startIndex * 4 * 2;\n        points = new Float32Array(points.buffer, byteOffset, len);\n      }\n\n      child.setShape('points', points);\n    });\n  };\n\n  LargeSymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\n    this.group.removeAll();\n\n    this._clearIncremental();\n\n    if (data.count() > 2e6) {\n      if (!this._incremental) {\n        this._incremental = new IncrementalDisplayable({\n          silent: true\n        });\n      }\n\n      this.group.add(this._incremental);\n    } else {\n      this._incremental = null;\n    }\n  };\n\n  LargeSymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\n    var symbolEl;\n\n    if (this._incremental) {\n      symbolEl = new LargeSymbolPath();\n\n      this._incremental.addDisplayable(symbolEl, true);\n    } else {\n      symbolEl = new LargeSymbolPath({\n        rectHover: true,\n        cursor: 'default',\n        startIndex: taskParams.start,\n        endIndex: taskParams.end\n      });\n      symbolEl.incremental = true;\n      this.group.add(symbolEl);\n    }\n\n    symbolEl.setShape({\n      points: data.getLayout('points')\n    });\n\n    this._setCommon(symbolEl, data, !!this._incremental, opt);\n  };\n\n  LargeSymbolDraw.prototype._setCommon = function (symbolEl, data, isIncremental, opt) {\n    var hostModel = data.hostModel;\n    opt = opt || {};\n    var size = data.getVisual('symbolSize');\n    symbolEl.setShape('size', size instanceof Array ? size : [size, size]);\n    symbolEl.softClipShape = opt.clipShape || null;\n    symbolEl.symbolProxy = createSymbol(data.getVisual('symbol'), 0, 0, 0, 0);\n    symbolEl.setColor = symbolEl.symbolProxy.setColor;\n    var extrudeShadow = symbolEl.shape.size[0] < BOOST_SIZE_THRESHOLD;\n    symbolEl.useStyle(hostModel.getModel('itemStyle').getItemStyle(extrudeShadow ? ['color', 'shadowBlur', 'shadowColor'] : ['color']));\n    var globalStyle = data.getVisual('style');\n    var visualColor = globalStyle && globalStyle.fill;\n\n    if (visualColor) {\n      symbolEl.setColor(visualColor);\n    }\n\n    if (!isIncremental) {\n      var ecData_1 = getECData(symbolEl);\n      ecData_1.seriesIndex = hostModel.seriesIndex;\n      symbolEl.on('mousemove', function (e) {\n        ecData_1.dataIndex = null;\n        var dataIndex = symbolEl.findDataIndex(e.offsetX, e.offsetY);\n\n        if (dataIndex >= 0) {\n          ecData_1.dataIndex = dataIndex + (symbolEl.startIndex || 0);\n        }\n      });\n    }\n  };\n\n  LargeSymbolDraw.prototype.remove = function () {\n    this._clearIncremental();\n\n    this._incremental = null;\n    this.group.removeAll();\n  };\n\n  LargeSymbolDraw.prototype._clearIncremental = function () {\n    var incremental = this._incremental;\n\n    if (incremental) {\n      incremental.clearDisplaybles();\n    }\n  };\n\n  return LargeSymbolDraw;\n}();\n\nexport default LargeSymbolDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SymbolDraw from '../helper/SymbolDraw';\nimport LargeSymbolDraw from '../helper/LargeSymbolDraw';\nimport pointsLayout from '../../layout/points';\nimport ChartView from '../../view/Chart';\n\nvar ScatterView = function (_super) {\n  __extends(ScatterView, _super);\n\n  function ScatterView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ScatterView.type;\n    return _this;\n  }\n\n  ScatterView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n\n    var symbolDraw = this._updateSymbolDraw(data, seriesModel);\n\n    symbolDraw.updateData(data, {\n      clipShape: this._getClipShape(seriesModel)\n    });\n    this._finished = true;\n  };\n\n  ScatterView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n\n    var symbolDraw = this._updateSymbolDraw(data, seriesModel);\n\n    symbolDraw.incrementalPrepareUpdate(data);\n    this._finished = false;\n  };\n\n  ScatterView.prototype.incrementalRender = function (taskParams, seriesModel, ecModel) {\n    this._symbolDraw.incrementalUpdate(taskParams, seriesModel.getData(), {\n      clipShape: this._getClipShape(seriesModel)\n    });\n\n    this._finished = taskParams.end === seriesModel.getData().count();\n  };\n\n  ScatterView.prototype.updateTransform = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    this.group.dirty();\n\n    if (!this._finished || data.count() > 1e4 || !this._symbolDraw.isPersistent()) {\n      return {\n        update: true\n      };\n    } else {\n      var res = pointsLayout('').reset(seriesModel, ecModel, api);\n\n      if (res.progress) {\n        res.progress({\n          start: 0,\n          end: data.count(),\n          count: data.count()\n        }, data);\n      }\n\n      this._symbolDraw.updateLayout(data);\n    }\n  };\n\n  ScatterView.prototype._getClipShape = function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n    var clipArea = coordSys && coordSys.getArea && coordSys.getArea();\n    return seriesModel.get('clip', true) ? clipArea : null;\n  };\n\n  ScatterView.prototype._updateSymbolDraw = function (data, seriesModel) {\n    var symbolDraw = this._symbolDraw;\n    var pipelineContext = seriesModel.pipelineContext;\n    var isLargeDraw = pipelineContext.large;\n\n    if (!symbolDraw || isLargeDraw !== this._isLargeDraw) {\n      symbolDraw && symbolDraw.remove();\n      symbolDraw = this._symbolDraw = isLargeDraw ? new LargeSymbolDraw() : new SymbolDraw();\n      this._isLargeDraw = isLargeDraw;\n      this.group.removeAll();\n    }\n\n    this.group.add(symbolDraw.group);\n    return symbolDraw;\n  };\n\n  ScatterView.prototype.remove = function (ecModel, api) {\n    this._symbolDraw && this._symbolDraw.remove(true);\n    this._symbolDraw = null;\n  };\n\n  ScatterView.prototype.dispose = function () {};\n\n  ScatterView.type = 'scatter';\n  return ScatterView;\n}(ChartView);\n\nexport default ScatterView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\n\nvar GridModel = function (_super) {\n  __extends(GridModel, _super);\n\n  function GridModel() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  GridModel.type = 'grid';\n  GridModel.dependencies = ['xAxis', 'yAxis'];\n  GridModel.layoutMode = 'box';\n  GridModel.defaultOption = {\n    show: false,\n    zlevel: 0,\n    z: 0,\n    left: '10%',\n    top: 60,\n    right: '10%',\n    bottom: 70,\n    containLabel: false,\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderWidth: 1,\n    borderColor: '#ccc'\n  };\n  return GridModel;\n}(ComponentModel);\n\nexport default GridModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin';\nimport { SINGLE_REFERRING } from '../../util/model';\n\nvar CartesianAxisModel = function (_super) {\n  __extends(CartesianAxisModel, _super);\n\n  function CartesianAxisModel() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  CartesianAxisModel.prototype.getCoordSysModel = function () {\n    return this.getReferringComponents('grid', SINGLE_REFERRING).models[0];\n  };\n\n  CartesianAxisModel.type = 'cartesian2dAxis';\n  return CartesianAxisModel;\n}(ComponentModel);\n\nexport { CartesianAxisModel };\nzrUtil.mixin(CartesianAxisModel, AxisModelCommonMixin);\nexport default CartesianAxisModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar defaultOption = {\n  show: true,\n  zlevel: 0,\n  z: 0,\n  inverse: false,\n  name: '',\n  nameLocation: 'end',\n  nameRotate: null,\n  nameTruncate: {\n    maxWidth: null,\n    ellipsis: '...',\n    placeholder: '.'\n  },\n  nameTextStyle: {},\n  nameGap: 15,\n  silent: false,\n  triggerEvent: false,\n  tooltip: {\n    show: false\n  },\n  axisPointer: {},\n  axisLine: {\n    show: true,\n    onZero: true,\n    onZeroAxisIndex: null,\n    lineStyle: {\n      color: '#6E7079',\n      width: 1,\n      type: 'solid'\n    },\n    symbol: ['none', 'none'],\n    symbolSize: [10, 15]\n  },\n  axisTick: {\n    show: true,\n    inside: false,\n    length: 5,\n    lineStyle: {\n      width: 1\n    }\n  },\n  axisLabel: {\n    show: true,\n    inside: false,\n    rotate: 0,\n    showMinLabel: null,\n    showMaxLabel: null,\n    margin: 8,\n    fontSize: 12\n  },\n  splitLine: {\n    show: true,\n    lineStyle: {\n      color: ['#E0E6F1'],\n      width: 1,\n      type: 'solid'\n    }\n  },\n  splitArea: {\n    show: false,\n    areaStyle: {\n      color: ['rgba(250,250,250,0.2)', 'rgba(210,219,238,0.2)']\n    }\n  }\n};\nvar categoryAxis = zrUtil.merge({\n  boundaryGap: true,\n  deduplication: null,\n  splitLine: {\n    show: false\n  },\n  axisTick: {\n    alignWithLabel: false,\n    interval: 'auto'\n  },\n  axisLabel: {\n    interval: 'auto'\n  }\n}, defaultOption);\nvar valueAxis = zrUtil.merge({\n  boundaryGap: [0, 0],\n  axisLine: {\n    show: 'auto'\n  },\n  axisTick: {\n    show: 'auto'\n  },\n  splitNumber: 5,\n  minorTick: {\n    show: false,\n    splitNumber: 5,\n    length: 3,\n    lineStyle: {}\n  },\n  minorSplitLine: {\n    show: false,\n    lineStyle: {\n      color: '#F4F7FD',\n      width: 1\n    }\n  }\n}, defaultOption);\nvar timeAxis = zrUtil.merge({\n  scale: true,\n  splitNumber: 6,\n  axisLabel: {\n    showMinLabel: false,\n    showMaxLabel: false,\n    rich: {\n      primary: {\n        fontWeight: 'bold'\n      }\n    }\n  },\n  splitLine: {\n    show: false\n  }\n}, valueAxis);\nvar logAxis = zrUtil.defaults({\n  scale: true,\n  logBase: 10\n}, valueAxis);\nexport default {\n  category: categoryAxis,\n  value: valueAxis,\n  time: timeAxis,\n  log: logAxis\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport var AXIS_TYPES = {\n  value: 1,\n  category: 1,\n  time: 1,\n  log: 1\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport axisDefault from './axisDefault';\nimport { getLayoutParams, mergeLayoutParam, fetchLayoutMode } from '../util/layout';\nimport OrdinalMeta from '../data/OrdinalMeta';\nimport { AXIS_TYPES } from './axisCommonTypes';\nimport { each, merge } from 'zrender/lib/core/util';\nexport default function axisModelCreator(registers, axisName, BaseAxisModelClass, extraDefaultOption) {\n  each(AXIS_TYPES, function (v, axisType) {\n    var defaultOption = merge(merge({}, axisDefault[axisType], true), extraDefaultOption, true);\n\n    var AxisModel = function (_super) {\n      __extends(AxisModel, _super);\n\n      function AxisModel() {\n        var args = [];\n\n        for (var _i = 0; _i < arguments.length; _i++) {\n          args[_i] = arguments[_i];\n        }\n\n        var _this = _super.apply(this, args) || this;\n\n        _this.type = axisName + 'Axis.' + axisType;\n        return _this;\n      }\n\n      AxisModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n        var layoutMode = fetchLayoutMode(this);\n        var inputPositionParams = layoutMode ? getLayoutParams(option) : {};\n        var themeModel = ecModel.getTheme();\n        merge(option, themeModel.get(axisType + 'Axis'));\n        merge(option, this.getDefaultOption());\n        option.type = getAxisType(option);\n\n        if (layoutMode) {\n          mergeLayoutParam(option, inputPositionParams, layoutMode);\n        }\n      };\n\n      AxisModel.prototype.optionUpdated = function () {\n        var thisOption = this.option;\n\n        if (thisOption.type === 'category') {\n          this.__ordinalMeta = OrdinalMeta.createByAxisModel(this);\n        }\n      };\n\n      AxisModel.prototype.getCategories = function (rawData) {\n        var option = this.option;\n\n        if (option.type === 'category') {\n          if (rawData) {\n            return option.data;\n          }\n\n          return this.__ordinalMeta.categories;\n        }\n      };\n\n      AxisModel.prototype.getOrdinalMeta = function () {\n        return this.__ordinalMeta;\n      };\n\n      AxisModel.type = axisName + 'Axis.' + axisType;\n      AxisModel.defaultOption = defaultOption;\n      return AxisModel;\n    }(BaseAxisModelClass);\n\n    registers.registerComponentModel(AxisModel);\n  });\n  registers.registerSubTypeDefaulter(axisName + 'Axis', getAxisType);\n}\n\nfunction getAxisType(option) {\n  return option.type || (option.data ? 'category' : 'value');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nvar Cartesian = function () {\n  function Cartesian(name) {\n    this.type = 'cartesian';\n    this._dimList = [];\n    this._axes = {};\n    this.name = name || '';\n  }\n\n  Cartesian.prototype.getAxis = function (dim) {\n    return this._axes[dim];\n  };\n\n  Cartesian.prototype.getAxes = function () {\n    return zrUtil.map(this._dimList, function (dim) {\n      return this._axes[dim];\n    }, this);\n  };\n\n  Cartesian.prototype.getAxesByScale = function (scaleType) {\n    scaleType = scaleType.toLowerCase();\n    return zrUtil.filter(this.getAxes(), function (axis) {\n      return axis.scale.type === scaleType;\n    });\n  };\n\n  Cartesian.prototype.addAxis = function (axis) {\n    var dim = axis.dim;\n    this._axes[dim] = axis;\n\n    this._dimList.push(dim);\n  };\n\n  return Cartesian;\n}();\n\n;\nexport default Cartesian;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport Cartesian from './Cartesian';\nimport { invert } from 'zrender/lib/core/matrix';\nimport { applyTransform } from 'zrender/lib/core/vector';\nexport var cartesian2DDimensions = ['x', 'y'];\n\nfunction canCalculateAffineTransform(scale) {\n  return scale.type === 'interval' || scale.type === 'time';\n}\n\nvar Cartesian2D = function (_super) {\n  __extends(Cartesian2D, _super);\n\n  function Cartesian2D() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'cartesian2d';\n    _this.dimensions = cartesian2DDimensions;\n    return _this;\n  }\n\n  Cartesian2D.prototype.calcAffineTransform = function () {\n    this._transform = this._invTransform = null;\n    var xAxisScale = this.getAxis('x').scale;\n    var yAxisScale = this.getAxis('y').scale;\n\n    if (!canCalculateAffineTransform(xAxisScale) || !canCalculateAffineTransform(yAxisScale)) {\n      return;\n    }\n\n    var xScaleExtent = xAxisScale.getExtent();\n    var yScaleExtent = yAxisScale.getExtent();\n    var start = this.dataToPoint([xScaleExtent[0], yScaleExtent[0]]);\n    var end = this.dataToPoint([xScaleExtent[1], yScaleExtent[1]]);\n    var xScaleSpan = xScaleExtent[1] - xScaleExtent[0];\n    var yScaleSpan = yScaleExtent[1] - yScaleExtent[0];\n\n    if (!xScaleSpan || !yScaleSpan) {\n      return;\n    }\n\n    var scaleX = (end[0] - start[0]) / xScaleSpan;\n    var scaleY = (end[1] - start[1]) / yScaleSpan;\n    var translateX = start[0] - xScaleExtent[0] * scaleX;\n    var translateY = start[1] - yScaleExtent[0] * scaleY;\n    var m = this._transform = [scaleX, 0, 0, scaleY, translateX, translateY];\n    this._invTransform = invert([], m);\n  };\n\n  Cartesian2D.prototype.getBaseAxis = function () {\n    return this.getAxesByScale('ordinal')[0] || this.getAxesByScale('time')[0] || this.getAxis('x');\n  };\n\n  Cartesian2D.prototype.containPoint = function (point) {\n    var axisX = this.getAxis('x');\n    var axisY = this.getAxis('y');\n    return axisX.contain(axisX.toLocalCoord(point[0])) && axisY.contain(axisY.toLocalCoord(point[1]));\n  };\n\n  Cartesian2D.prototype.containData = function (data) {\n    return this.getAxis('x').containData(data[0]) && this.getAxis('y').containData(data[1]);\n  };\n\n  Cartesian2D.prototype.dataToPoint = function (data, reserved, out) {\n    out = out || [];\n    var xVal = data[0];\n    var yVal = data[1];\n\n    if (this._transform && xVal != null && isFinite(xVal) && yVal != null && isFinite(yVal)) {\n      return applyTransform(out, data, this._transform);\n    }\n\n    var xAxis = this.getAxis('x');\n    var yAxis = this.getAxis('y');\n    out[0] = xAxis.toGlobalCoord(xAxis.dataToCoord(xVal));\n    out[1] = yAxis.toGlobalCoord(yAxis.dataToCoord(yVal));\n    return out;\n  };\n\n  Cartesian2D.prototype.clampData = function (data, out) {\n    var xScale = this.getAxis('x').scale;\n    var yScale = this.getAxis('y').scale;\n    var xAxisExtent = xScale.getExtent();\n    var yAxisExtent = yScale.getExtent();\n    var x = xScale.parse(data[0]);\n    var y = yScale.parse(data[1]);\n    out = out || [];\n    out[0] = Math.min(Math.max(Math.min(xAxisExtent[0], xAxisExtent[1]), x), Math.max(xAxisExtent[0], xAxisExtent[1]));\n    out[1] = Math.min(Math.max(Math.min(yAxisExtent[0], yAxisExtent[1]), y), Math.max(yAxisExtent[0], yAxisExtent[1]));\n    return out;\n  };\n\n  Cartesian2D.prototype.pointToData = function (point, out) {\n    out = out || [];\n\n    if (this._invTransform) {\n      return applyTransform(out, point, this._invTransform);\n    }\n\n    var xAxis = this.getAxis('x');\n    var yAxis = this.getAxis('y');\n    out[0] = xAxis.coordToData(xAxis.toLocalCoord(point[0]));\n    out[1] = yAxis.coordToData(yAxis.toLocalCoord(point[1]));\n    return out;\n  };\n\n  Cartesian2D.prototype.getOtherAxis = function (axis) {\n    return this.getAxis(axis.dim === 'x' ? 'y' : 'x');\n  };\n\n  Cartesian2D.prototype.getArea = function () {\n    var xExtent = this.getAxis('x').getGlobalExtent();\n    var yExtent = this.getAxis('y').getGlobalExtent();\n    var x = Math.min(xExtent[0], xExtent[1]);\n    var y = Math.min(yExtent[0], yExtent[1]);\n    var width = Math.max(xExtent[0], xExtent[1]) - x;\n    var height = Math.max(yExtent[0], yExtent[1]) - y;\n    return new BoundingRect(x, y, width, height);\n  };\n\n  return Cartesian2D;\n}(Cartesian);\n\n;\nexport default Cartesian2D;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis';\n\nvar Axis2D = function (_super) {\n  __extends(Axis2D, _super);\n\n  function Axis2D(dim, scale, coordExtent, axisType, position) {\n    var _this = _super.call(this, dim, scale, coordExtent) || this;\n\n    _this.index = 0;\n    _this.type = axisType || 'value';\n    _this.position = position || 'bottom';\n    return _this;\n  }\n\n  Axis2D.prototype.isHorizontal = function () {\n    var position = this.position;\n    return position === 'top' || position === 'bottom';\n  };\n\n  Axis2D.prototype.getGlobalExtent = function (asc) {\n    var ret = this.getExtent();\n    ret[0] = this.toGlobalCoord(ret[0]);\n    ret[1] = this.toGlobalCoord(ret[1]);\n    asc && ret[0] > ret[1] && ret.reverse();\n    return ret;\n  };\n\n  Axis2D.prototype.pointToData = function (point, clamp) {\n    return this.coordToData(this.toLocalCoord(point[this.dim === 'x' ? 0 : 1]), clamp);\n  };\n\n  Axis2D.prototype.setCategorySortInfo = function (info) {\n    if (this.type !== 'category') {\n      return false;\n    }\n\n    this.model.option.categorySortInfo = info;\n    this.scale.setSortInfo(info);\n  };\n\n  return Axis2D;\n}(Axis);\n\nexport default Axis2D;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { SINGLE_REFERRING } from '../../util/model';\nexport function layout(gridModel, axisModel, opt) {\n  opt = opt || {};\n  var grid = gridModel.coordinateSystem;\n  var axis = axisModel.axis;\n  var layout = {};\n  var otherAxisOnZeroOf = axis.getAxesOnZeroOf()[0];\n  var rawAxisPosition = axis.position;\n  var axisPosition = otherAxisOnZeroOf ? 'onZero' : rawAxisPosition;\n  var axisDim = axis.dim;\n  var rect = grid.getRect();\n  var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height];\n  var idx = {\n    left: 0,\n    right: 1,\n    top: 0,\n    bottom: 1,\n    onZero: 2\n  };\n  var axisOffset = axisModel.get('offset') || 0;\n  var posBound = axisDim === 'x' ? [rectBound[2] - axisOffset, rectBound[3] + axisOffset] : [rectBound[0] - axisOffset, rectBound[1] + axisOffset];\n\n  if (otherAxisOnZeroOf) {\n    var onZeroCoord = otherAxisOnZeroOf.toGlobalCoord(otherAxisOnZeroOf.dataToCoord(0));\n    posBound[idx.onZero] = Math.max(Math.min(onZeroCoord, posBound[1]), posBound[0]);\n  }\n\n  layout.position = [axisDim === 'y' ? posBound[idx[axisPosition]] : rectBound[0], axisDim === 'x' ? posBound[idx[axisPosition]] : rectBound[3]];\n  layout.rotation = Math.PI / 2 * (axisDim === 'x' ? 0 : 1);\n  var dirMap = {\n    top: -1,\n    bottom: 1,\n    left: -1,\n    right: 1\n  };\n  layout.labelDirection = layout.tickDirection = layout.nameDirection = dirMap[rawAxisPosition];\n  layout.labelOffset = otherAxisOnZeroOf ? posBound[idx[rawAxisPosition]] - posBound[idx.onZero] : 0;\n\n  if (axisModel.get(['axisTick', 'inside'])) {\n    layout.tickDirection = -layout.tickDirection;\n  }\n\n  if (zrUtil.retrieve(opt.labelInside, axisModel.get(['axisLabel', 'inside']))) {\n    layout.labelDirection = -layout.labelDirection;\n  }\n\n  var labelRotate = axisModel.get(['axisLabel', 'rotate']);\n  layout.labelRotate = axisPosition === 'top' ? -labelRotate : labelRotate;\n  layout.z2 = 1;\n  return layout;\n}\nexport function isCartesian2DSeries(seriesModel) {\n  return seriesModel.get('coordinateSystem') === 'cartesian2d';\n}\nexport function findAxisModels(seriesModel) {\n  var axisModelMap = {\n    xAxisModel: null,\n    yAxisModel: null\n  };\n  zrUtil.each(axisModelMap, function (v, key) {\n    var axisType = key.replace(/Model$/, '');\n    var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!axisModel) {\n        throw new Error(axisType + ' \"' + zrUtil.retrieve3(seriesModel.get(axisType + 'Index'), seriesModel.get(axisType + 'Id'), 0) + '\" not found');\n      }\n    }\n\n    axisModelMap[key] = axisModel;\n  });\n  return axisModelMap;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isObject, each, indexOf, retrieve3 } from 'zrender/lib/core/util';\nimport { getLayoutRect } from '../../util/layout';\nimport { createScaleByModel, ifAxisCrossZero, niceScaleExtent, estimateLabelUnionRect, getDataDimensionsOnAxis } from '../../coord/axisHelper';\nimport Cartesian2D, { cartesian2DDimensions } from './Cartesian2D';\nimport Axis2D from './Axis2D';\nimport { SINGLE_REFERRING } from '../../util/model';\nimport { isCartesian2DSeries, findAxisModels } from './cartesianAxisHelper';\n\nvar Grid = function () {\n  function Grid(gridModel, ecModel, api) {\n    this.type = 'grid';\n    this._coordsMap = {};\n    this._coordsList = [];\n    this._axesMap = {};\n    this._axesList = [];\n    this.axisPointerEnabled = true;\n    this.dimensions = cartesian2DDimensions;\n\n    this._initCartesian(gridModel, ecModel, api);\n\n    this.model = gridModel;\n  }\n\n  Grid.prototype.getRect = function () {\n    return this._rect;\n  };\n\n  Grid.prototype.update = function (ecModel, api) {\n    var axesMap = this._axesMap;\n\n    this._updateScale(ecModel, this.model);\n\n    each(axesMap.x, function (xAxis) {\n      niceScaleExtent(xAxis.scale, xAxis.model);\n    });\n    each(axesMap.y, function (yAxis) {\n      niceScaleExtent(yAxis.scale, yAxis.model);\n    });\n    var onZeroRecords = {};\n    each(axesMap.x, function (xAxis) {\n      fixAxisOnZero(axesMap, 'y', xAxis, onZeroRecords);\n    });\n    each(axesMap.y, function (yAxis) {\n      fixAxisOnZero(axesMap, 'x', yAxis, onZeroRecords);\n    });\n    this.resize(this.model, api);\n  };\n\n  Grid.prototype.resize = function (gridModel, api, ignoreContainLabel) {\n    var boxLayoutParams = gridModel.getBoxLayoutParams();\n    var isContainLabel = !ignoreContainLabel && gridModel.get('containLabel');\n    var gridRect = getLayoutRect(boxLayoutParams, {\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n    this._rect = gridRect;\n    var axesList = this._axesList;\n    adjustAxes();\n\n    if (isContainLabel) {\n      each(axesList, function (axis) {\n        if (!axis.model.get(['axisLabel', 'inside'])) {\n          var labelUnionRect = estimateLabelUnionRect(axis);\n\n          if (labelUnionRect) {\n            var dim = axis.isHorizontal() ? 'height' : 'width';\n            var margin = axis.model.get(['axisLabel', 'margin']);\n            gridRect[dim] -= labelUnionRect[dim] + margin;\n\n            if (axis.position === 'top') {\n              gridRect.y += labelUnionRect.height + margin;\n            } else if (axis.position === 'left') {\n              gridRect.x += labelUnionRect.width + margin;\n            }\n          }\n        }\n      });\n      adjustAxes();\n    }\n\n    each(this._coordsList, function (coord) {\n      coord.calcAffineTransform();\n    });\n\n    function adjustAxes() {\n      each(axesList, function (axis) {\n        var isHorizontal = axis.isHorizontal();\n        var extent = isHorizontal ? [0, gridRect.width] : [0, gridRect.height];\n        var idx = axis.inverse ? 1 : 0;\n        axis.setExtent(extent[idx], extent[1 - idx]);\n        updateAxisTransform(axis, isHorizontal ? gridRect.x : gridRect.y);\n      });\n    }\n  };\n\n  Grid.prototype.getAxis = function (dim, axisIndex) {\n    var axesMapOnDim = this._axesMap[dim];\n\n    if (axesMapOnDim != null) {\n      return axesMapOnDim[axisIndex || 0];\n    }\n  };\n\n  Grid.prototype.getAxes = function () {\n    return this._axesList.slice();\n  };\n\n  Grid.prototype.getCartesian = function (xAxisIndex, yAxisIndex) {\n    if (xAxisIndex != null && yAxisIndex != null) {\n      var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\n      return this._coordsMap[key];\n    }\n\n    if (isObject(xAxisIndex)) {\n      yAxisIndex = xAxisIndex.yAxisIndex;\n      xAxisIndex = xAxisIndex.xAxisIndex;\n    }\n\n    for (var i = 0, coordList = this._coordsList; i < coordList.length; i++) {\n      if (coordList[i].getAxis('x').index === xAxisIndex || coordList[i].getAxis('y').index === yAxisIndex) {\n        return coordList[i];\n      }\n    }\n  };\n\n  Grid.prototype.getCartesians = function () {\n    return this._coordsList.slice();\n  };\n\n  Grid.prototype.convertToPixel = function (ecModel, finder, value) {\n    var target = this._findConvertTarget(finder);\n\n    return target.cartesian ? target.cartesian.dataToPoint(value) : target.axis ? target.axis.toGlobalCoord(target.axis.dataToCoord(value)) : null;\n  };\n\n  Grid.prototype.convertFromPixel = function (ecModel, finder, value) {\n    var target = this._findConvertTarget(finder);\n\n    return target.cartesian ? target.cartesian.pointToData(value) : target.axis ? target.axis.coordToData(target.axis.toLocalCoord(value)) : null;\n  };\n\n  Grid.prototype._findConvertTarget = function (finder) {\n    var seriesModel = finder.seriesModel;\n    var xAxisModel = finder.xAxisModel || seriesModel && seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0];\n    var yAxisModel = finder.yAxisModel || seriesModel && seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0];\n    var gridModel = finder.gridModel;\n    var coordsList = this._coordsList;\n    var cartesian;\n    var axis;\n\n    if (seriesModel) {\n      cartesian = seriesModel.coordinateSystem;\n      indexOf(coordsList, cartesian) < 0 && (cartesian = null);\n    } else if (xAxisModel && yAxisModel) {\n      cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n    } else if (xAxisModel) {\n      axis = this.getAxis('x', xAxisModel.componentIndex);\n    } else if (yAxisModel) {\n      axis = this.getAxis('y', yAxisModel.componentIndex);\n    } else if (gridModel) {\n      var grid = gridModel.coordinateSystem;\n\n      if (grid === this) {\n        cartesian = this._coordsList[0];\n      }\n    }\n\n    return {\n      cartesian: cartesian,\n      axis: axis\n    };\n  };\n\n  Grid.prototype.containPoint = function (point) {\n    var coord = this._coordsList[0];\n\n    if (coord) {\n      return coord.containPoint(point);\n    }\n  };\n\n  Grid.prototype._initCartesian = function (gridModel, ecModel, api) {\n    var _this = this;\n\n    var grid = this;\n    var axisPositionUsed = {\n      left: false,\n      right: false,\n      top: false,\n      bottom: false\n    };\n    var axesMap = {\n      x: {},\n      y: {}\n    };\n    var axesCount = {\n      x: 0,\n      y: 0\n    };\n    ecModel.eachComponent('xAxis', createAxisCreator('x'), this);\n    ecModel.eachComponent('yAxis', createAxisCreator('y'), this);\n\n    if (!axesCount.x || !axesCount.y) {\n      this._axesMap = {};\n      this._axesList = [];\n      return;\n    }\n\n    this._axesMap = axesMap;\n    each(axesMap.x, function (xAxis, xAxisIndex) {\n      each(axesMap.y, function (yAxis, yAxisIndex) {\n        var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\n        var cartesian = new Cartesian2D(key);\n        cartesian.master = _this;\n        cartesian.model = gridModel;\n        _this._coordsMap[key] = cartesian;\n\n        _this._coordsList.push(cartesian);\n\n        cartesian.addAxis(xAxis);\n        cartesian.addAxis(yAxis);\n      });\n    });\n\n    function createAxisCreator(dimName) {\n      return function (axisModel, idx) {\n        if (!isAxisUsedInTheGrid(axisModel, gridModel)) {\n          return;\n        }\n\n        var axisPosition = axisModel.get('position');\n\n        if (dimName === 'x') {\n          if (axisPosition !== 'top' && axisPosition !== 'bottom') {\n            axisPosition = axisPositionUsed.bottom ? 'top' : 'bottom';\n          }\n        } else {\n          if (axisPosition !== 'left' && axisPosition !== 'right') {\n            axisPosition = axisPositionUsed.left ? 'right' : 'left';\n          }\n        }\n\n        axisPositionUsed[axisPosition] = true;\n        var axis = new Axis2D(dimName, createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisPosition);\n        var isCategory = axis.type === 'category';\n        axis.onBand = isCategory && axisModel.get('boundaryGap');\n        axis.inverse = axisModel.get('inverse');\n        axisModel.axis = axis;\n        axis.model = axisModel;\n        axis.grid = grid;\n        axis.index = idx;\n\n        grid._axesList.push(axis);\n\n        axesMap[dimName][idx] = axis;\n        axesCount[dimName]++;\n      };\n    }\n  };\n\n  Grid.prototype._updateScale = function (ecModel, gridModel) {\n    each(this._axesList, function (axis) {\n      axis.scale.setExtent(Infinity, -Infinity);\n\n      if (axis.type === 'category') {\n        var categorySortInfo = axis.model.get('categorySortInfo');\n        axis.scale.setSortInfo(categorySortInfo);\n      }\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      if (isCartesian2DSeries(seriesModel)) {\n        var axesModelMap = findAxisModels(seriesModel);\n        var xAxisModel = axesModelMap.xAxisModel;\n        var yAxisModel = axesModelMap.yAxisModel;\n\n        if (!isAxisUsedInTheGrid(xAxisModel, gridModel) || !isAxisUsedInTheGrid(yAxisModel, gridModel)) {\n          return;\n        }\n\n        var cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n        var data = seriesModel.getData();\n        var xAxis = cartesian.getAxis('x');\n        var yAxis = cartesian.getAxis('y');\n\n        if (data.type === 'list') {\n          unionExtent(data, xAxis);\n          unionExtent(data, yAxis);\n        }\n      }\n    }, this);\n\n    function unionExtent(data, axis) {\n      each(getDataDimensionsOnAxis(data, axis.dim), function (dim) {\n        axis.scale.unionExtentFromData(data, dim);\n      });\n    }\n  };\n\n  Grid.prototype.getTooltipAxes = function (dim) {\n    var baseAxes = [];\n    var otherAxes = [];\n    each(this.getCartesians(), function (cartesian) {\n      var baseAxis = dim != null && dim !== 'auto' ? cartesian.getAxis(dim) : cartesian.getBaseAxis();\n      var otherAxis = cartesian.getOtherAxis(baseAxis);\n      indexOf(baseAxes, baseAxis) < 0 && baseAxes.push(baseAxis);\n      indexOf(otherAxes, otherAxis) < 0 && otherAxes.push(otherAxis);\n    });\n    return {\n      baseAxes: baseAxes,\n      otherAxes: otherAxes\n    };\n  };\n\n  Grid.create = function (ecModel, api) {\n    var grids = [];\n    ecModel.eachComponent('grid', function (gridModel, idx) {\n      var grid = new Grid(gridModel, ecModel, api);\n      grid.name = 'grid_' + idx;\n      grid.resize(gridModel, api, true);\n      gridModel.coordinateSystem = grid;\n      grids.push(grid);\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      if (!isCartesian2DSeries(seriesModel)) {\n        return;\n      }\n\n      var axesModelMap = findAxisModels(seriesModel);\n      var xAxisModel = axesModelMap.xAxisModel;\n      var yAxisModel = axesModelMap.yAxisModel;\n      var gridModel = xAxisModel.getCoordSysModel();\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (!gridModel) {\n          throw new Error('Grid \"' + retrieve3(xAxisModel.get('gridIndex'), xAxisModel.get('gridId'), 0) + '\" not found');\n        }\n\n        if (xAxisModel.getCoordSysModel() !== yAxisModel.getCoordSysModel()) {\n          throw new Error('xAxis and yAxis must use the same grid');\n        }\n      }\n\n      var grid = gridModel.coordinateSystem;\n      seriesModel.coordinateSystem = grid.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n    });\n    return grids;\n  };\n\n  Grid.dimensions = cartesian2DDimensions;\n  return Grid;\n}();\n\nfunction isAxisUsedInTheGrid(axisModel, gridModel) {\n  return axisModel.getCoordSysModel() === gridModel;\n}\n\nfunction fixAxisOnZero(axesMap, otherAxisDim, axis, onZeroRecords) {\n  axis.getAxesOnZeroOf = function () {\n    return otherAxisOnZeroOf ? [otherAxisOnZeroOf] : [];\n  };\n\n  var otherAxes = axesMap[otherAxisDim];\n  var otherAxisOnZeroOf;\n  var axisModel = axis.model;\n  var onZero = axisModel.get(['axisLine', 'onZero']);\n  var onZeroAxisIndex = axisModel.get(['axisLine', 'onZeroAxisIndex']);\n\n  if (!onZero) {\n    return;\n  }\n\n  if (onZeroAxisIndex != null) {\n    if (canOnZeroToAxis(otherAxes[onZeroAxisIndex])) {\n      otherAxisOnZeroOf = otherAxes[onZeroAxisIndex];\n    }\n  } else {\n    for (var idx in otherAxes) {\n      if (otherAxes.hasOwnProperty(idx) && canOnZeroToAxis(otherAxes[idx]) && !onZeroRecords[getOnZeroRecordKey(otherAxes[idx])]) {\n        otherAxisOnZeroOf = otherAxes[idx];\n        break;\n      }\n    }\n  }\n\n  if (otherAxisOnZeroOf) {\n    onZeroRecords[getOnZeroRecordKey(otherAxisOnZeroOf)] = true;\n  }\n\n  function getOnZeroRecordKey(axis) {\n    return axis.dim + '_' + axis.index;\n  }\n}\n\nfunction canOnZeroToAxis(axis) {\n  return axis && axis.type !== 'category' && axis.type !== 'time' && ifAxisCrossZero(axis);\n}\n\nfunction updateAxisTransform(axis, coordBase) {\n  var axisExtent = axis.getExtent();\n  var axisExtentSum = axisExtent[0] + axisExtent[1];\n  axis.toGlobalCoord = axis.dim === 'x' ? function (coord) {\n    return coord + coordBase;\n  } : function (coord) {\n    return axisExtentSum - coord + coordBase;\n  };\n  axis.toLocalCoord = axis.dim === 'x' ? function (coord) {\n    return coord - coordBase;\n  } : function (coord) {\n    return axisExtentSum - coord + coordBase;\n  };\n}\n\nexport default Grid;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { retrieve, defaults, extend, each, isObject } from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { createTextStyle } from '../../label/labelStyle';\nimport Model from '../../model/Model';\nimport { isRadianAroundZero, remRadian } from '../../util/number';\nimport { createSymbol } from '../../util/symbol';\nimport * as matrixUtil from 'zrender/lib/core/matrix';\nimport { applyTransform as v2ApplyTransform } from 'zrender/lib/core/vector';\nimport { shouldShowAllLabels } from '../../coord/axisHelper';\nvar PI = Math.PI;\n\nvar AxisBuilder = function () {\n  function AxisBuilder(axisModel, opt) {\n    this.group = new graphic.Group();\n    this.opt = opt;\n    this.axisModel = axisModel;\n    defaults(opt, {\n      labelOffset: 0,\n      nameDirection: 1,\n      tickDirection: 1,\n      labelDirection: 1,\n      silent: true,\n      handleAutoShown: function () {\n        return true;\n      }\n    });\n    var transformGroup = new graphic.Group({\n      x: opt.position[0],\n      y: opt.position[1],\n      rotation: opt.rotation\n    });\n    transformGroup.updateTransform();\n    this._transformGroup = transformGroup;\n  }\n\n  AxisBuilder.prototype.hasBuilder = function (name) {\n    return !!builders[name];\n  };\n\n  AxisBuilder.prototype.add = function (name) {\n    builders[name](this.opt, this.axisModel, this.group, this._transformGroup);\n  };\n\n  AxisBuilder.prototype.getGroup = function () {\n    return this.group;\n  };\n\n  AxisBuilder.innerTextLayout = function (axisRotation, textRotation, direction) {\n    var rotationDiff = remRadian(textRotation - axisRotation);\n    var textAlign;\n    var textVerticalAlign;\n\n    if (isRadianAroundZero(rotationDiff)) {\n      textVerticalAlign = direction > 0 ? 'top' : 'bottom';\n      textAlign = 'center';\n    } else if (isRadianAroundZero(rotationDiff - PI)) {\n      textVerticalAlign = direction > 0 ? 'bottom' : 'top';\n      textAlign = 'center';\n    } else {\n      textVerticalAlign = 'middle';\n\n      if (rotationDiff > 0 && rotationDiff < PI) {\n        textAlign = direction > 0 ? 'right' : 'left';\n      } else {\n        textAlign = direction > 0 ? 'left' : 'right';\n      }\n    }\n\n    return {\n      rotation: rotationDiff,\n      textAlign: textAlign,\n      textVerticalAlign: textVerticalAlign\n    };\n  };\n\n  AxisBuilder.makeAxisEventDataBase = function (axisModel) {\n    var eventData = {\n      componentType: axisModel.mainType,\n      componentIndex: axisModel.componentIndex\n    };\n    eventData[axisModel.mainType + 'Index'] = axisModel.componentIndex;\n    return eventData;\n  };\n\n  AxisBuilder.isLabelSilent = function (axisModel) {\n    var tooltipOpt = axisModel.get('tooltip');\n    return axisModel.get('silent') || !(axisModel.get('triggerEvent') || tooltipOpt && tooltipOpt.show);\n  };\n\n  return AxisBuilder;\n}();\n\n;\nvar builders = {\n  axisLine: function (opt, axisModel, group, transformGroup) {\n    var shown = axisModel.get(['axisLine', 'show']);\n\n    if (shown === 'auto' && opt.handleAutoShown) {\n      shown = opt.handleAutoShown('axisLine');\n    }\n\n    if (!shown) {\n      return;\n    }\n\n    var extent = axisModel.axis.getExtent();\n    var matrix = transformGroup.transform;\n    var pt1 = [extent[0], 0];\n    var pt2 = [extent[1], 0];\n\n    if (matrix) {\n      v2ApplyTransform(pt1, pt1, matrix);\n      v2ApplyTransform(pt2, pt2, matrix);\n    }\n\n    var lineStyle = extend({\n      lineCap: 'round'\n    }, axisModel.getModel(['axisLine', 'lineStyle']).getLineStyle());\n    var line = new graphic.Line({\n      subPixelOptimize: true,\n      shape: {\n        x1: pt1[0],\n        y1: pt1[1],\n        x2: pt2[0],\n        y2: pt2[1]\n      },\n      style: lineStyle,\n      strokeContainThreshold: opt.strokeContainThreshold || 5,\n      silent: true,\n      z2: 1\n    });\n    line.anid = 'line';\n    group.add(line);\n    var arrows = axisModel.get(['axisLine', 'symbol']);\n    var arrowSize = axisModel.get(['axisLine', 'symbolSize']);\n    var arrowOffset = axisModel.get(['axisLine', 'symbolOffset']) || 0;\n\n    if (typeof arrowOffset === 'number') {\n      arrowOffset = [arrowOffset, arrowOffset];\n    }\n\n    if (arrows != null) {\n      if (typeof arrows === 'string') {\n        arrows = [arrows, arrows];\n      }\n\n      if (typeof arrowSize === 'string' || typeof arrowSize === 'number') {\n        arrowSize = [arrowSize, arrowSize];\n      }\n\n      var symbolWidth_1 = arrowSize[0];\n      var symbolHeight_1 = arrowSize[1];\n      each([{\n        rotate: opt.rotation + Math.PI / 2,\n        offset: arrowOffset[0],\n        r: 0\n      }, {\n        rotate: opt.rotation - Math.PI / 2,\n        offset: arrowOffset[1],\n        r: Math.sqrt((pt1[0] - pt2[0]) * (pt1[0] - pt2[0]) + (pt1[1] - pt2[1]) * (pt1[1] - pt2[1]))\n      }], function (point, index) {\n        if (arrows[index] !== 'none' && arrows[index] != null) {\n          var symbol = createSymbol(arrows[index], -symbolWidth_1 / 2, -symbolHeight_1 / 2, symbolWidth_1, symbolHeight_1, lineStyle.stroke, true);\n          var r = point.r + point.offset;\n          symbol.attr({\n            rotation: point.rotate,\n            x: pt1[0] + r * Math.cos(opt.rotation),\n            y: pt1[1] - r * Math.sin(opt.rotation),\n            silent: true,\n            z2: 11\n          });\n          group.add(symbol);\n        }\n      });\n    }\n  },\n  axisTickLabel: function (opt, axisModel, group, transformGroup) {\n    var ticksEls = buildAxisMajorTicks(group, transformGroup, axisModel, opt);\n    var labelEls = buildAxisLabel(group, transformGroup, axisModel, opt);\n    fixMinMaxLabelShow(axisModel, labelEls, ticksEls);\n    buildAxisMinorTicks(group, transformGroup, axisModel, opt.tickDirection);\n  },\n  axisName: function (opt, axisModel, group, transformGroup) {\n    var name = retrieve(opt.axisName, axisModel.get('name'));\n\n    if (!name) {\n      return;\n    }\n\n    var nameLocation = axisModel.get('nameLocation');\n    var nameDirection = opt.nameDirection;\n    var textStyleModel = axisModel.getModel('nameTextStyle');\n    var gap = axisModel.get('nameGap') || 0;\n    var extent = axisModel.axis.getExtent();\n    var gapSignal = extent[0] > extent[1] ? -1 : 1;\n    var pos = [nameLocation === 'start' ? extent[0] - gapSignal * gap : nameLocation === 'end' ? extent[1] + gapSignal * gap : (extent[0] + extent[1]) / 2, isNameLocationCenter(nameLocation) ? opt.labelOffset + nameDirection * gap : 0];\n    var labelLayout;\n    var nameRotation = axisModel.get('nameRotate');\n\n    if (nameRotation != null) {\n      nameRotation = nameRotation * PI / 180;\n    }\n\n    var axisNameAvailableWidth;\n\n    if (isNameLocationCenter(nameLocation)) {\n      labelLayout = AxisBuilder.innerTextLayout(opt.rotation, nameRotation != null ? nameRotation : opt.rotation, nameDirection);\n    } else {\n      labelLayout = endTextLayout(opt.rotation, nameLocation, nameRotation || 0, extent);\n      axisNameAvailableWidth = opt.axisNameAvailableWidth;\n\n      if (axisNameAvailableWidth != null) {\n        axisNameAvailableWidth = Math.abs(axisNameAvailableWidth / Math.sin(labelLayout.rotation));\n        !isFinite(axisNameAvailableWidth) && (axisNameAvailableWidth = null);\n      }\n    }\n\n    var textFont = textStyleModel.getFont();\n    var truncateOpt = axisModel.get('nameTruncate', true) || {};\n    var ellipsis = truncateOpt.ellipsis;\n    var maxWidth = retrieve(opt.nameTruncateMaxWidth, truncateOpt.maxWidth, axisNameAvailableWidth);\n    var tooltipOpt = axisModel.get('tooltip', true);\n    var mainType = axisModel.mainType;\n    var formatterParams = {\n      componentType: mainType,\n      name: name,\n      $vars: ['name']\n    };\n    formatterParams[mainType + 'Index'] = axisModel.componentIndex;\n    var textEl = new graphic.Text({\n      x: pos[0],\n      y: pos[1],\n      rotation: labelLayout.rotation,\n      silent: AxisBuilder.isLabelSilent(axisModel),\n      style: createTextStyle(textStyleModel, {\n        text: name,\n        font: textFont,\n        overflow: 'truncate',\n        width: maxWidth,\n        ellipsis: ellipsis,\n        fill: textStyleModel.getTextColor() || axisModel.get(['axisLine', 'lineStyle', 'color']),\n        align: textStyleModel.get('align') || labelLayout.textAlign,\n        verticalAlign: textStyleModel.get('verticalAlign') || labelLayout.textVerticalAlign\n      }),\n      z2: 1\n    });\n    textEl.tooltip = tooltipOpt && tooltipOpt.show ? extend({\n      content: name,\n      formatter: function () {\n        return name;\n      },\n      formatterParams: formatterParams\n    }, tooltipOpt) : null;\n    textEl.__fullText = name;\n    textEl.anid = 'name';\n\n    if (axisModel.get('triggerEvent')) {\n      var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\n      eventData.targetType = 'axisName';\n      eventData.name = name;\n      getECData(textEl).eventData = eventData;\n    }\n\n    transformGroup.add(textEl);\n    textEl.updateTransform();\n    group.add(textEl);\n    textEl.decomposeTransform();\n  }\n};\n\nfunction endTextLayout(rotation, textPosition, textRotate, extent) {\n  var rotationDiff = remRadian(textRotate - rotation);\n  var textAlign;\n  var textVerticalAlign;\n  var inverse = extent[0] > extent[1];\n  var onLeft = textPosition === 'start' && !inverse || textPosition !== 'start' && inverse;\n\n  if (isRadianAroundZero(rotationDiff - PI / 2)) {\n    textVerticalAlign = onLeft ? 'bottom' : 'top';\n    textAlign = 'center';\n  } else if (isRadianAroundZero(rotationDiff - PI * 1.5)) {\n    textVerticalAlign = onLeft ? 'top' : 'bottom';\n    textAlign = 'center';\n  } else {\n    textVerticalAlign = 'middle';\n\n    if (rotationDiff < PI * 1.5 && rotationDiff > PI / 2) {\n      textAlign = onLeft ? 'left' : 'right';\n    } else {\n      textAlign = onLeft ? 'right' : 'left';\n    }\n  }\n\n  return {\n    rotation: rotationDiff,\n    textAlign: textAlign,\n    textVerticalAlign: textVerticalAlign\n  };\n}\n\nfunction fixMinMaxLabelShow(axisModel, labelEls, tickEls) {\n  if (shouldShowAllLabels(axisModel.axis)) {\n    return;\n  }\n\n  var showMinLabel = axisModel.get(['axisLabel', 'showMinLabel']);\n  var showMaxLabel = axisModel.get(['axisLabel', 'showMaxLabel']);\n  labelEls = labelEls || [];\n  tickEls = tickEls || [];\n  var firstLabel = labelEls[0];\n  var nextLabel = labelEls[1];\n  var lastLabel = labelEls[labelEls.length - 1];\n  var prevLabel = labelEls[labelEls.length - 2];\n  var firstTick = tickEls[0];\n  var nextTick = tickEls[1];\n  var lastTick = tickEls[tickEls.length - 1];\n  var prevTick = tickEls[tickEls.length - 2];\n\n  if (showMinLabel === false) {\n    ignoreEl(firstLabel);\n    ignoreEl(firstTick);\n  } else if (isTwoLabelOverlapped(firstLabel, nextLabel)) {\n    if (showMinLabel) {\n      ignoreEl(nextLabel);\n      ignoreEl(nextTick);\n    } else {\n      ignoreEl(firstLabel);\n      ignoreEl(firstTick);\n    }\n  }\n\n  if (showMaxLabel === false) {\n    ignoreEl(lastLabel);\n    ignoreEl(lastTick);\n  } else if (isTwoLabelOverlapped(prevLabel, lastLabel)) {\n    if (showMaxLabel) {\n      ignoreEl(prevLabel);\n      ignoreEl(prevTick);\n    } else {\n      ignoreEl(lastLabel);\n      ignoreEl(lastTick);\n    }\n  }\n}\n\nfunction ignoreEl(el) {\n  el && (el.ignore = true);\n}\n\nfunction isTwoLabelOverlapped(current, next) {\n  var firstRect = current && current.getBoundingRect().clone();\n  var nextRect = next && next.getBoundingRect().clone();\n\n  if (!firstRect || !nextRect) {\n    return;\n  }\n\n  var mRotationBack = matrixUtil.identity([]);\n  matrixUtil.rotate(mRotationBack, mRotationBack, -current.rotation);\n  firstRect.applyTransform(matrixUtil.mul([], mRotationBack, current.getLocalTransform()));\n  nextRect.applyTransform(matrixUtil.mul([], mRotationBack, next.getLocalTransform()));\n  return firstRect.intersect(nextRect);\n}\n\nfunction isNameLocationCenter(nameLocation) {\n  return nameLocation === 'middle' || nameLocation === 'center';\n}\n\nfunction createTicks(ticksCoords, tickTransform, tickEndCoord, tickLineStyle, anidPrefix) {\n  var tickEls = [];\n  var pt1 = [];\n  var pt2 = [];\n\n  for (var i = 0; i < ticksCoords.length; i++) {\n    var tickCoord = ticksCoords[i].coord;\n    pt1[0] = tickCoord;\n    pt1[1] = 0;\n    pt2[0] = tickCoord;\n    pt2[1] = tickEndCoord;\n\n    if (tickTransform) {\n      v2ApplyTransform(pt1, pt1, tickTransform);\n      v2ApplyTransform(pt2, pt2, tickTransform);\n    }\n\n    var tickEl = new graphic.Line({\n      subPixelOptimize: true,\n      shape: {\n        x1: pt1[0],\n        y1: pt1[1],\n        x2: pt2[0],\n        y2: pt2[1]\n      },\n      style: tickLineStyle,\n      z2: 2,\n      autoBatch: true,\n      silent: true\n    });\n    tickEl.anid = anidPrefix + '_' + ticksCoords[i].tickValue;\n    tickEls.push(tickEl);\n  }\n\n  return tickEls;\n}\n\nfunction buildAxisMajorTicks(group, transformGroup, axisModel, opt) {\n  var axis = axisModel.axis;\n  var tickModel = axisModel.getModel('axisTick');\n  var shown = tickModel.get('show');\n\n  if (shown === 'auto' && opt.handleAutoShown) {\n    shown = opt.handleAutoShown('axisTick');\n  }\n\n  if (!shown || axis.scale.isBlank()) {\n    return;\n  }\n\n  var lineStyleModel = tickModel.getModel('lineStyle');\n  var tickEndCoord = opt.tickDirection * tickModel.get('length');\n  var ticksCoords = axis.getTicksCoords();\n  var ticksEls = createTicks(ticksCoords, transformGroup.transform, tickEndCoord, defaults(lineStyleModel.getLineStyle(), {\n    stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\n  }), 'ticks');\n\n  for (var i = 0; i < ticksEls.length; i++) {\n    group.add(ticksEls[i]);\n  }\n\n  return ticksEls;\n}\n\nfunction buildAxisMinorTicks(group, transformGroup, axisModel, tickDirection) {\n  var axis = axisModel.axis;\n  var minorTickModel = axisModel.getModel('minorTick');\n\n  if (!minorTickModel.get('show') || axis.scale.isBlank()) {\n    return;\n  }\n\n  var minorTicksCoords = axis.getMinorTicksCoords();\n\n  if (!minorTicksCoords.length) {\n    return;\n  }\n\n  var lineStyleModel = minorTickModel.getModel('lineStyle');\n  var tickEndCoord = tickDirection * minorTickModel.get('length');\n  var minorTickLineStyle = defaults(lineStyleModel.getLineStyle(), defaults(axisModel.getModel('axisTick').getLineStyle(), {\n    stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\n  }));\n\n  for (var i = 0; i < minorTicksCoords.length; i++) {\n    var minorTicksEls = createTicks(minorTicksCoords[i], transformGroup.transform, tickEndCoord, minorTickLineStyle, 'minorticks_' + i);\n\n    for (var k = 0; k < minorTicksEls.length; k++) {\n      group.add(minorTicksEls[k]);\n    }\n  }\n}\n\nfunction buildAxisLabel(group, transformGroup, axisModel, opt) {\n  var axis = axisModel.axis;\n  var show = retrieve(opt.axisLabelShow, axisModel.get(['axisLabel', 'show']));\n\n  if (!show || axis.scale.isBlank()) {\n    return;\n  }\n\n  var labelModel = axisModel.getModel('axisLabel');\n  var labelMargin = labelModel.get('margin');\n  var labels = axis.getViewLabels();\n  var labelRotation = (retrieve(opt.labelRotate, labelModel.get('rotate')) || 0) * PI / 180;\n  var labelLayout = AxisBuilder.innerTextLayout(opt.rotation, labelRotation, opt.labelDirection);\n  var rawCategoryData = axisModel.getCategories && axisModel.getCategories(true);\n  var labelEls = [];\n  var silent = AxisBuilder.isLabelSilent(axisModel);\n  var triggerEvent = axisModel.get('triggerEvent');\n  each(labels, function (labelItem, index) {\n    var tickValue = axis.scale.type === 'ordinal' ? axis.scale.getRawOrdinalNumber(labelItem.tickValue) : labelItem.tickValue;\n    var formattedLabel = labelItem.formattedLabel;\n    var rawLabel = labelItem.rawLabel;\n    var itemLabelModel = labelModel;\n\n    if (rawCategoryData && rawCategoryData[tickValue]) {\n      var rawCategoryItem = rawCategoryData[tickValue];\n\n      if (isObject(rawCategoryItem) && rawCategoryItem.textStyle) {\n        itemLabelModel = new Model(rawCategoryItem.textStyle, labelModel, axisModel.ecModel);\n      }\n    }\n\n    var textColor = itemLabelModel.getTextColor() || axisModel.get(['axisLine', 'lineStyle', 'color']);\n    var tickCoord = axis.dataToCoord(tickValue);\n    var textEl = new graphic.Text({\n      x: tickCoord,\n      y: opt.labelOffset + opt.labelDirection * labelMargin,\n      rotation: labelLayout.rotation,\n      silent: silent,\n      z2: 10,\n      style: createTextStyle(itemLabelModel, {\n        text: formattedLabel,\n        align: itemLabelModel.getShallow('align', true) || labelLayout.textAlign,\n        verticalAlign: itemLabelModel.getShallow('verticalAlign', true) || itemLabelModel.getShallow('baseline', true) || labelLayout.textVerticalAlign,\n        fill: typeof textColor === 'function' ? textColor(axis.type === 'category' ? rawLabel : axis.type === 'value' ? tickValue + '' : tickValue, index) : textColor\n      })\n    });\n    textEl.anid = 'label_' + tickValue;\n\n    if (triggerEvent) {\n      var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\n      eventData.targetType = 'axisLabel';\n      eventData.value = rawLabel;\n      getECData(textEl).eventData = eventData;\n    }\n\n    transformGroup.add(textEl);\n    textEl.updateTransform();\n    labelEls.push(textEl);\n    group.add(textEl);\n    textEl.decomposeTransform();\n  });\n  return labelEls;\n}\n\nexport default AxisBuilder;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Model from '../../model/Model';\nimport { each, curry, clone, defaults, isArray, indexOf } from 'zrender/lib/core/util';\nexport function collect(ecModel, api) {\n  var result = {\n    axesInfo: {},\n    seriesInvolved: false,\n    coordSysAxesInfo: {},\n    coordSysMap: {}\n  };\n  collectAxesInfo(result, ecModel, api);\n  result.seriesInvolved && collectSeriesInfo(result, ecModel);\n  return result;\n}\n\nfunction collectAxesInfo(result, ecModel, api) {\n  var globalTooltipModel = ecModel.getComponent('tooltip');\n  var globalAxisPointerModel = ecModel.getComponent('axisPointer');\n  var linksOption = globalAxisPointerModel.get('link', true) || [];\n  var linkGroups = [];\n  each(api.getCoordinateSystems(), function (coordSys) {\n    if (!coordSys.axisPointerEnabled) {\n      return;\n    }\n\n    var coordSysKey = makeKey(coordSys.model);\n    var axesInfoInCoordSys = result.coordSysAxesInfo[coordSysKey] = {};\n    result.coordSysMap[coordSysKey] = coordSys;\n    var coordSysModel = coordSys.model;\n    var baseTooltipModel = coordSysModel.getModel('tooltip', globalTooltipModel);\n    each(coordSys.getAxes(), curry(saveTooltipAxisInfo, false, null));\n\n    if (coordSys.getTooltipAxes && globalTooltipModel && baseTooltipModel.get('show')) {\n      var triggerAxis = baseTooltipModel.get('trigger') === 'axis';\n      var cross = baseTooltipModel.get(['axisPointer', 'type']) === 'cross';\n      var tooltipAxes = coordSys.getTooltipAxes(baseTooltipModel.get(['axisPointer', 'axis']));\n\n      if (triggerAxis || cross) {\n        each(tooltipAxes.baseAxes, curry(saveTooltipAxisInfo, cross ? 'cross' : true, triggerAxis));\n      }\n\n      if (cross) {\n        each(tooltipAxes.otherAxes, curry(saveTooltipAxisInfo, 'cross', false));\n      }\n    }\n\n    function saveTooltipAxisInfo(fromTooltip, triggerTooltip, axis) {\n      var axisPointerModel = axis.model.getModel('axisPointer', globalAxisPointerModel);\n      var axisPointerShow = axisPointerModel.get('show');\n\n      if (!axisPointerShow || axisPointerShow === 'auto' && !fromTooltip && !isHandleTrigger(axisPointerModel)) {\n        return;\n      }\n\n      if (triggerTooltip == null) {\n        triggerTooltip = axisPointerModel.get('triggerTooltip');\n      }\n\n      axisPointerModel = fromTooltip ? makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) : axisPointerModel;\n      var snap = axisPointerModel.get('snap');\n      var axisKey = makeKey(axis.model);\n      var involveSeries = triggerTooltip || snap || axis.type === 'category';\n      var axisInfo = result.axesInfo[axisKey] = {\n        key: axisKey,\n        axis: axis,\n        coordSys: coordSys,\n        axisPointerModel: axisPointerModel,\n        triggerTooltip: triggerTooltip,\n        involveSeries: involveSeries,\n        snap: snap,\n        useHandle: isHandleTrigger(axisPointerModel),\n        seriesModels: [],\n        linkGroup: null\n      };\n      axesInfoInCoordSys[axisKey] = axisInfo;\n      result.seriesInvolved = result.seriesInvolved || involveSeries;\n      var groupIndex = getLinkGroupIndex(linksOption, axis);\n\n      if (groupIndex != null) {\n        var linkGroup = linkGroups[groupIndex] || (linkGroups[groupIndex] = {\n          axesInfo: {}\n        });\n        linkGroup.axesInfo[axisKey] = axisInfo;\n        linkGroup.mapper = linksOption[groupIndex].mapper;\n        axisInfo.linkGroup = linkGroup;\n      }\n    }\n  });\n}\n\nfunction makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) {\n  var tooltipAxisPointerModel = baseTooltipModel.getModel('axisPointer');\n  var fields = ['type', 'snap', 'lineStyle', 'shadowStyle', 'label', 'animation', 'animationDurationUpdate', 'animationEasingUpdate', 'z'];\n  var volatileOption = {};\n  each(fields, function (field) {\n    volatileOption[field] = clone(tooltipAxisPointerModel.get(field));\n  });\n  volatileOption.snap = axis.type !== 'category' && !!triggerTooltip;\n\n  if (tooltipAxisPointerModel.get('type') === 'cross') {\n    volatileOption.type = 'line';\n  }\n\n  var labelOption = volatileOption.label || (volatileOption.label = {});\n  labelOption.show == null && (labelOption.show = false);\n\n  if (fromTooltip === 'cross') {\n    var tooltipAxisPointerLabelShow = tooltipAxisPointerModel.get(['label', 'show']);\n    labelOption.show = tooltipAxisPointerLabelShow != null ? tooltipAxisPointerLabelShow : true;\n\n    if (!triggerTooltip) {\n      var crossStyle = volatileOption.lineStyle = tooltipAxisPointerModel.get('crossStyle');\n      crossStyle && defaults(labelOption, crossStyle.textStyle);\n    }\n  }\n\n  return axis.model.getModel('axisPointer', new Model(volatileOption, globalAxisPointerModel, ecModel));\n}\n\nfunction collectSeriesInfo(result, ecModel) {\n  ecModel.eachSeries(function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n    var seriesTooltipTrigger = seriesModel.get(['tooltip', 'trigger'], true);\n    var seriesTooltipShow = seriesModel.get(['tooltip', 'show'], true);\n\n    if (!coordSys || seriesTooltipTrigger === 'none' || seriesTooltipTrigger === false || seriesTooltipTrigger === 'item' || seriesTooltipShow === false || seriesModel.get(['axisPointer', 'show'], true) === false) {\n      return;\n    }\n\n    each(result.coordSysAxesInfo[makeKey(coordSys.model)], function (axisInfo) {\n      var axis = axisInfo.axis;\n\n      if (coordSys.getAxis(axis.dim) === axis) {\n        axisInfo.seriesModels.push(seriesModel);\n        axisInfo.seriesDataCount == null && (axisInfo.seriesDataCount = 0);\n        axisInfo.seriesDataCount += seriesModel.getData().count();\n      }\n    });\n  });\n}\n\nfunction getLinkGroupIndex(linksOption, axis) {\n  var axisModel = axis.model;\n  var dim = axis.dim;\n\n  for (var i = 0; i < linksOption.length; i++) {\n    var linkOption = linksOption[i] || {};\n\n    if (checkPropInLink(linkOption[dim + 'AxisId'], axisModel.id) || checkPropInLink(linkOption[dim + 'AxisIndex'], axisModel.componentIndex) || checkPropInLink(linkOption[dim + 'AxisName'], axisModel.name)) {\n      return i;\n    }\n  }\n}\n\nfunction checkPropInLink(linkPropValue, axisPropValue) {\n  return linkPropValue === 'all' || isArray(linkPropValue) && indexOf(linkPropValue, axisPropValue) >= 0 || linkPropValue === axisPropValue;\n}\n\nexport function fixValue(axisModel) {\n  var axisInfo = getAxisInfo(axisModel);\n\n  if (!axisInfo) {\n    return;\n  }\n\n  var axisPointerModel = axisInfo.axisPointerModel;\n  var scale = axisInfo.axis.scale;\n  var option = axisPointerModel.option;\n  var status = axisPointerModel.get('status');\n  var value = axisPointerModel.get('value');\n\n  if (value != null) {\n    value = scale.parse(value);\n  }\n\n  var useHandle = isHandleTrigger(axisPointerModel);\n\n  if (status == null) {\n    option.status = useHandle ? 'show' : 'hide';\n  }\n\n  var extent = scale.getExtent().slice();\n  extent[0] > extent[1] && extent.reverse();\n\n  if (value == null || value > extent[1]) {\n    value = extent[1];\n  }\n\n  if (value < extent[0]) {\n    value = extent[0];\n  }\n\n  option.value = value;\n\n  if (useHandle) {\n    option.status = axisInfo.axis.scale.isBlank() ? 'hide' : 'show';\n  }\n}\nexport function getAxisInfo(axisModel) {\n  var coordSysAxesInfo = (axisModel.ecModel.getComponent('axisPointer') || {}).coordSysAxesInfo;\n  return coordSysAxesInfo && coordSysAxesInfo.axesInfo[makeKey(axisModel)];\n}\nexport function getAxisPointerModel(axisModel) {\n  var axisInfo = getAxisInfo(axisModel);\n  return axisInfo && axisInfo.axisPointerModel;\n}\n\nfunction isHandleTrigger(axisPointerModel) {\n  return !!axisPointerModel.get(['handle', 'show']);\n}\n\nexport function makeKey(model) {\n  return model.type + '||' + model.id;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as axisPointerModelHelper from '../axisPointer/modelHelper';\nimport ComponentView from '../../view/Component';\nvar axisPointerClazz = {};\n\nvar AxisView = function (_super) {\n  __extends(AxisView, _super);\n\n  function AxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = AxisView.type;\n    return _this;\n  }\n\n  AxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n    this.axisPointerClass && axisPointerModelHelper.fixValue(axisModel);\n\n    _super.prototype.render.apply(this, arguments);\n\n    this._doUpdateAxisPointerClass(axisModel, api, true);\n  };\n\n  AxisView.prototype.updateAxisPointer = function (axisModel, ecModel, api, payload) {\n    this._doUpdateAxisPointerClass(axisModel, api, false);\n  };\n\n  AxisView.prototype.remove = function (ecModel, api) {\n    var axisPointer = this._axisPointer;\n    axisPointer && axisPointer.remove(api);\n  };\n\n  AxisView.prototype.dispose = function (ecModel, api) {\n    this._disposeAxisPointer(api);\n\n    _super.prototype.dispose.apply(this, arguments);\n  };\n\n  AxisView.prototype._doUpdateAxisPointerClass = function (axisModel, api, forceRender) {\n    var Clazz = AxisView.getAxisPointerClass(this.axisPointerClass);\n\n    if (!Clazz) {\n      return;\n    }\n\n    var axisPointerModel = axisPointerModelHelper.getAxisPointerModel(axisModel);\n    axisPointerModel ? (this._axisPointer || (this._axisPointer = new Clazz())).render(axisModel, axisPointerModel, api, forceRender) : this._disposeAxisPointer(api);\n  };\n\n  AxisView.prototype._disposeAxisPointer = function (api) {\n    this._axisPointer && this._axisPointer.dispose(api);\n    this._axisPointer = null;\n  };\n\n  AxisView.registerAxisPointerClass = function (type, clazz) {\n    if (process.env.NODE_ENV !== 'production') {\n      if (axisPointerClazz[type]) {\n        throw new Error('axisPointer ' + type + ' exists');\n      }\n    }\n\n    axisPointerClazz[type] = clazz;\n  };\n\n  ;\n\n  AxisView.getAxisPointerClass = function (type) {\n    return type && axisPointerClazz[type];\n  };\n\n  ;\n  AxisView.type = 'axis';\n  return AxisView;\n}(ComponentView);\n\nexport default AxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\nexport function rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel) {\n  var axis = axisModel.axis;\n\n  if (axis.scale.isBlank()) {\n    return;\n  }\n\n  var splitAreaModel = axisModel.getModel('splitArea');\n  var areaStyleModel = splitAreaModel.getModel('areaStyle');\n  var areaColors = areaStyleModel.get('color');\n  var gridRect = gridModel.coordinateSystem.getRect();\n  var ticksCoords = axis.getTicksCoords({\n    tickModel: splitAreaModel,\n    clamp: true\n  });\n\n  if (!ticksCoords.length) {\n    return;\n  }\n\n  var areaColorsLen = areaColors.length;\n  var lastSplitAreaColors = inner(axisView).splitAreaColors;\n  var newSplitAreaColors = zrUtil.createHashMap();\n  var colorIndex = 0;\n\n  if (lastSplitAreaColors) {\n    for (var i = 0; i < ticksCoords.length; i++) {\n      var cIndex = lastSplitAreaColors.get(ticksCoords[i].tickValue);\n\n      if (cIndex != null) {\n        colorIndex = (cIndex + (areaColorsLen - 1) * i) % areaColorsLen;\n        break;\n      }\n    }\n  }\n\n  var prev = axis.toGlobalCoord(ticksCoords[0].coord);\n  var areaStyle = areaStyleModel.getAreaStyle();\n  areaColors = zrUtil.isArray(areaColors) ? areaColors : [areaColors];\n\n  for (var i = 1; i < ticksCoords.length; i++) {\n    var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n    var x = void 0;\n    var y = void 0;\n    var width = void 0;\n    var height = void 0;\n\n    if (axis.isHorizontal()) {\n      x = prev;\n      y = gridRect.y;\n      width = tickCoord - x;\n      height = gridRect.height;\n      prev = x + width;\n    } else {\n      x = gridRect.x;\n      y = prev;\n      width = gridRect.width;\n      height = tickCoord - y;\n      prev = y + height;\n    }\n\n    var tickValue = ticksCoords[i - 1].tickValue;\n    tickValue != null && newSplitAreaColors.set(tickValue, colorIndex);\n    axisGroup.add(new graphic.Rect({\n      anid: tickValue != null ? 'area_' + tickValue : null,\n      shape: {\n        x: x,\n        y: y,\n        width: width,\n        height: height\n      },\n      style: zrUtil.defaults({\n        fill: areaColors[colorIndex]\n      }, areaStyle),\n      autoBatch: true,\n      silent: true\n    }));\n    colorIndex = (colorIndex + 1) % areaColorsLen;\n  }\n\n  inner(axisView).splitAreaColors = newSplitAreaColors;\n}\nexport function rectCoordAxisHandleRemove(axisView) {\n  inner(axisView).splitAreaColors = null;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport AxisBuilder from './AxisBuilder';\nimport AxisView from './AxisView';\nimport * as cartesianAxisHelper from '../../coord/cartesian/cartesianAxisHelper';\nimport { rectCoordAxisBuildSplitArea, rectCoordAxisHandleRemove } from './axisSplitHelper';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitArea', 'splitLine', 'minorSplitLine'];\n\nvar CartesianAxisView = function (_super) {\n  __extends(CartesianAxisView, _super);\n\n  function CartesianAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CartesianAxisView.type;\n    _this.axisPointerClass = 'CartesianAxisPointer';\n    return _this;\n  }\n\n  CartesianAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n    this.group.removeAll();\n    var oldAxisGroup = this._axisGroup;\n    this._axisGroup = new graphic.Group();\n    this.group.add(this._axisGroup);\n\n    if (!axisModel.get('show')) {\n      return;\n    }\n\n    var gridModel = axisModel.getCoordSysModel();\n    var layout = cartesianAxisHelper.layout(gridModel, axisModel);\n    var axisBuilder = new AxisBuilder(axisModel, zrUtil.extend({\n      handleAutoShown: function (elementType) {\n        var cartesians = gridModel.coordinateSystem.getCartesians();\n\n        for (var i = 0; i < cartesians.length; i++) {\n          var otherAxisType = cartesians[i].getOtherAxis(axisModel.axis).type;\n\n          if (otherAxisType === 'value' || otherAxisType === 'log') {\n            return true;\n          }\n        }\n\n        return false;\n      }\n    }, layout));\n    zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n\n    this._axisGroup.add(axisBuilder.getGroup());\n\n    zrUtil.each(selfBuilderAttrs, function (name) {\n      if (axisModel.get([name, 'show'])) {\n        axisElementBuilders[name](this, this._axisGroup, axisModel, gridModel);\n      }\n    }, this);\n    graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel);\n\n    _super.prototype.render.call(this, axisModel, ecModel, api, payload);\n  };\n\n  CartesianAxisView.prototype.remove = function () {\n    rectCoordAxisHandleRemove(this);\n  };\n\n  CartesianAxisView.type = 'cartesianAxis';\n  return CartesianAxisView;\n}(AxisView);\n\nvar axisElementBuilders = {\n  splitLine: function (axisView, axisGroup, axisModel, gridModel) {\n    var axis = axisModel.axis;\n\n    if (axis.scale.isBlank()) {\n      return;\n    }\n\n    var splitLineModel = axisModel.getModel('splitLine');\n    var lineStyleModel = splitLineModel.getModel('lineStyle');\n    var lineColors = lineStyleModel.get('color');\n    lineColors = zrUtil.isArray(lineColors) ? lineColors : [lineColors];\n    var gridRect = gridModel.coordinateSystem.getRect();\n    var isHorizontal = axis.isHorizontal();\n    var lineCount = 0;\n    var ticksCoords = axis.getTicksCoords({\n      tickModel: splitLineModel\n    });\n    var p1 = [];\n    var p2 = [];\n    var lineStyle = lineStyleModel.getLineStyle();\n\n    for (var i = 0; i < ticksCoords.length; i++) {\n      var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n\n      if (isHorizontal) {\n        p1[0] = tickCoord;\n        p1[1] = gridRect.y;\n        p2[0] = tickCoord;\n        p2[1] = gridRect.y + gridRect.height;\n      } else {\n        p1[0] = gridRect.x;\n        p1[1] = tickCoord;\n        p2[0] = gridRect.x + gridRect.width;\n        p2[1] = tickCoord;\n      }\n\n      var colorIndex = lineCount++ % lineColors.length;\n      var tickValue = ticksCoords[i].tickValue;\n      axisGroup.add(new graphic.Line({\n        anid: tickValue != null ? 'line_' + ticksCoords[i].tickValue : null,\n        subPixelOptimize: true,\n        autoBatch: true,\n        shape: {\n          x1: p1[0],\n          y1: p1[1],\n          x2: p2[0],\n          y2: p2[1]\n        },\n        style: zrUtil.defaults({\n          stroke: lineColors[colorIndex]\n        }, lineStyle),\n        silent: true\n      }));\n    }\n  },\n  minorSplitLine: function (axisView, axisGroup, axisModel, gridModel) {\n    var axis = axisModel.axis;\n    var minorSplitLineModel = axisModel.getModel('minorSplitLine');\n    var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\n    var gridRect = gridModel.coordinateSystem.getRect();\n    var isHorizontal = axis.isHorizontal();\n    var minorTicksCoords = axis.getMinorTicksCoords();\n\n    if (!minorTicksCoords.length) {\n      return;\n    }\n\n    var p1 = [];\n    var p2 = [];\n    var lineStyle = lineStyleModel.getLineStyle();\n\n    for (var i = 0; i < minorTicksCoords.length; i++) {\n      for (var k = 0; k < minorTicksCoords[i].length; k++) {\n        var tickCoord = axis.toGlobalCoord(minorTicksCoords[i][k].coord);\n\n        if (isHorizontal) {\n          p1[0] = tickCoord;\n          p1[1] = gridRect.y;\n          p2[0] = tickCoord;\n          p2[1] = gridRect.y + gridRect.height;\n        } else {\n          p1[0] = gridRect.x;\n          p1[1] = tickCoord;\n          p2[0] = gridRect.x + gridRect.width;\n          p2[1] = tickCoord;\n        }\n\n        axisGroup.add(new graphic.Line({\n          anid: 'minor_line_' + minorTicksCoords[i][k].tickValue,\n          subPixelOptimize: true,\n          autoBatch: true,\n          shape: {\n            x1: p1[0],\n            y1: p1[1],\n            x2: p2[0],\n            y2: p2[1]\n          },\n          style: lineStyle,\n          silent: true\n        }));\n      }\n    }\n  },\n  splitArea: function (axisView, axisGroup, axisModel, gridModel) {\n    rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel);\n  }\n};\n\nvar CartesianXAxisView = function (_super) {\n  __extends(CartesianXAxisView, _super);\n\n  function CartesianXAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CartesianXAxisView.type;\n    return _this;\n  }\n\n  CartesianXAxisView.type = 'xAxis';\n  return CartesianXAxisView;\n}(CartesianAxisView);\n\nexport { CartesianXAxisView };\n\nvar CartesianYAxisView = function (_super) {\n  __extends(CartesianYAxisView, _super);\n\n  function CartesianYAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CartesianXAxisView.type;\n    return _this;\n  }\n\n  CartesianYAxisView.type = 'yAxis';\n  return CartesianYAxisView;\n}(CartesianAxisView);\n\nexport { CartesianYAxisView };\nexport default CartesianAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component';\nimport GridModel from '../../coord/cartesian/GridModel';\nimport { Rect } from '../../util/graphic';\nimport { defaults } from 'zrender/lib/core/util';\nimport { CartesianAxisModel } from '../../coord/cartesian/AxisModel';\nimport axisModelCreator from '../../coord/axisModelCreator';\nimport Grid from '../../coord/cartesian/Grid';\nimport { CartesianXAxisView, CartesianYAxisView } from '../axis/CartesianAxisView';\n\nvar GridView = function (_super) {\n  __extends(GridView, _super);\n\n  function GridView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'grid';\n    return _this;\n  }\n\n  GridView.prototype.render = function (gridModel, ecModel) {\n    this.group.removeAll();\n\n    if (gridModel.get('show')) {\n      this.group.add(new Rect({\n        shape: gridModel.coordinateSystem.getRect(),\n        style: defaults({\n          fill: gridModel.get('backgroundColor')\n        }, gridModel.getItemStyle()),\n        silent: true,\n        z2: -1\n      }));\n    }\n  };\n\n  GridView.type = 'grid';\n  return GridView;\n}(ComponentView);\n\nvar extraOption = {\n  offset: 0\n};\nexport function install(registers) {\n  registers.registerComponentView(GridView);\n  registers.registerComponentModel(GridModel);\n  registers.registerCoordinateSystem('cartesian2d', Grid);\n  axisModelCreator(registers, 'x', CartesianAxisModel, extraOption);\n  axisModelCreator(registers, 'y', CartesianAxisModel, extraOption);\n  registers.registerComponentView(CartesianXAxisView);\n  registers.registerComponentView(CartesianYAxisView);\n  registers.registerPreprocessor(function (option) {\n    if (option.xAxis && option.yAxis && !option.grid) {\n      option.grid = {};\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport ScatterSeriesModel from './ScatterSeries';\nimport ScatterView from './ScatterView';\nimport { install as installGridSimple } from '../../component/grid/installSimple';\nimport layoutPoints from '../../layout/points';\nexport function install(registers) {\n  use(installGridSimple);\n  registers.registerSeriesModel(ScatterSeriesModel);\n  registers.registerChartView(ScatterView);\n  registers.registerLayout(layoutPoints('scatter'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport * as axisPointerModelHelper from './modelHelper';\nimport * as eventTool from 'zrender/lib/core/event';\nimport * as throttleUtil from '../../util/throttle';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\nvar clone = zrUtil.clone;\nvar bind = zrUtil.bind;\n\nvar BaseAxisPointer = function () {\n  function BaseAxisPointer() {\n    this._dragging = false;\n    this.animationThreshold = 15;\n  }\n\n  BaseAxisPointer.prototype.render = function (axisModel, axisPointerModel, api, forceRender) {\n    var value = axisPointerModel.get('value');\n    var status = axisPointerModel.get('status');\n    this._axisModel = axisModel;\n    this._axisPointerModel = axisPointerModel;\n    this._api = api;\n\n    if (!forceRender && this._lastValue === value && this._lastStatus === status) {\n      return;\n    }\n\n    this._lastValue = value;\n    this._lastStatus = status;\n    var group = this._group;\n    var handle = this._handle;\n\n    if (!status || status === 'hide') {\n      group && group.hide();\n      handle && handle.hide();\n      return;\n    }\n\n    group && group.show();\n    handle && handle.show();\n    var elOption = {};\n    this.makeElOption(elOption, value, axisModel, axisPointerModel, api);\n    var graphicKey = elOption.graphicKey;\n\n    if (graphicKey !== this._lastGraphicKey) {\n      this.clear(api);\n    }\n\n    this._lastGraphicKey = graphicKey;\n    var moveAnimation = this._moveAnimation = this.determineAnimation(axisModel, axisPointerModel);\n\n    if (!group) {\n      group = this._group = new graphic.Group();\n      this.createPointerEl(group, elOption, axisModel, axisPointerModel);\n      this.createLabelEl(group, elOption, axisModel, axisPointerModel);\n      api.getZr().add(group);\n    } else {\n      var doUpdateProps = zrUtil.curry(updateProps, axisPointerModel, moveAnimation);\n      this.updatePointerEl(group, elOption, doUpdateProps);\n      this.updateLabelEl(group, elOption, doUpdateProps, axisPointerModel);\n    }\n\n    updateMandatoryProps(group, axisPointerModel, true);\n\n    this._renderHandle(value);\n  };\n\n  BaseAxisPointer.prototype.remove = function (api) {\n    this.clear(api);\n  };\n\n  BaseAxisPointer.prototype.dispose = function (api) {\n    this.clear(api);\n  };\n\n  BaseAxisPointer.prototype.determineAnimation = function (axisModel, axisPointerModel) {\n    var animation = axisPointerModel.get('animation');\n    var axis = axisModel.axis;\n    var isCategoryAxis = axis.type === 'category';\n    var useSnap = axisPointerModel.get('snap');\n\n    if (!useSnap && !isCategoryAxis) {\n      return false;\n    }\n\n    if (animation === 'auto' || animation == null) {\n      var animationThreshold = this.animationThreshold;\n\n      if (isCategoryAxis && axis.getBandWidth() > animationThreshold) {\n        return true;\n      }\n\n      if (useSnap) {\n        var seriesDataCount = axisPointerModelHelper.getAxisInfo(axisModel).seriesDataCount;\n        var axisExtent = axis.getExtent();\n        return Math.abs(axisExtent[0] - axisExtent[1]) / seriesDataCount > animationThreshold;\n      }\n\n      return false;\n    }\n\n    return animation === true;\n  };\n\n  BaseAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {};\n\n  BaseAxisPointer.prototype.createPointerEl = function (group, elOption, axisModel, axisPointerModel) {\n    var pointerOption = elOption.pointer;\n\n    if (pointerOption) {\n      var pointerEl = inner(group).pointerEl = new graphic[pointerOption.type](clone(elOption.pointer));\n      group.add(pointerEl);\n    }\n  };\n\n  BaseAxisPointer.prototype.createLabelEl = function (group, elOption, axisModel, axisPointerModel) {\n    if (elOption.label) {\n      var labelEl = inner(group).labelEl = new graphic.Text(clone(elOption.label));\n      group.add(labelEl);\n      updateLabelShowHide(labelEl, axisPointerModel);\n    }\n  };\n\n  BaseAxisPointer.prototype.updatePointerEl = function (group, elOption, updateProps) {\n    var pointerEl = inner(group).pointerEl;\n\n    if (pointerEl && elOption.pointer) {\n      pointerEl.setStyle(elOption.pointer.style);\n      updateProps(pointerEl, {\n        shape: elOption.pointer.shape\n      });\n    }\n  };\n\n  BaseAxisPointer.prototype.updateLabelEl = function (group, elOption, updateProps, axisPointerModel) {\n    var labelEl = inner(group).labelEl;\n\n    if (labelEl) {\n      labelEl.setStyle(elOption.label.style);\n      updateProps(labelEl, {\n        x: elOption.label.x,\n        y: elOption.label.y\n      });\n      updateLabelShowHide(labelEl, axisPointerModel);\n    }\n  };\n\n  BaseAxisPointer.prototype._renderHandle = function (value) {\n    if (this._dragging || !this.updateHandleTransform) {\n      return;\n    }\n\n    var axisPointerModel = this._axisPointerModel;\n\n    var zr = this._api.getZr();\n\n    var handle = this._handle;\n    var handleModel = axisPointerModel.getModel('handle');\n    var status = axisPointerModel.get('status');\n\n    if (!handleModel.get('show') || !status || status === 'hide') {\n      handle && zr.remove(handle);\n      this._handle = null;\n      return;\n    }\n\n    var isInit;\n\n    if (!this._handle) {\n      isInit = true;\n      handle = this._handle = graphic.createIcon(handleModel.get('icon'), {\n        cursor: 'move',\n        draggable: true,\n        onmousemove: function (e) {\n          eventTool.stop(e.event);\n        },\n        onmousedown: bind(this._onHandleDragMove, this, 0, 0),\n        drift: bind(this._onHandleDragMove, this),\n        ondragend: bind(this._onHandleDragEnd, this)\n      });\n      zr.add(handle);\n    }\n\n    updateMandatoryProps(handle, axisPointerModel, false);\n    handle.setStyle(handleModel.getItemStyle(null, ['color', 'borderColor', 'borderWidth', 'opacity', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY']));\n    var handleSize = handleModel.get('size');\n\n    if (!zrUtil.isArray(handleSize)) {\n      handleSize = [handleSize, handleSize];\n    }\n\n    handle.scaleX = handleSize[0] / 2;\n    handle.scaleY = handleSize[1] / 2;\n    throttleUtil.createOrUpdate(this, '_doDispatchAxisPointer', handleModel.get('throttle') || 0, 'fixRate');\n\n    this._moveHandleToValue(value, isInit);\n  };\n\n  BaseAxisPointer.prototype._moveHandleToValue = function (value, isInit) {\n    updateProps(this._axisPointerModel, !isInit && this._moveAnimation, this._handle, getHandleTransProps(this.getHandleTransform(value, this._axisModel, this._axisPointerModel)));\n  };\n\n  BaseAxisPointer.prototype._onHandleDragMove = function (dx, dy) {\n    var handle = this._handle;\n\n    if (!handle) {\n      return;\n    }\n\n    this._dragging = true;\n    var trans = this.updateHandleTransform(getHandleTransProps(handle), [dx, dy], this._axisModel, this._axisPointerModel);\n    this._payloadInfo = trans;\n    handle.stopAnimation();\n    handle.attr(getHandleTransProps(trans));\n    inner(handle).lastProp = null;\n\n    this._doDispatchAxisPointer();\n  };\n\n  BaseAxisPointer.prototype._doDispatchAxisPointer = function () {\n    var handle = this._handle;\n\n    if (!handle) {\n      return;\n    }\n\n    var payloadInfo = this._payloadInfo;\n    var axisModel = this._axisModel;\n\n    this._api.dispatchAction({\n      type: 'updateAxisPointer',\n      x: payloadInfo.cursorPoint[0],\n      y: payloadInfo.cursorPoint[1],\n      tooltipOption: payloadInfo.tooltipOption,\n      axesInfo: [{\n        axisDim: axisModel.axis.dim,\n        axisIndex: axisModel.componentIndex\n      }]\n    });\n  };\n\n  BaseAxisPointer.prototype._onHandleDragEnd = function () {\n    this._dragging = false;\n    var handle = this._handle;\n\n    if (!handle) {\n      return;\n    }\n\n    var value = this._axisPointerModel.get('value');\n\n    this._moveHandleToValue(value);\n\n    this._api.dispatchAction({\n      type: 'hideTip'\n    });\n  };\n\n  BaseAxisPointer.prototype.clear = function (api) {\n    this._lastValue = null;\n    this._lastStatus = null;\n    var zr = api.getZr();\n    var group = this._group;\n    var handle = this._handle;\n\n    if (zr && group) {\n      this._lastGraphicKey = null;\n      group && zr.remove(group);\n      handle && zr.remove(handle);\n      this._group = null;\n      this._handle = null;\n      this._payloadInfo = null;\n    }\n  };\n\n  BaseAxisPointer.prototype.doClear = function () {};\n\n  BaseAxisPointer.prototype.buildLabel = function (xy, wh, xDimIndex) {\n    xDimIndex = xDimIndex || 0;\n    return {\n      x: xy[xDimIndex],\n      y: xy[1 - xDimIndex],\n      width: wh[xDimIndex],\n      height: wh[1 - xDimIndex]\n    };\n  };\n\n  return BaseAxisPointer;\n}();\n\nfunction updateProps(animationModel, moveAnimation, el, props) {\n  if (!propsEqual(inner(el).lastProp, props)) {\n    inner(el).lastProp = props;\n    moveAnimation ? graphic.updateProps(el, props, animationModel) : (el.stopAnimation(), el.attr(props));\n  }\n}\n\nfunction propsEqual(lastProps, newProps) {\n  if (zrUtil.isObject(lastProps) && zrUtil.isObject(newProps)) {\n    var equals_1 = true;\n    zrUtil.each(newProps, function (item, key) {\n      equals_1 = equals_1 && propsEqual(lastProps[key], item);\n    });\n    return !!equals_1;\n  } else {\n    return lastProps === newProps;\n  }\n}\n\nfunction updateLabelShowHide(labelEl, axisPointerModel) {\n  labelEl[axisPointerModel.get(['label', 'show']) ? 'show' : 'hide']();\n}\n\nfunction getHandleTransProps(trans) {\n  return {\n    x: trans.x || 0,\n    y: trans.y || 0,\n    rotation: trans.rotation || 0\n  };\n}\n\nfunction updateMandatoryProps(group, axisPointerModel, silent) {\n  var z = axisPointerModel.get('z');\n  var zlevel = axisPointerModel.get('zlevel');\n  group && group.traverse(function (el) {\n    if (el.type !== 'group') {\n      z != null && (el.z = z);\n      zlevel != null && (el.zlevel = zlevel);\n      el.silent = silent;\n    }\n  });\n}\n\nexport default BaseAxisPointer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport * as textContain from 'zrender/lib/contain/text';\nimport * as formatUtil from '../../util/format';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport * as axisHelper from '../../coord/axisHelper';\nimport AxisBuilder from '../axis/AxisBuilder';\nimport { createTextStyle } from '../../label/labelStyle';\nexport function buildElStyle(axisPointerModel) {\n  var axisPointerType = axisPointerModel.get('type');\n  var styleModel = axisPointerModel.getModel(axisPointerType + 'Style');\n  var style;\n\n  if (axisPointerType === 'line') {\n    style = styleModel.getLineStyle();\n    style.fill = null;\n  } else if (axisPointerType === 'shadow') {\n    style = styleModel.getAreaStyle();\n    style.stroke = null;\n  }\n\n  return style;\n}\nexport function buildLabelElOption(elOption, axisModel, axisPointerModel, api, labelPos) {\n  var value = axisPointerModel.get('value');\n  var text = getValueLabel(value, axisModel.axis, axisModel.ecModel, axisPointerModel.get('seriesDataIndices'), {\n    precision: axisPointerModel.get(['label', 'precision']),\n    formatter: axisPointerModel.get(['label', 'formatter'])\n  });\n  var labelModel = axisPointerModel.getModel('label');\n  var paddings = formatUtil.normalizeCssArray(labelModel.get('padding') || 0);\n  var font = labelModel.getFont();\n  var textRect = textContain.getBoundingRect(text, font);\n  var position = labelPos.position;\n  var width = textRect.width + paddings[1] + paddings[3];\n  var height = textRect.height + paddings[0] + paddings[2];\n  var align = labelPos.align;\n  align === 'right' && (position[0] -= width);\n  align === 'center' && (position[0] -= width / 2);\n  var verticalAlign = labelPos.verticalAlign;\n  verticalAlign === 'bottom' && (position[1] -= height);\n  verticalAlign === 'middle' && (position[1] -= height / 2);\n  confineInContainer(position, width, height, api);\n  var bgColor = labelModel.get('backgroundColor');\n\n  if (!bgColor || bgColor === 'auto') {\n    bgColor = axisModel.get(['axisLine', 'lineStyle', 'color']);\n  }\n\n  elOption.label = {\n    x: position[0],\n    y: position[1],\n    style: createTextStyle(labelModel, {\n      text: text,\n      font: font,\n      fill: labelModel.getTextColor(),\n      padding: paddings,\n      backgroundColor: bgColor\n    }),\n    z2: 10\n  };\n}\n\nfunction confineInContainer(position, width, height, api) {\n  var viewWidth = api.getWidth();\n  var viewHeight = api.getHeight();\n  position[0] = Math.min(position[0] + width, viewWidth) - width;\n  position[1] = Math.min(position[1] + height, viewHeight) - height;\n  position[0] = Math.max(position[0], 0);\n  position[1] = Math.max(position[1], 0);\n}\n\nexport function getValueLabel(value, axis, ecModel, seriesDataIndices, opt) {\n  value = axis.scale.parse(value);\n  var text = axis.scale.getLabel({\n    value: value\n  }, {\n    precision: opt.precision\n  });\n  var formatter = opt.formatter;\n\n  if (formatter) {\n    var params_1 = {\n      value: axisHelper.getAxisRawValue(axis, {\n        value: value\n      }),\n      axisDimension: axis.dim,\n      axisIndex: axis.index,\n      seriesData: []\n    };\n    zrUtil.each(seriesDataIndices, function (idxItem) {\n      var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\n      var dataIndex = idxItem.dataIndexInside;\n      var dataParams = series && series.getDataParams(dataIndex);\n      dataParams && params_1.seriesData.push(dataParams);\n    });\n\n    if (zrUtil.isString(formatter)) {\n      text = formatter.replace('{value}', text);\n    } else if (zrUtil.isFunction(formatter)) {\n      text = formatter(params_1);\n    }\n  }\n\n  return text;\n}\nexport function getTransformedPosition(axis, value, layoutInfo) {\n  var transform = matrix.create();\n  matrix.rotate(transform, transform, layoutInfo.rotation);\n  matrix.translate(transform, transform, layoutInfo.position);\n  return graphic.applyTransform([axis.dataToCoord(value), (layoutInfo.labelOffset || 0) + (layoutInfo.labelDirection || 1) * (layoutInfo.labelMargin || 0)], transform);\n}\nexport function buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api) {\n  var textLayout = AxisBuilder.innerTextLayout(layoutInfo.rotation, 0, layoutInfo.labelDirection);\n  layoutInfo.labelMargin = axisPointerModel.get(['label', 'margin']);\n  buildLabelElOption(elOption, axisModel, axisPointerModel, api, {\n    position: getTransformedPosition(axisModel.axis, value, layoutInfo),\n    align: textLayout.textAlign,\n    verticalAlign: textLayout.textVerticalAlign\n  });\n}\nexport function makeLineShape(p1, p2, xDimIndex) {\n  xDimIndex = xDimIndex || 0;\n  return {\n    x1: p1[xDimIndex],\n    y1: p1[1 - xDimIndex],\n    x2: p2[xDimIndex],\n    y2: p2[1 - xDimIndex]\n  };\n}\nexport function makeRectShape(xy, wh, xDimIndex) {\n  xDimIndex = xDimIndex || 0;\n  return {\n    x: xy[xDimIndex],\n    y: xy[1 - xDimIndex],\n    width: wh[xDimIndex],\n    height: wh[1 - xDimIndex]\n  };\n}\nexport function makeSectorShape(cx, cy, r0, r, startAngle, endAngle) {\n  return {\n    cx: cx,\n    cy: cy,\n    r0: r0,\n    r: r,\n    startAngle: startAngle,\n    endAngle: endAngle,\n    clockwise: true\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BaseAxisPointer from './BaseAxisPointer';\nimport * as viewHelper from './viewHelper';\nimport * as cartesianAxisHelper from '../../coord/cartesian/cartesianAxisHelper';\n\nvar CartesianAxisPointer = function (_super) {\n  __extends(CartesianAxisPointer, _super);\n\n  function CartesianAxisPointer() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  CartesianAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\n    var axis = axisModel.axis;\n    var grid = axis.grid;\n    var axisPointerType = axisPointerModel.get('type');\n    var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent();\n    var pixelValue = axis.toGlobalCoord(axis.dataToCoord(value, true));\n\n    if (axisPointerType && axisPointerType !== 'none') {\n      var elStyle = viewHelper.buildElStyle(axisPointerModel);\n      var pointerOption = pointerShapeBuilder[axisPointerType](axis, pixelValue, otherExtent);\n      pointerOption.style = elStyle;\n      elOption.graphicKey = pointerOption.type;\n      elOption.pointer = pointerOption;\n    }\n\n    var layoutInfo = cartesianAxisHelper.layout(grid.model, axisModel);\n    viewHelper.buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api);\n  };\n\n  CartesianAxisPointer.prototype.getHandleTransform = function (value, axisModel, axisPointerModel) {\n    var layoutInfo = cartesianAxisHelper.layout(axisModel.axis.grid.model, axisModel, {\n      labelInside: false\n    });\n    layoutInfo.labelMargin = axisPointerModel.get(['handle', 'margin']);\n    var pos = viewHelper.getTransformedPosition(axisModel.axis, value, layoutInfo);\n    return {\n      x: pos[0],\n      y: pos[1],\n      rotation: layoutInfo.rotation + (layoutInfo.labelDirection < 0 ? Math.PI : 0)\n    };\n  };\n\n  CartesianAxisPointer.prototype.updateHandleTransform = function (transform, delta, axisModel, axisPointerModel) {\n    var axis = axisModel.axis;\n    var grid = axis.grid;\n    var axisExtent = axis.getGlobalExtent(true);\n    var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent();\n    var dimIndex = axis.dim === 'x' ? 0 : 1;\n    var currPosition = [transform.x, transform.y];\n    currPosition[dimIndex] += delta[dimIndex];\n    currPosition[dimIndex] = Math.min(axisExtent[1], currPosition[dimIndex]);\n    currPosition[dimIndex] = Math.max(axisExtent[0], currPosition[dimIndex]);\n    var cursorOtherValue = (otherExtent[1] + otherExtent[0]) / 2;\n    var cursorPoint = [cursorOtherValue, cursorOtherValue];\n    cursorPoint[dimIndex] = currPosition[dimIndex];\n    var tooltipOptions = [{\n      verticalAlign: 'middle'\n    }, {\n      align: 'center'\n    }];\n    return {\n      x: currPosition[0],\n      y: currPosition[1],\n      rotation: transform.rotation,\n      cursorPoint: cursorPoint,\n      tooltipOption: tooltipOptions[dimIndex]\n    };\n  };\n\n  return CartesianAxisPointer;\n}(BaseAxisPointer);\n\nfunction getCartesian(grid, axis) {\n  var opt = {};\n  opt[axis.dim + 'AxisIndex'] = axis.index;\n  return grid.getCartesian(opt);\n}\n\nvar pointerShapeBuilder = {\n  line: function (axis, pixelValue, otherExtent) {\n    var targetShape = viewHelper.makeLineShape([pixelValue, otherExtent[0]], [pixelValue, otherExtent[1]], getAxisDimIndex(axis));\n    return {\n      type: 'Line',\n      subPixelOptimize: true,\n      shape: targetShape\n    };\n  },\n  shadow: function (axis, pixelValue, otherExtent) {\n    var bandWidth = Math.max(1, axis.getBandWidth());\n    var span = otherExtent[1] - otherExtent[0];\n    return {\n      type: 'Rect',\n      shape: viewHelper.makeRectShape([pixelValue - bandWidth / 2, otherExtent[0]], [bandWidth, span], getAxisDimIndex(axis))\n    };\n  }\n};\n\nfunction getAxisDimIndex(axis) {\n  return axis.dim === 'x' ? 0 : 1;\n}\n\nexport default CartesianAxisPointer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\n\nvar AxisPointerModel = function (_super) {\n  __extends(AxisPointerModel, _super);\n\n  function AxisPointerModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = AxisPointerModel.type;\n    return _this;\n  }\n\n  AxisPointerModel.type = 'axisPointer';\n  AxisPointerModel.defaultOption = {\n    show: 'auto',\n    zlevel: 0,\n    z: 50,\n    type: 'line',\n    snap: false,\n    triggerTooltip: true,\n    value: null,\n    status: null,\n    link: [],\n    animation: null,\n    animationDurationUpdate: 200,\n    lineStyle: {\n      color: '#B9BEC9',\n      width: 1,\n      type: 'dashed'\n    },\n    shadowStyle: {\n      color: 'rgba(210,219,238,0.2)'\n    },\n    label: {\n      show: true,\n      formatter: null,\n      precision: 'auto',\n      margin: 3,\n      color: '#fff',\n      padding: [5, 7, 5, 7],\n      backgroundColor: 'auto',\n      borderColor: null,\n      borderWidth: 0,\n      borderRadius: 3\n    },\n    handle: {\n      show: false,\n      icon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z',\n      size: 45,\n      margin: 50,\n      color: '#333',\n      shadowBlur: 3,\n      shadowColor: '#aaa',\n      shadowOffsetX: 0,\n      shadowOffsetY: 2,\n      throttle: 40\n    }\n  };\n  return AxisPointerModel;\n}(ComponentModel);\n\nexport default AxisPointerModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\nvar each = zrUtil.each;\nexport function register(key, api, handler) {\n  if (env.node) {\n    return;\n  }\n\n  var zr = api.getZr();\n  inner(zr).records || (inner(zr).records = {});\n  initGlobalListeners(zr, api);\n  var record = inner(zr).records[key] || (inner(zr).records[key] = {});\n  record.handler = handler;\n}\n\nfunction initGlobalListeners(zr, api) {\n  if (inner(zr).initialized) {\n    return;\n  }\n\n  inner(zr).initialized = true;\n  useHandler('click', zrUtil.curry(doEnter, 'click'));\n  useHandler('mousemove', zrUtil.curry(doEnter, 'mousemove'));\n  useHandler('globalout', onLeave);\n\n  function useHandler(eventType, cb) {\n    zr.on(eventType, function (e) {\n      var dis = makeDispatchAction(api);\n      each(inner(zr).records, function (record) {\n        record && cb(record, e, dis.dispatchAction);\n      });\n      dispatchTooltipFinally(dis.pendings, api);\n    });\n  }\n}\n\nfunction dispatchTooltipFinally(pendings, api) {\n  var showLen = pendings.showTip.length;\n  var hideLen = pendings.hideTip.length;\n  var actuallyPayload;\n\n  if (showLen) {\n    actuallyPayload = pendings.showTip[showLen - 1];\n  } else if (hideLen) {\n    actuallyPayload = pendings.hideTip[hideLen - 1];\n  }\n\n  if (actuallyPayload) {\n    actuallyPayload.dispatchAction = null;\n    api.dispatchAction(actuallyPayload);\n  }\n}\n\nfunction onLeave(record, e, dispatchAction) {\n  record.handler('leave', null, dispatchAction);\n}\n\nfunction doEnter(currTrigger, record, e, dispatchAction) {\n  record.handler(currTrigger, e, dispatchAction);\n}\n\nfunction makeDispatchAction(api) {\n  var pendings = {\n    showTip: [],\n    hideTip: []\n  };\n\n  var dispatchAction = function (payload) {\n    var pendingList = pendings[payload.type];\n\n    if (pendingList) {\n      pendingList.push(payload);\n    } else {\n      payload.dispatchAction = dispatchAction;\n      api.dispatchAction(payload);\n    }\n  };\n\n  return {\n    dispatchAction: dispatchAction,\n    pendings: pendings\n  };\n}\n\nexport function unregister(key, api) {\n  if (env.node) {\n    return;\n  }\n\n  var zr = api.getZr();\n  var record = (inner(zr).records || {})[key];\n\n  if (record) {\n    inner(zr).records[key] = null;\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as globalListener from './globalListener';\nimport ComponentView from '../../view/Component';\n\nvar AxisPointerView = function (_super) {\n  __extends(AxisPointerView, _super);\n\n  function AxisPointerView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = AxisPointerView.type;\n    return _this;\n  }\n\n  AxisPointerView.prototype.render = function (globalAxisPointerModel, ecModel, api) {\n    var globalTooltipModel = ecModel.getComponent('tooltip');\n    var triggerOn = globalAxisPointerModel.get('triggerOn') || globalTooltipModel && globalTooltipModel.get('triggerOn') || 'mousemove|click';\n    globalListener.register('axisPointer', api, function (currTrigger, e, dispatchAction) {\n      if (triggerOn !== 'none' && (currTrigger === 'leave' || triggerOn.indexOf(currTrigger) >= 0)) {\n        dispatchAction({\n          type: 'updateAxisPointer',\n          currTrigger: currTrigger,\n          x: e && e.offsetX,\n          y: e && e.offsetY\n        });\n      }\n    });\n  };\n\n  AxisPointerView.prototype.remove = function (ecModel, api) {\n    globalListener.unregister('axisPointer', api);\n  };\n\n  AxisPointerView.prototype.dispose = function (ecModel, api) {\n    globalListener.unregister('axisPointer', api);\n  };\n\n  AxisPointerView.type = 'axisPointer';\n  return AxisPointerView;\n}(ComponentView);\n\nexport default AxisPointerView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nexport default function findPointFromSeries(finder, ecModel) {\n  var point = [];\n  var seriesIndex = finder.seriesIndex;\n  var seriesModel;\n\n  if (seriesIndex == null || !(seriesModel = ecModel.getSeriesByIndex(seriesIndex))) {\n    return {\n      point: []\n    };\n  }\n\n  var data = seriesModel.getData();\n  var dataIndex = modelUtil.queryDataIndex(data, finder);\n\n  if (dataIndex == null || dataIndex < 0 || zrUtil.isArray(dataIndex)) {\n    return {\n      point: []\n    };\n  }\n\n  var el = data.getItemGraphicEl(dataIndex);\n  var coordSys = seriesModel.coordinateSystem;\n\n  if (seriesModel.getTooltipPosition) {\n    point = seriesModel.getTooltipPosition(dataIndex) || [];\n  } else if (coordSys && coordSys.dataToPoint) {\n    if (finder.isStacked) {\n      var baseAxis = coordSys.getBaseAxis();\n      var valueAxis = coordSys.getOtherAxis(baseAxis);\n      var valueAxisDim = valueAxis.dim;\n      var baseAxisDim = baseAxis.dim;\n      var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\n      var baseDim = data.mapDimension(baseAxisDim);\n      var stackedData = [];\n      stackedData[baseDataOffset] = data.get(baseDim, dataIndex);\n      stackedData[1 - baseDataOffset] = data.get(data.getCalculationInfo('stackResultDimension'), dataIndex);\n      point = coordSys.dataToPoint(stackedData) || [];\n    } else {\n      point = coordSys.dataToPoint(data.getValues(zrUtil.map(coordSys.dimensions, function (dim) {\n        return data.mapDimension(dim);\n      }), dataIndex)) || [];\n    }\n  } else if (el) {\n    var rect = el.getBoundingRect().clone();\n    rect.applyTransform(el.transform);\n    point = [rect.x + rect.width / 2, rect.y + rect.height / 2];\n  }\n\n  return {\n    point: point,\n    el: el\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner } from '../../util/model';\nimport * as modelHelper from './modelHelper';\nimport findPointFromSeries from './findPointFromSeries';\nimport { each, curry, bind, extend } from 'zrender/lib/core/util';\nvar inner = makeInner();\nexport default function axisTrigger(payload, ecModel, api) {\n  var currTrigger = payload.currTrigger;\n  var point = [payload.x, payload.y];\n  var finder = payload;\n  var dispatchAction = payload.dispatchAction || bind(api.dispatchAction, api);\n  var coordSysAxesInfo = ecModel.getComponent('axisPointer').coordSysAxesInfo;\n\n  if (!coordSysAxesInfo) {\n    return;\n  }\n\n  if (illegalPoint(point)) {\n    point = findPointFromSeries({\n      seriesIndex: finder.seriesIndex,\n      dataIndex: finder.dataIndex\n    }, ecModel).point;\n  }\n\n  var isIllegalPoint = illegalPoint(point);\n  var inputAxesInfo = finder.axesInfo;\n  var axesInfo = coordSysAxesInfo.axesInfo;\n  var shouldHide = currTrigger === 'leave' || illegalPoint(point);\n  var outputPayload = {};\n  var showValueMap = {};\n  var dataByCoordSys = {\n    list: [],\n    map: {}\n  };\n  var updaters = {\n    showPointer: curry(showPointer, showValueMap),\n    showTooltip: curry(showTooltip, dataByCoordSys)\n  };\n  each(coordSysAxesInfo.coordSysMap, function (coordSys, coordSysKey) {\n    var coordSysContainsPoint = isIllegalPoint || coordSys.containPoint(point);\n    each(coordSysAxesInfo.coordSysAxesInfo[coordSysKey], function (axisInfo, key) {\n      var axis = axisInfo.axis;\n      var inputAxisInfo = findInputAxisInfo(inputAxesInfo, axisInfo);\n\n      if (!shouldHide && coordSysContainsPoint && (!inputAxesInfo || inputAxisInfo)) {\n        var val = inputAxisInfo && inputAxisInfo.value;\n\n        if (val == null && !isIllegalPoint) {\n          val = axis.pointToData(point);\n        }\n\n        val != null && processOnAxis(axisInfo, val, updaters, false, outputPayload);\n      }\n    });\n  });\n  var linkTriggers = {};\n  each(axesInfo, function (tarAxisInfo, tarKey) {\n    var linkGroup = tarAxisInfo.linkGroup;\n\n    if (linkGroup && !showValueMap[tarKey]) {\n      each(linkGroup.axesInfo, function (srcAxisInfo, srcKey) {\n        var srcValItem = showValueMap[srcKey];\n\n        if (srcAxisInfo !== tarAxisInfo && srcValItem) {\n          var val = srcValItem.value;\n          linkGroup.mapper && (val = tarAxisInfo.axis.scale.parse(linkGroup.mapper(val, makeMapperParam(srcAxisInfo), makeMapperParam(tarAxisInfo))));\n          linkTriggers[tarAxisInfo.key] = val;\n        }\n      });\n    }\n  });\n  each(linkTriggers, function (val, tarKey) {\n    processOnAxis(axesInfo[tarKey], val, updaters, true, outputPayload);\n  });\n  updateModelActually(showValueMap, axesInfo, outputPayload);\n  dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction);\n  dispatchHighDownActually(axesInfo, dispatchAction, api);\n  return outputPayload;\n}\n\nfunction processOnAxis(axisInfo, newValue, updaters, noSnap, outputFinder) {\n  var axis = axisInfo.axis;\n\n  if (axis.scale.isBlank() || !axis.containData(newValue)) {\n    return;\n  }\n\n  if (!axisInfo.involveSeries) {\n    updaters.showPointer(axisInfo, newValue);\n    return;\n  }\n\n  var payloadInfo = buildPayloadsBySeries(newValue, axisInfo);\n  var payloadBatch = payloadInfo.payloadBatch;\n  var snapToValue = payloadInfo.snapToValue;\n\n  if (payloadBatch[0] && outputFinder.seriesIndex == null) {\n    extend(outputFinder, payloadBatch[0]);\n  }\n\n  if (!noSnap && axisInfo.snap) {\n    if (axis.containData(snapToValue) && snapToValue != null) {\n      newValue = snapToValue;\n    }\n  }\n\n  updaters.showPointer(axisInfo, newValue, payloadBatch);\n  updaters.showTooltip(axisInfo, payloadInfo, snapToValue);\n}\n\nfunction buildPayloadsBySeries(value, axisInfo) {\n  var axis = axisInfo.axis;\n  var dim = axis.dim;\n  var snapToValue = value;\n  var payloadBatch = [];\n  var minDist = Number.MAX_VALUE;\n  var minDiff = -1;\n  each(axisInfo.seriesModels, function (series, idx) {\n    var dataDim = series.getData().mapDimensionsAll(dim);\n    var seriesNestestValue;\n    var dataIndices;\n\n    if (series.getAxisTooltipData) {\n      var result = series.getAxisTooltipData(dataDim, value, axis);\n      dataIndices = result.dataIndices;\n      seriesNestestValue = result.nestestValue;\n    } else {\n      dataIndices = series.getData().indicesOfNearest(dataDim[0], value, axis.type === 'category' ? 0.5 : null);\n\n      if (!dataIndices.length) {\n        return;\n      }\n\n      seriesNestestValue = series.getData().get(dataDim[0], dataIndices[0]);\n    }\n\n    if (seriesNestestValue == null || !isFinite(seriesNestestValue)) {\n      return;\n    }\n\n    var diff = value - seriesNestestValue;\n    var dist = Math.abs(diff);\n\n    if (dist <= minDist) {\n      if (dist < minDist || diff >= 0 && minDiff < 0) {\n        minDist = dist;\n        minDiff = diff;\n        snapToValue = seriesNestestValue;\n        payloadBatch.length = 0;\n      }\n\n      each(dataIndices, function (dataIndex) {\n        payloadBatch.push({\n          seriesIndex: series.seriesIndex,\n          dataIndexInside: dataIndex,\n          dataIndex: series.getData().getRawIndex(dataIndex)\n        });\n      });\n    }\n  });\n  return {\n    payloadBatch: payloadBatch,\n    snapToValue: snapToValue\n  };\n}\n\nfunction showPointer(showValueMap, axisInfo, value, payloadBatch) {\n  showValueMap[axisInfo.key] = {\n    value: value,\n    payloadBatch: payloadBatch\n  };\n}\n\nfunction showTooltip(dataByCoordSys, axisInfo, payloadInfo, value) {\n  var payloadBatch = payloadInfo.payloadBatch;\n  var axis = axisInfo.axis;\n  var axisModel = axis.model;\n  var axisPointerModel = axisInfo.axisPointerModel;\n\n  if (!axisInfo.triggerTooltip || !payloadBatch.length) {\n    return;\n  }\n\n  var coordSysModel = axisInfo.coordSys.model;\n  var coordSysKey = modelHelper.makeKey(coordSysModel);\n  var coordSysItem = dataByCoordSys.map[coordSysKey];\n\n  if (!coordSysItem) {\n    coordSysItem = dataByCoordSys.map[coordSysKey] = {\n      coordSysId: coordSysModel.id,\n      coordSysIndex: coordSysModel.componentIndex,\n      coordSysType: coordSysModel.type,\n      coordSysMainType: coordSysModel.mainType,\n      dataByAxis: []\n    };\n    dataByCoordSys.list.push(coordSysItem);\n  }\n\n  coordSysItem.dataByAxis.push({\n    axisDim: axis.dim,\n    axisIndex: axisModel.componentIndex,\n    axisType: axisModel.type,\n    axisId: axisModel.id,\n    value: value,\n    valueLabelOpt: {\n      precision: axisPointerModel.get(['label', 'precision']),\n      formatter: axisPointerModel.get(['label', 'formatter'])\n    },\n    seriesDataIndices: payloadBatch.slice()\n  });\n}\n\nfunction updateModelActually(showValueMap, axesInfo, outputPayload) {\n  var outputAxesInfo = outputPayload.axesInfo = [];\n  each(axesInfo, function (axisInfo, key) {\n    var option = axisInfo.axisPointerModel.option;\n    var valItem = showValueMap[key];\n\n    if (valItem) {\n      !axisInfo.useHandle && (option.status = 'show');\n      option.value = valItem.value;\n      option.seriesDataIndices = (valItem.payloadBatch || []).slice();\n    } else {\n      !axisInfo.useHandle && (option.status = 'hide');\n    }\n\n    option.status === 'show' && outputAxesInfo.push({\n      axisDim: axisInfo.axis.dim,\n      axisIndex: axisInfo.axis.model.componentIndex,\n      value: option.value\n    });\n  });\n}\n\nfunction dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction) {\n  if (illegalPoint(point) || !dataByCoordSys.list.length) {\n    dispatchAction({\n      type: 'hideTip'\n    });\n    return;\n  }\n\n  var sampleItem = ((dataByCoordSys.list[0].dataByAxis[0] || {}).seriesDataIndices || [])[0] || {};\n  dispatchAction({\n    type: 'showTip',\n    escapeConnect: true,\n    x: point[0],\n    y: point[1],\n    tooltipOption: payload.tooltipOption,\n    position: payload.position,\n    dataIndexInside: sampleItem.dataIndexInside,\n    dataIndex: sampleItem.dataIndex,\n    seriesIndex: sampleItem.seriesIndex,\n    dataByCoordSys: dataByCoordSys.list\n  });\n}\n\nfunction dispatchHighDownActually(axesInfo, dispatchAction, api) {\n  var zr = api.getZr();\n  var highDownKey = 'axisPointerLastHighlights';\n  var lastHighlights = inner(zr)[highDownKey] || {};\n  var newHighlights = inner(zr)[highDownKey] = {};\n  each(axesInfo, function (axisInfo, key) {\n    var option = axisInfo.axisPointerModel.option;\n    option.status === 'show' && each(option.seriesDataIndices, function (batchItem) {\n      var key = batchItem.seriesIndex + ' | ' + batchItem.dataIndex;\n      newHighlights[key] = batchItem;\n    });\n  });\n  var toHighlight = [];\n  var toDownplay = [];\n  each(lastHighlights, function (batchItem, key) {\n    !newHighlights[key] && toDownplay.push(batchItem);\n  });\n  each(newHighlights, function (batchItem, key) {\n    !lastHighlights[key] && toHighlight.push(batchItem);\n  });\n  toDownplay.length && api.dispatchAction({\n    type: 'downplay',\n    escapeConnect: true,\n    notBlur: true,\n    batch: toDownplay\n  });\n  toHighlight.length && api.dispatchAction({\n    type: 'highlight',\n    escapeConnect: true,\n    notBlur: true,\n    batch: toHighlight\n  });\n}\n\nfunction findInputAxisInfo(inputAxesInfo, axisInfo) {\n  for (var i = 0; i < (inputAxesInfo || []).length; i++) {\n    var inputAxisInfo = inputAxesInfo[i];\n\n    if (axisInfo.axis.dim === inputAxisInfo.axisDim && axisInfo.axis.model.componentIndex === inputAxisInfo.axisIndex) {\n      return inputAxisInfo;\n    }\n  }\n}\n\nfunction makeMapperParam(axisInfo) {\n  var axisModel = axisInfo.axis.model;\n  var item = {};\n  var dim = item.axisDim = axisInfo.axis.dim;\n  item.axisIndex = item[dim + 'AxisIndex'] = axisModel.componentIndex;\n  item.axisName = item[dim + 'AxisName'] = axisModel.name;\n  item.axisId = item[dim + 'AxisId'] = axisModel.id;\n  return item;\n}\n\nfunction illegalPoint(point) {\n  return !point || point[0] == null || isNaN(point[0]) || point[1] == null || isNaN(point[1]);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport AxisView from '../axis/AxisView';\nimport CartesianAxisPointer from './CartesianAxisPointer';\nimport AxisPointerModel from './AxisPointerModel';\nimport AxisPointerView from './AxisPointerView';\nimport { isArray } from 'zrender/lib/core/util';\nimport { collect } from './modelHelper';\nimport axisTrigger from './axisTrigger';\nexport function install(registers) {\n  AxisView.registerAxisPointerClass('CartesianAxisPointer', CartesianAxisPointer);\n  registers.registerComponentModel(AxisPointerModel);\n  registers.registerComponentView(AxisPointerView);\n  registers.registerPreprocessor(function (option) {\n    if (option) {\n      (!option.axisPointer || option.axisPointer.length === 0) && (option.axisPointer = {});\n      var link = option.axisPointer.link;\n\n      if (link && !isArray(link)) {\n        option.axisPointer.link = [link];\n      }\n    }\n  });\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, function (ecModel, api) {\n    ecModel.getComponent('axisPointer').coordSysAxesInfo = collect(ecModel, api);\n  });\n  registers.registerAction({\n    type: 'updateAxisPointer',\n    event: 'updateAxisPointer',\n    update: ':updateAxisPointer'\n  }, axisTrigger);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { install as installSimple } from './installSimple';\nimport { install as installAxisPointer } from '../axisPointer/install';\nimport { use } from '../../extension';\nexport function install(registers) {\n  use(installSimple);\n  use(installAxisPointer);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, hasOwn } from 'zrender/lib/core/util';\nvar deprecatedLogs = {};\nexport function isEC4CompatibleStyle(style, elType, hasOwnTextContentOption, hasOwnTextConfig) {\n  return style && (style.legacy || style.legacy !== false && !hasOwnTextContentOption && !hasOwnTextConfig && elType !== 'tspan' && (elType === 'text' || hasOwn(style, 'text')));\n}\nexport function convertFromEC4CompatibleStyle(hostStyle, elType, isNormal) {\n  var srcStyle = hostStyle;\n  var textConfig;\n  var textContent;\n  var textContentStyle;\n\n  if (elType === 'text') {\n    textContentStyle = srcStyle;\n  } else {\n    textContentStyle = {};\n    hasOwn(srcStyle, 'text') && (textContentStyle.text = srcStyle.text);\n    hasOwn(srcStyle, 'rich') && (textContentStyle.rich = srcStyle.rich);\n    hasOwn(srcStyle, 'textFill') && (textContentStyle.fill = srcStyle.textFill);\n    hasOwn(srcStyle, 'textStroke') && (textContentStyle.stroke = srcStyle.textStroke);\n    textContent = {\n      type: 'text',\n      style: textContentStyle,\n      silent: true\n    };\n    textConfig = {};\n    var hasOwnPos = hasOwn(srcStyle, 'textPosition');\n\n    if (isNormal) {\n      textConfig.position = hasOwnPos ? srcStyle.textPosition : 'inside';\n    } else {\n      hasOwnPos && (textConfig.position = srcStyle.textPosition);\n    }\n\n    hasOwn(srcStyle, 'textPosition') && (textConfig.position = srcStyle.textPosition);\n    hasOwn(srcStyle, 'textOffset') && (textConfig.offset = srcStyle.textOffset);\n    hasOwn(srcStyle, 'textRotation') && (textConfig.rotation = srcStyle.textRotation);\n    hasOwn(srcStyle, 'textDistance') && (textConfig.distance = srcStyle.textDistance);\n  }\n\n  convertEC4CompatibleRichItem(textContentStyle, hostStyle);\n  each(textContentStyle.rich, function (richItem) {\n    convertEC4CompatibleRichItem(richItem, richItem);\n  });\n  return {\n    textConfig: textConfig,\n    textContent: textContent\n  };\n}\n\nfunction convertEC4CompatibleRichItem(out, richItem) {\n  if (!richItem) {\n    return;\n  }\n\n  richItem.font = richItem.textFont || richItem.font;\n  hasOwn(richItem, 'textStrokeWidth') && (out.lineWidth = richItem.textStrokeWidth);\n  hasOwn(richItem, 'textAlign') && (out.align = richItem.textAlign);\n  hasOwn(richItem, 'textVerticalAlign') && (out.verticalAlign = richItem.textVerticalAlign);\n  hasOwn(richItem, 'textLineHeight') && (out.lineHeight = richItem.textLineHeight);\n  hasOwn(richItem, 'textWidth') && (out.width = richItem.textWidth);\n  hasOwn(richItem, 'textHeight') && (out.height = richItem.textHeight);\n  hasOwn(richItem, 'textBackgroundColor') && (out.backgroundColor = richItem.textBackgroundColor);\n  hasOwn(richItem, 'textPadding') && (out.padding = richItem.textPadding);\n  hasOwn(richItem, 'textBorderColor') && (out.borderColor = richItem.textBorderColor);\n  hasOwn(richItem, 'textBorderWidth') && (out.borderWidth = richItem.textBorderWidth);\n  hasOwn(richItem, 'textBorderRadius') && (out.borderRadius = richItem.textBorderRadius);\n  hasOwn(richItem, 'textBoxShadowColor') && (out.shadowColor = richItem.textBoxShadowColor);\n  hasOwn(richItem, 'textBoxShadowBlur') && (out.shadowBlur = richItem.textBoxShadowBlur);\n  hasOwn(richItem, 'textBoxShadowOffsetX') && (out.shadowOffsetX = richItem.textBoxShadowOffsetX);\n  hasOwn(richItem, 'textBoxShadowOffsetY') && (out.shadowOffsetY = richItem.textBoxShadowOffsetY);\n}\n\nexport function convertToEC4StyleForCustomSerise(itemStl, txStl, txCfg) {\n  var out = itemStl;\n  out.textPosition = out.textPosition || txCfg.position || 'inside';\n  txCfg.offset != null && (out.textOffset = txCfg.offset);\n  txCfg.rotation != null && (out.textRotation = txCfg.rotation);\n  txCfg.distance != null && (out.textDistance = txCfg.distance);\n  var isInside = out.textPosition.indexOf('inside') >= 0;\n  var hostFill = itemStl.fill || '#000';\n  convertToEC4RichItem(out, txStl);\n  var textFillNotSet = out.textFill == null;\n\n  if (isInside) {\n    if (textFillNotSet) {\n      out.textFill = txCfg.insideFill || '#fff';\n      !out.textStroke && txCfg.insideStroke && (out.textStroke = txCfg.insideStroke);\n      !out.textStroke && (out.textStroke = hostFill);\n      out.textStrokeWidth == null && (out.textStrokeWidth = 2);\n    }\n  } else {\n    if (textFillNotSet) {\n      out.textFill = txCfg.outsideFill || hostFill;\n    }\n\n    !out.textStroke && txCfg.outsideStroke && (out.textStroke = txCfg.outsideStroke);\n  }\n\n  out.text = txStl.text;\n  out.rich = txStl.rich;\n  each(txStl.rich, function (richItem) {\n    convertToEC4RichItem(richItem, richItem);\n  });\n  return out;\n}\n\nfunction convertToEC4RichItem(out, richItem) {\n  if (!richItem) {\n    return;\n  }\n\n  hasOwn(richItem, 'fill') && (out.textFill = richItem.fill);\n  hasOwn(richItem, 'stroke') && (out.textStroke = richItem.fill);\n  hasOwn(richItem, 'lineWidth') && (out.textStrokeWidth = richItem.lineWidth);\n  hasOwn(richItem, 'font') && (out.font = richItem.font);\n  hasOwn(richItem, 'fontStyle') && (out.fontStyle = richItem.fontStyle);\n  hasOwn(richItem, 'fontWeight') && (out.fontWeight = richItem.fontWeight);\n  hasOwn(richItem, 'fontSize') && (out.fontSize = richItem.fontSize);\n  hasOwn(richItem, 'fontFamily') && (out.fontFamily = richItem.fontFamily);\n  hasOwn(richItem, 'align') && (out.textAlign = richItem.align);\n  hasOwn(richItem, 'verticalAlign') && (out.textVerticalAlign = richItem.verticalAlign);\n  hasOwn(richItem, 'lineHeight') && (out.textLineHeight = richItem.lineHeight);\n  hasOwn(richItem, 'width') && (out.textWidth = richItem.width);\n  hasOwn(richItem, 'height') && (out.textHeight = richItem.height);\n  hasOwn(richItem, 'backgroundColor') && (out.textBackgroundColor = richItem.backgroundColor);\n  hasOwn(richItem, 'padding') && (out.textPadding = richItem.padding);\n  hasOwn(richItem, 'borderColor') && (out.textBorderColor = richItem.borderColor);\n  hasOwn(richItem, 'borderWidth') && (out.textBorderWidth = richItem.borderWidth);\n  hasOwn(richItem, 'borderRadius') && (out.textBorderRadius = richItem.borderRadius);\n  hasOwn(richItem, 'shadowColor') && (out.textBoxShadowColor = richItem.shadowColor);\n  hasOwn(richItem, 'shadowBlur') && (out.textBoxShadowBlur = richItem.shadowBlur);\n  hasOwn(richItem, 'shadowOffsetX') && (out.textBoxShadowOffsetX = richItem.shadowOffsetX);\n  hasOwn(richItem, 'shadowOffsetY') && (out.textBoxShadowOffsetY = richItem.shadowOffsetY);\n  hasOwn(richItem, 'textShadowColor') && (out.textShadowColor = richItem.textShadowColor);\n  hasOwn(richItem, 'textShadowBlur') && (out.textShadowBlur = richItem.textShadowBlur);\n  hasOwn(richItem, 'textShadowOffsetX') && (out.textShadowOffsetX = richItem.textShadowOffsetX);\n  hasOwn(richItem, 'textShadowOffsetY') && (out.textShadowOffsetY = richItem.textShadowOffsetY);\n}\n\nexport function warnDeprecated(deprecated, insteadApproach) {\n  if (process.env.NODE_ENV !== 'production') {\n    var key = deprecated + '^_^' + insteadApproach;\n\n    if (!deprecatedLogs[key]) {\n      console.warn(\"[ECharts] DEPRECATED: \\\"\" + deprecated + \"\\\" has been deprecated. \" + insteadApproach);\n      deprecatedLogs[key] = true;\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nimport * as graphicUtil from '../../util/graphic';\nimport * as layoutUtil from '../../util/layout';\nimport { parsePercent } from '../../util/number';\nimport ComponentModel from '../../model/Component';\nimport ComponentView from '../../view/Component';\nimport { getECData } from '../../util/innerStore';\nimport { isEC4CompatibleStyle, convertFromEC4CompatibleStyle } from '../../util/styleCompat';\nvar TRANSFORM_PROPS = {\n  x: 1,\n  y: 1,\n  scaleX: 1,\n  scaleY: 1,\n  originX: 1,\n  originY: 1,\n  rotation: 1\n};\n;\nvar inner = modelUtil.makeInner();\nvar _nonShapeGraphicElements = {\n  path: null,\n  compoundPath: null,\n  group: graphicUtil.Group,\n  image: graphicUtil.Image,\n  text: graphicUtil.Text\n};\n\nvar preprocessor = function (option) {\n  var graphicOption = option.graphic;\n\n  if (zrUtil.isArray(graphicOption)) {\n    if (!graphicOption[0] || !graphicOption[0].elements) {\n      option.graphic = [{\n        elements: graphicOption\n      }];\n    } else {\n      option.graphic = [option.graphic[0]];\n    }\n  } else if (graphicOption && !graphicOption.elements) {\n    option.graphic = [{\n      elements: [graphicOption]\n    }];\n  }\n};\n\n;\n\nvar GraphicComponentModel = function (_super) {\n  __extends(GraphicComponentModel, _super);\n\n  function GraphicComponentModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GraphicComponentModel.type;\n    return _this;\n  }\n\n  GraphicComponentModel.prototype.mergeOption = function (option, ecModel) {\n    var elements = this.option.elements;\n    this.option.elements = null;\n\n    _super.prototype.mergeOption.call(this, option, ecModel);\n\n    this.option.elements = elements;\n  };\n\n  GraphicComponentModel.prototype.optionUpdated = function (newOption, isInit) {\n    var thisOption = this.option;\n    var newList = (isInit ? thisOption : newOption).elements;\n    var existList = thisOption.elements = isInit ? [] : thisOption.elements;\n    var flattenedList = [];\n\n    this._flatten(newList, flattenedList, null);\n\n    var mappingResult = modelUtil.mappingToExists(existList, flattenedList, 'normalMerge');\n    var elOptionsToUpdate = this._elOptionsToUpdate = [];\n    zrUtil.each(mappingResult, function (resultItem, index) {\n      var newElOption = resultItem.newOption;\n\n      if (process.env.NODE_ENV !== 'production') {\n        zrUtil.assert(zrUtil.isObject(newElOption) || resultItem.existing, 'Empty graphic option definition');\n      }\n\n      if (!newElOption) {\n        return;\n      }\n\n      elOptionsToUpdate.push(newElOption);\n      setKeyInfoToNewElOption(resultItem, newElOption);\n      mergeNewElOptionToExist(existList, index, newElOption);\n      setLayoutInfoToExist(existList[index], newElOption);\n    }, this);\n\n    for (var i = existList.length - 1; i >= 0; i--) {\n      if (existList[i] == null) {\n        existList.splice(i, 1);\n      } else {\n        delete existList[i].$action;\n      }\n    }\n  };\n\n  GraphicComponentModel.prototype._flatten = function (optionList, result, parentOption) {\n    zrUtil.each(optionList, function (option) {\n      if (!option) {\n        return;\n      }\n\n      if (parentOption) {\n        option.parentOption = parentOption;\n      }\n\n      result.push(option);\n      var children = option.children;\n\n      if (option.type === 'group' && children) {\n        this._flatten(children, result, option);\n      }\n\n      delete option.children;\n    }, this);\n  };\n\n  GraphicComponentModel.prototype.useElOptionsToUpdate = function () {\n    var els = this._elOptionsToUpdate;\n    this._elOptionsToUpdate = null;\n    return els;\n  };\n\n  GraphicComponentModel.type = 'graphic';\n  GraphicComponentModel.defaultOption = {\n    elements: []\n  };\n  return GraphicComponentModel;\n}(ComponentModel);\n\nvar GraphicComponentView = function (_super) {\n  __extends(GraphicComponentView, _super);\n\n  function GraphicComponentView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GraphicComponentView.type;\n    return _this;\n  }\n\n  GraphicComponentView.prototype.init = function () {\n    this._elMap = zrUtil.createHashMap();\n  };\n\n  GraphicComponentView.prototype.render = function (graphicModel, ecModel, api) {\n    if (graphicModel !== this._lastGraphicModel) {\n      this._clear();\n    }\n\n    this._lastGraphicModel = graphicModel;\n\n    this._updateElements(graphicModel);\n\n    this._relocate(graphicModel, api);\n  };\n\n  GraphicComponentView.prototype._updateElements = function (graphicModel) {\n    var elOptionsToUpdate = graphicModel.useElOptionsToUpdate();\n\n    if (!elOptionsToUpdate) {\n      return;\n    }\n\n    var elMap = this._elMap;\n    var rootGroup = this.group;\n    zrUtil.each(elOptionsToUpdate, function (elOption) {\n      var id = modelUtil.convertOptionIdName(elOption.id, null);\n      var elExisting = id != null ? elMap.get(id) : null;\n      var parentId = modelUtil.convertOptionIdName(elOption.parentId, null);\n      var targetElParent = parentId != null ? elMap.get(parentId) : rootGroup;\n      var elType = elOption.type;\n      var elOptionStyle = elOption.style;\n\n      if (elType === 'text' && elOptionStyle) {\n        if (elOption.hv && elOption.hv[1]) {\n          elOptionStyle.textVerticalAlign = elOptionStyle.textBaseline = elOptionStyle.verticalAlign = elOptionStyle.align = null;\n        }\n      }\n\n      var textContentOption = elOption.textContent;\n      var textConfig = elOption.textConfig;\n\n      if (elOptionStyle && isEC4CompatibleStyle(elOptionStyle, elType, !!textConfig, !!textContentOption)) {\n        var convertResult = convertFromEC4CompatibleStyle(elOptionStyle, elType, true);\n\n        if (!textConfig && convertResult.textConfig) {\n          textConfig = elOption.textConfig = convertResult.textConfig;\n        }\n\n        if (!textContentOption && convertResult.textContent) {\n          textContentOption = convertResult.textContent;\n        }\n      }\n\n      var elOptionCleaned = getCleanedElOption(elOption);\n\n      if (process.env.NODE_ENV !== 'production') {\n        elExisting && zrUtil.assert(targetElParent === elExisting.parent, 'Changing parent is not supported.');\n      }\n\n      var $action = elOption.$action || 'merge';\n\n      if ($action === 'merge') {\n        elExisting ? elExisting.attr(elOptionCleaned) : createEl(id, targetElParent, elOptionCleaned, elMap);\n      } else if ($action === 'replace') {\n        removeEl(elExisting, elMap);\n        createEl(id, targetElParent, elOptionCleaned, elMap);\n      } else if ($action === 'remove') {\n        removeEl(elExisting, elMap);\n      }\n\n      var el = elMap.get(id);\n\n      if (el && textContentOption) {\n        if ($action === 'merge') {\n          var textContentExisting = el.getTextContent();\n          textContentExisting ? textContentExisting.attr(textContentOption) : el.setTextContent(new graphicUtil.Text(textContentOption));\n        } else if ($action === 'replace') {\n          el.setTextContent(new graphicUtil.Text(textContentOption));\n        }\n      }\n\n      if (el) {\n        var elInner = inner(el);\n        elInner.__ecGraphicWidthOption = elOption.width;\n        elInner.__ecGraphicHeightOption = elOption.height;\n        setEventData(el, graphicModel, elOption);\n      }\n    });\n  };\n\n  GraphicComponentView.prototype._relocate = function (graphicModel, api) {\n    var elOptions = graphicModel.option.elements;\n    var rootGroup = this.group;\n    var elMap = this._elMap;\n    var apiWidth = api.getWidth();\n    var apiHeight = api.getHeight();\n\n    for (var i = 0; i < elOptions.length; i++) {\n      var elOption = elOptions[i];\n      var id = modelUtil.convertOptionIdName(elOption.id, null);\n      var el = id != null ? elMap.get(id) : null;\n\n      if (!el || !el.isGroup) {\n        continue;\n      }\n\n      var parentEl = el.parent;\n      var isParentRoot = parentEl === rootGroup;\n      var elInner = inner(el);\n      var parentElInner = inner(parentEl);\n      elInner.__ecGraphicWidth = parsePercent(elInner.__ecGraphicWidthOption, isParentRoot ? apiWidth : parentElInner.__ecGraphicWidth) || 0;\n      elInner.__ecGraphicHeight = parsePercent(elInner.__ecGraphicHeightOption, isParentRoot ? apiHeight : parentElInner.__ecGraphicHeight) || 0;\n    }\n\n    for (var i = elOptions.length - 1; i >= 0; i--) {\n      var elOption = elOptions[i];\n      var id = modelUtil.convertOptionIdName(elOption.id, null);\n      var el = id != null ? elMap.get(id) : null;\n\n      if (!el) {\n        continue;\n      }\n\n      var parentEl = el.parent;\n      var parentElInner = inner(parentEl);\n      var containerInfo = parentEl === rootGroup ? {\n        width: apiWidth,\n        height: apiHeight\n      } : {\n        width: parentElInner.__ecGraphicWidth,\n        height: parentElInner.__ecGraphicHeight\n      };\n      layoutUtil.positionElement(el, elOption, containerInfo, null, {\n        hv: elOption.hv,\n        boundingMode: elOption.bounding\n      });\n    }\n  };\n\n  GraphicComponentView.prototype._clear = function () {\n    var elMap = this._elMap;\n    elMap.each(function (el) {\n      removeEl(el, elMap);\n    });\n    this._elMap = zrUtil.createHashMap();\n  };\n\n  GraphicComponentView.prototype.dispose = function () {\n    this._clear();\n  };\n\n  GraphicComponentView.type = 'graphic';\n  return GraphicComponentView;\n}(ComponentView);\n\nfunction createEl(id, targetElParent, elOption, elMap) {\n  var graphicType = elOption.type;\n\n  if (process.env.NODE_ENV !== 'production') {\n    zrUtil.assert(graphicType, 'graphic type MUST be set');\n  }\n\n  var Clz = zrUtil.hasOwn(_nonShapeGraphicElements, graphicType) ? _nonShapeGraphicElements[graphicType] : graphicUtil.getShapeClass(graphicType);\n\n  if (process.env.NODE_ENV !== 'production') {\n    zrUtil.assert(Clz, 'graphic type can not be found');\n  }\n\n  var el = new Clz(elOption);\n  targetElParent.add(el);\n  elMap.set(id, el);\n  inner(el).__ecGraphicId = id;\n}\n\nfunction removeEl(elExisting, elMap) {\n  var existElParent = elExisting && elExisting.parent;\n\n  if (existElParent) {\n    elExisting.type === 'group' && elExisting.traverse(function (el) {\n      removeEl(el, elMap);\n    });\n    elMap.removeKey(inner(elExisting).__ecGraphicId);\n    existElParent.remove(elExisting);\n  }\n}\n\nfunction getCleanedElOption(elOption) {\n  elOption = zrUtil.extend({}, elOption);\n  zrUtil.each(['id', 'parentId', '$action', 'hv', 'bounding', 'textContent'].concat(layoutUtil.LOCATION_PARAMS), function (name) {\n    delete elOption[name];\n  });\n  return elOption;\n}\n\nfunction isSetLoc(obj, props) {\n  var isSet;\n  zrUtil.each(props, function (prop) {\n    obj[prop] != null && obj[prop] !== 'auto' && (isSet = true);\n  });\n  return isSet;\n}\n\nfunction setKeyInfoToNewElOption(resultItem, newElOption) {\n  var existElOption = resultItem.existing;\n  newElOption.id = resultItem.keyInfo.id;\n  !newElOption.type && existElOption && (newElOption.type = existElOption.type);\n\n  if (newElOption.parentId == null) {\n    var newElParentOption = newElOption.parentOption;\n\n    if (newElParentOption) {\n      newElOption.parentId = newElParentOption.id;\n    } else if (existElOption) {\n      newElOption.parentId = existElOption.parentId;\n    }\n  }\n\n  newElOption.parentOption = null;\n}\n\nfunction mergeNewElOptionToExist(existList, index, newElOption) {\n  var newElOptCopy = zrUtil.extend({}, newElOption);\n  var existElOption = existList[index];\n  var $action = newElOption.$action || 'merge';\n\n  if ($action === 'merge') {\n    if (existElOption) {\n      if (process.env.NODE_ENV !== 'production') {\n        var newType = newElOption.type;\n        zrUtil.assert(!newType || existElOption.type === newType, 'Please set $action: \"replace\" to change `type`');\n      }\n\n      zrUtil.merge(existElOption, newElOptCopy, true);\n      layoutUtil.mergeLayoutParam(existElOption, newElOptCopy, {\n        ignoreSize: true\n      });\n      layoutUtil.copyLayoutParams(newElOption, existElOption);\n    } else {\n      existList[index] = newElOptCopy;\n    }\n  } else if ($action === 'replace') {\n    existList[index] = newElOptCopy;\n  } else if ($action === 'remove') {\n    existElOption && (existList[index] = null);\n  }\n}\n\nfunction setLayoutInfoToExist(existItem, newElOption) {\n  if (!existItem) {\n    return;\n  }\n\n  existItem.hv = newElOption.hv = [isSetLoc(newElOption, ['left', 'right']), isSetLoc(newElOption, ['top', 'bottom'])];\n\n  if (existItem.type === 'group') {\n    var existingGroupOpt = existItem;\n    var newGroupOpt = newElOption;\n    existingGroupOpt.width == null && (existingGroupOpt.width = newGroupOpt.width = 0);\n    existingGroupOpt.height == null && (existingGroupOpt.height = newGroupOpt.height = 0);\n  }\n}\n\nfunction setEventData(el, graphicModel, elOption) {\n  var eventData = getECData(el).eventData;\n\n  if (!el.silent && !el.ignore && !eventData) {\n    eventData = getECData(el).eventData = {\n      componentType: 'graphic',\n      componentIndex: graphicModel.componentIndex,\n      name: el.name\n    };\n  }\n\n  if (eventData) {\n    eventData.info = elOption.info;\n  }\n}\n\nexport function install(registers) {\n  registers.registerComponentModel(GraphicComponentModel);\n  registers.registerComponentView(GraphicComponentView);\n  registers.registerPreprocessor(preprocessor);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { indexOf, createHashMap, assert } from 'zrender/lib/core/util';\nexport var DATA_ZOOM_AXIS_DIMENSIONS = ['x', 'y', 'radius', 'angle', 'single'];\nvar SERIES_COORDS = ['cartesian2d', 'polar', 'singleAxis'];\nexport function isCoordSupported(seriesModel) {\n  var coordType = seriesModel.get('coordinateSystem');\n  return indexOf(SERIES_COORDS, coordType) >= 0;\n}\nexport function getAxisMainType(axisDim) {\n  if (process.env.NODE_ENV !== 'production') {\n    assert(axisDim);\n  }\n\n  return axisDim + 'Axis';\n}\nexport function getAxisIndexPropName(axisDim) {\n  if (process.env.NODE_ENV !== 'production') {\n    assert(axisDim);\n  }\n\n  return axisDim + 'AxisIndex';\n}\nexport function getAxisIdPropName(axisDim) {\n  if (process.env.NODE_ENV !== 'production') {\n    assert(axisDim);\n  }\n\n  return axisDim + 'AxisId';\n}\nexport function findEffectedDataZooms(ecModel, payload) {\n  var axisRecords = createHashMap();\n  var effectedModels = [];\n  var effectedModelMap = createHashMap();\n  ecModel.eachComponent({\n    mainType: 'dataZoom',\n    query: payload\n  }, function (dataZoomModel) {\n    if (!effectedModelMap.get(dataZoomModel.uid)) {\n      addToEffected(dataZoomModel);\n    }\n  });\n  var foundNewLink;\n\n  do {\n    foundNewLink = false;\n    ecModel.eachComponent('dataZoom', processSingle);\n  } while (foundNewLink);\n\n  function processSingle(dataZoomModel) {\n    if (!effectedModelMap.get(dataZoomModel.uid) && isLinked(dataZoomModel)) {\n      addToEffected(dataZoomModel);\n      foundNewLink = true;\n    }\n  }\n\n  function addToEffected(dataZoom) {\n    effectedModelMap.set(dataZoom.uid, true);\n    effectedModels.push(dataZoom);\n    markAxisControlled(dataZoom);\n  }\n\n  function isLinked(dataZoomModel) {\n    var isLink = false;\n    dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n      var axisIdxArr = axisRecords.get(axisDim);\n\n      if (axisIdxArr && axisIdxArr[axisIndex]) {\n        isLink = true;\n      }\n    });\n    return isLink;\n  }\n\n  function markAxisControlled(dataZoomModel) {\n    dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n      (axisRecords.get(axisDim) || axisRecords.set(axisDim, []))[axisIndex] = true;\n    });\n  }\n\n  return effectedModels;\n}\nexport function collectReferCoordSysModelInfo(dataZoomModel) {\n  var ecModel = dataZoomModel.ecModel;\n  var coordSysInfoWrap = {\n    infoList: [],\n    infoMap: createHashMap()\n  };\n  dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n    var axisModel = ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n\n    if (!axisModel) {\n      return;\n    }\n\n    var coordSysModel = axisModel.getCoordSysModel();\n\n    if (!coordSysModel) {\n      return;\n    }\n\n    var coordSysUid = coordSysModel.uid;\n    var coordSysInfo = coordSysInfoWrap.infoMap.get(coordSysUid);\n\n    if (!coordSysInfo) {\n      coordSysInfo = {\n        model: coordSysModel,\n        axisModels: []\n      };\n      coordSysInfoWrap.infoList.push(coordSysInfo);\n      coordSysInfoWrap.infoMap.set(coordSysUid, coordSysInfo);\n    }\n\n    coordSysInfo.axisModels.push(axisModel);\n  });\n  return coordSysInfoWrap;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { each, createHashMap, merge, assert } from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\nimport { getAxisMainType, DATA_ZOOM_AXIS_DIMENSIONS } from './helper';\nimport { MULTIPLE_REFERRING, SINGLE_REFERRING } from '../../util/model';\n\nvar DataZoomAxisInfo = function () {\n  function DataZoomAxisInfo() {\n    this.indexList = [];\n    this.indexMap = [];\n  }\n\n  DataZoomAxisInfo.prototype.add = function (axisCmptIdx) {\n    if (!this.indexMap[axisCmptIdx]) {\n      this.indexList.push(axisCmptIdx);\n      this.indexMap[axisCmptIdx] = true;\n    }\n  };\n\n  return DataZoomAxisInfo;\n}();\n\nvar DataZoomModel = function (_super) {\n  __extends(DataZoomModel, _super);\n\n  function DataZoomModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = DataZoomModel.type;\n    _this._autoThrottle = true;\n    _this._noTarget = true;\n    _this._rangePropMode = ['percent', 'percent'];\n    return _this;\n  }\n\n  DataZoomModel.prototype.init = function (option, parentModel, ecModel) {\n    var inputRawOption = retrieveRawOption(option);\n    this.settledOption = inputRawOption;\n    this.mergeDefaultAndTheme(option, ecModel);\n\n    this._doInit(inputRawOption);\n  };\n\n  DataZoomModel.prototype.mergeOption = function (newOption) {\n    var inputRawOption = retrieveRawOption(newOption);\n    merge(this.option, newOption, true);\n    merge(this.settledOption, inputRawOption, true);\n\n    this._doInit(inputRawOption);\n  };\n\n  DataZoomModel.prototype._doInit = function (inputRawOption) {\n    var thisOption = this.option;\n\n    this._setDefaultThrottle(inputRawOption);\n\n    this._updateRangeUse(inputRawOption);\n\n    var settledOption = this.settledOption;\n    each([['start', 'startValue'], ['end', 'endValue']], function (names, index) {\n      if (this._rangePropMode[index] === 'value') {\n        thisOption[names[0]] = settledOption[names[0]] = null;\n      }\n    }, this);\n\n    this._resetTarget();\n  };\n\n  DataZoomModel.prototype._resetTarget = function () {\n    var optionOrient = this.get('orient', true);\n    var targetAxisIndexMap = this._targetAxisInfoMap = createHashMap();\n\n    var hasAxisSpecified = this._fillSpecifiedTargetAxis(targetAxisIndexMap);\n\n    if (hasAxisSpecified) {\n      this._orient = optionOrient || this._makeAutoOrientByTargetAxis();\n    } else {\n      this._orient = optionOrient || 'horizontal';\n\n      this._fillAutoTargetAxisByOrient(targetAxisIndexMap, this._orient);\n    }\n\n    this._noTarget = true;\n    targetAxisIndexMap.each(function (axisInfo) {\n      if (axisInfo.indexList.length) {\n        this._noTarget = false;\n      }\n    }, this);\n  };\n\n  DataZoomModel.prototype._fillSpecifiedTargetAxis = function (targetAxisIndexMap) {\n    var hasAxisSpecified = false;\n    each(DATA_ZOOM_AXIS_DIMENSIONS, function (axisDim) {\n      var refering = this.getReferringComponents(getAxisMainType(axisDim), MULTIPLE_REFERRING);\n\n      if (!refering.specified) {\n        return;\n      }\n\n      hasAxisSpecified = true;\n      var axisInfo = new DataZoomAxisInfo();\n      each(refering.models, function (axisModel) {\n        axisInfo.add(axisModel.componentIndex);\n      });\n      targetAxisIndexMap.set(axisDim, axisInfo);\n    }, this);\n    return hasAxisSpecified;\n  };\n\n  DataZoomModel.prototype._fillAutoTargetAxisByOrient = function (targetAxisIndexMap, orient) {\n    var ecModel = this.ecModel;\n    var needAuto = true;\n\n    if (needAuto) {\n      var axisDim = orient === 'vertical' ? 'y' : 'x';\n      var axisModels = ecModel.findComponents({\n        mainType: axisDim + 'Axis'\n      });\n      setParallelAxis(axisModels, axisDim);\n    }\n\n    if (needAuto) {\n      var axisModels = ecModel.findComponents({\n        mainType: 'singleAxis',\n        filter: function (axisModel) {\n          return axisModel.get('orient', true) === orient;\n        }\n      });\n      setParallelAxis(axisModels, 'single');\n    }\n\n    function setParallelAxis(axisModels, axisDim) {\n      var axisModel = axisModels[0];\n\n      if (!axisModel) {\n        return;\n      }\n\n      var axisInfo = new DataZoomAxisInfo();\n      axisInfo.add(axisModel.componentIndex);\n      targetAxisIndexMap.set(axisDim, axisInfo);\n      needAuto = false;\n\n      if (axisDim === 'x' || axisDim === 'y') {\n        var gridModel_1 = axisModel.getReferringComponents('grid', SINGLE_REFERRING).models[0];\n        gridModel_1 && each(axisModels, function (axModel) {\n          if (axisModel.componentIndex !== axModel.componentIndex && gridModel_1 === axModel.getReferringComponents('grid', SINGLE_REFERRING).models[0]) {\n            axisInfo.add(axModel.componentIndex);\n          }\n        });\n      }\n    }\n\n    if (needAuto) {\n      each(DATA_ZOOM_AXIS_DIMENSIONS, function (axisDim) {\n        if (!needAuto) {\n          return;\n        }\n\n        var axisModels = ecModel.findComponents({\n          mainType: getAxisMainType(axisDim),\n          filter: function (axisModel) {\n            return axisModel.get('type', true) === 'category';\n          }\n        });\n\n        if (axisModels[0]) {\n          var axisInfo = new DataZoomAxisInfo();\n          axisInfo.add(axisModels[0].componentIndex);\n          targetAxisIndexMap.set(axisDim, axisInfo);\n          needAuto = false;\n        }\n      }, this);\n    }\n  };\n\n  DataZoomModel.prototype._makeAutoOrientByTargetAxis = function () {\n    var dim;\n    this.eachTargetAxis(function (axisDim) {\n      !dim && (dim = axisDim);\n    }, this);\n    return dim === 'y' ? 'vertical' : 'horizontal';\n  };\n\n  DataZoomModel.prototype._setDefaultThrottle = function (inputRawOption) {\n    if (inputRawOption.hasOwnProperty('throttle')) {\n      this._autoThrottle = false;\n    }\n\n    if (this._autoThrottle) {\n      var globalOption = this.ecModel.option;\n      this.option.throttle = globalOption.animation && globalOption.animationDurationUpdate > 0 ? 100 : 20;\n    }\n  };\n\n  DataZoomModel.prototype._updateRangeUse = function (inputRawOption) {\n    var rangePropMode = this._rangePropMode;\n    var rangeModeInOption = this.get('rangeMode');\n    each([['start', 'startValue'], ['end', 'endValue']], function (names, index) {\n      var percentSpecified = inputRawOption[names[0]] != null;\n      var valueSpecified = inputRawOption[names[1]] != null;\n\n      if (percentSpecified && !valueSpecified) {\n        rangePropMode[index] = 'percent';\n      } else if (!percentSpecified && valueSpecified) {\n        rangePropMode[index] = 'value';\n      } else if (rangeModeInOption) {\n        rangePropMode[index] = rangeModeInOption[index];\n      } else if (percentSpecified) {\n        rangePropMode[index] = 'percent';\n      }\n    });\n  };\n\n  DataZoomModel.prototype.noTarget = function () {\n    return this._noTarget;\n  };\n\n  DataZoomModel.prototype.getFirstTargetAxisModel = function () {\n    var firstAxisModel;\n    this.eachTargetAxis(function (axisDim, axisIndex) {\n      if (firstAxisModel == null) {\n        firstAxisModel = this.ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n      }\n    }, this);\n    return firstAxisModel;\n  };\n\n  DataZoomModel.prototype.eachTargetAxis = function (callback, context) {\n    this._targetAxisInfoMap.each(function (axisInfo, axisDim) {\n      each(axisInfo.indexList, function (axisIndex) {\n        callback.call(context, axisDim, axisIndex);\n      });\n    });\n  };\n\n  DataZoomModel.prototype.getAxisProxy = function (axisDim, axisIndex) {\n    var axisModel = this.getAxisModel(axisDim, axisIndex);\n\n    if (axisModel) {\n      return axisModel.__dzAxisProxy;\n    }\n  };\n\n  DataZoomModel.prototype.getAxisModel = function (axisDim, axisIndex) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(axisDim && axisIndex != null);\n    }\n\n    var axisInfo = this._targetAxisInfoMap.get(axisDim);\n\n    if (axisInfo && axisInfo.indexMap[axisIndex]) {\n      return this.ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n    }\n  };\n\n  DataZoomModel.prototype.setRawRange = function (opt) {\n    var thisOption = this.option;\n    var settledOption = this.settledOption;\n    each([['start', 'startValue'], ['end', 'endValue']], function (names) {\n      if (opt[names[0]] != null || opt[names[1]] != null) {\n        thisOption[names[0]] = settledOption[names[0]] = opt[names[0]];\n        thisOption[names[1]] = settledOption[names[1]] = opt[names[1]];\n      }\n    }, this);\n\n    this._updateRangeUse(opt);\n  };\n\n  DataZoomModel.prototype.setCalculatedRange = function (opt) {\n    var option = this.option;\n    each(['start', 'startValue', 'end', 'endValue'], function (name) {\n      option[name] = opt[name];\n    });\n  };\n\n  DataZoomModel.prototype.getPercentRange = function () {\n    var axisProxy = this.findRepresentativeAxisProxy();\n\n    if (axisProxy) {\n      return axisProxy.getDataPercentWindow();\n    }\n  };\n\n  DataZoomModel.prototype.getValueRange = function (axisDim, axisIndex) {\n    if (axisDim == null && axisIndex == null) {\n      var axisProxy = this.findRepresentativeAxisProxy();\n\n      if (axisProxy) {\n        return axisProxy.getDataValueWindow();\n      }\n    } else {\n      return this.getAxisProxy(axisDim, axisIndex).getDataValueWindow();\n    }\n  };\n\n  DataZoomModel.prototype.findRepresentativeAxisProxy = function (axisModel) {\n    if (axisModel) {\n      return axisModel.__dzAxisProxy;\n    }\n\n    var firstProxy;\n\n    var axisDimList = this._targetAxisInfoMap.keys();\n\n    for (var i = 0; i < axisDimList.length; i++) {\n      var axisDim = axisDimList[i];\n\n      var axisInfo = this._targetAxisInfoMap.get(axisDim);\n\n      for (var j = 0; j < axisInfo.indexList.length; j++) {\n        var proxy = this.getAxisProxy(axisDim, axisInfo.indexList[j]);\n\n        if (proxy.hostedBy(this)) {\n          return proxy;\n        }\n\n        if (!firstProxy) {\n          firstProxy = proxy;\n        }\n      }\n    }\n\n    return firstProxy;\n  };\n\n  DataZoomModel.prototype.getRangePropMode = function () {\n    return this._rangePropMode.slice();\n  };\n\n  DataZoomModel.prototype.getOrient = function () {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(this._orient);\n    }\n\n    return this._orient;\n  };\n\n  DataZoomModel.type = 'dataZoom';\n  DataZoomModel.dependencies = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'series', 'toolbox'];\n  DataZoomModel.defaultOption = {\n    zlevel: 0,\n    z: 4,\n    filterMode: 'filter',\n    start: 0,\n    end: 100\n  };\n  return DataZoomModel;\n}(ComponentModel);\n\nfunction retrieveRawOption(option) {\n  var ret = {};\n  each(['start', 'end', 'startValue', 'endValue', 'throttle'], function (name) {\n    option.hasOwnProperty(name) && (ret[name] = option[name]);\n  });\n  return ret;\n}\n\nexport default DataZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport DataZoomModel from './DataZoomModel';\n\nvar SelectDataZoomModel = function (_super) {\n  __extends(SelectDataZoomModel, _super);\n\n  function SelectDataZoomModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SelectDataZoomModel.type;\n    return _this;\n  }\n\n  SelectDataZoomModel.type = 'dataZoom.select';\n  return SelectDataZoomModel;\n}(DataZoomModel);\n\nexport default SelectDataZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component';\n\nvar DataZoomView = function (_super) {\n  __extends(DataZoomView, _super);\n\n  function DataZoomView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = DataZoomView.type;\n    return _this;\n  }\n\n  DataZoomView.prototype.render = function (dataZoomModel, ecModel, api, payload) {\n    this.dataZoomModel = dataZoomModel;\n    this.ecModel = ecModel;\n    this.api = api;\n  };\n\n  DataZoomView.type = 'dataZoom';\n  return DataZoomView;\n}(ComponentView);\n\nexport default DataZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport DataZoomView from './DataZoomView';\n\nvar SelectDataZoomView = function (_super) {\n  __extends(SelectDataZoomView, _super);\n\n  function SelectDataZoomView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SelectDataZoomView.type;\n    return _this;\n  }\n\n  SelectDataZoomView.type = 'dataZoom.select';\n  return SelectDataZoomView;\n}(DataZoomView);\n\nexport default SelectDataZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function sliderMove(delta, handleEnds, extent, handleIndex, minSpan, maxSpan) {\n  delta = delta || 0;\n  var extentSpan = extent[1] - extent[0];\n\n  if (minSpan != null) {\n    minSpan = restrict(minSpan, [0, extentSpan]);\n  }\n\n  if (maxSpan != null) {\n    maxSpan = Math.max(maxSpan, minSpan != null ? minSpan : 0);\n  }\n\n  if (handleIndex === 'all') {\n    var handleSpan = Math.abs(handleEnds[1] - handleEnds[0]);\n    handleSpan = restrict(handleSpan, [0, extentSpan]);\n    minSpan = maxSpan = restrict(handleSpan, [minSpan, maxSpan]);\n    handleIndex = 0;\n  }\n\n  handleEnds[0] = restrict(handleEnds[0], extent);\n  handleEnds[1] = restrict(handleEnds[1], extent);\n  var originalDistSign = getSpanSign(handleEnds, handleIndex);\n  handleEnds[handleIndex] += delta;\n  var extentMinSpan = minSpan || 0;\n  var realExtent = extent.slice();\n  originalDistSign.sign < 0 ? realExtent[0] += extentMinSpan : realExtent[1] -= extentMinSpan;\n  handleEnds[handleIndex] = restrict(handleEnds[handleIndex], realExtent);\n  var currDistSign;\n  currDistSign = getSpanSign(handleEnds, handleIndex);\n\n  if (minSpan != null && (currDistSign.sign !== originalDistSign.sign || currDistSign.span < minSpan)) {\n    handleEnds[1 - handleIndex] = handleEnds[handleIndex] + originalDistSign.sign * minSpan;\n  }\n\n  currDistSign = getSpanSign(handleEnds, handleIndex);\n\n  if (maxSpan != null && currDistSign.span > maxSpan) {\n    handleEnds[1 - handleIndex] = handleEnds[handleIndex] + currDistSign.sign * maxSpan;\n  }\n\n  return handleEnds;\n}\n\nfunction getSpanSign(handleEnds, handleIndex) {\n  var dist = handleEnds[handleIndex] - handleEnds[1 - handleIndex];\n  return {\n    span: Math.abs(dist),\n    sign: dist > 0 ? -1 : dist < 0 ? 1 : handleIndex ? -1 : 1\n  };\n}\n\nfunction restrict(value, extend) {\n  return Math.min(extend[1] != null ? extend[1] : Infinity, Math.max(extend[0] != null ? extend[0] : -Infinity, value));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as numberUtil from '../../util/number';\nimport sliderMove from '../helper/sliderMove';\nimport { unionAxisExtentFromData } from '../../coord/axisHelper';\nimport { ensureScaleRawExtentInfo } from '../../coord/scaleRawExtentInfo';\nimport { getAxisMainType, isCoordSupported } from './helper';\nimport { SINGLE_REFERRING } from '../../util/model';\nvar each = zrUtil.each;\nvar asc = numberUtil.asc;\n\nvar AxisProxy = function () {\n  function AxisProxy(dimName, axisIndex, dataZoomModel, ecModel) {\n    this._dimName = dimName;\n    this._axisIndex = axisIndex;\n    this.ecModel = ecModel;\n    this._dataZoomModel = dataZoomModel;\n  }\n\n  AxisProxy.prototype.hostedBy = function (dataZoomModel) {\n    return this._dataZoomModel === dataZoomModel;\n  };\n\n  AxisProxy.prototype.getDataValueWindow = function () {\n    return this._valueWindow.slice();\n  };\n\n  AxisProxy.prototype.getDataPercentWindow = function () {\n    return this._percentWindow.slice();\n  };\n\n  AxisProxy.prototype.getTargetSeriesModels = function () {\n    var seriesModels = [];\n    this.ecModel.eachSeries(function (seriesModel) {\n      if (isCoordSupported(seriesModel)) {\n        var axisMainType = getAxisMainType(this._dimName);\n        var axisModel = seriesModel.getReferringComponents(axisMainType, SINGLE_REFERRING).models[0];\n\n        if (axisModel && this._axisIndex === axisModel.componentIndex) {\n          seriesModels.push(seriesModel);\n        }\n      }\n    }, this);\n    return seriesModels;\n  };\n\n  AxisProxy.prototype.getAxisModel = function () {\n    return this.ecModel.getComponent(this._dimName + 'Axis', this._axisIndex);\n  };\n\n  AxisProxy.prototype.getMinMaxSpan = function () {\n    return zrUtil.clone(this._minMaxSpan);\n  };\n\n  AxisProxy.prototype.calculateDataWindow = function (opt) {\n    var dataExtent = this._dataExtent;\n    var axisModel = this.getAxisModel();\n    var scale = axisModel.axis.scale;\n\n    var rangePropMode = this._dataZoomModel.getRangePropMode();\n\n    var percentExtent = [0, 100];\n    var percentWindow = [];\n    var valueWindow = [];\n    var hasPropModeValue;\n    each(['start', 'end'], function (prop, idx) {\n      var boundPercent = opt[prop];\n      var boundValue = opt[prop + 'Value'];\n\n      if (rangePropMode[idx] === 'percent') {\n        boundPercent == null && (boundPercent = percentExtent[idx]);\n        boundValue = scale.parse(numberUtil.linearMap(boundPercent, percentExtent, dataExtent));\n      } else {\n        hasPropModeValue = true;\n        boundValue = boundValue == null ? dataExtent[idx] : scale.parse(boundValue);\n        boundPercent = numberUtil.linearMap(boundValue, dataExtent, percentExtent);\n      }\n\n      valueWindow[idx] = boundValue;\n      percentWindow[idx] = boundPercent;\n    });\n    asc(valueWindow);\n    asc(percentWindow);\n    var spans = this._minMaxSpan;\n    hasPropModeValue ? restrictSet(valueWindow, percentWindow, dataExtent, percentExtent, false) : restrictSet(percentWindow, valueWindow, percentExtent, dataExtent, true);\n\n    function restrictSet(fromWindow, toWindow, fromExtent, toExtent, toValue) {\n      var suffix = toValue ? 'Span' : 'ValueSpan';\n      sliderMove(0, fromWindow, fromExtent, 'all', spans['min' + suffix], spans['max' + suffix]);\n\n      for (var i = 0; i < 2; i++) {\n        toWindow[i] = numberUtil.linearMap(fromWindow[i], fromExtent, toExtent, true);\n        toValue && (toWindow[i] = scale.parse(toWindow[i]));\n      }\n    }\n\n    return {\n      valueWindow: valueWindow,\n      percentWindow: percentWindow\n    };\n  };\n\n  AxisProxy.prototype.reset = function (dataZoomModel) {\n    if (dataZoomModel !== this._dataZoomModel) {\n      return;\n    }\n\n    var targetSeries = this.getTargetSeriesModels();\n    this._dataExtent = calculateDataExtent(this, this._dimName, targetSeries);\n\n    this._updateMinMaxSpan();\n\n    var dataWindow = this.calculateDataWindow(dataZoomModel.settledOption);\n    this._valueWindow = dataWindow.valueWindow;\n    this._percentWindow = dataWindow.percentWindow;\n\n    this._setAxisModel();\n  };\n\n  AxisProxy.prototype.filterData = function (dataZoomModel, api) {\n    if (dataZoomModel !== this._dataZoomModel) {\n      return;\n    }\n\n    var axisDim = this._dimName;\n    var seriesModels = this.getTargetSeriesModels();\n    var filterMode = dataZoomModel.get('filterMode');\n    var valueWindow = this._valueWindow;\n\n    if (filterMode === 'none') {\n      return;\n    }\n\n    each(seriesModels, function (seriesModel) {\n      var seriesData = seriesModel.getData();\n      var dataDims = seriesData.mapDimensionsAll(axisDim);\n\n      if (!dataDims.length) {\n        return;\n      }\n\n      if (filterMode === 'weakFilter') {\n        seriesData.filterSelf(function (dataIndex) {\n          var leftOut;\n          var rightOut;\n          var hasValue;\n\n          for (var i = 0; i < dataDims.length; i++) {\n            var value = seriesData.get(dataDims[i], dataIndex);\n            var thisHasValue = !isNaN(value);\n            var thisLeftOut = value < valueWindow[0];\n            var thisRightOut = value > valueWindow[1];\n\n            if (thisHasValue && !thisLeftOut && !thisRightOut) {\n              return true;\n            }\n\n            thisHasValue && (hasValue = true);\n            thisLeftOut && (leftOut = true);\n            thisRightOut && (rightOut = true);\n          }\n\n          return hasValue && leftOut && rightOut;\n        });\n      } else {\n        each(dataDims, function (dim) {\n          if (filterMode === 'empty') {\n            seriesModel.setData(seriesData = seriesData.map(dim, function (value) {\n              return !isInWindow(value) ? NaN : value;\n            }));\n          } else {\n            var range = {};\n            range[dim] = valueWindow;\n            seriesData.selectRange(range);\n          }\n        });\n      }\n\n      each(dataDims, function (dim) {\n        seriesData.setApproximateExtent(valueWindow, dim);\n      });\n    });\n\n    function isInWindow(value) {\n      return value >= valueWindow[0] && value <= valueWindow[1];\n    }\n  };\n\n  AxisProxy.prototype._updateMinMaxSpan = function () {\n    var minMaxSpan = this._minMaxSpan = {};\n    var dataZoomModel = this._dataZoomModel;\n    var dataExtent = this._dataExtent;\n    each(['min', 'max'], function (minMax) {\n      var percentSpan = dataZoomModel.get(minMax + 'Span');\n      var valueSpan = dataZoomModel.get(minMax + 'ValueSpan');\n      valueSpan != null && (valueSpan = this.getAxisModel().axis.scale.parse(valueSpan));\n\n      if (valueSpan != null) {\n        percentSpan = numberUtil.linearMap(dataExtent[0] + valueSpan, dataExtent, [0, 100], true);\n      } else if (percentSpan != null) {\n        valueSpan = numberUtil.linearMap(percentSpan, [0, 100], dataExtent, true) - dataExtent[0];\n      }\n\n      minMaxSpan[minMax + 'Span'] = percentSpan;\n      minMaxSpan[minMax + 'ValueSpan'] = valueSpan;\n    }, this);\n  };\n\n  AxisProxy.prototype._setAxisModel = function () {\n    var axisModel = this.getAxisModel();\n    var percentWindow = this._percentWindow;\n    var valueWindow = this._valueWindow;\n\n    if (!percentWindow) {\n      return;\n    }\n\n    var precision = numberUtil.getPixelPrecision(valueWindow, [0, 500]);\n    precision = Math.min(precision, 20);\n    var rawExtentInfo = axisModel.axis.scale.rawExtentInfo;\n\n    if (percentWindow[0] !== 0) {\n      rawExtentInfo.setDeterminedMinMax('min', +valueWindow[0].toFixed(precision));\n    }\n\n    if (percentWindow[1] !== 100) {\n      rawExtentInfo.setDeterminedMinMax('max', +valueWindow[1].toFixed(precision));\n    }\n\n    rawExtentInfo.freeze();\n  };\n\n  return AxisProxy;\n}();\n\nfunction calculateDataExtent(axisProxy, axisDim, seriesModels) {\n  var dataExtent = [Infinity, -Infinity];\n  each(seriesModels, function (seriesModel) {\n    unionAxisExtentFromData(dataExtent, seriesModel.getData(), axisDim);\n  });\n  var axisModel = axisProxy.getAxisModel();\n  var rawExtentResult = ensureScaleRawExtentInfo(axisModel.axis.scale, axisModel, dataExtent).calculate();\n  return [rawExtentResult.min, rawExtentResult.max];\n}\n\nexport default AxisProxy;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, each } from 'zrender/lib/core/util';\nimport { getAxisMainType } from './helper';\nimport AxisProxy from './AxisProxy';\nvar dataZoomProcessor = {\n  getTargetSeries: function (ecModel) {\n    function eachAxisModel(cb) {\n      ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n        dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n          var axisModel = ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n          cb(axisDim, axisIndex, axisModel, dataZoomModel);\n        });\n      });\n    }\n\n    eachAxisModel(function (axisDim, axisIndex, axisModel, dataZoomModel) {\n      axisModel.__dzAxisProxy = null;\n    });\n    var proxyList = [];\n    eachAxisModel(function (axisDim, axisIndex, axisModel, dataZoomModel) {\n      if (!axisModel.__dzAxisProxy) {\n        axisModel.__dzAxisProxy = new AxisProxy(axisDim, axisIndex, dataZoomModel, ecModel);\n        proxyList.push(axisModel.__dzAxisProxy);\n      }\n    });\n    var seriesModelMap = createHashMap();\n    each(proxyList, function (axisProxy) {\n      each(axisProxy.getTargetSeriesModels(), function (seriesModel) {\n        seriesModelMap.set(seriesModel.uid, seriesModel);\n      });\n    });\n    return seriesModelMap;\n  },\n  overallReset: function (ecModel, api) {\n    ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n      dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n        dataZoomModel.getAxisProxy(axisDim, axisIndex).reset(dataZoomModel);\n      });\n      dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n        dataZoomModel.getAxisProxy(axisDim, axisIndex).filterData(dataZoomModel, api);\n      });\n    });\n    ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n      var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\n\n      if (axisProxy) {\n        var percentRange = axisProxy.getDataPercentWindow();\n        var valueRange = axisProxy.getDataValueWindow();\n        dataZoomModel.setCalculatedRange({\n          start: percentRange[0],\n          end: percentRange[1],\n          startValue: valueRange[0],\n          endValue: valueRange[1]\n        });\n      }\n    });\n  }\n};\nexport default dataZoomProcessor;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { findEffectedDataZooms } from './helper';\nimport { each } from 'zrender/lib/core/util';\nexport default function installDataZoomAction(registers) {\n  registers.registerAction('dataZoom', function (payload, ecModel) {\n    var effectedModels = findEffectedDataZooms(ecModel, payload);\n    each(effectedModels, function (dataZoomModel) {\n      dataZoomModel.setRawRange({\n        start: payload.start,\n        end: payload.end,\n        startValue: payload.startValue,\n        endValue: payload.endValue\n      });\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport dataZoomProcessor from './dataZoomProcessor';\nimport installDataZoomAction from './dataZoomAction';\nvar installed = false;\nexport default function installCommon(registers) {\n  if (installed) {\n    return;\n  }\n\n  installed = true;\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.FILTER, dataZoomProcessor);\n  installDataZoomAction(registers);\n  registers.registerSubTypeDefaulter('dataZoom', function () {\n    return 'slider';\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SelectZoomModel from './SelectZoomModel';\nimport SelectZoomView from './SelectZoomView';\nimport installCommon from './installCommon';\nexport function install(registers) {\n  registers.registerComponentModel(SelectZoomModel);\n  registers.registerComponentView(SelectZoomView);\n  installCommon(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar ToolboxFeature = function () {\n  function ToolboxFeature() {}\n\n  return ToolboxFeature;\n}();\n\nexport { ToolboxFeature };\nvar features = {};\nexport function registerFeature(name, ctor) {\n  features[name] = ctor;\n}\nexport function getFeature(name) {\n  return features[name];\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as featureManager from './featureManager';\nimport ComponentModel from '../../model/Component';\n\nvar ToolboxModel = function (_super) {\n  __extends(ToolboxModel, _super);\n\n  function ToolboxModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ToolboxModel.type;\n    return _this;\n  }\n\n  ToolboxModel.prototype.optionUpdated = function () {\n    _super.prototype.optionUpdated.apply(this, arguments);\n\n    var ecModel = this.ecModel;\n    zrUtil.each(this.option.feature, function (featureOpt, featureName) {\n      var Feature = featureManager.getFeature(featureName);\n\n      if (Feature) {\n        if (Feature.getDefaultOption) {\n          Feature.defaultOption = Feature.getDefaultOption(ecModel);\n        }\n\n        zrUtil.merge(featureOpt, Feature.defaultOption);\n      }\n    });\n  };\n\n  ToolboxModel.type = 'toolbox';\n  ToolboxModel.layoutMode = {\n    type: 'box',\n    ignoreSize: true\n  };\n  ToolboxModel.defaultOption = {\n    show: true,\n    z: 6,\n    zlevel: 0,\n    orient: 'horizontal',\n    left: 'right',\n    top: 'top',\n    backgroundColor: 'transparent',\n    borderColor: '#ccc',\n    borderRadius: 0,\n    borderWidth: 0,\n    padding: 5,\n    itemSize: 15,\n    itemGap: 8,\n    showTitle: true,\n    iconStyle: {\n      borderColor: '#666',\n      color: 'none'\n    },\n    emphasis: {\n      iconStyle: {\n        borderColor: '#3E98C5'\n      }\n    },\n    tooltip: {\n      show: false\n    }\n  };\n  return ToolboxModel;\n}(ComponentModel);\n\nexport default ToolboxModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { getLayoutRect, box as layoutBox, positionElement } from '../../util/layout';\nimport * as formatUtil from '../../util/format';\nimport * as graphic from '../../util/graphic';\nexport function layout(group, componentModel, api) {\n  var boxLayoutParams = componentModel.getBoxLayoutParams();\n  var padding = componentModel.get('padding');\n  var viewportSize = {\n    width: api.getWidth(),\n    height: api.getHeight()\n  };\n  var rect = getLayoutRect(boxLayoutParams, viewportSize, padding);\n  layoutBox(componentModel.get('orient'), group, componentModel.get('itemGap'), rect.width, rect.height);\n  positionElement(group, boxLayoutParams, viewportSize, padding);\n}\nexport function makeBackground(rect, componentModel) {\n  var padding = formatUtil.normalizeCssArray(componentModel.get('padding'));\n  var style = componentModel.getItemStyle(['color', 'opacity']);\n  style.fill = componentModel.get('backgroundColor');\n  rect = new graphic.Rect({\n    shape: {\n      x: rect.x - padding[3],\n      y: rect.y - padding[0],\n      width: rect.width + padding[1] + padding[3],\n      height: rect.height + padding[0] + padding[2],\n      r: componentModel.get('borderRadius')\n    },\n    style: style,\n    silent: true,\n    z2: -1\n  });\n  return rect;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as textContain from 'zrender/lib/contain/text';\nimport * as graphic from '../../util/graphic';\nimport { enterEmphasis, leaveEmphasis } from '../../util/states';\nimport Model from '../../model/Model';\nimport DataDiffer from '../../data/DataDiffer';\nimport * as listComponentHelper from '../helper/listComponent';\nimport ComponentView from '../../view/Component';\nimport { ToolboxFeature, getFeature } from './featureManager';\nimport { getUID } from '../../util/component';\nimport ZRText from 'zrender/lib/graphic/Text';\n\nvar ToolboxView = function (_super) {\n  __extends(ToolboxView, _super);\n\n  function ToolboxView() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  ToolboxView.prototype.render = function (toolboxModel, ecModel, api, payload) {\n    var group = this.group;\n    group.removeAll();\n\n    if (!toolboxModel.get('show')) {\n      return;\n    }\n\n    var itemSize = +toolboxModel.get('itemSize');\n    var featureOpts = toolboxModel.get('feature') || {};\n    var features = this._features || (this._features = {});\n    var featureNames = [];\n    zrUtil.each(featureOpts, function (opt, name) {\n      featureNames.push(name);\n    });\n    new DataDiffer(this._featureNames || [], featureNames).add(processFeature).update(processFeature).remove(zrUtil.curry(processFeature, null)).execute();\n    this._featureNames = featureNames;\n\n    function processFeature(newIndex, oldIndex) {\n      var featureName = featureNames[newIndex];\n      var oldName = featureNames[oldIndex];\n      var featureOpt = featureOpts[featureName];\n      var featureModel = new Model(featureOpt, toolboxModel, toolboxModel.ecModel);\n      var feature;\n\n      if (payload && payload.newTitle != null && payload.featureName === featureName) {\n        featureOpt.title = payload.newTitle;\n      }\n\n      if (featureName && !oldName) {\n        if (isUserFeatureName(featureName)) {\n          feature = {\n            onclick: featureModel.option.onclick,\n            featureName: featureName\n          };\n        } else {\n          var Feature = getFeature(featureName);\n\n          if (!Feature) {\n            return;\n          }\n\n          feature = new Feature();\n        }\n\n        features[featureName] = feature;\n      } else {\n        feature = features[oldName];\n\n        if (!feature) {\n          return;\n        }\n      }\n\n      feature.uid = getUID('toolbox-feature');\n      feature.model = featureModel;\n      feature.ecModel = ecModel;\n      feature.api = api;\n\n      if (feature instanceof ToolboxFeature) {\n        if (!featureName && oldName) {\n          feature.dispose && feature.dispose(ecModel, api);\n          return;\n        }\n\n        if (!featureModel.get('show') || feature.unusable) {\n          feature.remove && feature.remove(ecModel, api);\n          return;\n        }\n      }\n\n      createIconPaths(featureModel, feature, featureName);\n\n      featureModel.setIconStatus = function (iconName, status) {\n        var option = this.option;\n        var iconPaths = this.iconPaths;\n        option.iconStatus = option.iconStatus || {};\n        option.iconStatus[iconName] = status;\n\n        if (iconPaths[iconName]) {\n          (status === 'emphasis' ? enterEmphasis : leaveEmphasis)(iconPaths[iconName]);\n        }\n      };\n\n      if (feature instanceof ToolboxFeature) {\n        if (feature.render) {\n          feature.render(featureModel, ecModel, api, payload);\n        }\n      }\n    }\n\n    function createIconPaths(featureModel, feature, featureName) {\n      var iconStyleModel = featureModel.getModel('iconStyle');\n      var iconStyleEmphasisModel = featureModel.getModel(['emphasis', 'iconStyle']);\n      var icons = feature instanceof ToolboxFeature && feature.getIcons ? feature.getIcons() : featureModel.get('icon');\n      var titles = featureModel.get('title') || {};\n      var iconsMap;\n      var titlesMap;\n\n      if (typeof icons === 'string') {\n        iconsMap = {};\n        iconsMap[featureName] = icons;\n      } else {\n        iconsMap = icons;\n      }\n\n      if (typeof titles === 'string') {\n        titlesMap = {};\n        titlesMap[featureName] = titles;\n      } else {\n        titlesMap = titles;\n      }\n\n      var iconPaths = featureModel.iconPaths = {};\n      zrUtil.each(iconsMap, function (iconStr, iconName) {\n        var path = graphic.createIcon(iconStr, {}, {\n          x: -itemSize / 2,\n          y: -itemSize / 2,\n          width: itemSize,\n          height: itemSize\n        });\n        path.setStyle(iconStyleModel.getItemStyle());\n        var pathEmphasisState = path.ensureState('emphasis');\n        pathEmphasisState.style = iconStyleEmphasisModel.getItemStyle();\n        var textContent = new ZRText({\n          style: {\n            text: titlesMap[iconName],\n            align: iconStyleEmphasisModel.get('textAlign'),\n            borderRadius: iconStyleEmphasisModel.get('textBorderRadius'),\n            padding: iconStyleEmphasisModel.get('textPadding'),\n            fill: null\n          },\n          ignore: true\n        });\n        path.setTextContent(textContent);\n        var tooltipModel = toolboxModel.getModel('tooltip');\n\n        if (tooltipModel && tooltipModel.get('show')) {\n          path.tooltip = zrUtil.extend({\n            content: titlesMap[iconName],\n            formatter: tooltipModel.get('formatter', true) || function () {\n              return titlesMap[iconName];\n            },\n            formatterParams: {\n              componentType: 'toolbox',\n              name: iconName,\n              title: titlesMap[iconName],\n              $vars: ['name', 'title']\n            },\n            position: tooltipModel.get('position', true) || 'bottom'\n          }, tooltipModel.option);\n        }\n\n        path.__title = titlesMap[iconName];\n        path.on('mouseover', function () {\n          var hoverStyle = iconStyleEmphasisModel.getItemStyle();\n          var defaultTextPosition = toolboxModel.get('orient') === 'vertical' ? toolboxModel.get('right') == null ? 'right' : 'left' : toolboxModel.get('bottom') == null ? 'bottom' : 'top';\n          textContent.setStyle({\n            fill: iconStyleEmphasisModel.get('textFill') || hoverStyle.fill || hoverStyle.stroke || '#000',\n            backgroundColor: iconStyleEmphasisModel.get('textBackgroundColor')\n          });\n          path.setTextConfig({\n            position: iconStyleEmphasisModel.get('textPosition') || defaultTextPosition\n          });\n          textContent.ignore = !toolboxModel.get('showTitle');\n          enterEmphasis(this);\n        }).on('mouseout', function () {\n          if (featureModel.get(['iconStatus', iconName]) !== 'emphasis') {\n            leaveEmphasis(this);\n          }\n\n          textContent.hide();\n        });\n        (featureModel.get(['iconStatus', iconName]) === 'emphasis' ? enterEmphasis : leaveEmphasis)(path);\n        group.add(path);\n        path.on('click', zrUtil.bind(feature.onclick, feature, ecModel, api, iconName));\n        iconPaths[iconName] = path;\n      });\n    }\n\n    listComponentHelper.layout(group, toolboxModel, api);\n    group.add(listComponentHelper.makeBackground(group.getBoundingRect(), toolboxModel));\n    group.eachChild(function (icon) {\n      var titleText = icon.__title;\n      var emphasisState = icon.ensureState('emphasis');\n      var emphasisTextConfig = emphasisState.textConfig || (emphasisState.textConfig = {});\n      var textContent = icon.getTextContent();\n      var emphasisTextState = textContent && textContent.states.emphasis;\n\n      if (emphasisTextState && !zrUtil.isFunction(emphasisTextState) && titleText) {\n        var emphasisTextStyle = emphasisTextState.style || (emphasisTextState.style = {});\n        var rect = textContain.getBoundingRect(titleText, ZRText.makeFont(emphasisTextStyle));\n        var offsetX = icon.x + group.x;\n        var offsetY = icon.y + group.y + itemSize;\n        var needPutOnTop = false;\n\n        if (offsetY + rect.height > api.getHeight()) {\n          emphasisTextConfig.position = 'top';\n          needPutOnTop = true;\n        }\n\n        var topOffset = needPutOnTop ? -5 - rect.height : itemSize + 8;\n\n        if (offsetX + rect.width / 2 > api.getWidth()) {\n          emphasisTextConfig.position = ['100%', topOffset];\n          emphasisTextStyle.align = 'right';\n        } else if (offsetX - rect.width / 2 < 0) {\n          emphasisTextConfig.position = [0, topOffset];\n          emphasisTextStyle.align = 'left';\n        }\n      }\n    });\n  };\n\n  ToolboxView.prototype.updateView = function (toolboxModel, ecModel, api, payload) {\n    zrUtil.each(this._features, function (feature) {\n      feature instanceof ToolboxFeature && feature.updateView && feature.updateView(feature.model, ecModel, api, payload);\n    });\n  };\n\n  ToolboxView.prototype.remove = function (ecModel, api) {\n    zrUtil.each(this._features, function (feature) {\n      feature instanceof ToolboxFeature && feature.remove && feature.remove(ecModel, api);\n    });\n    this.group.removeAll();\n  };\n\n  ToolboxView.prototype.dispose = function (ecModel, api) {\n    zrUtil.each(this._features, function (feature) {\n      feature instanceof ToolboxFeature && feature.dispose && feature.dispose(ecModel, api);\n    });\n  };\n\n  ToolboxView.type = 'toolbox';\n  return ToolboxView;\n}(ComponentView);\n\nfunction isUserFeatureName(featureName) {\n  return featureName.indexOf('my') === 0;\n}\n\nexport default ToolboxView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport env from 'zrender/lib/core/env';\nimport { ToolboxFeature } from '../featureManager';\n\nvar SaveAsImage = function (_super) {\n  __extends(SaveAsImage, _super);\n\n  function SaveAsImage() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  SaveAsImage.prototype.onclick = function (ecModel, api) {\n    var model = this.model;\n    var title = model.get('name') || ecModel.get('title.0.text') || 'echarts';\n    var isSvg = api.getZr().painter.getType() === 'svg';\n    var type = isSvg ? 'svg' : model.get('type', true) || 'png';\n    var url = api.getConnectedDataURL({\n      type: type,\n      backgroundColor: model.get('backgroundColor', true) || ecModel.get('backgroundColor') || '#fff',\n      connectedBackgroundColor: model.get('connectedBackgroundColor'),\n      excludeComponents: model.get('excludeComponents'),\n      pixelRatio: model.get('pixelRatio')\n    });\n\n    if (typeof MouseEvent === 'function' && (env.browser.newEdge || !env.browser.ie && !env.browser.edge)) {\n      var $a = document.createElement('a');\n      $a.download = title + '.' + type;\n      $a.target = '_blank';\n      $a.href = url;\n      var evt = new MouseEvent('click', {\n        view: document.defaultView,\n        bubbles: true,\n        cancelable: false\n      });\n      $a.dispatchEvent(evt);\n    } else {\n      if (window.navigator.msSaveOrOpenBlob || isSvg) {\n        var parts = url.split(',');\n        var base64Encoded = parts[0].indexOf('base64') > -1;\n        var bstr = isSvg ? decodeURIComponent(parts[1]) : parts[1];\n        base64Encoded && (bstr = atob(bstr));\n        var filename = title + '.' + type;\n\n        if (window.navigator.msSaveOrOpenBlob) {\n          var n = bstr.length;\n          var u8arr = new Uint8Array(n);\n\n          while (n--) {\n            u8arr[n] = bstr.charCodeAt(n);\n          }\n\n          var blob = new Blob([u8arr]);\n          window.navigator.msSaveOrOpenBlob(blob, filename);\n        } else {\n          var frame = document.createElement('iframe');\n          document.body.appendChild(frame);\n          var cw = frame.contentWindow;\n          var doc = cw.document;\n          doc.open('image/svg+xml', 'replace');\n          doc.write(bstr);\n          doc.close();\n          cw.focus();\n          doc.execCommand('SaveAs', true, filename);\n          document.body.removeChild(frame);\n        }\n      } else {\n        var lang = model.get('lang');\n        var html = '' + '<body style=\"margin:0;\">' + '<img src=\"' + url + '\" style=\"max-width:100%;\" title=\"' + (lang && lang[0] || '') + '\" />' + '</body>';\n        var tab = window.open();\n        tab.document.write(html);\n        tab.document.title = title;\n      }\n    }\n  };\n\n  SaveAsImage.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      icon: 'M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0',\n      title: ecModel.getLocale(['toolbox', 'saveAsImage', 'title']),\n      type: 'png',\n      connectedBackgroundColor: '#fff',\n      name: '',\n      excludeComponents: ['toolbox'],\n      pixelRatio: 1,\n      lang: ecModel.getLocale(['toolbox', 'saveAsImage', 'lang'])\n    };\n    return defaultOption;\n  };\n\n  return SaveAsImage;\n}(ToolboxFeature);\n\nSaveAsImage.prototype.unusable = !env.canvasSupported;\nexport default SaveAsImage;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as echarts from '../../../core/echarts';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { ToolboxFeature } from '../featureManager';\nimport { SINGLE_REFERRING } from '../../../util/model';\nvar INNER_STACK_KEYWORD = '__ec_magicType_stack__';\nvar ICON_TYPES = ['line', 'bar', 'stack'];\nvar TITLE_TYPES = ['line', 'bar', 'stack', 'tiled'];\nvar radioTypes = [['line', 'bar'], ['stack']];\n\nvar MagicType = function (_super) {\n  __extends(MagicType, _super);\n\n  function MagicType() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  MagicType.prototype.getIcons = function () {\n    var model = this.model;\n    var availableIcons = model.get('icon');\n    var icons = {};\n    zrUtil.each(model.get('type'), function (type) {\n      if (availableIcons[type]) {\n        icons[type] = availableIcons[type];\n      }\n    });\n    return icons;\n  };\n\n  MagicType.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      type: [],\n      icon: {\n        line: 'M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4',\n        bar: 'M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7',\n        stack: 'M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z'\n      },\n      title: ecModel.getLocale(['toolbox', 'magicType', 'title']),\n      option: {},\n      seriesIndex: {}\n    };\n    return defaultOption;\n  };\n\n  MagicType.prototype.onclick = function (ecModel, api, type) {\n    var model = this.model;\n    var seriesIndex = model.get(['seriesIndex', type]);\n\n    if (!seriesOptGenreator[type]) {\n      return;\n    }\n\n    var newOption = {\n      series: []\n    };\n\n    var generateNewSeriesTypes = function (seriesModel) {\n      var seriesType = seriesModel.subType;\n      var seriesId = seriesModel.id;\n      var newSeriesOpt = seriesOptGenreator[type](seriesType, seriesId, seriesModel, model);\n\n      if (newSeriesOpt) {\n        zrUtil.defaults(newSeriesOpt, seriesModel.option);\n        newOption.series.push(newSeriesOpt);\n      }\n\n      var coordSys = seriesModel.coordinateSystem;\n\n      if (coordSys && coordSys.type === 'cartesian2d' && (type === 'line' || type === 'bar')) {\n        var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\n\n        if (categoryAxis) {\n          var axisDim = categoryAxis.dim;\n          var axisType = axisDim + 'Axis';\n          var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\n          var axisIndex = axisModel.componentIndex;\n          newOption[axisType] = newOption[axisType] || [];\n\n          for (var i = 0; i <= axisIndex; i++) {\n            newOption[axisType][axisIndex] = newOption[axisType][axisIndex] || {};\n          }\n\n          newOption[axisType][axisIndex].boundaryGap = type === 'bar';\n        }\n      }\n    };\n\n    zrUtil.each(radioTypes, function (radio) {\n      if (zrUtil.indexOf(radio, type) >= 0) {\n        zrUtil.each(radio, function (item) {\n          model.setIconStatus(item, 'normal');\n        });\n      }\n    });\n    model.setIconStatus(type, 'emphasis');\n    ecModel.eachComponent({\n      mainType: 'series',\n      query: seriesIndex == null ? null : {\n        seriesIndex: seriesIndex\n      }\n    }, generateNewSeriesTypes);\n    var newTitle;\n\n    if (type === 'stack') {\n      newTitle = zrUtil.merge({\n        stack: model.option.title.tiled,\n        tiled: model.option.title.stack\n      }, model.option.title);\n    }\n\n    api.dispatchAction({\n      type: 'changeMagicType',\n      currentType: type,\n      newOption: newOption,\n      newTitle: newTitle,\n      featureName: 'magicType'\n    });\n  };\n\n  return MagicType;\n}(ToolboxFeature);\n\nvar seriesOptGenreator = {\n  'line': function (seriesType, seriesId, seriesModel, model) {\n    if (seriesType === 'bar') {\n      return zrUtil.merge({\n        id: seriesId,\n        type: 'line',\n        data: seriesModel.get('data'),\n        stack: seriesModel.get('stack'),\n        markPoint: seriesModel.get('markPoint'),\n        markLine: seriesModel.get('markLine')\n      }, model.get(['option', 'line']) || {}, true);\n    }\n  },\n  'bar': function (seriesType, seriesId, seriesModel, model) {\n    if (seriesType === 'line') {\n      return zrUtil.merge({\n        id: seriesId,\n        type: 'bar',\n        data: seriesModel.get('data'),\n        stack: seriesModel.get('stack'),\n        markPoint: seriesModel.get('markPoint'),\n        markLine: seriesModel.get('markLine')\n      }, model.get(['option', 'bar']) || {}, true);\n    }\n  },\n  'stack': function (seriesType, seriesId, seriesModel, model) {\n    var isStack = seriesModel.get('stack') === INNER_STACK_KEYWORD;\n\n    if (seriesType === 'line' || seriesType === 'bar') {\n      model.setIconStatus('stack', isStack ? 'normal' : 'emphasis');\n      return zrUtil.merge({\n        id: seriesId,\n        stack: isStack ? '' : INNER_STACK_KEYWORD\n      }, model.get(['option', 'stack']) || {}, true);\n    }\n  }\n};\necharts.registerAction({\n  type: 'changeMagicType',\n  event: 'magicTypeChanged',\n  update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n  ecModel.mergeOption(payload.newOption);\n});\nexport default MagicType;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as echarts from '../../../core/echarts';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { ToolboxFeature } from '../featureManager';\nimport { addEventListener } from 'zrender/lib/core/event';\nvar BLOCK_SPLITER = new Array(60).join('-');\nvar ITEM_SPLITER = '\\t';\n\nfunction groupSeries(ecModel) {\n  var seriesGroupByCategoryAxis = {};\n  var otherSeries = [];\n  var meta = [];\n  ecModel.eachRawSeries(function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys && (coordSys.type === 'cartesian2d' || coordSys.type === 'polar')) {\n      var baseAxis = coordSys.getBaseAxis();\n\n      if (baseAxis.type === 'category') {\n        var key = baseAxis.dim + '_' + baseAxis.index;\n\n        if (!seriesGroupByCategoryAxis[key]) {\n          seriesGroupByCategoryAxis[key] = {\n            categoryAxis: baseAxis,\n            valueAxis: coordSys.getOtherAxis(baseAxis),\n            series: []\n          };\n          meta.push({\n            axisDim: baseAxis.dim,\n            axisIndex: baseAxis.index\n          });\n        }\n\n        seriesGroupByCategoryAxis[key].series.push(seriesModel);\n      } else {\n        otherSeries.push(seriesModel);\n      }\n    } else {\n      otherSeries.push(seriesModel);\n    }\n  });\n  return {\n    seriesGroupByCategoryAxis: seriesGroupByCategoryAxis,\n    other: otherSeries,\n    meta: meta\n  };\n}\n\nfunction assembleSeriesWithCategoryAxis(groups) {\n  var tables = [];\n  zrUtil.each(groups, function (group, key) {\n    var categoryAxis = group.categoryAxis;\n    var valueAxis = group.valueAxis;\n    var valueAxisDim = valueAxis.dim;\n    var headers = [' '].concat(zrUtil.map(group.series, function (series) {\n      return series.name;\n    }));\n    var columns = [categoryAxis.model.getCategories()];\n    zrUtil.each(group.series, function (series) {\n      var rawData = series.getRawData();\n      columns.push(series.getRawData().mapArray(rawData.mapDimension(valueAxisDim), function (val) {\n        return val;\n      }));\n    });\n    var lines = [headers.join(ITEM_SPLITER)];\n\n    for (var i = 0; i < columns[0].length; i++) {\n      var items = [];\n\n      for (var j = 0; j < columns.length; j++) {\n        items.push(columns[j][i]);\n      }\n\n      lines.push(items.join(ITEM_SPLITER));\n    }\n\n    tables.push(lines.join('\\n'));\n  });\n  return tables.join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\n}\n\nfunction assembleOtherSeries(series) {\n  return zrUtil.map(series, function (series) {\n    var data = series.getRawData();\n    var lines = [series.name];\n    var vals = [];\n    data.each(data.dimensions, function () {\n      var argLen = arguments.length;\n      var dataIndex = arguments[argLen - 1];\n      var name = data.getName(dataIndex);\n\n      for (var i = 0; i < argLen - 1; i++) {\n        vals[i] = arguments[i];\n      }\n\n      lines.push((name ? name + ITEM_SPLITER : '') + vals.join(ITEM_SPLITER));\n    });\n    return lines.join('\\n');\n  }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\n}\n\nfunction getContentFromModel(ecModel) {\n  var result = groupSeries(ecModel);\n  return {\n    value: zrUtil.filter([assembleSeriesWithCategoryAxis(result.seriesGroupByCategoryAxis), assembleOtherSeries(result.other)], function (str) {\n      return !!str.replace(/[\\n\\t\\s]/g, '');\n    }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n'),\n    meta: result.meta\n  };\n}\n\nfunction trim(str) {\n  return str.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n}\n\nfunction isTSVFormat(block) {\n  var firstLine = block.slice(0, block.indexOf('\\n'));\n\n  if (firstLine.indexOf(ITEM_SPLITER) >= 0) {\n    return true;\n  }\n}\n\nvar itemSplitRegex = new RegExp('[' + ITEM_SPLITER + ']+', 'g');\n\nfunction parseTSVContents(tsv) {\n  var tsvLines = tsv.split(/\\n+/g);\n  var headers = trim(tsvLines.shift()).split(itemSplitRegex);\n  var categories = [];\n  var series = zrUtil.map(headers, function (header) {\n    return {\n      name: header,\n      data: []\n    };\n  });\n\n  for (var i = 0; i < tsvLines.length; i++) {\n    var items = trim(tsvLines[i]).split(itemSplitRegex);\n    categories.push(items.shift());\n\n    for (var j = 0; j < items.length; j++) {\n      series[j] && (series[j].data[i] = items[j]);\n    }\n  }\n\n  return {\n    series: series,\n    categories: categories\n  };\n}\n\nfunction parseListContents(str) {\n  var lines = str.split(/\\n+/g);\n  var seriesName = trim(lines.shift());\n  var data = [];\n\n  for (var i = 0; i < lines.length; i++) {\n    var line = trim(lines[i]);\n\n    if (!line) {\n      continue;\n    }\n\n    var items = line.split(itemSplitRegex);\n    var name_1 = '';\n    var value = void 0;\n    var hasName = false;\n\n    if (isNaN(items[0])) {\n      hasName = true;\n      name_1 = items[0];\n      items = items.slice(1);\n      data[i] = {\n        name: name_1,\n        value: []\n      };\n      value = data[i].value;\n    } else {\n      value = data[i] = [];\n    }\n\n    for (var j = 0; j < items.length; j++) {\n      value.push(+items[j]);\n    }\n\n    if (value.length === 1) {\n      hasName ? data[i].value = value[0] : data[i] = value[0];\n    }\n  }\n\n  return {\n    name: seriesName,\n    data: data\n  };\n}\n\nfunction parseContents(str, blockMetaList) {\n  var blocks = str.split(new RegExp('\\n*' + BLOCK_SPLITER + '\\n*', 'g'));\n  var newOption = {\n    series: []\n  };\n  zrUtil.each(blocks, function (block, idx) {\n    if (isTSVFormat(block)) {\n      var result = parseTSVContents(block);\n      var blockMeta = blockMetaList[idx];\n      var axisKey = blockMeta.axisDim + 'Axis';\n\n      if (blockMeta) {\n        newOption[axisKey] = newOption[axisKey] || [];\n        newOption[axisKey][blockMeta.axisIndex] = {\n          data: result.categories\n        };\n        newOption.series = newOption.series.concat(result.series);\n      }\n    } else {\n      var result = parseListContents(block);\n      newOption.series.push(result);\n    }\n  });\n  return newOption;\n}\n\nvar DataView = function (_super) {\n  __extends(DataView, _super);\n\n  function DataView() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  DataView.prototype.onclick = function (ecModel, api) {\n    var container = api.getDom();\n    var model = this.model;\n\n    if (this._dom) {\n      container.removeChild(this._dom);\n    }\n\n    var root = document.createElement('div');\n    root.style.cssText = 'position:absolute;left:5px;top:5px;bottom:5px;right:5px;';\n    root.style.backgroundColor = model.get('backgroundColor') || '#fff';\n    var header = document.createElement('h4');\n    var lang = model.get('lang') || [];\n    header.innerHTML = lang[0] || model.get('title');\n    header.style.cssText = 'margin: 10px 20px;';\n    header.style.color = model.get('textColor');\n    var viewMain = document.createElement('div');\n    var textarea = document.createElement('textarea');\n    viewMain.style.cssText = 'display:block;width:100%;overflow:auto;';\n    var optionToContent = model.get('optionToContent');\n    var contentToOption = model.get('contentToOption');\n    var result = getContentFromModel(ecModel);\n\n    if (typeof optionToContent === 'function') {\n      var htmlOrDom = optionToContent(api.getOption());\n\n      if (typeof htmlOrDom === 'string') {\n        viewMain.innerHTML = htmlOrDom;\n      } else if (zrUtil.isDom(htmlOrDom)) {\n        viewMain.appendChild(htmlOrDom);\n      }\n    } else {\n      viewMain.appendChild(textarea);\n      textarea.readOnly = model.get('readOnly');\n      textarea.style.cssText = 'width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;';\n      textarea.style.color = model.get('textColor');\n      textarea.style.borderColor = model.get('textareaBorderColor');\n      textarea.style.backgroundColor = model.get('textareaColor');\n      textarea.value = result.value;\n    }\n\n    var blockMetaList = result.meta;\n    var buttonContainer = document.createElement('div');\n    buttonContainer.style.cssText = 'position:absolute;bottom:0;left:0;right:0;';\n    var buttonStyle = 'float:right;margin-right:20px;border:none;' + 'cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px';\n    var closeButton = document.createElement('div');\n    var refreshButton = document.createElement('div');\n    buttonStyle += ';background-color:' + model.get('buttonColor');\n    buttonStyle += ';color:' + model.get('buttonTextColor');\n    var self = this;\n\n    function close() {\n      container.removeChild(root);\n      self._dom = null;\n    }\n\n    addEventListener(closeButton, 'click', close);\n    addEventListener(refreshButton, 'click', function () {\n      if (contentToOption == null && optionToContent != null || contentToOption != null && optionToContent == null) {\n        if (process.env.NODE_ENV !== 'production') {\n          console.warn('It seems you have just provided one of `contentToOption` and `optionToContent` functions but missed the other one. Data change is ignored.');\n        }\n\n        close();\n        return;\n      }\n\n      var newOption;\n\n      try {\n        if (typeof contentToOption === 'function') {\n          newOption = contentToOption(viewMain, api.getOption());\n        } else {\n          newOption = parseContents(textarea.value, blockMetaList);\n        }\n      } catch (e) {\n        close();\n        throw new Error('Data view format error ' + e);\n      }\n\n      if (newOption) {\n        api.dispatchAction({\n          type: 'changeDataView',\n          newOption: newOption\n        });\n      }\n\n      close();\n    });\n    closeButton.innerHTML = lang[1];\n    refreshButton.innerHTML = lang[2];\n    refreshButton.style.cssText = buttonStyle;\n    closeButton.style.cssText = buttonStyle;\n    !model.get('readOnly') && buttonContainer.appendChild(refreshButton);\n    buttonContainer.appendChild(closeButton);\n    root.appendChild(header);\n    root.appendChild(viewMain);\n    root.appendChild(buttonContainer);\n    viewMain.style.height = container.clientHeight - 80 + 'px';\n    container.appendChild(root);\n    this._dom = root;\n  };\n\n  DataView.prototype.remove = function (ecModel, api) {\n    this._dom && api.getDom().removeChild(this._dom);\n  };\n\n  DataView.prototype.dispose = function (ecModel, api) {\n    this.remove(ecModel, api);\n  };\n\n  DataView.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      readOnly: false,\n      optionToContent: null,\n      contentToOption: null,\n      icon: 'M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28',\n      title: ecModel.getLocale(['toolbox', 'dataView', 'title']),\n      lang: ecModel.getLocale(['toolbox', 'dataView', 'lang']),\n      backgroundColor: '#fff',\n      textColor: '#000',\n      textareaColor: '#fff',\n      textareaBorderColor: '#333',\n      buttonColor: '#c23531',\n      buttonTextColor: '#fff'\n    };\n    return defaultOption;\n  };\n\n  return DataView;\n}(ToolboxFeature);\n\nfunction tryMergeDataOption(newData, originalData) {\n  return zrUtil.map(newData, function (newVal, idx) {\n    var original = originalData && originalData[idx];\n\n    if (zrUtil.isObject(original) && !zrUtil.isArray(original)) {\n      var newValIsObject = zrUtil.isObject(newVal) && !zrUtil.isArray(newVal);\n\n      if (!newValIsObject) {\n        newVal = {\n          value: newVal\n        };\n      }\n\n      var shouldDeleteName = original.name != null && newVal.name == null;\n      newVal = zrUtil.defaults(newVal, original);\n      shouldDeleteName && delete newVal.name;\n      return newVal;\n    } else {\n      return newVal;\n    }\n  });\n}\n\necharts.registerAction({\n  type: 'changeDataView',\n  event: 'dataViewChanged',\n  update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n  var newSeriesOptList = [];\n  zrUtil.each(payload.newOption.series, function (seriesOpt) {\n    var seriesModel = ecModel.getSeriesByName(seriesOpt.name)[0];\n\n    if (!seriesModel) {\n      newSeriesOptList.push(zrUtil.extend({\n        type: 'scatter'\n      }, seriesOpt));\n    } else {\n      var originalData = seriesModel.get('data');\n      newSeriesOptList.push({\n        name: seriesOpt.name,\n        data: tryMergeDataOption(seriesOpt.data, originalData)\n      });\n    }\n  });\n  ecModel.mergeOption(zrUtil.defaults({\n    series: newSeriesOptList\n  }, payload.newOption));\n});\nexport default DataView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { makeInner } from '../../util/model';\nvar each = zrUtil.each;\nvar inner = makeInner();\nexport function push(ecModel, newSnapshot) {\n  var storedSnapshots = getStoreSnapshots(ecModel);\n  each(newSnapshot, function (batchItem, dataZoomId) {\n    var i = storedSnapshots.length - 1;\n\n    for (; i >= 0; i--) {\n      var snapshot = storedSnapshots[i];\n\n      if (snapshot[dataZoomId]) {\n        break;\n      }\n    }\n\n    if (i < 0) {\n      var dataZoomModel = ecModel.queryComponents({\n        mainType: 'dataZoom',\n        subType: 'select',\n        id: dataZoomId\n      })[0];\n\n      if (dataZoomModel) {\n        var percentRange = dataZoomModel.getPercentRange();\n        storedSnapshots[0][dataZoomId] = {\n          dataZoomId: dataZoomId,\n          start: percentRange[0],\n          end: percentRange[1]\n        };\n      }\n    }\n  });\n  storedSnapshots.push(newSnapshot);\n}\nexport function pop(ecModel) {\n  var storedSnapshots = getStoreSnapshots(ecModel);\n  var head = storedSnapshots[storedSnapshots.length - 1];\n  storedSnapshots.length > 1 && storedSnapshots.pop();\n  var snapshot = {};\n  each(head, function (batchItem, dataZoomId) {\n    for (var i = storedSnapshots.length - 1; i >= 0; i--) {\n      batchItem = storedSnapshots[i][dataZoomId];\n\n      if (batchItem) {\n        snapshot[dataZoomId] = batchItem;\n        break;\n      }\n    }\n  });\n  return snapshot;\n}\nexport function clear(ecModel) {\n  inner(ecModel).snapshots = null;\n}\nexport function count(ecModel) {\n  return getStoreSnapshots(ecModel).length;\n}\n\nfunction getStoreSnapshots(ecModel) {\n  var store = inner(ecModel);\n\n  if (!store.snapshots) {\n    store.snapshots = [{}];\n  }\n\n  return store.snapshots;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as echarts from '../../../core/echarts';\nimport * as history from '../../dataZoom/history';\nimport { ToolboxFeature } from '../featureManager';\n\nvar RestoreOption = function (_super) {\n  __extends(RestoreOption, _super);\n\n  function RestoreOption() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  RestoreOption.prototype.onclick = function (ecModel, api) {\n    history.clear(ecModel);\n    api.dispatchAction({\n      type: 'restore',\n      from: this.uid\n    });\n  };\n\n  RestoreOption.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      icon: 'M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5',\n      title: ecModel.getLocale(['toolbox', 'restore', 'title'])\n    };\n    return defaultOption;\n  };\n\n  return RestoreOption;\n}(ToolboxFeature);\n\necharts.registerAction({\n  type: 'restore',\n  event: 'restore',\n  update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n  ecModel.resetOption('recreate');\n});\nexport default RestoreOption;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as echarts from '../../core/echarts';\nvar ATTR = '\\0_ec_interaction_mutex';\nexport function take(zr, resourceKey, userKey) {\n  var store = getStore(zr);\n  store[resourceKey] = userKey;\n}\nexport function release(zr, resourceKey, userKey) {\n  var store = getStore(zr);\n  var uKey = store[resourceKey];\n\n  if (uKey === userKey) {\n    store[resourceKey] = null;\n  }\n}\nexport function isTaken(zr, resourceKey) {\n  return !!getStore(zr)[resourceKey];\n}\n\nfunction getStore(zr) {\n  return zr[ATTR] || (zr[ATTR] = {});\n}\n\necharts.registerAction({\n  type: 'takeGlobalCursor',\n  event: 'globalCursorTaken',\n  update: 'update'\n}, function () {});","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { curry, each, map, bind, merge, clone, defaults, assert } from 'zrender/lib/core/util';\nimport Eventful from 'zrender/lib/core/Eventful';\nimport * as graphic from '../../util/graphic';\nimport * as interactionMutex from './interactionMutex';\nimport DataDiffer from '../../data/DataDiffer';\nvar BRUSH_PANEL_GLOBAL = true;\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathPow = Math.pow;\nvar COVER_Z = 10000;\nvar UNSELECT_THRESHOLD = 6;\nvar MIN_RESIZE_LINE_WIDTH = 6;\nvar MUTEX_RESOURCE_KEY = 'globalPan';\nvar DIRECTION_MAP = {\n  w: [0, 0],\n  e: [0, 1],\n  n: [1, 0],\n  s: [1, 1]\n};\nvar CURSOR_MAP = {\n  w: 'ew',\n  e: 'ew',\n  n: 'ns',\n  s: 'ns',\n  ne: 'nesw',\n  sw: 'nesw',\n  nw: 'nwse',\n  se: 'nwse'\n};\nvar DEFAULT_BRUSH_OPT = {\n  brushStyle: {\n    lineWidth: 2,\n    stroke: 'rgba(210,219,238,0.3)',\n    fill: '#D2DBEE'\n  },\n  transformable: true,\n  brushMode: 'single',\n  removeOnClick: false\n};\nvar baseUID = 0;\n\nvar BrushController = function (_super) {\n  __extends(BrushController, _super);\n\n  function BrushController(zr) {\n    var _this = _super.call(this) || this;\n\n    _this._track = [];\n    _this._covers = [];\n    _this._handlers = {};\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(zr);\n    }\n\n    _this._zr = zr;\n    _this.group = new graphic.Group();\n    _this._uid = 'brushController_' + baseUID++;\n    each(pointerHandlers, function (handler, eventName) {\n      this._handlers[eventName] = bind(handler, this);\n    }, _this);\n    return _this;\n  }\n\n  BrushController.prototype.enableBrush = function (brushOption) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(this._mounted);\n    }\n\n    this._brushType && this._doDisableBrush();\n    brushOption.brushType && this._doEnableBrush(brushOption);\n    return this;\n  };\n\n  BrushController.prototype._doEnableBrush = function (brushOption) {\n    var zr = this._zr;\n\n    if (!this._enableGlobalPan) {\n      interactionMutex.take(zr, MUTEX_RESOURCE_KEY, this._uid);\n    }\n\n    each(this._handlers, function (handler, eventName) {\n      zr.on(eventName, handler);\n    });\n    this._brushType = brushOption.brushType;\n    this._brushOption = merge(clone(DEFAULT_BRUSH_OPT), brushOption, true);\n  };\n\n  BrushController.prototype._doDisableBrush = function () {\n    var zr = this._zr;\n    interactionMutex.release(zr, MUTEX_RESOURCE_KEY, this._uid);\n    each(this._handlers, function (handler, eventName) {\n      zr.off(eventName, handler);\n    });\n    this._brushType = this._brushOption = null;\n  };\n\n  BrushController.prototype.setPanels = function (panelOpts) {\n    if (panelOpts && panelOpts.length) {\n      var panels_1 = this._panels = {};\n      each(panelOpts, function (panelOpts) {\n        panels_1[panelOpts.panelId] = clone(panelOpts);\n      });\n    } else {\n      this._panels = null;\n    }\n\n    return this;\n  };\n\n  BrushController.prototype.mount = function (opt) {\n    opt = opt || {};\n\n    if (process.env.NODE_ENV !== 'production') {\n      this._mounted = true;\n    }\n\n    this._enableGlobalPan = opt.enableGlobalPan;\n    var thisGroup = this.group;\n\n    this._zr.add(thisGroup);\n\n    thisGroup.attr({\n      x: opt.x || 0,\n      y: opt.y || 0,\n      rotation: opt.rotation || 0,\n      scaleX: opt.scaleX || 1,\n      scaleY: opt.scaleY || 1\n    });\n    this._transform = thisGroup.getLocalTransform();\n    return this;\n  };\n\n  BrushController.prototype.updateCovers = function (coverConfigList) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(this._mounted);\n    }\n\n    coverConfigList = map(coverConfigList, function (coverConfig) {\n      return merge(clone(DEFAULT_BRUSH_OPT), coverConfig, true);\n    });\n    var tmpIdPrefix = '\\0-brush-index-';\n    var oldCovers = this._covers;\n    var newCovers = this._covers = [];\n    var controller = this;\n    var creatingCover = this._creatingCover;\n    new DataDiffer(oldCovers, coverConfigList, oldGetKey, getKey).add(addOrUpdate).update(addOrUpdate).remove(remove).execute();\n    return this;\n\n    function getKey(brushOption, index) {\n      return (brushOption.id != null ? brushOption.id : tmpIdPrefix + index) + '-' + brushOption.brushType;\n    }\n\n    function oldGetKey(cover, index) {\n      return getKey(cover.__brushOption, index);\n    }\n\n    function addOrUpdate(newIndex, oldIndex) {\n      var newBrushInternal = coverConfigList[newIndex];\n\n      if (oldIndex != null && oldCovers[oldIndex] === creatingCover) {\n        newCovers[newIndex] = oldCovers[oldIndex];\n      } else {\n        var cover = newCovers[newIndex] = oldIndex != null ? (oldCovers[oldIndex].__brushOption = newBrushInternal, oldCovers[oldIndex]) : endCreating(controller, createCover(controller, newBrushInternal));\n        updateCoverAfterCreation(controller, cover);\n      }\n    }\n\n    function remove(oldIndex) {\n      if (oldCovers[oldIndex] !== creatingCover) {\n        controller.group.remove(oldCovers[oldIndex]);\n      }\n    }\n  };\n\n  BrushController.prototype.unmount = function () {\n    if (process.env.NODE_ENV !== 'production') {\n      if (!this._mounted) {\n        return;\n      }\n    }\n\n    this.enableBrush(false);\n    clearCovers(this);\n\n    this._zr.remove(this.group);\n\n    if (process.env.NODE_ENV !== 'production') {\n      this._mounted = false;\n    }\n\n    return this;\n  };\n\n  BrushController.prototype.dispose = function () {\n    this.unmount();\n    this.off();\n  };\n\n  return BrushController;\n}(Eventful);\n\nfunction createCover(controller, brushOption) {\n  var cover = coverRenderers[brushOption.brushType].createCover(controller, brushOption);\n  cover.__brushOption = brushOption;\n  updateZ(cover, brushOption);\n  controller.group.add(cover);\n  return cover;\n}\n\nfunction endCreating(controller, creatingCover) {\n  var coverRenderer = getCoverRenderer(creatingCover);\n\n  if (coverRenderer.endCreating) {\n    coverRenderer.endCreating(controller, creatingCover);\n    updateZ(creatingCover, creatingCover.__brushOption);\n  }\n\n  return creatingCover;\n}\n\nfunction updateCoverShape(controller, cover) {\n  var brushOption = cover.__brushOption;\n  getCoverRenderer(cover).updateCoverShape(controller, cover, brushOption.range, brushOption);\n}\n\nfunction updateZ(cover, brushOption) {\n  var z = brushOption.z;\n  z == null && (z = COVER_Z);\n  cover.traverse(function (el) {\n    el.z = z;\n    el.z2 = z;\n  });\n}\n\nfunction updateCoverAfterCreation(controller, cover) {\n  getCoverRenderer(cover).updateCommon(controller, cover);\n  updateCoverShape(controller, cover);\n}\n\nfunction getCoverRenderer(cover) {\n  return coverRenderers[cover.__brushOption.brushType];\n}\n\nfunction getPanelByPoint(controller, e, localCursorPoint) {\n  var panels = controller._panels;\n\n  if (!panels) {\n    return BRUSH_PANEL_GLOBAL;\n  }\n\n  var panel;\n  var transform = controller._transform;\n  each(panels, function (pn) {\n    pn.isTargetByCursor(e, localCursorPoint, transform) && (panel = pn);\n  });\n  return panel;\n}\n\nfunction getPanelByCover(controller, cover) {\n  var panels = controller._panels;\n\n  if (!panels) {\n    return BRUSH_PANEL_GLOBAL;\n  }\n\n  var panelId = cover.__brushOption.panelId;\n  return panelId != null ? panels[panelId] : BRUSH_PANEL_GLOBAL;\n}\n\nfunction clearCovers(controller) {\n  var covers = controller._covers;\n  var originalLength = covers.length;\n  each(covers, function (cover) {\n    controller.group.remove(cover);\n  }, controller);\n  covers.length = 0;\n  return !!originalLength;\n}\n\nfunction trigger(controller, opt) {\n  var areas = map(controller._covers, function (cover) {\n    var brushOption = cover.__brushOption;\n    var range = clone(brushOption.range);\n    return {\n      brushType: brushOption.brushType,\n      panelId: brushOption.panelId,\n      range: range\n    };\n  });\n  controller.trigger('brush', {\n    areas: areas,\n    isEnd: !!opt.isEnd,\n    removeOnClick: !!opt.removeOnClick\n  });\n}\n\nfunction shouldShowCover(controller) {\n  var track = controller._track;\n\n  if (!track.length) {\n    return false;\n  }\n\n  var p2 = track[track.length - 1];\n  var p1 = track[0];\n  var dx = p2[0] - p1[0];\n  var dy = p2[1] - p1[1];\n  var dist = mathPow(dx * dx + dy * dy, 0.5);\n  return dist > UNSELECT_THRESHOLD;\n}\n\nfunction getTrackEnds(track) {\n  var tail = track.length - 1;\n  tail < 0 && (tail = 0);\n  return [track[0], track[tail]];\n}\n\n;\n\nfunction createBaseRectCover(rectRangeConverter, controller, brushOption, edgeNameSequences) {\n  var cover = new graphic.Group();\n  cover.add(new graphic.Rect({\n    name: 'main',\n    style: makeStyle(brushOption),\n    silent: true,\n    draggable: true,\n    cursor: 'move',\n    drift: curry(driftRect, rectRangeConverter, controller, cover, ['n', 's', 'w', 'e']),\n    ondragend: curry(trigger, controller, {\n      isEnd: true\n    })\n  }));\n  each(edgeNameSequences, function (nameSequence) {\n    cover.add(new graphic.Rect({\n      name: nameSequence.join(''),\n      style: {\n        opacity: 0\n      },\n      draggable: true,\n      silent: true,\n      invisible: true,\n      drift: curry(driftRect, rectRangeConverter, controller, cover, nameSequence),\n      ondragend: curry(trigger, controller, {\n        isEnd: true\n      })\n    }));\n  });\n  return cover;\n}\n\nfunction updateBaseRect(controller, cover, localRange, brushOption) {\n  var lineWidth = brushOption.brushStyle.lineWidth || 0;\n  var handleSize = mathMax(lineWidth, MIN_RESIZE_LINE_WIDTH);\n  var x = localRange[0][0];\n  var y = localRange[1][0];\n  var xa = x - lineWidth / 2;\n  var ya = y - lineWidth / 2;\n  var x2 = localRange[0][1];\n  var y2 = localRange[1][1];\n  var x2a = x2 - handleSize + lineWidth / 2;\n  var y2a = y2 - handleSize + lineWidth / 2;\n  var width = x2 - x;\n  var height = y2 - y;\n  var widtha = width + lineWidth;\n  var heighta = height + lineWidth;\n  updateRectShape(controller, cover, 'main', x, y, width, height);\n\n  if (brushOption.transformable) {\n    updateRectShape(controller, cover, 'w', xa, ya, handleSize, heighta);\n    updateRectShape(controller, cover, 'e', x2a, ya, handleSize, heighta);\n    updateRectShape(controller, cover, 'n', xa, ya, widtha, handleSize);\n    updateRectShape(controller, cover, 's', xa, y2a, widtha, handleSize);\n    updateRectShape(controller, cover, 'nw', xa, ya, handleSize, handleSize);\n    updateRectShape(controller, cover, 'ne', x2a, ya, handleSize, handleSize);\n    updateRectShape(controller, cover, 'sw', xa, y2a, handleSize, handleSize);\n    updateRectShape(controller, cover, 'se', x2a, y2a, handleSize, handleSize);\n  }\n}\n\nfunction updateCommon(controller, cover) {\n  var brushOption = cover.__brushOption;\n  var transformable = brushOption.transformable;\n  var mainEl = cover.childAt(0);\n  mainEl.useStyle(makeStyle(brushOption));\n  mainEl.attr({\n    silent: !transformable,\n    cursor: transformable ? 'move' : 'default'\n  });\n  each([['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w']], function (nameSequence) {\n    var el = cover.childOfName(nameSequence.join(''));\n    var globalDir = nameSequence.length === 1 ? getGlobalDirection1(controller, nameSequence[0]) : getGlobalDirection2(controller, nameSequence);\n    el && el.attr({\n      silent: !transformable,\n      invisible: !transformable,\n      cursor: transformable ? CURSOR_MAP[globalDir] + '-resize' : null\n    });\n  });\n}\n\nfunction updateRectShape(controller, cover, name, x, y, w, h) {\n  var el = cover.childOfName(name);\n  el && el.setShape(pointsToRect(clipByPanel(controller, cover, [[x, y], [x + w, y + h]])));\n}\n\nfunction makeStyle(brushOption) {\n  return defaults({\n    strokeNoScale: true\n  }, brushOption.brushStyle);\n}\n\nfunction formatRectRange(x, y, x2, y2) {\n  var min = [mathMin(x, x2), mathMin(y, y2)];\n  var max = [mathMax(x, x2), mathMax(y, y2)];\n  return [[min[0], max[0]], [min[1], max[1]]];\n}\n\nfunction getTransform(controller) {\n  return graphic.getTransform(controller.group);\n}\n\nfunction getGlobalDirection1(controller, localDirName) {\n  var map = {\n    w: 'left',\n    e: 'right',\n    n: 'top',\n    s: 'bottom'\n  };\n  var inverseMap = {\n    left: 'w',\n    right: 'e',\n    top: 'n',\n    bottom: 's'\n  };\n  var dir = graphic.transformDirection(map[localDirName], getTransform(controller));\n  return inverseMap[dir];\n}\n\nfunction getGlobalDirection2(controller, localDirNameSeq) {\n  var globalDir = [getGlobalDirection1(controller, localDirNameSeq[0]), getGlobalDirection1(controller, localDirNameSeq[1])];\n  (globalDir[0] === 'e' || globalDir[0] === 'w') && globalDir.reverse();\n  return globalDir.join('');\n}\n\nfunction driftRect(rectRangeConverter, controller, cover, dirNameSequence, dx, dy) {\n  var brushOption = cover.__brushOption;\n  var rectRange = rectRangeConverter.toRectRange(brushOption.range);\n  var localDelta = toLocalDelta(controller, dx, dy);\n  each(dirNameSequence, function (dirName) {\n    var ind = DIRECTION_MAP[dirName];\n    rectRange[ind[0]][ind[1]] += localDelta[ind[0]];\n  });\n  brushOption.range = rectRangeConverter.fromRectRange(formatRectRange(rectRange[0][0], rectRange[1][0], rectRange[0][1], rectRange[1][1]));\n  updateCoverAfterCreation(controller, cover);\n  trigger(controller, {\n    isEnd: false\n  });\n}\n\nfunction driftPolygon(controller, cover, dx, dy) {\n  var range = cover.__brushOption.range;\n  var localDelta = toLocalDelta(controller, dx, dy);\n  each(range, function (point) {\n    point[0] += localDelta[0];\n    point[1] += localDelta[1];\n  });\n  updateCoverAfterCreation(controller, cover);\n  trigger(controller, {\n    isEnd: false\n  });\n}\n\nfunction toLocalDelta(controller, dx, dy) {\n  var thisGroup = controller.group;\n  var localD = thisGroup.transformCoordToLocal(dx, dy);\n  var localZero = thisGroup.transformCoordToLocal(0, 0);\n  return [localD[0] - localZero[0], localD[1] - localZero[1]];\n}\n\nfunction clipByPanel(controller, cover, data) {\n  var panel = getPanelByCover(controller, cover);\n  return panel && panel !== BRUSH_PANEL_GLOBAL ? panel.clipPath(data, controller._transform) : clone(data);\n}\n\nfunction pointsToRect(points) {\n  var xmin = mathMin(points[0][0], points[1][0]);\n  var ymin = mathMin(points[0][1], points[1][1]);\n  var xmax = mathMax(points[0][0], points[1][0]);\n  var ymax = mathMax(points[0][1], points[1][1]);\n  return {\n    x: xmin,\n    y: ymin,\n    width: xmax - xmin,\n    height: ymax - ymin\n  };\n}\n\nfunction resetCursor(controller, e, localCursorPoint) {\n  if (!controller._brushType || isOutsideZrArea(controller, e.offsetX, e.offsetY)) {\n    return;\n  }\n\n  var zr = controller._zr;\n  var covers = controller._covers;\n  var currPanel = getPanelByPoint(controller, e, localCursorPoint);\n\n  if (!controller._dragging) {\n    for (var i = 0; i < covers.length; i++) {\n      var brushOption = covers[i].__brushOption;\n\n      if (currPanel && (currPanel === BRUSH_PANEL_GLOBAL || brushOption.panelId === currPanel.panelId) && coverRenderers[brushOption.brushType].contain(covers[i], localCursorPoint[0], localCursorPoint[1])) {\n        return;\n      }\n    }\n  }\n\n  currPanel && zr.setCursorStyle('crosshair');\n}\n\nfunction preventDefault(e) {\n  var rawE = e.event;\n  rawE.preventDefault && rawE.preventDefault();\n}\n\nfunction mainShapeContain(cover, x, y) {\n  return cover.childOfName('main').contain(x, y);\n}\n\nfunction updateCoverByMouse(controller, e, localCursorPoint, isEnd) {\n  var creatingCover = controller._creatingCover;\n  var panel = controller._creatingPanel;\n  var thisBrushOption = controller._brushOption;\n  var eventParams;\n\n  controller._track.push(localCursorPoint.slice());\n\n  if (shouldShowCover(controller) || creatingCover) {\n    if (panel && !creatingCover) {\n      thisBrushOption.brushMode === 'single' && clearCovers(controller);\n      var brushOption = clone(thisBrushOption);\n      brushOption.brushType = determineBrushType(brushOption.brushType, panel);\n      brushOption.panelId = panel === BRUSH_PANEL_GLOBAL ? null : panel.panelId;\n      creatingCover = controller._creatingCover = createCover(controller, brushOption);\n\n      controller._covers.push(creatingCover);\n    }\n\n    if (creatingCover) {\n      var coverRenderer = coverRenderers[determineBrushType(controller._brushType, panel)];\n      var coverBrushOption = creatingCover.__brushOption;\n      coverBrushOption.range = coverRenderer.getCreatingRange(clipByPanel(controller, creatingCover, controller._track));\n\n      if (isEnd) {\n        endCreating(controller, creatingCover);\n        coverRenderer.updateCommon(controller, creatingCover);\n      }\n\n      updateCoverShape(controller, creatingCover);\n      eventParams = {\n        isEnd: isEnd\n      };\n    }\n  } else if (isEnd && thisBrushOption.brushMode === 'single' && thisBrushOption.removeOnClick) {\n    if (getPanelByPoint(controller, e, localCursorPoint) && clearCovers(controller)) {\n      eventParams = {\n        isEnd: isEnd,\n        removeOnClick: true\n      };\n    }\n  }\n\n  return eventParams;\n}\n\nfunction determineBrushType(brushType, panel) {\n  if (brushType === 'auto') {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(panel && panel.defaultBrushType, 'MUST have defaultBrushType when brushType is \"atuo\"');\n    }\n\n    return panel.defaultBrushType;\n  }\n\n  return brushType;\n}\n\nvar pointerHandlers = {\n  mousedown: function (e) {\n    if (this._dragging) {\n      handleDragEnd(this, e);\n    } else if (!e.target || !e.target.draggable) {\n      preventDefault(e);\n      var localCursorPoint = this.group.transformCoordToLocal(e.offsetX, e.offsetY);\n      this._creatingCover = null;\n      var panel = this._creatingPanel = getPanelByPoint(this, e, localCursorPoint);\n\n      if (panel) {\n        this._dragging = true;\n        this._track = [localCursorPoint.slice()];\n      }\n    }\n  },\n  mousemove: function (e) {\n    var x = e.offsetX;\n    var y = e.offsetY;\n    var localCursorPoint = this.group.transformCoordToLocal(x, y);\n    resetCursor(this, e, localCursorPoint);\n\n    if (this._dragging) {\n      preventDefault(e);\n      var eventParams = updateCoverByMouse(this, e, localCursorPoint, false);\n      eventParams && trigger(this, eventParams);\n    }\n  },\n  mouseup: function (e) {\n    handleDragEnd(this, e);\n  }\n};\n\nfunction handleDragEnd(controller, e) {\n  if (controller._dragging) {\n    preventDefault(e);\n    var x = e.offsetX;\n    var y = e.offsetY;\n    var localCursorPoint = controller.group.transformCoordToLocal(x, y);\n    var eventParams = updateCoverByMouse(controller, e, localCursorPoint, true);\n    controller._dragging = false;\n    controller._track = [];\n    controller._creatingCover = null;\n    eventParams && trigger(controller, eventParams);\n  }\n}\n\nfunction isOutsideZrArea(controller, x, y) {\n  var zr = controller._zr;\n  return x < 0 || x > zr.getWidth() || y < 0 || y > zr.getHeight();\n}\n\nvar coverRenderers = {\n  lineX: getLineRenderer(0),\n  lineY: getLineRenderer(1),\n  rect: {\n    createCover: function (controller, brushOption) {\n      function returnInput(range) {\n        return range;\n      }\n\n      return createBaseRectCover({\n        toRectRange: returnInput,\n        fromRectRange: returnInput\n      }, controller, brushOption, [['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w']]);\n    },\n    getCreatingRange: function (localTrack) {\n      var ends = getTrackEnds(localTrack);\n      return formatRectRange(ends[1][0], ends[1][1], ends[0][0], ends[0][1]);\n    },\n    updateCoverShape: function (controller, cover, localRange, brushOption) {\n      updateBaseRect(controller, cover, localRange, brushOption);\n    },\n    updateCommon: updateCommon,\n    contain: mainShapeContain\n  },\n  polygon: {\n    createCover: function (controller, brushOption) {\n      var cover = new graphic.Group();\n      cover.add(new graphic.Polyline({\n        name: 'main',\n        style: makeStyle(brushOption),\n        silent: true\n      }));\n      return cover;\n    },\n    getCreatingRange: function (localTrack) {\n      return localTrack;\n    },\n    endCreating: function (controller, cover) {\n      cover.remove(cover.childAt(0));\n      cover.add(new graphic.Polygon({\n        name: 'main',\n        draggable: true,\n        drift: curry(driftPolygon, controller, cover),\n        ondragend: curry(trigger, controller, {\n          isEnd: true\n        })\n      }));\n    },\n    updateCoverShape: function (controller, cover, localRange, brushOption) {\n      cover.childAt(0).setShape({\n        points: clipByPanel(controller, cover, localRange)\n      });\n    },\n    updateCommon: updateCommon,\n    contain: mainShapeContain\n  }\n};\n\nfunction getLineRenderer(xyIndex) {\n  return {\n    createCover: function (controller, brushOption) {\n      return createBaseRectCover({\n        toRectRange: function (range) {\n          var rectRange = [range, [0, 100]];\n          xyIndex && rectRange.reverse();\n          return rectRange;\n        },\n        fromRectRange: function (rectRange) {\n          return rectRange[xyIndex];\n        }\n      }, controller, brushOption, [[['w'], ['e']], [['n'], ['s']]][xyIndex]);\n    },\n    getCreatingRange: function (localTrack) {\n      var ends = getTrackEnds(localTrack);\n      var min = mathMin(ends[0][xyIndex], ends[1][xyIndex]);\n      var max = mathMax(ends[0][xyIndex], ends[1][xyIndex]);\n      return [min, max];\n    },\n    updateCoverShape: function (controller, cover, localRange, brushOption) {\n      var otherExtent;\n      var panel = getPanelByCover(controller, cover);\n\n      if (panel !== BRUSH_PANEL_GLOBAL && panel.getLinearBrushOtherExtent) {\n        otherExtent = panel.getLinearBrushOtherExtent(xyIndex);\n      } else {\n        var zr = controller._zr;\n        otherExtent = [0, [zr.getWidth(), zr.getHeight()][1 - xyIndex]];\n      }\n\n      var rectRange = [localRange, otherExtent];\n      xyIndex && rectRange.reverse();\n      updateBaseRect(controller, cover, rectRange, brushOption);\n    },\n    updateCommon: updateCommon,\n    contain: mainShapeContain\n  };\n}\n\nexport default BrushController;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar IRRELEVANT_EXCLUDES = {\n  'axisPointer': 1,\n  'tooltip': 1,\n  'brush': 1\n};\nexport function onIrrelevantElement(e, api, targetCoordSysModel) {\n  var model = api.getComponentByElement(e.topTarget);\n  var coordSys = model && model.coordinateSystem;\n  return model && model !== targetCoordSysModel && !IRRELEVANT_EXCLUDES.hasOwnProperty(model.mainType) && coordSys && coordSys.model !== targetCoordSysModel;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { onIrrelevantElement } from './cursorHelper';\nimport * as graphicUtil from '../../util/graphic';\nexport function makeRectPanelClipPath(rect) {\n  rect = normalizeRect(rect);\n  return function (localPoints) {\n    return graphicUtil.clipPointsByRect(localPoints, rect);\n  };\n}\nexport function makeLinearBrushOtherExtent(rect, specifiedXYIndex) {\n  rect = normalizeRect(rect);\n  return function (xyIndex) {\n    var idx = specifiedXYIndex != null ? specifiedXYIndex : xyIndex;\n    var brushWidth = idx ? rect.width : rect.height;\n    var base = idx ? rect.x : rect.y;\n    return [base, base + (brushWidth || 0)];\n  };\n}\nexport function makeRectIsTargetByCursor(rect, api, targetModel) {\n  var boundingRect = normalizeRect(rect);\n  return function (e, localCursorPoint) {\n    return boundingRect.contain(localCursorPoint[0], localCursorPoint[1]) && !onIrrelevantElement(e, api, targetModel);\n  };\n}\n\nfunction normalizeRect(rect) {\n  return BoundingRect.create(rect);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, indexOf, curry, assert, map, createHashMap } from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport * as brushHelper from './brushHelper';\nimport { parseFinder as modelUtilParseFinder } from '../../util/model';\nvar COORD_CONVERTS = ['dataToPoint', 'pointToData'];\nvar INCLUDE_FINDER_MAIN_TYPES = ['grid', 'xAxis', 'yAxis', 'geo', 'graph', 'polar', 'radiusAxis', 'angleAxis', 'bmap'];\n\nvar BrushTargetManager = function () {\n  function BrushTargetManager(finder, ecModel, opt) {\n    var _this = this;\n\n    this._targetInfoList = [];\n    var foundCpts = parseFinder(ecModel, finder);\n    each(targetInfoBuilders, function (builder, type) {\n      if (!opt || !opt.include || indexOf(opt.include, type) >= 0) {\n        builder(foundCpts, _this._targetInfoList);\n      }\n    });\n  }\n\n  BrushTargetManager.prototype.setOutputRanges = function (areas, ecModel) {\n    this.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) {\n      (area.coordRanges || (area.coordRanges = [])).push(coordRange);\n\n      if (!area.coordRange) {\n        area.coordRange = coordRange;\n        var result = coordConvert[area.brushType](0, coordSys, coordRange);\n        area.__rangeOffset = {\n          offset: diffProcessor[area.brushType](result.values, area.range, [1, 1]),\n          xyMinMax: result.xyMinMax\n        };\n      }\n    });\n    return areas;\n  };\n\n  BrushTargetManager.prototype.matchOutputRanges = function (areas, ecModel, cb) {\n    each(areas, function (area) {\n      var targetInfo = this.findTargetInfo(area, ecModel);\n\n      if (targetInfo && targetInfo !== true) {\n        each(targetInfo.coordSyses, function (coordSys) {\n          var result = coordConvert[area.brushType](1, coordSys, area.range);\n          cb(area, result.values, coordSys, ecModel);\n        });\n      }\n    }, this);\n  };\n\n  BrushTargetManager.prototype.setInputRanges = function (areas, ecModel) {\n    each(areas, function (area) {\n      var targetInfo = this.findTargetInfo(area, ecModel);\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(!targetInfo || targetInfo === true || area.coordRange, 'coordRange must be specified when coord index specified.');\n        assert(!targetInfo || targetInfo !== true || area.range, 'range must be specified in global brush.');\n      }\n\n      area.range = area.range || [];\n\n      if (targetInfo && targetInfo !== true) {\n        area.panelId = targetInfo.panelId;\n        var result = coordConvert[area.brushType](0, targetInfo.coordSys, area.coordRange);\n        var rangeOffset = area.__rangeOffset;\n        area.range = rangeOffset ? diffProcessor[area.brushType](result.values, rangeOffset.offset, getScales(result.xyMinMax, rangeOffset.xyMinMax)) : result.values;\n      }\n    }, this);\n  };\n\n  BrushTargetManager.prototype.makePanelOpts = function (api, getDefaultBrushType) {\n    return map(this._targetInfoList, function (targetInfo) {\n      var rect = targetInfo.getPanelRect();\n      return {\n        panelId: targetInfo.panelId,\n        defaultBrushType: getDefaultBrushType ? getDefaultBrushType(targetInfo) : null,\n        clipPath: brushHelper.makeRectPanelClipPath(rect),\n        isTargetByCursor: brushHelper.makeRectIsTargetByCursor(rect, api, targetInfo.coordSysModel),\n        getLinearBrushOtherExtent: brushHelper.makeLinearBrushOtherExtent(rect)\n      };\n    });\n  };\n\n  BrushTargetManager.prototype.controlSeries = function (area, seriesModel, ecModel) {\n    var targetInfo = this.findTargetInfo(area, ecModel);\n    return targetInfo === true || targetInfo && indexOf(targetInfo.coordSyses, seriesModel.coordinateSystem) >= 0;\n  };\n\n  BrushTargetManager.prototype.findTargetInfo = function (area, ecModel) {\n    var targetInfoList = this._targetInfoList;\n    var foundCpts = parseFinder(ecModel, area);\n\n    for (var i = 0; i < targetInfoList.length; i++) {\n      var targetInfo = targetInfoList[i];\n      var areaPanelId = area.panelId;\n\n      if (areaPanelId) {\n        if (targetInfo.panelId === areaPanelId) {\n          return targetInfo;\n        }\n      } else {\n        for (var j = 0; j < targetInfoMatchers.length; j++) {\n          if (targetInfoMatchers[j](foundCpts, targetInfo)) {\n            return targetInfo;\n          }\n        }\n      }\n    }\n\n    return true;\n  };\n\n  return BrushTargetManager;\n}();\n\nfunction formatMinMax(minMax) {\n  minMax[0] > minMax[1] && minMax.reverse();\n  return minMax;\n}\n\nfunction parseFinder(ecModel, finder) {\n  return modelUtilParseFinder(ecModel, finder, {\n    includeMainTypes: INCLUDE_FINDER_MAIN_TYPES\n  });\n}\n\nvar targetInfoBuilders = {\n  grid: function (foundCpts, targetInfoList) {\n    var xAxisModels = foundCpts.xAxisModels;\n    var yAxisModels = foundCpts.yAxisModels;\n    var gridModels = foundCpts.gridModels;\n    var gridModelMap = createHashMap();\n    var xAxesHas = {};\n    var yAxesHas = {};\n\n    if (!xAxisModels && !yAxisModels && !gridModels) {\n      return;\n    }\n\n    each(xAxisModels, function (axisModel) {\n      var gridModel = axisModel.axis.grid.model;\n      gridModelMap.set(gridModel.id, gridModel);\n      xAxesHas[gridModel.id] = true;\n    });\n    each(yAxisModels, function (axisModel) {\n      var gridModel = axisModel.axis.grid.model;\n      gridModelMap.set(gridModel.id, gridModel);\n      yAxesHas[gridModel.id] = true;\n    });\n    each(gridModels, function (gridModel) {\n      gridModelMap.set(gridModel.id, gridModel);\n      xAxesHas[gridModel.id] = true;\n      yAxesHas[gridModel.id] = true;\n    });\n    gridModelMap.each(function (gridModel) {\n      var grid = gridModel.coordinateSystem;\n      var cartesians = [];\n      each(grid.getCartesians(), function (cartesian, index) {\n        if (indexOf(xAxisModels, cartesian.getAxis('x').model) >= 0 || indexOf(yAxisModels, cartesian.getAxis('y').model) >= 0) {\n          cartesians.push(cartesian);\n        }\n      });\n      targetInfoList.push({\n        panelId: 'grid--' + gridModel.id,\n        gridModel: gridModel,\n        coordSysModel: gridModel,\n        coordSys: cartesians[0],\n        coordSyses: cartesians,\n        getPanelRect: panelRectBuilders.grid,\n        xAxisDeclared: xAxesHas[gridModel.id],\n        yAxisDeclared: yAxesHas[gridModel.id]\n      });\n    });\n  },\n  geo: function (foundCpts, targetInfoList) {\n    each(foundCpts.geoModels, function (geoModel) {\n      var coordSys = geoModel.coordinateSystem;\n      targetInfoList.push({\n        panelId: 'geo--' + geoModel.id,\n        geoModel: geoModel,\n        coordSysModel: geoModel,\n        coordSys: coordSys,\n        coordSyses: [coordSys],\n        getPanelRect: panelRectBuilders.geo\n      });\n    });\n  }\n};\nvar targetInfoMatchers = [function (foundCpts, targetInfo) {\n  var xAxisModel = foundCpts.xAxisModel;\n  var yAxisModel = foundCpts.yAxisModel;\n  var gridModel = foundCpts.gridModel;\n  !gridModel && xAxisModel && (gridModel = xAxisModel.axis.grid.model);\n  !gridModel && yAxisModel && (gridModel = yAxisModel.axis.grid.model);\n  return gridModel && gridModel === targetInfo.gridModel;\n}, function (foundCpts, targetInfo) {\n  var geoModel = foundCpts.geoModel;\n  return geoModel && geoModel === targetInfo.geoModel;\n}];\nvar panelRectBuilders = {\n  grid: function () {\n    return this.coordSys.master.getRect().clone();\n  },\n  geo: function () {\n    var coordSys = this.coordSys;\n    var rect = coordSys.getBoundingRect().clone();\n    rect.applyTransform(graphic.getTransform(coordSys));\n    return rect;\n  }\n};\nvar coordConvert = {\n  lineX: curry(axisConvert, 0),\n  lineY: curry(axisConvert, 1),\n  rect: function (to, coordSys, rangeOrCoordRange) {\n    var xminymin = coordSys[COORD_CONVERTS[to]]([rangeOrCoordRange[0][0], rangeOrCoordRange[1][0]]);\n    var xmaxymax = coordSys[COORD_CONVERTS[to]]([rangeOrCoordRange[0][1], rangeOrCoordRange[1][1]]);\n    var values = [formatMinMax([xminymin[0], xmaxymax[0]]), formatMinMax([xminymin[1], xmaxymax[1]])];\n    return {\n      values: values,\n      xyMinMax: values\n    };\n  },\n  polygon: function (to, coordSys, rangeOrCoordRange) {\n    var xyMinMax = [[Infinity, -Infinity], [Infinity, -Infinity]];\n    var values = map(rangeOrCoordRange, function (item) {\n      var p = coordSys[COORD_CONVERTS[to]](item);\n      xyMinMax[0][0] = Math.min(xyMinMax[0][0], p[0]);\n      xyMinMax[1][0] = Math.min(xyMinMax[1][0], p[1]);\n      xyMinMax[0][1] = Math.max(xyMinMax[0][1], p[0]);\n      xyMinMax[1][1] = Math.max(xyMinMax[1][1], p[1]);\n      return p;\n    });\n    return {\n      values: values,\n      xyMinMax: xyMinMax\n    };\n  }\n};\n\nfunction axisConvert(axisNameIndex, to, coordSys, rangeOrCoordRange) {\n  if (process.env.NODE_ENV !== 'production') {\n    assert(coordSys.type === 'cartesian2d', 'lineX/lineY brush is available only in cartesian2d.');\n  }\n\n  var axis = coordSys.getAxis(['x', 'y'][axisNameIndex]);\n  var values = formatMinMax(map([0, 1], function (i) {\n    return to ? axis.coordToData(axis.toLocalCoord(rangeOrCoordRange[i])) : axis.toGlobalCoord(axis.dataToCoord(rangeOrCoordRange[i]));\n  }));\n  var xyMinMax = [];\n  xyMinMax[axisNameIndex] = values;\n  xyMinMax[1 - axisNameIndex] = [NaN, NaN];\n  return {\n    values: values,\n    xyMinMax: xyMinMax\n  };\n}\n\nvar diffProcessor = {\n  lineX: curry(axisDiffProcessor, 0),\n  lineY: curry(axisDiffProcessor, 1),\n  rect: function (values, refer, scales) {\n    return [[values[0][0] - scales[0] * refer[0][0], values[0][1] - scales[0] * refer[0][1]], [values[1][0] - scales[1] * refer[1][0], values[1][1] - scales[1] * refer[1][1]]];\n  },\n  polygon: function (values, refer, scales) {\n    return map(values, function (item, idx) {\n      return [item[0] - scales[0] * refer[idx][0], item[1] - scales[1] * refer[idx][1]];\n    });\n  }\n};\n\nfunction axisDiffProcessor(axisNameIndex, values, refer, scales) {\n  return [values[0] - scales[axisNameIndex] * refer[0], values[1] - scales[axisNameIndex] * refer[1]];\n}\n\nfunction getScales(xyMinMaxCurr, xyMinMaxOrigin) {\n  var sizeCurr = getSize(xyMinMaxCurr);\n  var sizeOrigin = getSize(xyMinMaxOrigin);\n  var scales = [sizeCurr[0] / sizeOrigin[0], sizeCurr[1] / sizeOrigin[1]];\n  isNaN(scales[0]) && (scales[0] = 1);\n  isNaN(scales[1]) && (scales[1] = 1);\n  return scales;\n}\n\nfunction getSize(xyMinMax) {\n  return xyMinMax ? [xyMinMax[0][1] - xyMinMax[0][0], xyMinMax[1][1] - xyMinMax[1][0]] : [NaN, NaN];\n}\n\nexport default BrushTargetManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BrushController from '../../helper/BrushController';\nimport BrushTargetManager from '../../helper/BrushTargetManager';\nimport * as history from '../../dataZoom/history';\nimport sliderMove from '../../helper/sliderMove';\nimport { ToolboxFeature } from '../featureManager';\nimport { makeInternalComponentId, parseFinder } from '../../../util/model';\nimport { registerInternalOptionCreator } from '../../../model/internalComponentCreator';\nvar each = zrUtil.each;\nvar DATA_ZOOM_ID_BASE = makeInternalComponentId('toolbox-dataZoom_');\nvar ICON_TYPES = ['zoom', 'back'];\n\nvar DataZoomFeature = function (_super) {\n  __extends(DataZoomFeature, _super);\n\n  function DataZoomFeature() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  DataZoomFeature.prototype.render = function (featureModel, ecModel, api, payload) {\n    if (!this.brushController) {\n      this.brushController = new BrushController(api.getZr());\n      this.brushController.on('brush', zrUtil.bind(this._onBrush, this)).mount();\n    }\n\n    updateZoomBtnStatus(featureModel, ecModel, this, payload, api);\n    updateBackBtnStatus(featureModel, ecModel);\n  };\n\n  DataZoomFeature.prototype.onclick = function (ecModel, api, type) {\n    handlers[type].call(this);\n  };\n\n  DataZoomFeature.prototype.remove = function (ecModel, api) {\n    this.brushController.unmount();\n  };\n\n  DataZoomFeature.prototype.dispose = function (ecModel, api) {\n    this.brushController.dispose();\n  };\n\n  DataZoomFeature.prototype._onBrush = function (eventParam) {\n    var areas = eventParam.areas;\n\n    if (!eventParam.isEnd || !areas.length) {\n      return;\n    }\n\n    var snapshot = {};\n    var ecModel = this.ecModel;\n    this.brushController.updateCovers([]);\n    var brushTargetManager = new BrushTargetManager(makeAxisFinder(this.model), ecModel, {\n      include: ['grid']\n    });\n    brushTargetManager.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) {\n      if (coordSys.type !== 'cartesian2d') {\n        return;\n      }\n\n      var brushType = area.brushType;\n\n      if (brushType === 'rect') {\n        setBatch('x', coordSys, coordRange[0]);\n        setBatch('y', coordSys, coordRange[1]);\n      } else {\n        setBatch({\n          lineX: 'x',\n          lineY: 'y'\n        }[brushType], coordSys, coordRange);\n      }\n    });\n    history.push(ecModel, snapshot);\n\n    this._dispatchZoomAction(snapshot);\n\n    function setBatch(dimName, coordSys, minMax) {\n      var axis = coordSys.getAxis(dimName);\n      var axisModel = axis.model;\n      var dataZoomModel = findDataZoom(dimName, axisModel, ecModel);\n      var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy(axisModel).getMinMaxSpan();\n\n      if (minMaxSpan.minValueSpan != null || minMaxSpan.maxValueSpan != null) {\n        minMax = sliderMove(0, minMax.slice(), axis.scale.getExtent(), 0, minMaxSpan.minValueSpan, minMaxSpan.maxValueSpan);\n      }\n\n      dataZoomModel && (snapshot[dataZoomModel.id] = {\n        dataZoomId: dataZoomModel.id,\n        startValue: minMax[0],\n        endValue: minMax[1]\n      });\n    }\n\n    function findDataZoom(dimName, axisModel, ecModel) {\n      var found;\n      ecModel.eachComponent({\n        mainType: 'dataZoom',\n        subType: 'select'\n      }, function (dzModel) {\n        var has = dzModel.getAxisModel(dimName, axisModel.componentIndex);\n        has && (found = dzModel);\n      });\n      return found;\n    }\n  };\n\n  ;\n\n  DataZoomFeature.prototype._dispatchZoomAction = function (snapshot) {\n    var batch = [];\n    each(snapshot, function (batchItem, dataZoomId) {\n      batch.push(zrUtil.clone(batchItem));\n    });\n    batch.length && this.api.dispatchAction({\n      type: 'dataZoom',\n      from: this.uid,\n      batch: batch\n    });\n  };\n\n  DataZoomFeature.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      filterMode: 'filter',\n      icon: {\n        zoom: 'M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1',\n        back: 'M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26'\n      },\n      title: ecModel.getLocale(['toolbox', 'dataZoom', 'title']),\n      brushStyle: {\n        borderWidth: 0,\n        color: 'rgba(210,219,238,0.2)'\n      }\n    };\n    return defaultOption;\n  };\n\n  return DataZoomFeature;\n}(ToolboxFeature);\n\nvar handlers = {\n  zoom: function () {\n    var nextActive = !this.isZoomActive;\n    this.api.dispatchAction({\n      type: 'takeGlobalCursor',\n      key: 'dataZoomSelect',\n      dataZoomSelectActive: nextActive\n    });\n  },\n  back: function () {\n    this._dispatchZoomAction(history.pop(this.ecModel));\n  }\n};\n\nfunction makeAxisFinder(dzFeatureModel) {\n  var setting = {\n    xAxisIndex: dzFeatureModel.get('xAxisIndex', true),\n    yAxisIndex: dzFeatureModel.get('yAxisIndex', true),\n    xAxisId: dzFeatureModel.get('xAxisId', true),\n    yAxisId: dzFeatureModel.get('yAxisId', true)\n  };\n\n  if (setting.xAxisIndex == null && setting.xAxisId == null) {\n    setting.xAxisIndex = 'all';\n  }\n\n  if (setting.yAxisIndex == null && setting.yAxisId == null) {\n    setting.yAxisIndex = 'all';\n  }\n\n  return setting;\n}\n\nfunction updateBackBtnStatus(featureModel, ecModel) {\n  featureModel.setIconStatus('back', history.count(ecModel) > 1 ? 'emphasis' : 'normal');\n}\n\nfunction updateZoomBtnStatus(featureModel, ecModel, view, payload, api) {\n  var zoomActive = view.isZoomActive;\n\n  if (payload && payload.type === 'takeGlobalCursor') {\n    zoomActive = payload.key === 'dataZoomSelect' ? payload.dataZoomSelectActive : false;\n  }\n\n  view.isZoomActive = zoomActive;\n  featureModel.setIconStatus('zoom', zoomActive ? 'emphasis' : 'normal');\n  var brushTargetManager = new BrushTargetManager(makeAxisFinder(featureModel), ecModel, {\n    include: ['grid']\n  });\n  var panels = brushTargetManager.makePanelOpts(api, function (targetInfo) {\n    return targetInfo.xAxisDeclared && !targetInfo.yAxisDeclared ? 'lineX' : !targetInfo.xAxisDeclared && targetInfo.yAxisDeclared ? 'lineY' : 'rect';\n  });\n  view.brushController.setPanels(panels).enableBrush(zoomActive && panels.length ? {\n    brushType: 'auto',\n    brushStyle: featureModel.getModel('brushStyle').getItemStyle()\n  } : false);\n}\n\nregisterInternalOptionCreator('dataZoom', function (ecModel) {\n  var toolboxModel = ecModel.getComponent('toolbox', 0);\n\n  if (!toolboxModel) {\n    return;\n  }\n\n  var dzFeatureModel = toolboxModel.getModel(['feature', 'dataZoom']);\n  var dzOptions = [];\n  var finder = makeAxisFinder(dzFeatureModel);\n  var finderResult = parseFinder(ecModel, finder);\n  each(finderResult.xAxisModels, function (axisModel) {\n    return buildInternalOptions(axisModel, 'xAxis', 'xAxisIndex');\n  });\n  each(finderResult.yAxisModels, function (axisModel) {\n    return buildInternalOptions(axisModel, 'yAxis', 'yAxisIndex');\n  });\n\n  function buildInternalOptions(axisModel, axisMainType, axisIndexPropName) {\n    var axisIndex = axisModel.componentIndex;\n    var newOpt = {\n      type: 'select',\n      $fromToolbox: true,\n      filterMode: dzFeatureModel.get('filterMode', true) || 'filter',\n      id: DATA_ZOOM_ID_BASE + axisMainType + axisIndex\n    };\n    newOpt[axisIndexPropName] = axisIndex;\n    dzOptions.push(newOpt);\n  }\n\n  return dzOptions;\n});\nexport default DataZoomFeature;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport { install as installDataZoomSelect } from '../../component/dataZoom/installDataZoomSelect';\nimport ToolboxModel from './ToolboxModel';\nimport ToolboxView from './ToolboxView';\nimport { registerFeature } from './featureManager';\nimport SaveAsImage from './feature/SaveAsImage';\nimport MagicType from './feature/MagicType';\nimport DataView from './feature/DataView';\nimport Restore from './feature/Restore';\nimport DataZoom from './feature/DataZoom';\nexport function install(registers) {\n  registers.registerComponentModel(ToolboxModel);\n  registers.registerComponentView(ToolboxView);\n  registerFeature('saveAsImage', SaveAsImage);\n  registerFeature('magicType', MagicType);\n  registerFeature('dataView', DataView);\n  registerFeature('dataZoom', DataZoom);\n  registerFeature('restore', Restore);\n  use(installDataZoomSelect);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\n\nvar TooltipModel = function (_super) {\n  __extends(TooltipModel, _super);\n\n  function TooltipModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TooltipModel.type;\n    return _this;\n  }\n\n  TooltipModel.type = 'tooltip';\n  TooltipModel.dependencies = ['axisPointer'];\n  TooltipModel.defaultOption = {\n    zlevel: 0,\n    z: 60,\n    show: true,\n    showContent: true,\n    trigger: 'item',\n    triggerOn: 'mousemove|click',\n    alwaysShowContent: false,\n    displayMode: 'single',\n    renderMode: 'auto',\n    confine: null,\n    showDelay: 0,\n    hideDelay: 100,\n    transitionDuration: 0.4,\n    enterable: false,\n    backgroundColor: '#fff',\n    shadowBlur: 10,\n    shadowColor: 'rgba(0, 0, 0, .2)',\n    shadowOffsetX: 1,\n    shadowOffsetY: 2,\n    borderRadius: 4,\n    borderWidth: 1,\n    padding: null,\n    extraCssText: '',\n    axisPointer: {\n      type: 'line',\n      axis: 'auto',\n      animation: 'auto',\n      animationDurationUpdate: 200,\n      animationEasingUpdate: 'exponentialOut',\n      crossStyle: {\n        color: '#999',\n        width: 1,\n        type: 'dashed',\n        textStyle: {}\n      }\n    },\n    textStyle: {\n      color: '#666',\n      fontSize: 14\n    }\n  };\n  return TooltipModel;\n}(ComponentModel);\n\nexport default TooltipModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function shouldTooltipConfine(tooltipModel) {\n  var confineOption = tooltipModel.get('confine');\n  return confineOption != null ? !!confineOption : tooltipModel.get('renderMode') === 'richText';\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isString, indexOf, map, each, bind, isArray, isDom } from 'zrender/lib/core/util';\nimport { toHex } from 'zrender/lib/tool/color';\nimport { normalizeEvent } from 'zrender/lib/core/event';\nimport { transformLocalCoord } from 'zrender/lib/core/dom';\nimport env from 'zrender/lib/core/env';\nimport { convertToColorString, toCamelCase, normalizeCssArray } from '../../util/format';\nimport { shouldTooltipConfine } from './helper';\nimport { getPaddingFromTooltipModel } from './tooltipMarkup';\nvar vendors = ['-ms-', '-moz-', '-o-', '-webkit-', ''];\nvar gCssText = 'position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;';\n\nfunction mirrorPos(pos) {\n  pos = pos === 'left' ? 'right' : pos === 'right' ? 'left' : pos === 'top' ? 'bottom' : 'top';\n  return pos;\n}\n\nfunction assembleArrow(backgroundColor, borderColor, arrowPosition) {\n  if (!isString(arrowPosition) || arrowPosition === 'inside') {\n    return '';\n  }\n\n  borderColor = convertToColorString(borderColor);\n  var arrowPos = mirrorPos(arrowPosition);\n  var positionStyle = '';\n  var transformStyle = '';\n\n  if (indexOf(['left', 'right'], arrowPos) > -1) {\n    positionStyle = arrowPos + \":-6px;top:50%;\";\n    transformStyle = \"translateY(-50%) rotate(\" + (arrowPos === 'left' ? -225 : -45) + \"deg)\";\n  } else {\n    positionStyle = arrowPos + \":-6px;left:50%;\";\n    transformStyle = \"translateX(-50%) rotate(\" + (arrowPos === 'top' ? 225 : 45) + \"deg)\";\n  }\n\n  transformStyle = map(vendors, function (vendorPrefix) {\n    return vendorPrefix + 'transform:' + transformStyle;\n  }).join(';');\n  var styleCss = ['position:absolute;width:10px;height:10px;', \"\" + positionStyle + transformStyle + \";\", \"border-bottom: \" + borderColor + \" solid 1px;\", \"border-right: \" + borderColor + \" solid 1px;\", \"background-color: \" + backgroundColor + \";\", 'box-shadow: 8px 8px 16px -3px #000;'];\n  return \"<div style=\\\"\" + styleCss.join('') + \"\\\"></div>\";\n}\n\nfunction assembleTransition(duration, onlyFade) {\n  var transitionCurve = 'cubic-bezier(0.23, 1, 0.32, 1)';\n  var transitionText = 'opacity ' + duration / 2 + 's ' + transitionCurve + ',' + 'visibility ' + duration / 2 + 's ' + transitionCurve;\n\n  if (!onlyFade) {\n    transitionText += ',left ' + duration + 's ' + transitionCurve + ',top ' + duration + 's ' + transitionCurve;\n  }\n\n  return map(vendors, function (vendorPrefix) {\n    return vendorPrefix + 'transition:' + transitionText;\n  }).join(';');\n}\n\nfunction assembleFont(textStyleModel) {\n  var cssText = [];\n  var fontSize = textStyleModel.get('fontSize');\n  var color = textStyleModel.getTextColor();\n  color && cssText.push('color:' + color);\n  cssText.push('font:' + textStyleModel.getFont());\n  fontSize && cssText.push('line-height:' + Math.round(fontSize * 3 / 2) + 'px');\n  var shadowColor = textStyleModel.get('textShadowColor');\n  var shadowBlur = textStyleModel.get('textShadowBlur') || 0;\n  var shadowOffsetX = textStyleModel.get('textShadowOffsetX') || 0;\n  var shadowOffsetY = textStyleModel.get('textShadowOffsetY') || 0;\n  shadowColor && shadowBlur && cssText.push('text-shadow:' + shadowOffsetX + 'px ' + shadowOffsetY + 'px ' + shadowBlur + 'px ' + shadowColor);\n  each(['decoration', 'align'], function (name) {\n    var val = textStyleModel.get(name);\n    val && cssText.push('text-' + name + ':' + val);\n  });\n  return cssText.join(';');\n}\n\nfunction assembleCssText(tooltipModel, enableTransition, onlyFade) {\n  var cssText = [];\n  var transitionDuration = tooltipModel.get('transitionDuration');\n  var backgroundColor = tooltipModel.get('backgroundColor');\n  var shadowBlur = tooltipModel.get('shadowBlur');\n  var shadowColor = tooltipModel.get('shadowColor');\n  var shadowOffsetX = tooltipModel.get('shadowOffsetX');\n  var shadowOffsetY = tooltipModel.get('shadowOffsetY');\n  var textStyleModel = tooltipModel.getModel('textStyle');\n  var padding = getPaddingFromTooltipModel(tooltipModel, 'html');\n  var boxShadow = shadowOffsetX + \"px \" + shadowOffsetY + \"px \" + shadowBlur + \"px \" + shadowColor;\n  cssText.push('box-shadow:' + boxShadow);\n  enableTransition && transitionDuration && cssText.push(assembleTransition(transitionDuration, onlyFade));\n\n  if (backgroundColor) {\n    if (env.canvasSupported) {\n      cssText.push('background-Color:' + backgroundColor);\n    } else {\n      cssText.push('background-Color:#' + toHex(backgroundColor));\n      cssText.push('filter:alpha(opacity=70)');\n    }\n  }\n\n  each(['width', 'color', 'radius'], function (name) {\n    var borderName = 'border-' + name;\n    var camelCase = toCamelCase(borderName);\n    var val = tooltipModel.get(camelCase);\n    val != null && cssText.push(borderName + ':' + val + (name === 'color' ? '' : 'px'));\n  });\n  cssText.push(assembleFont(textStyleModel));\n\n  if (padding != null) {\n    cssText.push('padding:' + normalizeCssArray(padding).join('px ') + 'px');\n  }\n\n  return cssText.join(';') + ';';\n}\n\nfunction makeStyleCoord(out, zr, appendToBody, zrX, zrY) {\n  var zrPainter = zr && zr.painter;\n\n  if (appendToBody) {\n    var zrViewportRoot = zrPainter && zrPainter.getViewportRoot();\n\n    if (zrViewportRoot) {\n      transformLocalCoord(out, zrViewportRoot, document.body, zrX, zrY);\n    }\n  } else {\n    out[0] = zrX;\n    out[1] = zrY;\n    var viewportRootOffset = zrPainter && zrPainter.getViewportRootOffset();\n\n    if (viewportRootOffset) {\n      out[0] += viewportRootOffset.offsetLeft;\n      out[1] += viewportRootOffset.offsetTop;\n    }\n  }\n\n  out[2] = out[0] / zr.getWidth();\n  out[3] = out[1] / zr.getHeight();\n}\n\nvar TooltipHTMLContent = function () {\n  function TooltipHTMLContent(container, api, opt) {\n    this._show = false;\n    this._styleCoord = [0, 0, 0, 0];\n    this._enterable = true;\n    this._firstShow = true;\n    this._longHide = true;\n\n    if (env.wxa) {\n      return null;\n    }\n\n    var el = document.createElement('div');\n    el.domBelongToZr = true;\n    this.el = el;\n    var zr = this._zr = api.getZr();\n    var appendToBody = this._appendToBody = opt && opt.appendToBody;\n    makeStyleCoord(this._styleCoord, zr, appendToBody, api.getWidth() / 2, api.getHeight() / 2);\n\n    if (appendToBody) {\n      document.body.appendChild(el);\n    } else {\n      container.appendChild(el);\n    }\n\n    this._container = container;\n    var self = this;\n\n    el.onmouseenter = function () {\n      if (self._enterable) {\n        clearTimeout(self._hideTimeout);\n        self._show = true;\n      }\n\n      self._inContent = true;\n    };\n\n    el.onmousemove = function (e) {\n      e = e || window.event;\n\n      if (!self._enterable) {\n        var handler = zr.handler;\n        var zrViewportRoot = zr.painter.getViewportRoot();\n        normalizeEvent(zrViewportRoot, e, true);\n        handler.dispatch('mousemove', e);\n      }\n    };\n\n    el.onmouseleave = function () {\n      self._inContent = false;\n\n      if (self._enterable) {\n        if (self._show) {\n          self.hideLater(self._hideDelay);\n        }\n      }\n    };\n  }\n\n  TooltipHTMLContent.prototype.update = function (tooltipModel) {\n    var container = this._container;\n    var stl = container.currentStyle || document.defaultView.getComputedStyle(container);\n    var domStyle = container.style;\n\n    if (domStyle.position !== 'absolute' && stl.position !== 'absolute') {\n      domStyle.position = 'relative';\n    }\n\n    var alwaysShowContent = tooltipModel.get('alwaysShowContent');\n    alwaysShowContent && this._moveIfResized();\n    this.el.className = tooltipModel.get('className') || '';\n  };\n\n  TooltipHTMLContent.prototype.show = function (tooltipModel, nearPointColor) {\n    clearTimeout(this._hideTimeout);\n    clearTimeout(this._longHideTimeout);\n    var el = this.el;\n    var styleCoord = this._styleCoord;\n    var offset = el.offsetHeight / 2;\n    nearPointColor = convertToColorString(nearPointColor);\n    el.style.cssText = gCssText + assembleCssText(tooltipModel, !this._firstShow, this._longHide) + ';left:' + styleCoord[0] + 'px;top:' + (styleCoord[1] - offset) + 'px;' + (\"border-color: \" + nearPointColor + \";\") + (tooltipModel.get('extraCssText') || '');\n    el.style.display = el.innerHTML ? 'block' : 'none';\n    el.style.pointerEvents = this._enterable ? 'auto' : 'none';\n    this._show = true;\n    this._firstShow = false;\n    this._longHide = false;\n  };\n\n  TooltipHTMLContent.prototype.setContent = function (content, markers, tooltipModel, borderColor, arrowPosition) {\n    if (content == null) {\n      return;\n    }\n\n    var el = this.el;\n\n    if (isString(arrowPosition) && tooltipModel.get('trigger') === 'item' && !shouldTooltipConfine(tooltipModel)) {\n      content += assembleArrow(tooltipModel.get('backgroundColor'), borderColor, arrowPosition);\n    }\n\n    if (isString(content)) {\n      el.innerHTML = content;\n    } else if (content) {\n      el.innerHTML = '';\n\n      if (!isArray(content)) {\n        content = [content];\n      }\n\n      for (var i = 0; i < content.length; i++) {\n        if (isDom(content[i]) && content[i].parentNode !== el) {\n          el.appendChild(content[i]);\n        }\n      }\n    }\n  };\n\n  TooltipHTMLContent.prototype.setEnterable = function (enterable) {\n    this._enterable = enterable;\n  };\n\n  TooltipHTMLContent.prototype.getSize = function () {\n    var el = this.el;\n    return [el.clientWidth, el.clientHeight];\n  };\n\n  TooltipHTMLContent.prototype.moveTo = function (zrX, zrY) {\n    var styleCoord = this._styleCoord;\n    makeStyleCoord(styleCoord, this._zr, this._appendToBody, zrX, zrY);\n\n    if (styleCoord[0] != null && styleCoord[1] != null) {\n      var style = this.el.style;\n      style.left = styleCoord[0].toFixed(0) + 'px';\n      style.top = styleCoord[1].toFixed(0) + 'px';\n    }\n  };\n\n  TooltipHTMLContent.prototype._moveIfResized = function () {\n    var ratioX = this._styleCoord[2];\n    var ratioY = this._styleCoord[3];\n    this.moveTo(ratioX * this._zr.getWidth(), ratioY * this._zr.getHeight());\n  };\n\n  TooltipHTMLContent.prototype.hide = function () {\n    var _this = this;\n\n    this.el.style.visibility = 'hidden';\n    this.el.style.opacity = '0';\n    this._show = false;\n    this._longHideTimeout = setTimeout(function () {\n      return _this._longHide = true;\n    }, 500);\n  };\n\n  TooltipHTMLContent.prototype.hideLater = function (time) {\n    if (this._show && !(this._inContent && this._enterable)) {\n      if (time) {\n        this._hideDelay = time;\n        this._show = false;\n        this._hideTimeout = setTimeout(bind(this.hide, this), time);\n      } else {\n        this.hide();\n      }\n    }\n  };\n\n  TooltipHTMLContent.prototype.isShow = function () {\n    return this._show;\n  };\n\n  TooltipHTMLContent.prototype.dispose = function () {\n    this.el.parentNode.removeChild(this.el);\n  };\n\n  TooltipHTMLContent.prototype.getOuterSize = function () {\n    var width = this.el.clientWidth;\n    var height = this.el.clientHeight;\n\n    if (document.defaultView && document.defaultView.getComputedStyle) {\n      var stl = document.defaultView.getComputedStyle(this.el);\n\n      if (stl) {\n        width += parseInt(stl.borderLeftWidth, 10) + parseInt(stl.borderRightWidth, 10);\n        height += parseInt(stl.borderTopWidth, 10) + parseInt(stl.borderBottomWidth, 10);\n      }\n    }\n\n    return {\n      width: width,\n      height: height\n    };\n  };\n\n  return TooltipHTMLContent;\n}();\n\nexport default TooltipHTMLContent;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ZRText from 'zrender/lib/graphic/Text';\nimport { getPaddingFromTooltipModel } from './tooltipMarkup';\nimport { throwError } from '../../util/log';\n\nvar TooltipRichContent = function () {\n  function TooltipRichContent(api) {\n    this._show = false;\n    this._styleCoord = [0, 0, 0, 0];\n    this._enterable = true;\n    this._zr = api.getZr();\n    makeStyleCoord(this._styleCoord, this._zr, api.getWidth() / 2, api.getHeight() / 2);\n  }\n\n  TooltipRichContent.prototype.update = function (tooltipModel) {\n    var alwaysShowContent = tooltipModel.get('alwaysShowContent');\n    alwaysShowContent && this._moveIfResized();\n  };\n\n  TooltipRichContent.prototype.show = function () {\n    if (this._hideTimeout) {\n      clearTimeout(this._hideTimeout);\n    }\n\n    this.el.show();\n    this._show = true;\n  };\n\n  TooltipRichContent.prototype.setContent = function (content, markupStyleCreator, tooltipModel, borderColor, arrowPosition) {\n    if (zrUtil.isObject(content)) {\n      throwError(process.env.NODE_ENV !== 'production' ? 'Passing DOM nodes as content is not supported in richText tooltip!' : '');\n    }\n\n    if (this.el) {\n      this._zr.remove(this.el);\n    }\n\n    var textStyleModel = tooltipModel.getModel('textStyle');\n    this.el = new ZRText({\n      style: {\n        rich: markupStyleCreator.richTextStyles,\n        text: content,\n        lineHeight: 22,\n        backgroundColor: tooltipModel.get('backgroundColor'),\n        borderRadius: tooltipModel.get('borderRadius'),\n        borderWidth: 1,\n        borderColor: borderColor,\n        shadowColor: tooltipModel.get('shadowColor'),\n        shadowBlur: tooltipModel.get('shadowBlur'),\n        shadowOffsetX: tooltipModel.get('shadowOffsetX'),\n        shadowOffsetY: tooltipModel.get('shadowOffsetY'),\n        textShadowColor: textStyleModel.get('textShadowColor'),\n        textShadowBlur: textStyleModel.get('textShadowBlur') || 0,\n        textShadowOffsetX: textStyleModel.get('textShadowOffsetX') || 0,\n        textShadowOffsetY: textStyleModel.get('textShadowOffsetY') || 0,\n        fill: tooltipModel.get(['textStyle', 'color']),\n        padding: getPaddingFromTooltipModel(tooltipModel, 'richText'),\n        verticalAlign: 'top',\n        align: 'left'\n      },\n      z: tooltipModel.get('z')\n    });\n\n    this._zr.add(this.el);\n\n    var self = this;\n    this.el.on('mouseover', function () {\n      if (self._enterable) {\n        clearTimeout(self._hideTimeout);\n        self._show = true;\n      }\n\n      self._inContent = true;\n    });\n    this.el.on('mouseout', function () {\n      if (self._enterable) {\n        if (self._show) {\n          self.hideLater(self._hideDelay);\n        }\n      }\n\n      self._inContent = false;\n    });\n  };\n\n  TooltipRichContent.prototype.setEnterable = function (enterable) {\n    this._enterable = enterable;\n  };\n\n  TooltipRichContent.prototype.getSize = function () {\n    var el = this.el;\n    var bounding = this.el.getBoundingRect();\n    var shadowOuterSize = calcShadowOuterSize(el.style);\n    return [bounding.width + shadowOuterSize.left + shadowOuterSize.right, bounding.height + shadowOuterSize.top + shadowOuterSize.bottom];\n  };\n\n  TooltipRichContent.prototype.moveTo = function (x, y) {\n    var el = this.el;\n\n    if (el) {\n      var styleCoord = this._styleCoord;\n      makeStyleCoord(styleCoord, this._zr, x, y);\n      x = styleCoord[0];\n      y = styleCoord[1];\n      var style = el.style;\n      var borderWidth = mathMaxWith0(style.borderWidth || 0);\n      var shadowOuterSize = calcShadowOuterSize(style);\n      el.x = x + borderWidth + shadowOuterSize.left;\n      el.y = y + borderWidth + shadowOuterSize.top;\n      el.markRedraw();\n    }\n  };\n\n  TooltipRichContent.prototype._moveIfResized = function () {\n    var ratioX = this._styleCoord[2];\n    var ratioY = this._styleCoord[3];\n    this.moveTo(ratioX * this._zr.getWidth(), ratioY * this._zr.getHeight());\n  };\n\n  TooltipRichContent.prototype.hide = function () {\n    if (this.el) {\n      this.el.hide();\n    }\n\n    this._show = false;\n  };\n\n  TooltipRichContent.prototype.hideLater = function (time) {\n    if (this._show && !(this._inContent && this._enterable)) {\n      if (time) {\n        this._hideDelay = time;\n        this._show = false;\n        this._hideTimeout = setTimeout(zrUtil.bind(this.hide, this), time);\n      } else {\n        this.hide();\n      }\n    }\n  };\n\n  TooltipRichContent.prototype.isShow = function () {\n    return this._show;\n  };\n\n  TooltipRichContent.prototype.getOuterSize = function () {\n    var size = this.getSize();\n    return {\n      width: size[0],\n      height: size[1]\n    };\n  };\n\n  TooltipRichContent.prototype.dispose = function () {\n    this._zr.remove(this.el);\n  };\n\n  return TooltipRichContent;\n}();\n\nfunction mathMaxWith0(val) {\n  return Math.max(0, val);\n}\n\nfunction calcShadowOuterSize(style) {\n  var shadowBlur = mathMaxWith0(style.shadowBlur || 0);\n  var shadowOffsetX = mathMaxWith0(style.shadowOffsetX || 0);\n  var shadowOffsetY = mathMaxWith0(style.shadowOffsetY || 0);\n  return {\n    left: mathMaxWith0(shadowBlur - shadowOffsetX),\n    right: mathMaxWith0(shadowBlur + shadowOffsetX),\n    top: mathMaxWith0(shadowBlur - shadowOffsetY),\n    bottom: mathMaxWith0(shadowBlur + shadowOffsetY)\n  };\n}\n\nfunction makeStyleCoord(out, zr, zrX, zrY) {\n  out[0] = zrX;\n  out[1] = zrY;\n  out[2] = out[0] / zr.getWidth();\n  out[3] = out[1] / zr.getHeight();\n}\n\nexport default TooltipRichContent;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport TooltipHTMLContent from './TooltipHTMLContent';\nimport TooltipRichContent from './TooltipRichContent';\nimport * as formatUtil from '../../util/format';\nimport * as numberUtil from '../../util/number';\nimport * as graphic from '../../util/graphic';\nimport findPointFromSeries from '../axisPointer/findPointFromSeries';\nimport * as layoutUtil from '../../util/layout';\nimport Model from '../../model/Model';\nimport * as globalListener from '../axisPointer/globalListener';\nimport * as axisHelper from '../../coord/axisHelper';\nimport * as axisPointerViewHelper from '../axisPointer/viewHelper';\nimport { getTooltipRenderMode } from '../../util/model';\nimport ComponentView from '../../view/Component';\nimport { format as timeFormat } from '../../util/time';\nimport { getECData } from '../../util/innerStore';\nimport { shouldTooltipConfine } from './helper';\nimport { normalizeTooltipFormatResult } from '../../model/mixin/dataFormat';\nimport { createTooltipMarkup, buildTooltipMarkup, TooltipMarkupStyleCreator } from './tooltipMarkup';\nimport { findEventDispatcher } from '../../util/event';\nvar bind = zrUtil.bind;\nvar each = zrUtil.each;\nvar parsePercent = numberUtil.parsePercent;\nvar proxyRect = new graphic.Rect({\n  shape: {\n    x: -1,\n    y: -1,\n    width: 2,\n    height: 2\n  }\n});\n\nvar TooltipView = function (_super) {\n  __extends(TooltipView, _super);\n\n  function TooltipView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TooltipView.type;\n    return _this;\n  }\n\n  TooltipView.prototype.init = function (ecModel, api) {\n    if (env.node) {\n      return;\n    }\n\n    var tooltipModel = ecModel.getComponent('tooltip');\n    var renderMode = tooltipModel.get('renderMode');\n    this._renderMode = getTooltipRenderMode(renderMode);\n    this._tooltipContent = this._renderMode === 'richText' ? new TooltipRichContent(api) : new TooltipHTMLContent(api.getDom(), api, {\n      appendToBody: tooltipModel.get('appendToBody', true)\n    });\n  };\n\n  TooltipView.prototype.render = function (tooltipModel, ecModel, api) {\n    if (env.node) {\n      return;\n    }\n\n    this.group.removeAll();\n    this._tooltipModel = tooltipModel;\n    this._ecModel = ecModel;\n    this._api = api;\n    this._alwaysShowContent = tooltipModel.get('alwaysShowContent');\n    var tooltipContent = this._tooltipContent;\n    tooltipContent.update(tooltipModel);\n    tooltipContent.setEnterable(tooltipModel.get('enterable'));\n\n    this._initGlobalListener();\n\n    this._keepShow();\n  };\n\n  TooltipView.prototype._initGlobalListener = function () {\n    var tooltipModel = this._tooltipModel;\n    var triggerOn = tooltipModel.get('triggerOn');\n    globalListener.register('itemTooltip', this._api, bind(function (currTrigger, e, dispatchAction) {\n      if (triggerOn !== 'none') {\n        if (triggerOn.indexOf(currTrigger) >= 0) {\n          this._tryShow(e, dispatchAction);\n        } else if (currTrigger === 'leave') {\n          this._hide(dispatchAction);\n        }\n      }\n    }, this));\n  };\n\n  TooltipView.prototype._keepShow = function () {\n    var tooltipModel = this._tooltipModel;\n    var ecModel = this._ecModel;\n    var api = this._api;\n\n    if (this._lastX != null && this._lastY != null && tooltipModel.get('triggerOn') !== 'none') {\n      var self_1 = this;\n      clearTimeout(this._refreshUpdateTimeout);\n      this._refreshUpdateTimeout = setTimeout(function () {\n        !api.isDisposed() && self_1.manuallyShowTip(tooltipModel, ecModel, api, {\n          x: self_1._lastX,\n          y: self_1._lastY,\n          dataByCoordSys: self_1._lastDataByCoordSys\n        });\n      });\n    }\n  };\n\n  TooltipView.prototype.manuallyShowTip = function (tooltipModel, ecModel, api, payload) {\n    if (payload.from === this.uid || env.node) {\n      return;\n    }\n\n    var dispatchAction = makeDispatchAction(payload, api);\n    this._ticket = '';\n    var dataByCoordSys = payload.dataByCoordSys;\n\n    if (payload.tooltip && payload.x != null && payload.y != null) {\n      var el = proxyRect;\n      el.x = payload.x;\n      el.y = payload.y;\n      el.update();\n      el.tooltip = payload.tooltip;\n\n      this._tryShow({\n        offsetX: payload.x,\n        offsetY: payload.y,\n        target: el\n      }, dispatchAction);\n    } else if (dataByCoordSys) {\n      this._tryShow({\n        offsetX: payload.x,\n        offsetY: payload.y,\n        position: payload.position,\n        dataByCoordSys: dataByCoordSys,\n        tooltipOption: payload.tooltipOption\n      }, dispatchAction);\n    } else if (payload.seriesIndex != null) {\n      if (this._manuallyAxisShowTip(tooltipModel, ecModel, api, payload)) {\n        return;\n      }\n\n      var pointInfo = findPointFromSeries(payload, ecModel);\n      var cx = pointInfo.point[0];\n      var cy = pointInfo.point[1];\n\n      if (cx != null && cy != null) {\n        this._tryShow({\n          offsetX: cx,\n          offsetY: cy,\n          position: payload.position,\n          target: pointInfo.el\n        }, dispatchAction);\n      }\n    } else if (payload.x != null && payload.y != null) {\n      api.dispatchAction({\n        type: 'updateAxisPointer',\n        x: payload.x,\n        y: payload.y\n      });\n\n      this._tryShow({\n        offsetX: payload.x,\n        offsetY: payload.y,\n        position: payload.position,\n        target: api.getZr().findHover(payload.x, payload.y).target\n      }, dispatchAction);\n    }\n  };\n\n  TooltipView.prototype.manuallyHideTip = function (tooltipModel, ecModel, api, payload) {\n    var tooltipContent = this._tooltipContent;\n\n    if (!this._alwaysShowContent && this._tooltipModel) {\n      tooltipContent.hideLater(this._tooltipModel.get('hideDelay'));\n    }\n\n    this._lastX = this._lastY = this._lastDataByCoordSys = null;\n\n    if (payload.from !== this.uid) {\n      this._hide(makeDispatchAction(payload, api));\n    }\n  };\n\n  TooltipView.prototype._manuallyAxisShowTip = function (tooltipModel, ecModel, api, payload) {\n    var seriesIndex = payload.seriesIndex;\n    var dataIndex = payload.dataIndex;\n    var coordSysAxesInfo = ecModel.getComponent('axisPointer').coordSysAxesInfo;\n\n    if (seriesIndex == null || dataIndex == null || coordSysAxesInfo == null) {\n      return;\n    }\n\n    var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n\n    if (!seriesModel) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var tooltipCascadedModel = buildTooltipModel([data.getItemModel(dataIndex), seriesModel, (seriesModel.coordinateSystem || {}).model, tooltipModel]);\n\n    if (tooltipCascadedModel.get('trigger') !== 'axis') {\n      return;\n    }\n\n    api.dispatchAction({\n      type: 'updateAxisPointer',\n      seriesIndex: seriesIndex,\n      dataIndex: dataIndex,\n      position: payload.position\n    });\n    return true;\n  };\n\n  TooltipView.prototype._tryShow = function (e, dispatchAction) {\n    var el = e.target;\n    var tooltipModel = this._tooltipModel;\n\n    if (!tooltipModel) {\n      return;\n    }\n\n    this._lastX = e.offsetX;\n    this._lastY = e.offsetY;\n    var dataByCoordSys = e.dataByCoordSys;\n\n    if (dataByCoordSys && dataByCoordSys.length) {\n      this._showAxisTooltip(dataByCoordSys, e);\n    } else if (el && findEventDispatcher(el, function (target) {\n      return getECData(target).dataIndex != null;\n    }, true)) {\n      this._lastDataByCoordSys = null;\n\n      this._showSeriesItemTooltip(e, el, dispatchAction);\n    } else if (el && el.tooltip) {\n      this._lastDataByCoordSys = null;\n\n      this._showComponentItemTooltip(e, el, dispatchAction);\n    } else {\n      this._lastDataByCoordSys = null;\n\n      this._hide(dispatchAction);\n    }\n  };\n\n  TooltipView.prototype._showOrMove = function (tooltipModel, cb) {\n    var delay = tooltipModel.get('showDelay');\n    cb = zrUtil.bind(cb, this);\n    clearTimeout(this._showTimout);\n    delay > 0 ? this._showTimout = setTimeout(cb, delay) : cb();\n  };\n\n  TooltipView.prototype._showAxisTooltip = function (dataByCoordSys, e) {\n    var ecModel = this._ecModel;\n    var globalTooltipModel = this._tooltipModel;\n    var point = [e.offsetX, e.offsetY];\n    var singleTooltipModel = buildTooltipModel([e.tooltipOption, globalTooltipModel]);\n    var renderMode = this._renderMode;\n    var cbParamsList = [];\n    var articleMarkup = createTooltipMarkup('section', {\n      blocks: [],\n      noHeader: true\n    });\n    var markupTextArrLegacy = [];\n    var markupStyleCreator = new TooltipMarkupStyleCreator();\n    each(dataByCoordSys, function (itemCoordSys) {\n      each(itemCoordSys.dataByAxis, function (axisItem) {\n        var axisModel = ecModel.getComponent(axisItem.axisDim + 'Axis', axisItem.axisIndex);\n        var axisValue = axisItem.value;\n\n        if (!axisModel || axisValue == null) {\n          return;\n        }\n\n        var axisValueLabel = axisPointerViewHelper.getValueLabel(axisValue, axisModel.axis, ecModel, axisItem.seriesDataIndices, axisItem.valueLabelOpt);\n        var axisSectionMarkup = createTooltipMarkup('section', {\n          header: axisValueLabel,\n          noHeader: !zrUtil.trim(axisValueLabel),\n          sortBlocks: true,\n          blocks: []\n        });\n        articleMarkup.blocks.push(axisSectionMarkup);\n        zrUtil.each(axisItem.seriesDataIndices, function (idxItem) {\n          var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\n          var dataIndex = idxItem.dataIndexInside;\n          var cbParams = series.getDataParams(dataIndex);\n          cbParams.axisDim = axisItem.axisDim;\n          cbParams.axisIndex = axisItem.axisIndex;\n          cbParams.axisType = axisItem.axisType;\n          cbParams.axisId = axisItem.axisId;\n          cbParams.axisValue = axisHelper.getAxisRawValue(axisModel.axis, {\n            value: axisValue\n          });\n          cbParams.axisValueLabel = axisValueLabel;\n          cbParams.marker = markupStyleCreator.makeTooltipMarker('item', formatUtil.convertToColorString(cbParams.color), renderMode);\n          var seriesTooltipResult = normalizeTooltipFormatResult(series.formatTooltip(dataIndex, true, null));\n\n          if (seriesTooltipResult.markupFragment) {\n            axisSectionMarkup.blocks.push(seriesTooltipResult.markupFragment);\n          }\n\n          if (seriesTooltipResult.markupText) {\n            markupTextArrLegacy.push(seriesTooltipResult.markupText);\n          }\n\n          cbParamsList.push(cbParams);\n        });\n      });\n    });\n    articleMarkup.blocks.reverse();\n    markupTextArrLegacy.reverse();\n    var positionExpr = e.position;\n    var orderMode = singleTooltipModel.get('order');\n    var builtMarkupText = buildTooltipMarkup(articleMarkup, markupStyleCreator, renderMode, orderMode, ecModel.get('useUTC'), singleTooltipModel.get('textStyle'));\n    builtMarkupText && markupTextArrLegacy.unshift(builtMarkupText);\n    var blockBreak = renderMode === 'richText' ? '\\n\\n' : '<br/>';\n    var allMarkupText = markupTextArrLegacy.join(blockBreak);\n\n    this._showOrMove(singleTooltipModel, function () {\n      if (this._updateContentNotChangedOnAxis(dataByCoordSys)) {\n        this._updatePosition(singleTooltipModel, positionExpr, point[0], point[1], this._tooltipContent, cbParamsList);\n      } else {\n        this._showTooltipContent(singleTooltipModel, allMarkupText, cbParamsList, Math.random() + '', point[0], point[1], positionExpr, null, markupStyleCreator);\n      }\n    });\n  };\n\n  TooltipView.prototype._showSeriesItemTooltip = function (e, el, dispatchAction) {\n    var dispatcher = findEventDispatcher(el, function (target) {\n      return getECData(target).dataIndex != null;\n    }, true);\n    var ecModel = this._ecModel;\n    var ecData = getECData(dispatcher);\n    var seriesIndex = ecData.seriesIndex;\n    var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n    var dataModel = ecData.dataModel || seriesModel;\n    var dataIndex = ecData.dataIndex;\n    var dataType = ecData.dataType;\n    var data = dataModel.getData(dataType);\n    var renderMode = this._renderMode;\n    var tooltipModel = buildTooltipModel([data.getItemModel(dataIndex), dataModel, seriesModel && (seriesModel.coordinateSystem || {}).model, this._tooltipModel]);\n    var tooltipTrigger = tooltipModel.get('trigger');\n\n    if (tooltipTrigger != null && tooltipTrigger !== 'item') {\n      return;\n    }\n\n    var params = dataModel.getDataParams(dataIndex, dataType);\n    var markupStyleCreator = new TooltipMarkupStyleCreator();\n    params.marker = markupStyleCreator.makeTooltipMarker('item', formatUtil.convertToColorString(params.color), renderMode);\n    var seriesTooltipResult = normalizeTooltipFormatResult(dataModel.formatTooltip(dataIndex, false, dataType));\n    var orderMode = tooltipModel.get('order');\n    var markupText = seriesTooltipResult.markupFragment ? buildTooltipMarkup(seriesTooltipResult.markupFragment, markupStyleCreator, renderMode, orderMode, ecModel.get('useUTC'), tooltipModel.get('textStyle')) : seriesTooltipResult.markupText;\n    var asyncTicket = 'item_' + dataModel.name + '_' + dataIndex;\n\n    this._showOrMove(tooltipModel, function () {\n      this._showTooltipContent(tooltipModel, markupText, params, asyncTicket, e.offsetX, e.offsetY, e.position, e.target, markupStyleCreator);\n    });\n\n    dispatchAction({\n      type: 'showTip',\n      dataIndexInside: dataIndex,\n      dataIndex: data.getRawIndex(dataIndex),\n      seriesIndex: seriesIndex,\n      from: this.uid\n    });\n  };\n\n  TooltipView.prototype._showComponentItemTooltip = function (e, el, dispatchAction) {\n    var tooltipOpt = el.tooltip;\n\n    if (zrUtil.isString(tooltipOpt)) {\n      var content = tooltipOpt;\n      tooltipOpt = {\n        content: content,\n        formatter: content\n      };\n    }\n\n    var subTooltipModel = new Model(tooltipOpt, this._tooltipModel, this._ecModel);\n    var defaultHtml = subTooltipModel.get('content');\n    var asyncTicket = Math.random() + '';\n    var markupStyleCreator = new TooltipMarkupStyleCreator();\n\n    this._showOrMove(subTooltipModel, function () {\n      this._showTooltipContent(subTooltipModel, defaultHtml, subTooltipModel.get('formatterParams') || {}, asyncTicket, e.offsetX, e.offsetY, e.position, el, markupStyleCreator);\n    });\n\n    dispatchAction({\n      type: 'showTip',\n      from: this.uid\n    });\n  };\n\n  TooltipView.prototype._showTooltipContent = function (tooltipModel, defaultHtml, params, asyncTicket, x, y, positionExpr, el, markupStyleCreator) {\n    this._ticket = '';\n\n    if (!tooltipModel.get('showContent') || !tooltipModel.get('show')) {\n      return;\n    }\n\n    var tooltipContent = this._tooltipContent;\n    var formatter = tooltipModel.get('formatter');\n    positionExpr = positionExpr || tooltipModel.get('position');\n    var html = defaultHtml;\n\n    var nearPoint = this._getNearestPoint([x, y], params, tooltipModel.get('trigger'), tooltipModel.get('borderColor'));\n\n    if (formatter && zrUtil.isString(formatter)) {\n      var useUTC = tooltipModel.ecModel.get('useUTC');\n      var params0 = zrUtil.isArray(params) ? params[0] : params;\n      var isTimeAxis = params0 && params0.axisType && params0.axisType.indexOf('time') >= 0;\n      html = formatter;\n\n      if (isTimeAxis) {\n        html = timeFormat(params0.axisValue, html, useUTC);\n      }\n\n      html = formatUtil.formatTpl(html, params, true);\n    } else if (zrUtil.isFunction(formatter)) {\n      var callback = bind(function (cbTicket, html) {\n        if (cbTicket === this._ticket) {\n          tooltipContent.setContent(html, markupStyleCreator, tooltipModel, nearPoint.color, positionExpr);\n\n          this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\n        }\n      }, this);\n      this._ticket = asyncTicket;\n      html = formatter(params, asyncTicket, callback);\n    }\n\n    tooltipContent.setContent(html, markupStyleCreator, tooltipModel, nearPoint.color, positionExpr);\n    tooltipContent.show(tooltipModel, nearPoint.color);\n\n    this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\n  };\n\n  TooltipView.prototype._getNearestPoint = function (point, tooltipDataParams, trigger, borderColor) {\n    if (trigger === 'axis' || zrUtil.isArray(tooltipDataParams)) {\n      return {\n        color: borderColor || (this._renderMode === 'html' ? '#fff' : 'none')\n      };\n    }\n\n    if (!zrUtil.isArray(tooltipDataParams)) {\n      return {\n        color: borderColor || tooltipDataParams.color || tooltipDataParams.borderColor\n      };\n    }\n  };\n\n  TooltipView.prototype._updatePosition = function (tooltipModel, positionExpr, x, y, content, params, el) {\n    var viewWidth = this._api.getWidth();\n\n    var viewHeight = this._api.getHeight();\n\n    positionExpr = positionExpr || tooltipModel.get('position');\n    var contentSize = content.getSize();\n    var align = tooltipModel.get('align');\n    var vAlign = tooltipModel.get('verticalAlign');\n    var rect = el && el.getBoundingRect().clone();\n    el && rect.applyTransform(el.transform);\n\n    if (zrUtil.isFunction(positionExpr)) {\n      positionExpr = positionExpr([x, y], params, content.el, rect, {\n        viewSize: [viewWidth, viewHeight],\n        contentSize: contentSize.slice()\n      });\n    }\n\n    if (zrUtil.isArray(positionExpr)) {\n      x = parsePercent(positionExpr[0], viewWidth);\n      y = parsePercent(positionExpr[1], viewHeight);\n    } else if (zrUtil.isObject(positionExpr)) {\n      var boxLayoutPosition = positionExpr;\n      boxLayoutPosition.width = contentSize[0];\n      boxLayoutPosition.height = contentSize[1];\n      var layoutRect = layoutUtil.getLayoutRect(boxLayoutPosition, {\n        width: viewWidth,\n        height: viewHeight\n      });\n      x = layoutRect.x;\n      y = layoutRect.y;\n      align = null;\n      vAlign = null;\n    } else if (zrUtil.isString(positionExpr) && el) {\n      var pos = calcTooltipPosition(positionExpr, rect, contentSize);\n      x = pos[0];\n      y = pos[1];\n    } else {\n      var pos = refixTooltipPosition(x, y, content, viewWidth, viewHeight, align ? null : 20, vAlign ? null : 20);\n      x = pos[0];\n      y = pos[1];\n    }\n\n    align && (x -= isCenterAlign(align) ? contentSize[0] / 2 : align === 'right' ? contentSize[0] : 0);\n    vAlign && (y -= isCenterAlign(vAlign) ? contentSize[1] / 2 : vAlign === 'bottom' ? contentSize[1] : 0);\n\n    if (shouldTooltipConfine(tooltipModel)) {\n      var pos = confineTooltipPosition(x, y, content, viewWidth, viewHeight);\n      x = pos[0];\n      y = pos[1];\n    }\n\n    content.moveTo(x, y);\n  };\n\n  TooltipView.prototype._updateContentNotChangedOnAxis = function (dataByCoordSys) {\n    var lastCoordSys = this._lastDataByCoordSys;\n    var contentNotChanged = !!lastCoordSys && lastCoordSys.length === dataByCoordSys.length;\n    contentNotChanged && each(lastCoordSys, function (lastItemCoordSys, indexCoordSys) {\n      var lastDataByAxis = lastItemCoordSys.dataByAxis || [];\n      var thisItemCoordSys = dataByCoordSys[indexCoordSys] || {};\n      var thisDataByAxis = thisItemCoordSys.dataByAxis || [];\n      contentNotChanged = contentNotChanged && lastDataByAxis.length === thisDataByAxis.length;\n      contentNotChanged && each(lastDataByAxis, function (lastItem, indexAxis) {\n        var thisItem = thisDataByAxis[indexAxis] || {};\n        var lastIndices = lastItem.seriesDataIndices || [];\n        var newIndices = thisItem.seriesDataIndices || [];\n        contentNotChanged = contentNotChanged && lastItem.value === thisItem.value && lastItem.axisType === thisItem.axisType && lastItem.axisId === thisItem.axisId && lastIndices.length === newIndices.length;\n        contentNotChanged && each(lastIndices, function (lastIdxItem, j) {\n          var newIdxItem = newIndices[j];\n          contentNotChanged = contentNotChanged && lastIdxItem.seriesIndex === newIdxItem.seriesIndex && lastIdxItem.dataIndex === newIdxItem.dataIndex;\n        });\n      });\n    });\n    this._lastDataByCoordSys = dataByCoordSys;\n    return !!contentNotChanged;\n  };\n\n  TooltipView.prototype._hide = function (dispatchAction) {\n    this._lastDataByCoordSys = null;\n    dispatchAction({\n      type: 'hideTip',\n      from: this.uid\n    });\n  };\n\n  TooltipView.prototype.dispose = function (ecModel, api) {\n    if (env.node) {\n      return;\n    }\n\n    this._tooltipContent.dispose();\n\n    globalListener.unregister('itemTooltip', api);\n  };\n\n  TooltipView.type = 'tooltip';\n  return TooltipView;\n}(ComponentView);\n\nfunction buildTooltipModel(modelCascade) {\n  var resultModel = modelCascade.pop();\n\n  while (modelCascade.length) {\n    var tooltipOpt = modelCascade.pop();\n\n    if (tooltipOpt) {\n      if (tooltipOpt instanceof Model) {\n        tooltipOpt = tooltipOpt.get('tooltip', true);\n      }\n\n      if (zrUtil.isString(tooltipOpt)) {\n        tooltipOpt = {\n          formatter: tooltipOpt\n        };\n      }\n\n      resultModel = new Model(tooltipOpt, resultModel, resultModel.ecModel);\n    }\n  }\n\n  return resultModel;\n}\n\nfunction makeDispatchAction(payload, api) {\n  return payload.dispatchAction || zrUtil.bind(api.dispatchAction, api);\n}\n\nfunction refixTooltipPosition(x, y, content, viewWidth, viewHeight, gapH, gapV) {\n  var size = content.getOuterSize();\n  var width = size.width;\n  var height = size.height;\n\n  if (gapH != null) {\n    if (x + width + gapH + 2 > viewWidth) {\n      x -= width + gapH;\n    } else {\n      x += gapH;\n    }\n  }\n\n  if (gapV != null) {\n    if (y + height + gapV > viewHeight) {\n      y -= height + gapV;\n    } else {\n      y += gapV;\n    }\n  }\n\n  return [x, y];\n}\n\nfunction confineTooltipPosition(x, y, content, viewWidth, viewHeight) {\n  var size = content.getOuterSize();\n  var width = size.width;\n  var height = size.height;\n  x = Math.min(x + width, viewWidth) - width;\n  y = Math.min(y + height, viewHeight) - height;\n  x = Math.max(x, 0);\n  y = Math.max(y, 0);\n  return [x, y];\n}\n\nfunction calcTooltipPosition(position, rect, contentSize) {\n  var domWidth = contentSize[0];\n  var domHeight = contentSize[1];\n  var gap = 10;\n  var offset = 5;\n  var x = 0;\n  var y = 0;\n  var rectWidth = rect.width;\n  var rectHeight = rect.height;\n\n  switch (position) {\n    case 'inside':\n      x = rect.x + rectWidth / 2 - domWidth / 2;\n      y = rect.y + rectHeight / 2 - domHeight / 2;\n      break;\n\n    case 'top':\n      x = rect.x + rectWidth / 2 - domWidth / 2;\n      y = rect.y - domHeight - gap;\n      break;\n\n    case 'bottom':\n      x = rect.x + rectWidth / 2 - domWidth / 2;\n      y = rect.y + rectHeight + gap;\n      break;\n\n    case 'left':\n      x = rect.x - domWidth - gap - offset;\n      y = rect.y + rectHeight / 2 - domHeight / 2;\n      break;\n\n    case 'right':\n      x = rect.x + rectWidth + gap + offset;\n      y = rect.y + rectHeight / 2 - domHeight / 2;\n  }\n\n  return [x, y];\n}\n\nfunction isCenterAlign(align) {\n  return align === 'center' || align === 'middle';\n}\n\nexport default TooltipView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { install as installAxisPointer } from '../axisPointer/install';\nimport { use } from '../../extension';\nimport TooltipModel from './TooltipModel';\nimport TooltipView from './TooltipView';\nexport function install(registers) {\n  use(installAxisPointer);\n  registers.registerComponentModel(TooltipModel);\n  registers.registerComponentView(TooltipView);\n  registers.registerAction({\n    type: 'showTip',\n    event: 'showTip',\n    update: 'tooltip:manuallyShowTip'\n  }, function () {});\n  registers.registerAction({\n    type: 'hideTip',\n    event: 'hideTip',\n    update: 'tooltip:manuallyHideTip'\n  }, function () {});\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { createTextStyle } from '../../label/labelStyle';\nimport { getLayoutRect } from '../../util/layout';\nimport ComponentModel from '../../model/Component';\nimport ComponentView from '../../view/Component';\nimport { windowOpen } from '../../util/format';\n\nvar TitleModel = function (_super) {\n  __extends(TitleModel, _super);\n\n  function TitleModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TitleModel.type;\n    _this.layoutMode = {\n      type: 'box',\n      ignoreSize: true\n    };\n    return _this;\n  }\n\n  TitleModel.type = 'title';\n  TitleModel.defaultOption = {\n    zlevel: 0,\n    z: 6,\n    show: true,\n    text: '',\n    target: 'blank',\n    subtext: '',\n    subtarget: 'blank',\n    left: 0,\n    top: 0,\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderColor: '#ccc',\n    borderWidth: 0,\n    padding: 5,\n    itemGap: 10,\n    textStyle: {\n      fontSize: 18,\n      fontWeight: 'bold',\n      color: '#464646'\n    },\n    subtextStyle: {\n      fontSize: 12,\n      color: '#6E7079'\n    }\n  };\n  return TitleModel;\n}(ComponentModel);\n\nvar TitleView = function (_super) {\n  __extends(TitleView, _super);\n\n  function TitleView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TitleView.type;\n    return _this;\n  }\n\n  TitleView.prototype.render = function (titleModel, ecModel, api) {\n    this.group.removeAll();\n\n    if (!titleModel.get('show')) {\n      return;\n    }\n\n    var group = this.group;\n    var textStyleModel = titleModel.getModel('textStyle');\n    var subtextStyleModel = titleModel.getModel('subtextStyle');\n    var textAlign = titleModel.get('textAlign');\n    var textVerticalAlign = zrUtil.retrieve2(titleModel.get('textBaseline'), titleModel.get('textVerticalAlign'));\n    var textEl = new graphic.Text({\n      style: createTextStyle(textStyleModel, {\n        text: titleModel.get('text'),\n        fill: textStyleModel.getTextColor()\n      }, {\n        disableBox: true\n      }),\n      z2: 10\n    });\n    var textRect = textEl.getBoundingRect();\n    var subText = titleModel.get('subtext');\n    var subTextEl = new graphic.Text({\n      style: createTextStyle(subtextStyleModel, {\n        text: subText,\n        fill: subtextStyleModel.getTextColor(),\n        y: textRect.height + titleModel.get('itemGap'),\n        verticalAlign: 'top'\n      }, {\n        disableBox: true\n      }),\n      z2: 10\n    });\n    var link = titleModel.get('link');\n    var sublink = titleModel.get('sublink');\n    var triggerEvent = titleModel.get('triggerEvent', true);\n    textEl.silent = !link && !triggerEvent;\n    subTextEl.silent = !sublink && !triggerEvent;\n\n    if (link) {\n      textEl.on('click', function () {\n        windowOpen(link, '_' + titleModel.get('target'));\n      });\n    }\n\n    if (sublink) {\n      subTextEl.on('click', function () {\n        windowOpen(sublink, '_' + titleModel.get('subtarget'));\n      });\n    }\n\n    getECData(textEl).eventData = getECData(subTextEl).eventData = triggerEvent ? {\n      componentType: 'title',\n      componentIndex: titleModel.componentIndex\n    } : null;\n    group.add(textEl);\n    subText && group.add(subTextEl);\n    var groupRect = group.getBoundingRect();\n    var layoutOption = titleModel.getBoxLayoutParams();\n    layoutOption.width = groupRect.width;\n    layoutOption.height = groupRect.height;\n    var layoutRect = getLayoutRect(layoutOption, {\n      width: api.getWidth(),\n      height: api.getHeight()\n    }, titleModel.get('padding'));\n\n    if (!textAlign) {\n      textAlign = titleModel.get('left') || titleModel.get('right');\n\n      if (textAlign === 'middle') {\n        textAlign = 'center';\n      }\n\n      if (textAlign === 'right') {\n        layoutRect.x += layoutRect.width;\n      } else if (textAlign === 'center') {\n        layoutRect.x += layoutRect.width / 2;\n      }\n    }\n\n    if (!textVerticalAlign) {\n      textVerticalAlign = titleModel.get('top') || titleModel.get('bottom');\n\n      if (textVerticalAlign === 'center') {\n        textVerticalAlign = 'middle';\n      }\n\n      if (textVerticalAlign === 'bottom') {\n        layoutRect.y += layoutRect.height;\n      } else if (textVerticalAlign === 'middle') {\n        layoutRect.y += layoutRect.height / 2;\n      }\n\n      textVerticalAlign = textVerticalAlign || 'top';\n    }\n\n    group.x = layoutRect.x;\n    group.y = layoutRect.y;\n    group.markRedraw();\n    var alignStyle = {\n      align: textAlign,\n      verticalAlign: textVerticalAlign\n    };\n    textEl.setStyle(alignStyle);\n    subTextEl.setStyle(alignStyle);\n    groupRect = group.getBoundingRect();\n    var padding = layoutRect.margin;\n    var style = titleModel.getItemStyle(['color', 'opacity']);\n    style.fill = titleModel.get('backgroundColor');\n    var rect = new graphic.Rect({\n      shape: {\n        x: groupRect.x - padding[3],\n        y: groupRect.y - padding[0],\n        width: groupRect.width + padding[1] + padding[3],\n        height: groupRect.height + padding[0] + padding[2],\n        r: titleModel.get('borderRadius')\n      },\n      style: style,\n      subPixelOptimize: true,\n      silent: true\n    });\n    group.add(rect);\n  };\n\n  TitleView.type = 'title';\n  return TitleView;\n}(ComponentView);\n\nexport function install(registers) {\n  registers.registerComponentModel(TitleModel);\n  registers.registerComponentView(TitleView);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport { DataFormatMixin } from '../../model/mixin/dataFormat';\nimport ComponentModel from '../../model/Component';\nimport { makeInner, defaultEmphasis } from '../../util/model';\nimport { createTooltipMarkup } from '../tooltip/tooltipMarkup';\n\nfunction fillLabel(opt) {\n  defaultEmphasis(opt, 'label', ['show']);\n}\n\nvar inner = makeInner();\n\nvar MarkerModel = function (_super) {\n  __extends(MarkerModel, _super);\n\n  function MarkerModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkerModel.type;\n    _this.createdBySelf = false;\n    return _this;\n  }\n\n  MarkerModel.prototype.init = function (option, parentModel, ecModel) {\n    if (process.env.NODE_ENV !== 'production') {\n      if (this.type === 'marker') {\n        throw new Error('Marker component is abstract component. Use markLine, markPoint, markArea instead.');\n      }\n    }\n\n    this.mergeDefaultAndTheme(option, ecModel);\n\n    this._mergeOption(option, ecModel, false, true);\n  };\n\n  MarkerModel.prototype.isAnimationEnabled = function () {\n    if (env.node) {\n      return false;\n    }\n\n    var hostSeries = this.__hostSeries;\n    return this.getShallow('animation') && hostSeries && hostSeries.isAnimationEnabled();\n  };\n\n  MarkerModel.prototype.mergeOption = function (newOpt, ecModel) {\n    this._mergeOption(newOpt, ecModel, false, false);\n  };\n\n  MarkerModel.prototype._mergeOption = function (newOpt, ecModel, createdBySelf, isInit) {\n    var componentType = this.mainType;\n\n    if (!createdBySelf) {\n      ecModel.eachSeries(function (seriesModel) {\n        var markerOpt = seriesModel.get(this.mainType, true);\n        var markerModel = inner(seriesModel)[componentType];\n\n        if (!markerOpt || !markerOpt.data) {\n          inner(seriesModel)[componentType] = null;\n          return;\n        }\n\n        if (!markerModel) {\n          if (isInit) {\n            fillLabel(markerOpt);\n          }\n\n          zrUtil.each(markerOpt.data, function (item) {\n            if (item instanceof Array) {\n              fillLabel(item[0]);\n              fillLabel(item[1]);\n            } else {\n              fillLabel(item);\n            }\n          });\n          markerModel = this.createMarkerModelFromSeries(markerOpt, this, ecModel);\n          zrUtil.extend(markerModel, {\n            mainType: this.mainType,\n            seriesIndex: seriesModel.seriesIndex,\n            name: seriesModel.name,\n            createdBySelf: true\n          });\n          markerModel.__hostSeries = seriesModel;\n        } else {\n          markerModel._mergeOption(markerOpt, ecModel, true);\n        }\n\n        inner(seriesModel)[componentType] = markerModel;\n      }, this);\n    }\n  };\n\n  MarkerModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var data = this.getData();\n    var value = this.getRawValue(dataIndex);\n    var itemName = data.getName(dataIndex);\n    return createTooltipMarkup('section', {\n      header: this.name,\n      blocks: [createTooltipMarkup('nameValue', {\n        name: itemName,\n        value: value,\n        noName: !itemName,\n        noValue: value == null\n      })]\n    });\n  };\n\n  MarkerModel.prototype.getData = function () {\n    return this._data;\n  };\n\n  MarkerModel.prototype.setData = function (data) {\n    this._data = data;\n  };\n\n  MarkerModel.getMarkerModelFromSeries = function (seriesModel, componentType) {\n    return inner(seriesModel)[componentType];\n  };\n\n  MarkerModel.type = 'marker';\n  MarkerModel.dependencies = ['series', 'grid', 'polar', 'geo'];\n  return MarkerModel;\n}(ComponentModel);\n\nzrUtil.mixin(MarkerModel, DataFormatMixin.prototype);\nexport default MarkerModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport MarkerModel from './MarkerModel';\n\nvar MarkPointModel = function (_super) {\n  __extends(MarkPointModel, _super);\n\n  function MarkPointModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkPointModel.type;\n    return _this;\n  }\n\n  MarkPointModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\n    return new MarkPointModel(markerOpt, masterMarkerModel, ecModel);\n  };\n\n  MarkPointModel.type = 'markPoint';\n  MarkPointModel.defaultOption = {\n    zlevel: 0,\n    z: 5,\n    symbol: 'pin',\n    symbolSize: 50,\n    tooltip: {\n      trigger: 'item'\n    },\n    label: {\n      show: true,\n      position: 'inside'\n    },\n    itemStyle: {\n      borderWidth: 2\n    },\n    emphasis: {\n      label: {\n        show: true\n      }\n    }\n  };\n  return MarkPointModel;\n}(MarkerModel);\n\nexport default MarkPointModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as numberUtil from '../../util/number';\nimport { isDimensionStacked } from '../../data/helper/dataStackHelper';\nimport { indexOf, curry, clone, isArray } from 'zrender/lib/core/util';\n\nfunction hasXOrY(item) {\n  return !(isNaN(parseFloat(item.x)) && isNaN(parseFloat(item.y)));\n}\n\nfunction hasXAndY(item) {\n  return !isNaN(parseFloat(item.x)) && !isNaN(parseFloat(item.y));\n}\n\nfunction markerTypeCalculatorWithExtent(markerType, data, otherDataDim, targetDataDim, otherCoordIndex, targetCoordIndex) {\n  var coordArr = [];\n  var stacked = isDimensionStacked(data, targetDataDim);\n  var calcDataDim = stacked ? data.getCalculationInfo('stackResultDimension') : targetDataDim;\n  var value = numCalculate(data, calcDataDim, markerType);\n  var dataIndex = data.indicesOfNearest(calcDataDim, value)[0];\n  coordArr[otherCoordIndex] = data.get(otherDataDim, dataIndex);\n  coordArr[targetCoordIndex] = data.get(calcDataDim, dataIndex);\n  var coordArrValue = data.get(targetDataDim, dataIndex);\n  var precision = numberUtil.getPrecision(data.get(targetDataDim, dataIndex));\n  precision = Math.min(precision, 20);\n\n  if (precision >= 0) {\n    coordArr[targetCoordIndex] = +coordArr[targetCoordIndex].toFixed(precision);\n  }\n\n  return [coordArr, coordArrValue];\n}\n\nvar markerTypeCalculator = {\n  min: curry(markerTypeCalculatorWithExtent, 'min'),\n  max: curry(markerTypeCalculatorWithExtent, 'max'),\n  average: curry(markerTypeCalculatorWithExtent, 'average'),\n  median: curry(markerTypeCalculatorWithExtent, 'median')\n};\nexport function dataTransform(seriesModel, item) {\n  var data = seriesModel.getData();\n  var coordSys = seriesModel.coordinateSystem;\n\n  if (item && !hasXAndY(item) && !isArray(item.coord) && coordSys) {\n    var dims = coordSys.dimensions;\n    var axisInfo = getAxisInfo(item, data, coordSys, seriesModel);\n    item = clone(item);\n\n    if (item.type && markerTypeCalculator[item.type] && axisInfo.baseAxis && axisInfo.valueAxis) {\n      var otherCoordIndex = indexOf(dims, axisInfo.baseAxis.dim);\n      var targetCoordIndex = indexOf(dims, axisInfo.valueAxis.dim);\n      var coordInfo = markerTypeCalculator[item.type](data, axisInfo.baseDataDim, axisInfo.valueDataDim, otherCoordIndex, targetCoordIndex);\n      item.coord = coordInfo[0];\n      item.value = coordInfo[1];\n    } else {\n      var coord = [item.xAxis != null ? item.xAxis : item.radiusAxis, item.yAxis != null ? item.yAxis : item.angleAxis];\n\n      for (var i = 0; i < 2; i++) {\n        if (markerTypeCalculator[coord[i]]) {\n          coord[i] = numCalculate(data, data.mapDimension(dims[i]), coord[i]);\n        }\n      }\n\n      item.coord = coord;\n    }\n  }\n\n  return item;\n}\nexport function getAxisInfo(item, data, coordSys, seriesModel) {\n  var ret = {};\n\n  if (item.valueIndex != null || item.valueDim != null) {\n    ret.valueDataDim = item.valueIndex != null ? data.getDimension(item.valueIndex) : item.valueDim;\n    ret.valueAxis = coordSys.getAxis(dataDimToCoordDim(seriesModel, ret.valueDataDim));\n    ret.baseAxis = coordSys.getOtherAxis(ret.valueAxis);\n    ret.baseDataDim = data.mapDimension(ret.baseAxis.dim);\n  } else {\n    ret.baseAxis = seriesModel.getBaseAxis();\n    ret.valueAxis = coordSys.getOtherAxis(ret.baseAxis);\n    ret.baseDataDim = data.mapDimension(ret.baseAxis.dim);\n    ret.valueDataDim = data.mapDimension(ret.valueAxis.dim);\n  }\n\n  return ret;\n}\n\nfunction dataDimToCoordDim(seriesModel, dataDim) {\n  var data = seriesModel.getData();\n  var dimensions = data.dimensions;\n  dataDim = data.getDimension(dataDim);\n\n  for (var i = 0; i < dimensions.length; i++) {\n    var dimItem = data.getDimensionInfo(dimensions[i]);\n\n    if (dimItem.name === dataDim) {\n      return dimItem.coordDim;\n    }\n  }\n}\n\nexport function dataFilter(coordSys, item) {\n  return coordSys && coordSys.containData && item.coord && !hasXOrY(item) ? coordSys.containData(item.coord) : true;\n}\nexport function dimValueGetter(item, dimName, dataIndex, dimIndex) {\n  if (dimIndex < 2) {\n    return item.coord && item.coord[dimIndex];\n  }\n\n  return item.value;\n}\nexport function numCalculate(data, valueDataDim, type) {\n  if (type === 'average') {\n    var sum_1 = 0;\n    var count_1 = 0;\n    data.each(valueDataDim, function (val, idx) {\n      if (!isNaN(val)) {\n        sum_1 += val;\n        count_1++;\n      }\n    });\n    return sum_1 / count_1;\n  } else if (type === 'median') {\n    return data.getMedian(valueDataDim);\n  } else {\n    return data.getDataExtent(valueDataDim)[type === 'max' ? 1 : 0];\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component';\nimport { createHashMap, each } from 'zrender/lib/core/util';\nimport MarkerModel from './MarkerModel';\nimport { makeInner } from '../../util/model';\nimport { enterBlur } from '../../util/states';\nvar inner = makeInner();\n\nvar MarkerView = function (_super) {\n  __extends(MarkerView, _super);\n\n  function MarkerView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkerView.type;\n    return _this;\n  }\n\n  MarkerView.prototype.init = function () {\n    this.markerGroupMap = createHashMap();\n  };\n\n  MarkerView.prototype.render = function (markerModel, ecModel, api) {\n    var _this = this;\n\n    var markerGroupMap = this.markerGroupMap;\n    markerGroupMap.each(function (item) {\n      inner(item).keep = false;\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      var markerModel = MarkerModel.getMarkerModelFromSeries(seriesModel, _this.type);\n      markerModel && _this.renderSeries(seriesModel, markerModel, ecModel, api);\n    });\n    markerGroupMap.each(function (item) {\n      !inner(item).keep && _this.group.remove(item.group);\n    });\n  };\n\n  MarkerView.prototype.markKeep = function (drawGroup) {\n    inner(drawGroup).keep = true;\n  };\n\n  MarkerView.prototype.blurSeries = function (seriesModelList) {\n    var _this = this;\n\n    each(seriesModelList, function (seriesModel) {\n      var markerModel = MarkerModel.getMarkerModelFromSeries(seriesModel, _this.type);\n\n      if (markerModel) {\n        var data = markerModel.getData();\n        data.eachItemGraphicEl(function (el) {\n          if (el) {\n            enterBlur(el);\n          }\n        });\n      }\n    });\n  };\n\n  MarkerView.type = 'marker';\n  return MarkerView;\n}(ComponentView);\n\nexport default MarkerView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SymbolDraw from '../../chart/helper/SymbolDraw';\nimport * as numberUtil from '../../util/number';\nimport List from '../../data/List';\nimport * as markerHelper from './markerHelper';\nimport MarkerView from './MarkerView';\nimport MarkerModel from './MarkerModel';\nimport { isFunction, map, defaults, filter, curry } from 'zrender/lib/core/util';\nimport { getECData } from '../../util/innerStore';\nimport { getVisualFromData } from '../../visual/helper';\n\nfunction updateMarkerLayout(mpData, seriesModel, api) {\n  var coordSys = seriesModel.coordinateSystem;\n  mpData.each(function (idx) {\n    var itemModel = mpData.getItemModel(idx);\n    var point;\n    var xPx = numberUtil.parsePercent(itemModel.get('x'), api.getWidth());\n    var yPx = numberUtil.parsePercent(itemModel.get('y'), api.getHeight());\n\n    if (!isNaN(xPx) && !isNaN(yPx)) {\n      point = [xPx, yPx];\n    } else if (seriesModel.getMarkerPosition) {\n      point = seriesModel.getMarkerPosition(mpData.getValues(mpData.dimensions, idx));\n    } else if (coordSys) {\n      var x = mpData.get(coordSys.dimensions[0], idx);\n      var y = mpData.get(coordSys.dimensions[1], idx);\n      point = coordSys.dataToPoint([x, y]);\n    }\n\n    if (!isNaN(xPx)) {\n      point[0] = xPx;\n    }\n\n    if (!isNaN(yPx)) {\n      point[1] = yPx;\n    }\n\n    mpData.setItemLayout(idx, point);\n  });\n}\n\nvar MarkPointView = function (_super) {\n  __extends(MarkPointView, _super);\n\n  function MarkPointView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkPointView.type;\n    return _this;\n  }\n\n  MarkPointView.prototype.updateTransform = function (markPointModel, ecModel, api) {\n    ecModel.eachSeries(function (seriesModel) {\n      var mpModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markPoint');\n\n      if (mpModel) {\n        updateMarkerLayout(mpModel.getData(), seriesModel, api);\n        this.markerGroupMap.get(seriesModel.id).updateLayout();\n      }\n    }, this);\n  };\n\n  MarkPointView.prototype.renderSeries = function (seriesModel, mpModel, ecModel, api) {\n    var coordSys = seriesModel.coordinateSystem;\n    var seriesId = seriesModel.id;\n    var seriesData = seriesModel.getData();\n    var symbolDrawMap = this.markerGroupMap;\n    var symbolDraw = symbolDrawMap.get(seriesId) || symbolDrawMap.set(seriesId, new SymbolDraw());\n    var mpData = createList(coordSys, seriesModel, mpModel);\n    mpModel.setData(mpData);\n    updateMarkerLayout(mpModel.getData(), seriesModel, api);\n    mpData.each(function (idx) {\n      var itemModel = mpData.getItemModel(idx);\n      var symbol = itemModel.getShallow('symbol');\n      var symbolSize = itemModel.getShallow('symbolSize');\n      var symbolRotate = itemModel.getShallow('symbolRotate');\n\n      if (isFunction(symbol) || isFunction(symbolSize) || isFunction(symbolRotate)) {\n        var rawIdx = mpModel.getRawValue(idx);\n        var dataParams = mpModel.getDataParams(idx);\n\n        if (isFunction(symbol)) {\n          symbol = symbol(rawIdx, dataParams);\n        }\n\n        if (isFunction(symbolSize)) {\n          symbolSize = symbolSize(rawIdx, dataParams);\n        }\n\n        if (isFunction(symbolRotate)) {\n          symbolRotate = symbolRotate(rawIdx, dataParams);\n        }\n      }\n\n      var style = itemModel.getModel('itemStyle').getItemStyle();\n      var color = getVisualFromData(seriesData, 'color');\n\n      if (!style.fill) {\n        style.fill = color;\n      }\n\n      mpData.setItemVisual(idx, {\n        symbol: symbol,\n        symbolSize: symbolSize,\n        symbolRotate: symbolRotate,\n        style: style\n      });\n    });\n    symbolDraw.updateData(mpData);\n    this.group.add(symbolDraw.group);\n    mpData.eachItemGraphicEl(function (el) {\n      el.traverse(function (child) {\n        getECData(child).dataModel = mpModel;\n      });\n    });\n    this.markKeep(symbolDraw);\n    symbolDraw.group.silent = mpModel.get('silent') || seriesModel.get('silent');\n  };\n\n  MarkPointView.type = 'markPoint';\n  return MarkPointView;\n}(MarkerView);\n\nfunction createList(coordSys, seriesModel, mpModel) {\n  var coordDimsInfos;\n\n  if (coordSys) {\n    coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\n      var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {};\n      return defaults({\n        name: coordDim\n      }, info);\n    });\n  } else {\n    coordDimsInfos = [{\n      name: 'value',\n      type: 'float'\n    }];\n  }\n\n  var mpData = new List(coordDimsInfos, mpModel);\n  var dataOpt = map(mpModel.get('data'), curry(markerHelper.dataTransform, seriesModel));\n\n  if (coordSys) {\n    dataOpt = filter(dataOpt, curry(markerHelper.dataFilter, coordSys));\n  }\n\n  mpData.initData(dataOpt, null, coordSys ? markerHelper.dimValueGetter : function (item) {\n    return item.value;\n  });\n  return mpData;\n}\n\nexport default MarkPointView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport MarkPointModel from './MarkPointModel';\nimport MarkPointView from './MarkPointView';\nexport function install(registers) {\n  registers.registerComponentModel(MarkPointModel);\n  registers.registerComponentView(MarkPointView);\n  registers.registerPreprocessor(function (opt) {\n    opt.markPoint = opt.markPoint || {};\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport MarkerModel from './MarkerModel';\n\nvar MarkLineModel = function (_super) {\n  __extends(MarkLineModel, _super);\n\n  function MarkLineModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkLineModel.type;\n    return _this;\n  }\n\n  MarkLineModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\n    return new MarkLineModel(markerOpt, masterMarkerModel, ecModel);\n  };\n\n  MarkLineModel.type = 'markLine';\n  MarkLineModel.defaultOption = {\n    zlevel: 0,\n    z: 5,\n    symbol: ['circle', 'arrow'],\n    symbolSize: [8, 16],\n    precision: 2,\n    tooltip: {\n      trigger: 'item'\n    },\n    label: {\n      show: true,\n      position: 'end',\n      distance: 5\n    },\n    lineStyle: {\n      type: 'dashed'\n    },\n    emphasis: {\n      label: {\n        show: true\n      },\n      lineStyle: {\n        width: 3\n      }\n    },\n    animationEasing: 'linear'\n  };\n  return MarkLineModel;\n}(MarkerModel);\n\nexport default MarkLineModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport * as vec2 from 'zrender/lib/core/vector';\nvar straightLineProto = graphic.Line.prototype;\nvar bezierCurveProto = graphic.BezierCurve.prototype;\n\nvar StraightLineShape = function () {\n  function StraightLineShape() {\n    this.x1 = 0;\n    this.y1 = 0;\n    this.x2 = 0;\n    this.y2 = 0;\n    this.percent = 1;\n  }\n\n  return StraightLineShape;\n}();\n\nvar CurveShape = function (_super) {\n  __extends(CurveShape, _super);\n\n  function CurveShape() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  return CurveShape;\n}(StraightLineShape);\n\nfunction isStraightLine(shape) {\n  return isNaN(+shape.cpx1) || isNaN(+shape.cpy1);\n}\n\nvar ECLinePath = function (_super) {\n  __extends(ECLinePath, _super);\n\n  function ECLinePath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'ec-line';\n    return _this;\n  }\n\n  ECLinePath.prototype.getDefaultStyle = function () {\n    return {\n      stroke: '#000',\n      fill: null\n    };\n  };\n\n  ECLinePath.prototype.getDefaultShape = function () {\n    return new StraightLineShape();\n  };\n\n  ECLinePath.prototype.buildPath = function (ctx, shape) {\n    if (isStraightLine(shape)) {\n      straightLineProto.buildPath.call(this, ctx, shape);\n    } else {\n      bezierCurveProto.buildPath.call(this, ctx, shape);\n    }\n  };\n\n  ECLinePath.prototype.pointAt = function (t) {\n    if (isStraightLine(this.shape)) {\n      return straightLineProto.pointAt.call(this, t);\n    } else {\n      return bezierCurveProto.pointAt.call(this, t);\n    }\n  };\n\n  ECLinePath.prototype.tangentAt = function (t) {\n    var shape = this.shape;\n    var p = isStraightLine(shape) ? [shape.x2 - shape.x1, shape.y2 - shape.y1] : bezierCurveProto.tangentAt.call(this, t);\n    return vec2.normalize(p, p);\n  };\n\n  return ECLinePath;\n}(graphic.Path);\n\nexport default ECLinePath;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as vector from 'zrender/lib/core/vector';\nimport * as symbolUtil from '../../util/symbol';\nimport ECLinePath from './LinePath';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis, enterEmphasis, leaveEmphasis, SPECIAL_STATES } from '../../util/states';\nimport { getLabelStatesModels, setLabelStyle } from '../../label/labelStyle';\nimport { round } from '../../util/number';\nvar SYMBOL_CATEGORIES = ['fromSymbol', 'toSymbol'];\n\nfunction makeSymbolTypeKey(symbolCategory) {\n  return '_' + symbolCategory + 'Type';\n}\n\nfunction createSymbol(name, lineData, idx) {\n  var symbolType = lineData.getItemVisual(idx, name);\n\n  if (!symbolType || symbolType === 'none') {\n    return;\n  }\n\n  var symbolSize = lineData.getItemVisual(idx, name + 'Size');\n  var symbolRotate = lineData.getItemVisual(idx, name + 'Rotate');\n  var symbolSizeArr = zrUtil.isArray(symbolSize) ? symbolSize : [symbolSize, symbolSize];\n  var symbolPath = symbolUtil.createSymbol(symbolType, -symbolSizeArr[0] / 2, -symbolSizeArr[1] / 2, symbolSizeArr[0], symbolSizeArr[1]);\n  symbolPath.__specifiedRotation = symbolRotate == null || isNaN(symbolRotate) ? void 0 : +symbolRotate * Math.PI / 180 || 0;\n  symbolPath.name = name;\n  return symbolPath;\n}\n\nfunction createLine(points) {\n  var line = new ECLinePath({\n    name: 'line',\n    subPixelOptimize: true\n  });\n  setLinePoints(line.shape, points);\n  return line;\n}\n\nfunction setLinePoints(targetShape, points) {\n  targetShape.x1 = points[0][0];\n  targetShape.y1 = points[0][1];\n  targetShape.x2 = points[1][0];\n  targetShape.y2 = points[1][1];\n  targetShape.percent = 1;\n  var cp1 = points[2];\n\n  if (cp1) {\n    targetShape.cpx1 = cp1[0];\n    targetShape.cpy1 = cp1[1];\n  } else {\n    targetShape.cpx1 = NaN;\n    targetShape.cpy1 = NaN;\n  }\n}\n\nvar Line = function (_super) {\n  __extends(Line, _super);\n\n  function Line(lineData, idx, seriesScope) {\n    var _this = _super.call(this) || this;\n\n    _this._createLine(lineData, idx, seriesScope);\n\n    return _this;\n  }\n\n  Line.prototype._createLine = function (lineData, idx, seriesScope) {\n    var seriesModel = lineData.hostModel;\n    var linePoints = lineData.getItemLayout(idx);\n    var line = createLine(linePoints);\n    line.shape.percent = 0;\n    graphic.initProps(line, {\n      shape: {\n        percent: 1\n      }\n    }, seriesModel, idx);\n    this.add(line);\n    zrUtil.each(SYMBOL_CATEGORIES, function (symbolCategory) {\n      var symbol = createSymbol(symbolCategory, lineData, idx);\n      this.add(symbol);\n      this[makeSymbolTypeKey(symbolCategory)] = lineData.getItemVisual(idx, symbolCategory);\n    }, this);\n\n    this._updateCommonStl(lineData, idx, seriesScope);\n  };\n\n  Line.prototype.updateData = function (lineData, idx, seriesScope) {\n    var seriesModel = lineData.hostModel;\n    var line = this.childOfName('line');\n    var linePoints = lineData.getItemLayout(idx);\n    var target = {\n      shape: {}\n    };\n    setLinePoints(target.shape, linePoints);\n    graphic.updateProps(line, target, seriesModel, idx);\n    zrUtil.each(SYMBOL_CATEGORIES, function (symbolCategory) {\n      var symbolType = lineData.getItemVisual(idx, symbolCategory);\n      var key = makeSymbolTypeKey(symbolCategory);\n\n      if (this[key] !== symbolType) {\n        this.remove(this.childOfName(symbolCategory));\n        var symbol = createSymbol(symbolCategory, lineData, idx);\n        this.add(symbol);\n      }\n\n      this[key] = symbolType;\n    }, this);\n\n    this._updateCommonStl(lineData, idx, seriesScope);\n  };\n\n  ;\n\n  Line.prototype.getLinePath = function () {\n    return this.childAt(0);\n  };\n\n  Line.prototype._updateCommonStl = function (lineData, idx, seriesScope) {\n    var seriesModel = lineData.hostModel;\n    var line = this.childOfName('line');\n    var emphasisLineStyle = seriesScope && seriesScope.emphasisLineStyle;\n    var blurLineStyle = seriesScope && seriesScope.blurLineStyle;\n    var selectLineStyle = seriesScope && seriesScope.selectLineStyle;\n    var labelStatesModels = seriesScope && seriesScope.labelStatesModels;\n\n    if (!seriesScope || lineData.hasItemOption) {\n      var itemModel = lineData.getItemModel(idx);\n      emphasisLineStyle = itemModel.getModel(['emphasis', 'lineStyle']).getLineStyle();\n      blurLineStyle = itemModel.getModel(['blur', 'lineStyle']).getLineStyle();\n      selectLineStyle = itemModel.getModel(['select', 'lineStyle']).getLineStyle();\n      labelStatesModels = getLabelStatesModels(itemModel);\n    }\n\n    var lineStyle = lineData.getItemVisual(idx, 'style');\n    var visualColor = lineStyle.stroke;\n    line.useStyle(lineStyle);\n    line.style.fill = null;\n    line.style.strokeNoScale = true;\n    line.ensureState('emphasis').style = emphasisLineStyle;\n    line.ensureState('blur').style = blurLineStyle;\n    line.ensureState('select').style = selectLineStyle;\n    zrUtil.each(SYMBOL_CATEGORIES, function (symbolCategory) {\n      var symbol = this.childOfName(symbolCategory);\n\n      if (symbol) {\n        symbol.setColor(visualColor);\n        symbol.style.opacity = lineStyle.opacity;\n\n        for (var i = 0; i < SPECIAL_STATES.length; i++) {\n          var stateName = SPECIAL_STATES[i];\n          var lineState = line.getState(stateName);\n\n          if (lineState) {\n            var lineStateStyle = lineState.style || {};\n            var state = symbol.ensureState(stateName);\n            var stateStyle = state.style || (state.style = {});\n\n            if (lineStateStyle.stroke != null) {\n              stateStyle[symbol.__isEmptyBrush ? 'stroke' : 'fill'] = lineStateStyle.stroke;\n            }\n\n            if (lineStateStyle.opacity != null) {\n              stateStyle.opacity = lineStateStyle.opacity;\n            }\n          }\n        }\n\n        symbol.markRedraw();\n      }\n    }, this);\n    var rawVal = seriesModel.getRawValue(idx);\n    setLabelStyle(this, labelStatesModels, {\n      labelDataIndex: idx,\n      labelFetcher: {\n        getFormattedLabel: function (dataIndex, stateName) {\n          return seriesModel.getFormattedLabel(dataIndex, stateName, lineData.dataType);\n        }\n      },\n      inheritColor: visualColor || '#000',\n      defaultOpacity: lineStyle.opacity,\n      defaultText: (rawVal == null ? lineData.getName(idx) : isFinite(rawVal) ? round(rawVal) : rawVal) + ''\n    });\n    var label = this.getTextContent();\n\n    if (label) {\n      var labelNormalModel = labelStatesModels.normal;\n      label.__align = label.style.align;\n      label.__verticalAlign = label.style.verticalAlign;\n      label.__position = labelNormalModel.get('position') || 'middle';\n      var distance = labelNormalModel.get('distance');\n\n      if (!zrUtil.isArray(distance)) {\n        distance = [distance, distance];\n      }\n\n      label.__labelDistance = distance;\n    }\n\n    this.setTextConfig({\n      position: null,\n      local: true,\n      inside: false\n    });\n    enableHoverEmphasis(this);\n  };\n\n  Line.prototype.highlight = function () {\n    enterEmphasis(this);\n  };\n\n  Line.prototype.downplay = function () {\n    leaveEmphasis(this);\n  };\n\n  Line.prototype.updateLayout = function (lineData, idx) {\n    this.setLinePoints(lineData.getItemLayout(idx));\n  };\n\n  Line.prototype.setLinePoints = function (points) {\n    var linePath = this.childOfName('line');\n    setLinePoints(linePath.shape, points);\n    linePath.dirty();\n  };\n\n  Line.prototype.beforeUpdate = function () {\n    var lineGroup = this;\n    var symbolFrom = lineGroup.childOfName('fromSymbol');\n    var symbolTo = lineGroup.childOfName('toSymbol');\n    var label = lineGroup.getTextContent();\n\n    if (!symbolFrom && !symbolTo && (!label || label.ignore)) {\n      return;\n    }\n\n    var invScale = 1;\n    var parentNode = this.parent;\n\n    while (parentNode) {\n      if (parentNode.scaleX) {\n        invScale /= parentNode.scaleX;\n      }\n\n      parentNode = parentNode.parent;\n    }\n\n    var line = lineGroup.childOfName('line');\n\n    if (!this.__dirty && !line.__dirty) {\n      return;\n    }\n\n    var percent = line.shape.percent;\n    var fromPos = line.pointAt(0);\n    var toPos = line.pointAt(percent);\n    var d = vector.sub([], toPos, fromPos);\n    vector.normalize(d, d);\n\n    function setSymbolRotation(symbol, percent) {\n      var specifiedRotation = symbol.__specifiedRotation;\n\n      if (specifiedRotation == null) {\n        var tangent = line.tangentAt(percent);\n        symbol.attr('rotation', (percent === 1 ? -1 : 1) * Math.PI / 2 - Math.atan2(tangent[1], tangent[0]));\n      } else {\n        symbol.attr('rotation', specifiedRotation);\n      }\n    }\n\n    if (symbolFrom) {\n      symbolFrom.setPosition(fromPos);\n      setSymbolRotation(symbolFrom, 0);\n      symbolFrom.scaleX = symbolFrom.scaleY = invScale * percent;\n      symbolFrom.markRedraw();\n    }\n\n    if (symbolTo) {\n      symbolTo.setPosition(toPos);\n      setSymbolRotation(symbolTo, 1);\n      symbolTo.scaleX = symbolTo.scaleY = invScale * percent;\n      symbolTo.markRedraw();\n    }\n\n    if (label && !label.ignore) {\n      label.x = label.y = 0;\n      label.originX = label.originY = 0;\n      var textAlign = void 0;\n      var textVerticalAlign = void 0;\n      var distance = label.__labelDistance;\n      var distanceX = distance[0] * invScale;\n      var distanceY = distance[1] * invScale;\n      var halfPercent = percent / 2;\n      var tangent = line.tangentAt(halfPercent);\n      var n = [tangent[1], -tangent[0]];\n      var cp = line.pointAt(halfPercent);\n\n      if (n[1] > 0) {\n        n[0] = -n[0];\n        n[1] = -n[1];\n      }\n\n      var dir = tangent[0] < 0 ? -1 : 1;\n\n      if (label.__position !== 'start' && label.__position !== 'end') {\n        var rotation = -Math.atan2(tangent[1], tangent[0]);\n\n        if (toPos[0] < fromPos[0]) {\n          rotation = Math.PI + rotation;\n        }\n\n        label.rotation = rotation;\n      }\n\n      var dy = void 0;\n\n      switch (label.__position) {\n        case 'insideStartTop':\n        case 'insideMiddleTop':\n        case 'insideEndTop':\n        case 'middle':\n          dy = -distanceY;\n          textVerticalAlign = 'bottom';\n          break;\n\n        case 'insideStartBottom':\n        case 'insideMiddleBottom':\n        case 'insideEndBottom':\n          dy = distanceY;\n          textVerticalAlign = 'top';\n          break;\n\n        default:\n          dy = 0;\n          textVerticalAlign = 'middle';\n      }\n\n      switch (label.__position) {\n        case 'end':\n          label.x = d[0] * distanceX + toPos[0];\n          label.y = d[1] * distanceY + toPos[1];\n          textAlign = d[0] > 0.8 ? 'left' : d[0] < -0.8 ? 'right' : 'center';\n          textVerticalAlign = d[1] > 0.8 ? 'top' : d[1] < -0.8 ? 'bottom' : 'middle';\n          break;\n\n        case 'start':\n          label.x = -d[0] * distanceX + fromPos[0];\n          label.y = -d[1] * distanceY + fromPos[1];\n          textAlign = d[0] > 0.8 ? 'right' : d[0] < -0.8 ? 'left' : 'center';\n          textVerticalAlign = d[1] > 0.8 ? 'bottom' : d[1] < -0.8 ? 'top' : 'middle';\n          break;\n\n        case 'insideStartTop':\n        case 'insideStart':\n        case 'insideStartBottom':\n          label.x = distanceX * dir + fromPos[0];\n          label.y = fromPos[1] + dy;\n          textAlign = tangent[0] < 0 ? 'right' : 'left';\n          label.originX = -distanceX * dir;\n          label.originY = -dy;\n          break;\n\n        case 'insideMiddleTop':\n        case 'insideMiddle':\n        case 'insideMiddleBottom':\n        case 'middle':\n          label.x = cp[0];\n          label.y = cp[1] + dy;\n          textAlign = 'center';\n          label.originY = -dy;\n          break;\n\n        case 'insideEndTop':\n        case 'insideEnd':\n        case 'insideEndBottom':\n          label.x = -distanceX * dir + toPos[0];\n          label.y = toPos[1] + dy;\n          textAlign = tangent[0] >= 0 ? 'right' : 'left';\n          label.originX = distanceX * dir;\n          label.originY = -dy;\n          break;\n      }\n\n      label.scaleX = label.scaleY = invScale;\n      label.setStyle({\n        verticalAlign: label.__verticalAlign || textVerticalAlign,\n        align: label.__align || textAlign\n      });\n    }\n  };\n\n  return Line;\n}(graphic.Group);\n\nexport default Line;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as graphic from '../../util/graphic';\nimport LineGroup from './Line';\nimport { getLabelStatesModels } from '../../label/labelStyle';\n\nvar LineDraw = function () {\n  function LineDraw(LineCtor) {\n    this.group = new graphic.Group();\n    this._LineCtor = LineCtor || LineGroup;\n  }\n\n  LineDraw.prototype.isPersistent = function () {\n    return true;\n  };\n\n  ;\n\n  LineDraw.prototype.updateData = function (lineData) {\n    var _this = this;\n\n    var lineDraw = this;\n    var group = lineDraw.group;\n    var oldLineData = lineDraw._lineData;\n    lineDraw._lineData = lineData;\n\n    if (!oldLineData) {\n      group.removeAll();\n    }\n\n    var seriesScope = makeSeriesScope(lineData);\n    lineData.diff(oldLineData).add(function (idx) {\n      _this._doAdd(lineData, idx, seriesScope);\n    }).update(function (newIdx, oldIdx) {\n      _this._doUpdate(oldLineData, lineData, oldIdx, newIdx, seriesScope);\n    }).remove(function (idx) {\n      group.remove(oldLineData.getItemGraphicEl(idx));\n    }).execute();\n  };\n\n  ;\n\n  LineDraw.prototype.updateLayout = function () {\n    var lineData = this._lineData;\n\n    if (!lineData) {\n      return;\n    }\n\n    lineData.eachItemGraphicEl(function (el, idx) {\n      el.updateLayout(lineData, idx);\n    }, this);\n  };\n\n  ;\n\n  LineDraw.prototype.incrementalPrepareUpdate = function (lineData) {\n    this._seriesScope = makeSeriesScope(lineData);\n    this._lineData = null;\n    this.group.removeAll();\n  };\n\n  ;\n\n  LineDraw.prototype.incrementalUpdate = function (taskParams, lineData) {\n    function updateIncrementalAndHover(el) {\n      if (!el.isGroup && !isEffectObject(el)) {\n        el.incremental = true;\n        el.ensureState('emphasis').hoverLayer = true;\n      }\n    }\n\n    for (var idx = taskParams.start; idx < taskParams.end; idx++) {\n      var itemLayout = lineData.getItemLayout(idx);\n\n      if (lineNeedsDraw(itemLayout)) {\n        var el = new this._LineCtor(lineData, idx, this._seriesScope);\n        el.traverse(updateIncrementalAndHover);\n        this.group.add(el);\n        lineData.setItemGraphicEl(idx, el);\n      }\n    }\n  };\n\n  ;\n\n  LineDraw.prototype.remove = function () {\n    this.group.removeAll();\n  };\n\n  ;\n\n  LineDraw.prototype._doAdd = function (lineData, idx, seriesScope) {\n    var itemLayout = lineData.getItemLayout(idx);\n\n    if (!lineNeedsDraw(itemLayout)) {\n      return;\n    }\n\n    var el = new this._LineCtor(lineData, idx, seriesScope);\n    lineData.setItemGraphicEl(idx, el);\n    this.group.add(el);\n  };\n\n  LineDraw.prototype._doUpdate = function (oldLineData, newLineData, oldIdx, newIdx, seriesScope) {\n    var itemEl = oldLineData.getItemGraphicEl(oldIdx);\n\n    if (!lineNeedsDraw(newLineData.getItemLayout(newIdx))) {\n      this.group.remove(itemEl);\n      return;\n    }\n\n    if (!itemEl) {\n      itemEl = new this._LineCtor(newLineData, newIdx, seriesScope);\n    } else {\n      itemEl.updateData(newLineData, newIdx, seriesScope);\n    }\n\n    newLineData.setItemGraphicEl(newIdx, itemEl);\n    this.group.add(itemEl);\n  };\n\n  return LineDraw;\n}();\n\nfunction isEffectObject(el) {\n  return el.animators && el.animators.length > 0;\n}\n\nfunction makeSeriesScope(lineData) {\n  var hostModel = lineData.hostModel;\n  return {\n    lineStyle: hostModel.getModel('lineStyle').getLineStyle(),\n    emphasisLineStyle: hostModel.getModel(['emphasis', 'lineStyle']).getLineStyle(),\n    blurLineStyle: hostModel.getModel(['blur', 'lineStyle']).getLineStyle(),\n    selectLineStyle: hostModel.getModel(['select', 'lineStyle']).getLineStyle(),\n    labelStatesModels: getLabelStatesModels(hostModel)\n  };\n}\n\nfunction isPointNaN(pt) {\n  return isNaN(pt[0]) || isNaN(pt[1]);\n}\n\nfunction lineNeedsDraw(pts) {\n  return !isPointNaN(pts[0]) && !isPointNaN(pts[1]);\n}\n\nexport default LineDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport List from '../../data/List';\nimport * as numberUtil from '../../util/number';\nimport * as markerHelper from './markerHelper';\nimport LineDraw from '../../chart/helper/LineDraw';\nimport MarkerView from './MarkerView';\nimport { getStackedDimension } from '../../data/helper/dataStackHelper';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport { getECData } from '../../util/innerStore';\nimport MarkerModel from './MarkerModel';\nimport { isArray, retrieve, clone, extend, logError, merge, map, defaults, curry, filter } from 'zrender/lib/core/util';\nimport { makeInner } from '../../util/model';\nimport { getVisualFromData } from '../../visual/helper';\nvar inner = makeInner();\n\nvar markLineTransform = function (seriesModel, coordSys, mlModel, item) {\n  var data = seriesModel.getData();\n  var itemArray;\n\n  if (!isArray(item)) {\n    var mlType = item.type;\n\n    if (mlType === 'min' || mlType === 'max' || mlType === 'average' || mlType === 'median' || item.xAxis != null || item.yAxis != null) {\n      var valueAxis = void 0;\n      var value = void 0;\n\n      if (item.yAxis != null || item.xAxis != null) {\n        valueAxis = coordSys.getAxis(item.yAxis != null ? 'y' : 'x');\n        value = retrieve(item.yAxis, item.xAxis);\n      } else {\n        var axisInfo = markerHelper.getAxisInfo(item, data, coordSys, seriesModel);\n        valueAxis = axisInfo.valueAxis;\n        var valueDataDim = getStackedDimension(data, axisInfo.valueDataDim);\n        value = markerHelper.numCalculate(data, valueDataDim, mlType);\n      }\n\n      var valueIndex = valueAxis.dim === 'x' ? 0 : 1;\n      var baseIndex = 1 - valueIndex;\n      var mlFrom = clone(item);\n      var mlTo = {\n        coord: []\n      };\n      mlFrom.type = null;\n      mlFrom.coord = [];\n      mlFrom.coord[baseIndex] = -Infinity;\n      mlTo.coord[baseIndex] = Infinity;\n      var precision = mlModel.get('precision');\n\n      if (precision >= 0 && typeof value === 'number') {\n        value = +value.toFixed(Math.min(precision, 20));\n      }\n\n      mlFrom.coord[valueIndex] = mlTo.coord[valueIndex] = value;\n      itemArray = [mlFrom, mlTo, {\n        type: mlType,\n        valueIndex: item.valueIndex,\n        value: value\n      }];\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        logError('Invalid markLine data.');\n      }\n\n      itemArray = [];\n    }\n  } else {\n    itemArray = item;\n  }\n\n  var normalizedItem = [markerHelper.dataTransform(seriesModel, itemArray[0]), markerHelper.dataTransform(seriesModel, itemArray[1]), extend({}, itemArray[2])];\n  normalizedItem[2].type = normalizedItem[2].type || null;\n  merge(normalizedItem[2], normalizedItem[0]);\n  merge(normalizedItem[2], normalizedItem[1]);\n  return normalizedItem;\n};\n\nfunction isInifinity(val) {\n  return !isNaN(val) && !isFinite(val);\n}\n\nfunction ifMarkLineHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\n  var otherDimIndex = 1 - dimIndex;\n  var dimName = coordSys.dimensions[dimIndex];\n  return isInifinity(fromCoord[otherDimIndex]) && isInifinity(toCoord[otherDimIndex]) && fromCoord[dimIndex] === toCoord[dimIndex] && coordSys.getAxis(dimName).containData(fromCoord[dimIndex]);\n}\n\nfunction markLineFilter(coordSys, item) {\n  if (coordSys.type === 'cartesian2d') {\n    var fromCoord = item[0].coord;\n    var toCoord = item[1].coord;\n\n    if (fromCoord && toCoord && (ifMarkLineHasOnlyDim(1, fromCoord, toCoord, coordSys) || ifMarkLineHasOnlyDim(0, fromCoord, toCoord, coordSys))) {\n      return true;\n    }\n  }\n\n  return markerHelper.dataFilter(coordSys, item[0]) && markerHelper.dataFilter(coordSys, item[1]);\n}\n\nfunction updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api) {\n  var coordSys = seriesModel.coordinateSystem;\n  var itemModel = data.getItemModel(idx);\n  var point;\n  var xPx = numberUtil.parsePercent(itemModel.get('x'), api.getWidth());\n  var yPx = numberUtil.parsePercent(itemModel.get('y'), api.getHeight());\n\n  if (!isNaN(xPx) && !isNaN(yPx)) {\n    point = [xPx, yPx];\n  } else {\n    if (seriesModel.getMarkerPosition) {\n      point = seriesModel.getMarkerPosition(data.getValues(data.dimensions, idx));\n    } else {\n      var dims = coordSys.dimensions;\n      var x = data.get(dims[0], idx);\n      var y = data.get(dims[1], idx);\n      point = coordSys.dataToPoint([x, y]);\n    }\n\n    if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n      var xAxis = coordSys.getAxis('x');\n      var yAxis = coordSys.getAxis('y');\n      var dims = coordSys.dimensions;\n\n      if (isInifinity(data.get(dims[0], idx))) {\n        point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[isFrom ? 0 : 1]);\n      } else if (isInifinity(data.get(dims[1], idx))) {\n        point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[isFrom ? 0 : 1]);\n      }\n    }\n\n    if (!isNaN(xPx)) {\n      point[0] = xPx;\n    }\n\n    if (!isNaN(yPx)) {\n      point[1] = yPx;\n    }\n  }\n\n  data.setItemLayout(idx, point);\n}\n\nvar MarkLineView = function (_super) {\n  __extends(MarkLineView, _super);\n\n  function MarkLineView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkLineView.type;\n    return _this;\n  }\n\n  MarkLineView.prototype.updateTransform = function (markLineModel, ecModel, api) {\n    ecModel.eachSeries(function (seriesModel) {\n      var mlModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markLine');\n\n      if (mlModel) {\n        var mlData_1 = mlModel.getData();\n        var fromData_1 = inner(mlModel).from;\n        var toData_1 = inner(mlModel).to;\n        fromData_1.each(function (idx) {\n          updateSingleMarkerEndLayout(fromData_1, idx, true, seriesModel, api);\n          updateSingleMarkerEndLayout(toData_1, idx, false, seriesModel, api);\n        });\n        mlData_1.each(function (idx) {\n          mlData_1.setItemLayout(idx, [fromData_1.getItemLayout(idx), toData_1.getItemLayout(idx)]);\n        });\n        this.markerGroupMap.get(seriesModel.id).updateLayout();\n      }\n    }, this);\n  };\n\n  MarkLineView.prototype.renderSeries = function (seriesModel, mlModel, ecModel, api) {\n    var coordSys = seriesModel.coordinateSystem;\n    var seriesId = seriesModel.id;\n    var seriesData = seriesModel.getData();\n    var lineDrawMap = this.markerGroupMap;\n    var lineDraw = lineDrawMap.get(seriesId) || lineDrawMap.set(seriesId, new LineDraw());\n    this.group.add(lineDraw.group);\n    var mlData = createList(coordSys, seriesModel, mlModel);\n    var fromData = mlData.from;\n    var toData = mlData.to;\n    var lineData = mlData.line;\n    inner(mlModel).from = fromData;\n    inner(mlModel).to = toData;\n    mlModel.setData(lineData);\n    var symbolType = mlModel.get('symbol');\n    var symbolSize = mlModel.get('symbolSize');\n\n    if (!isArray(symbolType)) {\n      symbolType = [symbolType, symbolType];\n    }\n\n    if (!isArray(symbolSize)) {\n      symbolSize = [symbolSize, symbolSize];\n    }\n\n    mlData.from.each(function (idx) {\n      updateDataVisualAndLayout(fromData, idx, true);\n      updateDataVisualAndLayout(toData, idx, false);\n    });\n    lineData.each(function (idx) {\n      var lineStyle = lineData.getItemModel(idx).getModel('lineStyle').getLineStyle();\n      lineData.setItemLayout(idx, [fromData.getItemLayout(idx), toData.getItemLayout(idx)]);\n\n      if (lineStyle.stroke == null) {\n        lineStyle.stroke = fromData.getItemVisual(idx, 'style').fill;\n      }\n\n      lineData.setItemVisual(idx, {\n        fromSymbolRotate: fromData.getItemVisual(idx, 'symbolRotate'),\n        fromSymbolSize: fromData.getItemVisual(idx, 'symbolSize'),\n        fromSymbol: fromData.getItemVisual(idx, 'symbol'),\n        toSymbolRotate: toData.getItemVisual(idx, 'symbolRotate'),\n        toSymbolSize: toData.getItemVisual(idx, 'symbolSize'),\n        toSymbol: toData.getItemVisual(idx, 'symbol'),\n        style: lineStyle\n      });\n    });\n    lineDraw.updateData(lineData);\n    mlData.line.eachItemGraphicEl(function (el, idx) {\n      el.traverse(function (child) {\n        getECData(child).dataModel = mlModel;\n      });\n    });\n\n    function updateDataVisualAndLayout(data, idx, isFrom) {\n      var itemModel = data.getItemModel(idx);\n      updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api);\n      var style = itemModel.getModel('itemStyle').getItemStyle();\n\n      if (style.fill == null) {\n        style.fill = getVisualFromData(seriesData, 'color');\n      }\n\n      data.setItemVisual(idx, {\n        symbolRotate: itemModel.get('symbolRotate'),\n        symbolSize: itemModel.get('symbolSize') || symbolSize[isFrom ? 0 : 1],\n        symbol: itemModel.get('symbol', true) || symbolType[isFrom ? 0 : 1],\n        style: style\n      });\n    }\n\n    this.markKeep(lineDraw);\n    lineDraw.group.silent = mlModel.get('silent') || seriesModel.get('silent');\n  };\n\n  MarkLineView.type = 'markLine';\n  return MarkLineView;\n}(MarkerView);\n\nfunction createList(coordSys, seriesModel, mlModel) {\n  var coordDimsInfos;\n\n  if (coordSys) {\n    coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\n      var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {};\n      return defaults({\n        name: coordDim\n      }, info);\n    });\n  } else {\n    coordDimsInfos = [{\n      name: 'value',\n      type: 'float'\n    }];\n  }\n\n  var fromData = new List(coordDimsInfos, mlModel);\n  var toData = new List(coordDimsInfos, mlModel);\n  var lineData = new List([], mlModel);\n  var optData = map(mlModel.get('data'), curry(markLineTransform, seriesModel, coordSys, mlModel));\n\n  if (coordSys) {\n    optData = filter(optData, curry(markLineFilter, coordSys));\n  }\n\n  var dimValueGetter = coordSys ? markerHelper.dimValueGetter : function (item) {\n    return item.value;\n  };\n  fromData.initData(map(optData, function (item) {\n    return item[0];\n  }), null, dimValueGetter);\n  toData.initData(map(optData, function (item) {\n    return item[1];\n  }), null, dimValueGetter);\n  lineData.initData(map(optData, function (item) {\n    return item[2];\n  }));\n  lineData.hasItemOption = true;\n  return {\n    from: fromData,\n    to: toData,\n    line: lineData\n  };\n}\n\nexport default MarkLineView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport MarkLineModel from './MarkLineModel';\nimport MarkLineView from './MarkLineView';\nexport function install(registers) {\n  registers.registerComponentModel(MarkLineModel);\n  registers.registerComponentView(MarkLineView);\n  registers.registerPreprocessor(function (opt) {\n    opt.markLine = opt.markLine || {};\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport MarkerModel from './MarkerModel';\n\nvar MarkAreaModel = function (_super) {\n  __extends(MarkAreaModel, _super);\n\n  function MarkAreaModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkAreaModel.type;\n    return _this;\n  }\n\n  MarkAreaModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\n    return new MarkAreaModel(markerOpt, masterMarkerModel, ecModel);\n  };\n\n  MarkAreaModel.type = 'markArea';\n  MarkAreaModel.defaultOption = {\n    zlevel: 0,\n    z: 1,\n    tooltip: {\n      trigger: 'item'\n    },\n    animation: false,\n    label: {\n      show: true,\n      position: 'top'\n    },\n    itemStyle: {\n      borderWidth: 0\n    },\n    emphasis: {\n      label: {\n        show: true,\n        position: 'top'\n      }\n    }\n  };\n  return MarkAreaModel;\n}(MarkerModel);\n\nexport default MarkAreaModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as colorUtil from 'zrender/lib/tool/color';\nimport List from '../../data/List';\nimport * as numberUtil from '../../util/number';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis, setStatesStylesFromModel } from '../../util/states';\nimport * as markerHelper from './markerHelper';\nimport MarkerView from './MarkerView';\nimport { retrieve, mergeAll, map, defaults, curry, filter, each } from 'zrender/lib/core/util';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport MarkerModel from './MarkerModel';\nimport { makeInner } from '../../util/model';\nimport { getVisualFromData } from '../../visual/helper';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { getECData } from '../../util/innerStore';\nvar inner = makeInner();\n\nvar markAreaTransform = function (seriesModel, coordSys, maModel, item) {\n  var lt = markerHelper.dataTransform(seriesModel, item[0]);\n  var rb = markerHelper.dataTransform(seriesModel, item[1]);\n  var ltCoord = lt.coord;\n  var rbCoord = rb.coord;\n  ltCoord[0] = retrieve(ltCoord[0], -Infinity);\n  ltCoord[1] = retrieve(ltCoord[1], -Infinity);\n  rbCoord[0] = retrieve(rbCoord[0], Infinity);\n  rbCoord[1] = retrieve(rbCoord[1], Infinity);\n  var result = mergeAll([{}, lt, rb]);\n  result.coord = [lt.coord, rb.coord];\n  result.x0 = lt.x;\n  result.y0 = lt.y;\n  result.x1 = rb.x;\n  result.y1 = rb.y;\n  return result;\n};\n\nfunction isInifinity(val) {\n  return !isNaN(val) && !isFinite(val);\n}\n\nfunction ifMarkAreaHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\n  var otherDimIndex = 1 - dimIndex;\n  return isInifinity(fromCoord[otherDimIndex]) && isInifinity(toCoord[otherDimIndex]);\n}\n\nfunction markAreaFilter(coordSys, item) {\n  var fromCoord = item.coord[0];\n  var toCoord = item.coord[1];\n\n  if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n    if (fromCoord && toCoord && (ifMarkAreaHasOnlyDim(1, fromCoord, toCoord, coordSys) || ifMarkAreaHasOnlyDim(0, fromCoord, toCoord, coordSys))) {\n      return true;\n    }\n  }\n\n  return markerHelper.dataFilter(coordSys, {\n    coord: fromCoord,\n    x: item.x0,\n    y: item.y0\n  }) || markerHelper.dataFilter(coordSys, {\n    coord: toCoord,\n    x: item.x1,\n    y: item.y1\n  });\n}\n\nfunction getSingleMarkerEndPoint(data, idx, dims, seriesModel, api) {\n  var coordSys = seriesModel.coordinateSystem;\n  var itemModel = data.getItemModel(idx);\n  var point;\n  var xPx = numberUtil.parsePercent(itemModel.get(dims[0]), api.getWidth());\n  var yPx = numberUtil.parsePercent(itemModel.get(dims[1]), api.getHeight());\n\n  if (!isNaN(xPx) && !isNaN(yPx)) {\n    point = [xPx, yPx];\n  } else {\n    if (seriesModel.getMarkerPosition) {\n      point = seriesModel.getMarkerPosition(data.getValues(dims, idx));\n    } else {\n      var x = data.get(dims[0], idx);\n      var y = data.get(dims[1], idx);\n      var pt = [x, y];\n      coordSys.clampData && coordSys.clampData(pt, pt);\n      point = coordSys.dataToPoint(pt, true);\n    }\n\n    if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n      var xAxis = coordSys.getAxis('x');\n      var yAxis = coordSys.getAxis('y');\n      var x = data.get(dims[0], idx);\n      var y = data.get(dims[1], idx);\n\n      if (isInifinity(x)) {\n        point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[dims[0] === 'x0' ? 0 : 1]);\n      } else if (isInifinity(y)) {\n        point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[dims[1] === 'y0' ? 0 : 1]);\n      }\n    }\n\n    if (!isNaN(xPx)) {\n      point[0] = xPx;\n    }\n\n    if (!isNaN(yPx)) {\n      point[1] = yPx;\n    }\n  }\n\n  return point;\n}\n\nvar dimPermutations = [['x0', 'y0'], ['x1', 'y0'], ['x1', 'y1'], ['x0', 'y1']];\n\nvar MarkAreaView = function (_super) {\n  __extends(MarkAreaView, _super);\n\n  function MarkAreaView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkAreaView.type;\n    return _this;\n  }\n\n  MarkAreaView.prototype.updateTransform = function (markAreaModel, ecModel, api) {\n    ecModel.eachSeries(function (seriesModel) {\n      var maModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markArea');\n\n      if (maModel) {\n        var areaData_1 = maModel.getData();\n        areaData_1.each(function (idx) {\n          var points = map(dimPermutations, function (dim) {\n            return getSingleMarkerEndPoint(areaData_1, idx, dim, seriesModel, api);\n          });\n          areaData_1.setItemLayout(idx, points);\n          var el = areaData_1.getItemGraphicEl(idx);\n          el.setShape('points', points);\n        });\n      }\n    }, this);\n  };\n\n  MarkAreaView.prototype.renderSeries = function (seriesModel, maModel, ecModel, api) {\n    var coordSys = seriesModel.coordinateSystem;\n    var seriesId = seriesModel.id;\n    var seriesData = seriesModel.getData();\n    var areaGroupMap = this.markerGroupMap;\n    var polygonGroup = areaGroupMap.get(seriesId) || areaGroupMap.set(seriesId, {\n      group: new graphic.Group()\n    });\n    this.group.add(polygonGroup.group);\n    this.markKeep(polygonGroup);\n    var areaData = createList(coordSys, seriesModel, maModel);\n    maModel.setData(areaData);\n    areaData.each(function (idx) {\n      var points = map(dimPermutations, function (dim) {\n        return getSingleMarkerEndPoint(areaData, idx, dim, seriesModel, api);\n      });\n      var allClipped = true;\n      each(dimPermutations, function (dim) {\n        if (!allClipped) {\n          return;\n        }\n\n        var xValue = areaData.get(dim[0], idx);\n        var yValue = areaData.get(dim[1], idx);\n\n        if ((isInifinity(xValue) || coordSys.getAxis('x').containData(xValue)) && (isInifinity(yValue) || coordSys.getAxis('y').containData(yValue))) {\n          allClipped = false;\n        }\n      });\n      areaData.setItemLayout(idx, {\n        points: points,\n        allClipped: allClipped\n      });\n      var style = areaData.getItemModel(idx).getModel('itemStyle').getItemStyle();\n      var color = getVisualFromData(seriesData, 'color');\n\n      if (!style.fill) {\n        style.fill = color;\n\n        if (typeof style.fill === 'string') {\n          style.fill = colorUtil.modifyAlpha(style.fill, 0.4);\n        }\n      }\n\n      if (!style.stroke) {\n        style.stroke = color;\n      }\n\n      areaData.setItemVisual(idx, 'style', style);\n    });\n    areaData.diff(inner(polygonGroup).data).add(function (idx) {\n      var layout = areaData.getItemLayout(idx);\n\n      if (!layout.allClipped) {\n        var polygon = new graphic.Polygon({\n          shape: {\n            points: layout.points\n          }\n        });\n        areaData.setItemGraphicEl(idx, polygon);\n        polygonGroup.group.add(polygon);\n      }\n    }).update(function (newIdx, oldIdx) {\n      var polygon = inner(polygonGroup).data.getItemGraphicEl(oldIdx);\n      var layout = areaData.getItemLayout(newIdx);\n\n      if (!layout.allClipped) {\n        if (polygon) {\n          graphic.updateProps(polygon, {\n            shape: {\n              points: layout.points\n            }\n          }, maModel, newIdx);\n        } else {\n          polygon = new graphic.Polygon({\n            shape: {\n              points: layout.points\n            }\n          });\n        }\n\n        areaData.setItemGraphicEl(newIdx, polygon);\n        polygonGroup.group.add(polygon);\n      } else if (polygon) {\n        polygonGroup.group.remove(polygon);\n      }\n    }).remove(function (idx) {\n      var polygon = inner(polygonGroup).data.getItemGraphicEl(idx);\n      polygonGroup.group.remove(polygon);\n    }).execute();\n    areaData.eachItemGraphicEl(function (polygon, idx) {\n      var itemModel = areaData.getItemModel(idx);\n      var style = areaData.getItemVisual(idx, 'style');\n      polygon.useStyle(areaData.getItemVisual(idx, 'style'));\n      setLabelStyle(polygon, getLabelStatesModels(itemModel), {\n        labelFetcher: maModel,\n        labelDataIndex: idx,\n        defaultText: areaData.getName(idx) || '',\n        inheritColor: typeof style.fill === 'string' ? colorUtil.modifyAlpha(style.fill, 1) : '#000'\n      });\n      setStatesStylesFromModel(polygon, itemModel);\n      enableHoverEmphasis(polygon);\n      getECData(polygon).dataModel = maModel;\n    });\n    inner(polygonGroup).data = areaData;\n    polygonGroup.group.silent = maModel.get('silent') || seriesModel.get('silent');\n  };\n\n  MarkAreaView.type = 'markArea';\n  return MarkAreaView;\n}(MarkerView);\n\nfunction createList(coordSys, seriesModel, maModel) {\n  var coordDimsInfos;\n  var areaData;\n  var dims = ['x0', 'y0', 'x1', 'y1'];\n\n  if (coordSys) {\n    coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\n      var data = seriesModel.getData();\n      var info = data.getDimensionInfo(data.mapDimension(coordDim)) || {};\n      return defaults({\n        name: coordDim\n      }, info);\n    });\n    areaData = new List(map(dims, function (dim, idx) {\n      return {\n        name: dim,\n        type: coordDimsInfos[idx % 2].type\n      };\n    }), maModel);\n  } else {\n    coordDimsInfos = [{\n      name: 'value',\n      type: 'float'\n    }];\n    areaData = new List(coordDimsInfos, maModel);\n  }\n\n  var optData = map(maModel.get('data'), curry(markAreaTransform, seriesModel, coordSys, maModel));\n\n  if (coordSys) {\n    optData = filter(optData, curry(markAreaFilter, coordSys));\n  }\n\n  var dimValueGetter = coordSys ? function (item, dimName, dataIndex, dimIndex) {\n    return item.coord[Math.floor(dimIndex / 2)][dimIndex % 2];\n  } : function (item) {\n    return item.value;\n  };\n  areaData.initData(optData, null, dimValueGetter);\n  areaData.hasItemOption = true;\n  return areaData;\n}\n\nexport default MarkAreaView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport MarkAreaModel from './MarkAreaModel';\nimport MarkAreaView from './MarkAreaView';\nexport function install(registers) {\n  registers.registerComponentModel(MarkAreaModel);\n  registers.registerComponentView(MarkAreaView);\n  registers.registerPreprocessor(function (opt) {\n    opt.markArea = opt.markArea || {};\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Model from '../../model/Model';\nimport { isNameSpecified } from '../../util/model';\nimport ComponentModel from '../../model/Component';\n\nvar getDefaultSelectorOptions = function (ecModel, type) {\n  if (type === 'all') {\n    return {\n      type: 'all',\n      title: ecModel.getLocale(['legend', 'selector', 'all'])\n    };\n  } else if (type === 'inverse') {\n    return {\n      type: 'inverse',\n      title: ecModel.getLocale(['legend', 'selector', 'inverse'])\n    };\n  }\n};\n\nvar LegendModel = function (_super) {\n  __extends(LegendModel, _super);\n\n  function LegendModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = LegendModel.type;\n    _this.layoutMode = {\n      type: 'box',\n      ignoreSize: true\n    };\n    return _this;\n  }\n\n  LegendModel.prototype.init = function (option, parentModel, ecModel) {\n    this.mergeDefaultAndTheme(option, ecModel);\n    option.selected = option.selected || {};\n\n    this._updateSelector(option);\n  };\n\n  LegendModel.prototype.mergeOption = function (option, ecModel) {\n    _super.prototype.mergeOption.call(this, option, ecModel);\n\n    this._updateSelector(option);\n  };\n\n  LegendModel.prototype._updateSelector = function (option) {\n    var selector = option.selector;\n    var ecModel = this.ecModel;\n\n    if (selector === true) {\n      selector = option.selector = ['all', 'inverse'];\n    }\n\n    if (zrUtil.isArray(selector)) {\n      zrUtil.each(selector, function (item, index) {\n        zrUtil.isString(item) && (item = {\n          type: item\n        });\n        selector[index] = zrUtil.merge(item, getDefaultSelectorOptions(ecModel, item.type));\n      });\n    }\n  };\n\n  LegendModel.prototype.optionUpdated = function () {\n    this._updateData(this.ecModel);\n\n    var legendData = this._data;\n\n    if (legendData[0] && this.get('selectedMode') === 'single') {\n      var hasSelected = false;\n\n      for (var i = 0; i < legendData.length; i++) {\n        var name_1 = legendData[i].get('name');\n\n        if (this.isSelected(name_1)) {\n          this.select(name_1);\n          hasSelected = true;\n          break;\n        }\n      }\n\n      !hasSelected && this.select(legendData[0].get('name'));\n    }\n  };\n\n  LegendModel.prototype._updateData = function (ecModel) {\n    var potentialData = [];\n    var availableNames = [];\n    ecModel.eachRawSeries(function (seriesModel) {\n      var seriesName = seriesModel.name;\n      availableNames.push(seriesName);\n      var isPotential;\n\n      if (seriesModel.legendVisualProvider) {\n        var provider = seriesModel.legendVisualProvider;\n        var names = provider.getAllNames();\n\n        if (!ecModel.isSeriesFiltered(seriesModel)) {\n          availableNames = availableNames.concat(names);\n        }\n\n        if (names.length) {\n          potentialData = potentialData.concat(names);\n        } else {\n          isPotential = true;\n        }\n      } else {\n        isPotential = true;\n      }\n\n      if (isPotential && isNameSpecified(seriesModel)) {\n        potentialData.push(seriesModel.name);\n      }\n    });\n    this._availableNames = availableNames;\n    var rawData = this.get('data') || potentialData;\n    var legendData = zrUtil.map(rawData, function (dataItem) {\n      if (typeof dataItem === 'string' || typeof dataItem === 'number') {\n        dataItem = {\n          name: dataItem\n        };\n      }\n\n      return new Model(dataItem, this, this.ecModel);\n    }, this);\n    this._data = legendData;\n  };\n\n  LegendModel.prototype.getData = function () {\n    return this._data;\n  };\n\n  LegendModel.prototype.select = function (name) {\n    var selected = this.option.selected;\n    var selectedMode = this.get('selectedMode');\n\n    if (selectedMode === 'single') {\n      var data = this._data;\n      zrUtil.each(data, function (dataItem) {\n        selected[dataItem.get('name')] = false;\n      });\n    }\n\n    selected[name] = true;\n  };\n\n  LegendModel.prototype.unSelect = function (name) {\n    if (this.get('selectedMode') !== 'single') {\n      this.option.selected[name] = false;\n    }\n  };\n\n  LegendModel.prototype.toggleSelected = function (name) {\n    var selected = this.option.selected;\n\n    if (!selected.hasOwnProperty(name)) {\n      selected[name] = true;\n    }\n\n    this[selected[name] ? 'unSelect' : 'select'](name);\n  };\n\n  LegendModel.prototype.allSelect = function () {\n    var data = this._data;\n    var selected = this.option.selected;\n    zrUtil.each(data, function (dataItem) {\n      selected[dataItem.get('name', true)] = true;\n    });\n  };\n\n  LegendModel.prototype.inverseSelect = function () {\n    var data = this._data;\n    var selected = this.option.selected;\n    zrUtil.each(data, function (dataItem) {\n      var name = dataItem.get('name', true);\n\n      if (!selected.hasOwnProperty(name)) {\n        selected[name] = true;\n      }\n\n      selected[name] = !selected[name];\n    });\n  };\n\n  LegendModel.prototype.isSelected = function (name) {\n    var selected = this.option.selected;\n    return !(selected.hasOwnProperty(name) && !selected[name]) && zrUtil.indexOf(this._availableNames, name) >= 0;\n  };\n\n  LegendModel.prototype.getOrient = function () {\n    return this.get('orient') === 'vertical' ? {\n      index: 1,\n      name: 'vertical'\n    } : {\n      index: 0,\n      name: 'horizontal'\n    };\n  };\n\n  LegendModel.type = 'legend.plain';\n  LegendModel.dependencies = ['series'];\n  LegendModel.defaultOption = {\n    zlevel: 0,\n    z: 4,\n    show: true,\n    orient: 'horizontal',\n    left: 'center',\n    top: 0,\n    align: 'auto',\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderColor: '#ccc',\n    borderRadius: 0,\n    borderWidth: 0,\n    padding: 5,\n    itemGap: 10,\n    itemWidth: 25,\n    itemHeight: 14,\n    inactiveColor: '#ccc',\n    inactiveBorderColor: '#ccc',\n    itemStyle: {\n      borderWidth: 0\n    },\n    textStyle: {\n      color: '#333'\n    },\n    selectedMode: true,\n    selector: false,\n    selectorLabel: {\n      show: true,\n      borderRadius: 10,\n      padding: [3, 5, 3, 5],\n      fontSize: 12,\n      fontFamily: ' sans-serif',\n      color: '#666',\n      borderWidth: 1,\n      borderColor: '#666'\n    },\n    emphasis: {\n      selectorLabel: {\n        show: true,\n        color: '#eee',\n        backgroundColor: '#666'\n      }\n    },\n    selectorPosition: 'auto',\n    selectorItemGap: 7,\n    selectorButtonGap: 10,\n    tooltip: {\n      show: false\n    }\n  };\n  return LegendModel;\n}(ComponentModel);\n\nexport default LegendModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { createSymbol } from '../../util/symbol';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis } from '../../util/states';\nimport { setLabelStyle, createTextStyle } from '../../label/labelStyle';\nimport { makeBackground } from '../helper/listComponent';\nimport * as layoutUtil from '../../util/layout';\nimport ComponentView from '../../view/Component';\nimport { parse, stringify } from 'zrender/lib/tool/color';\nvar curry = zrUtil.curry;\nvar each = zrUtil.each;\nvar Group = graphic.Group;\n\nvar LegendView = function (_super) {\n  __extends(LegendView, _super);\n\n  function LegendView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = LegendView.type;\n    _this.newlineDisabled = false;\n    return _this;\n  }\n\n  LegendView.prototype.init = function () {\n    this.group.add(this._contentGroup = new Group());\n    this.group.add(this._selectorGroup = new Group());\n    this._isFirstRender = true;\n  };\n\n  LegendView.prototype.getContentGroup = function () {\n    return this._contentGroup;\n  };\n\n  LegendView.prototype.getSelectorGroup = function () {\n    return this._selectorGroup;\n  };\n\n  LegendView.prototype.render = function (legendModel, ecModel, api) {\n    var isFirstRender = this._isFirstRender;\n    this._isFirstRender = false;\n    this.resetInner();\n\n    if (!legendModel.get('show', true)) {\n      return;\n    }\n\n    var itemAlign = legendModel.get('align');\n    var orient = legendModel.get('orient');\n\n    if (!itemAlign || itemAlign === 'auto') {\n      itemAlign = legendModel.get('left') === 'right' && orient === 'vertical' ? 'right' : 'left';\n    }\n\n    var selector = legendModel.get('selector', true);\n    var selectorPosition = legendModel.get('selectorPosition', true);\n\n    if (selector && (!selectorPosition || selectorPosition === 'auto')) {\n      selectorPosition = orient === 'horizontal' ? 'end' : 'start';\n    }\n\n    this.renderInner(itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\n    var positionInfo = legendModel.getBoxLayoutParams();\n    var viewportSize = {\n      width: api.getWidth(),\n      height: api.getHeight()\n    };\n    var padding = legendModel.get('padding');\n    var maxSize = layoutUtil.getLayoutRect(positionInfo, viewportSize, padding);\n    var mainRect = this.layoutInner(legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition);\n    var layoutRect = layoutUtil.getLayoutRect(zrUtil.defaults({\n      width: mainRect.width,\n      height: mainRect.height\n    }, positionInfo), viewportSize, padding);\n    this.group.x = layoutRect.x - mainRect.x;\n    this.group.y = layoutRect.y - mainRect.y;\n    this.group.markRedraw();\n    this.group.add(this._backgroundEl = makeBackground(mainRect, legendModel));\n  };\n\n  LegendView.prototype.resetInner = function () {\n    this.getContentGroup().removeAll();\n    this._backgroundEl && this.group.remove(this._backgroundEl);\n    this.getSelectorGroup().removeAll();\n  };\n\n  LegendView.prototype.renderInner = function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\n    var contentGroup = this.getContentGroup();\n    var legendDrawnMap = zrUtil.createHashMap();\n    var selectMode = legendModel.get('selectedMode');\n    var excludeSeriesId = [];\n    ecModel.eachRawSeries(function (seriesModel) {\n      !seriesModel.get('legendHoverLink') && excludeSeriesId.push(seriesModel.id);\n    });\n    each(legendModel.getData(), function (itemModel, dataIndex) {\n      var name = itemModel.get('name');\n\n      if (!this.newlineDisabled && (name === '' || name === '\\n')) {\n        var g = new Group();\n        g.newline = true;\n        contentGroup.add(g);\n        return;\n      }\n\n      var seriesModel = ecModel.getSeriesByName(name)[0];\n\n      if (legendDrawnMap.get(name)) {\n        return;\n      }\n\n      if (seriesModel) {\n        var data = seriesModel.getData();\n        var style = data.getVisual('style');\n        var color = style[data.getVisual('drawType')] || style.fill;\n        var borderColor = style.stroke;\n        var decal = style.decal;\n        var legendSymbolType = data.getVisual('legendSymbol') || 'roundRect';\n        var symbolType = data.getVisual('symbol');\n\n        var itemGroup = this._createItem(name, dataIndex, itemModel, legendModel, legendSymbolType, symbolType, itemAlign, color, borderColor, decal, selectMode);\n\n        itemGroup.on('click', curry(dispatchSelectAction, name, null, api, excludeSeriesId)).on('mouseover', curry(dispatchHighlightAction, seriesModel.name, null, api, excludeSeriesId)).on('mouseout', curry(dispatchDownplayAction, seriesModel.name, null, api, excludeSeriesId));\n        legendDrawnMap.set(name, true);\n      } else {\n        ecModel.eachRawSeries(function (seriesModel) {\n          if (legendDrawnMap.get(name)) {\n            return;\n          }\n\n          if (seriesModel.legendVisualProvider) {\n            var provider = seriesModel.legendVisualProvider;\n\n            if (!provider.containName(name)) {\n              return;\n            }\n\n            var idx = provider.indexOfName(name);\n            var style = provider.getItemVisual(idx, 'style');\n            var borderColor = style.stroke;\n            var decal = style.decal;\n            var color = style.fill;\n            var colorArr = parse(style.fill);\n\n            if (colorArr && colorArr[3] === 0) {\n              colorArr[3] = 0.2;\n              color = stringify(colorArr, 'rgba');\n            }\n\n            var legendSymbolType = 'roundRect';\n\n            var itemGroup = this._createItem(name, dataIndex, itemModel, legendModel, legendSymbolType, null, itemAlign, color, borderColor, decal, selectMode);\n\n            itemGroup.on('click', curry(dispatchSelectAction, null, name, api, excludeSeriesId)).on('mouseover', curry(dispatchHighlightAction, null, name, api, excludeSeriesId)).on('mouseout', curry(dispatchDownplayAction, null, name, api, excludeSeriesId));\n            legendDrawnMap.set(name, true);\n          }\n        }, this);\n      }\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (!legendDrawnMap.get(name)) {\n          console.warn(name + ' series not exists. Legend data should be same with series name or data name.');\n        }\n      }\n    }, this);\n\n    if (selector) {\n      this._createSelector(selector, legendModel, api, orient, selectorPosition);\n    }\n  };\n\n  LegendView.prototype._createSelector = function (selector, legendModel, api, orient, selectorPosition) {\n    var selectorGroup = this.getSelectorGroup();\n    each(selector, function createSelectorButton(selectorItem) {\n      var type = selectorItem.type;\n      var labelText = new graphic.Text({\n        style: {\n          x: 0,\n          y: 0,\n          align: 'center',\n          verticalAlign: 'middle'\n        },\n        onclick: function () {\n          api.dispatchAction({\n            type: type === 'all' ? 'legendAllSelect' : 'legendInverseSelect'\n          });\n        }\n      });\n      selectorGroup.add(labelText);\n      var labelModel = legendModel.getModel('selectorLabel');\n      var emphasisLabelModel = legendModel.getModel(['emphasis', 'selectorLabel']);\n      setLabelStyle(labelText, {\n        normal: labelModel,\n        emphasis: emphasisLabelModel\n      }, {\n        defaultText: selectorItem.title\n      });\n      enableHoverEmphasis(labelText);\n    });\n  };\n\n  LegendView.prototype._createItem = function (name, dataIndex, itemModel, legendModel, legendSymbolType, symbolType, itemAlign, color, borderColor, decal, selectMode) {\n    var itemWidth = legendModel.get('itemWidth');\n    var itemHeight = legendModel.get('itemHeight');\n    var inactiveColor = legendModel.get('inactiveColor');\n    var inactiveBorderColor = legendModel.get('inactiveBorderColor');\n    var symbolKeepAspect = legendModel.get('symbolKeepAspect');\n    var legendModelItemStyle = legendModel.getModel('itemStyle');\n    var isSelected = legendModel.isSelected(name);\n    var itemGroup = new Group();\n    var textStyleModel = itemModel.getModel('textStyle');\n    var itemIcon = itemModel.get('icon');\n    var tooltipModel = itemModel.getModel('tooltip');\n    var legendGlobalTooltipModel = tooltipModel.parentModel;\n    legendSymbolType = itemIcon || legendSymbolType;\n    var legendSymbol = createSymbol(legendSymbolType, 0, 0, itemWidth, itemHeight, isSelected ? color : inactiveColor, symbolKeepAspect == null ? true : symbolKeepAspect);\n    itemGroup.add(setSymbolStyle(legendSymbol, legendSymbolType, legendModelItemStyle, borderColor, inactiveBorderColor, decal, isSelected));\n\n    if (!itemIcon && symbolType && (symbolType !== legendSymbolType || symbolType === 'none')) {\n      var size = itemHeight * 0.8;\n\n      if (symbolType === 'none') {\n        symbolType = 'circle';\n      }\n\n      var legendSymbolCenter = createSymbol(symbolType, (itemWidth - size) / 2, (itemHeight - size) / 2, size, size, isSelected ? color : inactiveColor, symbolKeepAspect == null ? true : symbolKeepAspect);\n      itemGroup.add(setSymbolStyle(legendSymbolCenter, symbolType, legendModelItemStyle, borderColor, inactiveBorderColor, decal, isSelected));\n    }\n\n    var textX = itemAlign === 'left' ? itemWidth + 5 : -5;\n    var textAlign = itemAlign;\n    var formatter = legendModel.get('formatter');\n    var content = name;\n\n    if (typeof formatter === 'string' && formatter) {\n      content = formatter.replace('{name}', name != null ? name : '');\n    } else if (typeof formatter === 'function') {\n      content = formatter(name);\n    }\n\n    itemGroup.add(new graphic.Text({\n      style: createTextStyle(textStyleModel, {\n        text: content,\n        x: textX,\n        y: itemHeight / 2,\n        fill: isSelected ? textStyleModel.getTextColor() : inactiveColor,\n        align: textAlign,\n        verticalAlign: 'middle'\n      })\n    }));\n    var hitRect = new graphic.Rect({\n      shape: itemGroup.getBoundingRect(),\n      invisible: true\n    });\n\n    if (tooltipModel.get('show')) {\n      var formatterParams = {\n        componentType: 'legend',\n        legendIndex: legendModel.componentIndex,\n        name: name,\n        $vars: ['name']\n      };\n      hitRect.tooltip = zrUtil.extend({\n        content: name,\n        formatter: legendGlobalTooltipModel.get('formatter', true) || function (params) {\n          return params.name;\n        },\n        formatterParams: formatterParams\n      }, tooltipModel.option);\n    }\n\n    itemGroup.add(hitRect);\n    itemGroup.eachChild(function (child) {\n      child.silent = true;\n    });\n    hitRect.silent = !selectMode;\n    this.getContentGroup().add(itemGroup);\n    enableHoverEmphasis(itemGroup);\n    itemGroup.__legendDataIndex = dataIndex;\n    return itemGroup;\n  };\n\n  LegendView.prototype.layoutInner = function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\n    var contentGroup = this.getContentGroup();\n    var selectorGroup = this.getSelectorGroup();\n    layoutUtil.box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), maxSize.width, maxSize.height);\n    var contentRect = contentGroup.getBoundingRect();\n    var contentPos = [-contentRect.x, -contentRect.y];\n    selectorGroup.markRedraw();\n    contentGroup.markRedraw();\n\n    if (selector) {\n      layoutUtil.box('horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\n      var selectorRect = selectorGroup.getBoundingRect();\n      var selectorPos = [-selectorRect.x, -selectorRect.y];\n      var selectorButtonGap = legendModel.get('selectorButtonGap', true);\n      var orientIdx = legendModel.getOrient().index;\n      var wh = orientIdx === 0 ? 'width' : 'height';\n      var hw = orientIdx === 0 ? 'height' : 'width';\n      var yx = orientIdx === 0 ? 'y' : 'x';\n\n      if (selectorPosition === 'end') {\n        selectorPos[orientIdx] += contentRect[wh] + selectorButtonGap;\n      } else {\n        contentPos[orientIdx] += selectorRect[wh] + selectorButtonGap;\n      }\n\n      selectorPos[1 - orientIdx] += contentRect[hw] / 2 - selectorRect[hw] / 2;\n      selectorGroup.x = selectorPos[0];\n      selectorGroup.y = selectorPos[1];\n      contentGroup.x = contentPos[0];\n      contentGroup.y = contentPos[1];\n      var mainRect = {\n        x: 0,\n        y: 0\n      };\n      mainRect[wh] = contentRect[wh] + selectorButtonGap + selectorRect[wh];\n      mainRect[hw] = Math.max(contentRect[hw], selectorRect[hw]);\n      mainRect[yx] = Math.min(0, selectorRect[yx] + selectorPos[1 - orientIdx]);\n      return mainRect;\n    } else {\n      contentGroup.x = contentPos[0];\n      contentGroup.y = contentPos[1];\n      return this.group.getBoundingRect();\n    }\n  };\n\n  LegendView.prototype.remove = function () {\n    this.getContentGroup().removeAll();\n    this._isFirstRender = true;\n  };\n\n  LegendView.type = 'legend.plain';\n  return LegendView;\n}(ComponentView);\n\nfunction setSymbolStyle(symbol, symbolType, legendModelItemStyle, borderColor, inactiveBorderColor, decal, isSelected) {\n  var itemStyle;\n\n  if (symbolType !== 'line' && symbolType.indexOf('empty') < 0) {\n    itemStyle = legendModelItemStyle.getItemStyle();\n    symbol.style.stroke = borderColor;\n    symbol.style.decal = decal;\n\n    if (!isSelected) {\n      itemStyle.stroke = inactiveBorderColor;\n    }\n  } else {\n    itemStyle = legendModelItemStyle.getItemStyle(['borderWidth', 'borderColor']);\n  }\n\n  symbol.setStyle(itemStyle);\n  return symbol;\n}\n\nfunction dispatchSelectAction(seriesName, dataName, api, excludeSeriesId) {\n  dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId);\n  api.dispatchAction({\n    type: 'legendToggleSelect',\n    name: seriesName != null ? seriesName : dataName\n  });\n  dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId);\n}\n\nfunction isUseHoverLayer(api) {\n  var list = api.getZr().storage.getDisplayList();\n  var emphasisState;\n  var i = 0;\n  var len = list.length;\n\n  while (i < len && !(emphasisState = list[i].states.emphasis)) {\n    i++;\n  }\n\n  return emphasisState && emphasisState.hoverLayer;\n}\n\nfunction dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId) {\n  if (!isUseHoverLayer(api)) {\n    api.dispatchAction({\n      type: 'highlight',\n      seriesName: seriesName,\n      name: dataName,\n      excludeSeriesId: excludeSeriesId\n    });\n  }\n}\n\nfunction dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId) {\n  if (!isUseHoverLayer(api)) {\n    api.dispatchAction({\n      type: 'downplay',\n      seriesName: seriesName,\n      name: dataName,\n      excludeSeriesId: excludeSeriesId\n    });\n  }\n}\n\nexport default LegendView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function legendFilter(ecModel) {\n  var legendModels = ecModel.findComponents({\n    mainType: 'legend'\n  });\n\n  if (legendModels && legendModels.length) {\n    ecModel.filterSeries(function (series) {\n      for (var i = 0; i < legendModels.length; i++) {\n        if (!legendModels[i].isSelected(series.name)) {\n          return false;\n        }\n      }\n\n      return true;\n    });\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { curry, each } from 'zrender/lib/core/util';\n\nfunction legendSelectActionHandler(methodName, payload, ecModel) {\n  var selectedMap = {};\n  var isToggleSelect = methodName === 'toggleSelected';\n  var isSelected;\n  ecModel.eachComponent('legend', function (legendModel) {\n    if (isToggleSelect && isSelected != null) {\n      legendModel[isSelected ? 'select' : 'unSelect'](payload.name);\n    } else if (methodName === 'allSelect' || methodName === 'inverseSelect') {\n      legendModel[methodName]();\n    } else {\n      legendModel[methodName](payload.name);\n      isSelected = legendModel.isSelected(payload.name);\n    }\n\n    var legendData = legendModel.getData();\n    each(legendData, function (model) {\n      var name = model.get('name');\n\n      if (name === '\\n' || name === '') {\n        return;\n      }\n\n      var isItemSelected = legendModel.isSelected(name);\n\n      if (selectedMap.hasOwnProperty(name)) {\n        selectedMap[name] = selectedMap[name] && isItemSelected;\n      } else {\n        selectedMap[name] = isItemSelected;\n      }\n    });\n  });\n  return methodName === 'allSelect' || methodName === 'inverseSelect' ? {\n    selected: selectedMap\n  } : {\n    name: payload.name,\n    selected: selectedMap\n  };\n}\n\nexport function installLegendAction(registers) {\n  registers.registerAction('legendToggleSelect', 'legendselectchanged', curry(legendSelectActionHandler, 'toggleSelected'));\n  registers.registerAction('legendAllSelect', 'legendselectall', curry(legendSelectActionHandler, 'allSelect'));\n  registers.registerAction('legendInverseSelect', 'legendinverseselect', curry(legendSelectActionHandler, 'inverseSelect'));\n  registers.registerAction('legendSelect', 'legendselected', curry(legendSelectActionHandler, 'select'));\n  registers.registerAction('legendUnSelect', 'legendunselected', curry(legendSelectActionHandler, 'unSelect'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport LegendModel from './LegendModel';\nimport LegendView from './LegendView';\nimport legendFilter from './legendFilter';\nimport { installLegendAction } from './legendAction';\nexport function install(registers) {\n  registers.registerComponentModel(LegendModel);\n  registers.registerComponentView(LegendView);\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.SERIES_FILTER, legendFilter);\n  registers.registerSubTypeDefaulter('legend', function () {\n    return 'plain';\n  });\n  installLegendAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport LegendModel from './LegendModel';\nimport { mergeLayoutParam, getLayoutParams } from '../../util/layout';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar ScrollableLegendModel = function (_super) {\n  __extends(ScrollableLegendModel, _super);\n\n  function ScrollableLegendModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ScrollableLegendModel.type;\n    return _this;\n  }\n\n  ScrollableLegendModel.prototype.setScrollDataIndex = function (scrollDataIndex) {\n    this.option.scrollDataIndex = scrollDataIndex;\n  };\n\n  ScrollableLegendModel.prototype.init = function (option, parentModel, ecModel) {\n    var inputPositionParams = getLayoutParams(option);\n\n    _super.prototype.init.call(this, option, parentModel, ecModel);\n\n    mergeAndNormalizeLayoutParams(this, option, inputPositionParams);\n  };\n\n  ScrollableLegendModel.prototype.mergeOption = function (option, ecModel) {\n    _super.prototype.mergeOption.call(this, option, ecModel);\n\n    mergeAndNormalizeLayoutParams(this, this.option, option);\n  };\n\n  ScrollableLegendModel.type = 'legend.scroll';\n  ScrollableLegendModel.defaultOption = inheritDefaultOption(LegendModel.defaultOption, {\n    scrollDataIndex: 0,\n    pageButtonItemGap: 5,\n    pageButtonGap: null,\n    pageButtonPosition: 'end',\n    pageFormatter: '{current}/{total}',\n    pageIcons: {\n      horizontal: ['M0,0L12,-10L12,10z', 'M0,0L-12,-10L-12,10z'],\n      vertical: ['M0,0L20,0L10,-20z', 'M0,0L20,0L10,20z']\n    },\n    pageIconColor: '#2f4554',\n    pageIconInactiveColor: '#aaa',\n    pageIconSize: 15,\n    pageTextStyle: {\n      color: '#333'\n    },\n    animationDurationUpdate: 800\n  });\n  return ScrollableLegendModel;\n}(LegendModel);\n\n;\n\nfunction mergeAndNormalizeLayoutParams(legendModel, target, raw) {\n  var orient = legendModel.getOrient();\n  var ignoreSize = [1, 1];\n  ignoreSize[orient.index] = 0;\n  mergeLayoutParam(target, raw, {\n    type: 'box',\n    ignoreSize: !!ignoreSize\n  });\n}\n\nexport default ScrollableLegendModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport * as layoutUtil from '../../util/layout';\nimport LegendView from './LegendView';\nvar Group = graphic.Group;\nvar WH = ['width', 'height'];\nvar XY = ['x', 'y'];\n\nvar ScrollableLegendView = function (_super) {\n  __extends(ScrollableLegendView, _super);\n\n  function ScrollableLegendView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ScrollableLegendView.type;\n    _this.newlineDisabled = true;\n    _this._currentIndex = 0;\n    return _this;\n  }\n\n  ScrollableLegendView.prototype.init = function () {\n    _super.prototype.init.call(this);\n\n    this.group.add(this._containerGroup = new Group());\n\n    this._containerGroup.add(this.getContentGroup());\n\n    this.group.add(this._controllerGroup = new Group());\n  };\n\n  ScrollableLegendView.prototype.resetInner = function () {\n    _super.prototype.resetInner.call(this);\n\n    this._controllerGroup.removeAll();\n\n    this._containerGroup.removeClipPath();\n\n    this._containerGroup.__rectSize = null;\n  };\n\n  ScrollableLegendView.prototype.renderInner = function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\n    var self = this;\n\n    _super.prototype.renderInner.call(this, itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\n\n    var controllerGroup = this._controllerGroup;\n    var pageIconSize = legendModel.get('pageIconSize', true);\n    var pageIconSizeArr = zrUtil.isArray(pageIconSize) ? pageIconSize : [pageIconSize, pageIconSize];\n    createPageButton('pagePrev', 0);\n    var pageTextStyleModel = legendModel.getModel('pageTextStyle');\n    controllerGroup.add(new graphic.Text({\n      name: 'pageText',\n      style: {\n        text: 'xx/xx',\n        fill: pageTextStyleModel.getTextColor(),\n        font: pageTextStyleModel.getFont(),\n        verticalAlign: 'middle',\n        align: 'center'\n      },\n      silent: true\n    }));\n    createPageButton('pageNext', 1);\n\n    function createPageButton(name, iconIdx) {\n      var pageDataIndexName = name + 'DataIndex';\n      var icon = graphic.createIcon(legendModel.get('pageIcons', true)[legendModel.getOrient().name][iconIdx], {\n        onclick: zrUtil.bind(self._pageGo, self, pageDataIndexName, legendModel, api)\n      }, {\n        x: -pageIconSizeArr[0] / 2,\n        y: -pageIconSizeArr[1] / 2,\n        width: pageIconSizeArr[0],\n        height: pageIconSizeArr[1]\n      });\n      icon.name = name;\n      controllerGroup.add(icon);\n    }\n  };\n\n  ScrollableLegendView.prototype.layoutInner = function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\n    var selectorGroup = this.getSelectorGroup();\n    var orientIdx = legendModel.getOrient().index;\n    var wh = WH[orientIdx];\n    var xy = XY[orientIdx];\n    var hw = WH[1 - orientIdx];\n    var yx = XY[1 - orientIdx];\n    selector && layoutUtil.box('horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\n    var selectorButtonGap = legendModel.get('selectorButtonGap', true);\n    var selectorRect = selectorGroup.getBoundingRect();\n    var selectorPos = [-selectorRect.x, -selectorRect.y];\n    var processMaxSize = zrUtil.clone(maxSize);\n    selector && (processMaxSize[wh] = maxSize[wh] - selectorRect[wh] - selectorButtonGap);\n\n    var mainRect = this._layoutContentAndController(legendModel, isFirstRender, processMaxSize, orientIdx, wh, hw, yx, xy);\n\n    if (selector) {\n      if (selectorPosition === 'end') {\n        selectorPos[orientIdx] += mainRect[wh] + selectorButtonGap;\n      } else {\n        var offset = selectorRect[wh] + selectorButtonGap;\n        selectorPos[orientIdx] -= offset;\n        mainRect[xy] -= offset;\n      }\n\n      mainRect[wh] += selectorRect[wh] + selectorButtonGap;\n      selectorPos[1 - orientIdx] += mainRect[yx] + mainRect[hw] / 2 - selectorRect[hw] / 2;\n      mainRect[hw] = Math.max(mainRect[hw], selectorRect[hw]);\n      mainRect[yx] = Math.min(mainRect[yx], selectorRect[yx] + selectorPos[1 - orientIdx]);\n      selectorGroup.x = selectorPos[0];\n      selectorGroup.y = selectorPos[1];\n      selectorGroup.markRedraw();\n    }\n\n    return mainRect;\n  };\n\n  ScrollableLegendView.prototype._layoutContentAndController = function (legendModel, isFirstRender, maxSize, orientIdx, wh, hw, yx, xy) {\n    var contentGroup = this.getContentGroup();\n    var containerGroup = this._containerGroup;\n    var controllerGroup = this._controllerGroup;\n    layoutUtil.box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), !orientIdx ? null : maxSize.width, orientIdx ? null : maxSize.height);\n    layoutUtil.box('horizontal', controllerGroup, legendModel.get('pageButtonItemGap', true));\n    var contentRect = contentGroup.getBoundingRect();\n    var controllerRect = controllerGroup.getBoundingRect();\n    var showController = this._showController = contentRect[wh] > maxSize[wh];\n    var contentPos = [-contentRect.x, -contentRect.y];\n\n    if (!isFirstRender) {\n      contentPos[orientIdx] = contentGroup[xy];\n    }\n\n    var containerPos = [0, 0];\n    var controllerPos = [-controllerRect.x, -controllerRect.y];\n    var pageButtonGap = zrUtil.retrieve2(legendModel.get('pageButtonGap', true), legendModel.get('itemGap', true));\n\n    if (showController) {\n      var pageButtonPosition = legendModel.get('pageButtonPosition', true);\n\n      if (pageButtonPosition === 'end') {\n        controllerPos[orientIdx] += maxSize[wh] - controllerRect[wh];\n      } else {\n        containerPos[orientIdx] += controllerRect[wh] + pageButtonGap;\n      }\n    }\n\n    controllerPos[1 - orientIdx] += contentRect[hw] / 2 - controllerRect[hw] / 2;\n    contentGroup.setPosition(contentPos);\n    containerGroup.setPosition(containerPos);\n    controllerGroup.setPosition(controllerPos);\n    var mainRect = {\n      x: 0,\n      y: 0\n    };\n    mainRect[wh] = showController ? maxSize[wh] : contentRect[wh];\n    mainRect[hw] = Math.max(contentRect[hw], controllerRect[hw]);\n    mainRect[yx] = Math.min(0, controllerRect[yx] + controllerPos[1 - orientIdx]);\n    containerGroup.__rectSize = maxSize[wh];\n\n    if (showController) {\n      var clipShape = {\n        x: 0,\n        y: 0\n      };\n      clipShape[wh] = Math.max(maxSize[wh] - controllerRect[wh] - pageButtonGap, 0);\n      clipShape[hw] = mainRect[hw];\n      containerGroup.setClipPath(new graphic.Rect({\n        shape: clipShape\n      }));\n      containerGroup.__rectSize = clipShape[wh];\n    } else {\n      controllerGroup.eachChild(function (child) {\n        child.attr({\n          invisible: true,\n          silent: true\n        });\n      });\n    }\n\n    var pageInfo = this._getPageInfo(legendModel);\n\n    pageInfo.pageIndex != null && graphic.updateProps(contentGroup, {\n      x: pageInfo.contentPosition[0],\n      y: pageInfo.contentPosition[1]\n    }, showController ? legendModel : null);\n\n    this._updatePageInfoView(legendModel, pageInfo);\n\n    return mainRect;\n  };\n\n  ScrollableLegendView.prototype._pageGo = function (to, legendModel, api) {\n    var scrollDataIndex = this._getPageInfo(legendModel)[to];\n\n    scrollDataIndex != null && api.dispatchAction({\n      type: 'legendScroll',\n      scrollDataIndex: scrollDataIndex,\n      legendId: legendModel.id\n    });\n  };\n\n  ScrollableLegendView.prototype._updatePageInfoView = function (legendModel, pageInfo) {\n    var controllerGroup = this._controllerGroup;\n    zrUtil.each(['pagePrev', 'pageNext'], function (name) {\n      var key = name + 'DataIndex';\n      var canJump = pageInfo[key] != null;\n      var icon = controllerGroup.childOfName(name);\n\n      if (icon) {\n        icon.setStyle('fill', canJump ? legendModel.get('pageIconColor', true) : legendModel.get('pageIconInactiveColor', true));\n        icon.cursor = canJump ? 'pointer' : 'default';\n      }\n    });\n    var pageText = controllerGroup.childOfName('pageText');\n    var pageFormatter = legendModel.get('pageFormatter');\n    var pageIndex = pageInfo.pageIndex;\n    var current = pageIndex != null ? pageIndex + 1 : 0;\n    var total = pageInfo.pageCount;\n    pageText && pageFormatter && pageText.setStyle('text', zrUtil.isString(pageFormatter) ? pageFormatter.replace('{current}', current == null ? '' : current + '').replace('{total}', total == null ? '' : total + '') : pageFormatter({\n      current: current,\n      total: total\n    }));\n  };\n\n  ScrollableLegendView.prototype._getPageInfo = function (legendModel) {\n    var scrollDataIndex = legendModel.get('scrollDataIndex', true);\n    var contentGroup = this.getContentGroup();\n    var containerRectSize = this._containerGroup.__rectSize;\n    var orientIdx = legendModel.getOrient().index;\n    var wh = WH[orientIdx];\n    var xy = XY[orientIdx];\n\n    var targetItemIndex = this._findTargetItemIndex(scrollDataIndex);\n\n    var children = contentGroup.children();\n    var targetItem = children[targetItemIndex];\n    var itemCount = children.length;\n    var pCount = !itemCount ? 0 : 1;\n    var result = {\n      contentPosition: [contentGroup.x, contentGroup.y],\n      pageCount: pCount,\n      pageIndex: pCount - 1,\n      pagePrevDataIndex: null,\n      pageNextDataIndex: null\n    };\n\n    if (!targetItem) {\n      return result;\n    }\n\n    var targetItemInfo = getItemInfo(targetItem);\n    result.contentPosition[orientIdx] = -targetItemInfo.s;\n\n    for (var i = targetItemIndex + 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i <= itemCount; ++i) {\n      currItemInfo = getItemInfo(children[i]);\n\n      if (!currItemInfo && winEndItemInfo.e > winStartItemInfo.s + containerRectSize || currItemInfo && !intersect(currItemInfo, winStartItemInfo.s)) {\n        if (winEndItemInfo.i > winStartItemInfo.i) {\n          winStartItemInfo = winEndItemInfo;\n        } else {\n          winStartItemInfo = currItemInfo;\n        }\n\n        if (winStartItemInfo) {\n          if (result.pageNextDataIndex == null) {\n            result.pageNextDataIndex = winStartItemInfo.i;\n          }\n\n          ++result.pageCount;\n        }\n      }\n\n      winEndItemInfo = currItemInfo;\n    }\n\n    for (var i = targetItemIndex - 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i >= -1; --i) {\n      currItemInfo = getItemInfo(children[i]);\n\n      if ((!currItemInfo || !intersect(winEndItemInfo, currItemInfo.s)) && winStartItemInfo.i < winEndItemInfo.i) {\n        winEndItemInfo = winStartItemInfo;\n\n        if (result.pagePrevDataIndex == null) {\n          result.pagePrevDataIndex = winStartItemInfo.i;\n        }\n\n        ++result.pageCount;\n        ++result.pageIndex;\n      }\n\n      winStartItemInfo = currItemInfo;\n    }\n\n    return result;\n\n    function getItemInfo(el) {\n      if (el) {\n        var itemRect = el.getBoundingRect();\n        var start = itemRect[xy] + el[xy];\n        return {\n          s: start,\n          e: start + itemRect[wh],\n          i: el.__legendDataIndex\n        };\n      }\n    }\n\n    function intersect(itemInfo, winStart) {\n      return itemInfo.e >= winStart && itemInfo.s <= winStart + containerRectSize;\n    }\n  };\n\n  ScrollableLegendView.prototype._findTargetItemIndex = function (targetDataIndex) {\n    if (!this._showController) {\n      return 0;\n    }\n\n    var index;\n    var contentGroup = this.getContentGroup();\n    var defaultIndex;\n    contentGroup.eachChild(function (child, idx) {\n      var legendDataIdx = child.__legendDataIndex;\n\n      if (defaultIndex == null && legendDataIdx != null) {\n        defaultIndex = idx;\n      }\n\n      if (legendDataIdx === targetDataIndex) {\n        index = idx;\n      }\n    });\n    return index != null ? index : defaultIndex;\n  };\n\n  ScrollableLegendView.type = 'legend.scroll';\n  return ScrollableLegendView;\n}(LegendView);\n\nexport default ScrollableLegendView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function installScrollableLegendAction(registers) {\n  registers.registerAction('legendScroll', 'legendscroll', function (payload, ecModel) {\n    var scrollDataIndex = payload.scrollDataIndex;\n    scrollDataIndex != null && ecModel.eachComponent({\n      mainType: 'legend',\n      subType: 'scroll',\n      query: payload\n    }, function (legendModel) {\n      legendModel.setScrollDataIndex(scrollDataIndex);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport { install as installLegendPlain } from './installLegendPlain';\nimport ScrollableLegendModel from './ScrollableLegendModel';\nimport ScrollableLegendView from './ScrollableLegendView';\nimport installScrollableLegendAction from './scrollableLegendAction';\nexport function install(registers) {\n  use(installLegendPlain);\n  registers.registerComponentModel(ScrollableLegendModel);\n  registers.registerComponentView(ScrollableLegendView);\n  installScrollableLegendAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport { install as installLegendPlain } from './installLegendPlain';\nimport { install as installLegendScroll } from './installLegendScroll';\nexport function install(registers) {\n  use(installLegendPlain);\n  use(installLegendScroll);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport DataZoomModel from './DataZoomModel';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar InsideZoomModel = function (_super) {\n  __extends(InsideZoomModel, _super);\n\n  function InsideZoomModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = InsideZoomModel.type;\n    return _this;\n  }\n\n  InsideZoomModel.type = 'dataZoom.inside';\n  InsideZoomModel.defaultOption = inheritDefaultOption(DataZoomModel.defaultOption, {\n    disabled: false,\n    zoomLock: false,\n    zoomOnMouseWheel: true,\n    moveOnMouseMove: true,\n    moveOnMouseWheel: false,\n    preventDefaultMouseMove: true\n  });\n  return InsideZoomModel;\n}(DataZoomModel);\n\nexport default InsideZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Eventful from 'zrender/lib/core/Eventful';\nimport * as eventTool from 'zrender/lib/core/event';\nimport * as interactionMutex from './interactionMutex';\nimport { isString, bind, defaults, clone } from 'zrender/lib/core/util';\n\nvar RoamController = function (_super) {\n  __extends(RoamController, _super);\n\n  function RoamController(zr) {\n    var _this = _super.call(this) || this;\n\n    _this._zr = zr;\n    var mousedownHandler = bind(_this._mousedownHandler, _this);\n    var mousemoveHandler = bind(_this._mousemoveHandler, _this);\n    var mouseupHandler = bind(_this._mouseupHandler, _this);\n    var mousewheelHandler = bind(_this._mousewheelHandler, _this);\n    var pinchHandler = bind(_this._pinchHandler, _this);\n\n    _this.enable = function (controlType, opt) {\n      this.disable();\n      this._opt = defaults(clone(opt) || {}, {\n        zoomOnMouseWheel: true,\n        moveOnMouseMove: true,\n        moveOnMouseWheel: false,\n        preventDefaultMouseMove: true\n      });\n\n      if (controlType == null) {\n        controlType = true;\n      }\n\n      if (controlType === true || controlType === 'move' || controlType === 'pan') {\n        zr.on('mousedown', mousedownHandler);\n        zr.on('mousemove', mousemoveHandler);\n        zr.on('mouseup', mouseupHandler);\n      }\n\n      if (controlType === true || controlType === 'scale' || controlType === 'zoom') {\n        zr.on('mousewheel', mousewheelHandler);\n        zr.on('pinch', pinchHandler);\n      }\n    };\n\n    _this.disable = function () {\n      zr.off('mousedown', mousedownHandler);\n      zr.off('mousemove', mousemoveHandler);\n      zr.off('mouseup', mouseupHandler);\n      zr.off('mousewheel', mousewheelHandler);\n      zr.off('pinch', pinchHandler);\n    };\n\n    return _this;\n  }\n\n  RoamController.prototype.isDragging = function () {\n    return this._dragging;\n  };\n\n  RoamController.prototype.isPinching = function () {\n    return this._pinching;\n  };\n\n  RoamController.prototype.setPointerChecker = function (pointerChecker) {\n    this.pointerChecker = pointerChecker;\n  };\n\n  RoamController.prototype.dispose = function () {\n    this.disable();\n  };\n\n  RoamController.prototype._mousedownHandler = function (e) {\n    if (eventTool.isMiddleOrRightButtonOnMouseUpDown(e) || e.target && e.target.draggable) {\n      return;\n    }\n\n    var x = e.offsetX;\n    var y = e.offsetY;\n\n    if (this.pointerChecker && this.pointerChecker(e, x, y)) {\n      this._x = x;\n      this._y = y;\n      this._dragging = true;\n    }\n  };\n\n  RoamController.prototype._mousemoveHandler = function (e) {\n    if (!this._dragging || !isAvailableBehavior('moveOnMouseMove', e, this._opt) || e.gestureEvent === 'pinch' || interactionMutex.isTaken(this._zr, 'globalPan')) {\n      return;\n    }\n\n    var x = e.offsetX;\n    var y = e.offsetY;\n    var oldX = this._x;\n    var oldY = this._y;\n    var dx = x - oldX;\n    var dy = y - oldY;\n    this._x = x;\n    this._y = y;\n    this._opt.preventDefaultMouseMove && eventTool.stop(e.event);\n    trigger(this, 'pan', 'moveOnMouseMove', e, {\n      dx: dx,\n      dy: dy,\n      oldX: oldX,\n      oldY: oldY,\n      newX: x,\n      newY: y,\n      isAvailableBehavior: null\n    });\n  };\n\n  RoamController.prototype._mouseupHandler = function (e) {\n    if (!eventTool.isMiddleOrRightButtonOnMouseUpDown(e)) {\n      this._dragging = false;\n    }\n  };\n\n  RoamController.prototype._mousewheelHandler = function (e) {\n    var shouldZoom = isAvailableBehavior('zoomOnMouseWheel', e, this._opt);\n    var shouldMove = isAvailableBehavior('moveOnMouseWheel', e, this._opt);\n    var wheelDelta = e.wheelDelta;\n    var absWheelDeltaDelta = Math.abs(wheelDelta);\n    var originX = e.offsetX;\n    var originY = e.offsetY;\n\n    if (wheelDelta === 0 || !shouldZoom && !shouldMove) {\n      return;\n    }\n\n    if (shouldZoom) {\n      var factor = absWheelDeltaDelta > 3 ? 1.4 : absWheelDeltaDelta > 1 ? 1.2 : 1.1;\n      var scale = wheelDelta > 0 ? factor : 1 / factor;\n      checkPointerAndTrigger(this, 'zoom', 'zoomOnMouseWheel', e, {\n        scale: scale,\n        originX: originX,\n        originY: originY,\n        isAvailableBehavior: null\n      });\n    }\n\n    if (shouldMove) {\n      var absDelta = Math.abs(wheelDelta);\n      var scrollDelta = (wheelDelta > 0 ? 1 : -1) * (absDelta > 3 ? 0.4 : absDelta > 1 ? 0.15 : 0.05);\n      checkPointerAndTrigger(this, 'scrollMove', 'moveOnMouseWheel', e, {\n        scrollDelta: scrollDelta,\n        originX: originX,\n        originY: originY,\n        isAvailableBehavior: null\n      });\n    }\n  };\n\n  RoamController.prototype._pinchHandler = function (e) {\n    if (interactionMutex.isTaken(this._zr, 'globalPan')) {\n      return;\n    }\n\n    var scale = e.pinchScale > 1 ? 1.1 : 1 / 1.1;\n    checkPointerAndTrigger(this, 'zoom', null, e, {\n      scale: scale,\n      originX: e.pinchX,\n      originY: e.pinchY,\n      isAvailableBehavior: null\n    });\n  };\n\n  return RoamController;\n}(Eventful);\n\nfunction checkPointerAndTrigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\n  if (controller.pointerChecker && controller.pointerChecker(e, contollerEvent.originX, contollerEvent.originY)) {\n    eventTool.stop(e.event);\n    trigger(controller, eventName, behaviorToCheck, e, contollerEvent);\n  }\n}\n\nfunction trigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\n  contollerEvent.isAvailableBehavior = bind(isAvailableBehavior, null, behaviorToCheck, e);\n  controller.trigger(eventName, contollerEvent);\n}\n\nfunction isAvailableBehavior(behaviorToCheck, e, settings) {\n  var setting = settings[behaviorToCheck];\n  return !behaviorToCheck || setting && (!isString(setting) || e.event[setting + 'Key']);\n}\n\nexport default RoamController;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport RoamController from '../../component/helper/RoamController';\nimport * as throttleUtil from '../../util/throttle';\nimport { makeInner } from '../../util/model';\nimport { each, curry, createHashMap } from 'zrender/lib/core/util';\nimport { collectReferCoordSysModelInfo } from './helper';\nvar inner = makeInner();\nexport function setViewInfoToCoordSysRecord(api, dataZoomModel, getRange) {\n  inner(api).coordSysRecordMap.each(function (coordSysRecord) {\n    var dzInfo = coordSysRecord.dataZoomInfoMap.get(dataZoomModel.uid);\n\n    if (dzInfo) {\n      dzInfo.getRange = getRange;\n    }\n  });\n}\nexport function disposeCoordSysRecordIfNeeded(api, dataZoomModel) {\n  var coordSysRecordMap = inner(api).coordSysRecordMap;\n  var coordSysKeyArr = coordSysRecordMap.keys();\n\n  for (var i = 0; i < coordSysKeyArr.length; i++) {\n    var coordSysKey = coordSysKeyArr[i];\n    var coordSysRecord = coordSysRecordMap.get(coordSysKey);\n    var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap;\n\n    if (dataZoomInfoMap) {\n      var dzUid = dataZoomModel.uid;\n      var dzInfo = dataZoomInfoMap.get(dzUid);\n\n      if (dzInfo) {\n        dataZoomInfoMap.removeKey(dzUid);\n\n        if (!dataZoomInfoMap.keys().length) {\n          disposeCoordSysRecord(coordSysRecordMap, coordSysRecord);\n        }\n      }\n    }\n  }\n}\n\nfunction disposeCoordSysRecord(coordSysRecordMap, coordSysRecord) {\n  if (coordSysRecord) {\n    coordSysRecordMap.removeKey(coordSysRecord.model.uid);\n    var controller = coordSysRecord.controller;\n    controller && controller.dispose();\n  }\n}\n\nfunction createCoordSysRecord(api, coordSysModel) {\n  var coordSysRecord = {\n    model: coordSysModel,\n    containsPoint: curry(containsPoint, coordSysModel),\n    dispatchAction: curry(dispatchAction, api),\n    dataZoomInfoMap: null,\n    controller: null\n  };\n  var controller = coordSysRecord.controller = new RoamController(api.getZr());\n  each(['pan', 'zoom', 'scrollMove'], function (eventName) {\n    controller.on(eventName, function (event) {\n      var batch = [];\n      coordSysRecord.dataZoomInfoMap.each(function (dzInfo) {\n        if (!event.isAvailableBehavior(dzInfo.model.option)) {\n          return;\n        }\n\n        var method = (dzInfo.getRange || {})[eventName];\n        var range = method && method(dzInfo.dzReferCoordSysInfo, coordSysRecord.model.mainType, coordSysRecord.controller, event);\n        !dzInfo.model.get('disabled', true) && range && batch.push({\n          dataZoomId: dzInfo.model.id,\n          start: range[0],\n          end: range[1]\n        });\n      });\n      batch.length && coordSysRecord.dispatchAction(batch);\n    });\n  });\n  return coordSysRecord;\n}\n\nfunction dispatchAction(api, batch) {\n  api.dispatchAction({\n    type: 'dataZoom',\n    animation: {\n      easing: 'cubicOut',\n      duration: 100\n    },\n    batch: batch\n  });\n}\n\nfunction containsPoint(coordSysModel, e, x, y) {\n  return coordSysModel.coordinateSystem.containPoint([x, y]);\n}\n\nfunction mergeControllerParams(dataZoomInfoMap) {\n  var controlType;\n  var prefix = 'type_';\n  var typePriority = {\n    'type_true': 2,\n    'type_move': 1,\n    'type_false': 0,\n    'type_undefined': -1\n  };\n  var preventDefaultMouseMove = true;\n  dataZoomInfoMap.each(function (dataZoomInfo) {\n    var dataZoomModel = dataZoomInfo.model;\n    var oneType = dataZoomModel.get('disabled', true) ? false : dataZoomModel.get('zoomLock', true) ? 'move' : true;\n\n    if (typePriority[prefix + oneType] > typePriority[prefix + controlType]) {\n      controlType = oneType;\n    }\n\n    preventDefaultMouseMove = preventDefaultMouseMove && dataZoomModel.get('preventDefaultMouseMove', true);\n  });\n  return {\n    controlType: controlType,\n    opt: {\n      zoomOnMouseWheel: true,\n      moveOnMouseMove: true,\n      moveOnMouseWheel: true,\n      preventDefaultMouseMove: !!preventDefaultMouseMove\n    }\n  };\n}\n\nexport function installDataZoomRoamProcessor(registers) {\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.FILTER, function (ecModel, api) {\n    var apiInner = inner(api);\n    var coordSysRecordMap = apiInner.coordSysRecordMap || (apiInner.coordSysRecordMap = createHashMap());\n    coordSysRecordMap.each(function (coordSysRecord) {\n      coordSysRecord.dataZoomInfoMap = null;\n    });\n    ecModel.eachComponent({\n      mainType: 'dataZoom',\n      subType: 'inside'\n    }, function (dataZoomModel) {\n      var dzReferCoordSysWrap = collectReferCoordSysModelInfo(dataZoomModel);\n      each(dzReferCoordSysWrap.infoList, function (dzCoordSysInfo) {\n        var coordSysUid = dzCoordSysInfo.model.uid;\n        var coordSysRecord = coordSysRecordMap.get(coordSysUid) || coordSysRecordMap.set(coordSysUid, createCoordSysRecord(api, dzCoordSysInfo.model));\n        var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap || (coordSysRecord.dataZoomInfoMap = createHashMap());\n        dataZoomInfoMap.set(dataZoomModel.uid, {\n          dzReferCoordSysInfo: dzCoordSysInfo,\n          model: dataZoomModel,\n          getRange: null\n        });\n      });\n    });\n    coordSysRecordMap.each(function (coordSysRecord) {\n      var controller = coordSysRecord.controller;\n      var firstDzInfo;\n      var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap;\n\n      if (dataZoomInfoMap) {\n        var firstDzKey = dataZoomInfoMap.keys()[0];\n\n        if (firstDzKey != null) {\n          firstDzInfo = dataZoomInfoMap.get(firstDzKey);\n        }\n      }\n\n      if (!firstDzInfo) {\n        disposeCoordSysRecord(coordSysRecordMap, coordSysRecord);\n        return;\n      }\n\n      var controllerParams = mergeControllerParams(dataZoomInfoMap);\n      controller.enable(controllerParams.controlType, controllerParams.opt);\n      controller.setPointerChecker(coordSysRecord.containsPoint);\n      throttleUtil.createOrUpdate(coordSysRecord, 'dispatchAction', firstDzInfo.model.get('throttle', true), 'fixRate');\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport DataZoomView from './DataZoomView';\nimport sliderMove from '../helper/sliderMove';\nimport * as roams from './roams';\nimport { bind } from 'zrender/lib/core/util';\n\nvar InsideZoomView = function (_super) {\n  __extends(InsideZoomView, _super);\n\n  function InsideZoomView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'dataZoom.inside';\n    return _this;\n  }\n\n  InsideZoomView.prototype.render = function (dataZoomModel, ecModel, api) {\n    _super.prototype.render.apply(this, arguments);\n\n    if (dataZoomModel.noTarget()) {\n      this._clear();\n\n      return;\n    }\n\n    this.range = dataZoomModel.getPercentRange();\n    roams.setViewInfoToCoordSysRecord(api, dataZoomModel, {\n      pan: bind(getRangeHandlers.pan, this),\n      zoom: bind(getRangeHandlers.zoom, this),\n      scrollMove: bind(getRangeHandlers.scrollMove, this)\n    });\n  };\n\n  InsideZoomView.prototype.dispose = function () {\n    this._clear();\n\n    _super.prototype.dispose.apply(this, arguments);\n  };\n\n  InsideZoomView.prototype._clear = function () {\n    roams.disposeCoordSysRecordIfNeeded(this.api, this.dataZoomModel);\n    this.range = null;\n  };\n\n  InsideZoomView.type = 'dataZoom.inside';\n  return InsideZoomView;\n}(DataZoomView);\n\nvar getRangeHandlers = {\n  zoom: function (coordSysInfo, coordSysMainType, controller, e) {\n    var lastRange = this.range;\n    var range = lastRange.slice();\n    var axisModel = coordSysInfo.axisModels[0];\n\n    if (!axisModel) {\n      return;\n    }\n\n    var directionInfo = getDirectionInfo[coordSysMainType](null, [e.originX, e.originY], axisModel, controller, coordSysInfo);\n    var percentPoint = (directionInfo.signal > 0 ? directionInfo.pixelStart + directionInfo.pixelLength - directionInfo.pixel : directionInfo.pixel - directionInfo.pixelStart) / directionInfo.pixelLength * (range[1] - range[0]) + range[0];\n    var scale = Math.max(1 / e.scale, 0);\n    range[0] = (range[0] - percentPoint) * scale + percentPoint;\n    range[1] = (range[1] - percentPoint) * scale + percentPoint;\n    var minMaxSpan = this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\n    sliderMove(0, range, [0, 100], 0, minMaxSpan.minSpan, minMaxSpan.maxSpan);\n    this.range = range;\n\n    if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\n      return range;\n    }\n  },\n  pan: makeMover(function (range, axisModel, coordSysInfo, coordSysMainType, controller, e) {\n    var directionInfo = getDirectionInfo[coordSysMainType]([e.oldX, e.oldY], [e.newX, e.newY], axisModel, controller, coordSysInfo);\n    return directionInfo.signal * (range[1] - range[0]) * directionInfo.pixel / directionInfo.pixelLength;\n  }),\n  scrollMove: makeMover(function (range, axisModel, coordSysInfo, coordSysMainType, controller, e) {\n    var directionInfo = getDirectionInfo[coordSysMainType]([0, 0], [e.scrollDelta, e.scrollDelta], axisModel, controller, coordSysInfo);\n    return directionInfo.signal * (range[1] - range[0]) * e.scrollDelta;\n  })\n};\n\nfunction makeMover(getPercentDelta) {\n  return function (coordSysInfo, coordSysMainType, controller, e) {\n    var lastRange = this.range;\n    var range = lastRange.slice();\n    var axisModel = coordSysInfo.axisModels[0];\n\n    if (!axisModel) {\n      return;\n    }\n\n    var percentDelta = getPercentDelta(range, axisModel, coordSysInfo, coordSysMainType, controller, e);\n    sliderMove(percentDelta, range, [0, 100], 'all');\n    this.range = range;\n\n    if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\n      return range;\n    }\n  };\n}\n\nvar getDirectionInfo = {\n  grid: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\n    var axis = axisModel.axis;\n    var ret = {};\n    var rect = coordSysInfo.model.coordinateSystem.getRect();\n    oldPoint = oldPoint || [0, 0];\n\n    if (axis.dim === 'x') {\n      ret.pixel = newPoint[0] - oldPoint[0];\n      ret.pixelLength = rect.width;\n      ret.pixelStart = rect.x;\n      ret.signal = axis.inverse ? 1 : -1;\n    } else {\n      ret.pixel = newPoint[1] - oldPoint[1];\n      ret.pixelLength = rect.height;\n      ret.pixelStart = rect.y;\n      ret.signal = axis.inverse ? -1 : 1;\n    }\n\n    return ret;\n  },\n  polar: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\n    var axis = axisModel.axis;\n    var ret = {};\n    var polar = coordSysInfo.model.coordinateSystem;\n    var radiusExtent = polar.getRadiusAxis().getExtent();\n    var angleExtent = polar.getAngleAxis().getExtent();\n    oldPoint = oldPoint ? polar.pointToCoord(oldPoint) : [0, 0];\n    newPoint = polar.pointToCoord(newPoint);\n\n    if (axisModel.mainType === 'radiusAxis') {\n      ret.pixel = newPoint[0] - oldPoint[0];\n      ret.pixelLength = radiusExtent[1] - radiusExtent[0];\n      ret.pixelStart = radiusExtent[0];\n      ret.signal = axis.inverse ? 1 : -1;\n    } else {\n      ret.pixel = newPoint[1] - oldPoint[1];\n      ret.pixelLength = angleExtent[1] - angleExtent[0];\n      ret.pixelStart = angleExtent[0];\n      ret.signal = axis.inverse ? -1 : 1;\n    }\n\n    return ret;\n  },\n  singleAxis: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\n    var axis = axisModel.axis;\n    var rect = coordSysInfo.model.coordinateSystem.getRect();\n    var ret = {};\n    oldPoint = oldPoint || [0, 0];\n\n    if (axis.orient === 'horizontal') {\n      ret.pixel = newPoint[0] - oldPoint[0];\n      ret.pixelLength = rect.width;\n      ret.pixelStart = rect.x;\n      ret.signal = axis.inverse ? 1 : -1;\n    } else {\n      ret.pixel = newPoint[1] - oldPoint[1];\n      ret.pixelLength = rect.height;\n      ret.pixelStart = rect.y;\n      ret.signal = axis.inverse ? -1 : 1;\n    }\n\n    return ret;\n  }\n};\nexport default InsideZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport InsideZoomModel from './InsideZoomModel';\nimport InsideZoomView from './InsideZoomView';\nimport { installDataZoomRoamProcessor } from './roams';\nimport installCommon from './installCommon';\nexport function install(registers) {\n  installCommon(registers);\n  registers.registerComponentModel(InsideZoomModel);\n  registers.registerComponentView(InsideZoomView);\n  installDataZoomRoamProcessor(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport DataZoomModel from './DataZoomModel';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar SliderZoomModel = function (_super) {\n  __extends(SliderZoomModel, _super);\n\n  function SliderZoomModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SliderZoomModel.type;\n    return _this;\n  }\n\n  SliderZoomModel.type = 'dataZoom.slider';\n  SliderZoomModel.layoutMode = 'box';\n  SliderZoomModel.defaultOption = inheritDefaultOption(DataZoomModel.defaultOption, {\n    show: true,\n    right: 'ph',\n    top: 'ph',\n    width: 'ph',\n    height: 'ph',\n    left: null,\n    bottom: null,\n    borderColor: '#d2dbee',\n    borderRadius: 3,\n    backgroundColor: 'rgba(47,69,84,0)',\n    dataBackground: {\n      lineStyle: {\n        color: '#d2dbee',\n        width: 0.5\n      },\n      areaStyle: {\n        color: '#d2dbee',\n        opacity: 0.2\n      }\n    },\n    selectedDataBackground: {\n      lineStyle: {\n        color: '#8fb0f7',\n        width: 0.5\n      },\n      areaStyle: {\n        color: '#8fb0f7',\n        opacity: 0.2\n      }\n    },\n    fillerColor: 'rgba(135,175,274,0.2)',\n    handleIcon: 'path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z',\n    handleSize: '100%',\n    handleStyle: {\n      color: '#fff',\n      borderColor: '#ACB8D1'\n    },\n    moveHandleSize: 7,\n    moveHandleIcon: 'path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z',\n    moveHandleStyle: {\n      color: '#D2DBEE',\n      opacity: 0.7\n    },\n    showDetail: true,\n    showDataShadow: 'auto',\n    realtime: true,\n    zoomLock: false,\n    textStyle: {\n      color: '#6E7079'\n    },\n    brushSelect: true,\n    brushStyle: {\n      color: 'rgba(135,175,274,0.15)'\n    },\n    emphasis: {\n      handleStyle: {\n        borderColor: '#8FB0F7'\n      },\n      moveHandleStyle: {\n        color: '#8FB0F7'\n      }\n    }\n  });\n  return SliderZoomModel;\n}(DataZoomModel);\n\nexport default SliderZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { bind, each, isFunction, isString, indexOf } from 'zrender/lib/core/util';\nimport * as eventTool from 'zrender/lib/core/event';\nimport * as graphic from '../../util/graphic';\nimport * as throttle from '../../util/throttle';\nimport DataZoomView from './DataZoomView';\nimport { linearMap, asc, parsePercent } from '../../util/number';\nimport * as layout from '../../util/layout';\nimport sliderMove from '../helper/sliderMove';\nimport { getAxisMainType, collectReferCoordSysModelInfo } from './helper';\nimport { enableHoverEmphasis } from '../../util/states';\nimport { createSymbol, symbolBuildProxies } from '../../util/symbol';\nimport { deprecateLog } from '../../util/log';\nvar Rect = graphic.Rect;\nvar DEFAULT_LOCATION_EDGE_GAP = 7;\nvar DEFAULT_FRAME_BORDER_WIDTH = 1;\nvar DEFAULT_FILLER_SIZE = 30;\nvar DEFAULT_MOVE_HANDLE_SIZE = 7;\nvar HORIZONTAL = 'horizontal';\nvar VERTICAL = 'vertical';\nvar LABEL_GAP = 5;\nvar SHOW_DATA_SHADOW_SERIES_TYPE = ['line', 'bar', 'candlestick', 'scatter'];\nvar REALTIME_ANIMATION_CONFIG = {\n  easing: 'cubicOut',\n  duration: 100\n};\n\nvar SliderZoomView = function (_super) {\n  __extends(SliderZoomView, _super);\n\n  function SliderZoomView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SliderZoomView.type;\n    _this._displayables = {};\n    return _this;\n  }\n\n  SliderZoomView.prototype.init = function (ecModel, api) {\n    this.api = api;\n    this._onBrush = bind(this._onBrush, this);\n    this._onBrushEnd = bind(this._onBrushEnd, this);\n  };\n\n  SliderZoomView.prototype.render = function (dataZoomModel, ecModel, api, payload) {\n    _super.prototype.render.apply(this, arguments);\n\n    throttle.createOrUpdate(this, '_dispatchZoomAction', dataZoomModel.get('throttle'), 'fixRate');\n    this._orient = dataZoomModel.getOrient();\n\n    if (dataZoomModel.get('show') === false) {\n      this.group.removeAll();\n      return;\n    }\n\n    if (dataZoomModel.noTarget()) {\n      this._clear();\n\n      this.group.removeAll();\n      return;\n    }\n\n    if (!payload || payload.type !== 'dataZoom' || payload.from !== this.uid) {\n      this._buildView();\n    }\n\n    this._updateView();\n  };\n\n  SliderZoomView.prototype.dispose = function () {\n    this._clear();\n\n    _super.prototype.dispose.apply(this, arguments);\n  };\n\n  SliderZoomView.prototype._clear = function () {\n    throttle.clear(this, '_dispatchZoomAction');\n    var zr = this.api.getZr();\n    zr.off('mousemove', this._onBrush);\n    zr.off('mouseup', this._onBrushEnd);\n  };\n\n  SliderZoomView.prototype._buildView = function () {\n    var thisGroup = this.group;\n    thisGroup.removeAll();\n    this._brushing = false;\n    this._displayables.brushRect = null;\n\n    this._resetLocation();\n\n    this._resetInterval();\n\n    var barGroup = this._displayables.sliderGroup = new graphic.Group();\n\n    this._renderBackground();\n\n    this._renderHandle();\n\n    this._renderDataShadow();\n\n    thisGroup.add(barGroup);\n\n    this._positionGroup();\n  };\n\n  SliderZoomView.prototype._resetLocation = function () {\n    var dataZoomModel = this.dataZoomModel;\n    var api = this.api;\n    var showMoveHandle = dataZoomModel.get('brushSelect');\n    var moveHandleSize = showMoveHandle ? DEFAULT_MOVE_HANDLE_SIZE : 0;\n\n    var coordRect = this._findCoordRect();\n\n    var ecSize = {\n      width: api.getWidth(),\n      height: api.getHeight()\n    };\n    var positionInfo = this._orient === HORIZONTAL ? {\n      right: ecSize.width - coordRect.x - coordRect.width,\n      top: ecSize.height - DEFAULT_FILLER_SIZE - DEFAULT_LOCATION_EDGE_GAP - moveHandleSize,\n      width: coordRect.width,\n      height: DEFAULT_FILLER_SIZE\n    } : {\n      right: DEFAULT_LOCATION_EDGE_GAP,\n      top: coordRect.y,\n      width: DEFAULT_FILLER_SIZE,\n      height: coordRect.height\n    };\n    var layoutParams = layout.getLayoutParams(dataZoomModel.option);\n    each(['right', 'top', 'width', 'height'], function (name) {\n      if (layoutParams[name] === 'ph') {\n        layoutParams[name] = positionInfo[name];\n      }\n    });\n    var layoutRect = layout.getLayoutRect(layoutParams, ecSize);\n    this._location = {\n      x: layoutRect.x,\n      y: layoutRect.y\n    };\n    this._size = [layoutRect.width, layoutRect.height];\n    this._orient === VERTICAL && this._size.reverse();\n  };\n\n  SliderZoomView.prototype._positionGroup = function () {\n    var thisGroup = this.group;\n    var location = this._location;\n    var orient = this._orient;\n    var targetAxisModel = this.dataZoomModel.getFirstTargetAxisModel();\n    var inverse = targetAxisModel && targetAxisModel.get('inverse');\n    var sliderGroup = this._displayables.sliderGroup;\n    var otherAxisInverse = (this._dataShadowInfo || {}).otherAxisInverse;\n    sliderGroup.attr(orient === HORIZONTAL && !inverse ? {\n      scaleY: otherAxisInverse ? 1 : -1,\n      scaleX: 1\n    } : orient === HORIZONTAL && inverse ? {\n      scaleY: otherAxisInverse ? 1 : -1,\n      scaleX: -1\n    } : orient === VERTICAL && !inverse ? {\n      scaleY: otherAxisInverse ? -1 : 1,\n      scaleX: 1,\n      rotation: Math.PI / 2\n    } : {\n      scaleY: otherAxisInverse ? -1 : 1,\n      scaleX: -1,\n      rotation: Math.PI / 2\n    });\n    var rect = thisGroup.getBoundingRect([sliderGroup]);\n    thisGroup.x = location.x - rect.x;\n    thisGroup.y = location.y - rect.y;\n    thisGroup.markRedraw();\n  };\n\n  SliderZoomView.prototype._getViewExtent = function () {\n    return [0, this._size[0]];\n  };\n\n  SliderZoomView.prototype._renderBackground = function () {\n    var dataZoomModel = this.dataZoomModel;\n    var size = this._size;\n    var barGroup = this._displayables.sliderGroup;\n    var brushSelect = dataZoomModel.get('brushSelect');\n    barGroup.add(new Rect({\n      silent: true,\n      shape: {\n        x: 0,\n        y: 0,\n        width: size[0],\n        height: size[1]\n      },\n      style: {\n        fill: dataZoomModel.get('backgroundColor')\n      },\n      z2: -40\n    }));\n    var clickPanel = new Rect({\n      shape: {\n        x: 0,\n        y: 0,\n        width: size[0],\n        height: size[1]\n      },\n      style: {\n        fill: 'transparent'\n      },\n      z2: 0,\n      onclick: bind(this._onClickPanel, this)\n    });\n    var zr = this.api.getZr();\n\n    if (brushSelect) {\n      clickPanel.on('mousedown', this._onBrushStart, this);\n      clickPanel.cursor = 'crosshair';\n      zr.on('mousemove', this._onBrush);\n      zr.on('mouseup', this._onBrushEnd);\n    } else {\n      zr.off('mousemove', this._onBrush);\n      zr.off('mouseup', this._onBrushEnd);\n    }\n\n    barGroup.add(clickPanel);\n  };\n\n  SliderZoomView.prototype._renderDataShadow = function () {\n    var info = this._dataShadowInfo = this._prepareDataShadowInfo();\n\n    this._displayables.dataShadowSegs = [];\n\n    if (!info) {\n      return;\n    }\n\n    var size = this._size;\n    var seriesModel = info.series;\n    var data = seriesModel.getRawData();\n    var otherDim = seriesModel.getShadowDim ? seriesModel.getShadowDim() : info.otherDim;\n\n    if (otherDim == null) {\n      return;\n    }\n\n    var otherDataExtent = data.getDataExtent(otherDim);\n    var otherOffset = (otherDataExtent[1] - otherDataExtent[0]) * 0.3;\n    otherDataExtent = [otherDataExtent[0] - otherOffset, otherDataExtent[1] + otherOffset];\n    var otherShadowExtent = [0, size[1]];\n    var thisShadowExtent = [0, size[0]];\n    var areaPoints = [[size[0], 0], [0, 0]];\n    var linePoints = [];\n    var step = thisShadowExtent[1] / (data.count() - 1);\n    var thisCoord = 0;\n    var stride = Math.round(data.count() / size[0]);\n    var lastIsEmpty;\n    data.each([otherDim], function (value, index) {\n      if (stride > 0 && index % stride) {\n        thisCoord += step;\n        return;\n      }\n\n      var isEmpty = value == null || isNaN(value) || value === '';\n      var otherCoord = isEmpty ? 0 : linearMap(value, otherDataExtent, otherShadowExtent, true);\n\n      if (isEmpty && !lastIsEmpty && index) {\n        areaPoints.push([areaPoints[areaPoints.length - 1][0], 0]);\n        linePoints.push([linePoints[linePoints.length - 1][0], 0]);\n      } else if (!isEmpty && lastIsEmpty) {\n        areaPoints.push([thisCoord, 0]);\n        linePoints.push([thisCoord, 0]);\n      }\n\n      areaPoints.push([thisCoord, otherCoord]);\n      linePoints.push([thisCoord, otherCoord]);\n      thisCoord += step;\n      lastIsEmpty = isEmpty;\n    });\n    var dataZoomModel = this.dataZoomModel;\n\n    function createDataShadowGroup(isSelectedArea) {\n      var model = dataZoomModel.getModel(isSelectedArea ? 'selectedDataBackground' : 'dataBackground');\n      var group = new graphic.Group();\n      var polygon = new graphic.Polygon({\n        shape: {\n          points: areaPoints\n        },\n        segmentIgnoreThreshold: 1,\n        style: model.getModel('areaStyle').getAreaStyle(),\n        silent: true,\n        z2: -20\n      });\n      var polyline = new graphic.Polyline({\n        shape: {\n          points: linePoints\n        },\n        segmentIgnoreThreshold: 1,\n        style: model.getModel('lineStyle').getLineStyle(),\n        silent: true,\n        z2: -19\n      });\n      group.add(polygon);\n      group.add(polyline);\n      return group;\n    }\n\n    for (var i = 0; i < 3; i++) {\n      var group = createDataShadowGroup(i === 1);\n\n      this._displayables.sliderGroup.add(group);\n\n      this._displayables.dataShadowSegs.push(group);\n    }\n  };\n\n  SliderZoomView.prototype._prepareDataShadowInfo = function () {\n    var dataZoomModel = this.dataZoomModel;\n    var showDataShadow = dataZoomModel.get('showDataShadow');\n\n    if (showDataShadow === false) {\n      return;\n    }\n\n    var result;\n    var ecModel = this.ecModel;\n    dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n      var seriesModels = dataZoomModel.getAxisProxy(axisDim, axisIndex).getTargetSeriesModels();\n      each(seriesModels, function (seriesModel) {\n        if (result) {\n          return;\n        }\n\n        if (showDataShadow !== true && indexOf(SHOW_DATA_SHADOW_SERIES_TYPE, seriesModel.get('type')) < 0) {\n          return;\n        }\n\n        var thisAxis = ecModel.getComponent(getAxisMainType(axisDim), axisIndex).axis;\n        var otherDim = getOtherDim(axisDim);\n        var otherAxisInverse;\n        var coordSys = seriesModel.coordinateSystem;\n\n        if (otherDim != null && coordSys.getOtherAxis) {\n          otherAxisInverse = coordSys.getOtherAxis(thisAxis).inverse;\n        }\n\n        otherDim = seriesModel.getData().mapDimension(otherDim);\n        result = {\n          thisAxis: thisAxis,\n          series: seriesModel,\n          thisDim: axisDim,\n          otherDim: otherDim,\n          otherAxisInverse: otherAxisInverse\n        };\n      }, this);\n    }, this);\n    return result;\n  };\n\n  SliderZoomView.prototype._renderHandle = function () {\n    var thisGroup = this.group;\n    var displayables = this._displayables;\n    var handles = displayables.handles = [null, null];\n    var handleLabels = displayables.handleLabels = [null, null];\n    var sliderGroup = this._displayables.sliderGroup;\n    var size = this._size;\n    var dataZoomModel = this.dataZoomModel;\n    var api = this.api;\n    var borderRadius = dataZoomModel.get('borderRadius') || 0;\n    var brushSelect = dataZoomModel.get('brushSelect');\n    var filler = displayables.filler = new Rect({\n      silent: brushSelect,\n      style: {\n        fill: dataZoomModel.get('fillerColor')\n      },\n      textConfig: {\n        position: 'inside'\n      }\n    });\n    sliderGroup.add(filler);\n    sliderGroup.add(new Rect({\n      silent: true,\n      subPixelOptimize: true,\n      shape: {\n        x: 0,\n        y: 0,\n        width: size[0],\n        height: size[1],\n        r: borderRadius\n      },\n      style: {\n        stroke: dataZoomModel.get('dataBackgroundColor') || dataZoomModel.get('borderColor'),\n        lineWidth: DEFAULT_FRAME_BORDER_WIDTH,\n        fill: 'rgba(0,0,0,0)'\n      }\n    }));\n    each([0, 1], function (handleIndex) {\n      var iconStr = dataZoomModel.get('handleIcon');\n\n      if (!symbolBuildProxies[iconStr] && iconStr.indexOf('path://') < 0) {\n        iconStr = 'path://' + iconStr;\n\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateLog('handleIcon now needs \\'path://\\' prefix when using a path string');\n        }\n      }\n\n      var path = createSymbol(iconStr, -1, 0, 2, 2, null, true);\n      path.attr({\n        cursor: getCursor(this._orient),\n        draggable: true,\n        drift: bind(this._onDragMove, this, handleIndex),\n        ondragend: bind(this._onDragEnd, this),\n        onmouseover: bind(this._showDataInfo, this, true),\n        onmouseout: bind(this._showDataInfo, this, false),\n        z2: 5\n      });\n      var bRect = path.getBoundingRect();\n      var handleSize = dataZoomModel.get('handleSize');\n      this._handleHeight = parsePercent(handleSize, this._size[1]);\n      this._handleWidth = bRect.width / bRect.height * this._handleHeight;\n      path.setStyle(dataZoomModel.getModel('handleStyle').getItemStyle());\n      path.style.strokeNoScale = true;\n      path.rectHover = true;\n      path.ensureState('emphasis').style = dataZoomModel.getModel(['emphasis', 'handleStyle']).getItemStyle();\n      enableHoverEmphasis(path);\n      var handleColor = dataZoomModel.get('handleColor');\n\n      if (handleColor != null) {\n        path.style.fill = handleColor;\n      }\n\n      sliderGroup.add(handles[handleIndex] = path);\n      var textStyleModel = dataZoomModel.getModel('textStyle');\n      thisGroup.add(handleLabels[handleIndex] = new graphic.Text({\n        silent: true,\n        invisible: true,\n        style: {\n          x: 0,\n          y: 0,\n          text: '',\n          verticalAlign: 'middle',\n          align: 'center',\n          fill: textStyleModel.getTextColor(),\n          font: textStyleModel.getFont()\n        },\n        z2: 10\n      }));\n    }, this);\n    var actualMoveZone = filler;\n\n    if (brushSelect) {\n      var moveHandleHeight = parsePercent(dataZoomModel.get('moveHandleSize'), size[1]);\n      var moveHandle_1 = displayables.moveHandle = new graphic.Rect({\n        style: dataZoomModel.getModel('moveHandleStyle').getItemStyle(),\n        silent: true,\n        shape: {\n          r: [0, 0, 2, 2],\n          y: size[1] - 0.5,\n          height: moveHandleHeight\n        }\n      });\n      var iconSize = moveHandleHeight * 0.8;\n      var moveHandleIcon = displayables.moveHandleIcon = createSymbol(dataZoomModel.get('moveHandleIcon'), -iconSize / 2, -iconSize / 2, iconSize, iconSize, '#fff', true);\n      moveHandleIcon.silent = true;\n      moveHandleIcon.y = size[1] + moveHandleHeight / 2 - 0.5;\n      moveHandle_1.ensureState('emphasis').style = dataZoomModel.getModel(['emphasis', 'moveHandleStyle']).getItemStyle();\n      var moveZoneExpandSize = Math.min(size[1] / 2, Math.max(moveHandleHeight, 10));\n      actualMoveZone = displayables.moveZone = new graphic.Rect({\n        invisible: true,\n        shape: {\n          y: size[1] - moveZoneExpandSize,\n          height: moveHandleHeight + moveZoneExpandSize\n        }\n      });\n      actualMoveZone.on('mouseover', function () {\n        api.enterEmphasis(moveHandle_1);\n      }).on('mouseout', function () {\n        api.leaveEmphasis(moveHandle_1);\n      });\n      sliderGroup.add(moveHandle_1);\n      sliderGroup.add(moveHandleIcon);\n      sliderGroup.add(actualMoveZone);\n    }\n\n    actualMoveZone.attr({\n      draggable: true,\n      cursor: getCursor(this._orient),\n      drift: bind(this._onDragMove, this, 'all'),\n      ondragstart: bind(this._showDataInfo, this, true),\n      ondragend: bind(this._onDragEnd, this),\n      onmouseover: bind(this._showDataInfo, this, true),\n      onmouseout: bind(this._showDataInfo, this, false)\n    });\n  };\n\n  SliderZoomView.prototype._resetInterval = function () {\n    var range = this._range = this.dataZoomModel.getPercentRange();\n\n    var viewExtent = this._getViewExtent();\n\n    this._handleEnds = [linearMap(range[0], [0, 100], viewExtent, true), linearMap(range[1], [0, 100], viewExtent, true)];\n  };\n\n  SliderZoomView.prototype._updateInterval = function (handleIndex, delta) {\n    var dataZoomModel = this.dataZoomModel;\n    var handleEnds = this._handleEnds;\n\n    var viewExtend = this._getViewExtent();\n\n    var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\n    var percentExtent = [0, 100];\n    sliderMove(delta, handleEnds, viewExtend, dataZoomModel.get('zoomLock') ? 'all' : handleIndex, minMaxSpan.minSpan != null ? linearMap(minMaxSpan.minSpan, percentExtent, viewExtend, true) : null, minMaxSpan.maxSpan != null ? linearMap(minMaxSpan.maxSpan, percentExtent, viewExtend, true) : null);\n    var lastRange = this._range;\n    var range = this._range = asc([linearMap(handleEnds[0], viewExtend, percentExtent, true), linearMap(handleEnds[1], viewExtend, percentExtent, true)]);\n    return !lastRange || lastRange[0] !== range[0] || lastRange[1] !== range[1];\n  };\n\n  SliderZoomView.prototype._updateView = function (nonRealtime) {\n    var displaybles = this._displayables;\n    var handleEnds = this._handleEnds;\n    var handleInterval = asc(handleEnds.slice());\n    var size = this._size;\n    each([0, 1], function (handleIndex) {\n      var handle = displaybles.handles[handleIndex];\n      var handleHeight = this._handleHeight;\n      handle.attr({\n        scaleX: handleHeight / 2,\n        scaleY: handleHeight / 2,\n        x: handleEnds[handleIndex] + (handleIndex ? -1 : 1),\n        y: size[1] / 2 - handleHeight / 2\n      });\n    }, this);\n    displaybles.filler.setShape({\n      x: handleInterval[0],\n      y: 0,\n      width: handleInterval[1] - handleInterval[0],\n      height: size[1]\n    });\n    var viewExtent = {\n      x: handleInterval[0],\n      width: handleInterval[1] - handleInterval[0]\n    };\n\n    if (displaybles.moveHandle) {\n      displaybles.moveHandle.setShape(viewExtent);\n      displaybles.moveZone.setShape(viewExtent);\n      displaybles.moveZone.getBoundingRect();\n      displaybles.moveHandleIcon && displaybles.moveHandleIcon.attr('x', viewExtent.x + viewExtent.width / 2);\n    }\n\n    var dataShadowSegs = displaybles.dataShadowSegs;\n    var segIntervals = [0, handleInterval[0], handleInterval[1], size[0]];\n\n    for (var i = 0; i < dataShadowSegs.length; i++) {\n      var segGroup = dataShadowSegs[i];\n      var clipPath = segGroup.getClipPath();\n\n      if (!clipPath) {\n        clipPath = new graphic.Rect();\n        segGroup.setClipPath(clipPath);\n      }\n\n      clipPath.setShape({\n        x: segIntervals[i],\n        y: 0,\n        width: segIntervals[i + 1] - segIntervals[i],\n        height: size[1]\n      });\n    }\n\n    this._updateDataInfo(nonRealtime);\n  };\n\n  SliderZoomView.prototype._updateDataInfo = function (nonRealtime) {\n    var dataZoomModel = this.dataZoomModel;\n    var displaybles = this._displayables;\n    var handleLabels = displaybles.handleLabels;\n    var orient = this._orient;\n    var labelTexts = ['', ''];\n\n    if (dataZoomModel.get('showDetail')) {\n      var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\n\n      if (axisProxy) {\n        var axis = axisProxy.getAxisModel().axis;\n        var range = this._range;\n        var dataInterval = nonRealtime ? axisProxy.calculateDataWindow({\n          start: range[0],\n          end: range[1]\n        }).valueWindow : axisProxy.getDataValueWindow();\n        labelTexts = [this._formatLabel(dataInterval[0], axis), this._formatLabel(dataInterval[1], axis)];\n      }\n    }\n\n    var orderedHandleEnds = asc(this._handleEnds.slice());\n    setLabel.call(this, 0);\n    setLabel.call(this, 1);\n\n    function setLabel(handleIndex) {\n      var barTransform = graphic.getTransform(displaybles.handles[handleIndex].parent, this.group);\n      var direction = graphic.transformDirection(handleIndex === 0 ? 'right' : 'left', barTransform);\n      var offset = this._handleWidth / 2 + LABEL_GAP;\n      var textPoint = graphic.applyTransform([orderedHandleEnds[handleIndex] + (handleIndex === 0 ? -offset : offset), this._size[1] / 2], barTransform);\n      handleLabels[handleIndex].setStyle({\n        x: textPoint[0],\n        y: textPoint[1],\n        verticalAlign: orient === HORIZONTAL ? 'middle' : direction,\n        align: orient === HORIZONTAL ? direction : 'center',\n        text: labelTexts[handleIndex]\n      });\n    }\n  };\n\n  SliderZoomView.prototype._formatLabel = function (value, axis) {\n    var dataZoomModel = this.dataZoomModel;\n    var labelFormatter = dataZoomModel.get('labelFormatter');\n    var labelPrecision = dataZoomModel.get('labelPrecision');\n\n    if (labelPrecision == null || labelPrecision === 'auto') {\n      labelPrecision = axis.getPixelPrecision();\n    }\n\n    var valueStr = value == null || isNaN(value) ? '' : axis.type === 'category' || axis.type === 'time' ? axis.scale.getLabel({\n      value: Math.round(value)\n    }) : value.toFixed(Math.min(labelPrecision, 20));\n    return isFunction(labelFormatter) ? labelFormatter(value, valueStr) : isString(labelFormatter) ? labelFormatter.replace('{value}', valueStr) : valueStr;\n  };\n\n  SliderZoomView.prototype._showDataInfo = function (showOrHide) {\n    showOrHide = this._dragging || showOrHide;\n    var displayables = this._displayables;\n    var handleLabels = displayables.handleLabels;\n    handleLabels[0].attr('invisible', !showOrHide);\n    handleLabels[1].attr('invisible', !showOrHide);\n    displayables.moveHandle && this.api[showOrHide ? 'enterEmphasis' : 'leaveEmphasis'](displayables.moveHandle, 1);\n  };\n\n  SliderZoomView.prototype._onDragMove = function (handleIndex, dx, dy, event) {\n    this._dragging = true;\n    eventTool.stop(event.event);\n\n    var barTransform = this._displayables.sliderGroup.getLocalTransform();\n\n    var vertex = graphic.applyTransform([dx, dy], barTransform, true);\n\n    var changed = this._updateInterval(handleIndex, vertex[0]);\n\n    var realtime = this.dataZoomModel.get('realtime');\n\n    this._updateView(!realtime);\n\n    changed && realtime && this._dispatchZoomAction(true);\n  };\n\n  SliderZoomView.prototype._onDragEnd = function () {\n    this._dragging = false;\n\n    this._showDataInfo(false);\n\n    var realtime = this.dataZoomModel.get('realtime');\n    !realtime && this._dispatchZoomAction(false);\n  };\n\n  SliderZoomView.prototype._onClickPanel = function (e) {\n    var size = this._size;\n\n    var localPoint = this._displayables.sliderGroup.transformCoordToLocal(e.offsetX, e.offsetY);\n\n    if (localPoint[0] < 0 || localPoint[0] > size[0] || localPoint[1] < 0 || localPoint[1] > size[1]) {\n      return;\n    }\n\n    var handleEnds = this._handleEnds;\n    var center = (handleEnds[0] + handleEnds[1]) / 2;\n\n    var changed = this._updateInterval('all', localPoint[0] - center);\n\n    this._updateView();\n\n    changed && this._dispatchZoomAction(false);\n  };\n\n  SliderZoomView.prototype._onBrushStart = function (e) {\n    var x = e.offsetX;\n    var y = e.offsetY;\n    this._brushStart = new graphic.Point(x, y);\n    this._brushing = true;\n    this._brushStartTime = +new Date();\n  };\n\n  SliderZoomView.prototype._onBrushEnd = function (e) {\n    if (!this._brushing) {\n      return;\n    }\n\n    var brushRect = this._displayables.brushRect;\n    this._brushing = false;\n\n    if (!brushRect) {\n      return;\n    }\n\n    brushRect.attr('ignore', true);\n    var brushShape = brushRect.shape;\n    var brushEndTime = +new Date();\n\n    if (brushEndTime - this._brushStartTime < 200 && Math.abs(brushShape.width) < 5) {\n      return;\n    }\n\n    var viewExtend = this._getViewExtent();\n\n    var percentExtent = [0, 100];\n    this._range = asc([linearMap(brushShape.x, viewExtend, percentExtent, true), linearMap(brushShape.x + brushShape.width, viewExtend, percentExtent, true)]);\n    this._handleEnds = [brushShape.x, brushShape.x + brushShape.width];\n\n    this._updateView();\n\n    this._dispatchZoomAction(false);\n  };\n\n  SliderZoomView.prototype._onBrush = function (e) {\n    if (this._brushing) {\n      eventTool.stop(e.event);\n\n      this._updateBrushRect(e.offsetX, e.offsetY);\n    }\n  };\n\n  SliderZoomView.prototype._updateBrushRect = function (mouseX, mouseY) {\n    var displayables = this._displayables;\n    var dataZoomModel = this.dataZoomModel;\n    var brushRect = displayables.brushRect;\n\n    if (!brushRect) {\n      brushRect = displayables.brushRect = new Rect({\n        silent: true,\n        style: dataZoomModel.getModel('brushStyle').getItemStyle()\n      });\n      displayables.sliderGroup.add(brushRect);\n    }\n\n    brushRect.attr('ignore', false);\n    var brushStart = this._brushStart;\n    var sliderGroup = this._displayables.sliderGroup;\n    var endPoint = sliderGroup.transformCoordToLocal(mouseX, mouseY);\n    var startPoint = sliderGroup.transformCoordToLocal(brushStart.x, brushStart.y);\n    var size = this._size;\n    endPoint[0] = Math.max(Math.min(size[0], endPoint[0]), 0);\n    brushRect.setShape({\n      x: startPoint[0],\n      y: 0,\n      width: endPoint[0] - startPoint[0],\n      height: size[1]\n    });\n  };\n\n  SliderZoomView.prototype._dispatchZoomAction = function (realtime) {\n    var range = this._range;\n    this.api.dispatchAction({\n      type: 'dataZoom',\n      from: this.uid,\n      dataZoomId: this.dataZoomModel.id,\n      animation: realtime ? REALTIME_ANIMATION_CONFIG : null,\n      start: range[0],\n      end: range[1]\n    });\n  };\n\n  SliderZoomView.prototype._findCoordRect = function () {\n    var rect;\n    var coordSysInfoList = collectReferCoordSysModelInfo(this.dataZoomModel).infoList;\n\n    if (!rect && coordSysInfoList.length) {\n      var coordSys = coordSysInfoList[0].model.coordinateSystem;\n      rect = coordSys.getRect && coordSys.getRect();\n    }\n\n    if (!rect) {\n      var width = this.api.getWidth();\n      var height = this.api.getHeight();\n      rect = {\n        x: width * 0.2,\n        y: height * 0.2,\n        width: width * 0.6,\n        height: height * 0.6\n      };\n    }\n\n    return rect;\n  };\n\n  SliderZoomView.type = 'dataZoom.slider';\n  return SliderZoomView;\n}(DataZoomView);\n\nfunction getOtherDim(thisDim) {\n  var map = {\n    x: 'y',\n    y: 'x',\n    radius: 'angle',\n    angle: 'radius'\n  };\n  return map[thisDim];\n}\n\nfunction getCursor(orient) {\n  return orient === 'vertical' ? 'ns-resize' : 'ew-resize';\n}\n\nexport default SliderZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SliderZoomModel from './SliderZoomModel';\nimport SliderZoomView from './SliderZoomView';\nimport installCommon from './installCommon';\nexport function install(registers) {\n  registers.registerComponentModel(SliderZoomModel);\n  registers.registerComponentView(SliderZoomView);\n  installCommon(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport { install as installDataZoomInside } from './installDataZoomInside';\nimport { install as installDataZoomSlider } from './installDataZoomSlider';\nexport function install(registers) {\n  use(installDataZoomInside);\n  use(installDataZoomSlider);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { retrieveRawValue } from '../data/helper/dataProvider';\nimport { makeInner } from '../util/model';\nimport { getDecalFromPalette } from '../model/mixin/palette';\nvar DEFAULT_OPTION = {\n  label: {\n    enabled: true\n  },\n  decal: {\n    show: false\n  }\n};\nvar inner = makeInner();\nvar decalPaletteScope = {};\nexport default function ariaVisual(ecModel, api) {\n  var ariaModel = ecModel.getModel('aria');\n\n  if (!ariaModel.get('enabled')) {\n    return;\n  }\n\n  var defaultOption = zrUtil.clone(DEFAULT_OPTION);\n  zrUtil.merge(defaultOption.label, ecModel.getLocaleModel().get('aria'), false);\n  zrUtil.merge(ariaModel.option, defaultOption, false);\n  setDecal();\n  setLabel();\n\n  function setDecal() {\n    var decalModel = ariaModel.getModel('decal');\n    var useDecal = decalModel.get('show');\n\n    if (useDecal) {\n      var paletteScopeGroupByType_1 = zrUtil.createHashMap();\n      ecModel.eachSeries(function (seriesModel) {\n        if (!seriesModel.useColorPaletteOnData) {\n          return;\n        }\n\n        var decalScope = paletteScopeGroupByType_1.get(seriesModel.type);\n\n        if (!decalScope) {\n          decalScope = {};\n          paletteScopeGroupByType_1.set(seriesModel.type, decalScope);\n        }\n\n        inner(seriesModel).scope = decalScope;\n      });\n      ecModel.eachRawSeries(function (seriesModel) {\n        if (ecModel.isSeriesFiltered(seriesModel)) {\n          return;\n        }\n\n        if (typeof seriesModel.enableAriaDecal === 'function') {\n          seriesModel.enableAriaDecal();\n          return;\n        }\n\n        var data = seriesModel.getData();\n\n        if (seriesModel.useColorPaletteOnData) {\n          var dataAll_1 = seriesModel.getRawData();\n          var idxMap_1 = {};\n          var decalScope_1 = inner(seriesModel).scope;\n          data.each(function (idx) {\n            var rawIdx = data.getRawIndex(idx);\n            idxMap_1[rawIdx] = idx;\n          });\n          var dataCount_1 = dataAll_1.count();\n          dataAll_1.each(function (rawIdx) {\n            var idx = idxMap_1[rawIdx];\n            var name = dataAll_1.getName(rawIdx) || rawIdx + '';\n            var paletteDecal = getDecalFromPalette(seriesModel.ecModel, name, decalScope_1, dataCount_1);\n            var specifiedDecal = data.getItemVisual(idx, 'decal');\n            data.setItemVisual(idx, 'decal', mergeDecal(specifiedDecal, paletteDecal));\n          });\n        } else {\n          var paletteDecal = getDecalFromPalette(seriesModel.ecModel, seriesModel.name, decalPaletteScope, ecModel.getSeriesCount());\n          var specifiedDecal = data.getVisual('decal');\n          data.setVisual('decal', mergeDecal(specifiedDecal, paletteDecal));\n        }\n\n        function mergeDecal(specifiedDecal, paletteDecal) {\n          var resultDecal = specifiedDecal ? zrUtil.extend(zrUtil.extend({}, paletteDecal), specifiedDecal) : paletteDecal;\n          resultDecal.dirty = true;\n          return resultDecal;\n        }\n      });\n    }\n  }\n\n  function setLabel() {\n    var labelLocale = ecModel.getLocaleModel().get('aria');\n    var labelModel = ariaModel.getModel('label');\n    labelModel.option = zrUtil.defaults(labelModel.option, labelLocale);\n\n    if (!labelModel.get('enabled')) {\n      return;\n    }\n\n    var dom = api.getZr().dom;\n\n    if (labelModel.get('description')) {\n      dom.setAttribute('aria-label', labelModel.get('description'));\n      return;\n    }\n\n    var seriesCnt = ecModel.getSeriesCount();\n    var maxDataCnt = labelModel.get(['data', 'maxCount']) || 10;\n    var maxSeriesCnt = labelModel.get(['series', 'maxCount']) || 10;\n    var displaySeriesCnt = Math.min(seriesCnt, maxSeriesCnt);\n    var ariaLabel;\n\n    if (seriesCnt < 1) {\n      return;\n    } else {\n      var title = getTitle();\n\n      if (title) {\n        var withTitle = labelModel.get(['general', 'withTitle']);\n        ariaLabel = replace(withTitle, {\n          title: title\n        });\n      } else {\n        ariaLabel = labelModel.get(['general', 'withoutTitle']);\n      }\n\n      var seriesLabels_1 = [];\n      var prefix = seriesCnt > 1 ? labelModel.get(['series', 'multiple', 'prefix']) : labelModel.get(['series', 'single', 'prefix']);\n      ariaLabel += replace(prefix, {\n        seriesCount: seriesCnt\n      });\n      ecModel.eachSeries(function (seriesModel, idx) {\n        if (idx < displaySeriesCnt) {\n          var seriesLabel = void 0;\n          var seriesName = seriesModel.get('name');\n          var withName = seriesName ? 'withName' : 'withoutName';\n          seriesLabel = seriesCnt > 1 ? labelModel.get(['series', 'multiple', withName]) : labelModel.get(['series', 'single', withName]);\n          seriesLabel = replace(seriesLabel, {\n            seriesId: seriesModel.seriesIndex,\n            seriesName: seriesModel.get('name'),\n            seriesType: getSeriesTypeName(seriesModel.subType)\n          });\n          var data = seriesModel.getData();\n\n          if (data.count() > maxDataCnt) {\n            var partialLabel = labelModel.get(['data', 'partialData']);\n            seriesLabel += replace(partialLabel, {\n              displayCnt: maxDataCnt\n            });\n          } else {\n            seriesLabel += labelModel.get(['data', 'allData']);\n          }\n\n          var dataLabels = [];\n\n          for (var i = 0; i < data.count(); i++) {\n            if (i < maxDataCnt) {\n              var name_1 = data.getName(i);\n              var value = retrieveRawValue(data, i);\n              var dataLabel = labelModel.get(['data', name_1 ? 'withName' : 'withoutName']);\n              dataLabels.push(replace(dataLabel, {\n                name: name_1,\n                value: value\n              }));\n            }\n          }\n\n          var middleSeparator_1 = labelModel.get(['data', 'separator', 'middle']);\n          var endSeparator_1 = labelModel.get(['data', 'separator', 'end']);\n          seriesLabel += dataLabels.join(middleSeparator_1) + endSeparator_1;\n          seriesLabels_1.push(seriesLabel);\n        }\n      });\n      var separatorModel = labelModel.getModel(['series', 'multiple', 'separator']);\n      var middleSeparator = separatorModel.get('middle');\n      var endSeparator = separatorModel.get('end');\n      ariaLabel += seriesLabels_1.join(middleSeparator) + endSeparator;\n      dom.setAttribute('aria-label', ariaLabel);\n    }\n  }\n\n  function replace(str, keyValues) {\n    if (typeof str !== 'string') {\n      return str;\n    }\n\n    var result = str;\n    zrUtil.each(keyValues, function (value, key) {\n      result = result.replace(new RegExp('\\\\{\\\\s*' + key + '\\\\s*\\\\}', 'g'), value);\n    });\n    return result;\n  }\n\n  function getTitle() {\n    var title = ecModel.get('title');\n\n    if (title && title.length) {\n      title = title[0];\n    }\n\n    return title && title.text;\n  }\n\n  function getSeriesTypeName(type) {\n    return ecModel.getLocaleModel().get(['series', 'typeNames'])[type] || '自定义图';\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function ariaPreprocessor(option) {\n  if (!option || !option.aria) {\n    return;\n  }\n\n  var aria = option.aria;\n\n  if (aria.show != null) {\n    aria.enabled = aria.show;\n  }\n\n  aria.label = aria.label || {};\n  zrUtil.each(['description', 'general', 'series', 'data'], function (name) {\n    if (aria[name] != null) {\n      aria.label[name] = aria[name];\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ariaVisual from '../../visual/aria';\nimport ariaPreprocessor from './preprocessor';\nexport function install(registers) {\n  registers.registerPreprocessor(ariaPreprocessor);\n  registers.registerVisual(registers.PRIORITY.VISUAL.ARIA, ariaVisual);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\nimport ComponentView from '../../view/Component';\nimport { SERIES_LAYOUT_BY_COLUMN } from '../../util/types';\nimport { disableTransformOptionMerge, SourceManager } from '../../data/helper/sourceManager';\n\nvar DatasetModel = function (_super) {\n  __extends(DatasetModel, _super);\n\n  function DatasetModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'dataset';\n    return _this;\n  }\n\n  DatasetModel.prototype.init = function (option, parentModel, ecModel) {\n    _super.prototype.init.call(this, option, parentModel, ecModel);\n\n    this._sourceManager = new SourceManager(this);\n    disableTransformOptionMerge(this);\n  };\n\n  DatasetModel.prototype.mergeOption = function (newOption, ecModel) {\n    _super.prototype.mergeOption.call(this, newOption, ecModel);\n\n    disableTransformOptionMerge(this);\n  };\n\n  DatasetModel.prototype.optionUpdated = function () {\n    this._sourceManager.dirty();\n  };\n\n  DatasetModel.prototype.getSourceManager = function () {\n    return this._sourceManager;\n  };\n\n  DatasetModel.type = 'dataset';\n  DatasetModel.defaultOption = {\n    seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN\n  };\n  return DatasetModel;\n}(ComponentModel);\n\nexport { DatasetModel };\n\nvar DatasetView = function (_super) {\n  __extends(DatasetView, _super);\n\n  function DatasetView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'dataset';\n    return _this;\n  }\n\n  DatasetView.type = 'dataset';\n  return DatasetView;\n}(ComponentView);\n\nexport function install(registers) {\n  registers.registerComponentModel(DatasetModel);\n  registers.registerComponentView(DatasetView);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from './lib/extension';\nexport * from './lib/export/core';\nimport { install as SVGRenderer } from './lib/renderer/installSVGRenderer';\nimport { install as CanvasRenderer } from './lib/renderer/installCanvasRenderer';\nimport { install as LineChart } from './lib/chart/line/install';\nimport { install as BarChart } from './lib/chart/bar/install';\nimport { install as PieChart } from './lib/chart/pie/install';\nimport { install as ScatterChart } from './lib/chart/scatter/install';\nimport { install as GridComponent } from './lib/component/grid/install';\nimport { install as GraphicComponent } from './lib/component/graphic/install';\nimport { install as ToolboxComponent } from './lib/component/toolbox/install';\nimport { install as TooltipComponent } from './lib/component/tooltip/install';\nimport { install as AxisPointerComponent } from './lib/component/axisPointer/install';\nimport { install as TitleComponent } from './lib/component/title/install';\nimport { install as MarkPointComponent } from './lib/component/marker/installMarkPoint';\nimport { install as MarkLineComponent } from './lib/component/marker/installMarkLine';\nimport { install as MarkAreaComponent } from './lib/component/marker/installMarkArea';\nimport { install as LegendComponent } from './lib/component/legend/install';\nimport { install as DataZoomComponent } from './lib/component/dataZoom/install';\nimport { install as AriaComponent } from './lib/component/aria/install';\nimport { install as DatasetComponent } from './lib/component/dataset/install';\nuse([CanvasRenderer]);\nuse([SVGRenderer]);\nuse([LineChart, BarChart, PieChart, ScatterChart]);\nuse([GraphicComponent, TooltipComponent, AxisPointerComponent, LegendComponent, GridComponent, TitleComponent, MarkPointComponent, MarkLineComponent, MarkAreaComponent, DataZoomComponent, ToolboxComponent, AriaComponent, DatasetComponent]);"],"names":["clone","_calcOut","eventUtil.clientToLocal","dist","eventTool.stop","util.each","vec2.dist","create","copy","mul","scale","matrix.identity","matrix.create","matrix.mul","matrix.copy","matrix.invert","vector.applyTransform","matrix.rotate","easing","easingFuncs","lerp","color.parse","matrix.translate","matrix.scale","methods","timsort","util.indexOf","requestAnimationFrame","zrUtil.map","zrUtil.noop","zrUtil.each","zrUtil.indexOf","zrUtil.keys","HandlerProxy","zrUtil.guid","parsePercent","zrUtil.reduce","zrUtil.assert","zrUtil.createObject","zrUtil.extend","zrUtil.inherits","imageHelper.findExistImage","imageHelper.isImageReady","PRIMARY_STATES_KEYS","EPSILON","v2Create","isNotAroundZero","v2DistSquare","mathMin","mathMax","vec2.create","cubicExtrema","curve.cubicExtrema","cubicAt","curve.cubicAt","quadraticExtremum","curve.quadraticExtremum","quadraticAt","curve.quadraticAt","min","max","vec2.min","vec2.max","mathCos","mathSin","mathSqrt","PI2","dpr","containStroke","curve.cubicProjectPoint","CMD","curve.cubicRootAt","curve.quadraticRootAt","line.containStroke","cubic.containStroke","quadratic.containStroke","arc.containStroke","pathContain.containStroke","pathContain.contain","round","roundRectHelper.buildPath","color","colorTool.lift","v2ApplyTransform","PI","mathAbs","buildPath","roundSectorHelper.buildPath","distance","v2Distance","v2Min","v2Max","v2Clone","v2Sub","v2Scale","v2Add","polyHelper.buildPath","subPixelOptimizeOutputShape","vec2.normalize","minTv","maxTv","Displayble","pathTool.extendFromString","pathTool.createFromString","mergePath","pathTool.mergePath","subPixelOptimizeLine","subPixelOptimizeUtil.subPixelOptimizeLine","subPixelOptimizeRect","subPixelOptimizeUtil.subPixelOptimizeRect","subPixelOptimize","subPixelOptimizeUtil.subPixelOptimize","applyTransform","invert","zrUtil.merge","numberUtil.parseDate","defaults","zrUtil.defaults","zrUtil.isArray","Text","zrUtil.isString","normalizeCssArray","zrUtil.normalizeCssArray","zrUtil.trim","timeFormat","zrUtil.isStringSafe","zrUtil.isNumber","zrUtil.isObject","each","zrUtil.curry","formatUtil.normalizeCssArray","componentUtil.getUID","layout.fetchLayoutMode","layout.getLayoutParams","layout.mergeLayoutParam","componentUtil.enableSubTypeDefaulter","componentUtil.enableTopologicalTravel","modelUtil.normalizeToArray","modelUtil.mappingToExists","modelUtil.setComponentTypeToKeyInfo","modelUtil.isComponentIdInternal","modelUtil.convertOptionIdName","zrUtil.bind","isObject","modelUtil.TEXT_STYLE_OPTIONS","zrUtil.isTypedArray","set","compatStyle","inner","modelUtil.makeInner","modelUtil.defaultEmphasis","zrUtil.mixin","modelUtil.isNameSpecified","clazzUtil.enableClassExtend","clazzUtil.enableClassManagement","modelUtil.queryDataIndex","graphic.Group","graphic.Rect","graphic.Text","graphic.Arc","vector.dist","vector.lerp","graphic.Path","graphic.Circle","graphic.makeImage","graphic.makePath","assert","isFunction","zrUtil.isFunction","indexOf","version","zrender.init","zrUtil.clone","backwardCompat","zrUtil.setAsPrimitive","instances","zrUtil.createCanvas","graphic.Image","modelUtil.parseFinder","modelUtil.setAttribute","zrUtil.createHashMap","colorTool.parse","colorTool.stringify","graphic.isElementRemoved","init","zrUtil.isDom","dispose","modelUtil.getAttribute","zrUtil.$override","decal","loadingDefault","darkTheme","map","zrUtil.isArrayLike","zrUtil.slice","CoordinateSystem","numberUtil.round","numberUtil.nice","numberUtil.getPrecisionSafe","contain","normalize","scaleHelper.contain","scaleHelper.normalize","scaleHelper.scale","roundNumber","helper.contain","helper.normalize","helper.scale","helper.getIntervalPrecision","formatUtil.addCommas","helper.intervalScaleNiceTicks","getPrecisionSafe","mathFloor","mathPow","numberUtil.quantity","dataStack","axisHelper.createScaleByModel","axisHelper.niceScaleExtent","createTextStyle","innerCreateTextStyle","isAroundEqual","bbox.fromPoints","polygonContain.contain","vec2.applyTransform","zrUtil.filter","textContain.getBoundingRect","isAroundZero","adjustTextY","zrUtil.logError","colorTool.toHex","util.extend","util.logError","util.createCanvas","util.isObject","util.isGradientObject","util.isPatternObject","parseInt10","util.merge","install","graphic.updateProps","graphic.initProps","graphic.removeElement","SymbolClz","graphic.Sector","graphic.LinearGradient","isPointNull","modelUtil.interpolateRawValues","LineSeries","layoutPoints","Sausage","BarSeries","layout.getLayoutRect","RADIAN","graphic.Polyline","graphic.removeElementWithFadeOut","labelLayout","layout","zrUtil.retrieve","zrUtil.retrieve3","graphic.Line","matrixUtil.identity","matrixUtil.rotate","matrixUtil.mul","axisPointerModelHelper.fixValue","axisPointerModelHelper.getAxisPointerModel","cartesianAxisHelper.layout","graphic.groupTransition","installGridSimple","bind","updateProps","axisPointerModelHelper.getAxisInfo","graphic.createIcon","throttleUtil.createOrUpdate","axisHelper.getAxisRawValue","graphic.applyTransform","viewHelper.buildElStyle","viewHelper.buildCartesianSingleLabelElOption","viewHelper.getTransformedPosition","viewHelper.makeLineShape","viewHelper.makeRectShape","globalListener.register","globalListener.unregister","modelHelper.makeKey","installSimple","installAxisPointer","graphicUtil.Group","graphicUtil.Image","graphicUtil.Text","layoutUtil.positionElement","zrUtil.hasOwn","graphicUtil.getShapeClass","layoutUtil.LOCATION_PARAMS","layoutUtil.mergeLayoutParam","layoutUtil.copyLayoutParams","asc","numberUtil.asc","numberUtil.linearMap","numberUtil.getPixelPrecision","SelectZoomModel","SelectZoomView","featureManager.getFeature","layoutBox","listComponentHelper.layout","listComponentHelper.makeBackground","echarts.registerAction","trim","clear","history.clear","interactionMutex.take","interactionMutex.release","getTransform","graphic.getTransform","graphic.transformDirection","graphic.Polygon","graphicUtil.clipPointsByRect","parseFinder","brushHelper.makeRectPanelClipPath","brushHelper.makeRectIsTargetByCursor","brushHelper.makeLinearBrushOtherExtent","modelUtilParseFinder","history.push","history.pop","history.count","DataZoom","Restore","installDataZoomSelect","makeStyleCoord","numberUtil.parsePercent","makeDispatchAction","axisPointerViewHelper.getValueLabel","formatUtil.convertToColorString","formatUtil.formatTpl","layoutUtil.getLayoutRect","zrUtil.retrieve2","numberUtil.getPrecision","getAxisInfo","dataFilter","createList","markerHelper.dataTransform","markerHelper.dataFilter","markerHelper.dimValueGetter","graphic.BezierCurve","createSymbol","symbolUtil.createSymbol","Line","vector.sub","vector.normalize","LineGroup","makeSeriesScope","markerHelper.getAxisInfo","markerHelper.numCalculate","dimValueGetter","isInifinity","colorUtil.modifyAlpha","curry","Group","layoutUtil.box","installLegendPlain","installLegendScroll","eventTool.isMiddleOrRightButtonOnMouseUpDown","interactionMutex.isTaken","trigger","roams.setViewInfoToCoordSysRecord","roams.disposeCoordSysRecordIfNeeded","Rect","throttle.createOrUpdate","throttle.clear","graphic.Point","installDataZoomInside","installDataZoomSlider","CanvasRenderer","SVGRenderer","LineChart","BarChart","PieChart","ScatterChart","GraphicComponent","TooltipComponent","AxisPointerComponent","LegendComponent","GridComponent","TitleComponent","MarkPointComponent","MarkLineComponent","MarkAreaComponent","DataZoomComponent","ToolboxComponent","AriaComponent","DatasetComponent"],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/echarts.common.min.js b/dist/echarts.common.min.js
index 678b96a..c47604e 100644
--- a/dist/echarts.common.min.js
+++ b/dist/echarts.common.min.js
@@ -32,21 +32,7 @@
     LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
     OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
     PERFORMANCE OF THIS SOFTWARE.
-    ***************************************************************************** */var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])})(t,n)};function n(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}var i=function(){return(i=Object.assign||function(t){for(var e,n=1,i=arguments.length;n<i;n++)for(var r in e=arguments[n])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)};function r(){for(var t=0,e=0,n=arguments.length;e<n;e++)t+=arguments[e].length;var i=Array(t),r=0;for(e=0;e<n;e++)for(var o=arguments[e],a=0,s=o.length;a<s;a++,r++)i[r]=o[a];return i}var o=function(){this.firefox=!1,this.ie=!1,this.edge=!1,this.newEdge=!1,this.weChat=!1},a=new function(){this.browser=new o,this.node=!1,this.wxa=!1,this.worker=!1,this.canvasSupported=!1,this.svgSupported=!1,this.touchEventsSupported=!1,this.pointerEventsSupported=!1,this.domSupported=!1};"object"==typeof wx&&"function"==typeof wx.getSystemInfoSync?(a.wxa=!0,a.canvasSupported=!0,a.touchEventsSupported=!0):"undefined"==typeof document&&"undefined"!=typeof self?(a.worker=!0,a.canvasSupported=!0):"undefined"==typeof navigator?(a.node=!0,a.canvasSupported=!0,a.svgSupported=!0):function(t,e){var n=e.browser,i=t.match(/Firefox\/([\d.]+)/),r=t.match(/MSIE\s([\d.]+)/)||t.match(/Trident\/.+?rv:(([\d.]+))/),o=t.match(/Edge?\/([\d.]+)/),a=/micromessenger/i.test(t);i&&(n.firefox=!0,n.version=i[1]);r&&(n.ie=!0,n.version=r[1]);o&&(n.edge=!0,n.version=o[1],n.newEdge=+o[1].split(".")[0]>18);a&&(n.weChat=!0);e.canvasSupported=!!document.createElement("canvas").getContext,e.svgSupported="undefined"!=typeof SVGRect,e.touchEventsSupported="ontouchstart"in window&&!n.ie&&!n.edge,e.pointerEventsSupported="onpointerdown"in window&&(n.edge||n.ie&&+n.version>=11),e.domSupported="undefined"!=typeof document}(navigator.userAgent,a);var s={"[object Function]":!0,"[object RegExp]":!0,"[object Date]":!0,"[object Error]":!0,"[object CanvasGradient]":!0,"[object CanvasPattern]":!0,"[object Image]":!0,"[object Canvas]":!0},l={"[object Int8Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Int16Array]":!0,"[object Uint16Array]":!0,"[object Int32Array]":!0,"[object Uint32Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0},u=Object.prototype.toString,h=Array.prototype,c=h.forEach,p=h.filter,d=h.slice,f=h.map,g=function(){}.constructor,y=g?g.prototype:null,v={};function m(t,e){v[t]=e}var _=2311;function x(){return _++}function b(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];"undefined"!=typeof console&&console.error.apply(console,t)}function w(t){if(null==t||"object"!=typeof t)return t;var e=t,n=u.call(t);if("[object Array]"===n){if(!st(t)){e=[];for(var i=0,r=t.length;i<r;i++)e[i]=w(t[i])}}else if(l[n]){if(!st(t)){var o=t.constructor;if(o.from)e=o.from(t);else{e=new o(t.length);for(i=0,r=t.length;i<r;i++)e[i]=w(t[i])}}}else if(!s[n]&&!st(t)&&!Z(t))for(var a in e={},t)t.hasOwnProperty(a)&&(e[a]=w(t[a]));return e}function S(t,e,n){if(!U(e)||!U(t))return n?w(e):t;for(var i in e)if(e.hasOwnProperty(i)){var r=t[i],o=e[i];!U(o)||!U(r)||V(o)||V(r)||Z(o)||Z(r)||Y(o)||Y(r)||st(o)||st(r)?!n&&i in t||(t[i]=w(e[i])):S(r,o,n)}return t}function M(t,e){for(var n=t[0],i=1,r=t.length;i<r;i++)n=S(n,t[i],e);return n}function T(t,e){if(Object.assign)Object.assign(t,e);else for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}function C(t,e,n){for(var i=E(e),r=0;r<i.length;r++){var o=i[r];(n?null!=e[o]:null==t[o])&&(t[o]=e[o])}return t}var I=function(){return v.createCanvas()};function A(t,e){if(t){if(t.indexOf)return t.indexOf(e);for(var n=0,i=t.length;n<i;n++)if(t[n]===e)return n}return-1}function D(t,e){var n=t.prototype;function i(){}for(var r in i.prototype=e.prototype,t.prototype=new i,n)n.hasOwnProperty(r)&&(t.prototype[r]=n[r]);t.prototype.constructor=t,t.superClass=e}function k(t,e,n){if(t="prototype"in t?t.prototype:t,e="prototype"in e?e.prototype:e,Object.getOwnPropertyNames)for(var i=Object.getOwnPropertyNames(e),r=0;r<i.length;r++){var o=i[r];"constructor"!==o&&(n?null!=e[o]:null==t[o])&&(t[o]=e[o])}else C(t,e,n)}function L(t){return!!t&&("string"!=typeof t&&"number"==typeof t.length)}function P(t,e,n){if(t&&e)if(t.forEach&&t.forEach===c)t.forEach(e,n);else if(t.length===+t.length)for(var i=0,r=t.length;i<r;i++)e.call(n,t[i],i,t);else for(var o in t)t.hasOwnProperty(o)&&e.call(n,t[o],o,t)}function O(t,e,n){if(!t)return[];if(!e)return et(t);if(t.map&&t.map===f)return t.map(e,n);for(var i=[],r=0,o=t.length;r<o;r++)i.push(e.call(n,t[r],r,t));return i}function R(t,e,n,i){if(t&&e){for(var r=0,o=t.length;r<o;r++)n=e.call(i,n,t[r],r,t);return n}}function N(t,e,n){if(!t)return[];if(!e)return et(t);if(t.filter&&t.filter===p)return t.filter(e,n);for(var i=[],r=0,o=t.length;r<o;r++)e.call(n,t[r],r,t)&&i.push(t[r]);return i}function E(t){if(!t)return[];if(Object.keys)return Object.keys(t);var e=[];for(var n in t)t.hasOwnProperty(n)&&e.push(n);return e}v.createCanvas=function(){return document.createElement("canvas")};var B=y&&F(y.bind)?y.call.bind(y.bind):function(t,e){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];return function(){return t.apply(e,n.concat(d.call(arguments)))}};function z(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return function(){return t.apply(this,e.concat(d.call(arguments)))}}function V(t){return Array.isArray?Array.isArray(t):"[object Array]"===u.call(t)}function F(t){return"function"==typeof t}function H(t){return"string"==typeof t}function G(t){return"[object String]"===u.call(t)}function W(t){return"number"==typeof t}function U(t){var e=typeof t;return"function"===e||!!t&&"object"===e}function Y(t){return!!s[u.call(t)]}function X(t){return!!l[u.call(t)]}function Z(t){return"object"==typeof t&&"number"==typeof t.nodeType&&"object"==typeof t.ownerDocument}function j(t){return null!=t.colorStops}function q(t){return null!=t.image}function K(t){return"[object RegExp]"===u.call(t)}function $(t){return t!=t}function J(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];for(var n=0,i=t.length;n<i;n++)if(null!=t[n])return t[n]}function Q(t,e){return null!=t?t:e}function tt(t,e,n){return null!=t?t:null!=e?e:n}function et(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return d.apply(t,e)}function nt(t){if("number"==typeof t)return[t,t,t,t];var e=t.length;return 2===e?[t[0],t[1],t[0],t[1]]:3===e?[t[0],t[1],t[2],t[1]]:t}function it(t,e){if(!t)throw new Error(e)}function rt(t){return null==t?null:"function"==typeof t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}var ot="__ec_primitive__";function at(t){t[ot]=!0}function st(t){return t[ot]}var lt=function(){function t(e){this.data={};var n=V(e);this.data={};var i=this;function r(t,e){n?i.set(t,e):i.set(e,t)}e instanceof t?e.each(r):e&&P(e,r)}return t.prototype.get=function(t){return this.data.hasOwnProperty(t)?this.data[t]:null},t.prototype.set=function(t,e){return this.data[t]=e},t.prototype.each=function(t,e){for(var n in this.data)this.data.hasOwnProperty(n)&&t.call(e,this.data[n],n)},t.prototype.keys=function(){return E(this.data)},t.prototype.removeKey=function(t){delete this.data[t]},t}();function ut(t){return new lt(t)}function ht(t,e){var n;if(Object.create)n=Object.create(t);else{var i=function(){};i.prototype=t,n=new i}return e&&T(n,e),n}function ct(t,e){return t.hasOwnProperty(e)}function pt(){}var dt=Object.freeze({__proto__:null,$override:m,guid:x,logError:b,clone:w,merge:S,mergeAll:M,extend:T,defaults:C,createCanvas:I,indexOf:A,inherits:D,mixin:k,isArrayLike:L,each:P,map:O,reduce:R,filter:N,find:function(t,e,n){if(t&&e)for(var i=0,r=t.length;i<r;i++)if(e.call(n,t[i],i,t))return t[i]},keys:E,bind:B,curry:z,isArray:V,isFunction:F,isString:H,isStringSafe:G,isNumber:W,isObject:U,isBuiltInObject:Y,isTypedArray:X,isDom:Z,isGradientObject:j,isPatternObject:q,isRegExp:K,eqNaN:$,retrieve:J,retrieve2:Q,retrieve3:tt,slice:et,normalizeCssArray:nt,assert:it,trim:rt,setAsPrimitive:at,isPrimitive:st,HashMap:lt,createHashMap:ut,concatArray:function(t,e){for(var n=new t.constructor(t.length+e.length),i=0;i<t.length;i++)n[i]=t[i];var r=t.length;for(i=0;i<e.length;i++)n[i+r]=e[i];return n},createObject:ht,hasOwn:ct,noop:pt}),ft=function(t,e){return(ft=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])})(t,e)};
-/*! *****************************************************************************
-    Copyright (c) Microsoft Corporation.
-
-    Permission to use, copy, modify, and/or distribute this software for any
-    purpose with or without fee is hereby granted.
-
-    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-    REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-    AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-    INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-    LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-    OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-    PERFORMANCE OF THIS SOFTWARE.
-    ***************************************************************************** */function gt(t,e){function n(){this.constructor=t}ft(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}function yt(t,e){return null==t&&(t=0),null==e&&(e=0),[t,e]}function vt(t){return[t[0],t[1]]}function mt(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t}function _t(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t}function xt(t){return Math.sqrt(wt(t))}var bt=xt;function wt(t){return t[0]*t[0]+t[1]*t[1]}var St=wt;function Mt(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t}function Tt(t,e){var n=xt(e);return 0===n?(t[0]=0,t[1]=0):(t[0]=e[0]/n,t[1]=e[1]/n),t}function Ct(t,e){return Math.sqrt((t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1]))}var It=Ct;function At(t,e){return(t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1])}var Dt=At;function kt(t,e,n,i){return t[0]=e[0]+i*(n[0]-e[0]),t[1]=e[1]+i*(n[1]-e[1]),t}function Lt(t,e,n){var i=e[0],r=e[1];return t[0]=n[0]*i+n[2]*r+n[4],t[1]=n[1]*i+n[3]*r+n[5],t}function Pt(t,e,n){return t[0]=Math.min(e[0],n[0]),t[1]=Math.min(e[1],n[1]),t}function Ot(t,e,n){return t[0]=Math.max(e[0],n[0]),t[1]=Math.max(e[1],n[1]),t}var Rt=Object.freeze({__proto__:null,create:yt,copy:function(t,e){return t[0]=e[0],t[1]=e[1],t},clone:vt,set:function(t,e,n){return t[0]=e,t[1]=n,t},add:mt,scaleAndAdd:function(t,e,n,i){return t[0]=e[0]+n[0]*i,t[1]=e[1]+n[1]*i,t},sub:_t,len:xt,length:bt,lenSquare:wt,lengthSquare:St,mul:function(t,e,n){return t[0]=e[0]*n[0],t[1]=e[1]*n[1],t},div:function(t,e,n){return t[0]=e[0]/n[0],t[1]=e[1]/n[1],t},dot:function(t,e){return t[0]*e[0]+t[1]*e[1]},scale:Mt,normalize:Tt,distance:Ct,dist:It,distanceSquare:At,distSquare:Dt,negate:function(t,e){return t[0]=-e[0],t[1]=-e[1],t},lerp:kt,applyTransform:Lt,min:Pt,max:Ot}),Nt=function(t,e){this.target=t,this.topTarget=e&&e.topTarget},Et=function(){function t(t){this.handler=t,t.on("mousedown",this._dragStart,this),t.on("mousemove",this._drag,this),t.on("mouseup",this._dragEnd,this)}return t.prototype._dragStart=function(t){for(var e=t.target;e&&!e.draggable;)e=e.parent;e&&(this._draggingTarget=e,e.dragging=!0,this._x=t.offsetX,this._y=t.offsetY,this.handler.dispatchToElement(new Nt(e,t),"dragstart",t.event))},t.prototype._drag=function(t){var e=this._draggingTarget;if(e){var n=t.offsetX,i=t.offsetY,r=n-this._x,o=i-this._y;this._x=n,this._y=i,e.drift(r,o,t),this.handler.dispatchToElement(new Nt(e,t),"drag",t.event);var a=this.handler.findHover(n,i,e).target,s=this._dropTarget;this._dropTarget=a,e!==a&&(s&&a!==s&&this.handler.dispatchToElement(new Nt(s,t),"dragleave",t.event),a&&a!==s&&this.handler.dispatchToElement(new Nt(a,t),"dragenter",t.event))}},t.prototype._dragEnd=function(t){var e=this._draggingTarget;e&&(e.dragging=!1),this.handler.dispatchToElement(new Nt(e,t),"dragend",t.event),this._dropTarget&&this.handler.dispatchToElement(new Nt(this._dropTarget,t),"drop",t.event),this._draggingTarget=null,this._dropTarget=null},t}(),Bt=function(){function t(t){t&&(this._$eventProcessor=t)}return t.prototype.on=function(t,e,n,i){this._$handlers||(this._$handlers={});var r=this._$handlers;if("function"==typeof e&&(i=n,n=e,e=null),!n||!t)return this;var o=this._$eventProcessor;null!=e&&o&&o.normalizeQuery&&(e=o.normalizeQuery(e)),r[t]||(r[t]=[]);for(var a=0;a<r[t].length;a++)if(r[t][a].h===n)return this;var s={h:n,query:e,ctx:i||this,callAtLast:n.zrEventfulCallAtLast},l=r[t].length-1,u=r[t][l];return u&&u.callAtLast?r[t].splice(l,0,s):r[t].push(s),this},t.prototype.isSilent=function(t){var e=this._$handlers;return!e||!e[t]||!e[t].length},t.prototype.off=function(t,e){var n=this._$handlers;if(!n)return this;if(!t)return this._$handlers={},this;if(e){if(n[t]){for(var i=[],r=0,o=n[t].length;r<o;r++)n[t][r].h!==e&&i.push(n[t][r]);n[t]=i}n[t]&&0===n[t].length&&delete n[t]}else delete n[t];return this},t.prototype.trigger=function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];if(!this._$handlers)return this;var i=this._$handlers[t],r=this._$eventProcessor;if(i)for(var o=e.length,a=i.length,s=0;s<a;s++){var l=i[s];if(!r||!r.filter||null==l.query||r.filter(t,l.query))switch(o){case 0:l.h.call(l.ctx);break;case 1:l.h.call(l.ctx,e[0]);break;case 2:l.h.call(l.ctx,e[0],e[1]);break;default:l.h.apply(l.ctx,e)}}return r&&r.afterTrigger&&r.afterTrigger(t),this},t.prototype.triggerWithContext=function(t){if(!this._$handlers)return this;var e=this._$handlers[t],n=this._$eventProcessor;if(e)for(var i=arguments,r=i.length,o=i[r-1],a=e.length,s=0;s<a;s++){var l=e[s];if(!n||!n.filter||null==l.query||n.filter(t,l.query))switch(r){case 0:l.h.call(o);break;case 1:l.h.call(o,i[0]);break;case 2:l.h.call(o,i[0],i[1]);break;default:l.h.apply(o,i.slice(1,r-1))}}return n&&n.afterTrigger&&n.afterTrigger(t),this},t}(),zt=Math.log(2);function Vt(t,e,n,i,r,o){var a=i+"-"+r,s=t.length;if(o.hasOwnProperty(a))return o[a];if(1===e){var l=Math.round(Math.log((1<<s)-1&~r)/zt);return t[n][l]}for(var u=i|1<<n,h=n+1;i&1<<h;)h++;for(var c=0,p=0,d=0;p<s;p++){var f=1<<p;f&r||(c+=(d%2?-1:1)*t[n][p]*Vt(t,e-1,h,u,r|f,o),d++)}return o[a]=c,c}function Ft(t,e){var n=[[t[0],t[1],1,0,0,0,-e[0]*t[0],-e[0]*t[1]],[0,0,0,t[0],t[1],1,-e[1]*t[0],-e[1]*t[1]],[t[2],t[3],1,0,0,0,-e[2]*t[2],-e[2]*t[3]],[0,0,0,t[2],t[3],1,-e[3]*t[2],-e[3]*t[3]],[t[4],t[5],1,0,0,0,-e[4]*t[4],-e[4]*t[5]],[0,0,0,t[4],t[5],1,-e[5]*t[4],-e[5]*t[5]],[t[6],t[7],1,0,0,0,-e[6]*t[6],-e[6]*t[7]],[0,0,0,t[6],t[7],1,-e[7]*t[6],-e[7]*t[7]]],i={},r=Vt(n,8,0,0,0,i);if(0!==r){for(var o=[],a=0;a<8;a++)for(var s=0;s<8;s++)null==o[s]&&(o[s]=0),o[s]+=((a+s)%2?-1:1)*Vt(n,7,0===a?1:0,1<<a,1<<s,i)/r*e[a];return function(t,e,n){var i=e*o[6]+n*o[7]+1;t[0]=(e*o[0]+n*o[1]+o[2])/i,t[1]=(e*o[3]+n*o[4]+o[5])/i}}}var Ht=[];function Gt(t,e,n,i,r){if(e.getBoundingClientRect&&a.domSupported&&!Wt(e)){var o=e.___zrEVENTSAVED||(e.___zrEVENTSAVED={}),s=function(t,e,n){for(var i=n?"invTrans":"trans",r=e[i],o=e.srcCoords,a=[],s=[],l=!0,u=0;u<4;u++){var h=t[u].getBoundingClientRect(),c=2*u,p=h.left,d=h.top;a.push(p,d),l=l&&o&&p===o[c]&&d===o[c+1],s.push(t[u].offsetLeft,t[u].offsetTop)}return l&&r?r:(e.srcCoords=a,e[i]=n?Ft(s,a):Ft(a,s))}(function(t,e){var n=e.markers;if(n)return n;n=e.markers=[];for(var i=["left","right"],r=["top","bottom"],o=0;o<4;o++){var a=document.createElement("div"),s=o%2,l=(o>>1)%2;a.style.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",i[s]+":0",r[l]+":0",i[1-s]+":auto",r[1-l]+":auto",""].join("!important;"),t.appendChild(a),n.push(a)}return n}(e,o),o,r);if(s)return s(t,n,i),!0}return!1}function Wt(t){return"CANVAS"===t.nodeName.toUpperCase()}var Ut="undefined"!=typeof window&&!!window.addEventListener,Yt=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Xt=[];function Zt(t,e,n,i){return n=n||{},i||!a.canvasSupported?jt(t,e,n):a.browser.firefox&&null!=e.layerX&&e.layerX!==e.offsetX?(n.zrX=e.layerX,n.zrY=e.layerY):null!=e.offsetX?(n.zrX=e.offsetX,n.zrY=e.offsetY):jt(t,e,n),n}function jt(t,e,n){if(a.domSupported&&t.getBoundingClientRect){var i=e.clientX,r=e.clientY;if(Wt(t)){var o=t.getBoundingClientRect();return n.zrX=i-o.left,void(n.zrY=r-o.top)}if(Gt(Xt,t,i,r))return n.zrX=Xt[0],void(n.zrY=Xt[1])}n.zrX=n.zrY=0}function qt(t){return t||window.event}function Kt(t,e,n){if(null!=(e=qt(e)).zrX)return e;var i=e.type;if(i&&i.indexOf("touch")>=0){var r="touchend"!==i?e.targetTouches[0]:e.changedTouches[0];r&&Zt(t,r,e,n)}else{Zt(t,e,e,n);var o=function(t){var e=t.wheelDelta;if(e)return e;var n=t.deltaX,i=t.deltaY;if(null==n||null==i)return e;return 3*(0!==i?Math.abs(i):Math.abs(n))*(i>0?-1:i<0?1:n>0?-1:1)}(e);e.zrDelta=o?o/120:-(e.detail||0)/3}var a=e.button;return null==e.which&&void 0!==a&&Yt.test(e.type)&&(e.which=1&a?1:2&a?3:4&a?2:0),e}function $t(t,e,n,i){Ut?t.addEventListener(e,n,i):t.attachEvent("on"+e,n)}var Jt=Ut?function(t){t.preventDefault(),t.stopPropagation(),t.cancelBubble=!0}:function(t){t.returnValue=!1,t.cancelBubble=!0};function Qt(t){return 2===t.which||3===t.which}var te=function(){function t(){this._track=[]}return t.prototype.recognize=function(t,e,n){return this._doTrack(t,e,n),this._recognize(t)},t.prototype.clear=function(){return this._track.length=0,this},t.prototype._doTrack=function(t,e,n){var i=t.touches;if(i){for(var r={points:[],touches:[],target:e,event:t},o=0,a=i.length;o<a;o++){var s=i[o],l=Zt(n,s,{});r.points.push([l.zrX,l.zrY]),r.touches.push(s)}this._track.push(r)}},t.prototype._recognize=function(t){for(var e in ne)if(ne.hasOwnProperty(e)){var n=ne[e](this._track,t);if(n)return n}},t}();function ee(t){var e=t[1][0]-t[0][0],n=t[1][1]-t[0][1];return Math.sqrt(e*e+n*n)}var ne={pinch:function(t,e){var n=t.length;if(n){var i,r=(t[n-1]||{}).points,o=(t[n-2]||{}).points||r;if(o&&o.length>1&&r&&r.length>1){var a=ee(r)/ee(o);!isFinite(a)&&(a=1),e.pinchScale=a;var s=[((i=r)[0][0]+i[1][0])/2,(i[0][1]+i[1][1])/2];return e.pinchX=s[0],e.pinchY=s[1],{type:"pinch",target:t[0].target,event:e}}}}},ie="silent";function re(){Jt(this.event)}var oe=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.handler=null,e}return gt(e,t),e.prototype.dispose=function(){},e.prototype.setCursor=function(){},e}(Bt),ae=function(t,e){this.x=t,this.y=e},se=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],le=function(t){function e(e,n,i,r){var o=t.call(this)||this;return o._hovered=new ae(0,0),o.storage=e,o.painter=n,o.painterRoot=r,i=i||new oe,o.proxy=null,o.setHandlerProxy(i),o._draggingMgr=new Et(o),o}return gt(e,t),e.prototype.setHandlerProxy=function(t){this.proxy&&this.proxy.dispose(),t&&(P(se,(function(e){t.on&&t.on(e,this[e],this)}),this),t.handler=this),this.proxy=t},e.prototype.mousemove=function(t){var e=t.zrX,n=t.zrY,i=he(this,e,n),r=this._hovered,o=r.target;o&&!o.__zr&&(o=(r=this.findHover(r.x,r.y)).target);var a=this._hovered=i?new ae(e,n):this.findHover(e,n),s=a.target,l=this.proxy;l.setCursor&&l.setCursor(s?s.cursor:"default"),o&&s!==o&&this.dispatchToElement(r,"mouseout",t),this.dispatchToElement(a,"mousemove",t),s&&s!==o&&this.dispatchToElement(a,"mouseover",t)},e.prototype.mouseout=function(t){var e=t.zrEventControl;"only_globalout"!==e&&this.dispatchToElement(this._hovered,"mouseout",t),"no_globalout"!==e&&this.trigger("globalout",{type:"globalout",event:t})},e.prototype.resize=function(){this._hovered=new ae(0,0)},e.prototype.dispatch=function(t,e){var n=this[t];n&&n.call(this,e)},e.prototype.dispose=function(){this.proxy.dispose(),this.storage=null,this.proxy=null,this.painter=null},e.prototype.setCursorStyle=function(t){var e=this.proxy;e.setCursor&&e.setCursor(t)},e.prototype.dispatchToElement=function(t,e,n){var i=(t=t||{}).target;if(!i||!i.silent){for(var r="on"+e,o=function(t,e,n){return{type:t,event:n,target:e.target,topTarget:e.topTarget,cancelBubble:!1,offsetX:n.zrX,offsetY:n.zrY,gestureEvent:n.gestureEvent,pinchX:n.pinchX,pinchY:n.pinchY,pinchScale:n.pinchScale,wheelDelta:n.zrDelta,zrByTouch:n.zrByTouch,which:n.which,stop:re}}(e,t,n);i&&(i[r]&&(o.cancelBubble=!!i[r].call(i,o)),i.trigger(e,o),i=i.__hostTarget?i.__hostTarget:i.parent,!o.cancelBubble););o.cancelBubble||(this.trigger(e,o),this.painter&&this.painter.eachOtherLayer&&this.painter.eachOtherLayer((function(t){"function"==typeof t[r]&&t[r].call(t,o),t.trigger&&t.trigger(e,o)})))}},e.prototype.findHover=function(t,e,n){for(var i=this.storage.getDisplayList(),r=new ae(t,e),o=i.length-1;o>=0;o--){var a=void 0;if(i[o]!==n&&!i[o].ignore&&(a=ue(i[o],t,e))&&(!r.topTarget&&(r.topTarget=i[o]),a!==ie)){r.target=i[o];break}}return r},e.prototype.processGesture=function(t,e){this._gestureMgr||(this._gestureMgr=new te);var n=this._gestureMgr;"start"===e&&n.clear();var i=n.recognize(t,this.findHover(t.zrX,t.zrY,null).target,this.proxy.dom);if("end"===e&&n.clear(),i){var r=i.type;t.gestureEvent=r;var o=new ae;o.target=i.target,this.dispatchToElement(o,r,i.event)}},e}(Bt);function ue(t,e,n){if(t[t.rectHover?"rectContain":"contain"](e,n)){for(var i=t,r=void 0,o=!1;i;){if(i.ignoreClip&&(o=!0),!o){var a=i.getClipPath();if(a&&!a.contain(e,n))return!1;i.silent&&(r=!0)}var s=i.__hostTarget;i=s||i.parent}return!r||ie}return!1}function he(t,e,n){var i=t.painter;return e<0||e>i.getWidth()||n<0||n>i.getHeight()}function ce(){return[1,0,0,1,0,0]}function pe(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t}function de(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function fe(t,e,n){var i=e[0]*n[0]+e[2]*n[1],r=e[1]*n[0]+e[3]*n[1],o=e[0]*n[2]+e[2]*n[3],a=e[1]*n[2]+e[3]*n[3],s=e[0]*n[4]+e[2]*n[5]+e[4],l=e[1]*n[4]+e[3]*n[5]+e[5];return t[0]=i,t[1]=r,t[2]=o,t[3]=a,t[4]=s,t[5]=l,t}function ge(t,e,n){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4]+n[0],t[5]=e[5]+n[1],t}function ye(t,e,n){var i=e[0],r=e[2],o=e[4],a=e[1],s=e[3],l=e[5],u=Math.sin(n),h=Math.cos(n);return t[0]=i*h+a*u,t[1]=-i*u+a*h,t[2]=r*h+s*u,t[3]=-r*u+h*s,t[4]=h*o+u*l,t[5]=h*l-u*o,t}function ve(t,e,n){var i=n[0],r=n[1];return t[0]=e[0]*i,t[1]=e[1]*r,t[2]=e[2]*i,t[3]=e[3]*r,t[4]=e[4]*i,t[5]=e[5]*r,t}function me(t,e){var n=e[0],i=e[2],r=e[4],o=e[1],a=e[3],s=e[5],l=n*a-o*i;return l?(l=1/l,t[0]=a*l,t[1]=-o*l,t[2]=-i*l,t[3]=n*l,t[4]=(i*s-a*r)*l,t[5]=(o*r-n*s)*l,t):null}P(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],(function(t){le.prototype[t]=function(e){var n,i,r=e.zrX,o=e.zrY,a=he(this,r,o);if("mouseup"===t&&a||(i=(n=this.findHover(r,o)).target),"mousedown"===t)this._downEl=i,this._downPoint=[e.zrX,e.zrY],this._upEl=i;else if("mouseup"===t)this._upEl=i;else if("click"===t){if(this._downEl!==this._upEl||!this._downPoint||It(this._downPoint,[e.zrX,e.zrY])>4)return;this._downPoint=null}this.dispatchToElement(n,t,e)}}));var _e=Object.freeze({__proto__:null,create:ce,identity:pe,copy:de,mul:fe,translate:ge,rotate:ye,scale:ve,invert:me,clone:function(t){var e=[1,0,0,1,0,0];return de(e,t),e}}),xe=pe,be=5e-5;function we(t){return t>be||t<-5e-5}var Se=[],Me=[],Te=[1,0,0,1,0,0],Ce=Math.abs,Ie=function(){function t(){}return t.prototype.setPosition=function(t){this.x=t[0],this.y=t[1]},t.prototype.setScale=function(t){this.scaleX=t[0],this.scaleY=t[1]},t.prototype.setOrigin=function(t){this.originX=t[0],this.originY=t[1]},t.prototype.needLocalTransform=function(){return we(this.rotation)||we(this.x)||we(this.y)||we(this.scaleX-1)||we(this.scaleY-1)},t.prototype.updateTransform=function(){var t=this.parent,e=t&&t.transform,n=this.needLocalTransform(),i=this.transform;n||e?(i=i||[1,0,0,1,0,0],n?this.getLocalTransform(i):xe(i),e&&(n?fe(i,t.transform,i):de(i,t.transform)),this.transform=i,this._resolveGlobalScaleRatio(i)):i&&xe(i)},t.prototype._resolveGlobalScaleRatio=function(t){var e=this.globalScaleRatio;if(null!=e&&1!==e){this.getGlobalScale(Se);var n=Se[0]<0?-1:1,i=Se[1]<0?-1:1,r=((Se[0]-n)*e+n)/Se[0]||0,o=((Se[1]-i)*e+i)/Se[1]||0;t[0]*=r,t[1]*=r,t[2]*=o,t[3]*=o}this.invTransform=this.invTransform||[1,0,0,1,0,0],me(this.invTransform,t)},t.prototype.getLocalTransform=function(e){return t.getLocalTransform(this,e)},t.prototype.getComputedTransform=function(){for(var t=this,e=[];t;)e.push(t),t=t.parent;for(;t=e.pop();)t.updateTransform();return this.transform},t.prototype.setLocalTransform=function(t){if(t){var e=t[0]*t[0]+t[1]*t[1],n=t[2]*t[2]+t[3]*t[3];we(e-1)&&(e=Math.sqrt(e)),we(n-1)&&(n=Math.sqrt(n)),t[0]<0&&(e=-e),t[3]<0&&(n=-n),this.rotation=Math.atan2(-t[1]/n,t[0]/e),e<0&&n<0&&(this.rotation+=Math.PI,e=-e,n=-n),this.x=t[4],this.y=t[5],this.scaleX=e,this.scaleY=n}},t.prototype.decomposeTransform=function(){if(this.transform){var t=this.parent,e=this.transform;t&&t.transform&&(fe(Me,t.invTransform,e),e=Me);var n=this.originX,i=this.originY;(n||i)&&(Te[4]=n,Te[5]=i,fe(Me,e,Te),Me[4]-=n,Me[5]-=i,e=Me),this.setLocalTransform(e)}},t.prototype.getGlobalScale=function(t){var e=this.transform;return t=t||[],e?(t[0]=Math.sqrt(e[0]*e[0]+e[1]*e[1]),t[1]=Math.sqrt(e[2]*e[2]+e[3]*e[3]),e[0]<0&&(t[0]=-t[0]),e[3]<0&&(t[1]=-t[1]),t):(t[0]=1,t[1]=1,t)},t.prototype.transformCoordToLocal=function(t,e){var n=[t,e],i=this.invTransform;return i&&Lt(n,n,i),n},t.prototype.transformCoordToGlobal=function(t,e){var n=[t,e],i=this.transform;return i&&Lt(n,n,i),n},t.prototype.getLineScale=function(){var t=this.transform;return t&&Ce(t[0]-1)>1e-10&&Ce(t[3]-1)>1e-10?Math.sqrt(Ce(t[0]*t[3]-t[2]*t[1])):1},t.getLocalTransform=function(t,e){xe(e=e||[]);var n=t.originX||0,i=t.originY||0,r=t.scaleX,o=t.scaleY,a=t.rotation||0,s=t.x,l=t.y;return e[4]-=n,e[5]-=i,e[0]*=r,e[1]*=o,e[2]*=r,e[3]*=o,e[4]*=r,e[5]*=o,a&&ye(e,e,a),e[4]+=n,e[5]+=i,e[4]+=s,e[5]+=l,e},t.initDefaultProps=function(){var e=t.prototype;e.x=0,e.y=0,e.scaleX=1,e.scaleY=1,e.originX=0,e.originY=0,e.rotation=0,e.globalScaleRatio=1}(),t}(),Ae={linear:function(t){return t},quadraticIn:function(t){return t*t},quadraticOut:function(t){return t*(2-t)},quadraticInOut:function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)},cubicIn:function(t){return t*t*t},cubicOut:function(t){return--t*t*t+1},cubicInOut:function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},quarticIn:function(t){return t*t*t*t},quarticOut:function(t){return 1- --t*t*t*t},quarticInOut:function(t){return(t*=2)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},quinticIn:function(t){return t*t*t*t*t},quinticOut:function(t){return--t*t*t*t*t+1},quinticInOut:function(t){return(t*=2)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},sinusoidalIn:function(t){return 1-Math.cos(t*Math.PI/2)},sinusoidalOut:function(t){return Math.sin(t*Math.PI/2)},sinusoidalInOut:function(t){return.5*(1-Math.cos(Math.PI*t))},exponentialIn:function(t){return 0===t?0:Math.pow(1024,t-1)},exponentialOut:function(t){return 1===t?1:1-Math.pow(2,-10*t)},exponentialInOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(2-Math.pow(2,-10*(t-1)))},circularIn:function(t){return 1-Math.sqrt(1-t*t)},circularOut:function(t){return Math.sqrt(1- --t*t)},circularInOut:function(t){return(t*=2)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},elasticIn:function(t){var e,n=.1;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=.4*Math.asin(1/n)/(2*Math.PI),-n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/.4))},elasticOut:function(t){var e,n=.1;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=.4*Math.asin(1/n)/(2*Math.PI),n*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/.4)+1)},elasticInOut:function(t){var e,n=.1,i=.4;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=i*Math.asin(1/n)/(2*Math.PI),(t*=2)<1?n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*-.5:n*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*.5+1)},backIn:function(t){var e=1.70158;return t*t*((e+1)*t-e)},backOut:function(t){var e=1.70158;return--t*t*((e+1)*t+e)+1},backInOut:function(t){var e=2.5949095;return(t*=2)<1?t*t*((e+1)*t-e)*.5:.5*((t-=2)*t*((e+1)*t+e)+2)},bounceIn:function(t){return 1-Ae.bounceOut(1-t)},bounceOut:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},bounceInOut:function(t){return t<.5?.5*Ae.bounceIn(2*t):.5*Ae.bounceOut(2*t-1)+.5}},De=function(){function t(t){this._initialized=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=t.life||1e3,this._delay=t.delay||0,this.loop=null!=t.loop&&t.loop,this.gap=t.gap||0,this.easing=t.easing||"linear",this.onframe=t.onframe,this.ondestroy=t.ondestroy,this.onrestart=t.onrestart}return t.prototype.step=function(t,e){if(this._initialized||(this._startTime=t+this._delay,this._initialized=!0),!this._paused){var n=(t-this._startTime-this._pausedTime)/this._life;n<0&&(n=0),n=Math.min(n,1);var i=this.easing,r="string"==typeof i?Ae[i]:i,o="function"==typeof r?r(n):n;if(this.onframe&&this.onframe(o),1===n){if(!this.loop)return!0;this._restart(t),this.onrestart&&this.onrestart()}return!1}this._pausedTime+=e},t.prototype._restart=function(t){var e=(t-this._startTime-this._pausedTime)%this._life;this._startTime=t-e+this.gap,this._pausedTime=0},t.prototype.pause=function(){this._paused=!0},t.prototype.resume=function(){this._paused=!1},t}(),ke=function(t){this.value=t},Le=function(){function t(){this._len=0}return t.prototype.insert=function(t){var e=new ke(t);return this.insertEntry(e),e},t.prototype.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t):this.head=this.tail=t,this._len++},t.prototype.remove=function(t){var e=t.prev,n=t.next;e?e.next=n:this.head=n,n?n.prev=e:this.tail=e,t.next=t.prev=null,this._len--},t.prototype.len=function(){return this._len},t.prototype.clear=function(){this.head=this.tail=null,this._len=0},t}(),Pe=function(){function t(t){this._list=new Le,this._maxSize=10,this._map={},this._maxSize=t}return t.prototype.put=function(t,e){var n=this._list,i=this._map,r=null;if(null==i[t]){var o=n.len(),a=this._lastRemovedEntry;if(o>=this._maxSize&&o>0){var s=n.head;n.remove(s),delete i[s.key],r=s.value,this._lastRemovedEntry=s}a?a.value=e:a=new ke(e),a.key=t,n.insertEntry(a),i[t]=a}return r},t.prototype.get=function(t){var e=this._map[t],n=this._list;if(null!=e)return e!==n.tail&&(n.remove(e),n.insertEntry(e)),e.value},t.prototype.clear=function(){this._list.clear(),this._map={}},t.prototype.len=function(){return this._list.len()},t}(),Oe={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function Re(t){return(t=Math.round(t))<0?0:t>255?255:t}function Ne(t){return t<0?0:t>1?1:t}function Ee(t){var e=t;return e.length&&"%"===e.charAt(e.length-1)?Re(parseFloat(e)/100*255):Re(parseInt(e,10))}function Be(t){var e=t;return e.length&&"%"===e.charAt(e.length-1)?Ne(parseFloat(e)/100):Ne(parseFloat(e))}function ze(t,e,n){return n<0?n+=1:n>1&&(n-=1),6*n<1?t+(e-t)*n*6:2*n<1?e:3*n<2?t+(e-t)*(2/3-n)*6:t}function Ve(t,e,n){return t+(e-t)*n}function Fe(t,e,n,i,r){return t[0]=e,t[1]=n,t[2]=i,t[3]=r,t}function He(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}var Ge=new Pe(20),We=null;function Ue(t,e){We&&He(We,e),We=Ge.put(t,We||e.slice())}function Ye(t,e){if(t){e=e||[];var n=Ge.get(t);if(n)return He(e,n);var i=(t+="").replace(/ /g,"").toLowerCase();if(i in Oe)return He(e,Oe[i]),Ue(t,e),e;var r,o=i.length;if("#"===i.charAt(0))return 4===o||5===o?(r=parseInt(i.slice(1,4),16))>=0&&r<=4095?(Fe(e,(3840&r)>>4|(3840&r)>>8,240&r|(240&r)>>4,15&r|(15&r)<<4,5===o?parseInt(i.slice(4),16)/15:1),Ue(t,e),e):void Fe(e,0,0,0,1):7===o||9===o?(r=parseInt(i.slice(1,7),16))>=0&&r<=16777215?(Fe(e,(16711680&r)>>16,(65280&r)>>8,255&r,9===o?parseInt(i.slice(7),16)/255:1),Ue(t,e),e):void Fe(e,0,0,0,1):void 0;var a=i.indexOf("("),s=i.indexOf(")");if(-1!==a&&s+1===o){var l=i.substr(0,a),u=i.substr(a+1,s-(a+1)).split(","),h=1;switch(l){case"rgba":if(4!==u.length)return 3===u.length?Fe(e,+u[0],+u[1],+u[2],1):Fe(e,0,0,0,1);h=Be(u.pop());case"rgb":return 3!==u.length?void Fe(e,0,0,0,1):(Fe(e,Ee(u[0]),Ee(u[1]),Ee(u[2]),h),Ue(t,e),e);case"hsla":return 4!==u.length?void Fe(e,0,0,0,1):(u[3]=Be(u[3]),Xe(u,e),Ue(t,e),e);case"hsl":return 3!==u.length?void Fe(e,0,0,0,1):(Xe(u,e),Ue(t,e),e);default:return}}Fe(e,0,0,0,1)}}function Xe(t,e){var n=(parseFloat(t[0])%360+360)%360/360,i=Be(t[1]),r=Be(t[2]),o=r<=.5?r*(i+1):r+i-r*i,a=2*r-o;return Fe(e=e||[],Re(255*ze(a,o,n+1/3)),Re(255*ze(a,o,n)),Re(255*ze(a,o,n-1/3)),1),4===t.length&&(e[3]=t[3]),e}function Ze(t,e){var n=Ye(t);if(n){for(var i=0;i<3;i++)n[i]=e<0?n[i]*(1-e)|0:(255-n[i])*e+n[i]|0,n[i]>255?n[i]=255:n[i]<0&&(n[i]=0);return tn(n,4===n.length?"rgba":"rgb")}}function je(t){var e=Ye(t);if(e)return((1<<24)+(e[0]<<16)+(e[1]<<8)+ +e[2]).toString(16).slice(1)}function qe(t,e,n){if(e&&e.length&&t>=0&&t<=1){n=n||[];var i=t*(e.length-1),r=Math.floor(i),o=Math.ceil(i),a=e[r],s=e[o],l=i-r;return n[0]=Re(Ve(a[0],s[0],l)),n[1]=Re(Ve(a[1],s[1],l)),n[2]=Re(Ve(a[2],s[2],l)),n[3]=Ne(Ve(a[3],s[3],l)),n}}var Ke=qe;function $e(t,e,n){if(e&&e.length&&t>=0&&t<=1){var i=t*(e.length-1),r=Math.floor(i),o=Math.ceil(i),a=Ye(e[r]),s=Ye(e[o]),l=i-r,u=tn([Re(Ve(a[0],s[0],l)),Re(Ve(a[1],s[1],l)),Re(Ve(a[2],s[2],l)),Ne(Ve(a[3],s[3],l))],"rgba");return n?{color:u,leftIndex:r,rightIndex:o,value:i}:u}}var Je=$e;function Qe(t,e){var n=Ye(t);if(n&&null!=e)return n[3]=Ne(e),tn(n,"rgba")}function tn(t,e){if(t&&t.length){var n=t[0]+","+t[1]+","+t[2];return"rgba"!==e&&"hsva"!==e&&"hsla"!==e||(n+=","+t[3]),e+"("+n+")"}}function en(t,e){var n=Ye(t);return n?(.299*n[0]+.587*n[1]+.114*n[2])*n[3]/255+(1-n[3])*e:0}var nn=Object.freeze({__proto__:null,parse:Ye,lift:Ze,toHex:je,fastLerp:qe,fastMapToColor:Ke,lerp:$e,mapToColor:Je,modifyHSL:function(t,e,n,i){var r,o=Ye(t);if(t)return o=function(t){if(t){var e,n,i=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.min(i,r,o),s=Math.max(i,r,o),l=s-a,u=(s+a)/2;if(0===l)e=0,n=0;else{n=u<.5?l/(s+a):l/(2-s-a);var h=((s-i)/6+l/2)/l,c=((s-r)/6+l/2)/l,p=((s-o)/6+l/2)/l;i===s?e=p-c:r===s?e=1/3+h-p:o===s&&(e=2/3+c-h),e<0&&(e+=1),e>1&&(e-=1)}var d=[360*e,n,u];return null!=t[3]&&d.push(t[3]),d}}(o),null!=e&&(o[0]=(r=e,(r=Math.round(r))<0?0:r>360?360:r)),null!=n&&(o[1]=Be(n)),null!=i&&(o[2]=Be(i)),tn(Xe(o),"rgba")},modifyAlpha:Qe,stringify:tn,lum:en,random:function(){return"rgb("+Math.round(255*Math.random())+","+Math.round(255*Math.random())+","+Math.round(255*Math.random())+")"}}),rn=Array.prototype.slice;function on(t,e,n){return(e-t)*n+t}function an(t,e,n,i){for(var r=e.length,o=0;o<r;o++)t[o]=on(e[o],n[o],i)}function sn(t,e,n,i){for(var r=e.length,o=0;o<r;o++)t[o]=e[o]+n[o]*i;return t}function ln(t,e,n,i){for(var r=e.length,o=r&&e[0].length,a=0;a<r;a++){t[a]||(t[a]=[]);for(var s=0;s<o;s++)t[a][s]=e[a][s]+n[a][s]*i}return t}function un(t,e,n){var i=t,r=e;if(i.push&&r.push){var o=i.length,a=r.length;if(o!==a)if(o>a)i.length=a;else for(var s=o;s<a;s++)i.push(1===n?r[s]:rn.call(r[s]));var l=i[0]&&i[0].length;for(s=0;s<i.length;s++)if(1===n)isNaN(i[s])&&(i[s]=r[s]);else for(var u=0;u<l;u++)isNaN(i[s][u])&&(i[s][u]=r[s][u])}}function hn(t,e){var n=t.length;if(n!==e.length)return!1;for(var i=0;i<n;i++)if(t[i]!==e[i])return!1;return!0}function cn(t,e,n,i,r,o,a){var s=.5*(n-t),l=.5*(i-e);return(2*(e-n)+s+l)*a+(-3*(e-n)-2*s-l)*o+s*r+e}function pn(t,e,n,i,r,o,a,s){for(var l=e.length,u=0;u<l;u++)t[u]=cn(e[u],n[u],i[u],r[u],o,a,s)}function dn(t){if(L(t)){var e=t.length;if(L(t[0])){for(var n=[],i=0;i<e;i++)n.push(rn.call(t[i]));return n}return rn.call(t)}return t}function fn(t){return t[0]=Math.floor(t[0]),t[1]=Math.floor(t[1]),t[2]=Math.floor(t[2]),"rgba("+t.join(",")+")"}var gn,yn,vn=[0,0,0,0],mn=function(){function t(t){this.keyframes=[],this.maxTime=0,this.arrDim=0,this.interpolable=!0,this._needsSort=!1,this._isAllValueEqual=!0,this._lastFrame=0,this._lastFramePercent=0,this.propName=t}return t.prototype.isFinished=function(){return this._finished},t.prototype.setFinished=function(){this._finished=!0,this._additiveTrack&&this._additiveTrack.setFinished()},t.prototype.needsAnimate=function(){return!this._isAllValueEqual&&this.keyframes.length>=2&&this.interpolable},t.prototype.getAdditiveTrack=function(){return this._additiveTrack},t.prototype.addKeyframe=function(t,e){t>=this.maxTime?this.maxTime=t:this._needsSort=!0;var n=this.keyframes,i=n.length;if(this.interpolable)if(L(e)){var r=function(t){return L(t&&t[0])?2:1}(e);if(i>0&&this.arrDim!==r)return void(this.interpolable=!1);if(1===r&&"number"!=typeof e[0]||2===r&&"number"!=typeof e[0][0])return void(this.interpolable=!1);if(i>0){var o=n[i-1];this._isAllValueEqual&&(1===r&&hn(e,o.value)||(this._isAllValueEqual=!1))}this.arrDim=r}else{if(this.arrDim>0)return void(this.interpolable=!1);if("string"==typeof e){var a=Ye(e);a?(e=a,this.isValueColor=!0):this.interpolable=!1}else if("number"!=typeof e)return void(this.interpolable=!1);if(this._isAllValueEqual&&i>0){o=n[i-1];(this.isValueColor&&!hn(o.value,e)||o.value!==e)&&(this._isAllValueEqual=!1)}}var s={time:t,value:e,percent:0};return this.keyframes.push(s),s},t.prototype.prepare=function(t){var e=this.keyframes;this._needsSort&&e.sort((function(t,e){return t.time-e.time}));for(var n=this.arrDim,i=e.length,r=e[i-1],o=0;o<i;o++)e[o].percent=e[o].time/this.maxTime,n>0&&o!==i-1&&un(e[o].value,r.value,n);if(t&&this.needsAnimate()&&t.needsAnimate()&&n===t.arrDim&&this.isValueColor===t.isValueColor&&!t._finished){this._additiveTrack=t;var a=e[0].value;for(o=0;o<i;o++)0===n?this.isValueColor?e[o].additiveValue=sn([],e[o].value,a,-1):e[o].additiveValue=e[o].value-a:1===n?e[o].additiveValue=sn([],e[o].value,a,-1):2===n&&(e[o].additiveValue=ln([],e[o].value,a,-1))}},t.prototype.step=function(t,e){if(!this._finished){this._additiveTrack&&this._additiveTrack._finished&&(this._additiveTrack=null);var n,i=null!=this._additiveTrack,r=i?"additiveValue":"value",o=this.keyframes,a=this.keyframes.length,s=this.propName,l=this.arrDim,u=this.isValueColor;if(e<0)n=0;else if(e<this._lastFramePercent){for(n=Math.min(this._lastFrame+1,a-1);n>=0&&!(o[n].percent<=e);n--);n=Math.min(n,a-2)}else{for(n=this._lastFrame;n<a&&!(o[n].percent>e);n++);n=Math.min(n-1,a-2)}var h=o[n+1],c=o[n];if(c&&h){this._lastFrame=n,this._lastFramePercent=e;var p=h.percent-c.percent;if(0!==p){var d=(e-c.percent)/p,f=i?this._additiveValue:u?vn:t[s];if((l>0||u)&&!f&&(f=this._additiveValue=[]),this.useSpline){var g=o[n][r],y=o[0===n?n:n-1][r],v=o[n>a-2?a-1:n+1][r],m=o[n>a-3?a-1:n+2][r];if(l>0)1===l?pn(f,y,g,v,m,d,d*d,d*d*d):function(t,e,n,i,r,o,a,s){for(var l=e.length,u=e[0].length,h=0;h<l;h++){t[h]||(t[1]=[]);for(var c=0;c<u;c++)t[h][c]=cn(e[h][c],n[h][c],i[h][c],r[h][c],o,a,s)}}(f,y,g,v,m,d,d*d,d*d*d);else if(u)pn(f,y,g,v,m,d,d*d,d*d*d),i||(t[s]=fn(f));else{var _=void 0;_=this.interpolable?cn(y,g,v,m,d,d*d,d*d*d):v,i?this._additiveValue=_:t[s]=_}}else if(l>0)1===l?an(f,c[r],h[r],d):function(t,e,n,i){for(var r=e.length,o=r&&e[0].length,a=0;a<r;a++){t[a]||(t[a]=[]);for(var s=0;s<o;s++)t[a][s]=on(e[a][s],n[a][s],i)}}(f,c[r],h[r],d);else if(u)an(f,c[r],h[r],d),i||(t[s]=fn(f));else{_=void 0;_=this.interpolable?on(c[r],h[r],d):function(t,e,n){return n>.5?e:t}(c[r],h[r],d),i?this._additiveValue=_:t[s]=_}i&&this._addToTarget(t)}}}},t.prototype._addToTarget=function(t){var e=this.arrDim,n=this.propName,i=this._additiveValue;0===e?this.isValueColor?(Ye(t[n],vn),sn(vn,vn,i,1),t[n]=fn(vn)):t[n]=t[n]+i:1===e?sn(t[n],t[n],i,1):2===e&&ln(t[n],t[n],i,1)},t}(),_n=function(){function t(t,e,n){this._tracks={},this._trackKeys=[],this._delay=0,this._maxTime=0,this._paused=!1,this._started=0,this._clip=null,this._target=t,this._loop=e,e&&n?b("Can' use additive animation on looped animation."):this._additiveAnimators=n}return t.prototype.getTarget=function(){return this._target},t.prototype.changeTarget=function(t){this._target=t},t.prototype.when=function(t,e){return this.whenWithKeys(t,e,E(e))},t.prototype.whenWithKeys=function(t,e,n){for(var i=this._tracks,r=0;r<n.length;r++){var o=n[r],a=i[o];if(!a){a=i[o]=new mn(o);var s=void 0,l=this._getAdditiveTrack(o);if(l){var u=l.keyframes[l.keyframes.length-1];s=u&&u.value,l.isValueColor&&s&&(s=fn(s))}else s=this._target[o];if(null==s)continue;0!==t&&a.addKeyframe(0,dn(s)),this._trackKeys.push(o)}a.addKeyframe(t,dn(e[o]))}return this._maxTime=Math.max(this._maxTime,t),this},t.prototype.pause=function(){this._clip.pause(),this._paused=!0},t.prototype.resume=function(){this._clip.resume(),this._paused=!1},t.prototype.isPaused=function(){return!!this._paused},t.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var t=this._doneList;if(t)for(var e=t.length,n=0;n<e;n++)t[n].call(this)},t.prototype._abortedCallback=function(){this._setTracksFinished();var t=this.animation,e=this._abortedList;if(t&&t.removeClip(this._clip),this._clip=null,e)for(var n=0;n<e.length;n++)e[n].call(this)},t.prototype._setTracksFinished=function(){for(var t=this._tracks,e=this._trackKeys,n=0;n<e.length;n++)t[e[n]].setFinished()},t.prototype._getAdditiveTrack=function(t){var e,n=this._additiveAnimators;if(n)for(var i=0;i<n.length;i++){var r=n[i].getTrack(t);r&&(e=r)}return e},t.prototype.start=function(t,e){if(!(this._started>0)){this._started=1;for(var n=this,i=[],r=0;r<this._trackKeys.length;r++){var o=this._trackKeys[r],a=this._tracks[o],s=this._getAdditiveTrack(o),l=a.keyframes;if(a.prepare(s),a.needsAnimate())i.push(a);else if(!a.interpolable){var u=l[l.length-1];u&&(n._target[a.propName]=u.value)}}if(i.length||e){var h=new De({life:this._maxTime,loop:this._loop,delay:this._delay,onframe:function(t){n._started=2;var e=n._additiveAnimators;if(e){for(var r=!1,o=0;o<e.length;o++)if(e[o]._clip){r=!0;break}r||(n._additiveAnimators=null)}for(o=0;o<i.length;o++)i[o].step(n._target,t);var a=n._onframeList;if(a)for(o=0;o<a.length;o++)a[o](n._target,t)},ondestroy:function(){n._doneCallback()}});this._clip=h,this.animation&&this.animation.addClip(h),t&&"spline"!==t&&(h.easing=t)}else this._doneCallback();return this}},t.prototype.stop=function(t){if(this._clip){var e=this._clip;t&&e.onframe(1),this._abortedCallback()}},t.prototype.delay=function(t){return this._delay=t,this},t.prototype.during=function(t){return t&&(this._onframeList||(this._onframeList=[]),this._onframeList.push(t)),this},t.prototype.done=function(t){return t&&(this._doneList||(this._doneList=[]),this._doneList.push(t)),this},t.prototype.aborted=function(t){return t&&(this._abortedList||(this._abortedList=[]),this._abortedList.push(t)),this},t.prototype.getClip=function(){return this._clip},t.prototype.getTrack=function(t){return this._tracks[t]},t.prototype.stopTracks=function(t,e){if(!t.length||!this._clip)return!0;for(var n=this._tracks,i=this._trackKeys,r=0;r<t.length;r++){var o=n[t[r]];o&&(e?o.step(this._target,1):1===this._started&&o.step(this._target,0),o.setFinished())}var a=!0;for(r=0;r<i.length;r++)if(!n[i[r]].isFinished()){a=!1;break}return a&&this._abortedCallback(),a},t.prototype.saveFinalToTarget=function(t,e){if(t){e=e||this._trackKeys;for(var n=0;n<e.length;n++){var i=e[n],r=this._tracks[i];if(r&&!r.isFinished()){var o=r.keyframes,a=o[o.length-1];if(a){var s=dn(a.value);r.isValueColor&&(s=fn(s)),t[i]=s}}}}},t.prototype.__changeFinalValue=function(t,e){e=e||E(t);for(var n=0;n<e.length;n++){var i=e[n],r=this._tracks[i];if(r){var o=r.keyframes;if(o.length>1){var a=o.pop();r.addKeyframe(a.time,t[i]),r.prepare(r.getAdditiveTrack())}}}},t}(),xn=function(){function t(t,e){this.x=t||0,this.y=e||0}return t.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this},t.prototype.clone=function(){return new t(this.x,this.y)},t.prototype.set=function(t,e){return this.x=t,this.y=e,this},t.prototype.equal=function(t){return t.x===this.x&&t.y===this.y},t.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this},t.prototype.scale=function(t){this.x*=t,this.y*=t},t.prototype.scaleAndAdd=function(t,e){this.x+=t.x*e,this.y+=t.y*e},t.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this},t.prototype.dot=function(t){return this.x*t.x+this.y*t.y},t.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},t.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},t.prototype.normalize=function(){var t=this.len();return this.x/=t,this.y/=t,this},t.prototype.distance=function(t){var e=this.x-t.x,n=this.y-t.y;return Math.sqrt(e*e+n*n)},t.prototype.distanceSquare=function(t){var e=this.x-t.x,n=this.y-t.y;return e*e+n*n},t.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},t.prototype.transform=function(t){if(t){var e=this.x,n=this.y;return this.x=t[0]*e+t[2]*n+t[4],this.y=t[1]*e+t[3]*n+t[5],this}},t.prototype.toArray=function(t){return t[0]=this.x,t[1]=this.y,t},t.prototype.fromArray=function(t){this.x=t[0],this.y=t[1]},t.set=function(t,e,n){t.x=e,t.y=n},t.copy=function(t,e){t.x=e.x,t.y=e.y},t.len=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)},t.lenSquare=function(t){return t.x*t.x+t.y*t.y},t.dot=function(t,e){return t.x*e.x+t.y*e.y},t.add=function(t,e,n){t.x=e.x+n.x,t.y=e.y+n.y},t.sub=function(t,e,n){t.x=e.x-n.x,t.y=e.y-n.y},t.scale=function(t,e,n){t.x=e.x*n,t.y=e.y*n},t.scaleAndAdd=function(t,e,n,i){t.x=e.x+n.x*i,t.y=e.y+n.y*i},t.lerp=function(t,e,n,i){var r=1-i;t.x=r*e.x+i*n.x,t.y=r*e.y+i*n.y},t}(),bn=Math.min,wn=Math.max,Sn=new xn,Mn=new xn,Tn=new xn,Cn=new xn,In=new xn,An=new xn,Dn=function(){function t(t,e,n,i){n<0&&isFinite(n)&&(t+=n,n=-n),i<0&&isFinite(i)&&(e+=i,i=-i),this.x=t,this.y=e,this.width=n,this.height=i}return t.prototype.union=function(t){var e=bn(t.x,this.x),n=bn(t.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=wn(t.x+t.width,this.x+this.width)-e:this.width=t.width,isFinite(this.y)&&isFinite(this.height)?this.height=wn(t.y+t.height,this.y+this.height)-n:this.height=t.height,this.x=e,this.y=n},t.prototype.applyTransform=function(e){t.applyTransform(this,this,e)},t.prototype.calculateTransform=function(t){var e=this,n=t.width/e.width,i=t.height/e.height,r=[1,0,0,1,0,0];return ge(r,r,[-e.x,-e.y]),ve(r,r,[n,i]),ge(r,r,[t.x,t.y]),r},t.prototype.intersect=function(e,n){if(!e)return!1;e instanceof t||(e=t.create(e));var i=this,r=i.x,o=i.x+i.width,a=i.y,s=i.y+i.height,l=e.x,u=e.x+e.width,h=e.y,c=e.y+e.height,p=!(o<l||u<r||s<h||c<a);if(n){var d=1/0,f=0,g=Math.abs(o-l),y=Math.abs(u-r),v=Math.abs(s-h),m=Math.abs(c-a),_=Math.min(g,y),x=Math.min(v,m);o<l||u<r?_>f&&(f=_,g<y?xn.set(An,-g,0):xn.set(An,y,0)):_<d&&(d=_,g<y?xn.set(In,g,0):xn.set(In,-y,0)),s<h||c<a?x>f&&(f=x,v<m?xn.set(An,0,-v):xn.set(An,0,m)):_<d&&(d=_,v<m?xn.set(In,0,v):xn.set(In,0,-m))}return n&&xn.copy(n,p?In:An),p},t.prototype.contain=function(t,e){var n=this;return t>=n.x&&t<=n.x+n.width&&e>=n.y&&e<=n.y+n.height},t.prototype.clone=function(){return new t(this.x,this.y,this.width,this.height)},t.prototype.copy=function(e){t.copy(this,e)},t.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},t.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},t.prototype.isZero=function(){return 0===this.width||0===this.height},t.create=function(e){return new t(e.x,e.y,e.width,e.height)},t.copy=function(t,e){t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height},t.applyTransform=function(e,n,i){if(i){if(i[1]<1e-5&&i[1]>-1e-5&&i[2]<1e-5&&i[2]>-1e-5){var r=i[0],o=i[3],a=i[4],s=i[5];return e.x=n.x*r+a,e.y=n.y*o+s,e.width=n.width*r,e.height=n.height*o,e.width<0&&(e.x+=e.width,e.width=-e.width),void(e.height<0&&(e.y+=e.height,e.height=-e.height))}Sn.x=Tn.x=n.x,Sn.y=Cn.y=n.y,Mn.x=Cn.x=n.x+n.width,Mn.y=Tn.y=n.y+n.height,Sn.transform(i),Cn.transform(i),Mn.transform(i),Tn.transform(i),e.x=bn(Sn.x,Mn.x,Tn.x,Cn.x),e.y=bn(Sn.y,Mn.y,Tn.y,Cn.y);var l=wn(Sn.x,Mn.x,Tn.x,Cn.x),u=wn(Sn.y,Mn.y,Tn.y,Cn.y);e.width=l-e.x,e.height=u-e.y}else e!==n&&t.copy(e,n)},t}(),kn={},Ln="12px sans-serif";var Pn={measureText:function(t,e){return gn||(gn=I().getContext("2d")),yn!==e&&(yn=gn.font=e||Ln),gn.measureText(t)}};function On(t,e){var n=kn[e=e||Ln];n||(n=kn[e]=new Pe(500));var i=n.get(t);return null==i&&(i=Pn.measureText(t,e).width,n.put(t,i)),i}function Rn(t,e,n,i){var r=On(t,e),o=zn(e),a=En(0,r,n),s=Bn(0,o,i);return new Dn(a,s,r,o)}function Nn(t,e,n,i){var r=((t||"")+"").split("\n");if(1===r.length)return Rn(r[0],e,n,i);for(var o=new Dn(0,0,0,0),a=0;a<r.length;a++){var s=Rn(r[a],e,n,i);0===a?o.copy(s):o.union(s)}return o}function En(t,e,n){return"right"===n?t-=e:"center"===n&&(t-=e/2),t}function Bn(t,e,n){return"middle"===n?t-=e/2:"bottom"===n&&(t-=e),t}function zn(t){return On("国",t)}function Vn(t,e){return"string"==typeof t?t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t):t}function Fn(t,e,n){var i=e.position||"inside",r=null!=e.distance?e.distance:5,o=n.height,a=n.width,s=o/2,l=n.x,u=n.y,h="left",c="top";if(i instanceof Array)l+=Vn(i[0],n.width),u+=Vn(i[1],n.height),h=null,c=null;else switch(i){case"left":l-=r,u+=s,h="right",c="middle";break;case"right":l+=r+a,u+=s,c="middle";break;case"top":l+=a/2,u-=r,h="center",c="bottom";break;case"bottom":l+=a/2,u+=o+r,h="center";break;case"inside":l+=a/2,u+=s,h="center",c="middle";break;case"insideLeft":l+=r,u+=s,c="middle";break;case"insideRight":l+=a-r,u+=s,h="right",c="middle";break;case"insideTop":l+=a/2,u+=r,h="center";break;case"insideBottom":l+=a/2,u+=o-r,h="center",c="bottom";break;case"insideTopLeft":l+=r,u+=r;break;case"insideTopRight":l+=a-r,u+=r,h="right";break;case"insideBottomLeft":l+=r,u+=o-r,c="bottom";break;case"insideBottomRight":l+=a-r,u+=o-r,h="right",c="bottom"}return(t=t||{}).x=l,t.y=u,t.align=h,t.verticalAlign=c,t}var Hn=1;"undefined"!=typeof window&&(Hn=Math.max(window.devicePixelRatio||window.screen&&window.screen.deviceXDPI/window.screen.logicalXDPI||1,1));var Gn=Hn,Wn="#333",Un="#ccc",Yn="__zr_normal__",Xn=["x","y","scaleX","scaleY","originX","originY","rotation","ignore"],Zn={x:!0,y:!0,scaleX:!0,scaleY:!0,originX:!0,originY:!0,rotation:!0,ignore:!1},jn={},qn=new Dn(0,0,0,0),Kn=function(){function t(t){this.id=x(),this.animators=[],this.currentStates=[],this.states={},this._init(t)}return t.prototype._init=function(t){this.attr(t)},t.prototype.drift=function(t,e,n){switch(this.draggable){case"horizontal":e=0;break;case"vertical":t=0}var i=this.transform;i||(i=this.transform=[1,0,0,1,0,0]),i[4]+=t,i[5]+=e,this.decomposeTransform(),this.markRedraw()},t.prototype.beforeUpdate=function(){},t.prototype.afterUpdate=function(){},t.prototype.update=function(){this.updateTransform(),this.__dirty&&this.updateInnerText()},t.prototype.updateInnerText=function(t){var e=this._textContent;if(e&&(!e.ignore||t)){this.textConfig||(this.textConfig={});var n=this.textConfig,i=n.local,r=e.attachedTransform,o=void 0,a=void 0,s=!1;r.parent=i?this:null;var l=!1;if(r.x=e.x,r.y=e.y,r.originX=e.originX,r.originY=e.originY,r.rotation=e.rotation,r.scaleX=e.scaleX,r.scaleY=e.scaleY,null!=n.position){var u=qn;n.layoutRect?u.copy(n.layoutRect):u.copy(this.getBoundingRect()),i||u.applyTransform(this.transform),this.calculateTextPosition?this.calculateTextPosition(jn,n,u):Fn(jn,n,u),r.x=jn.x,r.y=jn.y,o=jn.align,a=jn.verticalAlign;var h=n.origin;if(h&&null!=n.rotation){var c=void 0,p=void 0;"center"===h?(c=.5*u.width,p=.5*u.height):(c=Vn(h[0],u.width),p=Vn(h[1],u.height)),l=!0,r.originX=-r.x+c+(i?0:u.x),r.originY=-r.y+p+(i?0:u.y)}}null!=n.rotation&&(r.rotation=n.rotation);var d=n.offset;d&&(r.x+=d[0],r.y+=d[1],l||(r.originX=-d[0],r.originY=-d[1]));var f=null==n.inside?"string"==typeof n.position&&n.position.indexOf("inside")>=0:n.inside,g=this._innerTextDefaultStyle||(this._innerTextDefaultStyle={}),y=void 0,v=void 0,m=void 0;f&&this.canBeInsideText()?(y=n.insideFill,v=n.insideStroke,null!=y&&"auto"!==y||(y=this.getInsideTextFill()),null!=v&&"auto"!==v||(v=this.getInsideTextStroke(y),m=!0)):(y=n.outsideFill,v=n.outsideStroke,null!=y&&"auto"!==y||(y=this.getOutsideFill()),null!=v&&"auto"!==v||(v=this.getOutsideStroke(y),m=!0)),(y=y||"#000")===g.fill&&v===g.stroke&&m===g.autoStroke&&o===g.align&&a===g.verticalAlign||(s=!0,g.fill=y,g.stroke=v,g.autoStroke=m,g.align=o,g.verticalAlign=a,e.setDefaultTextStyle(g)),s&&e.dirtyStyle(),e.markRedraw()}},t.prototype.canBeInsideText=function(){return!0},t.prototype.getInsideTextFill=function(){return"#fff"},t.prototype.getInsideTextStroke=function(t){return"#000"},t.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?Un:Wn},t.prototype.getOutsideStroke=function(t){var e=this.__zr&&this.__zr.getBackgroundColor(),n="string"==typeof e&&Ye(e);n||(n=[255,255,255,1]);for(var i=n[3],r=this.__zr.isDarkMode(),o=0;o<3;o++)n[o]=n[o]*i+(r?0:255)*(1-i);return n[3]=1,tn(n,"rgba")},t.prototype.traverse=function(t,e){},t.prototype.attrKV=function(t,e){"textConfig"===t?this.setTextConfig(e):"textContent"===t?this.setTextContent(e):"clipPath"===t?this.setClipPath(e):"extra"===t?(this.extra=this.extra||{},T(this.extra,e)):this[t]=e},t.prototype.hide=function(){this.ignore=!0,this.markRedraw()},t.prototype.show=function(){this.ignore=!1,this.markRedraw()},t.prototype.attr=function(t,e){if("string"==typeof t)this.attrKV(t,e);else if(U(t))for(var n=E(t),i=0;i<n.length;i++){var r=n[i];this.attrKV(r,t[r])}return this.markRedraw(),this},t.prototype.saveCurrentToNormalState=function(t){this._innerSaveToNormal(t);for(var e=this._normalState,n=0;n<this.animators.length;n++){var i=this.animators[n],r=i.__fromStateTransition;if(!r||r===Yn){var o=i.targetName,a=o?e[o]:e;i.saveFinalToTarget(a)}}},t.prototype._innerSaveToNormal=function(t){var e=this._normalState;e||(e=this._normalState={}),t.textConfig&&!e.textConfig&&(e.textConfig=this.textConfig),this._savePrimaryToNormal(t,e,Xn)},t.prototype._savePrimaryToNormal=function(t,e,n){for(var i=0;i<n.length;i++){var r=n[i];null==t[r]||r in e||(e[r]=this[r])}},t.prototype.hasState=function(){return this.currentStates.length>0},t.prototype.getState=function(t){return this.states[t]},t.prototype.ensureState=function(t){var e=this.states;return e[t]||(e[t]={}),e[t]},t.prototype.clearStates=function(t){this.useState(Yn,!1,t)},t.prototype.useState=function(e,n,i){var r=e===Yn;if(this.hasState()||!r){var o=this.currentStates,a=this.stateTransition;if(!(A(o,e)>=0)||!n&&1!==o.length){var s;if(this.stateProxy&&!r&&(s=this.stateProxy(e)),s||(s=this.states&&this.states[e]),s||r){r||this.saveCurrentToNormalState(s);var l=!(!s||!s.hoverLayer);return l&&this._toggleHoverLayerFlag(!0),this._applyStateObj(e,s,this._normalState,n,!i&&!this.__inHover&&a&&a.duration>0,a),this._textContent&&this._textContent.useState(e,n),this._textGuide&&this._textGuide.useState(e,n),r?(this.currentStates=[],this._normalState={}):n?this.currentStates.push(e):this.currentStates=[e],this._updateAnimationTargets(),this.markRedraw(),!l&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~t.REDARAW_BIT),s}b("State "+e+" not exists.")}}},t.prototype.useStates=function(e,n){if(e.length){var i=[],r=this.currentStates,o=e.length,a=o===r.length;if(a)for(var s=0;s<o;s++)if(e[s]!==r[s]){a=!1;break}if(a)return;for(s=0;s<o;s++){var l=e[s],u=void 0;this.stateProxy&&(u=this.stateProxy(l,e)),u||(u=this.states[l]),u&&i.push(u)}var h=!(!i[o-1]||!i[o-1].hoverLayer);h&&this._toggleHoverLayerFlag(!0);var c=this._mergeStates(i),p=this.stateTransition;this.saveCurrentToNormalState(c),this._applyStateObj(e.join(","),c,this._normalState,!1,!n&&!this.__inHover&&p&&p.duration>0,p),this._textContent&&this._textContent.useStates(e),this._textGuide&&this._textGuide.useStates(e),this._updateAnimationTargets(),this.currentStates=e.slice(),this.markRedraw(),!h&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~t.REDARAW_BIT)}else this.clearStates()},t.prototype._updateAnimationTargets=function(){for(var t=0;t<this.animators.length;t++){var e=this.animators[t];e.targetName&&e.changeTarget(this[e.targetName])}},t.prototype.removeState=function(t){var e=A(this.currentStates,t);if(e>=0){var n=this.currentStates.slice();n.splice(e,1),this.useStates(n)}},t.prototype.replaceState=function(t,e,n){var i=this.currentStates.slice(),r=A(i,t),o=A(i,e)>=0;r>=0?o?i.splice(r,1):i[r]=e:n&&!o&&i.push(e),this.useStates(i)},t.prototype.toggleState=function(t,e){e?this.useState(t,!0):this.removeState(t)},t.prototype._mergeStates=function(t){for(var e,n={},i=0;i<t.length;i++){var r=t[i];T(n,r),r.textConfig&&T(e=e||{},r.textConfig)}return e&&(n.textConfig=e),n},t.prototype._applyStateObj=function(t,e,n,i,r,o){var a=!(e&&i);e&&e.textConfig?(this.textConfig=T({},i?this.textConfig:n.textConfig),T(this.textConfig,e.textConfig)):a&&n.textConfig&&(this.textConfig=n.textConfig);for(var s={},l=!1,u=0;u<Xn.length;u++){var h=Xn[u],c=r&&Zn[h];e&&null!=e[h]?c?(l=!0,s[h]=e[h]):this[h]=e[h]:a&&null!=n[h]&&(c?(l=!0,s[h]=n[h]):this[h]=n[h])}if(!r)for(u=0;u<this.animators.length;u++){var p=this.animators[u],d=p.targetName;p.__changeFinalValue(d?(e||n)[d]:e||n)}l&&this._transitionState(t,s,o)},t.prototype._attachComponent=function(t){if(t.__zr&&!t.__hostTarget)throw new Error("Text element has been added to zrender.");if(t===this)throw new Error("Recursive component attachment.");var e=this.__zr;e&&t.addSelfToZr(e),t.__zr=e,t.__hostTarget=this},t.prototype._detachComponent=function(t){t.__zr&&t.removeSelfFromZr(t.__zr),t.__zr=null,t.__hostTarget=null},t.prototype.getClipPath=function(){return this._clipPath},t.prototype.setClipPath=function(t){this._clipPath&&this._clipPath!==t&&this.removeClipPath(),this._attachComponent(t),this._clipPath=t,this.markRedraw()},t.prototype.removeClipPath=function(){var t=this._clipPath;t&&(this._detachComponent(t),this._clipPath=null,this.markRedraw())},t.prototype.getTextContent=function(){return this._textContent},t.prototype.setTextContent=function(t){var e=this._textContent;if(e!==t){if(e&&e!==t&&this.removeTextContent(),t.__zr&&!t.__hostTarget)throw new Error("Text element has been added to zrender.");t.attachedTransform=new Ie,this._attachComponent(t),this._textContent=t,this.markRedraw()}},t.prototype.setTextConfig=function(t){this.textConfig||(this.textConfig={}),T(this.textConfig,t),this.markRedraw()},t.prototype.removeTextContent=function(){var t=this._textContent;t&&(t.attachedTransform=null,this._detachComponent(t),this._textContent=null,this._innerTextDefaultStyle=null,this.markRedraw())},t.prototype.getTextGuideLine=function(){return this._textGuide},t.prototype.setTextGuideLine=function(t){this._textGuide&&this._textGuide!==t&&this.removeTextGuideLine(),this._attachComponent(t),this._textGuide=t,this.markRedraw()},t.prototype.removeTextGuideLine=function(){var t=this._textGuide;t&&(this._detachComponent(t),this._textGuide=null,this.markRedraw())},t.prototype.markRedraw=function(){this.__dirty|=t.REDARAW_BIT;var e=this.__zr;e&&(this.__inHover?e.refreshHover():e.refresh()),this.__hostTarget&&this.__hostTarget.markRedraw()},t.prototype.dirty=function(){this.markRedraw()},t.prototype._toggleHoverLayerFlag=function(t){this.__inHover=t;var e=this._textContent,n=this._textGuide;e&&(e.__inHover=t),n&&(n.__inHover=t)},t.prototype.addSelfToZr=function(t){this.__zr=t;var e=this.animators;if(e)for(var n=0;n<e.length;n++)t.animation.addAnimator(e[n]);this._clipPath&&this._clipPath.addSelfToZr(t),this._textContent&&this._textContent.addSelfToZr(t),this._textGuide&&this._textGuide.addSelfToZr(t)},t.prototype.removeSelfFromZr=function(t){this.__zr=null;var e=this.animators;if(e)for(var n=0;n<e.length;n++)t.animation.removeAnimator(e[n]);this._clipPath&&this._clipPath.removeSelfFromZr(t),this._textContent&&this._textContent.removeSelfFromZr(t),this._textGuide&&this._textGuide.removeSelfFromZr(t)},t.prototype.animate=function(t,e){var n=t?this[t]:this;if(n){var i=new _n(n,e);return this.addAnimator(i,t),i}b('Property "'+t+'" is not existed in element '+this.id)},t.prototype.addAnimator=function(t,e){var n=this.__zr,i=this;t.during((function(){i.updateDuringAnimation(e)})).done((function(){var e=i.animators,n=A(e,t);n>=0&&e.splice(n,1)})),this.animators.push(t),n&&n.animation.addAnimator(t),n&&n.wakeUp()},t.prototype.updateDuringAnimation=function(t){this.markRedraw()},t.prototype.stopAnimation=function(t,e){for(var n=this.animators,i=n.length,r=[],o=0;o<i;o++){var a=n[o];t&&t!==a.scope?r.push(a):a.stop(e)}return this.animators=r,this},t.prototype.animateTo=function(t,e,n){$n(this,t,e,n)},t.prototype.animateFrom=function(t,e,n){$n(this,t,e,n,!0)},t.prototype._transitionState=function(t,e,n,i){for(var r=$n(this,e,n,i),o=0;o<r.length;o++)r[o].__fromStateTransition=t},t.prototype.getBoundingRect=function(){return null},t.prototype.getPaintRect=function(){return null},t.REDARAW_BIT=1,t.initDefaultProps=function(){var e=t.prototype;e.type="element",e.name="",e.ignore=!1,e.silent=!1,e.isGroup=!1,e.draggable=!1,e.dragging=!1,e.ignoreClip=!1,e.__inHover=!1,e.__dirty=t.REDARAW_BIT;var n={};function i(t,e,i){n[t+e+i]||(console.warn("DEPRECATED: '"+t+"' has been deprecated. use '"+e+"', '"+i+"' instead"),n[t+e+i]=!0)}function r(t,n,r,o){function a(t,e){Object.defineProperty(e,0,{get:function(){return t[r]},set:function(e){t[r]=e}}),Object.defineProperty(e,1,{get:function(){return t[o]},set:function(e){t[o]=e}})}Object.defineProperty(e,t,{get:function(){(i(t,r,o),this[n])||a(this,this[n]=[]);return this[n]},set:function(e){i(t,r,o),this[r]=e[0],this[o]=e[1],this[n]=e,a(this,e)}})}Object.defineProperty&&(!a.browser.ie||a.browser.version>8)&&(r("position","_legacyPos","x","y"),r("scale","_legacyScale","scaleX","scaleY"),r("origin","_legacyOrigin","originX","originY"))}(),t}();function $n(t,e,n,i,r){var o=[];ti(t,"",t,e,n=n||{},i,o,r);var a=o.length,s=!1,l=n.done,u=n.aborted,h=function(){s=!0,--a<=0&&(s?l&&l():u&&u())},c=function(){--a<=0&&(s?l&&l():u&&u())};a||l&&l(),o.length>0&&n.during&&o[0].during((function(t,e){n.during(e)}));for(var p=0;p<o.length;p++){var d=o[p];h&&d.done(h),c&&d.aborted(c),d.start(n.easing,n.force)}return o}function Jn(t,e,n){for(var i=0;i<n;i++)t[i]=e[i]}function Qn(t,e,n){if(L(e[n]))if(L(t[n])||(t[n]=[]),X(e[n])){var i=e[n].length;t[n].length!==i&&(t[n]=new e[n].constructor(i),Jn(t[n],e[n],i))}else{var r=e[n],o=t[n],a=r.length;if(L(r[0]))for(var s=r[0].length,l=0;l<a;l++)o[l]?Jn(o[l],r[l],s):o[l]=Array.prototype.slice.call(r[l]);else Jn(o,r,a);o.length=r.length}else t[n]=e[n]}function ti(t,e,n,i,r,o,a,s){for(var l=[],u=[],h=E(i),c=r.duration,p=r.delay,d=r.additive,f=r.setToFinal,g=!U(o),y=0;y<h.length;y++){if(null!=n[T=h[y]]&&null!=i[T]&&(g||o[T]))if(U(i[T])&&!L(i[T])){if(e){s||(n[T]=i[T],t.updateDuringAnimation(e));continue}ti(t,T,n[T],i[T],r,o&&o[T],a,s)}else l.push(T),u.push(T);else s||(n[T]=i[T],t.updateDuringAnimation(e),u.push(T))}var v=l.length;if(v>0||r.force&&!a.length){for(var m=t.animators,_=[],x=0;x<m.length;x++)m[x].targetName===e&&_.push(m[x]);if(!d&&_.length)for(x=0;x<_.length;x++){if(_[x].stopTracks(u)){var b=A(m,_[x]);m.splice(b,1)}}var w=void 0,S=void 0,M=void 0;if(s){S={},f&&(w={});for(x=0;x<v;x++){S[T=l[x]]=n[T],f?w[T]=i[T]:n[T]=i[T]}}else if(f){M={};for(x=0;x<v;x++){var T;M[T=l[x]]=dn(n[T]),Qn(n,i,T)}}var C=new _n(n,!1,d?_:null);C.targetName=e,r.scope&&(C.scope=r.scope),f&&w&&C.whenWithKeys(0,w,l),M&&C.whenWithKeys(0,M,l),C.whenWithKeys(null==c?500:c,s?S:i,l).delay(p||0),t.addAnimator(C,e),a.push(C)}}k(Kn,Bt),k(Kn,Ie);function ei(t,e,n,i){var r=e+1;if(r===n)return 1;if(i(t[r++],t[e])<0){for(;r<n&&i(t[r],t[r-1])<0;)r++;!function(t,e,n){n--;for(;e<n;){var i=t[e];t[e++]=t[n],t[n--]=i}}(t,e,r)}else for(;r<n&&i(t[r],t[r-1])>=0;)r++;return r-e}function ni(t,e,n,i,r){for(i===e&&i++;i<n;i++){for(var o,a=t[i],s=e,l=i;s<l;)r(a,t[o=s+l>>>1])<0?l=o:s=o+1;var u=i-s;switch(u){case 3:t[s+3]=t[s+2];case 2:t[s+2]=t[s+1];case 1:t[s+1]=t[s];break;default:for(;u>0;)t[s+u]=t[s+u-1],u--}t[s]=a}}function ii(t,e,n,i,r,o){var a=0,s=0,l=1;if(o(t,e[n+r])>0){for(s=i-r;l<s&&o(t,e[n+r+l])>0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),a+=r,l+=r}else{for(s=r+1;l<s&&o(t,e[n+r-l])<=0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s);var u=a;a=r-l,l=r-u}for(a++;a<l;){var h=a+(l-a>>>1);o(t,e[n+h])>0?a=h+1:l=h}return l}function ri(t,e,n,i,r,o){var a=0,s=0,l=1;if(o(t,e[n+r])<0){for(s=r+1;l<s&&o(t,e[n+r-l])<0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s);var u=a;a=r-l,l=r-u}else{for(s=i-r;l<s&&o(t,e[n+r+l])>=0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),a+=r,l+=r}for(a++;a<l;){var h=a+(l-a>>>1);o(t,e[n+h])<0?l=h:a=h+1}return l}function oi(t,e){var n,i,r=7,o=0;t.length;var a=[];function s(s){var l=n[s],u=i[s],h=n[s+1],c=i[s+1];i[s]=u+c,s===o-3&&(n[s+1]=n[s+2],i[s+1]=i[s+2]),o--;var p=ri(t[h],t,l,u,0,e);l+=p,0!==(u-=p)&&0!==(c=ii(t[l+u-1],t,h,c,c-1,e))&&(u<=c?function(n,i,o,s){var l=0;for(l=0;l<i;l++)a[l]=t[n+l];var u=0,h=o,c=n;if(t[c++]=t[h++],0==--s){for(l=0;l<i;l++)t[c+l]=a[u+l];return}if(1===i){for(l=0;l<s;l++)t[c+l]=t[h+l];return void(t[c+s]=a[u])}var p,d,f,g=r;for(;;){p=0,d=0,f=!1;do{if(e(t[h],a[u])<0){if(t[c++]=t[h++],d++,p=0,0==--s){f=!0;break}}else if(t[c++]=a[u++],p++,d=0,1==--i){f=!0;break}}while((p|d)<g);if(f)break;do{if(0!==(p=ri(t[h],a,u,i,0,e))){for(l=0;l<p;l++)t[c+l]=a[u+l];if(c+=p,u+=p,(i-=p)<=1){f=!0;break}}if(t[c++]=t[h++],0==--s){f=!0;break}if(0!==(d=ii(a[u],t,h,s,0,e))){for(l=0;l<d;l++)t[c+l]=t[h+l];if(c+=d,h+=d,0===(s-=d)){f=!0;break}}if(t[c++]=a[u++],1==--i){f=!0;break}g--}while(p>=7||d>=7);if(f)break;g<0&&(g=0),g+=2}if((r=g)<1&&(r=1),1===i){for(l=0;l<s;l++)t[c+l]=t[h+l];t[c+s]=a[u]}else{if(0===i)throw new Error;for(l=0;l<i;l++)t[c+l]=a[u+l]}}(l,u,h,c):function(n,i,o,s){var l=0;for(l=0;l<s;l++)a[l]=t[o+l];var u=n+i-1,h=s-1,c=o+s-1,p=0,d=0;if(t[c--]=t[u--],0==--i){for(p=c-(s-1),l=0;l<s;l++)t[p+l]=a[l];return}if(1===s){for(d=(c-=i)+1,p=(u-=i)+1,l=i-1;l>=0;l--)t[d+l]=t[p+l];return void(t[c]=a[h])}var f=r;for(;;){var g=0,y=0,v=!1;do{if(e(a[h],t[u])<0){if(t[c--]=t[u--],g++,y=0,0==--i){v=!0;break}}else if(t[c--]=a[h--],y++,g=0,1==--s){v=!0;break}}while((g|y)<f);if(v)break;do{if(0!==(g=i-ri(a[h],t,n,i,i-1,e))){for(i-=g,d=(c-=g)+1,p=(u-=g)+1,l=g-1;l>=0;l--)t[d+l]=t[p+l];if(0===i){v=!0;break}}if(t[c--]=a[h--],1==--s){v=!0;break}if(0!==(y=s-ii(t[u],a,0,s,s-1,e))){for(s-=y,d=(c-=y)+1,p=(h-=y)+1,l=0;l<y;l++)t[d+l]=a[p+l];if(s<=1){v=!0;break}}if(t[c--]=t[u--],0==--i){v=!0;break}f--}while(g>=7||y>=7);if(v)break;f<0&&(f=0),f+=2}(r=f)<1&&(r=1);if(1===s){for(d=(c-=i)+1,p=(u-=i)+1,l=i-1;l>=0;l--)t[d+l]=t[p+l];t[c]=a[h]}else{if(0===s)throw new Error;for(p=c-(s-1),l=0;l<s;l++)t[p+l]=a[l]}}(l,u,h,c))}return n=[],i=[],{mergeRuns:function(){for(;o>1;){var t=o-2;if(t>=1&&i[t-1]<=i[t]+i[t+1]||t>=2&&i[t-2]<=i[t]+i[t-1])i[t-1]<i[t+1]&&t--;else if(i[t]>i[t+1])break;s(t)}},forceMergeRuns:function(){for(;o>1;){var t=o-2;t>0&&i[t-1]<i[t+1]&&t--,s(t)}},pushRun:function(t,e){n[o]=t,i[o]=e,o+=1}}}function ai(t,e,n,i){n||(n=0),i||(i=t.length);var r=i-n;if(!(r<2)){var o=0;if(r<32)ni(t,n,i,n+(o=ei(t,n,i,e)),e);else{var a=oi(t,e),s=function(t){for(var e=0;t>=32;)e|=1&t,t>>=1;return t+e}(r);do{if((o=ei(t,n,i,e))<s){var l=r;l>s&&(l=s),ni(t,n,n+l,n+o,e),o=l}a.pushRun(n,o),a.mergeRuns(),r-=o,n+=o}while(0!==r);a.forceMergeRuns()}}}var si=!1;function li(){si||(si=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function ui(t,e){return t.zlevel===e.zlevel?t.z===e.z?t.z2-e.z2:t.z-e.z:t.zlevel-e.zlevel}var hi,ci,pi=function(){function t(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=ui}return t.prototype.traverse=function(t,e){for(var n=0;n<this._roots.length;n++)this._roots[n].traverse(t,e)},t.prototype.getDisplayList=function(t,e){e=e||!1;var n=this._displayList;return!t&&n.length||this.updateDisplayList(e),n},t.prototype.updateDisplayList=function(t){this._displayListLen=0;for(var e=this._roots,n=this._displayList,i=0,r=e.length;i<r;i++)this._updateAndAddDisplayable(e[i],null,t);n.length=this._displayListLen,a.canvasSupported&&ai(n,ui)},t.prototype._updateAndAddDisplayable=function(t,e,n){if(!t.ignore||n){t.beforeUpdate(),t.update(),t.afterUpdate();var i=t.getClipPath();if(t.ignoreClip)e=null;else if(i){e=e?e.slice():[];for(var r=i,o=t;r;)r.parent=o,r.updateTransform(),e.push(r),o=r,r=r.getClipPath()}if(t.childrenRef){for(var a=t.childrenRef(),s=0;s<a.length;s++){var l=a[s];t.__dirty&&(l.__dirty|=Kn.REDARAW_BIT),this._updateAndAddDisplayable(l,e,n)}t.__dirty=0}else{var u=t;e&&e.length?u.__clipPaths=e:u.__clipPaths&&u.__clipPaths.length>0&&(u.__clipPaths=[]),isNaN(u.z)&&(li(),u.z=0),isNaN(u.z2)&&(li(),u.z2=0),isNaN(u.zlevel)&&(li(),u.zlevel=0),this._displayList[this._displayListLen++]=u}var h=t.getDecalElement&&t.getDecalElement();h&&this._updateAndAddDisplayable(h,e,n);var c=t.getTextGuideLine();c&&this._updateAndAddDisplayable(c,e,n);var p=t.getTextContent();p&&this._updateAndAddDisplayable(p,e,n)}},t.prototype.addRoot=function(t){t.__zr&&t.__zr.storage===this||this._roots.push(t)},t.prototype.delRoot=function(t){if(t instanceof Array)for(var e=0,n=t.length;e<n;e++)this.delRoot(t[e]);else{var i=A(this._roots,t);i>=0&&this._roots.splice(i,1)}},t.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},t.prototype.getRoots=function(){return this._roots},t.prototype.dispose=function(){this._displayList=null,this._roots=null},t}(),di="undefined"!=typeof window&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(t){return setTimeout(t,16)},fi=function(t){function e(e){var n=t.call(this)||this;return n._running=!1,n._time=0,n._pausedTime=0,n._pauseStart=0,n._paused=!1,e=e||{},n.stage=e.stage||{},n.onframe=e.onframe||function(){},n}return gt(e,t),e.prototype.addClip=function(t){t.animation&&this.removeClip(t),this._clipsHead?(this._clipsTail.next=t,t.prev=this._clipsTail,t.next=null,this._clipsTail=t):this._clipsHead=this._clipsTail=t,t.animation=this},e.prototype.addAnimator=function(t){t.animation=this;var e=t.getClip();e&&this.addClip(e)},e.prototype.removeClip=function(t){if(t.animation){var e=t.prev,n=t.next;e?e.next=n:this._clipsHead=n,n?n.prev=e:this._clipsTail=e,t.next=t.prev=t.animation=null}},e.prototype.removeAnimator=function(t){var e=t.getClip();e&&this.removeClip(e),t.animation=null},e.prototype.update=function(t){for(var e=(new Date).getTime()-this._pausedTime,n=e-this._time,i=this._clipsHead;i;){var r=i.next;i.step(e,n)?(i.ondestroy&&i.ondestroy(),this.removeClip(i),i=r):i=r}this._time=e,t||(this.onframe(n),this.trigger("frame",n),this.stage.update&&this.stage.update())},e.prototype._startLoop=function(){var t=this;this._running=!0,di((function e(){t._running&&(di(e),!t._paused&&t.update())}))},e.prototype.start=function(){this._running||(this._time=(new Date).getTime(),this._pausedTime=0,this._startLoop())},e.prototype.stop=function(){this._running=!1},e.prototype.pause=function(){this._paused||(this._pauseStart=(new Date).getTime(),this._paused=!0)},e.prototype.resume=function(){this._paused&&(this._pausedTime+=(new Date).getTime()-this._pauseStart,this._paused=!1)},e.prototype.clear=function(){for(var t=this._clipsHead;t;){var e=t.next;t.prev=t.next=t.animation=null,t=e}this._clipsHead=this._clipsTail=null},e.prototype.isFinished=function(){return null==this._clipsHead},e.prototype.animate=function(t,e){e=e||{},this.start();var n=new _n(t,e.loop);return this.addAnimator(n),n},e}(Bt),gi=a.domSupported,yi=(ci={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},{mouse:hi=["click","dblclick","mousewheel","wheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],touch:["touchstart","touchend","touchmove"],pointer:O(hi,(function(t){var e=t.replace("mouse","pointer");return ci.hasOwnProperty(e)?e:t}))}),vi=["mousemove","mouseup"],mi=["pointermove","pointerup"],_i=!1;function xi(t){var e=t.pointerType;return"pen"===e||"touch"===e}function bi(t){t&&(t.zrByTouch=!0)}function wi(t,e){for(var n=e,i=!1;n&&9!==n.nodeType&&!(i=n.domBelongToZr||n!==e&&n===t.painterRoot);)n=n.parentNode;return i}var Si=function(t,e){this.stopPropagation=pt,this.stopImmediatePropagation=pt,this.preventDefault=pt,this.type=e.type,this.target=this.currentTarget=t.dom,this.pointerType=e.pointerType,this.clientX=e.clientX,this.clientY=e.clientY},Mi={mousedown:function(t){t=Kt(this.dom,t),this.__mayPointerCapture=[t.zrX,t.zrY],this.trigger("mousedown",t)},mousemove:function(t){t=Kt(this.dom,t);var e=this.__mayPointerCapture;!e||t.zrX===e[0]&&t.zrY===e[1]||this.__togglePointerCapture(!0),this.trigger("mousemove",t)},mouseup:function(t){t=Kt(this.dom,t),this.__togglePointerCapture(!1),this.trigger("mouseup",t)},mouseout:function(t){wi(this,(t=Kt(this.dom,t)).toElement||t.relatedTarget)||(this.__pointerCapturing&&(t.zrEventControl="no_globalout"),this.trigger("mouseout",t))},wheel:function(t){_i=!0,t=Kt(this.dom,t),this.trigger("mousewheel",t)},mousewheel:function(t){_i||(t=Kt(this.dom,t),this.trigger("mousewheel",t))},touchstart:function(t){bi(t=Kt(this.dom,t)),this.__lastTouchMoment=new Date,this.handler.processGesture(t,"start"),Mi.mousemove.call(this,t),Mi.mousedown.call(this,t)},touchmove:function(t){bi(t=Kt(this.dom,t)),this.handler.processGesture(t,"change"),Mi.mousemove.call(this,t)},touchend:function(t){bi(t=Kt(this.dom,t)),this.handler.processGesture(t,"end"),Mi.mouseup.call(this,t),+new Date-+this.__lastTouchMoment<300&&Mi.click.call(this,t)},pointerdown:function(t){Mi.mousedown.call(this,t)},pointermove:function(t){xi(t)||Mi.mousemove.call(this,t)},pointerup:function(t){Mi.mouseup.call(this,t)},pointerout:function(t){xi(t)||Mi.mouseout.call(this,t)}};P(["click","dblclick","contextmenu"],(function(t){Mi[t]=function(e){e=Kt(this.dom,e),this.trigger(t,e)}}));var Ti={pointermove:function(t){xi(t)||Ti.mousemove.call(this,t)},pointerup:function(t){Ti.mouseup.call(this,t)},mousemove:function(t){this.trigger("mousemove",t)},mouseup:function(t){var e=this.__pointerCapturing;this.__togglePointerCapture(!1),this.trigger("mouseup",t),e&&(t.zrEventControl="only_globalout",this.trigger("mouseout",t))}};function Ci(t,e){var n=e.domHandlers;a.pointerEventsSupported?P(yi.pointer,(function(i){Ai(e,i,(function(e){n[i].call(t,e)}))})):(a.touchEventsSupported&&P(yi.touch,(function(i){Ai(e,i,(function(r){n[i].call(t,r),function(t){t.touching=!0,null!=t.touchTimer&&(clearTimeout(t.touchTimer),t.touchTimer=null),t.touchTimer=setTimeout((function(){t.touching=!1,t.touchTimer=null}),700)}(e)}))})),P(yi.mouse,(function(i){Ai(e,i,(function(r){r=qt(r),e.touching||n[i].call(t,r)}))})))}function Ii(t,e){function n(n){Ai(e,n,(function(i){i=qt(i),wi(t,i.target)||(i=function(t,e){return Kt(t.dom,new Si(t,e),!0)}(t,i),e.domHandlers[n].call(t,i))}),{capture:!0})}a.pointerEventsSupported?P(mi,n):a.touchEventsSupported||P(vi,n)}function Ai(t,e,n,i){t.mounted[e]=n,t.listenerOpts[e]=i,$t(t.domTarget,e,n,i)}function Di(t){var e,n,i,r,o=t.mounted;for(var a in o)o.hasOwnProperty(a)&&(e=t.domTarget,n=a,i=o[a],r=t.listenerOpts[a],Ut?e.removeEventListener(n,i,r):e.detachEvent("on"+n,i));t.mounted={}}var ki=function(t,e){this.mounted={},this.listenerOpts={},this.touching=!1,this.domTarget=t,this.domHandlers=e},Li=function(t){function e(e,n){var i=t.call(this)||this;return i.__pointerCapturing=!1,i.dom=e,i.painterRoot=n,i._localHandlerScope=new ki(e,Mi),gi&&(i._globalHandlerScope=new ki(document,Ti)),Ci(i,i._localHandlerScope),i}return gt(e,t),e.prototype.dispose=function(){Di(this._localHandlerScope),gi&&Di(this._globalHandlerScope)},e.prototype.setCursor=function(t){this.dom.style&&(this.dom.style.cursor=t||"default")},e.prototype.__togglePointerCapture=function(t){if(this.__mayPointerCapture=null,gi&&+this.__pointerCapturing^+t){this.__pointerCapturing=t;var e=this._globalHandlerScope;t?Ii(this,e):Di(e)}},e}(Bt),Pi=function(t){function e(e){var n=t.call(this)||this;return n.isGroup=!0,n._children=[],n.attr(e),n}return gt(e,t),e.prototype.childrenRef=function(){return this._children},e.prototype.children=function(){return this._children.slice()},e.prototype.childAt=function(t){return this._children[t]},e.prototype.childOfName=function(t){for(var e=this._children,n=0;n<e.length;n++)if(e[n].name===t)return e[n]},e.prototype.childCount=function(){return this._children.length},e.prototype.add=function(t){if(t&&(t!==this&&t.parent!==this&&(this._children.push(t),this._doAdd(t)),t.__hostTarget))throw"This elemenet has been used as an attachment";return this},e.prototype.addBefore=function(t,e){if(t&&t!==this&&t.parent!==this&&e&&e.parent===this){var n=this._children,i=n.indexOf(e);i>=0&&(n.splice(i,0,t),this._doAdd(t))}return this},e.prototype.replaceAt=function(t,e){var n=this._children,i=n[e];if(t&&t!==this&&t.parent!==this&&t!==i){n[e]=t,i.parent=null;var r=this.__zr;r&&i.removeSelfFromZr(r),this._doAdd(t)}return this},e.prototype._doAdd=function(t){t.parent&&t.parent.remove(t),t.parent=this;var e=this.__zr;e&&e!==t.__zr&&t.addSelfToZr(e),e&&e.refresh()},e.prototype.remove=function(t){var e=this.__zr,n=this._children,i=A(n,t);return i<0||(n.splice(i,1),t.parent=null,e&&t.removeSelfFromZr(e),e&&e.refresh()),this},e.prototype.removeAll=function(){for(var t=this._children,e=this.__zr,n=0;n<t.length;n++){var i=t[n];e&&i.removeSelfFromZr(e),i.parent=null}return t.length=0,this},e.prototype.eachChild=function(t,e){for(var n=this._children,i=0;i<n.length;i++){var r=n[i];t.call(e,r,i)}return this},e.prototype.traverse=function(t,e){for(var n=0;n<this._children.length;n++){var i=this._children[n],r=t.call(e,i);i.isGroup&&!r&&i.traverse(t,e)}return this},e.prototype.addSelfToZr=function(e){t.prototype.addSelfToZr.call(this,e);for(var n=0;n<this._children.length;n++){this._children[n].addSelfToZr(e)}},e.prototype.removeSelfFromZr=function(e){t.prototype.removeSelfFromZr.call(this,e);for(var n=0;n<this._children.length;n++){this._children[n].removeSelfFromZr(e)}},e.prototype.getBoundingRect=function(t){for(var e=new Dn(0,0,0,0),n=t||this._children,i=[],r=null,o=0;o<n.length;o++){var a=n[o];if(!a.ignore&&!a.invisible){var s=a.getBoundingRect(),l=a.getLocalTransform(i);l?(Dn.applyTransform(e,s,l),(r=r||e.clone()).union(e)):(r=r||s.clone()).union(s)}}return r||e},e}(Kn);Pi.prototype.type="group";
+    ***************************************************************************** */var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])})(t,n)};function n(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}var i=function(){return(i=Object.assign||function(t){for(var e,n=1,i=arguments.length;n<i;n++)for(var r in e=arguments[n])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)};function r(){for(var t=0,e=0,n=arguments.length;e<n;e++)t+=arguments[e].length;var i=Array(t),r=0;for(e=0;e<n;e++)for(var o=arguments[e],a=0,s=o.length;a<s;a++,r++)i[r]=o[a];return i}var o=function(){this.firefox=!1,this.ie=!1,this.edge=!1,this.newEdge=!1,this.weChat=!1},a=new function(){this.browser=new o,this.node=!1,this.wxa=!1,this.worker=!1,this.canvasSupported=!1,this.svgSupported=!1,this.touchEventsSupported=!1,this.pointerEventsSupported=!1,this.domSupported=!1};"object"==typeof wx&&"function"==typeof wx.getSystemInfoSync?(a.wxa=!0,a.canvasSupported=!0,a.touchEventsSupported=!0):"undefined"==typeof document&&"undefined"!=typeof self?(a.worker=!0,a.canvasSupported=!0):"undefined"==typeof navigator?(a.node=!0,a.canvasSupported=!0,a.svgSupported=!0):function(t,e){var n=e.browser,i=t.match(/Firefox\/([\d.]+)/),r=t.match(/MSIE\s([\d.]+)/)||t.match(/Trident\/.+?rv:(([\d.]+))/),o=t.match(/Edge?\/([\d.]+)/),a=/micromessenger/i.test(t);i&&(n.firefox=!0,n.version=i[1]);r&&(n.ie=!0,n.version=r[1]);o&&(n.edge=!0,n.version=o[1],n.newEdge=+o[1].split(".")[0]>18);a&&(n.weChat=!0);e.canvasSupported=!!document.createElement("canvas").getContext,e.svgSupported="undefined"!=typeof SVGRect,e.touchEventsSupported="ontouchstart"in window&&!n.ie&&!n.edge,e.pointerEventsSupported="onpointerdown"in window&&(n.edge||n.ie&&+n.version>=11),e.domSupported="undefined"!=typeof document}(navigator.userAgent,a);var s={"[object Function]":!0,"[object RegExp]":!0,"[object Date]":!0,"[object Error]":!0,"[object CanvasGradient]":!0,"[object CanvasPattern]":!0,"[object Image]":!0,"[object Canvas]":!0},l={"[object Int8Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Int16Array]":!0,"[object Uint16Array]":!0,"[object Int32Array]":!0,"[object Uint32Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0},u=Object.prototype.toString,h=Array.prototype,c=h.forEach,p=h.filter,d=h.slice,f=h.map,g=function(){}.constructor,y=g?g.prototype:null,v={};function m(t,e){v[t]=e}var _=2311;function x(){return _++}function b(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];"undefined"!=typeof console&&console.error.apply(console,t)}function w(t){if(null==t||"object"!=typeof t)return t;var e=t,n=u.call(t);if("[object Array]"===n){if(!st(t)){e=[];for(var i=0,r=t.length;i<r;i++)e[i]=w(t[i])}}else if(l[n]){if(!st(t)){var o=t.constructor;if(o.from)e=o.from(t);else{e=new o(t.length);for(i=0,r=t.length;i<r;i++)e[i]=w(t[i])}}}else if(!s[n]&&!st(t)&&!Z(t))for(var a in e={},t)t.hasOwnProperty(a)&&(e[a]=w(t[a]));return e}function S(t,e,n){if(!U(e)||!U(t))return n?w(e):t;for(var i in e)if(e.hasOwnProperty(i)){var r=t[i],o=e[i];!U(o)||!U(r)||V(o)||V(r)||Z(o)||Z(r)||Y(o)||Y(r)||st(o)||st(r)?!n&&i in t||(t[i]=w(e[i])):S(r,o,n)}return t}function M(t,e){for(var n=t[0],i=1,r=t.length;i<r;i++)n=S(n,t[i],e);return n}function T(t,e){if(Object.assign)Object.assign(t,e);else for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}function C(t,e,n){for(var i=E(e),r=0;r<i.length;r++){var o=i[r];(n?null!=e[o]:null==t[o])&&(t[o]=e[o])}return t}var I=function(){return v.createCanvas()};function A(t,e){if(t){if(t.indexOf)return t.indexOf(e);for(var n=0,i=t.length;n<i;n++)if(t[n]===e)return n}return-1}function D(t,e){var n=t.prototype;function i(){}for(var r in i.prototype=e.prototype,t.prototype=new i,n)n.hasOwnProperty(r)&&(t.prototype[r]=n[r]);t.prototype.constructor=t,t.superClass=e}function k(t,e,n){if(t="prototype"in t?t.prototype:t,e="prototype"in e?e.prototype:e,Object.getOwnPropertyNames)for(var i=Object.getOwnPropertyNames(e),r=0;r<i.length;r++){var o=i[r];"constructor"!==o&&(n?null!=e[o]:null==t[o])&&(t[o]=e[o])}else C(t,e,n)}function L(t){return!!t&&("string"!=typeof t&&"number"==typeof t.length)}function P(t,e,n){if(t&&e)if(t.forEach&&t.forEach===c)t.forEach(e,n);else if(t.length===+t.length)for(var i=0,r=t.length;i<r;i++)e.call(n,t[i],i,t);else for(var o in t)t.hasOwnProperty(o)&&e.call(n,t[o],o,t)}function O(t,e,n){if(!t)return[];if(!e)return et(t);if(t.map&&t.map===f)return t.map(e,n);for(var i=[],r=0,o=t.length;r<o;r++)i.push(e.call(n,t[r],r,t));return i}function R(t,e,n,i){if(t&&e){for(var r=0,o=t.length;r<o;r++)n=e.call(i,n,t[r],r,t);return n}}function N(t,e,n){if(!t)return[];if(!e)return et(t);if(t.filter&&t.filter===p)return t.filter(e,n);for(var i=[],r=0,o=t.length;r<o;r++)e.call(n,t[r],r,t)&&i.push(t[r]);return i}function E(t){if(!t)return[];if(Object.keys)return Object.keys(t);var e=[];for(var n in t)t.hasOwnProperty(n)&&e.push(n);return e}v.createCanvas=function(){return document.createElement("canvas")};var B=y&&F(y.bind)?y.call.bind(y.bind):function(t,e){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];return function(){return t.apply(e,n.concat(d.call(arguments)))}};function z(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return function(){return t.apply(this,e.concat(d.call(arguments)))}}function V(t){return Array.isArray?Array.isArray(t):"[object Array]"===u.call(t)}function F(t){return"function"==typeof t}function H(t){return"string"==typeof t}function G(t){return"[object String]"===u.call(t)}function W(t){return"number"==typeof t}function U(t){var e=typeof t;return"function"===e||!!t&&"object"===e}function Y(t){return!!s[u.call(t)]}function X(t){return!!l[u.call(t)]}function Z(t){return"object"==typeof t&&"number"==typeof t.nodeType&&"object"==typeof t.ownerDocument}function j(t){return null!=t.colorStops}function q(t){return null!=t.image}function K(t){return"[object RegExp]"===u.call(t)}function $(t){return t!=t}function J(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];for(var n=0,i=t.length;n<i;n++)if(null!=t[n])return t[n]}function Q(t,e){return null!=t?t:e}function tt(t,e,n){return null!=t?t:null!=e?e:n}function et(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return d.apply(t,e)}function nt(t){if("number"==typeof t)return[t,t,t,t];var e=t.length;return 2===e?[t[0],t[1],t[0],t[1]]:3===e?[t[0],t[1],t[2],t[1]]:t}function it(t,e){if(!t)throw new Error(e)}function rt(t){return null==t?null:"function"==typeof t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}var ot="__ec_primitive__";function at(t){t[ot]=!0}function st(t){return t[ot]}var lt=function(){function t(e){this.data={};var n=V(e);this.data={};var i=this;function r(t,e){n?i.set(t,e):i.set(e,t)}e instanceof t?e.each(r):e&&P(e,r)}return t.prototype.get=function(t){return this.data.hasOwnProperty(t)?this.data[t]:null},t.prototype.set=function(t,e){return this.data[t]=e},t.prototype.each=function(t,e){for(var n in this.data)this.data.hasOwnProperty(n)&&t.call(e,this.data[n],n)},t.prototype.keys=function(){return E(this.data)},t.prototype.removeKey=function(t){delete this.data[t]},t}();function ut(t){return new lt(t)}function ht(t,e){var n;if(Object.create)n=Object.create(t);else{var i=function(){};i.prototype=t,n=new i}return e&&T(n,e),n}function ct(t,e){return t.hasOwnProperty(e)}function pt(){}var dt=Object.freeze({__proto__:null,$override:m,guid:x,logError:b,clone:w,merge:S,mergeAll:M,extend:T,defaults:C,createCanvas:I,indexOf:A,inherits:D,mixin:k,isArrayLike:L,each:P,map:O,reduce:R,filter:N,find:function(t,e,n){if(t&&e)for(var i=0,r=t.length;i<r;i++)if(e.call(n,t[i],i,t))return t[i]},keys:E,bind:B,curry:z,isArray:V,isFunction:F,isString:H,isStringSafe:G,isNumber:W,isObject:U,isBuiltInObject:Y,isTypedArray:X,isDom:Z,isGradientObject:j,isPatternObject:q,isRegExp:K,eqNaN:$,retrieve:J,retrieve2:Q,retrieve3:tt,slice:et,normalizeCssArray:nt,assert:it,trim:rt,setAsPrimitive:at,isPrimitive:st,HashMap:lt,createHashMap:ut,concatArray:function(t,e){for(var n=new t.constructor(t.length+e.length),i=0;i<t.length;i++)n[i]=t[i];var r=t.length;for(i=0;i<e.length;i++)n[i+r]=e[i];return n},createObject:ht,hasOwn:ct,noop:pt});function ft(t,e){return null==t&&(t=0),null==e&&(e=0),[t,e]}function gt(t){return[t[0],t[1]]}function yt(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t}function vt(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t}function mt(t){return Math.sqrt(xt(t))}var _t=mt;function xt(t){return t[0]*t[0]+t[1]*t[1]}var bt=xt;function wt(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t}function St(t,e){var n=mt(e);return 0===n?(t[0]=0,t[1]=0):(t[0]=e[0]/n,t[1]=e[1]/n),t}function Mt(t,e){return Math.sqrt((t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1]))}var Tt=Mt;function Ct(t,e){return(t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1])}var It=Ct;function At(t,e,n,i){return t[0]=e[0]+i*(n[0]-e[0]),t[1]=e[1]+i*(n[1]-e[1]),t}function Dt(t,e,n){var i=e[0],r=e[1];return t[0]=n[0]*i+n[2]*r+n[4],t[1]=n[1]*i+n[3]*r+n[5],t}function kt(t,e,n){return t[0]=Math.min(e[0],n[0]),t[1]=Math.min(e[1],n[1]),t}function Lt(t,e,n){return t[0]=Math.max(e[0],n[0]),t[1]=Math.max(e[1],n[1]),t}var Pt=Object.freeze({__proto__:null,create:ft,copy:function(t,e){return t[0]=e[0],t[1]=e[1],t},clone:gt,set:function(t,e,n){return t[0]=e,t[1]=n,t},add:yt,scaleAndAdd:function(t,e,n,i){return t[0]=e[0]+n[0]*i,t[1]=e[1]+n[1]*i,t},sub:vt,len:mt,length:_t,lenSquare:xt,lengthSquare:bt,mul:function(t,e,n){return t[0]=e[0]*n[0],t[1]=e[1]*n[1],t},div:function(t,e,n){return t[0]=e[0]/n[0],t[1]=e[1]/n[1],t},dot:function(t,e){return t[0]*e[0]+t[1]*e[1]},scale:wt,normalize:St,distance:Mt,dist:Tt,distanceSquare:Ct,distSquare:It,negate:function(t,e){return t[0]=-e[0],t[1]=-e[1],t},lerp:At,applyTransform:Dt,min:kt,max:Lt}),Ot=function(t,e){this.target=t,this.topTarget=e&&e.topTarget},Rt=function(){function t(t){this.handler=t,t.on("mousedown",this._dragStart,this),t.on("mousemove",this._drag,this),t.on("mouseup",this._dragEnd,this)}return t.prototype._dragStart=function(t){for(var e=t.target;e&&!e.draggable;)e=e.parent;e&&(this._draggingTarget=e,e.dragging=!0,this._x=t.offsetX,this._y=t.offsetY,this.handler.dispatchToElement(new Ot(e,t),"dragstart",t.event))},t.prototype._drag=function(t){var e=this._draggingTarget;if(e){var n=t.offsetX,i=t.offsetY,r=n-this._x,o=i-this._y;this._x=n,this._y=i,e.drift(r,o,t),this.handler.dispatchToElement(new Ot(e,t),"drag",t.event);var a=this.handler.findHover(n,i,e).target,s=this._dropTarget;this._dropTarget=a,e!==a&&(s&&a!==s&&this.handler.dispatchToElement(new Ot(s,t),"dragleave",t.event),a&&a!==s&&this.handler.dispatchToElement(new Ot(a,t),"dragenter",t.event))}},t.prototype._dragEnd=function(t){var e=this._draggingTarget;e&&(e.dragging=!1),this.handler.dispatchToElement(new Ot(e,t),"dragend",t.event),this._dropTarget&&this.handler.dispatchToElement(new Ot(this._dropTarget,t),"drop",t.event),this._draggingTarget=null,this._dropTarget=null},t}(),Nt=function(){function t(t){t&&(this._$eventProcessor=t)}return t.prototype.on=function(t,e,n,i){this._$handlers||(this._$handlers={});var r=this._$handlers;if("function"==typeof e&&(i=n,n=e,e=null),!n||!t)return this;var o=this._$eventProcessor;null!=e&&o&&o.normalizeQuery&&(e=o.normalizeQuery(e)),r[t]||(r[t]=[]);for(var a=0;a<r[t].length;a++)if(r[t][a].h===n)return this;var s={h:n,query:e,ctx:i||this,callAtLast:n.zrEventfulCallAtLast},l=r[t].length-1,u=r[t][l];return u&&u.callAtLast?r[t].splice(l,0,s):r[t].push(s),this},t.prototype.isSilent=function(t){var e=this._$handlers;return!e||!e[t]||!e[t].length},t.prototype.off=function(t,e){var n=this._$handlers;if(!n)return this;if(!t)return this._$handlers={},this;if(e){if(n[t]){for(var i=[],r=0,o=n[t].length;r<o;r++)n[t][r].h!==e&&i.push(n[t][r]);n[t]=i}n[t]&&0===n[t].length&&delete n[t]}else delete n[t];return this},t.prototype.trigger=function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];if(!this._$handlers)return this;var i=this._$handlers[t],r=this._$eventProcessor;if(i)for(var o=e.length,a=i.length,s=0;s<a;s++){var l=i[s];if(!r||!r.filter||null==l.query||r.filter(t,l.query))switch(o){case 0:l.h.call(l.ctx);break;case 1:l.h.call(l.ctx,e[0]);break;case 2:l.h.call(l.ctx,e[0],e[1]);break;default:l.h.apply(l.ctx,e)}}return r&&r.afterTrigger&&r.afterTrigger(t),this},t.prototype.triggerWithContext=function(t){if(!this._$handlers)return this;var e=this._$handlers[t],n=this._$eventProcessor;if(e)for(var i=arguments,r=i.length,o=i[r-1],a=e.length,s=0;s<a;s++){var l=e[s];if(!n||!n.filter||null==l.query||n.filter(t,l.query))switch(r){case 0:l.h.call(o);break;case 1:l.h.call(o,i[0]);break;case 2:l.h.call(o,i[0],i[1]);break;default:l.h.apply(o,i.slice(1,r-1))}}return n&&n.afterTrigger&&n.afterTrigger(t),this},t}(),Et=Math.log(2);function Bt(t,e,n,i,r,o){var a=i+"-"+r,s=t.length;if(o.hasOwnProperty(a))return o[a];if(1===e){var l=Math.round(Math.log((1<<s)-1&~r)/Et);return t[n][l]}for(var u=i|1<<n,h=n+1;i&1<<h;)h++;for(var c=0,p=0,d=0;p<s;p++){var f=1<<p;f&r||(c+=(d%2?-1:1)*t[n][p]*Bt(t,e-1,h,u,r|f,o),d++)}return o[a]=c,c}function zt(t,e){var n=[[t[0],t[1],1,0,0,0,-e[0]*t[0],-e[0]*t[1]],[0,0,0,t[0],t[1],1,-e[1]*t[0],-e[1]*t[1]],[t[2],t[3],1,0,0,0,-e[2]*t[2],-e[2]*t[3]],[0,0,0,t[2],t[3],1,-e[3]*t[2],-e[3]*t[3]],[t[4],t[5],1,0,0,0,-e[4]*t[4],-e[4]*t[5]],[0,0,0,t[4],t[5],1,-e[5]*t[4],-e[5]*t[5]],[t[6],t[7],1,0,0,0,-e[6]*t[6],-e[6]*t[7]],[0,0,0,t[6],t[7],1,-e[7]*t[6],-e[7]*t[7]]],i={},r=Bt(n,8,0,0,0,i);if(0!==r){for(var o=[],a=0;a<8;a++)for(var s=0;s<8;s++)null==o[s]&&(o[s]=0),o[s]+=((a+s)%2?-1:1)*Bt(n,7,0===a?1:0,1<<a,1<<s,i)/r*e[a];return function(t,e,n){var i=e*o[6]+n*o[7]+1;t[0]=(e*o[0]+n*o[1]+o[2])/i,t[1]=(e*o[3]+n*o[4]+o[5])/i}}}var Vt=[];function Ft(t,e,n,i,r){if(e.getBoundingClientRect&&a.domSupported&&!Ht(e)){var o=e.___zrEVENTSAVED||(e.___zrEVENTSAVED={}),s=function(t,e,n){for(var i=n?"invTrans":"trans",r=e[i],o=e.srcCoords,a=[],s=[],l=!0,u=0;u<4;u++){var h=t[u].getBoundingClientRect(),c=2*u,p=h.left,d=h.top;a.push(p,d),l=l&&o&&p===o[c]&&d===o[c+1],s.push(t[u].offsetLeft,t[u].offsetTop)}return l&&r?r:(e.srcCoords=a,e[i]=n?zt(s,a):zt(a,s))}(function(t,e){var n=e.markers;if(n)return n;n=e.markers=[];for(var i=["left","right"],r=["top","bottom"],o=0;o<4;o++){var a=document.createElement("div"),s=o%2,l=(o>>1)%2;a.style.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",i[s]+":0",r[l]+":0",i[1-s]+":auto",r[1-l]+":auto",""].join("!important;"),t.appendChild(a),n.push(a)}return n}(e,o),o,r);if(s)return s(t,n,i),!0}return!1}function Ht(t){return"CANVAS"===t.nodeName.toUpperCase()}var Gt="undefined"!=typeof window&&!!window.addEventListener,Wt=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ut=[];function Yt(t,e,n,i){return n=n||{},i||!a.canvasSupported?Xt(t,e,n):a.browser.firefox&&null!=e.layerX&&e.layerX!==e.offsetX?(n.zrX=e.layerX,n.zrY=e.layerY):null!=e.offsetX?(n.zrX=e.offsetX,n.zrY=e.offsetY):Xt(t,e,n),n}function Xt(t,e,n){if(a.domSupported&&t.getBoundingClientRect){var i=e.clientX,r=e.clientY;if(Ht(t)){var o=t.getBoundingClientRect();return n.zrX=i-o.left,void(n.zrY=r-o.top)}if(Ft(Ut,t,i,r))return n.zrX=Ut[0],void(n.zrY=Ut[1])}n.zrX=n.zrY=0}function Zt(t){return t||window.event}function jt(t,e,n){if(null!=(e=Zt(e)).zrX)return e;var i=e.type;if(i&&i.indexOf("touch")>=0){var r="touchend"!==i?e.targetTouches[0]:e.changedTouches[0];r&&Yt(t,r,e,n)}else{Yt(t,e,e,n);var o=function(t){var e=t.wheelDelta;if(e)return e;var n=t.deltaX,i=t.deltaY;if(null==n||null==i)return e;return 3*(0!==i?Math.abs(i):Math.abs(n))*(i>0?-1:i<0?1:n>0?-1:1)}(e);e.zrDelta=o?o/120:-(e.detail||0)/3}var a=e.button;return null==e.which&&void 0!==a&&Wt.test(e.type)&&(e.which=1&a?1:2&a?3:4&a?2:0),e}function qt(t,e,n,i){Gt?t.addEventListener(e,n,i):t.attachEvent("on"+e,n)}var Kt=Gt?function(t){t.preventDefault(),t.stopPropagation(),t.cancelBubble=!0}:function(t){t.returnValue=!1,t.cancelBubble=!0};function $t(t){return 2===t.which||3===t.which}var Jt=function(){function t(){this._track=[]}return t.prototype.recognize=function(t,e,n){return this._doTrack(t,e,n),this._recognize(t)},t.prototype.clear=function(){return this._track.length=0,this},t.prototype._doTrack=function(t,e,n){var i=t.touches;if(i){for(var r={points:[],touches:[],target:e,event:t},o=0,a=i.length;o<a;o++){var s=i[o],l=Yt(n,s,{});r.points.push([l.zrX,l.zrY]),r.touches.push(s)}this._track.push(r)}},t.prototype._recognize=function(t){for(var e in te)if(te.hasOwnProperty(e)){var n=te[e](this._track,t);if(n)return n}},t}();function Qt(t){var e=t[1][0]-t[0][0],n=t[1][1]-t[0][1];return Math.sqrt(e*e+n*n)}var te={pinch:function(t,e){var n=t.length;if(n){var i,r=(t[n-1]||{}).points,o=(t[n-2]||{}).points||r;if(o&&o.length>1&&r&&r.length>1){var a=Qt(r)/Qt(o);!isFinite(a)&&(a=1),e.pinchScale=a;var s=[((i=r)[0][0]+i[1][0])/2,(i[0][1]+i[1][1])/2];return e.pinchX=s[0],e.pinchY=s[1],{type:"pinch",target:t[0].target,event:e}}}}},ee="silent";function ne(){Kt(this.event)}var ie=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.handler=null,e}return n(e,t),e.prototype.dispose=function(){},e.prototype.setCursor=function(){},e}(Nt),re=function(t,e){this.x=t,this.y=e},oe=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],ae=function(t){function e(e,n,i,r){var o=t.call(this)||this;return o._hovered=new re(0,0),o.storage=e,o.painter=n,o.painterRoot=r,i=i||new ie,o.proxy=null,o.setHandlerProxy(i),o._draggingMgr=new Rt(o),o}return n(e,t),e.prototype.setHandlerProxy=function(t){this.proxy&&this.proxy.dispose(),t&&(P(oe,(function(e){t.on&&t.on(e,this[e],this)}),this),t.handler=this),this.proxy=t},e.prototype.mousemove=function(t){var e=t.zrX,n=t.zrY,i=le(this,e,n),r=this._hovered,o=r.target;o&&!o.__zr&&(o=(r=this.findHover(r.x,r.y)).target);var a=this._hovered=i?new re(e,n):this.findHover(e,n),s=a.target,l=this.proxy;l.setCursor&&l.setCursor(s?s.cursor:"default"),o&&s!==o&&this.dispatchToElement(r,"mouseout",t),this.dispatchToElement(a,"mousemove",t),s&&s!==o&&this.dispatchToElement(a,"mouseover",t)},e.prototype.mouseout=function(t){var e=t.zrEventControl;"only_globalout"!==e&&this.dispatchToElement(this._hovered,"mouseout",t),"no_globalout"!==e&&this.trigger("globalout",{type:"globalout",event:t})},e.prototype.resize=function(){this._hovered=new re(0,0)},e.prototype.dispatch=function(t,e){var n=this[t];n&&n.call(this,e)},e.prototype.dispose=function(){this.proxy.dispose(),this.storage=null,this.proxy=null,this.painter=null},e.prototype.setCursorStyle=function(t){var e=this.proxy;e.setCursor&&e.setCursor(t)},e.prototype.dispatchToElement=function(t,e,n){var i=(t=t||{}).target;if(!i||!i.silent){for(var r="on"+e,o=function(t,e,n){return{type:t,event:n,target:e.target,topTarget:e.topTarget,cancelBubble:!1,offsetX:n.zrX,offsetY:n.zrY,gestureEvent:n.gestureEvent,pinchX:n.pinchX,pinchY:n.pinchY,pinchScale:n.pinchScale,wheelDelta:n.zrDelta,zrByTouch:n.zrByTouch,which:n.which,stop:ne}}(e,t,n);i&&(i[r]&&(o.cancelBubble=!!i[r].call(i,o)),i.trigger(e,o),i=i.__hostTarget?i.__hostTarget:i.parent,!o.cancelBubble););o.cancelBubble||(this.trigger(e,o),this.painter&&this.painter.eachOtherLayer&&this.painter.eachOtherLayer((function(t){"function"==typeof t[r]&&t[r].call(t,o),t.trigger&&t.trigger(e,o)})))}},e.prototype.findHover=function(t,e,n){for(var i=this.storage.getDisplayList(),r=new re(t,e),o=i.length-1;o>=0;o--){var a=void 0;if(i[o]!==n&&!i[o].ignore&&(a=se(i[o],t,e))&&(!r.topTarget&&(r.topTarget=i[o]),a!==ee)){r.target=i[o];break}}return r},e.prototype.processGesture=function(t,e){this._gestureMgr||(this._gestureMgr=new Jt);var n=this._gestureMgr;"start"===e&&n.clear();var i=n.recognize(t,this.findHover(t.zrX,t.zrY,null).target,this.proxy.dom);if("end"===e&&n.clear(),i){var r=i.type;t.gestureEvent=r;var o=new re;o.target=i.target,this.dispatchToElement(o,r,i.event)}},e}(Nt);function se(t,e,n){if(t[t.rectHover?"rectContain":"contain"](e,n)){for(var i=t,r=void 0,o=!1;i;){if(i.ignoreClip&&(o=!0),!o){var a=i.getClipPath();if(a&&!a.contain(e,n))return!1;i.silent&&(r=!0)}var s=i.__hostTarget;i=s||i.parent}return!r||ee}return!1}function le(t,e,n){var i=t.painter;return e<0||e>i.getWidth()||n<0||n>i.getHeight()}function ue(){return[1,0,0,1,0,0]}function he(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t}function ce(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function pe(t,e,n){var i=e[0]*n[0]+e[2]*n[1],r=e[1]*n[0]+e[3]*n[1],o=e[0]*n[2]+e[2]*n[3],a=e[1]*n[2]+e[3]*n[3],s=e[0]*n[4]+e[2]*n[5]+e[4],l=e[1]*n[4]+e[3]*n[5]+e[5];return t[0]=i,t[1]=r,t[2]=o,t[3]=a,t[4]=s,t[5]=l,t}function de(t,e,n){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4]+n[0],t[5]=e[5]+n[1],t}function fe(t,e,n){var i=e[0],r=e[2],o=e[4],a=e[1],s=e[3],l=e[5],u=Math.sin(n),h=Math.cos(n);return t[0]=i*h+a*u,t[1]=-i*u+a*h,t[2]=r*h+s*u,t[3]=-r*u+h*s,t[4]=h*o+u*l,t[5]=h*l-u*o,t}function ge(t,e,n){var i=n[0],r=n[1];return t[0]=e[0]*i,t[1]=e[1]*r,t[2]=e[2]*i,t[3]=e[3]*r,t[4]=e[4]*i,t[5]=e[5]*r,t}function ye(t,e){var n=e[0],i=e[2],r=e[4],o=e[1],a=e[3],s=e[5],l=n*a-o*i;return l?(l=1/l,t[0]=a*l,t[1]=-o*l,t[2]=-i*l,t[3]=n*l,t[4]=(i*s-a*r)*l,t[5]=(o*r-n*s)*l,t):null}P(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],(function(t){ae.prototype[t]=function(e){var n,i,r=e.zrX,o=e.zrY,a=le(this,r,o);if("mouseup"===t&&a||(i=(n=this.findHover(r,o)).target),"mousedown"===t)this._downEl=i,this._downPoint=[e.zrX,e.zrY],this._upEl=i;else if("mouseup"===t)this._upEl=i;else if("click"===t){if(this._downEl!==this._upEl||!this._downPoint||Tt(this._downPoint,[e.zrX,e.zrY])>4)return;this._downPoint=null}this.dispatchToElement(n,t,e)}}));var ve=Object.freeze({__proto__:null,create:ue,identity:he,copy:ce,mul:pe,translate:de,rotate:fe,scale:ge,invert:ye,clone:function(t){var e=[1,0,0,1,0,0];return ce(e,t),e}}),me=he,_e=5e-5;function xe(t){return t>_e||t<-5e-5}var be=[],we=[],Se=[1,0,0,1,0,0],Me=Math.abs,Te=function(){function t(){}return t.prototype.setPosition=function(t){this.x=t[0],this.y=t[1]},t.prototype.setScale=function(t){this.scaleX=t[0],this.scaleY=t[1]},t.prototype.setOrigin=function(t){this.originX=t[0],this.originY=t[1]},t.prototype.needLocalTransform=function(){return xe(this.rotation)||xe(this.x)||xe(this.y)||xe(this.scaleX-1)||xe(this.scaleY-1)},t.prototype.updateTransform=function(){var t=this.parent,e=t&&t.transform,n=this.needLocalTransform(),i=this.transform;n||e?(i=i||[1,0,0,1,0,0],n?this.getLocalTransform(i):me(i),e&&(n?pe(i,t.transform,i):ce(i,t.transform)),this.transform=i,this._resolveGlobalScaleRatio(i)):i&&me(i)},t.prototype._resolveGlobalScaleRatio=function(t){var e=this.globalScaleRatio;if(null!=e&&1!==e){this.getGlobalScale(be);var n=be[0]<0?-1:1,i=be[1]<0?-1:1,r=((be[0]-n)*e+n)/be[0]||0,o=((be[1]-i)*e+i)/be[1]||0;t[0]*=r,t[1]*=r,t[2]*=o,t[3]*=o}this.invTransform=this.invTransform||[1,0,0,1,0,0],ye(this.invTransform,t)},t.prototype.getLocalTransform=function(e){return t.getLocalTransform(this,e)},t.prototype.getComputedTransform=function(){for(var t=this,e=[];t;)e.push(t),t=t.parent;for(;t=e.pop();)t.updateTransform();return this.transform},t.prototype.setLocalTransform=function(t){if(t){var e=t[0]*t[0]+t[1]*t[1],n=t[2]*t[2]+t[3]*t[3];xe(e-1)&&(e=Math.sqrt(e)),xe(n-1)&&(n=Math.sqrt(n)),t[0]<0&&(e=-e),t[3]<0&&(n=-n),this.rotation=Math.atan2(-t[1]/n,t[0]/e),e<0&&n<0&&(this.rotation+=Math.PI,e=-e,n=-n),this.x=t[4],this.y=t[5],this.scaleX=e,this.scaleY=n}},t.prototype.decomposeTransform=function(){if(this.transform){var t=this.parent,e=this.transform;t&&t.transform&&(pe(we,t.invTransform,e),e=we);var n=this.originX,i=this.originY;(n||i)&&(Se[4]=n,Se[5]=i,pe(we,e,Se),we[4]-=n,we[5]-=i,e=we),this.setLocalTransform(e)}},t.prototype.getGlobalScale=function(t){var e=this.transform;return t=t||[],e?(t[0]=Math.sqrt(e[0]*e[0]+e[1]*e[1]),t[1]=Math.sqrt(e[2]*e[2]+e[3]*e[3]),e[0]<0&&(t[0]=-t[0]),e[3]<0&&(t[1]=-t[1]),t):(t[0]=1,t[1]=1,t)},t.prototype.transformCoordToLocal=function(t,e){var n=[t,e],i=this.invTransform;return i&&Dt(n,n,i),n},t.prototype.transformCoordToGlobal=function(t,e){var n=[t,e],i=this.transform;return i&&Dt(n,n,i),n},t.prototype.getLineScale=function(){var t=this.transform;return t&&Me(t[0]-1)>1e-10&&Me(t[3]-1)>1e-10?Math.sqrt(Me(t[0]*t[3]-t[2]*t[1])):1},t.getLocalTransform=function(t,e){me(e=e||[]);var n=t.originX||0,i=t.originY||0,r=t.scaleX,o=t.scaleY,a=t.rotation||0,s=t.x,l=t.y;return e[4]-=n,e[5]-=i,e[0]*=r,e[1]*=o,e[2]*=r,e[3]*=o,e[4]*=r,e[5]*=o,a&&fe(e,e,a),e[4]+=n,e[5]+=i,e[4]+=s,e[5]+=l,e},t.initDefaultProps=function(){var e=t.prototype;e.x=0,e.y=0,e.scaleX=1,e.scaleY=1,e.originX=0,e.originY=0,e.rotation=0,e.globalScaleRatio=1}(),t}(),Ce={linear:function(t){return t},quadraticIn:function(t){return t*t},quadraticOut:function(t){return t*(2-t)},quadraticInOut:function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)},cubicIn:function(t){return t*t*t},cubicOut:function(t){return--t*t*t+1},cubicInOut:function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},quarticIn:function(t){return t*t*t*t},quarticOut:function(t){return 1- --t*t*t*t},quarticInOut:function(t){return(t*=2)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},quinticIn:function(t){return t*t*t*t*t},quinticOut:function(t){return--t*t*t*t*t+1},quinticInOut:function(t){return(t*=2)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},sinusoidalIn:function(t){return 1-Math.cos(t*Math.PI/2)},sinusoidalOut:function(t){return Math.sin(t*Math.PI/2)},sinusoidalInOut:function(t){return.5*(1-Math.cos(Math.PI*t))},exponentialIn:function(t){return 0===t?0:Math.pow(1024,t-1)},exponentialOut:function(t){return 1===t?1:1-Math.pow(2,-10*t)},exponentialInOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(2-Math.pow(2,-10*(t-1)))},circularIn:function(t){return 1-Math.sqrt(1-t*t)},circularOut:function(t){return Math.sqrt(1- --t*t)},circularInOut:function(t){return(t*=2)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},elasticIn:function(t){var e,n=.1;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=.4*Math.asin(1/n)/(2*Math.PI),-n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/.4))},elasticOut:function(t){var e,n=.1;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=.4*Math.asin(1/n)/(2*Math.PI),n*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/.4)+1)},elasticInOut:function(t){var e,n=.1,i=.4;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=i*Math.asin(1/n)/(2*Math.PI),(t*=2)<1?n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*-.5:n*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*.5+1)},backIn:function(t){var e=1.70158;return t*t*((e+1)*t-e)},backOut:function(t){var e=1.70158;return--t*t*((e+1)*t+e)+1},backInOut:function(t){var e=2.5949095;return(t*=2)<1?t*t*((e+1)*t-e)*.5:.5*((t-=2)*t*((e+1)*t+e)+2)},bounceIn:function(t){return 1-Ce.bounceOut(1-t)},bounceOut:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},bounceInOut:function(t){return t<.5?.5*Ce.bounceIn(2*t):.5*Ce.bounceOut(2*t-1)+.5}},Ie=function(){function t(t){this._initialized=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=t.life||1e3,this._delay=t.delay||0,this.loop=null!=t.loop&&t.loop,this.gap=t.gap||0,this.easing=t.easing||"linear",this.onframe=t.onframe,this.ondestroy=t.ondestroy,this.onrestart=t.onrestart}return t.prototype.step=function(t,e){if(this._initialized||(this._startTime=t+this._delay,this._initialized=!0),!this._paused){var n=(t-this._startTime-this._pausedTime)/this._life;n<0&&(n=0),n=Math.min(n,1);var i=this.easing,r="string"==typeof i?Ce[i]:i,o="function"==typeof r?r(n):n;if(this.onframe&&this.onframe(o),1===n){if(!this.loop)return!0;this._restart(t),this.onrestart&&this.onrestart()}return!1}this._pausedTime+=e},t.prototype._restart=function(t){var e=(t-this._startTime-this._pausedTime)%this._life;this._startTime=t-e+this.gap,this._pausedTime=0},t.prototype.pause=function(){this._paused=!0},t.prototype.resume=function(){this._paused=!1},t}(),Ae=function(t){this.value=t},De=function(){function t(){this._len=0}return t.prototype.insert=function(t){var e=new Ae(t);return this.insertEntry(e),e},t.prototype.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t):this.head=this.tail=t,this._len++},t.prototype.remove=function(t){var e=t.prev,n=t.next;e?e.next=n:this.head=n,n?n.prev=e:this.tail=e,t.next=t.prev=null,this._len--},t.prototype.len=function(){return this._len},t.prototype.clear=function(){this.head=this.tail=null,this._len=0},t}(),ke=function(){function t(t){this._list=new De,this._maxSize=10,this._map={},this._maxSize=t}return t.prototype.put=function(t,e){var n=this._list,i=this._map,r=null;if(null==i[t]){var o=n.len(),a=this._lastRemovedEntry;if(o>=this._maxSize&&o>0){var s=n.head;n.remove(s),delete i[s.key],r=s.value,this._lastRemovedEntry=s}a?a.value=e:a=new Ae(e),a.key=t,n.insertEntry(a),i[t]=a}return r},t.prototype.get=function(t){var e=this._map[t],n=this._list;if(null!=e)return e!==n.tail&&(n.remove(e),n.insertEntry(e)),e.value},t.prototype.clear=function(){this._list.clear(),this._map={}},t.prototype.len=function(){return this._list.len()},t}(),Le={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function Pe(t){return(t=Math.round(t))<0?0:t>255?255:t}function Oe(t){return t<0?0:t>1?1:t}function Re(t){var e=t;return e.length&&"%"===e.charAt(e.length-1)?Pe(parseFloat(e)/100*255):Pe(parseInt(e,10))}function Ne(t){var e=t;return e.length&&"%"===e.charAt(e.length-1)?Oe(parseFloat(e)/100):Oe(parseFloat(e))}function Ee(t,e,n){return n<0?n+=1:n>1&&(n-=1),6*n<1?t+(e-t)*n*6:2*n<1?e:3*n<2?t+(e-t)*(2/3-n)*6:t}function Be(t,e,n){return t+(e-t)*n}function ze(t,e,n,i,r){return t[0]=e,t[1]=n,t[2]=i,t[3]=r,t}function Ve(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}var Fe=new ke(20),He=null;function Ge(t,e){He&&Ve(He,e),He=Fe.put(t,He||e.slice())}function We(t,e){if(t){e=e||[];var n=Fe.get(t);if(n)return Ve(e,n);var i=(t+="").replace(/ /g,"").toLowerCase();if(i in Le)return Ve(e,Le[i]),Ge(t,e),e;var r,o=i.length;if("#"===i.charAt(0))return 4===o||5===o?(r=parseInt(i.slice(1,4),16))>=0&&r<=4095?(ze(e,(3840&r)>>4|(3840&r)>>8,240&r|(240&r)>>4,15&r|(15&r)<<4,5===o?parseInt(i.slice(4),16)/15:1),Ge(t,e),e):void ze(e,0,0,0,1):7===o||9===o?(r=parseInt(i.slice(1,7),16))>=0&&r<=16777215?(ze(e,(16711680&r)>>16,(65280&r)>>8,255&r,9===o?parseInt(i.slice(7),16)/255:1),Ge(t,e),e):void ze(e,0,0,0,1):void 0;var a=i.indexOf("("),s=i.indexOf(")");if(-1!==a&&s+1===o){var l=i.substr(0,a),u=i.substr(a+1,s-(a+1)).split(","),h=1;switch(l){case"rgba":if(4!==u.length)return 3===u.length?ze(e,+u[0],+u[1],+u[2],1):ze(e,0,0,0,1);h=Ne(u.pop());case"rgb":return 3!==u.length?void ze(e,0,0,0,1):(ze(e,Re(u[0]),Re(u[1]),Re(u[2]),h),Ge(t,e),e);case"hsla":return 4!==u.length?void ze(e,0,0,0,1):(u[3]=Ne(u[3]),Ue(u,e),Ge(t,e),e);case"hsl":return 3!==u.length?void ze(e,0,0,0,1):(Ue(u,e),Ge(t,e),e);default:return}}ze(e,0,0,0,1)}}function Ue(t,e){var n=(parseFloat(t[0])%360+360)%360/360,i=Ne(t[1]),r=Ne(t[2]),o=r<=.5?r*(i+1):r+i-r*i,a=2*r-o;return ze(e=e||[],Pe(255*Ee(a,o,n+1/3)),Pe(255*Ee(a,o,n)),Pe(255*Ee(a,o,n-1/3)),1),4===t.length&&(e[3]=t[3]),e}function Ye(t,e){var n=We(t);if(n){for(var i=0;i<3;i++)n[i]=e<0?n[i]*(1-e)|0:(255-n[i])*e+n[i]|0,n[i]>255?n[i]=255:n[i]<0&&(n[i]=0);return Je(n,4===n.length?"rgba":"rgb")}}function Xe(t){var e=We(t);if(e)return((1<<24)+(e[0]<<16)+(e[1]<<8)+ +e[2]).toString(16).slice(1)}function Ze(t,e,n){if(e&&e.length&&t>=0&&t<=1){n=n||[];var i=t*(e.length-1),r=Math.floor(i),o=Math.ceil(i),a=e[r],s=e[o],l=i-r;return n[0]=Pe(Be(a[0],s[0],l)),n[1]=Pe(Be(a[1],s[1],l)),n[2]=Pe(Be(a[2],s[2],l)),n[3]=Oe(Be(a[3],s[3],l)),n}}var je=Ze;function qe(t,e,n){if(e&&e.length&&t>=0&&t<=1){var i=t*(e.length-1),r=Math.floor(i),o=Math.ceil(i),a=We(e[r]),s=We(e[o]),l=i-r,u=Je([Pe(Be(a[0],s[0],l)),Pe(Be(a[1],s[1],l)),Pe(Be(a[2],s[2],l)),Oe(Be(a[3],s[3],l))],"rgba");return n?{color:u,leftIndex:r,rightIndex:o,value:i}:u}}var Ke=qe;function $e(t,e){var n=We(t);if(n&&null!=e)return n[3]=Oe(e),Je(n,"rgba")}function Je(t,e){if(t&&t.length){var n=t[0]+","+t[1]+","+t[2];return"rgba"!==e&&"hsva"!==e&&"hsla"!==e||(n+=","+t[3]),e+"("+n+")"}}function Qe(t,e){var n=We(t);return n?(.299*n[0]+.587*n[1]+.114*n[2])*n[3]/255+(1-n[3])*e:0}var tn=Object.freeze({__proto__:null,parse:We,lift:Ye,toHex:Xe,fastLerp:Ze,fastMapToColor:je,lerp:qe,mapToColor:Ke,modifyHSL:function(t,e,n,i){var r,o=We(t);if(t)return o=function(t){if(t){var e,n,i=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.min(i,r,o),s=Math.max(i,r,o),l=s-a,u=(s+a)/2;if(0===l)e=0,n=0;else{n=u<.5?l/(s+a):l/(2-s-a);var h=((s-i)/6+l/2)/l,c=((s-r)/6+l/2)/l,p=((s-o)/6+l/2)/l;i===s?e=p-c:r===s?e=1/3+h-p:o===s&&(e=2/3+c-h),e<0&&(e+=1),e>1&&(e-=1)}var d=[360*e,n,u];return null!=t[3]&&d.push(t[3]),d}}(o),null!=e&&(o[0]=(r=e,(r=Math.round(r))<0?0:r>360?360:r)),null!=n&&(o[1]=Ne(n)),null!=i&&(o[2]=Ne(i)),Je(Ue(o),"rgba")},modifyAlpha:$e,stringify:Je,lum:Qe,random:function(){return"rgb("+Math.round(255*Math.random())+","+Math.round(255*Math.random())+","+Math.round(255*Math.random())+")"}}),en=Array.prototype.slice;function nn(t,e,n){return(e-t)*n+t}function rn(t,e,n,i){for(var r=e.length,o=0;o<r;o++)t[o]=nn(e[o],n[o],i)}function on(t,e,n,i){for(var r=e.length,o=0;o<r;o++)t[o]=e[o]+n[o]*i;return t}function an(t,e,n,i){for(var r=e.length,o=r&&e[0].length,a=0;a<r;a++){t[a]||(t[a]=[]);for(var s=0;s<o;s++)t[a][s]=e[a][s]+n[a][s]*i}return t}function sn(t,e,n){var i=t,r=e;if(i.push&&r.push){var o=i.length,a=r.length;if(o!==a)if(o>a)i.length=a;else for(var s=o;s<a;s++)i.push(1===n?r[s]:en.call(r[s]));var l=i[0]&&i[0].length;for(s=0;s<i.length;s++)if(1===n)isNaN(i[s])&&(i[s]=r[s]);else for(var u=0;u<l;u++)isNaN(i[s][u])&&(i[s][u]=r[s][u])}}function ln(t,e){var n=t.length;if(n!==e.length)return!1;for(var i=0;i<n;i++)if(t[i]!==e[i])return!1;return!0}function un(t,e,n,i,r,o,a){var s=.5*(n-t),l=.5*(i-e);return(2*(e-n)+s+l)*a+(-3*(e-n)-2*s-l)*o+s*r+e}function hn(t,e,n,i,r,o,a,s){for(var l=e.length,u=0;u<l;u++)t[u]=un(e[u],n[u],i[u],r[u],o,a,s)}function cn(t){if(L(t)){var e=t.length;if(L(t[0])){for(var n=[],i=0;i<e;i++)n.push(en.call(t[i]));return n}return en.call(t)}return t}function pn(t){return t[0]=Math.floor(t[0]),t[1]=Math.floor(t[1]),t[2]=Math.floor(t[2]),"rgba("+t.join(",")+")"}var dn,fn,gn=[0,0,0,0],yn=function(){function t(t){this.keyframes=[],this.maxTime=0,this.arrDim=0,this.interpolable=!0,this._needsSort=!1,this._isAllValueEqual=!0,this._lastFrame=0,this._lastFramePercent=0,this.propName=t}return t.prototype.isFinished=function(){return this._finished},t.prototype.setFinished=function(){this._finished=!0,this._additiveTrack&&this._additiveTrack.setFinished()},t.prototype.needsAnimate=function(){return!this._isAllValueEqual&&this.keyframes.length>=2&&this.interpolable},t.prototype.getAdditiveTrack=function(){return this._additiveTrack},t.prototype.addKeyframe=function(t,e){t>=this.maxTime?this.maxTime=t:this._needsSort=!0;var n=this.keyframes,i=n.length;if(this.interpolable)if(L(e)){var r=function(t){return L(t&&t[0])?2:1}(e);if(i>0&&this.arrDim!==r)return void(this.interpolable=!1);if(1===r&&"number"!=typeof e[0]||2===r&&"number"!=typeof e[0][0])return void(this.interpolable=!1);if(i>0){var o=n[i-1];this._isAllValueEqual&&(1===r&&ln(e,o.value)||(this._isAllValueEqual=!1))}this.arrDim=r}else{if(this.arrDim>0)return void(this.interpolable=!1);if("string"==typeof e){var a=We(e);a?(e=a,this.isValueColor=!0):this.interpolable=!1}else if("number"!=typeof e)return void(this.interpolable=!1);if(this._isAllValueEqual&&i>0){o=n[i-1];(this.isValueColor&&!ln(o.value,e)||o.value!==e)&&(this._isAllValueEqual=!1)}}var s={time:t,value:e,percent:0};return this.keyframes.push(s),s},t.prototype.prepare=function(t){var e=this.keyframes;this._needsSort&&e.sort((function(t,e){return t.time-e.time}));for(var n=this.arrDim,i=e.length,r=e[i-1],o=0;o<i;o++)e[o].percent=e[o].time/this.maxTime,n>0&&o!==i-1&&sn(e[o].value,r.value,n);if(t&&this.needsAnimate()&&t.needsAnimate()&&n===t.arrDim&&this.isValueColor===t.isValueColor&&!t._finished){this._additiveTrack=t;var a=e[0].value;for(o=0;o<i;o++)0===n?this.isValueColor?e[o].additiveValue=on([],e[o].value,a,-1):e[o].additiveValue=e[o].value-a:1===n?e[o].additiveValue=on([],e[o].value,a,-1):2===n&&(e[o].additiveValue=an([],e[o].value,a,-1))}},t.prototype.step=function(t,e){if(!this._finished){this._additiveTrack&&this._additiveTrack._finished&&(this._additiveTrack=null);var n,i=null!=this._additiveTrack,r=i?"additiveValue":"value",o=this.keyframes,a=this.keyframes.length,s=this.propName,l=this.arrDim,u=this.isValueColor;if(e<0)n=0;else if(e<this._lastFramePercent){for(n=Math.min(this._lastFrame+1,a-1);n>=0&&!(o[n].percent<=e);n--);n=Math.min(n,a-2)}else{for(n=this._lastFrame;n<a&&!(o[n].percent>e);n++);n=Math.min(n-1,a-2)}var h=o[n+1],c=o[n];if(c&&h){this._lastFrame=n,this._lastFramePercent=e;var p=h.percent-c.percent;if(0!==p){var d=(e-c.percent)/p,f=i?this._additiveValue:u?gn:t[s];if((l>0||u)&&!f&&(f=this._additiveValue=[]),this.useSpline){var g=o[n][r],y=o[0===n?n:n-1][r],v=o[n>a-2?a-1:n+1][r],m=o[n>a-3?a-1:n+2][r];if(l>0)1===l?hn(f,y,g,v,m,d,d*d,d*d*d):function(t,e,n,i,r,o,a,s){for(var l=e.length,u=e[0].length,h=0;h<l;h++){t[h]||(t[1]=[]);for(var c=0;c<u;c++)t[h][c]=un(e[h][c],n[h][c],i[h][c],r[h][c],o,a,s)}}(f,y,g,v,m,d,d*d,d*d*d);else if(u)hn(f,y,g,v,m,d,d*d,d*d*d),i||(t[s]=pn(f));else{var _=void 0;_=this.interpolable?un(y,g,v,m,d,d*d,d*d*d):v,i?this._additiveValue=_:t[s]=_}}else if(l>0)1===l?rn(f,c[r],h[r],d):function(t,e,n,i){for(var r=e.length,o=r&&e[0].length,a=0;a<r;a++){t[a]||(t[a]=[]);for(var s=0;s<o;s++)t[a][s]=nn(e[a][s],n[a][s],i)}}(f,c[r],h[r],d);else if(u)rn(f,c[r],h[r],d),i||(t[s]=pn(f));else{_=void 0;_=this.interpolable?nn(c[r],h[r],d):function(t,e,n){return n>.5?e:t}(c[r],h[r],d),i?this._additiveValue=_:t[s]=_}i&&this._addToTarget(t)}}}},t.prototype._addToTarget=function(t){var e=this.arrDim,n=this.propName,i=this._additiveValue;0===e?this.isValueColor?(We(t[n],gn),on(gn,gn,i,1),t[n]=pn(gn)):t[n]=t[n]+i:1===e?on(t[n],t[n],i,1):2===e&&an(t[n],t[n],i,1)},t}(),vn=function(){function t(t,e,n){this._tracks={},this._trackKeys=[],this._delay=0,this._maxTime=0,this._paused=!1,this._started=0,this._clip=null,this._target=t,this._loop=e,e&&n?b("Can' use additive animation on looped animation."):this._additiveAnimators=n}return t.prototype.getTarget=function(){return this._target},t.prototype.changeTarget=function(t){this._target=t},t.prototype.when=function(t,e){return this.whenWithKeys(t,e,E(e))},t.prototype.whenWithKeys=function(t,e,n){for(var i=this._tracks,r=0;r<n.length;r++){var o=n[r],a=i[o];if(!a){a=i[o]=new yn(o);var s=void 0,l=this._getAdditiveTrack(o);if(l){var u=l.keyframes[l.keyframes.length-1];s=u&&u.value,l.isValueColor&&s&&(s=pn(s))}else s=this._target[o];if(null==s)continue;0!==t&&a.addKeyframe(0,cn(s)),this._trackKeys.push(o)}a.addKeyframe(t,cn(e[o]))}return this._maxTime=Math.max(this._maxTime,t),this},t.prototype.pause=function(){this._clip.pause(),this._paused=!0},t.prototype.resume=function(){this._clip.resume(),this._paused=!1},t.prototype.isPaused=function(){return!!this._paused},t.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var t=this._doneList;if(t)for(var e=t.length,n=0;n<e;n++)t[n].call(this)},t.prototype._abortedCallback=function(){this._setTracksFinished();var t=this.animation,e=this._abortedList;if(t&&t.removeClip(this._clip),this._clip=null,e)for(var n=0;n<e.length;n++)e[n].call(this)},t.prototype._setTracksFinished=function(){for(var t=this._tracks,e=this._trackKeys,n=0;n<e.length;n++)t[e[n]].setFinished()},t.prototype._getAdditiveTrack=function(t){var e,n=this._additiveAnimators;if(n)for(var i=0;i<n.length;i++){var r=n[i].getTrack(t);r&&(e=r)}return e},t.prototype.start=function(t,e){if(!(this._started>0)){this._started=1;for(var n=this,i=[],r=0;r<this._trackKeys.length;r++){var o=this._trackKeys[r],a=this._tracks[o],s=this._getAdditiveTrack(o),l=a.keyframes;if(a.prepare(s),a.needsAnimate())i.push(a);else if(!a.interpolable){var u=l[l.length-1];u&&(n._target[a.propName]=u.value)}}if(i.length||e){var h=new Ie({life:this._maxTime,loop:this._loop,delay:this._delay,onframe:function(t){n._started=2;var e=n._additiveAnimators;if(e){for(var r=!1,o=0;o<e.length;o++)if(e[o]._clip){r=!0;break}r||(n._additiveAnimators=null)}for(o=0;o<i.length;o++)i[o].step(n._target,t);var a=n._onframeList;if(a)for(o=0;o<a.length;o++)a[o](n._target,t)},ondestroy:function(){n._doneCallback()}});this._clip=h,this.animation&&this.animation.addClip(h),t&&"spline"!==t&&(h.easing=t)}else this._doneCallback();return this}},t.prototype.stop=function(t){if(this._clip){var e=this._clip;t&&e.onframe(1),this._abortedCallback()}},t.prototype.delay=function(t){return this._delay=t,this},t.prototype.during=function(t){return t&&(this._onframeList||(this._onframeList=[]),this._onframeList.push(t)),this},t.prototype.done=function(t){return t&&(this._doneList||(this._doneList=[]),this._doneList.push(t)),this},t.prototype.aborted=function(t){return t&&(this._abortedList||(this._abortedList=[]),this._abortedList.push(t)),this},t.prototype.getClip=function(){return this._clip},t.prototype.getTrack=function(t){return this._tracks[t]},t.prototype.stopTracks=function(t,e){if(!t.length||!this._clip)return!0;for(var n=this._tracks,i=this._trackKeys,r=0;r<t.length;r++){var o=n[t[r]];o&&(e?o.step(this._target,1):1===this._started&&o.step(this._target,0),o.setFinished())}var a=!0;for(r=0;r<i.length;r++)if(!n[i[r]].isFinished()){a=!1;break}return a&&this._abortedCallback(),a},t.prototype.saveFinalToTarget=function(t,e){if(t){e=e||this._trackKeys;for(var n=0;n<e.length;n++){var i=e[n],r=this._tracks[i];if(r&&!r.isFinished()){var o=r.keyframes,a=o[o.length-1];if(a){var s=cn(a.value);r.isValueColor&&(s=pn(s)),t[i]=s}}}}},t.prototype.__changeFinalValue=function(t,e){e=e||E(t);for(var n=0;n<e.length;n++){var i=e[n],r=this._tracks[i];if(r){var o=r.keyframes;if(o.length>1){var a=o.pop();r.addKeyframe(a.time,t[i]),r.prepare(r.getAdditiveTrack())}}}},t}(),mn=function(){function t(t,e){this.x=t||0,this.y=e||0}return t.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this},t.prototype.clone=function(){return new t(this.x,this.y)},t.prototype.set=function(t,e){return this.x=t,this.y=e,this},t.prototype.equal=function(t){return t.x===this.x&&t.y===this.y},t.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this},t.prototype.scale=function(t){this.x*=t,this.y*=t},t.prototype.scaleAndAdd=function(t,e){this.x+=t.x*e,this.y+=t.y*e},t.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this},t.prototype.dot=function(t){return this.x*t.x+this.y*t.y},t.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},t.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},t.prototype.normalize=function(){var t=this.len();return this.x/=t,this.y/=t,this},t.prototype.distance=function(t){var e=this.x-t.x,n=this.y-t.y;return Math.sqrt(e*e+n*n)},t.prototype.distanceSquare=function(t){var e=this.x-t.x,n=this.y-t.y;return e*e+n*n},t.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},t.prototype.transform=function(t){if(t){var e=this.x,n=this.y;return this.x=t[0]*e+t[2]*n+t[4],this.y=t[1]*e+t[3]*n+t[5],this}},t.prototype.toArray=function(t){return t[0]=this.x,t[1]=this.y,t},t.prototype.fromArray=function(t){this.x=t[0],this.y=t[1]},t.set=function(t,e,n){t.x=e,t.y=n},t.copy=function(t,e){t.x=e.x,t.y=e.y},t.len=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)},t.lenSquare=function(t){return t.x*t.x+t.y*t.y},t.dot=function(t,e){return t.x*e.x+t.y*e.y},t.add=function(t,e,n){t.x=e.x+n.x,t.y=e.y+n.y},t.sub=function(t,e,n){t.x=e.x-n.x,t.y=e.y-n.y},t.scale=function(t,e,n){t.x=e.x*n,t.y=e.y*n},t.scaleAndAdd=function(t,e,n,i){t.x=e.x+n.x*i,t.y=e.y+n.y*i},t.lerp=function(t,e,n,i){var r=1-i;t.x=r*e.x+i*n.x,t.y=r*e.y+i*n.y},t}(),_n=Math.min,xn=Math.max,bn=new mn,wn=new mn,Sn=new mn,Mn=new mn,Tn=new mn,Cn=new mn,In=function(){function t(t,e,n,i){n<0&&isFinite(n)&&(t+=n,n=-n),i<0&&isFinite(i)&&(e+=i,i=-i),this.x=t,this.y=e,this.width=n,this.height=i}return t.prototype.union=function(t){var e=_n(t.x,this.x),n=_n(t.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=xn(t.x+t.width,this.x+this.width)-e:this.width=t.width,isFinite(this.y)&&isFinite(this.height)?this.height=xn(t.y+t.height,this.y+this.height)-n:this.height=t.height,this.x=e,this.y=n},t.prototype.applyTransform=function(e){t.applyTransform(this,this,e)},t.prototype.calculateTransform=function(t){var e=this,n=t.width/e.width,i=t.height/e.height,r=[1,0,0,1,0,0];return de(r,r,[-e.x,-e.y]),ge(r,r,[n,i]),de(r,r,[t.x,t.y]),r},t.prototype.intersect=function(e,n){if(!e)return!1;e instanceof t||(e=t.create(e));var i=this,r=i.x,o=i.x+i.width,a=i.y,s=i.y+i.height,l=e.x,u=e.x+e.width,h=e.y,c=e.y+e.height,p=!(o<l||u<r||s<h||c<a);if(n){var d=1/0,f=0,g=Math.abs(o-l),y=Math.abs(u-r),v=Math.abs(s-h),m=Math.abs(c-a),_=Math.min(g,y),x=Math.min(v,m);o<l||u<r?_>f&&(f=_,g<y?mn.set(Cn,-g,0):mn.set(Cn,y,0)):_<d&&(d=_,g<y?mn.set(Tn,g,0):mn.set(Tn,-y,0)),s<h||c<a?x>f&&(f=x,v<m?mn.set(Cn,0,-v):mn.set(Cn,0,m)):_<d&&(d=_,v<m?mn.set(Tn,0,v):mn.set(Tn,0,-m))}return n&&mn.copy(n,p?Tn:Cn),p},t.prototype.contain=function(t,e){var n=this;return t>=n.x&&t<=n.x+n.width&&e>=n.y&&e<=n.y+n.height},t.prototype.clone=function(){return new t(this.x,this.y,this.width,this.height)},t.prototype.copy=function(e){t.copy(this,e)},t.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},t.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},t.prototype.isZero=function(){return 0===this.width||0===this.height},t.create=function(e){return new t(e.x,e.y,e.width,e.height)},t.copy=function(t,e){t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height},t.applyTransform=function(e,n,i){if(i){if(i[1]<1e-5&&i[1]>-1e-5&&i[2]<1e-5&&i[2]>-1e-5){var r=i[0],o=i[3],a=i[4],s=i[5];return e.x=n.x*r+a,e.y=n.y*o+s,e.width=n.width*r,e.height=n.height*o,e.width<0&&(e.x+=e.width,e.width=-e.width),void(e.height<0&&(e.y+=e.height,e.height=-e.height))}bn.x=Sn.x=n.x,bn.y=Mn.y=n.y,wn.x=Mn.x=n.x+n.width,wn.y=Sn.y=n.y+n.height,bn.transform(i),Mn.transform(i),wn.transform(i),Sn.transform(i),e.x=_n(bn.x,wn.x,Sn.x,Mn.x),e.y=_n(bn.y,wn.y,Sn.y,Mn.y);var l=xn(bn.x,wn.x,Sn.x,Mn.x),u=xn(bn.y,wn.y,Sn.y,Mn.y);e.width=l-e.x,e.height=u-e.y}else e!==n&&t.copy(e,n)},t}(),An={},Dn="12px sans-serif";var kn={measureText:function(t,e){return dn||(dn=I().getContext("2d")),fn!==e&&(fn=dn.font=e||Dn),dn.measureText(t)}};function Ln(t,e){var n=An[e=e||Dn];n||(n=An[e]=new ke(500));var i=n.get(t);return null==i&&(i=kn.measureText(t,e).width,n.put(t,i)),i}function Pn(t,e,n,i){var r=Ln(t,e),o=En(e),a=Rn(0,r,n),s=Nn(0,o,i);return new In(a,s,r,o)}function On(t,e,n,i){var r=((t||"")+"").split("\n");if(1===r.length)return Pn(r[0],e,n,i);for(var o=new In(0,0,0,0),a=0;a<r.length;a++){var s=Pn(r[a],e,n,i);0===a?o.copy(s):o.union(s)}return o}function Rn(t,e,n){return"right"===n?t-=e:"center"===n&&(t-=e/2),t}function Nn(t,e,n){return"middle"===n?t-=e/2:"bottom"===n&&(t-=e),t}function En(t){return Ln("国",t)}function Bn(t,e){return"string"==typeof t?t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t):t}function zn(t,e,n){var i=e.position||"inside",r=null!=e.distance?e.distance:5,o=n.height,a=n.width,s=o/2,l=n.x,u=n.y,h="left",c="top";if(i instanceof Array)l+=Bn(i[0],n.width),u+=Bn(i[1],n.height),h=null,c=null;else switch(i){case"left":l-=r,u+=s,h="right",c="middle";break;case"right":l+=r+a,u+=s,c="middle";break;case"top":l+=a/2,u-=r,h="center",c="bottom";break;case"bottom":l+=a/2,u+=o+r,h="center";break;case"inside":l+=a/2,u+=s,h="center",c="middle";break;case"insideLeft":l+=r,u+=s,c="middle";break;case"insideRight":l+=a-r,u+=s,h="right",c="middle";break;case"insideTop":l+=a/2,u+=r,h="center";break;case"insideBottom":l+=a/2,u+=o-r,h="center",c="bottom";break;case"insideTopLeft":l+=r,u+=r;break;case"insideTopRight":l+=a-r,u+=r,h="right";break;case"insideBottomLeft":l+=r,u+=o-r,c="bottom";break;case"insideBottomRight":l+=a-r,u+=o-r,h="right",c="bottom"}return(t=t||{}).x=l,t.y=u,t.align=h,t.verticalAlign=c,t}var Vn=1;"undefined"!=typeof window&&(Vn=Math.max(window.devicePixelRatio||window.screen&&window.screen.deviceXDPI/window.screen.logicalXDPI||1,1));var Fn=Vn,Hn="#333",Gn="#ccc",Wn="__zr_normal__",Un=["x","y","scaleX","scaleY","originX","originY","rotation","ignore"],Yn={x:!0,y:!0,scaleX:!0,scaleY:!0,originX:!0,originY:!0,rotation:!0,ignore:!1},Xn={},Zn=new In(0,0,0,0),jn=function(){function t(t){this.id=x(),this.animators=[],this.currentStates=[],this.states={},this._init(t)}return t.prototype._init=function(t){this.attr(t)},t.prototype.drift=function(t,e,n){switch(this.draggable){case"horizontal":e=0;break;case"vertical":t=0}var i=this.transform;i||(i=this.transform=[1,0,0,1,0,0]),i[4]+=t,i[5]+=e,this.decomposeTransform(),this.markRedraw()},t.prototype.beforeUpdate=function(){},t.prototype.afterUpdate=function(){},t.prototype.update=function(){this.updateTransform(),this.__dirty&&this.updateInnerText()},t.prototype.updateInnerText=function(t){var e=this._textContent;if(e&&(!e.ignore||t)){this.textConfig||(this.textConfig={});var n=this.textConfig,i=n.local,r=e.attachedTransform,o=void 0,a=void 0,s=!1;r.parent=i?this:null;var l=!1;if(r.x=e.x,r.y=e.y,r.originX=e.originX,r.originY=e.originY,r.rotation=e.rotation,r.scaleX=e.scaleX,r.scaleY=e.scaleY,null!=n.position){var u=Zn;n.layoutRect?u.copy(n.layoutRect):u.copy(this.getBoundingRect()),i||u.applyTransform(this.transform),this.calculateTextPosition?this.calculateTextPosition(Xn,n,u):zn(Xn,n,u),r.x=Xn.x,r.y=Xn.y,o=Xn.align,a=Xn.verticalAlign;var h=n.origin;if(h&&null!=n.rotation){var c=void 0,p=void 0;"center"===h?(c=.5*u.width,p=.5*u.height):(c=Bn(h[0],u.width),p=Bn(h[1],u.height)),l=!0,r.originX=-r.x+c+(i?0:u.x),r.originY=-r.y+p+(i?0:u.y)}}null!=n.rotation&&(r.rotation=n.rotation);var d=n.offset;d&&(r.x+=d[0],r.y+=d[1],l||(r.originX=-d[0],r.originY=-d[1]));var f=null==n.inside?"string"==typeof n.position&&n.position.indexOf("inside")>=0:n.inside,g=this._innerTextDefaultStyle||(this._innerTextDefaultStyle={}),y=void 0,v=void 0,m=void 0;f&&this.canBeInsideText()?(y=n.insideFill,v=n.insideStroke,null!=y&&"auto"!==y||(y=this.getInsideTextFill()),null!=v&&"auto"!==v||(v=this.getInsideTextStroke(y),m=!0)):(y=n.outsideFill,v=n.outsideStroke,null!=y&&"auto"!==y||(y=this.getOutsideFill()),null!=v&&"auto"!==v||(v=this.getOutsideStroke(y),m=!0)),(y=y||"#000")===g.fill&&v===g.stroke&&m===g.autoStroke&&o===g.align&&a===g.verticalAlign||(s=!0,g.fill=y,g.stroke=v,g.autoStroke=m,g.align=o,g.verticalAlign=a,e.setDefaultTextStyle(g)),s&&e.dirtyStyle(),e.markRedraw()}},t.prototype.canBeInsideText=function(){return!0},t.prototype.getInsideTextFill=function(){return"#fff"},t.prototype.getInsideTextStroke=function(t){return"#000"},t.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?Gn:Hn},t.prototype.getOutsideStroke=function(t){var e=this.__zr&&this.__zr.getBackgroundColor(),n="string"==typeof e&&We(e);n||(n=[255,255,255,1]);for(var i=n[3],r=this.__zr.isDarkMode(),o=0;o<3;o++)n[o]=n[o]*i+(r?0:255)*(1-i);return n[3]=1,Je(n,"rgba")},t.prototype.traverse=function(t,e){},t.prototype.attrKV=function(t,e){"textConfig"===t?this.setTextConfig(e):"textContent"===t?this.setTextContent(e):"clipPath"===t?this.setClipPath(e):"extra"===t?(this.extra=this.extra||{},T(this.extra,e)):this[t]=e},t.prototype.hide=function(){this.ignore=!0,this.markRedraw()},t.prototype.show=function(){this.ignore=!1,this.markRedraw()},t.prototype.attr=function(t,e){if("string"==typeof t)this.attrKV(t,e);else if(U(t))for(var n=E(t),i=0;i<n.length;i++){var r=n[i];this.attrKV(r,t[r])}return this.markRedraw(),this},t.prototype.saveCurrentToNormalState=function(t){this._innerSaveToNormal(t);for(var e=this._normalState,n=0;n<this.animators.length;n++){var i=this.animators[n],r=i.__fromStateTransition;if(!r||r===Wn){var o=i.targetName,a=o?e[o]:e;i.saveFinalToTarget(a)}}},t.prototype._innerSaveToNormal=function(t){var e=this._normalState;e||(e=this._normalState={}),t.textConfig&&!e.textConfig&&(e.textConfig=this.textConfig),this._savePrimaryToNormal(t,e,Un)},t.prototype._savePrimaryToNormal=function(t,e,n){for(var i=0;i<n.length;i++){var r=n[i];null==t[r]||r in e||(e[r]=this[r])}},t.prototype.hasState=function(){return this.currentStates.length>0},t.prototype.getState=function(t){return this.states[t]},t.prototype.ensureState=function(t){var e=this.states;return e[t]||(e[t]={}),e[t]},t.prototype.clearStates=function(t){this.useState(Wn,!1,t)},t.prototype.useState=function(e,n,i){var r=e===Wn;if(this.hasState()||!r){var o=this.currentStates,a=this.stateTransition;if(!(A(o,e)>=0)||!n&&1!==o.length){var s;if(this.stateProxy&&!r&&(s=this.stateProxy(e)),s||(s=this.states&&this.states[e]),s||r){r||this.saveCurrentToNormalState(s);var l=!(!s||!s.hoverLayer);return l&&this._toggleHoverLayerFlag(!0),this._applyStateObj(e,s,this._normalState,n,!i&&!this.__inHover&&a&&a.duration>0,a),this._textContent&&this._textContent.useState(e,n),this._textGuide&&this._textGuide.useState(e,n),r?(this.currentStates=[],this._normalState={}):n?this.currentStates.push(e):this.currentStates=[e],this._updateAnimationTargets(),this.markRedraw(),!l&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~t.REDARAW_BIT),s}b("State "+e+" not exists.")}}},t.prototype.useStates=function(e,n){if(e.length){var i=[],r=this.currentStates,o=e.length,a=o===r.length;if(a)for(var s=0;s<o;s++)if(e[s]!==r[s]){a=!1;break}if(a)return;for(s=0;s<o;s++){var l=e[s],u=void 0;this.stateProxy&&(u=this.stateProxy(l,e)),u||(u=this.states[l]),u&&i.push(u)}var h=!(!i[o-1]||!i[o-1].hoverLayer);h&&this._toggleHoverLayerFlag(!0);var c=this._mergeStates(i),p=this.stateTransition;this.saveCurrentToNormalState(c),this._applyStateObj(e.join(","),c,this._normalState,!1,!n&&!this.__inHover&&p&&p.duration>0,p),this._textContent&&this._textContent.useStates(e),this._textGuide&&this._textGuide.useStates(e),this._updateAnimationTargets(),this.currentStates=e.slice(),this.markRedraw(),!h&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~t.REDARAW_BIT)}else this.clearStates()},t.prototype._updateAnimationTargets=function(){for(var t=0;t<this.animators.length;t++){var e=this.animators[t];e.targetName&&e.changeTarget(this[e.targetName])}},t.prototype.removeState=function(t){var e=A(this.currentStates,t);if(e>=0){var n=this.currentStates.slice();n.splice(e,1),this.useStates(n)}},t.prototype.replaceState=function(t,e,n){var i=this.currentStates.slice(),r=A(i,t),o=A(i,e)>=0;r>=0?o?i.splice(r,1):i[r]=e:n&&!o&&i.push(e),this.useStates(i)},t.prototype.toggleState=function(t,e){e?this.useState(t,!0):this.removeState(t)},t.prototype._mergeStates=function(t){for(var e,n={},i=0;i<t.length;i++){var r=t[i];T(n,r),r.textConfig&&T(e=e||{},r.textConfig)}return e&&(n.textConfig=e),n},t.prototype._applyStateObj=function(t,e,n,i,r,o){var a=!(e&&i);e&&e.textConfig?(this.textConfig=T({},i?this.textConfig:n.textConfig),T(this.textConfig,e.textConfig)):a&&n.textConfig&&(this.textConfig=n.textConfig);for(var s={},l=!1,u=0;u<Un.length;u++){var h=Un[u],c=r&&Yn[h];e&&null!=e[h]?c?(l=!0,s[h]=e[h]):this[h]=e[h]:a&&null!=n[h]&&(c?(l=!0,s[h]=n[h]):this[h]=n[h])}if(!r)for(u=0;u<this.animators.length;u++){var p=this.animators[u],d=p.targetName;p.__changeFinalValue(d?(e||n)[d]:e||n)}l&&this._transitionState(t,s,o)},t.prototype._attachComponent=function(t){if(t.__zr&&!t.__hostTarget)throw new Error("Text element has been added to zrender.");if(t===this)throw new Error("Recursive component attachment.");var e=this.__zr;e&&t.addSelfToZr(e),t.__zr=e,t.__hostTarget=this},t.prototype._detachComponent=function(t){t.__zr&&t.removeSelfFromZr(t.__zr),t.__zr=null,t.__hostTarget=null},t.prototype.getClipPath=function(){return this._clipPath},t.prototype.setClipPath=function(t){this._clipPath&&this._clipPath!==t&&this.removeClipPath(),this._attachComponent(t),this._clipPath=t,this.markRedraw()},t.prototype.removeClipPath=function(){var t=this._clipPath;t&&(this._detachComponent(t),this._clipPath=null,this.markRedraw())},t.prototype.getTextContent=function(){return this._textContent},t.prototype.setTextContent=function(t){var e=this._textContent;if(e!==t){if(e&&e!==t&&this.removeTextContent(),t.__zr&&!t.__hostTarget)throw new Error("Text element has been added to zrender.");t.attachedTransform=new Te,this._attachComponent(t),this._textContent=t,this.markRedraw()}},t.prototype.setTextConfig=function(t){this.textConfig||(this.textConfig={}),T(this.textConfig,t),this.markRedraw()},t.prototype.removeTextContent=function(){var t=this._textContent;t&&(t.attachedTransform=null,this._detachComponent(t),this._textContent=null,this._innerTextDefaultStyle=null,this.markRedraw())},t.prototype.getTextGuideLine=function(){return this._textGuide},t.prototype.setTextGuideLine=function(t){this._textGuide&&this._textGuide!==t&&this.removeTextGuideLine(),this._attachComponent(t),this._textGuide=t,this.markRedraw()},t.prototype.removeTextGuideLine=function(){var t=this._textGuide;t&&(this._detachComponent(t),this._textGuide=null,this.markRedraw())},t.prototype.markRedraw=function(){this.__dirty|=t.REDARAW_BIT;var e=this.__zr;e&&(this.__inHover?e.refreshHover():e.refresh()),this.__hostTarget&&this.__hostTarget.markRedraw()},t.prototype.dirty=function(){this.markRedraw()},t.prototype._toggleHoverLayerFlag=function(t){this.__inHover=t;var e=this._textContent,n=this._textGuide;e&&(e.__inHover=t),n&&(n.__inHover=t)},t.prototype.addSelfToZr=function(t){this.__zr=t;var e=this.animators;if(e)for(var n=0;n<e.length;n++)t.animation.addAnimator(e[n]);this._clipPath&&this._clipPath.addSelfToZr(t),this._textContent&&this._textContent.addSelfToZr(t),this._textGuide&&this._textGuide.addSelfToZr(t)},t.prototype.removeSelfFromZr=function(t){this.__zr=null;var e=this.animators;if(e)for(var n=0;n<e.length;n++)t.animation.removeAnimator(e[n]);this._clipPath&&this._clipPath.removeSelfFromZr(t),this._textContent&&this._textContent.removeSelfFromZr(t),this._textGuide&&this._textGuide.removeSelfFromZr(t)},t.prototype.animate=function(t,e){var n=t?this[t]:this;if(n){var i=new vn(n,e);return this.addAnimator(i,t),i}b('Property "'+t+'" is not existed in element '+this.id)},t.prototype.addAnimator=function(t,e){var n=this.__zr,i=this;t.during((function(){i.updateDuringAnimation(e)})).done((function(){var e=i.animators,n=A(e,t);n>=0&&e.splice(n,1)})),this.animators.push(t),n&&n.animation.addAnimator(t),n&&n.wakeUp()},t.prototype.updateDuringAnimation=function(t){this.markRedraw()},t.prototype.stopAnimation=function(t,e){for(var n=this.animators,i=n.length,r=[],o=0;o<i;o++){var a=n[o];t&&t!==a.scope?r.push(a):a.stop(e)}return this.animators=r,this},t.prototype.animateTo=function(t,e,n){qn(this,t,e,n)},t.prototype.animateFrom=function(t,e,n){qn(this,t,e,n,!0)},t.prototype._transitionState=function(t,e,n,i){for(var r=qn(this,e,n,i),o=0;o<r.length;o++)r[o].__fromStateTransition=t},t.prototype.getBoundingRect=function(){return null},t.prototype.getPaintRect=function(){return null},t.REDARAW_BIT=1,t.initDefaultProps=function(){var e=t.prototype;e.type="element",e.name="",e.ignore=!1,e.silent=!1,e.isGroup=!1,e.draggable=!1,e.dragging=!1,e.ignoreClip=!1,e.__inHover=!1,e.__dirty=t.REDARAW_BIT;var n={};function i(t,e,i){n[t+e+i]||(console.warn("DEPRECATED: '"+t+"' has been deprecated. use '"+e+"', '"+i+"' instead"),n[t+e+i]=!0)}function r(t,n,r,o){function a(t,e){Object.defineProperty(e,0,{get:function(){return t[r]},set:function(e){t[r]=e}}),Object.defineProperty(e,1,{get:function(){return t[o]},set:function(e){t[o]=e}})}Object.defineProperty(e,t,{get:function(){(i(t,r,o),this[n])||a(this,this[n]=[]);return this[n]},set:function(e){i(t,r,o),this[r]=e[0],this[o]=e[1],this[n]=e,a(this,e)}})}Object.defineProperty&&(!a.browser.ie||a.browser.version>8)&&(r("position","_legacyPos","x","y"),r("scale","_legacyScale","scaleX","scaleY"),r("origin","_legacyOrigin","originX","originY"))}(),t}();function qn(t,e,n,i,r){var o=[];Jn(t,"",t,e,n=n||{},i,o,r);var a=o.length,s=!1,l=n.done,u=n.aborted,h=function(){s=!0,--a<=0&&(s?l&&l():u&&u())},c=function(){--a<=0&&(s?l&&l():u&&u())};a||l&&l(),o.length>0&&n.during&&o[0].during((function(t,e){n.during(e)}));for(var p=0;p<o.length;p++){var d=o[p];h&&d.done(h),c&&d.aborted(c),d.start(n.easing,n.force)}return o}function Kn(t,e,n){for(var i=0;i<n;i++)t[i]=e[i]}function $n(t,e,n){if(L(e[n]))if(L(t[n])||(t[n]=[]),X(e[n])){var i=e[n].length;t[n].length!==i&&(t[n]=new e[n].constructor(i),Kn(t[n],e[n],i))}else{var r=e[n],o=t[n],a=r.length;if(L(r[0]))for(var s=r[0].length,l=0;l<a;l++)o[l]?Kn(o[l],r[l],s):o[l]=Array.prototype.slice.call(r[l]);else Kn(o,r,a);o.length=r.length}else t[n]=e[n]}function Jn(t,e,n,i,r,o,a,s){for(var l=[],u=[],h=E(i),c=r.duration,p=r.delay,d=r.additive,f=r.setToFinal,g=!U(o),y=0;y<h.length;y++){if(null!=n[T=h[y]]&&null!=i[T]&&(g||o[T]))if(U(i[T])&&!L(i[T])){if(e){s||(n[T]=i[T],t.updateDuringAnimation(e));continue}Jn(t,T,n[T],i[T],r,o&&o[T],a,s)}else l.push(T),u.push(T);else s||(n[T]=i[T],t.updateDuringAnimation(e),u.push(T))}var v=l.length;if(v>0||r.force&&!a.length){for(var m=t.animators,_=[],x=0;x<m.length;x++)m[x].targetName===e&&_.push(m[x]);if(!d&&_.length)for(x=0;x<_.length;x++){if(_[x].stopTracks(u)){var b=A(m,_[x]);m.splice(b,1)}}var w=void 0,S=void 0,M=void 0;if(s){S={},f&&(w={});for(x=0;x<v;x++){S[T=l[x]]=n[T],f?w[T]=i[T]:n[T]=i[T]}}else if(f){M={};for(x=0;x<v;x++){var T;M[T=l[x]]=cn(n[T]),$n(n,i,T)}}var C=new vn(n,!1,d?_:null);C.targetName=e,r.scope&&(C.scope=r.scope),f&&w&&C.whenWithKeys(0,w,l),M&&C.whenWithKeys(0,M,l),C.whenWithKeys(null==c?500:c,s?S:i,l).delay(p||0),t.addAnimator(C,e),a.push(C)}}k(jn,Nt),k(jn,Te);function Qn(t,e,n,i){var r=e+1;if(r===n)return 1;if(i(t[r++],t[e])<0){for(;r<n&&i(t[r],t[r-1])<0;)r++;!function(t,e,n){n--;for(;e<n;){var i=t[e];t[e++]=t[n],t[n--]=i}}(t,e,r)}else for(;r<n&&i(t[r],t[r-1])>=0;)r++;return r-e}function ti(t,e,n,i,r){for(i===e&&i++;i<n;i++){for(var o,a=t[i],s=e,l=i;s<l;)r(a,t[o=s+l>>>1])<0?l=o:s=o+1;var u=i-s;switch(u){case 3:t[s+3]=t[s+2];case 2:t[s+2]=t[s+1];case 1:t[s+1]=t[s];break;default:for(;u>0;)t[s+u]=t[s+u-1],u--}t[s]=a}}function ei(t,e,n,i,r,o){var a=0,s=0,l=1;if(o(t,e[n+r])>0){for(s=i-r;l<s&&o(t,e[n+r+l])>0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),a+=r,l+=r}else{for(s=r+1;l<s&&o(t,e[n+r-l])<=0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s);var u=a;a=r-l,l=r-u}for(a++;a<l;){var h=a+(l-a>>>1);o(t,e[n+h])>0?a=h+1:l=h}return l}function ni(t,e,n,i,r,o){var a=0,s=0,l=1;if(o(t,e[n+r])<0){for(s=r+1;l<s&&o(t,e[n+r-l])<0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s);var u=a;a=r-l,l=r-u}else{for(s=i-r;l<s&&o(t,e[n+r+l])>=0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),a+=r,l+=r}for(a++;a<l;){var h=a+(l-a>>>1);o(t,e[n+h])<0?l=h:a=h+1}return l}function ii(t,e){var n,i,r=7,o=0;t.length;var a=[];function s(s){var l=n[s],u=i[s],h=n[s+1],c=i[s+1];i[s]=u+c,s===o-3&&(n[s+1]=n[s+2],i[s+1]=i[s+2]),o--;var p=ni(t[h],t,l,u,0,e);l+=p,0!==(u-=p)&&0!==(c=ei(t[l+u-1],t,h,c,c-1,e))&&(u<=c?function(n,i,o,s){var l=0;for(l=0;l<i;l++)a[l]=t[n+l];var u=0,h=o,c=n;if(t[c++]=t[h++],0==--s){for(l=0;l<i;l++)t[c+l]=a[u+l];return}if(1===i){for(l=0;l<s;l++)t[c+l]=t[h+l];return void(t[c+s]=a[u])}var p,d,f,g=r;for(;;){p=0,d=0,f=!1;do{if(e(t[h],a[u])<0){if(t[c++]=t[h++],d++,p=0,0==--s){f=!0;break}}else if(t[c++]=a[u++],p++,d=0,1==--i){f=!0;break}}while((p|d)<g);if(f)break;do{if(0!==(p=ni(t[h],a,u,i,0,e))){for(l=0;l<p;l++)t[c+l]=a[u+l];if(c+=p,u+=p,(i-=p)<=1){f=!0;break}}if(t[c++]=t[h++],0==--s){f=!0;break}if(0!==(d=ei(a[u],t,h,s,0,e))){for(l=0;l<d;l++)t[c+l]=t[h+l];if(c+=d,h+=d,0===(s-=d)){f=!0;break}}if(t[c++]=a[u++],1==--i){f=!0;break}g--}while(p>=7||d>=7);if(f)break;g<0&&(g=0),g+=2}if((r=g)<1&&(r=1),1===i){for(l=0;l<s;l++)t[c+l]=t[h+l];t[c+s]=a[u]}else{if(0===i)throw new Error;for(l=0;l<i;l++)t[c+l]=a[u+l]}}(l,u,h,c):function(n,i,o,s){var l=0;for(l=0;l<s;l++)a[l]=t[o+l];var u=n+i-1,h=s-1,c=o+s-1,p=0,d=0;if(t[c--]=t[u--],0==--i){for(p=c-(s-1),l=0;l<s;l++)t[p+l]=a[l];return}if(1===s){for(d=(c-=i)+1,p=(u-=i)+1,l=i-1;l>=0;l--)t[d+l]=t[p+l];return void(t[c]=a[h])}var f=r;for(;;){var g=0,y=0,v=!1;do{if(e(a[h],t[u])<0){if(t[c--]=t[u--],g++,y=0,0==--i){v=!0;break}}else if(t[c--]=a[h--],y++,g=0,1==--s){v=!0;break}}while((g|y)<f);if(v)break;do{if(0!==(g=i-ni(a[h],t,n,i,i-1,e))){for(i-=g,d=(c-=g)+1,p=(u-=g)+1,l=g-1;l>=0;l--)t[d+l]=t[p+l];if(0===i){v=!0;break}}if(t[c--]=a[h--],1==--s){v=!0;break}if(0!==(y=s-ei(t[u],a,0,s,s-1,e))){for(s-=y,d=(c-=y)+1,p=(h-=y)+1,l=0;l<y;l++)t[d+l]=a[p+l];if(s<=1){v=!0;break}}if(t[c--]=t[u--],0==--i){v=!0;break}f--}while(g>=7||y>=7);if(v)break;f<0&&(f=0),f+=2}(r=f)<1&&(r=1);if(1===s){for(d=(c-=i)+1,p=(u-=i)+1,l=i-1;l>=0;l--)t[d+l]=t[p+l];t[c]=a[h]}else{if(0===s)throw new Error;for(p=c-(s-1),l=0;l<s;l++)t[p+l]=a[l]}}(l,u,h,c))}return n=[],i=[],{mergeRuns:function(){for(;o>1;){var t=o-2;if(t>=1&&i[t-1]<=i[t]+i[t+1]||t>=2&&i[t-2]<=i[t]+i[t-1])i[t-1]<i[t+1]&&t--;else if(i[t]>i[t+1])break;s(t)}},forceMergeRuns:function(){for(;o>1;){var t=o-2;t>0&&i[t-1]<i[t+1]&&t--,s(t)}},pushRun:function(t,e){n[o]=t,i[o]=e,o+=1}}}function ri(t,e,n,i){n||(n=0),i||(i=t.length);var r=i-n;if(!(r<2)){var o=0;if(r<32)ti(t,n,i,n+(o=Qn(t,n,i,e)),e);else{var a=ii(t,e),s=function(t){for(var e=0;t>=32;)e|=1&t,t>>=1;return t+e}(r);do{if((o=Qn(t,n,i,e))<s){var l=r;l>s&&(l=s),ti(t,n,n+l,n+o,e),o=l}a.pushRun(n,o),a.mergeRuns(),r-=o,n+=o}while(0!==r);a.forceMergeRuns()}}}var oi=!1;function ai(){oi||(oi=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function si(t,e){return t.zlevel===e.zlevel?t.z===e.z?t.z2-e.z2:t.z-e.z:t.zlevel-e.zlevel}var li,ui,hi=function(){function t(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=si}return t.prototype.traverse=function(t,e){for(var n=0;n<this._roots.length;n++)this._roots[n].traverse(t,e)},t.prototype.getDisplayList=function(t,e){e=e||!1;var n=this._displayList;return!t&&n.length||this.updateDisplayList(e),n},t.prototype.updateDisplayList=function(t){this._displayListLen=0;for(var e=this._roots,n=this._displayList,i=0,r=e.length;i<r;i++)this._updateAndAddDisplayable(e[i],null,t);n.length=this._displayListLen,a.canvasSupported&&ri(n,si)},t.prototype._updateAndAddDisplayable=function(t,e,n){if(!t.ignore||n){t.beforeUpdate(),t.update(),t.afterUpdate();var i=t.getClipPath();if(t.ignoreClip)e=null;else if(i){e=e?e.slice():[];for(var r=i,o=t;r;)r.parent=o,r.updateTransform(),e.push(r),o=r,r=r.getClipPath()}if(t.childrenRef){for(var a=t.childrenRef(),s=0;s<a.length;s++){var l=a[s];t.__dirty&&(l.__dirty|=jn.REDARAW_BIT),this._updateAndAddDisplayable(l,e,n)}t.__dirty=0}else{var u=t;e&&e.length?u.__clipPaths=e:u.__clipPaths&&u.__clipPaths.length>0&&(u.__clipPaths=[]),isNaN(u.z)&&(ai(),u.z=0),isNaN(u.z2)&&(ai(),u.z2=0),isNaN(u.zlevel)&&(ai(),u.zlevel=0),this._displayList[this._displayListLen++]=u}var h=t.getDecalElement&&t.getDecalElement();h&&this._updateAndAddDisplayable(h,e,n);var c=t.getTextGuideLine();c&&this._updateAndAddDisplayable(c,e,n);var p=t.getTextContent();p&&this._updateAndAddDisplayable(p,e,n)}},t.prototype.addRoot=function(t){t.__zr&&t.__zr.storage===this||this._roots.push(t)},t.prototype.delRoot=function(t){if(t instanceof Array)for(var e=0,n=t.length;e<n;e++)this.delRoot(t[e]);else{var i=A(this._roots,t);i>=0&&this._roots.splice(i,1)}},t.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},t.prototype.getRoots=function(){return this._roots},t.prototype.dispose=function(){this._displayList=null,this._roots=null},t}(),ci="undefined"!=typeof window&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(t){return setTimeout(t,16)},pi=function(t){function e(e){var n=t.call(this)||this;return n._running=!1,n._time=0,n._pausedTime=0,n._pauseStart=0,n._paused=!1,e=e||{},n.stage=e.stage||{},n.onframe=e.onframe||function(){},n}return n(e,t),e.prototype.addClip=function(t){t.animation&&this.removeClip(t),this._clipsHead?(this._clipsTail.next=t,t.prev=this._clipsTail,t.next=null,this._clipsTail=t):this._clipsHead=this._clipsTail=t,t.animation=this},e.prototype.addAnimator=function(t){t.animation=this;var e=t.getClip();e&&this.addClip(e)},e.prototype.removeClip=function(t){if(t.animation){var e=t.prev,n=t.next;e?e.next=n:this._clipsHead=n,n?n.prev=e:this._clipsTail=e,t.next=t.prev=t.animation=null}},e.prototype.removeAnimator=function(t){var e=t.getClip();e&&this.removeClip(e),t.animation=null},e.prototype.update=function(t){for(var e=(new Date).getTime()-this._pausedTime,n=e-this._time,i=this._clipsHead;i;){var r=i.next;i.step(e,n)?(i.ondestroy&&i.ondestroy(),this.removeClip(i),i=r):i=r}this._time=e,t||(this.onframe(n),this.trigger("frame",n),this.stage.update&&this.stage.update())},e.prototype._startLoop=function(){var t=this;this._running=!0,ci((function e(){t._running&&(ci(e),!t._paused&&t.update())}))},e.prototype.start=function(){this._running||(this._time=(new Date).getTime(),this._pausedTime=0,this._startLoop())},e.prototype.stop=function(){this._running=!1},e.prototype.pause=function(){this._paused||(this._pauseStart=(new Date).getTime(),this._paused=!0)},e.prototype.resume=function(){this._paused&&(this._pausedTime+=(new Date).getTime()-this._pauseStart,this._paused=!1)},e.prototype.clear=function(){for(var t=this._clipsHead;t;){var e=t.next;t.prev=t.next=t.animation=null,t=e}this._clipsHead=this._clipsTail=null},e.prototype.isFinished=function(){return null==this._clipsHead},e.prototype.animate=function(t,e){e=e||{},this.start();var n=new vn(t,e.loop);return this.addAnimator(n),n},e}(Nt),di=a.domSupported,fi=(ui={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},{mouse:li=["click","dblclick","mousewheel","wheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],touch:["touchstart","touchend","touchmove"],pointer:O(li,(function(t){var e=t.replace("mouse","pointer");return ui.hasOwnProperty(e)?e:t}))}),gi=["mousemove","mouseup"],yi=["pointermove","pointerup"],vi=!1;function mi(t){var e=t.pointerType;return"pen"===e||"touch"===e}function _i(t){t&&(t.zrByTouch=!0)}function xi(t,e){for(var n=e,i=!1;n&&9!==n.nodeType&&!(i=n.domBelongToZr||n!==e&&n===t.painterRoot);)n=n.parentNode;return i}var bi=function(t,e){this.stopPropagation=pt,this.stopImmediatePropagation=pt,this.preventDefault=pt,this.type=e.type,this.target=this.currentTarget=t.dom,this.pointerType=e.pointerType,this.clientX=e.clientX,this.clientY=e.clientY},wi={mousedown:function(t){t=jt(this.dom,t),this.__mayPointerCapture=[t.zrX,t.zrY],this.trigger("mousedown",t)},mousemove:function(t){t=jt(this.dom,t);var e=this.__mayPointerCapture;!e||t.zrX===e[0]&&t.zrY===e[1]||this.__togglePointerCapture(!0),this.trigger("mousemove",t)},mouseup:function(t){t=jt(this.dom,t),this.__togglePointerCapture(!1),this.trigger("mouseup",t)},mouseout:function(t){xi(this,(t=jt(this.dom,t)).toElement||t.relatedTarget)||(this.__pointerCapturing&&(t.zrEventControl="no_globalout"),this.trigger("mouseout",t))},wheel:function(t){vi=!0,t=jt(this.dom,t),this.trigger("mousewheel",t)},mousewheel:function(t){vi||(t=jt(this.dom,t),this.trigger("mousewheel",t))},touchstart:function(t){_i(t=jt(this.dom,t)),this.__lastTouchMoment=new Date,this.handler.processGesture(t,"start"),wi.mousemove.call(this,t),wi.mousedown.call(this,t)},touchmove:function(t){_i(t=jt(this.dom,t)),this.handler.processGesture(t,"change"),wi.mousemove.call(this,t)},touchend:function(t){_i(t=jt(this.dom,t)),this.handler.processGesture(t,"end"),wi.mouseup.call(this,t),+new Date-+this.__lastTouchMoment<300&&wi.click.call(this,t)},pointerdown:function(t){wi.mousedown.call(this,t)},pointermove:function(t){mi(t)||wi.mousemove.call(this,t)},pointerup:function(t){wi.mouseup.call(this,t)},pointerout:function(t){mi(t)||wi.mouseout.call(this,t)}};P(["click","dblclick","contextmenu"],(function(t){wi[t]=function(e){e=jt(this.dom,e),this.trigger(t,e)}}));var Si={pointermove:function(t){mi(t)||Si.mousemove.call(this,t)},pointerup:function(t){Si.mouseup.call(this,t)},mousemove:function(t){this.trigger("mousemove",t)},mouseup:function(t){var e=this.__pointerCapturing;this.__togglePointerCapture(!1),this.trigger("mouseup",t),e&&(t.zrEventControl="only_globalout",this.trigger("mouseout",t))}};function Mi(t,e){var n=e.domHandlers;a.pointerEventsSupported?P(fi.pointer,(function(i){Ci(e,i,(function(e){n[i].call(t,e)}))})):(a.touchEventsSupported&&P(fi.touch,(function(i){Ci(e,i,(function(r){n[i].call(t,r),function(t){t.touching=!0,null!=t.touchTimer&&(clearTimeout(t.touchTimer),t.touchTimer=null),t.touchTimer=setTimeout((function(){t.touching=!1,t.touchTimer=null}),700)}(e)}))})),P(fi.mouse,(function(i){Ci(e,i,(function(r){r=Zt(r),e.touching||n[i].call(t,r)}))})))}function Ti(t,e){function n(n){Ci(e,n,(function(i){i=Zt(i),xi(t,i.target)||(i=function(t,e){return jt(t.dom,new bi(t,e),!0)}(t,i),e.domHandlers[n].call(t,i))}),{capture:!0})}a.pointerEventsSupported?P(yi,n):a.touchEventsSupported||P(gi,n)}function Ci(t,e,n,i){t.mounted[e]=n,t.listenerOpts[e]=i,qt(t.domTarget,e,n,i)}function Ii(t){var e,n,i,r,o=t.mounted;for(var a in o)o.hasOwnProperty(a)&&(e=t.domTarget,n=a,i=o[a],r=t.listenerOpts[a],Gt?e.removeEventListener(n,i,r):e.detachEvent("on"+n,i));t.mounted={}}var Ai=function(t,e){this.mounted={},this.listenerOpts={},this.touching=!1,this.domTarget=t,this.domHandlers=e},Di=function(t){function e(e,n){var i=t.call(this)||this;return i.__pointerCapturing=!1,i.dom=e,i.painterRoot=n,i._localHandlerScope=new Ai(e,wi),di&&(i._globalHandlerScope=new Ai(document,Si)),Mi(i,i._localHandlerScope),i}return n(e,t),e.prototype.dispose=function(){Ii(this._localHandlerScope),di&&Ii(this._globalHandlerScope)},e.prototype.setCursor=function(t){this.dom.style&&(this.dom.style.cursor=t||"default")},e.prototype.__togglePointerCapture=function(t){if(this.__mayPointerCapture=null,di&&+this.__pointerCapturing^+t){this.__pointerCapturing=t;var e=this._globalHandlerScope;t?Ti(this,e):Ii(e)}},e}(Nt),ki=function(t){function e(e){var n=t.call(this)||this;return n.isGroup=!0,n._children=[],n.attr(e),n}return n(e,t),e.prototype.childrenRef=function(){return this._children},e.prototype.children=function(){return this._children.slice()},e.prototype.childAt=function(t){return this._children[t]},e.prototype.childOfName=function(t){for(var e=this._children,n=0;n<e.length;n++)if(e[n].name===t)return e[n]},e.prototype.childCount=function(){return this._children.length},e.prototype.add=function(t){if(t&&(t!==this&&t.parent!==this&&(this._children.push(t),this._doAdd(t)),t.__hostTarget))throw"This elemenet has been used as an attachment";return this},e.prototype.addBefore=function(t,e){if(t&&t!==this&&t.parent!==this&&e&&e.parent===this){var n=this._children,i=n.indexOf(e);i>=0&&(n.splice(i,0,t),this._doAdd(t))}return this},e.prototype.replaceAt=function(t,e){var n=this._children,i=n[e];if(t&&t!==this&&t.parent!==this&&t!==i){n[e]=t,i.parent=null;var r=this.__zr;r&&i.removeSelfFromZr(r),this._doAdd(t)}return this},e.prototype._doAdd=function(t){t.parent&&t.parent.remove(t),t.parent=this;var e=this.__zr;e&&e!==t.__zr&&t.addSelfToZr(e),e&&e.refresh()},e.prototype.remove=function(t){var e=this.__zr,n=this._children,i=A(n,t);return i<0||(n.splice(i,1),t.parent=null,e&&t.removeSelfFromZr(e),e&&e.refresh()),this},e.prototype.removeAll=function(){for(var t=this._children,e=this.__zr,n=0;n<t.length;n++){var i=t[n];e&&i.removeSelfFromZr(e),i.parent=null}return t.length=0,this},e.prototype.eachChild=function(t,e){for(var n=this._children,i=0;i<n.length;i++){var r=n[i];t.call(e,r,i)}return this},e.prototype.traverse=function(t,e){for(var n=0;n<this._children.length;n++){var i=this._children[n],r=t.call(e,i);i.isGroup&&!r&&i.traverse(t,e)}return this},e.prototype.addSelfToZr=function(e){t.prototype.addSelfToZr.call(this,e);for(var n=0;n<this._children.length;n++){this._children[n].addSelfToZr(e)}},e.prototype.removeSelfFromZr=function(e){t.prototype.removeSelfFromZr.call(this,e);for(var n=0;n<this._children.length;n++){this._children[n].removeSelfFromZr(e)}},e.prototype.getBoundingRect=function(t){for(var e=new In(0,0,0,0),n=t||this._children,i=[],r=null,o=0;o<n.length;o++){var a=n[o];if(!a.ignore&&!a.invisible){var s=a.getBoundingRect(),l=a.getLocalTransform(i);l?(In.applyTransform(e,s,l),(r=r||e.clone()).union(e)):(r=r||s.clone()).union(s)}}return r||e},e}(jn);ki.prototype.type="group";
 /*!
     * ZRender, a high performance 2d drawing library.
     *
@@ -56,4 +42,4 @@
     * LICENSE
     * https://github.com/ecomfe/zrender/blob/master/LICENSE.txt
     */
-var Oi=!a.canvasSupported,Ri={},Ni={};var Ei=function(){function t(t,e,n){var i=this;this._sleepAfterStill=10,this._stillFrameAccum=0,this._needsRefresh=!0,this._needsRefreshHover=!0,this._darkMode=!1,n=n||{},this.dom=e,this.id=t;var r=new pi,o=n.renderer||"canvas";if(Oi)throw new Error("IE8 support has been dropped since 5.0");if(Ri[o]||(o=E(Ri)[0]),!Ri[o])throw new Error("Renderer '"+o+"' is not imported. Please import it first.");n.useDirtyRect=null!=n.useDirtyRect&&n.useDirtyRect;var s=new Ri[o](e,r,n,t);this.storage=r,this.painter=s;var l=a.node||a.worker?null:new Li(s.getViewportRoot(),s.root);this.handler=new le(r,s,l,s.root),this.animation=new fi({stage:{update:function(){return i._flush(!0)}}}),this.animation.start()}return t.prototype.add=function(t){t&&(this.storage.addRoot(t),t.addSelfToZr(this),this.refresh())},t.prototype.remove=function(t){t&&(this.storage.delRoot(t),t.removeSelfFromZr(this),this.refresh())},t.prototype.configLayer=function(t,e){this.painter.configLayer&&this.painter.configLayer(t,e),this.refresh()},t.prototype.setBackgroundColor=function(t){this.painter.setBackgroundColor&&this.painter.setBackgroundColor(t),this.refresh(),this._backgroundColor=t,this._darkMode=function(t){if(!t)return!1;if("string"==typeof t)return en(t,1)<.4;if(t.colorStops){for(var e=t.colorStops,n=0,i=e.length,r=0;r<i;r++)n+=en(e[r].color,1);return(n/=i)<.4}return!1}(t)},t.prototype.getBackgroundColor=function(){return this._backgroundColor},t.prototype.setDarkMode=function(t){this._darkMode=t},t.prototype.isDarkMode=function(){return this._darkMode},t.prototype.refreshImmediately=function(t){t||this.animation.update(!0),this._needsRefresh=!1,this.painter.refresh(),this._needsRefresh=!1},t.prototype.refresh=function(){this._needsRefresh=!0,this.animation.start()},t.prototype.flush=function(){this._flush(!1)},t.prototype._flush=function(t){var e,n=(new Date).getTime();this._needsRefresh&&(e=!0,this.refreshImmediately(t)),this._needsRefreshHover&&(e=!0,this.refreshHoverImmediately());var i=(new Date).getTime();e?(this._stillFrameAccum=0,this.trigger("rendered",{elapsedTime:i-n})):this._sleepAfterStill>0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},t.prototype.setSleepAfterStill=function(t){this._sleepAfterStill=t},t.prototype.wakeUp=function(){this.animation.start(),this._stillFrameAccum=0},t.prototype.addHover=function(t){},t.prototype.removeHover=function(t){},t.prototype.clearHover=function(){},t.prototype.refreshHover=function(){this._needsRefreshHover=!0},t.prototype.refreshHoverImmediately=function(){this._needsRefreshHover=!1,this.painter.refreshHover&&"canvas"===this.painter.getType()&&this.painter.refreshHover()},t.prototype.resize=function(t){t=t||{},this.painter.resize(t.width,t.height),this.handler.resize()},t.prototype.clearAnimation=function(){this.animation.clear()},t.prototype.getWidth=function(){return this.painter.getWidth()},t.prototype.getHeight=function(){return this.painter.getHeight()},t.prototype.pathToImage=function(t,e){if(this.painter.pathToImage)return this.painter.pathToImage(t,e)},t.prototype.setCursorStyle=function(t){this.handler.setCursorStyle(t)},t.prototype.findHover=function(t,e){return this.handler.findHover(t,e)},t.prototype.on=function(t,e,n){return this.handler.on(t,e,n),this},t.prototype.off=function(t,e){this.handler.off(t,e)},t.prototype.trigger=function(t,e){this.handler.trigger(t,e)},t.prototype.clear=function(){for(var t=this.storage.getRoots(),e=0;e<t.length;e++)t[e]instanceof Pi&&t[e].removeSelfFromZr(this);this.storage.delAllRoots(),this.painter.clear()},t.prototype.dispose=function(){var t;this.animation.stop(),this.clear(),this.storage.dispose(),this.painter.dispose(),this.handler.dispose(),this.animation=this.storage=this.painter=this.handler=null,t=this.id,delete Ni[t]},t}();function Bi(t,e){var n=new Ei(x(),t,e);return Ni[n.id]=n,n}function zi(t,e){Ri[t]=e}var Vi=Object.freeze({__proto__:null,init:Bi,dispose:function(t){t.dispose()},disposeAll:function(){for(var t in Ni)Ni.hasOwnProperty(t)&&Ni[t].dispose();Ni={}},getInstance:function(t){return Ni[t]},registerPainter:zi,version:"5.0.1"}),Fi=1e-4;function Hi(t,e,n,i){var r=e[1]-e[0],o=n[1]-n[0];if(0===r)return 0===o?n[0]:(n[0]+n[1])/2;if(i)if(r>0){if(t<=e[0])return n[0];if(t>=e[1])return n[1]}else{if(t>=e[0])return n[0];if(t<=e[1])return n[1]}else{if(t===e[0])return n[0];if(t===e[1])return n[1]}return(t-e[0])/r*o+n[0]}function Gi(t,e){switch(t){case"center":case"middle":t="50%";break;case"left":case"top":t="0%";break;case"right":case"bottom":t="100%"}return"string"==typeof t?(n=t,n.replace(/^\s+|\s+$/g,"")).match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?NaN:+t;var n}function Wi(t,e,n){return null==e&&(e=10),e=Math.min(Math.max(0,e),20),t=(+t).toFixed(e),n?t:+t}function Ui(t){return t.sort((function(t,e){return t-e})),t}function Yi(t){if(t=+t,isNaN(t))return 0;for(var e=1,n=0;Math.round(t*e)/e!==t;)e*=10,n++;return n}function Xi(t){var e=t.toString(),n=e.indexOf("e");if(n>0){var i=+e.slice(n+1);return i<0?-i:0}var r=e.indexOf(".");return r<0?0:e.length-1-r}function Zi(t,e){var n=Math.log,i=Math.LN10,r=Math.floor(n(t[1]-t[0])/i),o=Math.round(n(Math.abs(e[1]-e[0]))/i),a=Math.min(Math.max(-r+o,0),20);return isFinite(a)?a:20}function ji(t,e,n){if(!t[e])return 0;var i=R(t,(function(t,e){return t+(isNaN(e)?0:e)}),0);if(0===i)return 0;for(var r=Math.pow(10,n),o=O(t,(function(t){return(isNaN(t)?0:t)/i*r*100})),a=100*r,s=O(o,(function(t){return Math.floor(t)})),l=R(s,(function(t,e){return t+e}),0),u=O(o,(function(t,e){return t-s[e]}));l<a;){for(var h=Number.NEGATIVE_INFINITY,c=null,p=0,d=u.length;p<d;++p)u[p]>h&&(h=u[p],c=p);++s[c],u[c]=0,++l}return s[e]/r}function qi(t){var e=2*Math.PI;return(t%e+e)%e}function Ki(t){return t>-1e-4&&t<Fi}var $i=/^(?:(\d{4})(?:[-\/](\d{1,2})(?:[-\/](\d{1,2})(?:[T ](\d{1,2})(?::(\d{1,2})(?::(\d{1,2})(?:[.,](\d+))?)?)?(Z|[\+\-]\d\d:?\d\d)?)?)?)?)?$/;function Ji(t){if(t instanceof Date)return t;if("string"==typeof t){var e=$i.exec(t);if(!e)return new Date(NaN);if(e[8]){var n=+e[4]||0;return"Z"!==e[8].toUpperCase()&&(n-=+e[8].slice(0,3)),new Date(Date.UTC(+e[1],+(e[2]||1)-1,+e[3]||1,n,+(e[5]||0),+e[6]||0,+e[7]||0))}return new Date(+e[1],+(e[2]||1)-1,+e[3]||1,+e[4]||0,+(e[5]||0),+e[6]||0,+e[7]||0)}return null==t?new Date(NaN):new Date(Math.round(t))}function Qi(t){return Math.pow(10,tr(t))}function tr(t){if(0===t)return 0;var e=Math.floor(Math.log(t)/Math.LN10);return t/Math.pow(10,e)>=10&&e++,e}function er(t,e){var n=tr(t),i=Math.pow(10,n),r=t/i;return t=(e?r<1.5?1:r<2.5?2:r<4?3:r<7?5:10:r<1?1:r<2?2:r<3?3:r<5?5:10)*i,n>=-20?+t.toFixed(n<0?-n:0):t}function nr(t){var e=parseFloat(t);return e==t&&(0!==e||"string"!=typeof t||t.indexOf("x")<=0)?e:NaN}function ir(t){return!isNaN(nr(t))}function rr(){return Math.round(9*Math.random())}function or(t,e){return 0===e?t:or(e,t%e)}function ar(t,e){return null==t?e:null==e?t:t*e/or(t,e)}"undefined"!=typeof console&&console.warn&&console.log;function sr(t){0}function lr(t){throw new Error(t)}var ur="series\0",hr="\0_ec_\0";function cr(t){return t instanceof Array?t:null==t?[]:[t]}function pr(t,e,n){if(t){t[e]=t[e]||{},t.emphasis=t.emphasis||{},t.emphasis[e]=t.emphasis[e]||{};for(var i=0,r=n.length;i<r;i++){var o=n[i];!t.emphasis[e].hasOwnProperty(o)&&t[e].hasOwnProperty(o)&&(t.emphasis[e][o]=t[e][o])}}}var dr=["fontStyle","fontWeight","fontSize","fontFamily","rich","tag","color","textBorderColor","textBorderWidth","width","height","lineHeight","align","verticalAlign","baseline","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","textShadowColor","textShadowBlur","textShadowOffsetX","textShadowOffsetY","backgroundColor","borderColor","borderWidth","borderRadius","padding"];function fr(t){return!U(t)||V(t)||t instanceof Date?t:t.value}function gr(t,e,n){var i="normalMerge"===n,r="replaceMerge"===n,o="replaceAll"===n;t=t||[],e=(e||[]).slice();var a=ut();P(e,(function(t,n){U(t)||(e[n]=null)}));var s,l,u=function(t,e,n){var i=[];if("replaceAll"===n)return i;for(var r=0;r<t.length;r++){var o=t[r];o&&null!=o.id&&e.set(o.id,r),i.push({existing:"replaceMerge"===n||xr(o)?null:o,newOption:null,keyInfo:null,brandNew:null})}return i}(t,a,n);return(i||r)&&function(t,e,n,i){P(i,(function(r,o){if(r&&null!=r.id){var a=vr(r.id),s=n.get(a);if(null!=s){var l=t[s];it(!l.newOption,'Duplicated option on id "'+a+'".'),l.newOption=r,l.existing=e[s],i[o]=null}}}))}(u,t,a,e),i&&function(t,e){P(e,(function(n,i){if(n&&null!=n.name)for(var r=0;r<t.length;r++){var o=t[r].existing;if(!t[r].newOption&&o&&(null==o.id||null==n.id)&&!xr(n)&&!xr(o)&&yr("name",o,n))return t[r].newOption=n,void(e[i]=null)}}))}(u,e),i||r?function(t,e,n){P(e,(function(e){if(e){for(var i,r=0;(i=t[r])&&(i.newOption||xr(i.existing)||i.existing&&null!=e.id&&!yr("id",e,i.existing));)r++;i?(i.newOption=e,i.brandNew=n):t.push({newOption:e,brandNew:n,existing:null,keyInfo:null}),r++}}))}(u,e,r):o&&function(t,e){P(e,(function(e){t.push({newOption:e,brandNew:!0,existing:null,keyInfo:null})}))}(u,e),s=u,l=ut(),P(s,(function(t){var e=t.existing;e&&l.set(e.id,t)})),P(s,(function(t){var e=t.newOption;it(!e||null==e.id||!l.get(e.id)||l.get(e.id)===t,"id duplicates: "+(e&&e.id)),e&&null!=e.id&&l.set(e.id,t),!t.keyInfo&&(t.keyInfo={})})),P(s,(function(t,e){var n=t.existing,i=t.newOption,r=t.keyInfo;if(U(i)){if(r.name=null!=i.name?vr(i.name):n?n.name:ur+e,n)r.id=vr(n.id);else if(null!=i.id)r.id=vr(i.id);else{var o=0;do{r.id="\0"+r.name+"\0"+o++}while(l.get(r.id))}l.set(r.id,t)}})),u}function yr(t,e,n){var i=mr(e[t],null),r=mr(n[t],null);return null!=i&&null!=r&&i===r}function vr(t){return mr(t,"")}function mr(t,e){if(null==t)return e;var n=typeof t;return"string"===n?t:"number"===n||G(t)?t+"":e}function _r(t){var e=t.name;return!(!e||!e.indexOf(ur))}function xr(t){return t&&null!=t.id&&0===vr(t.id).indexOf(hr)}function br(t,e){return null!=e.dataIndexInside?e.dataIndexInside:null!=e.dataIndex?V(e.dataIndex)?O(e.dataIndex,(function(e){return t.indexOfRawIndex(e)})):t.indexOfRawIndex(e.dataIndex):null!=e.name?V(e.name)?O(e.name,(function(e){return t.indexOfName(e)})):t.indexOfName(e.name):void 0}function wr(){var t="__ec_inner_"+Sr++;return function(e){return e[t]||(e[t]={})}}var Sr=rr();function Mr(t,e,n){var i;if(H(e)){var r={};r[e+"Index"]=0,i=r}else i=e;var o=ut(),a={},s=!1;P(i,(function(t,e){if("dataIndex"!==e&&"dataIndexInside"!==e){var i=e.match(/^(\w+)(Index|Id|Name)$/)||[],r=i[1],l=(i[2]||"").toLowerCase();if(r&&l&&!(n&&n.includeMainTypes&&A(n.includeMainTypes,r)<0))s=s||!!r,(o.get(r)||o.set(r,{}))[l]=t}else a[e]=t}));var l=n?n.defaultMainType:null;return!s&&l&&o.set(l,{}),o.each((function(e,i){var r=Ir(t,i,e,{useDefault:l===i,enableAll:!n||null==n.enableAll||n.enableAll,enableNone:!n||null==n.enableNone||n.enableNone});a[i+"Models"]=r.models,a[i+"Model"]=r.models[0]})),a}var Tr={useDefault:!0,enableAll:!1,enableNone:!1},Cr={useDefault:!1,enableAll:!0,enableNone:!0};function Ir(t,e,n,i){i=i||Tr;var r=n.index,o=n.id,a=n.name,s={models:null,specified:null!=r||null!=o||null!=a};if(!s.specified){var l=void 0;return s.models=i.useDefault&&(l=t.getComponent(e))?[l]:[],s}return"none"===r||!1===r?(it(i.enableNone,'`"none"` or `false` is not a valid value on index option.'),s.models=[],s):("all"===r&&(it(i.enableAll,'`"all"` is not a valid value on index option.'),r=o=a=null),s.models=t.queryComponents({mainType:e,index:r,id:o,name:a}),s)}function Ar(t,e,n){t.setAttribute?t.setAttribute(e,n):t[e]=n}function Dr(t,e,n,i,r){var o=null==e||"auto"===e;if(null==i)return i;if("number"==typeof i)return Wi(d=on(n||0,i,r),o?Math.max(Xi(n||0),Xi(i)):e);if("string"==typeof i)return r<1?n:i;for(var a=[],s=n,l=i,u=Math.max(s?s.length:0,l.length),h=0;h<u;++h){if("ordinal"===t.getDimensionInfo(h).type)a[h]=(r<1&&s?s:l)[h];else{var c=s&&s[h]?s[h]:0,p=l[h],d=on(c,p,r);a[h]=Wi(d,o?Math.max(Xi(c),Xi(p)):e)}}return a}var kr="___EC__COMPONENT__CONTAINER___",Lr="___EC__EXTENDED_CLASS___";function Pr(t){var e={main:"",sub:""};if(t){var n=t.split(".");e.main=n[0]||"",e.sub=n[1]||""}return e}function Or(t,e){t.$constructor=t,t.extend=function(t){var e=this;function n(){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];if(t.$constructor)t.$constructor.apply(this,arguments);else{if(Rr(e)){var a=ht(n.prototype,new(e.bind.apply(e,r([void 0],i))));return a}e.apply(this,arguments)}}return n[Lr]=!0,T(n.prototype,t),n.extend=this.extend,n.superCall=Br,n.superApply=zr,D(n,this),n.superClass=e,n}}function Rr(t){return"function"==typeof t&&/^class\s/.test(Function.prototype.toString.call(t))}function Nr(t,e){t.extend=e.extend}var Er=Math.round(10*Math.random());function Br(t,e){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];return this.superClass.prototype[e].apply(t,n)}function zr(t,e,n){return this.superClass.prototype[e].apply(t,n)}function Vr(t){var e={};t.registerClass=function(t){var n,i=t.type||t.prototype.type;if(i){it(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(n=i),'componentType "'+n+'" illegal'),t.prototype.type=i;var r=Pr(i);if(r.sub){if(r.sub!==kr){(function(t){var n=e[t.main];n&&n[kr]||((n=e[t.main]={})[kr]=!0);return n}(r))[r.sub]=t}}else e[r.main]=t}return t},t.getClass=function(t,n,i){var r=e[t];if(r&&r[kr]&&(r=n?r[n]:null),i&&!r)throw new Error(n?"Component "+t+"."+(n||"")+" not exists. Load it first.":t+".type should be specified.");return r},t.getClassesByMainType=function(t){var n=Pr(t),i=[],r=e[n.main];return r&&r[kr]?P(r,(function(t,e){e!==kr&&i.push(t)})):i.push(r),i},t.hasClass=function(t){var n=Pr(t);return!!e[n.main]},t.getAllClassMainTypes=function(){var t=[];return P(e,(function(e,n){t.push(n)})),t},t.hasSubTypes=function(t){var n=Pr(t),i=e[n.main];return i&&i[kr]}}function Fr(t,e){for(var n=0;n<t.length;n++)t[n][1]||(t[n][1]=t[n][0]);return e=e||!1,function(n,i,r){for(var o={},a=0;a<t.length;a++){var s=t[a][1];if(!(i&&A(i,s)>=0||r&&A(r,s)<0)){var l=n.getShallow(s,e);null!=l&&(o[t[a][0]]=l)}}return o}}var Hr=Fr([["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]]),Gr=function(){function t(){}return t.prototype.getAreaStyle=function(t,e){return Hr(this,t,e)},t}(),Wr=new Pe(50);function Ur(t){if("string"==typeof t){var e=Wr.get(t);return e&&e.image}return t}function Yr(t,e,n,i,r){if(t){if("string"==typeof t){if(e&&e.__zrImageSrc===t||!n)return e;var o=Wr.get(t),a={hostEl:n,cb:i,cbPayload:r};return o?!Zr(e=o.image)&&o.pending.push(a):((e=new Image).onload=e.onerror=Xr,Wr.put(t,e.__cachedImgObj={image:e,pending:[a]}),e.src=e.__zrImageSrc=t),e}return t}return e}function Xr(){var t=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var e=0;e<t.pending.length;e++){var n=t.pending[e],i=n.cb;i&&i(this,n.cbPayload),n.hostEl.dirty()}t.pending.length=0}function Zr(t){return t&&t.width&&t.height}var jr=/\{([a-zA-Z0-9_]+)\|([^}]*)\}/g;function qr(t,e,n,i,r){if(!e)return"";var o=(t+"").split("\n");r=Kr(e,n,i,r);for(var a=0,s=o.length;a<s;a++)o[a]=$r(o[a],r);return o.join("\n")}function Kr(t,e,n,i){var r=T({},i=i||{});r.font=e,n=Q(n,"..."),r.maxIterations=Q(i.maxIterations,2);var o=r.minChar=Q(i.minChar,0);r.cnCharWidth=On("国",e);var a=r.ascCharWidth=On("a",e);r.placeholder=Q(i.placeholder,"");for(var s=t=Math.max(0,t-1),l=0;l<o&&s>=a;l++)s-=a;var u=On(n,e);return u>s&&(n="",u=0),s=t-u,r.ellipsis=n,r.ellipsisWidth=u,r.contentWidth=s,r.containerWidth=t,r}function $r(t,e){var n=e.containerWidth,i=e.font,r=e.contentWidth;if(!n)return"";var o=On(t,i);if(o<=n)return t;for(var a=0;;a++){if(o<=r||a>=e.maxIterations){t+=e.ellipsis;break}var s=0===a?Jr(t,r,e.ascCharWidth,e.cnCharWidth):o>0?Math.floor(t.length*r/o):0;o=On(t=t.substr(0,s),i)}return""===t&&(t=e.placeholder),t}function Jr(t,e,n,i){for(var r=0,o=0,a=t.length;o<a&&r<e;o++){var s=t.charCodeAt(o);r+=0<=s&&s<=127?n:i}return o}var Qr=function(){},to=function(t){this.tokens=[],t&&(this.tokens=t)},eo=function(){this.width=0,this.height=0,this.contentWidth=0,this.contentHeight=0,this.outerWidth=0,this.outerHeight=0,this.lines=[]};function no(t,e,n,i,r){var o,a,s=""===e,l=r&&n.rich[r]||{},u=t.lines,h=l.font||n.font,c=!1;if(i){var p=l.padding,d=p?p[1]+p[3]:0;if(null!=l.width&&"auto"!==l.width){var f=function(t,e){if("string"==typeof t)return t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t);return t}(l.width,i.width)+d;u.length>0&&f+i.accumWidth>i.width&&(o=e.split("\n"),c=!0),i.accumWidth=f}else{var g=oo(e,h,i.width,i.breakAll,i.accumWidth);i.accumWidth=g.accumWidth+d,a=g.linesWidths,o=g.lines}}else o=e.split("\n");for(var y=0;y<o.length;y++){var v=o[y],m=new Qr;if(m.styleName=r,m.text=v,m.isLineHolder=!v&&!s,"number"==typeof l.width?m.width=l.width:m.width=a?a[y]:On(v,h),y||c)u.push(new to([m]));else{var _=(u[u.length-1]||(u[0]=new to)).tokens,x=_.length;1===x&&_[0].isLineHolder?_[0]=m:(v||!x||s)&&_.push(m)}}}var io=R(",&?/;] ".split(""),(function(t,e){return t[e]=!0,t}),{});function ro(t){return!function(t){var e=t.charCodeAt(0);return e>=33&&e<=255}(t)||!!io[t]}function oo(t,e,n,i,r){for(var o=[],a=[],s="",l="",u=0,h=0,c=0;c<t.length;c++){var p=t.charAt(c);if("\n"!==p){var d=On(p,e),f=!i&&!ro(p);(o.length?h+d>n:r+h+d>n)?h?(s||l)&&(f?(s||(s=l,l="",h=u=0),o.push(s),a.push(h-u),l+=p,s="",h=u+=d):(l&&(s+=l,h+=u,l="",u=0),o.push(s),a.push(h),s=p,h=d)):f?(o.push(l),a.push(u),l=p,u=d):(o.push(p),a.push(d)):(h+=d,f?(l+=p,u+=d):(l&&(s+=l,l="",u=0),s+=p))}else l&&(s+=l,h+=u),o.push(s),a.push(h),s="",l="",u=0,h=0}return o.length||s||(s=t,l="",u=0),l&&(s+=l),s&&(o.push(s),a.push(h)),1===o.length&&(h+=r),{accumWidth:h,lines:o,linesWidths:a}}var ao="__zr_style_"+Math.round(10*Math.random()),so={shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:"#000",opacity:1,blend:"source-over"},lo={style:{shadowBlur:!0,shadowOffsetX:!0,shadowOffsetY:!0,shadowColor:!0,opacity:!0}};so[ao]=!0;var uo=["z","z2","invisible"],ho=function(t){function e(e){return t.call(this,e)||this}var n;return gt(e,t),e.prototype._init=function(e){for(var n=E(e),i=0;i<n.length;i++){var r=n[i];"style"===r?this.useStyle(e[r]):t.prototype.attrKV.call(this,r,e[r])}this.style||this.useStyle({})},e.prototype.beforeBrush=function(){},e.prototype.afterBrush=function(){},e.prototype.innerBeforeBrush=function(){},e.prototype.innerAfterBrush=function(){},e.prototype.shouldBePainted=function(t,e,n,i){var r=this.transform;if(this.ignore||this.invisible||0===this.style.opacity||this.culling&&function(t,e,n){co.copy(t.getBoundingRect()),t.transform&&co.applyTransform(t.transform);return po.width=e,po.height=n,!co.intersect(po)}(this,t,e)||r&&!r[0]&&!r[3])return!1;if(n&&this.__clipPaths)for(var o=0;o<this.__clipPaths.length;++o)if(this.__clipPaths[o].isZeroArea())return!1;if(i&&this.parent)for(var a=this.parent;a;){if(a.ignore)return!1;a=a.parent}return!0},e.prototype.contain=function(t,e){return this.rectContain(t,e)},e.prototype.traverse=function(t,e){t.call(e,this)},e.prototype.rectContain=function(t,e){var n=this.transformCoordToLocal(t,e);return this.getBoundingRect().contain(n[0],n[1])},e.prototype.getPaintRect=function(){var t=this._paintRect;if(!this._paintRect||this.__dirty){var e=this.transform,n=this.getBoundingRect(),i=this.style,r=i.shadowBlur||0,o=i.shadowOffsetX||0,a=i.shadowOffsetY||0;t=this._paintRect||(this._paintRect=new Dn(0,0,0,0)),e?Dn.applyTransform(t,n,e):t.copy(n),(r||o||a)&&(t.width+=2*r+Math.abs(o),t.height+=2*r+Math.abs(a),t.x=Math.min(t.x,t.x+o-r),t.y=Math.min(t.y,t.y+a-r));var s=this.dirtyRectTolerance;t.isZero()||(t.x=Math.floor(t.x-s),t.y=Math.floor(t.y-s),t.width=Math.ceil(t.width+1+2*s),t.height=Math.ceil(t.height+1+2*s))}return t},e.prototype.setPrevPaintRect=function(t){t?(this._prevPaintRect=this._prevPaintRect||new Dn(0,0,0,0),this._prevPaintRect.copy(t)):this._prevPaintRect=null},e.prototype.getPrevPaintRect=function(){return this._prevPaintRect},e.prototype.animateStyle=function(t){return this.animate("style",t)},e.prototype.updateDuringAnimation=function(t){"style"===t?this.dirtyStyle():this.markRedraw()},e.prototype.attrKV=function(e,n){"style"!==e?t.prototype.attrKV.call(this,e,n):this.style?this.setStyle(n):this.useStyle(n)},e.prototype.setStyle=function(t,e){return"string"==typeof t?this.style[t]=e:T(this.style,t),this.dirtyStyle(),this},e.prototype.dirtyStyle=function(){this.markRedraw(),this.__dirty|=e.STYLE_CHANGED_BIT,this._rect&&(this._rect=null)},e.prototype.dirty=function(){this.dirtyStyle()},e.prototype.styleChanged=function(){return!!(this.__dirty&e.STYLE_CHANGED_BIT)},e.prototype.styleUpdated=function(){this.__dirty&=~e.STYLE_CHANGED_BIT},e.prototype.createStyle=function(t){return ht(so,t)},e.prototype.useStyle=function(t){t[ao]||(t=this.createStyle(t)),this.__inHover?this.__hoverStyle=t:this.style=t,this.dirtyStyle()},e.prototype.isStyleObject=function(t){return t[ao]},e.prototype._innerSaveToNormal=function(e){t.prototype._innerSaveToNormal.call(this,e);var n=this._normalState;e.style&&!n.style&&(n.style=this._mergeStyle(this.createStyle(),this.style)),this._savePrimaryToNormal(e,n,uo)},e.prototype._applyStateObj=function(e,n,i,r,o,a){t.prototype._applyStateObj.call(this,e,n,i,r,o,a);var s,l=!(n&&r);if(n&&n.style?o?r?s=n.style:(s=this._mergeStyle(this.createStyle(),i.style),this._mergeStyle(s,n.style)):(s=this._mergeStyle(this.createStyle(),r?this.style:i.style),this._mergeStyle(s,n.style)):l&&(s=i.style),s)if(o){var u=this.style;if(this.style=this.createStyle(l?{}:u),l)for(var h=E(u),c=0;c<h.length;c++){(d=h[c])in s&&(s[d]=s[d],this.style[d]=u[d])}var p=E(s);for(c=0;c<p.length;c++){var d=p[c];this.style[d]=this.style[d]}this._transitionState(e,{style:s},a,this.getAnimationStyleProps())}else this.useStyle(s);for(c=0;c<uo.length;c++){d=uo[c];n&&null!=n[d]?this[d]=n[d]:l&&null!=i[d]&&(this[d]=i[d])}},e.prototype._mergeStates=function(e){for(var n,i=t.prototype._mergeStates.call(this,e),r=0;r<e.length;r++){var o=e[r];o.style&&(n=n||{},this._mergeStyle(n,o.style))}return n&&(i.style=n),i},e.prototype._mergeStyle=function(t,e){return T(t,e),t},e.prototype.getAnimationStyleProps=function(){return lo},e.STYLE_CHANGED_BIT=2,e.initDefaultProps=((n=e.prototype).type="displayable",n.invisible=!1,n.z=0,n.z2=0,n.zlevel=0,n.culling=!1,n.cursor="pointer",n.rectHover=!1,n.incremental=!1,n._rect=null,n.dirtyRectTolerance=0,void(n.__dirty=Kn.REDARAW_BIT|e.STYLE_CHANGED_BIT)),e}(Kn),co=new Dn(0,0,0,0),po=new Dn(0,0,0,0);var fo=Math.pow,go=Math.sqrt,yo=1e-8,vo=1e-4,mo=go(3),_o=1/3,xo=yt(),bo=yt(),wo=yt();function So(t){return t>-1e-8&&t<yo}function Mo(t){return t>yo||t<-1e-8}function To(t,e,n,i,r){var o=1-r;return o*o*(o*t+3*r*e)+r*r*(r*i+3*o*n)}function Co(t,e,n,i,r){var o=1-r;return 3*(((e-t)*o+2*(n-e)*r)*o+(i-n)*r*r)}function Io(t,e,n,i,r,o){var a=i+3*(e-n)-t,s=3*(n-2*e+t),l=3*(e-t),u=t-r,h=s*s-3*a*l,c=s*l-9*a*u,p=l*l-3*s*u,d=0;if(So(h)&&So(c)){if(So(s))o[0]=0;else(M=-l/s)>=0&&M<=1&&(o[d++]=M)}else{var f=c*c-4*h*p;if(So(f)){var g=c/h,y=-g/2;(M=-s/a+g)>=0&&M<=1&&(o[d++]=M),y>=0&&y<=1&&(o[d++]=y)}else if(f>0){var v=go(f),m=h*s+1.5*a*(-c+v),_=h*s+1.5*a*(-c-v);(M=(-s-((m=m<0?-fo(-m,_o):fo(m,_o))+(_=_<0?-fo(-_,_o):fo(_,_o))))/(3*a))>=0&&M<=1&&(o[d++]=M)}else{var x=(2*h*s-3*a*c)/(2*go(h*h*h)),b=Math.acos(x)/3,w=go(h),S=Math.cos(b),M=(-s-2*w*S)/(3*a),T=(y=(-s+w*(S+mo*Math.sin(b)))/(3*a),(-s+w*(S-mo*Math.sin(b)))/(3*a));M>=0&&M<=1&&(o[d++]=M),y>=0&&y<=1&&(o[d++]=y),T>=0&&T<=1&&(o[d++]=T)}}return d}function Ao(t,e,n,i,r){var o=6*n-12*e+6*t,a=9*e+3*i-3*t-9*n,s=3*e-3*t,l=0;if(So(a)){if(Mo(o))(h=-s/o)>=0&&h<=1&&(r[l++]=h)}else{var u=o*o-4*a*s;if(So(u))r[0]=-o/(2*a);else if(u>0){var h,c=go(u),p=(-o-c)/(2*a);(h=(-o+c)/(2*a))>=0&&h<=1&&(r[l++]=h),p>=0&&p<=1&&(r[l++]=p)}}return l}function Do(t,e,n,i,r,o){var a=(e-t)*r+t,s=(n-e)*r+e,l=(i-n)*r+n,u=(s-a)*r+a,h=(l-s)*r+s,c=(h-u)*r+u;o[0]=t,o[1]=a,o[2]=u,o[3]=c,o[4]=c,o[5]=h,o[6]=l,o[7]=i}function ko(t,e,n,i,r,o,a,s,l,u,h){var c,p,d,f,g,y=.005,v=1/0;xo[0]=l,xo[1]=u;for(var m=0;m<1;m+=.05)bo[0]=To(t,n,r,a,m),bo[1]=To(e,i,o,s,m),(f=Dt(xo,bo))<v&&(c=m,v=f);v=1/0;for(var _=0;_<32&&!(y<vo);_++)p=c-y,d=c+y,bo[0]=To(t,n,r,a,p),bo[1]=To(e,i,o,s,p),f=Dt(bo,xo),p>=0&&f<v?(c=p,v=f):(wo[0]=To(t,n,r,a,d),wo[1]=To(e,i,o,s,d),g=Dt(wo,xo),d<=1&&g<v?(c=d,v=g):y*=.5);return h&&(h[0]=To(t,n,r,a,c),h[1]=To(e,i,o,s,c)),go(v)}function Lo(t,e,n,i,r,o,a,s,l){for(var u=t,h=e,c=0,p=1/l,d=1;d<=l;d++){var f=d*p,g=To(t,n,r,a,f),y=To(e,i,o,s,f),v=g-u,m=y-h;c+=Math.sqrt(v*v+m*m),u=g,h=y}return c}function Po(t,e,n,i){var r=1-i;return r*(r*t+2*i*e)+i*i*n}function Oo(t,e,n,i){return 2*((1-i)*(e-t)+i*(n-e))}function Ro(t,e,n){var i=t+n-2*e;return 0===i?.5:(t-e)/i}function No(t,e,n,i,r){var o=(e-t)*i+t,a=(n-e)*i+e,s=(a-o)*i+o;r[0]=t,r[1]=o,r[2]=s,r[3]=s,r[4]=a,r[5]=n}function Eo(t,e,n,i,r,o,a,s,l){var u,h=.005,c=1/0;xo[0]=a,xo[1]=s;for(var p=0;p<1;p+=.05){bo[0]=Po(t,n,r,p),bo[1]=Po(e,i,o,p),(y=Dt(xo,bo))<c&&(u=p,c=y)}c=1/0;for(var d=0;d<32&&!(h<vo);d++){var f=u-h,g=u+h;bo[0]=Po(t,n,r,f),bo[1]=Po(e,i,o,f);var y=Dt(bo,xo);if(f>=0&&y<c)u=f,c=y;else{wo[0]=Po(t,n,r,g),wo[1]=Po(e,i,o,g);var v=Dt(wo,xo);g<=1&&v<c?(u=g,c=v):h*=.5}}return l&&(l[0]=Po(t,n,r,u),l[1]=Po(e,i,o,u)),go(c)}function Bo(t,e,n,i,r,o,a){for(var s=t,l=e,u=0,h=1/a,c=1;c<=a;c++){var p=c*h,d=Po(t,n,r,p),f=Po(e,i,o,p),g=d-s,y=f-l;u+=Math.sqrt(g*g+y*y),s=d,l=f}return u}var zo=Math.min,Vo=Math.max,Fo=Math.sin,Ho=Math.cos,Go=2*Math.PI,Wo=yt(),Uo=yt(),Yo=yt();function Xo(t,e,n){if(0!==t.length){for(var i=t[0],r=i[0],o=i[0],a=i[1],s=i[1],l=1;l<t.length;l++)i=t[l],r=zo(r,i[0]),o=Vo(o,i[0]),a=zo(a,i[1]),s=Vo(s,i[1]);e[0]=r,e[1]=a,n[0]=o,n[1]=s}}function Zo(t,e,n,i,r,o){r[0]=zo(t,n),r[1]=zo(e,i),o[0]=Vo(t,n),o[1]=Vo(e,i)}var jo=[],qo=[];function Ko(t,e,n,i,r,o,a,s,l,u){var h=Ao,c=To,p=h(t,n,r,a,jo);l[0]=1/0,l[1]=1/0,u[0]=-1/0,u[1]=-1/0;for(var d=0;d<p;d++){var f=c(t,n,r,a,jo[d]);l[0]=zo(f,l[0]),u[0]=Vo(f,u[0])}p=h(e,i,o,s,qo);for(d=0;d<p;d++){var g=c(e,i,o,s,qo[d]);l[1]=zo(g,l[1]),u[1]=Vo(g,u[1])}l[0]=zo(t,l[0]),u[0]=Vo(t,u[0]),l[0]=zo(a,l[0]),u[0]=Vo(a,u[0]),l[1]=zo(e,l[1]),u[1]=Vo(e,u[1]),l[1]=zo(s,l[1]),u[1]=Vo(s,u[1])}function $o(t,e,n,i,r,o,a,s){var l=Ro,u=Po,h=Vo(zo(l(t,n,r),1),0),c=Vo(zo(l(e,i,o),1),0),p=u(t,n,r,h),d=u(e,i,o,c);a[0]=zo(t,r,p),a[1]=zo(e,o,d),s[0]=Vo(t,r,p),s[1]=Vo(e,o,d)}function Jo(t,e,n,i,r,o,a,s,l){var u=Pt,h=Ot,c=Math.abs(r-o);if(c%Go<1e-4&&c>1e-4)return s[0]=t-n,s[1]=e-i,l[0]=t+n,void(l[1]=e+i);if(Wo[0]=Ho(r)*n+t,Wo[1]=Fo(r)*i+e,Uo[0]=Ho(o)*n+t,Uo[1]=Fo(o)*i+e,u(s,Wo,Uo),h(l,Wo,Uo),(r%=Go)<0&&(r+=Go),(o%=Go)<0&&(o+=Go),r>o&&!a?o+=Go:r<o&&a&&(r+=Go),a){var p=o;o=r,r=p}for(var d=0;d<o;d+=Math.PI/2)d>r&&(Yo[0]=Ho(d)*n+t,Yo[1]=Fo(d)*i+e,u(s,Yo,s),h(l,Yo,l))}var Qo={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},ta=[],ea=[],na=[],ia=[],ra=[],oa=[],aa=Math.min,sa=Math.max,la=Math.cos,ua=Math.sin,ha=Math.sqrt,ca=Math.abs,pa=Math.PI,da=2*pa,fa="undefined"!=typeof Float32Array,ga=[];function ya(t){return Math.round(t/pa*1e8)/1e8%2*pa}function va(t,e){var n=ya(t[0]);n<0&&(n+=da);var i=n-t[0],r=t[1];r+=i,!e&&r-n>=da?r=n+da:e&&n-r>=da?r=n-da:!e&&n>r?r=n+(da-ya(n-r)):e&&n<r&&(r=n-(da-ya(r-n))),t[0]=n,t[1]=r}var ma=function(){function t(t){this.dpr=1,this._version=0,this._xi=0,this._yi=0,this._x0=0,this._y0=0,this._len=0,t&&(this._saveData=!1),this._saveData&&(this.data=[])}return t.prototype.increaseVersion=function(){this._version++},t.prototype.getVersion=function(){return this._version},t.prototype.setScale=function(t,e,n){(n=n||0)>0&&(this._ux=ca(n/Gn/t)||0,this._uy=ca(n/Gn/e)||0)},t.prototype.setDPR=function(t){this.dpr=t},t.prototype.setContext=function(t){this._ctx=t},t.prototype.getContext=function(){return this._ctx},t.prototype.beginPath=function(){return this._ctx&&this._ctx.beginPath(),this.reset(),this},t.prototype.reset=function(){this._saveData&&(this._len=0),this._lineDash&&(this._lineDash=null,this._dashOffset=0),this._pathSegLen&&(this._pathSegLen=null,this._pathLen=0),this._version++},t.prototype.moveTo=function(t,e){return this.addData(Qo.M,t,e),this._ctx&&this._ctx.moveTo(t,e),this._x0=t,this._y0=e,this._xi=t,this._yi=e,this},t.prototype.lineTo=function(t,e){var n=ca(t-this._xi)>this._ux||ca(e-this._yi)>this._uy||this._len<5;return this.addData(Qo.L,t,e),this._ctx&&n&&(this._needsDash?this._dashedLineTo(t,e):this._ctx.lineTo(t,e)),n&&(this._xi=t,this._yi=e),this},t.prototype.bezierCurveTo=function(t,e,n,i,r,o){return this.addData(Qo.C,t,e,n,i,r,o),this._ctx&&(this._needsDash?this._dashedBezierTo(t,e,n,i,r,o):this._ctx.bezierCurveTo(t,e,n,i,r,o)),this._xi=r,this._yi=o,this},t.prototype.quadraticCurveTo=function(t,e,n,i){return this.addData(Qo.Q,t,e,n,i),this._ctx&&(this._needsDash?this._dashedQuadraticTo(t,e,n,i):this._ctx.quadraticCurveTo(t,e,n,i)),this._xi=n,this._yi=i,this},t.prototype.arc=function(t,e,n,i,r,o){ga[0]=i,ga[1]=r,va(ga,o),i=ga[0];var a=(r=ga[1])-i;return this.addData(Qo.A,t,e,n,n,i,a,0,o?0:1),this._ctx&&this._ctx.arc(t,e,n,i,r,o),this._xi=la(r)*n+t,this._yi=ua(r)*n+e,this},t.prototype.arcTo=function(t,e,n,i,r){return this._ctx&&this._ctx.arcTo(t,e,n,i,r),this},t.prototype.rect=function(t,e,n,i){return this._ctx&&this._ctx.rect(t,e,n,i),this.addData(Qo.R,t,e,n,i),this},t.prototype.closePath=function(){this.addData(Qo.Z);var t=this._ctx,e=this._x0,n=this._y0;return t&&(this._needsDash&&this._dashedLineTo(e,n),t.closePath()),this._xi=e,this._yi=n,this},t.prototype.fill=function(t){t&&t.fill(),this.toStatic()},t.prototype.stroke=function(t){t&&t.stroke(),this.toStatic()},t.prototype.setLineDash=function(t){if(t instanceof Array){this._lineDash=t,this._dashIdx=0;for(var e=0,n=0;n<t.length;n++)e+=t[n];this._dashSum=e,this._needsDash=!0}else this._lineDash=null,this._needsDash=!1;return this},t.prototype.setLineDashOffset=function(t){return this._dashOffset=t,this},t.prototype.len=function(){return this._len},t.prototype.setData=function(t){var e=t.length;this.data&&this.data.length===e||!fa||(this.data=new Float32Array(e));for(var n=0;n<e;n++)this.data[n]=t[n];this._len=e},t.prototype.appendPath=function(t){t instanceof Array||(t=[t]);for(var e=t.length,n=0,i=this._len,r=0;r<e;r++)n+=t[r].len();fa&&this.data instanceof Float32Array&&(this.data=new Float32Array(i+n));for(r=0;r<e;r++)for(var o=t[r].data,a=0;a<o.length;a++)this.data[i++]=o[a];this._len=i},t.prototype.addData=function(t,e,n,i,r,o,a,s,l){if(this._saveData){var u=this.data;this._len+arguments.length>u.length&&(this._expandData(),u=this.data);for(var h=0;h<arguments.length;h++)u[this._len++]=arguments[h]}},t.prototype._expandData=function(){if(!(this.data instanceof Array)){for(var t=[],e=0;e<this._len;e++)t[e]=this.data[e];this.data=t}},t.prototype._dashedLineTo=function(t,e){var n,i,r=this._dashSum,o=this._lineDash,a=this._ctx,s=this._dashOffset,l=this._xi,u=this._yi,h=t-l,c=e-u,p=ha(h*h+c*c),d=l,f=u,g=o.length;for(s<0&&(s=r+s),d-=(s%=r)*(h/=p),f-=s*(c/=p);h>0&&d<=t||h<0&&d>=t||0===h&&(c>0&&f<=e||c<0&&f>=e);)d+=h*(n=o[i=this._dashIdx]),f+=c*n,this._dashIdx=(i+1)%g,h>0&&d<l||h<0&&d>l||c>0&&f<u||c<0&&f>u||a[i%2?"moveTo":"lineTo"](h>=0?aa(d,t):sa(d,t),c>=0?aa(f,e):sa(f,e));h=d-t,c=f-e,this._dashOffset=-ha(h*h+c*c)},t.prototype._dashedBezierTo=function(t,e,n,i,r,o){var a,s,l,u,h,c=this._ctx,p=this._dashSum,d=this._dashOffset,f=this._lineDash,g=this._xi,y=this._yi,v=0,m=this._dashIdx,_=f.length,x=0;for(d<0&&(d=p+d),d%=p,a=0;a<1;a+=.1)s=To(g,t,n,r,a+.1)-To(g,t,n,r,a),l=To(y,e,i,o,a+.1)-To(y,e,i,o,a),v+=ha(s*s+l*l);for(;m<_&&!((x+=f[m])>d);m++);for(a=(x-d)/v;a<=1;)u=To(g,t,n,r,a),h=To(y,e,i,o,a),m%2?c.moveTo(u,h):c.lineTo(u,h),a+=f[m]/v,m=(m+1)%_;m%2!=0&&c.lineTo(r,o),s=r-u,l=o-h,this._dashOffset=-ha(s*s+l*l)},t.prototype._dashedQuadraticTo=function(t,e,n,i){var r=n,o=i;n=(n+2*t)/3,i=(i+2*e)/3,t=(this._xi+2*t)/3,e=(this._yi+2*e)/3,this._dashedBezierTo(t,e,n,i,r,o)},t.prototype.toStatic=function(){if(this._saveData){var t=this.data;t instanceof Array&&(t.length=this._len,fa&&this._len>11&&(this.data=new Float32Array(t)))}},t.prototype.getBoundingRect=function(){na[0]=na[1]=ra[0]=ra[1]=Number.MAX_VALUE,ia[0]=ia[1]=oa[0]=oa[1]=-Number.MAX_VALUE;var t,e=this.data,n=0,i=0,r=0,o=0;for(t=0;t<this._len;){var a=e[t++],s=1===t;switch(s&&(r=n=e[t],o=i=e[t+1]),a){case Qo.M:n=r=e[t++],i=o=e[t++],ra[0]=r,ra[1]=o,oa[0]=r,oa[1]=o;break;case Qo.L:Zo(n,i,e[t],e[t+1],ra,oa),n=e[t++],i=e[t++];break;case Qo.C:Ko(n,i,e[t++],e[t++],e[t++],e[t++],e[t],e[t+1],ra,oa),n=e[t++],i=e[t++];break;case Qo.Q:$o(n,i,e[t++],e[t++],e[t],e[t+1],ra,oa),n=e[t++],i=e[t++];break;case Qo.A:var l=e[t++],u=e[t++],h=e[t++],c=e[t++],p=e[t++],d=e[t++]+p;t+=1;var f=!e[t++];s&&(r=la(p)*h+l,o=ua(p)*c+u),Jo(l,u,h,c,p,d,f,ra,oa),n=la(d)*h+l,i=ua(d)*c+u;break;case Qo.R:Zo(r=n=e[t++],o=i=e[t++],r+e[t++],o+e[t++],ra,oa);break;case Qo.Z:n=r,i=o}Pt(na,na,ra),Ot(ia,ia,oa)}return 0===t&&(na[0]=na[1]=ia[0]=ia[1]=0),new Dn(na[0],na[1],ia[0]-na[0],ia[1]-na[1])},t.prototype._calculateLength=function(){var t=this.data,e=this._len,n=this._ux,i=this._uy,r=0,o=0,a=0,s=0;this._pathSegLen||(this._pathSegLen=[]);for(var l=this._pathSegLen,u=0,h=0,c=0;c<e;){var p=t[c++],d=1===c;d&&(a=r=t[c],s=o=t[c+1]);var f=-1;switch(p){case Qo.M:r=a=t[c++],o=s=t[c++];break;case Qo.L:var g=t[c++],y=(_=t[c++])-o;(ca(D=g-r)>n||ca(y)>i||c===e-1)&&(f=Math.sqrt(D*D+y*y),r=g,o=_);break;case Qo.C:var v=t[c++],m=t[c++],_=(g=t[c++],t[c++]),x=t[c++],b=t[c++];f=Lo(r,o,v,m,g,_,x,b,10),r=x,o=b;break;case Qo.Q:f=Bo(r,o,v=t[c++],m=t[c++],g=t[c++],_=t[c++],10),r=g,o=_;break;case Qo.A:var w=t[c++],S=t[c++],M=t[c++],T=t[c++],C=t[c++],I=t[c++],A=I+C;c+=1;t[c++];d&&(a=la(C)*M+w,s=ua(C)*T+S),f=sa(M,T)*aa(da,Math.abs(I)),r=la(A)*M+w,o=ua(A)*T+S;break;case Qo.R:a=r=t[c++],s=o=t[c++],f=2*t[c++]+2*t[c++];break;case Qo.Z:var D=a-r;y=s-o;f=Math.sqrt(D*D+y*y),r=a,o=s}f>=0&&(l[h++]=f,u+=f)}return this._pathLen=u,u},t.prototype.rebuildPath=function(t,e){var n,i,r,o,a,s,l,u,h=this.data,c=this._ux,p=this._uy,d=this._len,f=e<1,g=0,y=0;if(!f||(this._pathSegLen||this._calculateLength(),l=this._pathSegLen,u=e*this._pathLen))t:for(var v=0;v<d;){var m=h[v++],_=1===v;switch(_&&(n=r=h[v],i=o=h[v+1]),m){case Qo.M:n=r=h[v++],i=o=h[v++],t.moveTo(r,o);break;case Qo.L:if(a=h[v++],s=h[v++],ca(a-r)>c||ca(s-o)>p||v===d-1){if(f){if(g+(G=l[y++])>u){var x=(u-g)/G;t.lineTo(r*(1-x)+a*x,o*(1-x)+s*x);break t}g+=G}t.lineTo(a,s),r=a,o=s}break;case Qo.C:var b=h[v++],w=h[v++],S=h[v++],M=h[v++],T=h[v++],C=h[v++];if(f){if(g+(G=l[y++])>u){Do(r,b,S,T,x=(u-g)/G,ta),Do(o,w,M,C,x,ea),t.bezierCurveTo(ta[1],ea[1],ta[2],ea[2],ta[3],ea[3]);break t}g+=G}t.bezierCurveTo(b,w,S,M,T,C),r=T,o=C;break;case Qo.Q:b=h[v++],w=h[v++],S=h[v++],M=h[v++];if(f){if(g+(G=l[y++])>u){No(r,b,S,x=(u-g)/G,ta),No(o,w,M,x,ea),t.quadraticCurveTo(ta[1],ea[1],ta[2],ea[2]);break t}g+=G}t.quadraticCurveTo(b,w,S,M),r=S,o=M;break;case Qo.A:var I=h[v++],A=h[v++],D=h[v++],k=h[v++],L=h[v++],P=h[v++],O=h[v++],R=!h[v++],N=D>k?D:k,E=ca(D-k)>.001,B=L+P,z=!1;if(f)g+(G=l[y++])>u&&(B=L+P*(u-g)/G,z=!0),g+=G;if(E&&t.ellipse?t.ellipse(I,A,D,k,O,L,B,R):t.arc(I,A,N,L,B,R),z)break t;_&&(n=la(L)*D+I,i=ua(L)*k+A),r=la(B)*D+I,o=ua(B)*k+A;break;case Qo.R:n=r=h[v],i=o=h[v+1],a=h[v++],s=h[v++];var V=h[v++],F=h[v++];if(f){if(g+(G=l[y++])>u){var H=u-g;t.moveTo(a,s),t.lineTo(a+aa(H,V),s),(H-=V)>0&&t.lineTo(a+V,s+aa(H,F)),(H-=F)>0&&t.lineTo(a+sa(V-H,0),s+F),(H-=V)>0&&t.lineTo(a,s+sa(F-H,0));break t}g+=G}t.rect(a,s,V,F);break;case Qo.Z:if(f){var G;if(g+(G=l[y++])>u){x=(u-g)/G;t.lineTo(r*(1-x)+n*x,o*(1-x)+i*x);break t}g+=G}t.closePath(),r=n,o=i}}},t.CMD=Qo,t.initDefaultProps=function(){var e=t.prototype;e._saveData=!0,e._needsDash=!1,e._dashOffset=0,e._dashIdx=0,e._dashSum=0,e._ux=0,e._uy=0}(),t}();function _a(t,e,n,i,r,o,a){if(0===r)return!1;var s=r,l=0;if(a>e+s&&a>i+s||a<e-s&&a<i-s||o>t+s&&o>n+s||o<t-s&&o<n-s)return!1;if(t===n)return Math.abs(o-t)<=s/2;var u=(l=(e-i)/(t-n))*o-a+(t*i-n*e)/(t-n);return u*u/(l*l+1)<=s/2*s/2}function xa(t,e,n,i,r,o,a,s,l,u,h){if(0===l)return!1;var c=l;return!(h>e+c&&h>i+c&&h>o+c&&h>s+c||h<e-c&&h<i-c&&h<o-c&&h<s-c||u>t+c&&u>n+c&&u>r+c&&u>a+c||u<t-c&&u<n-c&&u<r-c&&u<a-c)&&ko(t,e,n,i,r,o,a,s,u,h,null)<=c/2}function ba(t,e,n,i,r,o,a,s,l){if(0===a)return!1;var u=a;return!(l>e+u&&l>i+u&&l>o+u||l<e-u&&l<i-u&&l<o-u||s>t+u&&s>n+u&&s>r+u||s<t-u&&s<n-u&&s<r-u)&&Eo(t,e,n,i,r,o,s,l,null)<=u/2}var wa=2*Math.PI;function Sa(t){return(t%=wa)<0&&(t+=wa),t}var Ma=2*Math.PI;function Ta(t,e,n,i,r,o,a,s,l){if(0===a)return!1;var u=a;s-=t,l-=e;var h=Math.sqrt(s*s+l*l);if(h-u>n||h+u<n)return!1;if(Math.abs(i-r)%Ma<1e-4)return!0;if(o){var c=i;i=Sa(r),r=Sa(c)}else i=Sa(i),r=Sa(r);i>r&&(r+=Ma);var p=Math.atan2(l,s);return p<0&&(p+=Ma),p>=i&&p<=r||p+Ma>=i&&p+Ma<=r}function Ca(t,e,n,i,r,o){if(o>e&&o>i||o<e&&o<i)return 0;if(i===e)return 0;var a=(o-e)/(i-e),s=i<e?1:-1;1!==a&&0!==a||(s=i<e?.5:-.5);var l=a*(n-t)+t;return l===r?1/0:l>r?s:0}var Ia=ma.CMD,Aa=2*Math.PI;var Da=[-1,-1,-1],ka=[-1,-1];function La(t,e,n,i,r,o,a,s,l,u){if(u>e&&u>i&&u>o&&u>s||u<e&&u<i&&u<o&&u<s)return 0;var h,c=Io(e,i,o,s,u,Da);if(0===c)return 0;for(var p=0,d=-1,f=void 0,g=void 0,y=0;y<c;y++){var v=Da[y],m=0===v||1===v?.5:1;To(t,n,r,a,v)<l||(d<0&&(d=Ao(e,i,o,s,ka),ka[1]<ka[0]&&d>1&&(h=void 0,h=ka[0],ka[0]=ka[1],ka[1]=h),f=To(e,i,o,s,ka[0]),d>1&&(g=To(e,i,o,s,ka[1]))),2===d?v<ka[0]?p+=f<e?m:-m:v<ka[1]?p+=g<f?m:-m:p+=s<g?m:-m:v<ka[0]?p+=f<e?m:-m:p+=s<f?m:-m)}return p}function Pa(t,e,n,i,r,o,a,s){if(s>e&&s>i&&s>o||s<e&&s<i&&s<o)return 0;var l=function(t,e,n,i,r){var o=t-2*e+n,a=2*(e-t),s=t-i,l=0;if(So(o))Mo(a)&&(h=-s/a)>=0&&h<=1&&(r[l++]=h);else{var u=a*a-4*o*s;if(So(u))(h=-a/(2*o))>=0&&h<=1&&(r[l++]=h);else if(u>0){var h,c=go(u),p=(-a-c)/(2*o);(h=(-a+c)/(2*o))>=0&&h<=1&&(r[l++]=h),p>=0&&p<=1&&(r[l++]=p)}}return l}(e,i,o,s,Da);if(0===l)return 0;var u=Ro(e,i,o);if(u>=0&&u<=1){for(var h=0,c=Po(e,i,o,u),p=0;p<l;p++){var d=0===Da[p]||1===Da[p]?.5:1;Po(t,n,r,Da[p])<a||(Da[p]<u?h+=c<e?d:-d:h+=o<c?d:-d)}return h}d=0===Da[0]||1===Da[0]?.5:1;return Po(t,n,r,Da[0])<a?0:o<e?d:-d}function Oa(t,e,n,i,r,o,a,s){if((s-=e)>n||s<-n)return 0;var l=Math.sqrt(n*n-s*s);Da[0]=-l,Da[1]=l;var u=Math.abs(i-r);if(u<1e-4)return 0;if(u>=Aa-1e-4){i=0,r=Aa;var h=o?1:-1;return a>=Da[0]+t&&a<=Da[1]+t?h:0}if(i>r){var c=i;i=r,r=c}i<0&&(i+=Aa,r+=Aa);for(var p=0,d=0;d<2;d++){var f=Da[d];if(f+t>a){var g=Math.atan2(s,f);h=o?1:-1;g<0&&(g=Aa+g),(g>=i&&g<=r||g+Aa>=i&&g+Aa<=r)&&(g>Math.PI/2&&g<1.5*Math.PI&&(h=-h),p+=h)}}return p}function Ra(t,e,n,i,r){for(var o,a,s,l,u=t.data,h=t.len(),c=0,p=0,d=0,f=0,g=0,y=0;y<h;){var v=u[y++],m=1===y;switch(v===Ia.M&&y>1&&(n||(c+=Ca(p,d,f,g,i,r))),m&&(f=p=u[y],g=d=u[y+1]),v){case Ia.M:p=f=u[y++],d=g=u[y++];break;case Ia.L:if(n){if(_a(p,d,u[y],u[y+1],e,i,r))return!0}else c+=Ca(p,d,u[y],u[y+1],i,r)||0;p=u[y++],d=u[y++];break;case Ia.C:if(n){if(xa(p,d,u[y++],u[y++],u[y++],u[y++],u[y],u[y+1],e,i,r))return!0}else c+=La(p,d,u[y++],u[y++],u[y++],u[y++],u[y],u[y+1],i,r)||0;p=u[y++],d=u[y++];break;case Ia.Q:if(n){if(ba(p,d,u[y++],u[y++],u[y],u[y+1],e,i,r))return!0}else c+=Pa(p,d,u[y++],u[y++],u[y],u[y+1],i,r)||0;p=u[y++],d=u[y++];break;case Ia.A:var _=u[y++],x=u[y++],b=u[y++],w=u[y++],S=u[y++],M=u[y++];y+=1;var T=!!(1-u[y++]);o=Math.cos(S)*b+_,a=Math.sin(S)*w+x,m?(f=o,g=a):c+=Ca(p,d,o,a,i,r);var C=(i-_)*w/b+_;if(n){if(Ta(_,x,w,S,S+M,T,e,C,r))return!0}else c+=Oa(_,x,w,S,S+M,T,C,r);p=Math.cos(S+M)*b+_,d=Math.sin(S+M)*w+x;break;case Ia.R:if(f=p=u[y++],g=d=u[y++],o=f+u[y++],a=g+u[y++],n){if(_a(f,g,o,g,e,i,r)||_a(o,g,o,a,e,i,r)||_a(o,a,f,a,e,i,r)||_a(f,a,f,g,e,i,r))return!0}else c+=Ca(o,g,o,a,i,r),c+=Ca(f,a,f,g,i,r);break;case Ia.Z:if(n){if(_a(p,d,f,g,e,i,r))return!0}else c+=Ca(p,d,f,g,i,r);p=f,d=g}}return n||(s=d,l=g,Math.abs(s-l)<1e-4)||(c+=Ca(p,d,f,g,i,r)||0),0!==c}var Na=C({fill:"#000",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:"butt",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},so),Ea={style:C({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},lo.style)},Ba=["x","y","rotation","scaleX","scaleY","originX","originY","invisible","culling","z","z2","zlevel","parent"],za=function(t){function e(e){return t.call(this,e)||this}var n;return gt(e,t),e.prototype.update=function(){var n=this;t.prototype.update.call(this);var i=this.style;if(i.decal){var r=this._decalEl=this._decalEl||new e;r.buildPath===e.prototype.buildPath&&(r.buildPath=function(t){n.buildPath(t,n.shape)}),r.silent=!0;var o=r.style;for(var a in i)o[a]!==i[a]&&(o[a]=i[a]);o.fill=i.fill?i.decal:null,o.decal=null,o.shadowColor=null,i.strokeFirst&&(o.stroke=null);for(var s=0;s<Ba.length;++s)r[Ba[s]]=this[Ba[s]];r.__dirty|=Kn.REDARAW_BIT}else this._decalEl&&(this._decalEl=null)},e.prototype.getDecalElement=function(){return this._decalEl},e.prototype._init=function(e){var n=E(e);this.shape=this.getDefaultShape();var i=this.getDefaultStyle();i&&this.useStyle(i);for(var r=0;r<n.length;r++){var o=n[r],a=e[o];"style"===o?this.style?T(this.style,a):this.useStyle(a):"shape"===o?T(this.shape,a):t.prototype.attrKV.call(this,o,a)}this.style||this.useStyle({})},e.prototype.getDefaultStyle=function(){return null},e.prototype.getDefaultShape=function(){return{}},e.prototype.canBeInsideText=function(){return this.hasFill()},e.prototype.getInsideTextFill=function(){var t=this.style.fill;if("none"!==t){if(H(t)){var e=en(t,0);return e>.5?Wn:e>.2?"#eee":Un}if(t)return Un}return Wn},e.prototype.getInsideTextStroke=function(t){var e=this.style.fill;if(H(e)){var n=this.__zr;if(!(!n||!n.isDarkMode())===en(t,0)<.4)return e}},e.prototype.buildPath=function(t,e,n){},e.prototype.pathUpdated=function(){this.__dirty&=~e.SHAPE_CHANGED_BIT},e.prototype.createPathProxy=function(){this.path=new ma(!1)},e.prototype.hasStroke=function(){var t=this.style,e=t.stroke;return!(null==e||"none"===e||!(t.lineWidth>0))},e.prototype.hasFill=function(){var t=this.style.fill;return null!=t&&"none"!==t},e.prototype.getBoundingRect=function(){var t=this._rect,n=this.style,i=!t;if(i){var r=!1;this.path||(r=!0,this.createPathProxy());var o=this.path;(r||this.__dirty&e.SHAPE_CHANGED_BIT)&&(o.beginPath(),this.buildPath(o,this.shape,!1),this.pathUpdated()),t=o.getBoundingRect()}if(this._rect=t,this.hasStroke()&&this.path&&this.path.len()>0){var a=this._rectWithStroke||(this._rectWithStroke=t.clone());if(this.__dirty||i){a.copy(t);var s=n.strokeNoScale?this.getLineScale():1,l=n.lineWidth;if(!this.hasFill()){var u=this.strokeContainThreshold;l=Math.max(l,null==u?4:u)}s>1e-10&&(a.width+=l/s,a.height+=l/s,a.x-=l/s/2,a.y-=l/s/2)}return a}return t},e.prototype.contain=function(t,e){var n=this.transformCoordToLocal(t,e),i=this.getBoundingRect(),r=this.style;if(t=n[0],e=n[1],i.contain(t,e)){var o=this.path;if(this.hasStroke()){var a=r.lineWidth,s=r.strokeNoScale?this.getLineScale():1;if(s>1e-10&&(this.hasFill()||(a=Math.max(a,this.strokeContainThreshold)),function(t,e,n,i){return Ra(t,e,!0,n,i)}(o,a/s,t,e)))return!0}if(this.hasFill())return function(t,e,n){return Ra(t,0,!1,e,n)}(o,t,e)}return!1},e.prototype.dirtyShape=function(){this.__dirty|=e.SHAPE_CHANGED_BIT,this._rect&&(this._rect=null),this._decalEl&&this._decalEl.dirtyShape(),this.markRedraw()},e.prototype.dirty=function(){this.dirtyStyle(),this.dirtyShape()},e.prototype.animateShape=function(t){return this.animate("shape",t)},e.prototype.updateDuringAnimation=function(t){"style"===t?this.dirtyStyle():"shape"===t?this.dirtyShape():this.markRedraw()},e.prototype.attrKV=function(e,n){"shape"===e?this.setShape(n):t.prototype.attrKV.call(this,e,n)},e.prototype.setShape=function(t,e){var n=this.shape;return n||(n=this.shape={}),"string"==typeof t?n[t]=e:T(n,t),this.dirtyShape(),this},e.prototype.shapeChanged=function(){return!!(this.__dirty&e.SHAPE_CHANGED_BIT)},e.prototype.createStyle=function(t){return ht(Na,t)},e.prototype._innerSaveToNormal=function(e){t.prototype._innerSaveToNormal.call(this,e);var n=this._normalState;e.shape&&!n.shape&&(n.shape=T({},this.shape))},e.prototype._applyStateObj=function(e,n,i,r,o,a){t.prototype._applyStateObj.call(this,e,n,i,r,o,a);var s,l=!(n&&r);if(n&&n.shape?o?r?s=n.shape:(s=T({},i.shape),T(s,n.shape)):(s=T({},r?this.shape:i.shape),T(s,n.shape)):l&&(s=i.shape),s)if(o){this.shape=T({},this.shape);for(var u={},h=E(s),c=0;c<h.length;c++){var p=h[c];"object"==typeof s[p]?this.shape[p]=s[p]:u[p]=s[p]}this._transitionState(e,{shape:u},a)}else this.shape=s,this.dirtyShape()},e.prototype._mergeStates=function(e){for(var n,i=t.prototype._mergeStates.call(this,e),r=0;r<e.length;r++){var o=e[r];o.shape&&(n=n||{},this._mergeStyle(n,o.shape))}return n&&(i.shape=n),i},e.prototype.getAnimationStyleProps=function(){return Ea},e.prototype.isZeroArea=function(){return!1},e.extend=function(t){var n=function(e){function n(n){var i=e.call(this,n)||this;return t.init&&t.init.call(i,n),i}return gt(n,e),n.prototype.getDefaultStyle=function(){return w(t.style)},n.prototype.getDefaultShape=function(){return w(t.shape)},n}(e);for(var i in t)"function"==typeof t[i]&&(n.prototype[i]=t[i]);return n},e.SHAPE_CHANGED_BIT=4,e.initDefaultProps=((n=e.prototype).type="path",n.strokeContainThreshold=5,n.segmentIgnoreThreshold=0,n.subPixelOptimize=!1,n.autoBatch=!1,void(n.__dirty=Kn.REDARAW_BIT|ho.STYLE_CHANGED_BIT|e.SHAPE_CHANGED_BIT)),e}(ho),Va=C({strokeFirst:!0,font:Ln,x:0,y:0,textAlign:"left",textBaseline:"top",miterLimit:2},Na),Fa=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return gt(e,t),e.prototype.hasStroke=function(){var t=this.style,e=t.stroke;return null!=e&&"none"!==e&&t.lineWidth>0},e.prototype.hasFill=function(){var t=this.style.fill;return null!=t&&"none"!==t},e.prototype.createStyle=function(t){return ht(Va,t)},e.prototype.setBoundingRect=function(t){this._rect=t},e.prototype.getBoundingRect=function(){var t=this.style;if(!this._rect){var e=t.text;null!=e?e+="":e="";var n=Nn(e,t.font,t.textAlign,t.textBaseline);if(n.x+=t.x||0,n.y+=t.y||0,this.hasStroke()){var i=t.lineWidth;n.x-=i/2,n.y-=i/2,n.width+=i,n.height+=i}this._rect=n}return this._rect},e.initDefaultProps=void(e.prototype.dirtyRectTolerance=10),e}(ho);Fa.prototype.type="tspan";var Ha=C({x:0,y:0},so),Ga={style:C({x:!0,y:!0,width:!0,height:!0,sx:!0,sy:!0,sWidth:!0,sHeight:!0},lo.style)};var Wa=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return gt(e,t),e.prototype.createStyle=function(t){return ht(Ha,t)},e.prototype._getSize=function(t){var e=this.style,n=e[t];if(null!=n)return n;var i,r=(i=e.image)&&"string"!=typeof i&&i.width&&i.height?e.image:this.__image;if(!r)return 0;var o="width"===t?"height":"width",a=e[o];return null==a?r[t]:r[t]/r[o]*a},e.prototype.getWidth=function(){return this._getSize("width")},e.prototype.getHeight=function(){return this._getSize("height")},e.prototype.getAnimationStyleProps=function(){return Ga},e.prototype.getBoundingRect=function(){var t=this.style;return this._rect||(this._rect=new Dn(t.x||0,t.y||0,this.getWidth(),this.getHeight())),this._rect},e}(ho);Wa.prototype.type="image";var Ua=Math.round;function Ya(t,e,n){if(e){var i=e.x1,r=e.x2,o=e.y1,a=e.y2;t.x1=i,t.x2=r,t.y1=o,t.y2=a;var s=n&&n.lineWidth;return s?(Ua(2*i)===Ua(2*r)&&(t.x1=t.x2=Za(i,s,!0)),Ua(2*o)===Ua(2*a)&&(t.y1=t.y2=Za(o,s,!0)),t):t}}function Xa(t,e,n){if(e){var i=e.x,r=e.y,o=e.width,a=e.height;t.x=i,t.y=r,t.width=o,t.height=a;var s=n&&n.lineWidth;return s?(t.x=Za(i,s,!0),t.y=Za(r,s,!0),t.width=Math.max(Za(i+o,s,!1)-t.x,0===o?0:1),t.height=Math.max(Za(r+a,s,!1)-t.y,0===a?0:1),t):t}}function Za(t,e,n){if(!e)return t;var i=Ua(2*t);return(i+Ua(e))%2==0?i/2:(i+(n?1:-1))/2}var ja=function(){this.x=0,this.y=0,this.width=0,this.height=0},qa={},Ka=function(t){function e(e){return t.call(this,e)||this}return gt(e,t),e.prototype.getDefaultShape=function(){return new ja},e.prototype.buildPath=function(t,e){var n,i,r,o;if(this.subPixelOptimize){var a=Xa(qa,e,this.style);n=a.x,i=a.y,r=a.width,o=a.height,a.r=e.r,e=a}else n=e.x,i=e.y,r=e.width,o=e.height;e.r?function(t,e){var n,i,r,o,a,s=e.x,l=e.y,u=e.width,h=e.height,c=e.r;u<0&&(s+=u,u=-u),h<0&&(l+=h,h=-h),"number"==typeof c?n=i=r=o=c:c instanceof Array?1===c.length?n=i=r=o=c[0]:2===c.length?(n=r=c[0],i=o=c[1]):3===c.length?(n=c[0],i=o=c[1],r=c[2]):(n=c[0],i=c[1],r=c[2],o=c[3]):n=i=r=o=0,n+i>u&&(n*=u/(a=n+i),i*=u/a),r+o>u&&(r*=u/(a=r+o),o*=u/a),i+r>h&&(i*=h/(a=i+r),r*=h/a),n+o>h&&(n*=h/(a=n+o),o*=h/a),t.moveTo(s+n,l),t.lineTo(s+u-i,l),0!==i&&t.arc(s+u-i,l+i,i,-Math.PI/2,0),t.lineTo(s+u,l+h-r),0!==r&&t.arc(s+u-r,l+h-r,r,0,Math.PI/2),t.lineTo(s+o,l+h),0!==o&&t.arc(s+o,l+h-o,o,Math.PI/2,Math.PI),t.lineTo(s,l+n),0!==n&&t.arc(s+n,l+n,n,Math.PI,1.5*Math.PI)}(t,e):t.rect(n,i,r,o)},e.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},e}(za);Ka.prototype.type="rect";var $a={fill:"#000"},Ja={style:C({fill:!0,stroke:!0,fillOpacity:!0,strokeOpacity:!0,lineWidth:!0,fontSize:!0,lineHeight:!0,width:!0,height:!0,textShadowColor:!0,textShadowBlur:!0,textShadowOffsetX:!0,textShadowOffsetY:!0,backgroundColor:!0,padding:!0,borderColor:!0,borderWidth:!0,borderRadius:!0},lo.style)},Qa=function(t){function e(e){var n=t.call(this)||this;return n.type="text",n._children=[],n._defaultStyle=$a,n.attr(e),n}return gt(e,t),e.prototype.childrenRef=function(){return this._children},e.prototype.update=function(){this.styleChanged()&&this._updateSubTexts();for(var e=0;e<this._children.length;e++){var n=this._children[e];n.zlevel=this.zlevel,n.z=this.z,n.z2=this.z2,n.culling=this.culling,n.cursor=this.cursor,n.invisible=this.invisible}var i=this.attachedTransform;if(i){i.updateTransform();var r=i.transform;r?(this.transform=this.transform||[],de(this.transform,r)):this.transform=null}else t.prototype.update.call(this)},e.prototype.getComputedTransform=function(){return this.__hostTarget&&(this.__hostTarget.getComputedTransform(),this.__hostTarget.updateInnerText(!0)),this.attachedTransform?this.attachedTransform.getComputedTransform():t.prototype.getComputedTransform.call(this)},e.prototype._updateSubTexts=function(){var t;this._childCursor=0,ns(t=this.style),P(t.rich,ns),this.style.rich?this._updateRichTexts():this._updatePlainTexts(),this._children.length=this._childCursor,this.styleUpdated()},e.prototype.addSelfToZr=function(e){t.prototype.addSelfToZr.call(this,e);for(var n=0;n<this._children.length;n++)this._children[n].__zr=e},e.prototype.removeSelfFromZr=function(e){t.prototype.removeSelfFromZr.call(this,e);for(var n=0;n<this._children.length;n++)this._children[n].__zr=null},e.prototype.getBoundingRect=function(){if(this.styleChanged()&&this._updateSubTexts(),!this._rect){for(var t=new Dn(0,0,0,0),e=this._children,n=[],i=null,r=0;r<e.length;r++){var o=e[r],a=o.getBoundingRect(),s=o.getLocalTransform(n);s?(t.copy(a),t.applyTransform(s),(i=i||t.clone()).union(t)):(i=i||a.clone()).union(a)}this._rect=i||t}return this._rect},e.prototype.setDefaultTextStyle=function(t){this._defaultStyle=t||$a},e.prototype.setTextContent=function(t){throw new Error("Can't attach text on another text")},e.prototype._mergeStyle=function(t,e){if(!e)return t;var n=e.rich,i=t.rich||n&&{};return T(t,e),n&&i?(this._mergeRich(i,n),t.rich=i):i&&(t.rich=i),t},e.prototype._mergeRich=function(t,e){for(var n=E(e),i=0;i<n.length;i++){var r=n[i];t[r]=t[r]||{},T(t[r],e[r])}},e.prototype.getAnimationStyleProps=function(){return Ja},e.prototype._getOrCreateChild=function(t){var e=this._children[this._childCursor];return e&&e instanceof t||(e=new t),this._children[this._childCursor++]=e,e.__zr=this.__zr,e.parent=this,e},e.prototype._updatePlainTexts=function(){var t=this.style,e=t.font||Ln,n=t.padding,i=function(t,e){null!=t&&(t+="");var n,i=e.overflow,r=e.padding,o=e.font,a="truncate"===i,s=zn(o),l=Q(e.lineHeight,s),u="truncate"===e.lineOverflow,h=e.width,c=(n=null!=h&&"break"===i||"breakAll"===i?t?oo(t,e.font,h,"breakAll"===i,0).lines:[]:t?t.split("\n"):[]).length*l,p=Q(e.height,c);if(c>p&&u){var d=Math.floor(p/l);n=n.slice(0,d)}var f=p,g=h;if(r&&(f+=r[0]+r[2],null!=g&&(g+=r[1]+r[3])),t&&a&&null!=g)for(var y=Kr(h,o,e.ellipsis,{minChar:e.truncateMinChar,placeholder:e.placeholder}),v=0;v<n.length;v++)n[v]=$r(n[v],y);if(null==h){var m=0;for(v=0;v<n.length;v++)m=Math.max(On(n[v],o),m);h=m}return{lines:n,height:p,outerHeight:f,lineHeight:l,calculatedLineHeight:s,contentHeight:c,width:h}}(os(t),t),r=as(t),o=!!t.backgroundColor,a=i.outerHeight,s=i.lines,l=i.lineHeight,u=this._defaultStyle,h=t.x||0,c=t.y||0,p=t.align||u.align||"left",d=t.verticalAlign||u.verticalAlign||"top",f=h,g=Bn(c,i.contentHeight,d);if(r||n){var y=i.width;n&&(y+=n[1]+n[3]);var v=En(h,y,p),m=Bn(c,a,d);r&&this._renderBackground(t,t,v,m,y,a)}g+=l/2,n&&(f=rs(h,p,n),"top"===d?g+=n[0]:"bottom"===d&&(g-=n[2]));for(var _,x=0,b=!1,w=(null==(_="fill"in t?t.fill:(b=!0,u.fill))||"none"===_?null:_.image||_.colorStops?"#000":_),S=(is("stroke"in t?t.stroke:o||u.autoStroke&&!b?null:(x=2,u.stroke))),M=t.textShadowBlur>0,T=null!=t.width&&("truncate"===t.overflow||"break"===t.overflow||"breakAll"===t.overflow),C=i.calculatedLineHeight,I=0;I<s.length;I++){var A=this._getOrCreateChild(Fa),D=A.createStyle();A.useStyle(D),D.text=s[I],D.x=f,D.y=g,p&&(D.textAlign=p),D.textBaseline="middle",D.opacity=t.opacity,D.strokeFirst=!0,M&&(D.shadowBlur=t.textShadowBlur||0,D.shadowColor=t.textShadowColor||"transparent",D.shadowOffsetX=t.textShadowOffsetX||0,D.shadowOffsetY=t.textShadowOffsetY||0),S&&(D.stroke=S,D.lineWidth=t.lineWidth||x,D.lineDash=t.lineDash,D.lineDashOffset=t.lineDashOffset||0),w&&(D.fill=w),D.font=e,g+=l,T&&A.setBoundingRect(new Dn(En(D.x,t.width,D.textAlign),Bn(D.y,C,D.textBaseline),t.width,C))}},e.prototype._updateRichTexts=function(){var t=this.style,e=function(t,e){var n=new eo;if(null!=t&&(t+=""),!t)return n;for(var i,r=e.width,o=e.height,a=e.overflow,s="break"!==a&&"breakAll"!==a||null==r?null:{width:r,accumWidth:0,breakAll:"breakAll"===a},l=jr.lastIndex=0;null!=(i=jr.exec(t));){var u=i.index;u>l&&no(n,t.substring(l,u),e,s),no(n,i[2],e,s,i[1]),l=jr.lastIndex}l<t.length&&no(n,t.substring(l,t.length),e,s);var h=[],c=0,p=0,d=e.padding,f="truncate"===a,g="truncate"===e.lineOverflow;function y(t,e,n){t.width=e,t.lineHeight=n,c+=n,p=Math.max(p,e)}t:for(var v=0;v<n.lines.length;v++){for(var m=n.lines[v],_=0,x=0,b=0;b<m.tokens.length;b++){var w=(P=m.tokens[b]).styleName&&e.rich[P.styleName]||{},S=P.textPadding=w.padding,M=S?S[1]+S[3]:0,T=P.font=w.font||e.font;P.contentHeight=zn(T);var C=Q(w.height,P.contentHeight);if(P.innerHeight=C,S&&(C+=S[0]+S[2]),P.height=C,P.lineHeight=tt(w.lineHeight,e.lineHeight,C),P.align=w&&w.align||e.align,P.verticalAlign=w&&w.verticalAlign||"middle",g&&null!=o&&c+P.lineHeight>o){b>0?(m.tokens=m.tokens.slice(0,b),y(m,x,_),n.lines=n.lines.slice(0,v+1)):n.lines=n.lines.slice(0,v);break t}var I=w.width,A=null==I||"auto"===I;if("string"==typeof I&&"%"===I.charAt(I.length-1))P.percentWidth=I,h.push(P),P.contentWidth=On(P.text,T);else{if(A){var D=w.backgroundColor,k=D&&D.image;k&&Zr(k=Ur(k))&&(P.width=Math.max(P.width,k.width*C/k.height))}var L=f&&null!=r?r-x:null;null!=L&&L<P.width?!A||L<M?(P.text="",P.width=P.contentWidth=0):(P.text=qr(P.text,L-M,T,e.ellipsis,{minChar:e.truncateMinChar}),P.width=P.contentWidth=On(P.text,T)):P.contentWidth=On(P.text,T)}P.width+=M,x+=P.width,w&&(_=Math.max(_,P.lineHeight))}y(m,x,_)}for(n.outerWidth=n.width=Q(r,p),n.outerHeight=n.height=Q(o,c),n.contentHeight=c,n.contentWidth=p,d&&(n.outerWidth+=d[1]+d[3],n.outerHeight+=d[0]+d[2]),v=0;v<h.length;v++){var P,O=(P=h[v]).percentWidth;P.width=parseInt(O,10)/100*n.width}return n}(os(t),t),n=e.width,i=e.outerWidth,r=e.outerHeight,o=t.padding,a=t.x||0,s=t.y||0,l=this._defaultStyle,u=t.align||l.align,h=t.verticalAlign||l.verticalAlign,c=En(a,i,u),p=Bn(s,r,h),d=c,f=p;o&&(d+=o[3],f+=o[0]);var g=d+n;as(t)&&this._renderBackground(t,t,c,p,i,r);for(var y=!!t.backgroundColor,v=0;v<e.lines.length;v++){for(var m=e.lines[v],_=m.tokens,x=_.length,b=m.lineHeight,w=m.width,S=0,M=d,T=g,C=x-1,I=void 0;S<x&&(!(I=_[S]).align||"left"===I.align);)this._placeToken(I,t,b,f,M,"left",y),w-=I.width,M+=I.width,S++;for(;C>=0&&"right"===(I=_[C]).align;)this._placeToken(I,t,b,f,T,"right",y),w-=I.width,T-=I.width,C--;for(M+=(n-(M-d)-(g-T)-w)/2;S<=C;)I=_[S],this._placeToken(I,t,b,f,M+I.width/2,"center",y),M+=I.width,S++;f+=b}},e.prototype._placeToken=function(t,e,n,i,r,o,a){var s=e.rich[t.styleName]||{};s.text=t.text;var l=t.verticalAlign,u=i+n/2;"top"===l?u=i+t.height/2:"bottom"===l&&(u=i+n-t.height/2),!t.isLineHolder&&as(s)&&this._renderBackground(s,e,"right"===o?r-t.width:"center"===o?r-t.width/2:r,u-t.height/2,t.width,t.height);var h=!!s.backgroundColor,c=t.textPadding;c&&(r=rs(r,o,c),u-=t.height/2-c[0]-t.innerHeight/2);var p=this._getOrCreateChild(Fa),d=p.createStyle();p.useStyle(d);var f=this._defaultStyle,g=!1,y=0,v=is("fill"in s?s.fill:"fill"in e?e.fill:(g=!0,f.fill)),m=is("stroke"in s?s.stroke:"stroke"in e?e.stroke:h||a||f.autoStroke&&!g?null:(y=2,f.stroke)),_=s.textShadowBlur>0||e.textShadowBlur>0;d.text=t.text,d.x=r,d.y=u,_&&(d.shadowBlur=s.textShadowBlur||e.textShadowBlur||0,d.shadowColor=s.textShadowColor||e.textShadowColor||"transparent",d.shadowOffsetX=s.textShadowOffsetX||e.textShadowOffsetX||0,d.shadowOffsetY=s.textShadowOffsetY||e.textShadowOffsetY||0),d.textAlign=o,d.textBaseline="middle",d.font=t.font||Ln,d.opacity=tt(s.opacity,e.opacity,1),m&&(d.lineWidth=tt(s.lineWidth,e.lineWidth,y),d.lineDash=Q(s.lineDash,e.lineDash),d.lineDashOffset=e.lineDashOffset||0,d.stroke=m),v&&(d.fill=v);var x=t.contentWidth,b=t.contentHeight;p.setBoundingRect(new Dn(En(d.x,x,d.textAlign),Bn(d.y,b,d.textBaseline),x,b))},e.prototype._renderBackground=function(t,e,n,i,r,o){var a,s,l,u=t.backgroundColor,h=t.borderWidth,c=t.borderColor,p=H(u),d=t.borderRadius,f=this;if(p||h&&c){(a=this._getOrCreateChild(Ka)).useStyle(a.createStyle()),a.style.fill=null;var g=a.shape;g.x=n,g.y=i,g.width=r,g.height=o,g.r=d,a.dirtyShape()}if(p)(l=a.style).fill=u||null,l.fillOpacity=Q(t.fillOpacity,1);else if(u&&u.image){(s=this._getOrCreateChild(Wa)).onload=function(){f.dirtyStyle()};var y=s.style;y.image=u.image,y.x=n,y.y=i,y.width=r,y.height=o}h&&c&&((l=a.style).lineWidth=h,l.stroke=c,l.strokeOpacity=Q(t.strokeOpacity,1),l.lineDash=t.borderDash,l.lineDashOffset=t.borderDashOffset||0,a.strokeContainThreshold=0,a.hasFill()&&a.hasStroke()&&(l.strokeFirst=!0,l.lineWidth*=2));var v=(a||s).style;v.shadowBlur=t.shadowBlur||0,v.shadowColor=t.shadowColor||"transparent",v.shadowOffsetX=t.shadowOffsetX||0,v.shadowOffsetY=t.shadowOffsetY||0,v.opacity=tt(t.opacity,e.opacity,1)},e.makeFont=function(t){var e="";if(t.fontSize||t.fontFamily||t.fontWeight){var n="";n="string"!=typeof t.fontSize||-1===t.fontSize.indexOf("px")&&-1===t.fontSize.indexOf("rem")&&-1===t.fontSize.indexOf("em")?isNaN(+t.fontSize)?"12px":t.fontSize+"px":t.fontSize,e=[t.fontStyle,t.fontWeight,n,t.fontFamily||"sans-serif"].join(" ")}return e&&rt(e)||t.textFont||t.font},e}(ho),ts={left:!0,right:1,center:1},es={top:1,bottom:1,middle:1};function ns(t){if(t){t.font=Qa.makeFont(t);var e=t.align;"middle"===e&&(e="center"),t.align=null==e||ts[e]?e:"left";var n=t.verticalAlign;"center"===n&&(n="middle"),t.verticalAlign=null==n||es[n]?n:"top",t.padding&&(t.padding=nt(t.padding))}}function is(t,e){return null==t||e<=0||"transparent"===t||"none"===t?null:t.image||t.colorStops?"#000":t}function rs(t,e,n){return"right"===e?t-n[1]:"center"===e?t+n[3]/2-n[1]/2:t+n[3]}function os(t){var e=t.text;return null!=e&&(e+=""),e}function as(t){return!!(t.backgroundColor||t.borderWidth&&t.borderColor)}var ss=wr(),ls=1,us={},hs=wr(),cs=["emphasis","blur","select"],ps=["normal","emphasis","blur","select"],ds="highlight",fs="downplay",gs="select",ys="unselect",vs="toggleSelect";function ms(t){return null!=t&&"none"!==t}var _s=new Pe(100);function xs(t){if("string"!=typeof t)return t;var e=_s.get(t);return e||(e=Ze(t,-.1),_s.put(t,e)),e}function bs(t,e,n){t.onHoverStateChange&&(t.hoverState||0)!==n&&t.onHoverStateChange(e),t.hoverState=n}function ws(t){bs(t,"emphasis",2)}function Ss(t){2===t.hoverState&&bs(t,"normal",0)}function Ms(t){bs(t,"blur",1)}function Ts(t){1===t.hoverState&&bs(t,"normal",0)}function Cs(t){t.selected=!0}function Is(t){t.selected=!1}function As(t,e,n){e(t,n)}function Ds(t,e,n){As(t,e,n),t.isGroup&&t.traverse((function(t){As(t,e,n)}))}function ks(t,e){switch(e){case"emphasis":t.hoverState=2;break;case"normal":t.hoverState=0;break;case"blur":t.hoverState=1;break;case"select":t.selected=!0}}function Ls(t,e){var n=this.states[t];if(this.style){if("emphasis"===t)return function(t,e,n,i){var r=n&&A(n,"select")>=0,o=!1;if(t instanceof za){var a=hs(t),s=r&&a.selectFill||a.normalFill,l=r&&a.selectStroke||a.normalStroke;if(ms(s)||ms(l)){var u=(i=i||{}).style||{};!ms(u.fill)&&ms(s)?(o=!0,i=T({},i),(u=T({},u)).fill=xs(s)):!ms(u.stroke)&&ms(l)&&(o||(i=T({},i),u=T({},u)),u.stroke=xs(l)),i.style=u}}if(i&&null==i.z2){o||(i=T({},i));var h=t.z2EmphasisLift;i.z2=t.z2+(null!=h?h:10)}return i}(this,0,e,n);if("blur"===t)return function(t,e,n){var i=A(t.currentStates,e)>=0,r=t.style.opacity,o=i?null:function(t,e,n,i){for(var r=t.style,o={},a=0;a<e.length;a++){var s=e[a],l=r[s];o[s]=null==l?i&&i[s]:l}for(a=0;a<t.animators.length;a++){var u=t.animators[a];u.__fromStateTransition&&u.__fromStateTransition.indexOf(n)<0&&"style"===u.targetName&&u.saveFinalToTarget(o,e)}return o}(t,["opacity"],e,{opacity:1}),a=(n=n||{}).style||{};return null==a.opacity&&(n=T({},n),a=T({opacity:i?r:.1*o.opacity},a),n.style=a),n}(this,t,n);if("select"===t)return function(t,e,n){if(n&&null==n.z2){n=T({},n);var i=t.z2SelectLift;n.z2=t.z2+(null!=i?i:9)}return n}(this,0,n)}return n}function Ps(t){t.stateProxy=Ls;var e=t.getTextContent(),n=t.getTextGuideLine();e&&(e.stateProxy=Ls),n&&(n.stateProxy=Ls)}function Os(t,e){t.__highByOuter|=1<<(e||0),Ds(t,ws)}function Rs(t,e){!(t.__highByOuter&=~(1<<(e||0)))&&Ds(t,Ss)}function Ns(t){Ds(t,Ms)}function Es(t){Ds(t,Ts)}function Bs(t){Ds(t,Cs)}function zs(t){Ds(t,Is)}function Vs(t,e){return t.__highDownSilentOnTouch&&e.zrByTouch}function Fs(t,e,n,i,r){var o=i.getModel();function a(t,e){for(var n=0;n<e.length;n++){var i=t.getItemGraphicEl(e[n]);i&&Es(i)}}if(n=n||"coordinateSystem",r){if(null!=t&&e&&"none"!==e){var s=o.getSeriesByIndex(t),l=s.coordinateSystem;l&&l.master&&(l=l.master);var u=[];o.eachSeries((function(t){var r=s===t,o=t.coordinateSystem;if(o&&o.master&&(o=o.master),!("series"===n&&!r||"coordinateSystem"===n&&!(o&&l?o===l:r)||"series"===e&&r)){if(i.getViewOfSeriesModel(t).group.traverse((function(t){Ms(t)})),L(e))a(t.getData(),e);else if(U(e))for(var h=E(e),c=0;c<h.length;c++)a(t.getData(h[c]),e[h[c]]);u.push(t)}})),o.eachComponent((function(t,e){if("series"!==t){var n=i.getViewOfComponentModel(e);n&&n.blurSeries&&n.blurSeries(u,o)}}))}}else!function(t){t.getModel().eachComponent((function(e,n){("series"===e?t.getViewOfSeriesModel(n):t.getViewOfComponentModel(n)).group.traverse((function(t){Ts(t)}))}))}(i)}function Hs(t){P(t.getAllData(),(function(e){var n=e.data,i=e.type;n.eachItemGraphicEl((function(e,n){t.isSelected(n,i)?Bs(e):zs(e)}))}))}function Gs(t){var e=[];return t.eachSeries((function(t){P(t.getAllData(),(function(n){n.data;var i=n.type,r=t.getSelectedDataIndices();if(r.length>0){var o={dataIndex:r,seriesIndex:t.seriesIndex};null!=i&&(o.dataType=i),e.push(o)}}))})),e}function Ws(t,e,n){!function(t,e){var n=!1===e,i=t;t.highDownSilentOnTouch&&(i.__highDownSilentOnTouch=t.highDownSilentOnTouch);n&&!i.__highDownDispatcher||(i.__highByOuter=i.__highByOuter||0,i.__highDownDispatcher=!n)}(t,!0),Ds(t,Ps),function(t,e,n){var i=ss(t);null!=e?(i.focus=e,i.blurScope=n):i.focus&&(i.focus=null)}(t,e,n)}var Us=["emphasis","blur","select"],Ys={itemStyle:"getItemStyle",lineStyle:"getLineStyle",areaStyle:"getAreaStyle"};function Xs(t,e,n,i){n=n||"itemStyle";for(var r=0;r<Us.length;r++){var o=Us[r],a=e.getModel([o,n]);t.ensureState(o).style=i?i(a):a[Ys[n]]()}}function Zs(t){return!(!t||!t.__highDownDispatcher)}function js(t){var e=t.type;return e===gs||e===ys||e===vs}function qs(t){var e=t.type;return e===ds||e===fs}var Ks=ma.CMD,$s=[[],[],[]],Js=Math.sqrt,Qs=Math.atan2;var tl=Math.sqrt,el=Math.sin,nl=Math.cos,il=Math.PI;function rl(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function ol(t,e){return(t[0]*e[0]+t[1]*e[1])/(rl(t)*rl(e))}function al(t,e){return(t[0]*e[1]<t[1]*e[0]?-1:1)*Math.acos(ol(t,e))}function sl(t,e,n,i,r,o,a,s,l,u,h){var c=l*(il/180),p=nl(c)*(t-n)/2+el(c)*(e-i)/2,d=-1*el(c)*(t-n)/2+nl(c)*(e-i)/2,f=p*p/(a*a)+d*d/(s*s);f>1&&(a*=tl(f),s*=tl(f));var g=(r===o?-1:1)*tl((a*a*(s*s)-a*a*(d*d)-s*s*(p*p))/(a*a*(d*d)+s*s*(p*p)))||0,y=g*a*d/s,v=g*-s*p/a,m=(t+n)/2+nl(c)*y-el(c)*v,_=(e+i)/2+el(c)*y+nl(c)*v,x=al([1,0],[(p-y)/a,(d-v)/s]),b=[(p-y)/a,(d-v)/s],w=[(-1*p-y)/a,(-1*d-v)/s],S=al(b,w);if(ol(b,w)<=-1&&(S=il),ol(b,w)>=1&&(S=0),S<0){var M=Math.round(S/il*1e6)/1e6;S=2*il+M%2*il}h.addData(u,m,_,a,s,x,S,c,o)}var ll=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/gi,ul=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;var hl=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return gt(e,t),e.prototype.applyTransform=function(t){},e}(za);function cl(t){return null!=t.setData}function pl(t,e){var n=function(t){var e=new ma;if(!t)return e;var n,i=0,r=0,o=i,a=r,s=ma.CMD,l=t.match(ll);if(!l)return e;for(var u=0;u<l.length;u++){for(var h=l[u],c=h.charAt(0),p=void 0,d=h.match(ul)||[],f=d.length,g=0;g<f;g++)d[g]=parseFloat(d[g]);for(var y=0;y<f;){var v=void 0,m=void 0,_=void 0,x=void 0,b=void 0,w=void 0,S=void 0,M=i,T=r,C=void 0,I=void 0;switch(c){case"l":i+=d[y++],r+=d[y++],p=s.L,e.addData(p,i,r);break;case"L":i=d[y++],r=d[y++],p=s.L,e.addData(p,i,r);break;case"m":i+=d[y++],r+=d[y++],p=s.M,e.addData(p,i,r),o=i,a=r,c="l";break;case"M":i=d[y++],r=d[y++],p=s.M,e.addData(p,i,r),o=i,a=r,c="L";break;case"h":i+=d[y++],p=s.L,e.addData(p,i,r);break;case"H":i=d[y++],p=s.L,e.addData(p,i,r);break;case"v":r+=d[y++],p=s.L,e.addData(p,i,r);break;case"V":r=d[y++],p=s.L,e.addData(p,i,r);break;case"C":p=s.C,e.addData(p,d[y++],d[y++],d[y++],d[y++],d[y++],d[y++]),i=d[y-2],r=d[y-1];break;case"c":p=s.C,e.addData(p,d[y++]+i,d[y++]+r,d[y++]+i,d[y++]+r,d[y++]+i,d[y++]+r),i+=d[y-2],r+=d[y-1];break;case"S":v=i,m=r,C=e.len(),I=e.data,n===s.C&&(v+=i-I[C-4],m+=r-I[C-3]),p=s.C,M=d[y++],T=d[y++],i=d[y++],r=d[y++],e.addData(p,v,m,M,T,i,r);break;case"s":v=i,m=r,C=e.len(),I=e.data,n===s.C&&(v+=i-I[C-4],m+=r-I[C-3]),p=s.C,M=i+d[y++],T=r+d[y++],i+=d[y++],r+=d[y++],e.addData(p,v,m,M,T,i,r);break;case"Q":M=d[y++],T=d[y++],i=d[y++],r=d[y++],p=s.Q,e.addData(p,M,T,i,r);break;case"q":M=d[y++]+i,T=d[y++]+r,i+=d[y++],r+=d[y++],p=s.Q,e.addData(p,M,T,i,r);break;case"T":v=i,m=r,C=e.len(),I=e.data,n===s.Q&&(v+=i-I[C-4],m+=r-I[C-3]),i=d[y++],r=d[y++],p=s.Q,e.addData(p,v,m,i,r);break;case"t":v=i,m=r,C=e.len(),I=e.data,n===s.Q&&(v+=i-I[C-4],m+=r-I[C-3]),i+=d[y++],r+=d[y++],p=s.Q,e.addData(p,v,m,i,r);break;case"A":_=d[y++],x=d[y++],b=d[y++],w=d[y++],S=d[y++],sl(M=i,T=r,i=d[y++],r=d[y++],w,S,_,x,b,p=s.A,e);break;case"a":_=d[y++],x=d[y++],b=d[y++],w=d[y++],S=d[y++],sl(M=i,T=r,i+=d[y++],r+=d[y++],w,S,_,x,b,p=s.A,e)}}"z"!==c&&"Z"!==c||(p=s.Z,e.addData(p),i=o,r=a),n=p}return e.toStatic(),e}(t),i=T({},e);return i.buildPath=function(t){if(cl(t)){t.setData(n.data),(e=t.getContext())&&t.rebuildPath(e,1)}else{var e=t;n.rebuildPath(e,1)}},i.applyTransform=function(t){!function(t,e){var n,i,r,o,a,s,l=t.data,u=t.len(),h=Ks.M,c=Ks.C,p=Ks.L,d=Ks.R,f=Ks.A,g=Ks.Q;for(r=0,o=0;r<u;){switch(n=l[r++],o=r,i=0,n){case h:case p:i=1;break;case c:i=3;break;case g:i=2;break;case f:var y=e[4],v=e[5],m=Js(e[0]*e[0]+e[1]*e[1]),_=Js(e[2]*e[2]+e[3]*e[3]),x=Qs(-e[1]/_,e[0]/m);l[r]*=m,l[r++]+=y,l[r]*=_,l[r++]+=v,l[r++]*=m,l[r++]*=_,l[r++]+=x,l[r++]+=x,o=r+=2;break;case d:s[0]=l[r++],s[1]=l[r++],Lt(s,s,e),l[o++]=s[0],l[o++]=s[1],s[0]+=l[r++],s[1]+=l[r++],Lt(s,s,e),l[o++]=s[0],l[o++]=s[1]}for(a=0;a<i;a++){var b=$s[a];b[0]=l[r++],b[1]=l[r++],Lt(b,b,e),l[o++]=b[0],l[o++]=b[1]}}t.increaseVersion()}(n,t),this.dirtyShape()},i}var dl=function(){this.cx=0,this.cy=0,this.r=0},fl=function(t){function e(e){return t.call(this,e)||this}return gt(e,t),e.prototype.getDefaultShape=function(){return new dl},e.prototype.buildPath=function(t,e,n){n&&t.moveTo(e.cx+e.r,e.cy),t.arc(e.cx,e.cy,e.r,0,2*Math.PI)},e}(za);fl.prototype.type="circle";var gl=function(){this.cx=0,this.cy=0,this.rx=0,this.ry=0},yl=function(t){function e(e){return t.call(this,e)||this}return gt(e,t),e.prototype.getDefaultShape=function(){return new gl},e.prototype.buildPath=function(t,e){var n=.5522848,i=e.cx,r=e.cy,o=e.rx,a=e.ry,s=o*n,l=a*n;t.moveTo(i-o,r),t.bezierCurveTo(i-o,r-l,i-s,r-a,i,r-a),t.bezierCurveTo(i+s,r-a,i+o,r-l,i+o,r),t.bezierCurveTo(i+o,r+l,i+s,r+a,i,r+a),t.bezierCurveTo(i-s,r+a,i-o,r+l,i-o,r),t.closePath()},e}(za);yl.prototype.type="ellipse";var vl=Math.PI,ml=2*vl,_l=Math.sin,xl=Math.cos,bl=Math.acos,wl=Math.atan2,Sl=Math.abs,Ml=Math.sqrt,Tl=Math.max,Cl=Math.min,Il=1e-4;function Al(t,e,n,i,r,o,a){var s=t-n,l=e-i,u=(a?o:-o)/Ml(s*s+l*l),h=u*l,c=-u*s,p=t+h,d=e+c,f=n+h,g=i+c,y=(p+f)/2,v=(d+g)/2,m=f-p,_=g-d,x=m*m+_*_,b=r-o,w=p*g-f*d,S=(_<0?-1:1)*Ml(Tl(0,b*b*x-w*w)),M=(w*_-m*S)/x,T=(-w*m-_*S)/x,C=(w*_+m*S)/x,I=(-w*m+_*S)/x,A=M-y,D=T-v,k=C-y,L=I-v;return A*A+D*D>k*k+L*L&&(M=C,T=I),{cx:M,cy:T,x01:-h,y01:-c,x11:M*(r/b-1),y11:T*(r/b-1)}}function Dl(t,e){var n=Tl(e.r,0),i=Tl(e.r0||0,0),r=n>0;if(r||i>0){if(r||(n=i,i=0),i>n){var o=n;n=i,i=o}var a=!!e.clockwise,s=e.startAngle,l=e.endAngle,u=[s,l];va(u,!a);var h=Sl(u[0]-u[1]),c=e.cx,p=e.cy,d=e.cornerRadius||0,f=e.innerCornerRadius||0;if(n>Il)if(h>ml-Il)t.moveTo(c+n*xl(s),p+n*_l(s)),t.arc(c,p,n,s,l,!a),i>Il&&(t.moveTo(c+i*xl(l),p+i*_l(l)),t.arc(c,p,i,l,s,a));else{var g=Sl(n-i)/2,y=Cl(g,d),v=Cl(g,f),m=v,_=y,x=n*xl(s),b=n*_l(s),w=i*xl(l),S=i*_l(l),M=void 0,T=void 0,C=void 0,I=void 0;if((y>Il||v>Il)&&(M=n*xl(l),T=n*_l(l),C=i*xl(s),I=i*_l(s),h<vl)){var A=function(t,e,n,i,r,o,a,s){var l=n-t,u=i-e,h=a-r,c=s-o,p=c*l-h*u;if(!(p*p<Il))return[t+(p=(h*(e-o)-c*(t-r))/p)*l,e+p*u]}(x,b,C,I,M,T,w,S);if(A){var D=x-A[0],k=b-A[1],L=M-A[0],P=T-A[1],O=1/_l(bl((D*L+k*P)/(Ml(D*D+k*k)*Ml(L*L+P*P)))/2),R=Ml(A[0]*A[0]+A[1]*A[1]);m=Cl(v,(i-R)/(O-1)),_=Cl(y,(n-R)/(O+1))}}if(h>Il)if(_>Il){var N=Al(C,I,x,b,n,_,a),E=Al(M,T,w,S,n,_,a);t.moveTo(c+N.cx+N.x01,p+N.cy+N.y01),_<y?t.arc(c+N.cx,p+N.cy,_,wl(N.y01,N.x01),wl(E.y01,E.x01),!a):(t.arc(c+N.cx,p+N.cy,_,wl(N.y01,N.x01),wl(N.y11,N.x11),!a),t.arc(c,p,n,wl(N.cy+N.y11,N.cx+N.x11),wl(E.cy+E.y11,E.cx+E.x11),!a),t.arc(c+E.cx,p+E.cy,_,wl(E.y11,E.x11),wl(E.y01,E.x01),!a))}else t.moveTo(c+x,p+b),t.arc(c,p,n,s,l,!a);else t.moveTo(c+x,p+b);if(i>Il&&h>Il)if(m>Il){N=Al(w,S,M,T,i,-m,a),E=Al(x,b,C,I,i,-m,a);t.lineTo(c+N.cx+N.x01,p+N.cy+N.y01),m<v?t.arc(c+N.cx,p+N.cy,m,wl(N.y01,N.x01),wl(E.y01,E.x01),!a):(t.arc(c+N.cx,p+N.cy,m,wl(N.y01,N.x01),wl(N.y11,N.x11),!a),t.arc(c,p,i,wl(N.cy+N.y11,N.cx+N.x11),wl(E.cy+E.y11,E.cx+E.x11),a),t.arc(c+E.cx,p+E.cy,m,wl(E.y11,E.x11),wl(E.y01,E.x01),!a))}else t.lineTo(c+w,p+S),t.arc(c,p,i,l,s,a);else t.lineTo(c+w,p+S)}else t.moveTo(c,p);t.closePath()}}var kl=function(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0,this.cornerRadius=0,this.innerCornerRadius=0},Ll=function(t){function e(e){return t.call(this,e)||this}return gt(e,t),e.prototype.getDefaultShape=function(){return new kl},e.prototype.buildPath=function(t,e){Dl(t,e)},e.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},e}(za);Ll.prototype.type="sector";var Pl=function(){this.cx=0,this.cy=0,this.r=0,this.r0=0},Ol=function(t){function e(e){return t.call(this,e)||this}return gt(e,t),e.prototype.getDefaultShape=function(){return new Pl},e.prototype.buildPath=function(t,e){var n=e.cx,i=e.cy,r=2*Math.PI;t.moveTo(n+e.r,i),t.arc(n,i,e.r,0,r,!1),t.moveTo(n+e.r0,i),t.arc(n,i,e.r0,0,r,!0)},e}(za);function Rl(t,e,n,i,r,o,a){var s=.5*(n-t),l=.5*(i-e);return(2*(e-n)+s+l)*a+(-3*(e-n)-2*s-l)*o+s*r+e}function Nl(t,e,n){var i=e.smooth,r=e.points;if(r&&r.length>=2){if(i&&"spline"!==i){var o=function(t,e,n,i){var r,o,a,s,l=[],u=[],h=[],c=[];if(i){a=[1/0,1/0],s=[-1/0,-1/0];for(var p=0,d=t.length;p<d;p++)Pt(a,a,t[p]),Ot(s,s,t[p]);Pt(a,a,i[0]),Ot(s,s,i[1])}for(p=0,d=t.length;p<d;p++){var f=t[p];if(n)r=t[p?p-1:d-1],o=t[(p+1)%d];else{if(0===p||p===d-1){l.push(vt(t[p]));continue}r=t[p-1],o=t[p+1]}_t(u,o,r),Mt(u,u,e);var g=Ct(f,r),y=Ct(f,o),v=g+y;0!==v&&(g/=v,y/=v),Mt(h,u,-g),Mt(c,u,y);var m=mt([],f,h),_=mt([],f,c);i&&(Ot(m,m,a),Pt(m,m,s),Ot(_,_,a),Pt(_,_,s)),l.push(m),l.push(_)}return n&&l.push(l.shift()),l}(r,i,n,e.smoothConstraint);t.moveTo(r[0][0],r[0][1]);for(var a=r.length,s=0;s<(n?a:a-1);s++){var l=o[2*s],u=o[2*s+1],h=r[(s+1)%a];t.bezierCurveTo(l[0],l[1],u[0],u[1],h[0],h[1])}}else{"spline"===i&&(r=function(t,e){for(var n=t.length,i=[],r=0,o=1;o<n;o++)r+=Ct(t[o-1],t[o]);var a=r/2;for(a=a<n?n:a,o=0;o<a;o++){var s=o/(a-1)*(e?n:n-1),l=Math.floor(s),u=s-l,h=void 0,c=t[l%n],p=void 0,d=void 0;e?(h=t[(l-1+n)%n],p=t[(l+1)%n],d=t[(l+2)%n]):(h=t[0===l?l:l-1],p=t[l>n-2?n-1:l+1],d=t[l>n-3?n-1:l+2]);var f=u*u,g=u*f;i.push([Rl(h[0],c[0],p[0],d[0],u,f,g),Rl(h[1],c[1],p[1],d[1],u,f,g)])}return i}(r,n)),t.moveTo(r[0][0],r[0][1]);s=1;for(var c=r.length;s<c;s++)t.lineTo(r[s][0],r[s][1])}n&&t.closePath()}}Ol.prototype.type="ring";var El=function(){this.points=null,this.smooth=0,this.smoothConstraint=null},Bl=function(t){function e(e){return t.call(this,e)||this}return gt(e,t),e.prototype.getDefaultShape=function(){return new El},e.prototype.buildPath=function(t,e){Nl(t,e,!0)},e}(za);Bl.prototype.type="polygon";var zl=function(){this.points=null,this.percent=1,this.smooth=0,this.smoothConstraint=null},Vl=function(t){function e(e){return t.call(this,e)||this}return gt(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new zl},e.prototype.buildPath=function(t,e){Nl(t,e,!1)},e}(za);Vl.prototype.type="polyline";var Fl={},Hl=function(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.percent=1},Gl=function(t){function e(e){return t.call(this,e)||this}return gt(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new Hl},e.prototype.buildPath=function(t,e){var n,i,r,o;if(this.subPixelOptimize){var a=Ya(Fl,e,this.style);n=a.x1,i=a.y1,r=a.x2,o=a.y2}else n=e.x1,i=e.y1,r=e.x2,o=e.y2;var s=e.percent;0!==s&&(t.moveTo(n,i),s<1&&(r=n*(1-s)+r*s,o=i*(1-s)+o*s),t.lineTo(r,o))},e.prototype.pointAt=function(t){var e=this.shape;return[e.x1*(1-t)+e.x2*t,e.y1*(1-t)+e.y2*t]},e}(za);Gl.prototype.type="line";var Wl=[],Ul=function(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.cpx1=0,this.cpy1=0,this.percent=1};function Yl(t,e,n){var i=t.cpx2,r=t.cpy2;return null===i||null===r?[(n?Co:To)(t.x1,t.cpx1,t.cpx2,t.x2,e),(n?Co:To)(t.y1,t.cpy1,t.cpy2,t.y2,e)]:[(n?Oo:Po)(t.x1,t.cpx1,t.x2,e),(n?Oo:Po)(t.y1,t.cpy1,t.y2,e)]}var Xl=function(t){function e(e){return t.call(this,e)||this}return gt(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new Ul},e.prototype.buildPath=function(t,e){var n=e.x1,i=e.y1,r=e.x2,o=e.y2,a=e.cpx1,s=e.cpy1,l=e.cpx2,u=e.cpy2,h=e.percent;0!==h&&(t.moveTo(n,i),null==l||null==u?(h<1&&(No(n,a,r,h,Wl),a=Wl[1],r=Wl[2],No(i,s,o,h,Wl),s=Wl[1],o=Wl[2]),t.quadraticCurveTo(a,s,r,o)):(h<1&&(Do(n,a,l,r,h,Wl),a=Wl[1],l=Wl[2],r=Wl[3],Do(i,s,u,o,h,Wl),s=Wl[1],u=Wl[2],o=Wl[3]),t.bezierCurveTo(a,s,l,u,r,o)))},e.prototype.pointAt=function(t){return Yl(this.shape,t,!1)},e.prototype.tangentAt=function(t){var e=Yl(this.shape,t,!0);return Tt(e,e)},e}(za);Xl.prototype.type="bezier-curve";var Zl=function(){this.cx=0,this.cy=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0},jl=function(t){function e(e){return t.call(this,e)||this}return gt(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new Zl},e.prototype.buildPath=function(t,e){var n=e.cx,i=e.cy,r=Math.max(e.r,0),o=e.startAngle,a=e.endAngle,s=e.clockwise,l=Math.cos(o),u=Math.sin(o);t.moveTo(l*r+n,u*r+i),t.arc(n,i,r,o,a,!s)},e}(za);jl.prototype.type="arc";var ql=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="compound",e}return gt(e,t),e.prototype._updatePathDirty=function(){for(var t=this.shape.paths,e=this.shapeChanged(),n=0;n<t.length;n++)e=e||t[n].shapeChanged();e&&this.dirtyShape()},e.prototype.beforeBrush=function(){this._updatePathDirty();for(var t=this.shape.paths||[],e=this.getGlobalScale(),n=0;n<t.length;n++)t[n].path||t[n].createPathProxy(),t[n].path.setScale(e[0],e[1],t[n].segmentIgnoreThreshold)},e.prototype.buildPath=function(t,e){for(var n=e.paths||[],i=0;i<n.length;i++)n[i].buildPath(t,n[i].shape,!0)},e.prototype.afterBrush=function(){for(var t=this.shape.paths||[],e=0;e<t.length;e++)t[e].pathUpdated()},e.prototype.getBoundingRect=function(){return this._updatePathDirty.call(this),za.prototype.getBoundingRect.call(this)},e}(za),Kl=function(){function t(t){this.colorStops=t||[]}return t.prototype.addColorStop=function(t,e){this.colorStops.push({offset:t,color:e})},t}(),$l=function(t){function e(e,n,i,r,o,a){var s=t.call(this,o)||this;return s.x=null==e?0:e,s.y=null==n?0:n,s.x2=null==i?1:i,s.y2=null==r?0:r,s.type="linear",s.global=a||!1,s}return gt(e,t),e}(Kl),Jl=function(t){function e(e,n,i,r,o){var a=t.call(this,r)||this;return a.x=null==e?.5:e,a.y=null==n?.5:n,a.r=null==i?.5:i,a.type="radial",a.global=o||!1,a}return gt(e,t),e}(Kl),Ql=[0,0],tu=[0,0],eu=new xn,nu=new xn,iu=function(){function t(t,e){this._corners=[],this._axes=[],this._origin=[0,0];for(var n=0;n<4;n++)this._corners[n]=new xn;for(n=0;n<2;n++)this._axes[n]=new xn;t&&this.fromBoundingRect(t,e)}return t.prototype.fromBoundingRect=function(t,e){var n=this._corners,i=this._axes,r=t.x,o=t.y,a=r+t.width,s=o+t.height;if(n[0].set(r,o),n[1].set(a,o),n[2].set(a,s),n[3].set(r,s),e)for(var l=0;l<4;l++)n[l].transform(e);xn.sub(i[0],n[1],n[0]),xn.sub(i[1],n[3],n[0]),i[0].normalize(),i[1].normalize();for(l=0;l<2;l++)this._origin[l]=i[l].dot(n[0])},t.prototype.intersect=function(t,e){var n=!0,i=!e;return eu.set(1/0,1/0),nu.set(0,0),!this._intersectCheckOneSide(this,t,eu,nu,i,1)&&(n=!1,i)||!this._intersectCheckOneSide(t,this,eu,nu,i,-1)&&(n=!1,i)||i||xn.copy(e,n?eu:nu),n},t.prototype._intersectCheckOneSide=function(t,e,n,i,r,o){for(var a=!0,s=0;s<2;s++){var l=this._axes[s];if(this._getProjMinMaxOnAxis(s,t._corners,Ql),this._getProjMinMaxOnAxis(s,e._corners,tu),Ql[1]<tu[0]||Ql[0]>tu[1]){if(a=!1,r)return a;var u=Math.abs(tu[0]-Ql[1]),h=Math.abs(Ql[0]-tu[1]);Math.min(u,h)>i.len()&&(u<h?xn.scale(i,l,-u*o):xn.scale(i,l,h*o))}else if(n){u=Math.abs(tu[0]-Ql[1]),h=Math.abs(Ql[0]-tu[1]);Math.min(u,h)<n.len()&&(u<h?xn.scale(n,l,u*o):xn.scale(n,l,-h*o))}}return a},t.prototype._getProjMinMaxOnAxis=function(t,e,n){for(var i=this._axes[t],r=this._origin,o=e[0].dot(i)+r[t],a=o,s=o,l=1;l<e.length;l++){var u=e[l].dot(i)+r[t];a=Math.min(u,a),s=Math.max(u,s)}n[0]=a,n[1]=s},t}(),ru=[],ou=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.notClear=!0,e.incremental=!0,e._displayables=[],e._temporaryDisplayables=[],e._cursor=0,e}return gt(e,t),e.prototype.traverse=function(t,e){t.call(e,this)},e.prototype.useStyle=function(){this.style={}},e.prototype.getCursor=function(){return this._cursor},e.prototype.innerAfterBrush=function(){this._cursor=this._displayables.length},e.prototype.clearDisplaybles=function(){this._displayables=[],this._temporaryDisplayables=[],this._cursor=0,this.markRedraw(),this.notClear=!1},e.prototype.clearTemporalDisplayables=function(){this._temporaryDisplayables=[]},e.prototype.addDisplayable=function(t,e){e?this._temporaryDisplayables.push(t):this._displayables.push(t),this.markRedraw()},e.prototype.addDisplayables=function(t,e){e=e||!1;for(var n=0;n<t.length;n++)this.addDisplayable(t[n],e)},e.prototype.getDisplayables=function(){return this._displayables},e.prototype.getTemporalDisplayables=function(){return this._temporaryDisplayables},e.prototype.eachPendingDisplayable=function(t){for(var e=this._cursor;e<this._displayables.length;e++)t&&t(this._displayables[e]);for(e=0;e<this._temporaryDisplayables.length;e++)t&&t(this._temporaryDisplayables[e])},e.prototype.update=function(){this.updateTransform();for(var t=this._cursor;t<this._displayables.length;t++){(e=this._displayables[t]).parent=this,e.update(),e.parent=null}for(t=0;t<this._temporaryDisplayables.length;t++){var e;(e=this._temporaryDisplayables[t]).parent=this,e.update(),e.parent=null}},e.prototype.getBoundingRect=function(){if(!this._rect){for(var t=new Dn(1/0,1/0,-1/0,-1/0),e=0;e<this._displayables.length;e++){var n=this._displayables[e],i=n.getBoundingRect().clone();n.needLocalTransform()&&i.applyTransform(n.getLocalTransform(ru)),t.union(i)}this._rect=t}return this._rect},e.prototype.contain=function(t,e){var n=this.transformCoordToLocal(t,e);if(this.getBoundingRect().contain(n[0],n[1]))for(var i=0;i<this._displayables.length;i++){if(this._displayables[i].contain(t,e))return!0}return!1},e}(ho),au=Math.max,su=Math.min,lu={};function uu(t){return za.extend(t)}var hu=function(t,e){var n=pl(t,e);return function(t){function e(e){var i=t.call(this,e)||this;return i.applyTransform=n.applyTransform,i.buildPath=n.buildPath,i}return gt(e,t),e}(hl)};function cu(t,e){return hu(t,e)}function pu(t,e){lu[t]=e}function du(t){if(lu.hasOwnProperty(t))return lu[t]}function fu(t,e,n,i){var r=function(t,e){return new hl(pl(t,e))}(t,e);return n&&("center"===i&&(n=yu(n,r.getBoundingRect())),mu(r,n)),r}function gu(t,e,n){var i=new Wa({style:{image:t,x:e.x,y:e.y,width:e.width,height:e.height},onload:function(t){if("center"===n){var r={width:t.width,height:t.height};i.setStyle(yu(e,r))}}});return i}function yu(t,e){var n,i=e.width/e.height,r=t.height*i;return n=r<=t.width?t.height:(r=t.width)/i,{x:t.x+t.width/2-r/2,y:t.y+t.height/2-n/2,width:r,height:n}}var vu=function(t,e){for(var n=[],i=t.length,r=0;r<i;r++){var o=t[r];o.path||o.createPathProxy(),o.shapeChanged()&&o.buildPath(o.path,o.shape,!0),n.push(o.path)}var a=new za(e);return a.createPathProxy(),a.buildPath=function(t){if(cl(t)){t.appendPath(n);var e=t.getContext();e&&t.rebuildPath(e,1)}},a};function mu(t,e){if(t.applyTransform){var n=t.getBoundingRect().calculateTransform(e);t.applyTransform(n)}}var _u=Za;function xu(t,e,n,i,r,o,a){var s,l=!1;"function"==typeof r?(a=o,o=r,r=null):U(r)&&(o=r.cb,a=r.during,l=r.isFrom,s=r.removeOpt,r=r.dataIndex);var u,h="update"===t,c="remove"===t;if(i&&i.ecModel){var p=i.ecModel.getUpdatePayload();u=p&&p.animation}var d=i&&i.isAnimationEnabled();if(c||e.stopAnimation("remove"),d){var f=void 0,g=void 0,y=void 0;u?(f=u.duration||0,g=u.easing||"cubicOut",y=u.delay||0):c?(f=Q((s=s||{}).duration,200),g=Q(s.easing,"cubicOut"),y=0):(f=i.getShallow(h?"animationDurationUpdate":"animationDuration"),g=i.getShallow(h?"animationEasingUpdate":"animationEasing"),y=i.getShallow(h?"animationDelayUpdate":"animationDelay")),"function"==typeof y&&(y=y(r,i.getAnimationDelayParams?i.getAnimationDelayParams(e,r):null)),"function"==typeof f&&(f=f(r)),f>0?l?e.animateFrom(n,{duration:f,delay:y||0,easing:g,done:o,force:!!o||!!a,scope:t,during:a}):e.animateTo(n,{duration:f,delay:y||0,easing:g,done:o,force:!!o||!!a,setToFinal:!0,scope:t,during:a}):(e.stopAnimation(),!l&&e.attr(n),o&&o())}else e.stopAnimation(),!l&&e.attr(n),a&&a(1),o&&o()}function bu(t,e,n,i,r,o){xu("update",t,e,n,i,r,o)}function wu(t,e,n,i,r,o){xu("init",t,e,n,i,r,o)}function Su(t,e,n,i,r,o){Cu(t)||xu("remove",t,e,n,i,r,o)}function Mu(t,e,n,i){t.removeTextContent(),t.removeTextGuideLine(),Su(t,{style:{opacity:0}},e,n,i)}function Tu(t,e,n){function i(){t.parent&&t.parent.remove(t)}t.isGroup?t.traverse((function(t){t.isGroup||Mu(t,e,n,i)})):Mu(t,e,n,i)}function Cu(t){if(!t.__zr)return!0;for(var e=0;e<t.animators.length;e++){if("remove"===t.animators[e].scope)return!0}return!1}function Iu(t,e){for(var n=pe([]);t&&t!==e;)fe(n,t.getLocalTransform(),n),t=t.parent;return n}function Au(t,e,n){return e&&!L(e)&&(e=Ie.getLocalTransform(e)),n&&(e=me([],e)),Lt([],t,e)}function Du(t,e,n){var i=0===e[4]||0===e[5]||0===e[0]?1:Math.abs(2*e[4]/e[0]),r=0===e[4]||0===e[5]||0===e[2]?1:Math.abs(2*e[4]/e[2]),o=["left"===t?-i:"right"===t?i:0,"top"===t?-r:"bottom"===t?r:0];return o=Au(o,e,n),Math.abs(o[0])>Math.abs(o[1])?o[0]>0?"right":"left":o[1]>0?"bottom":"top"}function ku(t){return!t.isGroup}function Lu(t,e,n){if(t&&e){var i,r=(i={},t.traverse((function(t){ku(t)&&t.anid&&(i[t.anid]=t)})),i);e.traverse((function(t){if(ku(t)&&t.anid){var e=r[t.anid];if(e){var i=o(t);t.attr(o(e)),bu(t,i,n,ss(t).dataIndex)}}}))}function o(t){var e={x:t.x,y:t.y,rotation:t.rotation};return function(t){return null!=t.shape}(t)&&(e.shape=T({},t.shape)),e}}function Pu(t,e){return O(t,(function(t){var n=t[0];n=au(n,e.x),n=su(n,e.x+e.width);var i=t[1];return i=au(i,e.y),[n,i=su(i,e.y+e.height)]}))}function Ou(t,e){var n=au(t.x,e.x),i=su(t.x+t.width,e.x+e.width),r=au(t.y,e.y),o=su(t.y+t.height,e.y+e.height);if(i>=n&&o>=r)return{x:n,y:r,width:i-n,height:o-r}}function Ru(t,e,n){var i=T({rectHover:!0},e),r=i.style={strokeNoScale:!0};if(n=n||{x:-1,y:-1,width:2,height:2},t)return 0===t.indexOf("image://")?(r.image=t.slice(8),C(r,n),new Wa(i)):fu(t.replace("path://",""),i,n,"center")}function Nu(t,e,n,i,r,o,a,s){var l,u=n-t,h=i-e,c=a-r,p=s-o,d=Eu(c,p,u,h);if((l=d)<=1e-6&&l>=-1e-6)return!1;var f=t-r,g=e-o,y=Eu(f,g,u,h)/d;if(y<0||y>1)return!1;var v=Eu(f,g,c,p)/d;return!(v<0||v>1)}function Eu(t,e,n,i){return t*i-n*e}pu("circle",fl),pu("ellipse",yl),pu("sector",Ll),pu("ring",Ol),pu("polygon",Bl),pu("polyline",Vl),pu("rect",Ka),pu("line",Gl),pu("bezierCurve",Xl),pu("arc",jl);var Bu=Object.freeze({__proto__:null,extendShape:uu,extendPath:cu,registerShape:pu,getShapeClass:du,makePath:fu,makeImage:gu,mergePath:vu,resizePath:mu,subPixelOptimizeLine:function(t){return Ya(t.shape,t.shape,t.style),t},subPixelOptimizeRect:function(t){return Xa(t.shape,t.shape,t.style),t},subPixelOptimize:_u,updateProps:bu,initProps:wu,removeElement:Su,removeElementWithFadeOut:Tu,isElementRemoved:Cu,getTransform:Iu,applyTransform:Au,transformDirection:Du,groupTransition:Lu,clipPointsByRect:Pu,clipRectByRect:Ou,createIcon:Ru,linePolygonIntersect:function(t,e,n,i,r){for(var o=0,a=r[r.length-1];o<r.length;o++){var s=r[o];if(Nu(t,e,n,i,s[0],s[1],a[0],a[1]))return!0;a=s}},lineLineIntersect:Nu,Group:Pi,Image:Wa,Text:Qa,Circle:fl,Ellipse:yl,Sector:Ll,Ring:Ol,Polygon:Bl,Polyline:Vl,Rect:Ka,Line:Gl,BezierCurve:Xl,Arc:jl,IncrementalDisplayable:ou,CompoundPath:ql,LinearGradient:$l,RadialGradient:Jl,BoundingRect:Dn,OrientedBoundingRect:iu,Point:xn,Path:za}),zu={};function Vu(t,e){for(var n=0;n<cs.length;n++){var i=cs[n],r=e[i],o=t.ensureState(i);o.style=o.style||{},o.style.text=r}var a=t.currentStates.slice();t.clearStates(!0),t.setStyle({text:e.normal}),t.useStates(a,!0)}function Fu(t,e,n){var i,r=t.labelFetcher,o=t.labelDataIndex,a=t.labelDimIndex,s=e.normal;r&&(i=r.getFormattedLabel(o,"normal",null,a,s&&s.get("formatter"),null!=n?{interpolatedValue:n}:null)),null==i&&(i=F(t.defaultText)?t.defaultText(o,t,n):t.defaultText);for(var l={normal:i},u=0;u<cs.length;u++){var h=cs[u],c=e[h];l[h]=Q(r?r.getFormattedLabel(o,h,null,a,c&&c.get("formatter")):null,i)}return l}function Hu(t,e,n,i){n=n||zu;for(var r=t instanceof Qa,o=!1,a=0;a<ps.length;a++){if((p=e[ps[a]])&&p.getShallow("show")){o=!0;break}}var s=r?t:t.getTextContent();if(o){r||(s||(s=new Qa,t.setTextContent(s)),t.stateProxy&&(s.stateProxy=t.stateProxy));var l=Fu(n,e),u=e.normal,h=!!u.getShallow("show"),c=Wu(u,i&&i.normal,n,!1,!r);c.text=l.normal,r||t.setTextConfig(Uu(u,n,!1));for(a=0;a<cs.length;a++){var p,d=cs[a];if(p=e[d]){var f=s.ensureState(d),g=!!Q(p.getShallow("show"),h);if(g!==h&&(f.ignore=!g),f.style=Wu(p,i&&i[d],n,!0,!r),f.style.text=l[d],!r)t.ensureState(d).textConfig=Uu(p,n,!0)}}s.silent=!!u.getShallow("silent"),null!=s.style.x&&(c.x=s.style.x),null!=s.style.y&&(c.y=s.style.y),s.ignore=!h,s.useStyle(c),s.dirty(),n.enableTextSetter&&(qu(s).setLabelText=function(t){var i=Fu(n,e,t);Vu(s,i)})}else s&&(s.ignore=!0);t.dirty()}function Gu(t,e){e=e||"label";for(var n={normal:t.getModel(e)},i=0;i<cs.length;i++){var r=cs[i];n[r]=t.getModel([r,e])}return n}function Wu(t,e,n,i,r){var o={};return function(t,e,n,i,r){n=n||zu;var o,a=e.ecModel,s=a&&a.option.textStyle,l=function(t){var e;for(;t&&t!==t.ecModel;){var n=(t.option||zu).rich;if(n){e=e||{};for(var i=E(n),r=0;r<i.length;r++){e[i[r]]=1}}t=t.parentModel}return e}(e);if(l)for(var u in o={},l)if(l.hasOwnProperty(u)){var h=e.getModel(["rich",u]);ju(o[u]={},h,s,n,i,r,!1,!0)}o&&(t.rich=o);var c=e.get("overflow");c&&(t.overflow=c);var p=e.get("minMargin");null!=p&&(t.margin=p);ju(t,e,s,n,i,r,!0,!1)}(o,t,n,i,r),e&&T(o,e),o}function Uu(t,e,n){e=e||{};var i,r={},o=t.getShallow("rotate"),a=Q(t.getShallow("distance"),n?null:5),s=t.getShallow("offset");return"outside"===(i=t.getShallow("position")||(n?null:"inside"))&&(i=e.defaultOutsidePosition||"top"),null!=i&&(r.position=i),null!=s&&(r.offset=s),null!=o&&(o*=Math.PI/180,r.rotation=o),null!=a&&(r.distance=a),r.outsideFill="inherit"===t.get("color")?e.inheritColor||null:"auto",r}var Yu=["fontStyle","fontWeight","fontSize","fontFamily","textShadowColor","textShadowBlur","textShadowOffsetX","textShadowOffsetY"],Xu=["align","lineHeight","width","height","tag","verticalAlign"],Zu=["padding","borderWidth","borderRadius","borderDashOffset","backgroundColor","borderColor","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"];function ju(t,e,n,i,r,o,a,s){n=!r&&n||zu;var l=i&&i.inheritColor,u=e.getShallow("color"),h=e.getShallow("textBorderColor"),c=Q(e.getShallow("opacity"),n.opacity);"inherit"!==u&&"auto"!==u||(u=l||null),"inherit"!==h&&"auto"!==h||(h=l||null),o||(u=u||n.color,h=h||n.textBorderColor),null!=u&&(t.fill=u),null!=h&&(t.stroke=h);var p=Q(e.getShallow("textBorderWidth"),n.textBorderWidth);null!=p&&(t.lineWidth=p);var d=Q(e.getShallow("textBorderType"),n.textBorderType);null!=d&&(t.lineDash=d);var f=Q(e.getShallow("textBorderDashOffset"),n.textBorderDashOffset);null!=f&&(t.lineDashOffset=f),r||null!=c||s||(c=i&&i.defaultOpacity),null!=c&&(t.opacity=c),r||o||null==t.fill&&i.inheritColor&&(t.fill=i.inheritColor);for(var g=0;g<Yu.length;g++){var y=Yu[g];null!=(m=Q(e.getShallow(y),n[y]))&&(t[y]=m)}for(g=0;g<Xu.length;g++){y=Xu[g];null!=(m=e.getShallow(y))&&(t[y]=m)}if(null==t.verticalAlign){var v=e.getShallow("baseline");null!=v&&(t.verticalAlign=v)}if(!a||!i.disableBox){for(g=0;g<Zu.length;g++){var m;y=Zu[g];null!=(m=e.getShallow(y))&&(t[y]=m)}var _=e.getShallow("borderType");null!=_&&(t.borderDash=_),"auto"!==t.backgroundColor&&"inherit"!==t.backgroundColor||!l||(t.backgroundColor=l),"auto"!==t.borderColor&&"inherit"!==t.borderColor||!l||(t.borderColor=l)}}var qu=wr();var Ku,$u,Ju=["textStyle","color"],Qu=new Qa,th=function(){function t(){}return t.prototype.getTextColor=function(t){var e=this.ecModel;return this.getShallow("color")||(!t&&e?e.get(Ju):null)},t.prototype.getFont=function(){return t={fontStyle:this.getShallow("fontStyle"),fontWeight:this.getShallow("fontWeight"),fontSize:this.getShallow("fontSize"),fontFamily:this.getShallow("fontFamily")},e=this.ecModel,n=e&&e.getModel("textStyle"),rt([t.fontStyle||n&&n.getShallow("fontStyle")||"",t.fontWeight||n&&n.getShallow("fontWeight")||"",(t.fontSize||n&&n.getShallow("fontSize")||12)+"px",t.fontFamily||n&&n.getShallow("fontFamily")||"sans-serif"].join(" "));var t,e,n},t.prototype.getTextRect=function(t){return Qu.useStyle({text:t,fontStyle:this.getShallow("fontStyle"),fontWeight:this.getShallow("fontWeight"),fontSize:this.getShallow("fontSize"),fontFamily:this.getShallow("fontFamily"),verticalAlign:this.getShallow("verticalAlign")||this.getShallow("baseline"),padding:this.getShallow("padding"),lineHeight:this.getShallow("lineHeight"),rich:this.getShallow("rich")}),Qu.update(),Qu.getBoundingRect()},t}(),eh=[["lineWidth","width"],["stroke","color"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"],["lineDash","type"],["lineDashOffset","dashOffset"],["lineCap","cap"],["lineJoin","join"],["miterLimit"]],nh=Fr(eh),ih=function(){function t(){}return t.prototype.getLineStyle=function(t){return nh(this,t)},t}(),rh=[["fill","color"],["stroke","borderColor"],["lineWidth","borderWidth"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"],["lineDash","borderType"],["lineDashOffset","borderDashOffset"],["lineCap","borderCap"],["lineJoin","borderJoin"],["miterLimit","borderMiterLimit"]],oh=Fr(rh),ah=function(){function t(){}return t.prototype.getItemStyle=function(t,e){return oh(this,t,e)},t}(),sh=function(){function t(t,e,n){this.parentModel=e,this.ecModel=n,this.option=t}return t.prototype.init=function(t,e,n){for(var i=[],r=3;r<arguments.length;r++)i[r-3]=arguments[r]},t.prototype.mergeOption=function(t,e){S(this.option,t,!0)},t.prototype.get=function(t,e){return null==t?this.option:this._doGet(this.parsePath(t),!e&&this.parentModel)},t.prototype.getShallow=function(t,e){var n=this.option,i=null==n?n:n[t];if(null==i&&!e){var r=this.parentModel;r&&(i=r.getShallow(t))}return i},t.prototype.getModel=function(e,n){var i=null!=e,r=i?this.parsePath(e):null;return new t(i?this._doGet(r):this.option,n=n||this.parentModel&&this.parentModel.getModel(this.resolveParentPath(r)),this.ecModel)},t.prototype.isEmpty=function(){return null==this.option},t.prototype.restoreData=function(){},t.prototype.clone=function(){return new(0,this.constructor)(w(this.option))},t.prototype.parsePath=function(t){return"string"==typeof t?t.split("."):t},t.prototype.resolveParentPath=function(t){return t},t.prototype.isAnimationEnabled=function(){if(!a.node&&this.option){if(null!=this.option.animation)return!!this.option.animation;if(this.parentModel)return this.parentModel.isAnimationEnabled()}},t.prototype._doGet=function(t,e){var n=this.option;if(!t)return n;for(var i=0;i<t.length&&(!t[i]||null!=(n=n&&"object"==typeof n?n[t[i]]:null));i++);return null==n&&e&&(n=e._doGet(this.resolveParentPath(t),e.parentModel)),n},t}();Or(sh),Ku=sh,$u=["__\0is_clz",Er++].join("_"),Ku.prototype[$u]=!0,Ku.isInstance=function(t){return!(!t||!t[$u])},k(sh,ih),k(sh,ah),k(sh,Gr),k(sh,th);var lh=Math.round(10*Math.random());function uh(t){return[t||"",lh++].join("_")}function hh(t,e){return S(S({},t,!0),e,!0)}var ch="ZH",ph="EN",dh=ph,fh={},gh={},yh=a.domSupported&&(document.documentElement.lang||navigator.language||navigator.browserLanguage).toUpperCase().indexOf(ch)>-1?ch:dh;function vh(t,e){t=t.toUpperCase(),gh[t]=new sh(e),fh[t]=e}vh(ph,{time:{month:["January","February","March","April","May","June","July","August","September","October","November","December"],monthAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayOfWeekAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},legend:{selector:{all:"All",inverse:"Inv"}},toolbox:{brush:{title:{rect:"Box Select",polygon:"Lasso Select",lineX:"Horizontally Select",lineY:"Vertically Select",keep:"Keep Selections",clear:"Clear Selections"}},dataView:{title:"Data View",lang:["Data View","Close","Refresh"]},dataZoom:{title:{zoom:"Zoom",back:"Zoom Reset"}},magicType:{title:{line:"Switch to Line Chart",bar:"Switch to Bar Chart",stack:"Stack",tiled:"Tile"}},restore:{title:"Restore"},saveAsImage:{title:"Save as Image",lang:["Right Click to Save Image"]}},series:{typeNames:{pie:"Pie chart",bar:"Bar chart",line:"Line chart",scatter:"Scatter plot",effectScatter:"Ripple scatter plot",radar:"Radar chart",tree:"Tree",treemap:"Treemap",boxplot:"Boxplot",candlestick:"Candlestick",k:"K line chart",heatmap:"Heat map",map:"Map",parallel:"Parallel coordinate map",lines:"Line graph",graph:"Relationship graph",sankey:"Sankey diagram",funnel:"Funnel chart",gauge:"Guage",pictorialBar:"Pictorial bar",themeRiver:"Theme River Map",sunburst:"Sunburst"}},aria:{general:{withTitle:'This is a chart about "{title}"',withoutTitle:"This is a chart"},series:{single:{prefix:"",withName:" with type {seriesType} named {seriesName}.",withoutName:" with type {seriesType}."},multiple:{prefix:". It consists of {seriesCount} series count.",withName:" The {seriesId} series is a {seriesType} representing {seriesName}.",withoutName:" The {seriesId} series is a {seriesType}.",separator:{middle:"",end:""}}},data:{allData:"The data is as follows: ",partialData:"The first {displayCnt} items are: ",withName:"the data for {name} is {value}",withoutName:"{value}",separator:{middle:", ",end:". "}}}}),vh(ch,{time:{month:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthAbbr:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayOfWeekAbbr:["日","一","二","三","四","五","六"]},legend:{selector:{all:"全选",inverse:"反选"}},toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}});var mh=1e3,_h=6e4,xh=36e5,bh=864e5,wh=31536e6,Sh={year:"{yyyy}",month:"{MMM}",day:"{d}",hour:"{HH}:{mm}",minute:"{HH}:{mm}",second:"{HH}:{mm}:{ss}",millisecond:"{hh}:{mm}:{ss} {SSS}",none:"{yyyy}-{MM}-{dd} {hh}:{mm}:{ss} {SSS}"},Mh="{yyyy}-{MM}-{dd}",Th={year:"{yyyy}",month:"{yyyy}-{MM}",day:Mh,hour:"{yyyy}-{MM}-{dd} "+Sh.hour,minute:"{yyyy}-{MM}-{dd} "+Sh.minute,second:"{yyyy}-{MM}-{dd} "+Sh.second,millisecond:Sh.none},Ch=["year","month","day","hour","minute","second","millisecond"],Ih=["year","half-year","quarter","month","week","half-week","day","half-day","quarter-day","hour","minute","second","millisecond"];function Ah(t,e){return"0000".substr(0,e-(t+="").length)+t}function Dh(t){switch(t){case"half-year":case"quarter":return"month";case"week":case"half-week":return"day";case"half-day":case"quarter-day":return"hour";default:return t}}function kh(t){return t===Dh(t)}function Lh(t,e,n,i){var r=Ji(t),o=r[Rh(n)](),a=r[Nh(n)]()+1,s=Math.floor((a-1)/4)+1,l=r[Eh(n)](),u=r["get"+(n?"UTC":"")+"Day"](),h=r[Bh(n)](),c=(h-1)%12+1,p=r[zh(n)](),d=r[Vh(n)](),f=r[Fh(n)](),g=(i instanceof sh?i:function(t){return gh[t]}(i||yh)||gh.EN).getModel("time"),y=g.get("month"),v=g.get("monthAbbr"),m=g.get("dayOfWeek"),_=g.get("dayOfWeekAbbr");return(e||"").replace(/{yyyy}/g,o+"").replace(/{yy}/g,o%100+"").replace(/{Q}/g,s+"").replace(/{MMMM}/g,y[a-1]).replace(/{MMM}/g,v[a-1]).replace(/{MM}/g,Ah(a,2)).replace(/{M}/g,a+"").replace(/{dd}/g,Ah(l,2)).replace(/{d}/g,l+"").replace(/{eeee}/g,m[u]).replace(/{ee}/g,_[u]).replace(/{e}/g,u+"").replace(/{HH}/g,Ah(h,2)).replace(/{H}/g,h+"").replace(/{hh}/g,Ah(c+"",2)).replace(/{h}/g,c+"").replace(/{mm}/g,Ah(p,2)).replace(/{m}/g,p+"").replace(/{ss}/g,Ah(d,2)).replace(/{s}/g,d+"").replace(/{SSS}/g,Ah(f,3)).replace(/{S}/g,f+"")}function Ph(t,e){var n=Ji(t),i=n[Nh(e)]()+1,r=n[Eh(e)](),o=n[Bh(e)](),a=n[zh(e)](),s=n[Vh(e)](),l=0===n[Fh(e)](),u=l&&0===s,h=u&&0===a,c=h&&0===o,p=c&&1===r;return p&&1===i?"year":p?"month":c?"day":h?"hour":u?"minute":l?"second":"millisecond"}function Oh(t,e,n){var i="number"==typeof t?Ji(t):t;switch(e=e||Ph(t,n)){case"year":return i[Rh(n)]();case"half-year":return i[Nh(n)]()>=6?1:0;case"quarter":return Math.floor((i[Nh(n)]()+1)/4);case"month":return i[Nh(n)]();case"day":return i[Eh(n)]();case"half-day":return i[Bh(n)]()/24;case"hour":return i[Bh(n)]();case"minute":return i[zh(n)]();case"second":return i[Vh(n)]();case"millisecond":return i[Fh(n)]()}}function Rh(t){return t?"getUTCFullYear":"getFullYear"}function Nh(t){return t?"getUTCMonth":"getMonth"}function Eh(t){return t?"getUTCDate":"getDate"}function Bh(t){return t?"getUTCHours":"getHours"}function zh(t){return t?"getUTCMinutes":"getMinutes"}function Vh(t){return t?"getUTCSeconds":"getSeconds"}function Fh(t){return t?"getUTCSeconds":"getSeconds"}function Hh(t){return t?"setUTCFullYear":"setFullYear"}function Gh(t){return t?"setUTCMonth":"setMonth"}function Wh(t){return t?"setUTCDate":"setDate"}function Uh(t){return t?"setUTCHours":"setHours"}function Yh(t){return t?"setUTCMinutes":"setMinutes"}function Xh(t){return t?"setUTCSeconds":"setSeconds"}function Zh(t){return t?"setUTCSeconds":"setSeconds"}function jh(t){if(!ir(t))return H(t)?t:"-";var e=(t+"").split(".");return e[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(e.length>1?"."+e[1]:"")}function qh(t,e){return t=(t||"").toLowerCase().replace(/-(.)/g,(function(t,e){return e.toUpperCase()})),e&&t&&(t=t.charAt(0).toUpperCase()+t.slice(1)),t}var Kh=nt,$h=/([&<>"'])/g,Jh={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function Qh(t){return null==t?"":(t+"").replace($h,(function(t,e){return Jh[e]}))}function tc(t,e,n){function i(t){return t&&rt(t)?t:"-"}function r(t){return!(null==t||isNaN(t)||!isFinite(t))}var o="time"===e,a=t instanceof Date;if(o||a){var s=o?Ji(t):t;if(!isNaN(+s))return Lh(s,"yyyy-MM-dd hh:mm:ss",n);if(a)return"-"}if("ordinal"===e)return G(t)?i(t):W(t)&&r(t)?t+"":"-";var l=nr(t);return r(l)?jh(l):G(t)?i(t):"-"}var ec=["a","b","c","d","e","f","g"],nc=function(t,e){return"{"+t+(null==e?"":e)+"}"};function ic(t,e,n){V(e)||(e=[e]);var i=e.length;if(!i)return"";for(var r=e[0].$vars||[],o=0;o<r.length;o++){var a=ec[o];t=t.replace(nc(a),nc(a,0))}for(var s=0;s<i;s++)for(var l=0;l<r.length;l++){var u=e[s][r[l]];t=t.replace(nc(ec[l],s),n?Qh(u):u)}return t}function rc(t,e){var n=H(t)?{color:t,extraCssText:e}:t||{},i=n.color,r=n.type;e=n.extraCssText;var o=n.renderMode||"html";return i?"html"===o?"subItem"===r?'<span style="display:inline-block;vertical-align:middle;margin-right:8px;margin-left:3px;border-radius:4px;width:4px;height:4px;background-color:'+Qh(i)+";"+(e||"")+'"></span>':'<span style="display:inline-block;margin-right:4px;border-radius:10px;width:10px;height:10px;background-color:'+Qh(i)+";"+(e||"")+'"></span>':{renderMode:o,content:"{"+(n.markerId||"markerX")+"|}  ",style:"subItem"===r?{width:4,height:4,borderRadius:2,backgroundColor:i}:{width:10,height:10,borderRadius:5,backgroundColor:i}}:""}function oc(t,e){return e=e||"transparent",H(t)?t:U(t)&&t.colorStops&&(t.colorStops[0]||{}).color||e}function ac(t,e){if("_blank"===e||"blank"===e){var n=window.open();n.opener=null,n.location.href=t}else window.open(t,e)}var sc=P,lc=["left","right","top","bottom","width","height"],uc=[["width","left","right"],["height","top","bottom"]];function hc(t,e,n,i,r){var o=0,a=0;null==i&&(i=1/0),null==r&&(r=1/0);var s=0;e.eachChild((function(l,u){var h,c,p=l.getBoundingRect(),d=e.childAt(u+1),f=d&&d.getBoundingRect();if("horizontal"===t){var g=p.width+(f?-f.x+p.x:0);(h=o+g)>i||l.newline?(o=0,h=g,a+=s+n,s=p.height):s=Math.max(s,p.height)}else{var y=p.height+(f?-f.y+p.y:0);(c=a+y)>r||l.newline?(o+=s+n,a=0,c=y,s=p.width):s=Math.max(s,p.width)}l.newline||(l.x=o,l.y=a,l.markRedraw(),"horizontal"===t?o=h+n:a=c+n)}))}var cc=hc;z(hc,"vertical"),z(hc,"horizontal");function pc(t,e,n){n=Kh(n||0);var i=e.width,r=e.height,o=Gi(t.left,i),a=Gi(t.top,r),s=Gi(t.right,i),l=Gi(t.bottom,r),u=Gi(t.width,i),h=Gi(t.height,r),c=n[2]+n[0],p=n[1]+n[3],d=t.aspect;switch(isNaN(u)&&(u=i-s-p-o),isNaN(h)&&(h=r-l-c-a),null!=d&&(isNaN(u)&&isNaN(h)&&(d>i/r?u=.8*i:h=.8*r),isNaN(u)&&(u=d*h),isNaN(h)&&(h=u/d)),isNaN(o)&&(o=i-s-u-p),isNaN(a)&&(a=r-l-h-c),t.left||t.right){case"center":o=i/2-u/2-n[3];break;case"right":o=i-u-p}switch(t.top||t.bottom){case"middle":case"center":a=r/2-h/2-n[0];break;case"bottom":a=r-h-c}o=o||0,a=a||0,isNaN(u)&&(u=i-p-o-(s||0)),isNaN(h)&&(h=r-c-a-(l||0));var f=new Dn(o+n[3],a+n[0],u,h);return f.margin=n,f}function dc(t,e,n,i,r){var o=!r||!r.hv||r.hv[0],a=!r||!r.hv||r.hv[1],s=r&&r.boundingMode||"all";if(o||a){var l;if("raw"===s)l="group"===t.type?new Dn(0,0,+e.width||0,+e.height||0):t.getBoundingRect();else if(l=t.getBoundingRect(),t.needLocalTransform()){var u=t.getLocalTransform();(l=l.clone()).applyTransform(u)}var h=pc(C({width:l.width,height:l.height},e),n,i),c=o?h.x-l.x:0,p=a?h.y-l.y:0;"raw"===s?(t.x=c,t.y=p):(t.x+=c,t.y+=p),t.markRedraw()}}function fc(t){var e=t.layoutMode||t.constructor.layoutMode;return U(e)?e:e?{type:e}:null}function gc(t,e,n){var i=n&&n.ignoreSize;!V(i)&&(i=[i,i]);var r=a(uc[0],0),o=a(uc[1],1);function a(n,r){var o={},a=0,u={},h=0;if(sc(n,(function(e){u[e]=t[e]})),sc(n,(function(t){s(e,t)&&(o[t]=u[t]=e[t]),l(o,t)&&a++,l(u,t)&&h++})),i[r])return l(e,n[1])?u[n[2]]=null:l(e,n[2])&&(u[n[1]]=null),u;if(2!==h&&a){if(a>=2)return o;for(var c=0;c<n.length;c++){var p=n[c];if(!s(o,p)&&s(t,p)){o[p]=t[p];break}}return o}return u}function s(t,e){return t.hasOwnProperty(e)}function l(t,e){return null!=t[e]&&"auto"!==t[e]}function u(t,e,n){sc(t,(function(t){e[t]=n[t]}))}u(uc[0],t,r),u(uc[1],t,o)}function yc(t){return vc({},t)}function vc(t,e){return e&&t&&sc(lc,(function(n){e.hasOwnProperty(n)&&(t[n]=e[n])})),t}var mc=wr(),_c=function(t){function e(e,n,i){var r=t.call(this,e,n,i)||this;return r.uid=uh("ec_cpt_model"),r}return n(e,t),e.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n)},e.prototype.mergeDefaultAndTheme=function(t,e){var n=fc(this),i=n?yc(t):{};S(t,e.getTheme().get(this.mainType)),S(t,this.getDefaultOption()),n&&gc(t,i,n)},e.prototype.mergeOption=function(t,e){S(this.option,t,!0);var n=fc(this);n&&gc(this.option,t,n)},e.prototype.optionUpdated=function(t,e){},e.prototype.getDefaultOption=function(){var t=this.constructor;if(!function(t){return!(!t||!t[Lr])}(t))return t.defaultOption;var e=mc(this);if(!e.defaultOption){for(var n=[],i=t;i;){var r=i.prototype.defaultOption;r&&n.push(r),i=i.superClass}for(var o={},a=n.length-1;a>=0;a--)o=S(o,n[a],!0);e.defaultOption=o}return e.defaultOption},e.prototype.getReferringComponents=function(t,e){var n=t+"Index",i=t+"Id";return Ir(this.ecModel,t,{index:this.get(n,!0),id:this.get(i,!0)},e)},e.prototype.getBoxLayoutParams=function(){var t=this;return{left:t.get("left"),top:t.get("top"),right:t.get("right"),bottom:t.get("bottom"),width:t.get("width"),height:t.get("height")}},e.protoInitialize=function(){var t=e.prototype;t.type="component",t.id="",t.name="",t.mainType="",t.subType="",t.componentIndex=0}(),e}(sh);Nr(_c,sh),Vr(_c),function(t){var e={};t.registerSubTypeDefaulter=function(t,n){var i=Pr(t);e[i.main]=n},t.determineSubType=function(n,i){var r=i.type;if(!r){var o=Pr(n).main;t.hasSubTypes(n)&&e[o]&&(r=e[o](i))}return r}}(_c),function(t,e){function n(t,e){return t[e]||(t[e]={predecessor:[],successor:[]}),t[e]}t.topologicalTravel=function(t,i,r,o){if(t.length){var a=function(t){var i={},r=[];return P(t,(function(o){var a=n(i,o),s=function(t,e){var n=[];return P(t,(function(t){A(e,t)>=0&&n.push(t)})),n}(a.originalDeps=e(o),t);a.entryCount=s.length,0===a.entryCount&&r.push(o),P(s,(function(t){A(a.predecessor,t)<0&&a.predecessor.push(t);var e=n(i,t);A(e.successor,t)<0&&e.successor.push(o)}))})),{graph:i,noEntryList:r}}(i),s=a.graph,l=a.noEntryList,u={};for(P(t,(function(t){u[t]=!0}));l.length;){var h=l.pop(),c=s[h],p=!!u[h];p&&(r.call(o,h,c.originalDeps.slice()),delete u[h]),P(c.successor,p?f:d)}P(u,(function(){var t="";throw new Error(t)}))}function d(t){s[t].entryCount--,0===s[t].entryCount&&l.push(t)}function f(t){u[t]=!0,d(t)}}}(_c,(function(t){var e=[];P(_c.getClassesByMainType(t),(function(t){e=e.concat(t.dependencies||t.prototype.dependencies||[])})),e=O(e,(function(t){return Pr(t).main})),"dataset"!==t&&A(e,"dataset")<=0&&e.unshift("dataset");return e}));var xc="";"undefined"!=typeof navigator&&(xc=navigator.platform||"");var bc="rgba(0, 0, 0, 0.2)",wc={darkMode:"auto",color:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],gradientColor:["#f6efa6","#d88273","#bf444c"],aria:{decal:{decals:[{color:bc,dashArrayX:[1,0],dashArrayY:[2,5],symbolSize:1,rotation:Math.PI/6},{color:bc,symbol:"circle",dashArrayX:[[8,8],[0,8,8,0]],dashArrayY:[6,0],symbolSize:.8},{color:bc,dashArrayX:[1,0],dashArrayY:[4,3],rotation:-Math.PI/4},{color:bc,dashArrayX:[[6,6],[0,6,6,0]],dashArrayY:[6,0]},{color:bc,dashArrayX:[[1,0],[1,6]],dashArrayY:[1,0,6,0],rotation:Math.PI/4},{color:bc,symbol:"triangle",dashArrayX:[[9,9],[0,9,9,0]],dashArrayY:[7,2],symbolSize:.75}]}},textStyle:{fontFamily:xc.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,stateAnimation:{duration:300,easing:"cubicOut"},animation:"auto",animationDuration:1e3,animationDurationUpdate:500,animationEasing:"cubicInOut",animationEasingUpdate:"cubicInOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1},Sc=ut(["tooltip","label","itemName","itemId","seriesName"]),Mc="original",Tc="arrayRows",Cc="objectRows",Ic="keyedColumns",Ac="typedArray",Dc="unknown",kc="column",Lc="row",Pc=1,Oc=2,Rc=3,Nc=wr();function Ec(t,e,n){var i={},r=zc(e);if(!r||!t)return i;var o,a,s=[],l=[],u=e.ecModel,h=Nc(u).datasetMap,c=r.uid+"_"+n.seriesLayoutBy;P(t=t.slice(),(function(e,n){var r=U(e)?e:t[n]={name:e};"ordinal"===r.type&&null==o&&(o=n,a=f(r)),i[r.name]=[]}));var p=h.get(c)||h.set(c,{categoryWayDim:a,valueWayDim:0});function d(t,e,n){for(var i=0;i<n;i++)t.push(e+i)}function f(t){var e=t.dimsDef;return e?e.length:1}return P(t,(function(t,e){var n=t.name,r=f(t);if(null==o){var a=p.valueWayDim;d(i[n],a,r),d(l,a,r),p.valueWayDim+=r}else if(o===e)d(i[n],0,r),d(s,0,r);else{a=p.categoryWayDim;d(i[n],a,r),d(l,a,r),p.categoryWayDim+=r}})),s.length&&(i.itemName=s),l.length&&(i.seriesName=l),i}function Bc(t,e,n){var i={};if(!zc(t))return i;var r,o=e.sourceFormat,a=e.dimensionsDefine;o!==Cc&&o!==Ic||P(a,(function(t,e){"name"===(U(t)?t.name:t)&&(r=e)}));var s=function(){for(var t={},i={},s=[],l=0,u=Math.min(5,n);l<u;l++){var h=Fc(e.data,o,e.seriesLayoutBy,a,e.startIndex,l);s.push(h);var c=h===Rc;if(c&&null==t.v&&l!==r&&(t.v=l),(null==t.n||t.n===t.v||!c&&s[t.n]===Rc)&&(t.n=l),p(t)&&s[t.n]!==Rc)return t;c||(h===Oc&&null==i.v&&l!==r&&(i.v=l),null!=i.n&&i.n!==i.v||(i.n=l))}function p(t){return null!=t.v&&null!=t.n}return p(t)?t:p(i)?i:null}();if(s){i.value=[s.v];var l=null!=r?r:s.n;i.itemName=[l],i.seriesName=[l]}return i}function zc(t){if(!t.get("data",!0))return Ir(t.ecModel,"dataset",{index:t.get("datasetIndex",!0),id:t.get("datasetId",!0)},Tr).models[0]}function Vc(t,e){return Fc(t.data,t.sourceFormat,t.seriesLayoutBy,t.dimensionsDefine,t.startIndex,e)}function Fc(t,e,n,i,r,o){var a,s,l;if(X(t))return Rc;if(i){var u=i[o];U(u)?(s=u.name,l=u.type):H(u)&&(s=u)}if(null!=l)return"ordinal"===l?Pc:Rc;if(e===Tc){var h=t;if(n===Lc){for(var c=h[o],p=0;p<(c||[]).length&&p<5;p++)if(null!=(a=m(c[r+p])))return a}else for(p=0;p<h.length&&p<5;p++){var d=h[r+p];if(d&&null!=(a=m(d[o])))return a}}else if(e===Cc){var f=t;if(!s)return Rc;for(p=0;p<f.length&&p<5;p++){if((y=f[p])&&null!=(a=m(y[s])))return a}}else if(e===Ic){if(!s)return Rc;if(!(c=t[s])||X(c))return Rc;for(p=0;p<c.length&&p<5;p++)if(null!=(a=m(c[p])))return a}else if(e===Mc){var g=t;for(p=0;p<g.length&&p<5;p++){var y,v=fr(y=g[p]);if(!V(v))return Rc;if(null!=(a=m(v[o])))return a}}function m(t){var e=H(t);return null!=t&&isFinite(t)&&""!==t?e?Oc:Rc:e&&"-"!==t?Pc:void 0}return Rc}var Hc=ut();var Gc,Wc,Uc,Yc=wr(),Xc=wr(),Zc=function(){function t(){}return t.prototype.getColorFromPalette=function(t,e,n){var i=cr(this.get("color",!0)),r=this.get("colorLayer",!0);return qc(this,Yc,i,r,t,e,n)},t.prototype.clearColorPalette=function(){!function(t,e){e(t).paletteIdx=0,e(t).paletteNameMap={}}(this,Yc)},t}();function jc(t,e,n,i){var r=cr(t.get(["aria","decal","decals"]));return qc(t,Xc,r,null,e,n,i)}function qc(t,e,n,i,r,o,a){var s=e(o=o||t),l=s.paletteIdx||0,u=s.paletteNameMap=s.paletteNameMap||{};if(u.hasOwnProperty(r))return u[r];var h=null!=a&&i?function(t,e){for(var n=t.length,i=0;i<n;i++)if(t[i].length>e)return t[i];return t[n-1]}(i,a):n;if((h=h||n)&&h.length){var c=h[l];return r&&(u[r]=c),s.paletteIdx=(l+1)%h.length,c}}var Kc=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.init=function(t,e,n,i,r,o){i=i||{},this.option=null,this._theme=new sh(i),this._locale=new sh(r),this._optionManager=o},e.prototype.setOption=function(t,e,n){var i=Qc(e);this._optionManager.setOption(t,n,i),this._resetOption(null,i)},e.prototype.resetOption=function(t,e){return this._resetOption(t,Qc(e))},e.prototype._resetOption=function(t,e){var n=!1,i=this._optionManager;if(!t||"recreate"===t){var r=i.mountOption("recreate"===t);this.option&&"recreate"!==t?(this.restoreData(),this._mergeOption(r,e)):Uc(this,r),n=!0}if("timeline"!==t&&"media"!==t||this.restoreData(),!t||"recreate"===t||"timeline"===t){var o=i.getTimelineOption(this);o&&(n=!0,this._mergeOption(o,e))}if(!t||"recreate"===t||"media"===t){var a=i.getMediaOption(this);a.length&&P(a,(function(t){n=!0,this._mergeOption(t,e)}),this)}return n},e.prototype.mergeOption=function(t){this._mergeOption(t,null)},e.prototype._mergeOption=function(t,e){var n=this.option,i=this._componentsMap,r=this._componentsCount,o=[],a=ut(),s=e&&e.replaceMergeMainTypeMap;Nc(this).datasetMap=ut(),P(t,(function(t,e){null!=t&&(_c.hasClass(e)?e&&(o.push(e),a.set(e,!0)):n[e]=null==n[e]?w(t):S(n[e],t,!0))})),s&&s.each((function(t,e){_c.hasClass(e)&&!a.get(e)&&(o.push(e),a.set(e,!0))})),_c.topologicalTravel(o,_c.getAllClassMainTypes(),(function(e){var o=function(t,e,n){var i=Hc.get(e);if(!i)return n;var r=i(t);return r?n.concat(r):n}(this,e,cr(t[e])),a=i.get(e),l=a?s&&s.get(e)?"replaceMerge":"normalMerge":"replaceAll",u=gr(a,o,l);(function(t,e,n){P(t,(function(t){var i=t.newOption;U(i)&&(t.keyInfo.mainType=e,t.keyInfo.subType=function(t,e,n,i){return e.type?e.type:n?n.subType:i.determineSubType(t,e)}(e,i,t.existing,n))}))})(u,e,_c),n[e]=null,i.set(e,null),r.set(e,0);var h=[],c=[],p=0;P(u,(function(t,n){var i=t.existing,r=t.newOption;if(r){var o=_c.getClass(e,t.keyInfo.subType,!0);if(i&&i.constructor===o)i.name=t.keyInfo.name,i.mergeOption(r,this),i.optionUpdated(r,!1);else{var a=T({componentIndex:n},t.keyInfo);T(i=new o(r,this,this,a),a),t.brandNew&&(i.__requireNewView=!0),i.init(r,this,this),i.optionUpdated(null,!0)}}else i&&(i.mergeOption({},this),i.optionUpdated({},!1));i?(h.push(i.option),c.push(i),p++):(h.push(void 0),c.push(void 0))}),this),n[e]=h,i.set(e,c),r.set(e,p),"series"===e&&Gc(this)}),this),this._seriesIndices||Gc(this)},e.prototype.getOption=function(){var t=w(this.option);return P(t,(function(e,n){if(_c.hasClass(n)){for(var i=cr(e),r=i.length,o=!1,a=r-1;a>=0;a--)i[a]&&!xr(i[a])?o=!0:(i[a]=null,!o&&r--);i.length=r,t[n]=i}})),delete t["\0_ec_inner"],t},e.prototype.getTheme=function(){return this._theme},e.prototype.getLocaleModel=function(){return this._locale},e.prototype.getLocale=function(t){return this.getLocaleModel().get(t)},e.prototype.setUpdatePayload=function(t){this._payload=t},e.prototype.getUpdatePayload=function(){return this._payload},e.prototype.getComponent=function(t,e){var n=this._componentsMap.get(t);if(n){var i=n[e||0];if(i)return i;if(null==e)for(var r=0;r<n.length;r++)if(n[r])return n[r]}},e.prototype.queryComponents=function(t){var e=t.mainType;if(!e)return[];var n,i=t.index,r=t.id,o=t.name,a=this._componentsMap.get(e);return a&&a.length?(null!=i?(n=[],P(cr(i),(function(t){a[t]&&n.push(a[t])}))):n=null!=r?$c("id",r,a):null!=o?$c("name",o,a):N(a,(function(t){return!!t})),Jc(n,t)):[]},e.prototype.findComponents=function(t){var e,n,i,r,o,a=t.query,s=t.mainType,l=(n=s+"Index",i=s+"Id",r=s+"Name",!(e=a)||null==e[n]&&null==e[i]&&null==e[r]?null:{mainType:s,index:e[n],id:e[i],name:e[r]}),u=l?this.queryComponents(l):N(this._componentsMap.get(s),(function(t){return!!t}));return o=Jc(u,t),t.filter?N(o,t.filter):o},e.prototype.eachComponent=function(t,e,n){var i=this._componentsMap;if(F(t)){var r=e,o=t;i.each((function(t,e){for(var n=0;t&&n<t.length;n++){var i=t[n];i&&o.call(r,e,i,i.componentIndex)}}))}else for(var a=H(t)?i.get(t):U(t)?this.findComponents(t):null,s=0;a&&s<a.length;s++){var l=a[s];l&&e.call(n,l,l.componentIndex)}},e.prototype.getSeriesByName=function(t){var e=mr(t,null);return N(this._componentsMap.get("series"),(function(t){return!!t&&null!=e&&t.name===e}))},e.prototype.getSeriesByIndex=function(t){return this._componentsMap.get("series")[t]},e.prototype.getSeriesByType=function(t){return N(this._componentsMap.get("series"),(function(e){return!!e&&e.subType===t}))},e.prototype.getSeries=function(){return N(this._componentsMap.get("series").slice(),(function(t){return!!t}))},e.prototype.getSeriesCount=function(){return this._componentsCount.get("series")},e.prototype.eachSeries=function(t,e){Wc(this),P(this._seriesIndices,(function(n){var i=this._componentsMap.get("series")[n];t.call(e,i,n)}),this)},e.prototype.eachRawSeries=function(t,e){P(this._componentsMap.get("series"),(function(n){n&&t.call(e,n,n.componentIndex)}))},e.prototype.eachSeriesByType=function(t,e,n){Wc(this),P(this._seriesIndices,(function(i){var r=this._componentsMap.get("series")[i];r.subType===t&&e.call(n,r,i)}),this)},e.prototype.eachRawSeriesByType=function(t,e,n){return P(this.getSeriesByType(t),e,n)},e.prototype.isSeriesFiltered=function(t){return Wc(this),null==this._seriesIndicesMap.get(t.componentIndex)},e.prototype.getCurrentSeriesIndices=function(){return(this._seriesIndices||[]).slice()},e.prototype.filterSeries=function(t,e){Wc(this);var n=[];P(this._seriesIndices,(function(i){var r=this._componentsMap.get("series")[i];t.call(e,r,i)&&n.push(i)}),this),this._seriesIndices=n,this._seriesIndicesMap=ut(n)},e.prototype.restoreData=function(t){Gc(this);var e=this._componentsMap,n=[];e.each((function(t,e){_c.hasClass(e)&&n.push(e)})),_c.topologicalTravel(n,_c.getAllClassMainTypes(),(function(n){P(e.get(n),(function(e){!e||"series"===n&&function(t,e){if(e){var n=e.seriesIndex,i=e.seriesId,r=e.seriesName;return null!=n&&t.componentIndex!==n||null!=i&&t.id!==i||null!=r&&t.name!==r}}(e,t)||e.restoreData()}))}))},e.internalField=(Gc=function(t){var e=t._seriesIndices=[];P(t._componentsMap.get("series"),(function(t){t&&e.push(t.componentIndex)})),t._seriesIndicesMap=ut(e)},Wc=function(t){},void(Uc=function(t,e){t.option={},t.option["\0_ec_inner"]=1,t._componentsMap=ut({series:[]}),t._componentsCount=ut();var n=e.aria;U(n)&&null==n.enabled&&(n.enabled=!0),function(t,e){var n=t.color&&!t.colorLayer;P(e,(function(e,i){"colorLayer"===i&&n||_c.hasClass(i)||("object"==typeof e?t[i]=t[i]?S(t[i],e,!1):w(e):null==t[i]&&(t[i]=e))}))}(e,t._theme.option),S(e,wc,!1),t._mergeOption(e,null)})),e}(sh);function $c(t,e,n){if(V(e)){var i=ut();return P(e,(function(t){null!=t&&(null!=mr(t,null)&&i.set(t,!0))})),N(n,(function(e){return e&&i.get(e[t])}))}var r=mr(e,null);return N(n,(function(e){return e&&null!=r&&e[t]===r}))}function Jc(t,e){return e.hasOwnProperty("subType")?N(t,(function(t){return t&&t.subType===e.subType})):t}function Qc(t){var e=ut();return t&&P(cr(t.replaceMerge),(function(t){e.set(t,!0)})),{replaceMergeMainTypeMap:e}}k(Kc,Zc);var tp=["getDom","getZr","getWidth","getHeight","getDevicePixelRatio","dispatchAction","isDisposed","on","off","getDataURL","getConnectedDataURL","getOption","getId","updateLabelLayout"],ep=function(t){P(tp,(function(e){this[e]=B(t[e],t)}),this)},np={},ip=function(){function t(){this._coordinateSystems=[]}return t.prototype.create=function(t,e){var n=[];P(np,(function(i,r){var o=i.create(t,e);n=n.concat(o||[])})),this._coordinateSystems=n},t.prototype.update=function(t,e){P(this._coordinateSystems,(function(n){n.update&&n.update(t,e)}))},t.prototype.getCoordinateSystems=function(){return this._coordinateSystems.slice()},t.register=function(t,e){np[t]=e},t.get=function(t){return np[t]},t}(),rp=/^(min|max)?(.+)$/,op=function(){function t(t){this._timelineOptions=[],this._mediaList=[],this._currentMediaIndices=[],this._api=t}return t.prototype.setOption=function(t,e,n){t&&(P(cr(t.series),(function(t){t&&t.data&&X(t.data)&&at(t.data)})),P(cr(t.dataset),(function(t){t&&t.source&&X(t.source)&&at(t.source)}))),t=w(t);var i=this._optionBackup,r=function(t,e,n){var i,r,o=[],a=t.baseOption,s=t.timeline,l=t.options,u=t.media,h=!!t.media,c=!!(l||s||a&&a.timeline);a?(r=a).timeline||(r.timeline=s):((c||h)&&(t.options=t.media=null),r=t);h&&V(u)&&P(u,(function(t){t&&t.option&&(t.query?o.push(t):i||(i=t))}));function p(t){P(e,(function(e){e(t,n)}))}return p(r),P(l,(function(t){return p(t)})),P(o,(function(t){return p(t.option)})),{baseOption:r,timelineOptions:l||[],mediaDefault:i,mediaList:o}}(t,e,!i);this._newBaseOption=r.baseOption,i?(r.timelineOptions.length&&(i.timelineOptions=r.timelineOptions),r.mediaList.length&&(i.mediaList=r.mediaList),r.mediaDefault&&(i.mediaDefault=r.mediaDefault)):this._optionBackup=r},t.prototype.mountOption=function(t){var e=this._optionBackup;return this._timelineOptions=e.timelineOptions,this._mediaList=e.mediaList,this._mediaDefault=e.mediaDefault,this._currentMediaIndices=[],w(t?e.baseOption:this._newBaseOption)},t.prototype.getTimelineOption=function(t){var e,n=this._timelineOptions;if(n.length){var i=t.getComponent("timeline");i&&(e=w(n[i.getCurrentIndex()]))}return e},t.prototype.getMediaOption=function(t){var e,n,i=this._api.getWidth(),r=this._api.getHeight(),o=this._mediaList,a=this._mediaDefault,s=[],l=[];if(!o.length&&!a)return l;for(var u=0,h=o.length;u<h;u++)ap(o[u].query,i,r)&&s.push(u);return!s.length&&a&&(s=[-1]),s.length&&(e=s,n=this._currentMediaIndices,e.join(",")!==n.join(","))&&(l=O(s,(function(t){return w(-1===t?a.option:o[t].option)}))),this._currentMediaIndices=s,l},t}();function ap(t,e,n){var i={width:e,height:n,aspectratio:e/n},r=!0;return P(t,(function(t,e){var n=e.match(rp);if(n&&n[1]&&n[2]){var o=n[1],a=n[2].toLowerCase();(function(t,e,n){return"min"===n?t>=e:"max"===n?t<=e:t===e})(i[a],t,o)||(r=!1)}})),r}var sp=P,lp=U,up=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function hp(t){var e=t&&t.itemStyle;if(e)for(var n=0,i=up.length;n<i;n++){var r=up[n],o=e.normal,a=e.emphasis;o&&o[r]&&(t[r]=t[r]||{},t[r].normal?S(t[r].normal,o[r]):t[r].normal=o[r],o[r]=null),a&&a[r]&&(t[r]=t[r]||{},t[r].emphasis?S(t[r].emphasis,a[r]):t[r].emphasis=a[r],a[r]=null)}}function cp(t,e,n){if(t&&t[e]&&(t[e].normal||t[e].emphasis)){var i=t[e].normal,r=t[e].emphasis;i&&(n?(t[e].normal=t[e].emphasis=null,C(t[e],i)):t[e]=i),r&&(t.emphasis=t.emphasis||{},t.emphasis[e]=r,r.focus&&(t.emphasis.focus=r.focus),r.blurScope&&(t.emphasis.blurScope=r.blurScope))}}function pp(t){cp(t,"itemStyle"),cp(t,"lineStyle"),cp(t,"areaStyle"),cp(t,"label"),cp(t,"labelLine"),cp(t,"upperLabel"),cp(t,"edgeLabel")}function dp(t,e){var n=lp(t)&&t[e],i=lp(n)&&n.textStyle;if(i){0;for(var r=0,o=dr.length;r<o;r++){var a=dr[r];i.hasOwnProperty(a)&&(n[a]=i[a])}}}function fp(t){t&&(pp(t),dp(t,"label"),t.emphasis&&dp(t.emphasis,"label"))}function gp(t){return V(t)?t:t?[t]:[]}function yp(t){return(V(t)?t[0]:t)||{}}function vp(t,e){sp(gp(t.series),(function(t){lp(t)&&function(t){if(lp(t)){hp(t),pp(t),dp(t,"label"),dp(t,"upperLabel"),dp(t,"edgeLabel"),t.emphasis&&(dp(t.emphasis,"label"),dp(t.emphasis,"upperLabel"),dp(t.emphasis,"edgeLabel"));var e=t.markPoint;e&&(hp(e),fp(e));var n=t.markLine;n&&(hp(n),fp(n));var i=t.markArea;i&&fp(i);var r=t.data;if("graph"===t.type){r=r||t.nodes;var o=t.links||t.edges;if(o&&!X(o))for(var a=0;a<o.length;a++)fp(o[a]);P(t.categories,(function(t){pp(t)}))}if(r&&!X(r))for(a=0;a<r.length;a++)fp(r[a]);if((e=t.markPoint)&&e.data){var s=e.data;for(a=0;a<s.length;a++)fp(s[a])}if((n=t.markLine)&&n.data){var l=n.data;for(a=0;a<l.length;a++)V(l[a])?(fp(l[a][0]),fp(l[a][1])):fp(l[a])}"gauge"===t.type?(dp(t,"axisLabel"),dp(t,"title"),dp(t,"detail")):"treemap"===t.type?(cp(t.breadcrumb,"itemStyle"),P(t.levels,(function(t){pp(t)}))):"tree"===t.type&&pp(t.leaves)}}(t)}));var n=["xAxis","yAxis","radiusAxis","angleAxis","singleAxis","parallelAxis","radar"];e&&n.push("valueAxis","categoryAxis","logAxis","timeAxis"),sp(n,(function(e){sp(gp(t[e]),(function(t){t&&(dp(t,"axisLabel"),dp(t.axisPointer,"label"))}))})),sp(gp(t.parallel),(function(t){var e=t&&t.parallelAxisDefault;dp(e,"axisLabel"),dp(e&&e.axisPointer,"label")})),sp(gp(t.calendar),(function(t){cp(t,"itemStyle"),dp(t,"dayLabel"),dp(t,"monthLabel"),dp(t,"yearLabel")})),sp(gp(t.radar),(function(t){dp(t,"name"),t.name&&null==t.axisName&&(t.axisName=t.name,delete t.name),null!=t.nameGap&&null==t.axisNameGap&&(t.axisNameGap=t.nameGap,delete t.nameGap)})),sp(gp(t.geo),(function(t){lp(t)&&(fp(t),sp(gp(t.regions),(function(t){fp(t)})))})),sp(gp(t.timeline),(function(t){fp(t),cp(t,"label"),cp(t,"itemStyle"),cp(t,"controlStyle",!0);var e=t.data;V(e)&&P(e,(function(t){U(t)&&(cp(t,"label"),cp(t,"itemStyle"))}))})),sp(gp(t.toolbox),(function(t){cp(t,"iconStyle"),sp(t.feature,(function(t){cp(t,"iconStyle")}))})),dp(yp(t.axisPointer),"label"),dp(yp(t.tooltip).axisPointer,"label")}function mp(t){t&&P(_p,(function(e){e[0]in t&&!(e[1]in t)&&(t[e[1]]=t[e[0]])}))}var _p=[["x","left"],["y","top"],["x2","right"],["y2","bottom"]],xp=["grid","geo","parallel","legend","toolbox","title","visualMap","dataZoom","timeline"],bp=[["borderRadius","barBorderRadius"],["borderColor","barBorderColor"],["borderWidth","barBorderWidth"]];function wp(t){var e=t&&t.itemStyle;if(e)for(var n=0;n<bp.length;n++){var i=bp[n][1],r=bp[n][0];null!=e[i]&&(e[r]=e[i])}}function Sp(t){t&&"edge"===t.alignTo&&null!=t.margin&&null==t.edgeDistance&&(t.edgeDistance=t.margin)}function Mp(t){t&&t.downplay&&!t.blur&&(t.blur=t.downplay)}function Tp(t,e){if(t)for(var n=0;n<t.length;n++)e(t[n]),t[n]&&Tp(t[n].children,e)}function Cp(t,e){vp(t,e),t.series=cr(t.series),P(t.series,(function(t){if(U(t)){var e=t.type;if("line"===e)null!=t.clipOverflow&&(t.clip=t.clipOverflow);else if("pie"===e||"gauge"===e){if(null!=t.clockWise&&(t.clockwise=t.clockWise),Sp(t.label),(r=t.data)&&!X(r))for(var n=0;n<r.length;n++)Sp(r[n]);null!=t.hoverOffset&&(t.emphasis=t.emphasis||{},(t.emphasis.scaleSize=null)&&(t.emphasis.scaleSize=t.hoverOffset))}else if("gauge"===e){var i=function(t,e){for(var n=e.split(","),i=t,r=0;r<n.length&&null!=(i=i&&i[n[r]]);r++);return i}(t,"pointer.color");null!=i&&function(t,e,n,i){for(var r,o=e.split(","),a=t,s=0;s<o.length-1;s++)null==a[r=o[s]]&&(a[r]={}),a=a[r];(i||null==a[o[s]])&&(a[o[s]]=n)}(t,"itemStyle.color",i)}else if("bar"===e){var r;if(wp(t),wp(t.backgroundStyle),wp(t.emphasis),(r=t.data)&&!X(r))for(n=0;n<r.length;n++)"object"==typeof r[n]&&(wp(r[n]),wp(r[n]&&r[n].emphasis))}else if("sunburst"===e){var o=t.highlightPolicy;o&&(t.emphasis=t.emphasis||{},t.emphasis.focus||(t.emphasis.focus=o)),Mp(t),Tp(t.data,Mp)}else"graph"===e||"sankey"===e?function(t){t&&null!=t.focusNodeAdjacency&&(t.emphasis=t.emphasis||{},null==t.emphasis.focus&&(t.emphasis.focus="adjacency"))}(t):"map"===e&&(t.mapType&&!t.map&&(t.map=t.mapType),t.mapLocation&&C(t,t.mapLocation));null!=t.hoverAnimation&&(t.emphasis=t.emphasis||{},t.emphasis&&null==t.emphasis.scale&&(t.emphasis.scale=t.hoverAnimation)),mp(t)}})),t.dataRange&&(t.visualMap=t.dataRange),P(xp,(function(e){var n=t[e];n&&(V(n)||(n=[n]),P(n,(function(t){mp(t)})))}))}function Ip(t){P(t,(function(e,n){var i=[],r=[NaN,NaN],o=[e.stackResultDimension,e.stackedOverDimension],a=e.data,s=e.isStackedByIndex,l=a.map(o,(function(o,l,u){var h,c,p=a.get(e.stackedDimension,u);if(isNaN(p))return r;s?c=a.getRawIndex(u):h=a.get(e.stackedByDimension,u);for(var d=NaN,f=n-1;f>=0;f--){var g=t[f];if(s||(c=g.data.rawIndexOf(g.stackedByDimension,h)),c>=0){var y=g.data.getByRawIndex(g.stackResultDimension,c);if(p>=0&&y>0||p<=0&&y<0){p+=y,d=y;break}}}return i[0]=p,i[1]=d,i}));a.hostModel.setData(l),e.data=l}))}var Ap,Dp,kp,Lp,Pp,Op=function(t){this.data=t.data||(t.sourceFormat===Ic?{}:[]),this.sourceFormat=t.sourceFormat||Dc,this.seriesLayoutBy=t.seriesLayoutBy||kc,this.startIndex=t.startIndex||0,this.dimensionsDefine=t.dimensionsDefine,this.dimensionsDetectedCount=t.dimensionsDetectedCount,this.encodeDefine=t.encodeDefine,this.metaRawOption=t.metaRawOption};function Rp(t){return t instanceof Op}function Np(t,e,n,i){n=n||zp(t);var r=e.seriesLayoutBy,o=function(t,e,n,i,r){var o,a;if(!t)return{dimensionsDefine:Vp(r),startIndex:a,dimensionsDetectedCount:o};if(e===Tc){var s=t;"auto"===i||null==i?Fp((function(t){null!=t&&"-"!==t&&(H(t)?null==a&&(a=1):a=0)}),n,s,10):a=W(i)?i:i?1:0,r||1!==a||(r=[],Fp((function(t,e){r[e]=null!=t?t+"":""}),n,s,1/0)),o=r?r.length:n===Lc?s.length:s[0]?s[0].length:null}else if(e===Cc)r||(r=function(t){var e,n=0;for(;n<t.length&&!(e=t[n++]););if(e){var i=[];return P(e,(function(t,e){i.push(e)})),i}}(t));else if(e===Ic)r||(r=[],P(t,(function(t,e){r.push(e)})));else if(e===Mc){var l=fr(t[0]);o=V(l)&&l.length||1}return{startIndex:a,dimensionsDefine:Vp(r),dimensionsDetectedCount:o}}(t,n,r,e.sourceHeader,e.dimensions);return new Op({data:t,sourceFormat:n,seriesLayoutBy:r,dimensionsDefine:o.dimensionsDefine,startIndex:o.startIndex,dimensionsDetectedCount:o.dimensionsDetectedCount,encodeDefine:Bp(i),metaRawOption:w(e)})}function Ep(t){return new Op({data:t,sourceFormat:X(t)?Ac:Mc})}function Bp(t){return t?ut(t):null}function zp(t){var e=Dc;if(X(t))e=Ac;else if(V(t)){0===t.length&&(e=Tc);for(var n=0,i=t.length;n<i;n++){var r=t[n];if(null!=r){if(V(r)){e=Tc;break}if(U(r)){e=Cc;break}}}}else if(U(t))for(var o in t)if(ct(t,o)&&L(t[o])){e=Ic;break}return e}function Vp(t){if(t){var e=ut();return O(t,(function(t,n){var i={name:(t=U(t)?t:{name:t}).name,displayName:t.displayName,type:t.type};if(null==i.name)return i;i.name+="",null==i.displayName&&(i.displayName=i.name);var r=e.get(i.name);return r?i.name+="-"+r.count++:e.set(i.name,{count:1}),i}))}}function Fp(t,e,n,i){if(e===Lc)for(var r=0;r<n.length&&r<i;r++)t(n[r]?n[r][0]:null,r);else{var o=n[0]||[];for(r=0;r<o.length&&r<i;r++)t(o[r],r)}}var Hp=function(){function t(t,e){var n=Rp(t)?t:Ep(t);this._source=n;var i=this._data=n.data;n.sourceFormat===Ac&&(this._offset=0,this._dimSize=e,this._data=i),Pp(this,i,n)}return t.prototype.getSource=function(){return this._source},t.prototype.count=function(){return 0},t.prototype.getItem=function(t,e){},t.prototype.appendData=function(t){},t.prototype.clean=function(){},t.protoInitialize=function(){var e=t.prototype;e.pure=!1,e.persistent=!0}(),t.internalField=function(){var t;Pp=function(t,r,o){var a=o.sourceFormat,s=o.seriesLayoutBy,l=o.startIndex,u=o.dimensionsDefine,h=Lp[$p(a,s)];if(T(t,h),a===Ac)t.getItem=e,t.count=i,t.fillStorage=n;else{var c=Up(a,s);t.getItem=B(c,null,r,l,u);var p=Zp(a,s);t.count=B(p,null,r,l,u)}};var e=function(t,e){t-=this._offset,e=e||[];for(var n=this._data,i=this._dimSize,r=i*t,o=0;o<i;o++)e[o]=n[r+o];return e},n=function(t,e,n,i){for(var r=this._data,o=this._dimSize,a=0;a<o;a++){for(var s=i[a],l=null==s[0]?1/0:s[0],u=null==s[1]?-1/0:s[1],h=e-t,c=n[a],p=0;p<h;p++){var d=r[p*o+a];c[t+p]=d,d<l&&(l=d),d>u&&(u=d)}s[0]=l,s[1]=u}},i=function(){return this._data?this._data.length/this._dimSize:0};function r(t){for(var e=0;e<t.length;e++)this._data.push(t[e])}(t={}).arrayRows_column={pure:!0,appendData:r},t.arrayRows_row={pure:!0,appendData:function(){throw new Error('Do not support appendData when set seriesLayoutBy: "row".')}},t.objectRows={pure:!0,appendData:r},t.keyedColumns={pure:!0,appendData:function(t){var e=this._data;P(t,(function(t,n){for(var i=e[n]||(e[n]=[]),r=0;r<(t||[]).length;r++)i.push(t[r])}))}},t.original={appendData:r},t.typedArray={persistent:!1,pure:!0,appendData:function(t){this._data=t},clean:function(){this._offset+=this.count(),this._data=null}},Lp=t}(),t}(),Gp=function(t,e,n,i){return t[i]},Wp=((Ap={}).arrayRows_column=function(t,e,n,i){return t[i+e]},Ap.arrayRows_row=function(t,e,n,i){i+=e;for(var r=[],o=t,a=0;a<o.length;a++){var s=o[a];r.push(s?s[i]:null)}return r},Ap.objectRows=Gp,Ap.keyedColumns=function(t,e,n,i){for(var r=[],o=0;o<n.length;o++){var a=n[o].name;0;var s=t[a];r.push(s?s[i]:null)}return r},Ap.original=Gp,Ap);function Up(t,e){var n=Wp[$p(t,e)];return n}var Yp=function(t,e,n){return t.length},Xp=((Dp={}).arrayRows_column=function(t,e,n){return Math.max(0,t.length-e)},Dp.arrayRows_row=function(t,e,n){var i=t[0];return i?Math.max(0,i.length-e):0},Dp.objectRows=Yp,Dp.keyedColumns=function(t,e,n){var i=n[0].name;var r=t[i];return r?r.length:0},Dp.original=Yp,Dp);function Zp(t,e){var n=Xp[$p(t,e)];return n}var jp=function(t,e,n){return null!=e?t[e]:t},qp=((kp={}).arrayRows=jp,kp.objectRows=function(t,e,n){return null!=e?t[n]:t},kp.keyedColumns=jp,kp.original=function(t,e,n){var i=fr(t);return null!=e&&i instanceof Array?i[e]:i},kp.typedArray=jp,kp);function Kp(t){var e=qp[t];return e}function $p(t,e){return t===Tc?t+"_"+e:t}function Jp(t,e,n){if(t){var i=t.getRawDataItem(e);if(null!=i){var r,o,a=t.getProvider().getSource().sourceFormat,s=t.getDimensionInfo(n);return s&&(r=s.name,o=s.index),Kp(a)(i,o,r)}}}var Qp=/\{@(.+?)\}/g,td=function(){function t(){}return t.prototype.getDataParams=function(t,e){var n=this.getData(e),i=this.getRawValue(t,e),r=n.getRawIndex(t),o=n.getName(t),a=n.getRawDataItem(t),s=n.getItemVisual(t,"style"),l=s&&s[n.getItemVisual(t,"drawType")||"fill"],u=s&&s.stroke,h=this.mainType,c="series"===h,p=n.userOutput;return{componentType:h,componentSubType:this.subType,componentIndex:this.componentIndex,seriesType:c?this.subType:null,seriesIndex:this.seriesIndex,seriesId:c?this.id:null,seriesName:c?this.name:null,name:o,dataIndex:r,data:a,dataType:e,value:i,color:l,borderColor:u,dimensionNames:p?p.dimensionNames:null,encode:p?p.encode:null,$vars:["seriesName","name","value"]}},t.prototype.getFormattedLabel=function(t,e,n,i,r,o){e=e||"normal";var a=this.getData(n),s=this.getDataParams(t,n);(o&&(s.value=o.interpolatedValue),null!=i&&V(s.value)&&(s.value=s.value[i]),r)||(r=a.getItemModel(t).get("normal"===e?["label","formatter"]:[e,"label","formatter"]));return"function"==typeof r?(s.status=e,s.dimensionIndex=i,r(s)):"string"==typeof r?ic(r,s).replace(Qp,(function(e,n){var i=n.length,r="["===n.charAt(0)&&"]"===n.charAt(i-1)?+n.slice(1,i-1):n,s=Jp(a,t,r);if(o&&V(o.interpolatedValue)){var l=a.getDimensionInfo(r);l&&(s=o.interpolatedValue[l.index])}return null!=s?s+"":""})):void 0},t.prototype.getRawValue=function(t,e){return Jp(this.getData(e),t)},t.prototype.formatTooltip=function(t,e,n){},t}();function ed(t){var e,n;return U(t)?t.type&&(n=t):e=t,{markupText:e,markupFragment:n}}function nd(t){return new id(t)}var id=function(){function t(t){t=t||{},this._reset=t.reset,this._plan=t.plan,this._count=t.count,this._onDirty=t.onDirty,this._dirty=!0}return t.prototype.perform=function(t){var e,n=this._upstream,i=t&&t.skip;if(this._dirty&&n){var r=this.context;r.data=r.outputData=n.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this),this._plan&&!i&&(e=this._plan(this.context));var o,a=h(this._modBy),s=this._modDataCount||0,l=h(t&&t.modBy),u=t&&t.modDataCount||0;function h(t){return!(t>=1)&&(t=1),t}a===l&&s===u||(e="reset"),(this._dirty||"reset"===e)&&(this._dirty=!1,o=this._doReset(i)),this._modBy=l,this._modDataCount=u;var c=t&&t.step;if(this._dueEnd=n?n._outputDueEnd:this._count?this._count(this.context):1/0,this._progress){var p=this._dueIndex,d=Math.min(null!=c?this._dueIndex+c:1/0,this._dueEnd);if(!i&&(o||p<d)){var f=this._progress;if(V(f))for(var g=0;g<f.length;g++)this._doProgress(f[g],p,d,l,u);else this._doProgress(f,p,d,l,u)}this._dueIndex=d;var y=null!=this._settedOutputEnd?this._settedOutputEnd:d;0,this._outputDueEnd=y}else this._dueIndex=this._outputDueEnd=null!=this._settedOutputEnd?this._settedOutputEnd:this._dueEnd;return this.unfinished()},t.prototype.dirty=function(){this._dirty=!0,this._onDirty&&this._onDirty(this.context)},t.prototype._doProgress=function(t,e,n,i,r){rd.reset(e,n,i,r),this._callingProgress=t,this._callingProgress({start:e,end:n,count:n-e,next:rd.next},this.context)},t.prototype._doReset=function(t){var e,n;this._dueIndex=this._outputDueEnd=this._dueEnd=0,this._settedOutputEnd=null,!t&&this._reset&&((e=this._reset(this.context))&&e.progress&&(n=e.forceFirstProgress,e=e.progress),V(e)&&!e.length&&(e=null)),this._progress=e,this._modBy=this._modDataCount=null;var i=this._downstream;return i&&i.dirty(),n},t.prototype.unfinished=function(){return this._progress&&this._dueIndex<this._dueEnd},t.prototype.pipe=function(t){(this._downstream!==t||this._dirty)&&(this._downstream=t,t._upstream=this,t.dirty())},t.prototype.dispose=function(){this._disposed||(this._upstream&&(this._upstream._downstream=null),this._downstream&&(this._downstream._upstream=null),this._dirty=!1,this._disposed=!0)},t.prototype.getUpstream=function(){return this._upstream},t.prototype.getDownstream=function(){return this._downstream},t.prototype.setOutputEnd=function(t){this._outputDueEnd=this._settedOutputEnd=t},t}(),rd=function(){var t,e,n,i,r,o={reset:function(l,u,h,c){e=l,t=u,n=h,i=c,r=Math.ceil(i/n),o.next=n>1&&i>0?s:a}};return o;function a(){return e<t?e++:null}function s(){var o=e%r*n+Math.ceil(e/r),a=e>=t?null:o<i?o:e;return e++,a}}();function od(t,e){var n=e&&e.type;if("ordinal"===n){var i=e&&e.ordinalMeta;return i?i.parseAndCollect(t):t}return"time"===n&&"number"!=typeof t&&null!=t&&"-"!==t&&(t=+Ji(t)),null==t||""===t?NaN:+t}ut({number:function(t){return parseFloat(t)},time:function(t){return+Ji(t)},trim:function(t){return"string"==typeof t?rt(t):t}});var ad=function(){function t(t,e){var n="desc"===t;this._resultLT=n?1:-1,null==e&&(e=n?"min":"max"),this._incomparable="min"===e?-1/0:1/0}return t.prototype.evaluate=function(t,e){var n=typeof t,i=typeof e,r="number"===n?t:nr(t),o="number"===i?e:nr(e),a=isNaN(r),s=isNaN(o);if(a&&(r=this._incomparable),s&&(o=this._incomparable),a&&s){var l="string"===n,u="string"===i;l&&(r=u?t:0),u&&(o=l?e:0)}return r<o?this._resultLT:r>o?-this._resultLT:0},t}(),sd=function(){function t(){}return t.prototype.getRawData=function(){throw new Error("not supported")},t.prototype.getRawDataItem=function(t){throw new Error("not supported")},t.prototype.cloneRawData=function(){},t.prototype.getDimensionInfo=function(t){},t.prototype.cloneAllDimensionInfo=function(){},t.prototype.count=function(){},t.prototype.retrieveValue=function(t,e){},t.prototype.retrieveValueFromItem=function(t,e){},t.prototype.convertValue=function(t,e){return od(t,e)},t}();function ld(t){var e=t.sourceFormat;if(!fd(e)){var n="";0,lr(n)}return t.data}function ud(t){var e=t.sourceFormat,n=t.data;if(!fd(e)){var i="";0,lr(i)}if(e===Tc){for(var r=[],o=0,a=n.length;o<a;o++)r.push(n[o].slice());return r}if(e===Cc){for(r=[],o=0,a=n.length;o<a;o++)r.push(T({},n[o]));return r}}function hd(t,e,n){if(null!=n)return"number"==typeof n||!isNaN(n)&&!ct(e,n)?t[n]:ct(e,n)?e[n]:void 0}function cd(t){return w(t)}var pd=ut();function dd(t,e,n,i){var r="";e.length||lr(r),U(t)||lr(r);var o=t.type,a=pd.get(o);a||lr(r);var s=O(e,(function(t){return function(t,e){var n=new sd,i=t.data,r=n.sourceFormat=t.sourceFormat,o=t.startIndex,a="";t.seriesLayoutBy!==kc&&lr(a);var s=[],l={},u=t.dimensionsDefine;if(u)P(u,(function(t,e){var n=t.name,i={index:e,name:n,displayName:t.displayName};if(s.push(i),null!=n){var r="";ct(l,n)&&lr(r),l[n]=i}}));else for(var h=0;h<t.dimensionsDetectedCount;h++)s.push({index:h});var c=Up(r,kc);e.__isBuiltIn&&(n.getRawDataItem=function(t){return c(i,o,s,t)},n.getRawData=B(ld,null,t)),n.cloneRawData=B(ud,null,t);var p=Zp(r,kc);n.count=B(p,null,i,o,s);var d=Kp(r);n.retrieveValue=function(t,e){var n=c(i,o,s,t);return f(n,e)};var f=n.retrieveValueFromItem=function(t,e){if(null!=t){var n=s[e];return n?d(t,e,n.name):void 0}};return n.getDimensionInfo=B(hd,null,s,l),n.cloneAllDimensionInfo=B(cd,null,s),n}(t,a)})),l=cr(a.transform({upstream:s[0],upstreamList:s,config:w(t.config)}));return O(l,(function(t,n){var i,r="";U(t)||lr(r),t.data||lr(r),fd(zp(t.data))||lr(r);var o=e[0];if(o&&0===n&&!t.dimensions){var a=o.startIndex;a&&(t.data=o.data.slice(0,a).concat(t.data)),i={seriesLayoutBy:kc,sourceHeader:a,dimensions:o.metaRawOption.dimensions}}else i={seriesLayoutBy:kc,sourceHeader:0,dimensions:t.dimensions};return Np(t.data,i,null,null)}))}function fd(t){return t===Tc||t===Cc}var gd=function(){function t(t){this._sourceList=[],this._upstreamSignList=[],this._versionSignBase=0,this._sourceHost=t}return t.prototype.dirty=function(){this._setLocalSource([],[])},t.prototype._setLocalSource=function(t,e){this._sourceList=t,this._upstreamSignList=e,this._versionSignBase++,this._versionSignBase>9e10&&(this._versionSignBase=0)},t.prototype._getVersionSign=function(){return this._sourceHost.uid+"_"+this._versionSignBase},t.prototype.prepareSource=function(){this._isDirty()&&this._createSource()},t.prototype._createSource=function(){this._setLocalSource([],[]);var t,e,n=this._sourceHost,i=this._getUpstreamSourceManagers(),r=!!i.length;if(vd(n)){var o=n,a=void 0,s=void 0,l=void 0;if(r){var u=i[0];u.prepareSource(),a=(l=u.getSource()).data,s=l.sourceFormat,e=[u._getVersionSign()]}else s=X(a=o.get("data",!0))?Ac:Mc,e=[];var h=this._getSourceMetaRawOption(),c=l?l.metaRawOption:null;t=[Np(a,{seriesLayoutBy:Q(h.seriesLayoutBy,c?c.seriesLayoutBy:null),sourceHeader:Q(h.sourceHeader,c?c.sourceHeader:null),dimensions:Q(h.dimensions,c?c.dimensions:null)},s,o.get("encode",!0))]}else{var p=n;if(r){var d=this._applyTransform(i);t=d.sourceList,e=d.upstreamSignList}else{t=[Np(p.get("source",!0),this._getSourceMetaRawOption(),null,null)],e=[]}}this._setLocalSource(t,e)},t.prototype._applyTransform=function(t){var e,n=this._sourceHost,i=n.get("transform",!0),r=n.get("fromTransformResult",!0);if(null!=r){var o="";1!==t.length&&md(o)}var a,s=[],l=[];return P(t,(function(t){t.prepareSource();var e=t.getSource(r||0),n="";null==r||e||md(n),s.push(e),l.push(t._getVersionSign())})),i?e=function(t,e,n){var i=cr(t),r=i.length,o="";r||lr(o);for(var a=0,s=r;a<s;a++)e=dd(i[a],e),a!==s-1&&(e.length=Math.max(e.length,1));return e}(i,s,n.componentIndex):null!=r&&(e=[(a=s[0],new Op({data:a.data,sourceFormat:a.sourceFormat,seriesLayoutBy:a.seriesLayoutBy,dimensionsDefine:w(a.dimensionsDefine),startIndex:a.startIndex,dimensionsDetectedCount:a.dimensionsDetectedCount,encodeDefine:Bp(a.encodeDefine)}))]),{sourceList:e,upstreamSignList:l}},t.prototype._isDirty=function(){if(!this._sourceList.length)return!0;for(var t=this._getUpstreamSourceManagers(),e=0;e<t.length;e++){var n=t[e];if(n._isDirty()||this._upstreamSignList[e]!==n._getVersionSign())return!0}},t.prototype.getSource=function(t){return this._sourceList[t||0]},t.prototype._getUpstreamSourceManagers=function(){var t=this._sourceHost;if(vd(t)){var e=zc(t);return e?[e.getSourceManager()]:[]}return O(function(t){return t.get("transform",!0)||t.get("fromTransformResult",!0)?Ir(t.ecModel,"dataset",{index:t.get("fromDatasetIndex",!0),id:t.get("fromDatasetId",!0)},Tr).models:[]}(t),(function(t){return t.getSourceManager()}))},t.prototype._getSourceMetaRawOption=function(){var t,e,n,i=this._sourceHost;if(vd(i))t=i.get("seriesLayoutBy",!0),e=i.get("sourceHeader",!0),n=i.get("dimensions",!0);else if(!this._getUpstreamSourceManagers().length){var r=i;t=r.get("seriesLayoutBy",!0),e=r.get("sourceHeader",!0),n=r.get("dimensions",!0)}return{seriesLayoutBy:t,sourceHeader:e,dimensions:n}},t}();function yd(t){t.option.transform&&at(t.option.transform)}function vd(t){return"series"===t.mainType}function md(t){throw new Error(t)}function _d(t,e){var n=t.color||"#6e7079",i=t.fontSize||12,r=t.fontWeight||"400",o=t.color||"#464646",a=t.fontSize||14,s=t.fontWeight||"900";return"html"===e?{nameStyle:"font-size:"+i+"px;color:"+n+";font-weight:"+r,valueStyle:"font-size:"+a+"px;color:"+o+";font-weight:"+s}:{nameStyle:{fontSize:i,fill:n,fontWeight:r},valueStyle:{fontSize:a,fill:o,fontWeight:s}}}var xd=[0,10,20,30],bd=["","\n","\n\n","\n\n\n"];function wd(t,e){return e.type=t,e}function Sd(t){return ct(Md,t.type)&&Md[t.type]}var Md={section:{planLayout:function(t){var e=t.blocks.length,n=e>1||e>0&&!t.noHeader,i=0;P(t.blocks,(function(t){Sd(t).planLayout(t);var e=t.__gapLevelBetweenSubBlocks;e>=i&&(i=e+(!n||e&&("section"!==t.type||t.noHeader)?0:1))})),t.__gapLevelBetweenSubBlocks=i},build:function(t,e,n,i){var r=e.noHeader,o=Cd(e),a=function(t,e,n,i){var r=[],o=e.blocks||[];it(!o||V(o)),o=o||[];var a=t.orderMode;if(e.sortBlocks&&a){o=o.slice();var s={valueAsc:"asc",valueDesc:"desc"};if(ct(s,a)){var l=new ad(s[a],null);o.sort((function(t,e){return l.evaluate(t.sortParam,e.sortParam)}))}else"seriesDesc"===a&&o.reverse()}var u=Cd(e);if(P(o,(function(e,n){var o=Sd(e).build(t,e,n>0?u.html:0,i);null!=o&&r.push(o)})),!r.length)return;return"richText"===t.renderMode?r.join(u.richText):Id(r.join(""),n)}(t,e,r?n:o.html,i);if(r)return a;var s=tc(e.header,"ordinal",t.useUTC),l=_d(i,t.renderMode).nameStyle;return"richText"===t.renderMode?Ad(t,s,l)+o.richText+a:Id('<div style="'+l+";"+'line-height:1;">'+Qh(s)+"</div>"+a,n)}},nameValue:{planLayout:function(t){t.__gapLevelBetweenSubBlocks=0},build:function(t,e,n,i){var r=t.renderMode,o=e.noName,a=e.noValue,s=!e.markerType,l=e.name,u=e.value,h=t.useUTC;if(!o||!a){var c=s?"":t.markupStyleCreator.makeTooltipMarker(e.markerType,e.markerColor||"#333",r),p=o?"":tc(l,"ordinal",h),d=e.valueType,f=a?[]:V(u)?O(u,(function(t,e){return tc(t,V(d)?d[e]:d,h)})):[tc(u,V(d)?d[0]:d,h)],g=!s||!o,y=!s&&o,v=_d(i,r),m=v.nameStyle,_=v.valueStyle;return"richText"===r?(s?"":c)+(o?"":Ad(t,p,m))+(a?"":function(t,e,n,i,r){var o=[r],a=i?10:20;return n&&o.push({padding:[0,0,0,a],align:"right"}),t.markupStyleCreator.wrapRichTextStyle(e.join("  "),o)}(t,f,g,y,_)):Id((s?"":c)+(o?"":function(t,e,n){return'<span style="'+n+";"+(e?"margin-left:2px":"")+'">'+Qh(t)+"</span>"}(p,!s,m))+(a?"":function(t,e,n,i){var r=n?"10px":"20px";return'<span style="'+(e?"float:right;margin-left:"+r:"")+";"+i+'">'+O(t,(function(t){return Qh(t)})).join("&nbsp;&nbsp;")+"</span>"}(f,g,y,_)),n)}}}};function Td(t,e,n,i,r,o){if(t){var a=Sd(t);a.planLayout(t);var s={useUTC:r,renderMode:n,orderMode:i,markupStyleCreator:e};return a.build(s,t,0,o)}}function Cd(t){var e=t.__gapLevelBetweenSubBlocks;return{html:xd[e],richText:bd[e]}}function Id(t,e){return'<div style="'+("margin: "+e+"px 0 0")+";"+'line-height:1;">'+t+'<div style="clear:both"></div></div>'}function Ad(t,e,n){return t.markupStyleCreator.wrapRichTextStyle(e,n)}function Dd(t,e){var n=t.get("padding");return null!=n?n:"richText"===e?[8,10]:10}var kd=function(){function t(){this.richTextStyles={},this._nextStyleNameId=rr()}return t.prototype._generateStyleName=function(){return"__EC_aUTo_"+this._nextStyleNameId++},t.prototype.makeTooltipMarker=function(t,e,n){var i="richText"===n?this._generateStyleName():null,r=rc({color:e,type:t,renderMode:n,markerId:i});return H(r)?r:(this.richTextStyles[i]=r.style,r.content)},t.prototype.wrapRichTextStyle=function(t,e){var n={};V(e)?P(e,(function(t){return T(n,t)})):T(n,e);var i=this._generateStyleName();return this.richTextStyles[i]=n,"{"+i+"|"+t+"}"},t}();function Ld(t){var e,n,i,r,o=t.series,a=t.dataIndex,s=t.multipleSeries,l=o.getData(),u=l.mapDimensionsAll("defaultedTooltip"),h=u.length,c=o.getRawValue(a),p=V(c),d=function(t,e){return oc(t.getData().getItemVisual(e,"style")[t.visualDrawType])}(o,a);if(h>1||p&&!h){var f=function(t,e,n,i,r){var o=e.getData(),a=R(t,(function(t,e,n){var i=o.getDimensionInfo(n);return t||i&&!1!==i.tooltip&&null!=i.displayName}),!1),s=[],l=[],u=[];function h(t,e){var n=o.getDimensionInfo(e);n&&!1!==n.otherDims.tooltip&&(a?u.push(wd("nameValue",{markerType:"subItem",markerColor:r,name:n.displayName,value:t,valueType:n.type})):(s.push(t),l.push(n.type)))}return i.length?P(i,(function(t){h(Jp(o,n,t),t)})):P(t,h),{inlineValues:s,inlineValueTypes:l,blocks:u}}(c,o,a,u,d);e=f.inlineValues,n=f.inlineValueTypes,i=f.blocks,r=f.inlineValues[0]}else if(h){var g=l.getDimensionInfo(u[0]);r=e=Jp(l,a,u[0]),n=g.type}else r=e=p?c[0]:c;var y=_r(o),v=y&&o.name||"",m=l.getName(a),_=s?v:m;return wd("section",{header:v,noHeader:s||!y,sortParam:r,blocks:[wd("nameValue",{markerType:"item",markerColor:d,name:_,noName:!rt(_),value:e,valueType:n})].concat(i||[])})}var Pd=wr();function Od(t,e){return t.getName(e)||t.getId(e)}var Rd=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._selectedDataIndicesMap={},e}return n(e,t),e.prototype.init=function(t,e,n){this.seriesIndex=this.componentIndex,this.dataTask=nd({count:Ed,reset:Bd}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(t,n),(Pd(this).sourceManager=new gd(this)).prepareSource();var i=this.getInitialData(t,n);Vd(i,this),this.dataTask.context.data=i,Pd(this).dataBeforeProcessed=i,Nd(this),this._initSelectedMapFromData(i)},e.prototype.mergeDefaultAndTheme=function(t,e){var n=fc(this),i=n?yc(t):{},r=this.subType;_c.hasClass(r)&&(r+="Series"),S(t,e.getTheme().get(this.subType)),S(t,this.getDefaultOption()),pr(t,"label",["show"]),this.fillDataTextStyle(t.data),n&&gc(t,i,n)},e.prototype.mergeOption=function(t,e){t=S(this.option,t,!0),this.fillDataTextStyle(t.data);var n=fc(this);n&&gc(this.option,t,n);var i=Pd(this).sourceManager;i.dirty(),i.prepareSource();var r=this.getInitialData(t,e);Vd(r,this),this.dataTask.dirty(),this.dataTask.context.data=r,Pd(this).dataBeforeProcessed=r,Nd(this),this._initSelectedMapFromData(r)},e.prototype.fillDataTextStyle=function(t){if(t&&!X(t))for(var e=["show"],n=0;n<t.length;n++)t[n]&&t[n].label&&pr(t[n],"label",e)},e.prototype.getInitialData=function(t,e){},e.prototype.appendData=function(t){this.getRawData().appendData(t.data)},e.prototype.getData=function(t){var e=Hd(this);if(e){var n=e.context.data;return null==t?n:n.getLinkedData(t)}return Pd(this).data},e.prototype.getAllData=function(){var t=this.getData();return t&&t.getLinkedDataAll?t.getLinkedDataAll():[{data:t}]},e.prototype.setData=function(t){var e=Hd(this);if(e){var n=e.context;n.outputData=t,e!==this.dataTask&&(n.data=t)}Pd(this).data=t},e.prototype.getSource=function(){return Pd(this).sourceManager.getSource()},e.prototype.getRawData=function(){return Pd(this).dataBeforeProcessed},e.prototype.getBaseAxis=function(){var t=this.coordinateSystem;return t&&t.getBaseAxis&&t.getBaseAxis()},e.prototype.formatTooltip=function(t,e,n){return Ld({series:this,dataIndex:t,multipleSeries:e})},e.prototype.isAnimationEnabled=function(){if(a.node)return!1;var t=this.getShallow("animation");return t&&this.getData().count()>this.getShallow("animationThreshold")&&(t=!1),!!t},e.prototype.restoreData=function(){this.dataTask.dirty()},e.prototype.getColorFromPalette=function(t,e,n){var i=this.ecModel,r=Zc.prototype.getColorFromPalette.call(this,t,e,n);return r||(r=i.getColorFromPalette(t,e,n)),r},e.prototype.coordDimToDataDim=function(t){return this.getRawData().mapDimensionsAll(t)},e.prototype.getProgressive=function(){return this.get("progressive")},e.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},e.prototype.select=function(t,e){this._innerSelect(this.getData(e),t)},e.prototype.unselect=function(t,e){var n=this.option.selectedMap;if(n)for(var i=this.getData(e),r=0;r<t.length;r++){var o=Od(i,t[r]);n[o]=!1,this._selectedDataIndicesMap[o]=-1}},e.prototype.toggleSelect=function(t,e){for(var n=[],i=0;i<t.length;i++)n[0]=t[i],this.isSelected(t[i],e)?this.unselect(n,e):this.select(n,e)},e.prototype.getSelectedDataIndices=function(){for(var t=this._selectedDataIndicesMap,e=E(t),n=[],i=0;i<e.length;i++){var r=t[e[i]];r>=0&&n.push(r)}return n},e.prototype.isSelected=function(t,e){var n=this.option.selectedMap;return n&&n[Od(this.getData(e),t)]||!1},e.prototype._innerSelect=function(t,e){var n,i,r=this.option.selectedMode,o=e.length;if(r&&o)if("multiple"===r)for(var a=this.option.selectedMap||(this.option.selectedMap={}),s=0;s<o;s++){var l=e[s];a[h=Od(t,l)]=!0,this._selectedDataIndicesMap[h]=t.getRawIndex(l)}else if("single"===r||!0===r){var u=e[o-1],h=Od(t,u);this.option.selectedMap=((n={})[h]=!0,n),this._selectedDataIndicesMap=((i={})[h]=t.getRawIndex(u),i)}},e.prototype._initSelectedMapFromData=function(t){if(!this.option.selectedMap){var e=[];t.hasItemOption&&t.each((function(n){var i=t.getRawDataItem(n);"object"==typeof i&&i.selected&&e.push(n)})),e.length>0&&this._innerSelect(t,e)}},e.registerClass=function(t){return _c.registerClass(t)},e.protoInitialize=function(){var t=e.prototype;t.type="series.__base__",t.seriesIndex=0,t.useColorPaletteOnData=!1,t.ignoreStyleOnData=!1,t.hasSymbolVisual=!1,t.defaultSymbol="circle",t.visualStyleAccessPath="itemStyle",t.visualDrawType="fill"}(),e}(_c);function Nd(t){var e=t.name;_r(t)||(t.name=function(t){var e=t.getRawData(),n=e.mapDimensionsAll("seriesName"),i=[];return P(n,(function(t){var n=e.getDimensionInfo(t);n.displayName&&i.push(n.displayName)})),i.join(" ")}(t)||e)}function Ed(t){return t.model.getRawData().count()}function Bd(t){var e=t.model;return e.setData(e.getRawData().cloneShallow()),zd}function zd(t,e){e.outputData&&t.end>e.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function Vd(t,e){P(r(t.CHANGABLE_METHODS,t.DOWNSAMPLE_METHODS),(function(n){t.wrapMethod(n,z(Fd,e))}))}function Fd(t,e){var n=Hd(t);return n&&n.setOutputEnd((e||this).count()),e}function Hd(t){var e=(t.ecModel||{}).scheduler,n=e&&e.getPipeline(t.uid);if(n){var i=n.currentTask;if(i){var r=i.agentStubMap;r&&(i=r.get(t.uid))}return i}}k(Rd,td),k(Rd,Zc),Nr(Rd,_c);var Gd=function(){function t(){this.group=new Pi,this.uid=uh("viewComponent")}return t.prototype.init=function(t,e){},t.prototype.render=function(t,e,n,i){},t.prototype.dispose=function(t,e){},t.prototype.updateView=function(t,e,n,i){},t.prototype.updateLayout=function(t,e,n,i){},t.prototype.updateVisual=function(t,e,n,i){},t.prototype.blurSeries=function(t,e){},t}();function Wd(){var t=wr();return function(e){var n=t(e),i=e.pipelineContext,r=!!n.large,o=!!n.progressiveRender,a=n.large=!(!i||!i.large),s=n.progressiveRender=!(!i||!i.progressiveRender);return!(r===a&&o===s)&&"reset"}}Or(Gd),Vr(Gd);var Ud=wr(),Yd=Wd(),Xd=function(){function t(){this.group=new Pi,this.uid=uh("viewChart"),this.renderTask=nd({plan:qd,reset:Kd}),this.renderTask.context={view:this}}return t.prototype.init=function(t,e){},t.prototype.render=function(t,e,n,i){},t.prototype.highlight=function(t,e,n,i){jd(t.getData(),i,"emphasis")},t.prototype.downplay=function(t,e,n,i){jd(t.getData(),i,"normal")},t.prototype.remove=function(t,e){this.group.removeAll()},t.prototype.dispose=function(t,e){},t.prototype.updateView=function(t,e,n,i){this.render(t,e,n,i)},t.prototype.updateLayout=function(t,e,n,i){this.render(t,e,n,i)},t.prototype.updateVisual=function(t,e,n,i){this.render(t,e,n,i)},t.markUpdateMethod=function(t,e){Ud(t).updateMethod=e},t.protoInitialize=void(t.prototype.type="chart"),t}();function Zd(t,e,n){t&&("emphasis"===e?Os:Rs)(t,n)}function jd(t,e,n){var i=br(t,e),r=e&&null!=e.highlightKey?function(t){var e=us[t];return null==e&&ls<=32&&(e=us[t]=ls++),e}(e.highlightKey):null;null!=i?P(cr(i),(function(e){Zd(t.getItemGraphicEl(e),n,r)})):t.eachItemGraphicEl((function(t){Zd(t,n,r)}))}function qd(t){return Yd(t.model)}function Kd(t){var e=t.model,n=t.ecModel,i=t.api,r=t.payload,o=e.pipelineContext.progressiveRender,a=t.view,s=r&&Ud(r).updateMethod,l=o?"incrementalPrepareRender":s&&a[s]?s:"render";return"render"!==l&&a[l](e,n,i,r),$d[l]}Or(Xd),Vr(Xd);var $d={incrementalPrepareRender:{progress:function(t,e){e.view.incrementalRender(t,e.model,e.ecModel,e.api,e.payload)}},render:{forceFirstProgress:!0,progress:function(t,e){e.view.render(e.model,e.ecModel,e.api,e.payload)}}},Jd="\0__throttleOriginMethod",Qd="\0__throttleRate",tf="\0__throttleType";function ef(t,e,n){var i,r,o,a,s,l=0,u=0,h=null;function c(){u=(new Date).getTime(),h=null,t.apply(o,a||[])}e=e||0;var p=function(){for(var t=[],p=0;p<arguments.length;p++)t[p]=arguments[p];i=(new Date).getTime(),o=this,a=t;var d=s||e,f=s||n;s=null,r=i-(f?l:u)-d,clearTimeout(h),f?h=setTimeout(c,d):r>=0?c():h=setTimeout(c,-r),l=i};return p.clear=function(){h&&(clearTimeout(h),h=null)},p.debounceNextCall=function(t){s=t},p}function nf(t,e,n,i){var r=t[e];if(r){var o=r[Jd]||r,a=r[tf];if(r[Qd]!==n||a!==i){if(null==n||!i)return t[e]=o;(r=t[e]=ef(o,n,"debounce"===i))[Jd]=o,r[tf]=i,r[Qd]=n}return r}}var rf=wr(),of={itemStyle:Fr(rh,!0),lineStyle:Fr(eh,!0)},af={lineStyle:"stroke",itemStyle:"fill"};function sf(t,e){var n=t.visualStyleMapper||of[e];return n||(console.warn("Unkown style type '"+e+"'."),of.itemStyle)}function lf(t,e){var n=t.visualDrawType||af[e];return n||(console.warn("Unkown style type '"+e+"'."),"fill")}var uf={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var n=t.getData(),i=t.visualStyleAccessPath||"itemStyle",r=t.getModel(i),o=sf(t,i)(r),a=r.getShallow("decal");a&&(n.setVisual("decal",a),a.dirty=!0);var s=lf(t,i),l=o[s],u=F(l)?l:null;if(o[s]&&!u||(o[s]=t.getColorFromPalette(t.name,null,e.getSeriesCount()),n.setVisual("colorFromPalette",!0)),n.setVisual("style",o),n.setVisual("drawType",s),!e.isSeriesFiltered(t)&&u)return n.setVisual("colorFromPalette",!1),{dataEach:function(e,n){var i=t.getDataParams(n),r=T({},o);r[s]=u(i),e.setItemVisual(n,"style",r)}}}},hf=new sh,cf={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){if(!t.ignoreStyleOnData&&!e.isSeriesFiltered(t)){var n=t.getData(),i=t.visualStyleAccessPath||"itemStyle",r=sf(t,i),o=n.getVisual("drawType");return{dataEach:n.hasItemOption?function(t,e){var n=t.getRawDataItem(e);if(n&&n[i]){hf.option=n[i];var a=r(hf);T(t.ensureUniqueItemVisual(e,"style"),a),hf.option.decal&&(t.setItemVisual(e,"decal",hf.option.decal),hf.option.decal.dirty=!0),o in a&&t.setItemVisual(e,"colorFromPalette",!1)}}:null}}}},pf={performRawSeries:!0,overallReset:function(t){var e=ut();t.eachSeries((function(t){if(t.useColorPaletteOnData){var n=e.get(t.type);n||(n={},e.set(t.type,n)),rf(t).scope=n}})),t.eachSeries((function(e){if(e.useColorPaletteOnData&&!t.isSeriesFiltered(e)){var n=e.getRawData(),i={},r=e.getData(),o=rf(e).scope,a=e.visualStyleAccessPath||"itemStyle",s=lf(e,a);r.each((function(t){var e=r.getRawIndex(t);i[e]=t})),n.each((function(t){var a=i[t];if(r.getItemVisual(a,"colorFromPalette")){var l=r.ensureUniqueItemVisual(a,"style"),u=n.getName(t)||t+"",h=n.count();l[s]=e.getColorFromPalette(u,o,h)}}))}}))}},df=Math.PI;var ff=function(){function t(t,e,n,i){this._stageTaskMap=ut(),this.ecInstance=t,this.api=e,n=this._dataProcessorHandlers=n.slice(),i=this._visualHandlers=i.slice(),this._allHandlers=n.concat(i)}return t.prototype.restoreData=function(t,e){t.restoreData(e),this._stageTaskMap.each((function(t){var e=t.overallTask;e&&e.dirty()}))},t.prototype.getPerformArgs=function(t,e){if(t.__pipeline){var n=this._pipelineMap.get(t.__pipeline.id),i=n.context,r=!e&&n.progressiveEnabled&&(!i||i.progressiveRender)&&t.__idxInPipeline>n.blockIndex?n.step:null,o=i&&i.modDataCount;return{step:r,modBy:null!=o?Math.ceil(o/r):null,modDataCount:o}}},t.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},t.prototype.updateStreamModes=function(t,e){var n=this._pipelineMap.get(t.uid),i=t.getData().count(),r=n.progressiveEnabled&&e.incrementalPrepareRender&&i>=n.threshold,o=t.get("large")&&i>=t.get("largeThreshold"),a="mod"===t.get("progressiveChunkMode")?i:null;t.pipelineContext=n.context={progressiveRender:r,modDataCount:a,large:o}},t.prototype.restorePipelines=function(t){var e=this,n=e._pipelineMap=ut();t.eachSeries((function(t){var i=t.getProgressive(),r=t.uid;n.set(r,{id:r,head:null,tail:null,threshold:t.getProgressiveThreshold(),progressiveEnabled:i&&!(t.preventIncremental&&t.preventIncremental()),blockIndex:-1,step:Math.round(i||700),count:0}),e._pipe(t,t.dataTask)}))},t.prototype.prepareStageTasks=function(){var t=this._stageTaskMap,e=this.api.getModel(),n=this.api;P(this._allHandlers,(function(i){var r=t.get(i.uid)||t.set(i.uid,{}),o="";it(!(i.reset&&i.overallReset),o),i.reset&&this._createSeriesStageTask(i,r,e,n),i.overallReset&&this._createOverallStageTask(i,r,e,n)}),this)},t.prototype.prepareView=function(t,e,n,i){var r=t.renderTask,o=r.context;o.model=e,o.ecModel=n,o.api=i,r.__block=!t.incrementalPrepareRender,this._pipe(e,r)},t.prototype.performDataProcessorTasks=function(t,e){this._performStageTasks(this._dataProcessorHandlers,t,e,{block:!0})},t.prototype.performVisualTasks=function(t,e,n){this._performStageTasks(this._visualHandlers,t,e,n)},t.prototype._performStageTasks=function(t,e,n,i){i=i||{};var r=!1,o=this;function a(t,e){return t.setDirty&&(!t.dirtyMap||t.dirtyMap.get(e.__pipeline.id))}P(t,(function(t,s){if(!i.visualType||i.visualType===t.visualType){var l=o._stageTaskMap.get(t.uid),u=l.seriesTaskMap,h=l.overallTask;if(h){var c,p=h.agentStubMap;p.each((function(t){a(i,t)&&(t.dirty(),c=!0)})),c&&h.dirty(),o.updatePayload(h,n);var d=o.getPerformArgs(h,i.block);p.each((function(t){t.perform(d)})),h.perform(d)&&(r=!0)}else u&&u.each((function(s,l){a(i,s)&&s.dirty();var u=o.getPerformArgs(s,i.block);u.skip=!t.performRawSeries&&e.isSeriesFiltered(s.context.model),o.updatePayload(s,n),s.perform(u)&&(r=!0)}))}})),this.unfinished=r||this.unfinished},t.prototype.performSeriesTasks=function(t){var e;t.eachSeries((function(t){e=t.dataTask.perform()||e})),this.unfinished=e||this.unfinished},t.prototype.plan=function(){this._pipelineMap.each((function(t){var e=t.tail;do{if(e.__block){t.blockIndex=e.__idxInPipeline;break}e=e.getUpstream()}while(e)}))},t.prototype.updatePayload=function(t,e){"remain"!==e&&(t.context.payload=e)},t.prototype._createSeriesStageTask=function(t,e,n,i){var r=this,o=e.seriesTaskMap,a=e.seriesTaskMap=ut(),s=t.seriesType,l=t.getTargetSeries;function u(e){var s=e.uid,l=a.set(s,o&&o.get(s)||nd({plan:_f,reset:xf,count:Sf}));l.context={model:e,ecModel:n,api:i,useClearVisual:t.isVisual&&!t.isLayout,plan:t.plan,reset:t.reset,scheduler:r},r._pipe(e,l)}t.createOnAllSeries?n.eachRawSeries(u):s?n.eachRawSeriesByType(s,u):l&&l(n,i).each(u)},t.prototype._createOverallStageTask=function(t,e,n,i){var r=this,o=e.overallTask=e.overallTask||nd({reset:gf});o.context={ecModel:n,api:i,overallReset:t.overallReset,scheduler:r};var a=o.agentStubMap,s=o.agentStubMap=ut(),l=t.seriesType,u=t.getTargetSeries,h=!0,c=!1,p="";function d(t){var e=t.uid,n=s.set(e,a&&a.get(e)||(c=!0,nd({reset:yf,onDirty:mf})));n.context={model:t,overallProgress:h},n.agent=o,n.__block=h,r._pipe(t,n)}it(!t.createOnAllSeries,p),l?n.eachRawSeriesByType(l,d):u?u(n,i).each(d):(h=!1,P(n.getSeries(),d)),c&&o.dirty()},t.prototype._pipe=function(t,e){var n=t.uid,i=this._pipelineMap.get(n);!i.head&&(i.head=e),i.tail&&i.tail.pipe(e),i.tail=e,e.__idxInPipeline=i.count++,e.__pipeline=i},t.wrapStageHandler=function(t,e){return F(t)&&(t={overallReset:t,seriesType:Mf(t)}),t.uid=uh("stageHandler"),e&&(t.visualType=e),t},t}();function gf(t){t.overallReset(t.ecModel,t.api,t.payload)}function yf(t){return t.overallProgress&&vf}function vf(){this.agent.dirty(),this.getDownstream().dirty()}function mf(){this.agent&&this.agent.dirty()}function _f(t){return t.plan?t.plan(t.model,t.ecModel,t.api,t.payload):null}function xf(t){t.useClearVisual&&t.data.clearAllVisual();var e=t.resetDefines=cr(t.reset(t.model,t.ecModel,t.api,t.payload));return e.length>1?O(e,(function(t,e){return wf(e)})):bf}var bf=wf(0);function wf(t){return function(e,n){var i=n.data,r=n.resetDefines[t];if(r&&r.dataEach)for(var o=e.start;o<e.end;o++)r.dataEach(i,o);else r&&r.progress&&r.progress(e,i)}}function Sf(t){return t.data.count()}function Mf(t){Tf=null;try{t(Cf,If)}catch(t){}return Tf}var Tf,Cf={},If={};function Af(t,e){for(var n in e.prototype)t[n]=pt}Af(Cf,Kc),Af(If,ep),Cf.eachSeriesByType=Cf.eachRawSeriesByType=function(t){Tf=t},Cf.eachComponent=function(t){"series"===t.mainType&&t.subType&&(Tf=t.subType)};var Df=["#37A2DA","#32C5E9","#67E0E3","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#E062AE","#E690D1","#e7bcf3","#9d96f5","#8378EA","#96BFFF"],kf={color:Df,colorLayer:[["#37A2DA","#ffd85c","#fd7b5f"],["#37A2DA","#67E0E3","#FFDB5C","#ff9f7f","#E062AE","#9d96f5"],["#37A2DA","#32C5E9","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#e7bcf3","#8378EA","#96BFFF"],Df]},Lf="#B9B8CE",Pf="#100C2A",Of=function(){return{axisLine:{lineStyle:{color:Lf}},splitLine:{lineStyle:{color:"#484753"}},splitArea:{areaStyle:{color:["rgba(255,255,255,0.02)","rgba(255,255,255,0.05)"]}},minorSplitLine:{lineStyle:{color:"#20203B"}}}},Rf=["#4992ff","#7cffb2","#fddd60","#ff6e76","#58d9f9","#05c091","#ff8a45","#8d48e3","#dd79ff"],Nf={darkMode:!0,color:Rf,backgroundColor:Pf,axisPointer:{lineStyle:{color:"#817f91"},crossStyle:{color:"#817f91"},label:{color:"#fff"}},legend:{textStyle:{color:Lf}},textStyle:{color:Lf},title:{textStyle:{color:"#EEF1FA"},subtextStyle:{color:"#B9B8CE"}},toolbox:{iconStyle:{borderColor:Lf}},dataZoom:{borderColor:"#71708A",textStyle:{color:Lf},brushStyle:{color:"rgba(135,163,206,0.3)"},handleStyle:{color:"#353450",borderColor:"#C5CBE3"},moveHandleStyle:{color:"#B0B6C3",opacity:.3},fillerColor:"rgba(135,163,206,0.2)",emphasis:{handleStyle:{borderColor:"#91B7F2",color:"#4D587D"},moveHandleStyle:{color:"#636D9A",opacity:.7}},dataBackground:{lineStyle:{color:"#71708A",width:1},areaStyle:{color:"#71708A"}},selectedDataBackground:{lineStyle:{color:"#87A3CE"},areaStyle:{color:"#87A3CE"}}},visualMap:{textStyle:{color:Lf}},timeline:{lineStyle:{color:Lf},label:{color:Lf},controlStyle:{color:Lf,borderColor:Lf}},calendar:{itemStyle:{color:Pf},dayLabel:{color:Lf},monthLabel:{color:Lf},yearLabel:{color:Lf}},timeAxis:Of(),logAxis:Of(),valueAxis:Of(),categoryAxis:Of(),line:{symbol:"circle"},graph:{color:Rf},gauge:{title:{color:Lf},axisLine:{lineStyle:{color:[[1,"rgba(207,212,219,0.2)"]]}},axisLabel:{color:Lf},detail:{color:"#EEF1FA"}},candlestick:{itemStyle:{color:"#f64e56",color0:"#54ea92",borderColor:"#f64e56",borderColor0:"#54ea92"}}};Nf.categoryAxis.splitLine.show=!1;var Ef=ut(),Bf=function(t,e,n){var i;if(V(e))i=e;else if(e.svg)i=[{type:"svg",source:e.svg,specialAreas:e.specialAreas}];else{var r=e.geoJson||e.geoJSON;r&&!e.features&&(n=e.specialAreas,e=r),i=[{type:"geoJSON",source:e,specialAreas:n}]}return P(i,(function(t){var e=t.type;"geoJson"===e&&(e=t.type="geoJSON");var n=Vf[e];n(t)})),Ef.set(t,i)},zf=function(t){return Ef.get(t)},Vf={geoJSON:function(t){var e=t.source;t.geoJSON=H(e)?"undefined"!=typeof JSON&&JSON.parse?JSON.parse(e):new Function("return ("+e+");")():e},svg:function(t){t.svgXML=function(t){H(t)&&(t=(new DOMParser).parseFromString(t,"text/xml"));var e=t;for(9===e.nodeType&&(e=e.firstChild);"svg"!==e.nodeName.toLowerCase()||1!==e.nodeType;)e=e.nextSibling;return e}(t.source)}},Ff=function(){function t(){}return t.prototype.normalizeQuery=function(t){var e={},n={},i={};if(H(t)){var r=Pr(t);e.mainType=r.main||null,e.subType=r.sub||null}else{var o=["Index","Name","Id"],a={name:1,dataIndex:1,dataType:1};P(t,(function(t,r){for(var s=!1,l=0;l<o.length;l++){var u=o[l],h=r.lastIndexOf(u);if(h>0&&h===r.length-u.length){var c=r.slice(0,h);"data"!==c&&(e.mainType=c,e[u.toLowerCase()]=t,s=!0)}}a.hasOwnProperty(r)&&(n[r]=t,s=!0),s||(i[r]=t)}))}return{cptQuery:e,dataQuery:n,otherQuery:i}},t.prototype.filter=function(t,e){var n=this.eventInfo;if(!n)return!0;var i=n.targetEl,r=n.packedEvent,o=n.model,a=n.view;if(!o||!a)return!0;var s=e.cptQuery,l=e.dataQuery;return u(s,o,"mainType")&&u(s,o,"subType")&&u(s,o,"index","componentIndex")&&u(s,o,"name")&&u(s,o,"id")&&u(l,r,"name")&&u(l,r,"dataIndex")&&u(l,r,"dataType")&&(!a.filterForExposedEvent||a.filterForExposedEvent(t,e.otherQuery,i,r));function u(t,e,n,i){return null==t[n]||e[i||n]===t[n]}},t.prototype.afterTrigger=function(){this.eventInfo=null},t}(),Hf={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var n=t.getData();if(t.legendSymbol&&n.setVisual("legendSymbol",t.legendSymbol),t.hasSymbolVisual){var i=t.get("symbol"),r=t.get("symbolSize"),o=t.get("symbolKeepAspect"),a=t.get("symbolRotate"),s=F(i),l=F(r),u=F(a),h=s||l||u,c=!s&&i?i:t.defaultSymbol,p=l?null:r,d=u?null:a;if(n.setVisual({legendSymbol:t.legendSymbol||c,symbol:c,symbolSize:p,symbolKeepAspect:o,symbolRotate:d}),!e.isSeriesFiltered(t))return{dataEach:h?function(e,n){var o=t.getRawValue(n),h=t.getDataParams(n);s&&e.setItemVisual(n,"symbol",i(o,h)),l&&e.setItemVisual(n,"symbolSize",r(o,h)),u&&e.setItemVisual(n,"symbolRotate",a(o,h))}:null}}}};function Gf(t,e){switch(e){case"color":return t.getVisual("style")[t.getVisual("drawType")];case"opacity":return t.getVisual("style").opacity;case"symbol":case"symbolSize":case"liftZ":return t.getVisual(e);default:0}}var Wf=2*Math.PI,Uf=ma.CMD,Yf=["top","right","bottom","left"];function Xf(t,e,n,i,r){var o=n.width,a=n.height;switch(t){case"top":i.set(n.x+o/2,n.y-e),r.set(0,-1);break;case"bottom":i.set(n.x+o/2,n.y+a+e),r.set(0,1);break;case"left":i.set(n.x-e,n.y+a/2),r.set(-1,0);break;case"right":i.set(n.x+o+e,n.y+a/2),r.set(1,0)}}function Zf(t,e,n,i,r,o,a,s,l){a-=t,s-=e;var u=Math.sqrt(a*a+s*s),h=(a/=u)*n+t,c=(s/=u)*n+e;if(Math.abs(i-r)%Wf<1e-4)return l[0]=h,l[1]=c,u-n;if(o){var p=i;i=Sa(r),r=Sa(p)}else i=Sa(i),r=Sa(r);i>r&&(r+=Wf);var d=Math.atan2(s,a);if(d<0&&(d+=Wf),d>=i&&d<=r||d+Wf>=i&&d+Wf<=r)return l[0]=h,l[1]=c,u-n;var f=n*Math.cos(i)+t,g=n*Math.sin(i)+e,y=n*Math.cos(r)+t,v=n*Math.sin(r)+e,m=(f-a)*(f-a)+(g-s)*(g-s),_=(y-a)*(y-a)+(v-s)*(v-s);return m<_?(l[0]=f,l[1]=g,Math.sqrt(m)):(l[0]=y,l[1]=v,Math.sqrt(_))}function jf(t,e,n,i,r,o,a,s){var l=r-t,u=o-e,h=n-t,c=i-e,p=Math.sqrt(h*h+c*c),d=(l*(h/=p)+u*(c/=p))/p;s&&(d=Math.min(Math.max(d,0),1)),d*=p;var f=a[0]=t+d*h,g=a[1]=e+d*c;return Math.sqrt((f-r)*(f-r)+(g-o)*(g-o))}function qf(t,e,n,i,r,o,a){n<0&&(t+=n,n=-n),i<0&&(e+=i,i=-i);var s=t+n,l=e+i,u=a[0]=Math.min(Math.max(r,t),s),h=a[1]=Math.min(Math.max(o,e),l);return Math.sqrt((u-r)*(u-r)+(h-o)*(h-o))}var Kf=[];function $f(t,e,n){var i=qf(e.x,e.y,e.width,e.height,t.x,t.y,Kf);return n.set(Kf[0],Kf[1]),i}function Jf(t,e,n){for(var i,r,o=0,a=0,s=0,l=0,u=1/0,h=e.data,c=t.x,p=t.y,d=0;d<h.length;){var f=h[d++];1===d&&(s=o=h[d],l=a=h[d+1]);var g=u;switch(f){case Uf.M:o=s=h[d++],a=l=h[d++];break;case Uf.L:g=jf(o,a,h[d],h[d+1],c,p,Kf,!0),o=h[d++],a=h[d++];break;case Uf.C:g=ko(o,a,h[d++],h[d++],h[d++],h[d++],h[d],h[d+1],c,p,Kf),o=h[d++],a=h[d++];break;case Uf.Q:g=Eo(o,a,h[d++],h[d++],h[d],h[d+1],c,p,Kf),o=h[d++],a=h[d++];break;case Uf.A:var y=h[d++],v=h[d++],m=h[d++],_=h[d++],x=h[d++],b=h[d++];d+=1;var w=!!(1-h[d++]);i=Math.cos(x)*m+y,r=Math.sin(x)*_+v,d<=1&&(s=i,l=r),g=Zf(y,v,_,x,x+b,w,(c-y)*_/m+y,p,Kf),o=Math.cos(x+b)*m+y,a=Math.sin(x+b)*_+v;break;case Uf.R:g=qf(s=o=h[d++],l=a=h[d++],h[d++],h[d++],c,p,Kf);break;case Uf.Z:g=jf(o,a,s,l,c,p,Kf,!0),o=s,a=l}g<u&&(u=g,n.set(Kf[0],Kf[1]))}return u}var Qf=new xn,tg=new xn,eg=new xn,ng=new xn,ig=new xn;function rg(t,e){if(t){var n=t.getTextGuideLine(),i=t.getTextContent();if(i&&n){var r=t.textGuideLineConfig||{},o=[[0,0],[0,0],[0,0]],a=r.candidates||Yf,s=i.getBoundingRect().clone();s.applyTransform(i.getComputedTransform());var l=1/0,u=r.anchor,h=t.getComputedTransform(),c=h&&me([],h),p=e.get("length2")||0;u&&eg.copy(u);for(var d=0;d<a.length;d++){Xf(a[d],0,s,Qf,ng),xn.scaleAndAdd(tg,Qf,ng,p),tg.transform(c);var f=t.getBoundingRect(),g=u?u.distance(tg):t instanceof za?Jf(tg,t.path,eg):$f(tg,f,eg);g<l&&(l=g,tg.transform(h),eg.transform(h),eg.toArray(o[0]),tg.toArray(o[1]),Qf.toArray(o[2]))}sg(o,e.get("minTurnAngle")),n.setShape({points:o})}}}var og=[],ag=new xn;function sg(t,e){if(e<=180&&e>0){e=e/180*Math.PI,Qf.fromArray(t[0]),tg.fromArray(t[1]),eg.fromArray(t[2]),xn.sub(ng,Qf,tg),xn.sub(ig,eg,tg);var n=ng.len(),i=ig.len();if(!(n<.001||i<.001)){ng.scale(1/n),ig.scale(1/i);var r=ng.dot(ig);if(Math.cos(e)<r){var o=jf(tg.x,tg.y,eg.x,eg.y,Qf.x,Qf.y,og,!1);ag.fromArray(og),ag.scaleAndAdd(ig,o/Math.tan(Math.PI-e));var a=eg.x!==tg.x?(ag.x-tg.x)/(eg.x-tg.x):(ag.y-tg.y)/(eg.y-tg.y);if(isNaN(a))return;a<0?xn.copy(ag,tg):a>1&&xn.copy(ag,eg),ag.toArray(t[1])}}}}function lg(t,e,n){if(n<=180&&n>0){n=n/180*Math.PI,Qf.fromArray(t[0]),tg.fromArray(t[1]),eg.fromArray(t[2]),xn.sub(ng,tg,Qf),xn.sub(ig,eg,tg);var i=ng.len(),r=ig.len();if(!(i<.001||r<.001))if(ng.scale(1/i),ig.scale(1/r),ng.dot(e)<Math.cos(n)){var o=jf(tg.x,tg.y,eg.x,eg.y,Qf.x,Qf.y,og,!1);ag.fromArray(og);var a=Math.PI/2,s=a+Math.acos(ig.dot(e))-n;if(s>=a)xn.copy(ag,eg);else{ag.scaleAndAdd(ig,o/Math.tan(Math.PI/2-s));var l=eg.x!==tg.x?(ag.x-tg.x)/(eg.x-tg.x):(ag.y-tg.y)/(eg.y-tg.y);if(isNaN(l))return;l<0?xn.copy(ag,tg):l>1&&xn.copy(ag,eg)}ag.toArray(t[1])}}}function ug(t,e,n,i){var r="normal"===n,o=r?t:t.ensureState(n);o.ignore=e;var a=i.get("smooth");a&&!0===a&&(a=.3),o.shape=o.shape||{},a>0&&(o.shape.smooth=a);var s=i.getModel("lineStyle").getLineStyle();r?t.useStyle(s):o.style=s}function hg(t,e){var n=e.smooth,i=e.points;if(i)if(t.moveTo(i[0][0],i[0][1]),n>0&&i.length>=3){var r=It(i[0],i[1]),o=It(i[1],i[2]);if(!r||!o)return t.lineTo(i[1][0],i[1][1]),void t.lineTo(i[2][0],i[2][1]);var a=Math.min(r,o)*n,s=kt([],i[1],i[0],a/r),l=kt([],i[1],i[2],a/o),u=kt([],s,l,.5);t.bezierCurveTo(s[0],s[1],s[0],s[1],u[0],u[1]),t.bezierCurveTo(l[0],l[1],l[0],l[1],i[2][0],i[2][1])}else for(var h=1;h<i.length;h++)t.lineTo(i[h][0],i[h][1])}function cg(t,e,n){var i=t.getTextGuideLine(),r=t.getTextContent();if(r){for(var o=e.normal,a=o.get("show"),s=r.ignore,l=0;l<ps.length;l++){var u=ps[l],h=e[u],c="normal"===u;if(h){var p=h.get("show");if((c?s:Q(r.states[u]&&r.states[u].ignore,s))||!Q(p,a)){var d=c?i:i&&i.states.normal;d&&(d.ignore=!0);continue}i||(i=new Vl,t.setTextGuideLine(i),c||!s&&a||ug(i,!0,"normal",e.normal),t.stateProxy&&(i.stateProxy=t.stateProxy)),ug(i,!1,u,h)}}if(i){C(i.style,n),i.style.fill=null;var f=o.get("showAbove");(t.textGuideLineConfig=t.textGuideLineConfig||{}).showAbove=f||!1,i.buildPath=hg}}else i&&t.removeTextGuideLine()}function pg(t,e){e=e||"labelLine";for(var n={normal:t.getModel(e)},i=0;i<cs.length;i++){var r=cs[i];n[r]=t.getModel([r,e])}return n}function dg(t,e,n,i,r,o){var a=t.length;if(!(a<2)){t.sort((function(t,n){return t.rect[e]-n.rect[e]}));for(var s,l=0,u=!1,h=0,c=0;c<a;c++){var p=t[c],d=p.rect;(s=d[e]-l)<0&&(d[e]-=s,p.label[e]-=s,u=!0),h+=Math.max(-s,0),l=d[e]+d[n]}h>0&&o&&x(-h/a,0,a);var f,g,y=t[0],v=t[a-1];return m(),f<0&&b(-f,.8),g<0&&b(g,.8),m(),_(f,g,1),_(g,f,-1),m(),f<0&&w(-f),g<0&&w(g),u}function m(){f=y.rect[e]-i,g=r-v.rect[e]-v.rect[n]}function _(t,e,n){if(t<0){var i=Math.min(e,-t);if(i>0){x(i*n,0,a);var r=i+t;r<0&&b(-r*n,1)}else b(-t*n,1)}}function x(n,i,r){0!==n&&(u=!0);for(var o=i;o<r;o++){var a=t[o];a.rect[e]+=n,a.label[e]+=n}}function b(i,r){for(var o=[],s=0,l=1;l<a;l++){var u=t[l-1].rect,h=Math.max(t[l].rect[e]-u[e]-u[n],0);o.push(h),s+=h}if(s){var c=Math.min(Math.abs(i)/s,r);if(i>0)for(l=0;l<a-1;l++){x(o[l]*c,0,l+1)}else for(l=a-1;l>0;l--){x(-(o[l-1]*c),l,a)}}}function w(t){var e=t<0?-1:1;t=Math.abs(t);for(var n=Math.ceil(t/(a-1)),i=0;i<a-1;i++)if(e>0?x(n,0,i+1):x(-n,a-i-1,a),(t-=n)<=0)return}}function fg(t,e,n,i){return dg(t,"y","height",e,n,i)}function gg(t){if(t){for(var e=[],n=0;n<t.length;n++)e.push(t[n].slice());return e}}function yg(t,e){var n=t.label,i=e&&e.getTextGuideLine();return{dataIndex:t.dataIndex,dataType:t.dataType,seriesIndex:t.seriesModel.seriesIndex,text:t.label.style.text,rect:t.hostRect,labelRect:t.rect,align:n.style.align,verticalAlign:n.style.verticalAlign,labelLinePoints:gg(i&&i.shape.points)}}var vg=["align","verticalAlign","width","height","fontSize"],mg=new Ie,_g=wr(),xg=wr();function bg(t,e,n){for(var i=0;i<n.length;i++){var r=n[i];null!=e[r]&&(t[r]=e[r])}}var wg=["x","y","rotation"],Sg=function(){function t(){this._labelList=[],this._chartViewList=[]}return t.prototype.clearLabels=function(){this._labelList=[],this._chartViewList=[]},t.prototype._addLabel=function(t,e,n,i,r){var o=i.style,a=i.__hostTarget.textConfig||{},s=i.getComputedTransform(),l=i.getBoundingRect().plain();Dn.applyTransform(l,l,s),s?mg.setLocalTransform(s):(mg.x=mg.y=mg.rotation=mg.originX=mg.originY=0,mg.scaleX=mg.scaleY=1);var u,h=i.__hostTarget;if(h){u=h.getBoundingRect().plain();var c=h.getComputedTransform();Dn.applyTransform(u,u,c)}var p=u&&h.getTextGuideLine();this._labelList.push({label:i,labelLine:p,seriesModel:n,dataIndex:t,dataType:e,layoutOption:r,computedLayoutOption:null,rect:l,hostRect:u,priority:u?u.width*u.height:0,defaultAttr:{ignore:i.ignore,labelGuideIgnore:p&&p.ignore,x:mg.x,y:mg.y,rotation:mg.rotation,style:{x:o.x,y:o.y,align:o.align,verticalAlign:o.verticalAlign,width:o.width,height:o.height,fontSize:o.fontSize},cursor:i.cursor,attachedPos:a.position,attachedRot:a.rotation}})},t.prototype.addLabelsOfSeries=function(t){var e=this;this._chartViewList.push(t);var n=t.__model,i=n.get("labelLayout");(F(i)||E(i).length)&&t.group.traverse((function(t){if(t.ignore)return!0;var r=t.getTextContent(),o=ss(t);r&&!r.disableLabelLayout&&e._addLabel(o.dataIndex,o.dataType,n,r,i)}))},t.prototype.updateLayoutConfig=function(t){var e=t.getWidth(),n=t.getHeight();function i(t,e){return function(){rg(t,e)}}for(var r=0;r<this._labelList.length;r++){var o=this._labelList[r],a=o.label,s=a.__hostTarget,l=o.defaultAttr,u=void 0;u=(u="function"==typeof o.layoutOption?o.layoutOption(yg(o,s)):o.layoutOption)||{},o.computedLayoutOption=u;var h=Math.PI/180;s&&s.setTextConfig({local:!1,position:null!=u.x||null!=u.y?null:l.attachedPos,rotation:null!=u.rotate?u.rotate*h:l.attachedRot,offset:[u.dx||0,u.dy||0]});var c=!1;if(null!=u.x?(a.x=Gi(u.x,e),a.setStyle("x",0),c=!0):(a.x=l.x,a.setStyle("x",l.style.x)),null!=u.y?(a.y=Gi(u.y,n),a.setStyle("y",0),c=!0):(a.y=l.y,a.setStyle("y",l.style.y)),u.labelLinePoints){var p=s.getTextGuideLine();p&&(p.setShape({points:u.labelLinePoints}),c=!1)}_g(a).needsUpdateLabelLine=c,a.rotation=null!=u.rotate?u.rotate*h:l.rotation;for(var d=0;d<vg.length;d++){var f=vg[d];a.setStyle(f,null!=u[f]?u[f]:l.style[f])}if(u.draggable){if(a.draggable=!0,a.cursor="move",s){var g=o.seriesModel;if(null!=o.dataIndex)g=o.seriesModel.getData(o.dataType).getItemModel(o.dataIndex);a.on("drag",i(s,g.getModel("labelLine")))}}else a.off("drag"),a.cursor=l.cursor}},t.prototype.layout=function(t){var e,n=t.getWidth(),i=t.getHeight(),r=function(t){for(var e=[],n=0;n<t.length;n++){var i=t[n];if(!i.defaultAttr.ignore){var r=i.label,o=r.getComputedTransform(),a=r.getBoundingRect(),s=!o||o[1]<1e-5&&o[2]<1e-5,l=r.style.margin||0,u=a.clone();u.applyTransform(o),u.x-=l/2,u.y-=l/2,u.width+=l,u.height+=l;var h=s?new iu(a,o):null;e.push({label:r,labelLine:i.labelLine,rect:u,localRect:a,obb:h,priority:i.priority,defaultAttr:i.defaultAttr,layoutOption:i.computedLayoutOption,axisAligned:s,transform:o})}}return e}(this._labelList),o=N(r,(function(t){return"shiftX"===t.layoutOption.moveOverlap})),a=N(r,(function(t){return"shiftY"===t.layoutOption.moveOverlap}));dg(o,"x","width",0,n,e),fg(a,0,i),function(t){var e=[];t.sort((function(t,e){return e.priority-t.priority}));var n=new Dn(0,0,0,0);function i(t){if(!t.ignore){var e=t.ensureState("emphasis");null==e.ignore&&(e.ignore=!1)}t.ignore=!0}for(var r=0;r<t.length;r++){var o=t[r],a=o.axisAligned,s=o.localRect,l=o.transform,u=o.label,h=o.labelLine;n.copy(o.rect),n.width-=.1,n.height-=.1,n.x+=.05,n.y+=.05;for(var c=o.obb,p=!1,d=0;d<e.length;d++){var f=e[d];if(n.intersect(f.rect)){if(a&&f.axisAligned){p=!0;break}if(f.obb||(f.obb=new iu(f.localRect,f.transform)),c||(c=new iu(s,l)),c.intersect(f.obb)){p=!0;break}}}p?(i(u),h&&i(h)):(u.attr("ignore",o.defaultAttr.ignore),h&&h.attr("ignore",o.defaultAttr.labelGuideIgnore),e.push(o))}}(N(r,(function(t){return t.layoutOption.hideOverlap})))},t.prototype.processLabelsOverall=function(){var t=this;P(this._chartViewList,(function(e){var n=e.__model,i=e.ignoreLabelLineUpdate,r=n.isAnimationEnabled();e.group.traverse((function(e){if(e.ignore)return!0;var o=!i,a=e.getTextContent();!o&&a&&(o=_g(a).needsUpdateLabelLine),o&&t._updateLabelLine(e,n),r&&t._animateLabels(e,n)}))}))},t.prototype._updateLabelLine=function(t,e){var n=t.getTextContent(),i=ss(t),r=i.dataIndex;if(n&&null!=r){var o=e.getData(i.dataType),a=o.getItemModel(r),s={},l=o.getItemVisual(r,"style"),u=o.getVisual("drawType");s.stroke=l[u];var h=a.getModel("labelLine");cg(t,pg(a),s),rg(t,h)}},t.prototype._animateLabels=function(t,e){var n=t.getTextContent(),i=t.getTextGuideLine();if(n&&!n.ignore&&!n.invisible&&!t.disableLabelAnimation&&!Cu(t)){var r=(d=_g(n)).oldLayout,o=ss(t),a=o.dataIndex,s={x:n.x,y:n.y,rotation:n.rotation},l=e.getData(o.dataType);if(r){n.attr(r);var u=t.prevStates;u&&(A(u,"select")>=0&&n.attr(d.oldLayoutSelect),A(u,"emphasis")>=0&&n.attr(d.oldLayoutEmphasis)),bu(n,s,e,a)}else if(n.attr(s),!qu(n).valueAnimation){var h=Q(n.style.opacity,1);n.style.opacity=0,wu(n,{style:{opacity:h}},e,a)}if(d.oldLayout=s,n.states.select){var c=d.oldLayoutSelect={};bg(c,s,wg),bg(c,n.states.select,wg)}if(n.states.emphasis){var p=d.oldLayoutEmphasis={};bg(p,s,wg),bg(p,n.states.emphasis,wg)}!function(t,e,n,i,r){var o=qu(t);if(o.valueAnimation){var a=o.defaultInterpolatedText,s=Q(o.interpolatedValue,o.prevValue),l=o.value;(null==s?wu:bu)(t,{},i,e,null,(function(i){var u=Dr(n,o.precision,s,l,i);o.interpolatedValue=1===i?null:u;var h=Fu({labelDataIndex:e,labelFetcher:r,defaultText:a?a(u):u+""},o.statesModels,u);Vu(t,h)}))}}(n,a,l,e,e)}if(i&&!i.ignore&&!i.invisible){r=(d=xg(i)).oldLayout;var d,f={points:i.shape.points};r?(i.attr({shape:r}),bu(i,{shape:f},e)):(i.setShape(f),i.style.strokePercent=0,wu(i,{style:{strokePercent:1}},e)),d.oldLayout=f}},t}();function Mg(t,e,n,i,r){var o=t+e;n.isSilent(o)||i.eachComponent({mainType:"series",subType:"pie"},(function(t){for(var e=t.seriesIndex,i=r.selected,a=0;a<i.length;a++)if(i[a].seriesIndex===e){var s=t.getData(),l=br(s,r.fromActionPayload);n.trigger(o,{type:o,seriesId:t.id,name:V(l)?s.getName(l[0]):s.getName(l),selected:T({},t.option.selectedMap)})}}))}function Tg(t,e,n){for(var i;t&&(!e(t)||(i=t,!n));)t=t.__hostTarget||t.parent;return i}var Cg=Math.round(9*Math.random()),Ig=function(){function t(){this._id="__ec_inner_"+Cg++}return t.prototype.get=function(t){return this._guard(t)[this._id]},t.prototype.set=function(t,e){var n=this._guard(t);return"function"==typeof Object.defineProperty?Object.defineProperty(n,this._id,{value:e,enumerable:!1,configurable:!0}):n[this._id]=e,this},t.prototype.delete=function(t){return!!this.has(t)&&(delete this._guard(t)[this._id],!0)},t.prototype.has=function(t){return!!this._guard(t)[this._id]},t.prototype._guard=function(t){if(t!==Object(t))throw TypeError("Value of WeakMap is not a non-null object.");return t},t}(),Ag=za.extend({type:"triangle",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var n=e.cx,i=e.cy,r=e.width/2,o=e.height/2;t.moveTo(n,i-o),t.lineTo(n+r,i+o),t.lineTo(n-r,i+o),t.closePath()}}),Dg=za.extend({type:"diamond",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var n=e.cx,i=e.cy,r=e.width/2,o=e.height/2;t.moveTo(n,i-o),t.lineTo(n+r,i),t.lineTo(n,i+o),t.lineTo(n-r,i),t.closePath()}}),kg=za.extend({type:"pin",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var n=e.x,i=e.y,r=e.width/5*3,o=Math.max(r,e.height),a=r/2,s=a*a/(o-a),l=i-o+a+s,u=Math.asin(s/a),h=Math.cos(u)*a,c=Math.sin(u),p=Math.cos(u),d=.6*a,f=.7*a;t.moveTo(n-h,l+s),t.arc(n,l,a,Math.PI-u,2*Math.PI+u),t.bezierCurveTo(n+h-c*d,l+s+p*d,n,i-f,n,i),t.bezierCurveTo(n,i-f,n-h+c*d,l+s+p*d,n-h,l+s),t.closePath()}}),Lg=za.extend({type:"arrow",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var n=e.height,i=e.width,r=e.x,o=e.y,a=i/3*2;t.moveTo(r,o),t.lineTo(r+a,o+n),t.lineTo(r,o+n/4*3),t.lineTo(r-a,o+n),t.lineTo(r,o),t.closePath()}}),Pg={line:function(t,e,n,i,r){r.x=t,r.y=e+i/2-1,r.width=n,r.height=2},rect:function(t,e,n,i,r){r.x=t,r.y=e,r.width=n,r.height=i},roundRect:function(t,e,n,i,r){r.x=t,r.y=e,r.width=n,r.height=i,r.r=Math.min(n,i)/4},square:function(t,e,n,i,r){var o=Math.min(n,i);r.x=t,r.y=e,r.width=o,r.height=o},circle:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.r=Math.min(n,i)/2},diamond:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.width=n,r.height=i},pin:function(t,e,n,i,r){r.x=t+n/2,r.y=e+i/2,r.width=n,r.height=i},arrow:function(t,e,n,i,r){r.x=t+n/2,r.y=e+i/2,r.width=n,r.height=i},triangle:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.width=n,r.height=i}},Og={};P({line:Ka,rect:Ka,roundRect:Ka,square:Ka,circle:fl,diamond:Dg,pin:kg,arrow:Lg,triangle:Ag},(function(t,e){Og[e]=new t}));var Rg=za.extend({type:"symbol",shape:{symbolType:"",x:0,y:0,width:0,height:0},calculateTextPosition:function(t,e,n){var i=Fn(t,e,n),r=this.shape;return r&&"pin"===r.symbolType&&"inside"===e.position&&(i.y=n.y+.4*n.height),i},buildPath:function(t,e,n){var i=e.symbolType;if("none"!==i){var r=Og[i];r||(r=Og[i="rect"]),Pg[i](e.x,e.y,e.width,e.height,r.shape),r.buildPath(t,r.shape,n)}}});function Ng(t,e){if("image"!==this.type){var n=this.style;this.__isEmptyBrush?(n.stroke=t,n.fill=e||"#fff",n.lineWidth=2):n.fill=t,this.markRedraw()}}function Eg(t,e,n,i,r,o,a){var s,l=0===t.indexOf("empty");return l&&(t=t.substr(5,1).toLowerCase()+t.substr(6)),(s=0===t.indexOf("image://")?gu(t.slice(8),new Dn(e,n,i,r),a?"center":"cover"):0===t.indexOf("path://")?fu(t.slice(7),{},new Dn(e,n,i,r),a?"center":"cover"):new Rg({shape:{symbolType:t,x:e,y:n,width:i,height:r}})).__isEmptyBrush=l,s.setColor=Ng,o&&s.setColor(o),s}function Bg(t,e,n){for(var i="radial"===e.type?function(t,e,n){var i=n.width,r=n.height,o=Math.min(i,r),a=null==e.x?.5:e.x,s=null==e.y?.5:e.y,l=null==e.r?.5:e.r;return e.global||(a=a*i+n.x,s=s*r+n.y,l*=o),t.createRadialGradient(a,s,0,a,s,l)}(t,e,n):function(t,e,n){var i=null==e.x?0:e.x,r=null==e.x2?1:e.x2,o=null==e.y?0:e.y,a=null==e.y2?0:e.y2;return e.global||(i=i*n.width+n.x,r=r*n.width+n.x,o=o*n.height+n.y,a=a*n.height+n.y),i=isNaN(i)?0:i,r=isNaN(r)?1:r,o=isNaN(o)?0:o,a=isNaN(a)?0:a,t.createLinearGradient(i,o,r,a)}(t,e,n),r=e.colorStops,o=0;o<r.length;o++)i.addColorStop(r[o].offset,r[o].color);return i}function zg(t,e){if(t===e||!t&&!e)return!1;if(!t||!e||t.length!==e.length)return!0;for(var n=0;n<t.length;n++)if(t[n]!==e[n])return!0;return!1}function Vg(t,e){return t&&"solid"!==t&&e>0?(e=e||1,"dashed"===t?[4*e,2*e]:"dotted"===t?[e]:W(t)?[t]:V(t)?t:null):null}var Fg=new ma(!0);function Hg(t){var e=t.stroke;return!(null==e||"none"===e||!(t.lineWidth>0))}function Gg(t){var e=t.fill;return null!=e&&"none"!==e}function Wg(t,e){if(null!=e.fillOpacity&&1!==e.fillOpacity){var n=t.globalAlpha;t.globalAlpha=e.fillOpacity*e.opacity,t.fill(),t.globalAlpha=n}else t.fill()}function Ug(t,e){if(null!=e.strokeOpacity&&1!==e.strokeOpacity){var n=t.globalAlpha;t.globalAlpha=e.strokeOpacity*e.opacity,t.stroke(),t.globalAlpha=n}else t.stroke()}function Yg(t,e,n){var i=Yr(e.image,e.__image,n);if(Zr(i)){var r=t.createPattern(i,e.repeat||"repeat");if("function"==typeof DOMMatrix){var o=new DOMMatrix;o.rotateSelf(0,0,(e.rotation||0)/Math.PI*180),o.scaleSelf(e.scaleX||1,e.scaleY||1),o.translateSelf(e.x||0,e.y||0),r.setTransform(o)}return r}}var Xg=["shadowBlur","shadowOffsetX","shadowOffsetY"],Zg=[["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]];function jg(t,e,n,i,r){var o=!1;if(!i&&e===(n=n||{}))return!1;(i||e.opacity!==n.opacity)&&(o||($g(t,r),o=!0),t.globalAlpha=null==e.opacity?so.opacity:e.opacity),(i||e.blend!==n.blend)&&(o||($g(t,r),o=!0),t.globalCompositeOperation=e.blend||so.blend);for(var a=0;a<Xg.length;a++){var s=Xg[a];(i||e[s]!==n[s])&&(o||($g(t,r),o=!0),t[s]=t.dpr*(e[s]||0))}return(i||e.shadowColor!==n.shadowColor)&&(o||($g(t,r),o=!0),t.shadowColor=e.shadowColor||so.shadowColor),o}function qg(t,e,n,i,r){var o=Jg(e,r.inHover),a=i?null:n&&Jg(n,r.inHover)||{};if(o===a)return!1;var s=jg(t,o,a,i,r);if((i||o.fill!==a.fill)&&(s||($g(t,r),s=!0),t.fillStyle=o.fill),(i||o.stroke!==a.stroke)&&(s||($g(t,r),s=!0),t.strokeStyle=o.stroke),(i||o.opacity!==a.opacity)&&(s||($g(t,r),s=!0),t.globalAlpha=null==o.opacity?1:o.opacity),e.hasStroke()){var l=o.lineWidth/(o.strokeNoScale&&e&&e.getLineScale?e.getLineScale():1);t.lineWidth!==l&&(s||($g(t,r),s=!0),t.lineWidth=l)}for(var u=0;u<Zg.length;u++){var h=Zg[u],c=h[0];(i||o[c]!==a[c])&&(s||($g(t,r),s=!0),t[c]=o[c]||h[1])}return s}function Kg(t,e){var n=e.transform,i=t.dpr||1;n?t.setTransform(i*n[0],i*n[1],i*n[2],i*n[3],i*n[4],i*n[5]):t.setTransform(i,0,0,i,0,0)}function $g(t,e){e.batchFill&&t.fill(),e.batchStroke&&t.stroke(),e.batchFill="",e.batchStroke=""}function Jg(t,e){return e&&t.__hoverStyle||t.style}function Qg(t,e){ty(t,e,{inHover:!1,viewWidth:0,viewHeight:0},!0)}function ty(t,e,n,i){var r=e.transform;if(!e.shouldBePainted(n.viewWidth,n.viewHeight,!1,!1))return e.__dirty&=~Kn.REDARAW_BIT,void(e.__isRendered=!1);var o=e.__clipPaths,a=n.prevElClipPaths,s=!1,l=!1;if(a&&!zg(o,a)||(a&&a.length&&($g(t,n),t.restore(),l=s=!0,n.prevElClipPaths=null,n.allClipped=!1,n.prevEl=null),o&&o.length&&($g(t,n),t.save(),function(t,e,n){for(var i=!1,r=0;r<t.length;r++){var o=t[r];i=i||o.isZeroArea(),Kg(e,o),e.beginPath(),o.buildPath(e,o.shape),e.clip()}n.allClipped=i}(o,t,n),s=!0),n.prevElClipPaths=o),n.allClipped)e.__isRendered=!1;else{e.beforeBrush&&e.beforeBrush(),e.innerBeforeBrush();var u=n.prevEl;u||(l=s=!0);var h,c,p=e instanceof za&&e.autoBatch&&function(t){var e=Gg(t),n=Hg(t);return!(t.lineDash||!(+e^+n)||e&&"string"!=typeof t.fill||n&&"string"!=typeof t.stroke||t.strokePercent<1||t.strokeOpacity<1||t.fillOpacity<1)}(e.style);s||(h=r,c=u.transform,h&&c?h[0]!==c[0]||h[1]!==c[1]||h[2]!==c[2]||h[3]!==c[3]||h[4]!==c[4]||h[5]!==c[5]:h||c)?($g(t,n),Kg(t,e)):p||$g(t,n);var d=Jg(e,n.inHover);e instanceof za?(1!==n.lastDrawType&&(l=!0,n.lastDrawType=1),qg(t,e,u,l,n),p&&(n.batchFill||n.batchStroke)||t.beginPath(),function(t,e,n,i){var r=Hg(n),o=Gg(n),a=n.strokePercent,s=a<1,l=!e.path;e.silent&&!s||!l||e.createPathProxy();var u=e.path||Fg;if(!i){var h=n.fill,c=n.stroke,p=o&&!!h.colorStops,d=r&&!!c.colorStops,f=o&&!!h.image,g=r&&!!c.image,y=void 0,v=void 0,m=void 0,_=void 0,x=void 0;(p||d)&&(x=e.getBoundingRect()),p&&(y=e.__dirty?Bg(t,h,x):e.__canvasFillGradient,e.__canvasFillGradient=y),d&&(v=e.__dirty?Bg(t,c,x):e.__canvasStrokeGradient,e.__canvasStrokeGradient=v),f&&(m=e.__dirty||!e.__canvasFillPattern?Yg(t,h,e):e.__canvasFillPattern,e.__canvasFillPattern=m),g&&(_=e.__dirty||!e.__canvasStrokePattern?Yg(t,c,e):e.__canvasStrokePattern,e.__canvasStrokePattern=m),p?t.fillStyle=y:f&&(m?t.fillStyle=m:o=!1),d?t.strokeStyle=v:g&&(_?t.strokeStyle=_:r=!1)}var b=n.lineDash&&n.lineWidth>0&&Vg(n.lineDash,n.lineWidth),w=n.lineDashOffset,S=!!t.setLineDash,M=e.getGlobalScale();if(u.setScale(M[0],M[1],e.segmentIgnoreThreshold),b){var T=n.strokeNoScale&&e.getLineScale?e.getLineScale():1;T&&1!==T&&(b=O(b,(function(t){return t/T})),w/=T)}var C=!0;(l||e.__dirty&za.SHAPE_CHANGED_BIT||b&&!S&&r)&&(u.setDPR(t.dpr),s?u.setContext(null):(u.setContext(t),C=!1),u.reset(),b&&!S&&(u.setLineDash(b),u.setLineDashOffset(w)),e.buildPath(u,e.shape,i),u.toStatic(),e.pathUpdated()),C&&u.rebuildPath(t,s?a:1),b&&S&&(t.setLineDash(b),t.lineDashOffset=w),i||(n.strokeFirst?(r&&Ug(t,n),o&&Wg(t,n)):(o&&Wg(t,n),r&&Ug(t,n))),b&&S&&t.setLineDash([])}(t,e,d,p),p&&(n.batchFill=d.fill||"",n.batchStroke=d.stroke||"")):e instanceof Fa?(3!==n.lastDrawType&&(l=!0,n.lastDrawType=3),qg(t,e,u,l,n),function(t,e,n){var i=n.text;if(null!=i&&(i+=""),i){t.font=n.font||Ln,t.textAlign=n.textAlign,t.textBaseline=n.textBaseline;var r=void 0;if(t.setLineDash){var o=n.lineDash&&n.lineWidth>0&&Vg(n.lineDash,n.lineWidth),a=n.lineDashOffset;if(o){var s=n.strokeNoScale&&e.getLineScale?e.getLineScale():1;s&&1!==s&&(o=O(o,(function(t){return t/s})),a/=s),t.setLineDash(o),t.lineDashOffset=a,r=!0}}n.strokeFirst?(Hg(n)&&t.strokeText(i,n.x,n.y),Gg(n)&&t.fillText(i,n.x,n.y)):(Gg(n)&&t.fillText(i,n.x,n.y),Hg(n)&&t.strokeText(i,n.x,n.y)),r&&t.setLineDash([])}}(t,e,d)):e instanceof Wa?(2!==n.lastDrawType&&(l=!0,n.lastDrawType=2),function(t,e,n,i,r){jg(t,Jg(e,r.inHover),n&&Jg(n,r.inHover),i,r)}(t,e,u,l,n),function(t,e,n){var i=e.__image=Yr(n.image,e.__image,e,e.onload);if(i&&Zr(i)){var r=n.x||0,o=n.y||0,a=e.getWidth(),s=e.getHeight(),l=i.width/i.height;if(null==a&&null!=s?a=s*l:null==s&&null!=a?s=a/l:null==a&&null==s&&(a=i.width,s=i.height),n.sWidth&&n.sHeight){var u=n.sx||0,h=n.sy||0;t.drawImage(i,u,h,n.sWidth,n.sHeight,r,o,a,s)}else if(n.sx&&n.sy){var c=a-(u=n.sx),p=s-(h=n.sy);t.drawImage(i,u,h,c,p,r,o,a,s)}else t.drawImage(i,r,o,a,s)}}(t,e,d)):e instanceof ou&&(4!==n.lastDrawType&&(l=!0,n.lastDrawType=4),function(t,e,n){var i=e.getDisplayables(),r=e.getTemporalDisplayables();t.save();var o,a,s={prevElClipPaths:null,prevEl:null,allClipped:!1,viewWidth:n.viewWidth,viewHeight:n.viewHeight,inHover:n.inHover};for(o=e.getCursor(),a=i.length;o<a;o++){(h=i[o]).beforeBrush&&h.beforeBrush(),h.innerBeforeBrush(),ty(t,h,s,o===a-1),h.innerAfterBrush(),h.afterBrush&&h.afterBrush(),s.prevEl=h}for(var l=0,u=r.length;l<u;l++){var h;(h=r[l]).beforeBrush&&h.beforeBrush(),h.innerBeforeBrush(),ty(t,h,s,l===u-1),h.innerAfterBrush(),h.afterBrush&&h.afterBrush(),s.prevEl=h}e.clearTemporalDisplayables(),e.notClear=!0,t.restore()}(t,e,n)),p&&i&&$g(t,n),e.innerAfterBrush(),e.afterBrush&&e.afterBrush(),n.prevEl=e,e.__dirty=0,e.__isRendered=!0}}var ey=new Ig,ny=new Pe(100),iy=["symbol","symbolSize","symbolKeepAspect","color","backgroundColor","dashArrayX","dashArrayY","maxTileWidth","maxTileHeight"];function ry(t,e){if("none"===t)return null;var n=e.getDevicePixelRatio(),i=e.getZr(),r="svg"===i.painter.type;t.dirty&&ey.delete(t);var o=ey.get(t);if(o)return o;var a=C(t,{symbol:"rect",symbolSize:1,symbolKeepAspect:!0,color:"rgba(0, 0, 0, 0.2)",backgroundColor:null,dashArrayX:5,dashArrayY:5,rotation:0,maxTileWidth:512,maxTileHeight:512});"none"===a.backgroundColor&&(a.backgroundColor=null);var s={repeat:"repeat"};return function(t){for(var e,o=[n],s=!0,l=0;l<iy.length;++l){var u=a[iy[l]],h=typeof u;if(null!=u&&!V(u)&&"string"!==h&&"number"!==h&&"boolean"!==h){s=!1;break}o.push(u)}if(s){e=o.join(",")+(r?"-svg":"");var c=ny.get(e);c&&(r?t.svgElement=c:t.image=c)}var p,d=ay(a.dashArrayX),f=function(t){if(!t||"object"==typeof t&&0===t.length)return[0,0];if("number"==typeof t){var e=Math.ceil(t);return[e,e]}var n=O(t,(function(t){return Math.ceil(t)}));return t.length%2?n.concat(n):n}(a.dashArrayY),g=oy(a.symbol),y=(b=d,O(b,(function(t){return sy(t)}))),v=sy(f),m=!r&&I(),_=r&&i.painter.createSVGElement("g"),x=function(){for(var t=1,e=0,n=y.length;e<n;++e)t=ar(t,y[e]);var i=1;for(e=0,n=g.length;e<n;++e)i=ar(i,g[e].length);t*=i;var r=v*y.length*g.length;return{width:Math.max(1,Math.min(t,a.maxTileWidth)),height:Math.max(1,Math.min(r,a.maxTileHeight))}}();var b;m&&(m.width=x.width*n,m.height=x.height*n,p=m.getContext("2d"));(function(){p&&(p.clearRect(0,0,m.width,m.height),a.backgroundColor&&(p.fillStyle=a.backgroundColor,p.fillRect(0,0,m.width,m.height)));for(var t=0,e=0;e<f.length;++e)t+=f[e];if(t<=0)return;var o=-v,s=0,l=0,u=0;for(;o<x.height;){if(s%2==0){for(var h=l/2%g.length,c=0,y=0,b=0;c<2*x.width;){var w=0;for(e=0;e<d[u].length;++e)w+=d[u][e];if(w<=0)break;if(y%2==0){var S=.5*(1-a.symbolSize),M=c+d[u][y]*S,T=o+f[s]*S,C=d[u][y]*a.symbolSize,I=f[s]*a.symbolSize,A=b/2%g[h].length;D(M,T,C,I,g[h][A])}c+=d[u][y],++b,++y===d[u].length&&(y=0)}++u===d.length&&(u=0)}o+=f[s],++l,++s===f.length&&(s=0)}function D(t,e,o,s,l){var u=r?1:n,h=Eg(l,t*u,e*u,o*u,s*u,a.color,a.symbolKeepAspect);r?_.appendChild(i.painter.paintOne(h)):Qg(p,h)}})(),s&&ny.put(e,m||_);t.image=m,t.svgElement=_,t.svgWidth=x.width,t.svgHeight=x.height}(s),s.rotation=a.rotation,s.scaleX=s.scaleY=r?1:1/n,ey.set(t,s),t.dirty=!1,s}function oy(t){if(!t||0===t.length)return[["rect"]];if("string"==typeof t)return[[t]];for(var e=!0,n=0;n<t.length;++n)if("string"!=typeof t[n]){e=!1;break}if(e)return oy([t]);var i=[];for(n=0;n<t.length;++n)"string"==typeof t[n]?i.push([t[n]]):i.push(t[n]);return i}function ay(t){if(!t||0===t.length)return[[0,0]];if("number"==typeof t)return[[r=Math.ceil(t),r]];for(var e=!0,n=0;n<t.length;++n)if("number"!=typeof t[n]){e=!1;break}if(e)return ay([t]);var i=[];for(n=0;n<t.length;++n)if("number"==typeof t[n]){var r=Math.ceil(t[n]);i.push([r,r])}else{(r=O(t[n],(function(t){return Math.ceil(t)}))).length%2==1?i.push(r.concat(r)):i.push(r)}return i}function sy(t){for(var e=0,n=0;n<t.length;++n)e+=t[n];return t.length%2==1?2*e:e}var ly=it,uy=P,hy=F,cy=U,py=A,dy="undefined"!=typeof window,fy=2e3,gy=4500,yy={PROCESSOR:{FILTER:1e3,SERIES_FILTER:800,STATISTIC:5e3},VISUAL:{LAYOUT:1e3,PROGRESSIVE_LAYOUT:1100,GLOBAL:fy,CHART:3e3,POST_CHART_LAYOUT:4600,COMPONENT:4e3,BRUSH:5e3,CHART_ITEM:gy,ARIA:6e3,DECAL:7e3}},vy=/^[a-zA-Z0-9_]+$/,my="__connectUpdateStatus";function _y(t){return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];if(!this.isDisposed())return by(this,t,e);jy(this.id)}}function xy(t){return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return by(this,t,e)}}function by(t,e,n){return n[0]=n[0]&&n[0].toLowerCase(),Bt.prototype[e].apply(t,n)}var wy,Sy,My,Ty,Cy,Iy,Ay,Dy,ky,Ly,Py,Oy,Ry,Ny,Ey,By,zy,Vy,Fy,Hy,Gy,Wy=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e}(Bt),Uy=Wy.prototype;Uy.on=xy("on"),Uy.off=xy("off");var Yy=function(t){function e(e,n,i){var r=t.call(this,new Ff)||this;r._chartsViews=[],r._chartsMap={},r._componentsViews=[],r._componentsMap={},r._pendingActions=[],i=i||{},"string"==typeof n&&(n=nv[n]),r._dom=e;var o="canvas",a=!1,s=r._zr=Bi(e,{renderer:i.renderer||o,devicePixelRatio:i.devicePixelRatio,width:i.width,height:i.height,useDirtyRect:null==i.useDirtyRect?a:i.useDirtyRect});r._throttledZrFlush=ef(B(s.flush,s),17),(n=w(n))&&Cp(n,!0),r._theme=n,r._locale=function(t){if(H(t)){var e=fh[t.toUpperCase()]||{};return t===ch||t===ph?w(e):S(w(e),w(fh.EN),!1)}return S(w(t),w(fh.EN),!1)}(i.locale||yh),r._coordSysMgr=new ip;var l=r._api=zy(r);function u(t,e){return t.__prio-e.__prio}return ai(ev,u),ai($y,u),r._scheduler=new ff(r,l,$y,ev),r._messageCenter=new Wy,r._labelManager=new Sg,r._initEvents(),r.resize=B(r.resize,r),s.animation.on("frame",r._onframe,r),Ly(s,r),Py(s,r),at(r),r}return n(e,t),e.prototype._onframe=function(){if(!this._disposed){Gy(this);var t=this._scheduler;if(this.__optionUpdated){var e=this.__optionUpdated.silent;this.__flagInMainProcess=!0,wy(this),Ty.update.call(this),this._zr.flush(),this.__flagInMainProcess=!1,this.__optionUpdated=!1,Dy.call(this,e),ky.call(this,e)}else if(t.unfinished){var n=1,i=this._model,r=this._api;t.unfinished=!1;do{var o=+new Date;t.performSeriesTasks(i),t.performDataProcessorTasks(i),Iy(this,i),t.performVisualTasks(i),Ey(this,this._model,r,"remain"),n-=+new Date-o}while(n>0&&t.unfinished);t.unfinished||this._zr.flush()}}},e.prototype.getDom=function(){return this._dom},e.prototype.getId=function(){return this.id},e.prototype.getZr=function(){return this._zr},e.prototype.setOption=function(t,e,n){if(this._disposed)jy(this.id);else{var i,r,o;if(cy(e)&&(n=e.lazyUpdate,i=e.silent,r=e.replaceMerge,o=e.transition,e=e.notMerge),this.__flagInMainProcess=!0,!this._model||e){var a=new op(this._api),s=this._theme,l=this._model=new Kc;l.scheduler=this._scheduler,l.init(null,null,null,s,this._locale,a)}this._model.setOption(t,{replaceMerge:r},Jy),Fy(this,o),n?(this.__optionUpdated={silent:i},this.__flagInMainProcess=!1,this.getZr().wakeUp()):(wy(this),Ty.update.call(this),this._zr.flush(),this.__optionUpdated=!1,this.__flagInMainProcess=!1,Dy.call(this,i),ky.call(this,i))}},e.prototype.setTheme=function(){console.error("ECharts#setTheme() is DEPRECATED in ECharts 3.0")},e.prototype.getModel=function(){return this._model},e.prototype.getOption=function(){return this._model&&this._model.getOption()},e.prototype.getWidth=function(){return this._zr.getWidth()},e.prototype.getHeight=function(){return this._zr.getHeight()},e.prototype.getDevicePixelRatio=function(){return this._zr.painter.dpr||dy&&window.devicePixelRatio||1},e.prototype.getRenderedCanvas=function(t){if(a.canvasSupported)return(t=T({},t||{})).pixelRatio=t.pixelRatio||1,t.backgroundColor=t.backgroundColor||this._model.get("backgroundColor"),this._zr.painter.getRenderedCanvas(t)},e.prototype.getSvgDataURL=function(){if(a.svgSupported){var t=this._zr;return P(t.storage.getDisplayList(),(function(t){t.stopAnimation(null,!0)})),t.painter.toDataURL()}},e.prototype.getDataURL=function(t){if(!this._disposed){var e=(t=t||{}).excludeComponents,n=this._model,i=[],r=this;uy(e,(function(t){n.eachComponent({mainType:t},(function(t){var e=r._componentsMap[t.__viewId];e.group.ignore||(i.push(e),e.group.ignore=!0)}))}));var o="svg"===this._zr.painter.getType()?this.getSvgDataURL():this.getRenderedCanvas(t).toDataURL("image/"+(t&&t.type||"png"));return uy(i,(function(t){t.group.ignore=!1})),o}jy(this.id)},e.prototype.getConnectedDataURL=function(t){if(this._disposed)jy(this.id);else if(a.canvasSupported){var e="svg"===t.type,n=this.group,i=Math.min,r=Math.max,o=1/0;if(ov[n]){var s=o,l=o,u=-1/0,h=-1/0,c=[],p=t&&t.pixelRatio||1;P(rv,(function(o,a){if(o.group===n){var p=e?o.getZr().painter.getSvgDom().innerHTML:o.getRenderedCanvas(w(t)),d=o.getDom().getBoundingClientRect();s=i(d.left,s),l=i(d.top,l),u=r(d.right,u),h=r(d.bottom,h),c.push({dom:p,left:d.left,top:d.top})}}));var d=(u*=p)-(s*=p),f=(h*=p)-(l*=p),g=I(),y=Bi(g,{renderer:e?"svg":"canvas"});if(y.resize({width:d,height:f}),e){var v="";return uy(c,(function(t){var e=t.left-s,n=t.top-l;v+='<g transform="translate('+e+","+n+')">'+t.dom+"</g>"})),y.painter.getSvgRoot().innerHTML=v,t.connectedBackgroundColor&&y.painter.setBackgroundColor(t.connectedBackgroundColor),y.refreshImmediately(),y.painter.toDataURL()}return t.connectedBackgroundColor&&y.add(new Ka({shape:{x:0,y:0,width:d,height:f},style:{fill:t.connectedBackgroundColor}})),uy(c,(function(t){var e=new Wa({style:{x:t.left*p-s,y:t.top*p-l,image:t.dom}});y.add(e)})),y.refreshImmediately(),g.toDataURL("image/"+(t&&t.type||"png"))}return this.getDataURL(t)}},e.prototype.convertToPixel=function(t,e){return Cy(this,"convertToPixel",t,e)},e.prototype.convertFromPixel=function(t,e){return Cy(this,"convertFromPixel",t,e)},e.prototype.containPixel=function(t,e){var n;if(!this._disposed)return P(Mr(this._model,t),(function(t,i){i.indexOf("Models")>=0&&P(t,(function(t){var r=t.coordinateSystem;if(r&&r.containPoint)n=n||!!r.containPoint(e);else if("seriesModels"===i){var o=this._chartsMap[t.__viewId];o&&o.containPoint&&(n=n||o.containPoint(e,t))}else 0}),this)}),this),!!n;jy(this.id)},e.prototype.getVisual=function(t,e){var n=Mr(this._model,t,{defaultMainType:"series"}),i=n.seriesModel;var r=i.getData(),o=n.hasOwnProperty("dataIndexInside")?n.dataIndexInside:n.hasOwnProperty("dataIndex")?r.indexOfRawIndex(n.dataIndex):null;return null!=o?function(t,e,n){switch(n){case"color":return t.getItemVisual(e,"style")[t.getVisual("drawType")];case"opacity":return t.getItemVisual(e,"style").opacity;case"symbol":case"symbolSize":case"liftZ":return t.getItemVisual(e,n)}}(r,o,e):Gf(r,e)},e.prototype.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},e.prototype.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]},e.prototype._initEvents=function(){var t,e,n,i=this;uy(Zy,(function(t){var e=function(e){var n,r=i.getModel(),o=e.target,a="globalout"===t;if(a?n={}:o&&Tg(o,(function(t){var e=ss(t);if(e&&null!=e.dataIndex){var i=e.dataModel||r.getSeriesByIndex(e.seriesIndex);return n=i&&i.getDataParams(e.dataIndex,e.dataType)||{},!0}if(e.eventData)return n=T({},e.eventData),!0}),!0),n){var s=n.componentType,l=n.componentIndex;"markLine"!==s&&"markPoint"!==s&&"markArea"!==s||(s="series",l=n.seriesIndex);var u=s&&null!=l&&r.getComponent(s,l),h=u&&i["series"===u.mainType?"_chartsMap":"_componentsMap"][u.__viewId];0,n.event=e,n.type=t,i._$eventProcessor.eventInfo={targetEl:o,packedEvent:n,model:u,view:h},i.trigger(t,n)}};e.zrEventfulCallAtLast=!0,i._zr.on(t,e,i)})),uy(Ky,(function(t,e){i._messageCenter.on(e,(function(t){this.trigger(e,t)}),i)})),uy(["selectchanged"],(function(t){i._messageCenter.on(t,(function(e){this.trigger(t,e)}),i)})),t=this._messageCenter,e=this,n=this._api,t.on("selectchanged",(function(t){var i=n.getModel();t.isFromClick?(Mg("map","selectchanged",e,i,t),Mg("pie","selectchanged",e,i,t)):"select"===t.fromAction?(Mg("map","selected",e,i,t),Mg("pie","selected",e,i,t)):"unselect"===t.fromAction&&(Mg("map","unselected",e,i,t),Mg("pie","unselected",e,i,t))}))},e.prototype.isDisposed=function(){return this._disposed},e.prototype.clear=function(){this._disposed?jy(this.id):this.setOption({series:[]},!0)},e.prototype.dispose=function(){if(this._disposed)jy(this.id);else{this._disposed=!0,Ar(this.getDom(),lv,"");var t=this._api,e=this._model;uy(this._componentsViews,(function(n){n.dispose(e,t)})),uy(this._chartsViews,(function(n){n.dispose(e,t)})),this._zr.dispose(),delete rv[this.id]}},e.prototype.resize=function(t){if(this._disposed)jy(this.id);else{this._zr.resize(t);var e=this._model;if(this._loadingFX&&this._loadingFX.resize(),e){var n=e.resetOption("media"),i=t&&t.silent;this.__flagInMainProcess=!0,n&&wy(this),Ty.update.call(this,{type:"resize",animation:{duration:0}}),this.__flagInMainProcess=!1,Dy.call(this,i),ky.call(this,i)}}},e.prototype.showLoading=function(t,e){if(this._disposed)jy(this.id);else if(cy(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),iv[t]){var n=iv[t](this._api,e),i=this._zr;this._loadingFX=n,i.add(n)}},e.prototype.hideLoading=function(){this._disposed?jy(this.id):(this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null)},e.prototype.makeActionFromEvent=function(t){var e=T({},t);return e.type=Ky[t.type],e},e.prototype.dispatchAction=function(t,e){if(this._disposed)jy(this.id);else if(cy(e)||(e={silent:!!e}),qy[t.type]&&this._model)if(this.__flagInMainProcess)this._pendingActions.push(t);else{var n=e.silent;Ay.call(this,t,n);var i=e.flush;i?this._zr.flush():!1!==i&&a.browser.weChat&&this._throttledZrFlush(),Dy.call(this,n),ky.call(this,n)}},e.prototype.updateLabelLayout=function(){var t=this._labelManager;t.updateLayoutConfig(this._api),t.layout(this._api),t.processLabelsOverall()},e.prototype.appendData=function(t){if(this._disposed)jy(this.id);else{var e=t.seriesIndex,n=this.getModel().getSeriesByIndex(e);0,n.appendData(t),this._scheduler.unfinished=!0,this.getZr().wakeUp()}},e.internalField=function(){function t(t){for(var e=[],n=t.currentStates,i=0;i<n.length;i++){var r=n[i];"emphasis"!==r&&"blur"!==r&&"select"!==r&&e.push(r)}t.selected&&t.states.select&&e.push("select"),2===t.hoverState&&t.states.emphasis?e.push("emphasis"):1===t.hoverState&&t.states.blur&&e.push("blur"),t.useStates(e)}function e(t,e){if(!t.preventAutoZ){var n=t.get("z"),i=t.get("zlevel");e.group.traverse((function(t){if(!t.isGroup){null!=n&&(t.z=n),null!=i&&(t.zlevel=i);var e=t.getTextContent(),r=t.getTextGuideLine();if(e&&(e.z=t.z,e.zlevel=t.zlevel,e.z2=t.z2+2),r){var o=t.textGuideLineConfig&&t.textGuideLineConfig.showAbove;r.z=t.z,r.zlevel=t.zlevel,r.z2=t.z2+(o?1:-1)}}}))}}function i(t,e){e.group.traverse((function(t){if(!Cu(t)){var e=t.getTextContent(),n=t.getTextGuideLine();t.stateTransition&&(t.stateTransition=null),e&&e.stateTransition&&(e.stateTransition=null),n&&n.stateTransition&&(n.stateTransition=null),t.hasState()?(t.prevStates=t.currentStates,t.clearStates()):t.prevStates&&(t.prevStates=null)}}))}function r(e,n){var i=e.getModel("stateAnimation"),r=e.isAnimationEnabled(),o=i.get("duration"),a=o>0?{duration:o,delay:i.get("delay"),easing:i.get("easing")}:null;n.group.traverse((function(e){if(e.states&&e.states.emphasis){if(Cu(e))return;if(e instanceof za&&function(t){var e=hs(t);e.normalFill=t.style.fill,e.normalStroke=t.style.stroke;var n=t.states.select||{};e.selectFill=n.style&&n.style.fill||null,e.selectStroke=n.style&&n.style.stroke||null}(e),e.__dirty){var n=e.prevStates;n&&e.useStates(n)}if(r){e.stateTransition=a;var i=e.getTextContent(),o=e.getTextGuideLine();i&&(i.stateTransition=a),o&&(o.stateTransition=a)}e.__dirty&&t(e)}}))}wy=function(t){var e=t._scheduler;e.restorePipelines(t._model),e.prepareStageTasks(),Sy(t,!0),Sy(t,!1),e.plan()},Sy=function(t,e){for(var n=t._model,i=t._scheduler,r=e?t._componentsViews:t._chartsViews,o=e?t._componentsMap:t._chartsMap,a=t._zr,s=t._api,l=0;l<r.length;l++)r[l].__alive=!1;function u(t){var l=t.__requireNewView;t.__requireNewView=!1;var u="_ec_"+t.id+"_"+t.type,h=!l&&o[u];if(!h){var c=Pr(t.type),p=e?Gd.getClass(c.main,c.sub):Xd.getClass(c.sub);0,(h=new p).init(n,s),o[u]=h,r.push(h),a.add(h.group)}t.__viewId=h.__id=u,h.__alive=!0,h.__model=t,h.group.__ecComponentInfo={mainType:t.mainType,index:t.componentIndex},!e&&i.prepareView(h,t,n,s)}e?n.eachComponent((function(t,e){"series"!==t&&u(e)})):n.eachSeries(u);for(l=0;l<r.length;){var h=r[l];h.__alive?l++:(!e&&h.renderTask.dispose(),a.remove(h.group),h.dispose(n,s),r.splice(l,1),o[h.__id]===h&&delete o[h.__id],h.__id=h.group.__ecComponentInfo=null)}},My=function(t,e,n,i,r){var o=t._model;if(o.setUpdatePayload(n),i){var a={};a[i+"Id"]=n[i+"Id"],a[i+"Index"]=n[i+"Index"],a[i+"Name"]=n[i+"Name"];var s={mainType:i,query:a};r&&(s.subType=r);var l,u=n.excludeSeriesId;null!=u&&(l=ut(),uy(cr(u),(function(t){var e=mr(t,null);null!=e&&l.set(e,!0)}))),o&&o.eachComponent(s,(function(e){l&&null!=l.get(e.id)||(qs(n)&&!n.notBlur?e instanceof Rd&&function(t,e,n){if(qs(e)){var i=e.type===ds,r=t.seriesIndex,o=t.getData(e.dataType),a=br(o,e);a=(V(a)?a[0]:a)||0;var s=o.getItemGraphicEl(a);if(!s)for(var l=o.count(),u=0;!s&&u<l;)s=o.getItemGraphicEl(u++);if(s){var h=ss(s);Fs(r,h.focus,h.blurScope,n,i)}else{var c=t.get(["emphasis","focus"]),p=t.get(["emphasis","blurScope"]);null!=c&&Fs(r,c,p,n,i)}}}(e,n,t._api):js(n)&&e instanceof Rd&&(!function(t,e,n){if(js(e)){var i=e.dataType,r=br(t.getData(i),e);V(r)||(r=[r]),t[e.type===vs?"toggleSelect":e.type===gs?"select":"unselect"](r,i)}}(e,n,t._api),Hs(e),Hy(t)),h(t["series"===i?"_chartsMap":"_componentsMap"][e.__viewId]))}),t)}else uy([].concat(t._componentsViews).concat(t._chartsViews),h);function h(i){i&&i.__alive&&i[e]&&i[e](i.__model,o,t._api,n)}},Ty={prepareAndUpdate:function(t){wy(this),Ty.update.call(this,t)},update:function(t){var e=this._model,n=this._api,i=this._zr,r=this._coordSysMgr,o=this._scheduler;if(e){e.setUpdatePayload(t),o.restoreData(e,t),o.performSeriesTasks(e),r.create(e,n),o.performDataProcessorTasks(e,t),Iy(this,e),r.update(e,n),Oy(e),o.performVisualTasks(e,t),Ry(this,e,n,t);var s=e.get("backgroundColor")||"transparent",l=e.get("darkMode");if(a.canvasSupported)i.setBackgroundColor(s),null!=l&&"auto"!==l&&i.setDarkMode(l);else{var u=Ye(s);s=tn(u,"rgb"),0===u[3]&&(s="transparent")}By(e,n)}},updateTransform:function(t){var e=this,n=this._model,i=this._api;if(n){n.setUpdatePayload(t);var r=[];n.eachComponent((function(o,a){if("series"!==o){var s=e.getViewOfComponentModel(a);if(s&&s.__alive)if(s.updateTransform){var l=s.updateTransform(a,n,i,t);l&&l.update&&r.push(s)}else r.push(s)}}));var o=ut();n.eachSeries((function(r){var a=e._chartsMap[r.__viewId];if(a.updateTransform){var s=a.updateTransform(r,n,i,t);s&&s.update&&o.set(r.uid,1)}else o.set(r.uid,1)})),Oy(n),this._scheduler.performVisualTasks(n,t,{setDirty:!0,dirtyMap:o}),Ey(this,n,i,t,o),By(n,this._api)}},updateView:function(t){var e=this._model;e&&(e.setUpdatePayload(t),Xd.markUpdateMethod(t,"updateView"),Oy(e),this._scheduler.performVisualTasks(e,t,{setDirty:!0}),Ry(this,this._model,this._api,t),By(e,this._api))},updateVisual:function(t){var e=this,n=this._model;n&&(n.setUpdatePayload(t),n.eachSeries((function(t){t.getData().clearAllVisual()})),Xd.markUpdateMethod(t,"updateVisual"),Oy(n),this._scheduler.performVisualTasks(n,t,{visualType:"visual",setDirty:!0}),n.eachComponent((function(i,r){if("series"!==i){var o=e.getViewOfComponentModel(r);o&&o.__alive&&o.updateVisual(r,n,e._api,t)}})),n.eachSeries((function(i){e._chartsMap[i.__viewId].updateVisual(i,n,e._api,t)})),By(n,this._api))},updateLayout:function(t){Ty.update.call(this,t)}},Cy=function(t,e,n,i){if(t._disposed)jy(t.id);else{for(var r,o=t._model,a=t._coordSysMgr.getCoordinateSystems(),s=Mr(o,n),l=0;l<a.length;l++){var u=a[l];if(u[e]&&null!=(r=u[e](o,s,i)))return r}0}},Iy=function(t,e){var n=t._chartsMap,i=t._scheduler;e.eachSeries((function(t){i.updateStreamModes(t,n[t.__viewId])}))},Ay=function(t,e){var n=this,i=this.getModel(),r=t.type,o=t.escapeConnect,a=qy[r],s=a.actionInfo,l=(s.update||"update").split(":"),u=l.pop(),h=null!=l[0]&&Pr(l[0]);this.__flagInMainProcess=!0;var c=[t],p=!1;t.batch&&(p=!0,c=O(t.batch,(function(e){return(e=C(T({},e),t)).batch=null,e})));var d,f=[],g=js(t),y=qs(t)||g;if(uy(c,(function(t){(d=(d=a.action(t,n._model,n._api))||T({},t)).type=s.event||d.type,f.push(d),y?(My(n,u,t,"series"),Hy(n)):h&&My(n,u,t,h.main,h.sub)})),"none"===u||y||h||(this.__optionUpdated?(wy(this),Ty.update.call(this,t),this.__optionUpdated=!1):Ty[u].call(this,t)),d=p?{type:s.event||r,escapeConnect:o,batch:f}:f[0],this.__flagInMainProcess=!1,!e){var v=this._messageCenter;if(v.trigger(d.type,d),g){var m={type:"selectchanged",escapeConnect:o,selected:Gs(i),isFromClick:t.isFromClick||!1,fromAction:t.type,fromActionPayload:t};v.trigger(m.type,m)}}},Dy=function(t){for(var e=this._pendingActions;e.length;){var n=e.shift();Ay.call(this,n,t)}},ky=function(t){!t&&this.trigger("updated")},Ly=function(t,e){t.on("rendered",(function(n){e.trigger("rendered",n),!t.animation.isFinished()||e.__optionUpdated||e._scheduler.unfinished||e._pendingActions.length||e.trigger("finished")}))},Py=function(t,e){t.on("mouseover",(function(t){var n=Tg(t.target,Zs);if(n){var i=ss(n);Fs(i.seriesIndex,i.focus,i.blurScope,e._api,!0),function(t,e){!Vs(t,e)&&!t.__highByOuter&&Ds(t,ws)}(n,t),Hy(e)}})).on("mouseout",(function(t){var n=Tg(t.target,Zs);if(n){var i=ss(n);Fs(i.seriesIndex,i.focus,i.blurScope,e._api,!1),function(t,e){!Vs(t,e)&&!t.__highByOuter&&Ds(t,Ss)}(n,t),Hy(e)}})).on("click",(function(t){var n=Tg(t.target,(function(t){return null!=ss(t).dataIndex}),!0);if(n){var i=n.selected?"unselect":"select",r=ss(n);e._api.dispatchAction({type:i,dataType:r.dataType,dataIndexInside:r.dataIndex,seriesIndex:r.seriesIndex,isFromClick:!0})}}))},Oy=function(t){t.clearColorPalette(),t.eachSeries((function(t){t.clearColorPalette()}))},Ry=function(t,e,n,i){Ny(t,e,n,i),uy(t._chartsViews,(function(t){t.__alive=!1})),Ey(t,e,n,i),uy(t._chartsViews,(function(t){t.__alive||t.remove(e,n)}))},Ny=function(t,n,o,a,s){uy(s||t._componentsViews,(function(t){var s=t.__model;i(s,t),t.render(s,n,o,a),e(s,t),r(s,t)}))},Ey=function(t,n,o,s,l){var u=t._scheduler,h=t._labelManager;h.clearLabels();var c=!1;n.eachSeries((function(e){var n=t._chartsMap[e.__viewId];n.__alive=!0;var r=n.renderTask;u.updatePayload(r,s),i(e,n),l&&l.get(e.uid)&&r.dirty(),r.perform(u.getPerformArgs(r))&&(c=!0),e.__transientTransitionOpt=null,n.group.silent=!!e.get("silent"),function(t,e){var n=t.get("blendMode")||null;0;e.group.traverse((function(t){t.isGroup||(t.style.blend=n),t.eachPendingDisplayable&&t.eachPendingDisplayable((function(t){t.style.blend=n}))}))}(e,n),Hs(e),h.addLabelsOfSeries(n)})),u.unfinished=c||u.unfinished,h.updateLayoutConfig(o),h.layout(o),h.processLabelsOverall(),n.eachSeries((function(n){var i=t._chartsMap[n.__viewId];e(n,i),r(n,i)})),function(t,e){var n=t._zr.storage,i=0;n.traverse((function(t){t.isGroup||i++})),i>e.get("hoverLayerThreshold")&&!a.node&&!a.worker&&e.eachSeries((function(e){if(!e.preventUsingHoverLayer){var n=t._chartsMap[e.__viewId];n.__alive&&n.group.traverse((function(t){t.states.emphasis&&(t.states.emphasis.hoverLayer=!0)}))}}))}(t,n)},By=function(t,e){uy(tv,(function(n){n(t,e)}))},Hy=function(t){t.__needsUpdateStatus=!0,t.getZr().wakeUp()},Gy=function(e){e.__needsUpdateStatus&&(e.getZr().storage.traverse((function(e){Cu(e)||t(e)})),e.__needsUpdateStatus=!1)},zy=function(t){return new(function(e){function i(){return null!==e&&e.apply(this,arguments)||this}return n(i,e),i.prototype.getCoordinateSystems=function(){return t._coordSysMgr.getCoordinateSystems()},i.prototype.getComponentByElement=function(e){for(;e;){var n=e.__ecComponentInfo;if(null!=n)return t._model.getComponent(n.mainType,n.index);e=e.parent}},i.prototype.enterEmphasis=function(e,n){Os(e,n),Hy(t)},i.prototype.leaveEmphasis=function(e,n){Rs(e,n),Hy(t)},i.prototype.enterBlur=function(e){Ns(e),Hy(t)},i.prototype.leaveBlur=function(e){Es(e),Hy(t)},i.prototype.enterSelect=function(e){Bs(e),Hy(t)},i.prototype.leaveSelect=function(e){zs(e),Hy(t)},i.prototype.getModel=function(){return t.getModel()},i.prototype.getViewOfComponentModel=function(e){return t.getViewOfComponentModel(e)},i.prototype.getViewOfSeriesModel=function(e){return t.getViewOfSeriesModel(e)},i}(ep))(t)},Vy=function(t){function e(t,e){for(var n=0;n<t.length;n++){t[n][my]=e}}uy(Ky,(function(n,i){t._messageCenter.on(i,(function(n){if(ov[t.group]&&0!==t[my]){if(n&&n.escapeConnect)return;var i=t.makeActionFromEvent(n),r=[];uy(rv,(function(e){e!==t&&e.group===t.group&&r.push(e)})),e(r,0),uy(r,(function(t){1!==t[my]&&t.dispatchAction(i)})),e(r,2)}}))}))},Fy=function(t,e){var n=t._model;P(cr(e),(function(t){var e,i=t.from,r=t.to;null==r&&lr(e);var o={includeMainTypes:["series"],enableAll:!1,enableNone:!1},a=i?Mr(n,i,o):null,s=Mr(n,r,o).seriesModel;null==s&&(e=""),a&&a.seriesModel!==s&&(e=""),null!=e&&lr(e),s.__transientTransitionOpt={from:i?i.dimension:null,to:r.dimension,dividingMethod:t.dividingMethod}}))}}(),e}(Bt),Xy=Yy.prototype;Xy.on=_y("on"),Xy.off=_y("off"),Xy.one=function(t,e,n){var i=this;sr(),this.on.call(this,t,(function n(){for(var r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];e&&e.apply&&e.apply(this,r),i.off(t,n)}),n)};var Zy=["click","dblclick","mouseover","mouseout","mousemove","mousedown","mouseup","globalout","contextmenu"];function jy(t){0}var qy={},Ky={},$y=[],Jy=[],Qy=[],tv=[],ev=[],nv={},iv={},rv={},ov={},av=+new Date-0,sv=+new Date-0,lv="_echarts_instance_";function uv(t){ov[t]=!1}var hv=uv;function cv(t){return rv[function(t,e){return t.getAttribute?t.getAttribute(e):t[e]}(t,lv)]}function pv(t,e){nv[t]=e}function dv(t){py(Jy,t)<0&&Jy.push(t)}function fv(t,e){wv($y,t,e,2e3)}function gv(t){py(Qy,t)<0&&t&&Qy.push(t)}function yv(t){py(tv,t)<0&&t&&tv.push(t)}function vv(t,e,n){"function"==typeof e&&(n=e,e="");var i=cy(t)?t.type:[t,t={event:e}][0];t.event=(t.event||i).toLowerCase(),e=t.event,Ky[e]||(ly(vy.test(i)&&vy.test(e)),qy[i]||(qy[i]={action:n,actionInfo:t}),Ky[e]=i)}function mv(t,e){ip.register(t,e)}function _v(t,e){wv(ev,t,e,1e3,"layout")}function xv(t,e){wv(ev,t,e,3e3,"visual")}var bv=[];function wv(t,e,n,i,r){if((hy(e)||cy(e))&&(n=e,e=i),!(py(bv,n)>=0)){bv.push(n);var o=ff.wrapStageHandler(n,r);o.__prio=e,o.__raw=n,t.push(o)}}function Sv(t,e){iv[t]=e}function Mv(t,e,n){Bf(t,e,n)}var Tv=function(t){var e=(t=w(t)).type,n="";e||lr(n);var i=e.split(":");2!==i.length&&lr(n);var r=!1;"echarts"===i[0]&&(e=i[1],r=!0),t.__isBuiltIn=r,pd.set(e,t)};xv(fy,uf),xv(gy,cf),xv(gy,pf),xv(fy,Hf),xv(gy,{createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){if(t.hasSymbolVisual&&!e.isSeriesFiltered(t))return{dataEach:t.getData().hasItemOption?function(t,e){var n=t.getItemModel(e),i=n.getShallow("symbol",!0),r=n.getShallow("symbolSize",!0),o=n.getShallow("symbolRotate",!0),a=n.getShallow("symbolKeepAspect",!0);null!=i&&t.setItemVisual(e,"symbol",i),null!=r&&t.setItemVisual(e,"symbolSize",r),null!=o&&t.setItemVisual(e,"symbolRotate",o),null!=a&&t.setItemVisual(e,"symbolKeepAspect",a)}:null}}}),xv(7e3,(function(t,e){t.eachRawSeries((function(n){if(!t.isSeriesFiltered(n)){var i=n.getData();i.hasItemVisual()&&i.each((function(t){var n=i.getItemVisual(t,"decal");n&&(i.ensureUniqueItemVisual(t,"style").decal=ry(n,e))}));var r=i.getVisual("decal");if(r)i.getVisual("style").decal=ry(r,e)}}))})),dv(Cp),fv(900,(function(t){var e=ut();t.eachSeries((function(t){var n=t.get("stack");if(n){var i=e.get(n)||e.set(n,[]),r=t.getData(),o={stackResultDimension:r.getCalculationInfo("stackResultDimension"),stackedOverDimension:r.getCalculationInfo("stackedOverDimension"),stackedDimension:r.getCalculationInfo("stackedDimension"),stackedByDimension:r.getCalculationInfo("stackedByDimension"),isStackedByIndex:r.getCalculationInfo("isStackedByIndex"),data:r,seriesModel:t};if(!o.stackedDimension||!o.isStackedByIndex&&!o.stackedByDimension)return;i.length&&r.setCalculationInfo("stackedOnSeries",i[i.length-1].seriesModel),i.push(o)}})),e.each(Ip)})),Sv("default",(function(t,e){C(e=e||{},{text:"loading",textColor:"#000",fontSize:12,fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",maskColor:"rgba(255, 255, 255, 0.8)",showSpinner:!0,color:"#5470c6",spinnerRadius:10,lineWidth:5,zlevel:0});var n=new Pi,i=new Ka({style:{fill:e.maskColor},zlevel:e.zlevel,z:1e4});n.add(i);var r,o=new Qa({style:{text:e.text,fill:e.textColor,fontSize:e.fontSize,fontWeight:e.fontWeight,fontStyle:e.fontStyle,fontFamily:e.fontFamily}}),a=new Ka({style:{fill:"none"},textContent:o,textConfig:{position:"right",distance:10},zlevel:e.zlevel,z:10001});return n.add(a),e.showSpinner&&((r=new jl({shape:{startAngle:-df/2,endAngle:-df/2+.1,r:e.spinnerRadius},style:{stroke:e.color,lineCap:"round",lineWidth:e.lineWidth},zlevel:e.zlevel,z:10001})).animateShape(!0).when(1e3,{endAngle:3*df/2}).start("circularInOut"),r.animateShape(!0).when(1e3,{startAngle:3*df/2}).delay(300).start("circularInOut"),n.add(r)),n.resize=function(){var n=o.getBoundingRect().width,s=e.showSpinner?e.spinnerRadius:0,l=(t.getWidth()-2*s-(e.showSpinner&&n?10:0)-n)/2-(e.showSpinner&&n?0:5+n/2)+(e.showSpinner?0:n/2)+(n?0:s),u=t.getHeight()/2;e.showSpinner&&r.setShape({cx:l,cy:u}),a.setShape({x:l-s,y:u-s,width:2*s,height:2*s}),i.setShape({x:0,y:0,width:t.getWidth(),height:t.getHeight()})},n.resize(),n})),vv({type:ds,event:ds,update:ds},pt),vv({type:fs,event:fs,update:fs},pt),vv({type:gs,event:gs,update:gs},pt),vv({type:ys,event:ys,update:ys},pt),vv({type:vs,event:vs,update:vs},pt),pv("light",kf),pv("dark",Nf);var Cv=[],Iv={registerPreprocessor:dv,registerProcessor:fv,registerPostInit:gv,registerPostUpdate:yv,registerAction:vv,registerCoordinateSystem:mv,registerLayout:_v,registerVisual:xv,registerTransform:Tv,registerLoading:Sv,registerMap:Mv,PRIORITY:yy,ComponentModel:_c,ComponentView:Gd,SeriesModel:Rd,ChartView:Xd,registerComponentModel:function(t){_c.registerClass(t)},registerComponentView:function(t){Gd.registerClass(t)},registerSeriesModel:function(t){Rd.registerClass(t)},registerChartView:function(t){Xd.registerClass(t)},registerSubTypeDefaulter:function(t,e){_c.registerSubTypeDefaulter(t,e)},registerPainter:function(t,e){zi(t,e)}};function Av(t){V(t)?P(t,(function(t){Av(t)})):A(Cv,t)>=0||(Cv.push(t),F(t)&&(t={install:t}),t.install(Iv))}function Dv(t){return null==t?0:t.length||1}function kv(t){return t}var Lv=function(){function t(t,e,n,i,r,o){this._old=t,this._new=e,this._oldKeyGetter=n||kv,this._newKeyGetter=i||kv,this.context=r,this._diffModeMultiple="multiple"===o}return t.prototype.add=function(t){return this._add=t,this},t.prototype.update=function(t){return this._update=t,this},t.prototype.updateManyToOne=function(t){return this._updateManyToOne=t,this},t.prototype.updateOneToMany=function(t){return this._updateOneToMany=t,this},t.prototype.remove=function(t){return this._remove=t,this},t.prototype.execute=function(){this[this._diffModeMultiple?"_executeMultiple":"_executeOneToOne"]()},t.prototype._executeOneToOne=function(){var t=this._old,e=this._new,n={},i=new Array(t.length),r=new Array(e.length);this._initIndexMap(t,null,i,"_oldKeyGetter"),this._initIndexMap(e,n,r,"_newKeyGetter");for(var o=0;o<t.length;o++){var a=i[o],s=n[a],l=Dv(s);if(l>1){var u=s.shift();1===s.length&&(n[a]=s[0]),this._update&&this._update(u,o)}else 1===l?(n[a]=null,this._update&&this._update(s,o)):this._remove&&this._remove(o)}this._performRestAdd(r,n)},t.prototype._executeMultiple=function(){var t=this._old,e=this._new,n={},i={},r=[],o=[];this._initIndexMap(t,n,r,"_oldKeyGetter"),this._initIndexMap(e,i,o,"_newKeyGetter");for(var a=0;a<r.length;a++){var s=r[a],l=n[s],u=i[s],h=Dv(l),c=Dv(u);if(h>1&&1===c)this._updateManyToOne&&this._updateManyToOne(u,l),i[s]=null;else if(1===h&&c>1)this._updateOneToMany&&this._updateOneToMany(u,l),i[s]=null;else if(1===h&&1===c)this._update&&this._update(u,l),i[s]=null;else if(h>1)for(var p=0;p<h;p++)this._remove&&this._remove(l[p]);else this._remove&&this._remove(l)}this._performRestAdd(o,i)},t.prototype._performRestAdd=function(t,e){for(var n=0;n<t.length;n++){var i=t[n],r=e[i],o=Dv(r);if(o>1)for(var a=0;a<o;a++)this._add&&this._add(r[a]);else 1===o&&this._add&&this._add(r);e[i]=null}},t.prototype._initIndexMap=function(t,e,n,i){for(var r=this._diffModeMultiple,o=0;o<t.length;o++){var a="_ec_"+this[i](t[o],o);if(r||(n[o]=a),e){var s=e[a],l=Dv(s);0===l?(e[a]=o,r&&n.push(a)):1===l?e[a]=[s,o]:s.push(o)}}},t}();function Pv(t,e){return t.hasOwnProperty(e)||(t[e]=[]),t[e]}var Ov,Rv,Nv,Ev,Bv,zv,Vv,Fv,Hv,Gv,Wv,Uv,Yv,Xv,Zv=function(t){this.otherDims={},null!=t&&T(this,t)},jv=Math.floor,qv=U,Kv=O,$v="undefined",Jv={float:typeof Float64Array===$v?Array:Float64Array,int:typeof Int32Array===$v?Array:Int32Array,ordinal:Array,number:Array,time:Array},Qv=typeof Uint32Array===$v?Array:Uint32Array,tm=typeof Int32Array===$v?Array:Int32Array,em=typeof Uint16Array===$v?Array:Uint16Array,nm=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_rawData","_dimValueGetter","_count","_rawCount","_nameDimIdx","_idDimIdx","_nameRepeatCount"],im=["_extent","_approximateExtent","_rawExtent"],rm=function(){function t(t,e){this.type="list",this._count=0,this._rawCount=0,this._storage={},this._storageArr=[],this._nameList=[],this._idList=[],this._visual={},this._layout={},this._itemVisuals=[],this._itemLayouts=[],this._graphicEls=[],this._rawExtent={},this._extent={},this._approximateExtent={},this._calculationInfo={},this.hasItemOption=!0,this.TRANSFERABLE_METHODS=["cloneShallow","downSample","lttbDownSample","map"],this.CHANGABLE_METHODS=["filterSelf","selectRange"],this.DOWNSAMPLE_METHODS=["downSample","lttbDownSample"],this.getRawIndex=Bv,t=t||["x","y"];for(var n={},i=[],r={},o=0;o<t.length;o++){var a=t[o],s=H(a)?new Zv({name:a}):a instanceof Zv?a:new Zv(a),l=s.name;s.type=s.type||"float",s.coordDim||(s.coordDim=l,s.coordDimIndex=0);var u=s.otherDims=s.otherDims||{};i.push(l),n[l]=s,s.index=o,s.createInvertedIndices&&(r[l]=[]),0===u.itemName&&(this._nameDimIdx=o,this._nameOrdinalMeta=s.ordinalMeta),0===u.itemId&&(this._idDimIdx=o,this._idOrdinalMeta=s.ordinalMeta)}this.dimensions=i,this._dimensionInfos=n,this.hostModel=e,this._dimensionsSummary=function(t){var e={},n=e.encode={},i=ut(),r=[],o=[],a=e.userOutput={dimensionNames:t.dimensions.slice(),encode:{}};P(t.dimensions,(function(e){var s,l=t.getDimensionInfo(e),u=l.coordDim;if(u){var h=l.coordDimIndex;Pv(n,u)[h]=e,l.isExtraCoord||(i.set(u,1),"ordinal"!==(s=l.type)&&"time"!==s&&(r[0]=e),Pv(a.encode,u)[h]=l.index),l.defaultTooltip&&o.push(e)}Sc.each((function(t,e){var i=Pv(n,e),r=l.otherDims[e];null!=r&&!1!==r&&(i[r]=l.name)}))}));var s=[],l={};i.each((function(t,e){var i=n[e];l[e]=i[0],s=s.concat(i)})),e.dataDimsOnCoord=s,e.encodeFirstDimNotExtra=l;var u=n.label;u&&u.length&&(r=u.slice());var h=n.tooltip;return h&&h.length?o=h.slice():o.length||(o=r.slice()),n.defaultedLabel=r,n.defaultedTooltip=o,e}(this),this._invertedIndicesMap=r,this.userOutput=this._dimensionsSummary.userOutput}return t.prototype.getDimension=function(t){return"number"!=typeof t&&(isNaN(t)||this._dimensionInfos.hasOwnProperty(t))||(t=this.dimensions[t]),t},t.prototype.getDimensionInfo=function(t){return this._dimensionInfos[this.getDimension(t)]},t.prototype.getDimensionsOnCoord=function(){return this._dimensionsSummary.dataDimsOnCoord.slice()},t.prototype.mapDimension=function(t,e){var n=this._dimensionsSummary;if(null==e)return n.encodeFirstDimNotExtra[t];var i=n.encode[t];return i?i[e]:null},t.prototype.mapDimensionsAll=function(t){return(this._dimensionsSummary.encode[t]||[]).slice()},t.prototype.initData=function(t,e,n){var i=Rp(t)||L(t),r=i?new Hp(t,this.dimensions.length):t;this._rawData=r;var o=r.getSource().sourceFormat;this._storage={},this._indices=null,this._dontMakeIdFromName=null!=this._idDimIdx||o===Ac||!!r.fillStorage,this._nameList=(e||[]).slice(),this._idList=[],this._nameRepeatCount={},n||(this.hasItemOption=!1),this.defaultDimValueGetter=Ov[o],this._dimValueGetter=n=n||this.defaultDimValueGetter,this._dimValueGetterArrayRows=Ov.arrayRows,this._rawExtent={},this._initDataFromProvider(0,r.count()),r.pure&&(this.hasItemOption=!1)},t.prototype.getProvider=function(){return this._rawData},t.prototype.appendData=function(t){var e=this._rawData,n=this.count();e.appendData(t);var i=e.count();e.persistent||(i+=n),this._initDataFromProvider(n,i,!0)},t.prototype.appendValues=function(t,e){for(var n=this._storage,i=this.dimensions,r=i.length,o=this._rawExtent,a=this.count(),s=a+Math.max(t.length,e?e.length:0),l=0;l<r;l++){var u=i[l];o[u]||(o[u]=Uv()),Ev(n,this._dimensionInfos[u],s,!0)}for(var h=Kv(i,(function(t){return o[t]})),c=this._storageArr=Kv(i,(function(t){return n[t]})),p=[],d=a;d<s;d++){for(var f=d-a,g=0;g<r;g++){u=i[g];var y=this._dimValueGetterArrayRows(t[f]||p,u,f,g);c[g][d]=y;var v=h[g];y<v[0]&&(v[0]=y),y>v[1]&&(v[1]=y)}e&&(this._nameList[d]=e[f],this._dontMakeIdFromName||Hv(this,d))}this._rawCount=this._count=s,this._extent={},Rv(this)},t.prototype._initDataFromProvider=function(t,e,n){if(!(t>=e)){for(var i=this._rawData,r=this._storage,o=this.dimensions,a=o.length,s=this._dimensionInfos,l=this._nameList,u=this._idList,h=this._rawExtent,c=i.getSource().sourceFormat===Mc,p=0;p<a;p++){var d=o[p];h[d]||(h[d]=Uv()),Ev(r,s[d],e,n)}var f=this._storageArr=Kv(o,(function(t){return r[t]})),g=Kv(o,(function(t){return h[t]}));if(i.fillStorage)i.fillStorage(t,e,f,g);else for(var y=[],v=t;v<e;v++){y=i.getItem(v,y);for(var m=0;m<a;m++){d=o[m];var _=f[m],x=this._dimValueGetter(y,d,v,m);_[v]=x;var b=g[m];x<b[0]&&(b[0]=x),x>b[1]&&(b[1]=x)}if(c&&!i.pure&&y){var w=y.name;null==l[v]&&null!=w&&(l[v]=mr(w,null));var S=y.id;null==u[v]&&null!=S&&(u[v]=mr(S,null))}this._dontMakeIdFromName||Hv(this,v)}!i.persistent&&i.clean&&i.clean(),this._rawCount=this._count=e,this._extent={},Rv(this)}},t.prototype.count=function(){return this._count},t.prototype.getIndices=function(){var t,e=this._indices;if(e){var n=e.constructor,i=this._count;if(n===Array){t=new n(i);for(var r=0;r<i;r++)t[r]=e[r]}else t=new n(e.buffer,0,i)}else{t=new(n=Nv(this))(this.count());for(r=0;r<t.length;r++)t[r]=r}return t},t.prototype.getByDimIdx=function(t,e){if(!(e>=0&&e<this._count))return NaN;var n=this._storageArr[t];return n?n[this.getRawIndex(e)]:NaN},t.prototype.get=function(t,e){if(!(e>=0&&e<this._count))return NaN;var n=this._storage[t];return n?n[this.getRawIndex(e)]:NaN},t.prototype.getByRawIndex=function(t,e){if(!(e>=0&&e<this._rawCount))return NaN;var n=this._storage[t];return n?n[e]:NaN},t.prototype.getValues=function(t,e){var n=[];V(t)||(e=t,t=this.dimensions);for(var i=0,r=t.length;i<r;i++)n.push(this.get(t[i],e));return n},t.prototype.hasValue=function(t){for(var e=this._dimensionsSummary.dataDimsOnCoord,n=0,i=e.length;n<i;n++)if(isNaN(this.get(e[n],t)))return!1;return!0},t.prototype.getDataExtent=function(t){t=this.getDimension(t);var e=this._storage[t],n=Uv();if(!e)return n;var i,r=this.count();if(!this._indices)return this._rawExtent[t].slice();if(i=this._extent[t])return i.slice();for(var o=(i=n)[0],a=i[1],s=0;s<r;s++){var l=e[this.getRawIndex(s)];l<o&&(o=l),l>a&&(a=l)}return i=[o,a],this._extent[t]=i,i},t.prototype.getApproximateExtent=function(t){return t=this.getDimension(t),this._approximateExtent[t]||this.getDataExtent(t)},t.prototype.setApproximateExtent=function(t,e){e=this.getDimension(e),this._approximateExtent[e]=t.slice()},t.prototype.getCalculationInfo=function(t){return this._calculationInfo[t]},t.prototype.setCalculationInfo=function(t,e){qv(t)?T(this._calculationInfo,t):this._calculationInfo[t]=e},t.prototype.getSum=function(t){var e=0;if(this._storage[t])for(var n=0,i=this.count();n<i;n++){var r=this.get(t,n);isNaN(r)||(e+=r)}return e},t.prototype.getMedian=function(t){var e=[];this.each(t,(function(t){isNaN(t)||e.push(t)}));var n=e.sort((function(t,e){return t-e})),i=this.count();return 0===i?0:i%2==1?n[(i-1)/2]:(n[i/2]+n[i/2-1])/2},t.prototype.rawIndexOf=function(t,e){var n=t&&this._invertedIndicesMap[t];var i=n[e];return null==i||isNaN(i)?-1:i},t.prototype.indexOfName=function(t){for(var e=0,n=this.count();e<n;e++)if(this.getName(e)===t)return e;return-1},t.prototype.indexOfRawIndex=function(t){if(t>=this._rawCount||t<0)return-1;if(!this._indices)return t;var e=this._indices,n=e[t];if(null!=n&&n<this._count&&n===t)return t;for(var i=0,r=this._count-1;i<=r;){var o=(i+r)/2|0;if(e[o]<t)i=o+1;else{if(!(e[o]>t))return o;r=o-1}}return-1},t.prototype.indicesOfNearest=function(t,e,n){var i=this._storage[t],r=[];if(!i)return r;null==n&&(n=1/0);for(var o=1/0,a=-1,s=0,l=0,u=this.count();l<u;l++){var h=e-i[this.getRawIndex(l)],c=Math.abs(h);c<=n&&((c<o||c===o&&h>=0&&a<0)&&(o=c,a=h,s=0),h===a&&(r[s++]=l))}return r.length=s,r},t.prototype.getRawDataItem=function(t){if(this._rawData.persistent)return this._rawData.getItem(this.getRawIndex(t));for(var e=[],n=0;n<this.dimensions.length;n++){var i=this.dimensions[n];e.push(this.get(i,t))}return e},t.prototype.getName=function(t){var e=this.getRawIndex(t),n=this._nameList[e];return null==n&&null!=this._nameDimIdx&&(n=Fv(this,this._nameDimIdx,this._nameOrdinalMeta,e)),null==n&&(n=""),n},t.prototype.getId=function(t){return Vv(this,this.getRawIndex(t))},t.prototype.each=function(t,e,n,i){var r=this;if(this._count){"function"==typeof t&&(i=n,n=e,e=t,t=[]);var o=n||i||this,a=Kv(Gv(t),this.getDimension,this);0;for(var s=a.length,l=Kv(a,(function(t){return r._dimensionInfos[t].index})),u=this._storageArr,h=0,c=this.count();h<c;h++){var p=this.getRawIndex(h);switch(s){case 0:e.call(o,h);break;case 1:e.call(o,u[l[0]][p],h);break;case 2:e.call(o,u[l[0]][p],u[l[1]][p],h);break;default:for(var d=0,f=[];d<s;d++)f[d]=u[l[d]][p];f[d]=h,e.apply(o,f)}}}},t.prototype.filterSelf=function(t,e,n,i){var r=this;if(this._count){"function"==typeof t&&(i=n,n=e,e=t,t=[]);var o=n||i||this,a=Kv(Gv(t),this.getDimension,this);0;for(var s=this.count(),l=new(Nv(this))(s),u=[],h=a.length,c=0,p=Kv(a,(function(t){return r._dimensionInfos[t].index})),d=p[0],f=this._storageArr,g=0;g<s;g++){var y=void 0,v=this.getRawIndex(g);if(0===h)y=e.call(o,g);else if(1===h){var m=f[d][v];y=e.call(o,m,g)}else{for(var _=0;_<h;_++)u[_]=f[p[_]][v];u[_]=g,y=e.apply(o,u)}y&&(l[c++]=v)}return c<s&&(this._indices=l),this._count=c,this._extent={},this.getRawIndex=this._indices?zv:Bv,this}},t.prototype.selectRange=function(t){var e=this,n=this._count;if(n){var i=[];for(var r in t)t.hasOwnProperty(r)&&i.push(r);0;var o=i.length;if(o){var a=this.count(),s=new(Nv(this))(a),l=0,u=i[0],h=Kv(i,(function(t){return e._dimensionInfos[t].index})),c=t[u][0],p=t[u][1],d=this._storageArr,f=!1;if(!this._indices){var g=0;if(1===o){for(var y=d[h[0]],v=0;v<n;v++){((b=y[v])>=c&&b<=p||isNaN(b))&&(s[l++]=g),g++}f=!0}else if(2===o){y=d[h[0]];var m=d[h[1]],_=t[i[1]][0],x=t[i[1]][1];for(v=0;v<n;v++){var b=y[v],w=m[v];(b>=c&&b<=p||isNaN(b))&&(w>=_&&w<=x||isNaN(w))&&(s[l++]=g),g++}f=!0}}if(!f)if(1===o)for(v=0;v<a;v++){var S=this.getRawIndex(v);((b=d[h[0]][S])>=c&&b<=p||isNaN(b))&&(s[l++]=S)}else for(v=0;v<a;v++){for(var M=!0,T=(S=this.getRawIndex(v),0);T<o;T++){var C=i[T];((b=d[h[T]][S])<t[C][0]||b>t[C][1])&&(M=!1)}M&&(s[l++]=this.getRawIndex(v))}return l<a&&(this._indices=s),this._count=l,this._extent={},this.getRawIndex=this._indices?zv:Bv,this}}},t.prototype.mapArray=function(t,e,n,i){"function"==typeof t&&(i=n,n=e,e=t,t=[]),n=n||i||this;var r=[];return this.each(t,(function(){r.push(e&&e.apply(this,arguments))}),n),r},t.prototype.map=function(t,e,n,i){var r=n||i||this,o=Kv(Gv(t),this.getDimension,this);var a=Wv(this,o),s=a._storage;a._indices=this._indices,a.getRawIndex=a._indices?zv:Bv;for(var l=[],u=o.length,h=this.count(),c=[],p=a._rawExtent,d=0;d<h;d++){for(var f=0;f<u;f++)c[f]=this.get(o[f],d);c[u]=d;var g=e&&e.apply(r,c);if(null!=g){"object"!=typeof g&&(l[0]=g,g=l);for(var y=this.getRawIndex(d),v=0;v<g.length;v++){var m=o[v],_=g[v],x=p[m],b=s[m];b&&(b[y]=_),_<x[0]&&(x[0]=_),_>x[1]&&(x[1]=_)}}}return a},t.prototype.downSample=function(t,e,n,i){for(var r=Wv(this,[t]),o=r._storage,a=[],s=jv(1/e),l=o[t],u=this.count(),h=r._rawExtent[t],c=new(Nv(this))(u),p=0,d=0;d<u;d+=s){s>u-d&&(s=u-d,a.length=s);for(var f=0;f<s;f++){var g=this.getRawIndex(d+f);a[f]=l[g]}var y=n(a),v=this.getRawIndex(Math.min(d+i(a,y)||0,u-1));l[v]=y,y<h[0]&&(h[0]=y),y>h[1]&&(h[1]=y),c[p++]=v}return r._count=p,r._indices=c,r.getRawIndex=zv,r},t.prototype.lttbDownSample=function(t,e){var n,i,r,o=Wv(this,[]),a=o._storage[t],s=this.count(),l=new(Nv(this))(s),u=0,h=jv(1/e),c=this.getRawIndex(0);l[u++]=c;for(var p=1;p<s-1;p+=h){for(var d=Math.min(p+h,s-1),f=Math.min(p+2*h,s),g=(f+d)/2,y=0,v=d;v<f;v++){var m=a[S=this.getRawIndex(v)];isNaN(m)||(y+=m)}y/=f-d;var _=p,x=Math.min(p+h,s),b=p-1,w=a[c];n=-1,r=_;for(v=_;v<x;v++){var S;m=a[S=this.getRawIndex(v)];isNaN(m)||(i=Math.abs((b-g)*(m-w)-(b-v)*(y-w)))>n&&(n=i,r=S)}l[u++]=r,c=r}return l[u++]=this.getRawIndex(s-1),o._count=u,o._indices=l,o.getRawIndex=zv,o},t.prototype.getItemModel=function(t){var e=this.hostModel,n=this.getRawDataItem(t);return new sh(n,e,e&&e.ecModel)},t.prototype.diff=function(t){var e=this;return new Lv(t?t.getIndices():[],this.getIndices(),(function(e){return Vv(t,e)}),(function(t){return Vv(e,t)}))},t.prototype.getVisual=function(t){var e=this._visual;return e&&e[t]},t.prototype.setVisual=function(t,e){this._visual=this._visual||{},qv(t)?T(this._visual,t):this._visual[t]=e},t.prototype.getItemVisual=function(t,e){var n=this._itemVisuals[t],i=n&&n[e];return null==i?this.getVisual(e):i},t.prototype.hasItemVisual=function(){return this._itemVisuals.length>0},t.prototype.ensureUniqueItemVisual=function(t,e){var n=this._itemVisuals,i=n[t];i||(i=n[t]={});var r=i[e];return null==r&&(V(r=this.getVisual(e))?r=r.slice():qv(r)&&(r=T({},r)),i[e]=r),r},t.prototype.setItemVisual=function(t,e,n){var i=this._itemVisuals[t]||{};this._itemVisuals[t]=i,qv(e)?T(i,e):i[e]=n},t.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},t.prototype.setLayout=function(t,e){if(qv(t))for(var n in t)t.hasOwnProperty(n)&&this.setLayout(n,t[n]);else this._layout[t]=e},t.prototype.getLayout=function(t){return this._layout[t]},t.prototype.getItemLayout=function(t){return this._itemLayouts[t]},t.prototype.setItemLayout=function(t,e,n){this._itemLayouts[t]=n?T(this._itemLayouts[t]||{},e):e},t.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},t.prototype.setItemGraphicEl=function(t,e){var n=this.hostModel;if(e){var i=ss(e);i.dataIndex=t,i.dataType=this.dataType,i.seriesIndex=n&&n.seriesIndex,"group"===e.type&&e.traverse(Yv,e)}this._graphicEls[t]=e},t.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},t.prototype.eachItemGraphicEl=function(t,e){P(this._graphicEls,(function(n,i){n&&t&&t.call(e,n,i)}))},t.prototype.cloneShallow=function(e){e||(e=new t(Kv(this.dimensions,this.getDimensionInfo,this),this.hostModel));if(e._storage=this._storage,e._storageArr=this._storageArr,Xv(e,this),this._indices){var n=this._indices.constructor;if(n===Array){var i=this._indices.length;e._indices=new n(i);for(var r=0;r<i;r++)e._indices[r]=this._indices[r]}else e._indices=new n(this._indices)}else e._indices=null;return e.getRawIndex=e._indices?zv:Bv,e},t.prototype.wrapMethod=function(t,e){var n=this[t];"function"==typeof n&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var t=n.apply(this,arguments);return e.apply(this,[t].concat(et(arguments)))})},t.internalField=function(){function e(t,e,n,i){return od(t[i],this._dimensionInfos[e])}Ov={arrayRows:e,objectRows:function(t,e,n,i){return od(t[e],this._dimensionInfos[e])},keyedColumns:e,original:function(t,e,n,i){var r=t&&(null==t.value?t:t.value);return!this._rawData.pure&&function(t){return U(t)&&!(t instanceof Array)}(t)&&(this.hasItemOption=!0),od(r instanceof Array?r[i]:r,this._dimensionInfos[e])},typedArray:function(t,e,n,i){return t[i]}},Rv=function(t){var e=t._invertedIndicesMap;P(e,(function(n,i){var r=t._dimensionInfos[i].ordinalMeta;if(r){n=e[i]=new tm(r.categories.length);for(var o=0;o<n.length;o++)n[o]=-1;for(o=0;o<t._count;o++)n[t.get(i,o)]=o}}))},Fv=function(t,e,n,i){var r,o=t._storageArr[e];return o&&(r=o[i],n&&n.categories.length&&(r=n.categories[r])),mr(r,null)},Nv=function(t){return t._rawCount>65535?Qv:em},Ev=function(t,e,n,i){var r=Jv[e.type],o=e.name;if(i){var a=t[o],s=a&&a.length;if(s!==n){for(var l=new r(n),u=0;u<s;u++)l[u]=a[u];t[o]=l}}else t[o]=new r(n)},Bv=function(t){return t},zv=function(t){return t<this._count&&t>=0?this._indices[t]:-1},Vv=function(t,e){var n=t._idList[e];return null==n&&null!=t._idDimIdx&&(n=Fv(t,t._idDimIdx,t._idOrdinalMeta,e)),null==n&&(n="e\0\0"+e),n},Gv=function(t){return V(t)||(t=null!=t?[t]:[]),t},function(t,e){for(var n=0;n<e.length;n++)t._dimensionInfos[e[n]]||console.error("Unkown dimension "+e[n])},Wv=function(e,n){var i=e.dimensions,r=new t(Kv(i,e.getDimensionInfo,e),e.hostModel);Xv(r,e);for(var o,a,s=r._storage={},l=e._storage,u=r._storageArr=[],h=0;h<i.length;h++){var c=i[h];l[c]&&(A(n,c)>=0?(s[c]=(o=l[c],a=void 0,(a=o.constructor)===Array?o.slice():new a(o)),r._rawExtent[c]=Uv(),r._extent[c]=null):s[c]=l[c],u.push(s[c]))}return r},Uv=function(){return[1/0,-1/0]},Yv=function(t){var e=ss(t),n=ss(this);e.seriesIndex=n.seriesIndex,e.dataIndex=n.dataIndex,e.dataType=n.dataType},Xv=function(t,e){P(nm.concat(e.__wrappedMethods||[]),(function(n){e.hasOwnProperty(n)&&(t[n]=e[n])})),t.__wrappedMethods=e.__wrappedMethods,P(im,(function(n){t[n]=w(e[n])})),t._calculationInfo=T({},e._calculationInfo)},Hv=function(t,e){var n=t._nameList,i=t._idList,r=t._nameDimIdx,o=t._idDimIdx,a=n[e],s=i[e];if(null==a&&null!=r&&(n[e]=a=Fv(t,r,t._nameOrdinalMeta,e)),null==s&&null!=o&&(i[e]=s=Fv(t,o,t._idOrdinalMeta,e)),null==s&&null!=a){var l=t._nameRepeatCount,u=l[a]=(l[a]||0)+1;s=a,u>1&&(s+="__ec__"+u),i[e]=s}}}(),t}();function om(t,e,n){Rp(e)||(e=Ep(e)),n=n||{},t=(t||[]).slice();for(var i=(n.dimsDef||[]).slice(),r=ut(),o=ut(),a=[],s=function(t,e,n,i){var r=Math.max(t.dimensionsDetectedCount||1,e.length,n.length,i||0);return P(e,(function(t){var e;U(t)&&(e=t.dimsDef)&&(r=Math.max(r,e.length))})),r}(e,t,i,n.dimCount),l=0;l<s;l++){var u=i[l],h=i[l]=T({},U(u)?u:{name:u}),c=h.name,p=a[l]=new Zv;null!=c&&null==r.get(c)&&(p.name=p.displayName=c,r.set(c,l)),null!=h.type&&(p.type=h.type),null!=h.displayName&&(p.displayName=h.displayName)}var d=n.encodeDef;!d&&n.encodeDefaulter&&(d=n.encodeDefaulter(e,s));var f=ut(d);f.each((function(t,e){var n=cr(t).slice();if(1===n.length&&!H(n[0])&&n[0]<0)f.set(e,!1);else{var i=f.set(e,[]);P(n,(function(t,n){var o=H(t)?r.get(t):t;null!=o&&o<s&&(i[n]=o,y(a[o],e,n))}))}}));var g=0;function y(t,e,n){null!=Sc.get(e)?t.otherDims[e]=n:(t.coordDim=e,t.coordDimIndex=n,o.set(e,!0))}P(t,(function(t){var e,n,i,r;if(H(t))e=t,r={};else{e=(r=t).name;var o=r.ordinalMeta;r.ordinalMeta=null,(r=w(r)).ordinalMeta=o,n=r.dimsDef,i=r.otherDims,r.name=r.coordDim=r.coordDimIndex=r.dimsDef=r.otherDims=null}var s=f.get(e);if(!1!==s){if(!(s=cr(s)).length)for(var l=0;l<(n&&n.length||1);l++){for(;g<a.length&&null!=a[g].coordDim;)g++;g<a.length&&s.push(g++)}P(s,(function(t,o){var s=a[t];if(y(C(s,r),e,o),null==s.name&&n){var l=n[o];!U(l)&&(l={name:l}),s.name=s.displayName=l.name,s.defaultTooltip=l.defaultTooltip}i&&C(s.otherDims,i)}))}}));var v=n.generateCoord,m=n.generateCoordCount,_=null!=m;m=v?m||1:0;for(var x=v||"value",b=0;b<s;b++){null==(p=a[b]=a[b]||new Zv).coordDim&&(p.coordDim=am(x,o,_),p.coordDimIndex=0,(!v||m<=0)&&(p.isExtraCoord=!0),m--),null==p.name&&(p.name=am(p.coordDim,r,!1)),null!=p.type||Vc(e,b)!==Pc&&(!p.isExtraCoord||null==p.otherDims.itemName&&null==p.otherDims.seriesName)||(p.type="ordinal")}return a}function am(t,e,n){if(n||null!=e.get(t)){for(var i=0;null!=e.get(t+i);)i++;t+=i}return e.set(t,!0),t}function sm(t,e){return om((e=e||{}).coordDimensions||[],t,{dimsDef:e.dimensionsDefine||t.dimensionsDefine,encodeDef:e.encodeDefine||t.encodeDefine,dimCount:e.dimensionsCount,encodeDefaulter:e.encodeDefaulter,generateCoord:e.generateCoord,generateCoordCount:e.generateCoordCount})}var lm=function(t){this.coordSysDims=[],this.axisMap=ut(),this.categoryAxisMap=ut(),this.coordSysName=t};var um={cartesian2d:function(t,e,n,i){var r=t.getReferringComponents("xAxis",Tr).models[0],o=t.getReferringComponents("yAxis",Tr).models[0];e.coordSysDims=["x","y"],n.set("x",r),n.set("y",o),hm(r)&&(i.set("x",r),e.firstCategoryDimIndex=0),hm(o)&&(i.set("y",o),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=1))},singleAxis:function(t,e,n,i){var r=t.getReferringComponents("singleAxis",Tr).models[0];e.coordSysDims=["single"],n.set("single",r),hm(r)&&(i.set("single",r),e.firstCategoryDimIndex=0)},polar:function(t,e,n,i){var r=t.getReferringComponents("polar",Tr).models[0],o=r.findAxisModel("radiusAxis"),a=r.findAxisModel("angleAxis");e.coordSysDims=["radius","angle"],n.set("radius",o),n.set("angle",a),hm(o)&&(i.set("radius",o),e.firstCategoryDimIndex=0),hm(a)&&(i.set("angle",a),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=1))},geo:function(t,e,n,i){e.coordSysDims=["lng","lat"]},parallel:function(t,e,n,i){var r=t.ecModel,o=r.getComponent("parallel",t.get("parallelIndex")),a=e.coordSysDims=o.dimensions.slice();P(o.parallelAxisIndex,(function(t,o){var s=r.getComponent("parallelAxis",t),l=a[o];n.set(l,s),hm(s)&&(i.set(l,s),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=o))}))}};function hm(t){return"category"===t.get("type")}function cm(t,e,n){var i,r,o,a,s=(n=n||{}).byIndex,l=n.stackedCoordDimension,u=!(!t||!t.get("stack"));if(P(e,(function(t,n){H(t)&&(e[n]=t={name:t}),u&&!t.isExtraCoord&&(s||i||!t.ordinalMeta||(i=t),r||"ordinal"===t.type||"time"===t.type||l&&l!==t.coordDim||(r=t))})),!r||s||i||(s=!0),r){o="__\0ecstackresult",a="__\0ecstackedover",i&&(i.createInvertedIndices=!0);var h=r.coordDim,c=r.type,p=0;P(e,(function(t){t.coordDim===h&&p++})),e.push({name:o,coordDim:h,coordDimIndex:p,type:c,isExtraCoord:!0,isCalculationCoord:!0}),p++,e.push({name:a,coordDim:a,coordDimIndex:p,type:c,isExtraCoord:!0,isCalculationCoord:!0})}return{stackedDimension:r&&r.name,stackedByDimension:i&&i.name,isStackedByIndex:s,stackedOverDimension:a,stackResultDimension:o}}function pm(t,e){return!!e&&e===t.getCalculationInfo("stackedDimension")}function dm(t,e){return pm(t,e)?t.getCalculationInfo("stackResultDimension"):e}function fm(t,e,n){n=n||{},Rp(t)||(t=Ep(t));var i,r=e.get("coordinateSystem"),o=ip.get(r),a=function(t){var e=t.get("coordinateSystem"),n=new lm(e),i=um[e];if(i)return i(t,n,n.axisMap,n.categoryAxisMap),n}(e);a&&a.coordSysDims&&(i=O(a.coordSysDims,(function(t){var e={name:t},n=a.axisMap.get(t);if(n){var i=n.get("type");e.type=function(t){return"category"===t?"ordinal":"time"===t?"time":"float"}(i)}return e}))),i||(i=o&&(o.getDimensionsInfo?o.getDimensionsInfo():o.dimensions.slice())||["x","y"]);var s,l,u=n.useEncodeDefaulter,h=sm(t,{coordDimensions:i,generateCoord:n.generateCoord,encodeDefaulter:F(u)?u:u?z(Ec,i,e):null});a&&P(h,(function(t,e){var i=t.coordDim,r=a.categoryAxisMap.get(i);r&&(null==s&&(s=e),t.ordinalMeta=r.getOrdinalMeta(),n.createInvertedIndices&&(t.createInvertedIndices=!0)),null!=t.otherDims.itemName&&(l=!0)})),l||null==s||(h[s].otherDims.itemName=0);var c=cm(e,h),p=new rm(h,e);p.setCalculationInfo(c);var d=null!=s&&function(t){if(t.sourceFormat===Mc){var e=function(t){var e=0;for(;e<t.length&&null==t[e];)e++;return t[e]}(t.data||[]);return null!=e&&!V(fr(e))}}(t)?function(t,e,n,i){return i===s?n:this.defaultDimValueGetter(t,e,n,i)}:null;return p.hasItemOption=!1,p.initData(t,null,d),p}var gm=function(){function t(t){this._setting=t||{},this._extent=[1/0,-1/0]}return t.prototype.getSetting=function(t){return this._setting[t]},t.prototype.unionExtent=function(t){var e=this._extent;t[0]<e[0]&&(e[0]=t[0]),t[1]>e[1]&&(e[1]=t[1])},t.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},t.prototype.getExtent=function(){return this._extent.slice()},t.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(e)||(n[1]=e)},t.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},t.prototype.isBlank=function(){return this._isBlank},t.prototype.setBlank=function(t){this._isBlank=t},t}();Vr(gm);var ym=function(){function t(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication}return t.createByAxisModel=function(e){var n=e.option,i=n.data,r=i&&O(i,vm);return new t({categories:r,needCollect:!r,deduplication:!1!==n.dedplication})},t.prototype.getOrdinal=function(t){return this._getOrCreateMap().get(t)},t.prototype.parseAndCollect=function(t){var e,n=this._needCollect;if("string"!=typeof t&&!n)return t;if(n&&!this._deduplication)return e=this.categories.length,this.categories[e]=t,e;var i=this._getOrCreateMap();return null==(e=i.get(t))&&(n?(e=this.categories.length,this.categories[e]=t,i.set(t,e)):e=NaN),e},t.prototype._getOrCreateMap=function(){return this._map||(this._map=ut(this.categories))},t}();function vm(t){return U(t)&&null!=t.value?t.value:t+""}var mm=Wi;function _m(t,e,n,i){var r={},o=t[1]-t[0],a=r.interval=er(o/e,!0);null!=n&&a<n&&(a=r.interval=n),null!=i&&a>i&&(a=r.interval=i);var s=r.intervalPrecision=xm(a);return function(t,e){!isFinite(t[0])&&(t[0]=e[0]),!isFinite(t[1])&&(t[1]=e[1]),bm(t,0,e),bm(t,1,e),t[0]>t[1]&&(t[0]=t[1])}(r.niceTickExtent=[mm(Math.ceil(t[0]/a)*a,s),mm(Math.floor(t[1]/a)*a,s)],t),r}function xm(t){return Xi(t)+2}function bm(t,e,n){t[e]=Math.max(Math.min(t[e],n[1]),n[0])}function wm(t,e){return t>=e[0]&&t<=e[1]}function Sm(t,e){return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])}function Mm(t,e){return t*(e[1]-e[0])+e[0]}var Tm=function(t){function e(e){var n=t.call(this,e)||this;n.type="ordinal";var i=n.getSetting("ordinalMeta");return i||(i=new ym({})),V(i)&&(i=new ym({categories:O(i,(function(t){return U(t)?t.value:t}))})),n._ordinalMeta=i,n._extent=n.getSetting("extent")||[0,i.categories.length-1],n}return n(e,t),e.prototype.parse=function(t){return"string"==typeof t?this._ordinalMeta.getOrdinal(t):Math.round(t)},e.prototype.contain=function(t){return wm(t=this.parse(t),this._extent)&&null!=this._ordinalMeta.categories[t]},e.prototype.normalize=function(t){return Sm(t=this._getTickNumber(this.parse(t)),this._extent)},e.prototype.scale=function(t){return t=Math.round(Mm(t,this._extent)),this.getRawOrdinalNumber(t)},e.prototype.getTicks=function(){for(var t=[],e=this._extent,n=e[0];n<=e[1];)t.push({value:n}),n++;return t},e.prototype.getMinorTicks=function(t){},e.prototype.setSortInfo=function(t){if(null!=t){for(var e=t.ordinalNumbers,n=this._ordinalNumbersByTick=[],i=this._ticksByOrdinalNumber=[],r=0,o=this._ordinalMeta.categories.length,a=Math.min(o,e.length);r<a;++r){var s=e[r];n[r]=s,i[s]=r}for(var l=0;r<o;++r){for(;null!=i[l];)l++;n.push(l),i[l]=r}}else this._ordinalNumbersByTick=this._ticksByOrdinalNumber=null},e.prototype._getTickNumber=function(t){var e=this._ticksByOrdinalNumber;return e&&t>=0&&t<e.length?e[t]:t},e.prototype.getRawOrdinalNumber=function(t){var e=this._ordinalNumbersByTick;return e&&t>=0&&t<e.length?e[t]:t},e.prototype.getLabel=function(t){if(!this.isBlank()){var e=this.getRawOrdinalNumber(t.value),n=this._ordinalMeta.categories[e];return null==n?"":n+""}},e.prototype.count=function(){return this._extent[1]-this._extent[0]+1},e.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},e.prototype.isInExtentRange=function(t){return t=this._getTickNumber(t),this._extent[0]<=t&&this._extent[1]>=t},e.prototype.getOrdinalMeta=function(){return this._ordinalMeta},e.prototype.niceTicks=function(){},e.prototype.niceExtent=function(){},e.type="ordinal",e}(gm);gm.registerClass(Tm);var Cm=Wi,Im=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="interval",e._interval=0,e._intervalPrecision=2,e}return n(e,t),e.prototype.parse=function(t){return t},e.prototype.contain=function(t){return wm(t,this._extent)},e.prototype.normalize=function(t){return Sm(t,this._extent)},e.prototype.scale=function(t){return Mm(t,this._extent)},e.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=parseFloat(t)),isNaN(e)||(n[1]=parseFloat(e))},e.prototype.unionExtent=function(t){var e=this._extent;t[0]<e[0]&&(e[0]=t[0]),t[1]>e[1]&&(e[1]=t[1]),this.setExtent(e[0],e[1])},e.prototype.getInterval=function(){return this._interval},e.prototype.setInterval=function(t){this._interval=t,this._niceExtent=this._extent.slice(),this._intervalPrecision=xm(t)},e.prototype.getTicks=function(t){var e=this._interval,n=this._extent,i=this._niceExtent,r=this._intervalPrecision,o=[];if(!e)return o;n[0]<i[0]&&(t?o.push({value:Cm(i[0]-e,r)}):o.push({value:n[0]}));for(var a=i[0];a<=i[1]&&(o.push({value:a}),(a=Cm(a+e,r))!==o[o.length-1].value);)if(o.length>1e4)return[];var s=o.length?o[o.length-1].value:i[1];return n[1]>s&&(t?o.push({value:Cm(s+e,r)}):o.push({value:n[1]})),o},e.prototype.getMinorTicks=function(t){for(var e=this.getTicks(!0),n=[],i=this.getExtent(),r=1;r<e.length;r++){for(var o=e[r],a=e[r-1],s=0,l=[],u=(o.value-a.value)/t;s<t-1;){var h=Cm(a.value+(s+1)*u);h>i[0]&&h<i[1]&&l.push(h),s++}n.push(l)}return n},e.prototype.getLabel=function(t,e){if(null==t)return"";var n=e&&e.precision;return null==n?n=Xi(t.value)||0:"auto"===n&&(n=this._intervalPrecision),jh(Cm(t.value,n,!0))},e.prototype.niceTicks=function(t,e,n){t=t||5;var i=this._extent,r=i[1]-i[0];if(isFinite(r)){r<0&&(r=-r,i.reverse());var o=_m(i,t,e,n);this._intervalPrecision=o.intervalPrecision,this._interval=o.interval,this._niceExtent=o.niceTickExtent}},e.prototype.niceExtent=function(t){var e=this._extent;if(e[0]===e[1])if(0!==e[0]){var n=e[0];t.fixMax||(e[1]+=n/2),e[0]-=n/2}else e[1]=1;var i=e[1]-e[0];isFinite(i)||(e[0]=0,e[1]=1),this.niceTicks(t.splitNumber,t.minInterval,t.maxInterval);var r=this._interval;t.fixMin||(e[0]=Cm(Math.floor(e[0]/r)*r)),t.fixMax||(e[1]=Cm(Math.ceil(e[1]/r)*r))},e.type="interval",e}(gm);gm.registerClass(Im);var Am="undefined"!=typeof Float32Array?Float32Array:Array;function Dm(t){return t.get("stack")||"__ec_stack_"+t.seriesIndex}function km(t){return t.dim+t.index}function Lm(t,e){var n=[];return e.eachSeriesByType(t,(function(t){Em(t)&&!Bm(t)&&n.push(t)})),n}function Pm(t){var e=function(t){var e={};P(t,(function(t){var n=t.coordinateSystem.getBaseAxis();if("time"===n.type||"value"===n.type)for(var i=t.getData(),r=n.dim+"_"+n.index,o=i.mapDimension(n.dim),a=0,s=i.count();a<s;++a){var l=i.get(o,a);e[r]?e[r].push(l):e[r]=[l]}}));var n={};for(var i in e)if(e.hasOwnProperty(i)){var r=e[i];if(r){r.sort((function(t,e){return t-e}));for(var o=null,a=1;a<r.length;++a){var s=r[a]-r[a-1];s>0&&(o=null===o?s:Math.min(o,s))}n[i]=o}}return n}(t),n=[];return P(t,(function(t){var i,r=t.coordinateSystem.getBaseAxis(),o=r.getExtent();if("category"===r.type)i=r.getBandWidth();else if("value"===r.type||"time"===r.type){var a=r.dim+"_"+r.index,s=e[a],l=Math.abs(o[1]-o[0]),u=r.scale.getExtent(),h=Math.abs(u[1]-u[0]);i=s?l/h*s:l}else{var c=t.getData();i=Math.abs(o[1]-o[0])/c.count()}var p=Gi(t.get("barWidth"),i),d=Gi(t.get("barMaxWidth"),i),f=Gi(t.get("barMinWidth")||1,i),g=t.get("barGap"),y=t.get("barCategoryGap");n.push({bandWidth:i,barWidth:p,barMaxWidth:d,barMinWidth:f,barGap:g,barCategoryGap:y,axisKey:km(r),stackId:Dm(t)})})),function(t){var e={};P(t,(function(t,n){var i=t.axisKey,r=t.bandWidth,o=e[i]||{bandWidth:r,remainedWidth:r,autoWidthCount:0,categoryGap:null,gap:"20%",stacks:{}},a=o.stacks;e[i]=o;var s=t.stackId;a[s]||o.autoWidthCount++,a[s]=a[s]||{width:0,maxWidth:0};var l=t.barWidth;l&&!a[s].width&&(a[s].width=l,l=Math.min(o.remainedWidth,l),o.remainedWidth-=l);var u=t.barMaxWidth;u&&(a[s].maxWidth=u);var h=t.barMinWidth;h&&(a[s].minWidth=h);var c=t.barGap;null!=c&&(o.gap=c);var p=t.barCategoryGap;null!=p&&(o.categoryGap=p)}));var n={};return P(e,(function(t,e){n[e]={};var i=t.stacks,r=t.bandWidth,o=t.categoryGap;if(null==o){var a=E(i).length;o=Math.max(35-4*a,15)+"%"}var s=Gi(o,r),l=Gi(t.gap,1),u=t.remainedWidth,h=t.autoWidthCount,c=(u-s)/(h+(h-1)*l);c=Math.max(c,0),P(i,(function(t){var e=t.maxWidth,n=t.minWidth;if(t.width){i=t.width;e&&(i=Math.min(i,e)),n&&(i=Math.max(i,n)),t.width=i,u-=i+l*i,h--}else{var i=c;e&&e<i&&(i=Math.min(e,u)),n&&n>i&&(i=n),i!==c&&(t.width=i,u-=i+l*i,h--)}})),c=(u-s)/(h+(h-1)*l),c=Math.max(c,0);var p,d=0;P(i,(function(t,e){t.width||(t.width=c),p=t,d+=t.width*(1+l)})),p&&(d-=p.width*l);var f=-d/2;P(i,(function(t,i){n[e][i]=n[e][i]||{bandWidth:r,offset:f,width:t.width},f+=t.width*(1+l)}))})),n}(n)}function Om(t,e,n){if(t&&e){var i=t[km(e)];return null!=i&&null!=n?i[Dm(n)]:i}}function Rm(t,e){var n=Lm(t,e),i=Pm(n),r={};P(n,(function(t){var e=t.getData(),n=t.coordinateSystem,o=n.getBaseAxis(),a=Dm(t),s=i[km(o)][a],l=s.offset,u=s.width,h=n.getOtherAxis(o),c=t.get("barMinHeight")||0;r[a]=r[a]||[],e.setLayout({bandWidth:s.bandWidth,offset:l,size:u});for(var p=e.mapDimension(h.dim),d=e.mapDimension(o.dim),f=pm(e,p),g=h.isHorizontal(),y=zm(o,h),v=0,m=e.count();v<m;v++){var _=e.get(p,v),x=e.get(d,v),b=_>=0?"p":"n",w=y;f&&(r[a][x]||(r[a][x]={p:y,n:y}),w=r[a][x][b]);var S,M=void 0,T=void 0,C=void 0,I=void 0;if(g)M=w,T=(S=n.dataToPoint([_,x]))[1]+l,C=S[0]-y,I=u,Math.abs(C)<c&&(C=(C<0?-1:1)*c),isNaN(C)||f&&(r[a][x][b]+=C);else M=(S=n.dataToPoint([x,_]))[0]+l,T=w,C=u,I=S[1]-y,Math.abs(I)<c&&(I=(I<=0?-1:1)*c),isNaN(I)||f&&(r[a][x][b]+=I);e.setItemLayout(v,{x:M,y:T,width:C,height:I})}}))}var Nm={seriesType:"bar",plan:Wd(),reset:function(t){if(Em(t)&&Bm(t)){var e=t.getData(),n=t.coordinateSystem,i=n.master.getRect(),r=n.getBaseAxis(),o=n.getOtherAxis(r),a=e.mapDimension(o.dim),s=e.mapDimension(r.dim),l=o.isHorizontal(),u=l?0:1,h=Om(Pm([t]),r,t).width;return h>.5||(h=.5),{progress:function(t,e){for(var c,p=t.count,d=new Am(2*p),f=new Am(2*p),g=new Am(p),y=[],v=[],m=0,_=0;null!=(c=t.next());)v[u]=e.get(a,c),v[1-u]=e.get(s,c),y=n.dataToPoint(v,null,y),f[m]=l?i.x+i.width:y[0],d[m++]=y[0],f[m]=l?y[1]:i.y+i.height,d[m++]=y[1],g[_++]=c;e.setLayout({largePoints:d,largeDataIndices:g,largeBackgroundPoints:f,barWidth:h,valueAxisStart:zm(r,o),backgroundStart:l?i.x:i.y,valueAxisHorizontal:l})}}}}};function Em(t){return t.coordinateSystem&&"cartesian2d"===t.coordinateSystem.type}function Bm(t){return t.pipelineContext&&t.pipelineContext.large}function zm(t,e,n){return e.toGlobalCoord(e.dataToCoord("log"===e.type?1:0))}var Vm=function(t){function e(e){var n=t.call(this,e)||this;return n.type="time",n}return n(e,t),e.prototype.getLabel=function(t){var e=this.getSetting("useUTC");return Lh(t.value,Th[function(t){switch(t){case"year":case"month":return"day";case"millisecond":return"millisecond";default:return"second"}}(Dh(this._minLevelUnit))]||Th.second,e,this.getSetting("locale"))},e.prototype.getFormattedLabel=function(t,e,n){var i=this.getSetting("useUTC");return function(t,e,n,i,r){var o=null;if("string"==typeof n)o=n;else if("function"==typeof n)o=n(t.value,e,{level:t.level});else{var a=T({},Sh);if(t.level>0)for(var s=0;s<Ch.length;++s)a[Ch[s]]="{primary|"+a[Ch[s]]+"}";var l=n?!1===n.inherit?n:C(n,a):a,u=Ph(t.value,r);if(l[u])o=l[u];else if(l.inherit){for(s=Ih.indexOf(u)-1;s>=0;--s)if(l[u]){o=l[u];break}o=o||a.none}if(V(o)){var h=null==t.level?0:t.level>=0?t.level:o.length+t.level;o=o[h=Math.min(h,o.length-1)]}}return Lh(new Date(t.value),o,r,i)}(t,e,n,this.getSetting("locale"),i)},e.prototype.getTicks=function(t){var e=this._interval,n=this._extent,i=[];if(!e)return i;i.push({value:n[0],level:0});var r=this.getSetting("useUTC"),o=function(t,e,n,i){var r=1e4,o=Ih,a=0;function s(t,e,n,r,o,a,s){for(var l=new Date(e),u=e,h=l[r]();u<n&&u<=i[1];)s.push({value:u}),h+=t,l[o](h),u=l.getTime();s.push({value:u,notAdd:!0})}function l(t,r,o){var a=[],l=!r.length;if(!function(t,e,n,i){var r=Ji(e),o=Ji(n),a=function(t){return Oh(r,t,i)===Oh(o,t,i)},s=function(){return a("year")},l=function(){return s()&&a("month")},u=function(){return l()&&a("day")},h=function(){return u()&&a("hour")},c=function(){return h()&&a("minute")},p=function(){return c()&&a("second")},d=function(){return p()&&a("millisecond")};switch(t){case"year":return s();case"month":return l();case"day":return u();case"hour":return h();case"minute":return c();case"second":return p();case"millisecond":return d()}}(Dh(t),i[0],i[1],n)){l&&(r=[{value:Xm(new Date(i[0]),t,n)},{value:i[1]}]);for(var u=0;u<r.length-1;u++){var h=r[u].value,c=r[u+1].value;if(h!==c){var p=void 0,d=void 0,f=void 0,g=!1;switch(t){case"year":p=Math.max(1,Math.round(e/bh/365)),d=Rh(n),f=Hh(n);break;case"half-year":case"quarter":case"month":p=Gm(e),d=Nh(n),f=Gh(n);break;case"week":case"half-week":case"day":p=Hm(e),d=Eh(n),f=Wh(n),g=!0;break;case"half-day":case"quarter-day":case"hour":p=Wm(e),d=Bh(n),f=Uh(n);break;case"minute":p=Um(e,!0),d=zh(n),f=Yh(n);break;case"second":p=Um(e,!1),d=Vh(n),f=Xh(n);break;case"millisecond":p=Ym(e),d=Fh(n),f=Zh(n)}s(p,h,c,d,f,g,a),"year"===t&&o.length>1&&0===u&&o.unshift({value:o[0].value-p})}}for(u=0;u<a.length;u++)o.push(a[u]);return a}}for(var u=[],h=[],c=0,p=0,d=0;d<o.length&&a++<r;++d){var f=Dh(o[d]);if(kh(o[d]))if(l(o[d],u[u.length-1]||[],h),f!==(o[d+1]?Dh(o[d+1]):null)){if(h.length){p=c,h.sort((function(t,e){return t.value-e.value}));for(var g=[],y=0;y<h.length;++y){var v=h[y].value;0!==y&&h[y-1].value===v||(g.push(h[y]),v>=i[0]&&v<=i[1]&&c++)}var m=(i[1]-i[0])/e;if(c>1.5*m&&p>m/1.5)break;if(u.push(g),c>m||t===o[d])break}h=[]}}0;var _=N(O(u,(function(t){return N(t,(function(t){return t.value>=i[0]&&t.value<=i[1]&&!t.notAdd}))})),(function(t){return t.length>0})),x=[],b=_.length-1;for(d=0;d<_.length;++d)for(var w=_[d],S=0;S<w.length;++S)x.push({value:w[S].value,level:b-d});x.sort((function(t,e){return t.value-e.value}));var M=[];for(d=0;d<x.length;++d)0!==d&&x[d].value===x[d-1].value||M.push(x[d]);return M}(this._minLevelUnit,this._approxInterval,r,n);return(i=i.concat(o)).push({value:n[1],level:0}),i},e.prototype.niceExtent=function(t){var e=this._extent;if(e[0]===e[1]&&(e[0]-=bh,e[1]+=bh),e[1]===-1/0&&e[0]===1/0){var n=new Date;e[1]=+new Date(n.getFullYear(),n.getMonth(),n.getDate()),e[0]=e[1]-bh}this.niceTicks(t.splitNumber,t.minInterval,t.maxInterval)},e.prototype.niceTicks=function(t,e,n){t=t||10;var i=this._extent,r=i[1]-i[0];this._approxInterval=r/t,null!=e&&this._approxInterval<e&&(this._approxInterval=e),null!=n&&this._approxInterval>n&&(this._approxInterval=n);var o=Fm.length,a=Math.min(function(t,e,n,i){for(;n<i;){var r=n+i>>>1;t[r][1]<e?n=r+1:i=r}return n}(Fm,this._approxInterval,0,o),o-1);this._interval=Fm[a][1],this._minLevelUnit=Fm[Math.max(a-1,0)][0]},e.prototype.parse=function(t){return"number"==typeof t?t:+Ji(t)},e.prototype.contain=function(t){return wm(this.parse(t),this._extent)},e.prototype.normalize=function(t){return Sm(this.parse(t),this._extent)},e.prototype.scale=function(t){return Mm(t,this._extent)},e.type="time",e}(Im),Fm=[["second",mh],["minute",_h],["hour",xh],["quarter-day",216e5],["half-day",432e5],["day",10368e4],["half-week",3024e5],["week",6048e5],["month",26784e5],["quarter",8208e6],["half-year",wh/2],["year",wh]];function Hm(t,e){return(t/=bh)>16?16:t>7.5?7:t>3.5?4:t>1.5?2:1}function Gm(t){return(t/=2592e6)>6?6:t>3?3:t>2?2:1}function Wm(t){return(t/=xh)>12?12:t>6?6:t>3.5?4:t>2?2:1}function Um(t,e){return(t/=e?_h:mh)>30?30:t>20?20:t>15?15:t>10?10:t>5?5:t>2?2:1}function Ym(t){return er(t,!0)}function Xm(t,e,n){var i=new Date(t);switch(Dh(e)){case"year":case"month":i[Gh(n)](0);case"day":i[Wh(n)](1);case"hour":i[Uh(n)](0);case"minute":i[Yh(n)](0);case"second":i[Xh(n)](0),i[Zh(n)](0)}return i.getTime()}gm.registerClass(Vm);var Zm=gm.prototype,jm=Im.prototype,qm=Xi,Km=Wi,$m=Math.floor,Jm=Math.ceil,Qm=Math.pow,t_=Math.log,e_=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="log",e.base=10,e._originalScale=new Im,e._interval=0,e}return n(e,t),e.prototype.getTicks=function(t){var e=this._originalScale,n=this._extent,i=e.getExtent();return O(jm.getTicks.call(this,t),(function(t){var e=t.value,r=Wi(Qm(this.base,e));return r=e===n[0]&&this._fixMin?i_(r,i[0]):r,{value:r=e===n[1]&&this._fixMax?i_(r,i[1]):r}}),this)},e.prototype.setExtent=function(t,e){var n=this.base;t=t_(t)/t_(n),e=t_(e)/t_(n),jm.setExtent.call(this,t,e)},e.prototype.getExtent=function(){var t=this.base,e=Zm.getExtent.call(this);e[0]=Qm(t,e[0]),e[1]=Qm(t,e[1]);var n=this._originalScale.getExtent();return this._fixMin&&(e[0]=i_(e[0],n[0])),this._fixMax&&(e[1]=i_(e[1],n[1])),e},e.prototype.unionExtent=function(t){this._originalScale.unionExtent(t);var e=this.base;t[0]=t_(t[0])/t_(e),t[1]=t_(t[1])/t_(e),Zm.unionExtent.call(this,t)},e.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},e.prototype.niceTicks=function(t){t=t||10;var e=this._extent,n=e[1]-e[0];if(!(n===1/0||n<=0)){var i=Qi(n);for(t/n*i<=.5&&(i*=10);!isNaN(i)&&Math.abs(i)<1&&Math.abs(i)>0;)i*=10;var r=[Wi(Jm(e[0]/i)*i),Wi($m(e[1]/i)*i)];this._interval=i,this._niceExtent=r}},e.prototype.niceExtent=function(t){jm.niceExtent.call(this,t),this._fixMin=t.fixMin,this._fixMax=t.fixMax},e.prototype.parse=function(t){return t},e.prototype.contain=function(t){return wm(t=t_(t)/t_(this.base),this._extent)},e.prototype.normalize=function(t){return Sm(t=t_(t)/t_(this.base),this._extent)},e.prototype.scale=function(t){return t=Mm(t,this._extent),Qm(this.base,t)},e.type="log",e}(gm),n_=e_.prototype;function i_(t,e){return Km(t,qm(e))}n_.getMinorTicks=jm.getMinorTicks,n_.getLabel=jm.getLabel,gm.registerClass(e_);var r_=function(){function t(t,e,n){this._prepareParams(t,e,n)}return t.prototype._prepareParams=function(t,e,n){n[1]<n[0]&&(n=[NaN,NaN]),this._dataMin=n[0],this._dataMax=n[1];var i=this._isOrdinal="ordinal"===t.type;this._needCrossZero=e.getNeedCrossZero&&e.getNeedCrossZero();var r=this._modelMinRaw=e.get("min",!0);F(r)?this._modelMinNum=l_(t,r({min:n[0],max:n[1]})):"dataMin"!==r&&(this._modelMinNum=l_(t,r));var o=this._modelMaxRaw=e.get("max",!0);if(F(o)?this._modelMaxNum=l_(t,o({min:n[0],max:n[1]})):"dataMax"!==o&&(this._modelMaxNum=l_(t,o)),i)this._axisDataLen=e.getCategories().length;else{var a=e.get("boundaryGap"),s=V(a)?a:[a||0,a||0];"boolean"==typeof s[0]||"boolean"==typeof s[1]?this._boundaryGapInner=[0,0]:this._boundaryGapInner=[Vn(s[0],1),Vn(s[1],1)]}},t.prototype.calculate=function(){var t=this._isOrdinal,e=this._dataMin,n=this._dataMax,i=this._axisDataLen,r=this._boundaryGapInner,o=t?null:n-e||Math.abs(e),a="dataMin"===this._modelMinRaw?e:this._modelMinNum,s="dataMax"===this._modelMaxRaw?n:this._modelMaxNum,l=null!=a,u=null!=s;null==a&&(a=t?i?0:NaN:e-r[0]*o),null==s&&(s=t?i?i-1:NaN:n+r[1]*o),(null==a||!isFinite(a))&&(a=NaN),(null==s||!isFinite(s))&&(s=NaN),a>s&&(a=NaN,s=NaN);var h=$(a)||$(s)||t&&!i;this._needCrossZero&&(a>0&&s>0&&!l&&(a=0),a<0&&s<0&&!u&&(s=0));var c=this._determinedMin,p=this._determinedMax;return null!=c&&(a=c,l=!0),null!=p&&(s=p,u=!0),{min:a,max:s,minFixed:l,maxFixed:u,isBlank:h}},t.prototype.modifyDataMinMax=function(t,e){this[a_[t]]=e},t.prototype.setDeterminedMinMax=function(t,e){var n=o_[t];this[n]=e},t.prototype.freeze=function(){this.frozen=!0},t}(),o_={min:"_determinedMin",max:"_determinedMax"},a_={min:"_dataMin",max:"_dataMax"};function s_(t,e,n){var i=t.rawExtentInfo;return i||(i=new r_(t,e,n),t.rawExtentInfo=i,i)}function l_(t,e){return null==e?null:$(e)?NaN:t.parse(e)}function u_(t,e){var n=t.type,i=s_(t,e,t.getExtent()).calculate();t.setBlank(i.isBlank);var r=i.min,o=i.max,a=e.ecModel;if(a&&"time"===n){var s=Lm("bar",a),l=!1;if(P(s,(function(t){l=l||t.getBaseAxis()===e.axis})),l){var u=Pm(s),h=function(t,e,n,i){var r=n.axis.getExtent(),o=r[1]-r[0],a=Om(i,n.axis);if(void 0===a)return{min:t,max:e};var s=1/0;P(a,(function(t){s=Math.min(t.offset,s)}));var l=-1/0;P(a,(function(t){l=Math.max(t.offset+t.width,l)})),s=Math.abs(s),l=Math.abs(l);var u=s+l,h=e-t,c=h/(1-(s+l)/o)-h;return{min:t-=c*(s/u),max:e+=c*(l/u)}}(r,o,e,u);r=h.min,o=h.max}}return{extent:[r,o],fixMin:i.minFixed,fixMax:i.maxFixed}}function h_(t,e){var n=u_(t,e),i=n.extent,r=e.get("splitNumber");t instanceof e_&&(t.base=e.get("logBase"));var o=t.type;t.setExtent(i[0],i[1]),t.niceExtent({splitNumber:r,fixMin:n.fixMin,fixMax:n.fixMax,minInterval:"interval"===o||"time"===o?e.get("minInterval"):null,maxInterval:"interval"===o||"time"===o?e.get("maxInterval"):null});var a=e.get("interval");null!=a&&t.setInterval&&t.setInterval(a)}function c_(t,e){if(e=e||t.get("type"))switch(e){case"category":return new Tm({ordinalMeta:t.getOrdinalMeta?t.getOrdinalMeta():t.getCategories(),extent:[1/0,-1/0]});case"time":return new Vm({locale:t.ecModel.getLocaleModel(),useUTC:t.ecModel.get("useUTC")});default:return new(gm.getClass(e)||Im)}}function p_(t){var e,n,i=t.getLabelModel().get("formatter"),r="category"===t.type?t.scale.getExtent()[0]:null;return"time"===t.scale.type?(n=i,function(e,i){return t.scale.getFormattedLabel(e,i,n)}):"string"==typeof i?function(e){return function(n){var i=t.scale.getLabel(n);return e.replace("{value}",null!=i?i:"")}}(i):"function"==typeof i?(e=i,function(n,i){return null!=r&&(i=n.value-r),e(d_(t,n),i,null!=n.level?{level:n.level}:null)}):function(e){return t.scale.getLabel(e)}}function d_(t,e){return"category"===t.type?t.scale.getLabel(e):e.value}function f_(t,e){var n=e*Math.PI/180,i=t.width,r=t.height,o=i*Math.abs(Math.cos(n))+Math.abs(r*Math.sin(n)),a=i*Math.abs(Math.sin(n))+Math.abs(r*Math.cos(n));return new Dn(t.x,t.y,o,a)}function g_(t){var e=t.get("interval");return null==e?"auto":e}function y_(t){return"category"===t.type&&0===g_(t.getLabelModel())}function v_(t,e){var n={};return P(t.mapDimensionsAll(e),(function(e){n[dm(t,e)]=!0})),E(n)}var m_=function(){function t(){}return t.prototype.getNeedCrossZero=function(){return!this.option.scale},t.prototype.getCoordSysModel=function(){},t}();var __={isDimensionStacked:pm,enableDataStack:cm,getStackedDimension:dm};var x_=Object.freeze({__proto__:null,createList:function(t){return fm(t.getSource(),t)},getLayoutRect:pc,dataStack:__,createScale:function(t,e){var n=e;e instanceof sh||(n=new sh(e));var i=c_(n);return i.setExtent(t[0],t[1]),h_(i,n),i},mixinAxisModelCommonMethods:function(t){k(t,m_)},getECData:ss,createTextStyle:function(t,e){return Wu(t,null,null,"normal"!==(e=e||{}).state)},createDimensions:sm,createSymbol:Eg,enableHoverEmphasis:Ws});function b_(t,e){return Math.abs(t-e)<1e-8}function w_(t,e,n){var i=0,r=t[0];if(!r)return!1;for(var o=1;o<t.length;o++){var a=t[o];i+=Ca(r[0],r[1],a[0],a[1],e,n),r=a}var s=t[0];return b_(r[0],s[0])&&b_(r[1],s[1])||(i+=Ca(r[0],r[1],s[0],s[1],e,n)),0!==i}var S_=function(){function t(t,e,n){if(this.name=t,this.geometries=e,n)n=[n[0],n[1]];else{var i=this.getBoundingRect();n=[i.x+i.width/2,i.y+i.height/2]}this.center=n}return t.prototype.getBoundingRect=function(){var t=this._rect;if(t)return t;for(var e=Number.MAX_VALUE,n=[e,e],i=[-e,-e],r=[],o=[],a=this.geometries,s=0;s<a.length;s++){if("polygon"===a[s].type)Xo(a[s].exterior,r,o),Pt(n,n,r),Ot(i,i,o)}return 0===s&&(n[0]=n[1]=i[0]=i[1]=0),this._rect=new Dn(n[0],n[1],i[0]-n[0],i[1]-n[1])},t.prototype.contain=function(t){var e=this.getBoundingRect(),n=this.geometries;if(!e.contain(t[0],t[1]))return!1;t:for(var i=0,r=n.length;i<r;i++)if("polygon"===n[i].type){var o=n[i].exterior,a=n[i].interiors;if(w_(o,t[0],t[1])){for(var s=0;s<(a?a.length:0);s++)if(w_(a[s],t[0],t[1]))continue t;return!0}}return!1},t.prototype.transformTo=function(t,e,n,i){var r=this.getBoundingRect(),o=r.width/r.height;n?i||(i=n/o):n=o*i;for(var a=new Dn(t,e,n,i),s=r.calculateTransform(a),l=this.geometries,u=0;u<l.length;u++)if("polygon"===l[u].type){for(var h=l[u].exterior,c=l[u].interiors,p=0;p<h.length;p++)Lt(h[p],h[p],s);for(var d=0;d<(c?c.length:0);d++)for(p=0;p<c[d].length;p++)Lt(c[d][p],c[d][p],s)}(r=this._rect).copy(a),this.center=[r.x+r.width/2,r.y+r.height/2]},t.prototype.cloneShallow=function(e){null==e&&(e=this.name);var n=new t(e,this.geometries,this.center);return n._rect=this._rect,n.transformTo=null,n},t}();function M_(t,e,n){for(var i=[],r=e[0],o=e[1],a=0;a<t.length;a+=2){var s=t.charCodeAt(a)-64,l=t.charCodeAt(a+1)-64;s=s>>1^-(1&s),l=l>>1^-(1&l),r=s+=r,o=l+=o,i.push([s/n,l/n])}return i}function T_(t,e){return O(N((t=function(t){if(!t.UTF8Encoding)return t;var e=t,n=e.UTF8Scale;null==n&&(n=1024);for(var i=e.features,r=0;r<i.length;r++){var o=i[r].geometry;if("Polygon"===o.type)for(var a=o.coordinates,s=0;s<a.length;s++)a[s]=M_(a[s],o.encodeOffsets[s],n);else if("MultiPolygon"===o.type)for(a=o.coordinates,s=0;s<a.length;s++)for(var l=a[s],u=0;u<l.length;u++)l[u]=M_(l[u],o.encodeOffsets[s][u],n)}return e.UTF8Encoding=!1,e}(t)).features,(function(t){return t.geometry&&t.properties&&t.geometry.coordinates.length>0})),(function(t){var n=t.properties,i=t.geometry,r=[];if("Polygon"===i.type){var o=i.coordinates;r.push({type:"polygon",exterior:o[0],interiors:o.slice(1)})}"MultiPolygon"===i.type&&P(o=i.coordinates,(function(t){t[0]&&r.push({type:"polygon",exterior:t[0],interiors:t.slice(1)})}));var a=new S_(n[e||"name"],r,n.cp);return a.properties=n,a}))}var C_=Object.freeze({__proto__:null,linearMap:Hi,round:Wi,asc:Ui,getPrecision:Yi,getPrecisionSafe:Xi,getPixelPrecision:Zi,getPercentWithPrecision:ji,MAX_SAFE_INTEGER:9007199254740991,remRadian:qi,isRadianAroundZero:Ki,parseDate:Ji,quantity:Qi,quantityExponent:tr,nice:er,quantile:function(t,e){var n=(t.length-1)*e+1,i=Math.floor(n),r=+t[i-1],o=n-i;return o?r+o*(t[i]-r):r},reformIntervals:function(t){t.sort((function(t,e){return s(t,e,0)?-1:1}));for(var e=-1/0,n=1,i=0;i<t.length;){for(var r=t[i].interval,o=t[i].close,a=0;a<2;a++)r[a]<=e&&(r[a]=e,o[a]=a?1:1-n),e=r[a],n=o[a];r[0]===r[1]&&o[0]*o[1]!=1?t.splice(i,1):i++}return t;function s(t,e,n){return t.interval[n]<e.interval[n]||t.interval[n]===e.interval[n]&&(t.close[n]-e.close[n]==(n?-1:1)||!n&&s(t,e,1))}},isNumeric:ir,numericToNumber:nr}),I_=Object.freeze({__proto__:null,parse:Ji,format:Lh}),A_=Object.freeze({__proto__:null,extendShape:uu,extendPath:cu,makePath:fu,makeImage:gu,mergePath:vu,resizePath:mu,createIcon:Ru,updateProps:bu,initProps:wu,getTransform:Iu,clipPointsByRect:Pu,clipRectByRect:Ou,registerShape:pu,getShapeClass:du,Group:Pi,Image:Wa,Text:Qa,Circle:fl,Ellipse:yl,Sector:Ll,Ring:Ol,Polygon:Bl,Polyline:Vl,Rect:Ka,Line:Gl,BezierCurve:Xl,Arc:jl,IncrementalDisplayable:ou,CompoundPath:ql,LinearGradient:$l,RadialGradient:Jl,BoundingRect:Dn}),D_=Object.freeze({__proto__:null,addCommas:jh,toCamelCase:qh,normalizeCssArray:Kh,encodeHTML:Qh,formatTpl:ic,getTooltipMarker:rc,formatTime:function(t,e,n){"week"!==t&&"month"!==t&&"quarter"!==t&&"half-year"!==t&&"year"!==t||(t="MM-dd\nyyyy");var i=Ji(e),r=n?"UTC":"",o=i["get"+r+"FullYear"](),a=i["get"+r+"Month"]()+1,s=i["get"+r+"Date"](),l=i["get"+r+"Hours"](),u=i["get"+r+"Minutes"](),h=i["get"+r+"Seconds"](),c=i["get"+r+"Milliseconds"]();return t=t.replace("MM",Ah(a,2)).replace("M",a).replace("yyyy",o).replace("yy",o%100+"").replace("dd",Ah(s,2)).replace("d",s).replace("hh",Ah(l,2)).replace("h",l).replace("mm",Ah(u,2)).replace("m",u).replace("ss",Ah(h,2)).replace("s",h).replace("SSS",Ah(c,3))},capitalFirst:function(t){return t?t.charAt(0).toUpperCase()+t.substr(1):t},truncateText:qr,getTextRect:function(t,e,n,i,r,o,a,s){return sr(),new Qa({style:{text:t,font:e,align:n,verticalAlign:i,padding:r,rich:o,overflow:a?"truncate":null,lineHeight:s}}).getBoundingRect()}}),k_=Object.freeze({__proto__:null,map:O,each:P,indexOf:A,inherits:D,reduce:R,filter:N,bind:B,curry:z,isArray:V,isString:H,isObject:U,isFunction:F,extend:T,defaults:C,clone:w,merge:S}),L_=wr();function P_(t){return"category"===t.type?function(t){var e=t.getLabelModel(),n=R_(t,e);return!e.get("show")||t.scale.isBlank()?{labels:[],labelCategoryInterval:n.labelCategoryInterval}:n}(t):function(t){var e=t.scale.getTicks(),n=p_(t);return{labels:O(e,(function(e,i){return{formattedLabel:n(e,i),rawLabel:t.scale.getLabel(e),tickValue:e.value}}))}}(t)}function O_(t,e){return"category"===t.type?function(t,e){var n,i,r=N_(t,"ticks"),o=g_(e),a=E_(r,o);if(a)return a;e.get("show")&&!t.scale.isBlank()||(n=[]);if(F(o))n=V_(t,o,!0);else if("auto"===o){var s=R_(t,t.getLabelModel());i=s.labelCategoryInterval,n=O(s.labels,(function(t){return t.tickValue}))}else n=z_(t,i=o,!0);return B_(r,o,{ticks:n,tickCategoryInterval:i})}(t,e):{ticks:O(t.scale.getTicks(),(function(t){return t.value}))}}function R_(t,e){var n,i,r=N_(t,"labels"),o=g_(e),a=E_(r,o);return a||(F(o)?n=V_(t,o):(i="auto"===o?function(t){var e=L_(t).autoInterval;return null!=e?e:L_(t).autoInterval=t.calculateCategoryInterval()}(t):o,n=z_(t,i)),B_(r,o,{labels:n,labelCategoryInterval:i}))}function N_(t,e){return L_(t)[e]||(L_(t)[e]=[])}function E_(t,e){for(var n=0;n<t.length;n++)if(t[n].key===e)return t[n].value}function B_(t,e,n){return t.push({key:e,value:n}),n}function z_(t,e,n){var i=p_(t),r=t.scale,o=r.getExtent(),a=t.getLabelModel(),s=[],l=Math.max((e||0)+1,1),u=o[0],h=r.count();0!==u&&l>1&&h/l>2&&(u=Math.round(Math.ceil(u/l)*l));var c=y_(t),p=a.get("showMinLabel")||c,d=a.get("showMaxLabel")||c;p&&u!==o[0]&&g(o[0]);for(var f=u;f<=o[1];f+=l)g(f);function g(t){var e={value:t};s.push(n?t:{formattedLabel:i(e),rawLabel:r.getLabel(e),tickValue:t})}return d&&f-l!==o[1]&&g(o[1]),s}function V_(t,e,n){var i=t.scale,r=p_(t),o=[];return P(i.getTicks(),(function(t){var a=i.getLabel(t),s=t.value;e(t.value,a)&&o.push(n?s:{formattedLabel:r(t),rawLabel:a,tickValue:s})})),o}var F_=[0,1],H_=function(){function t(t,e,n){this.onBand=!1,this.inverse=!1,this.dim=t,this.scale=e,this._extent=n||[0,0]}return t.prototype.contain=function(t){var e=this._extent,n=Math.min(e[0],e[1]),i=Math.max(e[0],e[1]);return t>=n&&t<=i},t.prototype.containData=function(t){return this.scale.contain(t)},t.prototype.getExtent=function(){return this._extent.slice()},t.prototype.getPixelPrecision=function(t){return Zi(t||this.scale.getExtent(),this._extent)},t.prototype.setExtent=function(t,e){var n=this._extent;n[0]=t,n[1]=e},t.prototype.dataToCoord=function(t,e){var n=this._extent,i=this.scale;return t=i.normalize(t),this.onBand&&"ordinal"===i.type&&G_(n=n.slice(),i.count()),Hi(t,F_,n,e)},t.prototype.coordToData=function(t,e){var n=this._extent,i=this.scale;this.onBand&&"ordinal"===i.type&&G_(n=n.slice(),i.count());var r=Hi(t,n,F_,e);return this.scale.scale(r)},t.prototype.pointToData=function(t,e){},t.prototype.getTicksCoords=function(t){var e=(t=t||{}).tickModel||this.getTickModel(),n=O(O_(this,e).ticks,(function(t){return{coord:this.dataToCoord("ordinal"===this.scale.type?this.scale.getRawOrdinalNumber(t):t),tickValue:t}}),this);return function(t,e,n,i){var r=e.length;if(!t.onBand||n||!r)return;var o,a,s=t.getExtent();if(1===r)e[0].coord=s[0],o=e[1]={coord:s[0]};else{var l=e[r-1].tickValue-e[0].tickValue,u=(e[r-1].coord-e[0].coord)/l;P(e,(function(t){t.coord-=u/2})),a=1+t.scale.getExtent()[1]-e[r-1].tickValue,o={coord:e[r-1].coord+u*a},e.push(o)}var h=s[0]>s[1];c(e[0].coord,s[0])&&(i?e[0].coord=s[0]:e.shift());i&&c(s[0],e[0].coord)&&e.unshift({coord:s[0]});c(s[1],o.coord)&&(i?o.coord=s[1]:e.pop());i&&c(o.coord,s[1])&&e.push({coord:s[1]});function c(t,e){return t=Wi(t),e=Wi(e),h?t>e:t<e}}(this,n,e.get("alignWithLabel"),t.clamp),n},t.prototype.getMinorTicksCoords=function(){if("ordinal"===this.scale.type)return[];var t=this.model.getModel("minorTick").get("splitNumber");return t>0&&t<100||(t=5),O(this.scale.getMinorTicks(t),(function(t){return O(t,(function(t){return{coord:this.dataToCoord(t),tickValue:t}}),this)}),this)},t.prototype.getViewLabels=function(){return P_(this).labels},t.prototype.getLabelModel=function(){return this.model.getModel("axisLabel")},t.prototype.getTickModel=function(){return this.model.getModel("axisTick")},t.prototype.getBandWidth=function(){var t=this._extent,e=this.scale.getExtent(),n=e[1]-e[0]+(this.onBand?1:0);0===n&&(n=1);var i=Math.abs(t[1]-t[0]);return Math.abs(i)/n},t.prototype.calculateCategoryInterval=function(){return function(t){var e=function(t){var e=t.getLabelModel();return{axisRotate:t.getRotate?t.getRotate():t.isHorizontal&&!t.isHorizontal()?90:0,labelRotate:e.get("rotate")||0,font:e.getFont()}}(t),n=p_(t),i=(e.axisRotate-e.labelRotate)/180*Math.PI,r=t.scale,o=r.getExtent(),a=r.count();if(o[1]-o[0]<1)return 0;var s=1;a>40&&(s=Math.max(1,Math.floor(a/40)));for(var l=o[0],u=t.dataToCoord(l+1)-t.dataToCoord(l),h=Math.abs(u*Math.cos(i)),c=Math.abs(u*Math.sin(i)),p=0,d=0;l<=o[1];l+=s){var f,g,y=Nn(n({value:l}),e.font,"center","top");f=1.3*y.width,g=1.3*y.height,p=Math.max(p,f,7),d=Math.max(d,g,7)}var v=p/h,m=d/c;isNaN(v)&&(v=1/0),isNaN(m)&&(m=1/0);var _=Math.max(0,Math.floor(Math.min(v,m))),x=L_(t.model),b=t.getExtent(),w=x.lastAutoInterval,S=x.lastTickCount;return null!=w&&null!=S&&Math.abs(w-_)<=1&&Math.abs(S-a)<=1&&w>_&&x.axisExtent0===b[0]&&x.axisExtent1===b[1]?_=w:(x.lastTickCount=a,x.lastAutoInterval=_,x.axisExtent0=b[0],x.axisExtent1=b[1]),_}(this)},t}();function G_(t,e){var n=(t[1]-t[0])/e/2;t[0]+=n,t[1]-=n}function W_(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}function U_(t,e,n,i,r){for(var o=e.length,a=n.length,s=t.newPos,l=s-i,u=0;s+1<o&&l+1<a&&r(e[s+1],n[l+1]);)s++,l++,u++;return u&&t.components.push({count:u,added:!1,removed:!1,indices:[]}),t.newPos=s,l}function Y_(t,e,n){var i=t[t.length-1];i&&i.added===e&&i.removed===n?t[t.length-1]={count:i.count+1,added:e,removed:n,indices:[]}:t.push({count:1,added:e,removed:n,indices:[]})}function X_(t){for(var e=0,n=t.length,i=0,r=0;e<n;e++){var o=t[e];if(o.removed){for(s=r;s<r+o.count;s++)o.indices.push(s);r+=o.count}else{for(var a=[],s=i;s<i+o.count;s++)a.push(s);o.indices=a,i+=o.count,o.added||(r+=o.count)}}return t}function Z_(t,e,n){return function(t,e,n){n||(n=function(t,e){return t===e}),t=t.slice();var i=(e=e.slice()).length,r=t.length,o=1,a=i+r,s=[{newPos:-1,components:[]}],l=U_(s[0],e,t,0,n);if(s[0].newPos+1>=i&&l+1>=r){for(var u=[],h=0;h<e.length;h++)u.push(h);return[{indices:u,count:e.length,added:!1,removed:!1}]}function c(){for(var a=-1*o;a<=o;a+=2){var l,u=s[a-1],h=s[a+1],c=(h?h.newPos:0)-a;u&&(s[a-1]=void 0);var p=u&&u.newPos+1<i,d=h&&0<=c&&c<r;if(p||d){if(!p||d&&u.newPos<h.newPos?Y_((l={newPos:(f=h).newPos,components:f.components.slice(0)}).components,!1,!0):((l=u).newPos++,Y_(l.components,!0,!1)),c=U_(l,e,t,a,n),l.newPos+1>=i&&c+1>=r)return X_(l.components);s[a]=l}else s[a]=void 0}var f;o++}for(;o<=a;){var p=c();if(p)return p}}(t,e,n)}var j_="none",q_=Math.round,K_=Math.sin,$_=Math.cos,J_=Math.PI,Q_=2*Math.PI,tx=180/J_,ex=1e-4;function nx(t){return q_(1e3*t)/1e3}function ix(t){return q_(1e4*t)/1e4}function rx(t){return t<ex&&t>-1e-4}function ox(t,e){e&&ax(t,"transform","matrix("+nx(e[0])+","+nx(e[1])+","+nx(e[2])+","+nx(e[3])+","+ix(e[4])+","+ix(e[5])+")")}function ax(t,e,n){(!n||"linear"!==n.type&&"radial"!==n.type)&&t.setAttribute(e,n)}function sx(t,e,n){var i=null==e.opacity?1:e.opacity;if(n instanceof Wa)t.style.opacity=i+"";else{if(function(t){var e=t.fill;return null!=e&&e!==j_}(e)){var r=e.fill;ax(t,"fill",r="transparent"===r?j_:r),ax(t,"fill-opacity",(null!=e.fillOpacity?e.fillOpacity*i:i)+"")}else ax(t,"fill",j_);if(function(t){var e=t.stroke;return null!=e&&e!==j_}(e)){var o=e.stroke;ax(t,"stroke",o="transparent"===o?j_:o);var a=e.lineWidth,s=e.strokeNoScale?n.getLineScale():1;ax(t,"stroke-width",(s?a/s:0)+""),ax(t,"paint-order",e.strokeFirst?"stroke":"fill"),ax(t,"stroke-opacity",(null!=e.strokeOpacity?e.strokeOpacity*i:i)+"");var l=e.lineDash&&a>0&&Vg(e.lineDash,a);if(l){var u=e.lineDashOffset;s&&1!==s&&(l=O(l,(function(t){return t/s})),u&&(u=q_(u/=s))),ax(t,"stroke-dasharray",l.join(",")),ax(t,"stroke-dashoffset",(u||0)+"")}else ax(t,"stroke-dasharray","");e.lineCap&&ax(t,"stroke-linecap",e.lineCap),e.lineJoin&&ax(t,"stroke-linejoin",e.lineJoin),e.miterLimit&&ax(t,"stroke-miterlimit",e.miterLimit+"")}else ax(t,"stroke",j_)}}var lx=function(){function t(){}return t.prototype.reset=function(){this._d=[],this._str=""},t.prototype.moveTo=function(t,e){this._add("M",t,e)},t.prototype.lineTo=function(t,e){this._add("L",t,e)},t.prototype.bezierCurveTo=function(t,e,n,i,r,o){this._add("C",t,e,n,i,r,o)},t.prototype.quadraticCurveTo=function(t,e,n,i){this._add("Q",t,e,n,i)},t.prototype.arc=function(t,e,n,i,r,o){this.ellipse(t,e,n,n,0,i,r,o)},t.prototype.ellipse=function(t,e,n,i,r,o,a,s){var l=0===this._d.length,u=a-o,h=!s,c=Math.abs(u),p=rx(c-Q_)||(h?u>=Q_:-u>=Q_),d=u>0?u%Q_:u%Q_+Q_,f=!1;f=!!p||!rx(c)&&d>=J_==!!h;var g=ix(t+n*$_(o)),y=ix(e+i*K_(o));p&&(u=h?Q_-1e-4:1e-4-Q_,f=!0,l&&this._d.push("M",g,y));var v=ix(t+n*$_(o+u)),m=ix(e+i*K_(o+u));if(isNaN(g)||isNaN(y)||isNaN(n)||isNaN(i)||isNaN(r)||isNaN(tx)||isNaN(v)||isNaN(m))return"";this._d.push("A",ix(n),ix(i),q_(r*tx),+f,+h,v,m)},t.prototype.rect=function(t,e,n,i){this._add("M",t,e),this._add("L",t+n,e),this._add("L",t+n,e+i),this._add("L",t,e+i),this._add("L",t,e)},t.prototype.closePath=function(){this._d.length>0&&this._add("Z")},t.prototype._add=function(t,e,n,i,r,o,a,s,l){this._d.push(t);for(var u=1;u<arguments.length;u++){var h=arguments[u];if(isNaN(h))return void(this._invalid=!0);this._d.push(ix(h))}},t.prototype.generateStr=function(){this._str=this._invalid?"":this._d.join(" "),this._d=[]},t.prototype.getStr=function(){return this._str},t}(),ux={brush:function(t){var e=t.style,n=t.__svgEl;n||(n=W_("path"),t.__svgEl=n),t.path||t.createPathProxy();var i=t.path;t.shapeChanged()&&(i.beginPath(),t.buildPath(i,t.shape),t.pathUpdated());var r=i.getVersion(),o=t,a=o.__svgPathBuilder;(o.__svgPathVersion!==r||!a||t.style.strokePercent<1)&&(a||(a=o.__svgPathBuilder=new lx),a.reset(),i.rebuildPath(a,t.style.strokePercent),a.generateStr(),o.__svgPathVersion=r),ax(n,"d",a.getStr()),sx(n,e,t),ox(n,t.transform)}},hx={brush:function(t){var e=t.style,n=e.image;if(n instanceof HTMLImageElement?n=n.src:n instanceof HTMLCanvasElement&&(n=n.toDataURL()),n){var i=e.x||0,r=e.y||0,o=e.width,a=e.height,s=t.__svgEl;s||(s=W_("image"),t.__svgEl=s),n!==t.__imageSrc&&(!function(t,e,n){t.setAttributeNS("http://www.w3.org/1999/xlink",e,n)}(s,"href",n),t.__imageSrc=n),ax(s,"width",o+""),ax(s,"height",a+""),ax(s,"x",i+""),ax(s,"y",r+""),sx(s,e,t),ox(s,t.transform)}}},cx={left:"start",right:"end",center:"middle",middle:"middle"};var px={brush:function(t){var e=t.style,n=e.text;if(null!=n&&(n+=""),n&&!isNaN(e.x)&&!isNaN(e.y)){var i=t.__svgEl;i||(function(t,e,n){t.setAttributeNS("http://www.w3.org/XML/1998/namespace",e,n)}(i=W_("text"),"xml:space","preserve"),t.__svgEl=i);var r=e.font||Ln;i.style.font=r,i.textContent=n,sx(i,e,t),ox(i,t.transform);var o=e.x||0,a=function(t,e,n){return"top"===n?t+=e/2:"bottom"===n&&(t-=e/2),t}(e.y||0,zn(r),e.textBaseline),s=cx[e.textAlign]||e.textAlign;ax(i,"dominant-baseline","central"),ax(i,"text-anchor",s),ax(i,"x",o+""),ax(i,"y",a+"")}}},dx=function(){function t(t,e,n,i,r){this.nextId=0,this._domName="_dom",this.createElement=W_,this._zrId=t,this._svgRoot=e,this._tagNames="string"==typeof n?[n]:n,this._markLabel=i,r&&(this._domName=r)}return t.prototype.getDefs=function(t){var e=this._svgRoot,n=this._svgRoot.getElementsByTagName("defs");if(0===n.length){if(t){var i=e.insertBefore(this.createElement("defs"),e.firstChild);return i.contains||(i.contains=function(t){var e=i.children;if(!e)return!1;for(var n=e.length-1;n>=0;--n)if(e[n]===t)return!0;return!1}),i}return null}return n[0]},t.prototype.doUpdate=function(t,e){if(t){var n=this.getDefs(!1);if(t[this._domName]&&n.contains(t[this._domName]))"function"==typeof e&&e(t);else{var i=this.add(t);i&&(t[this._domName]=i)}}},t.prototype.add=function(t){return null},t.prototype.addDom=function(t){var e=this.getDefs(!0);t.parentNode!==e&&e.appendChild(t)},t.prototype.removeDom=function(t){var e=this.getDefs(!1);e&&t[this._domName]&&(e.removeChild(t[this._domName]),t[this._domName]=null)},t.prototype.getDoms=function(){var t=this.getDefs(!1);if(!t)return[];var e=[];return P(this._tagNames,(function(n){for(var i=t.getElementsByTagName(n),r=0;r<i.length;r++)e.push(i[r])})),e},t.prototype.markAllUnused=function(){var t=this.getDoms(),e=this;P(t,(function(t){t[e._markLabel]="0"}))},t.prototype.markDomUsed=function(t){t&&(t[this._markLabel]="1")},t.prototype.markDomUnused=function(t){t&&(t[this._markLabel]="0")},t.prototype.isDomUnused=function(t){return t&&"1"!==t[this._markLabel]},t.prototype.removeUnused=function(){var t=this,e=this.getDefs(!1);e&&P(this.getDoms(),(function(n){t.isDomUnused(n)&&e.removeChild(n)}))},t.prototype.getSvgProxy=function(t){return t instanceof za?ux:t instanceof Wa?hx:t instanceof Fa?px:ux},t.prototype.getSvgElement=function(t){return t.__svgEl},t}();function fx(t){return"linear"===t.type}function gx(t){return"radial"===t.type}function yx(t){return t&&("linear"===t.type||"radial"===t.type)}var vx=function(t){function e(e,n){return t.call(this,e,n,["linearGradient","radialGradient"],"__gradient_in_use__")||this}return gt(e,t),e.prototype.addWithoutUpdate=function(t,e){if(e&&e.style){var n=this;P(["fill","stroke"],(function(i){var r=e.style[i];if(yx(r)){var o=r,a=n.getDefs(!0),s=void 0;o.__dom?(s=o.__dom,a.contains(o.__dom)||n.addDom(s)):s=n.add(o),n.markUsed(e);var l=s.getAttribute("id");t.setAttribute(i,"url(#"+l+")")}}))}},e.prototype.add=function(t){var e;if(fx(t))e=this.createElement("linearGradient");else{if(!gx(t))return b("Illegal gradient type."),null;e=this.createElement("radialGradient")}return t.id=t.id||this.nextId++,e.setAttribute("id","zr"+this._zrId+"-gradient-"+t.id),this.updateDom(t,e),this.addDom(e),e},e.prototype.update=function(t){if(yx(t)){var e=this;this.doUpdate(t,(function(){var n=t.__dom;if(n){var i=n.tagName,r=t.type;"linear"===r&&"linearGradient"===i||"radial"===r&&"radialGradient"===i?e.updateDom(t,t.__dom):(e.removeDom(t),e.add(t))}}))}},e.prototype.updateDom=function(t,e){if(fx(t))e.setAttribute("x1",t.x+""),e.setAttribute("y1",t.y+""),e.setAttribute("x2",t.x2+""),e.setAttribute("y2",t.y2+"");else{if(!gx(t))return void b("Illegal gradient type.");e.setAttribute("cx",t.x+""),e.setAttribute("cy",t.y+""),e.setAttribute("r",t.r+"")}t.global?e.setAttribute("gradientUnits","userSpaceOnUse"):e.setAttribute("gradientUnits","objectBoundingBox"),e.innerHTML="";for(var n=t.colorStops,i=0,r=n.length;i<r;++i){var o=this.createElement("stop");o.setAttribute("offset",100*n[i].offset+"%");var a=n[i].color;if(a.indexOf("rgba")>-1){var s=Ye(a)[3],l=je(a);o.setAttribute("stop-color","#"+l),o.setAttribute("stop-opacity",s+"")}else o.setAttribute("stop-color",n[i].color);e.appendChild(o)}t.__dom=e},e.prototype.markUsed=function(e){if(e.style){var n=e.style.fill;n&&n.__dom&&t.prototype.markDomUsed.call(this,n.__dom),(n=e.style.stroke)&&n.__dom&&t.prototype.markDomUsed.call(this,n.__dom)}},e}(dx);function mx(t){return t&&(!!t.image||!!t.svgElement)}var _x=new Ig,xx=function(t){function e(e,n){return t.call(this,e,n,["pattern"],"__pattern_in_use__")||this}return gt(e,t),e.prototype.addWithoutUpdate=function(t,e){if(e&&e.style){var n=this;P(["fill","stroke"],(function(i){var r=e.style[i];if(mx(r)){var o=n.getDefs(!0),a=_x.get(r);a?o.contains(a)||n.addDom(a):a=n.add(r),n.markUsed(e);var s=a.getAttribute("id");t.setAttribute(i,"url(#"+s+")")}}))}},e.prototype.add=function(t){if(mx(t)){var e=this.createElement("pattern");return t.id=null==t.id?this.nextId++:t.id,e.setAttribute("id","zr"+this._zrId+"-pattern-"+t.id),e.setAttribute("x","0"),e.setAttribute("y","0"),e.setAttribute("patternUnits","userSpaceOnUse"),this.updateDom(t,e),this.addDom(e),e}},e.prototype.update=function(t){if(mx(t)){var e=this;this.doUpdate(t,(function(){var n=_x.get(t);e.updateDom(t,n)}))}},e.prototype.updateDom=function(t,e){var n=t.svgElement;if(n instanceof SVGElement)n.parentNode!==e&&(e.innerHTML="",e.appendChild(n),e.setAttribute("width",t.svgWidth+""),e.setAttribute("height",t.svgHeight+""));else{var i=void 0,r=e.getElementsByTagName("image");if(r.length){if(!t.image)return void e.removeChild(r[0]);i=r[0]}else t.image&&(i=this.createElement("image"));if(i){var o=void 0;if("string"==typeof t.image?o=t.image:t.image instanceof HTMLImageElement?o=t.image.src:t.image instanceof HTMLCanvasElement&&(o=t.image.toDataURL()),o){i.setAttribute("href",o),i.setAttribute("x","0"),i.setAttribute("y","0");var a=Yr(o,i,{dirty:function(){}},(function(t){e.setAttribute("width",t.width+""),e.setAttribute("height",t.height+"")}));a&&a.width&&a.height&&(e.setAttribute("width",a.width+""),e.setAttribute("height",a.height+"")),e.appendChild(i)}}}var s="translate("+(t.x||0)+", "+(t.y||0)+") rotate("+(t.rotation||0)/Math.PI*180+") scale("+(t.scaleX||1)+", "+(t.scaleY||1)+")";e.setAttribute("patternTransform",s),_x.set(t,e)},e.prototype.markUsed=function(e){e.style&&(mx(e.style.fill)&&t.prototype.markDomUsed.call(this,_x.get(e.style.fill)),mx(e.style.stroke)&&t.prototype.markDomUsed.call(this,_x.get(e.style.stroke)))},e}(dx);function bx(t){var e=t.__clipPaths;return e&&e.length>0}var Sx=function(t){function e(e,n){var i=t.call(this,e,n,"clipPath","__clippath_in_use__")||this;return i._refGroups={},i._keyDuplicateCount={},i}return gt(e,t),e.prototype.markAllUnused=function(){for(var e in t.prototype.markAllUnused.call(this),this._refGroups)this.markDomUnused(this._refGroups[e]);this._keyDuplicateCount={}},e.prototype._getClipPathGroup=function(t,e){if(bx(t)){var n=t.__clipPaths,i=this._keyDuplicateCount,r=function(t){var e=[];if(t)for(var n=0;n<t.length;n++){var i=t[n];e.push(i.id)}return e.join(",")}(n);return zg(n,e&&e.__clipPaths)&&(i[r]=i[r]||0,i[r]&&(r+="-"+i[r]),i[r]++),this._refGroups[r]||(this._refGroups[r]=this.createElement("g"))}},e.prototype.update=function(t,e){var n=this._getClipPathGroup(t,e);return n&&(this.markDomUsed(n),this.updateDom(n,t.__clipPaths)),n},e.prototype.updateDom=function(t,e){if(e&&e.length>0){var n=this.getDefs(!0),i=e[0],r=void 0,o=void 0;i._dom?(o=i._dom.getAttribute("id"),r=i._dom,n.contains(r)||n.appendChild(r)):(o="zr"+this._zrId+"-clip-"+this.nextId,++this.nextId,(r=this.createElement("clipPath")).setAttribute("id",o),n.appendChild(r),i._dom=r),this.getSvgProxy(i).brush(i);var a=this.getSvgElement(i);r.innerHTML="",r.appendChild(a),t.setAttribute("clip-path","url(#"+o+")"),e.length>1&&this.updateDom(r,e.slice(1))}else t&&t.setAttribute("clip-path","none")},e.prototype.markUsed=function(e){var n=this;e.__clipPaths&&P(e.__clipPaths,(function(e){e._dom&&t.prototype.markDomUsed.call(n,e._dom)}))},e.prototype.removeUnused=function(){t.prototype.removeUnused.call(this);var e={};for(var n in this._refGroups){var i=this._refGroups[n];this.isDomUnused(i)?i.parentNode&&i.parentNode.removeChild(i):e[n]=i}this._refGroups=e},e}(dx),Mx=function(t){function e(e,n){var i=t.call(this,e,n,["filter"],"__filter_in_use__","_shadowDom")||this;return i._shadowDomMap={},i._shadowDomPool=[],i}return gt(e,t),e.prototype._getFromPool=function(){var t=this._shadowDomPool.pop();if(!t){(t=this.createElement("filter")).setAttribute("id","zr"+this._zrId+"-shadow-"+this.nextId++);var e=this.createElement("feDropShadow");t.appendChild(e),this.addDom(t)}return t},e.prototype.update=function(t,e){if(function(t){return t&&(t.shadowBlur||t.shadowOffsetX||t.shadowOffsetY)}(e.style)){var n=function(t){var e=t.style,n=t.getGlobalScale();return[e.shadowColor,(e.shadowBlur||0).toFixed(2),(e.shadowOffsetX||0).toFixed(2),(e.shadowOffsetY||0).toFixed(2),n[0],n[1]].join(",")}(e),i=e._shadowDom=this._shadowDomMap[n];i||(i=this._getFromPool(),this._shadowDomMap[n]=i),this.updateDom(t,e,i)}else this.remove(t,e)},e.prototype.remove=function(t,e){null!=e._shadowDom&&(e._shadowDom=null,t.style.filter="")},e.prototype.updateDom=function(t,e,n){var i=n.children[0],r=e.style,o=e.getGlobalScale(),a=o[0],s=o[1];if(a&&s){var l=r.shadowOffsetX||0,u=r.shadowOffsetY||0,h=r.shadowBlur,c=r.shadowColor;i.setAttribute("dx",l/a+""),i.setAttribute("dy",u/s+""),i.setAttribute("flood-color",c);var p=h/2/a+" "+h/2/s;i.setAttribute("stdDeviation",p),n.setAttribute("x","-100%"),n.setAttribute("y","-100%"),n.setAttribute("width","300%"),n.setAttribute("height","300%"),e._shadowDom=n;var d=n.getAttribute("id");t.style.filter="url(#"+d+")"}},e.prototype.removeUnused=function(){if(this.getDefs(!1)){var t=this._shadowDomPool;for(var e in this._shadowDomMap){var n=this._shadowDomMap[e];t.push(n)}this._shadowDomMap={}}},e}(dx);function Tx(t){return parseInt(t,10)}function Cx(t){return t instanceof za?ux:t instanceof Wa?hx:t instanceof Fa?px:ux}function Ix(t,e){return e&&t&&e.parentNode!==t}function Ax(t,e,n){if(Ix(t,e)&&n){var i=n.nextSibling;i?t.insertBefore(e,i):t.appendChild(e)}}function Dx(t,e){if(Ix(t,e)){var n=t.firstChild;n?t.insertBefore(e,n):t.appendChild(e)}}function kx(t,e){e&&t&&e.parentNode===t&&t.removeChild(e)}function Lx(t){return t.__svgEl}var Px=function(){function t(t,e,n,i){this.type="svg",this.refreshHover=Ox("refreshHover"),this.pathToImage=Ox("pathToImage"),this.configLayer=Ox("configLayer"),this.root=t,this.storage=e,this._opts=n=T({},n||{});var r=W_("svg");r.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns","http://www.w3.org/2000/svg"),r.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink","http://www.w3.org/1999/xlink"),r.setAttribute("version","1.1"),r.setAttribute("baseProfile","full"),r.style.cssText="user-select:none;position:absolute;left:0;top:0;";var o=W_("g");r.appendChild(o);var a=W_("g");r.appendChild(a),this._gradientManager=new vx(i,a),this._patternManager=new xx(i,a),this._clipPathManager=new Sx(i,a),this._shadowManager=new Mx(i,a);var s=document.createElement("div");s.style.cssText="overflow:hidden;position:relative",this._svgDom=r,this._svgRoot=a,this._backgroundRoot=o,this._viewport=s,t.appendChild(s),s.appendChild(r),this.resize(n.width,n.height),this._visibleList=[]}return t.prototype.getType=function(){return"svg"},t.prototype.getViewportRoot=function(){return this._viewport},t.prototype.getSvgDom=function(){return this._svgDom},t.prototype.getSvgRoot=function(){return this._svgRoot},t.prototype.getViewportRootOffset=function(){var t=this.getViewportRoot();if(t)return{offsetLeft:t.offsetLeft||0,offsetTop:t.offsetTop||0}},t.prototype.refresh=function(){var t=this.storage.getDisplayList(!0);this._paintList(t)},t.prototype.setBackgroundColor=function(t){this._backgroundRoot&&this._backgroundNode&&this._backgroundRoot.removeChild(this._backgroundNode);var e=W_("rect");e.setAttribute("width",this.getWidth()),e.setAttribute("height",this.getHeight()),e.setAttribute("x",0),e.setAttribute("y",0),e.setAttribute("id",0),e.style.fill=t,this._backgroundRoot.appendChild(e),this._backgroundNode=e},t.prototype.createSVGElement=function(t){return W_(t)},t.prototype.paintOne=function(t){var e=Cx(t);return e&&e.brush(t),Lx(t)},t.prototype._paintList=function(t){var e=this._gradientManager,n=this._patternManager,i=this._clipPathManager,r=this._shadowManager;e.markAllUnused(),n.markAllUnused(),i.markAllUnused(),r.markAllUnused();for(var o=this._svgRoot,a=this._visibleList,s=t.length,l=[],u=0;u<s;u++){var h=Cx(x=t[u]),c=Lx(x);x.invisible||(!x.__dirty&&c||(h&&h.brush(x),(c=Lx(x))&&x.style&&(e.update(x.style.fill),e.update(x.style.stroke),n.update(x.style.fill),n.update(x.style.stroke),r.update(c,x)),x.__dirty=0),c&&l.push(x))}var p,d,f,g,y,v=Z_(a,l);for(u=0;u<v.length;u++){if((_=v[u]).removed)for(var m=0;m<_.count;m++){c=Lx(x=a[_.indices[m]]);bx(x)?(f=c)&&f.parentNode&&f.parentNode.removeChild(f):kx(o,c)}}for(u=0;u<v.length;u++){var _;(_=v[u]).added;if(!_.removed)for(m=0;m<_.count;m++){var x=l[_.indices[m]],b=i.update(x,g);b!==y&&(p=d,b&&(p?Ax(o,b,p):Dx(o,b),d=b,p=null),y=b);c=Lx(x);p?Ax(y||o,c,p):Dx(y||o,c),p=c||p,y||(d=p),e.markUsed(x),e.addWithoutUpdate(c,x),n.markUsed(x),n.addWithoutUpdate(c,x),i.markUsed(x),g=x}}e.removeUnused(),n.removeUnused(),i.removeUnused(),r.removeUnused(),this._visibleList=l},t.prototype._getDefs=function(t){var e=this._svgDom,n=e.getElementsByTagName("defs");if(0===n.length){if(t){var i=e.insertBefore(W_("defs"),e.firstChild);return i.contains||(i.contains=function(t){var e=i.children;if(!e)return!1;for(var n=e.length-1;n>=0;--n)if(e[n]===t)return!0;return!1}),i}return null}return n[0]},t.prototype.resize=function(t,e){var n=this._viewport;n.style.display="none";var i=this._opts;if(null!=t&&(i.width=t),null!=e&&(i.height=e),t=this._getSize(0),e=this._getSize(1),n.style.display="",this._width!==t||this._height!==e){this._width=t,this._height=e;var r=n.style;r.width=t+"px",r.height=e+"px";var o=this._svgDom;o.setAttribute("width",t+""),o.setAttribute("height",e+"")}this._backgroundNode&&(this._backgroundNode.setAttribute("width",t),this._backgroundNode.setAttribute("height",e))},t.prototype.getWidth=function(){return this._width},t.prototype.getHeight=function(){return this._height},t.prototype._getSize=function(t){var e=this._opts,n=["width","height"][t],i=["clientWidth","clientHeight"][t],r=["paddingLeft","paddingTop"][t],o=["paddingRight","paddingBottom"][t];if(null!=e[n]&&"auto"!==e[n])return parseFloat(e[n]);var a=this.root,s=document.defaultView.getComputedStyle(a);return(a[i]||Tx(s[n])||Tx(a.style[n]))-(Tx(s[r])||0)-(Tx(s[o])||0)|0},t.prototype.dispose=function(){this.root.innerHTML="",this._svgRoot=this._backgroundRoot=this._svgDom=this._backgroundNode=this._viewport=this.storage=null},t.prototype.clear=function(){var t=this._viewport;t&&t.parentNode&&t.parentNode.removeChild(t)},t.prototype.toDataURL=function(){this.refresh();var t=this._svgDom,e=t.outerHTML||(t.parentNode&&t.parentNode).innerHTML;return"data:image/svg+xml;charset=UTF-8,"+encodeURIComponent(e.replace(/></g,">\n\r<"))},t}();function Ox(t){return function(){b('In SVG mode painter not support method "'+t+'"')}}function Rx(){return!1}function Nx(t,e,n){var i=I(),r=e.getWidth(),o=e.getHeight(),a=i.style;return a&&(a.position="absolute",a.left="0",a.top="0",a.width=r+"px",a.height=o+"px",i.setAttribute("data-zr-dom-id",t)),i.width=r*n,i.height=o*n,i}var Ex=function(t){function e(e,n,i){var r,o=t.call(this)||this;o.motionBlur=!1,o.lastFrameAlpha=.7,o.dpr=1,o.virtual=!1,o.config={},o.incremental=!1,o.zlevel=0,o.maxRepaintRectCount=5,o.__dirty=!0,o.__firstTimePaint=!0,o.__used=!1,o.__drawIndex=0,o.__startIndex=0,o.__endIndex=0,o.__prevStartIndex=null,o.__prevEndIndex=null,i=i||Gn,"string"==typeof e?r=Nx(e,n,i):U(e)&&(e=(r=e).id),o.id=e,o.dom=r;var a=r.style;return a&&(r.onselectstart=Rx,a.webkitUserSelect="none",a.userSelect="none",a.webkitTapHighlightColor="rgba(0,0,0,0)",a["-webkit-touch-callout"]="none",a.padding="0",a.margin="0",a.borderWidth="0"),o.domBack=null,o.ctxBack=null,o.painter=n,o.config=null,o.dpr=i,o}return gt(e,t),e.prototype.getElementCount=function(){return this.__endIndex-this.__startIndex},e.prototype.afterBrush=function(){this.__prevStartIndex=this.__startIndex,this.__prevEndIndex=this.__endIndex},e.prototype.initContext=function(){this.ctx=this.dom.getContext("2d"),this.ctx.dpr=this.dpr},e.prototype.setUnpainted=function(){this.__firstTimePaint=!0},e.prototype.createBackBuffer=function(){var t=this.dpr;this.domBack=Nx("back-"+this.id,this.painter,t),this.ctxBack=this.domBack.getContext("2d"),1!==t&&this.ctxBack.scale(t,t)},e.prototype.createRepaintRects=function(t,e,n,i){if(this.__firstTimePaint)return this.__firstTimePaint=!1,null;var r,o=[],a=this.maxRepaintRectCount,s=!1,l=new Dn(0,0,0,0);function u(t){if(t.isFinite()&&!t.isZero())if(0===o.length){(e=new Dn(0,0,0,0)).copy(t),o.push(e)}else{for(var e,n=!1,i=1/0,r=0,u=0;u<o.length;++u){var h=o[u];if(h.intersect(t)){var c=new Dn(0,0,0,0);c.copy(h),c.union(t),o[u]=c,n=!0;break}if(s){l.copy(t),l.union(h);var p=t.width*t.height,d=h.width*h.height,f=l.width*l.height-p-d;f<i&&(i=f,r=u)}}if(s&&(o[r].union(t),n=!0),!n)(e=new Dn(0,0,0,0)).copy(t),o.push(e);s||(s=o.length>=a)}}for(var h=this.__startIndex;h<this.__endIndex;++h){if(d=t[h]){var c=d.shouldBePainted(n,i,!0,!0);(f=d.__isRendered&&(d.__dirty&Kn.REDARAW_BIT||!c)?d.getPrevPaintRect():null)&&u(f);var p=c&&(d.__dirty&Kn.REDARAW_BIT||!d.__isRendered)?d.getPaintRect():null;p&&u(p)}}for(h=this.__prevStartIndex;h<this.__prevEndIndex;++h){var d,f;c=(d=e[h]).shouldBePainted(n,i,!0,!0);if(d&&(!c||!d.__zr)&&d.__isRendered)(f=d.getPrevPaintRect())&&u(f)}do{r=!1;for(h=0;h<o.length;)if(o[h].isZero())o.splice(h,1);else{for(var g=h+1;g<o.length;)o[h].intersect(o[g])?(r=!0,o[h].union(o[g]),o.splice(g,1)):g++;h++}}while(r);return this._paintRects=o,o},e.prototype.debugGetPaintRects=function(){return(this._paintRects||[]).slice()},e.prototype.resize=function(t,e){var n=this.dpr,i=this.dom,r=i.style,o=this.domBack;r&&(r.width=t+"px",r.height=e+"px"),i.width=t*n,i.height=e*n,o&&(o.width=t*n,o.height=e*n,1!==n&&this.ctxBack.scale(n,n))},e.prototype.clear=function(t,e,n){var i=this.dom,r=this.ctx,o=i.width,a=i.height;e=e||this.clearColor;var s=this.motionBlur&&!t,l=this.lastFrameAlpha,u=this.dpr,h=this;s&&(this.domBack||this.createBackBuffer(),this.ctxBack.globalCompositeOperation="copy",this.ctxBack.drawImage(i,0,0,o/u,a/u));var c=this.domBack;function p(t,n,i,o){if(r.clearRect(t,n,i,o),e&&"transparent"!==e){var a=void 0;j(e)?(a=e.__canvasGradient||Bg(r,e,{x:0,y:0,width:i,height:o}),e.__canvasGradient=a):q(e)&&(a=Yg(r,e,{dirty:function(){h.setUnpainted(),h.__painter.refresh()}})),r.save(),r.fillStyle=a||e,r.fillRect(t,n,i,o),r.restore()}s&&(r.save(),r.globalAlpha=l,r.drawImage(c,t,n,i,o),r.restore())}!n||s?p(0,0,o,a):n.length&&P(n,(function(t){p(t.x*u,t.y*u,t.width*u,t.height*u)}))},e}(Bt),Bx=1e5,zx=314159,Vx=.01;function Fx(t){return parseInt(t,10)}var Hx=function(){function t(t,e,n,i){this.type="canvas",this._zlevelList=[],this._prevDisplayList=[],this._layers={},this._layerConfig={},this._needsManuallyCompositing=!1,this.type="canvas";var r=!t.nodeName||"CANVAS"===t.nodeName.toUpperCase();this._opts=n=T({},n||{}),this.dpr=n.devicePixelRatio||Gn,this._singleCanvas=r,this.root=t;var o=t.style;o&&(o.webkitTapHighlightColor="transparent",o.webkitUserSelect="none",o.userSelect="none",o["-webkit-touch-callout"]="none",t.innerHTML=""),this.storage=e;var a=this._zlevelList;this._prevDisplayList=[];var s=this._layers;if(r){var l=t,u=l.width,h=l.height;null!=n.width&&(u=n.width),null!=n.height&&(h=n.height),this.dpr=n.devicePixelRatio||1,l.width=u*this.dpr,l.height=h*this.dpr,this._width=u,this._height=h;var c=new Ex(l,this,this.dpr);c.__builtin__=!0,c.initContext(),s[314159]=c,c.zlevel=zx,a.push(zx),this._domRoot=t}else{this._width=this._getSize(0),this._height=this._getSize(1);var p=this._domRoot=function(t,e){var n=document.createElement("div");return n.style.cssText=["position:relative","width:"+t+"px","height:"+e+"px","padding:0","margin:0","border-width:0"].join(";")+";",n}(this._width,this._height);t.appendChild(p)}}return t.prototype.getType=function(){return"canvas"},t.prototype.isSingleCanvas=function(){return this._singleCanvas},t.prototype.getViewportRoot=function(){return this._domRoot},t.prototype.getViewportRootOffset=function(){var t=this.getViewportRoot();if(t)return{offsetLeft:t.offsetLeft||0,offsetTop:t.offsetTop||0}},t.prototype.refresh=function(t){var e=this.storage.getDisplayList(!0),n=this._prevDisplayList,i=this._zlevelList;this._redrawId=Math.random(),this._paintList(e,n,t,this._redrawId);for(var r=0;r<i.length;r++){var o=i[r],a=this._layers[o];if(!a.__builtin__&&a.refresh){var s=0===r?this._backgroundColor:null;a.refresh(s)}}return this._opts.useDirtyRect&&(this._prevDisplayList=e.slice()),this},t.prototype.refreshHover=function(){this._paintHoverList(this.storage.getDisplayList(!1))},t.prototype._paintHoverList=function(t){var e=t.length,n=this._hoverlayer;if(n&&n.clear(),e){for(var i,r={inHover:!0,viewWidth:this._width,viewHeight:this._height},o=0;o<e;o++){var a=t[o];a.__inHover&&(n||(n=this._hoverlayer=this.getLayer(Bx)),i||(i=n.ctx).save(),ty(i,a,r,o===e-1))}i&&i.restore()}},t.prototype.getHoverLayer=function(){return this.getLayer(Bx)},t.prototype.paintOne=function(t,e){Qg(t,e)},t.prototype._paintList=function(t,e,n,i){if(this._redrawId===i){n=n||!1,this._updateLayerStatus(t);var r=this._doPaintList(t,e,n),o=r.finished,a=r.needsRefreshHover;if(this._needsManuallyCompositing&&this._compositeManually(),a&&this._paintHoverList(t),o)this.eachLayer((function(t){t.afterBrush&&t.afterBrush()}));else{var s=this;di((function(){s._paintList(t,e,n,i)}))}}},t.prototype._compositeManually=function(){var t=this.getLayer(zx).ctx,e=this._domRoot.width,n=this._domRoot.height;t.clearRect(0,0,e,n),this.eachBuiltinLayer((function(i){i.virtual&&t.drawImage(i.dom,0,0,e,n)}))},t.prototype._doPaintList=function(t,e,n){for(var i=this,r=[],o=this._opts.useDirtyRect,s=0;s<this._zlevelList.length;s++){var l=this._zlevelList[s],u=this._layers[l];u.__builtin__&&u!==this._hoverlayer&&(u.__dirty||n)&&r.push(u)}for(var h=!0,c=!1,p=function(a){var s=r[a],l=s.ctx,u=o&&s.createRepaintRects(t,e,d._width,d._height);l.save();var p,f=n?s.__startIndex:s.__drawIndex,g=!n&&s.incremental&&Date.now,y=g&&Date.now(),v=s.zlevel===d._zlevelList[0]?d._backgroundColor:null;if(s.__startIndex===s.__endIndex)s.clear(!1,v,u);else if(f===s.__startIndex){var m=t[f];m.incremental&&m.notClear&&!n||s.clear(!1,v,u)}-1===f&&(console.error("For some unknown reason. drawIndex is -1"),f=s.__startIndex);var _=function(e){var n={inHover:!1,allClipped:!1,prevEl:null,viewWidth:i._width,viewHeight:i._height};for(p=f;p<s.__endIndex;p++){var r=t[p];if(r.__inHover&&(c=!0),i._doPaintEl(r,s,o,e,n,p===s.__endIndex-1),g)if(Date.now()-y>15)break}n.prevElClipPaths&&l.restore()};if(u)if(0===u.length)p=s.__endIndex;else for(var x=d.dpr,b=0;b<u.length;++b){var w=u[b];l.save(),l.beginPath(),l.rect(w.x*x,w.y*x,w.width*x,w.height*x),l.clip(),_(w),l.restore()}else l.save(),_(),l.restore();s.__drawIndex=p,s.__drawIndex<s.__endIndex&&(h=!1)},d=this,f=0;f<r.length;f++)p(f);return a.wxa&&P(this._layers,(function(t){t&&t.ctx&&t.ctx.draw&&t.ctx.draw()})),{finished:h,needsRefreshHover:c}},t.prototype._doPaintEl=function(t,e,n,i,r,o){var a=e.ctx;if(n){var s=t.getPaintRect();(!i||s&&s.intersect(i))&&(ty(a,t,r,o),t.setPrevPaintRect(s))}else ty(a,t,r,o)},t.prototype.getLayer=function(t,e){this._singleCanvas&&!this._needsManuallyCompositing&&(t=zx);var n=this._layers[t];return n||((n=new Ex("zr_"+t,this,this.dpr)).zlevel=t,n.__builtin__=!0,this._layerConfig[t]?S(n,this._layerConfig[t],!0):this._layerConfig[t-Vx]&&S(n,this._layerConfig[t-Vx],!0),e&&(n.virtual=e),this.insertLayer(t,n),n.initContext()),n},t.prototype.insertLayer=function(t,e){var n=this._layers,i=this._zlevelList,r=i.length,o=this._domRoot,a=null,s=-1;if(n[t])b("ZLevel "+t+" has been used already");else if(function(t){return!!t&&(!!t.__builtin__||"function"==typeof t.resize&&"function"==typeof t.refresh)}(e)){if(r>0&&t>i[0]){for(s=0;s<r-1&&!(i[s]<t&&i[s+1]>t);s++);a=n[i[s]]}if(i.splice(s+1,0,t),n[t]=e,!e.virtual)if(a){var l=a.dom;l.nextSibling?o.insertBefore(e.dom,l.nextSibling):o.appendChild(e.dom)}else o.firstChild?o.insertBefore(e.dom,o.firstChild):o.appendChild(e.dom);e.__painter=this}else b("Layer of zlevel "+t+" is not valid")},t.prototype.eachLayer=function(t,e){for(var n=this._zlevelList,i=0;i<n.length;i++){var r=n[i];t.call(e,this._layers[r],r)}},t.prototype.eachBuiltinLayer=function(t,e){for(var n=this._zlevelList,i=0;i<n.length;i++){var r=n[i],o=this._layers[r];o.__builtin__&&t.call(e,o,r)}},t.prototype.eachOtherLayer=function(t,e){for(var n=this._zlevelList,i=0;i<n.length;i++){var r=n[i],o=this._layers[r];o.__builtin__||t.call(e,o,r)}},t.prototype.getLayers=function(){return this._layers},t.prototype._updateLayerStatus=function(t){function e(t){o&&(o.__endIndex!==t&&(o.__dirty=!0),o.__endIndex=t)}if(this.eachBuiltinLayer((function(t,e){t.__dirty=t.__used=!1})),this._singleCanvas)for(var n=1;n<t.length;n++){if((s=t[n]).zlevel!==t[n-1].zlevel||s.incremental){this._needsManuallyCompositing=!0;break}}var i,r,o=null,a=0;for(r=0;r<t.length;r++){var s,l=(s=t[r]).zlevel,u=void 0;i!==l&&(i=l,a=0),s.incremental?((u=this.getLayer(l+.001,this._needsManuallyCompositing)).incremental=!0,a=1):u=this.getLayer(l+(a>0?Vx:0),this._needsManuallyCompositing),u.__builtin__||b("ZLevel "+l+" has been used by unkown layer "+u.id),u!==o&&(u.__used=!0,u.__startIndex!==r&&(u.__dirty=!0),u.__startIndex=r,u.incremental?u.__drawIndex=-1:u.__drawIndex=r,e(r),o=u),s.__dirty&Kn.REDARAW_BIT&&!s.__inHover&&(u.__dirty=!0,u.incremental&&u.__drawIndex<0&&(u.__drawIndex=r))}e(r),this.eachBuiltinLayer((function(t,e){!t.__used&&t.getElementCount()>0&&(t.__dirty=!0,t.__startIndex=t.__endIndex=t.__drawIndex=0),t.__dirty&&t.__drawIndex<0&&(t.__drawIndex=t.__startIndex)}))},t.prototype.clear=function(){return this.eachBuiltinLayer(this._clearLayer),this},t.prototype._clearLayer=function(t){t.clear()},t.prototype.setBackgroundColor=function(t){this._backgroundColor=t,P(this._layers,(function(t){t.setUnpainted()}))},t.prototype.configLayer=function(t,e){if(e){var n=this._layerConfig;n[t]?S(n[t],e,!0):n[t]=e;for(var i=0;i<this._zlevelList.length;i++){var r=this._zlevelList[i];if(r===t||r===t+Vx)S(this._layers[r],n[t],!0)}}},t.prototype.delLayer=function(t){var e=this._layers,n=this._zlevelList,i=e[t];i&&(i.dom.parentNode.removeChild(i.dom),delete e[t],n.splice(A(n,t),1))},t.prototype.resize=function(t,e){if(this._domRoot.style){var n=this._domRoot;n.style.display="none";var i=this._opts;if(null!=t&&(i.width=t),null!=e&&(i.height=e),t=this._getSize(0),e=this._getSize(1),n.style.display="",this._width!==t||e!==this._height){for(var r in n.style.width=t+"px",n.style.height=e+"px",this._layers)this._layers.hasOwnProperty(r)&&this._layers[r].resize(t,e);this.refresh(!0)}this._width=t,this._height=e}else{if(null==t||null==e)return;this._width=t,this._height=e,this.getLayer(zx).resize(t,e)}return this},t.prototype.clearLayer=function(t){var e=this._layers[t];e&&e.clear()},t.prototype.dispose=function(){this.root.innerHTML="",this.root=this.storage=this._domRoot=this._layers=null},t.prototype.getRenderedCanvas=function(t){if(t=t||{},this._singleCanvas&&!this._compositeManually)return this._layers[314159].dom;var e=new Ex("image",this,t.pixelRatio||this.dpr),n=e.ctx;if(e.initContext(),e.clear(!1,t.backgroundColor||this._backgroundColor),t.pixelRatio<=this.dpr){this.refresh();var i=e.dom.width,r=e.dom.height,o=e.ctx;this.eachLayer((function(t){t.__builtin__?o.drawImage(t.dom,0,0,i,r):t.renderToCanvas&&(e.ctx.save(),t.renderToCanvas(e.ctx),e.ctx.restore())}))}else for(var a={inHover:!1,viewWidth:this._width,viewHeight:this._height},s=this.storage.getDisplayList(!0),l=0,u=s.length;l<u;l++){ty(n,s[l],a,l===u-1)}return e.dom},t.prototype.getWidth=function(){return this._width},t.prototype.getHeight=function(){return this._height},t.prototype._getSize=function(t){var e=this._opts,n=["width","height"][t],i=["clientWidth","clientHeight"][t],r=["paddingLeft","paddingTop"][t],o=["paddingRight","paddingBottom"][t];if(null!=e[n]&&"auto"!==e[n])return parseFloat(e[n]);var a=this.root,s=document.defaultView.getComputedStyle(a);return(a[i]||Fx(s[n])||Fx(a.style[n]))-(Fx(s[r])||0)-(Fx(s[o])||0)|0},t.prototype.pathToImage=function(t,e){e=e||this.dpr;var n=document.createElement("canvas"),i=n.getContext("2d"),r=t.getBoundingRect(),o=t.style,a=o.shadowBlur*e,s=o.shadowOffsetX*e,l=o.shadowOffsetY*e,u=t.hasStroke()?o.lineWidth:0,h=Math.max(u/2,-s+a),c=Math.max(u/2,s+a),p=Math.max(u/2,-l+a),d=Math.max(u/2,l+a),f=r.width+h+c,g=r.height+p+d;n.width=f*e,n.height=g*e,i.scale(e,e),i.clearRect(0,0,f,g),i.dpr=e;var y={x:t.x,y:t.y,scaleX:t.scaleX,scaleY:t.scaleY,rotation:t.rotation,originX:t.originX,originY:t.originY};t.x=h-r.x,t.y=p-r.y,t.rotation=0,t.scaleX=1,t.scaleY=1,t.updateTransform(),t&&ty(i,t,{inHover:!1,viewWidth:this._width,viewHeight:this._height},!0);var v=new Wa({style:{x:0,y:0,image:n}});return T(t,y),v},t}();var Gx=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.hasSymbolVisual=!0,n.legendSymbol="line",n}return n(e,t),e.prototype.getInitialData=function(t){return fm(this.getSource(),this,{useEncodeDefaulter:!0})},e.type="series.line",e.dependencies=["grid","polar"],e.defaultOption={zlevel:0,z:3,coordinateSystem:"cartesian2d",legendHoverLink:!0,clip:!0,label:{position:"top"},endLabel:{show:!1,valueAnimation:!0,distance:8},lineStyle:{width:2,type:"solid"},emphasis:{scale:!0,lineStyle:{width:"bolder"}},step:!1,smooth:!1,smoothMonotone:null,symbol:"emptyCircle",symbolSize:4,symbolRotate:null,showSymbol:!0,showAllSymbol:"auto",connectNulls:!1,sampling:"none",animationEasing:"linear",progressive:0,hoverLayerThreshold:1/0},e}(Rd);function Wx(t,e){var n=t.mapDimensionsAll("defaultedLabel"),i=n.length;if(1===i){var r=Jp(t,e,n[0]);return null!=r?r+"":null}if(i){for(var o=[],a=0;a<n.length;a++)o.push(Jp(t,e,n[a]));return o.join(" ")}}function Ux(t,e){var n=t.mapDimensionsAll("defaultedLabel");if(!V(e))return e+"";for(var i=[],r=0;r<n.length;r++){var o=t.getDimensionInfo(n[r]);o&&i.push(e[o.index])}return i.join(" ")}var Yx=function(t){function e(e,n,i,r){var o=t.call(this)||this;return o.updateData(e,n,i,r),o}return n(e,t),e.prototype._createSymbol=function(t,e,n,i,r){this.removeAll();var o=Eg(t,-1,-1,2,2,null,r);o.attr({z2:100,culling:!0,scaleX:i[0]/2,scaleY:i[1]/2}),o.drift=Xx,this._symbolType=t,this.add(o)},e.prototype.stopSymbolAnimation=function(t){this.childAt(0).stopAnimation(null,t)},e.prototype.getSymbolPath=function(){return this.childAt(0)},e.prototype.highlight=function(){Os(this.childAt(0))},e.prototype.downplay=function(){Rs(this.childAt(0))},e.prototype.setZ=function(t,e){var n=this.childAt(0);n.zlevel=t,n.z=e},e.prototype.setDraggable=function(t){var e=this.childAt(0);e.draggable=t,e.cursor=t?"move":e.cursor},e.prototype.updateData=function(t,n,i,r){this.silent=!1;var o=t.getItemVisual(n,"symbol")||"circle",a=t.hostModel,s=e.getSymbolSize(t,n),l=o!==this._symbolType,u=r&&r.disableAnimation;if(l){var h=t.getItemVisual(n,"symbolKeepAspect");this._createSymbol(o,t,n,s,h)}else{(p=this.childAt(0)).silent=!1;var c={scaleX:s[0]/2,scaleY:s[1]/2};u?p.attr(c):bu(p,c,a,n)}if(this._updateCommon(t,n,s,i,r),l){var p=this.childAt(0);if(!u){c={scaleX:this._sizeX,scaleY:this._sizeY,style:{opacity:p.style.opacity}};p.scaleX=p.scaleY=0,p.style.opacity=0,wu(p,c,a,n)}}u&&this.childAt(0).stopAnimation("remove"),this._seriesModel=a},e.prototype._updateCommon=function(t,e,n,i,r){var o,a,s,l,u,h,c,p,d,f=this.childAt(0),g=t.hostModel;if(i&&(o=i.emphasisItemStyle,a=i.blurItemStyle,s=i.selectItemStyle,l=i.focus,u=i.blurScope,h=i.symbolOffset,c=i.labelStatesModels,p=i.hoverScale,d=i.cursorStyle),!i||t.hasItemOption){var y=i&&i.itemModel?i.itemModel:t.getItemModel(e),v=y.getModel("emphasis");o=v.getModel("itemStyle").getItemStyle(),s=y.getModel(["select","itemStyle"]).getItemStyle(),a=y.getModel(["blur","itemStyle"]).getItemStyle(),l=v.get("focus"),u=v.get("blurScope"),h=y.getShallow("symbolOffset"),c=Gu(y),p=v.getShallow("scale"),d=y.getShallow("cursor")}var m=t.getItemVisual(e,"symbolRotate");f.attr("rotation",(m||0)*Math.PI/180||0),h&&(f.x=Gi(h[0],n[0]),f.y=Gi(h[1],n[1])),d&&f.attr("cursor",d);var _=t.getItemVisual(e,"style"),x=_.fill;if(f instanceof Wa){var b=f.style;f.useStyle(T({image:b.image,x:b.x,y:b.y,width:b.width,height:b.height},_))}else f.__isEmptyBrush?f.useStyle(T({},_)):f.useStyle(_),f.style.decal=null,f.setColor(x,r&&r.symbolInnerColor),f.style.strokeNoScale=!0;var w=t.getItemVisual(e,"liftZ"),S=this._z2;null!=w?null==S&&(this._z2=f.z2,f.z2+=w):null!=S&&(f.z2=S,this._z2=null);var M=r&&r.useNameLabel;Hu(f,c,{labelFetcher:g,labelDataIndex:e,defaultText:function(e){return M?t.getName(e):Wx(t,e)},inheritColor:x,defaultOpacity:_.opacity}),this._sizeX=n[0]/2,this._sizeY=n[1]/2;var C=f.ensureState("emphasis");if(C.style=o,f.ensureState("select").style=s,f.ensureState("blur").style=a,p){var I=Math.max(1.1,3/this._sizeY);C.scaleX=this._sizeX*I,C.scaleY=this._sizeY*I}this.setSymbolScale(1),Ws(this,l,u)},e.prototype.setSymbolScale=function(t){this.scaleX=this.scaleY=t},e.prototype.fadeOut=function(t,e){var n=this.childAt(0),i=this._seriesModel,r=ss(this).dataIndex,o=e&&e.animation;if(this.silent=n.silent=!0,e&&e.fadeLabel){var a=n.getTextContent();a&&Su(a,{style:{opacity:0}},i,{dataIndex:r,removeOpt:o,cb:function(){n.removeTextContent()}})}else n.removeTextContent();Su(n,{style:{opacity:0},scaleX:0,scaleY:0},i,{dataIndex:r,cb:t,removeOpt:o})},e.getSymbolSize=function(t,e){var n=t.getItemVisual(e,"symbolSize");return n instanceof Array?n.slice():[+n,+n]},e}(Pi);function Xx(t,e){this.parent.drift(t,e)}function Zx(t,e,n,i){return e&&!isNaN(e[0])&&!isNaN(e[1])&&!(i.isIgnore&&i.isIgnore(n))&&!(i.clipShape&&!i.clipShape.contain(e[0],e[1]))&&"none"!==t.getItemVisual(n,"symbol")}function jx(t){return null==t||U(t)||(t={isIgnore:t}),t||{}}function qx(t){var e=t.hostModel,n=e.getModel("emphasis");return{emphasisItemStyle:n.getModel("itemStyle").getItemStyle(),blurItemStyle:e.getModel(["blur","itemStyle"]).getItemStyle(),selectItemStyle:e.getModel(["select","itemStyle"]).getItemStyle(),focus:n.get("focus"),blurScope:n.get("blurScope"),symbolRotate:e.get("symbolRotate"),symbolOffset:e.get("symbolOffset"),hoverScale:n.get("scale"),labelStatesModels:Gu(e),cursorStyle:e.get("cursor")}}var Kx=function(){function t(t){this.group=new Pi,this._SymbolCtor=t||Yx}return t.prototype.updateData=function(t,e){e=jx(e);var n=this.group,i=t.hostModel,r=this._data,o=this._SymbolCtor,a=e.disableAnimation,s=qx(t),l={disableAnimation:a},u=e.getSymbolPoint||function(e){return t.getItemLayout(e)};r||n.removeAll(),t.diff(r).add((function(i){var r=u(i);if(Zx(t,r,i,e)){var a=new o(t,i,s,l);a.setPosition(r),t.setItemGraphicEl(i,a),n.add(a)}})).update((function(h,c){var p=r.getItemGraphicEl(c),d=u(h);if(Zx(t,d,h,e)){if(p){p.updateData(t,h,s,l);var f={x:d[0],y:d[1]};a?p.attr(f):bu(p,f,i)}else(p=new o(t,h)).setPosition(d);n.add(p),t.setItemGraphicEl(h,p)}else n.remove(p)})).remove((function(t){var e=r.getItemGraphicEl(t);e&&e.fadeOut((function(){n.remove(e)}))})).execute(),this._getSymbolPoint=u,this._data=t},t.prototype.isPersistent=function(){return!0},t.prototype.updateLayout=function(){var t=this,e=this._data;e&&e.eachItemGraphicEl((function(e,n){var i=t._getSymbolPoint(n);e.setPosition(i),e.markRedraw()}))},t.prototype.incrementalPrepareUpdate=function(t){this._seriesScope=qx(t),this._data=null,this.group.removeAll()},t.prototype.incrementalUpdate=function(t,e,n){function i(t){t.isGroup||(t.incremental=!0,t.ensureState("emphasis").hoverLayer=!0)}n=jx(n);for(var r=t.start;r<t.end;r++){var o=e.getItemLayout(r);if(Zx(e,o,r,n)){var a=new this._SymbolCtor(e,r,this._seriesScope);a.traverse(i),a.setPosition(o),this.group.add(a),e.setItemGraphicEl(r,a)}}},t.prototype.remove=function(t){var e=this.group,n=this._data;n&&t?n.eachItemGraphicEl((function(t){t.fadeOut((function(){e.remove(t)}))})):e.removeAll()},t}();function $x(t,e,n){var i=t.getBaseAxis(),r=t.getOtherAxis(i),o=function(t,e){var n=0,i=t.scale.getExtent();"start"===e?n=i[0]:"end"===e?n=i[1]:i[0]>0?n=i[0]:i[1]<0&&(n=i[1]);return n}(r,n),a=i.dim,s=r.dim,l=e.mapDimension(s),u=e.mapDimension(a),h="x"===s||"radius"===s?1:0,c=O(t.dimensions,(function(t){return e.mapDimension(t)})),p=!1,d=e.getCalculationInfo("stackResultDimension");return pm(e,c[0])&&(p=!0,c[0]=d),pm(e,c[1])&&(p=!0,c[1]=d),{dataDimsForPoint:c,valueStart:o,valueAxisDim:s,baseAxisDim:a,stacked:!!p,valueDim:l,baseDim:u,baseDataOffset:h,stackedOverDimension:e.getCalculationInfo("stackedOverDimension")}}function Jx(t,e,n,i){var r=NaN;t.stacked&&(r=n.get(n.getCalculationInfo("stackedOverDimension"),i)),isNaN(r)&&(r=t.valueStart);var o=t.baseDataOffset,a=[];return a[o]=n.get(t.baseDim,i),a[1-o]=r,e.dataToPoint(a)}var Qx="undefined"!=typeof Float32Array,tb=Qx?Float32Array:Array;function eb(t){return V(t)?Qx?new Float32Array(t):t:new tb(t)}var nb=Math.min,ib=Math.max;function rb(t,e){return isNaN(t)||isNaN(e)}function ob(t,e,n,i,r,o,a,s,l){for(var u,h,c,p,d,f,g=n,y=0;y<i;y++){var v=e[2*g],m=e[2*g+1];if(g>=r||g<0)break;if(rb(v,m)){if(l){g+=o;continue}break}if(g===n)t[o>0?"moveTo":"lineTo"](v,m),c=v,p=m;else{var _=v-u,x=m-h;if(_*_+x*x<.5){g+=o;continue}if(a>0){var b=g+o,w=e[2*b],S=e[2*b+1],M=y+1;if(l)for(;rb(w,S)&&M<i;)M++,w=e[2*(b+=o)],S=e[2*b+1];var T=.5,C=0,I=0,A=void 0,D=void 0;if(M>=i||rb(w,S))d=v,f=m;else{C=w-u,I=S-h;var k=v-u,L=w-v,P=m-h,O=S-m,R=void 0,N=void 0;"x"===s?(R=Math.abs(k),N=Math.abs(L),d=v-R*a,f=m,A=v+R*a,D=m):"y"===s?(R=Math.abs(P),N=Math.abs(O),d=v,f=m-R*a,A=v,D=m+R*a):(R=Math.sqrt(k*k+P*P),d=v-C*a*(1-(T=(N=Math.sqrt(L*L+O*O))/(N+R))),f=m-I*a*(1-T),D=m+I*a*T,A=nb(A=v+C*a*T,ib(w,v)),D=nb(D,ib(S,m)),A=ib(A,nb(w,v)),f=m-(I=(D=ib(D,nb(S,m)))-m)*R/N,d=nb(d=v-(C=A-v)*R/N,ib(u,v)),f=nb(f,ib(h,m)),A=v+(C=v-(d=ib(d,nb(u,v))))*N/R,D=m+(I=m-(f=ib(f,nb(h,m))))*N/R)}t.bezierCurveTo(c,p,d,f,v,m),c=A,p=D}else t.lineTo(v,m)}u=v,h=m,g+=o}return y}var ab=function(){this.smooth=0,this.smoothConstraint=!0},sb=function(t){function e(e){var n=t.call(this,e)||this;return n.type="ec-polyline",n}return n(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new ab},e.prototype.buildPath=function(t,e){var n=e.points,i=0,r=n.length/2;if(e.connectNulls){for(;r>0&&rb(n[2*r-2],n[2*r-1]);r--);for(;i<r&&rb(n[2*i],n[2*i+1]);i++);}for(;i<r;)i+=ob(t,n,i,r,r,1,e.smooth,e.smoothMonotone,e.connectNulls)+1},e.prototype.getPointOn=function(t,e){this.path||(this.createPathProxy(),this.buildPath(this.path,this.shape));for(var n,i,r=this.path.data,o=ma.CMD,a="x"===e,s=[],l=0;l<r.length;){var u=void 0,h=void 0,c=void 0,p=void 0,d=void 0,f=void 0,g=void 0;switch(r[l++]){case o.M:n=r[l++],i=r[l++];break;case o.L:if(u=r[l++],h=r[l++],(g=a?(t-n)/(u-n):(t-i)/(h-i))<=1&&g>=0){var y=a?(h-i)*g+i:(u-n)*g+n;return a?[t,y]:[y,t]}n=u,i=h;break;case o.C:u=r[l++],h=r[l++],c=r[l++],p=r[l++],d=r[l++],f=r[l++];var v=a?Io(n,u,c,d,t,s):Io(i,h,p,f,t,s);if(v>0)for(var m=0;m<v;m++){var _=s[m];if(_<=1&&_>=0){y=a?To(i,h,p,f,_):To(n,u,c,d,_);return a?[t,y]:[y,t]}}n=d,i=f}}},e}(za),lb=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e}(ab),ub=function(t){function e(e){var n=t.call(this,e)||this;return n.type="ec-polygon",n}return n(e,t),e.prototype.getDefaultShape=function(){return new lb},e.prototype.buildPath=function(t,e){var n=e.points,i=e.stackedOnPoints,r=0,o=n.length/2,a=e.smoothMonotone;if(e.connectNulls){for(;o>0&&rb(n[2*o-2],n[2*o-1]);o--);for(;r<o&&rb(n[2*r],n[2*r+1]);r++);}for(;r<o;){var s=ob(t,n,r,o,o,1,e.smooth,a,e.connectNulls);ob(t,i,r+s-1,s,o,-1,e.stackedOnSmooth,a,e.connectNulls),r+=s+1,t.closePath()}},e}(za);function hb(t,e,n,i,r){var o=t.getArea(),a=o.x,s=o.y,l=o.width,u=o.height,h=n.get(["lineStyle","width"])||2;a-=h/2,s-=h/2,l+=h,u+=h,a=Math.floor(a),l=Math.round(l);var c=new Ka({shape:{x:a,y:s,width:l,height:u}});if(e){var p=t.getBaseAxis(),d=p.isHorizontal(),f=p.inverse;d?(f&&(c.shape.x+=l),c.shape.width=0):(f||(c.shape.y+=u),c.shape.height=0),wu(c,{shape:{width:l,height:u,x:a,y:s}},n,null,i,"function"==typeof r?function(t){r(t,c)}:null)}return c}function cb(t,e,n){var i=t.getArea(),r=Wi(i.r0,1),o=Wi(i.r,1),a=new Ll({shape:{cx:Wi(t.cx,1),cy:Wi(t.cy,1),r0:r,r:o,startAngle:i.startAngle,endAngle:i.endAngle,clockwise:i.clockwise}});e&&("angle"===t.getBaseAxis().dim?a.shape.endAngle=i.startAngle:a.shape.r=r,wu(a,{shape:{endAngle:i.endAngle,r:o}},n));return a}function pb(t,e){return t.type===e}function db(t,e){if(t.length===e.length){for(var n=0;n<t.length;n++)if(t[n]!==e[n])return;return!0}}function fb(t){for(var e=1/0,n=1/0,i=-1/0,r=-1/0,o=0;o<t.length;){var a=t[o++],s=t[o++];isNaN(a)||(e=Math.min(a,e),i=Math.max(a,i)),isNaN(s)||(n=Math.min(s,n),r=Math.max(s,r))}return[[e,n],[i,r]]}function gb(t,e){var n=fb(t),i=n[0],r=n[1],o=fb(e),a=o[0],s=o[1];return Math.max(Math.abs(i[0]-a[0]),Math.abs(i[1]-a[1]),Math.abs(r[0]-s[0]),Math.abs(r[1]-s[1]))}function yb(t){return"number"==typeof t?t:t?.5:0}function vb(t,e,n){for(var i=e.getBaseAxis(),r="x"===i.dim||"radius"===i.dim?0:1,o=[],a=0,s=[],l=[],u=[];a<t.length-2;a+=2)switch(u[0]=t[a+2],u[1]=t[a+3],l[0]=t[a],l[1]=t[a+1],o.push(l[0],l[1]),n){case"end":s[r]=u[r],s[1-r]=l[1-r],o.push(s[0],s[1]);break;case"middle":var h=(l[r]+u[r])/2,c=[];s[r]=c[r]=h,s[1-r]=l[1-r],c[1-r]=u[1-r],o.push(s[0],s[1]),o.push(c[0],c[1]);break;default:s[r]=l[r],s[1-r]=u[1-r],o.push(s[0],s[1])}return o.push(t[a++],t[a++]),o}function mb(t,e,n){var i=t.get("showAllSymbol"),r="auto"===i;if(!i||r){var o=n.getAxesByScale("ordinal")[0];if(o&&(!r||!function(t,e){var n=t.getExtent(),i=Math.abs(n[1]-n[0])/t.scale.count();isNaN(i)&&(i=0);for(var r=e.count(),o=Math.max(1,Math.round(r/5)),a=0;a<r;a+=o)if(1.5*Yx.getSymbolSize(e,a)[t.isHorizontal()?1:0]>i)return!1;return!0}(o,e))){var a=e.mapDimension(o.dim),s={};return P(o.getViewLabels(),(function(t){var e=o.scale.getRawOrdinalNumber(t.tickValue);s[e]=1})),function(t){return!s.hasOwnProperty(e.get(a,t))}}}}function _b(t,e){return[t[2*e],t[2*e+1]]}function xb(t,e,n,i){if(pb(e,"cartesian2d")){var r=i.getModel("endLabel"),o=r.get("show"),a=r.get("valueAnimation"),s=i.getData(),l={lastFrameIndex:0},u=o?function(n,i){t._endLabelOnDuring(n,i,s,l,a,r,e)}:null,h=e.getBaseAxis().isHorizontal(),c=hb(e,n,i,(function(){var e=t._endLabel;e&&n&&null!=l.originalX&&e.attr({x:l.originalX,y:l.originalY})}),u);if(!i.get("clip",!0)){var p=c.shape,d=Math.max(p.width,p.height);h?(p.y-=d,p.height+=2*d):(p.x-=d,p.width+=2*d)}return u&&u(1,c),c}return cb(e,n,i)}var bb=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.init=function(){var t=new Pi,e=new Kx;this.group.add(e.group),this._symbolDraw=e,this._lineGroup=t},e.prototype.render=function(t,e,n){var i=this,r=t.coordinateSystem,o=this.group,a=t.getData(),s=t.getModel("lineStyle"),l=t.getModel("areaStyle"),u=a.getLayout("points")||[],h="polar"===r.type,c=this._coordSys,p=this._symbolDraw,d=this._polyline,f=this._polygon,g=this._lineGroup,y=t.get("animation"),v=!l.isEmpty(),m=l.get("origin"),_=$x(r,a,m),x=v&&function(t,e,n){if(!n.valueDim)return[];for(var i=e.count(),r=eb(2*i),o=0;o<i;o++){var a=Jx(n,t,e,o);r[2*o]=a[0],r[2*o+1]=a[1]}return r}(r,a,_),b=t.get("showSymbol"),w=b&&!h&&mb(t,a,r),S=this._data;S&&S.eachItemGraphicEl((function(t,e){t.__temp&&(o.remove(t),S.setItemGraphicEl(e,null))})),b||p.remove(),o.add(g);var M,T=!h&&t.get("step");r&&r.getArea&&t.get("clip",!0)&&(null!=(M=r.getArea()).width?(M.x-=.1,M.y-=.1,M.width+=.2,M.height+=.2):M.r0&&(M.r0-=.5,M.r+=.5)),this._clipShapeForSymbol=M,d&&c.type===r.type&&T===this._step?(v&&!f?f=this._newPolygon(u,x):f&&!v&&(g.remove(f),f=this._polygon=null),h||this._initOrUpdateEndLabel(t,r),g.setClipPath(xb(this,r,!1,t)),b&&p.updateData(a,{isIgnore:w,clipShape:M,disableAnimation:!0,getSymbolPoint:function(t){return[u[2*t],u[2*t+1]]}}),db(this._stackedOnPoints,x)&&db(this._points,u)||(y?this._doUpdateAnimation(a,x,r,n,T,m):(T&&(u=vb(u,r,T),x&&(x=vb(x,r,T))),d.setShape({points:u}),f&&f.setShape({points:u,stackedOnPoints:x})))):(b&&p.updateData(a,{isIgnore:w,clipShape:M,disableAnimation:!0,getSymbolPoint:function(t){return[u[2*t],u[2*t+1]]}}),y&&this._initSymbolLabelAnimation(a,r,M),T&&(u=vb(u,r,T),x&&(x=vb(x,r,T))),d=this._newPolyline(u),v&&(f=this._newPolygon(u,x)),h||this._initOrUpdateEndLabel(t,r),g.setClipPath(xb(this,r,!0,t)));var I=function(t,e){var n=t.getVisual("visualMeta");if(n&&n.length&&t.count()&&"cartesian2d"===e.type){for(var i,r,o=n.length-1;o>=0;o--){var a=n[o].dimension,s=t.dimensions[a],l=t.getDimensionInfo(s);if("x"===(i=l&&l.coordDim)||"y"===i){r=n[o];break}}if(r){var u=e.getAxis(i),h=O(r.stops,(function(t){return{offset:0,coord:u.toGlobalCoord(u.dataToCoord(t.value)),color:t.color}})),c=h.length,p=r.outerColors.slice();c&&h[0].coord>h[c-1].coord&&(h.reverse(),p.reverse());var d=h[0].coord-10,f=h[c-1].coord+10,g=f-d;if(g<.001)return"transparent";P(h,(function(t){t.offset=(t.coord-d)/g})),h.push({offset:c?h[c-1].offset:.5,color:p[1]||"transparent"}),h.unshift({offset:c?h[0].offset:.5,color:p[0]||"transparent"});var y=new $l(0,0,0,0,h,!0);return y[i]=d,y[i+"2"]=f,y}}}(a,r)||a.getVisual("style")[a.getVisual("drawType")],A=t.get(["emphasis","focus"]),D=t.get(["emphasis","blurScope"]);(d.useStyle(C(s.getLineStyle(),{fill:"none",stroke:I,lineJoin:"bevel"})),Xs(d,t,"lineStyle"),d.style.lineWidth>0&&"bolder"===t.get(["emphasis","lineStyle","width"]))&&(d.getState("emphasis").style.lineWidth=d.style.lineWidth+1);ss(d).seriesIndex=t.seriesIndex,Ws(d,A,D);var k=yb(t.get("smooth")),L=t.get("smoothMonotone"),R=t.get("connectNulls");if(d.setShape({smooth:k,smoothMonotone:L,connectNulls:R}),f){var N=a.getCalculationInfo("stackedOnSeries"),E=0;f.useStyle(C(l.getAreaStyle(),{fill:I,opacity:.7,lineJoin:"bevel",decal:a.getVisual("style").decal})),N&&(E=yb(N.get("smooth"))),f.setShape({smooth:k,stackedOnSmooth:E,smoothMonotone:L,connectNulls:R}),Xs(f,t,"areaStyle"),ss(f).seriesIndex=t.seriesIndex,Ws(f,A,D)}var B=function(t){i._changePolyState(t)};a.eachItemGraphicEl((function(t){t&&(t.onHoverStateChange=B)})),this._polyline.onHoverStateChange=B,this._data=a,this._coordSys=r,this._stackedOnPoints=x,this._points=u,this._step=T,this._valueOrigin=m},e.prototype.dispose=function(){},e.prototype.highlight=function(t,e,n,i){var r=t.getData(),o=br(r,i);if(this._changePolyState("emphasis"),!(o instanceof Array)&&null!=o&&o>=0){var a=r.getLayout("points"),s=r.getItemGraphicEl(o);if(!s){var l=a[2*o],u=a[2*o+1];if(isNaN(l)||isNaN(u))return;if(this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(l,u))return;(s=new Yx(r,o)).x=l,s.y=u,s.setZ(t.get("zlevel"),t.get("z")),s.__temp=!0,r.setItemGraphicEl(o,s),s.stopSymbolAnimation(!0),this.group.add(s)}s.highlight()}else Xd.prototype.highlight.call(this,t,e,n,i)},e.prototype.downplay=function(t,e,n,i){var r=t.getData(),o=br(r,i);if(this._changePolyState("normal"),null!=o&&o>=0){var a=r.getItemGraphicEl(o);a&&(a.__temp?(r.setItemGraphicEl(o,null),this.group.remove(a)):a.downplay())}else Xd.prototype.downplay.call(this,t,e,n,i)},e.prototype._changePolyState=function(t){var e=this._polygon;ks(this._polyline,t),e&&ks(e,t)},e.prototype._newPolyline=function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new sb({shape:{points:t},segmentIgnoreThreshold:2,z2:10}),this._lineGroup.add(e),this._polyline=e,e},e.prototype._newPolygon=function(t,e){var n=this._polygon;return n&&this._lineGroup.remove(n),n=new ub({shape:{points:t,stackedOnPoints:e},segmentIgnoreThreshold:2}),this._lineGroup.add(n),this._polygon=n,n},e.prototype._initSymbolLabelAnimation=function(t,e,n){var i,r,o=e.getBaseAxis(),a=o.inverse;"cartesian2d"===e.type?(i=o.isHorizontal(),r=!1):"polar"===e.type&&(i="angle"===o.dim,r=!0);var s=t.hostModel,l=s.get("animationDuration");"function"==typeof l&&(l=l(null));var u=s.get("animationDelay")||0,h="function"==typeof u?u(null):u;t.eachItemGraphicEl((function(t,o){var s=t;if(s){var c=[t.x,t.y],p=void 0,d=void 0,f=void 0;if(r){var g=n,y=e.pointToCoord(c);i?(p=g.startAngle,d=g.endAngle,f=-y[1]/180*Math.PI):(p=g.r0,d=g.r,f=y[0])}else{var v=n;i?(p=v.x,d=v.x+v.width,f=t.x):(p=v.y+v.height,d=v.y,f=t.y)}var m=d===p?0:(f-p)/(d-p);a&&(m=1-m);var _="function"==typeof u?u(o):l*m+h,x=s.getSymbolPath(),b=x.getTextContent();s.attr({scaleX:0,scaleY:0}),s.animateTo({scaleX:1,scaleY:1},{duration:200,delay:_}),b&&b.animateFrom({style:{opacity:0}},{duration:300,delay:_}),x.disableLabelAnimation=!0}}))},e.prototype._initOrUpdateEndLabel=function(t,e){var n=t.getModel("endLabel");if(n.get("show")){var i=t.getData(),r=this._polyline,o=this._endLabel;o||((o=this._endLabel=new Qa({z2:200})).ignoreClip=!0,r.setTextContent(this._endLabel),r.disableLabelAnimation=!0);var a=function(t){for(var e,n,i=t.length/2;i>0&&(e=t[2*i-2],n=t[2*i-1],isNaN(e)||isNaN(n));i--);return i-1}(i.getLayout("points"));a>=0&&(Hu(r,Gu(t,"endLabel"),{labelFetcher:t,labelDataIndex:a,defaultText:function(t,e,n){return null!=n?Ux(i,n):Wx(i,t)},enableTextSetter:!0},function(t,e){var n=e.getBaseAxis(),i=n.isHorizontal(),r=n.inverse,o=i?r?"right":"left":"center",a=i?"middle":r?"top":"bottom";return{normal:{align:t.get("align")||o,verticalAlign:t.get("verticalAlign")||a}}}(n,e)),r.textConfig.position=null)}else this._endLabel&&(this._polyline.removeTextContent(),this._endLabel=null)},e.prototype._endLabelOnDuring=function(t,e,n,i,r,o,a){var s=this._endLabel,l=this._polyline;if(s){t<1&&null==i.originalX&&(i.originalX=s.x,i.originalY=s.y);var u=n.getLayout("points"),h=n.hostModel,c=h.get("connectNulls"),p=o.get("precision"),d=o.get("distance")||0,f=a.getBaseAxis(),g=f.isHorizontal(),y=f.inverse,v=e.shape,m=y?g?v.x:v.y+v.height:g?v.x+v.width:v.y,_=(g?d:0)*(y?-1:1),x=(g?0:-d)*(y?-1:1),b=g?"x":"y",w=function(t,e,n){for(var i,r,o=t.length/2,a="x"===n?0:1,s=0,l=-1,u=0;u<o;u++)if(r=t[2*u+a],!isNaN(r)&&!isNaN(t[2*u+1-a]))if(0!==u){if(i<=e&&r>=e||i>=e&&r<=e){l=u;break}s=u,i=r}else i=r;return{range:[s,l],t:(e-i)/(r-i)}}(u,m,b),S=w.range,M=S[1]-S[0],T=void 0;if(M>=1){if(M>1&&!c){var C=_b(u,S[0]);s.attr({x:C[0]+_,y:C[1]+x}),r&&(T=h.getRawValue(S[0]))}else{(C=l.getPointOn(m,b))&&s.attr({x:C[0]+_,y:C[1]+x});var I=h.getRawValue(S[0]),A=h.getRawValue(S[1]);r&&(T=Dr(n,p,I,A,w.t))}i.lastFrameIndex=S[0]}else{var D=1===t||i.lastFrameIndex>0?S[0]:0;C=_b(u,D);r&&(T=h.getRawValue(D)),s.attr({x:C[0]+_,y:C[1]+x})}r&&qu(s).setLabelText(T)}},e.prototype._doUpdateAnimation=function(t,e,n,i,r,o){var a=this._polyline,s=this._polygon,l=t.hostModel,u=function(t,e,n,i,r,o,a,s){for(var l=function(t,e){var n=[];return e.diff(t).add((function(t){n.push({cmd:"+",idx:t})})).update((function(t,e){n.push({cmd:"=",idx:e,idx1:t})})).remove((function(t){n.push({cmd:"-",idx:t})})).execute(),n}(t,e),u=[],h=[],c=[],p=[],d=[],f=[],g=[],y=$x(r,e,a),v=$x(o,t,s),m=t.getLayout("points")||[],_=e.getLayout("points")||[],x=0;x<l.length;x++){var b=l[x],w=!0,S=void 0,M=void 0;switch(b.cmd){case"=":S=2*b.idx,M=2*b.idx1;var T=m[S],C=m[S+1],I=_[M],A=_[M+1];(isNaN(T)||isNaN(C))&&(T=I,C=A),u.push(T,C),h.push(I,A),c.push(n[S],n[S+1]),p.push(i[M],i[M+1]),g.push(e.getRawIndex(b.idx1));break;case"+":var D=b.idx,k=y.dataDimsForPoint,L=r.dataToPoint([e.get(k[0],D),e.get(k[1],D)]);M=2*D,u.push(L[0],L[1]),h.push(_[M],_[M+1]);var P=Jx(y,r,e,D);c.push(P[0],P[1]),p.push(i[M],i[M+1]),g.push(e.getRawIndex(D));break;case"-":var O=b.idx,R=t.getRawIndex(O),N=v.dataDimsForPoint;if(S=2*O,R!==O){var E=o.dataToPoint([t.get(N[0],O),t.get(N[1],O)]),B=Jx(v,o,t,O);u.push(m[S],m[S+1]),h.push(E[0],E[1]),c.push(n[S],n[S+1]),p.push(B[0],B[1]),g.push(R)}else w=!1}w&&(d.push(b),f.push(f.length))}f.sort((function(t,e){return g[t]-g[e]}));var z=u.length,V=eb(z),F=eb(z),H=eb(z),G=eb(z),W=[];for(x=0;x<f.length;x++){var U=f[x],Y=2*x,X=2*U;V[Y]=u[X],V[Y+1]=u[X+1],F[Y]=h[X],F[Y+1]=h[X+1],H[Y]=c[X],H[Y+1]=c[X+1],G[Y]=p[X],G[Y+1]=p[X+1],W[x]=d[U]}return{current:V,next:F,stackedOnCurrent:H,stackedOnNext:G,status:W}}(this._data,t,this._stackedOnPoints,e,this._coordSys,n,this._valueOrigin,o),h=u.current,c=u.stackedOnCurrent,p=u.next,d=u.stackedOnNext;if(r&&(h=vb(u.current,n,r),c=vb(u.stackedOnCurrent,n,r),p=vb(u.next,n,r),d=vb(u.stackedOnNext,n,r)),gb(h,p)>3e3||s&&gb(c,d)>3e3)return a.setShape({points:p}),void(s&&s.setShape({points:p,stackedOnPoints:d}));a.shape.__points=u.current,a.shape.points=h;var f={shape:{points:p}};u.current!==h&&(f.shape.__points=u.next),a.stopAnimation(),bu(a,f,l),s&&(s.setShape({points:h,stackedOnPoints:c}),s.stopAnimation(),bu(s,{shape:{stackedOnPoints:d}},l),a.shape.points!==s.shape.points&&(s.shape.points=a.shape.points));for(var g=[],y=u.status,v=0;v<y.length;v++){if("="===y[v].cmd){var m=t.getItemGraphicEl(y[v].idx1);m&&g.push({el:m,ptIdx:v})}}a.animators&&a.animators.length&&a.animators[0].during((function(){s&&s.dirtyShape();for(var t=a.shape.__points,e=0;e<g.length;e++){var n=g[e].el,i=2*g[e].ptIdx;n.x=t[i],n.y=t[i+1],n.markRedraw()}}))},e.prototype.remove=function(t){var e=this.group,n=this._data;this._lineGroup.removeAll(),this._symbolDraw.remove(!0),n&&n.eachItemGraphicEl((function(t,i){t.__temp&&(e.remove(t),n.setItemGraphicEl(i,null))})),this._polyline=this._polygon=this._coordSys=this._points=this._stackedOnPoints=this._endLabel=this._data=null},e.type="line",e}(Xd);function wb(t,e){return{seriesType:t,plan:Wd(),reset:function(t){var n=t.getData(),i=t.coordinateSystem,r=t.pipelineContext,o=e||r.large;if(i){var a=O(i.dimensions,(function(t){return n.mapDimension(t)})).slice(0,2),s=a.length,l=n.getCalculationInfo("stackResultDimension");pm(n,a[0])&&(a[0]=l),pm(n,a[1])&&(a[1]=l);var u=n.getDimensionInfo(a[0]),h=n.getDimensionInfo(a[1]),c=u&&u.index,p=h&&h.index;return s&&{progress:function(t,e){for(var n=t.end-t.start,r=o&&eb(n*s),a=[],l=[],u=t.start,h=0;u<t.end;u++){var d=void 0;if(1===s){var f=e.getByDimIdx(c,u);d=i.dataToPoint(f,null,l)}else a[0]=e.getByDimIdx(c,u),a[1]=e.getByDimIdx(p,u),d=i.dataToPoint(a,null,l);o?(r[h++]=d[0],r[h++]=d[1]):e.setItemLayout(u,d.slice())}o&&e.setLayout("points",r)}}}}}}var Sb={average:function(t){for(var e=0,n=0,i=0;i<t.length;i++)isNaN(t[i])||(e+=t[i],n++);return 0===n?NaN:e/n},sum:function(t){for(var e=0,n=0;n<t.length;n++)e+=t[n]||0;return e},max:function(t){for(var e=-1/0,n=0;n<t.length;n++)t[n]>e&&(e=t[n]);return isFinite(e)?e:NaN},min:function(t){for(var e=1/0,n=0;n<t.length;n++)t[n]<e&&(e=t[n]);return isFinite(e)?e:NaN},nearest:function(t){return t[0]}},Mb=function(t){return Math.round(t.length/2)};function Tb(t){return{seriesType:t,reset:function(t,e,n){var i=t.getData(),r=t.get("sampling"),o=t.coordinateSystem,a=i.count();if(a>10&&"cartesian2d"===o.type&&r){var s=o.getBaseAxis(),l=o.getOtherAxis(s),u=s.getExtent(),h=n.getDevicePixelRatio(),c=Math.abs(u[1]-u[0])*(h||1),p=Math.round(a/c);if(p>1){"lttb"===r&&t.setData(i.lttbDownSample(i.mapDimension(l.dim),1/p));var d=void 0;"string"==typeof r?d=Sb[r]:"function"==typeof r&&(d=r),d&&t.setData(i.downSample(i.mapDimension(l.dim),1/p,d,Mb))}}}}}var Cb=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.getInitialData=function(t,e){return fm(this.getSource(),this,{useEncodeDefaulter:!0})},e.prototype.getMarkerPosition=function(t){var e=this.coordinateSystem;if(e){var n=e.dataToPoint(e.clampData(t)),i=this.getData(),r=i.getLayout("offset"),o=i.getLayout("size");return n[e.getBaseAxis().isHorizontal()?0:1]+=r+o/2,n}return[NaN,NaN]},e.type="series.__base_bar__",e.defaultOption={zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:3e3,progressiveChunkMode:"mod"},e}(Rd);Rd.registerClass(Cb);var Ib=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.getInitialData=function(){return fm(this.getSource(),this,{useEncodeDefaulter:!0,createInvertedIndices:!!this.get("realtimeSort",!0)||null})},e.prototype.getProgressive=function(){return!!this.get("large")&&this.get("progressive")},e.prototype.getProgressiveThreshold=function(){var t=this.get("progressiveThreshold"),e=this.get("largeThreshold");return e>t&&(t=e),t},e.prototype.brushSelector=function(t,e,n){return n.rect(e.getItemLayout(t))},e.type="series.bar",e.dependencies=["grid","polar"],e.defaultOption=hh(Cb.defaultOption,{clip:!0,roundCap:!1,showBackground:!1,backgroundStyle:{color:"rgba(180, 180, 180, 0.2)",borderColor:null,borderWidth:0,borderType:"solid",borderRadius:0,shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0,opacity:1},select:{itemStyle:{borderColor:"#212121"}},realtimeSort:!1}),e}(Cb),Ab=function(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0},Db=function(t){function e(e){var n=t.call(this,e)||this;return n.type="sausage",n}return n(e,t),e.prototype.getDefaultShape=function(){return new Ab},e.prototype.buildPath=function(t,e){var n=e.cx,i=e.cy,r=Math.max(e.r0||0,0),o=Math.max(e.r,0),a=.5*(o-r),s=r+a,l=e.startAngle,u=e.endAngle,h=e.clockwise,c=Math.cos(l),p=Math.sin(l),d=Math.cos(u),f=Math.sin(u);(h?u-l<2*Math.PI:l-u<2*Math.PI)&&(t.moveTo(c*r+n,p*r+i),t.arc(c*s+n,p*s+i,a,-Math.PI+l,l,!h)),t.arc(n,i,o,l,u,!h),t.moveTo(d*o+n,f*o+i),t.arc(d*s+n,f*s+i,a,u-2*Math.PI,u-Math.PI,!h),0!==r&&(t.arc(n,i,r,u,l,h),t.moveTo(c*r+n,f*r+i)),t.closePath()},e}(za),kb=["itemStyle","borderWidth"],Lb=["itemStyle","borderRadius"],Pb=[0,0],Ob=Math.max,Rb=Math.min;var Nb=function(t){function e(){var n=t.call(this)||this;return n.type=e.type,n._isFirstFrame=!0,n}return n(e,t),e.prototype.render=function(t,e,n,i){this._model=t,this._removeOnRenderedListener(n),this._updateDrawMode(t);var r=t.get("coordinateSystem");("cartesian2d"===r||"polar"===r)&&(this._isLargeDraw?this._renderLarge(t,e,n):this._renderNormal(t,e,n,i))},e.prototype.incrementalPrepareRender=function(t){this._clear(),this._updateDrawMode(t),this._updateLargeClip(t)},e.prototype.incrementalRender=function(t,e){this._incrementalRenderLarge(t,e)},e.prototype._updateDrawMode=function(t){var e=t.pipelineContext.large;null!=this._isLargeDraw&&e===this._isLargeDraw||(this._isLargeDraw=e,this._clear())},e.prototype._renderNormal=function(t,e,n,i){var r,o=this.group,a=t.getData(),s=this._data,l=t.coordinateSystem,u=l.getBaseAxis();"cartesian2d"===l.type?r=u.isHorizontal():"polar"===l.type&&(r="angle"===u.dim);var h=t.isAnimationEnabled()?t:null,c=function(t,e){var n=t.get("realtimeSort",!0),i=e.getBaseAxis();0;if(n&&"category"===i.type&&"cartesian2d"===e.type)return{baseAxis:i,otherAxis:e.getOtherAxis(i)}}(t,l);c&&this._enableRealtimeSort(c,a,n);var p=t.get("clip",!0)||c,d=function(t,e){var n=t.getArea&&t.getArea();if(pb(t,"cartesian2d")){var i=t.getBaseAxis();if("category"!==i.type||!i.onBand){var r=e.getLayout("bandWidth");i.isHorizontal()?(n.x-=r,n.width+=2*r):(n.y-=r,n.height+=2*r)}}return n}(l,a);o.removeClipPath();var f=t.get("roundCap",!0),g=t.get("showBackground",!0),y=t.getModel("backgroundStyle"),v=y.get("borderRadius")||0,m=[],_=this._backgroundEls,x=i&&i.isInitSort,b=i&&"changeAxisOrder"===i.type;function w(t){var e=Vb[l.type](a,t),n=function(t,e,n){return new("polar"===t.type?Ll:Ka)({shape:Yb(e,n,t),silent:!0,z2:0})}(l,r,e);return n.useStyle(y.getItemStyle()),"cartesian2d"===l.type&&n.setShape("r",v),m[t]=n,n}a.diff(s).add((function(e){var n=a.getItemModel(e),i=Vb[l.type](a,e,n);if(g&&w(e),a.hasValue(e)){var s=!1;p&&(s=Eb[l.type](d,i));var y=Bb[l.type](t,a,e,i,r,h,u.model,!1,f);Fb(y,a,e,n,i,t,r,"polar"===l.type),x?y.attr({shape:i}):c?zb(c,h,y,i,e,r,!1,!1):wu(y,{shape:i},t,e),a.setItemGraphicEl(e,y),o.add(y),y.ignore=s}})).update((function(e,n){var i=a.getItemModel(e),S=Vb[l.type](a,e,i);if(g){var M=void 0;0===_.length?M=w(n):((M=_[n]).useStyle(y.getItemStyle()),"cartesian2d"===l.type&&M.setShape("r",v),m[e]=M);var T=Vb[l.type](a,e);bu(M,{shape:Yb(r,T,l)},h,e)}var C=s.getItemGraphicEl(n);if(!a.hasValue(e))return o.remove(C),void(C=null);var I=!1;p&&(I=Eb[l.type](d,S))&&o.remove(C),C||(C=Bb[l.type](t,a,e,S,r,h,u.model,!!C,f)),b||Fb(C,a,e,i,S,t,r,"polar"===l.type),x?C.attr({shape:S}):c?zb(c,h,C,S,e,r,!0,b):bu(C,{shape:S},t,e,null),a.setItemGraphicEl(e,C),C.ignore=I,o.add(C)})).remove((function(e){var n=s.getItemGraphicEl(e);n&&Tu(n,t,e)})).execute();var S=this._backgroundGroup||(this._backgroundGroup=new Pi);S.removeAll();for(var M=0;M<m.length;++M)S.add(m[M]);o.add(S),this._backgroundEls=m,this._data=a},e.prototype._renderLarge=function(t,e,n){this._clear(),Wb(t,this.group),this._updateLargeClip(t)},e.prototype._incrementalRenderLarge=function(t,e){this._removeBackground(),Wb(e,this.group,!0)},e.prototype._updateLargeClip=function(t){var e=t.get("clip",!0)?function(t,e,n,i,r){return t?"polar"===t.type?cb(t,e,n):"cartesian2d"===t.type?hb(t,e,n,i,r):null:null}(t.coordinateSystem,!1,t):null;e?this.group.setClipPath(e):this.group.removeClipPath()},e.prototype._enableRealtimeSort=function(t,e,n){var i=this;if(e.count()){var r=t.baseAxis;if(this._isFirstFrame)this._dispatchInitSort(e,t,n),this._isFirstFrame=!1;else{var o=function(t){var n=e.getItemGraphicEl(t);if(n){var i=n.shape;return(r.isHorizontal()?Math.abs(i.height):Math.abs(i.width))||0}return 0};this._onRendered=function(){i._updateSortWithinSameData(e,o,r,n)},n.getZr().on("rendered",this._onRendered)}}},e.prototype._dataSort=function(t,e,n){var i=[];return t.each(t.mapDimension(e.dim),(function(t,e){var r=n(e);r=null==r?NaN:r,i.push({dataIndex:e,mappedValue:r,ordinalNumber:t})})),i.sort((function(t,e){return e.mappedValue-t.mappedValue})),{ordinalNumbers:O(i,(function(t){return t.ordinalNumber}))}},e.prototype._isOrderChangedWithinSameData=function(t,e,n){for(var i=n.scale,r=t.mapDimension(n.dim),o=Number.MAX_VALUE,a=0,s=i.getOrdinalMeta().categories.length;a<s;++a){var l=t.rawIndexOf(r,i.getRawOrdinalNumber(a)),u=l<0?Number.MIN_VALUE:e(t.indexOfRawIndex(l));if(u>o)return!0;o=u}return!1},e.prototype._isOrderDifferentInView=function(t,e){for(var n=e.scale,i=n.getExtent(),r=Math.max(0,i[0]),o=Math.min(i[1],n.getOrdinalMeta().categories.length-1);r<=o;++r)if(t.ordinalNumbers[r]!==n.getRawOrdinalNumber(r))return!0},e.prototype._updateSortWithinSameData=function(t,e,n,i){if(this._isOrderChangedWithinSameData(t,e,n)){var r=this._dataSort(t,n,e);this._isOrderDifferentInView(r,n)&&(this._removeOnRenderedListener(i),i.dispatchAction({type:"changeAxisOrder",componentType:n.dim+"Axis",axisId:n.index,sortInfo:r}))}},e.prototype._dispatchInitSort=function(t,e,n){var i=e.baseAxis,r=this._dataSort(t,i,(function(n){return t.get(t.mapDimension(e.otherAxis.dim),n)}));n.dispatchAction({type:"changeAxisOrder",componentType:i.dim+"Axis",isInitSort:!0,axisId:i.index,sortInfo:r,animation:{duration:0}})},e.prototype.remove=function(t,e){this._clear(this._model),this._removeOnRenderedListener(e)},e.prototype.dispose=function(t,e){this._removeOnRenderedListener(e)},e.prototype._removeOnRenderedListener=function(t){this._onRendered&&(t.getZr().off("rendered",this._onRendered),this._onRendered=null)},e.prototype._clear=function(t){var e=this.group,n=this._data;t&&t.isAnimationEnabled()&&n&&!this._isLargeDraw?(this._removeBackground(),this._backgroundEls=[],n.eachItemGraphicEl((function(e){Tu(e,t,ss(e).dataIndex)}))):e.removeAll(),this._data=null,this._isFirstFrame=!0},e.prototype._removeBackground=function(){this.group.remove(this._backgroundGroup),this._backgroundGroup=null},e.type="bar",e}(Xd),Eb={cartesian2d:function(t,e){var n=e.width<0?-1:1,i=e.height<0?-1:1;n<0&&(e.x+=e.width,e.width=-e.width),i<0&&(e.y+=e.height,e.height=-e.height);var r=t.x+t.width,o=t.y+t.height,a=Ob(e.x,t.x),s=Rb(e.x+e.width,r),l=Ob(e.y,t.y),u=Rb(e.y+e.height,o),h=s<a,c=u<l;return e.x=h&&a>r?s:a,e.y=c&&l>o?u:l,e.width=h?0:s-a,e.height=c?0:u-l,n<0&&(e.x+=e.width,e.width=-e.width),i<0&&(e.y+=e.height,e.height=-e.height),h||c},polar:function(t,e){var n=e.r0<=e.r?1:-1;if(n<0){var i=e.r;e.r=e.r0,e.r0=i}var r=Rb(e.r,t.r),o=Ob(e.r0,t.r0);e.r=r,e.r0=o;var a=r-o<0;if(n<0){i=e.r;e.r=e.r0,e.r0=i}return a}},Bb={cartesian2d:function(t,e,n,i,r,o,a,s,l){var u=new Ka({shape:T({},i),z2:1});(u.__dataIndex=n,u.name="item",o)&&(u.shape[r?"height":"width"]=0);return u},polar:function(t,e,n,i,r,o,a,s,l){var u=i.startAngle<i.endAngle,h=new(!r&&l?Db:Ll)({shape:C({clockwise:u},i),z2:1});if(h.name="item",o){var c=r?"r":"endAngle",p={};h.shape[c]=r?0:i.startAngle,p[c]=i[c],(s?bu:wu)(h,{shape:p},o)}return h}};function zb(t,e,n,i,r,o,a,s){var l,u;o?(u={x:i.x,width:i.width},l={y:i.y,height:i.height}):(u={y:i.y,height:i.height},l={x:i.x,width:i.width}),s||(a?bu:wu)(n,{shape:l},e,r,null),(a?bu:wu)(n,{shape:u},e?t.baseAxis.model:null,r)}var Vb={cartesian2d:function(t,e,n){var i=t.getItemLayout(e),r=n?function(t,e){var n=t.get(kb)||0,i=isNaN(e.width)?Number.MAX_VALUE:Math.abs(e.width),r=isNaN(e.height)?Number.MAX_VALUE:Math.abs(e.height);return Math.min(n,i,r)}(n,i):0,o=i.width>0?1:-1,a=i.height>0?1:-1;return{x:i.x+o*r/2,y:i.y+a*r/2,width:i.width-o*r,height:i.height-a*r}},polar:function(t,e,n){var i=t.getItemLayout(e);return{cx:i.cx,cy:i.cy,r0:i.r0,r:i.r,startAngle:i.startAngle,endAngle:i.endAngle}}};function Fb(t,e,n,i,r,o,a,s){var l=e.getItemVisual(n,"style");s||t.setShape("r",i.get(Lb)||0),t.useStyle(l);var u=i.getShallow("cursor");if(u&&t.attr("cursor",u),!s){var h=a?r.height>0?"bottom":"top":r.width>0?"left":"right",c=Gu(i);Hu(t,c,{labelFetcher:o,labelDataIndex:n,defaultText:Wx(o.getData(),n),inheritColor:l.fill,defaultOpacity:l.opacity,defaultOutsidePosition:h}),function(t,e,n,i){if(t){var r=qu(t);r.prevValue=r.value,r.value=n;var o=e.normal;r.valueAnimation=o.get("valueAnimation"),r.valueAnimation&&(r.precision=o.get("precision"),r.defaultInterpolatedText=i,r.statesModels=e)}}(t.getTextContent(),c,o.getRawValue(n),(function(t){return Ux(e,t)}))}var p=i.getModel(["emphasis"]);Ws(t,p.get("focus"),p.get("blurScope")),Xs(t,i),function(t){return null!=t.startAngle&&null!=t.endAngle&&t.startAngle===t.endAngle}(r)&&(t.style.fill="none",t.style.stroke="none",P(t.states,(function(t){t.style&&(t.style.fill=t.style.stroke="none")})))}var Hb=function(){},Gb=function(t){function e(e){var n=t.call(this,e)||this;return n.type="largeBar",n}return n(e,t),e.prototype.getDefaultShape=function(){return new Hb},e.prototype.buildPath=function(t,e){for(var n=e.points,i=this.__startPoint,r=this.__baseDimIdx,o=0;o<n.length;o+=2)i[r]=n[o+r],t.moveTo(i[0],i[1]),t.lineTo(n[o],n[o+1])},e}(za);function Wb(t,e,n){var i=t.getData(),r=[],o=i.getLayout("valueAxisHorizontal")?1:0;r[1-o]=i.getLayout("valueAxisStart");var a=i.getLayout("largeDataIndices"),s=i.getLayout("barWidth"),l=t.getModel("backgroundStyle");if(t.get("showBackground",!0)){var u=i.getLayout("largeBackgroundPoints"),h=[];h[1-o]=i.getLayout("backgroundStart");var c=new Gb({shape:{points:u},incremental:!!n,silent:!0,z2:0});c.__startPoint=h,c.__baseDimIdx=o,c.__largeDataIndices=a,c.__barWidth=s,function(t,e,n){var i=e.get("borderColor")||e.get("color"),r=e.getItemStyle();t.useStyle(r),t.style.fill=null,t.style.stroke=i,t.style.lineWidth=n.getLayout("barWidth")}(c,l,i),e.add(c)}var p=new Gb({shape:{points:i.getLayout("largePoints")},incremental:!!n});p.__startPoint=r,p.__baseDimIdx=o,p.__largeDataIndices=a,p.__barWidth=s,e.add(p),function(t,e,n){var i=n.getVisual("style");t.useStyle(T({},i)),t.style.fill=null,t.style.stroke=i.fill,t.style.lineWidth=n.getLayout("barWidth")}(p,0,i),ss(p).seriesIndex=t.seriesIndex,t.get("silent")||(p.on("mousedown",Ub),p.on("mousemove",Ub))}var Ub=ef((function(t){var e=function(t,e,n){var i=t.__baseDimIdx,r=1-i,o=t.shape.points,a=t.__largeDataIndices,s=Math.abs(t.__barWidth/2),l=t.__startPoint[r];Pb[0]=e,Pb[1]=n;for(var u=Pb[i],h=Pb[1-i],c=u-s,p=u+s,d=0,f=o.length/2;d<f;d++){var g=2*d,y=o[g+i],v=o[g+r];if(y>=c&&y<=p&&(l<=v?h>=l&&h<=v:h>=v&&h<=l))return a[d]}return-1}(this,t.offsetX,t.offsetY);ss(this).dataIndex=e>=0?e:null}),30,!1);function Yb(t,e,n){if(pb(n,"cartesian2d")){var i=e,r=n.getArea();return{x:t?i.x:r.x,y:t?r.y:i.y,width:t?i.width:r.width,height:t?r.height:i.height}}var o=e;return{cx:(r=n.getArea()).cx,cy:r.cy,r0:t?r.r0:o.r0,r:t?r.r:o.r,startAngle:t?o.startAngle:0,endAngle:t?o.endAngle:2*Math.PI}}var Xb=2*Math.PI,Zb=Math.PI/180;function jb(t,e,n){e.eachSeriesByType(t,(function(t){var e=t.getData(),i=e.mapDimension("value"),r=function(t,e){return pc(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}(t,n),o=t.get("center"),a=t.get("radius");V(a)||(a=[0,a]),V(o)||(o=[o,o]);var s=Gi(r.width,n.getWidth()),l=Gi(r.height,n.getHeight()),u=Math.min(s,l),h=Gi(o[0],s)+r.x,c=Gi(o[1],l)+r.y,p=Gi(a[0],u/2),d=Gi(a[1],u/2),f=-t.get("startAngle")*Zb,g=t.get("minAngle")*Zb,y=0;e.each(i,(function(t){!isNaN(t)&&y++}));var v=e.getSum(i),m=Math.PI/(v||y)*2,_=t.get("clockwise"),x=t.get("roseType"),b=t.get("stillShowZeroSum"),w=e.getDataExtent(i);w[0]=0;var S=Xb,M=0,T=f,C=_?1:-1;if(e.setLayout({viewRect:r,r:d}),e.each(i,(function(t,n){var i;if(isNaN(t))e.setItemLayout(n,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:_,cx:h,cy:c,r0:p,r:x?NaN:d});else{(i="area"!==x?0===v&&b?m:t*m:Xb/y)<g?(i=g,S-=g):M+=t;var r=T+C*i;e.setItemLayout(n,{angle:i,startAngle:T,endAngle:r,clockwise:_,cx:h,cy:c,r0:p,r:x?Hi(t,w,[p,d]):d}),T=r}})),S<Xb&&y)if(S<=.001){var I=Xb/y;e.each(i,(function(t,n){if(!isNaN(t)){var i=e.getItemLayout(n);i.angle=I,i.startAngle=f+C*n*I,i.endAngle=f+C*(n+1)*I}}))}else m=S/M,T=f,e.each(i,(function(t,n){if(!isNaN(t)){var i=e.getItemLayout(n),r=i.angle===g?g:t*m;i.startAngle=T,i.endAngle=T+C*r,T+=C*r}}))}))}var qb=Math.PI/180;function Kb(t,e,n,i,r,o,a,s,l,u){if(!(t.length<2)){for(var h=t.length,c=0;c<h;c++)if("outer"===t[c].position&&"labelLine"===t[c].labelAlignTo){var p=t[c].label.x-u;t[c].linePoints[1][0]+=p,t[c].label.x=u}fg(t,l,l+a)&&function(t){for(var o={list:[],maxY:0},a={list:[],maxY:0},s=0;s<t.length;s++)if("none"===t[s].labelAlignTo){var l=t[s],u=l.label.y>n?a:o,h=Math.abs(l.label.y-n);if(h>u.maxY){var c=l.label.x-e-l.len2*r,p=i+l.len,f=c<p?Math.sqrt(h*h/(1-c*c/p/p)):p;u.rB=f,u.maxY=h}u.list.push(l)}d(o),d(a)}(t)}function d(t){for(var o=t.rB,a=o*o,s=0;s<t.list.length;s++){var l=t.list[s],u=Math.abs(l.label.y-n),h=i+l.len,c=h*h,p=Math.sqrt((1-Math.abs(u*u/a))*c);l.label.x=e+(p+l.len2)*r}}}function $b(t){return"center"===t.position}function Jb(t){var e,n,i=t.getData(),r=[],o=!1,a=(t.get("minShowLabelAngle")||0)*qb,s=i.getLayout("viewRect"),l=i.getLayout("r"),u=s.width,h=s.x,c=s.y,p=s.height;function d(t){t.ignore=!0}i.each((function(t){var s=i.getItemGraphicEl(t),c=s.shape,p=s.getTextContent(),f=s.getTextGuideLine(),g=i.getItemModel(t),y=g.getModel("label"),v=y.get("position")||g.get(["emphasis","label","position"]),m=y.get("distanceToLabelLine"),_=y.get("alignTo"),x=Gi(y.get("edgeDistance"),u),b=y.get("bleedMargin"),w=g.getModel("labelLine"),S=w.get("length");S=Gi(S,u);var M=w.get("length2");if(M=Gi(M,u),Math.abs(c.endAngle-c.startAngle)<a)return P(p.states,d),void(p.ignore=!0);if(function(t){if(!t.ignore)return!0;for(var e in t.states)if(!1===t.states[e].ignore)return!0;return!1}(p)){var T,C,I,A,D=(c.startAngle+c.endAngle)/2,k=Math.cos(D),L=Math.sin(D);e=c.cx,n=c.cy;var O,R="inside"===v||"inner"===v;if("center"===v)T=c.cx,C=c.cy,A="center";else{var N=(R?(c.r+c.r0)/2*k:c.r*k)+e,E=(R?(c.r+c.r0)/2*L:c.r*L)+n;if(T=N+3*k,C=E+3*L,!R){var B=N+k*(S+l-c.r),z=E+L*(S+l-c.r),V=B+(k<0?-1:1)*M;T="edge"===_?k<0?h+x:h+u-x:V+(k<0?-m:m),C=z,I=[[N,E],[B,z],[V,z]]}A=R?"center":"edge"===_?k>0?"right":"left":k>0?"left":"right"}var F=y.get("rotate");if(O="number"==typeof F?F*(Math.PI/180):F?k<0?-D+Math.PI:-D:0,o=!!O,p.x=T,p.y=C,p.rotation=O,p.setStyle({verticalAlign:"middle"}),R){p.setStyle({align:A});var H=p.states.select;H&&(H.x+=p.x,H.y+=p.y)}else{var G=p.getBoundingRect().clone();G.applyTransform(p.getComputedTransform());var W=(p.style.margin||0)+2.1;G.y-=W/2,G.height+=W,r.push({label:p,labelLine:f,position:v,len:S,len2:M,minTurnAngle:w.get("minTurnAngle"),maxSurfaceAngle:w.get("maxSurfaceAngle"),surfaceNormal:new xn(k,L),linePoints:I,textAlign:A,labelDistance:m,labelAlignTo:_,edgeDistance:x,bleedMargin:b,rect:G})}s.setTextConfig({inside:R})}})),!o&&t.get("avoidLabelOverlap")&&function(t,e,n,i,r,o,a,s){for(var l=[],u=[],h=Number.MAX_VALUE,c=-Number.MAX_VALUE,p=0;p<t.length;p++){var d=t[p].label;$b(t[p])||(d.x<e?(h=Math.min(h,d.x),l.push(t[p])):(c=Math.max(c,d.x),u.push(t[p])))}for(Kb(u,e,n,i,1,0,o,0,s,c),Kb(l,e,n,i,-1,0,o,0,s,h),p=0;p<t.length;p++){var f=t[p];if(d=f.label,!$b(f)){var g=f.linePoints;if(g){var y="edge"===f.labelAlignTo,v=f.rect.width,m=void 0;(m=y?d.x<e?g[2][0]-f.labelDistance-a-f.edgeDistance:a+r-f.edgeDistance-g[2][0]-f.labelDistance:d.x<e?d.x-a-f.bleedMargin:a+r-d.x-f.bleedMargin)<f.rect.width&&(f.label.style.width=m,"edge"===f.labelAlignTo&&(v=m));var _=g[1][0]-g[2][0];y?d.x<e?g[2][0]=a+f.edgeDistance+v+f.labelDistance:g[2][0]=a+r-f.edgeDistance-v-f.labelDistance:(d.x<e?g[2][0]=d.x+f.labelDistance:g[2][0]=d.x-f.labelDistance,g[1][0]=g[2][0]+_),g[1][1]=g[2][1]=d.y}}}}(r,e,n,l,u,p,h,c);for(var f=0;f<r.length;f++){var g=r[f],y=g.label,v=g.labelLine,m=isNaN(y.x)||isNaN(y.y);if(y){y.setStyle({align:g.textAlign}),m&&(P(y.states,d),y.ignore=!0);var _=y.states.select;_&&(_.x+=y.x,_.y+=y.y)}if(v){var x=g.linePoints;m||!x?(P(v.states,d),v.ignore=!0):(sg(x,g.minTurnAngle),lg(x,g.surfaceNormal,g.maxSurfaceAngle),v.setShape({points:x}),y.__hostTarget.textGuideLineConfig={anchor:new xn(x[0][0],x[0][1])})}}}function Qb(t,e){var n=t.get("borderRadius");return null==n?null:(V(n)||(n=[n,n]),{innerCornerRadius:Vn(n[0],e.r0),cornerRadius:Vn(n[1],e.r)})}var tw=function(t){function e(e,n,i){var r=t.call(this)||this;r.z2=2;var o=new Vl,a=new Qa;return r.setTextGuideLine(o),r.setTextContent(a),r.updateData(e,n,i,!0),r}return n(e,t),e.prototype.updateData=function(t,e,n,r){var o=this,a=t.hostModel,s=t.getItemModel(e),l=s.getModel("emphasis"),u=t.getItemLayout(e),h=T(Qb(s.getModel("itemStyle"),u)||{},u);r?(o.setShape(h),"scale"===a.getShallow("animationType")?(o.shape.r=u.r0,wu(o,{shape:{r:u.r}},a,e)):null!=n?(o.setShape({startAngle:n,endAngle:n}),wu(o,{shape:{startAngle:u.startAngle,endAngle:u.endAngle}},a,e)):(o.shape.endAngle=u.startAngle,bu(o,{shape:{endAngle:u.endAngle}},a,e))):bu(o,{shape:h},a,e);o.useStyle(t.getItemVisual(e,"style")),Xs(o,s);var c=(u.startAngle+u.endAngle)/2,p=a.get("selectedOffset"),d=Math.cos(c)*p,f=Math.sin(c)*p,g=s.getShallow("cursor");g&&o.attr("cursor",g),this._updateLabel(a,t,e),o.ensureState("emphasis").shape=i({r:u.r+(l.get("scale")&&l.get("scaleSize")||0)},Qb(l.getModel("itemStyle"),u)),T(o.ensureState("select"),{x:d,y:f,shape:Qb(s.getModel(["select","itemStyle"]),u)}),T(o.ensureState("blur"),{shape:Qb(s.getModel(["blur","itemStyle"]),u)});var y=o.getTextGuideLine(),v=o.getTextContent();T(y.ensureState("select"),{x:d,y:f}),T(v.ensureState("select"),{x:d,y:f}),Ws(this,l.get("focus"),l.get("blurScope"))},e.prototype._updateLabel=function(t,e,n){var i=this,r=e.getItemModel(n),o=r.getModel("labelLine"),a=e.getItemVisual(n,"style"),s=a&&a.fill,l=a&&a.opacity;Hu(i,Gu(r),{labelFetcher:e.hostModel,labelDataIndex:n,inheritColor:s,defaultOpacity:l,defaultText:t.getFormattedLabel(n,"normal")||e.getName(n)});var u=i.getTextContent();i.setTextConfig({position:null,rotation:null}),u.attr({z2:10}),cg(this,pg(r),{stroke:s,opacity:tt(o.get(["lineStyle","opacity"]),l,1)})},e}(Ll),ew=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.ignoreLabelLineUpdate=!0,e}return n(e,t),e.prototype.init=function(){var t=new Pi;this._sectorGroup=t},e.prototype.render=function(t,e,n,i){var r,o=t.getData(),a=this._data,s=this.group;if(!a&&o.count()>0){for(var l=o.getItemLayout(0),u=1;isNaN(l&&l.startAngle)&&u<o.count();++u)l=o.getItemLayout(u);l&&(r=l.startAngle)}o.diff(a).add((function(t){var e=new tw(o,t,r);o.setItemGraphicEl(t,e),s.add(e)})).update((function(t,e){var n=a.getItemGraphicEl(e);n.updateData(o,t,r),n.off("click"),s.add(n),o.setItemGraphicEl(t,n)})).remove((function(e){Tu(a.getItemGraphicEl(e),t,e)})).execute(),Jb(t),"expansion"!==t.get("animationTypeUpdate")&&(this._data=o)},e.prototype.dispose=function(){},e.prototype.containPoint=function(t,e){var n=e.getData().getItemLayout(0);if(n){var i=t[0]-n.cx,r=t[1]-n.cy,o=Math.sqrt(i*i+r*r);return o<=n.r&&o>=n.r0}},e.type="pie",e}(Xd);var nw=function(){function t(t,e){this._getDataWithEncodedVisual=t,this._getRawData=e}return t.prototype.getAllNames=function(){var t=this._getRawData();return t.mapArray(t.getName)},t.prototype.containName=function(t){return this._getRawData().indexOfName(t)>=0},t.prototype.indexOfName=function(t){return this._getDataWithEncodedVisual().indexOfName(t)},t.prototype.getItemVisual=function(t,e){return this._getDataWithEncodedVisual().getItemVisual(t,e)},t}(),iw=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.useColorPaletteOnData=!0,e}return n(e,t),e.prototype.init=function(e){t.prototype.init.apply(this,arguments),this.legendVisualProvider=new nw(B(this.getData,this),B(this.getRawData,this)),this._defaultLabelLine(e)},e.prototype.mergeOption=function(){t.prototype.mergeOption.apply(this,arguments)},e.prototype.getInitialData=function(){return function(t,e,n){e=V(e)&&{coordDimensions:e}||T({},e);var i=t.getSource(),r=sm(i,e),o=new rm(r,t);return o.initData(i,n),o}(this,{coordDimensions:["value"],encodeDefaulter:z(Bc,this)})},e.prototype.getDataParams=function(e){var n=this.getData(),i=t.prototype.getDataParams.call(this,e),r=[];return n.each(n.mapDimension("value"),(function(t){r.push(t)})),i.percent=ji(r,e,n.hostModel.get("percentPrecision")),i.$vars.push("percent"),i},e.prototype._defaultLabelLine=function(t){pr(t,"labelLine",["show"]);var e=t.labelLine,n=t.emphasis.labelLine;e.show=e.show&&t.label.show,n.show=n.show&&t.emphasis.label.show},e.type="series.pie",e.defaultOption={zlevel:0,z:2,legendHoverLink:!0,center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,minShowLabelAngle:0,selectedOffset:10,percentPrecision:2,stillShowZeroSum:!0,left:0,top:0,right:0,bottom:0,width:null,height:null,label:{rotate:0,show:!0,overflow:"truncate",position:"outer",alignTo:"none",edgeDistance:"25%",bleedMargin:10,distanceToLabelLine:5},labelLine:{show:!0,length:15,length2:15,smooth:!1,minTurnAngle:90,maxSurfaceAngle:90,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1},labelLayout:{hideOverlap:!0},emphasis:{scale:!0,scaleSize:5},avoidLabelOverlap:!0,animationType:"expansion",animationDuration:1e3,animationTypeUpdate:"transition",animationEasingUpdate:"cubicInOut",animationDurationUpdate:500,animationEasing:"cubicInOut"},e}(Rd);var rw=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.hasSymbolVisual=!0,n}return n(e,t),e.prototype.getInitialData=function(t,e){return fm(this.getSource(),this,{useEncodeDefaulter:!0})},e.prototype.getProgressive=function(){var t=this.option.progressive;return null==t?this.option.large?5e3:this.get("progressive"):t},e.prototype.getProgressiveThreshold=function(){var t=this.option.progressiveThreshold;return null==t?this.option.large?1e4:this.get("progressiveThreshold"):t},e.prototype.brushSelector=function(t,e,n){return n.point(e.getItemLayout(t))},e.type="series.scatter",e.dependencies=["grid","polar","geo","singleAxis","calendar"],e.defaultOption={coordinateSystem:"cartesian2d",zlevel:0,z:2,legendHoverLink:!0,symbolSize:10,large:!1,largeThreshold:2e3,itemStyle:{opacity:.8},emphasis:{scale:!0},clip:!0,select:{itemStyle:{borderColor:"#212121"}}},e}(Rd),ow=function(){},aw=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultShape=function(){return new ow},e.prototype.buildPath=function(t,e){var n=e.points,i=e.size,r=this.symbolProxy,o=r.shape,a=t.getContext?t.getContext():t;if(a&&i[0]<4)this._ctx=a;else{this._ctx=null;for(var s=0;s<n.length;){var l=n[s++],u=n[s++];isNaN(l)||isNaN(u)||(this.softClipShape&&!this.softClipShape.contain(l,u)||(o.x=l-i[0]/2,o.y=u-i[1]/2,o.width=i[0],o.height=i[1],r.buildPath(t,o,!0)))}}},e.prototype.afterBrush=function(){var t=this.shape,e=t.points,n=t.size,i=this._ctx;if(i)for(var r=0;r<e.length;){var o=e[r++],a=e[r++];isNaN(o)||isNaN(a)||(this.softClipShape&&!this.softClipShape.contain(o,a)||i.fillRect(o-n[0]/2,a-n[1]/2,n[0],n[1]))}},e.prototype.findDataIndex=function(t,e){for(var n=this.shape,i=n.points,r=n.size,o=Math.max(r[0],4),a=Math.max(r[1],4),s=i.length/2-1;s>=0;s--){var l=2*s,u=i[l]-o/2,h=i[l+1]-a/2;if(t>=u&&e>=h&&t<=u+o&&e<=h+a)return s}return-1},e}(za),sw=function(){function t(){this.group=new Pi}return t.prototype.isPersistent=function(){return!this._incremental},t.prototype.updateData=function(t,e){this.group.removeAll();var n=new aw({rectHover:!0,cursor:"default"});n.setShape({points:t.getLayout("points")}),this._setCommon(n,t,!1,e),this.group.add(n),this._incremental=null},t.prototype.updateLayout=function(t){if(!this._incremental){var e=t.getLayout("points");this.group.eachChild((function(t){if(null!=t.startIndex){var n=2*(t.endIndex-t.startIndex),i=4*t.startIndex*2;e=new Float32Array(e.buffer,i,n)}t.setShape("points",e)}))}},t.prototype.incrementalPrepareUpdate=function(t){this.group.removeAll(),this._clearIncremental(),t.count()>2e6?(this._incremental||(this._incremental=new ou({silent:!0})),this.group.add(this._incremental)):this._incremental=null},t.prototype.incrementalUpdate=function(t,e,n){var i;this._incremental?(i=new aw,this._incremental.addDisplayable(i,!0)):((i=new aw({rectHover:!0,cursor:"default",startIndex:t.start,endIndex:t.end})).incremental=!0,this.group.add(i)),i.setShape({points:e.getLayout("points")}),this._setCommon(i,e,!!this._incremental,n)},t.prototype._setCommon=function(t,e,n,i){var r=e.hostModel;i=i||{};var o=e.getVisual("symbolSize");t.setShape("size",o instanceof Array?o:[o,o]),t.softClipShape=i.clipShape||null,t.symbolProxy=Eg(e.getVisual("symbol"),0,0,0,0),t.setColor=t.symbolProxy.setColor;var a=t.shape.size[0]<4;t.useStyle(r.getModel("itemStyle").getItemStyle(a?["color","shadowBlur","shadowColor"]:["color"]));var s=e.getVisual("style"),l=s&&s.fill;if(l&&t.setColor(l),!n){var u=ss(t);u.seriesIndex=r.seriesIndex,t.on("mousemove",(function(e){u.dataIndex=null;var n=t.findDataIndex(e.offsetX,e.offsetY);n>=0&&(u.dataIndex=n+(t.startIndex||0))}))}},t.prototype.remove=function(){this._clearIncremental(),this._incremental=null,this.group.removeAll()},t.prototype._clearIncremental=function(){var t=this._incremental;t&&t.clearDisplaybles()},t}(),lw=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){var i=t.getData();this._updateSymbolDraw(i,t).updateData(i,{clipShape:this._getClipShape(t)}),this._finished=!0},e.prototype.incrementalPrepareRender=function(t,e,n){var i=t.getData();this._updateSymbolDraw(i,t).incrementalPrepareUpdate(i),this._finished=!1},e.prototype.incrementalRender=function(t,e,n){this._symbolDraw.incrementalUpdate(t,e.getData(),{clipShape:this._getClipShape(e)}),this._finished=t.end===e.getData().count()},e.prototype.updateTransform=function(t,e,n){var i=t.getData();if(this.group.dirty(),!this._finished||i.count()>1e4||!this._symbolDraw.isPersistent())return{update:!0};var r=wb("").reset(t,e,n);r.progress&&r.progress({start:0,end:i.count(),count:i.count()},i),this._symbolDraw.updateLayout(i)},e.prototype._getClipShape=function(t){var e=t.coordinateSystem,n=e&&e.getArea&&e.getArea();return t.get("clip",!0)?n:null},e.prototype._updateSymbolDraw=function(t,e){var n=this._symbolDraw,i=e.pipelineContext.large;return n&&i===this._isLargeDraw||(n&&n.remove(),n=this._symbolDraw=i?new sw:new Kx,this._isLargeDraw=i,this.group.removeAll()),this.group.add(n.group),n},e.prototype.remove=function(t,e){this._symbolDraw&&this._symbolDraw.remove(!0),this._symbolDraw=null},e.prototype.dispose=function(){},e.type="scatter",e}(Xd),uw=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.type="grid",e.dependencies=["xAxis","yAxis"],e.layoutMode="box",e.defaultOption={show:!1,zlevel:0,z:0,left:"10%",top:60,right:"10%",bottom:70,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"},e}(_c),hw=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.getCoordSysModel=function(){return this.getReferringComponents("grid",Tr).models[0]},e.type="cartesian2dAxis",e}(_c);k(hw,m_);var cw={show:!0,zlevel:0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#6E7079",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,lineStyle:{color:["#E0E6F1"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}}},pw=S({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},cw),dw=S({boundaryGap:[0,0],axisLine:{show:"auto"},axisTick:{show:"auto"},splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:"#F4F7FD",width:1}}},cw),fw={category:pw,value:dw,time:S({scale:!0,splitNumber:6,axisLabel:{showMinLabel:!1,showMaxLabel:!1,rich:{primary:{fontWeight:"bold"}}},splitLine:{show:!1}},dw),log:C({scale:!0,logBase:10},dw)},gw={value:1,category:1,time:1,log:1};function yw(t,e,i,r){P(gw,(function(o,a){var s=S(S({},fw[a],!0),r,!0),l=function(t){function i(){for(var n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];var r=t.apply(this,n)||this;return r.type=e+"Axis."+a,r}return n(i,t),i.prototype.mergeDefaultAndTheme=function(t,e){var n=fc(this),i=n?yc(t):{};S(t,e.getTheme().get(a+"Axis")),S(t,this.getDefaultOption()),t.type=vw(t),n&&gc(t,i,n)},i.prototype.optionUpdated=function(){"category"===this.option.type&&(this.__ordinalMeta=ym.createByAxisModel(this))},i.prototype.getCategories=function(t){var e=this.option;if("category"===e.type)return t?e.data:this.__ordinalMeta.categories},i.prototype.getOrdinalMeta=function(){return this.__ordinalMeta},i.type=e+"Axis."+a,i.defaultOption=s,i}(i);t.registerComponentModel(l)})),t.registerSubTypeDefaulter(e+"Axis",vw)}function vw(t){return t.type||(t.data?"category":"value")}var mw=function(){function t(t){this.type="cartesian",this._dimList=[],this._axes={},this.name=t||""}return t.prototype.getAxis=function(t){return this._axes[t]},t.prototype.getAxes=function(){return O(this._dimList,(function(t){return this._axes[t]}),this)},t.prototype.getAxesByScale=function(t){return t=t.toLowerCase(),N(this.getAxes(),(function(e){return e.scale.type===t}))},t.prototype.addAxis=function(t){var e=t.dim;this._axes[e]=t,this._dimList.push(e)},t}(),_w=["x","y"];function xw(t){return"interval"===t.type||"time"===t.type}var bw=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="cartesian2d",e.dimensions=_w,e}return n(e,t),e.prototype.calcAffineTransform=function(){this._transform=this._invTransform=null;var t=this.getAxis("x").scale,e=this.getAxis("y").scale;if(xw(t)&&xw(e)){var n=t.getExtent(),i=e.getExtent(),r=this.dataToPoint([n[0],i[0]]),o=this.dataToPoint([n[1],i[1]]),a=n[1]-n[0],s=i[1]-i[0];if(a&&s){var l=(o[0]-r[0])/a,u=(o[1]-r[1])/s,h=r[0]-n[0]*l,c=r[1]-i[0]*u,p=this._transform=[l,0,0,u,h,c];this._invTransform=me([],p)}}},e.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAxis("x")},e.prototype.containPoint=function(t){var e=this.getAxis("x"),n=this.getAxis("y");return e.contain(e.toLocalCoord(t[0]))&&n.contain(n.toLocalCoord(t[1]))},e.prototype.containData=function(t){return this.getAxis("x").containData(t[0])&&this.getAxis("y").containData(t[1])},e.prototype.dataToPoint=function(t,e,n){n=n||[];var i=t[0],r=t[1];if(this._transform&&null!=i&&isFinite(i)&&null!=r&&isFinite(r))return Lt(n,t,this._transform);var o=this.getAxis("x"),a=this.getAxis("y");return n[0]=o.toGlobalCoord(o.dataToCoord(i)),n[1]=a.toGlobalCoord(a.dataToCoord(r)),n},e.prototype.clampData=function(t,e){var n=this.getAxis("x").scale,i=this.getAxis("y").scale,r=n.getExtent(),o=i.getExtent(),a=n.parse(t[0]),s=i.parse(t[1]);return(e=e||[])[0]=Math.min(Math.max(Math.min(r[0],r[1]),a),Math.max(r[0],r[1])),e[1]=Math.min(Math.max(Math.min(o[0],o[1]),s),Math.max(o[0],o[1])),e},e.prototype.pointToData=function(t,e){if(e=e||[],this._invTransform)return Lt(e,t,this._invTransform);var n=this.getAxis("x"),i=this.getAxis("y");return e[0]=n.coordToData(n.toLocalCoord(t[0])),e[1]=i.coordToData(i.toLocalCoord(t[1])),e},e.prototype.getOtherAxis=function(t){return this.getAxis("x"===t.dim?"y":"x")},e.prototype.getArea=function(){var t=this.getAxis("x").getGlobalExtent(),e=this.getAxis("y").getGlobalExtent(),n=Math.min(t[0],t[1]),i=Math.min(e[0],e[1]),r=Math.max(t[0],t[1])-n,o=Math.max(e[0],e[1])-i;return new Dn(n,i,r,o)},e}(mw),ww=function(t){function e(e,n,i,r,o){var a=t.call(this,e,n,i)||this;return a.index=0,a.type=r||"value",a.position=o||"bottom",a}return n(e,t),e.prototype.isHorizontal=function(){var t=this.position;return"top"===t||"bottom"===t},e.prototype.getGlobalExtent=function(t){var e=this.getExtent();return e[0]=this.toGlobalCoord(e[0]),e[1]=this.toGlobalCoord(e[1]),t&&e[0]>e[1]&&e.reverse(),e},e.prototype.pointToData=function(t,e){return this.coordToData(this.toLocalCoord(t["x"===this.dim?0:1]),e)},e.prototype.setCategorySortInfo=function(t){if("category"!==this.type)return!1;this.model.option.categorySortInfo=t,this.scale.setSortInfo(t)},e}(H_);function Sw(t,e,n){n=n||{};var i=t.coordinateSystem,r=e.axis,o={},a=r.getAxesOnZeroOf()[0],s=r.position,l=a?"onZero":s,u=r.dim,h=i.getRect(),c=[h.x,h.x+h.width,h.y,h.y+h.height],p={left:0,right:1,top:0,bottom:1,onZero:2},d=e.get("offset")||0,f="x"===u?[c[2]-d,c[3]+d]:[c[0]-d,c[1]+d];if(a){var g=a.toGlobalCoord(a.dataToCoord(0));f[p.onZero]=Math.max(Math.min(g,f[1]),f[0])}o.position=["y"===u?f[p[l]]:c[0],"x"===u?f[p[l]]:c[3]],o.rotation=Math.PI/2*("x"===u?0:1);o.labelDirection=o.tickDirection=o.nameDirection={top:-1,bottom:1,left:-1,right:1}[s],o.labelOffset=a?f[p[s]]-f[p.onZero]:0,e.get(["axisTick","inside"])&&(o.tickDirection=-o.tickDirection),J(n.labelInside,e.get(["axisLabel","inside"]))&&(o.labelDirection=-o.labelDirection);var y=e.get(["axisLabel","rotate"]);return o.labelRotate="top"===l?-y:y,o.z2=1,o}function Mw(t){return"cartesian2d"===t.get("coordinateSystem")}function Tw(t){var e={xAxisModel:null,yAxisModel:null};return P(e,(function(n,i){var r=i.replace(/Model$/,""),o=t.getReferringComponents(r,Tr).models[0];e[i]=o})),e}var Cw=function(){function t(t,e,n){this.type="grid",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=_w,this._initCartesian(t,e,n),this.model=t}return t.prototype.getRect=function(){return this._rect},t.prototype.update=function(t,e){var n=this._axesMap;this._updateScale(t,this.model),P(n.x,(function(t){h_(t.scale,t.model)})),P(n.y,(function(t){h_(t.scale,t.model)}));var i={};P(n.x,(function(t){Aw(n,"y",t,i)})),P(n.y,(function(t){Aw(n,"x",t,i)})),this.resize(this.model,e)},t.prototype.resize=function(t,e,n){var i=t.getBoxLayoutParams(),r=!n&&t.get("containLabel"),o=pc(i,{width:e.getWidth(),height:e.getHeight()});this._rect=o;var a=this._axesList;function s(){P(a,(function(t){var e=t.isHorizontal(),n=e?[0,o.width]:[0,o.height],i=t.inverse?1:0;t.setExtent(n[i],n[1-i]),function(t,e){var n=t.getExtent(),i=n[0]+n[1];t.toGlobalCoord="x"===t.dim?function(t){return t+e}:function(t){return i-t+e},t.toLocalCoord="x"===t.dim?function(t){return t-e}:function(t){return i-t+e}}(t,e?o.x:o.y)}))}s(),r&&(P(a,(function(t){if(!t.model.get(["axisLabel","inside"])){var e=function(t){var e=t.model,n=t.scale;if(e.get(["axisLabel","show"])&&!n.isBlank()){var i,r,o=n.getExtent();r=n instanceof Tm?n.count():(i=n.getTicks()).length;var a,s=t.getLabelModel(),l=p_(t),u=1;r>40&&(u=Math.ceil(r/40));for(var h=0;h<r;h+=u){var c=l(i?i[h]:{value:o[0]+h},h),p=f_(s.getTextRect(c),s.get("rotate")||0);a?a.union(p):a=p}return a}}(t);if(e){var n=t.isHorizontal()?"height":"width",i=t.model.get(["axisLabel","margin"]);o[n]-=e[n]+i,"top"===t.position?o.y+=e.height+i:"left"===t.position&&(o.x+=e.width+i)}}})),s()),P(this._coordsList,(function(t){t.calcAffineTransform()}))},t.prototype.getAxis=function(t,e){var n=this._axesMap[t];if(null!=n)return n[e||0]},t.prototype.getAxes=function(){return this._axesList.slice()},t.prototype.getCartesian=function(t,e){if(null!=t&&null!=e){var n="x"+t+"y"+e;return this._coordsMap[n]}U(t)&&(e=t.yAxisIndex,t=t.xAxisIndex);for(var i=0,r=this._coordsList;i<r.length;i++)if(r[i].getAxis("x").index===t||r[i].getAxis("y").index===e)return r[i]},t.prototype.getCartesians=function(){return this._coordsList.slice()},t.prototype.convertToPixel=function(t,e,n){var i=this._findConvertTarget(e);return i.cartesian?i.cartesian.dataToPoint(n):i.axis?i.axis.toGlobalCoord(i.axis.dataToCoord(n)):null},t.prototype.convertFromPixel=function(t,e,n){var i=this._findConvertTarget(e);return i.cartesian?i.cartesian.pointToData(n):i.axis?i.axis.coordToData(i.axis.toLocalCoord(n)):null},t.prototype._findConvertTarget=function(t){var e,n,i=t.seriesModel,r=t.xAxisModel||i&&i.getReferringComponents("xAxis",Tr).models[0],o=t.yAxisModel||i&&i.getReferringComponents("yAxis",Tr).models[0],a=t.gridModel,s=this._coordsList;if(i)A(s,e=i.coordinateSystem)<0&&(e=null);else if(r&&o)e=this.getCartesian(r.componentIndex,o.componentIndex);else if(r)n=this.getAxis("x",r.componentIndex);else if(o)n=this.getAxis("y",o.componentIndex);else if(a){a.coordinateSystem===this&&(e=this._coordsList[0])}return{cartesian:e,axis:n}},t.prototype.containPoint=function(t){var e=this._coordsList[0];if(e)return e.containPoint(t)},t.prototype._initCartesian=function(t,e,n){var i=this,r=this,o={left:!1,right:!1,top:!1,bottom:!1},a={x:{},y:{}},s={x:0,y:0};if(e.eachComponent("xAxis",l("x"),this),e.eachComponent("yAxis",l("y"),this),!s.x||!s.y)return this._axesMap={},void(this._axesList=[]);function l(e){return function(n,i){if(Iw(n,t)){var l=n.get("position");"x"===e?"top"!==l&&"bottom"!==l&&(l=o.bottom?"top":"bottom"):"left"!==l&&"right"!==l&&(l=o.left?"right":"left"),o[l]=!0;var u=new ww(e,c_(n),[0,0],n.get("type"),l),h="category"===u.type;u.onBand=h&&n.get("boundaryGap"),u.inverse=n.get("inverse"),n.axis=u,u.model=n,u.grid=r,u.index=i,r._axesList.push(u),a[e][i]=u,s[e]++}}}this._axesMap=a,P(a.x,(function(e,n){P(a.y,(function(r,o){var a="x"+n+"y"+o,s=new bw(a);s.master=i,s.model=t,i._coordsMap[a]=s,i._coordsList.push(s),s.addAxis(e),s.addAxis(r)}))}))},t.prototype._updateScale=function(t,e){function n(t,e){P(v_(t,e.dim),(function(n){e.scale.unionExtentFromData(t,n)}))}P(this._axesList,(function(t){if(t.scale.setExtent(1/0,-1/0),"category"===t.type){var e=t.model.get("categorySortInfo");t.scale.setSortInfo(e)}})),t.eachSeries((function(t){if(Mw(t)){var i=Tw(t),r=i.xAxisModel,o=i.yAxisModel;if(!Iw(r,e)||!Iw(o,e))return;var a=this.getCartesian(r.componentIndex,o.componentIndex),s=t.getData(),l=a.getAxis("x"),u=a.getAxis("y");"list"===s.type&&(n(s,l),n(s,u))}}),this)},t.prototype.getTooltipAxes=function(t){var e=[],n=[];return P(this.getCartesians(),(function(i){var r=null!=t&&"auto"!==t?i.getAxis(t):i.getBaseAxis(),o=i.getOtherAxis(r);A(e,r)<0&&e.push(r),A(n,o)<0&&n.push(o)})),{baseAxes:e,otherAxes:n}},t.create=function(e,n){var i=[];return e.eachComponent("grid",(function(r,o){var a=new t(r,e,n);a.name="grid_"+o,a.resize(r,n,!0),r.coordinateSystem=a,i.push(a)})),e.eachSeries((function(t){if(Mw(t)){var e=Tw(t),n=e.xAxisModel,i=e.yAxisModel,r=n.getCoordSysModel();0;var o=r.coordinateSystem;t.coordinateSystem=o.getCartesian(n.componentIndex,i.componentIndex)}})),i},t.dimensions=_w,t}();function Iw(t,e){return t.getCoordSysModel()===e}function Aw(t,e,n,i){n.getAxesOnZeroOf=function(){return r?[r]:[]};var r,o=t[e],a=n.model,s=a.get(["axisLine","onZero"]),l=a.get(["axisLine","onZeroAxisIndex"]);if(s){if(null!=l)Dw(o[l])&&(r=o[l]);else for(var u in o)if(o.hasOwnProperty(u)&&Dw(o[u])&&!i[h(o[u])]){r=o[u];break}r&&(i[h(r)]=!0)}function h(t){return t.dim+"_"+t.index}}function Dw(t){return t&&"category"!==t.type&&"time"!==t.type&&function(t){var e=t.scale.getExtent(),n=e[0],i=e[1];return!(n>0&&i>0||n<0&&i<0)}(t)}var kw=Math.PI,Lw=function(){function t(t,e){this.group=new Pi,this.opt=e,this.axisModel=t,C(e,{labelOffset:0,nameDirection:1,tickDirection:1,labelDirection:1,silent:!0,handleAutoShown:function(){return!0}});var n=new Pi({x:e.position[0],y:e.position[1],rotation:e.rotation});n.updateTransform(),this._transformGroup=n}return t.prototype.hasBuilder=function(t){return!!Pw[t]},t.prototype.add=function(t){Pw[t](this.opt,this.axisModel,this.group,this._transformGroup)},t.prototype.getGroup=function(){return this.group},t.innerTextLayout=function(t,e,n){var i,r,o=qi(e-t);return Ki(o)?(r=n>0?"top":"bottom",i="center"):Ki(o-kw)?(r=n>0?"bottom":"top",i="center"):(r="middle",i=o>0&&o<kw?n>0?"right":"left":n>0?"left":"right"),{rotation:o,textAlign:i,textVerticalAlign:r}},t.makeAxisEventDataBase=function(t){var e={componentType:t.mainType,componentIndex:t.componentIndex};return e[t.mainType+"Index"]=t.componentIndex,e},t.isLabelSilent=function(t){var e=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||e&&e.show)},t}(),Pw={axisLine:function(t,e,n,i){var r=e.get(["axisLine","show"]);if("auto"===r&&t.handleAutoShown&&(r=t.handleAutoShown("axisLine")),r){var o=e.axis.getExtent(),a=i.transform,s=[o[0],0],l=[o[1],0];a&&(Lt(s,s,a),Lt(l,l,a));var u=T({lineCap:"round"},e.getModel(["axisLine","lineStyle"]).getLineStyle()),h=new Gl({subPixelOptimize:!0,shape:{x1:s[0],y1:s[1],x2:l[0],y2:l[1]},style:u,strokeContainThreshold:t.strokeContainThreshold||5,silent:!0,z2:1});h.anid="line",n.add(h);var c=e.get(["axisLine","symbol"]),p=e.get(["axisLine","symbolSize"]),d=e.get(["axisLine","symbolOffset"])||0;if("number"==typeof d&&(d=[d,d]),null!=c){"string"==typeof c&&(c=[c,c]),"string"!=typeof p&&"number"!=typeof p||(p=[p,p]);var f=p[0],g=p[1];P([{rotate:t.rotation+Math.PI/2,offset:d[0],r:0},{rotate:t.rotation-Math.PI/2,offset:d[1],r:Math.sqrt((s[0]-l[0])*(s[0]-l[0])+(s[1]-l[1])*(s[1]-l[1]))}],(function(e,i){if("none"!==c[i]&&null!=c[i]){var r=Eg(c[i],-f/2,-g/2,f,g,u.stroke,!0),o=e.r+e.offset;r.attr({rotation:e.rotate,x:s[0]+o*Math.cos(t.rotation),y:s[1]-o*Math.sin(t.rotation),silent:!0,z2:11}),n.add(r)}}))}}},axisTickLabel:function(t,e,n,i){var r=function(t,e,n,i){var r=n.axis,o=n.getModel("axisTick"),a=o.get("show");"auto"===a&&i.handleAutoShown&&(a=i.handleAutoShown("axisTick"));if(!a||r.scale.isBlank())return;for(var s=o.getModel("lineStyle"),l=i.tickDirection*o.get("length"),u=Ew(r.getTicksCoords(),e.transform,l,C(s.getLineStyle(),{stroke:n.get(["axisLine","lineStyle","color"])}),"ticks"),h=0;h<u.length;h++)t.add(u[h]);return u}(n,i,e,t),o=function(t,e,n,i){var r=n.axis;if(!J(i.axisLabelShow,n.get(["axisLabel","show"]))||r.scale.isBlank())return;var o=n.getModel("axisLabel"),a=o.get("margin"),s=r.getViewLabels(),l=(J(i.labelRotate,o.get("rotate"))||0)*kw/180,u=Lw.innerTextLayout(i.rotation,l,i.labelDirection),h=n.getCategories&&n.getCategories(!0),c=[],p=Lw.isLabelSilent(n),d=n.get("triggerEvent");return P(s,(function(s,l){var f="ordinal"===r.scale.type?r.scale.getRawOrdinalNumber(s.tickValue):s.tickValue,g=s.formattedLabel,y=s.rawLabel,v=o;if(h&&h[f]){var m=h[f];U(m)&&m.textStyle&&(v=new sh(m.textStyle,o,n.ecModel))}var _=v.getTextColor()||n.get(["axisLine","lineStyle","color"]),x=r.dataToCoord(f),b=new Qa({x:x,y:i.labelOffset+i.labelDirection*a,rotation:u.rotation,silent:p,z2:10,style:Wu(v,{text:g,align:v.getShallow("align",!0)||u.textAlign,verticalAlign:v.getShallow("verticalAlign",!0)||v.getShallow("baseline",!0)||u.textVerticalAlign,fill:"function"==typeof _?_("category"===r.type?y:"value"===r.type?f+"":f,l):_})});if(b.anid="label_"+f,d){var w=Lw.makeAxisEventDataBase(n);w.targetType="axisLabel",w.value=y,ss(b).eventData=w}e.add(b),b.updateTransform(),c.push(b),t.add(b),b.decomposeTransform()})),c}(n,i,e,t);!function(t,e,n){if(y_(t.axis))return;var i=t.get(["axisLabel","showMinLabel"]),r=t.get(["axisLabel","showMaxLabel"]);n=n||[];var o=(e=e||[])[0],a=e[1],s=e[e.length-1],l=e[e.length-2],u=n[0],h=n[1],c=n[n.length-1],p=n[n.length-2];!1===i?(Ow(o),Ow(u)):Rw(o,a)&&(i?(Ow(a),Ow(h)):(Ow(o),Ow(u)));!1===r?(Ow(s),Ow(c)):Rw(l,s)&&(r?(Ow(l),Ow(p)):(Ow(s),Ow(c)))}(e,o,r),function(t,e,n,i){var r=n.axis,o=n.getModel("minorTick");if(!o.get("show")||r.scale.isBlank())return;var a=r.getMinorTicksCoords();if(!a.length)return;for(var s=o.getModel("lineStyle"),l=i*o.get("length"),u=C(s.getLineStyle(),C(n.getModel("axisTick").getLineStyle(),{stroke:n.get(["axisLine","lineStyle","color"])})),h=0;h<a.length;h++)for(var c=Ew(a[h],e.transform,l,u,"minorticks_"+h),p=0;p<c.length;p++)t.add(c[p])}(n,i,e,t.tickDirection)},axisName:function(t,e,n,i){var r=J(t.axisName,e.get("name"));if(r){var o,a,s=e.get("nameLocation"),l=t.nameDirection,u=e.getModel("nameTextStyle"),h=e.get("nameGap")||0,c=e.axis.getExtent(),p=c[0]>c[1]?-1:1,d=["start"===s?c[0]-p*h:"end"===s?c[1]+p*h:(c[0]+c[1])/2,Nw(s)?t.labelOffset+l*h:0],f=e.get("nameRotate");null!=f&&(f=f*kw/180),Nw(s)?o=Lw.innerTextLayout(t.rotation,null!=f?f:t.rotation,l):(o=function(t,e,n,i){var r,o,a=qi(n-t),s=i[0]>i[1],l="start"===e&&!s||"start"!==e&&s;Ki(a-kw/2)?(o=l?"bottom":"top",r="center"):Ki(a-1.5*kw)?(o=l?"top":"bottom",r="center"):(o="middle",r=a<1.5*kw&&a>kw/2?l?"left":"right":l?"right":"left");return{rotation:a,textAlign:r,textVerticalAlign:o}}(t.rotation,s,f||0,c),null!=(a=t.axisNameAvailableWidth)&&(a=Math.abs(a/Math.sin(o.rotation)),!isFinite(a)&&(a=null)));var g=u.getFont(),y=e.get("nameTruncate",!0)||{},v=y.ellipsis,m=J(t.nameTruncateMaxWidth,y.maxWidth,a),_=e.get("tooltip",!0),x=e.mainType,b={componentType:x,name:r,$vars:["name"]};b[x+"Index"]=e.componentIndex;var w=new Qa({x:d[0],y:d[1],rotation:o.rotation,silent:Lw.isLabelSilent(e),style:Wu(u,{text:r,font:g,overflow:"truncate",width:m,ellipsis:v,fill:u.getTextColor()||e.get(["axisLine","lineStyle","color"]),align:u.get("align")||o.textAlign,verticalAlign:u.get("verticalAlign")||o.textVerticalAlign}),z2:1});if(w.tooltip=_&&_.show?T({content:r,formatter:function(){return r},formatterParams:b},_):null,w.__fullText=r,w.anid="name",e.get("triggerEvent")){var S=Lw.makeAxisEventDataBase(e);S.targetType="axisName",S.name=r,ss(w).eventData=S}i.add(w),w.updateTransform(),n.add(w),w.decomposeTransform()}}};function Ow(t){t&&(t.ignore=!0)}function Rw(t,e){var n=t&&t.getBoundingRect().clone(),i=e&&e.getBoundingRect().clone();if(n&&i){var r=pe([]);return ye(r,r,-t.rotation),n.applyTransform(fe([],r,t.getLocalTransform())),i.applyTransform(fe([],r,e.getLocalTransform())),n.intersect(i)}}function Nw(t){return"middle"===t||"center"===t}function Ew(t,e,n,i,r){for(var o=[],a=[],s=[],l=0;l<t.length;l++){var u=t[l].coord;a[0]=u,a[1]=0,s[0]=u,s[1]=n,e&&(Lt(a,a,e),Lt(s,s,e));var h=new Gl({subPixelOptimize:!0,shape:{x1:a[0],y1:a[1],x2:s[0],y2:s[1]},style:i,z2:2,autoBatch:!0,silent:!0});h.anid=r+"_"+t[l].tickValue,o.push(h)}return o}function Bw(t,e){var n={axesInfo:{},seriesInvolved:!1,coordSysAxesInfo:{},coordSysMap:{}};return function(t,e,n){var i=e.getComponent("tooltip"),r=e.getComponent("axisPointer"),o=r.get("link",!0)||[],a=[];P(n.getCoordinateSystems(),(function(n){if(n.axisPointerEnabled){var s=Gw(n.model),l=t.coordSysAxesInfo[s]={};t.coordSysMap[s]=n;var u=n.model.getModel("tooltip",i);if(P(n.getAxes(),z(d,!1,null)),n.getTooltipAxes&&i&&u.get("show")){var h="axis"===u.get("trigger"),c="cross"===u.get(["axisPointer","type"]),p=n.getTooltipAxes(u.get(["axisPointer","axis"]));(h||c)&&P(p.baseAxes,z(d,!c||"cross",h)),c&&P(p.otherAxes,z(d,"cross",!1))}}function d(i,s,h){var c=h.model.getModel("axisPointer",r),p=c.get("show");if(p&&("auto"!==p||i||Hw(c))){null==s&&(s=c.get("triggerTooltip"));var d=(c=i?function(t,e,n,i,r,o){var a=e.getModel("axisPointer"),s={};P(["type","snap","lineStyle","shadowStyle","label","animation","animationDurationUpdate","animationEasingUpdate","z"],(function(t){s[t]=w(a.get(t))})),s.snap="category"!==t.type&&!!o,"cross"===a.get("type")&&(s.type="line");var l=s.label||(s.label={});if(null==l.show&&(l.show=!1),"cross"===r){var u=a.get(["label","show"]);if(l.show=null==u||u,!o){var h=s.lineStyle=a.get("crossStyle");h&&C(l,h.textStyle)}}return t.model.getModel("axisPointer",new sh(s,n,i))}(h,u,r,e,i,s):c).get("snap"),f=Gw(h.model),g=s||d||"category"===h.type,y=t.axesInfo[f]={key:f,axis:h,coordSys:n,axisPointerModel:c,triggerTooltip:s,involveSeries:g,snap:d,useHandle:Hw(c),seriesModels:[],linkGroup:null};l[f]=y,t.seriesInvolved=t.seriesInvolved||g;var v=function(t,e){for(var n=e.model,i=e.dim,r=0;r<t.length;r++){var o=t[r]||{};if(zw(o[i+"AxisId"],n.id)||zw(o[i+"AxisIndex"],n.componentIndex)||zw(o[i+"AxisName"],n.name))return r}}(o,h);if(null!=v){var m=a[v]||(a[v]={axesInfo:{}});m.axesInfo[f]=y,m.mapper=o[v].mapper,y.linkGroup=m}}}}))}(n,t,e),n.seriesInvolved&&function(t,e){e.eachSeries((function(e){var n=e.coordinateSystem,i=e.get(["tooltip","trigger"],!0),r=e.get(["tooltip","show"],!0);n&&"none"!==i&&!1!==i&&"item"!==i&&!1!==r&&!1!==e.get(["axisPointer","show"],!0)&&P(t.coordSysAxesInfo[Gw(n.model)],(function(t){var i=t.axis;n.getAxis(i.dim)===i&&(t.seriesModels.push(e),null==t.seriesDataCount&&(t.seriesDataCount=0),t.seriesDataCount+=e.getData().count())}))}))}(n,t),n}function zw(t,e){return"all"===t||V(t)&&A(t,e)>=0||t===e}function Vw(t){var e=Fw(t);if(e){var n=e.axisPointerModel,i=e.axis.scale,r=n.option,o=n.get("status"),a=n.get("value");null!=a&&(a=i.parse(a));var s=Hw(n);null==o&&(r.status=s?"show":"hide");var l=i.getExtent().slice();l[0]>l[1]&&l.reverse(),(null==a||a>l[1])&&(a=l[1]),a<l[0]&&(a=l[0]),r.value=a,s&&(r.status=e.axis.scale.isBlank()?"hide":"show")}}function Fw(t){var e=(t.ecModel.getComponent("axisPointer")||{}).coordSysAxesInfo;return e&&e.axesInfo[Gw(t)]}function Hw(t){return!!t.get(["handle","show"])}function Gw(t){return t.type+"||"+t.id}var Ww={},Uw=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(e,n,i,r){this.axisPointerClass&&Vw(e),t.prototype.render.apply(this,arguments),this._doUpdateAxisPointerClass(e,i,!0)},e.prototype.updateAxisPointer=function(t,e,n,i){this._doUpdateAxisPointerClass(t,n,!1)},e.prototype.remove=function(t,e){var n=this._axisPointer;n&&n.remove(e)},e.prototype.dispose=function(e,n){this._disposeAxisPointer(n),t.prototype.dispose.apply(this,arguments)},e.prototype._doUpdateAxisPointerClass=function(t,n,i){var r=e.getAxisPointerClass(this.axisPointerClass);if(r){var o=function(t){var e=Fw(t);return e&&e.axisPointerModel}(t);o?(this._axisPointer||(this._axisPointer=new r)).render(t,o,n,i):this._disposeAxisPointer(n)}},e.prototype._disposeAxisPointer=function(t){this._axisPointer&&this._axisPointer.dispose(t),this._axisPointer=null},e.registerAxisPointerClass=function(t,e){Ww[t]=e},e.getAxisPointerClass=function(t){return t&&Ww[t]},e.type="axis",e}(Gd),Yw=wr();var Xw=["axisLine","axisTickLabel","axisName"],Zw=["splitArea","splitLine","minorSplitLine"],jw=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.axisPointerClass="CartesianAxisPointer",n}return n(e,t),e.prototype.render=function(e,n,i,r){this.group.removeAll();var o=this._axisGroup;if(this._axisGroup=new Pi,this.group.add(this._axisGroup),e.get("show")){var a=e.getCoordSysModel(),s=Sw(a,e),l=new Lw(e,T({handleAutoShown:function(t){for(var n=a.coordinateSystem.getCartesians(),i=0;i<n.length;i++){var r=n[i].getOtherAxis(e.axis).type;if("value"===r||"log"===r)return!0}return!1}},s));P(Xw,l.add,l),this._axisGroup.add(l.getGroup()),P(Zw,(function(t){e.get([t,"show"])&&qw[t](this,this._axisGroup,e,a)}),this),Lu(o,this._axisGroup,e),t.prototype.render.call(this,e,n,i,r)}},e.prototype.remove=function(){Yw(this).splitAreaColors=null},e.type="cartesianAxis",e}(Uw),qw={splitLine:function(t,e,n,i){var r=n.axis;if(!r.scale.isBlank()){var o=n.getModel("splitLine"),a=o.getModel("lineStyle"),s=a.get("color");s=V(s)?s:[s];for(var l=i.coordinateSystem.getRect(),u=r.isHorizontal(),h=0,c=r.getTicksCoords({tickModel:o}),p=[],d=[],f=a.getLineStyle(),g=0;g<c.length;g++){var y=r.toGlobalCoord(c[g].coord);u?(p[0]=y,p[1]=l.y,d[0]=y,d[1]=l.y+l.height):(p[0]=l.x,p[1]=y,d[0]=l.x+l.width,d[1]=y);var v=h++%s.length,m=c[g].tickValue;e.add(new Gl({anid:null!=m?"line_"+c[g].tickValue:null,subPixelOptimize:!0,autoBatch:!0,shape:{x1:p[0],y1:p[1],x2:d[0],y2:d[1]},style:C({stroke:s[v]},f),silent:!0}))}}},minorSplitLine:function(t,e,n,i){var r=n.axis,o=n.getModel("minorSplitLine").getModel("lineStyle"),a=i.coordinateSystem.getRect(),s=r.isHorizontal(),l=r.getMinorTicksCoords();if(l.length)for(var u=[],h=[],c=o.getLineStyle(),p=0;p<l.length;p++)for(var d=0;d<l[p].length;d++){var f=r.toGlobalCoord(l[p][d].coord);s?(u[0]=f,u[1]=a.y,h[0]=f,h[1]=a.y+a.height):(u[0]=a.x,u[1]=f,h[0]=a.x+a.width,h[1]=f),e.add(new Gl({anid:"minor_line_"+l[p][d].tickValue,subPixelOptimize:!0,autoBatch:!0,shape:{x1:u[0],y1:u[1],x2:h[0],y2:h[1]},style:c,silent:!0}))}},splitArea:function(t,e,n,i){!function(t,e,n,i){var r=n.axis;if(!r.scale.isBlank()){var o=n.getModel("splitArea"),a=o.getModel("areaStyle"),s=a.get("color"),l=i.coordinateSystem.getRect(),u=r.getTicksCoords({tickModel:o,clamp:!0});if(u.length){var h=s.length,c=Yw(t).splitAreaColors,p=ut(),d=0;if(c)for(var f=0;f<u.length;f++){var g=c.get(u[f].tickValue);if(null!=g){d=(g+(h-1)*f)%h;break}}var y=r.toGlobalCoord(u[0].coord),v=a.getAreaStyle();for(s=V(s)?s:[s],f=1;f<u.length;f++){var m=r.toGlobalCoord(u[f].coord),_=void 0,x=void 0,b=void 0,w=void 0;r.isHorizontal()?(_=y,x=l.y,b=m-_,w=l.height,y=_+b):(_=l.x,x=y,b=l.width,y=x+(w=m-x));var S=u[f-1].tickValue;null!=S&&p.set(S,d),e.add(new Ka({anid:null!=S?"area_"+S:null,shape:{x:_,y:x,width:b,height:w},style:C({fill:s[d]},v),autoBatch:!0,silent:!0})),d=(d+1)%h}Yw(t).splitAreaColors=p}}}(t,e,n,i)}},Kw=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="xAxis",e}(jw),$w=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=Kw.type,e}return n(e,t),e.type="yAxis",e}(jw),Jw=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="grid",e}return n(e,t),e.prototype.render=function(t,e){this.group.removeAll(),t.get("show")&&this.group.add(new Ka({shape:t.coordinateSystem.getRect(),style:C({fill:t.get("backgroundColor")},t.getItemStyle()),silent:!0,z2:-1}))},e.type="grid",e}(Gd),Qw={offset:0};function tS(t){t.registerComponentView(Jw),t.registerComponentModel(uw),t.registerCoordinateSystem("cartesian2d",Cw),yw(t,"x",hw,Qw),yw(t,"y",hw,Qw),t.registerComponentView(Kw),t.registerComponentView($w),t.registerPreprocessor((function(t){t.xAxis&&t.yAxis&&!t.grid&&(t.grid={})}))}var eS=wr(),nS=w,iS=B;function rS(t,e,n,i){oS(eS(n).lastProp,i)||(eS(n).lastProp=i,e?bu(n,i,t):(n.stopAnimation(),n.attr(i)))}function oS(t,e){if(U(t)&&U(e)){var n=!0;return P(e,(function(e,i){n=n&&oS(t[i],e)})),!!n}return t===e}function aS(t,e){t[e.get(["label","show"])?"show":"hide"]()}function sS(t){return{x:t.x||0,y:t.y||0,rotation:t.rotation||0}}function lS(t,e,n){var i=e.get("z"),r=e.get("zlevel");t&&t.traverse((function(t){"group"!==t.type&&(null!=i&&(t.z=i),null!=r&&(t.zlevel=r),t.silent=n)}))}function uS(t,e,n,i,r){var o=hS(n.get("value"),e.axis,e.ecModel,n.get("seriesDataIndices"),{precision:n.get(["label","precision"]),formatter:n.get(["label","formatter"])}),a=n.getModel("label"),s=Kh(a.get("padding")||0),l=a.getFont(),u=Nn(o,l),h=r.position,c=u.width+s[1]+s[3],p=u.height+s[0]+s[2],d=r.align;"right"===d&&(h[0]-=c),"center"===d&&(h[0]-=c/2);var f=r.verticalAlign;"bottom"===f&&(h[1]-=p),"middle"===f&&(h[1]-=p/2),function(t,e,n,i){var r=i.getWidth(),o=i.getHeight();t[0]=Math.min(t[0]+e,r)-e,t[1]=Math.min(t[1]+n,o)-n,t[0]=Math.max(t[0],0),t[1]=Math.max(t[1],0)}(h,c,p,i);var g=a.get("backgroundColor");g&&"auto"!==g||(g=e.get(["axisLine","lineStyle","color"])),t.label={x:h[0],y:h[1],style:Wu(a,{text:o,font:l,fill:a.getTextColor(),padding:s,backgroundColor:g}),z2:10}}function hS(t,e,n,i,r){t=e.scale.parse(t);var o=e.scale.getLabel({value:t},{precision:r.precision}),a=r.formatter;if(a){var s={value:d_(e,{value:t}),axisDimension:e.dim,axisIndex:e.index,seriesData:[]};P(i,(function(t){var e=n.getSeriesByIndex(t.seriesIndex),i=t.dataIndexInside,r=e&&e.getDataParams(i);r&&s.seriesData.push(r)})),H(a)?o=a.replace("{value}",o):F(a)&&(o=a(s))}return o}function cS(t,e,n){var i=[1,0,0,1,0,0];return ye(i,i,n.rotation),ge(i,i,n.position),Au([t.dataToCoord(e),(n.labelOffset||0)+(n.labelDirection||1)*(n.labelMargin||0)],i)}var pS=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.makeElOption=function(t,e,n,i,r){var o=n.axis,a=o.grid,s=i.get("type"),l=dS(a,o).getOtherAxis(o).getGlobalExtent(),u=o.toGlobalCoord(o.dataToCoord(e,!0));if(s&&"none"!==s){var h=function(t){var e,n=t.get("type"),i=t.getModel(n+"Style");return"line"===n?(e=i.getLineStyle()).fill=null:"shadow"===n&&((e=i.getAreaStyle()).stroke=null),e}(i),c=fS[s](o,u,l);c.style=h,t.graphicKey=c.type,t.pointer=c}!function(t,e,n,i,r,o){var a=Lw.innerTextLayout(n.rotation,0,n.labelDirection);n.labelMargin=r.get(["label","margin"]),uS(e,i,r,o,{position:cS(i.axis,t,n),align:a.textAlign,verticalAlign:a.textVerticalAlign})}(e,t,Sw(a.model,n),n,i,r)},e.prototype.getHandleTransform=function(t,e,n){var i=Sw(e.axis.grid.model,e,{labelInside:!1});i.labelMargin=n.get(["handle","margin"]);var r=cS(e.axis,t,i);return{x:r[0],y:r[1],rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},e.prototype.updateHandleTransform=function(t,e,n,i){var r=n.axis,o=r.grid,a=r.getGlobalExtent(!0),s=dS(o,r).getOtherAxis(r).getGlobalExtent(),l="x"===r.dim?0:1,u=[t.x,t.y];u[l]+=e[l],u[l]=Math.min(a[1],u[l]),u[l]=Math.max(a[0],u[l]);var h=(s[1]+s[0])/2,c=[h,h];c[l]=u[l];return{x:u[0],y:u[1],rotation:t.rotation,cursorPoint:c,tooltipOption:[{verticalAlign:"middle"},{align:"center"}][l]}},e}(function(){function t(){this._dragging=!1,this.animationThreshold=15}return t.prototype.render=function(t,e,n,i){var r=e.get("value"),o=e.get("status");if(this._axisModel=t,this._axisPointerModel=e,this._api=n,i||this._lastValue!==r||this._lastStatus!==o){this._lastValue=r,this._lastStatus=o;var a=this._group,s=this._handle;if(!o||"hide"===o)return a&&a.hide(),void(s&&s.hide());a&&a.show(),s&&s.show();var l={};this.makeElOption(l,r,t,e,n);var u=l.graphicKey;u!==this._lastGraphicKey&&this.clear(n),this._lastGraphicKey=u;var h=this._moveAnimation=this.determineAnimation(t,e);if(a){var c=z(rS,e,h);this.updatePointerEl(a,l,c),this.updateLabelEl(a,l,c,e)}else a=this._group=new Pi,this.createPointerEl(a,l,t,e),this.createLabelEl(a,l,t,e),n.getZr().add(a);lS(a,e,!0),this._renderHandle(r)}},t.prototype.remove=function(t){this.clear(t)},t.prototype.dispose=function(t){this.clear(t)},t.prototype.determineAnimation=function(t,e){var n=e.get("animation"),i=t.axis,r="category"===i.type,o=e.get("snap");if(!o&&!r)return!1;if("auto"===n||null==n){var a=this.animationThreshold;if(r&&i.getBandWidth()>a)return!0;if(o){var s=Fw(t).seriesDataCount,l=i.getExtent();return Math.abs(l[0]-l[1])/s>a}return!1}return!0===n},t.prototype.makeElOption=function(t,e,n,i,r){},t.prototype.createPointerEl=function(t,e,n,i){var r=e.pointer;if(r){var o=eS(t).pointerEl=new Bu[r.type](nS(e.pointer));t.add(o)}},t.prototype.createLabelEl=function(t,e,n,i){if(e.label){var r=eS(t).labelEl=new Qa(nS(e.label));t.add(r),aS(r,i)}},t.prototype.updatePointerEl=function(t,e,n){var i=eS(t).pointerEl;i&&e.pointer&&(i.setStyle(e.pointer.style),n(i,{shape:e.pointer.shape}))},t.prototype.updateLabelEl=function(t,e,n,i){var r=eS(t).labelEl;r&&(r.setStyle(e.label.style),n(r,{x:e.label.x,y:e.label.y}),aS(r,i))},t.prototype._renderHandle=function(t){if(!this._dragging&&this.updateHandleTransform){var e,n=this._axisPointerModel,i=this._api.getZr(),r=this._handle,o=n.getModel("handle"),a=n.get("status");if(!o.get("show")||!a||"hide"===a)return r&&i.remove(r),void(this._handle=null);this._handle||(e=!0,r=this._handle=Ru(o.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(t){Jt(t.event)},onmousedown:iS(this._onHandleDragMove,this,0,0),drift:iS(this._onHandleDragMove,this),ondragend:iS(this._onHandleDragEnd,this)}),i.add(r)),lS(r,n,!1),r.setStyle(o.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var s=o.get("size");V(s)||(s=[s,s]),r.scaleX=s[0]/2,r.scaleY=s[1]/2,nf(this,"_doDispatchAxisPointer",o.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,e)}},t.prototype._moveHandleToValue=function(t,e){rS(this._axisPointerModel,!e&&this._moveAnimation,this._handle,sS(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},t.prototype._onHandleDragMove=function(t,e){var n=this._handle;if(n){this._dragging=!0;var i=this.updateHandleTransform(sS(n),[t,e],this._axisModel,this._axisPointerModel);this._payloadInfo=i,n.stopAnimation(),n.attr(sS(i)),eS(n).lastProp=null,this._doDispatchAxisPointer()}},t.prototype._doDispatchAxisPointer=function(){if(this._handle){var t=this._payloadInfo,e=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:t.cursorPoint[0],y:t.cursorPoint[1],tooltipOption:t.tooltipOption,axesInfo:[{axisDim:e.axis.dim,axisIndex:e.componentIndex}]})}},t.prototype._onHandleDragEnd=function(){if(this._dragging=!1,this._handle){var t=this._axisPointerModel.get("value");this._moveHandleToValue(t),this._api.dispatchAction({type:"hideTip"})}},t.prototype.clear=function(t){this._lastValue=null,this._lastStatus=null;var e=t.getZr(),n=this._group,i=this._handle;e&&n&&(this._lastGraphicKey=null,n&&e.remove(n),i&&e.remove(i),this._group=null,this._handle=null,this._payloadInfo=null)},t.prototype.doClear=function(){},t.prototype.buildLabel=function(t,e,n){return{x:t[n=n||0],y:t[1-n],width:e[n],height:e[1-n]}},t}());function dS(t,e){var n={};return n[e.dim+"AxisIndex"]=e.index,t.getCartesian(n)}var fS={line:function(t,e,n){var i,r,o;return{type:"Line",subPixelOptimize:!0,shape:(i=[e,n[0]],r=[e,n[1]],o=gS(t),{x1:i[o=o||0],y1:i[1-o],x2:r[o],y2:r[1-o]})}},shadow:function(t,e,n){var i,r,o,a=Math.max(1,t.getBandWidth()),s=n[1]-n[0];return{type:"Rect",shape:(i=[e-a/2,n[0]],r=[a,s],o=gS(t),{x:i[o=o||0],y:i[1-o],width:r[o],height:r[1-o]})}}};function gS(t){return"x"===t.dim?0:1}var yS=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="axisPointer",e.defaultOption={show:"auto",zlevel:0,z:50,type:"line",snap:!1,triggerTooltip:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#B9BEC9",width:1,type:"dashed"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}},e}(_c),vS=wr(),mS=P;function _S(t,e,n){if(!a.node){var i=e.getZr();vS(i).records||(vS(i).records={}),function(t,e){if(vS(t).initialized)return;function n(n,i){t.on(n,(function(n){var r=function(t){var e={showTip:[],hideTip:[]},n=function(i){var r=e[i.type];r?r.push(i):(i.dispatchAction=n,t.dispatchAction(i))};return{dispatchAction:n,pendings:e}}(e);mS(vS(t).records,(function(t){t&&i(t,n,r.dispatchAction)})),function(t,e){var n,i=t.showTip.length,r=t.hideTip.length;i?n=t.showTip[i-1]:r&&(n=t.hideTip[r-1]);n&&(n.dispatchAction=null,e.dispatchAction(n))}(r.pendings,e)}))}vS(t).initialized=!0,n("click",z(bS,"click")),n("mousemove",z(bS,"mousemove")),n("globalout",xS)}(i,e),(vS(i).records[t]||(vS(i).records[t]={})).handler=n}}function xS(t,e,n){t.handler("leave",null,n)}function bS(t,e,n,i){e.handler(t,n,i)}function wS(t,e){if(!a.node){var n=e.getZr();(vS(n).records||{})[t]&&(vS(n).records[t]=null)}}var SS=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){var i=e.getComponent("tooltip"),r=t.get("triggerOn")||i&&i.get("triggerOn")||"mousemove|click";_S("axisPointer",n,(function(t,e,n){"none"!==r&&("leave"===t||r.indexOf(t)>=0)&&n({type:"updateAxisPointer",currTrigger:t,x:e&&e.offsetX,y:e&&e.offsetY})}))},e.prototype.remove=function(t,e){wS("axisPointer",e)},e.prototype.dispose=function(t,e){wS("axisPointer",e)},e.type="axisPointer",e}(Gd);function MS(t,e){var n,i=[],r=t.seriesIndex;if(null==r||!(n=e.getSeriesByIndex(r)))return{point:[]};var o=n.getData(),a=br(o,t);if(null==a||a<0||V(a))return{point:[]};var s=o.getItemGraphicEl(a),l=n.coordinateSystem;if(n.getTooltipPosition)i=n.getTooltipPosition(a)||[];else if(l&&l.dataToPoint)if(t.isStacked){var u=l.getBaseAxis(),h=l.getOtherAxis(u).dim,c=u.dim,p="x"===h||"radius"===h?1:0,d=o.mapDimension(c),f=[];f[p]=o.get(d,a),f[1-p]=o.get(o.getCalculationInfo("stackResultDimension"),a),i=l.dataToPoint(f)||[]}else i=l.dataToPoint(o.getValues(O(l.dimensions,(function(t){return o.mapDimension(t)})),a))||[];else if(s){var g=s.getBoundingRect().clone();g.applyTransform(s.transform),i=[g.x+g.width/2,g.y+g.height/2]}return{point:i,el:s}}var TS=wr();function CS(t,e,n){var i=t.currTrigger,r=[t.x,t.y],o=t,a=t.dispatchAction||B(n.dispatchAction,n),s=e.getComponent("axisPointer").coordSysAxesInfo;if(s){LS(r)&&(r=MS({seriesIndex:o.seriesIndex,dataIndex:o.dataIndex},e).point);var l=LS(r),u=o.axesInfo,h=s.axesInfo,c="leave"===i||LS(r),p={},d={},f={list:[],map:{}},g={showPointer:z(AS,d),showTooltip:z(DS,f)};P(s.coordSysMap,(function(t,e){var n=l||t.containPoint(r);P(s.coordSysAxesInfo[e],(function(t,e){var i=t.axis,o=function(t,e){for(var n=0;n<(t||[]).length;n++){var i=t[n];if(e.axis.dim===i.axisDim&&e.axis.model.componentIndex===i.axisIndex)return i}}(u,t);if(!c&&n&&(!u||o)){var a=o&&o.value;null!=a||l||(a=i.pointToData(r)),null!=a&&IS(t,a,g,!1,p)}}))}));var y={};return P(h,(function(t,e){var n=t.linkGroup;n&&!d[e]&&P(n.axesInfo,(function(e,i){var r=d[i];if(e!==t&&r){var o=r.value;n.mapper&&(o=t.axis.scale.parse(n.mapper(o,kS(e),kS(t)))),y[t.key]=o}}))})),P(y,(function(t,e){IS(h[e],t,g,!0,p)})),function(t,e,n){var i=n.axesInfo=[];P(e,(function(e,n){var r=e.axisPointerModel.option,o=t[n];o?(!e.useHandle&&(r.status="show"),r.value=o.value,r.seriesDataIndices=(o.payloadBatch||[]).slice()):!e.useHandle&&(r.status="hide"),"show"===r.status&&i.push({axisDim:e.axis.dim,axisIndex:e.axis.model.componentIndex,value:r.value})}))}(d,h,p),function(t,e,n,i){if(LS(e)||!t.list.length)return void i({type:"hideTip"});var r=((t.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};i({type:"showTip",escapeConnect:!0,x:e[0],y:e[1],tooltipOption:n.tooltipOption,position:n.position,dataIndexInside:r.dataIndexInside,dataIndex:r.dataIndex,seriesIndex:r.seriesIndex,dataByCoordSys:t.list})}(f,r,t,a),function(t,e,n){var i=n.getZr(),r="axisPointerLastHighlights",o=TS(i)[r]||{},a=TS(i)[r]={};P(t,(function(t,e){var n=t.axisPointerModel.option;"show"===n.status&&P(n.seriesDataIndices,(function(t){var e=t.seriesIndex+" | "+t.dataIndex;a[e]=t}))}));var s=[],l=[];P(o,(function(t,e){!a[e]&&l.push(t)})),P(a,(function(t,e){!o[e]&&s.push(t)})),l.length&&n.dispatchAction({type:"downplay",escapeConnect:!0,notBlur:!0,batch:l}),s.length&&n.dispatchAction({type:"highlight",escapeConnect:!0,notBlur:!0,batch:s})}(h,0,n),p}}function IS(t,e,n,i,r){var o=t.axis;if(!o.scale.isBlank()&&o.containData(e))if(t.involveSeries){var a=function(t,e){var n=e.axis,i=n.dim,r=t,o=[],a=Number.MAX_VALUE,s=-1;return P(e.seriesModels,(function(e,l){var u,h,c=e.getData().mapDimensionsAll(i);if(e.getAxisTooltipData){var p=e.getAxisTooltipData(c,t,n);h=p.dataIndices,u=p.nestestValue}else{if(!(h=e.getData().indicesOfNearest(c[0],t,"category"===n.type?.5:null)).length)return;u=e.getData().get(c[0],h[0])}if(null!=u&&isFinite(u)){var d=t-u,f=Math.abs(d);f<=a&&((f<a||d>=0&&s<0)&&(a=f,s=d,r=u,o.length=0),P(h,(function(t){o.push({seriesIndex:e.seriesIndex,dataIndexInside:t,dataIndex:e.getData().getRawIndex(t)})})))}})),{payloadBatch:o,snapToValue:r}}(e,t),s=a.payloadBatch,l=a.snapToValue;s[0]&&null==r.seriesIndex&&T(r,s[0]),!i&&t.snap&&o.containData(l)&&null!=l&&(e=l),n.showPointer(t,e,s),n.showTooltip(t,a,l)}else n.showPointer(t,e)}function AS(t,e,n,i){t[e.key]={value:n,payloadBatch:i}}function DS(t,e,n,i){var r=n.payloadBatch,o=e.axis,a=o.model,s=e.axisPointerModel;if(e.triggerTooltip&&r.length){var l=e.coordSys.model,u=Gw(l),h=t.map[u];h||(h=t.map[u]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},t.list.push(h)),h.dataByAxis.push({axisDim:o.dim,axisIndex:a.componentIndex,axisType:a.type,axisId:a.id,value:i,valueLabelOpt:{precision:s.get(["label","precision"]),formatter:s.get(["label","formatter"])},seriesDataIndices:r.slice()})}}function kS(t){var e=t.axis.model,n={},i=n.axisDim=t.axis.dim;return n.axisIndex=n[i+"AxisIndex"]=e.componentIndex,n.axisName=n[i+"AxisName"]=e.name,n.axisId=n[i+"AxisId"]=e.id,n}function LS(t){return!t||null==t[0]||isNaN(t[0])||null==t[1]||isNaN(t[1])}function PS(t){Uw.registerAxisPointerClass("CartesianAxisPointer",pS),t.registerComponentModel(yS),t.registerComponentView(SS),t.registerPreprocessor((function(t){if(t){(!t.axisPointer||0===t.axisPointer.length)&&(t.axisPointer={});var e=t.axisPointer.link;e&&!V(e)&&(t.axisPointer.link=[e])}})),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,(function(t,e){t.getComponent("axisPointer").coordSysAxesInfo=Bw(t,e)})),t.registerAction({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},CS)}function OS(t,e){e&&(e.font=e.textFont||e.font,ct(e,"textStrokeWidth")&&(t.lineWidth=e.textStrokeWidth),ct(e,"textAlign")&&(t.align=e.textAlign),ct(e,"textVerticalAlign")&&(t.verticalAlign=e.textVerticalAlign),ct(e,"textLineHeight")&&(t.lineHeight=e.textLineHeight),ct(e,"textWidth")&&(t.width=e.textWidth),ct(e,"textHeight")&&(t.height=e.textHeight),ct(e,"textBackgroundColor")&&(t.backgroundColor=e.textBackgroundColor),ct(e,"textPadding")&&(t.padding=e.textPadding),ct(e,"textBorderColor")&&(t.borderColor=e.textBorderColor),ct(e,"textBorderWidth")&&(t.borderWidth=e.textBorderWidth),ct(e,"textBorderRadius")&&(t.borderRadius=e.textBorderRadius),ct(e,"textBoxShadowColor")&&(t.shadowColor=e.textBoxShadowColor),ct(e,"textBoxShadowBlur")&&(t.shadowBlur=e.textBoxShadowBlur),ct(e,"textBoxShadowOffsetX")&&(t.shadowOffsetX=e.textBoxShadowOffsetX),ct(e,"textBoxShadowOffsetY")&&(t.shadowOffsetY=e.textBoxShadowOffsetY))}var RS=wr(),NS={path:null,compoundPath:null,group:Pi,image:Wa,text:Qa},ES=function(t){var e=t.graphic;V(e)?e[0]&&e[0].elements?t.graphic=[t.graphic[0]]:t.graphic=[{elements:e}]:e&&!e.elements&&(t.graphic=[{elements:[e]}])},BS=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.mergeOption=function(e,n){var i=this.option.elements;this.option.elements=null,t.prototype.mergeOption.call(this,e,n),this.option.elements=i},e.prototype.optionUpdated=function(t,e){var n=this.option,i=(e?n:t).elements,r=n.elements=e?[]:n.elements,o=[];this._flatten(i,o,null);var a=gr(r,o,"normalMerge"),s=this._elOptionsToUpdate=[];P(a,(function(t,e){var n=t.newOption;n&&(s.push(n),function(t,e){var n=t.existing;if(e.id=t.keyInfo.id,!e.type&&n&&(e.type=n.type),null==e.parentId){var i=e.parentOption;i?e.parentId=i.id:n&&(e.parentId=n.parentId)}e.parentOption=null}(t,n),function(t,e,n){var i=T({},n),r=t[e],o=n.$action||"merge";if("merge"===o){if(r)S(r,i,!0),gc(r,i,{ignoreSize:!0}),vc(n,r);else t[e]=i}else"replace"===o?t[e]=i:"remove"===o&&r&&(t[e]=null)}(r,e,n),function(t,e){if(!t)return;if(t.hv=e.hv=[HS(e,["left","right"]),HS(e,["top","bottom"])],"group"===t.type){var n=t,i=e;null==n.width&&(n.width=i.width=0),null==n.height&&(n.height=i.height=0)}}(r[e],n))}),this);for(var l=r.length-1;l>=0;l--)null==r[l]?r.splice(l,1):delete r[l].$action},e.prototype._flatten=function(t,e,n){P(t,(function(t){if(t){n&&(t.parentOption=n),e.push(t);var i=t.children;"group"===t.type&&i&&this._flatten(i,e,t),delete t.children}}),this)},e.prototype.useElOptionsToUpdate=function(){var t=this._elOptionsToUpdate;return this._elOptionsToUpdate=null,t},e.type="graphic",e.defaultOption={elements:[]},e}(_c),zS=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(){this._elMap=ut()},e.prototype.render=function(t,e,n){t!==this._lastGraphicModel&&this._clear(),this._lastGraphicModel=t,this._updateElements(t),this._relocate(t,n)},e.prototype._updateElements=function(t){var e=t.useElOptionsToUpdate();if(e){var n=this._elMap,i=this.group;P(e,(function(e){var r=mr(e.id,null),o=null!=r?n.get(r):null,a=mr(e.parentId,null),s=null!=a?n.get(a):i,l=e.type,u=e.style;"text"===l&&u&&e.hv&&e.hv[1]&&(u.textVerticalAlign=u.textBaseline=u.verticalAlign=u.align=null);var h=e.textContent,c=e.textConfig;if(u&&function(t,e,n,i){return t&&(t.legacy||!1!==t.legacy&&!n&&!i&&"tspan"!==e&&("text"===e||ct(t,"text")))}(u,l,!!c,!!h)){var p=function(t,e,n){var i,r,o,a=t;if("text"===e)o=a;else{o={},ct(a,"text")&&(o.text=a.text),ct(a,"rich")&&(o.rich=a.rich),ct(a,"textFill")&&(o.fill=a.textFill),ct(a,"textStroke")&&(o.stroke=a.textStroke),r={type:"text",style:o,silent:!0},i={};var s=ct(a,"textPosition");n?i.position=s?a.textPosition:"inside":s&&(i.position=a.textPosition),ct(a,"textPosition")&&(i.position=a.textPosition),ct(a,"textOffset")&&(i.offset=a.textOffset),ct(a,"textRotation")&&(i.rotation=a.textRotation),ct(a,"textDistance")&&(i.distance=a.textDistance)}return OS(o,t),P(o.rich,(function(t){OS(t,t)})),{textConfig:i,textContent:r}}(u,l,!0);!c&&p.textConfig&&(c=e.textConfig=p.textConfig),!h&&p.textContent&&(h=p.textContent)}var d=function(t){return t=T({},t),P(["id","parentId","$action","hv","bounding","textContent"].concat(lc),(function(e){delete t[e]})),t}(e);var f=e.$action||"merge";"merge"===f?o?o.attr(d):VS(r,s,d,n):"replace"===f?(FS(o,n),VS(r,s,d,n)):"remove"===f&&FS(o,n);var g=n.get(r);if(g&&h)if("merge"===f){var y=g.getTextContent();y?y.attr(h):g.setTextContent(new Qa(h))}else"replace"===f&&g.setTextContent(new Qa(h));if(g){var v=RS(g);v.__ecGraphicWidthOption=e.width,v.__ecGraphicHeightOption=e.height,function(t,e,n){var i=ss(t).eventData;t.silent||t.ignore||i||(i=ss(t).eventData={componentType:"graphic",componentIndex:e.componentIndex,name:t.name});i&&(i.info=n.info)}(g,t,e)}}))}},e.prototype._relocate=function(t,e){for(var n=t.option.elements,i=this.group,r=this._elMap,o=e.getWidth(),a=e.getHeight(),s=0;s<n.length;s++){if((d=null!=(p=mr((c=n[s]).id,null))?r.get(p):null)&&d.isGroup){var l=(f=d.parent)===i,u=RS(d),h=RS(f);u.__ecGraphicWidth=Gi(u.__ecGraphicWidthOption,l?o:h.__ecGraphicWidth)||0,u.__ecGraphicHeight=Gi(u.__ecGraphicHeightOption,l?a:h.__ecGraphicHeight)||0}}for(s=n.length-1;s>=0;s--){var c,p,d;if(d=null!=(p=mr((c=n[s]).id,null))?r.get(p):null){var f=d.parent;h=RS(f);dc(d,c,f===i?{width:o,height:a}:{width:h.__ecGraphicWidth,height:h.__ecGraphicHeight},null,{hv:c.hv,boundingMode:c.bounding})}}},e.prototype._clear=function(){var t=this._elMap;t.each((function(e){FS(e,t)})),this._elMap=ut()},e.prototype.dispose=function(){this._clear()},e.type="graphic",e}(Gd);function VS(t,e,n,i){var r=n.type;var o=ct(NS,r)?NS[r]:du(r);var a=new o(n);e.add(a),i.set(t,a),RS(a).__ecGraphicId=t}function FS(t,e){var n=t&&t.parent;n&&("group"===t.type&&t.traverse((function(t){FS(t,e)})),e.removeKey(RS(t).__ecGraphicId),n.remove(t))}function HS(t,e){var n;return P(e,(function(e){null!=t[e]&&"auto"!==t[e]&&(n=!0)})),n}var GS=["x","y","radius","angle","single"],WS=["cartesian2d","polar","singleAxis"];function US(t){return t+"Axis"}function YS(t,e){var n,i=ut(),r=[],o=ut();t.eachComponent({mainType:"dataZoom",query:e},(function(t){o.get(t.uid)||s(t)}));do{n=!1,t.eachComponent("dataZoom",a)}while(n);function a(t){!o.get(t.uid)&&function(t){var e=!1;return t.eachTargetAxis((function(t,n){var r=i.get(t);r&&r[n]&&(e=!0)})),e}(t)&&(s(t),n=!0)}function s(t){o.set(t.uid,!0),r.push(t),t.eachTargetAxis((function(t,e){(i.get(t)||i.set(t,[]))[e]=!0}))}return r}function XS(t){var e=t.ecModel,n={infoList:[],infoMap:ut()};return t.eachTargetAxis((function(t,i){var r=e.getComponent(US(t),i);if(r){var o=r.getCoordSysModel();if(o){var a=o.uid,s=n.infoMap.get(a);s||(s={model:o,axisModels:[]},n.infoList.push(s),n.infoMap.set(a,s)),s.axisModels.push(r)}}})),n}var ZS=function(){function t(){this.indexList=[],this.indexMap=[]}return t.prototype.add=function(t){this.indexMap[t]||(this.indexList.push(t),this.indexMap[t]=!0)},t}(),jS=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._autoThrottle=!0,n._noTarget=!0,n._rangePropMode=["percent","percent"],n}return n(e,t),e.prototype.init=function(t,e,n){var i=qS(t);this.settledOption=i,this.mergeDefaultAndTheme(t,n),this._doInit(i)},e.prototype.mergeOption=function(t){var e=qS(t);S(this.option,t,!0),S(this.settledOption,e,!0),this._doInit(e)},e.prototype._doInit=function(t){var e=this.option;this._setDefaultThrottle(t),this._updateRangeUse(t);var n=this.settledOption;P([["start","startValue"],["end","endValue"]],(function(t,i){"value"===this._rangePropMode[i]&&(e[t[0]]=n[t[0]]=null)}),this),this._resetTarget()},e.prototype._resetTarget=function(){var t=this.get("orient",!0),e=this._targetAxisInfoMap=ut();this._fillSpecifiedTargetAxis(e)?this._orient=t||this._makeAutoOrientByTargetAxis():(this._orient=t||"horizontal",this._fillAutoTargetAxisByOrient(e,this._orient)),this._noTarget=!0,e.each((function(t){t.indexList.length&&(this._noTarget=!1)}),this)},e.prototype._fillSpecifiedTargetAxis=function(t){var e=!1;return P(GS,(function(n){var i=this.getReferringComponents(US(n),Cr);if(i.specified){e=!0;var r=new ZS;P(i.models,(function(t){r.add(t.componentIndex)})),t.set(n,r)}}),this),e},e.prototype._fillAutoTargetAxisByOrient=function(t,e){var n=this.ecModel,i=!0;if(i){var r="vertical"===e?"y":"x";o(n.findComponents({mainType:r+"Axis"}),r)}i&&o(n.findComponents({mainType:"singleAxis",filter:function(t){return t.get("orient",!0)===e}}),"single");function o(e,n){var r=e[0];if(r){var o=new ZS;if(o.add(r.componentIndex),t.set(n,o),i=!1,"x"===n||"y"===n){var a=r.getReferringComponents("grid",Tr).models[0];a&&P(e,(function(t){r.componentIndex!==t.componentIndex&&a===t.getReferringComponents("grid",Tr).models[0]&&o.add(t.componentIndex)}))}}}i&&P(GS,(function(e){if(i){var r=n.findComponents({mainType:US(e),filter:function(t){return"category"===t.get("type",!0)}});if(r[0]){var o=new ZS;o.add(r[0].componentIndex),t.set(e,o),i=!1}}}),this)},e.prototype._makeAutoOrientByTargetAxis=function(){var t;return this.eachTargetAxis((function(e){!t&&(t=e)}),this),"y"===t?"vertical":"horizontal"},e.prototype._setDefaultThrottle=function(t){if(t.hasOwnProperty("throttle")&&(this._autoThrottle=!1),this._autoThrottle){var e=this.ecModel.option;this.option.throttle=e.animation&&e.animationDurationUpdate>0?100:20}},e.prototype._updateRangeUse=function(t){var e=this._rangePropMode,n=this.get("rangeMode");P([["start","startValue"],["end","endValue"]],(function(i,r){var o=null!=t[i[0]],a=null!=t[i[1]];o&&!a?e[r]="percent":!o&&a?e[r]="value":n?e[r]=n[r]:o&&(e[r]="percent")}))},e.prototype.noTarget=function(){return this._noTarget},e.prototype.getFirstTargetAxisModel=function(){var t;return this.eachTargetAxis((function(e,n){null==t&&(t=this.ecModel.getComponent(US(e),n))}),this),t},e.prototype.eachTargetAxis=function(t,e){this._targetAxisInfoMap.each((function(n,i){P(n.indexList,(function(n){t.call(e,i,n)}))}))},e.prototype.getAxisProxy=function(t,e){var n=this.getAxisModel(t,e);if(n)return n.__dzAxisProxy},e.prototype.getAxisModel=function(t,e){var n=this._targetAxisInfoMap.get(t);if(n&&n.indexMap[e])return this.ecModel.getComponent(US(t),e)},e.prototype.setRawRange=function(t){var e=this.option,n=this.settledOption;P([["start","startValue"],["end","endValue"]],(function(i){null==t[i[0]]&&null==t[i[1]]||(e[i[0]]=n[i[0]]=t[i[0]],e[i[1]]=n[i[1]]=t[i[1]])}),this),this._updateRangeUse(t)},e.prototype.setCalculatedRange=function(t){var e=this.option;P(["start","startValue","end","endValue"],(function(n){e[n]=t[n]}))},e.prototype.getPercentRange=function(){var t=this.findRepresentativeAxisProxy();if(t)return t.getDataPercentWindow()},e.prototype.getValueRange=function(t,e){if(null!=t||null!=e)return this.getAxisProxy(t,e).getDataValueWindow();var n=this.findRepresentativeAxisProxy();return n?n.getDataValueWindow():void 0},e.prototype.findRepresentativeAxisProxy=function(t){if(t)return t.__dzAxisProxy;for(var e,n=this._targetAxisInfoMap.keys(),i=0;i<n.length;i++)for(var r=n[i],o=this._targetAxisInfoMap.get(r),a=0;a<o.indexList.length;a++){var s=this.getAxisProxy(r,o.indexList[a]);if(s.hostedBy(this))return s;e||(e=s)}return e},e.prototype.getRangePropMode=function(){return this._rangePropMode.slice()},e.prototype.getOrient=function(){return this._orient},e.type="dataZoom",e.dependencies=["xAxis","yAxis","radiusAxis","angleAxis","singleAxis","series","toolbox"],e.defaultOption={zlevel:0,z:4,filterMode:"filter",start:0,end:100},e}(_c);function qS(t){var e={};return P(["start","end","startValue","endValue","throttle"],(function(n){t.hasOwnProperty(n)&&(e[n]=t[n])})),e}var KS=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="dataZoom.select",e}(jS),$S=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n,i){this.dataZoomModel=t,this.ecModel=e,this.api=n},e.type="dataZoom",e}(Gd),JS=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="dataZoom.select",e}($S);function QS(t,e,n,i,r,o){t=t||0;var a=n[1]-n[0];if(null!=r&&(r=eM(r,[0,a])),null!=o&&(o=Math.max(o,null!=r?r:0)),"all"===i){var s=Math.abs(e[1]-e[0]);s=eM(s,[0,a]),r=o=eM(s,[r,o]),i=0}e[0]=eM(e[0],n),e[1]=eM(e[1],n);var l=tM(e,i);e[i]+=t;var u,h=r||0,c=n.slice();return l.sign<0?c[0]+=h:c[1]-=h,e[i]=eM(e[i],c),u=tM(e,i),null!=r&&(u.sign!==l.sign||u.span<r)&&(e[1-i]=e[i]+l.sign*r),u=tM(e,i),null!=o&&u.span>o&&(e[1-i]=e[i]+u.sign*o),e}function tM(t,e){var n=t[e]-t[1-e];return{span:Math.abs(n),sign:n>0?-1:n<0?1:e?-1:1}}function eM(t,e){return Math.min(null!=e[1]?e[1]:1/0,Math.max(null!=e[0]?e[0]:-1/0,t))}var nM=P,iM=Ui,rM=function(){function t(t,e,n,i){this._dimName=t,this._axisIndex=e,this.ecModel=i,this._dataZoomModel=n}return t.prototype.hostedBy=function(t){return this._dataZoomModel===t},t.prototype.getDataValueWindow=function(){return this._valueWindow.slice()},t.prototype.getDataPercentWindow=function(){return this._percentWindow.slice()},t.prototype.getTargetSeriesModels=function(){var t=[];return this.ecModel.eachSeries((function(e){if(function(t){var e=t.get("coordinateSystem");return A(WS,e)>=0}(e)){var n=US(this._dimName),i=e.getReferringComponents(n,Tr).models[0];i&&this._axisIndex===i.componentIndex&&t.push(e)}}),this),t},t.prototype.getAxisModel=function(){return this.ecModel.getComponent(this._dimName+"Axis",this._axisIndex)},t.prototype.getMinMaxSpan=function(){return w(this._minMaxSpan)},t.prototype.calculateDataWindow=function(t){var e,n=this._dataExtent,i=this.getAxisModel().axis.scale,r=this._dataZoomModel.getRangePropMode(),o=[0,100],a=[],s=[];nM(["start","end"],(function(l,u){var h=t[l],c=t[l+"Value"];"percent"===r[u]?(null==h&&(h=o[u]),c=i.parse(Hi(h,o,n))):(e=!0,h=Hi(c=null==c?n[u]:i.parse(c),n,o)),s[u]=c,a[u]=h})),iM(s),iM(a);var l=this._minMaxSpan;function u(t,e,n,r,o){var a=o?"Span":"ValueSpan";QS(0,t,n,"all",l["min"+a],l["max"+a]);for(var s=0;s<2;s++)e[s]=Hi(t[s],n,r,!0),o&&(e[s]=i.parse(e[s]))}return e?u(s,a,n,o,!1):u(a,s,o,n,!0),{valueWindow:s,percentWindow:a}},t.prototype.reset=function(t){if(t===this._dataZoomModel){var e=this.getTargetSeriesModels();this._dataExtent=function(t,e,n){var i=[1/0,-1/0];nM(n,(function(t){!function(t,e,n){e&&P(v_(e,n),(function(n){var i=e.getApproximateExtent(n);i[0]<t[0]&&(t[0]=i[0]),i[1]>t[1]&&(t[1]=i[1])}))}(i,t.getData(),e)}));var r=t.getAxisModel(),o=s_(r.axis.scale,r,i).calculate();return[o.min,o.max]}(this,this._dimName,e),this._updateMinMaxSpan();var n=this.calculateDataWindow(t.settledOption);this._valueWindow=n.valueWindow,this._percentWindow=n.percentWindow,this._setAxisModel()}},t.prototype.filterData=function(t,e){if(t===this._dataZoomModel){var n=this._dimName,i=this.getTargetSeriesModels(),r=t.get("filterMode"),o=this._valueWindow;"none"!==r&&nM(i,(function(t){var e=t.getData(),i=e.mapDimensionsAll(n);i.length&&("weakFilter"===r?e.filterSelf((function(t){for(var n,r,a,s=0;s<i.length;s++){var l=e.get(i[s],t),u=!isNaN(l),h=l<o[0],c=l>o[1];if(u&&!h&&!c)return!0;u&&(a=!0),h&&(n=!0),c&&(r=!0)}return a&&n&&r})):nM(i,(function(n){if("empty"===r)t.setData(e=e.map(n,(function(t){return function(t){return t>=o[0]&&t<=o[1]}(t)?t:NaN})));else{var i={};i[n]=o,e.selectRange(i)}})),nM(i,(function(t){e.setApproximateExtent(o,t)})))}))}},t.prototype._updateMinMaxSpan=function(){var t=this._minMaxSpan={},e=this._dataZoomModel,n=this._dataExtent;nM(["min","max"],(function(i){var r=e.get(i+"Span"),o=e.get(i+"ValueSpan");null!=o&&(o=this.getAxisModel().axis.scale.parse(o)),null!=o?r=Hi(n[0]+o,n,[0,100],!0):null!=r&&(o=Hi(r,[0,100],n,!0)-n[0]),t[i+"Span"]=r,t[i+"ValueSpan"]=o}),this)},t.prototype._setAxisModel=function(){var t=this.getAxisModel(),e=this._percentWindow,n=this._valueWindow;if(e){var i=Zi(n,[0,500]);i=Math.min(i,20);var r=t.axis.scale.rawExtentInfo;0!==e[0]&&r.setDeterminedMinMax("min",+n[0].toFixed(i)),100!==e[1]&&r.setDeterminedMinMax("max",+n[1].toFixed(i)),r.freeze()}},t}();var oM={getTargetSeries:function(t){function e(e){t.eachComponent("dataZoom",(function(n){n.eachTargetAxis((function(i,r){var o=t.getComponent(US(i),r);e(i,r,o,n)}))}))}e((function(t,e,n,i){n.__dzAxisProxy=null}));var n=[];e((function(e,i,r,o){r.__dzAxisProxy||(r.__dzAxisProxy=new rM(e,i,o,t),n.push(r.__dzAxisProxy))}));var i=ut();return P(n,(function(t){P(t.getTargetSeriesModels(),(function(t){i.set(t.uid,t)}))})),i},overallReset:function(t,e){t.eachComponent("dataZoom",(function(t){t.eachTargetAxis((function(e,n){t.getAxisProxy(e,n).reset(t)})),t.eachTargetAxis((function(n,i){t.getAxisProxy(n,i).filterData(t,e)}))})),t.eachComponent("dataZoom",(function(t){var e=t.findRepresentativeAxisProxy();if(e){var n=e.getDataPercentWindow(),i=e.getDataValueWindow();t.setCalculatedRange({start:n[0],end:n[1],startValue:i[0],endValue:i[1]})}}))}};var aM=!1;function sM(t){aM||(aM=!0,t.registerProcessor(t.PRIORITY.PROCESSOR.FILTER,oM),function(t){t.registerAction("dataZoom",(function(t,e){P(YS(e,t),(function(e){e.setRawRange({start:t.start,end:t.end,startValue:t.startValue,endValue:t.endValue})}))}))}(t),t.registerSubTypeDefaulter("dataZoom",(function(){return"slider"})))}function lM(t){t.registerComponentModel(KS),t.registerComponentView(JS),sM(t)}var uM=function(){},hM={};function cM(t,e){hM[t]=e}function pM(t){return hM[t]}var dM=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.optionUpdated=function(){t.prototype.optionUpdated.apply(this,arguments);var e=this.ecModel;P(this.option.feature,(function(t,n){var i=pM(n);i&&(i.getDefaultOption&&(i.defaultOption=i.getDefaultOption(e)),S(t,i.defaultOption))}))},e.type="toolbox",e.layoutMode={type:"box",ignoreSize:!0},e.defaultOption={show:!0,z:6,zlevel:0,orient:"horizontal",left:"right",top:"top",backgroundColor:"transparent",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemSize:15,itemGap:8,showTitle:!0,iconStyle:{borderColor:"#666",color:"none"},emphasis:{iconStyle:{borderColor:"#3E98C5"}},tooltip:{show:!1}},e}(_c);function fM(t,e){var n=Kh(e.get("padding")),i=e.getItemStyle(["color","opacity"]);return i.fill=e.get("backgroundColor"),t=new Ka({shape:{x:t.x-n[3],y:t.y-n[0],width:t.width+n[1]+n[3],height:t.height+n[0]+n[2],r:e.get("borderRadius")},style:i,silent:!0,z2:-1})}var gM=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.render=function(t,e,n,i){var r=this.group;if(r.removeAll(),t.get("show")){var o=+t.get("itemSize"),a=t.get("feature")||{},s=this._features||(this._features={}),l=[];P(a,(function(t,e){l.push(e)})),new Lv(this._featureNames||[],l).add(u).update(u).remove(z(u,null)).execute(),this._featureNames=l,function(t,e,n){var i=e.getBoxLayoutParams(),r=e.get("padding"),o={width:n.getWidth(),height:n.getHeight()},a=pc(i,o,r);cc(e.get("orient"),t,e.get("itemGap"),a.width,a.height),dc(t,i,o,r)}(r,t,n),r.add(fM(r.getBoundingRect(),t)),r.eachChild((function(t){var e=t.__title,i=t.ensureState("emphasis"),a=i.textConfig||(i.textConfig={}),s=t.getTextContent(),l=s&&s.states.emphasis;if(l&&!F(l)&&e){var u=l.style||(l.style={}),h=Nn(e,Qa.makeFont(u)),c=t.x+r.x,p=!1;t.y+r.y+o+h.height>n.getHeight()&&(a.position="top",p=!0);var d=p?-5-h.height:o+8;c+h.width/2>n.getWidth()?(a.position=["100%",d],u.align="right"):c-h.width/2<0&&(a.position=[0,d],u.align="left")}}))}function u(u,h){var c,p=l[u],d=l[h],f=a[p],g=new sh(f,t,t.ecModel);if(i&&null!=i.newTitle&&i.featureName===p&&(f.title=i.newTitle),p&&!d){if(function(t){return 0===t.indexOf("my")}(p))c={onclick:g.option.onclick,featureName:p};else{var y=pM(p);if(!y)return;c=new y}s[p]=c}else if(!(c=s[d]))return;if(c.uid=uh("toolbox-feature"),c.model=g,c.ecModel=e,c.api=n,c instanceof uM){if(!p&&d)return void(c.dispose&&c.dispose(e,n));if(!g.get("show")||c.unusable)return void(c.remove&&c.remove(e,n))}!function(i,a,s){var l,u,h=i.getModel("iconStyle"),c=i.getModel(["emphasis","iconStyle"]),p=a instanceof uM&&a.getIcons?a.getIcons():i.get("icon"),d=i.get("title")||{};"string"==typeof p?(l={})[s]=p:l=p;"string"==typeof d?(u={})[s]=d:u=d;var f=i.iconPaths={};P(l,(function(s,l){var p=Ru(s,{},{x:-o/2,y:-o/2,width:o,height:o});p.setStyle(h.getItemStyle()),p.ensureState("emphasis").style=c.getItemStyle();var d=new Qa({style:{text:u[l],align:c.get("textAlign"),borderRadius:c.get("textBorderRadius"),padding:c.get("textPadding"),fill:null},ignore:!0});p.setTextContent(d);var g=t.getModel("tooltip");g&&g.get("show")&&(p.tooltip=T({content:u[l],formatter:g.get("formatter",!0)||function(){return u[l]},formatterParams:{componentType:"toolbox",name:l,title:u[l],$vars:["name","title"]},position:g.get("position",!0)||"bottom"},g.option)),p.__title=u[l],p.on("mouseover",(function(){var e=c.getItemStyle(),n="vertical"===t.get("orient")?null==t.get("right")?"right":"left":null==t.get("bottom")?"bottom":"top";d.setStyle({fill:c.get("textFill")||e.fill||e.stroke||"#000",backgroundColor:c.get("textBackgroundColor")}),p.setTextConfig({position:c.get("textPosition")||n}),d.ignore=!t.get("showTitle"),Os(this)})).on("mouseout",(function(){"emphasis"!==i.get(["iconStatus",l])&&Rs(this),d.hide()})),("emphasis"===i.get(["iconStatus",l])?Os:Rs)(p),r.add(p),p.on("click",B(a.onclick,a,e,n,l)),f[l]=p}))}(g,c,p),g.setIconStatus=function(t,e){var n=this.option,i=this.iconPaths;n.iconStatus=n.iconStatus||{},n.iconStatus[t]=e,i[t]&&("emphasis"===e?Os:Rs)(i[t])},c instanceof uM&&c.render&&c.render(g,e,n,i)}},e.prototype.updateView=function(t,e,n,i){P(this._features,(function(t){t instanceof uM&&t.updateView&&t.updateView(t.model,e,n,i)}))},e.prototype.remove=function(t,e){P(this._features,(function(n){n instanceof uM&&n.remove&&n.remove(t,e)})),this.group.removeAll()},e.prototype.dispose=function(t,e){P(this._features,(function(n){n instanceof uM&&n.dispose&&n.dispose(t,e)}))},e.type="toolbox",e}(Gd);var yM=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.onclick=function(t,e){var n=this.model,i=n.get("name")||t.get("title.0.text")||"echarts",r="svg"===e.getZr().painter.getType(),o=r?"svg":n.get("type",!0)||"png",s=e.getConnectedDataURL({type:o,backgroundColor:n.get("backgroundColor",!0)||t.get("backgroundColor")||"#fff",connectedBackgroundColor:n.get("connectedBackgroundColor"),excludeComponents:n.get("excludeComponents"),pixelRatio:n.get("pixelRatio")});if("function"!=typeof MouseEvent||!a.browser.newEdge&&(a.browser.ie||a.browser.edge))if(window.navigator.msSaveOrOpenBlob||r){var l=s.split(","),u=l[0].indexOf("base64")>-1,h=r?decodeURIComponent(l[1]):l[1];u&&(h=atob(h));var c=i+"."+o;if(window.navigator.msSaveOrOpenBlob){for(var p=h.length,d=new Uint8Array(p);p--;)d[p]=h.charCodeAt(p);var f=new Blob([d]);window.navigator.msSaveOrOpenBlob(f,c)}else{var g=document.createElement("iframe");document.body.appendChild(g);var y=g.contentWindow,v=y.document;v.open("image/svg+xml","replace"),v.write(h),v.close(),y.focus(),v.execCommand("SaveAs",!0,c),document.body.removeChild(g)}}else{var m=n.get("lang"),_='<body style="margin:0;"><img src="'+s+'" style="max-width:100%;" title="'+(m&&m[0]||"")+'" /></body>',x=window.open();x.document.write(_),x.document.title=i}else{var b=document.createElement("a");b.download=i+"."+o,b.target="_blank",b.href=s;var w=new MouseEvent("click",{view:document.defaultView,bubbles:!0,cancelable:!1});b.dispatchEvent(w)}},e.getDefaultOption=function(t){return{show:!0,icon:"M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0",title:t.getLocale(["toolbox","saveAsImage","title"]),type:"png",connectedBackgroundColor:"#fff",name:"",excludeComponents:["toolbox"],pixelRatio:1,lang:t.getLocale(["toolbox","saveAsImage","lang"])}},e}(uM);yM.prototype.unusable=!a.canvasSupported;var vM="__ec_magicType_stack__",mM=[["line","bar"],["stack"]],_M=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.getIcons=function(){var t=this.model,e=t.get("icon"),n={};return P(t.get("type"),(function(t){e[t]&&(n[t]=e[t])})),n},e.getDefaultOption=function(t){return{show:!0,type:[],icon:{line:"M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4",bar:"M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7",stack:"M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z"},title:t.getLocale(["toolbox","magicType","title"]),option:{},seriesIndex:{}}},e.prototype.onclick=function(t,e,n){var i=this.model,r=i.get(["seriesIndex",n]);if(xM[n]){var o,a={series:[]};P(mM,(function(t){A(t,n)>=0&&P(t,(function(t){i.setIconStatus(t,"normal")}))})),i.setIconStatus(n,"emphasis"),t.eachComponent({mainType:"series",query:null==r?null:{seriesIndex:r}},(function(t){var e=t.subType,r=t.id,o=xM[n](e,r,t,i);o&&(C(o,t.option),a.series.push(o));var s=t.coordinateSystem;if(s&&"cartesian2d"===s.type&&("line"===n||"bar"===n)){var l=s.getAxesByScale("ordinal")[0];if(l){var u=l.dim+"Axis",h=t.getReferringComponents(u,Tr).models[0].componentIndex;a[u]=a[u]||[];for(var c=0;c<=h;c++)a[u][h]=a[u][h]||{};a[u][h].boundaryGap="bar"===n}}})),"stack"===n&&(o=S({stack:i.option.title.tiled,tiled:i.option.title.stack},i.option.title)),e.dispatchAction({type:"changeMagicType",currentType:n,newOption:a,newTitle:o,featureName:"magicType"})}},e}(uM),xM={line:function(t,e,n,i){if("bar"===t)return S({id:e,type:"line",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},i.get(["option","line"])||{},!0)},bar:function(t,e,n,i){if("line"===t)return S({id:e,type:"bar",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},i.get(["option","bar"])||{},!0)},stack:function(t,e,n,i){var r=n.get("stack")===vM;if("line"===t||"bar"===t)return i.setIconStatus("stack",r?"normal":"emphasis"),S({id:e,stack:r?"":vM},i.get(["option","stack"])||{},!0)}};vv({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},(function(t,e){e.mergeOption(t.newOption)}));var bM=new Array(60).join("-"),wM="\t";function SM(t){return t.replace(/^\s\s*/,"").replace(/\s\s*$/,"")}var MM=new RegExp("[\t]+","g");function TM(t,e){var n=t.split(new RegExp("\n*"+bM+"\n*","g")),i={series:[]};return P(n,(function(t,n){if(function(t){if(t.slice(0,t.indexOf("\n")).indexOf(wM)>=0)return!0}(t)){var r=function(t){for(var e=t.split(/\n+/g),n=[],i=O(SM(e.shift()).split(MM),(function(t){return{name:t,data:[]}})),r=0;r<e.length;r++){var o=SM(e[r]).split(MM);n.push(o.shift());for(var a=0;a<o.length;a++)i[a]&&(i[a].data[r]=o[a])}return{series:i,categories:n}}(t),o=e[n],a=o.axisDim+"Axis";o&&(i[a]=i[a]||[],i[a][o.axisIndex]={data:r.categories},i.series=i.series.concat(r.series))}else{r=function(t){for(var e=t.split(/\n+/g),n=SM(e.shift()),i=[],r=0;r<e.length;r++){var o=SM(e[r]);if(o){var a=o.split(MM),s="",l=void 0,u=!1;isNaN(a[0])?(u=!0,s=a[0],a=a.slice(1),i[r]={name:s,value:[]},l=i[r].value):l=i[r]=[];for(var h=0;h<a.length;h++)l.push(+a[h]);1===l.length&&(u?i[r].value=l[0]:i[r]=l[0])}}return{name:n,data:i}}(t);i.series.push(r)}})),i}var CM=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.onclick=function(t,e){var n=e.getDom(),i=this.model;this._dom&&n.removeChild(this._dom);var r=document.createElement("div");r.style.cssText="position:absolute;left:5px;top:5px;bottom:5px;right:5px;",r.style.backgroundColor=i.get("backgroundColor")||"#fff";var o=document.createElement("h4"),a=i.get("lang")||[];o.innerHTML=a[0]||i.get("title"),o.style.cssText="margin: 10px 20px;",o.style.color=i.get("textColor");var s=document.createElement("div"),l=document.createElement("textarea");s.style.cssText="display:block;width:100%;overflow:auto;";var u=i.get("optionToContent"),h=i.get("contentToOption"),c=function(t){var e,n,i,r=function(t){var e={},n=[],i=[];return t.eachRawSeries((function(t){var r=t.coordinateSystem;if(!r||"cartesian2d"!==r.type&&"polar"!==r.type)n.push(t);else{var o=r.getBaseAxis();if("category"===o.type){var a=o.dim+"_"+o.index;e[a]||(e[a]={categoryAxis:o,valueAxis:r.getOtherAxis(o),series:[]},i.push({axisDim:o.dim,axisIndex:o.index})),e[a].series.push(t)}else n.push(t)}})),{seriesGroupByCategoryAxis:e,other:n,meta:i}}(t);return{value:N([(n=r.seriesGroupByCategoryAxis,i=[],P(n,(function(t,e){var n=t.categoryAxis,r=t.valueAxis.dim,o=[" "].concat(O(t.series,(function(t){return t.name}))),a=[n.model.getCategories()];P(t.series,(function(t){var e=t.getRawData();a.push(t.getRawData().mapArray(e.mapDimension(r),(function(t){return t})))}));for(var s=[o.join(wM)],l=0;l<a[0].length;l++){for(var u=[],h=0;h<a.length;h++)u.push(a[h][l]);s.push(u.join(wM))}i.push(s.join("\n"))})),i.join("\n\n"+bM+"\n\n")),(e=r.other,O(e,(function(t){var e=t.getRawData(),n=[t.name],i=[];return e.each(e.dimensions,(function(){for(var t=arguments.length,r=arguments[t-1],o=e.getName(r),a=0;a<t-1;a++)i[a]=arguments[a];n.push((o?o+wM:"")+i.join(wM))})),n.join("\n")})).join("\n\n"+bM+"\n\n"))],(function(t){return!!t.replace(/[\n\t\s]/g,"")})).join("\n\n"+bM+"\n\n"),meta:r.meta}}(t);if("function"==typeof u){var p=u(e.getOption());"string"==typeof p?s.innerHTML=p:Z(p)&&s.appendChild(p)}else s.appendChild(l),l.readOnly=i.get("readOnly"),l.style.cssText="width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;",l.style.color=i.get("textColor"),l.style.borderColor=i.get("textareaBorderColor"),l.style.backgroundColor=i.get("textareaColor"),l.value=c.value;var d=c.meta,f=document.createElement("div");f.style.cssText="position:absolute;bottom:0;left:0;right:0;";var g="float:right;margin-right:20px;border:none;cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px",y=document.createElement("div"),v=document.createElement("div");g+=";background-color:"+i.get("buttonColor"),g+=";color:"+i.get("buttonTextColor");var m=this;function _(){n.removeChild(r),m._dom=null}$t(y,"click",_),$t(v,"click",(function(){if(null==h&&null!=u||null!=h&&null==u)_();else{var t;try{t="function"==typeof h?h(s,e.getOption()):TM(l.value,d)}catch(t){throw _(),new Error("Data view format error "+t)}t&&e.dispatchAction({type:"changeDataView",newOption:t}),_()}})),y.innerHTML=a[1],v.innerHTML=a[2],v.style.cssText=g,y.style.cssText=g,!i.get("readOnly")&&f.appendChild(v),f.appendChild(y),r.appendChild(o),r.appendChild(s),r.appendChild(f),s.style.height=n.clientHeight-80+"px",n.appendChild(r),this._dom=r},e.prototype.remove=function(t,e){this._dom&&e.getDom().removeChild(this._dom)},e.prototype.dispose=function(t,e){this.remove(t,e)},e.getDefaultOption=function(t){return{show:!0,readOnly:!1,optionToContent:null,contentToOption:null,icon:"M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28",title:t.getLocale(["toolbox","dataView","title"]),lang:t.getLocale(["toolbox","dataView","lang"]),backgroundColor:"#fff",textColor:"#000",textareaColor:"#fff",textareaBorderColor:"#333",buttonColor:"#c23531",buttonTextColor:"#fff"}},e}(uM);function IM(t,e){return O(t,(function(t,n){var i=e&&e[n];if(U(i)&&!V(i)){U(t)&&!V(t)||(t={value:t});var r=null!=i.name&&null==t.name;return t=C(t,i),r&&delete t.name,t}return t}))}vv({type:"changeDataView",event:"dataViewChanged",update:"prepareAndUpdate"},(function(t,e){var n=[];P(t.newOption.series,(function(t){var i=e.getSeriesByName(t.name)[0];if(i){var r=i.get("data");n.push({name:t.name,data:IM(t.data,r)})}else n.push(T({type:"scatter"},t))})),e.mergeOption(C({series:n},t.newOption))}));var AM=P,DM=wr();function kM(t){var e=DM(t);return e.snapshots||(e.snapshots=[{}]),e.snapshots}var LM=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.onclick=function(t,e){!function(t){DM(t).snapshots=null}(t),e.dispatchAction({type:"restore",from:this.uid})},e.getDefaultOption=function(t){return{show:!0,icon:"M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5",title:t.getLocale(["toolbox","restore","title"])}},e}(uM);vv({type:"restore",event:"restore",update:"prepareAndUpdate"},(function(t,e){e.resetOption("recreate")}));var PM="\0_ec_interaction_mutex";function OM(t,e){return!!RM(t)[e]}function RM(t){return t[PM]||(t[PM]={})}vv({type:"takeGlobalCursor",event:"globalCursorTaken",update:"update"},(function(){}));var NM=!0,EM=Math.min,BM=Math.max,zM=Math.pow,VM="globalPan",FM={w:[0,0],e:[0,1],n:[1,0],s:[1,1]},HM={w:"ew",e:"ew",n:"ns",s:"ns",ne:"nesw",sw:"nesw",nw:"nwse",se:"nwse"},GM={brushStyle:{lineWidth:2,stroke:"rgba(210,219,238,0.3)",fill:"#D2DBEE"},transformable:!0,brushMode:"single",removeOnClick:!1},WM=0,UM=function(t){function e(e){var n=t.call(this)||this;return n._track=[],n._covers=[],n._handlers={},n._zr=e,n.group=new Pi,n._uid="brushController_"+WM++,P(vT,(function(t,e){this._handlers[e]=B(t,this)}),n),n}return n(e,t),e.prototype.enableBrush=function(t){return this._brushType&&this._doDisableBrush(),t.brushType&&this._doEnableBrush(t),this},e.prototype._doEnableBrush=function(t){var e=this._zr;this._enableGlobalPan||function(t,e,n){RM(t)[e]=n}(e,VM,this._uid),P(this._handlers,(function(t,n){e.on(n,t)})),this._brushType=t.brushType,this._brushOption=S(w(GM),t,!0)},e.prototype._doDisableBrush=function(){var t=this._zr;!function(t,e,n){var i=RM(t);i[e]===n&&(i[e]=null)}(t,VM,this._uid),P(this._handlers,(function(e,n){t.off(n,e)})),this._brushType=this._brushOption=null},e.prototype.setPanels=function(t){if(t&&t.length){var e=this._panels={};P(t,(function(t){e[t.panelId]=w(t)}))}else this._panels=null;return this},e.prototype.mount=function(t){t=t||{},this._enableGlobalPan=t.enableGlobalPan;var e=this.group;return this._zr.add(e),e.attr({x:t.x||0,y:t.y||0,rotation:t.rotation||0,scaleX:t.scaleX||1,scaleY:t.scaleY||1}),this._transform=e.getLocalTransform(),this},e.prototype.updateCovers=function(t){t=O(t,(function(t){return S(w(GM),t,!0)}));var e=this._covers,n=this._covers=[],i=this,r=this._creatingCover;return new Lv(e,t,(function(t,e){return o(t.__brushOption,e)}),o).add(a).update(a).remove((function(t){e[t]!==r&&i.group.remove(e[t])})).execute(),this;function o(t,e){return(null!=t.id?t.id:"\0-brush-index-"+e)+"-"+t.brushType}function a(o,a){var s=t[o];if(null!=a&&e[a]===r)n[o]=e[a];else{var l=n[o]=null!=a?(e[a].__brushOption=s,e[a]):XM(i,YM(i,s));qM(i,l)}}},e.prototype.unmount=function(){return this.enableBrush(!1),QM(this),this._zr.remove(this.group),this},e.prototype.dispose=function(){this.unmount(),this.off()},e}(Bt);function YM(t,e){var n=_T[e.brushType].createCover(t,e);return n.__brushOption=e,jM(n,e),t.group.add(n),n}function XM(t,e){var n=KM(e);return n.endCreating&&(n.endCreating(t,e),jM(e,e.__brushOption)),e}function ZM(t,e){var n=e.__brushOption;KM(e).updateCoverShape(t,e,n.range,n)}function jM(t,e){var n=e.z;null==n&&(n=1e4),t.traverse((function(t){t.z=n,t.z2=n}))}function qM(t,e){KM(e).updateCommon(t,e),ZM(t,e)}function KM(t){return _T[t.__brushOption.brushType]}function $M(t,e,n){var i,r=t._panels;if(!r)return NM;var o=t._transform;return P(r,(function(t){t.isTargetByCursor(e,n,o)&&(i=t)})),i}function JM(t,e){var n=t._panels;if(!n)return NM;var i=e.__brushOption.panelId;return null!=i?n[i]:NM}function QM(t){var e=t._covers,n=e.length;return P(e,(function(e){t.group.remove(e)}),t),e.length=0,!!n}function tT(t,e){var n=O(t._covers,(function(t){var e=t.__brushOption,n=w(e.range);return{brushType:e.brushType,panelId:e.panelId,range:n}}));t.trigger("brush",{areas:n,isEnd:!!e.isEnd,removeOnClick:!!e.removeOnClick})}function eT(t){var e=t.length-1;return e<0&&(e=0),[t[0],t[e]]}function nT(t,e,n,i){var r=new Pi;return r.add(new Ka({name:"main",style:aT(n),silent:!0,draggable:!0,cursor:"move",drift:z(uT,t,e,r,["n","s","w","e"]),ondragend:z(tT,e,{isEnd:!0})})),P(i,(function(n){r.add(new Ka({name:n.join(""),style:{opacity:0},draggable:!0,silent:!0,invisible:!0,drift:z(uT,t,e,r,n),ondragend:z(tT,e,{isEnd:!0})}))})),r}function iT(t,e,n,i){var r=i.brushStyle.lineWidth||0,o=BM(r,6),a=n[0][0],s=n[1][0],l=a-r/2,u=s-r/2,h=n[0][1],c=n[1][1],p=h-o+r/2,d=c-o+r/2,f=h-a,g=c-s,y=f+r,v=g+r;oT(t,e,"main",a,s,f,g),i.transformable&&(oT(t,e,"w",l,u,o,v),oT(t,e,"e",p,u,o,v),oT(t,e,"n",l,u,y,o),oT(t,e,"s",l,d,y,o),oT(t,e,"nw",l,u,o,o),oT(t,e,"ne",p,u,o,o),oT(t,e,"sw",l,d,o,o),oT(t,e,"se",p,d,o,o))}function rT(t,e){var n=e.__brushOption,i=n.transformable,r=e.childAt(0);r.useStyle(aT(n)),r.attr({silent:!i,cursor:i?"move":"default"}),P([["w"],["e"],["n"],["s"],["s","e"],["s","w"],["n","e"],["n","w"]],(function(n){var r=e.childOfName(n.join("")),o=1===n.length?lT(t,n[0]):function(t,e){var n=[lT(t,e[0]),lT(t,e[1])];return("e"===n[0]||"w"===n[0])&&n.reverse(),n.join("")}(t,n);r&&r.attr({silent:!i,invisible:!i,cursor:i?HM[o]+"-resize":null})}))}function oT(t,e,n,i,r,o,a){var s=e.childOfName(n);s&&s.setShape(function(t){var e=EM(t[0][0],t[1][0]),n=EM(t[0][1],t[1][1]),i=BM(t[0][0],t[1][0]),r=BM(t[0][1],t[1][1]);return{x:e,y:n,width:i-e,height:r-n}}(pT(t,e,[[i,r],[i+o,r+a]])))}function aT(t){return C({strokeNoScale:!0},t.brushStyle)}function sT(t,e,n,i){var r=[EM(t,n),EM(e,i)],o=[BM(t,n),BM(e,i)];return[[r[0],o[0]],[r[1],o[1]]]}function lT(t,e){return{left:"w",right:"e",top:"n",bottom:"s"}[Du({w:"left",e:"right",n:"top",s:"bottom"}[e],function(t){return Iu(t.group)}(t))]}function uT(t,e,n,i,r,o){var a=n.__brushOption,s=t.toRectRange(a.range),l=cT(e,r,o);P(i,(function(t){var e=FM[t];s[e[0]][e[1]]+=l[e[0]]})),a.range=t.fromRectRange(sT(s[0][0],s[1][0],s[0][1],s[1][1])),qM(e,n),tT(e,{isEnd:!1})}function hT(t,e,n,i){var r=e.__brushOption.range,o=cT(t,n,i);P(r,(function(t){t[0]+=o[0],t[1]+=o[1]})),qM(t,e),tT(t,{isEnd:!1})}function cT(t,e,n){var i=t.group,r=i.transformCoordToLocal(e,n),o=i.transformCoordToLocal(0,0);return[r[0]-o[0],r[1]-o[1]]}function pT(t,e,n){var i=JM(t,e);return i&&i!==NM?i.clipPath(n,t._transform):w(n)}function dT(t){var e=t.event;e.preventDefault&&e.preventDefault()}function fT(t,e,n){return t.childOfName("main").contain(e,n)}function gT(t,e,n,i){var r,o=t._creatingCover,a=t._creatingPanel,s=t._brushOption;if(t._track.push(n.slice()),function(t){var e=t._track;if(!e.length)return!1;var n=e[e.length-1],i=e[0],r=n[0]-i[0],o=n[1]-i[1];return zM(r*r+o*o,.5)>6}(t)||o){if(a&&!o){"single"===s.brushMode&&QM(t);var l=w(s);l.brushType=yT(l.brushType,a),l.panelId=a===NM?null:a.panelId,o=t._creatingCover=YM(t,l),t._covers.push(o)}if(o){var u=_T[yT(t._brushType,a)];o.__brushOption.range=u.getCreatingRange(pT(t,o,t._track)),i&&(XM(t,o),u.updateCommon(t,o)),ZM(t,o),r={isEnd:i}}}else i&&"single"===s.brushMode&&s.removeOnClick&&$M(t,e,n)&&QM(t)&&(r={isEnd:i,removeOnClick:!0});return r}function yT(t,e){return"auto"===t?e.defaultBrushType:t}var vT={mousedown:function(t){if(this._dragging)mT(this,t);else if(!t.target||!t.target.draggable){dT(t);var e=this.group.transformCoordToLocal(t.offsetX,t.offsetY);this._creatingCover=null,(this._creatingPanel=$M(this,t,e))&&(this._dragging=!0,this._track=[e.slice()])}},mousemove:function(t){var e=t.offsetX,n=t.offsetY,i=this.group.transformCoordToLocal(e,n);if(function(t,e,n){if(t._brushType&&!function(t,e,n){var i=t._zr;return e<0||e>i.getWidth()||n<0||n>i.getHeight()}(t,e.offsetX,e.offsetY)){var i=t._zr,r=t._covers,o=$M(t,e,n);if(!t._dragging)for(var a=0;a<r.length;a++){var s=r[a].__brushOption;if(o&&(o===NM||s.panelId===o.panelId)&&_T[s.brushType].contain(r[a],n[0],n[1]))return}o&&i.setCursorStyle("crosshair")}}(this,t,i),this._dragging){dT(t);var r=gT(this,t,i,!1);r&&tT(this,r)}},mouseup:function(t){mT(this,t)}};function mT(t,e){if(t._dragging){dT(e);var n=e.offsetX,i=e.offsetY,r=t.group.transformCoordToLocal(n,i),o=gT(t,e,r,!0);t._dragging=!1,t._track=[],t._creatingCover=null,o&&tT(t,o)}}var _T={lineX:xT(0),lineY:xT(1),rect:{createCover:function(t,e){function n(t){return t}return nT({toRectRange:n,fromRectRange:n},t,e,[["w"],["e"],["n"],["s"],["s","e"],["s","w"],["n","e"],["n","w"]])},getCreatingRange:function(t){var e=eT(t);return sT(e[1][0],e[1][1],e[0][0],e[0][1])},updateCoverShape:function(t,e,n,i){iT(t,e,n,i)},updateCommon:rT,contain:fT},polygon:{createCover:function(t,e){var n=new Pi;return n.add(new Vl({name:"main",style:aT(e),silent:!0})),n},getCreatingRange:function(t){return t},endCreating:function(t,e){e.remove(e.childAt(0)),e.add(new Bl({name:"main",draggable:!0,drift:z(hT,t,e),ondragend:z(tT,t,{isEnd:!0})}))},updateCoverShape:function(t,e,n,i){e.childAt(0).setShape({points:pT(t,e,n)})},updateCommon:rT,contain:fT}};function xT(t){return{createCover:function(e,n){return nT({toRectRange:function(e){var n=[e,[0,100]];return t&&n.reverse(),n},fromRectRange:function(e){return e[t]}},e,n,[[["w"],["e"]],[["n"],["s"]]][t])},getCreatingRange:function(e){var n=eT(e);return[EM(n[0][t],n[1][t]),BM(n[0][t],n[1][t])]},updateCoverShape:function(e,n,i,r){var o,a=JM(e,n);if(a!==NM&&a.getLinearBrushOtherExtent)o=a.getLinearBrushOtherExtent(t);else{var s=e._zr;o=[0,[s.getWidth(),s.getHeight()][1-t]]}var l=[i,o];t&&l.reverse(),iT(e,n,l,r)},updateCommon:rT,contain:fT}}var bT={axisPointer:1,tooltip:1,brush:1};function wT(t){return t=TT(t),function(e){return Pu(e,t)}}function ST(t,e){return t=TT(t),function(n){var i=null!=e?e:n,r=i?t.width:t.height,o=i?t.x:t.y;return[o,o+(r||0)]}}function MT(t,e,n){var i=TT(t);return function(t,r){return i.contain(r[0],r[1])&&!function(t,e,n){var i=e.getComponentByElement(t.topTarget),r=i&&i.coordinateSystem;return i&&i!==n&&!bT.hasOwnProperty(i.mainType)&&r&&r.model!==n}(t,e,n)}}function TT(t){return Dn.create(t)}var CT=["dataToPoint","pointToData"],IT=["grid","xAxis","yAxis","geo","graph","polar","radiusAxis","angleAxis","bmap"],AT=function(){function t(t,e,n){var i=this;this._targetInfoList=[];var r=kT(e,t);P(LT,(function(t,e){(!n||!n.include||A(n.include,e)>=0)&&t(r,i._targetInfoList)}))}return t.prototype.setOutputRanges=function(t,e){return this.matchOutputRanges(t,e,(function(t,e,n){if((t.coordRanges||(t.coordRanges=[])).push(e),!t.coordRange){t.coordRange=e;var i=RT[t.brushType](0,n,e);t.__rangeOffset={offset:ET[t.brushType](i.values,t.range,[1,1]),xyMinMax:i.xyMinMax}}})),t},t.prototype.matchOutputRanges=function(t,e,n){P(t,(function(t){var i=this.findTargetInfo(t,e);i&&!0!==i&&P(i.coordSyses,(function(i){var r=RT[t.brushType](1,i,t.range);n(t,r.values,i,e)}))}),this)},t.prototype.setInputRanges=function(t,e){P(t,(function(t){var n,i,r,o,a,s=this.findTargetInfo(t,e);if(t.range=t.range||[],s&&!0!==s){t.panelId=s.panelId;var l=RT[t.brushType](0,s.coordSys,t.coordRange),u=t.__rangeOffset;t.range=u?ET[t.brushType](l.values,u.offset,(n=l.xyMinMax,i=u.xyMinMax,r=zT(n),o=zT(i),a=[r[0]/o[0],r[1]/o[1]],isNaN(a[0])&&(a[0]=1),isNaN(a[1])&&(a[1]=1),a)):l.values}}),this)},t.prototype.makePanelOpts=function(t,e){return O(this._targetInfoList,(function(n){var i=n.getPanelRect();return{panelId:n.panelId,defaultBrushType:e?e(n):null,clipPath:wT(i),isTargetByCursor:MT(i,t,n.coordSysModel),getLinearBrushOtherExtent:ST(i)}}))},t.prototype.controlSeries=function(t,e,n){var i=this.findTargetInfo(t,n);return!0===i||i&&A(i.coordSyses,e.coordinateSystem)>=0},t.prototype.findTargetInfo=function(t,e){for(var n=this._targetInfoList,i=kT(e,t),r=0;r<n.length;r++){var o=n[r],a=t.panelId;if(a){if(o.panelId===a)return o}else for(var s=0;s<PT.length;s++)if(PT[s](i,o))return o}return!0},t}();function DT(t){return t[0]>t[1]&&t.reverse(),t}function kT(t,e){return Mr(t,e,{includeMainTypes:IT})}var LT={grid:function(t,e){var n=t.xAxisModels,i=t.yAxisModels,r=t.gridModels,o=ut(),a={},s={};(n||i||r)&&(P(n,(function(t){var e=t.axis.grid.model;o.set(e.id,e),a[e.id]=!0})),P(i,(function(t){var e=t.axis.grid.model;o.set(e.id,e),s[e.id]=!0})),P(r,(function(t){o.set(t.id,t),a[t.id]=!0,s[t.id]=!0})),o.each((function(t){var r=t.coordinateSystem,o=[];P(r.getCartesians(),(function(t,e){(A(n,t.getAxis("x").model)>=0||A(i,t.getAxis("y").model)>=0)&&o.push(t)})),e.push({panelId:"grid--"+t.id,gridModel:t,coordSysModel:t,coordSys:o[0],coordSyses:o,getPanelRect:OT.grid,xAxisDeclared:a[t.id],yAxisDeclared:s[t.id]})})))},geo:function(t,e){P(t.geoModels,(function(t){var n=t.coordinateSystem;e.push({panelId:"geo--"+t.id,geoModel:t,coordSysModel:t,coordSys:n,coordSyses:[n],getPanelRect:OT.geo})}))}},PT=[function(t,e){var n=t.xAxisModel,i=t.yAxisModel,r=t.gridModel;return!r&&n&&(r=n.axis.grid.model),!r&&i&&(r=i.axis.grid.model),r&&r===e.gridModel},function(t,e){var n=t.geoModel;return n&&n===e.geoModel}],OT={grid:function(){return this.coordSys.master.getRect().clone()},geo:function(){var t=this.coordSys,e=t.getBoundingRect().clone();return e.applyTransform(Iu(t)),e}},RT={lineX:z(NT,0),lineY:z(NT,1),rect:function(t,e,n){var i=e[CT[t]]([n[0][0],n[1][0]]),r=e[CT[t]]([n[0][1],n[1][1]]),o=[DT([i[0],r[0]]),DT([i[1],r[1]])];return{values:o,xyMinMax:o}},polygon:function(t,e,n){var i=[[1/0,-1/0],[1/0,-1/0]];return{values:O(n,(function(n){var r=e[CT[t]](n);return i[0][0]=Math.min(i[0][0],r[0]),i[1][0]=Math.min(i[1][0],r[1]),i[0][1]=Math.max(i[0][1],r[0]),i[1][1]=Math.max(i[1][1],r[1]),r})),xyMinMax:i}}};function NT(t,e,n,i){var r=n.getAxis(["x","y"][t]),o=DT(O([0,1],(function(t){return e?r.coordToData(r.toLocalCoord(i[t])):r.toGlobalCoord(r.dataToCoord(i[t]))}))),a=[];return a[t]=o,a[1-t]=[NaN,NaN],{values:o,xyMinMax:a}}var ET={lineX:z(BT,0),lineY:z(BT,1),rect:function(t,e,n){return[[t[0][0]-n[0]*e[0][0],t[0][1]-n[0]*e[0][1]],[t[1][0]-n[1]*e[1][0],t[1][1]-n[1]*e[1][1]]]},polygon:function(t,e,n){return O(t,(function(t,i){return[t[0]-n[0]*e[i][0],t[1]-n[1]*e[i][1]]}))}};function BT(t,e,n,i){return[e[0]-i[t]*n[0],e[1]-i[t]*n[1]]}function zT(t){return t?[t[0][1]-t[0][0],t[1][1]-t[1][0]]:[NaN,NaN]}var VT,FT,HT=P,GT=hr+"toolbox-dataZoom_",WT=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.render=function(t,e,n,i){this.brushController||(this.brushController=new UM(n.getZr()),this.brushController.on("brush",B(this._onBrush,this)).mount()),function(t,e,n,i,r){var o=n.isZoomActive;i&&"takeGlobalCursor"===i.type&&(o="dataZoomSelect"===i.key&&i.dataZoomSelectActive);n.isZoomActive=o,t.setIconStatus("zoom",o?"emphasis":"normal");var a=new AT(YT(t),e,{include:["grid"]}).makePanelOpts(r,(function(t){return t.xAxisDeclared&&!t.yAxisDeclared?"lineX":!t.xAxisDeclared&&t.yAxisDeclared?"lineY":"rect"}));n.brushController.setPanels(a).enableBrush(!(!o||!a.length)&&{brushType:"auto",brushStyle:t.getModel("brushStyle").getItemStyle()})}(t,e,this,i,n),function(t,e){t.setIconStatus("back",function(t){return kM(t).length}(e)>1?"emphasis":"normal")}(t,e)},e.prototype.onclick=function(t,e,n){UT[n].call(this)},e.prototype.remove=function(t,e){this.brushController.unmount()},e.prototype.dispose=function(t,e){this.brushController.dispose()},e.prototype._onBrush=function(t){var e=t.areas;if(t.isEnd&&e.length){var n={},i=this.ecModel;this.brushController.updateCovers([]),new AT(YT(this.model),i,{include:["grid"]}).matchOutputRanges(e,i,(function(t,e,n){if("cartesian2d"===n.type){var i=t.brushType;"rect"===i?(r("x",n,e[0]),r("y",n,e[1])):r({lineX:"x",lineY:"y"}[i],n,e)}})),function(t,e){var n=kM(t);AM(e,(function(e,i){for(var r=n.length-1;r>=0&&!n[r][i];r--);if(r<0){var o=t.queryComponents({mainType:"dataZoom",subType:"select",id:i})[0];if(o){var a=o.getPercentRange();n[0][i]={dataZoomId:i,start:a[0],end:a[1]}}}})),n.push(e)}(i,n),this._dispatchZoomAction(n)}function r(t,e,r){var o=e.getAxis(t),a=o.model,s=function(t,e,n){var i;return n.eachComponent({mainType:"dataZoom",subType:"select"},(function(n){n.getAxisModel(t,e.componentIndex)&&(i=n)})),i}(t,a,i),l=s.findRepresentativeAxisProxy(a).getMinMaxSpan();null==l.minValueSpan&&null==l.maxValueSpan||(r=QS(0,r.slice(),o.scale.getExtent(),0,l.minValueSpan,l.maxValueSpan)),s&&(n[s.id]={dataZoomId:s.id,startValue:r[0],endValue:r[1]})}},e.prototype._dispatchZoomAction=function(t){var e=[];HT(t,(function(t,n){e.push(w(t))})),e.length&&this.api.dispatchAction({type:"dataZoom",from:this.uid,batch:e})},e.getDefaultOption=function(t){return{show:!0,filterMode:"filter",icon:{zoom:"M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1",back:"M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26"},title:t.getLocale(["toolbox","dataZoom","title"]),brushStyle:{borderWidth:0,color:"rgba(210,219,238,0.2)"}}},e}(uM),UT={zoom:function(){var t=!this.isZoomActive;this.api.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:t})},back:function(){this._dispatchZoomAction(function(t){var e=kM(t),n=e[e.length-1];e.length>1&&e.pop();var i={};return AM(n,(function(t,n){for(var r=e.length-1;r>=0;r--)if(t=e[r][n]){i[n]=t;break}})),i}(this.ecModel))}};function YT(t){var e={xAxisIndex:t.get("xAxisIndex",!0),yAxisIndex:t.get("yAxisIndex",!0),xAxisId:t.get("xAxisId",!0),yAxisId:t.get("yAxisId",!0)};return null==e.xAxisIndex&&null==e.xAxisId&&(e.xAxisIndex="all"),null==e.yAxisIndex&&null==e.yAxisId&&(e.yAxisIndex="all"),e}VT="dataZoom",FT=function(t){var e=t.getComponent("toolbox",0);if(e){var n=e.getModel(["feature","dataZoom"]),i=[],r=Mr(t,YT(n));return HT(r.xAxisModels,(function(t){return o(t,"xAxis","xAxisIndex")})),HT(r.yAxisModels,(function(t){return o(t,"yAxis","yAxisIndex")})),i}function o(t,e,r){var o=t.componentIndex,a={type:"select",$fromToolbox:!0,filterMode:n.get("filterMode",!0)||"filter",id:GT+e+o};a[r]=o,i.push(a)}},it(null==Hc.get(VT)&&FT),Hc.set(VT,FT);var XT=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="tooltip",e.dependencies=["axisPointer"],e.defaultOption={zlevel:0,z:60,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",renderMode:"auto",confine:null,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"#fff",shadowBlur:10,shadowColor:"rgba(0, 0, 0, .2)",shadowOffsetX:1,shadowOffsetY:2,borderRadius:4,borderWidth:1,padding:null,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#666",fontSize:14}},e}(_c);function ZT(t){var e=t.get("confine");return null!=e?!!e:"richText"===t.get("renderMode")}var jT=["-ms-","-moz-","-o-","-webkit-",""];function qT(t,e,n){var i=[],r=t.get("transitionDuration"),o=t.get("backgroundColor"),s=t.get("shadowBlur"),l=t.get("shadowColor"),u=t.get("shadowOffsetX"),h=t.get("shadowOffsetY"),c=t.getModel("textStyle"),p=Dd(t,"html"),d=u+"px "+h+"px "+s+"px "+l;return i.push("box-shadow:"+d),e&&r&&i.push(function(t,e){var n="cubic-bezier(0.23, 1, 0.32, 1)",i="opacity "+t/2+"s "+n+",visibility "+t/2+"s "+n;return e||(i+=",left "+t+"s "+n+",top "+t+"s "+n),O(jT,(function(t){return t+"transition:"+i})).join(";")}(r,n)),o&&(a.canvasSupported?i.push("background-Color:"+o):(i.push("background-Color:#"+je(o)),i.push("filter:alpha(opacity=70)"))),P(["width","color","radius"],(function(e){var n="border-"+e,r=qh(n),o=t.get(r);null!=o&&i.push(n+":"+o+("color"===e?"":"px"))})),i.push(function(t){var e=[],n=t.get("fontSize"),i=t.getTextColor();i&&e.push("color:"+i),e.push("font:"+t.getFont()),n&&e.push("line-height:"+Math.round(3*n/2)+"px");var r=t.get("textShadowColor"),o=t.get("textShadowBlur")||0,a=t.get("textShadowOffsetX")||0,s=t.get("textShadowOffsetY")||0;return r&&o&&e.push("text-shadow:"+a+"px "+s+"px "+o+"px "+r),P(["decoration","align"],(function(n){var i=t.get(n);i&&e.push("text-"+n+":"+i)})),e.join(";")}(c)),null!=p&&i.push("padding:"+Kh(p).join("px ")+"px"),i.join(";")+";"}function KT(t,e,n,i,r){var o=e&&e.painter;if(n){var a=o&&o.getViewportRoot();a&&function(t,e,n,i,r){Gt(Ht,e,i,r,!0)&&Gt(t,n,Ht[0],Ht[1])}(t,a,document.body,i,r)}else{t[0]=i,t[1]=r;var s=o&&o.getViewportRootOffset();s&&(t[0]+=s.offsetLeft,t[1]+=s.offsetTop)}t[2]=t[0]/e.getWidth(),t[3]=t[1]/e.getHeight()}var $T=function(){function t(t,e,n){if(this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._firstShow=!0,this._longHide=!0,a.wxa)return null;var i=document.createElement("div");i.domBelongToZr=!0,this.el=i;var r=this._zr=e.getZr(),o=this._appendToBody=n&&n.appendToBody;KT(this._styleCoord,r,o,e.getWidth()/2,e.getHeight()/2),o?document.body.appendChild(i):t.appendChild(i),this._container=t;var s=this;i.onmouseenter=function(){s._enterable&&(clearTimeout(s._hideTimeout),s._show=!0),s._inContent=!0},i.onmousemove=function(t){if(t=t||window.event,!s._enterable){var e=r.handler;Kt(r.painter.getViewportRoot(),t,!0),e.dispatch("mousemove",t)}},i.onmouseleave=function(){s._inContent=!1,s._enterable&&s._show&&s.hideLater(s._hideDelay)}}return t.prototype.update=function(t){var e=this._container,n=e.currentStyle||document.defaultView.getComputedStyle(e),i=e.style;"absolute"!==i.position&&"absolute"!==n.position&&(i.position="relative"),t.get("alwaysShowContent")&&this._moveIfResized(),this.el.className=t.get("className")||""},t.prototype.show=function(t,e){clearTimeout(this._hideTimeout),clearTimeout(this._longHideTimeout);var n=this.el,i=this._styleCoord,r=n.offsetHeight/2;e=oc(e),n.style.cssText="position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;"+qT(t,!this._firstShow,this._longHide)+";left:"+i[0]+"px;top:"+(i[1]-r)+"px;border-color: "+e+";"+(t.get("extraCssText")||""),n.style.display=n.innerHTML?"block":"none",n.style.pointerEvents=this._enterable?"auto":"none",this._show=!0,this._firstShow=!1,this._longHide=!1},t.prototype.setContent=function(t,e,n,i,r){if(null!=t){var o=this.el;if(H(r)&&"item"===n.get("trigger")&&!ZT(n)&&(t+=function(t,e,n){if(!H(n)||"inside"===n)return"";e=oc(e);var i,r="left"===(i=n)?"right":"right"===i?"left":"top"===i?"bottom":"top",o="",a="";return A(["left","right"],r)>-1?(o=r+":-6px;top:50%;",a="translateY(-50%) rotate("+("left"===r?-225:-45)+"deg)"):(o=r+":-6px;left:50%;",a="translateX(-50%) rotate("+("top"===r?225:45)+"deg)"),'<div style="'+["position:absolute;width:10px;height:10px;",""+o+(a=O(jT,(function(t){return t+"transform:"+a})).join(";"))+";","border-bottom: "+e+" solid 1px;","border-right: "+e+" solid 1px;","background-color: "+t+";","box-shadow: 8px 8px 16px -3px #000;"].join("")+'"></div>'}(n.get("backgroundColor"),i,r)),H(t))o.innerHTML=t;else if(t){o.innerHTML="",V(t)||(t=[t]);for(var a=0;a<t.length;a++)Z(t[a])&&t[a].parentNode!==o&&o.appendChild(t[a])}}},t.prototype.setEnterable=function(t){this._enterable=t},t.prototype.getSize=function(){var t=this.el;return[t.clientWidth,t.clientHeight]},t.prototype.moveTo=function(t,e){var n=this._styleCoord;if(KT(n,this._zr,this._appendToBody,t,e),null!=n[0]&&null!=n[1]){var i=this.el.style;i.left=n[0].toFixed(0)+"px",i.top=n[1].toFixed(0)+"px"}},t.prototype._moveIfResized=function(){var t=this._styleCoord[2],e=this._styleCoord[3];this.moveTo(t*this._zr.getWidth(),e*this._zr.getHeight())},t.prototype.hide=function(){var t=this;this.el.style.visibility="hidden",this.el.style.opacity="0",this._show=!1,this._longHideTimeout=setTimeout((function(){return t._longHide=!0}),500)},t.prototype.hideLater=function(t){!this._show||this._inContent&&this._enterable||(t?(this._hideDelay=t,this._show=!1,this._hideTimeout=setTimeout(B(this.hide,this),t)):this.hide())},t.prototype.isShow=function(){return this._show},t.prototype.dispose=function(){this.el.parentNode.removeChild(this.el)},t.prototype.getOuterSize=function(){var t=this.el.clientWidth,e=this.el.clientHeight;if(document.defaultView&&document.defaultView.getComputedStyle){var n=document.defaultView.getComputedStyle(this.el);n&&(t+=parseInt(n.borderLeftWidth,10)+parseInt(n.borderRightWidth,10),e+=parseInt(n.borderTopWidth,10)+parseInt(n.borderBottomWidth,10))}return{width:t,height:e}},t}(),JT=function(){function t(t){this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._zr=t.getZr(),eC(this._styleCoord,this._zr,t.getWidth()/2,t.getHeight()/2)}return t.prototype.update=function(t){t.get("alwaysShowContent")&&this._moveIfResized()},t.prototype.show=function(){this._hideTimeout&&clearTimeout(this._hideTimeout),this.el.show(),this._show=!0},t.prototype.setContent=function(t,e,n,i,r){U(t)&&lr(""),this.el&&this._zr.remove(this.el);var o=n.getModel("textStyle");this.el=new Qa({style:{rich:e.richTextStyles,text:t,lineHeight:22,backgroundColor:n.get("backgroundColor"),borderRadius:n.get("borderRadius"),borderWidth:1,borderColor:i,shadowColor:n.get("shadowColor"),shadowBlur:n.get("shadowBlur"),shadowOffsetX:n.get("shadowOffsetX"),shadowOffsetY:n.get("shadowOffsetY"),textShadowColor:o.get("textShadowColor"),textShadowBlur:o.get("textShadowBlur")||0,textShadowOffsetX:o.get("textShadowOffsetX")||0,textShadowOffsetY:o.get("textShadowOffsetY")||0,fill:n.get(["textStyle","color"]),padding:Dd(n,"richText"),verticalAlign:"top",align:"left"},z:n.get("z")}),this._zr.add(this.el);var a=this;this.el.on("mouseover",(function(){a._enterable&&(clearTimeout(a._hideTimeout),a._show=!0),a._inContent=!0})),this.el.on("mouseout",(function(){a._enterable&&a._show&&a.hideLater(a._hideDelay),a._inContent=!1}))},t.prototype.setEnterable=function(t){this._enterable=t},t.prototype.getSize=function(){var t=this.el,e=this.el.getBoundingRect(),n=tC(t.style);return[e.width+n.left+n.right,e.height+n.top+n.bottom]},t.prototype.moveTo=function(t,e){var n=this.el;if(n){var i=this._styleCoord;eC(i,this._zr,t,e),t=i[0],e=i[1];var r=n.style,o=QT(r.borderWidth||0),a=tC(r);n.x=t+o+a.left,n.y=e+o+a.top,n.markRedraw()}},t.prototype._moveIfResized=function(){var t=this._styleCoord[2],e=this._styleCoord[3];this.moveTo(t*this._zr.getWidth(),e*this._zr.getHeight())},t.prototype.hide=function(){this.el&&this.el.hide(),this._show=!1},t.prototype.hideLater=function(t){!this._show||this._inContent&&this._enterable||(t?(this._hideDelay=t,this._show=!1,this._hideTimeout=setTimeout(B(this.hide,this),t)):this.hide())},t.prototype.isShow=function(){return this._show},t.prototype.getOuterSize=function(){var t=this.getSize();return{width:t[0],height:t[1]}},t.prototype.dispose=function(){this._zr.remove(this.el)},t}();function QT(t){return Math.max(0,t)}function tC(t){var e=QT(t.shadowBlur||0),n=QT(t.shadowOffsetX||0),i=QT(t.shadowOffsetY||0);return{left:QT(e-n),right:QT(e+n),top:QT(e-i),bottom:QT(e+i)}}function eC(t,e,n,i){t[0]=n,t[1]=i,t[2]=t[0]/e.getWidth(),t[3]=t[1]/e.getHeight()}var nC=B,iC=P,rC=Gi,oC=new Ka({shape:{x:-1,y:-1,width:2,height:2}}),aC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(t,e){if(!a.node){var n,i=t.getComponent("tooltip"),r=i.get("renderMode");this._renderMode="auto"===(n=r)?a.domSupported?"html":"richText":n||"html",this._tooltipContent="richText"===this._renderMode?new JT(e):new $T(e.getDom(),e,{appendToBody:i.get("appendToBody",!0)})}},e.prototype.render=function(t,e,n){if(!a.node){this.group.removeAll(),this._tooltipModel=t,this._ecModel=e,this._api=n,this._alwaysShowContent=t.get("alwaysShowContent");var i=this._tooltipContent;i.update(t),i.setEnterable(t.get("enterable")),this._initGlobalListener(),this._keepShow()}},e.prototype._initGlobalListener=function(){var t=this._tooltipModel.get("triggerOn");_S("itemTooltip",this._api,nC((function(e,n,i){"none"!==t&&(t.indexOf(e)>=0?this._tryShow(n,i):"leave"===e&&this._hide(i))}),this))},e.prototype._keepShow=function(){var t=this._tooltipModel,e=this._ecModel,n=this._api;if(null!=this._lastX&&null!=this._lastY&&"none"!==t.get("triggerOn")){var i=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout((function(){!n.isDisposed()&&i.manuallyShowTip(t,e,n,{x:i._lastX,y:i._lastY,dataByCoordSys:i._lastDataByCoordSys})}))}},e.prototype.manuallyShowTip=function(t,e,n,i){if(i.from!==this.uid&&!a.node){var r=lC(i,n);this._ticket="";var o=i.dataByCoordSys;if(i.tooltip&&null!=i.x&&null!=i.y){var s=oC;s.x=i.x,s.y=i.y,s.update(),s.tooltip=i.tooltip,this._tryShow({offsetX:i.x,offsetY:i.y,target:s},r)}else if(o)this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,dataByCoordSys:o,tooltipOption:i.tooltipOption},r);else if(null!=i.seriesIndex){if(this._manuallyAxisShowTip(t,e,n,i))return;var l=MS(i,e),u=l.point[0],h=l.point[1];null!=u&&null!=h&&this._tryShow({offsetX:u,offsetY:h,position:i.position,target:l.el},r)}else null!=i.x&&null!=i.y&&(n.dispatchAction({type:"updateAxisPointer",x:i.x,y:i.y}),this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,target:n.getZr().findHover(i.x,i.y).target},r))}},e.prototype.manuallyHideTip=function(t,e,n,i){var r=this._tooltipContent;!this._alwaysShowContent&&this._tooltipModel&&r.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=this._lastDataByCoordSys=null,i.from!==this.uid&&this._hide(lC(i,n))},e.prototype._manuallyAxisShowTip=function(t,e,n,i){var r=i.seriesIndex,o=i.dataIndex,a=e.getComponent("axisPointer").coordSysAxesInfo;if(null!=r&&null!=o&&null!=a){var s=e.getSeriesByIndex(r);if(s)if("axis"===sC([s.getData().getItemModel(o),s,(s.coordinateSystem||{}).model,t]).get("trigger"))return n.dispatchAction({type:"updateAxisPointer",seriesIndex:r,dataIndex:o,position:i.position}),!0}},e.prototype._tryShow=function(t,e){var n=t.target;if(this._tooltipModel){this._lastX=t.offsetX,this._lastY=t.offsetY;var i=t.dataByCoordSys;i&&i.length?this._showAxisTooltip(i,t):n&&Tg(n,(function(t){return null!=ss(t).dataIndex}),!0)?(this._lastDataByCoordSys=null,this._showSeriesItemTooltip(t,n,e)):n&&n.tooltip?(this._lastDataByCoordSys=null,this._showComponentItemTooltip(t,n,e)):(this._lastDataByCoordSys=null,this._hide(e))}},e.prototype._showOrMove=function(t,e){var n=t.get("showDelay");e=B(e,this),clearTimeout(this._showTimout),n>0?this._showTimout=setTimeout(e,n):e()},e.prototype._showAxisTooltip=function(t,e){var n=this._ecModel,i=this._tooltipModel,r=[e.offsetX,e.offsetY],o=sC([e.tooltipOption,i]),a=this._renderMode,s=[],l=wd("section",{blocks:[],noHeader:!0}),u=[],h=new kd;iC(t,(function(t){iC(t.dataByAxis,(function(t){var e=n.getComponent(t.axisDim+"Axis",t.axisIndex),i=t.value;if(e&&null!=i){var r=hS(i,e.axis,n,t.seriesDataIndices,t.valueLabelOpt),o=wd("section",{header:r,noHeader:!rt(r),sortBlocks:!0,blocks:[]});l.blocks.push(o),P(t.seriesDataIndices,(function(l){var c=n.getSeriesByIndex(l.seriesIndex),p=l.dataIndexInside,d=c.getDataParams(p);d.axisDim=t.axisDim,d.axisIndex=t.axisIndex,d.axisType=t.axisType,d.axisId=t.axisId,d.axisValue=d_(e.axis,{value:i}),d.axisValueLabel=r,d.marker=h.makeTooltipMarker("item",oc(d.color),a);var f=ed(c.formatTooltip(p,!0,null));f.markupFragment&&o.blocks.push(f.markupFragment),f.markupText&&u.push(f.markupText),s.push(d)}))}}))})),l.blocks.reverse(),u.reverse();var c=e.position,p=o.get("order"),d=Td(l,h,a,p,n.get("useUTC"),o.get("textStyle"));d&&u.unshift(d);var f="richText"===a?"\n\n":"<br/>",g=u.join(f);this._showOrMove(o,(function(){this._updateContentNotChangedOnAxis(t)?this._updatePosition(o,c,r[0],r[1],this._tooltipContent,s):this._showTooltipContent(o,g,s,Math.random()+"",r[0],r[1],c,null,h)}))},e.prototype._showSeriesItemTooltip=function(t,e,n){var i=Tg(e,(function(t){return null!=ss(t).dataIndex}),!0),r=this._ecModel,o=ss(i),a=o.seriesIndex,s=r.getSeriesByIndex(a),l=o.dataModel||s,u=o.dataIndex,h=o.dataType,c=l.getData(h),p=this._renderMode,d=sC([c.getItemModel(u),l,s&&(s.coordinateSystem||{}).model,this._tooltipModel]),f=d.get("trigger");if(null==f||"item"===f){var g=l.getDataParams(u,h),y=new kd;g.marker=y.makeTooltipMarker("item",oc(g.color),p);var v=ed(l.formatTooltip(u,!1,h)),m=d.get("order"),_=v.markupFragment?Td(v.markupFragment,y,p,m,r.get("useUTC"),d.get("textStyle")):v.markupText,x="item_"+l.name+"_"+u;this._showOrMove(d,(function(){this._showTooltipContent(d,_,g,x,t.offsetX,t.offsetY,t.position,t.target,y)})),n({type:"showTip",dataIndexInside:u,dataIndex:c.getRawIndex(u),seriesIndex:a,from:this.uid})}},e.prototype._showComponentItemTooltip=function(t,e,n){var i=e.tooltip;if(H(i)){i={content:i,formatter:i}}var r=new sh(i,this._tooltipModel,this._ecModel),o=r.get("content"),a=Math.random()+"",s=new kd;this._showOrMove(r,(function(){this._showTooltipContent(r,o,r.get("formatterParams")||{},a,t.offsetX,t.offsetY,t.position,e,s)})),n({type:"showTip",from:this.uid})},e.prototype._showTooltipContent=function(t,e,n,i,r,o,a,s,l){if(this._ticket="",t.get("showContent")&&t.get("show")){var u=this._tooltipContent,h=t.get("formatter");a=a||t.get("position");var c=e,p=this._getNearestPoint([r,o],n,t.get("trigger"),t.get("borderColor"));if(h&&H(h)){var d=t.ecModel.get("useUTC"),f=V(n)?n[0]:n;c=h,f&&f.axisType&&f.axisType.indexOf("time")>=0&&(c=Lh(f.axisValue,c,d)),c=ic(c,n,!0)}else if(F(h)){var g=nC((function(e,i){e===this._ticket&&(u.setContent(i,l,t,p.color,a),this._updatePosition(t,a,r,o,u,n,s))}),this);this._ticket=i,c=h(n,i,g)}u.setContent(c,l,t,p.color,a),u.show(t,p.color),this._updatePosition(t,a,r,o,u,n,s)}},e.prototype._getNearestPoint=function(t,e,n,i){return"axis"===n||V(e)?{color:i||("html"===this._renderMode?"#fff":"none")}:V(e)?void 0:{color:i||e.color||e.borderColor}},e.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=r.getSize(),h=t.get("align"),c=t.get("verticalAlign"),p=a&&a.getBoundingRect().clone();if(a&&p.applyTransform(a.transform),F(e)&&(e=e([n,i],o,r.el,p,{viewSize:[s,l],contentSize:u.slice()})),V(e))n=rC(e[0],s),i=rC(e[1],l);else if(U(e)){var d=e;d.width=u[0],d.height=u[1];var f=pc(d,{width:s,height:l});n=f.x,i=f.y,h=null,c=null}else if(H(e)&&a){var g=function(t,e,n){var i=n[0],r=n[1],o=10,a=5,s=0,l=0,u=e.width,h=e.height;switch(t){case"inside":s=e.x+u/2-i/2,l=e.y+h/2-r/2;break;case"top":s=e.x+u/2-i/2,l=e.y-r-o;break;case"bottom":s=e.x+u/2-i/2,l=e.y+h+o;break;case"left":s=e.x-i-o-a,l=e.y+h/2-r/2;break;case"right":s=e.x+u+o+a,l=e.y+h/2-r/2}return[s,l]}(e,p,u);n=g[0],i=g[1]}else{g=function(t,e,n,i,r,o,a){var s=n.getOuterSize(),l=s.width,u=s.height;null!=o&&(t+l+o+2>i?t-=l+o:t+=o);null!=a&&(e+u+a>r?e-=u+a:e+=a);return[t,e]}(n,i,r,s,l,h?null:20,c?null:20);n=g[0],i=g[1]}if(h&&(n-=uC(h)?u[0]/2:"right"===h?u[0]:0),c&&(i-=uC(c)?u[1]/2:"bottom"===c?u[1]:0),ZT(t)){g=function(t,e,n,i,r){var o=n.getOuterSize(),a=o.width,s=o.height;return t=Math.min(t+a,i)-a,e=Math.min(e+s,r)-s,t=Math.max(t,0),e=Math.max(e,0),[t,e]}(n,i,r,s,l);n=g[0],i=g[1]}r.moveTo(n,i)},e.prototype._updateContentNotChangedOnAxis=function(t){var e=this._lastDataByCoordSys,n=!!e&&e.length===t.length;return n&&iC(e,(function(e,i){var r=e.dataByAxis||[],o=(t[i]||{}).dataByAxis||[];(n=n&&r.length===o.length)&&iC(r,(function(t,e){var i=o[e]||{},r=t.seriesDataIndices||[],a=i.seriesDataIndices||[];(n=n&&t.value===i.value&&t.axisType===i.axisType&&t.axisId===i.axisId&&r.length===a.length)&&iC(r,(function(t,e){var i=a[e];n=n&&t.seriesIndex===i.seriesIndex&&t.dataIndex===i.dataIndex}))}))})),this._lastDataByCoordSys=t,!!n},e.prototype._hide=function(t){this._lastDataByCoordSys=null,t({type:"hideTip",from:this.uid})},e.prototype.dispose=function(t,e){a.node||(this._tooltipContent.dispose(),wS("itemTooltip",e))},e.type="tooltip",e}(Gd);function sC(t){for(var e=t.pop();t.length;){var n=t.pop();n&&(n instanceof sh&&(n=n.get("tooltip",!0)),H(n)&&(n={formatter:n}),e=new sh(n,e,e.ecModel))}return e}function lC(t,e){return t.dispatchAction||B(e.dispatchAction,e)}function uC(t){return"center"===t||"middle"===t}var hC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.layoutMode={type:"box",ignoreSize:!0},n}return n(e,t),e.type="title",e.defaultOption={zlevel:0,z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bold",color:"#464646"},subtextStyle:{fontSize:12,color:"#6E7079"}},e}(_c),cC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){if(this.group.removeAll(),t.get("show")){var i=this.group,r=t.getModel("textStyle"),o=t.getModel("subtextStyle"),a=t.get("textAlign"),s=Q(t.get("textBaseline"),t.get("textVerticalAlign")),l=new Qa({style:Wu(r,{text:t.get("text"),fill:r.getTextColor()},{disableBox:!0}),z2:10}),u=l.getBoundingRect(),h=t.get("subtext"),c=new Qa({style:Wu(o,{text:h,fill:o.getTextColor(),y:u.height+t.get("itemGap"),verticalAlign:"top"},{disableBox:!0}),z2:10}),p=t.get("link"),d=t.get("sublink"),f=t.get("triggerEvent",!0);l.silent=!p&&!f,c.silent=!d&&!f,p&&l.on("click",(function(){ac(p,"_"+t.get("target"))})),d&&c.on("click",(function(){ac(d,"_"+t.get("subtarget"))})),ss(l).eventData=ss(c).eventData=f?{componentType:"title",componentIndex:t.componentIndex}:null,i.add(l),h&&i.add(c);var g=i.getBoundingRect(),y=t.getBoxLayoutParams();y.width=g.width,y.height=g.height;var v=pc(y,{width:n.getWidth(),height:n.getHeight()},t.get("padding"));a||("middle"===(a=t.get("left")||t.get("right"))&&(a="center"),"right"===a?v.x+=v.width:"center"===a&&(v.x+=v.width/2)),s||("center"===(s=t.get("top")||t.get("bottom"))&&(s="middle"),"bottom"===s?v.y+=v.height:"middle"===s&&(v.y+=v.height/2),s=s||"top"),i.x=v.x,i.y=v.y,i.markRedraw();var m={align:a,verticalAlign:s};l.setStyle(m),c.setStyle(m),g=i.getBoundingRect();var _=v.margin,x=t.getItemStyle(["color","opacity"]);x.fill=t.get("backgroundColor");var b=new Ka({shape:{x:g.x-_[3],y:g.y-_[0],width:g.width+_[1]+_[3],height:g.height+_[0]+_[2],r:t.get("borderRadius")},style:x,subPixelOptimize:!0,silent:!0});i.add(b)}},e.type="title",e}(Gd);function pC(t){pr(t,"label",["show"])}var dC=wr(),fC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.createdBySelf=!1,n}return n(e,t),e.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n),this._mergeOption(t,n,!1,!0)},e.prototype.isAnimationEnabled=function(){if(a.node)return!1;var t=this.__hostSeries;return this.getShallow("animation")&&t&&t.isAnimationEnabled()},e.prototype.mergeOption=function(t,e){this._mergeOption(t,e,!1,!1)},e.prototype._mergeOption=function(t,e,n,i){var r=this.mainType;n||e.eachSeries((function(t){var n=t.get(this.mainType,!0),o=dC(t)[r];n&&n.data?(o?o._mergeOption(n,e,!0):(i&&pC(n),P(n.data,(function(t){t instanceof Array?(pC(t[0]),pC(t[1])):pC(t)})),T(o=this.createMarkerModelFromSeries(n,this,e),{mainType:this.mainType,seriesIndex:t.seriesIndex,name:t.name,createdBySelf:!0}),o.__hostSeries=t),dC(t)[r]=o):dC(t)[r]=null}),this)},e.prototype.formatTooltip=function(t,e,n){var i=this.getData(),r=this.getRawValue(t),o=i.getName(t);return wd("section",{header:this.name,blocks:[wd("nameValue",{name:o,value:r,noName:!o,noValue:null==r})]})},e.prototype.getData=function(){return this._data},e.prototype.setData=function(t){this._data=t},e.getMarkerModelFromSeries=function(t,e){return dC(t)[e]},e.type="marker",e.dependencies=["series","grid","polar","geo"],e}(_c);k(fC,td.prototype);var gC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.createMarkerModelFromSeries=function(t,n,i){return new e(t,n,i)},e.type="markPoint",e.defaultOption={zlevel:0,z:5,symbol:"pin",symbolSize:50,tooltip:{trigger:"item"},label:{show:!0,position:"inside"},itemStyle:{borderWidth:2},emphasis:{label:{show:!0}}},e}(fC);function yC(t,e,n,i,r,o){var a=[],s=pm(e,i)?e.getCalculationInfo("stackResultDimension"):i,l=wC(e,s,t),u=e.indicesOfNearest(s,l)[0];a[r]=e.get(n,u),a[o]=e.get(s,u);var h=e.get(i,u),c=Yi(e.get(i,u));return(c=Math.min(c,20))>=0&&(a[o]=+a[o].toFixed(c)),[a,h]}var vC={min:z(yC,"min"),max:z(yC,"max"),average:z(yC,"average"),median:z(yC,"median")};function mC(t,e){var n=t.getData(),i=t.coordinateSystem;if(e&&!function(t){return!isNaN(parseFloat(t.x))&&!isNaN(parseFloat(t.y))}(e)&&!V(e.coord)&&i){var r=i.dimensions,o=_C(e,n,i,t);if((e=w(e)).type&&vC[e.type]&&o.baseAxis&&o.valueAxis){var a=A(r,o.baseAxis.dim),s=A(r,o.valueAxis.dim),l=vC[e.type](n,o.baseDataDim,o.valueDataDim,a,s);e.coord=l[0],e.value=l[1]}else{for(var u=[null!=e.xAxis?e.xAxis:e.radiusAxis,null!=e.yAxis?e.yAxis:e.angleAxis],h=0;h<2;h++)vC[u[h]]&&(u[h]=wC(n,n.mapDimension(r[h]),u[h]));e.coord=u}}return e}function _C(t,e,n,i){var r={};return null!=t.valueIndex||null!=t.valueDim?(r.valueDataDim=null!=t.valueIndex?e.getDimension(t.valueIndex):t.valueDim,r.valueAxis=n.getAxis(function(t,e){var n=t.getData(),i=n.dimensions;e=n.getDimension(e);for(var r=0;r<i.length;r++){var o=n.getDimensionInfo(i[r]);if(o.name===e)return o.coordDim}}(i,r.valueDataDim)),r.baseAxis=n.getOtherAxis(r.valueAxis),r.baseDataDim=e.mapDimension(r.baseAxis.dim)):(r.baseAxis=i.getBaseAxis(),r.valueAxis=n.getOtherAxis(r.baseAxis),r.baseDataDim=e.mapDimension(r.baseAxis.dim),r.valueDataDim=e.mapDimension(r.valueAxis.dim)),r}function xC(t,e){return!(t&&t.containData&&e.coord&&!function(t){return!(isNaN(parseFloat(t.x))&&isNaN(parseFloat(t.y)))}(e))||t.containData(e.coord)}function bC(t,e,n,i){return i<2?t.coord&&t.coord[i]:t.value}function wC(t,e,n){if("average"===n){var i=0,r=0;return t.each(e,(function(t,e){isNaN(t)||(i+=t,r++)})),i/r}return"median"===n?t.getMedian(e):t.getDataExtent(e)["max"===n?1:0]}var SC=wr(),MC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(){this.markerGroupMap=ut()},e.prototype.render=function(t,e,n){var i=this,r=this.markerGroupMap;r.each((function(t){SC(t).keep=!1})),e.eachSeries((function(t){var r=fC.getMarkerModelFromSeries(t,i.type);r&&i.renderSeries(t,r,e,n)})),r.each((function(t){!SC(t).keep&&i.group.remove(t.group)}))},e.prototype.markKeep=function(t){SC(t).keep=!0},e.prototype.blurSeries=function(t){var e=this;P(t,(function(t){var n=fC.getMarkerModelFromSeries(t,e.type);n&&n.getData().eachItemGraphicEl((function(t){t&&Ns(t)}))}))},e.type="marker",e}(Gd);function TC(t,e,n){var i=e.coordinateSystem;t.each((function(r){var o,a=t.getItemModel(r),s=Gi(a.get("x"),n.getWidth()),l=Gi(a.get("y"),n.getHeight());if(isNaN(s)||isNaN(l)){if(e.getMarkerPosition)o=e.getMarkerPosition(t.getValues(t.dimensions,r));else if(i){var u=t.get(i.dimensions[0],r),h=t.get(i.dimensions[1],r);o=i.dataToPoint([u,h])}}else o=[s,l];isNaN(s)||(o[0]=s),isNaN(l)||(o[1]=l),t.setItemLayout(r,o)}))}var CC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.updateTransform=function(t,e,n){e.eachSeries((function(t){var e=fC.getMarkerModelFromSeries(t,"markPoint");e&&(TC(e.getData(),t,n),this.markerGroupMap.get(t.id).updateLayout())}),this)},e.prototype.renderSeries=function(t,e,n,i){var r=t.coordinateSystem,o=t.id,a=t.getData(),s=this.markerGroupMap,l=s.get(o)||s.set(o,new Kx),u=function(t,e,n){var i;i=t?O(t&&t.dimensions,(function(t){return C({name:t},e.getData().getDimensionInfo(e.getData().mapDimension(t))||{})})):[{name:"value",type:"float"}];var r=new rm(i,n),o=O(n.get("data"),z(mC,e));t&&(o=N(o,z(xC,t)));return r.initData(o,null,t?bC:function(t){return t.value}),r}(r,t,e);e.setData(u),TC(e.getData(),t,i),u.each((function(t){var n=u.getItemModel(t),i=n.getShallow("symbol"),r=n.getShallow("symbolSize"),o=n.getShallow("symbolRotate");if(F(i)||F(r)||F(o)){var s=e.getRawValue(t),l=e.getDataParams(t);F(i)&&(i=i(s,l)),F(r)&&(r=r(s,l)),F(o)&&(o=o(s,l))}var h=n.getModel("itemStyle").getItemStyle(),c=Gf(a,"color");h.fill||(h.fill=c),u.setItemVisual(t,{symbol:i,symbolSize:r,symbolRotate:o,style:h})})),l.updateData(u),this.group.add(l.group),u.eachItemGraphicEl((function(t){t.traverse((function(t){ss(t).dataModel=e}))})),this.markKeep(l),l.group.silent=e.get("silent")||t.get("silent")},e.type="markPoint",e}(MC);var IC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.createMarkerModelFromSeries=function(t,n,i){return new e(t,n,i)},e.type="markLine",e.defaultOption={zlevel:0,z:5,symbol:["circle","arrow"],symbolSize:[8,16],precision:2,tooltip:{trigger:"item"},label:{show:!0,position:"end",distance:5},lineStyle:{type:"dashed"},emphasis:{label:{show:!0},lineStyle:{width:3}},animationEasing:"linear"},e}(fC),AC=Gl.prototype,DC=Xl.prototype,kC=function(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.percent=1};!function(t){function e(){return null!==t&&t.apply(this,arguments)||this}n(e,t)}(kC);function LC(t){return isNaN(+t.cpx1)||isNaN(+t.cpy1)}var PC=function(t){function e(e){var n=t.call(this,e)||this;return n.type="ec-line",n}return n(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new kC},e.prototype.buildPath=function(t,e){LC(e)?AC.buildPath.call(this,t,e):DC.buildPath.call(this,t,e)},e.prototype.pointAt=function(t){return LC(this.shape)?AC.pointAt.call(this,t):DC.pointAt.call(this,t)},e.prototype.tangentAt=function(t){var e=this.shape,n=LC(e)?[e.x2-e.x1,e.y2-e.y1]:DC.tangentAt.call(this,t);return Tt(n,n)},e}(za),OC=["fromSymbol","toSymbol"];function RC(t){return"_"+t+"Type"}function NC(t,e,n){var i=e.getItemVisual(n,t);if(i&&"none"!==i){var r=e.getItemVisual(n,t+"Size"),o=e.getItemVisual(n,t+"Rotate"),a=V(r)?r:[r,r],s=Eg(i,-a[0]/2,-a[1]/2,a[0],a[1]);return s.__specifiedRotation=null==o||isNaN(o)?void 0:+o*Math.PI/180||0,s.name=t,s}}function EC(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 BC=function(t){function e(e,n,i){var r=t.call(this)||this;return r._createLine(e,n,i),r}return n(e,t),e.prototype._createLine=function(t,e,n){var i=t.hostModel,r=function(t){var e=new PC({name:"line",subPixelOptimize:!0});return EC(e.shape,t),e}(t.getItemLayout(e));r.shape.percent=0,wu(r,{shape:{percent:1}},i,e),this.add(r),P(OC,(function(n){var i=NC(n,t,e);this.add(i),this[RC(n)]=t.getItemVisual(e,n)}),this),this._updateCommonStl(t,e,n)},e.prototype.updateData=function(t,e,n){var i=t.hostModel,r=this.childOfName("line"),o=t.getItemLayout(e),a={shape:{}};EC(a.shape,o),bu(r,a,i,e),P(OC,(function(n){var i=t.getItemVisual(e,n),r=RC(n);if(this[r]!==i){this.remove(this.childOfName(n));var o=NC(n,t,e);this.add(o)}this[r]=i}),this),this._updateCommonStl(t,e,n)},e.prototype.getLinePath=function(){return this.childAt(0)},e.prototype._updateCommonStl=function(t,e,n){var i=t.hostModel,r=this.childOfName("line"),o=n&&n.emphasisLineStyle,a=n&&n.blurLineStyle,s=n&&n.selectLineStyle,l=n&&n.labelStatesModels;if(!n||t.hasItemOption){var u=t.getItemModel(e);o=u.getModel(["emphasis","lineStyle"]).getLineStyle(),a=u.getModel(["blur","lineStyle"]).getLineStyle(),s=u.getModel(["select","lineStyle"]).getLineStyle(),l=Gu(u)}var h=t.getItemVisual(e,"style"),c=h.stroke;r.useStyle(h),r.style.fill=null,r.style.strokeNoScale=!0,r.ensureState("emphasis").style=o,r.ensureState("blur").style=a,r.ensureState("select").style=s,P(OC,(function(t){var e=this.childOfName(t);if(e){e.setColor(c),e.style.opacity=h.opacity;for(var n=0;n<cs.length;n++){var i=cs[n],o=r.getState(i);if(o){var a=o.style||{},s=e.ensureState(i),l=s.style||(s.style={});null!=a.stroke&&(l[e.__isEmptyBrush?"stroke":"fill"]=a.stroke),null!=a.opacity&&(l.opacity=a.opacity)}}e.markRedraw()}}),this);var p=i.getRawValue(e);Hu(this,l,{labelDataIndex:e,labelFetcher:{getFormattedLabel:function(e,n){return i.getFormattedLabel(e,n,t.dataType)}},inheritColor:c||"#000",defaultOpacity:h.opacity,defaultText:(null==p?t.getName(e):isFinite(p)?Wi(p):p)+""});var d=this.getTextContent();if(d){var f=l.normal;d.__align=d.style.align,d.__verticalAlign=d.style.verticalAlign,d.__position=f.get("position")||"middle";var g=f.get("distance");V(g)||(g=[g,g]),d.__labelDistance=g}this.setTextConfig({position:null,local:!0,inside:!1}),Ws(this)},e.prototype.highlight=function(){Os(this)},e.prototype.downplay=function(){Rs(this)},e.prototype.updateLayout=function(t,e){this.setLinePoints(t.getItemLayout(e))},e.prototype.setLinePoints=function(t){var e=this.childOfName("line");EC(e.shape,t),e.dirty()},e.prototype.beforeUpdate=function(){var t=this,e=t.childOfName("fromSymbol"),n=t.childOfName("toSymbol"),i=t.getTextContent();if(e||n||i&&!i.ignore){for(var r=1,o=this.parent;o;)o.scaleX&&(r/=o.scaleX),o=o.parent;var a=t.childOfName("line");if(this.__dirty||a.__dirty){var s=a.shape.percent,l=a.pointAt(0),u=a.pointAt(s),h=_t([],u,l);if(Tt(h,h),e&&(e.setPosition(l),S(e,0),e.scaleX=e.scaleY=r*s,e.markRedraw()),n&&(n.setPosition(u),S(n,1),n.scaleX=n.scaleY=r*s,n.markRedraw()),i&&!i.ignore){i.x=i.y=0,i.originX=i.originY=0;var c=void 0,p=void 0,d=i.__labelDistance,f=d[0]*r,g=d[1]*r,y=s/2,v=a.tangentAt(y),m=[v[1],-v[0]],_=a.pointAt(y);m[1]>0&&(m[0]=-m[0],m[1]=-m[1]);var x=v[0]<0?-1:1;if("start"!==i.__position&&"end"!==i.__position){var b=-Math.atan2(v[1],v[0]);u[0]<l[0]&&(b=Math.PI+b),i.rotation=b}var w=void 0;switch(i.__position){case"insideStartTop":case"insideMiddleTop":case"insideEndTop":case"middle":w=-g,p="bottom";break;case"insideStartBottom":case"insideMiddleBottom":case"insideEndBottom":w=g,p="top";break;default:w=0,p="middle"}switch(i.__position){case"end":i.x=h[0]*f+u[0],i.y=h[1]*g+u[1],c=h[0]>.8?"left":h[0]<-.8?"right":"center",p=h[1]>.8?"top":h[1]<-.8?"bottom":"middle";break;case"start":i.x=-h[0]*f+l[0],i.y=-h[1]*g+l[1],c=h[0]>.8?"right":h[0]<-.8?"left":"center",p=h[1]>.8?"bottom":h[1]<-.8?"top":"middle";break;case"insideStartTop":case"insideStart":case"insideStartBottom":i.x=f*x+l[0],i.y=l[1]+w,c=v[0]<0?"right":"left",i.originX=-f*x,i.originY=-w;break;case"insideMiddleTop":case"insideMiddle":case"insideMiddleBottom":case"middle":i.x=_[0],i.y=_[1]+w,c="center",i.originY=-w;break;case"insideEndTop":case"insideEnd":case"insideEndBottom":i.x=-f*x+u[0],i.y=u[1]+w,c=v[0]>=0?"right":"left",i.originX=f*x,i.originY=-w}i.scaleX=i.scaleY=r,i.setStyle({verticalAlign:i.__verticalAlign||p,align:i.__align||c})}}}function S(t,e){var n=t.__specifiedRotation;if(null==n){var i=a.tangentAt(e);t.attr("rotation",(1===e?-1:1)*Math.PI/2-Math.atan2(i[1],i[0]))}else t.attr("rotation",n)}},e}(Pi),zC=function(){function t(t){this.group=new Pi,this._LineCtor=t||BC}return t.prototype.isPersistent=function(){return!0},t.prototype.updateData=function(t){var e=this,n=this,i=n.group,r=n._lineData;n._lineData=t,r||i.removeAll();var o=VC(t);t.diff(r).add((function(n){e._doAdd(t,n,o)})).update((function(n,i){e._doUpdate(r,t,i,n,o)})).remove((function(t){i.remove(r.getItemGraphicEl(t))})).execute()},t.prototype.updateLayout=function(){var t=this._lineData;t&&t.eachItemGraphicEl((function(e,n){e.updateLayout(t,n)}),this)},t.prototype.incrementalPrepareUpdate=function(t){this._seriesScope=VC(t),this._lineData=null,this.group.removeAll()},t.prototype.incrementalUpdate=function(t,e){function n(t){t.isGroup||function(t){return t.animators&&t.animators.length>0}(t)||(t.incremental=!0,t.ensureState("emphasis").hoverLayer=!0)}for(var i=t.start;i<t.end;i++){if(HC(e.getItemLayout(i))){var r=new this._LineCtor(e,i,this._seriesScope);r.traverse(n),this.group.add(r),e.setItemGraphicEl(i,r)}}},t.prototype.remove=function(){this.group.removeAll()},t.prototype._doAdd=function(t,e,n){if(HC(t.getItemLayout(e))){var i=new this._LineCtor(t,e,n);t.setItemGraphicEl(e,i),this.group.add(i)}},t.prototype._doUpdate=function(t,e,n,i,r){var o=t.getItemGraphicEl(n);HC(e.getItemLayout(i))?(o?o.updateData(e,i,r):o=new this._LineCtor(e,i,r),e.setItemGraphicEl(i,o),this.group.add(o)):this.group.remove(o)},t}();function VC(t){var e=t.hostModel;return{lineStyle:e.getModel("lineStyle").getLineStyle(),emphasisLineStyle:e.getModel(["emphasis","lineStyle"]).getLineStyle(),blurLineStyle:e.getModel(["blur","lineStyle"]).getLineStyle(),selectLineStyle:e.getModel(["select","lineStyle"]).getLineStyle(),labelStatesModels:Gu(e)}}function FC(t){return isNaN(t[0])||isNaN(t[1])}function HC(t){return!FC(t[0])&&!FC(t[1])}var GC=wr(),WC=function(t,e,n,i){var r,o=t.getData();if(V(i))r=i;else{var a=i.type;if("min"===a||"max"===a||"average"===a||"median"===a||null!=i.xAxis||null!=i.yAxis){var s=void 0,l=void 0;if(null!=i.yAxis||null!=i.xAxis)s=e.getAxis(null!=i.yAxis?"y":"x"),l=J(i.yAxis,i.xAxis);else{var u=_C(i,o,e,t);s=u.valueAxis,l=wC(o,dm(o,u.valueDataDim),a)}var h="x"===s.dim?0:1,c=1-h,p=w(i),d={coord:[]};p.type=null,p.coord=[],p.coord[c]=-1/0,d.coord[c]=1/0;var f=n.get("precision");f>=0&&"number"==typeof l&&(l=+l.toFixed(Math.min(f,20))),p.coord[h]=d.coord[h]=l,r=[p,d,{type:a,valueIndex:i.valueIndex,value:l}]}else r=[]}var g=[mC(t,r[0]),mC(t,r[1]),T({},r[2])];return g[2].type=g[2].type||null,S(g[2],g[0]),S(g[2],g[1]),g};function UC(t){return!isNaN(t)&&!isFinite(t)}function YC(t,e,n,i){var r=1-t,o=i.dimensions[t];return UC(e[r])&&UC(n[r])&&e[t]===n[t]&&i.getAxis(o).containData(e[t])}function XC(t,e){if("cartesian2d"===t.type){var n=e[0].coord,i=e[1].coord;if(n&&i&&(YC(1,n,i,t)||YC(0,n,i,t)))return!0}return xC(t,e[0])&&xC(t,e[1])}function ZC(t,e,n,i,r){var o,a=i.coordinateSystem,s=t.getItemModel(e),l=Gi(s.get("x"),r.getWidth()),u=Gi(s.get("y"),r.getHeight());if(isNaN(l)||isNaN(u)){if(i.getMarkerPosition)o=i.getMarkerPosition(t.getValues(t.dimensions,e));else{var h=a.dimensions,c=t.get(h[0],e),p=t.get(h[1],e);o=a.dataToPoint([c,p])}if(pb(a,"cartesian2d")){var d=a.getAxis("x"),f=a.getAxis("y");h=a.dimensions;UC(t.get(h[0],e))?o[0]=d.toGlobalCoord(d.getExtent()[n?0:1]):UC(t.get(h[1],e))&&(o[1]=f.toGlobalCoord(f.getExtent()[n?0:1]))}isNaN(l)||(o[0]=l),isNaN(u)||(o[1]=u)}else o=[l,u];t.setItemLayout(e,o)}var jC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.updateTransform=function(t,e,n){e.eachSeries((function(t){var e=fC.getMarkerModelFromSeries(t,"markLine");if(e){var i=e.getData(),r=GC(e).from,o=GC(e).to;r.each((function(e){ZC(r,e,!0,t,n),ZC(o,e,!1,t,n)})),i.each((function(t){i.setItemLayout(t,[r.getItemLayout(t),o.getItemLayout(t)])})),this.markerGroupMap.get(t.id).updateLayout()}}),this)},e.prototype.renderSeries=function(t,e,n,i){var r=t.coordinateSystem,o=t.id,a=t.getData(),s=this.markerGroupMap,l=s.get(o)||s.set(o,new zC);this.group.add(l.group);var u=function(t,e,n){var i;i=t?O(t&&t.dimensions,(function(t){return C({name:t},e.getData().getDimensionInfo(e.getData().mapDimension(t))||{})})):[{name:"value",type:"float"}];var r=new rm(i,n),o=new rm(i,n),a=new rm([],n),s=O(n.get("data"),z(WC,e,t,n));t&&(s=N(s,z(XC,t)));var l=t?bC:function(t){return t.value};return r.initData(O(s,(function(t){return t[0]})),null,l),o.initData(O(s,(function(t){return t[1]})),null,l),a.initData(O(s,(function(t){return t[2]}))),a.hasItemOption=!0,{from:r,to:o,line:a}}(r,t,e),h=u.from,c=u.to,p=u.line;GC(e).from=h,GC(e).to=c,e.setData(p);var d=e.get("symbol"),f=e.get("symbolSize");function g(e,n,r){var o=e.getItemModel(n);ZC(e,n,r,t,i);var s=o.getModel("itemStyle").getItemStyle();null==s.fill&&(s.fill=Gf(a,"color")),e.setItemVisual(n,{symbolRotate:o.get("symbolRotate"),symbolSize:o.get("symbolSize")||f[r?0:1],symbol:o.get("symbol",!0)||d[r?0:1],style:s})}V(d)||(d=[d,d]),V(f)||(f=[f,f]),u.from.each((function(t){g(h,t,!0),g(c,t,!1)})),p.each((function(t){var e=p.getItemModel(t).getModel("lineStyle").getLineStyle();p.setItemLayout(t,[h.getItemLayout(t),c.getItemLayout(t)]),null==e.stroke&&(e.stroke=h.getItemVisual(t,"style").fill),p.setItemVisual(t,{fromSymbolRotate:h.getItemVisual(t,"symbolRotate"),fromSymbolSize:h.getItemVisual(t,"symbolSize"),fromSymbol:h.getItemVisual(t,"symbol"),toSymbolRotate:c.getItemVisual(t,"symbolRotate"),toSymbolSize:c.getItemVisual(t,"symbolSize"),toSymbol:c.getItemVisual(t,"symbol"),style:e})})),l.updateData(p),u.line.eachItemGraphicEl((function(t,n){t.traverse((function(t){ss(t).dataModel=e}))})),this.markKeep(l),l.group.silent=e.get("silent")||t.get("silent")},e.type="markLine",e}(MC);var qC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.createMarkerModelFromSeries=function(t,n,i){return new e(t,n,i)},e.type="markArea",e.defaultOption={zlevel:0,z:1,tooltip:{trigger:"item"},animation:!1,label:{show:!0,position:"top"},itemStyle:{borderWidth:0},emphasis:{label:{show:!0,position:"top"}}},e}(fC),KC=wr(),$C=function(t,e,n,i){var r=mC(t,i[0]),o=mC(t,i[1]),a=r.coord,s=o.coord;a[0]=J(a[0],-1/0),a[1]=J(a[1],-1/0),s[0]=J(s[0],1/0),s[1]=J(s[1],1/0);var l=M([{},r,o]);return l.coord=[r.coord,o.coord],l.x0=r.x,l.y0=r.y,l.x1=o.x,l.y1=o.y,l};function JC(t){return!isNaN(t)&&!isFinite(t)}function QC(t,e,n,i){var r=1-t;return JC(e[r])&&JC(n[r])}function tI(t,e){var n=e.coord[0],i=e.coord[1];return!!(pb(t,"cartesian2d")&&n&&i&&(QC(1,n,i)||QC(0,n,i)))||(xC(t,{coord:n,x:e.x0,y:e.y0})||xC(t,{coord:i,x:e.x1,y:e.y1}))}function eI(t,e,n,i,r){var o,a=i.coordinateSystem,s=t.getItemModel(e),l=Gi(s.get(n[0]),r.getWidth()),u=Gi(s.get(n[1]),r.getHeight());if(isNaN(l)||isNaN(u)){if(i.getMarkerPosition)o=i.getMarkerPosition(t.getValues(n,e));else{var h=[d=t.get(n[0],e),f=t.get(n[1],e)];a.clampData&&a.clampData(h,h),o=a.dataToPoint(h,!0)}if(pb(a,"cartesian2d")){var c=a.getAxis("x"),p=a.getAxis("y"),d=t.get(n[0],e),f=t.get(n[1],e);JC(d)?o[0]=c.toGlobalCoord(c.getExtent()["x0"===n[0]?0:1]):JC(f)&&(o[1]=p.toGlobalCoord(p.getExtent()["y0"===n[1]?0:1]))}isNaN(l)||(o[0]=l),isNaN(u)||(o[1]=u)}else o=[l,u];return o}var nI=[["x0","y0"],["x1","y0"],["x1","y1"],["x0","y1"]],iI=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.updateTransform=function(t,e,n){e.eachSeries((function(t){var e=fC.getMarkerModelFromSeries(t,"markArea");if(e){var i=e.getData();i.each((function(e){var r=O(nI,(function(r){return eI(i,e,r,t,n)}));i.setItemLayout(e,r),i.getItemGraphicEl(e).setShape("points",r)}))}}),this)},e.prototype.renderSeries=function(t,e,n,i){var r=t.coordinateSystem,o=t.id,a=t.getData(),s=this.markerGroupMap,l=s.get(o)||s.set(o,{group:new Pi});this.group.add(l.group),this.markKeep(l);var u=function(t,e,n){var i,r,o=["x0","y0","x1","y1"];t?(i=O(t&&t.dimensions,(function(t){var n=e.getData();return C({name:t},n.getDimensionInfo(n.mapDimension(t))||{})})),r=new rm(O(o,(function(t,e){return{name:t,type:i[e%2].type}})),n)):r=new rm(i=[{name:"value",type:"float"}],n);var a=O(n.get("data"),z($C,e,t,n));t&&(a=N(a,z(tI,t)));var s=t?function(t,e,n,i){return t.coord[Math.floor(i/2)][i%2]}:function(t){return t.value};return r.initData(a,null,s),r.hasItemOption=!0,r}(r,t,e);e.setData(u),u.each((function(e){var n=O(nI,(function(n){return eI(u,e,n,t,i)})),o=!0;P(nI,(function(t){if(o){var n=u.get(t[0],e),i=u.get(t[1],e);(JC(n)||r.getAxis("x").containData(n))&&(JC(i)||r.getAxis("y").containData(i))&&(o=!1)}})),u.setItemLayout(e,{points:n,allClipped:o});var s=u.getItemModel(e).getModel("itemStyle").getItemStyle(),l=Gf(a,"color");s.fill||(s.fill=l,"string"==typeof s.fill&&(s.fill=Qe(s.fill,.4))),s.stroke||(s.stroke=l),u.setItemVisual(e,"style",s)})),u.diff(KC(l).data).add((function(t){var e=u.getItemLayout(t);if(!e.allClipped){var n=new Bl({shape:{points:e.points}});u.setItemGraphicEl(t,n),l.group.add(n)}})).update((function(t,n){var i=KC(l).data.getItemGraphicEl(n),r=u.getItemLayout(t);r.allClipped?i&&l.group.remove(i):(i?bu(i,{shape:{points:r.points}},e,t):i=new Bl({shape:{points:r.points}}),u.setItemGraphicEl(t,i),l.group.add(i))})).remove((function(t){var e=KC(l).data.getItemGraphicEl(t);l.group.remove(e)})).execute(),u.eachItemGraphicEl((function(t,n){var i=u.getItemModel(n),r=u.getItemVisual(n,"style");t.useStyle(u.getItemVisual(n,"style")),Hu(t,Gu(i),{labelFetcher:e,labelDataIndex:n,defaultText:u.getName(n)||"",inheritColor:"string"==typeof r.fill?Qe(r.fill,1):"#000"}),Xs(t,i),Ws(t),ss(t).dataModel=e})),KC(l).data=u,l.group.silent=e.get("silent")||t.get("silent")},e.type="markArea",e}(MC);var rI=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.layoutMode={type:"box",ignoreSize:!0},n}return n(e,t),e.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n),t.selected=t.selected||{},this._updateSelector(t)},e.prototype.mergeOption=function(e,n){t.prototype.mergeOption.call(this,e,n),this._updateSelector(e)},e.prototype._updateSelector=function(t){var e=t.selector,n=this.ecModel;!0===e&&(e=t.selector=["all","inverse"]),V(e)&&P(e,(function(t,i){H(t)&&(t={type:t}),e[i]=S(t,function(t,e){return"all"===e?{type:"all",title:t.getLocale(["legend","selector","all"])}:"inverse"===e?{type:"inverse",title:t.getLocale(["legend","selector","inverse"])}:void 0}(n,t.type))}))},e.prototype.optionUpdated=function(){this._updateData(this.ecModel);var t=this._data;if(t[0]&&"single"===this.get("selectedMode")){for(var e=!1,n=0;n<t.length;n++){var i=t[n].get("name");if(this.isSelected(i)){this.select(i),e=!0;break}}!e&&this.select(t[0].get("name"))}},e.prototype._updateData=function(t){var e=[],n=[];t.eachRawSeries((function(i){var r,o=i.name;if(n.push(o),i.legendVisualProvider){var a=i.legendVisualProvider.getAllNames();t.isSeriesFiltered(i)||(n=n.concat(a)),a.length?e=e.concat(a):r=!0}else r=!0;r&&_r(i)&&e.push(i.name)})),this._availableNames=n;var i=O(this.get("data")||e,(function(t){return"string"!=typeof t&&"number"!=typeof t||(t={name:t}),new sh(t,this,this.ecModel)}),this);this._data=i},e.prototype.getData=function(){return this._data},e.prototype.select=function(t){var e=this.option.selected;"single"===this.get("selectedMode")&&P(this._data,(function(t){e[t.get("name")]=!1}));e[t]=!0},e.prototype.unSelect=function(t){"single"!==this.get("selectedMode")&&(this.option.selected[t]=!1)},e.prototype.toggleSelected=function(t){var e=this.option.selected;e.hasOwnProperty(t)||(e[t]=!0),this[e[t]?"unSelect":"select"](t)},e.prototype.allSelect=function(){var t=this._data,e=this.option.selected;P(t,(function(t){e[t.get("name",!0)]=!0}))},e.prototype.inverseSelect=function(){var t=this._data,e=this.option.selected;P(t,(function(t){var n=t.get("name",!0);e.hasOwnProperty(n)||(e[n]=!0),e[n]=!e[n]}))},e.prototype.isSelected=function(t){var e=this.option.selected;return!(e.hasOwnProperty(t)&&!e[t])&&A(this._availableNames,t)>=0},e.prototype.getOrient=function(){return"vertical"===this.get("orient")?{index:1,name:"vertical"}:{index:0,name:"horizontal"}},e.type="legend.plain",e.dependencies=["series"],e.defaultOption={zlevel:0,z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,inactiveColor:"#ccc",inactiveBorderColor:"#ccc",itemStyle:{borderWidth:0},textStyle:{color:"#333"},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:" sans-serif",color:"#666",borderWidth:1,borderColor:"#666"},emphasis:{selectorLabel:{show:!0,color:"#eee",backgroundColor:"#666"}},selectorPosition:"auto",selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1}},e}(_c),oI=z,aI=P,sI=Pi,lI=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.newlineDisabled=!1,n}return n(e,t),e.prototype.init=function(){this.group.add(this._contentGroup=new sI),this.group.add(this._selectorGroup=new sI),this._isFirstRender=!0},e.prototype.getContentGroup=function(){return this._contentGroup},e.prototype.getSelectorGroup=function(){return this._selectorGroup},e.prototype.render=function(t,e,n){var i=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),t.get("show",!0)){var r=t.get("align"),o=t.get("orient");r&&"auto"!==r||(r="right"===t.get("left")&&"vertical"===o?"right":"left");var a=t.get("selector",!0),s=t.get("selectorPosition",!0);!a||s&&"auto"!==s||(s="horizontal"===o?"end":"start"),this.renderInner(r,t,e,n,a,o,s);var l=t.getBoxLayoutParams(),u={width:n.getWidth(),height:n.getHeight()},h=t.get("padding"),c=pc(l,u,h),p=this.layoutInner(t,r,c,i,a,s),d=pc(C({width:p.width,height:p.height},l),u,h);this.group.x=d.x-p.x,this.group.y=d.y-p.y,this.group.markRedraw(),this.group.add(this._backgroundEl=fM(p,t))}},e.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},e.prototype.renderInner=function(t,e,n,i,r,o,a){var s=this.getContentGroup(),l=ut(),u=e.get("selectedMode"),h=[];n.eachRawSeries((function(t){!t.get("legendHoverLink")&&h.push(t.id)})),aI(e.getData(),(function(r,o){var a=r.get("name");if(!this.newlineDisabled&&(""===a||"\n"===a)){var c=new sI;return c.newline=!0,void s.add(c)}var p=n.getSeriesByName(a)[0];if(!l.get(a)){if(p){var d=p.getData(),f=d.getVisual("style"),g=f[d.getVisual("drawType")]||f.fill,y=f.stroke,v=f.decal,m=d.getVisual("legendSymbol")||"roundRect",_=d.getVisual("symbol");this._createItem(a,o,r,e,m,_,t,g,y,v,u).on("click",oI(hI,a,null,i,h)).on("mouseover",oI(pI,p.name,null,i,h)).on("mouseout",oI(dI,p.name,null,i,h)),l.set(a,!0)}else n.eachRawSeries((function(n){if(!l.get(a)&&n.legendVisualProvider){var s=n.legendVisualProvider;if(!s.containName(a))return;var c=s.indexOfName(a),p=s.getItemVisual(c,"style"),d=p.stroke,f=p.decal,g=p.fill,y=Ye(p.fill);y&&0===y[3]&&(y[3]=.2,g=tn(y,"rgba"));this._createItem(a,o,r,e,"roundRect",null,t,g,d,f,u).on("click",oI(hI,null,a,i,h)).on("mouseover",oI(pI,null,a,i,h)).on("mouseout",oI(dI,null,a,i,h)),l.set(a,!0)}}),this);0}}),this),r&&this._createSelector(r,e,i,o,a)},e.prototype._createSelector=function(t,e,n,i,r){var o=this.getSelectorGroup();aI(t,(function(t){var i=t.type,r=new Qa({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){n.dispatchAction({type:"all"===i?"legendAllSelect":"legendInverseSelect"})}});o.add(r),Hu(r,{normal:e.getModel("selectorLabel"),emphasis:e.getModel(["emphasis","selectorLabel"])},{defaultText:t.title}),Ws(r)}))},e.prototype._createItem=function(t,e,n,i,r,o,a,s,l,u,h){var c=i.get("itemWidth"),p=i.get("itemHeight"),d=i.get("inactiveColor"),f=i.get("inactiveBorderColor"),g=i.get("symbolKeepAspect"),y=i.getModel("itemStyle"),v=i.isSelected(t),m=new sI,_=n.getModel("textStyle"),x=n.get("icon"),b=n.getModel("tooltip"),w=b.parentModel,S=Eg(r=x||r,0,0,c,p,v?s:d,null==g||g);if(m.add(uI(S,r,y,l,f,u,v)),!x&&o&&(o!==r||"none"===o)){var M=.8*p;"none"===o&&(o="circle");var C=Eg(o,(c-M)/2,(p-M)/2,M,M,v?s:d,null==g||g);m.add(uI(C,o,y,l,f,u,v))}var I="left"===a?c+5:-5,A=a,D=i.get("formatter"),k=t;"string"==typeof D&&D?k=D.replace("{name}",null!=t?t:""):"function"==typeof D&&(k=D(t)),m.add(new Qa({style:Wu(_,{text:k,x:I,y:p/2,fill:v?_.getTextColor():d,align:A,verticalAlign:"middle"})}));var L=new Ka({shape:m.getBoundingRect(),invisible:!0});if(b.get("show")){var P={componentType:"legend",legendIndex:i.componentIndex,name:t,$vars:["name"]};L.tooltip=T({content:t,formatter:w.get("formatter",!0)||function(t){return t.name},formatterParams:P},b.option)}return m.add(L),m.eachChild((function(t){t.silent=!0})),L.silent=!h,this.getContentGroup().add(m),Ws(m),m.__legendDataIndex=e,m},e.prototype.layoutInner=function(t,e,n,i,r,o){var a=this.getContentGroup(),s=this.getSelectorGroup();cc(t.get("orient"),a,t.get("itemGap"),n.width,n.height);var l=a.getBoundingRect(),u=[-l.x,-l.y];if(s.markRedraw(),a.markRedraw(),r){cc("horizontal",s,t.get("selectorItemGap",!0));var h=s.getBoundingRect(),c=[-h.x,-h.y],p=t.get("selectorButtonGap",!0),d=t.getOrient().index,f=0===d?"width":"height",g=0===d?"height":"width",y=0===d?"y":"x";"end"===o?c[d]+=l[f]+p:u[d]+=h[f]+p,c[1-d]+=l[g]/2-h[g]/2,s.x=c[0],s.y=c[1],a.x=u[0],a.y=u[1];var v={x:0,y:0};return v[f]=l[f]+p+h[f],v[g]=Math.max(l[g],h[g]),v[y]=Math.min(0,h[y]+c[1-d]),v}return a.x=u[0],a.y=u[1],this.group.getBoundingRect()},e.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},e.type="legend.plain",e}(Gd);function uI(t,e,n,i,r,o,a){var s;return"line"!==e&&e.indexOf("empty")<0?(s=n.getItemStyle(),t.style.stroke=i,t.style.decal=o,a||(s.stroke=r)):s=n.getItemStyle(["borderWidth","borderColor"]),t.setStyle(s),t}function hI(t,e,n,i){dI(t,e,n,i),n.dispatchAction({type:"legendToggleSelect",name:null!=t?t:e}),pI(t,e,n,i)}function cI(t){for(var e,n=t.getZr().storage.getDisplayList(),i=0,r=n.length;i<r&&!(e=n[i].states.emphasis);)i++;return e&&e.hoverLayer}function pI(t,e,n,i){cI(n)||n.dispatchAction({type:"highlight",seriesName:t,name:e,excludeSeriesId:i})}function dI(t,e,n,i){cI(n)||n.dispatchAction({type:"downplay",seriesName:t,name:e,excludeSeriesId:i})}function fI(t){var e=t.findComponents({mainType:"legend"});e&&e.length&&t.filterSeries((function(t){for(var n=0;n<e.length;n++)if(!e[n].isSelected(t.name))return!1;return!0}))}function gI(t,e,n){var i,r={},o="toggleSelected"===t;return n.eachComponent("legend",(function(n){o&&null!=i?n[i?"select":"unSelect"](e.name):"allSelect"===t||"inverseSelect"===t?n[t]():(n[t](e.name),i=n.isSelected(e.name)),P(n.getData(),(function(t){var e=t.get("name");if("\n"!==e&&""!==e){var i=n.isSelected(e);r.hasOwnProperty(e)?r[e]=r[e]&&i:r[e]=i}}))})),"allSelect"===t||"inverseSelect"===t?{selected:r}:{name:e.name,selected:r}}function yI(t){t.registerComponentModel(rI),t.registerComponentView(lI),t.registerProcessor(t.PRIORITY.PROCESSOR.SERIES_FILTER,fI),t.registerSubTypeDefaulter("legend",(function(){return"plain"})),function(t){t.registerAction("legendToggleSelect","legendselectchanged",z(gI,"toggleSelected")),t.registerAction("legendAllSelect","legendselectall",z(gI,"allSelect")),t.registerAction("legendInverseSelect","legendinverseselect",z(gI,"inverseSelect")),t.registerAction("legendSelect","legendselected",z(gI,"select")),t.registerAction("legendUnSelect","legendunselected",z(gI,"unSelect"))}(t)}var vI=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.setScrollDataIndex=function(t){this.option.scrollDataIndex=t},e.prototype.init=function(e,n,i){var r=yc(e);t.prototype.init.call(this,e,n,i),mI(this,e,r)},e.prototype.mergeOption=function(e,n){t.prototype.mergeOption.call(this,e,n),mI(this,this.option,e)},e.type="legend.scroll",e.defaultOption=hh(rI.defaultOption,{scrollDataIndex:0,pageButtonItemGap:5,pageButtonGap:null,pageButtonPosition:"end",pageFormatter:"{current}/{total}",pageIcons:{horizontal:["M0,0L12,-10L12,10z","M0,0L-12,-10L-12,10z"],vertical:["M0,0L20,0L10,-20z","M0,0L20,0L10,20z"]},pageIconColor:"#2f4554",pageIconInactiveColor:"#aaa",pageIconSize:15,pageTextStyle:{color:"#333"},animationDurationUpdate:800}),e}(rI);function mI(t,e,n){var i=[1,1];i[t.getOrient().index]=0,gc(e,n,{type:"box",ignoreSize:!!i})}var _I=Pi,xI=["width","height"],bI=["x","y"],wI=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.newlineDisabled=!0,n._currentIndex=0,n}return n(e,t),e.prototype.init=function(){t.prototype.init.call(this),this.group.add(this._containerGroup=new _I),this._containerGroup.add(this.getContentGroup()),this.group.add(this._controllerGroup=new _I)},e.prototype.resetInner=function(){t.prototype.resetInner.call(this),this._controllerGroup.removeAll(),this._containerGroup.removeClipPath(),this._containerGroup.__rectSize=null},e.prototype.renderInner=function(e,n,i,r,o,a,s){var l=this;t.prototype.renderInner.call(this,e,n,i,r,o,a,s);var u=this._controllerGroup,h=n.get("pageIconSize",!0),c=V(h)?h:[h,h];d("pagePrev",0);var p=n.getModel("pageTextStyle");function d(t,e){var i=t+"DataIndex",o=Ru(n.get("pageIcons",!0)[n.getOrient().name][e],{onclick:B(l._pageGo,l,i,n,r)},{x:-c[0]/2,y:-c[1]/2,width:c[0],height:c[1]});o.name=t,u.add(o)}u.add(new Qa({name:"pageText",style:{text:"xx/xx",fill:p.getTextColor(),font:p.getFont(),verticalAlign:"middle",align:"center"},silent:!0})),d("pageNext",1)},e.prototype.layoutInner=function(t,e,n,i,r,o){var a=this.getSelectorGroup(),s=t.getOrient().index,l=xI[s],u=bI[s],h=xI[1-s],c=bI[1-s];r&&cc("horizontal",a,t.get("selectorItemGap",!0));var p=t.get("selectorButtonGap",!0),d=a.getBoundingRect(),f=[-d.x,-d.y],g=w(n);r&&(g[l]=n[l]-d[l]-p);var y=this._layoutContentAndController(t,i,g,s,l,h,c,u);if(r){if("end"===o)f[s]+=y[l]+p;else{var v=d[l]+p;f[s]-=v,y[u]-=v}y[l]+=d[l]+p,f[1-s]+=y[c]+y[h]/2-d[h]/2,y[h]=Math.max(y[h],d[h]),y[c]=Math.min(y[c],d[c]+f[1-s]),a.x=f[0],a.y=f[1],a.markRedraw()}return y},e.prototype._layoutContentAndController=function(t,e,n,i,r,o,a,s){var l=this.getContentGroup(),u=this._containerGroup,h=this._controllerGroup;cc(t.get("orient"),l,t.get("itemGap"),i?n.width:null,i?null:n.height),cc("horizontal",h,t.get("pageButtonItemGap",!0));var c=l.getBoundingRect(),p=h.getBoundingRect(),d=this._showController=c[r]>n[r],f=[-c.x,-c.y];e||(f[i]=l[s]);var g=[0,0],y=[-p.x,-p.y],v=Q(t.get("pageButtonGap",!0),t.get("itemGap",!0));d&&("end"===t.get("pageButtonPosition",!0)?y[i]+=n[r]-p[r]:g[i]+=p[r]+v);y[1-i]+=c[o]/2-p[o]/2,l.setPosition(f),u.setPosition(g),h.setPosition(y);var m={x:0,y:0};if(m[r]=d?n[r]:c[r],m[o]=Math.max(c[o],p[o]),m[a]=Math.min(0,p[a]+y[1-i]),u.__rectSize=n[r],d){var _={x:0,y:0};_[r]=Math.max(n[r]-p[r]-v,0),_[o]=m[o],u.setClipPath(new Ka({shape:_})),u.__rectSize=_[r]}else h.eachChild((function(t){t.attr({invisible:!0,silent:!0})}));var x=this._getPageInfo(t);return null!=x.pageIndex&&bu(l,{x:x.contentPosition[0],y:x.contentPosition[1]},d?t:null),this._updatePageInfoView(t,x),m},e.prototype._pageGo=function(t,e,n){var i=this._getPageInfo(e)[t];null!=i&&n.dispatchAction({type:"legendScroll",scrollDataIndex:i,legendId:e.id})},e.prototype._updatePageInfoView=function(t,e){var n=this._controllerGroup;P(["pagePrev","pageNext"],(function(i){var r=null!=e[i+"DataIndex"],o=n.childOfName(i);o&&(o.setStyle("fill",r?t.get("pageIconColor",!0):t.get("pageIconInactiveColor",!0)),o.cursor=r?"pointer":"default")}));var i=n.childOfName("pageText"),r=t.get("pageFormatter"),o=e.pageIndex,a=null!=o?o+1:0,s=e.pageCount;i&&r&&i.setStyle("text",H(r)?r.replace("{current}",null==a?"":a+"").replace("{total}",null==s?"":s+""):r({current:a,total:s}))},e.prototype._getPageInfo=function(t){var e=t.get("scrollDataIndex",!0),n=this.getContentGroup(),i=this._containerGroup.__rectSize,r=t.getOrient().index,o=xI[r],a=bI[r],s=this._findTargetItemIndex(e),l=n.children(),u=l[s],h=l.length,c=h?1:0,p={contentPosition:[n.x,n.y],pageCount:c,pageIndex:c-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!u)return p;var d=m(u);p.contentPosition[r]=-d.s;for(var f=s+1,g=d,y=d,v=null;f<=h;++f)(!(v=m(l[f]))&&y.e>g.s+i||v&&!_(v,g.s))&&(g=y.i>g.i?y:v)&&(null==p.pageNextDataIndex&&(p.pageNextDataIndex=g.i),++p.pageCount),y=v;for(f=s-1,g=d,y=d,v=null;f>=-1;--f)(v=m(l[f]))&&_(y,v.s)||!(g.i<y.i)||(y=g,null==p.pagePrevDataIndex&&(p.pagePrevDataIndex=g.i),++p.pageCount,++p.pageIndex),g=v;return p;function m(t){if(t){var e=t.getBoundingRect(),n=e[a]+t[a];return{s:n,e:n+e[o],i:t.__legendDataIndex}}}function _(t,e){return t.e>=e&&t.s<=e+i}},e.prototype._findTargetItemIndex=function(t){return this._showController?(this.getContentGroup().eachChild((function(i,r){var o=i.__legendDataIndex;null==n&&null!=o&&(n=r),o===t&&(e=r)})),null!=e?e:n):0;var e,n},e.type="legend.scroll",e}(lI);function SI(t){Av(yI),t.registerComponentModel(vI),t.registerComponentView(wI),function(t){t.registerAction("legendScroll","legendscroll",(function(t,e){var n=t.scrollDataIndex;null!=n&&e.eachComponent({mainType:"legend",subType:"scroll",query:t},(function(t){t.setScrollDataIndex(n)}))}))}(t)}var MI=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="dataZoom.inside",e.defaultOption=hh(jS.defaultOption,{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),e}(jS),TI=function(t){function e(e){var n=t.call(this)||this;n._zr=e;var i=B(n._mousedownHandler,n),r=B(n._mousemoveHandler,n),o=B(n._mouseupHandler,n),a=B(n._mousewheelHandler,n),s=B(n._pinchHandler,n);return n.enable=function(t,n){this.disable(),this._opt=C(w(n)||{},{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),null==t&&(t=!0),!0!==t&&"move"!==t&&"pan"!==t||(e.on("mousedown",i),e.on("mousemove",r),e.on("mouseup",o)),!0!==t&&"scale"!==t&&"zoom"!==t||(e.on("mousewheel",a),e.on("pinch",s))},n.disable=function(){e.off("mousedown",i),e.off("mousemove",r),e.off("mouseup",o),e.off("mousewheel",a),e.off("pinch",s)},n}return n(e,t),e.prototype.isDragging=function(){return this._dragging},e.prototype.isPinching=function(){return this._pinching},e.prototype.setPointerChecker=function(t){this.pointerChecker=t},e.prototype.dispose=function(){this.disable()},e.prototype._mousedownHandler=function(t){if(!(Qt(t)||t.target&&t.target.draggable)){var e=t.offsetX,n=t.offsetY;this.pointerChecker&&this.pointerChecker(t,e,n)&&(this._x=e,this._y=n,this._dragging=!0)}},e.prototype._mousemoveHandler=function(t){if(this._dragging&&AI("moveOnMouseMove",t,this._opt)&&"pinch"!==t.gestureEvent&&!OM(this._zr,"globalPan")){var e=t.offsetX,n=t.offsetY,i=this._x,r=this._y,o=e-i,a=n-r;this._x=e,this._y=n,this._opt.preventDefaultMouseMove&&Jt(t.event),II(this,"pan","moveOnMouseMove",t,{dx:o,dy:a,oldX:i,oldY:r,newX:e,newY:n,isAvailableBehavior:null})}},e.prototype._mouseupHandler=function(t){Qt(t)||(this._dragging=!1)},e.prototype._mousewheelHandler=function(t){var e=AI("zoomOnMouseWheel",t,this._opt),n=AI("moveOnMouseWheel",t,this._opt),i=t.wheelDelta,r=Math.abs(i),o=t.offsetX,a=t.offsetY;if(0!==i&&(e||n)){if(e){var s=r>3?1.4:r>1?1.2:1.1;CI(this,"zoom","zoomOnMouseWheel",t,{scale:i>0?s:1/s,originX:o,originY:a,isAvailableBehavior:null})}if(n){var l=Math.abs(i);CI(this,"scrollMove","moveOnMouseWheel",t,{scrollDelta:(i>0?1:-1)*(l>3?.4:l>1?.15:.05),originX:o,originY:a,isAvailableBehavior:null})}}},e.prototype._pinchHandler=function(t){OM(this._zr,"globalPan")||CI(this,"zoom",null,t,{scale:t.pinchScale>1?1.1:1/1.1,originX:t.pinchX,originY:t.pinchY,isAvailableBehavior:null})},e}(Bt);function CI(t,e,n,i,r){t.pointerChecker&&t.pointerChecker(i,r.originX,r.originY)&&(Jt(i.event),II(t,e,n,i,r))}function II(t,e,n,i,r){r.isAvailableBehavior=B(AI,null,n,i),t.trigger(e,r)}function AI(t,e,n){var i=n[t];return!t||i&&(!H(i)||e.event[i+"Key"])}var DI=wr();function kI(t,e,n){DI(t).coordSysRecordMap.each((function(t){var i=t.dataZoomInfoMap.get(e.uid);i&&(i.getRange=n)}))}function LI(t,e){if(e){t.removeKey(e.model.uid);var n=e.controller;n&&n.dispose()}}function PI(t,e){t.dispatchAction({type:"dataZoom",animation:{easing:"cubicOut",duration:100},batch:e})}function OI(t,e,n,i){return t.coordinateSystem.containPoint([n,i])}function RI(t){t.registerProcessor(t.PRIORITY.PROCESSOR.FILTER,(function(t,e){var n=DI(e),i=n.coordSysRecordMap||(n.coordSysRecordMap=ut());i.each((function(t){t.dataZoomInfoMap=null})),t.eachComponent({mainType:"dataZoom",subType:"inside"},(function(t){P(XS(t).infoList,(function(n){var r=n.model.uid,o=i.get(r)||i.set(r,function(t,e){var n={model:e,containsPoint:z(OI,e),dispatchAction:z(PI,t),dataZoomInfoMap:null,controller:null},i=n.controller=new TI(t.getZr());return P(["pan","zoom","scrollMove"],(function(t){i.on(t,(function(e){var i=[];n.dataZoomInfoMap.each((function(r){if(e.isAvailableBehavior(r.model.option)){var o=(r.getRange||{})[t],a=o&&o(r.dzReferCoordSysInfo,n.model.mainType,n.controller,e);!r.model.get("disabled",!0)&&a&&i.push({dataZoomId:r.model.id,start:a[0],end:a[1]})}})),i.length&&n.dispatchAction(i)}))})),n}(e,n.model));(o.dataZoomInfoMap||(o.dataZoomInfoMap=ut())).set(t.uid,{dzReferCoordSysInfo:n,model:t,getRange:null})}))})),i.each((function(t){var e,n=t.controller,r=t.dataZoomInfoMap;if(r){var o=r.keys()[0];null!=o&&(e=r.get(o))}if(e){var a=function(t){var e,n="type_",i={type_true:2,type_move:1,type_false:0,type_undefined:-1},r=!0;return t.each((function(t){var o=t.model,a=!o.get("disabled",!0)&&(!o.get("zoomLock",!0)||"move");i[n+a]>i[n+e]&&(e=a),r=r&&o.get("preventDefaultMouseMove",!0)})),{controlType:e,opt:{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!0,preventDefaultMouseMove:!!r}}}(r);n.enable(a.controlType,a.opt),n.setPointerChecker(t.containsPoint),nf(t,"dispatchAction",e.model.get("throttle",!0),"fixRate")}else LI(i,t)}))}))}var NI=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="dataZoom.inside",e}return n(e,t),e.prototype.render=function(e,n,i){t.prototype.render.apply(this,arguments),e.noTarget()?this._clear():(this.range=e.getPercentRange(),kI(i,e,{pan:B(EI.pan,this),zoom:B(EI.zoom,this),scrollMove:B(EI.scrollMove,this)}))},e.prototype.dispose=function(){this._clear(),t.prototype.dispose.apply(this,arguments)},e.prototype._clear=function(){!function(t,e){for(var n=DI(t).coordSysRecordMap,i=n.keys(),r=0;r<i.length;r++){var o=i[r],a=n.get(o),s=a.dataZoomInfoMap;if(s){var l=e.uid;s.get(l)&&(s.removeKey(l),s.keys().length||LI(n,a))}}}(this.api,this.dataZoomModel),this.range=null},e.type="dataZoom.inside",e}($S),EI={zoom:function(t,e,n,i){var r=this.range,o=r.slice(),a=t.axisModels[0];if(a){var s=zI[e](null,[i.originX,i.originY],a,n,t),l=(s.signal>0?s.pixelStart+s.pixelLength-s.pixel:s.pixel-s.pixelStart)/s.pixelLength*(o[1]-o[0])+o[0],u=Math.max(1/i.scale,0);o[0]=(o[0]-l)*u+l,o[1]=(o[1]-l)*u+l;var h=this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();return QS(0,o,[0,100],0,h.minSpan,h.maxSpan),this.range=o,r[0]!==o[0]||r[1]!==o[1]?o:void 0}},pan:BI((function(t,e,n,i,r,o){var a=zI[i]([o.oldX,o.oldY],[o.newX,o.newY],e,r,n);return a.signal*(t[1]-t[0])*a.pixel/a.pixelLength})),scrollMove:BI((function(t,e,n,i,r,o){return zI[i]([0,0],[o.scrollDelta,o.scrollDelta],e,r,n).signal*(t[1]-t[0])*o.scrollDelta}))};function BI(t){return function(e,n,i,r){var o=this.range,a=o.slice(),s=e.axisModels[0];if(s)return QS(t(a,s,e,n,i,r),a,[0,100],"all"),this.range=a,o[0]!==a[0]||o[1]!==a[1]?a:void 0}}var zI={grid:function(t,e,n,i,r){var o=n.axis,a={},s=r.model.coordinateSystem.getRect();return t=t||[0,0],"x"===o.dim?(a.pixel=e[0]-t[0],a.pixelLength=s.width,a.pixelStart=s.x,a.signal=o.inverse?1:-1):(a.pixel=e[1]-t[1],a.pixelLength=s.height,a.pixelStart=s.y,a.signal=o.inverse?-1:1),a},polar:function(t,e,n,i,r){var o=n.axis,a={},s=r.model.coordinateSystem,l=s.getRadiusAxis().getExtent(),u=s.getAngleAxis().getExtent();return t=t?s.pointToCoord(t):[0,0],e=s.pointToCoord(e),"radiusAxis"===n.mainType?(a.pixel=e[0]-t[0],a.pixelLength=l[1]-l[0],a.pixelStart=l[0],a.signal=o.inverse?1:-1):(a.pixel=e[1]-t[1],a.pixelLength=u[1]-u[0],a.pixelStart=u[0],a.signal=o.inverse?-1:1),a},singleAxis:function(t,e,n,i,r){var o=n.axis,a=r.model.coordinateSystem.getRect(),s={};return t=t||[0,0],"horizontal"===o.orient?(s.pixel=e[0]-t[0],s.pixelLength=a.width,s.pixelStart=a.x,s.signal=o.inverse?1:-1):(s.pixel=e[1]-t[1],s.pixelLength=a.height,s.pixelStart=a.y,s.signal=o.inverse?-1:1),s}};function VI(t){sM(t),t.registerComponentModel(MI),t.registerComponentView(NI),RI(t)}var FI=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="dataZoom.slider",e.layoutMode="box",e.defaultOption=hh(jS.defaultOption,{show:!0,right:"ph",top:"ph",width:"ph",height:"ph",left:null,bottom:null,borderColor:"#d2dbee",borderRadius:3,backgroundColor:"rgba(47,69,84,0)",dataBackground:{lineStyle:{color:"#d2dbee",width:.5},areaStyle:{color:"#d2dbee",opacity:.2}},selectedDataBackground:{lineStyle:{color:"#8fb0f7",width:.5},areaStyle:{color:"#8fb0f7",opacity:.2}},fillerColor:"rgba(135,175,274,0.2)",handleIcon:"path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z",handleSize:"100%",handleStyle:{color:"#fff",borderColor:"#ACB8D1"},moveHandleSize:7,moveHandleIcon:"path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z",moveHandleStyle:{color:"#D2DBEE",opacity:.7},showDetail:!0,showDataShadow:"auto",realtime:!0,zoomLock:!1,textStyle:{color:"#6E7079"},brushSelect:!0,brushStyle:{color:"rgba(135,175,274,0.15)"},emphasis:{handleStyle:{borderColor:"#8FB0F7"},moveHandleStyle:{color:"#8FB0F7"}}}),e}(jS),HI=Ka,GI="horizontal",WI="vertical",UI=["line","bar","candlestick","scatter"],YI={easing:"cubicOut",duration:100},XI=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._displayables={},n}return n(e,t),e.prototype.init=function(t,e){this.api=e,this._onBrush=B(this._onBrush,this),this._onBrushEnd=B(this._onBrushEnd,this)},e.prototype.render=function(e,n,i,r){if(t.prototype.render.apply(this,arguments),nf(this,"_dispatchZoomAction",e.get("throttle"),"fixRate"),this._orient=e.getOrient(),!1!==e.get("show")){if(e.noTarget())return this._clear(),void this.group.removeAll();r&&"dataZoom"===r.type&&r.from===this.uid||this._buildView(),this._updateView()}else this.group.removeAll()},e.prototype.dispose=function(){this._clear(),t.prototype.dispose.apply(this,arguments)},e.prototype._clear=function(){var t,e,n;(n=(t=this)[e="_dispatchZoomAction"])&&n[Jd]&&(t[e]=n[Jd]);var i=this.api.getZr();i.off("mousemove",this._onBrush),i.off("mouseup",this._onBrushEnd)},e.prototype._buildView=function(){var t=this.group;t.removeAll(),this._brushing=!1,this._displayables.brushRect=null,this._resetLocation(),this._resetInterval();var e=this._displayables.sliderGroup=new Pi;this._renderBackground(),this._renderHandle(),this._renderDataShadow(),t.add(e),this._positionGroup()},e.prototype._resetLocation=function(){var t=this.dataZoomModel,e=this.api,n=t.get("brushSelect")?7:0,i=this._findCoordRect(),r={width:e.getWidth(),height:e.getHeight()},o=this._orient===GI?{right:r.width-i.x-i.width,top:r.height-30-7-n,width:i.width,height:30}:{right:7,top:i.y,width:30,height:i.height},a=yc(t.option);P(["right","top","width","height"],(function(t){"ph"===a[t]&&(a[t]=o[t])}));var s=pc(a,r);this._location={x:s.x,y:s.y},this._size=[s.width,s.height],this._orient===WI&&this._size.reverse()},e.prototype._positionGroup=function(){var t=this.group,e=this._location,n=this._orient,i=this.dataZoomModel.getFirstTargetAxisModel(),r=i&&i.get("inverse"),o=this._displayables.sliderGroup,a=(this._dataShadowInfo||{}).otherAxisInverse;o.attr(n!==GI||r?n===GI&&r?{scaleY:a?1:-1,scaleX:-1}:n!==WI||r?{scaleY:a?-1:1,scaleX:-1,rotation:Math.PI/2}:{scaleY:a?-1:1,scaleX:1,rotation:Math.PI/2}:{scaleY:a?1:-1,scaleX:1});var s=t.getBoundingRect([o]);t.x=e.x-s.x,t.y=e.y-s.y,t.markRedraw()},e.prototype._getViewExtent=function(){return[0,this._size[0]]},e.prototype._renderBackground=function(){var t=this.dataZoomModel,e=this._size,n=this._displayables.sliderGroup,i=t.get("brushSelect");n.add(new HI({silent:!0,shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:t.get("backgroundColor")},z2:-40}));var r=new HI({shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:"transparent"},z2:0,onclick:B(this._onClickPanel,this)}),o=this.api.getZr();i?(r.on("mousedown",this._onBrushStart,this),r.cursor="crosshair",o.on("mousemove",this._onBrush),o.on("mouseup",this._onBrushEnd)):(o.off("mousemove",this._onBrush),o.off("mouseup",this._onBrushEnd)),n.add(r)},e.prototype._renderDataShadow=function(){var t=this._dataShadowInfo=this._prepareDataShadowInfo();if(this._displayables.dataShadowSegs=[],t){var e=this._size,n=t.series,i=n.getRawData(),r=n.getShadowDim?n.getShadowDim():t.otherDim;if(null!=r){var o=i.getDataExtent(r),a=.3*(o[1]-o[0]);o=[o[0]-a,o[1]+a];var s,l=[0,e[1]],u=[0,e[0]],h=[[e[0],0],[0,0]],c=[],p=u[1]/(i.count()-1),d=0,f=Math.round(i.count()/e[0]);i.each([r],(function(t,e){if(f>0&&e%f)d+=p;else{var n=null==t||isNaN(t)||""===t,i=n?0:Hi(t,o,l,!0);n&&!s&&e?(h.push([h[h.length-1][0],0]),c.push([c[c.length-1][0],0])):!n&&s&&(h.push([d,0]),c.push([d,0])),h.push([d,i]),c.push([d,i]),d+=p,s=n}}));for(var g=this.dataZoomModel,y=0;y<3;y++){var v=m(1===y);this._displayables.sliderGroup.add(v),this._displayables.dataShadowSegs.push(v)}}}function m(t){var e=g.getModel(t?"selectedDataBackground":"dataBackground"),n=new Pi,i=new Bl({shape:{points:h},segmentIgnoreThreshold:1,style:e.getModel("areaStyle").getAreaStyle(),silent:!0,z2:-20}),r=new Vl({shape:{points:c},segmentIgnoreThreshold:1,style:e.getModel("lineStyle").getLineStyle(),silent:!0,z2:-19});return n.add(i),n.add(r),n}},e.prototype._prepareDataShadowInfo=function(){var t=this.dataZoomModel,e=t.get("showDataShadow");if(!1!==e){var n,i=this.ecModel;return t.eachTargetAxis((function(r,o){P(t.getAxisProxy(r,o).getTargetSeriesModels(),(function(t){if(!(n||!0!==e&&A(UI,t.get("type"))<0)){var a,s=i.getComponent(US(r),o).axis,l={x:"y",y:"x",radius:"angle",angle:"radius"}[r],u=t.coordinateSystem;null!=l&&u.getOtherAxis&&(a=u.getOtherAxis(s).inverse),l=t.getData().mapDimension(l),n={thisAxis:s,series:t,thisDim:r,otherDim:l,otherAxisInverse:a}}}),this)}),this),n}},e.prototype._renderHandle=function(){var t=this.group,e=this._displayables,n=e.handles=[null,null],i=e.handleLabels=[null,null],r=this._displayables.sliderGroup,o=this._size,a=this.dataZoomModel,s=this.api,l=a.get("borderRadius")||0,u=a.get("brushSelect"),h=e.filler=new HI({silent:u,style:{fill:a.get("fillerColor")},textConfig:{position:"inside"}});r.add(h),r.add(new HI({silent:!0,subPixelOptimize:!0,shape:{x:0,y:0,width:o[0],height:o[1],r:l},style:{stroke:a.get("dataBackgroundColor")||a.get("borderColor"),lineWidth:1,fill:"rgba(0,0,0,0)"}})),P([0,1],(function(e){var o=a.get("handleIcon");!Og[o]&&o.indexOf("path://")<0&&(o="path://"+o);var s=Eg(o,-1,0,2,2,null,!0);s.attr({cursor:ZI(this._orient),draggable:!0,drift:B(this._onDragMove,this,e),ondragend:B(this._onDragEnd,this),onmouseover:B(this._showDataInfo,this,!0),onmouseout:B(this._showDataInfo,this,!1),z2:5});var l=s.getBoundingRect(),u=a.get("handleSize");this._handleHeight=Gi(u,this._size[1]),this._handleWidth=l.width/l.height*this._handleHeight,s.setStyle(a.getModel("handleStyle").getItemStyle()),s.style.strokeNoScale=!0,s.rectHover=!0,s.ensureState("emphasis").style=a.getModel(["emphasis","handleStyle"]).getItemStyle(),Ws(s);var h=a.get("handleColor");null!=h&&(s.style.fill=h),r.add(n[e]=s);var c=a.getModel("textStyle");t.add(i[e]=new Qa({silent:!0,invisible:!0,style:{x:0,y:0,text:"",verticalAlign:"middle",align:"center",fill:c.getTextColor(),font:c.getFont()},z2:10}))}),this);var c=h;if(u){var p=Gi(a.get("moveHandleSize"),o[1]),d=e.moveHandle=new Ka({style:a.getModel("moveHandleStyle").getItemStyle(),silent:!0,shape:{r:[0,0,2,2],y:o[1]-.5,height:p}}),f=.8*p,g=e.moveHandleIcon=Eg(a.get("moveHandleIcon"),-f/2,-f/2,f,f,"#fff",!0);g.silent=!0,g.y=o[1]+p/2-.5,d.ensureState("emphasis").style=a.getModel(["emphasis","moveHandleStyle"]).getItemStyle();var y=Math.min(o[1]/2,Math.max(p,10));(c=e.moveZone=new Ka({invisible:!0,shape:{y:o[1]-y,height:p+y}})).on("mouseover",(function(){s.enterEmphasis(d)})).on("mouseout",(function(){s.leaveEmphasis(d)})),r.add(d),r.add(g),r.add(c)}c.attr({draggable:!0,cursor:ZI(this._orient),drift:B(this._onDragMove,this,"all"),ondragstart:B(this._showDataInfo,this,!0),ondragend:B(this._onDragEnd,this),onmouseover:B(this._showDataInfo,this,!0),onmouseout:B(this._showDataInfo,this,!1)})},e.prototype._resetInterval=function(){var t=this._range=this.dataZoomModel.getPercentRange(),e=this._getViewExtent();this._handleEnds=[Hi(t[0],[0,100],e,!0),Hi(t[1],[0,100],e,!0)]},e.prototype._updateInterval=function(t,e){var n=this.dataZoomModel,i=this._handleEnds,r=this._getViewExtent(),o=n.findRepresentativeAxisProxy().getMinMaxSpan(),a=[0,100];QS(e,i,r,n.get("zoomLock")?"all":t,null!=o.minSpan?Hi(o.minSpan,a,r,!0):null,null!=o.maxSpan?Hi(o.maxSpan,a,r,!0):null);var s=this._range,l=this._range=Ui([Hi(i[0],r,a,!0),Hi(i[1],r,a,!0)]);return!s||s[0]!==l[0]||s[1]!==l[1]},e.prototype._updateView=function(t){var e=this._displayables,n=this._handleEnds,i=Ui(n.slice()),r=this._size;P([0,1],(function(t){var i=e.handles[t],o=this._handleHeight;i.attr({scaleX:o/2,scaleY:o/2,x:n[t]+(t?-1:1),y:r[1]/2-o/2})}),this),e.filler.setShape({x:i[0],y:0,width:i[1]-i[0],height:r[1]});var o={x:i[0],width:i[1]-i[0]};e.moveHandle&&(e.moveHandle.setShape(o),e.moveZone.setShape(o),e.moveZone.getBoundingRect(),e.moveHandleIcon&&e.moveHandleIcon.attr("x",o.x+o.width/2));for(var a=e.dataShadowSegs,s=[0,i[0],i[1],r[0]],l=0;l<a.length;l++){var u=a[l],h=u.getClipPath();h||(h=new Ka,u.setClipPath(h)),h.setShape({x:s[l],y:0,width:s[l+1]-s[l],height:r[1]})}this._updateDataInfo(t)},e.prototype._updateDataInfo=function(t){var e=this.dataZoomModel,n=this._displayables,i=n.handleLabels,r=this._orient,o=["",""];if(e.get("showDetail")){var a=e.findRepresentativeAxisProxy();if(a){var s=a.getAxisModel().axis,l=this._range,u=t?a.calculateDataWindow({start:l[0],end:l[1]}).valueWindow:a.getDataValueWindow();o=[this._formatLabel(u[0],s),this._formatLabel(u[1],s)]}}var h=Ui(this._handleEnds.slice());function c(t){var e=Iu(n.handles[t].parent,this.group),a=Du(0===t?"right":"left",e),s=this._handleWidth/2+5,l=Au([h[t]+(0===t?-s:s),this._size[1]/2],e);i[t].setStyle({x:l[0],y:l[1],verticalAlign:r===GI?"middle":a,align:r===GI?a:"center",text:o[t]})}c.call(this,0),c.call(this,1)},e.prototype._formatLabel=function(t,e){var n=this.dataZoomModel,i=n.get("labelFormatter"),r=n.get("labelPrecision");null!=r&&"auto"!==r||(r=e.getPixelPrecision());var o=null==t||isNaN(t)?"":"category"===e.type||"time"===e.type?e.scale.getLabel({value:Math.round(t)}):t.toFixed(Math.min(r,20));return F(i)?i(t,o):H(i)?i.replace("{value}",o):o},e.prototype._showDataInfo=function(t){t=this._dragging||t;var e=this._displayables,n=e.handleLabels;n[0].attr("invisible",!t),n[1].attr("invisible",!t),e.moveHandle&&this.api[t?"enterEmphasis":"leaveEmphasis"](e.moveHandle,1)},e.prototype._onDragMove=function(t,e,n,i){this._dragging=!0,Jt(i.event);var r=Au([e,n],this._displayables.sliderGroup.getLocalTransform(),!0),o=this._updateInterval(t,r[0]),a=this.dataZoomModel.get("realtime");this._updateView(!a),o&&a&&this._dispatchZoomAction(!0)},e.prototype._onDragEnd=function(){this._dragging=!1,this._showDataInfo(!1),!this.dataZoomModel.get("realtime")&&this._dispatchZoomAction(!1)},e.prototype._onClickPanel=function(t){var e=this._size,n=this._displayables.sliderGroup.transformCoordToLocal(t.offsetX,t.offsetY);if(!(n[0]<0||n[0]>e[0]||n[1]<0||n[1]>e[1])){var i=this._handleEnds,r=(i[0]+i[1])/2,o=this._updateInterval("all",n[0]-r);this._updateView(),o&&this._dispatchZoomAction(!1)}},e.prototype._onBrushStart=function(t){var e=t.offsetX,n=t.offsetY;this._brushStart=new xn(e,n),this._brushing=!0,this._brushStartTime=+new Date},e.prototype._onBrushEnd=function(t){if(this._brushing){var e=this._displayables.brushRect;if(this._brushing=!1,e){e.attr("ignore",!0);var n=e.shape;if(!(+new Date-this._brushStartTime<200&&Math.abs(n.width)<5)){var i=this._getViewExtent(),r=[0,100];this._range=Ui([Hi(n.x,i,r,!0),Hi(n.x+n.width,i,r,!0)]),this._handleEnds=[n.x,n.x+n.width],this._updateView(),this._dispatchZoomAction(!1)}}}},e.prototype._onBrush=function(t){this._brushing&&(Jt(t.event),this._updateBrushRect(t.offsetX,t.offsetY))},e.prototype._updateBrushRect=function(t,e){var n=this._displayables,i=this.dataZoomModel,r=n.brushRect;r||(r=n.brushRect=new HI({silent:!0,style:i.getModel("brushStyle").getItemStyle()}),n.sliderGroup.add(r)),r.attr("ignore",!1);var o=this._brushStart,a=this._displayables.sliderGroup,s=a.transformCoordToLocal(t,e),l=a.transformCoordToLocal(o.x,o.y),u=this._size;s[0]=Math.max(Math.min(u[0],s[0]),0),r.setShape({x:l[0],y:0,width:s[0]-l[0],height:u[1]})},e.prototype._dispatchZoomAction=function(t){var e=this._range;this.api.dispatchAction({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,animation:t?YI:null,start:e[0],end:e[1]})},e.prototype._findCoordRect=function(){var t,e=XS(this.dataZoomModel).infoList;if(!t&&e.length){var n=e[0].model.coordinateSystem;t=n.getRect&&n.getRect()}if(!t){var i=this.api.getWidth(),r=this.api.getHeight();t={x:.2*i,y:.2*r,width:.6*i,height:.6*r}}return t},e.type="dataZoom.slider",e}($S);function ZI(t){return"vertical"===t?"ns-resize":"ew-resize"}function jI(t){t.registerComponentModel(FI),t.registerComponentView(XI),sM(t)}var qI={label:{enabled:!0},decal:{show:!1}},KI=wr(),$I={};function JI(t,e){var n=t.getModel("aria");if(n.get("enabled")){var i=w(qI);S(i.label,t.getLocaleModel().get("aria"),!1),S(n.option,i,!1),function(){if(n.getModel("decal").get("show")){var e=ut();t.eachSeries((function(t){if(t.useColorPaletteOnData){var n=e.get(t.type);n||(n={},e.set(t.type,n)),KI(t).scope=n}})),t.eachRawSeries((function(e){if(!t.isSeriesFiltered(e))if("function"!=typeof e.enableAriaDecal){var n=e.getData();if(e.useColorPaletteOnData){var i=e.getRawData(),r={},o=KI(e).scope;n.each((function(t){var e=n.getRawIndex(t);r[e]=t}));var a=i.count();i.each((function(t){var s=r[t],l=i.getName(t)||t+"",h=jc(e.ecModel,l,o,a),c=n.getItemVisual(s,"decal");n.setItemVisual(s,"decal",u(c,h))}))}else{var s=jc(e.ecModel,e.name,$I,t.getSeriesCount()),l=n.getVisual("decal");n.setVisual("decal",u(l,s))}}else e.enableAriaDecal();function u(t,e){var n=t?T(T({},e),t):e;return n.dirty=!0,n}}))}}(),function(){var i=t.getLocaleModel().get("aria"),o=n.getModel("label");if(o.option=C(o.option,i),!o.get("enabled"))return;var a=e.getZr().dom;if(o.get("description"))return void a.setAttribute("aria-label",o.get("description"));var s,l=t.getSeriesCount(),u=o.get(["data","maxCount"])||10,h=o.get(["series","maxCount"])||10,c=Math.min(l,h);if(l<1)return;var p=function(){var e=t.get("title");e&&e.length&&(e=e[0]);return e&&e.text}();if(p){var d=o.get(["general","withTitle"]);s=r(d,{title:p})}else s=o.get(["general","withoutTitle"]);var f=[],g=l>1?o.get(["series","multiple","prefix"]):o.get(["series","single","prefix"]);s+=r(g,{seriesCount:l}),t.eachSeries((function(e,n){if(n<c){var i=void 0,a=e.get("name")?"withName":"withoutName";i=r(i=l>1?o.get(["series","multiple",a]):o.get(["series","single",a]),{seriesId:e.seriesIndex,seriesName:e.get("name"),seriesType:(_=e.subType,t.getLocaleModel().get(["series","typeNames"])[_]||"自定义图")});var s=e.getData();if(s.count()>u)i+=r(o.get(["data","partialData"]),{displayCnt:u});else i+=o.get(["data","allData"]);for(var h=[],p=0;p<s.count();p++)if(p<u){var d=s.getName(p),g=Jp(s,p),y=o.get(["data",d?"withName":"withoutName"]);h.push(r(y,{name:d,value:g}))}var v=o.get(["data","separator","middle"]),m=o.get(["data","separator","end"]);i+=h.join(v)+m,f.push(i)}var _}));var y=o.getModel(["series","multiple","separator"]),v=y.get("middle"),m=y.get("end");s+=f.join(v)+m,a.setAttribute("aria-label",s)}()}function r(t,e){if("string"!=typeof t)return t;var n=t;return P(e,(function(t,e){n=n.replace(new RegExp("\\{\\s*"+e+"\\s*\\}","g"),t)})),n}}function QI(t){if(t&&t.aria){var e=t.aria;null!=e.show&&(e.enabled=e.show),e.label=e.label||{},P(["description","general","series","data"],(function(t){null!=e[t]&&(e.label[t]=e[t])}))}}var tA=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="dataset",e}return n(e,t),e.prototype.init=function(e,n,i){t.prototype.init.call(this,e,n,i),this._sourceManager=new gd(this),yd(this)},e.prototype.mergeOption=function(e,n){t.prototype.mergeOption.call(this,e,n),yd(this)},e.prototype.optionUpdated=function(){this._sourceManager.dirty()},e.prototype.getSourceManager=function(){return this._sourceManager},e.type="dataset",e.defaultOption={seriesLayoutBy:kc},e}(_c),eA=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="dataset",e}return n(e,t),e.type="dataset",e}(Gd);Av([function(t){t.registerPainter("canvas",Hx)}]),Av([function(t){t.registerPainter("svg",Px)}]),Av([function(t){t.registerChartView(bb),t.registerSeriesModel(Gx),t.registerLayout(wb("line",!0)),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,Tb("line"))},function(t){t.registerChartView(Nb),t.registerSeriesModel(Ib),t.registerLayout(t.PRIORITY.VISUAL.LAYOUT,z(Rm,"bar")),t.registerLayout(t.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,Nm),t.registerVisual({seriesType:"bar",reset:function(t){t.getData().setVisual("legendSymbol","roundRect")}}),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,Tb("bar")),t.registerAction({type:"changeAxisOrder",event:"changeAxisOrder",update:"update"},(function(t,e){var n=t.componentType||"series";e.eachComponent({mainType:n,query:t},(function(e){t.sortInfo&&e.axis.setCategorySortInfo(t.sortInfo)}))}))},function(t){t.registerChartView(ew),t.registerSeriesModel(iw),function(t,e){function n(e,n){var i=[];return e.eachComponent({mainType:"series",subType:t,query:n},(function(t){i.push(t.seriesIndex)})),i}P([[t+"ToggleSelect","toggleSelect"],[t+"Select","select"],[t+"UnSelect","unselect"]],(function(t){e(t[0],(function(e,i,r){e=T({},e),r.dispatchAction(T(e,{type:t[1],seriesIndex:n(i,e)}))}))}))}("pie",t.registerAction),t.registerLayout(z(jb,"pie")),t.registerProcessor(function(t){return{seriesType:t,reset:function(t,e){var n=e.findComponents({mainType:"legend"});if(n&&n.length){var i=t.getData();i.filterSelf((function(t){for(var e=i.getName(t),r=0;r<n.length;r++)if(!n[r].isSelected(e))return!1;return!0}))}}}}("pie"))},function(t){Av(tS),t.registerSeriesModel(rw),t.registerChartView(lw),t.registerLayout(wb("scatter"))}]),Av([function(t){t.registerComponentModel(BS),t.registerComponentView(zS),t.registerPreprocessor(ES)},function(t){Av(PS),t.registerComponentModel(XT),t.registerComponentView(aC),t.registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},(function(){})),t.registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},(function(){}))},PS,function(t){Av(yI),Av(SI)},function(t){Av(tS),Av(PS)},function(t){t.registerComponentModel(hC),t.registerComponentView(cC)},function(t){t.registerComponentModel(gC),t.registerComponentView(CC),t.registerPreprocessor((function(t){t.markPoint=t.markPoint||{}}))},function(t){t.registerComponentModel(IC),t.registerComponentView(jC),t.registerPreprocessor((function(t){t.markLine=t.markLine||{}}))},function(t){t.registerComponentModel(qC),t.registerComponentView(iI),t.registerPreprocessor((function(t){t.markArea=t.markArea||{}}))},function(t){Av(VI),Av(jI)},function(t){t.registerComponentModel(dM),t.registerComponentView(gM),cM("saveAsImage",yM),cM("magicType",_M),cM("dataView",CM),cM("dataZoom",WT),cM("restore",LM),Av(lM)},function(t){t.registerPreprocessor(QI),t.registerVisual(t.PRIORITY.VISUAL.ARIA,JI)},function(t){t.registerComponentModel(tA),t.registerComponentView(eA)}]),t.Axis=H_,t.ChartView=Xd,t.ComponentModel=_c,t.ComponentView=Gd,t.List=rm,t.Model=sh,t.PRIORITY=yy,t.SeriesModel=Rd,t.color=nn,t.connect=function(t){if(V(t)){var e=t;t=null,uy(e,(function(e){null!=e.group&&(t=e.group)})),t=t||"g_"+sv++,uy(e,(function(e){e.group=t}))}return ov[t]=!0,t},t.dataTool={},t.dependencies={zrender:"5.0.2"},t.disConnect=uv,t.disconnect=hv,t.dispose=function(t){"string"==typeof t?t=rv[t]:t instanceof Yy||(t=cv(t)),t instanceof Yy&&!t.isDisposed()&&t.dispose()},t.env=a,t.extendChartView=function(t){var e=Xd.extend(t);return Xd.registerClass(e),e},t.extendComponentModel=function(t){var e=_c.extend(t);return _c.registerClass(e),e},t.extendComponentView=function(t){var e=Gd.extend(t);return Gd.registerClass(e),e},t.extendSeriesModel=function(t){var e=Rd.extend(t);return Rd.registerClass(e),e},t.format=D_,t.getCoordinateSystemDimensions=function(t){var e=ip.get(t);if(e)return e.getDimensionsInfo?e.getDimensionsInfo():e.dimensions.slice()},t.getInstanceByDom=cv,t.getInstanceById=function(t){return rv[t]},t.getMap=function(t){var e=zf(t);return e&&e[0]&&{geoJson:e[0].geoJSON,specialAreas:e[0].specialAreas}},t.graphic=A_,t.helper=x_,t.init=function(t,e,n){var i=cv(t);if(i)return i;var r=new Yy(t,e,n);return r.id="ec_"+av++,rv[r.id]=r,Ar(t,lv,r.id),Vy(r),uy(Qy,(function(t){t(r)})),r},t.innerDrawElementOnCanvas=Qg,t.matrix=_e,t.number=C_,t.parseGeoJSON=T_,t.parseGeoJson=T_,t.registerAction=vv,t.registerCoordinateSystem=mv,t.registerLayout=_v,t.registerLoading=Sv,t.registerLocale=vh,t.registerMap=Mv,t.registerPostInit=gv,t.registerPostUpdate=yv,t.registerPreprocessor=dv,t.registerProcessor=fv,t.registerTheme=pv,t.registerTransform=Tv,t.registerVisual=xv,t.setCanvasCreator=function(t){m("createCanvas",t)},t.throttle=ef,t.time=I_,t.use=Av,t.util=k_,t.vector=Rt,t.version="5.0.1",t.zrUtil=dt,t.zrender=Vi,Object.defineProperty(t,"__esModule",{value:!0})}));
+var Li=!a.canvasSupported,Pi={},Oi={};var Ri=function(){function t(t,e,n){var i=this;this._sleepAfterStill=10,this._stillFrameAccum=0,this._needsRefresh=!0,this._needsRefreshHover=!0,this._darkMode=!1,n=n||{},this.dom=e,this.id=t;var r=new hi,o=n.renderer||"canvas";if(Li)throw new Error("IE8 support has been dropped since 5.0");if(Pi[o]||(o=E(Pi)[0]),!Pi[o])throw new Error("Renderer '"+o+"' is not imported. Please import it first.");n.useDirtyRect=null!=n.useDirtyRect&&n.useDirtyRect;var s=new Pi[o](e,r,n,t);this.storage=r,this.painter=s;var l=a.node||a.worker?null:new Di(s.getViewportRoot(),s.root);this.handler=new ae(r,s,l,s.root),this.animation=new pi({stage:{update:function(){return i._flush(!0)}}}),this.animation.start()}return t.prototype.add=function(t){t&&(this.storage.addRoot(t),t.addSelfToZr(this),this.refresh())},t.prototype.remove=function(t){t&&(this.storage.delRoot(t),t.removeSelfFromZr(this),this.refresh())},t.prototype.configLayer=function(t,e){this.painter.configLayer&&this.painter.configLayer(t,e),this.refresh()},t.prototype.setBackgroundColor=function(t){this.painter.setBackgroundColor&&this.painter.setBackgroundColor(t),this.refresh(),this._backgroundColor=t,this._darkMode=function(t){if(!t)return!1;if("string"==typeof t)return Qe(t,1)<.4;if(t.colorStops){for(var e=t.colorStops,n=0,i=e.length,r=0;r<i;r++)n+=Qe(e[r].color,1);return(n/=i)<.4}return!1}(t)},t.prototype.getBackgroundColor=function(){return this._backgroundColor},t.prototype.setDarkMode=function(t){this._darkMode=t},t.prototype.isDarkMode=function(){return this._darkMode},t.prototype.refreshImmediately=function(t){t||this.animation.update(!0),this._needsRefresh=!1,this.painter.refresh(),this._needsRefresh=!1},t.prototype.refresh=function(){this._needsRefresh=!0,this.animation.start()},t.prototype.flush=function(){this._flush(!1)},t.prototype._flush=function(t){var e,n=(new Date).getTime();this._needsRefresh&&(e=!0,this.refreshImmediately(t)),this._needsRefreshHover&&(e=!0,this.refreshHoverImmediately());var i=(new Date).getTime();e?(this._stillFrameAccum=0,this.trigger("rendered",{elapsedTime:i-n})):this._sleepAfterStill>0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},t.prototype.setSleepAfterStill=function(t){this._sleepAfterStill=t},t.prototype.wakeUp=function(){this.animation.start(),this._stillFrameAccum=0},t.prototype.addHover=function(t){},t.prototype.removeHover=function(t){},t.prototype.clearHover=function(){},t.prototype.refreshHover=function(){this._needsRefreshHover=!0},t.prototype.refreshHoverImmediately=function(){this._needsRefreshHover=!1,this.painter.refreshHover&&"canvas"===this.painter.getType()&&this.painter.refreshHover()},t.prototype.resize=function(t){t=t||{},this.painter.resize(t.width,t.height),this.handler.resize()},t.prototype.clearAnimation=function(){this.animation.clear()},t.prototype.getWidth=function(){return this.painter.getWidth()},t.prototype.getHeight=function(){return this.painter.getHeight()},t.prototype.pathToImage=function(t,e){if(this.painter.pathToImage)return this.painter.pathToImage(t,e)},t.prototype.setCursorStyle=function(t){this.handler.setCursorStyle(t)},t.prototype.findHover=function(t,e){return this.handler.findHover(t,e)},t.prototype.on=function(t,e,n){return this.handler.on(t,e,n),this},t.prototype.off=function(t,e){this.handler.off(t,e)},t.prototype.trigger=function(t,e){this.handler.trigger(t,e)},t.prototype.clear=function(){for(var t=this.storage.getRoots(),e=0;e<t.length;e++)t[e]instanceof ki&&t[e].removeSelfFromZr(this);this.storage.delAllRoots(),this.painter.clear()},t.prototype.dispose=function(){var t;this.animation.stop(),this.clear(),this.storage.dispose(),this.painter.dispose(),this.handler.dispose(),this.animation=this.storage=this.painter=this.handler=null,t=this.id,delete Oi[t]},t}();function Ni(t,e){var n=new Ri(x(),t,e);return Oi[n.id]=n,n}function Ei(t,e){Pi[t]=e}var Bi=Object.freeze({__proto__:null,init:Ni,dispose:function(t){t.dispose()},disposeAll:function(){for(var t in Oi)Oi.hasOwnProperty(t)&&Oi[t].dispose();Oi={}},getInstance:function(t){return Oi[t]},registerPainter:Ei,version:"5.0.3"}),zi=1e-4;function Vi(t,e,n,i){var r=e[1]-e[0],o=n[1]-n[0];if(0===r)return 0===o?n[0]:(n[0]+n[1])/2;if(i)if(r>0){if(t<=e[0])return n[0];if(t>=e[1])return n[1]}else{if(t>=e[0])return n[0];if(t<=e[1])return n[1]}else{if(t===e[0])return n[0];if(t===e[1])return n[1]}return(t-e[0])/r*o+n[0]}function Fi(t,e){switch(t){case"center":case"middle":t="50%";break;case"left":case"top":t="0%";break;case"right":case"bottom":t="100%"}return"string"==typeof t?(n=t,n.replace(/^\s+|\s+$/g,"")).match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?NaN:+t;var n}function Hi(t,e,n){return null==e&&(e=10),e=Math.min(Math.max(0,e),20),t=(+t).toFixed(e),n?t:+t}function Gi(t){return t.sort((function(t,e){return t-e})),t}function Wi(t){if(t=+t,isNaN(t))return 0;for(var e=1,n=0;Math.round(t*e)/e!==t;)e*=10,n++;return n}function Ui(t){var e=t.toString(),n=e.indexOf("e");if(n>0){var i=+e.slice(n+1);return i<0?-i:0}var r=e.indexOf(".");return r<0?0:e.length-1-r}function Yi(t,e){var n=Math.log,i=Math.LN10,r=Math.floor(n(t[1]-t[0])/i),o=Math.round(n(Math.abs(e[1]-e[0]))/i),a=Math.min(Math.max(-r+o,0),20);return isFinite(a)?a:20}function Xi(t,e,n){if(!t[e])return 0;var i=R(t,(function(t,e){return t+(isNaN(e)?0:e)}),0);if(0===i)return 0;for(var r=Math.pow(10,n),o=O(t,(function(t){return(isNaN(t)?0:t)/i*r*100})),a=100*r,s=O(o,(function(t){return Math.floor(t)})),l=R(s,(function(t,e){return t+e}),0),u=O(o,(function(t,e){return t-s[e]}));l<a;){for(var h=Number.NEGATIVE_INFINITY,c=null,p=0,d=u.length;p<d;++p)u[p]>h&&(h=u[p],c=p);++s[c],u[c]=0,++l}return s[e]/r}function Zi(t){var e=2*Math.PI;return(t%e+e)%e}function ji(t){return t>-1e-4&&t<zi}var qi=/^(?:(\d{4})(?:[-\/](\d{1,2})(?:[-\/](\d{1,2})(?:[T ](\d{1,2})(?::(\d{1,2})(?::(\d{1,2})(?:[.,](\d+))?)?)?(Z|[\+\-]\d\d:?\d\d)?)?)?)?)?$/;function Ki(t){if(t instanceof Date)return t;if("string"==typeof t){var e=qi.exec(t);if(!e)return new Date(NaN);if(e[8]){var n=+e[4]||0;return"Z"!==e[8].toUpperCase()&&(n-=+e[8].slice(0,3)),new Date(Date.UTC(+e[1],+(e[2]||1)-1,+e[3]||1,n,+(e[5]||0),+e[6]||0,+e[7]||0))}return new Date(+e[1],+(e[2]||1)-1,+e[3]||1,+e[4]||0,+(e[5]||0),+e[6]||0,+e[7]||0)}return null==t?new Date(NaN):new Date(Math.round(t))}function $i(t){return Math.pow(10,Ji(t))}function Ji(t){if(0===t)return 0;var e=Math.floor(Math.log(t)/Math.LN10);return t/Math.pow(10,e)>=10&&e++,e}function Qi(t,e){var n=Ji(t),i=Math.pow(10,n),r=t/i;return t=(e?r<1.5?1:r<2.5?2:r<4?3:r<7?5:10:r<1?1:r<2?2:r<3?3:r<5?5:10)*i,n>=-20?+t.toFixed(n<0?-n:0):t}function tr(t){var e=parseFloat(t);return e==t&&(0!==e||"string"!=typeof t||t.indexOf("x")<=0)?e:NaN}function er(t){return!isNaN(tr(t))}function nr(){return Math.round(9*Math.random())}function ir(t,e){return 0===e?t:ir(e,t%e)}function rr(t,e){return null==t?e:null==e?t:t*e/ir(t,e)}"undefined"!=typeof console&&console.warn&&console.log;function or(t){0}function ar(t){throw new Error(t)}var sr="series\0",lr="\0_ec_\0";function ur(t){return t instanceof Array?t:null==t?[]:[t]}function hr(t,e,n){if(t){t[e]=t[e]||{},t.emphasis=t.emphasis||{},t.emphasis[e]=t.emphasis[e]||{};for(var i=0,r=n.length;i<r;i++){var o=n[i];!t.emphasis[e].hasOwnProperty(o)&&t[e].hasOwnProperty(o)&&(t.emphasis[e][o]=t[e][o])}}}var cr=["fontStyle","fontWeight","fontSize","fontFamily","rich","tag","color","textBorderColor","textBorderWidth","width","height","lineHeight","align","verticalAlign","baseline","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","textShadowColor","textShadowBlur","textShadowOffsetX","textShadowOffsetY","backgroundColor","borderColor","borderWidth","borderRadius","padding"];function pr(t){return!U(t)||V(t)||t instanceof Date?t:t.value}function dr(t,e,n){var i="normalMerge"===n,r="replaceMerge"===n,o="replaceAll"===n;t=t||[],e=(e||[]).slice();var a=ut();P(e,(function(t,n){U(t)||(e[n]=null)}));var s,l,u=function(t,e,n){var i=[];if("replaceAll"===n)return i;for(var r=0;r<t.length;r++){var o=t[r];o&&null!=o.id&&e.set(o.id,r),i.push({existing:"replaceMerge"===n||mr(o)?null:o,newOption:null,keyInfo:null,brandNew:null})}return i}(t,a,n);return(i||r)&&function(t,e,n,i){P(i,(function(r,o){if(r&&null!=r.id){var a=gr(r.id),s=n.get(a);if(null!=s){var l=t[s];it(!l.newOption,'Duplicated option on id "'+a+'".'),l.newOption=r,l.existing=e[s],i[o]=null}}}))}(u,t,a,e),i&&function(t,e){P(e,(function(n,i){if(n&&null!=n.name)for(var r=0;r<t.length;r++){var o=t[r].existing;if(!t[r].newOption&&o&&(null==o.id||null==n.id)&&!mr(n)&&!mr(o)&&fr("name",o,n))return t[r].newOption=n,void(e[i]=null)}}))}(u,e),i||r?function(t,e,n){P(e,(function(e){if(e){for(var i,r=0;(i=t[r])&&(i.newOption||mr(i.existing)||i.existing&&null!=e.id&&!fr("id",e,i.existing));)r++;i?(i.newOption=e,i.brandNew=n):t.push({newOption:e,brandNew:n,existing:null,keyInfo:null}),r++}}))}(u,e,r):o&&function(t,e){P(e,(function(e){t.push({newOption:e,brandNew:!0,existing:null,keyInfo:null})}))}(u,e),s=u,l=ut(),P(s,(function(t){var e=t.existing;e&&l.set(e.id,t)})),P(s,(function(t){var e=t.newOption;it(!e||null==e.id||!l.get(e.id)||l.get(e.id)===t,"id duplicates: "+(e&&e.id)),e&&null!=e.id&&l.set(e.id,t),!t.keyInfo&&(t.keyInfo={})})),P(s,(function(t,e){var n=t.existing,i=t.newOption,r=t.keyInfo;if(U(i)){if(r.name=null!=i.name?gr(i.name):n?n.name:sr+e,n)r.id=gr(n.id);else if(null!=i.id)r.id=gr(i.id);else{var o=0;do{r.id="\0"+r.name+"\0"+o++}while(l.get(r.id))}l.set(r.id,t)}})),u}function fr(t,e,n){var i=yr(e[t],null),r=yr(n[t],null);return null!=i&&null!=r&&i===r}function gr(t){return yr(t,"")}function yr(t,e){if(null==t)return e;var n=typeof t;return"string"===n?t:"number"===n||G(t)?t+"":e}function vr(t){var e=t.name;return!(!e||!e.indexOf(sr))}function mr(t){return t&&null!=t.id&&0===gr(t.id).indexOf(lr)}function _r(t,e){return null!=e.dataIndexInside?e.dataIndexInside:null!=e.dataIndex?V(e.dataIndex)?O(e.dataIndex,(function(e){return t.indexOfRawIndex(e)})):t.indexOfRawIndex(e.dataIndex):null!=e.name?V(e.name)?O(e.name,(function(e){return t.indexOfName(e)})):t.indexOfName(e.name):void 0}function xr(){var t="__ec_inner_"+br++;return function(e){return e[t]||(e[t]={})}}var br=nr();function wr(t,e,n){var i;if(H(e)){var r={};r[e+"Index"]=0,i=r}else i=e;var o=ut(),a={},s=!1;P(i,(function(t,e){if("dataIndex"!==e&&"dataIndexInside"!==e){var i=e.match(/^(\w+)(Index|Id|Name)$/)||[],r=i[1],l=(i[2]||"").toLowerCase();if(r&&l&&!(n&&n.includeMainTypes&&A(n.includeMainTypes,r)<0))s=s||!!r,(o.get(r)||o.set(r,{}))[l]=t}else a[e]=t}));var l=n?n.defaultMainType:null;return!s&&l&&o.set(l,{}),o.each((function(e,i){var r=Tr(t,i,e,{useDefault:l===i,enableAll:!n||null==n.enableAll||n.enableAll,enableNone:!n||null==n.enableNone||n.enableNone});a[i+"Models"]=r.models,a[i+"Model"]=r.models[0]})),a}var Sr={useDefault:!0,enableAll:!1,enableNone:!1},Mr={useDefault:!1,enableAll:!0,enableNone:!0};function Tr(t,e,n,i){i=i||Sr;var r=n.index,o=n.id,a=n.name,s={models:null,specified:null!=r||null!=o||null!=a};if(!s.specified){var l=void 0;return s.models=i.useDefault&&(l=t.getComponent(e))?[l]:[],s}return"none"===r||!1===r?(it(i.enableNone,'`"none"` or `false` is not a valid value on index option.'),s.models=[],s):("all"===r&&(it(i.enableAll,'`"all"` is not a valid value on index option.'),r=o=a=null),s.models=t.queryComponents({mainType:e,index:r,id:o,name:a}),s)}function Cr(t,e,n){t.setAttribute?t.setAttribute(e,n):t[e]=n}function Ir(t,e,n,i,r){var o=null==e||"auto"===e;if(null==i)return i;if("number"==typeof i)return Hi(d=nn(n||0,i,r),o?Math.max(Ui(n||0),Ui(i)):e);if("string"==typeof i)return r<1?n:i;for(var a=[],s=n,l=i,u=Math.max(s?s.length:0,l.length),h=0;h<u;++h){if("ordinal"===t.getDimensionInfo(h).type)a[h]=(r<1&&s?s:l)[h];else{var c=s&&s[h]?s[h]:0,p=l[h],d=nn(c,p,r);a[h]=Hi(d,o?Math.max(Ui(c),Ui(p)):e)}}return a}var Ar="___EC__COMPONENT__CONTAINER___",Dr="___EC__EXTENDED_CLASS___";function kr(t){var e={main:"",sub:""};if(t){var n=t.split(".");e.main=n[0]||"",e.sub=n[1]||""}return e}function Lr(t,e){t.$constructor=t,t.extend=function(t){var e=this;function n(){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];if(t.$constructor)t.$constructor.apply(this,arguments);else{if(Pr(e)){var a=ht(n.prototype,new(e.bind.apply(e,r([void 0],i))));return a}e.apply(this,arguments)}}return n[Dr]=!0,T(n.prototype,t),n.extend=this.extend,n.superCall=Nr,n.superApply=Er,D(n,this),n.superClass=e,n}}function Pr(t){return"function"==typeof t&&/^class\s/.test(Function.prototype.toString.call(t))}function Or(t,e){t.extend=e.extend}var Rr=Math.round(10*Math.random());function Nr(t,e){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];return this.superClass.prototype[e].apply(t,n)}function Er(t,e,n){return this.superClass.prototype[e].apply(t,n)}function Br(t){var e={};t.registerClass=function(t){var n,i=t.type||t.prototype.type;if(i){it(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(n=i),'componentType "'+n+'" illegal'),t.prototype.type=i;var r=kr(i);if(r.sub){if(r.sub!==Ar){(function(t){var n=e[t.main];n&&n[Ar]||((n=e[t.main]={})[Ar]=!0);return n}(r))[r.sub]=t}}else e[r.main]=t}return t},t.getClass=function(t,n,i){var r=e[t];if(r&&r[Ar]&&(r=n?r[n]:null),i&&!r)throw new Error(n?"Component "+t+"."+(n||"")+" not exists. Load it first.":t+".type should be specified.");return r},t.getClassesByMainType=function(t){var n=kr(t),i=[],r=e[n.main];return r&&r[Ar]?P(r,(function(t,e){e!==Ar&&i.push(t)})):i.push(r),i},t.hasClass=function(t){var n=kr(t);return!!e[n.main]},t.getAllClassMainTypes=function(){var t=[];return P(e,(function(e,n){t.push(n)})),t},t.hasSubTypes=function(t){var n=kr(t),i=e[n.main];return i&&i[Ar]}}function zr(t,e){for(var n=0;n<t.length;n++)t[n][1]||(t[n][1]=t[n][0]);return e=e||!1,function(n,i,r){for(var o={},a=0;a<t.length;a++){var s=t[a][1];if(!(i&&A(i,s)>=0||r&&A(r,s)<0)){var l=n.getShallow(s,e);null!=l&&(o[t[a][0]]=l)}}return o}}var Vr=zr([["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]]),Fr=function(){function t(){}return t.prototype.getAreaStyle=function(t,e){return Vr(this,t,e)},t}(),Hr=new ke(50);function Gr(t){if("string"==typeof t){var e=Hr.get(t);return e&&e.image}return t}function Wr(t,e,n,i,r){if(t){if("string"==typeof t){if(e&&e.__zrImageSrc===t||!n)return e;var o=Hr.get(t),a={hostEl:n,cb:i,cbPayload:r};return o?!Yr(e=o.image)&&o.pending.push(a):((e=new Image).onload=e.onerror=Ur,Hr.put(t,e.__cachedImgObj={image:e,pending:[a]}),e.src=e.__zrImageSrc=t),e}return t}return e}function Ur(){var t=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var e=0;e<t.pending.length;e++){var n=t.pending[e],i=n.cb;i&&i(this,n.cbPayload),n.hostEl.dirty()}t.pending.length=0}function Yr(t){return t&&t.width&&t.height}var Xr=/\{([a-zA-Z0-9_]+)\|([^}]*)\}/g;function Zr(t,e,n,i,r){if(!e)return"";var o=(t+"").split("\n");r=jr(e,n,i,r);for(var a=0,s=o.length;a<s;a++)o[a]=qr(o[a],r);return o.join("\n")}function jr(t,e,n,i){var r=T({},i=i||{});r.font=e,n=Q(n,"..."),r.maxIterations=Q(i.maxIterations,2);var o=r.minChar=Q(i.minChar,0);r.cnCharWidth=Ln("国",e);var a=r.ascCharWidth=Ln("a",e);r.placeholder=Q(i.placeholder,"");for(var s=t=Math.max(0,t-1),l=0;l<o&&s>=a;l++)s-=a;var u=Ln(n,e);return u>s&&(n="",u=0),s=t-u,r.ellipsis=n,r.ellipsisWidth=u,r.contentWidth=s,r.containerWidth=t,r}function qr(t,e){var n=e.containerWidth,i=e.font,r=e.contentWidth;if(!n)return"";var o=Ln(t,i);if(o<=n)return t;for(var a=0;;a++){if(o<=r||a>=e.maxIterations){t+=e.ellipsis;break}var s=0===a?Kr(t,r,e.ascCharWidth,e.cnCharWidth):o>0?Math.floor(t.length*r/o):0;o=Ln(t=t.substr(0,s),i)}return""===t&&(t=e.placeholder),t}function Kr(t,e,n,i){for(var r=0,o=0,a=t.length;o<a&&r<e;o++){var s=t.charCodeAt(o);r+=0<=s&&s<=127?n:i}return o}var $r=function(){},Jr=function(t){this.tokens=[],t&&(this.tokens=t)},Qr=function(){this.width=0,this.height=0,this.contentWidth=0,this.contentHeight=0,this.outerWidth=0,this.outerHeight=0,this.lines=[]};function to(t,e,n,i,r){var o,a,s=""===e,l=r&&n.rich[r]||{},u=t.lines,h=l.font||n.font,c=!1;if(i){var p=l.padding,d=p?p[1]+p[3]:0;if(null!=l.width&&"auto"!==l.width){var f=function(t,e){if("string"==typeof t)return t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t);return t}(l.width,i.width)+d;u.length>0&&f+i.accumWidth>i.width&&(o=e.split("\n"),c=!0),i.accumWidth=f}else{var g=io(e,h,i.width,i.breakAll,i.accumWidth);i.accumWidth=g.accumWidth+d,a=g.linesWidths,o=g.lines}}else o=e.split("\n");for(var y=0;y<o.length;y++){var v=o[y],m=new $r;if(m.styleName=r,m.text=v,m.isLineHolder=!v&&!s,"number"==typeof l.width?m.width=l.width:m.width=a?a[y]:Ln(v,h),y||c)u.push(new Jr([m]));else{var _=(u[u.length-1]||(u[0]=new Jr)).tokens,x=_.length;1===x&&_[0].isLineHolder?_[0]=m:(v||!x||s)&&_.push(m)}}}var eo=R(",&?/;] ".split(""),(function(t,e){return t[e]=!0,t}),{});function no(t){return!function(t){var e=t.charCodeAt(0);return e>=33&&e<=255}(t)||!!eo[t]}function io(t,e,n,i,r){for(var o=[],a=[],s="",l="",u=0,h=0,c=0;c<t.length;c++){var p=t.charAt(c);if("\n"!==p){var d=Ln(p,e),f=!i&&!no(p);(o.length?h+d>n:r+h+d>n)?h?(s||l)&&(f?(s||(s=l,l="",h=u=0),o.push(s),a.push(h-u),l+=p,s="",h=u+=d):(l&&(s+=l,h+=u,l="",u=0),o.push(s),a.push(h),s=p,h=d)):f?(o.push(l),a.push(u),l=p,u=d):(o.push(p),a.push(d)):(h+=d,f?(l+=p,u+=d):(l&&(s+=l,l="",u=0),s+=p))}else l&&(s+=l,h+=u),o.push(s),a.push(h),s="",l="",u=0,h=0}return o.length||s||(s=t,l="",u=0),l&&(s+=l),s&&(o.push(s),a.push(h)),1===o.length&&(h+=r),{accumWidth:h,lines:o,linesWidths:a}}var ro="__zr_style_"+Math.round(10*Math.random()),oo={shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:"#000",opacity:1,blend:"source-over"},ao={style:{shadowBlur:!0,shadowOffsetX:!0,shadowOffsetY:!0,shadowColor:!0,opacity:!0}};oo[ro]=!0;var so=["z","z2","invisible"],lo=function(t){function e(e){return t.call(this,e)||this}var i;return n(e,t),e.prototype._init=function(e){for(var n=E(e),i=0;i<n.length;i++){var r=n[i];"style"===r?this.useStyle(e[r]):t.prototype.attrKV.call(this,r,e[r])}this.style||this.useStyle({})},e.prototype.beforeBrush=function(){},e.prototype.afterBrush=function(){},e.prototype.innerBeforeBrush=function(){},e.prototype.innerAfterBrush=function(){},e.prototype.shouldBePainted=function(t,e,n,i){var r=this.transform;if(this.ignore||this.invisible||0===this.style.opacity||this.culling&&function(t,e,n){uo.copy(t.getBoundingRect()),t.transform&&uo.applyTransform(t.transform);return ho.width=e,ho.height=n,!uo.intersect(ho)}(this,t,e)||r&&!r[0]&&!r[3])return!1;if(n&&this.__clipPaths)for(var o=0;o<this.__clipPaths.length;++o)if(this.__clipPaths[o].isZeroArea())return!1;if(i&&this.parent)for(var a=this.parent;a;){if(a.ignore)return!1;a=a.parent}return!0},e.prototype.contain=function(t,e){return this.rectContain(t,e)},e.prototype.traverse=function(t,e){t.call(e,this)},e.prototype.rectContain=function(t,e){var n=this.transformCoordToLocal(t,e);return this.getBoundingRect().contain(n[0],n[1])},e.prototype.getPaintRect=function(){var t=this._paintRect;if(!this._paintRect||this.__dirty){var e=this.transform,n=this.getBoundingRect(),i=this.style,r=i.shadowBlur||0,o=i.shadowOffsetX||0,a=i.shadowOffsetY||0;t=this._paintRect||(this._paintRect=new In(0,0,0,0)),e?In.applyTransform(t,n,e):t.copy(n),(r||o||a)&&(t.width+=2*r+Math.abs(o),t.height+=2*r+Math.abs(a),t.x=Math.min(t.x,t.x+o-r),t.y=Math.min(t.y,t.y+a-r));var s=this.dirtyRectTolerance;t.isZero()||(t.x=Math.floor(t.x-s),t.y=Math.floor(t.y-s),t.width=Math.ceil(t.width+1+2*s),t.height=Math.ceil(t.height+1+2*s))}return t},e.prototype.setPrevPaintRect=function(t){t?(this._prevPaintRect=this._prevPaintRect||new In(0,0,0,0),this._prevPaintRect.copy(t)):this._prevPaintRect=null},e.prototype.getPrevPaintRect=function(){return this._prevPaintRect},e.prototype.animateStyle=function(t){return this.animate("style",t)},e.prototype.updateDuringAnimation=function(t){"style"===t?this.dirtyStyle():this.markRedraw()},e.prototype.attrKV=function(e,n){"style"!==e?t.prototype.attrKV.call(this,e,n):this.style?this.setStyle(n):this.useStyle(n)},e.prototype.setStyle=function(t,e){return"string"==typeof t?this.style[t]=e:T(this.style,t),this.dirtyStyle(),this},e.prototype.dirtyStyle=function(){this.markRedraw(),this.__dirty|=e.STYLE_CHANGED_BIT,this._rect&&(this._rect=null)},e.prototype.dirty=function(){this.dirtyStyle()},e.prototype.styleChanged=function(){return!!(this.__dirty&e.STYLE_CHANGED_BIT)},e.prototype.styleUpdated=function(){this.__dirty&=~e.STYLE_CHANGED_BIT},e.prototype.createStyle=function(t){return ht(oo,t)},e.prototype.useStyle=function(t){t[ro]||(t=this.createStyle(t)),this.__inHover?this.__hoverStyle=t:this.style=t,this.dirtyStyle()},e.prototype.isStyleObject=function(t){return t[ro]},e.prototype._innerSaveToNormal=function(e){t.prototype._innerSaveToNormal.call(this,e);var n=this._normalState;e.style&&!n.style&&(n.style=this._mergeStyle(this.createStyle(),this.style)),this._savePrimaryToNormal(e,n,so)},e.prototype._applyStateObj=function(e,n,i,r,o,a){t.prototype._applyStateObj.call(this,e,n,i,r,o,a);var s,l=!(n&&r);if(n&&n.style?o?r?s=n.style:(s=this._mergeStyle(this.createStyle(),i.style),this._mergeStyle(s,n.style)):(s=this._mergeStyle(this.createStyle(),r?this.style:i.style),this._mergeStyle(s,n.style)):l&&(s=i.style),s)if(o){var u=this.style;if(this.style=this.createStyle(l?{}:u),l)for(var h=E(u),c=0;c<h.length;c++){(d=h[c])in s&&(s[d]=s[d],this.style[d]=u[d])}var p=E(s);for(c=0;c<p.length;c++){var d=p[c];this.style[d]=this.style[d]}this._transitionState(e,{style:s},a,this.getAnimationStyleProps())}else this.useStyle(s);for(c=0;c<so.length;c++){d=so[c];n&&null!=n[d]?this[d]=n[d]:l&&null!=i[d]&&(this[d]=i[d])}},e.prototype._mergeStates=function(e){for(var n,i=t.prototype._mergeStates.call(this,e),r=0;r<e.length;r++){var o=e[r];o.style&&(n=n||{},this._mergeStyle(n,o.style))}return n&&(i.style=n),i},e.prototype._mergeStyle=function(t,e){return T(t,e),t},e.prototype.getAnimationStyleProps=function(){return ao},e.STYLE_CHANGED_BIT=2,e.initDefaultProps=((i=e.prototype).type="displayable",i.invisible=!1,i.z=0,i.z2=0,i.zlevel=0,i.culling=!1,i.cursor="pointer",i.rectHover=!1,i.incremental=!1,i._rect=null,i.dirtyRectTolerance=0,void(i.__dirty=jn.REDARAW_BIT|e.STYLE_CHANGED_BIT)),e}(jn),uo=new In(0,0,0,0),ho=new In(0,0,0,0);var co=Math.pow,po=Math.sqrt,fo=1e-8,go=1e-4,yo=po(3),vo=1/3,mo=ft(),_o=ft(),xo=ft();function bo(t){return t>-1e-8&&t<fo}function wo(t){return t>fo||t<-1e-8}function So(t,e,n,i,r){var o=1-r;return o*o*(o*t+3*r*e)+r*r*(r*i+3*o*n)}function Mo(t,e,n,i,r){var o=1-r;return 3*(((e-t)*o+2*(n-e)*r)*o+(i-n)*r*r)}function To(t,e,n,i,r,o){var a=i+3*(e-n)-t,s=3*(n-2*e+t),l=3*(e-t),u=t-r,h=s*s-3*a*l,c=s*l-9*a*u,p=l*l-3*s*u,d=0;if(bo(h)&&bo(c)){if(bo(s))o[0]=0;else(M=-l/s)>=0&&M<=1&&(o[d++]=M)}else{var f=c*c-4*h*p;if(bo(f)){var g=c/h,y=-g/2;(M=-s/a+g)>=0&&M<=1&&(o[d++]=M),y>=0&&y<=1&&(o[d++]=y)}else if(f>0){var v=po(f),m=h*s+1.5*a*(-c+v),_=h*s+1.5*a*(-c-v);(M=(-s-((m=m<0?-co(-m,vo):co(m,vo))+(_=_<0?-co(-_,vo):co(_,vo))))/(3*a))>=0&&M<=1&&(o[d++]=M)}else{var x=(2*h*s-3*a*c)/(2*po(h*h*h)),b=Math.acos(x)/3,w=po(h),S=Math.cos(b),M=(-s-2*w*S)/(3*a),T=(y=(-s+w*(S+yo*Math.sin(b)))/(3*a),(-s+w*(S-yo*Math.sin(b)))/(3*a));M>=0&&M<=1&&(o[d++]=M),y>=0&&y<=1&&(o[d++]=y),T>=0&&T<=1&&(o[d++]=T)}}return d}function Co(t,e,n,i,r){var o=6*n-12*e+6*t,a=9*e+3*i-3*t-9*n,s=3*e-3*t,l=0;if(bo(a)){if(wo(o))(h=-s/o)>=0&&h<=1&&(r[l++]=h)}else{var u=o*o-4*a*s;if(bo(u))r[0]=-o/(2*a);else if(u>0){var h,c=po(u),p=(-o-c)/(2*a);(h=(-o+c)/(2*a))>=0&&h<=1&&(r[l++]=h),p>=0&&p<=1&&(r[l++]=p)}}return l}function Io(t,e,n,i,r,o){var a=(e-t)*r+t,s=(n-e)*r+e,l=(i-n)*r+n,u=(s-a)*r+a,h=(l-s)*r+s,c=(h-u)*r+u;o[0]=t,o[1]=a,o[2]=u,o[3]=c,o[4]=c,o[5]=h,o[6]=l,o[7]=i}function Ao(t,e,n,i,r,o,a,s,l,u,h){var c,p,d,f,g,y=.005,v=1/0;mo[0]=l,mo[1]=u;for(var m=0;m<1;m+=.05)_o[0]=So(t,n,r,a,m),_o[1]=So(e,i,o,s,m),(f=It(mo,_o))<v&&(c=m,v=f);v=1/0;for(var _=0;_<32&&!(y<go);_++)p=c-y,d=c+y,_o[0]=So(t,n,r,a,p),_o[1]=So(e,i,o,s,p),f=It(_o,mo),p>=0&&f<v?(c=p,v=f):(xo[0]=So(t,n,r,a,d),xo[1]=So(e,i,o,s,d),g=It(xo,mo),d<=1&&g<v?(c=d,v=g):y*=.5);return h&&(h[0]=So(t,n,r,a,c),h[1]=So(e,i,o,s,c)),po(v)}function Do(t,e,n,i,r,o,a,s,l){for(var u=t,h=e,c=0,p=1/l,d=1;d<=l;d++){var f=d*p,g=So(t,n,r,a,f),y=So(e,i,o,s,f),v=g-u,m=y-h;c+=Math.sqrt(v*v+m*m),u=g,h=y}return c}function ko(t,e,n,i){var r=1-i;return r*(r*t+2*i*e)+i*i*n}function Lo(t,e,n,i){return 2*((1-i)*(e-t)+i*(n-e))}function Po(t,e,n){var i=t+n-2*e;return 0===i?.5:(t-e)/i}function Oo(t,e,n,i,r){var o=(e-t)*i+t,a=(n-e)*i+e,s=(a-o)*i+o;r[0]=t,r[1]=o,r[2]=s,r[3]=s,r[4]=a,r[5]=n}function Ro(t,e,n,i,r,o,a,s,l){var u,h=.005,c=1/0;mo[0]=a,mo[1]=s;for(var p=0;p<1;p+=.05){_o[0]=ko(t,n,r,p),_o[1]=ko(e,i,o,p),(y=It(mo,_o))<c&&(u=p,c=y)}c=1/0;for(var d=0;d<32&&!(h<go);d++){var f=u-h,g=u+h;_o[0]=ko(t,n,r,f),_o[1]=ko(e,i,o,f);var y=It(_o,mo);if(f>=0&&y<c)u=f,c=y;else{xo[0]=ko(t,n,r,g),xo[1]=ko(e,i,o,g);var v=It(xo,mo);g<=1&&v<c?(u=g,c=v):h*=.5}}return l&&(l[0]=ko(t,n,r,u),l[1]=ko(e,i,o,u)),po(c)}function No(t,e,n,i,r,o,a){for(var s=t,l=e,u=0,h=1/a,c=1;c<=a;c++){var p=c*h,d=ko(t,n,r,p),f=ko(e,i,o,p),g=d-s,y=f-l;u+=Math.sqrt(g*g+y*y),s=d,l=f}return u}var Eo=Math.min,Bo=Math.max,zo=Math.sin,Vo=Math.cos,Fo=2*Math.PI,Ho=ft(),Go=ft(),Wo=ft();function Uo(t,e,n){if(0!==t.length){for(var i=t[0],r=i[0],o=i[0],a=i[1],s=i[1],l=1;l<t.length;l++)i=t[l],r=Eo(r,i[0]),o=Bo(o,i[0]),a=Eo(a,i[1]),s=Bo(s,i[1]);e[0]=r,e[1]=a,n[0]=o,n[1]=s}}function Yo(t,e,n,i,r,o){r[0]=Eo(t,n),r[1]=Eo(e,i),o[0]=Bo(t,n),o[1]=Bo(e,i)}var Xo=[],Zo=[];function jo(t,e,n,i,r,o,a,s,l,u){var h=Co,c=So,p=h(t,n,r,a,Xo);l[0]=1/0,l[1]=1/0,u[0]=-1/0,u[1]=-1/0;for(var d=0;d<p;d++){var f=c(t,n,r,a,Xo[d]);l[0]=Eo(f,l[0]),u[0]=Bo(f,u[0])}p=h(e,i,o,s,Zo);for(d=0;d<p;d++){var g=c(e,i,o,s,Zo[d]);l[1]=Eo(g,l[1]),u[1]=Bo(g,u[1])}l[0]=Eo(t,l[0]),u[0]=Bo(t,u[0]),l[0]=Eo(a,l[0]),u[0]=Bo(a,u[0]),l[1]=Eo(e,l[1]),u[1]=Bo(e,u[1]),l[1]=Eo(s,l[1]),u[1]=Bo(s,u[1])}function qo(t,e,n,i,r,o,a,s){var l=Po,u=ko,h=Bo(Eo(l(t,n,r),1),0),c=Bo(Eo(l(e,i,o),1),0),p=u(t,n,r,h),d=u(e,i,o,c);a[0]=Eo(t,r,p),a[1]=Eo(e,o,d),s[0]=Bo(t,r,p),s[1]=Bo(e,o,d)}function Ko(t,e,n,i,r,o,a,s,l){var u=kt,h=Lt,c=Math.abs(r-o);if(c%Fo<1e-4&&c>1e-4)return s[0]=t-n,s[1]=e-i,l[0]=t+n,void(l[1]=e+i);if(Ho[0]=Vo(r)*n+t,Ho[1]=zo(r)*i+e,Go[0]=Vo(o)*n+t,Go[1]=zo(o)*i+e,u(s,Ho,Go),h(l,Ho,Go),(r%=Fo)<0&&(r+=Fo),(o%=Fo)<0&&(o+=Fo),r>o&&!a?o+=Fo:r<o&&a&&(r+=Fo),a){var p=o;o=r,r=p}for(var d=0;d<o;d+=Math.PI/2)d>r&&(Wo[0]=Vo(d)*n+t,Wo[1]=zo(d)*i+e,u(s,Wo,s),h(l,Wo,l))}var $o={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},Jo=[],Qo=[],ta=[],ea=[],na=[],ia=[],ra=Math.min,oa=Math.max,aa=Math.cos,sa=Math.sin,la=Math.sqrt,ua=Math.abs,ha=Math.PI,ca=2*ha,pa="undefined"!=typeof Float32Array,da=[];function fa(t){return Math.round(t/ha*1e8)/1e8%2*ha}function ga(t,e){var n=fa(t[0]);n<0&&(n+=ca);var i=n-t[0],r=t[1];r+=i,!e&&r-n>=ca?r=n+ca:e&&n-r>=ca?r=n-ca:!e&&n>r?r=n+(ca-fa(n-r)):e&&n<r&&(r=n-(ca-fa(r-n))),t[0]=n,t[1]=r}var ya=function(){function t(t){this.dpr=1,this._version=0,this._xi=0,this._yi=0,this._x0=0,this._y0=0,this._len=0,t&&(this._saveData=!1),this._saveData&&(this.data=[])}return t.prototype.increaseVersion=function(){this._version++},t.prototype.getVersion=function(){return this._version},t.prototype.setScale=function(t,e,n){(n=n||0)>0&&(this._ux=ua(n/Fn/t)||0,this._uy=ua(n/Fn/e)||0)},t.prototype.setDPR=function(t){this.dpr=t},t.prototype.setContext=function(t){this._ctx=t},t.prototype.getContext=function(){return this._ctx},t.prototype.beginPath=function(){return this._ctx&&this._ctx.beginPath(),this.reset(),this},t.prototype.reset=function(){this._saveData&&(this._len=0),this._lineDash&&(this._lineDash=null,this._dashOffset=0),this._pathSegLen&&(this._pathSegLen=null,this._pathLen=0),this._version++},t.prototype.moveTo=function(t,e){return this.addData($o.M,t,e),this._ctx&&this._ctx.moveTo(t,e),this._x0=t,this._y0=e,this._xi=t,this._yi=e,this},t.prototype.lineTo=function(t,e){var n=ua(t-this._xi)>this._ux||ua(e-this._yi)>this._uy||this._len<5;return this.addData($o.L,t,e),this._ctx&&n&&(this._needsDash?this._dashedLineTo(t,e):this._ctx.lineTo(t,e)),n&&(this._xi=t,this._yi=e),this},t.prototype.bezierCurveTo=function(t,e,n,i,r,o){return this.addData($o.C,t,e,n,i,r,o),this._ctx&&(this._needsDash?this._dashedBezierTo(t,e,n,i,r,o):this._ctx.bezierCurveTo(t,e,n,i,r,o)),this._xi=r,this._yi=o,this},t.prototype.quadraticCurveTo=function(t,e,n,i){return this.addData($o.Q,t,e,n,i),this._ctx&&(this._needsDash?this._dashedQuadraticTo(t,e,n,i):this._ctx.quadraticCurveTo(t,e,n,i)),this._xi=n,this._yi=i,this},t.prototype.arc=function(t,e,n,i,r,o){da[0]=i,da[1]=r,ga(da,o),i=da[0];var a=(r=da[1])-i;return this.addData($o.A,t,e,n,n,i,a,0,o?0:1),this._ctx&&this._ctx.arc(t,e,n,i,r,o),this._xi=aa(r)*n+t,this._yi=sa(r)*n+e,this},t.prototype.arcTo=function(t,e,n,i,r){return this._ctx&&this._ctx.arcTo(t,e,n,i,r),this},t.prototype.rect=function(t,e,n,i){return this._ctx&&this._ctx.rect(t,e,n,i),this.addData($o.R,t,e,n,i),this},t.prototype.closePath=function(){this.addData($o.Z);var t=this._ctx,e=this._x0,n=this._y0;return t&&(this._needsDash&&this._dashedLineTo(e,n),t.closePath()),this._xi=e,this._yi=n,this},t.prototype.fill=function(t){t&&t.fill(),this.toStatic()},t.prototype.stroke=function(t){t&&t.stroke(),this.toStatic()},t.prototype.setLineDash=function(t){if(t instanceof Array){this._lineDash=t,this._dashIdx=0;for(var e=0,n=0;n<t.length;n++)e+=t[n];this._dashSum=e,this._needsDash=!0}else this._lineDash=null,this._needsDash=!1;return this},t.prototype.setLineDashOffset=function(t){return this._dashOffset=t,this},t.prototype.len=function(){return this._len},t.prototype.setData=function(t){var e=t.length;this.data&&this.data.length===e||!pa||(this.data=new Float32Array(e));for(var n=0;n<e;n++)this.data[n]=t[n];this._len=e},t.prototype.appendPath=function(t){t instanceof Array||(t=[t]);for(var e=t.length,n=0,i=this._len,r=0;r<e;r++)n+=t[r].len();pa&&this.data instanceof Float32Array&&(this.data=new Float32Array(i+n));for(r=0;r<e;r++)for(var o=t[r].data,a=0;a<o.length;a++)this.data[i++]=o[a];this._len=i},t.prototype.addData=function(t,e,n,i,r,o,a,s,l){if(this._saveData){var u=this.data;this._len+arguments.length>u.length&&(this._expandData(),u=this.data);for(var h=0;h<arguments.length;h++)u[this._len++]=arguments[h]}},t.prototype._expandData=function(){if(!(this.data instanceof Array)){for(var t=[],e=0;e<this._len;e++)t[e]=this.data[e];this.data=t}},t.prototype._dashedLineTo=function(t,e){var n,i,r=this._dashSum,o=this._lineDash,a=this._ctx,s=this._dashOffset,l=this._xi,u=this._yi,h=t-l,c=e-u,p=la(h*h+c*c),d=l,f=u,g=o.length;for(s<0&&(s=r+s),d-=(s%=r)*(h/=p),f-=s*(c/=p);h>0&&d<=t||h<0&&d>=t||0===h&&(c>0&&f<=e||c<0&&f>=e);)d+=h*(n=o[i=this._dashIdx]),f+=c*n,this._dashIdx=(i+1)%g,h>0&&d<l||h<0&&d>l||c>0&&f<u||c<0&&f>u||a[i%2?"moveTo":"lineTo"](h>=0?ra(d,t):oa(d,t),c>=0?ra(f,e):oa(f,e));h=d-t,c=f-e,this._dashOffset=-la(h*h+c*c)},t.prototype._dashedBezierTo=function(t,e,n,i,r,o){var a,s,l,u,h,c=this._ctx,p=this._dashSum,d=this._dashOffset,f=this._lineDash,g=this._xi,y=this._yi,v=0,m=this._dashIdx,_=f.length,x=0;for(d<0&&(d=p+d),d%=p,a=0;a<1;a+=.1)s=So(g,t,n,r,a+.1)-So(g,t,n,r,a),l=So(y,e,i,o,a+.1)-So(y,e,i,o,a),v+=la(s*s+l*l);for(;m<_&&!((x+=f[m])>d);m++);for(a=(x-d)/v;a<=1;)u=So(g,t,n,r,a),h=So(y,e,i,o,a),m%2?c.moveTo(u,h):c.lineTo(u,h),a+=f[m]/v,m=(m+1)%_;m%2!=0&&c.lineTo(r,o),s=r-u,l=o-h,this._dashOffset=-la(s*s+l*l)},t.prototype._dashedQuadraticTo=function(t,e,n,i){var r=n,o=i;n=(n+2*t)/3,i=(i+2*e)/3,t=(this._xi+2*t)/3,e=(this._yi+2*e)/3,this._dashedBezierTo(t,e,n,i,r,o)},t.prototype.toStatic=function(){if(this._saveData){var t=this.data;t instanceof Array&&(t.length=this._len,pa&&this._len>11&&(this.data=new Float32Array(t)))}},t.prototype.getBoundingRect=function(){ta[0]=ta[1]=na[0]=na[1]=Number.MAX_VALUE,ea[0]=ea[1]=ia[0]=ia[1]=-Number.MAX_VALUE;var t,e=this.data,n=0,i=0,r=0,o=0;for(t=0;t<this._len;){var a=e[t++],s=1===t;switch(s&&(r=n=e[t],o=i=e[t+1]),a){case $o.M:n=r=e[t++],i=o=e[t++],na[0]=r,na[1]=o,ia[0]=r,ia[1]=o;break;case $o.L:Yo(n,i,e[t],e[t+1],na,ia),n=e[t++],i=e[t++];break;case $o.C:jo(n,i,e[t++],e[t++],e[t++],e[t++],e[t],e[t+1],na,ia),n=e[t++],i=e[t++];break;case $o.Q:qo(n,i,e[t++],e[t++],e[t],e[t+1],na,ia),n=e[t++],i=e[t++];break;case $o.A:var l=e[t++],u=e[t++],h=e[t++],c=e[t++],p=e[t++],d=e[t++]+p;t+=1;var f=!e[t++];s&&(r=aa(p)*h+l,o=sa(p)*c+u),Ko(l,u,h,c,p,d,f,na,ia),n=aa(d)*h+l,i=sa(d)*c+u;break;case $o.R:Yo(r=n=e[t++],o=i=e[t++],r+e[t++],o+e[t++],na,ia);break;case $o.Z:n=r,i=o}kt(ta,ta,na),Lt(ea,ea,ia)}return 0===t&&(ta[0]=ta[1]=ea[0]=ea[1]=0),new In(ta[0],ta[1],ea[0]-ta[0],ea[1]-ta[1])},t.prototype._calculateLength=function(){var t=this.data,e=this._len,n=this._ux,i=this._uy,r=0,o=0,a=0,s=0;this._pathSegLen||(this._pathSegLen=[]);for(var l=this._pathSegLen,u=0,h=0,c=0;c<e;){var p=t[c++],d=1===c;d&&(a=r=t[c],s=o=t[c+1]);var f=-1;switch(p){case $o.M:r=a=t[c++],o=s=t[c++];break;case $o.L:var g=t[c++],y=(_=t[c++])-o;(ua(D=g-r)>n||ua(y)>i||c===e-1)&&(f=Math.sqrt(D*D+y*y),r=g,o=_);break;case $o.C:var v=t[c++],m=t[c++],_=(g=t[c++],t[c++]),x=t[c++],b=t[c++];f=Do(r,o,v,m,g,_,x,b,10),r=x,o=b;break;case $o.Q:f=No(r,o,v=t[c++],m=t[c++],g=t[c++],_=t[c++],10),r=g,o=_;break;case $o.A:var w=t[c++],S=t[c++],M=t[c++],T=t[c++],C=t[c++],I=t[c++],A=I+C;c+=1;t[c++];d&&(a=aa(C)*M+w,s=sa(C)*T+S),f=oa(M,T)*ra(ca,Math.abs(I)),r=aa(A)*M+w,o=sa(A)*T+S;break;case $o.R:a=r=t[c++],s=o=t[c++],f=2*t[c++]+2*t[c++];break;case $o.Z:var D=a-r;y=s-o;f=Math.sqrt(D*D+y*y),r=a,o=s}f>=0&&(l[h++]=f,u+=f)}return this._pathLen=u,u},t.prototype.rebuildPath=function(t,e){var n,i,r,o,a,s,l,u,h=this.data,c=this._ux,p=this._uy,d=this._len,f=e<1,g=0,y=0;if(!f||(this._pathSegLen||this._calculateLength(),l=this._pathSegLen,u=e*this._pathLen))t:for(var v=0;v<d;){var m=h[v++],_=1===v;switch(_&&(n=r=h[v],i=o=h[v+1]),m){case $o.M:n=r=h[v++],i=o=h[v++],t.moveTo(r,o);break;case $o.L:if(a=h[v++],s=h[v++],ua(a-r)>c||ua(s-o)>p||v===d-1){if(f){if(g+(G=l[y++])>u){var x=(u-g)/G;t.lineTo(r*(1-x)+a*x,o*(1-x)+s*x);break t}g+=G}t.lineTo(a,s),r=a,o=s}break;case $o.C:var b=h[v++],w=h[v++],S=h[v++],M=h[v++],T=h[v++],C=h[v++];if(f){if(g+(G=l[y++])>u){Io(r,b,S,T,x=(u-g)/G,Jo),Io(o,w,M,C,x,Qo),t.bezierCurveTo(Jo[1],Qo[1],Jo[2],Qo[2],Jo[3],Qo[3]);break t}g+=G}t.bezierCurveTo(b,w,S,M,T,C),r=T,o=C;break;case $o.Q:b=h[v++],w=h[v++],S=h[v++],M=h[v++];if(f){if(g+(G=l[y++])>u){Oo(r,b,S,x=(u-g)/G,Jo),Oo(o,w,M,x,Qo),t.quadraticCurveTo(Jo[1],Qo[1],Jo[2],Qo[2]);break t}g+=G}t.quadraticCurveTo(b,w,S,M),r=S,o=M;break;case $o.A:var I=h[v++],A=h[v++],D=h[v++],k=h[v++],L=h[v++],P=h[v++],O=h[v++],R=!h[v++],N=D>k?D:k,E=ua(D-k)>.001,B=L+P,z=!1;if(f)g+(G=l[y++])>u&&(B=L+P*(u-g)/G,z=!0),g+=G;if(E&&t.ellipse?t.ellipse(I,A,D,k,O,L,B,R):t.arc(I,A,N,L,B,R),z)break t;_&&(n=aa(L)*D+I,i=sa(L)*k+A),r=aa(B)*D+I,o=sa(B)*k+A;break;case $o.R:n=r=h[v],i=o=h[v+1],a=h[v++],s=h[v++];var V=h[v++],F=h[v++];if(f){if(g+(G=l[y++])>u){var H=u-g;t.moveTo(a,s),t.lineTo(a+ra(H,V),s),(H-=V)>0&&t.lineTo(a+V,s+ra(H,F)),(H-=F)>0&&t.lineTo(a+oa(V-H,0),s+F),(H-=V)>0&&t.lineTo(a,s+oa(F-H,0));break t}g+=G}t.rect(a,s,V,F);break;case $o.Z:if(f){var G;if(g+(G=l[y++])>u){x=(u-g)/G;t.lineTo(r*(1-x)+n*x,o*(1-x)+i*x);break t}g+=G}t.closePath(),r=n,o=i}}},t.CMD=$o,t.initDefaultProps=function(){var e=t.prototype;e._saveData=!0,e._needsDash=!1,e._dashOffset=0,e._dashIdx=0,e._dashSum=0,e._ux=0,e._uy=0}(),t}();function va(t,e,n,i,r,o,a){if(0===r)return!1;var s=r,l=0;if(a>e+s&&a>i+s||a<e-s&&a<i-s||o>t+s&&o>n+s||o<t-s&&o<n-s)return!1;if(t===n)return Math.abs(o-t)<=s/2;var u=(l=(e-i)/(t-n))*o-a+(t*i-n*e)/(t-n);return u*u/(l*l+1)<=s/2*s/2}function ma(t,e,n,i,r,o,a,s,l,u,h){if(0===l)return!1;var c=l;return!(h>e+c&&h>i+c&&h>o+c&&h>s+c||h<e-c&&h<i-c&&h<o-c&&h<s-c||u>t+c&&u>n+c&&u>r+c&&u>a+c||u<t-c&&u<n-c&&u<r-c&&u<a-c)&&Ao(t,e,n,i,r,o,a,s,u,h,null)<=c/2}function _a(t,e,n,i,r,o,a,s,l){if(0===a)return!1;var u=a;return!(l>e+u&&l>i+u&&l>o+u||l<e-u&&l<i-u&&l<o-u||s>t+u&&s>n+u&&s>r+u||s<t-u&&s<n-u&&s<r-u)&&Ro(t,e,n,i,r,o,s,l,null)<=u/2}var xa=2*Math.PI;function ba(t){return(t%=xa)<0&&(t+=xa),t}var wa=2*Math.PI;function Sa(t,e,n,i,r,o,a,s,l){if(0===a)return!1;var u=a;s-=t,l-=e;var h=Math.sqrt(s*s+l*l);if(h-u>n||h+u<n)return!1;if(Math.abs(i-r)%wa<1e-4)return!0;if(o){var c=i;i=ba(r),r=ba(c)}else i=ba(i),r=ba(r);i>r&&(r+=wa);var p=Math.atan2(l,s);return p<0&&(p+=wa),p>=i&&p<=r||p+wa>=i&&p+wa<=r}function Ma(t,e,n,i,r,o){if(o>e&&o>i||o<e&&o<i)return 0;if(i===e)return 0;var a=(o-e)/(i-e),s=i<e?1:-1;1!==a&&0!==a||(s=i<e?.5:-.5);var l=a*(n-t)+t;return l===r?1/0:l>r?s:0}var Ta=ya.CMD,Ca=2*Math.PI;var Ia=[-1,-1,-1],Aa=[-1,-1];function Da(t,e,n,i,r,o,a,s,l,u){if(u>e&&u>i&&u>o&&u>s||u<e&&u<i&&u<o&&u<s)return 0;var h,c=To(e,i,o,s,u,Ia);if(0===c)return 0;for(var p=0,d=-1,f=void 0,g=void 0,y=0;y<c;y++){var v=Ia[y],m=0===v||1===v?.5:1;So(t,n,r,a,v)<l||(d<0&&(d=Co(e,i,o,s,Aa),Aa[1]<Aa[0]&&d>1&&(h=void 0,h=Aa[0],Aa[0]=Aa[1],Aa[1]=h),f=So(e,i,o,s,Aa[0]),d>1&&(g=So(e,i,o,s,Aa[1]))),2===d?v<Aa[0]?p+=f<e?m:-m:v<Aa[1]?p+=g<f?m:-m:p+=s<g?m:-m:v<Aa[0]?p+=f<e?m:-m:p+=s<f?m:-m)}return p}function ka(t,e,n,i,r,o,a,s){if(s>e&&s>i&&s>o||s<e&&s<i&&s<o)return 0;var l=function(t,e,n,i,r){var o=t-2*e+n,a=2*(e-t),s=t-i,l=0;if(bo(o))wo(a)&&(h=-s/a)>=0&&h<=1&&(r[l++]=h);else{var u=a*a-4*o*s;if(bo(u))(h=-a/(2*o))>=0&&h<=1&&(r[l++]=h);else if(u>0){var h,c=po(u),p=(-a-c)/(2*o);(h=(-a+c)/(2*o))>=0&&h<=1&&(r[l++]=h),p>=0&&p<=1&&(r[l++]=p)}}return l}(e,i,o,s,Ia);if(0===l)return 0;var u=Po(e,i,o);if(u>=0&&u<=1){for(var h=0,c=ko(e,i,o,u),p=0;p<l;p++){var d=0===Ia[p]||1===Ia[p]?.5:1;ko(t,n,r,Ia[p])<a||(Ia[p]<u?h+=c<e?d:-d:h+=o<c?d:-d)}return h}d=0===Ia[0]||1===Ia[0]?.5:1;return ko(t,n,r,Ia[0])<a?0:o<e?d:-d}function La(t,e,n,i,r,o,a,s){if((s-=e)>n||s<-n)return 0;var l=Math.sqrt(n*n-s*s);Ia[0]=-l,Ia[1]=l;var u=Math.abs(i-r);if(u<1e-4)return 0;if(u>=Ca-1e-4){i=0,r=Ca;var h=o?1:-1;return a>=Ia[0]+t&&a<=Ia[1]+t?h:0}if(i>r){var c=i;i=r,r=c}i<0&&(i+=Ca,r+=Ca);for(var p=0,d=0;d<2;d++){var f=Ia[d];if(f+t>a){var g=Math.atan2(s,f);h=o?1:-1;g<0&&(g=Ca+g),(g>=i&&g<=r||g+Ca>=i&&g+Ca<=r)&&(g>Math.PI/2&&g<1.5*Math.PI&&(h=-h),p+=h)}}return p}function Pa(t,e,n,i,r){for(var o,a,s,l,u=t.data,h=t.len(),c=0,p=0,d=0,f=0,g=0,y=0;y<h;){var v=u[y++],m=1===y;switch(v===Ta.M&&y>1&&(n||(c+=Ma(p,d,f,g,i,r))),m&&(f=p=u[y],g=d=u[y+1]),v){case Ta.M:p=f=u[y++],d=g=u[y++];break;case Ta.L:if(n){if(va(p,d,u[y],u[y+1],e,i,r))return!0}else c+=Ma(p,d,u[y],u[y+1],i,r)||0;p=u[y++],d=u[y++];break;case Ta.C:if(n){if(ma(p,d,u[y++],u[y++],u[y++],u[y++],u[y],u[y+1],e,i,r))return!0}else c+=Da(p,d,u[y++],u[y++],u[y++],u[y++],u[y],u[y+1],i,r)||0;p=u[y++],d=u[y++];break;case Ta.Q:if(n){if(_a(p,d,u[y++],u[y++],u[y],u[y+1],e,i,r))return!0}else c+=ka(p,d,u[y++],u[y++],u[y],u[y+1],i,r)||0;p=u[y++],d=u[y++];break;case Ta.A:var _=u[y++],x=u[y++],b=u[y++],w=u[y++],S=u[y++],M=u[y++];y+=1;var T=!!(1-u[y++]);o=Math.cos(S)*b+_,a=Math.sin(S)*w+x,m?(f=o,g=a):c+=Ma(p,d,o,a,i,r);var C=(i-_)*w/b+_;if(n){if(Sa(_,x,w,S,S+M,T,e,C,r))return!0}else c+=La(_,x,w,S,S+M,T,C,r);p=Math.cos(S+M)*b+_,d=Math.sin(S+M)*w+x;break;case Ta.R:if(f=p=u[y++],g=d=u[y++],o=f+u[y++],a=g+u[y++],n){if(va(f,g,o,g,e,i,r)||va(o,g,o,a,e,i,r)||va(o,a,f,a,e,i,r)||va(f,a,f,g,e,i,r))return!0}else c+=Ma(o,g,o,a,i,r),c+=Ma(f,a,f,g,i,r);break;case Ta.Z:if(n){if(va(p,d,f,g,e,i,r))return!0}else c+=Ma(p,d,f,g,i,r);p=f,d=g}}return n||(s=d,l=g,Math.abs(s-l)<1e-4)||(c+=Ma(p,d,f,g,i,r)||0),0!==c}var Oa=C({fill:"#000",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:"butt",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},oo),Ra={style:C({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},ao.style)},Na=["x","y","rotation","scaleX","scaleY","originX","originY","invisible","culling","z","z2","zlevel","parent"],Ea=function(t){function e(e){return t.call(this,e)||this}var i;return n(e,t),e.prototype.update=function(){var n=this;t.prototype.update.call(this);var i=this.style;if(i.decal){var r=this._decalEl=this._decalEl||new e;r.buildPath===e.prototype.buildPath&&(r.buildPath=function(t){n.buildPath(t,n.shape)}),r.silent=!0;var o=r.style;for(var a in i)o[a]!==i[a]&&(o[a]=i[a]);o.fill=i.fill?i.decal:null,o.decal=null,o.shadowColor=null,i.strokeFirst&&(o.stroke=null);for(var s=0;s<Na.length;++s)r[Na[s]]=this[Na[s]];r.__dirty|=jn.REDARAW_BIT}else this._decalEl&&(this._decalEl=null)},e.prototype.getDecalElement=function(){return this._decalEl},e.prototype._init=function(e){var n=E(e);this.shape=this.getDefaultShape();var i=this.getDefaultStyle();i&&this.useStyle(i);for(var r=0;r<n.length;r++){var o=n[r],a=e[o];"style"===o?this.style?T(this.style,a):this.useStyle(a):"shape"===o?T(this.shape,a):t.prototype.attrKV.call(this,o,a)}this.style||this.useStyle({})},e.prototype.getDefaultStyle=function(){return null},e.prototype.getDefaultShape=function(){return{}},e.prototype.canBeInsideText=function(){return this.hasFill()},e.prototype.getInsideTextFill=function(){var t=this.style.fill;if("none"!==t){if(H(t)){var e=Qe(t,0);return e>.5?Hn:e>.2?"#eee":Gn}if(t)return Gn}return Hn},e.prototype.getInsideTextStroke=function(t){var e=this.style.fill;if(H(e)){var n=this.__zr;if(!(!n||!n.isDarkMode())===Qe(t,0)<.4)return e}},e.prototype.buildPath=function(t,e,n){},e.prototype.pathUpdated=function(){this.__dirty&=~e.SHAPE_CHANGED_BIT},e.prototype.createPathProxy=function(){this.path=new ya(!1)},e.prototype.hasStroke=function(){var t=this.style,e=t.stroke;return!(null==e||"none"===e||!(t.lineWidth>0))},e.prototype.hasFill=function(){var t=this.style.fill;return null!=t&&"none"!==t},e.prototype.getBoundingRect=function(){var t=this._rect,n=this.style,i=!t;if(i){var r=!1;this.path||(r=!0,this.createPathProxy());var o=this.path;(r||this.__dirty&e.SHAPE_CHANGED_BIT)&&(o.beginPath(),this.buildPath(o,this.shape,!1),this.pathUpdated()),t=o.getBoundingRect()}if(this._rect=t,this.hasStroke()&&this.path&&this.path.len()>0){var a=this._rectWithStroke||(this._rectWithStroke=t.clone());if(this.__dirty||i){a.copy(t);var s=n.strokeNoScale?this.getLineScale():1,l=n.lineWidth;if(!this.hasFill()){var u=this.strokeContainThreshold;l=Math.max(l,null==u?4:u)}s>1e-10&&(a.width+=l/s,a.height+=l/s,a.x-=l/s/2,a.y-=l/s/2)}return a}return t},e.prototype.contain=function(t,e){var n=this.transformCoordToLocal(t,e),i=this.getBoundingRect(),r=this.style;if(t=n[0],e=n[1],i.contain(t,e)){var o=this.path;if(this.hasStroke()){var a=r.lineWidth,s=r.strokeNoScale?this.getLineScale():1;if(s>1e-10&&(this.hasFill()||(a=Math.max(a,this.strokeContainThreshold)),function(t,e,n,i){return Pa(t,e,!0,n,i)}(o,a/s,t,e)))return!0}if(this.hasFill())return function(t,e,n){return Pa(t,0,!1,e,n)}(o,t,e)}return!1},e.prototype.dirtyShape=function(){this.__dirty|=e.SHAPE_CHANGED_BIT,this._rect&&(this._rect=null),this._decalEl&&this._decalEl.dirtyShape(),this.markRedraw()},e.prototype.dirty=function(){this.dirtyStyle(),this.dirtyShape()},e.prototype.animateShape=function(t){return this.animate("shape",t)},e.prototype.updateDuringAnimation=function(t){"style"===t?this.dirtyStyle():"shape"===t?this.dirtyShape():this.markRedraw()},e.prototype.attrKV=function(e,n){"shape"===e?this.setShape(n):t.prototype.attrKV.call(this,e,n)},e.prototype.setShape=function(t,e){var n=this.shape;return n||(n=this.shape={}),"string"==typeof t?n[t]=e:T(n,t),this.dirtyShape(),this},e.prototype.shapeChanged=function(){return!!(this.__dirty&e.SHAPE_CHANGED_BIT)},e.prototype.createStyle=function(t){return ht(Oa,t)},e.prototype._innerSaveToNormal=function(e){t.prototype._innerSaveToNormal.call(this,e);var n=this._normalState;e.shape&&!n.shape&&(n.shape=T({},this.shape))},e.prototype._applyStateObj=function(e,n,i,r,o,a){t.prototype._applyStateObj.call(this,e,n,i,r,o,a);var s,l=!(n&&r);if(n&&n.shape?o?r?s=n.shape:(s=T({},i.shape),T(s,n.shape)):(s=T({},r?this.shape:i.shape),T(s,n.shape)):l&&(s=i.shape),s)if(o){this.shape=T({},this.shape);for(var u={},h=E(s),c=0;c<h.length;c++){var p=h[c];"object"==typeof s[p]?this.shape[p]=s[p]:u[p]=s[p]}this._transitionState(e,{shape:u},a)}else this.shape=s,this.dirtyShape()},e.prototype._mergeStates=function(e){for(var n,i=t.prototype._mergeStates.call(this,e),r=0;r<e.length;r++){var o=e[r];o.shape&&(n=n||{},this._mergeStyle(n,o.shape))}return n&&(i.shape=n),i},e.prototype.getAnimationStyleProps=function(){return Ra},e.prototype.isZeroArea=function(){return!1},e.extend=function(t){var i=function(e){function i(n){var i=e.call(this,n)||this;return t.init&&t.init.call(i,n),i}return n(i,e),i.prototype.getDefaultStyle=function(){return w(t.style)},i.prototype.getDefaultShape=function(){return w(t.shape)},i}(e);for(var r in t)"function"==typeof t[r]&&(i.prototype[r]=t[r]);return i},e.SHAPE_CHANGED_BIT=4,e.initDefaultProps=((i=e.prototype).type="path",i.strokeContainThreshold=5,i.segmentIgnoreThreshold=0,i.subPixelOptimize=!1,i.autoBatch=!1,void(i.__dirty=jn.REDARAW_BIT|lo.STYLE_CHANGED_BIT|e.SHAPE_CHANGED_BIT)),e}(lo),Ba=C({strokeFirst:!0,font:Dn,x:0,y:0,textAlign:"left",textBaseline:"top",miterLimit:2},Oa),za=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.hasStroke=function(){var t=this.style,e=t.stroke;return null!=e&&"none"!==e&&t.lineWidth>0},e.prototype.hasFill=function(){var t=this.style.fill;return null!=t&&"none"!==t},e.prototype.createStyle=function(t){return ht(Ba,t)},e.prototype.setBoundingRect=function(t){this._rect=t},e.prototype.getBoundingRect=function(){var t=this.style;if(!this._rect){var e=t.text;null!=e?e+="":e="";var n=On(e,t.font,t.textAlign,t.textBaseline);if(n.x+=t.x||0,n.y+=t.y||0,this.hasStroke()){var i=t.lineWidth;n.x-=i/2,n.y-=i/2,n.width+=i,n.height+=i}this._rect=n}return this._rect},e.initDefaultProps=void(e.prototype.dirtyRectTolerance=10),e}(lo);za.prototype.type="tspan";var Va=C({x:0,y:0},oo),Fa={style:C({x:!0,y:!0,width:!0,height:!0,sx:!0,sy:!0,sWidth:!0,sHeight:!0},ao.style)};var Ha=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.createStyle=function(t){return ht(Va,t)},e.prototype._getSize=function(t){var e=this.style,n=e[t];if(null!=n)return n;var i,r=(i=e.image)&&"string"!=typeof i&&i.width&&i.height?e.image:this.__image;if(!r)return 0;var o="width"===t?"height":"width",a=e[o];return null==a?r[t]:r[t]/r[o]*a},e.prototype.getWidth=function(){return this._getSize("width")},e.prototype.getHeight=function(){return this._getSize("height")},e.prototype.getAnimationStyleProps=function(){return Fa},e.prototype.getBoundingRect=function(){var t=this.style;return this._rect||(this._rect=new In(t.x||0,t.y||0,this.getWidth(),this.getHeight())),this._rect},e}(lo);Ha.prototype.type="image";var Ga=Math.round;function Wa(t,e,n){if(e){var i=e.x1,r=e.x2,o=e.y1,a=e.y2;t.x1=i,t.x2=r,t.y1=o,t.y2=a;var s=n&&n.lineWidth;return s?(Ga(2*i)===Ga(2*r)&&(t.x1=t.x2=Ya(i,s,!0)),Ga(2*o)===Ga(2*a)&&(t.y1=t.y2=Ya(o,s,!0)),t):t}}function Ua(t,e,n){if(e){var i=e.x,r=e.y,o=e.width,a=e.height;t.x=i,t.y=r,t.width=o,t.height=a;var s=n&&n.lineWidth;return s?(t.x=Ya(i,s,!0),t.y=Ya(r,s,!0),t.width=Math.max(Ya(i+o,s,!1)-t.x,0===o?0:1),t.height=Math.max(Ya(r+a,s,!1)-t.y,0===a?0:1),t):t}}function Ya(t,e,n){if(!e)return t;var i=Ga(2*t);return(i+Ga(e))%2==0?i/2:(i+(n?1:-1))/2}var Xa=function(){this.x=0,this.y=0,this.width=0,this.height=0},Za={},ja=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultShape=function(){return new Xa},e.prototype.buildPath=function(t,e){var n,i,r,o;if(this.subPixelOptimize){var a=Ua(Za,e,this.style);n=a.x,i=a.y,r=a.width,o=a.height,a.r=e.r,e=a}else n=e.x,i=e.y,r=e.width,o=e.height;e.r?function(t,e){var n,i,r,o,a,s=e.x,l=e.y,u=e.width,h=e.height,c=e.r;u<0&&(s+=u,u=-u),h<0&&(l+=h,h=-h),"number"==typeof c?n=i=r=o=c:c instanceof Array?1===c.length?n=i=r=o=c[0]:2===c.length?(n=r=c[0],i=o=c[1]):3===c.length?(n=c[0],i=o=c[1],r=c[2]):(n=c[0],i=c[1],r=c[2],o=c[3]):n=i=r=o=0,n+i>u&&(n*=u/(a=n+i),i*=u/a),r+o>u&&(r*=u/(a=r+o),o*=u/a),i+r>h&&(i*=h/(a=i+r),r*=h/a),n+o>h&&(n*=h/(a=n+o),o*=h/a),t.moveTo(s+n,l),t.lineTo(s+u-i,l),0!==i&&t.arc(s+u-i,l+i,i,-Math.PI/2,0),t.lineTo(s+u,l+h-r),0!==r&&t.arc(s+u-r,l+h-r,r,0,Math.PI/2),t.lineTo(s+o,l+h),0!==o&&t.arc(s+o,l+h-o,o,Math.PI/2,Math.PI),t.lineTo(s,l+n),0!==n&&t.arc(s+n,l+n,n,Math.PI,1.5*Math.PI)}(t,e):t.rect(n,i,r,o)},e.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},e}(Ea);ja.prototype.type="rect";var qa={fill:"#000"},Ka={style:C({fill:!0,stroke:!0,fillOpacity:!0,strokeOpacity:!0,lineWidth:!0,fontSize:!0,lineHeight:!0,width:!0,height:!0,textShadowColor:!0,textShadowBlur:!0,textShadowOffsetX:!0,textShadowOffsetY:!0,backgroundColor:!0,padding:!0,borderColor:!0,borderWidth:!0,borderRadius:!0},ao.style)},$a=function(t){function e(e){var n=t.call(this)||this;return n.type="text",n._children=[],n._defaultStyle=qa,n.attr(e),n}return n(e,t),e.prototype.childrenRef=function(){return this._children},e.prototype.update=function(){this.styleChanged()&&this._updateSubTexts();for(var e=0;e<this._children.length;e++){var n=this._children[e];n.zlevel=this.zlevel,n.z=this.z,n.z2=this.z2,n.culling=this.culling,n.cursor=this.cursor,n.invisible=this.invisible}var i=this.attachedTransform;if(i){i.updateTransform();var r=i.transform;r?(this.transform=this.transform||[],ce(this.transform,r)):this.transform=null}else t.prototype.update.call(this)},e.prototype.getComputedTransform=function(){return this.__hostTarget&&(this.__hostTarget.getComputedTransform(),this.__hostTarget.updateInnerText(!0)),this.attachedTransform?this.attachedTransform.getComputedTransform():t.prototype.getComputedTransform.call(this)},e.prototype._updateSubTexts=function(){var t;this._childCursor=0,ts(t=this.style),P(t.rich,ts),this.style.rich?this._updateRichTexts():this._updatePlainTexts(),this._children.length=this._childCursor,this.styleUpdated()},e.prototype.addSelfToZr=function(e){t.prototype.addSelfToZr.call(this,e);for(var n=0;n<this._children.length;n++)this._children[n].__zr=e},e.prototype.removeSelfFromZr=function(e){t.prototype.removeSelfFromZr.call(this,e);for(var n=0;n<this._children.length;n++)this._children[n].__zr=null},e.prototype.getBoundingRect=function(){if(this.styleChanged()&&this._updateSubTexts(),!this._rect){for(var t=new In(0,0,0,0),e=this._children,n=[],i=null,r=0;r<e.length;r++){var o=e[r],a=o.getBoundingRect(),s=o.getLocalTransform(n);s?(t.copy(a),t.applyTransform(s),(i=i||t.clone()).union(t)):(i=i||a.clone()).union(a)}this._rect=i||t}return this._rect},e.prototype.setDefaultTextStyle=function(t){this._defaultStyle=t||qa},e.prototype.setTextContent=function(t){throw new Error("Can't attach text on another text")},e.prototype._mergeStyle=function(t,e){if(!e)return t;var n=e.rich,i=t.rich||n&&{};return T(t,e),n&&i?(this._mergeRich(i,n),t.rich=i):i&&(t.rich=i),t},e.prototype._mergeRich=function(t,e){for(var n=E(e),i=0;i<n.length;i++){var r=n[i];t[r]=t[r]||{},T(t[r],e[r])}},e.prototype.getAnimationStyleProps=function(){return Ka},e.prototype._getOrCreateChild=function(t){var e=this._children[this._childCursor];return e&&e instanceof t||(e=new t),this._children[this._childCursor++]=e,e.__zr=this.__zr,e.parent=this,e},e.prototype._updatePlainTexts=function(){var t=this.style,e=t.font||Dn,n=t.padding,i=function(t,e){null!=t&&(t+="");var n,i=e.overflow,r=e.padding,o=e.font,a="truncate"===i,s=En(o),l=Q(e.lineHeight,s),u="truncate"===e.lineOverflow,h=e.width,c=(n=null!=h&&"break"===i||"breakAll"===i?t?io(t,e.font,h,"breakAll"===i,0).lines:[]:t?t.split("\n"):[]).length*l,p=Q(e.height,c);if(c>p&&u){var d=Math.floor(p/l);n=n.slice(0,d)}var f=p,g=h;if(r&&(f+=r[0]+r[2],null!=g&&(g+=r[1]+r[3])),t&&a&&null!=g)for(var y=jr(h,o,e.ellipsis,{minChar:e.truncateMinChar,placeholder:e.placeholder}),v=0;v<n.length;v++)n[v]=qr(n[v],y);if(null==h){var m=0;for(v=0;v<n.length;v++)m=Math.max(Ln(n[v],o),m);h=m}return{lines:n,height:p,outerHeight:f,lineHeight:l,calculatedLineHeight:s,contentHeight:c,width:h}}(is(t),t),r=rs(t),o=!!t.backgroundColor,a=i.outerHeight,s=i.lines,l=i.lineHeight,u=this._defaultStyle,h=t.x||0,c=t.y||0,p=t.align||u.align||"left",d=t.verticalAlign||u.verticalAlign||"top",f=h,g=Nn(c,i.contentHeight,d);if(r||n){var y=i.width;n&&(y+=n[1]+n[3]);var v=Rn(h,y,p),m=Nn(c,a,d);r&&this._renderBackground(t,t,v,m,y,a)}g+=l/2,n&&(f=ns(h,p,n),"top"===d?g+=n[0]:"bottom"===d&&(g-=n[2]));for(var _,x=0,b=!1,w=(null==(_="fill"in t?t.fill:(b=!0,u.fill))||"none"===_?null:_.image||_.colorStops?"#000":_),S=(es("stroke"in t?t.stroke:o||u.autoStroke&&!b?null:(x=2,u.stroke))),M=t.textShadowBlur>0,T=null!=t.width&&("truncate"===t.overflow||"break"===t.overflow||"breakAll"===t.overflow),C=i.calculatedLineHeight,I=0;I<s.length;I++){var A=this._getOrCreateChild(za),D=A.createStyle();A.useStyle(D),D.text=s[I],D.x=f,D.y=g,p&&(D.textAlign=p),D.textBaseline="middle",D.opacity=t.opacity,D.strokeFirst=!0,M&&(D.shadowBlur=t.textShadowBlur||0,D.shadowColor=t.textShadowColor||"transparent",D.shadowOffsetX=t.textShadowOffsetX||0,D.shadowOffsetY=t.textShadowOffsetY||0),S&&(D.stroke=S,D.lineWidth=t.lineWidth||x,D.lineDash=t.lineDash,D.lineDashOffset=t.lineDashOffset||0),w&&(D.fill=w),D.font=e,g+=l,T&&A.setBoundingRect(new In(Rn(D.x,t.width,D.textAlign),Nn(D.y,C,D.textBaseline),t.width,C))}},e.prototype._updateRichTexts=function(){var t=this.style,e=function(t,e){var n=new Qr;if(null!=t&&(t+=""),!t)return n;for(var i,r=e.width,o=e.height,a=e.overflow,s="break"!==a&&"breakAll"!==a||null==r?null:{width:r,accumWidth:0,breakAll:"breakAll"===a},l=Xr.lastIndex=0;null!=(i=Xr.exec(t));){var u=i.index;u>l&&to(n,t.substring(l,u),e,s),to(n,i[2],e,s,i[1]),l=Xr.lastIndex}l<t.length&&to(n,t.substring(l,t.length),e,s);var h=[],c=0,p=0,d=e.padding,f="truncate"===a,g="truncate"===e.lineOverflow;function y(t,e,n){t.width=e,t.lineHeight=n,c+=n,p=Math.max(p,e)}t:for(var v=0;v<n.lines.length;v++){for(var m=n.lines[v],_=0,x=0,b=0;b<m.tokens.length;b++){var w=(P=m.tokens[b]).styleName&&e.rich[P.styleName]||{},S=P.textPadding=w.padding,M=S?S[1]+S[3]:0,T=P.font=w.font||e.font;P.contentHeight=En(T);var C=Q(w.height,P.contentHeight);if(P.innerHeight=C,S&&(C+=S[0]+S[2]),P.height=C,P.lineHeight=tt(w.lineHeight,e.lineHeight,C),P.align=w&&w.align||e.align,P.verticalAlign=w&&w.verticalAlign||"middle",g&&null!=o&&c+P.lineHeight>o){b>0?(m.tokens=m.tokens.slice(0,b),y(m,x,_),n.lines=n.lines.slice(0,v+1)):n.lines=n.lines.slice(0,v);break t}var I=w.width,A=null==I||"auto"===I;if("string"==typeof I&&"%"===I.charAt(I.length-1))P.percentWidth=I,h.push(P),P.contentWidth=Ln(P.text,T);else{if(A){var D=w.backgroundColor,k=D&&D.image;k&&Yr(k=Gr(k))&&(P.width=Math.max(P.width,k.width*C/k.height))}var L=f&&null!=r?r-x:null;null!=L&&L<P.width?!A||L<M?(P.text="",P.width=P.contentWidth=0):(P.text=Zr(P.text,L-M,T,e.ellipsis,{minChar:e.truncateMinChar}),P.width=P.contentWidth=Ln(P.text,T)):P.contentWidth=Ln(P.text,T)}P.width+=M,x+=P.width,w&&(_=Math.max(_,P.lineHeight))}y(m,x,_)}for(n.outerWidth=n.width=Q(r,p),n.outerHeight=n.height=Q(o,c),n.contentHeight=c,n.contentWidth=p,d&&(n.outerWidth+=d[1]+d[3],n.outerHeight+=d[0]+d[2]),v=0;v<h.length;v++){var P,O=(P=h[v]).percentWidth;P.width=parseInt(O,10)/100*n.width}return n}(is(t),t),n=e.width,i=e.outerWidth,r=e.outerHeight,o=t.padding,a=t.x||0,s=t.y||0,l=this._defaultStyle,u=t.align||l.align,h=t.verticalAlign||l.verticalAlign,c=Rn(a,i,u),p=Nn(s,r,h),d=c,f=p;o&&(d+=o[3],f+=o[0]);var g=d+n;rs(t)&&this._renderBackground(t,t,c,p,i,r);for(var y=!!t.backgroundColor,v=0;v<e.lines.length;v++){for(var m=e.lines[v],_=m.tokens,x=_.length,b=m.lineHeight,w=m.width,S=0,M=d,T=g,C=x-1,I=void 0;S<x&&(!(I=_[S]).align||"left"===I.align);)this._placeToken(I,t,b,f,M,"left",y),w-=I.width,M+=I.width,S++;for(;C>=0&&"right"===(I=_[C]).align;)this._placeToken(I,t,b,f,T,"right",y),w-=I.width,T-=I.width,C--;for(M+=(n-(M-d)-(g-T)-w)/2;S<=C;)I=_[S],this._placeToken(I,t,b,f,M+I.width/2,"center",y),M+=I.width,S++;f+=b}},e.prototype._placeToken=function(t,e,n,i,r,o,a){var s=e.rich[t.styleName]||{};s.text=t.text;var l=t.verticalAlign,u=i+n/2;"top"===l?u=i+t.height/2:"bottom"===l&&(u=i+n-t.height/2),!t.isLineHolder&&rs(s)&&this._renderBackground(s,e,"right"===o?r-t.width:"center"===o?r-t.width/2:r,u-t.height/2,t.width,t.height);var h=!!s.backgroundColor,c=t.textPadding;c&&(r=ns(r,o,c),u-=t.height/2-c[0]-t.innerHeight/2);var p=this._getOrCreateChild(za),d=p.createStyle();p.useStyle(d);var f=this._defaultStyle,g=!1,y=0,v=es("fill"in s?s.fill:"fill"in e?e.fill:(g=!0,f.fill)),m=es("stroke"in s?s.stroke:"stroke"in e?e.stroke:h||a||f.autoStroke&&!g?null:(y=2,f.stroke)),_=s.textShadowBlur>0||e.textShadowBlur>0;d.text=t.text,d.x=r,d.y=u,_&&(d.shadowBlur=s.textShadowBlur||e.textShadowBlur||0,d.shadowColor=s.textShadowColor||e.textShadowColor||"transparent",d.shadowOffsetX=s.textShadowOffsetX||e.textShadowOffsetX||0,d.shadowOffsetY=s.textShadowOffsetY||e.textShadowOffsetY||0),d.textAlign=o,d.textBaseline="middle",d.font=t.font||Dn,d.opacity=tt(s.opacity,e.opacity,1),m&&(d.lineWidth=tt(s.lineWidth,e.lineWidth,y),d.lineDash=Q(s.lineDash,e.lineDash),d.lineDashOffset=e.lineDashOffset||0,d.stroke=m),v&&(d.fill=v);var x=t.contentWidth,b=t.contentHeight;p.setBoundingRect(new In(Rn(d.x,x,d.textAlign),Nn(d.y,b,d.textBaseline),x,b))},e.prototype._renderBackground=function(t,e,n,i,r,o){var a,s,l,u=t.backgroundColor,h=t.borderWidth,c=t.borderColor,p=H(u),d=t.borderRadius,f=this;if(p||h&&c){(a=this._getOrCreateChild(ja)).useStyle(a.createStyle()),a.style.fill=null;var g=a.shape;g.x=n,g.y=i,g.width=r,g.height=o,g.r=d,a.dirtyShape()}if(p)(l=a.style).fill=u||null,l.fillOpacity=Q(t.fillOpacity,1);else if(u&&u.image){(s=this._getOrCreateChild(Ha)).onload=function(){f.dirtyStyle()};var y=s.style;y.image=u.image,y.x=n,y.y=i,y.width=r,y.height=o}h&&c&&((l=a.style).lineWidth=h,l.stroke=c,l.strokeOpacity=Q(t.strokeOpacity,1),l.lineDash=t.borderDash,l.lineDashOffset=t.borderDashOffset||0,a.strokeContainThreshold=0,a.hasFill()&&a.hasStroke()&&(l.strokeFirst=!0,l.lineWidth*=2));var v=(a||s).style;v.shadowBlur=t.shadowBlur||0,v.shadowColor=t.shadowColor||"transparent",v.shadowOffsetX=t.shadowOffsetX||0,v.shadowOffsetY=t.shadowOffsetY||0,v.opacity=tt(t.opacity,e.opacity,1)},e.makeFont=function(t){var e="";if(t.fontSize||t.fontFamily||t.fontWeight){var n="";n="string"!=typeof t.fontSize||-1===t.fontSize.indexOf("px")&&-1===t.fontSize.indexOf("rem")&&-1===t.fontSize.indexOf("em")?isNaN(+t.fontSize)?"12px":t.fontSize+"px":t.fontSize,e=[t.fontStyle,t.fontWeight,n,t.fontFamily||"sans-serif"].join(" ")}return e&&rt(e)||t.textFont||t.font},e}(lo),Ja={left:!0,right:1,center:1},Qa={top:1,bottom:1,middle:1};function ts(t){if(t){t.font=$a.makeFont(t);var e=t.align;"middle"===e&&(e="center"),t.align=null==e||Ja[e]?e:"left";var n=t.verticalAlign;"center"===n&&(n="middle"),t.verticalAlign=null==n||Qa[n]?n:"top",t.padding&&(t.padding=nt(t.padding))}}function es(t,e){return null==t||e<=0||"transparent"===t||"none"===t?null:t.image||t.colorStops?"#000":t}function ns(t,e,n){return"right"===e?t-n[1]:"center"===e?t+n[3]/2-n[1]/2:t+n[3]}function is(t){var e=t.text;return null!=e&&(e+=""),e}function rs(t){return!!(t.backgroundColor||t.borderWidth&&t.borderColor)}var os=xr(),as=1,ss={},ls=xr(),us=["emphasis","blur","select"],hs=["normal","emphasis","blur","select"],cs="highlight",ps="downplay",ds="select",fs="unselect",gs="toggleSelect";function ys(t){return null!=t&&"none"!==t}var vs=new ke(100);function ms(t){if("string"!=typeof t)return t;var e=vs.get(t);return e||(e=Ye(t,-.1),vs.put(t,e)),e}function _s(t,e,n){t.onHoverStateChange&&(t.hoverState||0)!==n&&t.onHoverStateChange(e),t.hoverState=n}function xs(t){_s(t,"emphasis",2)}function bs(t){2===t.hoverState&&_s(t,"normal",0)}function ws(t){_s(t,"blur",1)}function Ss(t){1===t.hoverState&&_s(t,"normal",0)}function Ms(t){t.selected=!0}function Ts(t){t.selected=!1}function Cs(t,e,n){e(t,n)}function Is(t,e,n){Cs(t,e,n),t.isGroup&&t.traverse((function(t){Cs(t,e,n)}))}function As(t,e){switch(e){case"emphasis":t.hoverState=2;break;case"normal":t.hoverState=0;break;case"blur":t.hoverState=1;break;case"select":t.selected=!0}}function Ds(t,e){var n=this.states[t];if(this.style){if("emphasis"===t)return function(t,e,n,i){var r=n&&A(n,"select")>=0,o=!1;if(t instanceof Ea){var a=ls(t),s=r&&a.selectFill||a.normalFill,l=r&&a.selectStroke||a.normalStroke;if(ys(s)||ys(l)){var u=(i=i||{}).style||{};!ys(u.fill)&&ys(s)?(o=!0,i=T({},i),(u=T({},u)).fill=ms(s)):!ys(u.stroke)&&ys(l)&&(o||(i=T({},i),u=T({},u)),u.stroke=ms(l)),i.style=u}}if(i&&null==i.z2){o||(i=T({},i));var h=t.z2EmphasisLift;i.z2=t.z2+(null!=h?h:10)}return i}(this,0,e,n);if("blur"===t)return function(t,e,n){var i=A(t.currentStates,e)>=0,r=t.style.opacity,o=i?null:function(t,e,n,i){for(var r=t.style,o={},a=0;a<e.length;a++){var s=e[a],l=r[s];o[s]=null==l?i&&i[s]:l}for(a=0;a<t.animators.length;a++){var u=t.animators[a];u.__fromStateTransition&&u.__fromStateTransition.indexOf(n)<0&&"style"===u.targetName&&u.saveFinalToTarget(o,e)}return o}(t,["opacity"],e,{opacity:1}),a=(n=n||{}).style||{};return null==a.opacity&&(n=T({},n),a=T({opacity:i?r:.1*o.opacity},a),n.style=a),n}(this,t,n);if("select"===t)return function(t,e,n){if(n&&null==n.z2){n=T({},n);var i=t.z2SelectLift;n.z2=t.z2+(null!=i?i:9)}return n}(this,0,n)}return n}function ks(t){t.stateProxy=Ds;var e=t.getTextContent(),n=t.getTextGuideLine();e&&(e.stateProxy=Ds),n&&(n.stateProxy=Ds)}function Ls(t,e){t.__highByOuter|=1<<(e||0),Is(t,xs)}function Ps(t,e){!(t.__highByOuter&=~(1<<(e||0)))&&Is(t,bs)}function Os(t){Is(t,ws)}function Rs(t){Is(t,Ss)}function Ns(t){Is(t,Ms)}function Es(t){Is(t,Ts)}function Bs(t,e){return t.__highDownSilentOnTouch&&e.zrByTouch}function zs(t,e,n,i,r){var o=i.getModel();function a(t,e){for(var n=0;n<e.length;n++){var i=t.getItemGraphicEl(e[n]);i&&Rs(i)}}if(n=n||"coordinateSystem",r){if(null!=t&&e&&"none"!==e){var s=o.getSeriesByIndex(t),l=s.coordinateSystem;l&&l.master&&(l=l.master);var u=[];o.eachSeries((function(t){var r=s===t,o=t.coordinateSystem;if(o&&o.master&&(o=o.master),!("series"===n&&!r||"coordinateSystem"===n&&!(o&&l?o===l:r)||"series"===e&&r)){if(i.getViewOfSeriesModel(t).group.traverse((function(t){ws(t)})),L(e))a(t.getData(),e);else if(U(e))for(var h=E(e),c=0;c<h.length;c++)a(t.getData(h[c]),e[h[c]]);u.push(t)}})),o.eachComponent((function(t,e){if("series"!==t){var n=i.getViewOfComponentModel(e);n&&n.blurSeries&&n.blurSeries(u,o)}}))}}else!function(t){t.getModel().eachComponent((function(e,n){("series"===e?t.getViewOfSeriesModel(n):t.getViewOfComponentModel(n)).group.traverse((function(t){Ss(t)}))}))}(i)}function Vs(t){P(t.getAllData(),(function(e){var n=e.data,i=e.type;n.eachItemGraphicEl((function(e,n){t.isSelected(n,i)?Ns(e):Es(e)}))}))}function Fs(t){var e=[];return t.eachSeries((function(t){P(t.getAllData(),(function(n){n.data;var i=n.type,r=t.getSelectedDataIndices();if(r.length>0){var o={dataIndex:r,seriesIndex:t.seriesIndex};null!=i&&(o.dataType=i),e.push(o)}}))})),e}function Hs(t,e,n){!function(t,e){var n=!1===e,i=t;t.highDownSilentOnTouch&&(i.__highDownSilentOnTouch=t.highDownSilentOnTouch);n&&!i.__highDownDispatcher||(i.__highByOuter=i.__highByOuter||0,i.__highDownDispatcher=!n)}(t,!0),Is(t,ks),function(t,e,n){var i=os(t);null!=e?(i.focus=e,i.blurScope=n):i.focus&&(i.focus=null)}(t,e,n)}var Gs=["emphasis","blur","select"],Ws={itemStyle:"getItemStyle",lineStyle:"getLineStyle",areaStyle:"getAreaStyle"};function Us(t,e,n,i){n=n||"itemStyle";for(var r=0;r<Gs.length;r++){var o=Gs[r],a=e.getModel([o,n]);t.ensureState(o).style=i?i(a):a[Ws[n]]()}}function Ys(t){return!(!t||!t.__highDownDispatcher)}function Xs(t){var e=t.type;return e===ds||e===fs||e===gs}function Zs(t){var e=t.type;return e===cs||e===ps}var js=ya.CMD,qs=[[],[],[]],Ks=Math.sqrt,$s=Math.atan2;var Js=Math.sqrt,Qs=Math.sin,tl=Math.cos,el=Math.PI;function nl(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function il(t,e){return(t[0]*e[0]+t[1]*e[1])/(nl(t)*nl(e))}function rl(t,e){return(t[0]*e[1]<t[1]*e[0]?-1:1)*Math.acos(il(t,e))}function ol(t,e,n,i,r,o,a,s,l,u,h){var c=l*(el/180),p=tl(c)*(t-n)/2+Qs(c)*(e-i)/2,d=-1*Qs(c)*(t-n)/2+tl(c)*(e-i)/2,f=p*p/(a*a)+d*d/(s*s);f>1&&(a*=Js(f),s*=Js(f));var g=(r===o?-1:1)*Js((a*a*(s*s)-a*a*(d*d)-s*s*(p*p))/(a*a*(d*d)+s*s*(p*p)))||0,y=g*a*d/s,v=g*-s*p/a,m=(t+n)/2+tl(c)*y-Qs(c)*v,_=(e+i)/2+Qs(c)*y+tl(c)*v,x=rl([1,0],[(p-y)/a,(d-v)/s]),b=[(p-y)/a,(d-v)/s],w=[(-1*p-y)/a,(-1*d-v)/s],S=rl(b,w);if(il(b,w)<=-1&&(S=el),il(b,w)>=1&&(S=0),S<0){var M=Math.round(S/el*1e6)/1e6;S=2*el+M%2*el}h.addData(u,m,_,a,s,x,S,c,o)}var al=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/gi,sl=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;var ll=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.applyTransform=function(t){},e}(Ea);function ul(t){return null!=t.setData}function hl(t,e){var n=function(t){var e=new ya;if(!t)return e;var n,i=0,r=0,o=i,a=r,s=ya.CMD,l=t.match(al);if(!l)return e;for(var u=0;u<l.length;u++){for(var h=l[u],c=h.charAt(0),p=void 0,d=h.match(sl)||[],f=d.length,g=0;g<f;g++)d[g]=parseFloat(d[g]);for(var y=0;y<f;){var v=void 0,m=void 0,_=void 0,x=void 0,b=void 0,w=void 0,S=void 0,M=i,T=r,C=void 0,I=void 0;switch(c){case"l":i+=d[y++],r+=d[y++],p=s.L,e.addData(p,i,r);break;case"L":i=d[y++],r=d[y++],p=s.L,e.addData(p,i,r);break;case"m":i+=d[y++],r+=d[y++],p=s.M,e.addData(p,i,r),o=i,a=r,c="l";break;case"M":i=d[y++],r=d[y++],p=s.M,e.addData(p,i,r),o=i,a=r,c="L";break;case"h":i+=d[y++],p=s.L,e.addData(p,i,r);break;case"H":i=d[y++],p=s.L,e.addData(p,i,r);break;case"v":r+=d[y++],p=s.L,e.addData(p,i,r);break;case"V":r=d[y++],p=s.L,e.addData(p,i,r);break;case"C":p=s.C,e.addData(p,d[y++],d[y++],d[y++],d[y++],d[y++],d[y++]),i=d[y-2],r=d[y-1];break;case"c":p=s.C,e.addData(p,d[y++]+i,d[y++]+r,d[y++]+i,d[y++]+r,d[y++]+i,d[y++]+r),i+=d[y-2],r+=d[y-1];break;case"S":v=i,m=r,C=e.len(),I=e.data,n===s.C&&(v+=i-I[C-4],m+=r-I[C-3]),p=s.C,M=d[y++],T=d[y++],i=d[y++],r=d[y++],e.addData(p,v,m,M,T,i,r);break;case"s":v=i,m=r,C=e.len(),I=e.data,n===s.C&&(v+=i-I[C-4],m+=r-I[C-3]),p=s.C,M=i+d[y++],T=r+d[y++],i+=d[y++],r+=d[y++],e.addData(p,v,m,M,T,i,r);break;case"Q":M=d[y++],T=d[y++],i=d[y++],r=d[y++],p=s.Q,e.addData(p,M,T,i,r);break;case"q":M=d[y++]+i,T=d[y++]+r,i+=d[y++],r+=d[y++],p=s.Q,e.addData(p,M,T,i,r);break;case"T":v=i,m=r,C=e.len(),I=e.data,n===s.Q&&(v+=i-I[C-4],m+=r-I[C-3]),i=d[y++],r=d[y++],p=s.Q,e.addData(p,v,m,i,r);break;case"t":v=i,m=r,C=e.len(),I=e.data,n===s.Q&&(v+=i-I[C-4],m+=r-I[C-3]),i+=d[y++],r+=d[y++],p=s.Q,e.addData(p,v,m,i,r);break;case"A":_=d[y++],x=d[y++],b=d[y++],w=d[y++],S=d[y++],ol(M=i,T=r,i=d[y++],r=d[y++],w,S,_,x,b,p=s.A,e);break;case"a":_=d[y++],x=d[y++],b=d[y++],w=d[y++],S=d[y++],ol(M=i,T=r,i+=d[y++],r+=d[y++],w,S,_,x,b,p=s.A,e)}}"z"!==c&&"Z"!==c||(p=s.Z,e.addData(p),i=o,r=a),n=p}return e.toStatic(),e}(t),i=T({},e);return i.buildPath=function(t){if(ul(t)){t.setData(n.data),(e=t.getContext())&&t.rebuildPath(e,1)}else{var e=t;n.rebuildPath(e,1)}},i.applyTransform=function(t){!function(t,e){var n,i,r,o,a,s,l=t.data,u=t.len(),h=js.M,c=js.C,p=js.L,d=js.R,f=js.A,g=js.Q;for(r=0,o=0;r<u;){switch(n=l[r++],o=r,i=0,n){case h:case p:i=1;break;case c:i=3;break;case g:i=2;break;case f:var y=e[4],v=e[5],m=Ks(e[0]*e[0]+e[1]*e[1]),_=Ks(e[2]*e[2]+e[3]*e[3]),x=$s(-e[1]/_,e[0]/m);l[r]*=m,l[r++]+=y,l[r]*=_,l[r++]+=v,l[r++]*=m,l[r++]*=_,l[r++]+=x,l[r++]+=x,o=r+=2;break;case d:s[0]=l[r++],s[1]=l[r++],Dt(s,s,e),l[o++]=s[0],l[o++]=s[1],s[0]+=l[r++],s[1]+=l[r++],Dt(s,s,e),l[o++]=s[0],l[o++]=s[1]}for(a=0;a<i;a++){var b=qs[a];b[0]=l[r++],b[1]=l[r++],Dt(b,b,e),l[o++]=b[0],l[o++]=b[1]}}t.increaseVersion()}(n,t),this.dirtyShape()},i}var cl=function(){this.cx=0,this.cy=0,this.r=0},pl=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultShape=function(){return new cl},e.prototype.buildPath=function(t,e,n){n&&t.moveTo(e.cx+e.r,e.cy),t.arc(e.cx,e.cy,e.r,0,2*Math.PI)},e}(Ea);pl.prototype.type="circle";var dl=function(){this.cx=0,this.cy=0,this.rx=0,this.ry=0},fl=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultShape=function(){return new dl},e.prototype.buildPath=function(t,e){var n=.5522848,i=e.cx,r=e.cy,o=e.rx,a=e.ry,s=o*n,l=a*n;t.moveTo(i-o,r),t.bezierCurveTo(i-o,r-l,i-s,r-a,i,r-a),t.bezierCurveTo(i+s,r-a,i+o,r-l,i+o,r),t.bezierCurveTo(i+o,r+l,i+s,r+a,i,r+a),t.bezierCurveTo(i-s,r+a,i-o,r+l,i-o,r),t.closePath()},e}(Ea);fl.prototype.type="ellipse";var gl=Math.PI,yl=2*gl,vl=Math.sin,ml=Math.cos,_l=Math.acos,xl=Math.atan2,bl=Math.abs,wl=Math.sqrt,Sl=Math.max,Ml=Math.min,Tl=1e-4;function Cl(t,e,n,i,r,o,a){var s=t-n,l=e-i,u=(a?o:-o)/wl(s*s+l*l),h=u*l,c=-u*s,p=t+h,d=e+c,f=n+h,g=i+c,y=(p+f)/2,v=(d+g)/2,m=f-p,_=g-d,x=m*m+_*_,b=r-o,w=p*g-f*d,S=(_<0?-1:1)*wl(Sl(0,b*b*x-w*w)),M=(w*_-m*S)/x,T=(-w*m-_*S)/x,C=(w*_+m*S)/x,I=(-w*m+_*S)/x,A=M-y,D=T-v,k=C-y,L=I-v;return A*A+D*D>k*k+L*L&&(M=C,T=I),{cx:M,cy:T,x01:-h,y01:-c,x11:M*(r/b-1),y11:T*(r/b-1)}}function Il(t,e){var n=Sl(e.r,0),i=Sl(e.r0||0,0),r=n>0;if(r||i>0){if(r||(n=i,i=0),i>n){var o=n;n=i,i=o}var a=!!e.clockwise,s=e.startAngle,l=e.endAngle,u=[s,l];ga(u,!a);var h=bl(u[0]-u[1]),c=e.cx,p=e.cy,d=e.cornerRadius||0,f=e.innerCornerRadius||0;if(n>Tl)if(h>yl-Tl)t.moveTo(c+n*ml(s),p+n*vl(s)),t.arc(c,p,n,s,l,!a),i>Tl&&(t.moveTo(c+i*ml(l),p+i*vl(l)),t.arc(c,p,i,l,s,a));else{var g=bl(n-i)/2,y=Ml(g,d),v=Ml(g,f),m=v,_=y,x=n*ml(s),b=n*vl(s),w=i*ml(l),S=i*vl(l),M=void 0,T=void 0,C=void 0,I=void 0;if((y>Tl||v>Tl)&&(M=n*ml(l),T=n*vl(l),C=i*ml(s),I=i*vl(s),h<gl)){var A=function(t,e,n,i,r,o,a,s){var l=n-t,u=i-e,h=a-r,c=s-o,p=c*l-h*u;if(!(p*p<Tl))return[t+(p=(h*(e-o)-c*(t-r))/p)*l,e+p*u]}(x,b,C,I,M,T,w,S);if(A){var D=x-A[0],k=b-A[1],L=M-A[0],P=T-A[1],O=1/vl(_l((D*L+k*P)/(wl(D*D+k*k)*wl(L*L+P*P)))/2),R=wl(A[0]*A[0]+A[1]*A[1]);m=Ml(v,(i-R)/(O-1)),_=Ml(y,(n-R)/(O+1))}}if(h>Tl)if(_>Tl){var N=Cl(C,I,x,b,n,_,a),E=Cl(M,T,w,S,n,_,a);t.moveTo(c+N.cx+N.x01,p+N.cy+N.y01),_<y?t.arc(c+N.cx,p+N.cy,_,xl(N.y01,N.x01),xl(E.y01,E.x01),!a):(t.arc(c+N.cx,p+N.cy,_,xl(N.y01,N.x01),xl(N.y11,N.x11),!a),t.arc(c,p,n,xl(N.cy+N.y11,N.cx+N.x11),xl(E.cy+E.y11,E.cx+E.x11),!a),t.arc(c+E.cx,p+E.cy,_,xl(E.y11,E.x11),xl(E.y01,E.x01),!a))}else t.moveTo(c+x,p+b),t.arc(c,p,n,s,l,!a);else t.moveTo(c+x,p+b);if(i>Tl&&h>Tl)if(m>Tl){N=Cl(w,S,M,T,i,-m,a),E=Cl(x,b,C,I,i,-m,a);t.lineTo(c+N.cx+N.x01,p+N.cy+N.y01),m<v?t.arc(c+N.cx,p+N.cy,m,xl(N.y01,N.x01),xl(E.y01,E.x01),!a):(t.arc(c+N.cx,p+N.cy,m,xl(N.y01,N.x01),xl(N.y11,N.x11),!a),t.arc(c,p,i,xl(N.cy+N.y11,N.cx+N.x11),xl(E.cy+E.y11,E.cx+E.x11),a),t.arc(c+E.cx,p+E.cy,m,xl(E.y11,E.x11),xl(E.y01,E.x01),!a))}else t.lineTo(c+w,p+S),t.arc(c,p,i,l,s,a);else t.lineTo(c+w,p+S)}else t.moveTo(c,p);t.closePath()}}var Al=function(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0,this.cornerRadius=0,this.innerCornerRadius=0},Dl=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultShape=function(){return new Al},e.prototype.buildPath=function(t,e){Il(t,e)},e.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},e}(Ea);Dl.prototype.type="sector";var kl=function(){this.cx=0,this.cy=0,this.r=0,this.r0=0},Ll=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultShape=function(){return new kl},e.prototype.buildPath=function(t,e){var n=e.cx,i=e.cy,r=2*Math.PI;t.moveTo(n+e.r,i),t.arc(n,i,e.r,0,r,!1),t.moveTo(n+e.r0,i),t.arc(n,i,e.r0,0,r,!0)},e}(Ea);function Pl(t,e,n,i,r,o,a){var s=.5*(n-t),l=.5*(i-e);return(2*(e-n)+s+l)*a+(-3*(e-n)-2*s-l)*o+s*r+e}function Ol(t,e,n){var i=e.smooth,r=e.points;if(r&&r.length>=2){if(i&&"spline"!==i){var o=function(t,e,n,i){var r,o,a,s,l=[],u=[],h=[],c=[];if(i){a=[1/0,1/0],s=[-1/0,-1/0];for(var p=0,d=t.length;p<d;p++)kt(a,a,t[p]),Lt(s,s,t[p]);kt(a,a,i[0]),Lt(s,s,i[1])}for(p=0,d=t.length;p<d;p++){var f=t[p];if(n)r=t[p?p-1:d-1],o=t[(p+1)%d];else{if(0===p||p===d-1){l.push(gt(t[p]));continue}r=t[p-1],o=t[p+1]}vt(u,o,r),wt(u,u,e);var g=Mt(f,r),y=Mt(f,o),v=g+y;0!==v&&(g/=v,y/=v),wt(h,u,-g),wt(c,u,y);var m=yt([],f,h),_=yt([],f,c);i&&(Lt(m,m,a),kt(m,m,s),Lt(_,_,a),kt(_,_,s)),l.push(m),l.push(_)}return n&&l.push(l.shift()),l}(r,i,n,e.smoothConstraint);t.moveTo(r[0][0],r[0][1]);for(var a=r.length,s=0;s<(n?a:a-1);s++){var l=o[2*s],u=o[2*s+1],h=r[(s+1)%a];t.bezierCurveTo(l[0],l[1],u[0],u[1],h[0],h[1])}}else{"spline"===i&&(r=function(t,e){for(var n=t.length,i=[],r=0,o=1;o<n;o++)r+=Mt(t[o-1],t[o]);var a=r/2;for(a=a<n?n:a,o=0;o<a;o++){var s=o/(a-1)*(e?n:n-1),l=Math.floor(s),u=s-l,h=void 0,c=t[l%n],p=void 0,d=void 0;e?(h=t[(l-1+n)%n],p=t[(l+1)%n],d=t[(l+2)%n]):(h=t[0===l?l:l-1],p=t[l>n-2?n-1:l+1],d=t[l>n-3?n-1:l+2]);var f=u*u,g=u*f;i.push([Pl(h[0],c[0],p[0],d[0],u,f,g),Pl(h[1],c[1],p[1],d[1],u,f,g)])}return i}(r,n)),t.moveTo(r[0][0],r[0][1]);s=1;for(var c=r.length;s<c;s++)t.lineTo(r[s][0],r[s][1])}n&&t.closePath()}}Ll.prototype.type="ring";var Rl=function(){this.points=null,this.smooth=0,this.smoothConstraint=null},Nl=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultShape=function(){return new Rl},e.prototype.buildPath=function(t,e){Ol(t,e,!0)},e}(Ea);Nl.prototype.type="polygon";var El=function(){this.points=null,this.percent=1,this.smooth=0,this.smoothConstraint=null},Bl=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new El},e.prototype.buildPath=function(t,e){Ol(t,e,!1)},e}(Ea);Bl.prototype.type="polyline";var zl={},Vl=function(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.percent=1},Fl=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new Vl},e.prototype.buildPath=function(t,e){var n,i,r,o;if(this.subPixelOptimize){var a=Wa(zl,e,this.style);n=a.x1,i=a.y1,r=a.x2,o=a.y2}else n=e.x1,i=e.y1,r=e.x2,o=e.y2;var s=e.percent;0!==s&&(t.moveTo(n,i),s<1&&(r=n*(1-s)+r*s,o=i*(1-s)+o*s),t.lineTo(r,o))},e.prototype.pointAt=function(t){var e=this.shape;return[e.x1*(1-t)+e.x2*t,e.y1*(1-t)+e.y2*t]},e}(Ea);Fl.prototype.type="line";var Hl=[],Gl=function(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.cpx1=0,this.cpy1=0,this.percent=1};function Wl(t,e,n){var i=t.cpx2,r=t.cpy2;return null===i||null===r?[(n?Mo:So)(t.x1,t.cpx1,t.cpx2,t.x2,e),(n?Mo:So)(t.y1,t.cpy1,t.cpy2,t.y2,e)]:[(n?Lo:ko)(t.x1,t.cpx1,t.x2,e),(n?Lo:ko)(t.y1,t.cpy1,t.y2,e)]}var Ul=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new Gl},e.prototype.buildPath=function(t,e){var n=e.x1,i=e.y1,r=e.x2,o=e.y2,a=e.cpx1,s=e.cpy1,l=e.cpx2,u=e.cpy2,h=e.percent;0!==h&&(t.moveTo(n,i),null==l||null==u?(h<1&&(Oo(n,a,r,h,Hl),a=Hl[1],r=Hl[2],Oo(i,s,o,h,Hl),s=Hl[1],o=Hl[2]),t.quadraticCurveTo(a,s,r,o)):(h<1&&(Io(n,a,l,r,h,Hl),a=Hl[1],l=Hl[2],r=Hl[3],Io(i,s,u,o,h,Hl),s=Hl[1],u=Hl[2],o=Hl[3]),t.bezierCurveTo(a,s,l,u,r,o)))},e.prototype.pointAt=function(t){return Wl(this.shape,t,!1)},e.prototype.tangentAt=function(t){var e=Wl(this.shape,t,!0);return St(e,e)},e}(Ea);Ul.prototype.type="bezier-curve";var Yl=function(){this.cx=0,this.cy=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0},Xl=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new Yl},e.prototype.buildPath=function(t,e){var n=e.cx,i=e.cy,r=Math.max(e.r,0),o=e.startAngle,a=e.endAngle,s=e.clockwise,l=Math.cos(o),u=Math.sin(o);t.moveTo(l*r+n,u*r+i),t.arc(n,i,r,o,a,!s)},e}(Ea);Xl.prototype.type="arc";var Zl=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="compound",e}return n(e,t),e.prototype._updatePathDirty=function(){for(var t=this.shape.paths,e=this.shapeChanged(),n=0;n<t.length;n++)e=e||t[n].shapeChanged();e&&this.dirtyShape()},e.prototype.beforeBrush=function(){this._updatePathDirty();for(var t=this.shape.paths||[],e=this.getGlobalScale(),n=0;n<t.length;n++)t[n].path||t[n].createPathProxy(),t[n].path.setScale(e[0],e[1],t[n].segmentIgnoreThreshold)},e.prototype.buildPath=function(t,e){for(var n=e.paths||[],i=0;i<n.length;i++)n[i].buildPath(t,n[i].shape,!0)},e.prototype.afterBrush=function(){for(var t=this.shape.paths||[],e=0;e<t.length;e++)t[e].pathUpdated()},e.prototype.getBoundingRect=function(){return this._updatePathDirty.call(this),Ea.prototype.getBoundingRect.call(this)},e}(Ea),jl=function(){function t(t){this.colorStops=t||[]}return t.prototype.addColorStop=function(t,e){this.colorStops.push({offset:t,color:e})},t}(),ql=function(t){function e(e,n,i,r,o,a){var s=t.call(this,o)||this;return s.x=null==e?0:e,s.y=null==n?0:n,s.x2=null==i?1:i,s.y2=null==r?0:r,s.type="linear",s.global=a||!1,s}return n(e,t),e}(jl),Kl=function(t){function e(e,n,i,r,o){var a=t.call(this,r)||this;return a.x=null==e?.5:e,a.y=null==n?.5:n,a.r=null==i?.5:i,a.type="radial",a.global=o||!1,a}return n(e,t),e}(jl),$l=[0,0],Jl=[0,0],Ql=new mn,tu=new mn,eu=function(){function t(t,e){this._corners=[],this._axes=[],this._origin=[0,0];for(var n=0;n<4;n++)this._corners[n]=new mn;for(n=0;n<2;n++)this._axes[n]=new mn;t&&this.fromBoundingRect(t,e)}return t.prototype.fromBoundingRect=function(t,e){var n=this._corners,i=this._axes,r=t.x,o=t.y,a=r+t.width,s=o+t.height;if(n[0].set(r,o),n[1].set(a,o),n[2].set(a,s),n[3].set(r,s),e)for(var l=0;l<4;l++)n[l].transform(e);mn.sub(i[0],n[1],n[0]),mn.sub(i[1],n[3],n[0]),i[0].normalize(),i[1].normalize();for(l=0;l<2;l++)this._origin[l]=i[l].dot(n[0])},t.prototype.intersect=function(t,e){var n=!0,i=!e;return Ql.set(1/0,1/0),tu.set(0,0),!this._intersectCheckOneSide(this,t,Ql,tu,i,1)&&(n=!1,i)||!this._intersectCheckOneSide(t,this,Ql,tu,i,-1)&&(n=!1,i)||i||mn.copy(e,n?Ql:tu),n},t.prototype._intersectCheckOneSide=function(t,e,n,i,r,o){for(var a=!0,s=0;s<2;s++){var l=this._axes[s];if(this._getProjMinMaxOnAxis(s,t._corners,$l),this._getProjMinMaxOnAxis(s,e._corners,Jl),$l[1]<Jl[0]||$l[0]>Jl[1]){if(a=!1,r)return a;var u=Math.abs(Jl[0]-$l[1]),h=Math.abs($l[0]-Jl[1]);Math.min(u,h)>i.len()&&(u<h?mn.scale(i,l,-u*o):mn.scale(i,l,h*o))}else if(n){u=Math.abs(Jl[0]-$l[1]),h=Math.abs($l[0]-Jl[1]);Math.min(u,h)<n.len()&&(u<h?mn.scale(n,l,u*o):mn.scale(n,l,-h*o))}}return a},t.prototype._getProjMinMaxOnAxis=function(t,e,n){for(var i=this._axes[t],r=this._origin,o=e[0].dot(i)+r[t],a=o,s=o,l=1;l<e.length;l++){var u=e[l].dot(i)+r[t];a=Math.min(u,a),s=Math.max(u,s)}n[0]=a,n[1]=s},t}(),nu=[],iu=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.notClear=!0,e.incremental=!0,e._displayables=[],e._temporaryDisplayables=[],e._cursor=0,e}return n(e,t),e.prototype.traverse=function(t,e){t.call(e,this)},e.prototype.useStyle=function(){this.style={}},e.prototype.getCursor=function(){return this._cursor},e.prototype.innerAfterBrush=function(){this._cursor=this._displayables.length},e.prototype.clearDisplaybles=function(){this._displayables=[],this._temporaryDisplayables=[],this._cursor=0,this.markRedraw(),this.notClear=!1},e.prototype.clearTemporalDisplayables=function(){this._temporaryDisplayables=[]},e.prototype.addDisplayable=function(t,e){e?this._temporaryDisplayables.push(t):this._displayables.push(t),this.markRedraw()},e.prototype.addDisplayables=function(t,e){e=e||!1;for(var n=0;n<t.length;n++)this.addDisplayable(t[n],e)},e.prototype.getDisplayables=function(){return this._displayables},e.prototype.getTemporalDisplayables=function(){return this._temporaryDisplayables},e.prototype.eachPendingDisplayable=function(t){for(var e=this._cursor;e<this._displayables.length;e++)t&&t(this._displayables[e]);for(e=0;e<this._temporaryDisplayables.length;e++)t&&t(this._temporaryDisplayables[e])},e.prototype.update=function(){this.updateTransform();for(var t=this._cursor;t<this._displayables.length;t++){(e=this._displayables[t]).parent=this,e.update(),e.parent=null}for(t=0;t<this._temporaryDisplayables.length;t++){var e;(e=this._temporaryDisplayables[t]).parent=this,e.update(),e.parent=null}},e.prototype.getBoundingRect=function(){if(!this._rect){for(var t=new In(1/0,1/0,-1/0,-1/0),e=0;e<this._displayables.length;e++){var n=this._displayables[e],i=n.getBoundingRect().clone();n.needLocalTransform()&&i.applyTransform(n.getLocalTransform(nu)),t.union(i)}this._rect=t}return this._rect},e.prototype.contain=function(t,e){var n=this.transformCoordToLocal(t,e);if(this.getBoundingRect().contain(n[0],n[1]))for(var i=0;i<this._displayables.length;i++){if(this._displayables[i].contain(t,e))return!0}return!1},e}(lo),ru=Math.max,ou=Math.min,au={};function su(t){return Ea.extend(t)}var lu=function(t,e){var i=hl(t,e);return function(t){function e(e){var n=t.call(this,e)||this;return n.applyTransform=i.applyTransform,n.buildPath=i.buildPath,n}return n(e,t),e}(ll)};function uu(t,e){return lu(t,e)}function hu(t,e){au[t]=e}function cu(t){if(au.hasOwnProperty(t))return au[t]}function pu(t,e,n,i){var r=function(t,e){return new ll(hl(t,e))}(t,e);return n&&("center"===i&&(n=fu(n,r.getBoundingRect())),yu(r,n)),r}function du(t,e,n){var i=new Ha({style:{image:t,x:e.x,y:e.y,width:e.width,height:e.height},onload:function(t){if("center"===n){var r={width:t.width,height:t.height};i.setStyle(fu(e,r))}}});return i}function fu(t,e){var n,i=e.width/e.height,r=t.height*i;return n=r<=t.width?t.height:(r=t.width)/i,{x:t.x+t.width/2-r/2,y:t.y+t.height/2-n/2,width:r,height:n}}var gu=function(t,e){for(var n=[],i=t.length,r=0;r<i;r++){var o=t[r];o.path||o.createPathProxy(),o.shapeChanged()&&o.buildPath(o.path,o.shape,!0),n.push(o.path)}var a=new Ea(e);return a.createPathProxy(),a.buildPath=function(t){if(ul(t)){t.appendPath(n);var e=t.getContext();e&&t.rebuildPath(e,1)}},a};function yu(t,e){if(t.applyTransform){var n=t.getBoundingRect().calculateTransform(e);t.applyTransform(n)}}var vu=Ya;function mu(t,e,n,i,r,o,a){var s,l=!1;"function"==typeof r?(a=o,o=r,r=null):U(r)&&(o=r.cb,a=r.during,l=r.isFrom,s=r.removeOpt,r=r.dataIndex);var u,h="update"===t,c="remove"===t;if(i&&i.ecModel){var p=i.ecModel.getUpdatePayload();u=p&&p.animation}var d=i&&i.isAnimationEnabled();if(c||e.stopAnimation("remove"),d){var f=void 0,g=void 0,y=void 0;u?(f=u.duration||0,g=u.easing||"cubicOut",y=u.delay||0):c?(f=Q((s=s||{}).duration,200),g=Q(s.easing,"cubicOut"),y=0):(f=i.getShallow(h?"animationDurationUpdate":"animationDuration"),g=i.getShallow(h?"animationEasingUpdate":"animationEasing"),y=i.getShallow(h?"animationDelayUpdate":"animationDelay")),"function"==typeof y&&(y=y(r,i.getAnimationDelayParams?i.getAnimationDelayParams(e,r):null)),"function"==typeof f&&(f=f(r)),f>0?l?e.animateFrom(n,{duration:f,delay:y||0,easing:g,done:o,force:!!o||!!a,scope:t,during:a}):e.animateTo(n,{duration:f,delay:y||0,easing:g,done:o,force:!!o||!!a,setToFinal:!0,scope:t,during:a}):(e.stopAnimation(),!l&&e.attr(n),o&&o())}else e.stopAnimation(),!l&&e.attr(n),a&&a(1),o&&o()}function _u(t,e,n,i,r,o){mu("update",t,e,n,i,r,o)}function xu(t,e,n,i,r,o){mu("init",t,e,n,i,r,o)}function bu(t,e,n,i,r,o){Mu(t)||mu("remove",t,e,n,i,r,o)}function wu(t,e,n,i){t.removeTextContent(),t.removeTextGuideLine(),bu(t,{style:{opacity:0}},e,n,i)}function Su(t,e,n){function i(){t.parent&&t.parent.remove(t)}t.isGroup?t.traverse((function(t){t.isGroup||wu(t,e,n,i)})):wu(t,e,n,i)}function Mu(t){if(!t.__zr)return!0;for(var e=0;e<t.animators.length;e++){if("remove"===t.animators[e].scope)return!0}return!1}function Tu(t,e){for(var n=he([]);t&&t!==e;)pe(n,t.getLocalTransform(),n),t=t.parent;return n}function Cu(t,e,n){return e&&!L(e)&&(e=Te.getLocalTransform(e)),n&&(e=ye([],e)),Dt([],t,e)}function Iu(t,e,n){var i=0===e[4]||0===e[5]||0===e[0]?1:Math.abs(2*e[4]/e[0]),r=0===e[4]||0===e[5]||0===e[2]?1:Math.abs(2*e[4]/e[2]),o=["left"===t?-i:"right"===t?i:0,"top"===t?-r:"bottom"===t?r:0];return o=Cu(o,e,n),Math.abs(o[0])>Math.abs(o[1])?o[0]>0?"right":"left":o[1]>0?"bottom":"top"}function Au(t){return!t.isGroup}function Du(t,e,n){if(t&&e){var i,r=(i={},t.traverse((function(t){Au(t)&&t.anid&&(i[t.anid]=t)})),i);e.traverse((function(t){if(Au(t)&&t.anid){var e=r[t.anid];if(e){var i=o(t);t.attr(o(e)),_u(t,i,n,os(t).dataIndex)}}}))}function o(t){var e={x:t.x,y:t.y,rotation:t.rotation};return function(t){return null!=t.shape}(t)&&(e.shape=T({},t.shape)),e}}function ku(t,e){return O(t,(function(t){var n=t[0];n=ru(n,e.x),n=ou(n,e.x+e.width);var i=t[1];return i=ru(i,e.y),[n,i=ou(i,e.y+e.height)]}))}function Lu(t,e){var n=ru(t.x,e.x),i=ou(t.x+t.width,e.x+e.width),r=ru(t.y,e.y),o=ou(t.y+t.height,e.y+e.height);if(i>=n&&o>=r)return{x:n,y:r,width:i-n,height:o-r}}function Pu(t,e,n){var i=T({rectHover:!0},e),r=i.style={strokeNoScale:!0};if(n=n||{x:-1,y:-1,width:2,height:2},t)return 0===t.indexOf("image://")?(r.image=t.slice(8),C(r,n),new Ha(i)):pu(t.replace("path://",""),i,n,"center")}function Ou(t,e,n,i,r,o,a,s){var l,u=n-t,h=i-e,c=a-r,p=s-o,d=Ru(c,p,u,h);if((l=d)<=1e-6&&l>=-1e-6)return!1;var f=t-r,g=e-o,y=Ru(f,g,u,h)/d;if(y<0||y>1)return!1;var v=Ru(f,g,c,p)/d;return!(v<0||v>1)}function Ru(t,e,n,i){return t*i-n*e}hu("circle",pl),hu("ellipse",fl),hu("sector",Dl),hu("ring",Ll),hu("polygon",Nl),hu("polyline",Bl),hu("rect",ja),hu("line",Fl),hu("bezierCurve",Ul),hu("arc",Xl);var Nu=Object.freeze({__proto__:null,extendShape:su,extendPath:uu,registerShape:hu,getShapeClass:cu,makePath:pu,makeImage:du,mergePath:gu,resizePath:yu,subPixelOptimizeLine:function(t){return Wa(t.shape,t.shape,t.style),t},subPixelOptimizeRect:function(t){return Ua(t.shape,t.shape,t.style),t},subPixelOptimize:vu,updateProps:_u,initProps:xu,removeElement:bu,removeElementWithFadeOut:Su,isElementRemoved:Mu,getTransform:Tu,applyTransform:Cu,transformDirection:Iu,groupTransition:Du,clipPointsByRect:ku,clipRectByRect:Lu,createIcon:Pu,linePolygonIntersect:function(t,e,n,i,r){for(var o=0,a=r[r.length-1];o<r.length;o++){var s=r[o];if(Ou(t,e,n,i,s[0],s[1],a[0],a[1]))return!0;a=s}},lineLineIntersect:Ou,Group:ki,Image:Ha,Text:$a,Circle:pl,Ellipse:fl,Sector:Dl,Ring:Ll,Polygon:Nl,Polyline:Bl,Rect:ja,Line:Fl,BezierCurve:Ul,Arc:Xl,IncrementalDisplayable:iu,CompoundPath:Zl,LinearGradient:ql,RadialGradient:Kl,BoundingRect:In,OrientedBoundingRect:eu,Point:mn,Path:Ea}),Eu={};function Bu(t,e){for(var n=0;n<us.length;n++){var i=us[n],r=e[i],o=t.ensureState(i);o.style=o.style||{},o.style.text=r}var a=t.currentStates.slice();t.clearStates(!0),t.setStyle({text:e.normal}),t.useStates(a,!0)}function zu(t,e,n){var i,r=t.labelFetcher,o=t.labelDataIndex,a=t.labelDimIndex,s=e.normal;r&&(i=r.getFormattedLabel(o,"normal",null,a,s&&s.get("formatter"),null!=n?{interpolatedValue:n}:null)),null==i&&(i=F(t.defaultText)?t.defaultText(o,t,n):t.defaultText);for(var l={normal:i},u=0;u<us.length;u++){var h=us[u],c=e[h];l[h]=Q(r?r.getFormattedLabel(o,h,null,a,c&&c.get("formatter")):null,i)}return l}function Vu(t,e,n,i){n=n||Eu;for(var r=t instanceof $a,o=!1,a=0;a<hs.length;a++){if((p=e[hs[a]])&&p.getShallow("show")){o=!0;break}}var s=r?t:t.getTextContent();if(o){r||(s||(s=new $a,t.setTextContent(s)),t.stateProxy&&(s.stateProxy=t.stateProxy));var l=zu(n,e),u=e.normal,h=!!u.getShallow("show"),c=Hu(u,i&&i.normal,n,!1,!r);c.text=l.normal,r||t.setTextConfig(Gu(u,n,!1));for(a=0;a<us.length;a++){var p,d=us[a];if(p=e[d]){var f=s.ensureState(d),g=!!Q(p.getShallow("show"),h);if(g!==h&&(f.ignore=!g),f.style=Hu(p,i&&i[d],n,!0,!r),f.style.text=l[d],!r)t.ensureState(d).textConfig=Gu(p,n,!0)}}s.silent=!!u.getShallow("silent"),null!=s.style.x&&(c.x=s.style.x),null!=s.style.y&&(c.y=s.style.y),s.ignore=!h,s.useStyle(c),s.dirty(),n.enableTextSetter&&(Zu(s).setLabelText=function(t){var i=zu(n,e,t);Bu(s,i)})}else s&&(s.ignore=!0);t.dirty()}function Fu(t,e){e=e||"label";for(var n={normal:t.getModel(e)},i=0;i<us.length;i++){var r=us[i];n[r]=t.getModel([r,e])}return n}function Hu(t,e,n,i,r){var o={};return function(t,e,n,i,r){n=n||Eu;var o,a=e.ecModel,s=a&&a.option.textStyle,l=function(t){var e;for(;t&&t!==t.ecModel;){var n=(t.option||Eu).rich;if(n){e=e||{};for(var i=E(n),r=0;r<i.length;r++){e[i[r]]=1}}t=t.parentModel}return e}(e);if(l)for(var u in o={},l)if(l.hasOwnProperty(u)){var h=e.getModel(["rich",u]);Xu(o[u]={},h,s,n,i,r,!1,!0)}o&&(t.rich=o);var c=e.get("overflow");c&&(t.overflow=c);var p=e.get("minMargin");null!=p&&(t.margin=p);Xu(t,e,s,n,i,r,!0,!1)}(o,t,n,i,r),e&&T(o,e),o}function Gu(t,e,n){e=e||{};var i,r={},o=t.getShallow("rotate"),a=Q(t.getShallow("distance"),n?null:5),s=t.getShallow("offset");return"outside"===(i=t.getShallow("position")||(n?null:"inside"))&&(i=e.defaultOutsidePosition||"top"),null!=i&&(r.position=i),null!=s&&(r.offset=s),null!=o&&(o*=Math.PI/180,r.rotation=o),null!=a&&(r.distance=a),r.outsideFill="inherit"===t.get("color")?e.inheritColor||null:"auto",r}var Wu=["fontStyle","fontWeight","fontSize","fontFamily","textShadowColor","textShadowBlur","textShadowOffsetX","textShadowOffsetY"],Uu=["align","lineHeight","width","height","tag","verticalAlign"],Yu=["padding","borderWidth","borderRadius","borderDashOffset","backgroundColor","borderColor","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"];function Xu(t,e,n,i,r,o,a,s){n=!r&&n||Eu;var l=i&&i.inheritColor,u=e.getShallow("color"),h=e.getShallow("textBorderColor"),c=Q(e.getShallow("opacity"),n.opacity);"inherit"!==u&&"auto"!==u||(u=l||null),"inherit"!==h&&"auto"!==h||(h=l||null),o||(u=u||n.color,h=h||n.textBorderColor),null!=u&&(t.fill=u),null!=h&&(t.stroke=h);var p=Q(e.getShallow("textBorderWidth"),n.textBorderWidth);null!=p&&(t.lineWidth=p);var d=Q(e.getShallow("textBorderType"),n.textBorderType);null!=d&&(t.lineDash=d);var f=Q(e.getShallow("textBorderDashOffset"),n.textBorderDashOffset);null!=f&&(t.lineDashOffset=f),r||null!=c||s||(c=i&&i.defaultOpacity),null!=c&&(t.opacity=c),r||o||null==t.fill&&i.inheritColor&&(t.fill=i.inheritColor);for(var g=0;g<Wu.length;g++){var y=Wu[g];null!=(m=Q(e.getShallow(y),n[y]))&&(t[y]=m)}for(g=0;g<Uu.length;g++){y=Uu[g];null!=(m=e.getShallow(y))&&(t[y]=m)}if(null==t.verticalAlign){var v=e.getShallow("baseline");null!=v&&(t.verticalAlign=v)}if(!a||!i.disableBox){for(g=0;g<Yu.length;g++){var m;y=Yu[g];null!=(m=e.getShallow(y))&&(t[y]=m)}var _=e.getShallow("borderType");null!=_&&(t.borderDash=_),"auto"!==t.backgroundColor&&"inherit"!==t.backgroundColor||!l||(t.backgroundColor=l),"auto"!==t.borderColor&&"inherit"!==t.borderColor||!l||(t.borderColor=l)}}var Zu=xr();var ju,qu,Ku=["textStyle","color"],$u=new $a,Ju=function(){function t(){}return t.prototype.getTextColor=function(t){var e=this.ecModel;return this.getShallow("color")||(!t&&e?e.get(Ku):null)},t.prototype.getFont=function(){return t={fontStyle:this.getShallow("fontStyle"),fontWeight:this.getShallow("fontWeight"),fontSize:this.getShallow("fontSize"),fontFamily:this.getShallow("fontFamily")},e=this.ecModel,n=e&&e.getModel("textStyle"),rt([t.fontStyle||n&&n.getShallow("fontStyle")||"",t.fontWeight||n&&n.getShallow("fontWeight")||"",(t.fontSize||n&&n.getShallow("fontSize")||12)+"px",t.fontFamily||n&&n.getShallow("fontFamily")||"sans-serif"].join(" "));var t,e,n},t.prototype.getTextRect=function(t){return $u.useStyle({text:t,fontStyle:this.getShallow("fontStyle"),fontWeight:this.getShallow("fontWeight"),fontSize:this.getShallow("fontSize"),fontFamily:this.getShallow("fontFamily"),verticalAlign:this.getShallow("verticalAlign")||this.getShallow("baseline"),padding:this.getShallow("padding"),lineHeight:this.getShallow("lineHeight"),rich:this.getShallow("rich")}),$u.update(),$u.getBoundingRect()},t}(),Qu=[["lineWidth","width"],["stroke","color"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"],["lineDash","type"],["lineDashOffset","dashOffset"],["lineCap","cap"],["lineJoin","join"],["miterLimit"]],th=zr(Qu),eh=function(){function t(){}return t.prototype.getLineStyle=function(t){return th(this,t)},t}(),nh=[["fill","color"],["stroke","borderColor"],["lineWidth","borderWidth"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"],["lineDash","borderType"],["lineDashOffset","borderDashOffset"],["lineCap","borderCap"],["lineJoin","borderJoin"],["miterLimit","borderMiterLimit"]],ih=zr(nh),rh=function(){function t(){}return t.prototype.getItemStyle=function(t,e){return ih(this,t,e)},t}(),oh=function(){function t(t,e,n){this.parentModel=e,this.ecModel=n,this.option=t}return t.prototype.init=function(t,e,n){for(var i=[],r=3;r<arguments.length;r++)i[r-3]=arguments[r]},t.prototype.mergeOption=function(t,e){S(this.option,t,!0)},t.prototype.get=function(t,e){return null==t?this.option:this._doGet(this.parsePath(t),!e&&this.parentModel)},t.prototype.getShallow=function(t,e){var n=this.option,i=null==n?n:n[t];if(null==i&&!e){var r=this.parentModel;r&&(i=r.getShallow(t))}return i},t.prototype.getModel=function(e,n){var i=null!=e,r=i?this.parsePath(e):null;return new t(i?this._doGet(r):this.option,n=n||this.parentModel&&this.parentModel.getModel(this.resolveParentPath(r)),this.ecModel)},t.prototype.isEmpty=function(){return null==this.option},t.prototype.restoreData=function(){},t.prototype.clone=function(){return new(0,this.constructor)(w(this.option))},t.prototype.parsePath=function(t){return"string"==typeof t?t.split("."):t},t.prototype.resolveParentPath=function(t){return t},t.prototype.isAnimationEnabled=function(){if(!a.node&&this.option){if(null!=this.option.animation)return!!this.option.animation;if(this.parentModel)return this.parentModel.isAnimationEnabled()}},t.prototype._doGet=function(t,e){var n=this.option;if(!t)return n;for(var i=0;i<t.length&&(!t[i]||null!=(n=n&&"object"==typeof n?n[t[i]]:null));i++);return null==n&&e&&(n=e._doGet(this.resolveParentPath(t),e.parentModel)),n},t}();Lr(oh),ju=oh,qu=["__\0is_clz",Rr++].join("_"),ju.prototype[qu]=!0,ju.isInstance=function(t){return!(!t||!t[qu])},k(oh,eh),k(oh,rh),k(oh,Fr),k(oh,Ju);var ah=Math.round(10*Math.random());function sh(t){return[t||"",ah++].join("_")}function lh(t,e){return S(S({},t,!0),e,!0)}var uh="ZH",hh="EN",ch=hh,ph={},dh={},fh=a.domSupported&&(document.documentElement.lang||navigator.language||navigator.browserLanguage).toUpperCase().indexOf(uh)>-1?uh:ch;function gh(t,e){t=t.toUpperCase(),dh[t]=new oh(e),ph[t]=e}gh(hh,{time:{month:["January","February","March","April","May","June","July","August","September","October","November","December"],monthAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayOfWeekAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},legend:{selector:{all:"All",inverse:"Inv"}},toolbox:{brush:{title:{rect:"Box Select",polygon:"Lasso Select",lineX:"Horizontally Select",lineY:"Vertically Select",keep:"Keep Selections",clear:"Clear Selections"}},dataView:{title:"Data View",lang:["Data View","Close","Refresh"]},dataZoom:{title:{zoom:"Zoom",back:"Zoom Reset"}},magicType:{title:{line:"Switch to Line Chart",bar:"Switch to Bar Chart",stack:"Stack",tiled:"Tile"}},restore:{title:"Restore"},saveAsImage:{title:"Save as Image",lang:["Right Click to Save Image"]}},series:{typeNames:{pie:"Pie chart",bar:"Bar chart",line:"Line chart",scatter:"Scatter plot",effectScatter:"Ripple scatter plot",radar:"Radar chart",tree:"Tree",treemap:"Treemap",boxplot:"Boxplot",candlestick:"Candlestick",k:"K line chart",heatmap:"Heat map",map:"Map",parallel:"Parallel coordinate map",lines:"Line graph",graph:"Relationship graph",sankey:"Sankey diagram",funnel:"Funnel chart",gauge:"Guage",pictorialBar:"Pictorial bar",themeRiver:"Theme River Map",sunburst:"Sunburst"}},aria:{general:{withTitle:'This is a chart about "{title}"',withoutTitle:"This is a chart"},series:{single:{prefix:"",withName:" with type {seriesType} named {seriesName}.",withoutName:" with type {seriesType}."},multiple:{prefix:". It consists of {seriesCount} series count.",withName:" The {seriesId} series is a {seriesType} representing {seriesName}.",withoutName:" The {seriesId} series is a {seriesType}.",separator:{middle:"",end:""}}},data:{allData:"The data is as follows: ",partialData:"The first {displayCnt} items are: ",withName:"the data for {name} is {value}",withoutName:"{value}",separator:{middle:", ",end:". "}}}}),gh(uh,{time:{month:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthAbbr:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayOfWeekAbbr:["日","一","二","三","四","五","六"]},legend:{selector:{all:"全选",inverse:"反选"}},toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}});var yh=1e3,vh=6e4,mh=36e5,_h=864e5,xh=31536e6,bh={year:"{yyyy}",month:"{MMM}",day:"{d}",hour:"{HH}:{mm}",minute:"{HH}:{mm}",second:"{HH}:{mm}:{ss}",millisecond:"{hh}:{mm}:{ss} {SSS}",none:"{yyyy}-{MM}-{dd} {hh}:{mm}:{ss} {SSS}"},wh="{yyyy}-{MM}-{dd}",Sh={year:"{yyyy}",month:"{yyyy}-{MM}",day:wh,hour:"{yyyy}-{MM}-{dd} "+bh.hour,minute:"{yyyy}-{MM}-{dd} "+bh.minute,second:"{yyyy}-{MM}-{dd} "+bh.second,millisecond:bh.none},Mh=["year","month","day","hour","minute","second","millisecond"],Th=["year","half-year","quarter","month","week","half-week","day","half-day","quarter-day","hour","minute","second","millisecond"];function Ch(t,e){return"0000".substr(0,e-(t+="").length)+t}function Ih(t){switch(t){case"half-year":case"quarter":return"month";case"week":case"half-week":return"day";case"half-day":case"quarter-day":return"hour";default:return t}}function Ah(t){return t===Ih(t)}function Dh(t,e,n,i){var r=Ki(t),o=r[Ph(n)](),a=r[Oh(n)]()+1,s=Math.floor((a-1)/4)+1,l=r[Rh(n)](),u=r["get"+(n?"UTC":"")+"Day"](),h=r[Nh(n)](),c=(h-1)%12+1,p=r[Eh(n)](),d=r[Bh(n)](),f=r[zh(n)](),g=(i instanceof oh?i:function(t){return dh[t]}(i||fh)||dh.EN).getModel("time"),y=g.get("month"),v=g.get("monthAbbr"),m=g.get("dayOfWeek"),_=g.get("dayOfWeekAbbr");return(e||"").replace(/{yyyy}/g,o+"").replace(/{yy}/g,o%100+"").replace(/{Q}/g,s+"").replace(/{MMMM}/g,y[a-1]).replace(/{MMM}/g,v[a-1]).replace(/{MM}/g,Ch(a,2)).replace(/{M}/g,a+"").replace(/{dd}/g,Ch(l,2)).replace(/{d}/g,l+"").replace(/{eeee}/g,m[u]).replace(/{ee}/g,_[u]).replace(/{e}/g,u+"").replace(/{HH}/g,Ch(h,2)).replace(/{H}/g,h+"").replace(/{hh}/g,Ch(c+"",2)).replace(/{h}/g,c+"").replace(/{mm}/g,Ch(p,2)).replace(/{m}/g,p+"").replace(/{ss}/g,Ch(d,2)).replace(/{s}/g,d+"").replace(/{SSS}/g,Ch(f,3)).replace(/{S}/g,f+"")}function kh(t,e){var n=Ki(t),i=n[Oh(e)]()+1,r=n[Rh(e)](),o=n[Nh(e)](),a=n[Eh(e)](),s=n[Bh(e)](),l=0===n[zh(e)](),u=l&&0===s,h=u&&0===a,c=h&&0===o,p=c&&1===r;return p&&1===i?"year":p?"month":c?"day":h?"hour":u?"minute":l?"second":"millisecond"}function Lh(t,e,n){var i="number"==typeof t?Ki(t):t;switch(e=e||kh(t,n)){case"year":return i[Ph(n)]();case"half-year":return i[Oh(n)]()>=6?1:0;case"quarter":return Math.floor((i[Oh(n)]()+1)/4);case"month":return i[Oh(n)]();case"day":return i[Rh(n)]();case"half-day":return i[Nh(n)]()/24;case"hour":return i[Nh(n)]();case"minute":return i[Eh(n)]();case"second":return i[Bh(n)]();case"millisecond":return i[zh(n)]()}}function Ph(t){return t?"getUTCFullYear":"getFullYear"}function Oh(t){return t?"getUTCMonth":"getMonth"}function Rh(t){return t?"getUTCDate":"getDate"}function Nh(t){return t?"getUTCHours":"getHours"}function Eh(t){return t?"getUTCMinutes":"getMinutes"}function Bh(t){return t?"getUTCSeconds":"getSeconds"}function zh(t){return t?"getUTCSeconds":"getSeconds"}function Vh(t){return t?"setUTCFullYear":"setFullYear"}function Fh(t){return t?"setUTCMonth":"setMonth"}function Hh(t){return t?"setUTCDate":"setDate"}function Gh(t){return t?"setUTCHours":"setHours"}function Wh(t){return t?"setUTCMinutes":"setMinutes"}function Uh(t){return t?"setUTCSeconds":"setSeconds"}function Yh(t){return t?"setUTCSeconds":"setSeconds"}function Xh(t){if(!er(t))return H(t)?t:"-";var e=(t+"").split(".");return e[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(e.length>1?"."+e[1]:"")}function Zh(t,e){return t=(t||"").toLowerCase().replace(/-(.)/g,(function(t,e){return e.toUpperCase()})),e&&t&&(t=t.charAt(0).toUpperCase()+t.slice(1)),t}var jh=nt,qh=/([&<>"'])/g,Kh={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function $h(t){return null==t?"":(t+"").replace(qh,(function(t,e){return Kh[e]}))}function Jh(t,e,n){function i(t){return t&&rt(t)?t:"-"}function r(t){return!(null==t||isNaN(t)||!isFinite(t))}var o="time"===e,a=t instanceof Date;if(o||a){var s=o?Ki(t):t;if(!isNaN(+s))return Dh(s,"yyyy-MM-dd hh:mm:ss",n);if(a)return"-"}if("ordinal"===e)return G(t)?i(t):W(t)&&r(t)?t+"":"-";var l=tr(t);return r(l)?Xh(l):G(t)?i(t):"-"}var Qh=["a","b","c","d","e","f","g"],tc=function(t,e){return"{"+t+(null==e?"":e)+"}"};function ec(t,e,n){V(e)||(e=[e]);var i=e.length;if(!i)return"";for(var r=e[0].$vars||[],o=0;o<r.length;o++){var a=Qh[o];t=t.replace(tc(a),tc(a,0))}for(var s=0;s<i;s++)for(var l=0;l<r.length;l++){var u=e[s][r[l]];t=t.replace(tc(Qh[l],s),n?$h(u):u)}return t}function nc(t,e){var n=H(t)?{color:t,extraCssText:e}:t||{},i=n.color,r=n.type;e=n.extraCssText;var o=n.renderMode||"html";return i?"html"===o?"subItem"===r?'<span style="display:inline-block;vertical-align:middle;margin-right:8px;margin-left:3px;border-radius:4px;width:4px;height:4px;background-color:'+$h(i)+";"+(e||"")+'"></span>':'<span style="display:inline-block;margin-right:4px;border-radius:10px;width:10px;height:10px;background-color:'+$h(i)+";"+(e||"")+'"></span>':{renderMode:o,content:"{"+(n.markerId||"markerX")+"|}  ",style:"subItem"===r?{width:4,height:4,borderRadius:2,backgroundColor:i}:{width:10,height:10,borderRadius:5,backgroundColor:i}}:""}function ic(t,e){return e=e||"transparent",H(t)?t:U(t)&&t.colorStops&&(t.colorStops[0]||{}).color||e}function rc(t,e){if("_blank"===e||"blank"===e){var n=window.open();n.opener=null,n.location.href=t}else window.open(t,e)}var oc=P,ac=["left","right","top","bottom","width","height"],sc=[["width","left","right"],["height","top","bottom"]];function lc(t,e,n,i,r){var o=0,a=0;null==i&&(i=1/0),null==r&&(r=1/0);var s=0;e.eachChild((function(l,u){var h,c,p=l.getBoundingRect(),d=e.childAt(u+1),f=d&&d.getBoundingRect();if("horizontal"===t){var g=p.width+(f?-f.x+p.x:0);(h=o+g)>i||l.newline?(o=0,h=g,a+=s+n,s=p.height):s=Math.max(s,p.height)}else{var y=p.height+(f?-f.y+p.y:0);(c=a+y)>r||l.newline?(o+=s+n,a=0,c=y,s=p.width):s=Math.max(s,p.width)}l.newline||(l.x=o,l.y=a,l.markRedraw(),"horizontal"===t?o=h+n:a=c+n)}))}var uc=lc;z(lc,"vertical"),z(lc,"horizontal");function hc(t,e,n){n=jh(n||0);var i=e.width,r=e.height,o=Fi(t.left,i),a=Fi(t.top,r),s=Fi(t.right,i),l=Fi(t.bottom,r),u=Fi(t.width,i),h=Fi(t.height,r),c=n[2]+n[0],p=n[1]+n[3],d=t.aspect;switch(isNaN(u)&&(u=i-s-p-o),isNaN(h)&&(h=r-l-c-a),null!=d&&(isNaN(u)&&isNaN(h)&&(d>i/r?u=.8*i:h=.8*r),isNaN(u)&&(u=d*h),isNaN(h)&&(h=u/d)),isNaN(o)&&(o=i-s-u-p),isNaN(a)&&(a=r-l-h-c),t.left||t.right){case"center":o=i/2-u/2-n[3];break;case"right":o=i-u-p}switch(t.top||t.bottom){case"middle":case"center":a=r/2-h/2-n[0];break;case"bottom":a=r-h-c}o=o||0,a=a||0,isNaN(u)&&(u=i-p-o-(s||0)),isNaN(h)&&(h=r-c-a-(l||0));var f=new In(o+n[3],a+n[0],u,h);return f.margin=n,f}function cc(t,e,n,i,r){var o=!r||!r.hv||r.hv[0],a=!r||!r.hv||r.hv[1],s=r&&r.boundingMode||"all";if(o||a){var l;if("raw"===s)l="group"===t.type?new In(0,0,+e.width||0,+e.height||0):t.getBoundingRect();else if(l=t.getBoundingRect(),t.needLocalTransform()){var u=t.getLocalTransform();(l=l.clone()).applyTransform(u)}var h=hc(C({width:l.width,height:l.height},e),n,i),c=o?h.x-l.x:0,p=a?h.y-l.y:0;"raw"===s?(t.x=c,t.y=p):(t.x+=c,t.y+=p),t.markRedraw()}}function pc(t){var e=t.layoutMode||t.constructor.layoutMode;return U(e)?e:e?{type:e}:null}function dc(t,e,n){var i=n&&n.ignoreSize;!V(i)&&(i=[i,i]);var r=a(sc[0],0),o=a(sc[1],1);function a(n,r){var o={},a=0,u={},h=0;if(oc(n,(function(e){u[e]=t[e]})),oc(n,(function(t){s(e,t)&&(o[t]=u[t]=e[t]),l(o,t)&&a++,l(u,t)&&h++})),i[r])return l(e,n[1])?u[n[2]]=null:l(e,n[2])&&(u[n[1]]=null),u;if(2!==h&&a){if(a>=2)return o;for(var c=0;c<n.length;c++){var p=n[c];if(!s(o,p)&&s(t,p)){o[p]=t[p];break}}return o}return u}function s(t,e){return t.hasOwnProperty(e)}function l(t,e){return null!=t[e]&&"auto"!==t[e]}function u(t,e,n){oc(t,(function(t){e[t]=n[t]}))}u(sc[0],t,r),u(sc[1],t,o)}function fc(t){return gc({},t)}function gc(t,e){return e&&t&&oc(ac,(function(n){e.hasOwnProperty(n)&&(t[n]=e[n])})),t}var yc=xr(),vc=function(t){function e(e,n,i){var r=t.call(this,e,n,i)||this;return r.uid=sh("ec_cpt_model"),r}return n(e,t),e.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n)},e.prototype.mergeDefaultAndTheme=function(t,e){var n=pc(this),i=n?fc(t):{};S(t,e.getTheme().get(this.mainType)),S(t,this.getDefaultOption()),n&&dc(t,i,n)},e.prototype.mergeOption=function(t,e){S(this.option,t,!0);var n=pc(this);n&&dc(this.option,t,n)},e.prototype.optionUpdated=function(t,e){},e.prototype.getDefaultOption=function(){var t=this.constructor;if(!function(t){return!(!t||!t[Dr])}(t))return t.defaultOption;var e=yc(this);if(!e.defaultOption){for(var n=[],i=t;i;){var r=i.prototype.defaultOption;r&&n.push(r),i=i.superClass}for(var o={},a=n.length-1;a>=0;a--)o=S(o,n[a],!0);e.defaultOption=o}return e.defaultOption},e.prototype.getReferringComponents=function(t,e){var n=t+"Index",i=t+"Id";return Tr(this.ecModel,t,{index:this.get(n,!0),id:this.get(i,!0)},e)},e.prototype.getBoxLayoutParams=function(){var t=this;return{left:t.get("left"),top:t.get("top"),right:t.get("right"),bottom:t.get("bottom"),width:t.get("width"),height:t.get("height")}},e.protoInitialize=function(){var t=e.prototype;t.type="component",t.id="",t.name="",t.mainType="",t.subType="",t.componentIndex=0}(),e}(oh);Or(vc,oh),Br(vc),function(t){var e={};t.registerSubTypeDefaulter=function(t,n){var i=kr(t);e[i.main]=n},t.determineSubType=function(n,i){var r=i.type;if(!r){var o=kr(n).main;t.hasSubTypes(n)&&e[o]&&(r=e[o](i))}return r}}(vc),function(t,e){function n(t,e){return t[e]||(t[e]={predecessor:[],successor:[]}),t[e]}t.topologicalTravel=function(t,i,r,o){if(t.length){var a=function(t){var i={},r=[];return P(t,(function(o){var a=n(i,o),s=function(t,e){var n=[];return P(t,(function(t){A(e,t)>=0&&n.push(t)})),n}(a.originalDeps=e(o),t);a.entryCount=s.length,0===a.entryCount&&r.push(o),P(s,(function(t){A(a.predecessor,t)<0&&a.predecessor.push(t);var e=n(i,t);A(e.successor,t)<0&&e.successor.push(o)}))})),{graph:i,noEntryList:r}}(i),s=a.graph,l=a.noEntryList,u={};for(P(t,(function(t){u[t]=!0}));l.length;){var h=l.pop(),c=s[h],p=!!u[h];p&&(r.call(o,h,c.originalDeps.slice()),delete u[h]),P(c.successor,p?f:d)}P(u,(function(){var t="";throw new Error(t)}))}function d(t){s[t].entryCount--,0===s[t].entryCount&&l.push(t)}function f(t){u[t]=!0,d(t)}}}(vc,(function(t){var e=[];P(vc.getClassesByMainType(t),(function(t){e=e.concat(t.dependencies||t.prototype.dependencies||[])})),e=O(e,(function(t){return kr(t).main})),"dataset"!==t&&A(e,"dataset")<=0&&e.unshift("dataset");return e}));var mc="";"undefined"!=typeof navigator&&(mc=navigator.platform||"");var _c="rgba(0, 0, 0, 0.2)",xc={darkMode:"auto",color:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],gradientColor:["#f6efa6","#d88273","#bf444c"],aria:{decal:{decals:[{color:_c,dashArrayX:[1,0],dashArrayY:[2,5],symbolSize:1,rotation:Math.PI/6},{color:_c,symbol:"circle",dashArrayX:[[8,8],[0,8,8,0]],dashArrayY:[6,0],symbolSize:.8},{color:_c,dashArrayX:[1,0],dashArrayY:[4,3],rotation:-Math.PI/4},{color:_c,dashArrayX:[[6,6],[0,6,6,0]],dashArrayY:[6,0]},{color:_c,dashArrayX:[[1,0],[1,6]],dashArrayY:[1,0,6,0],rotation:Math.PI/4},{color:_c,symbol:"triangle",dashArrayX:[[9,9],[0,9,9,0]],dashArrayY:[7,2],symbolSize:.75}]}},textStyle:{fontFamily:mc.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,stateAnimation:{duration:300,easing:"cubicOut"},animation:"auto",animationDuration:1e3,animationDurationUpdate:500,animationEasing:"cubicInOut",animationEasingUpdate:"cubicInOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1},bc=ut(["tooltip","label","itemName","itemId","seriesName"]),wc="original",Sc="arrayRows",Mc="objectRows",Tc="keyedColumns",Cc="typedArray",Ic="unknown",Ac="column",Dc="row",kc=1,Lc=2,Pc=3,Oc=xr();function Rc(t,e,n){var i={},r=Ec(e);if(!r||!t)return i;var o,a,s=[],l=[],u=e.ecModel,h=Oc(u).datasetMap,c=r.uid+"_"+n.seriesLayoutBy;P(t=t.slice(),(function(e,n){var r=U(e)?e:t[n]={name:e};"ordinal"===r.type&&null==o&&(o=n,a=f(r)),i[r.name]=[]}));var p=h.get(c)||h.set(c,{categoryWayDim:a,valueWayDim:0});function d(t,e,n){for(var i=0;i<n;i++)t.push(e+i)}function f(t){var e=t.dimsDef;return e?e.length:1}return P(t,(function(t,e){var n=t.name,r=f(t);if(null==o){var a=p.valueWayDim;d(i[n],a,r),d(l,a,r),p.valueWayDim+=r}else if(o===e)d(i[n],0,r),d(s,0,r);else{a=p.categoryWayDim;d(i[n],a,r),d(l,a,r),p.categoryWayDim+=r}})),s.length&&(i.itemName=s),l.length&&(i.seriesName=l),i}function Nc(t,e,n){var i={};if(!Ec(t))return i;var r,o=e.sourceFormat,a=e.dimensionsDefine;o!==Mc&&o!==Tc||P(a,(function(t,e){"name"===(U(t)?t.name:t)&&(r=e)}));var s=function(){for(var t={},i={},s=[],l=0,u=Math.min(5,n);l<u;l++){var h=zc(e.data,o,e.seriesLayoutBy,a,e.startIndex,l);s.push(h);var c=h===Pc;if(c&&null==t.v&&l!==r&&(t.v=l),(null==t.n||t.n===t.v||!c&&s[t.n]===Pc)&&(t.n=l),p(t)&&s[t.n]!==Pc)return t;c||(h===Lc&&null==i.v&&l!==r&&(i.v=l),null!=i.n&&i.n!==i.v||(i.n=l))}function p(t){return null!=t.v&&null!=t.n}return p(t)?t:p(i)?i:null}();if(s){i.value=[s.v];var l=null!=r?r:s.n;i.itemName=[l],i.seriesName=[l]}return i}function Ec(t){if(!t.get("data",!0))return Tr(t.ecModel,"dataset",{index:t.get("datasetIndex",!0),id:t.get("datasetId",!0)},Sr).models[0]}function Bc(t,e){return zc(t.data,t.sourceFormat,t.seriesLayoutBy,t.dimensionsDefine,t.startIndex,e)}function zc(t,e,n,i,r,o){var a,s,l;if(X(t))return Pc;if(i){var u=i[o];U(u)?(s=u.name,l=u.type):H(u)&&(s=u)}if(null!=l)return"ordinal"===l?kc:Pc;if(e===Sc){var h=t;if(n===Dc){for(var c=h[o],p=0;p<(c||[]).length&&p<5;p++)if(null!=(a=m(c[r+p])))return a}else for(p=0;p<h.length&&p<5;p++){var d=h[r+p];if(d&&null!=(a=m(d[o])))return a}}else if(e===Mc){var f=t;if(!s)return Pc;for(p=0;p<f.length&&p<5;p++){if((y=f[p])&&null!=(a=m(y[s])))return a}}else if(e===Tc){if(!s)return Pc;if(!(c=t[s])||X(c))return Pc;for(p=0;p<c.length&&p<5;p++)if(null!=(a=m(c[p])))return a}else if(e===wc){var g=t;for(p=0;p<g.length&&p<5;p++){var y,v=pr(y=g[p]);if(!V(v))return Pc;if(null!=(a=m(v[o])))return a}}function m(t){var e=H(t);return null!=t&&isFinite(t)&&""!==t?e?Lc:Pc:e&&"-"!==t?kc:void 0}return Pc}var Vc=ut();var Fc,Hc,Gc,Wc=xr(),Uc=xr(),Yc=function(){function t(){}return t.prototype.getColorFromPalette=function(t,e,n){var i=ur(this.get("color",!0)),r=this.get("colorLayer",!0);return Zc(this,Wc,i,r,t,e,n)},t.prototype.clearColorPalette=function(){!function(t,e){e(t).paletteIdx=0,e(t).paletteNameMap={}}(this,Wc)},t}();function Xc(t,e,n,i){var r=ur(t.get(["aria","decal","decals"]));return Zc(t,Uc,r,null,e,n,i)}function Zc(t,e,n,i,r,o,a){var s=e(o=o||t),l=s.paletteIdx||0,u=s.paletteNameMap=s.paletteNameMap||{};if(u.hasOwnProperty(r))return u[r];var h=null!=a&&i?function(t,e){for(var n=t.length,i=0;i<n;i++)if(t[i].length>e)return t[i];return t[n-1]}(i,a):n;if((h=h||n)&&h.length){var c=h[l];return r&&(u[r]=c),s.paletteIdx=(l+1)%h.length,c}}var jc=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.init=function(t,e,n,i,r,o){i=i||{},this.option=null,this._theme=new oh(i),this._locale=new oh(r),this._optionManager=o},e.prototype.setOption=function(t,e,n){var i=$c(e);this._optionManager.setOption(t,n,i),this._resetOption(null,i)},e.prototype.resetOption=function(t,e){return this._resetOption(t,$c(e))},e.prototype._resetOption=function(t,e){var n=!1,i=this._optionManager;if(!t||"recreate"===t){var r=i.mountOption("recreate"===t);this.option&&"recreate"!==t?(this.restoreData(),this._mergeOption(r,e)):Gc(this,r),n=!0}if("timeline"!==t&&"media"!==t||this.restoreData(),!t||"recreate"===t||"timeline"===t){var o=i.getTimelineOption(this);o&&(n=!0,this._mergeOption(o,e))}if(!t||"recreate"===t||"media"===t){var a=i.getMediaOption(this);a.length&&P(a,(function(t){n=!0,this._mergeOption(t,e)}),this)}return n},e.prototype.mergeOption=function(t){this._mergeOption(t,null)},e.prototype._mergeOption=function(t,e){var n=this.option,i=this._componentsMap,r=this._componentsCount,o=[],a=ut(),s=e&&e.replaceMergeMainTypeMap;Oc(this).datasetMap=ut(),P(t,(function(t,e){null!=t&&(vc.hasClass(e)?e&&(o.push(e),a.set(e,!0)):n[e]=null==n[e]?w(t):S(n[e],t,!0))})),s&&s.each((function(t,e){vc.hasClass(e)&&!a.get(e)&&(o.push(e),a.set(e,!0))})),vc.topologicalTravel(o,vc.getAllClassMainTypes(),(function(e){var o=function(t,e,n){var i=Vc.get(e);if(!i)return n;var r=i(t);return r?n.concat(r):n}(this,e,ur(t[e])),a=i.get(e),l=a?s&&s.get(e)?"replaceMerge":"normalMerge":"replaceAll",u=dr(a,o,l);(function(t,e,n){P(t,(function(t){var i=t.newOption;U(i)&&(t.keyInfo.mainType=e,t.keyInfo.subType=function(t,e,n,i){return e.type?e.type:n?n.subType:i.determineSubType(t,e)}(e,i,t.existing,n))}))})(u,e,vc),n[e]=null,i.set(e,null),r.set(e,0);var h=[],c=[],p=0;P(u,(function(t,n){var i=t.existing,r=t.newOption;if(r){var o=vc.getClass(e,t.keyInfo.subType,!0);if(i&&i.constructor===o)i.name=t.keyInfo.name,i.mergeOption(r,this),i.optionUpdated(r,!1);else{var a=T({componentIndex:n},t.keyInfo);T(i=new o(r,this,this,a),a),t.brandNew&&(i.__requireNewView=!0),i.init(r,this,this),i.optionUpdated(null,!0)}}else i&&(i.mergeOption({},this),i.optionUpdated({},!1));i?(h.push(i.option),c.push(i),p++):(h.push(void 0),c.push(void 0))}),this),n[e]=h,i.set(e,c),r.set(e,p),"series"===e&&Fc(this)}),this),this._seriesIndices||Fc(this)},e.prototype.getOption=function(){var t=w(this.option);return P(t,(function(e,n){if(vc.hasClass(n)){for(var i=ur(e),r=i.length,o=!1,a=r-1;a>=0;a--)i[a]&&!mr(i[a])?o=!0:(i[a]=null,!o&&r--);i.length=r,t[n]=i}})),delete t["\0_ec_inner"],t},e.prototype.getTheme=function(){return this._theme},e.prototype.getLocaleModel=function(){return this._locale},e.prototype.getLocale=function(t){return this.getLocaleModel().get(t)},e.prototype.setUpdatePayload=function(t){this._payload=t},e.prototype.getUpdatePayload=function(){return this._payload},e.prototype.getComponent=function(t,e){var n=this._componentsMap.get(t);if(n){var i=n[e||0];if(i)return i;if(null==e)for(var r=0;r<n.length;r++)if(n[r])return n[r]}},e.prototype.queryComponents=function(t){var e=t.mainType;if(!e)return[];var n,i=t.index,r=t.id,o=t.name,a=this._componentsMap.get(e);return a&&a.length?(null!=i?(n=[],P(ur(i),(function(t){a[t]&&n.push(a[t])}))):n=null!=r?qc("id",r,a):null!=o?qc("name",o,a):N(a,(function(t){return!!t})),Kc(n,t)):[]},e.prototype.findComponents=function(t){var e,n,i,r,o,a=t.query,s=t.mainType,l=(n=s+"Index",i=s+"Id",r=s+"Name",!(e=a)||null==e[n]&&null==e[i]&&null==e[r]?null:{mainType:s,index:e[n],id:e[i],name:e[r]}),u=l?this.queryComponents(l):N(this._componentsMap.get(s),(function(t){return!!t}));return o=Kc(u,t),t.filter?N(o,t.filter):o},e.prototype.eachComponent=function(t,e,n){var i=this._componentsMap;if(F(t)){var r=e,o=t;i.each((function(t,e){for(var n=0;t&&n<t.length;n++){var i=t[n];i&&o.call(r,e,i,i.componentIndex)}}))}else for(var a=H(t)?i.get(t):U(t)?this.findComponents(t):null,s=0;a&&s<a.length;s++){var l=a[s];l&&e.call(n,l,l.componentIndex)}},e.prototype.getSeriesByName=function(t){var e=yr(t,null);return N(this._componentsMap.get("series"),(function(t){return!!t&&null!=e&&t.name===e}))},e.prototype.getSeriesByIndex=function(t){return this._componentsMap.get("series")[t]},e.prototype.getSeriesByType=function(t){return N(this._componentsMap.get("series"),(function(e){return!!e&&e.subType===t}))},e.prototype.getSeries=function(){return N(this._componentsMap.get("series").slice(),(function(t){return!!t}))},e.prototype.getSeriesCount=function(){return this._componentsCount.get("series")},e.prototype.eachSeries=function(t,e){Hc(this),P(this._seriesIndices,(function(n){var i=this._componentsMap.get("series")[n];t.call(e,i,n)}),this)},e.prototype.eachRawSeries=function(t,e){P(this._componentsMap.get("series"),(function(n){n&&t.call(e,n,n.componentIndex)}))},e.prototype.eachSeriesByType=function(t,e,n){Hc(this),P(this._seriesIndices,(function(i){var r=this._componentsMap.get("series")[i];r.subType===t&&e.call(n,r,i)}),this)},e.prototype.eachRawSeriesByType=function(t,e,n){return P(this.getSeriesByType(t),e,n)},e.prototype.isSeriesFiltered=function(t){return Hc(this),null==this._seriesIndicesMap.get(t.componentIndex)},e.prototype.getCurrentSeriesIndices=function(){return(this._seriesIndices||[]).slice()},e.prototype.filterSeries=function(t,e){Hc(this);var n=[];P(this._seriesIndices,(function(i){var r=this._componentsMap.get("series")[i];t.call(e,r,i)&&n.push(i)}),this),this._seriesIndices=n,this._seriesIndicesMap=ut(n)},e.prototype.restoreData=function(t){Fc(this);var e=this._componentsMap,n=[];e.each((function(t,e){vc.hasClass(e)&&n.push(e)})),vc.topologicalTravel(n,vc.getAllClassMainTypes(),(function(n){P(e.get(n),(function(e){!e||"series"===n&&function(t,e){if(e){var n=e.seriesIndex,i=e.seriesId,r=e.seriesName;return null!=n&&t.componentIndex!==n||null!=i&&t.id!==i||null!=r&&t.name!==r}}(e,t)||e.restoreData()}))}))},e.internalField=(Fc=function(t){var e=t._seriesIndices=[];P(t._componentsMap.get("series"),(function(t){t&&e.push(t.componentIndex)})),t._seriesIndicesMap=ut(e)},Hc=function(t){},void(Gc=function(t,e){t.option={},t.option["\0_ec_inner"]=1,t._componentsMap=ut({series:[]}),t._componentsCount=ut();var n=e.aria;U(n)&&null==n.enabled&&(n.enabled=!0),function(t,e){var n=t.color&&!t.colorLayer;P(e,(function(e,i){"colorLayer"===i&&n||vc.hasClass(i)||("object"==typeof e?t[i]=t[i]?S(t[i],e,!1):w(e):null==t[i]&&(t[i]=e))}))}(e,t._theme.option),S(e,xc,!1),t._mergeOption(e,null)})),e}(oh);function qc(t,e,n){if(V(e)){var i=ut();return P(e,(function(t){null!=t&&(null!=yr(t,null)&&i.set(t,!0))})),N(n,(function(e){return e&&i.get(e[t])}))}var r=yr(e,null);return N(n,(function(e){return e&&null!=r&&e[t]===r}))}function Kc(t,e){return e.hasOwnProperty("subType")?N(t,(function(t){return t&&t.subType===e.subType})):t}function $c(t){var e=ut();return t&&P(ur(t.replaceMerge),(function(t){e.set(t,!0)})),{replaceMergeMainTypeMap:e}}k(jc,Yc);var Jc=["getDom","getZr","getWidth","getHeight","getDevicePixelRatio","dispatchAction","isDisposed","on","off","getDataURL","getConnectedDataURL","getOption","getId","updateLabelLayout"],Qc=function(t){P(Jc,(function(e){this[e]=B(t[e],t)}),this)},tp={},ep=function(){function t(){this._coordinateSystems=[]}return t.prototype.create=function(t,e){var n=[];P(tp,(function(i,r){var o=i.create(t,e);n=n.concat(o||[])})),this._coordinateSystems=n},t.prototype.update=function(t,e){P(this._coordinateSystems,(function(n){n.update&&n.update(t,e)}))},t.prototype.getCoordinateSystems=function(){return this._coordinateSystems.slice()},t.register=function(t,e){tp[t]=e},t.get=function(t){return tp[t]},t}(),np=/^(min|max)?(.+)$/,ip=function(){function t(t){this._timelineOptions=[],this._mediaList=[],this._currentMediaIndices=[],this._api=t}return t.prototype.setOption=function(t,e,n){t&&(P(ur(t.series),(function(t){t&&t.data&&X(t.data)&&at(t.data)})),P(ur(t.dataset),(function(t){t&&t.source&&X(t.source)&&at(t.source)}))),t=w(t);var i=this._optionBackup,r=function(t,e,n){var i,r,o=[],a=t.baseOption,s=t.timeline,l=t.options,u=t.media,h=!!t.media,c=!!(l||s||a&&a.timeline);a?(r=a).timeline||(r.timeline=s):((c||h)&&(t.options=t.media=null),r=t);h&&V(u)&&P(u,(function(t){t&&t.option&&(t.query?o.push(t):i||(i=t))}));function p(t){P(e,(function(e){e(t,n)}))}return p(r),P(l,(function(t){return p(t)})),P(o,(function(t){return p(t.option)})),{baseOption:r,timelineOptions:l||[],mediaDefault:i,mediaList:o}}(t,e,!i);this._newBaseOption=r.baseOption,i?(r.timelineOptions.length&&(i.timelineOptions=r.timelineOptions),r.mediaList.length&&(i.mediaList=r.mediaList),r.mediaDefault&&(i.mediaDefault=r.mediaDefault)):this._optionBackup=r},t.prototype.mountOption=function(t){var e=this._optionBackup;return this._timelineOptions=e.timelineOptions,this._mediaList=e.mediaList,this._mediaDefault=e.mediaDefault,this._currentMediaIndices=[],w(t?e.baseOption:this._newBaseOption)},t.prototype.getTimelineOption=function(t){var e,n=this._timelineOptions;if(n.length){var i=t.getComponent("timeline");i&&(e=w(n[i.getCurrentIndex()]))}return e},t.prototype.getMediaOption=function(t){var e,n,i=this._api.getWidth(),r=this._api.getHeight(),o=this._mediaList,a=this._mediaDefault,s=[],l=[];if(!o.length&&!a)return l;for(var u=0,h=o.length;u<h;u++)rp(o[u].query,i,r)&&s.push(u);return!s.length&&a&&(s=[-1]),s.length&&(e=s,n=this._currentMediaIndices,e.join(",")!==n.join(","))&&(l=O(s,(function(t){return w(-1===t?a.option:o[t].option)}))),this._currentMediaIndices=s,l},t}();function rp(t,e,n){var i={width:e,height:n,aspectratio:e/n},r=!0;return P(t,(function(t,e){var n=e.match(np);if(n&&n[1]&&n[2]){var o=n[1],a=n[2].toLowerCase();(function(t,e,n){return"min"===n?t>=e:"max"===n?t<=e:t===e})(i[a],t,o)||(r=!1)}})),r}var op=P,ap=U,sp=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function lp(t){var e=t&&t.itemStyle;if(e)for(var n=0,i=sp.length;n<i;n++){var r=sp[n],o=e.normal,a=e.emphasis;o&&o[r]&&(t[r]=t[r]||{},t[r].normal?S(t[r].normal,o[r]):t[r].normal=o[r],o[r]=null),a&&a[r]&&(t[r]=t[r]||{},t[r].emphasis?S(t[r].emphasis,a[r]):t[r].emphasis=a[r],a[r]=null)}}function up(t,e,n){if(t&&t[e]&&(t[e].normal||t[e].emphasis)){var i=t[e].normal,r=t[e].emphasis;i&&(n?(t[e].normal=t[e].emphasis=null,C(t[e],i)):t[e]=i),r&&(t.emphasis=t.emphasis||{},t.emphasis[e]=r,r.focus&&(t.emphasis.focus=r.focus),r.blurScope&&(t.emphasis.blurScope=r.blurScope))}}function hp(t){up(t,"itemStyle"),up(t,"lineStyle"),up(t,"areaStyle"),up(t,"label"),up(t,"labelLine"),up(t,"upperLabel"),up(t,"edgeLabel")}function cp(t,e){var n=ap(t)&&t[e],i=ap(n)&&n.textStyle;if(i){0;for(var r=0,o=cr.length;r<o;r++){var a=cr[r];i.hasOwnProperty(a)&&(n[a]=i[a])}}}function pp(t){t&&(hp(t),cp(t,"label"),t.emphasis&&cp(t.emphasis,"label"))}function dp(t){return V(t)?t:t?[t]:[]}function fp(t){return(V(t)?t[0]:t)||{}}function gp(t,e){op(dp(t.series),(function(t){ap(t)&&function(t){if(ap(t)){lp(t),hp(t),cp(t,"label"),cp(t,"upperLabel"),cp(t,"edgeLabel"),t.emphasis&&(cp(t.emphasis,"label"),cp(t.emphasis,"upperLabel"),cp(t.emphasis,"edgeLabel"));var e=t.markPoint;e&&(lp(e),pp(e));var n=t.markLine;n&&(lp(n),pp(n));var i=t.markArea;i&&pp(i);var r=t.data;if("graph"===t.type){r=r||t.nodes;var o=t.links||t.edges;if(o&&!X(o))for(var a=0;a<o.length;a++)pp(o[a]);P(t.categories,(function(t){hp(t)}))}if(r&&!X(r))for(a=0;a<r.length;a++)pp(r[a]);if((e=t.markPoint)&&e.data){var s=e.data;for(a=0;a<s.length;a++)pp(s[a])}if((n=t.markLine)&&n.data){var l=n.data;for(a=0;a<l.length;a++)V(l[a])?(pp(l[a][0]),pp(l[a][1])):pp(l[a])}"gauge"===t.type?(cp(t,"axisLabel"),cp(t,"title"),cp(t,"detail")):"treemap"===t.type?(up(t.breadcrumb,"itemStyle"),P(t.levels,(function(t){hp(t)}))):"tree"===t.type&&hp(t.leaves)}}(t)}));var n=["xAxis","yAxis","radiusAxis","angleAxis","singleAxis","parallelAxis","radar"];e&&n.push("valueAxis","categoryAxis","logAxis","timeAxis"),op(n,(function(e){op(dp(t[e]),(function(t){t&&(cp(t,"axisLabel"),cp(t.axisPointer,"label"))}))})),op(dp(t.parallel),(function(t){var e=t&&t.parallelAxisDefault;cp(e,"axisLabel"),cp(e&&e.axisPointer,"label")})),op(dp(t.calendar),(function(t){up(t,"itemStyle"),cp(t,"dayLabel"),cp(t,"monthLabel"),cp(t,"yearLabel")})),op(dp(t.radar),(function(t){cp(t,"name"),t.name&&null==t.axisName&&(t.axisName=t.name,delete t.name),null!=t.nameGap&&null==t.axisNameGap&&(t.axisNameGap=t.nameGap,delete t.nameGap)})),op(dp(t.geo),(function(t){ap(t)&&(pp(t),op(dp(t.regions),(function(t){pp(t)})))})),op(dp(t.timeline),(function(t){pp(t),up(t,"label"),up(t,"itemStyle"),up(t,"controlStyle",!0);var e=t.data;V(e)&&P(e,(function(t){U(t)&&(up(t,"label"),up(t,"itemStyle"))}))})),op(dp(t.toolbox),(function(t){up(t,"iconStyle"),op(t.feature,(function(t){up(t,"iconStyle")}))})),cp(fp(t.axisPointer),"label"),cp(fp(t.tooltip).axisPointer,"label")}function yp(t){t&&P(vp,(function(e){e[0]in t&&!(e[1]in t)&&(t[e[1]]=t[e[0]])}))}var vp=[["x","left"],["y","top"],["x2","right"],["y2","bottom"]],mp=["grid","geo","parallel","legend","toolbox","title","visualMap","dataZoom","timeline"],_p=[["borderRadius","barBorderRadius"],["borderColor","barBorderColor"],["borderWidth","barBorderWidth"]];function xp(t){var e=t&&t.itemStyle;if(e)for(var n=0;n<_p.length;n++){var i=_p[n][1],r=_p[n][0];null!=e[i]&&(e[r]=e[i])}}function bp(t){t&&"edge"===t.alignTo&&null!=t.margin&&null==t.edgeDistance&&(t.edgeDistance=t.margin)}function wp(t){t&&t.downplay&&!t.blur&&(t.blur=t.downplay)}function Sp(t,e){if(t)for(var n=0;n<t.length;n++)e(t[n]),t[n]&&Sp(t[n].children,e)}function Mp(t,e){gp(t,e),t.series=ur(t.series),P(t.series,(function(t){if(U(t)){var e=t.type;if("line"===e)null!=t.clipOverflow&&(t.clip=t.clipOverflow);else if("pie"===e||"gauge"===e){if(null!=t.clockWise&&(t.clockwise=t.clockWise),bp(t.label),(r=t.data)&&!X(r))for(var n=0;n<r.length;n++)bp(r[n]);null!=t.hoverOffset&&(t.emphasis=t.emphasis||{},(t.emphasis.scaleSize=null)&&(t.emphasis.scaleSize=t.hoverOffset))}else if("gauge"===e){var i=function(t,e){for(var n=e.split(","),i=t,r=0;r<n.length&&null!=(i=i&&i[n[r]]);r++);return i}(t,"pointer.color");null!=i&&function(t,e,n,i){for(var r,o=e.split(","),a=t,s=0;s<o.length-1;s++)null==a[r=o[s]]&&(a[r]={}),a=a[r];(i||null==a[o[s]])&&(a[o[s]]=n)}(t,"itemStyle.color",i)}else if("bar"===e){var r;if(xp(t),xp(t.backgroundStyle),xp(t.emphasis),(r=t.data)&&!X(r))for(n=0;n<r.length;n++)"object"==typeof r[n]&&(xp(r[n]),xp(r[n]&&r[n].emphasis))}else if("sunburst"===e){var o=t.highlightPolicy;o&&(t.emphasis=t.emphasis||{},t.emphasis.focus||(t.emphasis.focus=o)),wp(t),Sp(t.data,wp)}else"graph"===e||"sankey"===e?function(t){t&&null!=t.focusNodeAdjacency&&(t.emphasis=t.emphasis||{},null==t.emphasis.focus&&(t.emphasis.focus="adjacency"))}(t):"map"===e&&(t.mapType&&!t.map&&(t.map=t.mapType),t.mapLocation&&C(t,t.mapLocation));null!=t.hoverAnimation&&(t.emphasis=t.emphasis||{},t.emphasis&&null==t.emphasis.scale&&(t.emphasis.scale=t.hoverAnimation)),yp(t)}})),t.dataRange&&(t.visualMap=t.dataRange),P(mp,(function(e){var n=t[e];n&&(V(n)||(n=[n]),P(n,(function(t){yp(t)})))}))}function Tp(t){P(t,(function(e,n){var i=[],r=[NaN,NaN],o=[e.stackResultDimension,e.stackedOverDimension],a=e.data,s=e.isStackedByIndex,l=a.map(o,(function(o,l,u){var h,c,p=a.get(e.stackedDimension,u);if(isNaN(p))return r;s?c=a.getRawIndex(u):h=a.get(e.stackedByDimension,u);for(var d=NaN,f=n-1;f>=0;f--){var g=t[f];if(s||(c=g.data.rawIndexOf(g.stackedByDimension,h)),c>=0){var y=g.data.getByRawIndex(g.stackResultDimension,c);if(p>=0&&y>0||p<=0&&y<0){p+=y,d=y;break}}}return i[0]=p,i[1]=d,i}));a.hostModel.setData(l),e.data=l}))}var Cp,Ip,Ap,Dp,kp,Lp=function(t){this.data=t.data||(t.sourceFormat===Tc?{}:[]),this.sourceFormat=t.sourceFormat||Ic,this.seriesLayoutBy=t.seriesLayoutBy||Ac,this.startIndex=t.startIndex||0,this.dimensionsDefine=t.dimensionsDefine,this.dimensionsDetectedCount=t.dimensionsDetectedCount,this.encodeDefine=t.encodeDefine,this.metaRawOption=t.metaRawOption};function Pp(t){return t instanceof Lp}function Op(t,e,n,i){n=n||Ep(t);var r=e.seriesLayoutBy,o=function(t,e,n,i,r){var o,a;if(!t)return{dimensionsDefine:Bp(r),startIndex:a,dimensionsDetectedCount:o};if(e===Sc){var s=t;"auto"===i||null==i?zp((function(t){null!=t&&"-"!==t&&(H(t)?null==a&&(a=1):a=0)}),n,s,10):a=W(i)?i:i?1:0,r||1!==a||(r=[],zp((function(t,e){r[e]=null!=t?t+"":""}),n,s,1/0)),o=r?r.length:n===Dc?s.length:s[0]?s[0].length:null}else if(e===Mc)r||(r=function(t){var e,n=0;for(;n<t.length&&!(e=t[n++]););if(e){var i=[];return P(e,(function(t,e){i.push(e)})),i}}(t));else if(e===Tc)r||(r=[],P(t,(function(t,e){r.push(e)})));else if(e===wc){var l=pr(t[0]);o=V(l)&&l.length||1}return{startIndex:a,dimensionsDefine:Bp(r),dimensionsDetectedCount:o}}(t,n,r,e.sourceHeader,e.dimensions);return new Lp({data:t,sourceFormat:n,seriesLayoutBy:r,dimensionsDefine:o.dimensionsDefine,startIndex:o.startIndex,dimensionsDetectedCount:o.dimensionsDetectedCount,encodeDefine:Np(i),metaRawOption:w(e)})}function Rp(t){return new Lp({data:t,sourceFormat:X(t)?Cc:wc})}function Np(t){return t?ut(t):null}function Ep(t){var e=Ic;if(X(t))e=Cc;else if(V(t)){0===t.length&&(e=Sc);for(var n=0,i=t.length;n<i;n++){var r=t[n];if(null!=r){if(V(r)){e=Sc;break}if(U(r)){e=Mc;break}}}}else if(U(t))for(var o in t)if(ct(t,o)&&L(t[o])){e=Tc;break}return e}function Bp(t){if(t){var e=ut();return O(t,(function(t,n){var i={name:(t=U(t)?t:{name:t}).name,displayName:t.displayName,type:t.type};if(null==i.name)return i;i.name+="",null==i.displayName&&(i.displayName=i.name);var r=e.get(i.name);return r?i.name+="-"+r.count++:e.set(i.name,{count:1}),i}))}}function zp(t,e,n,i){if(e===Dc)for(var r=0;r<n.length&&r<i;r++)t(n[r]?n[r][0]:null,r);else{var o=n[0]||[];for(r=0;r<o.length&&r<i;r++)t(o[r],r)}}var Vp=function(){function t(t,e){var n=Pp(t)?t:Rp(t);this._source=n;var i=this._data=n.data;n.sourceFormat===Cc&&(this._offset=0,this._dimSize=e,this._data=i),kp(this,i,n)}return t.prototype.getSource=function(){return this._source},t.prototype.count=function(){return 0},t.prototype.getItem=function(t,e){},t.prototype.appendData=function(t){},t.prototype.clean=function(){},t.protoInitialize=function(){var e=t.prototype;e.pure=!1,e.persistent=!0}(),t.internalField=function(){var t;kp=function(t,r,o){var a=o.sourceFormat,s=o.seriesLayoutBy,l=o.startIndex,u=o.dimensionsDefine,h=Dp[qp(a,s)];if(T(t,h),a===Cc)t.getItem=e,t.count=i,t.fillStorage=n;else{var c=Gp(a,s);t.getItem=B(c,null,r,l,u);var p=Yp(a,s);t.count=B(p,null,r,l,u)}};var e=function(t,e){t-=this._offset,e=e||[];for(var n=this._data,i=this._dimSize,r=i*t,o=0;o<i;o++)e[o]=n[r+o];return e},n=function(t,e,n,i){for(var r=this._data,o=this._dimSize,a=0;a<o;a++){for(var s=i[a],l=null==s[0]?1/0:s[0],u=null==s[1]?-1/0:s[1],h=e-t,c=n[a],p=0;p<h;p++){var d=r[p*o+a];c[t+p]=d,d<l&&(l=d),d>u&&(u=d)}s[0]=l,s[1]=u}},i=function(){return this._data?this._data.length/this._dimSize:0};function r(t){for(var e=0;e<t.length;e++)this._data.push(t[e])}(t={}).arrayRows_column={pure:!0,appendData:r},t.arrayRows_row={pure:!0,appendData:function(){throw new Error('Do not support appendData when set seriesLayoutBy: "row".')}},t.objectRows={pure:!0,appendData:r},t.keyedColumns={pure:!0,appendData:function(t){var e=this._data;P(t,(function(t,n){for(var i=e[n]||(e[n]=[]),r=0;r<(t||[]).length;r++)i.push(t[r])}))}},t.original={appendData:r},t.typedArray={persistent:!1,pure:!0,appendData:function(t){this._data=t},clean:function(){this._offset+=this.count(),this._data=null}},Dp=t}(),t}(),Fp=function(t,e,n,i){return t[i]},Hp=((Cp={}).arrayRows_column=function(t,e,n,i){return t[i+e]},Cp.arrayRows_row=function(t,e,n,i){i+=e;for(var r=[],o=t,a=0;a<o.length;a++){var s=o[a];r.push(s?s[i]:null)}return r},Cp.objectRows=Fp,Cp.keyedColumns=function(t,e,n,i){for(var r=[],o=0;o<n.length;o++){var a=n[o].name;0;var s=t[a];r.push(s?s[i]:null)}return r},Cp.original=Fp,Cp);function Gp(t,e){var n=Hp[qp(t,e)];return n}var Wp=function(t,e,n){return t.length},Up=((Ip={}).arrayRows_column=function(t,e,n){return Math.max(0,t.length-e)},Ip.arrayRows_row=function(t,e,n){var i=t[0];return i?Math.max(0,i.length-e):0},Ip.objectRows=Wp,Ip.keyedColumns=function(t,e,n){var i=n[0].name;var r=t[i];return r?r.length:0},Ip.original=Wp,Ip);function Yp(t,e){var n=Up[qp(t,e)];return n}var Xp=function(t,e,n){return null!=e?t[e]:t},Zp=((Ap={}).arrayRows=Xp,Ap.objectRows=function(t,e,n){return null!=e?t[n]:t},Ap.keyedColumns=Xp,Ap.original=function(t,e,n){var i=pr(t);return null!=e&&i instanceof Array?i[e]:i},Ap.typedArray=Xp,Ap);function jp(t){var e=Zp[t];return e}function qp(t,e){return t===Sc?t+"_"+e:t}function Kp(t,e,n){if(t){var i=t.getRawDataItem(e);if(null!=i){var r,o,a=t.getProvider().getSource().sourceFormat,s=t.getDimensionInfo(n);return s&&(r=s.name,o=s.index),jp(a)(i,o,r)}}}var $p=/\{@(.+?)\}/g,Jp=function(){function t(){}return t.prototype.getDataParams=function(t,e){var n=this.getData(e),i=this.getRawValue(t,e),r=n.getRawIndex(t),o=n.getName(t),a=n.getRawDataItem(t),s=n.getItemVisual(t,"style"),l=s&&s[n.getItemVisual(t,"drawType")||"fill"],u=s&&s.stroke,h=this.mainType,c="series"===h,p=n.userOutput;return{componentType:h,componentSubType:this.subType,componentIndex:this.componentIndex,seriesType:c?this.subType:null,seriesIndex:this.seriesIndex,seriesId:c?this.id:null,seriesName:c?this.name:null,name:o,dataIndex:r,data:a,dataType:e,value:i,color:l,borderColor:u,dimensionNames:p?p.dimensionNames:null,encode:p?p.encode:null,$vars:["seriesName","name","value"]}},t.prototype.getFormattedLabel=function(t,e,n,i,r,o){e=e||"normal";var a=this.getData(n),s=this.getDataParams(t,n);(o&&(s.value=o.interpolatedValue),null!=i&&V(s.value)&&(s.value=s.value[i]),r)||(r=a.getItemModel(t).get("normal"===e?["label","formatter"]:[e,"label","formatter"]));return"function"==typeof r?(s.status=e,s.dimensionIndex=i,r(s)):"string"==typeof r?ec(r,s).replace($p,(function(e,n){var i=n.length,r="["===n.charAt(0)&&"]"===n.charAt(i-1)?+n.slice(1,i-1):n,s=Kp(a,t,r);if(o&&V(o.interpolatedValue)){var l=a.getDimensionInfo(r);l&&(s=o.interpolatedValue[l.index])}return null!=s?s+"":""})):void 0},t.prototype.getRawValue=function(t,e){return Kp(this.getData(e),t)},t.prototype.formatTooltip=function(t,e,n){},t}();function Qp(t){var e,n;return U(t)?t.type&&(n=t):e=t,{markupText:e,markupFragment:n}}function td(t){return new ed(t)}var ed=function(){function t(t){t=t||{},this._reset=t.reset,this._plan=t.plan,this._count=t.count,this._onDirty=t.onDirty,this._dirty=!0}return t.prototype.perform=function(t){var e,n=this._upstream,i=t&&t.skip;if(this._dirty&&n){var r=this.context;r.data=r.outputData=n.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this),this._plan&&!i&&(e=this._plan(this.context));var o,a=h(this._modBy),s=this._modDataCount||0,l=h(t&&t.modBy),u=t&&t.modDataCount||0;function h(t){return!(t>=1)&&(t=1),t}a===l&&s===u||(e="reset"),(this._dirty||"reset"===e)&&(this._dirty=!1,o=this._doReset(i)),this._modBy=l,this._modDataCount=u;var c=t&&t.step;if(this._dueEnd=n?n._outputDueEnd:this._count?this._count(this.context):1/0,this._progress){var p=this._dueIndex,d=Math.min(null!=c?this._dueIndex+c:1/0,this._dueEnd);if(!i&&(o||p<d)){var f=this._progress;if(V(f))for(var g=0;g<f.length;g++)this._doProgress(f[g],p,d,l,u);else this._doProgress(f,p,d,l,u)}this._dueIndex=d;var y=null!=this._settedOutputEnd?this._settedOutputEnd:d;0,this._outputDueEnd=y}else this._dueIndex=this._outputDueEnd=null!=this._settedOutputEnd?this._settedOutputEnd:this._dueEnd;return this.unfinished()},t.prototype.dirty=function(){this._dirty=!0,this._onDirty&&this._onDirty(this.context)},t.prototype._doProgress=function(t,e,n,i,r){nd.reset(e,n,i,r),this._callingProgress=t,this._callingProgress({start:e,end:n,count:n-e,next:nd.next},this.context)},t.prototype._doReset=function(t){var e,n;this._dueIndex=this._outputDueEnd=this._dueEnd=0,this._settedOutputEnd=null,!t&&this._reset&&((e=this._reset(this.context))&&e.progress&&(n=e.forceFirstProgress,e=e.progress),V(e)&&!e.length&&(e=null)),this._progress=e,this._modBy=this._modDataCount=null;var i=this._downstream;return i&&i.dirty(),n},t.prototype.unfinished=function(){return this._progress&&this._dueIndex<this._dueEnd},t.prototype.pipe=function(t){(this._downstream!==t||this._dirty)&&(this._downstream=t,t._upstream=this,t.dirty())},t.prototype.dispose=function(){this._disposed||(this._upstream&&(this._upstream._downstream=null),this._downstream&&(this._downstream._upstream=null),this._dirty=!1,this._disposed=!0)},t.prototype.getUpstream=function(){return this._upstream},t.prototype.getDownstream=function(){return this._downstream},t.prototype.setOutputEnd=function(t){this._outputDueEnd=this._settedOutputEnd=t},t}(),nd=function(){var t,e,n,i,r,o={reset:function(l,u,h,c){e=l,t=u,n=h,i=c,r=Math.ceil(i/n),o.next=n>1&&i>0?s:a}};return o;function a(){return e<t?e++:null}function s(){var o=e%r*n+Math.ceil(e/r),a=e>=t?null:o<i?o:e;return e++,a}}();function id(t,e){var n=e&&e.type;if("ordinal"===n){var i=e&&e.ordinalMeta;return i?i.parseAndCollect(t):t}return"time"===n&&"number"!=typeof t&&null!=t&&"-"!==t&&(t=+Ki(t)),null==t||""===t?NaN:+t}ut({number:function(t){return parseFloat(t)},time:function(t){return+Ki(t)},trim:function(t){return"string"==typeof t?rt(t):t}});var rd=function(){function t(t,e){var n="desc"===t;this._resultLT=n?1:-1,null==e&&(e=n?"min":"max"),this._incomparable="min"===e?-1/0:1/0}return t.prototype.evaluate=function(t,e){var n=typeof t,i=typeof e,r="number"===n?t:tr(t),o="number"===i?e:tr(e),a=isNaN(r),s=isNaN(o);if(a&&(r=this._incomparable),s&&(o=this._incomparable),a&&s){var l="string"===n,u="string"===i;l&&(r=u?t:0),u&&(o=l?e:0)}return r<o?this._resultLT:r>o?-this._resultLT:0},t}(),od=function(){function t(){}return t.prototype.getRawData=function(){throw new Error("not supported")},t.prototype.getRawDataItem=function(t){throw new Error("not supported")},t.prototype.cloneRawData=function(){},t.prototype.getDimensionInfo=function(t){},t.prototype.cloneAllDimensionInfo=function(){},t.prototype.count=function(){},t.prototype.retrieveValue=function(t,e){},t.prototype.retrieveValueFromItem=function(t,e){},t.prototype.convertValue=function(t,e){return id(t,e)},t}();function ad(t){var e=t.sourceFormat;if(!pd(e)){var n="";0,ar(n)}return t.data}function sd(t){var e=t.sourceFormat,n=t.data;if(!pd(e)){var i="";0,ar(i)}if(e===Sc){for(var r=[],o=0,a=n.length;o<a;o++)r.push(n[o].slice());return r}if(e===Mc){for(r=[],o=0,a=n.length;o<a;o++)r.push(T({},n[o]));return r}}function ld(t,e,n){if(null!=n)return"number"==typeof n||!isNaN(n)&&!ct(e,n)?t[n]:ct(e,n)?e[n]:void 0}function ud(t){return w(t)}var hd=ut();function cd(t,e,n,i){var r="";e.length||ar(r),U(t)||ar(r);var o=t.type,a=hd.get(o);a||ar(r);var s=O(e,(function(t){return function(t,e){var n=new od,i=t.data,r=n.sourceFormat=t.sourceFormat,o=t.startIndex,a="";t.seriesLayoutBy!==Ac&&ar(a);var s=[],l={},u=t.dimensionsDefine;if(u)P(u,(function(t,e){var n=t.name,i={index:e,name:n,displayName:t.displayName};if(s.push(i),null!=n){var r="";ct(l,n)&&ar(r),l[n]=i}}));else for(var h=0;h<t.dimensionsDetectedCount;h++)s.push({index:h});var c=Gp(r,Ac);e.__isBuiltIn&&(n.getRawDataItem=function(t){return c(i,o,s,t)},n.getRawData=B(ad,null,t)),n.cloneRawData=B(sd,null,t);var p=Yp(r,Ac);n.count=B(p,null,i,o,s);var d=jp(r);n.retrieveValue=function(t,e){var n=c(i,o,s,t);return f(n,e)};var f=n.retrieveValueFromItem=function(t,e){if(null!=t){var n=s[e];return n?d(t,e,n.name):void 0}};return n.getDimensionInfo=B(ld,null,s,l),n.cloneAllDimensionInfo=B(ud,null,s),n}(t,a)})),l=ur(a.transform({upstream:s[0],upstreamList:s,config:w(t.config)}));return O(l,(function(t,n){var i,r="";U(t)||ar(r),t.data||ar(r),pd(Ep(t.data))||ar(r);var o=e[0];if(o&&0===n&&!t.dimensions){var a=o.startIndex;a&&(t.data=o.data.slice(0,a).concat(t.data)),i={seriesLayoutBy:Ac,sourceHeader:a,dimensions:o.metaRawOption.dimensions}}else i={seriesLayoutBy:Ac,sourceHeader:0,dimensions:t.dimensions};return Op(t.data,i,null,null)}))}function pd(t){return t===Sc||t===Mc}var dd=function(){function t(t){this._sourceList=[],this._upstreamSignList=[],this._versionSignBase=0,this._sourceHost=t}return t.prototype.dirty=function(){this._setLocalSource([],[])},t.prototype._setLocalSource=function(t,e){this._sourceList=t,this._upstreamSignList=e,this._versionSignBase++,this._versionSignBase>9e10&&(this._versionSignBase=0)},t.prototype._getVersionSign=function(){return this._sourceHost.uid+"_"+this._versionSignBase},t.prototype.prepareSource=function(){this._isDirty()&&this._createSource()},t.prototype._createSource=function(){this._setLocalSource([],[]);var t,e,n=this._sourceHost,i=this._getUpstreamSourceManagers(),r=!!i.length;if(gd(n)){var o=n,a=void 0,s=void 0,l=void 0;if(r){var u=i[0];u.prepareSource(),a=(l=u.getSource()).data,s=l.sourceFormat,e=[u._getVersionSign()]}else s=X(a=o.get("data",!0))?Cc:wc,e=[];var h=this._getSourceMetaRawOption(),c=l?l.metaRawOption:null;t=[Op(a,{seriesLayoutBy:Q(h.seriesLayoutBy,c?c.seriesLayoutBy:null),sourceHeader:Q(h.sourceHeader,c?c.sourceHeader:null),dimensions:Q(h.dimensions,c?c.dimensions:null)},s,o.get("encode",!0))]}else{var p=n;if(r){var d=this._applyTransform(i);t=d.sourceList,e=d.upstreamSignList}else{t=[Op(p.get("source",!0),this._getSourceMetaRawOption(),null,null)],e=[]}}this._setLocalSource(t,e)},t.prototype._applyTransform=function(t){var e,n=this._sourceHost,i=n.get("transform",!0),r=n.get("fromTransformResult",!0);if(null!=r){var o="";1!==t.length&&yd(o)}var a,s=[],l=[];return P(t,(function(t){t.prepareSource();var e=t.getSource(r||0),n="";null==r||e||yd(n),s.push(e),l.push(t._getVersionSign())})),i?e=function(t,e,n){var i=ur(t),r=i.length,o="";r||ar(o);for(var a=0,s=r;a<s;a++)e=cd(i[a],e),a!==s-1&&(e.length=Math.max(e.length,1));return e}(i,s,n.componentIndex):null!=r&&(e=[(a=s[0],new Lp({data:a.data,sourceFormat:a.sourceFormat,seriesLayoutBy:a.seriesLayoutBy,dimensionsDefine:w(a.dimensionsDefine),startIndex:a.startIndex,dimensionsDetectedCount:a.dimensionsDetectedCount,encodeDefine:Np(a.encodeDefine)}))]),{sourceList:e,upstreamSignList:l}},t.prototype._isDirty=function(){if(!this._sourceList.length)return!0;for(var t=this._getUpstreamSourceManagers(),e=0;e<t.length;e++){var n=t[e];if(n._isDirty()||this._upstreamSignList[e]!==n._getVersionSign())return!0}},t.prototype.getSource=function(t){return this._sourceList[t||0]},t.prototype._getUpstreamSourceManagers=function(){var t=this._sourceHost;if(gd(t)){var e=Ec(t);return e?[e.getSourceManager()]:[]}return O(function(t){return t.get("transform",!0)||t.get("fromTransformResult",!0)?Tr(t.ecModel,"dataset",{index:t.get("fromDatasetIndex",!0),id:t.get("fromDatasetId",!0)},Sr).models:[]}(t),(function(t){return t.getSourceManager()}))},t.prototype._getSourceMetaRawOption=function(){var t,e,n,i=this._sourceHost;if(gd(i))t=i.get("seriesLayoutBy",!0),e=i.get("sourceHeader",!0),n=i.get("dimensions",!0);else if(!this._getUpstreamSourceManagers().length){var r=i;t=r.get("seriesLayoutBy",!0),e=r.get("sourceHeader",!0),n=r.get("dimensions",!0)}return{seriesLayoutBy:t,sourceHeader:e,dimensions:n}},t}();function fd(t){t.option.transform&&at(t.option.transform)}function gd(t){return"series"===t.mainType}function yd(t){throw new Error(t)}function vd(t,e){var n=t.color||"#6e7079",i=t.fontSize||12,r=t.fontWeight||"400",o=t.color||"#464646",a=t.fontSize||14,s=t.fontWeight||"900";return"html"===e?{nameStyle:"font-size:"+i+"px;color:"+n+";font-weight:"+r,valueStyle:"font-size:"+a+"px;color:"+o+";font-weight:"+s}:{nameStyle:{fontSize:i,fill:n,fontWeight:r},valueStyle:{fontSize:a,fill:o,fontWeight:s}}}var md=[0,10,20,30],_d=["","\n","\n\n","\n\n\n"];function xd(t,e){return e.type=t,e}function bd(t){return ct(wd,t.type)&&wd[t.type]}var wd={section:{planLayout:function(t){var e=t.blocks.length,n=e>1||e>0&&!t.noHeader,i=0;P(t.blocks,(function(t){bd(t).planLayout(t);var e=t.__gapLevelBetweenSubBlocks;e>=i&&(i=e+(!n||e&&("section"!==t.type||t.noHeader)?0:1))})),t.__gapLevelBetweenSubBlocks=i},build:function(t,e,n,i){var r=e.noHeader,o=Md(e),a=function(t,e,n,i){var r=[],o=e.blocks||[];it(!o||V(o)),o=o||[];var a=t.orderMode;if(e.sortBlocks&&a){o=o.slice();var s={valueAsc:"asc",valueDesc:"desc"};if(ct(s,a)){var l=new rd(s[a],null);o.sort((function(t,e){return l.evaluate(t.sortParam,e.sortParam)}))}else"seriesDesc"===a&&o.reverse()}var u=Md(e);if(P(o,(function(e,n){var o=bd(e).build(t,e,n>0?u.html:0,i);null!=o&&r.push(o)})),!r.length)return;return"richText"===t.renderMode?r.join(u.richText):Td(r.join(""),n)}(t,e,r?n:o.html,i);if(r)return a;var s=Jh(e.header,"ordinal",t.useUTC),l=vd(i,t.renderMode).nameStyle;return"richText"===t.renderMode?Cd(t,s,l)+o.richText+a:Td('<div style="'+l+";"+'line-height:1;">'+$h(s)+"</div>"+a,n)}},nameValue:{planLayout:function(t){t.__gapLevelBetweenSubBlocks=0},build:function(t,e,n,i){var r=t.renderMode,o=e.noName,a=e.noValue,s=!e.markerType,l=e.name,u=e.value,h=t.useUTC;if(!o||!a){var c=s?"":t.markupStyleCreator.makeTooltipMarker(e.markerType,e.markerColor||"#333",r),p=o?"":Jh(l,"ordinal",h),d=e.valueType,f=a?[]:V(u)?O(u,(function(t,e){return Jh(t,V(d)?d[e]:d,h)})):[Jh(u,V(d)?d[0]:d,h)],g=!s||!o,y=!s&&o,v=vd(i,r),m=v.nameStyle,_=v.valueStyle;return"richText"===r?(s?"":c)+(o?"":Cd(t,p,m))+(a?"":function(t,e,n,i,r){var o=[r],a=i?10:20;return n&&o.push({padding:[0,0,0,a],align:"right"}),t.markupStyleCreator.wrapRichTextStyle(e.join("  "),o)}(t,f,g,y,_)):Td((s?"":c)+(o?"":function(t,e,n){return'<span style="'+n+";"+(e?"margin-left:2px":"")+'">'+$h(t)+"</span>"}(p,!s,m))+(a?"":function(t,e,n,i){var r=n?"10px":"20px";return'<span style="'+(e?"float:right;margin-left:"+r:"")+";"+i+'">'+O(t,(function(t){return $h(t)})).join("&nbsp;&nbsp;")+"</span>"}(f,g,y,_)),n)}}}};function Sd(t,e,n,i,r,o){if(t){var a=bd(t);a.planLayout(t);var s={useUTC:r,renderMode:n,orderMode:i,markupStyleCreator:e};return a.build(s,t,0,o)}}function Md(t){var e=t.__gapLevelBetweenSubBlocks;return{html:md[e],richText:_d[e]}}function Td(t,e){return'<div style="'+("margin: "+e+"px 0 0")+";"+'line-height:1;">'+t+'<div style="clear:both"></div></div>'}function Cd(t,e,n){return t.markupStyleCreator.wrapRichTextStyle(e,n)}function Id(t,e){var n=t.get("padding");return null!=n?n:"richText"===e?[8,10]:10}var Ad=function(){function t(){this.richTextStyles={},this._nextStyleNameId=nr()}return t.prototype._generateStyleName=function(){return"__EC_aUTo_"+this._nextStyleNameId++},t.prototype.makeTooltipMarker=function(t,e,n){var i="richText"===n?this._generateStyleName():null,r=nc({color:e,type:t,renderMode:n,markerId:i});return H(r)?r:(this.richTextStyles[i]=r.style,r.content)},t.prototype.wrapRichTextStyle=function(t,e){var n={};V(e)?P(e,(function(t){return T(n,t)})):T(n,e);var i=this._generateStyleName();return this.richTextStyles[i]=n,"{"+i+"|"+t+"}"},t}();function Dd(t){var e,n,i,r,o=t.series,a=t.dataIndex,s=t.multipleSeries,l=o.getData(),u=l.mapDimensionsAll("defaultedTooltip"),h=u.length,c=o.getRawValue(a),p=V(c),d=function(t,e){return ic(t.getData().getItemVisual(e,"style")[t.visualDrawType])}(o,a);if(h>1||p&&!h){var f=function(t,e,n,i,r){var o=e.getData(),a=R(t,(function(t,e,n){var i=o.getDimensionInfo(n);return t||i&&!1!==i.tooltip&&null!=i.displayName}),!1),s=[],l=[],u=[];function h(t,e){var n=o.getDimensionInfo(e);n&&!1!==n.otherDims.tooltip&&(a?u.push(xd("nameValue",{markerType:"subItem",markerColor:r,name:n.displayName,value:t,valueType:n.type})):(s.push(t),l.push(n.type)))}return i.length?P(i,(function(t){h(Kp(o,n,t),t)})):P(t,h),{inlineValues:s,inlineValueTypes:l,blocks:u}}(c,o,a,u,d);e=f.inlineValues,n=f.inlineValueTypes,i=f.blocks,r=f.inlineValues[0]}else if(h){var g=l.getDimensionInfo(u[0]);r=e=Kp(l,a,u[0]),n=g.type}else r=e=p?c[0]:c;var y=vr(o),v=y&&o.name||"",m=l.getName(a),_=s?v:m;return xd("section",{header:v,noHeader:s||!y,sortParam:r,blocks:[xd("nameValue",{markerType:"item",markerColor:d,name:_,noName:!rt(_),value:e,valueType:n})].concat(i||[])})}var kd=xr();function Ld(t,e){return t.getName(e)||t.getId(e)}var Pd=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._selectedDataIndicesMap={},e}return n(e,t),e.prototype.init=function(t,e,n){this.seriesIndex=this.componentIndex,this.dataTask=td({count:Rd,reset:Nd}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(t,n),(kd(this).sourceManager=new dd(this)).prepareSource();var i=this.getInitialData(t,n);Bd(i,this),this.dataTask.context.data=i,kd(this).dataBeforeProcessed=i,Od(this),this._initSelectedMapFromData(i)},e.prototype.mergeDefaultAndTheme=function(t,e){var n=pc(this),i=n?fc(t):{},r=this.subType;vc.hasClass(r)&&(r+="Series"),S(t,e.getTheme().get(this.subType)),S(t,this.getDefaultOption()),hr(t,"label",["show"]),this.fillDataTextStyle(t.data),n&&dc(t,i,n)},e.prototype.mergeOption=function(t,e){t=S(this.option,t,!0),this.fillDataTextStyle(t.data);var n=pc(this);n&&dc(this.option,t,n);var i=kd(this).sourceManager;i.dirty(),i.prepareSource();var r=this.getInitialData(t,e);Bd(r,this),this.dataTask.dirty(),this.dataTask.context.data=r,kd(this).dataBeforeProcessed=r,Od(this),this._initSelectedMapFromData(r)},e.prototype.fillDataTextStyle=function(t){if(t&&!X(t))for(var e=["show"],n=0;n<t.length;n++)t[n]&&t[n].label&&hr(t[n],"label",e)},e.prototype.getInitialData=function(t,e){},e.prototype.appendData=function(t){this.getRawData().appendData(t.data)},e.prototype.getData=function(t){var e=Vd(this);if(e){var n=e.context.data;return null==t?n:n.getLinkedData(t)}return kd(this).data},e.prototype.getAllData=function(){var t=this.getData();return t&&t.getLinkedDataAll?t.getLinkedDataAll():[{data:t}]},e.prototype.setData=function(t){var e=Vd(this);if(e){var n=e.context;n.outputData=t,e!==this.dataTask&&(n.data=t)}kd(this).data=t},e.prototype.getSource=function(){return kd(this).sourceManager.getSource()},e.prototype.getRawData=function(){return kd(this).dataBeforeProcessed},e.prototype.getBaseAxis=function(){var t=this.coordinateSystem;return t&&t.getBaseAxis&&t.getBaseAxis()},e.prototype.formatTooltip=function(t,e,n){return Dd({series:this,dataIndex:t,multipleSeries:e})},e.prototype.isAnimationEnabled=function(){if(a.node)return!1;var t=this.getShallow("animation");return t&&this.getData().count()>this.getShallow("animationThreshold")&&(t=!1),!!t},e.prototype.restoreData=function(){this.dataTask.dirty()},e.prototype.getColorFromPalette=function(t,e,n){var i=this.ecModel,r=Yc.prototype.getColorFromPalette.call(this,t,e,n);return r||(r=i.getColorFromPalette(t,e,n)),r},e.prototype.coordDimToDataDim=function(t){return this.getRawData().mapDimensionsAll(t)},e.prototype.getProgressive=function(){return this.get("progressive")},e.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},e.prototype.select=function(t,e){this._innerSelect(this.getData(e),t)},e.prototype.unselect=function(t,e){var n=this.option.selectedMap;if(n)for(var i=this.getData(e),r=0;r<t.length;r++){var o=Ld(i,t[r]);n[o]=!1,this._selectedDataIndicesMap[o]=-1}},e.prototype.toggleSelect=function(t,e){for(var n=[],i=0;i<t.length;i++)n[0]=t[i],this.isSelected(t[i],e)?this.unselect(n,e):this.select(n,e)},e.prototype.getSelectedDataIndices=function(){for(var t=this._selectedDataIndicesMap,e=E(t),n=[],i=0;i<e.length;i++){var r=t[e[i]];r>=0&&n.push(r)}return n},e.prototype.isSelected=function(t,e){var n=this.option.selectedMap;return n&&n[Ld(this.getData(e),t)]||!1},e.prototype._innerSelect=function(t,e){var n,i,r=this.option.selectedMode,o=e.length;if(r&&o)if("multiple"===r)for(var a=this.option.selectedMap||(this.option.selectedMap={}),s=0;s<o;s++){var l=e[s];a[h=Ld(t,l)]=!0,this._selectedDataIndicesMap[h]=t.getRawIndex(l)}else if("single"===r||!0===r){var u=e[o-1],h=Ld(t,u);this.option.selectedMap=((n={})[h]=!0,n),this._selectedDataIndicesMap=((i={})[h]=t.getRawIndex(u),i)}},e.prototype._initSelectedMapFromData=function(t){if(!this.option.selectedMap){var e=[];t.hasItemOption&&t.each((function(n){var i=t.getRawDataItem(n);"object"==typeof i&&i.selected&&e.push(n)})),e.length>0&&this._innerSelect(t,e)}},e.registerClass=function(t){return vc.registerClass(t)},e.protoInitialize=function(){var t=e.prototype;t.type="series.__base__",t.seriesIndex=0,t.useColorPaletteOnData=!1,t.ignoreStyleOnData=!1,t.hasSymbolVisual=!1,t.defaultSymbol="circle",t.visualStyleAccessPath="itemStyle",t.visualDrawType="fill"}(),e}(vc);function Od(t){var e=t.name;vr(t)||(t.name=function(t){var e=t.getRawData(),n=e.mapDimensionsAll("seriesName"),i=[];return P(n,(function(t){var n=e.getDimensionInfo(t);n.displayName&&i.push(n.displayName)})),i.join(" ")}(t)||e)}function Rd(t){return t.model.getRawData().count()}function Nd(t){var e=t.model;return e.setData(e.getRawData().cloneShallow()),Ed}function Ed(t,e){e.outputData&&t.end>e.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function Bd(t,e){P(r(t.CHANGABLE_METHODS,t.DOWNSAMPLE_METHODS),(function(n){t.wrapMethod(n,z(zd,e))}))}function zd(t,e){var n=Vd(t);return n&&n.setOutputEnd((e||this).count()),e}function Vd(t){var e=(t.ecModel||{}).scheduler,n=e&&e.getPipeline(t.uid);if(n){var i=n.currentTask;if(i){var r=i.agentStubMap;r&&(i=r.get(t.uid))}return i}}k(Pd,Jp),k(Pd,Yc),Or(Pd,vc);var Fd=function(){function t(){this.group=new ki,this.uid=sh("viewComponent")}return t.prototype.init=function(t,e){},t.prototype.render=function(t,e,n,i){},t.prototype.dispose=function(t,e){},t.prototype.updateView=function(t,e,n,i){},t.prototype.updateLayout=function(t,e,n,i){},t.prototype.updateVisual=function(t,e,n,i){},t.prototype.blurSeries=function(t,e){},t}();function Hd(){var t=xr();return function(e){var n=t(e),i=e.pipelineContext,r=!!n.large,o=!!n.progressiveRender,a=n.large=!(!i||!i.large),s=n.progressiveRender=!(!i||!i.progressiveRender);return!(r===a&&o===s)&&"reset"}}Lr(Fd),Br(Fd);var Gd=xr(),Wd=Hd(),Ud=function(){function t(){this.group=new ki,this.uid=sh("viewChart"),this.renderTask=td({plan:Zd,reset:jd}),this.renderTask.context={view:this}}return t.prototype.init=function(t,e){},t.prototype.render=function(t,e,n,i){},t.prototype.highlight=function(t,e,n,i){Xd(t.getData(),i,"emphasis")},t.prototype.downplay=function(t,e,n,i){Xd(t.getData(),i,"normal")},t.prototype.remove=function(t,e){this.group.removeAll()},t.prototype.dispose=function(t,e){},t.prototype.updateView=function(t,e,n,i){this.render(t,e,n,i)},t.prototype.updateLayout=function(t,e,n,i){this.render(t,e,n,i)},t.prototype.updateVisual=function(t,e,n,i){this.render(t,e,n,i)},t.markUpdateMethod=function(t,e){Gd(t).updateMethod=e},t.protoInitialize=void(t.prototype.type="chart"),t}();function Yd(t,e,n){t&&("emphasis"===e?Ls:Ps)(t,n)}function Xd(t,e,n){var i=_r(t,e),r=e&&null!=e.highlightKey?function(t){var e=ss[t];return null==e&&as<=32&&(e=ss[t]=as++),e}(e.highlightKey):null;null!=i?P(ur(i),(function(e){Yd(t.getItemGraphicEl(e),n,r)})):t.eachItemGraphicEl((function(t){Yd(t,n,r)}))}function Zd(t){return Wd(t.model)}function jd(t){var e=t.model,n=t.ecModel,i=t.api,r=t.payload,o=e.pipelineContext.progressiveRender,a=t.view,s=r&&Gd(r).updateMethod,l=o?"incrementalPrepareRender":s&&a[s]?s:"render";return"render"!==l&&a[l](e,n,i,r),qd[l]}Lr(Ud),Br(Ud);var qd={incrementalPrepareRender:{progress:function(t,e){e.view.incrementalRender(t,e.model,e.ecModel,e.api,e.payload)}},render:{forceFirstProgress:!0,progress:function(t,e){e.view.render(e.model,e.ecModel,e.api,e.payload)}}},Kd="\0__throttleOriginMethod",$d="\0__throttleRate",Jd="\0__throttleType";function Qd(t,e,n){var i,r,o,a,s,l=0,u=0,h=null;function c(){u=(new Date).getTime(),h=null,t.apply(o,a||[])}e=e||0;var p=function(){for(var t=[],p=0;p<arguments.length;p++)t[p]=arguments[p];i=(new Date).getTime(),o=this,a=t;var d=s||e,f=s||n;s=null,r=i-(f?l:u)-d,clearTimeout(h),f?h=setTimeout(c,d):r>=0?c():h=setTimeout(c,-r),l=i};return p.clear=function(){h&&(clearTimeout(h),h=null)},p.debounceNextCall=function(t){s=t},p}function tf(t,e,n,i){var r=t[e];if(r){var o=r[Kd]||r,a=r[Jd];if(r[$d]!==n||a!==i){if(null==n||!i)return t[e]=o;(r=t[e]=Qd(o,n,"debounce"===i))[Kd]=o,r[Jd]=i,r[$d]=n}return r}}var ef=xr(),nf={itemStyle:zr(nh,!0),lineStyle:zr(Qu,!0)},rf={lineStyle:"stroke",itemStyle:"fill"};function of(t,e){var n=t.visualStyleMapper||nf[e];return n||(console.warn("Unkown style type '"+e+"'."),nf.itemStyle)}function af(t,e){var n=t.visualDrawType||rf[e];return n||(console.warn("Unkown style type '"+e+"'."),"fill")}var sf={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var n=t.getData(),i=t.visualStyleAccessPath||"itemStyle",r=t.getModel(i),o=of(t,i)(r),a=r.getShallow("decal");a&&(n.setVisual("decal",a),a.dirty=!0);var s=af(t,i),l=o[s],u=F(l)?l:null;if(o[s]&&!u||(o[s]=t.getColorFromPalette(t.name,null,e.getSeriesCount()),n.setVisual("colorFromPalette",!0)),n.setVisual("style",o),n.setVisual("drawType",s),!e.isSeriesFiltered(t)&&u)return n.setVisual("colorFromPalette",!1),{dataEach:function(e,n){var i=t.getDataParams(n),r=T({},o);r[s]=u(i),e.setItemVisual(n,"style",r)}}}},lf=new oh,uf={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){if(!t.ignoreStyleOnData&&!e.isSeriesFiltered(t)){var n=t.getData(),i=t.visualStyleAccessPath||"itemStyle",r=of(t,i),o=n.getVisual("drawType");return{dataEach:n.hasItemOption?function(t,e){var n=t.getRawDataItem(e);if(n&&n[i]){lf.option=n[i];var a=r(lf);T(t.ensureUniqueItemVisual(e,"style"),a),lf.option.decal&&(t.setItemVisual(e,"decal",lf.option.decal),lf.option.decal.dirty=!0),o in a&&t.setItemVisual(e,"colorFromPalette",!1)}}:null}}}},hf={performRawSeries:!0,overallReset:function(t){var e=ut();t.eachSeries((function(t){if(t.useColorPaletteOnData){var n=e.get(t.type);n||(n={},e.set(t.type,n)),ef(t).scope=n}})),t.eachSeries((function(e){if(e.useColorPaletteOnData&&!t.isSeriesFiltered(e)){var n=e.getRawData(),i={},r=e.getData(),o=ef(e).scope,a=e.visualStyleAccessPath||"itemStyle",s=af(e,a);r.each((function(t){var e=r.getRawIndex(t);i[e]=t})),n.each((function(t){var a=i[t];if(r.getItemVisual(a,"colorFromPalette")){var l=r.ensureUniqueItemVisual(a,"style"),u=n.getName(t)||t+"",h=n.count();l[s]=e.getColorFromPalette(u,o,h)}}))}}))}},cf=Math.PI;var pf=function(){function t(t,e,n,i){this._stageTaskMap=ut(),this.ecInstance=t,this.api=e,n=this._dataProcessorHandlers=n.slice(),i=this._visualHandlers=i.slice(),this._allHandlers=n.concat(i)}return t.prototype.restoreData=function(t,e){t.restoreData(e),this._stageTaskMap.each((function(t){var e=t.overallTask;e&&e.dirty()}))},t.prototype.getPerformArgs=function(t,e){if(t.__pipeline){var n=this._pipelineMap.get(t.__pipeline.id),i=n.context,r=!e&&n.progressiveEnabled&&(!i||i.progressiveRender)&&t.__idxInPipeline>n.blockIndex?n.step:null,o=i&&i.modDataCount;return{step:r,modBy:null!=o?Math.ceil(o/r):null,modDataCount:o}}},t.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},t.prototype.updateStreamModes=function(t,e){var n=this._pipelineMap.get(t.uid),i=t.getData().count(),r=n.progressiveEnabled&&e.incrementalPrepareRender&&i>=n.threshold,o=t.get("large")&&i>=t.get("largeThreshold"),a="mod"===t.get("progressiveChunkMode")?i:null;t.pipelineContext=n.context={progressiveRender:r,modDataCount:a,large:o}},t.prototype.restorePipelines=function(t){var e=this,n=e._pipelineMap=ut();t.eachSeries((function(t){var i=t.getProgressive(),r=t.uid;n.set(r,{id:r,head:null,tail:null,threshold:t.getProgressiveThreshold(),progressiveEnabled:i&&!(t.preventIncremental&&t.preventIncremental()),blockIndex:-1,step:Math.round(i||700),count:0}),e._pipe(t,t.dataTask)}))},t.prototype.prepareStageTasks=function(){var t=this._stageTaskMap,e=this.api.getModel(),n=this.api;P(this._allHandlers,(function(i){var r=t.get(i.uid)||t.set(i.uid,{}),o="";it(!(i.reset&&i.overallReset),o),i.reset&&this._createSeriesStageTask(i,r,e,n),i.overallReset&&this._createOverallStageTask(i,r,e,n)}),this)},t.prototype.prepareView=function(t,e,n,i){var r=t.renderTask,o=r.context;o.model=e,o.ecModel=n,o.api=i,r.__block=!t.incrementalPrepareRender,this._pipe(e,r)},t.prototype.performDataProcessorTasks=function(t,e){this._performStageTasks(this._dataProcessorHandlers,t,e,{block:!0})},t.prototype.performVisualTasks=function(t,e,n){this._performStageTasks(this._visualHandlers,t,e,n)},t.prototype._performStageTasks=function(t,e,n,i){i=i||{};var r=!1,o=this;function a(t,e){return t.setDirty&&(!t.dirtyMap||t.dirtyMap.get(e.__pipeline.id))}P(t,(function(t,s){if(!i.visualType||i.visualType===t.visualType){var l=o._stageTaskMap.get(t.uid),u=l.seriesTaskMap,h=l.overallTask;if(h){var c,p=h.agentStubMap;p.each((function(t){a(i,t)&&(t.dirty(),c=!0)})),c&&h.dirty(),o.updatePayload(h,n);var d=o.getPerformArgs(h,i.block);p.each((function(t){t.perform(d)})),h.perform(d)&&(r=!0)}else u&&u.each((function(s,l){a(i,s)&&s.dirty();var u=o.getPerformArgs(s,i.block);u.skip=!t.performRawSeries&&e.isSeriesFiltered(s.context.model),o.updatePayload(s,n),s.perform(u)&&(r=!0)}))}})),this.unfinished=r||this.unfinished},t.prototype.performSeriesTasks=function(t){var e;t.eachSeries((function(t){e=t.dataTask.perform()||e})),this.unfinished=e||this.unfinished},t.prototype.plan=function(){this._pipelineMap.each((function(t){var e=t.tail;do{if(e.__block){t.blockIndex=e.__idxInPipeline;break}e=e.getUpstream()}while(e)}))},t.prototype.updatePayload=function(t,e){"remain"!==e&&(t.context.payload=e)},t.prototype._createSeriesStageTask=function(t,e,n,i){var r=this,o=e.seriesTaskMap,a=e.seriesTaskMap=ut(),s=t.seriesType,l=t.getTargetSeries;function u(e){var s=e.uid,l=a.set(s,o&&o.get(s)||td({plan:vf,reset:mf,count:bf}));l.context={model:e,ecModel:n,api:i,useClearVisual:t.isVisual&&!t.isLayout,plan:t.plan,reset:t.reset,scheduler:r},r._pipe(e,l)}t.createOnAllSeries?n.eachRawSeries(u):s?n.eachRawSeriesByType(s,u):l&&l(n,i).each(u)},t.prototype._createOverallStageTask=function(t,e,n,i){var r=this,o=e.overallTask=e.overallTask||td({reset:df});o.context={ecModel:n,api:i,overallReset:t.overallReset,scheduler:r};var a=o.agentStubMap,s=o.agentStubMap=ut(),l=t.seriesType,u=t.getTargetSeries,h=!0,c=!1,p="";function d(t){var e=t.uid,n=s.set(e,a&&a.get(e)||(c=!0,td({reset:ff,onDirty:yf})));n.context={model:t,overallProgress:h},n.agent=o,n.__block=h,r._pipe(t,n)}it(!t.createOnAllSeries,p),l?n.eachRawSeriesByType(l,d):u?u(n,i).each(d):(h=!1,P(n.getSeries(),d)),c&&o.dirty()},t.prototype._pipe=function(t,e){var n=t.uid,i=this._pipelineMap.get(n);!i.head&&(i.head=e),i.tail&&i.tail.pipe(e),i.tail=e,e.__idxInPipeline=i.count++,e.__pipeline=i},t.wrapStageHandler=function(t,e){return F(t)&&(t={overallReset:t,seriesType:wf(t)}),t.uid=sh("stageHandler"),e&&(t.visualType=e),t},t}();function df(t){t.overallReset(t.ecModel,t.api,t.payload)}function ff(t){return t.overallProgress&&gf}function gf(){this.agent.dirty(),this.getDownstream().dirty()}function yf(){this.agent&&this.agent.dirty()}function vf(t){return t.plan?t.plan(t.model,t.ecModel,t.api,t.payload):null}function mf(t){t.useClearVisual&&t.data.clearAllVisual();var e=t.resetDefines=ur(t.reset(t.model,t.ecModel,t.api,t.payload));return e.length>1?O(e,(function(t,e){return xf(e)})):_f}var _f=xf(0);function xf(t){return function(e,n){var i=n.data,r=n.resetDefines[t];if(r&&r.dataEach)for(var o=e.start;o<e.end;o++)r.dataEach(i,o);else r&&r.progress&&r.progress(e,i)}}function bf(t){return t.data.count()}function wf(t){Sf=null;try{t(Mf,Tf)}catch(t){}return Sf}var Sf,Mf={},Tf={};function Cf(t,e){for(var n in e.prototype)t[n]=pt}Cf(Mf,jc),Cf(Tf,Qc),Mf.eachSeriesByType=Mf.eachRawSeriesByType=function(t){Sf=t},Mf.eachComponent=function(t){"series"===t.mainType&&t.subType&&(Sf=t.subType)};var If=["#37A2DA","#32C5E9","#67E0E3","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#E062AE","#E690D1","#e7bcf3","#9d96f5","#8378EA","#96BFFF"],Af={color:If,colorLayer:[["#37A2DA","#ffd85c","#fd7b5f"],["#37A2DA","#67E0E3","#FFDB5C","#ff9f7f","#E062AE","#9d96f5"],["#37A2DA","#32C5E9","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#e7bcf3","#8378EA","#96BFFF"],If]},Df="#B9B8CE",kf="#100C2A",Lf=function(){return{axisLine:{lineStyle:{color:Df}},splitLine:{lineStyle:{color:"#484753"}},splitArea:{areaStyle:{color:["rgba(255,255,255,0.02)","rgba(255,255,255,0.05)"]}},minorSplitLine:{lineStyle:{color:"#20203B"}}}},Pf=["#4992ff","#7cffb2","#fddd60","#ff6e76","#58d9f9","#05c091","#ff8a45","#8d48e3","#dd79ff"],Of={darkMode:!0,color:Pf,backgroundColor:kf,axisPointer:{lineStyle:{color:"#817f91"},crossStyle:{color:"#817f91"},label:{color:"#fff"}},legend:{textStyle:{color:Df}},textStyle:{color:Df},title:{textStyle:{color:"#EEF1FA"},subtextStyle:{color:"#B9B8CE"}},toolbox:{iconStyle:{borderColor:Df}},dataZoom:{borderColor:"#71708A",textStyle:{color:Df},brushStyle:{color:"rgba(135,163,206,0.3)"},handleStyle:{color:"#353450",borderColor:"#C5CBE3"},moveHandleStyle:{color:"#B0B6C3",opacity:.3},fillerColor:"rgba(135,163,206,0.2)",emphasis:{handleStyle:{borderColor:"#91B7F2",color:"#4D587D"},moveHandleStyle:{color:"#636D9A",opacity:.7}},dataBackground:{lineStyle:{color:"#71708A",width:1},areaStyle:{color:"#71708A"}},selectedDataBackground:{lineStyle:{color:"#87A3CE"},areaStyle:{color:"#87A3CE"}}},visualMap:{textStyle:{color:Df}},timeline:{lineStyle:{color:Df},label:{color:Df},controlStyle:{color:Df,borderColor:Df}},calendar:{itemStyle:{color:kf},dayLabel:{color:Df},monthLabel:{color:Df},yearLabel:{color:Df}},timeAxis:Lf(),logAxis:Lf(),valueAxis:Lf(),categoryAxis:Lf(),line:{symbol:"circle"},graph:{color:Pf},gauge:{title:{color:Df},axisLine:{lineStyle:{color:[[1,"rgba(207,212,219,0.2)"]]}},axisLabel:{color:Df},detail:{color:"#EEF1FA"}},candlestick:{itemStyle:{color:"#f64e56",color0:"#54ea92",borderColor:"#f64e56",borderColor0:"#54ea92"}}};Of.categoryAxis.splitLine.show=!1;var Rf=ut(),Nf=function(t,e,n){var i;if(V(e))i=e;else if(e.svg)i=[{type:"svg",source:e.svg,specialAreas:e.specialAreas}];else{var r=e.geoJson||e.geoJSON;r&&!e.features&&(n=e.specialAreas,e=r),i=[{type:"geoJSON",source:e,specialAreas:n}]}return P(i,(function(t){var e=t.type;"geoJson"===e&&(e=t.type="geoJSON");var n=Bf[e];n(t)})),Rf.set(t,i)},Ef=function(t){return Rf.get(t)},Bf={geoJSON:function(t){var e=t.source;t.geoJSON=H(e)?"undefined"!=typeof JSON&&JSON.parse?JSON.parse(e):new Function("return ("+e+");")():e},svg:function(t){t.svgXML=function(t){H(t)&&(t=(new DOMParser).parseFromString(t,"text/xml"));var e=t;for(9===e.nodeType&&(e=e.firstChild);"svg"!==e.nodeName.toLowerCase()||1!==e.nodeType;)e=e.nextSibling;return e}(t.source)}},zf=function(){function t(){}return t.prototype.normalizeQuery=function(t){var e={},n={},i={};if(H(t)){var r=kr(t);e.mainType=r.main||null,e.subType=r.sub||null}else{var o=["Index","Name","Id"],a={name:1,dataIndex:1,dataType:1};P(t,(function(t,r){for(var s=!1,l=0;l<o.length;l++){var u=o[l],h=r.lastIndexOf(u);if(h>0&&h===r.length-u.length){var c=r.slice(0,h);"data"!==c&&(e.mainType=c,e[u.toLowerCase()]=t,s=!0)}}a.hasOwnProperty(r)&&(n[r]=t,s=!0),s||(i[r]=t)}))}return{cptQuery:e,dataQuery:n,otherQuery:i}},t.prototype.filter=function(t,e){var n=this.eventInfo;if(!n)return!0;var i=n.targetEl,r=n.packedEvent,o=n.model,a=n.view;if(!o||!a)return!0;var s=e.cptQuery,l=e.dataQuery;return u(s,o,"mainType")&&u(s,o,"subType")&&u(s,o,"index","componentIndex")&&u(s,o,"name")&&u(s,o,"id")&&u(l,r,"name")&&u(l,r,"dataIndex")&&u(l,r,"dataType")&&(!a.filterForExposedEvent||a.filterForExposedEvent(t,e.otherQuery,i,r));function u(t,e,n,i){return null==t[n]||e[i||n]===t[n]}},t.prototype.afterTrigger=function(){this.eventInfo=null},t}(),Vf={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var n=t.getData();if(t.legendSymbol&&n.setVisual("legendSymbol",t.legendSymbol),t.hasSymbolVisual){var i=t.get("symbol"),r=t.get("symbolSize"),o=t.get("symbolKeepAspect"),a=t.get("symbolRotate"),s=F(i),l=F(r),u=F(a),h=s||l||u,c=!s&&i?i:t.defaultSymbol,p=l?null:r,d=u?null:a;if(n.setVisual({legendSymbol:t.legendSymbol||c,symbol:c,symbolSize:p,symbolKeepAspect:o,symbolRotate:d}),!e.isSeriesFiltered(t))return{dataEach:h?function(e,n){var o=t.getRawValue(n),h=t.getDataParams(n);s&&e.setItemVisual(n,"symbol",i(o,h)),l&&e.setItemVisual(n,"symbolSize",r(o,h)),u&&e.setItemVisual(n,"symbolRotate",a(o,h))}:null}}}};function Ff(t,e){switch(e){case"color":return t.getVisual("style")[t.getVisual("drawType")];case"opacity":return t.getVisual("style").opacity;case"symbol":case"symbolSize":case"liftZ":return t.getVisual(e);default:0}}var Hf=2*Math.PI,Gf=ya.CMD,Wf=["top","right","bottom","left"];function Uf(t,e,n,i,r){var o=n.width,a=n.height;switch(t){case"top":i.set(n.x+o/2,n.y-e),r.set(0,-1);break;case"bottom":i.set(n.x+o/2,n.y+a+e),r.set(0,1);break;case"left":i.set(n.x-e,n.y+a/2),r.set(-1,0);break;case"right":i.set(n.x+o+e,n.y+a/2),r.set(1,0)}}function Yf(t,e,n,i,r,o,a,s,l){a-=t,s-=e;var u=Math.sqrt(a*a+s*s),h=(a/=u)*n+t,c=(s/=u)*n+e;if(Math.abs(i-r)%Hf<1e-4)return l[0]=h,l[1]=c,u-n;if(o){var p=i;i=ba(r),r=ba(p)}else i=ba(i),r=ba(r);i>r&&(r+=Hf);var d=Math.atan2(s,a);if(d<0&&(d+=Hf),d>=i&&d<=r||d+Hf>=i&&d+Hf<=r)return l[0]=h,l[1]=c,u-n;var f=n*Math.cos(i)+t,g=n*Math.sin(i)+e,y=n*Math.cos(r)+t,v=n*Math.sin(r)+e,m=(f-a)*(f-a)+(g-s)*(g-s),_=(y-a)*(y-a)+(v-s)*(v-s);return m<_?(l[0]=f,l[1]=g,Math.sqrt(m)):(l[0]=y,l[1]=v,Math.sqrt(_))}function Xf(t,e,n,i,r,o,a,s){var l=r-t,u=o-e,h=n-t,c=i-e,p=Math.sqrt(h*h+c*c),d=(l*(h/=p)+u*(c/=p))/p;s&&(d=Math.min(Math.max(d,0),1)),d*=p;var f=a[0]=t+d*h,g=a[1]=e+d*c;return Math.sqrt((f-r)*(f-r)+(g-o)*(g-o))}function Zf(t,e,n,i,r,o,a){n<0&&(t+=n,n=-n),i<0&&(e+=i,i=-i);var s=t+n,l=e+i,u=a[0]=Math.min(Math.max(r,t),s),h=a[1]=Math.min(Math.max(o,e),l);return Math.sqrt((u-r)*(u-r)+(h-o)*(h-o))}var jf=[];function qf(t,e,n){var i=Zf(e.x,e.y,e.width,e.height,t.x,t.y,jf);return n.set(jf[0],jf[1]),i}function Kf(t,e,n){for(var i,r,o=0,a=0,s=0,l=0,u=1/0,h=e.data,c=t.x,p=t.y,d=0;d<h.length;){var f=h[d++];1===d&&(s=o=h[d],l=a=h[d+1]);var g=u;switch(f){case Gf.M:o=s=h[d++],a=l=h[d++];break;case Gf.L:g=Xf(o,a,h[d],h[d+1],c,p,jf,!0),o=h[d++],a=h[d++];break;case Gf.C:g=Ao(o,a,h[d++],h[d++],h[d++],h[d++],h[d],h[d+1],c,p,jf),o=h[d++],a=h[d++];break;case Gf.Q:g=Ro(o,a,h[d++],h[d++],h[d],h[d+1],c,p,jf),o=h[d++],a=h[d++];break;case Gf.A:var y=h[d++],v=h[d++],m=h[d++],_=h[d++],x=h[d++],b=h[d++];d+=1;var w=!!(1-h[d++]);i=Math.cos(x)*m+y,r=Math.sin(x)*_+v,d<=1&&(s=i,l=r),g=Yf(y,v,_,x,x+b,w,(c-y)*_/m+y,p,jf),o=Math.cos(x+b)*m+y,a=Math.sin(x+b)*_+v;break;case Gf.R:g=Zf(s=o=h[d++],l=a=h[d++],h[d++],h[d++],c,p,jf);break;case Gf.Z:g=Xf(o,a,s,l,c,p,jf,!0),o=s,a=l}g<u&&(u=g,n.set(jf[0],jf[1]))}return u}var $f=new mn,Jf=new mn,Qf=new mn,tg=new mn,eg=new mn;function ng(t,e){if(t){var n=t.getTextGuideLine(),i=t.getTextContent();if(i&&n){var r=t.textGuideLineConfig||{},o=[[0,0],[0,0],[0,0]],a=r.candidates||Wf,s=i.getBoundingRect().clone();s.applyTransform(i.getComputedTransform());var l=1/0,u=r.anchor,h=t.getComputedTransform(),c=h&&ye([],h),p=e.get("length2")||0;u&&Qf.copy(u);for(var d=0;d<a.length;d++){Uf(a[d],0,s,$f,tg),mn.scaleAndAdd(Jf,$f,tg,p),Jf.transform(c);var f=t.getBoundingRect(),g=u?u.distance(Jf):t instanceof Ea?Kf(Jf,t.path,Qf):qf(Jf,f,Qf);g<l&&(l=g,Jf.transform(h),Qf.transform(h),Qf.toArray(o[0]),Jf.toArray(o[1]),$f.toArray(o[2]))}og(o,e.get("minTurnAngle")),n.setShape({points:o})}}}var ig=[],rg=new mn;function og(t,e){if(e<=180&&e>0){e=e/180*Math.PI,$f.fromArray(t[0]),Jf.fromArray(t[1]),Qf.fromArray(t[2]),mn.sub(tg,$f,Jf),mn.sub(eg,Qf,Jf);var n=tg.len(),i=eg.len();if(!(n<.001||i<.001)){tg.scale(1/n),eg.scale(1/i);var r=tg.dot(eg);if(Math.cos(e)<r){var o=Xf(Jf.x,Jf.y,Qf.x,Qf.y,$f.x,$f.y,ig,!1);rg.fromArray(ig),rg.scaleAndAdd(eg,o/Math.tan(Math.PI-e));var a=Qf.x!==Jf.x?(rg.x-Jf.x)/(Qf.x-Jf.x):(rg.y-Jf.y)/(Qf.y-Jf.y);if(isNaN(a))return;a<0?mn.copy(rg,Jf):a>1&&mn.copy(rg,Qf),rg.toArray(t[1])}}}}function ag(t,e,n){if(n<=180&&n>0){n=n/180*Math.PI,$f.fromArray(t[0]),Jf.fromArray(t[1]),Qf.fromArray(t[2]),mn.sub(tg,Jf,$f),mn.sub(eg,Qf,Jf);var i=tg.len(),r=eg.len();if(!(i<.001||r<.001))if(tg.scale(1/i),eg.scale(1/r),tg.dot(e)<Math.cos(n)){var o=Xf(Jf.x,Jf.y,Qf.x,Qf.y,$f.x,$f.y,ig,!1);rg.fromArray(ig);var a=Math.PI/2,s=a+Math.acos(eg.dot(e))-n;if(s>=a)mn.copy(rg,Qf);else{rg.scaleAndAdd(eg,o/Math.tan(Math.PI/2-s));var l=Qf.x!==Jf.x?(rg.x-Jf.x)/(Qf.x-Jf.x):(rg.y-Jf.y)/(Qf.y-Jf.y);if(isNaN(l))return;l<0?mn.copy(rg,Jf):l>1&&mn.copy(rg,Qf)}rg.toArray(t[1])}}}function sg(t,e,n,i){var r="normal"===n,o=r?t:t.ensureState(n);o.ignore=e;var a=i.get("smooth");a&&!0===a&&(a=.3),o.shape=o.shape||{},a>0&&(o.shape.smooth=a);var s=i.getModel("lineStyle").getLineStyle();r?t.useStyle(s):o.style=s}function lg(t,e){var n=e.smooth,i=e.points;if(i)if(t.moveTo(i[0][0],i[0][1]),n>0&&i.length>=3){var r=Tt(i[0],i[1]),o=Tt(i[1],i[2]);if(!r||!o)return t.lineTo(i[1][0],i[1][1]),void t.lineTo(i[2][0],i[2][1]);var a=Math.min(r,o)*n,s=At([],i[1],i[0],a/r),l=At([],i[1],i[2],a/o),u=At([],s,l,.5);t.bezierCurveTo(s[0],s[1],s[0],s[1],u[0],u[1]),t.bezierCurveTo(l[0],l[1],l[0],l[1],i[2][0],i[2][1])}else for(var h=1;h<i.length;h++)t.lineTo(i[h][0],i[h][1])}function ug(t,e,n){var i=t.getTextGuideLine(),r=t.getTextContent();if(r){for(var o=e.normal,a=o.get("show"),s=r.ignore,l=0;l<hs.length;l++){var u=hs[l],h=e[u],c="normal"===u;if(h){var p=h.get("show");if((c?s:Q(r.states[u]&&r.states[u].ignore,s))||!Q(p,a)){var d=c?i:i&&i.states.normal;d&&(d.ignore=!0);continue}i||(i=new Bl,t.setTextGuideLine(i),c||!s&&a||sg(i,!0,"normal",e.normal),t.stateProxy&&(i.stateProxy=t.stateProxy)),sg(i,!1,u,h)}}if(i){C(i.style,n),i.style.fill=null;var f=o.get("showAbove");(t.textGuideLineConfig=t.textGuideLineConfig||{}).showAbove=f||!1,i.buildPath=lg}}else i&&t.removeTextGuideLine()}function hg(t,e){e=e||"labelLine";for(var n={normal:t.getModel(e)},i=0;i<us.length;i++){var r=us[i];n[r]=t.getModel([r,e])}return n}function cg(t,e,n,i,r,o){var a=t.length;if(!(a<2)){t.sort((function(t,n){return t.rect[e]-n.rect[e]}));for(var s,l=0,u=!1,h=0,c=0;c<a;c++){var p=t[c],d=p.rect;(s=d[e]-l)<0&&(d[e]-=s,p.label[e]-=s,u=!0),h+=Math.max(-s,0),l=d[e]+d[n]}h>0&&o&&x(-h/a,0,a);var f,g,y=t[0],v=t[a-1];return m(),f<0&&b(-f,.8),g<0&&b(g,.8),m(),_(f,g,1),_(g,f,-1),m(),f<0&&w(-f),g<0&&w(g),u}function m(){f=y.rect[e]-i,g=r-v.rect[e]-v.rect[n]}function _(t,e,n){if(t<0){var i=Math.min(e,-t);if(i>0){x(i*n,0,a);var r=i+t;r<0&&b(-r*n,1)}else b(-t*n,1)}}function x(n,i,r){0!==n&&(u=!0);for(var o=i;o<r;o++){var a=t[o];a.rect[e]+=n,a.label[e]+=n}}function b(i,r){for(var o=[],s=0,l=1;l<a;l++){var u=t[l-1].rect,h=Math.max(t[l].rect[e]-u[e]-u[n],0);o.push(h),s+=h}if(s){var c=Math.min(Math.abs(i)/s,r);if(i>0)for(l=0;l<a-1;l++){x(o[l]*c,0,l+1)}else for(l=a-1;l>0;l--){x(-(o[l-1]*c),l,a)}}}function w(t){var e=t<0?-1:1;t=Math.abs(t);for(var n=Math.ceil(t/(a-1)),i=0;i<a-1;i++)if(e>0?x(n,0,i+1):x(-n,a-i-1,a),(t-=n)<=0)return}}function pg(t,e,n,i){return cg(t,"y","height",e,n,i)}function dg(t){if(t){for(var e=[],n=0;n<t.length;n++)e.push(t[n].slice());return e}}function fg(t,e){var n=t.label,i=e&&e.getTextGuideLine();return{dataIndex:t.dataIndex,dataType:t.dataType,seriesIndex:t.seriesModel.seriesIndex,text:t.label.style.text,rect:t.hostRect,labelRect:t.rect,align:n.style.align,verticalAlign:n.style.verticalAlign,labelLinePoints:dg(i&&i.shape.points)}}var gg=["align","verticalAlign","width","height","fontSize"],yg=new Te,vg=xr(),mg=xr();function _g(t,e,n){for(var i=0;i<n.length;i++){var r=n[i];null!=e[r]&&(t[r]=e[r])}}var xg=["x","y","rotation"],bg=function(){function t(){this._labelList=[],this._chartViewList=[]}return t.prototype.clearLabels=function(){this._labelList=[],this._chartViewList=[]},t.prototype._addLabel=function(t,e,n,i,r){var o=i.style,a=i.__hostTarget.textConfig||{},s=i.getComputedTransform(),l=i.getBoundingRect().plain();In.applyTransform(l,l,s),s?yg.setLocalTransform(s):(yg.x=yg.y=yg.rotation=yg.originX=yg.originY=0,yg.scaleX=yg.scaleY=1);var u,h=i.__hostTarget;if(h){u=h.getBoundingRect().plain();var c=h.getComputedTransform();In.applyTransform(u,u,c)}var p=u&&h.getTextGuideLine();this._labelList.push({label:i,labelLine:p,seriesModel:n,dataIndex:t,dataType:e,layoutOption:r,computedLayoutOption:null,rect:l,hostRect:u,priority:u?u.width*u.height:0,defaultAttr:{ignore:i.ignore,labelGuideIgnore:p&&p.ignore,x:yg.x,y:yg.y,rotation:yg.rotation,style:{x:o.x,y:o.y,align:o.align,verticalAlign:o.verticalAlign,width:o.width,height:o.height,fontSize:o.fontSize},cursor:i.cursor,attachedPos:a.position,attachedRot:a.rotation}})},t.prototype.addLabelsOfSeries=function(t){var e=this;this._chartViewList.push(t);var n=t.__model,i=n.get("labelLayout");(F(i)||E(i).length)&&t.group.traverse((function(t){if(t.ignore)return!0;var r=t.getTextContent(),o=os(t);r&&!r.disableLabelLayout&&e._addLabel(o.dataIndex,o.dataType,n,r,i)}))},t.prototype.updateLayoutConfig=function(t){var e=t.getWidth(),n=t.getHeight();function i(t,e){return function(){ng(t,e)}}for(var r=0;r<this._labelList.length;r++){var o=this._labelList[r],a=o.label,s=a.__hostTarget,l=o.defaultAttr,u=void 0;u=(u="function"==typeof o.layoutOption?o.layoutOption(fg(o,s)):o.layoutOption)||{},o.computedLayoutOption=u;var h=Math.PI/180;s&&s.setTextConfig({local:!1,position:null!=u.x||null!=u.y?null:l.attachedPos,rotation:null!=u.rotate?u.rotate*h:l.attachedRot,offset:[u.dx||0,u.dy||0]});var c=!1;if(null!=u.x?(a.x=Fi(u.x,e),a.setStyle("x",0),c=!0):(a.x=l.x,a.setStyle("x",l.style.x)),null!=u.y?(a.y=Fi(u.y,n),a.setStyle("y",0),c=!0):(a.y=l.y,a.setStyle("y",l.style.y)),u.labelLinePoints){var p=s.getTextGuideLine();p&&(p.setShape({points:u.labelLinePoints}),c=!1)}vg(a).needsUpdateLabelLine=c,a.rotation=null!=u.rotate?u.rotate*h:l.rotation;for(var d=0;d<gg.length;d++){var f=gg[d];a.setStyle(f,null!=u[f]?u[f]:l.style[f])}if(u.draggable){if(a.draggable=!0,a.cursor="move",s){var g=o.seriesModel;if(null!=o.dataIndex)g=o.seriesModel.getData(o.dataType).getItemModel(o.dataIndex);a.on("drag",i(s,g.getModel("labelLine")))}}else a.off("drag"),a.cursor=l.cursor}},t.prototype.layout=function(t){var e,n=t.getWidth(),i=t.getHeight(),r=function(t){for(var e=[],n=0;n<t.length;n++){var i=t[n];if(!i.defaultAttr.ignore){var r=i.label,o=r.getComputedTransform(),a=r.getBoundingRect(),s=!o||o[1]<1e-5&&o[2]<1e-5,l=r.style.margin||0,u=a.clone();u.applyTransform(o),u.x-=l/2,u.y-=l/2,u.width+=l,u.height+=l;var h=s?new eu(a,o):null;e.push({label:r,labelLine:i.labelLine,rect:u,localRect:a,obb:h,priority:i.priority,defaultAttr:i.defaultAttr,layoutOption:i.computedLayoutOption,axisAligned:s,transform:o})}}return e}(this._labelList),o=N(r,(function(t){return"shiftX"===t.layoutOption.moveOverlap})),a=N(r,(function(t){return"shiftY"===t.layoutOption.moveOverlap}));cg(o,"x","width",0,n,e),pg(a,0,i),function(t){var e=[];t.sort((function(t,e){return e.priority-t.priority}));var n=new In(0,0,0,0);function i(t){if(!t.ignore){var e=t.ensureState("emphasis");null==e.ignore&&(e.ignore=!1)}t.ignore=!0}for(var r=0;r<t.length;r++){var o=t[r],a=o.axisAligned,s=o.localRect,l=o.transform,u=o.label,h=o.labelLine;n.copy(o.rect),n.width-=.1,n.height-=.1,n.x+=.05,n.y+=.05;for(var c=o.obb,p=!1,d=0;d<e.length;d++){var f=e[d];if(n.intersect(f.rect)){if(a&&f.axisAligned){p=!0;break}if(f.obb||(f.obb=new eu(f.localRect,f.transform)),c||(c=new eu(s,l)),c.intersect(f.obb)){p=!0;break}}}p?(i(u),h&&i(h)):(u.attr("ignore",o.defaultAttr.ignore),h&&h.attr("ignore",o.defaultAttr.labelGuideIgnore),e.push(o))}}(N(r,(function(t){return t.layoutOption.hideOverlap})))},t.prototype.processLabelsOverall=function(){var t=this;P(this._chartViewList,(function(e){var n=e.__model,i=e.ignoreLabelLineUpdate,r=n.isAnimationEnabled();e.group.traverse((function(e){if(e.ignore)return!0;var o=!i,a=e.getTextContent();!o&&a&&(o=vg(a).needsUpdateLabelLine),o&&t._updateLabelLine(e,n),r&&t._animateLabels(e,n)}))}))},t.prototype._updateLabelLine=function(t,e){var n=t.getTextContent(),i=os(t),r=i.dataIndex;if(n&&null!=r){var o=e.getData(i.dataType),a=o.getItemModel(r),s={},l=o.getItemVisual(r,"style"),u=o.getVisual("drawType");s.stroke=l[u];var h=a.getModel("labelLine");ug(t,hg(a),s),ng(t,h)}},t.prototype._animateLabels=function(t,e){var n=t.getTextContent(),i=t.getTextGuideLine();if(n&&!n.ignore&&!n.invisible&&!t.disableLabelAnimation&&!Mu(t)){var r=(d=vg(n)).oldLayout,o=os(t),a=o.dataIndex,s={x:n.x,y:n.y,rotation:n.rotation},l=e.getData(o.dataType);if(r){n.attr(r);var u=t.prevStates;u&&(A(u,"select")>=0&&n.attr(d.oldLayoutSelect),A(u,"emphasis")>=0&&n.attr(d.oldLayoutEmphasis)),_u(n,s,e,a)}else if(n.attr(s),!Zu(n).valueAnimation){var h=Q(n.style.opacity,1);n.style.opacity=0,xu(n,{style:{opacity:h}},e,a)}if(d.oldLayout=s,n.states.select){var c=d.oldLayoutSelect={};_g(c,s,xg),_g(c,n.states.select,xg)}if(n.states.emphasis){var p=d.oldLayoutEmphasis={};_g(p,s,xg),_g(p,n.states.emphasis,xg)}!function(t,e,n,i,r){var o=Zu(t);if(o.valueAnimation){var a=o.defaultInterpolatedText,s=Q(o.interpolatedValue,o.prevValue),l=o.value;(null==s?xu:_u)(t,{},i,e,null,(function(i){var u=Ir(n,o.precision,s,l,i);o.interpolatedValue=1===i?null:u;var h=zu({labelDataIndex:e,labelFetcher:r,defaultText:a?a(u):u+""},o.statesModels,u);Bu(t,h)}))}}(n,a,l,e,e)}if(i&&!i.ignore&&!i.invisible){r=(d=mg(i)).oldLayout;var d,f={points:i.shape.points};r?(i.attr({shape:r}),_u(i,{shape:f},e)):(i.setShape(f),i.style.strokePercent=0,xu(i,{style:{strokePercent:1}},e)),d.oldLayout=f}},t}();function wg(t,e,n,i,r){var o=t+e;n.isSilent(o)||i.eachComponent({mainType:"series",subType:"pie"},(function(t){for(var e=t.seriesIndex,i=r.selected,a=0;a<i.length;a++)if(i[a].seriesIndex===e){var s=t.getData(),l=_r(s,r.fromActionPayload);n.trigger(o,{type:o,seriesId:t.id,name:V(l)?s.getName(l[0]):s.getName(l),selected:T({},t.option.selectedMap)})}}))}function Sg(t,e,n){for(var i;t&&(!e(t)||(i=t,!n));)t=t.__hostTarget||t.parent;return i}var Mg=Math.round(9*Math.random()),Tg=function(){function t(){this._id="__ec_inner_"+Mg++}return t.prototype.get=function(t){return this._guard(t)[this._id]},t.prototype.set=function(t,e){var n=this._guard(t);return"function"==typeof Object.defineProperty?Object.defineProperty(n,this._id,{value:e,enumerable:!1,configurable:!0}):n[this._id]=e,this},t.prototype.delete=function(t){return!!this.has(t)&&(delete this._guard(t)[this._id],!0)},t.prototype.has=function(t){return!!this._guard(t)[this._id]},t.prototype._guard=function(t){if(t!==Object(t))throw TypeError("Value of WeakMap is not a non-null object.");return t},t}(),Cg=Ea.extend({type:"triangle",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var n=e.cx,i=e.cy,r=e.width/2,o=e.height/2;t.moveTo(n,i-o),t.lineTo(n+r,i+o),t.lineTo(n-r,i+o),t.closePath()}}),Ig=Ea.extend({type:"diamond",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var n=e.cx,i=e.cy,r=e.width/2,o=e.height/2;t.moveTo(n,i-o),t.lineTo(n+r,i),t.lineTo(n,i+o),t.lineTo(n-r,i),t.closePath()}}),Ag=Ea.extend({type:"pin",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var n=e.x,i=e.y,r=e.width/5*3,o=Math.max(r,e.height),a=r/2,s=a*a/(o-a),l=i-o+a+s,u=Math.asin(s/a),h=Math.cos(u)*a,c=Math.sin(u),p=Math.cos(u),d=.6*a,f=.7*a;t.moveTo(n-h,l+s),t.arc(n,l,a,Math.PI-u,2*Math.PI+u),t.bezierCurveTo(n+h-c*d,l+s+p*d,n,i-f,n,i),t.bezierCurveTo(n,i-f,n-h+c*d,l+s+p*d,n-h,l+s),t.closePath()}}),Dg=Ea.extend({type:"arrow",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var n=e.height,i=e.width,r=e.x,o=e.y,a=i/3*2;t.moveTo(r,o),t.lineTo(r+a,o+n),t.lineTo(r,o+n/4*3),t.lineTo(r-a,o+n),t.lineTo(r,o),t.closePath()}}),kg={line:function(t,e,n,i,r){r.x=t,r.y=e+i/2-1,r.width=n,r.height=2},rect:function(t,e,n,i,r){r.x=t,r.y=e,r.width=n,r.height=i},roundRect:function(t,e,n,i,r){r.x=t,r.y=e,r.width=n,r.height=i,r.r=Math.min(n,i)/4},square:function(t,e,n,i,r){var o=Math.min(n,i);r.x=t,r.y=e,r.width=o,r.height=o},circle:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.r=Math.min(n,i)/2},diamond:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.width=n,r.height=i},pin:function(t,e,n,i,r){r.x=t+n/2,r.y=e+i/2,r.width=n,r.height=i},arrow:function(t,e,n,i,r){r.x=t+n/2,r.y=e+i/2,r.width=n,r.height=i},triangle:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.width=n,r.height=i}},Lg={};P({line:ja,rect:ja,roundRect:ja,square:ja,circle:pl,diamond:Ig,pin:Ag,arrow:Dg,triangle:Cg},(function(t,e){Lg[e]=new t}));var Pg=Ea.extend({type:"symbol",shape:{symbolType:"",x:0,y:0,width:0,height:0},calculateTextPosition:function(t,e,n){var i=zn(t,e,n),r=this.shape;return r&&"pin"===r.symbolType&&"inside"===e.position&&(i.y=n.y+.4*n.height),i},buildPath:function(t,e,n){var i=e.symbolType;if("none"!==i){var r=Lg[i];r||(r=Lg[i="rect"]),kg[i](e.x,e.y,e.width,e.height,r.shape),r.buildPath(t,r.shape,n)}}});function Og(t,e){if("image"!==this.type){var n=this.style;this.__isEmptyBrush?(n.stroke=t,n.fill=e||"#fff",n.lineWidth=2):n.fill=t,this.markRedraw()}}function Rg(t,e,n,i,r,o,a){var s,l=0===t.indexOf("empty");return l&&(t=t.substr(5,1).toLowerCase()+t.substr(6)),(s=0===t.indexOf("image://")?du(t.slice(8),new In(e,n,i,r),a?"center":"cover"):0===t.indexOf("path://")?pu(t.slice(7),{},new In(e,n,i,r),a?"center":"cover"):new Pg({shape:{symbolType:t,x:e,y:n,width:i,height:r}})).__isEmptyBrush=l,s.setColor=Og,o&&s.setColor(o),s}function Ng(t,e,n){for(var i="radial"===e.type?function(t,e,n){var i=n.width,r=n.height,o=Math.min(i,r),a=null==e.x?.5:e.x,s=null==e.y?.5:e.y,l=null==e.r?.5:e.r;return e.global||(a=a*i+n.x,s=s*r+n.y,l*=o),t.createRadialGradient(a,s,0,a,s,l)}(t,e,n):function(t,e,n){var i=null==e.x?0:e.x,r=null==e.x2?1:e.x2,o=null==e.y?0:e.y,a=null==e.y2?0:e.y2;return e.global||(i=i*n.width+n.x,r=r*n.width+n.x,o=o*n.height+n.y,a=a*n.height+n.y),i=isNaN(i)?0:i,r=isNaN(r)?1:r,o=isNaN(o)?0:o,a=isNaN(a)?0:a,t.createLinearGradient(i,o,r,a)}(t,e,n),r=e.colorStops,o=0;o<r.length;o++)i.addColorStop(r[o].offset,r[o].color);return i}function Eg(t,e){if(t===e||!t&&!e)return!1;if(!t||!e||t.length!==e.length)return!0;for(var n=0;n<t.length;n++)if(t[n]!==e[n])return!0;return!1}function Bg(t,e){return t&&"solid"!==t&&e>0?(e=e||1,"dashed"===t?[4*e,2*e]:"dotted"===t?[e]:W(t)?[t]:V(t)?t:null):null}var zg=new ya(!0);function Vg(t){var e=t.stroke;return!(null==e||"none"===e||!(t.lineWidth>0))}function Fg(t){var e=t.fill;return null!=e&&"none"!==e}function Hg(t,e){if(null!=e.fillOpacity&&1!==e.fillOpacity){var n=t.globalAlpha;t.globalAlpha=e.fillOpacity*e.opacity,t.fill(),t.globalAlpha=n}else t.fill()}function Gg(t,e){if(null!=e.strokeOpacity&&1!==e.strokeOpacity){var n=t.globalAlpha;t.globalAlpha=e.strokeOpacity*e.opacity,t.stroke(),t.globalAlpha=n}else t.stroke()}function Wg(t,e,n){var i=Wr(e.image,e.__image,n);if(Yr(i)){var r=t.createPattern(i,e.repeat||"repeat");if("function"==typeof DOMMatrix){var o=new DOMMatrix;o.rotateSelf(0,0,(e.rotation||0)/Math.PI*180),o.scaleSelf(e.scaleX||1,e.scaleY||1),o.translateSelf(e.x||0,e.y||0),r.setTransform(o)}return r}}var Ug=["shadowBlur","shadowOffsetX","shadowOffsetY"],Yg=[["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]];function Xg(t,e,n,i,r){var o=!1;if(!i&&e===(n=n||{}))return!1;(i||e.opacity!==n.opacity)&&(o||(qg(t,r),o=!0),t.globalAlpha=null==e.opacity?oo.opacity:e.opacity),(i||e.blend!==n.blend)&&(o||(qg(t,r),o=!0),t.globalCompositeOperation=e.blend||oo.blend);for(var a=0;a<Ug.length;a++){var s=Ug[a];(i||e[s]!==n[s])&&(o||(qg(t,r),o=!0),t[s]=t.dpr*(e[s]||0))}return(i||e.shadowColor!==n.shadowColor)&&(o||(qg(t,r),o=!0),t.shadowColor=e.shadowColor||oo.shadowColor),o}function Zg(t,e,n,i,r){var o=Kg(e,r.inHover),a=i?null:n&&Kg(n,r.inHover)||{};if(o===a)return!1;var s=Xg(t,o,a,i,r);if((i||o.fill!==a.fill)&&(s||(qg(t,r),s=!0),t.fillStyle=o.fill),(i||o.stroke!==a.stroke)&&(s||(qg(t,r),s=!0),t.strokeStyle=o.stroke),(i||o.opacity!==a.opacity)&&(s||(qg(t,r),s=!0),t.globalAlpha=null==o.opacity?1:o.opacity),e.hasStroke()){var l=o.lineWidth/(o.strokeNoScale&&e&&e.getLineScale?e.getLineScale():1);t.lineWidth!==l&&(s||(qg(t,r),s=!0),t.lineWidth=l)}for(var u=0;u<Yg.length;u++){var h=Yg[u],c=h[0];(i||o[c]!==a[c])&&(s||(qg(t,r),s=!0),t[c]=o[c]||h[1])}return s}function jg(t,e){var n=e.transform,i=t.dpr||1;n?t.setTransform(i*n[0],i*n[1],i*n[2],i*n[3],i*n[4],i*n[5]):t.setTransform(i,0,0,i,0,0)}function qg(t,e){e.batchFill&&t.fill(),e.batchStroke&&t.stroke(),e.batchFill="",e.batchStroke=""}function Kg(t,e){return e&&t.__hoverStyle||t.style}function $g(t,e){Jg(t,e,{inHover:!1,viewWidth:0,viewHeight:0},!0)}function Jg(t,e,n,i){var r=e.transform;if(!e.shouldBePainted(n.viewWidth,n.viewHeight,!1,!1))return e.__dirty&=~jn.REDARAW_BIT,void(e.__isRendered=!1);var o=e.__clipPaths,a=n.prevElClipPaths,s=!1,l=!1;if(a&&!Eg(o,a)||(a&&a.length&&(qg(t,n),t.restore(),l=s=!0,n.prevElClipPaths=null,n.allClipped=!1,n.prevEl=null),o&&o.length&&(qg(t,n),t.save(),function(t,e,n){for(var i=!1,r=0;r<t.length;r++){var o=t[r];i=i||o.isZeroArea(),jg(e,o),e.beginPath(),o.buildPath(e,o.shape),e.clip()}n.allClipped=i}(o,t,n),s=!0),n.prevElClipPaths=o),n.allClipped)e.__isRendered=!1;else{e.beforeBrush&&e.beforeBrush(),e.innerBeforeBrush();var u=n.prevEl;u||(l=s=!0);var h,c,p=e instanceof Ea&&e.autoBatch&&function(t){var e=Fg(t),n=Vg(t);return!(t.lineDash||!(+e^+n)||e&&"string"!=typeof t.fill||n&&"string"!=typeof t.stroke||t.strokePercent<1||t.strokeOpacity<1||t.fillOpacity<1)}(e.style);s||(h=r,c=u.transform,h&&c?h[0]!==c[0]||h[1]!==c[1]||h[2]!==c[2]||h[3]!==c[3]||h[4]!==c[4]||h[5]!==c[5]:h||c)?(qg(t,n),jg(t,e)):p||qg(t,n);var d=Kg(e,n.inHover);e instanceof Ea?(1!==n.lastDrawType&&(l=!0,n.lastDrawType=1),Zg(t,e,u,l,n),p&&(n.batchFill||n.batchStroke)||t.beginPath(),function(t,e,n,i){var r=Vg(n),o=Fg(n),a=n.strokePercent,s=a<1,l=!e.path;e.silent&&!s||!l||e.createPathProxy();var u=e.path||zg;if(!i){var h=n.fill,c=n.stroke,p=o&&!!h.colorStops,d=r&&!!c.colorStops,f=o&&!!h.image,g=r&&!!c.image,y=void 0,v=void 0,m=void 0,_=void 0,x=void 0;(p||d)&&(x=e.getBoundingRect()),p&&(y=e.__dirty?Ng(t,h,x):e.__canvasFillGradient,e.__canvasFillGradient=y),d&&(v=e.__dirty?Ng(t,c,x):e.__canvasStrokeGradient,e.__canvasStrokeGradient=v),f&&(m=e.__dirty||!e.__canvasFillPattern?Wg(t,h,e):e.__canvasFillPattern,e.__canvasFillPattern=m),g&&(_=e.__dirty||!e.__canvasStrokePattern?Wg(t,c,e):e.__canvasStrokePattern,e.__canvasStrokePattern=m),p?t.fillStyle=y:f&&(m?t.fillStyle=m:o=!1),d?t.strokeStyle=v:g&&(_?t.strokeStyle=_:r=!1)}var b=n.lineDash&&n.lineWidth>0&&Bg(n.lineDash,n.lineWidth),w=n.lineDashOffset,S=!!t.setLineDash,M=e.getGlobalScale();if(u.setScale(M[0],M[1],e.segmentIgnoreThreshold),b){var T=n.strokeNoScale&&e.getLineScale?e.getLineScale():1;T&&1!==T&&(b=O(b,(function(t){return t/T})),w/=T)}var C=!0;(l||e.__dirty&Ea.SHAPE_CHANGED_BIT||b&&!S&&r)&&(u.setDPR(t.dpr),s?u.setContext(null):(u.setContext(t),C=!1),u.reset(),b&&!S&&(u.setLineDash(b),u.setLineDashOffset(w)),e.buildPath(u,e.shape,i),u.toStatic(),e.pathUpdated()),C&&u.rebuildPath(t,s?a:1),b&&S&&(t.setLineDash(b),t.lineDashOffset=w),i||(n.strokeFirst?(r&&Gg(t,n),o&&Hg(t,n)):(o&&Hg(t,n),r&&Gg(t,n))),b&&S&&t.setLineDash([])}(t,e,d,p),p&&(n.batchFill=d.fill||"",n.batchStroke=d.stroke||"")):e instanceof za?(3!==n.lastDrawType&&(l=!0,n.lastDrawType=3),Zg(t,e,u,l,n),function(t,e,n){var i=n.text;if(null!=i&&(i+=""),i){t.font=n.font||Dn,t.textAlign=n.textAlign,t.textBaseline=n.textBaseline;var r=void 0;if(t.setLineDash){var o=n.lineDash&&n.lineWidth>0&&Bg(n.lineDash,n.lineWidth),a=n.lineDashOffset;if(o){var s=n.strokeNoScale&&e.getLineScale?e.getLineScale():1;s&&1!==s&&(o=O(o,(function(t){return t/s})),a/=s),t.setLineDash(o),t.lineDashOffset=a,r=!0}}n.strokeFirst?(Vg(n)&&t.strokeText(i,n.x,n.y),Fg(n)&&t.fillText(i,n.x,n.y)):(Fg(n)&&t.fillText(i,n.x,n.y),Vg(n)&&t.strokeText(i,n.x,n.y)),r&&t.setLineDash([])}}(t,e,d)):e instanceof Ha?(2!==n.lastDrawType&&(l=!0,n.lastDrawType=2),function(t,e,n,i,r){Xg(t,Kg(e,r.inHover),n&&Kg(n,r.inHover),i,r)}(t,e,u,l,n),function(t,e,n){var i=e.__image=Wr(n.image,e.__image,e,e.onload);if(i&&Yr(i)){var r=n.x||0,o=n.y||0,a=e.getWidth(),s=e.getHeight(),l=i.width/i.height;if(null==a&&null!=s?a=s*l:null==s&&null!=a?s=a/l:null==a&&null==s&&(a=i.width,s=i.height),n.sWidth&&n.sHeight){var u=n.sx||0,h=n.sy||0;t.drawImage(i,u,h,n.sWidth,n.sHeight,r,o,a,s)}else if(n.sx&&n.sy){var c=a-(u=n.sx),p=s-(h=n.sy);t.drawImage(i,u,h,c,p,r,o,a,s)}else t.drawImage(i,r,o,a,s)}}(t,e,d)):e instanceof iu&&(4!==n.lastDrawType&&(l=!0,n.lastDrawType=4),function(t,e,n){var i=e.getDisplayables(),r=e.getTemporalDisplayables();t.save();var o,a,s={prevElClipPaths:null,prevEl:null,allClipped:!1,viewWidth:n.viewWidth,viewHeight:n.viewHeight,inHover:n.inHover};for(o=e.getCursor(),a=i.length;o<a;o++){(h=i[o]).beforeBrush&&h.beforeBrush(),h.innerBeforeBrush(),Jg(t,h,s,o===a-1),h.innerAfterBrush(),h.afterBrush&&h.afterBrush(),s.prevEl=h}for(var l=0,u=r.length;l<u;l++){var h;(h=r[l]).beforeBrush&&h.beforeBrush(),h.innerBeforeBrush(),Jg(t,h,s,l===u-1),h.innerAfterBrush(),h.afterBrush&&h.afterBrush(),s.prevEl=h}e.clearTemporalDisplayables(),e.notClear=!0,t.restore()}(t,e,n)),p&&i&&qg(t,n),e.innerAfterBrush(),e.afterBrush&&e.afterBrush(),n.prevEl=e,e.__dirty=0,e.__isRendered=!0}}var Qg=new Tg,ty=new ke(100),ey=["symbol","symbolSize","symbolKeepAspect","color","backgroundColor","dashArrayX","dashArrayY","maxTileWidth","maxTileHeight"];function ny(t,e){if("none"===t)return null;var n=e.getDevicePixelRatio(),i=e.getZr(),r="svg"===i.painter.type;t.dirty&&Qg.delete(t);var o=Qg.get(t);if(o)return o;var a=C(t,{symbol:"rect",symbolSize:1,symbolKeepAspect:!0,color:"rgba(0, 0, 0, 0.2)",backgroundColor:null,dashArrayX:5,dashArrayY:5,rotation:0,maxTileWidth:512,maxTileHeight:512});"none"===a.backgroundColor&&(a.backgroundColor=null);var s={repeat:"repeat"};return function(t){for(var e,o=[n],s=!0,l=0;l<ey.length;++l){var u=a[ey[l]],h=typeof u;if(null!=u&&!V(u)&&"string"!==h&&"number"!==h&&"boolean"!==h){s=!1;break}o.push(u)}if(s){e=o.join(",")+(r?"-svg":"");var c=ty.get(e);c&&(r?t.svgElement=c:t.image=c)}var p,d=ry(a.dashArrayX),f=function(t){if(!t||"object"==typeof t&&0===t.length)return[0,0];if("number"==typeof t){var e=Math.ceil(t);return[e,e]}var n=O(t,(function(t){return Math.ceil(t)}));return t.length%2?n.concat(n):n}(a.dashArrayY),g=iy(a.symbol),y=(b=d,O(b,(function(t){return oy(t)}))),v=oy(f),m=!r&&I(),_=r&&i.painter.createSVGElement("g"),x=function(){for(var t=1,e=0,n=y.length;e<n;++e)t=rr(t,y[e]);var i=1;for(e=0,n=g.length;e<n;++e)i=rr(i,g[e].length);t*=i;var r=v*y.length*g.length;return{width:Math.max(1,Math.min(t,a.maxTileWidth)),height:Math.max(1,Math.min(r,a.maxTileHeight))}}();var b;m&&(m.width=x.width*n,m.height=x.height*n,p=m.getContext("2d"));(function(){p&&(p.clearRect(0,0,m.width,m.height),a.backgroundColor&&(p.fillStyle=a.backgroundColor,p.fillRect(0,0,m.width,m.height)));for(var t=0,e=0;e<f.length;++e)t+=f[e];if(t<=0)return;var o=-v,s=0,l=0,u=0;for(;o<x.height;){if(s%2==0){for(var h=l/2%g.length,c=0,y=0,b=0;c<2*x.width;){var w=0;for(e=0;e<d[u].length;++e)w+=d[u][e];if(w<=0)break;if(y%2==0){var S=.5*(1-a.symbolSize),M=c+d[u][y]*S,T=o+f[s]*S,C=d[u][y]*a.symbolSize,I=f[s]*a.symbolSize,A=b/2%g[h].length;D(M,T,C,I,g[h][A])}c+=d[u][y],++b,++y===d[u].length&&(y=0)}++u===d.length&&(u=0)}o+=f[s],++l,++s===f.length&&(s=0)}function D(t,e,o,s,l){var u=r?1:n,h=Rg(l,t*u,e*u,o*u,s*u,a.color,a.symbolKeepAspect);r?_.appendChild(i.painter.paintOne(h)):$g(p,h)}})(),s&&ty.put(e,m||_);t.image=m,t.svgElement=_,t.svgWidth=x.width,t.svgHeight=x.height}(s),s.rotation=a.rotation,s.scaleX=s.scaleY=r?1:1/n,Qg.set(t,s),t.dirty=!1,s}function iy(t){if(!t||0===t.length)return[["rect"]];if("string"==typeof t)return[[t]];for(var e=!0,n=0;n<t.length;++n)if("string"!=typeof t[n]){e=!1;break}if(e)return iy([t]);var i=[];for(n=0;n<t.length;++n)"string"==typeof t[n]?i.push([t[n]]):i.push(t[n]);return i}function ry(t){if(!t||0===t.length)return[[0,0]];if("number"==typeof t)return[[r=Math.ceil(t),r]];for(var e=!0,n=0;n<t.length;++n)if("number"!=typeof t[n]){e=!1;break}if(e)return ry([t]);var i=[];for(n=0;n<t.length;++n)if("number"==typeof t[n]){var r=Math.ceil(t[n]);i.push([r,r])}else{(r=O(t[n],(function(t){return Math.ceil(t)}))).length%2==1?i.push(r.concat(r)):i.push(r)}return i}function oy(t){for(var e=0,n=0;n<t.length;++n)e+=t[n];return t.length%2==1?2*e:e}var ay=it,sy=P,ly=F,uy=U,hy=A,cy="undefined"!=typeof window,py=2e3,dy=4500,fy={PROCESSOR:{FILTER:1e3,SERIES_FILTER:800,STATISTIC:5e3},VISUAL:{LAYOUT:1e3,PROGRESSIVE_LAYOUT:1100,GLOBAL:py,CHART:3e3,POST_CHART_LAYOUT:4600,COMPONENT:4e3,BRUSH:5e3,CHART_ITEM:dy,ARIA:6e3,DECAL:7e3}},gy=/^[a-zA-Z0-9_]+$/,yy="__connectUpdateStatus";function vy(t){return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];if(!this.isDisposed())return _y(this,t,e);Xy(this.id)}}function my(t){return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return _y(this,t,e)}}function _y(t,e,n){return n[0]=n[0]&&n[0].toLowerCase(),Nt.prototype[e].apply(t,n)}var xy,by,wy,Sy,My,Ty,Cy,Iy,Ay,Dy,ky,Ly,Py,Oy,Ry,Ny,Ey,By,zy,Vy,Fy,Hy=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e}(Nt),Gy=Hy.prototype;Gy.on=my("on"),Gy.off=my("off");var Wy=function(t){function e(e,n,i){var r=t.call(this,new zf)||this;r._chartsViews=[],r._chartsMap={},r._componentsViews=[],r._componentsMap={},r._pendingActions=[],i=i||{},"string"==typeof n&&(n=tv[n]),r._dom=e;var o="canvas",a=!1,s=r._zr=Ni(e,{renderer:i.renderer||o,devicePixelRatio:i.devicePixelRatio,width:i.width,height:i.height,useDirtyRect:null==i.useDirtyRect?a:i.useDirtyRect});r._throttledZrFlush=Qd(B(s.flush,s),17),(n=w(n))&&Mp(n,!0),r._theme=n,r._locale=function(t){if(H(t)){var e=ph[t.toUpperCase()]||{};return t===uh||t===hh?w(e):S(w(e),w(ph.EN),!1)}return S(w(t),w(ph.EN),!1)}(i.locale||fh),r._coordSysMgr=new ep;var l=r._api=Ey(r);function u(t,e){return t.__prio-e.__prio}return ri(Qy,u),ri(qy,u),r._scheduler=new pf(r,l,qy,Qy),r._messageCenter=new Hy,r._labelManager=new bg,r._initEvents(),r.resize=B(r.resize,r),s.animation.on("frame",r._onframe,r),Dy(s,r),ky(s,r),at(r),r}return n(e,t),e.prototype._onframe=function(){if(!this._disposed){Fy(this);var t=this._scheduler;if(this.__optionUpdated){var e=this.__optionUpdated.silent;this.__flagInMainProcess=!0,xy(this),Sy.update.call(this),this._zr.flush(),this.__flagInMainProcess=!1,this.__optionUpdated=!1,Iy.call(this,e),Ay.call(this,e)}else if(t.unfinished){var n=1,i=this._model,r=this._api;t.unfinished=!1;do{var o=+new Date;t.performSeriesTasks(i),t.performDataProcessorTasks(i),Ty(this,i),t.performVisualTasks(i),Ry(this,this._model,r,"remain"),n-=+new Date-o}while(n>0&&t.unfinished);t.unfinished||this._zr.flush()}}},e.prototype.getDom=function(){return this._dom},e.prototype.getId=function(){return this.id},e.prototype.getZr=function(){return this._zr},e.prototype.setOption=function(t,e,n){if(this._disposed)Xy(this.id);else{var i,r,o;if(uy(e)&&(n=e.lazyUpdate,i=e.silent,r=e.replaceMerge,o=e.transition,e=e.notMerge),this.__flagInMainProcess=!0,!this._model||e){var a=new ip(this._api),s=this._theme,l=this._model=new jc;l.scheduler=this._scheduler,l.init(null,null,null,s,this._locale,a)}this._model.setOption(t,{replaceMerge:r},Ky),zy(this,o),n?(this.__optionUpdated={silent:i},this.__flagInMainProcess=!1,this.getZr().wakeUp()):(xy(this),Sy.update.call(this),this._zr.flush(),this.__optionUpdated=!1,this.__flagInMainProcess=!1,Iy.call(this,i),Ay.call(this,i))}},e.prototype.setTheme=function(){console.error("ECharts#setTheme() is DEPRECATED in ECharts 3.0")},e.prototype.getModel=function(){return this._model},e.prototype.getOption=function(){return this._model&&this._model.getOption()},e.prototype.getWidth=function(){return this._zr.getWidth()},e.prototype.getHeight=function(){return this._zr.getHeight()},e.prototype.getDevicePixelRatio=function(){return this._zr.painter.dpr||cy&&window.devicePixelRatio||1},e.prototype.getRenderedCanvas=function(t){if(a.canvasSupported)return(t=T({},t||{})).pixelRatio=t.pixelRatio||1,t.backgroundColor=t.backgroundColor||this._model.get("backgroundColor"),this._zr.painter.getRenderedCanvas(t)},e.prototype.getSvgDataURL=function(){if(a.svgSupported){var t=this._zr;return P(t.storage.getDisplayList(),(function(t){t.stopAnimation(null,!0)})),t.painter.toDataURL()}},e.prototype.getDataURL=function(t){if(!this._disposed){var e=(t=t||{}).excludeComponents,n=this._model,i=[],r=this;sy(e,(function(t){n.eachComponent({mainType:t},(function(t){var e=r._componentsMap[t.__viewId];e.group.ignore||(i.push(e),e.group.ignore=!0)}))}));var o="svg"===this._zr.painter.getType()?this.getSvgDataURL():this.getRenderedCanvas(t).toDataURL("image/"+(t&&t.type||"png"));return sy(i,(function(t){t.group.ignore=!1})),o}Xy(this.id)},e.prototype.getConnectedDataURL=function(t){if(this._disposed)Xy(this.id);else if(a.canvasSupported){var e="svg"===t.type,n=this.group,i=Math.min,r=Math.max,o=1/0;if(iv[n]){var s=o,l=o,u=-1/0,h=-1/0,c=[],p=t&&t.pixelRatio||1;P(nv,(function(o,a){if(o.group===n){var p=e?o.getZr().painter.getSvgDom().innerHTML:o.getRenderedCanvas(w(t)),d=o.getDom().getBoundingClientRect();s=i(d.left,s),l=i(d.top,l),u=r(d.right,u),h=r(d.bottom,h),c.push({dom:p,left:d.left,top:d.top})}}));var d=(u*=p)-(s*=p),f=(h*=p)-(l*=p),g=I(),y=Ni(g,{renderer:e?"svg":"canvas"});if(y.resize({width:d,height:f}),e){var v="";return sy(c,(function(t){var e=t.left-s,n=t.top-l;v+='<g transform="translate('+e+","+n+')">'+t.dom+"</g>"})),y.painter.getSvgRoot().innerHTML=v,t.connectedBackgroundColor&&y.painter.setBackgroundColor(t.connectedBackgroundColor),y.refreshImmediately(),y.painter.toDataURL()}return t.connectedBackgroundColor&&y.add(new ja({shape:{x:0,y:0,width:d,height:f},style:{fill:t.connectedBackgroundColor}})),sy(c,(function(t){var e=new Ha({style:{x:t.left*p-s,y:t.top*p-l,image:t.dom}});y.add(e)})),y.refreshImmediately(),g.toDataURL("image/"+(t&&t.type||"png"))}return this.getDataURL(t)}},e.prototype.convertToPixel=function(t,e){return My(this,"convertToPixel",t,e)},e.prototype.convertFromPixel=function(t,e){return My(this,"convertFromPixel",t,e)},e.prototype.containPixel=function(t,e){var n;if(!this._disposed)return P(wr(this._model,t),(function(t,i){i.indexOf("Models")>=0&&P(t,(function(t){var r=t.coordinateSystem;if(r&&r.containPoint)n=n||!!r.containPoint(e);else if("seriesModels"===i){var o=this._chartsMap[t.__viewId];o&&o.containPoint&&(n=n||o.containPoint(e,t))}else 0}),this)}),this),!!n;Xy(this.id)},e.prototype.getVisual=function(t,e){var n=wr(this._model,t,{defaultMainType:"series"}),i=n.seriesModel;var r=i.getData(),o=n.hasOwnProperty("dataIndexInside")?n.dataIndexInside:n.hasOwnProperty("dataIndex")?r.indexOfRawIndex(n.dataIndex):null;return null!=o?function(t,e,n){switch(n){case"color":return t.getItemVisual(e,"style")[t.getVisual("drawType")];case"opacity":return t.getItemVisual(e,"style").opacity;case"symbol":case"symbolSize":case"liftZ":return t.getItemVisual(e,n)}}(r,o,e):Ff(r,e)},e.prototype.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},e.prototype.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]},e.prototype._initEvents=function(){var t,e,n,i=this;sy(Yy,(function(t){var e=function(e){var n,r=i.getModel(),o=e.target,a="globalout"===t;if(a?n={}:o&&Sg(o,(function(t){var e=os(t);if(e&&null!=e.dataIndex){var i=e.dataModel||r.getSeriesByIndex(e.seriesIndex);return n=i&&i.getDataParams(e.dataIndex,e.dataType)||{},!0}if(e.eventData)return n=T({},e.eventData),!0}),!0),n){var s=n.componentType,l=n.componentIndex;"markLine"!==s&&"markPoint"!==s&&"markArea"!==s||(s="series",l=n.seriesIndex);var u=s&&null!=l&&r.getComponent(s,l),h=u&&i["series"===u.mainType?"_chartsMap":"_componentsMap"][u.__viewId];0,n.event=e,n.type=t,i._$eventProcessor.eventInfo={targetEl:o,packedEvent:n,model:u,view:h},i.trigger(t,n)}};e.zrEventfulCallAtLast=!0,i._zr.on(t,e,i)})),sy(jy,(function(t,e){i._messageCenter.on(e,(function(t){this.trigger(e,t)}),i)})),sy(["selectchanged"],(function(t){i._messageCenter.on(t,(function(e){this.trigger(t,e)}),i)})),t=this._messageCenter,e=this,n=this._api,t.on("selectchanged",(function(t){var i=n.getModel();t.isFromClick?(wg("map","selectchanged",e,i,t),wg("pie","selectchanged",e,i,t)):"select"===t.fromAction?(wg("map","selected",e,i,t),wg("pie","selected",e,i,t)):"unselect"===t.fromAction&&(wg("map","unselected",e,i,t),wg("pie","unselected",e,i,t))}))},e.prototype.isDisposed=function(){return this._disposed},e.prototype.clear=function(){this._disposed?Xy(this.id):this.setOption({series:[]},!0)},e.prototype.dispose=function(){if(this._disposed)Xy(this.id);else{this._disposed=!0,Cr(this.getDom(),av,"");var t=this._api,e=this._model;sy(this._componentsViews,(function(n){n.dispose(e,t)})),sy(this._chartsViews,(function(n){n.dispose(e,t)})),this._zr.dispose(),delete nv[this.id]}},e.prototype.resize=function(t){if(this._disposed)Xy(this.id);else{this._zr.resize(t);var e=this._model;if(this._loadingFX&&this._loadingFX.resize(),e){var n=e.resetOption("media"),i=t&&t.silent;this.__flagInMainProcess=!0,n&&xy(this),Sy.update.call(this,{type:"resize",animation:{duration:0}}),this.__flagInMainProcess=!1,Iy.call(this,i),Ay.call(this,i)}}},e.prototype.showLoading=function(t,e){if(this._disposed)Xy(this.id);else if(uy(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),ev[t]){var n=ev[t](this._api,e),i=this._zr;this._loadingFX=n,i.add(n)}},e.prototype.hideLoading=function(){this._disposed?Xy(this.id):(this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null)},e.prototype.makeActionFromEvent=function(t){var e=T({},t);return e.type=jy[t.type],e},e.prototype.dispatchAction=function(t,e){if(this._disposed)Xy(this.id);else if(uy(e)||(e={silent:!!e}),Zy[t.type]&&this._model)if(this.__flagInMainProcess)this._pendingActions.push(t);else{var n=e.silent;Cy.call(this,t,n);var i=e.flush;i?this._zr.flush():!1!==i&&a.browser.weChat&&this._throttledZrFlush(),Iy.call(this,n),Ay.call(this,n)}},e.prototype.updateLabelLayout=function(){var t=this._labelManager;t.updateLayoutConfig(this._api),t.layout(this._api),t.processLabelsOverall()},e.prototype.appendData=function(t){if(this._disposed)Xy(this.id);else{var e=t.seriesIndex,n=this.getModel().getSeriesByIndex(e);0,n.appendData(t),this._scheduler.unfinished=!0,this.getZr().wakeUp()}},e.internalField=function(){function t(t){for(var e=[],n=t.currentStates,i=0;i<n.length;i++){var r=n[i];"emphasis"!==r&&"blur"!==r&&"select"!==r&&e.push(r)}t.selected&&t.states.select&&e.push("select"),2===t.hoverState&&t.states.emphasis?e.push("emphasis"):1===t.hoverState&&t.states.blur&&e.push("blur"),t.useStates(e)}function e(t,e){if(!t.preventAutoZ){var n=t.get("z"),i=t.get("zlevel");e.group.traverse((function(t){if(!t.isGroup){null!=n&&(t.z=n),null!=i&&(t.zlevel=i);var e=t.getTextContent(),r=t.getTextGuideLine();if(e&&(e.z=t.z,e.zlevel=t.zlevel,e.z2=t.z2+2),r){var o=t.textGuideLineConfig&&t.textGuideLineConfig.showAbove;r.z=t.z,r.zlevel=t.zlevel,r.z2=t.z2+(o?1:-1)}}}))}}function i(t,e){e.group.traverse((function(t){if(!Mu(t)){var e=t.getTextContent(),n=t.getTextGuideLine();t.stateTransition&&(t.stateTransition=null),e&&e.stateTransition&&(e.stateTransition=null),n&&n.stateTransition&&(n.stateTransition=null),t.hasState()?(t.prevStates=t.currentStates,t.clearStates()):t.prevStates&&(t.prevStates=null)}}))}function r(e,n){var i=e.getModel("stateAnimation"),r=e.isAnimationEnabled(),o=i.get("duration"),a=o>0?{duration:o,delay:i.get("delay"),easing:i.get("easing")}:null;n.group.traverse((function(e){if(e.states&&e.states.emphasis){if(Mu(e))return;if(e instanceof Ea&&function(t){var e=ls(t);e.normalFill=t.style.fill,e.normalStroke=t.style.stroke;var n=t.states.select||{};e.selectFill=n.style&&n.style.fill||null,e.selectStroke=n.style&&n.style.stroke||null}(e),e.__dirty){var n=e.prevStates;n&&e.useStates(n)}if(r){e.stateTransition=a;var i=e.getTextContent(),o=e.getTextGuideLine();i&&(i.stateTransition=a),o&&(o.stateTransition=a)}e.__dirty&&t(e)}}))}xy=function(t){var e=t._scheduler;e.restorePipelines(t._model),e.prepareStageTasks(),by(t,!0),by(t,!1),e.plan()},by=function(t,e){for(var n=t._model,i=t._scheduler,r=e?t._componentsViews:t._chartsViews,o=e?t._componentsMap:t._chartsMap,a=t._zr,s=t._api,l=0;l<r.length;l++)r[l].__alive=!1;function u(t){var l=t.__requireNewView;t.__requireNewView=!1;var u="_ec_"+t.id+"_"+t.type,h=!l&&o[u];if(!h){var c=kr(t.type),p=e?Fd.getClass(c.main,c.sub):Ud.getClass(c.sub);0,(h=new p).init(n,s),o[u]=h,r.push(h),a.add(h.group)}t.__viewId=h.__id=u,h.__alive=!0,h.__model=t,h.group.__ecComponentInfo={mainType:t.mainType,index:t.componentIndex},!e&&i.prepareView(h,t,n,s)}e?n.eachComponent((function(t,e){"series"!==t&&u(e)})):n.eachSeries(u);for(l=0;l<r.length;){var h=r[l];h.__alive?l++:(!e&&h.renderTask.dispose(),a.remove(h.group),h.dispose(n,s),r.splice(l,1),o[h.__id]===h&&delete o[h.__id],h.__id=h.group.__ecComponentInfo=null)}},wy=function(t,e,n,i,r){var o=t._model;if(o.setUpdatePayload(n),i){var a={};a[i+"Id"]=n[i+"Id"],a[i+"Index"]=n[i+"Index"],a[i+"Name"]=n[i+"Name"];var s={mainType:i,query:a};r&&(s.subType=r);var l,u=n.excludeSeriesId;null!=u&&(l=ut(),sy(ur(u),(function(t){var e=yr(t,null);null!=e&&l.set(e,!0)}))),o&&o.eachComponent(s,(function(e){l&&null!=l.get(e.id)||(Zs(n)&&!n.notBlur?e instanceof Pd&&function(t,e,n){if(Zs(e)){var i=e.type===cs,r=t.seriesIndex,o=t.getData(e.dataType),a=_r(o,e);a=(V(a)?a[0]:a)||0;var s=o.getItemGraphicEl(a);if(!s)for(var l=o.count(),u=0;!s&&u<l;)s=o.getItemGraphicEl(u++);if(s){var h=os(s);zs(r,h.focus,h.blurScope,n,i)}else{var c=t.get(["emphasis","focus"]),p=t.get(["emphasis","blurScope"]);null!=c&&zs(r,c,p,n,i)}}}(e,n,t._api):Xs(n)&&e instanceof Pd&&(!function(t,e,n){if(Xs(e)){var i=e.dataType,r=_r(t.getData(i),e);V(r)||(r=[r]),t[e.type===gs?"toggleSelect":e.type===ds?"select":"unselect"](r,i)}}(e,n,t._api),Vs(e),Vy(t)),h(t["series"===i?"_chartsMap":"_componentsMap"][e.__viewId]))}),t)}else sy([].concat(t._componentsViews).concat(t._chartsViews),h);function h(i){i&&i.__alive&&i[e]&&i[e](i.__model,o,t._api,n)}},Sy={prepareAndUpdate:function(t){xy(this),Sy.update.call(this,t)},update:function(t){var e=this._model,n=this._api,i=this._zr,r=this._coordSysMgr,o=this._scheduler;if(e){e.setUpdatePayload(t),o.restoreData(e,t),o.performSeriesTasks(e),r.create(e,n),o.performDataProcessorTasks(e,t),Ty(this,e),r.update(e,n),Ly(e),o.performVisualTasks(e,t),Py(this,e,n,t);var s=e.get("backgroundColor")||"transparent",l=e.get("darkMode");if(a.canvasSupported)i.setBackgroundColor(s),null!=l&&"auto"!==l&&i.setDarkMode(l);else{var u=We(s);s=Je(u,"rgb"),0===u[3]&&(s="transparent")}Ny(e,n)}},updateTransform:function(t){var e=this,n=this._model,i=this._api;if(n){n.setUpdatePayload(t);var r=[];n.eachComponent((function(o,a){if("series"!==o){var s=e.getViewOfComponentModel(a);if(s&&s.__alive)if(s.updateTransform){var l=s.updateTransform(a,n,i,t);l&&l.update&&r.push(s)}else r.push(s)}}));var o=ut();n.eachSeries((function(r){var a=e._chartsMap[r.__viewId];if(a.updateTransform){var s=a.updateTransform(r,n,i,t);s&&s.update&&o.set(r.uid,1)}else o.set(r.uid,1)})),Ly(n),this._scheduler.performVisualTasks(n,t,{setDirty:!0,dirtyMap:o}),Ry(this,n,i,t,o),Ny(n,this._api)}},updateView:function(t){var e=this._model;e&&(e.setUpdatePayload(t),Ud.markUpdateMethod(t,"updateView"),Ly(e),this._scheduler.performVisualTasks(e,t,{setDirty:!0}),Py(this,this._model,this._api,t),Ny(e,this._api))},updateVisual:function(t){var e=this,n=this._model;n&&(n.setUpdatePayload(t),n.eachSeries((function(t){t.getData().clearAllVisual()})),Ud.markUpdateMethod(t,"updateVisual"),Ly(n),this._scheduler.performVisualTasks(n,t,{visualType:"visual",setDirty:!0}),n.eachComponent((function(i,r){if("series"!==i){var o=e.getViewOfComponentModel(r);o&&o.__alive&&o.updateVisual(r,n,e._api,t)}})),n.eachSeries((function(i){e._chartsMap[i.__viewId].updateVisual(i,n,e._api,t)})),Ny(n,this._api))},updateLayout:function(t){Sy.update.call(this,t)}},My=function(t,e,n,i){if(t._disposed)Xy(t.id);else{for(var r,o=t._model,a=t._coordSysMgr.getCoordinateSystems(),s=wr(o,n),l=0;l<a.length;l++){var u=a[l];if(u[e]&&null!=(r=u[e](o,s,i)))return r}0}},Ty=function(t,e){var n=t._chartsMap,i=t._scheduler;e.eachSeries((function(t){i.updateStreamModes(t,n[t.__viewId])}))},Cy=function(t,e){var n=this,i=this.getModel(),r=t.type,o=t.escapeConnect,a=Zy[r],s=a.actionInfo,l=(s.update||"update").split(":"),u=l.pop(),h=null!=l[0]&&kr(l[0]);this.__flagInMainProcess=!0;var c=[t],p=!1;t.batch&&(p=!0,c=O(t.batch,(function(e){return(e=C(T({},e),t)).batch=null,e})));var d,f=[],g=Xs(t),y=Zs(t)||g;if(sy(c,(function(t){(d=(d=a.action(t,n._model,n._api))||T({},t)).type=s.event||d.type,f.push(d),y?(wy(n,u,t,"series"),Vy(n)):h&&wy(n,u,t,h.main,h.sub)})),"none"===u||y||h||(this.__optionUpdated?(xy(this),Sy.update.call(this,t),this.__optionUpdated=!1):Sy[u].call(this,t)),d=p?{type:s.event||r,escapeConnect:o,batch:f}:f[0],this.__flagInMainProcess=!1,!e){var v=this._messageCenter;if(v.trigger(d.type,d),g){var m={type:"selectchanged",escapeConnect:o,selected:Fs(i),isFromClick:t.isFromClick||!1,fromAction:t.type,fromActionPayload:t};v.trigger(m.type,m)}}},Iy=function(t){for(var e=this._pendingActions;e.length;){var n=e.shift();Cy.call(this,n,t)}},Ay=function(t){!t&&this.trigger("updated")},Dy=function(t,e){t.on("rendered",(function(n){e.trigger("rendered",n),!t.animation.isFinished()||e.__optionUpdated||e._scheduler.unfinished||e._pendingActions.length||e.trigger("finished")}))},ky=function(t,e){t.on("mouseover",(function(t){var n=Sg(t.target,Ys);if(n){var i=os(n);zs(i.seriesIndex,i.focus,i.blurScope,e._api,!0),function(t,e){!Bs(t,e)&&!t.__highByOuter&&Is(t,xs)}(n,t),Vy(e)}})).on("mouseout",(function(t){var n=Sg(t.target,Ys);if(n){var i=os(n);zs(i.seriesIndex,i.focus,i.blurScope,e._api,!1),function(t,e){!Bs(t,e)&&!t.__highByOuter&&Is(t,bs)}(n,t),Vy(e)}})).on("click",(function(t){var n=Sg(t.target,(function(t){return null!=os(t).dataIndex}),!0);if(n){var i=n.selected?"unselect":"select",r=os(n);e._api.dispatchAction({type:i,dataType:r.dataType,dataIndexInside:r.dataIndex,seriesIndex:r.seriesIndex,isFromClick:!0})}}))},Ly=function(t){t.clearColorPalette(),t.eachSeries((function(t){t.clearColorPalette()}))},Py=function(t,e,n,i){Oy(t,e,n,i),sy(t._chartsViews,(function(t){t.__alive=!1})),Ry(t,e,n,i),sy(t._chartsViews,(function(t){t.__alive||t.remove(e,n)}))},Oy=function(t,n,o,a,s){sy(s||t._componentsViews,(function(t){var s=t.__model;i(s,t),t.render(s,n,o,a),e(s,t),r(s,t)}))},Ry=function(t,n,o,s,l){var u=t._scheduler,h=t._labelManager;h.clearLabels();var c=!1;n.eachSeries((function(e){var n=t._chartsMap[e.__viewId];n.__alive=!0;var r=n.renderTask;u.updatePayload(r,s),i(e,n),l&&l.get(e.uid)&&r.dirty(),r.perform(u.getPerformArgs(r))&&(c=!0),e.__transientTransitionOpt=null,n.group.silent=!!e.get("silent"),function(t,e){var n=t.get("blendMode")||null;0;e.group.traverse((function(t){t.isGroup||(t.style.blend=n),t.eachPendingDisplayable&&t.eachPendingDisplayable((function(t){t.style.blend=n}))}))}(e,n),Vs(e),h.addLabelsOfSeries(n)})),u.unfinished=c||u.unfinished,h.updateLayoutConfig(o),h.layout(o),h.processLabelsOverall(),n.eachSeries((function(n){var i=t._chartsMap[n.__viewId];e(n,i),r(n,i)})),function(t,e){var n=t._zr.storage,i=0;n.traverse((function(t){t.isGroup||i++})),i>e.get("hoverLayerThreshold")&&!a.node&&!a.worker&&e.eachSeries((function(e){if(!e.preventUsingHoverLayer){var n=t._chartsMap[e.__viewId];n.__alive&&n.group.traverse((function(t){t.states.emphasis&&(t.states.emphasis.hoverLayer=!0)}))}}))}(t,n)},Ny=function(t,e){sy(Jy,(function(n){n(t,e)}))},Vy=function(t){t.__needsUpdateStatus=!0,t.getZr().wakeUp()},Fy=function(e){e.__needsUpdateStatus&&(e.getZr().storage.traverse((function(e){Mu(e)||t(e)})),e.__needsUpdateStatus=!1)},Ey=function(t){return new(function(e){function i(){return null!==e&&e.apply(this,arguments)||this}return n(i,e),i.prototype.getCoordinateSystems=function(){return t._coordSysMgr.getCoordinateSystems()},i.prototype.getComponentByElement=function(e){for(;e;){var n=e.__ecComponentInfo;if(null!=n)return t._model.getComponent(n.mainType,n.index);e=e.parent}},i.prototype.enterEmphasis=function(e,n){Ls(e,n),Vy(t)},i.prototype.leaveEmphasis=function(e,n){Ps(e,n),Vy(t)},i.prototype.enterBlur=function(e){Os(e),Vy(t)},i.prototype.leaveBlur=function(e){Rs(e),Vy(t)},i.prototype.enterSelect=function(e){Ns(e),Vy(t)},i.prototype.leaveSelect=function(e){Es(e),Vy(t)},i.prototype.getModel=function(){return t.getModel()},i.prototype.getViewOfComponentModel=function(e){return t.getViewOfComponentModel(e)},i.prototype.getViewOfSeriesModel=function(e){return t.getViewOfSeriesModel(e)},i}(Qc))(t)},By=function(t){function e(t,e){for(var n=0;n<t.length;n++){t[n][yy]=e}}sy(jy,(function(n,i){t._messageCenter.on(i,(function(n){if(iv[t.group]&&0!==t[yy]){if(n&&n.escapeConnect)return;var i=t.makeActionFromEvent(n),r=[];sy(nv,(function(e){e!==t&&e.group===t.group&&r.push(e)})),e(r,0),sy(r,(function(t){1!==t[yy]&&t.dispatchAction(i)})),e(r,2)}}))}))},zy=function(t,e){var n=t._model;P(ur(e),(function(t){var e,i=t.from,r=t.to;null==r&&ar(e);var o={includeMainTypes:["series"],enableAll:!1,enableNone:!1},a=i?wr(n,i,o):null,s=wr(n,r,o).seriesModel;null==s&&(e=""),a&&a.seriesModel!==s&&(e=""),null!=e&&ar(e),s.__transientTransitionOpt={from:i?i.dimension:null,to:r.dimension,dividingMethod:t.dividingMethod}}))}}(),e}(Nt),Uy=Wy.prototype;Uy.on=vy("on"),Uy.off=vy("off"),Uy.one=function(t,e,n){var i=this;or(),this.on.call(this,t,(function n(){for(var r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];e&&e.apply&&e.apply(this,r),i.off(t,n)}),n)};var Yy=["click","dblclick","mouseover","mouseout","mousemove","mousedown","mouseup","globalout","contextmenu"];function Xy(t){0}var Zy={},jy={},qy=[],Ky=[],$y=[],Jy=[],Qy=[],tv={},ev={},nv={},iv={},rv=+new Date-0,ov=+new Date-0,av="_echarts_instance_";function sv(t){iv[t]=!1}var lv=sv;function uv(t){return nv[function(t,e){return t.getAttribute?t.getAttribute(e):t[e]}(t,av)]}function hv(t,e){tv[t]=e}function cv(t){hy(Ky,t)<0&&Ky.push(t)}function pv(t,e){xv(qy,t,e,2e3)}function dv(t){hy($y,t)<0&&t&&$y.push(t)}function fv(t){hy(Jy,t)<0&&t&&Jy.push(t)}function gv(t,e,n){"function"==typeof e&&(n=e,e="");var i=uy(t)?t.type:[t,t={event:e}][0];t.event=(t.event||i).toLowerCase(),e=t.event,jy[e]||(ay(gy.test(i)&&gy.test(e)),Zy[i]||(Zy[i]={action:n,actionInfo:t}),jy[e]=i)}function yv(t,e){ep.register(t,e)}function vv(t,e){xv(Qy,t,e,1e3,"layout")}function mv(t,e){xv(Qy,t,e,3e3,"visual")}var _v=[];function xv(t,e,n,i,r){if((ly(e)||uy(e))&&(n=e,e=i),!(hy(_v,n)>=0)){_v.push(n);var o=pf.wrapStageHandler(n,r);o.__prio=e,o.__raw=n,t.push(o)}}function bv(t,e){ev[t]=e}function wv(t,e,n){Nf(t,e,n)}var Sv=function(t){var e=(t=w(t)).type,n="";e||ar(n);var i=e.split(":");2!==i.length&&ar(n);var r=!1;"echarts"===i[0]&&(e=i[1],r=!0),t.__isBuiltIn=r,hd.set(e,t)};mv(py,sf),mv(dy,uf),mv(dy,hf),mv(py,Vf),mv(dy,{createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){if(t.hasSymbolVisual&&!e.isSeriesFiltered(t))return{dataEach:t.getData().hasItemOption?function(t,e){var n=t.getItemModel(e),i=n.getShallow("symbol",!0),r=n.getShallow("symbolSize",!0),o=n.getShallow("symbolRotate",!0),a=n.getShallow("symbolKeepAspect",!0);null!=i&&t.setItemVisual(e,"symbol",i),null!=r&&t.setItemVisual(e,"symbolSize",r),null!=o&&t.setItemVisual(e,"symbolRotate",o),null!=a&&t.setItemVisual(e,"symbolKeepAspect",a)}:null}}}),mv(7e3,(function(t,e){t.eachRawSeries((function(n){if(!t.isSeriesFiltered(n)){var i=n.getData();i.hasItemVisual()&&i.each((function(t){var n=i.getItemVisual(t,"decal");n&&(i.ensureUniqueItemVisual(t,"style").decal=ny(n,e))}));var r=i.getVisual("decal");if(r)i.getVisual("style").decal=ny(r,e)}}))})),cv(Mp),pv(900,(function(t){var e=ut();t.eachSeries((function(t){var n=t.get("stack");if(n){var i=e.get(n)||e.set(n,[]),r=t.getData(),o={stackResultDimension:r.getCalculationInfo("stackResultDimension"),stackedOverDimension:r.getCalculationInfo("stackedOverDimension"),stackedDimension:r.getCalculationInfo("stackedDimension"),stackedByDimension:r.getCalculationInfo("stackedByDimension"),isStackedByIndex:r.getCalculationInfo("isStackedByIndex"),data:r,seriesModel:t};if(!o.stackedDimension||!o.isStackedByIndex&&!o.stackedByDimension)return;i.length&&r.setCalculationInfo("stackedOnSeries",i[i.length-1].seriesModel),i.push(o)}})),e.each(Tp)})),bv("default",(function(t,e){C(e=e||{},{text:"loading",textColor:"#000",fontSize:12,fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",maskColor:"rgba(255, 255, 255, 0.8)",showSpinner:!0,color:"#5470c6",spinnerRadius:10,lineWidth:5,zlevel:0});var n=new ki,i=new ja({style:{fill:e.maskColor},zlevel:e.zlevel,z:1e4});n.add(i);var r,o=new $a({style:{text:e.text,fill:e.textColor,fontSize:e.fontSize,fontWeight:e.fontWeight,fontStyle:e.fontStyle,fontFamily:e.fontFamily}}),a=new ja({style:{fill:"none"},textContent:o,textConfig:{position:"right",distance:10},zlevel:e.zlevel,z:10001});return n.add(a),e.showSpinner&&((r=new Xl({shape:{startAngle:-cf/2,endAngle:-cf/2+.1,r:e.spinnerRadius},style:{stroke:e.color,lineCap:"round",lineWidth:e.lineWidth},zlevel:e.zlevel,z:10001})).animateShape(!0).when(1e3,{endAngle:3*cf/2}).start("circularInOut"),r.animateShape(!0).when(1e3,{startAngle:3*cf/2}).delay(300).start("circularInOut"),n.add(r)),n.resize=function(){var n=o.getBoundingRect().width,s=e.showSpinner?e.spinnerRadius:0,l=(t.getWidth()-2*s-(e.showSpinner&&n?10:0)-n)/2-(e.showSpinner&&n?0:5+n/2)+(e.showSpinner?0:n/2)+(n?0:s),u=t.getHeight()/2;e.showSpinner&&r.setShape({cx:l,cy:u}),a.setShape({x:l-s,y:u-s,width:2*s,height:2*s}),i.setShape({x:0,y:0,width:t.getWidth(),height:t.getHeight()})},n.resize(),n})),gv({type:cs,event:cs,update:cs},pt),gv({type:ps,event:ps,update:ps},pt),gv({type:ds,event:ds,update:ds},pt),gv({type:fs,event:fs,update:fs},pt),gv({type:gs,event:gs,update:gs},pt),hv("light",Af),hv("dark",Of);var Mv=[],Tv={registerPreprocessor:cv,registerProcessor:pv,registerPostInit:dv,registerPostUpdate:fv,registerAction:gv,registerCoordinateSystem:yv,registerLayout:vv,registerVisual:mv,registerTransform:Sv,registerLoading:bv,registerMap:wv,PRIORITY:fy,ComponentModel:vc,ComponentView:Fd,SeriesModel:Pd,ChartView:Ud,registerComponentModel:function(t){vc.registerClass(t)},registerComponentView:function(t){Fd.registerClass(t)},registerSeriesModel:function(t){Pd.registerClass(t)},registerChartView:function(t){Ud.registerClass(t)},registerSubTypeDefaulter:function(t,e){vc.registerSubTypeDefaulter(t,e)},registerPainter:function(t,e){Ei(t,e)}};function Cv(t){V(t)?P(t,(function(t){Cv(t)})):A(Mv,t)>=0||(Mv.push(t),F(t)&&(t={install:t}),t.install(Tv))}function Iv(t){return null==t?0:t.length||1}function Av(t){return t}var Dv=function(){function t(t,e,n,i,r,o){this._old=t,this._new=e,this._oldKeyGetter=n||Av,this._newKeyGetter=i||Av,this.context=r,this._diffModeMultiple="multiple"===o}return t.prototype.add=function(t){return this._add=t,this},t.prototype.update=function(t){return this._update=t,this},t.prototype.updateManyToOne=function(t){return this._updateManyToOne=t,this},t.prototype.updateOneToMany=function(t){return this._updateOneToMany=t,this},t.prototype.remove=function(t){return this._remove=t,this},t.prototype.execute=function(){this[this._diffModeMultiple?"_executeMultiple":"_executeOneToOne"]()},t.prototype._executeOneToOne=function(){var t=this._old,e=this._new,n={},i=new Array(t.length),r=new Array(e.length);this._initIndexMap(t,null,i,"_oldKeyGetter"),this._initIndexMap(e,n,r,"_newKeyGetter");for(var o=0;o<t.length;o++){var a=i[o],s=n[a],l=Iv(s);if(l>1){var u=s.shift();1===s.length&&(n[a]=s[0]),this._update&&this._update(u,o)}else 1===l?(n[a]=null,this._update&&this._update(s,o)):this._remove&&this._remove(o)}this._performRestAdd(r,n)},t.prototype._executeMultiple=function(){var t=this._old,e=this._new,n={},i={},r=[],o=[];this._initIndexMap(t,n,r,"_oldKeyGetter"),this._initIndexMap(e,i,o,"_newKeyGetter");for(var a=0;a<r.length;a++){var s=r[a],l=n[s],u=i[s],h=Iv(l),c=Iv(u);if(h>1&&1===c)this._updateManyToOne&&this._updateManyToOne(u,l),i[s]=null;else if(1===h&&c>1)this._updateOneToMany&&this._updateOneToMany(u,l),i[s]=null;else if(1===h&&1===c)this._update&&this._update(u,l),i[s]=null;else if(h>1)for(var p=0;p<h;p++)this._remove&&this._remove(l[p]);else this._remove&&this._remove(l)}this._performRestAdd(o,i)},t.prototype._performRestAdd=function(t,e){for(var n=0;n<t.length;n++){var i=t[n],r=e[i],o=Iv(r);if(o>1)for(var a=0;a<o;a++)this._add&&this._add(r[a]);else 1===o&&this._add&&this._add(r);e[i]=null}},t.prototype._initIndexMap=function(t,e,n,i){for(var r=this._diffModeMultiple,o=0;o<t.length;o++){var a="_ec_"+this[i](t[o],o);if(r||(n[o]=a),e){var s=e[a],l=Iv(s);0===l?(e[a]=o,r&&n.push(a)):1===l?e[a]=[s,o]:s.push(o)}}},t}();function kv(t,e){return t.hasOwnProperty(e)||(t[e]=[]),t[e]}var Lv,Pv,Ov,Rv,Nv,Ev,Bv,zv,Vv,Fv,Hv,Gv,Wv,Uv,Yv=function(t){this.otherDims={},null!=t&&T(this,t)},Xv=Math.floor,Zv=U,jv=O,qv="undefined",Kv={float:typeof Float64Array===qv?Array:Float64Array,int:typeof Int32Array===qv?Array:Int32Array,ordinal:Array,number:Array,time:Array},$v=typeof Uint32Array===qv?Array:Uint32Array,Jv=typeof Int32Array===qv?Array:Int32Array,Qv=typeof Uint16Array===qv?Array:Uint16Array,tm=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_rawData","_dimValueGetter","_count","_rawCount","_nameDimIdx","_idDimIdx","_nameRepeatCount"],em=["_extent","_approximateExtent","_rawExtent"],nm=function(){function t(t,e){this.type="list",this._count=0,this._rawCount=0,this._storage={},this._storageArr=[],this._nameList=[],this._idList=[],this._visual={},this._layout={},this._itemVisuals=[],this._itemLayouts=[],this._graphicEls=[],this._rawExtent={},this._extent={},this._approximateExtent={},this._calculationInfo={},this.hasItemOption=!0,this.TRANSFERABLE_METHODS=["cloneShallow","downSample","lttbDownSample","map"],this.CHANGABLE_METHODS=["filterSelf","selectRange"],this.DOWNSAMPLE_METHODS=["downSample","lttbDownSample"],this.getRawIndex=Nv,t=t||["x","y"];for(var n={},i=[],r={},o=0;o<t.length;o++){var a=t[o],s=H(a)?new Yv({name:a}):a instanceof Yv?a:new Yv(a),l=s.name;s.type=s.type||"float",s.coordDim||(s.coordDim=l,s.coordDimIndex=0);var u=s.otherDims=s.otherDims||{};i.push(l),n[l]=s,s.index=o,s.createInvertedIndices&&(r[l]=[]),0===u.itemName&&(this._nameDimIdx=o,this._nameOrdinalMeta=s.ordinalMeta),0===u.itemId&&(this._idDimIdx=o,this._idOrdinalMeta=s.ordinalMeta)}this.dimensions=i,this._dimensionInfos=n,this.hostModel=e,this._dimensionsSummary=function(t){var e={},n=e.encode={},i=ut(),r=[],o=[],a=e.userOutput={dimensionNames:t.dimensions.slice(),encode:{}};P(t.dimensions,(function(e){var s,l=t.getDimensionInfo(e),u=l.coordDim;if(u){var h=l.coordDimIndex;kv(n,u)[h]=e,l.isExtraCoord||(i.set(u,1),"ordinal"!==(s=l.type)&&"time"!==s&&(r[0]=e),kv(a.encode,u)[h]=l.index),l.defaultTooltip&&o.push(e)}bc.each((function(t,e){var i=kv(n,e),r=l.otherDims[e];null!=r&&!1!==r&&(i[r]=l.name)}))}));var s=[],l={};i.each((function(t,e){var i=n[e];l[e]=i[0],s=s.concat(i)})),e.dataDimsOnCoord=s,e.encodeFirstDimNotExtra=l;var u=n.label;u&&u.length&&(r=u.slice());var h=n.tooltip;return h&&h.length?o=h.slice():o.length||(o=r.slice()),n.defaultedLabel=r,n.defaultedTooltip=o,e}(this),this._invertedIndicesMap=r,this.userOutput=this._dimensionsSummary.userOutput}return t.prototype.getDimension=function(t){return"number"!=typeof t&&(isNaN(t)||this._dimensionInfos.hasOwnProperty(t))||(t=this.dimensions[t]),t},t.prototype.getDimensionInfo=function(t){return this._dimensionInfos[this.getDimension(t)]},t.prototype.getDimensionsOnCoord=function(){return this._dimensionsSummary.dataDimsOnCoord.slice()},t.prototype.mapDimension=function(t,e){var n=this._dimensionsSummary;if(null==e)return n.encodeFirstDimNotExtra[t];var i=n.encode[t];return i?i[e]:null},t.prototype.mapDimensionsAll=function(t){return(this._dimensionsSummary.encode[t]||[]).slice()},t.prototype.initData=function(t,e,n){var i=Pp(t)||L(t),r=i?new Vp(t,this.dimensions.length):t;this._rawData=r;var o=r.getSource().sourceFormat;this._storage={},this._indices=null,this._dontMakeIdFromName=null!=this._idDimIdx||o===Cc||!!r.fillStorage,this._nameList=(e||[]).slice(),this._idList=[],this._nameRepeatCount={},n||(this.hasItemOption=!1),this.defaultDimValueGetter=Lv[o],this._dimValueGetter=n=n||this.defaultDimValueGetter,this._dimValueGetterArrayRows=Lv.arrayRows,this._rawExtent={},this._initDataFromProvider(0,r.count()),r.pure&&(this.hasItemOption=!1)},t.prototype.getProvider=function(){return this._rawData},t.prototype.appendData=function(t){var e=this._rawData,n=this.count();e.appendData(t);var i=e.count();e.persistent||(i+=n),this._initDataFromProvider(n,i,!0)},t.prototype.appendValues=function(t,e){for(var n=this._storage,i=this.dimensions,r=i.length,o=this._rawExtent,a=this.count(),s=a+Math.max(t.length,e?e.length:0),l=0;l<r;l++){var u=i[l];o[u]||(o[u]=Gv()),Rv(n,this._dimensionInfos[u],s,!0)}for(var h=jv(i,(function(t){return o[t]})),c=this._storageArr=jv(i,(function(t){return n[t]})),p=[],d=a;d<s;d++){for(var f=d-a,g=0;g<r;g++){u=i[g];var y=this._dimValueGetterArrayRows(t[f]||p,u,f,g);c[g][d]=y;var v=h[g];y<v[0]&&(v[0]=y),y>v[1]&&(v[1]=y)}e&&(this._nameList[d]=e[f],this._dontMakeIdFromName||Vv(this,d))}this._rawCount=this._count=s,this._extent={},Pv(this)},t.prototype._initDataFromProvider=function(t,e,n){if(!(t>=e)){for(var i=this._rawData,r=this._storage,o=this.dimensions,a=o.length,s=this._dimensionInfos,l=this._nameList,u=this._idList,h=this._rawExtent,c=i.getSource().sourceFormat===wc,p=0;p<a;p++){var d=o[p];h[d]||(h[d]=Gv()),Rv(r,s[d],e,n)}var f=this._storageArr=jv(o,(function(t){return r[t]})),g=jv(o,(function(t){return h[t]}));if(i.fillStorage)i.fillStorage(t,e,f,g);else for(var y=[],v=t;v<e;v++){y=i.getItem(v,y);for(var m=0;m<a;m++){d=o[m];var _=f[m],x=this._dimValueGetter(y,d,v,m);_[v]=x;var b=g[m];x<b[0]&&(b[0]=x),x>b[1]&&(b[1]=x)}if(c&&!i.pure&&y){var w=y.name;null==l[v]&&null!=w&&(l[v]=yr(w,null));var S=y.id;null==u[v]&&null!=S&&(u[v]=yr(S,null))}this._dontMakeIdFromName||Vv(this,v)}!i.persistent&&i.clean&&i.clean(),this._rawCount=this._count=e,this._extent={},Pv(this)}},t.prototype.count=function(){return this._count},t.prototype.getIndices=function(){var t,e=this._indices;if(e){var n=e.constructor,i=this._count;if(n===Array){t=new n(i);for(var r=0;r<i;r++)t[r]=e[r]}else t=new n(e.buffer,0,i)}else{t=new(n=Ov(this))(this.count());for(r=0;r<t.length;r++)t[r]=r}return t},t.prototype.getByDimIdx=function(t,e){if(!(e>=0&&e<this._count))return NaN;var n=this._storageArr[t];return n?n[this.getRawIndex(e)]:NaN},t.prototype.get=function(t,e){if(!(e>=0&&e<this._count))return NaN;var n=this._storage[t];return n?n[this.getRawIndex(e)]:NaN},t.prototype.getByRawIndex=function(t,e){if(!(e>=0&&e<this._rawCount))return NaN;var n=this._storage[t];return n?n[e]:NaN},t.prototype.getValues=function(t,e){var n=[];V(t)||(e=t,t=this.dimensions);for(var i=0,r=t.length;i<r;i++)n.push(this.get(t[i],e));return n},t.prototype.hasValue=function(t){for(var e=this._dimensionsSummary.dataDimsOnCoord,n=0,i=e.length;n<i;n++)if(isNaN(this.get(e[n],t)))return!1;return!0},t.prototype.getDataExtent=function(t){t=this.getDimension(t);var e=this._storage[t],n=Gv();if(!e)return n;var i,r=this.count();if(!this._indices)return this._rawExtent[t].slice();if(i=this._extent[t])return i.slice();for(var o=(i=n)[0],a=i[1],s=0;s<r;s++){var l=e[this.getRawIndex(s)];l<o&&(o=l),l>a&&(a=l)}return i=[o,a],this._extent[t]=i,i},t.prototype.getApproximateExtent=function(t){return t=this.getDimension(t),this._approximateExtent[t]||this.getDataExtent(t)},t.prototype.setApproximateExtent=function(t,e){e=this.getDimension(e),this._approximateExtent[e]=t.slice()},t.prototype.getCalculationInfo=function(t){return this._calculationInfo[t]},t.prototype.setCalculationInfo=function(t,e){Zv(t)?T(this._calculationInfo,t):this._calculationInfo[t]=e},t.prototype.getSum=function(t){var e=0;if(this._storage[t])for(var n=0,i=this.count();n<i;n++){var r=this.get(t,n);isNaN(r)||(e+=r)}return e},t.prototype.getMedian=function(t){var e=[];this.each(t,(function(t){isNaN(t)||e.push(t)}));var n=e.sort((function(t,e){return t-e})),i=this.count();return 0===i?0:i%2==1?n[(i-1)/2]:(n[i/2]+n[i/2-1])/2},t.prototype.rawIndexOf=function(t,e){var n=t&&this._invertedIndicesMap[t];var i=n[e];return null==i||isNaN(i)?-1:i},t.prototype.indexOfName=function(t){for(var e=0,n=this.count();e<n;e++)if(this.getName(e)===t)return e;return-1},t.prototype.indexOfRawIndex=function(t){if(t>=this._rawCount||t<0)return-1;if(!this._indices)return t;var e=this._indices,n=e[t];if(null!=n&&n<this._count&&n===t)return t;for(var i=0,r=this._count-1;i<=r;){var o=(i+r)/2|0;if(e[o]<t)i=o+1;else{if(!(e[o]>t))return o;r=o-1}}return-1},t.prototype.indicesOfNearest=function(t,e,n){var i=this._storage[t],r=[];if(!i)return r;null==n&&(n=1/0);for(var o=1/0,a=-1,s=0,l=0,u=this.count();l<u;l++){var h=e-i[this.getRawIndex(l)],c=Math.abs(h);c<=n&&((c<o||c===o&&h>=0&&a<0)&&(o=c,a=h,s=0),h===a&&(r[s++]=l))}return r.length=s,r},t.prototype.getRawDataItem=function(t){if(this._rawData.persistent)return this._rawData.getItem(this.getRawIndex(t));for(var e=[],n=0;n<this.dimensions.length;n++){var i=this.dimensions[n];e.push(this.get(i,t))}return e},t.prototype.getName=function(t){var e=this.getRawIndex(t),n=this._nameList[e];return null==n&&null!=this._nameDimIdx&&(n=zv(this,this._nameDimIdx,this._nameOrdinalMeta,e)),null==n&&(n=""),n},t.prototype.getId=function(t){return Bv(this,this.getRawIndex(t))},t.prototype.each=function(t,e,n,i){var r=this;if(this._count){"function"==typeof t&&(i=n,n=e,e=t,t=[]);var o=n||i||this,a=jv(Fv(t),this.getDimension,this);0;for(var s=a.length,l=jv(a,(function(t){return r._dimensionInfos[t].index})),u=this._storageArr,h=0,c=this.count();h<c;h++){var p=this.getRawIndex(h);switch(s){case 0:e.call(o,h);break;case 1:e.call(o,u[l[0]][p],h);break;case 2:e.call(o,u[l[0]][p],u[l[1]][p],h);break;default:for(var d=0,f=[];d<s;d++)f[d]=u[l[d]][p];f[d]=h,e.apply(o,f)}}}},t.prototype.filterSelf=function(t,e,n,i){var r=this;if(this._count){"function"==typeof t&&(i=n,n=e,e=t,t=[]);var o=n||i||this,a=jv(Fv(t),this.getDimension,this);0;for(var s=this.count(),l=new(Ov(this))(s),u=[],h=a.length,c=0,p=jv(a,(function(t){return r._dimensionInfos[t].index})),d=p[0],f=this._storageArr,g=0;g<s;g++){var y=void 0,v=this.getRawIndex(g);if(0===h)y=e.call(o,g);else if(1===h){var m=f[d][v];y=e.call(o,m,g)}else{for(var _=0;_<h;_++)u[_]=f[p[_]][v];u[_]=g,y=e.apply(o,u)}y&&(l[c++]=v)}return c<s&&(this._indices=l),this._count=c,this._extent={},this.getRawIndex=this._indices?Ev:Nv,this}},t.prototype.selectRange=function(t){var e=this,n=this._count;if(n){var i=[];for(var r in t)t.hasOwnProperty(r)&&i.push(r);0;var o=i.length;if(o){var a=this.count(),s=new(Ov(this))(a),l=0,u=i[0],h=jv(i,(function(t){return e._dimensionInfos[t].index})),c=t[u][0],p=t[u][1],d=this._storageArr,f=!1;if(!this._indices){var g=0;if(1===o){for(var y=d[h[0]],v=0;v<n;v++){((b=y[v])>=c&&b<=p||isNaN(b))&&(s[l++]=g),g++}f=!0}else if(2===o){y=d[h[0]];var m=d[h[1]],_=t[i[1]][0],x=t[i[1]][1];for(v=0;v<n;v++){var b=y[v],w=m[v];(b>=c&&b<=p||isNaN(b))&&(w>=_&&w<=x||isNaN(w))&&(s[l++]=g),g++}f=!0}}if(!f)if(1===o)for(v=0;v<a;v++){var S=this.getRawIndex(v);((b=d[h[0]][S])>=c&&b<=p||isNaN(b))&&(s[l++]=S)}else for(v=0;v<a;v++){for(var M=!0,T=(S=this.getRawIndex(v),0);T<o;T++){var C=i[T];((b=d[h[T]][S])<t[C][0]||b>t[C][1])&&(M=!1)}M&&(s[l++]=this.getRawIndex(v))}return l<a&&(this._indices=s),this._count=l,this._extent={},this.getRawIndex=this._indices?Ev:Nv,this}}},t.prototype.mapArray=function(t,e,n,i){"function"==typeof t&&(i=n,n=e,e=t,t=[]),n=n||i||this;var r=[];return this.each(t,(function(){r.push(e&&e.apply(this,arguments))}),n),r},t.prototype.map=function(t,e,n,i){var r=n||i||this,o=jv(Fv(t),this.getDimension,this);var a=Hv(this,o),s=a._storage;a._indices=this._indices,a.getRawIndex=a._indices?Ev:Nv;for(var l=[],u=o.length,h=this.count(),c=[],p=a._rawExtent,d=0;d<h;d++){for(var f=0;f<u;f++)c[f]=this.get(o[f],d);c[u]=d;var g=e&&e.apply(r,c);if(null!=g){"object"!=typeof g&&(l[0]=g,g=l);for(var y=this.getRawIndex(d),v=0;v<g.length;v++){var m=o[v],_=g[v],x=p[m],b=s[m];b&&(b[y]=_),_<x[0]&&(x[0]=_),_>x[1]&&(x[1]=_)}}}return a},t.prototype.downSample=function(t,e,n,i){for(var r=Hv(this,[t]),o=r._storage,a=[],s=Xv(1/e),l=o[t],u=this.count(),h=r._rawExtent[t],c=new(Ov(this))(u),p=0,d=0;d<u;d+=s){s>u-d&&(s=u-d,a.length=s);for(var f=0;f<s;f++){var g=this.getRawIndex(d+f);a[f]=l[g]}var y=n(a),v=this.getRawIndex(Math.min(d+i(a,y)||0,u-1));l[v]=y,y<h[0]&&(h[0]=y),y>h[1]&&(h[1]=y),c[p++]=v}return r._count=p,r._indices=c,r.getRawIndex=Ev,r},t.prototype.lttbDownSample=function(t,e){var n,i,r,o=Hv(this,[]),a=o._storage[t],s=this.count(),l=new(Ov(this))(s),u=0,h=Xv(1/e),c=this.getRawIndex(0);l[u++]=c;for(var p=1;p<s-1;p+=h){for(var d=Math.min(p+h,s-1),f=Math.min(p+2*h,s),g=(f+d)/2,y=0,v=d;v<f;v++){var m=a[S=this.getRawIndex(v)];isNaN(m)||(y+=m)}y/=f-d;var _=p,x=Math.min(p+h,s),b=p-1,w=a[c];n=-1,r=_;for(v=_;v<x;v++){var S;m=a[S=this.getRawIndex(v)];isNaN(m)||(i=Math.abs((b-g)*(m-w)-(b-v)*(y-w)))>n&&(n=i,r=S)}l[u++]=r,c=r}return l[u++]=this.getRawIndex(s-1),o._count=u,o._indices=l,o.getRawIndex=Ev,o},t.prototype.getItemModel=function(t){var e=this.hostModel,n=this.getRawDataItem(t);return new oh(n,e,e&&e.ecModel)},t.prototype.diff=function(t){var e=this;return new Dv(t?t.getIndices():[],this.getIndices(),(function(e){return Bv(t,e)}),(function(t){return Bv(e,t)}))},t.prototype.getVisual=function(t){var e=this._visual;return e&&e[t]},t.prototype.setVisual=function(t,e){this._visual=this._visual||{},Zv(t)?T(this._visual,t):this._visual[t]=e},t.prototype.getItemVisual=function(t,e){var n=this._itemVisuals[t],i=n&&n[e];return null==i?this.getVisual(e):i},t.prototype.hasItemVisual=function(){return this._itemVisuals.length>0},t.prototype.ensureUniqueItemVisual=function(t,e){var n=this._itemVisuals,i=n[t];i||(i=n[t]={});var r=i[e];return null==r&&(V(r=this.getVisual(e))?r=r.slice():Zv(r)&&(r=T({},r)),i[e]=r),r},t.prototype.setItemVisual=function(t,e,n){var i=this._itemVisuals[t]||{};this._itemVisuals[t]=i,Zv(e)?T(i,e):i[e]=n},t.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},t.prototype.setLayout=function(t,e){if(Zv(t))for(var n in t)t.hasOwnProperty(n)&&this.setLayout(n,t[n]);else this._layout[t]=e},t.prototype.getLayout=function(t){return this._layout[t]},t.prototype.getItemLayout=function(t){return this._itemLayouts[t]},t.prototype.setItemLayout=function(t,e,n){this._itemLayouts[t]=n?T(this._itemLayouts[t]||{},e):e},t.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},t.prototype.setItemGraphicEl=function(t,e){var n=this.hostModel;if(e){var i=os(e);i.dataIndex=t,i.dataType=this.dataType,i.seriesIndex=n&&n.seriesIndex,"group"===e.type&&e.traverse(Wv,e)}this._graphicEls[t]=e},t.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},t.prototype.eachItemGraphicEl=function(t,e){P(this._graphicEls,(function(n,i){n&&t&&t.call(e,n,i)}))},t.prototype.cloneShallow=function(e){e||(e=new t(jv(this.dimensions,this.getDimensionInfo,this),this.hostModel));if(e._storage=this._storage,e._storageArr=this._storageArr,Uv(e,this),this._indices){var n=this._indices.constructor;if(n===Array){var i=this._indices.length;e._indices=new n(i);for(var r=0;r<i;r++)e._indices[r]=this._indices[r]}else e._indices=new n(this._indices)}else e._indices=null;return e.getRawIndex=e._indices?Ev:Nv,e},t.prototype.wrapMethod=function(t,e){var n=this[t];"function"==typeof n&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var t=n.apply(this,arguments);return e.apply(this,[t].concat(et(arguments)))})},t.internalField=function(){function e(t,e,n,i){return id(t[i],this._dimensionInfos[e])}Lv={arrayRows:e,objectRows:function(t,e,n,i){return id(t[e],this._dimensionInfos[e])},keyedColumns:e,original:function(t,e,n,i){var r=t&&(null==t.value?t:t.value);return!this._rawData.pure&&function(t){return U(t)&&!(t instanceof Array)}(t)&&(this.hasItemOption=!0),id(r instanceof Array?r[i]:r,this._dimensionInfos[e])},typedArray:function(t,e,n,i){return t[i]}},Pv=function(t){var e=t._invertedIndicesMap;P(e,(function(n,i){var r=t._dimensionInfos[i].ordinalMeta;if(r){n=e[i]=new Jv(r.categories.length);for(var o=0;o<n.length;o++)n[o]=-1;for(o=0;o<t._count;o++)n[t.get(i,o)]=o}}))},zv=function(t,e,n,i){var r,o=t._storageArr[e];return o&&(r=o[i],n&&n.categories.length&&(r=n.categories[r])),yr(r,null)},Ov=function(t){return t._rawCount>65535?$v:Qv},Rv=function(t,e,n,i){var r=Kv[e.type],o=e.name;if(i){var a=t[o],s=a&&a.length;if(s!==n){for(var l=new r(n),u=0;u<s;u++)l[u]=a[u];t[o]=l}}else t[o]=new r(n)},Nv=function(t){return t},Ev=function(t){return t<this._count&&t>=0?this._indices[t]:-1},Bv=function(t,e){var n=t._idList[e];return null==n&&null!=t._idDimIdx&&(n=zv(t,t._idDimIdx,t._idOrdinalMeta,e)),null==n&&(n="e\0\0"+e),n},Fv=function(t){return V(t)||(t=null!=t?[t]:[]),t},function(t,e){for(var n=0;n<e.length;n++)t._dimensionInfos[e[n]]||console.error("Unkown dimension "+e[n])},Hv=function(e,n){var i=e.dimensions,r=new t(jv(i,e.getDimensionInfo,e),e.hostModel);Uv(r,e);for(var o,a,s=r._storage={},l=e._storage,u=r._storageArr=[],h=0;h<i.length;h++){var c=i[h];l[c]&&(A(n,c)>=0?(s[c]=(o=l[c],a=void 0,(a=o.constructor)===Array?o.slice():new a(o)),r._rawExtent[c]=Gv(),r._extent[c]=null):s[c]=l[c],u.push(s[c]))}return r},Gv=function(){return[1/0,-1/0]},Wv=function(t){var e=os(t),n=os(this);e.seriesIndex=n.seriesIndex,e.dataIndex=n.dataIndex,e.dataType=n.dataType},Uv=function(t,e){P(tm.concat(e.__wrappedMethods||[]),(function(n){e.hasOwnProperty(n)&&(t[n]=e[n])})),t.__wrappedMethods=e.__wrappedMethods,P(em,(function(n){t[n]=w(e[n])})),t._calculationInfo=T({},e._calculationInfo)},Vv=function(t,e){var n=t._nameList,i=t._idList,r=t._nameDimIdx,o=t._idDimIdx,a=n[e],s=i[e];if(null==a&&null!=r&&(n[e]=a=zv(t,r,t._nameOrdinalMeta,e)),null==s&&null!=o&&(i[e]=s=zv(t,o,t._idOrdinalMeta,e)),null==s&&null!=a){var l=t._nameRepeatCount,u=l[a]=(l[a]||0)+1;s=a,u>1&&(s+="__ec__"+u),i[e]=s}}}(),t}();function im(t,e,n){Pp(e)||(e=Rp(e)),n=n||{},t=(t||[]).slice();for(var i=(n.dimsDef||[]).slice(),r=ut(),o=ut(),a=[],s=function(t,e,n,i){var r=Math.max(t.dimensionsDetectedCount||1,e.length,n.length,i||0);return P(e,(function(t){var e;U(t)&&(e=t.dimsDef)&&(r=Math.max(r,e.length))})),r}(e,t,i,n.dimCount),l=0;l<s;l++){var u=i[l],h=i[l]=T({},U(u)?u:{name:u}),c=h.name,p=a[l]=new Yv;null!=c&&null==r.get(c)&&(p.name=p.displayName=c,r.set(c,l)),null!=h.type&&(p.type=h.type),null!=h.displayName&&(p.displayName=h.displayName)}var d=n.encodeDef;!d&&n.encodeDefaulter&&(d=n.encodeDefaulter(e,s));var f=ut(d);f.each((function(t,e){var n=ur(t).slice();if(1===n.length&&!H(n[0])&&n[0]<0)f.set(e,!1);else{var i=f.set(e,[]);P(n,(function(t,n){var o=H(t)?r.get(t):t;null!=o&&o<s&&(i[n]=o,y(a[o],e,n))}))}}));var g=0;function y(t,e,n){null!=bc.get(e)?t.otherDims[e]=n:(t.coordDim=e,t.coordDimIndex=n,o.set(e,!0))}P(t,(function(t){var e,n,i,r;if(H(t))e=t,r={};else{e=(r=t).name;var o=r.ordinalMeta;r.ordinalMeta=null,(r=w(r)).ordinalMeta=o,n=r.dimsDef,i=r.otherDims,r.name=r.coordDim=r.coordDimIndex=r.dimsDef=r.otherDims=null}var s=f.get(e);if(!1!==s){if(!(s=ur(s)).length)for(var l=0;l<(n&&n.length||1);l++){for(;g<a.length&&null!=a[g].coordDim;)g++;g<a.length&&s.push(g++)}P(s,(function(t,o){var s=a[t];if(y(C(s,r),e,o),null==s.name&&n){var l=n[o];!U(l)&&(l={name:l}),s.name=s.displayName=l.name,s.defaultTooltip=l.defaultTooltip}i&&C(s.otherDims,i)}))}}));var v=n.generateCoord,m=n.generateCoordCount,_=null!=m;m=v?m||1:0;for(var x=v||"value",b=0;b<s;b++){null==(p=a[b]=a[b]||new Yv).coordDim&&(p.coordDim=rm(x,o,_),p.coordDimIndex=0,(!v||m<=0)&&(p.isExtraCoord=!0),m--),null==p.name&&(p.name=rm(p.coordDim,r,!1)),null!=p.type||Bc(e,b)!==kc&&(!p.isExtraCoord||null==p.otherDims.itemName&&null==p.otherDims.seriesName)||(p.type="ordinal")}return a}function rm(t,e,n){if(n||null!=e.get(t)){for(var i=0;null!=e.get(t+i);)i++;t+=i}return e.set(t,!0),t}function om(t,e){return im((e=e||{}).coordDimensions||[],t,{dimsDef:e.dimensionsDefine||t.dimensionsDefine,encodeDef:e.encodeDefine||t.encodeDefine,dimCount:e.dimensionsCount,encodeDefaulter:e.encodeDefaulter,generateCoord:e.generateCoord,generateCoordCount:e.generateCoordCount})}var am=function(t){this.coordSysDims=[],this.axisMap=ut(),this.categoryAxisMap=ut(),this.coordSysName=t};var sm={cartesian2d:function(t,e,n,i){var r=t.getReferringComponents("xAxis",Sr).models[0],o=t.getReferringComponents("yAxis",Sr).models[0];e.coordSysDims=["x","y"],n.set("x",r),n.set("y",o),lm(r)&&(i.set("x",r),e.firstCategoryDimIndex=0),lm(o)&&(i.set("y",o),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=1))},singleAxis:function(t,e,n,i){var r=t.getReferringComponents("singleAxis",Sr).models[0];e.coordSysDims=["single"],n.set("single",r),lm(r)&&(i.set("single",r),e.firstCategoryDimIndex=0)},polar:function(t,e,n,i){var r=t.getReferringComponents("polar",Sr).models[0],o=r.findAxisModel("radiusAxis"),a=r.findAxisModel("angleAxis");e.coordSysDims=["radius","angle"],n.set("radius",o),n.set("angle",a),lm(o)&&(i.set("radius",o),e.firstCategoryDimIndex=0),lm(a)&&(i.set("angle",a),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=1))},geo:function(t,e,n,i){e.coordSysDims=["lng","lat"]},parallel:function(t,e,n,i){var r=t.ecModel,o=r.getComponent("parallel",t.get("parallelIndex")),a=e.coordSysDims=o.dimensions.slice();P(o.parallelAxisIndex,(function(t,o){var s=r.getComponent("parallelAxis",t),l=a[o];n.set(l,s),lm(s)&&(i.set(l,s),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=o))}))}};function lm(t){return"category"===t.get("type")}function um(t,e,n){var i,r,o,a,s=(n=n||{}).byIndex,l=n.stackedCoordDimension,u=!(!t||!t.get("stack"));if(P(e,(function(t,n){H(t)&&(e[n]=t={name:t}),u&&!t.isExtraCoord&&(s||i||!t.ordinalMeta||(i=t),r||"ordinal"===t.type||"time"===t.type||l&&l!==t.coordDim||(r=t))})),!r||s||i||(s=!0),r){o="__\0ecstackresult",a="__\0ecstackedover",i&&(i.createInvertedIndices=!0);var h=r.coordDim,c=r.type,p=0;P(e,(function(t){t.coordDim===h&&p++})),e.push({name:o,coordDim:h,coordDimIndex:p,type:c,isExtraCoord:!0,isCalculationCoord:!0}),p++,e.push({name:a,coordDim:a,coordDimIndex:p,type:c,isExtraCoord:!0,isCalculationCoord:!0})}return{stackedDimension:r&&r.name,stackedByDimension:i&&i.name,isStackedByIndex:s,stackedOverDimension:a,stackResultDimension:o}}function hm(t,e){return!!e&&e===t.getCalculationInfo("stackedDimension")}function cm(t,e){return hm(t,e)?t.getCalculationInfo("stackResultDimension"):e}function pm(t,e,n){n=n||{},Pp(t)||(t=Rp(t));var i,r=e.get("coordinateSystem"),o=ep.get(r),a=function(t){var e=t.get("coordinateSystem"),n=new am(e),i=sm[e];if(i)return i(t,n,n.axisMap,n.categoryAxisMap),n}(e);a&&a.coordSysDims&&(i=O(a.coordSysDims,(function(t){var e={name:t},n=a.axisMap.get(t);if(n){var i=n.get("type");e.type=function(t){return"category"===t?"ordinal":"time"===t?"time":"float"}(i)}return e}))),i||(i=o&&(o.getDimensionsInfo?o.getDimensionsInfo():o.dimensions.slice())||["x","y"]);var s,l,u=n.useEncodeDefaulter,h=om(t,{coordDimensions:i,generateCoord:n.generateCoord,encodeDefaulter:F(u)?u:u?z(Rc,i,e):null});a&&P(h,(function(t,e){var i=t.coordDim,r=a.categoryAxisMap.get(i);r&&(null==s&&(s=e),t.ordinalMeta=r.getOrdinalMeta(),n.createInvertedIndices&&(t.createInvertedIndices=!0)),null!=t.otherDims.itemName&&(l=!0)})),l||null==s||(h[s].otherDims.itemName=0);var c=um(e,h),p=new nm(h,e);p.setCalculationInfo(c);var d=null!=s&&function(t){if(t.sourceFormat===wc){var e=function(t){var e=0;for(;e<t.length&&null==t[e];)e++;return t[e]}(t.data||[]);return null!=e&&!V(pr(e))}}(t)?function(t,e,n,i){return i===s?n:this.defaultDimValueGetter(t,e,n,i)}:null;return p.hasItemOption=!1,p.initData(t,null,d),p}var dm=function(){function t(t){this._setting=t||{},this._extent=[1/0,-1/0]}return t.prototype.getSetting=function(t){return this._setting[t]},t.prototype.unionExtent=function(t){var e=this._extent;t[0]<e[0]&&(e[0]=t[0]),t[1]>e[1]&&(e[1]=t[1])},t.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},t.prototype.getExtent=function(){return this._extent.slice()},t.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(e)||(n[1]=e)},t.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},t.prototype.isBlank=function(){return this._isBlank},t.prototype.setBlank=function(t){this._isBlank=t},t}();Br(dm);var fm=function(){function t(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication}return t.createByAxisModel=function(e){var n=e.option,i=n.data,r=i&&O(i,gm);return new t({categories:r,needCollect:!r,deduplication:!1!==n.dedplication})},t.prototype.getOrdinal=function(t){return this._getOrCreateMap().get(t)},t.prototype.parseAndCollect=function(t){var e,n=this._needCollect;if("string"!=typeof t&&!n)return t;if(n&&!this._deduplication)return e=this.categories.length,this.categories[e]=t,e;var i=this._getOrCreateMap();return null==(e=i.get(t))&&(n?(e=this.categories.length,this.categories[e]=t,i.set(t,e)):e=NaN),e},t.prototype._getOrCreateMap=function(){return this._map||(this._map=ut(this.categories))},t}();function gm(t){return U(t)&&null!=t.value?t.value:t+""}var ym=Hi;function vm(t,e,n,i){var r={},o=t[1]-t[0],a=r.interval=Qi(o/e,!0);null!=n&&a<n&&(a=r.interval=n),null!=i&&a>i&&(a=r.interval=i);var s=r.intervalPrecision=mm(a);return function(t,e){!isFinite(t[0])&&(t[0]=e[0]),!isFinite(t[1])&&(t[1]=e[1]),_m(t,0,e),_m(t,1,e),t[0]>t[1]&&(t[0]=t[1])}(r.niceTickExtent=[ym(Math.ceil(t[0]/a)*a,s),ym(Math.floor(t[1]/a)*a,s)],t),r}function mm(t){return Ui(t)+2}function _m(t,e,n){t[e]=Math.max(Math.min(t[e],n[1]),n[0])}function xm(t,e){return t>=e[0]&&t<=e[1]}function bm(t,e){return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])}function wm(t,e){return t*(e[1]-e[0])+e[0]}var Sm=function(t){function e(e){var n=t.call(this,e)||this;n.type="ordinal";var i=n.getSetting("ordinalMeta");return i||(i=new fm({})),V(i)&&(i=new fm({categories:O(i,(function(t){return U(t)?t.value:t}))})),n._ordinalMeta=i,n._extent=n.getSetting("extent")||[0,i.categories.length-1],n}return n(e,t),e.prototype.parse=function(t){return"string"==typeof t?this._ordinalMeta.getOrdinal(t):Math.round(t)},e.prototype.contain=function(t){return xm(t=this.parse(t),this._extent)&&null!=this._ordinalMeta.categories[t]},e.prototype.normalize=function(t){return bm(t=this._getTickNumber(this.parse(t)),this._extent)},e.prototype.scale=function(t){return t=Math.round(wm(t,this._extent)),this.getRawOrdinalNumber(t)},e.prototype.getTicks=function(){for(var t=[],e=this._extent,n=e[0];n<=e[1];)t.push({value:n}),n++;return t},e.prototype.getMinorTicks=function(t){},e.prototype.setSortInfo=function(t){if(null!=t){for(var e=t.ordinalNumbers,n=this._ordinalNumbersByTick=[],i=this._ticksByOrdinalNumber=[],r=0,o=this._ordinalMeta.categories.length,a=Math.min(o,e.length);r<a;++r){var s=e[r];n[r]=s,i[s]=r}for(var l=0;r<o;++r){for(;null!=i[l];)l++;n.push(l),i[l]=r}}else this._ordinalNumbersByTick=this._ticksByOrdinalNumber=null},e.prototype._getTickNumber=function(t){var e=this._ticksByOrdinalNumber;return e&&t>=0&&t<e.length?e[t]:t},e.prototype.getRawOrdinalNumber=function(t){var e=this._ordinalNumbersByTick;return e&&t>=0&&t<e.length?e[t]:t},e.prototype.getLabel=function(t){if(!this.isBlank()){var e=this.getRawOrdinalNumber(t.value),n=this._ordinalMeta.categories[e];return null==n?"":n+""}},e.prototype.count=function(){return this._extent[1]-this._extent[0]+1},e.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},e.prototype.isInExtentRange=function(t){return t=this._getTickNumber(t),this._extent[0]<=t&&this._extent[1]>=t},e.prototype.getOrdinalMeta=function(){return this._ordinalMeta},e.prototype.niceTicks=function(){},e.prototype.niceExtent=function(){},e.type="ordinal",e}(dm);dm.registerClass(Sm);var Mm=Hi,Tm=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="interval",e._interval=0,e._intervalPrecision=2,e}return n(e,t),e.prototype.parse=function(t){return t},e.prototype.contain=function(t){return xm(t,this._extent)},e.prototype.normalize=function(t){return bm(t,this._extent)},e.prototype.scale=function(t){return wm(t,this._extent)},e.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=parseFloat(t)),isNaN(e)||(n[1]=parseFloat(e))},e.prototype.unionExtent=function(t){var e=this._extent;t[0]<e[0]&&(e[0]=t[0]),t[1]>e[1]&&(e[1]=t[1]),this.setExtent(e[0],e[1])},e.prototype.getInterval=function(){return this._interval},e.prototype.setInterval=function(t){this._interval=t,this._niceExtent=this._extent.slice(),this._intervalPrecision=mm(t)},e.prototype.getTicks=function(t){var e=this._interval,n=this._extent,i=this._niceExtent,r=this._intervalPrecision,o=[];if(!e)return o;n[0]<i[0]&&(t?o.push({value:Mm(i[0]-e,r)}):o.push({value:n[0]}));for(var a=i[0];a<=i[1]&&(o.push({value:a}),(a=Mm(a+e,r))!==o[o.length-1].value);)if(o.length>1e4)return[];var s=o.length?o[o.length-1].value:i[1];return n[1]>s&&(t?o.push({value:Mm(s+e,r)}):o.push({value:n[1]})),o},e.prototype.getMinorTicks=function(t){for(var e=this.getTicks(!0),n=[],i=this.getExtent(),r=1;r<e.length;r++){for(var o=e[r],a=e[r-1],s=0,l=[],u=(o.value-a.value)/t;s<t-1;){var h=Mm(a.value+(s+1)*u);h>i[0]&&h<i[1]&&l.push(h),s++}n.push(l)}return n},e.prototype.getLabel=function(t,e){if(null==t)return"";var n=e&&e.precision;return null==n?n=Ui(t.value)||0:"auto"===n&&(n=this._intervalPrecision),Xh(Mm(t.value,n,!0))},e.prototype.niceTicks=function(t,e,n){t=t||5;var i=this._extent,r=i[1]-i[0];if(isFinite(r)){r<0&&(r=-r,i.reverse());var o=vm(i,t,e,n);this._intervalPrecision=o.intervalPrecision,this._interval=o.interval,this._niceExtent=o.niceTickExtent}},e.prototype.niceExtent=function(t){var e=this._extent;if(e[0]===e[1])if(0!==e[0]){var n=e[0];t.fixMax||(e[1]+=n/2),e[0]-=n/2}else e[1]=1;var i=e[1]-e[0];isFinite(i)||(e[0]=0,e[1]=1),this.niceTicks(t.splitNumber,t.minInterval,t.maxInterval);var r=this._interval;t.fixMin||(e[0]=Mm(Math.floor(e[0]/r)*r)),t.fixMax||(e[1]=Mm(Math.ceil(e[1]/r)*r))},e.type="interval",e}(dm);dm.registerClass(Tm);var Cm="undefined"!=typeof Float32Array?Float32Array:Array;function Im(t){return t.get("stack")||"__ec_stack_"+t.seriesIndex}function Am(t){return t.dim+t.index}function Dm(t,e){var n=[];return e.eachSeriesByType(t,(function(t){Rm(t)&&!Nm(t)&&n.push(t)})),n}function km(t){var e=function(t){var e={};P(t,(function(t){var n=t.coordinateSystem.getBaseAxis();if("time"===n.type||"value"===n.type)for(var i=t.getData(),r=n.dim+"_"+n.index,o=i.mapDimension(n.dim),a=0,s=i.count();a<s;++a){var l=i.get(o,a);e[r]?e[r].push(l):e[r]=[l]}}));var n={};for(var i in e)if(e.hasOwnProperty(i)){var r=e[i];if(r){r.sort((function(t,e){return t-e}));for(var o=null,a=1;a<r.length;++a){var s=r[a]-r[a-1];s>0&&(o=null===o?s:Math.min(o,s))}n[i]=o}}return n}(t),n=[];return P(t,(function(t){var i,r=t.coordinateSystem.getBaseAxis(),o=r.getExtent();if("category"===r.type)i=r.getBandWidth();else if("value"===r.type||"time"===r.type){var a=r.dim+"_"+r.index,s=e[a],l=Math.abs(o[1]-o[0]),u=r.scale.getExtent(),h=Math.abs(u[1]-u[0]);i=s?l/h*s:l}else{var c=t.getData();i=Math.abs(o[1]-o[0])/c.count()}var p=Fi(t.get("barWidth"),i),d=Fi(t.get("barMaxWidth"),i),f=Fi(t.get("barMinWidth")||1,i),g=t.get("barGap"),y=t.get("barCategoryGap");n.push({bandWidth:i,barWidth:p,barMaxWidth:d,barMinWidth:f,barGap:g,barCategoryGap:y,axisKey:Am(r),stackId:Im(t)})})),function(t){var e={};P(t,(function(t,n){var i=t.axisKey,r=t.bandWidth,o=e[i]||{bandWidth:r,remainedWidth:r,autoWidthCount:0,categoryGap:null,gap:"20%",stacks:{}},a=o.stacks;e[i]=o;var s=t.stackId;a[s]||o.autoWidthCount++,a[s]=a[s]||{width:0,maxWidth:0};var l=t.barWidth;l&&!a[s].width&&(a[s].width=l,l=Math.min(o.remainedWidth,l),o.remainedWidth-=l);var u=t.barMaxWidth;u&&(a[s].maxWidth=u);var h=t.barMinWidth;h&&(a[s].minWidth=h);var c=t.barGap;null!=c&&(o.gap=c);var p=t.barCategoryGap;null!=p&&(o.categoryGap=p)}));var n={};return P(e,(function(t,e){n[e]={};var i=t.stacks,r=t.bandWidth,o=t.categoryGap;if(null==o){var a=E(i).length;o=Math.max(35-4*a,15)+"%"}var s=Fi(o,r),l=Fi(t.gap,1),u=t.remainedWidth,h=t.autoWidthCount,c=(u-s)/(h+(h-1)*l);c=Math.max(c,0),P(i,(function(t){var e=t.maxWidth,n=t.minWidth;if(t.width){i=t.width;e&&(i=Math.min(i,e)),n&&(i=Math.max(i,n)),t.width=i,u-=i+l*i,h--}else{var i=c;e&&e<i&&(i=Math.min(e,u)),n&&n>i&&(i=n),i!==c&&(t.width=i,u-=i+l*i,h--)}})),c=(u-s)/(h+(h-1)*l),c=Math.max(c,0);var p,d=0;P(i,(function(t,e){t.width||(t.width=c),p=t,d+=t.width*(1+l)})),p&&(d-=p.width*l);var f=-d/2;P(i,(function(t,i){n[e][i]=n[e][i]||{bandWidth:r,offset:f,width:t.width},f+=t.width*(1+l)}))})),n}(n)}function Lm(t,e,n){if(t&&e){var i=t[Am(e)];return null!=i&&null!=n?i[Im(n)]:i}}function Pm(t,e){var n=Dm(t,e),i=km(n),r={};P(n,(function(t){var e=t.getData(),n=t.coordinateSystem,o=n.getBaseAxis(),a=Im(t),s=i[Am(o)][a],l=s.offset,u=s.width,h=n.getOtherAxis(o),c=t.get("barMinHeight")||0;r[a]=r[a]||[],e.setLayout({bandWidth:s.bandWidth,offset:l,size:u});for(var p=e.mapDimension(h.dim),d=e.mapDimension(o.dim),f=hm(e,p),g=h.isHorizontal(),y=Em(o,h),v=0,m=e.count();v<m;v++){var _=e.get(p,v),x=e.get(d,v),b=_>=0?"p":"n",w=y;f&&(r[a][x]||(r[a][x]={p:y,n:y}),w=r[a][x][b]);var S,M=void 0,T=void 0,C=void 0,I=void 0;if(g)M=w,T=(S=n.dataToPoint([_,x]))[1]+l,C=S[0]-y,I=u,Math.abs(C)<c&&(C=(C<0?-1:1)*c),isNaN(C)||f&&(r[a][x][b]+=C);else M=(S=n.dataToPoint([x,_]))[0]+l,T=w,C=u,I=S[1]-y,Math.abs(I)<c&&(I=(I<=0?-1:1)*c),isNaN(I)||f&&(r[a][x][b]+=I);e.setItemLayout(v,{x:M,y:T,width:C,height:I})}}))}var Om={seriesType:"bar",plan:Hd(),reset:function(t){if(Rm(t)&&Nm(t)){var e=t.getData(),n=t.coordinateSystem,i=n.master.getRect(),r=n.getBaseAxis(),o=n.getOtherAxis(r),a=e.mapDimension(o.dim),s=e.mapDimension(r.dim),l=o.isHorizontal(),u=l?0:1,h=Lm(km([t]),r,t).width;return h>.5||(h=.5),{progress:function(t,e){for(var c,p=t.count,d=new Cm(2*p),f=new Cm(2*p),g=new Cm(p),y=[],v=[],m=0,_=0;null!=(c=t.next());)v[u]=e.get(a,c),v[1-u]=e.get(s,c),y=n.dataToPoint(v,null,y),f[m]=l?i.x+i.width:y[0],d[m++]=y[0],f[m]=l?y[1]:i.y+i.height,d[m++]=y[1],g[_++]=c;e.setLayout({largePoints:d,largeDataIndices:g,largeBackgroundPoints:f,barWidth:h,valueAxisStart:Em(r,o),backgroundStart:l?i.x:i.y,valueAxisHorizontal:l})}}}}};function Rm(t){return t.coordinateSystem&&"cartesian2d"===t.coordinateSystem.type}function Nm(t){return t.pipelineContext&&t.pipelineContext.large}function Em(t,e,n){return e.toGlobalCoord(e.dataToCoord("log"===e.type?1:0))}var Bm=function(t){function e(e){var n=t.call(this,e)||this;return n.type="time",n}return n(e,t),e.prototype.getLabel=function(t){var e=this.getSetting("useUTC");return Dh(t.value,Sh[function(t){switch(t){case"year":case"month":return"day";case"millisecond":return"millisecond";default:return"second"}}(Ih(this._minLevelUnit))]||Sh.second,e,this.getSetting("locale"))},e.prototype.getFormattedLabel=function(t,e,n){var i=this.getSetting("useUTC");return function(t,e,n,i,r){var o=null;if("string"==typeof n)o=n;else if("function"==typeof n)o=n(t.value,e,{level:t.level});else{var a=T({},bh);if(t.level>0)for(var s=0;s<Mh.length;++s)a[Mh[s]]="{primary|"+a[Mh[s]]+"}";var l=n?!1===n.inherit?n:C(n,a):a,u=kh(t.value,r);if(l[u])o=l[u];else if(l.inherit){for(s=Th.indexOf(u)-1;s>=0;--s)if(l[u]){o=l[u];break}o=o||a.none}if(V(o)){var h=null==t.level?0:t.level>=0?t.level:o.length+t.level;o=o[h=Math.min(h,o.length-1)]}}return Dh(new Date(t.value),o,r,i)}(t,e,n,this.getSetting("locale"),i)},e.prototype.getTicks=function(t){var e=this._interval,n=this._extent,i=[];if(!e)return i;i.push({value:n[0],level:0});var r=this.getSetting("useUTC"),o=function(t,e,n,i){var r=1e4,o=Th,a=0;function s(t,e,n,r,o,a,s){for(var l=new Date(e),u=e,h=l[r]();u<n&&u<=i[1];)s.push({value:u}),h+=t,l[o](h),u=l.getTime();s.push({value:u,notAdd:!0})}function l(t,r,o){var a=[],l=!r.length;if(!function(t,e,n,i){var r=Ki(e),o=Ki(n),a=function(t){return Lh(r,t,i)===Lh(o,t,i)},s=function(){return a("year")},l=function(){return s()&&a("month")},u=function(){return l()&&a("day")},h=function(){return u()&&a("hour")},c=function(){return h()&&a("minute")},p=function(){return c()&&a("second")},d=function(){return p()&&a("millisecond")};switch(t){case"year":return s();case"month":return l();case"day":return u();case"hour":return h();case"minute":return c();case"second":return p();case"millisecond":return d()}}(Ih(t),i[0],i[1],n)){l&&(r=[{value:Um(new Date(i[0]),t,n)},{value:i[1]}]);for(var u=0;u<r.length-1;u++){var h=r[u].value,c=r[u+1].value;if(h!==c){var p=void 0,d=void 0,f=void 0,g=!1;switch(t){case"year":p=Math.max(1,Math.round(e/_h/365)),d=Ph(n),f=Vh(n);break;case"half-year":case"quarter":case"month":p=Fm(e),d=Oh(n),f=Fh(n);break;case"week":case"half-week":case"day":p=Vm(e),d=Rh(n),f=Hh(n),g=!0;break;case"half-day":case"quarter-day":case"hour":p=Hm(e),d=Nh(n),f=Gh(n);break;case"minute":p=Gm(e,!0),d=Eh(n),f=Wh(n);break;case"second":p=Gm(e,!1),d=Bh(n),f=Uh(n);break;case"millisecond":p=Wm(e),d=zh(n),f=Yh(n)}s(p,h,c,d,f,g,a),"year"===t&&o.length>1&&0===u&&o.unshift({value:o[0].value-p})}}for(u=0;u<a.length;u++)o.push(a[u]);return a}}for(var u=[],h=[],c=0,p=0,d=0;d<o.length&&a++<r;++d){var f=Ih(o[d]);if(Ah(o[d]))if(l(o[d],u[u.length-1]||[],h),f!==(o[d+1]?Ih(o[d+1]):null)){if(h.length){p=c,h.sort((function(t,e){return t.value-e.value}));for(var g=[],y=0;y<h.length;++y){var v=h[y].value;0!==y&&h[y-1].value===v||(g.push(h[y]),v>=i[0]&&v<=i[1]&&c++)}var m=(i[1]-i[0])/e;if(c>1.5*m&&p>m/1.5)break;if(u.push(g),c>m||t===o[d])break}h=[]}}0;var _=N(O(u,(function(t){return N(t,(function(t){return t.value>=i[0]&&t.value<=i[1]&&!t.notAdd}))})),(function(t){return t.length>0})),x=[],b=_.length-1;for(d=0;d<_.length;++d)for(var w=_[d],S=0;S<w.length;++S)x.push({value:w[S].value,level:b-d});x.sort((function(t,e){return t.value-e.value}));var M=[];for(d=0;d<x.length;++d)0!==d&&x[d].value===x[d-1].value||M.push(x[d]);return M}(this._minLevelUnit,this._approxInterval,r,n);return(i=i.concat(o)).push({value:n[1],level:0}),i},e.prototype.niceExtent=function(t){var e=this._extent;if(e[0]===e[1]&&(e[0]-=_h,e[1]+=_h),e[1]===-1/0&&e[0]===1/0){var n=new Date;e[1]=+new Date(n.getFullYear(),n.getMonth(),n.getDate()),e[0]=e[1]-_h}this.niceTicks(t.splitNumber,t.minInterval,t.maxInterval)},e.prototype.niceTicks=function(t,e,n){t=t||10;var i=this._extent,r=i[1]-i[0];this._approxInterval=r/t,null!=e&&this._approxInterval<e&&(this._approxInterval=e),null!=n&&this._approxInterval>n&&(this._approxInterval=n);var o=zm.length,a=Math.min(function(t,e,n,i){for(;n<i;){var r=n+i>>>1;t[r][1]<e?n=r+1:i=r}return n}(zm,this._approxInterval,0,o),o-1);this._interval=zm[a][1],this._minLevelUnit=zm[Math.max(a-1,0)][0]},e.prototype.parse=function(t){return"number"==typeof t?t:+Ki(t)},e.prototype.contain=function(t){return xm(this.parse(t),this._extent)},e.prototype.normalize=function(t){return bm(this.parse(t),this._extent)},e.prototype.scale=function(t){return wm(t,this._extent)},e.type="time",e}(Tm),zm=[["second",yh],["minute",vh],["hour",mh],["quarter-day",216e5],["half-day",432e5],["day",10368e4],["half-week",3024e5],["week",6048e5],["month",26784e5],["quarter",8208e6],["half-year",xh/2],["year",xh]];function Vm(t,e){return(t/=_h)>16?16:t>7.5?7:t>3.5?4:t>1.5?2:1}function Fm(t){return(t/=2592e6)>6?6:t>3?3:t>2?2:1}function Hm(t){return(t/=mh)>12?12:t>6?6:t>3.5?4:t>2?2:1}function Gm(t,e){return(t/=e?vh:yh)>30?30:t>20?20:t>15?15:t>10?10:t>5?5:t>2?2:1}function Wm(t){return Qi(t,!0)}function Um(t,e,n){var i=new Date(t);switch(Ih(e)){case"year":case"month":i[Fh(n)](0);case"day":i[Hh(n)](1);case"hour":i[Gh(n)](0);case"minute":i[Wh(n)](0);case"second":i[Uh(n)](0),i[Yh(n)](0)}return i.getTime()}dm.registerClass(Bm);var Ym=dm.prototype,Xm=Tm.prototype,Zm=Ui,jm=Hi,qm=Math.floor,Km=Math.ceil,$m=Math.pow,Jm=Math.log,Qm=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="log",e.base=10,e._originalScale=new Tm,e._interval=0,e}return n(e,t),e.prototype.getTicks=function(t){var e=this._originalScale,n=this._extent,i=e.getExtent();return O(Xm.getTicks.call(this,t),(function(t){var e=t.value,r=Hi($m(this.base,e));return r=e===n[0]&&this._fixMin?e_(r,i[0]):r,{value:r=e===n[1]&&this._fixMax?e_(r,i[1]):r}}),this)},e.prototype.setExtent=function(t,e){var n=this.base;t=Jm(t)/Jm(n),e=Jm(e)/Jm(n),Xm.setExtent.call(this,t,e)},e.prototype.getExtent=function(){var t=this.base,e=Ym.getExtent.call(this);e[0]=$m(t,e[0]),e[1]=$m(t,e[1]);var n=this._originalScale.getExtent();return this._fixMin&&(e[0]=e_(e[0],n[0])),this._fixMax&&(e[1]=e_(e[1],n[1])),e},e.prototype.unionExtent=function(t){this._originalScale.unionExtent(t);var e=this.base;t[0]=Jm(t[0])/Jm(e),t[1]=Jm(t[1])/Jm(e),Ym.unionExtent.call(this,t)},e.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},e.prototype.niceTicks=function(t){t=t||10;var e=this._extent,n=e[1]-e[0];if(!(n===1/0||n<=0)){var i=$i(n);for(t/n*i<=.5&&(i*=10);!isNaN(i)&&Math.abs(i)<1&&Math.abs(i)>0;)i*=10;var r=[Hi(Km(e[0]/i)*i),Hi(qm(e[1]/i)*i)];this._interval=i,this._niceExtent=r}},e.prototype.niceExtent=function(t){Xm.niceExtent.call(this,t),this._fixMin=t.fixMin,this._fixMax=t.fixMax},e.prototype.parse=function(t){return t},e.prototype.contain=function(t){return xm(t=Jm(t)/Jm(this.base),this._extent)},e.prototype.normalize=function(t){return bm(t=Jm(t)/Jm(this.base),this._extent)},e.prototype.scale=function(t){return t=wm(t,this._extent),$m(this.base,t)},e.type="log",e}(dm),t_=Qm.prototype;function e_(t,e){return jm(t,Zm(e))}t_.getMinorTicks=Xm.getMinorTicks,t_.getLabel=Xm.getLabel,dm.registerClass(Qm);var n_=function(){function t(t,e,n){this._prepareParams(t,e,n)}return t.prototype._prepareParams=function(t,e,n){n[1]<n[0]&&(n=[NaN,NaN]),this._dataMin=n[0],this._dataMax=n[1];var i=this._isOrdinal="ordinal"===t.type;this._needCrossZero=e.getNeedCrossZero&&e.getNeedCrossZero();var r=this._modelMinRaw=e.get("min",!0);F(r)?this._modelMinNum=a_(t,r({min:n[0],max:n[1]})):"dataMin"!==r&&(this._modelMinNum=a_(t,r));var o=this._modelMaxRaw=e.get("max",!0);if(F(o)?this._modelMaxNum=a_(t,o({min:n[0],max:n[1]})):"dataMax"!==o&&(this._modelMaxNum=a_(t,o)),i)this._axisDataLen=e.getCategories().length;else{var a=e.get("boundaryGap"),s=V(a)?a:[a||0,a||0];"boolean"==typeof s[0]||"boolean"==typeof s[1]?this._boundaryGapInner=[0,0]:this._boundaryGapInner=[Bn(s[0],1),Bn(s[1],1)]}},t.prototype.calculate=function(){var t=this._isOrdinal,e=this._dataMin,n=this._dataMax,i=this._axisDataLen,r=this._boundaryGapInner,o=t?null:n-e||Math.abs(e),a="dataMin"===this._modelMinRaw?e:this._modelMinNum,s="dataMax"===this._modelMaxRaw?n:this._modelMaxNum,l=null!=a,u=null!=s;null==a&&(a=t?i?0:NaN:e-r[0]*o),null==s&&(s=t?i?i-1:NaN:n+r[1]*o),(null==a||!isFinite(a))&&(a=NaN),(null==s||!isFinite(s))&&(s=NaN),a>s&&(a=NaN,s=NaN);var h=$(a)||$(s)||t&&!i;this._needCrossZero&&(a>0&&s>0&&!l&&(a=0),a<0&&s<0&&!u&&(s=0));var c=this._determinedMin,p=this._determinedMax;return null!=c&&(a=c,l=!0),null!=p&&(s=p,u=!0),{min:a,max:s,minFixed:l,maxFixed:u,isBlank:h}},t.prototype.modifyDataMinMax=function(t,e){this[r_[t]]=e},t.prototype.setDeterminedMinMax=function(t,e){var n=i_[t];this[n]=e},t.prototype.freeze=function(){this.frozen=!0},t}(),i_={min:"_determinedMin",max:"_determinedMax"},r_={min:"_dataMin",max:"_dataMax"};function o_(t,e,n){var i=t.rawExtentInfo;return i||(i=new n_(t,e,n),t.rawExtentInfo=i,i)}function a_(t,e){return null==e?null:$(e)?NaN:t.parse(e)}function s_(t,e){var n=t.type,i=o_(t,e,t.getExtent()).calculate();t.setBlank(i.isBlank);var r=i.min,o=i.max,a=e.ecModel;if(a&&"time"===n){var s=Dm("bar",a),l=!1;if(P(s,(function(t){l=l||t.getBaseAxis()===e.axis})),l){var u=km(s),h=function(t,e,n,i){var r=n.axis.getExtent(),o=r[1]-r[0],a=Lm(i,n.axis);if(void 0===a)return{min:t,max:e};var s=1/0;P(a,(function(t){s=Math.min(t.offset,s)}));var l=-1/0;P(a,(function(t){l=Math.max(t.offset+t.width,l)})),s=Math.abs(s),l=Math.abs(l);var u=s+l,h=e-t,c=h/(1-(s+l)/o)-h;return{min:t-=c*(s/u),max:e+=c*(l/u)}}(r,o,e,u);r=h.min,o=h.max}}return{extent:[r,o],fixMin:i.minFixed,fixMax:i.maxFixed}}function l_(t,e){var n=s_(t,e),i=n.extent,r=e.get("splitNumber");t instanceof Qm&&(t.base=e.get("logBase"));var o=t.type;t.setExtent(i[0],i[1]),t.niceExtent({splitNumber:r,fixMin:n.fixMin,fixMax:n.fixMax,minInterval:"interval"===o||"time"===o?e.get("minInterval"):null,maxInterval:"interval"===o||"time"===o?e.get("maxInterval"):null});var a=e.get("interval");null!=a&&t.setInterval&&t.setInterval(a)}function u_(t,e){if(e=e||t.get("type"))switch(e){case"category":return new Sm({ordinalMeta:t.getOrdinalMeta?t.getOrdinalMeta():t.getCategories(),extent:[1/0,-1/0]});case"time":return new Bm({locale:t.ecModel.getLocaleModel(),useUTC:t.ecModel.get("useUTC")});default:return new(dm.getClass(e)||Tm)}}function h_(t){var e,n,i=t.getLabelModel().get("formatter"),r="category"===t.type?t.scale.getExtent()[0]:null;return"time"===t.scale.type?(n=i,function(e,i){return t.scale.getFormattedLabel(e,i,n)}):"string"==typeof i?function(e){return function(n){var i=t.scale.getLabel(n);return e.replace("{value}",null!=i?i:"")}}(i):"function"==typeof i?(e=i,function(n,i){return null!=r&&(i=n.value-r),e(c_(t,n),i,null!=n.level?{level:n.level}:null)}):function(e){return t.scale.getLabel(e)}}function c_(t,e){return"category"===t.type?t.scale.getLabel(e):e.value}function p_(t,e){var n=e*Math.PI/180,i=t.width,r=t.height,o=i*Math.abs(Math.cos(n))+Math.abs(r*Math.sin(n)),a=i*Math.abs(Math.sin(n))+Math.abs(r*Math.cos(n));return new In(t.x,t.y,o,a)}function d_(t){var e=t.get("interval");return null==e?"auto":e}function f_(t){return"category"===t.type&&0===d_(t.getLabelModel())}function g_(t,e){var n={};return P(t.mapDimensionsAll(e),(function(e){n[cm(t,e)]=!0})),E(n)}var y_=function(){function t(){}return t.prototype.getNeedCrossZero=function(){return!this.option.scale},t.prototype.getCoordSysModel=function(){},t}();var v_={isDimensionStacked:hm,enableDataStack:um,getStackedDimension:cm};var m_=Object.freeze({__proto__:null,createList:function(t){return pm(t.getSource(),t)},getLayoutRect:hc,dataStack:v_,createScale:function(t,e){var n=e;e instanceof oh||(n=new oh(e));var i=u_(n);return i.setExtent(t[0],t[1]),l_(i,n),i},mixinAxisModelCommonMethods:function(t){k(t,y_)},getECData:os,createTextStyle:function(t,e){return Hu(t,null,null,"normal"!==(e=e||{}).state)},createDimensions:om,createSymbol:Rg,enableHoverEmphasis:Hs});function __(t,e){return Math.abs(t-e)<1e-8}function x_(t,e,n){var i=0,r=t[0];if(!r)return!1;for(var o=1;o<t.length;o++){var a=t[o];i+=Ma(r[0],r[1],a[0],a[1],e,n),r=a}var s=t[0];return __(r[0],s[0])&&__(r[1],s[1])||(i+=Ma(r[0],r[1],s[0],s[1],e,n)),0!==i}var b_=function(){function t(t,e,n){if(this.name=t,this.geometries=e,n)n=[n[0],n[1]];else{var i=this.getBoundingRect();n=[i.x+i.width/2,i.y+i.height/2]}this.center=n}return t.prototype.getBoundingRect=function(){var t=this._rect;if(t)return t;for(var e=Number.MAX_VALUE,n=[e,e],i=[-e,-e],r=[],o=[],a=this.geometries,s=0;s<a.length;s++){if("polygon"===a[s].type)Uo(a[s].exterior,r,o),kt(n,n,r),Lt(i,i,o)}return 0===s&&(n[0]=n[1]=i[0]=i[1]=0),this._rect=new In(n[0],n[1],i[0]-n[0],i[1]-n[1])},t.prototype.contain=function(t){var e=this.getBoundingRect(),n=this.geometries;if(!e.contain(t[0],t[1]))return!1;t:for(var i=0,r=n.length;i<r;i++)if("polygon"===n[i].type){var o=n[i].exterior,a=n[i].interiors;if(x_(o,t[0],t[1])){for(var s=0;s<(a?a.length:0);s++)if(x_(a[s],t[0],t[1]))continue t;return!0}}return!1},t.prototype.transformTo=function(t,e,n,i){var r=this.getBoundingRect(),o=r.width/r.height;n?i||(i=n/o):n=o*i;for(var a=new In(t,e,n,i),s=r.calculateTransform(a),l=this.geometries,u=0;u<l.length;u++)if("polygon"===l[u].type){for(var h=l[u].exterior,c=l[u].interiors,p=0;p<h.length;p++)Dt(h[p],h[p],s);for(var d=0;d<(c?c.length:0);d++)for(p=0;p<c[d].length;p++)Dt(c[d][p],c[d][p],s)}(r=this._rect).copy(a),this.center=[r.x+r.width/2,r.y+r.height/2]},t.prototype.cloneShallow=function(e){null==e&&(e=this.name);var n=new t(e,this.geometries,this.center);return n._rect=this._rect,n.transformTo=null,n},t}();function w_(t,e,n){for(var i=[],r=e[0],o=e[1],a=0;a<t.length;a+=2){var s=t.charCodeAt(a)-64,l=t.charCodeAt(a+1)-64;s=s>>1^-(1&s),l=l>>1^-(1&l),r=s+=r,o=l+=o,i.push([s/n,l/n])}return i}function S_(t,e){return O(N((t=function(t){if(!t.UTF8Encoding)return t;var e=t,n=e.UTF8Scale;null==n&&(n=1024);for(var i=e.features,r=0;r<i.length;r++){var o=i[r].geometry;if("Polygon"===o.type)for(var a=o.coordinates,s=0;s<a.length;s++)a[s]=w_(a[s],o.encodeOffsets[s],n);else if("MultiPolygon"===o.type)for(a=o.coordinates,s=0;s<a.length;s++)for(var l=a[s],u=0;u<l.length;u++)l[u]=w_(l[u],o.encodeOffsets[s][u],n)}return e.UTF8Encoding=!1,e}(t)).features,(function(t){return t.geometry&&t.properties&&t.geometry.coordinates.length>0})),(function(t){var n=t.properties,i=t.geometry,r=[];if("Polygon"===i.type){var o=i.coordinates;r.push({type:"polygon",exterior:o[0],interiors:o.slice(1)})}"MultiPolygon"===i.type&&P(o=i.coordinates,(function(t){t[0]&&r.push({type:"polygon",exterior:t[0],interiors:t.slice(1)})}));var a=new b_(n[e||"name"],r,n.cp);return a.properties=n,a}))}var M_=Object.freeze({__proto__:null,linearMap:Vi,round:Hi,asc:Gi,getPrecision:Wi,getPrecisionSafe:Ui,getPixelPrecision:Yi,getPercentWithPrecision:Xi,MAX_SAFE_INTEGER:9007199254740991,remRadian:Zi,isRadianAroundZero:ji,parseDate:Ki,quantity:$i,quantityExponent:Ji,nice:Qi,quantile:function(t,e){var n=(t.length-1)*e+1,i=Math.floor(n),r=+t[i-1],o=n-i;return o?r+o*(t[i]-r):r},reformIntervals:function(t){t.sort((function(t,e){return s(t,e,0)?-1:1}));for(var e=-1/0,n=1,i=0;i<t.length;){for(var r=t[i].interval,o=t[i].close,a=0;a<2;a++)r[a]<=e&&(r[a]=e,o[a]=a?1:1-n),e=r[a],n=o[a];r[0]===r[1]&&o[0]*o[1]!=1?t.splice(i,1):i++}return t;function s(t,e,n){return t.interval[n]<e.interval[n]||t.interval[n]===e.interval[n]&&(t.close[n]-e.close[n]==(n?-1:1)||!n&&s(t,e,1))}},isNumeric:er,numericToNumber:tr}),T_=Object.freeze({__proto__:null,parse:Ki,format:Dh}),C_=Object.freeze({__proto__:null,extendShape:su,extendPath:uu,makePath:pu,makeImage:du,mergePath:gu,resizePath:yu,createIcon:Pu,updateProps:_u,initProps:xu,getTransform:Tu,clipPointsByRect:ku,clipRectByRect:Lu,registerShape:hu,getShapeClass:cu,Group:ki,Image:Ha,Text:$a,Circle:pl,Ellipse:fl,Sector:Dl,Ring:Ll,Polygon:Nl,Polyline:Bl,Rect:ja,Line:Fl,BezierCurve:Ul,Arc:Xl,IncrementalDisplayable:iu,CompoundPath:Zl,LinearGradient:ql,RadialGradient:Kl,BoundingRect:In}),I_=Object.freeze({__proto__:null,addCommas:Xh,toCamelCase:Zh,normalizeCssArray:jh,encodeHTML:$h,formatTpl:ec,getTooltipMarker:nc,formatTime:function(t,e,n){"week"!==t&&"month"!==t&&"quarter"!==t&&"half-year"!==t&&"year"!==t||(t="MM-dd\nyyyy");var i=Ki(e),r=n?"UTC":"",o=i["get"+r+"FullYear"](),a=i["get"+r+"Month"]()+1,s=i["get"+r+"Date"](),l=i["get"+r+"Hours"](),u=i["get"+r+"Minutes"](),h=i["get"+r+"Seconds"](),c=i["get"+r+"Milliseconds"]();return t=t.replace("MM",Ch(a,2)).replace("M",a).replace("yyyy",o).replace("yy",o%100+"").replace("dd",Ch(s,2)).replace("d",s).replace("hh",Ch(l,2)).replace("h",l).replace("mm",Ch(u,2)).replace("m",u).replace("ss",Ch(h,2)).replace("s",h).replace("SSS",Ch(c,3))},capitalFirst:function(t){return t?t.charAt(0).toUpperCase()+t.substr(1):t},truncateText:Zr,getTextRect:function(t,e,n,i,r,o,a,s){return or(),new $a({style:{text:t,font:e,align:n,verticalAlign:i,padding:r,rich:o,overflow:a?"truncate":null,lineHeight:s}}).getBoundingRect()}}),A_=Object.freeze({__proto__:null,map:O,each:P,indexOf:A,inherits:D,reduce:R,filter:N,bind:B,curry:z,isArray:V,isString:H,isObject:U,isFunction:F,extend:T,defaults:C,clone:w,merge:S}),D_=xr();function k_(t){return"category"===t.type?function(t){var e=t.getLabelModel(),n=P_(t,e);return!e.get("show")||t.scale.isBlank()?{labels:[],labelCategoryInterval:n.labelCategoryInterval}:n}(t):function(t){var e=t.scale.getTicks(),n=h_(t);return{labels:O(e,(function(e,i){return{formattedLabel:n(e,i),rawLabel:t.scale.getLabel(e),tickValue:e.value}}))}}(t)}function L_(t,e){return"category"===t.type?function(t,e){var n,i,r=O_(t,"ticks"),o=d_(e),a=R_(r,o);if(a)return a;e.get("show")&&!t.scale.isBlank()||(n=[]);if(F(o))n=B_(t,o,!0);else if("auto"===o){var s=P_(t,t.getLabelModel());i=s.labelCategoryInterval,n=O(s.labels,(function(t){return t.tickValue}))}else n=E_(t,i=o,!0);return N_(r,o,{ticks:n,tickCategoryInterval:i})}(t,e):{ticks:O(t.scale.getTicks(),(function(t){return t.value}))}}function P_(t,e){var n,i,r=O_(t,"labels"),o=d_(e),a=R_(r,o);return a||(F(o)?n=B_(t,o):(i="auto"===o?function(t){var e=D_(t).autoInterval;return null!=e?e:D_(t).autoInterval=t.calculateCategoryInterval()}(t):o,n=E_(t,i)),N_(r,o,{labels:n,labelCategoryInterval:i}))}function O_(t,e){return D_(t)[e]||(D_(t)[e]=[])}function R_(t,e){for(var n=0;n<t.length;n++)if(t[n].key===e)return t[n].value}function N_(t,e,n){return t.push({key:e,value:n}),n}function E_(t,e,n){var i=h_(t),r=t.scale,o=r.getExtent(),a=t.getLabelModel(),s=[],l=Math.max((e||0)+1,1),u=o[0],h=r.count();0!==u&&l>1&&h/l>2&&(u=Math.round(Math.ceil(u/l)*l));var c=f_(t),p=a.get("showMinLabel")||c,d=a.get("showMaxLabel")||c;p&&u!==o[0]&&g(o[0]);for(var f=u;f<=o[1];f+=l)g(f);function g(t){var e={value:t};s.push(n?t:{formattedLabel:i(e),rawLabel:r.getLabel(e),tickValue:t})}return d&&f-l!==o[1]&&g(o[1]),s}function B_(t,e,n){var i=t.scale,r=h_(t),o=[];return P(i.getTicks(),(function(t){var a=i.getLabel(t),s=t.value;e(t.value,a)&&o.push(n?s:{formattedLabel:r(t),rawLabel:a,tickValue:s})})),o}var z_=[0,1],V_=function(){function t(t,e,n){this.onBand=!1,this.inverse=!1,this.dim=t,this.scale=e,this._extent=n||[0,0]}return t.prototype.contain=function(t){var e=this._extent,n=Math.min(e[0],e[1]),i=Math.max(e[0],e[1]);return t>=n&&t<=i},t.prototype.containData=function(t){return this.scale.contain(t)},t.prototype.getExtent=function(){return this._extent.slice()},t.prototype.getPixelPrecision=function(t){return Yi(t||this.scale.getExtent(),this._extent)},t.prototype.setExtent=function(t,e){var n=this._extent;n[0]=t,n[1]=e},t.prototype.dataToCoord=function(t,e){var n=this._extent,i=this.scale;return t=i.normalize(t),this.onBand&&"ordinal"===i.type&&F_(n=n.slice(),i.count()),Vi(t,z_,n,e)},t.prototype.coordToData=function(t,e){var n=this._extent,i=this.scale;this.onBand&&"ordinal"===i.type&&F_(n=n.slice(),i.count());var r=Vi(t,n,z_,e);return this.scale.scale(r)},t.prototype.pointToData=function(t,e){},t.prototype.getTicksCoords=function(t){var e=(t=t||{}).tickModel||this.getTickModel(),n=O(L_(this,e).ticks,(function(t){return{coord:this.dataToCoord("ordinal"===this.scale.type?this.scale.getRawOrdinalNumber(t):t),tickValue:t}}),this);return function(t,e,n,i){var r=e.length;if(!t.onBand||n||!r)return;var o,a,s=t.getExtent();if(1===r)e[0].coord=s[0],o=e[1]={coord:s[0]};else{var l=e[r-1].tickValue-e[0].tickValue,u=(e[r-1].coord-e[0].coord)/l;P(e,(function(t){t.coord-=u/2})),a=1+t.scale.getExtent()[1]-e[r-1].tickValue,o={coord:e[r-1].coord+u*a},e.push(o)}var h=s[0]>s[1];c(e[0].coord,s[0])&&(i?e[0].coord=s[0]:e.shift());i&&c(s[0],e[0].coord)&&e.unshift({coord:s[0]});c(s[1],o.coord)&&(i?o.coord=s[1]:e.pop());i&&c(o.coord,s[1])&&e.push({coord:s[1]});function c(t,e){return t=Hi(t),e=Hi(e),h?t>e:t<e}}(this,n,e.get("alignWithLabel"),t.clamp),n},t.prototype.getMinorTicksCoords=function(){if("ordinal"===this.scale.type)return[];var t=this.model.getModel("minorTick").get("splitNumber");return t>0&&t<100||(t=5),O(this.scale.getMinorTicks(t),(function(t){return O(t,(function(t){return{coord:this.dataToCoord(t),tickValue:t}}),this)}),this)},t.prototype.getViewLabels=function(){return k_(this).labels},t.prototype.getLabelModel=function(){return this.model.getModel("axisLabel")},t.prototype.getTickModel=function(){return this.model.getModel("axisTick")},t.prototype.getBandWidth=function(){var t=this._extent,e=this.scale.getExtent(),n=e[1]-e[0]+(this.onBand?1:0);0===n&&(n=1);var i=Math.abs(t[1]-t[0]);return Math.abs(i)/n},t.prototype.calculateCategoryInterval=function(){return function(t){var e=function(t){var e=t.getLabelModel();return{axisRotate:t.getRotate?t.getRotate():t.isHorizontal&&!t.isHorizontal()?90:0,labelRotate:e.get("rotate")||0,font:e.getFont()}}(t),n=h_(t),i=(e.axisRotate-e.labelRotate)/180*Math.PI,r=t.scale,o=r.getExtent(),a=r.count();if(o[1]-o[0]<1)return 0;var s=1;a>40&&(s=Math.max(1,Math.floor(a/40)));for(var l=o[0],u=t.dataToCoord(l+1)-t.dataToCoord(l),h=Math.abs(u*Math.cos(i)),c=Math.abs(u*Math.sin(i)),p=0,d=0;l<=o[1];l+=s){var f,g,y=On(n({value:l}),e.font,"center","top");f=1.3*y.width,g=1.3*y.height,p=Math.max(p,f,7),d=Math.max(d,g,7)}var v=p/h,m=d/c;isNaN(v)&&(v=1/0),isNaN(m)&&(m=1/0);var _=Math.max(0,Math.floor(Math.min(v,m))),x=D_(t.model),b=t.getExtent(),w=x.lastAutoInterval,S=x.lastTickCount;return null!=w&&null!=S&&Math.abs(w-_)<=1&&Math.abs(S-a)<=1&&w>_&&x.axisExtent0===b[0]&&x.axisExtent1===b[1]?_=w:(x.lastTickCount=a,x.lastAutoInterval=_,x.axisExtent0=b[0],x.axisExtent1=b[1]),_}(this)},t}();function F_(t,e){var n=(t[1]-t[0])/e/2;t[0]+=n,t[1]-=n}function H_(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}function G_(t,e,n,i,r){for(var o=e.length,a=n.length,s=t.newPos,l=s-i,u=0;s+1<o&&l+1<a&&r(e[s+1],n[l+1]);)s++,l++,u++;return u&&t.components.push({count:u,added:!1,removed:!1,indices:[]}),t.newPos=s,l}function W_(t,e,n){var i=t[t.length-1];i&&i.added===e&&i.removed===n?t[t.length-1]={count:i.count+1,added:e,removed:n,indices:[]}:t.push({count:1,added:e,removed:n,indices:[]})}function U_(t){for(var e=0,n=t.length,i=0,r=0;e<n;e++){var o=t[e];if(o.removed){for(s=r;s<r+o.count;s++)o.indices.push(s);r+=o.count}else{for(var a=[],s=i;s<i+o.count;s++)a.push(s);o.indices=a,i+=o.count,o.added||(r+=o.count)}}return t}function Y_(t,e,n){return function(t,e,n){n||(n=function(t,e){return t===e}),t=t.slice();var i=(e=e.slice()).length,r=t.length,o=1,a=i+r,s=[{newPos:-1,components:[]}],l=G_(s[0],e,t,0,n);if(s[0].newPos+1>=i&&l+1>=r){for(var u=[],h=0;h<e.length;h++)u.push(h);return[{indices:u,count:e.length,added:!1,removed:!1}]}function c(){for(var a=-1*o;a<=o;a+=2){var l,u=s[a-1],h=s[a+1],c=(h?h.newPos:0)-a;u&&(s[a-1]=void 0);var p=u&&u.newPos+1<i,d=h&&0<=c&&c<r;if(p||d){if(!p||d&&u.newPos<h.newPos?W_((l={newPos:(f=h).newPos,components:f.components.slice(0)}).components,!1,!0):((l=u).newPos++,W_(l.components,!0,!1)),c=G_(l,e,t,a,n),l.newPos+1>=i&&c+1>=r)return U_(l.components);s[a]=l}else s[a]=void 0}var f;o++}for(;o<=a;){var p=c();if(p)return p}}(t,e,n)}var X_="none",Z_=Math.round,j_=Math.sin,q_=Math.cos,K_=Math.PI,$_=2*Math.PI,J_=180/K_,Q_=1e-4;function tx(t){return Z_(1e3*t)/1e3}function ex(t){return Z_(1e4*t)/1e4}function nx(t){return t<Q_&&t>-1e-4}function ix(t,e){e&&rx(t,"transform","matrix("+tx(e[0])+","+tx(e[1])+","+tx(e[2])+","+tx(e[3])+","+ex(e[4])+","+ex(e[5])+")")}function rx(t,e,n){(!n||"linear"!==n.type&&"radial"!==n.type)&&t.setAttribute(e,n)}function ox(t,e,n){var i=null==e.opacity?1:e.opacity;if(n instanceof Ha)t.style.opacity=i+"";else{if(function(t){var e=t.fill;return null!=e&&e!==X_}(e)){var r=e.fill;rx(t,"fill",r="transparent"===r?X_:r),rx(t,"fill-opacity",(null!=e.fillOpacity?e.fillOpacity*i:i)+"")}else rx(t,"fill",X_);if(function(t){var e=t.stroke;return null!=e&&e!==X_}(e)){var o=e.stroke;rx(t,"stroke",o="transparent"===o?X_:o);var a=e.lineWidth,s=e.strokeNoScale?n.getLineScale():1;rx(t,"stroke-width",(s?a/s:0)+""),rx(t,"paint-order",e.strokeFirst?"stroke":"fill"),rx(t,"stroke-opacity",(null!=e.strokeOpacity?e.strokeOpacity*i:i)+"");var l=e.lineDash&&a>0&&Bg(e.lineDash,a);if(l){var u=e.lineDashOffset;s&&1!==s&&(l=O(l,(function(t){return t/s})),u&&(u=Z_(u/=s))),rx(t,"stroke-dasharray",l.join(",")),rx(t,"stroke-dashoffset",(u||0)+"")}else rx(t,"stroke-dasharray","");e.lineCap&&rx(t,"stroke-linecap",e.lineCap),e.lineJoin&&rx(t,"stroke-linejoin",e.lineJoin),e.miterLimit&&rx(t,"stroke-miterlimit",e.miterLimit+"")}else rx(t,"stroke",X_)}}var ax=function(){function t(){}return t.prototype.reset=function(){this._d=[],this._str=""},t.prototype.moveTo=function(t,e){this._add("M",t,e)},t.prototype.lineTo=function(t,e){this._add("L",t,e)},t.prototype.bezierCurveTo=function(t,e,n,i,r,o){this._add("C",t,e,n,i,r,o)},t.prototype.quadraticCurveTo=function(t,e,n,i){this._add("Q",t,e,n,i)},t.prototype.arc=function(t,e,n,i,r,o){this.ellipse(t,e,n,n,0,i,r,o)},t.prototype.ellipse=function(t,e,n,i,r,o,a,s){var l=0===this._d.length,u=a-o,h=!s,c=Math.abs(u),p=nx(c-$_)||(h?u>=$_:-u>=$_),d=u>0?u%$_:u%$_+$_,f=!1;f=!!p||!nx(c)&&d>=K_==!!h;var g=ex(t+n*q_(o)),y=ex(e+i*j_(o));p&&(u=h?$_-1e-4:1e-4-$_,f=!0,l&&this._d.push("M",g,y));var v=ex(t+n*q_(o+u)),m=ex(e+i*j_(o+u));if(isNaN(g)||isNaN(y)||isNaN(n)||isNaN(i)||isNaN(r)||isNaN(J_)||isNaN(v)||isNaN(m))return"";this._d.push("A",ex(n),ex(i),Z_(r*J_),+f,+h,v,m)},t.prototype.rect=function(t,e,n,i){this._add("M",t,e),this._add("L",t+n,e),this._add("L",t+n,e+i),this._add("L",t,e+i),this._add("L",t,e)},t.prototype.closePath=function(){this._d.length>0&&this._add("Z")},t.prototype._add=function(t,e,n,i,r,o,a,s,l){this._d.push(t);for(var u=1;u<arguments.length;u++){var h=arguments[u];if(isNaN(h))return void(this._invalid=!0);this._d.push(ex(h))}},t.prototype.generateStr=function(){this._str=this._invalid?"":this._d.join(" "),this._d=[]},t.prototype.getStr=function(){return this._str},t}(),sx={brush:function(t){var e=t.style,n=t.__svgEl;n||(n=H_("path"),t.__svgEl=n),t.path||t.createPathProxy();var i=t.path;t.shapeChanged()&&(i.beginPath(),t.buildPath(i,t.shape),t.pathUpdated());var r=i.getVersion(),o=t,a=o.__svgPathBuilder;(o.__svgPathVersion!==r||!a||t.style.strokePercent<1)&&(a||(a=o.__svgPathBuilder=new ax),a.reset(),i.rebuildPath(a,t.style.strokePercent),a.generateStr(),o.__svgPathVersion=r),rx(n,"d",a.getStr()),ox(n,e,t),ix(n,t.transform)}},lx={brush:function(t){var e=t.style,n=e.image;if(n instanceof HTMLImageElement?n=n.src:n instanceof HTMLCanvasElement&&(n=n.toDataURL()),n){var i=e.x||0,r=e.y||0,o=e.width,a=e.height,s=t.__svgEl;s||(s=H_("image"),t.__svgEl=s),n!==t.__imageSrc&&(!function(t,e,n){t.setAttributeNS("http://www.w3.org/1999/xlink",e,n)}(s,"href",n),t.__imageSrc=n),rx(s,"width",o+""),rx(s,"height",a+""),rx(s,"x",i+""),rx(s,"y",r+""),ox(s,e,t),ix(s,t.transform)}}},ux={left:"start",right:"end",center:"middle",middle:"middle"};var hx={brush:function(t){var e=t.style,n=e.text;if(null!=n&&(n+=""),n&&!isNaN(e.x)&&!isNaN(e.y)){var i=t.__svgEl;i||(function(t,e,n){t.setAttributeNS("http://www.w3.org/XML/1998/namespace",e,n)}(i=H_("text"),"xml:space","preserve"),t.__svgEl=i);var r=e.font||Dn;i.style.font=r,i.textContent=n,ox(i,e,t),ix(i,t.transform);var o=e.x||0,a=function(t,e,n){return"top"===n?t+=e/2:"bottom"===n&&(t-=e/2),t}(e.y||0,En(r),e.textBaseline),s=ux[e.textAlign]||e.textAlign;rx(i,"dominant-baseline","central"),rx(i,"text-anchor",s),rx(i,"x",o+""),rx(i,"y",a+"")}}},cx=function(){function t(t,e,n,i,r){this.nextId=0,this._domName="_dom",this.createElement=H_,this._zrId=t,this._svgRoot=e,this._tagNames="string"==typeof n?[n]:n,this._markLabel=i,r&&(this._domName=r)}return t.prototype.getDefs=function(t){var e=this._svgRoot,n=this._svgRoot.getElementsByTagName("defs");if(0===n.length){if(t){var i=e.insertBefore(this.createElement("defs"),e.firstChild);return i.contains||(i.contains=function(t){var e=i.children;if(!e)return!1;for(var n=e.length-1;n>=0;--n)if(e[n]===t)return!0;return!1}),i}return null}return n[0]},t.prototype.doUpdate=function(t,e){if(t){var n=this.getDefs(!1);if(t[this._domName]&&n.contains(t[this._domName]))"function"==typeof e&&e(t);else{var i=this.add(t);i&&(t[this._domName]=i)}}},t.prototype.add=function(t){return null},t.prototype.addDom=function(t){var e=this.getDefs(!0);t.parentNode!==e&&e.appendChild(t)},t.prototype.removeDom=function(t){var e=this.getDefs(!1);e&&t[this._domName]&&(e.removeChild(t[this._domName]),t[this._domName]=null)},t.prototype.getDoms=function(){var t=this.getDefs(!1);if(!t)return[];var e=[];return P(this._tagNames,(function(n){for(var i=t.getElementsByTagName(n),r=0;r<i.length;r++)e.push(i[r])})),e},t.prototype.markAllUnused=function(){var t=this.getDoms(),e=this;P(t,(function(t){t[e._markLabel]="0"}))},t.prototype.markDomUsed=function(t){t&&(t[this._markLabel]="1")},t.prototype.markDomUnused=function(t){t&&(t[this._markLabel]="0")},t.prototype.isDomUnused=function(t){return t&&"1"!==t[this._markLabel]},t.prototype.removeUnused=function(){var t=this,e=this.getDefs(!1);e&&P(this.getDoms(),(function(n){t.isDomUnused(n)&&e.removeChild(n)}))},t.prototype.getSvgProxy=function(t){return t instanceof Ea?sx:t instanceof Ha?lx:t instanceof za?hx:sx},t.prototype.getSvgElement=function(t){return t.__svgEl},t}();function px(t){return"linear"===t.type}function dx(t){return"radial"===t.type}function fx(t){return t&&("linear"===t.type||"radial"===t.type)}var gx=function(t){function e(e,n){return t.call(this,e,n,["linearGradient","radialGradient"],"__gradient_in_use__")||this}return n(e,t),e.prototype.addWithoutUpdate=function(t,e){if(e&&e.style){var n=this;P(["fill","stroke"],(function(i){var r=e.style[i];if(fx(r)){var o=r,a=n.getDefs(!0),s=void 0;o.__dom?(s=o.__dom,a.contains(o.__dom)||n.addDom(s)):s=n.add(o),n.markUsed(e);var l=s.getAttribute("id");t.setAttribute(i,"url(#"+l+")")}}))}},e.prototype.add=function(t){var e;if(px(t))e=this.createElement("linearGradient");else{if(!dx(t))return b("Illegal gradient type."),null;e=this.createElement("radialGradient")}return t.id=t.id||this.nextId++,e.setAttribute("id","zr"+this._zrId+"-gradient-"+t.id),this.updateDom(t,e),this.addDom(e),e},e.prototype.update=function(t){if(fx(t)){var e=this;this.doUpdate(t,(function(){var n=t.__dom;if(n){var i=n.tagName,r=t.type;"linear"===r&&"linearGradient"===i||"radial"===r&&"radialGradient"===i?e.updateDom(t,t.__dom):(e.removeDom(t),e.add(t))}}))}},e.prototype.updateDom=function(t,e){if(px(t))e.setAttribute("x1",t.x+""),e.setAttribute("y1",t.y+""),e.setAttribute("x2",t.x2+""),e.setAttribute("y2",t.y2+"");else{if(!dx(t))return void b("Illegal gradient type.");e.setAttribute("cx",t.x+""),e.setAttribute("cy",t.y+""),e.setAttribute("r",t.r+"")}t.global?e.setAttribute("gradientUnits","userSpaceOnUse"):e.setAttribute("gradientUnits","objectBoundingBox"),e.innerHTML="";for(var n=t.colorStops,i=0,r=n.length;i<r;++i){var o=this.createElement("stop");o.setAttribute("offset",100*n[i].offset+"%");var a=n[i].color;if(a.indexOf("rgba")>-1){var s=We(a)[3],l=Xe(a);o.setAttribute("stop-color","#"+l),o.setAttribute("stop-opacity",s+"")}else o.setAttribute("stop-color",n[i].color);e.appendChild(o)}t.__dom=e},e.prototype.markUsed=function(e){if(e.style){var n=e.style.fill;n&&n.__dom&&t.prototype.markDomUsed.call(this,n.__dom),(n=e.style.stroke)&&n.__dom&&t.prototype.markDomUsed.call(this,n.__dom)}},e}(cx);function yx(t){return t&&(!!t.image||!!t.svgElement)}var vx=new Tg,mx=function(t){function e(e,n){return t.call(this,e,n,["pattern"],"__pattern_in_use__")||this}return n(e,t),e.prototype.addWithoutUpdate=function(t,e){if(e&&e.style){var n=this;P(["fill","stroke"],(function(i){var r=e.style[i];if(yx(r)){var o=n.getDefs(!0),a=vx.get(r);a?o.contains(a)||n.addDom(a):a=n.add(r),n.markUsed(e);var s=a.getAttribute("id");t.setAttribute(i,"url(#"+s+")")}}))}},e.prototype.add=function(t){if(yx(t)){var e=this.createElement("pattern");return t.id=null==t.id?this.nextId++:t.id,e.setAttribute("id","zr"+this._zrId+"-pattern-"+t.id),e.setAttribute("x","0"),e.setAttribute("y","0"),e.setAttribute("patternUnits","userSpaceOnUse"),this.updateDom(t,e),this.addDom(e),e}},e.prototype.update=function(t){if(yx(t)){var e=this;this.doUpdate(t,(function(){var n=vx.get(t);e.updateDom(t,n)}))}},e.prototype.updateDom=function(t,e){var n=t.svgElement;if(n instanceof SVGElement)n.parentNode!==e&&(e.innerHTML="",e.appendChild(n),e.setAttribute("width",t.svgWidth+""),e.setAttribute("height",t.svgHeight+""));else{var i=void 0,r=e.getElementsByTagName("image");if(r.length){if(!t.image)return void e.removeChild(r[0]);i=r[0]}else t.image&&(i=this.createElement("image"));if(i){var o=void 0;if("string"==typeof t.image?o=t.image:t.image instanceof HTMLImageElement?o=t.image.src:t.image instanceof HTMLCanvasElement&&(o=t.image.toDataURL()),o){i.setAttribute("href",o),i.setAttribute("x","0"),i.setAttribute("y","0");var a=Wr(o,i,{dirty:function(){}},(function(t){e.setAttribute("width",t.width+""),e.setAttribute("height",t.height+"")}));a&&a.width&&a.height&&(e.setAttribute("width",a.width+""),e.setAttribute("height",a.height+"")),e.appendChild(i)}}}var s="translate("+(t.x||0)+", "+(t.y||0)+") rotate("+(t.rotation||0)/Math.PI*180+") scale("+(t.scaleX||1)+", "+(t.scaleY||1)+")";e.setAttribute("patternTransform",s),vx.set(t,e)},e.prototype.markUsed=function(e){e.style&&(yx(e.style.fill)&&t.prototype.markDomUsed.call(this,vx.get(e.style.fill)),yx(e.style.stroke)&&t.prototype.markDomUsed.call(this,vx.get(e.style.stroke)))},e}(cx);function _x(t){var e=t.__clipPaths;return e&&e.length>0}var xx=function(t){function e(e,n){var i=t.call(this,e,n,"clipPath","__clippath_in_use__")||this;return i._refGroups={},i._keyDuplicateCount={},i}return n(e,t),e.prototype.markAllUnused=function(){for(var e in t.prototype.markAllUnused.call(this),this._refGroups)this.markDomUnused(this._refGroups[e]);this._keyDuplicateCount={}},e.prototype._getClipPathGroup=function(t,e){if(_x(t)){var n=t.__clipPaths,i=this._keyDuplicateCount,r=function(t){var e=[];if(t)for(var n=0;n<t.length;n++){var i=t[n];e.push(i.id)}return e.join(",")}(n);return Eg(n,e&&e.__clipPaths)&&(i[r]=i[r]||0,i[r]&&(r+="-"+i[r]),i[r]++),this._refGroups[r]||(this._refGroups[r]=this.createElement("g"))}},e.prototype.update=function(t,e){var n=this._getClipPathGroup(t,e);return n&&(this.markDomUsed(n),this.updateDom(n,t.__clipPaths)),n},e.prototype.updateDom=function(t,e){if(e&&e.length>0){var n=this.getDefs(!0),i=e[0],r=void 0,o=void 0;i._dom?(o=i._dom.getAttribute("id"),r=i._dom,n.contains(r)||n.appendChild(r)):(o="zr"+this._zrId+"-clip-"+this.nextId,++this.nextId,(r=this.createElement("clipPath")).setAttribute("id",o),n.appendChild(r),i._dom=r),this.getSvgProxy(i).brush(i);var a=this.getSvgElement(i);r.innerHTML="",r.appendChild(a),t.setAttribute("clip-path","url(#"+o+")"),e.length>1&&this.updateDom(r,e.slice(1))}else t&&t.setAttribute("clip-path","none")},e.prototype.markUsed=function(e){var n=this;e.__clipPaths&&P(e.__clipPaths,(function(e){e._dom&&t.prototype.markDomUsed.call(n,e._dom)}))},e.prototype.removeUnused=function(){t.prototype.removeUnused.call(this);var e={};for(var n in this._refGroups){var i=this._refGroups[n];this.isDomUnused(i)?i.parentNode&&i.parentNode.removeChild(i):e[n]=i}this._refGroups=e},e}(cx),bx=function(t){function e(e,n){var i=t.call(this,e,n,["filter"],"__filter_in_use__","_shadowDom")||this;return i._shadowDomMap={},i._shadowDomPool=[],i}return n(e,t),e.prototype._getFromPool=function(){var t=this._shadowDomPool.pop();if(!t){(t=this.createElement("filter")).setAttribute("id","zr"+this._zrId+"-shadow-"+this.nextId++);var e=this.createElement("feDropShadow");t.appendChild(e),this.addDom(t)}return t},e.prototype.update=function(t,e){if(function(t){return t&&(t.shadowBlur||t.shadowOffsetX||t.shadowOffsetY)}(e.style)){var n=function(t){var e=t.style,n=t.getGlobalScale();return[e.shadowColor,(e.shadowBlur||0).toFixed(2),(e.shadowOffsetX||0).toFixed(2),(e.shadowOffsetY||0).toFixed(2),n[0],n[1]].join(",")}(e),i=e._shadowDom=this._shadowDomMap[n];i||(i=this._getFromPool(),this._shadowDomMap[n]=i),this.updateDom(t,e,i)}else this.remove(t,e)},e.prototype.remove=function(t,e){null!=e._shadowDom&&(e._shadowDom=null,t.style.filter="")},e.prototype.updateDom=function(t,e,n){var i=n.children[0],r=e.style,o=e.getGlobalScale(),a=o[0],s=o[1];if(a&&s){var l=r.shadowOffsetX||0,u=r.shadowOffsetY||0,h=r.shadowBlur,c=r.shadowColor;i.setAttribute("dx",l/a+""),i.setAttribute("dy",u/s+""),i.setAttribute("flood-color",c);var p=h/2/a+" "+h/2/s;i.setAttribute("stdDeviation",p),n.setAttribute("x","-100%"),n.setAttribute("y","-100%"),n.setAttribute("width","300%"),n.setAttribute("height","300%"),e._shadowDom=n;var d=n.getAttribute("id");t.style.filter="url(#"+d+")"}},e.prototype.removeUnused=function(){if(this.getDefs(!1)){var t=this._shadowDomPool;for(var e in this._shadowDomMap){var n=this._shadowDomMap[e];t.push(n)}this._shadowDomMap={}}},e}(cx);function Sx(t){return parseInt(t,10)}function Mx(t){return t instanceof Ea?sx:t instanceof Ha?lx:t instanceof za?hx:sx}function Tx(t,e){return e&&t&&e.parentNode!==t}function Cx(t,e,n){if(Tx(t,e)&&n){var i=n.nextSibling;i?t.insertBefore(e,i):t.appendChild(e)}}function Ix(t,e){if(Tx(t,e)){var n=t.firstChild;n?t.insertBefore(e,n):t.appendChild(e)}}function Ax(t,e){e&&t&&e.parentNode===t&&t.removeChild(e)}function Dx(t){return t.__svgEl}var kx=function(){function t(t,e,n,i){this.type="svg",this.refreshHover=Lx("refreshHover"),this.pathToImage=Lx("pathToImage"),this.configLayer=Lx("configLayer"),this.root=t,this.storage=e,this._opts=n=T({},n||{});var r=H_("svg");r.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns","http://www.w3.org/2000/svg"),r.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink","http://www.w3.org/1999/xlink"),r.setAttribute("version","1.1"),r.setAttribute("baseProfile","full"),r.style.cssText="user-select:none;position:absolute;left:0;top:0;";var o=H_("g");r.appendChild(o);var a=H_("g");r.appendChild(a),this._gradientManager=new gx(i,a),this._patternManager=new mx(i,a),this._clipPathManager=new xx(i,a),this._shadowManager=new bx(i,a);var s=document.createElement("div");s.style.cssText="overflow:hidden;position:relative",this._svgDom=r,this._svgRoot=a,this._backgroundRoot=o,this._viewport=s,t.appendChild(s),s.appendChild(r),this.resize(n.width,n.height),this._visibleList=[]}return t.prototype.getType=function(){return"svg"},t.prototype.getViewportRoot=function(){return this._viewport},t.prototype.getSvgDom=function(){return this._svgDom},t.prototype.getSvgRoot=function(){return this._svgRoot},t.prototype.getViewportRootOffset=function(){var t=this.getViewportRoot();if(t)return{offsetLeft:t.offsetLeft||0,offsetTop:t.offsetTop||0}},t.prototype.refresh=function(){var t=this.storage.getDisplayList(!0);this._paintList(t)},t.prototype.setBackgroundColor=function(t){this._backgroundRoot&&this._backgroundNode&&this._backgroundRoot.removeChild(this._backgroundNode);var e=H_("rect");e.setAttribute("width",this.getWidth()),e.setAttribute("height",this.getHeight()),e.setAttribute("x",0),e.setAttribute("y",0),e.setAttribute("id",0),e.style.fill=t,this._backgroundRoot.appendChild(e),this._backgroundNode=e},t.prototype.createSVGElement=function(t){return H_(t)},t.prototype.paintOne=function(t){var e=Mx(t);return e&&e.brush(t),Dx(t)},t.prototype._paintList=function(t){var e=this._gradientManager,n=this._patternManager,i=this._clipPathManager,r=this._shadowManager;e.markAllUnused(),n.markAllUnused(),i.markAllUnused(),r.markAllUnused();for(var o=this._svgRoot,a=this._visibleList,s=t.length,l=[],u=0;u<s;u++){var h=Mx(x=t[u]),c=Dx(x);x.invisible||(!x.__dirty&&c||(h&&h.brush(x),(c=Dx(x))&&x.style&&(e.update(x.style.fill),e.update(x.style.stroke),n.update(x.style.fill),n.update(x.style.stroke),r.update(c,x)),x.__dirty=0),c&&l.push(x))}var p,d,f,g,y,v=Y_(a,l);for(u=0;u<v.length;u++){if((_=v[u]).removed)for(var m=0;m<_.count;m++){c=Dx(x=a[_.indices[m]]);_x(x)?(f=c)&&f.parentNode&&f.parentNode.removeChild(f):Ax(o,c)}}for(u=0;u<v.length;u++){var _;(_=v[u]).added;if(!_.removed)for(m=0;m<_.count;m++){var x=l[_.indices[m]],b=i.update(x,g);b!==y&&(p=d,b&&(p?Cx(o,b,p):Ix(o,b),d=b,p=null),y=b);c=Dx(x);p?Cx(y||o,c,p):Ix(y||o,c),p=c||p,y||(d=p),e.markUsed(x),e.addWithoutUpdate(c,x),n.markUsed(x),n.addWithoutUpdate(c,x),i.markUsed(x),g=x}}e.removeUnused(),n.removeUnused(),i.removeUnused(),r.removeUnused(),this._visibleList=l},t.prototype._getDefs=function(t){var e=this._svgDom,n=e.getElementsByTagName("defs");if(0===n.length){if(t){var i=e.insertBefore(H_("defs"),e.firstChild);return i.contains||(i.contains=function(t){var e=i.children;if(!e)return!1;for(var n=e.length-1;n>=0;--n)if(e[n]===t)return!0;return!1}),i}return null}return n[0]},t.prototype.resize=function(t,e){var n=this._viewport;n.style.display="none";var i=this._opts;if(null!=t&&(i.width=t),null!=e&&(i.height=e),t=this._getSize(0),e=this._getSize(1),n.style.display="",this._width!==t||this._height!==e){this._width=t,this._height=e;var r=n.style;r.width=t+"px",r.height=e+"px";var o=this._svgDom;o.setAttribute("width",t+""),o.setAttribute("height",e+"")}this._backgroundNode&&(this._backgroundNode.setAttribute("width",t),this._backgroundNode.setAttribute("height",e))},t.prototype.getWidth=function(){return this._width},t.prototype.getHeight=function(){return this._height},t.prototype._getSize=function(t){var e=this._opts,n=["width","height"][t],i=["clientWidth","clientHeight"][t],r=["paddingLeft","paddingTop"][t],o=["paddingRight","paddingBottom"][t];if(null!=e[n]&&"auto"!==e[n])return parseFloat(e[n]);var a=this.root,s=document.defaultView.getComputedStyle(a);return(a[i]||Sx(s[n])||Sx(a.style[n]))-(Sx(s[r])||0)-(Sx(s[o])||0)|0},t.prototype.dispose=function(){this.root.innerHTML="",this._svgRoot=this._backgroundRoot=this._svgDom=this._backgroundNode=this._viewport=this.storage=null},t.prototype.clear=function(){var t=this._viewport;t&&t.parentNode&&t.parentNode.removeChild(t)},t.prototype.toDataURL=function(){this.refresh();var t=this._svgDom,e=t.outerHTML||(t.parentNode&&t.parentNode).innerHTML;return"data:image/svg+xml;charset=UTF-8,"+encodeURIComponent(e.replace(/></g,">\n\r<"))},t}();function Lx(t){return function(){b('In SVG mode painter not support method "'+t+'"')}}function Px(){return!1}function Ox(t,e,n){var i=I(),r=e.getWidth(),o=e.getHeight(),a=i.style;return a&&(a.position="absolute",a.left="0",a.top="0",a.width=r+"px",a.height=o+"px",i.setAttribute("data-zr-dom-id",t)),i.width=r*n,i.height=o*n,i}var Rx=function(t){function e(e,n,i){var r,o=t.call(this)||this;o.motionBlur=!1,o.lastFrameAlpha=.7,o.dpr=1,o.virtual=!1,o.config={},o.incremental=!1,o.zlevel=0,o.maxRepaintRectCount=5,o.__dirty=!0,o.__firstTimePaint=!0,o.__used=!1,o.__drawIndex=0,o.__startIndex=0,o.__endIndex=0,o.__prevStartIndex=null,o.__prevEndIndex=null,i=i||Fn,"string"==typeof e?r=Ox(e,n,i):U(e)&&(e=(r=e).id),o.id=e,o.dom=r;var a=r.style;return a&&(r.onselectstart=Px,a.webkitUserSelect="none",a.userSelect="none",a.webkitTapHighlightColor="rgba(0,0,0,0)",a["-webkit-touch-callout"]="none",a.padding="0",a.margin="0",a.borderWidth="0"),o.domBack=null,o.ctxBack=null,o.painter=n,o.config=null,o.dpr=i,o}return n(e,t),e.prototype.getElementCount=function(){return this.__endIndex-this.__startIndex},e.prototype.afterBrush=function(){this.__prevStartIndex=this.__startIndex,this.__prevEndIndex=this.__endIndex},e.prototype.initContext=function(){this.ctx=this.dom.getContext("2d"),this.ctx.dpr=this.dpr},e.prototype.setUnpainted=function(){this.__firstTimePaint=!0},e.prototype.createBackBuffer=function(){var t=this.dpr;this.domBack=Ox("back-"+this.id,this.painter,t),this.ctxBack=this.domBack.getContext("2d"),1!==t&&this.ctxBack.scale(t,t)},e.prototype.createRepaintRects=function(t,e,n,i){if(this.__firstTimePaint)return this.__firstTimePaint=!1,null;var r,o=[],a=this.maxRepaintRectCount,s=!1,l=new In(0,0,0,0);function u(t){if(t.isFinite()&&!t.isZero())if(0===o.length){(e=new In(0,0,0,0)).copy(t),o.push(e)}else{for(var e,n=!1,i=1/0,r=0,u=0;u<o.length;++u){var h=o[u];if(h.intersect(t)){var c=new In(0,0,0,0);c.copy(h),c.union(t),o[u]=c,n=!0;break}if(s){l.copy(t),l.union(h);var p=t.width*t.height,d=h.width*h.height,f=l.width*l.height-p-d;f<i&&(i=f,r=u)}}if(s&&(o[r].union(t),n=!0),!n)(e=new In(0,0,0,0)).copy(t),o.push(e);s||(s=o.length>=a)}}for(var h=this.__startIndex;h<this.__endIndex;++h){if(d=t[h]){var c=d.shouldBePainted(n,i,!0,!0);(f=d.__isRendered&&(d.__dirty&jn.REDARAW_BIT||!c)?d.getPrevPaintRect():null)&&u(f);var p=c&&(d.__dirty&jn.REDARAW_BIT||!d.__isRendered)?d.getPaintRect():null;p&&u(p)}}for(h=this.__prevStartIndex;h<this.__prevEndIndex;++h){var d,f;c=(d=e[h]).shouldBePainted(n,i,!0,!0);if(d&&(!c||!d.__zr)&&d.__isRendered)(f=d.getPrevPaintRect())&&u(f)}do{r=!1;for(h=0;h<o.length;)if(o[h].isZero())o.splice(h,1);else{for(var g=h+1;g<o.length;)o[h].intersect(o[g])?(r=!0,o[h].union(o[g]),o.splice(g,1)):g++;h++}}while(r);return this._paintRects=o,o},e.prototype.debugGetPaintRects=function(){return(this._paintRects||[]).slice()},e.prototype.resize=function(t,e){var n=this.dpr,i=this.dom,r=i.style,o=this.domBack;r&&(r.width=t+"px",r.height=e+"px"),i.width=t*n,i.height=e*n,o&&(o.width=t*n,o.height=e*n,1!==n&&this.ctxBack.scale(n,n))},e.prototype.clear=function(t,e,n){var i=this.dom,r=this.ctx,o=i.width,a=i.height;e=e||this.clearColor;var s=this.motionBlur&&!t,l=this.lastFrameAlpha,u=this.dpr,h=this;s&&(this.domBack||this.createBackBuffer(),this.ctxBack.globalCompositeOperation="copy",this.ctxBack.drawImage(i,0,0,o/u,a/u));var c=this.domBack;function p(t,n,i,o){if(r.clearRect(t,n,i,o),e&&"transparent"!==e){var a=void 0;j(e)?(a=e.__canvasGradient||Ng(r,e,{x:0,y:0,width:i,height:o}),e.__canvasGradient=a):q(e)&&(a=Wg(r,e,{dirty:function(){h.setUnpainted(),h.__painter.refresh()}})),r.save(),r.fillStyle=a||e,r.fillRect(t,n,i,o),r.restore()}s&&(r.save(),r.globalAlpha=l,r.drawImage(c,t,n,i,o),r.restore())}!n||s?p(0,0,o,a):n.length&&P(n,(function(t){p(t.x*u,t.y*u,t.width*u,t.height*u)}))},e}(Nt),Nx=1e5,Ex=314159,Bx=.01;function zx(t){return parseInt(t,10)}var Vx=function(){function t(t,e,n,i){this.type="canvas",this._zlevelList=[],this._prevDisplayList=[],this._layers={},this._layerConfig={},this._needsManuallyCompositing=!1,this.type="canvas";var r=!t.nodeName||"CANVAS"===t.nodeName.toUpperCase();this._opts=n=T({},n||{}),this.dpr=n.devicePixelRatio||Fn,this._singleCanvas=r,this.root=t;var o=t.style;o&&(o.webkitTapHighlightColor="transparent",o.webkitUserSelect="none",o.userSelect="none",o["-webkit-touch-callout"]="none",t.innerHTML=""),this.storage=e;var a=this._zlevelList;this._prevDisplayList=[];var s=this._layers;if(r){var l=t,u=l.width,h=l.height;null!=n.width&&(u=n.width),null!=n.height&&(h=n.height),this.dpr=n.devicePixelRatio||1,l.width=u*this.dpr,l.height=h*this.dpr,this._width=u,this._height=h;var c=new Rx(l,this,this.dpr);c.__builtin__=!0,c.initContext(),s[314159]=c,c.zlevel=Ex,a.push(Ex),this._domRoot=t}else{this._width=this._getSize(0),this._height=this._getSize(1);var p=this._domRoot=function(t,e){var n=document.createElement("div");return n.style.cssText=["position:relative","width:"+t+"px","height:"+e+"px","padding:0","margin:0","border-width:0"].join(";")+";",n}(this._width,this._height);t.appendChild(p)}}return t.prototype.getType=function(){return"canvas"},t.prototype.isSingleCanvas=function(){return this._singleCanvas},t.prototype.getViewportRoot=function(){return this._domRoot},t.prototype.getViewportRootOffset=function(){var t=this.getViewportRoot();if(t)return{offsetLeft:t.offsetLeft||0,offsetTop:t.offsetTop||0}},t.prototype.refresh=function(t){var e=this.storage.getDisplayList(!0),n=this._prevDisplayList,i=this._zlevelList;this._redrawId=Math.random(),this._paintList(e,n,t,this._redrawId);for(var r=0;r<i.length;r++){var o=i[r],a=this._layers[o];if(!a.__builtin__&&a.refresh){var s=0===r?this._backgroundColor:null;a.refresh(s)}}return this._opts.useDirtyRect&&(this._prevDisplayList=e.slice()),this},t.prototype.refreshHover=function(){this._paintHoverList(this.storage.getDisplayList(!1))},t.prototype._paintHoverList=function(t){var e=t.length,n=this._hoverlayer;if(n&&n.clear(),e){for(var i,r={inHover:!0,viewWidth:this._width,viewHeight:this._height},o=0;o<e;o++){var a=t[o];a.__inHover&&(n||(n=this._hoverlayer=this.getLayer(Nx)),i||(i=n.ctx).save(),Jg(i,a,r,o===e-1))}i&&i.restore()}},t.prototype.getHoverLayer=function(){return this.getLayer(Nx)},t.prototype.paintOne=function(t,e){$g(t,e)},t.prototype._paintList=function(t,e,n,i){if(this._redrawId===i){n=n||!1,this._updateLayerStatus(t);var r=this._doPaintList(t,e,n),o=r.finished,a=r.needsRefreshHover;if(this._needsManuallyCompositing&&this._compositeManually(),a&&this._paintHoverList(t),o)this.eachLayer((function(t){t.afterBrush&&t.afterBrush()}));else{var s=this;ci((function(){s._paintList(t,e,n,i)}))}}},t.prototype._compositeManually=function(){var t=this.getLayer(Ex).ctx,e=this._domRoot.width,n=this._domRoot.height;t.clearRect(0,0,e,n),this.eachBuiltinLayer((function(i){i.virtual&&t.drawImage(i.dom,0,0,e,n)}))},t.prototype._doPaintList=function(t,e,n){for(var i=this,r=[],o=this._opts.useDirtyRect,s=0;s<this._zlevelList.length;s++){var l=this._zlevelList[s],u=this._layers[l];u.__builtin__&&u!==this._hoverlayer&&(u.__dirty||n)&&r.push(u)}for(var h=!0,c=!1,p=function(a){var s=r[a],l=s.ctx,u=o&&s.createRepaintRects(t,e,d._width,d._height);l.save();var p,f=n?s.__startIndex:s.__drawIndex,g=!n&&s.incremental&&Date.now,y=g&&Date.now(),v=s.zlevel===d._zlevelList[0]?d._backgroundColor:null;if(s.__startIndex===s.__endIndex)s.clear(!1,v,u);else if(f===s.__startIndex){var m=t[f];m.incremental&&m.notClear&&!n||s.clear(!1,v,u)}-1===f&&(console.error("For some unknown reason. drawIndex is -1"),f=s.__startIndex);var _=function(e){var n={inHover:!1,allClipped:!1,prevEl:null,viewWidth:i._width,viewHeight:i._height};for(p=f;p<s.__endIndex;p++){var r=t[p];if(r.__inHover&&(c=!0),i._doPaintEl(r,s,o,e,n,p===s.__endIndex-1),g)if(Date.now()-y>15)break}n.prevElClipPaths&&l.restore()};if(u)if(0===u.length)p=s.__endIndex;else for(var x=d.dpr,b=0;b<u.length;++b){var w=u[b];l.save(),l.beginPath(),l.rect(w.x*x,w.y*x,w.width*x,w.height*x),l.clip(),_(w),l.restore()}else l.save(),_(),l.restore();s.__drawIndex=p,s.__drawIndex<s.__endIndex&&(h=!1)},d=this,f=0;f<r.length;f++)p(f);return a.wxa&&P(this._layers,(function(t){t&&t.ctx&&t.ctx.draw&&t.ctx.draw()})),{finished:h,needsRefreshHover:c}},t.prototype._doPaintEl=function(t,e,n,i,r,o){var a=e.ctx;if(n){var s=t.getPaintRect();(!i||s&&s.intersect(i))&&(Jg(a,t,r,o),t.setPrevPaintRect(s))}else Jg(a,t,r,o)},t.prototype.getLayer=function(t,e){this._singleCanvas&&!this._needsManuallyCompositing&&(t=Ex);var n=this._layers[t];return n||((n=new Rx("zr_"+t,this,this.dpr)).zlevel=t,n.__builtin__=!0,this._layerConfig[t]?S(n,this._layerConfig[t],!0):this._layerConfig[t-Bx]&&S(n,this._layerConfig[t-Bx],!0),e&&(n.virtual=e),this.insertLayer(t,n),n.initContext()),n},t.prototype.insertLayer=function(t,e){var n=this._layers,i=this._zlevelList,r=i.length,o=this._domRoot,a=null,s=-1;if(n[t])b("ZLevel "+t+" has been used already");else if(function(t){return!!t&&(!!t.__builtin__||"function"==typeof t.resize&&"function"==typeof t.refresh)}(e)){if(r>0&&t>i[0]){for(s=0;s<r-1&&!(i[s]<t&&i[s+1]>t);s++);a=n[i[s]]}if(i.splice(s+1,0,t),n[t]=e,!e.virtual)if(a){var l=a.dom;l.nextSibling?o.insertBefore(e.dom,l.nextSibling):o.appendChild(e.dom)}else o.firstChild?o.insertBefore(e.dom,o.firstChild):o.appendChild(e.dom);e.__painter=this}else b("Layer of zlevel "+t+" is not valid")},t.prototype.eachLayer=function(t,e){for(var n=this._zlevelList,i=0;i<n.length;i++){var r=n[i];t.call(e,this._layers[r],r)}},t.prototype.eachBuiltinLayer=function(t,e){for(var n=this._zlevelList,i=0;i<n.length;i++){var r=n[i],o=this._layers[r];o.__builtin__&&t.call(e,o,r)}},t.prototype.eachOtherLayer=function(t,e){for(var n=this._zlevelList,i=0;i<n.length;i++){var r=n[i],o=this._layers[r];o.__builtin__||t.call(e,o,r)}},t.prototype.getLayers=function(){return this._layers},t.prototype._updateLayerStatus=function(t){function e(t){o&&(o.__endIndex!==t&&(o.__dirty=!0),o.__endIndex=t)}if(this.eachBuiltinLayer((function(t,e){t.__dirty=t.__used=!1})),this._singleCanvas)for(var n=1;n<t.length;n++){if((s=t[n]).zlevel!==t[n-1].zlevel||s.incremental){this._needsManuallyCompositing=!0;break}}var i,r,o=null,a=0;for(r=0;r<t.length;r++){var s,l=(s=t[r]).zlevel,u=void 0;i!==l&&(i=l,a=0),s.incremental?((u=this.getLayer(l+.001,this._needsManuallyCompositing)).incremental=!0,a=1):u=this.getLayer(l+(a>0?Bx:0),this._needsManuallyCompositing),u.__builtin__||b("ZLevel "+l+" has been used by unkown layer "+u.id),u!==o&&(u.__used=!0,u.__startIndex!==r&&(u.__dirty=!0),u.__startIndex=r,u.incremental?u.__drawIndex=-1:u.__drawIndex=r,e(r),o=u),s.__dirty&jn.REDARAW_BIT&&!s.__inHover&&(u.__dirty=!0,u.incremental&&u.__drawIndex<0&&(u.__drawIndex=r))}e(r),this.eachBuiltinLayer((function(t,e){!t.__used&&t.getElementCount()>0&&(t.__dirty=!0,t.__startIndex=t.__endIndex=t.__drawIndex=0),t.__dirty&&t.__drawIndex<0&&(t.__drawIndex=t.__startIndex)}))},t.prototype.clear=function(){return this.eachBuiltinLayer(this._clearLayer),this},t.prototype._clearLayer=function(t){t.clear()},t.prototype.setBackgroundColor=function(t){this._backgroundColor=t,P(this._layers,(function(t){t.setUnpainted()}))},t.prototype.configLayer=function(t,e){if(e){var n=this._layerConfig;n[t]?S(n[t],e,!0):n[t]=e;for(var i=0;i<this._zlevelList.length;i++){var r=this._zlevelList[i];if(r===t||r===t+Bx)S(this._layers[r],n[t],!0)}}},t.prototype.delLayer=function(t){var e=this._layers,n=this._zlevelList,i=e[t];i&&(i.dom.parentNode.removeChild(i.dom),delete e[t],n.splice(A(n,t),1))},t.prototype.resize=function(t,e){if(this._domRoot.style){var n=this._domRoot;n.style.display="none";var i=this._opts;if(null!=t&&(i.width=t),null!=e&&(i.height=e),t=this._getSize(0),e=this._getSize(1),n.style.display="",this._width!==t||e!==this._height){for(var r in n.style.width=t+"px",n.style.height=e+"px",this._layers)this._layers.hasOwnProperty(r)&&this._layers[r].resize(t,e);this.refresh(!0)}this._width=t,this._height=e}else{if(null==t||null==e)return;this._width=t,this._height=e,this.getLayer(Ex).resize(t,e)}return this},t.prototype.clearLayer=function(t){var e=this._layers[t];e&&e.clear()},t.prototype.dispose=function(){this.root.innerHTML="",this.root=this.storage=this._domRoot=this._layers=null},t.prototype.getRenderedCanvas=function(t){if(t=t||{},this._singleCanvas&&!this._compositeManually)return this._layers[314159].dom;var e=new Rx("image",this,t.pixelRatio||this.dpr),n=e.ctx;if(e.initContext(),e.clear(!1,t.backgroundColor||this._backgroundColor),t.pixelRatio<=this.dpr){this.refresh();var i=e.dom.width,r=e.dom.height,o=e.ctx;this.eachLayer((function(t){t.__builtin__?o.drawImage(t.dom,0,0,i,r):t.renderToCanvas&&(e.ctx.save(),t.renderToCanvas(e.ctx),e.ctx.restore())}))}else for(var a={inHover:!1,viewWidth:this._width,viewHeight:this._height},s=this.storage.getDisplayList(!0),l=0,u=s.length;l<u;l++){Jg(n,s[l],a,l===u-1)}return e.dom},t.prototype.getWidth=function(){return this._width},t.prototype.getHeight=function(){return this._height},t.prototype._getSize=function(t){var e=this._opts,n=["width","height"][t],i=["clientWidth","clientHeight"][t],r=["paddingLeft","paddingTop"][t],o=["paddingRight","paddingBottom"][t];if(null!=e[n]&&"auto"!==e[n])return parseFloat(e[n]);var a=this.root,s=document.defaultView.getComputedStyle(a);return(a[i]||zx(s[n])||zx(a.style[n]))-(zx(s[r])||0)-(zx(s[o])||0)|0},t.prototype.pathToImage=function(t,e){e=e||this.dpr;var n=document.createElement("canvas"),i=n.getContext("2d"),r=t.getBoundingRect(),o=t.style,a=o.shadowBlur*e,s=o.shadowOffsetX*e,l=o.shadowOffsetY*e,u=t.hasStroke()?o.lineWidth:0,h=Math.max(u/2,-s+a),c=Math.max(u/2,s+a),p=Math.max(u/2,-l+a),d=Math.max(u/2,l+a),f=r.width+h+c,g=r.height+p+d;n.width=f*e,n.height=g*e,i.scale(e,e),i.clearRect(0,0,f,g),i.dpr=e;var y={x:t.x,y:t.y,scaleX:t.scaleX,scaleY:t.scaleY,rotation:t.rotation,originX:t.originX,originY:t.originY};t.x=h-r.x,t.y=p-r.y,t.rotation=0,t.scaleX=1,t.scaleY=1,t.updateTransform(),t&&Jg(i,t,{inHover:!1,viewWidth:this._width,viewHeight:this._height},!0);var v=new Ha({style:{x:0,y:0,image:n}});return T(t,y),v},t}();var Fx=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.hasSymbolVisual=!0,n.legendSymbol="line",n}return n(e,t),e.prototype.getInitialData=function(t){return pm(this.getSource(),this,{useEncodeDefaulter:!0})},e.type="series.line",e.dependencies=["grid","polar"],e.defaultOption={zlevel:0,z:3,coordinateSystem:"cartesian2d",legendHoverLink:!0,clip:!0,label:{position:"top"},endLabel:{show:!1,valueAnimation:!0,distance:8},lineStyle:{width:2,type:"solid"},emphasis:{scale:!0,lineStyle:{width:"bolder"}},step:!1,smooth:!1,smoothMonotone:null,symbol:"emptyCircle",symbolSize:4,symbolRotate:null,showSymbol:!0,showAllSymbol:"auto",connectNulls:!1,sampling:"none",animationEasing:"linear",progressive:0,hoverLayerThreshold:1/0},e}(Pd);function Hx(t,e){var n=t.mapDimensionsAll("defaultedLabel"),i=n.length;if(1===i){var r=Kp(t,e,n[0]);return null!=r?r+"":null}if(i){for(var o=[],a=0;a<n.length;a++)o.push(Kp(t,e,n[a]));return o.join(" ")}}function Gx(t,e){var n=t.mapDimensionsAll("defaultedLabel");if(!V(e))return e+"";for(var i=[],r=0;r<n.length;r++){var o=t.getDimensionInfo(n[r]);o&&i.push(e[o.index])}return i.join(" ")}var Wx=function(t){function e(e,n,i,r){var o=t.call(this)||this;return o.updateData(e,n,i,r),o}return n(e,t),e.prototype._createSymbol=function(t,e,n,i,r){this.removeAll();var o=Rg(t,-1,-1,2,2,null,r);o.attr({z2:100,culling:!0,scaleX:i[0]/2,scaleY:i[1]/2}),o.drift=Ux,this._symbolType=t,this.add(o)},e.prototype.stopSymbolAnimation=function(t){this.childAt(0).stopAnimation(null,t)},e.prototype.getSymbolPath=function(){return this.childAt(0)},e.prototype.highlight=function(){Ls(this.childAt(0))},e.prototype.downplay=function(){Ps(this.childAt(0))},e.prototype.setZ=function(t,e){var n=this.childAt(0);n.zlevel=t,n.z=e},e.prototype.setDraggable=function(t){var e=this.childAt(0);e.draggable=t,e.cursor=t?"move":e.cursor},e.prototype.updateData=function(t,n,i,r){this.silent=!1;var o=t.getItemVisual(n,"symbol")||"circle",a=t.hostModel,s=e.getSymbolSize(t,n),l=o!==this._symbolType,u=r&&r.disableAnimation;if(l){var h=t.getItemVisual(n,"symbolKeepAspect");this._createSymbol(o,t,n,s,h)}else{(p=this.childAt(0)).silent=!1;var c={scaleX:s[0]/2,scaleY:s[1]/2};u?p.attr(c):_u(p,c,a,n)}if(this._updateCommon(t,n,s,i,r),l){var p=this.childAt(0);if(!u){c={scaleX:this._sizeX,scaleY:this._sizeY,style:{opacity:p.style.opacity}};p.scaleX=p.scaleY=0,p.style.opacity=0,xu(p,c,a,n)}}u&&this.childAt(0).stopAnimation("remove"),this._seriesModel=a},e.prototype._updateCommon=function(t,e,n,i,r){var o,a,s,l,u,h,c,p,d,f=this.childAt(0),g=t.hostModel;if(i&&(o=i.emphasisItemStyle,a=i.blurItemStyle,s=i.selectItemStyle,l=i.focus,u=i.blurScope,h=i.symbolOffset,c=i.labelStatesModels,p=i.hoverScale,d=i.cursorStyle),!i||t.hasItemOption){var y=i&&i.itemModel?i.itemModel:t.getItemModel(e),v=y.getModel("emphasis");o=v.getModel("itemStyle").getItemStyle(),s=y.getModel(["select","itemStyle"]).getItemStyle(),a=y.getModel(["blur","itemStyle"]).getItemStyle(),l=v.get("focus"),u=v.get("blurScope"),h=y.getShallow("symbolOffset"),c=Fu(y),p=v.getShallow("scale"),d=y.getShallow("cursor")}var m=t.getItemVisual(e,"symbolRotate");f.attr("rotation",(m||0)*Math.PI/180||0),h&&(f.x=Fi(h[0],n[0]),f.y=Fi(h[1],n[1])),d&&f.attr("cursor",d);var _=t.getItemVisual(e,"style"),x=_.fill;if(f instanceof Ha){var b=f.style;f.useStyle(T({image:b.image,x:b.x,y:b.y,width:b.width,height:b.height},_))}else f.__isEmptyBrush?f.useStyle(T({},_)):f.useStyle(_),f.style.decal=null,f.setColor(x,r&&r.symbolInnerColor),f.style.strokeNoScale=!0;var w=t.getItemVisual(e,"liftZ"),S=this._z2;null!=w?null==S&&(this._z2=f.z2,f.z2+=w):null!=S&&(f.z2=S,this._z2=null);var M=r&&r.useNameLabel;Vu(f,c,{labelFetcher:g,labelDataIndex:e,defaultText:function(e){return M?t.getName(e):Hx(t,e)},inheritColor:x,defaultOpacity:_.opacity}),this._sizeX=n[0]/2,this._sizeY=n[1]/2;var C=f.ensureState("emphasis");if(C.style=o,f.ensureState("select").style=s,f.ensureState("blur").style=a,p){var I=Math.max(1.1,3/this._sizeY);C.scaleX=this._sizeX*I,C.scaleY=this._sizeY*I}this.setSymbolScale(1),Hs(this,l,u)},e.prototype.setSymbolScale=function(t){this.scaleX=this.scaleY=t},e.prototype.fadeOut=function(t,e){var n=this.childAt(0),i=this._seriesModel,r=os(this).dataIndex,o=e&&e.animation;if(this.silent=n.silent=!0,e&&e.fadeLabel){var a=n.getTextContent();a&&bu(a,{style:{opacity:0}},i,{dataIndex:r,removeOpt:o,cb:function(){n.removeTextContent()}})}else n.removeTextContent();bu(n,{style:{opacity:0},scaleX:0,scaleY:0},i,{dataIndex:r,cb:t,removeOpt:o})},e.getSymbolSize=function(t,e){var n=t.getItemVisual(e,"symbolSize");return n instanceof Array?n.slice():[+n,+n]},e}(ki);function Ux(t,e){this.parent.drift(t,e)}function Yx(t,e,n,i){return e&&!isNaN(e[0])&&!isNaN(e[1])&&!(i.isIgnore&&i.isIgnore(n))&&!(i.clipShape&&!i.clipShape.contain(e[0],e[1]))&&"none"!==t.getItemVisual(n,"symbol")}function Xx(t){return null==t||U(t)||(t={isIgnore:t}),t||{}}function Zx(t){var e=t.hostModel,n=e.getModel("emphasis");return{emphasisItemStyle:n.getModel("itemStyle").getItemStyle(),blurItemStyle:e.getModel(["blur","itemStyle"]).getItemStyle(),selectItemStyle:e.getModel(["select","itemStyle"]).getItemStyle(),focus:n.get("focus"),blurScope:n.get("blurScope"),symbolRotate:e.get("symbolRotate"),symbolOffset:e.get("symbolOffset"),hoverScale:n.get("scale"),labelStatesModels:Fu(e),cursorStyle:e.get("cursor")}}var jx=function(){function t(t){this.group=new ki,this._SymbolCtor=t||Wx}return t.prototype.updateData=function(t,e){e=Xx(e);var n=this.group,i=t.hostModel,r=this._data,o=this._SymbolCtor,a=e.disableAnimation,s=Zx(t),l={disableAnimation:a},u=e.getSymbolPoint||function(e){return t.getItemLayout(e)};r||n.removeAll(),t.diff(r).add((function(i){var r=u(i);if(Yx(t,r,i,e)){var a=new o(t,i,s,l);a.setPosition(r),t.setItemGraphicEl(i,a),n.add(a)}})).update((function(h,c){var p=r.getItemGraphicEl(c),d=u(h);if(Yx(t,d,h,e)){if(p){p.updateData(t,h,s,l);var f={x:d[0],y:d[1]};a?p.attr(f):_u(p,f,i)}else(p=new o(t,h)).setPosition(d);n.add(p),t.setItemGraphicEl(h,p)}else n.remove(p)})).remove((function(t){var e=r.getItemGraphicEl(t);e&&e.fadeOut((function(){n.remove(e)}))})).execute(),this._getSymbolPoint=u,this._data=t},t.prototype.isPersistent=function(){return!0},t.prototype.updateLayout=function(){var t=this,e=this._data;e&&e.eachItemGraphicEl((function(e,n){var i=t._getSymbolPoint(n);e.setPosition(i),e.markRedraw()}))},t.prototype.incrementalPrepareUpdate=function(t){this._seriesScope=Zx(t),this._data=null,this.group.removeAll()},t.prototype.incrementalUpdate=function(t,e,n){function i(t){t.isGroup||(t.incremental=!0,t.ensureState("emphasis").hoverLayer=!0)}n=Xx(n);for(var r=t.start;r<t.end;r++){var o=e.getItemLayout(r);if(Yx(e,o,r,n)){var a=new this._SymbolCtor(e,r,this._seriesScope);a.traverse(i),a.setPosition(o),this.group.add(a),e.setItemGraphicEl(r,a)}}},t.prototype.remove=function(t){var e=this.group,n=this._data;n&&t?n.eachItemGraphicEl((function(t){t.fadeOut((function(){e.remove(t)}))})):e.removeAll()},t}();function qx(t,e,n){var i=t.getBaseAxis(),r=t.getOtherAxis(i),o=function(t,e){var n=0,i=t.scale.getExtent();"start"===e?n=i[0]:"end"===e?n=i[1]:i[0]>0?n=i[0]:i[1]<0&&(n=i[1]);return n}(r,n),a=i.dim,s=r.dim,l=e.mapDimension(s),u=e.mapDimension(a),h="x"===s||"radius"===s?1:0,c=O(t.dimensions,(function(t){return e.mapDimension(t)})),p=!1,d=e.getCalculationInfo("stackResultDimension");return hm(e,c[0])&&(p=!0,c[0]=d),hm(e,c[1])&&(p=!0,c[1]=d),{dataDimsForPoint:c,valueStart:o,valueAxisDim:s,baseAxisDim:a,stacked:!!p,valueDim:l,baseDim:u,baseDataOffset:h,stackedOverDimension:e.getCalculationInfo("stackedOverDimension")}}function Kx(t,e,n,i){var r=NaN;t.stacked&&(r=n.get(n.getCalculationInfo("stackedOverDimension"),i)),isNaN(r)&&(r=t.valueStart);var o=t.baseDataOffset,a=[];return a[o]=n.get(t.baseDim,i),a[1-o]=r,e.dataToPoint(a)}var $x="undefined"!=typeof Float32Array,Jx=$x?Float32Array:Array;function Qx(t){return V(t)?$x?new Float32Array(t):t:new Jx(t)}var tb=Math.min,eb=Math.max;function nb(t,e){return isNaN(t)||isNaN(e)}function ib(t,e,n,i,r,o,a,s,l){for(var u,h,c,p,d,f,g=n,y=0;y<i;y++){var v=e[2*g],m=e[2*g+1];if(g>=r||g<0)break;if(nb(v,m)){if(l){g+=o;continue}break}if(g===n)t[o>0?"moveTo":"lineTo"](v,m),c=v,p=m;else{var _=v-u,x=m-h;if(_*_+x*x<.5){g+=o;continue}if(a>0){var b=g+o,w=e[2*b],S=e[2*b+1],M=y+1;if(l)for(;nb(w,S)&&M<i;)M++,w=e[2*(b+=o)],S=e[2*b+1];var T=.5,C=0,I=0,A=void 0,D=void 0;if(M>=i||nb(w,S))d=v,f=m;else{C=w-u,I=S-h;var k=v-u,L=w-v,P=m-h,O=S-m,R=void 0,N=void 0;"x"===s?(R=Math.abs(k),N=Math.abs(L),d=v-R*a,f=m,A=v+R*a,D=m):"y"===s?(R=Math.abs(P),N=Math.abs(O),d=v,f=m-R*a,A=v,D=m+R*a):(R=Math.sqrt(k*k+P*P),d=v-C*a*(1-(T=(N=Math.sqrt(L*L+O*O))/(N+R))),f=m-I*a*(1-T),D=m+I*a*T,A=tb(A=v+C*a*T,eb(w,v)),D=tb(D,eb(S,m)),A=eb(A,tb(w,v)),f=m-(I=(D=eb(D,tb(S,m)))-m)*R/N,d=tb(d=v-(C=A-v)*R/N,eb(u,v)),f=tb(f,eb(h,m)),A=v+(C=v-(d=eb(d,tb(u,v))))*N/R,D=m+(I=m-(f=eb(f,tb(h,m))))*N/R)}t.bezierCurveTo(c,p,d,f,v,m),c=A,p=D}else t.lineTo(v,m)}u=v,h=m,g+=o}return y}var rb=function(){this.smooth=0,this.smoothConstraint=!0},ob=function(t){function e(e){var n=t.call(this,e)||this;return n.type="ec-polyline",n}return n(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new rb},e.prototype.buildPath=function(t,e){var n=e.points,i=0,r=n.length/2;if(e.connectNulls){for(;r>0&&nb(n[2*r-2],n[2*r-1]);r--);for(;i<r&&nb(n[2*i],n[2*i+1]);i++);}for(;i<r;)i+=ib(t,n,i,r,r,1,e.smooth,e.smoothMonotone,e.connectNulls)+1},e.prototype.getPointOn=function(t,e){this.path||(this.createPathProxy(),this.buildPath(this.path,this.shape));for(var n,i,r=this.path.data,o=ya.CMD,a="x"===e,s=[],l=0;l<r.length;){var u=void 0,h=void 0,c=void 0,p=void 0,d=void 0,f=void 0,g=void 0;switch(r[l++]){case o.M:n=r[l++],i=r[l++];break;case o.L:if(u=r[l++],h=r[l++],(g=a?(t-n)/(u-n):(t-i)/(h-i))<=1&&g>=0){var y=a?(h-i)*g+i:(u-n)*g+n;return a?[t,y]:[y,t]}n=u,i=h;break;case o.C:u=r[l++],h=r[l++],c=r[l++],p=r[l++],d=r[l++],f=r[l++];var v=a?To(n,u,c,d,t,s):To(i,h,p,f,t,s);if(v>0)for(var m=0;m<v;m++){var _=s[m];if(_<=1&&_>=0){y=a?So(i,h,p,f,_):So(n,u,c,d,_);return a?[t,y]:[y,t]}}n=d,i=f}}},e}(Ea),ab=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e}(rb),sb=function(t){function e(e){var n=t.call(this,e)||this;return n.type="ec-polygon",n}return n(e,t),e.prototype.getDefaultShape=function(){return new ab},e.prototype.buildPath=function(t,e){var n=e.points,i=e.stackedOnPoints,r=0,o=n.length/2,a=e.smoothMonotone;if(e.connectNulls){for(;o>0&&nb(n[2*o-2],n[2*o-1]);o--);for(;r<o&&nb(n[2*r],n[2*r+1]);r++);}for(;r<o;){var s=ib(t,n,r,o,o,1,e.smooth,a,e.connectNulls);ib(t,i,r+s-1,s,o,-1,e.stackedOnSmooth,a,e.connectNulls),r+=s+1,t.closePath()}},e}(Ea);function lb(t,e,n,i,r){var o=t.getArea(),a=o.x,s=o.y,l=o.width,u=o.height,h=n.get(["lineStyle","width"])||2;a-=h/2,s-=h/2,l+=h,u+=h,a=Math.floor(a),l=Math.round(l);var c=new ja({shape:{x:a,y:s,width:l,height:u}});if(e){var p=t.getBaseAxis(),d=p.isHorizontal(),f=p.inverse;d?(f&&(c.shape.x+=l),c.shape.width=0):(f||(c.shape.y+=u),c.shape.height=0),xu(c,{shape:{width:l,height:u,x:a,y:s}},n,null,i,"function"==typeof r?function(t){r(t,c)}:null)}return c}function ub(t,e,n){var i=t.getArea(),r=Hi(i.r0,1),o=Hi(i.r,1),a=new Dl({shape:{cx:Hi(t.cx,1),cy:Hi(t.cy,1),r0:r,r:o,startAngle:i.startAngle,endAngle:i.endAngle,clockwise:i.clockwise}});e&&("angle"===t.getBaseAxis().dim?a.shape.endAngle=i.startAngle:a.shape.r=r,xu(a,{shape:{endAngle:i.endAngle,r:o}},n));return a}function hb(t,e){return t.type===e}function cb(t,e){if(t.length===e.length){for(var n=0;n<t.length;n++)if(t[n]!==e[n])return;return!0}}function pb(t){for(var e=1/0,n=1/0,i=-1/0,r=-1/0,o=0;o<t.length;){var a=t[o++],s=t[o++];isNaN(a)||(e=Math.min(a,e),i=Math.max(a,i)),isNaN(s)||(n=Math.min(s,n),r=Math.max(s,r))}return[[e,n],[i,r]]}function db(t,e){var n=pb(t),i=n[0],r=n[1],o=pb(e),a=o[0],s=o[1];return Math.max(Math.abs(i[0]-a[0]),Math.abs(i[1]-a[1]),Math.abs(r[0]-s[0]),Math.abs(r[1]-s[1]))}function fb(t){return"number"==typeof t?t:t?.5:0}function gb(t,e,n){for(var i=e.getBaseAxis(),r="x"===i.dim||"radius"===i.dim?0:1,o=[],a=0,s=[],l=[],u=[];a<t.length-2;a+=2)switch(u[0]=t[a+2],u[1]=t[a+3],l[0]=t[a],l[1]=t[a+1],o.push(l[0],l[1]),n){case"end":s[r]=u[r],s[1-r]=l[1-r],o.push(s[0],s[1]);break;case"middle":var h=(l[r]+u[r])/2,c=[];s[r]=c[r]=h,s[1-r]=l[1-r],c[1-r]=u[1-r],o.push(s[0],s[1]),o.push(c[0],c[1]);break;default:s[r]=l[r],s[1-r]=u[1-r],o.push(s[0],s[1])}return o.push(t[a++],t[a++]),o}function yb(t,e,n){var i=t.get("showAllSymbol"),r="auto"===i;if(!i||r){var o=n.getAxesByScale("ordinal")[0];if(o&&(!r||!function(t,e){var n=t.getExtent(),i=Math.abs(n[1]-n[0])/t.scale.count();isNaN(i)&&(i=0);for(var r=e.count(),o=Math.max(1,Math.round(r/5)),a=0;a<r;a+=o)if(1.5*Wx.getSymbolSize(e,a)[t.isHorizontal()?1:0]>i)return!1;return!0}(o,e))){var a=e.mapDimension(o.dim),s={};return P(o.getViewLabels(),(function(t){var e=o.scale.getRawOrdinalNumber(t.tickValue);s[e]=1})),function(t){return!s.hasOwnProperty(e.get(a,t))}}}}function vb(t,e){return[t[2*e],t[2*e+1]]}function mb(t,e,n,i){if(hb(e,"cartesian2d")){var r=i.getModel("endLabel"),o=r.get("show"),a=r.get("valueAnimation"),s=i.getData(),l={lastFrameIndex:0},u=o?function(n,i){t._endLabelOnDuring(n,i,s,l,a,r,e)}:null,h=e.getBaseAxis().isHorizontal(),c=lb(e,n,i,(function(){var e=t._endLabel;e&&n&&null!=l.originalX&&e.attr({x:l.originalX,y:l.originalY})}),u);if(!i.get("clip",!0)){var p=c.shape,d=Math.max(p.width,p.height);h?(p.y-=d,p.height+=2*d):(p.x-=d,p.width+=2*d)}return u&&u(1,c),c}return ub(e,n,i)}var _b=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.init=function(){var t=new ki,e=new jx;this.group.add(e.group),this._symbolDraw=e,this._lineGroup=t},e.prototype.render=function(t,e,n){var i=this,r=t.coordinateSystem,o=this.group,a=t.getData(),s=t.getModel("lineStyle"),l=t.getModel("areaStyle"),u=a.getLayout("points")||[],h="polar"===r.type,c=this._coordSys,p=this._symbolDraw,d=this._polyline,f=this._polygon,g=this._lineGroup,y=t.get("animation"),v=!l.isEmpty(),m=l.get("origin"),_=qx(r,a,m),x=v&&function(t,e,n){if(!n.valueDim)return[];for(var i=e.count(),r=Qx(2*i),o=0;o<i;o++){var a=Kx(n,t,e,o);r[2*o]=a[0],r[2*o+1]=a[1]}return r}(r,a,_),b=t.get("showSymbol"),w=b&&!h&&yb(t,a,r),S=this._data;S&&S.eachItemGraphicEl((function(t,e){t.__temp&&(o.remove(t),S.setItemGraphicEl(e,null))})),b||p.remove(),o.add(g);var M,T=!h&&t.get("step");r&&r.getArea&&t.get("clip",!0)&&(null!=(M=r.getArea()).width?(M.x-=.1,M.y-=.1,M.width+=.2,M.height+=.2):M.r0&&(M.r0-=.5,M.r+=.5)),this._clipShapeForSymbol=M,d&&c.type===r.type&&T===this._step?(v&&!f?f=this._newPolygon(u,x):f&&!v&&(g.remove(f),f=this._polygon=null),h||this._initOrUpdateEndLabel(t,r),g.setClipPath(mb(this,r,!1,t)),b&&p.updateData(a,{isIgnore:w,clipShape:M,disableAnimation:!0,getSymbolPoint:function(t){return[u[2*t],u[2*t+1]]}}),cb(this._stackedOnPoints,x)&&cb(this._points,u)||(y?this._doUpdateAnimation(a,x,r,n,T,m):(T&&(u=gb(u,r,T),x&&(x=gb(x,r,T))),d.setShape({points:u}),f&&f.setShape({points:u,stackedOnPoints:x})))):(b&&p.updateData(a,{isIgnore:w,clipShape:M,disableAnimation:!0,getSymbolPoint:function(t){return[u[2*t],u[2*t+1]]}}),y&&this._initSymbolLabelAnimation(a,r,M),T&&(u=gb(u,r,T),x&&(x=gb(x,r,T))),d=this._newPolyline(u),v&&(f=this._newPolygon(u,x)),h||this._initOrUpdateEndLabel(t,r),g.setClipPath(mb(this,r,!0,t)));var I=function(t,e){var n=t.getVisual("visualMeta");if(n&&n.length&&t.count()&&"cartesian2d"===e.type){for(var i,r,o=n.length-1;o>=0;o--){var a=n[o].dimension,s=t.dimensions[a],l=t.getDimensionInfo(s);if("x"===(i=l&&l.coordDim)||"y"===i){r=n[o];break}}if(r){var u=e.getAxis(i),h=O(r.stops,(function(t){return{offset:0,coord:u.toGlobalCoord(u.dataToCoord(t.value)),color:t.color}})),c=h.length,p=r.outerColors.slice();c&&h[0].coord>h[c-1].coord&&(h.reverse(),p.reverse());var d=h[0].coord-10,f=h[c-1].coord+10,g=f-d;if(g<.001)return"transparent";P(h,(function(t){t.offset=(t.coord-d)/g})),h.push({offset:c?h[c-1].offset:.5,color:p[1]||"transparent"}),h.unshift({offset:c?h[0].offset:.5,color:p[0]||"transparent"});var y=new ql(0,0,0,0,h,!0);return y[i]=d,y[i+"2"]=f,y}}}(a,r)||a.getVisual("style")[a.getVisual("drawType")],A=t.get(["emphasis","focus"]),D=t.get(["emphasis","blurScope"]);(d.useStyle(C(s.getLineStyle(),{fill:"none",stroke:I,lineJoin:"bevel"})),Us(d,t,"lineStyle"),d.style.lineWidth>0&&"bolder"===t.get(["emphasis","lineStyle","width"]))&&(d.getState("emphasis").style.lineWidth=d.style.lineWidth+1);os(d).seriesIndex=t.seriesIndex,Hs(d,A,D);var k=fb(t.get("smooth")),L=t.get("smoothMonotone"),R=t.get("connectNulls");if(d.setShape({smooth:k,smoothMonotone:L,connectNulls:R}),f){var N=a.getCalculationInfo("stackedOnSeries"),E=0;f.useStyle(C(l.getAreaStyle(),{fill:I,opacity:.7,lineJoin:"bevel",decal:a.getVisual("style").decal})),N&&(E=fb(N.get("smooth"))),f.setShape({smooth:k,stackedOnSmooth:E,smoothMonotone:L,connectNulls:R}),Us(f,t,"areaStyle"),os(f).seriesIndex=t.seriesIndex,Hs(f,A,D)}var B=function(t){i._changePolyState(t)};a.eachItemGraphicEl((function(t){t&&(t.onHoverStateChange=B)})),this._polyline.onHoverStateChange=B,this._data=a,this._coordSys=r,this._stackedOnPoints=x,this._points=u,this._step=T,this._valueOrigin=m},e.prototype.dispose=function(){},e.prototype.highlight=function(t,e,n,i){var r=t.getData(),o=_r(r,i);if(this._changePolyState("emphasis"),!(o instanceof Array)&&null!=o&&o>=0){var a=r.getLayout("points"),s=r.getItemGraphicEl(o);if(!s){var l=a[2*o],u=a[2*o+1];if(isNaN(l)||isNaN(u))return;if(this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(l,u))return;(s=new Wx(r,o)).x=l,s.y=u,s.setZ(t.get("zlevel"),t.get("z")),s.__temp=!0,r.setItemGraphicEl(o,s),s.stopSymbolAnimation(!0),this.group.add(s)}s.highlight()}else Ud.prototype.highlight.call(this,t,e,n,i)},e.prototype.downplay=function(t,e,n,i){var r=t.getData(),o=_r(r,i);if(this._changePolyState("normal"),null!=o&&o>=0){var a=r.getItemGraphicEl(o);a&&(a.__temp?(r.setItemGraphicEl(o,null),this.group.remove(a)):a.downplay())}else Ud.prototype.downplay.call(this,t,e,n,i)},e.prototype._changePolyState=function(t){var e=this._polygon;As(this._polyline,t),e&&As(e,t)},e.prototype._newPolyline=function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new ob({shape:{points:t},segmentIgnoreThreshold:2,z2:10}),this._lineGroup.add(e),this._polyline=e,e},e.prototype._newPolygon=function(t,e){var n=this._polygon;return n&&this._lineGroup.remove(n),n=new sb({shape:{points:t,stackedOnPoints:e},segmentIgnoreThreshold:2}),this._lineGroup.add(n),this._polygon=n,n},e.prototype._initSymbolLabelAnimation=function(t,e,n){var i,r,o=e.getBaseAxis(),a=o.inverse;"cartesian2d"===e.type?(i=o.isHorizontal(),r=!1):"polar"===e.type&&(i="angle"===o.dim,r=!0);var s=t.hostModel,l=s.get("animationDuration");"function"==typeof l&&(l=l(null));var u=s.get("animationDelay")||0,h="function"==typeof u?u(null):u;t.eachItemGraphicEl((function(t,o){var s=t;if(s){var c=[t.x,t.y],p=void 0,d=void 0,f=void 0;if(r){var g=n,y=e.pointToCoord(c);i?(p=g.startAngle,d=g.endAngle,f=-y[1]/180*Math.PI):(p=g.r0,d=g.r,f=y[0])}else{var v=n;i?(p=v.x,d=v.x+v.width,f=t.x):(p=v.y+v.height,d=v.y,f=t.y)}var m=d===p?0:(f-p)/(d-p);a&&(m=1-m);var _="function"==typeof u?u(o):l*m+h,x=s.getSymbolPath(),b=x.getTextContent();s.attr({scaleX:0,scaleY:0}),s.animateTo({scaleX:1,scaleY:1},{duration:200,delay:_}),b&&b.animateFrom({style:{opacity:0}},{duration:300,delay:_}),x.disableLabelAnimation=!0}}))},e.prototype._initOrUpdateEndLabel=function(t,e){var n=t.getModel("endLabel");if(n.get("show")){var i=t.getData(),r=this._polyline,o=this._endLabel;o||((o=this._endLabel=new $a({z2:200})).ignoreClip=!0,r.setTextContent(this._endLabel),r.disableLabelAnimation=!0);var a=function(t){for(var e,n,i=t.length/2;i>0&&(e=t[2*i-2],n=t[2*i-1],isNaN(e)||isNaN(n));i--);return i-1}(i.getLayout("points"));a>=0&&(Vu(r,Fu(t,"endLabel"),{labelFetcher:t,labelDataIndex:a,defaultText:function(t,e,n){return null!=n?Gx(i,n):Hx(i,t)},enableTextSetter:!0},function(t,e){var n=e.getBaseAxis(),i=n.isHorizontal(),r=n.inverse,o=i?r?"right":"left":"center",a=i?"middle":r?"top":"bottom";return{normal:{align:t.get("align")||o,verticalAlign:t.get("verticalAlign")||a}}}(n,e)),r.textConfig.position=null)}else this._endLabel&&(this._polyline.removeTextContent(),this._endLabel=null)},e.prototype._endLabelOnDuring=function(t,e,n,i,r,o,a){var s=this._endLabel,l=this._polyline;if(s){t<1&&null==i.originalX&&(i.originalX=s.x,i.originalY=s.y);var u=n.getLayout("points"),h=n.hostModel,c=h.get("connectNulls"),p=o.get("precision"),d=o.get("distance")||0,f=a.getBaseAxis(),g=f.isHorizontal(),y=f.inverse,v=e.shape,m=y?g?v.x:v.y+v.height:g?v.x+v.width:v.y,_=(g?d:0)*(y?-1:1),x=(g?0:-d)*(y?-1:1),b=g?"x":"y",w=function(t,e,n){for(var i,r,o=t.length/2,a="x"===n?0:1,s=0,l=-1,u=0;u<o;u++)if(r=t[2*u+a],!isNaN(r)&&!isNaN(t[2*u+1-a]))if(0!==u){if(i<=e&&r>=e||i>=e&&r<=e){l=u;break}s=u,i=r}else i=r;return{range:[s,l],t:(e-i)/(r-i)}}(u,m,b),S=w.range,M=S[1]-S[0],T=void 0;if(M>=1){if(M>1&&!c){var C=vb(u,S[0]);s.attr({x:C[0]+_,y:C[1]+x}),r&&(T=h.getRawValue(S[0]))}else{(C=l.getPointOn(m,b))&&s.attr({x:C[0]+_,y:C[1]+x});var I=h.getRawValue(S[0]),A=h.getRawValue(S[1]);r&&(T=Ir(n,p,I,A,w.t))}i.lastFrameIndex=S[0]}else{var D=1===t||i.lastFrameIndex>0?S[0]:0;C=vb(u,D);r&&(T=h.getRawValue(D)),s.attr({x:C[0]+_,y:C[1]+x})}r&&Zu(s).setLabelText(T)}},e.prototype._doUpdateAnimation=function(t,e,n,i,r,o){var a=this._polyline,s=this._polygon,l=t.hostModel,u=function(t,e,n,i,r,o,a,s){for(var l=function(t,e){var n=[];return e.diff(t).add((function(t){n.push({cmd:"+",idx:t})})).update((function(t,e){n.push({cmd:"=",idx:e,idx1:t})})).remove((function(t){n.push({cmd:"-",idx:t})})).execute(),n}(t,e),u=[],h=[],c=[],p=[],d=[],f=[],g=[],y=qx(r,e,a),v=qx(o,t,s),m=t.getLayout("points")||[],_=e.getLayout("points")||[],x=0;x<l.length;x++){var b=l[x],w=!0,S=void 0,M=void 0;switch(b.cmd){case"=":S=2*b.idx,M=2*b.idx1;var T=m[S],C=m[S+1],I=_[M],A=_[M+1];(isNaN(T)||isNaN(C))&&(T=I,C=A),u.push(T,C),h.push(I,A),c.push(n[S],n[S+1]),p.push(i[M],i[M+1]),g.push(e.getRawIndex(b.idx1));break;case"+":var D=b.idx,k=y.dataDimsForPoint,L=r.dataToPoint([e.get(k[0],D),e.get(k[1],D)]);M=2*D,u.push(L[0],L[1]),h.push(_[M],_[M+1]);var P=Kx(y,r,e,D);c.push(P[0],P[1]),p.push(i[M],i[M+1]),g.push(e.getRawIndex(D));break;case"-":var O=b.idx,R=t.getRawIndex(O),N=v.dataDimsForPoint;if(S=2*O,R!==O){var E=o.dataToPoint([t.get(N[0],O),t.get(N[1],O)]),B=Kx(v,o,t,O);u.push(m[S],m[S+1]),h.push(E[0],E[1]),c.push(n[S],n[S+1]),p.push(B[0],B[1]),g.push(R)}else w=!1}w&&(d.push(b),f.push(f.length))}f.sort((function(t,e){return g[t]-g[e]}));var z=u.length,V=Qx(z),F=Qx(z),H=Qx(z),G=Qx(z),W=[];for(x=0;x<f.length;x++){var U=f[x],Y=2*x,X=2*U;V[Y]=u[X],V[Y+1]=u[X+1],F[Y]=h[X],F[Y+1]=h[X+1],H[Y]=c[X],H[Y+1]=c[X+1],G[Y]=p[X],G[Y+1]=p[X+1],W[x]=d[U]}return{current:V,next:F,stackedOnCurrent:H,stackedOnNext:G,status:W}}(this._data,t,this._stackedOnPoints,e,this._coordSys,n,this._valueOrigin,o),h=u.current,c=u.stackedOnCurrent,p=u.next,d=u.stackedOnNext;if(r&&(h=gb(u.current,n,r),c=gb(u.stackedOnCurrent,n,r),p=gb(u.next,n,r),d=gb(u.stackedOnNext,n,r)),db(h,p)>3e3||s&&db(c,d)>3e3)return a.setShape({points:p}),void(s&&s.setShape({points:p,stackedOnPoints:d}));a.shape.__points=u.current,a.shape.points=h;var f={shape:{points:p}};u.current!==h&&(f.shape.__points=u.next),a.stopAnimation(),_u(a,f,l),s&&(s.setShape({points:h,stackedOnPoints:c}),s.stopAnimation(),_u(s,{shape:{stackedOnPoints:d}},l),a.shape.points!==s.shape.points&&(s.shape.points=a.shape.points));for(var g=[],y=u.status,v=0;v<y.length;v++){if("="===y[v].cmd){var m=t.getItemGraphicEl(y[v].idx1);m&&g.push({el:m,ptIdx:v})}}a.animators&&a.animators.length&&a.animators[0].during((function(){s&&s.dirtyShape();for(var t=a.shape.__points,e=0;e<g.length;e++){var n=g[e].el,i=2*g[e].ptIdx;n.x=t[i],n.y=t[i+1],n.markRedraw()}}))},e.prototype.remove=function(t){var e=this.group,n=this._data;this._lineGroup.removeAll(),this._symbolDraw.remove(!0),n&&n.eachItemGraphicEl((function(t,i){t.__temp&&(e.remove(t),n.setItemGraphicEl(i,null))})),this._polyline=this._polygon=this._coordSys=this._points=this._stackedOnPoints=this._endLabel=this._data=null},e.type="line",e}(Ud);function xb(t,e){return{seriesType:t,plan:Hd(),reset:function(t){var n=t.getData(),i=t.coordinateSystem,r=t.pipelineContext,o=e||r.large;if(i){var a=O(i.dimensions,(function(t){return n.mapDimension(t)})).slice(0,2),s=a.length,l=n.getCalculationInfo("stackResultDimension");hm(n,a[0])&&(a[0]=l),hm(n,a[1])&&(a[1]=l);var u=n.getDimensionInfo(a[0]),h=n.getDimensionInfo(a[1]),c=u&&u.index,p=h&&h.index;return s&&{progress:function(t,e){for(var n=t.end-t.start,r=o&&Qx(n*s),a=[],l=[],u=t.start,h=0;u<t.end;u++){var d=void 0;if(1===s){var f=e.getByDimIdx(c,u);d=i.dataToPoint(f,null,l)}else a[0]=e.getByDimIdx(c,u),a[1]=e.getByDimIdx(p,u),d=i.dataToPoint(a,null,l);o?(r[h++]=d[0],r[h++]=d[1]):e.setItemLayout(u,d.slice())}o&&e.setLayout("points",r)}}}}}}var bb={average:function(t){for(var e=0,n=0,i=0;i<t.length;i++)isNaN(t[i])||(e+=t[i],n++);return 0===n?NaN:e/n},sum:function(t){for(var e=0,n=0;n<t.length;n++)e+=t[n]||0;return e},max:function(t){for(var e=-1/0,n=0;n<t.length;n++)t[n]>e&&(e=t[n]);return isFinite(e)?e:NaN},min:function(t){for(var e=1/0,n=0;n<t.length;n++)t[n]<e&&(e=t[n]);return isFinite(e)?e:NaN},nearest:function(t){return t[0]}},wb=function(t){return Math.round(t.length/2)};function Sb(t){return{seriesType:t,reset:function(t,e,n){var i=t.getData(),r=t.get("sampling"),o=t.coordinateSystem,a=i.count();if(a>10&&"cartesian2d"===o.type&&r){var s=o.getBaseAxis(),l=o.getOtherAxis(s),u=s.getExtent(),h=n.getDevicePixelRatio(),c=Math.abs(u[1]-u[0])*(h||1),p=Math.round(a/c);if(p>1){"lttb"===r&&t.setData(i.lttbDownSample(i.mapDimension(l.dim),1/p));var d=void 0;"string"==typeof r?d=bb[r]:"function"==typeof r&&(d=r),d&&t.setData(i.downSample(i.mapDimension(l.dim),1/p,d,wb))}}}}}var Mb=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.getInitialData=function(t,e){return pm(this.getSource(),this,{useEncodeDefaulter:!0})},e.prototype.getMarkerPosition=function(t){var e=this.coordinateSystem;if(e){var n=e.dataToPoint(e.clampData(t)),i=this.getData(),r=i.getLayout("offset"),o=i.getLayout("size");return n[e.getBaseAxis().isHorizontal()?0:1]+=r+o/2,n}return[NaN,NaN]},e.type="series.__base_bar__",e.defaultOption={zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:3e3,progressiveChunkMode:"mod"},e}(Pd);Pd.registerClass(Mb);var Tb=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.getInitialData=function(){return pm(this.getSource(),this,{useEncodeDefaulter:!0,createInvertedIndices:!!this.get("realtimeSort",!0)||null})},e.prototype.getProgressive=function(){return!!this.get("large")&&this.get("progressive")},e.prototype.getProgressiveThreshold=function(){var t=this.get("progressiveThreshold"),e=this.get("largeThreshold");return e>t&&(t=e),t},e.prototype.brushSelector=function(t,e,n){return n.rect(e.getItemLayout(t))},e.type="series.bar",e.dependencies=["grid","polar"],e.defaultOption=lh(Mb.defaultOption,{clip:!0,roundCap:!1,showBackground:!1,backgroundStyle:{color:"rgba(180, 180, 180, 0.2)",borderColor:null,borderWidth:0,borderType:"solid",borderRadius:0,shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0,opacity:1},select:{itemStyle:{borderColor:"#212121"}},realtimeSort:!1}),e}(Mb),Cb=function(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0},Ib=function(t){function e(e){var n=t.call(this,e)||this;return n.type="sausage",n}return n(e,t),e.prototype.getDefaultShape=function(){return new Cb},e.prototype.buildPath=function(t,e){var n=e.cx,i=e.cy,r=Math.max(e.r0||0,0),o=Math.max(e.r,0),a=.5*(o-r),s=r+a,l=e.startAngle,u=e.endAngle,h=e.clockwise,c=Math.cos(l),p=Math.sin(l),d=Math.cos(u),f=Math.sin(u);(h?u-l<2*Math.PI:l-u<2*Math.PI)&&(t.moveTo(c*r+n,p*r+i),t.arc(c*s+n,p*s+i,a,-Math.PI+l,l,!h)),t.arc(n,i,o,l,u,!h),t.moveTo(d*o+n,f*o+i),t.arc(d*s+n,f*s+i,a,u-2*Math.PI,u-Math.PI,!h),0!==r&&(t.arc(n,i,r,u,l,h),t.moveTo(c*r+n,f*r+i)),t.closePath()},e}(Ea),Ab=["itemStyle","borderWidth"],Db=["itemStyle","borderRadius"],kb=[0,0],Lb=Math.max,Pb=Math.min;var Ob=function(t){function e(){var n=t.call(this)||this;return n.type=e.type,n._isFirstFrame=!0,n}return n(e,t),e.prototype.render=function(t,e,n,i){this._model=t,this._removeOnRenderedListener(n),this._updateDrawMode(t);var r=t.get("coordinateSystem");("cartesian2d"===r||"polar"===r)&&(this._isLargeDraw?this._renderLarge(t,e,n):this._renderNormal(t,e,n,i))},e.prototype.incrementalPrepareRender=function(t){this._clear(),this._updateDrawMode(t),this._updateLargeClip(t)},e.prototype.incrementalRender=function(t,e){this._incrementalRenderLarge(t,e)},e.prototype._updateDrawMode=function(t){var e=t.pipelineContext.large;null!=this._isLargeDraw&&e===this._isLargeDraw||(this._isLargeDraw=e,this._clear())},e.prototype._renderNormal=function(t,e,n,i){var r,o=this.group,a=t.getData(),s=this._data,l=t.coordinateSystem,u=l.getBaseAxis();"cartesian2d"===l.type?r=u.isHorizontal():"polar"===l.type&&(r="angle"===u.dim);var h=t.isAnimationEnabled()?t:null,c=function(t,e){var n=t.get("realtimeSort",!0),i=e.getBaseAxis();0;if(n&&"category"===i.type&&"cartesian2d"===e.type)return{baseAxis:i,otherAxis:e.getOtherAxis(i)}}(t,l);c&&this._enableRealtimeSort(c,a,n);var p=t.get("clip",!0)||c,d=function(t,e){var n=t.getArea&&t.getArea();if(hb(t,"cartesian2d")){var i=t.getBaseAxis();if("category"!==i.type||!i.onBand){var r=e.getLayout("bandWidth");i.isHorizontal()?(n.x-=r,n.width+=2*r):(n.y-=r,n.height+=2*r)}}return n}(l,a);o.removeClipPath();var f=t.get("roundCap",!0),g=t.get("showBackground",!0),y=t.getModel("backgroundStyle"),v=y.get("borderRadius")||0,m=[],_=this._backgroundEls,x=i&&i.isInitSort,b=i&&"changeAxisOrder"===i.type;function w(t){var e=Bb[l.type](a,t),n=function(t,e,n){return new("polar"===t.type?Dl:ja)({shape:Wb(e,n,t),silent:!0,z2:0})}(l,r,e);return n.useStyle(y.getItemStyle()),"cartesian2d"===l.type&&n.setShape("r",v),m[t]=n,n}a.diff(s).add((function(e){var n=a.getItemModel(e),i=Bb[l.type](a,e,n);if(g&&w(e),a.hasValue(e)){var s=!1;p&&(s=Rb[l.type](d,i));var y=Nb[l.type](t,a,e,i,r,h,u.model,!1,f);zb(y,a,e,n,i,t,r,"polar"===l.type),x?y.attr({shape:i}):c?Eb(c,h,y,i,e,r,!1,!1):xu(y,{shape:i},t,e),a.setItemGraphicEl(e,y),o.add(y),y.ignore=s}})).update((function(e,n){var i=a.getItemModel(e),S=Bb[l.type](a,e,i);if(g){var M=void 0;0===_.length?M=w(n):((M=_[n]).useStyle(y.getItemStyle()),"cartesian2d"===l.type&&M.setShape("r",v),m[e]=M);var T=Bb[l.type](a,e);_u(M,{shape:Wb(r,T,l)},h,e)}var C=s.getItemGraphicEl(n);if(!a.hasValue(e))return o.remove(C),void(C=null);var I=!1;p&&(I=Rb[l.type](d,S))&&o.remove(C),C||(C=Nb[l.type](t,a,e,S,r,h,u.model,!!C,f)),b||zb(C,a,e,i,S,t,r,"polar"===l.type),x?C.attr({shape:S}):c?Eb(c,h,C,S,e,r,!0,b):_u(C,{shape:S},t,e,null),a.setItemGraphicEl(e,C),C.ignore=I,o.add(C)})).remove((function(e){var n=s.getItemGraphicEl(e);n&&Su(n,t,e)})).execute();var S=this._backgroundGroup||(this._backgroundGroup=new ki);S.removeAll();for(var M=0;M<m.length;++M)S.add(m[M]);o.add(S),this._backgroundEls=m,this._data=a},e.prototype._renderLarge=function(t,e,n){this._clear(),Hb(t,this.group),this._updateLargeClip(t)},e.prototype._incrementalRenderLarge=function(t,e){this._removeBackground(),Hb(e,this.group,!0)},e.prototype._updateLargeClip=function(t){var e=t.get("clip",!0)?function(t,e,n,i,r){return t?"polar"===t.type?ub(t,e,n):"cartesian2d"===t.type?lb(t,e,n,i,r):null:null}(t.coordinateSystem,!1,t):null;e?this.group.setClipPath(e):this.group.removeClipPath()},e.prototype._enableRealtimeSort=function(t,e,n){var i=this;if(e.count()){var r=t.baseAxis;if(this._isFirstFrame)this._dispatchInitSort(e,t,n),this._isFirstFrame=!1;else{var o=function(t){var n=e.getItemGraphicEl(t);if(n){var i=n.shape;return(r.isHorizontal()?Math.abs(i.height):Math.abs(i.width))||0}return 0};this._onRendered=function(){i._updateSortWithinSameData(e,o,r,n)},n.getZr().on("rendered",this._onRendered)}}},e.prototype._dataSort=function(t,e,n){var i=[];return t.each(t.mapDimension(e.dim),(function(t,e){var r=n(e);r=null==r?NaN:r,i.push({dataIndex:e,mappedValue:r,ordinalNumber:t})})),i.sort((function(t,e){return e.mappedValue-t.mappedValue})),{ordinalNumbers:O(i,(function(t){return t.ordinalNumber}))}},e.prototype._isOrderChangedWithinSameData=function(t,e,n){for(var i=n.scale,r=t.mapDimension(n.dim),o=Number.MAX_VALUE,a=0,s=i.getOrdinalMeta().categories.length;a<s;++a){var l=t.rawIndexOf(r,i.getRawOrdinalNumber(a)),u=l<0?Number.MIN_VALUE:e(t.indexOfRawIndex(l));if(u>o)return!0;o=u}return!1},e.prototype._isOrderDifferentInView=function(t,e){for(var n=e.scale,i=n.getExtent(),r=Math.max(0,i[0]),o=Math.min(i[1],n.getOrdinalMeta().categories.length-1);r<=o;++r)if(t.ordinalNumbers[r]!==n.getRawOrdinalNumber(r))return!0},e.prototype._updateSortWithinSameData=function(t,e,n,i){if(this._isOrderChangedWithinSameData(t,e,n)){var r=this._dataSort(t,n,e);this._isOrderDifferentInView(r,n)&&(this._removeOnRenderedListener(i),i.dispatchAction({type:"changeAxisOrder",componentType:n.dim+"Axis",axisId:n.index,sortInfo:r}))}},e.prototype._dispatchInitSort=function(t,e,n){var i=e.baseAxis,r=this._dataSort(t,i,(function(n){return t.get(t.mapDimension(e.otherAxis.dim),n)}));n.dispatchAction({type:"changeAxisOrder",componentType:i.dim+"Axis",isInitSort:!0,axisId:i.index,sortInfo:r,animation:{duration:0}})},e.prototype.remove=function(t,e){this._clear(this._model),this._removeOnRenderedListener(e)},e.prototype.dispose=function(t,e){this._removeOnRenderedListener(e)},e.prototype._removeOnRenderedListener=function(t){this._onRendered&&(t.getZr().off("rendered",this._onRendered),this._onRendered=null)},e.prototype._clear=function(t){var e=this.group,n=this._data;t&&t.isAnimationEnabled()&&n&&!this._isLargeDraw?(this._removeBackground(),this._backgroundEls=[],n.eachItemGraphicEl((function(e){Su(e,t,os(e).dataIndex)}))):e.removeAll(),this._data=null,this._isFirstFrame=!0},e.prototype._removeBackground=function(){this.group.remove(this._backgroundGroup),this._backgroundGroup=null},e.type="bar",e}(Ud),Rb={cartesian2d:function(t,e){var n=e.width<0?-1:1,i=e.height<0?-1:1;n<0&&(e.x+=e.width,e.width=-e.width),i<0&&(e.y+=e.height,e.height=-e.height);var r=t.x+t.width,o=t.y+t.height,a=Lb(e.x,t.x),s=Pb(e.x+e.width,r),l=Lb(e.y,t.y),u=Pb(e.y+e.height,o),h=s<a,c=u<l;return e.x=h&&a>r?s:a,e.y=c&&l>o?u:l,e.width=h?0:s-a,e.height=c?0:u-l,n<0&&(e.x+=e.width,e.width=-e.width),i<0&&(e.y+=e.height,e.height=-e.height),h||c},polar:function(t,e){var n=e.r0<=e.r?1:-1;if(n<0){var i=e.r;e.r=e.r0,e.r0=i}var r=Pb(e.r,t.r),o=Lb(e.r0,t.r0);e.r=r,e.r0=o;var a=r-o<0;if(n<0){i=e.r;e.r=e.r0,e.r0=i}return a}},Nb={cartesian2d:function(t,e,n,i,r,o,a,s,l){var u=new ja({shape:T({},i),z2:1});(u.__dataIndex=n,u.name="item",o)&&(u.shape[r?"height":"width"]=0);return u},polar:function(t,e,n,i,r,o,a,s,l){var u=i.startAngle<i.endAngle,h=new(!r&&l?Ib:Dl)({shape:C({clockwise:u},i),z2:1});if(h.name="item",o){var c=r?"r":"endAngle",p={};h.shape[c]=r?0:i.startAngle,p[c]=i[c],(s?_u:xu)(h,{shape:p},o)}return h}};function Eb(t,e,n,i,r,o,a,s){var l,u;o?(u={x:i.x,width:i.width},l={y:i.y,height:i.height}):(u={y:i.y,height:i.height},l={x:i.x,width:i.width}),s||(a?_u:xu)(n,{shape:l},e,r,null),(a?_u:xu)(n,{shape:u},e?t.baseAxis.model:null,r)}var Bb={cartesian2d:function(t,e,n){var i=t.getItemLayout(e),r=n?function(t,e){var n=t.get(Ab)||0,i=isNaN(e.width)?Number.MAX_VALUE:Math.abs(e.width),r=isNaN(e.height)?Number.MAX_VALUE:Math.abs(e.height);return Math.min(n,i,r)}(n,i):0,o=i.width>0?1:-1,a=i.height>0?1:-1;return{x:i.x+o*r/2,y:i.y+a*r/2,width:i.width-o*r,height:i.height-a*r}},polar:function(t,e,n){var i=t.getItemLayout(e);return{cx:i.cx,cy:i.cy,r0:i.r0,r:i.r,startAngle:i.startAngle,endAngle:i.endAngle}}};function zb(t,e,n,i,r,o,a,s){var l=e.getItemVisual(n,"style");s||t.setShape("r",i.get(Db)||0),t.useStyle(l);var u=i.getShallow("cursor");if(u&&t.attr("cursor",u),!s){var h=a?r.height>0?"bottom":"top":r.width>0?"left":"right",c=Fu(i);Vu(t,c,{labelFetcher:o,labelDataIndex:n,defaultText:Hx(o.getData(),n),inheritColor:l.fill,defaultOpacity:l.opacity,defaultOutsidePosition:h}),function(t,e,n,i){if(t){var r=Zu(t);r.prevValue=r.value,r.value=n;var o=e.normal;r.valueAnimation=o.get("valueAnimation"),r.valueAnimation&&(r.precision=o.get("precision"),r.defaultInterpolatedText=i,r.statesModels=e)}}(t.getTextContent(),c,o.getRawValue(n),(function(t){return Gx(e,t)}))}var p=i.getModel(["emphasis"]);Hs(t,p.get("focus"),p.get("blurScope")),Us(t,i),function(t){return null!=t.startAngle&&null!=t.endAngle&&t.startAngle===t.endAngle}(r)&&(t.style.fill="none",t.style.stroke="none",P(t.states,(function(t){t.style&&(t.style.fill=t.style.stroke="none")})))}var Vb=function(){},Fb=function(t){function e(e){var n=t.call(this,e)||this;return n.type="largeBar",n}return n(e,t),e.prototype.getDefaultShape=function(){return new Vb},e.prototype.buildPath=function(t,e){for(var n=e.points,i=this.__startPoint,r=this.__baseDimIdx,o=0;o<n.length;o+=2)i[r]=n[o+r],t.moveTo(i[0],i[1]),t.lineTo(n[o],n[o+1])},e}(Ea);function Hb(t,e,n){var i=t.getData(),r=[],o=i.getLayout("valueAxisHorizontal")?1:0;r[1-o]=i.getLayout("valueAxisStart");var a=i.getLayout("largeDataIndices"),s=i.getLayout("barWidth"),l=t.getModel("backgroundStyle");if(t.get("showBackground",!0)){var u=i.getLayout("largeBackgroundPoints"),h=[];h[1-o]=i.getLayout("backgroundStart");var c=new Fb({shape:{points:u},incremental:!!n,silent:!0,z2:0});c.__startPoint=h,c.__baseDimIdx=o,c.__largeDataIndices=a,c.__barWidth=s,function(t,e,n){var i=e.get("borderColor")||e.get("color"),r=e.getItemStyle();t.useStyle(r),t.style.fill=null,t.style.stroke=i,t.style.lineWidth=n.getLayout("barWidth")}(c,l,i),e.add(c)}var p=new Fb({shape:{points:i.getLayout("largePoints")},incremental:!!n});p.__startPoint=r,p.__baseDimIdx=o,p.__largeDataIndices=a,p.__barWidth=s,e.add(p),function(t,e,n){var i=n.getVisual("style");t.useStyle(T({},i)),t.style.fill=null,t.style.stroke=i.fill,t.style.lineWidth=n.getLayout("barWidth")}(p,0,i),os(p).seriesIndex=t.seriesIndex,t.get("silent")||(p.on("mousedown",Gb),p.on("mousemove",Gb))}var Gb=Qd((function(t){var e=function(t,e,n){var i=t.__baseDimIdx,r=1-i,o=t.shape.points,a=t.__largeDataIndices,s=Math.abs(t.__barWidth/2),l=t.__startPoint[r];kb[0]=e,kb[1]=n;for(var u=kb[i],h=kb[1-i],c=u-s,p=u+s,d=0,f=o.length/2;d<f;d++){var g=2*d,y=o[g+i],v=o[g+r];if(y>=c&&y<=p&&(l<=v?h>=l&&h<=v:h>=v&&h<=l))return a[d]}return-1}(this,t.offsetX,t.offsetY);os(this).dataIndex=e>=0?e:null}),30,!1);function Wb(t,e,n){if(hb(n,"cartesian2d")){var i=e,r=n.getArea();return{x:t?i.x:r.x,y:t?r.y:i.y,width:t?i.width:r.width,height:t?r.height:i.height}}var o=e;return{cx:(r=n.getArea()).cx,cy:r.cy,r0:t?r.r0:o.r0,r:t?r.r:o.r,startAngle:t?o.startAngle:0,endAngle:t?o.endAngle:2*Math.PI}}var Ub=2*Math.PI,Yb=Math.PI/180;function Xb(t,e,n){e.eachSeriesByType(t,(function(t){var e=t.getData(),i=e.mapDimension("value"),r=function(t,e){return hc(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}(t,n),o=t.get("center"),a=t.get("radius");V(a)||(a=[0,a]),V(o)||(o=[o,o]);var s=Fi(r.width,n.getWidth()),l=Fi(r.height,n.getHeight()),u=Math.min(s,l),h=Fi(o[0],s)+r.x,c=Fi(o[1],l)+r.y,p=Fi(a[0],u/2),d=Fi(a[1],u/2),f=-t.get("startAngle")*Yb,g=t.get("minAngle")*Yb,y=0;e.each(i,(function(t){!isNaN(t)&&y++}));var v=e.getSum(i),m=Math.PI/(v||y)*2,_=t.get("clockwise"),x=t.get("roseType"),b=t.get("stillShowZeroSum"),w=e.getDataExtent(i);w[0]=0;var S=Ub,M=0,T=f,C=_?1:-1;if(e.setLayout({viewRect:r,r:d}),e.each(i,(function(t,n){var i;if(isNaN(t))e.setItemLayout(n,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:_,cx:h,cy:c,r0:p,r:x?NaN:d});else{(i="area"!==x?0===v&&b?m:t*m:Ub/y)<g?(i=g,S-=g):M+=t;var r=T+C*i;e.setItemLayout(n,{angle:i,startAngle:T,endAngle:r,clockwise:_,cx:h,cy:c,r0:p,r:x?Vi(t,w,[p,d]):d}),T=r}})),S<Ub&&y)if(S<=.001){var I=Ub/y;e.each(i,(function(t,n){if(!isNaN(t)){var i=e.getItemLayout(n);i.angle=I,i.startAngle=f+C*n*I,i.endAngle=f+C*(n+1)*I}}))}else m=S/M,T=f,e.each(i,(function(t,n){if(!isNaN(t)){var i=e.getItemLayout(n),r=i.angle===g?g:t*m;i.startAngle=T,i.endAngle=T+C*r,T+=C*r}}))}))}var Zb=Math.PI/180;function jb(t,e,n,i,r,o,a,s,l,u){if(!(t.length<2)){for(var h=t.length,c=0;c<h;c++)if("outer"===t[c].position&&"labelLine"===t[c].labelAlignTo){var p=t[c].label.x-u;t[c].linePoints[1][0]+=p,t[c].label.x=u}pg(t,l,l+a)&&function(t){for(var o={list:[],maxY:0},a={list:[],maxY:0},s=0;s<t.length;s++)if("none"===t[s].labelAlignTo){var l=t[s],u=l.label.y>n?a:o,h=Math.abs(l.label.y-n);if(h>u.maxY){var c=l.label.x-e-l.len2*r,p=i+l.len,f=c<p?Math.sqrt(h*h/(1-c*c/p/p)):p;u.rB=f,u.maxY=h}u.list.push(l)}d(o),d(a)}(t)}function d(t){for(var o=t.rB,a=o*o,s=0;s<t.list.length;s++){var l=t.list[s],u=Math.abs(l.label.y-n),h=i+l.len,c=h*h,p=Math.sqrt((1-Math.abs(u*u/a))*c);l.label.x=e+(p+l.len2)*r}}}function qb(t){return"center"===t.position}function Kb(t){var e,n,i=t.getData(),r=[],o=!1,a=(t.get("minShowLabelAngle")||0)*Zb,s=i.getLayout("viewRect"),l=i.getLayout("r"),u=s.width,h=s.x,c=s.y,p=s.height;function d(t){t.ignore=!0}i.each((function(t){var s=i.getItemGraphicEl(t),c=s.shape,p=s.getTextContent(),f=s.getTextGuideLine(),g=i.getItemModel(t),y=g.getModel("label"),v=y.get("position")||g.get(["emphasis","label","position"]),m=y.get("distanceToLabelLine"),_=y.get("alignTo"),x=Fi(y.get("edgeDistance"),u),b=y.get("bleedMargin"),w=g.getModel("labelLine"),S=w.get("length");S=Fi(S,u);var M=w.get("length2");if(M=Fi(M,u),Math.abs(c.endAngle-c.startAngle)<a)return P(p.states,d),void(p.ignore=!0);if(function(t){if(!t.ignore)return!0;for(var e in t.states)if(!1===t.states[e].ignore)return!0;return!1}(p)){var T,C,I,A,D=(c.startAngle+c.endAngle)/2,k=Math.cos(D),L=Math.sin(D);e=c.cx,n=c.cy;var O,R="inside"===v||"inner"===v;if("center"===v)T=c.cx,C=c.cy,A="center";else{var N=(R?(c.r+c.r0)/2*k:c.r*k)+e,E=(R?(c.r+c.r0)/2*L:c.r*L)+n;if(T=N+3*k,C=E+3*L,!R){var B=N+k*(S+l-c.r),z=E+L*(S+l-c.r),V=B+(k<0?-1:1)*M;T="edge"===_?k<0?h+x:h+u-x:V+(k<0?-m:m),C=z,I=[[N,E],[B,z],[V,z]]}A=R?"center":"edge"===_?k>0?"right":"left":k>0?"left":"right"}var F=y.get("rotate");if(O="number"==typeof F?F*(Math.PI/180):F?k<0?-D+Math.PI:-D:0,o=!!O,p.x=T,p.y=C,p.rotation=O,p.setStyle({verticalAlign:"middle"}),R){p.setStyle({align:A});var H=p.states.select;H&&(H.x+=p.x,H.y+=p.y)}else{var G=p.getBoundingRect().clone();G.applyTransform(p.getComputedTransform());var W=(p.style.margin||0)+2.1;G.y-=W/2,G.height+=W,r.push({label:p,labelLine:f,position:v,len:S,len2:M,minTurnAngle:w.get("minTurnAngle"),maxSurfaceAngle:w.get("maxSurfaceAngle"),surfaceNormal:new mn(k,L),linePoints:I,textAlign:A,labelDistance:m,labelAlignTo:_,edgeDistance:x,bleedMargin:b,rect:G})}s.setTextConfig({inside:R})}})),!o&&t.get("avoidLabelOverlap")&&function(t,e,n,i,r,o,a,s){for(var l=[],u=[],h=Number.MAX_VALUE,c=-Number.MAX_VALUE,p=0;p<t.length;p++){var d=t[p].label;qb(t[p])||(d.x<e?(h=Math.min(h,d.x),l.push(t[p])):(c=Math.max(c,d.x),u.push(t[p])))}for(jb(u,e,n,i,1,0,o,0,s,c),jb(l,e,n,i,-1,0,o,0,s,h),p=0;p<t.length;p++){var f=t[p];if(d=f.label,!qb(f)){var g=f.linePoints;if(g){var y="edge"===f.labelAlignTo,v=f.rect.width,m=void 0;(m=y?d.x<e?g[2][0]-f.labelDistance-a-f.edgeDistance:a+r-f.edgeDistance-g[2][0]-f.labelDistance:d.x<e?d.x-a-f.bleedMargin:a+r-d.x-f.bleedMargin)<f.rect.width&&(f.label.style.width=m,"edge"===f.labelAlignTo&&(v=m));var _=g[1][0]-g[2][0];y?d.x<e?g[2][0]=a+f.edgeDistance+v+f.labelDistance:g[2][0]=a+r-f.edgeDistance-v-f.labelDistance:(d.x<e?g[2][0]=d.x+f.labelDistance:g[2][0]=d.x-f.labelDistance,g[1][0]=g[2][0]+_),g[1][1]=g[2][1]=d.y}}}}(r,e,n,l,u,p,h,c);for(var f=0;f<r.length;f++){var g=r[f],y=g.label,v=g.labelLine,m=isNaN(y.x)||isNaN(y.y);if(y){y.setStyle({align:g.textAlign}),m&&(P(y.states,d),y.ignore=!0);var _=y.states.select;_&&(_.x+=y.x,_.y+=y.y)}if(v){var x=g.linePoints;m||!x?(P(v.states,d),v.ignore=!0):(og(x,g.minTurnAngle),ag(x,g.surfaceNormal,g.maxSurfaceAngle),v.setShape({points:x}),y.__hostTarget.textGuideLineConfig={anchor:new mn(x[0][0],x[0][1])})}}}function $b(t,e){var n=t.get("borderRadius");return null==n?null:(V(n)||(n=[n,n]),{innerCornerRadius:Bn(n[0],e.r0),cornerRadius:Bn(n[1],e.r)})}var Jb=function(t){function e(e,n,i){var r=t.call(this)||this;r.z2=2;var o=new Bl,a=new $a;return r.setTextGuideLine(o),r.setTextContent(a),r.updateData(e,n,i,!0),r}return n(e,t),e.prototype.updateData=function(t,e,n,r){var o=this,a=t.hostModel,s=t.getItemModel(e),l=s.getModel("emphasis"),u=t.getItemLayout(e),h=T($b(s.getModel("itemStyle"),u)||{},u);r?(o.setShape(h),"scale"===a.getShallow("animationType")?(o.shape.r=u.r0,xu(o,{shape:{r:u.r}},a,e)):null!=n?(o.setShape({startAngle:n,endAngle:n}),xu(o,{shape:{startAngle:u.startAngle,endAngle:u.endAngle}},a,e)):(o.shape.endAngle=u.startAngle,_u(o,{shape:{endAngle:u.endAngle}},a,e))):_u(o,{shape:h},a,e);o.useStyle(t.getItemVisual(e,"style")),Us(o,s);var c=(u.startAngle+u.endAngle)/2,p=a.get("selectedOffset"),d=Math.cos(c)*p,f=Math.sin(c)*p,g=s.getShallow("cursor");g&&o.attr("cursor",g),this._updateLabel(a,t,e),o.ensureState("emphasis").shape=i({r:u.r+(l.get("scale")&&l.get("scaleSize")||0)},$b(l.getModel("itemStyle"),u)),T(o.ensureState("select"),{x:d,y:f,shape:$b(s.getModel(["select","itemStyle"]),u)}),T(o.ensureState("blur"),{shape:$b(s.getModel(["blur","itemStyle"]),u)});var y=o.getTextGuideLine(),v=o.getTextContent();T(y.ensureState("select"),{x:d,y:f}),T(v.ensureState("select"),{x:d,y:f}),Hs(this,l.get("focus"),l.get("blurScope"))},e.prototype._updateLabel=function(t,e,n){var i=this,r=e.getItemModel(n),o=r.getModel("labelLine"),a=e.getItemVisual(n,"style"),s=a&&a.fill,l=a&&a.opacity;Vu(i,Fu(r),{labelFetcher:e.hostModel,labelDataIndex:n,inheritColor:s,defaultOpacity:l,defaultText:t.getFormattedLabel(n,"normal")||e.getName(n)});var u=i.getTextContent();i.setTextConfig({position:null,rotation:null}),u.attr({z2:10}),ug(this,hg(r),{stroke:s,opacity:tt(o.get(["lineStyle","opacity"]),l,1)})},e}(Dl),Qb=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.ignoreLabelLineUpdate=!0,e}return n(e,t),e.prototype.init=function(){var t=new ki;this._sectorGroup=t},e.prototype.render=function(t,e,n,i){var r,o=t.getData(),a=this._data,s=this.group;if(!a&&o.count()>0){for(var l=o.getItemLayout(0),u=1;isNaN(l&&l.startAngle)&&u<o.count();++u)l=o.getItemLayout(u);l&&(r=l.startAngle)}o.diff(a).add((function(t){var e=new Jb(o,t,r);o.setItemGraphicEl(t,e),s.add(e)})).update((function(t,e){var n=a.getItemGraphicEl(e);n.updateData(o,t,r),n.off("click"),s.add(n),o.setItemGraphicEl(t,n)})).remove((function(e){Su(a.getItemGraphicEl(e),t,e)})).execute(),Kb(t),"expansion"!==t.get("animationTypeUpdate")&&(this._data=o)},e.prototype.dispose=function(){},e.prototype.containPoint=function(t,e){var n=e.getData().getItemLayout(0);if(n){var i=t[0]-n.cx,r=t[1]-n.cy,o=Math.sqrt(i*i+r*r);return o<=n.r&&o>=n.r0}},e.type="pie",e}(Ud);var tw=function(){function t(t,e){this._getDataWithEncodedVisual=t,this._getRawData=e}return t.prototype.getAllNames=function(){var t=this._getRawData();return t.mapArray(t.getName)},t.prototype.containName=function(t){return this._getRawData().indexOfName(t)>=0},t.prototype.indexOfName=function(t){return this._getDataWithEncodedVisual().indexOfName(t)},t.prototype.getItemVisual=function(t,e){return this._getDataWithEncodedVisual().getItemVisual(t,e)},t}(),ew=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.useColorPaletteOnData=!0,e}return n(e,t),e.prototype.init=function(e){t.prototype.init.apply(this,arguments),this.legendVisualProvider=new tw(B(this.getData,this),B(this.getRawData,this)),this._defaultLabelLine(e)},e.prototype.mergeOption=function(){t.prototype.mergeOption.apply(this,arguments)},e.prototype.getInitialData=function(){return function(t,e,n){e=V(e)&&{coordDimensions:e}||T({},e);var i=t.getSource(),r=om(i,e),o=new nm(r,t);return o.initData(i,n),o}(this,{coordDimensions:["value"],encodeDefaulter:z(Nc,this)})},e.prototype.getDataParams=function(e){var n=this.getData(),i=t.prototype.getDataParams.call(this,e),r=[];return n.each(n.mapDimension("value"),(function(t){r.push(t)})),i.percent=Xi(r,e,n.hostModel.get("percentPrecision")),i.$vars.push("percent"),i},e.prototype._defaultLabelLine=function(t){hr(t,"labelLine",["show"]);var e=t.labelLine,n=t.emphasis.labelLine;e.show=e.show&&t.label.show,n.show=n.show&&t.emphasis.label.show},e.type="series.pie",e.defaultOption={zlevel:0,z:2,legendHoverLink:!0,center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,minShowLabelAngle:0,selectedOffset:10,percentPrecision:2,stillShowZeroSum:!0,left:0,top:0,right:0,bottom:0,width:null,height:null,label:{rotate:0,show:!0,overflow:"truncate",position:"outer",alignTo:"none",edgeDistance:"25%",bleedMargin:10,distanceToLabelLine:5},labelLine:{show:!0,length:15,length2:15,smooth:!1,minTurnAngle:90,maxSurfaceAngle:90,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1},labelLayout:{hideOverlap:!0},emphasis:{scale:!0,scaleSize:5},avoidLabelOverlap:!0,animationType:"expansion",animationDuration:1e3,animationTypeUpdate:"transition",animationEasingUpdate:"cubicInOut",animationDurationUpdate:500,animationEasing:"cubicInOut"},e}(Pd);var nw=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.hasSymbolVisual=!0,n}return n(e,t),e.prototype.getInitialData=function(t,e){return pm(this.getSource(),this,{useEncodeDefaulter:!0})},e.prototype.getProgressive=function(){var t=this.option.progressive;return null==t?this.option.large?5e3:this.get("progressive"):t},e.prototype.getProgressiveThreshold=function(){var t=this.option.progressiveThreshold;return null==t?this.option.large?1e4:this.get("progressiveThreshold"):t},e.prototype.brushSelector=function(t,e,n){return n.point(e.getItemLayout(t))},e.type="series.scatter",e.dependencies=["grid","polar","geo","singleAxis","calendar"],e.defaultOption={coordinateSystem:"cartesian2d",zlevel:0,z:2,legendHoverLink:!0,symbolSize:10,large:!1,largeThreshold:2e3,itemStyle:{opacity:.8},emphasis:{scale:!0},clip:!0,select:{itemStyle:{borderColor:"#212121"}}},e}(Pd),iw=function(){},rw=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultShape=function(){return new iw},e.prototype.buildPath=function(t,e){var n=e.points,i=e.size,r=this.symbolProxy,o=r.shape,a=t.getContext?t.getContext():t;if(a&&i[0]<4)this._ctx=a;else{this._ctx=null;for(var s=0;s<n.length;){var l=n[s++],u=n[s++];isNaN(l)||isNaN(u)||(this.softClipShape&&!this.softClipShape.contain(l,u)||(o.x=l-i[0]/2,o.y=u-i[1]/2,o.width=i[0],o.height=i[1],r.buildPath(t,o,!0)))}}},e.prototype.afterBrush=function(){var t=this.shape,e=t.points,n=t.size,i=this._ctx;if(i)for(var r=0;r<e.length;){var o=e[r++],a=e[r++];isNaN(o)||isNaN(a)||(this.softClipShape&&!this.softClipShape.contain(o,a)||i.fillRect(o-n[0]/2,a-n[1]/2,n[0],n[1]))}},e.prototype.findDataIndex=function(t,e){for(var n=this.shape,i=n.points,r=n.size,o=Math.max(r[0],4),a=Math.max(r[1],4),s=i.length/2-1;s>=0;s--){var l=2*s,u=i[l]-o/2,h=i[l+1]-a/2;if(t>=u&&e>=h&&t<=u+o&&e<=h+a)return s}return-1},e}(Ea),ow=function(){function t(){this.group=new ki}return t.prototype.isPersistent=function(){return!this._incremental},t.prototype.updateData=function(t,e){this.group.removeAll();var n=new rw({rectHover:!0,cursor:"default"});n.setShape({points:t.getLayout("points")}),this._setCommon(n,t,!1,e),this.group.add(n),this._incremental=null},t.prototype.updateLayout=function(t){if(!this._incremental){var e=t.getLayout("points");this.group.eachChild((function(t){if(null!=t.startIndex){var n=2*(t.endIndex-t.startIndex),i=4*t.startIndex*2;e=new Float32Array(e.buffer,i,n)}t.setShape("points",e)}))}},t.prototype.incrementalPrepareUpdate=function(t){this.group.removeAll(),this._clearIncremental(),t.count()>2e6?(this._incremental||(this._incremental=new iu({silent:!0})),this.group.add(this._incremental)):this._incremental=null},t.prototype.incrementalUpdate=function(t,e,n){var i;this._incremental?(i=new rw,this._incremental.addDisplayable(i,!0)):((i=new rw({rectHover:!0,cursor:"default",startIndex:t.start,endIndex:t.end})).incremental=!0,this.group.add(i)),i.setShape({points:e.getLayout("points")}),this._setCommon(i,e,!!this._incremental,n)},t.prototype._setCommon=function(t,e,n,i){var r=e.hostModel;i=i||{};var o=e.getVisual("symbolSize");t.setShape("size",o instanceof Array?o:[o,o]),t.softClipShape=i.clipShape||null,t.symbolProxy=Rg(e.getVisual("symbol"),0,0,0,0),t.setColor=t.symbolProxy.setColor;var a=t.shape.size[0]<4;t.useStyle(r.getModel("itemStyle").getItemStyle(a?["color","shadowBlur","shadowColor"]:["color"]));var s=e.getVisual("style"),l=s&&s.fill;if(l&&t.setColor(l),!n){var u=os(t);u.seriesIndex=r.seriesIndex,t.on("mousemove",(function(e){u.dataIndex=null;var n=t.findDataIndex(e.offsetX,e.offsetY);n>=0&&(u.dataIndex=n+(t.startIndex||0))}))}},t.prototype.remove=function(){this._clearIncremental(),this._incremental=null,this.group.removeAll()},t.prototype._clearIncremental=function(){var t=this._incremental;t&&t.clearDisplaybles()},t}(),aw=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){var i=t.getData();this._updateSymbolDraw(i,t).updateData(i,{clipShape:this._getClipShape(t)}),this._finished=!0},e.prototype.incrementalPrepareRender=function(t,e,n){var i=t.getData();this._updateSymbolDraw(i,t).incrementalPrepareUpdate(i),this._finished=!1},e.prototype.incrementalRender=function(t,e,n){this._symbolDraw.incrementalUpdate(t,e.getData(),{clipShape:this._getClipShape(e)}),this._finished=t.end===e.getData().count()},e.prototype.updateTransform=function(t,e,n){var i=t.getData();if(this.group.dirty(),!this._finished||i.count()>1e4||!this._symbolDraw.isPersistent())return{update:!0};var r=xb("").reset(t,e,n);r.progress&&r.progress({start:0,end:i.count(),count:i.count()},i),this._symbolDraw.updateLayout(i)},e.prototype._getClipShape=function(t){var e=t.coordinateSystem,n=e&&e.getArea&&e.getArea();return t.get("clip",!0)?n:null},e.prototype._updateSymbolDraw=function(t,e){var n=this._symbolDraw,i=e.pipelineContext.large;return n&&i===this._isLargeDraw||(n&&n.remove(),n=this._symbolDraw=i?new ow:new jx,this._isLargeDraw=i,this.group.removeAll()),this.group.add(n.group),n},e.prototype.remove=function(t,e){this._symbolDraw&&this._symbolDraw.remove(!0),this._symbolDraw=null},e.prototype.dispose=function(){},e.type="scatter",e}(Ud),sw=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.type="grid",e.dependencies=["xAxis","yAxis"],e.layoutMode="box",e.defaultOption={show:!1,zlevel:0,z:0,left:"10%",top:60,right:"10%",bottom:70,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"},e}(vc),lw=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.getCoordSysModel=function(){return this.getReferringComponents("grid",Sr).models[0]},e.type="cartesian2dAxis",e}(vc);k(lw,y_);var uw={show:!0,zlevel:0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#6E7079",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,lineStyle:{color:["#E0E6F1"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}}},hw=S({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},uw),cw=S({boundaryGap:[0,0],axisLine:{show:"auto"},axisTick:{show:"auto"},splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:"#F4F7FD",width:1}}},uw),pw={category:hw,value:cw,time:S({scale:!0,splitNumber:6,axisLabel:{showMinLabel:!1,showMaxLabel:!1,rich:{primary:{fontWeight:"bold"}}},splitLine:{show:!1}},cw),log:C({scale:!0,logBase:10},cw)},dw={value:1,category:1,time:1,log:1};function fw(t,e,i,r){P(dw,(function(o,a){var s=S(S({},pw[a],!0),r,!0),l=function(t){function i(){for(var n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];var r=t.apply(this,n)||this;return r.type=e+"Axis."+a,r}return n(i,t),i.prototype.mergeDefaultAndTheme=function(t,e){var n=pc(this),i=n?fc(t):{};S(t,e.getTheme().get(a+"Axis")),S(t,this.getDefaultOption()),t.type=gw(t),n&&dc(t,i,n)},i.prototype.optionUpdated=function(){"category"===this.option.type&&(this.__ordinalMeta=fm.createByAxisModel(this))},i.prototype.getCategories=function(t){var e=this.option;if("category"===e.type)return t?e.data:this.__ordinalMeta.categories},i.prototype.getOrdinalMeta=function(){return this.__ordinalMeta},i.type=e+"Axis."+a,i.defaultOption=s,i}(i);t.registerComponentModel(l)})),t.registerSubTypeDefaulter(e+"Axis",gw)}function gw(t){return t.type||(t.data?"category":"value")}var yw=function(){function t(t){this.type="cartesian",this._dimList=[],this._axes={},this.name=t||""}return t.prototype.getAxis=function(t){return this._axes[t]},t.prototype.getAxes=function(){return O(this._dimList,(function(t){return this._axes[t]}),this)},t.prototype.getAxesByScale=function(t){return t=t.toLowerCase(),N(this.getAxes(),(function(e){return e.scale.type===t}))},t.prototype.addAxis=function(t){var e=t.dim;this._axes[e]=t,this._dimList.push(e)},t}(),vw=["x","y"];function mw(t){return"interval"===t.type||"time"===t.type}var _w=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="cartesian2d",e.dimensions=vw,e}return n(e,t),e.prototype.calcAffineTransform=function(){this._transform=this._invTransform=null;var t=this.getAxis("x").scale,e=this.getAxis("y").scale;if(mw(t)&&mw(e)){var n=t.getExtent(),i=e.getExtent(),r=this.dataToPoint([n[0],i[0]]),o=this.dataToPoint([n[1],i[1]]),a=n[1]-n[0],s=i[1]-i[0];if(a&&s){var l=(o[0]-r[0])/a,u=(o[1]-r[1])/s,h=r[0]-n[0]*l,c=r[1]-i[0]*u,p=this._transform=[l,0,0,u,h,c];this._invTransform=ye([],p)}}},e.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAxis("x")},e.prototype.containPoint=function(t){var e=this.getAxis("x"),n=this.getAxis("y");return e.contain(e.toLocalCoord(t[0]))&&n.contain(n.toLocalCoord(t[1]))},e.prototype.containData=function(t){return this.getAxis("x").containData(t[0])&&this.getAxis("y").containData(t[1])},e.prototype.dataToPoint=function(t,e,n){n=n||[];var i=t[0],r=t[1];if(this._transform&&null!=i&&isFinite(i)&&null!=r&&isFinite(r))return Dt(n,t,this._transform);var o=this.getAxis("x"),a=this.getAxis("y");return n[0]=o.toGlobalCoord(o.dataToCoord(i)),n[1]=a.toGlobalCoord(a.dataToCoord(r)),n},e.prototype.clampData=function(t,e){var n=this.getAxis("x").scale,i=this.getAxis("y").scale,r=n.getExtent(),o=i.getExtent(),a=n.parse(t[0]),s=i.parse(t[1]);return(e=e||[])[0]=Math.min(Math.max(Math.min(r[0],r[1]),a),Math.max(r[0],r[1])),e[1]=Math.min(Math.max(Math.min(o[0],o[1]),s),Math.max(o[0],o[1])),e},e.prototype.pointToData=function(t,e){if(e=e||[],this._invTransform)return Dt(e,t,this._invTransform);var n=this.getAxis("x"),i=this.getAxis("y");return e[0]=n.coordToData(n.toLocalCoord(t[0])),e[1]=i.coordToData(i.toLocalCoord(t[1])),e},e.prototype.getOtherAxis=function(t){return this.getAxis("x"===t.dim?"y":"x")},e.prototype.getArea=function(){var t=this.getAxis("x").getGlobalExtent(),e=this.getAxis("y").getGlobalExtent(),n=Math.min(t[0],t[1]),i=Math.min(e[0],e[1]),r=Math.max(t[0],t[1])-n,o=Math.max(e[0],e[1])-i;return new In(n,i,r,o)},e}(yw),xw=function(t){function e(e,n,i,r,o){var a=t.call(this,e,n,i)||this;return a.index=0,a.type=r||"value",a.position=o||"bottom",a}return n(e,t),e.prototype.isHorizontal=function(){var t=this.position;return"top"===t||"bottom"===t},e.prototype.getGlobalExtent=function(t){var e=this.getExtent();return e[0]=this.toGlobalCoord(e[0]),e[1]=this.toGlobalCoord(e[1]),t&&e[0]>e[1]&&e.reverse(),e},e.prototype.pointToData=function(t,e){return this.coordToData(this.toLocalCoord(t["x"===this.dim?0:1]),e)},e.prototype.setCategorySortInfo=function(t){if("category"!==this.type)return!1;this.model.option.categorySortInfo=t,this.scale.setSortInfo(t)},e}(V_);function bw(t,e,n){n=n||{};var i=t.coordinateSystem,r=e.axis,o={},a=r.getAxesOnZeroOf()[0],s=r.position,l=a?"onZero":s,u=r.dim,h=i.getRect(),c=[h.x,h.x+h.width,h.y,h.y+h.height],p={left:0,right:1,top:0,bottom:1,onZero:2},d=e.get("offset")||0,f="x"===u?[c[2]-d,c[3]+d]:[c[0]-d,c[1]+d];if(a){var g=a.toGlobalCoord(a.dataToCoord(0));f[p.onZero]=Math.max(Math.min(g,f[1]),f[0])}o.position=["y"===u?f[p[l]]:c[0],"x"===u?f[p[l]]:c[3]],o.rotation=Math.PI/2*("x"===u?0:1);o.labelDirection=o.tickDirection=o.nameDirection={top:-1,bottom:1,left:-1,right:1}[s],o.labelOffset=a?f[p[s]]-f[p.onZero]:0,e.get(["axisTick","inside"])&&(o.tickDirection=-o.tickDirection),J(n.labelInside,e.get(["axisLabel","inside"]))&&(o.labelDirection=-o.labelDirection);var y=e.get(["axisLabel","rotate"]);return o.labelRotate="top"===l?-y:y,o.z2=1,o}function ww(t){return"cartesian2d"===t.get("coordinateSystem")}function Sw(t){var e={xAxisModel:null,yAxisModel:null};return P(e,(function(n,i){var r=i.replace(/Model$/,""),o=t.getReferringComponents(r,Sr).models[0];e[i]=o})),e}var Mw=function(){function t(t,e,n){this.type="grid",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=vw,this._initCartesian(t,e,n),this.model=t}return t.prototype.getRect=function(){return this._rect},t.prototype.update=function(t,e){var n=this._axesMap;this._updateScale(t,this.model),P(n.x,(function(t){l_(t.scale,t.model)})),P(n.y,(function(t){l_(t.scale,t.model)}));var i={};P(n.x,(function(t){Cw(n,"y",t,i)})),P(n.y,(function(t){Cw(n,"x",t,i)})),this.resize(this.model,e)},t.prototype.resize=function(t,e,n){var i=t.getBoxLayoutParams(),r=!n&&t.get("containLabel"),o=hc(i,{width:e.getWidth(),height:e.getHeight()});this._rect=o;var a=this._axesList;function s(){P(a,(function(t){var e=t.isHorizontal(),n=e?[0,o.width]:[0,o.height],i=t.inverse?1:0;t.setExtent(n[i],n[1-i]),function(t,e){var n=t.getExtent(),i=n[0]+n[1];t.toGlobalCoord="x"===t.dim?function(t){return t+e}:function(t){return i-t+e},t.toLocalCoord="x"===t.dim?function(t){return t-e}:function(t){return i-t+e}}(t,e?o.x:o.y)}))}s(),r&&(P(a,(function(t){if(!t.model.get(["axisLabel","inside"])){var e=function(t){var e=t.model,n=t.scale;if(e.get(["axisLabel","show"])&&!n.isBlank()){var i,r,o=n.getExtent();r=n instanceof Sm?n.count():(i=n.getTicks()).length;var a,s=t.getLabelModel(),l=h_(t),u=1;r>40&&(u=Math.ceil(r/40));for(var h=0;h<r;h+=u){var c=l(i?i[h]:{value:o[0]+h},h),p=p_(s.getTextRect(c),s.get("rotate")||0);a?a.union(p):a=p}return a}}(t);if(e){var n=t.isHorizontal()?"height":"width",i=t.model.get(["axisLabel","margin"]);o[n]-=e[n]+i,"top"===t.position?o.y+=e.height+i:"left"===t.position&&(o.x+=e.width+i)}}})),s()),P(this._coordsList,(function(t){t.calcAffineTransform()}))},t.prototype.getAxis=function(t,e){var n=this._axesMap[t];if(null!=n)return n[e||0]},t.prototype.getAxes=function(){return this._axesList.slice()},t.prototype.getCartesian=function(t,e){if(null!=t&&null!=e){var n="x"+t+"y"+e;return this._coordsMap[n]}U(t)&&(e=t.yAxisIndex,t=t.xAxisIndex);for(var i=0,r=this._coordsList;i<r.length;i++)if(r[i].getAxis("x").index===t||r[i].getAxis("y").index===e)return r[i]},t.prototype.getCartesians=function(){return this._coordsList.slice()},t.prototype.convertToPixel=function(t,e,n){var i=this._findConvertTarget(e);return i.cartesian?i.cartesian.dataToPoint(n):i.axis?i.axis.toGlobalCoord(i.axis.dataToCoord(n)):null},t.prototype.convertFromPixel=function(t,e,n){var i=this._findConvertTarget(e);return i.cartesian?i.cartesian.pointToData(n):i.axis?i.axis.coordToData(i.axis.toLocalCoord(n)):null},t.prototype._findConvertTarget=function(t){var e,n,i=t.seriesModel,r=t.xAxisModel||i&&i.getReferringComponents("xAxis",Sr).models[0],o=t.yAxisModel||i&&i.getReferringComponents("yAxis",Sr).models[0],a=t.gridModel,s=this._coordsList;if(i)A(s,e=i.coordinateSystem)<0&&(e=null);else if(r&&o)e=this.getCartesian(r.componentIndex,o.componentIndex);else if(r)n=this.getAxis("x",r.componentIndex);else if(o)n=this.getAxis("y",o.componentIndex);else if(a){a.coordinateSystem===this&&(e=this._coordsList[0])}return{cartesian:e,axis:n}},t.prototype.containPoint=function(t){var e=this._coordsList[0];if(e)return e.containPoint(t)},t.prototype._initCartesian=function(t,e,n){var i=this,r=this,o={left:!1,right:!1,top:!1,bottom:!1},a={x:{},y:{}},s={x:0,y:0};if(e.eachComponent("xAxis",l("x"),this),e.eachComponent("yAxis",l("y"),this),!s.x||!s.y)return this._axesMap={},void(this._axesList=[]);function l(e){return function(n,i){if(Tw(n,t)){var l=n.get("position");"x"===e?"top"!==l&&"bottom"!==l&&(l=o.bottom?"top":"bottom"):"left"!==l&&"right"!==l&&(l=o.left?"right":"left"),o[l]=!0;var u=new xw(e,u_(n),[0,0],n.get("type"),l),h="category"===u.type;u.onBand=h&&n.get("boundaryGap"),u.inverse=n.get("inverse"),n.axis=u,u.model=n,u.grid=r,u.index=i,r._axesList.push(u),a[e][i]=u,s[e]++}}}this._axesMap=a,P(a.x,(function(e,n){P(a.y,(function(r,o){var a="x"+n+"y"+o,s=new _w(a);s.master=i,s.model=t,i._coordsMap[a]=s,i._coordsList.push(s),s.addAxis(e),s.addAxis(r)}))}))},t.prototype._updateScale=function(t,e){function n(t,e){P(g_(t,e.dim),(function(n){e.scale.unionExtentFromData(t,n)}))}P(this._axesList,(function(t){if(t.scale.setExtent(1/0,-1/0),"category"===t.type){var e=t.model.get("categorySortInfo");t.scale.setSortInfo(e)}})),t.eachSeries((function(t){if(ww(t)){var i=Sw(t),r=i.xAxisModel,o=i.yAxisModel;if(!Tw(r,e)||!Tw(o,e))return;var a=this.getCartesian(r.componentIndex,o.componentIndex),s=t.getData(),l=a.getAxis("x"),u=a.getAxis("y");"list"===s.type&&(n(s,l),n(s,u))}}),this)},t.prototype.getTooltipAxes=function(t){var e=[],n=[];return P(this.getCartesians(),(function(i){var r=null!=t&&"auto"!==t?i.getAxis(t):i.getBaseAxis(),o=i.getOtherAxis(r);A(e,r)<0&&e.push(r),A(n,o)<0&&n.push(o)})),{baseAxes:e,otherAxes:n}},t.create=function(e,n){var i=[];return e.eachComponent("grid",(function(r,o){var a=new t(r,e,n);a.name="grid_"+o,a.resize(r,n,!0),r.coordinateSystem=a,i.push(a)})),e.eachSeries((function(t){if(ww(t)){var e=Sw(t),n=e.xAxisModel,i=e.yAxisModel,r=n.getCoordSysModel();0;var o=r.coordinateSystem;t.coordinateSystem=o.getCartesian(n.componentIndex,i.componentIndex)}})),i},t.dimensions=vw,t}();function Tw(t,e){return t.getCoordSysModel()===e}function Cw(t,e,n,i){n.getAxesOnZeroOf=function(){return r?[r]:[]};var r,o=t[e],a=n.model,s=a.get(["axisLine","onZero"]),l=a.get(["axisLine","onZeroAxisIndex"]);if(s){if(null!=l)Iw(o[l])&&(r=o[l]);else for(var u in o)if(o.hasOwnProperty(u)&&Iw(o[u])&&!i[h(o[u])]){r=o[u];break}r&&(i[h(r)]=!0)}function h(t){return t.dim+"_"+t.index}}function Iw(t){return t&&"category"!==t.type&&"time"!==t.type&&function(t){var e=t.scale.getExtent(),n=e[0],i=e[1];return!(n>0&&i>0||n<0&&i<0)}(t)}var Aw=Math.PI,Dw=function(){function t(t,e){this.group=new ki,this.opt=e,this.axisModel=t,C(e,{labelOffset:0,nameDirection:1,tickDirection:1,labelDirection:1,silent:!0,handleAutoShown:function(){return!0}});var n=new ki({x:e.position[0],y:e.position[1],rotation:e.rotation});n.updateTransform(),this._transformGroup=n}return t.prototype.hasBuilder=function(t){return!!kw[t]},t.prototype.add=function(t){kw[t](this.opt,this.axisModel,this.group,this._transformGroup)},t.prototype.getGroup=function(){return this.group},t.innerTextLayout=function(t,e,n){var i,r,o=Zi(e-t);return ji(o)?(r=n>0?"top":"bottom",i="center"):ji(o-Aw)?(r=n>0?"bottom":"top",i="center"):(r="middle",i=o>0&&o<Aw?n>0?"right":"left":n>0?"left":"right"),{rotation:o,textAlign:i,textVerticalAlign:r}},t.makeAxisEventDataBase=function(t){var e={componentType:t.mainType,componentIndex:t.componentIndex};return e[t.mainType+"Index"]=t.componentIndex,e},t.isLabelSilent=function(t){var e=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||e&&e.show)},t}(),kw={axisLine:function(t,e,n,i){var r=e.get(["axisLine","show"]);if("auto"===r&&t.handleAutoShown&&(r=t.handleAutoShown("axisLine")),r){var o=e.axis.getExtent(),a=i.transform,s=[o[0],0],l=[o[1],0];a&&(Dt(s,s,a),Dt(l,l,a));var u=T({lineCap:"round"},e.getModel(["axisLine","lineStyle"]).getLineStyle()),h=new Fl({subPixelOptimize:!0,shape:{x1:s[0],y1:s[1],x2:l[0],y2:l[1]},style:u,strokeContainThreshold:t.strokeContainThreshold||5,silent:!0,z2:1});h.anid="line",n.add(h);var c=e.get(["axisLine","symbol"]),p=e.get(["axisLine","symbolSize"]),d=e.get(["axisLine","symbolOffset"])||0;if("number"==typeof d&&(d=[d,d]),null!=c){"string"==typeof c&&(c=[c,c]),"string"!=typeof p&&"number"!=typeof p||(p=[p,p]);var f=p[0],g=p[1];P([{rotate:t.rotation+Math.PI/2,offset:d[0],r:0},{rotate:t.rotation-Math.PI/2,offset:d[1],r:Math.sqrt((s[0]-l[0])*(s[0]-l[0])+(s[1]-l[1])*(s[1]-l[1]))}],(function(e,i){if("none"!==c[i]&&null!=c[i]){var r=Rg(c[i],-f/2,-g/2,f,g,u.stroke,!0),o=e.r+e.offset;r.attr({rotation:e.rotate,x:s[0]+o*Math.cos(t.rotation),y:s[1]-o*Math.sin(t.rotation),silent:!0,z2:11}),n.add(r)}}))}}},axisTickLabel:function(t,e,n,i){var r=function(t,e,n,i){var r=n.axis,o=n.getModel("axisTick"),a=o.get("show");"auto"===a&&i.handleAutoShown&&(a=i.handleAutoShown("axisTick"));if(!a||r.scale.isBlank())return;for(var s=o.getModel("lineStyle"),l=i.tickDirection*o.get("length"),u=Rw(r.getTicksCoords(),e.transform,l,C(s.getLineStyle(),{stroke:n.get(["axisLine","lineStyle","color"])}),"ticks"),h=0;h<u.length;h++)t.add(u[h]);return u}(n,i,e,t),o=function(t,e,n,i){var r=n.axis;if(!J(i.axisLabelShow,n.get(["axisLabel","show"]))||r.scale.isBlank())return;var o=n.getModel("axisLabel"),a=o.get("margin"),s=r.getViewLabels(),l=(J(i.labelRotate,o.get("rotate"))||0)*Aw/180,u=Dw.innerTextLayout(i.rotation,l,i.labelDirection),h=n.getCategories&&n.getCategories(!0),c=[],p=Dw.isLabelSilent(n),d=n.get("triggerEvent");return P(s,(function(s,l){var f="ordinal"===r.scale.type?r.scale.getRawOrdinalNumber(s.tickValue):s.tickValue,g=s.formattedLabel,y=s.rawLabel,v=o;if(h&&h[f]){var m=h[f];U(m)&&m.textStyle&&(v=new oh(m.textStyle,o,n.ecModel))}var _=v.getTextColor()||n.get(["axisLine","lineStyle","color"]),x=r.dataToCoord(f),b=new $a({x:x,y:i.labelOffset+i.labelDirection*a,rotation:u.rotation,silent:p,z2:10,style:Hu(v,{text:g,align:v.getShallow("align",!0)||u.textAlign,verticalAlign:v.getShallow("verticalAlign",!0)||v.getShallow("baseline",!0)||u.textVerticalAlign,fill:"function"==typeof _?_("category"===r.type?y:"value"===r.type?f+"":f,l):_})});if(b.anid="label_"+f,d){var w=Dw.makeAxisEventDataBase(n);w.targetType="axisLabel",w.value=y,os(b).eventData=w}e.add(b),b.updateTransform(),c.push(b),t.add(b),b.decomposeTransform()})),c}(n,i,e,t);!function(t,e,n){if(f_(t.axis))return;var i=t.get(["axisLabel","showMinLabel"]),r=t.get(["axisLabel","showMaxLabel"]);n=n||[];var o=(e=e||[])[0],a=e[1],s=e[e.length-1],l=e[e.length-2],u=n[0],h=n[1],c=n[n.length-1],p=n[n.length-2];!1===i?(Lw(o),Lw(u)):Pw(o,a)&&(i?(Lw(a),Lw(h)):(Lw(o),Lw(u)));!1===r?(Lw(s),Lw(c)):Pw(l,s)&&(r?(Lw(l),Lw(p)):(Lw(s),Lw(c)))}(e,o,r),function(t,e,n,i){var r=n.axis,o=n.getModel("minorTick");if(!o.get("show")||r.scale.isBlank())return;var a=r.getMinorTicksCoords();if(!a.length)return;for(var s=o.getModel("lineStyle"),l=i*o.get("length"),u=C(s.getLineStyle(),C(n.getModel("axisTick").getLineStyle(),{stroke:n.get(["axisLine","lineStyle","color"])})),h=0;h<a.length;h++)for(var c=Rw(a[h],e.transform,l,u,"minorticks_"+h),p=0;p<c.length;p++)t.add(c[p])}(n,i,e,t.tickDirection)},axisName:function(t,e,n,i){var r=J(t.axisName,e.get("name"));if(r){var o,a,s=e.get("nameLocation"),l=t.nameDirection,u=e.getModel("nameTextStyle"),h=e.get("nameGap")||0,c=e.axis.getExtent(),p=c[0]>c[1]?-1:1,d=["start"===s?c[0]-p*h:"end"===s?c[1]+p*h:(c[0]+c[1])/2,Ow(s)?t.labelOffset+l*h:0],f=e.get("nameRotate");null!=f&&(f=f*Aw/180),Ow(s)?o=Dw.innerTextLayout(t.rotation,null!=f?f:t.rotation,l):(o=function(t,e,n,i){var r,o,a=Zi(n-t),s=i[0]>i[1],l="start"===e&&!s||"start"!==e&&s;ji(a-Aw/2)?(o=l?"bottom":"top",r="center"):ji(a-1.5*Aw)?(o=l?"top":"bottom",r="center"):(o="middle",r=a<1.5*Aw&&a>Aw/2?l?"left":"right":l?"right":"left");return{rotation:a,textAlign:r,textVerticalAlign:o}}(t.rotation,s,f||0,c),null!=(a=t.axisNameAvailableWidth)&&(a=Math.abs(a/Math.sin(o.rotation)),!isFinite(a)&&(a=null)));var g=u.getFont(),y=e.get("nameTruncate",!0)||{},v=y.ellipsis,m=J(t.nameTruncateMaxWidth,y.maxWidth,a),_=e.get("tooltip",!0),x=e.mainType,b={componentType:x,name:r,$vars:["name"]};b[x+"Index"]=e.componentIndex;var w=new $a({x:d[0],y:d[1],rotation:o.rotation,silent:Dw.isLabelSilent(e),style:Hu(u,{text:r,font:g,overflow:"truncate",width:m,ellipsis:v,fill:u.getTextColor()||e.get(["axisLine","lineStyle","color"]),align:u.get("align")||o.textAlign,verticalAlign:u.get("verticalAlign")||o.textVerticalAlign}),z2:1});if(w.tooltip=_&&_.show?T({content:r,formatter:function(){return r},formatterParams:b},_):null,w.__fullText=r,w.anid="name",e.get("triggerEvent")){var S=Dw.makeAxisEventDataBase(e);S.targetType="axisName",S.name=r,os(w).eventData=S}i.add(w),w.updateTransform(),n.add(w),w.decomposeTransform()}}};function Lw(t){t&&(t.ignore=!0)}function Pw(t,e){var n=t&&t.getBoundingRect().clone(),i=e&&e.getBoundingRect().clone();if(n&&i){var r=he([]);return fe(r,r,-t.rotation),n.applyTransform(pe([],r,t.getLocalTransform())),i.applyTransform(pe([],r,e.getLocalTransform())),n.intersect(i)}}function Ow(t){return"middle"===t||"center"===t}function Rw(t,e,n,i,r){for(var o=[],a=[],s=[],l=0;l<t.length;l++){var u=t[l].coord;a[0]=u,a[1]=0,s[0]=u,s[1]=n,e&&(Dt(a,a,e),Dt(s,s,e));var h=new Fl({subPixelOptimize:!0,shape:{x1:a[0],y1:a[1],x2:s[0],y2:s[1]},style:i,z2:2,autoBatch:!0,silent:!0});h.anid=r+"_"+t[l].tickValue,o.push(h)}return o}function Nw(t,e){var n={axesInfo:{},seriesInvolved:!1,coordSysAxesInfo:{},coordSysMap:{}};return function(t,e,n){var i=e.getComponent("tooltip"),r=e.getComponent("axisPointer"),o=r.get("link",!0)||[],a=[];P(n.getCoordinateSystems(),(function(n){if(n.axisPointerEnabled){var s=Fw(n.model),l=t.coordSysAxesInfo[s]={};t.coordSysMap[s]=n;var u=n.model.getModel("tooltip",i);if(P(n.getAxes(),z(d,!1,null)),n.getTooltipAxes&&i&&u.get("show")){var h="axis"===u.get("trigger"),c="cross"===u.get(["axisPointer","type"]),p=n.getTooltipAxes(u.get(["axisPointer","axis"]));(h||c)&&P(p.baseAxes,z(d,!c||"cross",h)),c&&P(p.otherAxes,z(d,"cross",!1))}}function d(i,s,h){var c=h.model.getModel("axisPointer",r),p=c.get("show");if(p&&("auto"!==p||i||Vw(c))){null==s&&(s=c.get("triggerTooltip"));var d=(c=i?function(t,e,n,i,r,o){var a=e.getModel("axisPointer"),s={};P(["type","snap","lineStyle","shadowStyle","label","animation","animationDurationUpdate","animationEasingUpdate","z"],(function(t){s[t]=w(a.get(t))})),s.snap="category"!==t.type&&!!o,"cross"===a.get("type")&&(s.type="line");var l=s.label||(s.label={});if(null==l.show&&(l.show=!1),"cross"===r){var u=a.get(["label","show"]);if(l.show=null==u||u,!o){var h=s.lineStyle=a.get("crossStyle");h&&C(l,h.textStyle)}}return t.model.getModel("axisPointer",new oh(s,n,i))}(h,u,r,e,i,s):c).get("snap"),f=Fw(h.model),g=s||d||"category"===h.type,y=t.axesInfo[f]={key:f,axis:h,coordSys:n,axisPointerModel:c,triggerTooltip:s,involveSeries:g,snap:d,useHandle:Vw(c),seriesModels:[],linkGroup:null};l[f]=y,t.seriesInvolved=t.seriesInvolved||g;var v=function(t,e){for(var n=e.model,i=e.dim,r=0;r<t.length;r++){var o=t[r]||{};if(Ew(o[i+"AxisId"],n.id)||Ew(o[i+"AxisIndex"],n.componentIndex)||Ew(o[i+"AxisName"],n.name))return r}}(o,h);if(null!=v){var m=a[v]||(a[v]={axesInfo:{}});m.axesInfo[f]=y,m.mapper=o[v].mapper,y.linkGroup=m}}}}))}(n,t,e),n.seriesInvolved&&function(t,e){e.eachSeries((function(e){var n=e.coordinateSystem,i=e.get(["tooltip","trigger"],!0),r=e.get(["tooltip","show"],!0);n&&"none"!==i&&!1!==i&&"item"!==i&&!1!==r&&!1!==e.get(["axisPointer","show"],!0)&&P(t.coordSysAxesInfo[Fw(n.model)],(function(t){var i=t.axis;n.getAxis(i.dim)===i&&(t.seriesModels.push(e),null==t.seriesDataCount&&(t.seriesDataCount=0),t.seriesDataCount+=e.getData().count())}))}))}(n,t),n}function Ew(t,e){return"all"===t||V(t)&&A(t,e)>=0||t===e}function Bw(t){var e=zw(t);if(e){var n=e.axisPointerModel,i=e.axis.scale,r=n.option,o=n.get("status"),a=n.get("value");null!=a&&(a=i.parse(a));var s=Vw(n);null==o&&(r.status=s?"show":"hide");var l=i.getExtent().slice();l[0]>l[1]&&l.reverse(),(null==a||a>l[1])&&(a=l[1]),a<l[0]&&(a=l[0]),r.value=a,s&&(r.status=e.axis.scale.isBlank()?"hide":"show")}}function zw(t){var e=(t.ecModel.getComponent("axisPointer")||{}).coordSysAxesInfo;return e&&e.axesInfo[Fw(t)]}function Vw(t){return!!t.get(["handle","show"])}function Fw(t){return t.type+"||"+t.id}var Hw={},Gw=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(e,n,i,r){this.axisPointerClass&&Bw(e),t.prototype.render.apply(this,arguments),this._doUpdateAxisPointerClass(e,i,!0)},e.prototype.updateAxisPointer=function(t,e,n,i){this._doUpdateAxisPointerClass(t,n,!1)},e.prototype.remove=function(t,e){var n=this._axisPointer;n&&n.remove(e)},e.prototype.dispose=function(e,n){this._disposeAxisPointer(n),t.prototype.dispose.apply(this,arguments)},e.prototype._doUpdateAxisPointerClass=function(t,n,i){var r=e.getAxisPointerClass(this.axisPointerClass);if(r){var o=function(t){var e=zw(t);return e&&e.axisPointerModel}(t);o?(this._axisPointer||(this._axisPointer=new r)).render(t,o,n,i):this._disposeAxisPointer(n)}},e.prototype._disposeAxisPointer=function(t){this._axisPointer&&this._axisPointer.dispose(t),this._axisPointer=null},e.registerAxisPointerClass=function(t,e){Hw[t]=e},e.getAxisPointerClass=function(t){return t&&Hw[t]},e.type="axis",e}(Fd),Ww=xr();var Uw=["axisLine","axisTickLabel","axisName"],Yw=["splitArea","splitLine","minorSplitLine"],Xw=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.axisPointerClass="CartesianAxisPointer",n}return n(e,t),e.prototype.render=function(e,n,i,r){this.group.removeAll();var o=this._axisGroup;if(this._axisGroup=new ki,this.group.add(this._axisGroup),e.get("show")){var a=e.getCoordSysModel(),s=bw(a,e),l=new Dw(e,T({handleAutoShown:function(t){for(var n=a.coordinateSystem.getCartesians(),i=0;i<n.length;i++){var r=n[i].getOtherAxis(e.axis).type;if("value"===r||"log"===r)return!0}return!1}},s));P(Uw,l.add,l),this._axisGroup.add(l.getGroup()),P(Yw,(function(t){e.get([t,"show"])&&Zw[t](this,this._axisGroup,e,a)}),this),Du(o,this._axisGroup,e),t.prototype.render.call(this,e,n,i,r)}},e.prototype.remove=function(){Ww(this).splitAreaColors=null},e.type="cartesianAxis",e}(Gw),Zw={splitLine:function(t,e,n,i){var r=n.axis;if(!r.scale.isBlank()){var o=n.getModel("splitLine"),a=o.getModel("lineStyle"),s=a.get("color");s=V(s)?s:[s];for(var l=i.coordinateSystem.getRect(),u=r.isHorizontal(),h=0,c=r.getTicksCoords({tickModel:o}),p=[],d=[],f=a.getLineStyle(),g=0;g<c.length;g++){var y=r.toGlobalCoord(c[g].coord);u?(p[0]=y,p[1]=l.y,d[0]=y,d[1]=l.y+l.height):(p[0]=l.x,p[1]=y,d[0]=l.x+l.width,d[1]=y);var v=h++%s.length,m=c[g].tickValue;e.add(new Fl({anid:null!=m?"line_"+c[g].tickValue:null,subPixelOptimize:!0,autoBatch:!0,shape:{x1:p[0],y1:p[1],x2:d[0],y2:d[1]},style:C({stroke:s[v]},f),silent:!0}))}}},minorSplitLine:function(t,e,n,i){var r=n.axis,o=n.getModel("minorSplitLine").getModel("lineStyle"),a=i.coordinateSystem.getRect(),s=r.isHorizontal(),l=r.getMinorTicksCoords();if(l.length)for(var u=[],h=[],c=o.getLineStyle(),p=0;p<l.length;p++)for(var d=0;d<l[p].length;d++){var f=r.toGlobalCoord(l[p][d].coord);s?(u[0]=f,u[1]=a.y,h[0]=f,h[1]=a.y+a.height):(u[0]=a.x,u[1]=f,h[0]=a.x+a.width,h[1]=f),e.add(new Fl({anid:"minor_line_"+l[p][d].tickValue,subPixelOptimize:!0,autoBatch:!0,shape:{x1:u[0],y1:u[1],x2:h[0],y2:h[1]},style:c,silent:!0}))}},splitArea:function(t,e,n,i){!function(t,e,n,i){var r=n.axis;if(!r.scale.isBlank()){var o=n.getModel("splitArea"),a=o.getModel("areaStyle"),s=a.get("color"),l=i.coordinateSystem.getRect(),u=r.getTicksCoords({tickModel:o,clamp:!0});if(u.length){var h=s.length,c=Ww(t).splitAreaColors,p=ut(),d=0;if(c)for(var f=0;f<u.length;f++){var g=c.get(u[f].tickValue);if(null!=g){d=(g+(h-1)*f)%h;break}}var y=r.toGlobalCoord(u[0].coord),v=a.getAreaStyle();for(s=V(s)?s:[s],f=1;f<u.length;f++){var m=r.toGlobalCoord(u[f].coord),_=void 0,x=void 0,b=void 0,w=void 0;r.isHorizontal()?(_=y,x=l.y,b=m-_,w=l.height,y=_+b):(_=l.x,x=y,b=l.width,y=x+(w=m-x));var S=u[f-1].tickValue;null!=S&&p.set(S,d),e.add(new ja({anid:null!=S?"area_"+S:null,shape:{x:_,y:x,width:b,height:w},style:C({fill:s[d]},v),autoBatch:!0,silent:!0})),d=(d+1)%h}Ww(t).splitAreaColors=p}}}(t,e,n,i)}},jw=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="xAxis",e}(Xw),qw=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=jw.type,e}return n(e,t),e.type="yAxis",e}(Xw),Kw=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="grid",e}return n(e,t),e.prototype.render=function(t,e){this.group.removeAll(),t.get("show")&&this.group.add(new ja({shape:t.coordinateSystem.getRect(),style:C({fill:t.get("backgroundColor")},t.getItemStyle()),silent:!0,z2:-1}))},e.type="grid",e}(Fd),$w={offset:0};function Jw(t){t.registerComponentView(Kw),t.registerComponentModel(sw),t.registerCoordinateSystem("cartesian2d",Mw),fw(t,"x",lw,$w),fw(t,"y",lw,$w),t.registerComponentView(jw),t.registerComponentView(qw),t.registerPreprocessor((function(t){t.xAxis&&t.yAxis&&!t.grid&&(t.grid={})}))}var Qw=xr(),tS=w,eS=B;function nS(t,e,n,i){iS(Qw(n).lastProp,i)||(Qw(n).lastProp=i,e?_u(n,i,t):(n.stopAnimation(),n.attr(i)))}function iS(t,e){if(U(t)&&U(e)){var n=!0;return P(e,(function(e,i){n=n&&iS(t[i],e)})),!!n}return t===e}function rS(t,e){t[e.get(["label","show"])?"show":"hide"]()}function oS(t){return{x:t.x||0,y:t.y||0,rotation:t.rotation||0}}function aS(t,e,n){var i=e.get("z"),r=e.get("zlevel");t&&t.traverse((function(t){"group"!==t.type&&(null!=i&&(t.z=i),null!=r&&(t.zlevel=r),t.silent=n)}))}function sS(t,e,n,i,r){var o=lS(n.get("value"),e.axis,e.ecModel,n.get("seriesDataIndices"),{precision:n.get(["label","precision"]),formatter:n.get(["label","formatter"])}),a=n.getModel("label"),s=jh(a.get("padding")||0),l=a.getFont(),u=On(o,l),h=r.position,c=u.width+s[1]+s[3],p=u.height+s[0]+s[2],d=r.align;"right"===d&&(h[0]-=c),"center"===d&&(h[0]-=c/2);var f=r.verticalAlign;"bottom"===f&&(h[1]-=p),"middle"===f&&(h[1]-=p/2),function(t,e,n,i){var r=i.getWidth(),o=i.getHeight();t[0]=Math.min(t[0]+e,r)-e,t[1]=Math.min(t[1]+n,o)-n,t[0]=Math.max(t[0],0),t[1]=Math.max(t[1],0)}(h,c,p,i);var g=a.get("backgroundColor");g&&"auto"!==g||(g=e.get(["axisLine","lineStyle","color"])),t.label={x:h[0],y:h[1],style:Hu(a,{text:o,font:l,fill:a.getTextColor(),padding:s,backgroundColor:g}),z2:10}}function lS(t,e,n,i,r){t=e.scale.parse(t);var o=e.scale.getLabel({value:t},{precision:r.precision}),a=r.formatter;if(a){var s={value:c_(e,{value:t}),axisDimension:e.dim,axisIndex:e.index,seriesData:[]};P(i,(function(t){var e=n.getSeriesByIndex(t.seriesIndex),i=t.dataIndexInside,r=e&&e.getDataParams(i);r&&s.seriesData.push(r)})),H(a)?o=a.replace("{value}",o):F(a)&&(o=a(s))}return o}function uS(t,e,n){var i=[1,0,0,1,0,0];return fe(i,i,n.rotation),de(i,i,n.position),Cu([t.dataToCoord(e),(n.labelOffset||0)+(n.labelDirection||1)*(n.labelMargin||0)],i)}var hS=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.makeElOption=function(t,e,n,i,r){var o=n.axis,a=o.grid,s=i.get("type"),l=cS(a,o).getOtherAxis(o).getGlobalExtent(),u=o.toGlobalCoord(o.dataToCoord(e,!0));if(s&&"none"!==s){var h=function(t){var e,n=t.get("type"),i=t.getModel(n+"Style");return"line"===n?(e=i.getLineStyle()).fill=null:"shadow"===n&&((e=i.getAreaStyle()).stroke=null),e}(i),c=pS[s](o,u,l);c.style=h,t.graphicKey=c.type,t.pointer=c}!function(t,e,n,i,r,o){var a=Dw.innerTextLayout(n.rotation,0,n.labelDirection);n.labelMargin=r.get(["label","margin"]),sS(e,i,r,o,{position:uS(i.axis,t,n),align:a.textAlign,verticalAlign:a.textVerticalAlign})}(e,t,bw(a.model,n),n,i,r)},e.prototype.getHandleTransform=function(t,e,n){var i=bw(e.axis.grid.model,e,{labelInside:!1});i.labelMargin=n.get(["handle","margin"]);var r=uS(e.axis,t,i);return{x:r[0],y:r[1],rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},e.prototype.updateHandleTransform=function(t,e,n,i){var r=n.axis,o=r.grid,a=r.getGlobalExtent(!0),s=cS(o,r).getOtherAxis(r).getGlobalExtent(),l="x"===r.dim?0:1,u=[t.x,t.y];u[l]+=e[l],u[l]=Math.min(a[1],u[l]),u[l]=Math.max(a[0],u[l]);var h=(s[1]+s[0])/2,c=[h,h];c[l]=u[l];return{x:u[0],y:u[1],rotation:t.rotation,cursorPoint:c,tooltipOption:[{verticalAlign:"middle"},{align:"center"}][l]}},e}(function(){function t(){this._dragging=!1,this.animationThreshold=15}return t.prototype.render=function(t,e,n,i){var r=e.get("value"),o=e.get("status");if(this._axisModel=t,this._axisPointerModel=e,this._api=n,i||this._lastValue!==r||this._lastStatus!==o){this._lastValue=r,this._lastStatus=o;var a=this._group,s=this._handle;if(!o||"hide"===o)return a&&a.hide(),void(s&&s.hide());a&&a.show(),s&&s.show();var l={};this.makeElOption(l,r,t,e,n);var u=l.graphicKey;u!==this._lastGraphicKey&&this.clear(n),this._lastGraphicKey=u;var h=this._moveAnimation=this.determineAnimation(t,e);if(a){var c=z(nS,e,h);this.updatePointerEl(a,l,c),this.updateLabelEl(a,l,c,e)}else a=this._group=new ki,this.createPointerEl(a,l,t,e),this.createLabelEl(a,l,t,e),n.getZr().add(a);aS(a,e,!0),this._renderHandle(r)}},t.prototype.remove=function(t){this.clear(t)},t.prototype.dispose=function(t){this.clear(t)},t.prototype.determineAnimation=function(t,e){var n=e.get("animation"),i=t.axis,r="category"===i.type,o=e.get("snap");if(!o&&!r)return!1;if("auto"===n||null==n){var a=this.animationThreshold;if(r&&i.getBandWidth()>a)return!0;if(o){var s=zw(t).seriesDataCount,l=i.getExtent();return Math.abs(l[0]-l[1])/s>a}return!1}return!0===n},t.prototype.makeElOption=function(t,e,n,i,r){},t.prototype.createPointerEl=function(t,e,n,i){var r=e.pointer;if(r){var o=Qw(t).pointerEl=new Nu[r.type](tS(e.pointer));t.add(o)}},t.prototype.createLabelEl=function(t,e,n,i){if(e.label){var r=Qw(t).labelEl=new $a(tS(e.label));t.add(r),rS(r,i)}},t.prototype.updatePointerEl=function(t,e,n){var i=Qw(t).pointerEl;i&&e.pointer&&(i.setStyle(e.pointer.style),n(i,{shape:e.pointer.shape}))},t.prototype.updateLabelEl=function(t,e,n,i){var r=Qw(t).labelEl;r&&(r.setStyle(e.label.style),n(r,{x:e.label.x,y:e.label.y}),rS(r,i))},t.prototype._renderHandle=function(t){if(!this._dragging&&this.updateHandleTransform){var e,n=this._axisPointerModel,i=this._api.getZr(),r=this._handle,o=n.getModel("handle"),a=n.get("status");if(!o.get("show")||!a||"hide"===a)return r&&i.remove(r),void(this._handle=null);this._handle||(e=!0,r=this._handle=Pu(o.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(t){Kt(t.event)},onmousedown:eS(this._onHandleDragMove,this,0,0),drift:eS(this._onHandleDragMove,this),ondragend:eS(this._onHandleDragEnd,this)}),i.add(r)),aS(r,n,!1),r.setStyle(o.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var s=o.get("size");V(s)||(s=[s,s]),r.scaleX=s[0]/2,r.scaleY=s[1]/2,tf(this,"_doDispatchAxisPointer",o.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,e)}},t.prototype._moveHandleToValue=function(t,e){nS(this._axisPointerModel,!e&&this._moveAnimation,this._handle,oS(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},t.prototype._onHandleDragMove=function(t,e){var n=this._handle;if(n){this._dragging=!0;var i=this.updateHandleTransform(oS(n),[t,e],this._axisModel,this._axisPointerModel);this._payloadInfo=i,n.stopAnimation(),n.attr(oS(i)),Qw(n).lastProp=null,this._doDispatchAxisPointer()}},t.prototype._doDispatchAxisPointer=function(){if(this._handle){var t=this._payloadInfo,e=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:t.cursorPoint[0],y:t.cursorPoint[1],tooltipOption:t.tooltipOption,axesInfo:[{axisDim:e.axis.dim,axisIndex:e.componentIndex}]})}},t.prototype._onHandleDragEnd=function(){if(this._dragging=!1,this._handle){var t=this._axisPointerModel.get("value");this._moveHandleToValue(t),this._api.dispatchAction({type:"hideTip"})}},t.prototype.clear=function(t){this._lastValue=null,this._lastStatus=null;var e=t.getZr(),n=this._group,i=this._handle;e&&n&&(this._lastGraphicKey=null,n&&e.remove(n),i&&e.remove(i),this._group=null,this._handle=null,this._payloadInfo=null)},t.prototype.doClear=function(){},t.prototype.buildLabel=function(t,e,n){return{x:t[n=n||0],y:t[1-n],width:e[n],height:e[1-n]}},t}());function cS(t,e){var n={};return n[e.dim+"AxisIndex"]=e.index,t.getCartesian(n)}var pS={line:function(t,e,n){var i,r,o;return{type:"Line",subPixelOptimize:!0,shape:(i=[e,n[0]],r=[e,n[1]],o=dS(t),{x1:i[o=o||0],y1:i[1-o],x2:r[o],y2:r[1-o]})}},shadow:function(t,e,n){var i,r,o,a=Math.max(1,t.getBandWidth()),s=n[1]-n[0];return{type:"Rect",shape:(i=[e-a/2,n[0]],r=[a,s],o=dS(t),{x:i[o=o||0],y:i[1-o],width:r[o],height:r[1-o]})}}};function dS(t){return"x"===t.dim?0:1}var fS=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="axisPointer",e.defaultOption={show:"auto",zlevel:0,z:50,type:"line",snap:!1,triggerTooltip:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#B9BEC9",width:1,type:"dashed"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}},e}(vc),gS=xr(),yS=P;function vS(t,e,n){if(!a.node){var i=e.getZr();gS(i).records||(gS(i).records={}),function(t,e){if(gS(t).initialized)return;function n(n,i){t.on(n,(function(n){var r=function(t){var e={showTip:[],hideTip:[]},n=function(i){var r=e[i.type];r?r.push(i):(i.dispatchAction=n,t.dispatchAction(i))};return{dispatchAction:n,pendings:e}}(e);yS(gS(t).records,(function(t){t&&i(t,n,r.dispatchAction)})),function(t,e){var n,i=t.showTip.length,r=t.hideTip.length;i?n=t.showTip[i-1]:r&&(n=t.hideTip[r-1]);n&&(n.dispatchAction=null,e.dispatchAction(n))}(r.pendings,e)}))}gS(t).initialized=!0,n("click",z(_S,"click")),n("mousemove",z(_S,"mousemove")),n("globalout",mS)}(i,e),(gS(i).records[t]||(gS(i).records[t]={})).handler=n}}function mS(t,e,n){t.handler("leave",null,n)}function _S(t,e,n,i){e.handler(t,n,i)}function xS(t,e){if(!a.node){var n=e.getZr();(gS(n).records||{})[t]&&(gS(n).records[t]=null)}}var bS=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){var i=e.getComponent("tooltip"),r=t.get("triggerOn")||i&&i.get("triggerOn")||"mousemove|click";vS("axisPointer",n,(function(t,e,n){"none"!==r&&("leave"===t||r.indexOf(t)>=0)&&n({type:"updateAxisPointer",currTrigger:t,x:e&&e.offsetX,y:e&&e.offsetY})}))},e.prototype.remove=function(t,e){xS("axisPointer",e)},e.prototype.dispose=function(t,e){xS("axisPointer",e)},e.type="axisPointer",e}(Fd);function wS(t,e){var n,i=[],r=t.seriesIndex;if(null==r||!(n=e.getSeriesByIndex(r)))return{point:[]};var o=n.getData(),a=_r(o,t);if(null==a||a<0||V(a))return{point:[]};var s=o.getItemGraphicEl(a),l=n.coordinateSystem;if(n.getTooltipPosition)i=n.getTooltipPosition(a)||[];else if(l&&l.dataToPoint)if(t.isStacked){var u=l.getBaseAxis(),h=l.getOtherAxis(u).dim,c=u.dim,p="x"===h||"radius"===h?1:0,d=o.mapDimension(c),f=[];f[p]=o.get(d,a),f[1-p]=o.get(o.getCalculationInfo("stackResultDimension"),a),i=l.dataToPoint(f)||[]}else i=l.dataToPoint(o.getValues(O(l.dimensions,(function(t){return o.mapDimension(t)})),a))||[];else if(s){var g=s.getBoundingRect().clone();g.applyTransform(s.transform),i=[g.x+g.width/2,g.y+g.height/2]}return{point:i,el:s}}var SS=xr();function MS(t,e,n){var i=t.currTrigger,r=[t.x,t.y],o=t,a=t.dispatchAction||B(n.dispatchAction,n),s=e.getComponent("axisPointer").coordSysAxesInfo;if(s){DS(r)&&(r=wS({seriesIndex:o.seriesIndex,dataIndex:o.dataIndex},e).point);var l=DS(r),u=o.axesInfo,h=s.axesInfo,c="leave"===i||DS(r),p={},d={},f={list:[],map:{}},g={showPointer:z(CS,d),showTooltip:z(IS,f)};P(s.coordSysMap,(function(t,e){var n=l||t.containPoint(r);P(s.coordSysAxesInfo[e],(function(t,e){var i=t.axis,o=function(t,e){for(var n=0;n<(t||[]).length;n++){var i=t[n];if(e.axis.dim===i.axisDim&&e.axis.model.componentIndex===i.axisIndex)return i}}(u,t);if(!c&&n&&(!u||o)){var a=o&&o.value;null!=a||l||(a=i.pointToData(r)),null!=a&&TS(t,a,g,!1,p)}}))}));var y={};return P(h,(function(t,e){var n=t.linkGroup;n&&!d[e]&&P(n.axesInfo,(function(e,i){var r=d[i];if(e!==t&&r){var o=r.value;n.mapper&&(o=t.axis.scale.parse(n.mapper(o,AS(e),AS(t)))),y[t.key]=o}}))})),P(y,(function(t,e){TS(h[e],t,g,!0,p)})),function(t,e,n){var i=n.axesInfo=[];P(e,(function(e,n){var r=e.axisPointerModel.option,o=t[n];o?(!e.useHandle&&(r.status="show"),r.value=o.value,r.seriesDataIndices=(o.payloadBatch||[]).slice()):!e.useHandle&&(r.status="hide"),"show"===r.status&&i.push({axisDim:e.axis.dim,axisIndex:e.axis.model.componentIndex,value:r.value})}))}(d,h,p),function(t,e,n,i){if(DS(e)||!t.list.length)return void i({type:"hideTip"});var r=((t.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};i({type:"showTip",escapeConnect:!0,x:e[0],y:e[1],tooltipOption:n.tooltipOption,position:n.position,dataIndexInside:r.dataIndexInside,dataIndex:r.dataIndex,seriesIndex:r.seriesIndex,dataByCoordSys:t.list})}(f,r,t,a),function(t,e,n){var i=n.getZr(),r="axisPointerLastHighlights",o=SS(i)[r]||{},a=SS(i)[r]={};P(t,(function(t,e){var n=t.axisPointerModel.option;"show"===n.status&&P(n.seriesDataIndices,(function(t){var e=t.seriesIndex+" | "+t.dataIndex;a[e]=t}))}));var s=[],l=[];P(o,(function(t,e){!a[e]&&l.push(t)})),P(a,(function(t,e){!o[e]&&s.push(t)})),l.length&&n.dispatchAction({type:"downplay",escapeConnect:!0,notBlur:!0,batch:l}),s.length&&n.dispatchAction({type:"highlight",escapeConnect:!0,notBlur:!0,batch:s})}(h,0,n),p}}function TS(t,e,n,i,r){var o=t.axis;if(!o.scale.isBlank()&&o.containData(e))if(t.involveSeries){var a=function(t,e){var n=e.axis,i=n.dim,r=t,o=[],a=Number.MAX_VALUE,s=-1;return P(e.seriesModels,(function(e,l){var u,h,c=e.getData().mapDimensionsAll(i);if(e.getAxisTooltipData){var p=e.getAxisTooltipData(c,t,n);h=p.dataIndices,u=p.nestestValue}else{if(!(h=e.getData().indicesOfNearest(c[0],t,"category"===n.type?.5:null)).length)return;u=e.getData().get(c[0],h[0])}if(null!=u&&isFinite(u)){var d=t-u,f=Math.abs(d);f<=a&&((f<a||d>=0&&s<0)&&(a=f,s=d,r=u,o.length=0),P(h,(function(t){o.push({seriesIndex:e.seriesIndex,dataIndexInside:t,dataIndex:e.getData().getRawIndex(t)})})))}})),{payloadBatch:o,snapToValue:r}}(e,t),s=a.payloadBatch,l=a.snapToValue;s[0]&&null==r.seriesIndex&&T(r,s[0]),!i&&t.snap&&o.containData(l)&&null!=l&&(e=l),n.showPointer(t,e,s),n.showTooltip(t,a,l)}else n.showPointer(t,e)}function CS(t,e,n,i){t[e.key]={value:n,payloadBatch:i}}function IS(t,e,n,i){var r=n.payloadBatch,o=e.axis,a=o.model,s=e.axisPointerModel;if(e.triggerTooltip&&r.length){var l=e.coordSys.model,u=Fw(l),h=t.map[u];h||(h=t.map[u]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},t.list.push(h)),h.dataByAxis.push({axisDim:o.dim,axisIndex:a.componentIndex,axisType:a.type,axisId:a.id,value:i,valueLabelOpt:{precision:s.get(["label","precision"]),formatter:s.get(["label","formatter"])},seriesDataIndices:r.slice()})}}function AS(t){var e=t.axis.model,n={},i=n.axisDim=t.axis.dim;return n.axisIndex=n[i+"AxisIndex"]=e.componentIndex,n.axisName=n[i+"AxisName"]=e.name,n.axisId=n[i+"AxisId"]=e.id,n}function DS(t){return!t||null==t[0]||isNaN(t[0])||null==t[1]||isNaN(t[1])}function kS(t){Gw.registerAxisPointerClass("CartesianAxisPointer",hS),t.registerComponentModel(fS),t.registerComponentView(bS),t.registerPreprocessor((function(t){if(t){(!t.axisPointer||0===t.axisPointer.length)&&(t.axisPointer={});var e=t.axisPointer.link;e&&!V(e)&&(t.axisPointer.link=[e])}})),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,(function(t,e){t.getComponent("axisPointer").coordSysAxesInfo=Nw(t,e)})),t.registerAction({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},MS)}function LS(t,e){e&&(e.font=e.textFont||e.font,ct(e,"textStrokeWidth")&&(t.lineWidth=e.textStrokeWidth),ct(e,"textAlign")&&(t.align=e.textAlign),ct(e,"textVerticalAlign")&&(t.verticalAlign=e.textVerticalAlign),ct(e,"textLineHeight")&&(t.lineHeight=e.textLineHeight),ct(e,"textWidth")&&(t.width=e.textWidth),ct(e,"textHeight")&&(t.height=e.textHeight),ct(e,"textBackgroundColor")&&(t.backgroundColor=e.textBackgroundColor),ct(e,"textPadding")&&(t.padding=e.textPadding),ct(e,"textBorderColor")&&(t.borderColor=e.textBorderColor),ct(e,"textBorderWidth")&&(t.borderWidth=e.textBorderWidth),ct(e,"textBorderRadius")&&(t.borderRadius=e.textBorderRadius),ct(e,"textBoxShadowColor")&&(t.shadowColor=e.textBoxShadowColor),ct(e,"textBoxShadowBlur")&&(t.shadowBlur=e.textBoxShadowBlur),ct(e,"textBoxShadowOffsetX")&&(t.shadowOffsetX=e.textBoxShadowOffsetX),ct(e,"textBoxShadowOffsetY")&&(t.shadowOffsetY=e.textBoxShadowOffsetY))}var PS=xr(),OS={path:null,compoundPath:null,group:ki,image:Ha,text:$a},RS=function(t){var e=t.graphic;V(e)?e[0]&&e[0].elements?t.graphic=[t.graphic[0]]:t.graphic=[{elements:e}]:e&&!e.elements&&(t.graphic=[{elements:[e]}])},NS=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.mergeOption=function(e,n){var i=this.option.elements;this.option.elements=null,t.prototype.mergeOption.call(this,e,n),this.option.elements=i},e.prototype.optionUpdated=function(t,e){var n=this.option,i=(e?n:t).elements,r=n.elements=e?[]:n.elements,o=[];this._flatten(i,o,null);var a=dr(r,o,"normalMerge"),s=this._elOptionsToUpdate=[];P(a,(function(t,e){var n=t.newOption;n&&(s.push(n),function(t,e){var n=t.existing;if(e.id=t.keyInfo.id,!e.type&&n&&(e.type=n.type),null==e.parentId){var i=e.parentOption;i?e.parentId=i.id:n&&(e.parentId=n.parentId)}e.parentOption=null}(t,n),function(t,e,n){var i=T({},n),r=t[e],o=n.$action||"merge";if("merge"===o){if(r)S(r,i,!0),dc(r,i,{ignoreSize:!0}),gc(n,r);else t[e]=i}else"replace"===o?t[e]=i:"remove"===o&&r&&(t[e]=null)}(r,e,n),function(t,e){if(!t)return;if(t.hv=e.hv=[VS(e,["left","right"]),VS(e,["top","bottom"])],"group"===t.type){var n=t,i=e;null==n.width&&(n.width=i.width=0),null==n.height&&(n.height=i.height=0)}}(r[e],n))}),this);for(var l=r.length-1;l>=0;l--)null==r[l]?r.splice(l,1):delete r[l].$action},e.prototype._flatten=function(t,e,n){P(t,(function(t){if(t){n&&(t.parentOption=n),e.push(t);var i=t.children;"group"===t.type&&i&&this._flatten(i,e,t),delete t.children}}),this)},e.prototype.useElOptionsToUpdate=function(){var t=this._elOptionsToUpdate;return this._elOptionsToUpdate=null,t},e.type="graphic",e.defaultOption={elements:[]},e}(vc),ES=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(){this._elMap=ut()},e.prototype.render=function(t,e,n){t!==this._lastGraphicModel&&this._clear(),this._lastGraphicModel=t,this._updateElements(t),this._relocate(t,n)},e.prototype._updateElements=function(t){var e=t.useElOptionsToUpdate();if(e){var n=this._elMap,i=this.group;P(e,(function(e){var r=yr(e.id,null),o=null!=r?n.get(r):null,a=yr(e.parentId,null),s=null!=a?n.get(a):i,l=e.type,u=e.style;"text"===l&&u&&e.hv&&e.hv[1]&&(u.textVerticalAlign=u.textBaseline=u.verticalAlign=u.align=null);var h=e.textContent,c=e.textConfig;if(u&&function(t,e,n,i){return t&&(t.legacy||!1!==t.legacy&&!n&&!i&&"tspan"!==e&&("text"===e||ct(t,"text")))}(u,l,!!c,!!h)){var p=function(t,e,n){var i,r,o,a=t;if("text"===e)o=a;else{o={},ct(a,"text")&&(o.text=a.text),ct(a,"rich")&&(o.rich=a.rich),ct(a,"textFill")&&(o.fill=a.textFill),ct(a,"textStroke")&&(o.stroke=a.textStroke),r={type:"text",style:o,silent:!0},i={};var s=ct(a,"textPosition");n?i.position=s?a.textPosition:"inside":s&&(i.position=a.textPosition),ct(a,"textPosition")&&(i.position=a.textPosition),ct(a,"textOffset")&&(i.offset=a.textOffset),ct(a,"textRotation")&&(i.rotation=a.textRotation),ct(a,"textDistance")&&(i.distance=a.textDistance)}return LS(o,t),P(o.rich,(function(t){LS(t,t)})),{textConfig:i,textContent:r}}(u,l,!0);!c&&p.textConfig&&(c=e.textConfig=p.textConfig),!h&&p.textContent&&(h=p.textContent)}var d=function(t){return t=T({},t),P(["id","parentId","$action","hv","bounding","textContent"].concat(ac),(function(e){delete t[e]})),t}(e);var f=e.$action||"merge";"merge"===f?o?o.attr(d):BS(r,s,d,n):"replace"===f?(zS(o,n),BS(r,s,d,n)):"remove"===f&&zS(o,n);var g=n.get(r);if(g&&h)if("merge"===f){var y=g.getTextContent();y?y.attr(h):g.setTextContent(new $a(h))}else"replace"===f&&g.setTextContent(new $a(h));if(g){var v=PS(g);v.__ecGraphicWidthOption=e.width,v.__ecGraphicHeightOption=e.height,function(t,e,n){var i=os(t).eventData;t.silent||t.ignore||i||(i=os(t).eventData={componentType:"graphic",componentIndex:e.componentIndex,name:t.name});i&&(i.info=n.info)}(g,t,e)}}))}},e.prototype._relocate=function(t,e){for(var n=t.option.elements,i=this.group,r=this._elMap,o=e.getWidth(),a=e.getHeight(),s=0;s<n.length;s++){if((d=null!=(p=yr((c=n[s]).id,null))?r.get(p):null)&&d.isGroup){var l=(f=d.parent)===i,u=PS(d),h=PS(f);u.__ecGraphicWidth=Fi(u.__ecGraphicWidthOption,l?o:h.__ecGraphicWidth)||0,u.__ecGraphicHeight=Fi(u.__ecGraphicHeightOption,l?a:h.__ecGraphicHeight)||0}}for(s=n.length-1;s>=0;s--){var c,p,d;if(d=null!=(p=yr((c=n[s]).id,null))?r.get(p):null){var f=d.parent;h=PS(f);cc(d,c,f===i?{width:o,height:a}:{width:h.__ecGraphicWidth,height:h.__ecGraphicHeight},null,{hv:c.hv,boundingMode:c.bounding})}}},e.prototype._clear=function(){var t=this._elMap;t.each((function(e){zS(e,t)})),this._elMap=ut()},e.prototype.dispose=function(){this._clear()},e.type="graphic",e}(Fd);function BS(t,e,n,i){var r=n.type;var o=ct(OS,r)?OS[r]:cu(r);var a=new o(n);e.add(a),i.set(t,a),PS(a).__ecGraphicId=t}function zS(t,e){var n=t&&t.parent;n&&("group"===t.type&&t.traverse((function(t){zS(t,e)})),e.removeKey(PS(t).__ecGraphicId),n.remove(t))}function VS(t,e){var n;return P(e,(function(e){null!=t[e]&&"auto"!==t[e]&&(n=!0)})),n}var FS=["x","y","radius","angle","single"],HS=["cartesian2d","polar","singleAxis"];function GS(t){return t+"Axis"}function WS(t,e){var n,i=ut(),r=[],o=ut();t.eachComponent({mainType:"dataZoom",query:e},(function(t){o.get(t.uid)||s(t)}));do{n=!1,t.eachComponent("dataZoom",a)}while(n);function a(t){!o.get(t.uid)&&function(t){var e=!1;return t.eachTargetAxis((function(t,n){var r=i.get(t);r&&r[n]&&(e=!0)})),e}(t)&&(s(t),n=!0)}function s(t){o.set(t.uid,!0),r.push(t),t.eachTargetAxis((function(t,e){(i.get(t)||i.set(t,[]))[e]=!0}))}return r}function US(t){var e=t.ecModel,n={infoList:[],infoMap:ut()};return t.eachTargetAxis((function(t,i){var r=e.getComponent(GS(t),i);if(r){var o=r.getCoordSysModel();if(o){var a=o.uid,s=n.infoMap.get(a);s||(s={model:o,axisModels:[]},n.infoList.push(s),n.infoMap.set(a,s)),s.axisModels.push(r)}}})),n}var YS=function(){function t(){this.indexList=[],this.indexMap=[]}return t.prototype.add=function(t){this.indexMap[t]||(this.indexList.push(t),this.indexMap[t]=!0)},t}(),XS=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._autoThrottle=!0,n._noTarget=!0,n._rangePropMode=["percent","percent"],n}return n(e,t),e.prototype.init=function(t,e,n){var i=ZS(t);this.settledOption=i,this.mergeDefaultAndTheme(t,n),this._doInit(i)},e.prototype.mergeOption=function(t){var e=ZS(t);S(this.option,t,!0),S(this.settledOption,e,!0),this._doInit(e)},e.prototype._doInit=function(t){var e=this.option;this._setDefaultThrottle(t),this._updateRangeUse(t);var n=this.settledOption;P([["start","startValue"],["end","endValue"]],(function(t,i){"value"===this._rangePropMode[i]&&(e[t[0]]=n[t[0]]=null)}),this),this._resetTarget()},e.prototype._resetTarget=function(){var t=this.get("orient",!0),e=this._targetAxisInfoMap=ut();this._fillSpecifiedTargetAxis(e)?this._orient=t||this._makeAutoOrientByTargetAxis():(this._orient=t||"horizontal",this._fillAutoTargetAxisByOrient(e,this._orient)),this._noTarget=!0,e.each((function(t){t.indexList.length&&(this._noTarget=!1)}),this)},e.prototype._fillSpecifiedTargetAxis=function(t){var e=!1;return P(FS,(function(n){var i=this.getReferringComponents(GS(n),Mr);if(i.specified){e=!0;var r=new YS;P(i.models,(function(t){r.add(t.componentIndex)})),t.set(n,r)}}),this),e},e.prototype._fillAutoTargetAxisByOrient=function(t,e){var n=this.ecModel,i=!0;if(i){var r="vertical"===e?"y":"x";o(n.findComponents({mainType:r+"Axis"}),r)}i&&o(n.findComponents({mainType:"singleAxis",filter:function(t){return t.get("orient",!0)===e}}),"single");function o(e,n){var r=e[0];if(r){var o=new YS;if(o.add(r.componentIndex),t.set(n,o),i=!1,"x"===n||"y"===n){var a=r.getReferringComponents("grid",Sr).models[0];a&&P(e,(function(t){r.componentIndex!==t.componentIndex&&a===t.getReferringComponents("grid",Sr).models[0]&&o.add(t.componentIndex)}))}}}i&&P(FS,(function(e){if(i){var r=n.findComponents({mainType:GS(e),filter:function(t){return"category"===t.get("type",!0)}});if(r[0]){var o=new YS;o.add(r[0].componentIndex),t.set(e,o),i=!1}}}),this)},e.prototype._makeAutoOrientByTargetAxis=function(){var t;return this.eachTargetAxis((function(e){!t&&(t=e)}),this),"y"===t?"vertical":"horizontal"},e.prototype._setDefaultThrottle=function(t){if(t.hasOwnProperty("throttle")&&(this._autoThrottle=!1),this._autoThrottle){var e=this.ecModel.option;this.option.throttle=e.animation&&e.animationDurationUpdate>0?100:20}},e.prototype._updateRangeUse=function(t){var e=this._rangePropMode,n=this.get("rangeMode");P([["start","startValue"],["end","endValue"]],(function(i,r){var o=null!=t[i[0]],a=null!=t[i[1]];o&&!a?e[r]="percent":!o&&a?e[r]="value":n?e[r]=n[r]:o&&(e[r]="percent")}))},e.prototype.noTarget=function(){return this._noTarget},e.prototype.getFirstTargetAxisModel=function(){var t;return this.eachTargetAxis((function(e,n){null==t&&(t=this.ecModel.getComponent(GS(e),n))}),this),t},e.prototype.eachTargetAxis=function(t,e){this._targetAxisInfoMap.each((function(n,i){P(n.indexList,(function(n){t.call(e,i,n)}))}))},e.prototype.getAxisProxy=function(t,e){var n=this.getAxisModel(t,e);if(n)return n.__dzAxisProxy},e.prototype.getAxisModel=function(t,e){var n=this._targetAxisInfoMap.get(t);if(n&&n.indexMap[e])return this.ecModel.getComponent(GS(t),e)},e.prototype.setRawRange=function(t){var e=this.option,n=this.settledOption;P([["start","startValue"],["end","endValue"]],(function(i){null==t[i[0]]&&null==t[i[1]]||(e[i[0]]=n[i[0]]=t[i[0]],e[i[1]]=n[i[1]]=t[i[1]])}),this),this._updateRangeUse(t)},e.prototype.setCalculatedRange=function(t){var e=this.option;P(["start","startValue","end","endValue"],(function(n){e[n]=t[n]}))},e.prototype.getPercentRange=function(){var t=this.findRepresentativeAxisProxy();if(t)return t.getDataPercentWindow()},e.prototype.getValueRange=function(t,e){if(null!=t||null!=e)return this.getAxisProxy(t,e).getDataValueWindow();var n=this.findRepresentativeAxisProxy();return n?n.getDataValueWindow():void 0},e.prototype.findRepresentativeAxisProxy=function(t){if(t)return t.__dzAxisProxy;for(var e,n=this._targetAxisInfoMap.keys(),i=0;i<n.length;i++)for(var r=n[i],o=this._targetAxisInfoMap.get(r),a=0;a<o.indexList.length;a++){var s=this.getAxisProxy(r,o.indexList[a]);if(s.hostedBy(this))return s;e||(e=s)}return e},e.prototype.getRangePropMode=function(){return this._rangePropMode.slice()},e.prototype.getOrient=function(){return this._orient},e.type="dataZoom",e.dependencies=["xAxis","yAxis","radiusAxis","angleAxis","singleAxis","series","toolbox"],e.defaultOption={zlevel:0,z:4,filterMode:"filter",start:0,end:100},e}(vc);function ZS(t){var e={};return P(["start","end","startValue","endValue","throttle"],(function(n){t.hasOwnProperty(n)&&(e[n]=t[n])})),e}var jS=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="dataZoom.select",e}(XS),qS=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n,i){this.dataZoomModel=t,this.ecModel=e,this.api=n},e.type="dataZoom",e}(Fd),KS=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="dataZoom.select",e}(qS);function $S(t,e,n,i,r,o){t=t||0;var a=n[1]-n[0];if(null!=r&&(r=QS(r,[0,a])),null!=o&&(o=Math.max(o,null!=r?r:0)),"all"===i){var s=Math.abs(e[1]-e[0]);s=QS(s,[0,a]),r=o=QS(s,[r,o]),i=0}e[0]=QS(e[0],n),e[1]=QS(e[1],n);var l=JS(e,i);e[i]+=t;var u,h=r||0,c=n.slice();return l.sign<0?c[0]+=h:c[1]-=h,e[i]=QS(e[i],c),u=JS(e,i),null!=r&&(u.sign!==l.sign||u.span<r)&&(e[1-i]=e[i]+l.sign*r),u=JS(e,i),null!=o&&u.span>o&&(e[1-i]=e[i]+u.sign*o),e}function JS(t,e){var n=t[e]-t[1-e];return{span:Math.abs(n),sign:n>0?-1:n<0?1:e?-1:1}}function QS(t,e){return Math.min(null!=e[1]?e[1]:1/0,Math.max(null!=e[0]?e[0]:-1/0,t))}var tM=P,eM=Gi,nM=function(){function t(t,e,n,i){this._dimName=t,this._axisIndex=e,this.ecModel=i,this._dataZoomModel=n}return t.prototype.hostedBy=function(t){return this._dataZoomModel===t},t.prototype.getDataValueWindow=function(){return this._valueWindow.slice()},t.prototype.getDataPercentWindow=function(){return this._percentWindow.slice()},t.prototype.getTargetSeriesModels=function(){var t=[];return this.ecModel.eachSeries((function(e){if(function(t){var e=t.get("coordinateSystem");return A(HS,e)>=0}(e)){var n=GS(this._dimName),i=e.getReferringComponents(n,Sr).models[0];i&&this._axisIndex===i.componentIndex&&t.push(e)}}),this),t},t.prototype.getAxisModel=function(){return this.ecModel.getComponent(this._dimName+"Axis",this._axisIndex)},t.prototype.getMinMaxSpan=function(){return w(this._minMaxSpan)},t.prototype.calculateDataWindow=function(t){var e,n=this._dataExtent,i=this.getAxisModel().axis.scale,r=this._dataZoomModel.getRangePropMode(),o=[0,100],a=[],s=[];tM(["start","end"],(function(l,u){var h=t[l],c=t[l+"Value"];"percent"===r[u]?(null==h&&(h=o[u]),c=i.parse(Vi(h,o,n))):(e=!0,h=Vi(c=null==c?n[u]:i.parse(c),n,o)),s[u]=c,a[u]=h})),eM(s),eM(a);var l=this._minMaxSpan;function u(t,e,n,r,o){var a=o?"Span":"ValueSpan";$S(0,t,n,"all",l["min"+a],l["max"+a]);for(var s=0;s<2;s++)e[s]=Vi(t[s],n,r,!0),o&&(e[s]=i.parse(e[s]))}return e?u(s,a,n,o,!1):u(a,s,o,n,!0),{valueWindow:s,percentWindow:a}},t.prototype.reset=function(t){if(t===this._dataZoomModel){var e=this.getTargetSeriesModels();this._dataExtent=function(t,e,n){var i=[1/0,-1/0];tM(n,(function(t){!function(t,e,n){e&&P(g_(e,n),(function(n){var i=e.getApproximateExtent(n);i[0]<t[0]&&(t[0]=i[0]),i[1]>t[1]&&(t[1]=i[1])}))}(i,t.getData(),e)}));var r=t.getAxisModel(),o=o_(r.axis.scale,r,i).calculate();return[o.min,o.max]}(this,this._dimName,e),this._updateMinMaxSpan();var n=this.calculateDataWindow(t.settledOption);this._valueWindow=n.valueWindow,this._percentWindow=n.percentWindow,this._setAxisModel()}},t.prototype.filterData=function(t,e){if(t===this._dataZoomModel){var n=this._dimName,i=this.getTargetSeriesModels(),r=t.get("filterMode"),o=this._valueWindow;"none"!==r&&tM(i,(function(t){var e=t.getData(),i=e.mapDimensionsAll(n);i.length&&("weakFilter"===r?e.filterSelf((function(t){for(var n,r,a,s=0;s<i.length;s++){var l=e.get(i[s],t),u=!isNaN(l),h=l<o[0],c=l>o[1];if(u&&!h&&!c)return!0;u&&(a=!0),h&&(n=!0),c&&(r=!0)}return a&&n&&r})):tM(i,(function(n){if("empty"===r)t.setData(e=e.map(n,(function(t){return function(t){return t>=o[0]&&t<=o[1]}(t)?t:NaN})));else{var i={};i[n]=o,e.selectRange(i)}})),tM(i,(function(t){e.setApproximateExtent(o,t)})))}))}},t.prototype._updateMinMaxSpan=function(){var t=this._minMaxSpan={},e=this._dataZoomModel,n=this._dataExtent;tM(["min","max"],(function(i){var r=e.get(i+"Span"),o=e.get(i+"ValueSpan");null!=o&&(o=this.getAxisModel().axis.scale.parse(o)),null!=o?r=Vi(n[0]+o,n,[0,100],!0):null!=r&&(o=Vi(r,[0,100],n,!0)-n[0]),t[i+"Span"]=r,t[i+"ValueSpan"]=o}),this)},t.prototype._setAxisModel=function(){var t=this.getAxisModel(),e=this._percentWindow,n=this._valueWindow;if(e){var i=Yi(n,[0,500]);i=Math.min(i,20);var r=t.axis.scale.rawExtentInfo;0!==e[0]&&r.setDeterminedMinMax("min",+n[0].toFixed(i)),100!==e[1]&&r.setDeterminedMinMax("max",+n[1].toFixed(i)),r.freeze()}},t}();var iM={getTargetSeries:function(t){function e(e){t.eachComponent("dataZoom",(function(n){n.eachTargetAxis((function(i,r){var o=t.getComponent(GS(i),r);e(i,r,o,n)}))}))}e((function(t,e,n,i){n.__dzAxisProxy=null}));var n=[];e((function(e,i,r,o){r.__dzAxisProxy||(r.__dzAxisProxy=new nM(e,i,o,t),n.push(r.__dzAxisProxy))}));var i=ut();return P(n,(function(t){P(t.getTargetSeriesModels(),(function(t){i.set(t.uid,t)}))})),i},overallReset:function(t,e){t.eachComponent("dataZoom",(function(t){t.eachTargetAxis((function(e,n){t.getAxisProxy(e,n).reset(t)})),t.eachTargetAxis((function(n,i){t.getAxisProxy(n,i).filterData(t,e)}))})),t.eachComponent("dataZoom",(function(t){var e=t.findRepresentativeAxisProxy();if(e){var n=e.getDataPercentWindow(),i=e.getDataValueWindow();t.setCalculatedRange({start:n[0],end:n[1],startValue:i[0],endValue:i[1]})}}))}};var rM=!1;function oM(t){rM||(rM=!0,t.registerProcessor(t.PRIORITY.PROCESSOR.FILTER,iM),function(t){t.registerAction("dataZoom",(function(t,e){P(WS(e,t),(function(e){e.setRawRange({start:t.start,end:t.end,startValue:t.startValue,endValue:t.endValue})}))}))}(t),t.registerSubTypeDefaulter("dataZoom",(function(){return"slider"})))}function aM(t){t.registerComponentModel(jS),t.registerComponentView(KS),oM(t)}var sM=function(){},lM={};function uM(t,e){lM[t]=e}function hM(t){return lM[t]}var cM=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.optionUpdated=function(){t.prototype.optionUpdated.apply(this,arguments);var e=this.ecModel;P(this.option.feature,(function(t,n){var i=hM(n);i&&(i.getDefaultOption&&(i.defaultOption=i.getDefaultOption(e)),S(t,i.defaultOption))}))},e.type="toolbox",e.layoutMode={type:"box",ignoreSize:!0},e.defaultOption={show:!0,z:6,zlevel:0,orient:"horizontal",left:"right",top:"top",backgroundColor:"transparent",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemSize:15,itemGap:8,showTitle:!0,iconStyle:{borderColor:"#666",color:"none"},emphasis:{iconStyle:{borderColor:"#3E98C5"}},tooltip:{show:!1}},e}(vc);function pM(t,e){var n=jh(e.get("padding")),i=e.getItemStyle(["color","opacity"]);return i.fill=e.get("backgroundColor"),t=new ja({shape:{x:t.x-n[3],y:t.y-n[0],width:t.width+n[1]+n[3],height:t.height+n[0]+n[2],r:e.get("borderRadius")},style:i,silent:!0,z2:-1})}var dM=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.render=function(t,e,n,i){var r=this.group;if(r.removeAll(),t.get("show")){var o=+t.get("itemSize"),a=t.get("feature")||{},s=this._features||(this._features={}),l=[];P(a,(function(t,e){l.push(e)})),new Dv(this._featureNames||[],l).add(u).update(u).remove(z(u,null)).execute(),this._featureNames=l,function(t,e,n){var i=e.getBoxLayoutParams(),r=e.get("padding"),o={width:n.getWidth(),height:n.getHeight()},a=hc(i,o,r);uc(e.get("orient"),t,e.get("itemGap"),a.width,a.height),cc(t,i,o,r)}(r,t,n),r.add(pM(r.getBoundingRect(),t)),r.eachChild((function(t){var e=t.__title,i=t.ensureState("emphasis"),a=i.textConfig||(i.textConfig={}),s=t.getTextContent(),l=s&&s.states.emphasis;if(l&&!F(l)&&e){var u=l.style||(l.style={}),h=On(e,$a.makeFont(u)),c=t.x+r.x,p=!1;t.y+r.y+o+h.height>n.getHeight()&&(a.position="top",p=!0);var d=p?-5-h.height:o+8;c+h.width/2>n.getWidth()?(a.position=["100%",d],u.align="right"):c-h.width/2<0&&(a.position=[0,d],u.align="left")}}))}function u(u,h){var c,p=l[u],d=l[h],f=a[p],g=new oh(f,t,t.ecModel);if(i&&null!=i.newTitle&&i.featureName===p&&(f.title=i.newTitle),p&&!d){if(function(t){return 0===t.indexOf("my")}(p))c={onclick:g.option.onclick,featureName:p};else{var y=hM(p);if(!y)return;c=new y}s[p]=c}else if(!(c=s[d]))return;if(c.uid=sh("toolbox-feature"),c.model=g,c.ecModel=e,c.api=n,c instanceof sM){if(!p&&d)return void(c.dispose&&c.dispose(e,n));if(!g.get("show")||c.unusable)return void(c.remove&&c.remove(e,n))}!function(i,a,s){var l,u,h=i.getModel("iconStyle"),c=i.getModel(["emphasis","iconStyle"]),p=a instanceof sM&&a.getIcons?a.getIcons():i.get("icon"),d=i.get("title")||{};"string"==typeof p?(l={})[s]=p:l=p;"string"==typeof d?(u={})[s]=d:u=d;var f=i.iconPaths={};P(l,(function(s,l){var p=Pu(s,{},{x:-o/2,y:-o/2,width:o,height:o});p.setStyle(h.getItemStyle()),p.ensureState("emphasis").style=c.getItemStyle();var d=new $a({style:{text:u[l],align:c.get("textAlign"),borderRadius:c.get("textBorderRadius"),padding:c.get("textPadding"),fill:null},ignore:!0});p.setTextContent(d);var g=t.getModel("tooltip");g&&g.get("show")&&(p.tooltip=T({content:u[l],formatter:g.get("formatter",!0)||function(){return u[l]},formatterParams:{componentType:"toolbox",name:l,title:u[l],$vars:["name","title"]},position:g.get("position",!0)||"bottom"},g.option)),p.__title=u[l],p.on("mouseover",(function(){var e=c.getItemStyle(),n="vertical"===t.get("orient")?null==t.get("right")?"right":"left":null==t.get("bottom")?"bottom":"top";d.setStyle({fill:c.get("textFill")||e.fill||e.stroke||"#000",backgroundColor:c.get("textBackgroundColor")}),p.setTextConfig({position:c.get("textPosition")||n}),d.ignore=!t.get("showTitle"),Ls(this)})).on("mouseout",(function(){"emphasis"!==i.get(["iconStatus",l])&&Ps(this),d.hide()})),("emphasis"===i.get(["iconStatus",l])?Ls:Ps)(p),r.add(p),p.on("click",B(a.onclick,a,e,n,l)),f[l]=p}))}(g,c,p),g.setIconStatus=function(t,e){var n=this.option,i=this.iconPaths;n.iconStatus=n.iconStatus||{},n.iconStatus[t]=e,i[t]&&("emphasis"===e?Ls:Ps)(i[t])},c instanceof sM&&c.render&&c.render(g,e,n,i)}},e.prototype.updateView=function(t,e,n,i){P(this._features,(function(t){t instanceof sM&&t.updateView&&t.updateView(t.model,e,n,i)}))},e.prototype.remove=function(t,e){P(this._features,(function(n){n instanceof sM&&n.remove&&n.remove(t,e)})),this.group.removeAll()},e.prototype.dispose=function(t,e){P(this._features,(function(n){n instanceof sM&&n.dispose&&n.dispose(t,e)}))},e.type="toolbox",e}(Fd);var fM=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.onclick=function(t,e){var n=this.model,i=n.get("name")||t.get("title.0.text")||"echarts",r="svg"===e.getZr().painter.getType(),o=r?"svg":n.get("type",!0)||"png",s=e.getConnectedDataURL({type:o,backgroundColor:n.get("backgroundColor",!0)||t.get("backgroundColor")||"#fff",connectedBackgroundColor:n.get("connectedBackgroundColor"),excludeComponents:n.get("excludeComponents"),pixelRatio:n.get("pixelRatio")});if("function"!=typeof MouseEvent||!a.browser.newEdge&&(a.browser.ie||a.browser.edge))if(window.navigator.msSaveOrOpenBlob||r){var l=s.split(","),u=l[0].indexOf("base64")>-1,h=r?decodeURIComponent(l[1]):l[1];u&&(h=atob(h));var c=i+"."+o;if(window.navigator.msSaveOrOpenBlob){for(var p=h.length,d=new Uint8Array(p);p--;)d[p]=h.charCodeAt(p);var f=new Blob([d]);window.navigator.msSaveOrOpenBlob(f,c)}else{var g=document.createElement("iframe");document.body.appendChild(g);var y=g.contentWindow,v=y.document;v.open("image/svg+xml","replace"),v.write(h),v.close(),y.focus(),v.execCommand("SaveAs",!0,c),document.body.removeChild(g)}}else{var m=n.get("lang"),_='<body style="margin:0;"><img src="'+s+'" style="max-width:100%;" title="'+(m&&m[0]||"")+'" /></body>',x=window.open();x.document.write(_),x.document.title=i}else{var b=document.createElement("a");b.download=i+"."+o,b.target="_blank",b.href=s;var w=new MouseEvent("click",{view:document.defaultView,bubbles:!0,cancelable:!1});b.dispatchEvent(w)}},e.getDefaultOption=function(t){return{show:!0,icon:"M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0",title:t.getLocale(["toolbox","saveAsImage","title"]),type:"png",connectedBackgroundColor:"#fff",name:"",excludeComponents:["toolbox"],pixelRatio:1,lang:t.getLocale(["toolbox","saveAsImage","lang"])}},e}(sM);fM.prototype.unusable=!a.canvasSupported;var gM="__ec_magicType_stack__",yM=[["line","bar"],["stack"]],vM=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.getIcons=function(){var t=this.model,e=t.get("icon"),n={};return P(t.get("type"),(function(t){e[t]&&(n[t]=e[t])})),n},e.getDefaultOption=function(t){return{show:!0,type:[],icon:{line:"M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4",bar:"M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7",stack:"M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z"},title:t.getLocale(["toolbox","magicType","title"]),option:{},seriesIndex:{}}},e.prototype.onclick=function(t,e,n){var i=this.model,r=i.get(["seriesIndex",n]);if(mM[n]){var o,a={series:[]};P(yM,(function(t){A(t,n)>=0&&P(t,(function(t){i.setIconStatus(t,"normal")}))})),i.setIconStatus(n,"emphasis"),t.eachComponent({mainType:"series",query:null==r?null:{seriesIndex:r}},(function(t){var e=t.subType,r=t.id,o=mM[n](e,r,t,i);o&&(C(o,t.option),a.series.push(o));var s=t.coordinateSystem;if(s&&"cartesian2d"===s.type&&("line"===n||"bar"===n)){var l=s.getAxesByScale("ordinal")[0];if(l){var u=l.dim+"Axis",h=t.getReferringComponents(u,Sr).models[0].componentIndex;a[u]=a[u]||[];for(var c=0;c<=h;c++)a[u][h]=a[u][h]||{};a[u][h].boundaryGap="bar"===n}}})),"stack"===n&&(o=S({stack:i.option.title.tiled,tiled:i.option.title.stack},i.option.title)),e.dispatchAction({type:"changeMagicType",currentType:n,newOption:a,newTitle:o,featureName:"magicType"})}},e}(sM),mM={line:function(t,e,n,i){if("bar"===t)return S({id:e,type:"line",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},i.get(["option","line"])||{},!0)},bar:function(t,e,n,i){if("line"===t)return S({id:e,type:"bar",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},i.get(["option","bar"])||{},!0)},stack:function(t,e,n,i){var r=n.get("stack")===gM;if("line"===t||"bar"===t)return i.setIconStatus("stack",r?"normal":"emphasis"),S({id:e,stack:r?"":gM},i.get(["option","stack"])||{},!0)}};gv({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},(function(t,e){e.mergeOption(t.newOption)}));var _M=new Array(60).join("-"),xM="\t";function bM(t){return t.replace(/^\s\s*/,"").replace(/\s\s*$/,"")}var wM=new RegExp("[\t]+","g");function SM(t,e){var n=t.split(new RegExp("\n*"+_M+"\n*","g")),i={series:[]};return P(n,(function(t,n){if(function(t){if(t.slice(0,t.indexOf("\n")).indexOf(xM)>=0)return!0}(t)){var r=function(t){for(var e=t.split(/\n+/g),n=[],i=O(bM(e.shift()).split(wM),(function(t){return{name:t,data:[]}})),r=0;r<e.length;r++){var o=bM(e[r]).split(wM);n.push(o.shift());for(var a=0;a<o.length;a++)i[a]&&(i[a].data[r]=o[a])}return{series:i,categories:n}}(t),o=e[n],a=o.axisDim+"Axis";o&&(i[a]=i[a]||[],i[a][o.axisIndex]={data:r.categories},i.series=i.series.concat(r.series))}else{r=function(t){for(var e=t.split(/\n+/g),n=bM(e.shift()),i=[],r=0;r<e.length;r++){var o=bM(e[r]);if(o){var a=o.split(wM),s="",l=void 0,u=!1;isNaN(a[0])?(u=!0,s=a[0],a=a.slice(1),i[r]={name:s,value:[]},l=i[r].value):l=i[r]=[];for(var h=0;h<a.length;h++)l.push(+a[h]);1===l.length&&(u?i[r].value=l[0]:i[r]=l[0])}}return{name:n,data:i}}(t);i.series.push(r)}})),i}var MM=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.onclick=function(t,e){var n=e.getDom(),i=this.model;this._dom&&n.removeChild(this._dom);var r=document.createElement("div");r.style.cssText="position:absolute;left:5px;top:5px;bottom:5px;right:5px;",r.style.backgroundColor=i.get("backgroundColor")||"#fff";var o=document.createElement("h4"),a=i.get("lang")||[];o.innerHTML=a[0]||i.get("title"),o.style.cssText="margin: 10px 20px;",o.style.color=i.get("textColor");var s=document.createElement("div"),l=document.createElement("textarea");s.style.cssText="display:block;width:100%;overflow:auto;";var u=i.get("optionToContent"),h=i.get("contentToOption"),c=function(t){var e,n,i,r=function(t){var e={},n=[],i=[];return t.eachRawSeries((function(t){var r=t.coordinateSystem;if(!r||"cartesian2d"!==r.type&&"polar"!==r.type)n.push(t);else{var o=r.getBaseAxis();if("category"===o.type){var a=o.dim+"_"+o.index;e[a]||(e[a]={categoryAxis:o,valueAxis:r.getOtherAxis(o),series:[]},i.push({axisDim:o.dim,axisIndex:o.index})),e[a].series.push(t)}else n.push(t)}})),{seriesGroupByCategoryAxis:e,other:n,meta:i}}(t);return{value:N([(n=r.seriesGroupByCategoryAxis,i=[],P(n,(function(t,e){var n=t.categoryAxis,r=t.valueAxis.dim,o=[" "].concat(O(t.series,(function(t){return t.name}))),a=[n.model.getCategories()];P(t.series,(function(t){var e=t.getRawData();a.push(t.getRawData().mapArray(e.mapDimension(r),(function(t){return t})))}));for(var s=[o.join(xM)],l=0;l<a[0].length;l++){for(var u=[],h=0;h<a.length;h++)u.push(a[h][l]);s.push(u.join(xM))}i.push(s.join("\n"))})),i.join("\n\n"+_M+"\n\n")),(e=r.other,O(e,(function(t){var e=t.getRawData(),n=[t.name],i=[];return e.each(e.dimensions,(function(){for(var t=arguments.length,r=arguments[t-1],o=e.getName(r),a=0;a<t-1;a++)i[a]=arguments[a];n.push((o?o+xM:"")+i.join(xM))})),n.join("\n")})).join("\n\n"+_M+"\n\n"))],(function(t){return!!t.replace(/[\n\t\s]/g,"")})).join("\n\n"+_M+"\n\n"),meta:r.meta}}(t);if("function"==typeof u){var p=u(e.getOption());"string"==typeof p?s.innerHTML=p:Z(p)&&s.appendChild(p)}else s.appendChild(l),l.readOnly=i.get("readOnly"),l.style.cssText="width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;",l.style.color=i.get("textColor"),l.style.borderColor=i.get("textareaBorderColor"),l.style.backgroundColor=i.get("textareaColor"),l.value=c.value;var d=c.meta,f=document.createElement("div");f.style.cssText="position:absolute;bottom:0;left:0;right:0;";var g="float:right;margin-right:20px;border:none;cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px",y=document.createElement("div"),v=document.createElement("div");g+=";background-color:"+i.get("buttonColor"),g+=";color:"+i.get("buttonTextColor");var m=this;function _(){n.removeChild(r),m._dom=null}qt(y,"click",_),qt(v,"click",(function(){if(null==h&&null!=u||null!=h&&null==u)_();else{var t;try{t="function"==typeof h?h(s,e.getOption()):SM(l.value,d)}catch(t){throw _(),new Error("Data view format error "+t)}t&&e.dispatchAction({type:"changeDataView",newOption:t}),_()}})),y.innerHTML=a[1],v.innerHTML=a[2],v.style.cssText=g,y.style.cssText=g,!i.get("readOnly")&&f.appendChild(v),f.appendChild(y),r.appendChild(o),r.appendChild(s),r.appendChild(f),s.style.height=n.clientHeight-80+"px",n.appendChild(r),this._dom=r},e.prototype.remove=function(t,e){this._dom&&e.getDom().removeChild(this._dom)},e.prototype.dispose=function(t,e){this.remove(t,e)},e.getDefaultOption=function(t){return{show:!0,readOnly:!1,optionToContent:null,contentToOption:null,icon:"M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28",title:t.getLocale(["toolbox","dataView","title"]),lang:t.getLocale(["toolbox","dataView","lang"]),backgroundColor:"#fff",textColor:"#000",textareaColor:"#fff",textareaBorderColor:"#333",buttonColor:"#c23531",buttonTextColor:"#fff"}},e}(sM);function TM(t,e){return O(t,(function(t,n){var i=e&&e[n];if(U(i)&&!V(i)){U(t)&&!V(t)||(t={value:t});var r=null!=i.name&&null==t.name;return t=C(t,i),r&&delete t.name,t}return t}))}gv({type:"changeDataView",event:"dataViewChanged",update:"prepareAndUpdate"},(function(t,e){var n=[];P(t.newOption.series,(function(t){var i=e.getSeriesByName(t.name)[0];if(i){var r=i.get("data");n.push({name:t.name,data:TM(t.data,r)})}else n.push(T({type:"scatter"},t))})),e.mergeOption(C({series:n},t.newOption))}));var CM=P,IM=xr();function AM(t){var e=IM(t);return e.snapshots||(e.snapshots=[{}]),e.snapshots}var DM=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.onclick=function(t,e){!function(t){IM(t).snapshots=null}(t),e.dispatchAction({type:"restore",from:this.uid})},e.getDefaultOption=function(t){return{show:!0,icon:"M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5",title:t.getLocale(["toolbox","restore","title"])}},e}(sM);gv({type:"restore",event:"restore",update:"prepareAndUpdate"},(function(t,e){e.resetOption("recreate")}));var kM="\0_ec_interaction_mutex";function LM(t,e){return!!PM(t)[e]}function PM(t){return t[kM]||(t[kM]={})}gv({type:"takeGlobalCursor",event:"globalCursorTaken",update:"update"},(function(){}));var OM=!0,RM=Math.min,NM=Math.max,EM=Math.pow,BM="globalPan",zM={w:[0,0],e:[0,1],n:[1,0],s:[1,1]},VM={w:"ew",e:"ew",n:"ns",s:"ns",ne:"nesw",sw:"nesw",nw:"nwse",se:"nwse"},FM={brushStyle:{lineWidth:2,stroke:"rgba(210,219,238,0.3)",fill:"#D2DBEE"},transformable:!0,brushMode:"single",removeOnClick:!1},HM=0,GM=function(t){function e(e){var n=t.call(this)||this;return n._track=[],n._covers=[],n._handlers={},n._zr=e,n.group=new ki,n._uid="brushController_"+HM++,P(gT,(function(t,e){this._handlers[e]=B(t,this)}),n),n}return n(e,t),e.prototype.enableBrush=function(t){return this._brushType&&this._doDisableBrush(),t.brushType&&this._doEnableBrush(t),this},e.prototype._doEnableBrush=function(t){var e=this._zr;this._enableGlobalPan||function(t,e,n){PM(t)[e]=n}(e,BM,this._uid),P(this._handlers,(function(t,n){e.on(n,t)})),this._brushType=t.brushType,this._brushOption=S(w(FM),t,!0)},e.prototype._doDisableBrush=function(){var t=this._zr;!function(t,e,n){var i=PM(t);i[e]===n&&(i[e]=null)}(t,BM,this._uid),P(this._handlers,(function(e,n){t.off(n,e)})),this._brushType=this._brushOption=null},e.prototype.setPanels=function(t){if(t&&t.length){var e=this._panels={};P(t,(function(t){e[t.panelId]=w(t)}))}else this._panels=null;return this},e.prototype.mount=function(t){t=t||{},this._enableGlobalPan=t.enableGlobalPan;var e=this.group;return this._zr.add(e),e.attr({x:t.x||0,y:t.y||0,rotation:t.rotation||0,scaleX:t.scaleX||1,scaleY:t.scaleY||1}),this._transform=e.getLocalTransform(),this},e.prototype.updateCovers=function(t){t=O(t,(function(t){return S(w(FM),t,!0)}));var e=this._covers,n=this._covers=[],i=this,r=this._creatingCover;return new Dv(e,t,(function(t,e){return o(t.__brushOption,e)}),o).add(a).update(a).remove((function(t){e[t]!==r&&i.group.remove(e[t])})).execute(),this;function o(t,e){return(null!=t.id?t.id:"\0-brush-index-"+e)+"-"+t.brushType}function a(o,a){var s=t[o];if(null!=a&&e[a]===r)n[o]=e[a];else{var l=n[o]=null!=a?(e[a].__brushOption=s,e[a]):UM(i,WM(i,s));ZM(i,l)}}},e.prototype.unmount=function(){return this.enableBrush(!1),$M(this),this._zr.remove(this.group),this},e.prototype.dispose=function(){this.unmount(),this.off()},e}(Nt);function WM(t,e){var n=vT[e.brushType].createCover(t,e);return n.__brushOption=e,XM(n,e),t.group.add(n),n}function UM(t,e){var n=jM(e);return n.endCreating&&(n.endCreating(t,e),XM(e,e.__brushOption)),e}function YM(t,e){var n=e.__brushOption;jM(e).updateCoverShape(t,e,n.range,n)}function XM(t,e){var n=e.z;null==n&&(n=1e4),t.traverse((function(t){t.z=n,t.z2=n}))}function ZM(t,e){jM(e).updateCommon(t,e),YM(t,e)}function jM(t){return vT[t.__brushOption.brushType]}function qM(t,e,n){var i,r=t._panels;if(!r)return OM;var o=t._transform;return P(r,(function(t){t.isTargetByCursor(e,n,o)&&(i=t)})),i}function KM(t,e){var n=t._panels;if(!n)return OM;var i=e.__brushOption.panelId;return null!=i?n[i]:OM}function $M(t){var e=t._covers,n=e.length;return P(e,(function(e){t.group.remove(e)}),t),e.length=0,!!n}function JM(t,e){var n=O(t._covers,(function(t){var e=t.__brushOption,n=w(e.range);return{brushType:e.brushType,panelId:e.panelId,range:n}}));t.trigger("brush",{areas:n,isEnd:!!e.isEnd,removeOnClick:!!e.removeOnClick})}function QM(t){var e=t.length-1;return e<0&&(e=0),[t[0],t[e]]}function tT(t,e,n,i){var r=new ki;return r.add(new ja({name:"main",style:rT(n),silent:!0,draggable:!0,cursor:"move",drift:z(sT,t,e,r,["n","s","w","e"]),ondragend:z(JM,e,{isEnd:!0})})),P(i,(function(n){r.add(new ja({name:n.join(""),style:{opacity:0},draggable:!0,silent:!0,invisible:!0,drift:z(sT,t,e,r,n),ondragend:z(JM,e,{isEnd:!0})}))})),r}function eT(t,e,n,i){var r=i.brushStyle.lineWidth||0,o=NM(r,6),a=n[0][0],s=n[1][0],l=a-r/2,u=s-r/2,h=n[0][1],c=n[1][1],p=h-o+r/2,d=c-o+r/2,f=h-a,g=c-s,y=f+r,v=g+r;iT(t,e,"main",a,s,f,g),i.transformable&&(iT(t,e,"w",l,u,o,v),iT(t,e,"e",p,u,o,v),iT(t,e,"n",l,u,y,o),iT(t,e,"s",l,d,y,o),iT(t,e,"nw",l,u,o,o),iT(t,e,"ne",p,u,o,o),iT(t,e,"sw",l,d,o,o),iT(t,e,"se",p,d,o,o))}function nT(t,e){var n=e.__brushOption,i=n.transformable,r=e.childAt(0);r.useStyle(rT(n)),r.attr({silent:!i,cursor:i?"move":"default"}),P([["w"],["e"],["n"],["s"],["s","e"],["s","w"],["n","e"],["n","w"]],(function(n){var r=e.childOfName(n.join("")),o=1===n.length?aT(t,n[0]):function(t,e){var n=[aT(t,e[0]),aT(t,e[1])];return("e"===n[0]||"w"===n[0])&&n.reverse(),n.join("")}(t,n);r&&r.attr({silent:!i,invisible:!i,cursor:i?VM[o]+"-resize":null})}))}function iT(t,e,n,i,r,o,a){var s=e.childOfName(n);s&&s.setShape(function(t){var e=RM(t[0][0],t[1][0]),n=RM(t[0][1],t[1][1]),i=NM(t[0][0],t[1][0]),r=NM(t[0][1],t[1][1]);return{x:e,y:n,width:i-e,height:r-n}}(hT(t,e,[[i,r],[i+o,r+a]])))}function rT(t){return C({strokeNoScale:!0},t.brushStyle)}function oT(t,e,n,i){var r=[RM(t,n),RM(e,i)],o=[NM(t,n),NM(e,i)];return[[r[0],o[0]],[r[1],o[1]]]}function aT(t,e){return{left:"w",right:"e",top:"n",bottom:"s"}[Iu({w:"left",e:"right",n:"top",s:"bottom"}[e],function(t){return Tu(t.group)}(t))]}function sT(t,e,n,i,r,o){var a=n.__brushOption,s=t.toRectRange(a.range),l=uT(e,r,o);P(i,(function(t){var e=zM[t];s[e[0]][e[1]]+=l[e[0]]})),a.range=t.fromRectRange(oT(s[0][0],s[1][0],s[0][1],s[1][1])),ZM(e,n),JM(e,{isEnd:!1})}function lT(t,e,n,i){var r=e.__brushOption.range,o=uT(t,n,i);P(r,(function(t){t[0]+=o[0],t[1]+=o[1]})),ZM(t,e),JM(t,{isEnd:!1})}function uT(t,e,n){var i=t.group,r=i.transformCoordToLocal(e,n),o=i.transformCoordToLocal(0,0);return[r[0]-o[0],r[1]-o[1]]}function hT(t,e,n){var i=KM(t,e);return i&&i!==OM?i.clipPath(n,t._transform):w(n)}function cT(t){var e=t.event;e.preventDefault&&e.preventDefault()}function pT(t,e,n){return t.childOfName("main").contain(e,n)}function dT(t,e,n,i){var r,o=t._creatingCover,a=t._creatingPanel,s=t._brushOption;if(t._track.push(n.slice()),function(t){var e=t._track;if(!e.length)return!1;var n=e[e.length-1],i=e[0],r=n[0]-i[0],o=n[1]-i[1];return EM(r*r+o*o,.5)>6}(t)||o){if(a&&!o){"single"===s.brushMode&&$M(t);var l=w(s);l.brushType=fT(l.brushType,a),l.panelId=a===OM?null:a.panelId,o=t._creatingCover=WM(t,l),t._covers.push(o)}if(o){var u=vT[fT(t._brushType,a)];o.__brushOption.range=u.getCreatingRange(hT(t,o,t._track)),i&&(UM(t,o),u.updateCommon(t,o)),YM(t,o),r={isEnd:i}}}else i&&"single"===s.brushMode&&s.removeOnClick&&qM(t,e,n)&&$M(t)&&(r={isEnd:i,removeOnClick:!0});return r}function fT(t,e){return"auto"===t?e.defaultBrushType:t}var gT={mousedown:function(t){if(this._dragging)yT(this,t);else if(!t.target||!t.target.draggable){cT(t);var e=this.group.transformCoordToLocal(t.offsetX,t.offsetY);this._creatingCover=null,(this._creatingPanel=qM(this,t,e))&&(this._dragging=!0,this._track=[e.slice()])}},mousemove:function(t){var e=t.offsetX,n=t.offsetY,i=this.group.transformCoordToLocal(e,n);if(function(t,e,n){if(t._brushType&&!function(t,e,n){var i=t._zr;return e<0||e>i.getWidth()||n<0||n>i.getHeight()}(t,e.offsetX,e.offsetY)){var i=t._zr,r=t._covers,o=qM(t,e,n);if(!t._dragging)for(var a=0;a<r.length;a++){var s=r[a].__brushOption;if(o&&(o===OM||s.panelId===o.panelId)&&vT[s.brushType].contain(r[a],n[0],n[1]))return}o&&i.setCursorStyle("crosshair")}}(this,t,i),this._dragging){cT(t);var r=dT(this,t,i,!1);r&&JM(this,r)}},mouseup:function(t){yT(this,t)}};function yT(t,e){if(t._dragging){cT(e);var n=e.offsetX,i=e.offsetY,r=t.group.transformCoordToLocal(n,i),o=dT(t,e,r,!0);t._dragging=!1,t._track=[],t._creatingCover=null,o&&JM(t,o)}}var vT={lineX:mT(0),lineY:mT(1),rect:{createCover:function(t,e){function n(t){return t}return tT({toRectRange:n,fromRectRange:n},t,e,[["w"],["e"],["n"],["s"],["s","e"],["s","w"],["n","e"],["n","w"]])},getCreatingRange:function(t){var e=QM(t);return oT(e[1][0],e[1][1],e[0][0],e[0][1])},updateCoverShape:function(t,e,n,i){eT(t,e,n,i)},updateCommon:nT,contain:pT},polygon:{createCover:function(t,e){var n=new ki;return n.add(new Bl({name:"main",style:rT(e),silent:!0})),n},getCreatingRange:function(t){return t},endCreating:function(t,e){e.remove(e.childAt(0)),e.add(new Nl({name:"main",draggable:!0,drift:z(lT,t,e),ondragend:z(JM,t,{isEnd:!0})}))},updateCoverShape:function(t,e,n,i){e.childAt(0).setShape({points:hT(t,e,n)})},updateCommon:nT,contain:pT}};function mT(t){return{createCover:function(e,n){return tT({toRectRange:function(e){var n=[e,[0,100]];return t&&n.reverse(),n},fromRectRange:function(e){return e[t]}},e,n,[[["w"],["e"]],[["n"],["s"]]][t])},getCreatingRange:function(e){var n=QM(e);return[RM(n[0][t],n[1][t]),NM(n[0][t],n[1][t])]},updateCoverShape:function(e,n,i,r){var o,a=KM(e,n);if(a!==OM&&a.getLinearBrushOtherExtent)o=a.getLinearBrushOtherExtent(t);else{var s=e._zr;o=[0,[s.getWidth(),s.getHeight()][1-t]]}var l=[i,o];t&&l.reverse(),eT(e,n,l,r)},updateCommon:nT,contain:pT}}var _T={axisPointer:1,tooltip:1,brush:1};function xT(t){return t=ST(t),function(e){return ku(e,t)}}function bT(t,e){return t=ST(t),function(n){var i=null!=e?e:n,r=i?t.width:t.height,o=i?t.x:t.y;return[o,o+(r||0)]}}function wT(t,e,n){var i=ST(t);return function(t,r){return i.contain(r[0],r[1])&&!function(t,e,n){var i=e.getComponentByElement(t.topTarget),r=i&&i.coordinateSystem;return i&&i!==n&&!_T.hasOwnProperty(i.mainType)&&r&&r.model!==n}(t,e,n)}}function ST(t){return In.create(t)}var MT=["dataToPoint","pointToData"],TT=["grid","xAxis","yAxis","geo","graph","polar","radiusAxis","angleAxis","bmap"],CT=function(){function t(t,e,n){var i=this;this._targetInfoList=[];var r=AT(e,t);P(DT,(function(t,e){(!n||!n.include||A(n.include,e)>=0)&&t(r,i._targetInfoList)}))}return t.prototype.setOutputRanges=function(t,e){return this.matchOutputRanges(t,e,(function(t,e,n){if((t.coordRanges||(t.coordRanges=[])).push(e),!t.coordRange){t.coordRange=e;var i=PT[t.brushType](0,n,e);t.__rangeOffset={offset:RT[t.brushType](i.values,t.range,[1,1]),xyMinMax:i.xyMinMax}}})),t},t.prototype.matchOutputRanges=function(t,e,n){P(t,(function(t){var i=this.findTargetInfo(t,e);i&&!0!==i&&P(i.coordSyses,(function(i){var r=PT[t.brushType](1,i,t.range);n(t,r.values,i,e)}))}),this)},t.prototype.setInputRanges=function(t,e){P(t,(function(t){var n,i,r,o,a,s=this.findTargetInfo(t,e);if(t.range=t.range||[],s&&!0!==s){t.panelId=s.panelId;var l=PT[t.brushType](0,s.coordSys,t.coordRange),u=t.__rangeOffset;t.range=u?RT[t.brushType](l.values,u.offset,(n=l.xyMinMax,i=u.xyMinMax,r=ET(n),o=ET(i),a=[r[0]/o[0],r[1]/o[1]],isNaN(a[0])&&(a[0]=1),isNaN(a[1])&&(a[1]=1),a)):l.values}}),this)},t.prototype.makePanelOpts=function(t,e){return O(this._targetInfoList,(function(n){var i=n.getPanelRect();return{panelId:n.panelId,defaultBrushType:e?e(n):null,clipPath:xT(i),isTargetByCursor:wT(i,t,n.coordSysModel),getLinearBrushOtherExtent:bT(i)}}))},t.prototype.controlSeries=function(t,e,n){var i=this.findTargetInfo(t,n);return!0===i||i&&A(i.coordSyses,e.coordinateSystem)>=0},t.prototype.findTargetInfo=function(t,e){for(var n=this._targetInfoList,i=AT(e,t),r=0;r<n.length;r++){var o=n[r],a=t.panelId;if(a){if(o.panelId===a)return o}else for(var s=0;s<kT.length;s++)if(kT[s](i,o))return o}return!0},t}();function IT(t){return t[0]>t[1]&&t.reverse(),t}function AT(t,e){return wr(t,e,{includeMainTypes:TT})}var DT={grid:function(t,e){var n=t.xAxisModels,i=t.yAxisModels,r=t.gridModels,o=ut(),a={},s={};(n||i||r)&&(P(n,(function(t){var e=t.axis.grid.model;o.set(e.id,e),a[e.id]=!0})),P(i,(function(t){var e=t.axis.grid.model;o.set(e.id,e),s[e.id]=!0})),P(r,(function(t){o.set(t.id,t),a[t.id]=!0,s[t.id]=!0})),o.each((function(t){var r=t.coordinateSystem,o=[];P(r.getCartesians(),(function(t,e){(A(n,t.getAxis("x").model)>=0||A(i,t.getAxis("y").model)>=0)&&o.push(t)})),e.push({panelId:"grid--"+t.id,gridModel:t,coordSysModel:t,coordSys:o[0],coordSyses:o,getPanelRect:LT.grid,xAxisDeclared:a[t.id],yAxisDeclared:s[t.id]})})))},geo:function(t,e){P(t.geoModels,(function(t){var n=t.coordinateSystem;e.push({panelId:"geo--"+t.id,geoModel:t,coordSysModel:t,coordSys:n,coordSyses:[n],getPanelRect:LT.geo})}))}},kT=[function(t,e){var n=t.xAxisModel,i=t.yAxisModel,r=t.gridModel;return!r&&n&&(r=n.axis.grid.model),!r&&i&&(r=i.axis.grid.model),r&&r===e.gridModel},function(t,e){var n=t.geoModel;return n&&n===e.geoModel}],LT={grid:function(){return this.coordSys.master.getRect().clone()},geo:function(){var t=this.coordSys,e=t.getBoundingRect().clone();return e.applyTransform(Tu(t)),e}},PT={lineX:z(OT,0),lineY:z(OT,1),rect:function(t,e,n){var i=e[MT[t]]([n[0][0],n[1][0]]),r=e[MT[t]]([n[0][1],n[1][1]]),o=[IT([i[0],r[0]]),IT([i[1],r[1]])];return{values:o,xyMinMax:o}},polygon:function(t,e,n){var i=[[1/0,-1/0],[1/0,-1/0]];return{values:O(n,(function(n){var r=e[MT[t]](n);return i[0][0]=Math.min(i[0][0],r[0]),i[1][0]=Math.min(i[1][0],r[1]),i[0][1]=Math.max(i[0][1],r[0]),i[1][1]=Math.max(i[1][1],r[1]),r})),xyMinMax:i}}};function OT(t,e,n,i){var r=n.getAxis(["x","y"][t]),o=IT(O([0,1],(function(t){return e?r.coordToData(r.toLocalCoord(i[t])):r.toGlobalCoord(r.dataToCoord(i[t]))}))),a=[];return a[t]=o,a[1-t]=[NaN,NaN],{values:o,xyMinMax:a}}var RT={lineX:z(NT,0),lineY:z(NT,1),rect:function(t,e,n){return[[t[0][0]-n[0]*e[0][0],t[0][1]-n[0]*e[0][1]],[t[1][0]-n[1]*e[1][0],t[1][1]-n[1]*e[1][1]]]},polygon:function(t,e,n){return O(t,(function(t,i){return[t[0]-n[0]*e[i][0],t[1]-n[1]*e[i][1]]}))}};function NT(t,e,n,i){return[e[0]-i[t]*n[0],e[1]-i[t]*n[1]]}function ET(t){return t?[t[0][1]-t[0][0],t[1][1]-t[1][0]]:[NaN,NaN]}var BT,zT,VT=P,FT=lr+"toolbox-dataZoom_",HT=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.render=function(t,e,n,i){this.brushController||(this.brushController=new GM(n.getZr()),this.brushController.on("brush",B(this._onBrush,this)).mount()),function(t,e,n,i,r){var o=n.isZoomActive;i&&"takeGlobalCursor"===i.type&&(o="dataZoomSelect"===i.key&&i.dataZoomSelectActive);n.isZoomActive=o,t.setIconStatus("zoom",o?"emphasis":"normal");var a=new CT(WT(t),e,{include:["grid"]}).makePanelOpts(r,(function(t){return t.xAxisDeclared&&!t.yAxisDeclared?"lineX":!t.xAxisDeclared&&t.yAxisDeclared?"lineY":"rect"}));n.brushController.setPanels(a).enableBrush(!(!o||!a.length)&&{brushType:"auto",brushStyle:t.getModel("brushStyle").getItemStyle()})}(t,e,this,i,n),function(t,e){t.setIconStatus("back",function(t){return AM(t).length}(e)>1?"emphasis":"normal")}(t,e)},e.prototype.onclick=function(t,e,n){GT[n].call(this)},e.prototype.remove=function(t,e){this.brushController.unmount()},e.prototype.dispose=function(t,e){this.brushController.dispose()},e.prototype._onBrush=function(t){var e=t.areas;if(t.isEnd&&e.length){var n={},i=this.ecModel;this.brushController.updateCovers([]),new CT(WT(this.model),i,{include:["grid"]}).matchOutputRanges(e,i,(function(t,e,n){if("cartesian2d"===n.type){var i=t.brushType;"rect"===i?(r("x",n,e[0]),r("y",n,e[1])):r({lineX:"x",lineY:"y"}[i],n,e)}})),function(t,e){var n=AM(t);CM(e,(function(e,i){for(var r=n.length-1;r>=0&&!n[r][i];r--);if(r<0){var o=t.queryComponents({mainType:"dataZoom",subType:"select",id:i})[0];if(o){var a=o.getPercentRange();n[0][i]={dataZoomId:i,start:a[0],end:a[1]}}}})),n.push(e)}(i,n),this._dispatchZoomAction(n)}function r(t,e,r){var o=e.getAxis(t),a=o.model,s=function(t,e,n){var i;return n.eachComponent({mainType:"dataZoom",subType:"select"},(function(n){n.getAxisModel(t,e.componentIndex)&&(i=n)})),i}(t,a,i),l=s.findRepresentativeAxisProxy(a).getMinMaxSpan();null==l.minValueSpan&&null==l.maxValueSpan||(r=$S(0,r.slice(),o.scale.getExtent(),0,l.minValueSpan,l.maxValueSpan)),s&&(n[s.id]={dataZoomId:s.id,startValue:r[0],endValue:r[1]})}},e.prototype._dispatchZoomAction=function(t){var e=[];VT(t,(function(t,n){e.push(w(t))})),e.length&&this.api.dispatchAction({type:"dataZoom",from:this.uid,batch:e})},e.getDefaultOption=function(t){return{show:!0,filterMode:"filter",icon:{zoom:"M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1",back:"M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26"},title:t.getLocale(["toolbox","dataZoom","title"]),brushStyle:{borderWidth:0,color:"rgba(210,219,238,0.2)"}}},e}(sM),GT={zoom:function(){var t=!this.isZoomActive;this.api.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:t})},back:function(){this._dispatchZoomAction(function(t){var e=AM(t),n=e[e.length-1];e.length>1&&e.pop();var i={};return CM(n,(function(t,n){for(var r=e.length-1;r>=0;r--)if(t=e[r][n]){i[n]=t;break}})),i}(this.ecModel))}};function WT(t){var e={xAxisIndex:t.get("xAxisIndex",!0),yAxisIndex:t.get("yAxisIndex",!0),xAxisId:t.get("xAxisId",!0),yAxisId:t.get("yAxisId",!0)};return null==e.xAxisIndex&&null==e.xAxisId&&(e.xAxisIndex="all"),null==e.yAxisIndex&&null==e.yAxisId&&(e.yAxisIndex="all"),e}BT="dataZoom",zT=function(t){var e=t.getComponent("toolbox",0);if(e){var n=e.getModel(["feature","dataZoom"]),i=[],r=wr(t,WT(n));return VT(r.xAxisModels,(function(t){return o(t,"xAxis","xAxisIndex")})),VT(r.yAxisModels,(function(t){return o(t,"yAxis","yAxisIndex")})),i}function o(t,e,r){var o=t.componentIndex,a={type:"select",$fromToolbox:!0,filterMode:n.get("filterMode",!0)||"filter",id:FT+e+o};a[r]=o,i.push(a)}},it(null==Vc.get(BT)&&zT),Vc.set(BT,zT);var UT=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="tooltip",e.dependencies=["axisPointer"],e.defaultOption={zlevel:0,z:60,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",renderMode:"auto",confine:null,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"#fff",shadowBlur:10,shadowColor:"rgba(0, 0, 0, .2)",shadowOffsetX:1,shadowOffsetY:2,borderRadius:4,borderWidth:1,padding:null,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#666",fontSize:14}},e}(vc);function YT(t){var e=t.get("confine");return null!=e?!!e:"richText"===t.get("renderMode")}var XT=["-ms-","-moz-","-o-","-webkit-",""];function ZT(t,e,n){var i=[],r=t.get("transitionDuration"),o=t.get("backgroundColor"),s=t.get("shadowBlur"),l=t.get("shadowColor"),u=t.get("shadowOffsetX"),h=t.get("shadowOffsetY"),c=t.getModel("textStyle"),p=Id(t,"html"),d=u+"px "+h+"px "+s+"px "+l;return i.push("box-shadow:"+d),e&&r&&i.push(function(t,e){var n="cubic-bezier(0.23, 1, 0.32, 1)",i="opacity "+t/2+"s "+n+",visibility "+t/2+"s "+n;return e||(i+=",left "+t+"s "+n+",top "+t+"s "+n),O(XT,(function(t){return t+"transition:"+i})).join(";")}(r,n)),o&&(a.canvasSupported?i.push("background-Color:"+o):(i.push("background-Color:#"+Xe(o)),i.push("filter:alpha(opacity=70)"))),P(["width","color","radius"],(function(e){var n="border-"+e,r=Zh(n),o=t.get(r);null!=o&&i.push(n+":"+o+("color"===e?"":"px"))})),i.push(function(t){var e=[],n=t.get("fontSize"),i=t.getTextColor();i&&e.push("color:"+i),e.push("font:"+t.getFont()),n&&e.push("line-height:"+Math.round(3*n/2)+"px");var r=t.get("textShadowColor"),o=t.get("textShadowBlur")||0,a=t.get("textShadowOffsetX")||0,s=t.get("textShadowOffsetY")||0;return r&&o&&e.push("text-shadow:"+a+"px "+s+"px "+o+"px "+r),P(["decoration","align"],(function(n){var i=t.get(n);i&&e.push("text-"+n+":"+i)})),e.join(";")}(c)),null!=p&&i.push("padding:"+jh(p).join("px ")+"px"),i.join(";")+";"}function jT(t,e,n,i,r){var o=e&&e.painter;if(n){var a=o&&o.getViewportRoot();a&&function(t,e,n,i,r){Ft(Vt,e,i,r,!0)&&Ft(t,n,Vt[0],Vt[1])}(t,a,document.body,i,r)}else{t[0]=i,t[1]=r;var s=o&&o.getViewportRootOffset();s&&(t[0]+=s.offsetLeft,t[1]+=s.offsetTop)}t[2]=t[0]/e.getWidth(),t[3]=t[1]/e.getHeight()}var qT=function(){function t(t,e,n){if(this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._firstShow=!0,this._longHide=!0,a.wxa)return null;var i=document.createElement("div");i.domBelongToZr=!0,this.el=i;var r=this._zr=e.getZr(),o=this._appendToBody=n&&n.appendToBody;jT(this._styleCoord,r,o,e.getWidth()/2,e.getHeight()/2),o?document.body.appendChild(i):t.appendChild(i),this._container=t;var s=this;i.onmouseenter=function(){s._enterable&&(clearTimeout(s._hideTimeout),s._show=!0),s._inContent=!0},i.onmousemove=function(t){if(t=t||window.event,!s._enterable){var e=r.handler;jt(r.painter.getViewportRoot(),t,!0),e.dispatch("mousemove",t)}},i.onmouseleave=function(){s._inContent=!1,s._enterable&&s._show&&s.hideLater(s._hideDelay)}}return t.prototype.update=function(t){var e=this._container,n=e.currentStyle||document.defaultView.getComputedStyle(e),i=e.style;"absolute"!==i.position&&"absolute"!==n.position&&(i.position="relative"),t.get("alwaysShowContent")&&this._moveIfResized(),this.el.className=t.get("className")||""},t.prototype.show=function(t,e){clearTimeout(this._hideTimeout),clearTimeout(this._longHideTimeout);var n=this.el,i=this._styleCoord,r=n.offsetHeight/2;e=ic(e),n.style.cssText="position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;"+ZT(t,!this._firstShow,this._longHide)+";left:"+i[0]+"px;top:"+(i[1]-r)+"px;border-color: "+e+";"+(t.get("extraCssText")||""),n.style.display=n.innerHTML?"block":"none",n.style.pointerEvents=this._enterable?"auto":"none",this._show=!0,this._firstShow=!1,this._longHide=!1},t.prototype.setContent=function(t,e,n,i,r){if(null!=t){var o=this.el;if(H(r)&&"item"===n.get("trigger")&&!YT(n)&&(t+=function(t,e,n){if(!H(n)||"inside"===n)return"";e=ic(e);var i,r="left"===(i=n)?"right":"right"===i?"left":"top"===i?"bottom":"top",o="",a="";return A(["left","right"],r)>-1?(o=r+":-6px;top:50%;",a="translateY(-50%) rotate("+("left"===r?-225:-45)+"deg)"):(o=r+":-6px;left:50%;",a="translateX(-50%) rotate("+("top"===r?225:45)+"deg)"),'<div style="'+["position:absolute;width:10px;height:10px;",""+o+(a=O(XT,(function(t){return t+"transform:"+a})).join(";"))+";","border-bottom: "+e+" solid 1px;","border-right: "+e+" solid 1px;","background-color: "+t+";","box-shadow: 8px 8px 16px -3px #000;"].join("")+'"></div>'}(n.get("backgroundColor"),i,r)),H(t))o.innerHTML=t;else if(t){o.innerHTML="",V(t)||(t=[t]);for(var a=0;a<t.length;a++)Z(t[a])&&t[a].parentNode!==o&&o.appendChild(t[a])}}},t.prototype.setEnterable=function(t){this._enterable=t},t.prototype.getSize=function(){var t=this.el;return[t.clientWidth,t.clientHeight]},t.prototype.moveTo=function(t,e){var n=this._styleCoord;if(jT(n,this._zr,this._appendToBody,t,e),null!=n[0]&&null!=n[1]){var i=this.el.style;i.left=n[0].toFixed(0)+"px",i.top=n[1].toFixed(0)+"px"}},t.prototype._moveIfResized=function(){var t=this._styleCoord[2],e=this._styleCoord[3];this.moveTo(t*this._zr.getWidth(),e*this._zr.getHeight())},t.prototype.hide=function(){var t=this;this.el.style.visibility="hidden",this.el.style.opacity="0",this._show=!1,this._longHideTimeout=setTimeout((function(){return t._longHide=!0}),500)},t.prototype.hideLater=function(t){!this._show||this._inContent&&this._enterable||(t?(this._hideDelay=t,this._show=!1,this._hideTimeout=setTimeout(B(this.hide,this),t)):this.hide())},t.prototype.isShow=function(){return this._show},t.prototype.dispose=function(){this.el.parentNode.removeChild(this.el)},t.prototype.getOuterSize=function(){var t=this.el.clientWidth,e=this.el.clientHeight;if(document.defaultView&&document.defaultView.getComputedStyle){var n=document.defaultView.getComputedStyle(this.el);n&&(t+=parseInt(n.borderLeftWidth,10)+parseInt(n.borderRightWidth,10),e+=parseInt(n.borderTopWidth,10)+parseInt(n.borderBottomWidth,10))}return{width:t,height:e}},t}(),KT=function(){function t(t){this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._zr=t.getZr(),QT(this._styleCoord,this._zr,t.getWidth()/2,t.getHeight()/2)}return t.prototype.update=function(t){t.get("alwaysShowContent")&&this._moveIfResized()},t.prototype.show=function(){this._hideTimeout&&clearTimeout(this._hideTimeout),this.el.show(),this._show=!0},t.prototype.setContent=function(t,e,n,i,r){U(t)&&ar(""),this.el&&this._zr.remove(this.el);var o=n.getModel("textStyle");this.el=new $a({style:{rich:e.richTextStyles,text:t,lineHeight:22,backgroundColor:n.get("backgroundColor"),borderRadius:n.get("borderRadius"),borderWidth:1,borderColor:i,shadowColor:n.get("shadowColor"),shadowBlur:n.get("shadowBlur"),shadowOffsetX:n.get("shadowOffsetX"),shadowOffsetY:n.get("shadowOffsetY"),textShadowColor:o.get("textShadowColor"),textShadowBlur:o.get("textShadowBlur")||0,textShadowOffsetX:o.get("textShadowOffsetX")||0,textShadowOffsetY:o.get("textShadowOffsetY")||0,fill:n.get(["textStyle","color"]),padding:Id(n,"richText"),verticalAlign:"top",align:"left"},z:n.get("z")}),this._zr.add(this.el);var a=this;this.el.on("mouseover",(function(){a._enterable&&(clearTimeout(a._hideTimeout),a._show=!0),a._inContent=!0})),this.el.on("mouseout",(function(){a._enterable&&a._show&&a.hideLater(a._hideDelay),a._inContent=!1}))},t.prototype.setEnterable=function(t){this._enterable=t},t.prototype.getSize=function(){var t=this.el,e=this.el.getBoundingRect(),n=JT(t.style);return[e.width+n.left+n.right,e.height+n.top+n.bottom]},t.prototype.moveTo=function(t,e){var n=this.el;if(n){var i=this._styleCoord;QT(i,this._zr,t,e),t=i[0],e=i[1];var r=n.style,o=$T(r.borderWidth||0),a=JT(r);n.x=t+o+a.left,n.y=e+o+a.top,n.markRedraw()}},t.prototype._moveIfResized=function(){var t=this._styleCoord[2],e=this._styleCoord[3];this.moveTo(t*this._zr.getWidth(),e*this._zr.getHeight())},t.prototype.hide=function(){this.el&&this.el.hide(),this._show=!1},t.prototype.hideLater=function(t){!this._show||this._inContent&&this._enterable||(t?(this._hideDelay=t,this._show=!1,this._hideTimeout=setTimeout(B(this.hide,this),t)):this.hide())},t.prototype.isShow=function(){return this._show},t.prototype.getOuterSize=function(){var t=this.getSize();return{width:t[0],height:t[1]}},t.prototype.dispose=function(){this._zr.remove(this.el)},t}();function $T(t){return Math.max(0,t)}function JT(t){var e=$T(t.shadowBlur||0),n=$T(t.shadowOffsetX||0),i=$T(t.shadowOffsetY||0);return{left:$T(e-n),right:$T(e+n),top:$T(e-i),bottom:$T(e+i)}}function QT(t,e,n,i){t[0]=n,t[1]=i,t[2]=t[0]/e.getWidth(),t[3]=t[1]/e.getHeight()}var tC=B,eC=P,nC=Fi,iC=new ja({shape:{x:-1,y:-1,width:2,height:2}}),rC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(t,e){if(!a.node){var n,i=t.getComponent("tooltip"),r=i.get("renderMode");this._renderMode="auto"===(n=r)?a.domSupported?"html":"richText":n||"html",this._tooltipContent="richText"===this._renderMode?new KT(e):new qT(e.getDom(),e,{appendToBody:i.get("appendToBody",!0)})}},e.prototype.render=function(t,e,n){if(!a.node){this.group.removeAll(),this._tooltipModel=t,this._ecModel=e,this._api=n,this._alwaysShowContent=t.get("alwaysShowContent");var i=this._tooltipContent;i.update(t),i.setEnterable(t.get("enterable")),this._initGlobalListener(),this._keepShow()}},e.prototype._initGlobalListener=function(){var t=this._tooltipModel.get("triggerOn");vS("itemTooltip",this._api,tC((function(e,n,i){"none"!==t&&(t.indexOf(e)>=0?this._tryShow(n,i):"leave"===e&&this._hide(i))}),this))},e.prototype._keepShow=function(){var t=this._tooltipModel,e=this._ecModel,n=this._api;if(null!=this._lastX&&null!=this._lastY&&"none"!==t.get("triggerOn")){var i=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout((function(){!n.isDisposed()&&i.manuallyShowTip(t,e,n,{x:i._lastX,y:i._lastY,dataByCoordSys:i._lastDataByCoordSys})}))}},e.prototype.manuallyShowTip=function(t,e,n,i){if(i.from!==this.uid&&!a.node){var r=aC(i,n);this._ticket="";var o=i.dataByCoordSys;if(i.tooltip&&null!=i.x&&null!=i.y){var s=iC;s.x=i.x,s.y=i.y,s.update(),s.tooltip=i.tooltip,this._tryShow({offsetX:i.x,offsetY:i.y,target:s},r)}else if(o)this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,dataByCoordSys:o,tooltipOption:i.tooltipOption},r);else if(null!=i.seriesIndex){if(this._manuallyAxisShowTip(t,e,n,i))return;var l=wS(i,e),u=l.point[0],h=l.point[1];null!=u&&null!=h&&this._tryShow({offsetX:u,offsetY:h,position:i.position,target:l.el},r)}else null!=i.x&&null!=i.y&&(n.dispatchAction({type:"updateAxisPointer",x:i.x,y:i.y}),this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,target:n.getZr().findHover(i.x,i.y).target},r))}},e.prototype.manuallyHideTip=function(t,e,n,i){var r=this._tooltipContent;!this._alwaysShowContent&&this._tooltipModel&&r.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=this._lastDataByCoordSys=null,i.from!==this.uid&&this._hide(aC(i,n))},e.prototype._manuallyAxisShowTip=function(t,e,n,i){var r=i.seriesIndex,o=i.dataIndex,a=e.getComponent("axisPointer").coordSysAxesInfo;if(null!=r&&null!=o&&null!=a){var s=e.getSeriesByIndex(r);if(s)if("axis"===oC([s.getData().getItemModel(o),s,(s.coordinateSystem||{}).model,t]).get("trigger"))return n.dispatchAction({type:"updateAxisPointer",seriesIndex:r,dataIndex:o,position:i.position}),!0}},e.prototype._tryShow=function(t,e){var n=t.target;if(this._tooltipModel){this._lastX=t.offsetX,this._lastY=t.offsetY;var i=t.dataByCoordSys;i&&i.length?this._showAxisTooltip(i,t):n&&Sg(n,(function(t){return null!=os(t).dataIndex}),!0)?(this._lastDataByCoordSys=null,this._showSeriesItemTooltip(t,n,e)):n&&n.tooltip?(this._lastDataByCoordSys=null,this._showComponentItemTooltip(t,n,e)):(this._lastDataByCoordSys=null,this._hide(e))}},e.prototype._showOrMove=function(t,e){var n=t.get("showDelay");e=B(e,this),clearTimeout(this._showTimout),n>0?this._showTimout=setTimeout(e,n):e()},e.prototype._showAxisTooltip=function(t,e){var n=this._ecModel,i=this._tooltipModel,r=[e.offsetX,e.offsetY],o=oC([e.tooltipOption,i]),a=this._renderMode,s=[],l=xd("section",{blocks:[],noHeader:!0}),u=[],h=new Ad;eC(t,(function(t){eC(t.dataByAxis,(function(t){var e=n.getComponent(t.axisDim+"Axis",t.axisIndex),i=t.value;if(e&&null!=i){var r=lS(i,e.axis,n,t.seriesDataIndices,t.valueLabelOpt),o=xd("section",{header:r,noHeader:!rt(r),sortBlocks:!0,blocks:[]});l.blocks.push(o),P(t.seriesDataIndices,(function(l){var c=n.getSeriesByIndex(l.seriesIndex),p=l.dataIndexInside,d=c.getDataParams(p);d.axisDim=t.axisDim,d.axisIndex=t.axisIndex,d.axisType=t.axisType,d.axisId=t.axisId,d.axisValue=c_(e.axis,{value:i}),d.axisValueLabel=r,d.marker=h.makeTooltipMarker("item",ic(d.color),a);var f=Qp(c.formatTooltip(p,!0,null));f.markupFragment&&o.blocks.push(f.markupFragment),f.markupText&&u.push(f.markupText),s.push(d)}))}}))})),l.blocks.reverse(),u.reverse();var c=e.position,p=o.get("order"),d=Sd(l,h,a,p,n.get("useUTC"),o.get("textStyle"));d&&u.unshift(d);var f="richText"===a?"\n\n":"<br/>",g=u.join(f);this._showOrMove(o,(function(){this._updateContentNotChangedOnAxis(t)?this._updatePosition(o,c,r[0],r[1],this._tooltipContent,s):this._showTooltipContent(o,g,s,Math.random()+"",r[0],r[1],c,null,h)}))},e.prototype._showSeriesItemTooltip=function(t,e,n){var i=Sg(e,(function(t){return null!=os(t).dataIndex}),!0),r=this._ecModel,o=os(i),a=o.seriesIndex,s=r.getSeriesByIndex(a),l=o.dataModel||s,u=o.dataIndex,h=o.dataType,c=l.getData(h),p=this._renderMode,d=oC([c.getItemModel(u),l,s&&(s.coordinateSystem||{}).model,this._tooltipModel]),f=d.get("trigger");if(null==f||"item"===f){var g=l.getDataParams(u,h),y=new Ad;g.marker=y.makeTooltipMarker("item",ic(g.color),p);var v=Qp(l.formatTooltip(u,!1,h)),m=d.get("order"),_=v.markupFragment?Sd(v.markupFragment,y,p,m,r.get("useUTC"),d.get("textStyle")):v.markupText,x="item_"+l.name+"_"+u;this._showOrMove(d,(function(){this._showTooltipContent(d,_,g,x,t.offsetX,t.offsetY,t.position,t.target,y)})),n({type:"showTip",dataIndexInside:u,dataIndex:c.getRawIndex(u),seriesIndex:a,from:this.uid})}},e.prototype._showComponentItemTooltip=function(t,e,n){var i=e.tooltip;if(H(i)){i={content:i,formatter:i}}var r=new oh(i,this._tooltipModel,this._ecModel),o=r.get("content"),a=Math.random()+"",s=new Ad;this._showOrMove(r,(function(){this._showTooltipContent(r,o,r.get("formatterParams")||{},a,t.offsetX,t.offsetY,t.position,e,s)})),n({type:"showTip",from:this.uid})},e.prototype._showTooltipContent=function(t,e,n,i,r,o,a,s,l){if(this._ticket="",t.get("showContent")&&t.get("show")){var u=this._tooltipContent,h=t.get("formatter");a=a||t.get("position");var c=e,p=this._getNearestPoint([r,o],n,t.get("trigger"),t.get("borderColor"));if(h&&H(h)){var d=t.ecModel.get("useUTC"),f=V(n)?n[0]:n;c=h,f&&f.axisType&&f.axisType.indexOf("time")>=0&&(c=Dh(f.axisValue,c,d)),c=ec(c,n,!0)}else if(F(h)){var g=tC((function(e,i){e===this._ticket&&(u.setContent(i,l,t,p.color,a),this._updatePosition(t,a,r,o,u,n,s))}),this);this._ticket=i,c=h(n,i,g)}u.setContent(c,l,t,p.color,a),u.show(t,p.color),this._updatePosition(t,a,r,o,u,n,s)}},e.prototype._getNearestPoint=function(t,e,n,i){return"axis"===n||V(e)?{color:i||("html"===this._renderMode?"#fff":"none")}:V(e)?void 0:{color:i||e.color||e.borderColor}},e.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=r.getSize(),h=t.get("align"),c=t.get("verticalAlign"),p=a&&a.getBoundingRect().clone();if(a&&p.applyTransform(a.transform),F(e)&&(e=e([n,i],o,r.el,p,{viewSize:[s,l],contentSize:u.slice()})),V(e))n=nC(e[0],s),i=nC(e[1],l);else if(U(e)){var d=e;d.width=u[0],d.height=u[1];var f=hc(d,{width:s,height:l});n=f.x,i=f.y,h=null,c=null}else if(H(e)&&a){var g=function(t,e,n){var i=n[0],r=n[1],o=10,a=5,s=0,l=0,u=e.width,h=e.height;switch(t){case"inside":s=e.x+u/2-i/2,l=e.y+h/2-r/2;break;case"top":s=e.x+u/2-i/2,l=e.y-r-o;break;case"bottom":s=e.x+u/2-i/2,l=e.y+h+o;break;case"left":s=e.x-i-o-a,l=e.y+h/2-r/2;break;case"right":s=e.x+u+o+a,l=e.y+h/2-r/2}return[s,l]}(e,p,u);n=g[0],i=g[1]}else{g=function(t,e,n,i,r,o,a){var s=n.getOuterSize(),l=s.width,u=s.height;null!=o&&(t+l+o+2>i?t-=l+o:t+=o);null!=a&&(e+u+a>r?e-=u+a:e+=a);return[t,e]}(n,i,r,s,l,h?null:20,c?null:20);n=g[0],i=g[1]}if(h&&(n-=sC(h)?u[0]/2:"right"===h?u[0]:0),c&&(i-=sC(c)?u[1]/2:"bottom"===c?u[1]:0),YT(t)){g=function(t,e,n,i,r){var o=n.getOuterSize(),a=o.width,s=o.height;return t=Math.min(t+a,i)-a,e=Math.min(e+s,r)-s,t=Math.max(t,0),e=Math.max(e,0),[t,e]}(n,i,r,s,l);n=g[0],i=g[1]}r.moveTo(n,i)},e.prototype._updateContentNotChangedOnAxis=function(t){var e=this._lastDataByCoordSys,n=!!e&&e.length===t.length;return n&&eC(e,(function(e,i){var r=e.dataByAxis||[],o=(t[i]||{}).dataByAxis||[];(n=n&&r.length===o.length)&&eC(r,(function(t,e){var i=o[e]||{},r=t.seriesDataIndices||[],a=i.seriesDataIndices||[];(n=n&&t.value===i.value&&t.axisType===i.axisType&&t.axisId===i.axisId&&r.length===a.length)&&eC(r,(function(t,e){var i=a[e];n=n&&t.seriesIndex===i.seriesIndex&&t.dataIndex===i.dataIndex}))}))})),this._lastDataByCoordSys=t,!!n},e.prototype._hide=function(t){this._lastDataByCoordSys=null,t({type:"hideTip",from:this.uid})},e.prototype.dispose=function(t,e){a.node||(this._tooltipContent.dispose(),xS("itemTooltip",e))},e.type="tooltip",e}(Fd);function oC(t){for(var e=t.pop();t.length;){var n=t.pop();n&&(n instanceof oh&&(n=n.get("tooltip",!0)),H(n)&&(n={formatter:n}),e=new oh(n,e,e.ecModel))}return e}function aC(t,e){return t.dispatchAction||B(e.dispatchAction,e)}function sC(t){return"center"===t||"middle"===t}var lC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.layoutMode={type:"box",ignoreSize:!0},n}return n(e,t),e.type="title",e.defaultOption={zlevel:0,z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bold",color:"#464646"},subtextStyle:{fontSize:12,color:"#6E7079"}},e}(vc),uC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){if(this.group.removeAll(),t.get("show")){var i=this.group,r=t.getModel("textStyle"),o=t.getModel("subtextStyle"),a=t.get("textAlign"),s=Q(t.get("textBaseline"),t.get("textVerticalAlign")),l=new $a({style:Hu(r,{text:t.get("text"),fill:r.getTextColor()},{disableBox:!0}),z2:10}),u=l.getBoundingRect(),h=t.get("subtext"),c=new $a({style:Hu(o,{text:h,fill:o.getTextColor(),y:u.height+t.get("itemGap"),verticalAlign:"top"},{disableBox:!0}),z2:10}),p=t.get("link"),d=t.get("sublink"),f=t.get("triggerEvent",!0);l.silent=!p&&!f,c.silent=!d&&!f,p&&l.on("click",(function(){rc(p,"_"+t.get("target"))})),d&&c.on("click",(function(){rc(d,"_"+t.get("subtarget"))})),os(l).eventData=os(c).eventData=f?{componentType:"title",componentIndex:t.componentIndex}:null,i.add(l),h&&i.add(c);var g=i.getBoundingRect(),y=t.getBoxLayoutParams();y.width=g.width,y.height=g.height;var v=hc(y,{width:n.getWidth(),height:n.getHeight()},t.get("padding"));a||("middle"===(a=t.get("left")||t.get("right"))&&(a="center"),"right"===a?v.x+=v.width:"center"===a&&(v.x+=v.width/2)),s||("center"===(s=t.get("top")||t.get("bottom"))&&(s="middle"),"bottom"===s?v.y+=v.height:"middle"===s&&(v.y+=v.height/2),s=s||"top"),i.x=v.x,i.y=v.y,i.markRedraw();var m={align:a,verticalAlign:s};l.setStyle(m),c.setStyle(m),g=i.getBoundingRect();var _=v.margin,x=t.getItemStyle(["color","opacity"]);x.fill=t.get("backgroundColor");var b=new ja({shape:{x:g.x-_[3],y:g.y-_[0],width:g.width+_[1]+_[3],height:g.height+_[0]+_[2],r:t.get("borderRadius")},style:x,subPixelOptimize:!0,silent:!0});i.add(b)}},e.type="title",e}(Fd);function hC(t){hr(t,"label",["show"])}var cC=xr(),pC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.createdBySelf=!1,n}return n(e,t),e.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n),this._mergeOption(t,n,!1,!0)},e.prototype.isAnimationEnabled=function(){if(a.node)return!1;var t=this.__hostSeries;return this.getShallow("animation")&&t&&t.isAnimationEnabled()},e.prototype.mergeOption=function(t,e){this._mergeOption(t,e,!1,!1)},e.prototype._mergeOption=function(t,e,n,i){var r=this.mainType;n||e.eachSeries((function(t){var n=t.get(this.mainType,!0),o=cC(t)[r];n&&n.data?(o?o._mergeOption(n,e,!0):(i&&hC(n),P(n.data,(function(t){t instanceof Array?(hC(t[0]),hC(t[1])):hC(t)})),T(o=this.createMarkerModelFromSeries(n,this,e),{mainType:this.mainType,seriesIndex:t.seriesIndex,name:t.name,createdBySelf:!0}),o.__hostSeries=t),cC(t)[r]=o):cC(t)[r]=null}),this)},e.prototype.formatTooltip=function(t,e,n){var i=this.getData(),r=this.getRawValue(t),o=i.getName(t);return xd("section",{header:this.name,blocks:[xd("nameValue",{name:o,value:r,noName:!o,noValue:null==r})]})},e.prototype.getData=function(){return this._data},e.prototype.setData=function(t){this._data=t},e.getMarkerModelFromSeries=function(t,e){return cC(t)[e]},e.type="marker",e.dependencies=["series","grid","polar","geo"],e}(vc);k(pC,Jp.prototype);var dC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.createMarkerModelFromSeries=function(t,n,i){return new e(t,n,i)},e.type="markPoint",e.defaultOption={zlevel:0,z:5,symbol:"pin",symbolSize:50,tooltip:{trigger:"item"},label:{show:!0,position:"inside"},itemStyle:{borderWidth:2},emphasis:{label:{show:!0}}},e}(pC);function fC(t,e,n,i,r,o){var a=[],s=hm(e,i)?e.getCalculationInfo("stackResultDimension"):i,l=xC(e,s,t),u=e.indicesOfNearest(s,l)[0];a[r]=e.get(n,u),a[o]=e.get(s,u);var h=e.get(i,u),c=Wi(e.get(i,u));return(c=Math.min(c,20))>=0&&(a[o]=+a[o].toFixed(c)),[a,h]}var gC={min:z(fC,"min"),max:z(fC,"max"),average:z(fC,"average"),median:z(fC,"median")};function yC(t,e){var n=t.getData(),i=t.coordinateSystem;if(e&&!function(t){return!isNaN(parseFloat(t.x))&&!isNaN(parseFloat(t.y))}(e)&&!V(e.coord)&&i){var r=i.dimensions,o=vC(e,n,i,t);if((e=w(e)).type&&gC[e.type]&&o.baseAxis&&o.valueAxis){var a=A(r,o.baseAxis.dim),s=A(r,o.valueAxis.dim),l=gC[e.type](n,o.baseDataDim,o.valueDataDim,a,s);e.coord=l[0],e.value=l[1]}else{for(var u=[null!=e.xAxis?e.xAxis:e.radiusAxis,null!=e.yAxis?e.yAxis:e.angleAxis],h=0;h<2;h++)gC[u[h]]&&(u[h]=xC(n,n.mapDimension(r[h]),u[h]));e.coord=u}}return e}function vC(t,e,n,i){var r={};return null!=t.valueIndex||null!=t.valueDim?(r.valueDataDim=null!=t.valueIndex?e.getDimension(t.valueIndex):t.valueDim,r.valueAxis=n.getAxis(function(t,e){var n=t.getData(),i=n.dimensions;e=n.getDimension(e);for(var r=0;r<i.length;r++){var o=n.getDimensionInfo(i[r]);if(o.name===e)return o.coordDim}}(i,r.valueDataDim)),r.baseAxis=n.getOtherAxis(r.valueAxis),r.baseDataDim=e.mapDimension(r.baseAxis.dim)):(r.baseAxis=i.getBaseAxis(),r.valueAxis=n.getOtherAxis(r.baseAxis),r.baseDataDim=e.mapDimension(r.baseAxis.dim),r.valueDataDim=e.mapDimension(r.valueAxis.dim)),r}function mC(t,e){return!(t&&t.containData&&e.coord&&!function(t){return!(isNaN(parseFloat(t.x))&&isNaN(parseFloat(t.y)))}(e))||t.containData(e.coord)}function _C(t,e,n,i){return i<2?t.coord&&t.coord[i]:t.value}function xC(t,e,n){if("average"===n){var i=0,r=0;return t.each(e,(function(t,e){isNaN(t)||(i+=t,r++)})),i/r}return"median"===n?t.getMedian(e):t.getDataExtent(e)["max"===n?1:0]}var bC=xr(),wC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(){this.markerGroupMap=ut()},e.prototype.render=function(t,e,n){var i=this,r=this.markerGroupMap;r.each((function(t){bC(t).keep=!1})),e.eachSeries((function(t){var r=pC.getMarkerModelFromSeries(t,i.type);r&&i.renderSeries(t,r,e,n)})),r.each((function(t){!bC(t).keep&&i.group.remove(t.group)}))},e.prototype.markKeep=function(t){bC(t).keep=!0},e.prototype.blurSeries=function(t){var e=this;P(t,(function(t){var n=pC.getMarkerModelFromSeries(t,e.type);n&&n.getData().eachItemGraphicEl((function(t){t&&Os(t)}))}))},e.type="marker",e}(Fd);function SC(t,e,n){var i=e.coordinateSystem;t.each((function(r){var o,a=t.getItemModel(r),s=Fi(a.get("x"),n.getWidth()),l=Fi(a.get("y"),n.getHeight());if(isNaN(s)||isNaN(l)){if(e.getMarkerPosition)o=e.getMarkerPosition(t.getValues(t.dimensions,r));else if(i){var u=t.get(i.dimensions[0],r),h=t.get(i.dimensions[1],r);o=i.dataToPoint([u,h])}}else o=[s,l];isNaN(s)||(o[0]=s),isNaN(l)||(o[1]=l),t.setItemLayout(r,o)}))}var MC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.updateTransform=function(t,e,n){e.eachSeries((function(t){var e=pC.getMarkerModelFromSeries(t,"markPoint");e&&(SC(e.getData(),t,n),this.markerGroupMap.get(t.id).updateLayout())}),this)},e.prototype.renderSeries=function(t,e,n,i){var r=t.coordinateSystem,o=t.id,a=t.getData(),s=this.markerGroupMap,l=s.get(o)||s.set(o,new jx),u=function(t,e,n){var i;i=t?O(t&&t.dimensions,(function(t){return C({name:t},e.getData().getDimensionInfo(e.getData().mapDimension(t))||{})})):[{name:"value",type:"float"}];var r=new nm(i,n),o=O(n.get("data"),z(yC,e));t&&(o=N(o,z(mC,t)));return r.initData(o,null,t?_C:function(t){return t.value}),r}(r,t,e);e.setData(u),SC(e.getData(),t,i),u.each((function(t){var n=u.getItemModel(t),i=n.getShallow("symbol"),r=n.getShallow("symbolSize"),o=n.getShallow("symbolRotate");if(F(i)||F(r)||F(o)){var s=e.getRawValue(t),l=e.getDataParams(t);F(i)&&(i=i(s,l)),F(r)&&(r=r(s,l)),F(o)&&(o=o(s,l))}var h=n.getModel("itemStyle").getItemStyle(),c=Ff(a,"color");h.fill||(h.fill=c),u.setItemVisual(t,{symbol:i,symbolSize:r,symbolRotate:o,style:h})})),l.updateData(u),this.group.add(l.group),u.eachItemGraphicEl((function(t){t.traverse((function(t){os(t).dataModel=e}))})),this.markKeep(l),l.group.silent=e.get("silent")||t.get("silent")},e.type="markPoint",e}(wC);var TC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.createMarkerModelFromSeries=function(t,n,i){return new e(t,n,i)},e.type="markLine",e.defaultOption={zlevel:0,z:5,symbol:["circle","arrow"],symbolSize:[8,16],precision:2,tooltip:{trigger:"item"},label:{show:!0,position:"end",distance:5},lineStyle:{type:"dashed"},emphasis:{label:{show:!0},lineStyle:{width:3}},animationEasing:"linear"},e}(pC),CC=Fl.prototype,IC=Ul.prototype,AC=function(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.percent=1};!function(t){function e(){return null!==t&&t.apply(this,arguments)||this}n(e,t)}(AC);function DC(t){return isNaN(+t.cpx1)||isNaN(+t.cpy1)}var kC=function(t){function e(e){var n=t.call(this,e)||this;return n.type="ec-line",n}return n(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new AC},e.prototype.buildPath=function(t,e){DC(e)?CC.buildPath.call(this,t,e):IC.buildPath.call(this,t,e)},e.prototype.pointAt=function(t){return DC(this.shape)?CC.pointAt.call(this,t):IC.pointAt.call(this,t)},e.prototype.tangentAt=function(t){var e=this.shape,n=DC(e)?[e.x2-e.x1,e.y2-e.y1]:IC.tangentAt.call(this,t);return St(n,n)},e}(Ea),LC=["fromSymbol","toSymbol"];function PC(t){return"_"+t+"Type"}function OC(t,e,n){var i=e.getItemVisual(n,t);if(i&&"none"!==i){var r=e.getItemVisual(n,t+"Size"),o=e.getItemVisual(n,t+"Rotate"),a=V(r)?r:[r,r],s=Rg(i,-a[0]/2,-a[1]/2,a[0],a[1]);return s.__specifiedRotation=null==o||isNaN(o)?void 0:+o*Math.PI/180||0,s.name=t,s}}function RC(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 NC=function(t){function e(e,n,i){var r=t.call(this)||this;return r._createLine(e,n,i),r}return n(e,t),e.prototype._createLine=function(t,e,n){var i=t.hostModel,r=function(t){var e=new kC({name:"line",subPixelOptimize:!0});return RC(e.shape,t),e}(t.getItemLayout(e));r.shape.percent=0,xu(r,{shape:{percent:1}},i,e),this.add(r),P(LC,(function(n){var i=OC(n,t,e);this.add(i),this[PC(n)]=t.getItemVisual(e,n)}),this),this._updateCommonStl(t,e,n)},e.prototype.updateData=function(t,e,n){var i=t.hostModel,r=this.childOfName("line"),o=t.getItemLayout(e),a={shape:{}};RC(a.shape,o),_u(r,a,i,e),P(LC,(function(n){var i=t.getItemVisual(e,n),r=PC(n);if(this[r]!==i){this.remove(this.childOfName(n));var o=OC(n,t,e);this.add(o)}this[r]=i}),this),this._updateCommonStl(t,e,n)},e.prototype.getLinePath=function(){return this.childAt(0)},e.prototype._updateCommonStl=function(t,e,n){var i=t.hostModel,r=this.childOfName("line"),o=n&&n.emphasisLineStyle,a=n&&n.blurLineStyle,s=n&&n.selectLineStyle,l=n&&n.labelStatesModels;if(!n||t.hasItemOption){var u=t.getItemModel(e);o=u.getModel(["emphasis","lineStyle"]).getLineStyle(),a=u.getModel(["blur","lineStyle"]).getLineStyle(),s=u.getModel(["select","lineStyle"]).getLineStyle(),l=Fu(u)}var h=t.getItemVisual(e,"style"),c=h.stroke;r.useStyle(h),r.style.fill=null,r.style.strokeNoScale=!0,r.ensureState("emphasis").style=o,r.ensureState("blur").style=a,r.ensureState("select").style=s,P(LC,(function(t){var e=this.childOfName(t);if(e){e.setColor(c),e.style.opacity=h.opacity;for(var n=0;n<us.length;n++){var i=us[n],o=r.getState(i);if(o){var a=o.style||{},s=e.ensureState(i),l=s.style||(s.style={});null!=a.stroke&&(l[e.__isEmptyBrush?"stroke":"fill"]=a.stroke),null!=a.opacity&&(l.opacity=a.opacity)}}e.markRedraw()}}),this);var p=i.getRawValue(e);Vu(this,l,{labelDataIndex:e,labelFetcher:{getFormattedLabel:function(e,n){return i.getFormattedLabel(e,n,t.dataType)}},inheritColor:c||"#000",defaultOpacity:h.opacity,defaultText:(null==p?t.getName(e):isFinite(p)?Hi(p):p)+""});var d=this.getTextContent();if(d){var f=l.normal;d.__align=d.style.align,d.__verticalAlign=d.style.verticalAlign,d.__position=f.get("position")||"middle";var g=f.get("distance");V(g)||(g=[g,g]),d.__labelDistance=g}this.setTextConfig({position:null,local:!0,inside:!1}),Hs(this)},e.prototype.highlight=function(){Ls(this)},e.prototype.downplay=function(){Ps(this)},e.prototype.updateLayout=function(t,e){this.setLinePoints(t.getItemLayout(e))},e.prototype.setLinePoints=function(t){var e=this.childOfName("line");RC(e.shape,t),e.dirty()},e.prototype.beforeUpdate=function(){var t=this,e=t.childOfName("fromSymbol"),n=t.childOfName("toSymbol"),i=t.getTextContent();if(e||n||i&&!i.ignore){for(var r=1,o=this.parent;o;)o.scaleX&&(r/=o.scaleX),o=o.parent;var a=t.childOfName("line");if(this.__dirty||a.__dirty){var s=a.shape.percent,l=a.pointAt(0),u=a.pointAt(s),h=vt([],u,l);if(St(h,h),e&&(e.setPosition(l),S(e,0),e.scaleX=e.scaleY=r*s,e.markRedraw()),n&&(n.setPosition(u),S(n,1),n.scaleX=n.scaleY=r*s,n.markRedraw()),i&&!i.ignore){i.x=i.y=0,i.originX=i.originY=0;var c=void 0,p=void 0,d=i.__labelDistance,f=d[0]*r,g=d[1]*r,y=s/2,v=a.tangentAt(y),m=[v[1],-v[0]],_=a.pointAt(y);m[1]>0&&(m[0]=-m[0],m[1]=-m[1]);var x=v[0]<0?-1:1;if("start"!==i.__position&&"end"!==i.__position){var b=-Math.atan2(v[1],v[0]);u[0]<l[0]&&(b=Math.PI+b),i.rotation=b}var w=void 0;switch(i.__position){case"insideStartTop":case"insideMiddleTop":case"insideEndTop":case"middle":w=-g,p="bottom";break;case"insideStartBottom":case"insideMiddleBottom":case"insideEndBottom":w=g,p="top";break;default:w=0,p="middle"}switch(i.__position){case"end":i.x=h[0]*f+u[0],i.y=h[1]*g+u[1],c=h[0]>.8?"left":h[0]<-.8?"right":"center",p=h[1]>.8?"top":h[1]<-.8?"bottom":"middle";break;case"start":i.x=-h[0]*f+l[0],i.y=-h[1]*g+l[1],c=h[0]>.8?"right":h[0]<-.8?"left":"center",p=h[1]>.8?"bottom":h[1]<-.8?"top":"middle";break;case"insideStartTop":case"insideStart":case"insideStartBottom":i.x=f*x+l[0],i.y=l[1]+w,c=v[0]<0?"right":"left",i.originX=-f*x,i.originY=-w;break;case"insideMiddleTop":case"insideMiddle":case"insideMiddleBottom":case"middle":i.x=_[0],i.y=_[1]+w,c="center",i.originY=-w;break;case"insideEndTop":case"insideEnd":case"insideEndBottom":i.x=-f*x+u[0],i.y=u[1]+w,c=v[0]>=0?"right":"left",i.originX=f*x,i.originY=-w}i.scaleX=i.scaleY=r,i.setStyle({verticalAlign:i.__verticalAlign||p,align:i.__align||c})}}}function S(t,e){var n=t.__specifiedRotation;if(null==n){var i=a.tangentAt(e);t.attr("rotation",(1===e?-1:1)*Math.PI/2-Math.atan2(i[1],i[0]))}else t.attr("rotation",n)}},e}(ki),EC=function(){function t(t){this.group=new ki,this._LineCtor=t||NC}return t.prototype.isPersistent=function(){return!0},t.prototype.updateData=function(t){var e=this,n=this,i=n.group,r=n._lineData;n._lineData=t,r||i.removeAll();var o=BC(t);t.diff(r).add((function(n){e._doAdd(t,n,o)})).update((function(n,i){e._doUpdate(r,t,i,n,o)})).remove((function(t){i.remove(r.getItemGraphicEl(t))})).execute()},t.prototype.updateLayout=function(){var t=this._lineData;t&&t.eachItemGraphicEl((function(e,n){e.updateLayout(t,n)}),this)},t.prototype.incrementalPrepareUpdate=function(t){this._seriesScope=BC(t),this._lineData=null,this.group.removeAll()},t.prototype.incrementalUpdate=function(t,e){function n(t){t.isGroup||function(t){return t.animators&&t.animators.length>0}(t)||(t.incremental=!0,t.ensureState("emphasis").hoverLayer=!0)}for(var i=t.start;i<t.end;i++){if(VC(e.getItemLayout(i))){var r=new this._LineCtor(e,i,this._seriesScope);r.traverse(n),this.group.add(r),e.setItemGraphicEl(i,r)}}},t.prototype.remove=function(){this.group.removeAll()},t.prototype._doAdd=function(t,e,n){if(VC(t.getItemLayout(e))){var i=new this._LineCtor(t,e,n);t.setItemGraphicEl(e,i),this.group.add(i)}},t.prototype._doUpdate=function(t,e,n,i,r){var o=t.getItemGraphicEl(n);VC(e.getItemLayout(i))?(o?o.updateData(e,i,r):o=new this._LineCtor(e,i,r),e.setItemGraphicEl(i,o),this.group.add(o)):this.group.remove(o)},t}();function BC(t){var e=t.hostModel;return{lineStyle:e.getModel("lineStyle").getLineStyle(),emphasisLineStyle:e.getModel(["emphasis","lineStyle"]).getLineStyle(),blurLineStyle:e.getModel(["blur","lineStyle"]).getLineStyle(),selectLineStyle:e.getModel(["select","lineStyle"]).getLineStyle(),labelStatesModels:Fu(e)}}function zC(t){return isNaN(t[0])||isNaN(t[1])}function VC(t){return!zC(t[0])&&!zC(t[1])}var FC=xr(),HC=function(t,e,n,i){var r,o=t.getData();if(V(i))r=i;else{var a=i.type;if("min"===a||"max"===a||"average"===a||"median"===a||null!=i.xAxis||null!=i.yAxis){var s=void 0,l=void 0;if(null!=i.yAxis||null!=i.xAxis)s=e.getAxis(null!=i.yAxis?"y":"x"),l=J(i.yAxis,i.xAxis);else{var u=vC(i,o,e,t);s=u.valueAxis,l=xC(o,cm(o,u.valueDataDim),a)}var h="x"===s.dim?0:1,c=1-h,p=w(i),d={coord:[]};p.type=null,p.coord=[],p.coord[c]=-1/0,d.coord[c]=1/0;var f=n.get("precision");f>=0&&"number"==typeof l&&(l=+l.toFixed(Math.min(f,20))),p.coord[h]=d.coord[h]=l,r=[p,d,{type:a,valueIndex:i.valueIndex,value:l}]}else r=[]}var g=[yC(t,r[0]),yC(t,r[1]),T({},r[2])];return g[2].type=g[2].type||null,S(g[2],g[0]),S(g[2],g[1]),g};function GC(t){return!isNaN(t)&&!isFinite(t)}function WC(t,e,n,i){var r=1-t,o=i.dimensions[t];return GC(e[r])&&GC(n[r])&&e[t]===n[t]&&i.getAxis(o).containData(e[t])}function UC(t,e){if("cartesian2d"===t.type){var n=e[0].coord,i=e[1].coord;if(n&&i&&(WC(1,n,i,t)||WC(0,n,i,t)))return!0}return mC(t,e[0])&&mC(t,e[1])}function YC(t,e,n,i,r){var o,a=i.coordinateSystem,s=t.getItemModel(e),l=Fi(s.get("x"),r.getWidth()),u=Fi(s.get("y"),r.getHeight());if(isNaN(l)||isNaN(u)){if(i.getMarkerPosition)o=i.getMarkerPosition(t.getValues(t.dimensions,e));else{var h=a.dimensions,c=t.get(h[0],e),p=t.get(h[1],e);o=a.dataToPoint([c,p])}if(hb(a,"cartesian2d")){var d=a.getAxis("x"),f=a.getAxis("y");h=a.dimensions;GC(t.get(h[0],e))?o[0]=d.toGlobalCoord(d.getExtent()[n?0:1]):GC(t.get(h[1],e))&&(o[1]=f.toGlobalCoord(f.getExtent()[n?0:1]))}isNaN(l)||(o[0]=l),isNaN(u)||(o[1]=u)}else o=[l,u];t.setItemLayout(e,o)}var XC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.updateTransform=function(t,e,n){e.eachSeries((function(t){var e=pC.getMarkerModelFromSeries(t,"markLine");if(e){var i=e.getData(),r=FC(e).from,o=FC(e).to;r.each((function(e){YC(r,e,!0,t,n),YC(o,e,!1,t,n)})),i.each((function(t){i.setItemLayout(t,[r.getItemLayout(t),o.getItemLayout(t)])})),this.markerGroupMap.get(t.id).updateLayout()}}),this)},e.prototype.renderSeries=function(t,e,n,i){var r=t.coordinateSystem,o=t.id,a=t.getData(),s=this.markerGroupMap,l=s.get(o)||s.set(o,new EC);this.group.add(l.group);var u=function(t,e,n){var i;i=t?O(t&&t.dimensions,(function(t){return C({name:t},e.getData().getDimensionInfo(e.getData().mapDimension(t))||{})})):[{name:"value",type:"float"}];var r=new nm(i,n),o=new nm(i,n),a=new nm([],n),s=O(n.get("data"),z(HC,e,t,n));t&&(s=N(s,z(UC,t)));var l=t?_C:function(t){return t.value};return r.initData(O(s,(function(t){return t[0]})),null,l),o.initData(O(s,(function(t){return t[1]})),null,l),a.initData(O(s,(function(t){return t[2]}))),a.hasItemOption=!0,{from:r,to:o,line:a}}(r,t,e),h=u.from,c=u.to,p=u.line;FC(e).from=h,FC(e).to=c,e.setData(p);var d=e.get("symbol"),f=e.get("symbolSize");function g(e,n,r){var o=e.getItemModel(n);YC(e,n,r,t,i);var s=o.getModel("itemStyle").getItemStyle();null==s.fill&&(s.fill=Ff(a,"color")),e.setItemVisual(n,{symbolRotate:o.get("symbolRotate"),symbolSize:o.get("symbolSize")||f[r?0:1],symbol:o.get("symbol",!0)||d[r?0:1],style:s})}V(d)||(d=[d,d]),V(f)||(f=[f,f]),u.from.each((function(t){g(h,t,!0),g(c,t,!1)})),p.each((function(t){var e=p.getItemModel(t).getModel("lineStyle").getLineStyle();p.setItemLayout(t,[h.getItemLayout(t),c.getItemLayout(t)]),null==e.stroke&&(e.stroke=h.getItemVisual(t,"style").fill),p.setItemVisual(t,{fromSymbolRotate:h.getItemVisual(t,"symbolRotate"),fromSymbolSize:h.getItemVisual(t,"symbolSize"),fromSymbol:h.getItemVisual(t,"symbol"),toSymbolRotate:c.getItemVisual(t,"symbolRotate"),toSymbolSize:c.getItemVisual(t,"symbolSize"),toSymbol:c.getItemVisual(t,"symbol"),style:e})})),l.updateData(p),u.line.eachItemGraphicEl((function(t,n){t.traverse((function(t){os(t).dataModel=e}))})),this.markKeep(l),l.group.silent=e.get("silent")||t.get("silent")},e.type="markLine",e}(wC);var ZC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.createMarkerModelFromSeries=function(t,n,i){return new e(t,n,i)},e.type="markArea",e.defaultOption={zlevel:0,z:1,tooltip:{trigger:"item"},animation:!1,label:{show:!0,position:"top"},itemStyle:{borderWidth:0},emphasis:{label:{show:!0,position:"top"}}},e}(pC),jC=xr(),qC=function(t,e,n,i){var r=yC(t,i[0]),o=yC(t,i[1]),a=r.coord,s=o.coord;a[0]=J(a[0],-1/0),a[1]=J(a[1],-1/0),s[0]=J(s[0],1/0),s[1]=J(s[1],1/0);var l=M([{},r,o]);return l.coord=[r.coord,o.coord],l.x0=r.x,l.y0=r.y,l.x1=o.x,l.y1=o.y,l};function KC(t){return!isNaN(t)&&!isFinite(t)}function $C(t,e,n,i){var r=1-t;return KC(e[r])&&KC(n[r])}function JC(t,e){var n=e.coord[0],i=e.coord[1];return!!(hb(t,"cartesian2d")&&n&&i&&($C(1,n,i)||$C(0,n,i)))||(mC(t,{coord:n,x:e.x0,y:e.y0})||mC(t,{coord:i,x:e.x1,y:e.y1}))}function QC(t,e,n,i,r){var o,a=i.coordinateSystem,s=t.getItemModel(e),l=Fi(s.get(n[0]),r.getWidth()),u=Fi(s.get(n[1]),r.getHeight());if(isNaN(l)||isNaN(u)){if(i.getMarkerPosition)o=i.getMarkerPosition(t.getValues(n,e));else{var h=[d=t.get(n[0],e),f=t.get(n[1],e)];a.clampData&&a.clampData(h,h),o=a.dataToPoint(h,!0)}if(hb(a,"cartesian2d")){var c=a.getAxis("x"),p=a.getAxis("y"),d=t.get(n[0],e),f=t.get(n[1],e);KC(d)?o[0]=c.toGlobalCoord(c.getExtent()["x0"===n[0]?0:1]):KC(f)&&(o[1]=p.toGlobalCoord(p.getExtent()["y0"===n[1]?0:1]))}isNaN(l)||(o[0]=l),isNaN(u)||(o[1]=u)}else o=[l,u];return o}var tI=[["x0","y0"],["x1","y0"],["x1","y1"],["x0","y1"]],eI=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.updateTransform=function(t,e,n){e.eachSeries((function(t){var e=pC.getMarkerModelFromSeries(t,"markArea");if(e){var i=e.getData();i.each((function(e){var r=O(tI,(function(r){return QC(i,e,r,t,n)}));i.setItemLayout(e,r),i.getItemGraphicEl(e).setShape("points",r)}))}}),this)},e.prototype.renderSeries=function(t,e,n,i){var r=t.coordinateSystem,o=t.id,a=t.getData(),s=this.markerGroupMap,l=s.get(o)||s.set(o,{group:new ki});this.group.add(l.group),this.markKeep(l);var u=function(t,e,n){var i,r,o=["x0","y0","x1","y1"];t?(i=O(t&&t.dimensions,(function(t){var n=e.getData();return C({name:t},n.getDimensionInfo(n.mapDimension(t))||{})})),r=new nm(O(o,(function(t,e){return{name:t,type:i[e%2].type}})),n)):r=new nm(i=[{name:"value",type:"float"}],n);var a=O(n.get("data"),z(qC,e,t,n));t&&(a=N(a,z(JC,t)));var s=t?function(t,e,n,i){return t.coord[Math.floor(i/2)][i%2]}:function(t){return t.value};return r.initData(a,null,s),r.hasItemOption=!0,r}(r,t,e);e.setData(u),u.each((function(e){var n=O(tI,(function(n){return QC(u,e,n,t,i)})),o=!0;P(tI,(function(t){if(o){var n=u.get(t[0],e),i=u.get(t[1],e);(KC(n)||r.getAxis("x").containData(n))&&(KC(i)||r.getAxis("y").containData(i))&&(o=!1)}})),u.setItemLayout(e,{points:n,allClipped:o});var s=u.getItemModel(e).getModel("itemStyle").getItemStyle(),l=Ff(a,"color");s.fill||(s.fill=l,"string"==typeof s.fill&&(s.fill=$e(s.fill,.4))),s.stroke||(s.stroke=l),u.setItemVisual(e,"style",s)})),u.diff(jC(l).data).add((function(t){var e=u.getItemLayout(t);if(!e.allClipped){var n=new Nl({shape:{points:e.points}});u.setItemGraphicEl(t,n),l.group.add(n)}})).update((function(t,n){var i=jC(l).data.getItemGraphicEl(n),r=u.getItemLayout(t);r.allClipped?i&&l.group.remove(i):(i?_u(i,{shape:{points:r.points}},e,t):i=new Nl({shape:{points:r.points}}),u.setItemGraphicEl(t,i),l.group.add(i))})).remove((function(t){var e=jC(l).data.getItemGraphicEl(t);l.group.remove(e)})).execute(),u.eachItemGraphicEl((function(t,n){var i=u.getItemModel(n),r=u.getItemVisual(n,"style");t.useStyle(u.getItemVisual(n,"style")),Vu(t,Fu(i),{labelFetcher:e,labelDataIndex:n,defaultText:u.getName(n)||"",inheritColor:"string"==typeof r.fill?$e(r.fill,1):"#000"}),Us(t,i),Hs(t),os(t).dataModel=e})),jC(l).data=u,l.group.silent=e.get("silent")||t.get("silent")},e.type="markArea",e}(wC);var nI=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.layoutMode={type:"box",ignoreSize:!0},n}return n(e,t),e.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n),t.selected=t.selected||{},this._updateSelector(t)},e.prototype.mergeOption=function(e,n){t.prototype.mergeOption.call(this,e,n),this._updateSelector(e)},e.prototype._updateSelector=function(t){var e=t.selector,n=this.ecModel;!0===e&&(e=t.selector=["all","inverse"]),V(e)&&P(e,(function(t,i){H(t)&&(t={type:t}),e[i]=S(t,function(t,e){return"all"===e?{type:"all",title:t.getLocale(["legend","selector","all"])}:"inverse"===e?{type:"inverse",title:t.getLocale(["legend","selector","inverse"])}:void 0}(n,t.type))}))},e.prototype.optionUpdated=function(){this._updateData(this.ecModel);var t=this._data;if(t[0]&&"single"===this.get("selectedMode")){for(var e=!1,n=0;n<t.length;n++){var i=t[n].get("name");if(this.isSelected(i)){this.select(i),e=!0;break}}!e&&this.select(t[0].get("name"))}},e.prototype._updateData=function(t){var e=[],n=[];t.eachRawSeries((function(i){var r,o=i.name;if(n.push(o),i.legendVisualProvider){var a=i.legendVisualProvider.getAllNames();t.isSeriesFiltered(i)||(n=n.concat(a)),a.length?e=e.concat(a):r=!0}else r=!0;r&&vr(i)&&e.push(i.name)})),this._availableNames=n;var i=O(this.get("data")||e,(function(t){return"string"!=typeof t&&"number"!=typeof t||(t={name:t}),new oh(t,this,this.ecModel)}),this);this._data=i},e.prototype.getData=function(){return this._data},e.prototype.select=function(t){var e=this.option.selected;"single"===this.get("selectedMode")&&P(this._data,(function(t){e[t.get("name")]=!1}));e[t]=!0},e.prototype.unSelect=function(t){"single"!==this.get("selectedMode")&&(this.option.selected[t]=!1)},e.prototype.toggleSelected=function(t){var e=this.option.selected;e.hasOwnProperty(t)||(e[t]=!0),this[e[t]?"unSelect":"select"](t)},e.prototype.allSelect=function(){var t=this._data,e=this.option.selected;P(t,(function(t){e[t.get("name",!0)]=!0}))},e.prototype.inverseSelect=function(){var t=this._data,e=this.option.selected;P(t,(function(t){var n=t.get("name",!0);e.hasOwnProperty(n)||(e[n]=!0),e[n]=!e[n]}))},e.prototype.isSelected=function(t){var e=this.option.selected;return!(e.hasOwnProperty(t)&&!e[t])&&A(this._availableNames,t)>=0},e.prototype.getOrient=function(){return"vertical"===this.get("orient")?{index:1,name:"vertical"}:{index:0,name:"horizontal"}},e.type="legend.plain",e.dependencies=["series"],e.defaultOption={zlevel:0,z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,inactiveColor:"#ccc",inactiveBorderColor:"#ccc",itemStyle:{borderWidth:0},textStyle:{color:"#333"},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:" sans-serif",color:"#666",borderWidth:1,borderColor:"#666"},emphasis:{selectorLabel:{show:!0,color:"#eee",backgroundColor:"#666"}},selectorPosition:"auto",selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1}},e}(vc),iI=z,rI=P,oI=ki,aI=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.newlineDisabled=!1,n}return n(e,t),e.prototype.init=function(){this.group.add(this._contentGroup=new oI),this.group.add(this._selectorGroup=new oI),this._isFirstRender=!0},e.prototype.getContentGroup=function(){return this._contentGroup},e.prototype.getSelectorGroup=function(){return this._selectorGroup},e.prototype.render=function(t,e,n){var i=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),t.get("show",!0)){var r=t.get("align"),o=t.get("orient");r&&"auto"!==r||(r="right"===t.get("left")&&"vertical"===o?"right":"left");var a=t.get("selector",!0),s=t.get("selectorPosition",!0);!a||s&&"auto"!==s||(s="horizontal"===o?"end":"start"),this.renderInner(r,t,e,n,a,o,s);var l=t.getBoxLayoutParams(),u={width:n.getWidth(),height:n.getHeight()},h=t.get("padding"),c=hc(l,u,h),p=this.layoutInner(t,r,c,i,a,s),d=hc(C({width:p.width,height:p.height},l),u,h);this.group.x=d.x-p.x,this.group.y=d.y-p.y,this.group.markRedraw(),this.group.add(this._backgroundEl=pM(p,t))}},e.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},e.prototype.renderInner=function(t,e,n,i,r,o,a){var s=this.getContentGroup(),l=ut(),u=e.get("selectedMode"),h=[];n.eachRawSeries((function(t){!t.get("legendHoverLink")&&h.push(t.id)})),rI(e.getData(),(function(r,o){var a=r.get("name");if(!this.newlineDisabled&&(""===a||"\n"===a)){var c=new oI;return c.newline=!0,void s.add(c)}var p=n.getSeriesByName(a)[0];if(!l.get(a)){if(p){var d=p.getData(),f=d.getVisual("style"),g=f[d.getVisual("drawType")]||f.fill,y=f.stroke,v=f.decal,m=d.getVisual("legendSymbol")||"roundRect",_=d.getVisual("symbol");this._createItem(a,o,r,e,m,_,t,g,y,v,u).on("click",iI(lI,a,null,i,h)).on("mouseover",iI(hI,p.name,null,i,h)).on("mouseout",iI(cI,p.name,null,i,h)),l.set(a,!0)}else n.eachRawSeries((function(n){if(!l.get(a)&&n.legendVisualProvider){var s=n.legendVisualProvider;if(!s.containName(a))return;var c=s.indexOfName(a),p=s.getItemVisual(c,"style"),d=p.stroke,f=p.decal,g=p.fill,y=We(p.fill);y&&0===y[3]&&(y[3]=.2,g=Je(y,"rgba"));this._createItem(a,o,r,e,"roundRect",null,t,g,d,f,u).on("click",iI(lI,null,a,i,h)).on("mouseover",iI(hI,null,a,i,h)).on("mouseout",iI(cI,null,a,i,h)),l.set(a,!0)}}),this);0}}),this),r&&this._createSelector(r,e,i,o,a)},e.prototype._createSelector=function(t,e,n,i,r){var o=this.getSelectorGroup();rI(t,(function(t){var i=t.type,r=new $a({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){n.dispatchAction({type:"all"===i?"legendAllSelect":"legendInverseSelect"})}});o.add(r),Vu(r,{normal:e.getModel("selectorLabel"),emphasis:e.getModel(["emphasis","selectorLabel"])},{defaultText:t.title}),Hs(r)}))},e.prototype._createItem=function(t,e,n,i,r,o,a,s,l,u,h){var c=i.get("itemWidth"),p=i.get("itemHeight"),d=i.get("inactiveColor"),f=i.get("inactiveBorderColor"),g=i.get("symbolKeepAspect"),y=i.getModel("itemStyle"),v=i.isSelected(t),m=new oI,_=n.getModel("textStyle"),x=n.get("icon"),b=n.getModel("tooltip"),w=b.parentModel,S=Rg(r=x||r,0,0,c,p,v?s:d,null==g||g);if(m.add(sI(S,r,y,l,f,u,v)),!x&&o&&(o!==r||"none"===o)){var M=.8*p;"none"===o&&(o="circle");var C=Rg(o,(c-M)/2,(p-M)/2,M,M,v?s:d,null==g||g);m.add(sI(C,o,y,l,f,u,v))}var I="left"===a?c+5:-5,A=a,D=i.get("formatter"),k=t;"string"==typeof D&&D?k=D.replace("{name}",null!=t?t:""):"function"==typeof D&&(k=D(t)),m.add(new $a({style:Hu(_,{text:k,x:I,y:p/2,fill:v?_.getTextColor():d,align:A,verticalAlign:"middle"})}));var L=new ja({shape:m.getBoundingRect(),invisible:!0});if(b.get("show")){var P={componentType:"legend",legendIndex:i.componentIndex,name:t,$vars:["name"]};L.tooltip=T({content:t,formatter:w.get("formatter",!0)||function(t){return t.name},formatterParams:P},b.option)}return m.add(L),m.eachChild((function(t){t.silent=!0})),L.silent=!h,this.getContentGroup().add(m),Hs(m),m.__legendDataIndex=e,m},e.prototype.layoutInner=function(t,e,n,i,r,o){var a=this.getContentGroup(),s=this.getSelectorGroup();uc(t.get("orient"),a,t.get("itemGap"),n.width,n.height);var l=a.getBoundingRect(),u=[-l.x,-l.y];if(s.markRedraw(),a.markRedraw(),r){uc("horizontal",s,t.get("selectorItemGap",!0));var h=s.getBoundingRect(),c=[-h.x,-h.y],p=t.get("selectorButtonGap",!0),d=t.getOrient().index,f=0===d?"width":"height",g=0===d?"height":"width",y=0===d?"y":"x";"end"===o?c[d]+=l[f]+p:u[d]+=h[f]+p,c[1-d]+=l[g]/2-h[g]/2,s.x=c[0],s.y=c[1],a.x=u[0],a.y=u[1];var v={x:0,y:0};return v[f]=l[f]+p+h[f],v[g]=Math.max(l[g],h[g]),v[y]=Math.min(0,h[y]+c[1-d]),v}return a.x=u[0],a.y=u[1],this.group.getBoundingRect()},e.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},e.type="legend.plain",e}(Fd);function sI(t,e,n,i,r,o,a){var s;return"line"!==e&&e.indexOf("empty")<0?(s=n.getItemStyle(),t.style.stroke=i,t.style.decal=o,a||(s.stroke=r)):s=n.getItemStyle(["borderWidth","borderColor"]),t.setStyle(s),t}function lI(t,e,n,i){cI(t,e,n,i),n.dispatchAction({type:"legendToggleSelect",name:null!=t?t:e}),hI(t,e,n,i)}function uI(t){for(var e,n=t.getZr().storage.getDisplayList(),i=0,r=n.length;i<r&&!(e=n[i].states.emphasis);)i++;return e&&e.hoverLayer}function hI(t,e,n,i){uI(n)||n.dispatchAction({type:"highlight",seriesName:t,name:e,excludeSeriesId:i})}function cI(t,e,n,i){uI(n)||n.dispatchAction({type:"downplay",seriesName:t,name:e,excludeSeriesId:i})}function pI(t){var e=t.findComponents({mainType:"legend"});e&&e.length&&t.filterSeries((function(t){for(var n=0;n<e.length;n++)if(!e[n].isSelected(t.name))return!1;return!0}))}function dI(t,e,n){var i,r={},o="toggleSelected"===t;return n.eachComponent("legend",(function(n){o&&null!=i?n[i?"select":"unSelect"](e.name):"allSelect"===t||"inverseSelect"===t?n[t]():(n[t](e.name),i=n.isSelected(e.name)),P(n.getData(),(function(t){var e=t.get("name");if("\n"!==e&&""!==e){var i=n.isSelected(e);r.hasOwnProperty(e)?r[e]=r[e]&&i:r[e]=i}}))})),"allSelect"===t||"inverseSelect"===t?{selected:r}:{name:e.name,selected:r}}function fI(t){t.registerComponentModel(nI),t.registerComponentView(aI),t.registerProcessor(t.PRIORITY.PROCESSOR.SERIES_FILTER,pI),t.registerSubTypeDefaulter("legend",(function(){return"plain"})),function(t){t.registerAction("legendToggleSelect","legendselectchanged",z(dI,"toggleSelected")),t.registerAction("legendAllSelect","legendselectall",z(dI,"allSelect")),t.registerAction("legendInverseSelect","legendinverseselect",z(dI,"inverseSelect")),t.registerAction("legendSelect","legendselected",z(dI,"select")),t.registerAction("legendUnSelect","legendunselected",z(dI,"unSelect"))}(t)}var gI=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.setScrollDataIndex=function(t){this.option.scrollDataIndex=t},e.prototype.init=function(e,n,i){var r=fc(e);t.prototype.init.call(this,e,n,i),yI(this,e,r)},e.prototype.mergeOption=function(e,n){t.prototype.mergeOption.call(this,e,n),yI(this,this.option,e)},e.type="legend.scroll",e.defaultOption=lh(nI.defaultOption,{scrollDataIndex:0,pageButtonItemGap:5,pageButtonGap:null,pageButtonPosition:"end",pageFormatter:"{current}/{total}",pageIcons:{horizontal:["M0,0L12,-10L12,10z","M0,0L-12,-10L-12,10z"],vertical:["M0,0L20,0L10,-20z","M0,0L20,0L10,20z"]},pageIconColor:"#2f4554",pageIconInactiveColor:"#aaa",pageIconSize:15,pageTextStyle:{color:"#333"},animationDurationUpdate:800}),e}(nI);function yI(t,e,n){var i=[1,1];i[t.getOrient().index]=0,dc(e,n,{type:"box",ignoreSize:!!i})}var vI=ki,mI=["width","height"],_I=["x","y"],xI=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.newlineDisabled=!0,n._currentIndex=0,n}return n(e,t),e.prototype.init=function(){t.prototype.init.call(this),this.group.add(this._containerGroup=new vI),this._containerGroup.add(this.getContentGroup()),this.group.add(this._controllerGroup=new vI)},e.prototype.resetInner=function(){t.prototype.resetInner.call(this),this._controllerGroup.removeAll(),this._containerGroup.removeClipPath(),this._containerGroup.__rectSize=null},e.prototype.renderInner=function(e,n,i,r,o,a,s){var l=this;t.prototype.renderInner.call(this,e,n,i,r,o,a,s);var u=this._controllerGroup,h=n.get("pageIconSize",!0),c=V(h)?h:[h,h];d("pagePrev",0);var p=n.getModel("pageTextStyle");function d(t,e){var i=t+"DataIndex",o=Pu(n.get("pageIcons",!0)[n.getOrient().name][e],{onclick:B(l._pageGo,l,i,n,r)},{x:-c[0]/2,y:-c[1]/2,width:c[0],height:c[1]});o.name=t,u.add(o)}u.add(new $a({name:"pageText",style:{text:"xx/xx",fill:p.getTextColor(),font:p.getFont(),verticalAlign:"middle",align:"center"},silent:!0})),d("pageNext",1)},e.prototype.layoutInner=function(t,e,n,i,r,o){var a=this.getSelectorGroup(),s=t.getOrient().index,l=mI[s],u=_I[s],h=mI[1-s],c=_I[1-s];r&&uc("horizontal",a,t.get("selectorItemGap",!0));var p=t.get("selectorButtonGap",!0),d=a.getBoundingRect(),f=[-d.x,-d.y],g=w(n);r&&(g[l]=n[l]-d[l]-p);var y=this._layoutContentAndController(t,i,g,s,l,h,c,u);if(r){if("end"===o)f[s]+=y[l]+p;else{var v=d[l]+p;f[s]-=v,y[u]-=v}y[l]+=d[l]+p,f[1-s]+=y[c]+y[h]/2-d[h]/2,y[h]=Math.max(y[h],d[h]),y[c]=Math.min(y[c],d[c]+f[1-s]),a.x=f[0],a.y=f[1],a.markRedraw()}return y},e.prototype._layoutContentAndController=function(t,e,n,i,r,o,a,s){var l=this.getContentGroup(),u=this._containerGroup,h=this._controllerGroup;uc(t.get("orient"),l,t.get("itemGap"),i?n.width:null,i?null:n.height),uc("horizontal",h,t.get("pageButtonItemGap",!0));var c=l.getBoundingRect(),p=h.getBoundingRect(),d=this._showController=c[r]>n[r],f=[-c.x,-c.y];e||(f[i]=l[s]);var g=[0,0],y=[-p.x,-p.y],v=Q(t.get("pageButtonGap",!0),t.get("itemGap",!0));d&&("end"===t.get("pageButtonPosition",!0)?y[i]+=n[r]-p[r]:g[i]+=p[r]+v);y[1-i]+=c[o]/2-p[o]/2,l.setPosition(f),u.setPosition(g),h.setPosition(y);var m={x:0,y:0};if(m[r]=d?n[r]:c[r],m[o]=Math.max(c[o],p[o]),m[a]=Math.min(0,p[a]+y[1-i]),u.__rectSize=n[r],d){var _={x:0,y:0};_[r]=Math.max(n[r]-p[r]-v,0),_[o]=m[o],u.setClipPath(new ja({shape:_})),u.__rectSize=_[r]}else h.eachChild((function(t){t.attr({invisible:!0,silent:!0})}));var x=this._getPageInfo(t);return null!=x.pageIndex&&_u(l,{x:x.contentPosition[0],y:x.contentPosition[1]},d?t:null),this._updatePageInfoView(t,x),m},e.prototype._pageGo=function(t,e,n){var i=this._getPageInfo(e)[t];null!=i&&n.dispatchAction({type:"legendScroll",scrollDataIndex:i,legendId:e.id})},e.prototype._updatePageInfoView=function(t,e){var n=this._controllerGroup;P(["pagePrev","pageNext"],(function(i){var r=null!=e[i+"DataIndex"],o=n.childOfName(i);o&&(o.setStyle("fill",r?t.get("pageIconColor",!0):t.get("pageIconInactiveColor",!0)),o.cursor=r?"pointer":"default")}));var i=n.childOfName("pageText"),r=t.get("pageFormatter"),o=e.pageIndex,a=null!=o?o+1:0,s=e.pageCount;i&&r&&i.setStyle("text",H(r)?r.replace("{current}",null==a?"":a+"").replace("{total}",null==s?"":s+""):r({current:a,total:s}))},e.prototype._getPageInfo=function(t){var e=t.get("scrollDataIndex",!0),n=this.getContentGroup(),i=this._containerGroup.__rectSize,r=t.getOrient().index,o=mI[r],a=_I[r],s=this._findTargetItemIndex(e),l=n.children(),u=l[s],h=l.length,c=h?1:0,p={contentPosition:[n.x,n.y],pageCount:c,pageIndex:c-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!u)return p;var d=m(u);p.contentPosition[r]=-d.s;for(var f=s+1,g=d,y=d,v=null;f<=h;++f)(!(v=m(l[f]))&&y.e>g.s+i||v&&!_(v,g.s))&&(g=y.i>g.i?y:v)&&(null==p.pageNextDataIndex&&(p.pageNextDataIndex=g.i),++p.pageCount),y=v;for(f=s-1,g=d,y=d,v=null;f>=-1;--f)(v=m(l[f]))&&_(y,v.s)||!(g.i<y.i)||(y=g,null==p.pagePrevDataIndex&&(p.pagePrevDataIndex=g.i),++p.pageCount,++p.pageIndex),g=v;return p;function m(t){if(t){var e=t.getBoundingRect(),n=e[a]+t[a];return{s:n,e:n+e[o],i:t.__legendDataIndex}}}function _(t,e){return t.e>=e&&t.s<=e+i}},e.prototype._findTargetItemIndex=function(t){return this._showController?(this.getContentGroup().eachChild((function(i,r){var o=i.__legendDataIndex;null==n&&null!=o&&(n=r),o===t&&(e=r)})),null!=e?e:n):0;var e,n},e.type="legend.scroll",e}(aI);function bI(t){Cv(fI),t.registerComponentModel(gI),t.registerComponentView(xI),function(t){t.registerAction("legendScroll","legendscroll",(function(t,e){var n=t.scrollDataIndex;null!=n&&e.eachComponent({mainType:"legend",subType:"scroll",query:t},(function(t){t.setScrollDataIndex(n)}))}))}(t)}var wI=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="dataZoom.inside",e.defaultOption=lh(XS.defaultOption,{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),e}(XS),SI=function(t){function e(e){var n=t.call(this)||this;n._zr=e;var i=B(n._mousedownHandler,n),r=B(n._mousemoveHandler,n),o=B(n._mouseupHandler,n),a=B(n._mousewheelHandler,n),s=B(n._pinchHandler,n);return n.enable=function(t,n){this.disable(),this._opt=C(w(n)||{},{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),null==t&&(t=!0),!0!==t&&"move"!==t&&"pan"!==t||(e.on("mousedown",i),e.on("mousemove",r),e.on("mouseup",o)),!0!==t&&"scale"!==t&&"zoom"!==t||(e.on("mousewheel",a),e.on("pinch",s))},n.disable=function(){e.off("mousedown",i),e.off("mousemove",r),e.off("mouseup",o),e.off("mousewheel",a),e.off("pinch",s)},n}return n(e,t),e.prototype.isDragging=function(){return this._dragging},e.prototype.isPinching=function(){return this._pinching},e.prototype.setPointerChecker=function(t){this.pointerChecker=t},e.prototype.dispose=function(){this.disable()},e.prototype._mousedownHandler=function(t){if(!($t(t)||t.target&&t.target.draggable)){var e=t.offsetX,n=t.offsetY;this.pointerChecker&&this.pointerChecker(t,e,n)&&(this._x=e,this._y=n,this._dragging=!0)}},e.prototype._mousemoveHandler=function(t){if(this._dragging&&CI("moveOnMouseMove",t,this._opt)&&"pinch"!==t.gestureEvent&&!LM(this._zr,"globalPan")){var e=t.offsetX,n=t.offsetY,i=this._x,r=this._y,o=e-i,a=n-r;this._x=e,this._y=n,this._opt.preventDefaultMouseMove&&Kt(t.event),TI(this,"pan","moveOnMouseMove",t,{dx:o,dy:a,oldX:i,oldY:r,newX:e,newY:n,isAvailableBehavior:null})}},e.prototype._mouseupHandler=function(t){$t(t)||(this._dragging=!1)},e.prototype._mousewheelHandler=function(t){var e=CI("zoomOnMouseWheel",t,this._opt),n=CI("moveOnMouseWheel",t,this._opt),i=t.wheelDelta,r=Math.abs(i),o=t.offsetX,a=t.offsetY;if(0!==i&&(e||n)){if(e){var s=r>3?1.4:r>1?1.2:1.1;MI(this,"zoom","zoomOnMouseWheel",t,{scale:i>0?s:1/s,originX:o,originY:a,isAvailableBehavior:null})}if(n){var l=Math.abs(i);MI(this,"scrollMove","moveOnMouseWheel",t,{scrollDelta:(i>0?1:-1)*(l>3?.4:l>1?.15:.05),originX:o,originY:a,isAvailableBehavior:null})}}},e.prototype._pinchHandler=function(t){LM(this._zr,"globalPan")||MI(this,"zoom",null,t,{scale:t.pinchScale>1?1.1:1/1.1,originX:t.pinchX,originY:t.pinchY,isAvailableBehavior:null})},e}(Nt);function MI(t,e,n,i,r){t.pointerChecker&&t.pointerChecker(i,r.originX,r.originY)&&(Kt(i.event),TI(t,e,n,i,r))}function TI(t,e,n,i,r){r.isAvailableBehavior=B(CI,null,n,i),t.trigger(e,r)}function CI(t,e,n){var i=n[t];return!t||i&&(!H(i)||e.event[i+"Key"])}var II=xr();function AI(t,e,n){II(t).coordSysRecordMap.each((function(t){var i=t.dataZoomInfoMap.get(e.uid);i&&(i.getRange=n)}))}function DI(t,e){if(e){t.removeKey(e.model.uid);var n=e.controller;n&&n.dispose()}}function kI(t,e){t.dispatchAction({type:"dataZoom",animation:{easing:"cubicOut",duration:100},batch:e})}function LI(t,e,n,i){return t.coordinateSystem.containPoint([n,i])}function PI(t){t.registerProcessor(t.PRIORITY.PROCESSOR.FILTER,(function(t,e){var n=II(e),i=n.coordSysRecordMap||(n.coordSysRecordMap=ut());i.each((function(t){t.dataZoomInfoMap=null})),t.eachComponent({mainType:"dataZoom",subType:"inside"},(function(t){P(US(t).infoList,(function(n){var r=n.model.uid,o=i.get(r)||i.set(r,function(t,e){var n={model:e,containsPoint:z(LI,e),dispatchAction:z(kI,t),dataZoomInfoMap:null,controller:null},i=n.controller=new SI(t.getZr());return P(["pan","zoom","scrollMove"],(function(t){i.on(t,(function(e){var i=[];n.dataZoomInfoMap.each((function(r){if(e.isAvailableBehavior(r.model.option)){var o=(r.getRange||{})[t],a=o&&o(r.dzReferCoordSysInfo,n.model.mainType,n.controller,e);!r.model.get("disabled",!0)&&a&&i.push({dataZoomId:r.model.id,start:a[0],end:a[1]})}})),i.length&&n.dispatchAction(i)}))})),n}(e,n.model));(o.dataZoomInfoMap||(o.dataZoomInfoMap=ut())).set(t.uid,{dzReferCoordSysInfo:n,model:t,getRange:null})}))})),i.each((function(t){var e,n=t.controller,r=t.dataZoomInfoMap;if(r){var o=r.keys()[0];null!=o&&(e=r.get(o))}if(e){var a=function(t){var e,n="type_",i={type_true:2,type_move:1,type_false:0,type_undefined:-1},r=!0;return t.each((function(t){var o=t.model,a=!o.get("disabled",!0)&&(!o.get("zoomLock",!0)||"move");i[n+a]>i[n+e]&&(e=a),r=r&&o.get("preventDefaultMouseMove",!0)})),{controlType:e,opt:{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!0,preventDefaultMouseMove:!!r}}}(r);n.enable(a.controlType,a.opt),n.setPointerChecker(t.containsPoint),tf(t,"dispatchAction",e.model.get("throttle",!0),"fixRate")}else DI(i,t)}))}))}var OI=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="dataZoom.inside",e}return n(e,t),e.prototype.render=function(e,n,i){t.prototype.render.apply(this,arguments),e.noTarget()?this._clear():(this.range=e.getPercentRange(),AI(i,e,{pan:B(RI.pan,this),zoom:B(RI.zoom,this),scrollMove:B(RI.scrollMove,this)}))},e.prototype.dispose=function(){this._clear(),t.prototype.dispose.apply(this,arguments)},e.prototype._clear=function(){!function(t,e){for(var n=II(t).coordSysRecordMap,i=n.keys(),r=0;r<i.length;r++){var o=i[r],a=n.get(o),s=a.dataZoomInfoMap;if(s){var l=e.uid;s.get(l)&&(s.removeKey(l),s.keys().length||DI(n,a))}}}(this.api,this.dataZoomModel),this.range=null},e.type="dataZoom.inside",e}(qS),RI={zoom:function(t,e,n,i){var r=this.range,o=r.slice(),a=t.axisModels[0];if(a){var s=EI[e](null,[i.originX,i.originY],a,n,t),l=(s.signal>0?s.pixelStart+s.pixelLength-s.pixel:s.pixel-s.pixelStart)/s.pixelLength*(o[1]-o[0])+o[0],u=Math.max(1/i.scale,0);o[0]=(o[0]-l)*u+l,o[1]=(o[1]-l)*u+l;var h=this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();return $S(0,o,[0,100],0,h.minSpan,h.maxSpan),this.range=o,r[0]!==o[0]||r[1]!==o[1]?o:void 0}},pan:NI((function(t,e,n,i,r,o){var a=EI[i]([o.oldX,o.oldY],[o.newX,o.newY],e,r,n);return a.signal*(t[1]-t[0])*a.pixel/a.pixelLength})),scrollMove:NI((function(t,e,n,i,r,o){return EI[i]([0,0],[o.scrollDelta,o.scrollDelta],e,r,n).signal*(t[1]-t[0])*o.scrollDelta}))};function NI(t){return function(e,n,i,r){var o=this.range,a=o.slice(),s=e.axisModels[0];if(s)return $S(t(a,s,e,n,i,r),a,[0,100],"all"),this.range=a,o[0]!==a[0]||o[1]!==a[1]?a:void 0}}var EI={grid:function(t,e,n,i,r){var o=n.axis,a={},s=r.model.coordinateSystem.getRect();return t=t||[0,0],"x"===o.dim?(a.pixel=e[0]-t[0],a.pixelLength=s.width,a.pixelStart=s.x,a.signal=o.inverse?1:-1):(a.pixel=e[1]-t[1],a.pixelLength=s.height,a.pixelStart=s.y,a.signal=o.inverse?-1:1),a},polar:function(t,e,n,i,r){var o=n.axis,a={},s=r.model.coordinateSystem,l=s.getRadiusAxis().getExtent(),u=s.getAngleAxis().getExtent();return t=t?s.pointToCoord(t):[0,0],e=s.pointToCoord(e),"radiusAxis"===n.mainType?(a.pixel=e[0]-t[0],a.pixelLength=l[1]-l[0],a.pixelStart=l[0],a.signal=o.inverse?1:-1):(a.pixel=e[1]-t[1],a.pixelLength=u[1]-u[0],a.pixelStart=u[0],a.signal=o.inverse?-1:1),a},singleAxis:function(t,e,n,i,r){var o=n.axis,a=r.model.coordinateSystem.getRect(),s={};return t=t||[0,0],"horizontal"===o.orient?(s.pixel=e[0]-t[0],s.pixelLength=a.width,s.pixelStart=a.x,s.signal=o.inverse?1:-1):(s.pixel=e[1]-t[1],s.pixelLength=a.height,s.pixelStart=a.y,s.signal=o.inverse?-1:1),s}};function BI(t){oM(t),t.registerComponentModel(wI),t.registerComponentView(OI),PI(t)}var zI=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="dataZoom.slider",e.layoutMode="box",e.defaultOption=lh(XS.defaultOption,{show:!0,right:"ph",top:"ph",width:"ph",height:"ph",left:null,bottom:null,borderColor:"#d2dbee",borderRadius:3,backgroundColor:"rgba(47,69,84,0)",dataBackground:{lineStyle:{color:"#d2dbee",width:.5},areaStyle:{color:"#d2dbee",opacity:.2}},selectedDataBackground:{lineStyle:{color:"#8fb0f7",width:.5},areaStyle:{color:"#8fb0f7",opacity:.2}},fillerColor:"rgba(135,175,274,0.2)",handleIcon:"path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z",handleSize:"100%",handleStyle:{color:"#fff",borderColor:"#ACB8D1"},moveHandleSize:7,moveHandleIcon:"path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z",moveHandleStyle:{color:"#D2DBEE",opacity:.7},showDetail:!0,showDataShadow:"auto",realtime:!0,zoomLock:!1,textStyle:{color:"#6E7079"},brushSelect:!0,brushStyle:{color:"rgba(135,175,274,0.15)"},emphasis:{handleStyle:{borderColor:"#8FB0F7"},moveHandleStyle:{color:"#8FB0F7"}}}),e}(XS),VI=ja,FI="horizontal",HI="vertical",GI=["line","bar","candlestick","scatter"],WI={easing:"cubicOut",duration:100},UI=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._displayables={},n}return n(e,t),e.prototype.init=function(t,e){this.api=e,this._onBrush=B(this._onBrush,this),this._onBrushEnd=B(this._onBrushEnd,this)},e.prototype.render=function(e,n,i,r){if(t.prototype.render.apply(this,arguments),tf(this,"_dispatchZoomAction",e.get("throttle"),"fixRate"),this._orient=e.getOrient(),!1!==e.get("show")){if(e.noTarget())return this._clear(),void this.group.removeAll();r&&"dataZoom"===r.type&&r.from===this.uid||this._buildView(),this._updateView()}else this.group.removeAll()},e.prototype.dispose=function(){this._clear(),t.prototype.dispose.apply(this,arguments)},e.prototype._clear=function(){var t,e,n;(n=(t=this)[e="_dispatchZoomAction"])&&n[Kd]&&(t[e]=n[Kd]);var i=this.api.getZr();i.off("mousemove",this._onBrush),i.off("mouseup",this._onBrushEnd)},e.prototype._buildView=function(){var t=this.group;t.removeAll(),this._brushing=!1,this._displayables.brushRect=null,this._resetLocation(),this._resetInterval();var e=this._displayables.sliderGroup=new ki;this._renderBackground(),this._renderHandle(),this._renderDataShadow(),t.add(e),this._positionGroup()},e.prototype._resetLocation=function(){var t=this.dataZoomModel,e=this.api,n=t.get("brushSelect")?7:0,i=this._findCoordRect(),r={width:e.getWidth(),height:e.getHeight()},o=this._orient===FI?{right:r.width-i.x-i.width,top:r.height-30-7-n,width:i.width,height:30}:{right:7,top:i.y,width:30,height:i.height},a=fc(t.option);P(["right","top","width","height"],(function(t){"ph"===a[t]&&(a[t]=o[t])}));var s=hc(a,r);this._location={x:s.x,y:s.y},this._size=[s.width,s.height],this._orient===HI&&this._size.reverse()},e.prototype._positionGroup=function(){var t=this.group,e=this._location,n=this._orient,i=this.dataZoomModel.getFirstTargetAxisModel(),r=i&&i.get("inverse"),o=this._displayables.sliderGroup,a=(this._dataShadowInfo||{}).otherAxisInverse;o.attr(n!==FI||r?n===FI&&r?{scaleY:a?1:-1,scaleX:-1}:n!==HI||r?{scaleY:a?-1:1,scaleX:-1,rotation:Math.PI/2}:{scaleY:a?-1:1,scaleX:1,rotation:Math.PI/2}:{scaleY:a?1:-1,scaleX:1});var s=t.getBoundingRect([o]);t.x=e.x-s.x,t.y=e.y-s.y,t.markRedraw()},e.prototype._getViewExtent=function(){return[0,this._size[0]]},e.prototype._renderBackground=function(){var t=this.dataZoomModel,e=this._size,n=this._displayables.sliderGroup,i=t.get("brushSelect");n.add(new VI({silent:!0,shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:t.get("backgroundColor")},z2:-40}));var r=new VI({shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:"transparent"},z2:0,onclick:B(this._onClickPanel,this)}),o=this.api.getZr();i?(r.on("mousedown",this._onBrushStart,this),r.cursor="crosshair",o.on("mousemove",this._onBrush),o.on("mouseup",this._onBrushEnd)):(o.off("mousemove",this._onBrush),o.off("mouseup",this._onBrushEnd)),n.add(r)},e.prototype._renderDataShadow=function(){var t=this._dataShadowInfo=this._prepareDataShadowInfo();if(this._displayables.dataShadowSegs=[],t){var e=this._size,n=t.series,i=n.getRawData(),r=n.getShadowDim?n.getShadowDim():t.otherDim;if(null!=r){var o=i.getDataExtent(r),a=.3*(o[1]-o[0]);o=[o[0]-a,o[1]+a];var s,l=[0,e[1]],u=[0,e[0]],h=[[e[0],0],[0,0]],c=[],p=u[1]/(i.count()-1),d=0,f=Math.round(i.count()/e[0]);i.each([r],(function(t,e){if(f>0&&e%f)d+=p;else{var n=null==t||isNaN(t)||""===t,i=n?0:Vi(t,o,l,!0);n&&!s&&e?(h.push([h[h.length-1][0],0]),c.push([c[c.length-1][0],0])):!n&&s&&(h.push([d,0]),c.push([d,0])),h.push([d,i]),c.push([d,i]),d+=p,s=n}}));for(var g=this.dataZoomModel,y=0;y<3;y++){var v=m(1===y);this._displayables.sliderGroup.add(v),this._displayables.dataShadowSegs.push(v)}}}function m(t){var e=g.getModel(t?"selectedDataBackground":"dataBackground"),n=new ki,i=new Nl({shape:{points:h},segmentIgnoreThreshold:1,style:e.getModel("areaStyle").getAreaStyle(),silent:!0,z2:-20}),r=new Bl({shape:{points:c},segmentIgnoreThreshold:1,style:e.getModel("lineStyle").getLineStyle(),silent:!0,z2:-19});return n.add(i),n.add(r),n}},e.prototype._prepareDataShadowInfo=function(){var t=this.dataZoomModel,e=t.get("showDataShadow");if(!1!==e){var n,i=this.ecModel;return t.eachTargetAxis((function(r,o){P(t.getAxisProxy(r,o).getTargetSeriesModels(),(function(t){if(!(n||!0!==e&&A(GI,t.get("type"))<0)){var a,s=i.getComponent(GS(r),o).axis,l={x:"y",y:"x",radius:"angle",angle:"radius"}[r],u=t.coordinateSystem;null!=l&&u.getOtherAxis&&(a=u.getOtherAxis(s).inverse),l=t.getData().mapDimension(l),n={thisAxis:s,series:t,thisDim:r,otherDim:l,otherAxisInverse:a}}}),this)}),this),n}},e.prototype._renderHandle=function(){var t=this.group,e=this._displayables,n=e.handles=[null,null],i=e.handleLabels=[null,null],r=this._displayables.sliderGroup,o=this._size,a=this.dataZoomModel,s=this.api,l=a.get("borderRadius")||0,u=a.get("brushSelect"),h=e.filler=new VI({silent:u,style:{fill:a.get("fillerColor")},textConfig:{position:"inside"}});r.add(h),r.add(new VI({silent:!0,subPixelOptimize:!0,shape:{x:0,y:0,width:o[0],height:o[1],r:l},style:{stroke:a.get("dataBackgroundColor")||a.get("borderColor"),lineWidth:1,fill:"rgba(0,0,0,0)"}})),P([0,1],(function(e){var o=a.get("handleIcon");!Lg[o]&&o.indexOf("path://")<0&&(o="path://"+o);var s=Rg(o,-1,0,2,2,null,!0);s.attr({cursor:YI(this._orient),draggable:!0,drift:B(this._onDragMove,this,e),ondragend:B(this._onDragEnd,this),onmouseover:B(this._showDataInfo,this,!0),onmouseout:B(this._showDataInfo,this,!1),z2:5});var l=s.getBoundingRect(),u=a.get("handleSize");this._handleHeight=Fi(u,this._size[1]),this._handleWidth=l.width/l.height*this._handleHeight,s.setStyle(a.getModel("handleStyle").getItemStyle()),s.style.strokeNoScale=!0,s.rectHover=!0,s.ensureState("emphasis").style=a.getModel(["emphasis","handleStyle"]).getItemStyle(),Hs(s);var h=a.get("handleColor");null!=h&&(s.style.fill=h),r.add(n[e]=s);var c=a.getModel("textStyle");t.add(i[e]=new $a({silent:!0,invisible:!0,style:{x:0,y:0,text:"",verticalAlign:"middle",align:"center",fill:c.getTextColor(),font:c.getFont()},z2:10}))}),this);var c=h;if(u){var p=Fi(a.get("moveHandleSize"),o[1]),d=e.moveHandle=new ja({style:a.getModel("moveHandleStyle").getItemStyle(),silent:!0,shape:{r:[0,0,2,2],y:o[1]-.5,height:p}}),f=.8*p,g=e.moveHandleIcon=Rg(a.get("moveHandleIcon"),-f/2,-f/2,f,f,"#fff",!0);g.silent=!0,g.y=o[1]+p/2-.5,d.ensureState("emphasis").style=a.getModel(["emphasis","moveHandleStyle"]).getItemStyle();var y=Math.min(o[1]/2,Math.max(p,10));(c=e.moveZone=new ja({invisible:!0,shape:{y:o[1]-y,height:p+y}})).on("mouseover",(function(){s.enterEmphasis(d)})).on("mouseout",(function(){s.leaveEmphasis(d)})),r.add(d),r.add(g),r.add(c)}c.attr({draggable:!0,cursor:YI(this._orient),drift:B(this._onDragMove,this,"all"),ondragstart:B(this._showDataInfo,this,!0),ondragend:B(this._onDragEnd,this),onmouseover:B(this._showDataInfo,this,!0),onmouseout:B(this._showDataInfo,this,!1)})},e.prototype._resetInterval=function(){var t=this._range=this.dataZoomModel.getPercentRange(),e=this._getViewExtent();this._handleEnds=[Vi(t[0],[0,100],e,!0),Vi(t[1],[0,100],e,!0)]},e.prototype._updateInterval=function(t,e){var n=this.dataZoomModel,i=this._handleEnds,r=this._getViewExtent(),o=n.findRepresentativeAxisProxy().getMinMaxSpan(),a=[0,100];$S(e,i,r,n.get("zoomLock")?"all":t,null!=o.minSpan?Vi(o.minSpan,a,r,!0):null,null!=o.maxSpan?Vi(o.maxSpan,a,r,!0):null);var s=this._range,l=this._range=Gi([Vi(i[0],r,a,!0),Vi(i[1],r,a,!0)]);return!s||s[0]!==l[0]||s[1]!==l[1]},e.prototype._updateView=function(t){var e=this._displayables,n=this._handleEnds,i=Gi(n.slice()),r=this._size;P([0,1],(function(t){var i=e.handles[t],o=this._handleHeight;i.attr({scaleX:o/2,scaleY:o/2,x:n[t]+(t?-1:1),y:r[1]/2-o/2})}),this),e.filler.setShape({x:i[0],y:0,width:i[1]-i[0],height:r[1]});var o={x:i[0],width:i[1]-i[0]};e.moveHandle&&(e.moveHandle.setShape(o),e.moveZone.setShape(o),e.moveZone.getBoundingRect(),e.moveHandleIcon&&e.moveHandleIcon.attr("x",o.x+o.width/2));for(var a=e.dataShadowSegs,s=[0,i[0],i[1],r[0]],l=0;l<a.length;l++){var u=a[l],h=u.getClipPath();h||(h=new ja,u.setClipPath(h)),h.setShape({x:s[l],y:0,width:s[l+1]-s[l],height:r[1]})}this._updateDataInfo(t)},e.prototype._updateDataInfo=function(t){var e=this.dataZoomModel,n=this._displayables,i=n.handleLabels,r=this._orient,o=["",""];if(e.get("showDetail")){var a=e.findRepresentativeAxisProxy();if(a){var s=a.getAxisModel().axis,l=this._range,u=t?a.calculateDataWindow({start:l[0],end:l[1]}).valueWindow:a.getDataValueWindow();o=[this._formatLabel(u[0],s),this._formatLabel(u[1],s)]}}var h=Gi(this._handleEnds.slice());function c(t){var e=Tu(n.handles[t].parent,this.group),a=Iu(0===t?"right":"left",e),s=this._handleWidth/2+5,l=Cu([h[t]+(0===t?-s:s),this._size[1]/2],e);i[t].setStyle({x:l[0],y:l[1],verticalAlign:r===FI?"middle":a,align:r===FI?a:"center",text:o[t]})}c.call(this,0),c.call(this,1)},e.prototype._formatLabel=function(t,e){var n=this.dataZoomModel,i=n.get("labelFormatter"),r=n.get("labelPrecision");null!=r&&"auto"!==r||(r=e.getPixelPrecision());var o=null==t||isNaN(t)?"":"category"===e.type||"time"===e.type?e.scale.getLabel({value:Math.round(t)}):t.toFixed(Math.min(r,20));return F(i)?i(t,o):H(i)?i.replace("{value}",o):o},e.prototype._showDataInfo=function(t){t=this._dragging||t;var e=this._displayables,n=e.handleLabels;n[0].attr("invisible",!t),n[1].attr("invisible",!t),e.moveHandle&&this.api[t?"enterEmphasis":"leaveEmphasis"](e.moveHandle,1)},e.prototype._onDragMove=function(t,e,n,i){this._dragging=!0,Kt(i.event);var r=Cu([e,n],this._displayables.sliderGroup.getLocalTransform(),!0),o=this._updateInterval(t,r[0]),a=this.dataZoomModel.get("realtime");this._updateView(!a),o&&a&&this._dispatchZoomAction(!0)},e.prototype._onDragEnd=function(){this._dragging=!1,this._showDataInfo(!1),!this.dataZoomModel.get("realtime")&&this._dispatchZoomAction(!1)},e.prototype._onClickPanel=function(t){var e=this._size,n=this._displayables.sliderGroup.transformCoordToLocal(t.offsetX,t.offsetY);if(!(n[0]<0||n[0]>e[0]||n[1]<0||n[1]>e[1])){var i=this._handleEnds,r=(i[0]+i[1])/2,o=this._updateInterval("all",n[0]-r);this._updateView(),o&&this._dispatchZoomAction(!1)}},e.prototype._onBrushStart=function(t){var e=t.offsetX,n=t.offsetY;this._brushStart=new mn(e,n),this._brushing=!0,this._brushStartTime=+new Date},e.prototype._onBrushEnd=function(t){if(this._brushing){var e=this._displayables.brushRect;if(this._brushing=!1,e){e.attr("ignore",!0);var n=e.shape;if(!(+new Date-this._brushStartTime<200&&Math.abs(n.width)<5)){var i=this._getViewExtent(),r=[0,100];this._range=Gi([Vi(n.x,i,r,!0),Vi(n.x+n.width,i,r,!0)]),this._handleEnds=[n.x,n.x+n.width],this._updateView(),this._dispatchZoomAction(!1)}}}},e.prototype._onBrush=function(t){this._brushing&&(Kt(t.event),this._updateBrushRect(t.offsetX,t.offsetY))},e.prototype._updateBrushRect=function(t,e){var n=this._displayables,i=this.dataZoomModel,r=n.brushRect;r||(r=n.brushRect=new VI({silent:!0,style:i.getModel("brushStyle").getItemStyle()}),n.sliderGroup.add(r)),r.attr("ignore",!1);var o=this._brushStart,a=this._displayables.sliderGroup,s=a.transformCoordToLocal(t,e),l=a.transformCoordToLocal(o.x,o.y),u=this._size;s[0]=Math.max(Math.min(u[0],s[0]),0),r.setShape({x:l[0],y:0,width:s[0]-l[0],height:u[1]})},e.prototype._dispatchZoomAction=function(t){var e=this._range;this.api.dispatchAction({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,animation:t?WI:null,start:e[0],end:e[1]})},e.prototype._findCoordRect=function(){var t,e=US(this.dataZoomModel).infoList;if(!t&&e.length){var n=e[0].model.coordinateSystem;t=n.getRect&&n.getRect()}if(!t){var i=this.api.getWidth(),r=this.api.getHeight();t={x:.2*i,y:.2*r,width:.6*i,height:.6*r}}return t},e.type="dataZoom.slider",e}(qS);function YI(t){return"vertical"===t?"ns-resize":"ew-resize"}function XI(t){t.registerComponentModel(zI),t.registerComponentView(UI),oM(t)}var ZI={label:{enabled:!0},decal:{show:!1}},jI=xr(),qI={};function KI(t,e){var n=t.getModel("aria");if(n.get("enabled")){var i=w(ZI);S(i.label,t.getLocaleModel().get("aria"),!1),S(n.option,i,!1),function(){if(n.getModel("decal").get("show")){var e=ut();t.eachSeries((function(t){if(t.useColorPaletteOnData){var n=e.get(t.type);n||(n={},e.set(t.type,n)),jI(t).scope=n}})),t.eachRawSeries((function(e){if(!t.isSeriesFiltered(e))if("function"!=typeof e.enableAriaDecal){var n=e.getData();if(e.useColorPaletteOnData){var i=e.getRawData(),r={},o=jI(e).scope;n.each((function(t){var e=n.getRawIndex(t);r[e]=t}));var a=i.count();i.each((function(t){var s=r[t],l=i.getName(t)||t+"",h=Xc(e.ecModel,l,o,a),c=n.getItemVisual(s,"decal");n.setItemVisual(s,"decal",u(c,h))}))}else{var s=Xc(e.ecModel,e.name,qI,t.getSeriesCount()),l=n.getVisual("decal");n.setVisual("decal",u(l,s))}}else e.enableAriaDecal();function u(t,e){var n=t?T(T({},e),t):e;return n.dirty=!0,n}}))}}(),function(){var i=t.getLocaleModel().get("aria"),o=n.getModel("label");if(o.option=C(o.option,i),!o.get("enabled"))return;var a=e.getZr().dom;if(o.get("description"))return void a.setAttribute("aria-label",o.get("description"));var s,l=t.getSeriesCount(),u=o.get(["data","maxCount"])||10,h=o.get(["series","maxCount"])||10,c=Math.min(l,h);if(l<1)return;var p=function(){var e=t.get("title");e&&e.length&&(e=e[0]);return e&&e.text}();if(p){var d=o.get(["general","withTitle"]);s=r(d,{title:p})}else s=o.get(["general","withoutTitle"]);var f=[],g=l>1?o.get(["series","multiple","prefix"]):o.get(["series","single","prefix"]);s+=r(g,{seriesCount:l}),t.eachSeries((function(e,n){if(n<c){var i=void 0,a=e.get("name")?"withName":"withoutName";i=r(i=l>1?o.get(["series","multiple",a]):o.get(["series","single",a]),{seriesId:e.seriesIndex,seriesName:e.get("name"),seriesType:(_=e.subType,t.getLocaleModel().get(["series","typeNames"])[_]||"自定义图")});var s=e.getData();if(s.count()>u)i+=r(o.get(["data","partialData"]),{displayCnt:u});else i+=o.get(["data","allData"]);for(var h=[],p=0;p<s.count();p++)if(p<u){var d=s.getName(p),g=Kp(s,p),y=o.get(["data",d?"withName":"withoutName"]);h.push(r(y,{name:d,value:g}))}var v=o.get(["data","separator","middle"]),m=o.get(["data","separator","end"]);i+=h.join(v)+m,f.push(i)}var _}));var y=o.getModel(["series","multiple","separator"]),v=y.get("middle"),m=y.get("end");s+=f.join(v)+m,a.setAttribute("aria-label",s)}()}function r(t,e){if("string"!=typeof t)return t;var n=t;return P(e,(function(t,e){n=n.replace(new RegExp("\\{\\s*"+e+"\\s*\\}","g"),t)})),n}}function $I(t){if(t&&t.aria){var e=t.aria;null!=e.show&&(e.enabled=e.show),e.label=e.label||{},P(["description","general","series","data"],(function(t){null!=e[t]&&(e.label[t]=e[t])}))}}var JI=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="dataset",e}return n(e,t),e.prototype.init=function(e,n,i){t.prototype.init.call(this,e,n,i),this._sourceManager=new dd(this),fd(this)},e.prototype.mergeOption=function(e,n){t.prototype.mergeOption.call(this,e,n),fd(this)},e.prototype.optionUpdated=function(){this._sourceManager.dirty()},e.prototype.getSourceManager=function(){return this._sourceManager},e.type="dataset",e.defaultOption={seriesLayoutBy:Ac},e}(vc),QI=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="dataset",e}return n(e,t),e.type="dataset",e}(Fd);Cv([function(t){t.registerPainter("canvas",Vx)}]),Cv([function(t){t.registerPainter("svg",kx)}]),Cv([function(t){t.registerChartView(_b),t.registerSeriesModel(Fx),t.registerLayout(xb("line",!0)),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,Sb("line"))},function(t){t.registerChartView(Ob),t.registerSeriesModel(Tb),t.registerLayout(t.PRIORITY.VISUAL.LAYOUT,z(Pm,"bar")),t.registerLayout(t.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,Om),t.registerVisual({seriesType:"bar",reset:function(t){t.getData().setVisual("legendSymbol","roundRect")}}),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,Sb("bar")),t.registerAction({type:"changeAxisOrder",event:"changeAxisOrder",update:"update"},(function(t,e){var n=t.componentType||"series";e.eachComponent({mainType:n,query:t},(function(e){t.sortInfo&&e.axis.setCategorySortInfo(t.sortInfo)}))}))},function(t){t.registerChartView(Qb),t.registerSeriesModel(ew),function(t,e){function n(e,n){var i=[];return e.eachComponent({mainType:"series",subType:t,query:n},(function(t){i.push(t.seriesIndex)})),i}P([[t+"ToggleSelect","toggleSelect"],[t+"Select","select"],[t+"UnSelect","unselect"]],(function(t){e(t[0],(function(e,i,r){e=T({},e),r.dispatchAction(T(e,{type:t[1],seriesIndex:n(i,e)}))}))}))}("pie",t.registerAction),t.registerLayout(z(Xb,"pie")),t.registerProcessor(function(t){return{seriesType:t,reset:function(t,e){var n=e.findComponents({mainType:"legend"});if(n&&n.length){var i=t.getData();i.filterSelf((function(t){for(var e=i.getName(t),r=0;r<n.length;r++)if(!n[r].isSelected(e))return!1;return!0}))}}}}("pie"))},function(t){Cv(Jw),t.registerSeriesModel(nw),t.registerChartView(aw),t.registerLayout(xb("scatter"))}]),Cv([function(t){t.registerComponentModel(NS),t.registerComponentView(ES),t.registerPreprocessor(RS)},function(t){Cv(kS),t.registerComponentModel(UT),t.registerComponentView(rC),t.registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},(function(){})),t.registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},(function(){}))},kS,function(t){Cv(fI),Cv(bI)},function(t){Cv(Jw),Cv(kS)},function(t){t.registerComponentModel(lC),t.registerComponentView(uC)},function(t){t.registerComponentModel(dC),t.registerComponentView(MC),t.registerPreprocessor((function(t){t.markPoint=t.markPoint||{}}))},function(t){t.registerComponentModel(TC),t.registerComponentView(XC),t.registerPreprocessor((function(t){t.markLine=t.markLine||{}}))},function(t){t.registerComponentModel(ZC),t.registerComponentView(eI),t.registerPreprocessor((function(t){t.markArea=t.markArea||{}}))},function(t){Cv(BI),Cv(XI)},function(t){t.registerComponentModel(cM),t.registerComponentView(dM),uM("saveAsImage",fM),uM("magicType",vM),uM("dataView",MM),uM("dataZoom",HT),uM("restore",DM),Cv(aM)},function(t){t.registerPreprocessor($I),t.registerVisual(t.PRIORITY.VISUAL.ARIA,KI)},function(t){t.registerComponentModel(JI),t.registerComponentView(QI)}]),t.Axis=V_,t.ChartView=Ud,t.ComponentModel=vc,t.ComponentView=Fd,t.List=nm,t.Model=oh,t.PRIORITY=fy,t.SeriesModel=Pd,t.color=tn,t.connect=function(t){if(V(t)){var e=t;t=null,sy(e,(function(e){null!=e.group&&(t=e.group)})),t=t||"g_"+ov++,sy(e,(function(e){e.group=t}))}return iv[t]=!0,t},t.dataTool={},t.dependencies={zrender:"5.0.3"},t.disConnect=sv,t.disconnect=lv,t.dispose=function(t){"string"==typeof t?t=nv[t]:t instanceof Wy||(t=uv(t)),t instanceof Wy&&!t.isDisposed()&&t.dispose()},t.env=a,t.extendChartView=function(t){var e=Ud.extend(t);return Ud.registerClass(e),e},t.extendComponentModel=function(t){var e=vc.extend(t);return vc.registerClass(e),e},t.extendComponentView=function(t){var e=Fd.extend(t);return Fd.registerClass(e),e},t.extendSeriesModel=function(t){var e=Pd.extend(t);return Pd.registerClass(e),e},t.format=I_,t.getCoordinateSystemDimensions=function(t){var e=ep.get(t);if(e)return e.getDimensionsInfo?e.getDimensionsInfo():e.dimensions.slice()},t.getInstanceByDom=uv,t.getInstanceById=function(t){return nv[t]},t.getMap=function(t){var e=Ef(t);return e&&e[0]&&{geoJson:e[0].geoJSON,specialAreas:e[0].specialAreas}},t.graphic=C_,t.helper=m_,t.init=function(t,e,n){var i=uv(t);if(i)return i;var r=new Wy(t,e,n);return r.id="ec_"+rv++,nv[r.id]=r,Cr(t,av,r.id),By(r),sy($y,(function(t){t(r)})),r},t.innerDrawElementOnCanvas=$g,t.matrix=ve,t.number=M_,t.parseGeoJSON=S_,t.parseGeoJson=S_,t.registerAction=gv,t.registerCoordinateSystem=yv,t.registerLayout=vv,t.registerLoading=bv,t.registerLocale=gh,t.registerMap=wv,t.registerPostInit=dv,t.registerPostUpdate=fv,t.registerPreprocessor=cv,t.registerProcessor=pv,t.registerTheme=hv,t.registerTransform=Sv,t.registerVisual=mv,t.setCanvasCreator=function(t){m("createCanvas",t)},t.throttle=Qd,t.time=T_,t.use=Cv,t.util=A_,t.vector=Pt,t.version="5.0.1",t.zrUtil=dt,t.zrender=Bi,Object.defineProperty(t,"__esModule",{value:!0})}));
diff --git a/dist/echarts.esm.js b/dist/echarts.esm.js
index b7c8466..51d9706 100644
--- a/dist/echarts.esm.js
+++ b/dist/echarts.esm.js
@@ -684,35 +684,6 @@
     noop: noop
 });
 
-/*! *****************************************************************************

-Copyright (c) Microsoft Corporation.

-

-Permission to use, copy, modify, and/or distribute this software for any

-purpose with or without fee is hereby granted.

-

-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH

-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY

-AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,

-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM

-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR

-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR

-PERFORMANCE OF THIS SOFTWARE.

-***************************************************************************** */

-/* global Reflect, Promise */

-

-var extendStatics$1 = function(d, b) {

-    extendStatics$1 = Object.setPrototypeOf ||

-        ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||

-        function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };

-    return extendStatics$1(d, b);

-};

-

-function __extends$1(d, b) {

-    extendStatics$1(d, b);

-    function __() { this.constructor = d; }

-    d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());

-}
-
 function create(x, y) {
     if (x == null) {
         x = 0;
@@ -1441,7 +1412,7 @@
     stop(this.event);
 }
 var EmptyProxy = (function (_super) {
-    __extends$1(EmptyProxy, _super);
+    __extends(EmptyProxy, _super);
     function EmptyProxy() {
         var _this = _super !== null && _super.apply(this, arguments) || this;
         _this.handler = null;
@@ -1463,7 +1434,7 @@
     'mouseup', 'mousedown', 'mousemove', 'contextmenu'
 ];
 var Handler = (function (_super) {
-    __extends$1(Handler, _super);
+    __extends(Handler, _super);
     function Handler(storage, painter, proxy, painterRoot) {
         var _this = _super.call(this) || this;
         _this._hovered = new HoveredResult(0, 0);
@@ -5726,7 +5697,7 @@
 var requestAnimationFrame$1 = requestAnimationFrame;
 
 var Animation = (function (_super) {
-    __extends$1(Animation, _super);
+    __extends(Animation, _super);
     function Animation(opts) {
         var _this = _super.call(this) || this;
         _this._running = false;
@@ -6119,7 +6090,7 @@
     return DOMHandlerScope;
 }());
 var HandlerDomProxy = (function (_super) {
-    __extends$1(HandlerDomProxy, _super);
+    __extends(HandlerDomProxy, _super);
     function HandlerDomProxy(dom, painterRoot) {
         var _this = _super.call(this) || this;
         _this.__pointerCapturing = false;
@@ -6156,7 +6127,7 @@
 }(Eventful));
 
 var Group = (function (_super) {
-    __extends$1(Group, _super);
+    __extends(Group, _super);
     function Group(opts) {
         var _this = _super.call(this) || this;
         _this.isGroup = true;
@@ -6576,7 +6547,7 @@
 function registerPainter(name, Ctor) {
     painterCtors[name] = Ctor;
 }
-var version = '5.0.1';
+var version = '5.0.3';
 
 var zrender = /*#__PURE__*/Object.freeze({
     __proto__: null,
@@ -8272,7 +8243,7 @@
 DEFAULT_COMMON_STYLE[STYLE_MAGIC_KEY] = true;
 var PRIMARY_STATES_KEYS$1 = ['z', 'z2', 'invisible'];
 var Displayable = (function (_super) {
-    __extends$1(Displayable, _super);
+    __extends(Displayable, _super);
     function Displayable(props) {
         return _super.call(this, props) || this;
     }
@@ -10255,7 +10226,7 @@
     'culling', 'z', 'z2', 'zlevel', 'parent'
 ];
 var Path = (function (_super) {
-    __extends$1(Path, _super);
+    __extends(Path, _super);
     function Path(opts) {
         return _super.call(this, opts) || this;
     }
@@ -10577,7 +10548,7 @@
     };
     Path.extend = function (defaultProps) {
         var Sub = (function (_super) {
-            __extends$1(Sub, _super);
+            __extends(Sub, _super);
             function Sub(opts) {
                 var _this = _super.call(this, opts) || this;
                 defaultProps.init && defaultProps.init.call(_this, opts);
@@ -10621,7 +10592,7 @@
     miterLimit: 2
 }, DEFAULT_PATH_STYLE);
 var TSpan = (function (_super) {
-    __extends$1(TSpan, _super);
+    __extends(TSpan, _super);
     function TSpan() {
         return _super !== null && _super.apply(this, arguments) || this;
     }
@@ -10690,7 +10661,7 @@
         && source.width && source.height);
 }
 var ZRImage = (function (_super) {
-    __extends$1(ZRImage, _super);
+    __extends(ZRImage, _super);
     function ZRImage() {
         return _super !== null && _super.apply(this, arguments) || this;
     }
@@ -10881,7 +10852,7 @@
 }());
 var subPixelOptimizeOutputShape = {};
 var Rect = (function (_super) {
-    __extends$1(Rect, _super);
+    __extends(Rect, _super);
     function Rect(opts) {
         return _super.call(this, opts) || this;
     }
@@ -10949,7 +10920,7 @@
     }, DEFAULT_COMMON_ANIMATION_PROPS.style)
 };
 var ZRText = (function (_super) {
-    __extends$1(ZRText, _super);
+    __extends(ZRText, _super);
     function ZRText(opts) {
         var _this = _super.call(this) || this;
         _this.type = 'text';
@@ -12288,7 +12259,7 @@
     return path;
 }
 var SVGPath = (function (_super) {
-    __extends$1(SVGPath, _super);
+    __extends(SVGPath, _super);
     function SVGPath() {
         return _super !== null && _super.apply(this, arguments) || this;
     }
@@ -12326,7 +12297,7 @@
 function extendFromString(str, defaultOpts) {
     var innerOpts = createPathOptions(str, defaultOpts);
     var Sub = (function (_super) {
-        __extends$1(Sub, _super);
+        __extends(Sub, _super);
         function Sub(opts) {
             var _this = _super.call(this, opts) || this;
             _this.applyTransform = innerOpts.applyTransform;
@@ -12373,7 +12344,7 @@
     return CircleShape;
 }());
 var Circle = (function (_super) {
-    __extends$1(Circle, _super);
+    __extends(Circle, _super);
     function Circle(opts) {
         return _super.call(this, opts) || this;
     }
@@ -12400,7 +12371,7 @@
     return EllipseShape;
 }());
 var Ellipse = (function (_super) {
-    __extends$1(Ellipse, _super);
+    __extends(Ellipse, _super);
     function Ellipse(opts) {
         return _super.call(this, opts) || this;
     }
@@ -12618,7 +12589,7 @@
     return SectorShape;
 }());
 var Sector = (function (_super) {
-    __extends$1(Sector, _super);
+    __extends(Sector, _super);
     function Sector(opts) {
         return _super.call(this, opts) || this;
     }
@@ -12646,7 +12617,7 @@
     return RingShape;
 }());
 var Ring = (function (_super) {
-    __extends$1(Ring, _super);
+    __extends(Ring, _super);
     function Ring(opts) {
         return _super.call(this, opts) || this;
     }
@@ -12810,7 +12781,7 @@
     return PolygonShape;
 }());
 var Polygon = (function (_super) {
-    __extends$1(Polygon, _super);
+    __extends(Polygon, _super);
     function Polygon(opts) {
         return _super.call(this, opts) || this;
     }
@@ -12834,7 +12805,7 @@
     return PolylineShape;
 }());
 var Polyline = (function (_super) {
-    __extends$1(Polyline, _super);
+    __extends(Polyline, _super);
     function Polyline(opts) {
         return _super.call(this, opts) || this;
     }
@@ -12866,7 +12837,7 @@
     return LineShape;
 }());
 var Line = (function (_super) {
-    __extends$1(Line, _super);
+    __extends(Line, _super);
     function Line(opts) {
         return _super.call(this, opts) || this;
     }
@@ -12949,7 +12920,7 @@
     }
 }
 var BezierCurve = (function (_super) {
-    __extends$1(BezierCurve, _super);
+    __extends(BezierCurve, _super);
     function BezierCurve(opts) {
         return _super.call(this, opts) || this;
     }
@@ -13024,7 +12995,7 @@
     return ArcShape;
 }());
 var Arc = (function (_super) {
-    __extends$1(Arc, _super);
+    __extends(Arc, _super);
     function Arc(opts) {
         return _super.call(this, opts) || this;
     }
@@ -13054,7 +13025,7 @@
 Arc.prototype.type = 'arc';
 
 var CompoundPath = (function (_super) {
-    __extends$1(CompoundPath, _super);
+    __extends(CompoundPath, _super);
     function CompoundPath() {
         var _this = _super !== null && _super.apply(this, arguments) || this;
         _this.type = 'compound';
@@ -13114,7 +13085,7 @@
 }());
 
 var LinearGradient = (function (_super) {
-    __extends$1(LinearGradient, _super);
+    __extends(LinearGradient, _super);
     function LinearGradient(x, y, x2, y2, colorStops, globalCoord) {
         var _this = _super.call(this, colorStops) || this;
         _this.x = x == null ? 0 : x;
@@ -13129,7 +13100,7 @@
 }(Gradient));
 
 var RadialGradient = (function (_super) {
-    __extends$1(RadialGradient, _super);
+    __extends(RadialGradient, _super);
     function RadialGradient(x, y, r, colorStops, globalCoord) {
         var _this = _super.call(this, colorStops) || this;
         _this.x = x == null ? 0.5 : x;
@@ -13263,7 +13234,7 @@
 
 var m = [];
 var IncrementalDisplayable = (function (_super) {
-    __extends$1(IncrementalDisplayable, _super);
+    __extends(IncrementalDisplayable, _super);
     function IncrementalDisplayable() {
         var _this = _super !== null && _super.apply(this, arguments) || this;
         _this.notClear = true;
@@ -24124,7 +24095,7 @@
 var hasWindow = typeof window !== 'undefined';
 var version$1 = '5.0.1';
 var dependencies = {
-  zrender: '5.0.2'
+  zrender: '5.0.3'
 };
 var TEST_FRAME_REMAIN_TIME = 1;
 var PRIORITY_PROCESSOR_SERIES_FILTER = 800;
@@ -31871,7 +31842,7 @@
         || value.type === 'radial');
 }
 var GradientManager = (function (_super) {
-    __extends$1(GradientManager, _super);
+    __extends(GradientManager, _super);
     function GradientManager(zrId, svgRoot) {
         return _super.call(this, zrId, svgRoot, ['linearGradient', 'radialGradient'], '__gradient_in_use__') || this;
     }
@@ -32002,7 +31973,7 @@
 }
 var patternDomMap = new WeakMap();
 var PatternManager = (function (_super) {
-    __extends$1(PatternManager, _super);
+    __extends(PatternManager, _super);
     function PatternManager(zrId, svgRoot) {
         return _super.call(this, zrId, svgRoot, ['pattern'], '__pattern_in_use__') || this;
     }
@@ -32146,7 +32117,7 @@
     return clipPaths && clipPaths.length > 0;
 }
 var ClippathManager = (function (_super) {
-    __extends$1(ClippathManager, _super);
+    __extends(ClippathManager, _super);
     function ClippathManager(zrId, svgRoot) {
         var _this = _super.call(this, zrId, svgRoot, 'clipPath', '__clippath_in_use__') || this;
         _this._refGroups = {};
@@ -32248,7 +32219,7 @@
 }(Definable));
 
 var ShadowManager = (function (_super) {
-    __extends$1(ShadowManager, _super);
+    __extends(ShadowManager, _super);
     function ShadowManager(zrId, svgRoot) {
         var _this = _super.call(this, zrId, svgRoot, ['filter'], '__filter_in_use__', '_shadowDom') || this;
         _this._shadowDomMap = {};
@@ -32698,7 +32669,7 @@
     return newDom;
 }
 var Layer = (function (_super) {
-    __extends$1(Layer, _super);
+    __extends(Layer, _super);
     function Layer(id, painter, dpr) {
         var _this = _super.call(this) || this;
         _this.motionBlur = false;
diff --git a/dist/echarts.esm.js.map b/dist/echarts.esm.js.map
index df78c9e..c643ad9 100644
--- a/dist/echarts.esm.js.map
+++ b/dist/echarts.esm.js.map
@@ -1 +1 @@
-{"version":3,"file":"echarts.esm.js","sources":["../node_modules/tslib/tslib.es6.js","../node_modules/zrender/lib/core/env.js","../node_modules/zrender/lib/core/util.js","../node_modules/zrender/node_modules/tslib/tslib.es6.js","../node_modules/zrender/lib/core/vector.js","../node_modules/zrender/lib/mixin/Draggable.js","../node_modules/zrender/lib/core/Eventful.js","../node_modules/zrender/lib/core/fourPointsTransform.js","../node_modules/zrender/lib/core/dom.js","../node_modules/zrender/lib/core/event.js","../node_modules/zrender/lib/core/GestureMgr.js","../node_modules/zrender/lib/Handler.js","../node_modules/zrender/lib/core/matrix.js","../node_modules/zrender/lib/core/Transformable.js","../node_modules/zrender/lib/animation/easing.js","../node_modules/zrender/lib/animation/Clip.js","../node_modules/zrender/lib/core/LRU.js","../node_modules/zrender/lib/tool/color.js","../node_modules/zrender/lib/animation/Animator.js","../node_modules/zrender/lib/core/Point.js","../node_modules/zrender/lib/core/BoundingRect.js","../node_modules/zrender/lib/contain/text.js","../node_modules/zrender/lib/config.js","../node_modules/zrender/lib/Element.js","../node_modules/zrender/lib/core/timsort.js","../node_modules/zrender/lib/Storage.js","../node_modules/zrender/lib/animation/requestAnimationFrame.js","../node_modules/zrender/lib/animation/Animation.js","../node_modules/zrender/lib/dom/HandlerProxy.js","../node_modules/zrender/lib/graphic/Group.js","../node_modules/zrender/lib/zrender.js","../lib/util/number.js","../lib/util/log.js","../lib/util/model.js","../lib/util/clazz.js","../lib/model/mixin/makeStyleMapper.js","../lib/model/mixin/areaStyle.js","../node_modules/zrender/lib/graphic/helper/image.js","../node_modules/zrender/lib/graphic/helper/parseText.js","../node_modules/zrender/lib/graphic/Displayable.js","../node_modules/zrender/lib/core/curve.js","../node_modules/zrender/lib/core/bbox.js","../node_modules/zrender/lib/core/PathProxy.js","../node_modules/zrender/lib/contain/line.js","../node_modules/zrender/lib/contain/cubic.js","../node_modules/zrender/lib/contain/quadratic.js","../node_modules/zrender/lib/contain/util.js","../node_modules/zrender/lib/contain/arc.js","../node_modules/zrender/lib/contain/windingLine.js","../node_modules/zrender/lib/contain/path.js","../node_modules/zrender/lib/graphic/Path.js","../node_modules/zrender/lib/graphic/TSpan.js","../node_modules/zrender/lib/graphic/Image.js","../node_modules/zrender/lib/graphic/helper/roundRect.js","../node_modules/zrender/lib/graphic/helper/subPixelOptimize.js","../node_modules/zrender/lib/graphic/shape/Rect.js","../node_modules/zrender/lib/graphic/Text.js","../lib/util/innerStore.js","../lib/util/states.js","../node_modules/zrender/lib/tool/transformPath.js","../node_modules/zrender/lib/tool/path.js","../node_modules/zrender/lib/graphic/shape/Circle.js","../node_modules/zrender/lib/graphic/shape/Ellipse.js","../node_modules/zrender/lib/graphic/helper/roundSector.js","../node_modules/zrender/lib/graphic/shape/Sector.js","../node_modules/zrender/lib/graphic/shape/Ring.js","../node_modules/zrender/lib/graphic/helper/smoothSpline.js","../node_modules/zrender/lib/graphic/helper/smoothBezier.js","../node_modules/zrender/lib/graphic/helper/poly.js","../node_modules/zrender/lib/graphic/shape/Polygon.js","../node_modules/zrender/lib/graphic/shape/Polyline.js","../node_modules/zrender/lib/graphic/shape/Line.js","../node_modules/zrender/lib/graphic/shape/BezierCurve.js","../node_modules/zrender/lib/graphic/shape/Arc.js","../node_modules/zrender/lib/graphic/CompoundPath.js","../node_modules/zrender/lib/graphic/Gradient.js","../node_modules/zrender/lib/graphic/LinearGradient.js","../node_modules/zrender/lib/graphic/RadialGradient.js","../node_modules/zrender/lib/core/OrientedBoundingRect.js","../node_modules/zrender/lib/graphic/IncrementalDisplayable.js","../lib/util/graphic.js","../lib/label/labelStyle.js","../lib/model/mixin/textStyle.js","../lib/model/mixin/lineStyle.js","../lib/model/mixin/itemStyle.js","../lib/model/Model.js","../lib/util/component.js","../lib/i18n/langEN.js","../lib/i18n/langZH.js","../lib/core/locale.js","../lib/util/time.js","../lib/legacy/getTextRect.js","../lib/util/format.js","../lib/util/layout.js","../lib/model/Component.js","../lib/model/globalDefault.js","../lib/util/types.js","../lib/data/helper/sourceHelper.js","../lib/model/internalComponentCreator.js","../lib/model/mixin/palette.js","../lib/model/Global.js","../lib/core/ExtensionAPI.js","../lib/core/CoordinateSystem.js","../lib/model/OptionManager.js","../lib/preprocessor/helper/compatStyle.js","../lib/preprocessor/backwardCompat.js","../lib/processor/dataStack.js","../lib/data/Source.js","../lib/data/helper/dataProvider.js","../lib/model/mixin/dataFormat.js","../lib/core/task.js","../lib/data/helper/dataValueHelper.js","../lib/data/helper/transform.js","../lib/data/helper/sourceManager.js","../lib/component/tooltip/tooltipMarkup.js","../lib/component/tooltip/seriesFormatTooltip.js","../lib/model/Series.js","../lib/view/Component.js","../lib/chart/helper/createRenderPlanner.js","../lib/view/Chart.js","../lib/util/throttle.js","../lib/visual/style.js","../lib/loading/default.js","../lib/core/Scheduler.js","../lib/theme/light.js","../lib/theme/dark.js","../node_modules/zrender/lib/tool/parseXML.js","../lib/coord/geo/mapDataStorage.js","../lib/util/ECEventProcessor.js","../lib/visual/symbol.js","../lib/visual/helper.js","../lib/label/labelGuideHelper.js","../lib/label/labelLayoutHelper.js","../lib/label/LabelManager.js","../lib/legacy/dataSelectAction.js","../lib/util/event.js","../node_modules/zrender/lib/core/WeakMap.js","../lib/util/symbol.js","../node_modules/zrender/lib/canvas/helper.js","../node_modules/zrender/lib/graphic/helper/dashStyle.js","../node_modules/zrender/lib/canvas/graphic.js","../lib/util/decal.js","../lib/visual/decal.js","../lib/core/echarts.js","../lib/extension.js","../lib/data/DataDiffer.js","../lib/data/helper/dimensionHelper.js","../lib/data/DataDimensionInfo.js","../lib/data/List.js","../lib/data/helper/completeDimensions.js","../lib/data/helper/createDimensions.js","../lib/model/referHelper.js","../lib/data/helper/dataStackHelper.js","../lib/chart/helper/createListFromArray.js","../lib/scale/Scale.js","../lib/data/OrdinalMeta.js","../lib/scale/helper.js","../lib/scale/Ordinal.js","../lib/scale/Interval.js","../lib/layout/barGrid.js","../lib/scale/Time.js","../lib/scale/Log.js","../lib/coord/scaleRawExtentInfo.js","../lib/coord/axisHelper.js","../lib/coord/axisModelCommonMixin.js","../lib/export/api/helper.js","../node_modules/zrender/lib/contain/polygon.js","../lib/coord/geo/Region.js","../lib/coord/geo/parseGeoJson.js","../lib/coord/axisTickLabelBuilder.js","../lib/coord/Axis.js","../lib/export/api.js","../node_modules/zrender/lib/svg/core.js","../node_modules/zrender/lib/core/arrayDiff.js","../node_modules/zrender/lib/svg/graphic.js","../node_modules/zrender/lib/svg/helper/Definable.js","../node_modules/zrender/lib/svg/helper/GradientManager.js","../node_modules/zrender/lib/svg/helper/PatternManager.js","../node_modules/zrender/lib/svg/helper/ClippathManager.js","../node_modules/zrender/lib/svg/helper/ShadowManager.js","../node_modules/zrender/lib/svg/Painter.js","../lib/renderer/installSVGRenderer.js","../node_modules/zrender/lib/canvas/Layer.js","../node_modules/zrender/lib/canvas/Painter.js","../lib/renderer/installCanvasRenderer.js","../lib/chart/line/LineSeries.js","../lib/chart/helper/labelHelper.js","../lib/chart/helper/Symbol.js","../lib/chart/helper/SymbolDraw.js","../lib/chart/line/helper.js","../lib/util/vendor.js","../lib/chart/line/lineAnimationDiff.js","../lib/chart/line/poly.js","../lib/chart/helper/createClipPathFromCoordSys.js","../lib/coord/CoordinateSystem.js","../lib/chart/line/LineView.js","../lib/layout/points.js","../lib/processor/dataSample.js","../lib/chart/line/install.js","../lib/chart/bar/BaseBarSeries.js","../lib/chart/bar/BarSeries.js","../lib/util/shape/sausage.js","../lib/chart/bar/BarView.js","../lib/chart/bar/install.js","../lib/chart/pie/pieLayout.js","../lib/processor/dataFilter.js","../lib/chart/pie/labelLayout.js","../lib/chart/helper/pieHelper.js","../lib/chart/pie/PieView.js","../lib/chart/helper/createListSimply.js","../lib/visual/LegendVisualProvider.js","../lib/chart/pie/PieSeries.js","../lib/chart/pie/install.js","../lib/chart/scatter/ScatterSeries.js","../lib/chart/helper/LargeSymbolDraw.js","../lib/chart/scatter/ScatterView.js","../lib/coord/cartesian/GridModel.js","../lib/coord/cartesian/AxisModel.js","../lib/coord/axisDefault.js","../lib/coord/axisCommonTypes.js","../lib/coord/axisModelCreator.js","../lib/coord/cartesian/Cartesian.js","../lib/coord/cartesian/Cartesian2D.js","../lib/coord/cartesian/Axis2D.js","../lib/coord/cartesian/cartesianAxisHelper.js","../lib/coord/cartesian/Grid.js","../lib/component/axis/AxisBuilder.js","../lib/component/axisPointer/modelHelper.js","../lib/component/axis/AxisView.js","../lib/component/axis/axisSplitHelper.js","../lib/component/axis/CartesianAxisView.js","../lib/component/grid/installSimple.js","../lib/chart/scatter/install.js","../lib/chart/radar/radarLayout.js","../lib/chart/radar/backwardCompat.js","../lib/chart/radar/RadarView.js","../lib/chart/radar/RadarSeries.js","../lib/coord/radar/RadarModel.js","../lib/component/radar/RadarView.js","../lib/coord/radar/IndicatorAxis.js","../lib/coord/radar/Radar.js","../lib/component/radar/install.js","../lib/chart/radar/install.js","../lib/component/helper/interactionMutex.js","../lib/component/helper/RoamController.js","../lib/component/helper/roamHelper.js","../lib/component/helper/cursorHelper.js","../lib/coord/geo/fix/nanhai.js","../lib/coord/geo/fix/textCoord.js","../lib/coord/geo/fix/geoCoord.js","../lib/coord/geo/fix/diaoyuIsland.js","../lib/coord/geo/geoJSONLoader.js","../node_modules/zrender/lib/tool/parseSVG.js","../lib/coord/geo/geoSVGLoader.js","../lib/coord/geo/geoSourceManager.js","../lib/component/helper/MapDraw.js","../lib/chart/map/MapView.js","../lib/chart/map/MapSeries.js","../lib/chart/map/mapDataStatistic.js","../lib/chart/map/mapSymbolLayout.js","../lib/chart/map/install.js","../lib/chart/tree/layoutHelper.js","../lib/coord/View.js","../lib/chart/tree/TreeView.js","../lib/data/helper/linkList.js","../lib/data/Tree.js","../lib/chart/tree/TreeSeries.js","../lib/chart/tree/traversalHelper.js","../lib/chart/tree/treeLayout.js","../lib/chart/tree/treeVisual.js","../lib/action/roamHelper.js","../lib/chart/tree/treeAction.js","../lib/chart/tree/install.js","../lib/chart/helper/treeHelper.js","../lib/chart/treemap/treemapAction.js","../lib/chart/helper/enableAriaDecalForTree.js","../lib/chart/treemap/TreemapSeries.js","../lib/chart/treemap/Breadcrumb.js","../lib/util/animation.js","../lib/chart/treemap/TreemapView.js","../lib/visual/VisualMapping.js","../lib/chart/treemap/treemapVisual.js","../lib/chart/treemap/treemapLayout.js","../lib/chart/treemap/install.js","../lib/chart/graph/categoryFilter.js","../lib/chart/graph/categoryVisual.js","../lib/chart/graph/edgeVisual.js","../lib/chart/helper/multipleGraphEdgeHelper.js","../lib/chart/graph/simpleLayoutHelper.js","../lib/chart/graph/simpleLayout.js","../lib/chart/graph/graphHelper.js","../lib/chart/graph/circularLayoutHelper.js","../lib/chart/graph/circularLayout.js","../lib/chart/graph/forceHelper.js","../lib/chart/graph/forceLayout.js","../lib/chart/graph/createView.js","../lib/chart/helper/LinePath.js","../lib/chart/helper/Line.js","../lib/chart/helper/LineDraw.js","../lib/chart/graph/adjustEdge.js","../lib/chart/graph/GraphView.js","../lib/data/Graph.js","../lib/chart/helper/createGraphFromNodeEdge.js","../lib/chart/graph/GraphSeries.js","../lib/chart/graph/install.js","../lib/chart/gauge/PointerPath.js","../lib/chart/gauge/GaugeView.js","../lib/chart/gauge/GaugeSeries.js","../lib/chart/gauge/install.js","../lib/chart/funnel/FunnelView.js","../lib/chart/funnel/FunnelSeries.js","../lib/chart/funnel/funnelLayout.js","../lib/chart/funnel/install.js","../lib/chart/parallel/ParallelView.js","../lib/chart/parallel/ParallelSeries.js","../lib/chart/parallel/parallelVisual.js","../lib/coord/parallel/parallelPreprocessor.js","../lib/component/parallel/ParallelView.js","../lib/coord/parallel/ParallelModel.js","../lib/coord/parallel/ParallelAxis.js","../lib/component/helper/sliderMove.js","../lib/coord/parallel/Parallel.js","../lib/coord/parallel/parallelCreator.js","../lib/coord/parallel/AxisModel.js","../lib/component/helper/BrushController.js","../lib/component/helper/brushHelper.js","../lib/component/axis/ParallelAxisView.js","../lib/component/axis/parallelAxisAction.js","../lib/component/parallel/install.js","../lib/chart/parallel/install.js","../lib/chart/sankey/SankeyView.js","../lib/chart/sankey/SankeySeries.js","../lib/chart/sankey/sankeyLayout.js","../lib/chart/sankey/sankeyVisual.js","../lib/chart/sankey/install.js","../lib/chart/helper/whiskerBoxCommon.js","../lib/chart/boxplot/BoxplotSeries.js","../lib/chart/boxplot/BoxplotView.js","../lib/chart/boxplot/boxplotVisual.js","../lib/chart/boxplot/boxplotLayout.js","../lib/chart/boxplot/prepareBoxplotData.js","../lib/chart/boxplot/boxplotTransform.js","../lib/chart/boxplot/install.js","../lib/chart/candlestick/CandlestickView.js","../lib/chart/candlestick/CandlestickSeries.js","../lib/chart/candlestick/preprocessor.js","../lib/chart/candlestick/candlestickVisual.js","../lib/chart/candlestick/candlestickLayout.js","../lib/chart/candlestick/install.js","../lib/chart/helper/EffectSymbol.js","../lib/chart/effectScatter/EffectScatterView.js","../lib/chart/effectScatter/EffectScatterSeries.js","../lib/chart/effectScatter/install.js","../lib/chart/helper/EffectLine.js","../lib/chart/helper/Polyline.js","../lib/chart/helper/EffectPolyline.js","../lib/chart/helper/LargeLineDraw.js","../lib/chart/lines/linesLayout.js","../lib/chart/lines/LinesView.js","../lib/chart/lines/LinesSeries.js","../lib/chart/lines/linesVisual.js","../lib/chart/lines/install.js","../lib/chart/heatmap/HeatmapLayer.js","../lib/chart/heatmap/HeatmapView.js","../lib/chart/heatmap/HeatmapSeries.js","../lib/chart/heatmap/install.js","../lib/chart/bar/PictorialBarView.js","../lib/chart/bar/PictorialBarSeries.js","../lib/chart/bar/installPictorialBar.js","../lib/chart/themeRiver/ThemeRiverView.js","../lib/chart/themeRiver/ThemeRiverSeries.js","../lib/chart/themeRiver/themeRiverLayout.js","../lib/chart/themeRiver/install.js","../lib/chart/sunburst/SunburstPiece.js","../lib/chart/sunburst/sunburstAction.js","../lib/chart/sunburst/SunburstView.js","../lib/chart/sunburst/SunburstSeries.js","../lib/chart/sunburst/sunburstLayout.js","../lib/chart/sunburst/sunburstVisual.js","../lib/chart/sunburst/install.js","../lib/coord/cartesian/prepareCustom.js","../lib/coord/geo/prepareCustom.js","../lib/coord/single/prepareCustom.js","../lib/coord/polar/prepareCustom.js","../lib/coord/calendar/prepareCustom.js","../lib/util/styleCompat.js","../node_modules/zrender/lib/tool/morphPath.js","../lib/chart/custom/install.js","../lib/component/axisPointer/BaseAxisPointer.js","../lib/component/axisPointer/viewHelper.js","../lib/component/axisPointer/CartesianAxisPointer.js","../lib/component/axisPointer/AxisPointerModel.js","../lib/component/axisPointer/globalListener.js","../lib/component/axisPointer/AxisPointerView.js","../lib/component/axisPointer/findPointFromSeries.js","../lib/component/axisPointer/axisTrigger.js","../lib/component/axisPointer/install.js","../lib/component/grid/install.js","../lib/component/axisPointer/PolarAxisPointer.js","../lib/coord/polar/PolarModel.js","../lib/coord/polar/AxisModel.js","../lib/coord/polar/RadiusAxis.js","../lib/coord/polar/AngleAxis.js","../lib/coord/polar/Polar.js","../lib/coord/polar/polarCreator.js","../lib/component/axis/AngleAxisView.js","../lib/component/axis/RadiusAxisView.js","../lib/layout/barPolar.js","../lib/component/polar/install.js","../lib/coord/geo/Geo.js","../lib/coord/geo/geoCreator.js","../lib/coord/geo/GeoModel.js","../lib/component/geo/GeoView.js","../lib/component/geo/install.js","../lib/coord/single/singleAxisHelper.js","../lib/component/axis/SingleAxisView.js","../lib/coord/single/AxisModel.js","../lib/coord/single/SingleAxis.js","../lib/coord/single/Single.js","../lib/coord/single/singleCreator.js","../lib/component/axisPointer/SingleAxisPointer.js","../lib/component/singleAxis/install.js","../lib/coord/calendar/CalendarModel.js","../lib/component/calendar/CalendarView.js","../lib/coord/calendar/Calendar.js","../lib/component/calendar/install.js","../lib/component/graphic/install.js","../lib/component/dataZoom/helper.js","../lib/component/dataZoom/DataZoomModel.js","../lib/component/dataZoom/SelectZoomModel.js","../lib/component/dataZoom/DataZoomView.js","../lib/component/dataZoom/SelectZoomView.js","../lib/component/dataZoom/AxisProxy.js","../lib/component/dataZoom/dataZoomProcessor.js","../lib/component/dataZoom/dataZoomAction.js","../lib/component/dataZoom/installCommon.js","../lib/component/dataZoom/installDataZoomSelect.js","../lib/component/toolbox/featureManager.js","../lib/component/toolbox/ToolboxModel.js","../lib/component/helper/listComponent.js","../lib/component/toolbox/ToolboxView.js","../lib/component/toolbox/feature/SaveAsImage.js","../lib/component/toolbox/feature/MagicType.js","../lib/component/toolbox/feature/DataView.js","../lib/component/dataZoom/history.js","../lib/component/toolbox/feature/Restore.js","../lib/component/helper/BrushTargetManager.js","../lib/component/toolbox/feature/DataZoom.js","../lib/component/toolbox/install.js","../lib/component/tooltip/TooltipModel.js","../lib/component/tooltip/helper.js","../lib/component/tooltip/TooltipHTMLContent.js","../lib/component/tooltip/TooltipRichContent.js","../lib/component/tooltip/TooltipView.js","../lib/component/tooltip/install.js","../lib/component/brush/preprocessor.js","../lib/visual/visualSolution.js","../lib/component/brush/selector.js","../lib/component/brush/visualEncoding.js","../lib/component/brush/BrushView.js","../lib/component/brush/BrushModel.js","../lib/component/toolbox/feature/Brush.js","../lib/component/brush/install.js","../lib/component/title/install.js","../lib/component/timeline/TimelineModel.js","../lib/component/timeline/SliderTimelineModel.js","../lib/component/timeline/TimelineView.js","../lib/component/timeline/TimelineAxis.js","../lib/component/timeline/SliderTimelineView.js","../lib/component/timeline/timelineAction.js","../lib/component/timeline/preprocessor.js","../lib/component/timeline/install.js","../lib/component/marker/MarkerModel.js","../lib/component/marker/MarkPointModel.js","../lib/component/marker/markerHelper.js","../lib/component/marker/MarkerView.js","../lib/component/marker/MarkPointView.js","../lib/component/marker/installMarkPoint.js","../lib/component/marker/MarkLineModel.js","../lib/component/marker/MarkLineView.js","../lib/component/marker/installMarkLine.js","../lib/component/marker/MarkAreaModel.js","../lib/component/marker/MarkAreaView.js","../lib/component/marker/installMarkArea.js","../lib/component/legend/LegendModel.js","../lib/component/legend/LegendView.js","../lib/component/legend/legendFilter.js","../lib/component/legend/legendAction.js","../lib/component/legend/installLegendPlain.js","../lib/component/legend/ScrollableLegendModel.js","../lib/component/legend/ScrollableLegendView.js","../lib/component/legend/scrollableLegendAction.js","../lib/component/legend/installLegendScroll.js","../lib/component/legend/install.js","../lib/component/dataZoom/InsideZoomModel.js","../lib/component/dataZoom/roams.js","../lib/component/dataZoom/InsideZoomView.js","../lib/component/dataZoom/installDataZoomInside.js","../lib/component/dataZoom/SliderZoomModel.js","../lib/component/dataZoom/SliderZoomView.js","../lib/component/dataZoom/installDataZoomSlider.js","../lib/component/dataZoom/install.js","../lib/visual/visualDefault.js","../lib/component/visualMap/VisualMapModel.js","../lib/component/visualMap/ContinuousModel.js","../lib/component/visualMap/VisualMapView.js","../lib/component/visualMap/helper.js","../lib/component/visualMap/ContinuousView.js","../lib/component/visualMap/visualMapAction.js","../lib/component/visualMap/visualEncoding.js","../lib/component/visualMap/preprocessor.js","../lib/component/visualMap/installCommon.js","../lib/component/visualMap/installVisualMapContinuous.js","../lib/component/visualMap/PiecewiseModel.js","../lib/component/visualMap/PiecewiseView.js","../lib/component/visualMap/installVisualMapPiecewise.js","../lib/component/visualMap/install.js","../lib/visual/aria.js","../lib/component/aria/preprocessor.js","../lib/component/aria/install.js","../lib/util/conditionalExpression.js","../lib/component/transform/filterTransform.js","../lib/component/transform/sortTransform.js","../lib/component/transform/install.js","../lib/component/dataset/install.js","../index.js"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar 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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport 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\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\nexport 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};\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to get private field on non-instance\");\r\n    }\r\n    return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to set private field on non-instance\");\r\n    }\r\n    privateMap.set(receiver, value);\r\n    return value;\r\n}\r\n","var Browser = (function () {\n    function Browser() {\n        this.firefox = false;\n        this.ie = false;\n        this.edge = false;\n        this.newEdge = false;\n        this.weChat = false;\n    }\n    return Browser;\n}());\nvar Env = (function () {\n    function Env() {\n        this.browser = new Browser();\n        this.node = false;\n        this.wxa = false;\n        this.worker = false;\n        this.canvasSupported = false;\n        this.svgSupported = false;\n        this.touchEventsSupported = false;\n        this.pointerEventsSupported = false;\n        this.domSupported = false;\n    }\n    return Env;\n}());\nvar env = new Env();\nif (typeof wx === 'object' && typeof wx.getSystemInfoSync === 'function') {\n    env.wxa = true;\n    env.canvasSupported = true;\n    env.touchEventsSupported = true;\n}\nelse if (typeof document === 'undefined' && typeof self !== 'undefined') {\n    env.worker = true;\n    env.canvasSupported = true;\n}\nelse if (typeof navigator === 'undefined') {\n    env.node = true;\n    env.canvasSupported = true;\n    env.svgSupported = true;\n}\nelse {\n    detect(navigator.userAgent, env);\n}\nfunction detect(ua, env) {\n    var browser = env.browser;\n    var firefox = ua.match(/Firefox\\/([\\d.]+)/);\n    var ie = ua.match(/MSIE\\s([\\d.]+)/)\n        || ua.match(/Trident\\/.+?rv:(([\\d.]+))/);\n    var edge = ua.match(/Edge?\\/([\\d.]+)/);\n    var weChat = (/micromessenger/i).test(ua);\n    if (firefox) {\n        browser.firefox = true;\n        browser.version = firefox[1];\n    }\n    if (ie) {\n        browser.ie = true;\n        browser.version = ie[1];\n    }\n    if (edge) {\n        browser.edge = true;\n        browser.version = edge[1];\n        browser.newEdge = +edge[1].split('.')[0] > 18;\n    }\n    if (weChat) {\n        browser.weChat = true;\n    }\n    env.canvasSupported = !!document.createElement('canvas').getContext;\n    env.svgSupported = typeof SVGRect !== 'undefined';\n    env.touchEventsSupported = 'ontouchstart' in window && !browser.ie && !browser.edge;\n    env.pointerEventsSupported = 'onpointerdown' in window\n        && (browser.edge || (browser.ie && +browser.version >= 11));\n    env.domSupported = typeof document !== 'undefined';\n}\nexport default env;\n","var BUILTIN_OBJECT = {\n    '[object Function]': true,\n    '[object RegExp]': true,\n    '[object Date]': true,\n    '[object Error]': true,\n    '[object CanvasGradient]': true,\n    '[object CanvasPattern]': true,\n    '[object Image]': true,\n    '[object Canvas]': true\n};\nvar TYPED_ARRAY = {\n    '[object Int8Array]': true,\n    '[object Uint8Array]': true,\n    '[object Uint8ClampedArray]': true,\n    '[object Int16Array]': true,\n    '[object Uint16Array]': true,\n    '[object Int32Array]': true,\n    '[object Uint32Array]': true,\n    '[object Float32Array]': true,\n    '[object Float64Array]': true\n};\nvar objToString = Object.prototype.toString;\nvar arrayProto = Array.prototype;\nvar nativeForEach = arrayProto.forEach;\nvar nativeFilter = arrayProto.filter;\nvar nativeSlice = arrayProto.slice;\nvar nativeMap = arrayProto.map;\nvar ctorFunction = function () { }.constructor;\nvar protoFunction = ctorFunction ? ctorFunction.prototype : null;\nvar methods = {};\nexport function $override(name, fn) {\n    methods[name] = fn;\n}\nvar idStart = 0x0907;\nexport function guid() {\n    return idStart++;\n}\nexport function logError() {\n    var args = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n    }\n    if (typeof console !== 'undefined') {\n        console.error.apply(console, args);\n    }\n}\nexport function clone(source) {\n    if (source == null || typeof source !== 'object') {\n        return source;\n    }\n    var result = source;\n    var typeStr = objToString.call(source);\n    if (typeStr === '[object Array]') {\n        if (!isPrimitive(source)) {\n            result = [];\n            for (var i = 0, len = source.length; i < len; i++) {\n                result[i] = clone(source[i]);\n            }\n        }\n    }\n    else if (TYPED_ARRAY[typeStr]) {\n        if (!isPrimitive(source)) {\n            var Ctor = source.constructor;\n            if (Ctor.from) {\n                result = Ctor.from(source);\n            }\n            else {\n                result = new Ctor(source.length);\n                for (var i = 0, len = source.length; i < len; i++) {\n                    result[i] = clone(source[i]);\n                }\n            }\n        }\n    }\n    else if (!BUILTIN_OBJECT[typeStr] && !isPrimitive(source) && !isDom(source)) {\n        result = {};\n        for (var key in source) {\n            if (source.hasOwnProperty(key)) {\n                result[key] = clone(source[key]);\n            }\n        }\n    }\n    return result;\n}\nexport function merge(target, source, overwrite) {\n    if (!isObject(source) || !isObject(target)) {\n        return overwrite ? clone(source) : target;\n    }\n    for (var key in source) {\n        if (source.hasOwnProperty(key)) {\n            var targetProp = target[key];\n            var sourceProp = source[key];\n            if (isObject(sourceProp)\n                && isObject(targetProp)\n                && !isArray(sourceProp)\n                && !isArray(targetProp)\n                && !isDom(sourceProp)\n                && !isDom(targetProp)\n                && !isBuiltInObject(sourceProp)\n                && !isBuiltInObject(targetProp)\n                && !isPrimitive(sourceProp)\n                && !isPrimitive(targetProp)) {\n                merge(targetProp, sourceProp, overwrite);\n            }\n            else if (overwrite || !(key in target)) {\n                target[key] = clone(source[key]);\n            }\n        }\n    }\n    return target;\n}\nexport function mergeAll(targetAndSources, overwrite) {\n    var result = targetAndSources[0];\n    for (var i = 1, len = targetAndSources.length; i < len; i++) {\n        result = merge(result, targetAndSources[i], overwrite);\n    }\n    return result;\n}\nexport function extend(target, source) {\n    if (Object.assign) {\n        Object.assign(target, source);\n    }\n    else {\n        for (var key in source) {\n            if (source.hasOwnProperty(key)) {\n                target[key] = source[key];\n            }\n        }\n    }\n    return target;\n}\nexport function defaults(target, source, overlay) {\n    var keysArr = keys(source);\n    for (var i = 0; i < keysArr.length; i++) {\n        var key = keysArr[i];\n        if ((overlay ? source[key] != null : target[key] == null)) {\n            target[key] = source[key];\n        }\n    }\n    return target;\n}\nexport var createCanvas = function () {\n    return methods.createCanvas();\n};\nmethods.createCanvas = function () {\n    return document.createElement('canvas');\n};\nexport function indexOf(array, value) {\n    if (array) {\n        if (array.indexOf) {\n            return array.indexOf(value);\n        }\n        for (var i = 0, len = array.length; i < len; i++) {\n            if (array[i] === value) {\n                return i;\n            }\n        }\n    }\n    return -1;\n}\nexport function inherits(clazz, baseClazz) {\n    var clazzPrototype = clazz.prototype;\n    function F() { }\n    F.prototype = baseClazz.prototype;\n    clazz.prototype = new F();\n    for (var prop in clazzPrototype) {\n        if (clazzPrototype.hasOwnProperty(prop)) {\n            clazz.prototype[prop] = clazzPrototype[prop];\n        }\n    }\n    clazz.prototype.constructor = clazz;\n    clazz.superClass = baseClazz;\n}\nexport function mixin(target, source, override) {\n    target = 'prototype' in target ? target.prototype : target;\n    source = 'prototype' in source ? source.prototype : source;\n    if (Object.getOwnPropertyNames) {\n        var keyList = Object.getOwnPropertyNames(source);\n        for (var i = 0; i < keyList.length; i++) {\n            var key = keyList[i];\n            if (key !== 'constructor') {\n                if ((override ? source[key] != null : target[key] == null)) {\n                    target[key] = source[key];\n                }\n            }\n        }\n    }\n    else {\n        defaults(target, source, override);\n    }\n}\nexport function isArrayLike(data) {\n    if (!data) {\n        return false;\n    }\n    if (typeof data === 'string') {\n        return false;\n    }\n    return typeof data.length === 'number';\n}\nexport function each(arr, cb, context) {\n    if (!(arr && cb)) {\n        return;\n    }\n    if (arr.forEach && arr.forEach === nativeForEach) {\n        arr.forEach(cb, context);\n    }\n    else if (arr.length === +arr.length) {\n        for (var i = 0, len = arr.length; i < len; i++) {\n            cb.call(context, arr[i], i, arr);\n        }\n    }\n    else {\n        for (var key in arr) {\n            if (arr.hasOwnProperty(key)) {\n                cb.call(context, arr[key], key, arr);\n            }\n        }\n    }\n}\nexport function map(arr, cb, context) {\n    if (!arr) {\n        return [];\n    }\n    if (!cb) {\n        return slice(arr);\n    }\n    if (arr.map && arr.map === nativeMap) {\n        return arr.map(cb, context);\n    }\n    else {\n        var result = [];\n        for (var i = 0, len = arr.length; i < len; i++) {\n            result.push(cb.call(context, arr[i], i, arr));\n        }\n        return result;\n    }\n}\nexport function reduce(arr, cb, memo, context) {\n    if (!(arr && cb)) {\n        return;\n    }\n    for (var i = 0, len = arr.length; i < len; i++) {\n        memo = cb.call(context, memo, arr[i], i, arr);\n    }\n    return memo;\n}\nexport function filter(arr, cb, context) {\n    if (!arr) {\n        return [];\n    }\n    if (!cb) {\n        return slice(arr);\n    }\n    if (arr.filter && arr.filter === nativeFilter) {\n        return arr.filter(cb, context);\n    }\n    else {\n        var result = [];\n        for (var i = 0, len = arr.length; i < len; i++) {\n            if (cb.call(context, arr[i], i, arr)) {\n                result.push(arr[i]);\n            }\n        }\n        return result;\n    }\n}\nexport function find(arr, cb, context) {\n    if (!(arr && cb)) {\n        return;\n    }\n    for (var i = 0, len = arr.length; i < len; i++) {\n        if (cb.call(context, arr[i], i, arr)) {\n            return arr[i];\n        }\n    }\n}\nexport function keys(obj) {\n    if (!obj) {\n        return [];\n    }\n    if (Object.keys) {\n        return Object.keys(obj);\n    }\n    var keyList = [];\n    for (var key in obj) {\n        if (obj.hasOwnProperty(key)) {\n            keyList.push(key);\n        }\n    }\n    return keyList;\n}\nfunction bindPolyfill(func, context) {\n    var args = [];\n    for (var _i = 2; _i < arguments.length; _i++) {\n        args[_i - 2] = arguments[_i];\n    }\n    return function () {\n        return func.apply(context, args.concat(nativeSlice.call(arguments)));\n    };\n}\nexport var bind = (protoFunction && isFunction(protoFunction.bind))\n    ? protoFunction.call.bind(protoFunction.bind)\n    : bindPolyfill;\nfunction curry(func) {\n    var args = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        args[_i - 1] = arguments[_i];\n    }\n    return function () {\n        return func.apply(this, args.concat(nativeSlice.call(arguments)));\n    };\n}\nexport { curry };\nexport function isArray(value) {\n    if (Array.isArray) {\n        return Array.isArray(value);\n    }\n    return objToString.call(value) === '[object Array]';\n}\nexport function isFunction(value) {\n    return typeof value === 'function';\n}\nexport function isString(value) {\n    return typeof value === 'string';\n}\nexport function isStringSafe(value) {\n    return objToString.call(value) === '[object String]';\n}\nexport function isNumber(value) {\n    return typeof value === 'number';\n}\nexport function isObject(value) {\n    var type = typeof value;\n    return type === 'function' || (!!value && type === 'object');\n}\nexport function isBuiltInObject(value) {\n    return !!BUILTIN_OBJECT[objToString.call(value)];\n}\nexport function isTypedArray(value) {\n    return !!TYPED_ARRAY[objToString.call(value)];\n}\nexport function isDom(value) {\n    return typeof value === 'object'\n        && typeof value.nodeType === 'number'\n        && typeof value.ownerDocument === 'object';\n}\nexport function isGradientObject(value) {\n    return value.colorStops != null;\n}\nexport function isPatternObject(value) {\n    return value.image != null;\n}\nexport function isRegExp(value) {\n    return objToString.call(value) === '[object RegExp]';\n}\nexport function eqNaN(value) {\n    return value !== value;\n}\nexport function retrieve() {\n    var args = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n    }\n    for (var i = 0, len = args.length; i < len; i++) {\n        if (args[i] != null) {\n            return args[i];\n        }\n    }\n}\nexport function retrieve2(value0, value1) {\n    return value0 != null\n        ? value0\n        : value1;\n}\nexport function retrieve3(value0, value1, value2) {\n    return value0 != null\n        ? value0\n        : value1 != null\n            ? value1\n            : value2;\n}\nexport function slice(arr) {\n    var args = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        args[_i - 1] = arguments[_i];\n    }\n    return nativeSlice.apply(arr, args);\n}\nexport function normalizeCssArray(val) {\n    if (typeof (val) === 'number') {\n        return [val, val, val, val];\n    }\n    var len = val.length;\n    if (len === 2) {\n        return [val[0], val[1], val[0], val[1]];\n    }\n    else if (len === 3) {\n        return [val[0], val[1], val[2], val[1]];\n    }\n    return val;\n}\nexport function assert(condition, message) {\n    if (!condition) {\n        throw new Error(message);\n    }\n}\nexport function trim(str) {\n    if (str == null) {\n        return null;\n    }\n    else if (typeof str.trim === 'function') {\n        return str.trim();\n    }\n    else {\n        return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n    }\n}\nvar primitiveKey = '__ec_primitive__';\nexport function setAsPrimitive(obj) {\n    obj[primitiveKey] = true;\n}\nexport function isPrimitive(obj) {\n    return obj[primitiveKey];\n}\nvar HashMap = (function () {\n    function HashMap(obj) {\n        this.data = {};\n        var isArr = isArray(obj);\n        this.data = {};\n        var thisMap = this;\n        (obj instanceof HashMap)\n            ? obj.each(visit)\n            : (obj && each(obj, visit));\n        function visit(value, key) {\n            isArr ? thisMap.set(value, key) : thisMap.set(key, value);\n        }\n    }\n    HashMap.prototype.get = function (key) {\n        return this.data.hasOwnProperty(key) ? this.data[key] : null;\n    };\n    HashMap.prototype.set = function (key, value) {\n        return (this.data[key] = value);\n    };\n    HashMap.prototype.each = function (cb, context) {\n        for (var key in this.data) {\n            if (this.data.hasOwnProperty(key)) {\n                cb.call(context, this.data[key], key);\n            }\n        }\n    };\n    HashMap.prototype.keys = function () {\n        return keys(this.data);\n    };\n    HashMap.prototype.removeKey = function (key) {\n        delete this.data[key];\n    };\n    return HashMap;\n}());\nexport { HashMap };\nexport function createHashMap(obj) {\n    return new HashMap(obj);\n}\nexport function concatArray(a, b) {\n    var newArray = new a.constructor(a.length + b.length);\n    for (var i = 0; i < a.length; i++) {\n        newArray[i] = a[i];\n    }\n    var offset = a.length;\n    for (var i = 0; i < b.length; i++) {\n        newArray[i + offset] = b[i];\n    }\n    return newArray;\n}\nexport function createObject(proto, properties) {\n    var obj;\n    if (Object.create) {\n        obj = Object.create(proto);\n    }\n    else {\n        var StyleCtor = function () { };\n        StyleCtor.prototype = proto;\n        obj = new StyleCtor();\n    }\n    if (properties) {\n        extend(obj, properties);\n    }\n    return obj;\n}\nexport function hasOwn(own, prop) {\n    return own.hasOwnProperty(prop);\n}\nexport function noop() { }\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar 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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport 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\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\nexport 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};\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to get private field on non-instance\");\r\n    }\r\n    return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to set private field on non-instance\");\r\n    }\r\n    privateMap.set(receiver, value);\r\n    return value;\r\n}\r\n","export function create(x, y) {\n    if (x == null) {\n        x = 0;\n    }\n    if (y == null) {\n        y = 0;\n    }\n    return [x, y];\n}\nexport function copy(out, v) {\n    out[0] = v[0];\n    out[1] = v[1];\n    return out;\n}\nexport function clone(v) {\n    return [v[0], v[1]];\n}\nexport function set(out, a, b) {\n    out[0] = a;\n    out[1] = b;\n    return out;\n}\nexport function add(out, v1, v2) {\n    out[0] = v1[0] + v2[0];\n    out[1] = v1[1] + v2[1];\n    return out;\n}\nexport function scaleAndAdd(out, v1, v2, a) {\n    out[0] = v1[0] + v2[0] * a;\n    out[1] = v1[1] + v2[1] * a;\n    return out;\n}\nexport function sub(out, v1, v2) {\n    out[0] = v1[0] - v2[0];\n    out[1] = v1[1] - v2[1];\n    return out;\n}\nexport function len(v) {\n    return Math.sqrt(lenSquare(v));\n}\nexport var length = len;\nexport function lenSquare(v) {\n    return v[0] * v[0] + v[1] * v[1];\n}\nexport var lengthSquare = lenSquare;\nexport function mul(out, v1, v2) {\n    out[0] = v1[0] * v2[0];\n    out[1] = v1[1] * v2[1];\n    return out;\n}\nexport function div(out, v1, v2) {\n    out[0] = v1[0] / v2[0];\n    out[1] = v1[1] / v2[1];\n    return out;\n}\nexport function dot(v1, v2) {\n    return v1[0] * v2[0] + v1[1] * v2[1];\n}\nexport function scale(out, v, s) {\n    out[0] = v[0] * s;\n    out[1] = v[1] * s;\n    return out;\n}\nexport function normalize(out, v) {\n    var d = len(v);\n    if (d === 0) {\n        out[0] = 0;\n        out[1] = 0;\n    }\n    else {\n        out[0] = v[0] / d;\n        out[1] = v[1] / d;\n    }\n    return out;\n}\nexport function distance(v1, v2) {\n    return Math.sqrt((v1[0] - v2[0]) * (v1[0] - v2[0])\n        + (v1[1] - v2[1]) * (v1[1] - v2[1]));\n}\nexport var dist = distance;\nexport function distanceSquare(v1, v2) {\n    return (v1[0] - v2[0]) * (v1[0] - v2[0])\n        + (v1[1] - v2[1]) * (v1[1] - v2[1]);\n}\nexport var distSquare = distanceSquare;\nexport function negate(out, v) {\n    out[0] = -v[0];\n    out[1] = -v[1];\n    return out;\n}\nexport function lerp(out, v1, v2, t) {\n    out[0] = v1[0] + t * (v2[0] - v1[0]);\n    out[1] = v1[1] + t * (v2[1] - v1[1]);\n    return out;\n}\nexport function applyTransform(out, v, m) {\n    var x = v[0];\n    var y = v[1];\n    out[0] = m[0] * x + m[2] * y + m[4];\n    out[1] = m[1] * x + m[3] * y + m[5];\n    return out;\n}\nexport function min(out, v1, v2) {\n    out[0] = Math.min(v1[0], v2[0]);\n    out[1] = Math.min(v1[1], v2[1]);\n    return out;\n}\nexport function max(out, v1, v2) {\n    out[0] = Math.max(v1[0], v2[0]);\n    out[1] = Math.max(v1[1], v2[1]);\n    return out;\n}\n","var Param = (function () {\n    function Param(target, e) {\n        this.target = target;\n        this.topTarget = e && e.topTarget;\n    }\n    return Param;\n}());\nvar Draggable = (function () {\n    function Draggable(handler) {\n        this.handler = handler;\n        handler.on('mousedown', this._dragStart, this);\n        handler.on('mousemove', this._drag, this);\n        handler.on('mouseup', this._dragEnd, this);\n    }\n    Draggable.prototype._dragStart = function (e) {\n        var draggingTarget = e.target;\n        while (draggingTarget && !draggingTarget.draggable) {\n            draggingTarget = draggingTarget.parent;\n        }\n        if (draggingTarget) {\n            this._draggingTarget = draggingTarget;\n            draggingTarget.dragging = true;\n            this._x = e.offsetX;\n            this._y = e.offsetY;\n            this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragstart', e.event);\n        }\n    };\n    Draggable.prototype._drag = function (e) {\n        var draggingTarget = this._draggingTarget;\n        if (draggingTarget) {\n            var x = e.offsetX;\n            var y = e.offsetY;\n            var dx = x - this._x;\n            var dy = y - this._y;\n            this._x = x;\n            this._y = y;\n            draggingTarget.drift(dx, dy, e);\n            this.handler.dispatchToElement(new Param(draggingTarget, e), 'drag', e.event);\n            var dropTarget = this.handler.findHover(x, y, draggingTarget).target;\n            var lastDropTarget = this._dropTarget;\n            this._dropTarget = dropTarget;\n            if (draggingTarget !== dropTarget) {\n                if (lastDropTarget && dropTarget !== lastDropTarget) {\n                    this.handler.dispatchToElement(new Param(lastDropTarget, e), 'dragleave', e.event);\n                }\n                if (dropTarget && dropTarget !== lastDropTarget) {\n                    this.handler.dispatchToElement(new Param(dropTarget, e), 'dragenter', e.event);\n                }\n            }\n        }\n    };\n    Draggable.prototype._dragEnd = function (e) {\n        var draggingTarget = this._draggingTarget;\n        if (draggingTarget) {\n            draggingTarget.dragging = false;\n        }\n        this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragend', e.event);\n        if (this._dropTarget) {\n            this.handler.dispatchToElement(new Param(this._dropTarget, e), 'drop', e.event);\n        }\n        this._draggingTarget = null;\n        this._dropTarget = null;\n    };\n    return Draggable;\n}());\nexport default Draggable;\n","var Eventful = (function () {\n    function Eventful(eventProcessors) {\n        if (eventProcessors) {\n            this._$eventProcessor = eventProcessors;\n        }\n    }\n    Eventful.prototype.on = function (event, query, handler, context) {\n        if (!this._$handlers) {\n            this._$handlers = {};\n        }\n        var _h = this._$handlers;\n        if (typeof query === 'function') {\n            context = handler;\n            handler = query;\n            query = null;\n        }\n        if (!handler || !event) {\n            return this;\n        }\n        var eventProcessor = this._$eventProcessor;\n        if (query != null && eventProcessor && eventProcessor.normalizeQuery) {\n            query = eventProcessor.normalizeQuery(query);\n        }\n        if (!_h[event]) {\n            _h[event] = [];\n        }\n        for (var i = 0; i < _h[event].length; i++) {\n            if (_h[event][i].h === handler) {\n                return this;\n            }\n        }\n        var wrap = {\n            h: handler,\n            query: query,\n            ctx: (context || this),\n            callAtLast: handler.zrEventfulCallAtLast\n        };\n        var lastIndex = _h[event].length - 1;\n        var lastWrap = _h[event][lastIndex];\n        (lastWrap && lastWrap.callAtLast)\n            ? _h[event].splice(lastIndex, 0, wrap)\n            : _h[event].push(wrap);\n        return this;\n    };\n    Eventful.prototype.isSilent = function (eventName) {\n        var _h = this._$handlers;\n        return !_h || !_h[eventName] || !_h[eventName].length;\n    };\n    Eventful.prototype.off = function (eventType, handler) {\n        var _h = this._$handlers;\n        if (!_h) {\n            return this;\n        }\n        if (!eventType) {\n            this._$handlers = {};\n            return this;\n        }\n        if (handler) {\n            if (_h[eventType]) {\n                var newList = [];\n                for (var i = 0, l = _h[eventType].length; i < l; i++) {\n                    if (_h[eventType][i].h !== handler) {\n                        newList.push(_h[eventType][i]);\n                    }\n                }\n                _h[eventType] = newList;\n            }\n            if (_h[eventType] && _h[eventType].length === 0) {\n                delete _h[eventType];\n            }\n        }\n        else {\n            delete _h[eventType];\n        }\n        return this;\n    };\n    Eventful.prototype.trigger = function (eventType) {\n        var args = [];\n        for (var _i = 1; _i < arguments.length; _i++) {\n            args[_i - 1] = arguments[_i];\n        }\n        if (!this._$handlers) {\n            return this;\n        }\n        var _h = this._$handlers[eventType];\n        var eventProcessor = this._$eventProcessor;\n        if (_h) {\n            var argLen = args.length;\n            var len = _h.length;\n            for (var i = 0; i < len; i++) {\n                var hItem = _h[i];\n                if (eventProcessor\n                    && eventProcessor.filter\n                    && hItem.query != null\n                    && !eventProcessor.filter(eventType, hItem.query)) {\n                    continue;\n                }\n                switch (argLen) {\n                    case 0:\n                        hItem.h.call(hItem.ctx);\n                        break;\n                    case 1:\n                        hItem.h.call(hItem.ctx, args[0]);\n                        break;\n                    case 2:\n                        hItem.h.call(hItem.ctx, args[0], args[1]);\n                        break;\n                    default:\n                        hItem.h.apply(hItem.ctx, args);\n                        break;\n                }\n            }\n        }\n        eventProcessor && eventProcessor.afterTrigger\n            && eventProcessor.afterTrigger(eventType);\n        return this;\n    };\n    Eventful.prototype.triggerWithContext = function (type) {\n        if (!this._$handlers) {\n            return this;\n        }\n        var _h = this._$handlers[type];\n        var eventProcessor = this._$eventProcessor;\n        if (_h) {\n            var args = arguments;\n            var argLen = args.length;\n            var ctx = args[argLen - 1];\n            var len = _h.length;\n            for (var i = 0; i < len; i++) {\n                var hItem = _h[i];\n                if (eventProcessor\n                    && eventProcessor.filter\n                    && hItem.query != null\n                    && !eventProcessor.filter(type, hItem.query)) {\n                    continue;\n                }\n                switch (argLen) {\n                    case 0:\n                        hItem.h.call(ctx);\n                        break;\n                    case 1:\n                        hItem.h.call(ctx, args[0]);\n                        break;\n                    case 2:\n                        hItem.h.call(ctx, args[0], args[1]);\n                        break;\n                    default:\n                        hItem.h.apply(ctx, args.slice(1, argLen - 1));\n                        break;\n                }\n            }\n        }\n        eventProcessor && eventProcessor.afterTrigger\n            && eventProcessor.afterTrigger(type);\n        return this;\n    };\n    return Eventful;\n}());\nexport default Eventful;\n","var LN2 = Math.log(2);\nfunction determinant(rows, rank, rowStart, rowMask, colMask, detCache) {\n    var cacheKey = rowMask + '-' + colMask;\n    var fullRank = rows.length;\n    if (detCache.hasOwnProperty(cacheKey)) {\n        return detCache[cacheKey];\n    }\n    if (rank === 1) {\n        var colStart = Math.round(Math.log(((1 << fullRank) - 1) & ~colMask) / LN2);\n        return rows[rowStart][colStart];\n    }\n    var subRowMask = rowMask | (1 << rowStart);\n    var subRowStart = rowStart + 1;\n    while (rowMask & (1 << subRowStart)) {\n        subRowStart++;\n    }\n    var sum = 0;\n    for (var j = 0, colLocalIdx = 0; j < fullRank; j++) {\n        var colTag = 1 << j;\n        if (!(colTag & colMask)) {\n            sum += (colLocalIdx % 2 ? -1 : 1) * rows[rowStart][j]\n                * determinant(rows, rank - 1, subRowStart, subRowMask, colMask | colTag, detCache);\n            colLocalIdx++;\n        }\n    }\n    detCache[cacheKey] = sum;\n    return sum;\n}\nexport function buildTransformer(src, dest) {\n    var mA = [\n        [src[0], src[1], 1, 0, 0, 0, -dest[0] * src[0], -dest[0] * src[1]],\n        [0, 0, 0, src[0], src[1], 1, -dest[1] * src[0], -dest[1] * src[1]],\n        [src[2], src[3], 1, 0, 0, 0, -dest[2] * src[2], -dest[2] * src[3]],\n        [0, 0, 0, src[2], src[3], 1, -dest[3] * src[2], -dest[3] * src[3]],\n        [src[4], src[5], 1, 0, 0, 0, -dest[4] * src[4], -dest[4] * src[5]],\n        [0, 0, 0, src[4], src[5], 1, -dest[5] * src[4], -dest[5] * src[5]],\n        [src[6], src[7], 1, 0, 0, 0, -dest[6] * src[6], -dest[6] * src[7]],\n        [0, 0, 0, src[6], src[7], 1, -dest[7] * src[6], -dest[7] * src[7]]\n    ];\n    var detCache = {};\n    var det = determinant(mA, 8, 0, 0, 0, detCache);\n    if (det === 0) {\n        return;\n    }\n    var vh = [];\n    for (var i = 0; i < 8; i++) {\n        for (var j = 0; j < 8; j++) {\n            vh[j] == null && (vh[j] = 0);\n            vh[j] += ((i + j) % 2 ? -1 : 1)\n                * determinant(mA, 7, i === 0 ? 1 : 0, 1 << i, 1 << j, detCache)\n                / det * dest[i];\n        }\n    }\n    return function (out, srcPointX, srcPointY) {\n        var pk = srcPointX * vh[6] + srcPointY * vh[7] + 1;\n        out[0] = (srcPointX * vh[0] + srcPointY * vh[1] + vh[2]) / pk;\n        out[1] = (srcPointX * vh[3] + srcPointY * vh[4] + vh[5]) / pk;\n    };\n}\n","import env from './env';\nimport { buildTransformer } from './fourPointsTransform';\nvar EVENT_SAVED_PROP = '___zrEVENTSAVED';\nvar _calcOut = [];\nexport function transformLocalCoord(out, elFrom, elTarget, inX, inY) {\n    return transformCoordWithViewport(_calcOut, elFrom, inX, inY, true)\n        && transformCoordWithViewport(out, elTarget, _calcOut[0], _calcOut[1]);\n}\nexport function transformCoordWithViewport(out, el, inX, inY, inverse) {\n    if (el.getBoundingClientRect && env.domSupported && !isCanvasEl(el)) {\n        var saved = el[EVENT_SAVED_PROP] || (el[EVENT_SAVED_PROP] = {});\n        var markers = prepareCoordMarkers(el, saved);\n        var transformer = preparePointerTransformer(markers, saved, inverse);\n        if (transformer) {\n            transformer(out, inX, inY);\n            return true;\n        }\n    }\n    return false;\n}\nfunction prepareCoordMarkers(el, saved) {\n    var markers = saved.markers;\n    if (markers) {\n        return markers;\n    }\n    markers = saved.markers = [];\n    var propLR = ['left', 'right'];\n    var propTB = ['top', 'bottom'];\n    for (var i = 0; i < 4; i++) {\n        var marker = document.createElement('div');\n        var stl = marker.style;\n        var idxLR = i % 2;\n        var idxTB = (i >> 1) % 2;\n        stl.cssText = [\n            'position: absolute',\n            'visibility: hidden',\n            'padding: 0',\n            'margin: 0',\n            'border-width: 0',\n            'user-select: none',\n            'width:0',\n            'height:0',\n            propLR[idxLR] + ':0',\n            propTB[idxTB] + ':0',\n            propLR[1 - idxLR] + ':auto',\n            propTB[1 - idxTB] + ':auto',\n            ''\n        ].join('!important;');\n        el.appendChild(marker);\n        markers.push(marker);\n    }\n    return markers;\n}\nfunction preparePointerTransformer(markers, saved, inverse) {\n    var transformerName = inverse ? 'invTrans' : 'trans';\n    var transformer = saved[transformerName];\n    var oldSrcCoords = saved.srcCoords;\n    var srcCoords = [];\n    var destCoords = [];\n    var oldCoordTheSame = true;\n    for (var i = 0; i < 4; i++) {\n        var rect = markers[i].getBoundingClientRect();\n        var ii = 2 * i;\n        var x = rect.left;\n        var y = rect.top;\n        srcCoords.push(x, y);\n        oldCoordTheSame = oldCoordTheSame && oldSrcCoords && x === oldSrcCoords[ii] && y === oldSrcCoords[ii + 1];\n        destCoords.push(markers[i].offsetLeft, markers[i].offsetTop);\n    }\n    return (oldCoordTheSame && transformer)\n        ? transformer\n        : (saved.srcCoords = srcCoords,\n            saved[transformerName] = inverse\n                ? buildTransformer(destCoords, srcCoords)\n                : buildTransformer(srcCoords, destCoords));\n}\nexport function isCanvasEl(el) {\n    return el.nodeName.toUpperCase() === 'CANVAS';\n}\n","import Eventful from './Eventful';\nimport env from './env';\nimport { isCanvasEl, transformCoordWithViewport } from './dom';\nvar isDomLevel2 = (typeof window !== 'undefined') && !!window.addEventListener;\nvar MOUSE_EVENT_REG = /^(?:mouse|pointer|contextmenu|drag|drop)|click/;\nvar _calcOut = [];\nexport function clientToLocal(el, e, out, calculate) {\n    out = out || {};\n    if (calculate || !env.canvasSupported) {\n        calculateZrXY(el, e, out);\n    }\n    else if (env.browser.firefox\n        && e.layerX != null\n        && e.layerX !== e.offsetX) {\n        out.zrX = e.layerX;\n        out.zrY = e.layerY;\n    }\n    else if (e.offsetX != null) {\n        out.zrX = e.offsetX;\n        out.zrY = e.offsetY;\n    }\n    else {\n        calculateZrXY(el, e, out);\n    }\n    return out;\n}\nfunction calculateZrXY(el, e, out) {\n    if (env.domSupported && el.getBoundingClientRect) {\n        var ex = e.clientX;\n        var ey = e.clientY;\n        if (isCanvasEl(el)) {\n            var box = el.getBoundingClientRect();\n            out.zrX = ex - box.left;\n            out.zrY = ey - box.top;\n            return;\n        }\n        else {\n            if (transformCoordWithViewport(_calcOut, el, ex, ey)) {\n                out.zrX = _calcOut[0];\n                out.zrY = _calcOut[1];\n                return;\n            }\n        }\n    }\n    out.zrX = out.zrY = 0;\n}\nexport function getNativeEvent(e) {\n    return e\n        || window.event;\n}\nexport function normalizeEvent(el, e, calculate) {\n    e = getNativeEvent(e);\n    if (e.zrX != null) {\n        return e;\n    }\n    var eventType = e.type;\n    var isTouch = eventType && eventType.indexOf('touch') >= 0;\n    if (!isTouch) {\n        clientToLocal(el, e, e, calculate);\n        var wheelDelta = getWheelDeltaMayPolyfill(e);\n        e.zrDelta = wheelDelta ? wheelDelta / 120 : -(e.detail || 0) / 3;\n    }\n    else {\n        var touch = eventType !== 'touchend'\n            ? e.targetTouches[0]\n            : e.changedTouches[0];\n        touch && clientToLocal(el, touch, e, calculate);\n    }\n    var button = e.button;\n    if (e.which == null && button !== undefined && MOUSE_EVENT_REG.test(e.type)) {\n        e.which = (button & 1 ? 1 : (button & 2 ? 3 : (button & 4 ? 2 : 0)));\n    }\n    return e;\n}\nfunction getWheelDeltaMayPolyfill(e) {\n    var rawWheelDelta = e.wheelDelta;\n    if (rawWheelDelta) {\n        return rawWheelDelta;\n    }\n    var deltaX = e.deltaX;\n    var deltaY = e.deltaY;\n    if (deltaX == null || deltaY == null) {\n        return rawWheelDelta;\n    }\n    var delta = deltaY !== 0 ? Math.abs(deltaY) : Math.abs(deltaX);\n    var sign = deltaY > 0 ? -1\n        : deltaY < 0 ? 1\n            : deltaX > 0 ? -1\n                : 1;\n    return 3 * delta * sign;\n}\nexport function addEventListener(el, name, handler, opt) {\n    if (isDomLevel2) {\n        el.addEventListener(name, handler, opt);\n    }\n    else {\n        el.attachEvent('on' + name, handler);\n    }\n}\nexport function removeEventListener(el, name, handler, opt) {\n    if (isDomLevel2) {\n        el.removeEventListener(name, handler, opt);\n    }\n    else {\n        el.detachEvent('on' + name, handler);\n    }\n}\nexport var stop = isDomLevel2\n    ? function (e) {\n        e.preventDefault();\n        e.stopPropagation();\n        e.cancelBubble = true;\n    }\n    : function (e) {\n        e.returnValue = false;\n        e.cancelBubble = true;\n    };\nexport function isMiddleOrRightButtonOnMouseUpDown(e) {\n    return e.which === 2 || e.which === 3;\n}\nexport function notLeftMouse(e) {\n    return e.which > 1;\n}\nexport { Eventful as Dispatcher };\n","import * as eventUtil from './event';\nvar GestureMgr = (function () {\n    function GestureMgr() {\n        this._track = [];\n    }\n    GestureMgr.prototype.recognize = function (event, target, root) {\n        this._doTrack(event, target, root);\n        return this._recognize(event);\n    };\n    GestureMgr.prototype.clear = function () {\n        this._track.length = 0;\n        return this;\n    };\n    GestureMgr.prototype._doTrack = function (event, target, root) {\n        var touches = event.touches;\n        if (!touches) {\n            return;\n        }\n        var trackItem = {\n            points: [],\n            touches: [],\n            target: target,\n            event: event\n        };\n        for (var i = 0, len = touches.length; i < len; i++) {\n            var touch = touches[i];\n            var pos = eventUtil.clientToLocal(root, touch, {});\n            trackItem.points.push([pos.zrX, pos.zrY]);\n            trackItem.touches.push(touch);\n        }\n        this._track.push(trackItem);\n    };\n    GestureMgr.prototype._recognize = function (event) {\n        for (var eventName in recognizers) {\n            if (recognizers.hasOwnProperty(eventName)) {\n                var gestureInfo = recognizers[eventName](this._track, event);\n                if (gestureInfo) {\n                    return gestureInfo;\n                }\n            }\n        }\n    };\n    return GestureMgr;\n}());\nexport { GestureMgr };\nfunction dist(pointPair) {\n    var dx = pointPair[1][0] - pointPair[0][0];\n    var dy = pointPair[1][1] - pointPair[0][1];\n    return Math.sqrt(dx * dx + dy * dy);\n}\nfunction center(pointPair) {\n    return [\n        (pointPair[0][0] + pointPair[1][0]) / 2,\n        (pointPair[0][1] + pointPair[1][1]) / 2\n    ];\n}\nvar recognizers = {\n    pinch: function (tracks, event) {\n        var trackLen = tracks.length;\n        if (!trackLen) {\n            return;\n        }\n        var pinchEnd = (tracks[trackLen - 1] || {}).points;\n        var pinchPre = (tracks[trackLen - 2] || {}).points || pinchEnd;\n        if (pinchPre\n            && pinchPre.length > 1\n            && pinchEnd\n            && pinchEnd.length > 1) {\n            var pinchScale = dist(pinchEnd) / dist(pinchPre);\n            !isFinite(pinchScale) && (pinchScale = 1);\n            event.pinchScale = pinchScale;\n            var pinchCenter = center(pinchEnd);\n            event.pinchX = pinchCenter[0];\n            event.pinchY = pinchCenter[1];\n            return {\n                type: 'pinch',\n                target: tracks[0].target,\n                event: event\n            };\n        }\n    }\n};\n","import { __extends } from \"tslib\";\nimport * as util from './core/util';\nimport * as vec2 from './core/vector';\nimport Draggable from './mixin/Draggable';\nimport Eventful from './core/Eventful';\nimport * as eventTool from './core/event';\nimport { GestureMgr } from './core/GestureMgr';\nvar SILENT = 'silent';\nfunction makeEventPacket(eveType, targetInfo, event) {\n    return {\n        type: eveType,\n        event: event,\n        target: targetInfo.target,\n        topTarget: targetInfo.topTarget,\n        cancelBubble: false,\n        offsetX: event.zrX,\n        offsetY: event.zrY,\n        gestureEvent: event.gestureEvent,\n        pinchX: event.pinchX,\n        pinchY: event.pinchY,\n        pinchScale: event.pinchScale,\n        wheelDelta: event.zrDelta,\n        zrByTouch: event.zrByTouch,\n        which: event.which,\n        stop: stopEvent\n    };\n}\nfunction stopEvent() {\n    eventTool.stop(this.event);\n}\nvar EmptyProxy = (function (_super) {\n    __extends(EmptyProxy, _super);\n    function EmptyProxy() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.handler = null;\n        return _this;\n    }\n    EmptyProxy.prototype.dispose = function () { };\n    EmptyProxy.prototype.setCursor = function () { };\n    return EmptyProxy;\n}(Eventful));\nvar HoveredResult = (function () {\n    function HoveredResult(x, y) {\n        this.x = x;\n        this.y = y;\n    }\n    return HoveredResult;\n}());\nvar handlerNames = [\n    'click', 'dblclick', 'mousewheel', 'mouseout',\n    'mouseup', 'mousedown', 'mousemove', 'contextmenu'\n];\nvar Handler = (function (_super) {\n    __extends(Handler, _super);\n    function Handler(storage, painter, proxy, painterRoot) {\n        var _this = _super.call(this) || this;\n        _this._hovered = new HoveredResult(0, 0);\n        _this.storage = storage;\n        _this.painter = painter;\n        _this.painterRoot = painterRoot;\n        proxy = proxy || new EmptyProxy();\n        _this.proxy = null;\n        _this.setHandlerProxy(proxy);\n        _this._draggingMgr = new Draggable(_this);\n        return _this;\n    }\n    Handler.prototype.setHandlerProxy = function (proxy) {\n        if (this.proxy) {\n            this.proxy.dispose();\n        }\n        if (proxy) {\n            util.each(handlerNames, function (name) {\n                proxy.on && proxy.on(name, this[name], this);\n            }, this);\n            proxy.handler = this;\n        }\n        this.proxy = proxy;\n    };\n    Handler.prototype.mousemove = function (event) {\n        var x = event.zrX;\n        var y = event.zrY;\n        var isOutside = isOutsideBoundary(this, x, y);\n        var lastHovered = this._hovered;\n        var lastHoveredTarget = lastHovered.target;\n        if (lastHoveredTarget && !lastHoveredTarget.__zr) {\n            lastHovered = this.findHover(lastHovered.x, lastHovered.y);\n            lastHoveredTarget = lastHovered.target;\n        }\n        var hovered = this._hovered = isOutside ? new HoveredResult(x, y) : this.findHover(x, y);\n        var hoveredTarget = hovered.target;\n        var proxy = this.proxy;\n        proxy.setCursor && proxy.setCursor(hoveredTarget ? hoveredTarget.cursor : 'default');\n        if (lastHoveredTarget && hoveredTarget !== lastHoveredTarget) {\n            this.dispatchToElement(lastHovered, 'mouseout', event);\n        }\n        this.dispatchToElement(hovered, 'mousemove', event);\n        if (hoveredTarget && hoveredTarget !== lastHoveredTarget) {\n            this.dispatchToElement(hovered, 'mouseover', event);\n        }\n    };\n    Handler.prototype.mouseout = function (event) {\n        var eventControl = event.zrEventControl;\n        if (eventControl !== 'only_globalout') {\n            this.dispatchToElement(this._hovered, 'mouseout', event);\n        }\n        if (eventControl !== 'no_globalout') {\n            this.trigger('globalout', { type: 'globalout', event: event });\n        }\n    };\n    Handler.prototype.resize = function () {\n        this._hovered = new HoveredResult(0, 0);\n    };\n    Handler.prototype.dispatch = function (eventName, eventArgs) {\n        var handler = this[eventName];\n        handler && handler.call(this, eventArgs);\n    };\n    Handler.prototype.dispose = function () {\n        this.proxy.dispose();\n        this.storage = null;\n        this.proxy = null;\n        this.painter = null;\n    };\n    Handler.prototype.setCursorStyle = function (cursorStyle) {\n        var proxy = this.proxy;\n        proxy.setCursor && proxy.setCursor(cursorStyle);\n    };\n    Handler.prototype.dispatchToElement = function (targetInfo, eventName, event) {\n        targetInfo = targetInfo || {};\n        var el = targetInfo.target;\n        if (el && el.silent) {\n            return;\n        }\n        var eventKey = ('on' + eventName);\n        var eventPacket = makeEventPacket(eventName, targetInfo, event);\n        while (el) {\n            el[eventKey]\n                && (eventPacket.cancelBubble = !!el[eventKey].call(el, eventPacket));\n            el.trigger(eventName, eventPacket);\n            el = el.__hostTarget ? el.__hostTarget : el.parent;\n            if (eventPacket.cancelBubble) {\n                break;\n            }\n        }\n        if (!eventPacket.cancelBubble) {\n            this.trigger(eventName, eventPacket);\n            if (this.painter && this.painter.eachOtherLayer) {\n                this.painter.eachOtherLayer(function (layer) {\n                    if (typeof (layer[eventKey]) === 'function') {\n                        layer[eventKey].call(layer, eventPacket);\n                    }\n                    if (layer.trigger) {\n                        layer.trigger(eventName, eventPacket);\n                    }\n                });\n            }\n        }\n    };\n    Handler.prototype.findHover = function (x, y, exclude) {\n        var list = this.storage.getDisplayList();\n        var out = new HoveredResult(x, y);\n        for (var i = list.length - 1; i >= 0; i--) {\n            var hoverCheckResult = void 0;\n            if (list[i] !== exclude\n                && !list[i].ignore\n                && (hoverCheckResult = isHover(list[i], x, y))) {\n                !out.topTarget && (out.topTarget = list[i]);\n                if (hoverCheckResult !== SILENT) {\n                    out.target = list[i];\n                    break;\n                }\n            }\n        }\n        return out;\n    };\n    Handler.prototype.processGesture = function (event, stage) {\n        if (!this._gestureMgr) {\n            this._gestureMgr = new GestureMgr();\n        }\n        var gestureMgr = this._gestureMgr;\n        stage === 'start' && gestureMgr.clear();\n        var gestureInfo = gestureMgr.recognize(event, this.findHover(event.zrX, event.zrY, null).target, this.proxy.dom);\n        stage === 'end' && gestureMgr.clear();\n        if (gestureInfo) {\n            var type = gestureInfo.type;\n            event.gestureEvent = type;\n            var res = new HoveredResult();\n            res.target = gestureInfo.target;\n            this.dispatchToElement(res, type, gestureInfo.event);\n        }\n    };\n    return Handler;\n}(Eventful));\nutil.each(['click', 'mousedown', 'mouseup', 'mousewheel', 'dblclick', 'contextmenu'], function (name) {\n    Handler.prototype[name] = function (event) {\n        var x = event.zrX;\n        var y = event.zrY;\n        var isOutside = isOutsideBoundary(this, x, y);\n        var hovered;\n        var hoveredTarget;\n        if (name !== 'mouseup' || !isOutside) {\n            hovered = this.findHover(x, y);\n            hoveredTarget = hovered.target;\n        }\n        if (name === 'mousedown') {\n            this._downEl = hoveredTarget;\n            this._downPoint = [event.zrX, event.zrY];\n            this._upEl = hoveredTarget;\n        }\n        else if (name === 'mouseup') {\n            this._upEl = hoveredTarget;\n        }\n        else if (name === 'click') {\n            if (this._downEl !== this._upEl\n                || !this._downPoint\n                || vec2.dist(this._downPoint, [event.zrX, event.zrY]) > 4) {\n                return;\n            }\n            this._downPoint = null;\n        }\n        this.dispatchToElement(hovered, name, event);\n    };\n});\nfunction isHover(displayable, x, y) {\n    if (displayable[displayable.rectHover ? 'rectContain' : 'contain'](x, y)) {\n        var el = displayable;\n        var isSilent = void 0;\n        var ignoreClip = false;\n        while (el) {\n            if (el.ignoreClip) {\n                ignoreClip = true;\n            }\n            if (!ignoreClip) {\n                var clipPath = el.getClipPath();\n                if (clipPath && !clipPath.contain(x, y)) {\n                    return false;\n                }\n                if (el.silent) {\n                    isSilent = true;\n                }\n            }\n            var hostEl = el.__hostTarget;\n            el = hostEl ? hostEl : el.parent;\n        }\n        return isSilent ? SILENT : true;\n    }\n    return false;\n}\nfunction isOutsideBoundary(handlerInstance, x, y) {\n    var painter = handlerInstance.painter;\n    return x < 0 || x > painter.getWidth() || y < 0 || y > painter.getHeight();\n}\nexport default Handler;\n","export function create() {\n    return [1, 0, 0, 1, 0, 0];\n}\nexport function identity(out) {\n    out[0] = 1;\n    out[1] = 0;\n    out[2] = 0;\n    out[3] = 1;\n    out[4] = 0;\n    out[5] = 0;\n    return out;\n}\nexport function copy(out, m) {\n    out[0] = m[0];\n    out[1] = m[1];\n    out[2] = m[2];\n    out[3] = m[3];\n    out[4] = m[4];\n    out[5] = m[5];\n    return out;\n}\nexport function mul(out, m1, m2) {\n    var out0 = m1[0] * m2[0] + m1[2] * m2[1];\n    var out1 = m1[1] * m2[0] + m1[3] * m2[1];\n    var out2 = m1[0] * m2[2] + m1[2] * m2[3];\n    var out3 = m1[1] * m2[2] + m1[3] * m2[3];\n    var out4 = m1[0] * m2[4] + m1[2] * m2[5] + m1[4];\n    var out5 = m1[1] * m2[4] + m1[3] * m2[5] + m1[5];\n    out[0] = out0;\n    out[1] = out1;\n    out[2] = out2;\n    out[3] = out3;\n    out[4] = out4;\n    out[5] = out5;\n    return out;\n}\nexport function translate(out, a, v) {\n    out[0] = a[0];\n    out[1] = a[1];\n    out[2] = a[2];\n    out[3] = a[3];\n    out[4] = a[4] + v[0];\n    out[5] = a[5] + v[1];\n    return out;\n}\nexport function rotate(out, a, rad) {\n    var aa = a[0];\n    var ac = a[2];\n    var atx = a[4];\n    var ab = a[1];\n    var ad = a[3];\n    var aty = a[5];\n    var st = Math.sin(rad);\n    var ct = Math.cos(rad);\n    out[0] = aa * ct + ab * st;\n    out[1] = -aa * st + ab * ct;\n    out[2] = ac * ct + ad * st;\n    out[3] = -ac * st + ct * ad;\n    out[4] = ct * atx + st * aty;\n    out[5] = ct * aty - st * atx;\n    return out;\n}\nexport function scale(out, a, v) {\n    var vx = v[0];\n    var vy = v[1];\n    out[0] = a[0] * vx;\n    out[1] = a[1] * vy;\n    out[2] = a[2] * vx;\n    out[3] = a[3] * vy;\n    out[4] = a[4] * vx;\n    out[5] = a[5] * vy;\n    return out;\n}\nexport function invert(out, a) {\n    var aa = a[0];\n    var ac = a[2];\n    var atx = a[4];\n    var ab = a[1];\n    var ad = a[3];\n    var aty = a[5];\n    var det = aa * ad - ab * ac;\n    if (!det) {\n        return null;\n    }\n    det = 1.0 / det;\n    out[0] = ad * det;\n    out[1] = -ab * det;\n    out[2] = -ac * det;\n    out[3] = aa * det;\n    out[4] = (ac * aty - ad * atx) * det;\n    out[5] = (ab * atx - aa * aty) * det;\n    return out;\n}\nexport function clone(a) {\n    var b = create();\n    copy(b, a);\n    return b;\n}\n","import * as matrix from './matrix';\nimport * as vector from './vector';\nvar mIdentity = matrix.identity;\nvar EPSILON = 5e-5;\nfunction isNotAroundZero(val) {\n    return val > EPSILON || val < -EPSILON;\n}\nvar scaleTmp = [];\nvar tmpTransform = [];\nvar originTransform = matrix.create();\nvar abs = Math.abs;\nvar Transformable = (function () {\n    function Transformable() {\n    }\n    Transformable.prototype.setPosition = function (arr) {\n        this.x = arr[0];\n        this.y = arr[1];\n    };\n    Transformable.prototype.setScale = function (arr) {\n        this.scaleX = arr[0];\n        this.scaleY = arr[1];\n    };\n    Transformable.prototype.setOrigin = function (arr) {\n        this.originX = arr[0];\n        this.originY = arr[1];\n    };\n    Transformable.prototype.needLocalTransform = function () {\n        return isNotAroundZero(this.rotation)\n            || isNotAroundZero(this.x)\n            || isNotAroundZero(this.y)\n            || isNotAroundZero(this.scaleX - 1)\n            || isNotAroundZero(this.scaleY - 1);\n    };\n    Transformable.prototype.updateTransform = function () {\n        var parent = this.parent;\n        var parentHasTransform = parent && parent.transform;\n        var needLocalTransform = this.needLocalTransform();\n        var m = this.transform;\n        if (!(needLocalTransform || parentHasTransform)) {\n            m && mIdentity(m);\n            return;\n        }\n        m = m || matrix.create();\n        if (needLocalTransform) {\n            this.getLocalTransform(m);\n        }\n        else {\n            mIdentity(m);\n        }\n        if (parentHasTransform) {\n            if (needLocalTransform) {\n                matrix.mul(m, parent.transform, m);\n            }\n            else {\n                matrix.copy(m, parent.transform);\n            }\n        }\n        this.transform = m;\n        this._resolveGlobalScaleRatio(m);\n    };\n    Transformable.prototype._resolveGlobalScaleRatio = function (m) {\n        var globalScaleRatio = this.globalScaleRatio;\n        if (globalScaleRatio != null && globalScaleRatio !== 1) {\n            this.getGlobalScale(scaleTmp);\n            var relX = scaleTmp[0] < 0 ? -1 : 1;\n            var relY = scaleTmp[1] < 0 ? -1 : 1;\n            var sx = ((scaleTmp[0] - relX) * globalScaleRatio + relX) / scaleTmp[0] || 0;\n            var sy = ((scaleTmp[1] - relY) * globalScaleRatio + relY) / scaleTmp[1] || 0;\n            m[0] *= sx;\n            m[1] *= sx;\n            m[2] *= sy;\n            m[3] *= sy;\n        }\n        this.invTransform = this.invTransform || matrix.create();\n        matrix.invert(this.invTransform, m);\n    };\n    Transformable.prototype.getLocalTransform = function (m) {\n        return Transformable.getLocalTransform(this, m);\n    };\n    Transformable.prototype.getComputedTransform = function () {\n        var transformNode = this;\n        var ancestors = [];\n        while (transformNode) {\n            ancestors.push(transformNode);\n            transformNode = transformNode.parent;\n        }\n        while (transformNode = ancestors.pop()) {\n            transformNode.updateTransform();\n        }\n        return this.transform;\n    };\n    Transformable.prototype.setLocalTransform = function (m) {\n        if (!m) {\n            return;\n        }\n        var sx = m[0] * m[0] + m[1] * m[1];\n        var sy = m[2] * m[2] + m[3] * m[3];\n        if (isNotAroundZero(sx - 1)) {\n            sx = Math.sqrt(sx);\n        }\n        if (isNotAroundZero(sy - 1)) {\n            sy = Math.sqrt(sy);\n        }\n        if (m[0] < 0) {\n            sx = -sx;\n        }\n        if (m[3] < 0) {\n            sy = -sy;\n        }\n        this.rotation = Math.atan2(-m[1] / sy, m[0] / sx);\n        if (sx < 0 && sy < 0) {\n            this.rotation += Math.PI;\n            sx = -sx;\n            sy = -sy;\n        }\n        this.x = m[4];\n        this.y = m[5];\n        this.scaleX = sx;\n        this.scaleY = sy;\n    };\n    Transformable.prototype.decomposeTransform = function () {\n        if (!this.transform) {\n            return;\n        }\n        var parent = this.parent;\n        var m = this.transform;\n        if (parent && parent.transform) {\n            matrix.mul(tmpTransform, parent.invTransform, m);\n            m = tmpTransform;\n        }\n        var ox = this.originX;\n        var oy = this.originY;\n        if (ox || oy) {\n            originTransform[4] = ox;\n            originTransform[5] = oy;\n            matrix.mul(tmpTransform, m, originTransform);\n            tmpTransform[4] -= ox;\n            tmpTransform[5] -= oy;\n            m = tmpTransform;\n        }\n        this.setLocalTransform(m);\n    };\n    Transformable.prototype.getGlobalScale = function (out) {\n        var m = this.transform;\n        out = out || [];\n        if (!m) {\n            out[0] = 1;\n            out[1] = 1;\n            return out;\n        }\n        out[0] = Math.sqrt(m[0] * m[0] + m[1] * m[1]);\n        out[1] = Math.sqrt(m[2] * m[2] + m[3] * m[3]);\n        if (m[0] < 0) {\n            out[0] = -out[0];\n        }\n        if (m[3] < 0) {\n            out[1] = -out[1];\n        }\n        return out;\n    };\n    Transformable.prototype.transformCoordToLocal = function (x, y) {\n        var v2 = [x, y];\n        var invTransform = this.invTransform;\n        if (invTransform) {\n            vector.applyTransform(v2, v2, invTransform);\n        }\n        return v2;\n    };\n    Transformable.prototype.transformCoordToGlobal = function (x, y) {\n        var v2 = [x, y];\n        var transform = this.transform;\n        if (transform) {\n            vector.applyTransform(v2, v2, transform);\n        }\n        return v2;\n    };\n    Transformable.prototype.getLineScale = function () {\n        var m = this.transform;\n        return m && abs(m[0] - 1) > 1e-10 && abs(m[3] - 1) > 1e-10\n            ? Math.sqrt(abs(m[0] * m[3] - m[2] * m[1]))\n            : 1;\n    };\n    Transformable.getLocalTransform = function (target, m) {\n        m = m || [];\n        mIdentity(m);\n        var ox = target.originX || 0;\n        var oy = target.originY || 0;\n        var sx = target.scaleX;\n        var sy = target.scaleY;\n        var rotation = target.rotation || 0;\n        var x = target.x;\n        var y = target.y;\n        m[4] -= ox;\n        m[5] -= oy;\n        m[0] *= sx;\n        m[1] *= sy;\n        m[2] *= sx;\n        m[3] *= sy;\n        m[4] *= sx;\n        m[5] *= sy;\n        if (rotation) {\n            matrix.rotate(m, m, rotation);\n        }\n        m[4] += ox;\n        m[5] += oy;\n        m[4] += x;\n        m[5] += y;\n        return m;\n    };\n    Transformable.initDefaultProps = (function () {\n        var proto = Transformable.prototype;\n        proto.x = 0;\n        proto.y = 0;\n        proto.scaleX = 1;\n        proto.scaleY = 1;\n        proto.originX = 0;\n        proto.originY = 0;\n        proto.rotation = 0;\n        proto.globalScaleRatio = 1;\n    })();\n    return Transformable;\n}());\n;\nexport default Transformable;\n","var easing = {\n    linear: function (k) {\n        return k;\n    },\n    quadraticIn: function (k) {\n        return k * k;\n    },\n    quadraticOut: function (k) {\n        return k * (2 - k);\n    },\n    quadraticInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return 0.5 * k * k;\n        }\n        return -0.5 * (--k * (k - 2) - 1);\n    },\n    cubicIn: function (k) {\n        return k * k * k;\n    },\n    cubicOut: function (k) {\n        return --k * k * k + 1;\n    },\n    cubicInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return 0.5 * k * k * k;\n        }\n        return 0.5 * ((k -= 2) * k * k + 2);\n    },\n    quarticIn: function (k) {\n        return k * k * k * k;\n    },\n    quarticOut: function (k) {\n        return 1 - (--k * k * k * k);\n    },\n    quarticInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return 0.5 * k * k * k * k;\n        }\n        return -0.5 * ((k -= 2) * k * k * k - 2);\n    },\n    quinticIn: function (k) {\n        return k * k * k * k * k;\n    },\n    quinticOut: function (k) {\n        return --k * k * k * k * k + 1;\n    },\n    quinticInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return 0.5 * k * k * k * k * k;\n        }\n        return 0.5 * ((k -= 2) * k * k * k * k + 2);\n    },\n    sinusoidalIn: function (k) {\n        return 1 - Math.cos(k * Math.PI / 2);\n    },\n    sinusoidalOut: function (k) {\n        return Math.sin(k * Math.PI / 2);\n    },\n    sinusoidalInOut: function (k) {\n        return 0.5 * (1 - Math.cos(Math.PI * k));\n    },\n    exponentialIn: function (k) {\n        return k === 0 ? 0 : Math.pow(1024, k - 1);\n    },\n    exponentialOut: function (k) {\n        return k === 1 ? 1 : 1 - Math.pow(2, -10 * k);\n    },\n    exponentialInOut: function (k) {\n        if (k === 0) {\n            return 0;\n        }\n        if (k === 1) {\n            return 1;\n        }\n        if ((k *= 2) < 1) {\n            return 0.5 * Math.pow(1024, k - 1);\n        }\n        return 0.5 * (-Math.pow(2, -10 * (k - 1)) + 2);\n    },\n    circularIn: function (k) {\n        return 1 - Math.sqrt(1 - k * k);\n    },\n    circularOut: function (k) {\n        return Math.sqrt(1 - (--k * k));\n    },\n    circularInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return -0.5 * (Math.sqrt(1 - k * k) - 1);\n        }\n        return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1);\n    },\n    elasticIn: function (k) {\n        var s;\n        var a = 0.1;\n        var p = 0.4;\n        if (k === 0) {\n            return 0;\n        }\n        if (k === 1) {\n            return 1;\n        }\n        if (!a || a < 1) {\n            a = 1;\n            s = p / 4;\n        }\n        else {\n            s = p * Math.asin(1 / a) / (2 * Math.PI);\n        }\n        return -(a * Math.pow(2, 10 * (k -= 1))\n            * Math.sin((k - s) * (2 * Math.PI) / p));\n    },\n    elasticOut: function (k) {\n        var s;\n        var a = 0.1;\n        var p = 0.4;\n        if (k === 0) {\n            return 0;\n        }\n        if (k === 1) {\n            return 1;\n        }\n        if (!a || a < 1) {\n            a = 1;\n            s = p / 4;\n        }\n        else {\n            s = p * Math.asin(1 / a) / (2 * Math.PI);\n        }\n        return (a * Math.pow(2, -10 * k)\n            * Math.sin((k - s) * (2 * Math.PI) / p) + 1);\n    },\n    elasticInOut: function (k) {\n        var s;\n        var a = 0.1;\n        var p = 0.4;\n        if (k === 0) {\n            return 0;\n        }\n        if (k === 1) {\n            return 1;\n        }\n        if (!a || a < 1) {\n            a = 1;\n            s = p / 4;\n        }\n        else {\n            s = p * Math.asin(1 / a) / (2 * Math.PI);\n        }\n        if ((k *= 2) < 1) {\n            return -0.5 * (a * Math.pow(2, 10 * (k -= 1))\n                * Math.sin((k - s) * (2 * Math.PI) / p));\n        }\n        return a * Math.pow(2, -10 * (k -= 1))\n            * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1;\n    },\n    backIn: function (k) {\n        var s = 1.70158;\n        return k * k * ((s + 1) * k - s);\n    },\n    backOut: function (k) {\n        var s = 1.70158;\n        return --k * k * ((s + 1) * k + s) + 1;\n    },\n    backInOut: function (k) {\n        var s = 1.70158 * 1.525;\n        if ((k *= 2) < 1) {\n            return 0.5 * (k * k * ((s + 1) * k - s));\n        }\n        return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2);\n    },\n    bounceIn: function (k) {\n        return 1 - easing.bounceOut(1 - k);\n    },\n    bounceOut: function (k) {\n        if (k < (1 / 2.75)) {\n            return 7.5625 * k * k;\n        }\n        else if (k < (2 / 2.75)) {\n            return 7.5625 * (k -= (1.5 / 2.75)) * k + 0.75;\n        }\n        else if (k < (2.5 / 2.75)) {\n            return 7.5625 * (k -= (2.25 / 2.75)) * k + 0.9375;\n        }\n        else {\n            return 7.5625 * (k -= (2.625 / 2.75)) * k + 0.984375;\n        }\n    },\n    bounceInOut: function (k) {\n        if (k < 0.5) {\n            return easing.bounceIn(k * 2) * 0.5;\n        }\n        return easing.bounceOut(k * 2 - 1) * 0.5 + 0.5;\n    }\n};\nexport default easing;\n","import easingFuncs from './easing';\nvar Clip = (function () {\n    function Clip(opts) {\n        this._initialized = false;\n        this._startTime = 0;\n        this._pausedTime = 0;\n        this._paused = false;\n        this._life = opts.life || 1000;\n        this._delay = opts.delay || 0;\n        this.loop = opts.loop == null ? false : opts.loop;\n        this.gap = opts.gap || 0;\n        this.easing = opts.easing || 'linear';\n        this.onframe = opts.onframe;\n        this.ondestroy = opts.ondestroy;\n        this.onrestart = opts.onrestart;\n    }\n    Clip.prototype.step = function (globalTime, deltaTime) {\n        if (!this._initialized) {\n            this._startTime = globalTime + this._delay;\n            this._initialized = true;\n        }\n        if (this._paused) {\n            this._pausedTime += deltaTime;\n            return;\n        }\n        var percent = (globalTime - this._startTime - this._pausedTime) / this._life;\n        if (percent < 0) {\n            percent = 0;\n        }\n        percent = Math.min(percent, 1);\n        var easing = this.easing;\n        var easingFunc = typeof easing === 'string'\n            ? easingFuncs[easing] : easing;\n        var schedule = typeof easingFunc === 'function'\n            ? easingFunc(percent)\n            : percent;\n        this.onframe && this.onframe(schedule);\n        if (percent === 1) {\n            if (this.loop) {\n                this._restart(globalTime);\n                this.onrestart && this.onrestart();\n            }\n            else {\n                return true;\n            }\n        }\n        return false;\n    };\n    Clip.prototype._restart = function (globalTime) {\n        var remainder = (globalTime - this._startTime - this._pausedTime) % this._life;\n        this._startTime = globalTime - remainder + this.gap;\n        this._pausedTime = 0;\n    };\n    Clip.prototype.pause = function () {\n        this._paused = true;\n    };\n    Clip.prototype.resume = function () {\n        this._paused = false;\n    };\n    return Clip;\n}());\nexport default Clip;\n","var Entry = (function () {\n    function Entry(val) {\n        this.value = val;\n    }\n    return Entry;\n}());\nexport { Entry };\nvar LinkedList = (function () {\n    function LinkedList() {\n        this._len = 0;\n    }\n    LinkedList.prototype.insert = function (val) {\n        var entry = new Entry(val);\n        this.insertEntry(entry);\n        return entry;\n    };\n    LinkedList.prototype.insertEntry = function (entry) {\n        if (!this.head) {\n            this.head = this.tail = entry;\n        }\n        else {\n            this.tail.next = entry;\n            entry.prev = this.tail;\n            entry.next = null;\n            this.tail = entry;\n        }\n        this._len++;\n    };\n    LinkedList.prototype.remove = function (entry) {\n        var prev = entry.prev;\n        var next = entry.next;\n        if (prev) {\n            prev.next = next;\n        }\n        else {\n            this.head = next;\n        }\n        if (next) {\n            next.prev = prev;\n        }\n        else {\n            this.tail = prev;\n        }\n        entry.next = entry.prev = null;\n        this._len--;\n    };\n    LinkedList.prototype.len = function () {\n        return this._len;\n    };\n    LinkedList.prototype.clear = function () {\n        this.head = this.tail = null;\n        this._len = 0;\n    };\n    return LinkedList;\n}());\nexport { LinkedList };\nvar LRU = (function () {\n    function LRU(maxSize) {\n        this._list = new LinkedList();\n        this._maxSize = 10;\n        this._map = {};\n        this._maxSize = maxSize;\n    }\n    LRU.prototype.put = function (key, value) {\n        var list = this._list;\n        var map = this._map;\n        var removed = null;\n        if (map[key] == null) {\n            var len = list.len();\n            var entry = this._lastRemovedEntry;\n            if (len >= this._maxSize && len > 0) {\n                var leastUsedEntry = list.head;\n                list.remove(leastUsedEntry);\n                delete map[leastUsedEntry.key];\n                removed = leastUsedEntry.value;\n                this._lastRemovedEntry = leastUsedEntry;\n            }\n            if (entry) {\n                entry.value = value;\n            }\n            else {\n                entry = new Entry(value);\n            }\n            entry.key = key;\n            list.insertEntry(entry);\n            map[key] = entry;\n        }\n        return removed;\n    };\n    LRU.prototype.get = function (key) {\n        var entry = this._map[key];\n        var list = this._list;\n        if (entry != null) {\n            if (entry !== list.tail) {\n                list.remove(entry);\n                list.insertEntry(entry);\n            }\n            return entry.value;\n        }\n    };\n    LRU.prototype.clear = function () {\n        this._list.clear();\n        this._map = {};\n    };\n    LRU.prototype.len = function () {\n        return this._list.len();\n    };\n    return LRU;\n}());\nexport default LRU;\n","import LRU from '../core/LRU';\nvar kCSSColorTable = {\n    'transparent': [0, 0, 0, 0], 'aliceblue': [240, 248, 255, 1],\n    'antiquewhite': [250, 235, 215, 1], 'aqua': [0, 255, 255, 1],\n    'aquamarine': [127, 255, 212, 1], 'azure': [240, 255, 255, 1],\n    'beige': [245, 245, 220, 1], 'bisque': [255, 228, 196, 1],\n    'black': [0, 0, 0, 1], 'blanchedalmond': [255, 235, 205, 1],\n    'blue': [0, 0, 255, 1], 'blueviolet': [138, 43, 226, 1],\n    'brown': [165, 42, 42, 1], 'burlywood': [222, 184, 135, 1],\n    'cadetblue': [95, 158, 160, 1], 'chartreuse': [127, 255, 0, 1],\n    'chocolate': [210, 105, 30, 1], 'coral': [255, 127, 80, 1],\n    'cornflowerblue': [100, 149, 237, 1], 'cornsilk': [255, 248, 220, 1],\n    'crimson': [220, 20, 60, 1], 'cyan': [0, 255, 255, 1],\n    'darkblue': [0, 0, 139, 1], 'darkcyan': [0, 139, 139, 1],\n    'darkgoldenrod': [184, 134, 11, 1], 'darkgray': [169, 169, 169, 1],\n    'darkgreen': [0, 100, 0, 1], 'darkgrey': [169, 169, 169, 1],\n    'darkkhaki': [189, 183, 107, 1], 'darkmagenta': [139, 0, 139, 1],\n    'darkolivegreen': [85, 107, 47, 1], 'darkorange': [255, 140, 0, 1],\n    'darkorchid': [153, 50, 204, 1], 'darkred': [139, 0, 0, 1],\n    'darksalmon': [233, 150, 122, 1], 'darkseagreen': [143, 188, 143, 1],\n    'darkslateblue': [72, 61, 139, 1], 'darkslategray': [47, 79, 79, 1],\n    'darkslategrey': [47, 79, 79, 1], 'darkturquoise': [0, 206, 209, 1],\n    'darkviolet': [148, 0, 211, 1], 'deeppink': [255, 20, 147, 1],\n    'deepskyblue': [0, 191, 255, 1], 'dimgray': [105, 105, 105, 1],\n    'dimgrey': [105, 105, 105, 1], 'dodgerblue': [30, 144, 255, 1],\n    'firebrick': [178, 34, 34, 1], 'floralwhite': [255, 250, 240, 1],\n    'forestgreen': [34, 139, 34, 1], 'fuchsia': [255, 0, 255, 1],\n    'gainsboro': [220, 220, 220, 1], 'ghostwhite': [248, 248, 255, 1],\n    'gold': [255, 215, 0, 1], 'goldenrod': [218, 165, 32, 1],\n    'gray': [128, 128, 128, 1], 'green': [0, 128, 0, 1],\n    'greenyellow': [173, 255, 47, 1], 'grey': [128, 128, 128, 1],\n    'honeydew': [240, 255, 240, 1], 'hotpink': [255, 105, 180, 1],\n    'indianred': [205, 92, 92, 1], 'indigo': [75, 0, 130, 1],\n    'ivory': [255, 255, 240, 1], 'khaki': [240, 230, 140, 1],\n    'lavender': [230, 230, 250, 1], 'lavenderblush': [255, 240, 245, 1],\n    'lawngreen': [124, 252, 0, 1], 'lemonchiffon': [255, 250, 205, 1],\n    'lightblue': [173, 216, 230, 1], 'lightcoral': [240, 128, 128, 1],\n    'lightcyan': [224, 255, 255, 1], 'lightgoldenrodyellow': [250, 250, 210, 1],\n    'lightgray': [211, 211, 211, 1], 'lightgreen': [144, 238, 144, 1],\n    'lightgrey': [211, 211, 211, 1], 'lightpink': [255, 182, 193, 1],\n    'lightsalmon': [255, 160, 122, 1], 'lightseagreen': [32, 178, 170, 1],\n    'lightskyblue': [135, 206, 250, 1], 'lightslategray': [119, 136, 153, 1],\n    'lightslategrey': [119, 136, 153, 1], 'lightsteelblue': [176, 196, 222, 1],\n    'lightyellow': [255, 255, 224, 1], 'lime': [0, 255, 0, 1],\n    'limegreen': [50, 205, 50, 1], 'linen': [250, 240, 230, 1],\n    'magenta': [255, 0, 255, 1], 'maroon': [128, 0, 0, 1],\n    'mediumaquamarine': [102, 205, 170, 1], 'mediumblue': [0, 0, 205, 1],\n    'mediumorchid': [186, 85, 211, 1], 'mediumpurple': [147, 112, 219, 1],\n    'mediumseagreen': [60, 179, 113, 1], 'mediumslateblue': [123, 104, 238, 1],\n    'mediumspringgreen': [0, 250, 154, 1], 'mediumturquoise': [72, 209, 204, 1],\n    'mediumvioletred': [199, 21, 133, 1], 'midnightblue': [25, 25, 112, 1],\n    'mintcream': [245, 255, 250, 1], 'mistyrose': [255, 228, 225, 1],\n    'moccasin': [255, 228, 181, 1], 'navajowhite': [255, 222, 173, 1],\n    'navy': [0, 0, 128, 1], 'oldlace': [253, 245, 230, 1],\n    'olive': [128, 128, 0, 1], 'olivedrab': [107, 142, 35, 1],\n    'orange': [255, 165, 0, 1], 'orangered': [255, 69, 0, 1],\n    'orchid': [218, 112, 214, 1], 'palegoldenrod': [238, 232, 170, 1],\n    'palegreen': [152, 251, 152, 1], 'paleturquoise': [175, 238, 238, 1],\n    'palevioletred': [219, 112, 147, 1], 'papayawhip': [255, 239, 213, 1],\n    'peachpuff': [255, 218, 185, 1], 'peru': [205, 133, 63, 1],\n    'pink': [255, 192, 203, 1], 'plum': [221, 160, 221, 1],\n    'powderblue': [176, 224, 230, 1], 'purple': [128, 0, 128, 1],\n    'red': [255, 0, 0, 1], 'rosybrown': [188, 143, 143, 1],\n    'royalblue': [65, 105, 225, 1], 'saddlebrown': [139, 69, 19, 1],\n    'salmon': [250, 128, 114, 1], 'sandybrown': [244, 164, 96, 1],\n    'seagreen': [46, 139, 87, 1], 'seashell': [255, 245, 238, 1],\n    'sienna': [160, 82, 45, 1], 'silver': [192, 192, 192, 1],\n    'skyblue': [135, 206, 235, 1], 'slateblue': [106, 90, 205, 1],\n    'slategray': [112, 128, 144, 1], 'slategrey': [112, 128, 144, 1],\n    'snow': [255, 250, 250, 1], 'springgreen': [0, 255, 127, 1],\n    'steelblue': [70, 130, 180, 1], 'tan': [210, 180, 140, 1],\n    'teal': [0, 128, 128, 1], 'thistle': [216, 191, 216, 1],\n    'tomato': [255, 99, 71, 1], 'turquoise': [64, 224, 208, 1],\n    'violet': [238, 130, 238, 1], 'wheat': [245, 222, 179, 1],\n    'white': [255, 255, 255, 1], 'whitesmoke': [245, 245, 245, 1],\n    'yellow': [255, 255, 0, 1], 'yellowgreen': [154, 205, 50, 1]\n};\nfunction clampCssByte(i) {\n    i = Math.round(i);\n    return i < 0 ? 0 : i > 255 ? 255 : i;\n}\nfunction clampCssAngle(i) {\n    i = Math.round(i);\n    return i < 0 ? 0 : i > 360 ? 360 : i;\n}\nfunction clampCssFloat(f) {\n    return f < 0 ? 0 : f > 1 ? 1 : f;\n}\nfunction parseCssInt(val) {\n    var str = val;\n    if (str.length && str.charAt(str.length - 1) === '%') {\n        return clampCssByte(parseFloat(str) / 100 * 255);\n    }\n    return clampCssByte(parseInt(str, 10));\n}\nfunction parseCssFloat(val) {\n    var str = val;\n    if (str.length && str.charAt(str.length - 1) === '%') {\n        return clampCssFloat(parseFloat(str) / 100);\n    }\n    return clampCssFloat(parseFloat(str));\n}\nfunction cssHueToRgb(m1, m2, h) {\n    if (h < 0) {\n        h += 1;\n    }\n    else if (h > 1) {\n        h -= 1;\n    }\n    if (h * 6 < 1) {\n        return m1 + (m2 - m1) * h * 6;\n    }\n    if (h * 2 < 1) {\n        return m2;\n    }\n    if (h * 3 < 2) {\n        return m1 + (m2 - m1) * (2 / 3 - h) * 6;\n    }\n    return m1;\n}\nfunction lerpNumber(a, b, p) {\n    return a + (b - a) * p;\n}\nfunction setRgba(out, r, g, b, a) {\n    out[0] = r;\n    out[1] = g;\n    out[2] = b;\n    out[3] = a;\n    return out;\n}\nfunction copyRgba(out, a) {\n    out[0] = a[0];\n    out[1] = a[1];\n    out[2] = a[2];\n    out[3] = a[3];\n    return out;\n}\nvar colorCache = new LRU(20);\nvar lastRemovedArr = null;\nfunction putToCache(colorStr, rgbaArr) {\n    if (lastRemovedArr) {\n        copyRgba(lastRemovedArr, rgbaArr);\n    }\n    lastRemovedArr = colorCache.put(colorStr, lastRemovedArr || (rgbaArr.slice()));\n}\nexport function parse(colorStr, rgbaArr) {\n    if (!colorStr) {\n        return;\n    }\n    rgbaArr = rgbaArr || [];\n    var cached = colorCache.get(colorStr);\n    if (cached) {\n        return copyRgba(rgbaArr, cached);\n    }\n    colorStr = colorStr + '';\n    var str = colorStr.replace(/ /g, '').toLowerCase();\n    if (str in kCSSColorTable) {\n        copyRgba(rgbaArr, kCSSColorTable[str]);\n        putToCache(colorStr, rgbaArr);\n        return rgbaArr;\n    }\n    var strLen = str.length;\n    if (str.charAt(0) === '#') {\n        if (strLen === 4 || strLen === 5) {\n            var iv = parseInt(str.slice(1, 4), 16);\n            if (!(iv >= 0 && iv <= 0xfff)) {\n                setRgba(rgbaArr, 0, 0, 0, 1);\n                return;\n            }\n            setRgba(rgbaArr, ((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8), (iv & 0xf0) | ((iv & 0xf0) >> 4), (iv & 0xf) | ((iv & 0xf) << 4), strLen === 5 ? parseInt(str.slice(4), 16) / 0xf : 1);\n            putToCache(colorStr, rgbaArr);\n            return rgbaArr;\n        }\n        else if (strLen === 7 || strLen === 9) {\n            var iv = parseInt(str.slice(1, 7), 16);\n            if (!(iv >= 0 && iv <= 0xffffff)) {\n                setRgba(rgbaArr, 0, 0, 0, 1);\n                return;\n            }\n            setRgba(rgbaArr, (iv & 0xff0000) >> 16, (iv & 0xff00) >> 8, iv & 0xff, strLen === 9 ? parseInt(str.slice(7), 16) / 0xff : 1);\n            putToCache(colorStr, rgbaArr);\n            return rgbaArr;\n        }\n        return;\n    }\n    var op = str.indexOf('(');\n    var ep = str.indexOf(')');\n    if (op !== -1 && ep + 1 === strLen) {\n        var fname = str.substr(0, op);\n        var params = str.substr(op + 1, ep - (op + 1)).split(',');\n        var alpha = 1;\n        switch (fname) {\n            case 'rgba':\n                if (params.length !== 4) {\n                    return params.length === 3\n                        ? setRgba(rgbaArr, +params[0], +params[1], +params[2], 1)\n                        : setRgba(rgbaArr, 0, 0, 0, 1);\n                }\n                alpha = parseCssFloat(params.pop());\n            case 'rgb':\n                if (params.length !== 3) {\n                    setRgba(rgbaArr, 0, 0, 0, 1);\n                    return;\n                }\n                setRgba(rgbaArr, parseCssInt(params[0]), parseCssInt(params[1]), parseCssInt(params[2]), alpha);\n                putToCache(colorStr, rgbaArr);\n                return rgbaArr;\n            case 'hsla':\n                if (params.length !== 4) {\n                    setRgba(rgbaArr, 0, 0, 0, 1);\n                    return;\n                }\n                params[3] = parseCssFloat(params[3]);\n                hsla2rgba(params, rgbaArr);\n                putToCache(colorStr, rgbaArr);\n                return rgbaArr;\n            case 'hsl':\n                if (params.length !== 3) {\n                    setRgba(rgbaArr, 0, 0, 0, 1);\n                    return;\n                }\n                hsla2rgba(params, rgbaArr);\n                putToCache(colorStr, rgbaArr);\n                return rgbaArr;\n            default:\n                return;\n        }\n    }\n    setRgba(rgbaArr, 0, 0, 0, 1);\n    return;\n}\nfunction hsla2rgba(hsla, rgba) {\n    var h = (((parseFloat(hsla[0]) % 360) + 360) % 360) / 360;\n    var s = parseCssFloat(hsla[1]);\n    var l = parseCssFloat(hsla[2]);\n    var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n    var m1 = l * 2 - m2;\n    rgba = rgba || [];\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);\n    if (hsla.length === 4) {\n        rgba[3] = hsla[3];\n    }\n    return rgba;\n}\nfunction rgba2hsla(rgba) {\n    if (!rgba) {\n        return;\n    }\n    var R = rgba[0] / 255;\n    var G = rgba[1] / 255;\n    var B = rgba[2] / 255;\n    var vMin = Math.min(R, G, B);\n    var vMax = Math.max(R, G, B);\n    var delta = vMax - vMin;\n    var L = (vMax + vMin) / 2;\n    var H;\n    var S;\n    if (delta === 0) {\n        H = 0;\n        S = 0;\n    }\n    else {\n        if (L < 0.5) {\n            S = delta / (vMax + vMin);\n        }\n        else {\n            S = delta / (2 - vMax - vMin);\n        }\n        var deltaR = (((vMax - R) / 6) + (delta / 2)) / delta;\n        var deltaG = (((vMax - G) / 6) + (delta / 2)) / delta;\n        var deltaB = (((vMax - B) / 6) + (delta / 2)) / delta;\n        if (R === vMax) {\n            H = deltaB - deltaG;\n        }\n        else if (G === vMax) {\n            H = (1 / 3) + deltaR - deltaB;\n        }\n        else if (B === vMax) {\n            H = (2 / 3) + deltaG - deltaR;\n        }\n        if (H < 0) {\n            H += 1;\n        }\n        if (H > 1) {\n            H -= 1;\n        }\n    }\n    var hsla = [H * 360, S, L];\n    if (rgba[3] != null) {\n        hsla.push(rgba[3]);\n    }\n    return hsla;\n}\nexport function lift(color, level) {\n    var colorArr = parse(color);\n    if (colorArr) {\n        for (var i = 0; i < 3; i++) {\n            if (level < 0) {\n                colorArr[i] = colorArr[i] * (1 - level) | 0;\n            }\n            else {\n                colorArr[i] = ((255 - colorArr[i]) * level + colorArr[i]) | 0;\n            }\n            if (colorArr[i] > 255) {\n                colorArr[i] = 255;\n            }\n            else if (colorArr[i] < 0) {\n                colorArr[i] = 0;\n            }\n        }\n        return stringify(colorArr, colorArr.length === 4 ? 'rgba' : 'rgb');\n    }\n}\nexport function toHex(color) {\n    var colorArr = parse(color);\n    if (colorArr) {\n        return ((1 << 24) + (colorArr[0] << 16) + (colorArr[1] << 8) + (+colorArr[2])).toString(16).slice(1);\n    }\n}\nexport function fastLerp(normalizedValue, colors, out) {\n    if (!(colors && colors.length)\n        || !(normalizedValue >= 0 && normalizedValue <= 1)) {\n        return;\n    }\n    out = out || [];\n    var value = normalizedValue * (colors.length - 1);\n    var leftIndex = Math.floor(value);\n    var rightIndex = Math.ceil(value);\n    var leftColor = colors[leftIndex];\n    var rightColor = colors[rightIndex];\n    var dv = value - leftIndex;\n    out[0] = clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv));\n    out[1] = clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv));\n    out[2] = clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv));\n    out[3] = clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv));\n    return out;\n}\nexport var fastMapToColor = fastLerp;\nexport function lerp(normalizedValue, colors, fullOutput) {\n    if (!(colors && colors.length)\n        || !(normalizedValue >= 0 && normalizedValue <= 1)) {\n        return;\n    }\n    var value = normalizedValue * (colors.length - 1);\n    var leftIndex = Math.floor(value);\n    var rightIndex = Math.ceil(value);\n    var leftColor = parse(colors[leftIndex]);\n    var rightColor = parse(colors[rightIndex]);\n    var dv = value - leftIndex;\n    var color = stringify([\n        clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv)),\n        clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv)),\n        clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv)),\n        clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv))\n    ], 'rgba');\n    return fullOutput\n        ? {\n            color: color,\n            leftIndex: leftIndex,\n            rightIndex: rightIndex,\n            value: value\n        }\n        : color;\n}\nexport var mapToColor = lerp;\nexport function modifyHSL(color, h, s, l) {\n    var colorArr = parse(color);\n    if (color) {\n        colorArr = rgba2hsla(colorArr);\n        h != null && (colorArr[0] = clampCssAngle(h));\n        s != null && (colorArr[1] = parseCssFloat(s));\n        l != null && (colorArr[2] = parseCssFloat(l));\n        return stringify(hsla2rgba(colorArr), 'rgba');\n    }\n}\nexport function modifyAlpha(color, alpha) {\n    var colorArr = parse(color);\n    if (colorArr && alpha != null) {\n        colorArr[3] = clampCssFloat(alpha);\n        return stringify(colorArr, 'rgba');\n    }\n}\nexport function stringify(arrColor, type) {\n    if (!arrColor || !arrColor.length) {\n        return;\n    }\n    var colorStr = arrColor[0] + ',' + arrColor[1] + ',' + arrColor[2];\n    if (type === 'rgba' || type === 'hsva' || type === 'hsla') {\n        colorStr += ',' + arrColor[3];\n    }\n    return type + '(' + colorStr + ')';\n}\nexport function lum(color, backgroundLum) {\n    var arr = parse(color);\n    return arr\n        ? (0.299 * arr[0] + 0.587 * arr[1] + 0.114 * arr[2]) * arr[3] / 255\n            + (1 - arr[3]) * backgroundLum\n        : 0;\n}\nexport function random() {\n    var r = Math.round(Math.random() * 255);\n    var g = Math.round(Math.random() * 255);\n    var b = Math.round(Math.random() * 255);\n    return 'rgb(' + r + ',' + g + ',' + b + ')';\n}\n","import Clip from './Clip';\nimport * as color from '../tool/color';\nimport { isArrayLike, keys, logError } from '../core/util';\nvar arraySlice = Array.prototype.slice;\nexport function interpolateNumber(p0, p1, percent) {\n    return (p1 - p0) * percent + p0;\n}\nexport function step(p0, p1, percent) {\n    return percent > 0.5 ? p1 : p0;\n}\nexport function interpolate1DArray(out, p0, p1, percent) {\n    var len = p0.length;\n    for (var i = 0; i < len; i++) {\n        out[i] = interpolateNumber(p0[i], p1[i], percent);\n    }\n}\nexport function interpolate2DArray(out, p0, p1, percent) {\n    var len = p0.length;\n    var len2 = len && p0[0].length;\n    for (var i = 0; i < len; i++) {\n        if (!out[i]) {\n            out[i] = [];\n        }\n        for (var j = 0; j < len2; j++) {\n            out[i][j] = interpolateNumber(p0[i][j], p1[i][j], percent);\n        }\n    }\n}\nfunction add1DArray(out, p0, p1, sign) {\n    var len = p0.length;\n    for (var i = 0; i < len; i++) {\n        out[i] = p0[i] + p1[i] * sign;\n    }\n    return out;\n}\nfunction add2DArray(out, p0, p1, sign) {\n    var len = p0.length;\n    var len2 = len && p0[0].length;\n    for (var i = 0; i < len; i++) {\n        if (!out[i]) {\n            out[i] = [];\n        }\n        for (var j = 0; j < len2; j++) {\n            out[i][j] = p0[i][j] + p1[i][j] * sign;\n        }\n    }\n    return out;\n}\nfunction fillArray(val0, val1, arrDim) {\n    var arr0 = val0;\n    var arr1 = val1;\n    if (!arr0.push || !arr1.push) {\n        return;\n    }\n    var arr0Len = arr0.length;\n    var arr1Len = arr1.length;\n    if (arr0Len !== arr1Len) {\n        var isPreviousLarger = arr0Len > arr1Len;\n        if (isPreviousLarger) {\n            arr0.length = arr1Len;\n        }\n        else {\n            for (var i = arr0Len; i < arr1Len; i++) {\n                arr0.push(arrDim === 1 ? arr1[i] : arraySlice.call(arr1[i]));\n            }\n        }\n    }\n    var len2 = arr0[0] && arr0[0].length;\n    for (var i = 0; i < arr0.length; i++) {\n        if (arrDim === 1) {\n            if (isNaN(arr0[i])) {\n                arr0[i] = arr1[i];\n            }\n        }\n        else {\n            for (var j = 0; j < len2; j++) {\n                if (isNaN(arr0[i][j])) {\n                    arr0[i][j] = arr1[i][j];\n                }\n            }\n        }\n    }\n}\nfunction is1DArraySame(arr0, arr1) {\n    var len = arr0.length;\n    if (len !== arr1.length) {\n        return false;\n    }\n    for (var i = 0; i < len; i++) {\n        if (arr0[i] !== arr1[i]) {\n            return false;\n        }\n    }\n    return true;\n}\nfunction is2DArraySame(arr0, arr1) {\n    var len = arr0.length;\n    if (len !== arr1.length) {\n        return false;\n    }\n    var len2 = arr0[0].length;\n    for (var i = 0; i < len; i++) {\n        for (var j = 0; j < len2; j++) {\n            if (arr0[i][j] !== arr1[i][j]) {\n                return false;\n            }\n        }\n    }\n    return true;\n}\nfunction catmullRomInterpolate(p0, p1, p2, p3, t, t2, t3) {\n    var v0 = (p2 - p0) * 0.5;\n    var v1 = (p3 - p1) * 0.5;\n    return (2 * (p1 - p2) + v0 + v1) * t3\n        + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\n        + v0 * t + p1;\n}\nfunction catmullRomInterpolate1DArray(out, p0, p1, p2, p3, t, t2, t3) {\n    var len = p0.length;\n    for (var i = 0; i < len; i++) {\n        out[i] = catmullRomInterpolate(p0[i], p1[i], p2[i], p3[i], t, t2, t3);\n    }\n}\nfunction catmullRomInterpolate2DArray(out, p0, p1, p2, p3, t, t2, t3) {\n    var len = p0.length;\n    var len2 = p0[0].length;\n    for (var i = 0; i < len; i++) {\n        if (!out[i]) {\n            out[1] = [];\n        }\n        for (var j = 0; j < len2; j++) {\n            out[i][j] = catmullRomInterpolate(p0[i][j], p1[i][j], p2[i][j], p3[i][j], t, t2, t3);\n        }\n    }\n}\nexport function cloneValue(value) {\n    if (isArrayLike(value)) {\n        var len = value.length;\n        if (isArrayLike(value[0])) {\n            var ret = [];\n            for (var i = 0; i < len; i++) {\n                ret.push(arraySlice.call(value[i]));\n            }\n            return ret;\n        }\n        return arraySlice.call(value);\n    }\n    return value;\n}\nfunction rgba2String(rgba) {\n    rgba[0] = Math.floor(rgba[0]);\n    rgba[1] = Math.floor(rgba[1]);\n    rgba[2] = Math.floor(rgba[2]);\n    return 'rgba(' + rgba.join(',') + ')';\n}\nfunction guessArrayDim(value) {\n    return isArrayLike(value && value[0]) ? 2 : 1;\n}\nvar tmpRgba = [0, 0, 0, 0];\nvar Track = (function () {\n    function Track(propName) {\n        this.keyframes = [];\n        this.maxTime = 0;\n        this.arrDim = 0;\n        this.interpolable = true;\n        this._needsSort = false;\n        this._isAllValueEqual = true;\n        this._lastFrame = 0;\n        this._lastFramePercent = 0;\n        this.propName = propName;\n    }\n    Track.prototype.isFinished = function () {\n        return this._finished;\n    };\n    Track.prototype.setFinished = function () {\n        this._finished = true;\n        if (this._additiveTrack) {\n            this._additiveTrack.setFinished();\n        }\n    };\n    Track.prototype.needsAnimate = function () {\n        return !this._isAllValueEqual && this.keyframes.length >= 2 && this.interpolable;\n    };\n    Track.prototype.getAdditiveTrack = function () {\n        return this._additiveTrack;\n    };\n    Track.prototype.addKeyframe = function (time, value) {\n        if (time >= this.maxTime) {\n            this.maxTime = time;\n        }\n        else {\n            this._needsSort = true;\n        }\n        var keyframes = this.keyframes;\n        var len = keyframes.length;\n        if (this.interpolable) {\n            if (isArrayLike(value)) {\n                var arrayDim = guessArrayDim(value);\n                if (len > 0 && this.arrDim !== arrayDim) {\n                    this.interpolable = false;\n                    return;\n                }\n                if (arrayDim === 1 && typeof value[0] !== 'number'\n                    || arrayDim === 2 && typeof value[0][0] !== 'number') {\n                    this.interpolable = false;\n                    return;\n                }\n                if (len > 0) {\n                    var lastFrame = keyframes[len - 1];\n                    if (this._isAllValueEqual) {\n                        if (arrayDim === 1) {\n                            if (!is1DArraySame(value, lastFrame.value)) {\n                                this._isAllValueEqual = false;\n                            }\n                        }\n                        else {\n                            this._isAllValueEqual = false;\n                        }\n                    }\n                }\n                this.arrDim = arrayDim;\n            }\n            else {\n                if (this.arrDim > 0) {\n                    this.interpolable = false;\n                    return;\n                }\n                if (typeof value === 'string') {\n                    var colorArray = color.parse(value);\n                    if (colorArray) {\n                        value = colorArray;\n                        this.isValueColor = true;\n                    }\n                    else {\n                        this.interpolable = false;\n                    }\n                }\n                else if (typeof value !== 'number') {\n                    this.interpolable = false;\n                    return;\n                }\n                if (this._isAllValueEqual && len > 0) {\n                    var lastFrame = keyframes[len - 1];\n                    if (this.isValueColor && !is1DArraySame(lastFrame.value, value)) {\n                        this._isAllValueEqual = false;\n                    }\n                    else if (lastFrame.value !== value) {\n                        this._isAllValueEqual = false;\n                    }\n                }\n            }\n        }\n        var kf = {\n            time: time,\n            value: value,\n            percent: 0\n        };\n        this.keyframes.push(kf);\n        return kf;\n    };\n    Track.prototype.prepare = function (additiveTrack) {\n        var kfs = this.keyframes;\n        if (this._needsSort) {\n            kfs.sort(function (a, b) {\n                return a.time - b.time;\n            });\n        }\n        var arrDim = this.arrDim;\n        var kfsLen = kfs.length;\n        var lastKf = kfs[kfsLen - 1];\n        for (var i = 0; i < kfsLen; i++) {\n            kfs[i].percent = kfs[i].time / this.maxTime;\n            if (arrDim > 0 && i !== kfsLen - 1) {\n                fillArray(kfs[i].value, lastKf.value, arrDim);\n            }\n        }\n        if (additiveTrack\n            && this.needsAnimate()\n            && additiveTrack.needsAnimate()\n            && arrDim === additiveTrack.arrDim\n            && this.isValueColor === additiveTrack.isValueColor\n            && !additiveTrack._finished) {\n            this._additiveTrack = additiveTrack;\n            var startValue = kfs[0].value;\n            for (var i = 0; i < kfsLen; i++) {\n                if (arrDim === 0) {\n                    if (this.isValueColor) {\n                        kfs[i].additiveValue\n                            = add1DArray([], kfs[i].value, startValue, -1);\n                    }\n                    else {\n                        kfs[i].additiveValue = kfs[i].value - startValue;\n                    }\n                }\n                else if (arrDim === 1) {\n                    kfs[i].additiveValue = add1DArray([], kfs[i].value, startValue, -1);\n                }\n                else if (arrDim === 2) {\n                    kfs[i].additiveValue = add2DArray([], kfs[i].value, startValue, -1);\n                }\n            }\n        }\n    };\n    Track.prototype.step = function (target, percent) {\n        if (this._finished) {\n            return;\n        }\n        if (this._additiveTrack && this._additiveTrack._finished) {\n            this._additiveTrack = null;\n        }\n        var isAdditive = this._additiveTrack != null;\n        var valueKey = isAdditive ? 'additiveValue' : 'value';\n        var keyframes = this.keyframes;\n        var kfsNum = this.keyframes.length;\n        var propName = this.propName;\n        var arrDim = this.arrDim;\n        var isValueColor = this.isValueColor;\n        var frameIdx;\n        if (percent < 0) {\n            frameIdx = 0;\n        }\n        else if (percent < this._lastFramePercent) {\n            var start = Math.min(this._lastFrame + 1, kfsNum - 1);\n            for (frameIdx = start; frameIdx >= 0; frameIdx--) {\n                if (keyframes[frameIdx].percent <= percent) {\n                    break;\n                }\n            }\n            frameIdx = Math.min(frameIdx, kfsNum - 2);\n        }\n        else {\n            for (frameIdx = this._lastFrame; frameIdx < kfsNum; frameIdx++) {\n                if (keyframes[frameIdx].percent > percent) {\n                    break;\n                }\n            }\n            frameIdx = Math.min(frameIdx - 1, kfsNum - 2);\n        }\n        var nextFrame = keyframes[frameIdx + 1];\n        var frame = keyframes[frameIdx];\n        if (!(frame && nextFrame)) {\n            return;\n        }\n        this._lastFrame = frameIdx;\n        this._lastFramePercent = percent;\n        var range = (nextFrame.percent - frame.percent);\n        if (range === 0) {\n            return;\n        }\n        var w = (percent - frame.percent) / range;\n        var targetArr = isAdditive ? this._additiveValue\n            : (isValueColor ? tmpRgba : target[propName]);\n        if ((arrDim > 0 || isValueColor) && !targetArr) {\n            targetArr = this._additiveValue = [];\n        }\n        if (this.useSpline) {\n            var p1 = keyframes[frameIdx][valueKey];\n            var p0 = keyframes[frameIdx === 0 ? frameIdx : frameIdx - 1][valueKey];\n            var p2 = keyframes[frameIdx > kfsNum - 2 ? kfsNum - 1 : frameIdx + 1][valueKey];\n            var p3 = keyframes[frameIdx > kfsNum - 3 ? kfsNum - 1 : frameIdx + 2][valueKey];\n            if (arrDim > 0) {\n                arrDim === 1\n                    ? catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w)\n                    : catmullRomInterpolate2DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\n            }\n            else if (isValueColor) {\n                catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\n                if (!isAdditive) {\n                    target[propName] = rgba2String(targetArr);\n                }\n            }\n            else {\n                var value = void 0;\n                if (!this.interpolable) {\n                    value = p2;\n                }\n                else {\n                    value = catmullRomInterpolate(p0, p1, p2, p3, w, w * w, w * w * w);\n                }\n                if (isAdditive) {\n                    this._additiveValue = value;\n                }\n                else {\n                    target[propName] = value;\n                }\n            }\n        }\n        else {\n            if (arrDim > 0) {\n                arrDim === 1\n                    ? interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w)\n                    : interpolate2DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\n            }\n            else if (isValueColor) {\n                interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\n                if (!isAdditive) {\n                    target[propName] = rgba2String(targetArr);\n                }\n            }\n            else {\n                var value = void 0;\n                if (!this.interpolable) {\n                    value = step(frame[valueKey], nextFrame[valueKey], w);\n                }\n                else {\n                    value = interpolateNumber(frame[valueKey], nextFrame[valueKey], w);\n                }\n                if (isAdditive) {\n                    this._additiveValue = value;\n                }\n                else {\n                    target[propName] = value;\n                }\n            }\n        }\n        if (isAdditive) {\n            this._addToTarget(target);\n        }\n    };\n    Track.prototype._addToTarget = function (target) {\n        var arrDim = this.arrDim;\n        var propName = this.propName;\n        var additiveValue = this._additiveValue;\n        if (arrDim === 0) {\n            if (this.isValueColor) {\n                color.parse(target[propName], tmpRgba);\n                add1DArray(tmpRgba, tmpRgba, additiveValue, 1);\n                target[propName] = rgba2String(tmpRgba);\n            }\n            else {\n                target[propName] = target[propName] + additiveValue;\n            }\n        }\n        else if (arrDim === 1) {\n            add1DArray(target[propName], target[propName], additiveValue, 1);\n        }\n        else if (arrDim === 2) {\n            add2DArray(target[propName], target[propName], additiveValue, 1);\n        }\n    };\n    return Track;\n}());\nvar Animator = (function () {\n    function Animator(target, loop, additiveTo) {\n        this._tracks = {};\n        this._trackKeys = [];\n        this._delay = 0;\n        this._maxTime = 0;\n        this._paused = false;\n        this._started = 0;\n        this._clip = null;\n        this._target = target;\n        this._loop = loop;\n        if (loop && additiveTo) {\n            logError('Can\\' use additive animation on looped animation.');\n            return;\n        }\n        this._additiveAnimators = additiveTo;\n    }\n    Animator.prototype.getTarget = function () {\n        return this._target;\n    };\n    Animator.prototype.changeTarget = function (target) {\n        this._target = target;\n    };\n    Animator.prototype.when = function (time, props) {\n        return this.whenWithKeys(time, props, keys(props));\n    };\n    Animator.prototype.whenWithKeys = function (time, props, propNames) {\n        var tracks = this._tracks;\n        for (var i = 0; i < propNames.length; i++) {\n            var propName = propNames[i];\n            var track = tracks[propName];\n            if (!track) {\n                track = tracks[propName] = new Track(propName);\n                var initialValue = void 0;\n                var additiveTrack = this._getAdditiveTrack(propName);\n                if (additiveTrack) {\n                    var lastFinalKf = additiveTrack.keyframes[additiveTrack.keyframes.length - 1];\n                    initialValue = lastFinalKf && lastFinalKf.value;\n                    if (additiveTrack.isValueColor && initialValue) {\n                        initialValue = rgba2String(initialValue);\n                    }\n                }\n                else {\n                    initialValue = this._target[propName];\n                }\n                if (initialValue == null) {\n                    continue;\n                }\n                if (time !== 0) {\n                    track.addKeyframe(0, cloneValue(initialValue));\n                }\n                this._trackKeys.push(propName);\n            }\n            track.addKeyframe(time, cloneValue(props[propName]));\n        }\n        this._maxTime = Math.max(this._maxTime, time);\n        return this;\n    };\n    Animator.prototype.pause = function () {\n        this._clip.pause();\n        this._paused = true;\n    };\n    Animator.prototype.resume = function () {\n        this._clip.resume();\n        this._paused = false;\n    };\n    Animator.prototype.isPaused = function () {\n        return !!this._paused;\n    };\n    Animator.prototype._doneCallback = function () {\n        this._setTracksFinished();\n        this._clip = null;\n        var doneList = this._doneList;\n        if (doneList) {\n            var len = doneList.length;\n            for (var i = 0; i < len; i++) {\n                doneList[i].call(this);\n            }\n        }\n    };\n    Animator.prototype._abortedCallback = function () {\n        this._setTracksFinished();\n        var animation = this.animation;\n        var abortedList = this._abortedList;\n        if (animation) {\n            animation.removeClip(this._clip);\n        }\n        this._clip = null;\n        if (abortedList) {\n            for (var i = 0; i < abortedList.length; i++) {\n                abortedList[i].call(this);\n            }\n        }\n    };\n    Animator.prototype._setTracksFinished = function () {\n        var tracks = this._tracks;\n        var tracksKeys = this._trackKeys;\n        for (var i = 0; i < tracksKeys.length; i++) {\n            tracks[tracksKeys[i]].setFinished();\n        }\n    };\n    Animator.prototype._getAdditiveTrack = function (trackName) {\n        var additiveTrack;\n        var additiveAnimators = this._additiveAnimators;\n        if (additiveAnimators) {\n            for (var i = 0; i < additiveAnimators.length; i++) {\n                var track = additiveAnimators[i].getTrack(trackName);\n                if (track) {\n                    additiveTrack = track;\n                }\n            }\n        }\n        return additiveTrack;\n    };\n    Animator.prototype.start = function (easing, forceAnimate) {\n        if (this._started > 0) {\n            return;\n        }\n        this._started = 1;\n        var self = this;\n        var tracks = [];\n        for (var i = 0; i < this._trackKeys.length; i++) {\n            var propName = this._trackKeys[i];\n            var track = this._tracks[propName];\n            var additiveTrack = this._getAdditiveTrack(propName);\n            var kfs = track.keyframes;\n            track.prepare(additiveTrack);\n            if (track.needsAnimate()) {\n                tracks.push(track);\n            }\n            else if (!track.interpolable) {\n                var lastKf = kfs[kfs.length - 1];\n                if (lastKf) {\n                    self._target[track.propName] = lastKf.value;\n                }\n            }\n        }\n        if (tracks.length || forceAnimate) {\n            var clip = new Clip({\n                life: this._maxTime,\n                loop: this._loop,\n                delay: this._delay,\n                onframe: function (percent) {\n                    self._started = 2;\n                    var additiveAnimators = self._additiveAnimators;\n                    if (additiveAnimators) {\n                        var stillHasAdditiveAnimator = false;\n                        for (var i = 0; i < additiveAnimators.length; i++) {\n                            if (additiveAnimators[i]._clip) {\n                                stillHasAdditiveAnimator = true;\n                                break;\n                            }\n                        }\n                        if (!stillHasAdditiveAnimator) {\n                            self._additiveAnimators = null;\n                        }\n                    }\n                    for (var i = 0; i < tracks.length; i++) {\n                        tracks[i].step(self._target, percent);\n                    }\n                    var onframeList = self._onframeList;\n                    if (onframeList) {\n                        for (var i = 0; i < onframeList.length; i++) {\n                            onframeList[i](self._target, percent);\n                        }\n                    }\n                },\n                ondestroy: function () {\n                    self._doneCallback();\n                }\n            });\n            this._clip = clip;\n            if (this.animation) {\n                this.animation.addClip(clip);\n            }\n            if (easing && easing !== 'spline') {\n                clip.easing = easing;\n            }\n        }\n        else {\n            this._doneCallback();\n        }\n        return this;\n    };\n    Animator.prototype.stop = function (forwardToLast) {\n        if (!this._clip) {\n            return;\n        }\n        var clip = this._clip;\n        if (forwardToLast) {\n            clip.onframe(1);\n        }\n        this._abortedCallback();\n    };\n    Animator.prototype.delay = function (time) {\n        this._delay = time;\n        return this;\n    };\n    Animator.prototype.during = function (cb) {\n        if (cb) {\n            if (!this._onframeList) {\n                this._onframeList = [];\n            }\n            this._onframeList.push(cb);\n        }\n        return this;\n    };\n    Animator.prototype.done = function (cb) {\n        if (cb) {\n            if (!this._doneList) {\n                this._doneList = [];\n            }\n            this._doneList.push(cb);\n        }\n        return this;\n    };\n    Animator.prototype.aborted = function (cb) {\n        if (cb) {\n            if (!this._abortedList) {\n                this._abortedList = [];\n            }\n            this._abortedList.push(cb);\n        }\n        return this;\n    };\n    Animator.prototype.getClip = function () {\n        return this._clip;\n    };\n    Animator.prototype.getTrack = function (propName) {\n        return this._tracks[propName];\n    };\n    Animator.prototype.stopTracks = function (propNames, forwardToLast) {\n        if (!propNames.length || !this._clip) {\n            return true;\n        }\n        var tracks = this._tracks;\n        var tracksKeys = this._trackKeys;\n        for (var i = 0; i < propNames.length; i++) {\n            var track = tracks[propNames[i]];\n            if (track) {\n                if (forwardToLast) {\n                    track.step(this._target, 1);\n                }\n                else if (this._started === 1) {\n                    track.step(this._target, 0);\n                }\n                track.setFinished();\n            }\n        }\n        var allAborted = true;\n        for (var i = 0; i < tracksKeys.length; i++) {\n            if (!tracks[tracksKeys[i]].isFinished()) {\n                allAborted = false;\n                break;\n            }\n        }\n        if (allAborted) {\n            this._abortedCallback();\n        }\n        return allAborted;\n    };\n    Animator.prototype.saveFinalToTarget = function (target, trackKeys) {\n        if (!target) {\n            return;\n        }\n        trackKeys = trackKeys || this._trackKeys;\n        for (var i = 0; i < trackKeys.length; i++) {\n            var propName = trackKeys[i];\n            var track = this._tracks[propName];\n            if (!track || track.isFinished()) {\n                continue;\n            }\n            var kfs = track.keyframes;\n            var lastKf = kfs[kfs.length - 1];\n            if (lastKf) {\n                var val = cloneValue(lastKf.value);\n                if (track.isValueColor) {\n                    val = rgba2String(val);\n                }\n                target[propName] = val;\n            }\n        }\n    };\n    Animator.prototype.__changeFinalValue = function (finalProps, trackKeys) {\n        trackKeys = trackKeys || keys(finalProps);\n        for (var i = 0; i < trackKeys.length; i++) {\n            var propName = trackKeys[i];\n            var track = this._tracks[propName];\n            if (!track) {\n                continue;\n            }\n            var kfs = track.keyframes;\n            if (kfs.length > 1) {\n                var lastKf = kfs.pop();\n                track.addKeyframe(lastKf.time, finalProps[propName]);\n                track.prepare(track.getAdditiveTrack());\n            }\n        }\n    };\n    return Animator;\n}());\nexport default Animator;\n","var Point = (function () {\n    function Point(x, y) {\n        this.x = x || 0;\n        this.y = y || 0;\n    }\n    Point.prototype.copy = function (other) {\n        this.x = other.x;\n        this.y = other.y;\n        return this;\n    };\n    Point.prototype.clone = function () {\n        return new Point(this.x, this.y);\n    };\n    Point.prototype.set = function (x, y) {\n        this.x = x;\n        this.y = y;\n        return this;\n    };\n    Point.prototype.equal = function (other) {\n        return other.x === this.x && other.y === this.y;\n    };\n    Point.prototype.add = function (other) {\n        this.x += other.x;\n        this.y += other.y;\n        return this;\n    };\n    Point.prototype.scale = function (scalar) {\n        this.x *= scalar;\n        this.y *= scalar;\n    };\n    Point.prototype.scaleAndAdd = function (other, scalar) {\n        this.x += other.x * scalar;\n        this.y += other.y * scalar;\n    };\n    Point.prototype.sub = function (other) {\n        this.x -= other.x;\n        this.y -= other.y;\n        return this;\n    };\n    Point.prototype.dot = function (other) {\n        return this.x * other.x + this.y * other.y;\n    };\n    Point.prototype.len = function () {\n        return Math.sqrt(this.x * this.x + this.y * this.y);\n    };\n    Point.prototype.lenSquare = function () {\n        return this.x * this.x + this.y * this.y;\n    };\n    Point.prototype.normalize = function () {\n        var len = this.len();\n        this.x /= len;\n        this.y /= len;\n        return this;\n    };\n    Point.prototype.distance = function (other) {\n        var dx = this.x - other.x;\n        var dy = this.y - other.y;\n        return Math.sqrt(dx * dx + dy * dy);\n    };\n    Point.prototype.distanceSquare = function (other) {\n        var dx = this.x - other.x;\n        var dy = this.y - other.y;\n        return dx * dx + dy * dy;\n    };\n    Point.prototype.negate = function () {\n        this.x = -this.x;\n        this.y = -this.y;\n        return this;\n    };\n    Point.prototype.transform = function (m) {\n        if (!m) {\n            return;\n        }\n        var x = this.x;\n        var y = this.y;\n        this.x = m[0] * x + m[2] * y + m[4];\n        this.y = m[1] * x + m[3] * y + m[5];\n        return this;\n    };\n    Point.prototype.toArray = function (out) {\n        out[0] = this.x;\n        out[1] = this.y;\n        return out;\n    };\n    Point.prototype.fromArray = function (input) {\n        this.x = input[0];\n        this.y = input[1];\n    };\n    Point.set = function (p, x, y) {\n        p.x = x;\n        p.y = y;\n    };\n    Point.copy = function (p, p2) {\n        p.x = p2.x;\n        p.y = p2.y;\n    };\n    Point.len = function (p) {\n        return Math.sqrt(p.x * p.x + p.y * p.y);\n    };\n    Point.lenSquare = function (p) {\n        return p.x * p.x + p.y * p.y;\n    };\n    Point.dot = function (p0, p1) {\n        return p0.x * p1.x + p0.y * p1.y;\n    };\n    Point.add = function (out, p0, p1) {\n        out.x = p0.x + p1.x;\n        out.y = p0.y + p1.y;\n    };\n    Point.sub = function (out, p0, p1) {\n        out.x = p0.x - p1.x;\n        out.y = p0.y - p1.y;\n    };\n    Point.scale = function (out, p0, scalar) {\n        out.x = p0.x * scalar;\n        out.y = p0.y * scalar;\n    };\n    Point.scaleAndAdd = function (out, p0, p1, scalar) {\n        out.x = p0.x + p1.x * scalar;\n        out.y = p0.y + p1.y * scalar;\n    };\n    Point.lerp = function (out, p0, p1, t) {\n        var onet = 1 - t;\n        out.x = onet * p0.x + t * p1.x;\n        out.y = onet * p0.y + t * p1.y;\n    };\n    return Point;\n}());\nexport default Point;\n","import * as matrix from './matrix';\nimport Point from './Point';\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar lt = new Point();\nvar rb = new Point();\nvar lb = new Point();\nvar rt = new Point();\nvar minTv = new Point();\nvar maxTv = new Point();\nvar BoundingRect = (function () {\n    function BoundingRect(x, y, width, height) {\n        if (width < 0 && isFinite(width)) {\n            x = x + width;\n            width = -width;\n        }\n        if (height < 0 && isFinite(height)) {\n            y = y + height;\n            height = -height;\n        }\n        this.x = x;\n        this.y = y;\n        this.width = width;\n        this.height = height;\n    }\n    BoundingRect.prototype.union = function (other) {\n        var x = mathMin(other.x, this.x);\n        var y = mathMin(other.y, this.y);\n        if (isFinite(this.x) && isFinite(this.width)) {\n            this.width = mathMax(other.x + other.width, this.x + this.width) - x;\n        }\n        else {\n            this.width = other.width;\n        }\n        if (isFinite(this.y) && isFinite(this.height)) {\n            this.height = mathMax(other.y + other.height, this.y + this.height) - y;\n        }\n        else {\n            this.height = other.height;\n        }\n        this.x = x;\n        this.y = y;\n    };\n    BoundingRect.prototype.applyTransform = function (m) {\n        BoundingRect.applyTransform(this, this, m);\n    };\n    BoundingRect.prototype.calculateTransform = function (b) {\n        var a = this;\n        var sx = b.width / a.width;\n        var sy = b.height / a.height;\n        var m = matrix.create();\n        matrix.translate(m, m, [-a.x, -a.y]);\n        matrix.scale(m, m, [sx, sy]);\n        matrix.translate(m, m, [b.x, b.y]);\n        return m;\n    };\n    BoundingRect.prototype.intersect = function (b, mtv) {\n        if (!b) {\n            return false;\n        }\n        if (!(b instanceof BoundingRect)) {\n            b = BoundingRect.create(b);\n        }\n        var a = this;\n        var ax0 = a.x;\n        var ax1 = a.x + a.width;\n        var ay0 = a.y;\n        var ay1 = a.y + a.height;\n        var bx0 = b.x;\n        var bx1 = b.x + b.width;\n        var by0 = b.y;\n        var by1 = b.y + b.height;\n        var overlap = !(ax1 < bx0 || bx1 < ax0 || ay1 < by0 || by1 < ay0);\n        if (mtv) {\n            var dMin = Infinity;\n            var dMax = 0;\n            var d0 = Math.abs(ax1 - bx0);\n            var d1 = Math.abs(bx1 - ax0);\n            var d2 = Math.abs(ay1 - by0);\n            var d3 = Math.abs(by1 - ay0);\n            var dx = Math.min(d0, d1);\n            var dy = Math.min(d2, d3);\n            if (ax1 < bx0 || bx1 < ax0) {\n                if (dx > dMax) {\n                    dMax = dx;\n                    if (d0 < d1) {\n                        Point.set(maxTv, -d0, 0);\n                    }\n                    else {\n                        Point.set(maxTv, d1, 0);\n                    }\n                }\n            }\n            else {\n                if (dx < dMin) {\n                    dMin = dx;\n                    if (d0 < d1) {\n                        Point.set(minTv, d0, 0);\n                    }\n                    else {\n                        Point.set(minTv, -d1, 0);\n                    }\n                }\n            }\n            if (ay1 < by0 || by1 < ay0) {\n                if (dy > dMax) {\n                    dMax = dy;\n                    if (d2 < d3) {\n                        Point.set(maxTv, 0, -d2);\n                    }\n                    else {\n                        Point.set(maxTv, 0, d3);\n                    }\n                }\n            }\n            else {\n                if (dx < dMin) {\n                    dMin = dx;\n                    if (d2 < d3) {\n                        Point.set(minTv, 0, d2);\n                    }\n                    else {\n                        Point.set(minTv, 0, -d3);\n                    }\n                }\n            }\n        }\n        if (mtv) {\n            Point.copy(mtv, overlap ? minTv : maxTv);\n        }\n        return overlap;\n    };\n    BoundingRect.prototype.contain = function (x, y) {\n        var rect = this;\n        return x >= rect.x\n            && x <= (rect.x + rect.width)\n            && y >= rect.y\n            && y <= (rect.y + rect.height);\n    };\n    BoundingRect.prototype.clone = function () {\n        return new BoundingRect(this.x, this.y, this.width, this.height);\n    };\n    BoundingRect.prototype.copy = function (other) {\n        BoundingRect.copy(this, other);\n    };\n    BoundingRect.prototype.plain = function () {\n        return {\n            x: this.x,\n            y: this.y,\n            width: this.width,\n            height: this.height\n        };\n    };\n    BoundingRect.prototype.isFinite = function () {\n        return isFinite(this.x)\n            && isFinite(this.y)\n            && isFinite(this.width)\n            && isFinite(this.height);\n    };\n    BoundingRect.prototype.isZero = function () {\n        return this.width === 0 || this.height === 0;\n    };\n    BoundingRect.create = function (rect) {\n        return new BoundingRect(rect.x, rect.y, rect.width, rect.height);\n    };\n    BoundingRect.copy = function (target, source) {\n        target.x = source.x;\n        target.y = source.y;\n        target.width = source.width;\n        target.height = source.height;\n    };\n    BoundingRect.applyTransform = function (target, source, m) {\n        if (!m) {\n            if (target !== source) {\n                BoundingRect.copy(target, source);\n            }\n            return;\n        }\n        if (m[1] < 1e-5 && m[1] > -1e-5 && m[2] < 1e-5 && m[2] > -1e-5) {\n            var sx = m[0];\n            var sy = m[3];\n            var tx = m[4];\n            var ty = m[5];\n            target.x = source.x * sx + tx;\n            target.y = source.y * sy + ty;\n            target.width = source.width * sx;\n            target.height = source.height * sy;\n            if (target.width < 0) {\n                target.x += target.width;\n                target.width = -target.width;\n            }\n            if (target.height < 0) {\n                target.y += target.height;\n                target.height = -target.height;\n            }\n            return;\n        }\n        lt.x = lb.x = source.x;\n        lt.y = rt.y = source.y;\n        rb.x = rt.x = source.x + source.width;\n        rb.y = lb.y = source.y + source.height;\n        lt.transform(m);\n        rt.transform(m);\n        rb.transform(m);\n        lb.transform(m);\n        target.x = mathMin(lt.x, rb.x, lb.x, rt.x);\n        target.y = mathMin(lt.y, rb.y, lb.y, rt.y);\n        var maxX = mathMax(lt.x, rb.x, lb.x, rt.x);\n        var maxY = mathMax(lt.y, rb.y, lb.y, rt.y);\n        target.width = maxX - target.x;\n        target.height = maxY - target.y;\n    };\n    return BoundingRect;\n}());\nexport default BoundingRect;\n","import BoundingRect from '../core/BoundingRect';\nimport { createCanvas } from '../core/util';\nimport LRU from '../core/LRU';\nvar textWidthCache = {};\nexport var DEFAULT_FONT = '12px sans-serif';\nvar _ctx;\nvar _cachedFont;\nfunction defaultMeasureText(text, font) {\n    if (!_ctx) {\n        _ctx = createCanvas().getContext('2d');\n    }\n    if (_cachedFont !== font) {\n        _cachedFont = _ctx.font = font || DEFAULT_FONT;\n    }\n    return _ctx.measureText(text);\n}\nvar methods = {\n    measureText: defaultMeasureText\n};\nexport function $override(name, fn) {\n    methods[name] = fn;\n}\nexport function getWidth(text, font) {\n    font = font || DEFAULT_FONT;\n    var cacheOfFont = textWidthCache[font];\n    if (!cacheOfFont) {\n        cacheOfFont = textWidthCache[font] = new LRU(500);\n    }\n    var width = cacheOfFont.get(text);\n    if (width == null) {\n        width = methods.measureText(text, font).width;\n        cacheOfFont.put(text, width);\n    }\n    return width;\n}\nexport function innerGetBoundingRect(text, font, textAlign, textBaseline) {\n    var width = getWidth(text, font);\n    var height = getLineHeight(font);\n    var x = adjustTextX(0, width, textAlign);\n    var y = adjustTextY(0, height, textBaseline);\n    var rect = new BoundingRect(x, y, width, height);\n    return rect;\n}\nexport function getBoundingRect(text, font, textAlign, textBaseline) {\n    var textLines = ((text || '') + '').split('\\n');\n    var len = textLines.length;\n    if (len === 1) {\n        return innerGetBoundingRect(textLines[0], font, textAlign, textBaseline);\n    }\n    else {\n        var uniondRect = new BoundingRect(0, 0, 0, 0);\n        for (var i = 0; i < textLines.length; i++) {\n            var rect = innerGetBoundingRect(textLines[i], font, textAlign, textBaseline);\n            i === 0 ? uniondRect.copy(rect) : uniondRect.union(rect);\n        }\n        return uniondRect;\n    }\n}\nexport function adjustTextX(x, width, textAlign) {\n    if (textAlign === 'right') {\n        x -= width;\n    }\n    else if (textAlign === 'center') {\n        x -= width / 2;\n    }\n    return x;\n}\nexport function adjustTextY(y, height, verticalAlign) {\n    if (verticalAlign === 'middle') {\n        y -= height / 2;\n    }\n    else if (verticalAlign === 'bottom') {\n        y -= height;\n    }\n    return y;\n}\nexport function getLineHeight(font) {\n    return getWidth('国', font);\n}\nexport function measureText(text, font) {\n    return methods.measureText(text, font);\n}\nexport function parsePercent(value, maxValue) {\n    if (typeof value === 'string') {\n        if (value.lastIndexOf('%') >= 0) {\n            return parseFloat(value) / 100 * maxValue;\n        }\n        return parseFloat(value);\n    }\n    return value;\n}\nexport function calculateTextPosition(out, opts, rect) {\n    var textPosition = opts.position || 'inside';\n    var distance = opts.distance != null ? opts.distance : 5;\n    var height = rect.height;\n    var width = rect.width;\n    var halfHeight = height / 2;\n    var x = rect.x;\n    var y = rect.y;\n    var textAlign = 'left';\n    var textVerticalAlign = 'top';\n    if (textPosition instanceof Array) {\n        x += parsePercent(textPosition[0], rect.width);\n        y += parsePercent(textPosition[1], rect.height);\n        textAlign = null;\n        textVerticalAlign = null;\n    }\n    else {\n        switch (textPosition) {\n            case 'left':\n                x -= distance;\n                y += halfHeight;\n                textAlign = 'right';\n                textVerticalAlign = 'middle';\n                break;\n            case 'right':\n                x += distance + width;\n                y += halfHeight;\n                textVerticalAlign = 'middle';\n                break;\n            case 'top':\n                x += width / 2;\n                y -= distance;\n                textAlign = 'center';\n                textVerticalAlign = 'bottom';\n                break;\n            case 'bottom':\n                x += width / 2;\n                y += height + distance;\n                textAlign = 'center';\n                break;\n            case 'inside':\n                x += width / 2;\n                y += halfHeight;\n                textAlign = 'center';\n                textVerticalAlign = 'middle';\n                break;\n            case 'insideLeft':\n                x += distance;\n                y += halfHeight;\n                textVerticalAlign = 'middle';\n                break;\n            case 'insideRight':\n                x += width - distance;\n                y += halfHeight;\n                textAlign = 'right';\n                textVerticalAlign = 'middle';\n                break;\n            case 'insideTop':\n                x += width / 2;\n                y += distance;\n                textAlign = 'center';\n                break;\n            case 'insideBottom':\n                x += width / 2;\n                y += height - distance;\n                textAlign = 'center';\n                textVerticalAlign = 'bottom';\n                break;\n            case 'insideTopLeft':\n                x += distance;\n                y += distance;\n                break;\n            case 'insideTopRight':\n                x += width - distance;\n                y += distance;\n                textAlign = 'right';\n                break;\n            case 'insideBottomLeft':\n                x += distance;\n                y += height - distance;\n                textVerticalAlign = 'bottom';\n                break;\n            case 'insideBottomRight':\n                x += width - distance;\n                y += height - distance;\n                textAlign = 'right';\n                textVerticalAlign = 'bottom';\n                break;\n        }\n    }\n    out = out || {};\n    out.x = x;\n    out.y = y;\n    out.align = textAlign;\n    out.verticalAlign = textVerticalAlign;\n    return out;\n}\n","var dpr = 1;\nif (typeof window !== 'undefined') {\n    dpr = Math.max(window.devicePixelRatio\n        || (window.screen && window.screen.deviceXDPI / window.screen.logicalXDPI)\n        || 1, 1);\n}\nexport var debugMode = 0;\nexport var devicePixelRatio = dpr;\nexport var DARK_MODE_THRESHOLD = 0.4;\nexport var DARK_LABEL_COLOR = '#333';\nexport var LIGHT_LABEL_COLOR = '#ccc';\nexport var LIGHTER_LABEL_COLOR = '#eee';\n","import Transformable from './core/Transformable';\nimport Animator, { cloneValue } from './animation/Animator';\nimport BoundingRect from './core/BoundingRect';\nimport Eventful from './core/Eventful';\nimport { calculateTextPosition, parsePercent } from './contain/text';\nimport { guid, isObject, keys, extend, indexOf, logError, mixin, isArrayLike, isTypedArray } from './core/util';\nimport { LIGHT_LABEL_COLOR, DARK_LABEL_COLOR } from './config';\nimport { parse, stringify } from './tool/color';\nimport env from './core/env';\nexport var PRESERVED_NORMAL_STATE = '__zr_normal__';\nvar PRIMARY_STATES_KEYS = ['x', 'y', 'scaleX', 'scaleY', 'originX', 'originY', 'rotation', 'ignore'];\nvar DEFAULT_ANIMATABLE_MAP = {\n    x: true,\n    y: true,\n    scaleX: true,\n    scaleY: true,\n    originX: true,\n    originY: true,\n    rotation: true,\n    ignore: false\n};\nvar tmpTextPosCalcRes = {};\nvar tmpBoundingRect = new BoundingRect(0, 0, 0, 0);\nvar Element = (function () {\n    function Element(props) {\n        this.id = guid();\n        this.animators = [];\n        this.currentStates = [];\n        this.states = {};\n        this._init(props);\n    }\n    Element.prototype._init = function (props) {\n        this.attr(props);\n    };\n    Element.prototype.drift = function (dx, dy, e) {\n        switch (this.draggable) {\n            case 'horizontal':\n                dy = 0;\n                break;\n            case 'vertical':\n                dx = 0;\n                break;\n        }\n        var m = this.transform;\n        if (!m) {\n            m = this.transform = [1, 0, 0, 1, 0, 0];\n        }\n        m[4] += dx;\n        m[5] += dy;\n        this.decomposeTransform();\n        this.markRedraw();\n    };\n    Element.prototype.beforeUpdate = function () { };\n    Element.prototype.afterUpdate = function () { };\n    Element.prototype.update = function () {\n        this.updateTransform();\n        if (this.__dirty) {\n            this.updateInnerText();\n        }\n    };\n    Element.prototype.updateInnerText = function (forceUpdate) {\n        var textEl = this._textContent;\n        if (textEl && (!textEl.ignore || forceUpdate)) {\n            if (!this.textConfig) {\n                this.textConfig = {};\n            }\n            var textConfig = this.textConfig;\n            var isLocal = textConfig.local;\n            var attachedTransform = textEl.attachedTransform;\n            var textAlign = void 0;\n            var textVerticalAlign = void 0;\n            var textStyleChanged = false;\n            if (isLocal) {\n                attachedTransform.parent = this;\n            }\n            else {\n                attachedTransform.parent = null;\n            }\n            var innerOrigin = false;\n            attachedTransform.x = textEl.x;\n            attachedTransform.y = textEl.y;\n            attachedTransform.originX = textEl.originX;\n            attachedTransform.originY = textEl.originY;\n            attachedTransform.rotation = textEl.rotation;\n            attachedTransform.scaleX = textEl.scaleX;\n            attachedTransform.scaleY = textEl.scaleY;\n            if (textConfig.position != null) {\n                var layoutRect = tmpBoundingRect;\n                if (textConfig.layoutRect) {\n                    layoutRect.copy(textConfig.layoutRect);\n                }\n                else {\n                    layoutRect.copy(this.getBoundingRect());\n                }\n                if (!isLocal) {\n                    layoutRect.applyTransform(this.transform);\n                }\n                if (this.calculateTextPosition) {\n                    this.calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\n                }\n                else {\n                    calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\n                }\n                attachedTransform.x = tmpTextPosCalcRes.x;\n                attachedTransform.y = tmpTextPosCalcRes.y;\n                textAlign = tmpTextPosCalcRes.align;\n                textVerticalAlign = tmpTextPosCalcRes.verticalAlign;\n                var textOrigin = textConfig.origin;\n                if (textOrigin && textConfig.rotation != null) {\n                    var relOriginX = void 0;\n                    var relOriginY = void 0;\n                    if (textOrigin === 'center') {\n                        relOriginX = layoutRect.width * 0.5;\n                        relOriginY = layoutRect.height * 0.5;\n                    }\n                    else {\n                        relOriginX = parsePercent(textOrigin[0], layoutRect.width);\n                        relOriginY = parsePercent(textOrigin[1], layoutRect.height);\n                    }\n                    innerOrigin = true;\n                    attachedTransform.originX = -attachedTransform.x + relOriginX + (isLocal ? 0 : layoutRect.x);\n                    attachedTransform.originY = -attachedTransform.y + relOriginY + (isLocal ? 0 : layoutRect.y);\n                }\n            }\n            if (textConfig.rotation != null) {\n                attachedTransform.rotation = textConfig.rotation;\n            }\n            var textOffset = textConfig.offset;\n            if (textOffset) {\n                attachedTransform.x += textOffset[0];\n                attachedTransform.y += textOffset[1];\n                if (!innerOrigin) {\n                    attachedTransform.originX = -textOffset[0];\n                    attachedTransform.originY = -textOffset[1];\n                }\n            }\n            var isInside = textConfig.inside == null\n                ? (typeof textConfig.position === 'string' && textConfig.position.indexOf('inside') >= 0)\n                : textConfig.inside;\n            var innerTextDefaultStyle = this._innerTextDefaultStyle || (this._innerTextDefaultStyle = {});\n            var textFill = void 0;\n            var textStroke = void 0;\n            var autoStroke = void 0;\n            if (isInside && this.canBeInsideText()) {\n                textFill = textConfig.insideFill;\n                textStroke = textConfig.insideStroke;\n                if (textFill == null || textFill === 'auto') {\n                    textFill = this.getInsideTextFill();\n                }\n                if (textStroke == null || textStroke === 'auto') {\n                    textStroke = this.getInsideTextStroke(textFill);\n                    autoStroke = true;\n                }\n            }\n            else {\n                textFill = textConfig.outsideFill;\n                textStroke = textConfig.outsideStroke;\n                if (textFill == null || textFill === 'auto') {\n                    textFill = this.getOutsideFill();\n                }\n                if (textStroke == null || textStroke === 'auto') {\n                    textStroke = this.getOutsideStroke(textFill);\n                    autoStroke = true;\n                }\n            }\n            textFill = textFill || '#000';\n            if (textFill !== innerTextDefaultStyle.fill\n                || textStroke !== innerTextDefaultStyle.stroke\n                || autoStroke !== innerTextDefaultStyle.autoStroke\n                || textAlign !== innerTextDefaultStyle.align\n                || textVerticalAlign !== innerTextDefaultStyle.verticalAlign) {\n                textStyleChanged = true;\n                innerTextDefaultStyle.fill = textFill;\n                innerTextDefaultStyle.stroke = textStroke;\n                innerTextDefaultStyle.autoStroke = autoStroke;\n                innerTextDefaultStyle.align = textAlign;\n                innerTextDefaultStyle.verticalAlign = textVerticalAlign;\n                textEl.setDefaultTextStyle(innerTextDefaultStyle);\n            }\n            if (textStyleChanged) {\n                textEl.dirtyStyle();\n            }\n            textEl.markRedraw();\n        }\n    };\n    Element.prototype.canBeInsideText = function () {\n        return true;\n    };\n    Element.prototype.getInsideTextFill = function () {\n        return '#fff';\n    };\n    Element.prototype.getInsideTextStroke = function (textFill) {\n        return '#000';\n    };\n    Element.prototype.getOutsideFill = function () {\n        return this.__zr && this.__zr.isDarkMode() ? LIGHT_LABEL_COLOR : DARK_LABEL_COLOR;\n    };\n    Element.prototype.getOutsideStroke = function (textFill) {\n        var backgroundColor = this.__zr && this.__zr.getBackgroundColor();\n        var colorArr = typeof backgroundColor === 'string' && parse(backgroundColor);\n        if (!colorArr) {\n            colorArr = [255, 255, 255, 1];\n        }\n        var alpha = colorArr[3];\n        var isDark = this.__zr.isDarkMode();\n        for (var i = 0; i < 3; i++) {\n            colorArr[i] = colorArr[i] * alpha + (isDark ? 0 : 255) * (1 - alpha);\n        }\n        colorArr[3] = 1;\n        return stringify(colorArr, 'rgba');\n    };\n    Element.prototype.traverse = function (cb, context) { };\n    Element.prototype.attrKV = function (key, value) {\n        if (key === 'textConfig') {\n            this.setTextConfig(value);\n        }\n        else if (key === 'textContent') {\n            this.setTextContent(value);\n        }\n        else if (key === 'clipPath') {\n            this.setClipPath(value);\n        }\n        else if (key === 'extra') {\n            this.extra = this.extra || {};\n            extend(this.extra, value);\n        }\n        else {\n            this[key] = value;\n        }\n    };\n    Element.prototype.hide = function () {\n        this.ignore = true;\n        this.markRedraw();\n    };\n    Element.prototype.show = function () {\n        this.ignore = false;\n        this.markRedraw();\n    };\n    Element.prototype.attr = function (keyOrObj, value) {\n        if (typeof keyOrObj === 'string') {\n            this.attrKV(keyOrObj, value);\n        }\n        else if (isObject(keyOrObj)) {\n            var obj = keyOrObj;\n            var keysArr = keys(obj);\n            for (var i = 0; i < keysArr.length; i++) {\n                var key = keysArr[i];\n                this.attrKV(key, keyOrObj[key]);\n            }\n        }\n        this.markRedraw();\n        return this;\n    };\n    Element.prototype.saveCurrentToNormalState = function (toState) {\n        this._innerSaveToNormal(toState);\n        var normalState = this._normalState;\n        for (var i = 0; i < this.animators.length; i++) {\n            var animator = this.animators[i];\n            var fromStateTransition = animator.__fromStateTransition;\n            if (fromStateTransition && fromStateTransition !== PRESERVED_NORMAL_STATE) {\n                continue;\n            }\n            var targetName = animator.targetName;\n            var target = targetName\n                ? normalState[targetName] : normalState;\n            animator.saveFinalToTarget(target);\n        }\n    };\n    Element.prototype._innerSaveToNormal = function (toState) {\n        var normalState = this._normalState;\n        if (!normalState) {\n            normalState = this._normalState = {};\n        }\n        if (toState.textConfig && !normalState.textConfig) {\n            normalState.textConfig = this.textConfig;\n        }\n        this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS);\n    };\n    Element.prototype._savePrimaryToNormal = function (toState, normalState, primaryKeys) {\n        for (var i = 0; i < primaryKeys.length; i++) {\n            var key = primaryKeys[i];\n            if (toState[key] != null && !(key in normalState)) {\n                normalState[key] = this[key];\n            }\n        }\n    };\n    Element.prototype.hasState = function () {\n        return this.currentStates.length > 0;\n    };\n    Element.prototype.getState = function (name) {\n        return this.states[name];\n    };\n    Element.prototype.ensureState = function (name) {\n        var states = this.states;\n        if (!states[name]) {\n            states[name] = {};\n        }\n        return states[name];\n    };\n    Element.prototype.clearStates = function (noAnimation) {\n        this.useState(PRESERVED_NORMAL_STATE, false, noAnimation);\n    };\n    Element.prototype.useState = function (stateName, keepCurrentStates, noAnimation) {\n        var toNormalState = stateName === PRESERVED_NORMAL_STATE;\n        var hasStates = this.hasState();\n        if (!hasStates && toNormalState) {\n            return;\n        }\n        var currentStates = this.currentStates;\n        var animationCfg = this.stateTransition;\n        if (indexOf(currentStates, stateName) >= 0 && (keepCurrentStates || currentStates.length === 1)) {\n            return;\n        }\n        var state;\n        if (this.stateProxy && !toNormalState) {\n            state = this.stateProxy(stateName);\n        }\n        if (!state) {\n            state = (this.states && this.states[stateName]);\n        }\n        if (!state && !toNormalState) {\n            logError(\"State \" + stateName + \" not exists.\");\n            return;\n        }\n        if (!toNormalState) {\n            this.saveCurrentToNormalState(state);\n        }\n        var useHoverLayer = !!(state && state.hoverLayer);\n        if (useHoverLayer) {\n            this._toggleHoverLayerFlag(true);\n        }\n        this._applyStateObj(stateName, state, this._normalState, keepCurrentStates, !noAnimation && !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\n        if (this._textContent) {\n            this._textContent.useState(stateName, keepCurrentStates);\n        }\n        if (this._textGuide) {\n            this._textGuide.useState(stateName, keepCurrentStates);\n        }\n        if (toNormalState) {\n            this.currentStates = [];\n            this._normalState = {};\n        }\n        else {\n            if (!keepCurrentStates) {\n                this.currentStates = [stateName];\n            }\n            else {\n                this.currentStates.push(stateName);\n            }\n        }\n        this._updateAnimationTargets();\n        this.markRedraw();\n        if (!useHoverLayer && this.__inHover) {\n            this._toggleHoverLayerFlag(false);\n            this.__dirty &= ~Element.REDARAW_BIT;\n        }\n        return state;\n    };\n    Element.prototype.useStates = function (states, noAnimation) {\n        if (!states.length) {\n            this.clearStates();\n        }\n        else {\n            var stateObjects = [];\n            var currentStates = this.currentStates;\n            var len = states.length;\n            var notChange = len === currentStates.length;\n            if (notChange) {\n                for (var i = 0; i < len; i++) {\n                    if (states[i] !== currentStates[i]) {\n                        notChange = false;\n                        break;\n                    }\n                }\n            }\n            if (notChange) {\n                return;\n            }\n            for (var i = 0; i < len; i++) {\n                var stateName = states[i];\n                var stateObj = void 0;\n                if (this.stateProxy) {\n                    stateObj = this.stateProxy(stateName, states);\n                }\n                if (!stateObj) {\n                    stateObj = this.states[stateName];\n                }\n                if (stateObj) {\n                    stateObjects.push(stateObj);\n                }\n            }\n            var useHoverLayer = !!(stateObjects[len - 1] && stateObjects[len - 1].hoverLayer);\n            if (useHoverLayer) {\n                this._toggleHoverLayerFlag(true);\n            }\n            var mergedState = this._mergeStates(stateObjects);\n            var animationCfg = this.stateTransition;\n            this.saveCurrentToNormalState(mergedState);\n            this._applyStateObj(states.join(','), mergedState, this._normalState, false, !noAnimation && !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\n            if (this._textContent) {\n                this._textContent.useStates(states);\n            }\n            if (this._textGuide) {\n                this._textGuide.useStates(states);\n            }\n            this._updateAnimationTargets();\n            this.currentStates = states.slice();\n            this.markRedraw();\n            if (!useHoverLayer && this.__inHover) {\n                this._toggleHoverLayerFlag(false);\n                this.__dirty &= ~Element.REDARAW_BIT;\n            }\n        }\n    };\n    Element.prototype._updateAnimationTargets = function () {\n        for (var i = 0; i < this.animators.length; i++) {\n            var animator = this.animators[i];\n            if (animator.targetName) {\n                animator.changeTarget(this[animator.targetName]);\n            }\n        }\n    };\n    Element.prototype.removeState = function (state) {\n        var idx = indexOf(this.currentStates, state);\n        if (idx >= 0) {\n            var currentStates = this.currentStates.slice();\n            currentStates.splice(idx, 1);\n            this.useStates(currentStates);\n        }\n    };\n    Element.prototype.replaceState = function (oldState, newState, forceAdd) {\n        var currentStates = this.currentStates.slice();\n        var idx = indexOf(currentStates, oldState);\n        var newStateExists = indexOf(currentStates, newState) >= 0;\n        if (idx >= 0) {\n            if (!newStateExists) {\n                currentStates[idx] = newState;\n            }\n            else {\n                currentStates.splice(idx, 1);\n            }\n        }\n        else if (forceAdd && !newStateExists) {\n            currentStates.push(newState);\n        }\n        this.useStates(currentStates);\n    };\n    Element.prototype.toggleState = function (state, enable) {\n        if (enable) {\n            this.useState(state, true);\n        }\n        else {\n            this.removeState(state);\n        }\n    };\n    Element.prototype._mergeStates = function (states) {\n        var mergedState = {};\n        var mergedTextConfig;\n        for (var i = 0; i < states.length; i++) {\n            var state = states[i];\n            extend(mergedState, state);\n            if (state.textConfig) {\n                mergedTextConfig = mergedTextConfig || {};\n                extend(mergedTextConfig, state.textConfig);\n            }\n        }\n        if (mergedTextConfig) {\n            mergedState.textConfig = mergedTextConfig;\n        }\n        return mergedState;\n    };\n    Element.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\n        var needsRestoreToNormal = !(state && keepCurrentStates);\n        if (state && state.textConfig) {\n            this.textConfig = extend({}, keepCurrentStates ? this.textConfig : normalState.textConfig);\n            extend(this.textConfig, state.textConfig);\n        }\n        else if (needsRestoreToNormal) {\n            if (normalState.textConfig) {\n                this.textConfig = normalState.textConfig;\n            }\n        }\n        var transitionTarget = {};\n        var hasTransition = false;\n        for (var i = 0; i < PRIMARY_STATES_KEYS.length; i++) {\n            var key = PRIMARY_STATES_KEYS[i];\n            var propNeedsTransition = transition && DEFAULT_ANIMATABLE_MAP[key];\n            if (state && state[key] != null) {\n                if (propNeedsTransition) {\n                    hasTransition = true;\n                    transitionTarget[key] = state[key];\n                }\n                else {\n                    this[key] = state[key];\n                }\n            }\n            else if (needsRestoreToNormal) {\n                if (normalState[key] != null) {\n                    if (propNeedsTransition) {\n                        hasTransition = true;\n                        transitionTarget[key] = normalState[key];\n                    }\n                    else {\n                        this[key] = normalState[key];\n                    }\n                }\n            }\n        }\n        if (!transition) {\n            for (var i = 0; i < this.animators.length; i++) {\n                var animator = this.animators[i];\n                var targetName = animator.targetName;\n                animator.__changeFinalValue(targetName\n                    ? (state || normalState)[targetName]\n                    : (state || normalState));\n            }\n        }\n        if (hasTransition) {\n            this._transitionState(stateName, transitionTarget, animationCfg);\n        }\n    };\n    Element.prototype._attachComponent = function (componentEl) {\n        if (componentEl.__zr && !componentEl.__hostTarget) {\n            throw new Error('Text element has been added to zrender.');\n        }\n        if (componentEl === this) {\n            throw new Error('Recursive component attachment.');\n        }\n        var zr = this.__zr;\n        if (zr) {\n            componentEl.addSelfToZr(zr);\n        }\n        componentEl.__zr = zr;\n        componentEl.__hostTarget = this;\n    };\n    Element.prototype._detachComponent = function (componentEl) {\n        if (componentEl.__zr) {\n            componentEl.removeSelfFromZr(componentEl.__zr);\n        }\n        componentEl.__zr = null;\n        componentEl.__hostTarget = null;\n    };\n    Element.prototype.getClipPath = function () {\n        return this._clipPath;\n    };\n    Element.prototype.setClipPath = function (clipPath) {\n        if (this._clipPath && this._clipPath !== clipPath) {\n            this.removeClipPath();\n        }\n        this._attachComponent(clipPath);\n        this._clipPath = clipPath;\n        this.markRedraw();\n    };\n    Element.prototype.removeClipPath = function () {\n        var clipPath = this._clipPath;\n        if (clipPath) {\n            this._detachComponent(clipPath);\n            this._clipPath = null;\n            this.markRedraw();\n        }\n    };\n    Element.prototype.getTextContent = function () {\n        return this._textContent;\n    };\n    Element.prototype.setTextContent = function (textEl) {\n        var previousTextContent = this._textContent;\n        if (previousTextContent === textEl) {\n            return;\n        }\n        if (previousTextContent && previousTextContent !== textEl) {\n            this.removeTextContent();\n        }\n        if (textEl.__zr && !textEl.__hostTarget) {\n            throw new Error('Text element has been added to zrender.');\n        }\n        textEl.attachedTransform = new Transformable();\n        this._attachComponent(textEl);\n        this._textContent = textEl;\n        this.markRedraw();\n    };\n    Element.prototype.setTextConfig = function (cfg) {\n        if (!this.textConfig) {\n            this.textConfig = {};\n        }\n        extend(this.textConfig, cfg);\n        this.markRedraw();\n    };\n    Element.prototype.removeTextContent = function () {\n        var textEl = this._textContent;\n        if (textEl) {\n            textEl.attachedTransform = null;\n            this._detachComponent(textEl);\n            this._textContent = null;\n            this._innerTextDefaultStyle = null;\n            this.markRedraw();\n        }\n    };\n    Element.prototype.getTextGuideLine = function () {\n        return this._textGuide;\n    };\n    Element.prototype.setTextGuideLine = function (guideLine) {\n        if (this._textGuide && this._textGuide !== guideLine) {\n            this.removeTextGuideLine();\n        }\n        this._attachComponent(guideLine);\n        this._textGuide = guideLine;\n        this.markRedraw();\n    };\n    Element.prototype.removeTextGuideLine = function () {\n        var textGuide = this._textGuide;\n        if (textGuide) {\n            this._detachComponent(textGuide);\n            this._textGuide = null;\n            this.markRedraw();\n        }\n    };\n    Element.prototype.markRedraw = function () {\n        this.__dirty |= Element.REDARAW_BIT;\n        var zr = this.__zr;\n        if (zr) {\n            if (this.__inHover) {\n                zr.refreshHover();\n            }\n            else {\n                zr.refresh();\n            }\n        }\n        if (this.__hostTarget) {\n            this.__hostTarget.markRedraw();\n        }\n    };\n    Element.prototype.dirty = function () {\n        this.markRedraw();\n    };\n    Element.prototype._toggleHoverLayerFlag = function (inHover) {\n        this.__inHover = inHover;\n        var textContent = this._textContent;\n        var textGuide = this._textGuide;\n        if (textContent) {\n            textContent.__inHover = inHover;\n        }\n        if (textGuide) {\n            textGuide.__inHover = inHover;\n        }\n    };\n    Element.prototype.addSelfToZr = function (zr) {\n        this.__zr = zr;\n        var animators = this.animators;\n        if (animators) {\n            for (var i = 0; i < animators.length; i++) {\n                zr.animation.addAnimator(animators[i]);\n            }\n        }\n        if (this._clipPath) {\n            this._clipPath.addSelfToZr(zr);\n        }\n        if (this._textContent) {\n            this._textContent.addSelfToZr(zr);\n        }\n        if (this._textGuide) {\n            this._textGuide.addSelfToZr(zr);\n        }\n    };\n    Element.prototype.removeSelfFromZr = function (zr) {\n        this.__zr = null;\n        var animators = this.animators;\n        if (animators) {\n            for (var i = 0; i < animators.length; i++) {\n                zr.animation.removeAnimator(animators[i]);\n            }\n        }\n        if (this._clipPath) {\n            this._clipPath.removeSelfFromZr(zr);\n        }\n        if (this._textContent) {\n            this._textContent.removeSelfFromZr(zr);\n        }\n        if (this._textGuide) {\n            this._textGuide.removeSelfFromZr(zr);\n        }\n    };\n    Element.prototype.animate = function (key, loop) {\n        var target = key ? this[key] : this;\n        if (!target) {\n            logError('Property \"'\n                + key\n                + '\" is not existed in element '\n                + this.id);\n            return;\n        }\n        var animator = new Animator(target, loop);\n        this.addAnimator(animator, key);\n        return animator;\n    };\n    Element.prototype.addAnimator = function (animator, key) {\n        var zr = this.__zr;\n        var el = this;\n        animator.during(function () {\n            el.updateDuringAnimation(key);\n        }).done(function () {\n            var animators = el.animators;\n            var idx = indexOf(animators, animator);\n            if (idx >= 0) {\n                animators.splice(idx, 1);\n            }\n        });\n        this.animators.push(animator);\n        if (zr) {\n            zr.animation.addAnimator(animator);\n        }\n        zr && zr.wakeUp();\n    };\n    Element.prototype.updateDuringAnimation = function (key) {\n        this.markRedraw();\n    };\n    Element.prototype.stopAnimation = function (scope, forwardToLast) {\n        var animators = this.animators;\n        var len = animators.length;\n        var leftAnimators = [];\n        for (var i = 0; i < len; i++) {\n            var animator = animators[i];\n            if (!scope || scope === animator.scope) {\n                animator.stop(forwardToLast);\n            }\n            else {\n                leftAnimators.push(animator);\n            }\n        }\n        this.animators = leftAnimators;\n        return this;\n    };\n    Element.prototype.animateTo = function (target, cfg, animationProps) {\n        animateTo(this, target, cfg, animationProps);\n    };\n    Element.prototype.animateFrom = function (target, cfg, animationProps) {\n        animateTo(this, target, cfg, animationProps, true);\n    };\n    Element.prototype._transitionState = function (stateName, target, cfg, animationProps) {\n        var animators = animateTo(this, target, cfg, animationProps);\n        for (var i = 0; i < animators.length; i++) {\n            animators[i].__fromStateTransition = stateName;\n        }\n    };\n    Element.prototype.getBoundingRect = function () {\n        return null;\n    };\n    Element.prototype.getPaintRect = function () {\n        return null;\n    };\n    Element.REDARAW_BIT = 1;\n    Element.initDefaultProps = (function () {\n        var elProto = Element.prototype;\n        elProto.type = 'element';\n        elProto.name = '';\n        elProto.ignore = false;\n        elProto.silent = false;\n        elProto.isGroup = false;\n        elProto.draggable = false;\n        elProto.dragging = false;\n        elProto.ignoreClip = false;\n        elProto.__inHover = false;\n        elProto.__dirty = Element.REDARAW_BIT;\n        var logs = {};\n        function logDeprecatedError(key, xKey, yKey) {\n            if (!logs[key + xKey + yKey]) {\n                console.warn(\"DEPRECATED: '\" + key + \"' has been deprecated. use '\" + xKey + \"', '\" + yKey + \"' instead\");\n                logs[key + xKey + yKey] = true;\n            }\n        }\n        function createLegacyProperty(key, privateKey, xKey, yKey) {\n            Object.defineProperty(elProto, key, {\n                get: function () {\n                    logDeprecatedError(key, xKey, yKey);\n                    if (!this[privateKey]) {\n                        var pos = this[privateKey] = [];\n                        enhanceArray(this, pos);\n                    }\n                    return this[privateKey];\n                },\n                set: function (pos) {\n                    logDeprecatedError(key, xKey, yKey);\n                    this[xKey] = pos[0];\n                    this[yKey] = pos[1];\n                    this[privateKey] = pos;\n                    enhanceArray(this, pos);\n                }\n            });\n            function enhanceArray(self, pos) {\n                Object.defineProperty(pos, 0, {\n                    get: function () {\n                        return self[xKey];\n                    },\n                    set: function (val) {\n                        self[xKey] = val;\n                    }\n                });\n                Object.defineProperty(pos, 1, {\n                    get: function () {\n                        return self[yKey];\n                    },\n                    set: function (val) {\n                        self[yKey] = val;\n                    }\n                });\n            }\n        }\n        if (Object.defineProperty && (!env.browser.ie || env.browser.version > 8)) {\n            createLegacyProperty('position', '_legacyPos', 'x', 'y');\n            createLegacyProperty('scale', '_legacyScale', 'scaleX', 'scaleY');\n            createLegacyProperty('origin', '_legacyOrigin', 'originX', 'originY');\n        }\n    })();\n    return Element;\n}());\nmixin(Element, Eventful);\nmixin(Element, Transformable);\nfunction animateTo(animatable, target, cfg, animationProps, reverse) {\n    cfg = cfg || {};\n    var animators = [];\n    animateToShallow(animatable, '', animatable, target, cfg, animationProps, animators, reverse);\n    var finishCount = animators.length;\n    var doneHappened = false;\n    var cfgDone = cfg.done;\n    var cfgAborted = cfg.aborted;\n    var doneCb = function () {\n        doneHappened = true;\n        finishCount--;\n        if (finishCount <= 0) {\n            doneHappened\n                ? (cfgDone && cfgDone())\n                : (cfgAborted && cfgAborted());\n        }\n    };\n    var abortedCb = function () {\n        finishCount--;\n        if (finishCount <= 0) {\n            doneHappened\n                ? (cfgDone && cfgDone())\n                : (cfgAborted && cfgAborted());\n        }\n    };\n    if (!finishCount) {\n        cfgDone && cfgDone();\n    }\n    if (animators.length > 0 && cfg.during) {\n        animators[0].during(function (target, percent) {\n            cfg.during(percent);\n        });\n    }\n    for (var i = 0; i < animators.length; i++) {\n        var animator = animators[i];\n        if (doneCb) {\n            animator.done(doneCb);\n        }\n        if (abortedCb) {\n            animator.aborted(abortedCb);\n        }\n        animator.start(cfg.easing, cfg.force);\n    }\n    return animators;\n}\nfunction copyArrShallow(source, target, len) {\n    for (var i = 0; i < len; i++) {\n        source[i] = target[i];\n    }\n}\nfunction is2DArray(value) {\n    return isArrayLike(value[0]);\n}\nfunction copyValue(target, source, key) {\n    if (isArrayLike(source[key])) {\n        if (!isArrayLike(target[key])) {\n            target[key] = [];\n        }\n        if (isTypedArray(source[key])) {\n            var len = source[key].length;\n            if (target[key].length !== len) {\n                target[key] = new (source[key].constructor)(len);\n                copyArrShallow(target[key], source[key], len);\n            }\n        }\n        else {\n            var sourceArr = source[key];\n            var targetArr = target[key];\n            var len0 = sourceArr.length;\n            if (is2DArray(sourceArr)) {\n                var len1 = sourceArr[0].length;\n                for (var i = 0; i < len0; i++) {\n                    if (!targetArr[i]) {\n                        targetArr[i] = Array.prototype.slice.call(sourceArr[i]);\n                    }\n                    else {\n                        copyArrShallow(targetArr[i], sourceArr[i], len1);\n                    }\n                }\n            }\n            else {\n                copyArrShallow(targetArr, sourceArr, len0);\n            }\n            targetArr.length = sourceArr.length;\n        }\n    }\n    else {\n        target[key] = source[key];\n    }\n}\nfunction animateToShallow(animatable, topKey, source, target, cfg, animationProps, animators, reverse) {\n    var animatableKeys = [];\n    var changedKeys = [];\n    var targetKeys = keys(target);\n    var duration = cfg.duration;\n    var delay = cfg.delay;\n    var additive = cfg.additive;\n    var setToFinal = cfg.setToFinal;\n    var animateAll = !isObject(animationProps);\n    for (var k = 0; k < targetKeys.length; k++) {\n        var innerKey = targetKeys[k];\n        if (source[innerKey] != null\n            && target[innerKey] != null\n            && (animateAll || animationProps[innerKey])) {\n            if (isObject(target[innerKey]) && !isArrayLike(target[innerKey])) {\n                if (topKey) {\n                    if (!reverse) {\n                        source[innerKey] = target[innerKey];\n                        animatable.updateDuringAnimation(topKey);\n                    }\n                    continue;\n                }\n                animateToShallow(animatable, innerKey, source[innerKey], target[innerKey], cfg, animationProps && animationProps[innerKey], animators, reverse);\n            }\n            else {\n                animatableKeys.push(innerKey);\n                changedKeys.push(innerKey);\n            }\n        }\n        else if (!reverse) {\n            source[innerKey] = target[innerKey];\n            animatable.updateDuringAnimation(topKey);\n            changedKeys.push(innerKey);\n        }\n    }\n    var keyLen = animatableKeys.length;\n    if (keyLen > 0\n        || (cfg.force && !animators.length)) {\n        var existsAnimators = animatable.animators;\n        var existsAnimatorsOnSameTarget = [];\n        for (var i = 0; i < existsAnimators.length; i++) {\n            if (existsAnimators[i].targetName === topKey) {\n                existsAnimatorsOnSameTarget.push(existsAnimators[i]);\n            }\n        }\n        if (!additive && existsAnimatorsOnSameTarget.length) {\n            for (var i = 0; i < existsAnimatorsOnSameTarget.length; i++) {\n                var allAborted = existsAnimatorsOnSameTarget[i].stopTracks(changedKeys);\n                if (allAborted) {\n                    var idx = indexOf(existsAnimators, existsAnimatorsOnSameTarget[i]);\n                    existsAnimators.splice(idx, 1);\n                }\n            }\n        }\n        var revertedSource = void 0;\n        var reversedTarget = void 0;\n        var sourceClone = void 0;\n        if (reverse) {\n            reversedTarget = {};\n            if (setToFinal) {\n                revertedSource = {};\n            }\n            for (var i = 0; i < keyLen; i++) {\n                var innerKey = animatableKeys[i];\n                reversedTarget[innerKey] = source[innerKey];\n                if (setToFinal) {\n                    revertedSource[innerKey] = target[innerKey];\n                }\n                else {\n                    source[innerKey] = target[innerKey];\n                }\n            }\n        }\n        else if (setToFinal) {\n            sourceClone = {};\n            for (var i = 0; i < keyLen; i++) {\n                var innerKey = animatableKeys[i];\n                sourceClone[innerKey] = cloneValue(source[innerKey]);\n                copyValue(source, target, innerKey);\n            }\n        }\n        var animator = new Animator(source, false, additive ? existsAnimatorsOnSameTarget : null);\n        animator.targetName = topKey;\n        if (cfg.scope) {\n            animator.scope = cfg.scope;\n        }\n        if (setToFinal && revertedSource) {\n            animator.whenWithKeys(0, revertedSource, animatableKeys);\n        }\n        if (sourceClone) {\n            animator.whenWithKeys(0, sourceClone, animatableKeys);\n        }\n        animator.whenWithKeys(duration == null ? 500 : duration, reverse ? reversedTarget : target, animatableKeys).delay(delay || 0);\n        animatable.addAnimator(animator, topKey);\n        animators.push(animator);\n    }\n}\nexport default Element;\n","var DEFAULT_MIN_MERGE = 32;\nvar DEFAULT_MIN_GALLOPING = 7;\nvar DEFAULT_TMP_STORAGE_LENGTH = 256;\nfunction minRunLength(n) {\n    var r = 0;\n    while (n >= DEFAULT_MIN_MERGE) {\n        r |= n & 1;\n        n >>= 1;\n    }\n    return n + r;\n}\nfunction makeAscendingRun(array, lo, hi, compare) {\n    var runHi = lo + 1;\n    if (runHi === hi) {\n        return 1;\n    }\n    if (compare(array[runHi++], array[lo]) < 0) {\n        while (runHi < hi && compare(array[runHi], array[runHi - 1]) < 0) {\n            runHi++;\n        }\n        reverseRun(array, lo, runHi);\n    }\n    else {\n        while (runHi < hi && compare(array[runHi], array[runHi - 1]) >= 0) {\n            runHi++;\n        }\n    }\n    return runHi - lo;\n}\nfunction reverseRun(array, lo, hi) {\n    hi--;\n    while (lo < hi) {\n        var t = array[lo];\n        array[lo++] = array[hi];\n        array[hi--] = t;\n    }\n}\nfunction binaryInsertionSort(array, lo, hi, start, compare) {\n    if (start === lo) {\n        start++;\n    }\n    for (; start < hi; start++) {\n        var pivot = array[start];\n        var left = lo;\n        var right = start;\n        var mid;\n        while (left < right) {\n            mid = left + right >>> 1;\n            if (compare(pivot, array[mid]) < 0) {\n                right = mid;\n            }\n            else {\n                left = mid + 1;\n            }\n        }\n        var n = start - left;\n        switch (n) {\n            case 3:\n                array[left + 3] = array[left + 2];\n            case 2:\n                array[left + 2] = array[left + 1];\n            case 1:\n                array[left + 1] = array[left];\n                break;\n            default:\n                while (n > 0) {\n                    array[left + n] = array[left + n - 1];\n                    n--;\n                }\n        }\n        array[left] = pivot;\n    }\n}\nfunction gallopLeft(value, array, start, length, hint, compare) {\n    var lastOffset = 0;\n    var maxOffset = 0;\n    var offset = 1;\n    if (compare(value, array[start + hint]) > 0) {\n        maxOffset = length - hint;\n        while (offset < maxOffset && compare(value, array[start + hint + offset]) > 0) {\n            lastOffset = offset;\n            offset = (offset << 1) + 1;\n            if (offset <= 0) {\n                offset = maxOffset;\n            }\n        }\n        if (offset > maxOffset) {\n            offset = maxOffset;\n        }\n        lastOffset += hint;\n        offset += hint;\n    }\n    else {\n        maxOffset = hint + 1;\n        while (offset < maxOffset && compare(value, array[start + hint - offset]) <= 0) {\n            lastOffset = offset;\n            offset = (offset << 1) + 1;\n            if (offset <= 0) {\n                offset = maxOffset;\n            }\n        }\n        if (offset > maxOffset) {\n            offset = maxOffset;\n        }\n        var tmp = lastOffset;\n        lastOffset = hint - offset;\n        offset = hint - tmp;\n    }\n    lastOffset++;\n    while (lastOffset < offset) {\n        var m = lastOffset + (offset - lastOffset >>> 1);\n        if (compare(value, array[start + m]) > 0) {\n            lastOffset = m + 1;\n        }\n        else {\n            offset = m;\n        }\n    }\n    return offset;\n}\nfunction gallopRight(value, array, start, length, hint, compare) {\n    var lastOffset = 0;\n    var maxOffset = 0;\n    var offset = 1;\n    if (compare(value, array[start + hint]) < 0) {\n        maxOffset = hint + 1;\n        while (offset < maxOffset && compare(value, array[start + hint - offset]) < 0) {\n            lastOffset = offset;\n            offset = (offset << 1) + 1;\n            if (offset <= 0) {\n                offset = maxOffset;\n            }\n        }\n        if (offset > maxOffset) {\n            offset = maxOffset;\n        }\n        var tmp = lastOffset;\n        lastOffset = hint - offset;\n        offset = hint - tmp;\n    }\n    else {\n        maxOffset = length - hint;\n        while (offset < maxOffset && compare(value, array[start + hint + offset]) >= 0) {\n            lastOffset = offset;\n            offset = (offset << 1) + 1;\n            if (offset <= 0) {\n                offset = maxOffset;\n            }\n        }\n        if (offset > maxOffset) {\n            offset = maxOffset;\n        }\n        lastOffset += hint;\n        offset += hint;\n    }\n    lastOffset++;\n    while (lastOffset < offset) {\n        var m = lastOffset + (offset - lastOffset >>> 1);\n        if (compare(value, array[start + m]) < 0) {\n            offset = m;\n        }\n        else {\n            lastOffset = m + 1;\n        }\n    }\n    return offset;\n}\nfunction TimSort(array, compare) {\n    var minGallop = DEFAULT_MIN_GALLOPING;\n    var length = 0;\n    var tmpStorageLength = DEFAULT_TMP_STORAGE_LENGTH;\n    var stackLength = 0;\n    var runStart;\n    var runLength;\n    var stackSize = 0;\n    length = array.length;\n    if (length < 2 * DEFAULT_TMP_STORAGE_LENGTH) {\n        tmpStorageLength = length >>> 1;\n    }\n    var tmp = [];\n    stackLength = length < 120 ? 5 : length < 1542 ? 10 : length < 119151 ? 19 : 40;\n    runStart = [];\n    runLength = [];\n    function pushRun(_runStart, _runLength) {\n        runStart[stackSize] = _runStart;\n        runLength[stackSize] = _runLength;\n        stackSize += 1;\n    }\n    function mergeRuns() {\n        while (stackSize > 1) {\n            var n = stackSize - 2;\n            if ((n >= 1 && runLength[n - 1] <= runLength[n] + runLength[n + 1])\n                || (n >= 2 && runLength[n - 2] <= runLength[n] + runLength[n - 1])) {\n                if (runLength[n - 1] < runLength[n + 1]) {\n                    n--;\n                }\n            }\n            else if (runLength[n] > runLength[n + 1]) {\n                break;\n            }\n            mergeAt(n);\n        }\n    }\n    function forceMergeRuns() {\n        while (stackSize > 1) {\n            var n = stackSize - 2;\n            if (n > 0 && runLength[n - 1] < runLength[n + 1]) {\n                n--;\n            }\n            mergeAt(n);\n        }\n    }\n    function mergeAt(i) {\n        var start1 = runStart[i];\n        var length1 = runLength[i];\n        var start2 = runStart[i + 1];\n        var length2 = runLength[i + 1];\n        runLength[i] = length1 + length2;\n        if (i === stackSize - 3) {\n            runStart[i + 1] = runStart[i + 2];\n            runLength[i + 1] = runLength[i + 2];\n        }\n        stackSize--;\n        var k = gallopRight(array[start2], array, start1, length1, 0, compare);\n        start1 += k;\n        length1 -= k;\n        if (length1 === 0) {\n            return;\n        }\n        length2 = gallopLeft(array[start1 + length1 - 1], array, start2, length2, length2 - 1, compare);\n        if (length2 === 0) {\n            return;\n        }\n        if (length1 <= length2) {\n            mergeLow(start1, length1, start2, length2);\n        }\n        else {\n            mergeHigh(start1, length1, start2, length2);\n        }\n    }\n    function mergeLow(start1, length1, start2, length2) {\n        var i = 0;\n        for (i = 0; i < length1; i++) {\n            tmp[i] = array[start1 + i];\n        }\n        var cursor1 = 0;\n        var cursor2 = start2;\n        var dest = start1;\n        array[dest++] = array[cursor2++];\n        if (--length2 === 0) {\n            for (i = 0; i < length1; i++) {\n                array[dest + i] = tmp[cursor1 + i];\n            }\n            return;\n        }\n        if (length1 === 1) {\n            for (i = 0; i < length2; i++) {\n                array[dest + i] = array[cursor2 + i];\n            }\n            array[dest + length2] = tmp[cursor1];\n            return;\n        }\n        var _minGallop = minGallop;\n        var count1;\n        var count2;\n        var exit;\n        while (1) {\n            count1 = 0;\n            count2 = 0;\n            exit = false;\n            do {\n                if (compare(array[cursor2], tmp[cursor1]) < 0) {\n                    array[dest++] = array[cursor2++];\n                    count2++;\n                    count1 = 0;\n                    if (--length2 === 0) {\n                        exit = true;\n                        break;\n                    }\n                }\n                else {\n                    array[dest++] = tmp[cursor1++];\n                    count1++;\n                    count2 = 0;\n                    if (--length1 === 1) {\n                        exit = true;\n                        break;\n                    }\n                }\n            } while ((count1 | count2) < _minGallop);\n            if (exit) {\n                break;\n            }\n            do {\n                count1 = gallopRight(array[cursor2], tmp, cursor1, length1, 0, compare);\n                if (count1 !== 0) {\n                    for (i = 0; i < count1; i++) {\n                        array[dest + i] = tmp[cursor1 + i];\n                    }\n                    dest += count1;\n                    cursor1 += count1;\n                    length1 -= count1;\n                    if (length1 <= 1) {\n                        exit = true;\n                        break;\n                    }\n                }\n                array[dest++] = array[cursor2++];\n                if (--length2 === 0) {\n                    exit = true;\n                    break;\n                }\n                count2 = gallopLeft(tmp[cursor1], array, cursor2, length2, 0, compare);\n                if (count2 !== 0) {\n                    for (i = 0; i < count2; i++) {\n                        array[dest + i] = array[cursor2 + i];\n                    }\n                    dest += count2;\n                    cursor2 += count2;\n                    length2 -= count2;\n                    if (length2 === 0) {\n                        exit = true;\n                        break;\n                    }\n                }\n                array[dest++] = tmp[cursor1++];\n                if (--length1 === 1) {\n                    exit = true;\n                    break;\n                }\n                _minGallop--;\n            } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\n            if (exit) {\n                break;\n            }\n            if (_minGallop < 0) {\n                _minGallop = 0;\n            }\n            _minGallop += 2;\n        }\n        minGallop = _minGallop;\n        minGallop < 1 && (minGallop = 1);\n        if (length1 === 1) {\n            for (i = 0; i < length2; i++) {\n                array[dest + i] = array[cursor2 + i];\n            }\n            array[dest + length2] = tmp[cursor1];\n        }\n        else if (length1 === 0) {\n            throw new Error();\n        }\n        else {\n            for (i = 0; i < length1; i++) {\n                array[dest + i] = tmp[cursor1 + i];\n            }\n        }\n    }\n    function mergeHigh(start1, length1, start2, length2) {\n        var i = 0;\n        for (i = 0; i < length2; i++) {\n            tmp[i] = array[start2 + i];\n        }\n        var cursor1 = start1 + length1 - 1;\n        var cursor2 = length2 - 1;\n        var dest = start2 + length2 - 1;\n        var customCursor = 0;\n        var customDest = 0;\n        array[dest--] = array[cursor1--];\n        if (--length1 === 0) {\n            customCursor = dest - (length2 - 1);\n            for (i = 0; i < length2; i++) {\n                array[customCursor + i] = tmp[i];\n            }\n            return;\n        }\n        if (length2 === 1) {\n            dest -= length1;\n            cursor1 -= length1;\n            customDest = dest + 1;\n            customCursor = cursor1 + 1;\n            for (i = length1 - 1; i >= 0; i--) {\n                array[customDest + i] = array[customCursor + i];\n            }\n            array[dest] = tmp[cursor2];\n            return;\n        }\n        var _minGallop = minGallop;\n        while (true) {\n            var count1 = 0;\n            var count2 = 0;\n            var exit = false;\n            do {\n                if (compare(tmp[cursor2], array[cursor1]) < 0) {\n                    array[dest--] = array[cursor1--];\n                    count1++;\n                    count2 = 0;\n                    if (--length1 === 0) {\n                        exit = true;\n                        break;\n                    }\n                }\n                else {\n                    array[dest--] = tmp[cursor2--];\n                    count2++;\n                    count1 = 0;\n                    if (--length2 === 1) {\n                        exit = true;\n                        break;\n                    }\n                }\n            } while ((count1 | count2) < _minGallop);\n            if (exit) {\n                break;\n            }\n            do {\n                count1 = length1 - gallopRight(tmp[cursor2], array, start1, length1, length1 - 1, compare);\n                if (count1 !== 0) {\n                    dest -= count1;\n                    cursor1 -= count1;\n                    length1 -= count1;\n                    customDest = dest + 1;\n                    customCursor = cursor1 + 1;\n                    for (i = count1 - 1; i >= 0; i--) {\n                        array[customDest + i] = array[customCursor + i];\n                    }\n                    if (length1 === 0) {\n                        exit = true;\n                        break;\n                    }\n                }\n                array[dest--] = tmp[cursor2--];\n                if (--length2 === 1) {\n                    exit = true;\n                    break;\n                }\n                count2 = length2 - gallopLeft(array[cursor1], tmp, 0, length2, length2 - 1, compare);\n                if (count2 !== 0) {\n                    dest -= count2;\n                    cursor2 -= count2;\n                    length2 -= count2;\n                    customDest = dest + 1;\n                    customCursor = cursor2 + 1;\n                    for (i = 0; i < count2; i++) {\n                        array[customDest + i] = tmp[customCursor + i];\n                    }\n                    if (length2 <= 1) {\n                        exit = true;\n                        break;\n                    }\n                }\n                array[dest--] = array[cursor1--];\n                if (--length1 === 0) {\n                    exit = true;\n                    break;\n                }\n                _minGallop--;\n            } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\n            if (exit) {\n                break;\n            }\n            if (_minGallop < 0) {\n                _minGallop = 0;\n            }\n            _minGallop += 2;\n        }\n        minGallop = _minGallop;\n        if (minGallop < 1) {\n            minGallop = 1;\n        }\n        if (length2 === 1) {\n            dest -= length1;\n            cursor1 -= length1;\n            customDest = dest + 1;\n            customCursor = cursor1 + 1;\n            for (i = length1 - 1; i >= 0; i--) {\n                array[customDest + i] = array[customCursor + i];\n            }\n            array[dest] = tmp[cursor2];\n        }\n        else if (length2 === 0) {\n            throw new Error();\n        }\n        else {\n            customCursor = dest - (length2 - 1);\n            for (i = 0; i < length2; i++) {\n                array[customCursor + i] = tmp[i];\n            }\n        }\n    }\n    return {\n        mergeRuns: mergeRuns,\n        forceMergeRuns: forceMergeRuns,\n        pushRun: pushRun\n    };\n}\nexport default function sort(array, compare, lo, hi) {\n    if (!lo) {\n        lo = 0;\n    }\n    if (!hi) {\n        hi = array.length;\n    }\n    var remaining = hi - lo;\n    if (remaining < 2) {\n        return;\n    }\n    var runLength = 0;\n    if (remaining < DEFAULT_MIN_MERGE) {\n        runLength = makeAscendingRun(array, lo, hi, compare);\n        binaryInsertionSort(array, lo, hi, lo + runLength, compare);\n        return;\n    }\n    var ts = TimSort(array, compare);\n    var minRun = minRunLength(remaining);\n    do {\n        runLength = makeAscendingRun(array, lo, hi, compare);\n        if (runLength < minRun) {\n            var force = remaining;\n            if (force > minRun) {\n                force = minRun;\n            }\n            binaryInsertionSort(array, lo, lo + force, lo + runLength, compare);\n            runLength = force;\n        }\n        ts.pushRun(lo, runLength);\n        ts.mergeRuns();\n        remaining -= runLength;\n        lo += runLength;\n    } while (remaining !== 0);\n    ts.forceMergeRuns();\n}\n","import * as util from './core/util';\nimport env from './core/env';\nimport Element from './Element';\nimport timsort from './core/timsort';\nvar invalidZErrorLogged = false;\nfunction logInvalidZError() {\n    if (invalidZErrorLogged) {\n        return;\n    }\n    invalidZErrorLogged = true;\n    console.warn('z / z2 / zlevel of displayable is invalid, which may cause unexpected errors');\n}\nfunction shapeCompareFunc(a, b) {\n    if (a.zlevel === b.zlevel) {\n        if (a.z === b.z) {\n            return a.z2 - b.z2;\n        }\n        return a.z - b.z;\n    }\n    return a.zlevel - b.zlevel;\n}\nvar Storage = (function () {\n    function Storage() {\n        this._roots = [];\n        this._displayList = [];\n        this._displayListLen = 0;\n        this.displayableSortFunc = shapeCompareFunc;\n    }\n    Storage.prototype.traverse = function (cb, context) {\n        for (var i = 0; i < this._roots.length; i++) {\n            this._roots[i].traverse(cb, context);\n        }\n    };\n    Storage.prototype.getDisplayList = function (update, includeIgnore) {\n        includeIgnore = includeIgnore || false;\n        var displayList = this._displayList;\n        if (update || !displayList.length) {\n            this.updateDisplayList(includeIgnore);\n        }\n        return displayList;\n    };\n    Storage.prototype.updateDisplayList = function (includeIgnore) {\n        this._displayListLen = 0;\n        var roots = this._roots;\n        var displayList = this._displayList;\n        for (var i = 0, len = roots.length; i < len; i++) {\n            this._updateAndAddDisplayable(roots[i], null, includeIgnore);\n        }\n        displayList.length = this._displayListLen;\n        env.canvasSupported && timsort(displayList, shapeCompareFunc);\n    };\n    Storage.prototype._updateAndAddDisplayable = function (el, clipPaths, includeIgnore) {\n        if (el.ignore && !includeIgnore) {\n            return;\n        }\n        el.beforeUpdate();\n        el.update();\n        el.afterUpdate();\n        var userSetClipPath = el.getClipPath();\n        if (el.ignoreClip) {\n            clipPaths = null;\n        }\n        else if (userSetClipPath) {\n            if (clipPaths) {\n                clipPaths = clipPaths.slice();\n            }\n            else {\n                clipPaths = [];\n            }\n            var currentClipPath = userSetClipPath;\n            var parentClipPath = el;\n            while (currentClipPath) {\n                currentClipPath.parent = parentClipPath;\n                currentClipPath.updateTransform();\n                clipPaths.push(currentClipPath);\n                parentClipPath = currentClipPath;\n                currentClipPath = currentClipPath.getClipPath();\n            }\n        }\n        if (el.childrenRef) {\n            var children = el.childrenRef();\n            for (var i = 0; i < children.length; i++) {\n                var child = children[i];\n                if (el.__dirty) {\n                    child.__dirty |= Element.REDARAW_BIT;\n                }\n                this._updateAndAddDisplayable(child, clipPaths, includeIgnore);\n            }\n            el.__dirty = 0;\n        }\n        else {\n            var disp = el;\n            if (clipPaths && clipPaths.length) {\n                disp.__clipPaths = clipPaths;\n            }\n            else if (disp.__clipPaths && disp.__clipPaths.length > 0) {\n                disp.__clipPaths = [];\n            }\n            if (isNaN(disp.z)) {\n                logInvalidZError();\n                disp.z = 0;\n            }\n            if (isNaN(disp.z2)) {\n                logInvalidZError();\n                disp.z2 = 0;\n            }\n            if (isNaN(disp.zlevel)) {\n                logInvalidZError();\n                disp.zlevel = 0;\n            }\n            this._displayList[this._displayListLen++] = disp;\n        }\n        var decalEl = el.getDecalElement && el.getDecalElement();\n        if (decalEl) {\n            this._updateAndAddDisplayable(decalEl, clipPaths, includeIgnore);\n        }\n        var textGuide = el.getTextGuideLine();\n        if (textGuide) {\n            this._updateAndAddDisplayable(textGuide, clipPaths, includeIgnore);\n        }\n        var textEl = el.getTextContent();\n        if (textEl) {\n            this._updateAndAddDisplayable(textEl, clipPaths, includeIgnore);\n        }\n    };\n    Storage.prototype.addRoot = function (el) {\n        if (el.__zr && el.__zr.storage === this) {\n            return;\n        }\n        this._roots.push(el);\n    };\n    Storage.prototype.delRoot = function (el) {\n        if (el instanceof Array) {\n            for (var i = 0, l = el.length; i < l; i++) {\n                this.delRoot(el[i]);\n            }\n            return;\n        }\n        var idx = util.indexOf(this._roots, el);\n        if (idx >= 0) {\n            this._roots.splice(idx, 1);\n        }\n    };\n    Storage.prototype.delAllRoots = function () {\n        this._roots = [];\n        this._displayList = [];\n        this._displayListLen = 0;\n        return;\n    };\n    Storage.prototype.getRoots = function () {\n        return this._roots;\n    };\n    Storage.prototype.dispose = function () {\n        this._displayList = null;\n        this._roots = null;\n    };\n    return Storage;\n}());\nexport default Storage;\n","var requestAnimationFrame;\nrequestAnimationFrame = (typeof window !== 'undefined'\n    && ((window.requestAnimationFrame && window.requestAnimationFrame.bind(window))\n        || (window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window))\n        || window.mozRequestAnimationFrame\n        || window.webkitRequestAnimationFrame)) || function (func) {\n    return setTimeout(func, 16);\n};\nexport default requestAnimationFrame;\n","import { __extends } from \"tslib\";\nimport Eventful from '../core/Eventful';\nimport requestAnimationFrame from './requestAnimationFrame';\nimport Animator from './Animator';\nvar Animation = (function (_super) {\n    __extends(Animation, _super);\n    function Animation(opts) {\n        var _this = _super.call(this) || this;\n        _this._running = false;\n        _this._time = 0;\n        _this._pausedTime = 0;\n        _this._pauseStart = 0;\n        _this._paused = false;\n        opts = opts || {};\n        _this.stage = opts.stage || {};\n        _this.onframe = opts.onframe || function () { };\n        return _this;\n    }\n    Animation.prototype.addClip = function (clip) {\n        if (clip.animation) {\n            this.removeClip(clip);\n        }\n        if (!this._clipsHead) {\n            this._clipsHead = this._clipsTail = clip;\n        }\n        else {\n            this._clipsTail.next = clip;\n            clip.prev = this._clipsTail;\n            clip.next = null;\n            this._clipsTail = clip;\n        }\n        clip.animation = this;\n    };\n    Animation.prototype.addAnimator = function (animator) {\n        animator.animation = this;\n        var clip = animator.getClip();\n        if (clip) {\n            this.addClip(clip);\n        }\n    };\n    Animation.prototype.removeClip = function (clip) {\n        if (!clip.animation) {\n            return;\n        }\n        var prev = clip.prev;\n        var next = clip.next;\n        if (prev) {\n            prev.next = next;\n        }\n        else {\n            this._clipsHead = next;\n        }\n        if (next) {\n            next.prev = prev;\n        }\n        else {\n            this._clipsTail = prev;\n        }\n        clip.next = clip.prev = clip.animation = null;\n    };\n    Animation.prototype.removeAnimator = function (animator) {\n        var clip = animator.getClip();\n        if (clip) {\n            this.removeClip(clip);\n        }\n        animator.animation = null;\n    };\n    Animation.prototype.update = function (notTriggerFrameAndStageUpdate) {\n        var time = new Date().getTime() - this._pausedTime;\n        var delta = time - this._time;\n        var clip = this._clipsHead;\n        while (clip) {\n            var nextClip = clip.next;\n            var finished = clip.step(time, delta);\n            if (finished) {\n                clip.ondestroy && clip.ondestroy();\n                this.removeClip(clip);\n                clip = nextClip;\n            }\n            else {\n                clip = nextClip;\n            }\n        }\n        this._time = time;\n        if (!notTriggerFrameAndStageUpdate) {\n            this.onframe(delta);\n            this.trigger('frame', delta);\n            this.stage.update && this.stage.update();\n        }\n    };\n    Animation.prototype._startLoop = function () {\n        var self = this;\n        this._running = true;\n        function step() {\n            if (self._running) {\n                requestAnimationFrame(step);\n                !self._paused && self.update();\n            }\n        }\n        requestAnimationFrame(step);\n    };\n    Animation.prototype.start = function () {\n        if (this._running) {\n            return;\n        }\n        this._time = new Date().getTime();\n        this._pausedTime = 0;\n        this._startLoop();\n    };\n    Animation.prototype.stop = function () {\n        this._running = false;\n    };\n    Animation.prototype.pause = function () {\n        if (!this._paused) {\n            this._pauseStart = new Date().getTime();\n            this._paused = true;\n        }\n    };\n    Animation.prototype.resume = function () {\n        if (this._paused) {\n            this._pausedTime += (new Date().getTime()) - this._pauseStart;\n            this._paused = false;\n        }\n    };\n    Animation.prototype.clear = function () {\n        var clip = this._clipsHead;\n        while (clip) {\n            var nextClip = clip.next;\n            clip.prev = clip.next = clip.animation = null;\n            clip = nextClip;\n        }\n        this._clipsHead = this._clipsTail = null;\n    };\n    Animation.prototype.isFinished = function () {\n        return this._clipsHead == null;\n    };\n    Animation.prototype.animate = function (target, options) {\n        options = options || {};\n        this.start();\n        var animator = new Animator(target, options.loop);\n        this.addAnimator(animator);\n        return animator;\n    };\n    return Animation;\n}(Eventful));\nexport default Animation;\n","import { __extends } from \"tslib\";\nimport { addEventListener, removeEventListener, normalizeEvent, getNativeEvent } from '../core/event';\nimport * as zrUtil from '../core/util';\nimport Eventful from '../core/Eventful';\nimport env from '../core/env';\nvar TOUCH_CLICK_DELAY = 300;\nvar globalEventSupported = env.domSupported;\nvar localNativeListenerNames = (function () {\n    var mouseHandlerNames = [\n        'click', 'dblclick', 'mousewheel', 'wheel', 'mouseout',\n        'mouseup', 'mousedown', 'mousemove', 'contextmenu'\n    ];\n    var touchHandlerNames = [\n        'touchstart', 'touchend', 'touchmove'\n    ];\n    var pointerEventNameMap = {\n        pointerdown: 1, pointerup: 1, pointermove: 1, pointerout: 1\n    };\n    var pointerHandlerNames = zrUtil.map(mouseHandlerNames, function (name) {\n        var nm = name.replace('mouse', 'pointer');\n        return pointerEventNameMap.hasOwnProperty(nm) ? nm : name;\n    });\n    return {\n        mouse: mouseHandlerNames,\n        touch: touchHandlerNames,\n        pointer: pointerHandlerNames\n    };\n})();\nvar globalNativeListenerNames = {\n    mouse: ['mousemove', 'mouseup'],\n    pointer: ['pointermove', 'pointerup']\n};\nvar wheelEventSupported = false;\nfunction isPointerFromTouch(event) {\n    var pointerType = event.pointerType;\n    return pointerType === 'pen' || pointerType === 'touch';\n}\nfunction setTouchTimer(scope) {\n    scope.touching = true;\n    if (scope.touchTimer != null) {\n        clearTimeout(scope.touchTimer);\n        scope.touchTimer = null;\n    }\n    scope.touchTimer = setTimeout(function () {\n        scope.touching = false;\n        scope.touchTimer = null;\n    }, 700);\n}\nfunction markTouch(event) {\n    event && (event.zrByTouch = true);\n}\nfunction normalizeGlobalEvent(instance, event) {\n    return normalizeEvent(instance.dom, new FakeGlobalEvent(instance, event), true);\n}\nfunction isLocalEl(instance, el) {\n    var elTmp = el;\n    var isLocal = false;\n    while (elTmp && elTmp.nodeType !== 9\n        && !(isLocal = elTmp.domBelongToZr\n            || (elTmp !== el && elTmp === instance.painterRoot))) {\n        elTmp = elTmp.parentNode;\n    }\n    return isLocal;\n}\nvar FakeGlobalEvent = (function () {\n    function FakeGlobalEvent(instance, event) {\n        this.stopPropagation = zrUtil.noop;\n        this.stopImmediatePropagation = zrUtil.noop;\n        this.preventDefault = zrUtil.noop;\n        this.type = event.type;\n        this.target = this.currentTarget = instance.dom;\n        this.pointerType = event.pointerType;\n        this.clientX = event.clientX;\n        this.clientY = event.clientY;\n    }\n    return FakeGlobalEvent;\n}());\nvar localDOMHandlers = {\n    mousedown: function (event) {\n        event = normalizeEvent(this.dom, event);\n        this.__mayPointerCapture = [event.zrX, event.zrY];\n        this.trigger('mousedown', event);\n    },\n    mousemove: function (event) {\n        event = normalizeEvent(this.dom, event);\n        var downPoint = this.__mayPointerCapture;\n        if (downPoint && (event.zrX !== downPoint[0] || event.zrY !== downPoint[1])) {\n            this.__togglePointerCapture(true);\n        }\n        this.trigger('mousemove', event);\n    },\n    mouseup: function (event) {\n        event = normalizeEvent(this.dom, event);\n        this.__togglePointerCapture(false);\n        this.trigger('mouseup', event);\n    },\n    mouseout: function (event) {\n        event = normalizeEvent(this.dom, event);\n        var element = event.toElement || event.relatedTarget;\n        if (!isLocalEl(this, element)) {\n            if (this.__pointerCapturing) {\n                event.zrEventControl = 'no_globalout';\n            }\n            this.trigger('mouseout', event);\n        }\n    },\n    wheel: function (event) {\n        wheelEventSupported = true;\n        event = normalizeEvent(this.dom, event);\n        this.trigger('mousewheel', event);\n    },\n    mousewheel: function (event) {\n        if (wheelEventSupported) {\n            return;\n        }\n        event = normalizeEvent(this.dom, event);\n        this.trigger('mousewheel', event);\n    },\n    touchstart: function (event) {\n        event = normalizeEvent(this.dom, event);\n        markTouch(event);\n        this.__lastTouchMoment = new Date();\n        this.handler.processGesture(event, 'start');\n        localDOMHandlers.mousemove.call(this, event);\n        localDOMHandlers.mousedown.call(this, event);\n    },\n    touchmove: function (event) {\n        event = normalizeEvent(this.dom, event);\n        markTouch(event);\n        this.handler.processGesture(event, 'change');\n        localDOMHandlers.mousemove.call(this, event);\n    },\n    touchend: function (event) {\n        event = normalizeEvent(this.dom, event);\n        markTouch(event);\n        this.handler.processGesture(event, 'end');\n        localDOMHandlers.mouseup.call(this, event);\n        if (+new Date() - (+this.__lastTouchMoment) < TOUCH_CLICK_DELAY) {\n            localDOMHandlers.click.call(this, event);\n        }\n    },\n    pointerdown: function (event) {\n        localDOMHandlers.mousedown.call(this, event);\n    },\n    pointermove: function (event) {\n        if (!isPointerFromTouch(event)) {\n            localDOMHandlers.mousemove.call(this, event);\n        }\n    },\n    pointerup: function (event) {\n        localDOMHandlers.mouseup.call(this, event);\n    },\n    pointerout: function (event) {\n        if (!isPointerFromTouch(event)) {\n            localDOMHandlers.mouseout.call(this, event);\n        }\n    }\n};\nzrUtil.each(['click', 'dblclick', 'contextmenu'], function (name) {\n    localDOMHandlers[name] = function (event) {\n        event = normalizeEvent(this.dom, event);\n        this.trigger(name, event);\n    };\n});\nvar globalDOMHandlers = {\n    pointermove: function (event) {\n        if (!isPointerFromTouch(event)) {\n            globalDOMHandlers.mousemove.call(this, event);\n        }\n    },\n    pointerup: function (event) {\n        globalDOMHandlers.mouseup.call(this, event);\n    },\n    mousemove: function (event) {\n        this.trigger('mousemove', event);\n    },\n    mouseup: function (event) {\n        var pointerCaptureReleasing = this.__pointerCapturing;\n        this.__togglePointerCapture(false);\n        this.trigger('mouseup', event);\n        if (pointerCaptureReleasing) {\n            event.zrEventControl = 'only_globalout';\n            this.trigger('mouseout', event);\n        }\n    }\n};\nfunction mountLocalDOMEventListeners(instance, scope) {\n    var domHandlers = scope.domHandlers;\n    if (env.pointerEventsSupported) {\n        zrUtil.each(localNativeListenerNames.pointer, function (nativeEventName) {\n            mountSingleDOMEventListener(scope, nativeEventName, function (event) {\n                domHandlers[nativeEventName].call(instance, event);\n            });\n        });\n    }\n    else {\n        if (env.touchEventsSupported) {\n            zrUtil.each(localNativeListenerNames.touch, function (nativeEventName) {\n                mountSingleDOMEventListener(scope, nativeEventName, function (event) {\n                    domHandlers[nativeEventName].call(instance, event);\n                    setTouchTimer(scope);\n                });\n            });\n        }\n        zrUtil.each(localNativeListenerNames.mouse, function (nativeEventName) {\n            mountSingleDOMEventListener(scope, nativeEventName, function (event) {\n                event = getNativeEvent(event);\n                if (!scope.touching) {\n                    domHandlers[nativeEventName].call(instance, event);\n                }\n            });\n        });\n    }\n}\nfunction mountGlobalDOMEventListeners(instance, scope) {\n    if (env.pointerEventsSupported) {\n        zrUtil.each(globalNativeListenerNames.pointer, mount);\n    }\n    else if (!env.touchEventsSupported) {\n        zrUtil.each(globalNativeListenerNames.mouse, mount);\n    }\n    function mount(nativeEventName) {\n        function nativeEventListener(event) {\n            event = getNativeEvent(event);\n            if (!isLocalEl(instance, event.target)) {\n                event = normalizeGlobalEvent(instance, event);\n                scope.domHandlers[nativeEventName].call(instance, event);\n            }\n        }\n        mountSingleDOMEventListener(scope, nativeEventName, nativeEventListener, { capture: true });\n    }\n}\nfunction mountSingleDOMEventListener(scope, nativeEventName, listener, opt) {\n    scope.mounted[nativeEventName] = listener;\n    scope.listenerOpts[nativeEventName] = opt;\n    addEventListener(scope.domTarget, nativeEventName, listener, opt);\n}\nfunction unmountDOMEventListeners(scope) {\n    var mounted = scope.mounted;\n    for (var nativeEventName in mounted) {\n        if (mounted.hasOwnProperty(nativeEventName)) {\n            removeEventListener(scope.domTarget, nativeEventName, mounted[nativeEventName], scope.listenerOpts[nativeEventName]);\n        }\n    }\n    scope.mounted = {};\n}\nvar DOMHandlerScope = (function () {\n    function DOMHandlerScope(domTarget, domHandlers) {\n        this.mounted = {};\n        this.listenerOpts = {};\n        this.touching = false;\n        this.domTarget = domTarget;\n        this.domHandlers = domHandlers;\n    }\n    return DOMHandlerScope;\n}());\nvar HandlerDomProxy = (function (_super) {\n    __extends(HandlerDomProxy, _super);\n    function HandlerDomProxy(dom, painterRoot) {\n        var _this = _super.call(this) || this;\n        _this.__pointerCapturing = false;\n        _this.dom = dom;\n        _this.painterRoot = painterRoot;\n        _this._localHandlerScope = new DOMHandlerScope(dom, localDOMHandlers);\n        if (globalEventSupported) {\n            _this._globalHandlerScope = new DOMHandlerScope(document, globalDOMHandlers);\n        }\n        mountLocalDOMEventListeners(_this, _this._localHandlerScope);\n        return _this;\n    }\n    HandlerDomProxy.prototype.dispose = function () {\n        unmountDOMEventListeners(this._localHandlerScope);\n        if (globalEventSupported) {\n            unmountDOMEventListeners(this._globalHandlerScope);\n        }\n    };\n    HandlerDomProxy.prototype.setCursor = function (cursorStyle) {\n        this.dom.style && (this.dom.style.cursor = cursorStyle || 'default');\n    };\n    HandlerDomProxy.prototype.__togglePointerCapture = function (isPointerCapturing) {\n        this.__mayPointerCapture = null;\n        if (globalEventSupported\n            && ((+this.__pointerCapturing) ^ (+isPointerCapturing))) {\n            this.__pointerCapturing = isPointerCapturing;\n            var globalHandlerScope = this._globalHandlerScope;\n            isPointerCapturing\n                ? mountGlobalDOMEventListeners(this, globalHandlerScope)\n                : unmountDOMEventListeners(globalHandlerScope);\n        }\n    };\n    return HandlerDomProxy;\n}(Eventful));\nexport default HandlerDomProxy;\n","import { __extends } from \"tslib\";\nimport * as zrUtil from '../core/util';\nimport Element from '../Element';\nimport BoundingRect from '../core/BoundingRect';\nvar Group = (function (_super) {\n    __extends(Group, _super);\n    function Group(opts) {\n        var _this = _super.call(this) || this;\n        _this.isGroup = true;\n        _this._children = [];\n        _this.attr(opts);\n        return _this;\n    }\n    Group.prototype.childrenRef = function () {\n        return this._children;\n    };\n    Group.prototype.children = function () {\n        return this._children.slice();\n    };\n    Group.prototype.childAt = function (idx) {\n        return this._children[idx];\n    };\n    Group.prototype.childOfName = function (name) {\n        var children = this._children;\n        for (var i = 0; i < children.length; i++) {\n            if (children[i].name === name) {\n                return children[i];\n            }\n        }\n    };\n    Group.prototype.childCount = function () {\n        return this._children.length;\n    };\n    Group.prototype.add = function (child) {\n        if (child) {\n            if (child !== this && child.parent !== this) {\n                this._children.push(child);\n                this._doAdd(child);\n            }\n            if (child.__hostTarget) {\n                throw 'This elemenet has been used as an attachment';\n            }\n        }\n        return this;\n    };\n    Group.prototype.addBefore = function (child, nextSibling) {\n        if (child && child !== this && child.parent !== this\n            && nextSibling && nextSibling.parent === this) {\n            var children = this._children;\n            var idx = children.indexOf(nextSibling);\n            if (idx >= 0) {\n                children.splice(idx, 0, child);\n                this._doAdd(child);\n            }\n        }\n        return this;\n    };\n    Group.prototype.replaceAt = function (child, index) {\n        var children = this._children;\n        var old = children[index];\n        if (child && child !== this && child.parent !== this && child !== old) {\n            children[index] = child;\n            old.parent = null;\n            var zr = this.__zr;\n            if (zr) {\n                old.removeSelfFromZr(zr);\n            }\n            this._doAdd(child);\n        }\n        return this;\n    };\n    Group.prototype._doAdd = function (child) {\n        if (child.parent) {\n            child.parent.remove(child);\n        }\n        child.parent = this;\n        var zr = this.__zr;\n        if (zr && zr !== child.__zr) {\n            child.addSelfToZr(zr);\n        }\n        zr && zr.refresh();\n    };\n    Group.prototype.remove = function (child) {\n        var zr = this.__zr;\n        var children = this._children;\n        var idx = zrUtil.indexOf(children, child);\n        if (idx < 0) {\n            return this;\n        }\n        children.splice(idx, 1);\n        child.parent = null;\n        if (zr) {\n            child.removeSelfFromZr(zr);\n        }\n        zr && zr.refresh();\n        return this;\n    };\n    Group.prototype.removeAll = function () {\n        var children = this._children;\n        var zr = this.__zr;\n        for (var i = 0; i < children.length; i++) {\n            var child = children[i];\n            if (zr) {\n                child.removeSelfFromZr(zr);\n            }\n            child.parent = null;\n        }\n        children.length = 0;\n        return this;\n    };\n    Group.prototype.eachChild = function (cb, context) {\n        var children = this._children;\n        for (var i = 0; i < children.length; i++) {\n            var child = children[i];\n            cb.call(context, child, i);\n        }\n        return this;\n    };\n    Group.prototype.traverse = function (cb, context) {\n        for (var i = 0; i < this._children.length; i++) {\n            var child = this._children[i];\n            var stopped = cb.call(context, child);\n            if (child.isGroup && !stopped) {\n                child.traverse(cb, context);\n            }\n        }\n        return this;\n    };\n    Group.prototype.addSelfToZr = function (zr) {\n        _super.prototype.addSelfToZr.call(this, zr);\n        for (var i = 0; i < this._children.length; i++) {\n            var child = this._children[i];\n            child.addSelfToZr(zr);\n        }\n    };\n    Group.prototype.removeSelfFromZr = function (zr) {\n        _super.prototype.removeSelfFromZr.call(this, zr);\n        for (var i = 0; i < this._children.length; i++) {\n            var child = this._children[i];\n            child.removeSelfFromZr(zr);\n        }\n    };\n    Group.prototype.getBoundingRect = function (includeChildren) {\n        var tmpRect = new BoundingRect(0, 0, 0, 0);\n        var children = includeChildren || this._children;\n        var tmpMat = [];\n        var rect = null;\n        for (var i = 0; i < children.length; i++) {\n            var child = children[i];\n            if (child.ignore || child.invisible) {\n                continue;\n            }\n            var childRect = child.getBoundingRect();\n            var transform = child.getLocalTransform(tmpMat);\n            if (transform) {\n                BoundingRect.applyTransform(tmpRect, childRect, transform);\n                rect = rect || tmpRect.clone();\n                rect.union(tmpRect);\n            }\n            else {\n                rect = rect || childRect.clone();\n                rect.union(childRect);\n            }\n        }\n        return rect || tmpRect;\n    };\n    return Group;\n}(Element));\nGroup.prototype.type = 'group';\nexport default Group;\n","/*!\n* ZRender, a high performance 2d drawing library.\n*\n* Copyright (c) 2013, Baidu Inc.\n* All rights reserved.\n*\n* LICENSE\n* https://github.com/ecomfe/zrender/blob/master/LICENSE.txt\n*/\nimport env from './core/env';\nimport * as zrUtil from './core/util';\nimport Handler from './Handler';\nimport Storage from './Storage';\nimport Animation from './animation/Animation';\nimport HandlerProxy from './dom/HandlerProxy';\nimport { lum } from './tool/color';\nimport { DARK_MODE_THRESHOLD } from './config';\nimport Group from './graphic/Group';\nvar useVML = !env.canvasSupported;\nvar painterCtors = {};\nvar instances = {};\nfunction delInstance(id) {\n    delete instances[id];\n}\nfunction isDarkMode(backgroundColor) {\n    if (!backgroundColor) {\n        return false;\n    }\n    if (typeof backgroundColor === 'string') {\n        return lum(backgroundColor, 1) < DARK_MODE_THRESHOLD;\n    }\n    else if (backgroundColor.colorStops) {\n        var colorStops = backgroundColor.colorStops;\n        var totalLum = 0;\n        var len = colorStops.length;\n        for (var i = 0; i < len; i++) {\n            totalLum += lum(colorStops[i].color, 1);\n        }\n        totalLum /= len;\n        return totalLum < DARK_MODE_THRESHOLD;\n    }\n    return false;\n}\nvar ZRender = (function () {\n    function ZRender(id, dom, opts) {\n        var _this = this;\n        this._sleepAfterStill = 10;\n        this._stillFrameAccum = 0;\n        this._needsRefresh = true;\n        this._needsRefreshHover = true;\n        this._darkMode = false;\n        opts = opts || {};\n        this.dom = dom;\n        this.id = id;\n        var storage = new Storage();\n        var rendererType = opts.renderer || 'canvas';\n        if (useVML) {\n            throw new Error('IE8 support has been dropped since 5.0');\n        }\n        if (!painterCtors[rendererType]) {\n            rendererType = zrUtil.keys(painterCtors)[0];\n        }\n        if (!painterCtors[rendererType]) {\n            throw new Error(\"Renderer '\" + rendererType + \"' is not imported. Please import it first.\");\n        }\n        opts.useDirtyRect = opts.useDirtyRect == null\n            ? false\n            : opts.useDirtyRect;\n        var painter = new painterCtors[rendererType](dom, storage, opts, id);\n        this.storage = storage;\n        this.painter = painter;\n        var handerProxy = (!env.node && !env.worker)\n            ? new HandlerProxy(painter.getViewportRoot(), painter.root)\n            : null;\n        this.handler = new Handler(storage, painter, handerProxy, painter.root);\n        this.animation = new Animation({\n            stage: {\n                update: function () { return _this._flush(true); }\n            }\n        });\n        this.animation.start();\n    }\n    ZRender.prototype.add = function (el) {\n        if (!el) {\n            return;\n        }\n        this.storage.addRoot(el);\n        el.addSelfToZr(this);\n        this.refresh();\n    };\n    ZRender.prototype.remove = function (el) {\n        if (!el) {\n            return;\n        }\n        this.storage.delRoot(el);\n        el.removeSelfFromZr(this);\n        this.refresh();\n    };\n    ZRender.prototype.configLayer = function (zLevel, config) {\n        if (this.painter.configLayer) {\n            this.painter.configLayer(zLevel, config);\n        }\n        this.refresh();\n    };\n    ZRender.prototype.setBackgroundColor = function (backgroundColor) {\n        if (this.painter.setBackgroundColor) {\n            this.painter.setBackgroundColor(backgroundColor);\n        }\n        this.refresh();\n        this._backgroundColor = backgroundColor;\n        this._darkMode = isDarkMode(backgroundColor);\n    };\n    ZRender.prototype.getBackgroundColor = function () {\n        return this._backgroundColor;\n    };\n    ZRender.prototype.setDarkMode = function (darkMode) {\n        this._darkMode = darkMode;\n    };\n    ZRender.prototype.isDarkMode = function () {\n        return this._darkMode;\n    };\n    ZRender.prototype.refreshImmediately = function (fromInside) {\n        if (!fromInside) {\n            this.animation.update(true);\n        }\n        this._needsRefresh = false;\n        this.painter.refresh();\n        this._needsRefresh = false;\n    };\n    ZRender.prototype.refresh = function () {\n        this._needsRefresh = true;\n        this.animation.start();\n    };\n    ZRender.prototype.flush = function () {\n        this._flush(false);\n    };\n    ZRender.prototype._flush = function (fromInside) {\n        var triggerRendered;\n        var start = new Date().getTime();\n        if (this._needsRefresh) {\n            triggerRendered = true;\n            this.refreshImmediately(fromInside);\n        }\n        if (this._needsRefreshHover) {\n            triggerRendered = true;\n            this.refreshHoverImmediately();\n        }\n        var end = new Date().getTime();\n        if (triggerRendered) {\n            this._stillFrameAccum = 0;\n            this.trigger('rendered', {\n                elapsedTime: end - start\n            });\n        }\n        else if (this._sleepAfterStill > 0) {\n            this._stillFrameAccum++;\n            if (this._stillFrameAccum > this._sleepAfterStill) {\n                this.animation.stop();\n            }\n        }\n    };\n    ZRender.prototype.setSleepAfterStill = function (stillFramesCount) {\n        this._sleepAfterStill = stillFramesCount;\n    };\n    ZRender.prototype.wakeUp = function () {\n        this.animation.start();\n        this._stillFrameAccum = 0;\n    };\n    ZRender.prototype.addHover = function (el) {\n    };\n    ZRender.prototype.removeHover = function (el) {\n    };\n    ZRender.prototype.clearHover = function () {\n    };\n    ZRender.prototype.refreshHover = function () {\n        this._needsRefreshHover = true;\n    };\n    ZRender.prototype.refreshHoverImmediately = function () {\n        this._needsRefreshHover = false;\n        if (this.painter.refreshHover && this.painter.getType() === 'canvas') {\n            this.painter.refreshHover();\n        }\n    };\n    ZRender.prototype.resize = function (opts) {\n        opts = opts || {};\n        this.painter.resize(opts.width, opts.height);\n        this.handler.resize();\n    };\n    ZRender.prototype.clearAnimation = function () {\n        this.animation.clear();\n    };\n    ZRender.prototype.getWidth = function () {\n        return this.painter.getWidth();\n    };\n    ZRender.prototype.getHeight = function () {\n        return this.painter.getHeight();\n    };\n    ZRender.prototype.pathToImage = function (e, dpr) {\n        if (this.painter.pathToImage) {\n            return this.painter.pathToImage(e, dpr);\n        }\n    };\n    ZRender.prototype.setCursorStyle = function (cursorStyle) {\n        this.handler.setCursorStyle(cursorStyle);\n    };\n    ZRender.prototype.findHover = function (x, y) {\n        return this.handler.findHover(x, y);\n    };\n    ZRender.prototype.on = function (eventName, eventHandler, context) {\n        this.handler.on(eventName, eventHandler, context);\n        return this;\n    };\n    ZRender.prototype.off = function (eventName, eventHandler) {\n        this.handler.off(eventName, eventHandler);\n    };\n    ZRender.prototype.trigger = function (eventName, event) {\n        this.handler.trigger(eventName, event);\n    };\n    ZRender.prototype.clear = function () {\n        var roots = this.storage.getRoots();\n        for (var i = 0; i < roots.length; i++) {\n            if (roots[i] instanceof Group) {\n                roots[i].removeSelfFromZr(this);\n            }\n        }\n        this.storage.delAllRoots();\n        this.painter.clear();\n    };\n    ZRender.prototype.dispose = function () {\n        this.animation.stop();\n        this.clear();\n        this.storage.dispose();\n        this.painter.dispose();\n        this.handler.dispose();\n        this.animation =\n            this.storage =\n                this.painter =\n                    this.handler = null;\n        delInstance(this.id);\n    };\n    return ZRender;\n}());\nexport function init(dom, opts) {\n    var zr = new ZRender(zrUtil.guid(), dom, opts);\n    instances[zr.id] = zr;\n    return zr;\n}\nexport function dispose(zr) {\n    zr.dispose();\n}\nexport function disposeAll() {\n    for (var key in instances) {\n        if (instances.hasOwnProperty(key)) {\n            instances[key].dispose();\n        }\n    }\n    instances = {};\n}\nexport function getInstance(id) {\n    return instances[id];\n}\nexport function registerPainter(name, Ctor) {\n    painterCtors[name] = Ctor;\n}\nexport var version = '5.0.1';\n;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar RADIAN_EPSILON = 1e-4;\n\nfunction _trim(str) {\n  return str.replace(/^\\s+|\\s+$/g, '');\n}\n\nexport function linearMap(val, domain, range, clamp) {\n  var subDomain = domain[1] - domain[0];\n  var subRange = range[1] - range[0];\n\n  if (subDomain === 0) {\n    return subRange === 0 ? range[0] : (range[0] + range[1]) / 2;\n  }\n\n  if (clamp) {\n    if (subDomain > 0) {\n      if (val <= domain[0]) {\n        return range[0];\n      } else if (val >= domain[1]) {\n        return range[1];\n      }\n    } else {\n      if (val >= domain[0]) {\n        return range[0];\n      } else if (val <= domain[1]) {\n        return range[1];\n      }\n    }\n  } else {\n    if (val === domain[0]) {\n      return range[0];\n    }\n\n    if (val === domain[1]) {\n      return range[1];\n    }\n  }\n\n  return (val - domain[0]) / subDomain * subRange + range[0];\n}\nexport function parsePercent(percent, all) {\n  switch (percent) {\n    case 'center':\n    case 'middle':\n      percent = '50%';\n      break;\n\n    case 'left':\n    case 'top':\n      percent = '0%';\n      break;\n\n    case 'right':\n    case 'bottom':\n      percent = '100%';\n      break;\n  }\n\n  if (typeof percent === 'string') {\n    if (_trim(percent).match(/%$/)) {\n      return parseFloat(percent) / 100 * all;\n    }\n\n    return parseFloat(percent);\n  }\n\n  return percent == null ? NaN : +percent;\n}\nexport function round(x, precision, returnStr) {\n  if (precision == null) {\n    precision = 10;\n  }\n\n  precision = Math.min(Math.max(0, precision), 20);\n  x = (+x).toFixed(precision);\n  return returnStr ? x : +x;\n}\nexport function asc(arr) {\n  arr.sort(function (a, b) {\n    return a - b;\n  });\n  return arr;\n}\nexport function getPrecision(val) {\n  val = +val;\n\n  if (isNaN(val)) {\n    return 0;\n  }\n\n  var e = 1;\n  var count = 0;\n\n  while (Math.round(val * e) / e !== val) {\n    e *= 10;\n    count++;\n  }\n\n  return count;\n}\nexport function getPrecisionSafe(val) {\n  var str = val.toString();\n  var eIndex = str.indexOf('e');\n\n  if (eIndex > 0) {\n    var precision = +str.slice(eIndex + 1);\n    return precision < 0 ? -precision : 0;\n  } else {\n    var dotIndex = str.indexOf('.');\n    return dotIndex < 0 ? 0 : str.length - 1 - dotIndex;\n  }\n}\nexport function getPixelPrecision(dataExtent, pixelExtent) {\n  var log = Math.log;\n  var LN10 = Math.LN10;\n  var dataQuantity = Math.floor(log(dataExtent[1] - dataExtent[0]) / LN10);\n  var sizeQuantity = Math.round(log(Math.abs(pixelExtent[1] - pixelExtent[0])) / LN10);\n  var precision = Math.min(Math.max(-dataQuantity + sizeQuantity, 0), 20);\n  return !isFinite(precision) ? 20 : precision;\n}\nexport function getPercentWithPrecision(valueList, idx, precision) {\n  if (!valueList[idx]) {\n    return 0;\n  }\n\n  var sum = zrUtil.reduce(valueList, function (acc, val) {\n    return acc + (isNaN(val) ? 0 : val);\n  }, 0);\n\n  if (sum === 0) {\n    return 0;\n  }\n\n  var digits = Math.pow(10, precision);\n  var votesPerQuota = zrUtil.map(valueList, function (val) {\n    return (isNaN(val) ? 0 : val) / sum * digits * 100;\n  });\n  var targetSeats = digits * 100;\n  var seats = zrUtil.map(votesPerQuota, function (votes) {\n    return Math.floor(votes);\n  });\n  var currentSum = zrUtil.reduce(seats, function (acc, val) {\n    return acc + val;\n  }, 0);\n  var remainder = zrUtil.map(votesPerQuota, function (votes, idx) {\n    return votes - seats[idx];\n  });\n\n  while (currentSum < targetSeats) {\n    var max = Number.NEGATIVE_INFINITY;\n    var maxId = null;\n\n    for (var i = 0, len = remainder.length; i < len; ++i) {\n      if (remainder[i] > max) {\n        max = remainder[i];\n        maxId = i;\n      }\n    }\n\n    ++seats[maxId];\n    remainder[maxId] = 0;\n    ++currentSum;\n  }\n\n  return seats[idx] / digits;\n}\nexport var MAX_SAFE_INTEGER = 9007199254740991;\nexport function remRadian(radian) {\n  var pi2 = Math.PI * 2;\n  return (radian % pi2 + pi2) % pi2;\n}\nexport function isRadianAroundZero(val) {\n  return val > -RADIAN_EPSILON && val < RADIAN_EPSILON;\n}\nvar 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)?)?)?)?)?$/;\nexport function parseDate(value) {\n  if (value instanceof Date) {\n    return value;\n  } else if (typeof value === 'string') {\n    var match = TIME_REG.exec(value);\n\n    if (!match) {\n      return new Date(NaN);\n    }\n\n    if (!match[8]) {\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);\n    } else {\n      var hour = +match[4] || 0;\n\n      if (match[8].toUpperCase() !== 'Z') {\n        hour -= +match[8].slice(0, 3);\n      }\n\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));\n    }\n  } else if (value == null) {\n    return new Date(NaN);\n  }\n\n  return new Date(Math.round(value));\n}\nexport function quantity(val) {\n  return Math.pow(10, quantityExponent(val));\n}\nexport function quantityExponent(val) {\n  if (val === 0) {\n    return 0;\n  }\n\n  var exp = Math.floor(Math.log(val) / Math.LN10);\n\n  if (val / Math.pow(10, exp) >= 10) {\n    exp++;\n  }\n\n  return exp;\n}\nexport function nice(val, round) {\n  var exponent = quantityExponent(val);\n  var exp10 = Math.pow(10, exponent);\n  var f = val / exp10;\n  var nf;\n\n  if (round) {\n    if (f < 1.5) {\n      nf = 1;\n    } else if (f < 2.5) {\n      nf = 2;\n    } else if (f < 4) {\n      nf = 3;\n    } else if (f < 7) {\n      nf = 5;\n    } else {\n      nf = 10;\n    }\n  } else {\n    if (f < 1) {\n      nf = 1;\n    } else if (f < 2) {\n      nf = 2;\n    } else if (f < 3) {\n      nf = 3;\n    } else if (f < 5) {\n      nf = 5;\n    } else {\n      nf = 10;\n    }\n  }\n\n  val = nf * exp10;\n  return exponent >= -20 ? +val.toFixed(exponent < 0 ? -exponent : 0) : val;\n}\nexport function quantile(ascArr, p) {\n  var H = (ascArr.length - 1) * p + 1;\n  var h = Math.floor(H);\n  var v = +ascArr[h - 1];\n  var e = H - h;\n  return e ? v + e * (ascArr[h] - v) : v;\n}\nexport function reformIntervals(list) {\n  list.sort(function (a, b) {\n    return littleThan(a, b, 0) ? -1 : 1;\n  });\n  var curr = -Infinity;\n  var currClose = 1;\n\n  for (var i = 0; i < list.length;) {\n    var interval = list[i].interval;\n    var close_1 = list[i].close;\n\n    for (var lg = 0; lg < 2; lg++) {\n      if (interval[lg] <= curr) {\n        interval[lg] = curr;\n        close_1[lg] = !lg ? 1 - currClose : 1;\n      }\n\n      curr = interval[lg];\n      currClose = close_1[lg];\n    }\n\n    if (interval[0] === interval[1] && close_1[0] * close_1[1] !== 1) {\n      list.splice(i, 1);\n    } else {\n      i++;\n    }\n  }\n\n  return list;\n\n  function littleThan(a, b, lg) {\n    return a.interval[lg] < b.interval[lg] || a.interval[lg] === b.interval[lg] && (a.close[lg] - b.close[lg] === (!lg ? 1 : -1) || !lg && littleThan(a, b, 1));\n  }\n}\nexport function numericToNumber(val) {\n  var valFloat = parseFloat(val);\n  return valFloat == val && (valFloat !== 0 || typeof val !== 'string' || val.indexOf('x') <= 0) ? valFloat : NaN;\n}\nexport function isNumeric(val) {\n  return !isNaN(numericToNumber(val));\n}\nexport function getRandomIdBase() {\n  return Math.round(Math.random() * 9);\n}\nexport function getGreatestCommonDividor(a, b) {\n  if (b === 0) {\n    return a;\n  }\n\n  return getGreatestCommonDividor(b, a % b);\n}\nexport function getLeastCommonMultiple(a, b) {\n  if (a == null) {\n    return b;\n  }\n\n  if (b == null) {\n    return a;\n  }\n\n  return a * b / getGreatestCommonDividor(a, b);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { map, isString, isFunction, eqNaN, isRegExp } from 'zrender/lib/core/util';\nvar ECHARTS_PREFIX = '[ECharts] ';\nvar storedLogs = {};\nvar hasConsole = typeof console !== 'undefined' && console.warn && console.log;\nexport function log(str) {\n  if (hasConsole) {\n    console.log(ECHARTS_PREFIX + str);\n  }\n}\nexport function warn(str) {\n  if (hasConsole) {\n    console.warn(ECHARTS_PREFIX + str);\n  }\n}\nexport function error(str) {\n  if (hasConsole) {\n    console.error(ECHARTS_PREFIX + str);\n  }\n}\nexport function deprecateLog(str) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (storedLogs[str]) {\n      return;\n    }\n\n    if (hasConsole) {\n      storedLogs[str] = true;\n      console.warn(ECHARTS_PREFIX + 'DEPRECATED: ' + str);\n    }\n  }\n}\nexport function deprecateReplaceLog(oldOpt, newOpt, scope) {\n  if (process.env.NODE_ENV !== 'production') {\n    deprecateLog((scope ? \"[\" + scope + \"]\" : '') + (oldOpt + \" is deprecated, use \" + newOpt + \" instead.\"));\n  }\n}\nexport function consoleLog() {\n  var args = [];\n\n  for (var _i = 0; _i < arguments.length; _i++) {\n    args[_i] = arguments[_i];\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (typeof console !== 'undefined' && console.log) {\n      console.log.apply(console, args);\n    }\n  }\n}\nexport function makePrintable() {\n  var hintInfo = [];\n\n  for (var _i = 0; _i < arguments.length; _i++) {\n    hintInfo[_i] = arguments[_i];\n  }\n\n  var msg = '';\n\n  if (process.env.NODE_ENV !== 'production') {\n    var makePrintableStringIfPossible_1 = function (val) {\n      return val === void 0 ? 'undefined' : val === Infinity ? 'Infinity' : val === -Infinity ? '-Infinity' : eqNaN(val) ? 'NaN' : val instanceof Date ? 'Date(' + val.toISOString() + ')' : isFunction(val) ? 'function () { ... }' : isRegExp(val) ? val + '' : null;\n    };\n\n    msg = map(hintInfo, function (arg) {\n      if (isString(arg)) {\n        return arg;\n      } else {\n        var printableStr = makePrintableStringIfPossible_1(arg);\n\n        if (printableStr != null) {\n          return printableStr;\n        } else if (typeof JSON !== 'undefined' && JSON.stringify) {\n          try {\n            return JSON.stringify(arg, function (n, val) {\n              var printableStr = makePrintableStringIfPossible_1(val);\n              return printableStr == null ? val : printableStr;\n            });\n          } catch (err) {\n            return '?';\n          }\n        } else {\n          return '?';\n        }\n      }\n    }).join(' ');\n  }\n\n  return msg;\n}\nexport function throwError(msg) {\n  throw new Error(msg);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, isObject, isArray, createHashMap, map, assert, isString, indexOf, isStringSafe } from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport { isNumeric, getRandomIdBase, getPrecisionSafe, round } from './number';\nimport { interpolateNumber } from 'zrender/lib/animation/Animator';\nimport { warn } from './log';\nvar DUMMY_COMPONENT_NAME_PREFIX = 'series\\0';\nvar INTERNAL_COMPONENT_ID_PREFIX = '\\0_ec_\\0';\nexport function normalizeToArray(value) {\n  return value instanceof Array ? value : value == null ? [] : [value];\n}\nexport function defaultEmphasis(opt, key, subOpts) {\n  if (opt) {\n    opt[key] = opt[key] || {};\n    opt.emphasis = opt.emphasis || {};\n    opt.emphasis[key] = opt.emphasis[key] || {};\n\n    for (var i = 0, len = subOpts.length; i < len; i++) {\n      var subOptName = subOpts[i];\n\n      if (!opt.emphasis[key].hasOwnProperty(subOptName) && opt[key].hasOwnProperty(subOptName)) {\n        opt.emphasis[key][subOptName] = opt[key][subOptName];\n      }\n    }\n  }\n}\nexport var TEXT_STYLE_OPTIONS = ['fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'rich', 'tag', 'color', 'textBorderColor', 'textBorderWidth', 'width', 'height', 'lineHeight', 'align', 'verticalAlign', 'baseline', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY', 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY', 'backgroundColor', 'borderColor', 'borderWidth', 'borderRadius', 'padding'];\nexport function getDataItemValue(dataItem) {\n  return isObject(dataItem) && !isArray(dataItem) && !(dataItem instanceof Date) ? dataItem.value : dataItem;\n}\nexport function isDataItemOption(dataItem) {\n  return isObject(dataItem) && !(dataItem instanceof Array);\n}\n;\nexport function mappingToExists(existings, newCmptOptions, mode) {\n  var isNormalMergeMode = mode === 'normalMerge';\n  var isReplaceMergeMode = mode === 'replaceMerge';\n  var isReplaceAllMode = mode === 'replaceAll';\n  existings = existings || [];\n  newCmptOptions = (newCmptOptions || []).slice();\n  var existingIdIdxMap = createHashMap();\n  each(newCmptOptions, function (cmptOption, index) {\n    if (!isObject(cmptOption)) {\n      newCmptOptions[index] = null;\n      return;\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (cmptOption.id != null && !isValidIdOrName(cmptOption.id)) {\n        warnInvalidateIdOrName(cmptOption.id);\n      }\n\n      if (cmptOption.name != null && !isValidIdOrName(cmptOption.name)) {\n        warnInvalidateIdOrName(cmptOption.name);\n      }\n    }\n  });\n  var result = prepareResult(existings, existingIdIdxMap, mode);\n\n  if (isNormalMergeMode || isReplaceMergeMode) {\n    mappingById(result, existings, existingIdIdxMap, newCmptOptions);\n  }\n\n  if (isNormalMergeMode) {\n    mappingByName(result, newCmptOptions);\n  }\n\n  if (isNormalMergeMode || isReplaceMergeMode) {\n    mappingByIndex(result, newCmptOptions, isReplaceMergeMode);\n  } else if (isReplaceAllMode) {\n    mappingInReplaceAllMode(result, newCmptOptions);\n  }\n\n  makeIdAndName(result);\n  return result;\n}\n\nfunction prepareResult(existings, existingIdIdxMap, mode) {\n  var result = [];\n\n  if (mode === 'replaceAll') {\n    return result;\n  }\n\n  for (var index = 0; index < existings.length; index++) {\n    var existing = existings[index];\n\n    if (existing && existing.id != null) {\n      existingIdIdxMap.set(existing.id, index);\n    }\n\n    result.push({\n      existing: mode === 'replaceMerge' || isComponentIdInternal(existing) ? null : existing,\n      newOption: null,\n      keyInfo: null,\n      brandNew: null\n    });\n  }\n\n  return result;\n}\n\nfunction mappingById(result, existings, existingIdIdxMap, newCmptOptions) {\n  each(newCmptOptions, function (cmptOption, index) {\n    if (!cmptOption || cmptOption.id == null) {\n      return;\n    }\n\n    var optionId = makeComparableKey(cmptOption.id);\n    var existingIdx = existingIdIdxMap.get(optionId);\n\n    if (existingIdx != null) {\n      var resultItem = result[existingIdx];\n      assert(!resultItem.newOption, 'Duplicated option on id \"' + optionId + '\".');\n      resultItem.newOption = cmptOption;\n      resultItem.existing = existings[existingIdx];\n      newCmptOptions[index] = null;\n    }\n  });\n}\n\nfunction mappingByName(result, newCmptOptions) {\n  each(newCmptOptions, function (cmptOption, index) {\n    if (!cmptOption || cmptOption.name == null) {\n      return;\n    }\n\n    for (var i = 0; i < result.length; i++) {\n      var existing = result[i].existing;\n\n      if (!result[i].newOption && existing && (existing.id == null || cmptOption.id == null) && !isComponentIdInternal(cmptOption) && !isComponentIdInternal(existing) && keyExistAndEqual('name', existing, cmptOption)) {\n        result[i].newOption = cmptOption;\n        newCmptOptions[index] = null;\n        return;\n      }\n    }\n  });\n}\n\nfunction mappingByIndex(result, newCmptOptions, brandNew) {\n  each(newCmptOptions, function (cmptOption) {\n    if (!cmptOption) {\n      return;\n    }\n\n    var resultItem;\n    var nextIdx = 0;\n\n    while ((resultItem = result[nextIdx]) && (resultItem.newOption || isComponentIdInternal(resultItem.existing) || resultItem.existing && cmptOption.id != null && !keyExistAndEqual('id', cmptOption, resultItem.existing))) {\n      nextIdx++;\n    }\n\n    if (resultItem) {\n      resultItem.newOption = cmptOption;\n      resultItem.brandNew = brandNew;\n    } else {\n      result.push({\n        newOption: cmptOption,\n        brandNew: brandNew,\n        existing: null,\n        keyInfo: null\n      });\n    }\n\n    nextIdx++;\n  });\n}\n\nfunction mappingInReplaceAllMode(result, newCmptOptions) {\n  each(newCmptOptions, function (cmptOption) {\n    result.push({\n      newOption: cmptOption,\n      brandNew: true,\n      existing: null,\n      keyInfo: null\n    });\n  });\n}\n\nfunction makeIdAndName(mapResult) {\n  var idMap = createHashMap();\n  each(mapResult, function (item) {\n    var existing = item.existing;\n    existing && idMap.set(existing.id, item);\n  });\n  each(mapResult, function (item) {\n    var opt = item.newOption;\n    assert(!opt || opt.id == null || !idMap.get(opt.id) || idMap.get(opt.id) === item, 'id duplicates: ' + (opt && opt.id));\n    opt && opt.id != null && idMap.set(opt.id, item);\n    !item.keyInfo && (item.keyInfo = {});\n  });\n  each(mapResult, function (item, index) {\n    var existing = item.existing;\n    var opt = item.newOption;\n    var keyInfo = item.keyInfo;\n\n    if (!isObject(opt)) {\n      return;\n    }\n\n    keyInfo.name = opt.name != null ? makeComparableKey(opt.name) : existing ? existing.name : DUMMY_COMPONENT_NAME_PREFIX + index;\n\n    if (existing) {\n      keyInfo.id = makeComparableKey(existing.id);\n    } else if (opt.id != null) {\n      keyInfo.id = makeComparableKey(opt.id);\n    } else {\n      var idNum = 0;\n\n      do {\n        keyInfo.id = '\\0' + keyInfo.name + '\\0' + idNum++;\n      } while (idMap.get(keyInfo.id));\n    }\n\n    idMap.set(keyInfo.id, item);\n  });\n}\n\nfunction keyExistAndEqual(attr, obj1, obj2) {\n  var key1 = convertOptionIdName(obj1[attr], null);\n  var key2 = convertOptionIdName(obj2[attr], null);\n  return key1 != null && key2 != null && key1 === key2;\n}\n\nfunction makeComparableKey(val) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (val == null) {\n      throw new Error();\n    }\n  }\n\n  return convertOptionIdName(val, '');\n}\n\nexport function convertOptionIdName(idOrName, defaultValue) {\n  if (idOrName == null) {\n    return defaultValue;\n  }\n\n  var type = typeof idOrName;\n  return type === 'string' ? idOrName : type === 'number' || isStringSafe(idOrName) ? idOrName + '' : defaultValue;\n}\n\nfunction warnInvalidateIdOrName(idOrName) {\n  if (process.env.NODE_ENV !== 'production') {\n    warn('`' + idOrName + '` is invalid id or name. Must be a string or number.');\n  }\n}\n\nfunction isValidIdOrName(idOrName) {\n  return isStringSafe(idOrName) || isNumeric(idOrName);\n}\n\nexport function isNameSpecified(componentModel) {\n  var name = componentModel.name;\n  return !!(name && name.indexOf(DUMMY_COMPONENT_NAME_PREFIX));\n}\nexport function isComponentIdInternal(cmptOption) {\n  return cmptOption && cmptOption.id != null && makeComparableKey(cmptOption.id).indexOf(INTERNAL_COMPONENT_ID_PREFIX) === 0;\n}\nexport function makeInternalComponentId(idSuffix) {\n  return INTERNAL_COMPONENT_ID_PREFIX + idSuffix;\n}\nexport function setComponentTypeToKeyInfo(mappingResult, mainType, componentModelCtor) {\n  each(mappingResult, function (item) {\n    var newOption = item.newOption;\n\n    if (isObject(newOption)) {\n      item.keyInfo.mainType = mainType;\n      item.keyInfo.subType = determineSubType(mainType, newOption, item.existing, componentModelCtor);\n    }\n  });\n}\n\nfunction determineSubType(mainType, newCmptOption, existComponent, componentModelCtor) {\n  var subType = newCmptOption.type ? newCmptOption.type : existComponent ? existComponent.subType : componentModelCtor.determineSubType(mainType, newCmptOption);\n  return subType;\n}\n\nexport function compressBatches(batchA, batchB) {\n  var mapA = {};\n  var mapB = {};\n  makeMap(batchA || [], mapA);\n  makeMap(batchB || [], mapB, mapA);\n  return [mapToArray(mapA), mapToArray(mapB)];\n\n  function makeMap(sourceBatch, map, otherMap) {\n    for (var i = 0, len = sourceBatch.length; i < len; i++) {\n      var seriesId = convertOptionIdName(sourceBatch[i].seriesId, null);\n\n      if (seriesId == null) {\n        return;\n      }\n\n      var dataIndices = normalizeToArray(sourceBatch[i].dataIndex);\n      var otherDataIndices = otherMap && otherMap[seriesId];\n\n      for (var j = 0, lenj = dataIndices.length; j < lenj; j++) {\n        var dataIndex = dataIndices[j];\n\n        if (otherDataIndices && otherDataIndices[dataIndex]) {\n          otherDataIndices[dataIndex] = null;\n        } else {\n          (map[seriesId] || (map[seriesId] = {}))[dataIndex] = 1;\n        }\n      }\n    }\n  }\n\n  function mapToArray(map, isData) {\n    var result = [];\n\n    for (var i in map) {\n      if (map.hasOwnProperty(i) && map[i] != null) {\n        if (isData) {\n          result.push(+i);\n        } else {\n          var dataIndices = mapToArray(map[i], true);\n          dataIndices.length && result.push({\n            seriesId: i,\n            dataIndex: dataIndices\n          });\n        }\n      }\n    }\n\n    return result;\n  }\n}\nexport function queryDataIndex(data, payload) {\n  if (payload.dataIndexInside != null) {\n    return payload.dataIndexInside;\n  } else if (payload.dataIndex != null) {\n    return isArray(payload.dataIndex) ? map(payload.dataIndex, function (value) {\n      return data.indexOfRawIndex(value);\n    }) : data.indexOfRawIndex(payload.dataIndex);\n  } else if (payload.name != null) {\n    return isArray(payload.name) ? map(payload.name, function (value) {\n      return data.indexOfName(value);\n    }) : data.indexOfName(payload.name);\n  }\n}\nexport function makeInner() {\n  var key = '__ec_inner_' + innerUniqueIndex++;\n  return function (hostObj) {\n    return hostObj[key] || (hostObj[key] = {});\n  };\n}\nvar innerUniqueIndex = getRandomIdBase();\nexport function parseFinder(ecModel, finderInput, opt) {\n  var finder;\n\n  if (isString(finderInput)) {\n    var obj = {};\n    obj[finderInput + 'Index'] = 0;\n    finder = obj;\n  } else {\n    finder = finderInput;\n  }\n\n  var queryOptionMap = createHashMap();\n  var result = {};\n  var mainTypeSpecified = false;\n  each(finder, function (value, key) {\n    if (key === 'dataIndex' || key === 'dataIndexInside') {\n      result[key] = value;\n      return;\n    }\n\n    var parsedKey = key.match(/^(\\w+)(Index|Id|Name)$/) || [];\n    var mainType = parsedKey[1];\n    var queryType = (parsedKey[2] || '').toLowerCase();\n\n    if (!mainType || !queryType || opt && opt.includeMainTypes && indexOf(opt.includeMainTypes, mainType) < 0) {\n      return;\n    }\n\n    mainTypeSpecified = mainTypeSpecified || !!mainType;\n    var queryOption = queryOptionMap.get(mainType) || queryOptionMap.set(mainType, {});\n    queryOption[queryType] = value;\n  });\n  var defaultMainType = opt ? opt.defaultMainType : null;\n\n  if (!mainTypeSpecified && defaultMainType) {\n    queryOptionMap.set(defaultMainType, {});\n  }\n\n  queryOptionMap.each(function (queryOption, mainType) {\n    var queryResult = queryReferringComponents(ecModel, mainType, queryOption, {\n      useDefault: defaultMainType === mainType,\n      enableAll: opt && opt.enableAll != null ? opt.enableAll : true,\n      enableNone: opt && opt.enableNone != null ? opt.enableNone : true\n    });\n    result[mainType + 'Models'] = queryResult.models;\n    result[mainType + 'Model'] = queryResult.models[0];\n  });\n  return result;\n}\nexport var SINGLE_REFERRING = {\n  useDefault: true,\n  enableAll: false,\n  enableNone: false\n};\nexport var MULTIPLE_REFERRING = {\n  useDefault: false,\n  enableAll: true,\n  enableNone: true\n};\nexport function queryReferringComponents(ecModel, mainType, userOption, opt) {\n  opt = opt || SINGLE_REFERRING;\n  var indexOption = userOption.index;\n  var idOption = userOption.id;\n  var nameOption = userOption.name;\n  var result = {\n    models: null,\n    specified: indexOption != null || idOption != null || nameOption != null\n  };\n\n  if (!result.specified) {\n    var firstCmpt = void 0;\n    result.models = opt.useDefault && (firstCmpt = ecModel.getComponent(mainType)) ? [firstCmpt] : [];\n    return result;\n  }\n\n  if (indexOption === 'none' || indexOption === false) {\n    assert(opt.enableNone, '`\"none\"` or `false` is not a valid value on index option.');\n    result.models = [];\n    return result;\n  }\n\n  if (indexOption === 'all') {\n    assert(opt.enableAll, '`\"all\"` is not a valid value on index option.');\n    indexOption = idOption = nameOption = null;\n  }\n\n  result.models = ecModel.queryComponents({\n    mainType: mainType,\n    index: indexOption,\n    id: idOption,\n    name: nameOption\n  });\n  return result;\n}\nexport function setAttribute(dom, key, value) {\n  dom.setAttribute ? dom.setAttribute(key, value) : dom[key] = value;\n}\nexport function getAttribute(dom, key) {\n  return dom.getAttribute ? dom.getAttribute(key) : dom[key];\n}\nexport function getTooltipRenderMode(renderModeOption) {\n  if (renderModeOption === 'auto') {\n    return env.domSupported ? 'html' : 'richText';\n  } else {\n    return renderModeOption || 'html';\n  }\n}\nexport function groupData(array, getKey) {\n  var buckets = createHashMap();\n  var keys = [];\n  each(array, function (item) {\n    var key = getKey(item);\n    (buckets.get(key) || (keys.push(key), buckets.set(key, []))).push(item);\n  });\n  return {\n    keys: keys,\n    buckets: buckets\n  };\n}\nexport function interpolateRawValues(data, precision, sourceValue, targetValue, percent) {\n  var isAutoPrecision = precision == null || precision === 'auto';\n\n  if (targetValue == null) {\n    return targetValue;\n  }\n\n  if (typeof targetValue === 'number') {\n    var value = interpolateNumber(sourceValue || 0, targetValue, percent);\n    return round(value, isAutoPrecision ? Math.max(getPrecisionSafe(sourceValue || 0), getPrecisionSafe(targetValue)) : precision);\n  } else if (typeof targetValue === 'string') {\n    return percent < 1 ? sourceValue : targetValue;\n  } else {\n    var interpolated = [];\n    var leftArr = sourceValue;\n    var rightArr = targetValue;\n    var length_1 = Math.max(leftArr ? leftArr.length : 0, rightArr.length);\n\n    for (var i = 0; i < length_1; ++i) {\n      var info = data.getDimensionInfo(i);\n\n      if (info.type === 'ordinal') {\n        interpolated[i] = (percent < 1 && leftArr ? leftArr : rightArr)[i];\n      } else {\n        var leftVal = leftArr && leftArr[i] ? leftArr[i] : 0;\n        var rightVal = rightArr[i];\n        var value = interpolateNumber(leftVal, rightVal, percent);\n        interpolated[i] = round(value, isAutoPrecision ? Math.max(getPrecisionSafe(leftVal), getPrecisionSafe(rightVal)) : precision);\n      }\n    }\n\n    return interpolated;\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __spreadArrays } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nvar TYPE_DELIMITER = '.';\nvar IS_CONTAINER = '___EC__COMPONENT__CONTAINER___';\nvar IS_EXTENDED_CLASS = '___EC__EXTENDED_CLASS___';\nexport function parseClassType(componentType) {\n  var ret = {\n    main: '',\n    sub: ''\n  };\n\n  if (componentType) {\n    var typeArr = componentType.split(TYPE_DELIMITER);\n    ret.main = typeArr[0] || '';\n    ret.sub = typeArr[1] || '';\n  }\n\n  return ret;\n}\n\nfunction checkClassType(componentType) {\n  zrUtil.assert(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(componentType), 'componentType \"' + componentType + '\" illegal');\n}\n\nexport function isExtendedClass(clz) {\n  return !!(clz && clz[IS_EXTENDED_CLASS]);\n}\nexport function enableClassExtend(rootClz, mandatoryMethods) {\n  rootClz.$constructor = rootClz;\n\n  rootClz.extend = function (proto) {\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.each(mandatoryMethods, function (method) {\n        if (!proto[method]) {\n          console.warn('Method `' + method + '` should be implemented' + (proto.type ? ' in ' + proto.type : '') + '.');\n        }\n      });\n    }\n\n    var superClass = this;\n\n    function ExtendedClass() {\n      var args = [];\n\n      for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n      }\n\n      if (!proto.$constructor) {\n        if (!isESClass(superClass)) {\n          superClass.apply(this, arguments);\n        } else {\n          var ins = zrUtil.createObject(ExtendedClass.prototype, new (superClass.bind.apply(superClass, __spreadArrays([void 0], args)))());\n          return ins;\n        }\n      } else {\n        proto.$constructor.apply(this, arguments);\n      }\n    }\n\n    ExtendedClass[IS_EXTENDED_CLASS] = true;\n    zrUtil.extend(ExtendedClass.prototype, proto);\n    ExtendedClass.extend = this.extend;\n    ExtendedClass.superCall = superCall;\n    ExtendedClass.superApply = superApply;\n    zrUtil.inherits(ExtendedClass, this);\n    ExtendedClass.superClass = superClass;\n    return ExtendedClass;\n  };\n}\n\nfunction isESClass(fn) {\n  return typeof fn === 'function' && /^class\\s/.test(Function.prototype.toString.call(fn));\n}\n\nexport function mountExtend(SubClz, SupperClz) {\n  SubClz.extend = SupperClz.extend;\n}\nvar classBase = Math.round(Math.random() * 10);\nexport function enableClassCheck(target) {\n  var classAttr = ['__\\0is_clz', classBase++].join('_');\n  target.prototype[classAttr] = true;\n\n  if (process.env.NODE_ENV !== 'production') {\n    zrUtil.assert(!target.isInstance, 'The method \"is\" can not be defined.');\n  }\n\n  target.isInstance = function (obj) {\n    return !!(obj && obj[classAttr]);\n  };\n}\n\nfunction superCall(context, methodName) {\n  var args = [];\n\n  for (var _i = 2; _i < arguments.length; _i++) {\n    args[_i - 2] = arguments[_i];\n  }\n\n  return this.superClass.prototype[methodName].apply(context, args);\n}\n\nfunction superApply(context, methodName, args) {\n  return this.superClass.prototype[methodName].apply(context, args);\n}\n\nexport function enableClassManagement(target) {\n  var storage = {};\n\n  target.registerClass = function (clz) {\n    var componentFullType = clz.type || clz.prototype.type;\n\n    if (componentFullType) {\n      checkClassType(componentFullType);\n      clz.prototype.type = componentFullType;\n      var componentTypeInfo = parseClassType(componentFullType);\n\n      if (!componentTypeInfo.sub) {\n        if (process.env.NODE_ENV !== 'production') {\n          if (storage[componentTypeInfo.main]) {\n            console.warn(componentTypeInfo.main + ' exists.');\n          }\n        }\n\n        storage[componentTypeInfo.main] = clz;\n      } else if (componentTypeInfo.sub !== IS_CONTAINER) {\n        var container = makeContainer(componentTypeInfo);\n        container[componentTypeInfo.sub] = clz;\n      }\n    }\n\n    return clz;\n  };\n\n  target.getClass = function (mainType, subType, throwWhenNotFound) {\n    var clz = storage[mainType];\n\n    if (clz && clz[IS_CONTAINER]) {\n      clz = subType ? clz[subType] : null;\n    }\n\n    if (throwWhenNotFound && !clz) {\n      throw new Error(!subType ? mainType + '.' + 'type should be specified.' : 'Component ' + mainType + '.' + (subType || '') + ' not exists. Load it first.');\n    }\n\n    return clz;\n  };\n\n  target.getClassesByMainType = function (componentType) {\n    var componentTypeInfo = parseClassType(componentType);\n    var result = [];\n    var obj = storage[componentTypeInfo.main];\n\n    if (obj && obj[IS_CONTAINER]) {\n      zrUtil.each(obj, function (o, type) {\n        type !== IS_CONTAINER && result.push(o);\n      });\n    } else {\n      result.push(obj);\n    }\n\n    return result;\n  };\n\n  target.hasClass = function (componentType) {\n    var componentTypeInfo = parseClassType(componentType);\n    return !!storage[componentTypeInfo.main];\n  };\n\n  target.getAllClassMainTypes = function () {\n    var types = [];\n    zrUtil.each(storage, function (obj, type) {\n      types.push(type);\n    });\n    return types;\n  };\n\n  target.hasSubTypes = function (componentType) {\n    var componentTypeInfo = parseClassType(componentType);\n    var obj = storage[componentTypeInfo.main];\n    return obj && obj[IS_CONTAINER];\n  };\n\n  function makeContainer(componentTypeInfo) {\n    var container = storage[componentTypeInfo.main];\n\n    if (!container || !container[IS_CONTAINER]) {\n      container = storage[componentTypeInfo.main] = {};\n      container[IS_CONTAINER] = true;\n    }\n\n    return container;\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function makeStyleMapper(properties, ignoreParent) {\n  for (var i = 0; i < properties.length; i++) {\n    if (!properties[i][1]) {\n      properties[i][1] = properties[i][0];\n    }\n  }\n\n  ignoreParent = ignoreParent || false;\n  return function (model, excludes, includes) {\n    var style = {};\n\n    for (var i = 0; i < properties.length; i++) {\n      var propName = properties[i][1];\n\n      if (excludes && zrUtil.indexOf(excludes, propName) >= 0 || includes && zrUtil.indexOf(includes, propName) < 0) {\n        continue;\n      }\n\n      var val = model.getShallow(propName, ignoreParent);\n\n      if (val != null) {\n        style[properties[i][0]] = val;\n      }\n    }\n\n    return style;\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport makeStyleMapper from './makeStyleMapper';\nexport var AREA_STYLE_KEY_MAP = [['fill', 'color'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['opacity'], ['shadowColor']];\nvar getAreaStyle = makeStyleMapper(AREA_STYLE_KEY_MAP);\n\nvar AreaStyleMixin = function () {\n  function AreaStyleMixin() {}\n\n  AreaStyleMixin.prototype.getAreaStyle = function (excludes, includes) {\n    return getAreaStyle(this, excludes, includes);\n  };\n\n  return AreaStyleMixin;\n}();\n\n;\nexport { AreaStyleMixin };","import LRU from '../../core/LRU';\nvar globalImageCache = new LRU(50);\nexport function findExistImage(newImageOrSrc) {\n    if (typeof newImageOrSrc === 'string') {\n        var cachedImgObj = globalImageCache.get(newImageOrSrc);\n        return cachedImgObj && cachedImgObj.image;\n    }\n    else {\n        return newImageOrSrc;\n    }\n}\nexport function createOrUpdateImage(newImageOrSrc, image, hostEl, onload, cbPayload) {\n    if (!newImageOrSrc) {\n        return image;\n    }\n    else if (typeof newImageOrSrc === 'string') {\n        if ((image && image.__zrImageSrc === newImageOrSrc) || !hostEl) {\n            return image;\n        }\n        var cachedImgObj = globalImageCache.get(newImageOrSrc);\n        var pendingWrap = { hostEl: hostEl, cb: onload, cbPayload: cbPayload };\n        if (cachedImgObj) {\n            image = cachedImgObj.image;\n            !isImageReady(image) && cachedImgObj.pending.push(pendingWrap);\n        }\n        else {\n            image = new Image();\n            image.onload = image.onerror = imageOnLoad;\n            globalImageCache.put(newImageOrSrc, image.__cachedImgObj = {\n                image: image,\n                pending: [pendingWrap]\n            });\n            image.src = image.__zrImageSrc = newImageOrSrc;\n        }\n        return image;\n    }\n    else {\n        return newImageOrSrc;\n    }\n}\nfunction imageOnLoad() {\n    var cachedImgObj = this.__cachedImgObj;\n    this.onload = this.onerror = this.__cachedImgObj = null;\n    for (var i = 0; i < cachedImgObj.pending.length; i++) {\n        var pendingWrap = cachedImgObj.pending[i];\n        var cb = pendingWrap.cb;\n        cb && cb(this, pendingWrap.cbPayload);\n        pendingWrap.hostEl.dirty();\n    }\n    cachedImgObj.pending.length = 0;\n}\nexport function isImageReady(image) {\n    return image && image.width && image.height;\n}\n","import * as imageHelper from '../helper/image';\nimport { extend, retrieve2, retrieve3, reduce } from '../../core/util';\nimport { getLineHeight, getWidth } from '../../contain/text';\nvar STYLE_REG = /\\{([a-zA-Z0-9_]+)\\|([^}]*)\\}/g;\nexport function truncateText(text, containerWidth, font, ellipsis, options) {\n    if (!containerWidth) {\n        return '';\n    }\n    var textLines = (text + '').split('\\n');\n    options = prepareTruncateOptions(containerWidth, font, ellipsis, options);\n    for (var i = 0, len = textLines.length; i < len; i++) {\n        textLines[i] = truncateSingleLine(textLines[i], options);\n    }\n    return textLines.join('\\n');\n}\nfunction prepareTruncateOptions(containerWidth, font, ellipsis, options) {\n    options = options || {};\n    var preparedOpts = extend({}, options);\n    preparedOpts.font = font;\n    ellipsis = retrieve2(ellipsis, '...');\n    preparedOpts.maxIterations = retrieve2(options.maxIterations, 2);\n    var minChar = preparedOpts.minChar = retrieve2(options.minChar, 0);\n    preparedOpts.cnCharWidth = getWidth('国', font);\n    var ascCharWidth = preparedOpts.ascCharWidth = getWidth('a', font);\n    preparedOpts.placeholder = retrieve2(options.placeholder, '');\n    var contentWidth = containerWidth = Math.max(0, containerWidth - 1);\n    for (var i = 0; i < minChar && contentWidth >= ascCharWidth; i++) {\n        contentWidth -= ascCharWidth;\n    }\n    var ellipsisWidth = getWidth(ellipsis, font);\n    if (ellipsisWidth > contentWidth) {\n        ellipsis = '';\n        ellipsisWidth = 0;\n    }\n    contentWidth = containerWidth - ellipsisWidth;\n    preparedOpts.ellipsis = ellipsis;\n    preparedOpts.ellipsisWidth = ellipsisWidth;\n    preparedOpts.contentWidth = contentWidth;\n    preparedOpts.containerWidth = containerWidth;\n    return preparedOpts;\n}\nfunction truncateSingleLine(textLine, options) {\n    var containerWidth = options.containerWidth;\n    var font = options.font;\n    var contentWidth = options.contentWidth;\n    if (!containerWidth) {\n        return '';\n    }\n    var lineWidth = getWidth(textLine, font);\n    if (lineWidth <= containerWidth) {\n        return textLine;\n    }\n    for (var j = 0;; j++) {\n        if (lineWidth <= contentWidth || j >= options.maxIterations) {\n            textLine += options.ellipsis;\n            break;\n        }\n        var subLength = j === 0\n            ? estimateLength(textLine, contentWidth, options.ascCharWidth, options.cnCharWidth)\n            : lineWidth > 0\n                ? Math.floor(textLine.length * contentWidth / lineWidth)\n                : 0;\n        textLine = textLine.substr(0, subLength);\n        lineWidth = getWidth(textLine, font);\n    }\n    if (textLine === '') {\n        textLine = options.placeholder;\n    }\n    return textLine;\n}\nfunction estimateLength(text, contentWidth, ascCharWidth, cnCharWidth) {\n    var width = 0;\n    var i = 0;\n    for (var len = text.length; i < len && width < contentWidth; i++) {\n        var charCode = text.charCodeAt(i);\n        width += (0 <= charCode && charCode <= 127) ? ascCharWidth : cnCharWidth;\n    }\n    return i;\n}\nexport function parsePlainText(text, style) {\n    text != null && (text += '');\n    var overflow = style.overflow;\n    var padding = style.padding;\n    var font = style.font;\n    var truncate = overflow === 'truncate';\n    var calculatedLineHeight = getLineHeight(font);\n    var lineHeight = retrieve2(style.lineHeight, calculatedLineHeight);\n    var truncateLineOverflow = style.lineOverflow === 'truncate';\n    var width = style.width;\n    var lines;\n    if (width != null && overflow === 'break' || overflow === 'breakAll') {\n        lines = text ? wrapText(text, style.font, width, overflow === 'breakAll', 0).lines : [];\n    }\n    else {\n        lines = text ? text.split('\\n') : [];\n    }\n    var contentHeight = lines.length * lineHeight;\n    var height = retrieve2(style.height, contentHeight);\n    if (contentHeight > height && truncateLineOverflow) {\n        var lineCount = Math.floor(height / lineHeight);\n        lines = lines.slice(0, lineCount);\n    }\n    var outerHeight = height;\n    var outerWidth = width;\n    if (padding) {\n        outerHeight += padding[0] + padding[2];\n        if (outerWidth != null) {\n            outerWidth += padding[1] + padding[3];\n        }\n    }\n    if (text && truncate && outerWidth != null) {\n        var options = prepareTruncateOptions(width, font, style.ellipsis, {\n            minChar: style.truncateMinChar,\n            placeholder: style.placeholder\n        });\n        for (var i = 0; i < lines.length; i++) {\n            lines[i] = truncateSingleLine(lines[i], options);\n        }\n    }\n    if (width == null) {\n        var maxWidth = 0;\n        for (var i = 0; i < lines.length; i++) {\n            maxWidth = Math.max(getWidth(lines[i], font), maxWidth);\n        }\n        width = maxWidth;\n    }\n    return {\n        lines: lines,\n        height: height,\n        outerHeight: outerHeight,\n        lineHeight: lineHeight,\n        calculatedLineHeight: calculatedLineHeight,\n        contentHeight: contentHeight,\n        width: width\n    };\n}\nvar RichTextToken = (function () {\n    function RichTextToken() {\n    }\n    return RichTextToken;\n}());\nvar RichTextLine = (function () {\n    function RichTextLine(tokens) {\n        this.tokens = [];\n        if (tokens) {\n            this.tokens = tokens;\n        }\n    }\n    return RichTextLine;\n}());\nvar RichTextContentBlock = (function () {\n    function RichTextContentBlock() {\n        this.width = 0;\n        this.height = 0;\n        this.contentWidth = 0;\n        this.contentHeight = 0;\n        this.outerWidth = 0;\n        this.outerHeight = 0;\n        this.lines = [];\n    }\n    return RichTextContentBlock;\n}());\nexport { RichTextContentBlock };\nexport function parseRichText(text, style) {\n    var contentBlock = new RichTextContentBlock();\n    text != null && (text += '');\n    if (!text) {\n        return contentBlock;\n    }\n    var topWidth = style.width;\n    var topHeight = style.height;\n    var overflow = style.overflow;\n    var wrapInfo = (overflow === 'break' || overflow === 'breakAll') && topWidth != null\n        ? { width: topWidth, accumWidth: 0, breakAll: overflow === 'breakAll' }\n        : null;\n    var lastIndex = STYLE_REG.lastIndex = 0;\n    var result;\n    while ((result = STYLE_REG.exec(text)) != null) {\n        var matchedIndex = result.index;\n        if (matchedIndex > lastIndex) {\n            pushTokens(contentBlock, text.substring(lastIndex, matchedIndex), style, wrapInfo);\n        }\n        pushTokens(contentBlock, result[2], style, wrapInfo, result[1]);\n        lastIndex = STYLE_REG.lastIndex;\n    }\n    if (lastIndex < text.length) {\n        pushTokens(contentBlock, text.substring(lastIndex, text.length), style, wrapInfo);\n    }\n    var pendingList = [];\n    var calculatedHeight = 0;\n    var calculatedWidth = 0;\n    var stlPadding = style.padding;\n    var truncate = overflow === 'truncate';\n    var truncateLine = style.lineOverflow === 'truncate';\n    var prevToken;\n    function finishLine(line, lineWidth, lineHeight) {\n        line.width = lineWidth;\n        line.lineHeight = lineHeight;\n        calculatedHeight += lineHeight;\n        calculatedWidth = Math.max(calculatedWidth, lineWidth);\n    }\n    outer: for (var i = 0; i < contentBlock.lines.length; i++) {\n        var line = contentBlock.lines[i];\n        var lineHeight = 0;\n        var lineWidth = 0;\n        for (var j = 0; j < line.tokens.length; j++) {\n            var token = line.tokens[j];\n            var tokenStyle = token.styleName && style.rich[token.styleName] || {};\n            var textPadding = token.textPadding = tokenStyle.padding;\n            var paddingH = textPadding ? textPadding[1] + textPadding[3] : 0;\n            var font = token.font = tokenStyle.font || style.font;\n            token.contentHeight = getLineHeight(font);\n            var tokenHeight = retrieve2(tokenStyle.height, token.contentHeight);\n            token.innerHeight = tokenHeight;\n            textPadding && (tokenHeight += textPadding[0] + textPadding[2]);\n            token.height = tokenHeight;\n            token.lineHeight = retrieve3(tokenStyle.lineHeight, style.lineHeight, tokenHeight);\n            token.align = tokenStyle && tokenStyle.align || style.align;\n            token.verticalAlign = tokenStyle && tokenStyle.verticalAlign || 'middle';\n            if (truncateLine && topHeight != null && calculatedHeight + token.lineHeight > topHeight) {\n                if (j > 0) {\n                    line.tokens = line.tokens.slice(0, j);\n                    finishLine(line, lineWidth, lineHeight);\n                    contentBlock.lines = contentBlock.lines.slice(0, i + 1);\n                }\n                else {\n                    contentBlock.lines = contentBlock.lines.slice(0, i);\n                }\n                break outer;\n            }\n            var styleTokenWidth = tokenStyle.width;\n            var tokenWidthNotSpecified = styleTokenWidth == null || styleTokenWidth === 'auto';\n            if (typeof styleTokenWidth === 'string' && styleTokenWidth.charAt(styleTokenWidth.length - 1) === '%') {\n                token.percentWidth = styleTokenWidth;\n                pendingList.push(token);\n                token.contentWidth = getWidth(token.text, font);\n            }\n            else {\n                if (tokenWidthNotSpecified) {\n                    var textBackgroundColor = tokenStyle.backgroundColor;\n                    var bgImg = textBackgroundColor && textBackgroundColor.image;\n                    if (bgImg) {\n                        bgImg = imageHelper.findExistImage(bgImg);\n                        if (imageHelper.isImageReady(bgImg)) {\n                            token.width = Math.max(token.width, bgImg.width * tokenHeight / bgImg.height);\n                        }\n                    }\n                }\n                var remainTruncWidth = truncate && topWidth != null\n                    ? topWidth - lineWidth : null;\n                if (remainTruncWidth != null && remainTruncWidth < token.width) {\n                    if (!tokenWidthNotSpecified || remainTruncWidth < paddingH) {\n                        token.text = '';\n                        token.width = token.contentWidth = 0;\n                    }\n                    else {\n                        token.text = truncateText(token.text, remainTruncWidth - paddingH, font, style.ellipsis, { minChar: style.truncateMinChar });\n                        token.width = token.contentWidth = getWidth(token.text, font);\n                    }\n                }\n                else {\n                    token.contentWidth = getWidth(token.text, font);\n                }\n            }\n            token.width += paddingH;\n            lineWidth += token.width;\n            tokenStyle && (lineHeight = Math.max(lineHeight, token.lineHeight));\n            prevToken = token;\n        }\n        finishLine(line, lineWidth, lineHeight);\n    }\n    contentBlock.outerWidth = contentBlock.width = retrieve2(topWidth, calculatedWidth);\n    contentBlock.outerHeight = contentBlock.height = retrieve2(topHeight, calculatedHeight);\n    contentBlock.contentHeight = calculatedHeight;\n    contentBlock.contentWidth = calculatedWidth;\n    if (stlPadding) {\n        contentBlock.outerWidth += stlPadding[1] + stlPadding[3];\n        contentBlock.outerHeight += stlPadding[0] + stlPadding[2];\n    }\n    for (var i = 0; i < pendingList.length; i++) {\n        var token = pendingList[i];\n        var percentWidth = token.percentWidth;\n        token.width = parseInt(percentWidth, 10) / 100 * contentBlock.width;\n    }\n    return contentBlock;\n}\nfunction pushTokens(block, str, style, wrapInfo, styleName) {\n    var isEmptyStr = str === '';\n    var tokenStyle = styleName && style.rich[styleName] || {};\n    var lines = block.lines;\n    var font = tokenStyle.font || style.font;\n    var newLine = false;\n    var strLines;\n    var linesWidths;\n    if (wrapInfo) {\n        var tokenPadding = tokenStyle.padding;\n        var tokenPaddingH = tokenPadding ? tokenPadding[1] + tokenPadding[3] : 0;\n        if (tokenStyle.width != null && tokenStyle.width !== 'auto') {\n            var outerWidth_1 = parsePercent(tokenStyle.width, wrapInfo.width) + tokenPaddingH;\n            if (lines.length > 0) {\n                if (outerWidth_1 + wrapInfo.accumWidth > wrapInfo.width) {\n                    strLines = str.split('\\n');\n                    newLine = true;\n                }\n            }\n            wrapInfo.accumWidth = outerWidth_1;\n        }\n        else {\n            var res = wrapText(str, font, wrapInfo.width, wrapInfo.breakAll, wrapInfo.accumWidth);\n            wrapInfo.accumWidth = res.accumWidth + tokenPaddingH;\n            linesWidths = res.linesWidths;\n            strLines = res.lines;\n        }\n    }\n    else {\n        strLines = str.split('\\n');\n    }\n    for (var i = 0; i < strLines.length; i++) {\n        var text = strLines[i];\n        var token = new RichTextToken();\n        token.styleName = styleName;\n        token.text = text;\n        token.isLineHolder = !text && !isEmptyStr;\n        if (typeof tokenStyle.width === 'number') {\n            token.width = tokenStyle.width;\n        }\n        else {\n            token.width = linesWidths\n                ? linesWidths[i]\n                : getWidth(text, font);\n        }\n        if (!i && !newLine) {\n            var tokens = (lines[lines.length - 1] || (lines[0] = new RichTextLine())).tokens;\n            var tokensLen = tokens.length;\n            (tokensLen === 1 && tokens[0].isLineHolder)\n                ? (tokens[0] = token)\n                : ((text || !tokensLen || isEmptyStr) && tokens.push(token));\n        }\n        else {\n            lines.push(new RichTextLine([token]));\n        }\n    }\n}\nfunction isLatin(ch) {\n    var code = ch.charCodeAt(0);\n    return code >= 0x21 && code <= 0xFF;\n}\nvar breakCharMap = reduce(',&?/;] '.split(''), function (obj, ch) {\n    obj[ch] = true;\n    return obj;\n}, {});\nfunction isWordBreakChar(ch) {\n    if (isLatin(ch)) {\n        if (breakCharMap[ch]) {\n            return true;\n        }\n        return false;\n    }\n    return true;\n}\nfunction wrapText(text, font, lineWidth, isBreakAll, lastAccumWidth) {\n    var lines = [];\n    var linesWidths = [];\n    var line = '';\n    var currentWord = '';\n    var currentWordWidth = 0;\n    var accumWidth = 0;\n    for (var i = 0; i < text.length; i++) {\n        var ch = text.charAt(i);\n        if (ch === '\\n') {\n            if (currentWord) {\n                line += currentWord;\n                accumWidth += currentWordWidth;\n            }\n            lines.push(line);\n            linesWidths.push(accumWidth);\n            line = '';\n            currentWord = '';\n            currentWordWidth = 0;\n            accumWidth = 0;\n            continue;\n        }\n        var chWidth = getWidth(ch, font);\n        var inWord = isBreakAll ? false : !isWordBreakChar(ch);\n        if (!lines.length\n            ? lastAccumWidth + accumWidth + chWidth > lineWidth\n            : accumWidth + chWidth > lineWidth) {\n            if (!accumWidth) {\n                if (inWord) {\n                    lines.push(currentWord);\n                    linesWidths.push(currentWordWidth);\n                    currentWord = ch;\n                    currentWordWidth = chWidth;\n                }\n                else {\n                    lines.push(ch);\n                    linesWidths.push(chWidth);\n                }\n            }\n            else if (line || currentWord) {\n                if (inWord) {\n                    if (!line) {\n                        line = currentWord;\n                        currentWord = '';\n                        currentWordWidth = 0;\n                        accumWidth = currentWordWidth;\n                    }\n                    lines.push(line);\n                    linesWidths.push(accumWidth - currentWordWidth);\n                    currentWord += ch;\n                    currentWordWidth += chWidth;\n                    line = '';\n                    accumWidth = currentWordWidth;\n                }\n                else {\n                    if (currentWord) {\n                        line += currentWord;\n                        accumWidth += currentWordWidth;\n                        currentWord = '';\n                        currentWordWidth = 0;\n                    }\n                    lines.push(line);\n                    linesWidths.push(accumWidth);\n                    line = ch;\n                    accumWidth = chWidth;\n                }\n            }\n            continue;\n        }\n        accumWidth += chWidth;\n        if (inWord) {\n            currentWord += ch;\n            currentWordWidth += chWidth;\n        }\n        else {\n            if (currentWord) {\n                line += currentWord;\n                currentWord = '';\n                currentWordWidth = 0;\n            }\n            line += ch;\n        }\n    }\n    if (!lines.length && !line) {\n        line = text;\n        currentWord = '';\n        currentWordWidth = 0;\n    }\n    if (currentWord) {\n        line += currentWord;\n    }\n    if (line) {\n        lines.push(line);\n        linesWidths.push(accumWidth);\n    }\n    if (lines.length === 1) {\n        accumWidth += lastAccumWidth;\n    }\n    return {\n        accumWidth: accumWidth,\n        lines: lines,\n        linesWidths: linesWidths\n    };\n}\nfunction parsePercent(value, maxValue) {\n    if (typeof value === 'string') {\n        if (value.lastIndexOf('%') >= 0) {\n            return parseFloat(value) / 100 * maxValue;\n        }\n        return parseFloat(value);\n    }\n    return value;\n}\n","import { __extends } from \"tslib\";\nimport Element from '../Element';\nimport BoundingRect from '../core/BoundingRect';\nimport { keys, extend, createObject } from '../core/util';\nvar STYLE_MAGIC_KEY = '__zr_style_' + Math.round((Math.random() * 10));\nexport var DEFAULT_COMMON_STYLE = {\n    shadowBlur: 0,\n    shadowOffsetX: 0,\n    shadowOffsetY: 0,\n    shadowColor: '#000',\n    opacity: 1,\n    blend: 'source-over'\n};\nexport var DEFAULT_COMMON_ANIMATION_PROPS = {\n    style: {\n        shadowBlur: true,\n        shadowOffsetX: true,\n        shadowOffsetY: true,\n        shadowColor: true,\n        opacity: true\n    }\n};\nDEFAULT_COMMON_STYLE[STYLE_MAGIC_KEY] = true;\nvar PRIMARY_STATES_KEYS = ['z', 'z2', 'invisible'];\nvar Displayable = (function (_super) {\n    __extends(Displayable, _super);\n    function Displayable(props) {\n        return _super.call(this, props) || this;\n    }\n    Displayable.prototype._init = function (props) {\n        var keysArr = keys(props);\n        for (var i = 0; i < keysArr.length; i++) {\n            var key = keysArr[i];\n            if (key === 'style') {\n                this.useStyle(props[key]);\n            }\n            else {\n                _super.prototype.attrKV.call(this, key, props[key]);\n            }\n        }\n        if (!this.style) {\n            this.useStyle({});\n        }\n    };\n    Displayable.prototype.beforeBrush = function () { };\n    Displayable.prototype.afterBrush = function () { };\n    Displayable.prototype.innerBeforeBrush = function () { };\n    Displayable.prototype.innerAfterBrush = function () { };\n    Displayable.prototype.shouldBePainted = function (viewWidth, viewHeight, considerClipPath, considerAncestors) {\n        var m = this.transform;\n        if (this.ignore\n            || this.invisible\n            || this.style.opacity === 0\n            || (this.culling\n                && isDisplayableCulled(this, viewWidth, viewHeight))\n            || (m && !m[0] && !m[3])) {\n            return false;\n        }\n        if (considerClipPath && this.__clipPaths) {\n            for (var i = 0; i < this.__clipPaths.length; ++i) {\n                if (this.__clipPaths[i].isZeroArea()) {\n                    return false;\n                }\n            }\n        }\n        if (considerAncestors && this.parent) {\n            var parent_1 = this.parent;\n            while (parent_1) {\n                if (parent_1.ignore) {\n                    return false;\n                }\n                parent_1 = parent_1.parent;\n            }\n        }\n        return true;\n    };\n    Displayable.prototype.contain = function (x, y) {\n        return this.rectContain(x, y);\n    };\n    Displayable.prototype.traverse = function (cb, context) {\n        cb.call(context, this);\n    };\n    Displayable.prototype.rectContain = function (x, y) {\n        var coord = this.transformCoordToLocal(x, y);\n        var rect = this.getBoundingRect();\n        return rect.contain(coord[0], coord[1]);\n    };\n    Displayable.prototype.getPaintRect = function () {\n        var rect = this._paintRect;\n        if (!this._paintRect || this.__dirty) {\n            var transform = this.transform;\n            var elRect = this.getBoundingRect();\n            var style = this.style;\n            var shadowSize = style.shadowBlur || 0;\n            var shadowOffsetX = style.shadowOffsetX || 0;\n            var shadowOffsetY = style.shadowOffsetY || 0;\n            rect = this._paintRect || (this._paintRect = new BoundingRect(0, 0, 0, 0));\n            if (transform) {\n                BoundingRect.applyTransform(rect, elRect, transform);\n            }\n            else {\n                rect.copy(elRect);\n            }\n            if (shadowSize || shadowOffsetX || shadowOffsetY) {\n                rect.width += shadowSize * 2 + Math.abs(shadowOffsetX);\n                rect.height += shadowSize * 2 + Math.abs(shadowOffsetY);\n                rect.x = Math.min(rect.x, rect.x + shadowOffsetX - shadowSize);\n                rect.y = Math.min(rect.y, rect.y + shadowOffsetY - shadowSize);\n            }\n            var tolerance = this.dirtyRectTolerance;\n            if (!rect.isZero()) {\n                rect.x = Math.floor(rect.x - tolerance);\n                rect.y = Math.floor(rect.y - tolerance);\n                rect.width = Math.ceil(rect.width + 1 + tolerance * 2);\n                rect.height = Math.ceil(rect.height + 1 + tolerance * 2);\n            }\n        }\n        return rect;\n    };\n    Displayable.prototype.setPrevPaintRect = function (paintRect) {\n        if (paintRect) {\n            this._prevPaintRect = this._prevPaintRect || new BoundingRect(0, 0, 0, 0);\n            this._prevPaintRect.copy(paintRect);\n        }\n        else {\n            this._prevPaintRect = null;\n        }\n    };\n    Displayable.prototype.getPrevPaintRect = function () {\n        return this._prevPaintRect;\n    };\n    Displayable.prototype.animateStyle = function (loop) {\n        return this.animate('style', loop);\n    };\n    Displayable.prototype.updateDuringAnimation = function (targetKey) {\n        if (targetKey === 'style') {\n            this.dirtyStyle();\n        }\n        else {\n            this.markRedraw();\n        }\n    };\n    Displayable.prototype.attrKV = function (key, value) {\n        if (key !== 'style') {\n            _super.prototype.attrKV.call(this, key, value);\n        }\n        else {\n            if (!this.style) {\n                this.useStyle(value);\n            }\n            else {\n                this.setStyle(value);\n            }\n        }\n    };\n    Displayable.prototype.setStyle = function (keyOrObj, value) {\n        if (typeof keyOrObj === 'string') {\n            this.style[keyOrObj] = value;\n        }\n        else {\n            extend(this.style, keyOrObj);\n        }\n        this.dirtyStyle();\n        return this;\n    };\n    Displayable.prototype.dirtyStyle = function () {\n        this.markRedraw();\n        this.__dirty |= Displayable.STYLE_CHANGED_BIT;\n        if (this._rect) {\n            this._rect = null;\n        }\n    };\n    Displayable.prototype.dirty = function () {\n        this.dirtyStyle();\n    };\n    Displayable.prototype.styleChanged = function () {\n        return !!(this.__dirty & Displayable.STYLE_CHANGED_BIT);\n    };\n    Displayable.prototype.styleUpdated = function () {\n        this.__dirty &= ~Displayable.STYLE_CHANGED_BIT;\n    };\n    Displayable.prototype.createStyle = function (obj) {\n        return createObject(DEFAULT_COMMON_STYLE, obj);\n    };\n    Displayable.prototype.useStyle = function (obj) {\n        if (!obj[STYLE_MAGIC_KEY]) {\n            obj = this.createStyle(obj);\n        }\n        if (this.__inHover) {\n            this.__hoverStyle = obj;\n        }\n        else {\n            this.style = obj;\n        }\n        this.dirtyStyle();\n    };\n    Displayable.prototype.isStyleObject = function (obj) {\n        return obj[STYLE_MAGIC_KEY];\n    };\n    Displayable.prototype._innerSaveToNormal = function (toState) {\n        _super.prototype._innerSaveToNormal.call(this, toState);\n        var normalState = this._normalState;\n        if (toState.style && !normalState.style) {\n            normalState.style = this._mergeStyle(this.createStyle(), this.style);\n        }\n        this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS);\n    };\n    Displayable.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\n        _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\n        var needsRestoreToNormal = !(state && keepCurrentStates);\n        var targetStyle;\n        if (state && state.style) {\n            if (transition) {\n                if (keepCurrentStates) {\n                    targetStyle = state.style;\n                }\n                else {\n                    targetStyle = this._mergeStyle(this.createStyle(), normalState.style);\n                    this._mergeStyle(targetStyle, state.style);\n                }\n            }\n            else {\n                targetStyle = this._mergeStyle(this.createStyle(), keepCurrentStates ? this.style : normalState.style);\n                this._mergeStyle(targetStyle, state.style);\n            }\n        }\n        else if (needsRestoreToNormal) {\n            targetStyle = normalState.style;\n        }\n        if (targetStyle) {\n            if (transition) {\n                var sourceStyle = this.style;\n                this.style = this.createStyle(needsRestoreToNormal ? {} : sourceStyle);\n                if (needsRestoreToNormal) {\n                    var changedKeys = keys(sourceStyle);\n                    for (var i = 0; i < changedKeys.length; i++) {\n                        var key = changedKeys[i];\n                        if (key in targetStyle) {\n                            targetStyle[key] = targetStyle[key];\n                            this.style[key] = sourceStyle[key];\n                        }\n                    }\n                }\n                var targetKeys = keys(targetStyle);\n                for (var i = 0; i < targetKeys.length; i++) {\n                    var key = targetKeys[i];\n                    this.style[key] = this.style[key];\n                }\n                this._transitionState(stateName, {\n                    style: targetStyle\n                }, animationCfg, this.getAnimationStyleProps());\n            }\n            else {\n                this.useStyle(targetStyle);\n            }\n        }\n        for (var i = 0; i < PRIMARY_STATES_KEYS.length; i++) {\n            var key = PRIMARY_STATES_KEYS[i];\n            if (state && state[key] != null) {\n                this[key] = state[key];\n            }\n            else if (needsRestoreToNormal) {\n                if (normalState[key] != null) {\n                    this[key] = normalState[key];\n                }\n            }\n        }\n    };\n    Displayable.prototype._mergeStates = function (states) {\n        var mergedState = _super.prototype._mergeStates.call(this, states);\n        var mergedStyle;\n        for (var i = 0; i < states.length; i++) {\n            var state = states[i];\n            if (state.style) {\n                mergedStyle = mergedStyle || {};\n                this._mergeStyle(mergedStyle, state.style);\n            }\n        }\n        if (mergedStyle) {\n            mergedState.style = mergedStyle;\n        }\n        return mergedState;\n    };\n    Displayable.prototype._mergeStyle = function (targetStyle, sourceStyle) {\n        extend(targetStyle, sourceStyle);\n        return targetStyle;\n    };\n    Displayable.prototype.getAnimationStyleProps = function () {\n        return DEFAULT_COMMON_ANIMATION_PROPS;\n    };\n    Displayable.STYLE_CHANGED_BIT = 2;\n    Displayable.initDefaultProps = (function () {\n        var dispProto = Displayable.prototype;\n        dispProto.type = 'displayable';\n        dispProto.invisible = false;\n        dispProto.z = 0;\n        dispProto.z2 = 0;\n        dispProto.zlevel = 0;\n        dispProto.culling = false;\n        dispProto.cursor = 'pointer';\n        dispProto.rectHover = false;\n        dispProto.incremental = false;\n        dispProto._rect = null;\n        dispProto.dirtyRectTolerance = 0;\n        dispProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT;\n    })();\n    return Displayable;\n}(Element));\nvar tmpRect = new BoundingRect(0, 0, 0, 0);\nvar viewRect = new BoundingRect(0, 0, 0, 0);\nfunction isDisplayableCulled(el, width, height) {\n    tmpRect.copy(el.getBoundingRect());\n    if (el.transform) {\n        tmpRect.applyTransform(el.transform);\n    }\n    viewRect.width = width;\n    viewRect.height = height;\n    return !tmpRect.intersect(viewRect);\n}\nexport default Displayable;\n","import { create as v2Create, distSquare as v2DistSquare } from './vector';\nvar mathPow = Math.pow;\nvar mathSqrt = Math.sqrt;\nvar EPSILON = 1e-8;\nvar EPSILON_NUMERIC = 1e-4;\nvar THREE_SQRT = mathSqrt(3);\nvar ONE_THIRD = 1 / 3;\nvar _v0 = v2Create();\nvar _v1 = v2Create();\nvar _v2 = v2Create();\nfunction isAroundZero(val) {\n    return val > -EPSILON && val < EPSILON;\n}\nfunction isNotAroundZero(val) {\n    return val > EPSILON || val < -EPSILON;\n}\nexport function cubicAt(p0, p1, p2, p3, t) {\n    var onet = 1 - t;\n    return onet * onet * (onet * p0 + 3 * t * p1)\n        + t * t * (t * p3 + 3 * onet * p2);\n}\nexport function cubicDerivativeAt(p0, p1, p2, p3, t) {\n    var onet = 1 - t;\n    return 3 * (((p1 - p0) * onet + 2 * (p2 - p1) * t) * onet\n        + (p3 - p2) * t * t);\n}\nexport function cubicRootAt(p0, p1, p2, p3, val, roots) {\n    var a = p3 + 3 * (p1 - p2) - p0;\n    var b = 3 * (p2 - p1 * 2 + p0);\n    var c = 3 * (p1 - p0);\n    var d = p0 - val;\n    var A = b * b - 3 * a * c;\n    var B = b * c - 9 * a * d;\n    var C = c * c - 3 * b * d;\n    var n = 0;\n    if (isAroundZero(A) && isAroundZero(B)) {\n        if (isAroundZero(b)) {\n            roots[0] = 0;\n        }\n        else {\n            var t1 = -c / b;\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n        }\n    }\n    else {\n        var disc = B * B - 4 * A * C;\n        if (isAroundZero(disc)) {\n            var K = B / A;\n            var t1 = -b / a + K;\n            var t2 = -K / 2;\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n            if (t2 >= 0 && t2 <= 1) {\n                roots[n++] = t2;\n            }\n        }\n        else if (disc > 0) {\n            var discSqrt = mathSqrt(disc);\n            var Y1 = A * b + 1.5 * a * (-B + discSqrt);\n            var Y2 = A * b + 1.5 * a * (-B - discSqrt);\n            if (Y1 < 0) {\n                Y1 = -mathPow(-Y1, ONE_THIRD);\n            }\n            else {\n                Y1 = mathPow(Y1, ONE_THIRD);\n            }\n            if (Y2 < 0) {\n                Y2 = -mathPow(-Y2, ONE_THIRD);\n            }\n            else {\n                Y2 = mathPow(Y2, ONE_THIRD);\n            }\n            var t1 = (-b - (Y1 + Y2)) / (3 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n        }\n        else {\n            var T = (2 * A * b - 3 * a * B) / (2 * mathSqrt(A * A * A));\n            var theta = Math.acos(T) / 3;\n            var ASqrt = mathSqrt(A);\n            var tmp = Math.cos(theta);\n            var t1 = (-b - 2 * ASqrt * tmp) / (3 * a);\n            var t2 = (-b + ASqrt * (tmp + THREE_SQRT * Math.sin(theta))) / (3 * a);\n            var t3 = (-b + ASqrt * (tmp - THREE_SQRT * Math.sin(theta))) / (3 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n            if (t2 >= 0 && t2 <= 1) {\n                roots[n++] = t2;\n            }\n            if (t3 >= 0 && t3 <= 1) {\n                roots[n++] = t3;\n            }\n        }\n    }\n    return n;\n}\nexport function cubicExtrema(p0, p1, p2, p3, extrema) {\n    var b = 6 * p2 - 12 * p1 + 6 * p0;\n    var a = 9 * p1 + 3 * p3 - 3 * p0 - 9 * p2;\n    var c = 3 * p1 - 3 * p0;\n    var n = 0;\n    if (isAroundZero(a)) {\n        if (isNotAroundZero(b)) {\n            var t1 = -c / b;\n            if (t1 >= 0 && t1 <= 1) {\n                extrema[n++] = t1;\n            }\n        }\n    }\n    else {\n        var disc = b * b - 4 * a * c;\n        if (isAroundZero(disc)) {\n            extrema[0] = -b / (2 * a);\n        }\n        else if (disc > 0) {\n            var discSqrt = mathSqrt(disc);\n            var t1 = (-b + discSqrt) / (2 * a);\n            var t2 = (-b - discSqrt) / (2 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                extrema[n++] = t1;\n            }\n            if (t2 >= 0 && t2 <= 1) {\n                extrema[n++] = t2;\n            }\n        }\n    }\n    return n;\n}\nexport function cubicSubdivide(p0, p1, p2, p3, t, out) {\n    var p01 = (p1 - p0) * t + p0;\n    var p12 = (p2 - p1) * t + p1;\n    var p23 = (p3 - p2) * t + p2;\n    var p012 = (p12 - p01) * t + p01;\n    var p123 = (p23 - p12) * t + p12;\n    var p0123 = (p123 - p012) * t + p012;\n    out[0] = p0;\n    out[1] = p01;\n    out[2] = p012;\n    out[3] = p0123;\n    out[4] = p0123;\n    out[5] = p123;\n    out[6] = p23;\n    out[7] = p3;\n}\nexport function cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, out) {\n    var t;\n    var interval = 0.005;\n    var d = Infinity;\n    var prev;\n    var next;\n    var d1;\n    var d2;\n    _v0[0] = x;\n    _v0[1] = y;\n    for (var _t = 0; _t < 1; _t += 0.05) {\n        _v1[0] = cubicAt(x0, x1, x2, x3, _t);\n        _v1[1] = cubicAt(y0, y1, y2, y3, _t);\n        d1 = v2DistSquare(_v0, _v1);\n        if (d1 < d) {\n            t = _t;\n            d = d1;\n        }\n    }\n    d = Infinity;\n    for (var i = 0; i < 32; i++) {\n        if (interval < EPSILON_NUMERIC) {\n            break;\n        }\n        prev = t - interval;\n        next = t + interval;\n        _v1[0] = cubicAt(x0, x1, x2, x3, prev);\n        _v1[1] = cubicAt(y0, y1, y2, y3, prev);\n        d1 = v2DistSquare(_v1, _v0);\n        if (prev >= 0 && d1 < d) {\n            t = prev;\n            d = d1;\n        }\n        else {\n            _v2[0] = cubicAt(x0, x1, x2, x3, next);\n            _v2[1] = cubicAt(y0, y1, y2, y3, next);\n            d2 = v2DistSquare(_v2, _v0);\n            if (next <= 1 && d2 < d) {\n                t = next;\n                d = d2;\n            }\n            else {\n                interval *= 0.5;\n            }\n        }\n    }\n    if (out) {\n        out[0] = cubicAt(x0, x1, x2, x3, t);\n        out[1] = cubicAt(y0, y1, y2, y3, t);\n    }\n    return mathSqrt(d);\n}\nexport function cubicLength(x0, y0, x1, y1, x2, y2, x3, y3, iteration) {\n    var px = x0;\n    var py = y0;\n    var d = 0;\n    var step = 1 / iteration;\n    for (var i = 1; i <= iteration; i++) {\n        var t = i * step;\n        var x = cubicAt(x0, x1, x2, x3, t);\n        var y = cubicAt(y0, y1, y2, y3, t);\n        var dx = x - px;\n        var dy = y - py;\n        d += Math.sqrt(dx * dx + dy * dy);\n        px = x;\n        py = y;\n    }\n    return d;\n}\nexport function quadraticAt(p0, p1, p2, t) {\n    var onet = 1 - t;\n    return onet * (onet * p0 + 2 * t * p1) + t * t * p2;\n}\nexport function quadraticDerivativeAt(p0, p1, p2, t) {\n    return 2 * ((1 - t) * (p1 - p0) + t * (p2 - p1));\n}\nexport function quadraticRootAt(p0, p1, p2, val, roots) {\n    var a = p0 - 2 * p1 + p2;\n    var b = 2 * (p1 - p0);\n    var c = p0 - val;\n    var n = 0;\n    if (isAroundZero(a)) {\n        if (isNotAroundZero(b)) {\n            var t1 = -c / b;\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n        }\n    }\n    else {\n        var disc = b * b - 4 * a * c;\n        if (isAroundZero(disc)) {\n            var t1 = -b / (2 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n        }\n        else if (disc > 0) {\n            var discSqrt = mathSqrt(disc);\n            var t1 = (-b + discSqrt) / (2 * a);\n            var t2 = (-b - discSqrt) / (2 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n            if (t2 >= 0 && t2 <= 1) {\n                roots[n++] = t2;\n            }\n        }\n    }\n    return n;\n}\nexport function quadraticExtremum(p0, p1, p2) {\n    var divider = p0 + p2 - 2 * p1;\n    if (divider === 0) {\n        return 0.5;\n    }\n    else {\n        return (p0 - p1) / divider;\n    }\n}\nexport function quadraticSubdivide(p0, p1, p2, t, out) {\n    var p01 = (p1 - p0) * t + p0;\n    var p12 = (p2 - p1) * t + p1;\n    var p012 = (p12 - p01) * t + p01;\n    out[0] = p0;\n    out[1] = p01;\n    out[2] = p012;\n    out[3] = p012;\n    out[4] = p12;\n    out[5] = p2;\n}\nexport function quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, out) {\n    var t;\n    var interval = 0.005;\n    var d = Infinity;\n    _v0[0] = x;\n    _v0[1] = y;\n    for (var _t = 0; _t < 1; _t += 0.05) {\n        _v1[0] = quadraticAt(x0, x1, x2, _t);\n        _v1[1] = quadraticAt(y0, y1, y2, _t);\n        var d1 = v2DistSquare(_v0, _v1);\n        if (d1 < d) {\n            t = _t;\n            d = d1;\n        }\n    }\n    d = Infinity;\n    for (var i = 0; i < 32; i++) {\n        if (interval < EPSILON_NUMERIC) {\n            break;\n        }\n        var prev = t - interval;\n        var next = t + interval;\n        _v1[0] = quadraticAt(x0, x1, x2, prev);\n        _v1[1] = quadraticAt(y0, y1, y2, prev);\n        var d1 = v2DistSquare(_v1, _v0);\n        if (prev >= 0 && d1 < d) {\n            t = prev;\n            d = d1;\n        }\n        else {\n            _v2[0] = quadraticAt(x0, x1, x2, next);\n            _v2[1] = quadraticAt(y0, y1, y2, next);\n            var d2 = v2DistSquare(_v2, _v0);\n            if (next <= 1 && d2 < d) {\n                t = next;\n                d = d2;\n            }\n            else {\n                interval *= 0.5;\n            }\n        }\n    }\n    if (out) {\n        out[0] = quadraticAt(x0, x1, x2, t);\n        out[1] = quadraticAt(y0, y1, y2, t);\n    }\n    return mathSqrt(d);\n}\nexport function quadraticLength(x0, y0, x1, y1, x2, y2, iteration) {\n    var px = x0;\n    var py = y0;\n    var d = 0;\n    var step = 1 / iteration;\n    for (var i = 1; i <= iteration; i++) {\n        var t = i * step;\n        var x = quadraticAt(x0, x1, x2, t);\n        var y = quadraticAt(y0, y1, y2, t);\n        var dx = x - px;\n        var dy = y - py;\n        d += Math.sqrt(dx * dx + dy * dy);\n        px = x;\n        py = y;\n    }\n    return d;\n}\n","import * as vec2 from './vector';\nimport * as curve from './curve';\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI2 = Math.PI * 2;\nvar start = vec2.create();\nvar end = vec2.create();\nvar extremity = vec2.create();\nexport function fromPoints(points, min, max) {\n    if (points.length === 0) {\n        return;\n    }\n    var p = points[0];\n    var left = p[0];\n    var right = p[0];\n    var top = p[1];\n    var bottom = p[1];\n    for (var i = 1; i < points.length; i++) {\n        p = points[i];\n        left = mathMin(left, p[0]);\n        right = mathMax(right, p[0]);\n        top = mathMin(top, p[1]);\n        bottom = mathMax(bottom, p[1]);\n    }\n    min[0] = left;\n    min[1] = top;\n    max[0] = right;\n    max[1] = bottom;\n}\nexport function fromLine(x0, y0, x1, y1, min, max) {\n    min[0] = mathMin(x0, x1);\n    min[1] = mathMin(y0, y1);\n    max[0] = mathMax(x0, x1);\n    max[1] = mathMax(y0, y1);\n}\nvar xDim = [];\nvar yDim = [];\nexport function fromCubic(x0, y0, x1, y1, x2, y2, x3, y3, min, max) {\n    var cubicExtrema = curve.cubicExtrema;\n    var cubicAt = curve.cubicAt;\n    var n = cubicExtrema(x0, x1, x2, x3, xDim);\n    min[0] = Infinity;\n    min[1] = Infinity;\n    max[0] = -Infinity;\n    max[1] = -Infinity;\n    for (var i = 0; i < n; i++) {\n        var x = cubicAt(x0, x1, x2, x3, xDim[i]);\n        min[0] = mathMin(x, min[0]);\n        max[0] = mathMax(x, max[0]);\n    }\n    n = cubicExtrema(y0, y1, y2, y3, yDim);\n    for (var i = 0; i < n; i++) {\n        var y = cubicAt(y0, y1, y2, y3, yDim[i]);\n        min[1] = mathMin(y, min[1]);\n        max[1] = mathMax(y, max[1]);\n    }\n    min[0] = mathMin(x0, min[0]);\n    max[0] = mathMax(x0, max[0]);\n    min[0] = mathMin(x3, min[0]);\n    max[0] = mathMax(x3, max[0]);\n    min[1] = mathMin(y0, min[1]);\n    max[1] = mathMax(y0, max[1]);\n    min[1] = mathMin(y3, min[1]);\n    max[1] = mathMax(y3, max[1]);\n}\nexport function fromQuadratic(x0, y0, x1, y1, x2, y2, min, max) {\n    var quadraticExtremum = curve.quadraticExtremum;\n    var quadraticAt = curve.quadraticAt;\n    var tx = mathMax(mathMin(quadraticExtremum(x0, x1, x2), 1), 0);\n    var ty = mathMax(mathMin(quadraticExtremum(y0, y1, y2), 1), 0);\n    var x = quadraticAt(x0, x1, x2, tx);\n    var y = quadraticAt(y0, y1, y2, ty);\n    min[0] = mathMin(x0, x2, x);\n    min[1] = mathMin(y0, y2, y);\n    max[0] = mathMax(x0, x2, x);\n    max[1] = mathMax(y0, y2, y);\n}\nexport function fromArc(x, y, rx, ry, startAngle, endAngle, anticlockwise, min, max) {\n    var vec2Min = vec2.min;\n    var vec2Max = vec2.max;\n    var diff = Math.abs(startAngle - endAngle);\n    if (diff % PI2 < 1e-4 && diff > 1e-4) {\n        min[0] = x - rx;\n        min[1] = y - ry;\n        max[0] = x + rx;\n        max[1] = y + ry;\n        return;\n    }\n    start[0] = mathCos(startAngle) * rx + x;\n    start[1] = mathSin(startAngle) * ry + y;\n    end[0] = mathCos(endAngle) * rx + x;\n    end[1] = mathSin(endAngle) * ry + y;\n    vec2Min(min, start, end);\n    vec2Max(max, start, end);\n    startAngle = startAngle % (PI2);\n    if (startAngle < 0) {\n        startAngle = startAngle + PI2;\n    }\n    endAngle = endAngle % (PI2);\n    if (endAngle < 0) {\n        endAngle = endAngle + PI2;\n    }\n    if (startAngle > endAngle && !anticlockwise) {\n        endAngle += PI2;\n    }\n    else if (startAngle < endAngle && anticlockwise) {\n        startAngle += PI2;\n    }\n    if (anticlockwise) {\n        var tmp = endAngle;\n        endAngle = startAngle;\n        startAngle = tmp;\n    }\n    for (var angle = 0; angle < endAngle; angle += Math.PI / 2) {\n        if (angle > startAngle) {\n            extremity[0] = mathCos(angle) * rx + x;\n            extremity[1] = mathSin(angle) * ry + y;\n            vec2Min(min, extremity, min);\n            vec2Max(max, extremity, max);\n        }\n    }\n}\n","import * as vec2 from './vector';\nimport BoundingRect from './BoundingRect';\nimport { devicePixelRatio as dpr } from '../config';\nimport { fromLine, fromCubic, fromQuadratic, fromArc } from './bbox';\nimport { cubicAt, cubicLength, cubicSubdivide, quadraticLength, quadraticSubdivide } from './curve';\nvar CMD = {\n    M: 1,\n    L: 2,\n    C: 3,\n    Q: 4,\n    A: 5,\n    Z: 6,\n    R: 7\n};\nvar tmpOutX = [];\nvar tmpOutY = [];\nvar min = [];\nvar max = [];\nvar min2 = [];\nvar max2 = [];\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathCos = Math.cos;\nvar mathSin = Math.sin;\nvar mathSqrt = Math.sqrt;\nvar mathAbs = Math.abs;\nvar PI = Math.PI;\nvar PI2 = PI * 2;\nvar hasTypedArray = typeof Float32Array !== 'undefined';\nvar tmpAngles = [];\nfunction modPI2(radian) {\n    var n = Math.round(radian / PI * 1e8) / 1e8;\n    return (n % 2) * PI;\n}\nexport function normalizeArcAngles(angles, anticlockwise) {\n    var newStartAngle = modPI2(angles[0]);\n    if (newStartAngle < 0) {\n        newStartAngle += PI2;\n    }\n    var delta = newStartAngle - angles[0];\n    var newEndAngle = angles[1];\n    newEndAngle += delta;\n    if (!anticlockwise && newEndAngle - newStartAngle >= PI2) {\n        newEndAngle = newStartAngle + PI2;\n    }\n    else if (anticlockwise && newStartAngle - newEndAngle >= PI2) {\n        newEndAngle = newStartAngle - PI2;\n    }\n    else if (!anticlockwise && newStartAngle > newEndAngle) {\n        newEndAngle = newStartAngle +\n            (PI2 - modPI2(newStartAngle - newEndAngle));\n    }\n    else if (anticlockwise && newStartAngle < newEndAngle) {\n        newEndAngle = newStartAngle -\n            (PI2 - modPI2(newEndAngle - newStartAngle));\n    }\n    angles[0] = newStartAngle;\n    angles[1] = newEndAngle;\n}\nvar PathProxy = (function () {\n    function PathProxy(notSaveData) {\n        this.dpr = 1;\n        this._version = 0;\n        this._xi = 0;\n        this._yi = 0;\n        this._x0 = 0;\n        this._y0 = 0;\n        this._len = 0;\n        if (notSaveData) {\n            this._saveData = false;\n        }\n        if (this._saveData) {\n            this.data = [];\n        }\n    }\n    PathProxy.prototype.increaseVersion = function () {\n        this._version++;\n    };\n    PathProxy.prototype.getVersion = function () {\n        return this._version;\n    };\n    PathProxy.prototype.setScale = function (sx, sy, segmentIgnoreThreshold) {\n        segmentIgnoreThreshold = segmentIgnoreThreshold || 0;\n        if (segmentIgnoreThreshold > 0) {\n            this._ux = mathAbs(segmentIgnoreThreshold / dpr / sx) || 0;\n            this._uy = mathAbs(segmentIgnoreThreshold / dpr / sy) || 0;\n        }\n    };\n    PathProxy.prototype.setDPR = function (dpr) {\n        this.dpr = dpr;\n    };\n    PathProxy.prototype.setContext = function (ctx) {\n        this._ctx = ctx;\n    };\n    PathProxy.prototype.getContext = function () {\n        return this._ctx;\n    };\n    PathProxy.prototype.beginPath = function () {\n        this._ctx && this._ctx.beginPath();\n        this.reset();\n        return this;\n    };\n    PathProxy.prototype.reset = function () {\n        if (this._saveData) {\n            this._len = 0;\n        }\n        if (this._lineDash) {\n            this._lineDash = null;\n            this._dashOffset = 0;\n        }\n        if (this._pathSegLen) {\n            this._pathSegLen = null;\n            this._pathLen = 0;\n        }\n        this._version++;\n    };\n    PathProxy.prototype.moveTo = function (x, y) {\n        this.addData(CMD.M, x, y);\n        this._ctx && this._ctx.moveTo(x, y);\n        this._x0 = x;\n        this._y0 = y;\n        this._xi = x;\n        this._yi = y;\n        return this;\n    };\n    PathProxy.prototype.lineTo = function (x, y) {\n        var exceedUnit = mathAbs(x - this._xi) > this._ux\n            || mathAbs(y - this._yi) > this._uy\n            || this._len < 5;\n        this.addData(CMD.L, x, y);\n        if (this._ctx && exceedUnit) {\n            this._needsDash ? this._dashedLineTo(x, y)\n                : this._ctx.lineTo(x, y);\n        }\n        if (exceedUnit) {\n            this._xi = x;\n            this._yi = y;\n        }\n        return this;\n    };\n    PathProxy.prototype.bezierCurveTo = function (x1, y1, x2, y2, x3, y3) {\n        this.addData(CMD.C, x1, y1, x2, y2, x3, y3);\n        if (this._ctx) {\n            this._needsDash ? this._dashedBezierTo(x1, y1, x2, y2, x3, y3)\n                : this._ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\n        }\n        this._xi = x3;\n        this._yi = y3;\n        return this;\n    };\n    PathProxy.prototype.quadraticCurveTo = function (x1, y1, x2, y2) {\n        this.addData(CMD.Q, x1, y1, x2, y2);\n        if (this._ctx) {\n            this._needsDash ? this._dashedQuadraticTo(x1, y1, x2, y2)\n                : this._ctx.quadraticCurveTo(x1, y1, x2, y2);\n        }\n        this._xi = x2;\n        this._yi = y2;\n        return this;\n    };\n    PathProxy.prototype.arc = function (cx, cy, r, startAngle, endAngle, anticlockwise) {\n        tmpAngles[0] = startAngle;\n        tmpAngles[1] = endAngle;\n        normalizeArcAngles(tmpAngles, anticlockwise);\n        startAngle = tmpAngles[0];\n        endAngle = tmpAngles[1];\n        var delta = endAngle - startAngle;\n        this.addData(CMD.A, cx, cy, r, r, startAngle, delta, 0, anticlockwise ? 0 : 1);\n        this._ctx && this._ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\n        this._xi = mathCos(endAngle) * r + cx;\n        this._yi = mathSin(endAngle) * r + cy;\n        return this;\n    };\n    PathProxy.prototype.arcTo = function (x1, y1, x2, y2, radius) {\n        if (this._ctx) {\n            this._ctx.arcTo(x1, y1, x2, y2, radius);\n        }\n        return this;\n    };\n    PathProxy.prototype.rect = function (x, y, w, h) {\n        this._ctx && this._ctx.rect(x, y, w, h);\n        this.addData(CMD.R, x, y, w, h);\n        return this;\n    };\n    PathProxy.prototype.closePath = function () {\n        this.addData(CMD.Z);\n        var ctx = this._ctx;\n        var x0 = this._x0;\n        var y0 = this._y0;\n        if (ctx) {\n            this._needsDash && this._dashedLineTo(x0, y0);\n            ctx.closePath();\n        }\n        this._xi = x0;\n        this._yi = y0;\n        return this;\n    };\n    PathProxy.prototype.fill = function (ctx) {\n        ctx && ctx.fill();\n        this.toStatic();\n    };\n    PathProxy.prototype.stroke = function (ctx) {\n        ctx && ctx.stroke();\n        this.toStatic();\n    };\n    PathProxy.prototype.setLineDash = function (lineDash) {\n        if (lineDash instanceof Array) {\n            this._lineDash = lineDash;\n            this._dashIdx = 0;\n            var lineDashSum = 0;\n            for (var i = 0; i < lineDash.length; i++) {\n                lineDashSum += lineDash[i];\n            }\n            this._dashSum = lineDashSum;\n            this._needsDash = true;\n        }\n        else {\n            this._lineDash = null;\n            this._needsDash = false;\n        }\n        return this;\n    };\n    PathProxy.prototype.setLineDashOffset = function (offset) {\n        this._dashOffset = offset;\n        return this;\n    };\n    PathProxy.prototype.len = function () {\n        return this._len;\n    };\n    PathProxy.prototype.setData = function (data) {\n        var len = data.length;\n        if (!(this.data && this.data.length === len) && hasTypedArray) {\n            this.data = new Float32Array(len);\n        }\n        for (var i = 0; i < len; i++) {\n            this.data[i] = data[i];\n        }\n        this._len = len;\n    };\n    PathProxy.prototype.appendPath = function (path) {\n        if (!(path instanceof Array)) {\n            path = [path];\n        }\n        var len = path.length;\n        var appendSize = 0;\n        var offset = this._len;\n        for (var i = 0; i < len; i++) {\n            appendSize += path[i].len();\n        }\n        if (hasTypedArray && (this.data instanceof Float32Array)) {\n            this.data = new Float32Array(offset + appendSize);\n        }\n        for (var i = 0; i < len; i++) {\n            var appendPathData = path[i].data;\n            for (var k = 0; k < appendPathData.length; k++) {\n                this.data[offset++] = appendPathData[k];\n            }\n        }\n        this._len = offset;\n    };\n    PathProxy.prototype.addData = function (cmd, a, b, c, d, e, f, g, h) {\n        if (!this._saveData) {\n            return;\n        }\n        var data = this.data;\n        if (this._len + arguments.length > data.length) {\n            this._expandData();\n            data = this.data;\n        }\n        for (var i = 0; i < arguments.length; i++) {\n            data[this._len++] = arguments[i];\n        }\n    };\n    PathProxy.prototype._expandData = function () {\n        if (!(this.data instanceof Array)) {\n            var newData = [];\n            for (var i = 0; i < this._len; i++) {\n                newData[i] = this.data[i];\n            }\n            this.data = newData;\n        }\n    };\n    PathProxy.prototype._dashedLineTo = function (x1, y1) {\n        var dashSum = this._dashSum;\n        var lineDash = this._lineDash;\n        var ctx = this._ctx;\n        var offset = this._dashOffset;\n        var x0 = this._xi;\n        var y0 = this._yi;\n        var dx = x1 - x0;\n        var dy = y1 - y0;\n        var dist = mathSqrt(dx * dx + dy * dy);\n        var x = x0;\n        var y = y0;\n        var nDash = lineDash.length;\n        var dash;\n        var idx;\n        dx /= dist;\n        dy /= dist;\n        if (offset < 0) {\n            offset = dashSum + offset;\n        }\n        offset %= dashSum;\n        x -= offset * dx;\n        y -= offset * dy;\n        while ((dx > 0 && x <= x1) || (dx < 0 && x >= x1)\n            || (dx === 0 && ((dy > 0 && y <= y1) || (dy < 0 && y >= y1)))) {\n            idx = this._dashIdx;\n            dash = lineDash[idx];\n            x += dx * dash;\n            y += dy * dash;\n            this._dashIdx = (idx + 1) % nDash;\n            if ((dx > 0 && x < x0) || (dx < 0 && x > x0) || (dy > 0 && y < y0) || (dy < 0 && y > y0)) {\n                continue;\n            }\n            ctx[idx % 2 ? 'moveTo' : 'lineTo'](dx >= 0 ? mathMin(x, x1) : mathMax(x, x1), dy >= 0 ? mathMin(y, y1) : mathMax(y, y1));\n        }\n        dx = x - x1;\n        dy = y - y1;\n        this._dashOffset = -mathSqrt(dx * dx + dy * dy);\n    };\n    PathProxy.prototype._dashedBezierTo = function (x1, y1, x2, y2, x3, y3) {\n        var ctx = this._ctx;\n        var dashSum = this._dashSum;\n        var offset = this._dashOffset;\n        var lineDash = this._lineDash;\n        var x0 = this._xi;\n        var y0 = this._yi;\n        var bezierLen = 0;\n        var idx = this._dashIdx;\n        var nDash = lineDash.length;\n        var t;\n        var dx;\n        var dy;\n        var x;\n        var y;\n        var tmpLen = 0;\n        if (offset < 0) {\n            offset = dashSum + offset;\n        }\n        offset %= dashSum;\n        for (t = 0; t < 1; t += 0.1) {\n            dx = cubicAt(x0, x1, x2, x3, t + 0.1)\n                - cubicAt(x0, x1, x2, x3, t);\n            dy = cubicAt(y0, y1, y2, y3, t + 0.1)\n                - cubicAt(y0, y1, y2, y3, t);\n            bezierLen += mathSqrt(dx * dx + dy * dy);\n        }\n        for (; idx < nDash; idx++) {\n            tmpLen += lineDash[idx];\n            if (tmpLen > offset) {\n                break;\n            }\n        }\n        t = (tmpLen - offset) / bezierLen;\n        while (t <= 1) {\n            x = cubicAt(x0, x1, x2, x3, t);\n            y = cubicAt(y0, y1, y2, y3, t);\n            idx % 2 ? ctx.moveTo(x, y)\n                : ctx.lineTo(x, y);\n            t += lineDash[idx] / bezierLen;\n            idx = (idx + 1) % nDash;\n        }\n        (idx % 2 !== 0) && ctx.lineTo(x3, y3);\n        dx = x3 - x;\n        dy = y3 - y;\n        this._dashOffset = -mathSqrt(dx * dx + dy * dy);\n    };\n    PathProxy.prototype._dashedQuadraticTo = function (x1, y1, x2, y2) {\n        var x3 = x2;\n        var y3 = y2;\n        x2 = (x2 + 2 * x1) / 3;\n        y2 = (y2 + 2 * y1) / 3;\n        x1 = (this._xi + 2 * x1) / 3;\n        y1 = (this._yi + 2 * y1) / 3;\n        this._dashedBezierTo(x1, y1, x2, y2, x3, y3);\n    };\n    PathProxy.prototype.toStatic = function () {\n        if (!this._saveData) {\n            return;\n        }\n        var data = this.data;\n        if (data instanceof Array) {\n            data.length = this._len;\n            if (hasTypedArray && this._len > 11) {\n                this.data = new Float32Array(data);\n            }\n        }\n    };\n    PathProxy.prototype.getBoundingRect = function () {\n        min[0] = min[1] = min2[0] = min2[1] = Number.MAX_VALUE;\n        max[0] = max[1] = max2[0] = max2[1] = -Number.MAX_VALUE;\n        var data = this.data;\n        var xi = 0;\n        var yi = 0;\n        var x0 = 0;\n        var y0 = 0;\n        var i;\n        for (i = 0; i < this._len;) {\n            var cmd = data[i++];\n            var isFirst = i === 1;\n            if (isFirst) {\n                xi = data[i];\n                yi = data[i + 1];\n                x0 = xi;\n                y0 = yi;\n            }\n            switch (cmd) {\n                case CMD.M:\n                    xi = x0 = data[i++];\n                    yi = y0 = data[i++];\n                    min2[0] = x0;\n                    min2[1] = y0;\n                    max2[0] = x0;\n                    max2[1] = y0;\n                    break;\n                case CMD.L:\n                    fromLine(xi, yi, data[i], data[i + 1], min2, max2);\n                    xi = data[i++];\n                    yi = data[i++];\n                    break;\n                case CMD.C:\n                    fromCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], min2, max2);\n                    xi = data[i++];\n                    yi = data[i++];\n                    break;\n                case CMD.Q:\n                    fromQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], min2, max2);\n                    xi = data[i++];\n                    yi = data[i++];\n                    break;\n                case CMD.A:\n                    var cx = data[i++];\n                    var cy = data[i++];\n                    var rx = data[i++];\n                    var ry = data[i++];\n                    var startAngle = data[i++];\n                    var endAngle = data[i++] + startAngle;\n                    i += 1;\n                    var anticlockwise = !data[i++];\n                    if (isFirst) {\n                        x0 = mathCos(startAngle) * rx + cx;\n                        y0 = mathSin(startAngle) * ry + cy;\n                    }\n                    fromArc(cx, cy, rx, ry, startAngle, endAngle, anticlockwise, min2, max2);\n                    xi = mathCos(endAngle) * rx + cx;\n                    yi = mathSin(endAngle) * ry + cy;\n                    break;\n                case CMD.R:\n                    x0 = xi = data[i++];\n                    y0 = yi = data[i++];\n                    var width = data[i++];\n                    var height = data[i++];\n                    fromLine(x0, y0, x0 + width, y0 + height, min2, max2);\n                    break;\n                case CMD.Z:\n                    xi = x0;\n                    yi = y0;\n                    break;\n            }\n            vec2.min(min, min, min2);\n            vec2.max(max, max, max2);\n        }\n        if (i === 0) {\n            min[0] = min[1] = max[0] = max[1] = 0;\n        }\n        return new BoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n    };\n    PathProxy.prototype._calculateLength = function () {\n        var data = this.data;\n        var len = this._len;\n        var ux = this._ux;\n        var uy = this._uy;\n        var xi = 0;\n        var yi = 0;\n        var x0 = 0;\n        var y0 = 0;\n        if (!this._pathSegLen) {\n            this._pathSegLen = [];\n        }\n        var pathSegLen = this._pathSegLen;\n        var pathTotalLen = 0;\n        var segCount = 0;\n        for (var i = 0; i < len;) {\n            var cmd = data[i++];\n            var isFirst = i === 1;\n            if (isFirst) {\n                xi = data[i];\n                yi = data[i + 1];\n                x0 = xi;\n                y0 = yi;\n            }\n            var l = -1;\n            switch (cmd) {\n                case CMD.M:\n                    xi = x0 = data[i++];\n                    yi = y0 = data[i++];\n                    break;\n                case CMD.L: {\n                    var x2 = data[i++];\n                    var y2 = data[i++];\n                    var dx = x2 - xi;\n                    var dy = y2 - yi;\n                    if (mathAbs(dx) > ux || mathAbs(dy) > uy || i === len - 1) {\n                        l = Math.sqrt(dx * dx + dy * dy);\n                        xi = x2;\n                        yi = y2;\n                    }\n                    break;\n                }\n                case CMD.C: {\n                    var x1 = data[i++];\n                    var y1 = data[i++];\n                    var x2 = data[i++];\n                    var y2 = data[i++];\n                    var x3 = data[i++];\n                    var y3 = data[i++];\n                    l = cubicLength(xi, yi, x1, y1, x2, y2, x3, y3, 10);\n                    xi = x3;\n                    yi = y3;\n                    break;\n                }\n                case CMD.Q: {\n                    var x1 = data[i++];\n                    var y1 = data[i++];\n                    var x2 = data[i++];\n                    var y2 = data[i++];\n                    l = quadraticLength(xi, yi, x1, y1, x2, y2, 10);\n                    xi = x2;\n                    yi = y2;\n                    break;\n                }\n                case CMD.A:\n                    var cx = data[i++];\n                    var cy = data[i++];\n                    var rx = data[i++];\n                    var ry = data[i++];\n                    var startAngle = data[i++];\n                    var delta = data[i++];\n                    var endAngle = delta + startAngle;\n                    i += 1;\n                    var anticlockwise = !data[i++];\n                    if (isFirst) {\n                        x0 = mathCos(startAngle) * rx + cx;\n                        y0 = mathSin(startAngle) * ry + cy;\n                    }\n                    l = mathMax(rx, ry) * mathMin(PI2, Math.abs(delta));\n                    xi = mathCos(endAngle) * rx + cx;\n                    yi = mathSin(endAngle) * ry + cy;\n                    break;\n                case CMD.R: {\n                    x0 = xi = data[i++];\n                    y0 = yi = data[i++];\n                    var width = data[i++];\n                    var height = data[i++];\n                    l = width * 2 + height * 2;\n                    break;\n                }\n                case CMD.Z: {\n                    var dx = x0 - xi;\n                    var dy = y0 - yi;\n                    l = Math.sqrt(dx * dx + dy * dy);\n                    xi = x0;\n                    yi = y0;\n                    break;\n                }\n            }\n            if (l >= 0) {\n                pathSegLen[segCount++] = l;\n                pathTotalLen += l;\n            }\n        }\n        this._pathLen = pathTotalLen;\n        return pathTotalLen;\n    };\n    PathProxy.prototype.rebuildPath = function (ctx, percent) {\n        var d = this.data;\n        var ux = this._ux;\n        var uy = this._uy;\n        var len = this._len;\n        var x0;\n        var y0;\n        var xi;\n        var yi;\n        var x;\n        var y;\n        var drawPart = percent < 1;\n        var pathSegLen;\n        var pathTotalLen;\n        var accumLength = 0;\n        var segCount = 0;\n        var displayedLength;\n        if (drawPart) {\n            if (!this._pathSegLen) {\n                this._calculateLength();\n            }\n            pathSegLen = this._pathSegLen;\n            pathTotalLen = this._pathLen;\n            displayedLength = percent * pathTotalLen;\n            if (!displayedLength) {\n                return;\n            }\n        }\n        lo: for (var i = 0; i < len;) {\n            var cmd = d[i++];\n            var isFirst = i === 1;\n            if (isFirst) {\n                xi = d[i];\n                yi = d[i + 1];\n                x0 = xi;\n                y0 = yi;\n            }\n            switch (cmd) {\n                case CMD.M:\n                    x0 = xi = d[i++];\n                    y0 = yi = d[i++];\n                    ctx.moveTo(xi, yi);\n                    break;\n                case CMD.L: {\n                    x = d[i++];\n                    y = d[i++];\n                    if (mathAbs(x - xi) > ux || mathAbs(y - yi) > uy || i === len - 1) {\n                        if (drawPart) {\n                            var l = pathSegLen[segCount++];\n                            if (accumLength + l > displayedLength) {\n                                var t = (displayedLength - accumLength) / l;\n                                ctx.lineTo(xi * (1 - t) + x * t, yi * (1 - t) + y * t);\n                                break lo;\n                            }\n                            accumLength += l;\n                        }\n                        ctx.lineTo(x, y);\n                        xi = x;\n                        yi = y;\n                    }\n                    break;\n                }\n                case CMD.C: {\n                    var x1 = d[i++];\n                    var y1 = d[i++];\n                    var x2 = d[i++];\n                    var y2 = d[i++];\n                    var x3 = d[i++];\n                    var y3 = d[i++];\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            var t = (displayedLength - accumLength) / l;\n                            cubicSubdivide(xi, x1, x2, x3, t, tmpOutX);\n                            cubicSubdivide(yi, y1, y2, y3, t, tmpOutY);\n                            ctx.bezierCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2], tmpOutX[3], tmpOutY[3]);\n                            break lo;\n                        }\n                        accumLength += l;\n                    }\n                    ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\n                    xi = x3;\n                    yi = y3;\n                    break;\n                }\n                case CMD.Q: {\n                    var x1 = d[i++];\n                    var y1 = d[i++];\n                    var x2 = d[i++];\n                    var y2 = d[i++];\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            var t = (displayedLength - accumLength) / l;\n                            quadraticSubdivide(xi, x1, x2, t, tmpOutX);\n                            quadraticSubdivide(yi, y1, y2, t, tmpOutY);\n                            ctx.quadraticCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2]);\n                            break lo;\n                        }\n                        accumLength += l;\n                    }\n                    ctx.quadraticCurveTo(x1, y1, x2, y2);\n                    xi = x2;\n                    yi = y2;\n                    break;\n                }\n                case CMD.A:\n                    var cx = d[i++];\n                    var cy = d[i++];\n                    var rx = d[i++];\n                    var ry = d[i++];\n                    var startAngle = d[i++];\n                    var delta = d[i++];\n                    var psi = d[i++];\n                    var anticlockwise = !d[i++];\n                    var r = (rx > ry) ? rx : ry;\n                    var scaleX = (rx > ry) ? 1 : rx / ry;\n                    var scaleY = (rx > ry) ? ry / rx : 1;\n                    var isEllipse = mathAbs(rx - ry) > 1e-3;\n                    var endAngle = startAngle + delta;\n                    var breakBuild = false;\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            endAngle = startAngle + delta * (displayedLength - accumLength) / l;\n                            breakBuild = true;\n                        }\n                        accumLength += l;\n                    }\n                    if (isEllipse && ctx.ellipse) {\n                        ctx.ellipse(cx, cy, rx, ry, psi, startAngle, endAngle, anticlockwise);\n                    }\n                    else {\n                        ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\n                    }\n                    if (breakBuild) {\n                        break lo;\n                    }\n                    if (isFirst) {\n                        x0 = mathCos(startAngle) * rx + cx;\n                        y0 = mathSin(startAngle) * ry + cy;\n                    }\n                    xi = mathCos(endAngle) * rx + cx;\n                    yi = mathSin(endAngle) * ry + cy;\n                    break;\n                case CMD.R:\n                    x0 = xi = d[i];\n                    y0 = yi = d[i + 1];\n                    x = d[i++];\n                    y = d[i++];\n                    var width = d[i++];\n                    var height = d[i++];\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            var d_1 = displayedLength - accumLength;\n                            ctx.moveTo(x, y);\n                            ctx.lineTo(x + mathMin(d_1, width), y);\n                            d_1 -= width;\n                            if (d_1 > 0) {\n                                ctx.lineTo(x + width, y + mathMin(d_1, height));\n                            }\n                            d_1 -= height;\n                            if (d_1 > 0) {\n                                ctx.lineTo(x + mathMax(width - d_1, 0), y + height);\n                            }\n                            d_1 -= width;\n                            if (d_1 > 0) {\n                                ctx.lineTo(x, y + mathMax(height - d_1, 0));\n                            }\n                            break lo;\n                        }\n                        accumLength += l;\n                    }\n                    ctx.rect(x, y, width, height);\n                    break;\n                case CMD.Z:\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            var t = (displayedLength - accumLength) / l;\n                            ctx.lineTo(xi * (1 - t) + x0 * t, yi * (1 - t) + y0 * t);\n                            break lo;\n                        }\n                        accumLength += l;\n                    }\n                    ctx.closePath();\n                    xi = x0;\n                    yi = y0;\n            }\n        }\n    };\n    PathProxy.CMD = CMD;\n    PathProxy.initDefaultProps = (function () {\n        var proto = PathProxy.prototype;\n        proto._saveData = true;\n        proto._needsDash = false;\n        proto._dashOffset = 0;\n        proto._dashIdx = 0;\n        proto._dashSum = 0;\n        proto._ux = 0;\n        proto._uy = 0;\n    })();\n    return PathProxy;\n}());\nexport default PathProxy;\n","export function containStroke(x0, y0, x1, y1, lineWidth, x, y) {\n    if (lineWidth === 0) {\n        return false;\n    }\n    var _l = lineWidth;\n    var _a = 0;\n    var _b = x0;\n    if ((y > y0 + _l && y > y1 + _l)\n        || (y < y0 - _l && y < y1 - _l)\n        || (x > x0 + _l && x > x1 + _l)\n        || (x < x0 - _l && x < x1 - _l)) {\n        return false;\n    }\n    if (x0 !== x1) {\n        _a = (y0 - y1) / (x0 - x1);\n        _b = (x0 * y1 - x1 * y0) / (x0 - x1);\n    }\n    else {\n        return Math.abs(x - x0) <= _l / 2;\n    }\n    var tmp = _a * x - y + _b;\n    var _s = tmp * tmp / (_a * _a + 1);\n    return _s <= _l / 2 * _l / 2;\n}\n","import * as curve from '../core/curve';\nexport function containStroke(x0, y0, x1, y1, x2, y2, x3, y3, lineWidth, x, y) {\n    if (lineWidth === 0) {\n        return false;\n    }\n    var _l = lineWidth;\n    if ((y > y0 + _l && y > y1 + _l && y > y2 + _l && y > y3 + _l)\n        || (y < y0 - _l && y < y1 - _l && y < y2 - _l && y < y3 - _l)\n        || (x > x0 + _l && x > x1 + _l && x > x2 + _l && x > x3 + _l)\n        || (x < x0 - _l && x < x1 - _l && x < x2 - _l && x < x3 - _l)) {\n        return false;\n    }\n    var d = curve.cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, null);\n    return d <= _l / 2;\n}\n","import { quadraticProjectPoint } from '../core/curve';\nexport function containStroke(x0, y0, x1, y1, x2, y2, lineWidth, x, y) {\n    if (lineWidth === 0) {\n        return false;\n    }\n    var _l = lineWidth;\n    if ((y > y0 + _l && y > y1 + _l && y > y2 + _l)\n        || (y < y0 - _l && y < y1 - _l && y < y2 - _l)\n        || (x > x0 + _l && x > x1 + _l && x > x2 + _l)\n        || (x < x0 - _l && x < x1 - _l && x < x2 - _l)) {\n        return false;\n    }\n    var d = quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, null);\n    return d <= _l / 2;\n}\n","var PI2 = Math.PI * 2;\nexport function normalizeRadian(angle) {\n    angle %= PI2;\n    if (angle < 0) {\n        angle += PI2;\n    }\n    return angle;\n}\n","import { normalizeRadian } from './util';\nvar PI2 = Math.PI * 2;\nexport function containStroke(cx, cy, r, startAngle, endAngle, anticlockwise, lineWidth, x, y) {\n    if (lineWidth === 0) {\n        return false;\n    }\n    var _l = lineWidth;\n    x -= cx;\n    y -= cy;\n    var d = Math.sqrt(x * x + y * y);\n    if ((d - _l > r) || (d + _l < r)) {\n        return false;\n    }\n    if (Math.abs(startAngle - endAngle) % PI2 < 1e-4) {\n        return true;\n    }\n    if (anticlockwise) {\n        var tmp = startAngle;\n        startAngle = normalizeRadian(endAngle);\n        endAngle = normalizeRadian(tmp);\n    }\n    else {\n        startAngle = normalizeRadian(startAngle);\n        endAngle = normalizeRadian(endAngle);\n    }\n    if (startAngle > endAngle) {\n        endAngle += PI2;\n    }\n    var angle = Math.atan2(y, x);\n    if (angle < 0) {\n        angle += PI2;\n    }\n    return (angle >= startAngle && angle <= endAngle)\n        || (angle + PI2 >= startAngle && angle + PI2 <= endAngle);\n}\n","export default function windingLine(x0, y0, x1, y1, x, y) {\n    if ((y > y0 && y > y1) || (y < y0 && y < y1)) {\n        return 0;\n    }\n    if (y1 === y0) {\n        return 0;\n    }\n    var t = (y - y0) / (y1 - y0);\n    var dir = y1 < y0 ? 1 : -1;\n    if (t === 1 || t === 0) {\n        dir = y1 < y0 ? 0.5 : -0.5;\n    }\n    var x_ = t * (x1 - x0) + x0;\n    return x_ === x ? Infinity : x_ > x ? dir : 0;\n}\n","import PathProxy from '../core/PathProxy';\nimport * as line from './line';\nimport * as cubic from './cubic';\nimport * as quadratic from './quadratic';\nimport * as arc from './arc';\nimport * as curve from '../core/curve';\nimport windingLine from './windingLine';\nvar CMD = PathProxy.CMD;\nvar PI2 = Math.PI * 2;\nvar EPSILON = 1e-4;\nfunction isAroundEqual(a, b) {\n    return Math.abs(a - b) < EPSILON;\n}\nvar roots = [-1, -1, -1];\nvar extrema = [-1, -1];\nfunction swapExtrema() {\n    var tmp = extrema[0];\n    extrema[0] = extrema[1];\n    extrema[1] = tmp;\n}\nfunction windingCubic(x0, y0, x1, y1, x2, y2, x3, y3, x, y) {\n    if ((y > y0 && y > y1 && y > y2 && y > y3)\n        || (y < y0 && y < y1 && y < y2 && y < y3)) {\n        return 0;\n    }\n    var nRoots = curve.cubicRootAt(y0, y1, y2, y3, y, roots);\n    if (nRoots === 0) {\n        return 0;\n    }\n    else {\n        var w = 0;\n        var nExtrema = -1;\n        var y0_ = void 0;\n        var y1_ = void 0;\n        for (var i = 0; i < nRoots; i++) {\n            var t = roots[i];\n            var unit = (t === 0 || t === 1) ? 0.5 : 1;\n            var x_ = curve.cubicAt(x0, x1, x2, x3, t);\n            if (x_ < x) {\n                continue;\n            }\n            if (nExtrema < 0) {\n                nExtrema = curve.cubicExtrema(y0, y1, y2, y3, extrema);\n                if (extrema[1] < extrema[0] && nExtrema > 1) {\n                    swapExtrema();\n                }\n                y0_ = curve.cubicAt(y0, y1, y2, y3, extrema[0]);\n                if (nExtrema > 1) {\n                    y1_ = curve.cubicAt(y0, y1, y2, y3, extrema[1]);\n                }\n            }\n            if (nExtrema === 2) {\n                if (t < extrema[0]) {\n                    w += y0_ < y0 ? unit : -unit;\n                }\n                else if (t < extrema[1]) {\n                    w += y1_ < y0_ ? unit : -unit;\n                }\n                else {\n                    w += y3 < y1_ ? unit : -unit;\n                }\n            }\n            else {\n                if (t < extrema[0]) {\n                    w += y0_ < y0 ? unit : -unit;\n                }\n                else {\n                    w += y3 < y0_ ? unit : -unit;\n                }\n            }\n        }\n        return w;\n    }\n}\nfunction windingQuadratic(x0, y0, x1, y1, x2, y2, x, y) {\n    if ((y > y0 && y > y1 && y > y2)\n        || (y < y0 && y < y1 && y < y2)) {\n        return 0;\n    }\n    var nRoots = curve.quadraticRootAt(y0, y1, y2, y, roots);\n    if (nRoots === 0) {\n        return 0;\n    }\n    else {\n        var t = curve.quadraticExtremum(y0, y1, y2);\n        if (t >= 0 && t <= 1) {\n            var w = 0;\n            var y_ = curve.quadraticAt(y0, y1, y2, t);\n            for (var i = 0; i < nRoots; i++) {\n                var unit = (roots[i] === 0 || roots[i] === 1) ? 0.5 : 1;\n                var x_ = curve.quadraticAt(x0, x1, x2, roots[i]);\n                if (x_ < x) {\n                    continue;\n                }\n                if (roots[i] < t) {\n                    w += y_ < y0 ? unit : -unit;\n                }\n                else {\n                    w += y2 < y_ ? unit : -unit;\n                }\n            }\n            return w;\n        }\n        else {\n            var unit = (roots[0] === 0 || roots[0] === 1) ? 0.5 : 1;\n            var x_ = curve.quadraticAt(x0, x1, x2, roots[0]);\n            if (x_ < x) {\n                return 0;\n            }\n            return y2 < y0 ? unit : -unit;\n        }\n    }\n}\nfunction windingArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y) {\n    y -= cy;\n    if (y > r || y < -r) {\n        return 0;\n    }\n    var tmp = Math.sqrt(r * r - y * y);\n    roots[0] = -tmp;\n    roots[1] = tmp;\n    var dTheta = Math.abs(startAngle - endAngle);\n    if (dTheta < 1e-4) {\n        return 0;\n    }\n    if (dTheta >= PI2 - 1e-4) {\n        startAngle = 0;\n        endAngle = PI2;\n        var dir = anticlockwise ? 1 : -1;\n        if (x >= roots[0] + cx && x <= roots[1] + cx) {\n            return dir;\n        }\n        else {\n            return 0;\n        }\n    }\n    if (startAngle > endAngle) {\n        var tmp_1 = startAngle;\n        startAngle = endAngle;\n        endAngle = tmp_1;\n    }\n    if (startAngle < 0) {\n        startAngle += PI2;\n        endAngle += PI2;\n    }\n    var w = 0;\n    for (var i = 0; i < 2; i++) {\n        var x_ = roots[i];\n        if (x_ + cx > x) {\n            var angle = Math.atan2(y, x_);\n            var dir = anticlockwise ? 1 : -1;\n            if (angle < 0) {\n                angle = PI2 + angle;\n            }\n            if ((angle >= startAngle && angle <= endAngle)\n                || (angle + PI2 >= startAngle && angle + PI2 <= endAngle)) {\n                if (angle > Math.PI / 2 && angle < Math.PI * 1.5) {\n                    dir = -dir;\n                }\n                w += dir;\n            }\n        }\n    }\n    return w;\n}\nfunction containPath(path, lineWidth, isStroke, x, y) {\n    var data = path.data;\n    var len = path.len();\n    var w = 0;\n    var xi = 0;\n    var yi = 0;\n    var x0 = 0;\n    var y0 = 0;\n    var x1;\n    var y1;\n    for (var i = 0; i < len;) {\n        var cmd = data[i++];\n        var isFirst = i === 1;\n        if (cmd === CMD.M && i > 1) {\n            if (!isStroke) {\n                w += windingLine(xi, yi, x0, y0, x, y);\n            }\n        }\n        if (isFirst) {\n            xi = data[i];\n            yi = data[i + 1];\n            x0 = xi;\n            y0 = yi;\n        }\n        switch (cmd) {\n            case CMD.M:\n                x0 = data[i++];\n                y0 = data[i++];\n                xi = x0;\n                yi = y0;\n                break;\n            case CMD.L:\n                if (isStroke) {\n                    if (line.containStroke(xi, yi, data[i], data[i + 1], lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingLine(xi, yi, data[i], data[i + 1], x, y) || 0;\n                }\n                xi = data[i++];\n                yi = data[i++];\n                break;\n            case CMD.C:\n                if (isStroke) {\n                    if (cubic.containStroke(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\n                }\n                xi = data[i++];\n                yi = data[i++];\n                break;\n            case CMD.Q:\n                if (isStroke) {\n                    if (quadratic.containStroke(xi, yi, data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\n                }\n                xi = data[i++];\n                yi = data[i++];\n                break;\n            case CMD.A:\n                var cx = data[i++];\n                var cy = data[i++];\n                var rx = data[i++];\n                var ry = data[i++];\n                var theta = data[i++];\n                var dTheta = data[i++];\n                i += 1;\n                var anticlockwise = !!(1 - data[i++]);\n                x1 = Math.cos(theta) * rx + cx;\n                y1 = Math.sin(theta) * ry + cy;\n                if (!isFirst) {\n                    w += windingLine(xi, yi, x1, y1, x, y);\n                }\n                else {\n                    x0 = x1;\n                    y0 = y1;\n                }\n                var _x = (x - cx) * ry / rx + cx;\n                if (isStroke) {\n                    if (arc.containStroke(cx, cy, ry, theta, theta + dTheta, anticlockwise, lineWidth, _x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y);\n                }\n                xi = Math.cos(theta + dTheta) * rx + cx;\n                yi = Math.sin(theta + dTheta) * ry + cy;\n                break;\n            case CMD.R:\n                x0 = xi = data[i++];\n                y0 = yi = data[i++];\n                var width = data[i++];\n                var height = data[i++];\n                x1 = x0 + width;\n                y1 = y0 + height;\n                if (isStroke) {\n                    if (line.containStroke(x0, y0, x1, y0, lineWidth, x, y)\n                        || line.containStroke(x1, y0, x1, y1, lineWidth, x, y)\n                        || line.containStroke(x1, y1, x0, y1, lineWidth, x, y)\n                        || line.containStroke(x0, y1, x0, y0, lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingLine(x1, y0, x1, y1, x, y);\n                    w += windingLine(x0, y1, x0, y0, x, y);\n                }\n                break;\n            case CMD.Z:\n                if (isStroke) {\n                    if (line.containStroke(xi, yi, x0, y0, lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingLine(xi, yi, x0, y0, x, y);\n                }\n                xi = x0;\n                yi = y0;\n                break;\n        }\n    }\n    if (!isStroke && !isAroundEqual(yi, y0)) {\n        w += windingLine(xi, yi, x0, y0, x, y) || 0;\n    }\n    return w !== 0;\n}\nexport function contain(pathProxy, x, y) {\n    return containPath(pathProxy, 0, false, x, y);\n}\nexport function containStroke(pathProxy, lineWidth, x, y) {\n    return containPath(pathProxy, lineWidth, true, x, y);\n}\n","import { __extends } from \"tslib\";\nimport Displayable, { DEFAULT_COMMON_STYLE, DEFAULT_COMMON_ANIMATION_PROPS } from './Displayable';\nimport Element from '../Element';\nimport PathProxy from '../core/PathProxy';\nimport * as pathContain from '../contain/path';\nimport { defaults, keys, extend, clone, isString, createObject } from '../core/util';\nimport { lum } from '../tool/color';\nimport { DARK_LABEL_COLOR, LIGHT_LABEL_COLOR, DARK_MODE_THRESHOLD, LIGHTER_LABEL_COLOR } from '../config';\nexport var DEFAULT_PATH_STYLE = defaults({\n    fill: '#000',\n    stroke: null,\n    strokePercent: 1,\n    fillOpacity: 1,\n    strokeOpacity: 1,\n    lineDashOffset: 0,\n    lineWidth: 1,\n    lineCap: 'butt',\n    miterLimit: 10,\n    strokeNoScale: false,\n    strokeFirst: false\n}, DEFAULT_COMMON_STYLE);\nexport var DEFAULT_PATH_ANIMATION_PROPS = {\n    style: defaults({\n        fill: true,\n        stroke: true,\n        strokePercent: true,\n        fillOpacity: true,\n        strokeOpacity: true,\n        lineDashOffset: true,\n        lineWidth: true,\n        miterLimit: true\n    }, DEFAULT_COMMON_ANIMATION_PROPS.style)\n};\nvar pathCopyParams = [\n    'x', 'y', 'rotation', 'scaleX', 'scaleY', 'originX', 'originY', 'invisible',\n    'culling', 'z', 'z2', 'zlevel', 'parent'\n];\nvar Path = (function (_super) {\n    __extends(Path, _super);\n    function Path(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Path.prototype.update = function () {\n        var _this = this;\n        _super.prototype.update.call(this);\n        var style = this.style;\n        if (style.decal) {\n            var decalEl = this._decalEl\n                = this._decalEl || new Path();\n            if (decalEl.buildPath === Path.prototype.buildPath) {\n                decalEl.buildPath = function (ctx) {\n                    _this.buildPath(ctx, _this.shape);\n                };\n            }\n            decalEl.silent = true;\n            var decalElStyle = decalEl.style;\n            for (var key in style) {\n                if (decalElStyle[key] !== style[key]) {\n                    decalElStyle[key] = style[key];\n                }\n            }\n            decalElStyle.fill = style.fill ? style.decal : null;\n            decalElStyle.decal = null;\n            decalElStyle.shadowColor = null;\n            style.strokeFirst && (decalElStyle.stroke = null);\n            for (var i = 0; i < pathCopyParams.length; ++i) {\n                decalEl[pathCopyParams[i]] = this[pathCopyParams[i]];\n            }\n            decalEl.__dirty |= Element.REDARAW_BIT;\n        }\n        else if (this._decalEl) {\n            this._decalEl = null;\n        }\n    };\n    Path.prototype.getDecalElement = function () {\n        return this._decalEl;\n    };\n    Path.prototype._init = function (props) {\n        var keysArr = keys(props);\n        this.shape = this.getDefaultShape();\n        var defaultStyle = this.getDefaultStyle();\n        if (defaultStyle) {\n            this.useStyle(defaultStyle);\n        }\n        for (var i = 0; i < keysArr.length; i++) {\n            var key = keysArr[i];\n            var value = props[key];\n            if (key === 'style') {\n                if (!this.style) {\n                    this.useStyle(value);\n                }\n                else {\n                    extend(this.style, value);\n                }\n            }\n            else if (key === 'shape') {\n                extend(this.shape, value);\n            }\n            else {\n                _super.prototype.attrKV.call(this, key, value);\n            }\n        }\n        if (!this.style) {\n            this.useStyle({});\n        }\n    };\n    Path.prototype.getDefaultStyle = function () {\n        return null;\n    };\n    Path.prototype.getDefaultShape = function () {\n        return {};\n    };\n    Path.prototype.canBeInsideText = function () {\n        return this.hasFill();\n    };\n    Path.prototype.getInsideTextFill = function () {\n        var pathFill = this.style.fill;\n        if (pathFill !== 'none') {\n            if (isString(pathFill)) {\n                var fillLum = lum(pathFill, 0);\n                if (fillLum > 0.5) {\n                    return DARK_LABEL_COLOR;\n                }\n                else if (fillLum > 0.2) {\n                    return LIGHTER_LABEL_COLOR;\n                }\n                return LIGHT_LABEL_COLOR;\n            }\n            else if (pathFill) {\n                return LIGHT_LABEL_COLOR;\n            }\n        }\n        return DARK_LABEL_COLOR;\n    };\n    Path.prototype.getInsideTextStroke = function (textFill) {\n        var pathFill = this.style.fill;\n        if (isString(pathFill)) {\n            var zr = this.__zr;\n            var isDarkMode = !!(zr && zr.isDarkMode());\n            var isDarkLabel = lum(textFill, 0) < DARK_MODE_THRESHOLD;\n            if (isDarkMode === isDarkLabel) {\n                return pathFill;\n            }\n        }\n    };\n    Path.prototype.buildPath = function (ctx, shapeCfg, inBundle) { };\n    Path.prototype.pathUpdated = function () {\n        this.__dirty &= ~Path.SHAPE_CHANGED_BIT;\n    };\n    Path.prototype.createPathProxy = function () {\n        this.path = new PathProxy(false);\n    };\n    Path.prototype.hasStroke = function () {\n        var style = this.style;\n        var stroke = style.stroke;\n        return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\n    };\n    Path.prototype.hasFill = function () {\n        var style = this.style;\n        var fill = style.fill;\n        return fill != null && fill !== 'none';\n    };\n    Path.prototype.getBoundingRect = function () {\n        var rect = this._rect;\n        var style = this.style;\n        var needsUpdateRect = !rect;\n        if (needsUpdateRect) {\n            var firstInvoke = false;\n            if (!this.path) {\n                firstInvoke = true;\n                this.createPathProxy();\n            }\n            var path = this.path;\n            if (firstInvoke || (this.__dirty & Path.SHAPE_CHANGED_BIT)) {\n                path.beginPath();\n                this.buildPath(path, this.shape, false);\n                this.pathUpdated();\n            }\n            rect = path.getBoundingRect();\n        }\n        this._rect = rect;\n        if (this.hasStroke() && this.path && this.path.len() > 0) {\n            var rectWithStroke = this._rectWithStroke || (this._rectWithStroke = rect.clone());\n            if (this.__dirty || needsUpdateRect) {\n                rectWithStroke.copy(rect);\n                var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\n                var w = style.lineWidth;\n                if (!this.hasFill()) {\n                    var strokeContainThreshold = this.strokeContainThreshold;\n                    w = Math.max(w, strokeContainThreshold == null ? 4 : strokeContainThreshold);\n                }\n                if (lineScale > 1e-10) {\n                    rectWithStroke.width += w / lineScale;\n                    rectWithStroke.height += w / lineScale;\n                    rectWithStroke.x -= w / lineScale / 2;\n                    rectWithStroke.y -= w / lineScale / 2;\n                }\n            }\n            return rectWithStroke;\n        }\n        return rect;\n    };\n    Path.prototype.contain = function (x, y) {\n        var localPos = this.transformCoordToLocal(x, y);\n        var rect = this.getBoundingRect();\n        var style = this.style;\n        x = localPos[0];\n        y = localPos[1];\n        if (rect.contain(x, y)) {\n            var pathProxy = this.path;\n            if (this.hasStroke()) {\n                var lineWidth = style.lineWidth;\n                var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\n                if (lineScale > 1e-10) {\n                    if (!this.hasFill()) {\n                        lineWidth = Math.max(lineWidth, this.strokeContainThreshold);\n                    }\n                    if (pathContain.containStroke(pathProxy, lineWidth / lineScale, x, y)) {\n                        return true;\n                    }\n                }\n            }\n            if (this.hasFill()) {\n                return pathContain.contain(pathProxy, x, y);\n            }\n        }\n        return false;\n    };\n    Path.prototype.dirtyShape = function () {\n        this.__dirty |= Path.SHAPE_CHANGED_BIT;\n        if (this._rect) {\n            this._rect = null;\n        }\n        if (this._decalEl) {\n            this._decalEl.dirtyShape();\n        }\n        this.markRedraw();\n    };\n    Path.prototype.dirty = function () {\n        this.dirtyStyle();\n        this.dirtyShape();\n    };\n    Path.prototype.animateShape = function (loop) {\n        return this.animate('shape', loop);\n    };\n    Path.prototype.updateDuringAnimation = function (targetKey) {\n        if (targetKey === 'style') {\n            this.dirtyStyle();\n        }\n        else if (targetKey === 'shape') {\n            this.dirtyShape();\n        }\n        else {\n            this.markRedraw();\n        }\n    };\n    Path.prototype.attrKV = function (key, value) {\n        if (key === 'shape') {\n            this.setShape(value);\n        }\n        else {\n            _super.prototype.attrKV.call(this, key, value);\n        }\n    };\n    Path.prototype.setShape = function (keyOrObj, value) {\n        var shape = this.shape;\n        if (!shape) {\n            shape = this.shape = {};\n        }\n        if (typeof keyOrObj === 'string') {\n            shape[keyOrObj] = value;\n        }\n        else {\n            extend(shape, keyOrObj);\n        }\n        this.dirtyShape();\n        return this;\n    };\n    Path.prototype.shapeChanged = function () {\n        return !!(this.__dirty & Path.SHAPE_CHANGED_BIT);\n    };\n    Path.prototype.createStyle = function (obj) {\n        return createObject(DEFAULT_PATH_STYLE, obj);\n    };\n    Path.prototype._innerSaveToNormal = function (toState) {\n        _super.prototype._innerSaveToNormal.call(this, toState);\n        var normalState = this._normalState;\n        if (toState.shape && !normalState.shape) {\n            normalState.shape = extend({}, this.shape);\n        }\n    };\n    Path.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\n        _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\n        var needsRestoreToNormal = !(state && keepCurrentStates);\n        var targetShape;\n        if (state && state.shape) {\n            if (transition) {\n                if (keepCurrentStates) {\n                    targetShape = state.shape;\n                }\n                else {\n                    targetShape = extend({}, normalState.shape);\n                    extend(targetShape, state.shape);\n                }\n            }\n            else {\n                targetShape = extend({}, keepCurrentStates ? this.shape : normalState.shape);\n                extend(targetShape, state.shape);\n            }\n        }\n        else if (needsRestoreToNormal) {\n            targetShape = normalState.shape;\n        }\n        if (targetShape) {\n            if (transition) {\n                this.shape = extend({}, this.shape);\n                var targetShapePrimaryProps = {};\n                var shapeKeys = keys(targetShape);\n                for (var i = 0; i < shapeKeys.length; i++) {\n                    var key = shapeKeys[i];\n                    if (typeof targetShape[key] === 'object') {\n                        this.shape[key] = targetShape[key];\n                    }\n                    else {\n                        targetShapePrimaryProps[key] = targetShape[key];\n                    }\n                }\n                this._transitionState(stateName, {\n                    shape: targetShapePrimaryProps\n                }, animationCfg);\n            }\n            else {\n                this.shape = targetShape;\n                this.dirtyShape();\n            }\n        }\n    };\n    Path.prototype._mergeStates = function (states) {\n        var mergedState = _super.prototype._mergeStates.call(this, states);\n        var mergedShape;\n        for (var i = 0; i < states.length; i++) {\n            var state = states[i];\n            if (state.shape) {\n                mergedShape = mergedShape || {};\n                this._mergeStyle(mergedShape, state.shape);\n            }\n        }\n        if (mergedShape) {\n            mergedState.shape = mergedShape;\n        }\n        return mergedState;\n    };\n    Path.prototype.getAnimationStyleProps = function () {\n        return DEFAULT_PATH_ANIMATION_PROPS;\n    };\n    Path.prototype.isZeroArea = function () {\n        return false;\n    };\n    Path.extend = function (defaultProps) {\n        var Sub = (function (_super) {\n            __extends(Sub, _super);\n            function Sub(opts) {\n                var _this = _super.call(this, opts) || this;\n                defaultProps.init && defaultProps.init.call(_this, opts);\n                return _this;\n            }\n            Sub.prototype.getDefaultStyle = function () {\n                return clone(defaultProps.style);\n            };\n            Sub.prototype.getDefaultShape = function () {\n                return clone(defaultProps.shape);\n            };\n            return Sub;\n        }(Path));\n        for (var key in defaultProps) {\n            if (typeof defaultProps[key] === 'function') {\n                Sub.prototype[key] = defaultProps[key];\n            }\n        }\n        return Sub;\n    };\n    Path.SHAPE_CHANGED_BIT = 4;\n    Path.initDefaultProps = (function () {\n        var pathProto = Path.prototype;\n        pathProto.type = 'path';\n        pathProto.strokeContainThreshold = 5;\n        pathProto.segmentIgnoreThreshold = 0;\n        pathProto.subPixelOptimize = false;\n        pathProto.autoBatch = false;\n        pathProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT | Path.SHAPE_CHANGED_BIT;\n    })();\n    return Path;\n}(Displayable));\nexport default Path;\n","import { __extends } from \"tslib\";\nimport Displayable from './Displayable';\nimport { getBoundingRect, DEFAULT_FONT } from '../contain/text';\nimport { DEFAULT_PATH_STYLE } from './Path';\nimport { createObject, defaults } from '../core/util';\nexport var DEFAULT_TSPAN_STYLE = defaults({\n    strokeFirst: true,\n    font: DEFAULT_FONT,\n    x: 0,\n    y: 0,\n    textAlign: 'left',\n    textBaseline: 'top',\n    miterLimit: 2\n}, DEFAULT_PATH_STYLE);\nvar TSpan = (function (_super) {\n    __extends(TSpan, _super);\n    function TSpan() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    TSpan.prototype.hasStroke = function () {\n        var style = this.style;\n        var stroke = style.stroke;\n        return stroke != null && stroke !== 'none' && style.lineWidth > 0;\n    };\n    TSpan.prototype.hasFill = function () {\n        var style = this.style;\n        var fill = style.fill;\n        return fill != null && fill !== 'none';\n    };\n    TSpan.prototype.createStyle = function (obj) {\n        return createObject(DEFAULT_TSPAN_STYLE, obj);\n    };\n    TSpan.prototype.setBoundingRect = function (rect) {\n        this._rect = rect;\n    };\n    TSpan.prototype.getBoundingRect = function () {\n        var style = this.style;\n        if (!this._rect) {\n            var text = style.text;\n            text != null ? (text += '') : (text = '');\n            var rect = getBoundingRect(text, style.font, style.textAlign, style.textBaseline);\n            rect.x += style.x || 0;\n            rect.y += style.y || 0;\n            if (this.hasStroke()) {\n                var w = style.lineWidth;\n                rect.x -= w / 2;\n                rect.y -= w / 2;\n                rect.width += w;\n                rect.height += w;\n            }\n            this._rect = rect;\n        }\n        return this._rect;\n    };\n    TSpan.initDefaultProps = (function () {\n        var tspanProto = TSpan.prototype;\n        tspanProto.dirtyRectTolerance = 10;\n    })();\n    return TSpan;\n}(Displayable));\nTSpan.prototype.type = 'tspan';\nexport default TSpan;\n","import { __extends } from \"tslib\";\nimport Displayable, { DEFAULT_COMMON_STYLE, DEFAULT_COMMON_ANIMATION_PROPS } from './Displayable';\nimport BoundingRect from '../core/BoundingRect';\nimport { defaults, createObject } from '../core/util';\nexport var DEFAULT_IMAGE_STYLE = defaults({\n    x: 0,\n    y: 0\n}, DEFAULT_COMMON_STYLE);\nexport var DEFAULT_IMAGE_ANIMATION_PROPS = {\n    style: defaults({\n        x: true,\n        y: true,\n        width: true,\n        height: true,\n        sx: true,\n        sy: true,\n        sWidth: true,\n        sHeight: true\n    }, DEFAULT_COMMON_ANIMATION_PROPS.style)\n};\nfunction isImageLike(source) {\n    return !!(source\n        && typeof source !== 'string'\n        && source.width && source.height);\n}\nvar ZRImage = (function (_super) {\n    __extends(ZRImage, _super);\n    function ZRImage() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    ZRImage.prototype.createStyle = function (obj) {\n        return createObject(DEFAULT_IMAGE_STYLE, obj);\n    };\n    ZRImage.prototype._getSize = function (dim) {\n        var style = this.style;\n        var size = style[dim];\n        if (size != null) {\n            return size;\n        }\n        var imageSource = isImageLike(style.image)\n            ? style.image : this.__image;\n        if (!imageSource) {\n            return 0;\n        }\n        var otherDim = dim === 'width' ? 'height' : 'width';\n        var otherDimSize = style[otherDim];\n        if (otherDimSize == null) {\n            return imageSource[dim];\n        }\n        else {\n            return imageSource[dim] / imageSource[otherDim] * otherDimSize;\n        }\n    };\n    ZRImage.prototype.getWidth = function () {\n        return this._getSize('width');\n    };\n    ZRImage.prototype.getHeight = function () {\n        return this._getSize('height');\n    };\n    ZRImage.prototype.getAnimationStyleProps = function () {\n        return DEFAULT_IMAGE_ANIMATION_PROPS;\n    };\n    ZRImage.prototype.getBoundingRect = function () {\n        var style = this.style;\n        if (!this._rect) {\n            this._rect = new BoundingRect(style.x || 0, style.y || 0, this.getWidth(), this.getHeight());\n        }\n        return this._rect;\n    };\n    return ZRImage;\n}(Displayable));\nZRImage.prototype.type = 'image';\nexport default ZRImage;\n","export function buildPath(ctx, shape) {\n    var x = shape.x;\n    var y = shape.y;\n    var width = shape.width;\n    var height = shape.height;\n    var r = shape.r;\n    var r1;\n    var r2;\n    var r3;\n    var r4;\n    if (width < 0) {\n        x = x + width;\n        width = -width;\n    }\n    if (height < 0) {\n        y = y + height;\n        height = -height;\n    }\n    if (typeof r === 'number') {\n        r1 = r2 = r3 = r4 = r;\n    }\n    else if (r instanceof Array) {\n        if (r.length === 1) {\n            r1 = r2 = r3 = r4 = r[0];\n        }\n        else if (r.length === 2) {\n            r1 = r3 = r[0];\n            r2 = r4 = r[1];\n        }\n        else if (r.length === 3) {\n            r1 = r[0];\n            r2 = r4 = r[1];\n            r3 = r[2];\n        }\n        else {\n            r1 = r[0];\n            r2 = r[1];\n            r3 = r[2];\n            r4 = r[3];\n        }\n    }\n    else {\n        r1 = r2 = r3 = r4 = 0;\n    }\n    var total;\n    if (r1 + r2 > width) {\n        total = r1 + r2;\n        r1 *= width / total;\n        r2 *= width / total;\n    }\n    if (r3 + r4 > width) {\n        total = r3 + r4;\n        r3 *= width / total;\n        r4 *= width / total;\n    }\n    if (r2 + r3 > height) {\n        total = r2 + r3;\n        r2 *= height / total;\n        r3 *= height / total;\n    }\n    if (r1 + r4 > height) {\n        total = r1 + r4;\n        r1 *= height / total;\n        r4 *= height / total;\n    }\n    ctx.moveTo(x + r1, y);\n    ctx.lineTo(x + width - r2, y);\n    r2 !== 0 && ctx.arc(x + width - r2, y + r2, r2, -Math.PI / 2, 0);\n    ctx.lineTo(x + width, y + height - r3);\n    r3 !== 0 && ctx.arc(x + width - r3, y + height - r3, r3, 0, Math.PI / 2);\n    ctx.lineTo(x + r4, y + height);\n    r4 !== 0 && ctx.arc(x + r4, y + height - r4, r4, Math.PI / 2, Math.PI);\n    ctx.lineTo(x, y + r1);\n    r1 !== 0 && ctx.arc(x + r1, y + r1, r1, Math.PI, Math.PI * 1.5);\n}\n","var round = Math.round;\nexport function subPixelOptimizeLine(outputShape, inputShape, style) {\n    if (!inputShape) {\n        return;\n    }\n    var x1 = inputShape.x1;\n    var x2 = inputShape.x2;\n    var y1 = inputShape.y1;\n    var y2 = inputShape.y2;\n    outputShape.x1 = x1;\n    outputShape.x2 = x2;\n    outputShape.y1 = y1;\n    outputShape.y2 = y2;\n    var lineWidth = style && style.lineWidth;\n    if (!lineWidth) {\n        return outputShape;\n    }\n    if (round(x1 * 2) === round(x2 * 2)) {\n        outputShape.x1 = outputShape.x2 = subPixelOptimize(x1, lineWidth, true);\n    }\n    if (round(y1 * 2) === round(y2 * 2)) {\n        outputShape.y1 = outputShape.y2 = subPixelOptimize(y1, lineWidth, true);\n    }\n    return outputShape;\n}\nexport function subPixelOptimizeRect(outputShape, inputShape, style) {\n    if (!inputShape) {\n        return;\n    }\n    var originX = inputShape.x;\n    var originY = inputShape.y;\n    var originWidth = inputShape.width;\n    var originHeight = inputShape.height;\n    outputShape.x = originX;\n    outputShape.y = originY;\n    outputShape.width = originWidth;\n    outputShape.height = originHeight;\n    var lineWidth = style && style.lineWidth;\n    if (!lineWidth) {\n        return outputShape;\n    }\n    outputShape.x = subPixelOptimize(originX, lineWidth, true);\n    outputShape.y = subPixelOptimize(originY, lineWidth, true);\n    outputShape.width = Math.max(subPixelOptimize(originX + originWidth, lineWidth, false) - outputShape.x, originWidth === 0 ? 0 : 1);\n    outputShape.height = Math.max(subPixelOptimize(originY + originHeight, lineWidth, false) - outputShape.y, originHeight === 0 ? 0 : 1);\n    return outputShape;\n}\nexport function subPixelOptimize(position, lineWidth, positiveOrNegative) {\n    if (!lineWidth) {\n        return position;\n    }\n    var doubledPosition = round(position * 2);\n    return (doubledPosition + round(lineWidth)) % 2 === 0\n        ? doubledPosition / 2\n        : (doubledPosition + (positiveOrNegative ? 1 : -1)) / 2;\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as roundRectHelper from '../helper/roundRect';\nimport { subPixelOptimizeRect } from '../helper/subPixelOptimize';\nvar RectShape = (function () {\n    function RectShape() {\n        this.x = 0;\n        this.y = 0;\n        this.width = 0;\n        this.height = 0;\n    }\n    return RectShape;\n}());\nvar subPixelOptimizeOutputShape = {};\nvar Rect = (function (_super) {\n    __extends(Rect, _super);\n    function Rect(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Rect.prototype.getDefaultShape = function () {\n        return new RectShape();\n    };\n    Rect.prototype.buildPath = function (ctx, shape) {\n        var x;\n        var y;\n        var width;\n        var height;\n        if (this.subPixelOptimize) {\n            var optimizedShape = subPixelOptimizeRect(subPixelOptimizeOutputShape, shape, this.style);\n            x = optimizedShape.x;\n            y = optimizedShape.y;\n            width = optimizedShape.width;\n            height = optimizedShape.height;\n            optimizedShape.r = shape.r;\n            shape = optimizedShape;\n        }\n        else {\n            x = shape.x;\n            y = shape.y;\n            width = shape.width;\n            height = shape.height;\n        }\n        if (!shape.r) {\n            ctx.rect(x, y, width, height);\n        }\n        else {\n            roundRectHelper.buildPath(ctx, shape);\n        }\n    };\n    Rect.prototype.isZeroArea = function () {\n        return !this.shape.width || !this.shape.height;\n    };\n    return Rect;\n}(Path));\nRect.prototype.type = 'rect';\nexport default Rect;\n","import { __extends } from \"tslib\";\nimport { parseRichText, parsePlainText } from './helper/parseText';\nimport TSpan from './TSpan';\nimport { retrieve2, isString, each, normalizeCssArray, trim, retrieve3, extend, keys, defaults } from '../core/util';\nimport { DEFAULT_FONT, adjustTextX, adjustTextY } from '../contain/text';\nimport ZRImage from './Image';\nimport Rect from './shape/Rect';\nimport BoundingRect from '../core/BoundingRect';\nimport { copy } from '../core/matrix';\nimport Displayable, { DEFAULT_COMMON_ANIMATION_PROPS } from './Displayable';\nvar DEFAULT_RICH_TEXT_COLOR = {\n    fill: '#000'\n};\nvar DEFAULT_STROKE_LINE_WIDTH = 2;\nexport var DEFAULT_TEXT_ANIMATION_PROPS = {\n    style: defaults({\n        fill: true,\n        stroke: true,\n        fillOpacity: true,\n        strokeOpacity: true,\n        lineWidth: true,\n        fontSize: true,\n        lineHeight: true,\n        width: true,\n        height: true,\n        textShadowColor: true,\n        textShadowBlur: true,\n        textShadowOffsetX: true,\n        textShadowOffsetY: true,\n        backgroundColor: true,\n        padding: true,\n        borderColor: true,\n        borderWidth: true,\n        borderRadius: true\n    }, DEFAULT_COMMON_ANIMATION_PROPS.style)\n};\nvar ZRText = (function (_super) {\n    __extends(ZRText, _super);\n    function ZRText(opts) {\n        var _this = _super.call(this) || this;\n        _this.type = 'text';\n        _this._children = [];\n        _this._defaultStyle = DEFAULT_RICH_TEXT_COLOR;\n        _this.attr(opts);\n        return _this;\n    }\n    ZRText.prototype.childrenRef = function () {\n        return this._children;\n    };\n    ZRText.prototype.update = function () {\n        if (this.styleChanged()) {\n            this._updateSubTexts();\n        }\n        for (var i = 0; i < this._children.length; i++) {\n            var child = this._children[i];\n            child.zlevel = this.zlevel;\n            child.z = this.z;\n            child.z2 = this.z2;\n            child.culling = this.culling;\n            child.cursor = this.cursor;\n            child.invisible = this.invisible;\n        }\n        var attachedTransform = this.attachedTransform;\n        if (attachedTransform) {\n            attachedTransform.updateTransform();\n            var m = attachedTransform.transform;\n            if (m) {\n                this.transform = this.transform || [];\n                copy(this.transform, m);\n            }\n            else {\n                this.transform = null;\n            }\n        }\n        else {\n            _super.prototype.update.call(this);\n        }\n    };\n    ZRText.prototype.getComputedTransform = function () {\n        if (this.__hostTarget) {\n            this.__hostTarget.getComputedTransform();\n            this.__hostTarget.updateInnerText(true);\n        }\n        return this.attachedTransform ? this.attachedTransform.getComputedTransform()\n            : _super.prototype.getComputedTransform.call(this);\n    };\n    ZRText.prototype._updateSubTexts = function () {\n        this._childCursor = 0;\n        normalizeTextStyle(this.style);\n        this.style.rich\n            ? this._updateRichTexts()\n            : this._updatePlainTexts();\n        this._children.length = this._childCursor;\n        this.styleUpdated();\n    };\n    ZRText.prototype.addSelfToZr = function (zr) {\n        _super.prototype.addSelfToZr.call(this, zr);\n        for (var i = 0; i < this._children.length; i++) {\n            this._children[i].__zr = zr;\n        }\n    };\n    ZRText.prototype.removeSelfFromZr = function (zr) {\n        _super.prototype.removeSelfFromZr.call(this, zr);\n        for (var i = 0; i < this._children.length; i++) {\n            this._children[i].__zr = null;\n        }\n    };\n    ZRText.prototype.getBoundingRect = function () {\n        if (this.styleChanged()) {\n            this._updateSubTexts();\n        }\n        if (!this._rect) {\n            var tmpRect = new BoundingRect(0, 0, 0, 0);\n            var children = this._children;\n            var tmpMat = [];\n            var rect = null;\n            for (var i = 0; i < children.length; i++) {\n                var child = children[i];\n                var childRect = child.getBoundingRect();\n                var transform = child.getLocalTransform(tmpMat);\n                if (transform) {\n                    tmpRect.copy(childRect);\n                    tmpRect.applyTransform(transform);\n                    rect = rect || tmpRect.clone();\n                    rect.union(tmpRect);\n                }\n                else {\n                    rect = rect || childRect.clone();\n                    rect.union(childRect);\n                }\n            }\n            this._rect = rect || tmpRect;\n        }\n        return this._rect;\n    };\n    ZRText.prototype.setDefaultTextStyle = function (defaultTextStyle) {\n        this._defaultStyle = defaultTextStyle || DEFAULT_RICH_TEXT_COLOR;\n    };\n    ZRText.prototype.setTextContent = function (textContent) {\n        throw new Error('Can\\'t attach text on another text');\n    };\n    ZRText.prototype._mergeStyle = function (targetStyle, sourceStyle) {\n        if (!sourceStyle) {\n            return targetStyle;\n        }\n        var sourceRich = sourceStyle.rich;\n        var targetRich = targetStyle.rich || (sourceRich && {});\n        extend(targetStyle, sourceStyle);\n        if (sourceRich && targetRich) {\n            this._mergeRich(targetRich, sourceRich);\n            targetStyle.rich = targetRich;\n        }\n        else if (targetRich) {\n            targetStyle.rich = targetRich;\n        }\n        return targetStyle;\n    };\n    ZRText.prototype._mergeRich = function (targetRich, sourceRich) {\n        var richNames = keys(sourceRich);\n        for (var i = 0; i < richNames.length; i++) {\n            var richName = richNames[i];\n            targetRich[richName] = targetRich[richName] || {};\n            extend(targetRich[richName], sourceRich[richName]);\n        }\n    };\n    ZRText.prototype.getAnimationStyleProps = function () {\n        return DEFAULT_TEXT_ANIMATION_PROPS;\n    };\n    ZRText.prototype._getOrCreateChild = function (Ctor) {\n        var child = this._children[this._childCursor];\n        if (!child || !(child instanceof Ctor)) {\n            child = new Ctor();\n        }\n        this._children[this._childCursor++] = child;\n        child.__zr = this.__zr;\n        child.parent = this;\n        return child;\n    };\n    ZRText.prototype._updatePlainTexts = function () {\n        var style = this.style;\n        var textFont = style.font || DEFAULT_FONT;\n        var textPadding = style.padding;\n        var text = getStyleText(style);\n        var contentBlock = parsePlainText(text, style);\n        var needDrawBg = needDrawBackground(style);\n        var bgColorDrawn = !!(style.backgroundColor);\n        var outerHeight = contentBlock.outerHeight;\n        var textLines = contentBlock.lines;\n        var lineHeight = contentBlock.lineHeight;\n        var defaultStyle = this._defaultStyle;\n        var baseX = style.x || 0;\n        var baseY = style.y || 0;\n        var textAlign = style.align || defaultStyle.align || 'left';\n        var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign || 'top';\n        var textX = baseX;\n        var textY = adjustTextY(baseY, contentBlock.contentHeight, verticalAlign);\n        if (needDrawBg || textPadding) {\n            var outerWidth_1 = contentBlock.width;\n            textPadding && (outerWidth_1 += textPadding[1] + textPadding[3]);\n            var boxX = adjustTextX(baseX, outerWidth_1, textAlign);\n            var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\n            needDrawBg && this._renderBackground(style, style, boxX, boxY, outerWidth_1, outerHeight);\n        }\n        textY += lineHeight / 2;\n        if (textPadding) {\n            textX = getTextXForPadding(baseX, textAlign, textPadding);\n            if (verticalAlign === 'top') {\n                textY += textPadding[0];\n            }\n            else if (verticalAlign === 'bottom') {\n                textY -= textPadding[2];\n            }\n        }\n        var defaultLineWidth = 0;\n        var useDefaultFill = false;\n        var textFill = getFill('fill' in style\n            ? style.fill\n            : (useDefaultFill = true, defaultStyle.fill));\n        var textStroke = getStroke('stroke' in style\n            ? style.stroke\n            : (!bgColorDrawn\n                && (!defaultStyle.autoStroke || useDefaultFill))\n                ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\n                : null);\n        var hasShadow = style.textShadowBlur > 0;\n        var fixedBoundingRect = style.width != null\n            && (style.overflow === 'truncate' || style.overflow === 'break' || style.overflow === 'breakAll');\n        var calculatedLineHeight = contentBlock.calculatedLineHeight;\n        for (var i = 0; i < textLines.length; i++) {\n            var el = this._getOrCreateChild(TSpan);\n            var subElStyle = el.createStyle();\n            el.useStyle(subElStyle);\n            subElStyle.text = textLines[i];\n            subElStyle.x = textX;\n            subElStyle.y = textY;\n            if (textAlign) {\n                subElStyle.textAlign = textAlign;\n            }\n            subElStyle.textBaseline = 'middle';\n            subElStyle.opacity = style.opacity;\n            subElStyle.strokeFirst = true;\n            if (hasShadow) {\n                subElStyle.shadowBlur = style.textShadowBlur || 0;\n                subElStyle.shadowColor = style.textShadowColor || 'transparent';\n                subElStyle.shadowOffsetX = style.textShadowOffsetX || 0;\n                subElStyle.shadowOffsetY = style.textShadowOffsetY || 0;\n            }\n            if (textStroke) {\n                subElStyle.stroke = textStroke;\n                subElStyle.lineWidth = style.lineWidth || defaultLineWidth;\n                subElStyle.lineDash = style.lineDash;\n                subElStyle.lineDashOffset = style.lineDashOffset || 0;\n            }\n            if (textFill) {\n                subElStyle.fill = textFill;\n            }\n            subElStyle.font = textFont;\n            textY += lineHeight;\n            if (fixedBoundingRect) {\n                el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, style.width, subElStyle.textAlign), adjustTextY(subElStyle.y, calculatedLineHeight, subElStyle.textBaseline), style.width, calculatedLineHeight));\n            }\n        }\n    };\n    ZRText.prototype._updateRichTexts = function () {\n        var style = this.style;\n        var text = getStyleText(style);\n        var contentBlock = parseRichText(text, style);\n        var contentWidth = contentBlock.width;\n        var outerWidth = contentBlock.outerWidth;\n        var outerHeight = contentBlock.outerHeight;\n        var textPadding = style.padding;\n        var baseX = style.x || 0;\n        var baseY = style.y || 0;\n        var defaultStyle = this._defaultStyle;\n        var textAlign = style.align || defaultStyle.align;\n        var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign;\n        var boxX = adjustTextX(baseX, outerWidth, textAlign);\n        var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\n        var xLeft = boxX;\n        var lineTop = boxY;\n        if (textPadding) {\n            xLeft += textPadding[3];\n            lineTop += textPadding[0];\n        }\n        var xRight = xLeft + contentWidth;\n        if (needDrawBackground(style)) {\n            this._renderBackground(style, style, boxX, boxY, outerWidth, outerHeight);\n        }\n        var bgColorDrawn = !!(style.backgroundColor);\n        for (var i = 0; i < contentBlock.lines.length; i++) {\n            var line = contentBlock.lines[i];\n            var tokens = line.tokens;\n            var tokenCount = tokens.length;\n            var lineHeight = line.lineHeight;\n            var remainedWidth = line.width;\n            var leftIndex = 0;\n            var lineXLeft = xLeft;\n            var lineXRight = xRight;\n            var rightIndex = tokenCount - 1;\n            var token = void 0;\n            while (leftIndex < tokenCount\n                && (token = tokens[leftIndex], !token.align || token.align === 'left')) {\n                this._placeToken(token, style, lineHeight, lineTop, lineXLeft, 'left', bgColorDrawn);\n                remainedWidth -= token.width;\n                lineXLeft += token.width;\n                leftIndex++;\n            }\n            while (rightIndex >= 0\n                && (token = tokens[rightIndex], token.align === 'right')) {\n                this._placeToken(token, style, lineHeight, lineTop, lineXRight, 'right', bgColorDrawn);\n                remainedWidth -= token.width;\n                lineXRight -= token.width;\n                rightIndex--;\n            }\n            lineXLeft += (contentWidth - (lineXLeft - xLeft) - (xRight - lineXRight) - remainedWidth) / 2;\n            while (leftIndex <= rightIndex) {\n                token = tokens[leftIndex];\n                this._placeToken(token, style, lineHeight, lineTop, lineXLeft + token.width / 2, 'center', bgColorDrawn);\n                lineXLeft += token.width;\n                leftIndex++;\n            }\n            lineTop += lineHeight;\n        }\n    };\n    ZRText.prototype._placeToken = function (token, style, lineHeight, lineTop, x, textAlign, parentBgColorDrawn) {\n        var tokenStyle = style.rich[token.styleName] || {};\n        tokenStyle.text = token.text;\n        var verticalAlign = token.verticalAlign;\n        var y = lineTop + lineHeight / 2;\n        if (verticalAlign === 'top') {\n            y = lineTop + token.height / 2;\n        }\n        else if (verticalAlign === 'bottom') {\n            y = lineTop + lineHeight - token.height / 2;\n        }\n        var needDrawBg = !token.isLineHolder && needDrawBackground(tokenStyle);\n        needDrawBg && this._renderBackground(tokenStyle, style, textAlign === 'right'\n            ? x - token.width\n            : textAlign === 'center'\n                ? x - token.width / 2\n                : x, y - token.height / 2, token.width, token.height);\n        var bgColorDrawn = !!tokenStyle.backgroundColor;\n        var textPadding = token.textPadding;\n        if (textPadding) {\n            x = getTextXForPadding(x, textAlign, textPadding);\n            y -= token.height / 2 - textPadding[0] - token.innerHeight / 2;\n        }\n        var el = this._getOrCreateChild(TSpan);\n        var subElStyle = el.createStyle();\n        el.useStyle(subElStyle);\n        var defaultStyle = this._defaultStyle;\n        var useDefaultFill = false;\n        var defaultLineWidth = 0;\n        var textFill = getStroke('fill' in tokenStyle ? tokenStyle.fill\n            : 'fill' in style ? style.fill\n                : (useDefaultFill = true, defaultStyle.fill));\n        var textStroke = getStroke('stroke' in tokenStyle ? tokenStyle.stroke\n            : 'stroke' in style ? style.stroke\n                : (!bgColorDrawn\n                    && !parentBgColorDrawn\n                    && (!defaultStyle.autoStroke || useDefaultFill)) ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\n                    : null);\n        var hasShadow = tokenStyle.textShadowBlur > 0\n            || style.textShadowBlur > 0;\n        subElStyle.text = token.text;\n        subElStyle.x = x;\n        subElStyle.y = y;\n        if (hasShadow) {\n            subElStyle.shadowBlur = tokenStyle.textShadowBlur || style.textShadowBlur || 0;\n            subElStyle.shadowColor = tokenStyle.textShadowColor || style.textShadowColor || 'transparent';\n            subElStyle.shadowOffsetX = tokenStyle.textShadowOffsetX || style.textShadowOffsetX || 0;\n            subElStyle.shadowOffsetY = tokenStyle.textShadowOffsetY || style.textShadowOffsetY || 0;\n        }\n        subElStyle.textAlign = textAlign;\n        subElStyle.textBaseline = 'middle';\n        subElStyle.font = token.font || DEFAULT_FONT;\n        subElStyle.opacity = retrieve3(tokenStyle.opacity, style.opacity, 1);\n        if (textStroke) {\n            subElStyle.lineWidth = retrieve3(tokenStyle.lineWidth, style.lineWidth, defaultLineWidth);\n            subElStyle.lineDash = retrieve2(tokenStyle.lineDash, style.lineDash);\n            subElStyle.lineDashOffset = style.lineDashOffset || 0;\n            subElStyle.stroke = textStroke;\n        }\n        if (textFill) {\n            subElStyle.fill = textFill;\n        }\n        var textWidth = token.contentWidth;\n        var textHeight = token.contentHeight;\n        el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, textWidth, subElStyle.textAlign), adjustTextY(subElStyle.y, textHeight, subElStyle.textBaseline), textWidth, textHeight));\n    };\n    ZRText.prototype._renderBackground = function (style, topStyle, x, y, width, height) {\n        var textBackgroundColor = style.backgroundColor;\n        var textBorderWidth = style.borderWidth;\n        var textBorderColor = style.borderColor;\n        var isPlainBg = isString(textBackgroundColor);\n        var textBorderRadius = style.borderRadius;\n        var self = this;\n        var rectEl;\n        var imgEl;\n        if (isPlainBg || (textBorderWidth && textBorderColor)) {\n            rectEl = this._getOrCreateChild(Rect);\n            rectEl.useStyle(rectEl.createStyle());\n            rectEl.style.fill = null;\n            var rectShape = rectEl.shape;\n            rectShape.x = x;\n            rectShape.y = y;\n            rectShape.width = width;\n            rectShape.height = height;\n            rectShape.r = textBorderRadius;\n            rectEl.dirtyShape();\n        }\n        if (isPlainBg) {\n            var rectStyle = rectEl.style;\n            rectStyle.fill = textBackgroundColor || null;\n            rectStyle.fillOpacity = retrieve2(style.fillOpacity, 1);\n        }\n        else if (textBackgroundColor && textBackgroundColor.image) {\n            imgEl = this._getOrCreateChild(ZRImage);\n            imgEl.onload = function () {\n                self.dirtyStyle();\n            };\n            var imgStyle = imgEl.style;\n            imgStyle.image = textBackgroundColor.image;\n            imgStyle.x = x;\n            imgStyle.y = y;\n            imgStyle.width = width;\n            imgStyle.height = height;\n        }\n        if (textBorderWidth && textBorderColor) {\n            var rectStyle = rectEl.style;\n            rectStyle.lineWidth = textBorderWidth;\n            rectStyle.stroke = textBorderColor;\n            rectStyle.strokeOpacity = retrieve2(style.strokeOpacity, 1);\n            rectStyle.lineDash = style.borderDash;\n            rectStyle.lineDashOffset = style.borderDashOffset || 0;\n            rectEl.strokeContainThreshold = 0;\n            if (rectEl.hasFill() && rectEl.hasStroke()) {\n                rectStyle.strokeFirst = true;\n                rectStyle.lineWidth *= 2;\n            }\n        }\n        var commonStyle = (rectEl || imgEl).style;\n        commonStyle.shadowBlur = style.shadowBlur || 0;\n        commonStyle.shadowColor = style.shadowColor || 'transparent';\n        commonStyle.shadowOffsetX = style.shadowOffsetX || 0;\n        commonStyle.shadowOffsetY = style.shadowOffsetY || 0;\n        commonStyle.opacity = retrieve3(style.opacity, topStyle.opacity, 1);\n    };\n    ZRText.makeFont = function (style) {\n        var font = '';\n        if (style.fontSize || style.fontFamily || style.fontWeight) {\n            var fontSize = '';\n            if (typeof style.fontSize === 'string'\n                && (style.fontSize.indexOf('px') !== -1\n                    || style.fontSize.indexOf('rem') !== -1\n                    || style.fontSize.indexOf('em') !== -1)) {\n                fontSize = style.fontSize;\n            }\n            else if (!isNaN(+style.fontSize)) {\n                fontSize = style.fontSize + 'px';\n            }\n            else {\n                fontSize = '12px';\n            }\n            font = [\n                style.fontStyle,\n                style.fontWeight,\n                fontSize,\n                style.fontFamily || 'sans-serif'\n            ].join(' ');\n        }\n        return font && trim(font) || style.textFont || style.font;\n    };\n    return ZRText;\n}(Displayable));\nvar VALID_TEXT_ALIGN = { left: true, right: 1, center: 1 };\nvar VALID_TEXT_VERTICAL_ALIGN = { top: 1, bottom: 1, middle: 1 };\nexport function normalizeTextStyle(style) {\n    normalizeStyle(style);\n    each(style.rich, normalizeStyle);\n    return style;\n}\nfunction normalizeStyle(style) {\n    if (style) {\n        style.font = ZRText.makeFont(style);\n        var textAlign = style.align;\n        textAlign === 'middle' && (textAlign = 'center');\n        style.align = (textAlign == null || VALID_TEXT_ALIGN[textAlign]) ? textAlign : 'left';\n        var verticalAlign = style.verticalAlign;\n        verticalAlign === 'center' && (verticalAlign = 'middle');\n        style.verticalAlign = (verticalAlign == null || VALID_TEXT_VERTICAL_ALIGN[verticalAlign]) ? verticalAlign : 'top';\n        var textPadding = style.padding;\n        if (textPadding) {\n            style.padding = normalizeCssArray(style.padding);\n        }\n    }\n}\nfunction getStroke(stroke, lineWidth) {\n    return (stroke == null || lineWidth <= 0 || stroke === 'transparent' || stroke === 'none')\n        ? null\n        : (stroke.image || stroke.colorStops)\n            ? '#000'\n            : stroke;\n}\nfunction getFill(fill) {\n    return (fill == null || fill === 'none')\n        ? null\n        : (fill.image || fill.colorStops)\n            ? '#000'\n            : fill;\n}\nfunction getTextXForPadding(x, textAlign, textPadding) {\n    return textAlign === 'right'\n        ? (x - textPadding[1])\n        : textAlign === 'center'\n            ? (x + textPadding[3] / 2 - textPadding[1] / 2)\n            : (x + textPadding[3]);\n}\nfunction getStyleText(style) {\n    var text = style.text;\n    text != null && (text += '');\n    return text;\n}\nfunction needDrawBackground(style) {\n    return !!(style.backgroundColor\n        || (style.borderWidth && style.borderColor));\n}\nexport default ZRText;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner } from './model';\nexport var getECData = makeInner();","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport LRU from 'zrender/lib/core/LRU';\nimport { extend, indexOf, isArrayLike, isObject, keys, isArray, each } from 'zrender/lib/core/util';\nimport { getECData } from './innerStore';\nimport * as colorTool from 'zrender/lib/tool/color';\nimport { queryDataIndex, makeInner } from './model';\nimport Path from 'zrender/lib/graphic/Path';\nvar _highlightNextDigit = 1;\nvar _highlightKeyMap = {};\nvar getSavedStates = makeInner();\nexport var HOVER_STATE_NORMAL = 0;\nexport var HOVER_STATE_BLUR = 1;\nexport var HOVER_STATE_EMPHASIS = 2;\nexport var SPECIAL_STATES = ['emphasis', 'blur', 'select'];\nexport var DISPLAY_STATES = ['normal', 'emphasis', 'blur', 'select'];\nexport var Z2_EMPHASIS_LIFT = 10;\nexport var Z2_SELECT_LIFT = 9;\nexport var HIGHLIGHT_ACTION_TYPE = 'highlight';\nexport var DOWNPLAY_ACTION_TYPE = 'downplay';\nexport var SELECT_ACTION_TYPE = 'select';\nexport var UNSELECT_ACTION_TYPE = 'unselect';\nexport var TOGGLE_SELECT_ACTION_TYPE = 'toggleSelect';\n\nfunction hasFillOrStroke(fillOrStroke) {\n  return fillOrStroke != null && fillOrStroke !== 'none';\n}\n\nvar liftedColorCache = new LRU(100);\n\nfunction liftColor(color) {\n  if (typeof color !== 'string') {\n    return color;\n  }\n\n  var liftedColor = liftedColorCache.get(color);\n\n  if (!liftedColor) {\n    liftedColor = colorTool.lift(color, -0.1);\n    liftedColorCache.put(color, liftedColor);\n  }\n\n  return liftedColor;\n}\n\nfunction doChangeHoverState(el, stateName, hoverStateEnum) {\n  if (el.onHoverStateChange && (el.hoverState || 0) !== hoverStateEnum) {\n    el.onHoverStateChange(stateName);\n  }\n\n  el.hoverState = hoverStateEnum;\n}\n\nfunction singleEnterEmphasis(el) {\n  doChangeHoverState(el, 'emphasis', HOVER_STATE_EMPHASIS);\n}\n\nfunction singleLeaveEmphasis(el) {\n  if (el.hoverState === HOVER_STATE_EMPHASIS) {\n    doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\n  }\n}\n\nfunction singleEnterBlur(el) {\n  doChangeHoverState(el, 'blur', HOVER_STATE_BLUR);\n}\n\nfunction singleLeaveBlur(el) {\n  if (el.hoverState === HOVER_STATE_BLUR) {\n    doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\n  }\n}\n\nfunction singleEnterSelect(el) {\n  el.selected = true;\n}\n\nfunction singleLeaveSelect(el) {\n  el.selected = false;\n}\n\nfunction updateElementState(el, updater, commonParam) {\n  updater(el, commonParam);\n}\n\nfunction traverseUpdateState(el, updater, commonParam) {\n  updateElementState(el, updater, commonParam);\n  el.isGroup && el.traverse(function (child) {\n    updateElementState(child, updater, commonParam);\n  });\n}\n\nexport function setStatesFlag(el, stateName) {\n  switch (stateName) {\n    case 'emphasis':\n      el.hoverState = HOVER_STATE_EMPHASIS;\n      break;\n\n    case 'normal':\n      el.hoverState = HOVER_STATE_NORMAL;\n      break;\n\n    case 'blur':\n      el.hoverState = HOVER_STATE_BLUR;\n      break;\n\n    case 'select':\n      el.selected = true;\n  }\n}\nexport function clearStates(el) {\n  if (el.isGroup) {\n    el.traverse(function (child) {\n      child.clearStates();\n    });\n  } else {\n    el.clearStates();\n  }\n}\n\nfunction getFromStateStyle(el, props, toStateName, defaultValue) {\n  var style = el.style;\n  var fromState = {};\n\n  for (var i = 0; i < props.length; i++) {\n    var propName = props[i];\n    var val = style[propName];\n    fromState[propName] = val == null ? defaultValue && defaultValue[propName] : val;\n  }\n\n  for (var i = 0; i < el.animators.length; i++) {\n    var animator = el.animators[i];\n\n    if (animator.__fromStateTransition && animator.__fromStateTransition.indexOf(toStateName) < 0 && animator.targetName === 'style') {\n      animator.saveFinalToTarget(fromState, props);\n    }\n  }\n\n  return fromState;\n}\n\nfunction createEmphasisDefaultState(el, stateName, targetStates, state) {\n  var hasSelect = targetStates && indexOf(targetStates, 'select') >= 0;\n  var cloned = false;\n\n  if (el instanceof Path) {\n    var store = getSavedStates(el);\n    var fromFill = hasSelect ? store.selectFill || store.normalFill : store.normalFill;\n    var fromStroke = hasSelect ? store.selectStroke || store.normalStroke : store.normalStroke;\n\n    if (hasFillOrStroke(fromFill) || hasFillOrStroke(fromStroke)) {\n      state = state || {};\n      var emphasisStyle = state.style || {};\n\n      if (!hasFillOrStroke(emphasisStyle.fill) && hasFillOrStroke(fromFill)) {\n        cloned = true;\n        state = extend({}, state);\n        emphasisStyle = extend({}, emphasisStyle);\n        emphasisStyle.fill = liftColor(fromFill);\n      } else if (!hasFillOrStroke(emphasisStyle.stroke) && hasFillOrStroke(fromStroke)) {\n        if (!cloned) {\n          state = extend({}, state);\n          emphasisStyle = extend({}, emphasisStyle);\n        }\n\n        emphasisStyle.stroke = liftColor(fromStroke);\n      }\n\n      state.style = emphasisStyle;\n    }\n  }\n\n  if (state) {\n    if (state.z2 == null) {\n      if (!cloned) {\n        state = extend({}, state);\n      }\n\n      var z2EmphasisLift = el.z2EmphasisLift;\n      state.z2 = el.z2 + (z2EmphasisLift != null ? z2EmphasisLift : Z2_EMPHASIS_LIFT);\n    }\n  }\n\n  return state;\n}\n\nfunction createSelectDefaultState(el, stateName, state) {\n  if (state) {\n    if (state.z2 == null) {\n      state = extend({}, state);\n      var z2SelectLift = el.z2SelectLift;\n      state.z2 = el.z2 + (z2SelectLift != null ? z2SelectLift : Z2_SELECT_LIFT);\n    }\n  }\n\n  return state;\n}\n\nfunction createBlurDefaultState(el, stateName, state) {\n  var hasBlur = indexOf(el.currentStates, stateName) >= 0;\n  var currentOpacity = el.style.opacity;\n  var fromState = !hasBlur ? getFromStateStyle(el, ['opacity'], stateName, {\n    opacity: 1\n  }) : null;\n  state = state || {};\n  var blurStyle = state.style || {};\n\n  if (blurStyle.opacity == null) {\n    state = extend({}, state);\n    blurStyle = extend({\n      opacity: hasBlur ? currentOpacity : fromState.opacity * 0.1\n    }, blurStyle);\n    state.style = blurStyle;\n  }\n\n  return state;\n}\n\nfunction elementStateProxy(stateName, targetStates) {\n  var state = this.states[stateName];\n\n  if (this.style) {\n    if (stateName === 'emphasis') {\n      return createEmphasisDefaultState(this, stateName, targetStates, state);\n    } else if (stateName === 'blur') {\n      return createBlurDefaultState(this, stateName, state);\n    } else if (stateName === 'select') {\n      return createSelectDefaultState(this, stateName, state);\n    }\n  }\n\n  return state;\n}\n\nexport function setDefaultStateProxy(el) {\n  el.stateProxy = elementStateProxy;\n  var textContent = el.getTextContent();\n  var textGuide = el.getTextGuideLine();\n\n  if (textContent) {\n    textContent.stateProxy = elementStateProxy;\n  }\n\n  if (textGuide) {\n    textGuide.stateProxy = elementStateProxy;\n  }\n}\nexport function enterEmphasisWhenMouseOver(el, e) {\n  !shouldSilent(el, e) && !el.__highByOuter && traverseUpdateState(el, singleEnterEmphasis);\n}\nexport function leaveEmphasisWhenMouseOut(el, e) {\n  !shouldSilent(el, e) && !el.__highByOuter && traverseUpdateState(el, singleLeaveEmphasis);\n}\nexport function enterEmphasis(el, highlightDigit) {\n  el.__highByOuter |= 1 << (highlightDigit || 0);\n  traverseUpdateState(el, singleEnterEmphasis);\n}\nexport function leaveEmphasis(el, highlightDigit) {\n  !(el.__highByOuter &= ~(1 << (highlightDigit || 0))) && traverseUpdateState(el, singleLeaveEmphasis);\n}\nexport function enterBlur(el) {\n  traverseUpdateState(el, singleEnterBlur);\n}\nexport function leaveBlur(el) {\n  traverseUpdateState(el, singleLeaveBlur);\n}\nexport function enterSelect(el) {\n  traverseUpdateState(el, singleEnterSelect);\n}\nexport function leaveSelect(el) {\n  traverseUpdateState(el, singleLeaveSelect);\n}\n\nfunction shouldSilent(el, e) {\n  return el.__highDownSilentOnTouch && e.zrByTouch;\n}\n\nfunction allLeaveBlur(api) {\n  var model = api.getModel();\n  model.eachComponent(function (componentType, componentModel) {\n    var view = componentType === 'series' ? api.getViewOfSeriesModel(componentModel) : api.getViewOfComponentModel(componentModel);\n    view.group.traverse(function (child) {\n      singleLeaveBlur(child);\n    });\n  });\n}\n\nexport function toggleSeriesBlurState(targetSeriesIndex, focus, blurScope, api, isBlur) {\n  var ecModel = api.getModel();\n  blurScope = blurScope || 'coordinateSystem';\n\n  function leaveBlurOfIndices(data, dataIndices) {\n    for (var i = 0; i < dataIndices.length; i++) {\n      var itemEl = data.getItemGraphicEl(dataIndices[i]);\n      itemEl && leaveBlur(itemEl);\n    }\n  }\n\n  if (!isBlur) {\n    allLeaveBlur(api);\n    return;\n  }\n\n  if (targetSeriesIndex == null) {\n    return;\n  }\n\n  if (!focus || focus === 'none') {\n    return;\n  }\n\n  var targetSeriesModel = ecModel.getSeriesByIndex(targetSeriesIndex);\n  var targetCoordSys = targetSeriesModel.coordinateSystem;\n\n  if (targetCoordSys && targetCoordSys.master) {\n    targetCoordSys = targetCoordSys.master;\n  }\n\n  var blurredSeries = [];\n  ecModel.eachSeries(function (seriesModel) {\n    var sameSeries = targetSeriesModel === seriesModel;\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys && coordSys.master) {\n      coordSys = coordSys.master;\n    }\n\n    var sameCoordSys = coordSys && targetCoordSys ? coordSys === targetCoordSys : sameSeries;\n\n    if (!(blurScope === 'series' && !sameSeries || blurScope === 'coordinateSystem' && !sameCoordSys || focus === 'series' && sameSeries)) {\n      var view = api.getViewOfSeriesModel(seriesModel);\n      view.group.traverse(function (child) {\n        singleEnterBlur(child);\n      });\n\n      if (isArrayLike(focus)) {\n        leaveBlurOfIndices(seriesModel.getData(), focus);\n      } else if (isObject(focus)) {\n        var dataTypes = keys(focus);\n\n        for (var d = 0; d < dataTypes.length; d++) {\n          leaveBlurOfIndices(seriesModel.getData(dataTypes[d]), focus[dataTypes[d]]);\n        }\n      }\n\n      blurredSeries.push(seriesModel);\n    }\n  });\n  ecModel.eachComponent(function (componentType, componentModel) {\n    if (componentType === 'series') {\n      return;\n    }\n\n    var view = api.getViewOfComponentModel(componentModel);\n\n    if (view && view.blurSeries) {\n      view.blurSeries(blurredSeries, ecModel);\n    }\n  });\n}\nexport function toggleSeriesBlurStateFromPayload(seriesModel, payload, api) {\n  if (!isHighDownPayload(payload)) {\n    return;\n  }\n\n  var isHighlight = payload.type === HIGHLIGHT_ACTION_TYPE;\n  var seriesIndex = seriesModel.seriesIndex;\n  var data = seriesModel.getData(payload.dataType);\n  var dataIndex = queryDataIndex(data, payload);\n  dataIndex = (isArray(dataIndex) ? dataIndex[0] : dataIndex) || 0;\n  var el = data.getItemGraphicEl(dataIndex);\n\n  if (!el) {\n    var count = data.count();\n    var current = 0;\n\n    while (!el && current < count) {\n      el = data.getItemGraphicEl(current++);\n    }\n  }\n\n  if (el) {\n    var ecData = getECData(el);\n    toggleSeriesBlurState(seriesIndex, ecData.focus, ecData.blurScope, api, isHighlight);\n  } else {\n    var focus_1 = seriesModel.get(['emphasis', 'focus']);\n    var blurScope = seriesModel.get(['emphasis', 'blurScope']);\n\n    if (focus_1 != null) {\n      toggleSeriesBlurState(seriesIndex, focus_1, blurScope, api, isHighlight);\n    }\n  }\n}\nexport function toggleSelectionFromPayload(seriesModel, payload, api) {\n  if (!isSelectChangePayload(payload)) {\n    return;\n  }\n\n  var dataType = payload.dataType;\n  var data = seriesModel.getData(dataType);\n  var dataIndex = queryDataIndex(data, payload);\n\n  if (!isArray(dataIndex)) {\n    dataIndex = [dataIndex];\n  }\n\n  seriesModel[payload.type === TOGGLE_SELECT_ACTION_TYPE ? 'toggleSelect' : payload.type === SELECT_ACTION_TYPE ? 'select' : 'unselect'](dataIndex, dataType);\n}\nexport function updateSeriesElementSelection(seriesModel) {\n  var allData = seriesModel.getAllData();\n  each(allData, function (_a) {\n    var data = _a.data,\n        type = _a.type;\n    data.eachItemGraphicEl(function (el, idx) {\n      seriesModel.isSelected(idx, type) ? enterSelect(el) : leaveSelect(el);\n    });\n  });\n}\nexport function getAllSelectedIndices(ecModel) {\n  var ret = [];\n  ecModel.eachSeries(function (seriesModel) {\n    var allData = seriesModel.getAllData();\n    each(allData, function (_a) {\n      var data = _a.data,\n          type = _a.type;\n      var dataIndices = seriesModel.getSelectedDataIndices();\n\n      if (dataIndices.length > 0) {\n        var item = {\n          dataIndex: dataIndices,\n          seriesIndex: seriesModel.seriesIndex\n        };\n\n        if (type != null) {\n          item.dataType = type;\n        }\n\n        ret.push(item);\n      }\n    });\n  });\n  return ret;\n}\nexport function enableHoverEmphasis(el, focus, blurScope) {\n  setAsHighDownDispatcher(el, true);\n  traverseUpdateState(el, setDefaultStateProxy);\n  enableHoverFocus(el, focus, blurScope);\n}\nexport function enableHoverFocus(el, focus, blurScope) {\n  var ecData = getECData(el);\n\n  if (focus != null) {\n    ecData.focus = focus;\n    ecData.blurScope = blurScope;\n  } else if (ecData.focus) {\n    ecData.focus = null;\n  }\n}\nvar OTHER_STATES = ['emphasis', 'blur', 'select'];\nvar defaultStyleGetterMap = {\n  itemStyle: 'getItemStyle',\n  lineStyle: 'getLineStyle',\n  areaStyle: 'getAreaStyle'\n};\nexport function setStatesStylesFromModel(el, itemModel, styleType, getter) {\n  styleType = styleType || 'itemStyle';\n\n  for (var i = 0; i < OTHER_STATES.length; i++) {\n    var stateName = OTHER_STATES[i];\n    var model = itemModel.getModel([stateName, styleType]);\n    var state = el.ensureState(stateName);\n    state.style = getter ? getter(model) : model[defaultStyleGetterMap[styleType]]();\n  }\n}\nexport function setAsHighDownDispatcher(el, asDispatcher) {\n  var disable = asDispatcher === false;\n  var extendedEl = el;\n\n  if (el.highDownSilentOnTouch) {\n    extendedEl.__highDownSilentOnTouch = el.highDownSilentOnTouch;\n  }\n\n  if (!disable || extendedEl.__highDownDispatcher) {\n    extendedEl.__highByOuter = extendedEl.__highByOuter || 0;\n    extendedEl.__highDownDispatcher = !disable;\n  }\n}\nexport function isHighDownDispatcher(el) {\n  return !!(el && el.__highDownDispatcher);\n}\nexport function getHighlightDigit(highlightKey) {\n  var highlightDigit = _highlightKeyMap[highlightKey];\n\n  if (highlightDigit == null && _highlightNextDigit <= 32) {\n    highlightDigit = _highlightKeyMap[highlightKey] = _highlightNextDigit++;\n  }\n\n  return highlightDigit;\n}\nexport function isSelectChangePayload(payload) {\n  var payloadType = payload.type;\n  return payloadType === SELECT_ACTION_TYPE || payloadType === UNSELECT_ACTION_TYPE || payloadType === TOGGLE_SELECT_ACTION_TYPE;\n}\nexport function isHighDownPayload(payload) {\n  var payloadType = payload.type;\n  return payloadType === HIGHLIGHT_ACTION_TYPE || payloadType === DOWNPLAY_ACTION_TYPE;\n}\nexport function savePathStates(el) {\n  var store = getSavedStates(el);\n  store.normalFill = el.style.fill;\n  store.normalStroke = el.style.stroke;\n  var selectState = el.states.select || {};\n  store.selectFill = selectState.style && selectState.style.fill || null;\n  store.selectStroke = selectState.style && selectState.style.stroke || null;\n}","import PathProxy from '../core/PathProxy';\nimport { applyTransform as v2ApplyTransform } from '../core/vector';\nvar CMD = PathProxy.CMD;\nvar points = [[], [], []];\nvar mathSqrt = Math.sqrt;\nvar mathAtan2 = Math.atan2;\nexport default function transformPath(path, m) {\n    var data = path.data;\n    var len = path.len();\n    var cmd;\n    var nPoint;\n    var i;\n    var j;\n    var k;\n    var p;\n    var M = CMD.M;\n    var C = CMD.C;\n    var L = CMD.L;\n    var R = CMD.R;\n    var A = CMD.A;\n    var Q = CMD.Q;\n    for (i = 0, j = 0; i < len;) {\n        cmd = data[i++];\n        j = i;\n        nPoint = 0;\n        switch (cmd) {\n            case M:\n                nPoint = 1;\n                break;\n            case L:\n                nPoint = 1;\n                break;\n            case C:\n                nPoint = 3;\n                break;\n            case Q:\n                nPoint = 2;\n                break;\n            case A:\n                var x = m[4];\n                var y = m[5];\n                var sx = mathSqrt(m[0] * m[0] + m[1] * m[1]);\n                var sy = mathSqrt(m[2] * m[2] + m[3] * m[3]);\n                var angle = mathAtan2(-m[1] / sy, m[0] / sx);\n                data[i] *= sx;\n                data[i++] += x;\n                data[i] *= sy;\n                data[i++] += y;\n                data[i++] *= sx;\n                data[i++] *= sy;\n                data[i++] += angle;\n                data[i++] += angle;\n                i += 2;\n                j = i;\n                break;\n            case R:\n                p[0] = data[i++];\n                p[1] = data[i++];\n                v2ApplyTransform(p, p, m);\n                data[j++] = p[0];\n                data[j++] = p[1];\n                p[0] += data[i++];\n                p[1] += data[i++];\n                v2ApplyTransform(p, p, m);\n                data[j++] = p[0];\n                data[j++] = p[1];\n        }\n        for (k = 0; k < nPoint; k++) {\n            var p_1 = points[k];\n            p_1[0] = data[i++];\n            p_1[1] = data[i++];\n            v2ApplyTransform(p_1, p_1, m);\n            data[j++] = p_1[0];\n            data[j++] = p_1[1];\n        }\n    }\n    path.increaseVersion();\n}\n","import { __extends } from \"tslib\";\nimport Path from '../graphic/Path';\nimport PathProxy from '../core/PathProxy';\nimport transformPath from './transformPath';\nimport { extend } from '../core/util';\nvar mathSqrt = Math.sqrt;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI = Math.PI;\nfunction vMag(v) {\n    return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\n}\n;\nfunction vRatio(u, v) {\n    return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));\n}\n;\nfunction vAngle(u, v) {\n    return (u[0] * v[1] < u[1] * v[0] ? -1 : 1)\n        * Math.acos(vRatio(u, v));\n}\n;\nfunction processArc(x1, y1, x2, y2, fa, fs, rx, ry, psiDeg, cmd, path) {\n    var psi = psiDeg * (PI / 180.0);\n    var xp = mathCos(psi) * (x1 - x2) / 2.0\n        + mathSin(psi) * (y1 - y2) / 2.0;\n    var yp = -1 * mathSin(psi) * (x1 - x2) / 2.0\n        + mathCos(psi) * (y1 - y2) / 2.0;\n    var lambda = (xp * xp) / (rx * rx) + (yp * yp) / (ry * ry);\n    if (lambda > 1) {\n        rx *= mathSqrt(lambda);\n        ry *= mathSqrt(lambda);\n    }\n    var f = (fa === fs ? -1 : 1)\n        * mathSqrt((((rx * rx) * (ry * ry))\n            - ((rx * rx) * (yp * yp))\n            - ((ry * ry) * (xp * xp))) / ((rx * rx) * (yp * yp)\n            + (ry * ry) * (xp * xp))) || 0;\n    var cxp = f * rx * yp / ry;\n    var cyp = f * -ry * xp / rx;\n    var cx = (x1 + x2) / 2.0\n        + mathCos(psi) * cxp\n        - mathSin(psi) * cyp;\n    var cy = (y1 + y2) / 2.0\n        + mathSin(psi) * cxp\n        + mathCos(psi) * cyp;\n    var theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]);\n    var u = [(xp - cxp) / rx, (yp - cyp) / ry];\n    var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry];\n    var dTheta = vAngle(u, v);\n    if (vRatio(u, v) <= -1) {\n        dTheta = PI;\n    }\n    if (vRatio(u, v) >= 1) {\n        dTheta = 0;\n    }\n    if (dTheta < 0) {\n        var n = Math.round(dTheta / PI * 1e6) / 1e6;\n        dTheta = PI * 2 + (n % 2) * PI;\n    }\n    path.addData(cmd, cx, cy, rx, ry, theta, dTheta, psi, fs);\n}\nvar commandReg = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig;\nvar numberReg = /-?([0-9]*\\.)?[0-9]+([eE]-?[0-9]+)?/g;\nfunction createPathProxyFromString(data) {\n    var path = new PathProxy();\n    if (!data) {\n        return path;\n    }\n    var cpx = 0;\n    var cpy = 0;\n    var subpathX = cpx;\n    var subpathY = cpy;\n    var prevCmd;\n    var CMD = PathProxy.CMD;\n    var cmdList = data.match(commandReg);\n    if (!cmdList) {\n        return path;\n    }\n    for (var l = 0; l < cmdList.length; l++) {\n        var cmdText = cmdList[l];\n        var cmdStr = cmdText.charAt(0);\n        var cmd = void 0;\n        var p = cmdText.match(numberReg) || [];\n        var pLen = p.length;\n        for (var i = 0; i < pLen; i++) {\n            p[i] = parseFloat(p[i]);\n        }\n        var off = 0;\n        while (off < pLen) {\n            var ctlPtx = void 0;\n            var ctlPty = void 0;\n            var rx = void 0;\n            var ry = void 0;\n            var psi = void 0;\n            var fa = void 0;\n            var fs = void 0;\n            var x1 = cpx;\n            var y1 = cpy;\n            var len = void 0;\n            var pathData = void 0;\n            switch (cmdStr) {\n                case 'l':\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'L':\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'm':\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.M;\n                    path.addData(cmd, cpx, cpy);\n                    subpathX = cpx;\n                    subpathY = cpy;\n                    cmdStr = 'l';\n                    break;\n                case 'M':\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.M;\n                    path.addData(cmd, cpx, cpy);\n                    subpathX = cpx;\n                    subpathY = cpy;\n                    cmdStr = 'L';\n                    break;\n                case 'h':\n                    cpx += p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'H':\n                    cpx = p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'v':\n                    cpy += p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'V':\n                    cpy = p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'C':\n                    cmd = CMD.C;\n                    path.addData(cmd, p[off++], p[off++], p[off++], p[off++], p[off++], p[off++]);\n                    cpx = p[off - 2];\n                    cpy = p[off - 1];\n                    break;\n                case 'c':\n                    cmd = CMD.C;\n                    path.addData(cmd, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy);\n                    cpx += p[off - 2];\n                    cpy += p[off - 1];\n                    break;\n                case 'S':\n                    ctlPtx = cpx;\n                    ctlPty = cpy;\n                    len = path.len();\n                    pathData = path.data;\n                    if (prevCmd === CMD.C) {\n                        ctlPtx += cpx - pathData[len - 4];\n                        ctlPty += cpy - pathData[len - 3];\n                    }\n                    cmd = CMD.C;\n                    x1 = p[off++];\n                    y1 = p[off++];\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\n                    break;\n                case 's':\n                    ctlPtx = cpx;\n                    ctlPty = cpy;\n                    len = path.len();\n                    pathData = path.data;\n                    if (prevCmd === CMD.C) {\n                        ctlPtx += cpx - pathData[len - 4];\n                        ctlPty += cpy - pathData[len - 3];\n                    }\n                    cmd = CMD.C;\n                    x1 = cpx + p[off++];\n                    y1 = cpy + p[off++];\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\n                    break;\n                case 'Q':\n                    x1 = p[off++];\n                    y1 = p[off++];\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.Q;\n                    path.addData(cmd, x1, y1, cpx, cpy);\n                    break;\n                case 'q':\n                    x1 = p[off++] + cpx;\n                    y1 = p[off++] + cpy;\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.Q;\n                    path.addData(cmd, x1, y1, cpx, cpy);\n                    break;\n                case 'T':\n                    ctlPtx = cpx;\n                    ctlPty = cpy;\n                    len = path.len();\n                    pathData = path.data;\n                    if (prevCmd === CMD.Q) {\n                        ctlPtx += cpx - pathData[len - 4];\n                        ctlPty += cpy - pathData[len - 3];\n                    }\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.Q;\n                    path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n                    break;\n                case 't':\n                    ctlPtx = cpx;\n                    ctlPty = cpy;\n                    len = path.len();\n                    pathData = path.data;\n                    if (prevCmd === CMD.Q) {\n                        ctlPtx += cpx - pathData[len - 4];\n                        ctlPty += cpy - pathData[len - 3];\n                    }\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.Q;\n                    path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n                    break;\n                case 'A':\n                    rx = p[off++];\n                    ry = p[off++];\n                    psi = p[off++];\n                    fa = p[off++];\n                    fs = p[off++];\n                    x1 = cpx, y1 = cpy;\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.A;\n                    processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\n                    break;\n                case 'a':\n                    rx = p[off++];\n                    ry = p[off++];\n                    psi = p[off++];\n                    fa = p[off++];\n                    fs = p[off++];\n                    x1 = cpx, y1 = cpy;\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.A;\n                    processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\n                    break;\n            }\n        }\n        if (cmdStr === 'z' || cmdStr === 'Z') {\n            cmd = CMD.Z;\n            path.addData(cmd);\n            cpx = subpathX;\n            cpy = subpathY;\n        }\n        prevCmd = cmd;\n    }\n    path.toStatic();\n    return path;\n}\nvar SVGPath = (function (_super) {\n    __extends(SVGPath, _super);\n    function SVGPath() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    SVGPath.prototype.applyTransform = function (m) { };\n    return SVGPath;\n}(Path));\nfunction isPathProxy(path) {\n    return path.setData != null;\n}\nfunction createPathOptions(str, opts) {\n    var pathProxy = createPathProxyFromString(str);\n    var innerOpts = extend({}, opts);\n    innerOpts.buildPath = function (path) {\n        if (isPathProxy(path)) {\n            path.setData(pathProxy.data);\n            var ctx = path.getContext();\n            if (ctx) {\n                path.rebuildPath(ctx, 1);\n            }\n        }\n        else {\n            var ctx = path;\n            pathProxy.rebuildPath(ctx, 1);\n        }\n    };\n    innerOpts.applyTransform = function (m) {\n        transformPath(pathProxy, m);\n        this.dirtyShape();\n    };\n    return innerOpts;\n}\nexport function createFromString(str, opts) {\n    return new SVGPath(createPathOptions(str, opts));\n}\nexport function extendFromString(str, defaultOpts) {\n    var innerOpts = createPathOptions(str, defaultOpts);\n    var Sub = (function (_super) {\n        __extends(Sub, _super);\n        function Sub(opts) {\n            var _this = _super.call(this, opts) || this;\n            _this.applyTransform = innerOpts.applyTransform;\n            _this.buildPath = innerOpts.buildPath;\n            return _this;\n        }\n        return Sub;\n    }(SVGPath));\n    return Sub;\n}\nexport function mergePath(pathEls, opts) {\n    var pathList = [];\n    var len = pathEls.length;\n    for (var i = 0; i < len; i++) {\n        var pathEl = pathEls[i];\n        if (!pathEl.path) {\n            pathEl.createPathProxy();\n        }\n        if (pathEl.shapeChanged()) {\n            pathEl.buildPath(pathEl.path, pathEl.shape, true);\n        }\n        pathList.push(pathEl.path);\n    }\n    var pathBundle = new Path(opts);\n    pathBundle.createPathProxy();\n    pathBundle.buildPath = function (path) {\n        if (isPathProxy(path)) {\n            path.appendPath(pathList);\n            var ctx = path.getContext();\n            if (ctx) {\n                path.rebuildPath(ctx, 1);\n            }\n        }\n    };\n    return pathBundle;\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar CircleShape = (function () {\n    function CircleShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.r = 0;\n    }\n    return CircleShape;\n}());\nvar Circle = (function (_super) {\n    __extends(Circle, _super);\n    function Circle(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Circle.prototype.getDefaultShape = function () {\n        return new CircleShape();\n    };\n    Circle.prototype.buildPath = function (ctx, shape, inBundle) {\n        if (inBundle) {\n            ctx.moveTo(shape.cx + shape.r, shape.cy);\n        }\n        ctx.arc(shape.cx, shape.cy, shape.r, 0, Math.PI * 2);\n    };\n    return Circle;\n}(Path));\n;\nCircle.prototype.type = 'circle';\nexport default Circle;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar EllipseShape = (function () {\n    function EllipseShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.rx = 0;\n        this.ry = 0;\n    }\n    return EllipseShape;\n}());\nvar Ellipse = (function (_super) {\n    __extends(Ellipse, _super);\n    function Ellipse(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Ellipse.prototype.getDefaultShape = function () {\n        return new EllipseShape();\n    };\n    Ellipse.prototype.buildPath = function (ctx, shape) {\n        var k = 0.5522848;\n        var x = shape.cx;\n        var y = shape.cy;\n        var a = shape.rx;\n        var b = shape.ry;\n        var ox = a * k;\n        var oy = b * k;\n        ctx.moveTo(x - a, y);\n        ctx.bezierCurveTo(x - a, y - oy, x - ox, y - b, x, y - b);\n        ctx.bezierCurveTo(x + ox, y - b, x + a, y - oy, x + a, y);\n        ctx.bezierCurveTo(x + a, y + oy, x + ox, y + b, x, y + b);\n        ctx.bezierCurveTo(x - ox, y + b, x - a, y + oy, x - a, y);\n        ctx.closePath();\n    };\n    return Ellipse;\n}(Path));\nEllipse.prototype.type = 'ellipse';\nexport default Ellipse;\n","import { normalizeArcAngles } from '../../core/PathProxy';\nvar PI = Math.PI;\nvar PI2 = PI * 2;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar mathACos = Math.acos;\nvar mathATan2 = Math.atan2;\nvar mathAbs = Math.abs;\nvar mathSqrt = Math.sqrt;\nvar mathMax = Math.max;\nvar mathMin = Math.min;\nvar e = 1e-4;\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n    var x10 = x1 - x0;\n    var y10 = y1 - y0;\n    var x32 = x3 - x2;\n    var y32 = y3 - y2;\n    var t = y32 * x10 - x32 * y10;\n    if (t * t < e) {\n        return;\n    }\n    t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n    return [x0 + t * x10, y0 + t * y10];\n}\nfunction computeCornerTangents(x0, y0, x1, y1, radius, cr, clockwise) {\n    var x01 = x0 - x1;\n    var y01 = y0 - y1;\n    var lo = (clockwise ? cr : -cr) / mathSqrt(x01 * x01 + y01 * y01);\n    var ox = lo * y01;\n    var oy = -lo * x01;\n    var x11 = x0 + ox;\n    var y11 = y0 + oy;\n    var x10 = x1 + ox;\n    var y10 = y1 + oy;\n    var x00 = (x11 + x10) / 2;\n    var y00 = (y11 + y10) / 2;\n    var dx = x10 - x11;\n    var dy = y10 - y11;\n    var d2 = dx * dx + dy * dy;\n    var r = radius - cr;\n    var s = x11 * y10 - x10 * y11;\n    var d = (dy < 0 ? -1 : 1) * mathSqrt(mathMax(0, r * r * d2 - s * s));\n    var cx0 = (s * dy - dx * d) / d2;\n    var cy0 = (-s * dx - dy * d) / d2;\n    var cx1 = (s * dy + dx * d) / d2;\n    var cy1 = (-s * dx + dy * d) / d2;\n    var dx0 = cx0 - x00;\n    var dy0 = cy0 - y00;\n    var dx1 = cx1 - x00;\n    var dy1 = cy1 - y00;\n    if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) {\n        cx0 = cx1;\n        cy0 = cy1;\n    }\n    return {\n        cx: cx0,\n        cy: cy0,\n        x01: -ox,\n        y01: -oy,\n        x11: cx0 * (radius / r - 1),\n        y11: cy0 * (radius / r - 1)\n    };\n}\nexport function buildPath(ctx, shape) {\n    var radius = mathMax(shape.r, 0);\n    var innerRadius = mathMax(shape.r0 || 0, 0);\n    var hasRadius = radius > 0;\n    var hasInnerRadius = innerRadius > 0;\n    if (!hasRadius && !hasInnerRadius) {\n        return;\n    }\n    if (!hasRadius) {\n        radius = innerRadius;\n        innerRadius = 0;\n    }\n    if (innerRadius > radius) {\n        var tmp = radius;\n        radius = innerRadius;\n        innerRadius = tmp;\n    }\n    var clockwise = !!shape.clockwise;\n    var startAngle = shape.startAngle;\n    var endAngle = shape.endAngle;\n    var tmpAngles = [startAngle, endAngle];\n    normalizeArcAngles(tmpAngles, !clockwise);\n    var arc = mathAbs(tmpAngles[0] - tmpAngles[1]);\n    var x = shape.cx;\n    var y = shape.cy;\n    var cornerRadius = shape.cornerRadius || 0;\n    var innerCornerRadius = shape.innerCornerRadius || 0;\n    if (!(radius > e)) {\n        ctx.moveTo(x, y);\n    }\n    else if (arc > PI2 - e) {\n        ctx.moveTo(x + radius * mathCos(startAngle), y + radius * mathSin(startAngle));\n        ctx.arc(x, y, radius, startAngle, endAngle, !clockwise);\n        if (innerRadius > e) {\n            ctx.moveTo(x + innerRadius * mathCos(endAngle), y + innerRadius * mathSin(endAngle));\n            ctx.arc(x, y, innerRadius, endAngle, startAngle, clockwise);\n        }\n    }\n    else {\n        var halfRd = mathAbs(radius - innerRadius) / 2;\n        var cr = mathMin(halfRd, cornerRadius);\n        var icr = mathMin(halfRd, innerCornerRadius);\n        var cr0 = icr;\n        var cr1 = cr;\n        var xrs = radius * mathCos(startAngle);\n        var yrs = radius * mathSin(startAngle);\n        var xire = innerRadius * mathCos(endAngle);\n        var yire = innerRadius * mathSin(endAngle);\n        var xre = void 0;\n        var yre = void 0;\n        var xirs = void 0;\n        var yirs = void 0;\n        if (cr > e || icr > e) {\n            xre = radius * mathCos(endAngle);\n            yre = radius * mathSin(endAngle);\n            xirs = innerRadius * mathCos(startAngle);\n            yirs = innerRadius * mathSin(startAngle);\n            if (arc < PI) {\n                var it_1 = intersect(xrs, yrs, xirs, yirs, xre, yre, xire, yire);\n                if (it_1) {\n                    var x0 = xrs - it_1[0];\n                    var y0 = yrs - it_1[1];\n                    var x1 = xre - it_1[0];\n                    var y1 = yre - it_1[1];\n                    var a = 1 / mathSin(mathACos((x0 * x1 + y0 * y1) / (mathSqrt(x0 * x0 + y0 * y0) * mathSqrt(x1 * x1 + y1 * y1))) / 2);\n                    var b = mathSqrt(it_1[0] * it_1[0] + it_1[1] * it_1[1]);\n                    cr0 = mathMin(icr, (innerRadius - b) / (a - 1));\n                    cr1 = mathMin(cr, (radius - b) / (a + 1));\n                }\n            }\n        }\n        if (!(arc > e)) {\n            ctx.moveTo(x + xrs, y + yrs);\n        }\n        else if (cr1 > e) {\n            var ct0 = computeCornerTangents(xirs, yirs, xrs, yrs, radius, cr1, clockwise);\n            var ct1 = computeCornerTangents(xre, yre, xire, yire, radius, cr1, clockwise);\n            ctx.moveTo(x + ct0.cx + ct0.x01, y + ct0.cy + ct0.y01);\n            if (cr1 < cr) {\n                ctx.arc(x + ct0.cx, y + ct0.cy, cr1, mathATan2(ct0.y01, ct0.x01), mathATan2(ct1.y01, ct1.x01), !clockwise);\n            }\n            else {\n                ctx.arc(x + ct0.cx, y + ct0.cy, cr1, mathATan2(ct0.y01, ct0.x01), mathATan2(ct0.y11, ct0.x11), !clockwise);\n                ctx.arc(x, y, radius, mathATan2(ct0.cy + ct0.y11, ct0.cx + ct0.x11), mathATan2(ct1.cy + ct1.y11, ct1.cx + ct1.x11), !clockwise);\n                ctx.arc(x + ct1.cx, y + ct1.cy, cr1, mathATan2(ct1.y11, ct1.x11), mathATan2(ct1.y01, ct1.x01), !clockwise);\n            }\n        }\n        else {\n            ctx.moveTo(x + xrs, y + yrs);\n            ctx.arc(x, y, radius, startAngle, endAngle, !clockwise);\n        }\n        if (!(innerRadius > e) || !(arc > e)) {\n            ctx.lineTo(x + xire, y + yire);\n        }\n        else if (cr0 > e) {\n            var ct0 = computeCornerTangents(xire, yire, xre, yre, innerRadius, -cr0, clockwise);\n            var ct1 = computeCornerTangents(xrs, yrs, xirs, yirs, innerRadius, -cr0, clockwise);\n            ctx.lineTo(x + ct0.cx + ct0.x01, y + ct0.cy + ct0.y01);\n            if (cr0 < icr) {\n                ctx.arc(x + ct0.cx, y + ct0.cy, cr0, mathATan2(ct0.y01, ct0.x01), mathATan2(ct1.y01, ct1.x01), !clockwise);\n            }\n            else {\n                ctx.arc(x + ct0.cx, y + ct0.cy, cr0, mathATan2(ct0.y01, ct0.x01), mathATan2(ct0.y11, ct0.x11), !clockwise);\n                ctx.arc(x, y, innerRadius, mathATan2(ct0.cy + ct0.y11, ct0.cx + ct0.x11), mathATan2(ct1.cy + ct1.y11, ct1.cx + ct1.x11), clockwise);\n                ctx.arc(x + ct1.cx, y + ct1.cy, cr0, mathATan2(ct1.y11, ct1.x11), mathATan2(ct1.y01, ct1.x01), !clockwise);\n            }\n        }\n        else {\n            ctx.lineTo(x + xire, y + yire);\n            ctx.arc(x, y, innerRadius, endAngle, startAngle, clockwise);\n        }\n    }\n    ctx.closePath();\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as roundSectorHelper from '../helper/roundSector';\nvar SectorShape = (function () {\n    function SectorShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.r0 = 0;\n        this.r = 0;\n        this.startAngle = 0;\n        this.endAngle = Math.PI * 2;\n        this.clockwise = true;\n        this.cornerRadius = 0;\n        this.innerCornerRadius = 0;\n    }\n    return SectorShape;\n}());\nvar Sector = (function (_super) {\n    __extends(Sector, _super);\n    function Sector(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Sector.prototype.getDefaultShape = function () {\n        return new SectorShape();\n    };\n    Sector.prototype.buildPath = function (ctx, shape) {\n        roundSectorHelper.buildPath(ctx, shape);\n    };\n    Sector.prototype.isZeroArea = function () {\n        return this.shape.startAngle === this.shape.endAngle\n            || this.shape.r === this.shape.r0;\n    };\n    return Sector;\n}(Path));\nSector.prototype.type = 'sector';\nexport default Sector;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar RingShape = (function () {\n    function RingShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.r = 0;\n        this.r0 = 0;\n    }\n    return RingShape;\n}());\nvar Ring = (function (_super) {\n    __extends(Ring, _super);\n    function Ring(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Ring.prototype.getDefaultShape = function () {\n        return new RingShape();\n    };\n    Ring.prototype.buildPath = function (ctx, shape) {\n        var x = shape.cx;\n        var y = shape.cy;\n        var PI2 = Math.PI * 2;\n        ctx.moveTo(x + shape.r, y);\n        ctx.arc(x, y, shape.r, 0, PI2, false);\n        ctx.moveTo(x + shape.r0, y);\n        ctx.arc(x, y, shape.r0, 0, PI2, true);\n    };\n    return Ring;\n}(Path));\nRing.prototype.type = 'ring';\nexport default Ring;\n","import { distance as v2Distance } from '../../core/vector';\nfunction interpolate(p0, p1, p2, p3, t, t2, t3) {\n    var v0 = (p2 - p0) * 0.5;\n    var v1 = (p3 - p1) * 0.5;\n    return (2 * (p1 - p2) + v0 + v1) * t3\n        + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\n        + v0 * t + p1;\n}\nexport default function smoothSpline(points, isLoop) {\n    var len = points.length;\n    var ret = [];\n    var distance = 0;\n    for (var i = 1; i < len; i++) {\n        distance += v2Distance(points[i - 1], points[i]);\n    }\n    var segs = distance / 2;\n    segs = segs < len ? len : segs;\n    for (var i = 0; i < segs; i++) {\n        var pos = i / (segs - 1) * (isLoop ? len : len - 1);\n        var idx = Math.floor(pos);\n        var w = pos - idx;\n        var p0 = void 0;\n        var p1 = points[idx % len];\n        var p2 = void 0;\n        var p3 = void 0;\n        if (!isLoop) {\n            p0 = points[idx === 0 ? idx : idx - 1];\n            p2 = points[idx > len - 2 ? len - 1 : idx + 1];\n            p3 = points[idx > len - 3 ? len - 1 : idx + 2];\n        }\n        else {\n            p0 = points[(idx - 1 + len) % len];\n            p2 = points[(idx + 1) % len];\n            p3 = points[(idx + 2) % len];\n        }\n        var w2 = w * w;\n        var w3 = w * w2;\n        ret.push([\n            interpolate(p0[0], p1[0], p2[0], p3[0], w, w2, w3),\n            interpolate(p0[1], p1[1], p2[1], p3[1], w, w2, w3)\n        ]);\n    }\n    return ret;\n}\n","import { min as v2Min, max as v2Max, scale as v2Scale, distance as v2Distance, add as v2Add, clone as v2Clone, sub as v2Sub } from '../../core/vector';\nexport default function smoothBezier(points, smooth, isLoop, constraint) {\n    var cps = [];\n    var v = [];\n    var v1 = [];\n    var v2 = [];\n    var prevPoint;\n    var nextPoint;\n    var min;\n    var max;\n    if (constraint) {\n        min = [Infinity, Infinity];\n        max = [-Infinity, -Infinity];\n        for (var i = 0, len = points.length; i < len; i++) {\n            v2Min(min, min, points[i]);\n            v2Max(max, max, points[i]);\n        }\n        v2Min(min, min, constraint[0]);\n        v2Max(max, max, constraint[1]);\n    }\n    for (var i = 0, len = points.length; i < len; i++) {\n        var point = points[i];\n        if (isLoop) {\n            prevPoint = points[i ? i - 1 : len - 1];\n            nextPoint = points[(i + 1) % len];\n        }\n        else {\n            if (i === 0 || i === len - 1) {\n                cps.push(v2Clone(points[i]));\n                continue;\n            }\n            else {\n                prevPoint = points[i - 1];\n                nextPoint = points[i + 1];\n            }\n        }\n        v2Sub(v, nextPoint, prevPoint);\n        v2Scale(v, v, smooth);\n        var d0 = v2Distance(point, prevPoint);\n        var d1 = v2Distance(point, nextPoint);\n        var sum = d0 + d1;\n        if (sum !== 0) {\n            d0 /= sum;\n            d1 /= sum;\n        }\n        v2Scale(v1, v, -d0);\n        v2Scale(v2, v, d1);\n        var cp0 = v2Add([], point, v1);\n        var cp1 = v2Add([], point, v2);\n        if (constraint) {\n            v2Max(cp0, cp0, min);\n            v2Min(cp0, cp0, max);\n            v2Max(cp1, cp1, min);\n            v2Min(cp1, cp1, max);\n        }\n        cps.push(cp0);\n        cps.push(cp1);\n    }\n    if (isLoop) {\n        cps.push(cps.shift());\n    }\n    return cps;\n}\n","import smoothSpline from './smoothSpline';\nimport smoothBezier from './smoothBezier';\nexport function buildPath(ctx, shape, closePath) {\n    var smooth = shape.smooth;\n    var points = shape.points;\n    if (points && points.length >= 2) {\n        if (smooth && smooth !== 'spline') {\n            var controlPoints = smoothBezier(points, smooth, closePath, shape.smoothConstraint);\n            ctx.moveTo(points[0][0], points[0][1]);\n            var len = points.length;\n            for (var i = 0; i < (closePath ? len : len - 1); i++) {\n                var cp1 = controlPoints[i * 2];\n                var cp2 = controlPoints[i * 2 + 1];\n                var p = points[(i + 1) % len];\n                ctx.bezierCurveTo(cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]);\n            }\n        }\n        else {\n            if (smooth === 'spline') {\n                points = smoothSpline(points, closePath);\n            }\n            ctx.moveTo(points[0][0], points[0][1]);\n            for (var i = 1, l = points.length; i < l; i++) {\n                ctx.lineTo(points[i][0], points[i][1]);\n            }\n        }\n        closePath && ctx.closePath();\n    }\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as polyHelper from '../helper/poly';\nvar PolygonShape = (function () {\n    function PolygonShape() {\n        this.points = null;\n        this.smooth = 0;\n        this.smoothConstraint = null;\n    }\n    return PolygonShape;\n}());\nvar Polygon = (function (_super) {\n    __extends(Polygon, _super);\n    function Polygon(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Polygon.prototype.getDefaultShape = function () {\n        return new PolygonShape();\n    };\n    Polygon.prototype.buildPath = function (ctx, shape) {\n        polyHelper.buildPath(ctx, shape, true);\n    };\n    return Polygon;\n}(Path));\n;\nPolygon.prototype.type = 'polygon';\nexport default Polygon;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as polyHelper from '../helper/poly';\nvar PolylineShape = (function () {\n    function PolylineShape() {\n        this.points = null;\n        this.percent = 1;\n        this.smooth = 0;\n        this.smoothConstraint = null;\n    }\n    return PolylineShape;\n}());\nvar Polyline = (function (_super) {\n    __extends(Polyline, _super);\n    function Polyline(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Polyline.prototype.getDefaultStyle = function () {\n        return {\n            stroke: '#000',\n            fill: null\n        };\n    };\n    Polyline.prototype.getDefaultShape = function () {\n        return new PolylineShape();\n    };\n    Polyline.prototype.buildPath = function (ctx, shape) {\n        polyHelper.buildPath(ctx, shape, false);\n    };\n    return Polyline;\n}(Path));\nPolyline.prototype.type = 'polyline';\nexport default Polyline;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport { subPixelOptimizeLine } from '../helper/subPixelOptimize';\nvar subPixelOptimizeOutputShape = {};\nvar LineShape = (function () {\n    function LineShape() {\n        this.x1 = 0;\n        this.y1 = 0;\n        this.x2 = 0;\n        this.y2 = 0;\n        this.percent = 1;\n    }\n    return LineShape;\n}());\nvar Line = (function (_super) {\n    __extends(Line, _super);\n    function Line(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Line.prototype.getDefaultStyle = function () {\n        return {\n            stroke: '#000',\n            fill: null\n        };\n    };\n    Line.prototype.getDefaultShape = function () {\n        return new LineShape();\n    };\n    Line.prototype.buildPath = function (ctx, shape) {\n        var x1;\n        var y1;\n        var x2;\n        var y2;\n        if (this.subPixelOptimize) {\n            var optimizedShape = subPixelOptimizeLine(subPixelOptimizeOutputShape, shape, this.style);\n            x1 = optimizedShape.x1;\n            y1 = optimizedShape.y1;\n            x2 = optimizedShape.x2;\n            y2 = optimizedShape.y2;\n        }\n        else {\n            x1 = shape.x1;\n            y1 = shape.y1;\n            x2 = shape.x2;\n            y2 = shape.y2;\n        }\n        var percent = shape.percent;\n        if (percent === 0) {\n            return;\n        }\n        ctx.moveTo(x1, y1);\n        if (percent < 1) {\n            x2 = x1 * (1 - percent) + x2 * percent;\n            y2 = y1 * (1 - percent) + y2 * percent;\n        }\n        ctx.lineTo(x2, y2);\n    };\n    Line.prototype.pointAt = function (p) {\n        var shape = this.shape;\n        return [\n            shape.x1 * (1 - p) + shape.x2 * p,\n            shape.y1 * (1 - p) + shape.y2 * p\n        ];\n    };\n    return Line;\n}(Path));\nLine.prototype.type = 'line';\nexport default Line;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as vec2 from '../../core/vector';\nimport { quadraticSubdivide, cubicSubdivide, quadraticAt, cubicAt, quadraticDerivativeAt, cubicDerivativeAt } from '../../core/curve';\nvar out = [];\nvar BezierCurveShape = (function () {\n    function BezierCurveShape() {\n        this.x1 = 0;\n        this.y1 = 0;\n        this.x2 = 0;\n        this.y2 = 0;\n        this.cpx1 = 0;\n        this.cpy1 = 0;\n        this.percent = 1;\n    }\n    return BezierCurveShape;\n}());\nfunction someVectorAt(shape, t, isTangent) {\n    var cpx2 = shape.cpx2;\n    var cpy2 = shape.cpy2;\n    if (cpx2 === null || cpy2 === null) {\n        return [\n            (isTangent ? cubicDerivativeAt : cubicAt)(shape.x1, shape.cpx1, shape.cpx2, shape.x2, t),\n            (isTangent ? cubicDerivativeAt : cubicAt)(shape.y1, shape.cpy1, shape.cpy2, shape.y2, t)\n        ];\n    }\n    else {\n        return [\n            (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.x1, shape.cpx1, shape.x2, t),\n            (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.y1, shape.cpy1, shape.y2, t)\n        ];\n    }\n}\nvar BezierCurve = (function (_super) {\n    __extends(BezierCurve, _super);\n    function BezierCurve(opts) {\n        return _super.call(this, opts) || this;\n    }\n    BezierCurve.prototype.getDefaultStyle = function () {\n        return {\n            stroke: '#000',\n            fill: null\n        };\n    };\n    BezierCurve.prototype.getDefaultShape = function () {\n        return new BezierCurveShape();\n    };\n    BezierCurve.prototype.buildPath = function (ctx, shape) {\n        var x1 = shape.x1;\n        var y1 = shape.y1;\n        var x2 = shape.x2;\n        var y2 = shape.y2;\n        var cpx1 = shape.cpx1;\n        var cpy1 = shape.cpy1;\n        var cpx2 = shape.cpx2;\n        var cpy2 = shape.cpy2;\n        var percent = shape.percent;\n        if (percent === 0) {\n            return;\n        }\n        ctx.moveTo(x1, y1);\n        if (cpx2 == null || cpy2 == null) {\n            if (percent < 1) {\n                quadraticSubdivide(x1, cpx1, x2, percent, out);\n                cpx1 = out[1];\n                x2 = out[2];\n                quadraticSubdivide(y1, cpy1, y2, percent, out);\n                cpy1 = out[1];\n                y2 = out[2];\n            }\n            ctx.quadraticCurveTo(cpx1, cpy1, x2, y2);\n        }\n        else {\n            if (percent < 1) {\n                cubicSubdivide(x1, cpx1, cpx2, x2, percent, out);\n                cpx1 = out[1];\n                cpx2 = out[2];\n                x2 = out[3];\n                cubicSubdivide(y1, cpy1, cpy2, y2, percent, out);\n                cpy1 = out[1];\n                cpy2 = out[2];\n                y2 = out[3];\n            }\n            ctx.bezierCurveTo(cpx1, cpy1, cpx2, cpy2, x2, y2);\n        }\n    };\n    BezierCurve.prototype.pointAt = function (t) {\n        return someVectorAt(this.shape, t, false);\n    };\n    BezierCurve.prototype.tangentAt = function (t) {\n        var p = someVectorAt(this.shape, t, true);\n        return vec2.normalize(p, p);\n    };\n    return BezierCurve;\n}(Path));\n;\nBezierCurve.prototype.type = 'bezier-curve';\nexport default BezierCurve;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar ArcShape = (function () {\n    function ArcShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.r = 0;\n        this.startAngle = 0;\n        this.endAngle = Math.PI * 2;\n        this.clockwise = true;\n    }\n    return ArcShape;\n}());\nvar Arc = (function (_super) {\n    __extends(Arc, _super);\n    function Arc(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Arc.prototype.getDefaultStyle = function () {\n        return {\n            stroke: '#000',\n            fill: null\n        };\n    };\n    Arc.prototype.getDefaultShape = function () {\n        return new ArcShape();\n    };\n    Arc.prototype.buildPath = function (ctx, shape) {\n        var x = shape.cx;\n        var y = shape.cy;\n        var r = Math.max(shape.r, 0);\n        var startAngle = shape.startAngle;\n        var endAngle = shape.endAngle;\n        var clockwise = shape.clockwise;\n        var unitX = Math.cos(startAngle);\n        var unitY = Math.sin(startAngle);\n        ctx.moveTo(unitX * r + x, unitY * r + y);\n        ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\n    };\n    return Arc;\n}(Path));\nArc.prototype.type = 'arc';\nexport default Arc;\n","import { __extends } from \"tslib\";\nimport Path from './Path';\nvar CompoundPath = (function (_super) {\n    __extends(CompoundPath, _super);\n    function CompoundPath() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.type = 'compound';\n        return _this;\n    }\n    CompoundPath.prototype._updatePathDirty = function () {\n        var paths = this.shape.paths;\n        var dirtyPath = this.shapeChanged();\n        for (var i = 0; i < paths.length; i++) {\n            dirtyPath = dirtyPath || paths[i].shapeChanged();\n        }\n        if (dirtyPath) {\n            this.dirtyShape();\n        }\n    };\n    CompoundPath.prototype.beforeBrush = function () {\n        this._updatePathDirty();\n        var paths = this.shape.paths || [];\n        var scale = this.getGlobalScale();\n        for (var i = 0; i < paths.length; i++) {\n            if (!paths[i].path) {\n                paths[i].createPathProxy();\n            }\n            paths[i].path.setScale(scale[0], scale[1], paths[i].segmentIgnoreThreshold);\n        }\n    };\n    CompoundPath.prototype.buildPath = function (ctx, shape) {\n        var paths = shape.paths || [];\n        for (var i = 0; i < paths.length; i++) {\n            paths[i].buildPath(ctx, paths[i].shape, true);\n        }\n    };\n    CompoundPath.prototype.afterBrush = function () {\n        var paths = this.shape.paths || [];\n        for (var i = 0; i < paths.length; i++) {\n            paths[i].pathUpdated();\n        }\n    };\n    CompoundPath.prototype.getBoundingRect = function () {\n        this._updatePathDirty.call(this);\n        return Path.prototype.getBoundingRect.call(this);\n    };\n    return CompoundPath;\n}(Path));\nexport default CompoundPath;\n","var Gradient = (function () {\n    function Gradient(colorStops) {\n        this.colorStops = colorStops || [];\n    }\n    Gradient.prototype.addColorStop = function (offset, color) {\n        this.colorStops.push({\n            offset: offset,\n            color: color\n        });\n    };\n    return Gradient;\n}());\nexport default Gradient;\n","import { __extends } from \"tslib\";\nimport Gradient from './Gradient';\nvar LinearGradient = (function (_super) {\n    __extends(LinearGradient, _super);\n    function LinearGradient(x, y, x2, y2, colorStops, globalCoord) {\n        var _this = _super.call(this, colorStops) || this;\n        _this.x = x == null ? 0 : x;\n        _this.y = y == null ? 0 : y;\n        _this.x2 = x2 == null ? 1 : x2;\n        _this.y2 = y2 == null ? 0 : y2;\n        _this.type = 'linear';\n        _this.global = globalCoord || false;\n        return _this;\n    }\n    return LinearGradient;\n}(Gradient));\nexport default LinearGradient;\n;\n","import { __extends } from \"tslib\";\nimport Gradient from './Gradient';\nvar RadialGradient = (function (_super) {\n    __extends(RadialGradient, _super);\n    function RadialGradient(x, y, r, colorStops, globalCoord) {\n        var _this = _super.call(this, colorStops) || this;\n        _this.x = x == null ? 0.5 : x;\n        _this.y = y == null ? 0.5 : y;\n        _this.r = r == null ? 0.5 : r;\n        _this.type = 'radial';\n        _this.global = globalCoord || false;\n        return _this;\n    }\n    return RadialGradient;\n}(Gradient));\nexport default RadialGradient;\n","import Point from './Point';\nvar extent = [0, 0];\nvar extent2 = [0, 0];\nvar minTv = new Point();\nvar maxTv = new Point();\nvar OrientedBoundingRect = (function () {\n    function OrientedBoundingRect(rect, transform) {\n        this._corners = [];\n        this._axes = [];\n        this._origin = [0, 0];\n        for (var i = 0; i < 4; i++) {\n            this._corners[i] = new Point();\n        }\n        for (var i = 0; i < 2; i++) {\n            this._axes[i] = new Point();\n        }\n        if (rect) {\n            this.fromBoundingRect(rect, transform);\n        }\n    }\n    OrientedBoundingRect.prototype.fromBoundingRect = function (rect, transform) {\n        var corners = this._corners;\n        var axes = this._axes;\n        var x = rect.x;\n        var y = rect.y;\n        var x2 = x + rect.width;\n        var y2 = y + rect.height;\n        corners[0].set(x, y);\n        corners[1].set(x2, y);\n        corners[2].set(x2, y2);\n        corners[3].set(x, y2);\n        if (transform) {\n            for (var i = 0; i < 4; i++) {\n                corners[i].transform(transform);\n            }\n        }\n        Point.sub(axes[0], corners[1], corners[0]);\n        Point.sub(axes[1], corners[3], corners[0]);\n        axes[0].normalize();\n        axes[1].normalize();\n        for (var i = 0; i < 2; i++) {\n            this._origin[i] = axes[i].dot(corners[0]);\n        }\n    };\n    OrientedBoundingRect.prototype.intersect = function (other, mtv) {\n        var overlapped = true;\n        var noMtv = !mtv;\n        minTv.set(Infinity, Infinity);\n        maxTv.set(0, 0);\n        if (!this._intersectCheckOneSide(this, other, minTv, maxTv, noMtv, 1)) {\n            overlapped = false;\n            if (noMtv) {\n                return overlapped;\n            }\n        }\n        if (!this._intersectCheckOneSide(other, this, minTv, maxTv, noMtv, -1)) {\n            overlapped = false;\n            if (noMtv) {\n                return overlapped;\n            }\n        }\n        if (!noMtv) {\n            Point.copy(mtv, overlapped ? minTv : maxTv);\n        }\n        return overlapped;\n    };\n    OrientedBoundingRect.prototype._intersectCheckOneSide = function (self, other, minTv, maxTv, noMtv, inverse) {\n        var overlapped = true;\n        for (var i = 0; i < 2; i++) {\n            var axis = this._axes[i];\n            this._getProjMinMaxOnAxis(i, self._corners, extent);\n            this._getProjMinMaxOnAxis(i, other._corners, extent2);\n            if (extent[1] < extent2[0] || extent[0] > extent2[1]) {\n                overlapped = false;\n                if (noMtv) {\n                    return overlapped;\n                }\n                var dist0 = Math.abs(extent2[0] - extent[1]);\n                var dist1 = Math.abs(extent[0] - extent2[1]);\n                if (Math.min(dist0, dist1) > maxTv.len()) {\n                    if (dist0 < dist1) {\n                        Point.scale(maxTv, axis, -dist0 * inverse);\n                    }\n                    else {\n                        Point.scale(maxTv, axis, dist1 * inverse);\n                    }\n                }\n            }\n            else if (minTv) {\n                var dist0 = Math.abs(extent2[0] - extent[1]);\n                var dist1 = Math.abs(extent[0] - extent2[1]);\n                if (Math.min(dist0, dist1) < minTv.len()) {\n                    if (dist0 < dist1) {\n                        Point.scale(minTv, axis, dist0 * inverse);\n                    }\n                    else {\n                        Point.scale(minTv, axis, -dist1 * inverse);\n                    }\n                }\n            }\n        }\n        return overlapped;\n    };\n    OrientedBoundingRect.prototype._getProjMinMaxOnAxis = function (dim, corners, out) {\n        var axis = this._axes[dim];\n        var origin = this._origin;\n        var proj = corners[0].dot(axis) + origin[dim];\n        var min = proj;\n        var max = proj;\n        for (var i = 1; i < corners.length; i++) {\n            var proj_1 = corners[i].dot(axis) + origin[dim];\n            min = Math.min(proj_1, min);\n            max = Math.max(proj_1, max);\n        }\n        out[0] = min;\n        out[1] = max;\n    };\n    return OrientedBoundingRect;\n}());\nexport default OrientedBoundingRect;\n","import { __extends } from \"tslib\";\nimport Displayble from './Displayable';\nimport BoundingRect from '../core/BoundingRect';\nvar m = [];\nvar IncrementalDisplayable = (function (_super) {\n    __extends(IncrementalDisplayable, _super);\n    function IncrementalDisplayable() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.notClear = true;\n        _this.incremental = true;\n        _this._displayables = [];\n        _this._temporaryDisplayables = [];\n        _this._cursor = 0;\n        return _this;\n    }\n    IncrementalDisplayable.prototype.traverse = function (cb, context) {\n        cb.call(context, this);\n    };\n    IncrementalDisplayable.prototype.useStyle = function () {\n        this.style = {};\n    };\n    IncrementalDisplayable.prototype.getCursor = function () {\n        return this._cursor;\n    };\n    IncrementalDisplayable.prototype.innerAfterBrush = function () {\n        this._cursor = this._displayables.length;\n    };\n    IncrementalDisplayable.prototype.clearDisplaybles = function () {\n        this._displayables = [];\n        this._temporaryDisplayables = [];\n        this._cursor = 0;\n        this.markRedraw();\n        this.notClear = false;\n    };\n    IncrementalDisplayable.prototype.clearTemporalDisplayables = function () {\n        this._temporaryDisplayables = [];\n    };\n    IncrementalDisplayable.prototype.addDisplayable = function (displayable, notPersistent) {\n        if (notPersistent) {\n            this._temporaryDisplayables.push(displayable);\n        }\n        else {\n            this._displayables.push(displayable);\n        }\n        this.markRedraw();\n    };\n    IncrementalDisplayable.prototype.addDisplayables = function (displayables, notPersistent) {\n        notPersistent = notPersistent || false;\n        for (var i = 0; i < displayables.length; i++) {\n            this.addDisplayable(displayables[i], notPersistent);\n        }\n    };\n    IncrementalDisplayable.prototype.getDisplayables = function () {\n        return this._displayables;\n    };\n    IncrementalDisplayable.prototype.getTemporalDisplayables = function () {\n        return this._temporaryDisplayables;\n    };\n    IncrementalDisplayable.prototype.eachPendingDisplayable = function (cb) {\n        for (var i = this._cursor; i < this._displayables.length; i++) {\n            cb && cb(this._displayables[i]);\n        }\n        for (var i = 0; i < this._temporaryDisplayables.length; i++) {\n            cb && cb(this._temporaryDisplayables[i]);\n        }\n    };\n    IncrementalDisplayable.prototype.update = function () {\n        this.updateTransform();\n        for (var i = this._cursor; i < this._displayables.length; i++) {\n            var displayable = this._displayables[i];\n            displayable.parent = this;\n            displayable.update();\n            displayable.parent = null;\n        }\n        for (var i = 0; i < this._temporaryDisplayables.length; i++) {\n            var displayable = this._temporaryDisplayables[i];\n            displayable.parent = this;\n            displayable.update();\n            displayable.parent = null;\n        }\n    };\n    IncrementalDisplayable.prototype.getBoundingRect = function () {\n        if (!this._rect) {\n            var rect = new BoundingRect(Infinity, Infinity, -Infinity, -Infinity);\n            for (var i = 0; i < this._displayables.length; i++) {\n                var displayable = this._displayables[i];\n                var childRect = displayable.getBoundingRect().clone();\n                if (displayable.needLocalTransform()) {\n                    childRect.applyTransform(displayable.getLocalTransform(m));\n                }\n                rect.union(childRect);\n            }\n            this._rect = rect;\n        }\n        return this._rect;\n    };\n    IncrementalDisplayable.prototype.contain = function (x, y) {\n        var localPos = this.transformCoordToLocal(x, y);\n        var rect = this.getBoundingRect();\n        if (rect.contain(localPos[0], localPos[1])) {\n            for (var i = 0; i < this._displayables.length; i++) {\n                var displayable = this._displayables[i];\n                if (displayable.contain(x, y)) {\n                    return true;\n                }\n            }\n        }\n        return false;\n    };\n    return IncrementalDisplayable;\n}(Displayble));\nexport default IncrementalDisplayable;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as pathTool from 'zrender/lib/tool/path';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport * as vector from 'zrender/lib/core/vector';\nimport Path from 'zrender/lib/graphic/Path';\nimport Transformable from 'zrender/lib/core/Transformable';\nimport ZRImage from 'zrender/lib/graphic/Image';\nimport Group from 'zrender/lib/graphic/Group';\nimport ZRText from 'zrender/lib/graphic/Text';\nimport Circle from 'zrender/lib/graphic/shape/Circle';\nimport Ellipse from 'zrender/lib/graphic/shape/Ellipse';\nimport Sector from 'zrender/lib/graphic/shape/Sector';\nimport Ring from 'zrender/lib/graphic/shape/Ring';\nimport Polygon from 'zrender/lib/graphic/shape/Polygon';\nimport Polyline from 'zrender/lib/graphic/shape/Polyline';\nimport Rect from 'zrender/lib/graphic/shape/Rect';\nimport Line from 'zrender/lib/graphic/shape/Line';\nimport BezierCurve from 'zrender/lib/graphic/shape/BezierCurve';\nimport Arc from 'zrender/lib/graphic/shape/Arc';\nimport CompoundPath from 'zrender/lib/graphic/CompoundPath';\nimport LinearGradient from 'zrender/lib/graphic/LinearGradient';\nimport RadialGradient from 'zrender/lib/graphic/RadialGradient';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport OrientedBoundingRect from 'zrender/lib/core/OrientedBoundingRect';\nimport Point from 'zrender/lib/core/Point';\nimport IncrementalDisplayable from 'zrender/lib/graphic/IncrementalDisplayable';\nimport * as subPixelOptimizeUtil from 'zrender/lib/graphic/helper/subPixelOptimize';\nimport { extend, isArrayLike, map, defaults, isObject, retrieve2 } from 'zrender/lib/core/util';\nimport { getECData } from './innerStore';\nvar mathMax = Math.max;\nvar mathMin = Math.min;\nvar _customShapeMap = {};\nexport function extendShape(opts) {\n  return Path.extend(opts);\n}\nvar extendPathFromString = pathTool.extendFromString;\nexport function extendPath(pathData, opts) {\n  return extendPathFromString(pathData, opts);\n}\nexport function registerShape(name, ShapeClass) {\n  _customShapeMap[name] = ShapeClass;\n}\nexport function getShapeClass(name) {\n  if (_customShapeMap.hasOwnProperty(name)) {\n    return _customShapeMap[name];\n  }\n}\nexport function makePath(pathData, opts, rect, layout) {\n  var path = pathTool.createFromString(pathData, opts);\n\n  if (rect) {\n    if (layout === 'center') {\n      rect = centerGraphic(rect, path.getBoundingRect());\n    }\n\n    resizePath(path, rect);\n  }\n\n  return path;\n}\nexport function makeImage(imageUrl, rect, layout) {\n  var zrImg = new ZRImage({\n    style: {\n      image: imageUrl,\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height\n    },\n    onload: function (img) {\n      if (layout === 'center') {\n        var boundingRect = {\n          width: img.width,\n          height: img.height\n        };\n        zrImg.setStyle(centerGraphic(rect, boundingRect));\n      }\n    }\n  });\n  return zrImg;\n}\n\nfunction centerGraphic(rect, boundingRect) {\n  var aspect = boundingRect.width / boundingRect.height;\n  var width = rect.height * aspect;\n  var height;\n\n  if (width <= rect.width) {\n    height = rect.height;\n  } else {\n    width = rect.width;\n    height = width / aspect;\n  }\n\n  var cx = rect.x + rect.width / 2;\n  var cy = rect.y + rect.height / 2;\n  return {\n    x: cx - width / 2,\n    y: cy - height / 2,\n    width: width,\n    height: height\n  };\n}\n\nexport var mergePath = pathTool.mergePath;\nexport function resizePath(path, rect) {\n  if (!path.applyTransform) {\n    return;\n  }\n\n  var pathRect = path.getBoundingRect();\n  var m = pathRect.calculateTransform(rect);\n  path.applyTransform(m);\n}\nexport function subPixelOptimizeLine(param) {\n  subPixelOptimizeUtil.subPixelOptimizeLine(param.shape, param.shape, param.style);\n  return param;\n}\nexport function subPixelOptimizeRect(param) {\n  subPixelOptimizeUtil.subPixelOptimizeRect(param.shape, param.shape, param.style);\n  return param;\n}\nexport var subPixelOptimize = subPixelOptimizeUtil.subPixelOptimize;\n\nfunction animateOrSetProps(animationType, el, props, animatableModel, dataIndex, cb, during) {\n  var isFrom = false;\n  var removeOpt;\n\n  if (typeof dataIndex === 'function') {\n    during = cb;\n    cb = dataIndex;\n    dataIndex = null;\n  } else if (isObject(dataIndex)) {\n    cb = dataIndex.cb;\n    during = dataIndex.during;\n    isFrom = dataIndex.isFrom;\n    removeOpt = dataIndex.removeOpt;\n    dataIndex = dataIndex.dataIndex;\n  }\n\n  var isUpdate = animationType === 'update';\n  var isRemove = animationType === 'remove';\n  var animationPayload;\n\n  if (animatableModel && animatableModel.ecModel) {\n    var updatePayload = animatableModel.ecModel.getUpdatePayload();\n    animationPayload = updatePayload && updatePayload.animation;\n  }\n\n  var animationEnabled = animatableModel && animatableModel.isAnimationEnabled();\n\n  if (!isRemove) {\n    el.stopAnimation('remove');\n  }\n\n  if (animationEnabled) {\n    var duration = void 0;\n    var animationEasing = void 0;\n    var animationDelay = void 0;\n\n    if (animationPayload) {\n      duration = animationPayload.duration || 0;\n      animationEasing = animationPayload.easing || 'cubicOut';\n      animationDelay = animationPayload.delay || 0;\n    } else if (isRemove) {\n      removeOpt = removeOpt || {};\n      duration = retrieve2(removeOpt.duration, 200);\n      animationEasing = retrieve2(removeOpt.easing, 'cubicOut');\n      animationDelay = 0;\n    } else {\n      duration = animatableModel.getShallow(isUpdate ? 'animationDurationUpdate' : 'animationDuration');\n      animationEasing = animatableModel.getShallow(isUpdate ? 'animationEasingUpdate' : 'animationEasing');\n      animationDelay = animatableModel.getShallow(isUpdate ? 'animationDelayUpdate' : 'animationDelay');\n    }\n\n    if (typeof animationDelay === 'function') {\n      animationDelay = animationDelay(dataIndex, animatableModel.getAnimationDelayParams ? animatableModel.getAnimationDelayParams(el, dataIndex) : null);\n    }\n\n    if (typeof duration === 'function') {\n      duration = duration(dataIndex);\n    }\n\n    duration > 0 ? isFrom ? el.animateFrom(props, {\n      duration: duration,\n      delay: animationDelay || 0,\n      easing: animationEasing,\n      done: cb,\n      force: !!cb || !!during,\n      scope: animationType,\n      during: during\n    }) : el.animateTo(props, {\n      duration: duration,\n      delay: animationDelay || 0,\n      easing: animationEasing,\n      done: cb,\n      force: !!cb || !!during,\n      setToFinal: true,\n      scope: animationType,\n      during: during\n    }) : (el.stopAnimation(), !isFrom && el.attr(props), cb && cb());\n  } else {\n    el.stopAnimation();\n    !isFrom && el.attr(props);\n    during && during(1);\n    cb && cb();\n  }\n}\n\nfunction updateProps(el, props, animatableModel, dataIndex, cb, during) {\n  animateOrSetProps('update', el, props, animatableModel, dataIndex, cb, during);\n}\n\nexport { updateProps };\nexport function initProps(el, props, animatableModel, dataIndex, cb, during) {\n  animateOrSetProps('init', el, props, animatableModel, dataIndex, cb, during);\n}\nexport function removeElement(el, props, animatableModel, dataIndex, cb, during) {\n  if (isElementRemoved(el)) {\n    return;\n  }\n\n  animateOrSetProps('remove', el, props, animatableModel, dataIndex, cb, during);\n}\n\nfunction fadeOutDisplayable(el, animatableModel, dataIndex, done) {\n  el.removeTextContent();\n  el.removeTextGuideLine();\n  removeElement(el, {\n    style: {\n      opacity: 0\n    }\n  }, animatableModel, dataIndex, done);\n}\n\nexport function removeElementWithFadeOut(el, animatableModel, dataIndex) {\n  function doRemove() {\n    el.parent && el.parent.remove(el);\n  }\n\n  if (!el.isGroup) {\n    fadeOutDisplayable(el, animatableModel, dataIndex, doRemove);\n  } else {\n    el.traverse(function (disp) {\n      if (!disp.isGroup) {\n        fadeOutDisplayable(disp, animatableModel, dataIndex, doRemove);\n      }\n    });\n  }\n}\nexport function isElementRemoved(el) {\n  if (!el.__zr) {\n    return true;\n  }\n\n  for (var i = 0; i < el.animators.length; i++) {\n    var animator = el.animators[i];\n\n    if (animator.scope === 'remove') {\n      return true;\n    }\n  }\n\n  return false;\n}\nexport function getTransform(target, ancestor) {\n  var mat = matrix.identity([]);\n\n  while (target && target !== ancestor) {\n    matrix.mul(mat, target.getLocalTransform(), mat);\n    target = target.parent;\n  }\n\n  return mat;\n}\nexport function applyTransform(target, transform, invert) {\n  if (transform && !isArrayLike(transform)) {\n    transform = Transformable.getLocalTransform(transform);\n  }\n\n  if (invert) {\n    transform = matrix.invert([], transform);\n  }\n\n  return vector.applyTransform([], target, transform);\n}\nexport function transformDirection(direction, transform, invert) {\n  var hBase = transform[4] === 0 || transform[5] === 0 || transform[0] === 0 ? 1 : Math.abs(2 * transform[4] / transform[0]);\n  var vBase = transform[4] === 0 || transform[5] === 0 || transform[2] === 0 ? 1 : Math.abs(2 * transform[4] / transform[2]);\n  var vertex = [direction === 'left' ? -hBase : direction === 'right' ? hBase : 0, direction === 'top' ? -vBase : direction === 'bottom' ? vBase : 0];\n  vertex = applyTransform(vertex, transform, invert);\n  return Math.abs(vertex[0]) > Math.abs(vertex[1]) ? vertex[0] > 0 ? 'right' : 'left' : vertex[1] > 0 ? 'bottom' : 'top';\n}\n\nfunction isNotGroup(el) {\n  return !el.isGroup;\n}\n\nfunction isPath(el) {\n  return el.shape != null;\n}\n\nexport function groupTransition(g1, g2, animatableModel) {\n  if (!g1 || !g2) {\n    return;\n  }\n\n  function getElMap(g) {\n    var elMap = {};\n    g.traverse(function (el) {\n      if (isNotGroup(el) && el.anid) {\n        elMap[el.anid] = el;\n      }\n    });\n    return elMap;\n  }\n\n  function getAnimatableProps(el) {\n    var obj = {\n      x: el.x,\n      y: el.y,\n      rotation: el.rotation\n    };\n\n    if (isPath(el)) {\n      obj.shape = extend({}, el.shape);\n    }\n\n    return obj;\n  }\n\n  var elMap1 = getElMap(g1);\n  g2.traverse(function (el) {\n    if (isNotGroup(el) && el.anid) {\n      var oldEl = elMap1[el.anid];\n\n      if (oldEl) {\n        var newProp = getAnimatableProps(el);\n        el.attr(getAnimatableProps(oldEl));\n        updateProps(el, newProp, animatableModel, getECData(el).dataIndex);\n      }\n    }\n  });\n}\nexport function clipPointsByRect(points, rect) {\n  return map(points, function (point) {\n    var x = point[0];\n    x = mathMax(x, rect.x);\n    x = mathMin(x, rect.x + rect.width);\n    var y = point[1];\n    y = mathMax(y, rect.y);\n    y = mathMin(y, rect.y + rect.height);\n    return [x, y];\n  });\n}\nexport function clipRectByRect(targetRect, rect) {\n  var x = mathMax(targetRect.x, rect.x);\n  var x2 = mathMin(targetRect.x + targetRect.width, rect.x + rect.width);\n  var y = mathMax(targetRect.y, rect.y);\n  var y2 = mathMin(targetRect.y + targetRect.height, rect.y + rect.height);\n\n  if (x2 >= x && y2 >= y) {\n    return {\n      x: x,\n      y: y,\n      width: x2 - x,\n      height: y2 - y\n    };\n  }\n}\nexport function createIcon(iconStr, opt, rect) {\n  var innerOpts = extend({\n    rectHover: true\n  }, opt);\n  var style = innerOpts.style = {\n    strokeNoScale: true\n  };\n  rect = rect || {\n    x: -1,\n    y: -1,\n    width: 2,\n    height: 2\n  };\n\n  if (iconStr) {\n    return iconStr.indexOf('image://') === 0 ? (style.image = iconStr.slice(8), defaults(style, rect), new ZRImage(innerOpts)) : makePath(iconStr.replace('path://', ''), innerOpts, rect, 'center');\n  }\n}\nexport function linePolygonIntersect(a1x, a1y, a2x, a2y, points) {\n  for (var i = 0, p2 = points[points.length - 1]; i < points.length; i++) {\n    var p = points[i];\n\n    if (lineLineIntersect(a1x, a1y, a2x, a2y, p[0], p[1], p2[0], p2[1])) {\n      return true;\n    }\n\n    p2 = p;\n  }\n}\nexport function lineLineIntersect(a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y) {\n  var mx = a2x - a1x;\n  var my = a2y - a1y;\n  var nx = b2x - b1x;\n  var ny = b2y - b1y;\n  var nmCrossProduct = crossProduct2d(nx, ny, mx, my);\n\n  if (nearZero(nmCrossProduct)) {\n    return false;\n  }\n\n  var b1a1x = a1x - b1x;\n  var b1a1y = a1y - b1y;\n  var q = crossProduct2d(b1a1x, b1a1y, mx, my) / nmCrossProduct;\n\n  if (q < 0 || q > 1) {\n    return false;\n  }\n\n  var p = crossProduct2d(b1a1x, b1a1y, nx, ny) / nmCrossProduct;\n\n  if (p < 0 || p > 1) {\n    return false;\n  }\n\n  return true;\n}\n\nfunction crossProduct2d(x1, y1, x2, y2) {\n  return x1 * y2 - x2 * y1;\n}\n\nfunction nearZero(val) {\n  return val <= 1e-6 && val >= -1e-6;\n}\n\nregisterShape('circle', Circle);\nregisterShape('ellipse', Ellipse);\nregisterShape('sector', Sector);\nregisterShape('ring', Ring);\nregisterShape('polygon', Polygon);\nregisterShape('polyline', Polyline);\nregisterShape('rect', Rect);\nregisterShape('line', Line);\nregisterShape('bezierCurve', BezierCurve);\nregisterShape('arc', Arc);\nexport { Group, ZRImage as Image, ZRText as Text, Circle, Ellipse, Sector, Ring, Polygon, Polyline, Rect, Line, BezierCurve, Arc, IncrementalDisplayable, CompoundPath, LinearGradient, RadialGradient, BoundingRect, OrientedBoundingRect, Point, Path };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ZRText from 'zrender/lib/graphic/Text';\nimport { isFunction, retrieve2, extend, keys, trim } from 'zrender/lib/core/util';\nimport { SPECIAL_STATES, DISPLAY_STATES } from '../util/states';\nimport { deprecateReplaceLog } from '../util/log';\nimport { makeInner, interpolateRawValues } from '../util/model';\nimport { initProps, updateProps } from '../util/graphic';\nvar EMPTY_OBJ = {};\nexport function setLabelText(label, labelTexts) {\n  for (var i = 0; i < SPECIAL_STATES.length; i++) {\n    var stateName = SPECIAL_STATES[i];\n    var text = labelTexts[stateName];\n    var state = label.ensureState(stateName);\n    state.style = state.style || {};\n    state.style.text = text;\n  }\n\n  var oldStates = label.currentStates.slice();\n  label.clearStates(true);\n  label.setStyle({\n    text: labelTexts.normal\n  });\n  label.useStates(oldStates, true);\n}\n\nfunction getLabelText(opt, stateModels, interpolatedValue) {\n  var labelFetcher = opt.labelFetcher;\n  var labelDataIndex = opt.labelDataIndex;\n  var labelDimIndex = opt.labelDimIndex;\n  var normalModel = stateModels.normal;\n  var baseText;\n\n  if (labelFetcher) {\n    baseText = labelFetcher.getFormattedLabel(labelDataIndex, 'normal', null, labelDimIndex, normalModel && normalModel.get('formatter'), interpolatedValue != null ? {\n      interpolatedValue: interpolatedValue\n    } : null);\n  }\n\n  if (baseText == null) {\n    baseText = isFunction(opt.defaultText) ? opt.defaultText(labelDataIndex, opt, interpolatedValue) : opt.defaultText;\n  }\n\n  var statesText = {\n    normal: baseText\n  };\n\n  for (var i = 0; i < SPECIAL_STATES.length; i++) {\n    var stateName = SPECIAL_STATES[i];\n    var stateModel = stateModels[stateName];\n    statesText[stateName] = retrieve2(labelFetcher ? labelFetcher.getFormattedLabel(labelDataIndex, stateName, null, labelDimIndex, stateModel && stateModel.get('formatter')) : null, baseText);\n  }\n\n  return statesText;\n}\n\nfunction setLabelStyle(targetEl, labelStatesModels, opt, stateSpecified) {\n  opt = opt || EMPTY_OBJ;\n  var isSetOnText = targetEl instanceof ZRText;\n  var needsCreateText = false;\n\n  for (var i = 0; i < DISPLAY_STATES.length; i++) {\n    var stateModel = labelStatesModels[DISPLAY_STATES[i]];\n\n    if (stateModel && stateModel.getShallow('show')) {\n      needsCreateText = true;\n      break;\n    }\n  }\n\n  var textContent = isSetOnText ? targetEl : targetEl.getTextContent();\n\n  if (needsCreateText) {\n    if (!isSetOnText) {\n      if (!textContent) {\n        textContent = new ZRText();\n        targetEl.setTextContent(textContent);\n      }\n\n      if (targetEl.stateProxy) {\n        textContent.stateProxy = targetEl.stateProxy;\n      }\n    }\n\n    var labelStatesTexts = getLabelText(opt, labelStatesModels);\n    var normalModel = labelStatesModels.normal;\n    var showNormal = !!normalModel.getShallow('show');\n    var normalStyle = createTextStyle(normalModel, stateSpecified && stateSpecified.normal, opt, false, !isSetOnText);\n    normalStyle.text = labelStatesTexts.normal;\n\n    if (!isSetOnText) {\n      targetEl.setTextConfig(createTextConfig(normalModel, opt, false));\n    }\n\n    for (var i = 0; i < SPECIAL_STATES.length; i++) {\n      var stateName = SPECIAL_STATES[i];\n      var stateModel = labelStatesModels[stateName];\n\n      if (stateModel) {\n        var stateObj = textContent.ensureState(stateName);\n        var stateShow = !!retrieve2(stateModel.getShallow('show'), showNormal);\n\n        if (stateShow !== showNormal) {\n          stateObj.ignore = !stateShow;\n        }\n\n        stateObj.style = createTextStyle(stateModel, stateSpecified && stateSpecified[stateName], opt, true, !isSetOnText);\n        stateObj.style.text = labelStatesTexts[stateName];\n\n        if (!isSetOnText) {\n          var targetElEmphasisState = targetEl.ensureState(stateName);\n          targetElEmphasisState.textConfig = createTextConfig(stateModel, opt, true);\n        }\n      }\n    }\n\n    textContent.silent = !!normalModel.getShallow('silent');\n\n    if (textContent.style.x != null) {\n      normalStyle.x = textContent.style.x;\n    }\n\n    if (textContent.style.y != null) {\n      normalStyle.y = textContent.style.y;\n    }\n\n    textContent.ignore = !showNormal;\n    textContent.useStyle(normalStyle);\n    textContent.dirty();\n\n    if (opt.enableTextSetter) {\n      labelInner(textContent).setLabelText = function (interpolatedValue) {\n        var labelStatesTexts = getLabelText(opt, labelStatesModels, interpolatedValue);\n        setLabelText(textContent, labelStatesTexts);\n      };\n    }\n  } else if (textContent) {\n    textContent.ignore = true;\n  }\n\n  targetEl.dirty();\n}\n\nexport { setLabelStyle };\nexport function getLabelStatesModels(itemModel, labelName) {\n  labelName = labelName || 'label';\n  var statesModels = {\n    normal: itemModel.getModel(labelName)\n  };\n\n  for (var i = 0; i < SPECIAL_STATES.length; i++) {\n    var stateName = SPECIAL_STATES[i];\n    statesModels[stateName] = itemModel.getModel([stateName, labelName]);\n  }\n\n  return statesModels;\n}\nexport function createTextStyle(textStyleModel, specifiedTextStyle, opt, isNotNormal, isAttached) {\n  var textStyle = {};\n  setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached);\n  specifiedTextStyle && extend(textStyle, specifiedTextStyle);\n  return textStyle;\n}\nexport function createTextConfig(textStyleModel, opt, isNotNormal) {\n  opt = opt || {};\n  var textConfig = {};\n  var labelPosition;\n  var labelRotate = textStyleModel.getShallow('rotate');\n  var labelDistance = retrieve2(textStyleModel.getShallow('distance'), isNotNormal ? null : 5);\n  var labelOffset = textStyleModel.getShallow('offset');\n  labelPosition = textStyleModel.getShallow('position') || (isNotNormal ? null : 'inside');\n  labelPosition === 'outside' && (labelPosition = opt.defaultOutsidePosition || 'top');\n\n  if (labelPosition != null) {\n    textConfig.position = labelPosition;\n  }\n\n  if (labelOffset != null) {\n    textConfig.offset = labelOffset;\n  }\n\n  if (labelRotate != null) {\n    labelRotate *= Math.PI / 180;\n    textConfig.rotation = labelRotate;\n  }\n\n  if (labelDistance != null) {\n    textConfig.distance = labelDistance;\n  }\n\n  textConfig.outsideFill = textStyleModel.get('color') === 'inherit' ? opt.inheritColor || null : 'auto';\n  return textConfig;\n}\n\nfunction setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached) {\n  opt = opt || EMPTY_OBJ;\n  var ecModel = textStyleModel.ecModel;\n  var globalTextStyle = ecModel && ecModel.option.textStyle;\n  var richItemNames = getRichItemNames(textStyleModel);\n  var richResult;\n\n  if (richItemNames) {\n    richResult = {};\n\n    for (var name_1 in richItemNames) {\n      if (richItemNames.hasOwnProperty(name_1)) {\n        var richTextStyle = textStyleModel.getModel(['rich', name_1]);\n        setTokenTextStyle(richResult[name_1] = {}, richTextStyle, globalTextStyle, opt, isNotNormal, isAttached, false, true);\n      }\n    }\n  }\n\n  if (richResult) {\n    textStyle.rich = richResult;\n  }\n\n  var overflow = textStyleModel.get('overflow');\n\n  if (overflow) {\n    textStyle.overflow = overflow;\n  }\n\n  var margin = textStyleModel.get('minMargin');\n\n  if (margin != null) {\n    textStyle.margin = margin;\n  }\n\n  setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, true, false);\n}\n\nfunction getRichItemNames(textStyleModel) {\n  var richItemNameMap;\n\n  while (textStyleModel && textStyleModel !== textStyleModel.ecModel) {\n    var rich = (textStyleModel.option || EMPTY_OBJ).rich;\n\n    if (rich) {\n      richItemNameMap = richItemNameMap || {};\n      var richKeys = keys(rich);\n\n      for (var i = 0; i < richKeys.length; i++) {\n        var richKey = richKeys[i];\n        richItemNameMap[richKey] = 1;\n      }\n    }\n\n    textStyleModel = textStyleModel.parentModel;\n  }\n\n  return richItemNameMap;\n}\n\nvar TEXT_PROPS_WITH_GLOBAL = ['fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY'];\nvar TEXT_PROPS_SELF = ['align', 'lineHeight', 'width', 'height', 'tag', 'verticalAlign'];\nvar TEXT_PROPS_BOX = ['padding', 'borderWidth', 'borderRadius', 'borderDashOffset', 'backgroundColor', 'borderColor', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'];\n\nfunction setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, isBlock, inRich) {\n  globalTextStyle = !isNotNormal && globalTextStyle || EMPTY_OBJ;\n  var inheritColor = opt && opt.inheritColor;\n  var fillColor = textStyleModel.getShallow('color');\n  var strokeColor = textStyleModel.getShallow('textBorderColor');\n  var opacity = retrieve2(textStyleModel.getShallow('opacity'), globalTextStyle.opacity);\n\n  if (fillColor === 'inherit' || fillColor === 'auto') {\n    if (process.env.NODE_ENV !== 'production') {\n      if (fillColor === 'auto') {\n        deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\n      }\n    }\n\n    if (inheritColor) {\n      fillColor = inheritColor;\n    } else {\n      fillColor = null;\n    }\n  }\n\n  if (strokeColor === 'inherit' || strokeColor === 'auto') {\n    if (process.env.NODE_ENV !== 'production') {\n      if (strokeColor === 'auto') {\n        deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\n      }\n    }\n\n    if (inheritColor) {\n      strokeColor = inheritColor;\n    } else {\n      strokeColor = null;\n    }\n  }\n\n  if (!isAttached) {\n    fillColor = fillColor || globalTextStyle.color;\n    strokeColor = strokeColor || globalTextStyle.textBorderColor;\n  }\n\n  if (fillColor != null) {\n    textStyle.fill = fillColor;\n  }\n\n  if (strokeColor != null) {\n    textStyle.stroke = strokeColor;\n  }\n\n  var textBorderWidth = retrieve2(textStyleModel.getShallow('textBorderWidth'), globalTextStyle.textBorderWidth);\n\n  if (textBorderWidth != null) {\n    textStyle.lineWidth = textBorderWidth;\n  }\n\n  var textBorderType = retrieve2(textStyleModel.getShallow('textBorderType'), globalTextStyle.textBorderType);\n\n  if (textBorderType != null) {\n    textStyle.lineDash = textBorderType;\n  }\n\n  var textBorderDashOffset = retrieve2(textStyleModel.getShallow('textBorderDashOffset'), globalTextStyle.textBorderDashOffset);\n\n  if (textBorderDashOffset != null) {\n    textStyle.lineDashOffset = textBorderDashOffset;\n  }\n\n  if (!isNotNormal && opacity == null && !inRich) {\n    opacity = opt && opt.defaultOpacity;\n  }\n\n  if (opacity != null) {\n    textStyle.opacity = opacity;\n  }\n\n  if (!isNotNormal && !isAttached) {\n    if (textStyle.fill == null && opt.inheritColor) {\n      textStyle.fill = opt.inheritColor;\n    }\n  }\n\n  for (var i = 0; i < TEXT_PROPS_WITH_GLOBAL.length; i++) {\n    var key = TEXT_PROPS_WITH_GLOBAL[i];\n    var val = retrieve2(textStyleModel.getShallow(key), globalTextStyle[key]);\n\n    if (val != null) {\n      textStyle[key] = val;\n    }\n  }\n\n  for (var i = 0; i < TEXT_PROPS_SELF.length; i++) {\n    var key = TEXT_PROPS_SELF[i];\n    var val = textStyleModel.getShallow(key);\n\n    if (val != null) {\n      textStyle[key] = val;\n    }\n  }\n\n  if (textStyle.verticalAlign == null) {\n    var baseline = textStyleModel.getShallow('baseline');\n\n    if (baseline != null) {\n      textStyle.verticalAlign = baseline;\n    }\n  }\n\n  if (!isBlock || !opt.disableBox) {\n    for (var i = 0; i < TEXT_PROPS_BOX.length; i++) {\n      var key = TEXT_PROPS_BOX[i];\n      var val = textStyleModel.getShallow(key);\n\n      if (val != null) {\n        textStyle[key] = val;\n      }\n    }\n\n    var borderType = textStyleModel.getShallow('borderType');\n\n    if (borderType != null) {\n      textStyle.borderDash = borderType;\n    }\n\n    if ((textStyle.backgroundColor === 'auto' || textStyle.backgroundColor === 'inherit') && inheritColor) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (textStyle.backgroundColor === 'auto') {\n          deprecateReplaceLog('backgroundColor: \\'auto\\'', 'backgroundColor: \\'inherit\\'');\n        }\n      }\n\n      textStyle.backgroundColor = inheritColor;\n    }\n\n    if ((textStyle.borderColor === 'auto' || textStyle.borderColor === 'inherit') && inheritColor) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (textStyle.borderColor === 'auto') {\n          deprecateReplaceLog('borderColor: \\'auto\\'', 'borderColor: \\'inherit\\'');\n        }\n      }\n\n      textStyle.borderColor = inheritColor;\n    }\n  }\n}\n\nexport function getFont(opt, ecModel) {\n  var gTextStyleModel = ecModel && ecModel.getModel('textStyle');\n  return trim([opt.fontStyle || gTextStyleModel && gTextStyleModel.getShallow('fontStyle') || '', opt.fontWeight || gTextStyleModel && gTextStyleModel.getShallow('fontWeight') || '', (opt.fontSize || gTextStyleModel && gTextStyleModel.getShallow('fontSize') || 12) + 'px', opt.fontFamily || gTextStyleModel && gTextStyleModel.getShallow('fontFamily') || 'sans-serif'].join(' '));\n}\nexport var labelInner = makeInner();\nexport function setLabelValueAnimation(label, labelStatesModels, value, getDefaultText) {\n  if (!label) {\n    return;\n  }\n\n  var obj = labelInner(label);\n  obj.prevValue = obj.value;\n  obj.value = value;\n  var normalLabelModel = labelStatesModels.normal;\n  obj.valueAnimation = normalLabelModel.get('valueAnimation');\n\n  if (obj.valueAnimation) {\n    obj.precision = normalLabelModel.get('precision');\n    obj.defaultInterpolatedText = getDefaultText;\n    obj.statesModels = labelStatesModels;\n  }\n}\nexport function animateLabelValue(textEl, dataIndex, data, animatableModel, labelFetcher) {\n  var labelInnerStore = labelInner(textEl);\n\n  if (!labelInnerStore.valueAnimation) {\n    return;\n  }\n\n  var defaultInterpolatedText = labelInnerStore.defaultInterpolatedText;\n  var currValue = retrieve2(labelInnerStore.interpolatedValue, labelInnerStore.prevValue);\n  var targetValue = labelInnerStore.value;\n\n  function during(percent) {\n    var interpolated = interpolateRawValues(data, labelInnerStore.precision, currValue, targetValue, percent);\n    labelInnerStore.interpolatedValue = percent === 1 ? null : interpolated;\n    var labelText = getLabelText({\n      labelDataIndex: dataIndex,\n      labelFetcher: labelFetcher,\n      defaultText: defaultInterpolatedText ? defaultInterpolatedText(interpolated) : interpolated + ''\n    }, labelInnerStore.statesModels, interpolated);\n    setLabelText(textEl, labelText);\n  }\n\n  (currValue == null ? initProps : updateProps)(textEl, {}, animatableModel, dataIndex, null, during);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { getFont } from '../../label/labelStyle';\nimport ZRText from 'zrender/lib/graphic/Text';\nvar PATH_COLOR = ['textStyle', 'color'];\nvar tmpRichText = new ZRText();\n\nvar TextStyleMixin = function () {\n  function TextStyleMixin() {}\n\n  TextStyleMixin.prototype.getTextColor = function (isEmphasis) {\n    var ecModel = this.ecModel;\n    return this.getShallow('color') || (!isEmphasis && ecModel ? ecModel.get(PATH_COLOR) : null);\n  };\n\n  TextStyleMixin.prototype.getFont = function () {\n    return getFont({\n      fontStyle: this.getShallow('fontStyle'),\n      fontWeight: this.getShallow('fontWeight'),\n      fontSize: this.getShallow('fontSize'),\n      fontFamily: this.getShallow('fontFamily')\n    }, this.ecModel);\n  };\n\n  TextStyleMixin.prototype.getTextRect = function (text) {\n    tmpRichText.useStyle({\n      text: text,\n      fontStyle: this.getShallow('fontStyle'),\n      fontWeight: this.getShallow('fontWeight'),\n      fontSize: this.getShallow('fontSize'),\n      fontFamily: this.getShallow('fontFamily'),\n      verticalAlign: this.getShallow('verticalAlign') || this.getShallow('baseline'),\n      padding: this.getShallow('padding'),\n      lineHeight: this.getShallow('lineHeight'),\n      rich: this.getShallow('rich')\n    });\n    tmpRichText.update();\n    return tmpRichText.getBoundingRect();\n  };\n\n  return TextStyleMixin;\n}();\n\n;\nexport default TextStyleMixin;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport makeStyleMapper from './makeStyleMapper';\nexport var LINE_STYLE_KEY_MAP = [['lineWidth', 'width'], ['stroke', 'color'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor'], ['lineDash', 'type'], ['lineDashOffset', 'dashOffset'], ['lineCap', 'cap'], ['lineJoin', 'join'], ['miterLimit']];\nvar getLineStyle = makeStyleMapper(LINE_STYLE_KEY_MAP);\n\nvar LineStyleMixin = function () {\n  function LineStyleMixin() {}\n\n  LineStyleMixin.prototype.getLineStyle = function (excludes) {\n    return getLineStyle(this, excludes);\n  };\n\n  return LineStyleMixin;\n}();\n\n;\nexport { LineStyleMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport makeStyleMapper from './makeStyleMapper';\nexport var ITEM_STYLE_KEY_MAP = [['fill', 'color'], ['stroke', 'borderColor'], ['lineWidth', 'borderWidth'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor'], ['lineDash', 'borderType'], ['lineDashOffset', 'borderDashOffset'], ['lineCap', 'borderCap'], ['lineJoin', 'borderJoin'], ['miterLimit', 'borderMiterLimit']];\nvar getItemStyle = makeStyleMapper(ITEM_STYLE_KEY_MAP);\n\nvar ItemStyleMixin = function () {\n  function ItemStyleMixin() {}\n\n  ItemStyleMixin.prototype.getItemStyle = function (excludes, includes) {\n    return getItemStyle(this, excludes, includes);\n  };\n\n  return ItemStyleMixin;\n}();\n\nexport { ItemStyleMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport env from 'zrender/lib/core/env';\nimport { enableClassExtend, enableClassCheck } from '../util/clazz';\nimport { AreaStyleMixin } from './mixin/areaStyle';\nimport TextStyleMixin from './mixin/textStyle';\nimport { LineStyleMixin } from './mixin/lineStyle';\nimport { ItemStyleMixin } from './mixin/itemStyle';\nimport { mixin, clone, merge } from 'zrender/lib/core/util';\n\nvar Model = function () {\n  function Model(option, parentModel, ecModel) {\n    this.parentModel = parentModel;\n    this.ecModel = ecModel;\n    this.option = option;\n  }\n\n  Model.prototype.init = function (option, parentModel, ecModel) {\n    var rest = [];\n\n    for (var _i = 3; _i < arguments.length; _i++) {\n      rest[_i - 3] = arguments[_i];\n    }\n  };\n\n  Model.prototype.mergeOption = function (option, ecModel) {\n    merge(this.option, option, true);\n  };\n\n  Model.prototype.get = function (path, ignoreParent) {\n    if (path == null) {\n      return this.option;\n    }\n\n    return this._doGet(this.parsePath(path), !ignoreParent && this.parentModel);\n  };\n\n  Model.prototype.getShallow = function (key, ignoreParent) {\n    var option = this.option;\n    var val = option == null ? option : option[key];\n\n    if (val == null && !ignoreParent) {\n      var parentModel = this.parentModel;\n\n      if (parentModel) {\n        val = parentModel.getShallow(key);\n      }\n    }\n\n    return val;\n  };\n\n  Model.prototype.getModel = function (path, parentModel) {\n    var hasPath = path != null;\n    var pathFinal = hasPath ? this.parsePath(path) : null;\n    var obj = hasPath ? this._doGet(pathFinal) : this.option;\n    parentModel = parentModel || this.parentModel && this.parentModel.getModel(this.resolveParentPath(pathFinal));\n    return new Model(obj, parentModel, this.ecModel);\n  };\n\n  Model.prototype.isEmpty = function () {\n    return this.option == null;\n  };\n\n  Model.prototype.restoreData = function () {};\n\n  Model.prototype.clone = function () {\n    var Ctor = this.constructor;\n    return new Ctor(clone(this.option));\n  };\n\n  Model.prototype.parsePath = function (path) {\n    if (typeof path === 'string') {\n      return path.split('.');\n    }\n\n    return path;\n  };\n\n  Model.prototype.resolveParentPath = function (path) {\n    return path;\n  };\n\n  Model.prototype.isAnimationEnabled = function () {\n    if (!env.node && this.option) {\n      if (this.option.animation != null) {\n        return !!this.option.animation;\n      } else if (this.parentModel) {\n        return this.parentModel.isAnimationEnabled();\n      }\n    }\n  };\n\n  Model.prototype._doGet = function (pathArr, parentModel) {\n    var obj = this.option;\n\n    if (!pathArr) {\n      return obj;\n    }\n\n    for (var i = 0; i < pathArr.length; i++) {\n      if (!pathArr[i]) {\n        continue;\n      }\n\n      obj = obj && typeof obj === 'object' ? obj[pathArr[i]] : null;\n\n      if (obj == null) {\n        break;\n      }\n    }\n\n    if (obj == null && parentModel) {\n      obj = parentModel._doGet(this.resolveParentPath(pathArr), parentModel.parentModel);\n    }\n\n    return obj;\n  };\n\n  return Model;\n}();\n\n;\nenableClassExtend(Model);\nenableClassCheck(Model);\nmixin(Model, LineStyleMixin);\nmixin(Model, ItemStyleMixin);\nmixin(Model, AreaStyleMixin);\nmixin(Model, TextStyleMixin);\nexport default Model;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parseClassType } from './clazz';\nimport { makePrintable } from './log';\nvar base = Math.round(Math.random() * 10);\nexport function getUID(type) {\n  return [type || '', base++].join('_');\n}\nexport function enableSubTypeDefaulter(target) {\n  var subTypeDefaulters = {};\n\n  target.registerSubTypeDefaulter = function (componentType, defaulter) {\n    var componentTypeInfo = parseClassType(componentType);\n    subTypeDefaulters[componentTypeInfo.main] = defaulter;\n  };\n\n  target.determineSubType = function (componentType, option) {\n    var type = option.type;\n\n    if (!type) {\n      var componentTypeMain = parseClassType(componentType).main;\n\n      if (target.hasSubTypes(componentType) && subTypeDefaulters[componentTypeMain]) {\n        type = subTypeDefaulters[componentTypeMain](option);\n      }\n    }\n\n    return type;\n  };\n}\nexport function enableTopologicalTravel(entity, dependencyGetter) {\n  entity.topologicalTravel = function (targetNameList, fullNameList, callback, context) {\n    if (!targetNameList.length) {\n      return;\n    }\n\n    var result = makeDepndencyGraph(fullNameList);\n    var graph = result.graph;\n    var noEntryList = result.noEntryList;\n    var targetNameSet = {};\n    zrUtil.each(targetNameList, function (name) {\n      targetNameSet[name] = true;\n    });\n\n    while (noEntryList.length) {\n      var currComponentType = noEntryList.pop();\n      var currVertex = graph[currComponentType];\n      var isInTargetNameSet = !!targetNameSet[currComponentType];\n\n      if (isInTargetNameSet) {\n        callback.call(context, currComponentType, currVertex.originalDeps.slice());\n        delete targetNameSet[currComponentType];\n      }\n\n      zrUtil.each(currVertex.successor, isInTargetNameSet ? removeEdgeAndAdd : removeEdge);\n    }\n\n    zrUtil.each(targetNameSet, function () {\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = makePrintable('Circle dependency may exists: ', targetNameSet, targetNameList, fullNameList);\n      }\n\n      throw new Error(errMsg);\n    });\n\n    function removeEdge(succComponentType) {\n      graph[succComponentType].entryCount--;\n\n      if (graph[succComponentType].entryCount === 0) {\n        noEntryList.push(succComponentType);\n      }\n    }\n\n    function removeEdgeAndAdd(succComponentType) {\n      targetNameSet[succComponentType] = true;\n      removeEdge(succComponentType);\n    }\n  };\n\n  function makeDepndencyGraph(fullNameList) {\n    var graph = {};\n    var noEntryList = [];\n    zrUtil.each(fullNameList, function (name) {\n      var thisItem = createDependencyGraphItem(graph, name);\n      var originalDeps = thisItem.originalDeps = dependencyGetter(name);\n      var availableDeps = getAvailableDependencies(originalDeps, fullNameList);\n      thisItem.entryCount = availableDeps.length;\n\n      if (thisItem.entryCount === 0) {\n        noEntryList.push(name);\n      }\n\n      zrUtil.each(availableDeps, function (dependentName) {\n        if (zrUtil.indexOf(thisItem.predecessor, dependentName) < 0) {\n          thisItem.predecessor.push(dependentName);\n        }\n\n        var thatItem = createDependencyGraphItem(graph, dependentName);\n\n        if (zrUtil.indexOf(thatItem.successor, dependentName) < 0) {\n          thatItem.successor.push(name);\n        }\n      });\n    });\n    return {\n      graph: graph,\n      noEntryList: noEntryList\n    };\n  }\n\n  function createDependencyGraphItem(graph, name) {\n    if (!graph[name]) {\n      graph[name] = {\n        predecessor: [],\n        successor: []\n      };\n    }\n\n    return graph[name];\n  }\n\n  function getAvailableDependencies(originalDeps, fullNameList) {\n    var availableDeps = [];\n    zrUtil.each(originalDeps, function (dep) {\n      zrUtil.indexOf(fullNameList, dep) >= 0 && availableDeps.push(dep);\n    });\n    return availableDeps;\n  }\n}\nexport function inheritDefaultOption(superOption, subOption) {\n  return zrUtil.merge(zrUtil.merge({}, superOption, true), subOption, true);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default {\n  time: {\n    month: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n    monthAbbr: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n    dayOfWeek: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n    dayOfWeekAbbr: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\n  },\n  legend: {\n    selector: {\n      all: 'All',\n      inverse: 'Inv'\n    }\n  },\n  toolbox: {\n    brush: {\n      title: {\n        rect: 'Box Select',\n        polygon: 'Lasso Select',\n        lineX: 'Horizontally Select',\n        lineY: 'Vertically Select',\n        keep: 'Keep Selections',\n        clear: 'Clear Selections'\n      }\n    },\n    dataView: {\n      title: 'Data View',\n      lang: ['Data View', 'Close', 'Refresh']\n    },\n    dataZoom: {\n      title: {\n        zoom: 'Zoom',\n        back: 'Zoom Reset'\n      }\n    },\n    magicType: {\n      title: {\n        line: 'Switch to Line Chart',\n        bar: 'Switch to Bar Chart',\n        stack: 'Stack',\n        tiled: 'Tile'\n      }\n    },\n    restore: {\n      title: 'Restore'\n    },\n    saveAsImage: {\n      title: 'Save as Image',\n      lang: ['Right Click to Save Image']\n    }\n  },\n  series: {\n    typeNames: {\n      pie: 'Pie chart',\n      bar: 'Bar chart',\n      line: 'Line chart',\n      scatter: 'Scatter plot',\n      effectScatter: 'Ripple scatter plot',\n      radar: 'Radar chart',\n      tree: 'Tree',\n      treemap: 'Treemap',\n      boxplot: 'Boxplot',\n      candlestick: 'Candlestick',\n      k: 'K line chart',\n      heatmap: 'Heat map',\n      map: 'Map',\n      parallel: 'Parallel coordinate map',\n      lines: 'Line graph',\n      graph: 'Relationship graph',\n      sankey: 'Sankey diagram',\n      funnel: 'Funnel chart',\n      gauge: 'Guage',\n      pictorialBar: 'Pictorial bar',\n      themeRiver: 'Theme River Map',\n      sunburst: 'Sunburst'\n    }\n  },\n  aria: {\n    general: {\n      withTitle: 'This is a chart about \"{title}\"',\n      withoutTitle: 'This is a chart'\n    },\n    series: {\n      single: {\n        prefix: '',\n        withName: ' with type {seriesType} named {seriesName}.',\n        withoutName: ' with type {seriesType}.'\n      },\n      multiple: {\n        prefix: '. It consists of {seriesCount} series count.',\n        withName: ' The {seriesId} series is a {seriesType} representing {seriesName}.',\n        withoutName: ' The {seriesId} series is a {seriesType}.',\n        separator: {\n          middle: '',\n          end: ''\n        }\n      }\n    },\n    data: {\n      allData: 'The data is as follows: ',\n      partialData: 'The first {displayCnt} items are: ',\n      withName: 'the data for {name} is {value}',\n      withoutName: '{value}',\n      separator: {\n        middle: ', ',\n        end: '. '\n      }\n    }\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default {\n  time: {\n    month: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],\n    monthAbbr: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\n    dayOfWeek: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],\n    dayOfWeekAbbr: ['日', '一', '二', '三', '四', '五', '六']\n  },\n  legend: {\n    selector: {\n      all: '全选',\n      inverse: '反选'\n    }\n  },\n  toolbox: {\n    brush: {\n      title: {\n        rect: '矩形选择',\n        polygon: '圈选',\n        lineX: '横向选择',\n        lineY: '纵向选择',\n        keep: '保持选择',\n        clear: '清除选择'\n      }\n    },\n    dataView: {\n      title: '数据视图',\n      lang: ['数据视图', '关闭', '刷新']\n    },\n    dataZoom: {\n      title: {\n        zoom: '区域缩放',\n        back: '区域缩放还原'\n      }\n    },\n    magicType: {\n      title: {\n        line: '切换为折线图',\n        bar: '切换为柱状图',\n        stack: '切换为堆叠',\n        tiled: '切换为平铺'\n      }\n    },\n    restore: {\n      title: '还原'\n    },\n    saveAsImage: {\n      title: '保存为图片',\n      lang: ['右键另存为图片']\n    }\n  },\n  series: {\n    typeNames: {\n      pie: '饼图',\n      bar: '柱状图',\n      line: '折线图',\n      scatter: '散点图',\n      effectScatter: '涟漪散点图',\n      radar: '雷达图',\n      tree: '树图',\n      treemap: '矩形树图',\n      boxplot: '箱型图',\n      candlestick: 'K线图',\n      k: 'K线图',\n      heatmap: '热力图',\n      map: '地图',\n      parallel: '平行坐标图',\n      lines: '线图',\n      graph: '关系图',\n      sankey: '桑基图',\n      funnel: '漏斗图',\n      gauge: '仪表盘图',\n      pictorialBar: '象形柱图',\n      themeRiver: '主题河流图',\n      sunburst: '旭日图'\n    }\n  },\n  aria: {\n    general: {\n      withTitle: '这是一个关于“{title}”的图表。',\n      withoutTitle: '这是一个图表,'\n    },\n    series: {\n      single: {\n        prefix: '',\n        withName: '图表类型是{seriesType},表示{seriesName}。',\n        withoutName: '图表类型是{seriesType}。'\n      },\n      multiple: {\n        prefix: '它由{seriesCount}个图表系列组成。',\n        withName: '第{seriesId}个系列是一个表示{seriesName}的{seriesType},',\n        withoutName: '第{seriesId}个系列是一个{seriesType},',\n        separator: {\n          middle: ';',\n          end: '。'\n        }\n      }\n    },\n    data: {\n      allData: '其数据是——',\n      partialData: '其中,前{displayCnt}项是——',\n      withName: '{name}的数据是{value}',\n      withoutName: '{value}',\n      separator: {\n        middle: ',',\n        end: ''\n      }\n    }\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Model from '../model/Model';\nimport env from 'zrender/lib/core/env';\nimport langEN from '../i18n/langEN';\nimport langZH from '../i18n/langZH';\nimport { isString, clone, merge } from 'zrender/lib/core/util';\nvar LOCALE_ZH = 'ZH';\nvar LOCALE_EN = 'EN';\nvar DEFAULT_LOCALE = LOCALE_EN;\nvar localeStorage = {};\nvar localeModels = {};\nexport var SYSTEM_LANG = !env.domSupported ? DEFAULT_LOCALE : function () {\n  var langStr = (document.documentElement.lang || navigator.language || navigator.browserLanguage).toUpperCase();\n  return langStr.indexOf(LOCALE_ZH) > -1 ? LOCALE_ZH : DEFAULT_LOCALE;\n}();\nexport function registerLocale(locale, localeObj) {\n  locale = locale.toUpperCase();\n  localeModels[locale] = new Model(localeObj);\n  localeStorage[locale] = localeObj;\n}\nexport function createLocaleObject(locale) {\n  if (isString(locale)) {\n    var localeObj = localeStorage[locale.toUpperCase()] || {};\n\n    if (locale === LOCALE_ZH || locale === LOCALE_EN) {\n      return clone(localeObj);\n    } else {\n      return merge(clone(localeObj), clone(localeStorage[DEFAULT_LOCALE]), false);\n    }\n  } else {\n    return merge(clone(locale), clone(localeStorage[DEFAULT_LOCALE]), false);\n  }\n}\nexport function getLocaleModel(lang) {\n  return localeModels[lang];\n}\nexport function getDefaultLocaleModel() {\n  return localeModels[DEFAULT_LOCALE];\n}\nregisterLocale(LOCALE_EN, langEN);\nregisterLocale(LOCALE_ZH, langZH);","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as numberUtil from './number';\nimport { getDefaultLocaleModel, getLocaleModel, SYSTEM_LANG } from '../core/locale';\nimport Model from '../model/Model';\nexport var ONE_SECOND = 1000;\nexport var ONE_MINUTE = ONE_SECOND * 60;\nexport var ONE_HOUR = ONE_MINUTE * 60;\nexport var ONE_DAY = ONE_HOUR * 24;\nexport var ONE_YEAR = ONE_DAY * 365;\nexport var defaultLeveledFormatter = {\n  year: '{yyyy}',\n  month: '{MMM}',\n  day: '{d}',\n  hour: '{HH}:{mm}',\n  minute: '{HH}:{mm}',\n  second: '{HH}:{mm}:{ss}',\n  millisecond: '{hh}:{mm}:{ss} {SSS}',\n  none: '{yyyy}-{MM}-{dd} {hh}:{mm}:{ss} {SSS}'\n};\nvar fullDayFormatter = '{yyyy}-{MM}-{dd}';\nexport var fullLeveledFormatter = {\n  year: '{yyyy}',\n  month: '{yyyy}-{MM}',\n  day: fullDayFormatter,\n  hour: fullDayFormatter + ' ' + defaultLeveledFormatter.hour,\n  minute: fullDayFormatter + ' ' + defaultLeveledFormatter.minute,\n  second: fullDayFormatter + ' ' + defaultLeveledFormatter.second,\n  millisecond: defaultLeveledFormatter.none\n};\nexport var primaryTimeUnits = ['year', 'month', 'day', 'hour', 'minute', 'second', 'millisecond'];\nexport var timeUnits = ['year', 'half-year', 'quarter', 'month', 'week', 'half-week', 'day', 'half-day', 'quarter-day', 'hour', 'minute', 'second', 'millisecond'];\nexport function pad(str, len) {\n  str += '';\n  return '0000'.substr(0, len - str.length) + str;\n}\nexport function getPrimaryTimeUnit(timeUnit) {\n  switch (timeUnit) {\n    case 'half-year':\n    case 'quarter':\n      return 'month';\n\n    case 'week':\n    case 'half-week':\n      return 'day';\n\n    case 'half-day':\n    case 'quarter-day':\n      return 'hour';\n\n    default:\n      return timeUnit;\n  }\n}\nexport function isPrimaryTimeUnit(timeUnit) {\n  return timeUnit === getPrimaryTimeUnit(timeUnit);\n}\nexport function getDefaultFormatPrecisionOfInterval(timeUnit) {\n  switch (timeUnit) {\n    case 'year':\n    case 'month':\n      return 'day';\n\n    case 'millisecond':\n      return 'millisecond';\n\n    default:\n      return 'second';\n  }\n}\nexport function format(time, template, isUTC, lang) {\n  var date = numberUtil.parseDate(time);\n  var y = date[fullYearGetterName(isUTC)]();\n  var M = date[monthGetterName(isUTC)]() + 1;\n  var q = Math.floor((M - 1) / 4) + 1;\n  var d = date[dateGetterName(isUTC)]();\n  var e = date['get' + (isUTC ? 'UTC' : '') + 'Day']();\n  var H = date[hoursGetterName(isUTC)]();\n  var h = (H - 1) % 12 + 1;\n  var m = date[minutesGetterName(isUTC)]();\n  var s = date[secondsGetterName(isUTC)]();\n  var S = date[millisecondsGetterName(isUTC)]();\n  var localeModel = lang instanceof Model ? lang : getLocaleModel(lang || SYSTEM_LANG) || getDefaultLocaleModel();\n  var timeModel = localeModel.getModel('time');\n  var month = timeModel.get('month');\n  var monthAbbr = timeModel.get('monthAbbr');\n  var dayOfWeek = timeModel.get('dayOfWeek');\n  var dayOfWeekAbbr = timeModel.get('dayOfWeekAbbr');\n  return (template || '').replace(/{yyyy}/g, y + '').replace(/{yy}/g, y % 100 + '').replace(/{Q}/g, q + '').replace(/{MMMM}/g, month[M - 1]).replace(/{MMM}/g, monthAbbr[M - 1]).replace(/{MM}/g, pad(M, 2)).replace(/{M}/g, M + '').replace(/{dd}/g, pad(d, 2)).replace(/{d}/g, d + '').replace(/{eeee}/g, dayOfWeek[e]).replace(/{ee}/g, dayOfWeekAbbr[e]).replace(/{e}/g, e + '').replace(/{HH}/g, pad(H, 2)).replace(/{H}/g, H + '').replace(/{hh}/g, pad(h + '', 2)).replace(/{h}/g, h + '').replace(/{mm}/g, pad(m, 2)).replace(/{m}/g, m + '').replace(/{ss}/g, pad(s, 2)).replace(/{s}/g, s + '').replace(/{SSS}/g, pad(S, 3)).replace(/{S}/g, S + '');\n}\nexport function leveledFormat(tick, idx, formatter, lang, isUTC) {\n  var template = null;\n\n  if (typeof formatter === 'string') {\n    template = formatter;\n  } else if (typeof formatter === 'function') {\n    template = formatter(tick.value, idx, {\n      level: tick.level\n    });\n  } else {\n    var defaults = zrUtil.extend({}, defaultLeveledFormatter);\n\n    if (tick.level > 0) {\n      for (var i = 0; i < primaryTimeUnits.length; ++i) {\n        defaults[primaryTimeUnits[i]] = \"{primary|\" + defaults[primaryTimeUnits[i]] + \"}\";\n      }\n    }\n\n    var mergedFormatter = formatter ? formatter.inherit === false ? formatter : zrUtil.defaults(formatter, defaults) : defaults;\n    var unit = getUnitFromValue(tick.value, isUTC);\n\n    if (mergedFormatter[unit]) {\n      template = mergedFormatter[unit];\n    } else if (mergedFormatter.inherit) {\n      var targetId = timeUnits.indexOf(unit);\n\n      for (var i = targetId - 1; i >= 0; --i) {\n        if (mergedFormatter[unit]) {\n          template = mergedFormatter[unit];\n          break;\n        }\n      }\n\n      template = template || defaults.none;\n    }\n\n    if (zrUtil.isArray(template)) {\n      var levelId = tick.level == null ? 0 : tick.level >= 0 ? tick.level : template.length + tick.level;\n      levelId = Math.min(levelId, template.length - 1);\n      template = template[levelId];\n    }\n  }\n\n  return format(new Date(tick.value), template, isUTC, lang);\n}\nexport function getUnitFromValue(value, isUTC) {\n  var date = numberUtil.parseDate(value);\n  var M = date[monthGetterName(isUTC)]() + 1;\n  var d = date[dateGetterName(isUTC)]();\n  var h = date[hoursGetterName(isUTC)]();\n  var m = date[minutesGetterName(isUTC)]();\n  var s = date[secondsGetterName(isUTC)]();\n  var S = date[millisecondsGetterName(isUTC)]();\n  var isSecond = S === 0;\n  var isMinute = isSecond && s === 0;\n  var isHour = isMinute && m === 0;\n  var isDay = isHour && h === 0;\n  var isMonth = isDay && d === 1;\n  var isYear = isMonth && M === 1;\n\n  if (isYear) {\n    return 'year';\n  } else if (isMonth) {\n    return 'month';\n  } else if (isDay) {\n    return 'day';\n  } else if (isHour) {\n    return 'hour';\n  } else if (isMinute) {\n    return 'minute';\n  } else if (isSecond) {\n    return 'second';\n  } else {\n    return 'millisecond';\n  }\n}\nexport function getUnitValue(value, unit, isUTC) {\n  var date = typeof value === 'number' ? numberUtil.parseDate(value) : value;\n  unit = unit || getUnitFromValue(value, isUTC);\n\n  switch (unit) {\n    case 'year':\n      return date[fullYearGetterName(isUTC)]();\n\n    case 'half-year':\n      return date[monthGetterName(isUTC)]() >= 6 ? 1 : 0;\n\n    case 'quarter':\n      return Math.floor((date[monthGetterName(isUTC)]() + 1) / 4);\n\n    case 'month':\n      return date[monthGetterName(isUTC)]();\n\n    case 'day':\n      return date[dateGetterName(isUTC)]();\n\n    case 'half-day':\n      return date[hoursGetterName(isUTC)]() / 24;\n\n    case 'hour':\n      return date[hoursGetterName(isUTC)]();\n\n    case 'minute':\n      return date[minutesGetterName(isUTC)]();\n\n    case 'second':\n      return date[secondsGetterName(isUTC)]();\n\n    case 'millisecond':\n      return date[millisecondsGetterName(isUTC)]();\n  }\n}\nexport function fullYearGetterName(isUTC) {\n  return isUTC ? 'getUTCFullYear' : 'getFullYear';\n}\nexport function monthGetterName(isUTC) {\n  return isUTC ? 'getUTCMonth' : 'getMonth';\n}\nexport function dateGetterName(isUTC) {\n  return isUTC ? 'getUTCDate' : 'getDate';\n}\nexport function hoursGetterName(isUTC) {\n  return isUTC ? 'getUTCHours' : 'getHours';\n}\nexport function minutesGetterName(isUTC) {\n  return isUTC ? 'getUTCMinutes' : 'getMinutes';\n}\nexport function secondsGetterName(isUTC) {\n  return isUTC ? 'getUTCSeconds' : 'getSeconds';\n}\nexport function millisecondsGetterName(isUTC) {\n  return isUTC ? 'getUTCSeconds' : 'getSeconds';\n}\nexport function fullYearSetterName(isUTC) {\n  return isUTC ? 'setUTCFullYear' : 'setFullYear';\n}\nexport function monthSetterName(isUTC) {\n  return isUTC ? 'setUTCMonth' : 'setMonth';\n}\nexport function dateSetterName(isUTC) {\n  return isUTC ? 'setUTCDate' : 'setDate';\n}\nexport function hoursSetterName(isUTC) {\n  return isUTC ? 'setUTCHours' : 'setHours';\n}\nexport function minutesSetterName(isUTC) {\n  return isUTC ? 'setUTCMinutes' : 'setMinutes';\n}\nexport function secondsSetterName(isUTC) {\n  return isUTC ? 'setUTCSeconds' : 'setSeconds';\n}\nexport function millisecondsSetterName(isUTC) {\n  return isUTC ? 'setUTCSeconds' : 'setSeconds';\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { Text } from '../util/graphic';\nimport { deprecateLog } from '../util/log';\nexport function getTextRect(text, font, align, verticalAlign, padding, rich, truncate, lineHeight) {\n  deprecateLog('getTextRect is deprecated.');\n  var textEl = new Text({\n    style: {\n      text: text,\n      font: font,\n      align: align,\n      verticalAlign: verticalAlign,\n      padding: padding,\n      rich: rich,\n      overflow: truncate ? 'truncate' : null,\n      lineHeight: lineHeight\n    }\n  });\n  return textEl.getBoundingRect();\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parseDate, isNumeric, numericToNumber } from './number';\nimport { format as timeFormat, pad } from './time';\nimport { deprecateReplaceLog } from './log';\nexport function addCommas(x) {\n  if (!isNumeric(x)) {\n    return zrUtil.isString(x) ? x : '-';\n  }\n\n  var parts = (x + '').split('.');\n  return parts[0].replace(/(\\d{1,3})(?=(?:\\d{3})+(?!\\d))/g, '$1,') + (parts.length > 1 ? '.' + parts[1] : '');\n}\nexport function toCamelCase(str, upperCaseFirst) {\n  str = (str || '').toLowerCase().replace(/-(.)/g, function (match, group1) {\n    return group1.toUpperCase();\n  });\n\n  if (upperCaseFirst && str) {\n    str = str.charAt(0).toUpperCase() + str.slice(1);\n  }\n\n  return str;\n}\nexport var normalizeCssArray = zrUtil.normalizeCssArray;\nvar replaceReg = /([&<>\"'])/g;\nvar replaceMap = {\n  '&': '&amp;',\n  '<': '&lt;',\n  '>': '&gt;',\n  '\"': '&quot;',\n  '\\'': '&#39;'\n};\nexport function encodeHTML(source) {\n  return source == null ? '' : (source + '').replace(replaceReg, function (str, c) {\n    return replaceMap[c];\n  });\n}\nexport function makeValueReadable(value, valueType, useUTC) {\n  var USER_READABLE_DEFUALT_TIME_PATTERN = 'yyyy-MM-dd hh:mm:ss';\n\n  function stringToUserReadable(str) {\n    return str && zrUtil.trim(str) ? str : '-';\n  }\n\n  function isNumberUserReadable(num) {\n    return !!(num != null && !isNaN(num) && isFinite(num));\n  }\n\n  var isTypeTime = valueType === 'time';\n  var isValueDate = value instanceof Date;\n\n  if (isTypeTime || isValueDate) {\n    var date = isTypeTime ? parseDate(value) : value;\n\n    if (!isNaN(+date)) {\n      return timeFormat(date, USER_READABLE_DEFUALT_TIME_PATTERN, useUTC);\n    } else if (isValueDate) {\n      return '-';\n    }\n  }\n\n  if (valueType === 'ordinal') {\n    return zrUtil.isStringSafe(value) ? stringToUserReadable(value) : zrUtil.isNumber(value) ? isNumberUserReadable(value) ? value + '' : '-' : '-';\n  }\n\n  var numericResult = numericToNumber(value);\n  return isNumberUserReadable(numericResult) ? addCommas(numericResult) : zrUtil.isStringSafe(value) ? stringToUserReadable(value) : '-';\n}\nvar TPL_VAR_ALIAS = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];\n\nvar wrapVar = function (varName, seriesIdx) {\n  return '{' + varName + (seriesIdx == null ? '' : seriesIdx) + '}';\n};\n\nexport function formatTpl(tpl, paramsList, encode) {\n  if (!zrUtil.isArray(paramsList)) {\n    paramsList = [paramsList];\n  }\n\n  var seriesLen = paramsList.length;\n\n  if (!seriesLen) {\n    return '';\n  }\n\n  var $vars = paramsList[0].$vars || [];\n\n  for (var i = 0; i < $vars.length; i++) {\n    var alias = TPL_VAR_ALIAS[i];\n    tpl = tpl.replace(wrapVar(alias), wrapVar(alias, 0));\n  }\n\n  for (var seriesIdx = 0; seriesIdx < seriesLen; seriesIdx++) {\n    for (var k = 0; k < $vars.length; k++) {\n      var val = paramsList[seriesIdx][$vars[k]];\n      tpl = tpl.replace(wrapVar(TPL_VAR_ALIAS[k], seriesIdx), encode ? encodeHTML(val) : val);\n    }\n  }\n\n  return tpl;\n}\nexport function formatTplSimple(tpl, param, encode) {\n  zrUtil.each(param, function (value, key) {\n    tpl = tpl.replace('{' + key + '}', encode ? encodeHTML(value) : value);\n  });\n  return tpl;\n}\nexport function getTooltipMarker(inOpt, extraCssText) {\n  var opt = zrUtil.isString(inOpt) ? {\n    color: inOpt,\n    extraCssText: extraCssText\n  } : inOpt || {};\n  var color = opt.color;\n  var type = opt.type;\n  extraCssText = opt.extraCssText;\n  var renderMode = opt.renderMode || 'html';\n\n  if (!color) {\n    return '';\n  }\n\n  if (renderMode === 'html') {\n    return type === 'subItem' ? '<span style=\"display:inline-block;vertical-align:middle;margin-right:8px;margin-left:3px;' + 'border-radius:4px;width:4px;height:4px;background-color:' + encodeHTML(color) + ';' + (extraCssText || '') + '\"></span>' : '<span style=\"display:inline-block;margin-right:4px;' + 'border-radius:10px;width:10px;height:10px;background-color:' + encodeHTML(color) + ';' + (extraCssText || '') + '\"></span>';\n  } else {\n    var markerId = opt.markerId || 'markerX';\n    return {\n      renderMode: renderMode,\n      content: '{' + markerId + '|}  ',\n      style: type === 'subItem' ? {\n        width: 4,\n        height: 4,\n        borderRadius: 2,\n        backgroundColor: color\n      } : {\n        width: 10,\n        height: 10,\n        borderRadius: 5,\n        backgroundColor: color\n      }\n    };\n  }\n}\nexport function formatTime(tpl, value, isUTC) {\n  if (process.env.NODE_ENV !== 'production') {\n    deprecateReplaceLog('echarts.format.formatTime', 'echarts.time.format');\n  }\n\n  if (tpl === 'week' || tpl === 'month' || tpl === 'quarter' || tpl === 'half-year' || tpl === 'year') {\n    tpl = 'MM-dd\\nyyyy';\n  }\n\n  var date = parseDate(value);\n  var utc = isUTC ? 'UTC' : '';\n  var y = date['get' + utc + 'FullYear']();\n  var M = date['get' + utc + 'Month']() + 1;\n  var d = date['get' + utc + 'Date']();\n  var h = date['get' + utc + 'Hours']();\n  var m = date['get' + utc + 'Minutes']();\n  var s = date['get' + utc + 'Seconds']();\n  var S = date['get' + utc + 'Milliseconds']();\n  tpl = tpl.replace('MM', pad(M, 2)).replace('M', M).replace('yyyy', y).replace('yy', y % 100 + '').replace('dd', pad(d, 2)).replace('d', d).replace('hh', pad(h, 2)).replace('h', h).replace('mm', pad(m, 2)).replace('m', m).replace('ss', pad(s, 2)).replace('s', s).replace('SSS', pad(S, 3));\n  return tpl;\n}\nexport function capitalFirst(str) {\n  return str ? str.charAt(0).toUpperCase() + str.substr(1) : str;\n}\nexport function convertToColorString(color, defaultColor) {\n  defaultColor = defaultColor || 'transparent';\n  return zrUtil.isString(color) ? color : zrUtil.isObject(color) ? color.colorStops && (color.colorStops[0] || {}).color || defaultColor : defaultColor;\n}\nexport { truncateText } from 'zrender/lib/graphic/helper/parseText';\nexport function windowOpen(link, target) {\n  if (target === '_blank' || target === 'blank') {\n    var blank = window.open();\n    blank.opener = null;\n    blank.location.href = link;\n  } else {\n    window.open(link, target);\n  }\n}\nexport { getTextRect } from '../legacy/getTextRect';","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { parsePercent } from './number';\nimport * as formatUtil from './format';\nvar each = zrUtil.each;\nexport var LOCATION_PARAMS = ['left', 'right', 'top', 'bottom', 'width', 'height'];\nexport var HV_NAMES = [['width', 'left', 'right'], ['height', 'top', 'bottom']];\n\nfunction boxLayout(orient, group, gap, maxWidth, maxHeight) {\n  var x = 0;\n  var y = 0;\n\n  if (maxWidth == null) {\n    maxWidth = Infinity;\n  }\n\n  if (maxHeight == null) {\n    maxHeight = Infinity;\n  }\n\n  var currentLineMaxSize = 0;\n  group.eachChild(function (child, idx) {\n    var rect = child.getBoundingRect();\n    var nextChild = group.childAt(idx + 1);\n    var nextChildRect = nextChild && nextChild.getBoundingRect();\n    var nextX;\n    var nextY;\n\n    if (orient === 'horizontal') {\n      var moveX = rect.width + (nextChildRect ? -nextChildRect.x + rect.x : 0);\n      nextX = x + moveX;\n\n      if (nextX > maxWidth || child.newline) {\n        x = 0;\n        nextX = moveX;\n        y += currentLineMaxSize + gap;\n        currentLineMaxSize = rect.height;\n      } else {\n        currentLineMaxSize = Math.max(currentLineMaxSize, rect.height);\n      }\n    } else {\n      var moveY = rect.height + (nextChildRect ? -nextChildRect.y + rect.y : 0);\n      nextY = y + moveY;\n\n      if (nextY > maxHeight || child.newline) {\n        x += currentLineMaxSize + gap;\n        y = 0;\n        nextY = moveY;\n        currentLineMaxSize = rect.width;\n      } else {\n        currentLineMaxSize = Math.max(currentLineMaxSize, rect.width);\n      }\n    }\n\n    if (child.newline) {\n      return;\n    }\n\n    child.x = x;\n    child.y = y;\n    child.markRedraw();\n    orient === 'horizontal' ? x = nextX + gap : y = nextY + gap;\n  });\n}\n\nexport var box = boxLayout;\nexport var vbox = zrUtil.curry(boxLayout, 'vertical');\nexport var hbox = zrUtil.curry(boxLayout, 'horizontal');\nexport function getAvailableSize(positionInfo, containerRect, margin) {\n  var containerWidth = containerRect.width;\n  var containerHeight = containerRect.height;\n  var x = parsePercent(positionInfo.left, containerWidth);\n  var y = parsePercent(positionInfo.top, containerHeight);\n  var x2 = parsePercent(positionInfo.right, containerWidth);\n  var y2 = parsePercent(positionInfo.bottom, containerHeight);\n  (isNaN(x) || isNaN(parseFloat(positionInfo.left))) && (x = 0);\n  (isNaN(x2) || isNaN(parseFloat(positionInfo.right))) && (x2 = containerWidth);\n  (isNaN(y) || isNaN(parseFloat(positionInfo.top))) && (y = 0);\n  (isNaN(y2) || isNaN(parseFloat(positionInfo.bottom))) && (y2 = containerHeight);\n  margin = formatUtil.normalizeCssArray(margin || 0);\n  return {\n    width: Math.max(x2 - x - margin[1] - margin[3], 0),\n    height: Math.max(y2 - y - margin[0] - margin[2], 0)\n  };\n}\nexport function getLayoutRect(positionInfo, containerRect, margin) {\n  margin = formatUtil.normalizeCssArray(margin || 0);\n  var containerWidth = containerRect.width;\n  var containerHeight = containerRect.height;\n  var left = parsePercent(positionInfo.left, containerWidth);\n  var top = parsePercent(positionInfo.top, containerHeight);\n  var right = parsePercent(positionInfo.right, containerWidth);\n  var bottom = parsePercent(positionInfo.bottom, containerHeight);\n  var width = parsePercent(positionInfo.width, containerWidth);\n  var height = parsePercent(positionInfo.height, containerHeight);\n  var verticalMargin = margin[2] + margin[0];\n  var horizontalMargin = margin[1] + margin[3];\n  var aspect = positionInfo.aspect;\n\n  if (isNaN(width)) {\n    width = containerWidth - right - horizontalMargin - left;\n  }\n\n  if (isNaN(height)) {\n    height = containerHeight - bottom - verticalMargin - top;\n  }\n\n  if (aspect != null) {\n    if (isNaN(width) && isNaN(height)) {\n      if (aspect > containerWidth / containerHeight) {\n        width = containerWidth * 0.8;\n      } else {\n        height = containerHeight * 0.8;\n      }\n    }\n\n    if (isNaN(width)) {\n      width = aspect * height;\n    }\n\n    if (isNaN(height)) {\n      height = width / aspect;\n    }\n  }\n\n  if (isNaN(left)) {\n    left = containerWidth - right - width - horizontalMargin;\n  }\n\n  if (isNaN(top)) {\n    top = containerHeight - bottom - height - verticalMargin;\n  }\n\n  switch (positionInfo.left || positionInfo.right) {\n    case 'center':\n      left = containerWidth / 2 - width / 2 - margin[3];\n      break;\n\n    case 'right':\n      left = containerWidth - width - horizontalMargin;\n      break;\n  }\n\n  switch (positionInfo.top || positionInfo.bottom) {\n    case 'middle':\n    case 'center':\n      top = containerHeight / 2 - height / 2 - margin[0];\n      break;\n\n    case 'bottom':\n      top = containerHeight - height - verticalMargin;\n      break;\n  }\n\n  left = left || 0;\n  top = top || 0;\n\n  if (isNaN(width)) {\n    width = containerWidth - horizontalMargin - left - (right || 0);\n  }\n\n  if (isNaN(height)) {\n    height = containerHeight - verticalMargin - top - (bottom || 0);\n  }\n\n  var rect = new BoundingRect(left + margin[3], top + margin[0], width, height);\n  rect.margin = margin;\n  return rect;\n}\nexport function positionElement(el, positionInfo, containerRect, margin, opt) {\n  var h = !opt || !opt.hv || opt.hv[0];\n  var v = !opt || !opt.hv || opt.hv[1];\n  var boundingMode = opt && opt.boundingMode || 'all';\n\n  if (!h && !v) {\n    return;\n  }\n\n  var rect;\n\n  if (boundingMode === 'raw') {\n    rect = el.type === 'group' ? new BoundingRect(0, 0, +positionInfo.width || 0, +positionInfo.height || 0) : el.getBoundingRect();\n  } else {\n    rect = el.getBoundingRect();\n\n    if (el.needLocalTransform()) {\n      var transform = el.getLocalTransform();\n      rect = rect.clone();\n      rect.applyTransform(transform);\n    }\n  }\n\n  var layoutRect = getLayoutRect(zrUtil.defaults({\n    width: rect.width,\n    height: rect.height\n  }, positionInfo), containerRect, margin);\n  var dx = h ? layoutRect.x - rect.x : 0;\n  var dy = v ? layoutRect.y - rect.y : 0;\n\n  if (boundingMode === 'raw') {\n    el.x = dx;\n    el.y = dy;\n  } else {\n    el.x += dx;\n    el.y += dy;\n  }\n\n  el.markRedraw();\n}\nexport function sizeCalculable(option, hvIdx) {\n  return option[HV_NAMES[hvIdx][0]] != null || option[HV_NAMES[hvIdx][1]] != null && option[HV_NAMES[hvIdx][2]] != null;\n}\nexport function fetchLayoutMode(ins) {\n  var layoutMode = ins.layoutMode || ins.constructor.layoutMode;\n  return zrUtil.isObject(layoutMode) ? layoutMode : layoutMode ? {\n    type: layoutMode\n  } : null;\n}\nexport function mergeLayoutParam(targetOption, newOption, opt) {\n  var ignoreSize = opt && opt.ignoreSize;\n  !zrUtil.isArray(ignoreSize) && (ignoreSize = [ignoreSize, ignoreSize]);\n  var hResult = merge(HV_NAMES[0], 0);\n  var vResult = merge(HV_NAMES[1], 1);\n  copy(HV_NAMES[0], targetOption, hResult);\n  copy(HV_NAMES[1], targetOption, vResult);\n\n  function merge(names, hvIdx) {\n    var newParams = {};\n    var newValueCount = 0;\n    var merged = {};\n    var mergedValueCount = 0;\n    var enoughParamNumber = 2;\n    each(names, function (name) {\n      merged[name] = targetOption[name];\n    });\n    each(names, function (name) {\n      hasProp(newOption, name) && (newParams[name] = merged[name] = newOption[name]);\n      hasValue(newParams, name) && newValueCount++;\n      hasValue(merged, name) && mergedValueCount++;\n    });\n\n    if (ignoreSize[hvIdx]) {\n      if (hasValue(newOption, names[1])) {\n        merged[names[2]] = null;\n      } else if (hasValue(newOption, names[2])) {\n        merged[names[1]] = null;\n      }\n\n      return merged;\n    }\n\n    if (mergedValueCount === enoughParamNumber || !newValueCount) {\n      return merged;\n    } else if (newValueCount >= enoughParamNumber) {\n      return newParams;\n    } else {\n      for (var i = 0; i < names.length; i++) {\n        var name_1 = names[i];\n\n        if (!hasProp(newParams, name_1) && hasProp(targetOption, name_1)) {\n          newParams[name_1] = targetOption[name_1];\n          break;\n        }\n      }\n\n      return newParams;\n    }\n  }\n\n  function hasProp(obj, name) {\n    return obj.hasOwnProperty(name);\n  }\n\n  function hasValue(obj, name) {\n    return obj[name] != null && obj[name] !== 'auto';\n  }\n\n  function copy(names, target, source) {\n    each(names, function (name) {\n      target[name] = source[name];\n    });\n  }\n}\nexport function getLayoutParams(source) {\n  return copyLayoutParams({}, source);\n}\nexport function copyLayoutParams(target, source) {\n  source && target && each(LOCATION_PARAMS, function (name) {\n    source.hasOwnProperty(name) && (target[name] = source[name]);\n  });\n  return target;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Model from './Model';\nimport * as componentUtil from '../util/component';\nimport { enableClassManagement, parseClassType, isExtendedClass, mountExtend } from '../util/clazz';\nimport { makeInner, queryReferringComponents } from '../util/model';\nimport * as layout from '../util/layout';\nvar inner = makeInner();\n\nvar ComponentModel = function (_super) {\n  __extends(ComponentModel, _super);\n\n  function ComponentModel(option, parentModel, ecModel) {\n    var _this = _super.call(this, option, parentModel, ecModel) || this;\n\n    _this.uid = componentUtil.getUID('ec_cpt_model');\n    return _this;\n  }\n\n  ComponentModel.prototype.init = function (option, parentModel, ecModel) {\n    this.mergeDefaultAndTheme(option, ecModel);\n  };\n\n  ComponentModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n    var layoutMode = layout.fetchLayoutMode(this);\n    var inputPositionParams = layoutMode ? layout.getLayoutParams(option) : {};\n    var themeModel = ecModel.getTheme();\n    zrUtil.merge(option, themeModel.get(this.mainType));\n    zrUtil.merge(option, this.getDefaultOption());\n\n    if (layoutMode) {\n      layout.mergeLayoutParam(option, inputPositionParams, layoutMode);\n    }\n  };\n\n  ComponentModel.prototype.mergeOption = function (option, ecModel) {\n    zrUtil.merge(this.option, option, true);\n    var layoutMode = layout.fetchLayoutMode(this);\n\n    if (layoutMode) {\n      layout.mergeLayoutParam(this.option, option, layoutMode);\n    }\n  };\n\n  ComponentModel.prototype.optionUpdated = function (newCptOption, isInit) {};\n\n  ComponentModel.prototype.getDefaultOption = function () {\n    var ctor = this.constructor;\n\n    if (!isExtendedClass(ctor)) {\n      return ctor.defaultOption;\n    }\n\n    var fields = inner(this);\n\n    if (!fields.defaultOption) {\n      var optList = [];\n      var clz = ctor;\n\n      while (clz) {\n        var opt = clz.prototype.defaultOption;\n        opt && optList.push(opt);\n        clz = clz.superClass;\n      }\n\n      var defaultOption = {};\n\n      for (var i = optList.length - 1; i >= 0; i--) {\n        defaultOption = zrUtil.merge(defaultOption, optList[i], true);\n      }\n\n      fields.defaultOption = defaultOption;\n    }\n\n    return fields.defaultOption;\n  };\n\n  ComponentModel.prototype.getReferringComponents = function (mainType, opt) {\n    var indexKey = mainType + 'Index';\n    var idKey = mainType + 'Id';\n    return queryReferringComponents(this.ecModel, mainType, {\n      index: this.get(indexKey, true),\n      id: this.get(idKey, true)\n    }, opt);\n  };\n\n  ComponentModel.prototype.getBoxLayoutParams = function () {\n    var boxLayoutModel = this;\n    return {\n      left: boxLayoutModel.get('left'),\n      top: boxLayoutModel.get('top'),\n      right: boxLayoutModel.get('right'),\n      bottom: boxLayoutModel.get('bottom'),\n      width: boxLayoutModel.get('width'),\n      height: boxLayoutModel.get('height')\n    };\n  };\n\n  ComponentModel.protoInitialize = function () {\n    var proto = ComponentModel.prototype;\n    proto.type = 'component';\n    proto.id = '';\n    proto.name = '';\n    proto.mainType = '';\n    proto.subType = '';\n    proto.componentIndex = 0;\n  }();\n\n  return ComponentModel;\n}(Model);\n\nmountExtend(ComponentModel, Model);\nenableClassManagement(ComponentModel);\ncomponentUtil.enableSubTypeDefaulter(ComponentModel);\ncomponentUtil.enableTopologicalTravel(ComponentModel, getDependencies);\n\nfunction getDependencies(componentType) {\n  var deps = [];\n  zrUtil.each(ComponentModel.getClassesByMainType(componentType), function (clz) {\n    deps = deps.concat(clz.dependencies || clz.prototype.dependencies || []);\n  });\n  deps = zrUtil.map(deps, function (type) {\n    return parseClassType(type).main;\n  });\n\n  if (componentType !== 'dataset' && zrUtil.indexOf(deps, 'dataset') <= 0) {\n    deps.unshift('dataset');\n  }\n\n  return deps;\n}\n\nexport default ComponentModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar platform = '';\n\nif (typeof navigator !== 'undefined') {\n  platform = navigator.platform || '';\n}\n\nvar decalColor = 'rgba(0, 0, 0, 0.2)';\nexport default {\n  darkMode: 'auto',\n  color: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],\n  gradientColor: ['#f6efa6', '#d88273', '#bf444c'],\n  aria: {\n    decal: {\n      decals: [{\n        color: decalColor,\n        dashArrayX: [1, 0],\n        dashArrayY: [2, 5],\n        symbolSize: 1,\n        rotation: Math.PI / 6\n      }, {\n        color: decalColor,\n        symbol: 'circle',\n        dashArrayX: [[8, 8], [0, 8, 8, 0]],\n        dashArrayY: [6, 0],\n        symbolSize: 0.8\n      }, {\n        color: decalColor,\n        dashArrayX: [1, 0],\n        dashArrayY: [4, 3],\n        rotation: -Math.PI / 4\n      }, {\n        color: decalColor,\n        dashArrayX: [[6, 6], [0, 6, 6, 0]],\n        dashArrayY: [6, 0]\n      }, {\n        color: decalColor,\n        dashArrayX: [[1, 0], [1, 6]],\n        dashArrayY: [1, 0, 6, 0],\n        rotation: Math.PI / 4\n      }, {\n        color: decalColor,\n        symbol: 'triangle',\n        dashArrayX: [[9, 9], [0, 9, 9, 0]],\n        dashArrayY: [7, 2],\n        symbolSize: 0.75\n      }]\n    }\n  },\n  textStyle: {\n    fontFamily: platform.match(/^Win/) ? 'Microsoft YaHei' : 'sans-serif',\n    fontSize: 12,\n    fontStyle: 'normal',\n    fontWeight: 'normal'\n  },\n  blendMode: null,\n  stateAnimation: {\n    duration: 300,\n    easing: 'cubicOut'\n  },\n  animation: 'auto',\n  animationDuration: 1000,\n  animationDurationUpdate: 500,\n  animationEasing: 'cubicInOut',\n  animationEasingUpdate: 'cubicInOut',\n  animationThreshold: 2000,\n  progressiveThreshold: 3000,\n  progressive: 400,\n  hoverLayerThreshold: 3000,\n  useUTC: false\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap } from 'zrender/lib/core/util';\n;\n;\n;\nexport var VISUAL_DIMENSIONS = createHashMap(['tooltip', 'label', 'itemName', 'itemId', 'seriesName']);\nexport var SOURCE_FORMAT_ORIGINAL = 'original';\nexport var SOURCE_FORMAT_ARRAY_ROWS = 'arrayRows';\nexport var SOURCE_FORMAT_OBJECT_ROWS = 'objectRows';\nexport var SOURCE_FORMAT_KEYED_COLUMNS = 'keyedColumns';\nexport var SOURCE_FORMAT_TYPED_ARRAY = 'typedArray';\nexport var SOURCE_FORMAT_UNKNOWN = 'unknown';\nexport var SERIES_LAYOUT_BY_COLUMN = 'column';\nexport var SERIES_LAYOUT_BY_ROW = 'row';\n;\n;\n;\n;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner, getDataItemValue, queryReferringComponents, SINGLE_REFERRING } from '../../util/model';\nimport { createHashMap, each, isArray, isString, isObject, isTypedArray } from 'zrender/lib/core/util';\nimport { SOURCE_FORMAT_ORIGINAL, SOURCE_FORMAT_ARRAY_ROWS, SOURCE_FORMAT_OBJECT_ROWS, SERIES_LAYOUT_BY_ROW, SOURCE_FORMAT_KEYED_COLUMNS } from '../../util/types';\nexport var BE_ORDINAL = {\n  Must: 1,\n  Might: 2,\n  Not: 3\n};\nvar innerGlobalModel = makeInner();\nexport function resetSourceDefaulter(ecModel) {\n  innerGlobalModel(ecModel).datasetMap = createHashMap();\n}\nexport function makeSeriesEncodeForAxisCoordSys(coordDimensions, seriesModel, source) {\n  var encode = {};\n  var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\n\n  if (!datasetModel || !coordDimensions) {\n    return encode;\n  }\n\n  var encodeItemName = [];\n  var encodeSeriesName = [];\n  var ecModel = seriesModel.ecModel;\n  var datasetMap = innerGlobalModel(ecModel).datasetMap;\n  var key = datasetModel.uid + '_' + source.seriesLayoutBy;\n  var baseCategoryDimIndex;\n  var categoryWayValueDimStart;\n  coordDimensions = coordDimensions.slice();\n  each(coordDimensions, function (coordDimInfoLoose, coordDimIdx) {\n    var coordDimInfo = isObject(coordDimInfoLoose) ? coordDimInfoLoose : coordDimensions[coordDimIdx] = {\n      name: coordDimInfoLoose\n    };\n\n    if (coordDimInfo.type === 'ordinal' && baseCategoryDimIndex == null) {\n      baseCategoryDimIndex = coordDimIdx;\n      categoryWayValueDimStart = getDataDimCountOnCoordDim(coordDimInfo);\n    }\n\n    encode[coordDimInfo.name] = [];\n  });\n  var datasetRecord = datasetMap.get(key) || datasetMap.set(key, {\n    categoryWayDim: categoryWayValueDimStart,\n    valueWayDim: 0\n  });\n  each(coordDimensions, function (coordDimInfo, coordDimIdx) {\n    var coordDimName = coordDimInfo.name;\n    var count = getDataDimCountOnCoordDim(coordDimInfo);\n\n    if (baseCategoryDimIndex == null) {\n      var start = datasetRecord.valueWayDim;\n      pushDim(encode[coordDimName], start, count);\n      pushDim(encodeSeriesName, start, count);\n      datasetRecord.valueWayDim += count;\n    } else if (baseCategoryDimIndex === coordDimIdx) {\n      pushDim(encode[coordDimName], 0, count);\n      pushDim(encodeItemName, 0, count);\n    } else {\n      var start = datasetRecord.categoryWayDim;\n      pushDim(encode[coordDimName], start, count);\n      pushDim(encodeSeriesName, start, count);\n      datasetRecord.categoryWayDim += count;\n    }\n  });\n\n  function pushDim(dimIdxArr, idxFrom, idxCount) {\n    for (var i = 0; i < idxCount; i++) {\n      dimIdxArr.push(idxFrom + i);\n    }\n  }\n\n  function getDataDimCountOnCoordDim(coordDimInfo) {\n    var dimsDef = coordDimInfo.dimsDef;\n    return dimsDef ? dimsDef.length : 1;\n  }\n\n  encodeItemName.length && (encode.itemName = encodeItemName);\n  encodeSeriesName.length && (encode.seriesName = encodeSeriesName);\n  return encode;\n}\nexport function makeSeriesEncodeForNameBased(seriesModel, source, dimCount) {\n  var encode = {};\n  var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\n\n  if (!datasetModel) {\n    return encode;\n  }\n\n  var sourceFormat = source.sourceFormat;\n  var dimensionsDefine = source.dimensionsDefine;\n  var potentialNameDimIndex;\n\n  if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS || sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n    each(dimensionsDefine, function (dim, idx) {\n      if ((isObject(dim) ? dim.name : dim) === 'name') {\n        potentialNameDimIndex = idx;\n      }\n    });\n  }\n\n  var idxResult = function () {\n    var idxRes0 = {};\n    var idxRes1 = {};\n    var guessRecords = [];\n\n    for (var i = 0, len = Math.min(5, dimCount); i < len; i++) {\n      var guessResult = doGuessOrdinal(source.data, sourceFormat, source.seriesLayoutBy, dimensionsDefine, source.startIndex, i);\n      guessRecords.push(guessResult);\n      var isPureNumber = guessResult === BE_ORDINAL.Not;\n\n      if (isPureNumber && idxRes0.v == null && i !== potentialNameDimIndex) {\n        idxRes0.v = i;\n      }\n\n      if (idxRes0.n == null || idxRes0.n === idxRes0.v || !isPureNumber && guessRecords[idxRes0.n] === BE_ORDINAL.Not) {\n        idxRes0.n = i;\n      }\n\n      if (fulfilled(idxRes0) && guessRecords[idxRes0.n] !== BE_ORDINAL.Not) {\n        return idxRes0;\n      }\n\n      if (!isPureNumber) {\n        if (guessResult === BE_ORDINAL.Might && idxRes1.v == null && i !== potentialNameDimIndex) {\n          idxRes1.v = i;\n        }\n\n        if (idxRes1.n == null || idxRes1.n === idxRes1.v) {\n          idxRes1.n = i;\n        }\n      }\n    }\n\n    function fulfilled(idxResult) {\n      return idxResult.v != null && idxResult.n != null;\n    }\n\n    return fulfilled(idxRes0) ? idxRes0 : fulfilled(idxRes1) ? idxRes1 : null;\n  }();\n\n  if (idxResult) {\n    encode.value = [idxResult.v];\n    var nameDimIndex = potentialNameDimIndex != null ? potentialNameDimIndex : idxResult.n;\n    encode.itemName = [nameDimIndex];\n    encode.seriesName = [nameDimIndex];\n  }\n\n  return encode;\n}\nexport function querySeriesUpstreamDatasetModel(seriesModel) {\n  var thisData = seriesModel.get('data', true);\n\n  if (!thisData) {\n    return queryReferringComponents(seriesModel.ecModel, 'dataset', {\n      index: seriesModel.get('datasetIndex', true),\n      id: seriesModel.get('datasetId', true)\n    }, SINGLE_REFERRING).models[0];\n  }\n}\nexport function queryDatasetUpstreamDatasetModels(datasetModel) {\n  if (!datasetModel.get('transform', true) && !datasetModel.get('fromTransformResult', true)) {\n    return [];\n  }\n\n  return queryReferringComponents(datasetModel.ecModel, 'dataset', {\n    index: datasetModel.get('fromDatasetIndex', true),\n    id: datasetModel.get('fromDatasetId', true)\n  }, SINGLE_REFERRING).models;\n}\nexport function guessOrdinal(source, dimIndex) {\n  return doGuessOrdinal(source.data, source.sourceFormat, source.seriesLayoutBy, source.dimensionsDefine, source.startIndex, dimIndex);\n}\n\nfunction doGuessOrdinal(data, sourceFormat, seriesLayoutBy, dimensionsDefine, startIndex, dimIndex) {\n  var result;\n  var maxLoop = 5;\n\n  if (isTypedArray(data)) {\n    return BE_ORDINAL.Not;\n  }\n\n  var dimName;\n  var dimType;\n\n  if (dimensionsDefine) {\n    var dimDefItem = dimensionsDefine[dimIndex];\n\n    if (isObject(dimDefItem)) {\n      dimName = dimDefItem.name;\n      dimType = dimDefItem.type;\n    } else if (isString(dimDefItem)) {\n      dimName = dimDefItem;\n    }\n  }\n\n  if (dimType != null) {\n    return dimType === 'ordinal' ? BE_ORDINAL.Must : BE_ORDINAL.Not;\n  }\n\n  if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n    var dataArrayRows = data;\n\n    if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\n      var sample = dataArrayRows[dimIndex];\n\n      for (var i = 0; i < (sample || []).length && i < maxLoop; i++) {\n        if ((result = detectValue(sample[startIndex + i])) != null) {\n          return result;\n        }\n      }\n    } else {\n      for (var i = 0; i < dataArrayRows.length && i < maxLoop; i++) {\n        var row = dataArrayRows[startIndex + i];\n\n        if (row && (result = detectValue(row[dimIndex])) != null) {\n          return result;\n        }\n      }\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n    var dataObjectRows = data;\n\n    if (!dimName) {\n      return BE_ORDINAL.Not;\n    }\n\n    for (var i = 0; i < dataObjectRows.length && i < maxLoop; i++) {\n      var item = dataObjectRows[i];\n\n      if (item && (result = detectValue(item[dimName])) != null) {\n        return result;\n      }\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n    var dataKeyedColumns = data;\n\n    if (!dimName) {\n      return BE_ORDINAL.Not;\n    }\n\n    var sample = dataKeyedColumns[dimName];\n\n    if (!sample || isTypedArray(sample)) {\n      return BE_ORDINAL.Not;\n    }\n\n    for (var i = 0; i < sample.length && i < maxLoop; i++) {\n      if ((result = detectValue(sample[i])) != null) {\n        return result;\n      }\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n    var dataOriginal = data;\n\n    for (var i = 0; i < dataOriginal.length && i < maxLoop; i++) {\n      var item = dataOriginal[i];\n      var val = getDataItemValue(item);\n\n      if (!isArray(val)) {\n        return BE_ORDINAL.Not;\n      }\n\n      if ((result = detectValue(val[dimIndex])) != null) {\n        return result;\n      }\n    }\n  }\n\n  function detectValue(val) {\n    var beStr = isString(val);\n\n    if (val != null && isFinite(val) && val !== '') {\n      return beStr ? BE_ORDINAL.Might : BE_ORDINAL.Not;\n    } else if (beStr && val !== '-') {\n      return BE_ORDINAL.Must;\n    }\n  }\n\n  return BE_ORDINAL.Not;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, assert } from 'zrender/lib/core/util';\nimport { isComponentIdInternal } from '../util/model';\nvar internalOptionCreatorMap = createHashMap();\nexport function registerInternalOptionCreator(mainType, creator) {\n  assert(internalOptionCreatorMap.get(mainType) == null && creator);\n  internalOptionCreatorMap.set(mainType, creator);\n}\nexport function concatInternalOptions(ecModel, mainType, newCmptOptionList) {\n  var internalOptionCreator = internalOptionCreatorMap.get(mainType);\n\n  if (!internalOptionCreator) {\n    return newCmptOptionList;\n  }\n\n  var internalOptions = internalOptionCreator(ecModel);\n\n  if (!internalOptions) {\n    return newCmptOptionList;\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    for (var i = 0; i < internalOptions.length; i++) {\n      assert(isComponentIdInternal(internalOptions[i]));\n    }\n  }\n\n  return newCmptOptionList.concat(internalOptions);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner, normalizeToArray } from '../../util/model';\nvar innerColor = makeInner();\nvar innerDecal = makeInner();\n\nvar PaletteMixin = function () {\n  function PaletteMixin() {}\n\n  PaletteMixin.prototype.getColorFromPalette = function (name, scope, requestNum) {\n    var defaultPalette = normalizeToArray(this.get('color', true));\n    var layeredPalette = this.get('colorLayer', true);\n    return getFromPalette(this, innerColor, defaultPalette, layeredPalette, name, scope, requestNum);\n  };\n\n  PaletteMixin.prototype.clearColorPalette = function () {\n    clearPalette(this, innerColor);\n  };\n\n  return PaletteMixin;\n}();\n\nexport function getDecalFromPalette(ecModel, name, scope, requestNum) {\n  var defaultDecals = normalizeToArray(ecModel.get(['aria', 'decal', 'decals']));\n  return getFromPalette(ecModel, innerDecal, defaultDecals, null, name, scope, requestNum);\n}\n\nfunction getNearestPalette(palettes, requestColorNum) {\n  var paletteNum = palettes.length;\n\n  for (var i = 0; i < paletteNum; i++) {\n    if (palettes[i].length > requestColorNum) {\n      return palettes[i];\n    }\n  }\n\n  return palettes[paletteNum - 1];\n}\n\nfunction getFromPalette(that, inner, defaultPalette, layeredPalette, name, scope, requestNum) {\n  scope = scope || that;\n  var scopeFields = inner(scope);\n  var paletteIdx = scopeFields.paletteIdx || 0;\n  var paletteNameMap = scopeFields.paletteNameMap = scopeFields.paletteNameMap || {};\n\n  if (paletteNameMap.hasOwnProperty(name)) {\n    return paletteNameMap[name];\n  }\n\n  var palette = requestNum == null || !layeredPalette ? defaultPalette : getNearestPalette(layeredPalette, requestNum);\n  palette = palette || defaultPalette;\n\n  if (!palette || !palette.length) {\n    return;\n  }\n\n  var pickedPaletteItem = palette[paletteIdx];\n\n  if (name) {\n    paletteNameMap[name] = pickedPaletteItem;\n  }\n\n  scopeFields.paletteIdx = (paletteIdx + 1) % palette.length;\n  return pickedPaletteItem;\n}\n\nfunction clearPalette(that, inner) {\n  inner(that).paletteIdx = 0;\n  inner(that).paletteNameMap = {};\n}\n\nexport { PaletteMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { each, filter, isArray, isObject, isString, createHashMap, assert, clone, merge, extend, mixin, isFunction } from 'zrender/lib/core/util';\nimport * as modelUtil from '../util/model';\nimport Model from './Model';\nimport ComponentModel from './Component';\nimport globalDefault from './globalDefault';\nimport { resetSourceDefaulter } from '../data/helper/sourceHelper';\nimport { concatInternalOptions } from './internalComponentCreator';\nimport { PaletteMixin } from './mixin/palette';\nvar reCreateSeriesIndices;\nvar assertSeriesInitialized;\nvar initBase;\nvar OPTION_INNER_KEY = '\\0_ec_inner';\nvar OPTION_INNER_VALUE = 1;\n\nvar GlobalModel = function (_super) {\n  __extends(GlobalModel, _super);\n\n  function GlobalModel() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  GlobalModel.prototype.init = function (option, parentModel, ecModel, theme, locale, optionManager) {\n    theme = theme || {};\n    this.option = null;\n    this._theme = new Model(theme);\n    this._locale = new Model(locale);\n    this._optionManager = optionManager;\n  };\n\n  GlobalModel.prototype.setOption = function (option, opts, optionPreprocessorFuncs) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(option != null, 'option is null/undefined');\n      assert(option[OPTION_INNER_KEY] !== OPTION_INNER_VALUE, 'please use chart.getOption()');\n    }\n\n    var innerOpt = normalizeSetOptionInput(opts);\n\n    this._optionManager.setOption(option, optionPreprocessorFuncs, innerOpt);\n\n    this._resetOption(null, innerOpt);\n  };\n\n  GlobalModel.prototype.resetOption = function (type, opt) {\n    return this._resetOption(type, normalizeSetOptionInput(opt));\n  };\n\n  GlobalModel.prototype._resetOption = function (type, opt) {\n    var optionChanged = false;\n    var optionManager = this._optionManager;\n\n    if (!type || type === 'recreate') {\n      var baseOption = optionManager.mountOption(type === 'recreate');\n\n      if (!this.option || type === 'recreate') {\n        initBase(this, baseOption);\n      } else {\n        this.restoreData();\n\n        this._mergeOption(baseOption, opt);\n      }\n\n      optionChanged = true;\n    }\n\n    if (type === 'timeline' || type === 'media') {\n      this.restoreData();\n    }\n\n    if (!type || type === 'recreate' || type === 'timeline') {\n      var timelineOption = optionManager.getTimelineOption(this);\n\n      if (timelineOption) {\n        optionChanged = true;\n\n        this._mergeOption(timelineOption, opt);\n      }\n    }\n\n    if (!type || type === 'recreate' || type === 'media') {\n      var mediaOptions = optionManager.getMediaOption(this);\n\n      if (mediaOptions.length) {\n        each(mediaOptions, function (mediaOption) {\n          optionChanged = true;\n\n          this._mergeOption(mediaOption, opt);\n        }, this);\n      }\n    }\n\n    return optionChanged;\n  };\n\n  GlobalModel.prototype.mergeOption = function (option) {\n    this._mergeOption(option, null);\n  };\n\n  GlobalModel.prototype._mergeOption = function (newOption, opt) {\n    var option = this.option;\n    var componentsMap = this._componentsMap;\n    var componentsCount = this._componentsCount;\n    var newCmptTypes = [];\n    var newCmptTypeMap = createHashMap();\n    var replaceMergeMainTypeMap = opt && opt.replaceMergeMainTypeMap;\n    resetSourceDefaulter(this);\n    each(newOption, function (componentOption, mainType) {\n      if (componentOption == null) {\n        return;\n      }\n\n      if (!ComponentModel.hasClass(mainType)) {\n        option[mainType] = option[mainType] == null ? clone(componentOption) : merge(option[mainType], componentOption, true);\n      } else if (mainType) {\n        newCmptTypes.push(mainType);\n        newCmptTypeMap.set(mainType, true);\n      }\n    });\n\n    if (replaceMergeMainTypeMap) {\n      replaceMergeMainTypeMap.each(function (val, mainTypeInReplaceMerge) {\n        if (ComponentModel.hasClass(mainTypeInReplaceMerge) && !newCmptTypeMap.get(mainTypeInReplaceMerge)) {\n          newCmptTypes.push(mainTypeInReplaceMerge);\n          newCmptTypeMap.set(mainTypeInReplaceMerge, true);\n        }\n      });\n    }\n\n    ComponentModel.topologicalTravel(newCmptTypes, ComponentModel.getAllClassMainTypes(), visitComponent, this);\n\n    function visitComponent(mainType) {\n      var newCmptOptionList = concatInternalOptions(this, mainType, modelUtil.normalizeToArray(newOption[mainType]));\n      var oldCmptList = componentsMap.get(mainType);\n      var mergeMode = !oldCmptList ? 'replaceAll' : replaceMergeMainTypeMap && replaceMergeMainTypeMap.get(mainType) ? 'replaceMerge' : 'normalMerge';\n      var mappingResult = modelUtil.mappingToExists(oldCmptList, newCmptOptionList, mergeMode);\n      modelUtil.setComponentTypeToKeyInfo(mappingResult, mainType, ComponentModel);\n      option[mainType] = null;\n      componentsMap.set(mainType, null);\n      componentsCount.set(mainType, 0);\n      var optionsByMainType = [];\n      var cmptsByMainType = [];\n      var cmptsCountByMainType = 0;\n      each(mappingResult, function (resultItem, index) {\n        var componentModel = resultItem.existing;\n        var newCmptOption = resultItem.newOption;\n\n        if (!newCmptOption) {\n          if (componentModel) {\n            componentModel.mergeOption({}, this);\n            componentModel.optionUpdated({}, false);\n          }\n        } else {\n          var ComponentModelClass = ComponentModel.getClass(mainType, resultItem.keyInfo.subType, true);\n\n          if (componentModel && componentModel.constructor === ComponentModelClass) {\n            componentModel.name = resultItem.keyInfo.name;\n            componentModel.mergeOption(newCmptOption, this);\n            componentModel.optionUpdated(newCmptOption, false);\n          } else {\n            var extraOpt = extend({\n              componentIndex: index\n            }, resultItem.keyInfo);\n            componentModel = new ComponentModelClass(newCmptOption, this, this, extraOpt);\n            extend(componentModel, extraOpt);\n\n            if (resultItem.brandNew) {\n              componentModel.__requireNewView = true;\n            }\n\n            componentModel.init(newCmptOption, this, this);\n            componentModel.optionUpdated(null, true);\n          }\n        }\n\n        if (componentModel) {\n          optionsByMainType.push(componentModel.option);\n          cmptsByMainType.push(componentModel);\n          cmptsCountByMainType++;\n        } else {\n          optionsByMainType.push(void 0);\n          cmptsByMainType.push(void 0);\n        }\n      }, this);\n      option[mainType] = optionsByMainType;\n      componentsMap.set(mainType, cmptsByMainType);\n      componentsCount.set(mainType, cmptsCountByMainType);\n\n      if (mainType === 'series') {\n        reCreateSeriesIndices(this);\n      }\n    }\n\n    if (!this._seriesIndices) {\n      reCreateSeriesIndices(this);\n    }\n  };\n\n  GlobalModel.prototype.getOption = function () {\n    var option = clone(this.option);\n    each(option, function (optInMainType, mainType) {\n      if (ComponentModel.hasClass(mainType)) {\n        var opts = modelUtil.normalizeToArray(optInMainType);\n        var realLen = opts.length;\n        var metNonInner = false;\n\n        for (var i = realLen - 1; i >= 0; i--) {\n          if (opts[i] && !modelUtil.isComponentIdInternal(opts[i])) {\n            metNonInner = true;\n          } else {\n            opts[i] = null;\n            !metNonInner && realLen--;\n          }\n        }\n\n        opts.length = realLen;\n        option[mainType] = opts;\n      }\n    });\n    delete option[OPTION_INNER_KEY];\n    return option;\n  };\n\n  GlobalModel.prototype.getTheme = function () {\n    return this._theme;\n  };\n\n  GlobalModel.prototype.getLocaleModel = function () {\n    return this._locale;\n  };\n\n  GlobalModel.prototype.getLocale = function (localePosition) {\n    var locale = this.getLocaleModel();\n    return locale.get(localePosition);\n  };\n\n  GlobalModel.prototype.setUpdatePayload = function (payload) {\n    this._payload = payload;\n  };\n\n  GlobalModel.prototype.getUpdatePayload = function () {\n    return this._payload;\n  };\n\n  GlobalModel.prototype.getComponent = function (mainType, idx) {\n    var list = this._componentsMap.get(mainType);\n\n    if (list) {\n      var cmpt = list[idx || 0];\n\n      if (cmpt) {\n        return cmpt;\n      } else if (idx == null) {\n        for (var i = 0; i < list.length; i++) {\n          if (list[i]) {\n            return list[i];\n          }\n        }\n      }\n    }\n  };\n\n  GlobalModel.prototype.queryComponents = function (condition) {\n    var mainType = condition.mainType;\n\n    if (!mainType) {\n      return [];\n    }\n\n    var index = condition.index;\n    var id = condition.id;\n    var name = condition.name;\n\n    var cmpts = this._componentsMap.get(mainType);\n\n    if (!cmpts || !cmpts.length) {\n      return [];\n    }\n\n    var result;\n\n    if (index != null) {\n      result = [];\n      each(modelUtil.normalizeToArray(index), function (idx) {\n        cmpts[idx] && result.push(cmpts[idx]);\n      });\n    } else if (id != null) {\n      result = queryByIdOrName('id', id, cmpts);\n    } else if (name != null) {\n      result = queryByIdOrName('name', name, cmpts);\n    } else {\n      result = filter(cmpts, function (cmpt) {\n        return !!cmpt;\n      });\n    }\n\n    return filterBySubType(result, condition);\n  };\n\n  GlobalModel.prototype.findComponents = function (condition) {\n    var query = condition.query;\n    var mainType = condition.mainType;\n    var queryCond = getQueryCond(query);\n    var result = queryCond ? this.queryComponents(queryCond) : filter(this._componentsMap.get(mainType), function (cmpt) {\n      return !!cmpt;\n    });\n    return doFilter(filterBySubType(result, condition));\n\n    function getQueryCond(q) {\n      var indexAttr = mainType + 'Index';\n      var idAttr = mainType + 'Id';\n      var nameAttr = mainType + 'Name';\n      return q && (q[indexAttr] != null || q[idAttr] != null || q[nameAttr] != null) ? {\n        mainType: mainType,\n        index: q[indexAttr],\n        id: q[idAttr],\n        name: q[nameAttr]\n      } : null;\n    }\n\n    function doFilter(res) {\n      return condition.filter ? filter(res, condition.filter) : res;\n    }\n  };\n\n  GlobalModel.prototype.eachComponent = function (mainType, cb, context) {\n    var componentsMap = this._componentsMap;\n\n    if (isFunction(mainType)) {\n      var ctxForAll_1 = cb;\n      var cbForAll_1 = mainType;\n      componentsMap.each(function (cmpts, componentType) {\n        for (var i = 0; cmpts && i < cmpts.length; i++) {\n          var cmpt = cmpts[i];\n          cmpt && cbForAll_1.call(ctxForAll_1, componentType, cmpt, cmpt.componentIndex);\n        }\n      });\n    } else {\n      var cmpts = isString(mainType) ? componentsMap.get(mainType) : isObject(mainType) ? this.findComponents(mainType) : null;\n\n      for (var i = 0; cmpts && i < cmpts.length; i++) {\n        var cmpt = cmpts[i];\n        cmpt && cb.call(context, cmpt, cmpt.componentIndex);\n      }\n    }\n  };\n\n  GlobalModel.prototype.getSeriesByName = function (name) {\n    var nameStr = modelUtil.convertOptionIdName(name, null);\n    return filter(this._componentsMap.get('series'), function (oneSeries) {\n      return !!oneSeries && nameStr != null && oneSeries.name === nameStr;\n    });\n  };\n\n  GlobalModel.prototype.getSeriesByIndex = function (seriesIndex) {\n    return this._componentsMap.get('series')[seriesIndex];\n  };\n\n  GlobalModel.prototype.getSeriesByType = function (subType) {\n    return filter(this._componentsMap.get('series'), function (oneSeries) {\n      return !!oneSeries && oneSeries.subType === subType;\n    });\n  };\n\n  GlobalModel.prototype.getSeries = function () {\n    return filter(this._componentsMap.get('series').slice(), function (oneSeries) {\n      return !!oneSeries;\n    });\n  };\n\n  GlobalModel.prototype.getSeriesCount = function () {\n    return this._componentsCount.get('series');\n  };\n\n  GlobalModel.prototype.eachSeries = function (cb, context) {\n    assertSeriesInitialized(this);\n    each(this._seriesIndices, function (rawSeriesIndex) {\n      var series = this._componentsMap.get('series')[rawSeriesIndex];\n\n      cb.call(context, series, rawSeriesIndex);\n    }, this);\n  };\n\n  GlobalModel.prototype.eachRawSeries = function (cb, context) {\n    each(this._componentsMap.get('series'), function (series) {\n      series && cb.call(context, series, series.componentIndex);\n    });\n  };\n\n  GlobalModel.prototype.eachSeriesByType = function (subType, cb, context) {\n    assertSeriesInitialized(this);\n    each(this._seriesIndices, function (rawSeriesIndex) {\n      var series = this._componentsMap.get('series')[rawSeriesIndex];\n\n      if (series.subType === subType) {\n        cb.call(context, series, rawSeriesIndex);\n      }\n    }, this);\n  };\n\n  GlobalModel.prototype.eachRawSeriesByType = function (subType, cb, context) {\n    return each(this.getSeriesByType(subType), cb, context);\n  };\n\n  GlobalModel.prototype.isSeriesFiltered = function (seriesModel) {\n    assertSeriesInitialized(this);\n    return this._seriesIndicesMap.get(seriesModel.componentIndex) == null;\n  };\n\n  GlobalModel.prototype.getCurrentSeriesIndices = function () {\n    return (this._seriesIndices || []).slice();\n  };\n\n  GlobalModel.prototype.filterSeries = function (cb, context) {\n    assertSeriesInitialized(this);\n    var newSeriesIndices = [];\n    each(this._seriesIndices, function (seriesRawIdx) {\n      var series = this._componentsMap.get('series')[seriesRawIdx];\n\n      cb.call(context, series, seriesRawIdx) && newSeriesIndices.push(seriesRawIdx);\n    }, this);\n    this._seriesIndices = newSeriesIndices;\n    this._seriesIndicesMap = createHashMap(newSeriesIndices);\n  };\n\n  GlobalModel.prototype.restoreData = function (payload) {\n    reCreateSeriesIndices(this);\n    var componentsMap = this._componentsMap;\n    var componentTypes = [];\n    componentsMap.each(function (components, componentType) {\n      if (ComponentModel.hasClass(componentType)) {\n        componentTypes.push(componentType);\n      }\n    });\n    ComponentModel.topologicalTravel(componentTypes, ComponentModel.getAllClassMainTypes(), function (componentType) {\n      each(componentsMap.get(componentType), function (component) {\n        if (component && (componentType !== 'series' || !isNotTargetSeries(component, payload))) {\n          component.restoreData();\n        }\n      });\n    });\n  };\n\n  GlobalModel.internalField = function () {\n    reCreateSeriesIndices = function (ecModel) {\n      var seriesIndices = ecModel._seriesIndices = [];\n      each(ecModel._componentsMap.get('series'), function (series) {\n        series && seriesIndices.push(series.componentIndex);\n      });\n      ecModel._seriesIndicesMap = createHashMap(seriesIndices);\n    };\n\n    assertSeriesInitialized = function (ecModel) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (!ecModel._seriesIndices) {\n          throw new Error('Option should contains series.');\n        }\n      }\n    };\n\n    initBase = function (ecModel, baseOption) {\n      ecModel.option = {};\n      ecModel.option[OPTION_INNER_KEY] = OPTION_INNER_VALUE;\n      ecModel._componentsMap = createHashMap({\n        series: []\n      });\n      ecModel._componentsCount = createHashMap();\n      var airaOption = baseOption.aria;\n\n      if (isObject(airaOption) && airaOption.enabled == null) {\n        airaOption.enabled = true;\n      }\n\n      mergeTheme(baseOption, ecModel._theme.option);\n      merge(baseOption, globalDefault, false);\n\n      ecModel._mergeOption(baseOption, null);\n    };\n  }();\n\n  return GlobalModel;\n}(Model);\n\nfunction isNotTargetSeries(seriesModel, payload) {\n  if (payload) {\n    var index = payload.seriesIndex;\n    var id = payload.seriesId;\n    var name_1 = payload.seriesName;\n    return index != null && seriesModel.componentIndex !== index || id != null && seriesModel.id !== id || name_1 != null && seriesModel.name !== name_1;\n  }\n}\n\nfunction mergeTheme(option, theme) {\n  var notMergeColorLayer = option.color && !option.colorLayer;\n  each(theme, function (themeItem, name) {\n    if (name === 'colorLayer' && notMergeColorLayer) {\n      return;\n    }\n\n    if (!ComponentModel.hasClass(name)) {\n      if (typeof themeItem === 'object') {\n        option[name] = !option[name] ? clone(themeItem) : merge(option[name], themeItem, false);\n      } else {\n        if (option[name] == null) {\n          option[name] = themeItem;\n        }\n      }\n    }\n  });\n}\n\nfunction queryByIdOrName(attr, idOrName, cmpts) {\n  if (isArray(idOrName)) {\n    var keyMap_1 = createHashMap();\n    each(idOrName, function (idOrNameItem) {\n      if (idOrNameItem != null) {\n        var idName = modelUtil.convertOptionIdName(idOrNameItem, null);\n        idName != null && keyMap_1.set(idOrNameItem, true);\n      }\n    });\n    return filter(cmpts, function (cmpt) {\n      return cmpt && keyMap_1.get(cmpt[attr]);\n    });\n  } else {\n    var idName_1 = modelUtil.convertOptionIdName(idOrName, null);\n    return filter(cmpts, function (cmpt) {\n      return cmpt && idName_1 != null && cmpt[attr] === idName_1;\n    });\n  }\n}\n\nfunction filterBySubType(components, condition) {\n  return condition.hasOwnProperty('subType') ? filter(components, function (cmpt) {\n    return cmpt && cmpt.subType === condition.subType;\n  }) : components;\n}\n\nfunction normalizeSetOptionInput(opts) {\n  var replaceMergeMainTypeMap = createHashMap();\n  opts && each(modelUtil.normalizeToArray(opts.replaceMerge), function (mainType) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(ComponentModel.hasClass(mainType), '\"' + mainType + '\" is not valid component main type in \"replaceMerge\"');\n    }\n\n    replaceMergeMainTypeMap.set(mainType, true);\n  });\n  return {\n    replaceMergeMainTypeMap: replaceMergeMainTypeMap\n  };\n}\n\nmixin(GlobalModel, PaletteMixin);\nexport default GlobalModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar availableMethods = ['getDom', 'getZr', 'getWidth', 'getHeight', 'getDevicePixelRatio', 'dispatchAction', 'isDisposed', 'on', 'off', 'getDataURL', 'getConnectedDataURL', 'getOption', 'getId', 'updateLabelLayout'];\n\nvar ExtensionAPI = function () {\n  function ExtensionAPI(ecInstance) {\n    zrUtil.each(availableMethods, function (methodName) {\n      this[methodName] = zrUtil.bind(ecInstance[methodName], ecInstance);\n    }, this);\n  }\n\n  return ExtensionAPI;\n}();\n\nexport default ExtensionAPI;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar coordinateSystemCreators = {};\n\nvar CoordinateSystemManager = function () {\n  function CoordinateSystemManager() {\n    this._coordinateSystems = [];\n  }\n\n  CoordinateSystemManager.prototype.create = function (ecModel, api) {\n    var coordinateSystems = [];\n    zrUtil.each(coordinateSystemCreators, function (creater, type) {\n      var list = creater.create(ecModel, api);\n      coordinateSystems = coordinateSystems.concat(list || []);\n    });\n    this._coordinateSystems = coordinateSystems;\n  };\n\n  CoordinateSystemManager.prototype.update = function (ecModel, api) {\n    zrUtil.each(this._coordinateSystems, function (coordSys) {\n      coordSys.update && coordSys.update(ecModel, api);\n    });\n  };\n\n  CoordinateSystemManager.prototype.getCoordinateSystems = function () {\n    return this._coordinateSystems.slice();\n  };\n\n  CoordinateSystemManager.register = function (type, creator) {\n    coordinateSystemCreators[type] = creator;\n  };\n\n  CoordinateSystemManager.get = function (type) {\n    return coordinateSystemCreators[type];\n  };\n\n  return CoordinateSystemManager;\n}();\n\nexport default CoordinateSystemManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { normalizeToArray } from '../util/model';\nimport { each, clone, map, isTypedArray, setAsPrimitive, isArray, isObject } from 'zrender/lib/core/util';\nimport { error } from '../util/log';\nvar QUERY_REG = /^(min|max)?(.+)$/;\n\nvar OptionManager = function () {\n  function OptionManager(api) {\n    this._timelineOptions = [];\n    this._mediaList = [];\n    this._currentMediaIndices = [];\n    this._api = api;\n  }\n\n  OptionManager.prototype.setOption = function (rawOption, optionPreprocessorFuncs, opt) {\n    if (rawOption) {\n      each(normalizeToArray(rawOption.series), function (series) {\n        series && series.data && isTypedArray(series.data) && setAsPrimitive(series.data);\n      });\n      each(normalizeToArray(rawOption.dataset), function (dataset) {\n        dataset && dataset.source && isTypedArray(dataset.source) && setAsPrimitive(dataset.source);\n      });\n    }\n\n    rawOption = clone(rawOption);\n    var optionBackup = this._optionBackup;\n    var newParsedOption = parseRawOption(rawOption, optionPreprocessorFuncs, !optionBackup);\n    this._newBaseOption = newParsedOption.baseOption;\n\n    if (optionBackup) {\n      if (newParsedOption.timelineOptions.length) {\n        optionBackup.timelineOptions = newParsedOption.timelineOptions;\n      }\n\n      if (newParsedOption.mediaList.length) {\n        optionBackup.mediaList = newParsedOption.mediaList;\n      }\n\n      if (newParsedOption.mediaDefault) {\n        optionBackup.mediaDefault = newParsedOption.mediaDefault;\n      }\n    } else {\n      this._optionBackup = newParsedOption;\n    }\n  };\n\n  OptionManager.prototype.mountOption = function (isRecreate) {\n    var optionBackup = this._optionBackup;\n    this._timelineOptions = optionBackup.timelineOptions;\n    this._mediaList = optionBackup.mediaList;\n    this._mediaDefault = optionBackup.mediaDefault;\n    this._currentMediaIndices = [];\n    return clone(isRecreate ? optionBackup.baseOption : this._newBaseOption);\n  };\n\n  OptionManager.prototype.getTimelineOption = function (ecModel) {\n    var option;\n    var timelineOptions = this._timelineOptions;\n\n    if (timelineOptions.length) {\n      var timelineModel = ecModel.getComponent('timeline');\n\n      if (timelineModel) {\n        option = clone(timelineOptions[timelineModel.getCurrentIndex()]);\n      }\n    }\n\n    return option;\n  };\n\n  OptionManager.prototype.getMediaOption = function (ecModel) {\n    var ecWidth = this._api.getWidth();\n\n    var ecHeight = this._api.getHeight();\n\n    var mediaList = this._mediaList;\n    var mediaDefault = this._mediaDefault;\n    var indices = [];\n    var result = [];\n\n    if (!mediaList.length && !mediaDefault) {\n      return result;\n    }\n\n    for (var i = 0, len = mediaList.length; i < len; i++) {\n      if (applyMediaQuery(mediaList[i].query, ecWidth, ecHeight)) {\n        indices.push(i);\n      }\n    }\n\n    if (!indices.length && mediaDefault) {\n      indices = [-1];\n    }\n\n    if (indices.length && !indicesEquals(indices, this._currentMediaIndices)) {\n      result = map(indices, function (index) {\n        return clone(index === -1 ? mediaDefault.option : mediaList[index].option);\n      });\n    }\n\n    this._currentMediaIndices = indices;\n    return result;\n  };\n\n  return OptionManager;\n}();\n\nfunction parseRawOption(rawOption, optionPreprocessorFuncs, isNew) {\n  var mediaList = [];\n  var mediaDefault;\n  var baseOption;\n  var declaredBaseOption = rawOption.baseOption;\n  var timelineOnRoot = rawOption.timeline;\n  var timelineOptionsOnRoot = rawOption.options;\n  var mediaOnRoot = rawOption.media;\n  var hasMedia = !!rawOption.media;\n  var hasTimeline = !!(timelineOptionsOnRoot || timelineOnRoot || declaredBaseOption && declaredBaseOption.timeline);\n\n  if (declaredBaseOption) {\n    baseOption = declaredBaseOption;\n\n    if (!baseOption.timeline) {\n      baseOption.timeline = timelineOnRoot;\n    }\n  } else {\n    if (hasTimeline || hasMedia) {\n      rawOption.options = rawOption.media = null;\n    }\n\n    baseOption = rawOption;\n  }\n\n  if (hasMedia) {\n    if (isArray(mediaOnRoot)) {\n      each(mediaOnRoot, function (singleMedia) {\n        if (process.env.NODE_ENV !== 'production') {\n          if (singleMedia && !singleMedia.option && isObject(singleMedia.query) && isObject(singleMedia.query.option)) {\n            error('Illegal media option. Must be like { media: [ { query: {}, option: {} } ] }');\n          }\n        }\n\n        if (singleMedia && singleMedia.option) {\n          if (singleMedia.query) {\n            mediaList.push(singleMedia);\n          } else if (!mediaDefault) {\n            mediaDefault = singleMedia;\n          }\n        }\n      });\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        error('Illegal media option. Must be an array. Like { media: [ {...}, {...} ] }');\n      }\n    }\n  }\n\n  doPreprocess(baseOption);\n  each(timelineOptionsOnRoot, function (option) {\n    return doPreprocess(option);\n  });\n  each(mediaList, function (media) {\n    return doPreprocess(media.option);\n  });\n\n  function doPreprocess(option) {\n    each(optionPreprocessorFuncs, function (preProcess) {\n      preProcess(option, isNew);\n    });\n  }\n\n  return {\n    baseOption: baseOption,\n    timelineOptions: timelineOptionsOnRoot || [],\n    mediaDefault: mediaDefault,\n    mediaList: mediaList\n  };\n}\n\nfunction applyMediaQuery(query, ecWidth, ecHeight) {\n  var realMap = {\n    width: ecWidth,\n    height: ecHeight,\n    aspectratio: ecWidth / ecHeight\n  };\n  var applicatable = true;\n  each(query, function (value, attr) {\n    var matched = attr.match(QUERY_REG);\n\n    if (!matched || !matched[1] || !matched[2]) {\n      return;\n    }\n\n    var operator = matched[1];\n    var realAttr = matched[2].toLowerCase();\n\n    if (!compare(realMap[realAttr], value, operator)) {\n      applicatable = false;\n    }\n  });\n  return applicatable;\n}\n\nfunction compare(real, expect, operator) {\n  if (operator === 'min') {\n    return real >= expect;\n  } else if (operator === 'max') {\n    return real <= expect;\n  } else {\n    return real === expect;\n  }\n}\n\nfunction indicesEquals(indices1, indices2) {\n  return indices1.join(',') === indices2.join(',');\n}\n\nexport default OptionManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nimport { deprecateLog, deprecateReplaceLog } from '../../util/log';\nvar each = zrUtil.each;\nvar isObject = zrUtil.isObject;\nvar POSSIBLE_STYLES = ['areaStyle', 'lineStyle', 'nodeStyle', 'linkStyle', 'chordStyle', 'label', 'labelLine'];\n\nfunction compatEC2ItemStyle(opt) {\n  var itemStyleOpt = opt && opt.itemStyle;\n\n  if (!itemStyleOpt) {\n    return;\n  }\n\n  for (var i = 0, len = POSSIBLE_STYLES.length; i < len; i++) {\n    var styleName = POSSIBLE_STYLES[i];\n    var normalItemStyleOpt = itemStyleOpt.normal;\n    var emphasisItemStyleOpt = itemStyleOpt.emphasis;\n\n    if (normalItemStyleOpt && normalItemStyleOpt[styleName]) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateReplaceLog(\"itemStyle.normal.\" + styleName, styleName);\n      }\n\n      opt[styleName] = opt[styleName] || {};\n\n      if (!opt[styleName].normal) {\n        opt[styleName].normal = normalItemStyleOpt[styleName];\n      } else {\n        zrUtil.merge(opt[styleName].normal, normalItemStyleOpt[styleName]);\n      }\n\n      normalItemStyleOpt[styleName] = null;\n    }\n\n    if (emphasisItemStyleOpt && emphasisItemStyleOpt[styleName]) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateReplaceLog(\"itemStyle.emphasis.\" + styleName, \"emphasis.\" + styleName);\n      }\n\n      opt[styleName] = opt[styleName] || {};\n\n      if (!opt[styleName].emphasis) {\n        opt[styleName].emphasis = emphasisItemStyleOpt[styleName];\n      } else {\n        zrUtil.merge(opt[styleName].emphasis, emphasisItemStyleOpt[styleName]);\n      }\n\n      emphasisItemStyleOpt[styleName] = null;\n    }\n  }\n}\n\nfunction convertNormalEmphasis(opt, optType, useExtend) {\n  if (opt && opt[optType] && (opt[optType].normal || opt[optType].emphasis)) {\n    var normalOpt = opt[optType].normal;\n    var emphasisOpt = opt[optType].emphasis;\n\n    if (normalOpt) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateLog(\"'normal' hierarchy in \" + optType + \" has been removed since 4.0. All style properties are configured in \" + optType + \" directly now.\");\n      }\n\n      if (useExtend) {\n        opt[optType].normal = opt[optType].emphasis = null;\n        zrUtil.defaults(opt[optType], normalOpt);\n      } else {\n        opt[optType] = normalOpt;\n      }\n    }\n\n    if (emphasisOpt) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateLog(optType + \".emphasis has been changed to emphasis.\" + optType + \" since 4.0\");\n      }\n\n      opt.emphasis = opt.emphasis || {};\n      opt.emphasis[optType] = emphasisOpt;\n\n      if (emphasisOpt.focus) {\n        opt.emphasis.focus = emphasisOpt.focus;\n      }\n\n      if (emphasisOpt.blurScope) {\n        opt.emphasis.blurScope = emphasisOpt.blurScope;\n      }\n    }\n  }\n}\n\nfunction removeEC3NormalStatus(opt) {\n  convertNormalEmphasis(opt, 'itemStyle');\n  convertNormalEmphasis(opt, 'lineStyle');\n  convertNormalEmphasis(opt, 'areaStyle');\n  convertNormalEmphasis(opt, 'label');\n  convertNormalEmphasis(opt, 'labelLine');\n  convertNormalEmphasis(opt, 'upperLabel');\n  convertNormalEmphasis(opt, 'edgeLabel');\n}\n\nfunction compatTextStyle(opt, propName) {\n  var labelOptSingle = isObject(opt) && opt[propName];\n  var textStyle = isObject(labelOptSingle) && labelOptSingle.textStyle;\n\n  if (textStyle) {\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateLog(\"textStyle hierarchy in \" + propName + \" has been removed since 4.0. All textStyle properties are configured in \" + propName + \" directly now.\");\n    }\n\n    for (var i = 0, len = modelUtil.TEXT_STYLE_OPTIONS.length; i < len; i++) {\n      var textPropName = modelUtil.TEXT_STYLE_OPTIONS[i];\n\n      if (textStyle.hasOwnProperty(textPropName)) {\n        labelOptSingle[textPropName] = textStyle[textPropName];\n      }\n    }\n  }\n}\n\nfunction compatEC3CommonStyles(opt) {\n  if (opt) {\n    removeEC3NormalStatus(opt);\n    compatTextStyle(opt, 'label');\n    opt.emphasis && compatTextStyle(opt.emphasis, 'label');\n  }\n}\n\nfunction processSeries(seriesOpt) {\n  if (!isObject(seriesOpt)) {\n    return;\n  }\n\n  compatEC2ItemStyle(seriesOpt);\n  removeEC3NormalStatus(seriesOpt);\n  compatTextStyle(seriesOpt, 'label');\n  compatTextStyle(seriesOpt, 'upperLabel');\n  compatTextStyle(seriesOpt, 'edgeLabel');\n\n  if (seriesOpt.emphasis) {\n    compatTextStyle(seriesOpt.emphasis, 'label');\n    compatTextStyle(seriesOpt.emphasis, 'upperLabel');\n    compatTextStyle(seriesOpt.emphasis, 'edgeLabel');\n  }\n\n  var markPoint = seriesOpt.markPoint;\n\n  if (markPoint) {\n    compatEC2ItemStyle(markPoint);\n    compatEC3CommonStyles(markPoint);\n  }\n\n  var markLine = seriesOpt.markLine;\n\n  if (markLine) {\n    compatEC2ItemStyle(markLine);\n    compatEC3CommonStyles(markLine);\n  }\n\n  var markArea = seriesOpt.markArea;\n\n  if (markArea) {\n    compatEC3CommonStyles(markArea);\n  }\n\n  var data = seriesOpt.data;\n\n  if (seriesOpt.type === 'graph') {\n    data = data || seriesOpt.nodes;\n    var edgeData = seriesOpt.links || seriesOpt.edges;\n\n    if (edgeData && !zrUtil.isTypedArray(edgeData)) {\n      for (var i = 0; i < edgeData.length; i++) {\n        compatEC3CommonStyles(edgeData[i]);\n      }\n    }\n\n    zrUtil.each(seriesOpt.categories, function (opt) {\n      removeEC3NormalStatus(opt);\n    });\n  }\n\n  if (data && !zrUtil.isTypedArray(data)) {\n    for (var i = 0; i < data.length; i++) {\n      compatEC3CommonStyles(data[i]);\n    }\n  }\n\n  markPoint = seriesOpt.markPoint;\n\n  if (markPoint && markPoint.data) {\n    var mpData = markPoint.data;\n\n    for (var i = 0; i < mpData.length; i++) {\n      compatEC3CommonStyles(mpData[i]);\n    }\n  }\n\n  markLine = seriesOpt.markLine;\n\n  if (markLine && markLine.data) {\n    var mlData = markLine.data;\n\n    for (var i = 0; i < mlData.length; i++) {\n      if (zrUtil.isArray(mlData[i])) {\n        compatEC3CommonStyles(mlData[i][0]);\n        compatEC3CommonStyles(mlData[i][1]);\n      } else {\n        compatEC3CommonStyles(mlData[i]);\n      }\n    }\n  }\n\n  if (seriesOpt.type === 'gauge') {\n    compatTextStyle(seriesOpt, 'axisLabel');\n    compatTextStyle(seriesOpt, 'title');\n    compatTextStyle(seriesOpt, 'detail');\n  } else if (seriesOpt.type === 'treemap') {\n    convertNormalEmphasis(seriesOpt.breadcrumb, 'itemStyle');\n    zrUtil.each(seriesOpt.levels, function (opt) {\n      removeEC3NormalStatus(opt);\n    });\n  } else if (seriesOpt.type === 'tree') {\n    removeEC3NormalStatus(seriesOpt.leaves);\n  }\n}\n\nfunction toArr(o) {\n  return zrUtil.isArray(o) ? o : o ? [o] : [];\n}\n\nfunction toObj(o) {\n  return (zrUtil.isArray(o) ? o[0] : o) || {};\n}\n\nexport default function globalCompatStyle(option, isTheme) {\n  each(toArr(option.series), function (seriesOpt) {\n    isObject(seriesOpt) && processSeries(seriesOpt);\n  });\n  var axes = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'parallelAxis', 'radar'];\n  isTheme && axes.push('valueAxis', 'categoryAxis', 'logAxis', 'timeAxis');\n  each(axes, function (axisName) {\n    each(toArr(option[axisName]), function (axisOpt) {\n      if (axisOpt) {\n        compatTextStyle(axisOpt, 'axisLabel');\n        compatTextStyle(axisOpt.axisPointer, 'label');\n      }\n    });\n  });\n  each(toArr(option.parallel), function (parallelOpt) {\n    var parallelAxisDefault = parallelOpt && parallelOpt.parallelAxisDefault;\n    compatTextStyle(parallelAxisDefault, 'axisLabel');\n    compatTextStyle(parallelAxisDefault && parallelAxisDefault.axisPointer, 'label');\n  });\n  each(toArr(option.calendar), function (calendarOpt) {\n    convertNormalEmphasis(calendarOpt, 'itemStyle');\n    compatTextStyle(calendarOpt, 'dayLabel');\n    compatTextStyle(calendarOpt, 'monthLabel');\n    compatTextStyle(calendarOpt, 'yearLabel');\n  });\n  each(toArr(option.radar), function (radarOpt) {\n    compatTextStyle(radarOpt, 'name');\n\n    if (radarOpt.name && radarOpt.axisName == null) {\n      radarOpt.axisName = radarOpt.name;\n      delete radarOpt.name;\n\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateLog('name property in radar component has been changed to axisName');\n      }\n    }\n\n    if (radarOpt.nameGap != null && radarOpt.axisNameGap == null) {\n      radarOpt.axisNameGap = radarOpt.nameGap;\n      delete radarOpt.nameGap;\n\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateLog('nameGap property in radar component has been changed to axisNameGap');\n      }\n    }\n  });\n  each(toArr(option.geo), function (geoOpt) {\n    if (isObject(geoOpt)) {\n      compatEC3CommonStyles(geoOpt);\n      each(toArr(geoOpt.regions), function (regionObj) {\n        compatEC3CommonStyles(regionObj);\n      });\n    }\n  });\n  each(toArr(option.timeline), function (timelineOpt) {\n    compatEC3CommonStyles(timelineOpt);\n    convertNormalEmphasis(timelineOpt, 'label');\n    convertNormalEmphasis(timelineOpt, 'itemStyle');\n    convertNormalEmphasis(timelineOpt, 'controlStyle', true);\n    var data = timelineOpt.data;\n    zrUtil.isArray(data) && zrUtil.each(data, function (item) {\n      if (zrUtil.isObject(item)) {\n        convertNormalEmphasis(item, 'label');\n        convertNormalEmphasis(item, 'itemStyle');\n      }\n    });\n  });\n  each(toArr(option.toolbox), function (toolboxOpt) {\n    convertNormalEmphasis(toolboxOpt, 'iconStyle');\n    each(toolboxOpt.feature, function (featureOpt) {\n      convertNormalEmphasis(featureOpt, 'iconStyle');\n    });\n  });\n  compatTextStyle(toObj(option.axisPointer), 'label');\n  compatTextStyle(toObj(option.tooltip).axisPointer, 'label');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, isArray, isObject, isTypedArray, defaults } from 'zrender/lib/core/util';\nimport compatStyle from './helper/compatStyle';\nimport { normalizeToArray } from '../util/model';\nimport { deprecateLog, deprecateReplaceLog } from '../util/log';\n\nfunction get(opt, path) {\n  var pathArr = path.split(',');\n  var obj = opt;\n\n  for (var i = 0; i < pathArr.length; i++) {\n    obj = obj && obj[pathArr[i]];\n\n    if (obj == null) {\n      break;\n    }\n  }\n\n  return obj;\n}\n\nfunction set(opt, path, val, overwrite) {\n  var pathArr = path.split(',');\n  var obj = opt;\n  var key;\n  var i = 0;\n\n  for (; i < pathArr.length - 1; i++) {\n    key = pathArr[i];\n\n    if (obj[key] == null) {\n      obj[key] = {};\n    }\n\n    obj = obj[key];\n  }\n\n  if (overwrite || obj[pathArr[i]] == null) {\n    obj[pathArr[i]] = val;\n  }\n}\n\nfunction compatLayoutProperties(option) {\n  option && each(LAYOUT_PROPERTIES, function (prop) {\n    if (prop[0] in option && !(prop[1] in option)) {\n      option[prop[1]] = option[prop[0]];\n    }\n  });\n}\n\nvar LAYOUT_PROPERTIES = [['x', 'left'], ['y', 'top'], ['x2', 'right'], ['y2', 'bottom']];\nvar COMPATITABLE_COMPONENTS = ['grid', 'geo', 'parallel', 'legend', 'toolbox', 'title', 'visualMap', 'dataZoom', 'timeline'];\nvar BAR_ITEM_STYLE_MAP = [['borderRadius', 'barBorderRadius'], ['borderColor', 'barBorderColor'], ['borderWidth', 'barBorderWidth']];\n\nfunction compatBarItemStyle(option) {\n  var itemStyle = option && option.itemStyle;\n\n  if (itemStyle) {\n    for (var i = 0; i < BAR_ITEM_STYLE_MAP.length; i++) {\n      var oldName = BAR_ITEM_STYLE_MAP[i][1];\n      var newName = BAR_ITEM_STYLE_MAP[i][0];\n\n      if (itemStyle[oldName] != null) {\n        itemStyle[newName] = itemStyle[oldName];\n\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog(oldName, newName);\n        }\n      }\n    }\n  }\n}\n\nfunction compatPieLabel(option) {\n  if (!option) {\n    return;\n  }\n\n  if (option.alignTo === 'edge' && option.margin != null && option.edgeDistance == null) {\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateReplaceLog('label.margin', 'label.edgeDistance', 'pie');\n    }\n\n    option.edgeDistance = option.margin;\n  }\n}\n\nfunction compatSunburstState(option) {\n  if (!option) {\n    return;\n  }\n\n  if (option.downplay && !option.blur) {\n    option.blur = option.downplay;\n\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateReplaceLog('downplay', 'blur', 'sunburst');\n    }\n  }\n}\n\nfunction compatGraphFocus(option) {\n  if (!option) {\n    return;\n  }\n\n  if (option.focusNodeAdjacency != null) {\n    option.emphasis = option.emphasis || {};\n\n    if (option.emphasis.focus == null) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateReplaceLog('focusNodeAdjacency', 'emphasis: { focus: \\'adjacency\\'}', 'graph/sankey');\n      }\n\n      option.emphasis.focus = 'adjacency';\n    }\n  }\n}\n\nfunction traverseTree(data, cb) {\n  if (data) {\n    for (var i = 0; i < data.length; i++) {\n      cb(data[i]);\n      data[i] && traverseTree(data[i].children, cb);\n    }\n  }\n}\n\nexport default function globalBackwardCompat(option, isTheme) {\n  compatStyle(option, isTheme);\n  option.series = normalizeToArray(option.series);\n  each(option.series, function (seriesOpt) {\n    if (!isObject(seriesOpt)) {\n      return;\n    }\n\n    var seriesType = seriesOpt.type;\n\n    if (seriesType === 'line') {\n      if (seriesOpt.clipOverflow != null) {\n        seriesOpt.clip = seriesOpt.clipOverflow;\n\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog('clipOverflow', 'clip', 'line');\n        }\n      }\n    } else if (seriesType === 'pie' || seriesType === 'gauge') {\n      if (seriesOpt.clockWise != null) {\n        seriesOpt.clockwise = seriesOpt.clockWise;\n\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog('clockWise', 'clockwise');\n        }\n      }\n\n      compatPieLabel(seriesOpt.label);\n      var data = seriesOpt.data;\n\n      if (data && !isTypedArray(data)) {\n        for (var i = 0; i < data.length; i++) {\n          compatPieLabel(data[i]);\n        }\n      }\n\n      if (seriesOpt.hoverOffset != null) {\n        seriesOpt.emphasis = seriesOpt.emphasis || {};\n\n        if (seriesOpt.emphasis.scaleSize = null) {\n          if (process.env.NODE_ENV !== 'production') {\n            deprecateReplaceLog('hoverOffset', 'emphasis.scaleSize');\n          }\n\n          seriesOpt.emphasis.scaleSize = seriesOpt.hoverOffset;\n        }\n      }\n    } else if (seriesType === 'gauge') {\n      var pointerColor = get(seriesOpt, 'pointer.color');\n      pointerColor != null && set(seriesOpt, 'itemStyle.color', pointerColor);\n    } else if (seriesType === 'bar') {\n      compatBarItemStyle(seriesOpt);\n      compatBarItemStyle(seriesOpt.backgroundStyle);\n      compatBarItemStyle(seriesOpt.emphasis);\n      var data = seriesOpt.data;\n\n      if (data && !isTypedArray(data)) {\n        for (var i = 0; i < data.length; i++) {\n          if (typeof data[i] === 'object') {\n            compatBarItemStyle(data[i]);\n            compatBarItemStyle(data[i] && data[i].emphasis);\n          }\n        }\n      }\n    } else if (seriesType === 'sunburst') {\n      var highlightPolicy = seriesOpt.highlightPolicy;\n\n      if (highlightPolicy) {\n        seriesOpt.emphasis = seriesOpt.emphasis || {};\n\n        if (!seriesOpt.emphasis.focus) {\n          seriesOpt.emphasis.focus = highlightPolicy;\n\n          if (process.env.NODE_ENV !== 'production') {\n            deprecateReplaceLog('highlightPolicy', 'emphasis.focus', 'sunburst');\n          }\n        }\n      }\n\n      compatSunburstState(seriesOpt);\n      traverseTree(seriesOpt.data, compatSunburstState);\n    } else if (seriesType === 'graph' || seriesType === 'sankey') {\n      compatGraphFocus(seriesOpt);\n    } else if (seriesType === 'map') {\n      if (seriesOpt.mapType && !seriesOpt.map) {\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog('mapType', 'map', 'map');\n        }\n\n        seriesOpt.map = seriesOpt.mapType;\n      }\n\n      if (seriesOpt.mapLocation) {\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateLog('`mapLocation` is not used anymore.');\n        }\n\n        defaults(seriesOpt, seriesOpt.mapLocation);\n      }\n    }\n\n    if (seriesOpt.hoverAnimation != null) {\n      seriesOpt.emphasis = seriesOpt.emphasis || {};\n\n      if (seriesOpt.emphasis && seriesOpt.emphasis.scale == null) {\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog('hoverAnimation', 'emphasis.scale');\n        }\n\n        seriesOpt.emphasis.scale = seriesOpt.hoverAnimation;\n      }\n    }\n\n    compatLayoutProperties(seriesOpt);\n  });\n\n  if (option.dataRange) {\n    option.visualMap = option.dataRange;\n  }\n\n  each(COMPATITABLE_COMPONENTS, function (componentName) {\n    var options = option[componentName];\n\n    if (options) {\n      if (!isArray(options)) {\n        options = [options];\n      }\n\n      each(options, function (option) {\n        compatLayoutProperties(option);\n      });\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, each } from 'zrender/lib/core/util';\nexport default function dataStack(ecModel) {\n  var stackInfoMap = createHashMap();\n  ecModel.eachSeries(function (seriesModel) {\n    var stack = seriesModel.get('stack');\n\n    if (stack) {\n      var stackInfoList = stackInfoMap.get(stack) || stackInfoMap.set(stack, []);\n      var data = seriesModel.getData();\n      var stackInfo = {\n        stackResultDimension: data.getCalculationInfo('stackResultDimension'),\n        stackedOverDimension: data.getCalculationInfo('stackedOverDimension'),\n        stackedDimension: data.getCalculationInfo('stackedDimension'),\n        stackedByDimension: data.getCalculationInfo('stackedByDimension'),\n        isStackedByIndex: data.getCalculationInfo('isStackedByIndex'),\n        data: data,\n        seriesModel: seriesModel\n      };\n\n      if (!stackInfo.stackedDimension || !(stackInfo.isStackedByIndex || stackInfo.stackedByDimension)) {\n        return;\n      }\n\n      stackInfoList.length && data.setCalculationInfo('stackedOnSeries', stackInfoList[stackInfoList.length - 1].seriesModel);\n      stackInfoList.push(stackInfo);\n    }\n  });\n  stackInfoMap.each(calculateStack);\n}\n\nfunction calculateStack(stackInfoList) {\n  each(stackInfoList, function (targetStackInfo, idxInStack) {\n    var resultVal = [];\n    var resultNaN = [NaN, NaN];\n    var dims = [targetStackInfo.stackResultDimension, targetStackInfo.stackedOverDimension];\n    var targetData = targetStackInfo.data;\n    var isStackedByIndex = targetStackInfo.isStackedByIndex;\n    var newData = targetData.map(dims, function (v0, v1, dataIndex) {\n      var sum = targetData.get(targetStackInfo.stackedDimension, dataIndex);\n\n      if (isNaN(sum)) {\n        return resultNaN;\n      }\n\n      var byValue;\n      var stackedDataRawIndex;\n\n      if (isStackedByIndex) {\n        stackedDataRawIndex = targetData.getRawIndex(dataIndex);\n      } else {\n        byValue = targetData.get(targetStackInfo.stackedByDimension, dataIndex);\n      }\n\n      var stackedOver = NaN;\n\n      for (var j = idxInStack - 1; j >= 0; j--) {\n        var stackInfo = stackInfoList[j];\n\n        if (!isStackedByIndex) {\n          stackedDataRawIndex = stackInfo.data.rawIndexOf(stackInfo.stackedByDimension, byValue);\n        }\n\n        if (stackedDataRawIndex >= 0) {\n          var val = stackInfo.data.getByRawIndex(stackInfo.stackResultDimension, stackedDataRawIndex);\n\n          if (sum >= 0 && val > 0 || sum <= 0 && val < 0) {\n            sum += val;\n            stackedOver = val;\n            break;\n          }\n        }\n      }\n\n      resultVal[0] = sum;\n      resultVal[1] = stackedOver;\n      return resultVal;\n    });\n    targetData.hostModel.setData(newData);\n    targetStackInfo.data = newData;\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isTypedArray, clone, createHashMap, isArray, isObject, isArrayLike, hasOwn, assert, each, map, isNumber, isString } from 'zrender/lib/core/util';\nimport { SOURCE_FORMAT_ORIGINAL, SERIES_LAYOUT_BY_COLUMN, SOURCE_FORMAT_UNKNOWN, SOURCE_FORMAT_KEYED_COLUMNS, SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ARRAY_ROWS, SOURCE_FORMAT_OBJECT_ROWS, SERIES_LAYOUT_BY_ROW } from '../util/types';\nimport { getDataItemValue } from '../util/model';\n;\n\nvar SourceImpl = function () {\n  function SourceImpl(fields) {\n    this.data = fields.data || (fields.sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS ? {} : []);\n    this.sourceFormat = fields.sourceFormat || SOURCE_FORMAT_UNKNOWN;\n    this.seriesLayoutBy = fields.seriesLayoutBy || SERIES_LAYOUT_BY_COLUMN;\n    this.startIndex = fields.startIndex || 0;\n    this.dimensionsDefine = fields.dimensionsDefine;\n    this.dimensionsDetectedCount = fields.dimensionsDetectedCount;\n    this.encodeDefine = fields.encodeDefine;\n    this.metaRawOption = fields.metaRawOption;\n  }\n\n  return SourceImpl;\n}();\n\nexport function isSourceInstance(val) {\n  return val instanceof SourceImpl;\n}\nexport function createSource(sourceData, thisMetaRawOption, sourceFormat, encodeDefine) {\n  sourceFormat = sourceFormat || detectSourceFormat(sourceData);\n  var seriesLayoutBy = thisMetaRawOption.seriesLayoutBy;\n  var determined = determineSourceDimensions(sourceData, sourceFormat, seriesLayoutBy, thisMetaRawOption.sourceHeader, thisMetaRawOption.dimensions);\n  var source = new SourceImpl({\n    data: sourceData,\n    sourceFormat: sourceFormat,\n    seriesLayoutBy: seriesLayoutBy,\n    dimensionsDefine: determined.dimensionsDefine,\n    startIndex: determined.startIndex,\n    dimensionsDetectedCount: determined.dimensionsDetectedCount,\n    encodeDefine: makeEncodeDefine(encodeDefine),\n    metaRawOption: clone(thisMetaRawOption)\n  });\n  return source;\n}\nexport function createSourceFromSeriesDataOption(data) {\n  return new SourceImpl({\n    data: data,\n    sourceFormat: isTypedArray(data) ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL\n  });\n}\nexport function cloneSourceShallow(source) {\n  return new SourceImpl({\n    data: source.data,\n    sourceFormat: source.sourceFormat,\n    seriesLayoutBy: source.seriesLayoutBy,\n    dimensionsDefine: clone(source.dimensionsDefine),\n    startIndex: source.startIndex,\n    dimensionsDetectedCount: source.dimensionsDetectedCount,\n    encodeDefine: makeEncodeDefine(source.encodeDefine)\n  });\n}\n\nfunction makeEncodeDefine(encodeDefine) {\n  return encodeDefine ? createHashMap(encodeDefine) : null;\n}\n\nexport function detectSourceFormat(data) {\n  var sourceFormat = SOURCE_FORMAT_UNKNOWN;\n\n  if (isTypedArray(data)) {\n    sourceFormat = SOURCE_FORMAT_TYPED_ARRAY;\n  } else if (isArray(data)) {\n    if (data.length === 0) {\n      sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\n    }\n\n    for (var i = 0, len = data.length; i < len; i++) {\n      var item = data[i];\n\n      if (item == null) {\n        continue;\n      } else if (isArray(item)) {\n        sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\n        break;\n      } else if (isObject(item)) {\n        sourceFormat = SOURCE_FORMAT_OBJECT_ROWS;\n        break;\n      }\n    }\n  } else if (isObject(data)) {\n    for (var key in data) {\n      if (hasOwn(data, key) && isArrayLike(data[key])) {\n        sourceFormat = SOURCE_FORMAT_KEYED_COLUMNS;\n        break;\n      }\n    }\n  }\n\n  return sourceFormat;\n}\n\nfunction determineSourceDimensions(data, sourceFormat, seriesLayoutBy, sourceHeader, dimensionsDefine) {\n  var dimensionsDetectedCount;\n  var startIndex;\n\n  if (!data) {\n    return {\n      dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\n      startIndex: startIndex,\n      dimensionsDetectedCount: dimensionsDetectedCount\n    };\n  }\n\n  if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n    var dataArrayRows = data;\n\n    if (sourceHeader === 'auto' || sourceHeader == null) {\n      arrayRowsTravelFirst(function (val) {\n        if (val != null && val !== '-') {\n          if (isString(val)) {\n            startIndex == null && (startIndex = 1);\n          } else {\n            startIndex = 0;\n          }\n        }\n      }, seriesLayoutBy, dataArrayRows, 10);\n    } else {\n      startIndex = isNumber(sourceHeader) ? sourceHeader : sourceHeader ? 1 : 0;\n    }\n\n    if (!dimensionsDefine && startIndex === 1) {\n      dimensionsDefine = [];\n      arrayRowsTravelFirst(function (val, index) {\n        dimensionsDefine[index] = val != null ? val + '' : '';\n      }, seriesLayoutBy, dataArrayRows, Infinity);\n    }\n\n    dimensionsDetectedCount = dimensionsDefine ? dimensionsDefine.length : seriesLayoutBy === SERIES_LAYOUT_BY_ROW ? dataArrayRows.length : dataArrayRows[0] ? dataArrayRows[0].length : null;\n  } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n    if (!dimensionsDefine) {\n      dimensionsDefine = objectRowsCollectDimensions(data);\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n    if (!dimensionsDefine) {\n      dimensionsDefine = [];\n      each(data, function (colArr, key) {\n        dimensionsDefine.push(key);\n      });\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n    var value0 = getDataItemValue(data[0]);\n    dimensionsDetectedCount = isArray(value0) && value0.length || 1;\n  } else if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!!dimensionsDefine, 'dimensions must be given if data is TypedArray.');\n    }\n  }\n\n  return {\n    startIndex: startIndex,\n    dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\n    dimensionsDetectedCount: dimensionsDetectedCount\n  };\n}\n\nfunction objectRowsCollectDimensions(data) {\n  var firstIndex = 0;\n  var obj;\n\n  while (firstIndex < data.length && !(obj = data[firstIndex++])) {}\n\n  if (obj) {\n    var dimensions_1 = [];\n    each(obj, function (value, key) {\n      dimensions_1.push(key);\n    });\n    return dimensions_1;\n  }\n}\n\nfunction normalizeDimensionsOption(dimensionsDefine) {\n  if (!dimensionsDefine) {\n    return;\n  }\n\n  var nameMap = createHashMap();\n  return map(dimensionsDefine, function (rawItem, index) {\n    rawItem = isObject(rawItem) ? rawItem : {\n      name: rawItem\n    };\n    var item = {\n      name: rawItem.name,\n      displayName: rawItem.displayName,\n      type: rawItem.type\n    };\n\n    if (item.name == null) {\n      return item;\n    }\n\n    item.name += '';\n\n    if (item.displayName == null) {\n      item.displayName = item.name;\n    }\n\n    var exist = nameMap.get(item.name);\n\n    if (!exist) {\n      nameMap.set(item.name, {\n        count: 1\n      });\n    } else {\n      item.name += '-' + exist.count++;\n    }\n\n    return item;\n  });\n}\n\nfunction arrayRowsTravelFirst(cb, seriesLayoutBy, data, maxLoop) {\n  if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\n    for (var i = 0; i < data.length && i < maxLoop; i++) {\n      cb(data[i] ? data[i][0] : null, i);\n    }\n  } else {\n    var value0 = data[0] || [];\n\n    for (var i = 0; i < value0.length && i < maxLoop; i++) {\n      cb(value0[i], i);\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar _a, _b, _c;\n\nimport { isTypedArray, extend, assert, each, isObject, bind } from 'zrender/lib/core/util';\nimport { getDataItemValue } from '../../util/model';\nimport { createSourceFromSeriesDataOption, isSourceInstance } from '../Source';\nimport { SOURCE_FORMAT_ORIGINAL, SOURCE_FORMAT_OBJECT_ROWS, SOURCE_FORMAT_KEYED_COLUMNS, SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ARRAY_ROWS, SERIES_LAYOUT_BY_COLUMN, SERIES_LAYOUT_BY_ROW } from '../../util/types';\nvar providerMethods;\nvar mountMethods;\n\nvar DefaultDataProvider = function () {\n  function DefaultDataProvider(sourceParam, dimSize) {\n    var source = !isSourceInstance(sourceParam) ? createSourceFromSeriesDataOption(sourceParam) : sourceParam;\n    this._source = source;\n    var data = this._data = source.data;\n\n    if (source.sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (dimSize == null) {\n          throw new Error('Typed array data must specify dimension size');\n        }\n      }\n\n      this._offset = 0;\n      this._dimSize = dimSize;\n      this._data = data;\n    }\n\n    mountMethods(this, data, source);\n  }\n\n  DefaultDataProvider.prototype.getSource = function () {\n    return this._source;\n  };\n\n  DefaultDataProvider.prototype.count = function () {\n    return 0;\n  };\n\n  DefaultDataProvider.prototype.getItem = function (idx, out) {\n    return;\n  };\n\n  DefaultDataProvider.prototype.appendData = function (newData) {};\n\n  DefaultDataProvider.prototype.clean = function () {};\n\n  DefaultDataProvider.protoInitialize = function () {\n    var proto = DefaultDataProvider.prototype;\n    proto.pure = false;\n    proto.persistent = true;\n  }();\n\n  DefaultDataProvider.internalField = function () {\n    var _a;\n\n    mountMethods = function (provider, data, source) {\n      var sourceFormat = source.sourceFormat;\n      var seriesLayoutBy = source.seriesLayoutBy;\n      var startIndex = source.startIndex;\n      var dimsDef = source.dimensionsDefine;\n      var methods = providerMethods[getMethodMapKey(sourceFormat, seriesLayoutBy)];\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(methods, 'Invalide sourceFormat: ' + sourceFormat);\n      }\n\n      extend(provider, methods);\n\n      if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n        provider.getItem = getItemForTypedArray;\n        provider.count = countForTypedArray;\n        provider.fillStorage = fillStorageForTypedArray;\n      } else {\n        var rawItemGetter = getRawSourceItemGetter(sourceFormat, seriesLayoutBy);\n        provider.getItem = bind(rawItemGetter, null, data, startIndex, dimsDef);\n        var rawCounter = getRawSourceDataCounter(sourceFormat, seriesLayoutBy);\n        provider.count = bind(rawCounter, null, data, startIndex, dimsDef);\n      }\n    };\n\n    var getItemForTypedArray = function (idx, out) {\n      idx = idx - this._offset;\n      out = out || [];\n      var data = this._data;\n      var dimSize = this._dimSize;\n      var offset = dimSize * idx;\n\n      for (var i = 0; i < dimSize; i++) {\n        out[i] = data[offset + i];\n      }\n\n      return out;\n    };\n\n    var fillStorageForTypedArray = function (start, end, storage, extent) {\n      var data = this._data;\n      var dimSize = this._dimSize;\n\n      for (var dim = 0; dim < dimSize; dim++) {\n        var dimExtent = extent[dim];\n        var min = dimExtent[0] == null ? Infinity : dimExtent[0];\n        var max = dimExtent[1] == null ? -Infinity : dimExtent[1];\n        var count = end - start;\n        var arr = storage[dim];\n\n        for (var i = 0; i < count; i++) {\n          var val = data[i * dimSize + dim];\n          arr[start + i] = val;\n          val < min && (min = val);\n          val > max && (max = val);\n        }\n\n        dimExtent[0] = min;\n        dimExtent[1] = max;\n      }\n    };\n\n    var countForTypedArray = function () {\n      return this._data ? this._data.length / this._dimSize : 0;\n    };\n\n    providerMethods = (_a = {}, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = {\n      pure: true,\n      appendData: appendDataSimply\n    }, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = {\n      pure: true,\n      appendData: function () {\n        throw new Error('Do not support appendData when set seriesLayoutBy: \"row\".');\n      }\n    }, _a[SOURCE_FORMAT_OBJECT_ROWS] = {\n      pure: true,\n      appendData: appendDataSimply\n    }, _a[SOURCE_FORMAT_KEYED_COLUMNS] = {\n      pure: true,\n      appendData: function (newData) {\n        var data = this._data;\n        each(newData, function (newCol, key) {\n          var oldCol = data[key] || (data[key] = []);\n\n          for (var i = 0; i < (newCol || []).length; i++) {\n            oldCol.push(newCol[i]);\n          }\n        });\n      }\n    }, _a[SOURCE_FORMAT_ORIGINAL] = {\n      appendData: appendDataSimply\n    }, _a[SOURCE_FORMAT_TYPED_ARRAY] = {\n      persistent: false,\n      pure: true,\n      appendData: function (newData) {\n        if (process.env.NODE_ENV !== 'production') {\n          assert(isTypedArray(newData), 'Added data must be TypedArray if data in initialization is TypedArray');\n        }\n\n        this._data = newData;\n      },\n      clean: function () {\n        this._offset += this.count();\n        this._data = null;\n      }\n    }, _a);\n\n    function appendDataSimply(newData) {\n      for (var i = 0; i < newData.length; i++) {\n        this._data.push(newData[i]);\n      }\n    }\n  }();\n\n  return DefaultDataProvider;\n}();\n\nexport { DefaultDataProvider };\n\nvar getItemSimply = function (rawData, startIndex, dimsDef, idx) {\n  return rawData[idx];\n};\n\nvar rawSourceItemGetterMap = (_a = {}, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef, idx) {\n  return rawData[idx + startIndex];\n}, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef, idx) {\n  idx += startIndex;\n  var item = [];\n  var data = rawData;\n\n  for (var i = 0; i < data.length; i++) {\n    var row = data[i];\n    item.push(row ? row[idx] : null);\n  }\n\n  return item;\n}, _a[SOURCE_FORMAT_OBJECT_ROWS] = getItemSimply, _a[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef, idx) {\n  var item = [];\n\n  for (var i = 0; i < dimsDef.length; i++) {\n    var dimName = dimsDef[i].name;\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (dimName == null) {\n        throw new Error();\n      }\n    }\n\n    var col = rawData[dimName];\n    item.push(col ? col[idx] : null);\n  }\n\n  return item;\n}, _a[SOURCE_FORMAT_ORIGINAL] = getItemSimply, _a);\nexport function getRawSourceItemGetter(sourceFormat, seriesLayoutBy) {\n  var method = rawSourceItemGetterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\n\n  if (process.env.NODE_ENV !== 'production') {\n    assert(method, 'Do not suppport get item on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\n  }\n\n  return method;\n}\n\nvar countSimply = function (rawData, startIndex, dimsDef) {\n  return rawData.length;\n};\n\nvar rawSourceDataCounterMap = (_b = {}, _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef) {\n  return Math.max(0, rawData.length - startIndex);\n}, _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef) {\n  var row = rawData[0];\n  return row ? Math.max(0, row.length - startIndex) : 0;\n}, _b[SOURCE_FORMAT_OBJECT_ROWS] = countSimply, _b[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef) {\n  var dimName = dimsDef[0].name;\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (dimName == null) {\n      throw new Error();\n    }\n  }\n\n  var col = rawData[dimName];\n  return col ? col.length : 0;\n}, _b[SOURCE_FORMAT_ORIGINAL] = countSimply, _b);\nexport function getRawSourceDataCounter(sourceFormat, seriesLayoutBy) {\n  var method = rawSourceDataCounterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\n\n  if (process.env.NODE_ENV !== 'production') {\n    assert(method, 'Do not suppport count on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\n  }\n\n  return method;\n}\n\nvar getRawValueSimply = function (dataItem, dimIndex, dimName) {\n  return dimIndex != null ? dataItem[dimIndex] : dataItem;\n};\n\nvar rawSourceValueGetterMap = (_c = {}, _c[SOURCE_FORMAT_ARRAY_ROWS] = getRawValueSimply, _c[SOURCE_FORMAT_OBJECT_ROWS] = function (dataItem, dimIndex, dimName) {\n  return dimIndex != null ? dataItem[dimName] : dataItem;\n}, _c[SOURCE_FORMAT_KEYED_COLUMNS] = getRawValueSimply, _c[SOURCE_FORMAT_ORIGINAL] = function (dataItem, dimIndex, dimName) {\n  var value = getDataItemValue(dataItem);\n  return dimIndex == null || !(value instanceof Array) ? value : value[dimIndex];\n}, _c[SOURCE_FORMAT_TYPED_ARRAY] = getRawValueSimply, _c);\nexport function getRawSourceValueGetter(sourceFormat) {\n  var method = rawSourceValueGetterMap[sourceFormat];\n\n  if (process.env.NODE_ENV !== 'production') {\n    assert(method, 'Do not suppport get value on \"' + sourceFormat + '\".');\n  }\n\n  return method;\n}\n\nfunction getMethodMapKey(sourceFormat, seriesLayoutBy) {\n  return sourceFormat === SOURCE_FORMAT_ARRAY_ROWS ? sourceFormat + '_' + seriesLayoutBy : sourceFormat;\n}\n\nexport function retrieveRawValue(data, dataIndex, dim) {\n  if (!data) {\n    return;\n  }\n\n  var dataItem = data.getRawDataItem(dataIndex);\n\n  if (dataItem == null) {\n    return;\n  }\n\n  var sourceFormat = data.getProvider().getSource().sourceFormat;\n  var dimName;\n  var dimIndex;\n  var dimInfo = data.getDimensionInfo(dim);\n\n  if (dimInfo) {\n    dimName = dimInfo.name;\n    dimIndex = dimInfo.index;\n  }\n\n  return getRawSourceValueGetter(sourceFormat)(dataItem, dimIndex, dimName);\n}\nexport function retrieveRawAttr(data, dataIndex, attr) {\n  if (!data) {\n    return;\n  }\n\n  var sourceFormat = data.getProvider().getSource().sourceFormat;\n\n  if (sourceFormat !== SOURCE_FORMAT_ORIGINAL && sourceFormat !== SOURCE_FORMAT_OBJECT_ROWS) {\n    return;\n  }\n\n  var dataItem = data.getRawDataItem(dataIndex);\n\n  if (sourceFormat === SOURCE_FORMAT_ORIGINAL && !isObject(dataItem)) {\n    dataItem = null;\n  }\n\n  if (dataItem) {\n    return dataItem[attr];\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { retrieveRawValue } from '../../data/helper/dataProvider';\nimport { formatTpl } from '../../util/format';\nimport { makePrintable } from '../../util/log';\nvar DIMENSION_LABEL_REG = /\\{@(.+?)\\}/g;\n\nvar DataFormatMixin = function () {\n  function DataFormatMixin() {}\n\n  DataFormatMixin.prototype.getDataParams = function (dataIndex, dataType) {\n    var data = this.getData(dataType);\n    var rawValue = this.getRawValue(dataIndex, dataType);\n    var rawDataIndex = data.getRawIndex(dataIndex);\n    var name = data.getName(dataIndex);\n    var itemOpt = data.getRawDataItem(dataIndex);\n    var style = data.getItemVisual(dataIndex, 'style');\n    var color = style && style[data.getItemVisual(dataIndex, 'drawType') || 'fill'];\n    var borderColor = style && style.stroke;\n    var mainType = this.mainType;\n    var isSeries = mainType === 'series';\n    var userOutput = data.userOutput;\n    return {\n      componentType: mainType,\n      componentSubType: this.subType,\n      componentIndex: this.componentIndex,\n      seriesType: isSeries ? this.subType : null,\n      seriesIndex: this.seriesIndex,\n      seriesId: isSeries ? this.id : null,\n      seriesName: isSeries ? this.name : null,\n      name: name,\n      dataIndex: rawDataIndex,\n      data: itemOpt,\n      dataType: dataType,\n      value: rawValue,\n      color: color,\n      borderColor: borderColor,\n      dimensionNames: userOutput ? userOutput.dimensionNames : null,\n      encode: userOutput ? userOutput.encode : null,\n      $vars: ['seriesName', 'name', 'value']\n    };\n  };\n\n  DataFormatMixin.prototype.getFormattedLabel = function (dataIndex, status, dataType, labelDimIndex, formatter, extendParams) {\n    status = status || 'normal';\n    var data = this.getData(dataType);\n    var params = this.getDataParams(dataIndex, dataType);\n\n    if (extendParams) {\n      params.value = extendParams.interpolatedValue;\n    }\n\n    if (labelDimIndex != null && zrUtil.isArray(params.value)) {\n      params.value = params.value[labelDimIndex];\n    }\n\n    if (!formatter) {\n      var itemModel = data.getItemModel(dataIndex);\n      formatter = itemModel.get(status === 'normal' ? ['label', 'formatter'] : [status, 'label', 'formatter']);\n    }\n\n    if (typeof formatter === 'function') {\n      params.status = status;\n      params.dimensionIndex = labelDimIndex;\n      return formatter(params);\n    } else if (typeof formatter === 'string') {\n      var str = formatTpl(formatter, params);\n      return str.replace(DIMENSION_LABEL_REG, function (origin, dimStr) {\n        var len = dimStr.length;\n        var dimLoose = dimStr.charAt(0) === '[' && dimStr.charAt(len - 1) === ']' ? +dimStr.slice(1, len - 1) : dimStr;\n        var val = retrieveRawValue(data, dataIndex, dimLoose);\n\n        if (extendParams && zrUtil.isArray(extendParams.interpolatedValue)) {\n          var dimInfo = data.getDimensionInfo(dimLoose);\n\n          if (dimInfo) {\n            val = extendParams.interpolatedValue[dimInfo.index];\n          }\n        }\n\n        return val != null ? val + '' : '';\n      });\n    }\n  };\n\n  DataFormatMixin.prototype.getRawValue = function (idx, dataType) {\n    return retrieveRawValue(this.getData(dataType), idx);\n  };\n\n  DataFormatMixin.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    return;\n  };\n\n  return DataFormatMixin;\n}();\n\nexport { DataFormatMixin };\n;\nexport function normalizeTooltipFormatResult(result) {\n  var markupText;\n  var markupFragment;\n\n  if (zrUtil.isObject(result)) {\n    if (result.type) {\n      markupFragment = result;\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn('The return type of `formatTooltip` is not supported: ' + makePrintable(result));\n      }\n    }\n  } else {\n    markupText = result;\n  }\n\n  return {\n    markupText: markupText,\n    markupFragment: markupFragment\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { assert, isArray } from 'zrender/lib/core/util';\n;\nexport function createTask(define) {\n  return new Task(define);\n}\n\nvar Task = function () {\n  function Task(define) {\n    define = define || {};\n    this._reset = define.reset;\n    this._plan = define.plan;\n    this._count = define.count;\n    this._onDirty = define.onDirty;\n    this._dirty = true;\n  }\n\n  Task.prototype.perform = function (performArgs) {\n    var upTask = this._upstream;\n    var skip = performArgs && performArgs.skip;\n\n    if (this._dirty && upTask) {\n      var context = this.context;\n      context.data = context.outputData = upTask.context.outputData;\n    }\n\n    if (this.__pipeline) {\n      this.__pipeline.currentTask = this;\n    }\n\n    var planResult;\n\n    if (this._plan && !skip) {\n      planResult = this._plan(this.context);\n    }\n\n    var lastModBy = normalizeModBy(this._modBy);\n    var lastModDataCount = this._modDataCount || 0;\n    var modBy = normalizeModBy(performArgs && performArgs.modBy);\n    var modDataCount = performArgs && performArgs.modDataCount || 0;\n\n    if (lastModBy !== modBy || lastModDataCount !== modDataCount) {\n      planResult = 'reset';\n    }\n\n    function normalizeModBy(val) {\n      !(val >= 1) && (val = 1);\n      return val;\n    }\n\n    var forceFirstProgress;\n\n    if (this._dirty || planResult === 'reset') {\n      this._dirty = false;\n      forceFirstProgress = this._doReset(skip);\n    }\n\n    this._modBy = modBy;\n    this._modDataCount = modDataCount;\n    var step = performArgs && performArgs.step;\n\n    if (upTask) {\n      if (process.env.NODE_ENV !== 'production') {\n        assert(upTask._outputDueEnd != null);\n      }\n\n      this._dueEnd = upTask._outputDueEnd;\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        assert(!this._progress || this._count);\n      }\n\n      this._dueEnd = this._count ? this._count(this.context) : Infinity;\n    }\n\n    if (this._progress) {\n      var start = this._dueIndex;\n      var end = Math.min(step != null ? this._dueIndex + step : Infinity, this._dueEnd);\n\n      if (!skip && (forceFirstProgress || start < end)) {\n        var progress = this._progress;\n\n        if (isArray(progress)) {\n          for (var i = 0; i < progress.length; i++) {\n            this._doProgress(progress[i], start, end, modBy, modDataCount);\n          }\n        } else {\n          this._doProgress(progress, start, end, modBy, modDataCount);\n        }\n      }\n\n      this._dueIndex = end;\n      var outputDueEnd = this._settedOutputEnd != null ? this._settedOutputEnd : end;\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(outputDueEnd >= this._outputDueEnd);\n      }\n\n      this._outputDueEnd = outputDueEnd;\n    } else {\n      this._dueIndex = this._outputDueEnd = this._settedOutputEnd != null ? this._settedOutputEnd : this._dueEnd;\n    }\n\n    return this.unfinished();\n  };\n\n  Task.prototype.dirty = function () {\n    this._dirty = true;\n    this._onDirty && this._onDirty(this.context);\n  };\n\n  Task.prototype._doProgress = function (progress, start, end, modBy, modDataCount) {\n    iterator.reset(start, end, modBy, modDataCount);\n    this._callingProgress = progress;\n\n    this._callingProgress({\n      start: start,\n      end: end,\n      count: end - start,\n      next: iterator.next\n    }, this.context);\n  };\n\n  Task.prototype._doReset = function (skip) {\n    this._dueIndex = this._outputDueEnd = this._dueEnd = 0;\n    this._settedOutputEnd = null;\n    var progress;\n    var forceFirstProgress;\n\n    if (!skip && this._reset) {\n      progress = this._reset(this.context);\n\n      if (progress && progress.progress) {\n        forceFirstProgress = progress.forceFirstProgress;\n        progress = progress.progress;\n      }\n\n      if (isArray(progress) && !progress.length) {\n        progress = null;\n      }\n    }\n\n    this._progress = progress;\n    this._modBy = this._modDataCount = null;\n    var downstream = this._downstream;\n    downstream && downstream.dirty();\n    return forceFirstProgress;\n  };\n\n  Task.prototype.unfinished = function () {\n    return this._progress && this._dueIndex < this._dueEnd;\n  };\n\n  Task.prototype.pipe = function (downTask) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(downTask && !downTask._disposed && downTask !== this);\n    }\n\n    if (this._downstream !== downTask || this._dirty) {\n      this._downstream = downTask;\n      downTask._upstream = this;\n      downTask.dirty();\n    }\n  };\n\n  Task.prototype.dispose = function () {\n    if (this._disposed) {\n      return;\n    }\n\n    this._upstream && (this._upstream._downstream = null);\n    this._downstream && (this._downstream._upstream = null);\n    this._dirty = false;\n    this._disposed = true;\n  };\n\n  Task.prototype.getUpstream = function () {\n    return this._upstream;\n  };\n\n  Task.prototype.getDownstream = function () {\n    return this._downstream;\n  };\n\n  Task.prototype.setOutputEnd = function (end) {\n    this._outputDueEnd = this._settedOutputEnd = end;\n  };\n\n  return Task;\n}();\n\nexport { Task };\n\nvar iterator = function () {\n  var end;\n  var current;\n  var modBy;\n  var modDataCount;\n  var winCount;\n  var it = {\n    reset: function (s, e, sStep, sCount) {\n      current = s;\n      end = e;\n      modBy = sStep;\n      modDataCount = sCount;\n      winCount = Math.ceil(modDataCount / modBy);\n      it.next = modBy > 1 && modDataCount > 0 ? modNext : sequentialNext;\n    }\n  };\n  return it;\n\n  function sequentialNext() {\n    return current < end ? current++ : null;\n  }\n\n  function modNext() {\n    var dataIndex = current % winCount * modBy + Math.ceil(current / winCount);\n    var result = current >= end ? null : dataIndex < modDataCount ? dataIndex : current;\n    current++;\n    return result;\n  }\n}();","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parseDate, numericToNumber } from '../../util/number';\nimport { createHashMap, trim, hasOwn } from 'zrender/lib/core/util';\nimport { throwError } from '../../util/log';\nexport function parseDataValue(value, opt) {\n  var dimType = opt && opt.type;\n\n  if (dimType === 'ordinal') {\n    var ordinalMeta = opt && opt.ordinalMeta;\n    return ordinalMeta ? ordinalMeta.parseAndCollect(value) : value;\n  }\n\n  if (dimType === 'time' && typeof value !== 'number' && value != null && value !== '-') {\n    value = +parseDate(value);\n  }\n\n  return value == null || value === '' ? NaN : +value;\n}\n;\nvar valueParserMap = createHashMap({\n  'number': function (val) {\n    return parseFloat(val);\n  },\n  'time': function (val) {\n    return +parseDate(val);\n  },\n  'trim': function (val) {\n    return typeof val === 'string' ? trim(val) : val;\n  }\n});\nexport function getRawValueParser(type) {\n  return valueParserMap.get(type);\n}\nvar ORDER_COMPARISON_OP_MAP = {\n  lt: function (lval, rval) {\n    return lval < rval;\n  },\n  lte: function (lval, rval) {\n    return lval <= rval;\n  },\n  gt: function (lval, rval) {\n    return lval > rval;\n  },\n  gte: function (lval, rval) {\n    return lval >= rval;\n  }\n};\n\nvar FilterOrderComparator = function () {\n  function FilterOrderComparator(op, rval) {\n    if (typeof rval !== 'number') {\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'rvalue of \"<\", \">\", \"<=\", \">=\" can only be number in filter.';\n      }\n\n      throwError(errMsg);\n    }\n\n    this._opFn = ORDER_COMPARISON_OP_MAP[op];\n    this._rvalFloat = numericToNumber(rval);\n  }\n\n  FilterOrderComparator.prototype.evaluate = function (lval) {\n    return typeof lval === 'number' ? this._opFn(lval, this._rvalFloat) : this._opFn(numericToNumber(lval), this._rvalFloat);\n  };\n\n  return FilterOrderComparator;\n}();\n\nvar SortOrderComparator = function () {\n  function SortOrderComparator(order, incomparable) {\n    var isDesc = order === 'desc';\n    this._resultLT = isDesc ? 1 : -1;\n\n    if (incomparable == null) {\n      incomparable = isDesc ? 'min' : 'max';\n    }\n\n    this._incomparable = incomparable === 'min' ? -Infinity : Infinity;\n  }\n\n  SortOrderComparator.prototype.evaluate = function (lval, rval) {\n    var lvalTypeof = typeof lval;\n    var rvalTypeof = typeof rval;\n    var lvalFloat = lvalTypeof === 'number' ? lval : numericToNumber(lval);\n    var rvalFloat = rvalTypeof === 'number' ? rval : numericToNumber(rval);\n    var lvalNotNumeric = isNaN(lvalFloat);\n    var rvalNotNumeric = isNaN(rvalFloat);\n\n    if (lvalNotNumeric) {\n      lvalFloat = this._incomparable;\n    }\n\n    if (rvalNotNumeric) {\n      rvalFloat = this._incomparable;\n    }\n\n    if (lvalNotNumeric && rvalNotNumeric) {\n      var lvalIsStr = lvalTypeof === 'string';\n      var rvalIsStr = rvalTypeof === 'string';\n\n      if (lvalIsStr) {\n        lvalFloat = rvalIsStr ? lval : 0;\n      }\n\n      if (rvalIsStr) {\n        rvalFloat = lvalIsStr ? rval : 0;\n      }\n    }\n\n    return lvalFloat < rvalFloat ? this._resultLT : lvalFloat > rvalFloat ? -this._resultLT : 0;\n  };\n\n  return SortOrderComparator;\n}();\n\nexport { SortOrderComparator };\n\nvar FilterEqualityComparator = function () {\n  function FilterEqualityComparator(isEq, rval) {\n    this._rval = rval;\n    this._isEQ = isEq;\n    this._rvalTypeof = typeof rval;\n    this._rvalFloat = numericToNumber(rval);\n  }\n\n  FilterEqualityComparator.prototype.evaluate = function (lval) {\n    var eqResult = lval === this._rval;\n\n    if (!eqResult) {\n      var lvalTypeof = typeof lval;\n\n      if (lvalTypeof !== this._rvalTypeof && (lvalTypeof === 'number' || this._rvalTypeof === 'number')) {\n        eqResult = numericToNumber(lval) === this._rvalFloat;\n      }\n    }\n\n    return this._isEQ ? eqResult : !eqResult;\n  };\n\n  return FilterEqualityComparator;\n}();\n\nexport function createFilterComparator(op, rval) {\n  return op === 'eq' || op === 'ne' ? new FilterEqualityComparator(op === 'eq', rval) : hasOwn(ORDER_COMPARISON_OP_MAP, op) ? new FilterOrderComparator(op, rval) : null;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { SERIES_LAYOUT_BY_COLUMN, SOURCE_FORMAT_OBJECT_ROWS, SOURCE_FORMAT_ARRAY_ROWS } from '../../util/types';\nimport { normalizeToArray } from '../../util/model';\nimport { createHashMap, bind, each, hasOwn, map, clone, isObject, extend } from 'zrender/lib/core/util';\nimport { getRawSourceItemGetter, getRawSourceDataCounter, getRawSourceValueGetter } from './dataProvider';\nimport { parseDataValue } from './dataValueHelper';\nimport { consoleLog, makePrintable, throwError } from '../../util/log';\nimport { createSource, detectSourceFormat } from '../Source';\n\nvar ExternalSource = function () {\n  function ExternalSource() {}\n\n  ExternalSource.prototype.getRawData = function () {\n    throw new Error('not supported');\n  };\n\n  ExternalSource.prototype.getRawDataItem = function (dataIndex) {\n    throw new Error('not supported');\n  };\n\n  ExternalSource.prototype.cloneRawData = function () {\n    return;\n  };\n\n  ExternalSource.prototype.getDimensionInfo = function (dim) {\n    return;\n  };\n\n  ExternalSource.prototype.cloneAllDimensionInfo = function () {\n    return;\n  };\n\n  ExternalSource.prototype.count = function () {\n    return;\n  };\n\n  ExternalSource.prototype.retrieveValue = function (dataIndex, dimIndex) {\n    return;\n  };\n\n  ExternalSource.prototype.retrieveValueFromItem = function (dataItem, dimIndex) {\n    return;\n  };\n\n  ExternalSource.prototype.convertValue = function (rawVal, dimInfo) {\n    return parseDataValue(rawVal, dimInfo);\n  };\n\n  return ExternalSource;\n}();\n\nexport { ExternalSource };\n\nfunction createExternalSource(internalSource, externalTransform) {\n  var extSource = new ExternalSource();\n  var data = internalSource.data;\n  var sourceFormat = extSource.sourceFormat = internalSource.sourceFormat;\n  var sourceHeaderCount = internalSource.startIndex;\n  var errMsg = '';\n\n  if (internalSource.seriesLayoutBy !== SERIES_LAYOUT_BY_COLUMN) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = '`seriesLayoutBy` of upstream dataset can only be \"column\" in data transform.';\n    }\n\n    throwError(errMsg);\n  }\n\n  var dimensions = [];\n  var dimsByName = {};\n  var dimsDef = internalSource.dimensionsDefine;\n\n  if (dimsDef) {\n    each(dimsDef, function (dimDef, idx) {\n      var name = dimDef.name;\n      var dimDefExt = {\n        index: idx,\n        name: name,\n        displayName: dimDef.displayName\n      };\n      dimensions.push(dimDefExt);\n\n      if (name != null) {\n        var errMsg_1 = '';\n\n        if (hasOwn(dimsByName, name)) {\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg_1 = 'dimension name \"' + name + '\" duplicated.';\n          }\n\n          throwError(errMsg_1);\n        }\n\n        dimsByName[name] = dimDefExt;\n      }\n    });\n  } else {\n    for (var i = 0; i < internalSource.dimensionsDetectedCount || 0; i++) {\n      dimensions.push({\n        index: i\n      });\n    }\n  }\n\n  var rawItemGetter = getRawSourceItemGetter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\n\n  if (externalTransform.__isBuiltIn) {\n    extSource.getRawDataItem = function (dataIndex) {\n      return rawItemGetter(data, sourceHeaderCount, dimensions, dataIndex);\n    };\n\n    extSource.getRawData = bind(getRawData, null, internalSource);\n  }\n\n  extSource.cloneRawData = bind(cloneRawData, null, internalSource);\n  var rawCounter = getRawSourceDataCounter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\n  extSource.count = bind(rawCounter, null, data, sourceHeaderCount, dimensions);\n  var rawValueGetter = getRawSourceValueGetter(sourceFormat);\n\n  extSource.retrieveValue = function (dataIndex, dimIndex) {\n    var rawItem = rawItemGetter(data, sourceHeaderCount, dimensions, dataIndex);\n    return retrieveValueFromItem(rawItem, dimIndex);\n  };\n\n  var retrieveValueFromItem = extSource.retrieveValueFromItem = function (dataItem, dimIndex) {\n    if (dataItem == null) {\n      return;\n    }\n\n    var dimDef = dimensions[dimIndex];\n\n    if (dimDef) {\n      return rawValueGetter(dataItem, dimIndex, dimDef.name);\n    }\n  };\n\n  extSource.getDimensionInfo = bind(getDimensionInfo, null, dimensions, dimsByName);\n  extSource.cloneAllDimensionInfo = bind(cloneAllDimensionInfo, null, dimensions);\n  return extSource;\n}\n\nfunction getRawData(upstream) {\n  var sourceFormat = upstream.sourceFormat;\n\n  if (!isSupportedSourceFormat(sourceFormat)) {\n    var errMsg = '';\n\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = '`getRawData` is not supported in source format ' + sourceFormat;\n    }\n\n    throwError(errMsg);\n  }\n\n  return upstream.data;\n}\n\nfunction cloneRawData(upstream) {\n  var sourceFormat = upstream.sourceFormat;\n  var data = upstream.data;\n\n  if (!isSupportedSourceFormat(sourceFormat)) {\n    var errMsg = '';\n\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = '`cloneRawData` is not supported in source format ' + sourceFormat;\n    }\n\n    throwError(errMsg);\n  }\n\n  if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n    var result = [];\n\n    for (var i = 0, len = data.length; i < len; i++) {\n      result.push(data[i].slice());\n    }\n\n    return result;\n  } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n    var result = [];\n\n    for (var i = 0, len = data.length; i < len; i++) {\n      result.push(extend({}, data[i]));\n    }\n\n    return result;\n  }\n}\n\nfunction getDimensionInfo(dimensions, dimsByName, dim) {\n  if (dim == null) {\n    return;\n  }\n\n  if (typeof dim === 'number' || !isNaN(dim) && !hasOwn(dimsByName, dim)) {\n    return dimensions[dim];\n  } else if (hasOwn(dimsByName, dim)) {\n    return dimsByName[dim];\n  }\n}\n\nfunction cloneAllDimensionInfo(dimensions) {\n  return clone(dimensions);\n}\n\nvar externalTransformMap = createHashMap();\nexport function registerExternalTransform(externalTransform) {\n  externalTransform = clone(externalTransform);\n  var type = externalTransform.type;\n  var errMsg = '';\n\n  if (!type) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'Must have a `type` when `registerTransform`.';\n    }\n\n    throwError(errMsg);\n  }\n\n  var typeParsed = type.split(':');\n\n  if (typeParsed.length !== 2) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'Name must include namespace like \"ns:regression\".';\n    }\n\n    throwError(errMsg);\n  }\n\n  var isBuiltIn = false;\n\n  if (typeParsed[0] === 'echarts') {\n    type = typeParsed[1];\n    isBuiltIn = true;\n  }\n\n  externalTransform.__isBuiltIn = isBuiltIn;\n  externalTransformMap.set(type, externalTransform);\n}\nexport function applyDataTransform(rawTransOption, sourceList, infoForPrint) {\n  var pipedTransOption = normalizeToArray(rawTransOption);\n  var pipeLen = pipedTransOption.length;\n  var errMsg = '';\n\n  if (!pipeLen) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'If `transform` declared, it should at least contain one transform.';\n    }\n\n    throwError(errMsg);\n  }\n\n  for (var i = 0, len = pipeLen; i < len; i++) {\n    var transOption = pipedTransOption[i];\n    sourceList = applySingleDataTransform(transOption, sourceList, infoForPrint, pipeLen === 1 ? null : i);\n\n    if (i !== len - 1) {\n      sourceList.length = Math.max(sourceList.length, 1);\n    }\n  }\n\n  return sourceList;\n}\n\nfunction applySingleDataTransform(transOption, upSourceList, infoForPrint, pipeIndex) {\n  var errMsg = '';\n\n  if (!upSourceList.length) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'Must have at least one upstream dataset.';\n    }\n\n    throwError(errMsg);\n  }\n\n  if (!isObject(transOption)) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'transform declaration must be an object rather than ' + typeof transOption + '.';\n    }\n\n    throwError(errMsg);\n  }\n\n  var transType = transOption.type;\n  var externalTransform = externalTransformMap.get(transType);\n\n  if (!externalTransform) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'Can not find transform on type \"' + transType + '\".';\n    }\n\n    throwError(errMsg);\n  }\n\n  var extUpSourceList = map(upSourceList, function (upSource) {\n    return createExternalSource(upSource, externalTransform);\n  });\n  var resultList = normalizeToArray(externalTransform.transform({\n    upstream: extUpSourceList[0],\n    upstreamList: extUpSourceList,\n    config: clone(transOption.config)\n  }));\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (transOption.print) {\n      var printStrArr = map(resultList, function (extSource) {\n        var pipeIndexStr = pipeIndex != null ? ' === pipe index: ' + pipeIndex : '';\n        return ['=== dataset index: ' + infoForPrint.datasetIndex + pipeIndexStr + ' ===', '- transform result data:', makePrintable(extSource.data), '- transform result dimensions:', makePrintable(extSource.dimensions)].join('\\n');\n      }).join('\\n');\n      consoleLog(printStrArr);\n    }\n  }\n\n  return map(resultList, function (result, resultIndex) {\n    var errMsg = '';\n\n    if (!isObject(result)) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'A transform should not return some empty results.';\n      }\n\n      throwError(errMsg);\n    }\n\n    if (!result.data) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'Transform result data should be not be null or undefined';\n      }\n\n      throwError(errMsg);\n    }\n\n    var sourceFormat = detectSourceFormat(result.data);\n\n    if (!isSupportedSourceFormat(sourceFormat)) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'Transform result data should be array rows or object rows.';\n      }\n\n      throwError(errMsg);\n    }\n\n    var resultMetaRawOption;\n    var firstUpSource = upSourceList[0];\n\n    if (firstUpSource && resultIndex === 0 && !result.dimensions) {\n      var startIndex = firstUpSource.startIndex;\n\n      if (startIndex) {\n        result.data = firstUpSource.data.slice(0, startIndex).concat(result.data);\n      }\n\n      resultMetaRawOption = {\n        seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN,\n        sourceHeader: startIndex,\n        dimensions: firstUpSource.metaRawOption.dimensions\n      };\n    } else {\n      resultMetaRawOption = {\n        seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN,\n        sourceHeader: 0,\n        dimensions: result.dimensions\n      };\n    }\n\n    return createSource(result.data, resultMetaRawOption, null, null);\n  });\n}\n\nfunction isSupportedSourceFormat(sourceFormat) {\n  return sourceFormat === SOURCE_FORMAT_ARRAY_ROWS || sourceFormat === SOURCE_FORMAT_OBJECT_ROWS;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { setAsPrimitive, map, isTypedArray, assert, each, retrieve2 } from 'zrender/lib/core/util';\nimport { createSource, cloneSourceShallow } from '../Source';\nimport { SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ORIGINAL } from '../../util/types';\nimport { querySeriesUpstreamDatasetModel, queryDatasetUpstreamDatasetModels } from './sourceHelper';\nimport { applyDataTransform } from './transform';\n\nvar SourceManager = function () {\n  function SourceManager(sourceHost) {\n    this._sourceList = [];\n    this._upstreamSignList = [];\n    this._versionSignBase = 0;\n    this._sourceHost = sourceHost;\n  }\n\n  SourceManager.prototype.dirty = function () {\n    this._setLocalSource([], []);\n  };\n\n  SourceManager.prototype._setLocalSource = function (sourceList, upstreamSignList) {\n    this._sourceList = sourceList;\n    this._upstreamSignList = upstreamSignList;\n    this._versionSignBase++;\n\n    if (this._versionSignBase > 9e10) {\n      this._versionSignBase = 0;\n    }\n  };\n\n  SourceManager.prototype._getVersionSign = function () {\n    return this._sourceHost.uid + '_' + this._versionSignBase;\n  };\n\n  SourceManager.prototype.prepareSource = function () {\n    if (this._isDirty()) {\n      this._createSource();\n    }\n  };\n\n  SourceManager.prototype._createSource = function () {\n    this._setLocalSource([], []);\n\n    var sourceHost = this._sourceHost;\n\n    var upSourceMgrList = this._getUpstreamSourceManagers();\n\n    var hasUpstream = !!upSourceMgrList.length;\n    var resultSourceList;\n    var upstreamSignList;\n\n    if (isSeries(sourceHost)) {\n      var seriesModel = sourceHost;\n      var data = void 0;\n      var sourceFormat = void 0;\n      var upSource = void 0;\n\n      if (hasUpstream) {\n        var upSourceMgr = upSourceMgrList[0];\n        upSourceMgr.prepareSource();\n        upSource = upSourceMgr.getSource();\n        data = upSource.data;\n        sourceFormat = upSource.sourceFormat;\n        upstreamSignList = [upSourceMgr._getVersionSign()];\n      } else {\n        data = seriesModel.get('data', true);\n        sourceFormat = isTypedArray(data) ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL;\n        upstreamSignList = [];\n      }\n\n      var newMetaRawOption = this._getSourceMetaRawOption();\n\n      var upMetaRawOption = upSource ? upSource.metaRawOption : null;\n      var seriesLayoutBy = retrieve2(newMetaRawOption.seriesLayoutBy, upMetaRawOption ? upMetaRawOption.seriesLayoutBy : null);\n      var sourceHeader = retrieve2(newMetaRawOption.sourceHeader, upMetaRawOption ? upMetaRawOption.sourceHeader : null);\n      var dimensions = retrieve2(newMetaRawOption.dimensions, upMetaRawOption ? upMetaRawOption.dimensions : null);\n      resultSourceList = [createSource(data, {\n        seriesLayoutBy: seriesLayoutBy,\n        sourceHeader: sourceHeader,\n        dimensions: dimensions\n      }, sourceFormat, seriesModel.get('encode', true))];\n    } else {\n      var datasetModel = sourceHost;\n\n      if (hasUpstream) {\n        var result = this._applyTransform(upSourceMgrList);\n\n        resultSourceList = result.sourceList;\n        upstreamSignList = result.upstreamSignList;\n      } else {\n        var sourceData = datasetModel.get('source', true);\n        resultSourceList = [createSource(sourceData, this._getSourceMetaRawOption(), null, null)];\n        upstreamSignList = [];\n      }\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(resultSourceList && upstreamSignList);\n    }\n\n    this._setLocalSource(resultSourceList, upstreamSignList);\n  };\n\n  SourceManager.prototype._applyTransform = function (upMgrList) {\n    var datasetModel = this._sourceHost;\n    var transformOption = datasetModel.get('transform', true);\n    var fromTransformResult = datasetModel.get('fromTransformResult', true);\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(fromTransformResult != null || transformOption != null);\n    }\n\n    if (fromTransformResult != null) {\n      var errMsg = '';\n\n      if (upMgrList.length !== 1) {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = 'When using `fromTransformResult`, there should be only one upstream dataset';\n        }\n\n        doThrow(errMsg);\n      }\n    }\n\n    var sourceList;\n    var upSourceList = [];\n    var upstreamSignList = [];\n    each(upMgrList, function (upMgr) {\n      upMgr.prepareSource();\n      var upSource = upMgr.getSource(fromTransformResult || 0);\n      var errMsg = '';\n\n      if (fromTransformResult != null && !upSource) {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = 'Can not retrieve result by `fromTransformResult`: ' + fromTransformResult;\n        }\n\n        doThrow(errMsg);\n      }\n\n      upSourceList.push(upSource);\n      upstreamSignList.push(upMgr._getVersionSign());\n    });\n\n    if (transformOption) {\n      sourceList = applyDataTransform(transformOption, upSourceList, {\n        datasetIndex: datasetModel.componentIndex\n      });\n    } else if (fromTransformResult != null) {\n      sourceList = [cloneSourceShallow(upSourceList[0])];\n    }\n\n    return {\n      sourceList: sourceList,\n      upstreamSignList: upstreamSignList\n    };\n  };\n\n  SourceManager.prototype._isDirty = function () {\n    var sourceList = this._sourceList;\n\n    if (!sourceList.length) {\n      return true;\n    }\n\n    var upSourceMgrList = this._getUpstreamSourceManagers();\n\n    for (var i = 0; i < upSourceMgrList.length; i++) {\n      var upSrcMgr = upSourceMgrList[i];\n\n      if (upSrcMgr._isDirty() || this._upstreamSignList[i] !== upSrcMgr._getVersionSign()) {\n        return true;\n      }\n    }\n  };\n\n  SourceManager.prototype.getSource = function (sourceIndex) {\n    return this._sourceList[sourceIndex || 0];\n  };\n\n  SourceManager.prototype._getUpstreamSourceManagers = function () {\n    var sourceHost = this._sourceHost;\n\n    if (isSeries(sourceHost)) {\n      var datasetModel = querySeriesUpstreamDatasetModel(sourceHost);\n      return !datasetModel ? [] : [datasetModel.getSourceManager()];\n    } else {\n      return map(queryDatasetUpstreamDatasetModels(sourceHost), function (datasetModel) {\n        return datasetModel.getSourceManager();\n      });\n    }\n  };\n\n  SourceManager.prototype._getSourceMetaRawOption = function () {\n    var sourceHost = this._sourceHost;\n    var seriesLayoutBy;\n    var sourceHeader;\n    var dimensions;\n\n    if (isSeries(sourceHost)) {\n      seriesLayoutBy = sourceHost.get('seriesLayoutBy', true);\n      sourceHeader = sourceHost.get('sourceHeader', true);\n      dimensions = sourceHost.get('dimensions', true);\n    } else if (!this._getUpstreamSourceManagers().length) {\n      var model = sourceHost;\n      seriesLayoutBy = model.get('seriesLayoutBy', true);\n      sourceHeader = model.get('sourceHeader', true);\n      dimensions = model.get('dimensions', true);\n    }\n\n    return {\n      seriesLayoutBy: seriesLayoutBy,\n      sourceHeader: sourceHeader,\n      dimensions: dimensions\n    };\n  };\n\n  return SourceManager;\n}();\n\nexport { SourceManager };\nexport function disableTransformOptionMerge(datasetModel) {\n  var transformOption = datasetModel.option.transform;\n  transformOption && setAsPrimitive(datasetModel.option.transform);\n}\n\nfunction isSeries(sourceHost) {\n  return sourceHost.mainType === 'series';\n}\n\nfunction doThrow(errMsg) {\n  throw new Error(errMsg);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { getTooltipMarker, encodeHTML, makeValueReadable, convertToColorString } from '../../util/format';\nimport { isString, each, hasOwn, isArray, map, assert, extend } from 'zrender/lib/core/util';\nimport { SortOrderComparator } from '../../data/helper/dataValueHelper';\nimport { getRandomIdBase } from '../../util/number';\nvar TOOLTIP_LINE_HEIGHT_CSS = 'line-height:1';\n\nfunction getTooltipTextStyle(textStyle, renderMode) {\n  var nameFontColor = textStyle.color || '#6e7079';\n  var nameFontSize = textStyle.fontSize || 12;\n  var nameFontWeight = textStyle.fontWeight || '400';\n  var valueFontColor = textStyle.color || '#464646';\n  var valueFontSize = textStyle.fontSize || 14;\n  var valueFontWeight = textStyle.fontWeight || '900';\n\n  if (renderMode === 'html') {\n    return {\n      nameStyle: \"font-size:\" + nameFontSize + \"px;color:\" + nameFontColor + \";font-weight:\" + nameFontWeight,\n      valueStyle: \"font-size:\" + valueFontSize + \"px;color:\" + valueFontColor + \";font-weight:\" + valueFontWeight\n    };\n  } else {\n    return {\n      nameStyle: {\n        fontSize: nameFontSize,\n        fill: nameFontColor,\n        fontWeight: nameFontWeight\n      },\n      valueStyle: {\n        fontSize: valueFontSize,\n        fill: valueFontColor,\n        fontWeight: valueFontWeight\n      }\n    };\n  }\n}\n\nvar HTML_GAPS = [0, 10, 20, 30];\nvar RICH_TEXT_GAPS = ['', '\\n', '\\n\\n', '\\n\\n\\n'];\nexport function createTooltipMarkup(type, option) {\n  option.type = type;\n  return option;\n}\n\nfunction getBuilder(fragment) {\n  return hasOwn(builderMap, fragment.type) && builderMap[fragment.type];\n}\n\nvar builderMap = {\n  section: {\n    planLayout: function (fragment) {\n      var subBlockLen = fragment.blocks.length;\n      var thisBlockHasInnerGap = subBlockLen > 1 || subBlockLen > 0 && !fragment.noHeader;\n      var thisGapLevelBetweenSubBlocks = 0;\n      each(fragment.blocks, function (subBlock) {\n        getBuilder(subBlock).planLayout(subBlock);\n        var subGapLevel = subBlock.__gapLevelBetweenSubBlocks;\n\n        if (subGapLevel >= thisGapLevelBetweenSubBlocks) {\n          thisGapLevelBetweenSubBlocks = subGapLevel + (thisBlockHasInnerGap && (!subGapLevel || subBlock.type === 'section' && !subBlock.noHeader) ? 1 : 0);\n        }\n      });\n      fragment.__gapLevelBetweenSubBlocks = thisGapLevelBetweenSubBlocks;\n    },\n    build: function (ctx, fragment, topMarginForOuterGap, toolTipTextStyle) {\n      var noHeader = fragment.noHeader;\n      var gaps = getGap(fragment);\n      var subMarkupText = buildSubBlocks(ctx, fragment, noHeader ? topMarginForOuterGap : gaps.html, toolTipTextStyle);\n\n      if (noHeader) {\n        return subMarkupText;\n      }\n\n      var displayableHeader = makeValueReadable(fragment.header, 'ordinal', ctx.useUTC);\n      var nameStyle = getTooltipTextStyle(toolTipTextStyle, ctx.renderMode).nameStyle;\n\n      if (ctx.renderMode === 'richText') {\n        return wrapInlineNameRichText(ctx, displayableHeader, nameStyle) + gaps.richText + subMarkupText;\n      } else {\n        return wrapBlockHTML(\"<div style=\\\"\" + nameStyle + \";\" + TOOLTIP_LINE_HEIGHT_CSS + \";\\\">\" + encodeHTML(displayableHeader) + '</div>' + subMarkupText, topMarginForOuterGap);\n      }\n    }\n  },\n  nameValue: {\n    planLayout: function (fragment) {\n      fragment.__gapLevelBetweenSubBlocks = 0;\n    },\n    build: function (ctx, fragment, topMarginForOuterGap, toolTipTextStyle) {\n      var renderMode = ctx.renderMode;\n      var noName = fragment.noName;\n      var noValue = fragment.noValue;\n      var noMarker = !fragment.markerType;\n      var name = fragment.name;\n      var value = fragment.value;\n      var useUTC = ctx.useUTC;\n\n      if (noName && noValue) {\n        return;\n      }\n\n      var markerStr = noMarker ? '' : ctx.markupStyleCreator.makeTooltipMarker(fragment.markerType, fragment.markerColor || '#333', renderMode);\n      var readableName = noName ? '' : makeValueReadable(name, 'ordinal', useUTC);\n      var valueTypeOption = fragment.valueType;\n      var readableValueList = noValue ? [] : isArray(value) ? map(value, function (val, idx) {\n        return makeValueReadable(val, isArray(valueTypeOption) ? valueTypeOption[idx] : valueTypeOption, useUTC);\n      }) : [makeValueReadable(value, isArray(valueTypeOption) ? valueTypeOption[0] : valueTypeOption, useUTC)];\n      var valueAlignRight = !noMarker || !noName;\n      var valueCloseToMarker = !noMarker && noName;\n\n      var _a = getTooltipTextStyle(toolTipTextStyle, renderMode),\n          nameStyle = _a.nameStyle,\n          valueStyle = _a.valueStyle;\n\n      return renderMode === 'richText' ? (noMarker ? '' : markerStr) + (noName ? '' : wrapInlineNameRichText(ctx, readableName, nameStyle)) + (noValue ? '' : wrapInlineValueRichText(ctx, readableValueList, valueAlignRight, valueCloseToMarker, valueStyle)) : wrapBlockHTML((noMarker ? '' : markerStr) + (noName ? '' : wrapInlineNameHTML(readableName, !noMarker, nameStyle)) + (noValue ? '' : wrapInlineValueHTML(readableValueList, valueAlignRight, valueCloseToMarker, valueStyle)), topMarginForOuterGap);\n    }\n  }\n};\n\nfunction buildSubBlocks(ctx, fragment, topMarginForOuterGap, tooltipTextStyle) {\n  var subMarkupTextList = [];\n  var subBlocks = fragment.blocks || [];\n  assert(!subBlocks || isArray(subBlocks));\n  subBlocks = subBlocks || [];\n  var orderMode = ctx.orderMode;\n\n  if (fragment.sortBlocks && orderMode) {\n    subBlocks = subBlocks.slice();\n    var orderMap = {\n      valueAsc: 'asc',\n      valueDesc: 'desc'\n    };\n\n    if (hasOwn(orderMap, orderMode)) {\n      var comparator_1 = new SortOrderComparator(orderMap[orderMode], null);\n      subBlocks.sort(function (a, b) {\n        return comparator_1.evaluate(a.sortParam, b.sortParam);\n      });\n    } else if (orderMode === 'seriesDesc') {\n      subBlocks.reverse();\n    }\n  }\n\n  var gaps = getGap(fragment);\n  each(subBlocks, function (subBlock, idx) {\n    var subMarkupText = getBuilder(subBlock).build(ctx, subBlock, idx > 0 ? gaps.html : 0, tooltipTextStyle);\n    subMarkupText != null && subMarkupTextList.push(subMarkupText);\n  });\n\n  if (!subMarkupTextList.length) {\n    return;\n  }\n\n  return ctx.renderMode === 'richText' ? subMarkupTextList.join(gaps.richText) : wrapBlockHTML(subMarkupTextList.join(''), topMarginForOuterGap);\n}\n\nexport function buildTooltipMarkup(fragment, markupStyleCreator, renderMode, orderMode, useUTC, toolTipTextStyle) {\n  if (!fragment) {\n    return;\n  }\n\n  var builder = getBuilder(fragment);\n  builder.planLayout(fragment);\n  var ctx = {\n    useUTC: useUTC,\n    renderMode: renderMode,\n    orderMode: orderMode,\n    markupStyleCreator: markupStyleCreator\n  };\n  return builder.build(ctx, fragment, 0, toolTipTextStyle);\n}\n\nfunction getGap(fragment) {\n  var gapLevelBetweenSubBlocks = fragment.__gapLevelBetweenSubBlocks;\n  return {\n    html: HTML_GAPS[gapLevelBetweenSubBlocks],\n    richText: RICH_TEXT_GAPS[gapLevelBetweenSubBlocks]\n  };\n}\n\nfunction wrapBlockHTML(encodedContent, topGap) {\n  var clearfix = '<div style=\"clear:both\"></div>';\n  var marginCSS = \"margin: \" + topGap + \"px 0 0\";\n  return \"<div style=\\\"\" + marginCSS + \";\" + TOOLTIP_LINE_HEIGHT_CSS + \";\\\">\" + encodedContent + clearfix + '</div>';\n}\n\nfunction wrapInlineNameHTML(name, leftHasMarker, style) {\n  var marginCss = leftHasMarker ? 'margin-left:2px' : '';\n  return \"<span style=\\\"\" + style + \";\" + marginCss + \"\\\">\" + encodeHTML(name) + '</span>';\n}\n\nfunction wrapInlineValueHTML(valueList, alignRight, valueCloseToMarker, style) {\n  var paddingStr = valueCloseToMarker ? '10px' : '20px';\n  var alignCSS = alignRight ? \"float:right;margin-left:\" + paddingStr : '';\n  return \"<span style=\\\"\" + alignCSS + \";\" + style + \"\\\">\" + map(valueList, function (value) {\n    return encodeHTML(value);\n  }).join('&nbsp;&nbsp;') + '</span>';\n}\n\nfunction wrapInlineNameRichText(ctx, name, style) {\n  return ctx.markupStyleCreator.wrapRichTextStyle(name, style);\n}\n\nfunction wrapInlineValueRichText(ctx, valueList, alignRight, valueCloseToMarker, style) {\n  var styles = [style];\n  var paddingLeft = valueCloseToMarker ? 10 : 20;\n  alignRight && styles.push({\n    padding: [0, 0, 0, paddingLeft],\n    align: 'right'\n  });\n  return ctx.markupStyleCreator.wrapRichTextStyle(valueList.join('  '), styles);\n}\n\nexport function retrieveVisualColorForTooltipMarker(series, dataIndex) {\n  var style = series.getData().getItemVisual(dataIndex, 'style');\n  var color = style[series.visualDrawType];\n  return convertToColorString(color);\n}\nexport function getPaddingFromTooltipModel(model, renderMode) {\n  var padding = model.get('padding');\n  return padding != null ? padding : renderMode === 'richText' ? [8, 10] : 10;\n}\n\nvar TooltipMarkupStyleCreator = function () {\n  function TooltipMarkupStyleCreator() {\n    this.richTextStyles = {};\n    this._nextStyleNameId = getRandomIdBase();\n  }\n\n  TooltipMarkupStyleCreator.prototype._generateStyleName = function () {\n    return '__EC_aUTo_' + this._nextStyleNameId++;\n  };\n\n  TooltipMarkupStyleCreator.prototype.makeTooltipMarker = function (markerType, colorStr, renderMode) {\n    var markerId = renderMode === 'richText' ? this._generateStyleName() : null;\n    var marker = getTooltipMarker({\n      color: colorStr,\n      type: markerType,\n      renderMode: renderMode,\n      markerId: markerId\n    });\n\n    if (isString(marker)) {\n      return marker;\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        assert(markerId);\n      }\n\n      this.richTextStyles[markerId] = marker.style;\n      return marker.content;\n    }\n  };\n\n  TooltipMarkupStyleCreator.prototype.wrapRichTextStyle = function (text, styles) {\n    var finalStl = {};\n\n    if (isArray(styles)) {\n      each(styles, function (stl) {\n        return extend(finalStl, stl);\n      });\n    } else {\n      extend(finalStl, styles);\n    }\n\n    var styleName = this._generateStyleName();\n\n    this.richTextStyles[styleName] = finalStl;\n    return \"{\" + styleName + \"|\" + text + \"}\";\n  };\n\n  return TooltipMarkupStyleCreator;\n}();\n\nexport { TooltipMarkupStyleCreator };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { trim, isArray, each, reduce } from 'zrender/lib/core/util';\nimport { retrieveVisualColorForTooltipMarker, createTooltipMarkup } from './tooltipMarkup';\nimport { retrieveRawValue } from '../../data/helper/dataProvider';\nimport { isNameSpecified } from '../../util/model';\nexport function defaultSeriesFormatTooltip(opt) {\n  var series = opt.series;\n  var dataIndex = opt.dataIndex;\n  var multipleSeries = opt.multipleSeries;\n  var data = series.getData();\n  var tooltipDims = data.mapDimensionsAll('defaultedTooltip');\n  var tooltipDimLen = tooltipDims.length;\n  var value = series.getRawValue(dataIndex);\n  var isValueArr = isArray(value);\n  var markerColor = retrieveVisualColorForTooltipMarker(series, dataIndex);\n  var inlineValue;\n  var inlineValueType;\n  var subBlocks;\n  var sortParam;\n\n  if (tooltipDimLen > 1 || isValueArr && !tooltipDimLen) {\n    var formatArrResult = formatTooltipArrayValue(value, series, dataIndex, tooltipDims, markerColor);\n    inlineValue = formatArrResult.inlineValues;\n    inlineValueType = formatArrResult.inlineValueTypes;\n    subBlocks = formatArrResult.blocks;\n    sortParam = formatArrResult.inlineValues[0];\n  } else if (tooltipDimLen) {\n    var dimInfo = data.getDimensionInfo(tooltipDims[0]);\n    sortParam = inlineValue = retrieveRawValue(data, dataIndex, tooltipDims[0]);\n    inlineValueType = dimInfo.type;\n  } else {\n    sortParam = inlineValue = isValueArr ? value[0] : value;\n  }\n\n  var seriesNameSpecified = isNameSpecified(series);\n  var seriesName = seriesNameSpecified && series.name || '';\n  var itemName = data.getName(dataIndex);\n  var inlineName = multipleSeries ? seriesName : itemName;\n  return createTooltipMarkup('section', {\n    header: seriesName,\n    noHeader: multipleSeries || !seriesNameSpecified,\n    sortParam: sortParam,\n    blocks: [createTooltipMarkup('nameValue', {\n      markerType: 'item',\n      markerColor: markerColor,\n      name: inlineName,\n      noName: !trim(inlineName),\n      value: inlineValue,\n      valueType: inlineValueType\n    })].concat(subBlocks || [])\n  });\n}\n\nfunction formatTooltipArrayValue(value, series, dataIndex, tooltipDims, colorStr) {\n  var data = series.getData();\n  var isValueMultipleLine = reduce(value, function (isValueMultipleLine, val, idx) {\n    var dimItem = data.getDimensionInfo(idx);\n    return isValueMultipleLine = isValueMultipleLine || dimItem && dimItem.tooltip !== false && dimItem.displayName != null;\n  }, false);\n  var inlineValues = [];\n  var inlineValueTypes = [];\n  var blocks = [];\n  tooltipDims.length ? each(tooltipDims, function (dim) {\n    setEachItem(retrieveRawValue(data, dataIndex, dim), dim);\n  }) : each(value, setEachItem);\n\n  function setEachItem(val, dim) {\n    var dimInfo = data.getDimensionInfo(dim);\n\n    if (!dimInfo || dimInfo.otherDims.tooltip === false) {\n      return;\n    }\n\n    if (isValueMultipleLine) {\n      blocks.push(createTooltipMarkup('nameValue', {\n        markerType: 'subItem',\n        markerColor: colorStr,\n        name: dimInfo.displayName,\n        value: val,\n        valueType: dimInfo.type\n      }));\n    } else {\n      inlineValues.push(val);\n      inlineValueTypes.push(dimInfo.type);\n    }\n  }\n\n  return {\n    inlineValues: inlineValues,\n    inlineValueTypes: inlineValueTypes,\n    blocks: blocks\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends, __spreadArrays } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport * as modelUtil from '../util/model';\nimport ComponentModel from './Component';\nimport { PaletteMixin } from './mixin/palette';\nimport { DataFormatMixin } from '../model/mixin/dataFormat';\nimport { getLayoutParams, mergeLayoutParam, fetchLayoutMode } from '../util/layout';\nimport { createTask } from '../core/task';\nimport { mountExtend } from '../util/clazz';\nimport { SourceManager } from '../data/helper/sourceManager';\nimport { defaultSeriesFormatTooltip } from '../component/tooltip/seriesFormatTooltip';\nvar inner = modelUtil.makeInner();\n\nfunction getSelectionKey(data, dataIndex) {\n  return data.getName(dataIndex) || data.getId(dataIndex);\n}\n\nvar SeriesModel = function (_super) {\n  __extends(SeriesModel, _super);\n\n  function SeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this._selectedDataIndicesMap = {};\n    return _this;\n  }\n\n  SeriesModel.prototype.init = function (option, parentModel, ecModel) {\n    this.seriesIndex = this.componentIndex;\n    this.dataTask = createTask({\n      count: dataTaskCount,\n      reset: dataTaskReset\n    });\n    this.dataTask.context = {\n      model: this\n    };\n    this.mergeDefaultAndTheme(option, ecModel);\n    var sourceManager = inner(this).sourceManager = new SourceManager(this);\n    sourceManager.prepareSource();\n    var data = this.getInitialData(option, ecModel);\n    wrapData(data, this);\n    this.dataTask.context.data = data;\n\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.assert(data, 'getInitialData returned invalid data.');\n    }\n\n    inner(this).dataBeforeProcessed = data;\n    autoSeriesName(this);\n\n    this._initSelectedMapFromData(data);\n  };\n\n  SeriesModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n    var layoutMode = fetchLayoutMode(this);\n    var inputPositionParams = layoutMode ? getLayoutParams(option) : {};\n    var themeSubType = this.subType;\n\n    if (ComponentModel.hasClass(themeSubType)) {\n      themeSubType += 'Series';\n    }\n\n    zrUtil.merge(option, ecModel.getTheme().get(this.subType));\n    zrUtil.merge(option, this.getDefaultOption());\n    modelUtil.defaultEmphasis(option, 'label', ['show']);\n    this.fillDataTextStyle(option.data);\n\n    if (layoutMode) {\n      mergeLayoutParam(option, inputPositionParams, layoutMode);\n    }\n  };\n\n  SeriesModel.prototype.mergeOption = function (newSeriesOption, ecModel) {\n    newSeriesOption = zrUtil.merge(this.option, newSeriesOption, true);\n    this.fillDataTextStyle(newSeriesOption.data);\n    var layoutMode = fetchLayoutMode(this);\n\n    if (layoutMode) {\n      mergeLayoutParam(this.option, newSeriesOption, layoutMode);\n    }\n\n    var sourceManager = inner(this).sourceManager;\n    sourceManager.dirty();\n    sourceManager.prepareSource();\n    var data = this.getInitialData(newSeriesOption, ecModel);\n    wrapData(data, this);\n    this.dataTask.dirty();\n    this.dataTask.context.data = data;\n    inner(this).dataBeforeProcessed = data;\n    autoSeriesName(this);\n\n    this._initSelectedMapFromData(data);\n  };\n\n  SeriesModel.prototype.fillDataTextStyle = function (data) {\n    if (data && !zrUtil.isTypedArray(data)) {\n      var props = ['show'];\n\n      for (var i = 0; i < data.length; i++) {\n        if (data[i] && data[i].label) {\n          modelUtil.defaultEmphasis(data[i], 'label', props);\n        }\n      }\n    }\n  };\n\n  SeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return;\n  };\n\n  SeriesModel.prototype.appendData = function (params) {\n    var data = this.getRawData();\n    data.appendData(params.data);\n  };\n\n  SeriesModel.prototype.getData = function (dataType) {\n    var task = getCurrentTask(this);\n\n    if (task) {\n      var data = task.context.data;\n      return dataType == null ? data : data.getLinkedData(dataType);\n    } else {\n      return inner(this).data;\n    }\n  };\n\n  SeriesModel.prototype.getAllData = function () {\n    var mainData = this.getData();\n    return mainData && mainData.getLinkedDataAll ? mainData.getLinkedDataAll() : [{\n      data: mainData\n    }];\n  };\n\n  SeriesModel.prototype.setData = function (data) {\n    var task = getCurrentTask(this);\n\n    if (task) {\n      var context = task.context;\n      context.outputData = data;\n\n      if (task !== this.dataTask) {\n        context.data = data;\n      }\n    }\n\n    inner(this).data = data;\n  };\n\n  SeriesModel.prototype.getSource = function () {\n    return inner(this).sourceManager.getSource();\n  };\n\n  SeriesModel.prototype.getRawData = function () {\n    return inner(this).dataBeforeProcessed;\n  };\n\n  SeriesModel.prototype.getBaseAxis = function () {\n    var coordSys = this.coordinateSystem;\n    return coordSys && coordSys.getBaseAxis && coordSys.getBaseAxis();\n  };\n\n  SeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    return defaultSeriesFormatTooltip({\n      series: this,\n      dataIndex: dataIndex,\n      multipleSeries: multipleSeries\n    });\n  };\n\n  SeriesModel.prototype.isAnimationEnabled = function () {\n    if (env.node) {\n      return false;\n    }\n\n    var animationEnabled = this.getShallow('animation');\n\n    if (animationEnabled) {\n      if (this.getData().count() > this.getShallow('animationThreshold')) {\n        animationEnabled = false;\n      }\n    }\n\n    return !!animationEnabled;\n  };\n\n  SeriesModel.prototype.restoreData = function () {\n    this.dataTask.dirty();\n  };\n\n  SeriesModel.prototype.getColorFromPalette = function (name, scope, requestColorNum) {\n    var ecModel = this.ecModel;\n    var color = PaletteMixin.prototype.getColorFromPalette.call(this, name, scope, requestColorNum);\n\n    if (!color) {\n      color = ecModel.getColorFromPalette(name, scope, requestColorNum);\n    }\n\n    return color;\n  };\n\n  SeriesModel.prototype.coordDimToDataDim = function (coordDim) {\n    return this.getRawData().mapDimensionsAll(coordDim);\n  };\n\n  SeriesModel.prototype.getProgressive = function () {\n    return this.get('progressive');\n  };\n\n  SeriesModel.prototype.getProgressiveThreshold = function () {\n    return this.get('progressiveThreshold');\n  };\n\n  SeriesModel.prototype.select = function (innerDataIndices, dataType) {\n    this._innerSelect(this.getData(dataType), innerDataIndices);\n  };\n\n  SeriesModel.prototype.unselect = function (innerDataIndices, dataType) {\n    var selectedMap = this.option.selectedMap;\n\n    if (!selectedMap) {\n      return;\n    }\n\n    var data = this.getData(dataType);\n\n    for (var i = 0; i < innerDataIndices.length; i++) {\n      var dataIndex = innerDataIndices[i];\n      var nameOrId = getSelectionKey(data, dataIndex);\n      selectedMap[nameOrId] = false;\n      this._selectedDataIndicesMap[nameOrId] = -1;\n    }\n  };\n\n  SeriesModel.prototype.toggleSelect = function (innerDataIndices, dataType) {\n    var tmpArr = [];\n\n    for (var i = 0; i < innerDataIndices.length; i++) {\n      tmpArr[0] = innerDataIndices[i];\n      this.isSelected(innerDataIndices[i], dataType) ? this.unselect(tmpArr, dataType) : this.select(tmpArr, dataType);\n    }\n  };\n\n  SeriesModel.prototype.getSelectedDataIndices = function () {\n    var selectedDataIndicesMap = this._selectedDataIndicesMap;\n    var nameOrIds = zrUtil.keys(selectedDataIndicesMap);\n    var dataIndices = [];\n\n    for (var i = 0; i < nameOrIds.length; i++) {\n      var dataIndex = selectedDataIndicesMap[nameOrIds[i]];\n\n      if (dataIndex >= 0) {\n        dataIndices.push(dataIndex);\n      }\n    }\n\n    return dataIndices;\n  };\n\n  SeriesModel.prototype.isSelected = function (dataIndex, dataType) {\n    var selectedMap = this.option.selectedMap;\n\n    if (!selectedMap) {\n      return false;\n    }\n\n    var data = this.getData(dataType);\n    var nameOrId = getSelectionKey(data, dataIndex);\n    return selectedMap[nameOrId] || false;\n  };\n\n  SeriesModel.prototype._innerSelect = function (data, innerDataIndices) {\n    var _a, _b;\n\n    var selectedMode = this.option.selectedMode;\n    var len = innerDataIndices.length;\n\n    if (!selectedMode || !len) {\n      return;\n    }\n\n    if (selectedMode === 'multiple') {\n      var selectedMap = this.option.selectedMap || (this.option.selectedMap = {});\n\n      for (var i = 0; i < len; i++) {\n        var dataIndex = innerDataIndices[i];\n        var nameOrId = getSelectionKey(data, dataIndex);\n        selectedMap[nameOrId] = true;\n        this._selectedDataIndicesMap[nameOrId] = data.getRawIndex(dataIndex);\n      }\n    } else if (selectedMode === 'single' || selectedMode === true) {\n      var lastDataIndex = innerDataIndices[len - 1];\n      var nameOrId = getSelectionKey(data, lastDataIndex);\n      this.option.selectedMap = (_a = {}, _a[nameOrId] = true, _a);\n      this._selectedDataIndicesMap = (_b = {}, _b[nameOrId] = data.getRawIndex(lastDataIndex), _b);\n    }\n  };\n\n  SeriesModel.prototype._initSelectedMapFromData = function (data) {\n    if (this.option.selectedMap) {\n      return;\n    }\n\n    var dataIndices = [];\n\n    if (data.hasItemOption) {\n      data.each(function (idx) {\n        var rawItem = data.getRawDataItem(idx);\n\n        if (typeof rawItem === 'object' && rawItem.selected) {\n          dataIndices.push(idx);\n        }\n      });\n    }\n\n    if (dataIndices.length > 0) {\n      this._innerSelect(data, dataIndices);\n    }\n  };\n\n  SeriesModel.registerClass = function (clz) {\n    return ComponentModel.registerClass(clz);\n  };\n\n  SeriesModel.protoInitialize = function () {\n    var proto = SeriesModel.prototype;\n    proto.type = 'series.__base__';\n    proto.seriesIndex = 0;\n    proto.useColorPaletteOnData = false;\n    proto.ignoreStyleOnData = false;\n    proto.hasSymbolVisual = false;\n    proto.defaultSymbol = 'circle';\n    proto.visualStyleAccessPath = 'itemStyle';\n    proto.visualDrawType = 'fill';\n  }();\n\n  return SeriesModel;\n}(ComponentModel);\n\nzrUtil.mixin(SeriesModel, DataFormatMixin);\nzrUtil.mixin(SeriesModel, PaletteMixin);\nmountExtend(SeriesModel, ComponentModel);\n\nfunction autoSeriesName(seriesModel) {\n  var name = seriesModel.name;\n\n  if (!modelUtil.isNameSpecified(seriesModel)) {\n    seriesModel.name = getSeriesAutoName(seriesModel) || name;\n  }\n}\n\nfunction getSeriesAutoName(seriesModel) {\n  var data = seriesModel.getRawData();\n  var dataDims = data.mapDimensionsAll('seriesName');\n  var nameArr = [];\n  zrUtil.each(dataDims, function (dataDim) {\n    var dimInfo = data.getDimensionInfo(dataDim);\n    dimInfo.displayName && nameArr.push(dimInfo.displayName);\n  });\n  return nameArr.join(' ');\n}\n\nfunction dataTaskCount(context) {\n  return context.model.getRawData().count();\n}\n\nfunction dataTaskReset(context) {\n  var seriesModel = context.model;\n  seriesModel.setData(seriesModel.getRawData().cloneShallow());\n  return dataTaskProgress;\n}\n\nfunction dataTaskProgress(param, context) {\n  if (context.outputData && param.end > context.outputData.count()) {\n    context.model.getRawData().cloneShallow(context.outputData);\n  }\n}\n\nfunction wrapData(data, seriesModel) {\n  zrUtil.each(__spreadArrays(data.CHANGABLE_METHODS, data.DOWNSAMPLE_METHODS), function (methodName) {\n    data.wrapMethod(methodName, zrUtil.curry(onDataChange, seriesModel));\n  });\n}\n\nfunction onDataChange(seriesModel, newList) {\n  var task = getCurrentTask(seriesModel);\n\n  if (task) {\n    task.setOutputEnd((newList || this).count());\n  }\n\n  return newList;\n}\n\nfunction getCurrentTask(seriesModel) {\n  var scheduler = (seriesModel.ecModel || {}).scheduler;\n  var pipeline = scheduler && scheduler.getPipeline(seriesModel.uid);\n\n  if (pipeline) {\n    var task = pipeline.currentTask;\n\n    if (task) {\n      var agentStubMap = task.agentStubMap;\n\n      if (agentStubMap) {\n        task = agentStubMap.get(seriesModel.uid);\n      }\n    }\n\n    return task;\n  }\n}\n\nexport default SeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Group from 'zrender/lib/graphic/Group';\nimport * as componentUtil from '../util/component';\nimport * as clazzUtil from '../util/clazz';\n\nvar ComponentView = function () {\n  function ComponentView() {\n    this.group = new Group();\n    this.uid = componentUtil.getUID('viewComponent');\n  }\n\n  ComponentView.prototype.init = function (ecModel, api) {};\n\n  ComponentView.prototype.render = function (model, ecModel, api, payload) {};\n\n  ComponentView.prototype.dispose = function (ecModel, api) {};\n\n  ComponentView.prototype.updateView = function (model, ecModel, api, payload) {};\n\n  ComponentView.prototype.updateLayout = function (model, ecModel, api, payload) {};\n\n  ComponentView.prototype.updateVisual = function (model, ecModel, api, payload) {};\n\n  ComponentView.prototype.blurSeries = function (seriesModels, ecModel) {};\n\n  return ComponentView;\n}();\n\n;\nclazzUtil.enableClassExtend(ComponentView);\nclazzUtil.enableClassManagement(ComponentView);\nexport default ComponentView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner } from '../../util/model';\nexport default function createRenderPlanner() {\n  var inner = makeInner();\n  return function (seriesModel) {\n    var fields = inner(seriesModel);\n    var pipelineContext = seriesModel.pipelineContext;\n    var originalLarge = !!fields.large;\n    var originalProgressive = !!fields.progressiveRender;\n    var large = fields.large = !!(pipelineContext && pipelineContext.large);\n    var progressive = fields.progressiveRender = !!(pipelineContext && pipelineContext.progressiveRender);\n    return !!(originalLarge !== large || originalProgressive !== progressive) && 'reset';\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each } from 'zrender/lib/core/util';\nimport Group from 'zrender/lib/graphic/Group';\nimport * as componentUtil from '../util/component';\nimport * as clazzUtil from '../util/clazz';\nimport * as modelUtil from '../util/model';\nimport { enterEmphasis, leaveEmphasis, getHighlightDigit } from '../util/states';\nimport { createTask } from '../core/task';\nimport createRenderPlanner from '../chart/helper/createRenderPlanner';\nvar inner = modelUtil.makeInner();\nvar renderPlanner = createRenderPlanner();\n\nvar ChartView = function () {\n  function ChartView() {\n    this.group = new Group();\n    this.uid = componentUtil.getUID('viewChart');\n    this.renderTask = createTask({\n      plan: renderTaskPlan,\n      reset: renderTaskReset\n    });\n    this.renderTask.context = {\n      view: this\n    };\n  }\n\n  ChartView.prototype.init = function (ecModel, api) {};\n\n  ChartView.prototype.render = function (seriesModel, ecModel, api, payload) {};\n\n  ChartView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\n    toggleHighlight(seriesModel.getData(), payload, 'emphasis');\n  };\n\n  ChartView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\n    toggleHighlight(seriesModel.getData(), payload, 'normal');\n  };\n\n  ChartView.prototype.remove = function (ecModel, api) {\n    this.group.removeAll();\n  };\n\n  ChartView.prototype.dispose = function (ecModel, api) {};\n\n  ChartView.prototype.updateView = function (seriesModel, ecModel, api, payload) {\n    this.render(seriesModel, ecModel, api, payload);\n  };\n\n  ChartView.prototype.updateLayout = function (seriesModel, ecModel, api, payload) {\n    this.render(seriesModel, ecModel, api, payload);\n  };\n\n  ChartView.prototype.updateVisual = function (seriesModel, ecModel, api, payload) {\n    this.render(seriesModel, ecModel, api, payload);\n  };\n\n  ChartView.markUpdateMethod = function (payload, methodName) {\n    inner(payload).updateMethod = methodName;\n  };\n\n  ChartView.protoInitialize = function () {\n    var proto = ChartView.prototype;\n    proto.type = 'chart';\n  }();\n\n  return ChartView;\n}();\n\n;\n\nfunction elSetState(el, state, highlightDigit) {\n  if (el) {\n    (state === 'emphasis' ? enterEmphasis : leaveEmphasis)(el, highlightDigit);\n  }\n}\n\nfunction toggleHighlight(data, payload, state) {\n  var dataIndex = modelUtil.queryDataIndex(data, payload);\n  var highlightDigit = payload && payload.highlightKey != null ? getHighlightDigit(payload.highlightKey) : null;\n\n  if (dataIndex != null) {\n    each(modelUtil.normalizeToArray(dataIndex), function (dataIdx) {\n      elSetState(data.getItemGraphicEl(dataIdx), state, highlightDigit);\n    });\n  } else {\n    data.eachItemGraphicEl(function (el) {\n      elSetState(el, state, highlightDigit);\n    });\n  }\n}\n\nclazzUtil.enableClassExtend(ChartView, ['dispose']);\nclazzUtil.enableClassManagement(ChartView);\n\nfunction renderTaskPlan(context) {\n  return renderPlanner(context.model);\n}\n\nfunction renderTaskReset(context) {\n  var seriesModel = context.model;\n  var ecModel = context.ecModel;\n  var api = context.api;\n  var payload = context.payload;\n  var progressiveRender = seriesModel.pipelineContext.progressiveRender;\n  var view = context.view;\n  var updateMethod = payload && inner(payload).updateMethod;\n  var methodName = progressiveRender ? 'incrementalPrepareRender' : updateMethod && view[updateMethod] ? updateMethod : 'render';\n\n  if (methodName !== 'render') {\n    view[methodName](seriesModel, ecModel, api, payload);\n  }\n\n  return progressMethodMap[methodName];\n}\n\nvar progressMethodMap = {\n  incrementalPrepareRender: {\n    progress: function (params, context) {\n      context.view.incrementalRender(params, context.model, context.ecModel, context.api, context.payload);\n    }\n  },\n  render: {\n    forceFirstProgress: true,\n    progress: function (params, context) {\n      context.view.render(context.model, context.ecModel, context.api, context.payload);\n    }\n  }\n};\nexport default ChartView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar ORIGIN_METHOD = '\\0__throttleOriginMethod';\nvar RATE = '\\0__throttleRate';\nvar THROTTLE_TYPE = '\\0__throttleType';\n;\nexport function throttle(fn, delay, debounce) {\n  var currCall;\n  var lastCall = 0;\n  var lastExec = 0;\n  var timer = null;\n  var diff;\n  var scope;\n  var args;\n  var debounceNextCall;\n  delay = delay || 0;\n\n  function exec() {\n    lastExec = new Date().getTime();\n    timer = null;\n    fn.apply(scope, args || []);\n  }\n\n  var cb = function () {\n    var cbArgs = [];\n\n    for (var _i = 0; _i < arguments.length; _i++) {\n      cbArgs[_i] = arguments[_i];\n    }\n\n    currCall = new Date().getTime();\n    scope = this;\n    args = cbArgs;\n    var thisDelay = debounceNextCall || delay;\n    var thisDebounce = debounceNextCall || debounce;\n    debounceNextCall = null;\n    diff = currCall - (thisDebounce ? lastCall : lastExec) - thisDelay;\n    clearTimeout(timer);\n\n    if (thisDebounce) {\n      timer = setTimeout(exec, thisDelay);\n    } else {\n      if (diff >= 0) {\n        exec();\n      } else {\n        timer = setTimeout(exec, -diff);\n      }\n    }\n\n    lastCall = currCall;\n  };\n\n  cb.clear = function () {\n    if (timer) {\n      clearTimeout(timer);\n      timer = null;\n    }\n  };\n\n  cb.debounceNextCall = function (debounceDelay) {\n    debounceNextCall = debounceDelay;\n  };\n\n  return cb;\n}\nexport function createOrUpdate(obj, fnAttr, rate, throttleType) {\n  var fn = obj[fnAttr];\n\n  if (!fn) {\n    return;\n  }\n\n  var originFn = fn[ORIGIN_METHOD] || fn;\n  var lastThrottleType = fn[THROTTLE_TYPE];\n  var lastRate = fn[RATE];\n\n  if (lastRate !== rate || lastThrottleType !== throttleType) {\n    if (rate == null || !throttleType) {\n      return obj[fnAttr] = originFn;\n    }\n\n    fn = obj[fnAttr] = throttle(originFn, rate, throttleType === 'debounce');\n    fn[ORIGIN_METHOD] = originFn;\n    fn[THROTTLE_TYPE] = throttleType;\n    fn[RATE] = rate;\n  }\n\n  return fn;\n}\nexport function clear(obj, fnAttr) {\n  var fn = obj[fnAttr];\n\n  if (fn && fn[ORIGIN_METHOD]) {\n    obj[fnAttr] = fn[ORIGIN_METHOD];\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isFunction, extend, createHashMap } from 'zrender/lib/core/util';\nimport makeStyleMapper from '../model/mixin/makeStyleMapper';\nimport { ITEM_STYLE_KEY_MAP } from '../model/mixin/itemStyle';\nimport { LINE_STYLE_KEY_MAP } from '../model/mixin/lineStyle';\nimport Model from '../model/Model';\nimport { makeInner } from '../util/model';\nvar inner = makeInner();\nvar defaultStyleMappers = {\n  itemStyle: makeStyleMapper(ITEM_STYLE_KEY_MAP, true),\n  lineStyle: makeStyleMapper(LINE_STYLE_KEY_MAP, true)\n};\nvar defaultColorKey = {\n  lineStyle: 'stroke',\n  itemStyle: 'fill'\n};\n\nfunction getStyleMapper(seriesModel, stylePath) {\n  var styleMapper = seriesModel.visualStyleMapper || defaultStyleMappers[stylePath];\n\n  if (!styleMapper) {\n    console.warn(\"Unkown style type '\" + stylePath + \"'.\");\n    return defaultStyleMappers.itemStyle;\n  }\n\n  return styleMapper;\n}\n\nfunction getDefaultColorKey(seriesModel, stylePath) {\n  var colorKey = seriesModel.visualDrawType || defaultColorKey[stylePath];\n\n  if (!colorKey) {\n    console.warn(\"Unkown style type '\" + stylePath + \"'.\");\n    return 'fill';\n  }\n\n  return colorKey;\n}\n\nvar seriesStyleTask = {\n  createOnAllSeries: true,\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    var data = seriesModel.getData();\n    var stylePath = seriesModel.visualStyleAccessPath || 'itemStyle';\n    var styleModel = seriesModel.getModel(stylePath);\n    var getStyle = getStyleMapper(seriesModel, stylePath);\n    var globalStyle = getStyle(styleModel);\n    var decalOption = styleModel.getShallow('decal');\n\n    if (decalOption) {\n      data.setVisual('decal', decalOption);\n      decalOption.dirty = true;\n    }\n\n    var colorKey = getDefaultColorKey(seriesModel, stylePath);\n    var color = globalStyle[colorKey];\n    var colorCallback = isFunction(color) ? color : null;\n\n    if (!globalStyle[colorKey] || colorCallback) {\n      globalStyle[colorKey] = seriesModel.getColorFromPalette(seriesModel.name, null, ecModel.getSeriesCount());\n      data.setVisual('colorFromPalette', true);\n    }\n\n    data.setVisual('style', globalStyle);\n    data.setVisual('drawType', colorKey);\n\n    if (!ecModel.isSeriesFiltered(seriesModel) && colorCallback) {\n      data.setVisual('colorFromPalette', false);\n      return {\n        dataEach: function (data, idx) {\n          var dataParams = seriesModel.getDataParams(idx);\n          var itemStyle = extend({}, globalStyle);\n          itemStyle[colorKey] = colorCallback(dataParams);\n          data.setItemVisual(idx, 'style', itemStyle);\n        }\n      };\n    }\n  }\n};\nvar sharedModel = new Model();\nvar dataStyleTask = {\n  createOnAllSeries: true,\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    if (seriesModel.ignoreStyleOnData || ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var stylePath = seriesModel.visualStyleAccessPath || 'itemStyle';\n    var getStyle = getStyleMapper(seriesModel, stylePath);\n    var colorKey = data.getVisual('drawType');\n    return {\n      dataEach: data.hasItemOption ? function (data, idx) {\n        var rawItem = data.getRawDataItem(idx);\n\n        if (rawItem && rawItem[stylePath]) {\n          sharedModel.option = rawItem[stylePath];\n          var style = getStyle(sharedModel);\n          var existsStyle = data.ensureUniqueItemVisual(idx, 'style');\n          extend(existsStyle, style);\n\n          if (sharedModel.option.decal) {\n            data.setItemVisual(idx, 'decal', sharedModel.option.decal);\n            sharedModel.option.decal.dirty = true;\n          }\n\n          if (colorKey in style) {\n            data.setItemVisual(idx, 'colorFromPalette', false);\n          }\n        }\n      } : null\n    };\n  }\n};\nvar dataColorPaletteTask = {\n  performRawSeries: true,\n  overallReset: function (ecModel) {\n    var paletteScopeGroupByType = createHashMap();\n    ecModel.eachSeries(function (seriesModel) {\n      if (!seriesModel.useColorPaletteOnData) {\n        return;\n      }\n\n      var colorScope = paletteScopeGroupByType.get(seriesModel.type);\n\n      if (!colorScope) {\n        colorScope = {};\n        paletteScopeGroupByType.set(seriesModel.type, colorScope);\n      }\n\n      inner(seriesModel).scope = colorScope;\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      if (!seriesModel.useColorPaletteOnData || ecModel.isSeriesFiltered(seriesModel)) {\n        return;\n      }\n\n      var dataAll = seriesModel.getRawData();\n      var idxMap = {};\n      var data = seriesModel.getData();\n      var colorScope = inner(seriesModel).scope;\n      var stylePath = seriesModel.visualStyleAccessPath || 'itemStyle';\n      var colorKey = getDefaultColorKey(seriesModel, stylePath);\n      data.each(function (idx) {\n        var rawIdx = data.getRawIndex(idx);\n        idxMap[rawIdx] = idx;\n      });\n      dataAll.each(function (rawIdx) {\n        var idx = idxMap[rawIdx];\n        var fromPalette = data.getItemVisual(idx, 'colorFromPalette');\n\n        if (fromPalette) {\n          var itemStyle = data.ensureUniqueItemVisual(idx, 'style');\n          var name_1 = dataAll.getName(rawIdx) || rawIdx + '';\n          var dataCount = dataAll.count();\n          itemStyle[colorKey] = seriesModel.getColorFromPalette(name_1, colorScope, dataCount);\n        }\n      });\n    });\n  }\n};\nexport { seriesStyleTask, dataStyleTask, dataColorPaletteTask };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../util/graphic';\nvar PI = Math.PI;\nexport default function defaultLoading(api, opts) {\n  opts = opts || {};\n  zrUtil.defaults(opts, {\n    text: 'loading',\n    textColor: '#000',\n    fontSize: 12,\n    fontWeight: 'normal',\n    fontStyle: 'normal',\n    fontFamily: 'sans-serif',\n    maskColor: 'rgba(255, 255, 255, 0.8)',\n    showSpinner: true,\n    color: '#5470c6',\n    spinnerRadius: 10,\n    lineWidth: 5,\n    zlevel: 0\n  });\n  var group = new graphic.Group();\n  var mask = new graphic.Rect({\n    style: {\n      fill: opts.maskColor\n    },\n    zlevel: opts.zlevel,\n    z: 10000\n  });\n  group.add(mask);\n  var textContent = new graphic.Text({\n    style: {\n      text: opts.text,\n      fill: opts.textColor,\n      fontSize: opts.fontSize,\n      fontWeight: opts.fontWeight,\n      fontStyle: opts.fontStyle,\n      fontFamily: opts.fontFamily\n    }\n  });\n  var labelRect = new graphic.Rect({\n    style: {\n      fill: 'none'\n    },\n    textContent: textContent,\n    textConfig: {\n      position: 'right',\n      distance: 10\n    },\n    zlevel: opts.zlevel,\n    z: 10001\n  });\n  group.add(labelRect);\n  var arc;\n\n  if (opts.showSpinner) {\n    arc = new graphic.Arc({\n      shape: {\n        startAngle: -PI / 2,\n        endAngle: -PI / 2 + 0.1,\n        r: opts.spinnerRadius\n      },\n      style: {\n        stroke: opts.color,\n        lineCap: 'round',\n        lineWidth: opts.lineWidth\n      },\n      zlevel: opts.zlevel,\n      z: 10001\n    });\n    arc.animateShape(true).when(1000, {\n      endAngle: PI * 3 / 2\n    }).start('circularInOut');\n    arc.animateShape(true).when(1000, {\n      startAngle: PI * 3 / 2\n    }).delay(300).start('circularInOut');\n    group.add(arc);\n  }\n\n  group.resize = function () {\n    var textWidth = textContent.getBoundingRect().width;\n    var r = opts.showSpinner ? opts.spinnerRadius : 0;\n    var cx = (api.getWidth() - r * 2 - (opts.showSpinner && textWidth ? 10 : 0) - textWidth) / 2 - (opts.showSpinner && textWidth ? 0 : 5 + textWidth / 2) + (opts.showSpinner ? 0 : textWidth / 2) + (textWidth ? 0 : r);\n    var cy = api.getHeight() / 2;\n    opts.showSpinner && arc.setShape({\n      cx: cx,\n      cy: cy\n    });\n    labelRect.setShape({\n      x: cx - r,\n      y: cy - r,\n      width: r * 2,\n      height: r * 2\n    });\n    mask.setShape({\n      x: 0,\n      y: 0,\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n  };\n\n  group.resize();\n  return group;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, map, isFunction, createHashMap, noop, assert } from 'zrender/lib/core/util';\nimport { createTask } from './task';\nimport { getUID } from '../util/component';\nimport GlobalModel from '../model/Global';\nimport ExtensionAPI from './ExtensionAPI';\nimport { normalizeToArray } from '../util/model';\n;\n\nvar Scheduler = function () {\n  function Scheduler(ecInstance, api, dataProcessorHandlers, visualHandlers) {\n    this._stageTaskMap = createHashMap();\n    this.ecInstance = ecInstance;\n    this.api = api;\n    dataProcessorHandlers = this._dataProcessorHandlers = dataProcessorHandlers.slice();\n    visualHandlers = this._visualHandlers = visualHandlers.slice();\n    this._allHandlers = dataProcessorHandlers.concat(visualHandlers);\n  }\n\n  Scheduler.prototype.restoreData = function (ecModel, payload) {\n    ecModel.restoreData(payload);\n\n    this._stageTaskMap.each(function (taskRecord) {\n      var overallTask = taskRecord.overallTask;\n      overallTask && overallTask.dirty();\n    });\n  };\n\n  Scheduler.prototype.getPerformArgs = function (task, isBlock) {\n    if (!task.__pipeline) {\n      return;\n    }\n\n    var pipeline = this._pipelineMap.get(task.__pipeline.id);\n\n    var pCtx = pipeline.context;\n    var incremental = !isBlock && pipeline.progressiveEnabled && (!pCtx || pCtx.progressiveRender) && task.__idxInPipeline > pipeline.blockIndex;\n    var step = incremental ? pipeline.step : null;\n    var modDataCount = pCtx && pCtx.modDataCount;\n    var modBy = modDataCount != null ? Math.ceil(modDataCount / step) : null;\n    return {\n      step: step,\n      modBy: modBy,\n      modDataCount: modDataCount\n    };\n  };\n\n  Scheduler.prototype.getPipeline = function (pipelineId) {\n    return this._pipelineMap.get(pipelineId);\n  };\n\n  Scheduler.prototype.updateStreamModes = function (seriesModel, view) {\n    var pipeline = this._pipelineMap.get(seriesModel.uid);\n\n    var data = seriesModel.getData();\n    var dataLen = data.count();\n    var progressiveRender = pipeline.progressiveEnabled && view.incrementalPrepareRender && dataLen >= pipeline.threshold;\n    var large = seriesModel.get('large') && dataLen >= seriesModel.get('largeThreshold');\n    var modDataCount = seriesModel.get('progressiveChunkMode') === 'mod' ? dataLen : null;\n    seriesModel.pipelineContext = pipeline.context = {\n      progressiveRender: progressiveRender,\n      modDataCount: modDataCount,\n      large: large\n    };\n  };\n\n  Scheduler.prototype.restorePipelines = function (ecModel) {\n    var scheduler = this;\n    var pipelineMap = scheduler._pipelineMap = createHashMap();\n    ecModel.eachSeries(function (seriesModel) {\n      var progressive = seriesModel.getProgressive();\n      var pipelineId = seriesModel.uid;\n      pipelineMap.set(pipelineId, {\n        id: pipelineId,\n        head: null,\n        tail: null,\n        threshold: seriesModel.getProgressiveThreshold(),\n        progressiveEnabled: progressive && !(seriesModel.preventIncremental && seriesModel.preventIncremental()),\n        blockIndex: -1,\n        step: Math.round(progressive || 700),\n        count: 0\n      });\n\n      scheduler._pipe(seriesModel, seriesModel.dataTask);\n    });\n  };\n\n  Scheduler.prototype.prepareStageTasks = function () {\n    var stageTaskMap = this._stageTaskMap;\n    var ecModel = this.api.getModel();\n    var api = this.api;\n    each(this._allHandlers, function (handler) {\n      var record = stageTaskMap.get(handler.uid) || stageTaskMap.set(handler.uid, {});\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = '\"reset\" and \"overallReset\" must not be both specified.';\n      }\n\n      assert(!(handler.reset && handler.overallReset), errMsg);\n      handler.reset && this._createSeriesStageTask(handler, record, ecModel, api);\n      handler.overallReset && this._createOverallStageTask(handler, record, ecModel, api);\n    }, this);\n  };\n\n  Scheduler.prototype.prepareView = function (view, model, ecModel, api) {\n    var renderTask = view.renderTask;\n    var context = renderTask.context;\n    context.model = model;\n    context.ecModel = ecModel;\n    context.api = api;\n    renderTask.__block = !view.incrementalPrepareRender;\n\n    this._pipe(model, renderTask);\n  };\n\n  Scheduler.prototype.performDataProcessorTasks = function (ecModel, payload) {\n    this._performStageTasks(this._dataProcessorHandlers, ecModel, payload, {\n      block: true\n    });\n  };\n\n  Scheduler.prototype.performVisualTasks = function (ecModel, payload, opt) {\n    this._performStageTasks(this._visualHandlers, ecModel, payload, opt);\n  };\n\n  Scheduler.prototype._performStageTasks = function (stageHandlers, ecModel, payload, opt) {\n    opt = opt || {};\n    var unfinished = false;\n    var scheduler = this;\n    each(stageHandlers, function (stageHandler, idx) {\n      if (opt.visualType && opt.visualType !== stageHandler.visualType) {\n        return;\n      }\n\n      var stageHandlerRecord = scheduler._stageTaskMap.get(stageHandler.uid);\n\n      var seriesTaskMap = stageHandlerRecord.seriesTaskMap;\n      var overallTask = stageHandlerRecord.overallTask;\n\n      if (overallTask) {\n        var overallNeedDirty_1;\n        var agentStubMap = overallTask.agentStubMap;\n        agentStubMap.each(function (stub) {\n          if (needSetDirty(opt, stub)) {\n            stub.dirty();\n            overallNeedDirty_1 = true;\n          }\n        });\n        overallNeedDirty_1 && overallTask.dirty();\n        scheduler.updatePayload(overallTask, payload);\n        var performArgs_1 = scheduler.getPerformArgs(overallTask, opt.block);\n        agentStubMap.each(function (stub) {\n          stub.perform(performArgs_1);\n        });\n\n        if (overallTask.perform(performArgs_1)) {\n          unfinished = true;\n        }\n      } else if (seriesTaskMap) {\n        seriesTaskMap.each(function (task, pipelineId) {\n          if (needSetDirty(opt, task)) {\n            task.dirty();\n          }\n\n          var performArgs = scheduler.getPerformArgs(task, opt.block);\n          performArgs.skip = !stageHandler.performRawSeries && ecModel.isSeriesFiltered(task.context.model);\n          scheduler.updatePayload(task, payload);\n\n          if (task.perform(performArgs)) {\n            unfinished = true;\n          }\n        });\n      }\n    });\n\n    function needSetDirty(opt, task) {\n      return opt.setDirty && (!opt.dirtyMap || opt.dirtyMap.get(task.__pipeline.id));\n    }\n\n    this.unfinished = unfinished || this.unfinished;\n  };\n\n  Scheduler.prototype.performSeriesTasks = function (ecModel) {\n    var unfinished;\n    ecModel.eachSeries(function (seriesModel) {\n      unfinished = seriesModel.dataTask.perform() || unfinished;\n    });\n    this.unfinished = unfinished || this.unfinished;\n  };\n\n  Scheduler.prototype.plan = function () {\n    this._pipelineMap.each(function (pipeline) {\n      var task = pipeline.tail;\n\n      do {\n        if (task.__block) {\n          pipeline.blockIndex = task.__idxInPipeline;\n          break;\n        }\n\n        task = task.getUpstream();\n      } while (task);\n    });\n  };\n\n  Scheduler.prototype.updatePayload = function (task, payload) {\n    payload !== 'remain' && (task.context.payload = payload);\n  };\n\n  Scheduler.prototype._createSeriesStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\n    var scheduler = this;\n    var oldSeriesTaskMap = stageHandlerRecord.seriesTaskMap;\n    var newSeriesTaskMap = stageHandlerRecord.seriesTaskMap = createHashMap();\n    var seriesType = stageHandler.seriesType;\n    var getTargetSeries = stageHandler.getTargetSeries;\n\n    if (stageHandler.createOnAllSeries) {\n      ecModel.eachRawSeries(create);\n    } else if (seriesType) {\n      ecModel.eachRawSeriesByType(seriesType, create);\n    } else if (getTargetSeries) {\n      getTargetSeries(ecModel, api).each(create);\n    }\n\n    function create(seriesModel) {\n      var pipelineId = seriesModel.uid;\n      var task = newSeriesTaskMap.set(pipelineId, oldSeriesTaskMap && oldSeriesTaskMap.get(pipelineId) || createTask({\n        plan: seriesTaskPlan,\n        reset: seriesTaskReset,\n        count: seriesTaskCount\n      }));\n      task.context = {\n        model: seriesModel,\n        ecModel: ecModel,\n        api: api,\n        useClearVisual: stageHandler.isVisual && !stageHandler.isLayout,\n        plan: stageHandler.plan,\n        reset: stageHandler.reset,\n        scheduler: scheduler\n      };\n\n      scheduler._pipe(seriesModel, task);\n    }\n  };\n\n  Scheduler.prototype._createOverallStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\n    var scheduler = this;\n    var overallTask = stageHandlerRecord.overallTask = stageHandlerRecord.overallTask || createTask({\n      reset: overallTaskReset\n    });\n    overallTask.context = {\n      ecModel: ecModel,\n      api: api,\n      overallReset: stageHandler.overallReset,\n      scheduler: scheduler\n    };\n    var oldAgentStubMap = overallTask.agentStubMap;\n    var newAgentStubMap = overallTask.agentStubMap = createHashMap();\n    var seriesType = stageHandler.seriesType;\n    var getTargetSeries = stageHandler.getTargetSeries;\n    var overallProgress = true;\n    var shouldOverallTaskDirty = false;\n    var errMsg = '';\n\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = '\"createOnAllSeries\" do not supported for \"overallReset\", ' + 'becuase it will block all streams.';\n    }\n\n    assert(!stageHandler.createOnAllSeries, errMsg);\n\n    if (seriesType) {\n      ecModel.eachRawSeriesByType(seriesType, createStub);\n    } else if (getTargetSeries) {\n      getTargetSeries(ecModel, api).each(createStub);\n    } else {\n      overallProgress = false;\n      each(ecModel.getSeries(), createStub);\n    }\n\n    function createStub(seriesModel) {\n      var pipelineId = seriesModel.uid;\n      var stub = newAgentStubMap.set(pipelineId, oldAgentStubMap && oldAgentStubMap.get(pipelineId) || (shouldOverallTaskDirty = true, createTask({\n        reset: stubReset,\n        onDirty: stubOnDirty\n      })));\n      stub.context = {\n        model: seriesModel,\n        overallProgress: overallProgress\n      };\n      stub.agent = overallTask;\n      stub.__block = overallProgress;\n\n      scheduler._pipe(seriesModel, stub);\n    }\n\n    if (shouldOverallTaskDirty) {\n      overallTask.dirty();\n    }\n  };\n\n  Scheduler.prototype._pipe = function (seriesModel, task) {\n    var pipelineId = seriesModel.uid;\n\n    var pipeline = this._pipelineMap.get(pipelineId);\n\n    !pipeline.head && (pipeline.head = task);\n    pipeline.tail && pipeline.tail.pipe(task);\n    pipeline.tail = task;\n    task.__idxInPipeline = pipeline.count++;\n    task.__pipeline = pipeline;\n  };\n\n  Scheduler.wrapStageHandler = function (stageHandler, visualType) {\n    if (isFunction(stageHandler)) {\n      stageHandler = {\n        overallReset: stageHandler,\n        seriesType: detectSeriseType(stageHandler)\n      };\n    }\n\n    stageHandler.uid = getUID('stageHandler');\n    visualType && (stageHandler.visualType = visualType);\n    return stageHandler;\n  };\n\n  ;\n  return Scheduler;\n}();\n\nfunction overallTaskReset(context) {\n  context.overallReset(context.ecModel, context.api, context.payload);\n}\n\nfunction stubReset(context) {\n  return context.overallProgress && stubProgress;\n}\n\nfunction stubProgress() {\n  this.agent.dirty();\n  this.getDownstream().dirty();\n}\n\nfunction stubOnDirty() {\n  this.agent && this.agent.dirty();\n}\n\nfunction seriesTaskPlan(context) {\n  return context.plan ? context.plan(context.model, context.ecModel, context.api, context.payload) : null;\n}\n\nfunction seriesTaskReset(context) {\n  if (context.useClearVisual) {\n    context.data.clearAllVisual();\n  }\n\n  var resetDefines = context.resetDefines = normalizeToArray(context.reset(context.model, context.ecModel, context.api, context.payload));\n  return resetDefines.length > 1 ? map(resetDefines, function (v, idx) {\n    return makeSeriesTaskProgress(idx);\n  }) : singleSeriesTaskProgress;\n}\n\nvar singleSeriesTaskProgress = makeSeriesTaskProgress(0);\n\nfunction makeSeriesTaskProgress(resetDefineIdx) {\n  return function (params, context) {\n    var data = context.data;\n    var resetDefine = context.resetDefines[resetDefineIdx];\n\n    if (resetDefine && resetDefine.dataEach) {\n      for (var i = params.start; i < params.end; i++) {\n        resetDefine.dataEach(data, i);\n      }\n    } else if (resetDefine && resetDefine.progress) {\n      resetDefine.progress(params, data);\n    }\n  };\n}\n\nfunction seriesTaskCount(context) {\n  return context.data.count();\n}\n\nfunction detectSeriseType(legacyFunc) {\n  seriesType = null;\n\n  try {\n    legacyFunc(ecModelMock, apiMock);\n  } catch (e) {}\n\n  return seriesType;\n}\n\nvar ecModelMock = {};\nvar apiMock = {};\nvar seriesType;\nmockMethods(ecModelMock, GlobalModel);\nmockMethods(apiMock, ExtensionAPI);\n\necModelMock.eachSeriesByType = ecModelMock.eachRawSeriesByType = function (type) {\n  seriesType = type;\n};\n\necModelMock.eachComponent = function (cond) {\n  if (cond.mainType === 'series' && cond.subType) {\n    seriesType = cond.subType;\n  }\n};\n\nfunction mockMethods(target, Clz) {\n  for (var name_1 in Clz.prototype) {\n    target[name_1] = noop;\n  }\n}\n\nexport default Scheduler;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar colorAll = ['#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'];\nexport default {\n  color: colorAll,\n  colorLayer: [['#37A2DA', '#ffd85c', '#fd7b5f'], ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'], ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'], colorAll]\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar contrastColor = '#B9B8CE';\nvar backgroundColor = '#100C2A';\n\nvar axisCommon = function () {\n  return {\n    axisLine: {\n      lineStyle: {\n        color: contrastColor\n      }\n    },\n    splitLine: {\n      lineStyle: {\n        color: '#484753'\n      }\n    },\n    splitArea: {\n      areaStyle: {\n        color: ['rgba(255,255,255,0.02)', 'rgba(255,255,255,0.05)']\n      }\n    },\n    minorSplitLine: {\n      lineStyle: {\n        color: '#20203B'\n      }\n    }\n  };\n};\n\nvar colorPalette = ['#4992ff', '#7cffb2', '#fddd60', '#ff6e76', '#58d9f9', '#05c091', '#ff8a45', '#8d48e3', '#dd79ff'];\nvar theme = {\n  darkMode: true,\n  color: colorPalette,\n  backgroundColor: backgroundColor,\n  axisPointer: {\n    lineStyle: {\n      color: '#817f91'\n    },\n    crossStyle: {\n      color: '#817f91'\n    },\n    label: {\n      color: '#fff'\n    }\n  },\n  legend: {\n    textStyle: {\n      color: contrastColor\n    }\n  },\n  textStyle: {\n    color: contrastColor\n  },\n  title: {\n    textStyle: {\n      color: '#EEF1FA'\n    },\n    subtextStyle: {\n      color: '#B9B8CE'\n    }\n  },\n  toolbox: {\n    iconStyle: {\n      borderColor: contrastColor\n    }\n  },\n  dataZoom: {\n    borderColor: '#71708A',\n    textStyle: {\n      color: contrastColor\n    },\n    brushStyle: {\n      color: 'rgba(135,163,206,0.3)'\n    },\n    handleStyle: {\n      color: '#353450',\n      borderColor: '#C5CBE3'\n    },\n    moveHandleStyle: {\n      color: '#B0B6C3',\n      opacity: 0.3\n    },\n    fillerColor: 'rgba(135,163,206,0.2)',\n    emphasis: {\n      handleStyle: {\n        borderColor: '#91B7F2',\n        color: '#4D587D'\n      },\n      moveHandleStyle: {\n        color: '#636D9A',\n        opacity: 0.7\n      }\n    },\n    dataBackground: {\n      lineStyle: {\n        color: '#71708A',\n        width: 1\n      },\n      areaStyle: {\n        color: '#71708A'\n      }\n    },\n    selectedDataBackground: {\n      lineStyle: {\n        color: '#87A3CE'\n      },\n      areaStyle: {\n        color: '#87A3CE'\n      }\n    }\n  },\n  visualMap: {\n    textStyle: {\n      color: contrastColor\n    }\n  },\n  timeline: {\n    lineStyle: {\n      color: contrastColor\n    },\n    label: {\n      color: contrastColor\n    },\n    controlStyle: {\n      color: contrastColor,\n      borderColor: contrastColor\n    }\n  },\n  calendar: {\n    itemStyle: {\n      color: backgroundColor\n    },\n    dayLabel: {\n      color: contrastColor\n    },\n    monthLabel: {\n      color: contrastColor\n    },\n    yearLabel: {\n      color: contrastColor\n    }\n  },\n  timeAxis: axisCommon(),\n  logAxis: axisCommon(),\n  valueAxis: axisCommon(),\n  categoryAxis: axisCommon(),\n  line: {\n    symbol: 'circle'\n  },\n  graph: {\n    color: colorPalette\n  },\n  gauge: {\n    title: {\n      color: contrastColor\n    },\n    axisLine: {\n      lineStyle: {\n        color: [[1, 'rgba(207,212,219,0.2)']]\n      }\n    },\n    axisLabel: {\n      color: contrastColor\n    },\n    detail: {\n      color: '#EEF1FA'\n    }\n  },\n  candlestick: {\n    itemStyle: {\n      color: '#f64e56',\n      color0: '#54ea92',\n      borderColor: '#f64e56',\n      borderColor0: '#54ea92'\n    }\n  }\n};\ntheme.categoryAxis.splitLine.show = false;\nexport default theme;","import { isString } from '../core/util';\nexport function parseXML(svg) {\n    if (isString(svg)) {\n        var parser = new DOMParser();\n        svg = parser.parseFromString(svg, 'text/xml');\n    }\n    var svgNode = svg;\n    if (svgNode.nodeType === 9) {\n        svgNode = svgNode.firstChild;\n    }\n    while (svgNode.nodeName.toLowerCase() !== 'svg' || svgNode.nodeType !== 1) {\n        svgNode = svgNode.nextSibling;\n    }\n    return svgNode;\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, isString, isArray, each, assert } from 'zrender/lib/core/util';\nimport { parseXML } from 'zrender/lib/tool/parseXML';\nvar storage = createHashMap();\nexport default {\n  registerMap: function (mapName, rawDef, rawSpecialAreas) {\n    var records;\n\n    if (isArray(rawDef)) {\n      records = rawDef;\n    } else if (rawDef.svg) {\n      records = [{\n        type: 'svg',\n        source: rawDef.svg,\n        specialAreas: rawDef.specialAreas\n      }];\n    } else {\n      var geoSource = rawDef.geoJson || rawDef.geoJSON;\n\n      if (geoSource && !rawDef.features) {\n        rawSpecialAreas = rawDef.specialAreas;\n        rawDef = geoSource;\n      }\n\n      records = [{\n        type: 'geoJSON',\n        source: rawDef,\n        specialAreas: rawSpecialAreas\n      }];\n    }\n\n    each(records, function (record) {\n      var type = record.type;\n      type === 'geoJson' && (type = record.type = 'geoJSON');\n      var parse = parsers[type];\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(parse, 'Illegal map type: ' + type);\n      }\n\n      parse(record);\n    });\n    return storage.set(mapName, records);\n  },\n  retrieveMap: function (mapName) {\n    return storage.get(mapName);\n  }\n};\nvar parsers = {\n  geoJSON: function (record) {\n    var source = record.source;\n    record.geoJSON = !isString(source) ? source : typeof JSON !== 'undefined' && JSON.parse ? JSON.parse(source) : new Function('return (' + source + ');')();\n  },\n  svg: function (record) {\n    record.svgXML = parseXML(record.source);\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parseClassType } from './clazz';\n\nvar ECEventProcessor = function () {\n  function ECEventProcessor() {}\n\n  ECEventProcessor.prototype.normalizeQuery = function (query) {\n    var cptQuery = {};\n    var dataQuery = {};\n    var otherQuery = {};\n\n    if (zrUtil.isString(query)) {\n      var condCptType = parseClassType(query);\n      cptQuery.mainType = condCptType.main || null;\n      cptQuery.subType = condCptType.sub || null;\n    } else {\n      var suffixes_1 = ['Index', 'Name', 'Id'];\n      var dataKeys_1 = {\n        name: 1,\n        dataIndex: 1,\n        dataType: 1\n      };\n      zrUtil.each(query, function (val, key) {\n        var reserved = false;\n\n        for (var i = 0; i < suffixes_1.length; i++) {\n          var propSuffix = suffixes_1[i];\n          var suffixPos = key.lastIndexOf(propSuffix);\n\n          if (suffixPos > 0 && suffixPos === key.length - propSuffix.length) {\n            var mainType = key.slice(0, suffixPos);\n\n            if (mainType !== 'data') {\n              cptQuery.mainType = mainType;\n              cptQuery[propSuffix.toLowerCase()] = val;\n              reserved = true;\n            }\n          }\n        }\n\n        if (dataKeys_1.hasOwnProperty(key)) {\n          dataQuery[key] = val;\n          reserved = true;\n        }\n\n        if (!reserved) {\n          otherQuery[key] = val;\n        }\n      });\n    }\n\n    return {\n      cptQuery: cptQuery,\n      dataQuery: dataQuery,\n      otherQuery: otherQuery\n    };\n  };\n\n  ECEventProcessor.prototype.filter = function (eventType, query) {\n    var eventInfo = this.eventInfo;\n\n    if (!eventInfo) {\n      return true;\n    }\n\n    var targetEl = eventInfo.targetEl;\n    var packedEvent = eventInfo.packedEvent;\n    var model = eventInfo.model;\n    var view = eventInfo.view;\n\n    if (!model || !view) {\n      return true;\n    }\n\n    var cptQuery = query.cptQuery;\n    var dataQuery = query.dataQuery;\n    return check(cptQuery, model, 'mainType') && check(cptQuery, model, 'subType') && check(cptQuery, model, 'index', 'componentIndex') && check(cptQuery, model, 'name') && check(cptQuery, model, 'id') && check(dataQuery, packedEvent, 'name') && check(dataQuery, packedEvent, 'dataIndex') && check(dataQuery, packedEvent, 'dataType') && (!view.filterForExposedEvent || view.filterForExposedEvent(eventType, query.otherQuery, targetEl, packedEvent));\n\n    function check(query, host, prop, propOnHost) {\n      return query[prop] == null || host[propOnHost || prop] === query[prop];\n    }\n  };\n\n  ECEventProcessor.prototype.afterTrigger = function () {\n    this.eventInfo = null;\n  };\n\n  return ECEventProcessor;\n}();\n\nexport { ECEventProcessor };\n;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isFunction } from 'zrender/lib/core/util';\nvar seriesSymbolTask = {\n  createOnAllSeries: true,\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    var data = seriesModel.getData();\n\n    if (seriesModel.legendSymbol) {\n      data.setVisual('legendSymbol', seriesModel.legendSymbol);\n    }\n\n    if (!seriesModel.hasSymbolVisual) {\n      return;\n    }\n\n    var symbolType = seriesModel.get('symbol');\n    var symbolSize = seriesModel.get('symbolSize');\n    var keepAspect = seriesModel.get('symbolKeepAspect');\n    var symbolRotate = seriesModel.get('symbolRotate');\n    var hasSymbolTypeCallback = isFunction(symbolType);\n    var hasSymbolSizeCallback = isFunction(symbolSize);\n    var hasSymbolRotateCallback = isFunction(symbolRotate);\n    var hasCallback = hasSymbolTypeCallback || hasSymbolSizeCallback || hasSymbolRotateCallback;\n    var seriesSymbol = !hasSymbolTypeCallback && symbolType ? symbolType : seriesModel.defaultSymbol;\n    var seriesSymbolSize = !hasSymbolSizeCallback ? symbolSize : null;\n    var seriesSymbolRotate = !hasSymbolRotateCallback ? symbolRotate : null;\n    data.setVisual({\n      legendSymbol: seriesModel.legendSymbol || seriesSymbol,\n      symbol: seriesSymbol,\n      symbolSize: seriesSymbolSize,\n      symbolKeepAspect: keepAspect,\n      symbolRotate: seriesSymbolRotate\n    });\n\n    if (ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    function dataEach(data, idx) {\n      var rawValue = seriesModel.getRawValue(idx);\n      var params = seriesModel.getDataParams(idx);\n      hasSymbolTypeCallback && data.setItemVisual(idx, 'symbol', symbolType(rawValue, params));\n      hasSymbolSizeCallback && data.setItemVisual(idx, 'symbolSize', symbolSize(rawValue, params));\n      hasSymbolRotateCallback && data.setItemVisual(idx, 'symbolRotate', symbolRotate(rawValue, params));\n    }\n\n    return {\n      dataEach: hasCallback ? dataEach : null\n    };\n  }\n};\nvar dataSymbolTask = {\n  createOnAllSeries: true,\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    if (!seriesModel.hasSymbolVisual) {\n      return;\n    }\n\n    if (ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n\n    function dataEach(data, idx) {\n      var itemModel = data.getItemModel(idx);\n      var itemSymbolType = itemModel.getShallow('symbol', true);\n      var itemSymbolSize = itemModel.getShallow('symbolSize', true);\n      var itemSymbolRotate = itemModel.getShallow('symbolRotate', true);\n      var itemSymbolKeepAspect = itemModel.getShallow('symbolKeepAspect', true);\n\n      if (itemSymbolType != null) {\n        data.setItemVisual(idx, 'symbol', itemSymbolType);\n      }\n\n      if (itemSymbolSize != null) {\n        data.setItemVisual(idx, 'symbolSize', itemSymbolSize);\n      }\n\n      if (itemSymbolRotate != null) {\n        data.setItemVisual(idx, 'symbolRotate', itemSymbolRotate);\n      }\n\n      if (itemSymbolKeepAspect != null) {\n        data.setItemVisual(idx, 'symbolKeepAspect', itemSymbolKeepAspect);\n      }\n    }\n\n    return {\n      dataEach: data.hasItemOption ? dataEach : null\n    };\n  }\n};\nexport { seriesSymbolTask, dataSymbolTask };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function getItemVisualFromData(data, dataIndex, key) {\n  switch (key) {\n    case 'color':\n      var style = data.getItemVisual(dataIndex, 'style');\n      return style[data.getVisual('drawType')];\n\n    case 'opacity':\n      return data.getItemVisual(dataIndex, 'style').opacity;\n\n    case 'symbol':\n    case 'symbolSize':\n    case 'liftZ':\n      return data.getItemVisual(dataIndex, key);\n\n    default:\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn(\"Unknown visual type \" + key);\n      }\n\n  }\n}\nexport function getVisualFromData(data, key) {\n  switch (key) {\n    case 'color':\n      var style = data.getVisual('style');\n      return style[data.getVisual('drawType')];\n\n    case 'opacity':\n      return data.getVisual('style').opacity;\n\n    case 'symbol':\n    case 'symbolSize':\n    case 'liftZ':\n      return data.getVisual(key);\n\n    default:\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn(\"Unknown visual type \" + key);\n      }\n\n  }\n}\nexport function setItemVisualFromData(data, dataIndex, key, value) {\n  switch (key) {\n    case 'color':\n      var style = data.ensureUniqueItemVisual(dataIndex, 'style');\n      style[data.getVisual('drawType')] = value;\n      data.setItemVisual(dataIndex, 'colorFromPalette', false);\n      break;\n\n    case 'opacity':\n      data.ensureUniqueItemVisual(dataIndex, 'style').opacity = value;\n      break;\n\n    case 'symbol':\n    case 'symbolSize':\n    case 'liftZ':\n      data.setItemVisual(dataIndex, key, value);\n      break;\n\n    default:\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn(\"Unknown visual type \" + key);\n      }\n\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { Point, Path, Polyline } from '../util/graphic';\nimport PathProxy from 'zrender/lib/core/PathProxy';\nimport { normalizeRadian } from 'zrender/lib/contain/util';\nimport { cubicProjectPoint, quadraticProjectPoint } from 'zrender/lib/core/curve';\nimport { defaults, retrieve2 } from 'zrender/lib/core/util';\nimport { invert } from 'zrender/lib/core/matrix';\nimport * as vector from 'zrender/lib/core/vector';\nimport { DISPLAY_STATES, SPECIAL_STATES } from '../util/states';\nvar PI2 = Math.PI * 2;\nvar CMD = PathProxy.CMD;\nvar DEFAULT_SEARCH_SPACE = ['top', 'right', 'bottom', 'left'];\n\nfunction getCandidateAnchor(pos, distance, rect, outPt, outDir) {\n  var width = rect.width;\n  var height = rect.height;\n\n  switch (pos) {\n    case 'top':\n      outPt.set(rect.x + width / 2, rect.y - distance);\n      outDir.set(0, -1);\n      break;\n\n    case 'bottom':\n      outPt.set(rect.x + width / 2, rect.y + height + distance);\n      outDir.set(0, 1);\n      break;\n\n    case 'left':\n      outPt.set(rect.x - distance, rect.y + height / 2);\n      outDir.set(-1, 0);\n      break;\n\n    case 'right':\n      outPt.set(rect.x + width + distance, rect.y + height / 2);\n      outDir.set(1, 0);\n      break;\n  }\n}\n\nfunction projectPointToArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y, out) {\n  x -= cx;\n  y -= cy;\n  var d = Math.sqrt(x * x + y * y);\n  x /= d;\n  y /= d;\n  var ox = x * r + cx;\n  var oy = y * r + cy;\n\n  if (Math.abs(startAngle - endAngle) % PI2 < 1e-4) {\n    out[0] = ox;\n    out[1] = oy;\n    return d - r;\n  }\n\n  if (anticlockwise) {\n    var tmp = startAngle;\n    startAngle = normalizeRadian(endAngle);\n    endAngle = normalizeRadian(tmp);\n  } else {\n    startAngle = normalizeRadian(startAngle);\n    endAngle = normalizeRadian(endAngle);\n  }\n\n  if (startAngle > endAngle) {\n    endAngle += PI2;\n  }\n\n  var angle = Math.atan2(y, x);\n\n  if (angle < 0) {\n    angle += PI2;\n  }\n\n  if (angle >= startAngle && angle <= endAngle || angle + PI2 >= startAngle && angle + PI2 <= endAngle) {\n    out[0] = ox;\n    out[1] = oy;\n    return d - r;\n  }\n\n  var x1 = r * Math.cos(startAngle) + cx;\n  var y1 = r * Math.sin(startAngle) + cy;\n  var x2 = r * Math.cos(endAngle) + cx;\n  var y2 = r * Math.sin(endAngle) + cy;\n  var d1 = (x1 - x) * (x1 - x) + (y1 - y) * (y1 - y);\n  var d2 = (x2 - x) * (x2 - x) + (y2 - y) * (y2 - y);\n\n  if (d1 < d2) {\n    out[0] = x1;\n    out[1] = y1;\n    return Math.sqrt(d1);\n  } else {\n    out[0] = x2;\n    out[1] = y2;\n    return Math.sqrt(d2);\n  }\n}\n\nfunction projectPointToLine(x1, y1, x2, y2, x, y, out, limitToEnds) {\n  var dx = x - x1;\n  var dy = y - y1;\n  var dx1 = x2 - x1;\n  var dy1 = y2 - y1;\n  var lineLen = Math.sqrt(dx1 * dx1 + dy1 * dy1);\n  dx1 /= lineLen;\n  dy1 /= lineLen;\n  var projectedLen = dx * dx1 + dy * dy1;\n  var t = projectedLen / lineLen;\n\n  if (limitToEnds) {\n    t = Math.min(Math.max(t, 0), 1);\n  }\n\n  t *= lineLen;\n  var ox = out[0] = x1 + t * dx1;\n  var oy = out[1] = y1 + t * dy1;\n  return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\n}\n\nfunction projectPointToRect(x1, y1, width, height, x, y, out) {\n  if (width < 0) {\n    x1 = x1 + width;\n    width = -width;\n  }\n\n  if (height < 0) {\n    y1 = y1 + height;\n    height = -height;\n  }\n\n  var x2 = x1 + width;\n  var y2 = y1 + height;\n  var ox = out[0] = Math.min(Math.max(x, x1), x2);\n  var oy = out[1] = Math.min(Math.max(y, y1), y2);\n  return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\n}\n\nvar tmpPt = [];\n\nfunction nearestPointOnRect(pt, rect, out) {\n  var dist = projectPointToRect(rect.x, rect.y, rect.width, rect.height, pt.x, pt.y, tmpPt);\n  out.set(tmpPt[0], tmpPt[1]);\n  return dist;\n}\n\nfunction nearestPointOnPath(pt, path, out) {\n  var xi = 0;\n  var yi = 0;\n  var x0 = 0;\n  var y0 = 0;\n  var x1;\n  var y1;\n  var minDist = Infinity;\n  var data = path.data;\n  var x = pt.x;\n  var y = pt.y;\n\n  for (var i = 0; i < data.length;) {\n    var cmd = data[i++];\n\n    if (i === 1) {\n      xi = data[i];\n      yi = data[i + 1];\n      x0 = xi;\n      y0 = yi;\n    }\n\n    var d = minDist;\n\n    switch (cmd) {\n      case CMD.M:\n        x0 = data[i++];\n        y0 = data[i++];\n        xi = x0;\n        yi = y0;\n        break;\n\n      case CMD.L:\n        d = projectPointToLine(xi, yi, data[i], data[i + 1], x, y, tmpPt, true);\n        xi = data[i++];\n        yi = data[i++];\n        break;\n\n      case CMD.C:\n        d = cubicProjectPoint(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\n        xi = data[i++];\n        yi = data[i++];\n        break;\n\n      case CMD.Q:\n        d = quadraticProjectPoint(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\n        xi = data[i++];\n        yi = data[i++];\n        break;\n\n      case CMD.A:\n        var cx = data[i++];\n        var cy = data[i++];\n        var rx = data[i++];\n        var ry = data[i++];\n        var theta = data[i++];\n        var dTheta = data[i++];\n        i += 1;\n        var anticlockwise = !!(1 - data[i++]);\n        x1 = Math.cos(theta) * rx + cx;\n        y1 = Math.sin(theta) * ry + cy;\n\n        if (i <= 1) {\n          x0 = x1;\n          y0 = y1;\n        }\n\n        var _x = (x - cx) * ry / rx + cx;\n\n        d = projectPointToArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y, tmpPt);\n        xi = Math.cos(theta + dTheta) * rx + cx;\n        yi = Math.sin(theta + dTheta) * ry + cy;\n        break;\n\n      case CMD.R:\n        x0 = xi = data[i++];\n        y0 = yi = data[i++];\n        var width = data[i++];\n        var height = data[i++];\n        d = projectPointToRect(x0, y0, width, height, x, y, tmpPt);\n        break;\n\n      case CMD.Z:\n        d = projectPointToLine(xi, yi, x0, y0, x, y, tmpPt, true);\n        xi = x0;\n        yi = y0;\n        break;\n    }\n\n    if (d < minDist) {\n      minDist = d;\n      out.set(tmpPt[0], tmpPt[1]);\n    }\n  }\n\n  return minDist;\n}\n\nvar pt0 = new Point();\nvar pt1 = new Point();\nvar pt2 = new Point();\nvar dir = new Point();\nvar dir2 = new Point();\nexport function updateLabelLinePoints(target, labelLineModel) {\n  if (!target) {\n    return;\n  }\n\n  var labelLine = target.getTextGuideLine();\n  var label = target.getTextContent();\n\n  if (!(label && labelLine)) {\n    return;\n  }\n\n  var labelGuideConfig = target.textGuideLineConfig || {};\n  var points = [[0, 0], [0, 0], [0, 0]];\n  var searchSpace = labelGuideConfig.candidates || DEFAULT_SEARCH_SPACE;\n  var labelRect = label.getBoundingRect().clone();\n  labelRect.applyTransform(label.getComputedTransform());\n  var minDist = Infinity;\n  var anchorPoint = labelGuideConfig.anchor;\n  var targetTransform = target.getComputedTransform();\n  var targetInversedTransform = targetTransform && invert([], targetTransform);\n  var len = labelLineModel.get('length2') || 0;\n\n  if (anchorPoint) {\n    pt2.copy(anchorPoint);\n  }\n\n  for (var i = 0; i < searchSpace.length; i++) {\n    var candidate = searchSpace[i];\n    getCandidateAnchor(candidate, 0, labelRect, pt0, dir);\n    Point.scaleAndAdd(pt1, pt0, dir, len);\n    pt1.transform(targetInversedTransform);\n    var boundingRect = target.getBoundingRect();\n    var dist = anchorPoint ? anchorPoint.distance(pt1) : target instanceof Path ? nearestPointOnPath(pt1, target.path, pt2) : nearestPointOnRect(pt1, boundingRect, pt2);\n\n    if (dist < minDist) {\n      minDist = dist;\n      pt1.transform(targetTransform);\n      pt2.transform(targetTransform);\n      pt2.toArray(points[0]);\n      pt1.toArray(points[1]);\n      pt0.toArray(points[2]);\n    }\n  }\n\n  limitTurnAngle(points, labelLineModel.get('minTurnAngle'));\n  labelLine.setShape({\n    points: points\n  });\n}\nvar tmpArr = [];\nvar tmpProjPoint = new Point();\nexport function limitTurnAngle(linePoints, minTurnAngle) {\n  if (!(minTurnAngle <= 180 && minTurnAngle > 0)) {\n    return;\n  }\n\n  minTurnAngle = minTurnAngle / 180 * Math.PI;\n  pt0.fromArray(linePoints[0]);\n  pt1.fromArray(linePoints[1]);\n  pt2.fromArray(linePoints[2]);\n  Point.sub(dir, pt0, pt1);\n  Point.sub(dir2, pt2, pt1);\n  var len1 = dir.len();\n  var len2 = dir2.len();\n\n  if (len1 < 1e-3 || len2 < 1e-3) {\n    return;\n  }\n\n  dir.scale(1 / len1);\n  dir2.scale(1 / len2);\n  var angleCos = dir.dot(dir2);\n  var minTurnAngleCos = Math.cos(minTurnAngle);\n\n  if (minTurnAngleCos < angleCos) {\n    var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\n    tmpProjPoint.fromArray(tmpArr);\n    tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI - minTurnAngle));\n    var t = pt2.x !== pt1.x ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x) : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\n\n    if (isNaN(t)) {\n      return;\n    }\n\n    if (t < 0) {\n      Point.copy(tmpProjPoint, pt1);\n    } else if (t > 1) {\n      Point.copy(tmpProjPoint, pt2);\n    }\n\n    tmpProjPoint.toArray(linePoints[1]);\n  }\n}\nexport function limitSurfaceAngle(linePoints, surfaceNormal, maxSurfaceAngle) {\n  if (!(maxSurfaceAngle <= 180 && maxSurfaceAngle > 0)) {\n    return;\n  }\n\n  maxSurfaceAngle = maxSurfaceAngle / 180 * Math.PI;\n  pt0.fromArray(linePoints[0]);\n  pt1.fromArray(linePoints[1]);\n  pt2.fromArray(linePoints[2]);\n  Point.sub(dir, pt1, pt0);\n  Point.sub(dir2, pt2, pt1);\n  var len1 = dir.len();\n  var len2 = dir2.len();\n\n  if (len1 < 1e-3 || len2 < 1e-3) {\n    return;\n  }\n\n  dir.scale(1 / len1);\n  dir2.scale(1 / len2);\n  var angleCos = dir.dot(surfaceNormal);\n  var maxSurfaceAngleCos = Math.cos(maxSurfaceAngle);\n\n  if (angleCos < maxSurfaceAngleCos) {\n    var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\n    tmpProjPoint.fromArray(tmpArr);\n    var HALF_PI = Math.PI / 2;\n    var angle2 = Math.acos(dir2.dot(surfaceNormal));\n    var newAngle = HALF_PI + angle2 - maxSurfaceAngle;\n\n    if (newAngle >= HALF_PI) {\n      Point.copy(tmpProjPoint, pt2);\n    } else {\n      tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI / 2 - newAngle));\n      var t = pt2.x !== pt1.x ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x) : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\n\n      if (isNaN(t)) {\n        return;\n      }\n\n      if (t < 0) {\n        Point.copy(tmpProjPoint, pt1);\n      } else if (t > 1) {\n        Point.copy(tmpProjPoint, pt2);\n      }\n    }\n\n    tmpProjPoint.toArray(linePoints[1]);\n  }\n}\n\nfunction setLabelLineState(labelLine, ignore, stateName, stateModel) {\n  var isNormal = stateName === 'normal';\n  var stateObj = isNormal ? labelLine : labelLine.ensureState(stateName);\n  stateObj.ignore = ignore;\n  var smooth = stateModel.get('smooth');\n\n  if (smooth && smooth === true) {\n    smooth = 0.3;\n  }\n\n  stateObj.shape = stateObj.shape || {};\n\n  if (smooth > 0) {\n    stateObj.shape.smooth = smooth;\n  }\n\n  var styleObj = stateModel.getModel('lineStyle').getLineStyle();\n  isNormal ? labelLine.useStyle(styleObj) : stateObj.style = styleObj;\n}\n\nfunction buildLabelLinePath(path, shape) {\n  var smooth = shape.smooth;\n  var points = shape.points;\n\n  if (!points) {\n    return;\n  }\n\n  path.moveTo(points[0][0], points[0][1]);\n\n  if (smooth > 0 && points.length >= 3) {\n    var len1 = vector.dist(points[0], points[1]);\n    var len2 = vector.dist(points[1], points[2]);\n\n    if (!len1 || !len2) {\n      path.lineTo(points[1][0], points[1][1]);\n      path.lineTo(points[2][0], points[2][1]);\n      return;\n    }\n\n    var moveLen = Math.min(len1, len2) * smooth;\n    var midPoint0 = vector.lerp([], points[1], points[0], moveLen / len1);\n    var midPoint2 = vector.lerp([], points[1], points[2], moveLen / len2);\n    var midPoint1 = vector.lerp([], midPoint0, midPoint2, 0.5);\n    path.bezierCurveTo(midPoint0[0], midPoint0[1], midPoint0[0], midPoint0[1], midPoint1[0], midPoint1[1]);\n    path.bezierCurveTo(midPoint2[0], midPoint2[1], midPoint2[0], midPoint2[1], points[2][0], points[2][1]);\n  } else {\n    for (var i = 1; i < points.length; i++) {\n      path.lineTo(points[i][0], points[i][1]);\n    }\n  }\n}\n\nexport function setLabelLineStyle(targetEl, statesModels, defaultStyle) {\n  var labelLine = targetEl.getTextGuideLine();\n  var label = targetEl.getTextContent();\n\n  if (!label) {\n    if (labelLine) {\n      targetEl.removeTextGuideLine();\n    }\n\n    return;\n  }\n\n  var normalModel = statesModels.normal;\n  var showNormal = normalModel.get('show');\n  var labelIgnoreNormal = label.ignore;\n\n  for (var i = 0; i < DISPLAY_STATES.length; i++) {\n    var stateName = DISPLAY_STATES[i];\n    var stateModel = statesModels[stateName];\n    var isNormal = stateName === 'normal';\n\n    if (stateModel) {\n      var stateShow = stateModel.get('show');\n      var isLabelIgnored = isNormal ? labelIgnoreNormal : retrieve2(label.states[stateName] && label.states[stateName].ignore, labelIgnoreNormal);\n\n      if (isLabelIgnored || !retrieve2(stateShow, showNormal)) {\n        var stateObj = isNormal ? labelLine : labelLine && labelLine.states.normal;\n\n        if (stateObj) {\n          stateObj.ignore = true;\n        }\n\n        continue;\n      }\n\n      if (!labelLine) {\n        labelLine = new Polyline();\n        targetEl.setTextGuideLine(labelLine);\n\n        if (!isNormal && (labelIgnoreNormal || !showNormal)) {\n          setLabelLineState(labelLine, true, 'normal', statesModels.normal);\n        }\n\n        if (targetEl.stateProxy) {\n          labelLine.stateProxy = targetEl.stateProxy;\n        }\n      }\n\n      setLabelLineState(labelLine, false, stateName, stateModel);\n    }\n  }\n\n  if (labelLine) {\n    defaults(labelLine.style, defaultStyle);\n    labelLine.style.fill = null;\n    var showAbove = normalModel.get('showAbove');\n    var labelLineConfig = targetEl.textGuideLineConfig = targetEl.textGuideLineConfig || {};\n    labelLineConfig.showAbove = showAbove || false;\n    labelLine.buildPath = buildLabelLinePath;\n  }\n}\nexport function getLabelLineStatesModels(itemModel, labelLineName) {\n  labelLineName = labelLineName || 'labelLine';\n  var statesModels = {\n    normal: itemModel.getModel(labelLineName)\n  };\n\n  for (var i = 0; i < SPECIAL_STATES.length; i++) {\n    var stateName = SPECIAL_STATES[i];\n    statesModels[stateName] = itemModel.getModel([stateName, labelLineName]);\n  }\n\n  return statesModels;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { BoundingRect, OrientedBoundingRect } from '../util/graphic';\nexport function prepareLayoutList(input) {\n  var list = [];\n\n  for (var i = 0; i < input.length; i++) {\n    var rawItem = input[i];\n\n    if (rawItem.defaultAttr.ignore) {\n      continue;\n    }\n\n    var label = rawItem.label;\n    var transform = label.getComputedTransform();\n    var localRect = label.getBoundingRect();\n    var isAxisAligned = !transform || transform[1] < 1e-5 && transform[2] < 1e-5;\n    var minMargin = label.style.margin || 0;\n    var globalRect = localRect.clone();\n    globalRect.applyTransform(transform);\n    globalRect.x -= minMargin / 2;\n    globalRect.y -= minMargin / 2;\n    globalRect.width += minMargin;\n    globalRect.height += minMargin;\n    var obb = isAxisAligned ? new OrientedBoundingRect(localRect, transform) : null;\n    list.push({\n      label: label,\n      labelLine: rawItem.labelLine,\n      rect: globalRect,\n      localRect: localRect,\n      obb: obb,\n      priority: rawItem.priority,\n      defaultAttr: rawItem.defaultAttr,\n      layoutOption: rawItem.computedLayoutOption,\n      axisAligned: isAxisAligned,\n      transform: transform\n    });\n  }\n\n  return list;\n}\n\nfunction shiftLayout(list, xyDim, sizeDim, minBound, maxBound, balanceShift) {\n  var len = list.length;\n\n  if (len < 2) {\n    return;\n  }\n\n  list.sort(function (a, b) {\n    return a.rect[xyDim] - b.rect[xyDim];\n  });\n  var lastPos = 0;\n  var delta;\n  var adjusted = false;\n  var shifts = [];\n  var totalShifts = 0;\n\n  for (var i = 0; i < len; i++) {\n    var item = list[i];\n    var rect = item.rect;\n    delta = rect[xyDim] - lastPos;\n\n    if (delta < 0) {\n      rect[xyDim] -= delta;\n      item.label[xyDim] -= delta;\n      adjusted = true;\n    }\n\n    var shift = Math.max(-delta, 0);\n    shifts.push(shift);\n    totalShifts += shift;\n    lastPos = rect[xyDim] + rect[sizeDim];\n  }\n\n  if (totalShifts > 0 && balanceShift) {\n    shiftList(-totalShifts / len, 0, len);\n  }\n\n  var first = list[0];\n  var last = list[len - 1];\n  var minGap;\n  var maxGap;\n  updateMinMaxGap();\n  minGap < 0 && squeezeGaps(-minGap, 0.8);\n  maxGap < 0 && squeezeGaps(maxGap, 0.8);\n  updateMinMaxGap();\n  takeBoundsGap(minGap, maxGap, 1);\n  takeBoundsGap(maxGap, minGap, -1);\n  updateMinMaxGap();\n\n  if (minGap < 0) {\n    squeezeWhenBailout(-minGap);\n  }\n\n  if (maxGap < 0) {\n    squeezeWhenBailout(maxGap);\n  }\n\n  function updateMinMaxGap() {\n    minGap = first.rect[xyDim] - minBound;\n    maxGap = maxBound - last.rect[xyDim] - last.rect[sizeDim];\n  }\n\n  function takeBoundsGap(gapThisBound, gapOtherBound, moveDir) {\n    if (gapThisBound < 0) {\n      var moveFromMaxGap = Math.min(gapOtherBound, -gapThisBound);\n\n      if (moveFromMaxGap > 0) {\n        shiftList(moveFromMaxGap * moveDir, 0, len);\n        var remained = moveFromMaxGap + gapThisBound;\n\n        if (remained < 0) {\n          squeezeGaps(-remained * moveDir, 1);\n        }\n      } else {\n        squeezeGaps(-gapThisBound * moveDir, 1);\n      }\n    }\n  }\n\n  function shiftList(delta, start, end) {\n    if (delta !== 0) {\n      adjusted = true;\n    }\n\n    for (var i = start; i < end; i++) {\n      var item = list[i];\n      var rect = item.rect;\n      rect[xyDim] += delta;\n      item.label[xyDim] += delta;\n    }\n  }\n\n  function squeezeGaps(delta, maxSqeezePercent) {\n    var gaps = [];\n    var totalGaps = 0;\n\n    for (var i = 1; i < len; i++) {\n      var prevItemRect = list[i - 1].rect;\n      var gap = Math.max(list[i].rect[xyDim] - prevItemRect[xyDim] - prevItemRect[sizeDim], 0);\n      gaps.push(gap);\n      totalGaps += gap;\n    }\n\n    if (!totalGaps) {\n      return;\n    }\n\n    var squeezePercent = Math.min(Math.abs(delta) / totalGaps, maxSqeezePercent);\n\n    if (delta > 0) {\n      for (var i = 0; i < len - 1; i++) {\n        var movement = gaps[i] * squeezePercent;\n        shiftList(movement, 0, i + 1);\n      }\n    } else {\n      for (var i = len - 1; i > 0; i--) {\n        var movement = gaps[i - 1] * squeezePercent;\n        shiftList(-movement, i, len);\n      }\n    }\n  }\n\n  function squeezeWhenBailout(delta) {\n    var dir = delta < 0 ? -1 : 1;\n    delta = Math.abs(delta);\n    var moveForEachLabel = Math.ceil(delta / (len - 1));\n\n    for (var i = 0; i < len - 1; i++) {\n      if (dir > 0) {\n        shiftList(moveForEachLabel, 0, i + 1);\n      } else {\n        shiftList(-moveForEachLabel, len - i - 1, len);\n      }\n\n      delta -= moveForEachLabel;\n\n      if (delta <= 0) {\n        return;\n      }\n    }\n  }\n\n  return adjusted;\n}\n\nexport function shiftLayoutOnX(list, leftBound, rightBound, balanceShift) {\n  return shiftLayout(list, 'x', 'width', leftBound, rightBound, balanceShift);\n}\nexport function shiftLayoutOnY(list, topBound, bottomBound, balanceShift) {\n  return shiftLayout(list, 'y', 'height', topBound, bottomBound, balanceShift);\n}\nexport function hideOverlap(labelList) {\n  var displayedLabels = [];\n  labelList.sort(function (a, b) {\n    return b.priority - a.priority;\n  });\n  var globalRect = new BoundingRect(0, 0, 0, 0);\n\n  function hideEl(el) {\n    if (!el.ignore) {\n      var emphasisState = el.ensureState('emphasis');\n\n      if (emphasisState.ignore == null) {\n        emphasisState.ignore = false;\n      }\n    }\n\n    el.ignore = true;\n  }\n\n  for (var i = 0; i < labelList.length; i++) {\n    var labelItem = labelList[i];\n    var isAxisAligned = labelItem.axisAligned;\n    var localRect = labelItem.localRect;\n    var transform = labelItem.transform;\n    var label = labelItem.label;\n    var labelLine = labelItem.labelLine;\n    globalRect.copy(labelItem.rect);\n    globalRect.width -= 0.1;\n    globalRect.height -= 0.1;\n    globalRect.x += 0.05;\n    globalRect.y += 0.05;\n    var obb = labelItem.obb;\n    var overlapped = false;\n\n    for (var j = 0; j < displayedLabels.length; j++) {\n      var existsTextCfg = displayedLabels[j];\n\n      if (!globalRect.intersect(existsTextCfg.rect)) {\n        continue;\n      }\n\n      if (isAxisAligned && existsTextCfg.axisAligned) {\n        overlapped = true;\n        break;\n      }\n\n      if (!existsTextCfg.obb) {\n        existsTextCfg.obb = new OrientedBoundingRect(existsTextCfg.localRect, existsTextCfg.transform);\n      }\n\n      if (!obb) {\n        obb = new OrientedBoundingRect(localRect, transform);\n      }\n\n      if (obb.intersect(existsTextCfg.obb)) {\n        overlapped = true;\n        break;\n      }\n    }\n\n    if (overlapped) {\n      hideEl(label);\n      labelLine && hideEl(labelLine);\n    } else {\n      label.attr('ignore', labelItem.defaultAttr.ignore);\n      labelLine && labelLine.attr('ignore', labelItem.defaultAttr.labelGuideIgnore);\n      displayedLabels.push(labelItem);\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { BoundingRect, updateProps, initProps, isElementRemoved } from '../util/graphic';\nimport { getECData } from '../util/innerStore';\nimport { parsePercent } from '../util/number';\nimport Transformable from 'zrender/lib/core/Transformable';\nimport { updateLabelLinePoints, setLabelLineStyle, getLabelLineStatesModels } from './labelGuideHelper';\nimport { makeInner } from '../util/model';\nimport { retrieve2, each, keys, isFunction, filter, indexOf } from 'zrender/lib/core/util';\nimport { prepareLayoutList, hideOverlap, shiftLayoutOnX, shiftLayoutOnY } from './labelLayoutHelper';\nimport { labelInner, animateLabelValue } from './labelStyle';\n\nfunction cloneArr(points) {\n  if (points) {\n    var newPoints = [];\n\n    for (var i = 0; i < points.length; i++) {\n      newPoints.push(points[i].slice());\n    }\n\n    return newPoints;\n  }\n}\n\nfunction prepareLayoutCallbackParams(labelItem, hostEl) {\n  var label = labelItem.label;\n  var labelLine = hostEl && hostEl.getTextGuideLine();\n  return {\n    dataIndex: labelItem.dataIndex,\n    dataType: labelItem.dataType,\n    seriesIndex: labelItem.seriesModel.seriesIndex,\n    text: labelItem.label.style.text,\n    rect: labelItem.hostRect,\n    labelRect: labelItem.rect,\n    align: label.style.align,\n    verticalAlign: label.style.verticalAlign,\n    labelLinePoints: cloneArr(labelLine && labelLine.shape.points)\n  };\n}\n\nvar LABEL_OPTION_TO_STYLE_KEYS = ['align', 'verticalAlign', 'width', 'height', 'fontSize'];\nvar dummyTransformable = new Transformable();\nvar labelLayoutInnerStore = makeInner();\nvar labelLineAnimationStore = makeInner();\n\nfunction extendWithKeys(target, source, keys) {\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n\n    if (source[key] != null) {\n      target[key] = source[key];\n    }\n  }\n}\n\nvar LABEL_LAYOUT_PROPS = ['x', 'y', 'rotation'];\n\nvar LabelManager = function () {\n  function LabelManager() {\n    this._labelList = [];\n    this._chartViewList = [];\n  }\n\n  LabelManager.prototype.clearLabels = function () {\n    this._labelList = [];\n    this._chartViewList = [];\n  };\n\n  LabelManager.prototype._addLabel = function (dataIndex, dataType, seriesModel, label, layoutOption) {\n    var labelStyle = label.style;\n    var hostEl = label.__hostTarget;\n    var textConfig = hostEl.textConfig || {};\n    var labelTransform = label.getComputedTransform();\n    var labelRect = label.getBoundingRect().plain();\n    BoundingRect.applyTransform(labelRect, labelRect, labelTransform);\n\n    if (labelTransform) {\n      dummyTransformable.setLocalTransform(labelTransform);\n    } else {\n      dummyTransformable.x = dummyTransformable.y = dummyTransformable.rotation = dummyTransformable.originX = dummyTransformable.originY = 0;\n      dummyTransformable.scaleX = dummyTransformable.scaleY = 1;\n    }\n\n    var host = label.__hostTarget;\n    var hostRect;\n\n    if (host) {\n      hostRect = host.getBoundingRect().plain();\n      var transform = host.getComputedTransform();\n      BoundingRect.applyTransform(hostRect, hostRect, transform);\n    }\n\n    var labelGuide = hostRect && host.getTextGuideLine();\n\n    this._labelList.push({\n      label: label,\n      labelLine: labelGuide,\n      seriesModel: seriesModel,\n      dataIndex: dataIndex,\n      dataType: dataType,\n      layoutOption: layoutOption,\n      computedLayoutOption: null,\n      rect: labelRect,\n      hostRect: hostRect,\n      priority: hostRect ? hostRect.width * hostRect.height : 0,\n      defaultAttr: {\n        ignore: label.ignore,\n        labelGuideIgnore: labelGuide && labelGuide.ignore,\n        x: dummyTransformable.x,\n        y: dummyTransformable.y,\n        rotation: dummyTransformable.rotation,\n        style: {\n          x: labelStyle.x,\n          y: labelStyle.y,\n          align: labelStyle.align,\n          verticalAlign: labelStyle.verticalAlign,\n          width: labelStyle.width,\n          height: labelStyle.height,\n          fontSize: labelStyle.fontSize\n        },\n        cursor: label.cursor,\n        attachedPos: textConfig.position,\n        attachedRot: textConfig.rotation\n      }\n    });\n  };\n\n  LabelManager.prototype.addLabelsOfSeries = function (chartView) {\n    var _this = this;\n\n    this._chartViewList.push(chartView);\n\n    var seriesModel = chartView.__model;\n    var layoutOption = seriesModel.get('labelLayout');\n\n    if (!(isFunction(layoutOption) || keys(layoutOption).length)) {\n      return;\n    }\n\n    chartView.group.traverse(function (child) {\n      if (child.ignore) {\n        return true;\n      }\n\n      var textEl = child.getTextContent();\n      var ecData = getECData(child);\n\n      if (textEl && !textEl.disableLabelLayout) {\n        _this._addLabel(ecData.dataIndex, ecData.dataType, seriesModel, textEl, layoutOption);\n      }\n    });\n  };\n\n  LabelManager.prototype.updateLayoutConfig = function (api) {\n    var width = api.getWidth();\n    var height = api.getHeight();\n\n    function createDragHandler(el, labelLineModel) {\n      return function () {\n        updateLabelLinePoints(el, labelLineModel);\n      };\n    }\n\n    for (var i = 0; i < this._labelList.length; i++) {\n      var labelItem = this._labelList[i];\n      var label = labelItem.label;\n      var hostEl = label.__hostTarget;\n      var defaultLabelAttr = labelItem.defaultAttr;\n      var layoutOption = void 0;\n\n      if (typeof labelItem.layoutOption === 'function') {\n        layoutOption = labelItem.layoutOption(prepareLayoutCallbackParams(labelItem, hostEl));\n      } else {\n        layoutOption = labelItem.layoutOption;\n      }\n\n      layoutOption = layoutOption || {};\n      labelItem.computedLayoutOption = layoutOption;\n      var degreeToRadian = Math.PI / 180;\n\n      if (hostEl) {\n        hostEl.setTextConfig({\n          local: false,\n          position: layoutOption.x != null || layoutOption.y != null ? null : defaultLabelAttr.attachedPos,\n          rotation: layoutOption.rotate != null ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.attachedRot,\n          offset: [layoutOption.dx || 0, layoutOption.dy || 0]\n        });\n      }\n\n      var needsUpdateLabelLine = false;\n\n      if (layoutOption.x != null) {\n        label.x = parsePercent(layoutOption.x, width);\n        label.setStyle('x', 0);\n        needsUpdateLabelLine = true;\n      } else {\n        label.x = defaultLabelAttr.x;\n        label.setStyle('x', defaultLabelAttr.style.x);\n      }\n\n      if (layoutOption.y != null) {\n        label.y = parsePercent(layoutOption.y, height);\n        label.setStyle('y', 0);\n        needsUpdateLabelLine = true;\n      } else {\n        label.y = defaultLabelAttr.y;\n        label.setStyle('y', defaultLabelAttr.style.y);\n      }\n\n      if (layoutOption.labelLinePoints) {\n        var guideLine = hostEl.getTextGuideLine();\n\n        if (guideLine) {\n          guideLine.setShape({\n            points: layoutOption.labelLinePoints\n          });\n          needsUpdateLabelLine = false;\n        }\n      }\n\n      var labelLayoutStore = labelLayoutInnerStore(label);\n      labelLayoutStore.needsUpdateLabelLine = needsUpdateLabelLine;\n      label.rotation = layoutOption.rotate != null ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.rotation;\n\n      for (var k = 0; k < LABEL_OPTION_TO_STYLE_KEYS.length; k++) {\n        var key = LABEL_OPTION_TO_STYLE_KEYS[k];\n        label.setStyle(key, layoutOption[key] != null ? layoutOption[key] : defaultLabelAttr.style[key]);\n      }\n\n      if (layoutOption.draggable) {\n        label.draggable = true;\n        label.cursor = 'move';\n\n        if (hostEl) {\n          var hostModel = labelItem.seriesModel;\n\n          if (labelItem.dataIndex != null) {\n            var data = labelItem.seriesModel.getData(labelItem.dataType);\n            hostModel = data.getItemModel(labelItem.dataIndex);\n          }\n\n          label.on('drag', createDragHandler(hostEl, hostModel.getModel('labelLine')));\n        }\n      } else {\n        label.off('drag');\n        label.cursor = defaultLabelAttr.cursor;\n      }\n    }\n  };\n\n  LabelManager.prototype.layout = function (api) {\n    var width = api.getWidth();\n    var height = api.getHeight();\n    var labelList = prepareLayoutList(this._labelList);\n    var labelsNeedsAdjustOnX = filter(labelList, function (item) {\n      return item.layoutOption.moveOverlap === 'shiftX';\n    });\n    var labelsNeedsAdjustOnY = filter(labelList, function (item) {\n      return item.layoutOption.moveOverlap === 'shiftY';\n    });\n    shiftLayoutOnX(labelsNeedsAdjustOnX, 0, width);\n    shiftLayoutOnY(labelsNeedsAdjustOnY, 0, height);\n    var labelsNeedsHideOverlap = filter(labelList, function (item) {\n      return item.layoutOption.hideOverlap;\n    });\n    hideOverlap(labelsNeedsHideOverlap);\n  };\n\n  LabelManager.prototype.processLabelsOverall = function () {\n    var _this = this;\n\n    each(this._chartViewList, function (chartView) {\n      var seriesModel = chartView.__model;\n      var ignoreLabelLineUpdate = chartView.ignoreLabelLineUpdate;\n      var animationEnabled = seriesModel.isAnimationEnabled();\n      chartView.group.traverse(function (child) {\n        if (child.ignore) {\n          return true;\n        }\n\n        var needsUpdateLabelLine = !ignoreLabelLineUpdate;\n        var label = child.getTextContent();\n\n        if (!needsUpdateLabelLine && label) {\n          needsUpdateLabelLine = labelLayoutInnerStore(label).needsUpdateLabelLine;\n        }\n\n        if (needsUpdateLabelLine) {\n          _this._updateLabelLine(child, seriesModel);\n        }\n\n        if (animationEnabled) {\n          _this._animateLabels(child, seriesModel);\n        }\n      });\n    });\n  };\n\n  LabelManager.prototype._updateLabelLine = function (el, seriesModel) {\n    var textEl = el.getTextContent();\n    var ecData = getECData(el);\n    var dataIndex = ecData.dataIndex;\n\n    if (textEl && dataIndex != null) {\n      var data = seriesModel.getData(ecData.dataType);\n      var itemModel = data.getItemModel(dataIndex);\n      var defaultStyle = {};\n      var visualStyle = data.getItemVisual(dataIndex, 'style');\n      var visualType = data.getVisual('drawType');\n      defaultStyle.stroke = visualStyle[visualType];\n      var labelLineModel = itemModel.getModel('labelLine');\n      setLabelLineStyle(el, getLabelLineStatesModels(itemModel), defaultStyle);\n      updateLabelLinePoints(el, labelLineModel);\n    }\n  };\n\n  LabelManager.prototype._animateLabels = function (el, seriesModel) {\n    var textEl = el.getTextContent();\n    var guideLine = el.getTextGuideLine();\n\n    if (textEl && !textEl.ignore && !textEl.invisible && !el.disableLabelAnimation && !isElementRemoved(el)) {\n      var layoutStore = labelLayoutInnerStore(textEl);\n      var oldLayout = layoutStore.oldLayout;\n      var ecData = getECData(el);\n      var dataIndex = ecData.dataIndex;\n      var newProps = {\n        x: textEl.x,\n        y: textEl.y,\n        rotation: textEl.rotation\n      };\n      var data = seriesModel.getData(ecData.dataType);\n\n      if (!oldLayout) {\n        textEl.attr(newProps);\n\n        if (!labelInner(textEl).valueAnimation) {\n          var oldOpacity = retrieve2(textEl.style.opacity, 1);\n          textEl.style.opacity = 0;\n          initProps(textEl, {\n            style: {\n              opacity: oldOpacity\n            }\n          }, seriesModel, dataIndex);\n        }\n      } else {\n        textEl.attr(oldLayout);\n        var prevStates = el.prevStates;\n\n        if (prevStates) {\n          if (indexOf(prevStates, 'select') >= 0) {\n            textEl.attr(layoutStore.oldLayoutSelect);\n          }\n\n          if (indexOf(prevStates, 'emphasis') >= 0) {\n            textEl.attr(layoutStore.oldLayoutEmphasis);\n          }\n        }\n\n        updateProps(textEl, newProps, seriesModel, dataIndex);\n      }\n\n      layoutStore.oldLayout = newProps;\n\n      if (textEl.states.select) {\n        var layoutSelect = layoutStore.oldLayoutSelect = {};\n        extendWithKeys(layoutSelect, newProps, LABEL_LAYOUT_PROPS);\n        extendWithKeys(layoutSelect, textEl.states.select, LABEL_LAYOUT_PROPS);\n      }\n\n      if (textEl.states.emphasis) {\n        var layoutEmphasis = layoutStore.oldLayoutEmphasis = {};\n        extendWithKeys(layoutEmphasis, newProps, LABEL_LAYOUT_PROPS);\n        extendWithKeys(layoutEmphasis, textEl.states.emphasis, LABEL_LAYOUT_PROPS);\n      }\n\n      animateLabelValue(textEl, dataIndex, data, seriesModel, seriesModel);\n    }\n\n    if (guideLine && !guideLine.ignore && !guideLine.invisible) {\n      var layoutStore = labelLineAnimationStore(guideLine);\n      var oldLayout = layoutStore.oldLayout;\n      var newLayout = {\n        points: guideLine.shape.points\n      };\n\n      if (!oldLayout) {\n        guideLine.setShape(newLayout);\n        guideLine.style.strokePercent = 0;\n        initProps(guideLine, {\n          style: {\n            strokePercent: 1\n          }\n        }, seriesModel);\n      } else {\n        guideLine.attr({\n          shape: oldLayout\n        });\n        updateProps(guideLine, {\n          shape: newLayout\n        }, seriesModel);\n      }\n\n      layoutStore.oldLayout = newLayout;\n    }\n  };\n\n  return LabelManager;\n}();\n\nexport default LabelManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { extend, each, isArray } from 'zrender/lib/core/util';\nimport { deprecateReplaceLog, deprecateLog } from '../util/log';\nimport { queryDataIndex } from '../util/model';\nexport function createLegacyDataSelectAction(seriesType, ecRegisterAction) {\n  function getSeriesIndices(ecModel, payload) {\n    var seriesIndices = [];\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: seriesType,\n      query: payload\n    }, function (seriesModel) {\n      seriesIndices.push(seriesModel.seriesIndex);\n    });\n    return seriesIndices;\n  }\n\n  each([[seriesType + 'ToggleSelect', 'toggleSelect'], [seriesType + 'Select', 'select'], [seriesType + 'UnSelect', 'unselect']], function (eventsMap) {\n    ecRegisterAction(eventsMap[0], function (payload, ecModel, api) {\n      payload = extend({}, payload);\n\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateReplaceLog(payload.type, eventsMap[1]);\n      }\n\n      api.dispatchAction(extend(payload, {\n        type: eventsMap[1],\n        seriesIndex: getSeriesIndices(ecModel, payload)\n      }));\n    });\n  });\n}\n\nfunction handleSeriesLegacySelectEvents(type, eventPostfix, ecIns, ecModel, payload) {\n  var legacyEventName = type + eventPostfix;\n\n  if (!ecIns.isSilent(legacyEventName)) {\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateLog(\"event \" + legacyEventName + \" is deprecated.\");\n    }\n\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'pie'\n    }, function (seriesModel) {\n      var seriesIndex = seriesModel.seriesIndex;\n      var selected = payload.selected;\n\n      for (var i = 0; i < selected.length; i++) {\n        if (selected[i].seriesIndex === seriesIndex) {\n          var data = seriesModel.getData();\n          var dataIndex = queryDataIndex(data, payload.fromActionPayload);\n          ecIns.trigger(legacyEventName, {\n            type: legacyEventName,\n            seriesId: seriesModel.id,\n            name: isArray(dataIndex) ? data.getName(dataIndex[0]) : data.getName(dataIndex),\n            selected: extend({}, seriesModel.option.selectedMap)\n          });\n        }\n      }\n    });\n  }\n}\n\nexport function handleLegacySelectEvents(messageCenter, ecIns, api) {\n  messageCenter.on('selectchanged', function (params) {\n    var ecModel = api.getModel();\n\n    if (params.isFromClick) {\n      handleSeriesLegacySelectEvents('map', 'selectchanged', ecIns, ecModel, params);\n      handleSeriesLegacySelectEvents('pie', 'selectchanged', ecIns, ecModel, params);\n    } else if (params.fromAction === 'select') {\n      handleSeriesLegacySelectEvents('map', 'selected', ecIns, ecModel, params);\n      handleSeriesLegacySelectEvents('pie', 'selected', ecIns, ecModel, params);\n    } else if (params.fromAction === 'unselect') {\n      handleSeriesLegacySelectEvents('map', 'unselected', ecIns, ecModel, params);\n      handleSeriesLegacySelectEvents('pie', 'unselected', ecIns, ecModel, params);\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function findEventDispatcher(target, det, returnFirstMatch) {\n  var found;\n\n  while (target) {\n    if (det(target)) {\n      found = target;\n\n      if (returnFirstMatch) {\n        break;\n      }\n    }\n\n    target = target.__hostTarget || target.parent;\n  }\n\n  return found;\n}","var wmUniqueIndex = Math.round(Math.random() * 9);\nvar WeakMap = (function () {\n    function WeakMap() {\n        this._id = '__ec_inner_' + wmUniqueIndex++;\n    }\n    WeakMap.prototype.get = function (key) {\n        return this._guard(key)[this._id];\n    };\n    WeakMap.prototype.set = function (key, value) {\n        var target = this._guard(key);\n        if (typeof Object.defineProperty === 'function') {\n            Object.defineProperty(target, this._id, {\n                value: value,\n                enumerable: false,\n                configurable: true\n            });\n        }\n        else {\n            target[this._id] = value;\n        }\n        return this;\n    };\n    WeakMap.prototype[\"delete\"] = function (key) {\n        if (this.has(key)) {\n            delete this._guard(key)[this._id];\n            return true;\n        }\n        return false;\n    };\n    WeakMap.prototype.has = function (key) {\n        return !!this._guard(key)[this._id];\n    };\n    WeakMap.prototype._guard = function (key) {\n        if (key !== Object(key)) {\n            throw TypeError('Value of WeakMap is not a non-null object.');\n        }\n        return key;\n    };\n    return WeakMap;\n}());\nexport default WeakMap;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from './graphic';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { calculateTextPosition } from 'zrender/lib/contain/text';\nvar Triangle = graphic.Path.extend({\n  type: 'triangle',\n  shape: {\n    cx: 0,\n    cy: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (path, shape) {\n    var cx = shape.cx;\n    var cy = shape.cy;\n    var width = shape.width / 2;\n    var height = shape.height / 2;\n    path.moveTo(cx, cy - height);\n    path.lineTo(cx + width, cy + height);\n    path.lineTo(cx - width, cy + height);\n    path.closePath();\n  }\n});\nvar Diamond = graphic.Path.extend({\n  type: 'diamond',\n  shape: {\n    cx: 0,\n    cy: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (path, shape) {\n    var cx = shape.cx;\n    var cy = shape.cy;\n    var width = shape.width / 2;\n    var height = shape.height / 2;\n    path.moveTo(cx, cy - height);\n    path.lineTo(cx + width, cy);\n    path.lineTo(cx, cy + height);\n    path.lineTo(cx - width, cy);\n    path.closePath();\n  }\n});\nvar Pin = graphic.Path.extend({\n  type: 'pin',\n  shape: {\n    x: 0,\n    y: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (path, shape) {\n    var x = shape.x;\n    var y = shape.y;\n    var w = shape.width / 5 * 3;\n    var h = Math.max(w, shape.height);\n    var r = w / 2;\n    var dy = r * r / (h - r);\n    var cy = y - h + r + dy;\n    var angle = Math.asin(dy / r);\n    var dx = Math.cos(angle) * r;\n    var tanX = Math.sin(angle);\n    var tanY = Math.cos(angle);\n    var cpLen = r * 0.6;\n    var cpLen2 = r * 0.7;\n    path.moveTo(x - dx, cy + dy);\n    path.arc(x, cy, r, Math.PI - angle, Math.PI * 2 + angle);\n    path.bezierCurveTo(x + dx - tanX * cpLen, cy + dy + tanY * cpLen, x, y - cpLen2, x, y);\n    path.bezierCurveTo(x, y - cpLen2, x - dx + tanX * cpLen, cy + dy + tanY * cpLen, x - dx, cy + dy);\n    path.closePath();\n  }\n});\nvar Arrow = graphic.Path.extend({\n  type: 'arrow',\n  shape: {\n    x: 0,\n    y: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (ctx, shape) {\n    var height = shape.height;\n    var width = shape.width;\n    var x = shape.x;\n    var y = shape.y;\n    var dx = width / 3 * 2;\n    ctx.moveTo(x, y);\n    ctx.lineTo(x + dx, y + height);\n    ctx.lineTo(x, y + height / 4 * 3);\n    ctx.lineTo(x - dx, y + height);\n    ctx.lineTo(x, y);\n    ctx.closePath();\n  }\n});\nvar symbolCtors = {\n  line: graphic.Rect,\n  rect: graphic.Rect,\n  roundRect: graphic.Rect,\n  square: graphic.Rect,\n  circle: graphic.Circle,\n  diamond: Diamond,\n  pin: Pin,\n  arrow: Arrow,\n  triangle: Triangle\n};\nvar symbolShapeMakers = {\n  line: function (x, y, w, h, shape) {\n    var thickness = 2;\n    shape.x = x;\n    shape.y = y + h / 2 - thickness / 2;\n    shape.width = w;\n    shape.height = thickness;\n  },\n  rect: function (x, y, w, h, shape) {\n    shape.x = x;\n    shape.y = y;\n    shape.width = w;\n    shape.height = h;\n  },\n  roundRect: function (x, y, w, h, shape) {\n    shape.x = x;\n    shape.y = y;\n    shape.width = w;\n    shape.height = h;\n    shape.r = Math.min(w, h) / 4;\n  },\n  square: function (x, y, w, h, shape) {\n    var size = Math.min(w, h);\n    shape.x = x;\n    shape.y = y;\n    shape.width = size;\n    shape.height = size;\n  },\n  circle: function (x, y, w, h, shape) {\n    shape.cx = x + w / 2;\n    shape.cy = y + h / 2;\n    shape.r = Math.min(w, h) / 2;\n  },\n  diamond: function (x, y, w, h, shape) {\n    shape.cx = x + w / 2;\n    shape.cy = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  },\n  pin: function (x, y, w, h, shape) {\n    shape.x = x + w / 2;\n    shape.y = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  },\n  arrow: function (x, y, w, h, shape) {\n    shape.x = x + w / 2;\n    shape.y = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  },\n  triangle: function (x, y, w, h, shape) {\n    shape.cx = x + w / 2;\n    shape.cy = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  }\n};\nexport var symbolBuildProxies = {};\nzrUtil.each(symbolCtors, function (Ctor, name) {\n  symbolBuildProxies[name] = new Ctor();\n});\nvar SymbolClz = graphic.Path.extend({\n  type: 'symbol',\n  shape: {\n    symbolType: '',\n    x: 0,\n    y: 0,\n    width: 0,\n    height: 0\n  },\n  calculateTextPosition: function (out, config, rect) {\n    var res = calculateTextPosition(out, config, rect);\n    var shape = this.shape;\n\n    if (shape && shape.symbolType === 'pin' && config.position === 'inside') {\n      res.y = rect.y + rect.height * 0.4;\n    }\n\n    return res;\n  },\n  buildPath: function (ctx, shape, inBundle) {\n    var symbolType = shape.symbolType;\n\n    if (symbolType !== 'none') {\n      var proxySymbol = symbolBuildProxies[symbolType];\n\n      if (!proxySymbol) {\n        symbolType = 'rect';\n        proxySymbol = symbolBuildProxies[symbolType];\n      }\n\n      symbolShapeMakers[symbolType](shape.x, shape.y, shape.width, shape.height, proxySymbol.shape);\n      proxySymbol.buildPath(ctx, proxySymbol.shape, inBundle);\n    }\n  }\n});\n\nfunction symbolPathSetColor(color, innerColor) {\n  if (this.type !== 'image') {\n    var symbolStyle = this.style;\n\n    if (this.__isEmptyBrush) {\n      symbolStyle.stroke = color;\n      symbolStyle.fill = innerColor || '#fff';\n      symbolStyle.lineWidth = 2;\n    } else {\n      symbolStyle.fill = color;\n    }\n\n    this.markRedraw();\n  }\n}\n\nexport function createSymbol(symbolType, x, y, w, h, color, keepAspect) {\n  var isEmpty = symbolType.indexOf('empty') === 0;\n\n  if (isEmpty) {\n    symbolType = symbolType.substr(5, 1).toLowerCase() + symbolType.substr(6);\n  }\n\n  var symbolPath;\n\n  if (symbolType.indexOf('image://') === 0) {\n    symbolPath = graphic.makeImage(symbolType.slice(8), new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\n  } else if (symbolType.indexOf('path://') === 0) {\n    symbolPath = graphic.makePath(symbolType.slice(7), {}, new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\n  } else {\n    symbolPath = new SymbolClz({\n      shape: {\n        symbolType: symbolType,\n        x: x,\n        y: y,\n        width: w,\n        height: h\n      }\n    });\n  }\n\n  symbolPath.__isEmptyBrush = isEmpty;\n  symbolPath.setColor = symbolPathSetColor;\n\n  if (color) {\n    symbolPath.setColor(color);\n  }\n\n  return symbolPath;\n}","export function createLinearGradient(ctx, obj, rect) {\n    var x = obj.x == null ? 0 : obj.x;\n    var x2 = obj.x2 == null ? 1 : obj.x2;\n    var y = obj.y == null ? 0 : obj.y;\n    var y2 = obj.y2 == null ? 0 : obj.y2;\n    if (!obj.global) {\n        x = x * rect.width + rect.x;\n        x2 = x2 * rect.width + rect.x;\n        y = y * rect.height + rect.y;\n        y2 = y2 * rect.height + rect.y;\n    }\n    x = isNaN(x) ? 0 : x;\n    x2 = isNaN(x2) ? 1 : x2;\n    y = isNaN(y) ? 0 : y;\n    y2 = isNaN(y2) ? 0 : y2;\n    var canvasGradient = ctx.createLinearGradient(x, y, x2, y2);\n    return canvasGradient;\n}\nexport function createRadialGradient(ctx, obj, rect) {\n    var width = rect.width;\n    var height = rect.height;\n    var min = Math.min(width, height);\n    var x = obj.x == null ? 0.5 : obj.x;\n    var y = obj.y == null ? 0.5 : obj.y;\n    var r = obj.r == null ? 0.5 : obj.r;\n    if (!obj.global) {\n        x = x * width + rect.x;\n        y = y * height + rect.y;\n        r = r * min;\n    }\n    var canvasGradient = ctx.createRadialGradient(x, y, 0, x, y, r);\n    return canvasGradient;\n}\nexport function getCanvasGradient(ctx, obj, rect) {\n    var canvasGradient = obj.type === 'radial'\n        ? createRadialGradient(ctx, obj, rect)\n        : createLinearGradient(ctx, obj, rect);\n    var colorStops = obj.colorStops;\n    for (var i = 0; i < colorStops.length; i++) {\n        canvasGradient.addColorStop(colorStops[i].offset, colorStops[i].color);\n    }\n    return canvasGradient;\n}\nexport function isClipPathChanged(clipPaths, prevClipPaths) {\n    if (clipPaths === prevClipPaths || (!clipPaths && !prevClipPaths)) {\n        return false;\n    }\n    if (!clipPaths || !prevClipPaths || (clipPaths.length !== prevClipPaths.length)) {\n        return true;\n    }\n    for (var i = 0; i < clipPaths.length; i++) {\n        if (clipPaths[i] !== prevClipPaths[i]) {\n            return true;\n        }\n    }\n    return false;\n}\n","import { isArray, isNumber } from '../../core/util';\nexport function normalizeLineDash(lineType, lineWidth) {\n    if (!lineType || lineType === 'solid' || !(lineWidth > 0)) {\n        return null;\n    }\n    lineWidth = lineWidth || 1;\n    return lineType === 'dashed'\n        ? [4 * lineWidth, 2 * lineWidth]\n        : lineType === 'dotted'\n            ? [lineWidth]\n            : isNumber(lineType)\n                ? [lineType] : isArray(lineType) ? lineType : null;\n}\n","import { DEFAULT_COMMON_STYLE } from '../graphic/Displayable';\nimport PathProxy from '../core/PathProxy';\nimport { createOrUpdateImage, isImageReady } from '../graphic/helper/image';\nimport { getCanvasGradient, isClipPathChanged } from './helper';\nimport Path from '../graphic/Path';\nimport ZRImage from '../graphic/Image';\nimport TSpan from '../graphic/TSpan';\nimport { DEFAULT_FONT } from '../contain/text';\nimport { map } from '../core/util';\nimport { normalizeLineDash } from '../graphic/helper/dashStyle';\nimport Element from '../Element';\nimport IncrementalDisplayable from '../graphic/IncrementalDisplayable';\nvar pathProxyForDraw = new PathProxy(true);\nfunction styleHasStroke(style) {\n    var stroke = style.stroke;\n    return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\n}\nfunction styleHasFill(style) {\n    var fill = style.fill;\n    return fill != null && fill !== 'none';\n}\nfunction doFillPath(ctx, style) {\n    if (style.fillOpacity != null && style.fillOpacity !== 1) {\n        var originalGlobalAlpha = ctx.globalAlpha;\n        ctx.globalAlpha = style.fillOpacity * style.opacity;\n        ctx.fill();\n        ctx.globalAlpha = originalGlobalAlpha;\n    }\n    else {\n        ctx.fill();\n    }\n}\nfunction doStrokePath(ctx, style) {\n    if (style.strokeOpacity != null && style.strokeOpacity !== 1) {\n        var originalGlobalAlpha = ctx.globalAlpha;\n        ctx.globalAlpha = style.strokeOpacity * style.opacity;\n        ctx.stroke();\n        ctx.globalAlpha = originalGlobalAlpha;\n    }\n    else {\n        ctx.stroke();\n    }\n}\nexport function createCanvasPattern(ctx, pattern, el) {\n    var image = createOrUpdateImage(pattern.image, pattern.__image, el);\n    if (isImageReady(image)) {\n        var canvasPattern = ctx.createPattern(image, pattern.repeat || 'repeat');\n        if (typeof DOMMatrix === 'function') {\n            var matrix = new DOMMatrix();\n            matrix.rotateSelf(0, 0, (pattern.rotation || 0) / Math.PI * 180);\n            matrix.scaleSelf((pattern.scaleX || 1), (pattern.scaleY || 1));\n            matrix.translateSelf((pattern.x || 0), (pattern.y || 0));\n            canvasPattern.setTransform(matrix);\n        }\n        return canvasPattern;\n    }\n}\nfunction brushPath(ctx, el, style, inBatch) {\n    var hasStroke = styleHasStroke(style);\n    var hasFill = styleHasFill(style);\n    var strokePercent = style.strokePercent;\n    var strokePart = strokePercent < 1;\n    var firstDraw = !el.path;\n    if ((!el.silent || strokePart) && firstDraw) {\n        el.createPathProxy();\n    }\n    var path = el.path || pathProxyForDraw;\n    if (!inBatch) {\n        var fill = style.fill;\n        var stroke = style.stroke;\n        var hasFillGradient = hasFill && !!fill.colorStops;\n        var hasStrokeGradient = hasStroke && !!stroke.colorStops;\n        var hasFillPattern = hasFill && !!fill.image;\n        var hasStrokePattern = hasStroke && !!stroke.image;\n        var fillGradient = void 0;\n        var strokeGradient = void 0;\n        var fillPattern = void 0;\n        var strokePattern = void 0;\n        var rect = void 0;\n        if (hasFillGradient || hasStrokeGradient) {\n            rect = el.getBoundingRect();\n        }\n        if (hasFillGradient) {\n            fillGradient = el.__dirty\n                ? getCanvasGradient(ctx, fill, rect)\n                : el.__canvasFillGradient;\n            el.__canvasFillGradient = fillGradient;\n        }\n        if (hasStrokeGradient) {\n            strokeGradient = el.__dirty\n                ? getCanvasGradient(ctx, stroke, rect)\n                : el.__canvasStrokeGradient;\n            el.__canvasStrokeGradient = strokeGradient;\n        }\n        if (hasFillPattern) {\n            fillPattern = (el.__dirty || !el.__canvasFillPattern)\n                ? createCanvasPattern(ctx, fill, el)\n                : el.__canvasFillPattern;\n            el.__canvasFillPattern = fillPattern;\n        }\n        if (hasStrokePattern) {\n            strokePattern = (el.__dirty || !el.__canvasStrokePattern)\n                ? createCanvasPattern(ctx, stroke, el)\n                : el.__canvasStrokePattern;\n            el.__canvasStrokePattern = fillPattern;\n        }\n        if (hasFillGradient) {\n            ctx.fillStyle = fillGradient;\n        }\n        else if (hasFillPattern) {\n            if (fillPattern) {\n                ctx.fillStyle = fillPattern;\n            }\n            else {\n                hasFill = false;\n            }\n        }\n        if (hasStrokeGradient) {\n            ctx.strokeStyle = strokeGradient;\n        }\n        else if (hasStrokePattern) {\n            if (strokePattern) {\n                ctx.strokeStyle = strokePattern;\n            }\n            else {\n                hasStroke = false;\n            }\n        }\n    }\n    var lineDash = style.lineDash && style.lineWidth > 0 && normalizeLineDash(style.lineDash, style.lineWidth);\n    var lineDashOffset = style.lineDashOffset;\n    var ctxLineDash = !!ctx.setLineDash;\n    var scale = el.getGlobalScale();\n    path.setScale(scale[0], scale[1], el.segmentIgnoreThreshold);\n    if (lineDash) {\n        var lineScale_1 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\n        if (lineScale_1 && lineScale_1 !== 1) {\n            lineDash = map(lineDash, function (rawVal) {\n                return rawVal / lineScale_1;\n            });\n            lineDashOffset /= lineScale_1;\n        }\n    }\n    var needsRebuild = true;\n    if (firstDraw || (el.__dirty & Path.SHAPE_CHANGED_BIT)\n        || (lineDash && !ctxLineDash && hasStroke)) {\n        path.setDPR(ctx.dpr);\n        if (strokePart) {\n            path.setContext(null);\n        }\n        else {\n            path.setContext(ctx);\n            needsRebuild = false;\n        }\n        path.reset();\n        if (lineDash && !ctxLineDash) {\n            path.setLineDash(lineDash);\n            path.setLineDashOffset(lineDashOffset);\n        }\n        el.buildPath(path, el.shape, inBatch);\n        path.toStatic();\n        el.pathUpdated();\n    }\n    if (needsRebuild) {\n        path.rebuildPath(ctx, strokePart ? strokePercent : 1);\n    }\n    if (lineDash && ctxLineDash) {\n        ctx.setLineDash(lineDash);\n        ctx.lineDashOffset = lineDashOffset;\n    }\n    if (!inBatch) {\n        if (style.strokeFirst) {\n            if (hasStroke) {\n                doStrokePath(ctx, style);\n            }\n            if (hasFill) {\n                doFillPath(ctx, style);\n            }\n        }\n        else {\n            if (hasFill) {\n                doFillPath(ctx, style);\n            }\n            if (hasStroke) {\n                doStrokePath(ctx, style);\n            }\n        }\n    }\n    if (lineDash && ctxLineDash) {\n        ctx.setLineDash([]);\n    }\n}\nfunction brushImage(ctx, el, style) {\n    var image = el.__image = createOrUpdateImage(style.image, el.__image, el, el.onload);\n    if (!image || !isImageReady(image)) {\n        return;\n    }\n    var x = style.x || 0;\n    var y = style.y || 0;\n    var width = el.getWidth();\n    var height = el.getHeight();\n    var aspect = image.width / image.height;\n    if (width == null && height != null) {\n        width = height * aspect;\n    }\n    else if (height == null && width != null) {\n        height = width / aspect;\n    }\n    else if (width == null && height == null) {\n        width = image.width;\n        height = image.height;\n    }\n    if (style.sWidth && style.sHeight) {\n        var sx = style.sx || 0;\n        var sy = style.sy || 0;\n        ctx.drawImage(image, sx, sy, style.sWidth, style.sHeight, x, y, width, height);\n    }\n    else if (style.sx && style.sy) {\n        var sx = style.sx;\n        var sy = style.sy;\n        var sWidth = width - sx;\n        var sHeight = height - sy;\n        ctx.drawImage(image, sx, sy, sWidth, sHeight, x, y, width, height);\n    }\n    else {\n        ctx.drawImage(image, x, y, width, height);\n    }\n}\nfunction brushText(ctx, el, style) {\n    var text = style.text;\n    text != null && (text += '');\n    if (text) {\n        ctx.font = style.font || DEFAULT_FONT;\n        ctx.textAlign = style.textAlign;\n        ctx.textBaseline = style.textBaseline;\n        var hasLineDash = void 0;\n        if (ctx.setLineDash) {\n            var lineDash = style.lineDash && style.lineWidth > 0 && normalizeLineDash(style.lineDash, style.lineWidth);\n            var lineDashOffset = style.lineDashOffset;\n            if (lineDash) {\n                var lineScale_2 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\n                if (lineScale_2 && lineScale_2 !== 1) {\n                    lineDash = map(lineDash, function (rawVal) {\n                        return rawVal / lineScale_2;\n                    });\n                    lineDashOffset /= lineScale_2;\n                }\n                ctx.setLineDash(lineDash);\n                ctx.lineDashOffset = lineDashOffset;\n                hasLineDash = true;\n            }\n        }\n        if (style.strokeFirst) {\n            if (styleHasStroke(style)) {\n                ctx.strokeText(text, style.x, style.y);\n            }\n            if (styleHasFill(style)) {\n                ctx.fillText(text, style.x, style.y);\n            }\n        }\n        else {\n            if (styleHasFill(style)) {\n                ctx.fillText(text, style.x, style.y);\n            }\n            if (styleHasStroke(style)) {\n                ctx.strokeText(text, style.x, style.y);\n            }\n        }\n        if (hasLineDash) {\n            ctx.setLineDash([]);\n        }\n    }\n}\nvar SHADOW_NUMBER_PROPS = ['shadowBlur', 'shadowOffsetX', 'shadowOffsetY'];\nvar STROKE_PROPS = [\n    ['lineCap', 'butt'], ['lineJoin', 'miter'], ['miterLimit', 10]\n];\nfunction bindCommonProps(ctx, style, prevStyle, forceSetAll, scope) {\n    var styleChanged = false;\n    if (!forceSetAll) {\n        prevStyle = prevStyle || {};\n        if (style === prevStyle) {\n            return false;\n        }\n    }\n    if (forceSetAll || style.opacity !== prevStyle.opacity) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.globalAlpha = style.opacity == null ? DEFAULT_COMMON_STYLE.opacity : style.opacity;\n    }\n    if (forceSetAll || style.blend !== prevStyle.blend) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.globalCompositeOperation = style.blend || DEFAULT_COMMON_STYLE.blend;\n    }\n    for (var i = 0; i < SHADOW_NUMBER_PROPS.length; i++) {\n        var propName = SHADOW_NUMBER_PROPS[i];\n        if (forceSetAll || style[propName] !== prevStyle[propName]) {\n            if (!styleChanged) {\n                flushPathDrawn(ctx, scope);\n                styleChanged = true;\n            }\n            ctx[propName] = ctx.dpr * (style[propName] || 0);\n        }\n    }\n    if (forceSetAll || style.shadowColor !== prevStyle.shadowColor) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.shadowColor = style.shadowColor || DEFAULT_COMMON_STYLE.shadowColor;\n    }\n    return styleChanged;\n}\nfunction bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetAll, scope) {\n    var style = getStyle(el, scope.inHover);\n    var prevStyle = forceSetAll\n        ? null\n        : (prevEl && getStyle(prevEl, scope.inHover) || {});\n    if (style === prevStyle) {\n        return false;\n    }\n    var styleChanged = bindCommonProps(ctx, style, prevStyle, forceSetAll, scope);\n    if (forceSetAll || style.fill !== prevStyle.fill) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.fillStyle = style.fill;\n    }\n    if (forceSetAll || style.stroke !== prevStyle.stroke) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.strokeStyle = style.stroke;\n    }\n    if (forceSetAll || style.opacity !== prevStyle.opacity) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.globalAlpha = style.opacity == null ? 1 : style.opacity;\n    }\n    if (el.hasStroke()) {\n        var lineWidth = style.lineWidth;\n        var newLineWidth = lineWidth / ((style.strokeNoScale && el && el.getLineScale) ? el.getLineScale() : 1);\n        if (ctx.lineWidth !== newLineWidth) {\n            if (!styleChanged) {\n                flushPathDrawn(ctx, scope);\n                styleChanged = true;\n            }\n            ctx.lineWidth = newLineWidth;\n        }\n    }\n    for (var i = 0; i < STROKE_PROPS.length; i++) {\n        var prop = STROKE_PROPS[i];\n        var propName = prop[0];\n        if (forceSetAll || style[propName] !== prevStyle[propName]) {\n            if (!styleChanged) {\n                flushPathDrawn(ctx, scope);\n                styleChanged = true;\n            }\n            ctx[propName] = style[propName] || prop[1];\n        }\n    }\n    return styleChanged;\n}\nfunction bindImageStyle(ctx, el, prevEl, forceSetAll, scope) {\n    return bindCommonProps(ctx, getStyle(el, scope.inHover), prevEl && getStyle(prevEl, scope.inHover), forceSetAll, scope);\n}\nfunction setContextTransform(ctx, el) {\n    var m = el.transform;\n    var dpr = ctx.dpr || 1;\n    if (m) {\n        ctx.setTransform(dpr * m[0], dpr * m[1], dpr * m[2], dpr * m[3], dpr * m[4], dpr * m[5]);\n    }\n    else {\n        ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n    }\n}\nfunction updateClipStatus(clipPaths, ctx, scope) {\n    var allClipped = false;\n    for (var i = 0; i < clipPaths.length; i++) {\n        var clipPath = clipPaths[i];\n        allClipped = allClipped || clipPath.isZeroArea();\n        setContextTransform(ctx, clipPath);\n        ctx.beginPath();\n        clipPath.buildPath(ctx, clipPath.shape);\n        ctx.clip();\n    }\n    scope.allClipped = allClipped;\n}\nfunction isTransformChanged(m0, m1) {\n    if (m0 && m1) {\n        return m0[0] !== m1[0]\n            || m0[1] !== m1[1]\n            || m0[2] !== m1[2]\n            || m0[3] !== m1[3]\n            || m0[4] !== m1[4]\n            || m0[5] !== m1[5];\n    }\n    else if (!m0 && !m1) {\n        return false;\n    }\n    return true;\n}\nvar DRAW_TYPE_PATH = 1;\nvar DRAW_TYPE_IMAGE = 2;\nvar DRAW_TYPE_TEXT = 3;\nvar DRAW_TYPE_INCREMENTAL = 4;\nfunction canPathBatch(style) {\n    var hasFill = styleHasFill(style);\n    var hasStroke = styleHasStroke(style);\n    return !(style.lineDash\n        || !(+hasFill ^ +hasStroke)\n        || (hasFill && typeof style.fill !== 'string')\n        || (hasStroke && typeof style.stroke !== 'string')\n        || style.strokePercent < 1\n        || style.strokeOpacity < 1\n        || style.fillOpacity < 1);\n}\nfunction flushPathDrawn(ctx, scope) {\n    scope.batchFill && ctx.fill();\n    scope.batchStroke && ctx.stroke();\n    scope.batchFill = '';\n    scope.batchStroke = '';\n}\nfunction getStyle(el, inHover) {\n    return inHover ? (el.__hoverStyle || el.style) : el.style;\n}\nexport function brushSingle(ctx, el) {\n    brush(ctx, el, { inHover: false, viewWidth: 0, viewHeight: 0 }, true);\n}\nexport function brush(ctx, el, scope, isLast) {\n    var m = el.transform;\n    if (!el.shouldBePainted(scope.viewWidth, scope.viewHeight, false, false)) {\n        el.__dirty &= ~Element.REDARAW_BIT;\n        el.__isRendered = false;\n        return;\n    }\n    var clipPaths = el.__clipPaths;\n    var prevElClipPaths = scope.prevElClipPaths;\n    var forceSetTransform = false;\n    var forceSetStyle = false;\n    if (!prevElClipPaths || isClipPathChanged(clipPaths, prevElClipPaths)) {\n        if (prevElClipPaths && prevElClipPaths.length) {\n            flushPathDrawn(ctx, scope);\n            ctx.restore();\n            forceSetStyle = forceSetTransform = true;\n            scope.prevElClipPaths = null;\n            scope.allClipped = false;\n            scope.prevEl = null;\n        }\n        if (clipPaths && clipPaths.length) {\n            flushPathDrawn(ctx, scope);\n            ctx.save();\n            updateClipStatus(clipPaths, ctx, scope);\n            forceSetTransform = true;\n        }\n        scope.prevElClipPaths = clipPaths;\n    }\n    if (scope.allClipped) {\n        el.__isRendered = false;\n        return;\n    }\n    el.beforeBrush && el.beforeBrush();\n    el.innerBeforeBrush();\n    var prevEl = scope.prevEl;\n    if (!prevEl) {\n        forceSetStyle = forceSetTransform = true;\n    }\n    var canBatchPath = el instanceof Path\n        && el.autoBatch\n        && canPathBatch(el.style);\n    if (forceSetTransform || isTransformChanged(m, prevEl.transform)) {\n        flushPathDrawn(ctx, scope);\n        setContextTransform(ctx, el);\n    }\n    else if (!canBatchPath) {\n        flushPathDrawn(ctx, scope);\n    }\n    var style = getStyle(el, scope.inHover);\n    if (el instanceof Path) {\n        if (scope.lastDrawType !== DRAW_TYPE_PATH) {\n            forceSetStyle = true;\n            scope.lastDrawType = DRAW_TYPE_PATH;\n        }\n        bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\n        if (!canBatchPath || (!scope.batchFill && !scope.batchStroke)) {\n            ctx.beginPath();\n        }\n        brushPath(ctx, el, style, canBatchPath);\n        if (canBatchPath) {\n            scope.batchFill = style.fill || '';\n            scope.batchStroke = style.stroke || '';\n        }\n    }\n    else {\n        if (el instanceof TSpan) {\n            if (scope.lastDrawType !== DRAW_TYPE_TEXT) {\n                forceSetStyle = true;\n                scope.lastDrawType = DRAW_TYPE_TEXT;\n            }\n            bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\n            brushText(ctx, el, style);\n        }\n        else if (el instanceof ZRImage) {\n            if (scope.lastDrawType !== DRAW_TYPE_IMAGE) {\n                forceSetStyle = true;\n                scope.lastDrawType = DRAW_TYPE_IMAGE;\n            }\n            bindImageStyle(ctx, el, prevEl, forceSetStyle, scope);\n            brushImage(ctx, el, style);\n        }\n        else if (el instanceof IncrementalDisplayable) {\n            if (scope.lastDrawType !== DRAW_TYPE_INCREMENTAL) {\n                forceSetStyle = true;\n                scope.lastDrawType = DRAW_TYPE_INCREMENTAL;\n            }\n            brushIncremental(ctx, el, scope);\n        }\n    }\n    if (canBatchPath && isLast) {\n        flushPathDrawn(ctx, scope);\n    }\n    el.innerAfterBrush();\n    el.afterBrush && el.afterBrush();\n    scope.prevEl = el;\n    el.__dirty = 0;\n    el.__isRendered = true;\n}\nfunction brushIncremental(ctx, el, scope) {\n    var displayables = el.getDisplayables();\n    var temporalDisplayables = el.getTemporalDisplayables();\n    ctx.save();\n    var innerScope = {\n        prevElClipPaths: null,\n        prevEl: null,\n        allClipped: false,\n        viewWidth: scope.viewWidth,\n        viewHeight: scope.viewHeight,\n        inHover: scope.inHover\n    };\n    var i;\n    var len;\n    for (i = el.getCursor(), len = displayables.length; i < len; i++) {\n        var displayable = displayables[i];\n        displayable.beforeBrush && displayable.beforeBrush();\n        displayable.innerBeforeBrush();\n        brush(ctx, displayable, innerScope, i === len - 1);\n        displayable.innerAfterBrush();\n        displayable.afterBrush && displayable.afterBrush();\n        innerScope.prevEl = displayable;\n    }\n    for (var i_1 = 0, len_1 = temporalDisplayables.length; i_1 < len_1; i_1++) {\n        var displayable = temporalDisplayables[i_1];\n        displayable.beforeBrush && displayable.beforeBrush();\n        displayable.innerBeforeBrush();\n        brush(ctx, displayable, innerScope, i_1 === len_1 - 1);\n        displayable.innerAfterBrush();\n        displayable.afterBrush && displayable.afterBrush();\n        innerScope.prevEl = displayable;\n    }\n    el.clearTemporalDisplayables();\n    el.notClear = true;\n    ctx.restore();\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport WeakMap from 'zrender/lib/core/WeakMap';\nimport LRU from 'zrender/lib/core/LRU';\nimport { defaults, createCanvas, map, isArray } from 'zrender/lib/core/util';\nimport { getLeastCommonMultiple } from './number';\nimport { createSymbol } from './symbol';\nimport { brushSingle } from 'zrender/lib/canvas/graphic';\nvar decalMap = new WeakMap();\nvar decalCache = new LRU(100);\nvar decalKeys = ['symbol', 'symbolSize', 'symbolKeepAspect', 'color', 'backgroundColor', 'dashArrayX', 'dashArrayY', 'maxTileWidth', 'maxTileHeight'];\nexport function createOrUpdatePatternFromDecal(decalObject, api) {\n  if (decalObject === 'none') {\n    return null;\n  }\n\n  var dpr = api.getDevicePixelRatio();\n  var zr = api.getZr();\n  var isSVG = zr.painter.type === 'svg';\n\n  if (decalObject.dirty) {\n    decalMap[\"delete\"](decalObject);\n  }\n\n  var oldPattern = decalMap.get(decalObject);\n\n  if (oldPattern) {\n    return oldPattern;\n  }\n\n  var decalOpt = defaults(decalObject, {\n    symbol: 'rect',\n    symbolSize: 1,\n    symbolKeepAspect: true,\n    color: 'rgba(0, 0, 0, 0.2)',\n    backgroundColor: null,\n    dashArrayX: 5,\n    dashArrayY: 5,\n    rotation: 0,\n    maxTileWidth: 512,\n    maxTileHeight: 512\n  });\n\n  if (decalOpt.backgroundColor === 'none') {\n    decalOpt.backgroundColor = null;\n  }\n\n  var pattern = {\n    repeat: 'repeat'\n  };\n  setPatternnSource(pattern);\n  pattern.rotation = decalOpt.rotation;\n  pattern.scaleX = pattern.scaleY = isSVG ? 1 : 1 / dpr;\n  decalMap.set(decalObject, pattern);\n  decalObject.dirty = false;\n  return pattern;\n\n  function setPatternnSource(pattern) {\n    var keys = [dpr];\n    var isValidKey = true;\n\n    for (var i = 0; i < decalKeys.length; ++i) {\n      var value = decalOpt[decalKeys[i]];\n      var valueType = typeof value;\n\n      if (value != null && !isArray(value) && valueType !== 'string' && valueType !== 'number' && valueType !== 'boolean') {\n        isValidKey = false;\n        break;\n      }\n\n      keys.push(value);\n    }\n\n    var cacheKey;\n\n    if (isValidKey) {\n      cacheKey = keys.join(',') + (isSVG ? '-svg' : '');\n      var cache = decalCache.get(cacheKey);\n\n      if (cache) {\n        isSVG ? pattern.svgElement = cache : pattern.image = cache;\n      }\n    }\n\n    var dashArrayX = normalizeDashArrayX(decalOpt.dashArrayX);\n    var dashArrayY = normalizeDashArrayY(decalOpt.dashArrayY);\n    var symbolArray = normalizeSymbolArray(decalOpt.symbol);\n    var lineBlockLengthsX = getLineBlockLengthX(dashArrayX);\n    var lineBlockLengthY = getLineBlockLengthY(dashArrayY);\n    var canvas = !isSVG && createCanvas();\n    var svgRoot = isSVG && zr.painter.createSVGElement('g');\n    var pSize = getPatternSize();\n    var ctx;\n\n    if (canvas) {\n      canvas.width = pSize.width * dpr;\n      canvas.height = pSize.height * dpr;\n      ctx = canvas.getContext('2d');\n    }\n\n    brushDecal();\n\n    if (isValidKey) {\n      decalCache.put(cacheKey, canvas || svgRoot);\n    }\n\n    pattern.image = canvas;\n    pattern.svgElement = svgRoot;\n    pattern.svgWidth = pSize.width;\n    pattern.svgHeight = pSize.height;\n\n    function getPatternSize() {\n      var width = 1;\n\n      for (var i = 0, xlen = lineBlockLengthsX.length; i < xlen; ++i) {\n        width = getLeastCommonMultiple(width, lineBlockLengthsX[i]);\n      }\n\n      var symbolRepeats = 1;\n\n      for (var i = 0, xlen = symbolArray.length; i < xlen; ++i) {\n        symbolRepeats = getLeastCommonMultiple(symbolRepeats, symbolArray[i].length);\n      }\n\n      width *= symbolRepeats;\n      var height = lineBlockLengthY * lineBlockLengthsX.length * symbolArray.length;\n\n      if (process.env.NODE_ENV !== 'production') {\n        var warn = function (attrName) {\n          console.warn(\"Calculated decal size is greater than \" + attrName + \" due to decal option settings so \" + attrName + \" is used for the decal size. Please consider changing the decal option to make a smaller decal or set \" + attrName + \" to be larger to avoid incontinuity.\");\n        };\n\n        if (width > decalOpt.maxTileWidth) {\n          warn('maxTileWidth');\n        }\n\n        if (height > decalOpt.maxTileHeight) {\n          warn('maxTileHeight');\n        }\n      }\n\n      return {\n        width: Math.max(1, Math.min(width, decalOpt.maxTileWidth)),\n        height: Math.max(1, Math.min(height, decalOpt.maxTileHeight))\n      };\n    }\n\n    function brushDecal() {\n      if (ctx) {\n        ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n        if (decalOpt.backgroundColor) {\n          ctx.fillStyle = decalOpt.backgroundColor;\n          ctx.fillRect(0, 0, canvas.width, canvas.height);\n        }\n      }\n\n      var ySum = 0;\n\n      for (var i = 0; i < dashArrayY.length; ++i) {\n        ySum += dashArrayY[i];\n      }\n\n      if (ySum <= 0) {\n        return;\n      }\n\n      var y = -lineBlockLengthY;\n      var yId = 0;\n      var yIdTotal = 0;\n      var xId0 = 0;\n\n      while (y < pSize.height) {\n        if (yId % 2 === 0) {\n          var symbolYId = yIdTotal / 2 % symbolArray.length;\n          var x = 0;\n          var xId1 = 0;\n          var xId1Total = 0;\n\n          while (x < pSize.width * 2) {\n            var xSum = 0;\n\n            for (var i = 0; i < dashArrayX[xId0].length; ++i) {\n              xSum += dashArrayX[xId0][i];\n            }\n\n            if (xSum <= 0) {\n              break;\n            }\n\n            if (xId1 % 2 === 0) {\n              var size = (1 - decalOpt.symbolSize) * 0.5;\n              var left = x + dashArrayX[xId0][xId1] * size;\n              var top_1 = y + dashArrayY[yId] * size;\n              var width = dashArrayX[xId0][xId1] * decalOpt.symbolSize;\n              var height = dashArrayY[yId] * decalOpt.symbolSize;\n              var symbolXId = xId1Total / 2 % symbolArray[symbolYId].length;\n              brushSymbol(left, top_1, width, height, symbolArray[symbolYId][symbolXId]);\n            }\n\n            x += dashArrayX[xId0][xId1];\n            ++xId1Total;\n            ++xId1;\n\n            if (xId1 === dashArrayX[xId0].length) {\n              xId1 = 0;\n            }\n          }\n\n          ++xId0;\n\n          if (xId0 === dashArrayX.length) {\n            xId0 = 0;\n          }\n        }\n\n        y += dashArrayY[yId];\n        ++yIdTotal;\n        ++yId;\n\n        if (yId === dashArrayY.length) {\n          yId = 0;\n        }\n      }\n\n      function brushSymbol(x, y, width, height, symbolType) {\n        var scale = isSVG ? 1 : dpr;\n        var symbol = createSymbol(symbolType, x * scale, y * scale, width * scale, height * scale, decalOpt.color, decalOpt.symbolKeepAspect);\n\n        if (isSVG) {\n          svgRoot.appendChild(zr.painter.paintOne(symbol));\n        } else {\n          brushSingle(ctx, symbol);\n        }\n      }\n    }\n  }\n}\n\nfunction normalizeSymbolArray(symbol) {\n  if (!symbol || symbol.length === 0) {\n    return [['rect']];\n  }\n\n  if (typeof symbol === 'string') {\n    return [[symbol]];\n  }\n\n  var isAllString = true;\n\n  for (var i = 0; i < symbol.length; ++i) {\n    if (typeof symbol[i] !== 'string') {\n      isAllString = false;\n      break;\n    }\n  }\n\n  if (isAllString) {\n    return normalizeSymbolArray([symbol]);\n  }\n\n  var result = [];\n\n  for (var i = 0; i < symbol.length; ++i) {\n    if (typeof symbol[i] === 'string') {\n      result.push([symbol[i]]);\n    } else {\n      result.push(symbol[i]);\n    }\n  }\n\n  return result;\n}\n\nfunction normalizeDashArrayX(dash) {\n  if (!dash || dash.length === 0) {\n    return [[0, 0]];\n  }\n\n  if (typeof dash === 'number') {\n    var dashValue = Math.ceil(dash);\n    return [[dashValue, dashValue]];\n  }\n\n  var isAllNumber = true;\n\n  for (var i = 0; i < dash.length; ++i) {\n    if (typeof dash[i] !== 'number') {\n      isAllNumber = false;\n      break;\n    }\n  }\n\n  if (isAllNumber) {\n    return normalizeDashArrayX([dash]);\n  }\n\n  var result = [];\n\n  for (var i = 0; i < dash.length; ++i) {\n    if (typeof dash[i] === 'number') {\n      var dashValue = Math.ceil(dash[i]);\n      result.push([dashValue, dashValue]);\n    } else {\n      var dashValue = map(dash[i], function (n) {\n        return Math.ceil(n);\n      });\n\n      if (dashValue.length % 2 === 1) {\n        result.push(dashValue.concat(dashValue));\n      } else {\n        result.push(dashValue);\n      }\n    }\n  }\n\n  return result;\n}\n\nfunction normalizeDashArrayY(dash) {\n  if (!dash || typeof dash === 'object' && dash.length === 0) {\n    return [0, 0];\n  }\n\n  if (typeof dash === 'number') {\n    var dashValue_1 = Math.ceil(dash);\n    return [dashValue_1, dashValue_1];\n  }\n\n  var dashValue = map(dash, function (n) {\n    return Math.ceil(n);\n  });\n  return dash.length % 2 ? dashValue.concat(dashValue) : dashValue;\n}\n\nfunction getLineBlockLengthX(dash) {\n  return map(dash, function (line) {\n    return getLineBlockLengthY(line);\n  });\n}\n\nfunction getLineBlockLengthY(dash) {\n  var blockLength = 0;\n\n  for (var i = 0; i < dash.length; ++i) {\n    blockLength += dash[i];\n  }\n\n  if (dash.length % 2 === 1) {\n    return blockLength * 2;\n  }\n\n  return blockLength;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createOrUpdatePatternFromDecal } from '../util/decal';\nexport default function decalVisual(ecModel, api) {\n  ecModel.eachRawSeries(function (seriesModel) {\n    if (ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n\n    if (data.hasItemVisual()) {\n      data.each(function (idx) {\n        var decal = data.getItemVisual(idx, 'decal');\n\n        if (decal) {\n          var itemStyle = data.ensureUniqueItemVisual(idx, 'style');\n          itemStyle.decal = createOrUpdatePatternFromDecal(decal, api);\n        }\n      });\n    }\n\n    var decal = data.getVisual('decal');\n\n    if (decal) {\n      var style = data.getVisual('style');\n      style.decal = createOrUpdatePatternFromDecal(decal, api);\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrender from 'zrender/lib/zrender';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as colorTool from 'zrender/lib/tool/color';\nimport env from 'zrender/lib/core/env';\nimport timsort from 'zrender/lib/core/timsort';\nimport Eventful from 'zrender/lib/core/Eventful';\nimport GlobalModel from '../model/Global';\nimport ExtensionAPI from './ExtensionAPI';\nimport CoordinateSystemManager from './CoordinateSystem';\nimport OptionManager from '../model/OptionManager';\nimport backwardCompat from '../preprocessor/backwardCompat';\nimport dataStack from '../processor/dataStack';\nimport SeriesModel from '../model/Series';\nimport ComponentView from '../view/Component';\nimport ChartView from '../view/Chart';\nimport * as graphic from '../util/graphic';\nimport { getECData } from '../util/innerStore';\nimport { enterEmphasisWhenMouseOver, leaveEmphasisWhenMouseOut, isHighDownDispatcher, HOVER_STATE_EMPHASIS, HOVER_STATE_BLUR, toggleSeriesBlurState, toggleSeriesBlurStateFromPayload, toggleSelectionFromPayload, updateSeriesElementSelection, getAllSelectedIndices, isSelectChangePayload, isHighDownPayload, HIGHLIGHT_ACTION_TYPE, DOWNPLAY_ACTION_TYPE, SELECT_ACTION_TYPE, UNSELECT_ACTION_TYPE, TOGGLE_SELECT_ACTION_TYPE, savePathStates, enterEmphasis, leaveEmphasis, leaveBlur, enterSelect, leaveSelect, enterBlur } from '../util/states';\nimport * as modelUtil from '../util/model';\nimport { throttle } from '../util/throttle';\nimport { seriesStyleTask, dataStyleTask, dataColorPaletteTask } from '../visual/style';\nimport loadingDefault from '../loading/default';\nimport Scheduler from './Scheduler';\nimport lightTheme from '../theme/light';\nimport darkTheme from '../theme/dark';\nimport mapDataStorage from '../coord/geo/mapDataStorage';\nimport { parseClassType } from '../util/clazz';\nimport { ECEventProcessor } from '../util/ECEventProcessor';\nimport { seriesSymbolTask, dataSymbolTask } from '../visual/symbol';\nimport { getVisualFromData, getItemVisualFromData } from '../visual/helper';\nimport LabelManager from '../label/LabelManager';\nimport { deprecateLog, throwError } from '../util/log';\nimport { handleLegacySelectEvents } from '../legacy/dataSelectAction';\nimport { registerExternalTransform } from '../data/helper/transform';\nimport { createLocaleObject, SYSTEM_LANG } from './locale';\nimport { findEventDispatcher } from '../util/event';\nimport decal from '../visual/decal';\nvar assert = zrUtil.assert;\nvar each = zrUtil.each;\nvar isFunction = zrUtil.isFunction;\nvar isObject = zrUtil.isObject;\nvar indexOf = zrUtil.indexOf;\nvar hasWindow = typeof window !== 'undefined';\nexport var version = '5.0.1';\nexport var dependencies = {\n  zrender: '5.0.2'\n};\nvar TEST_FRAME_REMAIN_TIME = 1;\nvar PRIORITY_PROCESSOR_SERIES_FILTER = 800;\nvar PRIORITY_PROCESSOR_DATASTACK = 900;\nvar PRIORITY_PROCESSOR_FILTER = 1000;\nvar PRIORITY_PROCESSOR_DEFAULT = 2000;\nvar PRIORITY_PROCESSOR_STATISTIC = 5000;\nvar PRIORITY_VISUAL_LAYOUT = 1000;\nvar PRIORITY_VISUAL_PROGRESSIVE_LAYOUT = 1100;\nvar PRIORITY_VISUAL_GLOBAL = 2000;\nvar PRIORITY_VISUAL_CHART = 3000;\nvar PRIORITY_VISUAL_COMPONENT = 4000;\nvar PRIORITY_VISUAL_CHART_DATA_CUSTOM = 4500;\nvar PRIORITY_VISUAL_POST_CHART_LAYOUT = 4600;\nvar PRIORITY_VISUAL_BRUSH = 5000;\nvar PRIORITY_VISUAL_ARIA = 6000;\nvar PRIORITY_VISUAL_DECAL = 7000;\nexport var PRIORITY = {\n  PROCESSOR: {\n    FILTER: PRIORITY_PROCESSOR_FILTER,\n    SERIES_FILTER: PRIORITY_PROCESSOR_SERIES_FILTER,\n    STATISTIC: PRIORITY_PROCESSOR_STATISTIC\n  },\n  VISUAL: {\n    LAYOUT: PRIORITY_VISUAL_LAYOUT,\n    PROGRESSIVE_LAYOUT: PRIORITY_VISUAL_PROGRESSIVE_LAYOUT,\n    GLOBAL: PRIORITY_VISUAL_GLOBAL,\n    CHART: PRIORITY_VISUAL_CHART,\n    POST_CHART_LAYOUT: PRIORITY_VISUAL_POST_CHART_LAYOUT,\n    COMPONENT: PRIORITY_VISUAL_COMPONENT,\n    BRUSH: PRIORITY_VISUAL_BRUSH,\n    CHART_ITEM: PRIORITY_VISUAL_CHART_DATA_CUSTOM,\n    ARIA: PRIORITY_VISUAL_ARIA,\n    DECAL: PRIORITY_VISUAL_DECAL\n  }\n};\nvar IN_MAIN_PROCESS_KEY = '__flagInMainProcess';\nvar OPTION_UPDATED_KEY = '__optionUpdated';\nvar STATUS_NEEDS_UPDATE_KEY = '__needsUpdateStatus';\nvar ACTION_REG = /^[a-zA-Z0-9_]+$/;\nvar CONNECT_STATUS_KEY = '__connectUpdateStatus';\nvar CONNECT_STATUS_PENDING = 0;\nvar CONNECT_STATUS_UPDATING = 1;\nvar CONNECT_STATUS_UPDATED = 2;\n;\n\nfunction createRegisterEventWithLowercaseECharts(method) {\n  return function () {\n    var args = [];\n\n    for (var _i = 0; _i < arguments.length; _i++) {\n      args[_i] = arguments[_i];\n    }\n\n    if (this.isDisposed()) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    return toLowercaseNameAndCallEventful(this, method, args);\n  };\n}\n\nfunction createRegisterEventWithLowercaseMessageCenter(method) {\n  return function () {\n    var args = [];\n\n    for (var _i = 0; _i < arguments.length; _i++) {\n      args[_i] = arguments[_i];\n    }\n\n    return toLowercaseNameAndCallEventful(this, method, args);\n  };\n}\n\nfunction toLowercaseNameAndCallEventful(host, method, args) {\n  args[0] = args[0] && args[0].toLowerCase();\n  return Eventful.prototype[method].apply(host, args);\n}\n\nvar MessageCenter = function (_super) {\n  __extends(MessageCenter, _super);\n\n  function MessageCenter() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  return MessageCenter;\n}(Eventful);\n\nvar messageCenterProto = MessageCenter.prototype;\nmessageCenterProto.on = createRegisterEventWithLowercaseMessageCenter('on');\nmessageCenterProto.off = createRegisterEventWithLowercaseMessageCenter('off');\nvar prepare;\nvar prepareView;\nvar updateDirectly;\nvar updateMethods;\nvar doConvertPixel;\nvar updateStreamModes;\nvar doDispatchAction;\nvar flushPendingActions;\nvar triggerUpdatedEvent;\nvar bindRenderedEvent;\nvar bindMouseEvent;\nvar clearColorPalette;\nvar render;\nvar renderComponents;\nvar renderSeries;\nvar performPostUpdateFuncs;\nvar createExtensionAPI;\nvar enableConnect;\nvar setTransitionOpt;\nvar markStatusToUpdate;\nvar applyChangedStates;\n\nvar ECharts = function (_super) {\n  __extends(ECharts, _super);\n\n  function ECharts(dom, theme, opts) {\n    var _this = _super.call(this, new ECEventProcessor()) || this;\n\n    _this._chartsViews = [];\n    _this._chartsMap = {};\n    _this._componentsViews = [];\n    _this._componentsMap = {};\n    _this._pendingActions = [];\n    opts = opts || {};\n\n    if (typeof theme === 'string') {\n      theme = themeStorage[theme];\n    }\n\n    _this._dom = dom;\n    var defaultRenderer = 'canvas';\n    var defaultUseDirtyRect = false;\n\n    if (process.env.NODE_ENV !== 'production') {\n      var root = hasWindow ? window : global;\n      defaultRenderer = root.__ECHARTS__DEFAULT__RENDERER__ || defaultRenderer;\n      var devUseDirtyRect = root.__ECHARTS__DEFAULT__USE_DIRTY_RECT__;\n      defaultUseDirtyRect = devUseDirtyRect == null ? defaultUseDirtyRect : devUseDirtyRect;\n    }\n\n    var zr = _this._zr = zrender.init(dom, {\n      renderer: opts.renderer || defaultRenderer,\n      devicePixelRatio: opts.devicePixelRatio,\n      width: opts.width,\n      height: opts.height,\n      useDirtyRect: opts.useDirtyRect == null ? defaultUseDirtyRect : opts.useDirtyRect\n    });\n    _this._throttledZrFlush = throttle(zrUtil.bind(zr.flush, zr), 17);\n    theme = zrUtil.clone(theme);\n    theme && backwardCompat(theme, true);\n    _this._theme = theme;\n    _this._locale = createLocaleObject(opts.locale || SYSTEM_LANG);\n    _this._coordSysMgr = new CoordinateSystemManager();\n    var api = _this._api = createExtensionAPI(_this);\n\n    function prioritySortFunc(a, b) {\n      return a.__prio - b.__prio;\n    }\n\n    timsort(visualFuncs, prioritySortFunc);\n    timsort(dataProcessorFuncs, prioritySortFunc);\n    _this._scheduler = new Scheduler(_this, api, dataProcessorFuncs, visualFuncs);\n    _this._messageCenter = new MessageCenter();\n    _this._labelManager = new LabelManager();\n\n    _this._initEvents();\n\n    _this.resize = zrUtil.bind(_this.resize, _this);\n    zr.animation.on('frame', _this._onframe, _this);\n    bindRenderedEvent(zr, _this);\n    bindMouseEvent(zr, _this);\n    zrUtil.setAsPrimitive(_this);\n    return _this;\n  }\n\n  ECharts.prototype._onframe = function () {\n    if (this._disposed) {\n      return;\n    }\n\n    applyChangedStates(this);\n    var scheduler = this._scheduler;\n\n    if (this[OPTION_UPDATED_KEY]) {\n      var silent = this[OPTION_UPDATED_KEY].silent;\n      this[IN_MAIN_PROCESS_KEY] = true;\n      prepare(this);\n      updateMethods.update.call(this);\n\n      this._zr.flush();\n\n      this[IN_MAIN_PROCESS_KEY] = false;\n      this[OPTION_UPDATED_KEY] = false;\n      flushPendingActions.call(this, silent);\n      triggerUpdatedEvent.call(this, silent);\n    } else if (scheduler.unfinished) {\n      var remainTime = TEST_FRAME_REMAIN_TIME;\n      var ecModel = this._model;\n      var api = this._api;\n      scheduler.unfinished = false;\n\n      do {\n        var startTime = +new Date();\n        scheduler.performSeriesTasks(ecModel);\n        scheduler.performDataProcessorTasks(ecModel);\n        updateStreamModes(this, ecModel);\n        scheduler.performVisualTasks(ecModel);\n        renderSeries(this, this._model, api, 'remain');\n        remainTime -= +new Date() - startTime;\n      } while (remainTime > 0 && scheduler.unfinished);\n\n      if (!scheduler.unfinished) {\n        this._zr.flush();\n      }\n    }\n  };\n\n  ECharts.prototype.getDom = function () {\n    return this._dom;\n  };\n\n  ECharts.prototype.getId = function () {\n    return this.id;\n  };\n\n  ECharts.prototype.getZr = function () {\n    return this._zr;\n  };\n\n  ECharts.prototype.setOption = function (option, notMerge, lazyUpdate) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!this[IN_MAIN_PROCESS_KEY], '`setOption` should not be called during main process.');\n    }\n\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    var silent;\n    var replaceMerge;\n    var transitionOpt;\n\n    if (isObject(notMerge)) {\n      lazyUpdate = notMerge.lazyUpdate;\n      silent = notMerge.silent;\n      replaceMerge = notMerge.replaceMerge;\n      transitionOpt = notMerge.transition;\n      notMerge = notMerge.notMerge;\n    }\n\n    this[IN_MAIN_PROCESS_KEY] = true;\n\n    if (!this._model || notMerge) {\n      var optionManager = new OptionManager(this._api);\n      var theme = this._theme;\n      var ecModel = this._model = new GlobalModel();\n      ecModel.scheduler = this._scheduler;\n      ecModel.init(null, null, null, theme, this._locale, optionManager);\n    }\n\n    this._model.setOption(option, {\n      replaceMerge: replaceMerge\n    }, optionPreprocessorFuncs);\n\n    setTransitionOpt(this, transitionOpt);\n\n    if (lazyUpdate) {\n      this[OPTION_UPDATED_KEY] = {\n        silent: silent\n      };\n      this[IN_MAIN_PROCESS_KEY] = false;\n      this.getZr().wakeUp();\n    } else {\n      prepare(this);\n      updateMethods.update.call(this);\n\n      this._zr.flush();\n\n      this[OPTION_UPDATED_KEY] = false;\n      this[IN_MAIN_PROCESS_KEY] = false;\n      flushPendingActions.call(this, silent);\n      triggerUpdatedEvent.call(this, silent);\n    }\n  };\n\n  ECharts.prototype.setTheme = function () {\n    console.error('ECharts#setTheme() is DEPRECATED in ECharts 3.0');\n  };\n\n  ECharts.prototype.getModel = function () {\n    return this._model;\n  };\n\n  ECharts.prototype.getOption = function () {\n    return this._model && this._model.getOption();\n  };\n\n  ECharts.prototype.getWidth = function () {\n    return this._zr.getWidth();\n  };\n\n  ECharts.prototype.getHeight = function () {\n    return this._zr.getHeight();\n  };\n\n  ECharts.prototype.getDevicePixelRatio = function () {\n    return this._zr.painter.dpr || hasWindow && window.devicePixelRatio || 1;\n  };\n\n  ECharts.prototype.getRenderedCanvas = function (opts) {\n    if (!env.canvasSupported) {\n      return;\n    }\n\n    opts = zrUtil.extend({}, opts || {});\n    opts.pixelRatio = opts.pixelRatio || 1;\n    opts.backgroundColor = opts.backgroundColor || this._model.get('backgroundColor');\n    var zr = this._zr;\n    return zr.painter.getRenderedCanvas(opts);\n  };\n\n  ECharts.prototype.getSvgDataURL = function () {\n    if (!env.svgSupported) {\n      return;\n    }\n\n    var zr = this._zr;\n    var list = zr.storage.getDisplayList();\n    zrUtil.each(list, function (el) {\n      el.stopAnimation(null, true);\n    });\n    return zr.painter.toDataURL();\n  };\n\n  ECharts.prototype.getDataURL = function (opts) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    opts = opts || {};\n    var excludeComponents = opts.excludeComponents;\n    var ecModel = this._model;\n    var excludesComponentViews = [];\n    var self = this;\n    each(excludeComponents, function (componentType) {\n      ecModel.eachComponent({\n        mainType: componentType\n      }, function (component) {\n        var view = self._componentsMap[component.__viewId];\n\n        if (!view.group.ignore) {\n          excludesComponentViews.push(view);\n          view.group.ignore = true;\n        }\n      });\n    });\n    var url = this._zr.painter.getType() === 'svg' ? this.getSvgDataURL() : this.getRenderedCanvas(opts).toDataURL('image/' + (opts && opts.type || 'png'));\n    each(excludesComponentViews, function (view) {\n      view.group.ignore = false;\n    });\n    return url;\n  };\n\n  ECharts.prototype.getConnectedDataURL = function (opts) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    if (!env.canvasSupported) {\n      return;\n    }\n\n    var isSvg = opts.type === 'svg';\n    var groupId = this.group;\n    var mathMin = Math.min;\n    var mathMax = Math.max;\n    var MAX_NUMBER = Infinity;\n\n    if (connectedGroups[groupId]) {\n      var left_1 = MAX_NUMBER;\n      var top_1 = MAX_NUMBER;\n      var right_1 = -MAX_NUMBER;\n      var bottom_1 = -MAX_NUMBER;\n      var canvasList_1 = [];\n      var dpr_1 = opts && opts.pixelRatio || 1;\n      zrUtil.each(instances, function (chart, id) {\n        if (chart.group === groupId) {\n          var canvas = isSvg ? chart.getZr().painter.getSvgDom().innerHTML : chart.getRenderedCanvas(zrUtil.clone(opts));\n          var boundingRect = chart.getDom().getBoundingClientRect();\n          left_1 = mathMin(boundingRect.left, left_1);\n          top_1 = mathMin(boundingRect.top, top_1);\n          right_1 = mathMax(boundingRect.right, right_1);\n          bottom_1 = mathMax(boundingRect.bottom, bottom_1);\n          canvasList_1.push({\n            dom: canvas,\n            left: boundingRect.left,\n            top: boundingRect.top\n          });\n        }\n      });\n      left_1 *= dpr_1;\n      top_1 *= dpr_1;\n      right_1 *= dpr_1;\n      bottom_1 *= dpr_1;\n      var width = right_1 - left_1;\n      var height = bottom_1 - top_1;\n      var targetCanvas = zrUtil.createCanvas();\n      var zr_1 = zrender.init(targetCanvas, {\n        renderer: isSvg ? 'svg' : 'canvas'\n      });\n      zr_1.resize({\n        width: width,\n        height: height\n      });\n\n      if (isSvg) {\n        var content_1 = '';\n        each(canvasList_1, function (item) {\n          var x = item.left - left_1;\n          var y = item.top - top_1;\n          content_1 += '<g transform=\"translate(' + x + ',' + y + ')\">' + item.dom + '</g>';\n        });\n        zr_1.painter.getSvgRoot().innerHTML = content_1;\n\n        if (opts.connectedBackgroundColor) {\n          zr_1.painter.setBackgroundColor(opts.connectedBackgroundColor);\n        }\n\n        zr_1.refreshImmediately();\n        return zr_1.painter.toDataURL();\n      } else {\n        if (opts.connectedBackgroundColor) {\n          zr_1.add(new graphic.Rect({\n            shape: {\n              x: 0,\n              y: 0,\n              width: width,\n              height: height\n            },\n            style: {\n              fill: opts.connectedBackgroundColor\n            }\n          }));\n        }\n\n        each(canvasList_1, function (item) {\n          var img = new graphic.Image({\n            style: {\n              x: item.left * dpr_1 - left_1,\n              y: item.top * dpr_1 - top_1,\n              image: item.dom\n            }\n          });\n          zr_1.add(img);\n        });\n        zr_1.refreshImmediately();\n        return targetCanvas.toDataURL('image/' + (opts && opts.type || 'png'));\n      }\n    } else {\n      return this.getDataURL(opts);\n    }\n  };\n\n  ECharts.prototype.convertToPixel = function (finder, value) {\n    return doConvertPixel(this, 'convertToPixel', finder, value);\n  };\n\n  ECharts.prototype.convertFromPixel = function (finder, value) {\n    return doConvertPixel(this, 'convertFromPixel', finder, value);\n  };\n\n  ECharts.prototype.containPixel = function (finder, value) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    var ecModel = this._model;\n    var result;\n    var findResult = modelUtil.parseFinder(ecModel, finder);\n    zrUtil.each(findResult, function (models, key) {\n      key.indexOf('Models') >= 0 && zrUtil.each(models, function (model) {\n        var coordSys = model.coordinateSystem;\n\n        if (coordSys && coordSys.containPoint) {\n          result = result || !!coordSys.containPoint(value);\n        } else if (key === 'seriesModels') {\n          var view = this._chartsMap[model.__viewId];\n\n          if (view && view.containPoint) {\n            result = result || view.containPoint(value, model);\n          } else {\n            if (process.env.NODE_ENV !== 'production') {\n              console.warn(key + ': ' + (view ? 'The found component do not support containPoint.' : 'No view mapping to the found component.'));\n            }\n          }\n        } else {\n          if (process.env.NODE_ENV !== 'production') {\n            console.warn(key + ': containPoint is not supported');\n          }\n        }\n      }, this);\n    }, this);\n    return !!result;\n  };\n\n  ECharts.prototype.getVisual = function (finder, visualType) {\n    var ecModel = this._model;\n    var parsedFinder = modelUtil.parseFinder(ecModel, finder, {\n      defaultMainType: 'series'\n    });\n    var seriesModel = parsedFinder.seriesModel;\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!seriesModel) {\n        console.warn('There is no specified seires model');\n      }\n    }\n\n    var data = seriesModel.getData();\n    var dataIndexInside = parsedFinder.hasOwnProperty('dataIndexInside') ? parsedFinder.dataIndexInside : parsedFinder.hasOwnProperty('dataIndex') ? data.indexOfRawIndex(parsedFinder.dataIndex) : null;\n    return dataIndexInside != null ? getItemVisualFromData(data, dataIndexInside, visualType) : getVisualFromData(data, visualType);\n  };\n\n  ECharts.prototype.getViewOfComponentModel = function (componentModel) {\n    return this._componentsMap[componentModel.__viewId];\n  };\n\n  ECharts.prototype.getViewOfSeriesModel = function (seriesModel) {\n    return this._chartsMap[seriesModel.__viewId];\n  };\n\n  ECharts.prototype._initEvents = function () {\n    var _this = this;\n\n    each(MOUSE_EVENT_NAMES, function (eveName) {\n      var handler = function (e) {\n        var ecModel = _this.getModel();\n\n        var el = e.target;\n        var params;\n        var isGlobalOut = eveName === 'globalout';\n\n        if (isGlobalOut) {\n          params = {};\n        } else {\n          el && findEventDispatcher(el, function (parent) {\n            var ecData = getECData(parent);\n\n            if (ecData && ecData.dataIndex != null) {\n              var dataModel = ecData.dataModel || ecModel.getSeriesByIndex(ecData.seriesIndex);\n              params = dataModel && dataModel.getDataParams(ecData.dataIndex, ecData.dataType) || {};\n              return true;\n            } else if (ecData.eventData) {\n              params = zrUtil.extend({}, ecData.eventData);\n              return true;\n            }\n          }, true);\n        }\n\n        if (params) {\n          var componentType = params.componentType;\n          var componentIndex = params.componentIndex;\n\n          if (componentType === 'markLine' || componentType === 'markPoint' || componentType === 'markArea') {\n            componentType = 'series';\n            componentIndex = params.seriesIndex;\n          }\n\n          var model = componentType && componentIndex != null && ecModel.getComponent(componentType, componentIndex);\n          var view = model && _this[model.mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId];\n\n          if (process.env.NODE_ENV !== 'production') {\n            if (!isGlobalOut && !(model && view)) {\n              console.warn('model or view can not be found by params');\n            }\n          }\n\n          params.event = e;\n          params.type = eveName;\n          _this._$eventProcessor.eventInfo = {\n            targetEl: el,\n            packedEvent: params,\n            model: model,\n            view: view\n          };\n\n          _this.trigger(eveName, params);\n        }\n      };\n\n      handler.zrEventfulCallAtLast = true;\n\n      _this._zr.on(eveName, handler, _this);\n    });\n    each(eventActionMap, function (actionType, eventType) {\n      _this._messageCenter.on(eventType, function (event) {\n        this.trigger(eventType, event);\n      }, _this);\n    });\n    each(['selectchanged'], function (eventType) {\n      _this._messageCenter.on(eventType, function (event) {\n        this.trigger(eventType, event);\n      }, _this);\n    });\n    handleLegacySelectEvents(this._messageCenter, this, this._api);\n  };\n\n  ECharts.prototype.isDisposed = function () {\n    return this._disposed;\n  };\n\n  ECharts.prototype.clear = function () {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    this.setOption({\n      series: []\n    }, true);\n  };\n\n  ECharts.prototype.dispose = function () {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    this._disposed = true;\n    modelUtil.setAttribute(this.getDom(), DOM_ATTRIBUTE_KEY, '');\n    var api = this._api;\n    var ecModel = this._model;\n    each(this._componentsViews, function (component) {\n      component.dispose(ecModel, api);\n    });\n    each(this._chartsViews, function (chart) {\n      chart.dispose(ecModel, api);\n    });\n\n    this._zr.dispose();\n\n    delete instances[this.id];\n  };\n\n  ECharts.prototype.resize = function (opts) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!this[IN_MAIN_PROCESS_KEY], '`resize` should not be called during main process.');\n    }\n\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    this._zr.resize(opts);\n\n    var ecModel = this._model;\n    this._loadingFX && this._loadingFX.resize();\n\n    if (!ecModel) {\n      return;\n    }\n\n    var optionChanged = ecModel.resetOption('media');\n    var silent = opts && opts.silent;\n    this[IN_MAIN_PROCESS_KEY] = true;\n    optionChanged && prepare(this);\n    updateMethods.update.call(this, {\n      type: 'resize',\n      animation: {\n        duration: 0\n      }\n    });\n    this[IN_MAIN_PROCESS_KEY] = false;\n    flushPendingActions.call(this, silent);\n    triggerUpdatedEvent.call(this, silent);\n  };\n\n  ECharts.prototype.showLoading = function (name, cfg) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    if (isObject(name)) {\n      cfg = name;\n      name = '';\n    }\n\n    name = name || 'default';\n    this.hideLoading();\n\n    if (!loadingEffects[name]) {\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn('Loading effects ' + name + ' not exists.');\n      }\n\n      return;\n    }\n\n    var el = loadingEffects[name](this._api, cfg);\n    var zr = this._zr;\n    this._loadingFX = el;\n    zr.add(el);\n  };\n\n  ECharts.prototype.hideLoading = function () {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    this._loadingFX && this._zr.remove(this._loadingFX);\n    this._loadingFX = null;\n  };\n\n  ECharts.prototype.makeActionFromEvent = function (eventObj) {\n    var payload = zrUtil.extend({}, eventObj);\n    payload.type = eventActionMap[eventObj.type];\n    return payload;\n  };\n\n  ECharts.prototype.dispatchAction = function (payload, opt) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    if (!isObject(opt)) {\n      opt = {\n        silent: !!opt\n      };\n    }\n\n    if (!actions[payload.type]) {\n      return;\n    }\n\n    if (!this._model) {\n      return;\n    }\n\n    if (this[IN_MAIN_PROCESS_KEY]) {\n      this._pendingActions.push(payload);\n\n      return;\n    }\n\n    var silent = opt.silent;\n    doDispatchAction.call(this, payload, silent);\n    var flush = opt.flush;\n\n    if (flush) {\n      this._zr.flush();\n    } else if (flush !== false && env.browser.weChat) {\n      this._throttledZrFlush();\n    }\n\n    flushPendingActions.call(this, silent);\n    triggerUpdatedEvent.call(this, silent);\n  };\n\n  ECharts.prototype.updateLabelLayout = function () {\n    var labelManager = this._labelManager;\n    labelManager.updateLayoutConfig(this._api);\n    labelManager.layout(this._api);\n    labelManager.processLabelsOverall();\n  };\n\n  ECharts.prototype.appendData = function (params) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    var seriesIndex = params.seriesIndex;\n    var ecModel = this.getModel();\n    var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(params.data && seriesModel);\n    }\n\n    seriesModel.appendData(params);\n    this._scheduler.unfinished = true;\n    this.getZr().wakeUp();\n  };\n\n  ECharts.internalField = function () {\n    prepare = function (ecIns) {\n      var scheduler = ecIns._scheduler;\n      scheduler.restorePipelines(ecIns._model);\n      scheduler.prepareStageTasks();\n      prepareView(ecIns, true);\n      prepareView(ecIns, false);\n      scheduler.plan();\n    };\n\n    prepareView = function (ecIns, isComponent) {\n      var ecModel = ecIns._model;\n      var scheduler = ecIns._scheduler;\n      var viewList = isComponent ? ecIns._componentsViews : ecIns._chartsViews;\n      var viewMap = isComponent ? ecIns._componentsMap : ecIns._chartsMap;\n      var zr = ecIns._zr;\n      var api = ecIns._api;\n\n      for (var i = 0; i < viewList.length; i++) {\n        viewList[i].__alive = false;\n      }\n\n      isComponent ? ecModel.eachComponent(function (componentType, model) {\n        componentType !== 'series' && doPrepare(model);\n      }) : ecModel.eachSeries(doPrepare);\n\n      function doPrepare(model) {\n        var requireNewView = model.__requireNewView;\n        model.__requireNewView = false;\n        var viewId = '_ec_' + model.id + '_' + model.type;\n        var view = !requireNewView && viewMap[viewId];\n\n        if (!view) {\n          var classType = parseClassType(model.type);\n          var Clazz = isComponent ? ComponentView.getClass(classType.main, classType.sub) : ChartView.getClass(classType.sub);\n\n          if (process.env.NODE_ENV !== 'production') {\n            assert(Clazz, classType.sub + ' does not exist.');\n          }\n\n          view = new Clazz();\n          view.init(ecModel, api);\n          viewMap[viewId] = view;\n          viewList.push(view);\n          zr.add(view.group);\n        }\n\n        model.__viewId = view.__id = viewId;\n        view.__alive = true;\n        view.__model = model;\n        view.group.__ecComponentInfo = {\n          mainType: model.mainType,\n          index: model.componentIndex\n        };\n        !isComponent && scheduler.prepareView(view, model, ecModel, api);\n      }\n\n      for (var i = 0; i < viewList.length;) {\n        var view = viewList[i];\n\n        if (!view.__alive) {\n          !isComponent && view.renderTask.dispose();\n          zr.remove(view.group);\n          view.dispose(ecModel, api);\n          viewList.splice(i, 1);\n\n          if (viewMap[view.__id] === view) {\n            delete viewMap[view.__id];\n          }\n\n          view.__id = view.group.__ecComponentInfo = null;\n        } else {\n          i++;\n        }\n      }\n    };\n\n    updateDirectly = function (ecIns, method, payload, mainType, subType) {\n      var ecModel = ecIns._model;\n      ecModel.setUpdatePayload(payload);\n\n      if (!mainType) {\n        each([].concat(ecIns._componentsViews).concat(ecIns._chartsViews), callView);\n        return;\n      }\n\n      var query = {};\n      query[mainType + 'Id'] = payload[mainType + 'Id'];\n      query[mainType + 'Index'] = payload[mainType + 'Index'];\n      query[mainType + 'Name'] = payload[mainType + 'Name'];\n      var condition = {\n        mainType: mainType,\n        query: query\n      };\n      subType && (condition.subType = subType);\n      var excludeSeriesId = payload.excludeSeriesId;\n      var excludeSeriesIdMap;\n\n      if (excludeSeriesId != null) {\n        excludeSeriesIdMap = zrUtil.createHashMap();\n        each(modelUtil.normalizeToArray(excludeSeriesId), function (id) {\n          var modelId = modelUtil.convertOptionIdName(id, null);\n\n          if (modelId != null) {\n            excludeSeriesIdMap.set(modelId, true);\n          }\n        });\n      }\n\n      ecModel && ecModel.eachComponent(condition, function (model) {\n        if (!excludeSeriesIdMap || excludeSeriesIdMap.get(model.id) == null) {\n          if (isHighDownPayload(payload) && !payload.notBlur) {\n            if (model instanceof SeriesModel) {\n              toggleSeriesBlurStateFromPayload(model, payload, ecIns._api);\n            }\n          } else if (isSelectChangePayload(payload)) {\n            if (model instanceof SeriesModel) {\n              toggleSelectionFromPayload(model, payload, ecIns._api);\n              updateSeriesElementSelection(model);\n              markStatusToUpdate(ecIns);\n            }\n          }\n\n          callView(ecIns[mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId]);\n        }\n      }, ecIns);\n\n      function callView(view) {\n        view && view.__alive && view[method] && view[method](view.__model, ecModel, ecIns._api, payload);\n      }\n    };\n\n    updateMethods = {\n      prepareAndUpdate: function (payload) {\n        prepare(this);\n        updateMethods.update.call(this, payload);\n      },\n      update: function (payload) {\n        var ecModel = this._model;\n        var api = this._api;\n        var zr = this._zr;\n        var coordSysMgr = this._coordSysMgr;\n        var scheduler = this._scheduler;\n\n        if (!ecModel) {\n          return;\n        }\n\n        ecModel.setUpdatePayload(payload);\n        scheduler.restoreData(ecModel, payload);\n        scheduler.performSeriesTasks(ecModel);\n        coordSysMgr.create(ecModel, api);\n        scheduler.performDataProcessorTasks(ecModel, payload);\n        updateStreamModes(this, ecModel);\n        coordSysMgr.update(ecModel, api);\n        clearColorPalette(ecModel);\n        scheduler.performVisualTasks(ecModel, payload);\n        render(this, ecModel, api, payload);\n        var backgroundColor = ecModel.get('backgroundColor') || 'transparent';\n        var darkMode = ecModel.get('darkMode');\n\n        if (!env.canvasSupported) {\n          var colorArr = colorTool.parse(backgroundColor);\n          backgroundColor = colorTool.stringify(colorArr, 'rgb');\n\n          if (colorArr[3] === 0) {\n            backgroundColor = 'transparent';\n          }\n        } else {\n          zr.setBackgroundColor(backgroundColor);\n\n          if (darkMode != null && darkMode !== 'auto') {\n            zr.setDarkMode(darkMode);\n          }\n        }\n\n        performPostUpdateFuncs(ecModel, api);\n      },\n      updateTransform: function (payload) {\n        var _this = this;\n\n        var ecModel = this._model;\n        var api = this._api;\n\n        if (!ecModel) {\n          return;\n        }\n\n        ecModel.setUpdatePayload(payload);\n        var componentDirtyList = [];\n        ecModel.eachComponent(function (componentType, componentModel) {\n          if (componentType === 'series') {\n            return;\n          }\n\n          var componentView = _this.getViewOfComponentModel(componentModel);\n\n          if (componentView && componentView.__alive) {\n            if (componentView.updateTransform) {\n              var result = componentView.updateTransform(componentModel, ecModel, api, payload);\n              result && result.update && componentDirtyList.push(componentView);\n            } else {\n              componentDirtyList.push(componentView);\n            }\n          }\n        });\n        var seriesDirtyMap = zrUtil.createHashMap();\n        ecModel.eachSeries(function (seriesModel) {\n          var chartView = _this._chartsMap[seriesModel.__viewId];\n\n          if (chartView.updateTransform) {\n            var result = chartView.updateTransform(seriesModel, ecModel, api, payload);\n            result && result.update && seriesDirtyMap.set(seriesModel.uid, 1);\n          } else {\n            seriesDirtyMap.set(seriesModel.uid, 1);\n          }\n        });\n        clearColorPalette(ecModel);\n\n        this._scheduler.performVisualTasks(ecModel, payload, {\n          setDirty: true,\n          dirtyMap: seriesDirtyMap\n        });\n\n        renderSeries(this, ecModel, api, payload, seriesDirtyMap);\n        performPostUpdateFuncs(ecModel, this._api);\n      },\n      updateView: function (payload) {\n        var ecModel = this._model;\n\n        if (!ecModel) {\n          return;\n        }\n\n        ecModel.setUpdatePayload(payload);\n        ChartView.markUpdateMethod(payload, 'updateView');\n        clearColorPalette(ecModel);\n\n        this._scheduler.performVisualTasks(ecModel, payload, {\n          setDirty: true\n        });\n\n        render(this, this._model, this._api, payload);\n        performPostUpdateFuncs(ecModel, this._api);\n      },\n      updateVisual: function (payload) {\n        var _this = this;\n\n        var ecModel = this._model;\n\n        if (!ecModel) {\n          return;\n        }\n\n        ecModel.setUpdatePayload(payload);\n        ecModel.eachSeries(function (seriesModel) {\n          seriesModel.getData().clearAllVisual();\n        });\n        ChartView.markUpdateMethod(payload, 'updateVisual');\n        clearColorPalette(ecModel);\n\n        this._scheduler.performVisualTasks(ecModel, payload, {\n          visualType: 'visual',\n          setDirty: true\n        });\n\n        ecModel.eachComponent(function (componentType, componentModel) {\n          if (componentType !== 'series') {\n            var componentView = _this.getViewOfComponentModel(componentModel);\n\n            componentView && componentView.__alive && componentView.updateVisual(componentModel, ecModel, _this._api, payload);\n          }\n        });\n        ecModel.eachSeries(function (seriesModel) {\n          var chartView = _this._chartsMap[seriesModel.__viewId];\n          chartView.updateVisual(seriesModel, ecModel, _this._api, payload);\n        });\n        performPostUpdateFuncs(ecModel, this._api);\n      },\n      updateLayout: function (payload) {\n        updateMethods.update.call(this, payload);\n      }\n    };\n\n    doConvertPixel = function (ecIns, methodName, finder, value) {\n      if (ecIns._disposed) {\n        disposedWarning(ecIns.id);\n        return;\n      }\n\n      var ecModel = ecIns._model;\n\n      var coordSysList = ecIns._coordSysMgr.getCoordinateSystems();\n\n      var result;\n      var parsedFinder = modelUtil.parseFinder(ecModel, finder);\n\n      for (var i = 0; i < coordSysList.length; i++) {\n        var coordSys = coordSysList[i];\n\n        if (coordSys[methodName] && (result = coordSys[methodName](ecModel, parsedFinder, value)) != null) {\n          return result;\n        }\n      }\n\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn('No coordinate system that supports ' + methodName + ' found by the given finder.');\n      }\n    };\n\n    updateStreamModes = function (ecIns, ecModel) {\n      var chartsMap = ecIns._chartsMap;\n      var scheduler = ecIns._scheduler;\n      ecModel.eachSeries(function (seriesModel) {\n        scheduler.updateStreamModes(seriesModel, chartsMap[seriesModel.__viewId]);\n      });\n    };\n\n    doDispatchAction = function (payload, silent) {\n      var _this = this;\n\n      var ecModel = this.getModel();\n      var payloadType = payload.type;\n      var escapeConnect = payload.escapeConnect;\n      var actionWrap = actions[payloadType];\n      var actionInfo = actionWrap.actionInfo;\n      var cptTypeTmp = (actionInfo.update || 'update').split(':');\n      var updateMethod = cptTypeTmp.pop();\n      var cptType = cptTypeTmp[0] != null && parseClassType(cptTypeTmp[0]);\n      this[IN_MAIN_PROCESS_KEY] = true;\n      var payloads = [payload];\n      var batched = false;\n\n      if (payload.batch) {\n        batched = true;\n        payloads = zrUtil.map(payload.batch, function (item) {\n          item = zrUtil.defaults(zrUtil.extend({}, item), payload);\n          item.batch = null;\n          return item;\n        });\n      }\n\n      var eventObjBatch = [];\n      var eventObj;\n      var isSelectChange = isSelectChangePayload(payload);\n      var isStatusChange = isHighDownPayload(payload) || isSelectChange;\n      each(payloads, function (batchItem) {\n        eventObj = actionWrap.action(batchItem, _this._model, _this._api);\n        eventObj = eventObj || zrUtil.extend({}, batchItem);\n        eventObj.type = actionInfo.event || eventObj.type;\n        eventObjBatch.push(eventObj);\n\n        if (isStatusChange) {\n          updateDirectly(_this, updateMethod, batchItem, 'series');\n          markStatusToUpdate(_this);\n        } else if (cptType) {\n          updateDirectly(_this, updateMethod, batchItem, cptType.main, cptType.sub);\n        }\n      });\n\n      if (updateMethod !== 'none' && !isStatusChange && !cptType) {\n        if (this[OPTION_UPDATED_KEY]) {\n          prepare(this);\n          updateMethods.update.call(this, payload);\n          this[OPTION_UPDATED_KEY] = false;\n        } else {\n          updateMethods[updateMethod].call(this, payload);\n        }\n      }\n\n      if (batched) {\n        eventObj = {\n          type: actionInfo.event || payloadType,\n          escapeConnect: escapeConnect,\n          batch: eventObjBatch\n        };\n      } else {\n        eventObj = eventObjBatch[0];\n      }\n\n      this[IN_MAIN_PROCESS_KEY] = false;\n\n      if (!silent) {\n        var messageCenter = this._messageCenter;\n        messageCenter.trigger(eventObj.type, eventObj);\n\n        if (isSelectChange) {\n          var newObj = {\n            type: 'selectchanged',\n            escapeConnect: escapeConnect,\n            selected: getAllSelectedIndices(ecModel),\n            isFromClick: payload.isFromClick || false,\n            fromAction: payload.type,\n            fromActionPayload: payload\n          };\n          messageCenter.trigger(newObj.type, newObj);\n        }\n      }\n    };\n\n    flushPendingActions = function (silent) {\n      var pendingActions = this._pendingActions;\n\n      while (pendingActions.length) {\n        var payload = pendingActions.shift();\n        doDispatchAction.call(this, payload, silent);\n      }\n    };\n\n    triggerUpdatedEvent = function (silent) {\n      !silent && this.trigger('updated');\n    };\n\n    bindRenderedEvent = function (zr, ecIns) {\n      zr.on('rendered', function (params) {\n        ecIns.trigger('rendered', params);\n\n        if (zr.animation.isFinished() && !ecIns[OPTION_UPDATED_KEY] && !ecIns._scheduler.unfinished && !ecIns._pendingActions.length) {\n          ecIns.trigger('finished');\n        }\n      });\n    };\n\n    bindMouseEvent = function (zr, ecIns) {\n      zr.on('mouseover', function (e) {\n        var el = e.target;\n        var dispatcher = findEventDispatcher(el, isHighDownDispatcher);\n\n        if (dispatcher) {\n          var ecData = getECData(dispatcher);\n          toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns._api, true);\n          enterEmphasisWhenMouseOver(dispatcher, e);\n          markStatusToUpdate(ecIns);\n        }\n      }).on('mouseout', function (e) {\n        var el = e.target;\n        var dispatcher = findEventDispatcher(el, isHighDownDispatcher);\n\n        if (dispatcher) {\n          var ecData = getECData(dispatcher);\n          toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns._api, false);\n          leaveEmphasisWhenMouseOut(dispatcher, e);\n          markStatusToUpdate(ecIns);\n        }\n      }).on('click', function (e) {\n        var el = e.target;\n        var dispatcher = findEventDispatcher(el, function (target) {\n          return getECData(target).dataIndex != null;\n        }, true);\n\n        if (dispatcher) {\n          var actionType = dispatcher.selected ? 'unselect' : 'select';\n          var ecData = getECData(dispatcher);\n\n          ecIns._api.dispatchAction({\n            type: actionType,\n            dataType: ecData.dataType,\n            dataIndexInside: ecData.dataIndex,\n            seriesIndex: ecData.seriesIndex,\n            isFromClick: true\n          });\n        }\n      });\n    };\n\n    clearColorPalette = function (ecModel) {\n      ecModel.clearColorPalette();\n      ecModel.eachSeries(function (seriesModel) {\n        seriesModel.clearColorPalette();\n      });\n    };\n\n    render = function (ecIns, ecModel, api, payload) {\n      renderComponents(ecIns, ecModel, api, payload);\n      each(ecIns._chartsViews, function (chart) {\n        chart.__alive = false;\n      });\n      renderSeries(ecIns, ecModel, api, payload);\n      each(ecIns._chartsViews, function (chart) {\n        if (!chart.__alive) {\n          chart.remove(ecModel, api);\n        }\n      });\n    };\n\n    renderComponents = function (ecIns, ecModel, api, payload, dirtyList) {\n      each(dirtyList || ecIns._componentsViews, function (componentView) {\n        var componentModel = componentView.__model;\n        clearStates(componentModel, componentView);\n        componentView.render(componentModel, ecModel, api, payload);\n        updateZ(componentModel, componentView);\n        updateStates(componentModel, componentView);\n      });\n    };\n\n    renderSeries = function (ecIns, ecModel, api, payload, dirtyMap) {\n      var scheduler = ecIns._scheduler;\n      var labelManager = ecIns._labelManager;\n      labelManager.clearLabels();\n      var unfinished = false;\n      ecModel.eachSeries(function (seriesModel) {\n        var chartView = ecIns._chartsMap[seriesModel.__viewId];\n        chartView.__alive = true;\n        var renderTask = chartView.renderTask;\n        scheduler.updatePayload(renderTask, payload);\n        clearStates(seriesModel, chartView);\n\n        if (dirtyMap && dirtyMap.get(seriesModel.uid)) {\n          renderTask.dirty();\n        }\n\n        if (renderTask.perform(scheduler.getPerformArgs(renderTask))) {\n          unfinished = true;\n        }\n\n        seriesModel.__transientTransitionOpt = null;\n        chartView.group.silent = !!seriesModel.get('silent');\n        updateBlend(seriesModel, chartView);\n        updateSeriesElementSelection(seriesModel);\n        labelManager.addLabelsOfSeries(chartView);\n      });\n      scheduler.unfinished = unfinished || scheduler.unfinished;\n      labelManager.updateLayoutConfig(api);\n      labelManager.layout(api);\n      labelManager.processLabelsOverall();\n      ecModel.eachSeries(function (seriesModel) {\n        var chartView = ecIns._chartsMap[seriesModel.__viewId];\n        updateZ(seriesModel, chartView);\n        updateStates(seriesModel, chartView);\n      });\n      updateHoverLayerStatus(ecIns, ecModel);\n    };\n\n    performPostUpdateFuncs = function (ecModel, api) {\n      each(postUpdateFuncs, function (func) {\n        func(ecModel, api);\n      });\n    };\n\n    markStatusToUpdate = function (ecIns) {\n      ecIns[STATUS_NEEDS_UPDATE_KEY] = true;\n      ecIns.getZr().wakeUp();\n    };\n\n    applyChangedStates = function (ecIns) {\n      if (!ecIns[STATUS_NEEDS_UPDATE_KEY]) {\n        return;\n      }\n\n      ecIns.getZr().storage.traverse(function (el) {\n        if (graphic.isElementRemoved(el)) {\n          return;\n        }\n\n        applyElementStates(el);\n      });\n      ecIns[STATUS_NEEDS_UPDATE_KEY] = false;\n    };\n\n    function applyElementStates(el) {\n      var newStates = [];\n      var oldStates = el.currentStates;\n\n      for (var i = 0; i < oldStates.length; i++) {\n        var stateName = oldStates[i];\n\n        if (!(stateName === 'emphasis' || stateName === 'blur' || stateName === 'select')) {\n          newStates.push(stateName);\n        }\n      }\n\n      if (el.selected && el.states.select) {\n        newStates.push('select');\n      }\n\n      if (el.hoverState === HOVER_STATE_EMPHASIS && el.states.emphasis) {\n        newStates.push('emphasis');\n      } else if (el.hoverState === HOVER_STATE_BLUR && el.states.blur) {\n        newStates.push('blur');\n      }\n\n      el.useStates(newStates);\n    }\n\n    function updateHoverLayerStatus(ecIns, ecModel) {\n      var zr = ecIns._zr;\n      var storage = zr.storage;\n      var elCount = 0;\n      storage.traverse(function (el) {\n        if (!el.isGroup) {\n          elCount++;\n        }\n      });\n\n      if (elCount > ecModel.get('hoverLayerThreshold') && !env.node && !env.worker) {\n        ecModel.eachSeries(function (seriesModel) {\n          if (seriesModel.preventUsingHoverLayer) {\n            return;\n          }\n\n          var chartView = ecIns._chartsMap[seriesModel.__viewId];\n\n          if (chartView.__alive) {\n            chartView.group.traverse(function (el) {\n              if (el.states.emphasis) {\n                el.states.emphasis.hoverLayer = true;\n              }\n            });\n          }\n        });\n      }\n    }\n\n    ;\n\n    function updateBlend(seriesModel, chartView) {\n      var blendMode = seriesModel.get('blendMode') || null;\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (!env.canvasSupported && blendMode && blendMode !== 'source-over') {\n          console.warn('Only canvas support blendMode');\n        }\n      }\n\n      chartView.group.traverse(function (el) {\n        if (!el.isGroup) {\n          el.style.blend = blendMode;\n        }\n\n        if (el.eachPendingDisplayable) {\n          el.eachPendingDisplayable(function (displayable) {\n            displayable.style.blend = blendMode;\n          });\n        }\n      });\n    }\n\n    ;\n\n    function updateZ(model, view) {\n      if (model.preventAutoZ) {\n        return;\n      }\n\n      var z = model.get('z');\n      var zlevel = model.get('zlevel');\n      view.group.traverse(function (el) {\n        if (!el.isGroup) {\n          z != null && (el.z = z);\n          zlevel != null && (el.zlevel = zlevel);\n          var label = el.getTextContent();\n          var labelLine = el.getTextGuideLine();\n\n          if (label) {\n            label.z = el.z;\n            label.zlevel = el.zlevel;\n            label.z2 = el.z2 + 2;\n          }\n\n          if (labelLine) {\n            var showAbove = el.textGuideLineConfig && el.textGuideLineConfig.showAbove;\n            labelLine.z = el.z;\n            labelLine.zlevel = el.zlevel;\n            labelLine.z2 = el.z2 + (showAbove ? 1 : -1);\n          }\n        }\n      });\n    }\n\n    ;\n\n    function clearStates(model, view) {\n      view.group.traverse(function (el) {\n        if (graphic.isElementRemoved(el)) {\n          return;\n        }\n\n        var textContent = el.getTextContent();\n        var textGuide = el.getTextGuideLine();\n\n        if (el.stateTransition) {\n          el.stateTransition = null;\n        }\n\n        if (textContent && textContent.stateTransition) {\n          textContent.stateTransition = null;\n        }\n\n        if (textGuide && textGuide.stateTransition) {\n          textGuide.stateTransition = null;\n        }\n\n        if (el.hasState()) {\n          el.prevStates = el.currentStates;\n          el.clearStates();\n        } else if (el.prevStates) {\n          el.prevStates = null;\n        }\n      });\n    }\n\n    function updateStates(model, view) {\n      var stateAnimationModel = model.getModel('stateAnimation');\n      var enableAnimation = model.isAnimationEnabled();\n      var duration = stateAnimationModel.get('duration');\n      var stateTransition = duration > 0 ? {\n        duration: duration,\n        delay: stateAnimationModel.get('delay'),\n        easing: stateAnimationModel.get('easing')\n      } : null;\n      view.group.traverse(function (el) {\n        if (el.states && el.states.emphasis) {\n          if (graphic.isElementRemoved(el)) {\n            return;\n          }\n\n          if (el instanceof graphic.Path) {\n            savePathStates(el);\n          }\n\n          if (el.__dirty) {\n            var prevStates = el.prevStates;\n\n            if (prevStates) {\n              el.useStates(prevStates);\n            }\n          }\n\n          if (enableAnimation) {\n            el.stateTransition = stateTransition;\n            var textContent = el.getTextContent();\n            var textGuide = el.getTextGuideLine();\n\n            if (textContent) {\n              textContent.stateTransition = stateTransition;\n            }\n\n            if (textGuide) {\n              textGuide.stateTransition = stateTransition;\n            }\n          }\n\n          if (el.__dirty) {\n            applyElementStates(el);\n          }\n        }\n      });\n    }\n\n    ;\n\n    createExtensionAPI = function (ecIns) {\n      return new (function (_super) {\n        __extends(class_1, _super);\n\n        function class_1() {\n          return _super !== null && _super.apply(this, arguments) || this;\n        }\n\n        class_1.prototype.getCoordinateSystems = function () {\n          return ecIns._coordSysMgr.getCoordinateSystems();\n        };\n\n        class_1.prototype.getComponentByElement = function (el) {\n          while (el) {\n            var modelInfo = el.__ecComponentInfo;\n\n            if (modelInfo != null) {\n              return ecIns._model.getComponent(modelInfo.mainType, modelInfo.index);\n            }\n\n            el = el.parent;\n          }\n        };\n\n        class_1.prototype.enterEmphasis = function (el, highlightDigit) {\n          enterEmphasis(el, highlightDigit);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.leaveEmphasis = function (el, highlightDigit) {\n          leaveEmphasis(el, highlightDigit);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.enterBlur = function (el) {\n          enterBlur(el);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.leaveBlur = function (el) {\n          leaveBlur(el);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.enterSelect = function (el) {\n          enterSelect(el);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.leaveSelect = function (el) {\n          leaveSelect(el);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.getModel = function () {\n          return ecIns.getModel();\n        };\n\n        class_1.prototype.getViewOfComponentModel = function (componentModel) {\n          return ecIns.getViewOfComponentModel(componentModel);\n        };\n\n        class_1.prototype.getViewOfSeriesModel = function (seriesModel) {\n          return ecIns.getViewOfSeriesModel(seriesModel);\n        };\n\n        return class_1;\n      }(ExtensionAPI))(ecIns);\n    };\n\n    enableConnect = function (chart) {\n      function updateConnectedChartsStatus(charts, status) {\n        for (var i = 0; i < charts.length; i++) {\n          var otherChart = charts[i];\n          otherChart[CONNECT_STATUS_KEY] = status;\n        }\n      }\n\n      each(eventActionMap, function (actionType, eventType) {\n        chart._messageCenter.on(eventType, function (event) {\n          if (connectedGroups[chart.group] && chart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_PENDING) {\n            if (event && event.escapeConnect) {\n              return;\n            }\n\n            var action_1 = chart.makeActionFromEvent(event);\n            var otherCharts_1 = [];\n            each(instances, function (otherChart) {\n              if (otherChart !== chart && otherChart.group === chart.group) {\n                otherCharts_1.push(otherChart);\n              }\n            });\n            updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_PENDING);\n            each(otherCharts_1, function (otherChart) {\n              if (otherChart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_UPDATING) {\n                otherChart.dispatchAction(action_1);\n              }\n            });\n            updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_UPDATED);\n          }\n        });\n      });\n    };\n\n    setTransitionOpt = function (chart, transitionOpt) {\n      var ecModel = chart._model;\n      zrUtil.each(modelUtil.normalizeToArray(transitionOpt), function (transOpt) {\n        var errMsg;\n        var fromOpt = transOpt.from;\n        var toOpt = transOpt.to;\n\n        if (toOpt == null) {\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg = '`transition.to` must be specified.';\n          }\n\n          throwError(errMsg);\n        }\n\n        var finderOpt = {\n          includeMainTypes: ['series'],\n          enableAll: false,\n          enableNone: false\n        };\n        var fromResult = fromOpt ? modelUtil.parseFinder(ecModel, fromOpt, finderOpt) : null;\n        var toResult = modelUtil.parseFinder(ecModel, toOpt, finderOpt);\n        var toSeries = toResult.seriesModel;\n\n        if (toSeries == null) {\n          errMsg = '';\n\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg = '`transition` is only supported on series.';\n          }\n        }\n\n        if (fromResult && fromResult.seriesModel !== toSeries) {\n          errMsg = '';\n\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg = '`transition.from` and `transition.to` must be specified to the same series.';\n          }\n        }\n\n        if (errMsg != null) {\n          throwError(errMsg);\n        }\n\n        toSeries.__transientTransitionOpt = {\n          from: fromOpt ? fromOpt.dimension : null,\n          to: toOpt.dimension,\n          dividingMethod: transOpt.dividingMethod\n        };\n      });\n    };\n  }();\n\n  return ECharts;\n}(Eventful);\n\nvar echartsProto = ECharts.prototype;\nechartsProto.on = createRegisterEventWithLowercaseECharts('on');\nechartsProto.off = createRegisterEventWithLowercaseECharts('off');\n\nechartsProto.one = function (eventName, cb, ctx) {\n  var self = this;\n  deprecateLog('ECharts#one is deprecated.');\n\n  function wrapped() {\n    var args2 = [];\n\n    for (var _i = 0; _i < arguments.length; _i++) {\n      args2[_i] = arguments[_i];\n    }\n\n    cb && cb.apply && cb.apply(this, args2);\n    self.off(eventName, wrapped);\n  }\n\n  ;\n  this.on.call(this, eventName, wrapped, ctx);\n};\n\nvar MOUSE_EVENT_NAMES = ['click', 'dblclick', 'mouseover', 'mouseout', 'mousemove', 'mousedown', 'mouseup', 'globalout', 'contextmenu'];\n\nfunction disposedWarning(id) {\n  if (process.env.NODE_ENV !== 'production') {\n    console.warn('Instance ' + id + ' has been disposed');\n  }\n}\n\nvar actions = {};\nvar eventActionMap = {};\nvar dataProcessorFuncs = [];\nvar optionPreprocessorFuncs = [];\nvar postInitFuncs = [];\nvar postUpdateFuncs = [];\nvar visualFuncs = [];\nvar themeStorage = {};\nvar loadingEffects = {};\nvar instances = {};\nvar connectedGroups = {};\nvar idBase = +new Date() - 0;\nvar groupIdBase = +new Date() - 0;\nvar DOM_ATTRIBUTE_KEY = '_echarts_instance_';\nexport function init(dom, theme, opts) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (!dom) {\n      throw new Error('Initialize failed: invalid dom.');\n    }\n  }\n\n  var existInstance = getInstanceByDom(dom);\n\n  if (existInstance) {\n    if (process.env.NODE_ENV !== 'production') {\n      console.warn('There is a chart instance already initialized on the dom.');\n    }\n\n    return existInstance;\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (zrUtil.isDom(dom) && dom.nodeName.toUpperCase() !== 'CANVAS' && (!dom.clientWidth && (!opts || opts.width == null) || !dom.clientHeight && (!opts || opts.height == null))) {\n      console.warn('Can\\'t get DOM width or height. Please check ' + 'dom.clientWidth and dom.clientHeight. They should not be 0.' + 'For example, you may need to call this in the callback ' + 'of window.onload.');\n    }\n  }\n\n  var chart = new ECharts(dom, theme, opts);\n  chart.id = 'ec_' + idBase++;\n  instances[chart.id] = chart;\n  modelUtil.setAttribute(dom, DOM_ATTRIBUTE_KEY, chart.id);\n  enableConnect(chart);\n  each(postInitFuncs, function (postInitFunc) {\n    postInitFunc(chart);\n  });\n  return chart;\n}\nexport function connect(groupId) {\n  if (zrUtil.isArray(groupId)) {\n    var charts = groupId;\n    groupId = null;\n    each(charts, function (chart) {\n      if (chart.group != null) {\n        groupId = chart.group;\n      }\n    });\n    groupId = groupId || 'g_' + groupIdBase++;\n    each(charts, function (chart) {\n      chart.group = groupId;\n    });\n  }\n\n  connectedGroups[groupId] = true;\n  return groupId;\n}\nexport function disConnect(groupId) {\n  connectedGroups[groupId] = false;\n}\nexport var disconnect = disConnect;\nexport function dispose(chart) {\n  if (typeof chart === 'string') {\n    chart = instances[chart];\n  } else if (!(chart instanceof ECharts)) {\n    chart = getInstanceByDom(chart);\n  }\n\n  if (chart instanceof ECharts && !chart.isDisposed()) {\n    chart.dispose();\n  }\n}\nexport function getInstanceByDom(dom) {\n  return instances[modelUtil.getAttribute(dom, DOM_ATTRIBUTE_KEY)];\n}\nexport function getInstanceById(key) {\n  return instances[key];\n}\nexport function registerTheme(name, theme) {\n  themeStorage[name] = theme;\n}\nexport function registerPreprocessor(preprocessorFunc) {\n  if (indexOf(optionPreprocessorFuncs, preprocessorFunc) < 0) {\n    optionPreprocessorFuncs.push(preprocessorFunc);\n  }\n}\nexport function registerProcessor(priority, processor) {\n  normalizeRegister(dataProcessorFuncs, priority, processor, PRIORITY_PROCESSOR_DEFAULT);\n}\nexport function registerPostInit(postInitFunc) {\n  if (indexOf(postInitFuncs, postInitFunc) < 0) {\n    postInitFunc && postInitFuncs.push(postInitFunc);\n  }\n}\nexport function registerPostUpdate(postUpdateFunc) {\n  if (indexOf(postUpdateFuncs, postUpdateFunc) < 0) {\n    postUpdateFunc && postUpdateFuncs.push(postUpdateFunc);\n  }\n}\nexport function registerAction(actionInfo, eventName, action) {\n  if (typeof eventName === 'function') {\n    action = eventName;\n    eventName = '';\n  }\n\n  var actionType = isObject(actionInfo) ? actionInfo.type : [actionInfo, actionInfo = {\n    event: eventName\n  }][0];\n  actionInfo.event = (actionInfo.event || actionType).toLowerCase();\n  eventName = actionInfo.event;\n\n  if (eventActionMap[eventName]) {\n    return;\n  }\n\n  assert(ACTION_REG.test(actionType) && ACTION_REG.test(eventName));\n\n  if (!actions[actionType]) {\n    actions[actionType] = {\n      action: action,\n      actionInfo: actionInfo\n    };\n  }\n\n  eventActionMap[eventName] = actionType;\n}\nexport function registerCoordinateSystem(type, coordSysCreator) {\n  CoordinateSystemManager.register(type, coordSysCreator);\n}\nexport function getCoordinateSystemDimensions(type) {\n  var coordSysCreator = CoordinateSystemManager.get(type);\n\n  if (coordSysCreator) {\n    return coordSysCreator.getDimensionsInfo ? coordSysCreator.getDimensionsInfo() : coordSysCreator.dimensions.slice();\n  }\n}\nexport { registerLocale } from './locale';\n\nfunction registerLayout(priority, layoutTask) {\n  normalizeRegister(visualFuncs, priority, layoutTask, PRIORITY_VISUAL_LAYOUT, 'layout');\n}\n\nfunction registerVisual(priority, visualTask) {\n  normalizeRegister(visualFuncs, priority, visualTask, PRIORITY_VISUAL_CHART, 'visual');\n}\n\nexport { registerLayout, registerVisual };\nvar registeredTasks = [];\n\nfunction normalizeRegister(targetList, priority, fn, defaultPriority, visualType) {\n  if (isFunction(priority) || isObject(priority)) {\n    fn = priority;\n    priority = defaultPriority;\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (isNaN(priority) || priority == null) {\n      throw new Error('Illegal priority');\n    }\n\n    each(targetList, function (wrap) {\n      assert(wrap.__raw !== fn);\n    });\n  }\n\n  if (indexOf(registeredTasks, fn) >= 0) {\n    return;\n  }\n\n  registeredTasks.push(fn);\n  var stageHandler = Scheduler.wrapStageHandler(fn, visualType);\n  stageHandler.__prio = priority;\n  stageHandler.__raw = fn;\n  targetList.push(stageHandler);\n}\n\nexport function registerLoading(name, loadingFx) {\n  loadingEffects[name] = loadingFx;\n}\nexport function setCanvasCreator(creator) {\n  zrUtil.$override('createCanvas', creator);\n}\nexport function registerMap(mapName, geoJson, specialAreas) {\n  mapDataStorage.registerMap(mapName, geoJson, specialAreas);\n}\nexport function getMap(mapName) {\n  var records = mapDataStorage.retrieveMap(mapName);\n  return records && records[0] && {\n    geoJson: records[0].geoJSON,\n    specialAreas: records[0].specialAreas\n  };\n}\nexport var registerTransform = registerExternalTransform;\nregisterVisual(PRIORITY_VISUAL_GLOBAL, seriesStyleTask);\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataStyleTask);\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataColorPaletteTask);\nregisterVisual(PRIORITY_VISUAL_GLOBAL, seriesSymbolTask);\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataSymbolTask);\nregisterVisual(PRIORITY_VISUAL_DECAL, decal);\nregisterPreprocessor(backwardCompat);\nregisterProcessor(PRIORITY_PROCESSOR_DATASTACK, dataStack);\nregisterLoading('default', loadingDefault);\nregisterAction({\n  type: HIGHLIGHT_ACTION_TYPE,\n  event: HIGHLIGHT_ACTION_TYPE,\n  update: HIGHLIGHT_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n  type: DOWNPLAY_ACTION_TYPE,\n  event: DOWNPLAY_ACTION_TYPE,\n  update: DOWNPLAY_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n  type: SELECT_ACTION_TYPE,\n  event: SELECT_ACTION_TYPE,\n  update: SELECT_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n  type: UNSELECT_ACTION_TYPE,\n  event: UNSELECT_ACTION_TYPE,\n  update: UNSELECT_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n  type: TOGGLE_SELECT_ACTION_TYPE,\n  event: TOGGLE_SELECT_ACTION_TYPE,\n  update: TOGGLE_SELECT_ACTION_TYPE\n}, zrUtil.noop);\nregisterTheme('light', lightTheme);\nregisterTheme('dark', darkTheme);\nexport var dataTool = {};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { registerPreprocessor, registerProcessor, registerPostInit, registerPostUpdate, registerAction, registerCoordinateSystem, registerLayout, registerVisual, registerTransform, registerLoading, registerMap, PRIORITY } from './core/echarts';\nimport ComponentView from './view/Component';\nimport ChartView from './view/Chart';\nimport ComponentModel from './model/Component';\nimport SeriesModel from './model/Series';\nimport { isFunction, indexOf, isArray, each } from 'zrender/lib/core/util';\nimport { registerPainter } from 'zrender/lib/zrender';\nvar extensions = [];\nvar extensionRegisters = {\n  registerPreprocessor: registerPreprocessor,\n  registerProcessor: registerProcessor,\n  registerPostInit: registerPostInit,\n  registerPostUpdate: registerPostUpdate,\n  registerAction: registerAction,\n  registerCoordinateSystem: registerCoordinateSystem,\n  registerLayout: registerLayout,\n  registerVisual: registerVisual,\n  registerTransform: registerTransform,\n  registerLoading: registerLoading,\n  registerMap: registerMap,\n  PRIORITY: PRIORITY,\n  ComponentModel: ComponentModel,\n  ComponentView: ComponentView,\n  SeriesModel: SeriesModel,\n  ChartView: ChartView,\n  registerComponentModel: function (ComponentModelClass) {\n    ComponentModel.registerClass(ComponentModelClass);\n  },\n  registerComponentView: function (ComponentViewClass) {\n    ComponentView.registerClass(ComponentViewClass);\n  },\n  registerSeriesModel: function (SeriesModelClass) {\n    SeriesModel.registerClass(SeriesModelClass);\n  },\n  registerChartView: function (ChartViewClass) {\n    ChartView.registerClass(ChartViewClass);\n  },\n  registerSubTypeDefaulter: function (componentType, defaulter) {\n    ComponentModel.registerSubTypeDefaulter(componentType, defaulter);\n  },\n  registerPainter: function (painterType, PainterCtor) {\n    registerPainter(painterType, PainterCtor);\n  }\n};\nexport function use(ext) {\n  if (isArray(ext)) {\n    each(ext, function (singleExt) {\n      use(singleExt);\n    });\n    return;\n  }\n\n  if (indexOf(extensions, ext) >= 0) {\n    return;\n  }\n\n  extensions.push(ext);\n\n  if (isFunction(ext)) {\n    ext = {\n      install: ext\n    };\n  }\n\n  ext.install(extensionRegisters);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nfunction dataIndexMapValueLength(valNumOrArrLengthMoreThan2) {\n  return valNumOrArrLengthMoreThan2 == null ? 0 : valNumOrArrLengthMoreThan2.length || 1;\n}\n\nfunction defaultKeyGetter(item) {\n  return item;\n}\n\nvar DataDiffer = function () {\n  function DataDiffer(oldArr, newArr, oldKeyGetter, newKeyGetter, context, diffMode) {\n    this._old = oldArr;\n    this._new = newArr;\n    this._oldKeyGetter = oldKeyGetter || defaultKeyGetter;\n    this._newKeyGetter = newKeyGetter || defaultKeyGetter;\n    this.context = context;\n    this._diffModeMultiple = diffMode === 'multiple';\n  }\n\n  DataDiffer.prototype.add = function (func) {\n    this._add = func;\n    return this;\n  };\n\n  DataDiffer.prototype.update = function (func) {\n    this._update = func;\n    return this;\n  };\n\n  DataDiffer.prototype.updateManyToOne = function (func) {\n    this._updateManyToOne = func;\n    return this;\n  };\n\n  DataDiffer.prototype.updateOneToMany = function (func) {\n    this._updateOneToMany = func;\n    return this;\n  };\n\n  DataDiffer.prototype.remove = function (func) {\n    this._remove = func;\n    return this;\n  };\n\n  DataDiffer.prototype.execute = function () {\n    this[this._diffModeMultiple ? '_executeMultiple' : '_executeOneToOne']();\n  };\n\n  DataDiffer.prototype._executeOneToOne = function () {\n    var oldArr = this._old;\n    var newArr = this._new;\n    var newDataIndexMap = {};\n    var oldDataKeyArr = new Array(oldArr.length);\n    var newDataKeyArr = new Array(newArr.length);\n\n    this._initIndexMap(oldArr, null, oldDataKeyArr, '_oldKeyGetter');\n\n    this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, '_newKeyGetter');\n\n    for (var i = 0; i < oldArr.length; i++) {\n      var oldKey = oldDataKeyArr[i];\n      var newIdxMapVal = newDataIndexMap[oldKey];\n      var newIdxMapValLen = dataIndexMapValueLength(newIdxMapVal);\n\n      if (newIdxMapValLen > 1) {\n        var newIdx = newIdxMapVal.shift();\n\n        if (newIdxMapVal.length === 1) {\n          newDataIndexMap[oldKey] = newIdxMapVal[0];\n        }\n\n        this._update && this._update(newIdx, i);\n      } else if (newIdxMapValLen === 1) {\n        newDataIndexMap[oldKey] = null;\n        this._update && this._update(newIdxMapVal, i);\n      } else {\n        this._remove && this._remove(i);\n      }\n    }\n\n    this._performRestAdd(newDataKeyArr, newDataIndexMap);\n  };\n\n  DataDiffer.prototype._executeMultiple = function () {\n    var oldArr = this._old;\n    var newArr = this._new;\n    var oldDataIndexMap = {};\n    var newDataIndexMap = {};\n    var oldDataKeyArr = [];\n    var newDataKeyArr = [];\n\n    this._initIndexMap(oldArr, oldDataIndexMap, oldDataKeyArr, '_oldKeyGetter');\n\n    this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, '_newKeyGetter');\n\n    for (var i = 0; i < oldDataKeyArr.length; i++) {\n      var oldKey = oldDataKeyArr[i];\n      var oldIdxMapVal = oldDataIndexMap[oldKey];\n      var newIdxMapVal = newDataIndexMap[oldKey];\n      var oldIdxMapValLen = dataIndexMapValueLength(oldIdxMapVal);\n      var newIdxMapValLen = dataIndexMapValueLength(newIdxMapVal);\n\n      if (oldIdxMapValLen > 1 && newIdxMapValLen === 1) {\n        this._updateManyToOne && this._updateManyToOne(newIdxMapVal, oldIdxMapVal);\n        newDataIndexMap[oldKey] = null;\n      } else if (oldIdxMapValLen === 1 && newIdxMapValLen > 1) {\n        this._updateOneToMany && this._updateOneToMany(newIdxMapVal, oldIdxMapVal);\n        newDataIndexMap[oldKey] = null;\n      } else if (oldIdxMapValLen === 1 && newIdxMapValLen === 1) {\n        this._update && this._update(newIdxMapVal, oldIdxMapVal);\n        newDataIndexMap[oldKey] = null;\n      } else if (oldIdxMapValLen > 1) {\n        for (var i_1 = 0; i_1 < oldIdxMapValLen; i_1++) {\n          this._remove && this._remove(oldIdxMapVal[i_1]);\n        }\n      } else {\n        this._remove && this._remove(oldIdxMapVal);\n      }\n    }\n\n    this._performRestAdd(newDataKeyArr, newDataIndexMap);\n  };\n\n  DataDiffer.prototype._performRestAdd = function (newDataKeyArr, newDataIndexMap) {\n    for (var i = 0; i < newDataKeyArr.length; i++) {\n      var newKey = newDataKeyArr[i];\n      var newIdxMapVal = newDataIndexMap[newKey];\n      var idxMapValLen = dataIndexMapValueLength(newIdxMapVal);\n\n      if (idxMapValLen > 1) {\n        for (var j = 0; j < idxMapValLen; j++) {\n          this._add && this._add(newIdxMapVal[j]);\n        }\n      } else if (idxMapValLen === 1) {\n        this._add && this._add(newIdxMapVal);\n      }\n\n      newDataIndexMap[newKey] = null;\n    }\n  };\n\n  DataDiffer.prototype._initIndexMap = function (arr, map, keyArr, keyGetterName) {\n    var cbModeMultiple = this._diffModeMultiple;\n\n    for (var i = 0; i < arr.length; i++) {\n      var key = '_ec_' + this[keyGetterName](arr[i], i);\n\n      if (!cbModeMultiple) {\n        keyArr[i] = key;\n      }\n\n      if (!map) {\n        continue;\n      }\n\n      var idxMapVal = map[key];\n      var idxMapValLen = dataIndexMapValueLength(idxMapVal);\n\n      if (idxMapValLen === 0) {\n        map[key] = i;\n\n        if (cbModeMultiple) {\n          keyArr.push(key);\n        }\n      } else if (idxMapValLen === 1) {\n        map[key] = [idxMapVal, i];\n      } else {\n        idxMapVal.push(i);\n      }\n    }\n  };\n\n  return DataDiffer;\n}();\n\nexport default DataDiffer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, createHashMap, assert } from 'zrender/lib/core/util';\nimport { VISUAL_DIMENSIONS } from '../../util/types';\nexport function summarizeDimensions(data) {\n  var summary = {};\n  var encode = summary.encode = {};\n  var notExtraCoordDimMap = createHashMap();\n  var defaultedLabel = [];\n  var defaultedTooltip = [];\n  var userOutput = summary.userOutput = {\n    dimensionNames: data.dimensions.slice(),\n    encode: {}\n  };\n  each(data.dimensions, function (dimName) {\n    var dimItem = data.getDimensionInfo(dimName);\n    var coordDim = dimItem.coordDim;\n\n    if (coordDim) {\n      if (process.env.NODE_ENV !== 'production') {\n        assert(VISUAL_DIMENSIONS.get(coordDim) == null);\n      }\n\n      var coordDimIndex = dimItem.coordDimIndex;\n      getOrCreateEncodeArr(encode, coordDim)[coordDimIndex] = dimName;\n\n      if (!dimItem.isExtraCoord) {\n        notExtraCoordDimMap.set(coordDim, 1);\n\n        if (mayLabelDimType(dimItem.type)) {\n          defaultedLabel[0] = dimName;\n        }\n\n        getOrCreateEncodeArr(userOutput.encode, coordDim)[coordDimIndex] = dimItem.index;\n      }\n\n      if (dimItem.defaultTooltip) {\n        defaultedTooltip.push(dimName);\n      }\n    }\n\n    VISUAL_DIMENSIONS.each(function (v, otherDim) {\n      var encodeArr = getOrCreateEncodeArr(encode, otherDim);\n      var dimIndex = dimItem.otherDims[otherDim];\n\n      if (dimIndex != null && dimIndex !== false) {\n        encodeArr[dimIndex] = dimItem.name;\n      }\n    });\n  });\n  var dataDimsOnCoord = [];\n  var encodeFirstDimNotExtra = {};\n  notExtraCoordDimMap.each(function (v, coordDim) {\n    var dimArr = encode[coordDim];\n    encodeFirstDimNotExtra[coordDim] = dimArr[0];\n    dataDimsOnCoord = dataDimsOnCoord.concat(dimArr);\n  });\n  summary.dataDimsOnCoord = dataDimsOnCoord;\n  summary.encodeFirstDimNotExtra = encodeFirstDimNotExtra;\n  var encodeLabel = encode.label;\n\n  if (encodeLabel && encodeLabel.length) {\n    defaultedLabel = encodeLabel.slice();\n  }\n\n  var encodeTooltip = encode.tooltip;\n\n  if (encodeTooltip && encodeTooltip.length) {\n    defaultedTooltip = encodeTooltip.slice();\n  } else if (!defaultedTooltip.length) {\n    defaultedTooltip = defaultedLabel.slice();\n  }\n\n  encode.defaultedLabel = defaultedLabel;\n  encode.defaultedTooltip = defaultedTooltip;\n  return summary;\n}\n\nfunction getOrCreateEncodeArr(encode, dim) {\n  if (!encode.hasOwnProperty(dim)) {\n    encode[dim] = [];\n  }\n\n  return encode[dim];\n}\n\nexport function getDimensionTypeByAxis(axisType) {\n  return axisType === 'category' ? 'ordinal' : axisType === 'time' ? 'time' : 'float';\n}\n\nfunction mayLabelDimType(dimType) {\n  return !(dimType === 'ordinal' || dimType === 'time');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nvar DataDimensionInfo = function () {\n  function DataDimensionInfo(opt) {\n    this.otherDims = {};\n\n    if (opt != null) {\n      zrUtil.extend(this, opt);\n    }\n  }\n\n  return DataDimensionInfo;\n}();\n\n;\nexport default DataDimensionInfo;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Model from '../model/Model';\nimport DataDiffer from './DataDiffer';\nimport { DefaultDataProvider } from './helper/dataProvider';\nimport { summarizeDimensions } from './helper/dimensionHelper';\nimport DataDimensionInfo from './DataDimensionInfo';\nimport { SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ORIGINAL } from '../util/types';\nimport { isDataItemOption, convertOptionIdName } from '../util/model';\nimport { getECData } from '../util/innerStore';\nimport { parseDataValue } from './helper/dataValueHelper';\nimport { isSourceInstance } from './Source';\nvar mathFloor = Math.floor;\nvar isObject = zrUtil.isObject;\nvar map = zrUtil.map;\nvar UNDEFINED = 'undefined';\nvar INDEX_NOT_FOUND = -1;\nvar ID_PREFIX = 'e\\0\\0';\nvar dataCtors = {\n  'float': typeof Float64Array === UNDEFINED ? Array : Float64Array,\n  'int': typeof Int32Array === UNDEFINED ? Array : Int32Array,\n  'ordinal': Array,\n  'number': Array,\n  'time': Array\n};\nvar CtorUint32Array = typeof Uint32Array === UNDEFINED ? Array : Uint32Array;\nvar CtorInt32Array = typeof Int32Array === UNDEFINED ? Array : Int32Array;\nvar CtorUint16Array = typeof Uint16Array === UNDEFINED ? Array : Uint16Array;\nvar TRANSFERABLE_PROPERTIES = ['hasItemOption', '_nameList', '_idList', '_invertedIndicesMap', '_rawData', '_dimValueGetter', '_count', '_rawCount', '_nameDimIdx', '_idDimIdx', '_nameRepeatCount'];\nvar CLONE_PROPERTIES = ['_extent', '_approximateExtent', '_rawExtent'];\nvar defaultDimValueGetters;\nvar prepareInvertedIndex;\nvar getIndicesCtor;\nvar prepareStorage;\nvar getRawIndexWithoutIndices;\nvar getRawIndexWithIndices;\nvar getId;\nvar getIdNameFromStore;\nvar makeIdFromName;\nvar normalizeDimensions;\nvar validateDimensions;\nvar cloneListForMapAndSample;\nvar getInitialExtent;\nvar setItemDataAndSeriesIndex;\nvar transferProperties;\n\nvar List = function () {\n  function List(dimensions, hostModel) {\n    this.type = 'list';\n    this._count = 0;\n    this._rawCount = 0;\n    this._storage = {};\n    this._storageArr = [];\n    this._nameList = [];\n    this._idList = [];\n    this._visual = {};\n    this._layout = {};\n    this._itemVisuals = [];\n    this._itemLayouts = [];\n    this._graphicEls = [];\n    this._rawExtent = {};\n    this._extent = {};\n    this._approximateExtent = {};\n    this._calculationInfo = {};\n    this.hasItemOption = true;\n    this.TRANSFERABLE_METHODS = ['cloneShallow', 'downSample', 'lttbDownSample', 'map'];\n    this.CHANGABLE_METHODS = ['filterSelf', 'selectRange'];\n    this.DOWNSAMPLE_METHODS = ['downSample', 'lttbDownSample'];\n    this.getRawIndex = getRawIndexWithoutIndices;\n    dimensions = dimensions || ['x', 'y'];\n    var dimensionInfos = {};\n    var dimensionNames = [];\n    var invertedIndicesMap = {};\n\n    for (var i = 0; i < dimensions.length; i++) {\n      var dimInfoInput = dimensions[i];\n      var dimensionInfo = zrUtil.isString(dimInfoInput) ? new DataDimensionInfo({\n        name: dimInfoInput\n      }) : !(dimInfoInput instanceof DataDimensionInfo) ? new DataDimensionInfo(dimInfoInput) : dimInfoInput;\n      var dimensionName = dimensionInfo.name;\n      dimensionInfo.type = dimensionInfo.type || 'float';\n\n      if (!dimensionInfo.coordDim) {\n        dimensionInfo.coordDim = dimensionName;\n        dimensionInfo.coordDimIndex = 0;\n      }\n\n      var otherDims = dimensionInfo.otherDims = dimensionInfo.otherDims || {};\n      dimensionNames.push(dimensionName);\n      dimensionInfos[dimensionName] = dimensionInfo;\n      dimensionInfo.index = i;\n\n      if (dimensionInfo.createInvertedIndices) {\n        invertedIndicesMap[dimensionName] = [];\n      }\n\n      if (otherDims.itemName === 0) {\n        this._nameDimIdx = i;\n        this._nameOrdinalMeta = dimensionInfo.ordinalMeta;\n      }\n\n      if (otherDims.itemId === 0) {\n        this._idDimIdx = i;\n        this._idOrdinalMeta = dimensionInfo.ordinalMeta;\n      }\n    }\n\n    this.dimensions = dimensionNames;\n    this._dimensionInfos = dimensionInfos;\n    this.hostModel = hostModel;\n    this._dimensionsSummary = summarizeDimensions(this);\n    this._invertedIndicesMap = invertedIndicesMap;\n    this.userOutput = this._dimensionsSummary.userOutput;\n  }\n\n  List.prototype.getDimension = function (dim) {\n    if (typeof dim === 'number' || !isNaN(dim) && !this._dimensionInfos.hasOwnProperty(dim)) {\n      dim = this.dimensions[dim];\n    }\n\n    return dim;\n  };\n\n  List.prototype.getDimensionInfo = function (dim) {\n    return this._dimensionInfos[this.getDimension(dim)];\n  };\n\n  List.prototype.getDimensionsOnCoord = function () {\n    return this._dimensionsSummary.dataDimsOnCoord.slice();\n  };\n\n  List.prototype.mapDimension = function (coordDim, idx) {\n    var dimensionsSummary = this._dimensionsSummary;\n\n    if (idx == null) {\n      return dimensionsSummary.encodeFirstDimNotExtra[coordDim];\n    }\n\n    var dims = dimensionsSummary.encode[coordDim];\n    return dims ? dims[idx] : null;\n  };\n\n  List.prototype.mapDimensionsAll = function (coordDim) {\n    var dimensionsSummary = this._dimensionsSummary;\n    var dims = dimensionsSummary.encode[coordDim];\n    return (dims || []).slice();\n  };\n\n  List.prototype.initData = function (data, nameList, dimValueGetter) {\n    var notProvider = isSourceInstance(data) || zrUtil.isArrayLike(data);\n    var provider = notProvider ? new DefaultDataProvider(data, this.dimensions.length) : data;\n\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.assert(notProvider || zrUtil.isFunction(provider.getItem) && zrUtil.isFunction(provider.count), 'Inavlid data provider.');\n    }\n\n    this._rawData = provider;\n    var sourceFormat = provider.getSource().sourceFormat;\n    this._storage = {};\n    this._indices = null;\n    this._dontMakeIdFromName = this._idDimIdx != null || sourceFormat === SOURCE_FORMAT_TYPED_ARRAY || !!provider.fillStorage;\n    this._nameList = (nameList || []).slice();\n    this._idList = [];\n    this._nameRepeatCount = {};\n\n    if (!dimValueGetter) {\n      this.hasItemOption = false;\n    }\n\n    this.defaultDimValueGetter = defaultDimValueGetters[sourceFormat];\n    this._dimValueGetter = dimValueGetter = dimValueGetter || this.defaultDimValueGetter;\n    this._dimValueGetterArrayRows = defaultDimValueGetters.arrayRows;\n    this._rawExtent = {};\n\n    this._initDataFromProvider(0, provider.count());\n\n    if (provider.pure) {\n      this.hasItemOption = false;\n    }\n  };\n\n  List.prototype.getProvider = function () {\n    return this._rawData;\n  };\n\n  List.prototype.appendData = function (data) {\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.assert(!this._indices, 'appendData can only be called on raw data.');\n    }\n\n    var rawData = this._rawData;\n    var start = this.count();\n    rawData.appendData(data);\n    var end = rawData.count();\n\n    if (!rawData.persistent) {\n      end += start;\n    }\n\n    this._initDataFromProvider(start, end, true);\n  };\n\n  List.prototype.appendValues = function (values, names) {\n    var storage = this._storage;\n    var dimensions = this.dimensions;\n    var dimLen = dimensions.length;\n    var rawExtent = this._rawExtent;\n    var start = this.count();\n    var end = start + Math.max(values.length, names ? names.length : 0);\n\n    for (var i = 0; i < dimLen; i++) {\n      var dim = dimensions[i];\n\n      if (!rawExtent[dim]) {\n        rawExtent[dim] = getInitialExtent();\n      }\n\n      prepareStorage(storage, this._dimensionInfos[dim], end, true);\n    }\n\n    var rawExtentArr = map(dimensions, function (dim) {\n      return rawExtent[dim];\n    });\n    var storageArr = this._storageArr = map(dimensions, function (dim) {\n      return storage[dim];\n    });\n    var emptyDataItem = [];\n\n    for (var idx = start; idx < end; idx++) {\n      var sourceIdx = idx - start;\n\n      for (var dimIdx = 0; dimIdx < dimLen; dimIdx++) {\n        var dim = dimensions[dimIdx];\n\n        var val = this._dimValueGetterArrayRows(values[sourceIdx] || emptyDataItem, dim, sourceIdx, dimIdx);\n\n        storageArr[dimIdx][idx] = val;\n        var dimRawExtent = rawExtentArr[dimIdx];\n        val < dimRawExtent[0] && (dimRawExtent[0] = val);\n        val > dimRawExtent[1] && (dimRawExtent[1] = val);\n      }\n\n      if (names) {\n        this._nameList[idx] = names[sourceIdx];\n\n        if (!this._dontMakeIdFromName) {\n          makeIdFromName(this, idx);\n        }\n      }\n    }\n\n    this._rawCount = this._count = end;\n    this._extent = {};\n    prepareInvertedIndex(this);\n  };\n\n  List.prototype._initDataFromProvider = function (start, end, append) {\n    if (start >= end) {\n      return;\n    }\n\n    var rawData = this._rawData;\n    var storage = this._storage;\n    var dimensions = this.dimensions;\n    var dimLen = dimensions.length;\n    var dimensionInfoMap = this._dimensionInfos;\n    var nameList = this._nameList;\n    var idList = this._idList;\n    var rawExtent = this._rawExtent;\n    var sourceFormat = rawData.getSource().sourceFormat;\n    var isFormatOriginal = sourceFormat === SOURCE_FORMAT_ORIGINAL;\n\n    for (var i = 0; i < dimLen; i++) {\n      var dim = dimensions[i];\n\n      if (!rawExtent[dim]) {\n        rawExtent[dim] = getInitialExtent();\n      }\n\n      prepareStorage(storage, dimensionInfoMap[dim], end, append);\n    }\n\n    var storageArr = this._storageArr = map(dimensions, function (dim) {\n      return storage[dim];\n    });\n    var rawExtentArr = map(dimensions, function (dim) {\n      return rawExtent[dim];\n    });\n\n    if (rawData.fillStorage) {\n      rawData.fillStorage(start, end, storageArr, rawExtentArr);\n    } else {\n      var dataItem = [];\n\n      for (var idx = start; idx < end; idx++) {\n        dataItem = rawData.getItem(idx, dataItem);\n\n        for (var dimIdx = 0; dimIdx < dimLen; dimIdx++) {\n          var dim = dimensions[dimIdx];\n          var dimStorage = storageArr[dimIdx];\n\n          var val = this._dimValueGetter(dataItem, dim, idx, dimIdx);\n\n          dimStorage[idx] = val;\n          var dimRawExtent = rawExtentArr[dimIdx];\n          val < dimRawExtent[0] && (dimRawExtent[0] = val);\n          val > dimRawExtent[1] && (dimRawExtent[1] = val);\n        }\n\n        if (isFormatOriginal && !rawData.pure && dataItem) {\n          var itemName = dataItem.name;\n\n          if (nameList[idx] == null && itemName != null) {\n            nameList[idx] = convertOptionIdName(itemName, null);\n          }\n\n          var itemId = dataItem.id;\n\n          if (idList[idx] == null && itemId != null) {\n            idList[idx] = convertOptionIdName(itemId, null);\n          }\n        }\n\n        if (!this._dontMakeIdFromName) {\n          makeIdFromName(this, idx);\n        }\n      }\n    }\n\n    if (!rawData.persistent && rawData.clean) {\n      rawData.clean();\n    }\n\n    this._rawCount = this._count = end;\n    this._extent = {};\n    prepareInvertedIndex(this);\n  };\n\n  List.prototype.count = function () {\n    return this._count;\n  };\n\n  List.prototype.getIndices = function () {\n    var newIndices;\n    var indices = this._indices;\n\n    if (indices) {\n      var Ctor = indices.constructor;\n      var thisCount = this._count;\n\n      if (Ctor === Array) {\n        newIndices = new Ctor(thisCount);\n\n        for (var i = 0; i < thisCount; i++) {\n          newIndices[i] = indices[i];\n        }\n      } else {\n        newIndices = new Ctor(indices.buffer, 0, thisCount);\n      }\n    } else {\n      var Ctor = getIndicesCtor(this);\n      newIndices = new Ctor(this.count());\n\n      for (var i = 0; i < newIndices.length; i++) {\n        newIndices[i] = i;\n      }\n    }\n\n    return newIndices;\n  };\n\n  List.prototype.getByDimIdx = function (dimIdx, idx) {\n    if (!(idx >= 0 && idx < this._count)) {\n      return NaN;\n    }\n\n    var dimStore = this._storageArr[dimIdx];\n    return dimStore ? dimStore[this.getRawIndex(idx)] : NaN;\n  };\n\n  List.prototype.get = function (dim, idx) {\n    if (!(idx >= 0 && idx < this._count)) {\n      return NaN;\n    }\n\n    var dimStore = this._storage[dim];\n    return dimStore ? dimStore[this.getRawIndex(idx)] : NaN;\n  };\n\n  List.prototype.getByRawIndex = function (dim, rawIdx) {\n    if (!(rawIdx >= 0 && rawIdx < this._rawCount)) {\n      return NaN;\n    }\n\n    var dimStore = this._storage[dim];\n    return dimStore ? dimStore[rawIdx] : NaN;\n  };\n\n  List.prototype.getValues = function (dimensions, idx) {\n    var values = [];\n\n    if (!zrUtil.isArray(dimensions)) {\n      idx = dimensions;\n      dimensions = this.dimensions;\n    }\n\n    for (var i = 0, len = dimensions.length; i < len; i++) {\n      values.push(this.get(dimensions[i], idx));\n    }\n\n    return values;\n  };\n\n  List.prototype.hasValue = function (idx) {\n    var dataDimsOnCoord = this._dimensionsSummary.dataDimsOnCoord;\n\n    for (var i = 0, len = dataDimsOnCoord.length; i < len; i++) {\n      if (isNaN(this.get(dataDimsOnCoord[i], idx))) {\n        return false;\n      }\n    }\n\n    return true;\n  };\n\n  List.prototype.getDataExtent = function (dim) {\n    dim = this.getDimension(dim);\n    var dimData = this._storage[dim];\n    var initialExtent = getInitialExtent();\n\n    if (!dimData) {\n      return initialExtent;\n    }\n\n    var currEnd = this.count();\n    var useRaw = !this._indices;\n    var dimExtent;\n\n    if (useRaw) {\n      return this._rawExtent[dim].slice();\n    }\n\n    dimExtent = this._extent[dim];\n\n    if (dimExtent) {\n      return dimExtent.slice();\n    }\n\n    dimExtent = initialExtent;\n    var min = dimExtent[0];\n    var max = dimExtent[1];\n\n    for (var i = 0; i < currEnd; i++) {\n      var rawIdx = this.getRawIndex(i);\n      var value = dimData[rawIdx];\n      value < min && (min = value);\n      value > max && (max = value);\n    }\n\n    dimExtent = [min, max];\n    this._extent[dim] = dimExtent;\n    return dimExtent;\n  };\n\n  List.prototype.getApproximateExtent = function (dim) {\n    dim = this.getDimension(dim);\n    return this._approximateExtent[dim] || this.getDataExtent(dim);\n  };\n\n  List.prototype.setApproximateExtent = function (extent, dim) {\n    dim = this.getDimension(dim);\n    this._approximateExtent[dim] = extent.slice();\n  };\n\n  List.prototype.getCalculationInfo = function (key) {\n    return this._calculationInfo[key];\n  };\n\n  List.prototype.setCalculationInfo = function (key, value) {\n    isObject(key) ? zrUtil.extend(this._calculationInfo, key) : this._calculationInfo[key] = value;\n  };\n\n  List.prototype.getSum = function (dim) {\n    var dimData = this._storage[dim];\n    var sum = 0;\n\n    if (dimData) {\n      for (var i = 0, len = this.count(); i < len; i++) {\n        var value = this.get(dim, i);\n\n        if (!isNaN(value)) {\n          sum += value;\n        }\n      }\n    }\n\n    return sum;\n  };\n\n  List.prototype.getMedian = function (dim) {\n    var dimDataArray = [];\n    this.each(dim, function (val) {\n      if (!isNaN(val)) {\n        dimDataArray.push(val);\n      }\n    });\n    var sortedDimDataArray = dimDataArray.sort(function (a, b) {\n      return a - b;\n    });\n    var len = this.count();\n    return len === 0 ? 0 : len % 2 === 1 ? sortedDimDataArray[(len - 1) / 2] : (sortedDimDataArray[len / 2] + sortedDimDataArray[len / 2 - 1]) / 2;\n  };\n\n  List.prototype.rawIndexOf = function (dim, value) {\n    var invertedIndices = dim && this._invertedIndicesMap[dim];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!invertedIndices) {\n        throw new Error('Do not supported yet');\n      }\n    }\n\n    var rawIndex = invertedIndices[value];\n\n    if (rawIndex == null || isNaN(rawIndex)) {\n      return INDEX_NOT_FOUND;\n    }\n\n    return rawIndex;\n  };\n\n  List.prototype.indexOfName = function (name) {\n    for (var i = 0, len = this.count(); i < len; i++) {\n      if (this.getName(i) === name) {\n        return i;\n      }\n    }\n\n    return -1;\n  };\n\n  List.prototype.indexOfRawIndex = function (rawIndex) {\n    if (rawIndex >= this._rawCount || rawIndex < 0) {\n      return -1;\n    }\n\n    if (!this._indices) {\n      return rawIndex;\n    }\n\n    var indices = this._indices;\n    var rawDataIndex = indices[rawIndex];\n\n    if (rawDataIndex != null && rawDataIndex < this._count && rawDataIndex === rawIndex) {\n      return rawIndex;\n    }\n\n    var left = 0;\n    var right = this._count - 1;\n\n    while (left <= right) {\n      var mid = (left + right) / 2 | 0;\n\n      if (indices[mid] < rawIndex) {\n        left = mid + 1;\n      } else if (indices[mid] > rawIndex) {\n        right = mid - 1;\n      } else {\n        return mid;\n      }\n    }\n\n    return -1;\n  };\n\n  List.prototype.indicesOfNearest = function (dim, value, maxDistance) {\n    var storage = this._storage;\n    var dimData = storage[dim];\n    var nearestIndices = [];\n\n    if (!dimData) {\n      return nearestIndices;\n    }\n\n    if (maxDistance == null) {\n      maxDistance = Infinity;\n    }\n\n    var minDist = Infinity;\n    var minDiff = -1;\n    var nearestIndicesLen = 0;\n\n    for (var i = 0, len = this.count(); i < len; i++) {\n      var dataIndex = this.getRawIndex(i);\n      var diff = value - dimData[dataIndex];\n      var dist = Math.abs(diff);\n\n      if (dist <= maxDistance) {\n        if (dist < minDist || dist === minDist && diff >= 0 && minDiff < 0) {\n          minDist = dist;\n          minDiff = diff;\n          nearestIndicesLen = 0;\n        }\n\n        if (diff === minDiff) {\n          nearestIndices[nearestIndicesLen++] = i;\n        }\n      }\n    }\n\n    nearestIndices.length = nearestIndicesLen;\n    return nearestIndices;\n  };\n\n  List.prototype.getRawDataItem = function (idx) {\n    if (!this._rawData.persistent) {\n      var val = [];\n\n      for (var i = 0; i < this.dimensions.length; i++) {\n        var dim = this.dimensions[i];\n        val.push(this.get(dim, idx));\n      }\n\n      return val;\n    } else {\n      return this._rawData.getItem(this.getRawIndex(idx));\n    }\n  };\n\n  List.prototype.getName = function (idx) {\n    var rawIndex = this.getRawIndex(idx);\n    var name = this._nameList[rawIndex];\n\n    if (name == null && this._nameDimIdx != null) {\n      name = getIdNameFromStore(this, this._nameDimIdx, this._nameOrdinalMeta, rawIndex);\n    }\n\n    if (name == null) {\n      name = '';\n    }\n\n    return name;\n  };\n\n  List.prototype.getId = function (idx) {\n    return getId(this, this.getRawIndex(idx));\n  };\n\n  List.prototype.each = function (dims, cb, ctx, ctxCompat) {\n    'use strict';\n\n    var _this = this;\n\n    if (!this._count) {\n      return;\n    }\n\n    if (typeof dims === 'function') {\n      ctxCompat = ctx;\n      ctx = cb;\n      cb = dims;\n      dims = [];\n    }\n\n    var fCtx = ctx || ctxCompat || this;\n    var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\n\n    if (process.env.NODE_ENV !== 'production') {\n      validateDimensions(this, dimNames);\n    }\n\n    var dimSize = dimNames.length;\n    var dimIndices = map(dimNames, function (dimName) {\n      return _this._dimensionInfos[dimName].index;\n    });\n    var storageArr = this._storageArr;\n\n    for (var i = 0, len = this.count(); i < len; i++) {\n      var rawIdx = this.getRawIndex(i);\n\n      switch (dimSize) {\n        case 0:\n          cb.call(fCtx, i);\n          break;\n\n        case 1:\n          cb.call(fCtx, storageArr[dimIndices[0]][rawIdx], i);\n          break;\n\n        case 2:\n          cb.call(fCtx, storageArr[dimIndices[0]][rawIdx], storageArr[dimIndices[1]][rawIdx], i);\n          break;\n\n        default:\n          var k = 0;\n          var value = [];\n\n          for (; k < dimSize; k++) {\n            value[k] = storageArr[dimIndices[k]][rawIdx];\n          }\n\n          value[k] = i;\n          cb.apply(fCtx, value);\n      }\n    }\n  };\n\n  List.prototype.filterSelf = function (dims, cb, ctx, ctxCompat) {\n    'use strict';\n\n    var _this = this;\n\n    if (!this._count) {\n      return;\n    }\n\n    if (typeof dims === 'function') {\n      ctxCompat = ctx;\n      ctx = cb;\n      cb = dims;\n      dims = [];\n    }\n\n    var fCtx = ctx || ctxCompat || this;\n    var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\n\n    if (process.env.NODE_ENV !== 'production') {\n      validateDimensions(this, dimNames);\n    }\n\n    var count = this.count();\n    var Ctor = getIndicesCtor(this);\n    var newIndices = new Ctor(count);\n    var value = [];\n    var dimSize = dimNames.length;\n    var offset = 0;\n    var dimIndices = map(dimNames, function (dimName) {\n      return _this._dimensionInfos[dimName].index;\n    });\n    var dim0 = dimIndices[0];\n    var storageArr = this._storageArr;\n\n    for (var i = 0; i < count; i++) {\n      var keep = void 0;\n      var rawIdx = this.getRawIndex(i);\n\n      if (dimSize === 0) {\n        keep = cb.call(fCtx, i);\n      } else if (dimSize === 1) {\n        var val = storageArr[dim0][rawIdx];\n        keep = cb.call(fCtx, val, i);\n      } else {\n        var k = 0;\n\n        for (; k < dimSize; k++) {\n          value[k] = storageArr[dimIndices[k]][rawIdx];\n        }\n\n        value[k] = i;\n        keep = cb.apply(fCtx, value);\n      }\n\n      if (keep) {\n        newIndices[offset++] = rawIdx;\n      }\n    }\n\n    if (offset < count) {\n      this._indices = newIndices;\n    }\n\n    this._count = offset;\n    this._extent = {};\n    this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n    return this;\n  };\n\n  List.prototype.selectRange = function (range) {\n    'use strict';\n\n    var _this = this;\n\n    var len = this._count;\n\n    if (!len) {\n      return;\n    }\n\n    var dimensions = [];\n\n    for (var dim in range) {\n      if (range.hasOwnProperty(dim)) {\n        dimensions.push(dim);\n      }\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      validateDimensions(this, dimensions);\n    }\n\n    var dimSize = dimensions.length;\n\n    if (!dimSize) {\n      return;\n    }\n\n    var originalCount = this.count();\n    var Ctor = getIndicesCtor(this);\n    var newIndices = new Ctor(originalCount);\n    var offset = 0;\n    var dim0 = dimensions[0];\n    var dimIndices = map(dimensions, function (dimName) {\n      return _this._dimensionInfos[dimName].index;\n    });\n    var min = range[dim0][0];\n    var max = range[dim0][1];\n    var storageArr = this._storageArr;\n    var quickFinished = false;\n\n    if (!this._indices) {\n      var idx = 0;\n\n      if (dimSize === 1) {\n        var dimStorage = storageArr[dimIndices[0]];\n\n        for (var i = 0; i < len; i++) {\n          var val = dimStorage[i];\n\n          if (val >= min && val <= max || isNaN(val)) {\n            newIndices[offset++] = idx;\n          }\n\n          idx++;\n        }\n\n        quickFinished = true;\n      } else if (dimSize === 2) {\n        var dimStorage = storageArr[dimIndices[0]];\n        var dimStorage2 = storageArr[dimIndices[1]];\n        var min2 = range[dimensions[1]][0];\n        var max2 = range[dimensions[1]][1];\n\n        for (var i = 0; i < len; i++) {\n          var val = dimStorage[i];\n          var val2 = dimStorage2[i];\n\n          if ((val >= min && val <= max || isNaN(val)) && (val2 >= min2 && val2 <= max2 || isNaN(val2))) {\n            newIndices[offset++] = idx;\n          }\n\n          idx++;\n        }\n\n        quickFinished = true;\n      }\n    }\n\n    if (!quickFinished) {\n      if (dimSize === 1) {\n        for (var i = 0; i < originalCount; i++) {\n          var rawIndex = this.getRawIndex(i);\n          var val = storageArr[dimIndices[0]][rawIndex];\n\n          if (val >= min && val <= max || isNaN(val)) {\n            newIndices[offset++] = rawIndex;\n          }\n        }\n      } else {\n        for (var i = 0; i < originalCount; i++) {\n          var keep = true;\n          var rawIndex = this.getRawIndex(i);\n\n          for (var k = 0; k < dimSize; k++) {\n            var dimk = dimensions[k];\n            var val = storageArr[dimIndices[k]][rawIndex];\n\n            if (val < range[dimk][0] || val > range[dimk][1]) {\n              keep = false;\n            }\n          }\n\n          if (keep) {\n            newIndices[offset++] = this.getRawIndex(i);\n          }\n        }\n      }\n    }\n\n    if (offset < originalCount) {\n      this._indices = newIndices;\n    }\n\n    this._count = offset;\n    this._extent = {};\n    this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n    return this;\n  };\n\n  List.prototype.mapArray = function (dims, cb, ctx, ctxCompat) {\n    'use strict';\n\n    if (typeof dims === 'function') {\n      ctxCompat = ctx;\n      ctx = cb;\n      cb = dims;\n      dims = [];\n    }\n\n    ctx = ctx || ctxCompat || this;\n    var result = [];\n    this.each(dims, function () {\n      result.push(cb && cb.apply(this, arguments));\n    }, ctx);\n    return result;\n  };\n\n  List.prototype.map = function (dims, cb, ctx, ctxCompat) {\n    'use strict';\n\n    var fCtx = ctx || ctxCompat || this;\n    var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\n\n    if (process.env.NODE_ENV !== 'production') {\n      validateDimensions(this, dimNames);\n    }\n\n    var list = cloneListForMapAndSample(this, dimNames);\n    var storage = list._storage;\n    list._indices = this._indices;\n    list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n    var tmpRetValue = [];\n    var dimSize = dimNames.length;\n    var dataCount = this.count();\n    var values = [];\n    var rawExtent = list._rawExtent;\n\n    for (var dataIndex = 0; dataIndex < dataCount; dataIndex++) {\n      for (var dimIndex = 0; dimIndex < dimSize; dimIndex++) {\n        values[dimIndex] = this.get(dimNames[dimIndex], dataIndex);\n      }\n\n      values[dimSize] = dataIndex;\n      var retValue = cb && cb.apply(fCtx, values);\n\n      if (retValue != null) {\n        if (typeof retValue !== 'object') {\n          tmpRetValue[0] = retValue;\n          retValue = tmpRetValue;\n        }\n\n        var rawIndex = this.getRawIndex(dataIndex);\n\n        for (var i = 0; i < retValue.length; i++) {\n          var dim = dimNames[i];\n          var val = retValue[i];\n          var rawExtentOnDim = rawExtent[dim];\n          var dimStore = storage[dim];\n\n          if (dimStore) {\n            dimStore[rawIndex] = val;\n          }\n\n          if (val < rawExtentOnDim[0]) {\n            rawExtentOnDim[0] = val;\n          }\n\n          if (val > rawExtentOnDim[1]) {\n            rawExtentOnDim[1] = val;\n          }\n        }\n      }\n    }\n\n    return list;\n  };\n\n  List.prototype.downSample = function (dimension, rate, sampleValue, sampleIndex) {\n    var list = cloneListForMapAndSample(this, [dimension]);\n    var targetStorage = list._storage;\n    var frameValues = [];\n    var frameSize = mathFloor(1 / rate);\n    var dimStore = targetStorage[dimension];\n    var len = this.count();\n    var rawExtentOnDim = list._rawExtent[dimension];\n    var newIndices = new (getIndicesCtor(this))(len);\n    var offset = 0;\n\n    for (var i = 0; i < len; i += frameSize) {\n      if (frameSize > len - i) {\n        frameSize = len - i;\n        frameValues.length = frameSize;\n      }\n\n      for (var k = 0; k < frameSize; k++) {\n        var dataIdx = this.getRawIndex(i + k);\n        frameValues[k] = dimStore[dataIdx];\n      }\n\n      var value = sampleValue(frameValues);\n      var sampleFrameIdx = this.getRawIndex(Math.min(i + sampleIndex(frameValues, value) || 0, len - 1));\n      dimStore[sampleFrameIdx] = value;\n\n      if (value < rawExtentOnDim[0]) {\n        rawExtentOnDim[0] = value;\n      }\n\n      if (value > rawExtentOnDim[1]) {\n        rawExtentOnDim[1] = value;\n      }\n\n      newIndices[offset++] = sampleFrameIdx;\n    }\n\n    list._count = offset;\n    list._indices = newIndices;\n    list.getRawIndex = getRawIndexWithIndices;\n    return list;\n  };\n\n  List.prototype.lttbDownSample = function (valueDimension, rate) {\n    var list = cloneListForMapAndSample(this, []);\n    var targetStorage = list._storage;\n    var dimStore = targetStorage[valueDimension];\n    var len = this.count();\n    var newIndices = new (getIndicesCtor(this))(len);\n    var sampledIndex = 0;\n    var frameSize = mathFloor(1 / rate);\n    var currentRawIndex = this.getRawIndex(0);\n    var maxArea;\n    var area;\n    var nextRawIndex;\n    newIndices[sampledIndex++] = currentRawIndex;\n\n    for (var i = 1; i < len - 1; i += frameSize) {\n      var nextFrameStart = Math.min(i + frameSize, len - 1);\n      var nextFrameEnd = Math.min(i + frameSize * 2, len);\n      var avgX = (nextFrameEnd + nextFrameStart) / 2;\n      var avgY = 0;\n\n      for (var idx = nextFrameStart; idx < nextFrameEnd; idx++) {\n        var rawIndex = this.getRawIndex(idx);\n        var y = dimStore[rawIndex];\n\n        if (isNaN(y)) {\n          continue;\n        }\n\n        avgY += y;\n      }\n\n      avgY /= nextFrameEnd - nextFrameStart;\n      var frameStart = i;\n      var frameEnd = Math.min(i + frameSize, len);\n      var pointAX = i - 1;\n      var pointAY = dimStore[currentRawIndex];\n      maxArea = -1;\n      nextRawIndex = frameStart;\n\n      for (var idx = frameStart; idx < frameEnd; idx++) {\n        var rawIndex = this.getRawIndex(idx);\n        var y = dimStore[rawIndex];\n\n        if (isNaN(y)) {\n          continue;\n        }\n\n        area = Math.abs((pointAX - avgX) * (y - pointAY) - (pointAX - idx) * (avgY - pointAY));\n\n        if (area > maxArea) {\n          maxArea = area;\n          nextRawIndex = rawIndex;\n        }\n      }\n\n      newIndices[sampledIndex++] = nextRawIndex;\n      currentRawIndex = nextRawIndex;\n    }\n\n    newIndices[sampledIndex++] = this.getRawIndex(len - 1);\n    list._count = sampledIndex;\n    list._indices = newIndices;\n    list.getRawIndex = getRawIndexWithIndices;\n    return list;\n  };\n\n  List.prototype.getItemModel = function (idx) {\n    var hostModel = this.hostModel;\n    var dataItem = this.getRawDataItem(idx);\n    return new Model(dataItem, hostModel, hostModel && hostModel.ecModel);\n  };\n\n  List.prototype.diff = function (otherList) {\n    var thisList = this;\n    return new DataDiffer(otherList ? otherList.getIndices() : [], this.getIndices(), function (idx) {\n      return getId(otherList, idx);\n    }, function (idx) {\n      return getId(thisList, idx);\n    });\n  };\n\n  List.prototype.getVisual = function (key) {\n    var visual = this._visual;\n    return visual && visual[key];\n  };\n\n  List.prototype.setVisual = function (kvObj, val) {\n    this._visual = this._visual || {};\n\n    if (isObject(kvObj)) {\n      zrUtil.extend(this._visual, kvObj);\n    } else {\n      this._visual[kvObj] = val;\n    }\n  };\n\n  List.prototype.getItemVisual = function (idx, key) {\n    var itemVisual = this._itemVisuals[idx];\n    var val = itemVisual && itemVisual[key];\n\n    if (val == null) {\n      return this.getVisual(key);\n    }\n\n    return val;\n  };\n\n  List.prototype.hasItemVisual = function () {\n    return this._itemVisuals.length > 0;\n  };\n\n  List.prototype.ensureUniqueItemVisual = function (idx, key) {\n    var itemVisuals = this._itemVisuals;\n    var itemVisual = itemVisuals[idx];\n\n    if (!itemVisual) {\n      itemVisual = itemVisuals[idx] = {};\n    }\n\n    var val = itemVisual[key];\n\n    if (val == null) {\n      val = this.getVisual(key);\n\n      if (zrUtil.isArray(val)) {\n        val = val.slice();\n      } else if (isObject(val)) {\n        val = zrUtil.extend({}, val);\n      }\n\n      itemVisual[key] = val;\n    }\n\n    return val;\n  };\n\n  List.prototype.setItemVisual = function (idx, key, value) {\n    var itemVisual = this._itemVisuals[idx] || {};\n    this._itemVisuals[idx] = itemVisual;\n\n    if (isObject(key)) {\n      zrUtil.extend(itemVisual, key);\n    } else {\n      itemVisual[key] = value;\n    }\n  };\n\n  List.prototype.clearAllVisual = function () {\n    this._visual = {};\n    this._itemVisuals = [];\n  };\n\n  List.prototype.setLayout = function (key, val) {\n    if (isObject(key)) {\n      for (var name_1 in key) {\n        if (key.hasOwnProperty(name_1)) {\n          this.setLayout(name_1, key[name_1]);\n        }\n      }\n\n      return;\n    }\n\n    this._layout[key] = val;\n  };\n\n  List.prototype.getLayout = function (key) {\n    return this._layout[key];\n  };\n\n  List.prototype.getItemLayout = function (idx) {\n    return this._itemLayouts[idx];\n  };\n\n  List.prototype.setItemLayout = function (idx, layout, merge) {\n    this._itemLayouts[idx] = merge ? zrUtil.extend(this._itemLayouts[idx] || {}, layout) : layout;\n  };\n\n  List.prototype.clearItemLayouts = function () {\n    this._itemLayouts.length = 0;\n  };\n\n  List.prototype.setItemGraphicEl = function (idx, el) {\n    var hostModel = this.hostModel;\n\n    if (el) {\n      var ecData = getECData(el);\n      ecData.dataIndex = idx;\n      ecData.dataType = this.dataType;\n      ecData.seriesIndex = hostModel && hostModel.seriesIndex;\n\n      if (el.type === 'group') {\n        el.traverse(setItemDataAndSeriesIndex, el);\n      }\n    }\n\n    this._graphicEls[idx] = el;\n  };\n\n  List.prototype.getItemGraphicEl = function (idx) {\n    return this._graphicEls[idx];\n  };\n\n  List.prototype.eachItemGraphicEl = function (cb, context) {\n    zrUtil.each(this._graphicEls, function (el, idx) {\n      if (el) {\n        cb && cb.call(context, el, idx);\n      }\n    });\n  };\n\n  List.prototype.cloneShallow = function (list) {\n    if (!list) {\n      var dimensionInfoList = map(this.dimensions, this.getDimensionInfo, this);\n      list = new List(dimensionInfoList, this.hostModel);\n    }\n\n    list._storage = this._storage;\n    list._storageArr = this._storageArr;\n    transferProperties(list, this);\n\n    if (this._indices) {\n      var Ctor = this._indices.constructor;\n\n      if (Ctor === Array) {\n        var thisCount = this._indices.length;\n        list._indices = new Ctor(thisCount);\n\n        for (var i = 0; i < thisCount; i++) {\n          list._indices[i] = this._indices[i];\n        }\n      } else {\n        list._indices = new Ctor(this._indices);\n      }\n    } else {\n      list._indices = null;\n    }\n\n    list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n    return list;\n  };\n\n  List.prototype.wrapMethod = function (methodName, injectFunction) {\n    var originalMethod = this[methodName];\n\n    if (typeof originalMethod !== 'function') {\n      return;\n    }\n\n    this.__wrappedMethods = this.__wrappedMethods || [];\n\n    this.__wrappedMethods.push(methodName);\n\n    this[methodName] = function () {\n      var res = originalMethod.apply(this, arguments);\n      return injectFunction.apply(this, [res].concat(zrUtil.slice(arguments)));\n    };\n  };\n\n  List.internalField = function () {\n    defaultDimValueGetters = {\n      arrayRows: getDimValueSimply,\n      objectRows: function (dataItem, dimName, dataIndex, dimIndex) {\n        return parseDataValue(dataItem[dimName], this._dimensionInfos[dimName]);\n      },\n      keyedColumns: getDimValueSimply,\n      original: function (dataItem, dimName, dataIndex, dimIndex) {\n        var value = dataItem && (dataItem.value == null ? dataItem : dataItem.value);\n\n        if (!this._rawData.pure && isDataItemOption(dataItem)) {\n          this.hasItemOption = true;\n        }\n\n        return parseDataValue(value instanceof Array ? value[dimIndex] : value, this._dimensionInfos[dimName]);\n      },\n      typedArray: function (dataItem, dimName, dataIndex, dimIndex) {\n        return dataItem[dimIndex];\n      }\n    };\n\n    function getDimValueSimply(dataItem, dimName, dataIndex, dimIndex) {\n      return parseDataValue(dataItem[dimIndex], this._dimensionInfos[dimName]);\n    }\n\n    prepareInvertedIndex = function (list) {\n      var invertedIndicesMap = list._invertedIndicesMap;\n      zrUtil.each(invertedIndicesMap, function (invertedIndices, dim) {\n        var dimInfo = list._dimensionInfos[dim];\n        var ordinalMeta = dimInfo.ordinalMeta;\n\n        if (ordinalMeta) {\n          invertedIndices = invertedIndicesMap[dim] = new CtorInt32Array(ordinalMeta.categories.length);\n\n          for (var i = 0; i < invertedIndices.length; i++) {\n            invertedIndices[i] = INDEX_NOT_FOUND;\n          }\n\n          for (var i = 0; i < list._count; i++) {\n            invertedIndices[list.get(dim, i)] = i;\n          }\n        }\n      });\n    };\n\n    getIdNameFromStore = function (list, dimIdx, ordinalMeta, rawIndex) {\n      var val;\n      var chunk = list._storageArr[dimIdx];\n\n      if (chunk) {\n        val = chunk[rawIndex];\n\n        if (ordinalMeta && ordinalMeta.categories.length) {\n          val = ordinalMeta.categories[val];\n        }\n      }\n\n      return convertOptionIdName(val, null);\n    };\n\n    getIndicesCtor = function (list) {\n      return list._rawCount > 65535 ? CtorUint32Array : CtorUint16Array;\n    };\n\n    prepareStorage = function (storage, dimInfo, end, append) {\n      var DataCtor = dataCtors[dimInfo.type];\n      var dim = dimInfo.name;\n\n      if (append) {\n        var oldStore = storage[dim];\n        var oldLen = oldStore && oldStore.length;\n\n        if (!(oldLen === end)) {\n          var newStore = new DataCtor(end);\n\n          for (var j = 0; j < oldLen; j++) {\n            newStore[j] = oldStore[j];\n          }\n\n          storage[dim] = newStore;\n        }\n      } else {\n        storage[dim] = new DataCtor(end);\n      }\n    };\n\n    getRawIndexWithoutIndices = function (idx) {\n      return idx;\n    };\n\n    getRawIndexWithIndices = function (idx) {\n      if (idx < this._count && idx >= 0) {\n        return this._indices[idx];\n      }\n\n      return -1;\n    };\n\n    getId = function (list, rawIndex) {\n      var id = list._idList[rawIndex];\n\n      if (id == null && list._idDimIdx != null) {\n        id = getIdNameFromStore(list, list._idDimIdx, list._idOrdinalMeta, rawIndex);\n      }\n\n      if (id == null) {\n        id = ID_PREFIX + rawIndex;\n      }\n\n      return id;\n    };\n\n    normalizeDimensions = function (dimensions) {\n      if (!zrUtil.isArray(dimensions)) {\n        dimensions = dimensions != null ? [dimensions] : [];\n      }\n\n      return dimensions;\n    };\n\n    validateDimensions = function (list, dims) {\n      for (var i = 0; i < dims.length; i++) {\n        if (!list._dimensionInfos[dims[i]]) {\n          console.error('Unkown dimension ' + dims[i]);\n        }\n      }\n    };\n\n    cloneListForMapAndSample = function (original, excludeDimensions) {\n      var allDimensions = original.dimensions;\n      var list = new List(map(allDimensions, original.getDimensionInfo, original), original.hostModel);\n      transferProperties(list, original);\n      var storage = list._storage = {};\n      var originalStorage = original._storage;\n      var storageArr = list._storageArr = [];\n\n      for (var i = 0; i < allDimensions.length; i++) {\n        var dim = allDimensions[i];\n\n        if (originalStorage[dim]) {\n          if (zrUtil.indexOf(excludeDimensions, dim) >= 0) {\n            storage[dim] = cloneChunk(originalStorage[dim]);\n            list._rawExtent[dim] = getInitialExtent();\n            list._extent[dim] = null;\n          } else {\n            storage[dim] = originalStorage[dim];\n          }\n\n          storageArr.push(storage[dim]);\n        }\n      }\n\n      return list;\n    };\n\n    function cloneChunk(originalChunk) {\n      var Ctor = originalChunk.constructor;\n      return Ctor === Array ? originalChunk.slice() : new Ctor(originalChunk);\n    }\n\n    getInitialExtent = function () {\n      return [Infinity, -Infinity];\n    };\n\n    setItemDataAndSeriesIndex = function (child) {\n      var childECData = getECData(child);\n      var thisECData = getECData(this);\n      childECData.seriesIndex = thisECData.seriesIndex;\n      childECData.dataIndex = thisECData.dataIndex;\n      childECData.dataType = thisECData.dataType;\n    };\n\n    transferProperties = function (target, source) {\n      zrUtil.each(TRANSFERABLE_PROPERTIES.concat(source.__wrappedMethods || []), function (propName) {\n        if (source.hasOwnProperty(propName)) {\n          target[propName] = source[propName];\n        }\n      });\n      target.__wrappedMethods = source.__wrappedMethods;\n      zrUtil.each(CLONE_PROPERTIES, function (propName) {\n        target[propName] = zrUtil.clone(source[propName]);\n      });\n      target._calculationInfo = zrUtil.extend({}, source._calculationInfo);\n    };\n\n    makeIdFromName = function (list, idx) {\n      var nameList = list._nameList;\n      var idList = list._idList;\n      var nameDimIdx = list._nameDimIdx;\n      var idDimIdx = list._idDimIdx;\n      var name = nameList[idx];\n      var id = idList[idx];\n\n      if (name == null && nameDimIdx != null) {\n        nameList[idx] = name = getIdNameFromStore(list, nameDimIdx, list._nameOrdinalMeta, idx);\n      }\n\n      if (id == null && idDimIdx != null) {\n        idList[idx] = id = getIdNameFromStore(list, idDimIdx, list._idOrdinalMeta, idx);\n      }\n\n      if (id == null && name != null) {\n        var nameRepeatCount = list._nameRepeatCount;\n        var nmCnt = nameRepeatCount[name] = (nameRepeatCount[name] || 0) + 1;\n        id = name;\n\n        if (nmCnt > 1) {\n          id += '__ec__' + nmCnt;\n        }\n\n        idList[idx] = id;\n      }\n    };\n  }();\n\n  return List;\n}();\n\nexport default List;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, each, isString, defaults, extend, isObject, clone } from 'zrender/lib/core/util';\nimport { normalizeToArray } from '../../util/model';\nimport { guessOrdinal, BE_ORDINAL } from './sourceHelper';\nimport { createSourceFromSeriesDataOption, isSourceInstance } from '../Source';\nimport { VISUAL_DIMENSIONS } from '../../util/types';\nimport DataDimensionInfo from '../DataDimensionInfo';\n\nfunction completeDimensions(sysDims, source, opt) {\n  if (!isSourceInstance(source)) {\n    source = createSourceFromSeriesDataOption(source);\n  }\n\n  opt = opt || {};\n  sysDims = (sysDims || []).slice();\n  var dimsDef = (opt.dimsDef || []).slice();\n  var dataDimNameMap = createHashMap();\n  var coordDimNameMap = createHashMap();\n  var result = [];\n  var dimCount = getDimCount(source, sysDims, dimsDef, opt.dimCount);\n\n  for (var i = 0; i < dimCount; i++) {\n    var dimDefItemRaw = dimsDef[i];\n    var dimDefItem = dimsDef[i] = extend({}, isObject(dimDefItemRaw) ? dimDefItemRaw : {\n      name: dimDefItemRaw\n    });\n    var userDimName = dimDefItem.name;\n    var resultItem = result[i] = new DataDimensionInfo();\n\n    if (userDimName != null && dataDimNameMap.get(userDimName) == null) {\n      resultItem.name = resultItem.displayName = userDimName;\n      dataDimNameMap.set(userDimName, i);\n    }\n\n    dimDefItem.type != null && (resultItem.type = dimDefItem.type);\n    dimDefItem.displayName != null && (resultItem.displayName = dimDefItem.displayName);\n  }\n\n  var encodeDef = opt.encodeDef;\n\n  if (!encodeDef && opt.encodeDefaulter) {\n    encodeDef = opt.encodeDefaulter(source, dimCount);\n  }\n\n  var encodeDefMap = createHashMap(encodeDef);\n  encodeDefMap.each(function (dataDimsRaw, coordDim) {\n    var dataDims = normalizeToArray(dataDimsRaw).slice();\n\n    if (dataDims.length === 1 && !isString(dataDims[0]) && dataDims[0] < 0) {\n      encodeDefMap.set(coordDim, false);\n      return;\n    }\n\n    var validDataDims = encodeDefMap.set(coordDim, []);\n    each(dataDims, function (resultDimIdxOrName, idx) {\n      var resultDimIdx = isString(resultDimIdxOrName) ? dataDimNameMap.get(resultDimIdxOrName) : resultDimIdxOrName;\n\n      if (resultDimIdx != null && resultDimIdx < dimCount) {\n        validDataDims[idx] = resultDimIdx;\n        applyDim(result[resultDimIdx], coordDim, idx);\n      }\n    });\n  });\n  var availDimIdx = 0;\n  each(sysDims, function (sysDimItemRaw) {\n    var coordDim;\n    var sysDimItemDimsDef;\n    var sysDimItemOtherDims;\n    var sysDimItem;\n\n    if (isString(sysDimItemRaw)) {\n      coordDim = sysDimItemRaw;\n      sysDimItem = {};\n    } else {\n      sysDimItem = sysDimItemRaw;\n      coordDim = sysDimItem.name;\n      var ordinalMeta = sysDimItem.ordinalMeta;\n      sysDimItem.ordinalMeta = null;\n      sysDimItem = clone(sysDimItem);\n      sysDimItem.ordinalMeta = ordinalMeta;\n      sysDimItemDimsDef = sysDimItem.dimsDef;\n      sysDimItemOtherDims = sysDimItem.otherDims;\n      sysDimItem.name = sysDimItem.coordDim = sysDimItem.coordDimIndex = sysDimItem.dimsDef = sysDimItem.otherDims = null;\n    }\n\n    var dataDims = encodeDefMap.get(coordDim);\n\n    if (dataDims === false) {\n      return;\n    }\n\n    dataDims = normalizeToArray(dataDims);\n\n    if (!dataDims.length) {\n      for (var i = 0; i < (sysDimItemDimsDef && sysDimItemDimsDef.length || 1); i++) {\n        while (availDimIdx < result.length && result[availDimIdx].coordDim != null) {\n          availDimIdx++;\n        }\n\n        availDimIdx < result.length && dataDims.push(availDimIdx++);\n      }\n    }\n\n    each(dataDims, function (resultDimIdx, coordDimIndex) {\n      var resultItem = result[resultDimIdx];\n      applyDim(defaults(resultItem, sysDimItem), coordDim, coordDimIndex);\n\n      if (resultItem.name == null && sysDimItemDimsDef) {\n        var sysDimItemDimsDefItem = sysDimItemDimsDef[coordDimIndex];\n        !isObject(sysDimItemDimsDefItem) && (sysDimItemDimsDefItem = {\n          name: sysDimItemDimsDefItem\n        });\n        resultItem.name = resultItem.displayName = sysDimItemDimsDefItem.name;\n        resultItem.defaultTooltip = sysDimItemDimsDefItem.defaultTooltip;\n      }\n\n      sysDimItemOtherDims && defaults(resultItem.otherDims, sysDimItemOtherDims);\n    });\n  });\n\n  function applyDim(resultItem, coordDim, coordDimIndex) {\n    if (VISUAL_DIMENSIONS.get(coordDim) != null) {\n      resultItem.otherDims[coordDim] = coordDimIndex;\n    } else {\n      resultItem.coordDim = coordDim;\n      resultItem.coordDimIndex = coordDimIndex;\n      coordDimNameMap.set(coordDim, true);\n    }\n  }\n\n  var generateCoord = opt.generateCoord;\n  var generateCoordCount = opt.generateCoordCount;\n  var fromZero = generateCoordCount != null;\n  generateCoordCount = generateCoord ? generateCoordCount || 1 : 0;\n  var extra = generateCoord || 'value';\n\n  for (var resultDimIdx = 0; resultDimIdx < dimCount; resultDimIdx++) {\n    var resultItem = result[resultDimIdx] = result[resultDimIdx] || new DataDimensionInfo();\n    var coordDim = resultItem.coordDim;\n\n    if (coordDim == null) {\n      resultItem.coordDim = genName(extra, coordDimNameMap, fromZero);\n      resultItem.coordDimIndex = 0;\n\n      if (!generateCoord || generateCoordCount <= 0) {\n        resultItem.isExtraCoord = true;\n      }\n\n      generateCoordCount--;\n    }\n\n    resultItem.name == null && (resultItem.name = genName(resultItem.coordDim, dataDimNameMap, false));\n\n    if (resultItem.type == null && (guessOrdinal(source, resultDimIdx) === BE_ORDINAL.Must || resultItem.isExtraCoord && (resultItem.otherDims.itemName != null || resultItem.otherDims.seriesName != null))) {\n      resultItem.type = 'ordinal';\n    }\n  }\n\n  return result;\n}\n\nfunction getDimCount(source, sysDims, dimsDef, optDimCount) {\n  var dimCount = Math.max(source.dimensionsDetectedCount || 1, sysDims.length, dimsDef.length, optDimCount || 0);\n  each(sysDims, function (sysDimItem) {\n    var sysDimItemDimsDef;\n\n    if (isObject(sysDimItem) && (sysDimItemDimsDef = sysDimItem.dimsDef)) {\n      dimCount = Math.max(dimCount, sysDimItemDimsDef.length);\n    }\n  });\n  return dimCount;\n}\n\nfunction genName(name, map, fromZero) {\n  if (fromZero || map.get(name) != null) {\n    var i = 0;\n\n    while (map.get(name + i) != null) {\n      i++;\n    }\n\n    name += i;\n  }\n\n  map.set(name, true);\n  return name;\n}\n\nexport default completeDimensions;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport completeDimensions from './completeDimensions';\nexport default function createDimensions(source, opt) {\n  opt = opt || {};\n  return completeDimensions(opt.coordDimensions || [], source, {\n    dimsDef: opt.dimensionsDefine || source.dimensionsDefine,\n    encodeDef: opt.encodeDefine || source.encodeDefine,\n    dimCount: opt.dimensionsCount,\n    encodeDefaulter: opt.encodeDefaulter,\n    generateCoord: opt.generateCoord,\n    generateCoordCount: opt.generateCoordCount\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, retrieve, each } from 'zrender/lib/core/util';\nimport { SINGLE_REFERRING } from '../util/model';\n\nvar CoordSysInfo = function () {\n  function CoordSysInfo(coordSysName) {\n    this.coordSysDims = [];\n    this.axisMap = createHashMap();\n    this.categoryAxisMap = createHashMap();\n    this.coordSysName = coordSysName;\n  }\n\n  return CoordSysInfo;\n}();\n\nexport function getCoordSysInfoBySeries(seriesModel) {\n  var coordSysName = seriesModel.get('coordinateSystem');\n  var result = new CoordSysInfo(coordSysName);\n  var fetch = fetchers[coordSysName];\n\n  if (fetch) {\n    fetch(seriesModel, result, result.axisMap, result.categoryAxisMap);\n    return result;\n  }\n}\nvar fetchers = {\n  cartesian2d: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var xAxisModel = seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0];\n    var yAxisModel = seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!xAxisModel) {\n        throw new Error('xAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('xAxisId'), 0) + '\" not found');\n      }\n\n      if (!yAxisModel) {\n        throw new Error('yAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('yAxisId'), 0) + '\" not found');\n      }\n    }\n\n    result.coordSysDims = ['x', 'y'];\n    axisMap.set('x', xAxisModel);\n    axisMap.set('y', yAxisModel);\n\n    if (isCategory(xAxisModel)) {\n      categoryAxisMap.set('x', xAxisModel);\n      result.firstCategoryDimIndex = 0;\n    }\n\n    if (isCategory(yAxisModel)) {\n      categoryAxisMap.set('y', yAxisModel);\n      result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\n    }\n  },\n  singleAxis: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var singleAxisModel = seriesModel.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!singleAxisModel) {\n        throw new Error('singleAxis should be specified.');\n      }\n    }\n\n    result.coordSysDims = ['single'];\n    axisMap.set('single', singleAxisModel);\n\n    if (isCategory(singleAxisModel)) {\n      categoryAxisMap.set('single', singleAxisModel);\n      result.firstCategoryDimIndex = 0;\n    }\n  },\n  polar: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var polarModel = seriesModel.getReferringComponents('polar', SINGLE_REFERRING).models[0];\n    var radiusAxisModel = polarModel.findAxisModel('radiusAxis');\n    var angleAxisModel = polarModel.findAxisModel('angleAxis');\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!angleAxisModel) {\n        throw new Error('angleAxis option not found');\n      }\n\n      if (!radiusAxisModel) {\n        throw new Error('radiusAxis option not found');\n      }\n    }\n\n    result.coordSysDims = ['radius', 'angle'];\n    axisMap.set('radius', radiusAxisModel);\n    axisMap.set('angle', angleAxisModel);\n\n    if (isCategory(radiusAxisModel)) {\n      categoryAxisMap.set('radius', radiusAxisModel);\n      result.firstCategoryDimIndex = 0;\n    }\n\n    if (isCategory(angleAxisModel)) {\n      categoryAxisMap.set('angle', angleAxisModel);\n      result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\n    }\n  },\n  geo: function (seriesModel, result, axisMap, categoryAxisMap) {\n    result.coordSysDims = ['lng', 'lat'];\n  },\n  parallel: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var ecModel = seriesModel.ecModel;\n    var parallelModel = ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\n    var coordSysDims = result.coordSysDims = parallelModel.dimensions.slice();\n    each(parallelModel.parallelAxisIndex, function (axisIndex, index) {\n      var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\n      var axisDim = coordSysDims[index];\n      axisMap.set(axisDim, axisModel);\n\n      if (isCategory(axisModel)) {\n        categoryAxisMap.set(axisDim, axisModel);\n\n        if (result.firstCategoryDimIndex == null) {\n          result.firstCategoryDimIndex = index;\n        }\n      }\n    });\n  }\n};\n\nfunction isCategory(axisModel) {\n  return axisModel.get('type') === 'category';\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, isString } from 'zrender/lib/core/util';\nexport function enableDataStack(seriesModel, dimensionInfoList, opt) {\n  opt = opt || {};\n  var byIndex = opt.byIndex;\n  var stackedCoordDimension = opt.stackedCoordDimension;\n  var mayStack = !!(seriesModel && seriesModel.get('stack'));\n  var stackedByDimInfo;\n  var stackedDimInfo;\n  var stackResultDimension;\n  var stackedOverDimension;\n  each(dimensionInfoList, function (dimensionInfo, index) {\n    if (isString(dimensionInfo)) {\n      dimensionInfoList[index] = dimensionInfo = {\n        name: dimensionInfo\n      };\n    }\n\n    if (mayStack && !dimensionInfo.isExtraCoord) {\n      if (!byIndex && !stackedByDimInfo && dimensionInfo.ordinalMeta) {\n        stackedByDimInfo = dimensionInfo;\n      }\n\n      if (!stackedDimInfo && dimensionInfo.type !== 'ordinal' && dimensionInfo.type !== 'time' && (!stackedCoordDimension || stackedCoordDimension === dimensionInfo.coordDim)) {\n        stackedDimInfo = dimensionInfo;\n      }\n    }\n  });\n\n  if (stackedDimInfo && !byIndex && !stackedByDimInfo) {\n    byIndex = true;\n  }\n\n  if (stackedDimInfo) {\n    stackResultDimension = '__\\0ecstackresult';\n    stackedOverDimension = '__\\0ecstackedover';\n\n    if (stackedByDimInfo) {\n      stackedByDimInfo.createInvertedIndices = true;\n    }\n\n    var stackedDimCoordDim_1 = stackedDimInfo.coordDim;\n    var stackedDimType = stackedDimInfo.type;\n    var stackedDimCoordIndex_1 = 0;\n    each(dimensionInfoList, function (dimensionInfo) {\n      if (dimensionInfo.coordDim === stackedDimCoordDim_1) {\n        stackedDimCoordIndex_1++;\n      }\n    });\n    dimensionInfoList.push({\n      name: stackResultDimension,\n      coordDim: stackedDimCoordDim_1,\n      coordDimIndex: stackedDimCoordIndex_1,\n      type: stackedDimType,\n      isExtraCoord: true,\n      isCalculationCoord: true\n    });\n    stackedDimCoordIndex_1++;\n    dimensionInfoList.push({\n      name: stackedOverDimension,\n      coordDim: stackedOverDimension,\n      coordDimIndex: stackedDimCoordIndex_1,\n      type: stackedDimType,\n      isExtraCoord: true,\n      isCalculationCoord: true\n    });\n  }\n\n  return {\n    stackedDimension: stackedDimInfo && stackedDimInfo.name,\n    stackedByDimension: stackedByDimInfo && stackedByDimInfo.name,\n    isStackedByIndex: byIndex,\n    stackedOverDimension: stackedOverDimension,\n    stackResultDimension: stackResultDimension\n  };\n}\nexport function isDimensionStacked(data, stackedDim) {\n  return !!stackedDim && stackedDim === data.getCalculationInfo('stackedDimension');\n}\nexport function getStackedDimension(data, targetDim) {\n  return isDimensionStacked(data, targetDim) ? data.getCalculationInfo('stackResultDimension') : targetDim;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport List from '../../data/List';\nimport createDimensions from '../../data/helper/createDimensions';\nimport { getDimensionTypeByAxis } from '../../data/helper/dimensionHelper';\nimport { getDataItemValue } from '../../util/model';\nimport CoordinateSystem from '../../core/CoordinateSystem';\nimport { getCoordSysInfoBySeries } from '../../model/referHelper';\nimport { createSourceFromSeriesDataOption, isSourceInstance } from '../../data/Source';\nimport { enableDataStack } from '../../data/helper/dataStackHelper';\nimport { makeSeriesEncodeForAxisCoordSys } from '../../data/helper/sourceHelper';\nimport { SOURCE_FORMAT_ORIGINAL } from '../../util/types';\n\nfunction createListFromArray(source, seriesModel, opt) {\n  opt = opt || {};\n\n  if (!isSourceInstance(source)) {\n    source = createSourceFromSeriesDataOption(source);\n  }\n\n  var coordSysName = seriesModel.get('coordinateSystem');\n  var registeredCoordSys = CoordinateSystem.get(coordSysName);\n  var coordSysInfo = getCoordSysInfoBySeries(seriesModel);\n  var coordSysDimDefs;\n\n  if (coordSysInfo && coordSysInfo.coordSysDims) {\n    coordSysDimDefs = zrUtil.map(coordSysInfo.coordSysDims, function (dim) {\n      var dimInfo = {\n        name: dim\n      };\n      var axisModel = coordSysInfo.axisMap.get(dim);\n\n      if (axisModel) {\n        var axisType = axisModel.get('type');\n        dimInfo.type = getDimensionTypeByAxis(axisType);\n      }\n\n      return dimInfo;\n    });\n  }\n\n  if (!coordSysDimDefs) {\n    coordSysDimDefs = registeredCoordSys && (registeredCoordSys.getDimensionsInfo ? registeredCoordSys.getDimensionsInfo() : registeredCoordSys.dimensions.slice()) || ['x', 'y'];\n  }\n\n  var useEncodeDefaulter = opt.useEncodeDefaulter;\n  var dimInfoList = createDimensions(source, {\n    coordDimensions: coordSysDimDefs,\n    generateCoord: opt.generateCoord,\n    encodeDefaulter: zrUtil.isFunction(useEncodeDefaulter) ? useEncodeDefaulter : useEncodeDefaulter ? zrUtil.curry(makeSeriesEncodeForAxisCoordSys, coordSysDimDefs, seriesModel) : null\n  });\n  var firstCategoryDimIndex;\n  var hasNameEncode;\n  coordSysInfo && zrUtil.each(dimInfoList, function (dimInfo, dimIndex) {\n    var coordDim = dimInfo.coordDim;\n    var categoryAxisModel = coordSysInfo.categoryAxisMap.get(coordDim);\n\n    if (categoryAxisModel) {\n      if (firstCategoryDimIndex == null) {\n        firstCategoryDimIndex = dimIndex;\n      }\n\n      dimInfo.ordinalMeta = categoryAxisModel.getOrdinalMeta();\n\n      if (opt.createInvertedIndices) {\n        dimInfo.createInvertedIndices = true;\n      }\n    }\n\n    if (dimInfo.otherDims.itemName != null) {\n      hasNameEncode = true;\n    }\n  });\n\n  if (!hasNameEncode && firstCategoryDimIndex != null) {\n    dimInfoList[firstCategoryDimIndex].otherDims.itemName = 0;\n  }\n\n  var stackCalculationInfo = enableDataStack(seriesModel, dimInfoList);\n  var list = new List(dimInfoList, seriesModel);\n  list.setCalculationInfo(stackCalculationInfo);\n  var dimValueGetter = firstCategoryDimIndex != null && isNeedCompleteOrdinalData(source) ? function (itemOpt, dimName, dataIndex, dimIndex) {\n    return dimIndex === firstCategoryDimIndex ? dataIndex : this.defaultDimValueGetter(itemOpt, dimName, dataIndex, dimIndex);\n  } : null;\n  list.hasItemOption = false;\n  list.initData(source, null, dimValueGetter);\n  return list;\n}\n\nfunction isNeedCompleteOrdinalData(source) {\n  if (source.sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n    var sampleItem = firstDataNotNull(source.data || []);\n    return sampleItem != null && !zrUtil.isArray(getDataItemValue(sampleItem));\n  }\n}\n\nfunction firstDataNotNull(data) {\n  var i = 0;\n\n  while (i < data.length && data[i] == null) {\n    i++;\n  }\n\n  return data[i];\n}\n\nexport default createListFromArray;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as clazzUtil from '../util/clazz';\n\nvar Scale = function () {\n  function Scale(setting) {\n    this._setting = setting || {};\n    this._extent = [Infinity, -Infinity];\n  }\n\n  Scale.prototype.getSetting = function (name) {\n    return this._setting[name];\n  };\n\n  Scale.prototype.unionExtent = function (other) {\n    var extent = this._extent;\n    other[0] < extent[0] && (extent[0] = other[0]);\n    other[1] > extent[1] && (extent[1] = other[1]);\n  };\n\n  Scale.prototype.unionExtentFromData = function (data, dim) {\n    this.unionExtent(data.getApproximateExtent(dim));\n  };\n\n  Scale.prototype.getExtent = function () {\n    return this._extent.slice();\n  };\n\n  Scale.prototype.setExtent = function (start, end) {\n    var thisExtent = this._extent;\n\n    if (!isNaN(start)) {\n      thisExtent[0] = start;\n    }\n\n    if (!isNaN(end)) {\n      thisExtent[1] = end;\n    }\n  };\n\n  Scale.prototype.isInExtentRange = function (value) {\n    return this._extent[0] <= value && this._extent[1] >= value;\n  };\n\n  Scale.prototype.isBlank = function () {\n    return this._isBlank;\n  };\n\n  Scale.prototype.setBlank = function (isBlank) {\n    this._isBlank = isBlank;\n  };\n\n  return Scale;\n}();\n\nclazzUtil.enableClassManagement(Scale);\nexport default Scale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, isObject, map } from 'zrender/lib/core/util';\n\nvar OrdinalMeta = function () {\n  function OrdinalMeta(opt) {\n    this.categories = opt.categories || [];\n    this._needCollect = opt.needCollect;\n    this._deduplication = opt.deduplication;\n  }\n\n  OrdinalMeta.createByAxisModel = function (axisModel) {\n    var option = axisModel.option;\n    var data = option.data;\n    var categories = data && map(data, getName);\n    return new OrdinalMeta({\n      categories: categories,\n      needCollect: !categories,\n      deduplication: option.dedplication !== false\n    });\n  };\n\n  ;\n\n  OrdinalMeta.prototype.getOrdinal = function (category) {\n    return this._getOrCreateMap().get(category);\n  };\n\n  OrdinalMeta.prototype.parseAndCollect = function (category) {\n    var index;\n    var needCollect = this._needCollect;\n\n    if (typeof category !== 'string' && !needCollect) {\n      return category;\n    }\n\n    if (needCollect && !this._deduplication) {\n      index = this.categories.length;\n      this.categories[index] = category;\n      return index;\n    }\n\n    var map = this._getOrCreateMap();\n\n    index = map.get(category);\n\n    if (index == null) {\n      if (needCollect) {\n        index = this.categories.length;\n        this.categories[index] = category;\n        map.set(category, index);\n      } else {\n        index = NaN;\n      }\n    }\n\n    return index;\n  };\n\n  OrdinalMeta.prototype._getOrCreateMap = function () {\n    return this._map || (this._map = createHashMap(this.categories));\n  };\n\n  return OrdinalMeta;\n}();\n\nfunction getName(obj) {\n  if (isObject(obj) && obj.value != null) {\n    return obj.value;\n  } else {\n    return obj + '';\n  }\n}\n\nexport default OrdinalMeta;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as numberUtil from '../util/number';\nvar roundNumber = numberUtil.round;\nexport function intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval) {\n  var result = {};\n  var span = extent[1] - extent[0];\n  var interval = result.interval = numberUtil.nice(span / splitNumber, true);\n\n  if (minInterval != null && interval < minInterval) {\n    interval = result.interval = minInterval;\n  }\n\n  if (maxInterval != null && interval > maxInterval) {\n    interval = result.interval = maxInterval;\n  }\n\n  var precision = result.intervalPrecision = getIntervalPrecision(interval);\n  var niceTickExtent = result.niceTickExtent = [roundNumber(Math.ceil(extent[0] / interval) * interval, precision), roundNumber(Math.floor(extent[1] / interval) * interval, precision)];\n  fixExtent(niceTickExtent, extent);\n  return result;\n}\nexport function getIntervalPrecision(interval) {\n  return numberUtil.getPrecisionSafe(interval) + 2;\n}\n\nfunction clamp(niceTickExtent, idx, extent) {\n  niceTickExtent[idx] = Math.max(Math.min(niceTickExtent[idx], extent[1]), extent[0]);\n}\n\nexport function fixExtent(niceTickExtent, extent) {\n  !isFinite(niceTickExtent[0]) && (niceTickExtent[0] = extent[0]);\n  !isFinite(niceTickExtent[1]) && (niceTickExtent[1] = extent[1]);\n  clamp(niceTickExtent, 0, extent);\n  clamp(niceTickExtent, 1, extent);\n\n  if (niceTickExtent[0] > niceTickExtent[1]) {\n    niceTickExtent[0] = niceTickExtent[1];\n  }\n}\nexport function contain(val, extent) {\n  return val >= extent[0] && val <= extent[1];\n}\nexport function normalize(val, extent) {\n  if (extent[1] === extent[0]) {\n    return 0.5;\n  }\n\n  return (val - extent[0]) / (extent[1] - extent[0]);\n}\nexport function scale(val, extent) {\n  return val * (extent[1] - extent[0]) + extent[0];\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Scale from './Scale';\nimport OrdinalMeta from '../data/OrdinalMeta';\nimport * as scaleHelper from './helper';\nimport { isArray, map, isObject } from 'zrender/lib/core/util';\n\nvar OrdinalScale = function (_super) {\n  __extends(OrdinalScale, _super);\n\n  function OrdinalScale(setting) {\n    var _this = _super.call(this, setting) || this;\n\n    _this.type = 'ordinal';\n\n    var ordinalMeta = _this.getSetting('ordinalMeta');\n\n    if (!ordinalMeta) {\n      ordinalMeta = new OrdinalMeta({});\n    }\n\n    if (isArray(ordinalMeta)) {\n      ordinalMeta = new OrdinalMeta({\n        categories: map(ordinalMeta, function (item) {\n          return isObject(item) ? item.value : item;\n        })\n      });\n    }\n\n    _this._ordinalMeta = ordinalMeta;\n    _this._extent = _this.getSetting('extent') || [0, ordinalMeta.categories.length - 1];\n    return _this;\n  }\n\n  OrdinalScale.prototype.parse = function (val) {\n    return typeof val === 'string' ? this._ordinalMeta.getOrdinal(val) : Math.round(val);\n  };\n\n  OrdinalScale.prototype.contain = function (rank) {\n    rank = this.parse(rank);\n    return scaleHelper.contain(rank, this._extent) && this._ordinalMeta.categories[rank] != null;\n  };\n\n  OrdinalScale.prototype.normalize = function (val) {\n    val = this._getTickNumber(this.parse(val));\n    return scaleHelper.normalize(val, this._extent);\n  };\n\n  OrdinalScale.prototype.scale = function (val) {\n    val = Math.round(scaleHelper.scale(val, this._extent));\n    return this.getRawOrdinalNumber(val);\n  };\n\n  OrdinalScale.prototype.getTicks = function () {\n    var ticks = [];\n    var extent = this._extent;\n    var rank = extent[0];\n\n    while (rank <= extent[1]) {\n      ticks.push({\n        value: rank\n      });\n      rank++;\n    }\n\n    return ticks;\n  };\n\n  OrdinalScale.prototype.getMinorTicks = function (splitNumber) {\n    return;\n  };\n\n  OrdinalScale.prototype.setSortInfo = function (info) {\n    if (info == null) {\n      this._ordinalNumbersByTick = this._ticksByOrdinalNumber = null;\n      return;\n    }\n\n    var infoOrdinalNumbers = info.ordinalNumbers;\n    var ordinalsByTick = this._ordinalNumbersByTick = [];\n    var ticksByOrdinal = this._ticksByOrdinalNumber = [];\n    var tickNum = 0;\n    var allCategoryLen = this._ordinalMeta.categories.length;\n\n    for (var len = Math.min(allCategoryLen, infoOrdinalNumbers.length); tickNum < len; ++tickNum) {\n      var ordinalNumber = infoOrdinalNumbers[tickNum];\n      ordinalsByTick[tickNum] = ordinalNumber;\n      ticksByOrdinal[ordinalNumber] = tickNum;\n    }\n\n    var unusedOrdinal = 0;\n\n    for (; tickNum < allCategoryLen; ++tickNum) {\n      while (ticksByOrdinal[unusedOrdinal] != null) {\n        unusedOrdinal++;\n      }\n\n      ;\n      ordinalsByTick.push(unusedOrdinal);\n      ticksByOrdinal[unusedOrdinal] = tickNum;\n    }\n  };\n\n  OrdinalScale.prototype._getTickNumber = function (ordinal) {\n    var ticksByOrdinalNumber = this._ticksByOrdinalNumber;\n    return ticksByOrdinalNumber && ordinal >= 0 && ordinal < ticksByOrdinalNumber.length ? ticksByOrdinalNumber[ordinal] : ordinal;\n  };\n\n  OrdinalScale.prototype.getRawOrdinalNumber = function (tickNumber) {\n    var ordinalNumbersByTick = this._ordinalNumbersByTick;\n    return ordinalNumbersByTick && tickNumber >= 0 && tickNumber < ordinalNumbersByTick.length ? ordinalNumbersByTick[tickNumber] : tickNumber;\n  };\n\n  OrdinalScale.prototype.getLabel = function (tick) {\n    if (!this.isBlank()) {\n      var ordinalNumber = this.getRawOrdinalNumber(tick.value);\n      var cateogry = this._ordinalMeta.categories[ordinalNumber];\n      return cateogry == null ? '' : cateogry + '';\n    }\n  };\n\n  OrdinalScale.prototype.count = function () {\n    return this._extent[1] - this._extent[0] + 1;\n  };\n\n  OrdinalScale.prototype.unionExtentFromData = function (data, dim) {\n    this.unionExtent(data.getApproximateExtent(dim));\n  };\n\n  OrdinalScale.prototype.isInExtentRange = function (value) {\n    value = this._getTickNumber(value);\n    return this._extent[0] <= value && this._extent[1] >= value;\n  };\n\n  OrdinalScale.prototype.getOrdinalMeta = function () {\n    return this._ordinalMeta;\n  };\n\n  OrdinalScale.prototype.niceTicks = function () {};\n\n  OrdinalScale.prototype.niceExtent = function () {};\n\n  OrdinalScale.type = 'ordinal';\n  return OrdinalScale;\n}(Scale);\n\nScale.registerClass(OrdinalScale);\nexport default OrdinalScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as numberUtil from '../util/number';\nimport * as formatUtil from '../util/format';\nimport Scale from './Scale';\nimport * as helper from './helper';\nvar roundNumber = numberUtil.round;\n\nvar IntervalScale = function (_super) {\n  __extends(IntervalScale, _super);\n\n  function IntervalScale() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'interval';\n    _this._interval = 0;\n    _this._intervalPrecision = 2;\n    return _this;\n  }\n\n  IntervalScale.prototype.parse = function (val) {\n    return val;\n  };\n\n  IntervalScale.prototype.contain = function (val) {\n    return helper.contain(val, this._extent);\n  };\n\n  IntervalScale.prototype.normalize = function (val) {\n    return helper.normalize(val, this._extent);\n  };\n\n  IntervalScale.prototype.scale = function (val) {\n    return helper.scale(val, this._extent);\n  };\n\n  IntervalScale.prototype.setExtent = function (start, end) {\n    var thisExtent = this._extent;\n\n    if (!isNaN(start)) {\n      thisExtent[0] = parseFloat(start);\n    }\n\n    if (!isNaN(end)) {\n      thisExtent[1] = parseFloat(end);\n    }\n  };\n\n  IntervalScale.prototype.unionExtent = function (other) {\n    var extent = this._extent;\n    other[0] < extent[0] && (extent[0] = other[0]);\n    other[1] > extent[1] && (extent[1] = other[1]);\n    this.setExtent(extent[0], extent[1]);\n  };\n\n  IntervalScale.prototype.getInterval = function () {\n    return this._interval;\n  };\n\n  IntervalScale.prototype.setInterval = function (interval) {\n    this._interval = interval;\n    this._niceExtent = this._extent.slice();\n    this._intervalPrecision = helper.getIntervalPrecision(interval);\n  };\n\n  IntervalScale.prototype.getTicks = function (expandToNicedExtent) {\n    var interval = this._interval;\n    var extent = this._extent;\n    var niceTickExtent = this._niceExtent;\n    var intervalPrecision = this._intervalPrecision;\n    var ticks = [];\n\n    if (!interval) {\n      return ticks;\n    }\n\n    var safeLimit = 10000;\n\n    if (extent[0] < niceTickExtent[0]) {\n      if (expandToNicedExtent) {\n        ticks.push({\n          value: roundNumber(niceTickExtent[0] - interval, intervalPrecision)\n        });\n      } else {\n        ticks.push({\n          value: extent[0]\n        });\n      }\n    }\n\n    var tick = niceTickExtent[0];\n\n    while (tick <= niceTickExtent[1]) {\n      ticks.push({\n        value: tick\n      });\n      tick = roundNumber(tick + interval, intervalPrecision);\n\n      if (tick === ticks[ticks.length - 1].value) {\n        break;\n      }\n\n      if (ticks.length > safeLimit) {\n        return [];\n      }\n    }\n\n    var lastNiceTick = ticks.length ? ticks[ticks.length - 1].value : niceTickExtent[1];\n\n    if (extent[1] > lastNiceTick) {\n      if (expandToNicedExtent) {\n        ticks.push({\n          value: roundNumber(lastNiceTick + interval, intervalPrecision)\n        });\n      } else {\n        ticks.push({\n          value: extent[1]\n        });\n      }\n    }\n\n    return ticks;\n  };\n\n  IntervalScale.prototype.getMinorTicks = function (splitNumber) {\n    var ticks = this.getTicks(true);\n    var minorTicks = [];\n    var extent = this.getExtent();\n\n    for (var i = 1; i < ticks.length; i++) {\n      var nextTick = ticks[i];\n      var prevTick = ticks[i - 1];\n      var count = 0;\n      var minorTicksGroup = [];\n      var interval = nextTick.value - prevTick.value;\n      var minorInterval = interval / splitNumber;\n\n      while (count < splitNumber - 1) {\n        var minorTick = roundNumber(prevTick.value + (count + 1) * minorInterval);\n\n        if (minorTick > extent[0] && minorTick < extent[1]) {\n          minorTicksGroup.push(minorTick);\n        }\n\n        count++;\n      }\n\n      minorTicks.push(minorTicksGroup);\n    }\n\n    return minorTicks;\n  };\n\n  IntervalScale.prototype.getLabel = function (data, opt) {\n    if (data == null) {\n      return '';\n    }\n\n    var precision = opt && opt.precision;\n\n    if (precision == null) {\n      precision = numberUtil.getPrecisionSafe(data.value) || 0;\n    } else if (precision === 'auto') {\n      precision = this._intervalPrecision;\n    }\n\n    var dataNum = roundNumber(data.value, precision, true);\n    return formatUtil.addCommas(dataNum);\n  };\n\n  IntervalScale.prototype.niceTicks = function (splitNumber, minInterval, maxInterval) {\n    splitNumber = splitNumber || 5;\n    var extent = this._extent;\n    var span = extent[1] - extent[0];\n\n    if (!isFinite(span)) {\n      return;\n    }\n\n    if (span < 0) {\n      span = -span;\n      extent.reverse();\n    }\n\n    var result = helper.intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval);\n    this._intervalPrecision = result.intervalPrecision;\n    this._interval = result.interval;\n    this._niceExtent = result.niceTickExtent;\n  };\n\n  IntervalScale.prototype.niceExtent = function (opt) {\n    var extent = this._extent;\n\n    if (extent[0] === extent[1]) {\n      if (extent[0] !== 0) {\n        var expandSize = extent[0];\n\n        if (!opt.fixMax) {\n          extent[1] += expandSize / 2;\n          extent[0] -= expandSize / 2;\n        } else {\n          extent[0] -= expandSize / 2;\n        }\n      } else {\n        extent[1] = 1;\n      }\n    }\n\n    var span = extent[1] - extent[0];\n\n    if (!isFinite(span)) {\n      extent[0] = 0;\n      extent[1] = 1;\n    }\n\n    this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\n    var interval = this._interval;\n\n    if (!opt.fixMin) {\n      extent[0] = roundNumber(Math.floor(extent[0] / interval) * interval);\n    }\n\n    if (!opt.fixMax) {\n      extent[1] = roundNumber(Math.ceil(extent[1] / interval) * interval);\n    }\n  };\n\n  IntervalScale.type = 'interval';\n  return IntervalScale;\n}(Scale);\n\nScale.registerClass(IntervalScale);\nexport default IntervalScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parsePercent } from '../util/number';\nimport { isDimensionStacked } from '../data/helper/dataStackHelper';\nimport createRenderPlanner from '../chart/helper/createRenderPlanner';\nvar STACK_PREFIX = '__ec_stack_';\nvar LARGE_BAR_MIN_WIDTH = 0.5;\nvar LargeArr = typeof Float32Array !== 'undefined' ? Float32Array : Array;\n\nfunction getSeriesStackId(seriesModel) {\n  return seriesModel.get('stack') || STACK_PREFIX + seriesModel.seriesIndex;\n}\n\nfunction getAxisKey(axis) {\n  return axis.dim + axis.index;\n}\n\nexport function getLayoutOnAxis(opt) {\n  var params = [];\n  var baseAxis = opt.axis;\n  var axisKey = 'axis0';\n\n  if (baseAxis.type !== 'category') {\n    return;\n  }\n\n  var bandWidth = baseAxis.getBandWidth();\n\n  for (var i = 0; i < opt.count || 0; i++) {\n    params.push(zrUtil.defaults({\n      bandWidth: bandWidth,\n      axisKey: axisKey,\n      stackId: STACK_PREFIX + i\n    }, opt));\n  }\n\n  var widthAndOffsets = doCalBarWidthAndOffset(params);\n  var result = [];\n\n  for (var i = 0; i < opt.count; i++) {\n    var item = widthAndOffsets[axisKey][STACK_PREFIX + i];\n    item.offsetCenter = item.offset + item.width / 2;\n    result.push(item);\n  }\n\n  return result;\n}\nexport function prepareLayoutBarSeries(seriesType, ecModel) {\n  var seriesModels = [];\n  ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n    if (isOnCartesian(seriesModel) && !isInLargeMode(seriesModel)) {\n      seriesModels.push(seriesModel);\n    }\n  });\n  return seriesModels;\n}\n\nfunction getValueAxesMinGaps(barSeries) {\n  var axisValues = {};\n  zrUtil.each(barSeries, function (seriesModel) {\n    var cartesian = seriesModel.coordinateSystem;\n    var baseAxis = cartesian.getBaseAxis();\n\n    if (baseAxis.type !== 'time' && baseAxis.type !== 'value') {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var key = baseAxis.dim + '_' + baseAxis.index;\n    var dim = data.mapDimension(baseAxis.dim);\n\n    for (var i = 0, cnt = data.count(); i < cnt; ++i) {\n      var value = data.get(dim, i);\n\n      if (!axisValues[key]) {\n        axisValues[key] = [value];\n      } else {\n        axisValues[key].push(value);\n      }\n    }\n  });\n  var axisMinGaps = {};\n\n  for (var key in axisValues) {\n    if (axisValues.hasOwnProperty(key)) {\n      var valuesInAxis = axisValues[key];\n\n      if (valuesInAxis) {\n        valuesInAxis.sort(function (a, b) {\n          return a - b;\n        });\n        var min = null;\n\n        for (var j = 1; j < valuesInAxis.length; ++j) {\n          var delta = valuesInAxis[j] - valuesInAxis[j - 1];\n\n          if (delta > 0) {\n            min = min === null ? delta : Math.min(min, delta);\n          }\n        }\n\n        axisMinGaps[key] = min;\n      }\n    }\n  }\n\n  return axisMinGaps;\n}\n\nexport function makeColumnLayout(barSeries) {\n  var axisMinGaps = getValueAxesMinGaps(barSeries);\n  var seriesInfoList = [];\n  zrUtil.each(barSeries, function (seriesModel) {\n    var cartesian = seriesModel.coordinateSystem;\n    var baseAxis = cartesian.getBaseAxis();\n    var axisExtent = baseAxis.getExtent();\n    var bandWidth;\n\n    if (baseAxis.type === 'category') {\n      bandWidth = baseAxis.getBandWidth();\n    } else if (baseAxis.type === 'value' || baseAxis.type === 'time') {\n      var key = baseAxis.dim + '_' + baseAxis.index;\n      var minGap = axisMinGaps[key];\n      var extentSpan = Math.abs(axisExtent[1] - axisExtent[0]);\n      var scale = baseAxis.scale.getExtent();\n      var scaleSpan = Math.abs(scale[1] - scale[0]);\n      bandWidth = minGap ? extentSpan / scaleSpan * minGap : extentSpan;\n    } else {\n      var data = seriesModel.getData();\n      bandWidth = Math.abs(axisExtent[1] - axisExtent[0]) / data.count();\n    }\n\n    var barWidth = parsePercent(seriesModel.get('barWidth'), bandWidth);\n    var barMaxWidth = parsePercent(seriesModel.get('barMaxWidth'), bandWidth);\n    var barMinWidth = parsePercent(seriesModel.get('barMinWidth') || 1, bandWidth);\n    var barGap = seriesModel.get('barGap');\n    var barCategoryGap = seriesModel.get('barCategoryGap');\n    seriesInfoList.push({\n      bandWidth: bandWidth,\n      barWidth: barWidth,\n      barMaxWidth: barMaxWidth,\n      barMinWidth: barMinWidth,\n      barGap: barGap,\n      barCategoryGap: barCategoryGap,\n      axisKey: getAxisKey(baseAxis),\n      stackId: getSeriesStackId(seriesModel)\n    });\n  });\n  return doCalBarWidthAndOffset(seriesInfoList);\n}\n\nfunction doCalBarWidthAndOffset(seriesInfoList) {\n  var columnsMap = {};\n  zrUtil.each(seriesInfoList, function (seriesInfo, idx) {\n    var axisKey = seriesInfo.axisKey;\n    var bandWidth = seriesInfo.bandWidth;\n    var columnsOnAxis = columnsMap[axisKey] || {\n      bandWidth: bandWidth,\n      remainedWidth: bandWidth,\n      autoWidthCount: 0,\n      categoryGap: null,\n      gap: '20%',\n      stacks: {}\n    };\n    var stacks = columnsOnAxis.stacks;\n    columnsMap[axisKey] = columnsOnAxis;\n    var stackId = seriesInfo.stackId;\n\n    if (!stacks[stackId]) {\n      columnsOnAxis.autoWidthCount++;\n    }\n\n    stacks[stackId] = stacks[stackId] || {\n      width: 0,\n      maxWidth: 0\n    };\n    var barWidth = seriesInfo.barWidth;\n\n    if (barWidth && !stacks[stackId].width) {\n      stacks[stackId].width = barWidth;\n      barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\n      columnsOnAxis.remainedWidth -= barWidth;\n    }\n\n    var barMaxWidth = seriesInfo.barMaxWidth;\n    barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\n    var barMinWidth = seriesInfo.barMinWidth;\n    barMinWidth && (stacks[stackId].minWidth = barMinWidth);\n    var barGap = seriesInfo.barGap;\n    barGap != null && (columnsOnAxis.gap = barGap);\n    var barCategoryGap = seriesInfo.barCategoryGap;\n    barCategoryGap != null && (columnsOnAxis.categoryGap = barCategoryGap);\n  });\n  var result = {};\n  zrUtil.each(columnsMap, function (columnsOnAxis, coordSysName) {\n    result[coordSysName] = {};\n    var stacks = columnsOnAxis.stacks;\n    var bandWidth = columnsOnAxis.bandWidth;\n    var categoryGapPercent = columnsOnAxis.categoryGap;\n\n    if (categoryGapPercent == null) {\n      var columnCount = zrUtil.keys(stacks).length;\n      categoryGapPercent = Math.max(35 - columnCount * 4, 15) + '%';\n    }\n\n    var categoryGap = parsePercent(categoryGapPercent, bandWidth);\n    var barGapPercent = parsePercent(columnsOnAxis.gap, 1);\n    var remainedWidth = columnsOnAxis.remainedWidth;\n    var autoWidthCount = columnsOnAxis.autoWidthCount;\n    var autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n    autoWidth = Math.max(autoWidth, 0);\n    zrUtil.each(stacks, function (column) {\n      var maxWidth = column.maxWidth;\n      var minWidth = column.minWidth;\n\n      if (!column.width) {\n        var finalWidth = autoWidth;\n\n        if (maxWidth && maxWidth < finalWidth) {\n          finalWidth = Math.min(maxWidth, remainedWidth);\n        }\n\n        if (minWidth && minWidth > finalWidth) {\n          finalWidth = minWidth;\n        }\n\n        if (finalWidth !== autoWidth) {\n          column.width = finalWidth;\n          remainedWidth -= finalWidth + barGapPercent * finalWidth;\n          autoWidthCount--;\n        }\n      } else {\n        var finalWidth = column.width;\n\n        if (maxWidth) {\n          finalWidth = Math.min(finalWidth, maxWidth);\n        }\n\n        if (minWidth) {\n          finalWidth = Math.max(finalWidth, minWidth);\n        }\n\n        column.width = finalWidth;\n        remainedWidth -= finalWidth + barGapPercent * finalWidth;\n        autoWidthCount--;\n      }\n    });\n    autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n    autoWidth = Math.max(autoWidth, 0);\n    var widthSum = 0;\n    var lastColumn;\n    zrUtil.each(stacks, function (column, idx) {\n      if (!column.width) {\n        column.width = autoWidth;\n      }\n\n      lastColumn = column;\n      widthSum += column.width * (1 + barGapPercent);\n    });\n\n    if (lastColumn) {\n      widthSum -= lastColumn.width * barGapPercent;\n    }\n\n    var offset = -widthSum / 2;\n    zrUtil.each(stacks, function (column, stackId) {\n      result[coordSysName][stackId] = result[coordSysName][stackId] || {\n        bandWidth: bandWidth,\n        offset: offset,\n        width: column.width\n      };\n      offset += column.width * (1 + barGapPercent);\n    });\n  });\n  return result;\n}\n\nfunction retrieveColumnLayout(barWidthAndOffset, axis, seriesModel) {\n  if (barWidthAndOffset && axis) {\n    var result = barWidthAndOffset[getAxisKey(axis)];\n\n    if (result != null && seriesModel != null) {\n      return result[getSeriesStackId(seriesModel)];\n    }\n\n    return result;\n  }\n}\n\nexport { retrieveColumnLayout };\nexport function layout(seriesType, ecModel) {\n  var seriesModels = prepareLayoutBarSeries(seriesType, ecModel);\n  var barWidthAndOffset = makeColumnLayout(seriesModels);\n  var lastStackCoords = {};\n  zrUtil.each(seriesModels, function (seriesModel) {\n    var data = seriesModel.getData();\n    var cartesian = seriesModel.coordinateSystem;\n    var baseAxis = cartesian.getBaseAxis();\n    var stackId = getSeriesStackId(seriesModel);\n    var columnLayoutInfo = barWidthAndOffset[getAxisKey(baseAxis)][stackId];\n    var columnOffset = columnLayoutInfo.offset;\n    var columnWidth = columnLayoutInfo.width;\n    var valueAxis = cartesian.getOtherAxis(baseAxis);\n    var barMinHeight = seriesModel.get('barMinHeight') || 0;\n    lastStackCoords[stackId] = lastStackCoords[stackId] || [];\n    data.setLayout({\n      bandWidth: columnLayoutInfo.bandWidth,\n      offset: columnOffset,\n      size: columnWidth\n    });\n    var valueDim = data.mapDimension(valueAxis.dim);\n    var baseDim = data.mapDimension(baseAxis.dim);\n    var stacked = isDimensionStacked(data, valueDim);\n    var isValueAxisH = valueAxis.isHorizontal();\n    var valueAxisStart = getValueAxisStart(baseAxis, valueAxis, stacked);\n\n    for (var idx = 0, len = data.count(); idx < len; idx++) {\n      var value = data.get(valueDim, idx);\n      var baseValue = data.get(baseDim, idx);\n      var sign = value >= 0 ? 'p' : 'n';\n      var baseCoord = valueAxisStart;\n\n      if (stacked) {\n        if (!lastStackCoords[stackId][baseValue]) {\n          lastStackCoords[stackId][baseValue] = {\n            p: valueAxisStart,\n            n: valueAxisStart\n          };\n        }\n\n        baseCoord = lastStackCoords[stackId][baseValue][sign];\n      }\n\n      var x = void 0;\n      var y = void 0;\n      var width = void 0;\n      var height = void 0;\n\n      if (isValueAxisH) {\n        var coord = cartesian.dataToPoint([value, baseValue]);\n        x = baseCoord;\n        y = coord[1] + columnOffset;\n        width = coord[0] - valueAxisStart;\n        height = columnWidth;\n\n        if (Math.abs(width) < barMinHeight) {\n          width = (width < 0 ? -1 : 1) * barMinHeight;\n        }\n\n        if (!isNaN(width)) {\n          stacked && (lastStackCoords[stackId][baseValue][sign] += width);\n        }\n      } else {\n        var coord = cartesian.dataToPoint([baseValue, value]);\n        x = coord[0] + columnOffset;\n        y = baseCoord;\n        width = columnWidth;\n        height = coord[1] - valueAxisStart;\n\n        if (Math.abs(height) < barMinHeight) {\n          height = (height <= 0 ? -1 : 1) * barMinHeight;\n        }\n\n        if (!isNaN(height)) {\n          stacked && (lastStackCoords[stackId][baseValue][sign] += height);\n        }\n      }\n\n      data.setItemLayout(idx, {\n        x: x,\n        y: y,\n        width: width,\n        height: height\n      });\n    }\n  });\n}\nexport var largeLayout = {\n  seriesType: 'bar',\n  plan: createRenderPlanner(),\n  reset: function (seriesModel) {\n    if (!isOnCartesian(seriesModel) || !isInLargeMode(seriesModel)) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var cartesian = seriesModel.coordinateSystem;\n    var coordLayout = cartesian.master.getRect();\n    var baseAxis = cartesian.getBaseAxis();\n    var valueAxis = cartesian.getOtherAxis(baseAxis);\n    var valueDim = data.mapDimension(valueAxis.dim);\n    var baseDim = data.mapDimension(baseAxis.dim);\n    var valueAxisHorizontal = valueAxis.isHorizontal();\n    var valueDimIdx = valueAxisHorizontal ? 0 : 1;\n    var barWidth = retrieveColumnLayout(makeColumnLayout([seriesModel]), baseAxis, seriesModel).width;\n\n    if (!(barWidth > LARGE_BAR_MIN_WIDTH)) {\n      barWidth = LARGE_BAR_MIN_WIDTH;\n    }\n\n    return {\n      progress: function (params, data) {\n        var count = params.count;\n        var largePoints = new LargeArr(count * 2);\n        var largeBackgroundPoints = new LargeArr(count * 2);\n        var largeDataIndices = new LargeArr(count);\n        var dataIndex;\n        var coord = [];\n        var valuePair = [];\n        var pointsOffset = 0;\n        var idxOffset = 0;\n\n        while ((dataIndex = params.next()) != null) {\n          valuePair[valueDimIdx] = data.get(valueDim, dataIndex);\n          valuePair[1 - valueDimIdx] = data.get(baseDim, dataIndex);\n          coord = cartesian.dataToPoint(valuePair, null, coord);\n          largeBackgroundPoints[pointsOffset] = valueAxisHorizontal ? coordLayout.x + coordLayout.width : coord[0];\n          largePoints[pointsOffset++] = coord[0];\n          largeBackgroundPoints[pointsOffset] = valueAxisHorizontal ? coord[1] : coordLayout.y + coordLayout.height;\n          largePoints[pointsOffset++] = coord[1];\n          largeDataIndices[idxOffset++] = dataIndex;\n        }\n\n        data.setLayout({\n          largePoints: largePoints,\n          largeDataIndices: largeDataIndices,\n          largeBackgroundPoints: largeBackgroundPoints,\n          barWidth: barWidth,\n          valueAxisStart: getValueAxisStart(baseAxis, valueAxis, false),\n          backgroundStart: valueAxisHorizontal ? coordLayout.x : coordLayout.y,\n          valueAxisHorizontal: valueAxisHorizontal\n        });\n      }\n    };\n  }\n};\n\nfunction isOnCartesian(seriesModel) {\n  return seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'cartesian2d';\n}\n\nfunction isInLargeMode(seriesModel) {\n  return seriesModel.pipelineContext && seriesModel.pipelineContext.large;\n}\n\nfunction getValueAxisStart(baseAxis, valueAxis, stacked) {\n  return valueAxis.toGlobalCoord(valueAxis.dataToCoord(valueAxis.type === 'log' ? 1 : 0));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as numberUtil from '../util/number';\nimport { ONE_SECOND, ONE_MINUTE, ONE_HOUR, ONE_DAY, ONE_YEAR, format, leveledFormat, getUnitValue, timeUnits, fullLeveledFormatter, getPrimaryTimeUnit, isPrimaryTimeUnit, getDefaultFormatPrecisionOfInterval, fullYearGetterName, monthSetterName, fullYearSetterName, dateSetterName, hoursGetterName, hoursSetterName, minutesSetterName, secondsSetterName, millisecondsSetterName, monthGetterName, dateGetterName, minutesGetterName, secondsGetterName, millisecondsGetterName } from '../util/time';\nimport * as scaleHelper from './helper';\nimport IntervalScale from './Interval';\nimport Scale from './Scale';\nimport { warn } from '../util/log';\nimport { filter, map } from 'zrender/lib/core/util';\n\nvar bisect = function (a, x, lo, hi) {\n  while (lo < hi) {\n    var mid = lo + hi >>> 1;\n\n    if (a[mid][1] < x) {\n      lo = mid + 1;\n    } else {\n      hi = mid;\n    }\n  }\n\n  return lo;\n};\n\nvar TimeScale = function (_super) {\n  __extends(TimeScale, _super);\n\n  function TimeScale(settings) {\n    var _this = _super.call(this, settings) || this;\n\n    _this.type = 'time';\n    return _this;\n  }\n\n  TimeScale.prototype.getLabel = function (tick) {\n    var useUTC = this.getSetting('useUTC');\n    return format(tick.value, fullLeveledFormatter[getDefaultFormatPrecisionOfInterval(getPrimaryTimeUnit(this._minLevelUnit))] || fullLeveledFormatter.second, useUTC, this.getSetting('locale'));\n  };\n\n  TimeScale.prototype.getFormattedLabel = function (tick, idx, labelFormatter) {\n    var isUTC = this.getSetting('useUTC');\n    var lang = this.getSetting('locale');\n    return leveledFormat(tick, idx, labelFormatter, lang, isUTC);\n  };\n\n  TimeScale.prototype.getTicks = function (expandToNicedExtent) {\n    var interval = this._interval;\n    var extent = this._extent;\n    var ticks = [];\n\n    if (!interval) {\n      return ticks;\n    }\n\n    ticks.push({\n      value: extent[0],\n      level: 0\n    });\n    var useUTC = this.getSetting('useUTC');\n    var innerTicks = getIntervalTicks(this._minLevelUnit, this._approxInterval, useUTC, extent);\n    ticks = ticks.concat(innerTicks);\n    ticks.push({\n      value: extent[1],\n      level: 0\n    });\n    return ticks;\n  };\n\n  TimeScale.prototype.niceExtent = function (opt) {\n    var extent = this._extent;\n\n    if (extent[0] === extent[1]) {\n      extent[0] -= ONE_DAY;\n      extent[1] += ONE_DAY;\n    }\n\n    if (extent[1] === -Infinity && extent[0] === Infinity) {\n      var d = new Date();\n      extent[1] = +new Date(d.getFullYear(), d.getMonth(), d.getDate());\n      extent[0] = extent[1] - ONE_DAY;\n    }\n\n    this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\n  };\n\n  TimeScale.prototype.niceTicks = function (approxTickNum, minInterval, maxInterval) {\n    approxTickNum = approxTickNum || 10;\n    var extent = this._extent;\n    var span = extent[1] - extent[0];\n    this._approxInterval = span / approxTickNum;\n\n    if (minInterval != null && this._approxInterval < minInterval) {\n      this._approxInterval = minInterval;\n    }\n\n    if (maxInterval != null && this._approxInterval > maxInterval) {\n      this._approxInterval = maxInterval;\n    }\n\n    var scaleIntervalsLen = scaleIntervals.length;\n    var idx = Math.min(bisect(scaleIntervals, this._approxInterval, 0, scaleIntervalsLen), scaleIntervalsLen - 1);\n    this._interval = scaleIntervals[idx][1];\n    this._minLevelUnit = scaleIntervals[Math.max(idx - 1, 0)][0];\n  };\n\n  TimeScale.prototype.parse = function (val) {\n    return typeof val === 'number' ? val : +numberUtil.parseDate(val);\n  };\n\n  TimeScale.prototype.contain = function (val) {\n    return scaleHelper.contain(this.parse(val), this._extent);\n  };\n\n  TimeScale.prototype.normalize = function (val) {\n    return scaleHelper.normalize(this.parse(val), this._extent);\n  };\n\n  TimeScale.prototype.scale = function (val) {\n    return scaleHelper.scale(val, this._extent);\n  };\n\n  TimeScale.type = 'time';\n  return TimeScale;\n}(IntervalScale);\n\nvar scaleIntervals = [['second', ONE_SECOND], ['minute', ONE_MINUTE], ['hour', ONE_HOUR], ['quarter-day', ONE_HOUR * 6], ['half-day', ONE_HOUR * 12], ['day', ONE_DAY * 1.2], ['half-week', ONE_DAY * 3.5], ['week', ONE_DAY * 7], ['month', ONE_DAY * 31], ['quarter', ONE_DAY * 95], ['half-year', ONE_YEAR / 2], ['year', ONE_YEAR]];\n\nfunction isUnitValueSame(unit, valueA, valueB, isUTC) {\n  var dateA = numberUtil.parseDate(valueA);\n  var dateB = numberUtil.parseDate(valueB);\n\n  var isSame = function (unit) {\n    return getUnitValue(dateA, unit, isUTC) === getUnitValue(dateB, unit, isUTC);\n  };\n\n  var isSameYear = function () {\n    return isSame('year');\n  };\n\n  var isSameMonth = function () {\n    return isSameYear() && isSame('month');\n  };\n\n  var isSameDay = function () {\n    return isSameMonth() && isSame('day');\n  };\n\n  var isSameHour = function () {\n    return isSameDay() && isSame('hour');\n  };\n\n  var isSameMinute = function () {\n    return isSameHour() && isSame('minute');\n  };\n\n  var isSameSecond = function () {\n    return isSameMinute() && isSame('second');\n  };\n\n  var isSameMilliSecond = function () {\n    return isSameSecond() && isSame('millisecond');\n  };\n\n  switch (unit) {\n    case 'year':\n      return isSameYear();\n\n    case 'month':\n      return isSameMonth();\n\n    case 'day':\n      return isSameDay();\n\n    case 'hour':\n      return isSameHour();\n\n    case 'minute':\n      return isSameMinute();\n\n    case 'second':\n      return isSameSecond();\n\n    case 'millisecond':\n      return isSameMilliSecond();\n  }\n}\n\nfunction getDateInterval(approxInterval, daysInMonth) {\n  approxInterval /= ONE_DAY;\n  return approxInterval > 16 ? 16 : approxInterval > 7.5 ? 7 : approxInterval > 3.5 ? 4 : approxInterval > 1.5 ? 2 : 1;\n}\n\nfunction getMonthInterval(approxInterval) {\n  var APPROX_ONE_MONTH = 30 * ONE_DAY;\n  approxInterval /= APPROX_ONE_MONTH;\n  return approxInterval > 6 ? 6 : approxInterval > 3 ? 3 : approxInterval > 2 ? 2 : 1;\n}\n\nfunction getHourInterval(approxInterval) {\n  approxInterval /= ONE_HOUR;\n  return approxInterval > 12 ? 12 : approxInterval > 6 ? 6 : approxInterval > 3.5 ? 4 : approxInterval > 2 ? 2 : 1;\n}\n\nfunction getMinutesAndSecondsInterval(approxInterval, isMinutes) {\n  approxInterval /= isMinutes ? ONE_MINUTE : ONE_SECOND;\n  return approxInterval > 30 ? 30 : approxInterval > 20 ? 20 : approxInterval > 15 ? 15 : approxInterval > 10 ? 10 : approxInterval > 5 ? 5 : approxInterval > 2 ? 2 : 1;\n}\n\nfunction getMillisecondsInterval(approxInterval) {\n  return numberUtil.nice(approxInterval, true);\n}\n\nfunction getFirstTimestampOfUnit(date, unitName, isUTC) {\n  var outDate = new Date(date);\n\n  switch (getPrimaryTimeUnit(unitName)) {\n    case 'year':\n    case 'month':\n      outDate[monthSetterName(isUTC)](0);\n\n    case 'day':\n      outDate[dateSetterName(isUTC)](1);\n\n    case 'hour':\n      outDate[hoursSetterName(isUTC)](0);\n\n    case 'minute':\n      outDate[minutesSetterName(isUTC)](0);\n\n    case 'second':\n      outDate[secondsSetterName(isUTC)](0);\n      outDate[millisecondsSetterName(isUTC)](0);\n  }\n\n  return outDate.getTime();\n}\n\nfunction getIntervalTicks(bottomUnitName, approxInterval, isUTC, extent) {\n  var safeLimit = 10000;\n  var unitNames = timeUnits;\n  var iter = 0;\n\n  function addTicksInSpan(interval, minTimestamp, maxTimestamp, getMethodName, setMethodName, isDate, out) {\n    var date = new Date(minTimestamp);\n    var dateTime = minTimestamp;\n    var d = date[getMethodName]();\n\n    while (dateTime < maxTimestamp && dateTime <= extent[1]) {\n      out.push({\n        value: dateTime\n      });\n      d += interval;\n      date[setMethodName](d);\n      dateTime = date.getTime();\n    }\n\n    out.push({\n      value: dateTime,\n      notAdd: true\n    });\n  }\n\n  function addLevelTicks(unitName, lastLevelTicks, levelTicks) {\n    var newAddedTicks = [];\n    var isFirstLevel = !lastLevelTicks.length;\n\n    if (isUnitValueSame(getPrimaryTimeUnit(unitName), extent[0], extent[1], isUTC)) {\n      return;\n    }\n\n    if (isFirstLevel) {\n      lastLevelTicks = [{\n        value: getFirstTimestampOfUnit(new Date(extent[0]), unitName, isUTC)\n      }, {\n        value: extent[1]\n      }];\n    }\n\n    for (var i = 0; i < lastLevelTicks.length - 1; i++) {\n      var startTick = lastLevelTicks[i].value;\n      var endTick = lastLevelTicks[i + 1].value;\n\n      if (startTick === endTick) {\n        continue;\n      }\n\n      var interval = void 0;\n      var getterName = void 0;\n      var setterName = void 0;\n      var isDate = false;\n\n      switch (unitName) {\n        case 'year':\n          interval = Math.max(1, Math.round(approxInterval / ONE_DAY / 365));\n          getterName = fullYearGetterName(isUTC);\n          setterName = fullYearSetterName(isUTC);\n          break;\n\n        case 'half-year':\n        case 'quarter':\n        case 'month':\n          interval = getMonthInterval(approxInterval);\n          getterName = monthGetterName(isUTC);\n          setterName = monthSetterName(isUTC);\n          break;\n\n        case 'week':\n        case 'half-week':\n        case 'day':\n          interval = getDateInterval(approxInterval, 31);\n          getterName = dateGetterName(isUTC);\n          setterName = dateSetterName(isUTC);\n          isDate = true;\n          break;\n\n        case 'half-day':\n        case 'quarter-day':\n        case 'hour':\n          interval = getHourInterval(approxInterval);\n          getterName = hoursGetterName(isUTC);\n          setterName = hoursSetterName(isUTC);\n          break;\n\n        case 'minute':\n          interval = getMinutesAndSecondsInterval(approxInterval, true);\n          getterName = minutesGetterName(isUTC);\n          setterName = minutesSetterName(isUTC);\n          break;\n\n        case 'second':\n          interval = getMinutesAndSecondsInterval(approxInterval, false);\n          getterName = secondsGetterName(isUTC);\n          setterName = secondsSetterName(isUTC);\n          break;\n\n        case 'millisecond':\n          interval = getMillisecondsInterval(approxInterval);\n          getterName = millisecondsGetterName(isUTC);\n          setterName = millisecondsSetterName(isUTC);\n          break;\n      }\n\n      addTicksInSpan(interval, startTick, endTick, getterName, setterName, isDate, newAddedTicks);\n\n      if (unitName === 'year' && levelTicks.length > 1 && i === 0) {\n        levelTicks.unshift({\n          value: levelTicks[0].value - interval\n        });\n      }\n    }\n\n    for (var i = 0; i < newAddedTicks.length; i++) {\n      levelTicks.push(newAddedTicks[i]);\n    }\n\n    return newAddedTicks;\n  }\n\n  var levelsTicks = [];\n  var currentLevelTicks = [];\n  var tickCount = 0;\n  var lastLevelTickCount = 0;\n\n  for (var i = 0; i < unitNames.length && iter++ < safeLimit; ++i) {\n    var primaryTimeUnit = getPrimaryTimeUnit(unitNames[i]);\n\n    if (!isPrimaryTimeUnit(unitNames[i])) {\n      continue;\n    }\n\n    addLevelTicks(unitNames[i], levelsTicks[levelsTicks.length - 1] || [], currentLevelTicks);\n    var nextPrimaryTimeUnit = unitNames[i + 1] ? getPrimaryTimeUnit(unitNames[i + 1]) : null;\n\n    if (primaryTimeUnit !== nextPrimaryTimeUnit) {\n      if (currentLevelTicks.length) {\n        lastLevelTickCount = tickCount;\n        currentLevelTicks.sort(function (a, b) {\n          return a.value - b.value;\n        });\n        var levelTicksRemoveDuplicated = [];\n\n        for (var i_1 = 0; i_1 < currentLevelTicks.length; ++i_1) {\n          var tickValue = currentLevelTicks[i_1].value;\n\n          if (i_1 === 0 || currentLevelTicks[i_1 - 1].value !== tickValue) {\n            levelTicksRemoveDuplicated.push(currentLevelTicks[i_1]);\n\n            if (tickValue >= extent[0] && tickValue <= extent[1]) {\n              tickCount++;\n            }\n          }\n        }\n\n        var targetTickNum = (extent[1] - extent[0]) / approxInterval;\n\n        if (tickCount > targetTickNum * 1.5 && lastLevelTickCount > targetTickNum / 1.5) {\n          break;\n        }\n\n        levelsTicks.push(levelTicksRemoveDuplicated);\n\n        if (tickCount > targetTickNum || bottomUnitName === unitNames[i]) {\n          break;\n        }\n      }\n\n      currentLevelTicks = [];\n    }\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (iter >= safeLimit) {\n      warn('Exceed safe limit.');\n    }\n  }\n\n  var levelsTicksInExtent = filter(map(levelsTicks, function (levelTicks) {\n    return filter(levelTicks, function (tick) {\n      return tick.value >= extent[0] && tick.value <= extent[1] && !tick.notAdd;\n    });\n  }), function (levelTicks) {\n    return levelTicks.length > 0;\n  });\n  var ticks = [];\n  var maxLevel = levelsTicksInExtent.length - 1;\n\n  for (var i = 0; i < levelsTicksInExtent.length; ++i) {\n    var levelTicks = levelsTicksInExtent[i];\n\n    for (var k = 0; k < levelTicks.length; ++k) {\n      ticks.push({\n        value: levelTicks[k].value,\n        level: maxLevel - i\n      });\n    }\n  }\n\n  ticks.sort(function (a, b) {\n    return a.value - b.value;\n  });\n  var result = [];\n\n  for (var i = 0; i < ticks.length; ++i) {\n    if (i === 0 || ticks[i].value !== ticks[i - 1].value) {\n      result.push(ticks[i]);\n    }\n  }\n\n  return result;\n}\n\nScale.registerClass(TimeScale);\nexport default TimeScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Scale from './Scale';\nimport * as numberUtil from '../util/number';\nimport * as scaleHelper from './helper';\nimport IntervalScale from './Interval';\nvar scaleProto = Scale.prototype;\nvar intervalScaleProto = IntervalScale.prototype;\nvar getPrecisionSafe = numberUtil.getPrecisionSafe;\nvar roundingErrorFix = numberUtil.round;\nvar mathFloor = Math.floor;\nvar mathCeil = Math.ceil;\nvar mathPow = Math.pow;\nvar mathLog = Math.log;\n\nvar LogScale = function (_super) {\n  __extends(LogScale, _super);\n\n  function LogScale() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'log';\n    _this.base = 10;\n    _this._originalScale = new IntervalScale();\n    _this._interval = 0;\n    return _this;\n  }\n\n  LogScale.prototype.getTicks = function (expandToNicedExtent) {\n    var originalScale = this._originalScale;\n    var extent = this._extent;\n    var originalExtent = originalScale.getExtent();\n    var ticks = intervalScaleProto.getTicks.call(this, expandToNicedExtent);\n    return zrUtil.map(ticks, function (tick) {\n      var val = tick.value;\n      var powVal = numberUtil.round(mathPow(this.base, val));\n      powVal = val === extent[0] && this._fixMin ? fixRoundingError(powVal, originalExtent[0]) : powVal;\n      powVal = val === extent[1] && this._fixMax ? fixRoundingError(powVal, originalExtent[1]) : powVal;\n      return {\n        value: powVal\n      };\n    }, this);\n  };\n\n  LogScale.prototype.setExtent = function (start, end) {\n    var base = this.base;\n    start = mathLog(start) / mathLog(base);\n    end = mathLog(end) / mathLog(base);\n    intervalScaleProto.setExtent.call(this, start, end);\n  };\n\n  LogScale.prototype.getExtent = function () {\n    var base = this.base;\n    var extent = scaleProto.getExtent.call(this);\n    extent[0] = mathPow(base, extent[0]);\n    extent[1] = mathPow(base, extent[1]);\n    var originalScale = this._originalScale;\n    var originalExtent = originalScale.getExtent();\n    this._fixMin && (extent[0] = fixRoundingError(extent[0], originalExtent[0]));\n    this._fixMax && (extent[1] = fixRoundingError(extent[1], originalExtent[1]));\n    return extent;\n  };\n\n  LogScale.prototype.unionExtent = function (extent) {\n    this._originalScale.unionExtent(extent);\n\n    var base = this.base;\n    extent[0] = mathLog(extent[0]) / mathLog(base);\n    extent[1] = mathLog(extent[1]) / mathLog(base);\n    scaleProto.unionExtent.call(this, extent);\n  };\n\n  LogScale.prototype.unionExtentFromData = function (data, dim) {\n    this.unionExtent(data.getApproximateExtent(dim));\n  };\n\n  LogScale.prototype.niceTicks = function (approxTickNum) {\n    approxTickNum = approxTickNum || 10;\n    var extent = this._extent;\n    var span = extent[1] - extent[0];\n\n    if (span === Infinity || span <= 0) {\n      return;\n    }\n\n    var interval = numberUtil.quantity(span);\n    var err = approxTickNum / span * interval;\n\n    if (err <= 0.5) {\n      interval *= 10;\n    }\n\n    while (!isNaN(interval) && Math.abs(interval) < 1 && Math.abs(interval) > 0) {\n      interval *= 10;\n    }\n\n    var niceExtent = [numberUtil.round(mathCeil(extent[0] / interval) * interval), numberUtil.round(mathFloor(extent[1] / interval) * interval)];\n    this._interval = interval;\n    this._niceExtent = niceExtent;\n  };\n\n  LogScale.prototype.niceExtent = function (opt) {\n    intervalScaleProto.niceExtent.call(this, opt);\n    this._fixMin = opt.fixMin;\n    this._fixMax = opt.fixMax;\n  };\n\n  LogScale.prototype.parse = function (val) {\n    return val;\n  };\n\n  LogScale.prototype.contain = function (val) {\n    val = mathLog(val) / mathLog(this.base);\n    return scaleHelper.contain(val, this._extent);\n  };\n\n  LogScale.prototype.normalize = function (val) {\n    val = mathLog(val) / mathLog(this.base);\n    return scaleHelper.normalize(val, this._extent);\n  };\n\n  LogScale.prototype.scale = function (val) {\n    val = scaleHelper.scale(val, this._extent);\n    return mathPow(this.base, val);\n  };\n\n  LogScale.type = 'log';\n  return LogScale;\n}(Scale);\n\nvar proto = LogScale.prototype;\nproto.getMinorTicks = intervalScaleProto.getMinorTicks;\nproto.getLabel = intervalScaleProto.getLabel;\n\nfunction fixRoundingError(val, originalVal) {\n  return roundingErrorFix(val, getPrecisionSafe(originalVal));\n}\n\nScale.registerClass(LogScale);\nexport default LogScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { assert, isArray, eqNaN, isFunction } from 'zrender/lib/core/util';\nimport { parsePercent } from 'zrender/lib/contain/text';\n\nvar ScaleRawExtentInfo = function () {\n  function ScaleRawExtentInfo(scale, model, originalExtent) {\n    this._prepareParams(scale, model, originalExtent);\n  }\n\n  ScaleRawExtentInfo.prototype._prepareParams = function (scale, model, dataExtent) {\n    if (dataExtent[1] < dataExtent[0]) {\n      dataExtent = [NaN, NaN];\n    }\n\n    this._dataMin = dataExtent[0];\n    this._dataMax = dataExtent[1];\n    var isOrdinal = this._isOrdinal = scale.type === 'ordinal';\n    this._needCrossZero = model.getNeedCrossZero && model.getNeedCrossZero();\n    var modelMinRaw = this._modelMinRaw = model.get('min', true);\n\n    if (isFunction(modelMinRaw)) {\n      this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw({\n        min: dataExtent[0],\n        max: dataExtent[1]\n      }));\n    } else if (modelMinRaw !== 'dataMin') {\n      this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw);\n    }\n\n    var modelMaxRaw = this._modelMaxRaw = model.get('max', true);\n\n    if (isFunction(modelMaxRaw)) {\n      this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw({\n        min: dataExtent[0],\n        max: dataExtent[1]\n      }));\n    } else if (modelMaxRaw !== 'dataMax') {\n      this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw);\n    }\n\n    if (isOrdinal) {\n      this._axisDataLen = model.getCategories().length;\n    } else {\n      var boundaryGap = model.get('boundaryGap');\n      var boundaryGapArr = isArray(boundaryGap) ? boundaryGap : [boundaryGap || 0, boundaryGap || 0];\n\n      if (typeof boundaryGapArr[0] === 'boolean' || typeof boundaryGapArr[1] === 'boolean') {\n        if (process.env.NODE_ENV !== 'production') {\n          console.warn('Boolean type for boundaryGap is only ' + 'allowed for ordinal axis. Please use string in ' + 'percentage instead, e.g., \"20%\". Currently, ' + 'boundaryGap is set to be 0.');\n        }\n\n        this._boundaryGapInner = [0, 0];\n      } else {\n        this._boundaryGapInner = [parsePercent(boundaryGapArr[0], 1), parsePercent(boundaryGapArr[1], 1)];\n      }\n    }\n  };\n\n  ScaleRawExtentInfo.prototype.calculate = function () {\n    var isOrdinal = this._isOrdinal;\n    var dataMin = this._dataMin;\n    var dataMax = this._dataMax;\n    var axisDataLen = this._axisDataLen;\n    var boundaryGapInner = this._boundaryGapInner;\n    var span = !isOrdinal ? dataMax - dataMin || Math.abs(dataMin) : null;\n    var min = this._modelMinRaw === 'dataMin' ? dataMin : this._modelMinNum;\n    var max = this._modelMaxRaw === 'dataMax' ? dataMax : this._modelMaxNum;\n    var minFixed = min != null;\n    var maxFixed = max != null;\n\n    if (min == null) {\n      min = isOrdinal ? axisDataLen ? 0 : NaN : dataMin - boundaryGapInner[0] * span;\n    }\n\n    if (max == null) {\n      max = isOrdinal ? axisDataLen ? axisDataLen - 1 : NaN : dataMax + boundaryGapInner[1] * span;\n    }\n\n    (min == null || !isFinite(min)) && (min = NaN);\n    (max == null || !isFinite(max)) && (max = NaN);\n\n    if (min > max) {\n      min = NaN;\n      max = NaN;\n    }\n\n    var isBlank = eqNaN(min) || eqNaN(max) || isOrdinal && !axisDataLen;\n\n    if (this._needCrossZero) {\n      if (min > 0 && max > 0 && !minFixed) {\n        min = 0;\n      }\n\n      if (min < 0 && max < 0 && !maxFixed) {\n        max = 0;\n      }\n    }\n\n    var determinedMin = this._determinedMin;\n    var determinedMax = this._determinedMax;\n\n    if (determinedMin != null) {\n      min = determinedMin;\n      minFixed = true;\n    }\n\n    if (determinedMax != null) {\n      max = determinedMax;\n      maxFixed = true;\n    }\n\n    return {\n      min: min,\n      max: max,\n      minFixed: minFixed,\n      maxFixed: maxFixed,\n      isBlank: isBlank\n    };\n  };\n\n  ScaleRawExtentInfo.prototype.modifyDataMinMax = function (minMaxName, val) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!this.frozen);\n    }\n\n    this[DATA_MIN_MAX_ATTR[minMaxName]] = val;\n  };\n\n  ScaleRawExtentInfo.prototype.setDeterminedMinMax = function (minMaxName, val) {\n    var attr = DETERMINED_MIN_MAX_ATTR[minMaxName];\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!this.frozen && this[attr] == null);\n    }\n\n    this[attr] = val;\n  };\n\n  ScaleRawExtentInfo.prototype.freeze = function () {\n    this.frozen = true;\n  };\n\n  return ScaleRawExtentInfo;\n}();\n\nexport { ScaleRawExtentInfo };\nvar DETERMINED_MIN_MAX_ATTR = {\n  min: '_determinedMin',\n  max: '_determinedMax'\n};\nvar DATA_MIN_MAX_ATTR = {\n  min: '_dataMin',\n  max: '_dataMax'\n};\nexport function ensureScaleRawExtentInfo(scale, model, originalExtent) {\n  var rawExtentInfo = scale.rawExtentInfo;\n\n  if (rawExtentInfo) {\n    return rawExtentInfo;\n  }\n\n  rawExtentInfo = new ScaleRawExtentInfo(scale, model, originalExtent);\n  scale.rawExtentInfo = rawExtentInfo;\n  return rawExtentInfo;\n}\nexport function parseAxisModelMinMax(scale, minMax) {\n  return minMax == null ? null : eqNaN(minMax) ? NaN : scale.parse(minMax);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport OrdinalScale from '../scale/Ordinal';\nimport IntervalScale from '../scale/Interval';\nimport Scale from '../scale/Scale';\nimport { prepareLayoutBarSeries, makeColumnLayout, retrieveColumnLayout } from '../layout/barGrid';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport TimeScale from '../scale/Time';\nimport LogScale from '../scale/Log';\nimport { getStackedDimension } from '../data/helper/dataStackHelper';\nimport { ensureScaleRawExtentInfo } from './scaleRawExtentInfo';\nexport function getScaleExtent(scale, model) {\n  var scaleType = scale.type;\n  var rawExtentResult = ensureScaleRawExtentInfo(scale, model, scale.getExtent()).calculate();\n  scale.setBlank(rawExtentResult.isBlank);\n  var min = rawExtentResult.min;\n  var max = rawExtentResult.max;\n  var ecModel = model.ecModel;\n\n  if (ecModel && scaleType === 'time') {\n    var barSeriesModels = prepareLayoutBarSeries('bar', ecModel);\n    var isBaseAxisAndHasBarSeries_1 = false;\n    zrUtil.each(barSeriesModels, function (seriesModel) {\n      isBaseAxisAndHasBarSeries_1 = isBaseAxisAndHasBarSeries_1 || seriesModel.getBaseAxis() === model.axis;\n    });\n\n    if (isBaseAxisAndHasBarSeries_1) {\n      var barWidthAndOffset = makeColumnLayout(barSeriesModels);\n      var adjustedScale = adjustScaleForOverflow(min, max, model, barWidthAndOffset);\n      min = adjustedScale.min;\n      max = adjustedScale.max;\n    }\n  }\n\n  return {\n    extent: [min, max],\n    fixMin: rawExtentResult.minFixed,\n    fixMax: rawExtentResult.maxFixed\n  };\n}\n\nfunction adjustScaleForOverflow(min, max, model, barWidthAndOffset) {\n  var axisExtent = model.axis.getExtent();\n  var axisLength = axisExtent[1] - axisExtent[0];\n  var barsOnCurrentAxis = retrieveColumnLayout(barWidthAndOffset, model.axis);\n\n  if (barsOnCurrentAxis === undefined) {\n    return {\n      min: min,\n      max: max\n    };\n  }\n\n  var minOverflow = Infinity;\n  zrUtil.each(barsOnCurrentAxis, function (item) {\n    minOverflow = Math.min(item.offset, minOverflow);\n  });\n  var maxOverflow = -Infinity;\n  zrUtil.each(barsOnCurrentAxis, function (item) {\n    maxOverflow = Math.max(item.offset + item.width, maxOverflow);\n  });\n  minOverflow = Math.abs(minOverflow);\n  maxOverflow = Math.abs(maxOverflow);\n  var totalOverFlow = minOverflow + maxOverflow;\n  var oldRange = max - min;\n  var oldRangePercentOfNew = 1 - (minOverflow + maxOverflow) / axisLength;\n  var overflowBuffer = oldRange / oldRangePercentOfNew - oldRange;\n  max += overflowBuffer * (maxOverflow / totalOverFlow);\n  min -= overflowBuffer * (minOverflow / totalOverFlow);\n  return {\n    min: min,\n    max: max\n  };\n}\n\nexport function niceScaleExtent(scale, model) {\n  var extentInfo = getScaleExtent(scale, model);\n  var extent = extentInfo.extent;\n  var splitNumber = model.get('splitNumber');\n\n  if (scale instanceof LogScale) {\n    scale.base = model.get('logBase');\n  }\n\n  var scaleType = scale.type;\n  scale.setExtent(extent[0], extent[1]);\n  scale.niceExtent({\n    splitNumber: splitNumber,\n    fixMin: extentInfo.fixMin,\n    fixMax: extentInfo.fixMax,\n    minInterval: scaleType === 'interval' || scaleType === 'time' ? model.get('minInterval') : null,\n    maxInterval: scaleType === 'interval' || scaleType === 'time' ? model.get('maxInterval') : null\n  });\n  var interval = model.get('interval');\n\n  if (interval != null) {\n    scale.setInterval && scale.setInterval(interval);\n  }\n}\nexport function createScaleByModel(model, axisType) {\n  axisType = axisType || model.get('type');\n\n  if (axisType) {\n    switch (axisType) {\n      case 'category':\n        return new OrdinalScale({\n          ordinalMeta: model.getOrdinalMeta ? model.getOrdinalMeta() : model.getCategories(),\n          extent: [Infinity, -Infinity]\n        });\n\n      case 'time':\n        return new TimeScale({\n          locale: model.ecModel.getLocaleModel(),\n          useUTC: model.ecModel.get('useUTC')\n        });\n\n      default:\n        return new (Scale.getClass(axisType) || IntervalScale)();\n    }\n  }\n}\nexport function ifAxisCrossZero(axis) {\n  var dataExtent = axis.scale.getExtent();\n  var min = dataExtent[0];\n  var max = dataExtent[1];\n  return !(min > 0 && max > 0 || min < 0 && max < 0);\n}\nexport function makeLabelFormatter(axis) {\n  var labelFormatter = axis.getLabelModel().get('formatter');\n  var categoryTickStart = axis.type === 'category' ? axis.scale.getExtent()[0] : null;\n\n  if (axis.scale.type === 'time') {\n    return function (tpl) {\n      return function (tick, idx) {\n        return axis.scale.getFormattedLabel(tick, idx, tpl);\n      };\n    }(labelFormatter);\n  } else if (typeof labelFormatter === 'string') {\n    return function (tpl) {\n      return function (tick) {\n        var label = axis.scale.getLabel(tick);\n        var text = tpl.replace('{value}', label != null ? label : '');\n        return text;\n      };\n    }(labelFormatter);\n  } else if (typeof labelFormatter === 'function') {\n    return function (cb) {\n      return function (tick, idx) {\n        if (categoryTickStart != null) {\n          idx = tick.value - categoryTickStart;\n        }\n\n        return cb(getAxisRawValue(axis, tick), idx, tick.level != null ? {\n          level: tick.level\n        } : null);\n      };\n    }(labelFormatter);\n  } else {\n    return function (tick) {\n      return axis.scale.getLabel(tick);\n    };\n  }\n}\nexport function getAxisRawValue(axis, tick) {\n  return axis.type === 'category' ? axis.scale.getLabel(tick) : tick.value;\n}\nexport function estimateLabelUnionRect(axis) {\n  var axisModel = axis.model;\n  var scale = axis.scale;\n\n  if (!axisModel.get(['axisLabel', 'show']) || scale.isBlank()) {\n    return;\n  }\n\n  var realNumberScaleTicks;\n  var tickCount;\n  var categoryScaleExtent = scale.getExtent();\n\n  if (scale instanceof OrdinalScale) {\n    tickCount = scale.count();\n  } else {\n    realNumberScaleTicks = scale.getTicks();\n    tickCount = realNumberScaleTicks.length;\n  }\n\n  var axisLabelModel = axis.getLabelModel();\n  var labelFormatter = makeLabelFormatter(axis);\n  var rect;\n  var step = 1;\n\n  if (tickCount > 40) {\n    step = Math.ceil(tickCount / 40);\n  }\n\n  for (var i = 0; i < tickCount; i += step) {\n    var tick = realNumberScaleTicks ? realNumberScaleTicks[i] : {\n      value: categoryScaleExtent[0] + i\n    };\n    var label = labelFormatter(tick, i);\n    var unrotatedSingleRect = axisLabelModel.getTextRect(label);\n    var singleRect = rotateTextRect(unrotatedSingleRect, axisLabelModel.get('rotate') || 0);\n    rect ? rect.union(singleRect) : rect = singleRect;\n  }\n\n  return rect;\n}\n\nfunction rotateTextRect(textRect, rotate) {\n  var rotateRadians = rotate * Math.PI / 180;\n  var beforeWidth = textRect.width;\n  var beforeHeight = textRect.height;\n  var afterWidth = beforeWidth * Math.abs(Math.cos(rotateRadians)) + Math.abs(beforeHeight * Math.sin(rotateRadians));\n  var afterHeight = beforeWidth * Math.abs(Math.sin(rotateRadians)) + Math.abs(beforeHeight * Math.cos(rotateRadians));\n  var rotatedRect = new BoundingRect(textRect.x, textRect.y, afterWidth, afterHeight);\n  return rotatedRect;\n}\n\nexport function getOptionCategoryInterval(model) {\n  var interval = model.get('interval');\n  return interval == null ? 'auto' : interval;\n}\nexport function shouldShowAllLabels(axis) {\n  return axis.type === 'category' && getOptionCategoryInterval(axis.getLabelModel()) === 0;\n}\nexport function getDataDimensionsOnAxis(data, axisDim) {\n  var dataDimMap = {};\n  zrUtil.each(data.mapDimensionsAll(axisDim), function (dataDim) {\n    dataDimMap[getStackedDimension(data, dataDim)] = true;\n  });\n  return zrUtil.keys(dataDimMap);\n}\nexport function unionAxisExtentFromData(dataExtent, data, axisDim) {\n  if (data) {\n    zrUtil.each(getDataDimensionsOnAxis(data, axisDim), function (dim) {\n      var seriesExtent = data.getApproximateExtent(dim);\n      seriesExtent[0] < dataExtent[0] && (dataExtent[0] = seriesExtent[0]);\n      seriesExtent[1] > dataExtent[1] && (dataExtent[1] = seriesExtent[1]);\n    });\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar AxisModelCommonMixin = function () {\n  function AxisModelCommonMixin() {}\n\n  AxisModelCommonMixin.prototype.getNeedCrossZero = function () {\n    var option = this.option;\n    return !option.scale;\n  };\n\n  AxisModelCommonMixin.prototype.getCoordSysModel = function () {\n    return;\n  };\n\n  return AxisModelCommonMixin;\n}();\n\nexport { AxisModelCommonMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport createListFromArray from '../../chart/helper/createListFromArray';\nimport * as axisHelper from '../../coord/axisHelper';\nimport { AxisModelCommonMixin } from '../../coord/axisModelCommonMixin';\nimport Model from '../../model/Model';\nimport { getLayoutRect } from '../../util/layout';\nimport { enableDataStack, isDimensionStacked, getStackedDimension } from '../../data/helper/dataStackHelper';\nimport { getECData } from '../../util/innerStore';\nimport { createTextStyle as innerCreateTextStyle } from '../../label/labelStyle';\nexport function createList(seriesModel) {\n  return createListFromArray(seriesModel.getSource(), seriesModel);\n}\nexport { getLayoutRect };\nexport { default as createDimensions } from '../../data/helper/createDimensions';\nexport var dataStack = {\n  isDimensionStacked: isDimensionStacked,\n  enableDataStack: enableDataStack,\n  getStackedDimension: getStackedDimension\n};\nexport { createSymbol } from '../../util/symbol';\nexport function createScale(dataExtent, option) {\n  var axisModel = option;\n\n  if (!(option instanceof Model)) {\n    axisModel = new Model(option);\n  }\n\n  var scale = axisHelper.createScaleByModel(axisModel);\n  scale.setExtent(dataExtent[0], dataExtent[1]);\n  axisHelper.niceScaleExtent(scale, axisModel);\n  return scale;\n}\nexport function mixinAxisModelCommonMethods(Model) {\n  zrUtil.mixin(Model, AxisModelCommonMixin);\n}\nexport { getECData };\nexport { enableHoverEmphasis } from '../../util/states';\nexport function createTextStyle(textStyleModel, opts) {\n  opts = opts || {};\n  return innerCreateTextStyle(textStyleModel, null, null, opts.state !== 'normal');\n}","import windingLine from './windingLine';\nvar EPSILON = 1e-8;\nfunction isAroundEqual(a, b) {\n    return Math.abs(a - b) < EPSILON;\n}\nexport function contain(points, x, y) {\n    var w = 0;\n    var p = points[0];\n    if (!p) {\n        return false;\n    }\n    for (var i = 1; i < points.length; i++) {\n        var p2 = points[i];\n        w += windingLine(p[0], p[1], p2[0], p2[1], x, y);\n        p = p2;\n    }\n    var p0 = points[0];\n    if (!isAroundEqual(p[0], p0[0]) || !isAroundEqual(p[1], p0[1])) {\n        w += windingLine(p[0], p[1], p0[0], p0[1], x, y);\n    }\n    return w !== 0;\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport * as bbox from 'zrender/lib/core/bbox';\nimport * as vec2 from 'zrender/lib/core/vector';\nimport * as polygonContain from 'zrender/lib/contain/polygon';\n\nvar Region = function () {\n  function Region(name, geometries, cp) {\n    this.name = name;\n    this.geometries = geometries;\n\n    if (!cp) {\n      var rect = this.getBoundingRect();\n      cp = [rect.x + rect.width / 2, rect.y + rect.height / 2];\n    } else {\n      cp = [cp[0], cp[1]];\n    }\n\n    this.center = cp;\n  }\n\n  Region.prototype.getBoundingRect = function () {\n    var rect = this._rect;\n\n    if (rect) {\n      return rect;\n    }\n\n    var MAX_NUMBER = Number.MAX_VALUE;\n    var min = [MAX_NUMBER, MAX_NUMBER];\n    var max = [-MAX_NUMBER, -MAX_NUMBER];\n    var min2 = [];\n    var max2 = [];\n    var geometries = this.geometries;\n    var i = 0;\n\n    for (; i < geometries.length; i++) {\n      if (geometries[i].type !== 'polygon') {\n        continue;\n      }\n\n      var exterior = geometries[i].exterior;\n      bbox.fromPoints(exterior, min2, max2);\n      vec2.min(min, min, min2);\n      vec2.max(max, max, max2);\n    }\n\n    if (i === 0) {\n      min[0] = min[1] = max[0] = max[1] = 0;\n    }\n\n    return this._rect = new BoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n  };\n\n  Region.prototype.contain = function (coord) {\n    var rect = this.getBoundingRect();\n    var geometries = this.geometries;\n\n    if (!rect.contain(coord[0], coord[1])) {\n      return false;\n    }\n\n    loopGeo: for (var i = 0, len = geometries.length; i < len; i++) {\n      if (geometries[i].type !== 'polygon') {\n        continue;\n      }\n\n      var exterior = geometries[i].exterior;\n      var interiors = geometries[i].interiors;\n\n      if (polygonContain.contain(exterior, coord[0], coord[1])) {\n        for (var k = 0; k < (interiors ? interiors.length : 0); k++) {\n          if (polygonContain.contain(interiors[k], coord[0], coord[1])) {\n            continue loopGeo;\n          }\n        }\n\n        return true;\n      }\n    }\n\n    return false;\n  };\n\n  Region.prototype.transformTo = function (x, y, width, height) {\n    var rect = this.getBoundingRect();\n    var aspect = rect.width / rect.height;\n\n    if (!width) {\n      width = aspect * height;\n    } else if (!height) {\n      height = width / aspect;\n    }\n\n    var target = new BoundingRect(x, y, width, height);\n    var transform = rect.calculateTransform(target);\n    var geometries = this.geometries;\n\n    for (var i = 0; i < geometries.length; i++) {\n      if (geometries[i].type !== 'polygon') {\n        continue;\n      }\n\n      var exterior = geometries[i].exterior;\n      var interiors = geometries[i].interiors;\n\n      for (var p = 0; p < exterior.length; p++) {\n        vec2.applyTransform(exterior[p], exterior[p], transform);\n      }\n\n      for (var h = 0; h < (interiors ? interiors.length : 0); h++) {\n        for (var p = 0; p < interiors[h].length; p++) {\n          vec2.applyTransform(interiors[h][p], interiors[h][p], transform);\n        }\n      }\n    }\n\n    rect = this._rect;\n    rect.copy(target);\n    this.center = [rect.x + rect.width / 2, rect.y + rect.height / 2];\n  };\n\n  Region.prototype.cloneShallow = function (name) {\n    name == null && (name = this.name);\n    var newRegion = new Region(name, this.geometries, this.center);\n    newRegion._rect = this._rect;\n    newRegion.transformTo = null;\n    return newRegion;\n  };\n\n  return Region;\n}();\n\nexport default Region;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Region from './Region';\n\nfunction decode(json) {\n  if (!json.UTF8Encoding) {\n    return json;\n  }\n\n  var jsonCompressed = json;\n  var encodeScale = jsonCompressed.UTF8Scale;\n\n  if (encodeScale == null) {\n    encodeScale = 1024;\n  }\n\n  var features = jsonCompressed.features;\n\n  for (var f = 0; f < features.length; f++) {\n    var feature = features[f];\n    var geometry = feature.geometry;\n\n    if (geometry.type === 'Polygon') {\n      var coordinates = geometry.coordinates;\n\n      for (var c = 0; c < coordinates.length; c++) {\n        coordinates[c] = decodePolygon(coordinates[c], geometry.encodeOffsets[c], encodeScale);\n      }\n    } else if (geometry.type === 'MultiPolygon') {\n      var coordinates = geometry.coordinates;\n\n      for (var c = 0; c < coordinates.length; c++) {\n        var coordinate = coordinates[c];\n\n        for (var c2 = 0; c2 < coordinate.length; c2++) {\n          coordinate[c2] = decodePolygon(coordinate[c2], geometry.encodeOffsets[c][c2], encodeScale);\n        }\n      }\n    }\n  }\n\n  jsonCompressed.UTF8Encoding = false;\n  return jsonCompressed;\n}\n\nfunction decodePolygon(coordinate, encodeOffsets, encodeScale) {\n  var result = [];\n  var prevX = encodeOffsets[0];\n  var prevY = encodeOffsets[1];\n\n  for (var i = 0; i < coordinate.length; i += 2) {\n    var x = coordinate.charCodeAt(i) - 64;\n    var y = coordinate.charCodeAt(i + 1) - 64;\n    x = x >> 1 ^ -(x & 1);\n    y = y >> 1 ^ -(y & 1);\n    x += prevX;\n    y += prevY;\n    prevX = x;\n    prevY = y;\n    result.push([x / encodeScale, y / encodeScale]);\n  }\n\n  return result;\n}\n\nexport default function parseGeoJSON(geoJson, nameProperty) {\n  geoJson = decode(geoJson);\n  return zrUtil.map(zrUtil.filter(geoJson.features, function (featureObj) {\n    return featureObj.geometry && featureObj.properties && featureObj.geometry.coordinates.length > 0;\n  }), function (featureObj) {\n    var properties = featureObj.properties;\n    var geo = featureObj.geometry;\n    var geometries = [];\n\n    if (geo.type === 'Polygon') {\n      var coordinates = geo.coordinates;\n      geometries.push({\n        type: 'polygon',\n        exterior: coordinates[0],\n        interiors: coordinates.slice(1)\n      });\n    }\n\n    if (geo.type === 'MultiPolygon') {\n      var coordinates = geo.coordinates;\n      zrUtil.each(coordinates, function (item) {\n        if (item[0]) {\n          geometries.push({\n            type: 'polygon',\n            exterior: item[0],\n            interiors: item.slice(1)\n          });\n        }\n      });\n    }\n\n    var region = new Region(properties[nameProperty || 'name'], geometries, properties.cp);\n    region.properties = properties;\n    return region;\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as textContain from 'zrender/lib/contain/text';\nimport { makeInner } from '../util/model';\nimport { makeLabelFormatter, getOptionCategoryInterval, shouldShowAllLabels } from './axisHelper';\nvar inner = makeInner();\nexport function createAxisLabels(axis) {\n  return axis.type === 'category' ? makeCategoryLabels(axis) : makeRealNumberLabels(axis);\n}\nexport function createAxisTicks(axis, tickModel) {\n  return axis.type === 'category' ? makeCategoryTicks(axis, tickModel) : {\n    ticks: zrUtil.map(axis.scale.getTicks(), function (tick) {\n      return tick.value;\n    })\n  };\n}\n\nfunction makeCategoryLabels(axis) {\n  var labelModel = axis.getLabelModel();\n  var result = makeCategoryLabelsActually(axis, labelModel);\n  return !labelModel.get('show') || axis.scale.isBlank() ? {\n    labels: [],\n    labelCategoryInterval: result.labelCategoryInterval\n  } : result;\n}\n\nfunction makeCategoryLabelsActually(axis, labelModel) {\n  var labelsCache = getListCache(axis, 'labels');\n  var optionLabelInterval = getOptionCategoryInterval(labelModel);\n  var result = listCacheGet(labelsCache, optionLabelInterval);\n\n  if (result) {\n    return result;\n  }\n\n  var labels;\n  var numericLabelInterval;\n\n  if (zrUtil.isFunction(optionLabelInterval)) {\n    labels = makeLabelsByCustomizedCategoryInterval(axis, optionLabelInterval);\n  } else {\n    numericLabelInterval = optionLabelInterval === 'auto' ? makeAutoCategoryInterval(axis) : optionLabelInterval;\n    labels = makeLabelsByNumericCategoryInterval(axis, numericLabelInterval);\n  }\n\n  return listCacheSet(labelsCache, optionLabelInterval, {\n    labels: labels,\n    labelCategoryInterval: numericLabelInterval\n  });\n}\n\nfunction makeCategoryTicks(axis, tickModel) {\n  var ticksCache = getListCache(axis, 'ticks');\n  var optionTickInterval = getOptionCategoryInterval(tickModel);\n  var result = listCacheGet(ticksCache, optionTickInterval);\n\n  if (result) {\n    return result;\n  }\n\n  var ticks;\n  var tickCategoryInterval;\n\n  if (!tickModel.get('show') || axis.scale.isBlank()) {\n    ticks = [];\n  }\n\n  if (zrUtil.isFunction(optionTickInterval)) {\n    ticks = makeLabelsByCustomizedCategoryInterval(axis, optionTickInterval, true);\n  } else if (optionTickInterval === 'auto') {\n    var labelsResult = makeCategoryLabelsActually(axis, axis.getLabelModel());\n    tickCategoryInterval = labelsResult.labelCategoryInterval;\n    ticks = zrUtil.map(labelsResult.labels, function (labelItem) {\n      return labelItem.tickValue;\n    });\n  } else {\n    tickCategoryInterval = optionTickInterval;\n    ticks = makeLabelsByNumericCategoryInterval(axis, tickCategoryInterval, true);\n  }\n\n  return listCacheSet(ticksCache, optionTickInterval, {\n    ticks: ticks,\n    tickCategoryInterval: tickCategoryInterval\n  });\n}\n\nfunction makeRealNumberLabels(axis) {\n  var ticks = axis.scale.getTicks();\n  var labelFormatter = makeLabelFormatter(axis);\n  return {\n    labels: zrUtil.map(ticks, function (tick, idx) {\n      return {\n        formattedLabel: labelFormatter(tick, idx),\n        rawLabel: axis.scale.getLabel(tick),\n        tickValue: tick.value\n      };\n    })\n  };\n}\n\nfunction getListCache(axis, prop) {\n  return inner(axis)[prop] || (inner(axis)[prop] = []);\n}\n\nfunction listCacheGet(cache, key) {\n  for (var i = 0; i < cache.length; i++) {\n    if (cache[i].key === key) {\n      return cache[i].value;\n    }\n  }\n}\n\nfunction listCacheSet(cache, key, value) {\n  cache.push({\n    key: key,\n    value: value\n  });\n  return value;\n}\n\nfunction makeAutoCategoryInterval(axis) {\n  var result = inner(axis).autoInterval;\n  return result != null ? result : inner(axis).autoInterval = axis.calculateCategoryInterval();\n}\n\nexport function calculateCategoryInterval(axis) {\n  var params = fetchAutoCategoryIntervalCalculationParams(axis);\n  var labelFormatter = makeLabelFormatter(axis);\n  var rotation = (params.axisRotate - params.labelRotate) / 180 * Math.PI;\n  var ordinalScale = axis.scale;\n  var ordinalExtent = ordinalScale.getExtent();\n  var tickCount = ordinalScale.count();\n\n  if (ordinalExtent[1] - ordinalExtent[0] < 1) {\n    return 0;\n  }\n\n  var step = 1;\n\n  if (tickCount > 40) {\n    step = Math.max(1, Math.floor(tickCount / 40));\n  }\n\n  var tickValue = ordinalExtent[0];\n  var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue);\n  var unitW = Math.abs(unitSpan * Math.cos(rotation));\n  var unitH = Math.abs(unitSpan * Math.sin(rotation));\n  var maxW = 0;\n  var maxH = 0;\n\n  for (; tickValue <= ordinalExtent[1]; tickValue += step) {\n    var width = 0;\n    var height = 0;\n    var rect = textContain.getBoundingRect(labelFormatter({\n      value: tickValue\n    }), params.font, 'center', 'top');\n    width = rect.width * 1.3;\n    height = rect.height * 1.3;\n    maxW = Math.max(maxW, width, 7);\n    maxH = Math.max(maxH, height, 7);\n  }\n\n  var dw = maxW / unitW;\n  var dh = maxH / unitH;\n  isNaN(dw) && (dw = Infinity);\n  isNaN(dh) && (dh = Infinity);\n  var interval = Math.max(0, Math.floor(Math.min(dw, dh)));\n  var cache = inner(axis.model);\n  var axisExtent = axis.getExtent();\n  var lastAutoInterval = cache.lastAutoInterval;\n  var lastTickCount = cache.lastTickCount;\n\n  if (lastAutoInterval != null && lastTickCount != null && Math.abs(lastAutoInterval - interval) <= 1 && Math.abs(lastTickCount - tickCount) <= 1 && lastAutoInterval > interval && cache.axisExtent0 === axisExtent[0] && cache.axisExtent1 === axisExtent[1]) {\n    interval = lastAutoInterval;\n  } else {\n    cache.lastTickCount = tickCount;\n    cache.lastAutoInterval = interval;\n    cache.axisExtent0 = axisExtent[0];\n    cache.axisExtent1 = axisExtent[1];\n  }\n\n  return interval;\n}\n\nfunction fetchAutoCategoryIntervalCalculationParams(axis) {\n  var labelModel = axis.getLabelModel();\n  return {\n    axisRotate: axis.getRotate ? axis.getRotate() : axis.isHorizontal && !axis.isHorizontal() ? 90 : 0,\n    labelRotate: labelModel.get('rotate') || 0,\n    font: labelModel.getFont()\n  };\n}\n\nfunction makeLabelsByNumericCategoryInterval(axis, categoryInterval, onlyTick) {\n  var labelFormatter = makeLabelFormatter(axis);\n  var ordinalScale = axis.scale;\n  var ordinalExtent = ordinalScale.getExtent();\n  var labelModel = axis.getLabelModel();\n  var result = [];\n  var step = Math.max((categoryInterval || 0) + 1, 1);\n  var startTick = ordinalExtent[0];\n  var tickCount = ordinalScale.count();\n\n  if (startTick !== 0 && step > 1 && tickCount / step > 2) {\n    startTick = Math.round(Math.ceil(startTick / step) * step);\n  }\n\n  var showAllLabel = shouldShowAllLabels(axis);\n  var includeMinLabel = labelModel.get('showMinLabel') || showAllLabel;\n  var includeMaxLabel = labelModel.get('showMaxLabel') || showAllLabel;\n\n  if (includeMinLabel && startTick !== ordinalExtent[0]) {\n    addItem(ordinalExtent[0]);\n  }\n\n  var tickValue = startTick;\n\n  for (; tickValue <= ordinalExtent[1]; tickValue += step) {\n    addItem(tickValue);\n  }\n\n  if (includeMaxLabel && tickValue - step !== ordinalExtent[1]) {\n    addItem(ordinalExtent[1]);\n  }\n\n  function addItem(tickValue) {\n    var tickObj = {\n      value: tickValue\n    };\n    result.push(onlyTick ? tickValue : {\n      formattedLabel: labelFormatter(tickObj),\n      rawLabel: ordinalScale.getLabel(tickObj),\n      tickValue: tickValue\n    });\n  }\n\n  return result;\n}\n\nfunction makeLabelsByCustomizedCategoryInterval(axis, categoryInterval, onlyTick) {\n  var ordinalScale = axis.scale;\n  var labelFormatter = makeLabelFormatter(axis);\n  var result = [];\n  zrUtil.each(ordinalScale.getTicks(), function (tick) {\n    var rawLabel = ordinalScale.getLabel(tick);\n    var tickValue = tick.value;\n\n    if (categoryInterval(tick.value, rawLabel)) {\n      result.push(onlyTick ? tickValue : {\n        formattedLabel: labelFormatter(tick),\n        rawLabel: rawLabel,\n        tickValue: tickValue\n      });\n    }\n  });\n  return result;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, map } from 'zrender/lib/core/util';\nimport { linearMap, getPixelPrecision, round } from '../util/number';\nimport { createAxisTicks, createAxisLabels, calculateCategoryInterval } from './axisTickLabelBuilder';\nvar NORMALIZED_EXTENT = [0, 1];\n\nvar Axis = function () {\n  function Axis(dim, scale, extent) {\n    this.onBand = false;\n    this.inverse = false;\n    this.dim = dim;\n    this.scale = scale;\n    this._extent = extent || [0, 0];\n  }\n\n  Axis.prototype.contain = function (coord) {\n    var extent = this._extent;\n    var min = Math.min(extent[0], extent[1]);\n    var max = Math.max(extent[0], extent[1]);\n    return coord >= min && coord <= max;\n  };\n\n  Axis.prototype.containData = function (data) {\n    return this.scale.contain(data);\n  };\n\n  Axis.prototype.getExtent = function () {\n    return this._extent.slice();\n  };\n\n  Axis.prototype.getPixelPrecision = function (dataExtent) {\n    return getPixelPrecision(dataExtent || this.scale.getExtent(), this._extent);\n  };\n\n  Axis.prototype.setExtent = function (start, end) {\n    var extent = this._extent;\n    extent[0] = start;\n    extent[1] = end;\n  };\n\n  Axis.prototype.dataToCoord = function (data, clamp) {\n    var extent = this._extent;\n    var scale = this.scale;\n    data = scale.normalize(data);\n\n    if (this.onBand && scale.type === 'ordinal') {\n      extent = extent.slice();\n      fixExtentWithBands(extent, scale.count());\n    }\n\n    return linearMap(data, NORMALIZED_EXTENT, extent, clamp);\n  };\n\n  Axis.prototype.coordToData = function (coord, clamp) {\n    var extent = this._extent;\n    var scale = this.scale;\n\n    if (this.onBand && scale.type === 'ordinal') {\n      extent = extent.slice();\n      fixExtentWithBands(extent, scale.count());\n    }\n\n    var t = linearMap(coord, extent, NORMALIZED_EXTENT, clamp);\n    return this.scale.scale(t);\n  };\n\n  Axis.prototype.pointToData = function (point, clamp) {\n    return;\n  };\n\n  Axis.prototype.getTicksCoords = function (opt) {\n    opt = opt || {};\n    var tickModel = opt.tickModel || this.getTickModel();\n    var result = createAxisTicks(this, tickModel);\n    var ticks = result.ticks;\n    var ticksCoords = map(ticks, function (tickVal) {\n      return {\n        coord: this.dataToCoord(this.scale.type === 'ordinal' ? this.scale.getRawOrdinalNumber(tickVal) : tickVal),\n        tickValue: tickVal\n      };\n    }, this);\n    var alignWithLabel = tickModel.get('alignWithLabel');\n    fixOnBandTicksCoords(this, ticksCoords, alignWithLabel, opt.clamp);\n    return ticksCoords;\n  };\n\n  Axis.prototype.getMinorTicksCoords = function () {\n    if (this.scale.type === 'ordinal') {\n      return [];\n    }\n\n    var minorTickModel = this.model.getModel('minorTick');\n    var splitNumber = minorTickModel.get('splitNumber');\n\n    if (!(splitNumber > 0 && splitNumber < 100)) {\n      splitNumber = 5;\n    }\n\n    var minorTicks = this.scale.getMinorTicks(splitNumber);\n    var minorTicksCoords = map(minorTicks, function (minorTicksGroup) {\n      return map(minorTicksGroup, function (minorTick) {\n        return {\n          coord: this.dataToCoord(minorTick),\n          tickValue: minorTick\n        };\n      }, this);\n    }, this);\n    return minorTicksCoords;\n  };\n\n  Axis.prototype.getViewLabels = function () {\n    return createAxisLabels(this).labels;\n  };\n\n  Axis.prototype.getLabelModel = function () {\n    return this.model.getModel('axisLabel');\n  };\n\n  Axis.prototype.getTickModel = function () {\n    return this.model.getModel('axisTick');\n  };\n\n  Axis.prototype.getBandWidth = function () {\n    var axisExtent = this._extent;\n    var dataExtent = this.scale.getExtent();\n    var len = dataExtent[1] - dataExtent[0] + (this.onBand ? 1 : 0);\n    len === 0 && (len = 1);\n    var size = Math.abs(axisExtent[1] - axisExtent[0]);\n    return Math.abs(size) / len;\n  };\n\n  Axis.prototype.calculateCategoryInterval = function () {\n    return calculateCategoryInterval(this);\n  };\n\n  return Axis;\n}();\n\nfunction fixExtentWithBands(extent, nTick) {\n  var size = extent[1] - extent[0];\n  var len = nTick;\n  var margin = size / len / 2;\n  extent[0] += margin;\n  extent[1] -= margin;\n}\n\nfunction fixOnBandTicksCoords(axis, ticksCoords, alignWithLabel, clamp) {\n  var ticksLen = ticksCoords.length;\n\n  if (!axis.onBand || alignWithLabel || !ticksLen) {\n    return;\n  }\n\n  var axisExtent = axis.getExtent();\n  var last;\n  var diffSize;\n\n  if (ticksLen === 1) {\n    ticksCoords[0].coord = axisExtent[0];\n    last = ticksCoords[1] = {\n      coord: axisExtent[0]\n    };\n  } else {\n    var crossLen = ticksCoords[ticksLen - 1].tickValue - ticksCoords[0].tickValue;\n    var shift_1 = (ticksCoords[ticksLen - 1].coord - ticksCoords[0].coord) / crossLen;\n    each(ticksCoords, function (ticksItem) {\n      ticksItem.coord -= shift_1 / 2;\n    });\n    var dataExtent = axis.scale.getExtent();\n    diffSize = 1 + dataExtent[1] - ticksCoords[ticksLen - 1].tickValue;\n    last = {\n      coord: ticksCoords[ticksLen - 1].coord + shift_1 * diffSize\n    };\n    ticksCoords.push(last);\n  }\n\n  var inverse = axisExtent[0] > axisExtent[1];\n\n  if (littleThan(ticksCoords[0].coord, axisExtent[0])) {\n    clamp ? ticksCoords[0].coord = axisExtent[0] : ticksCoords.shift();\n  }\n\n  if (clamp && littleThan(axisExtent[0], ticksCoords[0].coord)) {\n    ticksCoords.unshift({\n      coord: axisExtent[0]\n    });\n  }\n\n  if (littleThan(axisExtent[1], last.coord)) {\n    clamp ? last.coord = axisExtent[1] : ticksCoords.pop();\n  }\n\n  if (clamp && littleThan(last.coord, axisExtent[1])) {\n    ticksCoords.push({\n      coord: axisExtent[1]\n    });\n  }\n\n  function littleThan(a, b) {\n    a = round(a);\n    b = round(b);\n    return inverse ? a > b : a < b;\n  }\n}\n\nexport default Axis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ComponentModel from '../model/Component';\nimport ComponentView from '../view/Component';\nimport SeriesModel from '../model/Series';\nimport ChartView from '../view/Chart';\nimport * as zrender_1 from 'zrender/lib/zrender';\nexport { zrender_1 as zrender };\nimport * as matrix_1 from 'zrender/lib/core/matrix';\nexport { matrix_1 as matrix };\nimport * as vector_1 from 'zrender/lib/core/vector';\nexport { vector_1 as vector };\nimport * as zrUtil_1 from 'zrender/lib/core/util';\nexport { zrUtil_1 as zrUtil };\nimport * as color_1 from 'zrender/lib/tool/color';\nexport { color_1 as color };\nexport { throttle } from '../util/throttle';\nimport * as helper_1 from './api/helper';\nexport { helper_1 as helper };\nexport { use } from '../extension';\nexport { default as parseGeoJSON } from '../coord/geo/parseGeoJson';\nexport { default as parseGeoJson } from '../coord/geo/parseGeoJson';\nimport * as number_1 from './api/number';\nexport { number_1 as number };\nimport * as time_1 from './api/time';\nexport { time_1 as time };\nimport * as graphic_1 from './api/graphic';\nexport { graphic_1 as graphic };\nimport * as format_1 from './api/format';\nexport { format_1 as format };\nimport * as util_1 from './api/util';\nexport { util_1 as util };\nexport { default as env } from 'zrender/lib/core/env';\nexport { default as List } from '../data/List';\nexport { default as Model } from '../model/Model';\nexport { default as Axis } from '../coord/Axis';\nexport { ComponentModel, ComponentView, SeriesModel, ChartView };\nexport { brushSingle as innerDrawElementOnCanvas } from 'zrender/lib/canvas/graphic';\nexport function extendComponentModel(proto) {\n  var Model = ComponentModel.extend(proto);\n  ComponentModel.registerClass(Model);\n  return Model;\n}\nexport function extendComponentView(proto) {\n  var View = ComponentView.extend(proto);\n  ComponentView.registerClass(View);\n  return View;\n}\nexport function extendSeriesModel(proto) {\n  var Model = SeriesModel.extend(proto);\n  SeriesModel.registerClass(Model);\n  return Model;\n}\nexport function extendChartView(proto) {\n  var View = ChartView.extend(proto);\n  ChartView.registerClass(View);\n  return View;\n}","export function createElement(name) {\n    return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\n","function diff(oldArr, newArr, equals) {\n    if (!equals) {\n        equals = function (a, b) {\n            return a === b;\n        };\n    }\n    oldArr = oldArr.slice();\n    newArr = newArr.slice();\n    var newLen = newArr.length;\n    var oldLen = oldArr.length;\n    var editLength = 1;\n    var maxEditLength = newLen + oldLen;\n    var bestPath = [{ newPos: -1, components: [] }];\n    var oldPos = extractCommon(bestPath[0], newArr, oldArr, 0, equals);\n    if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n        var indices = [];\n        for (var i = 0; i < newArr.length; i++) {\n            indices.push(i);\n        }\n        return [{\n                indices: indices,\n                count: newArr.length,\n                added: false,\n                removed: false\n            }];\n    }\n    function execEditLength() {\n        for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {\n            var basePath;\n            var addPath = bestPath[diagonalPath - 1];\n            var removePath = bestPath[diagonalPath + 1];\n            var oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;\n            if (addPath) {\n                bestPath[diagonalPath - 1] = undefined;\n            }\n            var canAdd = addPath && addPath.newPos + 1 < newLen;\n            var canRemove = removePath && 0 <= oldPos && oldPos < oldLen;\n            if (!canAdd && !canRemove) {\n                bestPath[diagonalPath] = undefined;\n                continue;\n            }\n            if (!canAdd || (canRemove && addPath.newPos < removePath.newPos)) {\n                basePath = clonePath(removePath);\n                pushComponent(basePath.components, false, true);\n            }\n            else {\n                basePath = addPath;\n                basePath.newPos++;\n                pushComponent(basePath.components, true, false);\n            }\n            oldPos = extractCommon(basePath, newArr, oldArr, diagonalPath, equals);\n            if (basePath.newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n                return buildValues(basePath.components);\n            }\n            else {\n                bestPath[diagonalPath] = basePath;\n            }\n        }\n        editLength++;\n    }\n    while (editLength <= maxEditLength) {\n        var ret = execEditLength();\n        if (ret) {\n            return ret;\n        }\n    }\n}\nfunction extractCommon(basePath, newArr, oldArr, diagonalPath, equals) {\n    var newLen = newArr.length;\n    var oldLen = oldArr.length;\n    var newPos = basePath.newPos;\n    var oldPos = newPos - diagonalPath;\n    var commonCount = 0;\n    while (newPos + 1 < newLen && oldPos + 1 < oldLen && equals(newArr[newPos + 1], oldArr[oldPos + 1])) {\n        newPos++;\n        oldPos++;\n        commonCount++;\n    }\n    if (commonCount) {\n        basePath.components.push({\n            count: commonCount,\n            added: false,\n            removed: false,\n            indices: []\n        });\n    }\n    basePath.newPos = newPos;\n    return oldPos;\n}\nfunction pushComponent(components, added, removed) {\n    var last = components[components.length - 1];\n    if (last && last.added === added && last.removed === removed) {\n        components[components.length - 1] = {\n            count: last.count + 1,\n            added: added,\n            removed: removed,\n            indices: []\n        };\n    }\n    else {\n        components.push({\n            count: 1,\n            added: added,\n            removed: removed,\n            indices: []\n        });\n    }\n}\nfunction buildValues(components) {\n    var componentPos = 0;\n    var componentLen = components.length;\n    var newPos = 0;\n    var oldPos = 0;\n    for (; componentPos < componentLen; componentPos++) {\n        var component = components[componentPos];\n        if (!component.removed) {\n            var indices = [];\n            for (var i = newPos; i < newPos + component.count; i++) {\n                indices.push(i);\n            }\n            component.indices = indices;\n            newPos += component.count;\n            if (!component.added) {\n                oldPos += component.count;\n            }\n        }\n        else {\n            for (var i = oldPos; i < oldPos + component.count; i++) {\n                component.indices.push(i);\n            }\n            oldPos += component.count;\n        }\n    }\n    return components;\n}\nfunction clonePath(path) {\n    return { newPos: path.newPos, components: path.components.slice(0) };\n}\nexport default function arrayDiff(oldArr, newArr, equal) {\n    return diff(oldArr, newArr, equal);\n}\n","import { createElement } from './core';\nimport ZRImage from '../graphic/Image';\nimport { DEFAULT_FONT, getLineHeight } from '../contain/text';\nimport { map } from '../core/util';\nimport { normalizeLineDash } from '../graphic/helper/dashStyle';\nvar NONE = 'none';\nvar mathRound = Math.round;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI = Math.PI;\nvar PI2 = Math.PI * 2;\nvar degree = 180 / PI;\nvar EPSILON = 1e-4;\nfunction round3(val) {\n    return mathRound(val * 1e3) / 1e3;\n}\nfunction round4(val) {\n    return mathRound(val * 1e4) / 1e4;\n}\nfunction isAroundZero(val) {\n    return val < EPSILON && val > -EPSILON;\n}\nfunction pathHasFill(style) {\n    var fill = style.fill;\n    return fill != null && fill !== NONE;\n}\nfunction pathHasStroke(style) {\n    var stroke = style.stroke;\n    return stroke != null && stroke !== NONE;\n}\nfunction setTransform(svgEl, m) {\n    if (m) {\n        attr(svgEl, 'transform', 'matrix('\n            + round3(m[0]) + ','\n            + round3(m[1]) + ','\n            + round3(m[2]) + ','\n            + round3(m[3]) + ','\n            + round4(m[4]) + ','\n            + round4(m[5])\n            + ')');\n    }\n}\nfunction attr(el, key, val) {\n    if (!val || val.type !== 'linear' && val.type !== 'radial') {\n        el.setAttribute(key, val);\n    }\n}\nfunction attrXLink(el, key, val) {\n    el.setAttributeNS('http://www.w3.org/1999/xlink', key, val);\n}\nfunction attrXML(el, key, val) {\n    el.setAttributeNS('http://www.w3.org/XML/1998/namespace', key, val);\n}\nfunction bindStyle(svgEl, style, el) {\n    var opacity = style.opacity == null ? 1 : style.opacity;\n    if (el instanceof ZRImage) {\n        svgEl.style.opacity = opacity + '';\n        return;\n    }\n    if (pathHasFill(style)) {\n        var fill = style.fill;\n        fill = fill === 'transparent' ? NONE : fill;\n        attr(svgEl, 'fill', fill);\n        attr(svgEl, 'fill-opacity', (style.fillOpacity != null ? style.fillOpacity * opacity : opacity) + '');\n    }\n    else {\n        attr(svgEl, 'fill', NONE);\n    }\n    if (pathHasStroke(style)) {\n        var stroke = style.stroke;\n        stroke = stroke === 'transparent' ? NONE : stroke;\n        attr(svgEl, 'stroke', stroke);\n        var strokeWidth = style.lineWidth;\n        var strokeScale_1 = style.strokeNoScale\n            ? el.getLineScale()\n            : 1;\n        attr(svgEl, 'stroke-width', (strokeScale_1 ? strokeWidth / strokeScale_1 : 0) + '');\n        attr(svgEl, 'paint-order', style.strokeFirst ? 'stroke' : 'fill');\n        attr(svgEl, 'stroke-opacity', (style.strokeOpacity != null ? style.strokeOpacity * opacity : opacity) + '');\n        var lineDash = style.lineDash && strokeWidth > 0 && normalizeLineDash(style.lineDash, strokeWidth);\n        if (lineDash) {\n            var lineDashOffset = style.lineDashOffset;\n            if (strokeScale_1 && strokeScale_1 !== 1) {\n                lineDash = map(lineDash, function (rawVal) {\n                    return rawVal / strokeScale_1;\n                });\n                if (lineDashOffset) {\n                    lineDashOffset /= strokeScale_1;\n                    lineDashOffset = mathRound(lineDashOffset);\n                }\n            }\n            attr(svgEl, 'stroke-dasharray', lineDash.join(','));\n            attr(svgEl, 'stroke-dashoffset', (lineDashOffset || 0) + '');\n        }\n        else {\n            attr(svgEl, 'stroke-dasharray', '');\n        }\n        style.lineCap && attr(svgEl, 'stroke-linecap', style.lineCap);\n        style.lineJoin && attr(svgEl, 'stroke-linejoin', style.lineJoin);\n        style.miterLimit && attr(svgEl, 'stroke-miterlimit', style.miterLimit + '');\n    }\n    else {\n        attr(svgEl, 'stroke', NONE);\n    }\n}\nvar SVGPathRebuilder = (function () {\n    function SVGPathRebuilder() {\n    }\n    SVGPathRebuilder.prototype.reset = function () {\n        this._d = [];\n        this._str = '';\n    };\n    SVGPathRebuilder.prototype.moveTo = function (x, y) {\n        this._add('M', x, y);\n    };\n    SVGPathRebuilder.prototype.lineTo = function (x, y) {\n        this._add('L', x, y);\n    };\n    SVGPathRebuilder.prototype.bezierCurveTo = function (x, y, x2, y2, x3, y3) {\n        this._add('C', x, y, x2, y2, x3, y3);\n    };\n    SVGPathRebuilder.prototype.quadraticCurveTo = function (x, y, x2, y2) {\n        this._add('Q', x, y, x2, y2);\n    };\n    SVGPathRebuilder.prototype.arc = function (cx, cy, r, startAngle, endAngle, anticlockwise) {\n        this.ellipse(cx, cy, r, r, 0, startAngle, endAngle, anticlockwise);\n    };\n    SVGPathRebuilder.prototype.ellipse = function (cx, cy, rx, ry, psi, startAngle, endAngle, anticlockwise) {\n        var firstCmd = this._d.length === 0;\n        var dTheta = endAngle - startAngle;\n        var clockwise = !anticlockwise;\n        var dThetaPositive = Math.abs(dTheta);\n        var isCircle = isAroundZero(dThetaPositive - PI2)\n            || (clockwise ? dTheta >= PI2 : -dTheta >= PI2);\n        var unifiedTheta = dTheta > 0 ? dTheta % PI2 : (dTheta % PI2 + PI2);\n        var large = false;\n        if (isCircle) {\n            large = true;\n        }\n        else if (isAroundZero(dThetaPositive)) {\n            large = false;\n        }\n        else {\n            large = (unifiedTheta >= PI) === !!clockwise;\n        }\n        var x0 = round4(cx + rx * mathCos(startAngle));\n        var y0 = round4(cy + ry * mathSin(startAngle));\n        if (isCircle) {\n            if (clockwise) {\n                dTheta = PI2 - 1e-4;\n            }\n            else {\n                dTheta = -PI2 + 1e-4;\n            }\n            large = true;\n            if (firstCmd) {\n                this._d.push('M', x0, y0);\n            }\n        }\n        var x = round4(cx + rx * mathCos(startAngle + dTheta));\n        var y = round4(cy + ry * mathSin(startAngle + dTheta));\n        if (isNaN(x0) || isNaN(y0) || isNaN(rx) || isNaN(ry) || isNaN(psi) || isNaN(degree) || isNaN(x) || isNaN(y)) {\n            return '';\n        }\n        this._d.push('A', round4(rx), round4(ry), mathRound(psi * degree), +large, +clockwise, x, y);\n    };\n    SVGPathRebuilder.prototype.rect = function (x, y, w, h) {\n        this._add('M', x, y);\n        this._add('L', x + w, y);\n        this._add('L', x + w, y + h);\n        this._add('L', x, y + h);\n        this._add('L', x, y);\n    };\n    SVGPathRebuilder.prototype.closePath = function () {\n        if (this._d.length > 0) {\n            this._add('Z');\n        }\n    };\n    SVGPathRebuilder.prototype._add = function (cmd, a, b, c, d, e, f, g, h) {\n        this._d.push(cmd);\n        for (var i = 1; i < arguments.length; i++) {\n            var val = arguments[i];\n            if (isNaN(val)) {\n                this._invalid = true;\n                return;\n            }\n            this._d.push(round4(val));\n        }\n    };\n    SVGPathRebuilder.prototype.generateStr = function () {\n        this._str = this._invalid ? '' : this._d.join(' ');\n        this._d = [];\n    };\n    SVGPathRebuilder.prototype.getStr = function () {\n        return this._str;\n    };\n    return SVGPathRebuilder;\n}());\nvar svgPath = {\n    brush: function (el) {\n        var style = el.style;\n        var svgEl = el.__svgEl;\n        if (!svgEl) {\n            svgEl = createElement('path');\n            el.__svgEl = svgEl;\n        }\n        if (!el.path) {\n            el.createPathProxy();\n        }\n        var path = el.path;\n        if (el.shapeChanged()) {\n            path.beginPath();\n            el.buildPath(path, el.shape);\n            el.pathUpdated();\n        }\n        var pathVersion = path.getVersion();\n        var elExt = el;\n        var svgPathBuilder = elExt.__svgPathBuilder;\n        if (elExt.__svgPathVersion !== pathVersion || !svgPathBuilder || el.style.strokePercent < 1) {\n            if (!svgPathBuilder) {\n                svgPathBuilder = elExt.__svgPathBuilder = new SVGPathRebuilder();\n            }\n            svgPathBuilder.reset();\n            path.rebuildPath(svgPathBuilder, el.style.strokePercent);\n            svgPathBuilder.generateStr();\n            elExt.__svgPathVersion = pathVersion;\n        }\n        attr(svgEl, 'd', svgPathBuilder.getStr());\n        bindStyle(svgEl, style, el);\n        setTransform(svgEl, el.transform);\n    }\n};\nexport { svgPath as path };\nvar svgImage = {\n    brush: function (el) {\n        var style = el.style;\n        var image = style.image;\n        if (image instanceof HTMLImageElement) {\n            image = image.src;\n        }\n        else if (image instanceof HTMLCanvasElement) {\n            image = image.toDataURL();\n        }\n        if (!image) {\n            return;\n        }\n        var x = style.x || 0;\n        var y = style.y || 0;\n        var dw = style.width;\n        var dh = style.height;\n        var svgEl = el.__svgEl;\n        if (!svgEl) {\n            svgEl = createElement('image');\n            el.__svgEl = svgEl;\n        }\n        if (image !== el.__imageSrc) {\n            attrXLink(svgEl, 'href', image);\n            el.__imageSrc = image;\n        }\n        attr(svgEl, 'width', dw + '');\n        attr(svgEl, 'height', dh + '');\n        attr(svgEl, 'x', x + '');\n        attr(svgEl, 'y', y + '');\n        bindStyle(svgEl, style, el);\n        setTransform(svgEl, el.transform);\n    }\n};\nexport { svgImage as image };\nvar TEXT_ALIGN_TO_ANCHOR = {\n    left: 'start',\n    right: 'end',\n    center: 'middle',\n    middle: 'middle'\n};\nfunction adjustTextY(y, lineHeight, textBaseline) {\n    if (textBaseline === 'top') {\n        y += lineHeight / 2;\n    }\n    else if (textBaseline === 'bottom') {\n        y -= lineHeight / 2;\n    }\n    return y;\n}\nvar svgText = {\n    brush: function (el) {\n        var style = el.style;\n        var text = style.text;\n        text != null && (text += '');\n        if (!text || isNaN(style.x) || isNaN(style.y)) {\n            return;\n        }\n        var textSvgEl = el.__svgEl;\n        if (!textSvgEl) {\n            textSvgEl = createElement('text');\n            attrXML(textSvgEl, 'xml:space', 'preserve');\n            el.__svgEl = textSvgEl;\n        }\n        var font = style.font || DEFAULT_FONT;\n        var textSvgElStyle = textSvgEl.style;\n        textSvgElStyle.font = font;\n        textSvgEl.textContent = text;\n        bindStyle(textSvgEl, style, el);\n        setTransform(textSvgEl, el.transform);\n        var x = style.x || 0;\n        var y = adjustTextY(style.y || 0, getLineHeight(font), style.textBaseline);\n        var textAlign = TEXT_ALIGN_TO_ANCHOR[style.textAlign]\n            || style.textAlign;\n        attr(textSvgEl, 'dominant-baseline', 'central');\n        attr(textSvgEl, 'text-anchor', textAlign);\n        attr(textSvgEl, 'x', x + '');\n        attr(textSvgEl, 'y', y + '');\n    }\n};\nexport { svgText as text };\n","import { createElement } from '../core';\nimport * as zrUtil from '../../core/util';\nimport Path from '../../graphic/Path';\nimport ZRImage from '../../graphic/Image';\nimport TSpan from '../../graphic/TSpan';\nimport { path as svgPath, image as svgImage, text as svgText } from '../graphic';\nvar MARK_UNUSED = '0';\nvar MARK_USED = '1';\nvar Definable = (function () {\n    function Definable(zrId, svgRoot, tagNames, markLabel, domName) {\n        this.nextId = 0;\n        this._domName = '_dom';\n        this.createElement = createElement;\n        this._zrId = zrId;\n        this._svgRoot = svgRoot;\n        this._tagNames = typeof tagNames === 'string' ? [tagNames] : tagNames;\n        this._markLabel = markLabel;\n        if (domName) {\n            this._domName = domName;\n        }\n    }\n    Definable.prototype.getDefs = function (isForceCreating) {\n        var svgRoot = this._svgRoot;\n        var defs = this._svgRoot.getElementsByTagName('defs');\n        if (defs.length === 0) {\n            if (isForceCreating) {\n                var defs_1 = svgRoot.insertBefore(this.createElement('defs'), svgRoot.firstChild);\n                if (!defs_1.contains) {\n                    defs_1.contains = function (el) {\n                        var children = defs_1.children;\n                        if (!children) {\n                            return false;\n                        }\n                        for (var i = children.length - 1; i >= 0; --i) {\n                            if (children[i] === el) {\n                                return true;\n                            }\n                        }\n                        return false;\n                    };\n                }\n                return defs_1;\n            }\n            else {\n                return null;\n            }\n        }\n        else {\n            return defs[0];\n        }\n    };\n    Definable.prototype.doUpdate = function (target, onUpdate) {\n        if (!target) {\n            return;\n        }\n        var defs = this.getDefs(false);\n        if (target[this._domName] && defs.contains(target[this._domName])) {\n            if (typeof onUpdate === 'function') {\n                onUpdate(target);\n            }\n        }\n        else {\n            var dom = this.add(target);\n            if (dom) {\n                target[this._domName] = dom;\n            }\n        }\n    };\n    Definable.prototype.add = function (target) {\n        return null;\n    };\n    Definable.prototype.addDom = function (dom) {\n        var defs = this.getDefs(true);\n        if (dom.parentNode !== defs) {\n            defs.appendChild(dom);\n        }\n    };\n    Definable.prototype.removeDom = function (target) {\n        var defs = this.getDefs(false);\n        if (defs && target[this._domName]) {\n            defs.removeChild(target[this._domName]);\n            target[this._domName] = null;\n        }\n    };\n    Definable.prototype.getDoms = function () {\n        var defs = this.getDefs(false);\n        if (!defs) {\n            return [];\n        }\n        var doms = [];\n        zrUtil.each(this._tagNames, function (tagName) {\n            var tags = defs.getElementsByTagName(tagName);\n            for (var i = 0; i < tags.length; i++) {\n                doms.push(tags[i]);\n            }\n        });\n        return doms;\n    };\n    Definable.prototype.markAllUnused = function () {\n        var doms = this.getDoms();\n        var that = this;\n        zrUtil.each(doms, function (dom) {\n            dom[that._markLabel] = MARK_UNUSED;\n        });\n    };\n    Definable.prototype.markDomUsed = function (dom) {\n        dom && (dom[this._markLabel] = MARK_USED);\n    };\n    ;\n    Definable.prototype.markDomUnused = function (dom) {\n        dom && (dom[this._markLabel] = MARK_UNUSED);\n    };\n    ;\n    Definable.prototype.isDomUnused = function (dom) {\n        return dom && dom[this._markLabel] !== MARK_USED;\n    };\n    Definable.prototype.removeUnused = function () {\n        var _this = this;\n        var defs = this.getDefs(false);\n        if (!defs) {\n            return;\n        }\n        var doms = this.getDoms();\n        zrUtil.each(doms, function (dom) {\n            if (_this.isDomUnused(dom)) {\n                defs.removeChild(dom);\n            }\n        });\n    };\n    Definable.prototype.getSvgProxy = function (displayable) {\n        if (displayable instanceof Path) {\n            return svgPath;\n        }\n        else if (displayable instanceof ZRImage) {\n            return svgImage;\n        }\n        else if (displayable instanceof TSpan) {\n            return svgText;\n        }\n        else {\n            return svgPath;\n        }\n    };\n    Definable.prototype.getSvgElement = function (displayable) {\n        return displayable.__svgEl;\n    };\n    return Definable;\n}());\nexport default Definable;\n","import { __extends } from \"tslib\";\nimport Definable from './Definable';\nimport * as zrUtil from '../../core/util';\nimport * as colorTool from '../../tool/color';\nfunction isLinearGradient(value) {\n    return value.type === 'linear';\n}\nfunction isRadialGradient(value) {\n    return value.type === 'radial';\n}\nfunction isGradient(value) {\n    return value && (value.type === 'linear'\n        || value.type === 'radial');\n}\nvar GradientManager = (function (_super) {\n    __extends(GradientManager, _super);\n    function GradientManager(zrId, svgRoot) {\n        return _super.call(this, zrId, svgRoot, ['linearGradient', 'radialGradient'], '__gradient_in_use__') || this;\n    }\n    GradientManager.prototype.addWithoutUpdate = function (svgElement, displayable) {\n        if (displayable && displayable.style) {\n            var that_1 = this;\n            zrUtil.each(['fill', 'stroke'], function (fillOrStroke) {\n                var value = displayable.style[fillOrStroke];\n                if (isGradient(value)) {\n                    var gradient = value;\n                    var defs = that_1.getDefs(true);\n                    var dom = void 0;\n                    if (gradient.__dom) {\n                        dom = gradient.__dom;\n                        if (!defs.contains(gradient.__dom)) {\n                            that_1.addDom(dom);\n                        }\n                    }\n                    else {\n                        dom = that_1.add(gradient);\n                    }\n                    that_1.markUsed(displayable);\n                    var id = dom.getAttribute('id');\n                    svgElement.setAttribute(fillOrStroke, 'url(#' + id + ')');\n                }\n            });\n        }\n    };\n    GradientManager.prototype.add = function (gradient) {\n        var dom;\n        if (isLinearGradient(gradient)) {\n            dom = this.createElement('linearGradient');\n        }\n        else if (isRadialGradient(gradient)) {\n            dom = this.createElement('radialGradient');\n        }\n        else {\n            zrUtil.logError('Illegal gradient type.');\n            return null;\n        }\n        gradient.id = gradient.id || this.nextId++;\n        dom.setAttribute('id', 'zr' + this._zrId\n            + '-gradient-' + gradient.id);\n        this.updateDom(gradient, dom);\n        this.addDom(dom);\n        return dom;\n    };\n    GradientManager.prototype.update = function (gradient) {\n        if (!isGradient(gradient)) {\n            return;\n        }\n        var that = this;\n        this.doUpdate(gradient, function () {\n            var dom = gradient.__dom;\n            if (!dom) {\n                return;\n            }\n            var tagName = dom.tagName;\n            var type = gradient.type;\n            if (type === 'linear' && tagName === 'linearGradient'\n                || type === 'radial' && tagName === 'radialGradient') {\n                that.updateDom(gradient, gradient.__dom);\n            }\n            else {\n                that.removeDom(gradient);\n                that.add(gradient);\n            }\n        });\n    };\n    GradientManager.prototype.updateDom = function (gradient, dom) {\n        if (isLinearGradient(gradient)) {\n            dom.setAttribute('x1', gradient.x + '');\n            dom.setAttribute('y1', gradient.y + '');\n            dom.setAttribute('x2', gradient.x2 + '');\n            dom.setAttribute('y2', gradient.y2 + '');\n        }\n        else if (isRadialGradient(gradient)) {\n            dom.setAttribute('cx', gradient.x + '');\n            dom.setAttribute('cy', gradient.y + '');\n            dom.setAttribute('r', gradient.r + '');\n        }\n        else {\n            zrUtil.logError('Illegal gradient type.');\n            return;\n        }\n        if (gradient.global) {\n            dom.setAttribute('gradientUnits', 'userSpaceOnUse');\n        }\n        else {\n            dom.setAttribute('gradientUnits', 'objectBoundingBox');\n        }\n        dom.innerHTML = '';\n        var colors = gradient.colorStops;\n        for (var i = 0, len = colors.length; i < len; ++i) {\n            var stop_1 = this.createElement('stop');\n            stop_1.setAttribute('offset', colors[i].offset * 100 + '%');\n            var color = colors[i].color;\n            if (color.indexOf('rgba') > -1) {\n                var opacity = colorTool.parse(color)[3];\n                var hex = colorTool.toHex(color);\n                stop_1.setAttribute('stop-color', '#' + hex);\n                stop_1.setAttribute('stop-opacity', opacity + '');\n            }\n            else {\n                stop_1.setAttribute('stop-color', colors[i].color);\n            }\n            dom.appendChild(stop_1);\n        }\n        gradient.__dom = dom;\n    };\n    GradientManager.prototype.markUsed = function (displayable) {\n        if (displayable.style) {\n            var gradient = displayable.style.fill;\n            if (gradient && gradient.__dom) {\n                _super.prototype.markDomUsed.call(this, gradient.__dom);\n            }\n            gradient = displayable.style.stroke;\n            if (gradient && gradient.__dom) {\n                _super.prototype.markDomUsed.call(this, gradient.__dom);\n            }\n        }\n    };\n    return GradientManager;\n}(Definable));\nexport default GradientManager;\n","import { __extends } from \"tslib\";\nimport Definable from './Definable';\nimport * as zrUtil from '../../core/util';\nimport LRU from '../../core/LRU';\nimport { createOrUpdateImage } from '../../graphic/helper/image';\nimport WeakMap from '../../core/WeakMap';\nfunction isPattern(value) {\n    return value && (!!value.image || !!value.svgElement);\n}\nvar patternDomMap = new WeakMap();\nvar PatternManager = (function (_super) {\n    __extends(PatternManager, _super);\n    function PatternManager(zrId, svgRoot) {\n        return _super.call(this, zrId, svgRoot, ['pattern'], '__pattern_in_use__') || this;\n    }\n    PatternManager.prototype.addWithoutUpdate = function (svgElement, displayable) {\n        if (displayable && displayable.style) {\n            var that_1 = this;\n            zrUtil.each(['fill', 'stroke'], function (fillOrStroke) {\n                var pattern = displayable.style[fillOrStroke];\n                if (isPattern(pattern)) {\n                    var defs = that_1.getDefs(true);\n                    var dom = patternDomMap.get(pattern);\n                    if (dom) {\n                        if (!defs.contains(dom)) {\n                            that_1.addDom(dom);\n                        }\n                    }\n                    else {\n                        dom = that_1.add(pattern);\n                    }\n                    that_1.markUsed(displayable);\n                    var id = dom.getAttribute('id');\n                    svgElement.setAttribute(fillOrStroke, 'url(#' + id + ')');\n                }\n            });\n        }\n    };\n    PatternManager.prototype.add = function (pattern) {\n        if (!isPattern(pattern)) {\n            return;\n        }\n        var dom = this.createElement('pattern');\n        pattern.id = pattern.id == null ? this.nextId++ : pattern.id;\n        dom.setAttribute('id', 'zr' + this._zrId\n            + '-pattern-' + pattern.id);\n        dom.setAttribute('x', '0');\n        dom.setAttribute('y', '0');\n        dom.setAttribute('patternUnits', 'userSpaceOnUse');\n        this.updateDom(pattern, dom);\n        this.addDom(dom);\n        return dom;\n    };\n    PatternManager.prototype.update = function (pattern) {\n        if (!isPattern(pattern)) {\n            return;\n        }\n        var that = this;\n        this.doUpdate(pattern, function () {\n            var dom = patternDomMap.get(pattern);\n            that.updateDom(pattern, dom);\n        });\n    };\n    PatternManager.prototype.updateDom = function (pattern, patternDom) {\n        var svgElement = pattern.svgElement;\n        if (svgElement instanceof SVGElement) {\n            if (svgElement.parentNode !== patternDom) {\n                patternDom.innerHTML = '';\n                patternDom.appendChild(svgElement);\n                patternDom.setAttribute('width', pattern.svgWidth + '');\n                patternDom.setAttribute('height', pattern.svgHeight + '');\n            }\n        }\n        else {\n            var img = void 0;\n            var prevImage = patternDom.getElementsByTagName('image');\n            if (prevImage.length) {\n                if (pattern.image) {\n                    img = prevImage[0];\n                }\n                else {\n                    patternDom.removeChild(prevImage[0]);\n                    return;\n                }\n            }\n            else if (pattern.image) {\n                img = this.createElement('image');\n            }\n            if (img) {\n                var imageSrc = void 0;\n                if (typeof pattern.image === 'string') {\n                    imageSrc = pattern.image;\n                }\n                else if (pattern.image instanceof HTMLImageElement) {\n                    imageSrc = pattern.image.src;\n                }\n                else if (pattern.image instanceof HTMLCanvasElement) {\n                    imageSrc = pattern.image.toDataURL();\n                }\n                if (imageSrc) {\n                    img.setAttribute('href', imageSrc);\n                    img.setAttribute('x', '0');\n                    img.setAttribute('y', '0');\n                    var hostEl = {\n                        dirty: function () { }\n                    };\n                    var createdImage = createOrUpdateImage(imageSrc, img, hostEl, function (img) {\n                        patternDom.setAttribute('width', img.width + '');\n                        patternDom.setAttribute('height', img.height + '');\n                    });\n                    if (createdImage && createdImage.width && createdImage.height) {\n                        patternDom.setAttribute('width', createdImage.width + '');\n                        patternDom.setAttribute('height', createdImage.height + '');\n                    }\n                    patternDom.appendChild(img);\n                }\n            }\n        }\n        var x = pattern.x || 0;\n        var y = pattern.y || 0;\n        var rotation = (pattern.rotation || 0) / Math.PI * 180;\n        var scaleX = pattern.scaleX || 1;\n        var scaleY = pattern.scaleY || 1;\n        var transform = \"translate(\" + x + \", \" + y + \") rotate(\" + rotation + \") scale(\" + scaleX + \", \" + scaleY + \")\";\n        patternDom.setAttribute('patternTransform', transform);\n        patternDomMap.set(pattern, patternDom);\n    };\n    PatternManager.prototype.markUsed = function (displayable) {\n        if (displayable.style) {\n            if (isPattern(displayable.style.fill)) {\n                _super.prototype.markDomUsed.call(this, patternDomMap.get(displayable.style.fill));\n            }\n            if (isPattern(displayable.style.stroke)) {\n                _super.prototype.markDomUsed.call(this, patternDomMap.get(displayable.style.stroke));\n            }\n        }\n    };\n    return PatternManager;\n}(Definable));\nexport default PatternManager;\nvar patternSizeCache = new LRU(50);\n","import { __extends } from \"tslib\";\nimport Definable from './Definable';\nimport * as zrUtil from '../../core/util';\nimport { isClipPathChanged } from '../../canvas/helper';\nfunction generateClipPathsKey(clipPaths) {\n    var key = [];\n    if (clipPaths) {\n        for (var i = 0; i < clipPaths.length; i++) {\n            var clipPath = clipPaths[i];\n            key.push(clipPath.id);\n        }\n    }\n    return key.join(',');\n}\nexport function hasClipPath(displayable) {\n    var clipPaths = displayable.__clipPaths;\n    return clipPaths && clipPaths.length > 0;\n}\nvar ClippathManager = (function (_super) {\n    __extends(ClippathManager, _super);\n    function ClippathManager(zrId, svgRoot) {\n        var _this = _super.call(this, zrId, svgRoot, 'clipPath', '__clippath_in_use__') || this;\n        _this._refGroups = {};\n        _this._keyDuplicateCount = {};\n        return _this;\n    }\n    ClippathManager.prototype.markAllUnused = function () {\n        _super.prototype.markAllUnused.call(this);\n        for (var key in this._refGroups) {\n            this.markDomUnused(this._refGroups[key]);\n        }\n        this._keyDuplicateCount = {};\n    };\n    ClippathManager.prototype._getClipPathGroup = function (displayable, prevDisplayable) {\n        if (!hasClipPath(displayable)) {\n            return;\n        }\n        var clipPaths = displayable.__clipPaths;\n        var keyDuplicateCount = this._keyDuplicateCount;\n        var clipPathKey = generateClipPathsKey(clipPaths);\n        if (isClipPathChanged(clipPaths, prevDisplayable && prevDisplayable.__clipPaths)) {\n            keyDuplicateCount[clipPathKey] = keyDuplicateCount[clipPathKey] || 0;\n            keyDuplicateCount[clipPathKey] && (clipPathKey += '-' + keyDuplicateCount[clipPathKey]);\n            keyDuplicateCount[clipPathKey]++;\n        }\n        return this._refGroups[clipPathKey]\n            || (this._refGroups[clipPathKey] = this.createElement('g'));\n    };\n    ClippathManager.prototype.update = function (displayable, prevDisplayable) {\n        var clipGroup = this._getClipPathGroup(displayable, prevDisplayable);\n        if (clipGroup) {\n            this.markDomUsed(clipGroup);\n            this.updateDom(clipGroup, displayable.__clipPaths);\n        }\n        return clipGroup;\n    };\n    ;\n    ClippathManager.prototype.updateDom = function (parentEl, clipPaths) {\n        if (clipPaths && clipPaths.length > 0) {\n            var defs = this.getDefs(true);\n            var clipPath = clipPaths[0];\n            var clipPathEl = void 0;\n            var id = void 0;\n            if (clipPath._dom) {\n                id = clipPath._dom.getAttribute('id');\n                clipPathEl = clipPath._dom;\n                if (!defs.contains(clipPathEl)) {\n                    defs.appendChild(clipPathEl);\n                }\n            }\n            else {\n                id = 'zr' + this._zrId + '-clip-' + this.nextId;\n                ++this.nextId;\n                clipPathEl = this.createElement('clipPath');\n                clipPathEl.setAttribute('id', id);\n                defs.appendChild(clipPathEl);\n                clipPath._dom = clipPathEl;\n            }\n            var svgProxy = this.getSvgProxy(clipPath);\n            svgProxy.brush(clipPath);\n            var pathEl = this.getSvgElement(clipPath);\n            clipPathEl.innerHTML = '';\n            clipPathEl.appendChild(pathEl);\n            parentEl.setAttribute('clip-path', 'url(#' + id + ')');\n            if (clipPaths.length > 1) {\n                this.updateDom(clipPathEl, clipPaths.slice(1));\n            }\n        }\n        else {\n            if (parentEl) {\n                parentEl.setAttribute('clip-path', 'none');\n            }\n        }\n    };\n    ;\n    ClippathManager.prototype.markUsed = function (displayable) {\n        var _this = this;\n        if (displayable.__clipPaths) {\n            zrUtil.each(displayable.__clipPaths, function (clipPath) {\n                if (clipPath._dom) {\n                    _super.prototype.markDomUsed.call(_this, clipPath._dom);\n                }\n            });\n        }\n    };\n    ;\n    ClippathManager.prototype.removeUnused = function () {\n        _super.prototype.removeUnused.call(this);\n        var newRefGroupsMap = {};\n        for (var key in this._refGroups) {\n            var group = this._refGroups[key];\n            if (!this.isDomUnused(group)) {\n                newRefGroupsMap[key] = group;\n            }\n            else if (group.parentNode) {\n                group.parentNode.removeChild(group);\n            }\n        }\n        this._refGroups = newRefGroupsMap;\n    };\n    return ClippathManager;\n}(Definable));\nexport default ClippathManager;\n","import { __extends } from \"tslib\";\nimport Definable from './Definable';\nvar ShadowManager = (function (_super) {\n    __extends(ShadowManager, _super);\n    function ShadowManager(zrId, svgRoot) {\n        var _this = _super.call(this, zrId, svgRoot, ['filter'], '__filter_in_use__', '_shadowDom') || this;\n        _this._shadowDomMap = {};\n        _this._shadowDomPool = [];\n        return _this;\n    }\n    ShadowManager.prototype._getFromPool = function () {\n        var shadowDom = this._shadowDomPool.pop();\n        if (!shadowDom) {\n            shadowDom = this.createElement('filter');\n            shadowDom.setAttribute('id', 'zr' + this._zrId + '-shadow-' + this.nextId++);\n            var domChild = this.createElement('feDropShadow');\n            shadowDom.appendChild(domChild);\n            this.addDom(shadowDom);\n        }\n        return shadowDom;\n    };\n    ShadowManager.prototype.update = function (svgElement, displayable) {\n        var style = displayable.style;\n        if (hasShadow(style)) {\n            var shadowKey = getShadowKey(displayable);\n            var shadowDom = displayable._shadowDom = this._shadowDomMap[shadowKey];\n            if (!shadowDom) {\n                shadowDom = this._getFromPool();\n                this._shadowDomMap[shadowKey] = shadowDom;\n            }\n            this.updateDom(svgElement, displayable, shadowDom);\n        }\n        else {\n            this.remove(svgElement, displayable);\n        }\n    };\n    ShadowManager.prototype.remove = function (svgElement, displayable) {\n        if (displayable._shadowDom != null) {\n            displayable._shadowDom = null;\n            svgElement.style.filter = '';\n        }\n    };\n    ShadowManager.prototype.updateDom = function (svgElement, displayable, shadowDom) {\n        var domChild = shadowDom.children[0];\n        var style = displayable.style;\n        var globalScale = displayable.getGlobalScale();\n        var scaleX = globalScale[0];\n        var scaleY = globalScale[1];\n        if (!scaleX || !scaleY) {\n            return;\n        }\n        var offsetX = style.shadowOffsetX || 0;\n        var offsetY = style.shadowOffsetY || 0;\n        var blur = style.shadowBlur;\n        var color = style.shadowColor;\n        domChild.setAttribute('dx', offsetX / scaleX + '');\n        domChild.setAttribute('dy', offsetY / scaleY + '');\n        domChild.setAttribute('flood-color', color);\n        var stdDx = blur / 2 / scaleX;\n        var stdDy = blur / 2 / scaleY;\n        var stdDeviation = stdDx + ' ' + stdDy;\n        domChild.setAttribute('stdDeviation', stdDeviation);\n        shadowDom.setAttribute('x', '-100%');\n        shadowDom.setAttribute('y', '-100%');\n        shadowDom.setAttribute('width', '300%');\n        shadowDom.setAttribute('height', '300%');\n        displayable._shadowDom = shadowDom;\n        var id = shadowDom.getAttribute('id');\n        svgElement.style.filter = 'url(#' + id + ')';\n    };\n    ShadowManager.prototype.removeUnused = function () {\n        var defs = this.getDefs(false);\n        if (!defs) {\n            return;\n        }\n        var shadowDomsPool = this._shadowDomPool;\n        var currentUsedShadow = 0;\n        for (var key in this._shadowDomMap) {\n            var dom = this._shadowDomMap[key];\n            shadowDomsPool.push(dom);\n            currentUsedShadow++;\n        }\n        this._shadowDomMap = {};\n    };\n    return ShadowManager;\n}(Definable));\nexport default ShadowManager;\nfunction hasShadow(style) {\n    return style\n        && (style.shadowBlur || style.shadowOffsetX || style.shadowOffsetY);\n}\nfunction getShadowKey(displayable) {\n    var style = displayable.style;\n    var globalScale = displayable.getGlobalScale();\n    return [\n        style.shadowColor,\n        (style.shadowBlur || 0).toFixed(2),\n        (style.shadowOffsetX || 0).toFixed(2),\n        (style.shadowOffsetY || 0).toFixed(2),\n        globalScale[0],\n        globalScale[1]\n    ].join(',');\n}\n","import { createElement } from './core';\nimport * as util from '../core/util';\nimport Path from '../graphic/Path';\nimport ZRImage from '../graphic/Image';\nimport TSpan from '../graphic/TSpan';\nimport arrayDiff from '../core/arrayDiff';\nimport GradientManager from './helper/GradientManager';\nimport PatternManager from './helper/PatternManager';\nimport ClippathManager, { hasClipPath } from './helper/ClippathManager';\nimport ShadowManager from './helper/ShadowManager';\nimport { path as svgPath, image as svgImage, text as svgText } from './graphic';\nfunction parseInt10(val) {\n    return parseInt(val, 10);\n}\nfunction getSvgProxy(el) {\n    if (el instanceof Path) {\n        return svgPath;\n    }\n    else if (el instanceof ZRImage) {\n        return svgImage;\n    }\n    else if (el instanceof TSpan) {\n        return svgText;\n    }\n    else {\n        return svgPath;\n    }\n}\nfunction checkParentAvailable(parent, child) {\n    return child && parent && child.parentNode !== parent;\n}\nfunction insertAfter(parent, child, prevSibling) {\n    if (checkParentAvailable(parent, child) && prevSibling) {\n        var nextSibling = prevSibling.nextSibling;\n        nextSibling ? parent.insertBefore(child, nextSibling)\n            : parent.appendChild(child);\n    }\n}\nfunction prepend(parent, child) {\n    if (checkParentAvailable(parent, child)) {\n        var firstChild = parent.firstChild;\n        firstChild ? parent.insertBefore(child, firstChild)\n            : parent.appendChild(child);\n    }\n}\nfunction remove(parent, child) {\n    if (child && parent && child.parentNode === parent) {\n        parent.removeChild(child);\n    }\n}\nfunction removeFromMyParent(child) {\n    if (child && child.parentNode) {\n        child.parentNode.removeChild(child);\n    }\n}\nfunction getSvgElement(displayable) {\n    return displayable.__svgEl;\n}\nvar SVGPainter = (function () {\n    function SVGPainter(root, storage, opts, zrId) {\n        this.type = 'svg';\n        this.refreshHover = createMethodNotSupport('refreshHover');\n        this.pathToImage = createMethodNotSupport('pathToImage');\n        this.configLayer = createMethodNotSupport('configLayer');\n        this.root = root;\n        this.storage = storage;\n        this._opts = opts = util.extend({}, opts || {});\n        var svgDom = createElement('svg');\n        svgDom.setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns', 'http://www.w3.org/2000/svg');\n        svgDom.setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:xlink', 'http://www.w3.org/1999/xlink');\n        svgDom.setAttribute('version', '1.1');\n        svgDom.setAttribute('baseProfile', 'full');\n        svgDom.style.cssText = 'user-select:none;position:absolute;left:0;top:0;';\n        var bgRoot = createElement('g');\n        svgDom.appendChild(bgRoot);\n        var svgRoot = createElement('g');\n        svgDom.appendChild(svgRoot);\n        this._gradientManager = new GradientManager(zrId, svgRoot);\n        this._patternManager = new PatternManager(zrId, svgRoot);\n        this._clipPathManager = new ClippathManager(zrId, svgRoot);\n        this._shadowManager = new ShadowManager(zrId, svgRoot);\n        var viewport = document.createElement('div');\n        viewport.style.cssText = 'overflow:hidden;position:relative';\n        this._svgDom = svgDom;\n        this._svgRoot = svgRoot;\n        this._backgroundRoot = bgRoot;\n        this._viewport = viewport;\n        root.appendChild(viewport);\n        viewport.appendChild(svgDom);\n        this.resize(opts.width, opts.height);\n        this._visibleList = [];\n    }\n    SVGPainter.prototype.getType = function () {\n        return 'svg';\n    };\n    SVGPainter.prototype.getViewportRoot = function () {\n        return this._viewport;\n    };\n    SVGPainter.prototype.getSvgDom = function () {\n        return this._svgDom;\n    };\n    SVGPainter.prototype.getSvgRoot = function () {\n        return this._svgRoot;\n    };\n    SVGPainter.prototype.getViewportRootOffset = function () {\n        var viewportRoot = this.getViewportRoot();\n        if (viewportRoot) {\n            return {\n                offsetLeft: viewportRoot.offsetLeft || 0,\n                offsetTop: viewportRoot.offsetTop || 0\n            };\n        }\n    };\n    SVGPainter.prototype.refresh = function () {\n        var list = this.storage.getDisplayList(true);\n        this._paintList(list);\n    };\n    SVGPainter.prototype.setBackgroundColor = function (backgroundColor) {\n        if (this._backgroundRoot && this._backgroundNode) {\n            this._backgroundRoot.removeChild(this._backgroundNode);\n        }\n        var bgNode = createElement('rect');\n        bgNode.setAttribute('width', this.getWidth());\n        bgNode.setAttribute('height', this.getHeight());\n        bgNode.setAttribute('x', 0);\n        bgNode.setAttribute('y', 0);\n        bgNode.setAttribute('id', 0);\n        bgNode.style.fill = backgroundColor;\n        this._backgroundRoot.appendChild(bgNode);\n        this._backgroundNode = bgNode;\n    };\n    SVGPainter.prototype.createSVGElement = function (tag) {\n        return createElement(tag);\n    };\n    SVGPainter.prototype.paintOne = function (el) {\n        var svgProxy = getSvgProxy(el);\n        svgProxy && svgProxy.brush(el);\n        return getSvgElement(el);\n    };\n    SVGPainter.prototype._paintList = function (list) {\n        var gradientManager = this._gradientManager;\n        var patternManager = this._patternManager;\n        var clipPathManager = this._clipPathManager;\n        var shadowManager = this._shadowManager;\n        gradientManager.markAllUnused();\n        patternManager.markAllUnused();\n        clipPathManager.markAllUnused();\n        shadowManager.markAllUnused();\n        var svgRoot = this._svgRoot;\n        var visibleList = this._visibleList;\n        var listLen = list.length;\n        var newVisibleList = [];\n        for (var i = 0; i < listLen; i++) {\n            var displayable = list[i];\n            var svgProxy = getSvgProxy(displayable);\n            var svgElement = getSvgElement(displayable);\n            if (!displayable.invisible) {\n                if (displayable.__dirty || !svgElement) {\n                    svgProxy && svgProxy.brush(displayable);\n                    svgElement = getSvgElement(displayable);\n                    if (svgElement && displayable.style) {\n                        gradientManager.update(displayable.style.fill);\n                        gradientManager.update(displayable.style.stroke);\n                        patternManager.update(displayable.style.fill);\n                        patternManager.update(displayable.style.stroke);\n                        shadowManager.update(svgElement, displayable);\n                    }\n                    displayable.__dirty = 0;\n                }\n                if (svgElement) {\n                    newVisibleList.push(displayable);\n                }\n            }\n        }\n        var diff = arrayDiff(visibleList, newVisibleList);\n        var prevSvgElement;\n        var topPrevSvgElement;\n        for (var i = 0; i < diff.length; i++) {\n            var item = diff[i];\n            if (item.removed) {\n                for (var k = 0; k < item.count; k++) {\n                    var displayable = visibleList[item.indices[k]];\n                    var svgElement = getSvgElement(displayable);\n                    hasClipPath(displayable) ? removeFromMyParent(svgElement)\n                        : remove(svgRoot, svgElement);\n                }\n            }\n        }\n        var prevDisplayable;\n        var currentClipGroup;\n        for (var i = 0; i < diff.length; i++) {\n            var item = diff[i];\n            var isAdd = item.added;\n            if (item.removed) {\n                continue;\n            }\n            for (var k = 0; k < item.count; k++) {\n                var displayable = newVisibleList[item.indices[k]];\n                var clipGroup = clipPathManager.update(displayable, prevDisplayable);\n                if (clipGroup !== currentClipGroup) {\n                    prevSvgElement = topPrevSvgElement;\n                    if (clipGroup) {\n                        prevSvgElement ? insertAfter(svgRoot, clipGroup, prevSvgElement)\n                            : prepend(svgRoot, clipGroup);\n                        topPrevSvgElement = clipGroup;\n                        prevSvgElement = null;\n                    }\n                    currentClipGroup = clipGroup;\n                }\n                var svgElement = getSvgElement(displayable);\n                prevSvgElement\n                    ? insertAfter(currentClipGroup || svgRoot, svgElement, prevSvgElement)\n                    : prepend(currentClipGroup || svgRoot, svgElement);\n                prevSvgElement = svgElement || prevSvgElement;\n                if (!currentClipGroup) {\n                    topPrevSvgElement = prevSvgElement;\n                }\n                gradientManager.markUsed(displayable);\n                gradientManager.addWithoutUpdate(svgElement, displayable);\n                patternManager.markUsed(displayable);\n                patternManager.addWithoutUpdate(svgElement, displayable);\n                clipPathManager.markUsed(displayable);\n                prevDisplayable = displayable;\n            }\n        }\n        gradientManager.removeUnused();\n        patternManager.removeUnused();\n        clipPathManager.removeUnused();\n        shadowManager.removeUnused();\n        this._visibleList = newVisibleList;\n    };\n    SVGPainter.prototype._getDefs = function (isForceCreating) {\n        var svgRoot = this._svgDom;\n        var defs = svgRoot.getElementsByTagName('defs');\n        if (defs.length === 0) {\n            if (isForceCreating) {\n                var defs_1 = svgRoot.insertBefore(createElement('defs'), svgRoot.firstChild);\n                if (!defs_1.contains) {\n                    defs_1.contains = function (el) {\n                        var children = defs_1.children;\n                        if (!children) {\n                            return false;\n                        }\n                        for (var i = children.length - 1; i >= 0; --i) {\n                            if (children[i] === el) {\n                                return true;\n                            }\n                        }\n                        return false;\n                    };\n                }\n                return defs_1;\n            }\n            else {\n                return null;\n            }\n        }\n        else {\n            return defs[0];\n        }\n    };\n    SVGPainter.prototype.resize = function (width, height) {\n        var viewport = this._viewport;\n        viewport.style.display = 'none';\n        var opts = this._opts;\n        width != null && (opts.width = width);\n        height != null && (opts.height = height);\n        width = this._getSize(0);\n        height = this._getSize(1);\n        viewport.style.display = '';\n        if (this._width !== width || this._height !== height) {\n            this._width = width;\n            this._height = height;\n            var viewportStyle = viewport.style;\n            viewportStyle.width = width + 'px';\n            viewportStyle.height = height + 'px';\n            var svgRoot = this._svgDom;\n            svgRoot.setAttribute('width', width + '');\n            svgRoot.setAttribute('height', height + '');\n        }\n        if (this._backgroundNode) {\n            this._backgroundNode.setAttribute('width', width);\n            this._backgroundNode.setAttribute('height', height);\n        }\n    };\n    SVGPainter.prototype.getWidth = function () {\n        return this._width;\n    };\n    SVGPainter.prototype.getHeight = function () {\n        return this._height;\n    };\n    SVGPainter.prototype._getSize = function (whIdx) {\n        var opts = this._opts;\n        var wh = ['width', 'height'][whIdx];\n        var cwh = ['clientWidth', 'clientHeight'][whIdx];\n        var plt = ['paddingLeft', 'paddingTop'][whIdx];\n        var prb = ['paddingRight', 'paddingBottom'][whIdx];\n        if (opts[wh] != null && opts[wh] !== 'auto') {\n            return parseFloat(opts[wh]);\n        }\n        var root = this.root;\n        var stl = document.defaultView.getComputedStyle(root);\n        return ((root[cwh] || parseInt10(stl[wh]) || parseInt10(root.style[wh]))\n            - (parseInt10(stl[plt]) || 0)\n            - (parseInt10(stl[prb]) || 0)) | 0;\n    };\n    SVGPainter.prototype.dispose = function () {\n        this.root.innerHTML = '';\n        this._svgRoot\n            = this._backgroundRoot\n                = this._svgDom\n                    = this._backgroundNode\n                        = this._viewport\n                            = this.storage\n                                = null;\n    };\n    SVGPainter.prototype.clear = function () {\n        var viewportNode = this._viewport;\n        if (viewportNode && viewportNode.parentNode) {\n            viewportNode.parentNode.removeChild(viewportNode);\n        }\n    };\n    SVGPainter.prototype.toDataURL = function () {\n        this.refresh();\n        var svgDom = this._svgDom;\n        var outerHTML = svgDom.outerHTML\n            || (svgDom.parentNode && svgDom.parentNode).innerHTML;\n        var html = encodeURIComponent(outerHTML.replace(/></g, '>\\n\\r<'));\n        return 'data:image/svg+xml;charset=UTF-8,' + html;\n    };\n    return SVGPainter;\n}());\nfunction createMethodNotSupport(method) {\n    return function () {\n        util.logError('In SVG mode painter not support method \"' + method + '\"');\n    };\n}\nexport default SVGPainter;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SVGPainter from 'zrender/lib/svg/Painter';\nexport function install(registers) {\n  registers.registerPainter('svg', SVGPainter);\n}","import { __extends } from \"tslib\";\nimport * as util from '../core/util';\nimport { devicePixelRatio } from '../config';\nimport Eventful from '../core/Eventful';\nimport Element from '../Element';\nimport { getCanvasGradient } from './helper';\nimport { createCanvasPattern } from './graphic';\nimport BoundingRect from '../core/BoundingRect';\nfunction returnFalse() {\n    return false;\n}\nfunction createDom(id, painter, dpr) {\n    var newDom = util.createCanvas();\n    var width = painter.getWidth();\n    var height = painter.getHeight();\n    var newDomStyle = newDom.style;\n    if (newDomStyle) {\n        newDomStyle.position = 'absolute';\n        newDomStyle.left = '0';\n        newDomStyle.top = '0';\n        newDomStyle.width = width + 'px';\n        newDomStyle.height = height + 'px';\n        newDom.setAttribute('data-zr-dom-id', id);\n    }\n    newDom.width = width * dpr;\n    newDom.height = height * dpr;\n    return newDom;\n}\n;\nvar Layer = (function (_super) {\n    __extends(Layer, _super);\n    function Layer(id, painter, dpr) {\n        var _this = _super.call(this) || this;\n        _this.motionBlur = false;\n        _this.lastFrameAlpha = 0.7;\n        _this.dpr = 1;\n        _this.virtual = false;\n        _this.config = {};\n        _this.incremental = false;\n        _this.zlevel = 0;\n        _this.maxRepaintRectCount = 5;\n        _this.__dirty = true;\n        _this.__firstTimePaint = true;\n        _this.__used = false;\n        _this.__drawIndex = 0;\n        _this.__startIndex = 0;\n        _this.__endIndex = 0;\n        _this.__prevStartIndex = null;\n        _this.__prevEndIndex = null;\n        var dom;\n        dpr = dpr || devicePixelRatio;\n        if (typeof id === 'string') {\n            dom = createDom(id, painter, dpr);\n        }\n        else if (util.isObject(id)) {\n            dom = id;\n            id = dom.id;\n        }\n        _this.id = id;\n        _this.dom = dom;\n        var domStyle = dom.style;\n        if (domStyle) {\n            dom.onselectstart = returnFalse;\n            domStyle.webkitUserSelect = 'none';\n            domStyle.userSelect = 'none';\n            domStyle.webkitTapHighlightColor = 'rgba(0,0,0,0)';\n            domStyle['-webkit-touch-callout'] = 'none';\n            domStyle.padding = '0';\n            domStyle.margin = '0';\n            domStyle.borderWidth = '0';\n        }\n        _this.domBack = null;\n        _this.ctxBack = null;\n        _this.painter = painter;\n        _this.config = null;\n        _this.dpr = dpr;\n        return _this;\n    }\n    Layer.prototype.getElementCount = function () {\n        return this.__endIndex - this.__startIndex;\n    };\n    Layer.prototype.afterBrush = function () {\n        this.__prevStartIndex = this.__startIndex;\n        this.__prevEndIndex = this.__endIndex;\n    };\n    Layer.prototype.initContext = function () {\n        this.ctx = this.dom.getContext('2d');\n        this.ctx.dpr = this.dpr;\n    };\n    Layer.prototype.setUnpainted = function () {\n        this.__firstTimePaint = true;\n    };\n    Layer.prototype.createBackBuffer = function () {\n        var dpr = this.dpr;\n        this.domBack = createDom('back-' + this.id, this.painter, dpr);\n        this.ctxBack = this.domBack.getContext('2d');\n        if (dpr !== 1) {\n            this.ctxBack.scale(dpr, dpr);\n        }\n    };\n    Layer.prototype.createRepaintRects = function (displayList, prevList, viewWidth, viewHeight) {\n        if (this.__firstTimePaint) {\n            this.__firstTimePaint = false;\n            return null;\n        }\n        var mergedRepaintRects = [];\n        var maxRepaintRectCount = this.maxRepaintRectCount;\n        var full = false;\n        var pendingRect = new BoundingRect(0, 0, 0, 0);\n        function addRectToMergePool(rect) {\n            if (!rect.isFinite() || rect.isZero()) {\n                return;\n            }\n            if (mergedRepaintRects.length === 0) {\n                var boundingRect = new BoundingRect(0, 0, 0, 0);\n                boundingRect.copy(rect);\n                mergedRepaintRects.push(boundingRect);\n            }\n            else {\n                var isMerged = false;\n                var minDeltaArea = Infinity;\n                var bestRectToMergeIdx = 0;\n                for (var i = 0; i < mergedRepaintRects.length; ++i) {\n                    var mergedRect = mergedRepaintRects[i];\n                    if (mergedRect.intersect(rect)) {\n                        var pendingRect_1 = new BoundingRect(0, 0, 0, 0);\n                        pendingRect_1.copy(mergedRect);\n                        pendingRect_1.union(rect);\n                        mergedRepaintRects[i] = pendingRect_1;\n                        isMerged = true;\n                        break;\n                    }\n                    else if (full) {\n                        pendingRect.copy(rect);\n                        pendingRect.union(mergedRect);\n                        var aArea = rect.width * rect.height;\n                        var bArea = mergedRect.width * mergedRect.height;\n                        var pendingArea = pendingRect.width * pendingRect.height;\n                        var deltaArea = pendingArea - aArea - bArea;\n                        if (deltaArea < minDeltaArea) {\n                            minDeltaArea = deltaArea;\n                            bestRectToMergeIdx = i;\n                        }\n                    }\n                }\n                if (full) {\n                    mergedRepaintRects[bestRectToMergeIdx].union(rect);\n                    isMerged = true;\n                }\n                if (!isMerged) {\n                    var boundingRect = new BoundingRect(0, 0, 0, 0);\n                    boundingRect.copy(rect);\n                    mergedRepaintRects.push(boundingRect);\n                }\n                if (!full) {\n                    full = mergedRepaintRects.length >= maxRepaintRectCount;\n                }\n            }\n        }\n        for (var i = this.__startIndex; i < this.__endIndex; ++i) {\n            var el = displayList[i];\n            if (el) {\n                var shouldPaint = el.shouldBePainted(viewWidth, viewHeight, true, true);\n                var prevRect = el.__isRendered && ((el.__dirty & Element.REDARAW_BIT) || !shouldPaint)\n                    ? el.getPrevPaintRect()\n                    : null;\n                if (prevRect) {\n                    addRectToMergePool(prevRect);\n                }\n                var curRect = shouldPaint && ((el.__dirty & Element.REDARAW_BIT) || !el.__isRendered)\n                    ? el.getPaintRect()\n                    : null;\n                if (curRect) {\n                    addRectToMergePool(curRect);\n                }\n            }\n        }\n        for (var i = this.__prevStartIndex; i < this.__prevEndIndex; ++i) {\n            var el = prevList[i];\n            var shouldPaint = el.shouldBePainted(viewWidth, viewHeight, true, true);\n            if (el && (!shouldPaint || !el.__zr) && el.__isRendered) {\n                var prevRect = el.getPrevPaintRect();\n                if (prevRect) {\n                    addRectToMergePool(prevRect);\n                }\n            }\n        }\n        var hasIntersections;\n        do {\n            hasIntersections = false;\n            for (var i = 0; i < mergedRepaintRects.length;) {\n                if (mergedRepaintRects[i].isZero()) {\n                    mergedRepaintRects.splice(i, 1);\n                    continue;\n                }\n                for (var j = i + 1; j < mergedRepaintRects.length;) {\n                    if (mergedRepaintRects[i].intersect(mergedRepaintRects[j])) {\n                        hasIntersections = true;\n                        mergedRepaintRects[i].union(mergedRepaintRects[j]);\n                        mergedRepaintRects.splice(j, 1);\n                    }\n                    else {\n                        j++;\n                    }\n                }\n                i++;\n            }\n        } while (hasIntersections);\n        this._paintRects = mergedRepaintRects;\n        return mergedRepaintRects;\n    };\n    Layer.prototype.debugGetPaintRects = function () {\n        return (this._paintRects || []).slice();\n    };\n    Layer.prototype.resize = function (width, height) {\n        var dpr = this.dpr;\n        var dom = this.dom;\n        var domStyle = dom.style;\n        var domBack = this.domBack;\n        if (domStyle) {\n            domStyle.width = width + 'px';\n            domStyle.height = height + 'px';\n        }\n        dom.width = width * dpr;\n        dom.height = height * dpr;\n        if (domBack) {\n            domBack.width = width * dpr;\n            domBack.height = height * dpr;\n            if (dpr !== 1) {\n                this.ctxBack.scale(dpr, dpr);\n            }\n        }\n    };\n    Layer.prototype.clear = function (clearAll, clearColor, repaintRects) {\n        var dom = this.dom;\n        var ctx = this.ctx;\n        var width = dom.width;\n        var height = dom.height;\n        clearColor = clearColor || this.clearColor;\n        var haveMotionBLur = this.motionBlur && !clearAll;\n        var lastFrameAlpha = this.lastFrameAlpha;\n        var dpr = this.dpr;\n        var self = this;\n        if (haveMotionBLur) {\n            if (!this.domBack) {\n                this.createBackBuffer();\n            }\n            this.ctxBack.globalCompositeOperation = 'copy';\n            this.ctxBack.drawImage(dom, 0, 0, width / dpr, height / dpr);\n        }\n        var domBack = this.domBack;\n        function doClear(x, y, width, height) {\n            ctx.clearRect(x, y, width, height);\n            if (clearColor && clearColor !== 'transparent') {\n                var clearColorGradientOrPattern = void 0;\n                if (util.isGradientObject(clearColor)) {\n                    clearColorGradientOrPattern = clearColor.__canvasGradient\n                        || getCanvasGradient(ctx, clearColor, {\n                            x: 0,\n                            y: 0,\n                            width: width,\n                            height: height\n                        });\n                    clearColor.__canvasGradient = clearColorGradientOrPattern;\n                }\n                else if (util.isPatternObject(clearColor)) {\n                    clearColorGradientOrPattern = createCanvasPattern(ctx, clearColor, {\n                        dirty: function () {\n                            self.setUnpainted();\n                            self.__painter.refresh();\n                        }\n                    });\n                }\n                ctx.save();\n                ctx.fillStyle = clearColorGradientOrPattern || clearColor;\n                ctx.fillRect(x, y, width, height);\n                ctx.restore();\n            }\n            if (haveMotionBLur) {\n                ctx.save();\n                ctx.globalAlpha = lastFrameAlpha;\n                ctx.drawImage(domBack, x, y, width, height);\n                ctx.restore();\n            }\n        }\n        ;\n        if (!repaintRects || haveMotionBLur) {\n            doClear(0, 0, width, height);\n        }\n        else if (repaintRects.length) {\n            util.each(repaintRects, function (rect) {\n                doClear(rect.x * dpr, rect.y * dpr, rect.width * dpr, rect.height * dpr);\n            });\n        }\n    };\n    return Layer;\n}(Eventful));\nexport default Layer;\n","import { devicePixelRatio } from '../config';\nimport * as util from '../core/util';\nimport Layer from './Layer';\nimport requestAnimationFrame from '../animation/requestAnimationFrame';\nimport ZRImage from '../graphic/Image';\nimport env from '../core/env';\nimport { brush, brushSingle } from './graphic';\nimport Element from '../Element';\nvar HOVER_LAYER_ZLEVEL = 1e5;\nvar CANVAS_ZLEVEL = 314159;\nvar EL_AFTER_INCREMENTAL_INC = 0.01;\nvar INCREMENTAL_INC = 0.001;\nfunction parseInt10(val) {\n    return parseInt(val, 10);\n}\nfunction isLayerValid(layer) {\n    if (!layer) {\n        return false;\n    }\n    if (layer.__builtin__) {\n        return true;\n    }\n    if (typeof (layer.resize) !== 'function'\n        || typeof (layer.refresh) !== 'function') {\n        return false;\n    }\n    return true;\n}\nfunction createRoot(width, height) {\n    var domRoot = document.createElement('div');\n    domRoot.style.cssText = [\n        'position:relative',\n        'width:' + width + 'px',\n        'height:' + height + 'px',\n        'padding:0',\n        'margin:0',\n        'border-width:0'\n    ].join(';') + ';';\n    return domRoot;\n}\nvar CanvasPainter = (function () {\n    function CanvasPainter(root, storage, opts, id) {\n        this.type = 'canvas';\n        this._zlevelList = [];\n        this._prevDisplayList = [];\n        this._layers = {};\n        this._layerConfig = {};\n        this._needsManuallyCompositing = false;\n        this.type = 'canvas';\n        var singleCanvas = !root.nodeName\n            || root.nodeName.toUpperCase() === 'CANVAS';\n        this._opts = opts = util.extend({}, opts || {});\n        this.dpr = opts.devicePixelRatio || devicePixelRatio;\n        this._singleCanvas = singleCanvas;\n        this.root = root;\n        var rootStyle = root.style;\n        if (rootStyle) {\n            rootStyle.webkitTapHighlightColor = 'transparent';\n            rootStyle.webkitUserSelect = 'none';\n            rootStyle.userSelect = 'none';\n            rootStyle['-webkit-touch-callout'] = 'none';\n            root.innerHTML = '';\n        }\n        this.storage = storage;\n        var zlevelList = this._zlevelList;\n        this._prevDisplayList = [];\n        var layers = this._layers;\n        if (!singleCanvas) {\n            this._width = this._getSize(0);\n            this._height = this._getSize(1);\n            var domRoot = this._domRoot = createRoot(this._width, this._height);\n            root.appendChild(domRoot);\n        }\n        else {\n            var rootCanvas = root;\n            var width = rootCanvas.width;\n            var height = rootCanvas.height;\n            if (opts.width != null) {\n                width = opts.width;\n            }\n            if (opts.height != null) {\n                height = opts.height;\n            }\n            this.dpr = opts.devicePixelRatio || 1;\n            rootCanvas.width = width * this.dpr;\n            rootCanvas.height = height * this.dpr;\n            this._width = width;\n            this._height = height;\n            var mainLayer = new Layer(rootCanvas, this, this.dpr);\n            mainLayer.__builtin__ = true;\n            mainLayer.initContext();\n            layers[CANVAS_ZLEVEL] = mainLayer;\n            mainLayer.zlevel = CANVAS_ZLEVEL;\n            zlevelList.push(CANVAS_ZLEVEL);\n            this._domRoot = root;\n        }\n    }\n    CanvasPainter.prototype.getType = function () {\n        return 'canvas';\n    };\n    CanvasPainter.prototype.isSingleCanvas = function () {\n        return this._singleCanvas;\n    };\n    CanvasPainter.prototype.getViewportRoot = function () {\n        return this._domRoot;\n    };\n    CanvasPainter.prototype.getViewportRootOffset = function () {\n        var viewportRoot = this.getViewportRoot();\n        if (viewportRoot) {\n            return {\n                offsetLeft: viewportRoot.offsetLeft || 0,\n                offsetTop: viewportRoot.offsetTop || 0\n            };\n        }\n    };\n    CanvasPainter.prototype.refresh = function (paintAll) {\n        var list = this.storage.getDisplayList(true);\n        var prevList = this._prevDisplayList;\n        var zlevelList = this._zlevelList;\n        this._redrawId = Math.random();\n        this._paintList(list, prevList, paintAll, this._redrawId);\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            var layer = this._layers[z];\n            if (!layer.__builtin__ && layer.refresh) {\n                var clearColor = i === 0 ? this._backgroundColor : null;\n                layer.refresh(clearColor);\n            }\n        }\n        if (this._opts.useDirtyRect) {\n            this._prevDisplayList = list.slice();\n        }\n        return this;\n    };\n    CanvasPainter.prototype.refreshHover = function () {\n        this._paintHoverList(this.storage.getDisplayList(false));\n    };\n    CanvasPainter.prototype._paintHoverList = function (list) {\n        var len = list.length;\n        var hoverLayer = this._hoverlayer;\n        hoverLayer && hoverLayer.clear();\n        if (!len) {\n            return;\n        }\n        var scope = {\n            inHover: true,\n            viewWidth: this._width,\n            viewHeight: this._height\n        };\n        var ctx;\n        for (var i = 0; i < len; i++) {\n            var el = list[i];\n            if (el.__inHover) {\n                if (!hoverLayer) {\n                    hoverLayer = this._hoverlayer = this.getLayer(HOVER_LAYER_ZLEVEL);\n                }\n                if (!ctx) {\n                    ctx = hoverLayer.ctx;\n                    ctx.save();\n                }\n                brush(ctx, el, scope, i === len - 1);\n            }\n        }\n        if (ctx) {\n            ctx.restore();\n        }\n    };\n    CanvasPainter.prototype.getHoverLayer = function () {\n        return this.getLayer(HOVER_LAYER_ZLEVEL);\n    };\n    CanvasPainter.prototype.paintOne = function (ctx, el) {\n        brushSingle(ctx, el);\n    };\n    CanvasPainter.prototype._paintList = function (list, prevList, paintAll, redrawId) {\n        if (this._redrawId !== redrawId) {\n            return;\n        }\n        paintAll = paintAll || false;\n        this._updateLayerStatus(list);\n        var _a = this._doPaintList(list, prevList, paintAll), finished = _a.finished, needsRefreshHover = _a.needsRefreshHover;\n        if (this._needsManuallyCompositing) {\n            this._compositeManually();\n        }\n        if (needsRefreshHover) {\n            this._paintHoverList(list);\n        }\n        if (!finished) {\n            var self_1 = this;\n            requestAnimationFrame(function () {\n                self_1._paintList(list, prevList, paintAll, redrawId);\n            });\n        }\n        else {\n            this.eachLayer(function (layer) {\n                layer.afterBrush && layer.afterBrush();\n            });\n        }\n    };\n    CanvasPainter.prototype._compositeManually = function () {\n        var ctx = this.getLayer(CANVAS_ZLEVEL).ctx;\n        var width = this._domRoot.width;\n        var height = this._domRoot.height;\n        ctx.clearRect(0, 0, width, height);\n        this.eachBuiltinLayer(function (layer) {\n            if (layer.virtual) {\n                ctx.drawImage(layer.dom, 0, 0, width, height);\n            }\n        });\n    };\n    CanvasPainter.prototype._doPaintList = function (list, prevList, paintAll) {\n        var _this = this;\n        var layerList = [];\n        var useDirtyRect = this._opts.useDirtyRect;\n        for (var zi = 0; zi < this._zlevelList.length; zi++) {\n            var zlevel = this._zlevelList[zi];\n            var layer = this._layers[zlevel];\n            if (layer.__builtin__\n                && layer !== this._hoverlayer\n                && (layer.__dirty || paintAll)) {\n                layerList.push(layer);\n            }\n        }\n        var finished = true;\n        var needsRefreshHover = false;\n        var _loop_1 = function (k) {\n            var layer = layerList[k];\n            var ctx = layer.ctx;\n            var repaintRects = useDirtyRect\n                && layer.createRepaintRects(list, prevList, this_1._width, this_1._height);\n            ctx.save();\n            var start = paintAll ? layer.__startIndex : layer.__drawIndex;\n            var useTimer = !paintAll && layer.incremental && Date.now;\n            var startTime = useTimer && Date.now();\n            var clearColor = layer.zlevel === this_1._zlevelList[0]\n                ? this_1._backgroundColor : null;\n            if (layer.__startIndex === layer.__endIndex) {\n                layer.clear(false, clearColor, repaintRects);\n            }\n            else if (start === layer.__startIndex) {\n                var firstEl = list[start];\n                if (!firstEl.incremental || !firstEl.notClear || paintAll) {\n                    layer.clear(false, clearColor, repaintRects);\n                }\n            }\n            if (start === -1) {\n                console.error('For some unknown reason. drawIndex is -1');\n                start = layer.__startIndex;\n            }\n            var i;\n            var repaint = function (repaintRect) {\n                var scope = {\n                    inHover: false,\n                    allClipped: false,\n                    prevEl: null,\n                    viewWidth: _this._width,\n                    viewHeight: _this._height\n                };\n                for (i = start; i < layer.__endIndex; i++) {\n                    var el = list[i];\n                    if (el.__inHover) {\n                        needsRefreshHover = true;\n                    }\n                    _this._doPaintEl(el, layer, useDirtyRect, repaintRect, scope, i === layer.__endIndex - 1);\n                    if (useTimer) {\n                        var dTime = Date.now() - startTime;\n                        if (dTime > 15) {\n                            break;\n                        }\n                    }\n                }\n                if (scope.prevElClipPaths) {\n                    ctx.restore();\n                }\n            };\n            if (repaintRects) {\n                if (repaintRects.length === 0) {\n                    i = layer.__endIndex;\n                }\n                else {\n                    var dpr = this_1.dpr;\n                    for (var r = 0; r < repaintRects.length; ++r) {\n                        var rect = repaintRects[r];\n                        ctx.save();\n                        ctx.beginPath();\n                        ctx.rect(rect.x * dpr, rect.y * dpr, rect.width * dpr, rect.height * dpr);\n                        ctx.clip();\n                        repaint(rect);\n                        ctx.restore();\n                    }\n                }\n            }\n            else {\n                ctx.save();\n                repaint();\n                ctx.restore();\n            }\n            layer.__drawIndex = i;\n            if (layer.__drawIndex < layer.__endIndex) {\n                finished = false;\n            }\n        };\n        var this_1 = this;\n        for (var k = 0; k < layerList.length; k++) {\n            _loop_1(k);\n        }\n        if (env.wxa) {\n            util.each(this._layers, function (layer) {\n                if (layer && layer.ctx && layer.ctx.draw) {\n                    layer.ctx.draw();\n                }\n            });\n        }\n        return {\n            finished: finished,\n            needsRefreshHover: needsRefreshHover\n        };\n    };\n    CanvasPainter.prototype._doPaintEl = function (el, currentLayer, useDirtyRect, repaintRect, scope, isLast) {\n        var ctx = currentLayer.ctx;\n        if (useDirtyRect) {\n            var paintRect = el.getPaintRect();\n            if (!repaintRect || paintRect && paintRect.intersect(repaintRect)) {\n                brush(ctx, el, scope, isLast);\n                el.setPrevPaintRect(paintRect);\n            }\n        }\n        else {\n            brush(ctx, el, scope, isLast);\n        }\n    };\n    CanvasPainter.prototype.getLayer = function (zlevel, virtual) {\n        if (this._singleCanvas && !this._needsManuallyCompositing) {\n            zlevel = CANVAS_ZLEVEL;\n        }\n        var layer = this._layers[zlevel];\n        if (!layer) {\n            layer = new Layer('zr_' + zlevel, this, this.dpr);\n            layer.zlevel = zlevel;\n            layer.__builtin__ = true;\n            if (this._layerConfig[zlevel]) {\n                util.merge(layer, this._layerConfig[zlevel], true);\n            }\n            else if (this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC]) {\n                util.merge(layer, this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC], true);\n            }\n            if (virtual) {\n                layer.virtual = virtual;\n            }\n            this.insertLayer(zlevel, layer);\n            layer.initContext();\n        }\n        return layer;\n    };\n    CanvasPainter.prototype.insertLayer = function (zlevel, layer) {\n        var layersMap = this._layers;\n        var zlevelList = this._zlevelList;\n        var len = zlevelList.length;\n        var domRoot = this._domRoot;\n        var prevLayer = null;\n        var i = -1;\n        if (layersMap[zlevel]) {\n            util.logError('ZLevel ' + zlevel + ' has been used already');\n            return;\n        }\n        if (!isLayerValid(layer)) {\n            util.logError('Layer of zlevel ' + zlevel + ' is not valid');\n            return;\n        }\n        if (len > 0 && zlevel > zlevelList[0]) {\n            for (i = 0; i < len - 1; i++) {\n                if (zlevelList[i] < zlevel\n                    && zlevelList[i + 1] > zlevel) {\n                    break;\n                }\n            }\n            prevLayer = layersMap[zlevelList[i]];\n        }\n        zlevelList.splice(i + 1, 0, zlevel);\n        layersMap[zlevel] = layer;\n        if (!layer.virtual) {\n            if (prevLayer) {\n                var prevDom = prevLayer.dom;\n                if (prevDom.nextSibling) {\n                    domRoot.insertBefore(layer.dom, prevDom.nextSibling);\n                }\n                else {\n                    domRoot.appendChild(layer.dom);\n                }\n            }\n            else {\n                if (domRoot.firstChild) {\n                    domRoot.insertBefore(layer.dom, domRoot.firstChild);\n                }\n                else {\n                    domRoot.appendChild(layer.dom);\n                }\n            }\n        }\n        layer.__painter = this;\n    };\n    CanvasPainter.prototype.eachLayer = function (cb, context) {\n        var zlevelList = this._zlevelList;\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            cb.call(context, this._layers[z], z);\n        }\n    };\n    CanvasPainter.prototype.eachBuiltinLayer = function (cb, context) {\n        var zlevelList = this._zlevelList;\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            var layer = this._layers[z];\n            if (layer.__builtin__) {\n                cb.call(context, layer, z);\n            }\n        }\n    };\n    CanvasPainter.prototype.eachOtherLayer = function (cb, context) {\n        var zlevelList = this._zlevelList;\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            var layer = this._layers[z];\n            if (!layer.__builtin__) {\n                cb.call(context, layer, z);\n            }\n        }\n    };\n    CanvasPainter.prototype.getLayers = function () {\n        return this._layers;\n    };\n    CanvasPainter.prototype._updateLayerStatus = function (list) {\n        this.eachBuiltinLayer(function (layer, z) {\n            layer.__dirty = layer.__used = false;\n        });\n        function updatePrevLayer(idx) {\n            if (prevLayer) {\n                if (prevLayer.__endIndex !== idx) {\n                    prevLayer.__dirty = true;\n                }\n                prevLayer.__endIndex = idx;\n            }\n        }\n        if (this._singleCanvas) {\n            for (var i_1 = 1; i_1 < list.length; i_1++) {\n                var el = list[i_1];\n                if (el.zlevel !== list[i_1 - 1].zlevel || el.incremental) {\n                    this._needsManuallyCompositing = true;\n                    break;\n                }\n            }\n        }\n        var prevLayer = null;\n        var incrementalLayerCount = 0;\n        var prevZlevel;\n        var i;\n        for (i = 0; i < list.length; i++) {\n            var el = list[i];\n            var zlevel = el.zlevel;\n            var layer = void 0;\n            if (prevZlevel !== zlevel) {\n                prevZlevel = zlevel;\n                incrementalLayerCount = 0;\n            }\n            if (el.incremental) {\n                layer = this.getLayer(zlevel + INCREMENTAL_INC, this._needsManuallyCompositing);\n                layer.incremental = true;\n                incrementalLayerCount = 1;\n            }\n            else {\n                layer = this.getLayer(zlevel + (incrementalLayerCount > 0 ? EL_AFTER_INCREMENTAL_INC : 0), this._needsManuallyCompositing);\n            }\n            if (!layer.__builtin__) {\n                util.logError('ZLevel ' + zlevel + ' has been used by unkown layer ' + layer.id);\n            }\n            if (layer !== prevLayer) {\n                layer.__used = true;\n                if (layer.__startIndex !== i) {\n                    layer.__dirty = true;\n                }\n                layer.__startIndex = i;\n                if (!layer.incremental) {\n                    layer.__drawIndex = i;\n                }\n                else {\n                    layer.__drawIndex = -1;\n                }\n                updatePrevLayer(i);\n                prevLayer = layer;\n            }\n            if ((el.__dirty & Element.REDARAW_BIT) && !el.__inHover) {\n                layer.__dirty = true;\n                if (layer.incremental && layer.__drawIndex < 0) {\n                    layer.__drawIndex = i;\n                }\n            }\n        }\n        updatePrevLayer(i);\n        this.eachBuiltinLayer(function (layer, z) {\n            if (!layer.__used && layer.getElementCount() > 0) {\n                layer.__dirty = true;\n                layer.__startIndex = layer.__endIndex = layer.__drawIndex = 0;\n            }\n            if (layer.__dirty && layer.__drawIndex < 0) {\n                layer.__drawIndex = layer.__startIndex;\n            }\n        });\n    };\n    CanvasPainter.prototype.clear = function () {\n        this.eachBuiltinLayer(this._clearLayer);\n        return this;\n    };\n    CanvasPainter.prototype._clearLayer = function (layer) {\n        layer.clear();\n    };\n    CanvasPainter.prototype.setBackgroundColor = function (backgroundColor) {\n        this._backgroundColor = backgroundColor;\n        util.each(this._layers, function (layer) {\n            layer.setUnpainted();\n        });\n    };\n    CanvasPainter.prototype.configLayer = function (zlevel, config) {\n        if (config) {\n            var layerConfig = this._layerConfig;\n            if (!layerConfig[zlevel]) {\n                layerConfig[zlevel] = config;\n            }\n            else {\n                util.merge(layerConfig[zlevel], config, true);\n            }\n            for (var i = 0; i < this._zlevelList.length; i++) {\n                var _zlevel = this._zlevelList[i];\n                if (_zlevel === zlevel || _zlevel === zlevel + EL_AFTER_INCREMENTAL_INC) {\n                    var layer = this._layers[_zlevel];\n                    util.merge(layer, layerConfig[zlevel], true);\n                }\n            }\n        }\n    };\n    CanvasPainter.prototype.delLayer = function (zlevel) {\n        var layers = this._layers;\n        var zlevelList = this._zlevelList;\n        var layer = layers[zlevel];\n        if (!layer) {\n            return;\n        }\n        layer.dom.parentNode.removeChild(layer.dom);\n        delete layers[zlevel];\n        zlevelList.splice(util.indexOf(zlevelList, zlevel), 1);\n    };\n    CanvasPainter.prototype.resize = function (width, height) {\n        if (!this._domRoot.style) {\n            if (width == null || height == null) {\n                return;\n            }\n            this._width = width;\n            this._height = height;\n            this.getLayer(CANVAS_ZLEVEL).resize(width, height);\n        }\n        else {\n            var domRoot = this._domRoot;\n            domRoot.style.display = 'none';\n            var opts = this._opts;\n            width != null && (opts.width = width);\n            height != null && (opts.height = height);\n            width = this._getSize(0);\n            height = this._getSize(1);\n            domRoot.style.display = '';\n            if (this._width !== width || height !== this._height) {\n                domRoot.style.width = width + 'px';\n                domRoot.style.height = height + 'px';\n                for (var id in this._layers) {\n                    if (this._layers.hasOwnProperty(id)) {\n                        this._layers[id].resize(width, height);\n                    }\n                }\n                this.refresh(true);\n            }\n            this._width = width;\n            this._height = height;\n        }\n        return this;\n    };\n    CanvasPainter.prototype.clearLayer = function (zlevel) {\n        var layer = this._layers[zlevel];\n        if (layer) {\n            layer.clear();\n        }\n    };\n    CanvasPainter.prototype.dispose = function () {\n        this.root.innerHTML = '';\n        this.root =\n            this.storage =\n                this._domRoot =\n                    this._layers = null;\n    };\n    CanvasPainter.prototype.getRenderedCanvas = function (opts) {\n        opts = opts || {};\n        if (this._singleCanvas && !this._compositeManually) {\n            return this._layers[CANVAS_ZLEVEL].dom;\n        }\n        var imageLayer = new Layer('image', this, opts.pixelRatio || this.dpr);\n        var ctx = imageLayer.ctx;\n        imageLayer.initContext();\n        imageLayer.clear(false, opts.backgroundColor || this._backgroundColor);\n        if (opts.pixelRatio <= this.dpr) {\n            this.refresh();\n            var width_1 = imageLayer.dom.width;\n            var height_1 = imageLayer.dom.height;\n            var ctx_1 = imageLayer.ctx;\n            this.eachLayer(function (layer) {\n                if (layer.__builtin__) {\n                    ctx_1.drawImage(layer.dom, 0, 0, width_1, height_1);\n                }\n                else if (layer.renderToCanvas) {\n                    imageLayer.ctx.save();\n                    layer.renderToCanvas(imageLayer.ctx);\n                    imageLayer.ctx.restore();\n                }\n            });\n        }\n        else {\n            var scope = {\n                inHover: false,\n                viewWidth: this._width,\n                viewHeight: this._height\n            };\n            var displayList = this.storage.getDisplayList(true);\n            for (var i = 0, len = displayList.length; i < len; i++) {\n                var el = displayList[i];\n                brush(ctx, el, scope, i === len - 1);\n            }\n        }\n        return imageLayer.dom;\n    };\n    CanvasPainter.prototype.getWidth = function () {\n        return this._width;\n    };\n    CanvasPainter.prototype.getHeight = function () {\n        return this._height;\n    };\n    CanvasPainter.prototype._getSize = function (whIdx) {\n        var opts = this._opts;\n        var wh = ['width', 'height'][whIdx];\n        var cwh = ['clientWidth', 'clientHeight'][whIdx];\n        var plt = ['paddingLeft', 'paddingTop'][whIdx];\n        var prb = ['paddingRight', 'paddingBottom'][whIdx];\n        if (opts[wh] != null && opts[wh] !== 'auto') {\n            return parseFloat(opts[wh]);\n        }\n        var root = this.root;\n        var stl = document.defaultView.getComputedStyle(root);\n        return ((root[cwh] || parseInt10(stl[wh]) || parseInt10(root.style[wh]))\n            - (parseInt10(stl[plt]) || 0)\n            - (parseInt10(stl[prb]) || 0)) | 0;\n    };\n    CanvasPainter.prototype.pathToImage = function (path, dpr) {\n        dpr = dpr || this.dpr;\n        var canvas = document.createElement('canvas');\n        var ctx = canvas.getContext('2d');\n        var rect = path.getBoundingRect();\n        var style = path.style;\n        var shadowBlurSize = style.shadowBlur * dpr;\n        var shadowOffsetX = style.shadowOffsetX * dpr;\n        var shadowOffsetY = style.shadowOffsetY * dpr;\n        var lineWidth = path.hasStroke() ? style.lineWidth : 0;\n        var leftMargin = Math.max(lineWidth / 2, -shadowOffsetX + shadowBlurSize);\n        var rightMargin = Math.max(lineWidth / 2, shadowOffsetX + shadowBlurSize);\n        var topMargin = Math.max(lineWidth / 2, -shadowOffsetY + shadowBlurSize);\n        var bottomMargin = Math.max(lineWidth / 2, shadowOffsetY + shadowBlurSize);\n        var width = rect.width + leftMargin + rightMargin;\n        var height = rect.height + topMargin + bottomMargin;\n        canvas.width = width * dpr;\n        canvas.height = height * dpr;\n        ctx.scale(dpr, dpr);\n        ctx.clearRect(0, 0, width, height);\n        ctx.dpr = dpr;\n        var pathTransform = {\n            x: path.x,\n            y: path.y,\n            scaleX: path.scaleX,\n            scaleY: path.scaleY,\n            rotation: path.rotation,\n            originX: path.originX,\n            originY: path.originY\n        };\n        path.x = leftMargin - rect.x;\n        path.y = topMargin - rect.y;\n        path.rotation = 0;\n        path.scaleX = 1;\n        path.scaleY = 1;\n        path.updateTransform();\n        if (path) {\n            brush(ctx, path, {\n                inHover: false,\n                viewWidth: this._width,\n                viewHeight: this._height\n            }, true);\n        }\n        var imgShape = new ZRImage({\n            style: {\n                x: 0,\n                y: 0,\n                image: canvas\n            }\n        });\n        util.extend(path, pathTransform);\n        return imgShape;\n    };\n    return CanvasPainter;\n}());\nexport default CanvasPainter;\n;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport CanvasPainter from 'zrender/lib/canvas/Painter';\nexport function install(registers) {\n  registers.registerPainter('canvas', CanvasPainter);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListFromArray from '../helper/createListFromArray';\nimport SeriesModel from '../../model/Series';\n\nvar LineSeriesModel = function (_super) {\n  __extends(LineSeriesModel, _super);\n\n  function LineSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = LineSeriesModel.type;\n    _this.hasSymbolVisual = true;\n    _this.legendSymbol = 'line';\n    return _this;\n  }\n\n  LineSeriesModel.prototype.getInitialData = function (option) {\n    if (process.env.NODE_ENV !== 'production') {\n      var coordSys = option.coordinateSystem;\n\n      if (coordSys !== 'polar' && coordSys !== 'cartesian2d') {\n        throw new Error('Line not support coordinateSystem besides cartesian and polar');\n      }\n    }\n\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: true\n    });\n  };\n\n  LineSeriesModel.type = 'series.line';\n  LineSeriesModel.dependencies = ['grid', 'polar'];\n  LineSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 3,\n    coordinateSystem: 'cartesian2d',\n    legendHoverLink: true,\n    clip: true,\n    label: {\n      position: 'top'\n    },\n    endLabel: {\n      show: false,\n      valueAnimation: true,\n      distance: 8\n    },\n    lineStyle: {\n      width: 2,\n      type: 'solid'\n    },\n    emphasis: {\n      scale: true,\n      lineStyle: {\n        width: 'bolder'\n      }\n    },\n    step: false,\n    smooth: false,\n    smoothMonotone: null,\n    symbol: 'emptyCircle',\n    symbolSize: 4,\n    symbolRotate: null,\n    showSymbol: true,\n    showAllSymbol: 'auto',\n    connectNulls: false,\n    sampling: 'none',\n    animationEasing: 'linear',\n    progressive: 0,\n    hoverLayerThreshold: Infinity\n  };\n  return LineSeriesModel;\n}(SeriesModel);\n\nexport default LineSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { retrieveRawValue } from '../../data/helper/dataProvider';\nimport { isArray } from 'zrender/lib/core/util';\nexport function getDefaultLabel(data, dataIndex) {\n  var labelDims = data.mapDimensionsAll('defaultedLabel');\n  var len = labelDims.length;\n\n  if (len === 1) {\n    var rawVal = retrieveRawValue(data, dataIndex, labelDims[0]);\n    return rawVal != null ? rawVal + '' : null;\n  } else if (len) {\n    var vals = [];\n\n    for (var i = 0; i < labelDims.length; i++) {\n      vals.push(retrieveRawValue(data, dataIndex, labelDims[i]));\n    }\n\n    return vals.join(' ');\n  }\n}\nexport function getDefaultInterpolatedLabel(data, interpolatedValue) {\n  var labelDims = data.mapDimensionsAll('defaultedLabel');\n\n  if (!isArray(interpolatedValue)) {\n    return interpolatedValue + '';\n  }\n\n  var vals = [];\n\n  for (var i = 0; i < labelDims.length; i++) {\n    var dimInfo = data.getDimensionInfo(labelDims[i]);\n\n    if (dimInfo) {\n      vals.push(interpolatedValue[dimInfo.index]);\n    }\n  }\n\n  return vals.join(' ');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { createSymbol } from '../../util/symbol';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { enterEmphasis, leaveEmphasis, enableHoverEmphasis } from '../../util/states';\nimport { parsePercent } from '../../util/number';\nimport { getDefaultLabel } from './labelHelper';\nimport { extend } from 'zrender/lib/core/util';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport ZRImage from 'zrender/lib/graphic/Image';\n\nvar Symbol = function (_super) {\n  __extends(Symbol, _super);\n\n  function Symbol(data, idx, seriesScope, opts) {\n    var _this = _super.call(this) || this;\n\n    _this.updateData(data, idx, seriesScope, opts);\n\n    return _this;\n  }\n\n  Symbol.prototype._createSymbol = function (symbolType, data, idx, symbolSize, keepAspect) {\n    this.removeAll();\n    var symbolPath = createSymbol(symbolType, -1, -1, 2, 2, null, keepAspect);\n    symbolPath.attr({\n      z2: 100,\n      culling: true,\n      scaleX: symbolSize[0] / 2,\n      scaleY: symbolSize[1] / 2\n    });\n    symbolPath.drift = driftSymbol;\n    this._symbolType = symbolType;\n    this.add(symbolPath);\n  };\n\n  Symbol.prototype.stopSymbolAnimation = function (toLastFrame) {\n    this.childAt(0).stopAnimation(null, toLastFrame);\n  };\n\n  Symbol.prototype.getSymbolPath = function () {\n    return this.childAt(0);\n  };\n\n  Symbol.prototype.highlight = function () {\n    enterEmphasis(this.childAt(0));\n  };\n\n  Symbol.prototype.downplay = function () {\n    leaveEmphasis(this.childAt(0));\n  };\n\n  Symbol.prototype.setZ = function (zlevel, z) {\n    var symbolPath = this.childAt(0);\n    symbolPath.zlevel = zlevel;\n    symbolPath.z = z;\n  };\n\n  Symbol.prototype.setDraggable = function (draggable) {\n    var symbolPath = this.childAt(0);\n    symbolPath.draggable = draggable;\n    symbolPath.cursor = draggable ? 'move' : symbolPath.cursor;\n  };\n\n  Symbol.prototype.updateData = function (data, idx, seriesScope, opts) {\n    this.silent = false;\n    var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\n    var seriesModel = data.hostModel;\n    var symbolSize = Symbol.getSymbolSize(data, idx);\n    var isInit = symbolType !== this._symbolType;\n    var disableAnimation = opts && opts.disableAnimation;\n\n    if (isInit) {\n      var keepAspect = data.getItemVisual(idx, 'symbolKeepAspect');\n\n      this._createSymbol(symbolType, data, idx, symbolSize, keepAspect);\n    } else {\n      var symbolPath = this.childAt(0);\n      symbolPath.silent = false;\n      var target = {\n        scaleX: symbolSize[0] / 2,\n        scaleY: symbolSize[1] / 2\n      };\n      disableAnimation ? symbolPath.attr(target) : graphic.updateProps(symbolPath, target, seriesModel, idx);\n    }\n\n    this._updateCommon(data, idx, symbolSize, seriesScope, opts);\n\n    if (isInit) {\n      var symbolPath = this.childAt(0);\n\n      if (!disableAnimation) {\n        var target = {\n          scaleX: this._sizeX,\n          scaleY: this._sizeY,\n          style: {\n            opacity: symbolPath.style.opacity\n          }\n        };\n        symbolPath.scaleX = symbolPath.scaleY = 0;\n        symbolPath.style.opacity = 0;\n        graphic.initProps(symbolPath, target, seriesModel, idx);\n      }\n    }\n\n    if (disableAnimation) {\n      this.childAt(0).stopAnimation('remove');\n    }\n\n    this._seriesModel = seriesModel;\n  };\n\n  Symbol.prototype._updateCommon = function (data, idx, symbolSize, seriesScope, opts) {\n    var symbolPath = this.childAt(0);\n    var seriesModel = data.hostModel;\n    var emphasisItemStyle;\n    var blurItemStyle;\n    var selectItemStyle;\n    var focus;\n    var blurScope;\n    var symbolOffset;\n    var labelStatesModels;\n    var hoverScale;\n    var cursorStyle;\n\n    if (seriesScope) {\n      emphasisItemStyle = seriesScope.emphasisItemStyle;\n      blurItemStyle = seriesScope.blurItemStyle;\n      selectItemStyle = seriesScope.selectItemStyle;\n      focus = seriesScope.focus;\n      blurScope = seriesScope.blurScope;\n      symbolOffset = seriesScope.symbolOffset;\n      labelStatesModels = seriesScope.labelStatesModels;\n      hoverScale = seriesScope.hoverScale;\n      cursorStyle = seriesScope.cursorStyle;\n    }\n\n    if (!seriesScope || data.hasItemOption) {\n      var itemModel = seriesScope && seriesScope.itemModel ? seriesScope.itemModel : data.getItemModel(idx);\n      var emphasisModel = itemModel.getModel('emphasis');\n      emphasisItemStyle = emphasisModel.getModel('itemStyle').getItemStyle();\n      selectItemStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\n      blurItemStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\n      focus = emphasisModel.get('focus');\n      blurScope = emphasisModel.get('blurScope');\n      symbolOffset = itemModel.getShallow('symbolOffset');\n      labelStatesModels = getLabelStatesModels(itemModel);\n      hoverScale = emphasisModel.getShallow('scale');\n      cursorStyle = itemModel.getShallow('cursor');\n    }\n\n    var symbolRotate = data.getItemVisual(idx, 'symbolRotate');\n    symbolPath.attr('rotation', (symbolRotate || 0) * Math.PI / 180 || 0);\n\n    if (symbolOffset) {\n      symbolPath.x = parsePercent(symbolOffset[0], symbolSize[0]);\n      symbolPath.y = parsePercent(symbolOffset[1], symbolSize[1]);\n    }\n\n    cursorStyle && symbolPath.attr('cursor', cursorStyle);\n    var symbolStyle = data.getItemVisual(idx, 'style');\n    var visualColor = symbolStyle.fill;\n\n    if (symbolPath instanceof ZRImage) {\n      var pathStyle = symbolPath.style;\n      symbolPath.useStyle(extend({\n        image: pathStyle.image,\n        x: pathStyle.x,\n        y: pathStyle.y,\n        width: pathStyle.width,\n        height: pathStyle.height\n      }, symbolStyle));\n    } else {\n      if (symbolPath.__isEmptyBrush) {\n        symbolPath.useStyle(extend({}, symbolStyle));\n      } else {\n        symbolPath.useStyle(symbolStyle);\n      }\n\n      symbolPath.style.decal = null;\n      symbolPath.setColor(visualColor, opts && opts.symbolInnerColor);\n      symbolPath.style.strokeNoScale = true;\n    }\n\n    var liftZ = data.getItemVisual(idx, 'liftZ');\n    var z2Origin = this._z2;\n\n    if (liftZ != null) {\n      if (z2Origin == null) {\n        this._z2 = symbolPath.z2;\n        symbolPath.z2 += liftZ;\n      }\n    } else if (z2Origin != null) {\n      symbolPath.z2 = z2Origin;\n      this._z2 = null;\n    }\n\n    var useNameLabel = opts && opts.useNameLabel;\n    setLabelStyle(symbolPath, labelStatesModels, {\n      labelFetcher: seriesModel,\n      labelDataIndex: idx,\n      defaultText: getLabelDefaultText,\n      inheritColor: visualColor,\n      defaultOpacity: symbolStyle.opacity\n    });\n\n    function getLabelDefaultText(idx) {\n      return useNameLabel ? data.getName(idx) : getDefaultLabel(data, idx);\n    }\n\n    this._sizeX = symbolSize[0] / 2;\n    this._sizeY = symbolSize[1] / 2;\n    var emphasisState = symbolPath.ensureState('emphasis');\n    emphasisState.style = emphasisItemStyle;\n    symbolPath.ensureState('select').style = selectItemStyle;\n    symbolPath.ensureState('blur').style = blurItemStyle;\n\n    if (hoverScale) {\n      var scaleRatio = Math.max(1.1, 3 / this._sizeY);\n      emphasisState.scaleX = this._sizeX * scaleRatio;\n      emphasisState.scaleY = this._sizeY * scaleRatio;\n    }\n\n    this.setSymbolScale(1);\n    enableHoverEmphasis(this, focus, blurScope);\n  };\n\n  Symbol.prototype.setSymbolScale = function (scale) {\n    this.scaleX = this.scaleY = scale;\n  };\n\n  Symbol.prototype.fadeOut = function (cb, opt) {\n    var symbolPath = this.childAt(0);\n    var seriesModel = this._seriesModel;\n    var dataIndex = getECData(this).dataIndex;\n    var animationOpt = opt && opt.animation;\n    this.silent = symbolPath.silent = true;\n\n    if (opt && opt.fadeLabel) {\n      var textContent = symbolPath.getTextContent();\n\n      if (textContent) {\n        graphic.removeElement(textContent, {\n          style: {\n            opacity: 0\n          }\n        }, seriesModel, {\n          dataIndex: dataIndex,\n          removeOpt: animationOpt,\n          cb: function () {\n            symbolPath.removeTextContent();\n          }\n        });\n      }\n    } else {\n      symbolPath.removeTextContent();\n    }\n\n    graphic.removeElement(symbolPath, {\n      style: {\n        opacity: 0\n      },\n      scaleX: 0,\n      scaleY: 0\n    }, seriesModel, {\n      dataIndex: dataIndex,\n      cb: cb,\n      removeOpt: animationOpt\n    });\n  };\n\n  Symbol.getSymbolSize = function (data, idx) {\n    var symbolSize = data.getItemVisual(idx, 'symbolSize');\n    return symbolSize instanceof Array ? symbolSize.slice() : [+symbolSize, +symbolSize];\n  };\n\n  return Symbol;\n}(graphic.Group);\n\nfunction driftSymbol(dx, dy) {\n  this.parent.drift(dx, dy);\n}\n\nexport default Symbol;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as graphic from '../../util/graphic';\nimport SymbolClz from './Symbol';\nimport { isObject } from 'zrender/lib/core/util';\nimport { getLabelStatesModels } from '../../label/labelStyle';\n\nfunction symbolNeedsDraw(data, point, idx, opt) {\n  return point && !isNaN(point[0]) && !isNaN(point[1]) && !(opt.isIgnore && opt.isIgnore(idx)) && !(opt.clipShape && !opt.clipShape.contain(point[0], point[1])) && data.getItemVisual(idx, 'symbol') !== 'none';\n}\n\nfunction normalizeUpdateOpt(opt) {\n  if (opt != null && !isObject(opt)) {\n    opt = {\n      isIgnore: opt\n    };\n  }\n\n  return opt || {};\n}\n\nfunction makeSeriesScope(data) {\n  var seriesModel = data.hostModel;\n  var emphasisModel = seriesModel.getModel('emphasis');\n  return {\n    emphasisItemStyle: emphasisModel.getModel('itemStyle').getItemStyle(),\n    blurItemStyle: seriesModel.getModel(['blur', 'itemStyle']).getItemStyle(),\n    selectItemStyle: seriesModel.getModel(['select', 'itemStyle']).getItemStyle(),\n    focus: emphasisModel.get('focus'),\n    blurScope: emphasisModel.get('blurScope'),\n    symbolRotate: seriesModel.get('symbolRotate'),\n    symbolOffset: seriesModel.get('symbolOffset'),\n    hoverScale: emphasisModel.get('scale'),\n    labelStatesModels: getLabelStatesModels(seriesModel),\n    cursorStyle: seriesModel.get('cursor')\n  };\n}\n\nvar SymbolDraw = function () {\n  function SymbolDraw(SymbolCtor) {\n    this.group = new graphic.Group();\n    this._SymbolCtor = SymbolCtor || SymbolClz;\n  }\n\n  SymbolDraw.prototype.updateData = function (data, opt) {\n    opt = normalizeUpdateOpt(opt);\n    var group = this.group;\n    var seriesModel = data.hostModel;\n    var oldData = this._data;\n    var SymbolCtor = this._SymbolCtor;\n    var disableAnimation = opt.disableAnimation;\n    var seriesScope = makeSeriesScope(data);\n    var symbolUpdateOpt = {\n      disableAnimation: disableAnimation\n    };\n\n    var getSymbolPoint = opt.getSymbolPoint || function (idx) {\n      return data.getItemLayout(idx);\n    };\n\n    if (!oldData) {\n      group.removeAll();\n    }\n\n    data.diff(oldData).add(function (newIdx) {\n      var point = getSymbolPoint(newIdx);\n\n      if (symbolNeedsDraw(data, point, newIdx, opt)) {\n        var symbolEl = new SymbolCtor(data, newIdx, seriesScope, symbolUpdateOpt);\n        symbolEl.setPosition(point);\n        data.setItemGraphicEl(newIdx, symbolEl);\n        group.add(symbolEl);\n      }\n    }).update(function (newIdx, oldIdx) {\n      var symbolEl = oldData.getItemGraphicEl(oldIdx);\n      var point = getSymbolPoint(newIdx);\n\n      if (!symbolNeedsDraw(data, point, newIdx, opt)) {\n        group.remove(symbolEl);\n        return;\n      }\n\n      if (!symbolEl) {\n        symbolEl = new SymbolCtor(data, newIdx);\n        symbolEl.setPosition(point);\n      } else {\n        symbolEl.updateData(data, newIdx, seriesScope, symbolUpdateOpt);\n        var target = {\n          x: point[0],\n          y: point[1]\n        };\n        disableAnimation ? symbolEl.attr(target) : graphic.updateProps(symbolEl, target, seriesModel);\n      }\n\n      group.add(symbolEl);\n      data.setItemGraphicEl(newIdx, symbolEl);\n    }).remove(function (oldIdx) {\n      var el = oldData.getItemGraphicEl(oldIdx);\n      el && el.fadeOut(function () {\n        group.remove(el);\n      });\n    }).execute();\n    this._getSymbolPoint = getSymbolPoint;\n    this._data = data;\n  };\n\n  ;\n\n  SymbolDraw.prototype.isPersistent = function () {\n    return true;\n  };\n\n  ;\n\n  SymbolDraw.prototype.updateLayout = function () {\n    var _this = this;\n\n    var data = this._data;\n\n    if (data) {\n      data.eachItemGraphicEl(function (el, idx) {\n        var point = _this._getSymbolPoint(idx);\n\n        el.setPosition(point);\n        el.markRedraw();\n      });\n    }\n  };\n\n  ;\n\n  SymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\n    this._seriesScope = makeSeriesScope(data);\n    this._data = null;\n    this.group.removeAll();\n  };\n\n  ;\n\n  SymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\n    opt = normalizeUpdateOpt(opt);\n\n    function updateIncrementalAndHover(el) {\n      if (!el.isGroup) {\n        el.incremental = true;\n        el.ensureState('emphasis').hoverLayer = true;\n      }\n    }\n\n    for (var idx = taskParams.start; idx < taskParams.end; idx++) {\n      var point = data.getItemLayout(idx);\n\n      if (symbolNeedsDraw(data, point, idx, opt)) {\n        var el = new this._SymbolCtor(data, idx, this._seriesScope);\n        el.traverse(updateIncrementalAndHover);\n        el.setPosition(point);\n        this.group.add(el);\n        data.setItemGraphicEl(idx, el);\n      }\n    }\n  };\n\n  ;\n\n  SymbolDraw.prototype.remove = function (enableAnimation) {\n    var group = this.group;\n    var data = this._data;\n\n    if (data && enableAnimation) {\n      data.eachItemGraphicEl(function (el) {\n        el.fadeOut(function () {\n          group.remove(el);\n        });\n      });\n    } else {\n      group.removeAll();\n    }\n  };\n\n  ;\n  return SymbolDraw;\n}();\n\nexport default SymbolDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isDimensionStacked } from '../../data/helper/dataStackHelper';\nimport { map } from 'zrender/lib/core/util';\nexport function prepareDataCoordInfo(coordSys, data, valueOrigin) {\n  var baseAxis = coordSys.getBaseAxis();\n  var valueAxis = coordSys.getOtherAxis(baseAxis);\n  var valueStart = getValueStart(valueAxis, valueOrigin);\n  var baseAxisDim = baseAxis.dim;\n  var valueAxisDim = valueAxis.dim;\n  var valueDim = data.mapDimension(valueAxisDim);\n  var baseDim = data.mapDimension(baseAxisDim);\n  var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\n  var dims = map(coordSys.dimensions, function (coordDim) {\n    return data.mapDimension(coordDim);\n  });\n  var stacked = false;\n  var stackResultDim = data.getCalculationInfo('stackResultDimension');\n\n  if (isDimensionStacked(data, dims[0])) {\n    stacked = true;\n    dims[0] = stackResultDim;\n  }\n\n  if (isDimensionStacked(data, dims[1])) {\n    stacked = true;\n    dims[1] = stackResultDim;\n  }\n\n  return {\n    dataDimsForPoint: dims,\n    valueStart: valueStart,\n    valueAxisDim: valueAxisDim,\n    baseAxisDim: baseAxisDim,\n    stacked: !!stacked,\n    valueDim: valueDim,\n    baseDim: baseDim,\n    baseDataOffset: baseDataOffset,\n    stackedOverDimension: data.getCalculationInfo('stackedOverDimension')\n  };\n}\n\nfunction getValueStart(valueAxis, valueOrigin) {\n  var valueStart = 0;\n  var extent = valueAxis.scale.getExtent();\n\n  if (valueOrigin === 'start') {\n    valueStart = extent[0];\n  } else if (valueOrigin === 'end') {\n    valueStart = extent[1];\n  } else {\n    if (extent[0] > 0) {\n      valueStart = extent[0];\n    } else if (extent[1] < 0) {\n      valueStart = extent[1];\n    }\n  }\n\n  return valueStart;\n}\n\nexport function getStackedOnPoint(dataCoordInfo, coordSys, data, idx) {\n  var value = NaN;\n\n  if (dataCoordInfo.stacked) {\n    value = data.get(data.getCalculationInfo('stackedOverDimension'), idx);\n  }\n\n  if (isNaN(value)) {\n    value = dataCoordInfo.valueStart;\n  }\n\n  var baseDataOffset = dataCoordInfo.baseDataOffset;\n  var stackedData = [];\n  stackedData[baseDataOffset] = data.get(dataCoordInfo.baseDim, idx);\n  stackedData[1 - baseDataOffset] = value;\n  return coordSys.dataToPoint(stackedData);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isArray } from 'zrender/lib/core/util';\nvar supportFloat32Array = typeof Float32Array !== 'undefined';\nvar Float32ArrayCtor = !supportFloat32Array ? Array : Float32Array;\nexport function createFloat32Array(arg) {\n  if (isArray(arg)) {\n    return supportFloat32Array ? new Float32Array(arg) : arg;\n  }\n\n  return new Float32ArrayCtor(arg);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { prepareDataCoordInfo, getStackedOnPoint } from './helper';\nimport { createFloat32Array } from '../../util/vendor';\n\nfunction diffData(oldData, newData) {\n  var diffResult = [];\n  newData.diff(oldData).add(function (idx) {\n    diffResult.push({\n      cmd: '+',\n      idx: idx\n    });\n  }).update(function (newIdx, oldIdx) {\n    diffResult.push({\n      cmd: '=',\n      idx: oldIdx,\n      idx1: newIdx\n    });\n  }).remove(function (idx) {\n    diffResult.push({\n      cmd: '-',\n      idx: idx\n    });\n  }).execute();\n  return diffResult;\n}\n\nexport default function lineAnimationDiff(oldData, newData, oldStackedOnPoints, newStackedOnPoints, oldCoordSys, newCoordSys, oldValueOrigin, newValueOrigin) {\n  var diff = diffData(oldData, newData);\n  var currPoints = [];\n  var nextPoints = [];\n  var currStackedPoints = [];\n  var nextStackedPoints = [];\n  var status = [];\n  var sortedIndices = [];\n  var rawIndices = [];\n  var newDataOldCoordInfo = prepareDataCoordInfo(oldCoordSys, newData, oldValueOrigin);\n  var oldDataNewCoordInfo = prepareDataCoordInfo(newCoordSys, oldData, newValueOrigin);\n  var oldPoints = oldData.getLayout('points') || [];\n  var newPoints = newData.getLayout('points') || [];\n\n  for (var i = 0; i < diff.length; i++) {\n    var diffItem = diff[i];\n    var pointAdded = true;\n    var oldIdx2 = void 0;\n    var newIdx2 = void 0;\n\n    switch (diffItem.cmd) {\n      case '=':\n        oldIdx2 = diffItem.idx * 2;\n        newIdx2 = diffItem.idx1 * 2;\n        var currentX = oldPoints[oldIdx2];\n        var currentY = oldPoints[oldIdx2 + 1];\n        var nextX = newPoints[newIdx2];\n        var nextY = newPoints[newIdx2 + 1];\n\n        if (isNaN(currentX) || isNaN(currentY)) {\n          currentX = nextX;\n          currentY = nextY;\n        }\n\n        currPoints.push(currentX, currentY);\n        nextPoints.push(nextX, nextY);\n        currStackedPoints.push(oldStackedOnPoints[oldIdx2], oldStackedOnPoints[oldIdx2 + 1]);\n        nextStackedPoints.push(newStackedOnPoints[newIdx2], newStackedOnPoints[newIdx2 + 1]);\n        rawIndices.push(newData.getRawIndex(diffItem.idx1));\n        break;\n\n      case '+':\n        var newIdx = diffItem.idx;\n        var newDataDimsForPoint = newDataOldCoordInfo.dataDimsForPoint;\n        var oldPt = oldCoordSys.dataToPoint([newData.get(newDataDimsForPoint[0], newIdx), newData.get(newDataDimsForPoint[1], newIdx)]);\n        newIdx2 = newIdx * 2;\n        currPoints.push(oldPt[0], oldPt[1]);\n        nextPoints.push(newPoints[newIdx2], newPoints[newIdx2 + 1]);\n        var stackedOnPoint = getStackedOnPoint(newDataOldCoordInfo, oldCoordSys, newData, newIdx);\n        currStackedPoints.push(stackedOnPoint[0], stackedOnPoint[1]);\n        nextStackedPoints.push(newStackedOnPoints[newIdx2], newStackedOnPoints[newIdx2 + 1]);\n        rawIndices.push(newData.getRawIndex(newIdx));\n        break;\n\n      case '-':\n        var oldIdx = diffItem.idx;\n        var rawIndex = oldData.getRawIndex(oldIdx);\n        var oldDataDimsForPoint = oldDataNewCoordInfo.dataDimsForPoint;\n        oldIdx2 = oldIdx * 2;\n\n        if (rawIndex !== oldIdx) {\n          var newPt = newCoordSys.dataToPoint([oldData.get(oldDataDimsForPoint[0], oldIdx), oldData.get(oldDataDimsForPoint[1], oldIdx)]);\n          var newStackedOnPt = getStackedOnPoint(oldDataNewCoordInfo, newCoordSys, oldData, oldIdx);\n          currPoints.push(oldPoints[oldIdx2], oldPoints[oldIdx2 + 1]);\n          nextPoints.push(newPt[0], newPt[1]);\n          currStackedPoints.push(oldStackedOnPoints[oldIdx2], oldStackedOnPoints[oldIdx2 + 1]);\n          nextStackedPoints.push(newStackedOnPt[0], newStackedOnPt[1]);\n          rawIndices.push(rawIndex);\n        } else {\n          pointAdded = false;\n        }\n\n    }\n\n    if (pointAdded) {\n      status.push(diffItem);\n      sortedIndices.push(sortedIndices.length);\n    }\n  }\n\n  sortedIndices.sort(function (a, b) {\n    return rawIndices[a] - rawIndices[b];\n  });\n  var len = currPoints.length;\n  var sortedCurrPoints = createFloat32Array(len);\n  var sortedNextPoints = createFloat32Array(len);\n  var sortedCurrStackedPoints = createFloat32Array(len);\n  var sortedNextStackedPoints = createFloat32Array(len);\n  var sortedStatus = [];\n\n  for (var i = 0; i < sortedIndices.length; i++) {\n    var idx = sortedIndices[i];\n    var i2 = i * 2;\n    var idx2 = idx * 2;\n    sortedCurrPoints[i2] = currPoints[idx2];\n    sortedCurrPoints[i2 + 1] = currPoints[idx2 + 1];\n    sortedNextPoints[i2] = nextPoints[idx2];\n    sortedNextPoints[i2 + 1] = nextPoints[idx2 + 1];\n    sortedCurrStackedPoints[i2] = currStackedPoints[idx2];\n    sortedCurrStackedPoints[i2 + 1] = currStackedPoints[idx2 + 1];\n    sortedNextStackedPoints[i2] = nextStackedPoints[idx2];\n    sortedNextStackedPoints[i2 + 1] = nextStackedPoints[idx2 + 1];\n    sortedStatus[i] = status[idx];\n  }\n\n  return {\n    current: sortedCurrPoints,\n    next: sortedNextPoints,\n    stackedOnCurrent: sortedCurrStackedPoints,\n    stackedOnNext: sortedNextStackedPoints,\n    status: sortedStatus\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Path from 'zrender/lib/graphic/Path';\nimport PathProxy from 'zrender/lib/core/PathProxy';\nimport { cubicRootAt, cubicAt } from 'zrender/lib/core/curve';\nvar mathMin = Math.min;\nvar mathMax = Math.max;\n\nfunction isPointNull(x, y) {\n  return isNaN(x) || isNaN(y);\n}\n\nfunction drawSegment(ctx, points, start, segLen, allLen, dir, smooth, smoothMonotone, connectNulls) {\n  var prevX;\n  var prevY;\n  var cpx0;\n  var cpy0;\n  var cpx1;\n  var cpy1;\n  var idx = start;\n  var k = 0;\n\n  for (; k < segLen; k++) {\n    var x = points[idx * 2];\n    var y = points[idx * 2 + 1];\n\n    if (idx >= allLen || idx < 0) {\n      break;\n    }\n\n    if (isPointNull(x, y)) {\n      if (connectNulls) {\n        idx += dir;\n        continue;\n      }\n\n      break;\n    }\n\n    if (idx === start) {\n      ctx[dir > 0 ? 'moveTo' : 'lineTo'](x, y);\n      cpx0 = x;\n      cpy0 = y;\n    } else {\n      var dx = x - prevX;\n      var dy = y - prevY;\n\n      if (dx * dx + dy * dy < 0.5) {\n        idx += dir;\n        continue;\n      }\n\n      if (smooth > 0) {\n        var nextIdx = idx + dir;\n        var nextX = points[nextIdx * 2];\n        var nextY = points[nextIdx * 2 + 1];\n        var tmpK = k + 1;\n\n        if (connectNulls) {\n          while (isPointNull(nextX, nextY) && tmpK < segLen) {\n            tmpK++;\n            nextIdx += dir;\n            nextX = points[nextIdx * 2];\n            nextY = points[nextIdx * 2 + 1];\n          }\n        }\n\n        var ratioNextSeg = 0.5;\n        var vx = 0;\n        var vy = 0;\n        var nextCpx0 = void 0;\n        var nextCpy0 = void 0;\n\n        if (tmpK >= segLen || isPointNull(nextX, nextY)) {\n          cpx1 = x;\n          cpy1 = y;\n        } else {\n          vx = nextX - prevX;\n          vy = nextY - prevY;\n          var dx0 = x - prevX;\n          var dx1 = nextX - x;\n          var dy0 = y - prevY;\n          var dy1 = nextY - y;\n          var lenPrevSeg = void 0;\n          var lenNextSeg = void 0;\n\n          if (smoothMonotone === 'x') {\n            lenPrevSeg = Math.abs(dx0);\n            lenNextSeg = Math.abs(dx1);\n            cpx1 = x - lenPrevSeg * smooth;\n            cpy1 = y;\n            nextCpx0 = x + lenPrevSeg * smooth;\n            nextCpy0 = y;\n          } else if (smoothMonotone === 'y') {\n            lenPrevSeg = Math.abs(dy0);\n            lenNextSeg = Math.abs(dy1);\n            cpx1 = x;\n            cpy1 = y - lenPrevSeg * smooth;\n            nextCpx0 = x;\n            nextCpy0 = y + lenPrevSeg * smooth;\n          } else {\n            lenPrevSeg = Math.sqrt(dx0 * dx0 + dy0 * dy0);\n            lenNextSeg = Math.sqrt(dx1 * dx1 + dy1 * dy1);\n            ratioNextSeg = lenNextSeg / (lenNextSeg + lenPrevSeg);\n            cpx1 = x - vx * smooth * (1 - ratioNextSeg);\n            cpy1 = y - vy * smooth * (1 - ratioNextSeg);\n            nextCpx0 = x + vx * smooth * ratioNextSeg;\n            nextCpy0 = y + vy * smooth * ratioNextSeg;\n            nextCpx0 = mathMin(nextCpx0, mathMax(nextX, x));\n            nextCpy0 = mathMin(nextCpy0, mathMax(nextY, y));\n            nextCpx0 = mathMax(nextCpx0, mathMin(nextX, x));\n            nextCpy0 = mathMax(nextCpy0, mathMin(nextY, y));\n            vx = nextCpx0 - x;\n            vy = nextCpy0 - y;\n            cpx1 = x - vx * lenPrevSeg / lenNextSeg;\n            cpy1 = y - vy * lenPrevSeg / lenNextSeg;\n            cpx1 = mathMin(cpx1, mathMax(prevX, x));\n            cpy1 = mathMin(cpy1, mathMax(prevY, y));\n            cpx1 = mathMax(cpx1, mathMin(prevX, x));\n            cpy1 = mathMax(cpy1, mathMin(prevY, y));\n            vx = x - cpx1;\n            vy = y - cpy1;\n            nextCpx0 = x + vx * lenNextSeg / lenPrevSeg;\n            nextCpy0 = y + vy * lenNextSeg / lenPrevSeg;\n          }\n        }\n\n        ctx.bezierCurveTo(cpx0, cpy0, cpx1, cpy1, x, y);\n        cpx0 = nextCpx0;\n        cpy0 = nextCpy0;\n      } else {\n        ctx.lineTo(x, y);\n      }\n    }\n\n    prevX = x;\n    prevY = y;\n    idx += dir;\n  }\n\n  return k;\n}\n\nvar ECPolylineShape = function () {\n  function ECPolylineShape() {\n    this.smooth = 0;\n    this.smoothConstraint = true;\n  }\n\n  return ECPolylineShape;\n}();\n\nvar ECPolyline = function (_super) {\n  __extends(ECPolyline, _super);\n\n  function ECPolyline(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'ec-polyline';\n    return _this;\n  }\n\n  ECPolyline.prototype.getDefaultStyle = function () {\n    return {\n      stroke: '#000',\n      fill: null\n    };\n  };\n\n  ECPolyline.prototype.getDefaultShape = function () {\n    return new ECPolylineShape();\n  };\n\n  ECPolyline.prototype.buildPath = function (ctx, shape) {\n    var points = shape.points;\n    var i = 0;\n    var len = points.length / 2;\n\n    if (shape.connectNulls) {\n      for (; len > 0; len--) {\n        if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n          break;\n        }\n      }\n\n      for (; i < len; i++) {\n        if (!isPointNull(points[i * 2], points[i * 2 + 1])) {\n          break;\n        }\n      }\n    }\n\n    while (i < len) {\n      i += drawSegment(ctx, points, i, len, len, 1, shape.smooth, shape.smoothMonotone, shape.connectNulls) + 1;\n    }\n  };\n\n  ECPolyline.prototype.getPointOn = function (xOrY, dim) {\n    if (!this.path) {\n      this.createPathProxy();\n      this.buildPath(this.path, this.shape);\n    }\n\n    var path = this.path;\n    var data = path.data;\n    var CMD = PathProxy.CMD;\n    var x0;\n    var y0;\n    var isDimX = dim === 'x';\n    var roots = [];\n\n    for (var i = 0; i < data.length;) {\n      var cmd = data[i++];\n      var x = void 0;\n      var y = void 0;\n      var x2 = void 0;\n      var y2 = void 0;\n      var x3 = void 0;\n      var y3 = void 0;\n      var t = void 0;\n\n      switch (cmd) {\n        case CMD.M:\n          x0 = data[i++];\n          y0 = data[i++];\n          break;\n\n        case CMD.L:\n          x = data[i++];\n          y = data[i++];\n          t = isDimX ? (xOrY - x0) / (x - x0) : (xOrY - y0) / (y - y0);\n\n          if (t <= 1 && t >= 0) {\n            var val = isDimX ? (y - y0) * t + y0 : (x - x0) * t + x0;\n            return isDimX ? [xOrY, val] : [val, xOrY];\n          }\n\n          x0 = x;\n          y0 = y;\n          break;\n\n        case CMD.C:\n          x = data[i++];\n          y = data[i++];\n          x2 = data[i++];\n          y2 = data[i++];\n          x3 = data[i++];\n          y3 = data[i++];\n          var nRoot = isDimX ? cubicRootAt(x0, x, x2, x3, xOrY, roots) : cubicRootAt(y0, y, y2, y3, xOrY, roots);\n\n          if (nRoot > 0) {\n            for (var i_1 = 0; i_1 < nRoot; i_1++) {\n              var t_1 = roots[i_1];\n\n              if (t_1 <= 1 && t_1 >= 0) {\n                var val = isDimX ? cubicAt(y0, y, y2, y3, t_1) : cubicAt(x0, x, x2, x3, t_1);\n                return isDimX ? [xOrY, val] : [val, xOrY];\n              }\n            }\n          }\n\n          x0 = x3;\n          y0 = y3;\n          break;\n      }\n    }\n  };\n\n  return ECPolyline;\n}(Path);\n\nexport { ECPolyline };\n\nvar ECPolygonShape = function (_super) {\n  __extends(ECPolygonShape, _super);\n\n  function ECPolygonShape() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  return ECPolygonShape;\n}(ECPolylineShape);\n\nvar ECPolygon = function (_super) {\n  __extends(ECPolygon, _super);\n\n  function ECPolygon(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'ec-polygon';\n    return _this;\n  }\n\n  ECPolygon.prototype.getDefaultShape = function () {\n    return new ECPolygonShape();\n  };\n\n  ECPolygon.prototype.buildPath = function (ctx, shape) {\n    var points = shape.points;\n    var stackedOnPoints = shape.stackedOnPoints;\n    var i = 0;\n    var len = points.length / 2;\n    var smoothMonotone = shape.smoothMonotone;\n\n    if (shape.connectNulls) {\n      for (; len > 0; len--) {\n        if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n          break;\n        }\n      }\n\n      for (; i < len; i++) {\n        if (!isPointNull(points[i * 2], points[i * 2 + 1])) {\n          break;\n        }\n      }\n    }\n\n    while (i < len) {\n      var k = drawSegment(ctx, points, i, len, len, 1, shape.smooth, smoothMonotone, shape.connectNulls);\n      drawSegment(ctx, stackedOnPoints, i + k - 1, k, len, -1, shape.stackedOnSmooth, smoothMonotone, shape.connectNulls);\n      i += k + 1;\n      ctx.closePath();\n    }\n  };\n\n  return ECPolygon;\n}(Path);\n\nexport { ECPolygon };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as graphic from '../../util/graphic';\nimport { round } from '../../util/number';\n\nfunction createGridClipPath(cartesian, hasAnimation, seriesModel, done, during) {\n  var rect = cartesian.getArea();\n  var x = rect.x;\n  var y = rect.y;\n  var width = rect.width;\n  var height = rect.height;\n  var lineWidth = seriesModel.get(['lineStyle', 'width']) || 2;\n  x -= lineWidth / 2;\n  y -= lineWidth / 2;\n  width += lineWidth;\n  height += lineWidth;\n  x = Math.floor(x);\n  width = Math.round(width);\n  var clipPath = new graphic.Rect({\n    shape: {\n      x: x,\n      y: y,\n      width: width,\n      height: height\n    }\n  });\n\n  if (hasAnimation) {\n    var baseAxis = cartesian.getBaseAxis();\n    var isHorizontal = baseAxis.isHorizontal();\n    var isAxisInversed = baseAxis.inverse;\n\n    if (isHorizontal) {\n      if (isAxisInversed) {\n        clipPath.shape.x += width;\n      }\n\n      clipPath.shape.width = 0;\n    } else {\n      if (!isAxisInversed) {\n        clipPath.shape.y += height;\n      }\n\n      clipPath.shape.height = 0;\n    }\n\n    var duringCb = typeof during === 'function' ? function (percent) {\n      during(percent, clipPath);\n    } : null;\n    graphic.initProps(clipPath, {\n      shape: {\n        width: width,\n        height: height,\n        x: x,\n        y: y\n      }\n    }, seriesModel, null, done, duringCb);\n  }\n\n  return clipPath;\n}\n\nfunction createPolarClipPath(polar, hasAnimation, seriesModel) {\n  var sectorArea = polar.getArea();\n  var r0 = round(sectorArea.r0, 1);\n  var r = round(sectorArea.r, 1);\n  var clipPath = new graphic.Sector({\n    shape: {\n      cx: round(polar.cx, 1),\n      cy: round(polar.cy, 1),\n      r0: r0,\n      r: r,\n      startAngle: sectorArea.startAngle,\n      endAngle: sectorArea.endAngle,\n      clockwise: sectorArea.clockwise\n    }\n  });\n\n  if (hasAnimation) {\n    var isRadial = polar.getBaseAxis().dim === 'angle';\n\n    if (isRadial) {\n      clipPath.shape.endAngle = sectorArea.startAngle;\n    } else {\n      clipPath.shape.r = r0;\n    }\n\n    graphic.initProps(clipPath, {\n      shape: {\n        endAngle: sectorArea.endAngle,\n        r: r\n      }\n    }, seriesModel);\n  }\n\n  return clipPath;\n}\n\nfunction createClipPath(coordSys, hasAnimation, seriesModel, done, during) {\n  if (!coordSys) {\n    return null;\n  } else if (coordSys.type === 'polar') {\n    return createPolarClipPath(coordSys, hasAnimation, seriesModel);\n  } else if (coordSys.type === 'cartesian2d') {\n    return createGridClipPath(coordSys, hasAnimation, seriesModel, done, during);\n  }\n\n  return null;\n}\n\nexport { createGridClipPath, createPolarClipPath, createClipPath };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function isCoordinateSystemType(coordSys, type) {\n  return coordSys.type === type;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport SymbolDraw from '../helper/SymbolDraw';\nimport SymbolClz from '../helper/Symbol';\nimport lineAnimationDiff from './lineAnimationDiff';\nimport * as graphic from '../../util/graphic';\nimport * as modelUtil from '../../util/model';\nimport { ECPolyline, ECPolygon } from './poly';\nimport ChartView from '../../view/Chart';\nimport { prepareDataCoordInfo, getStackedOnPoint } from './helper';\nimport { createGridClipPath, createPolarClipPath } from '../helper/createClipPathFromCoordSys';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport { setStatesStylesFromModel, setStatesFlag, enableHoverEmphasis } from '../../util/states';\nimport { setLabelStyle, getLabelStatesModels, labelInner } from '../../label/labelStyle';\nimport { getDefaultLabel, getDefaultInterpolatedLabel } from '../helper/labelHelper';\nimport { getECData } from '../../util/innerStore';\nimport { createFloat32Array } from '../../util/vendor';\n\nfunction isPointsSame(points1, points2) {\n  if (points1.length !== points2.length) {\n    return;\n  }\n\n  for (var i = 0; i < points1.length; i++) {\n    if (points1[i] !== points2[i]) {\n      return;\n    }\n  }\n\n  return true;\n}\n\nfunction bboxFromPoints(points) {\n  var minX = Infinity;\n  var minY = Infinity;\n  var maxX = -Infinity;\n  var maxY = -Infinity;\n\n  for (var i = 0; i < points.length;) {\n    var x = points[i++];\n    var y = points[i++];\n\n    if (!isNaN(x)) {\n      minX = Math.min(x, minX);\n      maxX = Math.max(x, maxX);\n    }\n\n    if (!isNaN(y)) {\n      minY = Math.min(y, minY);\n      maxY = Math.max(y, maxY);\n    }\n  }\n\n  return [[minX, minY], [maxX, maxY]];\n}\n\nfunction getBoundingDiff(points1, points2) {\n  var _a = bboxFromPoints(points1),\n      min1 = _a[0],\n      max1 = _a[1];\n\n  var _b = bboxFromPoints(points2),\n      min2 = _b[0],\n      max2 = _b[1];\n\n  return Math.max(Math.abs(min1[0] - min2[0]), Math.abs(min1[1] - min2[1]), Math.abs(max1[0] - max2[0]), Math.abs(max1[1] - max2[1]));\n}\n\nfunction getSmooth(smooth) {\n  return typeof smooth === 'number' ? smooth : smooth ? 0.5 : 0;\n}\n\nfunction getStackedOnPoints(coordSys, data, dataCoordInfo) {\n  if (!dataCoordInfo.valueDim) {\n    return [];\n  }\n\n  var len = data.count();\n  var points = createFloat32Array(len * 2);\n\n  for (var idx = 0; idx < len; idx++) {\n    var pt = getStackedOnPoint(dataCoordInfo, coordSys, data, idx);\n    points[idx * 2] = pt[0];\n    points[idx * 2 + 1] = pt[1];\n  }\n\n  return points;\n}\n\nfunction turnPointsIntoStep(points, coordSys, stepTurnAt) {\n  var baseAxis = coordSys.getBaseAxis();\n  var baseIndex = baseAxis.dim === 'x' || baseAxis.dim === 'radius' ? 0 : 1;\n  var stepPoints = [];\n  var i = 0;\n  var stepPt = [];\n  var pt = [];\n  var nextPt = [];\n\n  for (; i < points.length - 2; i += 2) {\n    nextPt[0] = points[i + 2];\n    nextPt[1] = points[i + 3];\n    pt[0] = points[i];\n    pt[1] = points[i + 1];\n    stepPoints.push(pt[0], pt[1]);\n\n    switch (stepTurnAt) {\n      case 'end':\n        stepPt[baseIndex] = nextPt[baseIndex];\n        stepPt[1 - baseIndex] = pt[1 - baseIndex];\n        stepPoints.push(stepPt[0], stepPt[1]);\n        break;\n\n      case 'middle':\n        var middle = (pt[baseIndex] + nextPt[baseIndex]) / 2;\n        var stepPt2 = [];\n        stepPt[baseIndex] = stepPt2[baseIndex] = middle;\n        stepPt[1 - baseIndex] = pt[1 - baseIndex];\n        stepPt2[1 - baseIndex] = nextPt[1 - baseIndex];\n        stepPoints.push(stepPt[0], stepPt[1]);\n        stepPoints.push(stepPt2[0], stepPt2[1]);\n        break;\n\n      default:\n        stepPt[baseIndex] = pt[baseIndex];\n        stepPt[1 - baseIndex] = nextPt[1 - baseIndex];\n        stepPoints.push(stepPt[0], stepPt[1]);\n    }\n  }\n\n  stepPoints.push(points[i++], points[i++]);\n  return stepPoints;\n}\n\nfunction getVisualGradient(data, coordSys) {\n  var visualMetaList = data.getVisual('visualMeta');\n\n  if (!visualMetaList || !visualMetaList.length || !data.count()) {\n    return;\n  }\n\n  if (coordSys.type !== 'cartesian2d') {\n    if (process.env.NODE_ENV !== 'production') {\n      console.warn('Visual map on line style is only supported on cartesian2d.');\n    }\n\n    return;\n  }\n\n  var coordDim;\n  var visualMeta;\n\n  for (var i = visualMetaList.length - 1; i >= 0; i--) {\n    var dimIndex = visualMetaList[i].dimension;\n    var dimName = data.dimensions[dimIndex];\n    var dimInfo = data.getDimensionInfo(dimName);\n    coordDim = dimInfo && dimInfo.coordDim;\n\n    if (coordDim === 'x' || coordDim === 'y') {\n      visualMeta = visualMetaList[i];\n      break;\n    }\n  }\n\n  if (!visualMeta) {\n    if (process.env.NODE_ENV !== 'production') {\n      console.warn('Visual map on line style only support x or y dimension.');\n    }\n\n    return;\n  }\n\n  var axis = coordSys.getAxis(coordDim);\n  var colorStops = zrUtil.map(visualMeta.stops, function (stop) {\n    return {\n      offset: 0,\n      coord: axis.toGlobalCoord(axis.dataToCoord(stop.value)),\n      color: stop.color\n    };\n  });\n  var stopLen = colorStops.length;\n  var outerColors = visualMeta.outerColors.slice();\n\n  if (stopLen && colorStops[0].coord > colorStops[stopLen - 1].coord) {\n    colorStops.reverse();\n    outerColors.reverse();\n  }\n\n  var tinyExtent = 10;\n  var minCoord = colorStops[0].coord - tinyExtent;\n  var maxCoord = colorStops[stopLen - 1].coord + tinyExtent;\n  var coordSpan = maxCoord - minCoord;\n\n  if (coordSpan < 1e-3) {\n    return 'transparent';\n  }\n\n  zrUtil.each(colorStops, function (stop) {\n    stop.offset = (stop.coord - minCoord) / coordSpan;\n  });\n  colorStops.push({\n    offset: stopLen ? colorStops[stopLen - 1].offset : 0.5,\n    color: outerColors[1] || 'transparent'\n  });\n  colorStops.unshift({\n    offset: stopLen ? colorStops[0].offset : 0.5,\n    color: outerColors[0] || 'transparent'\n  });\n  var gradient = new graphic.LinearGradient(0, 0, 0, 0, colorStops, true);\n  gradient[coordDim] = minCoord;\n  gradient[coordDim + '2'] = maxCoord;\n  return gradient;\n}\n\nfunction getIsIgnoreFunc(seriesModel, data, coordSys) {\n  var showAllSymbol = seriesModel.get('showAllSymbol');\n  var isAuto = showAllSymbol === 'auto';\n\n  if (showAllSymbol && !isAuto) {\n    return;\n  }\n\n  var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\n\n  if (!categoryAxis) {\n    return;\n  }\n\n  if (isAuto && canShowAllSymbolForCategory(categoryAxis, data)) {\n    return;\n  }\n\n  var categoryDataDim = data.mapDimension(categoryAxis.dim);\n  var labelMap = {};\n  zrUtil.each(categoryAxis.getViewLabels(), function (labelItem) {\n    var ordinalNumber = categoryAxis.scale.getRawOrdinalNumber(labelItem.tickValue);\n    labelMap[ordinalNumber] = 1;\n  });\n  return function (dataIndex) {\n    return !labelMap.hasOwnProperty(data.get(categoryDataDim, dataIndex));\n  };\n}\n\nfunction canShowAllSymbolForCategory(categoryAxis, data) {\n  var axisExtent = categoryAxis.getExtent();\n  var availSize = Math.abs(axisExtent[1] - axisExtent[0]) / categoryAxis.scale.count();\n  isNaN(availSize) && (availSize = 0);\n  var dataLen = data.count();\n  var step = Math.max(1, Math.round(dataLen / 5));\n\n  for (var dataIndex = 0; dataIndex < dataLen; dataIndex += step) {\n    if (SymbolClz.getSymbolSize(data, dataIndex)[categoryAxis.isHorizontal() ? 1 : 0] * 1.5 > availSize) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nfunction isPointNull(x, y) {\n  return isNaN(x) || isNaN(y);\n}\n\nfunction getLastIndexNotNull(points) {\n  var len = points.length / 2;\n\n  for (; len > 0; len--) {\n    if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n      break;\n    }\n  }\n\n  return len - 1;\n}\n\nfunction getPointAtIndex(points, idx) {\n  return [points[idx * 2], points[idx * 2 + 1]];\n}\n\nfunction getIndexRange(points, xOrY, dim) {\n  var len = points.length / 2;\n  var dimIdx = dim === 'x' ? 0 : 1;\n  var a;\n  var b;\n  var prevIndex = 0;\n  var nextIndex = -1;\n\n  for (var i = 0; i < len; i++) {\n    b = points[i * 2 + dimIdx];\n\n    if (isNaN(b) || isNaN(points[i * 2 + 1 - dimIdx])) {\n      continue;\n    }\n\n    if (i === 0) {\n      a = b;\n      continue;\n    }\n\n    if (a <= xOrY && b >= xOrY || a >= xOrY && b <= xOrY) {\n      nextIndex = i;\n      break;\n    }\n\n    prevIndex = i;\n    a = b;\n  }\n\n  return {\n    range: [prevIndex, nextIndex],\n    t: (xOrY - a) / (b - a)\n  };\n}\n\nfunction createLineClipPath(lineView, coordSys, hasAnimation, seriesModel) {\n  if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n    var endLabelModel_1 = seriesModel.getModel('endLabel');\n    var showEndLabel = endLabelModel_1.get('show');\n    var valueAnimation_1 = endLabelModel_1.get('valueAnimation');\n    var data_1 = seriesModel.getData();\n    var labelAnimationRecord_1 = {\n      lastFrameIndex: 0\n    };\n    var during = showEndLabel ? function (percent, clipRect) {\n      lineView._endLabelOnDuring(percent, clipRect, data_1, labelAnimationRecord_1, valueAnimation_1, endLabelModel_1, coordSys);\n    } : null;\n    var isHorizontal = coordSys.getBaseAxis().isHorizontal();\n    var clipPath = createGridClipPath(coordSys, hasAnimation, seriesModel, function () {\n      var endLabel = lineView._endLabel;\n\n      if (endLabel && hasAnimation) {\n        if (labelAnimationRecord_1.originalX != null) {\n          endLabel.attr({\n            x: labelAnimationRecord_1.originalX,\n            y: labelAnimationRecord_1.originalY\n          });\n        }\n      }\n    }, during);\n\n    if (!seriesModel.get('clip', true)) {\n      var rectShape = clipPath.shape;\n      var expandSize = Math.max(rectShape.width, rectShape.height);\n\n      if (isHorizontal) {\n        rectShape.y -= expandSize;\n        rectShape.height += expandSize * 2;\n      } else {\n        rectShape.x -= expandSize;\n        rectShape.width += expandSize * 2;\n      }\n    }\n\n    if (during) {\n      during(1, clipPath);\n    }\n\n    return clipPath;\n  } else {\n    if (process.env.NODE_ENV !== 'production') {\n      if (seriesModel.get(['endLabel', 'show'])) {\n        console.warn('endLabel is not supported for lines in polar systems.');\n      }\n    }\n\n    return createPolarClipPath(coordSys, hasAnimation, seriesModel);\n  }\n}\n\nfunction getEndLabelStateSpecified(endLabelModel, coordSys) {\n  var baseAxis = coordSys.getBaseAxis();\n  var isHorizontal = baseAxis.isHorizontal();\n  var isBaseInversed = baseAxis.inverse;\n  var align = isHorizontal ? isBaseInversed ? 'right' : 'left' : 'center';\n  var verticalAlign = isHorizontal ? 'middle' : isBaseInversed ? 'top' : 'bottom';\n  return {\n    normal: {\n      align: endLabelModel.get('align') || align,\n      verticalAlign: endLabelModel.get('verticalAlign') || verticalAlign\n    }\n  };\n}\n\nvar LineView = function (_super) {\n  __extends(LineView, _super);\n\n  function LineView() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  LineView.prototype.init = function () {\n    var lineGroup = new graphic.Group();\n    var symbolDraw = new SymbolDraw();\n    this.group.add(symbolDraw.group);\n    this._symbolDraw = symbolDraw;\n    this._lineGroup = lineGroup;\n  };\n\n  LineView.prototype.render = function (seriesModel, ecModel, api) {\n    var _this = this;\n\n    var coordSys = seriesModel.coordinateSystem;\n    var group = this.group;\n    var data = seriesModel.getData();\n    var lineStyleModel = seriesModel.getModel('lineStyle');\n    var areaStyleModel = seriesModel.getModel('areaStyle');\n    var points = data.getLayout('points') || [];\n    var isCoordSysPolar = coordSys.type === 'polar';\n    var prevCoordSys = this._coordSys;\n    var symbolDraw = this._symbolDraw;\n    var polyline = this._polyline;\n    var polygon = this._polygon;\n    var lineGroup = this._lineGroup;\n    var hasAnimation = seriesModel.get('animation');\n    var isAreaChart = !areaStyleModel.isEmpty();\n    var valueOrigin = areaStyleModel.get('origin');\n    var dataCoordInfo = prepareDataCoordInfo(coordSys, data, valueOrigin);\n    var stackedOnPoints = isAreaChart && getStackedOnPoints(coordSys, data, dataCoordInfo);\n    var showSymbol = seriesModel.get('showSymbol');\n    var isIgnoreFunc = showSymbol && !isCoordSysPolar && getIsIgnoreFunc(seriesModel, data, coordSys);\n    var oldData = this._data;\n    oldData && oldData.eachItemGraphicEl(function (el, idx) {\n      if (el.__temp) {\n        group.remove(el);\n        oldData.setItemGraphicEl(idx, null);\n      }\n    });\n\n    if (!showSymbol) {\n      symbolDraw.remove();\n    }\n\n    group.add(lineGroup);\n    var step = !isCoordSysPolar ? seriesModel.get('step') : false;\n    var clipShapeForSymbol;\n\n    if (coordSys && coordSys.getArea && seriesModel.get('clip', true)) {\n      clipShapeForSymbol = coordSys.getArea();\n\n      if (clipShapeForSymbol.width != null) {\n        clipShapeForSymbol.x -= 0.1;\n        clipShapeForSymbol.y -= 0.1;\n        clipShapeForSymbol.width += 0.2;\n        clipShapeForSymbol.height += 0.2;\n      } else if (clipShapeForSymbol.r0) {\n        clipShapeForSymbol.r0 -= 0.5;\n        clipShapeForSymbol.r += 0.5;\n      }\n    }\n\n    this._clipShapeForSymbol = clipShapeForSymbol;\n\n    if (!(polyline && prevCoordSys.type === coordSys.type && step === this._step)) {\n      showSymbol && symbolDraw.updateData(data, {\n        isIgnore: isIgnoreFunc,\n        clipShape: clipShapeForSymbol,\n        disableAnimation: true,\n        getSymbolPoint: function (idx) {\n          return [points[idx * 2], points[idx * 2 + 1]];\n        }\n      });\n      hasAnimation && this._initSymbolLabelAnimation(data, coordSys, clipShapeForSymbol);\n\n      if (step) {\n        points = turnPointsIntoStep(points, coordSys, step);\n\n        if (stackedOnPoints) {\n          stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\n        }\n      }\n\n      polyline = this._newPolyline(points);\n\n      if (isAreaChart) {\n        polygon = this._newPolygon(points, stackedOnPoints);\n      }\n\n      if (!isCoordSysPolar) {\n        this._initOrUpdateEndLabel(seriesModel, coordSys);\n      }\n\n      lineGroup.setClipPath(createLineClipPath(this, coordSys, true, seriesModel));\n    } else {\n      if (isAreaChart && !polygon) {\n        polygon = this._newPolygon(points, stackedOnPoints);\n      } else if (polygon && !isAreaChart) {\n        lineGroup.remove(polygon);\n        polygon = this._polygon = null;\n      }\n\n      if (!isCoordSysPolar) {\n        this._initOrUpdateEndLabel(seriesModel, coordSys);\n      }\n\n      lineGroup.setClipPath(createLineClipPath(this, coordSys, false, seriesModel));\n      showSymbol && symbolDraw.updateData(data, {\n        isIgnore: isIgnoreFunc,\n        clipShape: clipShapeForSymbol,\n        disableAnimation: true,\n        getSymbolPoint: function (idx) {\n          return [points[idx * 2], points[idx * 2 + 1]];\n        }\n      });\n\n      if (!isPointsSame(this._stackedOnPoints, stackedOnPoints) || !isPointsSame(this._points, points)) {\n        if (hasAnimation) {\n          this._doUpdateAnimation(data, stackedOnPoints, coordSys, api, step, valueOrigin);\n        } else {\n          if (step) {\n            points = turnPointsIntoStep(points, coordSys, step);\n\n            if (stackedOnPoints) {\n              stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\n            }\n          }\n\n          polyline.setShape({\n            points: points\n          });\n          polygon && polygon.setShape({\n            points: points,\n            stackedOnPoints: stackedOnPoints\n          });\n        }\n      }\n    }\n\n    var visualColor = getVisualGradient(data, coordSys) || data.getVisual('style')[data.getVisual('drawType')];\n    var focus = seriesModel.get(['emphasis', 'focus']);\n    var blurScope = seriesModel.get(['emphasis', 'blurScope']);\n    polyline.useStyle(zrUtil.defaults(lineStyleModel.getLineStyle(), {\n      fill: 'none',\n      stroke: visualColor,\n      lineJoin: 'bevel'\n    }));\n    setStatesStylesFromModel(polyline, seriesModel, 'lineStyle');\n\n    if (polyline.style.lineWidth > 0 && seriesModel.get(['emphasis', 'lineStyle', 'width']) === 'bolder') {\n      var emphasisLineStyle = polyline.getState('emphasis').style;\n      emphasisLineStyle.lineWidth = polyline.style.lineWidth + 1;\n    }\n\n    getECData(polyline).seriesIndex = seriesModel.seriesIndex;\n    enableHoverEmphasis(polyline, focus, blurScope);\n    var smooth = getSmooth(seriesModel.get('smooth'));\n    var smoothMonotone = seriesModel.get('smoothMonotone');\n    var connectNulls = seriesModel.get('connectNulls');\n    polyline.setShape({\n      smooth: smooth,\n      smoothMonotone: smoothMonotone,\n      connectNulls: connectNulls\n    });\n\n    if (polygon) {\n      var stackedOnSeries = data.getCalculationInfo('stackedOnSeries');\n      var stackedOnSmooth = 0;\n      polygon.useStyle(zrUtil.defaults(areaStyleModel.getAreaStyle(), {\n        fill: visualColor,\n        opacity: 0.7,\n        lineJoin: 'bevel',\n        decal: data.getVisual('style').decal\n      }));\n\n      if (stackedOnSeries) {\n        stackedOnSmooth = getSmooth(stackedOnSeries.get('smooth'));\n      }\n\n      polygon.setShape({\n        smooth: smooth,\n        stackedOnSmooth: stackedOnSmooth,\n        smoothMonotone: smoothMonotone,\n        connectNulls: connectNulls\n      });\n      setStatesStylesFromModel(polygon, seriesModel, 'areaStyle');\n      getECData(polygon).seriesIndex = seriesModel.seriesIndex;\n      enableHoverEmphasis(polygon, focus, blurScope);\n    }\n\n    var changePolyState = function (toState) {\n      _this._changePolyState(toState);\n    };\n\n    data.eachItemGraphicEl(function (el) {\n      el && (el.onHoverStateChange = changePolyState);\n    });\n    this._polyline.onHoverStateChange = changePolyState;\n    this._data = data;\n    this._coordSys = coordSys;\n    this._stackedOnPoints = stackedOnPoints;\n    this._points = points;\n    this._step = step;\n    this._valueOrigin = valueOrigin;\n  };\n\n  LineView.prototype.dispose = function () {};\n\n  LineView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\n    var data = seriesModel.getData();\n    var dataIndex = modelUtil.queryDataIndex(data, payload);\n\n    this._changePolyState('emphasis');\n\n    if (!(dataIndex instanceof Array) && dataIndex != null && dataIndex >= 0) {\n      var points = data.getLayout('points');\n      var symbol = data.getItemGraphicEl(dataIndex);\n\n      if (!symbol) {\n        var x = points[dataIndex * 2];\n        var y = points[dataIndex * 2 + 1];\n\n        if (isNaN(x) || isNaN(y)) {\n          return;\n        }\n\n        if (this._clipShapeForSymbol && !this._clipShapeForSymbol.contain(x, y)) {\n          return;\n        }\n\n        symbol = new SymbolClz(data, dataIndex);\n        symbol.x = x;\n        symbol.y = y;\n        symbol.setZ(seriesModel.get('zlevel'), seriesModel.get('z'));\n        symbol.__temp = true;\n        data.setItemGraphicEl(dataIndex, symbol);\n        symbol.stopSymbolAnimation(true);\n        this.group.add(symbol);\n      }\n\n      symbol.highlight();\n    } else {\n      ChartView.prototype.highlight.call(this, seriesModel, ecModel, api, payload);\n    }\n  };\n\n  LineView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\n    var data = seriesModel.getData();\n    var dataIndex = modelUtil.queryDataIndex(data, payload);\n\n    this._changePolyState('normal');\n\n    if (dataIndex != null && dataIndex >= 0) {\n      var symbol = data.getItemGraphicEl(dataIndex);\n\n      if (symbol) {\n        if (symbol.__temp) {\n          data.setItemGraphicEl(dataIndex, null);\n          this.group.remove(symbol);\n        } else {\n          symbol.downplay();\n        }\n      }\n    } else {\n      ChartView.prototype.downplay.call(this, seriesModel, ecModel, api, payload);\n    }\n  };\n\n  LineView.prototype._changePolyState = function (toState) {\n    var polygon = this._polygon;\n    setStatesFlag(this._polyline, toState);\n    polygon && setStatesFlag(polygon, toState);\n  };\n\n  LineView.prototype._newPolyline = function (points) {\n    var polyline = this._polyline;\n\n    if (polyline) {\n      this._lineGroup.remove(polyline);\n    }\n\n    polyline = new ECPolyline({\n      shape: {\n        points: points\n      },\n      segmentIgnoreThreshold: 2,\n      z2: 10\n    });\n\n    this._lineGroup.add(polyline);\n\n    this._polyline = polyline;\n    return polyline;\n  };\n\n  LineView.prototype._newPolygon = function (points, stackedOnPoints) {\n    var polygon = this._polygon;\n\n    if (polygon) {\n      this._lineGroup.remove(polygon);\n    }\n\n    polygon = new ECPolygon({\n      shape: {\n        points: points,\n        stackedOnPoints: stackedOnPoints\n      },\n      segmentIgnoreThreshold: 2\n    });\n\n    this._lineGroup.add(polygon);\n\n    this._polygon = polygon;\n    return polygon;\n  };\n\n  LineView.prototype._initSymbolLabelAnimation = function (data, coordSys, clipShape) {\n    var isHorizontalOrRadial;\n    var isCoordSysPolar;\n    var baseAxis = coordSys.getBaseAxis();\n    var isAxisInverse = baseAxis.inverse;\n\n    if (coordSys.type === 'cartesian2d') {\n      isHorizontalOrRadial = baseAxis.isHorizontal();\n      isCoordSysPolar = false;\n    } else if (coordSys.type === 'polar') {\n      isHorizontalOrRadial = baseAxis.dim === 'angle';\n      isCoordSysPolar = true;\n    }\n\n    var seriesModel = data.hostModel;\n    var seriesDuration = seriesModel.get('animationDuration');\n\n    if (typeof seriesDuration === 'function') {\n      seriesDuration = seriesDuration(null);\n    }\n\n    var seriesDalay = seriesModel.get('animationDelay') || 0;\n    var seriesDalayValue = typeof seriesDalay === 'function' ? seriesDalay(null) : seriesDalay;\n    data.eachItemGraphicEl(function (symbol, idx) {\n      var el = symbol;\n\n      if (el) {\n        var point = [symbol.x, symbol.y];\n        var start = void 0;\n        var end = void 0;\n        var current = void 0;\n\n        if (isCoordSysPolar) {\n          var polarClip = clipShape;\n          var coord = coordSys.pointToCoord(point);\n\n          if (isHorizontalOrRadial) {\n            start = polarClip.startAngle;\n            end = polarClip.endAngle;\n            current = -coord[1] / 180 * Math.PI;\n          } else {\n            start = polarClip.r0;\n            end = polarClip.r;\n            current = coord[0];\n          }\n        } else {\n          var gridClip = clipShape;\n\n          if (isHorizontalOrRadial) {\n            start = gridClip.x;\n            end = gridClip.x + gridClip.width;\n            current = symbol.x;\n          } else {\n            start = gridClip.y + gridClip.height;\n            end = gridClip.y;\n            current = symbol.y;\n          }\n        }\n\n        var ratio = end === start ? 0 : (current - start) / (end - start);\n\n        if (isAxisInverse) {\n          ratio = 1 - ratio;\n        }\n\n        var delay = typeof seriesDalay === 'function' ? seriesDalay(idx) : seriesDuration * ratio + seriesDalayValue;\n        var symbolPath = el.getSymbolPath();\n        var text = symbolPath.getTextContent();\n        el.attr({\n          scaleX: 0,\n          scaleY: 0\n        });\n        el.animateTo({\n          scaleX: 1,\n          scaleY: 1\n        }, {\n          duration: 200,\n          delay: delay\n        });\n\n        if (text) {\n          text.animateFrom({\n            style: {\n              opacity: 0\n            }\n          }, {\n            duration: 300,\n            delay: delay\n          });\n        }\n\n        symbolPath.disableLabelAnimation = true;\n      }\n    });\n  };\n\n  LineView.prototype._initOrUpdateEndLabel = function (seriesModel, coordSys) {\n    var endLabelModel = seriesModel.getModel('endLabel');\n\n    if (endLabelModel.get('show')) {\n      var data_2 = seriesModel.getData();\n      var polyline = this._polyline;\n      var endLabel = this._endLabel;\n\n      if (!endLabel) {\n        endLabel = this._endLabel = new graphic.Text({\n          z2: 200\n        });\n        endLabel.ignoreClip = true;\n        polyline.setTextContent(this._endLabel);\n        polyline.disableLabelAnimation = true;\n      }\n\n      var dataIndex = getLastIndexNotNull(data_2.getLayout('points'));\n\n      if (dataIndex >= 0) {\n        setLabelStyle(polyline, getLabelStatesModels(seriesModel, 'endLabel'), {\n          labelFetcher: seriesModel,\n          labelDataIndex: dataIndex,\n          defaultText: function (dataIndex, opt, interpolatedValue) {\n            return interpolatedValue != null ? getDefaultInterpolatedLabel(data_2, interpolatedValue) : getDefaultLabel(data_2, dataIndex);\n          },\n          enableTextSetter: true\n        }, getEndLabelStateSpecified(endLabelModel, coordSys));\n        polyline.textConfig.position = null;\n      }\n    } else if (this._endLabel) {\n      this._polyline.removeTextContent();\n\n      this._endLabel = null;\n    }\n  };\n\n  LineView.prototype._endLabelOnDuring = function (percent, clipRect, data, animationRecord, valueAnimation, endLabelModel, coordSys) {\n    var endLabel = this._endLabel;\n    var polyline = this._polyline;\n\n    if (endLabel) {\n      if (percent < 1 && animationRecord.originalX == null) {\n        animationRecord.originalX = endLabel.x;\n        animationRecord.originalY = endLabel.y;\n      }\n\n      var points = data.getLayout('points');\n      var seriesModel = data.hostModel;\n      var connectNulls = seriesModel.get('connectNulls');\n      var precision = endLabelModel.get('precision');\n      var distance = endLabelModel.get('distance') || 0;\n      var baseAxis = coordSys.getBaseAxis();\n      var isHorizontal = baseAxis.isHorizontal();\n      var isBaseInversed = baseAxis.inverse;\n      var clipShape = clipRect.shape;\n      var xOrY = isBaseInversed ? isHorizontal ? clipShape.x : clipShape.y + clipShape.height : isHorizontal ? clipShape.x + clipShape.width : clipShape.y;\n      var distanceX = (isHorizontal ? distance : 0) * (isBaseInversed ? -1 : 1);\n      var distanceY = (isHorizontal ? 0 : -distance) * (isBaseInversed ? -1 : 1);\n      var dim = isHorizontal ? 'x' : 'y';\n      var dataIndexRange = getIndexRange(points, xOrY, dim);\n      var indices = dataIndexRange.range;\n      var diff = indices[1] - indices[0];\n      var value = void 0;\n\n      if (diff >= 1) {\n        if (diff > 1 && !connectNulls) {\n          var pt = getPointAtIndex(points, indices[0]);\n          endLabel.attr({\n            x: pt[0] + distanceX,\n            y: pt[1] + distanceY\n          });\n          valueAnimation && (value = seriesModel.getRawValue(indices[0]));\n        } else {\n          var pt = polyline.getPointOn(xOrY, dim);\n          pt && endLabel.attr({\n            x: pt[0] + distanceX,\n            y: pt[1] + distanceY\n          });\n          var startValue = seriesModel.getRawValue(indices[0]);\n          var endValue = seriesModel.getRawValue(indices[1]);\n          valueAnimation && (value = modelUtil.interpolateRawValues(data, precision, startValue, endValue, dataIndexRange.t));\n        }\n\n        animationRecord.lastFrameIndex = indices[0];\n      } else {\n        var idx = percent === 1 || animationRecord.lastFrameIndex > 0 ? indices[0] : 0;\n        var pt = getPointAtIndex(points, idx);\n        valueAnimation && (value = seriesModel.getRawValue(idx));\n        endLabel.attr({\n          x: pt[0] + distanceX,\n          y: pt[1] + distanceY\n        });\n      }\n\n      if (valueAnimation) {\n        labelInner(endLabel).setLabelText(value);\n      }\n    }\n  };\n\n  LineView.prototype._doUpdateAnimation = function (data, stackedOnPoints, coordSys, api, step, valueOrigin) {\n    var polyline = this._polyline;\n    var polygon = this._polygon;\n    var seriesModel = data.hostModel;\n    var diff = lineAnimationDiff(this._data, data, this._stackedOnPoints, stackedOnPoints, this._coordSys, coordSys, this._valueOrigin, valueOrigin);\n    var current = diff.current;\n    var stackedOnCurrent = diff.stackedOnCurrent;\n    var next = diff.next;\n    var stackedOnNext = diff.stackedOnNext;\n\n    if (step) {\n      current = turnPointsIntoStep(diff.current, coordSys, step);\n      stackedOnCurrent = turnPointsIntoStep(diff.stackedOnCurrent, coordSys, step);\n      next = turnPointsIntoStep(diff.next, coordSys, step);\n      stackedOnNext = turnPointsIntoStep(diff.stackedOnNext, coordSys, step);\n    }\n\n    if (getBoundingDiff(current, next) > 3000 || polygon && getBoundingDiff(stackedOnCurrent, stackedOnNext) > 3000) {\n      polyline.setShape({\n        points: next\n      });\n\n      if (polygon) {\n        polygon.setShape({\n          points: next,\n          stackedOnPoints: stackedOnNext\n        });\n      }\n\n      return;\n    }\n\n    polyline.shape.__points = diff.current;\n    polyline.shape.points = current;\n    var target = {\n      shape: {\n        points: next\n      }\n    };\n\n    if (diff.current !== current) {\n      target.shape.__points = diff.next;\n    }\n\n    polyline.stopAnimation();\n    graphic.updateProps(polyline, target, seriesModel);\n\n    if (polygon) {\n      polygon.setShape({\n        points: current,\n        stackedOnPoints: stackedOnCurrent\n      });\n      polygon.stopAnimation();\n      graphic.updateProps(polygon, {\n        shape: {\n          stackedOnPoints: stackedOnNext\n        }\n      }, seriesModel);\n\n      if (polyline.shape.points !== polygon.shape.points) {\n        polygon.shape.points = polyline.shape.points;\n      }\n    }\n\n    var updatedDataInfo = [];\n    var diffStatus = diff.status;\n\n    for (var i = 0; i < diffStatus.length; i++) {\n      var cmd = diffStatus[i].cmd;\n\n      if (cmd === '=') {\n        var el = data.getItemGraphicEl(diffStatus[i].idx1);\n\n        if (el) {\n          updatedDataInfo.push({\n            el: el,\n            ptIdx: i\n          });\n        }\n      }\n    }\n\n    if (polyline.animators && polyline.animators.length) {\n      polyline.animators[0].during(function () {\n        polygon && polygon.dirtyShape();\n        var points = polyline.shape.__points;\n\n        for (var i = 0; i < updatedDataInfo.length; i++) {\n          var el = updatedDataInfo[i].el;\n          var offset = updatedDataInfo[i].ptIdx * 2;\n          el.x = points[offset];\n          el.y = points[offset + 1];\n          el.markRedraw();\n        }\n      });\n    }\n  };\n\n  LineView.prototype.remove = function (ecModel) {\n    var group = this.group;\n    var oldData = this._data;\n\n    this._lineGroup.removeAll();\n\n    this._symbolDraw.remove(true);\n\n    oldData && oldData.eachItemGraphicEl(function (el, idx) {\n      if (el.__temp) {\n        group.remove(el);\n        oldData.setItemGraphicEl(idx, null);\n      }\n    });\n    this._polyline = this._polygon = this._coordSys = this._points = this._stackedOnPoints = this._endLabel = this._data = null;\n  };\n\n  LineView.type = 'line';\n  return LineView;\n}(ChartView);\n\nexport default LineView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { map } from 'zrender/lib/core/util';\nimport createRenderPlanner from '../chart/helper/createRenderPlanner';\nimport { isDimensionStacked } from '../data/helper/dataStackHelper';\nimport { createFloat32Array } from '../util/vendor';\nexport default function pointsLayout(seriesType, forceStoreInTypedArray) {\n  return {\n    seriesType: seriesType,\n    plan: createRenderPlanner(),\n    reset: function (seriesModel) {\n      var data = seriesModel.getData();\n      var coordSys = seriesModel.coordinateSystem;\n      var pipelineContext = seriesModel.pipelineContext;\n      var useTypedArray = forceStoreInTypedArray || pipelineContext.large;\n\n      if (!coordSys) {\n        return;\n      }\n\n      var dims = map(coordSys.dimensions, function (dim) {\n        return data.mapDimension(dim);\n      }).slice(0, 2);\n      var dimLen = dims.length;\n      var stackResultDim = data.getCalculationInfo('stackResultDimension');\n\n      if (isDimensionStacked(data, dims[0])) {\n        dims[0] = stackResultDim;\n      }\n\n      if (isDimensionStacked(data, dims[1])) {\n        dims[1] = stackResultDim;\n      }\n\n      var dimInfo0 = data.getDimensionInfo(dims[0]);\n      var dimInfo1 = data.getDimensionInfo(dims[1]);\n      var dimIdx0 = dimInfo0 && dimInfo0.index;\n      var dimIdx1 = dimInfo1 && dimInfo1.index;\n      return dimLen && {\n        progress: function (params, data) {\n          var segCount = params.end - params.start;\n          var points = useTypedArray && createFloat32Array(segCount * dimLen);\n          var tmpIn = [];\n          var tmpOut = [];\n\n          for (var i = params.start, offset = 0; i < params.end; i++) {\n            var point = void 0;\n\n            if (dimLen === 1) {\n              var x = data.getByDimIdx(dimIdx0, i);\n              point = coordSys.dataToPoint(x, null, tmpOut);\n            } else {\n              tmpIn[0] = data.getByDimIdx(dimIdx0, i);\n              tmpIn[1] = data.getByDimIdx(dimIdx1, i);\n              point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n            }\n\n            if (useTypedArray) {\n              points[offset++] = point[0];\n              points[offset++] = point[1];\n            } else {\n              data.setItemLayout(i, point.slice());\n            }\n          }\n\n          useTypedArray && data.setLayout('points', points);\n        }\n      };\n    }\n  };\n}\n;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar samplers = {\n  average: function (frame) {\n    var sum = 0;\n    var count = 0;\n\n    for (var i = 0; i < frame.length; i++) {\n      if (!isNaN(frame[i])) {\n        sum += frame[i];\n        count++;\n      }\n    }\n\n    return count === 0 ? NaN : sum / count;\n  },\n  sum: function (frame) {\n    var sum = 0;\n\n    for (var i = 0; i < frame.length; i++) {\n      sum += frame[i] || 0;\n    }\n\n    return sum;\n  },\n  max: function (frame) {\n    var max = -Infinity;\n\n    for (var i = 0; i < frame.length; i++) {\n      frame[i] > max && (max = frame[i]);\n    }\n\n    return isFinite(max) ? max : NaN;\n  },\n  min: function (frame) {\n    var min = Infinity;\n\n    for (var i = 0; i < frame.length; i++) {\n      frame[i] < min && (min = frame[i]);\n    }\n\n    return isFinite(min) ? min : NaN;\n  },\n  nearest: function (frame) {\n    return frame[0];\n  }\n};\n\nvar indexSampler = function (frame) {\n  return Math.round(frame.length / 2);\n};\n\nexport default function dataSample(seriesType) {\n  return {\n    seriesType: seriesType,\n    reset: function (seriesModel, ecModel, api) {\n      var data = seriesModel.getData();\n      var sampling = seriesModel.get('sampling');\n      var coordSys = seriesModel.coordinateSystem;\n      var count = data.count();\n\n      if (count > 10 && coordSys.type === 'cartesian2d' && sampling) {\n        var baseAxis = coordSys.getBaseAxis();\n        var valueAxis = coordSys.getOtherAxis(baseAxis);\n        var extent = baseAxis.getExtent();\n        var dpr = api.getDevicePixelRatio();\n        var size = Math.abs(extent[1] - extent[0]) * (dpr || 1);\n        var rate = Math.round(count / size);\n\n        if (rate > 1) {\n          if (sampling === 'lttb') {\n            seriesModel.setData(data.lttbDownSample(data.mapDimension(valueAxis.dim), 1 / rate));\n          }\n\n          var sampler = void 0;\n\n          if (typeof sampling === 'string') {\n            sampler = samplers[sampling];\n          } else if (typeof sampling === 'function') {\n            sampler = sampling;\n          }\n\n          if (sampler) {\n            seriesModel.setData(data.downSample(data.mapDimension(valueAxis.dim), 1 / rate, sampler, indexSampler));\n          }\n        }\n      }\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport LineSeries from './LineSeries';\nimport LineView from './LineView';\nimport layoutPoints from '../../layout/points';\nimport dataSample from '../../processor/dataSample';\nexport function install(registers) {\n  registers.registerChartView(LineView);\n  registers.registerSeriesModel(LineSeries);\n  registers.registerLayout(layoutPoints('line', true));\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, dataSample('line'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport createListFromArray from '../helper/createListFromArray';\n\nvar BaseBarSeriesModel = function (_super) {\n  __extends(BaseBarSeriesModel, _super);\n\n  function BaseBarSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BaseBarSeriesModel.type;\n    return _this;\n  }\n\n  BaseBarSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: true\n    });\n  };\n\n  BaseBarSeriesModel.prototype.getMarkerPosition = function (value) {\n    var coordSys = this.coordinateSystem;\n\n    if (coordSys) {\n      var pt = coordSys.dataToPoint(coordSys.clampData(value));\n      var data = this.getData();\n      var offset = data.getLayout('offset');\n      var size = data.getLayout('size');\n      var offsetIndex = coordSys.getBaseAxis().isHorizontal() ? 0 : 1;\n      pt[offsetIndex] += offset + size / 2;\n      return pt;\n    }\n\n    return [NaN, NaN];\n  };\n\n  BaseBarSeriesModel.type = 'series.__base_bar__';\n  BaseBarSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'cartesian2d',\n    legendHoverLink: true,\n    barMinHeight: 0,\n    barMinAngle: 0,\n    large: false,\n    largeThreshold: 400,\n    progressive: 3e3,\n    progressiveChunkMode: 'mod'\n  };\n  return BaseBarSeriesModel;\n}(SeriesModel);\n\nSeriesModel.registerClass(BaseBarSeriesModel);\nexport default BaseBarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BaseBarSeriesModel from './BaseBarSeries';\nimport createListFromArray from '../helper/createListFromArray';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar BarSeriesModel = function (_super) {\n  __extends(BarSeriesModel, _super);\n\n  function BarSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BarSeriesModel.type;\n    return _this;\n  }\n\n  BarSeriesModel.prototype.getInitialData = function () {\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: true,\n      createInvertedIndices: !!this.get('realtimeSort', true) || null\n    });\n  };\n\n  BarSeriesModel.prototype.getProgressive = function () {\n    return this.get('large') ? this.get('progressive') : false;\n  };\n\n  BarSeriesModel.prototype.getProgressiveThreshold = function () {\n    var progressiveThreshold = this.get('progressiveThreshold');\n    var largeThreshold = this.get('largeThreshold');\n\n    if (largeThreshold > progressiveThreshold) {\n      progressiveThreshold = largeThreshold;\n    }\n\n    return progressiveThreshold;\n  };\n\n  BarSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n    return selectors.rect(data.getItemLayout(dataIndex));\n  };\n\n  BarSeriesModel.type = 'series.bar';\n  BarSeriesModel.dependencies = ['grid', 'polar'];\n  BarSeriesModel.defaultOption = inheritDefaultOption(BaseBarSeriesModel.defaultOption, {\n    clip: true,\n    roundCap: false,\n    showBackground: false,\n    backgroundStyle: {\n      color: 'rgba(180, 180, 180, 0.2)',\n      borderColor: null,\n      borderWidth: 0,\n      borderType: 'solid',\n      borderRadius: 0,\n      shadowBlur: 0,\n      shadowColor: null,\n      shadowOffsetX: 0,\n      shadowOffsetY: 0,\n      opacity: 1\n    },\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    },\n    realtimeSort: false\n  });\n  return BarSeriesModel;\n}(BaseBarSeriesModel);\n\nexport default BarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { Path } from '../graphic';\n\nvar SausageShape = function () {\n  function SausageShape() {\n    this.cx = 0;\n    this.cy = 0;\n    this.r0 = 0;\n    this.r = 0;\n    this.startAngle = 0;\n    this.endAngle = Math.PI * 2;\n    this.clockwise = true;\n  }\n\n  return SausageShape;\n}();\n\nvar SausagePath = function (_super) {\n  __extends(SausagePath, _super);\n\n  function SausagePath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'sausage';\n    return _this;\n  }\n\n  SausagePath.prototype.getDefaultShape = function () {\n    return new SausageShape();\n  };\n\n  SausagePath.prototype.buildPath = function (ctx, shape) {\n    var x = shape.cx;\n    var y = shape.cy;\n    var r0 = Math.max(shape.r0 || 0, 0);\n    var r = Math.max(shape.r, 0);\n    var dr = (r - r0) * 0.5;\n    var rCenter = r0 + dr;\n    var startAngle = shape.startAngle;\n    var endAngle = shape.endAngle;\n    var clockwise = shape.clockwise;\n    var unitStartX = Math.cos(startAngle);\n    var unitStartY = Math.sin(startAngle);\n    var unitEndX = Math.cos(endAngle);\n    var unitEndY = Math.sin(endAngle);\n    var lessThanCircle = clockwise ? endAngle - startAngle < Math.PI * 2 : startAngle - endAngle < Math.PI * 2;\n\n    if (lessThanCircle) {\n      ctx.moveTo(unitStartX * r0 + x, unitStartY * r0 + y);\n      ctx.arc(unitStartX * rCenter + x, unitStartY * rCenter + y, dr, -Math.PI + startAngle, startAngle, !clockwise);\n    }\n\n    ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\n    ctx.moveTo(unitEndX * r + x, unitEndY * r + y);\n    ctx.arc(unitEndX * rCenter + x, unitEndY * rCenter + y, dr, endAngle - Math.PI * 2, endAngle - Math.PI, !clockwise);\n\n    if (r0 !== 0) {\n      ctx.arc(x, y, r0, endAngle, startAngle, clockwise);\n      ctx.moveTo(unitStartX * r0 + x, unitEndY * r0 + y);\n    }\n\n    ctx.closePath();\n  };\n\n  return SausagePath;\n}(Path);\n\nexport default SausagePath;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Path from 'zrender/lib/graphic/Path';\nimport Group from 'zrender/lib/graphic/Group';\nimport { extend, defaults, each, map } from 'zrender/lib/core/util';\nimport { Rect, Sector, updateProps, initProps, removeElementWithFadeOut } from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { enableHoverEmphasis, setStatesStylesFromModel } from '../../util/states';\nimport { setLabelStyle, getLabelStatesModels, setLabelValueAnimation } from '../../label/labelStyle';\nimport { throttle } from '../../util/throttle';\nimport { createClipPath } from '../helper/createClipPathFromCoordSys';\nimport Sausage from '../../util/shape/sausage';\nimport ChartView from '../../view/Chart';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport { getDefaultLabel, getDefaultInterpolatedLabel } from '../helper/labelHelper';\nimport { warn } from '../../util/log';\nvar BAR_BORDER_WIDTH_QUERY = ['itemStyle', 'borderWidth'];\nvar BAR_BORDER_RADIUS_QUERY = ['itemStyle', 'borderRadius'];\nvar _eventPos = [0, 0];\nvar mathMax = Math.max;\nvar mathMin = Math.min;\n\nfunction getClipArea(coord, data) {\n  var coordSysClipArea = coord.getArea && coord.getArea();\n\n  if (isCoordinateSystemType(coord, 'cartesian2d')) {\n    var baseAxis = coord.getBaseAxis();\n\n    if (baseAxis.type !== 'category' || !baseAxis.onBand) {\n      var expandWidth = data.getLayout('bandWidth');\n\n      if (baseAxis.isHorizontal()) {\n        coordSysClipArea.x -= expandWidth;\n        coordSysClipArea.width += expandWidth * 2;\n      } else {\n        coordSysClipArea.y -= expandWidth;\n        coordSysClipArea.height += expandWidth * 2;\n      }\n    }\n  }\n\n  return coordSysClipArea;\n}\n\nvar BarView = function (_super) {\n  __extends(BarView, _super);\n\n  function BarView() {\n    var _this = _super.call(this) || this;\n\n    _this.type = BarView.type;\n    _this._isFirstFrame = true;\n    return _this;\n  }\n\n  BarView.prototype.render = function (seriesModel, ecModel, api, payload) {\n    this._model = seriesModel;\n\n    this._removeOnRenderedListener(api);\n\n    this._updateDrawMode(seriesModel);\n\n    var coordinateSystemType = seriesModel.get('coordinateSystem');\n\n    if (coordinateSystemType === 'cartesian2d' || coordinateSystemType === 'polar') {\n      this._isLargeDraw ? this._renderLarge(seriesModel, ecModel, api) : this._renderNormal(seriesModel, ecModel, api, payload);\n    } else if (process.env.NODE_ENV !== 'production') {\n      warn('Only cartesian2d and polar supported for bar.');\n    }\n  };\n\n  BarView.prototype.incrementalPrepareRender = function (seriesModel) {\n    this._clear();\n\n    this._updateDrawMode(seriesModel);\n\n    this._updateLargeClip(seriesModel);\n  };\n\n  BarView.prototype.incrementalRender = function (params, seriesModel) {\n    this._incrementalRenderLarge(params, seriesModel);\n  };\n\n  BarView.prototype._updateDrawMode = function (seriesModel) {\n    var isLargeDraw = seriesModel.pipelineContext.large;\n\n    if (this._isLargeDraw == null || isLargeDraw !== this._isLargeDraw) {\n      this._isLargeDraw = isLargeDraw;\n\n      this._clear();\n    }\n  };\n\n  BarView.prototype._renderNormal = function (seriesModel, ecModel, api, payload) {\n    var group = this.group;\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var coord = seriesModel.coordinateSystem;\n    var baseAxis = coord.getBaseAxis();\n    var isHorizontalOrRadial;\n\n    if (coord.type === 'cartesian2d') {\n      isHorizontalOrRadial = baseAxis.isHorizontal();\n    } else if (coord.type === 'polar') {\n      isHorizontalOrRadial = baseAxis.dim === 'angle';\n    }\n\n    var animationModel = seriesModel.isAnimationEnabled() ? seriesModel : null;\n    var realtimeSortCfg = shouldRealtimeSort(seriesModel, coord);\n\n    if (realtimeSortCfg) {\n      this._enableRealtimeSort(realtimeSortCfg, data, api);\n    }\n\n    var needsClip = seriesModel.get('clip', true) || realtimeSortCfg;\n    var coordSysClipArea = getClipArea(coord, data);\n    group.removeClipPath();\n    var roundCap = seriesModel.get('roundCap', true);\n    var drawBackground = seriesModel.get('showBackground', true);\n    var backgroundModel = seriesModel.getModel('backgroundStyle');\n    var barBorderRadius = backgroundModel.get('borderRadius') || 0;\n    var bgEls = [];\n    var oldBgEls = this._backgroundEls;\n    var isInitSort = payload && payload.isInitSort;\n    var isChangeOrder = payload && payload.type === 'changeAxisOrder';\n\n    function createBackground(dataIndex) {\n      var bgLayout = getLayout[coord.type](data, dataIndex);\n      var bgEl = createBackgroundEl(coord, isHorizontalOrRadial, bgLayout);\n      bgEl.useStyle(backgroundModel.getItemStyle());\n\n      if (coord.type === 'cartesian2d') {\n        bgEl.setShape('r', barBorderRadius);\n      }\n\n      bgEls[dataIndex] = bgEl;\n      return bgEl;\n    }\n\n    ;\n    data.diff(oldData).add(function (dataIndex) {\n      var itemModel = data.getItemModel(dataIndex);\n      var layout = getLayout[coord.type](data, dataIndex, itemModel);\n\n      if (drawBackground) {\n        createBackground(dataIndex);\n      }\n\n      if (!data.hasValue(dataIndex)) {\n        return;\n      }\n\n      var isClipped = false;\n\n      if (needsClip) {\n        isClipped = clip[coord.type](coordSysClipArea, layout);\n      }\n\n      var el = elementCreator[coord.type](seriesModel, data, dataIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, false, roundCap);\n      updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\n\n      if (isInitSort) {\n        el.attr({\n          shape: layout\n        });\n      } else if (realtimeSortCfg) {\n        updateRealtimeAnimation(realtimeSortCfg, animationModel, el, layout, dataIndex, isHorizontalOrRadial, false, false);\n      } else {\n        initProps(el, {\n          shape: layout\n        }, seriesModel, dataIndex);\n      }\n\n      data.setItemGraphicEl(dataIndex, el);\n      group.add(el);\n      el.ignore = isClipped;\n    }).update(function (newIndex, oldIndex) {\n      var itemModel = data.getItemModel(newIndex);\n      var layout = getLayout[coord.type](data, newIndex, itemModel);\n\n      if (drawBackground) {\n        var bgEl = void 0;\n\n        if (oldBgEls.length === 0) {\n          bgEl = createBackground(oldIndex);\n        } else {\n          bgEl = oldBgEls[oldIndex];\n          bgEl.useStyle(backgroundModel.getItemStyle());\n\n          if (coord.type === 'cartesian2d') {\n            bgEl.setShape('r', barBorderRadius);\n          }\n\n          bgEls[newIndex] = bgEl;\n        }\n\n        var bgLayout = getLayout[coord.type](data, newIndex);\n        var shape = createBackgroundShape(isHorizontalOrRadial, bgLayout, coord);\n        updateProps(bgEl, {\n          shape: shape\n        }, animationModel, newIndex);\n      }\n\n      var el = oldData.getItemGraphicEl(oldIndex);\n\n      if (!data.hasValue(newIndex)) {\n        group.remove(el);\n        el = null;\n        return;\n      }\n\n      var isClipped = false;\n\n      if (needsClip) {\n        isClipped = clip[coord.type](coordSysClipArea, layout);\n\n        if (isClipped) {\n          group.remove(el);\n        }\n      }\n\n      if (!el) {\n        el = elementCreator[coord.type](seriesModel, data, newIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, !!el, roundCap);\n      }\n\n      if (!isChangeOrder) {\n        updateStyle(el, data, newIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\n      }\n\n      if (isInitSort) {\n        el.attr({\n          shape: layout\n        });\n      } else if (realtimeSortCfg) {\n        updateRealtimeAnimation(realtimeSortCfg, animationModel, el, layout, newIndex, isHorizontalOrRadial, true, isChangeOrder);\n      } else {\n        updateProps(el, {\n          shape: layout\n        }, seriesModel, newIndex, null);\n      }\n\n      data.setItemGraphicEl(newIndex, el);\n      el.ignore = isClipped;\n      group.add(el);\n    }).remove(function (dataIndex) {\n      var el = oldData.getItemGraphicEl(dataIndex);\n      el && removeElementWithFadeOut(el, seriesModel, dataIndex);\n    }).execute();\n    var bgGroup = this._backgroundGroup || (this._backgroundGroup = new Group());\n    bgGroup.removeAll();\n\n    for (var i = 0; i < bgEls.length; ++i) {\n      bgGroup.add(bgEls[i]);\n    }\n\n    group.add(bgGroup);\n    this._backgroundEls = bgEls;\n    this._data = data;\n  };\n\n  BarView.prototype._renderLarge = function (seriesModel, ecModel, api) {\n    this._clear();\n\n    createLarge(seriesModel, this.group);\n\n    this._updateLargeClip(seriesModel);\n  };\n\n  BarView.prototype._incrementalRenderLarge = function (params, seriesModel) {\n    this._removeBackground();\n\n    createLarge(seriesModel, this.group, true);\n  };\n\n  BarView.prototype._updateLargeClip = function (seriesModel) {\n    var clipPath = seriesModel.get('clip', true) ? createClipPath(seriesModel.coordinateSystem, false, seriesModel) : null;\n\n    if (clipPath) {\n      this.group.setClipPath(clipPath);\n    } else {\n      this.group.removeClipPath();\n    }\n  };\n\n  BarView.prototype._enableRealtimeSort = function (realtimeSortCfg, data, api) {\n    var _this = this;\n\n    if (!data.count()) {\n      return;\n    }\n\n    var baseAxis = realtimeSortCfg.baseAxis;\n\n    if (this._isFirstFrame) {\n      this._dispatchInitSort(data, realtimeSortCfg, api);\n\n      this._isFirstFrame = false;\n    } else {\n      var orderMapping_1 = function (idx) {\n        var el = data.getItemGraphicEl(idx);\n\n        if (el) {\n          var shape = el.shape;\n          return (baseAxis.isHorizontal() ? Math.abs(shape.height) : Math.abs(shape.width)) || 0;\n        } else {\n          return 0;\n        }\n      };\n\n      this._onRendered = function () {\n        _this._updateSortWithinSameData(data, orderMapping_1, baseAxis, api);\n      };\n\n      api.getZr().on('rendered', this._onRendered);\n    }\n  };\n\n  BarView.prototype._dataSort = function (data, baseAxis, orderMapping) {\n    var info = [];\n    data.each(data.mapDimension(baseAxis.dim), function (ordinalNumber, dataIdx) {\n      var mappedValue = orderMapping(dataIdx);\n      mappedValue = mappedValue == null ? NaN : mappedValue;\n      info.push({\n        dataIndex: dataIdx,\n        mappedValue: mappedValue,\n        ordinalNumber: ordinalNumber\n      });\n    });\n    info.sort(function (a, b) {\n      return b.mappedValue - a.mappedValue;\n    });\n    return {\n      ordinalNumbers: map(info, function (item) {\n        return item.ordinalNumber;\n      })\n    };\n  };\n\n  BarView.prototype._isOrderChangedWithinSameData = function (data, orderMapping, baseAxis) {\n    var scale = baseAxis.scale;\n    var ordinalDataDim = data.mapDimension(baseAxis.dim);\n    var lastValue = Number.MAX_VALUE;\n\n    for (var tickNum = 0, len = scale.getOrdinalMeta().categories.length; tickNum < len; ++tickNum) {\n      var rawIdx = data.rawIndexOf(ordinalDataDim, scale.getRawOrdinalNumber(tickNum));\n      var value = rawIdx < 0 ? Number.MIN_VALUE : orderMapping(data.indexOfRawIndex(rawIdx));\n\n      if (value > lastValue) {\n        return true;\n      }\n\n      lastValue = value;\n    }\n\n    return false;\n  };\n\n  BarView.prototype._isOrderDifferentInView = function (orderInfo, baseAxis) {\n    var scale = baseAxis.scale;\n    var extent = scale.getExtent();\n    var tickNum = Math.max(0, extent[0]);\n    var tickMax = Math.min(extent[1], scale.getOrdinalMeta().categories.length - 1);\n\n    for (; tickNum <= tickMax; ++tickNum) {\n      if (orderInfo.ordinalNumbers[tickNum] !== scale.getRawOrdinalNumber(tickNum)) {\n        return true;\n      }\n    }\n  };\n\n  BarView.prototype._updateSortWithinSameData = function (data, orderMapping, baseAxis, api) {\n    if (!this._isOrderChangedWithinSameData(data, orderMapping, baseAxis)) {\n      return;\n    }\n\n    var sortInfo = this._dataSort(data, baseAxis, orderMapping);\n\n    if (this._isOrderDifferentInView(sortInfo, baseAxis)) {\n      this._removeOnRenderedListener(api);\n\n      api.dispatchAction({\n        type: 'changeAxisOrder',\n        componentType: baseAxis.dim + 'Axis',\n        axisId: baseAxis.index,\n        sortInfo: sortInfo\n      });\n    }\n  };\n\n  BarView.prototype._dispatchInitSort = function (data, realtimeSortCfg, api) {\n    var baseAxis = realtimeSortCfg.baseAxis;\n\n    var sortResult = this._dataSort(data, baseAxis, function (dataIdx) {\n      return data.get(data.mapDimension(realtimeSortCfg.otherAxis.dim), dataIdx);\n    });\n\n    api.dispatchAction({\n      type: 'changeAxisOrder',\n      componentType: baseAxis.dim + 'Axis',\n      isInitSort: true,\n      axisId: baseAxis.index,\n      sortInfo: sortResult,\n      animation: {\n        duration: 0\n      }\n    });\n  };\n\n  BarView.prototype.remove = function (ecModel, api) {\n    this._clear(this._model);\n\n    this._removeOnRenderedListener(api);\n  };\n\n  BarView.prototype.dispose = function (ecModel, api) {\n    this._removeOnRenderedListener(api);\n  };\n\n  BarView.prototype._removeOnRenderedListener = function (api) {\n    if (this._onRendered) {\n      api.getZr().off('rendered', this._onRendered);\n      this._onRendered = null;\n    }\n  };\n\n  BarView.prototype._clear = function (model) {\n    var group = this.group;\n    var data = this._data;\n\n    if (model && model.isAnimationEnabled() && data && !this._isLargeDraw) {\n      this._removeBackground();\n\n      this._backgroundEls = [];\n      data.eachItemGraphicEl(function (el) {\n        removeElementWithFadeOut(el, model, getECData(el).dataIndex);\n      });\n    } else {\n      group.removeAll();\n    }\n\n    this._data = null;\n    this._isFirstFrame = true;\n  };\n\n  BarView.prototype._removeBackground = function () {\n    this.group.remove(this._backgroundGroup);\n    this._backgroundGroup = null;\n  };\n\n  BarView.type = 'bar';\n  return BarView;\n}(ChartView);\n\nvar clip = {\n  cartesian2d: function (coordSysBoundingRect, layout) {\n    var signWidth = layout.width < 0 ? -1 : 1;\n    var signHeight = layout.height < 0 ? -1 : 1;\n\n    if (signWidth < 0) {\n      layout.x += layout.width;\n      layout.width = -layout.width;\n    }\n\n    if (signHeight < 0) {\n      layout.y += layout.height;\n      layout.height = -layout.height;\n    }\n\n    var coordSysX2 = coordSysBoundingRect.x + coordSysBoundingRect.width;\n    var coordSysY2 = coordSysBoundingRect.y + coordSysBoundingRect.height;\n    var x = mathMax(layout.x, coordSysBoundingRect.x);\n    var x2 = mathMin(layout.x + layout.width, coordSysX2);\n    var y = mathMax(layout.y, coordSysBoundingRect.y);\n    var y2 = mathMin(layout.y + layout.height, coordSysY2);\n    var xClipped = x2 < x;\n    var yClipped = y2 < y;\n    layout.x = xClipped && x > coordSysX2 ? x2 : x;\n    layout.y = yClipped && y > coordSysY2 ? y2 : y;\n    layout.width = xClipped ? 0 : x2 - x;\n    layout.height = yClipped ? 0 : y2 - y;\n\n    if (signWidth < 0) {\n      layout.x += layout.width;\n      layout.width = -layout.width;\n    }\n\n    if (signHeight < 0) {\n      layout.y += layout.height;\n      layout.height = -layout.height;\n    }\n\n    return xClipped || yClipped;\n  },\n  polar: function (coordSysClipArea, layout) {\n    var signR = layout.r0 <= layout.r ? 1 : -1;\n\n    if (signR < 0) {\n      var tmp = layout.r;\n      layout.r = layout.r0;\n      layout.r0 = tmp;\n    }\n\n    var r = mathMin(layout.r, coordSysClipArea.r);\n    var r0 = mathMax(layout.r0, coordSysClipArea.r0);\n    layout.r = r;\n    layout.r0 = r0;\n    var clipped = r - r0 < 0;\n\n    if (signR < 0) {\n      var tmp = layout.r;\n      layout.r = layout.r0;\n      layout.r0 = tmp;\n    }\n\n    return clipped;\n  }\n};\nvar elementCreator = {\n  cartesian2d: function (seriesModel, data, newIndex, layout, isHorizontal, animationModel, axisModel, isUpdate, roundCap) {\n    var rect = new Rect({\n      shape: extend({}, layout),\n      z2: 1\n    });\n    rect.__dataIndex = newIndex;\n    rect.name = 'item';\n\n    if (animationModel) {\n      var rectShape = rect.shape;\n      var animateProperty = isHorizontal ? 'height' : 'width';\n      rectShape[animateProperty] = 0;\n    }\n\n    return rect;\n  },\n  polar: function (seriesModel, data, newIndex, layout, isRadial, animationModel, axisModel, isUpdate, roundCap) {\n    var clockwise = layout.startAngle < layout.endAngle;\n    var ShapeClass = !isRadial && roundCap ? Sausage : Sector;\n    var sector = new ShapeClass({\n      shape: defaults({\n        clockwise: clockwise\n      }, layout),\n      z2: 1\n    });\n    sector.name = 'item';\n\n    if (animationModel) {\n      var sectorShape = sector.shape;\n      var animateProperty = isRadial ? 'r' : 'endAngle';\n      var animateTarget = {};\n      sectorShape[animateProperty] = isRadial ? 0 : layout.startAngle;\n      animateTarget[animateProperty] = layout[animateProperty];\n      (isUpdate ? updateProps : initProps)(sector, {\n        shape: animateTarget\n      }, animationModel);\n    }\n\n    return sector;\n  }\n};\n\nfunction shouldRealtimeSort(seriesModel, coordSys) {\n  var realtimeSortOption = seriesModel.get('realtimeSort', true);\n  var baseAxis = coordSys.getBaseAxis();\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (realtimeSortOption) {\n      if (baseAxis.type !== 'category') {\n        warn('`realtimeSort` will not work because this bar series is not based on a category axis.');\n      }\n\n      if (coordSys.type !== 'cartesian2d') {\n        warn('`realtimeSort` will not work because this bar series is not on cartesian2d.');\n      }\n    }\n  }\n\n  if (realtimeSortOption && baseAxis.type === 'category' && coordSys.type === 'cartesian2d') {\n    return {\n      baseAxis: baseAxis,\n      otherAxis: coordSys.getOtherAxis(baseAxis)\n    };\n  }\n}\n\nfunction updateRealtimeAnimation(realtimeSortCfg, seriesAnimationModel, el, layout, newIndex, isHorizontal, isUpdate, isChangeOrder) {\n  var seriesTarget;\n  var axisTarget;\n\n  if (isHorizontal) {\n    axisTarget = {\n      x: layout.x,\n      width: layout.width\n    };\n    seriesTarget = {\n      y: layout.y,\n      height: layout.height\n    };\n  } else {\n    axisTarget = {\n      y: layout.y,\n      height: layout.height\n    };\n    seriesTarget = {\n      x: layout.x,\n      width: layout.width\n    };\n  }\n\n  if (!isChangeOrder) {\n    (isUpdate ? updateProps : initProps)(el, {\n      shape: seriesTarget\n    }, seriesAnimationModel, newIndex, null);\n  }\n\n  var axisAnimationModel = seriesAnimationModel ? realtimeSortCfg.baseAxis.model : null;\n  (isUpdate ? updateProps : initProps)(el, {\n    shape: axisTarget\n  }, axisAnimationModel, newIndex);\n}\n\nvar getLayout = {\n  cartesian2d: function (data, dataIndex, itemModel) {\n    var layout = data.getItemLayout(dataIndex);\n    var fixedLineWidth = itemModel ? getLineWidth(itemModel, layout) : 0;\n    var signX = layout.width > 0 ? 1 : -1;\n    var signY = layout.height > 0 ? 1 : -1;\n    return {\n      x: layout.x + signX * fixedLineWidth / 2,\n      y: layout.y + signY * fixedLineWidth / 2,\n      width: layout.width - signX * fixedLineWidth,\n      height: layout.height - signY * fixedLineWidth\n    };\n  },\n  polar: function (data, dataIndex, itemModel) {\n    var layout = data.getItemLayout(dataIndex);\n    return {\n      cx: layout.cx,\n      cy: layout.cy,\n      r0: layout.r0,\n      r: layout.r,\n      startAngle: layout.startAngle,\n      endAngle: layout.endAngle\n    };\n  }\n};\n\nfunction isZeroOnPolar(layout) {\n  return layout.startAngle != null && layout.endAngle != null && layout.startAngle === layout.endAngle;\n}\n\nfunction updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontal, isPolar) {\n  var style = data.getItemVisual(dataIndex, 'style');\n\n  if (!isPolar) {\n    el.setShape('r', itemModel.get(BAR_BORDER_RADIUS_QUERY) || 0);\n  }\n\n  el.useStyle(style);\n  var cursorStyle = itemModel.getShallow('cursor');\n  cursorStyle && el.attr('cursor', cursorStyle);\n\n  if (!isPolar) {\n    var labelPositionOutside = isHorizontal ? layout.height > 0 ? 'bottom' : 'top' : layout.width > 0 ? 'left' : 'right';\n    var labelStatesModels = getLabelStatesModels(itemModel);\n    setLabelStyle(el, labelStatesModels, {\n      labelFetcher: seriesModel,\n      labelDataIndex: dataIndex,\n      defaultText: getDefaultLabel(seriesModel.getData(), dataIndex),\n      inheritColor: style.fill,\n      defaultOpacity: style.opacity,\n      defaultOutsidePosition: labelPositionOutside\n    });\n    var label = el.getTextContent();\n    setLabelValueAnimation(label, labelStatesModels, seriesModel.getRawValue(dataIndex), function (value) {\n      return getDefaultInterpolatedLabel(data, value);\n    });\n  }\n\n  var emphasisModel = itemModel.getModel(['emphasis']);\n  enableHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n  setStatesStylesFromModel(el, itemModel);\n\n  if (isZeroOnPolar(layout)) {\n    el.style.fill = 'none';\n    el.style.stroke = 'none';\n    each(el.states, function (state) {\n      if (state.style) {\n        state.style.fill = state.style.stroke = 'none';\n      }\n    });\n  }\n}\n\nfunction getLineWidth(itemModel, rawLayout) {\n  var lineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0;\n  var width = isNaN(rawLayout.width) ? Number.MAX_VALUE : Math.abs(rawLayout.width);\n  var height = isNaN(rawLayout.height) ? Number.MAX_VALUE : Math.abs(rawLayout.height);\n  return Math.min(lineWidth, width, height);\n}\n\nvar LagePathShape = function () {\n  function LagePathShape() {}\n\n  return LagePathShape;\n}();\n\nvar LargePath = function (_super) {\n  __extends(LargePath, _super);\n\n  function LargePath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'largeBar';\n    return _this;\n  }\n\n  ;\n\n  LargePath.prototype.getDefaultShape = function () {\n    return new LagePathShape();\n  };\n\n  LargePath.prototype.buildPath = function (ctx, shape) {\n    var points = shape.points;\n    var startPoint = this.__startPoint;\n    var baseDimIdx = this.__baseDimIdx;\n\n    for (var i = 0; i < points.length; i += 2) {\n      startPoint[baseDimIdx] = points[i + baseDimIdx];\n      ctx.moveTo(startPoint[0], startPoint[1]);\n      ctx.lineTo(points[i], points[i + 1]);\n    }\n  };\n\n  return LargePath;\n}(Path);\n\nfunction createLarge(seriesModel, group, incremental) {\n  var data = seriesModel.getData();\n  var startPoint = [];\n  var baseDimIdx = data.getLayout('valueAxisHorizontal') ? 1 : 0;\n  startPoint[1 - baseDimIdx] = data.getLayout('valueAxisStart');\n  var largeDataIndices = data.getLayout('largeDataIndices');\n  var barWidth = data.getLayout('barWidth');\n  var backgroundModel = seriesModel.getModel('backgroundStyle');\n  var drawBackground = seriesModel.get('showBackground', true);\n\n  if (drawBackground) {\n    var points = data.getLayout('largeBackgroundPoints');\n    var backgroundStartPoint = [];\n    backgroundStartPoint[1 - baseDimIdx] = data.getLayout('backgroundStart');\n    var bgEl = new LargePath({\n      shape: {\n        points: points\n      },\n      incremental: !!incremental,\n      silent: true,\n      z2: 0\n    });\n    bgEl.__startPoint = backgroundStartPoint;\n    bgEl.__baseDimIdx = baseDimIdx;\n    bgEl.__largeDataIndices = largeDataIndices;\n    bgEl.__barWidth = barWidth;\n    setLargeBackgroundStyle(bgEl, backgroundModel, data);\n    group.add(bgEl);\n  }\n\n  var el = new LargePath({\n    shape: {\n      points: data.getLayout('largePoints')\n    },\n    incremental: !!incremental\n  });\n  el.__startPoint = startPoint;\n  el.__baseDimIdx = baseDimIdx;\n  el.__largeDataIndices = largeDataIndices;\n  el.__barWidth = barWidth;\n  group.add(el);\n  setLargeStyle(el, seriesModel, data);\n  getECData(el).seriesIndex = seriesModel.seriesIndex;\n\n  if (!seriesModel.get('silent')) {\n    el.on('mousedown', largePathUpdateDataIndex);\n    el.on('mousemove', largePathUpdateDataIndex);\n  }\n}\n\nvar largePathUpdateDataIndex = throttle(function (event) {\n  var largePath = this;\n  var dataIndex = largePathFindDataIndex(largePath, event.offsetX, event.offsetY);\n  getECData(largePath).dataIndex = dataIndex >= 0 ? dataIndex : null;\n}, 30, false);\n\nfunction largePathFindDataIndex(largePath, x, y) {\n  var baseDimIdx = largePath.__baseDimIdx;\n  var valueDimIdx = 1 - baseDimIdx;\n  var points = largePath.shape.points;\n  var largeDataIndices = largePath.__largeDataIndices;\n  var barWidthHalf = Math.abs(largePath.__barWidth / 2);\n  var startValueVal = largePath.__startPoint[valueDimIdx];\n  _eventPos[0] = x;\n  _eventPos[1] = y;\n  var pointerBaseVal = _eventPos[baseDimIdx];\n  var pointerValueVal = _eventPos[1 - baseDimIdx];\n  var baseLowerBound = pointerBaseVal - barWidthHalf;\n  var baseUpperBound = pointerBaseVal + barWidthHalf;\n\n  for (var i = 0, len = points.length / 2; i < len; i++) {\n    var ii = i * 2;\n    var barBaseVal = points[ii + baseDimIdx];\n    var barValueVal = points[ii + valueDimIdx];\n\n    if (barBaseVal >= baseLowerBound && barBaseVal <= baseUpperBound && (startValueVal <= barValueVal ? pointerValueVal >= startValueVal && pointerValueVal <= barValueVal : pointerValueVal >= barValueVal && pointerValueVal <= startValueVal)) {\n      return largeDataIndices[i];\n    }\n  }\n\n  return -1;\n}\n\nfunction setLargeStyle(el, seriesModel, data) {\n  var globalStyle = data.getVisual('style');\n  el.useStyle(extend({}, globalStyle));\n  el.style.fill = null;\n  el.style.stroke = globalStyle.fill;\n  el.style.lineWidth = data.getLayout('barWidth');\n}\n\nfunction setLargeBackgroundStyle(el, backgroundModel, data) {\n  var borderColor = backgroundModel.get('borderColor') || backgroundModel.get('color');\n  var itemStyle = backgroundModel.getItemStyle();\n  el.useStyle(itemStyle);\n  el.style.fill = null;\n  el.style.stroke = borderColor;\n  el.style.lineWidth = data.getLayout('barWidth');\n}\n\nfunction createBackgroundShape(isHorizontalOrRadial, layout, coord) {\n  if (isCoordinateSystemType(coord, 'cartesian2d')) {\n    var rectShape = layout;\n    var coordLayout = coord.getArea();\n    return {\n      x: isHorizontalOrRadial ? rectShape.x : coordLayout.x,\n      y: isHorizontalOrRadial ? coordLayout.y : rectShape.y,\n      width: isHorizontalOrRadial ? rectShape.width : coordLayout.width,\n      height: isHorizontalOrRadial ? coordLayout.height : rectShape.height\n    };\n  } else {\n    var coordLayout = coord.getArea();\n    var sectorShape = layout;\n    return {\n      cx: coordLayout.cx,\n      cy: coordLayout.cy,\n      r0: isHorizontalOrRadial ? coordLayout.r0 : sectorShape.r0,\n      r: isHorizontalOrRadial ? coordLayout.r : sectorShape.r,\n      startAngle: isHorizontalOrRadial ? sectorShape.startAngle : 0,\n      endAngle: isHorizontalOrRadial ? sectorShape.endAngle : Math.PI * 2\n    };\n  }\n}\n\nfunction createBackgroundEl(coord, isHorizontalOrRadial, layout) {\n  var ElementClz = coord.type === 'polar' ? Sector : Rect;\n  return new ElementClz({\n    shape: createBackgroundShape(isHorizontalOrRadial, layout, coord),\n    silent: true,\n    z2: 0\n  });\n}\n\nexport default BarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { layout, largeLayout } from '../../layout/barGrid';\nimport dataSample from '../../processor/dataSample';\nimport BarSeries from './BarSeries';\nimport BarView from './BarView';\nexport function install(registers) {\n  registers.registerChartView(BarView);\n  registers.registerSeriesModel(BarSeries);\n  registers.registerLayout(registers.PRIORITY.VISUAL.LAYOUT, zrUtil.curry(layout, 'bar'));\n  registers.registerLayout(registers.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT, largeLayout);\n  registers.registerVisual({\n    seriesType: 'bar',\n    reset: function (seriesModel) {\n      seriesModel.getData().setVisual('legendSymbol', 'roundRect');\n    }\n  });\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, dataSample('bar'));\n  registers.registerAction({\n    type: 'changeAxisOrder',\n    event: 'changeAxisOrder',\n    update: 'update'\n  }, function (payload, ecModel) {\n    var componentType = payload.componentType || 'series';\n    ecModel.eachComponent({\n      mainType: componentType,\n      query: payload\n    }, function (componentModel) {\n      if (payload.sortInfo) {\n        componentModel.axis.setCategorySortInfo(payload.sortInfo);\n      }\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parsePercent, linearMap } from '../../util/number';\nimport * as layout from '../../util/layout';\nimport * as zrUtil from 'zrender/lib/core/util';\nvar PI2 = Math.PI * 2;\nvar RADIAN = Math.PI / 180;\n\nfunction getViewRect(seriesModel, api) {\n  return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n}\n\nexport default function pieLayout(seriesType, ecModel, api) {\n  ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n    var data = seriesModel.getData();\n    var valueDim = data.mapDimension('value');\n    var viewRect = getViewRect(seriesModel, api);\n    var center = seriesModel.get('center');\n    var radius = seriesModel.get('radius');\n\n    if (!zrUtil.isArray(radius)) {\n      radius = [0, radius];\n    }\n\n    if (!zrUtil.isArray(center)) {\n      center = [center, center];\n    }\n\n    var width = parsePercent(viewRect.width, api.getWidth());\n    var height = parsePercent(viewRect.height, api.getHeight());\n    var size = Math.min(width, height);\n    var cx = parsePercent(center[0], width) + viewRect.x;\n    var cy = parsePercent(center[1], height) + viewRect.y;\n    var r0 = parsePercent(radius[0], size / 2);\n    var r = parsePercent(radius[1], size / 2);\n    var startAngle = -seriesModel.get('startAngle') * RADIAN;\n    var minAngle = seriesModel.get('minAngle') * RADIAN;\n    var validDataCount = 0;\n    data.each(valueDim, function (value) {\n      !isNaN(value) && validDataCount++;\n    });\n    var sum = data.getSum(valueDim);\n    var unitRadian = Math.PI / (sum || validDataCount) * 2;\n    var clockwise = seriesModel.get('clockwise');\n    var roseType = seriesModel.get('roseType');\n    var stillShowZeroSum = seriesModel.get('stillShowZeroSum');\n    var extent = data.getDataExtent(valueDim);\n    extent[0] = 0;\n    var restAngle = PI2;\n    var valueSumLargerThanMinAngle = 0;\n    var currentAngle = startAngle;\n    var dir = clockwise ? 1 : -1;\n    data.setLayout({\n      viewRect: viewRect,\n      r: r\n    });\n    data.each(valueDim, function (value, idx) {\n      var angle;\n\n      if (isNaN(value)) {\n        data.setItemLayout(idx, {\n          angle: NaN,\n          startAngle: NaN,\n          endAngle: NaN,\n          clockwise: clockwise,\n          cx: cx,\n          cy: cy,\n          r0: r0,\n          r: roseType ? NaN : r\n        });\n        return;\n      }\n\n      if (roseType !== 'area') {\n        angle = sum === 0 && stillShowZeroSum ? unitRadian : value * unitRadian;\n      } else {\n        angle = PI2 / validDataCount;\n      }\n\n      if (angle < minAngle) {\n        angle = minAngle;\n        restAngle -= minAngle;\n      } else {\n        valueSumLargerThanMinAngle += value;\n      }\n\n      var endAngle = currentAngle + dir * angle;\n      data.setItemLayout(idx, {\n        angle: angle,\n        startAngle: currentAngle,\n        endAngle: endAngle,\n        clockwise: clockwise,\n        cx: cx,\n        cy: cy,\n        r0: r0,\n        r: roseType ? linearMap(value, extent, [r0, r]) : r\n      });\n      currentAngle = endAngle;\n    });\n\n    if (restAngle < PI2 && validDataCount) {\n      if (restAngle <= 1e-3) {\n        var angle_1 = PI2 / validDataCount;\n        data.each(valueDim, function (value, idx) {\n          if (!isNaN(value)) {\n            var layout_1 = data.getItemLayout(idx);\n            layout_1.angle = angle_1;\n            layout_1.startAngle = startAngle + dir * idx * angle_1;\n            layout_1.endAngle = startAngle + dir * (idx + 1) * angle_1;\n          }\n        });\n      } else {\n        unitRadian = restAngle / valueSumLargerThanMinAngle;\n        currentAngle = startAngle;\n        data.each(valueDim, function (value, idx) {\n          if (!isNaN(value)) {\n            var layout_2 = data.getItemLayout(idx);\n            var angle = layout_2.angle === minAngle ? minAngle : value * unitRadian;\n            layout_2.startAngle = currentAngle;\n            layout_2.endAngle = currentAngle + dir * angle;\n            currentAngle += dir * angle;\n          }\n        });\n      }\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function dataFilter(seriesType) {\n  return {\n    seriesType: seriesType,\n    reset: function (seriesModel, ecModel) {\n      var legendModels = ecModel.findComponents({\n        mainType: 'legend'\n      });\n\n      if (!legendModels || !legendModels.length) {\n        return;\n      }\n\n      var data = seriesModel.getData();\n      data.filterSelf(function (idx) {\n        var name = data.getName(idx);\n\n        for (var i = 0; i < legendModels.length; i++) {\n          if (!legendModels[i].isSelected(name)) {\n            return false;\n          }\n        }\n\n        return true;\n      });\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parsePercent } from '../../util/number';\nimport { Point } from '../../util/graphic';\nimport { each } from 'zrender/lib/core/util';\nimport { limitTurnAngle, limitSurfaceAngle } from '../../label/labelGuideHelper';\nimport { shiftLayoutOnY } from '../../label/labelLayoutHelper';\nvar RADIAN = Math.PI / 180;\n\nfunction adjustSingleSide(list, cx, cy, r, dir, viewWidth, viewHeight, viewLeft, viewTop, farthestX) {\n  if (list.length < 2) {\n    return;\n  }\n\n  ;\n\n  function recalculateXOnSemiToAlignOnEllipseCurve(semi) {\n    var rB = semi.rB;\n    var rB2 = rB * rB;\n\n    for (var i = 0; i < semi.list.length; i++) {\n      var item = semi.list[i];\n      var dy = Math.abs(item.label.y - cy);\n      var rA = r + item.len;\n      var rA2 = rA * rA;\n      var dx = Math.sqrt((1 - Math.abs(dy * dy / rB2)) * rA2);\n      item.label.x = cx + (dx + item.len2) * dir;\n    }\n  }\n\n  function recalculateX(items) {\n    var topSemi = {\n      list: [],\n      maxY: 0\n    };\n    var bottomSemi = {\n      list: [],\n      maxY: 0\n    };\n\n    for (var i = 0; i < items.length; i++) {\n      if (items[i].labelAlignTo !== 'none') {\n        continue;\n      }\n\n      var item = items[i];\n      var semi = item.label.y > cy ? bottomSemi : topSemi;\n      var dy = Math.abs(item.label.y - cy);\n\n      if (dy > semi.maxY) {\n        var dx = item.label.x - cx - item.len2 * dir;\n        var rA = r + item.len;\n        var rB = dx < rA ? Math.sqrt(dy * dy / (1 - dx * dx / rA / rA)) : rA;\n        semi.rB = rB;\n        semi.maxY = dy;\n      }\n\n      semi.list.push(item);\n    }\n\n    recalculateXOnSemiToAlignOnEllipseCurve(topSemi);\n    recalculateXOnSemiToAlignOnEllipseCurve(bottomSemi);\n  }\n\n  var len = list.length;\n\n  for (var i = 0; i < len; i++) {\n    if (list[i].position === 'outer' && list[i].labelAlignTo === 'labelLine') {\n      var dx = list[i].label.x - farthestX;\n      list[i].linePoints[1][0] += dx;\n      list[i].label.x = farthestX;\n    }\n  }\n\n  if (shiftLayoutOnY(list, viewTop, viewTop + viewHeight)) {\n    recalculateX(list);\n  }\n}\n\nfunction avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop) {\n  var leftList = [];\n  var rightList = [];\n  var leftmostX = Number.MAX_VALUE;\n  var rightmostX = -Number.MAX_VALUE;\n\n  for (var i = 0; i < labelLayoutList.length; i++) {\n    var label = labelLayoutList[i].label;\n\n    if (isPositionCenter(labelLayoutList[i])) {\n      continue;\n    }\n\n    if (label.x < cx) {\n      leftmostX = Math.min(leftmostX, label.x);\n      leftList.push(labelLayoutList[i]);\n    } else {\n      rightmostX = Math.max(rightmostX, label.x);\n      rightList.push(labelLayoutList[i]);\n    }\n  }\n\n  adjustSingleSide(rightList, cx, cy, r, 1, viewWidth, viewHeight, viewLeft, viewTop, rightmostX);\n  adjustSingleSide(leftList, cx, cy, r, -1, viewWidth, viewHeight, viewLeft, viewTop, leftmostX);\n\n  for (var i = 0; i < labelLayoutList.length; i++) {\n    var layout = labelLayoutList[i];\n    var label = layout.label;\n\n    if (isPositionCenter(layout)) {\n      continue;\n    }\n\n    var linePoints = layout.linePoints;\n\n    if (linePoints) {\n      var isAlignToEdge = layout.labelAlignTo === 'edge';\n      var realTextWidth = layout.rect.width;\n      var targetTextWidth = void 0;\n\n      if (isAlignToEdge) {\n        if (label.x < cx) {\n          targetTextWidth = linePoints[2][0] - layout.labelDistance - viewLeft - layout.edgeDistance;\n        } else {\n          targetTextWidth = viewLeft + viewWidth - layout.edgeDistance - linePoints[2][0] - layout.labelDistance;\n        }\n      } else {\n        if (label.x < cx) {\n          targetTextWidth = label.x - viewLeft - layout.bleedMargin;\n        } else {\n          targetTextWidth = viewLeft + viewWidth - label.x - layout.bleedMargin;\n        }\n      }\n\n      if (targetTextWidth < layout.rect.width) {\n        layout.label.style.width = targetTextWidth;\n\n        if (layout.labelAlignTo === 'edge') {\n          realTextWidth = targetTextWidth;\n        }\n      }\n\n      var dist = linePoints[1][0] - linePoints[2][0];\n\n      if (isAlignToEdge) {\n        if (label.x < cx) {\n          linePoints[2][0] = viewLeft + layout.edgeDistance + realTextWidth + layout.labelDistance;\n        } else {\n          linePoints[2][0] = viewLeft + viewWidth - layout.edgeDistance - realTextWidth - layout.labelDistance;\n        }\n      } else {\n        if (label.x < cx) {\n          linePoints[2][0] = label.x + layout.labelDistance;\n        } else {\n          linePoints[2][0] = label.x - layout.labelDistance;\n        }\n\n        linePoints[1][0] = linePoints[2][0] + dist;\n      }\n\n      linePoints[1][1] = linePoints[2][1] = label.y;\n    }\n  }\n}\n\nfunction isPositionCenter(sectorShape) {\n  return sectorShape.position === 'center';\n}\n\nexport default function pieLabelLayout(seriesModel) {\n  var data = seriesModel.getData();\n  var labelLayoutList = [];\n  var cx;\n  var cy;\n  var hasLabelRotate = false;\n  var minShowLabelRadian = (seriesModel.get('minShowLabelAngle') || 0) * RADIAN;\n  var viewRect = data.getLayout('viewRect');\n  var r = data.getLayout('r');\n  var viewWidth = viewRect.width;\n  var viewLeft = viewRect.x;\n  var viewTop = viewRect.y;\n  var viewHeight = viewRect.height;\n\n  function setNotShow(el) {\n    el.ignore = true;\n  }\n\n  function isLabelShown(label) {\n    if (!label.ignore) {\n      return true;\n    }\n\n    for (var key in label.states) {\n      if (label.states[key].ignore === false) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  data.each(function (idx) {\n    var sector = data.getItemGraphicEl(idx);\n    var sectorShape = sector.shape;\n    var label = sector.getTextContent();\n    var labelLine = sector.getTextGuideLine();\n    var itemModel = data.getItemModel(idx);\n    var labelModel = itemModel.getModel('label');\n    var labelPosition = labelModel.get('position') || itemModel.get(['emphasis', 'label', 'position']);\n    var labelDistance = labelModel.get('distanceToLabelLine');\n    var labelAlignTo = labelModel.get('alignTo');\n    var edgeDistance = parsePercent(labelModel.get('edgeDistance'), viewWidth);\n    var bleedMargin = labelModel.get('bleedMargin');\n    var labelLineModel = itemModel.getModel('labelLine');\n    var labelLineLen = labelLineModel.get('length');\n    labelLineLen = parsePercent(labelLineLen, viewWidth);\n    var labelLineLen2 = labelLineModel.get('length2');\n    labelLineLen2 = parsePercent(labelLineLen2, viewWidth);\n\n    if (Math.abs(sectorShape.endAngle - sectorShape.startAngle) < minShowLabelRadian) {\n      each(label.states, setNotShow);\n      label.ignore = true;\n      return;\n    }\n\n    if (!isLabelShown(label)) {\n      return;\n    }\n\n    var midAngle = (sectorShape.startAngle + sectorShape.endAngle) / 2;\n    var nx = Math.cos(midAngle);\n    var ny = Math.sin(midAngle);\n    var textX;\n    var textY;\n    var linePoints;\n    var textAlign;\n    cx = sectorShape.cx;\n    cy = sectorShape.cy;\n    var isLabelInside = labelPosition === 'inside' || labelPosition === 'inner';\n\n    if (labelPosition === 'center') {\n      textX = sectorShape.cx;\n      textY = sectorShape.cy;\n      textAlign = 'center';\n    } else {\n      var x1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * nx : sectorShape.r * nx) + cx;\n      var y1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * ny : sectorShape.r * ny) + cy;\n      textX = x1 + nx * 3;\n      textY = y1 + ny * 3;\n\n      if (!isLabelInside) {\n        var x2 = x1 + nx * (labelLineLen + r - sectorShape.r);\n        var y2 = y1 + ny * (labelLineLen + r - sectorShape.r);\n        var x3 = x2 + (nx < 0 ? -1 : 1) * labelLineLen2;\n        var y3 = y2;\n\n        if (labelAlignTo === 'edge') {\n          textX = nx < 0 ? viewLeft + edgeDistance : viewLeft + viewWidth - edgeDistance;\n        } else {\n          textX = x3 + (nx < 0 ? -labelDistance : labelDistance);\n        }\n\n        textY = y3;\n        linePoints = [[x1, y1], [x2, y2], [x3, y3]];\n      }\n\n      textAlign = isLabelInside ? 'center' : labelAlignTo === 'edge' ? nx > 0 ? 'right' : 'left' : nx > 0 ? 'left' : 'right';\n    }\n\n    var labelRotate;\n    var rotate = labelModel.get('rotate');\n\n    if (typeof rotate === 'number') {\n      labelRotate = rotate * (Math.PI / 180);\n    } else {\n      labelRotate = rotate ? nx < 0 ? -midAngle + Math.PI : -midAngle : 0;\n    }\n\n    hasLabelRotate = !!labelRotate;\n    label.x = textX;\n    label.y = textY;\n    label.rotation = labelRotate;\n    label.setStyle({\n      verticalAlign: 'middle'\n    });\n\n    if (!isLabelInside) {\n      var textRect = label.getBoundingRect().clone();\n      textRect.applyTransform(label.getComputedTransform());\n      var margin = (label.style.margin || 0) + 2.1;\n      textRect.y -= margin / 2;\n      textRect.height += margin;\n      labelLayoutList.push({\n        label: label,\n        labelLine: labelLine,\n        position: labelPosition,\n        len: labelLineLen,\n        len2: labelLineLen2,\n        minTurnAngle: labelLineModel.get('minTurnAngle'),\n        maxSurfaceAngle: labelLineModel.get('maxSurfaceAngle'),\n        surfaceNormal: new Point(nx, ny),\n        linePoints: linePoints,\n        textAlign: textAlign,\n        labelDistance: labelDistance,\n        labelAlignTo: labelAlignTo,\n        edgeDistance: edgeDistance,\n        bleedMargin: bleedMargin,\n        rect: textRect\n      });\n    } else {\n      label.setStyle({\n        align: textAlign\n      });\n      var selectState = label.states.select;\n\n      if (selectState) {\n        selectState.x += label.x;\n        selectState.y += label.y;\n      }\n    }\n\n    sector.setTextConfig({\n      inside: isLabelInside\n    });\n  });\n\n  if (!hasLabelRotate && seriesModel.get('avoidLabelOverlap')) {\n    avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop);\n  }\n\n  for (var i = 0; i < labelLayoutList.length; i++) {\n    var layout = labelLayoutList[i];\n    var label = layout.label;\n    var labelLine = layout.labelLine;\n    var notShowLabel = isNaN(label.x) || isNaN(label.y);\n\n    if (label) {\n      label.setStyle({\n        align: layout.textAlign\n      });\n\n      if (notShowLabel) {\n        each(label.states, setNotShow);\n        label.ignore = true;\n      }\n\n      var selectState = label.states.select;\n\n      if (selectState) {\n        selectState.x += label.x;\n        selectState.y += label.y;\n      }\n    }\n\n    if (labelLine) {\n      var linePoints = layout.linePoints;\n\n      if (notShowLabel || !linePoints) {\n        each(labelLine.states, setNotShow);\n        labelLine.ignore = true;\n      } else {\n        limitTurnAngle(linePoints, layout.minTurnAngle);\n        limitSurfaceAngle(linePoints, layout.surfaceNormal, layout.maxSurfaceAngle);\n        labelLine.setShape({\n          points: linePoints\n        });\n        label.__hostTarget.textGuideLineConfig = {\n          anchor: new Point(linePoints[0][0], linePoints[0][1])\n        };\n      }\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isArray } from 'zrender/lib/core/util';\nimport { parsePercent } from 'zrender/lib/contain/text';\nexport function getSectorCornerRadius(model, shape) {\n  var cornerRadius = model.get('borderRadius');\n\n  if (cornerRadius == null) {\n    return null;\n  }\n\n  if (!isArray(cornerRadius)) {\n    cornerRadius = [cornerRadius, cornerRadius];\n  }\n\n  return {\n    innerCornerRadius: parsePercent(cornerRadius[0], shape.r0),\n    cornerRadius: parsePercent(cornerRadius[1], shape.r)\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __assign, __extends } from \"tslib\";\nimport { extend, retrieve3 } from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport ChartView from '../../view/Chart';\nimport labelLayout from './labelLayout';\nimport { setLabelLineStyle, getLabelLineStatesModels } from '../../label/labelGuideHelper';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { getSectorCornerRadius } from '../helper/pieHelper';\n\nvar PiePiece = function (_super) {\n  __extends(PiePiece, _super);\n\n  function PiePiece(data, idx, startAngle) {\n    var _this = _super.call(this) || this;\n\n    _this.z2 = 2;\n    var polyline = new graphic.Polyline();\n    var text = new graphic.Text();\n\n    _this.setTextGuideLine(polyline);\n\n    _this.setTextContent(text);\n\n    _this.updateData(data, idx, startAngle, true);\n\n    return _this;\n  }\n\n  PiePiece.prototype.updateData = function (data, idx, startAngle, firstCreate) {\n    var sector = this;\n    var seriesModel = data.hostModel;\n    var itemModel = data.getItemModel(idx);\n    var emphasisModel = itemModel.getModel('emphasis');\n    var layout = data.getItemLayout(idx);\n    var sectorShape = extend(getSectorCornerRadius(itemModel.getModel('itemStyle'), layout) || {}, layout);\n\n    if (firstCreate) {\n      sector.setShape(sectorShape);\n      var animationType = seriesModel.getShallow('animationType');\n\n      if (animationType === 'scale') {\n        sector.shape.r = layout.r0;\n        graphic.initProps(sector, {\n          shape: {\n            r: layout.r\n          }\n        }, seriesModel, idx);\n      } else {\n        if (startAngle != null) {\n          sector.setShape({\n            startAngle: startAngle,\n            endAngle: startAngle\n          });\n          graphic.initProps(sector, {\n            shape: {\n              startAngle: layout.startAngle,\n              endAngle: layout.endAngle\n            }\n          }, seriesModel, idx);\n        } else {\n          sector.shape.endAngle = layout.startAngle;\n          graphic.updateProps(sector, {\n            shape: {\n              endAngle: layout.endAngle\n            }\n          }, seriesModel, idx);\n        }\n      }\n    } else {\n      graphic.updateProps(sector, {\n        shape: sectorShape\n      }, seriesModel, idx);\n    }\n\n    sector.useStyle(data.getItemVisual(idx, 'style'));\n    setStatesStylesFromModel(sector, itemModel);\n    var midAngle = (layout.startAngle + layout.endAngle) / 2;\n    var offset = seriesModel.get('selectedOffset');\n    var dx = Math.cos(midAngle) * offset;\n    var dy = Math.sin(midAngle) * offset;\n    var cursorStyle = itemModel.getShallow('cursor');\n    cursorStyle && sector.attr('cursor', cursorStyle);\n\n    this._updateLabel(seriesModel, data, idx);\n\n    sector.ensureState('emphasis').shape = __assign({\n      r: layout.r + (emphasisModel.get('scale') ? emphasisModel.get('scaleSize') || 0 : 0)\n    }, getSectorCornerRadius(emphasisModel.getModel('itemStyle'), layout));\n    extend(sector.ensureState('select'), {\n      x: dx,\n      y: dy,\n      shape: getSectorCornerRadius(itemModel.getModel(['select', 'itemStyle']), layout)\n    });\n    extend(sector.ensureState('blur'), {\n      shape: getSectorCornerRadius(itemModel.getModel(['blur', 'itemStyle']), layout)\n    });\n    var labelLine = sector.getTextGuideLine();\n    var labelText = sector.getTextContent();\n    extend(labelLine.ensureState('select'), {\n      x: dx,\n      y: dy\n    });\n    extend(labelText.ensureState('select'), {\n      x: dx,\n      y: dy\n    });\n    enableHoverEmphasis(this, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n  };\n\n  PiePiece.prototype._updateLabel = function (seriesModel, data, idx) {\n    var sector = this;\n    var itemModel = data.getItemModel(idx);\n    var labelLineModel = itemModel.getModel('labelLine');\n    var style = data.getItemVisual(idx, 'style');\n    var visualColor = style && style.fill;\n    var visualOpacity = style && style.opacity;\n    setLabelStyle(sector, getLabelStatesModels(itemModel), {\n      labelFetcher: data.hostModel,\n      labelDataIndex: idx,\n      inheritColor: visualColor,\n      defaultOpacity: visualOpacity,\n      defaultText: seriesModel.getFormattedLabel(idx, 'normal') || data.getName(idx)\n    });\n    var labelText = sector.getTextContent();\n    sector.setTextConfig({\n      position: null,\n      rotation: null\n    });\n    labelText.attr({\n      z2: 10\n    });\n    setLabelLineStyle(this, getLabelLineStatesModels(itemModel), {\n      stroke: visualColor,\n      opacity: retrieve3(labelLineModel.get(['lineStyle', 'opacity']), visualOpacity, 1)\n    });\n  };\n\n  return PiePiece;\n}(graphic.Sector);\n\nvar PieView = function (_super) {\n  __extends(PieView, _super);\n\n  function PieView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.ignoreLabelLineUpdate = true;\n    return _this;\n  }\n\n  PieView.prototype.init = function () {\n    var sectorGroup = new graphic.Group();\n    this._sectorGroup = sectorGroup;\n  };\n\n  PieView.prototype.render = function (seriesModel, ecModel, api, payload) {\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var group = this.group;\n    var startAngle;\n\n    if (!oldData && data.count() > 0) {\n      var shape = data.getItemLayout(0);\n\n      for (var s = 1; isNaN(shape && shape.startAngle) && s < data.count(); ++s) {\n        shape = data.getItemLayout(s);\n      }\n\n      if (shape) {\n        startAngle = shape.startAngle;\n      }\n    }\n\n    data.diff(oldData).add(function (idx) {\n      var piePiece = new PiePiece(data, idx, startAngle);\n      data.setItemGraphicEl(idx, piePiece);\n      group.add(piePiece);\n    }).update(function (newIdx, oldIdx) {\n      var piePiece = oldData.getItemGraphicEl(oldIdx);\n      piePiece.updateData(data, newIdx, startAngle);\n      piePiece.off('click');\n      group.add(piePiece);\n      data.setItemGraphicEl(newIdx, piePiece);\n    }).remove(function (idx) {\n      var piePiece = oldData.getItemGraphicEl(idx);\n      graphic.removeElementWithFadeOut(piePiece, seriesModel, idx);\n    }).execute();\n    labelLayout(seriesModel);\n\n    if (seriesModel.get('animationTypeUpdate') !== 'expansion') {\n      this._data = data;\n    }\n  };\n\n  PieView.prototype.dispose = function () {};\n\n  PieView.prototype.containPoint = function (point, seriesModel) {\n    var data = seriesModel.getData();\n    var itemLayout = data.getItemLayout(0);\n\n    if (itemLayout) {\n      var dx = point[0] - itemLayout.cx;\n      var dy = point[1] - itemLayout.cy;\n      var radius = Math.sqrt(dx * dx + dy * dy);\n      return radius <= itemLayout.r && radius >= itemLayout.r0;\n    }\n  };\n\n  PieView.type = 'pie';\n  return PieView;\n}(ChartView);\n\nexport default PieView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport createDimensions from '../../data/helper/createDimensions';\nimport List from '../../data/List';\nimport { extend, isArray } from 'zrender/lib/core/util';\nexport default function createListSimply(seriesModel, opt, nameList) {\n  opt = isArray(opt) && {\n    coordDimensions: opt\n  } || extend({}, opt);\n  var source = seriesModel.getSource();\n  var dimensionsInfo = createDimensions(source, opt);\n  var list = new List(dimensionsInfo, seriesModel);\n  list.initData(source, nameList);\n  return list;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar LegendVisualProvider = function () {\n  function LegendVisualProvider(getDataWithEncodedVisual, getRawData) {\n    this._getDataWithEncodedVisual = getDataWithEncodedVisual;\n    this._getRawData = getRawData;\n  }\n\n  LegendVisualProvider.prototype.getAllNames = function () {\n    var rawData = this._getRawData();\n\n    return rawData.mapArray(rawData.getName);\n  };\n\n  LegendVisualProvider.prototype.containName = function (name) {\n    var rawData = this._getRawData();\n\n    return rawData.indexOfName(name) >= 0;\n  };\n\n  LegendVisualProvider.prototype.indexOfName = function (name) {\n    var dataWithEncodedVisual = this._getDataWithEncodedVisual();\n\n    return dataWithEncodedVisual.indexOfName(name);\n  };\n\n  LegendVisualProvider.prototype.getItemVisual = function (dataIndex, key) {\n    var dataWithEncodedVisual = this._getDataWithEncodedVisual();\n\n    return dataWithEncodedVisual.getItemVisual(dataIndex, key);\n  };\n\n  return LegendVisualProvider;\n}();\n\nexport default LegendVisualProvider;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListSimply from '../helper/createListSimply';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nimport { getPercentWithPrecision } from '../../util/number';\nimport { makeSeriesEncodeForNameBased } from '../../data/helper/sourceHelper';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider';\nimport SeriesModel from '../../model/Series';\n\nvar PieSeriesModel = function (_super) {\n  __extends(PieSeriesModel, _super);\n\n  function PieSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.useColorPaletteOnData = true;\n    return _this;\n  }\n\n  PieSeriesModel.prototype.init = function (option) {\n    _super.prototype.init.apply(this, arguments);\n\n    this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));\n\n    this._defaultLabelLine(option);\n  };\n\n  PieSeriesModel.prototype.mergeOption = function () {\n    _super.prototype.mergeOption.apply(this, arguments);\n  };\n\n  PieSeriesModel.prototype.getInitialData = function () {\n    return createListSimply(this, {\n      coordDimensions: ['value'],\n      encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)\n    });\n  };\n\n  PieSeriesModel.prototype.getDataParams = function (dataIndex) {\n    var data = this.getData();\n\n    var params = _super.prototype.getDataParams.call(this, dataIndex);\n\n    var valueList = [];\n    data.each(data.mapDimension('value'), function (value) {\n      valueList.push(value);\n    });\n    params.percent = getPercentWithPrecision(valueList, dataIndex, data.hostModel.get('percentPrecision'));\n    params.$vars.push('percent');\n    return params;\n  };\n\n  PieSeriesModel.prototype._defaultLabelLine = function (option) {\n    modelUtil.defaultEmphasis(option, 'labelLine', ['show']);\n    var labelLineNormalOpt = option.labelLine;\n    var labelLineEmphasisOpt = option.emphasis.labelLine;\n    labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show;\n    labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show;\n  };\n\n  PieSeriesModel.type = 'series.pie';\n  PieSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    center: ['50%', '50%'],\n    radius: [0, '75%'],\n    clockwise: true,\n    startAngle: 90,\n    minAngle: 0,\n    minShowLabelAngle: 0,\n    selectedOffset: 10,\n    percentPrecision: 2,\n    stillShowZeroSum: true,\n    left: 0,\n    top: 0,\n    right: 0,\n    bottom: 0,\n    width: null,\n    height: null,\n    label: {\n      rotate: 0,\n      show: true,\n      overflow: 'truncate',\n      position: 'outer',\n      alignTo: 'none',\n      edgeDistance: '25%',\n      bleedMargin: 10,\n      distanceToLabelLine: 5\n    },\n    labelLine: {\n      show: true,\n      length: 15,\n      length2: 15,\n      smooth: false,\n      minTurnAngle: 90,\n      maxSurfaceAngle: 90,\n      lineStyle: {\n        width: 1,\n        type: 'solid'\n      }\n    },\n    itemStyle: {\n      borderWidth: 1\n    },\n    labelLayout: {\n      hideOverlap: true\n    },\n    emphasis: {\n      scale: true,\n      scaleSize: 5\n    },\n    avoidLabelOverlap: true,\n    animationType: 'expansion',\n    animationDuration: 1000,\n    animationTypeUpdate: 'transition',\n    animationEasingUpdate: 'cubicInOut',\n    animationDurationUpdate: 500,\n    animationEasing: 'cubicInOut'\n  };\n  return PieSeriesModel;\n}(SeriesModel);\n\nexport default PieSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createLegacyDataSelectAction } from '../../legacy/dataSelectAction';\nimport pieLayout from '../pie/pieLayout';\nimport dataFilter from '../../processor/dataFilter';\nimport { curry } from 'zrender/lib/core/util';\nimport PieView from './PieView';\nimport PieSeriesModel from './PieSeries';\nexport function install(registers) {\n  registers.registerChartView(PieView);\n  registers.registerSeriesModel(PieSeriesModel);\n  createLegacyDataSelectAction('pie', registers.registerAction);\n  registers.registerLayout(curry(pieLayout, 'pie'));\n  registers.registerProcessor(dataFilter('pie'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListFromArray from '../helper/createListFromArray';\nimport SeriesModel from '../../model/Series';\n\nvar ScatterSeriesModel = function (_super) {\n  __extends(ScatterSeriesModel, _super);\n\n  function ScatterSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ScatterSeriesModel.type;\n    _this.hasSymbolVisual = true;\n    return _this;\n  }\n\n  ScatterSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: true\n    });\n  };\n\n  ScatterSeriesModel.prototype.getProgressive = function () {\n    var progressive = this.option.progressive;\n\n    if (progressive == null) {\n      return this.option.large ? 5e3 : this.get('progressive');\n    }\n\n    return progressive;\n  };\n\n  ScatterSeriesModel.prototype.getProgressiveThreshold = function () {\n    var progressiveThreshold = this.option.progressiveThreshold;\n\n    if (progressiveThreshold == null) {\n      return this.option.large ? 1e4 : this.get('progressiveThreshold');\n    }\n\n    return progressiveThreshold;\n  };\n\n  ScatterSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n    return selectors.point(data.getItemLayout(dataIndex));\n  };\n\n  ScatterSeriesModel.type = 'series.scatter';\n  ScatterSeriesModel.dependencies = ['grid', 'polar', 'geo', 'singleAxis', 'calendar'];\n  ScatterSeriesModel.defaultOption = {\n    coordinateSystem: 'cartesian2d',\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    symbolSize: 10,\n    large: false,\n    largeThreshold: 2000,\n    itemStyle: {\n      opacity: 0.8\n    },\n    emphasis: {\n      scale: true\n    },\n    clip: true,\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    }\n  };\n  return ScatterSeriesModel;\n}(SeriesModel);\n\nexport default ScatterSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { createSymbol } from '../../util/symbol';\nimport IncrementalDisplayable from 'zrender/lib/graphic/IncrementalDisplayable';\nimport { getECData } from '../../util/innerStore';\nvar BOOST_SIZE_THRESHOLD = 4;\n\nvar LargeSymbolPathShape = function () {\n  function LargeSymbolPathShape() {}\n\n  return LargeSymbolPathShape;\n}();\n\nvar LargeSymbolPath = function (_super) {\n  __extends(LargeSymbolPath, _super);\n\n  function LargeSymbolPath(opts) {\n    return _super.call(this, opts) || this;\n  }\n\n  LargeSymbolPath.prototype.getDefaultShape = function () {\n    return new LargeSymbolPathShape();\n  };\n\n  LargeSymbolPath.prototype.buildPath = function (path, shape) {\n    var points = shape.points;\n    var size = shape.size;\n    var symbolProxy = this.symbolProxy;\n    var symbolProxyShape = symbolProxy.shape;\n    var ctx = path.getContext ? path.getContext() : path;\n    var canBoost = ctx && size[0] < BOOST_SIZE_THRESHOLD;\n\n    if (canBoost) {\n      this._ctx = ctx;\n      return;\n    }\n\n    this._ctx = null;\n\n    for (var i = 0; i < points.length;) {\n      var x = points[i++];\n      var y = points[i++];\n\n      if (isNaN(x) || isNaN(y)) {\n        continue;\n      }\n\n      if (this.softClipShape && !this.softClipShape.contain(x, y)) {\n        continue;\n      }\n\n      symbolProxyShape.x = x - size[0] / 2;\n      symbolProxyShape.y = y - size[1] / 2;\n      symbolProxyShape.width = size[0];\n      symbolProxyShape.height = size[1];\n      symbolProxy.buildPath(path, symbolProxyShape, true);\n    }\n  };\n\n  LargeSymbolPath.prototype.afterBrush = function () {\n    var shape = this.shape;\n    var points = shape.points;\n    var size = shape.size;\n    var ctx = this._ctx;\n\n    if (!ctx) {\n      return;\n    }\n\n    for (var i = 0; i < points.length;) {\n      var x = points[i++];\n      var y = points[i++];\n\n      if (isNaN(x) || isNaN(y)) {\n        continue;\n      }\n\n      if (this.softClipShape && !this.softClipShape.contain(x, y)) {\n        continue;\n      }\n\n      ctx.fillRect(x - size[0] / 2, y - size[1] / 2, size[0], size[1]);\n    }\n  };\n\n  LargeSymbolPath.prototype.findDataIndex = function (x, y) {\n    var shape = this.shape;\n    var points = shape.points;\n    var size = shape.size;\n    var w = Math.max(size[0], 4);\n    var h = Math.max(size[1], 4);\n\n    for (var idx = points.length / 2 - 1; idx >= 0; idx--) {\n      var i = idx * 2;\n      var x0 = points[i] - w / 2;\n      var y0 = points[i + 1] - h / 2;\n\n      if (x >= x0 && y >= y0 && x <= x0 + w && y <= y0 + h) {\n        return idx;\n      }\n    }\n\n    return -1;\n  };\n\n  return LargeSymbolPath;\n}(graphic.Path);\n\nvar LargeSymbolDraw = function () {\n  function LargeSymbolDraw() {\n    this.group = new graphic.Group();\n  }\n\n  LargeSymbolDraw.prototype.isPersistent = function () {\n    return !this._incremental;\n  };\n\n  ;\n\n  LargeSymbolDraw.prototype.updateData = function (data, opt) {\n    this.group.removeAll();\n    var symbolEl = new LargeSymbolPath({\n      rectHover: true,\n      cursor: 'default'\n    });\n    symbolEl.setShape({\n      points: data.getLayout('points')\n    });\n\n    this._setCommon(symbolEl, data, false, opt);\n\n    this.group.add(symbolEl);\n    this._incremental = null;\n  };\n\n  LargeSymbolDraw.prototype.updateLayout = function (data) {\n    if (this._incremental) {\n      return;\n    }\n\n    var points = data.getLayout('points');\n    this.group.eachChild(function (child) {\n      if (child.startIndex != null) {\n        var len = (child.endIndex - child.startIndex) * 2;\n        var byteOffset = child.startIndex * 4 * 2;\n        points = new Float32Array(points.buffer, byteOffset, len);\n      }\n\n      child.setShape('points', points);\n    });\n  };\n\n  LargeSymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\n    this.group.removeAll();\n\n    this._clearIncremental();\n\n    if (data.count() > 2e6) {\n      if (!this._incremental) {\n        this._incremental = new IncrementalDisplayable({\n          silent: true\n        });\n      }\n\n      this.group.add(this._incremental);\n    } else {\n      this._incremental = null;\n    }\n  };\n\n  LargeSymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\n    var symbolEl;\n\n    if (this._incremental) {\n      symbolEl = new LargeSymbolPath();\n\n      this._incremental.addDisplayable(symbolEl, true);\n    } else {\n      symbolEl = new LargeSymbolPath({\n        rectHover: true,\n        cursor: 'default',\n        startIndex: taskParams.start,\n        endIndex: taskParams.end\n      });\n      symbolEl.incremental = true;\n      this.group.add(symbolEl);\n    }\n\n    symbolEl.setShape({\n      points: data.getLayout('points')\n    });\n\n    this._setCommon(symbolEl, data, !!this._incremental, opt);\n  };\n\n  LargeSymbolDraw.prototype._setCommon = function (symbolEl, data, isIncremental, opt) {\n    var hostModel = data.hostModel;\n    opt = opt || {};\n    var size = data.getVisual('symbolSize');\n    symbolEl.setShape('size', size instanceof Array ? size : [size, size]);\n    symbolEl.softClipShape = opt.clipShape || null;\n    symbolEl.symbolProxy = createSymbol(data.getVisual('symbol'), 0, 0, 0, 0);\n    symbolEl.setColor = symbolEl.symbolProxy.setColor;\n    var extrudeShadow = symbolEl.shape.size[0] < BOOST_SIZE_THRESHOLD;\n    symbolEl.useStyle(hostModel.getModel('itemStyle').getItemStyle(extrudeShadow ? ['color', 'shadowBlur', 'shadowColor'] : ['color']));\n    var globalStyle = data.getVisual('style');\n    var visualColor = globalStyle && globalStyle.fill;\n\n    if (visualColor) {\n      symbolEl.setColor(visualColor);\n    }\n\n    if (!isIncremental) {\n      var ecData_1 = getECData(symbolEl);\n      ecData_1.seriesIndex = hostModel.seriesIndex;\n      symbolEl.on('mousemove', function (e) {\n        ecData_1.dataIndex = null;\n        var dataIndex = symbolEl.findDataIndex(e.offsetX, e.offsetY);\n\n        if (dataIndex >= 0) {\n          ecData_1.dataIndex = dataIndex + (symbolEl.startIndex || 0);\n        }\n      });\n    }\n  };\n\n  LargeSymbolDraw.prototype.remove = function () {\n    this._clearIncremental();\n\n    this._incremental = null;\n    this.group.removeAll();\n  };\n\n  LargeSymbolDraw.prototype._clearIncremental = function () {\n    var incremental = this._incremental;\n\n    if (incremental) {\n      incremental.clearDisplaybles();\n    }\n  };\n\n  return LargeSymbolDraw;\n}();\n\nexport default LargeSymbolDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SymbolDraw from '../helper/SymbolDraw';\nimport LargeSymbolDraw from '../helper/LargeSymbolDraw';\nimport pointsLayout from '../../layout/points';\nimport ChartView from '../../view/Chart';\n\nvar ScatterView = function (_super) {\n  __extends(ScatterView, _super);\n\n  function ScatterView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ScatterView.type;\n    return _this;\n  }\n\n  ScatterView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n\n    var symbolDraw = this._updateSymbolDraw(data, seriesModel);\n\n    symbolDraw.updateData(data, {\n      clipShape: this._getClipShape(seriesModel)\n    });\n    this._finished = true;\n  };\n\n  ScatterView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n\n    var symbolDraw = this._updateSymbolDraw(data, seriesModel);\n\n    symbolDraw.incrementalPrepareUpdate(data);\n    this._finished = false;\n  };\n\n  ScatterView.prototype.incrementalRender = function (taskParams, seriesModel, ecModel) {\n    this._symbolDraw.incrementalUpdate(taskParams, seriesModel.getData(), {\n      clipShape: this._getClipShape(seriesModel)\n    });\n\n    this._finished = taskParams.end === seriesModel.getData().count();\n  };\n\n  ScatterView.prototype.updateTransform = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    this.group.dirty();\n\n    if (!this._finished || data.count() > 1e4 || !this._symbolDraw.isPersistent()) {\n      return {\n        update: true\n      };\n    } else {\n      var res = pointsLayout('').reset(seriesModel, ecModel, api);\n\n      if (res.progress) {\n        res.progress({\n          start: 0,\n          end: data.count(),\n          count: data.count()\n        }, data);\n      }\n\n      this._symbolDraw.updateLayout(data);\n    }\n  };\n\n  ScatterView.prototype._getClipShape = function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n    var clipArea = coordSys && coordSys.getArea && coordSys.getArea();\n    return seriesModel.get('clip', true) ? clipArea : null;\n  };\n\n  ScatterView.prototype._updateSymbolDraw = function (data, seriesModel) {\n    var symbolDraw = this._symbolDraw;\n    var pipelineContext = seriesModel.pipelineContext;\n    var isLargeDraw = pipelineContext.large;\n\n    if (!symbolDraw || isLargeDraw !== this._isLargeDraw) {\n      symbolDraw && symbolDraw.remove();\n      symbolDraw = this._symbolDraw = isLargeDraw ? new LargeSymbolDraw() : new SymbolDraw();\n      this._isLargeDraw = isLargeDraw;\n      this.group.removeAll();\n    }\n\n    this.group.add(symbolDraw.group);\n    return symbolDraw;\n  };\n\n  ScatterView.prototype.remove = function (ecModel, api) {\n    this._symbolDraw && this._symbolDraw.remove(true);\n    this._symbolDraw = null;\n  };\n\n  ScatterView.prototype.dispose = function () {};\n\n  ScatterView.type = 'scatter';\n  return ScatterView;\n}(ChartView);\n\nexport default ScatterView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\n\nvar GridModel = function (_super) {\n  __extends(GridModel, _super);\n\n  function GridModel() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  GridModel.type = 'grid';\n  GridModel.dependencies = ['xAxis', 'yAxis'];\n  GridModel.layoutMode = 'box';\n  GridModel.defaultOption = {\n    show: false,\n    zlevel: 0,\n    z: 0,\n    left: '10%',\n    top: 60,\n    right: '10%',\n    bottom: 70,\n    containLabel: false,\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderWidth: 1,\n    borderColor: '#ccc'\n  };\n  return GridModel;\n}(ComponentModel);\n\nexport default GridModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin';\nimport { SINGLE_REFERRING } from '../../util/model';\n\nvar CartesianAxisModel = function (_super) {\n  __extends(CartesianAxisModel, _super);\n\n  function CartesianAxisModel() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  CartesianAxisModel.prototype.getCoordSysModel = function () {\n    return this.getReferringComponents('grid', SINGLE_REFERRING).models[0];\n  };\n\n  CartesianAxisModel.type = 'cartesian2dAxis';\n  return CartesianAxisModel;\n}(ComponentModel);\n\nexport { CartesianAxisModel };\nzrUtil.mixin(CartesianAxisModel, AxisModelCommonMixin);\nexport default CartesianAxisModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar defaultOption = {\n  show: true,\n  zlevel: 0,\n  z: 0,\n  inverse: false,\n  name: '',\n  nameLocation: 'end',\n  nameRotate: null,\n  nameTruncate: {\n    maxWidth: null,\n    ellipsis: '...',\n    placeholder: '.'\n  },\n  nameTextStyle: {},\n  nameGap: 15,\n  silent: false,\n  triggerEvent: false,\n  tooltip: {\n    show: false\n  },\n  axisPointer: {},\n  axisLine: {\n    show: true,\n    onZero: true,\n    onZeroAxisIndex: null,\n    lineStyle: {\n      color: '#6E7079',\n      width: 1,\n      type: 'solid'\n    },\n    symbol: ['none', 'none'],\n    symbolSize: [10, 15]\n  },\n  axisTick: {\n    show: true,\n    inside: false,\n    length: 5,\n    lineStyle: {\n      width: 1\n    }\n  },\n  axisLabel: {\n    show: true,\n    inside: false,\n    rotate: 0,\n    showMinLabel: null,\n    showMaxLabel: null,\n    margin: 8,\n    fontSize: 12\n  },\n  splitLine: {\n    show: true,\n    lineStyle: {\n      color: ['#E0E6F1'],\n      width: 1,\n      type: 'solid'\n    }\n  },\n  splitArea: {\n    show: false,\n    areaStyle: {\n      color: ['rgba(250,250,250,0.2)', 'rgba(210,219,238,0.2)']\n    }\n  }\n};\nvar categoryAxis = zrUtil.merge({\n  boundaryGap: true,\n  deduplication: null,\n  splitLine: {\n    show: false\n  },\n  axisTick: {\n    alignWithLabel: false,\n    interval: 'auto'\n  },\n  axisLabel: {\n    interval: 'auto'\n  }\n}, defaultOption);\nvar valueAxis = zrUtil.merge({\n  boundaryGap: [0, 0],\n  axisLine: {\n    show: 'auto'\n  },\n  axisTick: {\n    show: 'auto'\n  },\n  splitNumber: 5,\n  minorTick: {\n    show: false,\n    splitNumber: 5,\n    length: 3,\n    lineStyle: {}\n  },\n  minorSplitLine: {\n    show: false,\n    lineStyle: {\n      color: '#F4F7FD',\n      width: 1\n    }\n  }\n}, defaultOption);\nvar timeAxis = zrUtil.merge({\n  scale: true,\n  splitNumber: 6,\n  axisLabel: {\n    showMinLabel: false,\n    showMaxLabel: false,\n    rich: {\n      primary: {\n        fontWeight: 'bold'\n      }\n    }\n  },\n  splitLine: {\n    show: false\n  }\n}, valueAxis);\nvar logAxis = zrUtil.defaults({\n  scale: true,\n  logBase: 10\n}, valueAxis);\nexport default {\n  category: categoryAxis,\n  value: valueAxis,\n  time: timeAxis,\n  log: logAxis\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport var AXIS_TYPES = {\n  value: 1,\n  category: 1,\n  time: 1,\n  log: 1\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport axisDefault from './axisDefault';\nimport { getLayoutParams, mergeLayoutParam, fetchLayoutMode } from '../util/layout';\nimport OrdinalMeta from '../data/OrdinalMeta';\nimport { AXIS_TYPES } from './axisCommonTypes';\nimport { each, merge } from 'zrender/lib/core/util';\nexport default function axisModelCreator(registers, axisName, BaseAxisModelClass, extraDefaultOption) {\n  each(AXIS_TYPES, function (v, axisType) {\n    var defaultOption = merge(merge({}, axisDefault[axisType], true), extraDefaultOption, true);\n\n    var AxisModel = function (_super) {\n      __extends(AxisModel, _super);\n\n      function AxisModel() {\n        var args = [];\n\n        for (var _i = 0; _i < arguments.length; _i++) {\n          args[_i] = arguments[_i];\n        }\n\n        var _this = _super.apply(this, args) || this;\n\n        _this.type = axisName + 'Axis.' + axisType;\n        return _this;\n      }\n\n      AxisModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n        var layoutMode = fetchLayoutMode(this);\n        var inputPositionParams = layoutMode ? getLayoutParams(option) : {};\n        var themeModel = ecModel.getTheme();\n        merge(option, themeModel.get(axisType + 'Axis'));\n        merge(option, this.getDefaultOption());\n        option.type = getAxisType(option);\n\n        if (layoutMode) {\n          mergeLayoutParam(option, inputPositionParams, layoutMode);\n        }\n      };\n\n      AxisModel.prototype.optionUpdated = function () {\n        var thisOption = this.option;\n\n        if (thisOption.type === 'category') {\n          this.__ordinalMeta = OrdinalMeta.createByAxisModel(this);\n        }\n      };\n\n      AxisModel.prototype.getCategories = function (rawData) {\n        var option = this.option;\n\n        if (option.type === 'category') {\n          if (rawData) {\n            return option.data;\n          }\n\n          return this.__ordinalMeta.categories;\n        }\n      };\n\n      AxisModel.prototype.getOrdinalMeta = function () {\n        return this.__ordinalMeta;\n      };\n\n      AxisModel.type = axisName + 'Axis.' + axisType;\n      AxisModel.defaultOption = defaultOption;\n      return AxisModel;\n    }(BaseAxisModelClass);\n\n    registers.registerComponentModel(AxisModel);\n  });\n  registers.registerSubTypeDefaulter(axisName + 'Axis', getAxisType);\n}\n\nfunction getAxisType(option) {\n  return option.type || (option.data ? 'category' : 'value');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nvar Cartesian = function () {\n  function Cartesian(name) {\n    this.type = 'cartesian';\n    this._dimList = [];\n    this._axes = {};\n    this.name = name || '';\n  }\n\n  Cartesian.prototype.getAxis = function (dim) {\n    return this._axes[dim];\n  };\n\n  Cartesian.prototype.getAxes = function () {\n    return zrUtil.map(this._dimList, function (dim) {\n      return this._axes[dim];\n    }, this);\n  };\n\n  Cartesian.prototype.getAxesByScale = function (scaleType) {\n    scaleType = scaleType.toLowerCase();\n    return zrUtil.filter(this.getAxes(), function (axis) {\n      return axis.scale.type === scaleType;\n    });\n  };\n\n  Cartesian.prototype.addAxis = function (axis) {\n    var dim = axis.dim;\n    this._axes[dim] = axis;\n\n    this._dimList.push(dim);\n  };\n\n  return Cartesian;\n}();\n\n;\nexport default Cartesian;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport Cartesian from './Cartesian';\nimport { invert } from 'zrender/lib/core/matrix';\nimport { applyTransform } from 'zrender/lib/core/vector';\nexport var cartesian2DDimensions = ['x', 'y'];\n\nfunction canCalculateAffineTransform(scale) {\n  return scale.type === 'interval' || scale.type === 'time';\n}\n\nvar Cartesian2D = function (_super) {\n  __extends(Cartesian2D, _super);\n\n  function Cartesian2D() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'cartesian2d';\n    _this.dimensions = cartesian2DDimensions;\n    return _this;\n  }\n\n  Cartesian2D.prototype.calcAffineTransform = function () {\n    this._transform = this._invTransform = null;\n    var xAxisScale = this.getAxis('x').scale;\n    var yAxisScale = this.getAxis('y').scale;\n\n    if (!canCalculateAffineTransform(xAxisScale) || !canCalculateAffineTransform(yAxisScale)) {\n      return;\n    }\n\n    var xScaleExtent = xAxisScale.getExtent();\n    var yScaleExtent = yAxisScale.getExtent();\n    var start = this.dataToPoint([xScaleExtent[0], yScaleExtent[0]]);\n    var end = this.dataToPoint([xScaleExtent[1], yScaleExtent[1]]);\n    var xScaleSpan = xScaleExtent[1] - xScaleExtent[0];\n    var yScaleSpan = yScaleExtent[1] - yScaleExtent[0];\n\n    if (!xScaleSpan || !yScaleSpan) {\n      return;\n    }\n\n    var scaleX = (end[0] - start[0]) / xScaleSpan;\n    var scaleY = (end[1] - start[1]) / yScaleSpan;\n    var translateX = start[0] - xScaleExtent[0] * scaleX;\n    var translateY = start[1] - yScaleExtent[0] * scaleY;\n    var m = this._transform = [scaleX, 0, 0, scaleY, translateX, translateY];\n    this._invTransform = invert([], m);\n  };\n\n  Cartesian2D.prototype.getBaseAxis = function () {\n    return this.getAxesByScale('ordinal')[0] || this.getAxesByScale('time')[0] || this.getAxis('x');\n  };\n\n  Cartesian2D.prototype.containPoint = function (point) {\n    var axisX = this.getAxis('x');\n    var axisY = this.getAxis('y');\n    return axisX.contain(axisX.toLocalCoord(point[0])) && axisY.contain(axisY.toLocalCoord(point[1]));\n  };\n\n  Cartesian2D.prototype.containData = function (data) {\n    return this.getAxis('x').containData(data[0]) && this.getAxis('y').containData(data[1]);\n  };\n\n  Cartesian2D.prototype.dataToPoint = function (data, reserved, out) {\n    out = out || [];\n    var xVal = data[0];\n    var yVal = data[1];\n\n    if (this._transform && xVal != null && isFinite(xVal) && yVal != null && isFinite(yVal)) {\n      return applyTransform(out, data, this._transform);\n    }\n\n    var xAxis = this.getAxis('x');\n    var yAxis = this.getAxis('y');\n    out[0] = xAxis.toGlobalCoord(xAxis.dataToCoord(xVal));\n    out[1] = yAxis.toGlobalCoord(yAxis.dataToCoord(yVal));\n    return out;\n  };\n\n  Cartesian2D.prototype.clampData = function (data, out) {\n    var xScale = this.getAxis('x').scale;\n    var yScale = this.getAxis('y').scale;\n    var xAxisExtent = xScale.getExtent();\n    var yAxisExtent = yScale.getExtent();\n    var x = xScale.parse(data[0]);\n    var y = yScale.parse(data[1]);\n    out = out || [];\n    out[0] = Math.min(Math.max(Math.min(xAxisExtent[0], xAxisExtent[1]), x), Math.max(xAxisExtent[0], xAxisExtent[1]));\n    out[1] = Math.min(Math.max(Math.min(yAxisExtent[0], yAxisExtent[1]), y), Math.max(yAxisExtent[0], yAxisExtent[1]));\n    return out;\n  };\n\n  Cartesian2D.prototype.pointToData = function (point, out) {\n    out = out || [];\n\n    if (this._invTransform) {\n      return applyTransform(out, point, this._invTransform);\n    }\n\n    var xAxis = this.getAxis('x');\n    var yAxis = this.getAxis('y');\n    out[0] = xAxis.coordToData(xAxis.toLocalCoord(point[0]));\n    out[1] = yAxis.coordToData(yAxis.toLocalCoord(point[1]));\n    return out;\n  };\n\n  Cartesian2D.prototype.getOtherAxis = function (axis) {\n    return this.getAxis(axis.dim === 'x' ? 'y' : 'x');\n  };\n\n  Cartesian2D.prototype.getArea = function () {\n    var xExtent = this.getAxis('x').getGlobalExtent();\n    var yExtent = this.getAxis('y').getGlobalExtent();\n    var x = Math.min(xExtent[0], xExtent[1]);\n    var y = Math.min(yExtent[0], yExtent[1]);\n    var width = Math.max(xExtent[0], xExtent[1]) - x;\n    var height = Math.max(yExtent[0], yExtent[1]) - y;\n    return new BoundingRect(x, y, width, height);\n  };\n\n  return Cartesian2D;\n}(Cartesian);\n\n;\nexport default Cartesian2D;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis';\n\nvar Axis2D = function (_super) {\n  __extends(Axis2D, _super);\n\n  function Axis2D(dim, scale, coordExtent, axisType, position) {\n    var _this = _super.call(this, dim, scale, coordExtent) || this;\n\n    _this.index = 0;\n    _this.type = axisType || 'value';\n    _this.position = position || 'bottom';\n    return _this;\n  }\n\n  Axis2D.prototype.isHorizontal = function () {\n    var position = this.position;\n    return position === 'top' || position === 'bottom';\n  };\n\n  Axis2D.prototype.getGlobalExtent = function (asc) {\n    var ret = this.getExtent();\n    ret[0] = this.toGlobalCoord(ret[0]);\n    ret[1] = this.toGlobalCoord(ret[1]);\n    asc && ret[0] > ret[1] && ret.reverse();\n    return ret;\n  };\n\n  Axis2D.prototype.pointToData = function (point, clamp) {\n    return this.coordToData(this.toLocalCoord(point[this.dim === 'x' ? 0 : 1]), clamp);\n  };\n\n  Axis2D.prototype.setCategorySortInfo = function (info) {\n    if (this.type !== 'category') {\n      return false;\n    }\n\n    this.model.option.categorySortInfo = info;\n    this.scale.setSortInfo(info);\n  };\n\n  return Axis2D;\n}(Axis);\n\nexport default Axis2D;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { SINGLE_REFERRING } from '../../util/model';\nexport function layout(gridModel, axisModel, opt) {\n  opt = opt || {};\n  var grid = gridModel.coordinateSystem;\n  var axis = axisModel.axis;\n  var layout = {};\n  var otherAxisOnZeroOf = axis.getAxesOnZeroOf()[0];\n  var rawAxisPosition = axis.position;\n  var axisPosition = otherAxisOnZeroOf ? 'onZero' : rawAxisPosition;\n  var axisDim = axis.dim;\n  var rect = grid.getRect();\n  var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height];\n  var idx = {\n    left: 0,\n    right: 1,\n    top: 0,\n    bottom: 1,\n    onZero: 2\n  };\n  var axisOffset = axisModel.get('offset') || 0;\n  var posBound = axisDim === 'x' ? [rectBound[2] - axisOffset, rectBound[3] + axisOffset] : [rectBound[0] - axisOffset, rectBound[1] + axisOffset];\n\n  if (otherAxisOnZeroOf) {\n    var onZeroCoord = otherAxisOnZeroOf.toGlobalCoord(otherAxisOnZeroOf.dataToCoord(0));\n    posBound[idx.onZero] = Math.max(Math.min(onZeroCoord, posBound[1]), posBound[0]);\n  }\n\n  layout.position = [axisDim === 'y' ? posBound[idx[axisPosition]] : rectBound[0], axisDim === 'x' ? posBound[idx[axisPosition]] : rectBound[3]];\n  layout.rotation = Math.PI / 2 * (axisDim === 'x' ? 0 : 1);\n  var dirMap = {\n    top: -1,\n    bottom: 1,\n    left: -1,\n    right: 1\n  };\n  layout.labelDirection = layout.tickDirection = layout.nameDirection = dirMap[rawAxisPosition];\n  layout.labelOffset = otherAxisOnZeroOf ? posBound[idx[rawAxisPosition]] - posBound[idx.onZero] : 0;\n\n  if (axisModel.get(['axisTick', 'inside'])) {\n    layout.tickDirection = -layout.tickDirection;\n  }\n\n  if (zrUtil.retrieve(opt.labelInside, axisModel.get(['axisLabel', 'inside']))) {\n    layout.labelDirection = -layout.labelDirection;\n  }\n\n  var labelRotate = axisModel.get(['axisLabel', 'rotate']);\n  layout.labelRotate = axisPosition === 'top' ? -labelRotate : labelRotate;\n  layout.z2 = 1;\n  return layout;\n}\nexport function isCartesian2DSeries(seriesModel) {\n  return seriesModel.get('coordinateSystem') === 'cartesian2d';\n}\nexport function findAxisModels(seriesModel) {\n  var axisModelMap = {\n    xAxisModel: null,\n    yAxisModel: null\n  };\n  zrUtil.each(axisModelMap, function (v, key) {\n    var axisType = key.replace(/Model$/, '');\n    var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!axisModel) {\n        throw new Error(axisType + ' \"' + zrUtil.retrieve3(seriesModel.get(axisType + 'Index'), seriesModel.get(axisType + 'Id'), 0) + '\" not found');\n      }\n    }\n\n    axisModelMap[key] = axisModel;\n  });\n  return axisModelMap;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isObject, each, indexOf, retrieve3 } from 'zrender/lib/core/util';\nimport { getLayoutRect } from '../../util/layout';\nimport { createScaleByModel, ifAxisCrossZero, niceScaleExtent, estimateLabelUnionRect, getDataDimensionsOnAxis } from '../../coord/axisHelper';\nimport Cartesian2D, { cartesian2DDimensions } from './Cartesian2D';\nimport Axis2D from './Axis2D';\nimport { SINGLE_REFERRING } from '../../util/model';\nimport { isCartesian2DSeries, findAxisModels } from './cartesianAxisHelper';\n\nvar Grid = function () {\n  function Grid(gridModel, ecModel, api) {\n    this.type = 'grid';\n    this._coordsMap = {};\n    this._coordsList = [];\n    this._axesMap = {};\n    this._axesList = [];\n    this.axisPointerEnabled = true;\n    this.dimensions = cartesian2DDimensions;\n\n    this._initCartesian(gridModel, ecModel, api);\n\n    this.model = gridModel;\n  }\n\n  Grid.prototype.getRect = function () {\n    return this._rect;\n  };\n\n  Grid.prototype.update = function (ecModel, api) {\n    var axesMap = this._axesMap;\n\n    this._updateScale(ecModel, this.model);\n\n    each(axesMap.x, function (xAxis) {\n      niceScaleExtent(xAxis.scale, xAxis.model);\n    });\n    each(axesMap.y, function (yAxis) {\n      niceScaleExtent(yAxis.scale, yAxis.model);\n    });\n    var onZeroRecords = {};\n    each(axesMap.x, function (xAxis) {\n      fixAxisOnZero(axesMap, 'y', xAxis, onZeroRecords);\n    });\n    each(axesMap.y, function (yAxis) {\n      fixAxisOnZero(axesMap, 'x', yAxis, onZeroRecords);\n    });\n    this.resize(this.model, api);\n  };\n\n  Grid.prototype.resize = function (gridModel, api, ignoreContainLabel) {\n    var boxLayoutParams = gridModel.getBoxLayoutParams();\n    var isContainLabel = !ignoreContainLabel && gridModel.get('containLabel');\n    var gridRect = getLayoutRect(boxLayoutParams, {\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n    this._rect = gridRect;\n    var axesList = this._axesList;\n    adjustAxes();\n\n    if (isContainLabel) {\n      each(axesList, function (axis) {\n        if (!axis.model.get(['axisLabel', 'inside'])) {\n          var labelUnionRect = estimateLabelUnionRect(axis);\n\n          if (labelUnionRect) {\n            var dim = axis.isHorizontal() ? 'height' : 'width';\n            var margin = axis.model.get(['axisLabel', 'margin']);\n            gridRect[dim] -= labelUnionRect[dim] + margin;\n\n            if (axis.position === 'top') {\n              gridRect.y += labelUnionRect.height + margin;\n            } else if (axis.position === 'left') {\n              gridRect.x += labelUnionRect.width + margin;\n            }\n          }\n        }\n      });\n      adjustAxes();\n    }\n\n    each(this._coordsList, function (coord) {\n      coord.calcAffineTransform();\n    });\n\n    function adjustAxes() {\n      each(axesList, function (axis) {\n        var isHorizontal = axis.isHorizontal();\n        var extent = isHorizontal ? [0, gridRect.width] : [0, gridRect.height];\n        var idx = axis.inverse ? 1 : 0;\n        axis.setExtent(extent[idx], extent[1 - idx]);\n        updateAxisTransform(axis, isHorizontal ? gridRect.x : gridRect.y);\n      });\n    }\n  };\n\n  Grid.prototype.getAxis = function (dim, axisIndex) {\n    var axesMapOnDim = this._axesMap[dim];\n\n    if (axesMapOnDim != null) {\n      return axesMapOnDim[axisIndex || 0];\n    }\n  };\n\n  Grid.prototype.getAxes = function () {\n    return this._axesList.slice();\n  };\n\n  Grid.prototype.getCartesian = function (xAxisIndex, yAxisIndex) {\n    if (xAxisIndex != null && yAxisIndex != null) {\n      var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\n      return this._coordsMap[key];\n    }\n\n    if (isObject(xAxisIndex)) {\n      yAxisIndex = xAxisIndex.yAxisIndex;\n      xAxisIndex = xAxisIndex.xAxisIndex;\n    }\n\n    for (var i = 0, coordList = this._coordsList; i < coordList.length; i++) {\n      if (coordList[i].getAxis('x').index === xAxisIndex || coordList[i].getAxis('y').index === yAxisIndex) {\n        return coordList[i];\n      }\n    }\n  };\n\n  Grid.prototype.getCartesians = function () {\n    return this._coordsList.slice();\n  };\n\n  Grid.prototype.convertToPixel = function (ecModel, finder, value) {\n    var target = this._findConvertTarget(finder);\n\n    return target.cartesian ? target.cartesian.dataToPoint(value) : target.axis ? target.axis.toGlobalCoord(target.axis.dataToCoord(value)) : null;\n  };\n\n  Grid.prototype.convertFromPixel = function (ecModel, finder, value) {\n    var target = this._findConvertTarget(finder);\n\n    return target.cartesian ? target.cartesian.pointToData(value) : target.axis ? target.axis.coordToData(target.axis.toLocalCoord(value)) : null;\n  };\n\n  Grid.prototype._findConvertTarget = function (finder) {\n    var seriesModel = finder.seriesModel;\n    var xAxisModel = finder.xAxisModel || seriesModel && seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0];\n    var yAxisModel = finder.yAxisModel || seriesModel && seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0];\n    var gridModel = finder.gridModel;\n    var coordsList = this._coordsList;\n    var cartesian;\n    var axis;\n\n    if (seriesModel) {\n      cartesian = seriesModel.coordinateSystem;\n      indexOf(coordsList, cartesian) < 0 && (cartesian = null);\n    } else if (xAxisModel && yAxisModel) {\n      cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n    } else if (xAxisModel) {\n      axis = this.getAxis('x', xAxisModel.componentIndex);\n    } else if (yAxisModel) {\n      axis = this.getAxis('y', yAxisModel.componentIndex);\n    } else if (gridModel) {\n      var grid = gridModel.coordinateSystem;\n\n      if (grid === this) {\n        cartesian = this._coordsList[0];\n      }\n    }\n\n    return {\n      cartesian: cartesian,\n      axis: axis\n    };\n  };\n\n  Grid.prototype.containPoint = function (point) {\n    var coord = this._coordsList[0];\n\n    if (coord) {\n      return coord.containPoint(point);\n    }\n  };\n\n  Grid.prototype._initCartesian = function (gridModel, ecModel, api) {\n    var _this = this;\n\n    var grid = this;\n    var axisPositionUsed = {\n      left: false,\n      right: false,\n      top: false,\n      bottom: false\n    };\n    var axesMap = {\n      x: {},\n      y: {}\n    };\n    var axesCount = {\n      x: 0,\n      y: 0\n    };\n    ecModel.eachComponent('xAxis', createAxisCreator('x'), this);\n    ecModel.eachComponent('yAxis', createAxisCreator('y'), this);\n\n    if (!axesCount.x || !axesCount.y) {\n      this._axesMap = {};\n      this._axesList = [];\n      return;\n    }\n\n    this._axesMap = axesMap;\n    each(axesMap.x, function (xAxis, xAxisIndex) {\n      each(axesMap.y, function (yAxis, yAxisIndex) {\n        var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\n        var cartesian = new Cartesian2D(key);\n        cartesian.master = _this;\n        cartesian.model = gridModel;\n        _this._coordsMap[key] = cartesian;\n\n        _this._coordsList.push(cartesian);\n\n        cartesian.addAxis(xAxis);\n        cartesian.addAxis(yAxis);\n      });\n    });\n\n    function createAxisCreator(dimName) {\n      return function (axisModel, idx) {\n        if (!isAxisUsedInTheGrid(axisModel, gridModel)) {\n          return;\n        }\n\n        var axisPosition = axisModel.get('position');\n\n        if (dimName === 'x') {\n          if (axisPosition !== 'top' && axisPosition !== 'bottom') {\n            axisPosition = axisPositionUsed.bottom ? 'top' : 'bottom';\n          }\n        } else {\n          if (axisPosition !== 'left' && axisPosition !== 'right') {\n            axisPosition = axisPositionUsed.left ? 'right' : 'left';\n          }\n        }\n\n        axisPositionUsed[axisPosition] = true;\n        var axis = new Axis2D(dimName, createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisPosition);\n        var isCategory = axis.type === 'category';\n        axis.onBand = isCategory && axisModel.get('boundaryGap');\n        axis.inverse = axisModel.get('inverse');\n        axisModel.axis = axis;\n        axis.model = axisModel;\n        axis.grid = grid;\n        axis.index = idx;\n\n        grid._axesList.push(axis);\n\n        axesMap[dimName][idx] = axis;\n        axesCount[dimName]++;\n      };\n    }\n  };\n\n  Grid.prototype._updateScale = function (ecModel, gridModel) {\n    each(this._axesList, function (axis) {\n      axis.scale.setExtent(Infinity, -Infinity);\n\n      if (axis.type === 'category') {\n        var categorySortInfo = axis.model.get('categorySortInfo');\n        axis.scale.setSortInfo(categorySortInfo);\n      }\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      if (isCartesian2DSeries(seriesModel)) {\n        var axesModelMap = findAxisModels(seriesModel);\n        var xAxisModel = axesModelMap.xAxisModel;\n        var yAxisModel = axesModelMap.yAxisModel;\n\n        if (!isAxisUsedInTheGrid(xAxisModel, gridModel) || !isAxisUsedInTheGrid(yAxisModel, gridModel)) {\n          return;\n        }\n\n        var cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n        var data = seriesModel.getData();\n        var xAxis = cartesian.getAxis('x');\n        var yAxis = cartesian.getAxis('y');\n\n        if (data.type === 'list') {\n          unionExtent(data, xAxis);\n          unionExtent(data, yAxis);\n        }\n      }\n    }, this);\n\n    function unionExtent(data, axis) {\n      each(getDataDimensionsOnAxis(data, axis.dim), function (dim) {\n        axis.scale.unionExtentFromData(data, dim);\n      });\n    }\n  };\n\n  Grid.prototype.getTooltipAxes = function (dim) {\n    var baseAxes = [];\n    var otherAxes = [];\n    each(this.getCartesians(), function (cartesian) {\n      var baseAxis = dim != null && dim !== 'auto' ? cartesian.getAxis(dim) : cartesian.getBaseAxis();\n      var otherAxis = cartesian.getOtherAxis(baseAxis);\n      indexOf(baseAxes, baseAxis) < 0 && baseAxes.push(baseAxis);\n      indexOf(otherAxes, otherAxis) < 0 && otherAxes.push(otherAxis);\n    });\n    return {\n      baseAxes: baseAxes,\n      otherAxes: otherAxes\n    };\n  };\n\n  Grid.create = function (ecModel, api) {\n    var grids = [];\n    ecModel.eachComponent('grid', function (gridModel, idx) {\n      var grid = new Grid(gridModel, ecModel, api);\n      grid.name = 'grid_' + idx;\n      grid.resize(gridModel, api, true);\n      gridModel.coordinateSystem = grid;\n      grids.push(grid);\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      if (!isCartesian2DSeries(seriesModel)) {\n        return;\n      }\n\n      var axesModelMap = findAxisModels(seriesModel);\n      var xAxisModel = axesModelMap.xAxisModel;\n      var yAxisModel = axesModelMap.yAxisModel;\n      var gridModel = xAxisModel.getCoordSysModel();\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (!gridModel) {\n          throw new Error('Grid \"' + retrieve3(xAxisModel.get('gridIndex'), xAxisModel.get('gridId'), 0) + '\" not found');\n        }\n\n        if (xAxisModel.getCoordSysModel() !== yAxisModel.getCoordSysModel()) {\n          throw new Error('xAxis and yAxis must use the same grid');\n        }\n      }\n\n      var grid = gridModel.coordinateSystem;\n      seriesModel.coordinateSystem = grid.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n    });\n    return grids;\n  };\n\n  Grid.dimensions = cartesian2DDimensions;\n  return Grid;\n}();\n\nfunction isAxisUsedInTheGrid(axisModel, gridModel) {\n  return axisModel.getCoordSysModel() === gridModel;\n}\n\nfunction fixAxisOnZero(axesMap, otherAxisDim, axis, onZeroRecords) {\n  axis.getAxesOnZeroOf = function () {\n    return otherAxisOnZeroOf ? [otherAxisOnZeroOf] : [];\n  };\n\n  var otherAxes = axesMap[otherAxisDim];\n  var otherAxisOnZeroOf;\n  var axisModel = axis.model;\n  var onZero = axisModel.get(['axisLine', 'onZero']);\n  var onZeroAxisIndex = axisModel.get(['axisLine', 'onZeroAxisIndex']);\n\n  if (!onZero) {\n    return;\n  }\n\n  if (onZeroAxisIndex != null) {\n    if (canOnZeroToAxis(otherAxes[onZeroAxisIndex])) {\n      otherAxisOnZeroOf = otherAxes[onZeroAxisIndex];\n    }\n  } else {\n    for (var idx in otherAxes) {\n      if (otherAxes.hasOwnProperty(idx) && canOnZeroToAxis(otherAxes[idx]) && !onZeroRecords[getOnZeroRecordKey(otherAxes[idx])]) {\n        otherAxisOnZeroOf = otherAxes[idx];\n        break;\n      }\n    }\n  }\n\n  if (otherAxisOnZeroOf) {\n    onZeroRecords[getOnZeroRecordKey(otherAxisOnZeroOf)] = true;\n  }\n\n  function getOnZeroRecordKey(axis) {\n    return axis.dim + '_' + axis.index;\n  }\n}\n\nfunction canOnZeroToAxis(axis) {\n  return axis && axis.type !== 'category' && axis.type !== 'time' && ifAxisCrossZero(axis);\n}\n\nfunction updateAxisTransform(axis, coordBase) {\n  var axisExtent = axis.getExtent();\n  var axisExtentSum = axisExtent[0] + axisExtent[1];\n  axis.toGlobalCoord = axis.dim === 'x' ? function (coord) {\n    return coord + coordBase;\n  } : function (coord) {\n    return axisExtentSum - coord + coordBase;\n  };\n  axis.toLocalCoord = axis.dim === 'x' ? function (coord) {\n    return coord - coordBase;\n  } : function (coord) {\n    return axisExtentSum - coord + coordBase;\n  };\n}\n\nexport default Grid;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { retrieve, defaults, extend, each, isObject } from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { createTextStyle } from '../../label/labelStyle';\nimport Model from '../../model/Model';\nimport { isRadianAroundZero, remRadian } from '../../util/number';\nimport { createSymbol } from '../../util/symbol';\nimport * as matrixUtil from 'zrender/lib/core/matrix';\nimport { applyTransform as v2ApplyTransform } from 'zrender/lib/core/vector';\nimport { shouldShowAllLabels } from '../../coord/axisHelper';\nvar PI = Math.PI;\n\nvar AxisBuilder = function () {\n  function AxisBuilder(axisModel, opt) {\n    this.group = new graphic.Group();\n    this.opt = opt;\n    this.axisModel = axisModel;\n    defaults(opt, {\n      labelOffset: 0,\n      nameDirection: 1,\n      tickDirection: 1,\n      labelDirection: 1,\n      silent: true,\n      handleAutoShown: function () {\n        return true;\n      }\n    });\n    var transformGroup = new graphic.Group({\n      x: opt.position[0],\n      y: opt.position[1],\n      rotation: opt.rotation\n    });\n    transformGroup.updateTransform();\n    this._transformGroup = transformGroup;\n  }\n\n  AxisBuilder.prototype.hasBuilder = function (name) {\n    return !!builders[name];\n  };\n\n  AxisBuilder.prototype.add = function (name) {\n    builders[name](this.opt, this.axisModel, this.group, this._transformGroup);\n  };\n\n  AxisBuilder.prototype.getGroup = function () {\n    return this.group;\n  };\n\n  AxisBuilder.innerTextLayout = function (axisRotation, textRotation, direction) {\n    var rotationDiff = remRadian(textRotation - axisRotation);\n    var textAlign;\n    var textVerticalAlign;\n\n    if (isRadianAroundZero(rotationDiff)) {\n      textVerticalAlign = direction > 0 ? 'top' : 'bottom';\n      textAlign = 'center';\n    } else if (isRadianAroundZero(rotationDiff - PI)) {\n      textVerticalAlign = direction > 0 ? 'bottom' : 'top';\n      textAlign = 'center';\n    } else {\n      textVerticalAlign = 'middle';\n\n      if (rotationDiff > 0 && rotationDiff < PI) {\n        textAlign = direction > 0 ? 'right' : 'left';\n      } else {\n        textAlign = direction > 0 ? 'left' : 'right';\n      }\n    }\n\n    return {\n      rotation: rotationDiff,\n      textAlign: textAlign,\n      textVerticalAlign: textVerticalAlign\n    };\n  };\n\n  AxisBuilder.makeAxisEventDataBase = function (axisModel) {\n    var eventData = {\n      componentType: axisModel.mainType,\n      componentIndex: axisModel.componentIndex\n    };\n    eventData[axisModel.mainType + 'Index'] = axisModel.componentIndex;\n    return eventData;\n  };\n\n  AxisBuilder.isLabelSilent = function (axisModel) {\n    var tooltipOpt = axisModel.get('tooltip');\n    return axisModel.get('silent') || !(axisModel.get('triggerEvent') || tooltipOpt && tooltipOpt.show);\n  };\n\n  return AxisBuilder;\n}();\n\n;\nvar builders = {\n  axisLine: function (opt, axisModel, group, transformGroup) {\n    var shown = axisModel.get(['axisLine', 'show']);\n\n    if (shown === 'auto' && opt.handleAutoShown) {\n      shown = opt.handleAutoShown('axisLine');\n    }\n\n    if (!shown) {\n      return;\n    }\n\n    var extent = axisModel.axis.getExtent();\n    var matrix = transformGroup.transform;\n    var pt1 = [extent[0], 0];\n    var pt2 = [extent[1], 0];\n\n    if (matrix) {\n      v2ApplyTransform(pt1, pt1, matrix);\n      v2ApplyTransform(pt2, pt2, matrix);\n    }\n\n    var lineStyle = extend({\n      lineCap: 'round'\n    }, axisModel.getModel(['axisLine', 'lineStyle']).getLineStyle());\n    var line = new graphic.Line({\n      subPixelOptimize: true,\n      shape: {\n        x1: pt1[0],\n        y1: pt1[1],\n        x2: pt2[0],\n        y2: pt2[1]\n      },\n      style: lineStyle,\n      strokeContainThreshold: opt.strokeContainThreshold || 5,\n      silent: true,\n      z2: 1\n    });\n    line.anid = 'line';\n    group.add(line);\n    var arrows = axisModel.get(['axisLine', 'symbol']);\n    var arrowSize = axisModel.get(['axisLine', 'symbolSize']);\n    var arrowOffset = axisModel.get(['axisLine', 'symbolOffset']) || 0;\n\n    if (typeof arrowOffset === 'number') {\n      arrowOffset = [arrowOffset, arrowOffset];\n    }\n\n    if (arrows != null) {\n      if (typeof arrows === 'string') {\n        arrows = [arrows, arrows];\n      }\n\n      if (typeof arrowSize === 'string' || typeof arrowSize === 'number') {\n        arrowSize = [arrowSize, arrowSize];\n      }\n\n      var symbolWidth_1 = arrowSize[0];\n      var symbolHeight_1 = arrowSize[1];\n      each([{\n        rotate: opt.rotation + Math.PI / 2,\n        offset: arrowOffset[0],\n        r: 0\n      }, {\n        rotate: opt.rotation - Math.PI / 2,\n        offset: arrowOffset[1],\n        r: Math.sqrt((pt1[0] - pt2[0]) * (pt1[0] - pt2[0]) + (pt1[1] - pt2[1]) * (pt1[1] - pt2[1]))\n      }], function (point, index) {\n        if (arrows[index] !== 'none' && arrows[index] != null) {\n          var symbol = createSymbol(arrows[index], -symbolWidth_1 / 2, -symbolHeight_1 / 2, symbolWidth_1, symbolHeight_1, lineStyle.stroke, true);\n          var r = point.r + point.offset;\n          symbol.attr({\n            rotation: point.rotate,\n            x: pt1[0] + r * Math.cos(opt.rotation),\n            y: pt1[1] - r * Math.sin(opt.rotation),\n            silent: true,\n            z2: 11\n          });\n          group.add(symbol);\n        }\n      });\n    }\n  },\n  axisTickLabel: function (opt, axisModel, group, transformGroup) {\n    var ticksEls = buildAxisMajorTicks(group, transformGroup, axisModel, opt);\n    var labelEls = buildAxisLabel(group, transformGroup, axisModel, opt);\n    fixMinMaxLabelShow(axisModel, labelEls, ticksEls);\n    buildAxisMinorTicks(group, transformGroup, axisModel, opt.tickDirection);\n  },\n  axisName: function (opt, axisModel, group, transformGroup) {\n    var name = retrieve(opt.axisName, axisModel.get('name'));\n\n    if (!name) {\n      return;\n    }\n\n    var nameLocation = axisModel.get('nameLocation');\n    var nameDirection = opt.nameDirection;\n    var textStyleModel = axisModel.getModel('nameTextStyle');\n    var gap = axisModel.get('nameGap') || 0;\n    var extent = axisModel.axis.getExtent();\n    var gapSignal = extent[0] > extent[1] ? -1 : 1;\n    var pos = [nameLocation === 'start' ? extent[0] - gapSignal * gap : nameLocation === 'end' ? extent[1] + gapSignal * gap : (extent[0] + extent[1]) / 2, isNameLocationCenter(nameLocation) ? opt.labelOffset + nameDirection * gap : 0];\n    var labelLayout;\n    var nameRotation = axisModel.get('nameRotate');\n\n    if (nameRotation != null) {\n      nameRotation = nameRotation * PI / 180;\n    }\n\n    var axisNameAvailableWidth;\n\n    if (isNameLocationCenter(nameLocation)) {\n      labelLayout = AxisBuilder.innerTextLayout(opt.rotation, nameRotation != null ? nameRotation : opt.rotation, nameDirection);\n    } else {\n      labelLayout = endTextLayout(opt.rotation, nameLocation, nameRotation || 0, extent);\n      axisNameAvailableWidth = opt.axisNameAvailableWidth;\n\n      if (axisNameAvailableWidth != null) {\n        axisNameAvailableWidth = Math.abs(axisNameAvailableWidth / Math.sin(labelLayout.rotation));\n        !isFinite(axisNameAvailableWidth) && (axisNameAvailableWidth = null);\n      }\n    }\n\n    var textFont = textStyleModel.getFont();\n    var truncateOpt = axisModel.get('nameTruncate', true) || {};\n    var ellipsis = truncateOpt.ellipsis;\n    var maxWidth = retrieve(opt.nameTruncateMaxWidth, truncateOpt.maxWidth, axisNameAvailableWidth);\n    var tooltipOpt = axisModel.get('tooltip', true);\n    var mainType = axisModel.mainType;\n    var formatterParams = {\n      componentType: mainType,\n      name: name,\n      $vars: ['name']\n    };\n    formatterParams[mainType + 'Index'] = axisModel.componentIndex;\n    var textEl = new graphic.Text({\n      x: pos[0],\n      y: pos[1],\n      rotation: labelLayout.rotation,\n      silent: AxisBuilder.isLabelSilent(axisModel),\n      style: createTextStyle(textStyleModel, {\n        text: name,\n        font: textFont,\n        overflow: 'truncate',\n        width: maxWidth,\n        ellipsis: ellipsis,\n        fill: textStyleModel.getTextColor() || axisModel.get(['axisLine', 'lineStyle', 'color']),\n        align: textStyleModel.get('align') || labelLayout.textAlign,\n        verticalAlign: textStyleModel.get('verticalAlign') || labelLayout.textVerticalAlign\n      }),\n      z2: 1\n    });\n    textEl.tooltip = tooltipOpt && tooltipOpt.show ? extend({\n      content: name,\n      formatter: function () {\n        return name;\n      },\n      formatterParams: formatterParams\n    }, tooltipOpt) : null;\n    textEl.__fullText = name;\n    textEl.anid = 'name';\n\n    if (axisModel.get('triggerEvent')) {\n      var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\n      eventData.targetType = 'axisName';\n      eventData.name = name;\n      getECData(textEl).eventData = eventData;\n    }\n\n    transformGroup.add(textEl);\n    textEl.updateTransform();\n    group.add(textEl);\n    textEl.decomposeTransform();\n  }\n};\n\nfunction endTextLayout(rotation, textPosition, textRotate, extent) {\n  var rotationDiff = remRadian(textRotate - rotation);\n  var textAlign;\n  var textVerticalAlign;\n  var inverse = extent[0] > extent[1];\n  var onLeft = textPosition === 'start' && !inverse || textPosition !== 'start' && inverse;\n\n  if (isRadianAroundZero(rotationDiff - PI / 2)) {\n    textVerticalAlign = onLeft ? 'bottom' : 'top';\n    textAlign = 'center';\n  } else if (isRadianAroundZero(rotationDiff - PI * 1.5)) {\n    textVerticalAlign = onLeft ? 'top' : 'bottom';\n    textAlign = 'center';\n  } else {\n    textVerticalAlign = 'middle';\n\n    if (rotationDiff < PI * 1.5 && rotationDiff > PI / 2) {\n      textAlign = onLeft ? 'left' : 'right';\n    } else {\n      textAlign = onLeft ? 'right' : 'left';\n    }\n  }\n\n  return {\n    rotation: rotationDiff,\n    textAlign: textAlign,\n    textVerticalAlign: textVerticalAlign\n  };\n}\n\nfunction fixMinMaxLabelShow(axisModel, labelEls, tickEls) {\n  if (shouldShowAllLabels(axisModel.axis)) {\n    return;\n  }\n\n  var showMinLabel = axisModel.get(['axisLabel', 'showMinLabel']);\n  var showMaxLabel = axisModel.get(['axisLabel', 'showMaxLabel']);\n  labelEls = labelEls || [];\n  tickEls = tickEls || [];\n  var firstLabel = labelEls[0];\n  var nextLabel = labelEls[1];\n  var lastLabel = labelEls[labelEls.length - 1];\n  var prevLabel = labelEls[labelEls.length - 2];\n  var firstTick = tickEls[0];\n  var nextTick = tickEls[1];\n  var lastTick = tickEls[tickEls.length - 1];\n  var prevTick = tickEls[tickEls.length - 2];\n\n  if (showMinLabel === false) {\n    ignoreEl(firstLabel);\n    ignoreEl(firstTick);\n  } else if (isTwoLabelOverlapped(firstLabel, nextLabel)) {\n    if (showMinLabel) {\n      ignoreEl(nextLabel);\n      ignoreEl(nextTick);\n    } else {\n      ignoreEl(firstLabel);\n      ignoreEl(firstTick);\n    }\n  }\n\n  if (showMaxLabel === false) {\n    ignoreEl(lastLabel);\n    ignoreEl(lastTick);\n  } else if (isTwoLabelOverlapped(prevLabel, lastLabel)) {\n    if (showMaxLabel) {\n      ignoreEl(prevLabel);\n      ignoreEl(prevTick);\n    } else {\n      ignoreEl(lastLabel);\n      ignoreEl(lastTick);\n    }\n  }\n}\n\nfunction ignoreEl(el) {\n  el && (el.ignore = true);\n}\n\nfunction isTwoLabelOverlapped(current, next) {\n  var firstRect = current && current.getBoundingRect().clone();\n  var nextRect = next && next.getBoundingRect().clone();\n\n  if (!firstRect || !nextRect) {\n    return;\n  }\n\n  var mRotationBack = matrixUtil.identity([]);\n  matrixUtil.rotate(mRotationBack, mRotationBack, -current.rotation);\n  firstRect.applyTransform(matrixUtil.mul([], mRotationBack, current.getLocalTransform()));\n  nextRect.applyTransform(matrixUtil.mul([], mRotationBack, next.getLocalTransform()));\n  return firstRect.intersect(nextRect);\n}\n\nfunction isNameLocationCenter(nameLocation) {\n  return nameLocation === 'middle' || nameLocation === 'center';\n}\n\nfunction createTicks(ticksCoords, tickTransform, tickEndCoord, tickLineStyle, anidPrefix) {\n  var tickEls = [];\n  var pt1 = [];\n  var pt2 = [];\n\n  for (var i = 0; i < ticksCoords.length; i++) {\n    var tickCoord = ticksCoords[i].coord;\n    pt1[0] = tickCoord;\n    pt1[1] = 0;\n    pt2[0] = tickCoord;\n    pt2[1] = tickEndCoord;\n\n    if (tickTransform) {\n      v2ApplyTransform(pt1, pt1, tickTransform);\n      v2ApplyTransform(pt2, pt2, tickTransform);\n    }\n\n    var tickEl = new graphic.Line({\n      subPixelOptimize: true,\n      shape: {\n        x1: pt1[0],\n        y1: pt1[1],\n        x2: pt2[0],\n        y2: pt2[1]\n      },\n      style: tickLineStyle,\n      z2: 2,\n      autoBatch: true,\n      silent: true\n    });\n    tickEl.anid = anidPrefix + '_' + ticksCoords[i].tickValue;\n    tickEls.push(tickEl);\n  }\n\n  return tickEls;\n}\n\nfunction buildAxisMajorTicks(group, transformGroup, axisModel, opt) {\n  var axis = axisModel.axis;\n  var tickModel = axisModel.getModel('axisTick');\n  var shown = tickModel.get('show');\n\n  if (shown === 'auto' && opt.handleAutoShown) {\n    shown = opt.handleAutoShown('axisTick');\n  }\n\n  if (!shown || axis.scale.isBlank()) {\n    return;\n  }\n\n  var lineStyleModel = tickModel.getModel('lineStyle');\n  var tickEndCoord = opt.tickDirection * tickModel.get('length');\n  var ticksCoords = axis.getTicksCoords();\n  var ticksEls = createTicks(ticksCoords, transformGroup.transform, tickEndCoord, defaults(lineStyleModel.getLineStyle(), {\n    stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\n  }), 'ticks');\n\n  for (var i = 0; i < ticksEls.length; i++) {\n    group.add(ticksEls[i]);\n  }\n\n  return ticksEls;\n}\n\nfunction buildAxisMinorTicks(group, transformGroup, axisModel, tickDirection) {\n  var axis = axisModel.axis;\n  var minorTickModel = axisModel.getModel('minorTick');\n\n  if (!minorTickModel.get('show') || axis.scale.isBlank()) {\n    return;\n  }\n\n  var minorTicksCoords = axis.getMinorTicksCoords();\n\n  if (!minorTicksCoords.length) {\n    return;\n  }\n\n  var lineStyleModel = minorTickModel.getModel('lineStyle');\n  var tickEndCoord = tickDirection * minorTickModel.get('length');\n  var minorTickLineStyle = defaults(lineStyleModel.getLineStyle(), defaults(axisModel.getModel('axisTick').getLineStyle(), {\n    stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\n  }));\n\n  for (var i = 0; i < minorTicksCoords.length; i++) {\n    var minorTicksEls = createTicks(minorTicksCoords[i], transformGroup.transform, tickEndCoord, minorTickLineStyle, 'minorticks_' + i);\n\n    for (var k = 0; k < minorTicksEls.length; k++) {\n      group.add(minorTicksEls[k]);\n    }\n  }\n}\n\nfunction buildAxisLabel(group, transformGroup, axisModel, opt) {\n  var axis = axisModel.axis;\n  var show = retrieve(opt.axisLabelShow, axisModel.get(['axisLabel', 'show']));\n\n  if (!show || axis.scale.isBlank()) {\n    return;\n  }\n\n  var labelModel = axisModel.getModel('axisLabel');\n  var labelMargin = labelModel.get('margin');\n  var labels = axis.getViewLabels();\n  var labelRotation = (retrieve(opt.labelRotate, labelModel.get('rotate')) || 0) * PI / 180;\n  var labelLayout = AxisBuilder.innerTextLayout(opt.rotation, labelRotation, opt.labelDirection);\n  var rawCategoryData = axisModel.getCategories && axisModel.getCategories(true);\n  var labelEls = [];\n  var silent = AxisBuilder.isLabelSilent(axisModel);\n  var triggerEvent = axisModel.get('triggerEvent');\n  each(labels, function (labelItem, index) {\n    var tickValue = axis.scale.type === 'ordinal' ? axis.scale.getRawOrdinalNumber(labelItem.tickValue) : labelItem.tickValue;\n    var formattedLabel = labelItem.formattedLabel;\n    var rawLabel = labelItem.rawLabel;\n    var itemLabelModel = labelModel;\n\n    if (rawCategoryData && rawCategoryData[tickValue]) {\n      var rawCategoryItem = rawCategoryData[tickValue];\n\n      if (isObject(rawCategoryItem) && rawCategoryItem.textStyle) {\n        itemLabelModel = new Model(rawCategoryItem.textStyle, labelModel, axisModel.ecModel);\n      }\n    }\n\n    var textColor = itemLabelModel.getTextColor() || axisModel.get(['axisLine', 'lineStyle', 'color']);\n    var tickCoord = axis.dataToCoord(tickValue);\n    var textEl = new graphic.Text({\n      x: tickCoord,\n      y: opt.labelOffset + opt.labelDirection * labelMargin,\n      rotation: labelLayout.rotation,\n      silent: silent,\n      z2: 10,\n      style: createTextStyle(itemLabelModel, {\n        text: formattedLabel,\n        align: itemLabelModel.getShallow('align', true) || labelLayout.textAlign,\n        verticalAlign: itemLabelModel.getShallow('verticalAlign', true) || itemLabelModel.getShallow('baseline', true) || labelLayout.textVerticalAlign,\n        fill: typeof textColor === 'function' ? textColor(axis.type === 'category' ? rawLabel : axis.type === 'value' ? tickValue + '' : tickValue, index) : textColor\n      })\n    });\n    textEl.anid = 'label_' + tickValue;\n\n    if (triggerEvent) {\n      var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\n      eventData.targetType = 'axisLabel';\n      eventData.value = rawLabel;\n      getECData(textEl).eventData = eventData;\n    }\n\n    transformGroup.add(textEl);\n    textEl.updateTransform();\n    labelEls.push(textEl);\n    group.add(textEl);\n    textEl.decomposeTransform();\n  });\n  return labelEls;\n}\n\nexport default AxisBuilder;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Model from '../../model/Model';\nimport { each, curry, clone, defaults, isArray, indexOf } from 'zrender/lib/core/util';\nexport function collect(ecModel, api) {\n  var result = {\n    axesInfo: {},\n    seriesInvolved: false,\n    coordSysAxesInfo: {},\n    coordSysMap: {}\n  };\n  collectAxesInfo(result, ecModel, api);\n  result.seriesInvolved && collectSeriesInfo(result, ecModel);\n  return result;\n}\n\nfunction collectAxesInfo(result, ecModel, api) {\n  var globalTooltipModel = ecModel.getComponent('tooltip');\n  var globalAxisPointerModel = ecModel.getComponent('axisPointer');\n  var linksOption = globalAxisPointerModel.get('link', true) || [];\n  var linkGroups = [];\n  each(api.getCoordinateSystems(), function (coordSys) {\n    if (!coordSys.axisPointerEnabled) {\n      return;\n    }\n\n    var coordSysKey = makeKey(coordSys.model);\n    var axesInfoInCoordSys = result.coordSysAxesInfo[coordSysKey] = {};\n    result.coordSysMap[coordSysKey] = coordSys;\n    var coordSysModel = coordSys.model;\n    var baseTooltipModel = coordSysModel.getModel('tooltip', globalTooltipModel);\n    each(coordSys.getAxes(), curry(saveTooltipAxisInfo, false, null));\n\n    if (coordSys.getTooltipAxes && globalTooltipModel && baseTooltipModel.get('show')) {\n      var triggerAxis = baseTooltipModel.get('trigger') === 'axis';\n      var cross = baseTooltipModel.get(['axisPointer', 'type']) === 'cross';\n      var tooltipAxes = coordSys.getTooltipAxes(baseTooltipModel.get(['axisPointer', 'axis']));\n\n      if (triggerAxis || cross) {\n        each(tooltipAxes.baseAxes, curry(saveTooltipAxisInfo, cross ? 'cross' : true, triggerAxis));\n      }\n\n      if (cross) {\n        each(tooltipAxes.otherAxes, curry(saveTooltipAxisInfo, 'cross', false));\n      }\n    }\n\n    function saveTooltipAxisInfo(fromTooltip, triggerTooltip, axis) {\n      var axisPointerModel = axis.model.getModel('axisPointer', globalAxisPointerModel);\n      var axisPointerShow = axisPointerModel.get('show');\n\n      if (!axisPointerShow || axisPointerShow === 'auto' && !fromTooltip && !isHandleTrigger(axisPointerModel)) {\n        return;\n      }\n\n      if (triggerTooltip == null) {\n        triggerTooltip = axisPointerModel.get('triggerTooltip');\n      }\n\n      axisPointerModel = fromTooltip ? makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) : axisPointerModel;\n      var snap = axisPointerModel.get('snap');\n      var axisKey = makeKey(axis.model);\n      var involveSeries = triggerTooltip || snap || axis.type === 'category';\n      var axisInfo = result.axesInfo[axisKey] = {\n        key: axisKey,\n        axis: axis,\n        coordSys: coordSys,\n        axisPointerModel: axisPointerModel,\n        triggerTooltip: triggerTooltip,\n        involveSeries: involveSeries,\n        snap: snap,\n        useHandle: isHandleTrigger(axisPointerModel),\n        seriesModels: [],\n        linkGroup: null\n      };\n      axesInfoInCoordSys[axisKey] = axisInfo;\n      result.seriesInvolved = result.seriesInvolved || involveSeries;\n      var groupIndex = getLinkGroupIndex(linksOption, axis);\n\n      if (groupIndex != null) {\n        var linkGroup = linkGroups[groupIndex] || (linkGroups[groupIndex] = {\n          axesInfo: {}\n        });\n        linkGroup.axesInfo[axisKey] = axisInfo;\n        linkGroup.mapper = linksOption[groupIndex].mapper;\n        axisInfo.linkGroup = linkGroup;\n      }\n    }\n  });\n}\n\nfunction makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) {\n  var tooltipAxisPointerModel = baseTooltipModel.getModel('axisPointer');\n  var fields = ['type', 'snap', 'lineStyle', 'shadowStyle', 'label', 'animation', 'animationDurationUpdate', 'animationEasingUpdate', 'z'];\n  var volatileOption = {};\n  each(fields, function (field) {\n    volatileOption[field] = clone(tooltipAxisPointerModel.get(field));\n  });\n  volatileOption.snap = axis.type !== 'category' && !!triggerTooltip;\n\n  if (tooltipAxisPointerModel.get('type') === 'cross') {\n    volatileOption.type = 'line';\n  }\n\n  var labelOption = volatileOption.label || (volatileOption.label = {});\n  labelOption.show == null && (labelOption.show = false);\n\n  if (fromTooltip === 'cross') {\n    var tooltipAxisPointerLabelShow = tooltipAxisPointerModel.get(['label', 'show']);\n    labelOption.show = tooltipAxisPointerLabelShow != null ? tooltipAxisPointerLabelShow : true;\n\n    if (!triggerTooltip) {\n      var crossStyle = volatileOption.lineStyle = tooltipAxisPointerModel.get('crossStyle');\n      crossStyle && defaults(labelOption, crossStyle.textStyle);\n    }\n  }\n\n  return axis.model.getModel('axisPointer', new Model(volatileOption, globalAxisPointerModel, ecModel));\n}\n\nfunction collectSeriesInfo(result, ecModel) {\n  ecModel.eachSeries(function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n    var seriesTooltipTrigger = seriesModel.get(['tooltip', 'trigger'], true);\n    var seriesTooltipShow = seriesModel.get(['tooltip', 'show'], true);\n\n    if (!coordSys || seriesTooltipTrigger === 'none' || seriesTooltipTrigger === false || seriesTooltipTrigger === 'item' || seriesTooltipShow === false || seriesModel.get(['axisPointer', 'show'], true) === false) {\n      return;\n    }\n\n    each(result.coordSysAxesInfo[makeKey(coordSys.model)], function (axisInfo) {\n      var axis = axisInfo.axis;\n\n      if (coordSys.getAxis(axis.dim) === axis) {\n        axisInfo.seriesModels.push(seriesModel);\n        axisInfo.seriesDataCount == null && (axisInfo.seriesDataCount = 0);\n        axisInfo.seriesDataCount += seriesModel.getData().count();\n      }\n    });\n  });\n}\n\nfunction getLinkGroupIndex(linksOption, axis) {\n  var axisModel = axis.model;\n  var dim = axis.dim;\n\n  for (var i = 0; i < linksOption.length; i++) {\n    var linkOption = linksOption[i] || {};\n\n    if (checkPropInLink(linkOption[dim + 'AxisId'], axisModel.id) || checkPropInLink(linkOption[dim + 'AxisIndex'], axisModel.componentIndex) || checkPropInLink(linkOption[dim + 'AxisName'], axisModel.name)) {\n      return i;\n    }\n  }\n}\n\nfunction checkPropInLink(linkPropValue, axisPropValue) {\n  return linkPropValue === 'all' || isArray(linkPropValue) && indexOf(linkPropValue, axisPropValue) >= 0 || linkPropValue === axisPropValue;\n}\n\nexport function fixValue(axisModel) {\n  var axisInfo = getAxisInfo(axisModel);\n\n  if (!axisInfo) {\n    return;\n  }\n\n  var axisPointerModel = axisInfo.axisPointerModel;\n  var scale = axisInfo.axis.scale;\n  var option = axisPointerModel.option;\n  var status = axisPointerModel.get('status');\n  var value = axisPointerModel.get('value');\n\n  if (value != null) {\n    value = scale.parse(value);\n  }\n\n  var useHandle = isHandleTrigger(axisPointerModel);\n\n  if (status == null) {\n    option.status = useHandle ? 'show' : 'hide';\n  }\n\n  var extent = scale.getExtent().slice();\n  extent[0] > extent[1] && extent.reverse();\n\n  if (value == null || value > extent[1]) {\n    value = extent[1];\n  }\n\n  if (value < extent[0]) {\n    value = extent[0];\n  }\n\n  option.value = value;\n\n  if (useHandle) {\n    option.status = axisInfo.axis.scale.isBlank() ? 'hide' : 'show';\n  }\n}\nexport function getAxisInfo(axisModel) {\n  var coordSysAxesInfo = (axisModel.ecModel.getComponent('axisPointer') || {}).coordSysAxesInfo;\n  return coordSysAxesInfo && coordSysAxesInfo.axesInfo[makeKey(axisModel)];\n}\nexport function getAxisPointerModel(axisModel) {\n  var axisInfo = getAxisInfo(axisModel);\n  return axisInfo && axisInfo.axisPointerModel;\n}\n\nfunction isHandleTrigger(axisPointerModel) {\n  return !!axisPointerModel.get(['handle', 'show']);\n}\n\nexport function makeKey(model) {\n  return model.type + '||' + model.id;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as axisPointerModelHelper from '../axisPointer/modelHelper';\nimport ComponentView from '../../view/Component';\nvar axisPointerClazz = {};\n\nvar AxisView = function (_super) {\n  __extends(AxisView, _super);\n\n  function AxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = AxisView.type;\n    return _this;\n  }\n\n  AxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n    this.axisPointerClass && axisPointerModelHelper.fixValue(axisModel);\n\n    _super.prototype.render.apply(this, arguments);\n\n    this._doUpdateAxisPointerClass(axisModel, api, true);\n  };\n\n  AxisView.prototype.updateAxisPointer = function (axisModel, ecModel, api, payload) {\n    this._doUpdateAxisPointerClass(axisModel, api, false);\n  };\n\n  AxisView.prototype.remove = function (ecModel, api) {\n    var axisPointer = this._axisPointer;\n    axisPointer && axisPointer.remove(api);\n  };\n\n  AxisView.prototype.dispose = function (ecModel, api) {\n    this._disposeAxisPointer(api);\n\n    _super.prototype.dispose.apply(this, arguments);\n  };\n\n  AxisView.prototype._doUpdateAxisPointerClass = function (axisModel, api, forceRender) {\n    var Clazz = AxisView.getAxisPointerClass(this.axisPointerClass);\n\n    if (!Clazz) {\n      return;\n    }\n\n    var axisPointerModel = axisPointerModelHelper.getAxisPointerModel(axisModel);\n    axisPointerModel ? (this._axisPointer || (this._axisPointer = new Clazz())).render(axisModel, axisPointerModel, api, forceRender) : this._disposeAxisPointer(api);\n  };\n\n  AxisView.prototype._disposeAxisPointer = function (api) {\n    this._axisPointer && this._axisPointer.dispose(api);\n    this._axisPointer = null;\n  };\n\n  AxisView.registerAxisPointerClass = function (type, clazz) {\n    if (process.env.NODE_ENV !== 'production') {\n      if (axisPointerClazz[type]) {\n        throw new Error('axisPointer ' + type + ' exists');\n      }\n    }\n\n    axisPointerClazz[type] = clazz;\n  };\n\n  ;\n\n  AxisView.getAxisPointerClass = function (type) {\n    return type && axisPointerClazz[type];\n  };\n\n  ;\n  AxisView.type = 'axis';\n  return AxisView;\n}(ComponentView);\n\nexport default AxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\nexport function rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel) {\n  var axis = axisModel.axis;\n\n  if (axis.scale.isBlank()) {\n    return;\n  }\n\n  var splitAreaModel = axisModel.getModel('splitArea');\n  var areaStyleModel = splitAreaModel.getModel('areaStyle');\n  var areaColors = areaStyleModel.get('color');\n  var gridRect = gridModel.coordinateSystem.getRect();\n  var ticksCoords = axis.getTicksCoords({\n    tickModel: splitAreaModel,\n    clamp: true\n  });\n\n  if (!ticksCoords.length) {\n    return;\n  }\n\n  var areaColorsLen = areaColors.length;\n  var lastSplitAreaColors = inner(axisView).splitAreaColors;\n  var newSplitAreaColors = zrUtil.createHashMap();\n  var colorIndex = 0;\n\n  if (lastSplitAreaColors) {\n    for (var i = 0; i < ticksCoords.length; i++) {\n      var cIndex = lastSplitAreaColors.get(ticksCoords[i].tickValue);\n\n      if (cIndex != null) {\n        colorIndex = (cIndex + (areaColorsLen - 1) * i) % areaColorsLen;\n        break;\n      }\n    }\n  }\n\n  var prev = axis.toGlobalCoord(ticksCoords[0].coord);\n  var areaStyle = areaStyleModel.getAreaStyle();\n  areaColors = zrUtil.isArray(areaColors) ? areaColors : [areaColors];\n\n  for (var i = 1; i < ticksCoords.length; i++) {\n    var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n    var x = void 0;\n    var y = void 0;\n    var width = void 0;\n    var height = void 0;\n\n    if (axis.isHorizontal()) {\n      x = prev;\n      y = gridRect.y;\n      width = tickCoord - x;\n      height = gridRect.height;\n      prev = x + width;\n    } else {\n      x = gridRect.x;\n      y = prev;\n      width = gridRect.width;\n      height = tickCoord - y;\n      prev = y + height;\n    }\n\n    var tickValue = ticksCoords[i - 1].tickValue;\n    tickValue != null && newSplitAreaColors.set(tickValue, colorIndex);\n    axisGroup.add(new graphic.Rect({\n      anid: tickValue != null ? 'area_' + tickValue : null,\n      shape: {\n        x: x,\n        y: y,\n        width: width,\n        height: height\n      },\n      style: zrUtil.defaults({\n        fill: areaColors[colorIndex]\n      }, areaStyle),\n      autoBatch: true,\n      silent: true\n    }));\n    colorIndex = (colorIndex + 1) % areaColorsLen;\n  }\n\n  inner(axisView).splitAreaColors = newSplitAreaColors;\n}\nexport function rectCoordAxisHandleRemove(axisView) {\n  inner(axisView).splitAreaColors = null;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport AxisBuilder from './AxisBuilder';\nimport AxisView from './AxisView';\nimport * as cartesianAxisHelper from '../../coord/cartesian/cartesianAxisHelper';\nimport { rectCoordAxisBuildSplitArea, rectCoordAxisHandleRemove } from './axisSplitHelper';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitArea', 'splitLine', 'minorSplitLine'];\n\nvar CartesianAxisView = function (_super) {\n  __extends(CartesianAxisView, _super);\n\n  function CartesianAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CartesianAxisView.type;\n    _this.axisPointerClass = 'CartesianAxisPointer';\n    return _this;\n  }\n\n  CartesianAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n    this.group.removeAll();\n    var oldAxisGroup = this._axisGroup;\n    this._axisGroup = new graphic.Group();\n    this.group.add(this._axisGroup);\n\n    if (!axisModel.get('show')) {\n      return;\n    }\n\n    var gridModel = axisModel.getCoordSysModel();\n    var layout = cartesianAxisHelper.layout(gridModel, axisModel);\n    var axisBuilder = new AxisBuilder(axisModel, zrUtil.extend({\n      handleAutoShown: function (elementType) {\n        var cartesians = gridModel.coordinateSystem.getCartesians();\n\n        for (var i = 0; i < cartesians.length; i++) {\n          var otherAxisType = cartesians[i].getOtherAxis(axisModel.axis).type;\n\n          if (otherAxisType === 'value' || otherAxisType === 'log') {\n            return true;\n          }\n        }\n\n        return false;\n      }\n    }, layout));\n    zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n\n    this._axisGroup.add(axisBuilder.getGroup());\n\n    zrUtil.each(selfBuilderAttrs, function (name) {\n      if (axisModel.get([name, 'show'])) {\n        axisElementBuilders[name](this, this._axisGroup, axisModel, gridModel);\n      }\n    }, this);\n    graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel);\n\n    _super.prototype.render.call(this, axisModel, ecModel, api, payload);\n  };\n\n  CartesianAxisView.prototype.remove = function () {\n    rectCoordAxisHandleRemove(this);\n  };\n\n  CartesianAxisView.type = 'cartesianAxis';\n  return CartesianAxisView;\n}(AxisView);\n\nvar axisElementBuilders = {\n  splitLine: function (axisView, axisGroup, axisModel, gridModel) {\n    var axis = axisModel.axis;\n\n    if (axis.scale.isBlank()) {\n      return;\n    }\n\n    var splitLineModel = axisModel.getModel('splitLine');\n    var lineStyleModel = splitLineModel.getModel('lineStyle');\n    var lineColors = lineStyleModel.get('color');\n    lineColors = zrUtil.isArray(lineColors) ? lineColors : [lineColors];\n    var gridRect = gridModel.coordinateSystem.getRect();\n    var isHorizontal = axis.isHorizontal();\n    var lineCount = 0;\n    var ticksCoords = axis.getTicksCoords({\n      tickModel: splitLineModel\n    });\n    var p1 = [];\n    var p2 = [];\n    var lineStyle = lineStyleModel.getLineStyle();\n\n    for (var i = 0; i < ticksCoords.length; i++) {\n      var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n\n      if (isHorizontal) {\n        p1[0] = tickCoord;\n        p1[1] = gridRect.y;\n        p2[0] = tickCoord;\n        p2[1] = gridRect.y + gridRect.height;\n      } else {\n        p1[0] = gridRect.x;\n        p1[1] = tickCoord;\n        p2[0] = gridRect.x + gridRect.width;\n        p2[1] = tickCoord;\n      }\n\n      var colorIndex = lineCount++ % lineColors.length;\n      var tickValue = ticksCoords[i].tickValue;\n      axisGroup.add(new graphic.Line({\n        anid: tickValue != null ? 'line_' + ticksCoords[i].tickValue : null,\n        subPixelOptimize: true,\n        autoBatch: true,\n        shape: {\n          x1: p1[0],\n          y1: p1[1],\n          x2: p2[0],\n          y2: p2[1]\n        },\n        style: zrUtil.defaults({\n          stroke: lineColors[colorIndex]\n        }, lineStyle),\n        silent: true\n      }));\n    }\n  },\n  minorSplitLine: function (axisView, axisGroup, axisModel, gridModel) {\n    var axis = axisModel.axis;\n    var minorSplitLineModel = axisModel.getModel('minorSplitLine');\n    var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\n    var gridRect = gridModel.coordinateSystem.getRect();\n    var isHorizontal = axis.isHorizontal();\n    var minorTicksCoords = axis.getMinorTicksCoords();\n\n    if (!minorTicksCoords.length) {\n      return;\n    }\n\n    var p1 = [];\n    var p2 = [];\n    var lineStyle = lineStyleModel.getLineStyle();\n\n    for (var i = 0; i < minorTicksCoords.length; i++) {\n      for (var k = 0; k < minorTicksCoords[i].length; k++) {\n        var tickCoord = axis.toGlobalCoord(minorTicksCoords[i][k].coord);\n\n        if (isHorizontal) {\n          p1[0] = tickCoord;\n          p1[1] = gridRect.y;\n          p2[0] = tickCoord;\n          p2[1] = gridRect.y + gridRect.height;\n        } else {\n          p1[0] = gridRect.x;\n          p1[1] = tickCoord;\n          p2[0] = gridRect.x + gridRect.width;\n          p2[1] = tickCoord;\n        }\n\n        axisGroup.add(new graphic.Line({\n          anid: 'minor_line_' + minorTicksCoords[i][k].tickValue,\n          subPixelOptimize: true,\n          autoBatch: true,\n          shape: {\n            x1: p1[0],\n            y1: p1[1],\n            x2: p2[0],\n            y2: p2[1]\n          },\n          style: lineStyle,\n          silent: true\n        }));\n      }\n    }\n  },\n  splitArea: function (axisView, axisGroup, axisModel, gridModel) {\n    rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel);\n  }\n};\n\nvar CartesianXAxisView = function (_super) {\n  __extends(CartesianXAxisView, _super);\n\n  function CartesianXAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CartesianXAxisView.type;\n    return _this;\n  }\n\n  CartesianXAxisView.type = 'xAxis';\n  return CartesianXAxisView;\n}(CartesianAxisView);\n\nexport { CartesianXAxisView };\n\nvar CartesianYAxisView = function (_super) {\n  __extends(CartesianYAxisView, _super);\n\n  function CartesianYAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CartesianXAxisView.type;\n    return _this;\n  }\n\n  CartesianYAxisView.type = 'yAxis';\n  return CartesianYAxisView;\n}(CartesianAxisView);\n\nexport { CartesianYAxisView };\nexport default CartesianAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component';\nimport GridModel from '../../coord/cartesian/GridModel';\nimport { Rect } from '../../util/graphic';\nimport { defaults } from 'zrender/lib/core/util';\nimport { CartesianAxisModel } from '../../coord/cartesian/AxisModel';\nimport axisModelCreator from '../../coord/axisModelCreator';\nimport Grid from '../../coord/cartesian/Grid';\nimport { CartesianXAxisView, CartesianYAxisView } from '../axis/CartesianAxisView';\n\nvar GridView = function (_super) {\n  __extends(GridView, _super);\n\n  function GridView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'grid';\n    return _this;\n  }\n\n  GridView.prototype.render = function (gridModel, ecModel) {\n    this.group.removeAll();\n\n    if (gridModel.get('show')) {\n      this.group.add(new Rect({\n        shape: gridModel.coordinateSystem.getRect(),\n        style: defaults({\n          fill: gridModel.get('backgroundColor')\n        }, gridModel.getItemStyle()),\n        silent: true,\n        z2: -1\n      }));\n    }\n  };\n\n  GridView.type = 'grid';\n  return GridView;\n}(ComponentView);\n\nvar extraOption = {\n  offset: 0\n};\nexport function install(registers) {\n  registers.registerComponentView(GridView);\n  registers.registerComponentModel(GridModel);\n  registers.registerCoordinateSystem('cartesian2d', Grid);\n  axisModelCreator(registers, 'x', CartesianAxisModel, extraOption);\n  axisModelCreator(registers, 'y', CartesianAxisModel, extraOption);\n  registers.registerComponentView(CartesianXAxisView);\n  registers.registerComponentView(CartesianYAxisView);\n  registers.registerPreprocessor(function (option) {\n    if (option.xAxis && option.yAxis && !option.grid) {\n      option.grid = {};\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport ScatterSeriesModel from './ScatterSeries';\nimport ScatterView from './ScatterView';\nimport { install as installGridSimple } from '../../component/grid/installSimple';\nimport layoutPoints from '../../layout/points';\nexport function install(registers) {\n  use(installGridSimple);\n  registers.registerSeriesModel(ScatterSeriesModel);\n  registers.registerChartView(ScatterView);\n  registers.registerLayout(layoutPoints('scatter'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function radarLayout(ecModel) {\n  ecModel.eachSeriesByType('radar', function (seriesModel) {\n    var data = seriesModel.getData();\n    var points = [];\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (!coordSys) {\n      return;\n    }\n\n    var axes = coordSys.getIndicatorAxes();\n    zrUtil.each(axes, function (axis, axisIndex) {\n      data.each(data.mapDimension(axes[axisIndex].dim), function (val, dataIndex) {\n        points[dataIndex] = points[dataIndex] || [];\n        var point = coordSys.dataToPoint(val, axisIndex);\n        points[dataIndex][axisIndex] = isValidPoint(point) ? point : getValueMissingPoint(coordSys);\n      });\n    });\n    data.each(function (idx) {\n      var firstPoint = zrUtil.find(points[idx], function (point) {\n        return isValidPoint(point);\n      }) || getValueMissingPoint(coordSys);\n      points[idx].push(firstPoint.slice());\n      data.setItemLayout(idx, points[idx]);\n    });\n  });\n}\n\nfunction isValidPoint(point) {\n  return !isNaN(point[0]) && !isNaN(point[1]);\n}\n\nfunction getValueMissingPoint(coordSys) {\n  return [coordSys.cx, coordSys.cy];\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function radarBackwardCompat(option) {\n  var polarOptArr = option.polar;\n\n  if (polarOptArr) {\n    if (!zrUtil.isArray(polarOptArr)) {\n      polarOptArr = [polarOptArr];\n    }\n\n    var polarNotRadar_1 = [];\n    zrUtil.each(polarOptArr, function (polarOpt, idx) {\n      if (polarOpt.indicator) {\n        if (polarOpt.type && !polarOpt.shape) {\n          polarOpt.shape = polarOpt.type;\n        }\n\n        option.radar = option.radar || [];\n\n        if (!zrUtil.isArray(option.radar)) {\n          option.radar = [option.radar];\n        }\n\n        option.radar.push(polarOpt);\n      } else {\n        polarNotRadar_1.push(polarOpt);\n      }\n    });\n    option.polar = polarNotRadar_1;\n  }\n\n  zrUtil.each(option.series, function (seriesOpt) {\n    if (seriesOpt && seriesOpt.type === 'radar' && seriesOpt.polarIndex) {\n      seriesOpt.radarIndex = seriesOpt.polarIndex;\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as symbolUtil from '../../util/symbol';\nimport ChartView from '../../view/Chart';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport ZRImage from 'zrender/lib/graphic/Image';\n\nfunction normalizeSymbolSize(symbolSize) {\n  if (!zrUtil.isArray(symbolSize)) {\n    symbolSize = [+symbolSize, +symbolSize];\n  }\n\n  return symbolSize;\n}\n\nvar RadarView = function (_super) {\n  __extends(RadarView, _super);\n\n  function RadarView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = RadarView.type;\n    return _this;\n  }\n\n  RadarView.prototype.render = function (seriesModel, ecModel, api) {\n    var polar = seriesModel.coordinateSystem;\n    var group = this.group;\n    var data = seriesModel.getData();\n    var oldData = this._data;\n\n    function createSymbol(data, idx) {\n      var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\n\n      if (symbolType === 'none') {\n        return;\n      }\n\n      var symbolSize = normalizeSymbolSize(data.getItemVisual(idx, 'symbolSize'));\n      var symbolPath = symbolUtil.createSymbol(symbolType, -1, -1, 2, 2);\n      var symbolRotate = data.getItemVisual(idx, 'symbolRotate') || 0;\n      symbolPath.attr({\n        style: {\n          strokeNoScale: true\n        },\n        z2: 100,\n        scaleX: symbolSize[0] / 2,\n        scaleY: symbolSize[1] / 2,\n        rotation: symbolRotate * Math.PI / 180 || 0\n      });\n      return symbolPath;\n    }\n\n    function updateSymbols(oldPoints, newPoints, symbolGroup, data, idx, isInit) {\n      symbolGroup.removeAll();\n\n      for (var i = 0; i < newPoints.length - 1; i++) {\n        var symbolPath = createSymbol(data, idx);\n\n        if (symbolPath) {\n          symbolPath.__dimIdx = i;\n\n          if (oldPoints[i]) {\n            symbolPath.setPosition(oldPoints[i]);\n            graphic[isInit ? 'initProps' : 'updateProps'](symbolPath, {\n              x: newPoints[i][0],\n              y: newPoints[i][1]\n            }, seriesModel, idx);\n          } else {\n            symbolPath.setPosition(newPoints[i]);\n          }\n\n          symbolGroup.add(symbolPath);\n        }\n      }\n    }\n\n    function getInitialPoints(points) {\n      return zrUtil.map(points, function (pt) {\n        return [polar.cx, polar.cy];\n      });\n    }\n\n    data.diff(oldData).add(function (idx) {\n      var points = data.getItemLayout(idx);\n\n      if (!points) {\n        return;\n      }\n\n      var polygon = new graphic.Polygon();\n      var polyline = new graphic.Polyline();\n      var target = {\n        shape: {\n          points: points\n        }\n      };\n      polygon.shape.points = getInitialPoints(points);\n      polyline.shape.points = getInitialPoints(points);\n      graphic.initProps(polygon, target, seriesModel, idx);\n      graphic.initProps(polyline, target, seriesModel, idx);\n      var itemGroup = new graphic.Group();\n      var symbolGroup = new graphic.Group();\n      itemGroup.add(polyline);\n      itemGroup.add(polygon);\n      itemGroup.add(symbolGroup);\n      updateSymbols(polyline.shape.points, points, symbolGroup, data, idx, true);\n      data.setItemGraphicEl(idx, itemGroup);\n    }).update(function (newIdx, oldIdx) {\n      var itemGroup = oldData.getItemGraphicEl(oldIdx);\n      var polyline = itemGroup.childAt(0);\n      var polygon = itemGroup.childAt(1);\n      var symbolGroup = itemGroup.childAt(2);\n      var target = {\n        shape: {\n          points: data.getItemLayout(newIdx)\n        }\n      };\n\n      if (!target.shape.points) {\n        return;\n      }\n\n      updateSymbols(polyline.shape.points, target.shape.points, symbolGroup, data, newIdx, false);\n      graphic.updateProps(polyline, target, seriesModel);\n      graphic.updateProps(polygon, target, seriesModel);\n      data.setItemGraphicEl(newIdx, itemGroup);\n    }).remove(function (idx) {\n      group.remove(oldData.getItemGraphicEl(idx));\n    }).execute();\n    data.eachItemGraphicEl(function (itemGroup, idx) {\n      var itemModel = data.getItemModel(idx);\n      var polyline = itemGroup.childAt(0);\n      var polygon = itemGroup.childAt(1);\n      var symbolGroup = itemGroup.childAt(2);\n      var itemStyle = data.getItemVisual(idx, 'style');\n      var color = itemStyle.fill;\n      group.add(itemGroup);\n      polyline.useStyle(zrUtil.defaults(itemModel.getModel('lineStyle').getLineStyle(), {\n        fill: 'none',\n        stroke: color\n      }));\n      setStatesStylesFromModel(polyline, itemModel, 'lineStyle');\n      setStatesStylesFromModel(polygon, itemModel, 'areaStyle');\n      var areaStyleModel = itemModel.getModel('areaStyle');\n      var polygonIgnore = areaStyleModel.isEmpty() && areaStyleModel.parentModel.isEmpty();\n      polygon.ignore = polygonIgnore;\n      zrUtil.each(['emphasis', 'select', 'blur'], function (stateName) {\n        var stateModel = itemModel.getModel([stateName, 'areaStyle']);\n        var stateIgnore = stateModel.isEmpty() && stateModel.parentModel.isEmpty();\n        polygon.ensureState(stateName).ignore = stateIgnore && polygonIgnore;\n      });\n      polygon.useStyle(zrUtil.defaults(areaStyleModel.getAreaStyle(), {\n        fill: color,\n        opacity: 0.7,\n        decal: itemStyle.decal\n      }));\n      var emphasisModel = itemModel.getModel('emphasis');\n      var itemHoverStyle = emphasisModel.getModel('itemStyle').getItemStyle();\n      symbolGroup.eachChild(function (symbolPath) {\n        if (symbolPath instanceof ZRImage) {\n          var pathStyle = symbolPath.style;\n          symbolPath.useStyle(zrUtil.extend({\n            image: pathStyle.image,\n            x: pathStyle.x,\n            y: pathStyle.y,\n            width: pathStyle.width,\n            height: pathStyle.height\n          }, itemStyle));\n        } else {\n          symbolPath.useStyle(itemStyle);\n          symbolPath.setColor(color);\n        }\n\n        var pathEmphasisState = symbolPath.ensureState('emphasis');\n        pathEmphasisState.style = zrUtil.clone(itemHoverStyle);\n        var defaultText = data.get(data.dimensions[symbolPath.__dimIdx], idx);\n        (defaultText == null || isNaN(defaultText)) && (defaultText = '');\n        setLabelStyle(symbolPath, getLabelStatesModels(itemModel), {\n          labelFetcher: data.hostModel,\n          labelDataIndex: idx,\n          labelDimIndex: symbolPath.__dimIdx,\n          defaultText: defaultText,\n          inheritColor: color,\n          defaultOpacity: itemStyle.opacity\n        });\n      });\n      enableHoverEmphasis(itemGroup, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n    });\n    this._data = data;\n  };\n\n  RadarView.prototype.remove = function () {\n    this.group.removeAll();\n    this._data = null;\n  };\n\n  RadarView.type = 'radar';\n  return RadarView;\n}(ChartView);\n\nexport default RadarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport createListSimply from '../helper/createListSimply';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider';\nimport { createTooltipMarkup, retrieveVisualColorForTooltipMarker } from '../../component/tooltip/tooltipMarkup';\n\nvar RadarSeriesModel = function (_super) {\n  __extends(RadarSeriesModel, _super);\n\n  function RadarSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = RadarSeriesModel.type;\n    _this.useColorPaletteOnData = true;\n    _this.hasSymbolVisual = true;\n    return _this;\n  }\n\n  RadarSeriesModel.prototype.init = function (option) {\n    _super.prototype.init.apply(this, arguments);\n\n    this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));\n  };\n\n  RadarSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListSimply(this, {\n      generateCoord: 'indicator_',\n      generateCoordCount: Infinity\n    });\n  };\n\n  RadarSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var data = this.getData();\n    var coordSys = this.coordinateSystem;\n    var indicatorAxes = coordSys.getIndicatorAxes();\n    var name = this.getData().getName(dataIndex);\n    var nameToDisplay = name === '' ? this.name : name;\n    var markerColor = retrieveVisualColorForTooltipMarker(this, dataIndex);\n    return createTooltipMarkup('section', {\n      header: nameToDisplay,\n      sortBlocks: true,\n      blocks: zrUtil.map(indicatorAxes, function (axis) {\n        var val = data.get(data.mapDimension(axis.dim), dataIndex);\n        return createTooltipMarkup('nameValue', {\n          markerType: 'subItem',\n          markerColor: markerColor,\n          name: axis.name,\n          value: val,\n          sortParam: val\n        });\n      })\n    });\n  };\n\n  RadarSeriesModel.prototype.getTooltipPosition = function (dataIndex) {\n    if (dataIndex != null) {\n      var data_1 = this.getData();\n      var coordSys = this.coordinateSystem;\n      var values = data_1.getValues(zrUtil.map(coordSys.dimensions, function (dim) {\n        return data_1.mapDimension(dim);\n      }), dataIndex);\n\n      for (var i = 0, len = values.length; i < len; i++) {\n        if (!isNaN(values[i])) {\n          var indicatorAxes = coordSys.getIndicatorAxes();\n          return coordSys.coordToPoint(indicatorAxes[i].dataToCoord(values[i]), i);\n        }\n      }\n    }\n  };\n\n  RadarSeriesModel.type = 'series.radar';\n  RadarSeriesModel.dependencies = ['radar'];\n  RadarSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'radar',\n    legendHoverLink: true,\n    radarIndex: 0,\n    lineStyle: {\n      width: 2,\n      type: 'solid'\n    },\n    label: {\n      position: 'top'\n    },\n    symbol: 'emptyCircle',\n    symbolSize: 4\n  };\n  return RadarSeriesModel;\n}(SeriesModel);\n\nexport default RadarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport axisDefault from '../axisDefault';\nimport Model from '../../model/Model';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin';\nimport ComponentModel from '../../model/Component';\nvar valueAxisDefault = axisDefault.value;\n\nfunction defaultsShow(opt, show) {\n  return zrUtil.defaults({\n    show: show\n  }, opt);\n}\n\nvar RadarModel = function (_super) {\n  __extends(RadarModel, _super);\n\n  function RadarModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = RadarModel.type;\n    return _this;\n  }\n\n  RadarModel.prototype.optionUpdated = function () {\n    var boundaryGap = this.get('boundaryGap');\n    var splitNumber = this.get('splitNumber');\n    var scale = this.get('scale');\n    var axisLine = this.get('axisLine');\n    var axisTick = this.get('axisTick');\n    var axisLabel = this.get('axisLabel');\n    var nameTextStyle = this.get('axisName');\n    var showName = this.get(['axisName', 'show']);\n    var nameFormatter = this.get(['axisName', 'formatter']);\n    var nameGap = this.get('axisNameGap');\n    var triggerEvent = this.get('triggerEvent');\n    var indicatorModels = zrUtil.map(this.get('indicator') || [], function (indicatorOpt) {\n      if (indicatorOpt.max != null && indicatorOpt.max > 0 && !indicatorOpt.min) {\n        indicatorOpt.min = 0;\n      } else if (indicatorOpt.min != null && indicatorOpt.min < 0 && !indicatorOpt.max) {\n        indicatorOpt.max = 0;\n      }\n\n      var iNameTextStyle = nameTextStyle;\n\n      if (indicatorOpt.color != null) {\n        iNameTextStyle = zrUtil.defaults({\n          color: indicatorOpt.color\n        }, nameTextStyle);\n      }\n\n      var innerIndicatorOpt = zrUtil.merge(zrUtil.clone(indicatorOpt), {\n        boundaryGap: boundaryGap,\n        splitNumber: splitNumber,\n        scale: scale,\n        axisLine: axisLine,\n        axisTick: axisTick,\n        axisLabel: axisLabel,\n        name: indicatorOpt.text,\n        nameLocation: 'end',\n        nameGap: nameGap,\n        nameTextStyle: iNameTextStyle,\n        triggerEvent: triggerEvent\n      }, false);\n\n      if (!showName) {\n        innerIndicatorOpt.name = '';\n      }\n\n      if (typeof nameFormatter === 'string') {\n        var indName = innerIndicatorOpt.name;\n        innerIndicatorOpt.name = nameFormatter.replace('{value}', indName != null ? indName : '');\n      } else if (typeof nameFormatter === 'function') {\n        innerIndicatorOpt.name = nameFormatter(innerIndicatorOpt.name, innerIndicatorOpt);\n      }\n\n      var model = new Model(innerIndicatorOpt, null, this.ecModel);\n      zrUtil.mixin(model, AxisModelCommonMixin.prototype);\n      model.mainType = 'radar';\n      model.componentIndex = this.componentIndex;\n      return model;\n    }, this);\n    this._indicatorModels = indicatorModels;\n  };\n\n  RadarModel.prototype.getIndicatorModels = function () {\n    return this._indicatorModels;\n  };\n\n  RadarModel.type = 'radar';\n  RadarModel.defaultOption = {\n    zlevel: 0,\n    z: 0,\n    center: ['50%', '50%'],\n    radius: '75%',\n    startAngle: 90,\n    axisName: {\n      show: true\n    },\n    boundaryGap: [0, 0],\n    splitNumber: 5,\n    axisNameGap: 15,\n    scale: false,\n    shape: 'polygon',\n    axisLine: zrUtil.merge({\n      lineStyle: {\n        color: '#bbb'\n      }\n    }, valueAxisDefault.axisLine),\n    axisLabel: defaultsShow(valueAxisDefault.axisLabel, false),\n    axisTick: defaultsShow(valueAxisDefault.axisTick, false),\n    splitLine: defaultsShow(valueAxisDefault.splitLine, true),\n    splitArea: defaultsShow(valueAxisDefault.splitArea, true),\n    indicator: []\n  };\n  return RadarModel;\n}(ComponentModel);\n\nexport default RadarModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport AxisBuilder from '../axis/AxisBuilder';\nimport * as graphic from '../../util/graphic';\nimport ComponentView from '../../view/Component';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\n\nvar RadarView = function (_super) {\n  __extends(RadarView, _super);\n\n  function RadarView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = RadarView.type;\n    return _this;\n  }\n\n  RadarView.prototype.render = function (radarModel, ecModel, api) {\n    var group = this.group;\n    group.removeAll();\n\n    this._buildAxes(radarModel);\n\n    this._buildSplitLineAndArea(radarModel);\n  };\n\n  RadarView.prototype._buildAxes = function (radarModel) {\n    var radar = radarModel.coordinateSystem;\n    var indicatorAxes = radar.getIndicatorAxes();\n    var axisBuilders = zrUtil.map(indicatorAxes, function (indicatorAxis) {\n      var axisBuilder = new AxisBuilder(indicatorAxis.model, {\n        position: [radar.cx, radar.cy],\n        rotation: indicatorAxis.angle,\n        labelDirection: -1,\n        tickDirection: -1,\n        nameDirection: 1\n      });\n      return axisBuilder;\n    });\n    zrUtil.each(axisBuilders, function (axisBuilder) {\n      zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n      this.group.add(axisBuilder.getGroup());\n    }, this);\n  };\n\n  RadarView.prototype._buildSplitLineAndArea = function (radarModel) {\n    var radar = radarModel.coordinateSystem;\n    var indicatorAxes = radar.getIndicatorAxes();\n\n    if (!indicatorAxes.length) {\n      return;\n    }\n\n    var shape = radarModel.get('shape');\n    var splitLineModel = radarModel.getModel('splitLine');\n    var splitAreaModel = radarModel.getModel('splitArea');\n    var lineStyleModel = splitLineModel.getModel('lineStyle');\n    var areaStyleModel = splitAreaModel.getModel('areaStyle');\n    var showSplitLine = splitLineModel.get('show');\n    var showSplitArea = splitAreaModel.get('show');\n    var splitLineColors = lineStyleModel.get('color');\n    var splitAreaColors = areaStyleModel.get('color');\n    var splitLineColorsArr = zrUtil.isArray(splitLineColors) ? splitLineColors : [splitLineColors];\n    var splitAreaColorsArr = zrUtil.isArray(splitAreaColors) ? splitAreaColors : [splitAreaColors];\n    var splitLines = [];\n    var splitAreas = [];\n\n    function getColorIndex(areaOrLine, areaOrLineColorList, idx) {\n      var colorIndex = idx % areaOrLineColorList.length;\n      areaOrLine[colorIndex] = areaOrLine[colorIndex] || [];\n      return colorIndex;\n    }\n\n    if (shape === 'circle') {\n      var ticksRadius = indicatorAxes[0].getTicksCoords();\n      var cx = radar.cx;\n      var cy = radar.cy;\n\n      for (var i = 0; i < ticksRadius.length; i++) {\n        if (showSplitLine) {\n          var colorIndex = getColorIndex(splitLines, splitLineColorsArr, i);\n          splitLines[colorIndex].push(new graphic.Circle({\n            shape: {\n              cx: cx,\n              cy: cy,\n              r: ticksRadius[i].coord\n            }\n          }));\n        }\n\n        if (showSplitArea && i < ticksRadius.length - 1) {\n          var colorIndex = getColorIndex(splitAreas, splitAreaColorsArr, i);\n          splitAreas[colorIndex].push(new graphic.Ring({\n            shape: {\n              cx: cx,\n              cy: cy,\n              r0: ticksRadius[i].coord,\n              r: ticksRadius[i + 1].coord\n            }\n          }));\n        }\n      }\n    } else {\n      var realSplitNumber_1;\n      var axesTicksPoints = zrUtil.map(indicatorAxes, function (indicatorAxis, idx) {\n        var ticksCoords = indicatorAxis.getTicksCoords();\n        realSplitNumber_1 = realSplitNumber_1 == null ? ticksCoords.length - 1 : Math.min(ticksCoords.length - 1, realSplitNumber_1);\n        return zrUtil.map(ticksCoords, function (tickCoord) {\n          return radar.coordToPoint(tickCoord.coord, idx);\n        });\n      });\n      var prevPoints = [];\n\n      for (var i = 0; i <= realSplitNumber_1; i++) {\n        var points = [];\n\n        for (var j = 0; j < indicatorAxes.length; j++) {\n          points.push(axesTicksPoints[j][i]);\n        }\n\n        if (points[0]) {\n          points.push(points[0].slice());\n        } else {\n          if (process.env.NODE_ENV !== 'production') {\n            console.error('Can\\'t draw value axis ' + i);\n          }\n        }\n\n        if (showSplitLine) {\n          var colorIndex = getColorIndex(splitLines, splitLineColorsArr, i);\n          splitLines[colorIndex].push(new graphic.Polyline({\n            shape: {\n              points: points\n            }\n          }));\n        }\n\n        if (showSplitArea && prevPoints) {\n          var colorIndex = getColorIndex(splitAreas, splitAreaColorsArr, i - 1);\n          splitAreas[colorIndex].push(new graphic.Polygon({\n            shape: {\n              points: points.concat(prevPoints)\n            }\n          }));\n        }\n\n        prevPoints = points.slice().reverse();\n      }\n    }\n\n    var lineStyle = lineStyleModel.getLineStyle();\n    var areaStyle = areaStyleModel.getAreaStyle();\n    zrUtil.each(splitAreas, function (splitAreas, idx) {\n      this.group.add(graphic.mergePath(splitAreas, {\n        style: zrUtil.defaults({\n          stroke: 'none',\n          fill: splitAreaColorsArr[idx % splitAreaColorsArr.length]\n        }, areaStyle),\n        silent: true\n      }));\n    }, this);\n    zrUtil.each(splitLines, function (splitLines, idx) {\n      this.group.add(graphic.mergePath(splitLines, {\n        style: zrUtil.defaults({\n          fill: 'none',\n          stroke: splitLineColorsArr[idx % splitLineColorsArr.length]\n        }, lineStyle),\n        silent: true\n      }));\n    }, this);\n  };\n\n  RadarView.type = 'radar';\n  return RadarView;\n}(ComponentView);\n\nexport default RadarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis';\n\nvar IndicatorAxis = function (_super) {\n  __extends(IndicatorAxis, _super);\n\n  function IndicatorAxis(dim, scale, radiusExtent) {\n    var _this = _super.call(this, dim, scale, radiusExtent) || this;\n\n    _this.type = 'value';\n    _this.angle = 0;\n    _this.name = '';\n    return _this;\n  }\n\n  return IndicatorAxis;\n}(Axis);\n\nexport default IndicatorAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport IndicatorAxis from './IndicatorAxis';\nimport IntervalScale from '../../scale/Interval';\nimport * as numberUtil from '../../util/number';\nimport { getScaleExtent, niceScaleExtent } from '../axisHelper';\nimport { parseAxisModelMinMax } from '../scaleRawExtentInfo';\nimport { map, each } from 'zrender/lib/core/util';\n\nvar Radar = function () {\n  function Radar(radarModel, ecModel, api) {\n    this.dimensions = [];\n    this._model = radarModel;\n    this._indicatorAxes = map(radarModel.getIndicatorModels(), function (indicatorModel, idx) {\n      var dim = 'indicator_' + idx;\n      var indicatorAxis = new IndicatorAxis(dim, new IntervalScale());\n      indicatorAxis.name = indicatorModel.get('name');\n      indicatorAxis.model = indicatorModel;\n      indicatorModel.axis = indicatorAxis;\n      this.dimensions.push(dim);\n      return indicatorAxis;\n    }, this);\n    this.resize(radarModel, api);\n  }\n\n  Radar.prototype.getIndicatorAxes = function () {\n    return this._indicatorAxes;\n  };\n\n  Radar.prototype.dataToPoint = function (value, indicatorIndex) {\n    var indicatorAxis = this._indicatorAxes[indicatorIndex];\n    return this.coordToPoint(indicatorAxis.dataToCoord(value), indicatorIndex);\n  };\n\n  Radar.prototype.coordToPoint = function (coord, indicatorIndex) {\n    var indicatorAxis = this._indicatorAxes[indicatorIndex];\n    var angle = indicatorAxis.angle;\n    var x = this.cx + coord * Math.cos(angle);\n    var y = this.cy - coord * Math.sin(angle);\n    return [x, y];\n  };\n\n  Radar.prototype.pointToData = function (pt) {\n    var dx = pt[0] - this.cx;\n    var dy = pt[1] - this.cy;\n    var radius = Math.sqrt(dx * dx + dy * dy);\n    dx /= radius;\n    dy /= radius;\n    var radian = Math.atan2(-dy, dx);\n    var minRadianDiff = Infinity;\n    var closestAxis;\n    var closestAxisIdx = -1;\n\n    for (var i = 0; i < this._indicatorAxes.length; i++) {\n      var indicatorAxis = this._indicatorAxes[i];\n      var diff = Math.abs(radian - indicatorAxis.angle);\n\n      if (diff < minRadianDiff) {\n        closestAxis = indicatorAxis;\n        closestAxisIdx = i;\n        minRadianDiff = diff;\n      }\n    }\n\n    return [closestAxisIdx, +(closestAxis && closestAxis.coordToData(radius))];\n  };\n\n  Radar.prototype.resize = function (radarModel, api) {\n    var center = radarModel.get('center');\n    var viewWidth = api.getWidth();\n    var viewHeight = api.getHeight();\n    var viewSize = Math.min(viewWidth, viewHeight) / 2;\n    this.cx = numberUtil.parsePercent(center[0], viewWidth);\n    this.cy = numberUtil.parsePercent(center[1], viewHeight);\n    this.startAngle = radarModel.get('startAngle') * Math.PI / 180;\n    var radius = radarModel.get('radius');\n\n    if (typeof radius === 'string' || typeof radius === 'number') {\n      radius = [0, radius];\n    }\n\n    this.r0 = numberUtil.parsePercent(radius[0], viewSize);\n    this.r = numberUtil.parsePercent(radius[1], viewSize);\n    each(this._indicatorAxes, function (indicatorAxis, idx) {\n      indicatorAxis.setExtent(this.r0, this.r);\n      var angle = this.startAngle + idx * Math.PI * 2 / this._indicatorAxes.length;\n      angle = Math.atan2(Math.sin(angle), Math.cos(angle));\n      indicatorAxis.angle = angle;\n    }, this);\n  };\n\n  Radar.prototype.update = function (ecModel, api) {\n    var indicatorAxes = this._indicatorAxes;\n    var radarModel = this._model;\n    each(indicatorAxes, function (indicatorAxis) {\n      indicatorAxis.scale.setExtent(Infinity, -Infinity);\n    });\n    ecModel.eachSeriesByType('radar', function (radarSeries, idx) {\n      if (radarSeries.get('coordinateSystem') !== 'radar' || ecModel.getComponent('radar', radarSeries.get('radarIndex')) !== radarModel) {\n        return;\n      }\n\n      var data = radarSeries.getData();\n      each(indicatorAxes, function (indicatorAxis) {\n        indicatorAxis.scale.unionExtentFromData(data, data.mapDimension(indicatorAxis.dim));\n      });\n    }, this);\n    var splitNumber = radarModel.get('splitNumber');\n\n    function increaseInterval(interval) {\n      var exp10 = Math.pow(10, Math.floor(Math.log(interval) / Math.LN10));\n      var f = interval / exp10;\n\n      if (f === 2) {\n        f = 5;\n      } else {\n        f *= 2;\n      }\n\n      return f * exp10;\n    }\n\n    each(indicatorAxes, function (indicatorAxis, idx) {\n      var rawExtent = getScaleExtent(indicatorAxis.scale, indicatorAxis.model).extent;\n      niceScaleExtent(indicatorAxis.scale, indicatorAxis.model);\n      var axisModel = indicatorAxis.model;\n      var scale = indicatorAxis.scale;\n      var fixedMin = parseAxisModelMinMax(scale, axisModel.get('min', true));\n      var fixedMax = parseAxisModelMinMax(scale, axisModel.get('max', true));\n      var interval = scale.getInterval();\n\n      if (fixedMin != null && fixedMax != null) {\n        scale.setExtent(+fixedMin, +fixedMax);\n        scale.setInterval((fixedMax - fixedMin) / splitNumber);\n      } else if (fixedMin != null) {\n        var max = void 0;\n\n        do {\n          max = fixedMin + interval * splitNumber;\n          scale.setExtent(+fixedMin, max);\n          scale.setInterval(interval);\n          interval = increaseInterval(interval);\n        } while (max < rawExtent[1] && isFinite(max) && isFinite(rawExtent[1]));\n      } else if (fixedMax != null) {\n        var min = void 0;\n\n        do {\n          min = fixedMax - interval * splitNumber;\n          scale.setExtent(min, +fixedMax);\n          scale.setInterval(interval);\n          interval = increaseInterval(interval);\n        } while (min > rawExtent[0] && isFinite(min) && isFinite(rawExtent[0]));\n      } else {\n        var nicedSplitNumber = scale.getTicks().length - 1;\n\n        if (nicedSplitNumber > splitNumber) {\n          interval = increaseInterval(interval);\n        }\n\n        var max = Math.ceil(rawExtent[1] / interval) * interval;\n        var min = numberUtil.round(max - interval * splitNumber);\n        scale.setExtent(min, max);\n        scale.setInterval(interval);\n      }\n    });\n  };\n\n  Radar.prototype.convertToPixel = function (ecModel, finder, value) {\n    console.warn('Not implemented.');\n    return null;\n  };\n\n  Radar.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n    console.warn('Not implemented.');\n    return null;\n  };\n\n  Radar.prototype.containPoint = function (point) {\n    console.warn('Not implemented.');\n    return false;\n  };\n\n  Radar.create = function (ecModel, api) {\n    var radarList = [];\n    ecModel.eachComponent('radar', function (radarModel) {\n      var radar = new Radar(radarModel, ecModel, api);\n      radarList.push(radar);\n      radarModel.coordinateSystem = radar;\n    });\n    ecModel.eachSeriesByType('radar', function (radarSeries) {\n      if (radarSeries.get('coordinateSystem') === 'radar') {\n        radarSeries.coordinateSystem = radarList[radarSeries.get('radarIndex') || 0];\n      }\n    });\n    return radarList;\n  };\n\n  Radar.dimensions = [];\n  return Radar;\n}();\n\nexport default Radar;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport RadarModel from '../../coord/radar/RadarModel';\nimport RadarView from './RadarView';\nimport Radar from '../../coord/radar/Radar';\nexport function install(registers) {\n  registers.registerCoordinateSystem('radar', Radar);\n  registers.registerComponentModel(RadarModel);\n  registers.registerComponentView(RadarView);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport radarLayout from '../radar/radarLayout';\nimport dataFilter from '../../processor/dataFilter';\nimport backwardCompat from '../radar/backwardCompat';\nimport RadarView from './RadarView';\nimport RadarSeriesModel from './RadarSeries';\nimport { install as installRadarComponent } from '../../component/radar/install';\nexport function install(registers) {\n  use(installRadarComponent);\n  registers.registerChartView(RadarView);\n  registers.registerSeriesModel(RadarSeriesModel);\n  registers.registerLayout(radarLayout);\n  registers.registerProcessor(dataFilter('radar'));\n  registers.registerPreprocessor(backwardCompat);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as echarts from '../../core/echarts';\nvar ATTR = '\\0_ec_interaction_mutex';\nexport function take(zr, resourceKey, userKey) {\n  var store = getStore(zr);\n  store[resourceKey] = userKey;\n}\nexport function release(zr, resourceKey, userKey) {\n  var store = getStore(zr);\n  var uKey = store[resourceKey];\n\n  if (uKey === userKey) {\n    store[resourceKey] = null;\n  }\n}\nexport function isTaken(zr, resourceKey) {\n  return !!getStore(zr)[resourceKey];\n}\n\nfunction getStore(zr) {\n  return zr[ATTR] || (zr[ATTR] = {});\n}\n\necharts.registerAction({\n  type: 'takeGlobalCursor',\n  event: 'globalCursorTaken',\n  update: 'update'\n}, function () {});","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Eventful from 'zrender/lib/core/Eventful';\nimport * as eventTool from 'zrender/lib/core/event';\nimport * as interactionMutex from './interactionMutex';\nimport { isString, bind, defaults, clone } from 'zrender/lib/core/util';\n\nvar RoamController = function (_super) {\n  __extends(RoamController, _super);\n\n  function RoamController(zr) {\n    var _this = _super.call(this) || this;\n\n    _this._zr = zr;\n    var mousedownHandler = bind(_this._mousedownHandler, _this);\n    var mousemoveHandler = bind(_this._mousemoveHandler, _this);\n    var mouseupHandler = bind(_this._mouseupHandler, _this);\n    var mousewheelHandler = bind(_this._mousewheelHandler, _this);\n    var pinchHandler = bind(_this._pinchHandler, _this);\n\n    _this.enable = function (controlType, opt) {\n      this.disable();\n      this._opt = defaults(clone(opt) || {}, {\n        zoomOnMouseWheel: true,\n        moveOnMouseMove: true,\n        moveOnMouseWheel: false,\n        preventDefaultMouseMove: true\n      });\n\n      if (controlType == null) {\n        controlType = true;\n      }\n\n      if (controlType === true || controlType === 'move' || controlType === 'pan') {\n        zr.on('mousedown', mousedownHandler);\n        zr.on('mousemove', mousemoveHandler);\n        zr.on('mouseup', mouseupHandler);\n      }\n\n      if (controlType === true || controlType === 'scale' || controlType === 'zoom') {\n        zr.on('mousewheel', mousewheelHandler);\n        zr.on('pinch', pinchHandler);\n      }\n    };\n\n    _this.disable = function () {\n      zr.off('mousedown', mousedownHandler);\n      zr.off('mousemove', mousemoveHandler);\n      zr.off('mouseup', mouseupHandler);\n      zr.off('mousewheel', mousewheelHandler);\n      zr.off('pinch', pinchHandler);\n    };\n\n    return _this;\n  }\n\n  RoamController.prototype.isDragging = function () {\n    return this._dragging;\n  };\n\n  RoamController.prototype.isPinching = function () {\n    return this._pinching;\n  };\n\n  RoamController.prototype.setPointerChecker = function (pointerChecker) {\n    this.pointerChecker = pointerChecker;\n  };\n\n  RoamController.prototype.dispose = function () {\n    this.disable();\n  };\n\n  RoamController.prototype._mousedownHandler = function (e) {\n    if (eventTool.isMiddleOrRightButtonOnMouseUpDown(e) || e.target && e.target.draggable) {\n      return;\n    }\n\n    var x = e.offsetX;\n    var y = e.offsetY;\n\n    if (this.pointerChecker && this.pointerChecker(e, x, y)) {\n      this._x = x;\n      this._y = y;\n      this._dragging = true;\n    }\n  };\n\n  RoamController.prototype._mousemoveHandler = function (e) {\n    if (!this._dragging || !isAvailableBehavior('moveOnMouseMove', e, this._opt) || e.gestureEvent === 'pinch' || interactionMutex.isTaken(this._zr, 'globalPan')) {\n      return;\n    }\n\n    var x = e.offsetX;\n    var y = e.offsetY;\n    var oldX = this._x;\n    var oldY = this._y;\n    var dx = x - oldX;\n    var dy = y - oldY;\n    this._x = x;\n    this._y = y;\n    this._opt.preventDefaultMouseMove && eventTool.stop(e.event);\n    trigger(this, 'pan', 'moveOnMouseMove', e, {\n      dx: dx,\n      dy: dy,\n      oldX: oldX,\n      oldY: oldY,\n      newX: x,\n      newY: y,\n      isAvailableBehavior: null\n    });\n  };\n\n  RoamController.prototype._mouseupHandler = function (e) {\n    if (!eventTool.isMiddleOrRightButtonOnMouseUpDown(e)) {\n      this._dragging = false;\n    }\n  };\n\n  RoamController.prototype._mousewheelHandler = function (e) {\n    var shouldZoom = isAvailableBehavior('zoomOnMouseWheel', e, this._opt);\n    var shouldMove = isAvailableBehavior('moveOnMouseWheel', e, this._opt);\n    var wheelDelta = e.wheelDelta;\n    var absWheelDeltaDelta = Math.abs(wheelDelta);\n    var originX = e.offsetX;\n    var originY = e.offsetY;\n\n    if (wheelDelta === 0 || !shouldZoom && !shouldMove) {\n      return;\n    }\n\n    if (shouldZoom) {\n      var factor = absWheelDeltaDelta > 3 ? 1.4 : absWheelDeltaDelta > 1 ? 1.2 : 1.1;\n      var scale = wheelDelta > 0 ? factor : 1 / factor;\n      checkPointerAndTrigger(this, 'zoom', 'zoomOnMouseWheel', e, {\n        scale: scale,\n        originX: originX,\n        originY: originY,\n        isAvailableBehavior: null\n      });\n    }\n\n    if (shouldMove) {\n      var absDelta = Math.abs(wheelDelta);\n      var scrollDelta = (wheelDelta > 0 ? 1 : -1) * (absDelta > 3 ? 0.4 : absDelta > 1 ? 0.15 : 0.05);\n      checkPointerAndTrigger(this, 'scrollMove', 'moveOnMouseWheel', e, {\n        scrollDelta: scrollDelta,\n        originX: originX,\n        originY: originY,\n        isAvailableBehavior: null\n      });\n    }\n  };\n\n  RoamController.prototype._pinchHandler = function (e) {\n    if (interactionMutex.isTaken(this._zr, 'globalPan')) {\n      return;\n    }\n\n    var scale = e.pinchScale > 1 ? 1.1 : 1 / 1.1;\n    checkPointerAndTrigger(this, 'zoom', null, e, {\n      scale: scale,\n      originX: e.pinchX,\n      originY: e.pinchY,\n      isAvailableBehavior: null\n    });\n  };\n\n  return RoamController;\n}(Eventful);\n\nfunction checkPointerAndTrigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\n  if (controller.pointerChecker && controller.pointerChecker(e, contollerEvent.originX, contollerEvent.originY)) {\n    eventTool.stop(e.event);\n    trigger(controller, eventName, behaviorToCheck, e, contollerEvent);\n  }\n}\n\nfunction trigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\n  contollerEvent.isAvailableBehavior = bind(isAvailableBehavior, null, behaviorToCheck, e);\n  controller.trigger(eventName, contollerEvent);\n}\n\nfunction isAvailableBehavior(behaviorToCheck, e, settings) {\n  var setting = settings[behaviorToCheck];\n  return !behaviorToCheck || setting && (!isString(setting) || e.event[setting + 'Key']);\n}\n\nexport default RoamController;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function updateViewOnPan(controllerHost, dx, dy) {\n  var target = controllerHost.target;\n  target.x += dx;\n  target.y += dy;\n  target.dirty();\n}\nexport function updateViewOnZoom(controllerHost, zoomDelta, zoomX, zoomY) {\n  var target = controllerHost.target;\n  var zoomLimit = controllerHost.zoomLimit;\n  var newZoom = controllerHost.zoom = controllerHost.zoom || 1;\n  newZoom *= zoomDelta;\n\n  if (zoomLimit) {\n    var zoomMin = zoomLimit.min || 0;\n    var zoomMax = zoomLimit.max || Infinity;\n    newZoom = Math.max(Math.min(zoomMax, newZoom), zoomMin);\n  }\n\n  var zoomScale = newZoom / controllerHost.zoom;\n  controllerHost.zoom = newZoom;\n  target.x -= (zoomX - target.x) * (zoomScale - 1);\n  target.y -= (zoomY - target.y) * (zoomScale - 1);\n  target.scaleX *= zoomScale;\n  target.scaleY *= zoomScale;\n  target.dirty();\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar IRRELEVANT_EXCLUDES = {\n  'axisPointer': 1,\n  'tooltip': 1,\n  'brush': 1\n};\nexport function onIrrelevantElement(e, api, targetCoordSysModel) {\n  var model = api.getComponentByElement(e.topTarget);\n  var coordSys = model && model.coordinateSystem;\n  return model && model !== targetCoordSysModel && !IRRELEVANT_EXCLUDES.hasOwnProperty(model.mainType) && coordSys && coordSys.model !== targetCoordSysModel;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Region from '../Region';\nvar geoCoord = [126, 25];\nvar points = [[[0, 3.5], [7, 11.2], [15, 11.9], [30, 7], [42, 0.7], [52, 0.7], [56, 7.7], [59, 0.7], [64, 0.7], [64, 0], [5, 0], [0, 3.5]], [[13, 16.1], [19, 14.7], [16, 21.7], [11, 23.1], [13, 16.1]], [[12, 32.2], [14, 38.5], [15, 38.5], [13, 32.2], [12, 32.2]], [[16, 47.6], [12, 53.2], [13, 53.2], [18, 47.6], [16, 47.6]], [[6, 64.4], [8, 70], [9, 70], [8, 64.4], [6, 64.4]], [[23, 82.6], [29, 79.8], [30, 79.8], [25, 82.6], [23, 82.6]], [[37, 70.7], [43, 62.3], [44, 62.3], [39, 70.7], [37, 70.7]], [[48, 51.1], [51, 45.5], [53, 45.5], [50, 51.1], [48, 51.1]], [[51, 35], [51, 28.7], [53, 28.7], [53, 35], [51, 35]], [[52, 22.4], [55, 17.5], [56, 17.5], [53, 22.4], [52, 22.4]], [[58, 12.6], [62, 7], [63, 7], [60, 12.6], [58, 12.6]], [[0, 3.5], [0, 93.1], [64, 93.1], [64, 0], [63, 0], [63, 92.4], [1, 92.4], [1, 3.5], [0, 3.5]]];\n\nfor (var i = 0; i < points.length; i++) {\n  for (var k = 0; k < points[i].length; k++) {\n    points[i][k][0] /= 10.5;\n    points[i][k][1] /= -10.5 / 0.75;\n    points[i][k][0] += geoCoord[0];\n    points[i][k][1] += geoCoord[1];\n  }\n}\n\nexport default function fixNanhai(mapType, regions) {\n  if (mapType === 'china') {\n    regions.push(new Region('南海诸岛', zrUtil.map(points, function (exterior) {\n      return {\n        type: 'polygon',\n        exterior: exterior\n      };\n    }), geoCoord));\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar coordsOffsetMap = {\n  '南海诸岛': [32, 80],\n  '广东': [0, -10],\n  '香港': [10, 5],\n  '澳门': [-10, 10],\n  '天津': [5, 5]\n};\nexport default function fixTextCoords(mapType, region) {\n  if (mapType === 'china') {\n    var coordFix = coordsOffsetMap[region.name];\n\n    if (coordFix) {\n      var cp = region.center;\n      cp[0] += coordFix[0] / 10.5;\n      cp[1] += -coordFix[1] / (10.5 / 0.75);\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar geoCoordMap = {\n  'Russia': [100, 60],\n  'United States': [-99, 38],\n  'United States of America': [-99, 38]\n};\nexport default function fixGeoCoords(mapType, region) {\n  if (mapType === 'world') {\n    var geoCoord = geoCoordMap[region.name];\n\n    if (geoCoord) {\n      var cp = region.center;\n      cp[0] = geoCoord[0];\n      cp[1] = geoCoord[1];\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar points = [[[123.45165252685547, 25.73527164402261], [123.49731445312499, 25.73527164402261], [123.49731445312499, 25.750734064600884], [123.45165252685547, 25.750734064600884], [123.45165252685547, 25.73527164402261]]];\nexport default function fixDiaoyuIsland(mapType, region) {\n  if (mapType === 'china' && region.name === '台湾') {\n    region.geometries.push({\n      type: 'polygon',\n      exterior: points[0]\n    });\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each } from 'zrender/lib/core/util';\nimport parseGeoJson from './parseGeoJson';\nimport { makeInner } from '../../util/model';\nimport fixNanhai from './fix/nanhai';\nimport fixTextCoord from './fix/textCoord';\nimport fixGeoCoord from './fix/geoCoord';\nimport fixDiaoyuIsland from './fix/diaoyuIsland';\nvar inner = makeInner();\nexport default {\n  load: function (mapName, mapRecord, nameProperty) {\n    var parsed = inner(mapRecord).parsed;\n\n    if (parsed) {\n      return parsed;\n    }\n\n    var specialAreas = mapRecord.specialAreas || {};\n    var geoJSON = mapRecord.geoJSON;\n    var regions;\n\n    try {\n      regions = geoJSON ? parseGeoJson(geoJSON, nameProperty) : [];\n    } catch (e) {\n      throw new Error('Invalid geoJson format\\n' + e.message);\n    }\n\n    fixNanhai(mapName, regions);\n    each(regions, function (region) {\n      var regionName = region.name;\n      fixTextCoord(mapName, region);\n      fixGeoCoord(mapName, region);\n      fixDiaoyuIsland(mapName, region);\n      var specialArea = specialAreas[regionName];\n\n      if (specialArea) {\n        region.transformTo(specialArea.left, specialArea.top, specialArea.width, specialArea.height);\n      }\n    });\n    return inner(mapRecord).parsed = {\n      regions: regions,\n      boundingRect: getBoundingRect(regions)\n    };\n  }\n};\n\nfunction getBoundingRect(regions) {\n  var rect;\n\n  for (var i = 0; i < regions.length; i++) {\n    var regionRect = regions[i].getBoundingRect();\n    rect = rect || regionRect.clone();\n    rect.union(regionRect);\n  }\n\n  return rect;\n}","import Group from '../graphic/Group';\nimport ZRImage from '../graphic/Image';\nimport Circle from '../graphic/shape/Circle';\nimport Rect from '../graphic/shape/Rect';\nimport Ellipse from '../graphic/shape/Ellipse';\nimport Line from '../graphic/shape/Line';\nimport Path from '../graphic/Path';\nimport Polygon from '../graphic/shape/Polygon';\nimport Polyline from '../graphic/shape/Polyline';\nimport * as matrix from '../core/matrix';\nimport { createFromString } from './path';\nimport { extend, defaults, trim, each, map } from '../core/util';\nimport LinearGradient from '../graphic/LinearGradient';\nimport TSpan from '../graphic/TSpan';\nimport { parseXML } from './parseXML';\nvar DILIMITER_REG = /[\\s,]+/;\nvar nodeParsers;\nvar SVGParser = (function () {\n    function SVGParser() {\n        this._defs = {};\n        this._root = null;\n        this._isDefine = false;\n        this._isText = false;\n    }\n    SVGParser.prototype.parse = function (xml, opt) {\n        opt = opt || {};\n        var svg = parseXML(xml);\n        if (!svg) {\n            throw new Error('Illegal svg');\n        }\n        var root = new Group();\n        this._root = root;\n        var viewBox = svg.getAttribute('viewBox') || '';\n        var width = parseFloat((svg.getAttribute('width') || opt.width));\n        var height = parseFloat((svg.getAttribute('height') || opt.height));\n        isNaN(width) && (width = null);\n        isNaN(height) && (height = null);\n        parseAttributes(svg, root, null, true);\n        var child = svg.firstChild;\n        while (child) {\n            this._parseNode(child, root);\n            child = child.nextSibling;\n        }\n        var viewBoxRect;\n        var viewBoxTransform;\n        if (viewBox) {\n            var viewBoxArr = trim(viewBox).split(DILIMITER_REG);\n            if (viewBoxArr.length >= 4) {\n                viewBoxRect = {\n                    x: parseFloat((viewBoxArr[0] || 0)),\n                    y: parseFloat((viewBoxArr[1] || 0)),\n                    width: parseFloat(viewBoxArr[2]),\n                    height: parseFloat(viewBoxArr[3])\n                };\n            }\n        }\n        if (viewBoxRect && width != null && height != null) {\n            viewBoxTransform = makeViewBoxTransform(viewBoxRect, width, height);\n            if (!opt.ignoreViewBox) {\n                var elRoot = root;\n                root = new Group();\n                root.add(elRoot);\n                elRoot.scaleX = elRoot.scaleY = viewBoxTransform.scale;\n                elRoot.x = viewBoxTransform.x;\n                elRoot.y = viewBoxTransform.y;\n            }\n        }\n        if (!opt.ignoreRootClip && width != null && height != null) {\n            root.setClipPath(new Rect({\n                shape: { x: 0, y: 0, width: width, height: height }\n            }));\n        }\n        return {\n            root: root,\n            width: width,\n            height: height,\n            viewBoxRect: viewBoxRect,\n            viewBoxTransform: viewBoxTransform\n        };\n    };\n    SVGParser.prototype._parseNode = function (xmlNode, parentGroup) {\n        var nodeName = xmlNode.nodeName.toLowerCase();\n        if (nodeName === 'defs') {\n            this._isDefine = true;\n        }\n        else if (nodeName === 'text') {\n            this._isText = true;\n        }\n        var el;\n        if (this._isDefine) {\n            var parser = defineParsers[nodeName];\n            if (parser) {\n                var def = parser.call(this, xmlNode);\n                var id = xmlNode.getAttribute('id');\n                if (id) {\n                    this._defs[id] = def;\n                }\n            }\n        }\n        else {\n            var parser = nodeParsers[nodeName];\n            if (parser) {\n                el = parser.call(this, xmlNode, parentGroup);\n                parentGroup.add(el);\n            }\n        }\n        if (el) {\n            var child = xmlNode.firstChild;\n            while (child) {\n                if (child.nodeType === 1) {\n                    this._parseNode(child, el);\n                }\n                if (child.nodeType === 3 && this._isText) {\n                    this._parseText(child, el);\n                }\n                child = child.nextSibling;\n            }\n        }\n        if (nodeName === 'defs') {\n            this._isDefine = false;\n        }\n        else if (nodeName === 'text') {\n            this._isText = false;\n        }\n    };\n    SVGParser.prototype._parseText = function (xmlNode, parentGroup) {\n        if (xmlNode.nodeType === 1) {\n            var dx = xmlNode.getAttribute('dx') || 0;\n            var dy = xmlNode.getAttribute('dy') || 0;\n            this._textX += parseFloat(dx);\n            this._textY += parseFloat(dy);\n        }\n        var text = new TSpan({\n            style: {\n                text: xmlNode.textContent\n            },\n            x: this._textX || 0,\n            y: this._textY || 0\n        });\n        inheritStyle(parentGroup, text);\n        parseAttributes(xmlNode, text, this._defs);\n        var textStyle = text.style;\n        var fontSize = textStyle.fontSize;\n        if (fontSize && fontSize < 9) {\n            textStyle.fontSize = 9;\n            text.scaleX *= fontSize / 9;\n            text.scaleY *= fontSize / 9;\n        }\n        var font = (textStyle.fontSize || textStyle.fontFamily) && [\n            textStyle.fontStyle,\n            textStyle.fontWeight,\n            (textStyle.fontSize || 12) + 'px',\n            textStyle.fontFamily || 'sans-serif'\n        ].join(' ');\n        textStyle.font = font;\n        var rect = text.getBoundingRect();\n        this._textX += rect.width;\n        parentGroup.add(text);\n        return text;\n    };\n    SVGParser.internalField = (function () {\n        nodeParsers = {\n            'g': function (xmlNode, parentGroup) {\n                var g = new Group();\n                inheritStyle(parentGroup, g);\n                parseAttributes(xmlNode, g, this._defs);\n                return g;\n            },\n            'rect': function (xmlNode, parentGroup) {\n                var rect = new Rect();\n                inheritStyle(parentGroup, rect);\n                parseAttributes(xmlNode, rect, this._defs);\n                rect.setShape({\n                    x: parseFloat(xmlNode.getAttribute('x') || '0'),\n                    y: parseFloat(xmlNode.getAttribute('y') || '0'),\n                    width: parseFloat(xmlNode.getAttribute('width') || '0'),\n                    height: parseFloat(xmlNode.getAttribute('height') || '0')\n                });\n                return rect;\n            },\n            'circle': function (xmlNode, parentGroup) {\n                var circle = new Circle();\n                inheritStyle(parentGroup, circle);\n                parseAttributes(xmlNode, circle, this._defs);\n                circle.setShape({\n                    cx: parseFloat(xmlNode.getAttribute('cx') || '0'),\n                    cy: parseFloat(xmlNode.getAttribute('cy') || '0'),\n                    r: parseFloat(xmlNode.getAttribute('r') || '0')\n                });\n                return circle;\n            },\n            'line': function (xmlNode, parentGroup) {\n                var line = new Line();\n                inheritStyle(parentGroup, line);\n                parseAttributes(xmlNode, line, this._defs);\n                line.setShape({\n                    x1: parseFloat(xmlNode.getAttribute('x1') || '0'),\n                    y1: parseFloat(xmlNode.getAttribute('y1') || '0'),\n                    x2: parseFloat(xmlNode.getAttribute('x2') || '0'),\n                    y2: parseFloat(xmlNode.getAttribute('y2') || '0')\n                });\n                return line;\n            },\n            'ellipse': function (xmlNode, parentGroup) {\n                var ellipse = new Ellipse();\n                inheritStyle(parentGroup, ellipse);\n                parseAttributes(xmlNode, ellipse, this._defs);\n                ellipse.setShape({\n                    cx: parseFloat(xmlNode.getAttribute('cx') || '0'),\n                    cy: parseFloat(xmlNode.getAttribute('cy') || '0'),\n                    rx: parseFloat(xmlNode.getAttribute('rx') || '0'),\n                    ry: parseFloat(xmlNode.getAttribute('ry') || '0')\n                });\n                return ellipse;\n            },\n            'polygon': function (xmlNode, parentGroup) {\n                var pointsStr = xmlNode.getAttribute('points');\n                var pointsArr;\n                if (pointsStr) {\n                    pointsArr = parsePoints(pointsStr);\n                }\n                var polygon = new Polygon({\n                    shape: {\n                        points: pointsArr || []\n                    }\n                });\n                inheritStyle(parentGroup, polygon);\n                parseAttributes(xmlNode, polygon, this._defs);\n                return polygon;\n            },\n            'polyline': function (xmlNode, parentGroup) {\n                var path = new Path();\n                inheritStyle(parentGroup, path);\n                parseAttributes(xmlNode, path, this._defs);\n                var pointsStr = xmlNode.getAttribute('points');\n                var pointsArr;\n                if (pointsStr) {\n                    pointsArr = parsePoints(pointsStr);\n                }\n                var polyline = new Polyline({\n                    shape: {\n                        points: pointsArr || []\n                    }\n                });\n                return polyline;\n            },\n            'image': function (xmlNode, parentGroup) {\n                var img = new ZRImage();\n                inheritStyle(parentGroup, img);\n                parseAttributes(xmlNode, img, this._defs);\n                img.setStyle({\n                    image: xmlNode.getAttribute('xlink:href'),\n                    x: +xmlNode.getAttribute('x'),\n                    y: +xmlNode.getAttribute('y'),\n                    width: +xmlNode.getAttribute('width'),\n                    height: +xmlNode.getAttribute('height')\n                });\n                return img;\n            },\n            'text': function (xmlNode, parentGroup) {\n                var x = xmlNode.getAttribute('x') || '0';\n                var y = xmlNode.getAttribute('y') || '0';\n                var dx = xmlNode.getAttribute('dx') || '0';\n                var dy = xmlNode.getAttribute('dy') || '0';\n                this._textX = parseFloat(x) + parseFloat(dx);\n                this._textY = parseFloat(y) + parseFloat(dy);\n                var g = new Group();\n                inheritStyle(parentGroup, g);\n                parseAttributes(xmlNode, g, this._defs);\n                return g;\n            },\n            'tspan': function (xmlNode, parentGroup) {\n                var x = xmlNode.getAttribute('x');\n                var y = xmlNode.getAttribute('y');\n                if (x != null) {\n                    this._textX = parseFloat(x);\n                }\n                if (y != null) {\n                    this._textY = parseFloat(y);\n                }\n                var dx = xmlNode.getAttribute('dx') || 0;\n                var dy = xmlNode.getAttribute('dy') || 0;\n                var g = new Group();\n                inheritStyle(parentGroup, g);\n                parseAttributes(xmlNode, g, this._defs);\n                this._textX += dx;\n                this._textY += dy;\n                return g;\n            },\n            'path': function (xmlNode, parentGroup) {\n                var d = xmlNode.getAttribute('d') || '';\n                var path = createFromString(d);\n                inheritStyle(parentGroup, path);\n                parseAttributes(xmlNode, path, this._defs);\n                return path;\n            }\n        };\n    })();\n    return SVGParser;\n}());\nvar defineParsers = {\n    'lineargradient': function (xmlNode) {\n        var x1 = parseInt(xmlNode.getAttribute('x1') || '0', 10);\n        var y1 = parseInt(xmlNode.getAttribute('y1') || '0', 10);\n        var x2 = parseInt(xmlNode.getAttribute('x2') || '10', 10);\n        var y2 = parseInt(xmlNode.getAttribute('y2') || '0', 10);\n        var gradient = new LinearGradient(x1, y1, x2, y2);\n        _parseGradientColorStops(xmlNode, gradient);\n        return gradient;\n    }\n};\nfunction _parseGradientColorStops(xmlNode, gradient) {\n    var stop = xmlNode.firstChild;\n    while (stop) {\n        if (stop.nodeType === 1) {\n            var offsetStr = stop.getAttribute('offset');\n            var offset = void 0;\n            if (offsetStr.indexOf('%') > 0) {\n                offset = parseInt(offsetStr, 10) / 100;\n            }\n            else if (offsetStr) {\n                offset = parseFloat(offsetStr);\n            }\n            else {\n                offset = 0;\n            }\n            var stopColor = stop.getAttribute('stop-color') || '#000000';\n            gradient.colorStops.push({\n                offset: offset,\n                color: stopColor\n            });\n        }\n        stop = stop.nextSibling;\n    }\n}\nfunction inheritStyle(parent, child) {\n    if (parent && parent.__inheritedStyle) {\n        if (!child.__inheritedStyle) {\n            child.__inheritedStyle = {};\n        }\n        defaults(child.__inheritedStyle, parent.__inheritedStyle);\n    }\n}\nfunction parsePoints(pointsString) {\n    var list = trim(pointsString).split(DILIMITER_REG);\n    var points = [];\n    for (var i = 0; i < list.length; i += 2) {\n        var x = parseFloat(list[i]);\n        var y = parseFloat(list[i + 1]);\n        points.push([x, y]);\n    }\n    return points;\n}\nvar attributesMap = {\n    'fill': 'fill',\n    'stroke': 'stroke',\n    'stroke-width': 'lineWidth',\n    'opacity': 'opacity',\n    'fill-opacity': 'fillOpacity',\n    'stroke-opacity': 'strokeOpacity',\n    'stroke-dasharray': 'lineDash',\n    'stroke-dashoffset': 'lineDashOffset',\n    'stroke-linecap': 'lineCap',\n    'stroke-linejoin': 'lineJoin',\n    'stroke-miterlimit': 'miterLimit',\n    'font-family': 'fontFamily',\n    'font-size': 'fontSize',\n    'font-style': 'fontStyle',\n    'font-weight': 'fontWeight',\n    'text-align': 'textAlign',\n    'alignment-baseline': 'textBaseline'\n};\nfunction parseAttributes(xmlNode, el, defs, onlyInlineStyle) {\n    var disp = el;\n    var zrStyle = disp.__inheritedStyle || {};\n    if (xmlNode.nodeType === 1) {\n        parseTransformAttribute(xmlNode, el);\n        extend(zrStyle, parseStyleAttribute(xmlNode));\n        if (!onlyInlineStyle) {\n            for (var svgAttrName in attributesMap) {\n                if (attributesMap.hasOwnProperty(svgAttrName)) {\n                    var attrValue = xmlNode.getAttribute(svgAttrName);\n                    if (attrValue != null) {\n                        zrStyle[attributesMap[svgAttrName]] = attrValue;\n                    }\n                }\n            }\n        }\n    }\n    disp.style = disp.style || {};\n    zrStyle.fill != null && (disp.style.fill = getPaint(zrStyle.fill, defs));\n    zrStyle.stroke != null && (disp.style.stroke = getPaint(zrStyle.stroke, defs));\n    each([\n        'lineWidth', 'opacity', 'fillOpacity', 'strokeOpacity', 'miterLimit', 'fontSize'\n    ], function (propName) {\n        zrStyle[propName] != null && (disp.style[propName] = parseFloat(zrStyle[propName]));\n    });\n    if (!zrStyle.textBaseline || zrStyle.textBaseline === 'auto') {\n        zrStyle.textBaseline = 'alphabetic';\n    }\n    if (zrStyle.textBaseline === 'alphabetic') {\n        zrStyle.textBaseline = 'bottom';\n    }\n    if (zrStyle.textAlign === 'start') {\n        zrStyle.textAlign = 'left';\n    }\n    if (zrStyle.textAlign === 'end') {\n        zrStyle.textAlign = 'right';\n    }\n    each(['lineDashOffset', 'lineCap', 'lineJoin',\n        'fontWeight', 'fontFamily', 'fontStyle', 'textAlign', 'textBaseline'\n    ], function (propName) {\n        zrStyle[propName] != null && (disp.style[propName] = zrStyle[propName]);\n    });\n    if (zrStyle.lineDash) {\n        disp.style.lineDash = map(trim(zrStyle.lineDash).split(DILIMITER_REG), function (str) {\n            return parseFloat(str);\n        });\n    }\n    disp.__inheritedStyle = zrStyle;\n}\nvar urlRegex = /url\\(\\s*#(.*?)\\)/;\nfunction getPaint(str, defs) {\n    var urlMatch = defs && str && str.match(urlRegex);\n    if (urlMatch) {\n        var url = trim(urlMatch[1]);\n        var def = defs[url];\n        return def;\n    }\n    return str;\n}\nvar transformRegex = /(translate|scale|rotate|skewX|skewY|matrix)\\(([\\-\\s0-9\\.e,]*)\\)/g;\nfunction parseTransformAttribute(xmlNode, node) {\n    var transform = xmlNode.getAttribute('transform');\n    if (transform) {\n        transform = transform.replace(/,/g, ' ');\n        var transformOps_1 = [];\n        var m = null;\n        transform.replace(transformRegex, function (str, type, value) {\n            transformOps_1.push(type, value);\n            return '';\n        });\n        for (var i = transformOps_1.length - 1; i > 0; i -= 2) {\n            var value = transformOps_1[i];\n            var type = transformOps_1[i - 1];\n            var valueArr = void 0;\n            m = m || matrix.create();\n            switch (type) {\n                case 'translate':\n                    valueArr = trim(value).split(DILIMITER_REG);\n                    matrix.translate(m, m, [parseFloat(valueArr[0]), parseFloat(valueArr[1] || '0')]);\n                    break;\n                case 'scale':\n                    valueArr = trim(value).split(DILIMITER_REG);\n                    matrix.scale(m, m, [parseFloat(valueArr[0]), parseFloat(valueArr[1] || valueArr[0])]);\n                    break;\n                case 'rotate':\n                    valueArr = trim(value).split(DILIMITER_REG);\n                    matrix.rotate(m, m, parseFloat(valueArr[0]));\n                    break;\n                case 'skew':\n                    valueArr = trim(value).split(DILIMITER_REG);\n                    console.warn('Skew transform is not supported yet');\n                    break;\n                case 'matrix':\n                    valueArr = trim(value).split(DILIMITER_REG);\n                    m[0] = parseFloat(valueArr[0]);\n                    m[1] = parseFloat(valueArr[1]);\n                    m[2] = parseFloat(valueArr[2]);\n                    m[3] = parseFloat(valueArr[3]);\n                    m[4] = parseFloat(valueArr[4]);\n                    m[5] = parseFloat(valueArr[5]);\n                    break;\n            }\n        }\n        node.setLocalTransform(m);\n    }\n}\nvar styleRegex = /([^\\s:;]+)\\s*:\\s*([^:;]+)/g;\nfunction parseStyleAttribute(xmlNode) {\n    var style = xmlNode.getAttribute('style');\n    var result = {};\n    if (!style) {\n        return result;\n    }\n    var styleList = {};\n    styleRegex.lastIndex = 0;\n    var styleRegResult;\n    while ((styleRegResult = styleRegex.exec(style)) != null) {\n        styleList[styleRegResult[1]] = styleRegResult[2];\n    }\n    for (var svgAttrName in attributesMap) {\n        if (attributesMap.hasOwnProperty(svgAttrName) && styleList[svgAttrName] != null) {\n            result[attributesMap[svgAttrName]] = styleList[svgAttrName];\n        }\n    }\n    return result;\n}\nexport function makeViewBoxTransform(viewBoxRect, width, height) {\n    var scaleX = width / viewBoxRect.width;\n    var scaleY = height / viewBoxRect.height;\n    var scale = Math.min(scaleX, scaleY);\n    return {\n        scale: scale,\n        x: -(viewBoxRect.x + viewBoxRect.width / 2) * scale + width / 2,\n        y: -(viewBoxRect.y + viewBoxRect.height / 2) * scale + height / 2\n    };\n}\nexport function parseSVG(xml, opt) {\n    var parser = new SVGParser();\n    return parser.parse(xml, opt);\n}\nexport { parseXML };\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parseSVG, makeViewBoxTransform } from 'zrender/lib/tool/parseSVG';\nimport Group from 'zrender/lib/graphic/Group';\nimport Rect from 'zrender/lib/graphic/shape/Rect';\nimport { assert, createHashMap } from 'zrender/lib/core/util';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\nexport default {\n  load: function (mapName, mapRecord) {\n    var originRoot = inner(mapRecord).originRoot;\n\n    if (originRoot) {\n      return {\n        root: originRoot,\n        boundingRect: inner(mapRecord).boundingRect\n      };\n    }\n\n    var graphic = buildGraphic(mapRecord);\n    inner(mapRecord).originRoot = graphic.root;\n    inner(mapRecord).boundingRect = graphic.boundingRect;\n    return graphic;\n  },\n  makeGraphic: function (mapName, mapRecord, hostKey) {\n    var field = inner(mapRecord);\n    var rootMap = field.rootMap || (field.rootMap = createHashMap());\n    var root = rootMap.get(hostKey);\n\n    if (root) {\n      return root;\n    }\n\n    var originRoot = field.originRoot;\n    var boundingRect = field.boundingRect;\n\n    if (!field.originRootHostKey) {\n      field.originRootHostKey = hostKey;\n      root = originRoot;\n    } else {\n      root = buildGraphic(mapRecord, boundingRect).root;\n    }\n\n    return rootMap.set(hostKey, root);\n  },\n  removeGraphic: function (mapName, mapRecord, hostKey) {\n    var field = inner(mapRecord);\n    var rootMap = field.rootMap;\n    rootMap && rootMap.removeKey(hostKey);\n\n    if (hostKey === field.originRootHostKey) {\n      field.originRootHostKey = null;\n    }\n  }\n};\n\nfunction buildGraphic(mapRecord, boundingRect) {\n  var svgXML = mapRecord.svgXML;\n  var result;\n  var root;\n\n  try {\n    result = svgXML && parseSVG(svgXML, {\n      ignoreViewBox: true,\n      ignoreRootClip: true\n    }) || {};\n    root = result.root;\n    assert(root != null);\n  } catch (e) {\n    throw new Error('Invalid svg format\\n' + e.message);\n  }\n\n  var svgWidth = result.width;\n  var svgHeight = result.height;\n  var viewBoxRect = result.viewBoxRect;\n\n  if (!boundingRect) {\n    boundingRect = svgWidth == null || svgHeight == null ? root.getBoundingRect() : new BoundingRect(0, 0, 0, 0);\n\n    if (svgWidth != null) {\n      boundingRect.width = svgWidth;\n    }\n\n    if (svgHeight != null) {\n      boundingRect.height = svgHeight;\n    }\n  }\n\n  if (viewBoxRect) {\n    var viewBoxTransform = makeViewBoxTransform(viewBoxRect, boundingRect.width, boundingRect.height);\n    var elRoot = root;\n    root = new Group();\n    root.add(elRoot);\n    elRoot.scaleX = elRoot.scaleY = viewBoxTransform.scale;\n    elRoot.x = viewBoxTransform.x;\n    elRoot.y = viewBoxTransform.y;\n  }\n\n  root.setClipPath(new Rect({\n    shape: boundingRect.plain()\n  }));\n  return {\n    root: root,\n    boundingRect: boundingRect\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, createHashMap } from 'zrender/lib/core/util';\nimport mapDataStorage from './mapDataStorage';\nimport geoJSONLoader from './geoJSONLoader';\nimport geoSVGLoader from './geoSVGLoader';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nvar loaders = {\n  geoJSON: geoJSONLoader,\n  svg: geoSVGLoader\n};\nexport default {\n  load: function (mapName, nameMap, nameProperty) {\n    var regions = [];\n    var regionsMap = createHashMap();\n    var nameCoordMap = createHashMap();\n    var boundingRect;\n    var mapRecords = retrieveMap(mapName);\n    each(mapRecords, function (record) {\n      var singleSource = loaders[record.type].load(mapName, record, nameProperty);\n      each(singleSource.regions, function (region) {\n        var regionName = region.name;\n\n        if (nameMap && nameMap.hasOwnProperty(regionName)) {\n          region = region.cloneShallow(regionName = nameMap[regionName]);\n        }\n\n        regions.push(region);\n        regionsMap.set(regionName, region);\n        nameCoordMap.set(regionName, region.center);\n      });\n      var rect = singleSource.boundingRect;\n\n      if (rect) {\n        boundingRect ? boundingRect.union(rect) : boundingRect = rect.clone();\n      }\n    });\n    return {\n      regions: regions,\n      regionsMap: regionsMap,\n      nameCoordMap: nameCoordMap,\n      boundingRect: boundingRect || new BoundingRect(0, 0, 0, 0)\n    };\n  },\n  makeGraphic: function (mapName, hostKey) {\n    var mapRecords = retrieveMap(mapName);\n    var results = [];\n    each(mapRecords, function (record) {\n      var method = loaders[record.type].makeGraphic;\n      method && results.push(method(mapName, record, hostKey));\n    });\n    return results;\n  },\n  removeGraphic: function (mapName, hostKey) {\n    var mapRecords = retrieveMap(mapName);\n    each(mapRecords, function (record) {\n      var method = loaders[record.type].makeGraphic;\n      method && method(mapName, record, hostKey);\n    });\n  }\n};\n\nfunction mapNotExistsError(mapName) {\n  if (process.env.NODE_ENV !== 'production') {\n    console.error('Map ' + mapName + ' not exists. The GeoJSON of the map must be provided.');\n  }\n}\n\nfunction retrieveMap(mapName) {\n  var mapRecords = mapDataStorage.retrieveMap(mapName) || [];\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (!mapRecords.length) {\n      mapNotExistsError(mapName);\n    }\n  }\n\n  return mapRecords;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport RoamController from './RoamController';\nimport * as roamHelper from '../../component/helper/roamHelper';\nimport { onIrrelevantElement } from '../../component/helper/cursorHelper';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis, DISPLAY_STATES } from '../../util/states';\nimport geoSourceManager from '../../coord/geo/geoSourceManager';\nimport { getUID } from '../../util/component';\nimport Transformable from 'zrender/lib/core/Transformable';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { getECData } from '../../util/innerStore';\nimport { createOrUpdatePatternFromDecal } from '../../util/decal';\n\nfunction getFixedItemStyle(model) {\n  var itemStyle = model.getItemStyle();\n  var areaColor = model.get('areaColor');\n\n  if (areaColor != null) {\n    itemStyle.fill = areaColor;\n  }\n\n  return itemStyle;\n}\n\nvar MapDraw = function () {\n  function MapDraw(api) {\n    var group = new graphic.Group();\n    this.uid = getUID('ec_map_draw');\n    this._controller = new RoamController(api.getZr());\n    this._controllerHost = {\n      target: group\n    };\n    this.group = group;\n    group.add(this._regionsGroup = new graphic.Group());\n    group.add(this._backgroundGroup = new graphic.Group());\n  }\n\n  MapDraw.prototype.draw = function (mapOrGeoModel, ecModel, api, fromView, payload) {\n    var isGeo = mapOrGeoModel.mainType === 'geo';\n    var data = mapOrGeoModel.getData && mapOrGeoModel.getData();\n    isGeo && ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'map'\n    }, function (mapSeries) {\n      if (!data && mapSeries.getHostGeoModel() === mapOrGeoModel) {\n        data = mapSeries.getData();\n      }\n    });\n    var geo = mapOrGeoModel.coordinateSystem;\n\n    this._updateBackground(geo);\n\n    var regionsGroup = this._regionsGroup;\n    var group = this.group;\n    var transformInfo = geo.getTransformInfo();\n    var isFirstDraw = !regionsGroup.childAt(0) || payload;\n    var targetScaleX;\n    var targetScaleY;\n\n    if (isFirstDraw) {\n      group.transform = transformInfo.roamTransform;\n      group.decomposeTransform();\n      group.dirty();\n    } else {\n      var target = new Transformable();\n      target.transform = transformInfo.roamTransform;\n      target.decomposeTransform();\n      var props = {\n        scaleX: target.scaleX,\n        scaleY: target.scaleY,\n        x: target.x,\n        y: target.y\n      };\n      targetScaleX = target.scaleX;\n      targetScaleY = target.scaleY;\n      graphic.updateProps(group, props, mapOrGeoModel);\n    }\n\n    regionsGroup.removeAll();\n    var nameMap = zrUtil.createHashMap();\n    var isVisualEncodedByVisualMap = data && data.getVisual('visualMeta') && data.getVisual('visualMeta').length > 0;\n    zrUtil.each(geo.regions, function (region) {\n      var regionGroup = nameMap.get(region.name) || nameMap.set(region.name, new graphic.Group());\n      var compoundPath = new graphic.CompoundPath({\n        segmentIgnoreThreshold: 1,\n        shape: {\n          paths: []\n        }\n      });\n      regionGroup.add(compoundPath);\n      var regionModel = mapOrGeoModel.getRegionModel(region.name) || mapOrGeoModel;\n      var itemStyleModel = regionModel.getModel('itemStyle');\n      var emphasisModel = regionModel.getModel('emphasis');\n      var emphasisItemStyleModel = emphasisModel.getModel('itemStyle');\n      var blurItemStyleModel = regionModel.getModel(['blur', 'itemStyle']);\n      var selectItemStyleModel = regionModel.getModel(['select', 'itemStyle']);\n      var itemStyle = getFixedItemStyle(itemStyleModel);\n      var emphasisItemStyle = getFixedItemStyle(emphasisItemStyleModel);\n      var blurItemStyle = getFixedItemStyle(blurItemStyleModel);\n      var selectItemStyle = getFixedItemStyle(selectItemStyleModel);\n      var dataIdx;\n\n      if (data) {\n        dataIdx = data.indexOfName(region.name);\n        var style = data.getItemVisual(dataIdx, 'style');\n        var decal = data.getItemVisual(dataIdx, 'decal');\n\n        if (isVisualEncodedByVisualMap && style.fill) {\n          itemStyle.fill = style.fill;\n        }\n\n        if (decal) {\n          itemStyle.decal = createOrUpdatePatternFromDecal(decal, api);\n        }\n      }\n\n      var sx = transformInfo.rawScaleX;\n      var sy = transformInfo.rawScaleY;\n      var offsetX = transformInfo.rawX;\n      var offsetY = transformInfo.rawY;\n\n      var transformPoint = function (point) {\n        return [point[0] * sx + offsetX, point[1] * sy + offsetY];\n      };\n\n      zrUtil.each(region.geometries, function (geometry) {\n        if (geometry.type !== 'polygon') {\n          return;\n        }\n\n        var points = [];\n\n        for (var i = 0; i < geometry.exterior.length; ++i) {\n          points.push(transformPoint(geometry.exterior[i]));\n        }\n\n        compoundPath.shape.paths.push(new graphic.Polygon({\n          segmentIgnoreThreshold: 1,\n          shape: {\n            points: points\n          }\n        }));\n\n        for (var i = 0; i < (geometry.interiors ? geometry.interiors.length : 0); ++i) {\n          var interior = geometry.interiors[i];\n          var points_1 = [];\n\n          for (var j = 0; j < interior.length; ++j) {\n            points_1.push(transformPoint(interior[j]));\n          }\n\n          compoundPath.shape.paths.push(new graphic.Polygon({\n            segmentIgnoreThreshold: 1,\n            shape: {\n              points: points_1\n            }\n          }));\n        }\n      });\n      compoundPath.setStyle(itemStyle);\n      compoundPath.style.strokeNoScale = true;\n      compoundPath.culling = true;\n      compoundPath.ensureState('emphasis').style = emphasisItemStyle;\n      compoundPath.ensureState('blur').style = blurItemStyle;\n      compoundPath.ensureState('select').style = selectItemStyle;\n      var showLabel = false;\n\n      for (var i = 0; i < DISPLAY_STATES.length; i++) {\n        var stateName = DISPLAY_STATES[i];\n\n        if (regionModel.get(stateName === 'normal' ? ['label', 'show'] : [stateName, 'label', 'show'])) {\n          showLabel = true;\n          break;\n        }\n      }\n\n      var isDataNaN = data && isNaN(data.get(data.mapDimension('value'), dataIdx));\n      var itemLayout = data && data.getItemLayout(dataIdx);\n\n      if (isGeo || isDataNaN && showLabel || itemLayout && itemLayout.showLabel) {\n        var query = !isGeo ? dataIdx : region.name;\n        var labelFetcher = void 0;\n\n        if (!data || dataIdx >= 0) {\n          labelFetcher = mapOrGeoModel;\n        }\n\n        var centerPt = transformPoint(region.center);\n        var textEl = new graphic.Text({\n          x: centerPt[0],\n          y: centerPt[1],\n          scaleX: 1 / group.scaleX,\n          scaleY: 1 / group.scaleY,\n          z2: 10,\n          silent: true\n        });\n        setLabelStyle(textEl, getLabelStatesModels(regionModel), {\n          labelFetcher: labelFetcher,\n          labelDataIndex: query,\n          defaultText: region.name\n        }, {\n          normal: {\n            align: 'center',\n            verticalAlign: 'middle'\n          }\n        });\n        compoundPath.setTextContent(textEl);\n        compoundPath.setTextConfig({\n          local: true\n        });\n        compoundPath.disableLabelAnimation = true;\n\n        if (!isFirstDraw) {\n          graphic.updateProps(textEl, {\n            scaleX: 1 / targetScaleX,\n            scaleY: 1 / targetScaleY\n          }, mapOrGeoModel);\n        }\n      }\n\n      if (data) {\n        data.setItemGraphicEl(dataIdx, regionGroup);\n      } else {\n        var regionModel_1 = mapOrGeoModel.getRegionModel(region.name);\n        getECData(compoundPath).eventData = {\n          componentType: 'geo',\n          componentIndex: mapOrGeoModel.componentIndex,\n          geoIndex: mapOrGeoModel.componentIndex,\n          name: region.name,\n          region: regionModel_1 && regionModel_1.option || {}\n        };\n      }\n\n      var groupRegions = regionGroup.__regions || (regionGroup.__regions = []);\n      groupRegions.push(region);\n      regionGroup.highDownSilentOnTouch = !!mapOrGeoModel.get('selectedMode');\n      enableHoverEmphasis(regionGroup, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n      regionsGroup.add(regionGroup);\n    });\n\n    this._updateController(mapOrGeoModel, ecModel, api);\n\n    this._updateMapSelectHandler(mapOrGeoModel, regionsGroup, api, fromView);\n  };\n\n  MapDraw.prototype.remove = function () {\n    this._regionsGroup.removeAll();\n\n    this._backgroundGroup.removeAll();\n\n    this._controller.dispose();\n\n    this._mapName && geoSourceManager.removeGraphic(this._mapName, this.uid);\n    this._mapName = null;\n    this._controllerHost = null;\n  };\n\n  MapDraw.prototype._updateBackground = function (geo) {\n    var mapName = geo.map;\n\n    if (this._mapName !== mapName) {\n      zrUtil.each(geoSourceManager.makeGraphic(mapName, this.uid), function (root) {\n        this._backgroundGroup.add(root);\n      }, this);\n    }\n\n    this._mapName = mapName;\n  };\n\n  MapDraw.prototype._updateController = function (mapOrGeoModel, ecModel, api) {\n    var geo = mapOrGeoModel.coordinateSystem;\n    var controller = this._controller;\n    var controllerHost = this._controllerHost;\n    controllerHost.zoomLimit = mapOrGeoModel.get('scaleLimit');\n    controllerHost.zoom = geo.getZoom();\n    controller.enable(mapOrGeoModel.get('roam') || false);\n    var mainType = mapOrGeoModel.mainType;\n\n    function makeActionBase() {\n      var action = {\n        type: 'geoRoam',\n        componentType: mainType\n      };\n      action[mainType + 'Id'] = mapOrGeoModel.id;\n      return action;\n    }\n\n    controller.off('pan').on('pan', function (e) {\n      this._mouseDownFlag = false;\n      roamHelper.updateViewOnPan(controllerHost, e.dx, e.dy);\n      api.dispatchAction(zrUtil.extend(makeActionBase(), {\n        dx: e.dx,\n        dy: e.dy\n      }));\n    }, this);\n    controller.off('zoom').on('zoom', function (e) {\n      this._mouseDownFlag = false;\n      roamHelper.updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\n      api.dispatchAction(zrUtil.extend(makeActionBase(), {\n        zoom: e.scale,\n        originX: e.originX,\n        originY: e.originY\n      }));\n      var group = this.group;\n\n      this._regionsGroup.traverse(function (el) {\n        var textContent = el.getTextContent();\n\n        if (textContent) {\n          textContent.scaleX = 1 / group.scaleX;\n          textContent.scaleY = 1 / group.scaleY;\n          textContent.markRedraw();\n        }\n      });\n    }, this);\n    controller.setPointerChecker(function (e, x, y) {\n      return geo.getViewRectAfterRoam().contain(x, y) && !onIrrelevantElement(e, api, mapOrGeoModel);\n    });\n  };\n\n  MapDraw.prototype._updateMapSelectHandler = function (mapOrGeoModel, regionsGroup, api, fromView) {\n    var mapDraw = this;\n    regionsGroup.off('mousedown');\n\n    if (mapOrGeoModel.get('selectedMode')) {\n      regionsGroup.on('mousedown', function () {\n        mapDraw._mouseDownFlag = true;\n      });\n      regionsGroup.on('click', function (e) {\n        if (!mapDraw._mouseDownFlag) {\n          return;\n        }\n\n        mapDraw._mouseDownFlag = false;\n      });\n    }\n  };\n\n  return MapDraw;\n}();\n\n;\nexport default MapDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport MapDraw from '../../component/helper/MapDraw';\nimport ChartView from '../../view/Chart';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { Z2_EMPHASIS_LIFT } from '../../util/states';\n;\n\nvar MapView = function (_super) {\n  __extends(MapView, _super);\n\n  function MapView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MapView.type;\n    return _this;\n  }\n\n  MapView.prototype.render = function (mapModel, ecModel, api, payload) {\n    if (payload && payload.type === 'mapToggleSelect' && payload.from === this.uid) {\n      return;\n    }\n\n    var group = this.group;\n    group.removeAll();\n\n    if (mapModel.getHostGeoModel()) {\n      return;\n    }\n\n    if (!(payload && payload.type === 'geoRoam' && payload.componentType === 'series' && payload.seriesId === mapModel.id)) {\n      if (mapModel.needsDrawMap) {\n        var mapDraw = this._mapDraw || new MapDraw(api);\n        group.add(mapDraw.group);\n        mapDraw.draw(mapModel, ecModel, api, this, payload);\n        this._mapDraw = mapDraw;\n      } else {\n        this._mapDraw && this._mapDraw.remove();\n        this._mapDraw = null;\n      }\n    } else {\n      var mapDraw = this._mapDraw;\n      mapDraw && group.add(mapDraw.group);\n    }\n\n    mapModel.get('showLegendSymbol') && ecModel.getComponent('legend') && this._renderSymbols(mapModel, ecModel, api);\n  };\n\n  MapView.prototype.remove = function () {\n    this._mapDraw && this._mapDraw.remove();\n    this._mapDraw = null;\n    this.group.removeAll();\n  };\n\n  MapView.prototype.dispose = function () {\n    this._mapDraw && this._mapDraw.remove();\n    this._mapDraw = null;\n  };\n\n  MapView.prototype._renderSymbols = function (mapModel, ecModel, api) {\n    var originalData = mapModel.originalData;\n    var group = this.group;\n    originalData.each(originalData.mapDimension('value'), function (value, originalDataIndex) {\n      if (isNaN(value)) {\n        return;\n      }\n\n      var layout = originalData.getItemLayout(originalDataIndex);\n\n      if (!layout || !layout.point) {\n        return;\n      }\n\n      var point = layout.point;\n      var offset = layout.offset;\n      var circle = new graphic.Circle({\n        style: {\n          fill: mapModel.getData().getVisual('style').fill\n        },\n        shape: {\n          cx: point[0] + offset * 9,\n          cy: point[1],\n          r: 3\n        },\n        silent: true,\n        z2: 8 + (!offset ? Z2_EMPHASIS_LIFT + 1 : 0)\n      });\n\n      if (!offset) {\n        var fullData = mapModel.mainSeries.getData();\n        var name_1 = originalData.getName(originalDataIndex);\n        var fullIndex_1 = fullData.indexOfName(name_1);\n        var itemModel = originalData.getItemModel(originalDataIndex);\n        var labelModel = itemModel.getModel('label');\n        var regionGroup = fullData.getItemGraphicEl(fullIndex_1);\n        setLabelStyle(circle, getLabelStatesModels(itemModel), {\n          labelFetcher: {\n            getFormattedLabel: function (idx, state) {\n              return mapModel.getFormattedLabel(fullIndex_1, state);\n            }\n          }\n        });\n        circle.disableLabelAnimation = true;\n\n        if (!labelModel.get('position')) {\n          circle.setTextConfig({\n            position: 'bottom'\n          });\n        }\n\n        regionGroup.onHoverStateChange = function (toState) {\n          circle.useState(toState);\n        };\n      }\n\n      group.add(circle);\n    });\n  };\n\n  MapView.type = 'map';\n  return MapView;\n}(ChartView);\n\nexport default MapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport createListSimply from '../helper/createListSimply';\nimport SeriesModel from '../../model/Series';\nimport geoSourceManager from '../../coord/geo/geoSourceManager';\nimport { makeSeriesEncodeForNameBased } from '../../data/helper/sourceHelper';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup';\n\nvar MapSeries = function (_super) {\n  __extends(MapSeries, _super);\n\n  function MapSeries() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MapSeries.type;\n    _this.needsDrawMap = false;\n    _this.seriesGroup = [];\n\n    _this.getTooltipPosition = function (dataIndex) {\n      if (dataIndex != null) {\n        var name_1 = this.getData().getName(dataIndex);\n        var geo = this.coordinateSystem;\n        var region = geo.getRegion(name_1);\n        return region && geo.dataToPoint(region.center);\n      }\n    };\n\n    return _this;\n  }\n\n  MapSeries.prototype.getInitialData = function (option) {\n    var data = createListSimply(this, {\n      coordDimensions: ['value'],\n      encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)\n    });\n    var dataNameMap = zrUtil.createHashMap();\n    var toAppendNames = [];\n\n    for (var i = 0, len = data.count(); i < len; i++) {\n      var name_2 = data.getName(i);\n      dataNameMap.set(name_2, true);\n    }\n\n    var geoSource = geoSourceManager.load(this.getMapType(), this.option.nameMap, this.option.nameProperty);\n    zrUtil.each(geoSource.regions, function (region) {\n      var name = region.name;\n\n      if (!dataNameMap.get(name)) {\n        toAppendNames.push(name);\n      }\n    });\n    data.appendValues([], toAppendNames);\n    return data;\n  };\n\n  MapSeries.prototype.getHostGeoModel = function () {\n    var geoIndex = this.option.geoIndex;\n    return geoIndex != null ? this.ecModel.getComponent('geo', geoIndex) : null;\n  };\n\n  MapSeries.prototype.getMapType = function () {\n    return (this.getHostGeoModel() || this).option.map;\n  };\n\n  MapSeries.prototype.getRawValue = function (dataIndex) {\n    var data = this.getData();\n    return data.get(data.mapDimension('value'), dataIndex);\n  };\n\n  MapSeries.prototype.getRegionModel = function (regionName) {\n    var data = this.getData();\n    return data.getItemModel(data.indexOfName(regionName));\n  };\n\n  MapSeries.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var data = this.getData();\n    var value = this.getRawValue(dataIndex);\n    var name = data.getName(dataIndex);\n    var seriesGroup = this.seriesGroup;\n    var seriesNames = [];\n\n    for (var i = 0; i < seriesGroup.length; i++) {\n      var otherIndex = seriesGroup[i].originalData.indexOfName(name);\n      var valueDim = data.mapDimension('value');\n\n      if (!isNaN(seriesGroup[i].originalData.get(valueDim, otherIndex))) {\n        seriesNames.push(seriesGroup[i].name);\n      }\n    }\n\n    return createTooltipMarkup('section', {\n      header: seriesNames.join(', '),\n      noHeader: !seriesNames.length,\n      blocks: [createTooltipMarkup('nameValue', {\n        name: name,\n        value: value\n      })]\n    });\n  };\n\n  MapSeries.prototype.setZoom = function (zoom) {\n    this.option.zoom = zoom;\n  };\n\n  MapSeries.prototype.setCenter = function (center) {\n    this.option.center = center;\n  };\n\n  MapSeries.type = 'series.map';\n  MapSeries.dependencies = ['geo'];\n  MapSeries.layoutMode = 'box';\n  MapSeries.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'geo',\n    map: '',\n    left: 'center',\n    top: 'center',\n    aspectScale: 0.75,\n    showLegendSymbol: true,\n    boundingCoords: null,\n    center: null,\n    zoom: 1,\n    scaleLimit: null,\n    selectedMode: true,\n    label: {\n      show: false,\n      color: '#000'\n    },\n    itemStyle: {\n      borderWidth: 0.5,\n      borderColor: '#444',\n      areaColor: '#eee'\n    },\n    emphasis: {\n      label: {\n        show: true,\n        color: 'rgb(100,0,0)'\n      },\n      itemStyle: {\n        areaColor: 'rgba(255,215,0,0.8)'\n      }\n    },\n    select: {\n      label: {\n        show: true,\n        color: 'rgb(100,0,0)'\n      },\n      itemStyle: {\n        color: 'rgba(255,215,0,0.8)'\n      }\n    },\n    nameProperty: 'name'\n  };\n  return MapSeries;\n}(SeriesModel);\n\nexport default MapSeries;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nfunction dataStatistics(datas, statisticType) {\n  var dataNameMap = {};\n  zrUtil.each(datas, function (data) {\n    data.each(data.mapDimension('value'), function (value, idx) {\n      var mapKey = 'ec-' + data.getName(idx);\n      dataNameMap[mapKey] = dataNameMap[mapKey] || [];\n\n      if (!isNaN(value)) {\n        dataNameMap[mapKey].push(value);\n      }\n    });\n  });\n  return datas[0].map(datas[0].mapDimension('value'), function (value, idx) {\n    var mapKey = 'ec-' + datas[0].getName(idx);\n    var sum = 0;\n    var min = Infinity;\n    var max = -Infinity;\n    var len = dataNameMap[mapKey].length;\n\n    for (var i = 0; i < len; i++) {\n      min = Math.min(min, dataNameMap[mapKey][i]);\n      max = Math.max(max, dataNameMap[mapKey][i]);\n      sum += dataNameMap[mapKey][i];\n    }\n\n    var result;\n\n    if (statisticType === 'min') {\n      result = min;\n    } else if (statisticType === 'max') {\n      result = max;\n    } else if (statisticType === 'average') {\n      result = sum / len;\n    } else {\n      result = sum;\n    }\n\n    return len === 0 ? NaN : result;\n  });\n}\n\nexport default function mapDataStatistic(ecModel) {\n  var seriesGroups = {};\n  ecModel.eachSeriesByType('map', function (seriesModel) {\n    var hostGeoModel = seriesModel.getHostGeoModel();\n    var key = hostGeoModel ? 'o' + hostGeoModel.id : 'i' + seriesModel.getMapType();\n    (seriesGroups[key] = seriesGroups[key] || []).push(seriesModel);\n  });\n  zrUtil.each(seriesGroups, function (seriesList, key) {\n    var data = dataStatistics(zrUtil.map(seriesList, function (seriesModel) {\n      return seriesModel.getData();\n    }), seriesList[0].get('mapValueCalculation'));\n\n    for (var i = 0; i < seriesList.length; i++) {\n      seriesList[i].originalData = seriesList[i].getData();\n    }\n\n    for (var i = 0; i < seriesList.length; i++) {\n      seriesList[i].seriesGroup = seriesList;\n      seriesList[i].needsDrawMap = i === 0 && !seriesList[i].getHostGeoModel();\n      seriesList[i].setData(data.cloneShallow());\n      seriesList[i].mainSeries = seriesList[0];\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function mapSymbolLayout(ecModel) {\n  var processedMapType = {};\n  ecModel.eachSeriesByType('map', function (mapSeries) {\n    var mapType = mapSeries.getMapType();\n\n    if (mapSeries.getHostGeoModel() || processedMapType[mapType]) {\n      return;\n    }\n\n    var mapSymbolOffsets = {};\n    zrUtil.each(mapSeries.seriesGroup, function (subMapSeries) {\n      var geo = subMapSeries.coordinateSystem;\n      var data = subMapSeries.originalData;\n\n      if (subMapSeries.get('showLegendSymbol') && ecModel.getComponent('legend')) {\n        data.each(data.mapDimension('value'), function (value, idx) {\n          var name = data.getName(idx);\n          var region = geo.getRegion(name);\n\n          if (!region || isNaN(value)) {\n            return;\n          }\n\n          var offset = mapSymbolOffsets[name] || 0;\n          var point = geo.dataToPoint(region.center);\n          mapSymbolOffsets[name] = offset + 1;\n          data.setItemLayout(idx, {\n            point: point,\n            offset: offset\n          });\n        });\n      }\n    });\n    var data = mapSeries.getData();\n    data.each(function (idx) {\n      var name = data.getName(idx);\n      var layout = data.getItemLayout(idx) || {};\n      layout.showLabel = !mapSymbolOffsets[name];\n      data.setItemLayout(idx, layout);\n    });\n    processedMapType[mapType] = true;\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport MapView from './MapView';\nimport MapSeries from './MapSeries';\nimport mapDataStatistic from './mapDataStatistic';\nimport mapSymbolLayout from './mapSymbolLayout';\nimport { createLegacyDataSelectAction } from '../../legacy/dataSelectAction';\nexport function install(registers) {\n  registers.registerChartView(MapView);\n  registers.registerSeriesModel(MapSeries);\n  registers.registerLayout(mapSymbolLayout);\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, mapDataStatistic);\n  createLegacyDataSelectAction('map', registers.registerAction);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as layout from '../../util/layout';\nexport function init(inRoot) {\n  var root = inRoot;\n  root.hierNode = {\n    defaultAncestor: null,\n    ancestor: root,\n    prelim: 0,\n    modifier: 0,\n    change: 0,\n    shift: 0,\n    i: 0,\n    thread: null\n  };\n  var nodes = [root];\n  var node;\n  var children;\n\n  while (node = nodes.pop()) {\n    children = node.children;\n\n    if (node.isExpand && children.length) {\n      var n = children.length;\n\n      for (var i = n - 1; i >= 0; i--) {\n        var child = children[i];\n        child.hierNode = {\n          defaultAncestor: null,\n          ancestor: child,\n          prelim: 0,\n          modifier: 0,\n          change: 0,\n          shift: 0,\n          i: i,\n          thread: null\n        };\n        nodes.push(child);\n      }\n    }\n  }\n}\nexport function firstWalk(node, separation) {\n  var children = node.isExpand ? node.children : [];\n  var siblings = node.parentNode.children;\n  var subtreeW = node.hierNode.i ? siblings[node.hierNode.i - 1] : null;\n\n  if (children.length) {\n    executeShifts(node);\n    var midPoint = (children[0].hierNode.prelim + children[children.length - 1].hierNode.prelim) / 2;\n\n    if (subtreeW) {\n      node.hierNode.prelim = subtreeW.hierNode.prelim + separation(node, subtreeW);\n      node.hierNode.modifier = node.hierNode.prelim - midPoint;\n    } else {\n      node.hierNode.prelim = midPoint;\n    }\n  } else if (subtreeW) {\n    node.hierNode.prelim = subtreeW.hierNode.prelim + separation(node, subtreeW);\n  }\n\n  node.parentNode.hierNode.defaultAncestor = apportion(node, subtreeW, node.parentNode.hierNode.defaultAncestor || siblings[0], separation);\n}\nexport function secondWalk(node) {\n  var nodeX = node.hierNode.prelim + node.parentNode.hierNode.modifier;\n  node.setLayout({\n    x: nodeX\n  }, true);\n  node.hierNode.modifier += node.parentNode.hierNode.modifier;\n}\nexport function separation(cb) {\n  return arguments.length ? cb : defaultSeparation;\n}\nexport function radialCoordinate(rad, r) {\n  rad -= Math.PI / 2;\n  return {\n    x: r * Math.cos(rad),\n    y: r * Math.sin(rad)\n  };\n}\nexport function getViewRect(seriesModel, api) {\n  return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n}\n\nfunction executeShifts(node) {\n  var children = node.children;\n  var n = children.length;\n  var shift = 0;\n  var change = 0;\n\n  while (--n >= 0) {\n    var child = children[n];\n    child.hierNode.prelim += shift;\n    child.hierNode.modifier += shift;\n    change += child.hierNode.change;\n    shift += child.hierNode.shift + change;\n  }\n}\n\nfunction apportion(subtreeV, subtreeW, ancestor, separation) {\n  if (subtreeW) {\n    var nodeOutRight = subtreeV;\n    var nodeInRight = subtreeV;\n    var nodeOutLeft = nodeInRight.parentNode.children[0];\n    var nodeInLeft = subtreeW;\n    var sumOutRight = nodeOutRight.hierNode.modifier;\n    var sumInRight = nodeInRight.hierNode.modifier;\n    var sumOutLeft = nodeOutLeft.hierNode.modifier;\n    var sumInLeft = nodeInLeft.hierNode.modifier;\n\n    while (nodeInLeft = nextRight(nodeInLeft), nodeInRight = nextLeft(nodeInRight), nodeInLeft && nodeInRight) {\n      nodeOutRight = nextRight(nodeOutRight);\n      nodeOutLeft = nextLeft(nodeOutLeft);\n      nodeOutRight.hierNode.ancestor = subtreeV;\n      var shift = nodeInLeft.hierNode.prelim + sumInLeft - nodeInRight.hierNode.prelim - sumInRight + separation(nodeInLeft, nodeInRight);\n\n      if (shift > 0) {\n        moveSubtree(nextAncestor(nodeInLeft, subtreeV, ancestor), subtreeV, shift);\n        sumInRight += shift;\n        sumOutRight += shift;\n      }\n\n      sumInLeft += nodeInLeft.hierNode.modifier;\n      sumInRight += nodeInRight.hierNode.modifier;\n      sumOutRight += nodeOutRight.hierNode.modifier;\n      sumOutLeft += nodeOutLeft.hierNode.modifier;\n    }\n\n    if (nodeInLeft && !nextRight(nodeOutRight)) {\n      nodeOutRight.hierNode.thread = nodeInLeft;\n      nodeOutRight.hierNode.modifier += sumInLeft - sumOutRight;\n    }\n\n    if (nodeInRight && !nextLeft(nodeOutLeft)) {\n      nodeOutLeft.hierNode.thread = nodeInRight;\n      nodeOutLeft.hierNode.modifier += sumInRight - sumOutLeft;\n      ancestor = subtreeV;\n    }\n  }\n\n  return ancestor;\n}\n\nfunction nextRight(node) {\n  var children = node.children;\n  return children.length && node.isExpand ? children[children.length - 1] : node.hierNode.thread;\n}\n\nfunction nextLeft(node) {\n  var children = node.children;\n  return children.length && node.isExpand ? children[0] : node.hierNode.thread;\n}\n\nfunction nextAncestor(nodeInLeft, node, ancestor) {\n  return nodeInLeft.hierNode.ancestor.parentNode === node.parentNode ? nodeInLeft.hierNode.ancestor : ancestor;\n}\n\nfunction moveSubtree(wl, wr, shift) {\n  var change = shift / (wr.hierNode.i - wl.hierNode.i);\n  wr.hierNode.change -= change;\n  wr.hierNode.shift += shift;\n  wr.hierNode.modifier += shift;\n  wr.hierNode.prelim += shift;\n  wl.hierNode.change += change;\n}\n\nfunction defaultSeparation(node1, node2) {\n  return node1.parentNode === node2.parentNode ? 1 : 2;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as vector from 'zrender/lib/core/vector';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport Transformable from 'zrender/lib/core/Transformable';\nvar v2ApplyTransform = vector.applyTransform;\n\nvar View = function (_super) {\n  __extends(View, _super);\n\n  function View(name) {\n    var _this = _super.call(this) || this;\n\n    _this.type = 'view';\n    _this.dimensions = ['x', 'y'];\n    _this._roamTransformable = new Transformable();\n    _this._rawTransformable = new Transformable();\n    _this.name = name;\n    return _this;\n  }\n\n  View.prototype.setBoundingRect = function (x, y, width, height) {\n    this._rect = new BoundingRect(x, y, width, height);\n    return this._rect;\n  };\n\n  View.prototype.getBoundingRect = function () {\n    return this._rect;\n  };\n\n  View.prototype.setViewRect = function (x, y, width, height) {\n    this.transformTo(x, y, width, height);\n    this._viewRect = new BoundingRect(x, y, width, height);\n  };\n\n  View.prototype.transformTo = function (x, y, width, height) {\n    var rect = this.getBoundingRect();\n    var rawTransform = this._rawTransformable;\n    rawTransform.transform = rect.calculateTransform(new BoundingRect(x, y, width, height));\n    rawTransform.decomposeTransform();\n\n    this._updateTransform();\n  };\n\n  View.prototype.setCenter = function (centerCoord) {\n    if (!centerCoord) {\n      return;\n    }\n\n    this._center = centerCoord;\n\n    this._updateCenterAndZoom();\n  };\n\n  View.prototype.setZoom = function (zoom) {\n    zoom = zoom || 1;\n    var zoomLimit = this.zoomLimit;\n\n    if (zoomLimit) {\n      if (zoomLimit.max != null) {\n        zoom = Math.min(zoomLimit.max, zoom);\n      }\n\n      if (zoomLimit.min != null) {\n        zoom = Math.max(zoomLimit.min, zoom);\n      }\n    }\n\n    this._zoom = zoom;\n\n    this._updateCenterAndZoom();\n  };\n\n  View.prototype.getDefaultCenter = function () {\n    var rawRect = this.getBoundingRect();\n    var cx = rawRect.x + rawRect.width / 2;\n    var cy = rawRect.y + rawRect.height / 2;\n    return [cx, cy];\n  };\n\n  View.prototype.getCenter = function () {\n    return this._center || this.getDefaultCenter();\n  };\n\n  View.prototype.getZoom = function () {\n    return this._zoom || 1;\n  };\n\n  View.prototype.getRoamTransform = function () {\n    return this._roamTransformable.getLocalTransform();\n  };\n\n  View.prototype._updateCenterAndZoom = function () {\n    var rawTransformMatrix = this._rawTransformable.getLocalTransform();\n\n    var roamTransform = this._roamTransformable;\n    var defaultCenter = this.getDefaultCenter();\n    var center = this.getCenter();\n    var zoom = this.getZoom();\n    center = vector.applyTransform([], center, rawTransformMatrix);\n    defaultCenter = vector.applyTransform([], defaultCenter, rawTransformMatrix);\n    roamTransform.originX = center[0];\n    roamTransform.originY = center[1];\n    roamTransform.x = defaultCenter[0] - center[0];\n    roamTransform.y = defaultCenter[1] - center[1];\n    roamTransform.scaleX = roamTransform.scaleY = zoom;\n\n    this._updateTransform();\n  };\n\n  View.prototype._updateTransform = function () {\n    var roamTransformable = this._roamTransformable;\n    var rawTransformable = this._rawTransformable;\n    rawTransformable.parent = roamTransformable;\n    roamTransformable.updateTransform();\n    rawTransformable.updateTransform();\n    matrix.copy(this.transform || (this.transform = []), rawTransformable.transform || matrix.create());\n    this._rawTransform = rawTransformable.getLocalTransform();\n    this.invTransform = this.invTransform || [];\n    matrix.invert(this.invTransform, this.transform);\n    this.decomposeTransform();\n  };\n\n  View.prototype.getTransformInfo = function () {\n    var roamTransform = this._roamTransformable.transform;\n    var rawTransformable = this._rawTransformable;\n    return {\n      roamTransform: roamTransform ? zrUtil.slice(roamTransform) : matrix.create(),\n      rawScaleX: rawTransformable.scaleX,\n      rawScaleY: rawTransformable.scaleY,\n      rawX: rawTransformable.x,\n      rawY: rawTransformable.y\n    };\n  };\n\n  View.prototype.getViewRect = function () {\n    return this._viewRect;\n  };\n\n  View.prototype.getViewRectAfterRoam = function () {\n    var rect = this.getBoundingRect().clone();\n    rect.applyTransform(this.transform);\n    return rect;\n  };\n\n  View.prototype.dataToPoint = function (data, noRoam, out) {\n    var transform = noRoam ? this._rawTransform : this.transform;\n    out = out || [];\n    return transform ? v2ApplyTransform(out, data, transform) : vector.copy(out, data);\n  };\n\n  View.prototype.pointToData = function (point) {\n    var invTransform = this.invTransform;\n    return invTransform ? v2ApplyTransform([], point, invTransform) : [point[0], point[1]];\n  };\n\n  View.prototype.convertToPixel = function (ecModel, finder, value) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? coordSys.dataToPoint(value) : null;\n  };\n\n  View.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? coordSys.pointToData(pixel) : null;\n  };\n\n  View.prototype.containPoint = function (point) {\n    return this.getViewRectAfterRoam().contain(point[0], point[1]);\n  };\n\n  View.dimensions = ['x', 'y'];\n  return View;\n}(Transformable);\n\nfunction getCoordSys(finder) {\n  var seriesModel = finder.seriesModel;\n  return seriesModel ? seriesModel.coordinateSystem : null;\n}\n\nexport default View;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport SymbolClz from '../helper/Symbol';\nimport { radialCoordinate } from './layoutHelper';\nimport * as bbox from 'zrender/lib/core/bbox';\nimport View from '../../coord/View';\nimport * as roamHelper from '../../component/helper/roamHelper';\nimport RoamController from '../../component/helper/RoamController';\nimport { onIrrelevantElement } from '../../component/helper/cursorHelper';\nimport { parsePercent } from '../../util/number';\nimport ChartView from '../../view/Chart';\nimport Path from 'zrender/lib/graphic/Path';\nimport { setStatesStylesFromModel, setStatesFlag, setDefaultStateProxy, HOVER_STATE_BLUR } from '../../util/states';\n\nvar TreeEdgeShape = function () {\n  function TreeEdgeShape() {\n    this.parentPoint = [];\n    this.childPoints = [];\n  }\n\n  return TreeEdgeShape;\n}();\n\nvar TreePath = function (_super) {\n  __extends(TreePath, _super);\n\n  function TreePath(opts) {\n    return _super.call(this, opts) || this;\n  }\n\n  TreePath.prototype.getDefaultStyle = function () {\n    return {\n      stroke: '#000',\n      fill: null\n    };\n  };\n\n  TreePath.prototype.getDefaultShape = function () {\n    return new TreeEdgeShape();\n  };\n\n  TreePath.prototype.buildPath = function (ctx, shape) {\n    var childPoints = shape.childPoints;\n    var childLen = childPoints.length;\n    var parentPoint = shape.parentPoint;\n    var firstChildPos = childPoints[0];\n    var lastChildPos = childPoints[childLen - 1];\n\n    if (childLen === 1) {\n      ctx.moveTo(parentPoint[0], parentPoint[1]);\n      ctx.lineTo(firstChildPos[0], firstChildPos[1]);\n      return;\n    }\n\n    var orient = shape.orient;\n    var forkDim = orient === 'TB' || orient === 'BT' ? 0 : 1;\n    var otherDim = 1 - forkDim;\n    var forkPosition = parsePercent(shape.forkPosition, 1);\n    var tmpPoint = [];\n    tmpPoint[forkDim] = parentPoint[forkDim];\n    tmpPoint[otherDim] = parentPoint[otherDim] + (lastChildPos[otherDim] - parentPoint[otherDim]) * forkPosition;\n    ctx.moveTo(parentPoint[0], parentPoint[1]);\n    ctx.lineTo(tmpPoint[0], tmpPoint[1]);\n    ctx.moveTo(firstChildPos[0], firstChildPos[1]);\n    tmpPoint[forkDim] = firstChildPos[forkDim];\n    ctx.lineTo(tmpPoint[0], tmpPoint[1]);\n    tmpPoint[forkDim] = lastChildPos[forkDim];\n    ctx.lineTo(tmpPoint[0], tmpPoint[1]);\n    ctx.lineTo(lastChildPos[0], lastChildPos[1]);\n\n    for (var i = 1; i < childLen - 1; i++) {\n      var point = childPoints[i];\n      ctx.moveTo(point[0], point[1]);\n      tmpPoint[forkDim] = point[forkDim];\n      ctx.lineTo(tmpPoint[0], tmpPoint[1]);\n    }\n  };\n\n  return TreePath;\n}(Path);\n\nvar TreeView = function (_super) {\n  __extends(TreeView, _super);\n\n  function TreeView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TreeView.type;\n    _this._mainGroup = new graphic.Group();\n    return _this;\n  }\n\n  TreeView.prototype.init = function (ecModel, api) {\n    this._controller = new RoamController(api.getZr());\n    this._controllerHost = {\n      target: this.group\n    };\n    this.group.add(this._mainGroup);\n  };\n\n  TreeView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    var layoutInfo = seriesModel.layoutInfo;\n    var group = this._mainGroup;\n    var layout = seriesModel.get('layout');\n\n    if (layout === 'radial') {\n      group.x = layoutInfo.x + layoutInfo.width / 2;\n      group.y = layoutInfo.y + layoutInfo.height / 2;\n    } else {\n      group.x = layoutInfo.x;\n      group.y = layoutInfo.y;\n    }\n\n    this._updateViewCoordSys(seriesModel);\n\n    this._updateController(seriesModel, ecModel, api);\n\n    var oldData = this._data;\n    data.diff(oldData).add(function (newIdx) {\n      if (symbolNeedsDraw(data, newIdx)) {\n        updateNode(data, newIdx, null, group, seriesModel);\n      }\n    }).update(function (newIdx, oldIdx) {\n      var symbolEl = oldData.getItemGraphicEl(oldIdx);\n\n      if (!symbolNeedsDraw(data, newIdx)) {\n        symbolEl && removeNode(oldData, oldIdx, symbolEl, group, seriesModel);\n        return;\n      }\n\n      updateNode(data, newIdx, symbolEl, group, seriesModel);\n    }).remove(function (oldIdx) {\n      var symbolEl = oldData.getItemGraphicEl(oldIdx);\n\n      if (symbolEl) {\n        removeNode(oldData, oldIdx, symbolEl, group, seriesModel);\n      }\n    }).execute();\n    this._nodeScaleRatio = seriesModel.get('nodeScaleRatio');\n\n    this._updateNodeAndLinkScale(seriesModel);\n\n    if (seriesModel.get('expandAndCollapse') === true) {\n      data.eachItemGraphicEl(function (el, dataIndex) {\n        el.off('click').on('click', function () {\n          api.dispatchAction({\n            type: 'treeExpandAndCollapse',\n            seriesId: seriesModel.id,\n            dataIndex: dataIndex\n          });\n        });\n      });\n    }\n\n    this._data = data;\n  };\n\n  TreeView.prototype._updateViewCoordSys = function (seriesModel) {\n    var data = seriesModel.getData();\n    var points = [];\n    data.each(function (idx) {\n      var layout = data.getItemLayout(idx);\n\n      if (layout && !isNaN(layout.x) && !isNaN(layout.y)) {\n        points.push([+layout.x, +layout.y]);\n      }\n    });\n    var min = [];\n    var max = [];\n    bbox.fromPoints(points, min, max);\n    var oldMin = this._min;\n    var oldMax = this._max;\n\n    if (max[0] - min[0] === 0) {\n      min[0] = oldMin ? oldMin[0] : min[0] - 1;\n      max[0] = oldMax ? oldMax[0] : max[0] + 1;\n    }\n\n    if (max[1] - min[1] === 0) {\n      min[1] = oldMin ? oldMin[1] : min[1] - 1;\n      max[1] = oldMax ? oldMax[1] : max[1] + 1;\n    }\n\n    var viewCoordSys = seriesModel.coordinateSystem = new View();\n    viewCoordSys.zoomLimit = seriesModel.get('scaleLimit');\n    viewCoordSys.setBoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n    viewCoordSys.setCenter(seriesModel.get('center'));\n    viewCoordSys.setZoom(seriesModel.get('zoom'));\n    this.group.attr({\n      x: viewCoordSys.x,\n      y: viewCoordSys.y,\n      scaleX: viewCoordSys.scaleX,\n      scaleY: viewCoordSys.scaleY\n    });\n    this._min = min;\n    this._max = max;\n  };\n\n  TreeView.prototype._updateController = function (seriesModel, ecModel, api) {\n    var _this = this;\n\n    var controller = this._controller;\n    var controllerHost = this._controllerHost;\n    var group = this.group;\n    controller.setPointerChecker(function (e, x, y) {\n      var rect = group.getBoundingRect();\n      rect.applyTransform(group.transform);\n      return rect.contain(x, y) && !onIrrelevantElement(e, api, seriesModel);\n    });\n    controller.enable(seriesModel.get('roam'));\n    controllerHost.zoomLimit = seriesModel.get('scaleLimit');\n    controllerHost.zoom = seriesModel.coordinateSystem.getZoom();\n    controller.off('pan').off('zoom').on('pan', function (e) {\n      roamHelper.updateViewOnPan(controllerHost, e.dx, e.dy);\n      api.dispatchAction({\n        seriesId: seriesModel.id,\n        type: 'treeRoam',\n        dx: e.dx,\n        dy: e.dy\n      });\n    }).on('zoom', function (e) {\n      roamHelper.updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\n      api.dispatchAction({\n        seriesId: seriesModel.id,\n        type: 'treeRoam',\n        zoom: e.scale,\n        originX: e.originX,\n        originY: e.originY\n      });\n\n      _this._updateNodeAndLinkScale(seriesModel);\n\n      api.updateLabelLayout();\n    });\n  };\n\n  TreeView.prototype._updateNodeAndLinkScale = function (seriesModel) {\n    var data = seriesModel.getData();\n\n    var nodeScale = this._getNodeGlobalScale(seriesModel);\n\n    data.eachItemGraphicEl(function (el, idx) {\n      el.setSymbolScale(nodeScale);\n    });\n  };\n\n  TreeView.prototype._getNodeGlobalScale = function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys.type !== 'view') {\n      return 1;\n    }\n\n    var nodeScaleRatio = this._nodeScaleRatio;\n    var groupZoom = coordSys.scaleX || 1;\n    var roamZoom = coordSys.getZoom();\n    var nodeScale = (roamZoom - 1) * nodeScaleRatio + 1;\n    return nodeScale / groupZoom;\n  };\n\n  TreeView.prototype.dispose = function () {\n    this._controller && this._controller.dispose();\n    this._controllerHost = null;\n  };\n\n  TreeView.prototype.remove = function () {\n    this._mainGroup.removeAll();\n\n    this._data = null;\n  };\n\n  TreeView.type = 'tree';\n  return TreeView;\n}(ChartView);\n\nfunction symbolNeedsDraw(data, dataIndex) {\n  var layout = data.getItemLayout(dataIndex);\n  return layout && !isNaN(layout.x) && !isNaN(layout.y);\n}\n\nfunction updateNode(data, dataIndex, symbolEl, group, seriesModel) {\n  var isInit = !symbolEl;\n  var node = data.tree.getNodeByDataIndex(dataIndex);\n  var itemModel = node.getModel();\n  var visualColor = node.getVisual('style').fill;\n  var symbolInnerColor = node.isExpand === false && node.children.length !== 0 ? visualColor : '#fff';\n  var virtualRoot = data.tree.root;\n  var source = node.parentNode === virtualRoot ? node : node.parentNode || node;\n  var sourceSymbolEl = data.getItemGraphicEl(source.dataIndex);\n  var sourceLayout = source.getLayout();\n  var sourceOldLayout = sourceSymbolEl ? {\n    x: sourceSymbolEl.__oldX,\n    y: sourceSymbolEl.__oldY,\n    rawX: sourceSymbolEl.__radialOldRawX,\n    rawY: sourceSymbolEl.__radialOldRawY\n  } : sourceLayout;\n  var targetLayout = node.getLayout();\n\n  if (isInit) {\n    symbolEl = new SymbolClz(data, dataIndex, null, {\n      symbolInnerColor: symbolInnerColor,\n      useNameLabel: true\n    });\n    symbolEl.x = sourceOldLayout.x;\n    symbolEl.y = sourceOldLayout.y;\n  } else {\n    symbolEl.updateData(data, dataIndex, null, {\n      symbolInnerColor: symbolInnerColor,\n      useNameLabel: true\n    });\n  }\n\n  symbolEl.__radialOldRawX = symbolEl.__radialRawX;\n  symbolEl.__radialOldRawY = symbolEl.__radialRawY;\n  symbolEl.__radialRawX = targetLayout.rawX;\n  symbolEl.__radialRawY = targetLayout.rawY;\n  group.add(symbolEl);\n  data.setItemGraphicEl(dataIndex, symbolEl);\n  symbolEl.__oldX = symbolEl.x;\n  symbolEl.__oldY = symbolEl.y;\n  graphic.updateProps(symbolEl, {\n    x: targetLayout.x,\n    y: targetLayout.y\n  }, seriesModel);\n  var symbolPath = symbolEl.getSymbolPath();\n\n  if (seriesModel.get('layout') === 'radial') {\n    var realRoot = virtualRoot.children[0];\n    var rootLayout = realRoot.getLayout();\n    var length_1 = realRoot.children.length;\n    var rad = void 0;\n    var isLeft = void 0;\n\n    if (targetLayout.x === rootLayout.x && node.isExpand === true) {\n      var center = {\n        x: (realRoot.children[0].getLayout().x + realRoot.children[length_1 - 1].getLayout().x) / 2,\n        y: (realRoot.children[0].getLayout().y + realRoot.children[length_1 - 1].getLayout().y) / 2\n      };\n      rad = Math.atan2(center.y - rootLayout.y, center.x - rootLayout.x);\n\n      if (rad < 0) {\n        rad = Math.PI * 2 + rad;\n      }\n\n      isLeft = center.x < rootLayout.x;\n\n      if (isLeft) {\n        rad = rad - Math.PI;\n      }\n    } else {\n      rad = Math.atan2(targetLayout.y - rootLayout.y, targetLayout.x - rootLayout.x);\n\n      if (rad < 0) {\n        rad = Math.PI * 2 + rad;\n      }\n\n      if (node.children.length === 0 || node.children.length !== 0 && node.isExpand === false) {\n        isLeft = targetLayout.x < rootLayout.x;\n\n        if (isLeft) {\n          rad = rad - Math.PI;\n        }\n      } else {\n        isLeft = targetLayout.x > rootLayout.x;\n\n        if (!isLeft) {\n          rad = rad - Math.PI;\n        }\n      }\n    }\n\n    var textPosition = isLeft ? 'left' : 'right';\n    var normalLabelModel = itemModel.getModel('label');\n    var rotate = normalLabelModel.get('rotate');\n    var labelRotateRadian = rotate * (Math.PI / 180);\n    var textContent = symbolPath.getTextContent();\n\n    if (textContent) {\n      symbolPath.setTextConfig({\n        position: normalLabelModel.get('position') || textPosition,\n        rotation: rotate == null ? -rad : labelRotateRadian,\n        origin: 'center'\n      });\n      textContent.setStyle('verticalAlign', 'middle');\n    }\n  }\n\n  var focus = itemModel.get(['emphasis', 'focus']);\n  var focusDataIndices = focus === 'ancestor' ? node.getAncestorsIndices() : focus === 'descendant' ? node.getDescendantIndices() : null;\n\n  if (focusDataIndices) {\n    getECData(symbolEl).focus = focusDataIndices;\n  }\n\n  drawEdge(seriesModel, node, virtualRoot, symbolEl, sourceOldLayout, sourceLayout, targetLayout, group);\n\n  if (symbolEl.__edge) {\n    symbolEl.onHoverStateChange = function (toState) {\n      if (toState !== 'blur') {\n        var parentEl = node.parentNode && data.getItemGraphicEl(node.parentNode.dataIndex);\n\n        if (!(parentEl && parentEl.hoverState === HOVER_STATE_BLUR)) {\n          setStatesFlag(symbolEl.__edge, toState);\n        }\n      }\n    };\n  }\n}\n\nfunction drawEdge(seriesModel, node, virtualRoot, symbolEl, sourceOldLayout, sourceLayout, targetLayout, group) {\n  var itemModel = node.getModel();\n  var edgeShape = seriesModel.get('edgeShape');\n  var layout = seriesModel.get('layout');\n  var orient = seriesModel.getOrient();\n  var curvature = seriesModel.get(['lineStyle', 'curveness']);\n  var edgeForkPosition = seriesModel.get('edgeForkPosition');\n  var lineStyle = itemModel.getModel('lineStyle').getLineStyle();\n  var edge = symbolEl.__edge;\n\n  if (edgeShape === 'curve') {\n    if (node.parentNode && node.parentNode !== virtualRoot) {\n      if (!edge) {\n        edge = symbolEl.__edge = new graphic.BezierCurve({\n          shape: getEdgeShape(layout, orient, curvature, sourceOldLayout, sourceOldLayout)\n        });\n      }\n\n      graphic.updateProps(edge, {\n        shape: getEdgeShape(layout, orient, curvature, sourceLayout, targetLayout)\n      }, seriesModel);\n    }\n  } else if (edgeShape === 'polyline') {\n    if (layout === 'orthogonal') {\n      if (node !== virtualRoot && node.children && node.children.length !== 0 && node.isExpand === true) {\n        var children = node.children;\n        var childPoints = [];\n\n        for (var i = 0; i < children.length; i++) {\n          var childLayout = children[i].getLayout();\n          childPoints.push([childLayout.x, childLayout.y]);\n        }\n\n        if (!edge) {\n          edge = symbolEl.__edge = new TreePath({\n            shape: {\n              parentPoint: [targetLayout.x, targetLayout.y],\n              childPoints: [[targetLayout.x, targetLayout.y]],\n              orient: orient,\n              forkPosition: edgeForkPosition\n            }\n          });\n        }\n\n        graphic.updateProps(edge, {\n          shape: {\n            parentPoint: [targetLayout.x, targetLayout.y],\n            childPoints: childPoints\n          }\n        }, seriesModel);\n      }\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        throw new Error('The polyline edgeShape can only be used in orthogonal layout');\n      }\n    }\n  }\n\n  if (edge) {\n    edge.useStyle(zrUtil.defaults({\n      strokeNoScale: true,\n      fill: null\n    }, lineStyle));\n    setStatesStylesFromModel(edge, itemModel, 'lineStyle');\n    setDefaultStateProxy(edge);\n    group.add(edge);\n  }\n}\n\nfunction removeNode(data, dataIndex, symbolEl, group, seriesModel) {\n  var node = data.tree.getNodeByDataIndex(dataIndex);\n  var virtualRoot = data.tree.root;\n  var source = node.parentNode === virtualRoot ? node : node.parentNode || node;\n  var sourceLayout;\n\n  while (sourceLayout = source.getLayout(), sourceLayout == null) {\n    source = source.parentNode === virtualRoot ? source : source.parentNode || source;\n  }\n\n  var removeAnimationOpt = {\n    duration: seriesModel.get('animationDurationUpdate'),\n    easing: seriesModel.get('animationEasingUpdate')\n  };\n  graphic.removeElement(symbolEl, {\n    x: sourceLayout.x + 1,\n    y: sourceLayout.y + 1\n  }, seriesModel, {\n    cb: function () {\n      group.remove(symbolEl);\n      data.setItemGraphicEl(dataIndex, null);\n    },\n    removeOpt: removeAnimationOpt\n  });\n  symbolEl.fadeOut(null, {\n    fadeLabel: true,\n    animation: removeAnimationOpt\n  });\n  var sourceSymbolEl = data.getItemGraphicEl(source.dataIndex);\n  var sourceEdge = sourceSymbolEl.__edge;\n  var edge = symbolEl.__edge || (source.isExpand === false || source.children.length === 1 ? sourceEdge : undefined);\n  var edgeShape = seriesModel.get('edgeShape');\n  var layoutOpt = seriesModel.get('layout');\n  var orient = seriesModel.get('orient');\n  var curvature = seriesModel.get(['lineStyle', 'curveness']);\n\n  if (edge) {\n    if (edgeShape === 'curve') {\n      graphic.removeElement(edge, {\n        shape: getEdgeShape(layoutOpt, orient, curvature, sourceLayout, sourceLayout),\n        style: {\n          opacity: 0\n        }\n      }, seriesModel, {\n        cb: function () {\n          group.remove(edge);\n        },\n        removeOpt: removeAnimationOpt\n      });\n    } else if (edgeShape === 'polyline' && seriesModel.get('layout') === 'orthogonal') {\n      graphic.removeElement(edge, {\n        shape: {\n          parentPoint: [sourceLayout.x, sourceLayout.y],\n          childPoints: [[sourceLayout.x, sourceLayout.y]]\n        },\n        style: {\n          opacity: 0\n        }\n      }, seriesModel, {\n        cb: function () {\n          group.remove(edge);\n        },\n        removeOpt: removeAnimationOpt\n      });\n    }\n  }\n}\n\nfunction getEdgeShape(layoutOpt, orient, curvature, sourceLayout, targetLayout) {\n  var cpx1;\n  var cpy1;\n  var cpx2;\n  var cpy2;\n  var x1;\n  var x2;\n  var y1;\n  var y2;\n\n  if (layoutOpt === 'radial') {\n    x1 = sourceLayout.rawX;\n    y1 = sourceLayout.rawY;\n    x2 = targetLayout.rawX;\n    y2 = targetLayout.rawY;\n    var radialCoor1 = radialCoordinate(x1, y1);\n    var radialCoor2 = radialCoordinate(x1, y1 + (y2 - y1) * curvature);\n    var radialCoor3 = radialCoordinate(x2, y2 + (y1 - y2) * curvature);\n    var radialCoor4 = radialCoordinate(x2, y2);\n    return {\n      x1: radialCoor1.x || 0,\n      y1: radialCoor1.y || 0,\n      x2: radialCoor4.x || 0,\n      y2: radialCoor4.y || 0,\n      cpx1: radialCoor2.x || 0,\n      cpy1: radialCoor2.y || 0,\n      cpx2: radialCoor3.x || 0,\n      cpy2: radialCoor3.y || 0\n    };\n  } else {\n    x1 = sourceLayout.x;\n    y1 = sourceLayout.y;\n    x2 = targetLayout.x;\n    y2 = targetLayout.y;\n\n    if (orient === 'LR' || orient === 'RL') {\n      cpx1 = x1 + (x2 - x1) * curvature;\n      cpy1 = y1;\n      cpx2 = x2 + (x1 - x2) * curvature;\n      cpy2 = y2;\n    }\n\n    if (orient === 'TB' || orient === 'BT') {\n      cpx1 = x1;\n      cpy1 = y1 + (y2 - y1) * curvature;\n      cpx2 = x2;\n      cpy2 = y2 + (y1 - y2) * curvature;\n    }\n  }\n\n  return {\n    x1: x1,\n    y1: y1,\n    x2: x2,\n    y2: y2,\n    cpx1: cpx1,\n    cpy1: cpy1,\n    cpx2: cpx2,\n    cpy2: cpy2\n  };\n}\n\nexport default TreeView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { curry, each, assert, extend, map, keys } from 'zrender/lib/core/util';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\n\nfunction linkList(opt) {\n  var mainData = opt.mainData;\n  var datas = opt.datas;\n\n  if (!datas) {\n    datas = {\n      main: mainData\n    };\n    opt.datasAttr = {\n      main: 'data'\n    };\n  }\n\n  opt.datas = opt.mainData = null;\n  linkAll(mainData, datas, opt);\n  each(datas, function (data) {\n    each(mainData.TRANSFERABLE_METHODS, function (methodName) {\n      data.wrapMethod(methodName, curry(transferInjection, opt));\n    });\n  });\n  mainData.wrapMethod('cloneShallow', curry(cloneShallowInjection, opt));\n  each(mainData.CHANGABLE_METHODS, function (methodName) {\n    mainData.wrapMethod(methodName, curry(changeInjection, opt));\n  });\n  assert(datas[mainData.dataType] === mainData);\n}\n\nfunction transferInjection(opt, res) {\n  if (isMainData(this)) {\n    var datas = extend({}, inner(this).datas);\n    datas[this.dataType] = res;\n    linkAll(res, datas, opt);\n  } else {\n    linkSingle(res, this.dataType, inner(this).mainData, opt);\n  }\n\n  return res;\n}\n\nfunction changeInjection(opt, res) {\n  opt.struct && opt.struct.update();\n  return res;\n}\n\nfunction cloneShallowInjection(opt, res) {\n  each(inner(res).datas, function (data, dataType) {\n    data !== res && linkSingle(data.cloneShallow(), dataType, res, opt);\n  });\n  return res;\n}\n\nfunction getLinkedData(dataType) {\n  var mainData = inner(this).mainData;\n  return dataType == null || mainData == null ? mainData : inner(mainData).datas[dataType];\n}\n\nfunction getLinkedDataAll() {\n  var mainData = inner(this).mainData;\n  return mainData == null ? [{\n    data: mainData\n  }] : map(keys(inner(mainData).datas), function (type) {\n    return {\n      type: type,\n      data: inner(mainData).datas[type]\n    };\n  });\n}\n\nfunction isMainData(data) {\n  return inner(data).mainData === data;\n}\n\nfunction linkAll(mainData, datas, opt) {\n  inner(mainData).datas = {};\n  each(datas, function (data, dataType) {\n    linkSingle(data, dataType, mainData, opt);\n  });\n}\n\nfunction linkSingle(data, dataType, mainData, opt) {\n  inner(mainData).datas[dataType] = data;\n  inner(data).mainData = mainData;\n  data.dataType = dataType;\n\n  if (opt.struct) {\n    data[opt.structAttr] = opt.struct;\n    opt.struct[opt.datasAttr[dataType]] = data;\n  }\n\n  data.getLinkedData = getLinkedData;\n  data.getLinkedDataAll = getLinkedDataAll;\n}\n\nexport default linkList;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport linkList from './helper/linkList';\nimport List from './List';\nimport createDimensions from './helper/createDimensions';\nimport { convertOptionIdName } from '../util/model';\n\nvar TreeNode = function () {\n  function TreeNode(name, hostTree) {\n    this.depth = 0;\n    this.height = 0;\n    this.dataIndex = -1;\n    this.children = [];\n    this.viewChildren = [];\n    this.isExpand = false;\n    this.name = name || '';\n    this.hostTree = hostTree;\n  }\n\n  TreeNode.prototype.isRemoved = function () {\n    return this.dataIndex < 0;\n  };\n\n  TreeNode.prototype.eachNode = function (options, cb, context) {\n    if (typeof options === 'function') {\n      context = cb;\n      cb = options;\n      options = null;\n    }\n\n    options = options || {};\n\n    if (zrUtil.isString(options)) {\n      options = {\n        order: options\n      };\n    }\n\n    var order = options.order || 'preorder';\n    var children = this[options.attr || 'children'];\n    var suppressVisitSub;\n    order === 'preorder' && (suppressVisitSub = cb.call(context, this));\n\n    for (var i = 0; !suppressVisitSub && i < children.length; i++) {\n      children[i].eachNode(options, cb, context);\n    }\n\n    order === 'postorder' && cb.call(context, this);\n  };\n\n  TreeNode.prototype.updateDepthAndHeight = function (depth) {\n    var height = 0;\n    this.depth = depth;\n\n    for (var i = 0; i < this.children.length; i++) {\n      var child = this.children[i];\n      child.updateDepthAndHeight(depth + 1);\n\n      if (child.height > height) {\n        height = child.height;\n      }\n    }\n\n    this.height = height + 1;\n  };\n\n  TreeNode.prototype.getNodeById = function (id) {\n    if (this.getId() === id) {\n      return this;\n    }\n\n    for (var i = 0, children = this.children, len = children.length; i < len; i++) {\n      var res = children[i].getNodeById(id);\n\n      if (res) {\n        return res;\n      }\n    }\n  };\n\n  TreeNode.prototype.contains = function (node) {\n    if (node === this) {\n      return true;\n    }\n\n    for (var i = 0, children = this.children, len = children.length; i < len; i++) {\n      var res = children[i].contains(node);\n\n      if (res) {\n        return res;\n      }\n    }\n  };\n\n  TreeNode.prototype.getAncestors = function (includeSelf) {\n    var ancestors = [];\n    var node = includeSelf ? this : this.parentNode;\n\n    while (node) {\n      ancestors.push(node);\n      node = node.parentNode;\n    }\n\n    ancestors.reverse();\n    return ancestors;\n  };\n\n  TreeNode.prototype.getAncestorsIndices = function () {\n    var indices = [];\n    var currNode = this;\n\n    while (currNode) {\n      indices.push(currNode.dataIndex);\n      currNode = currNode.parentNode;\n    }\n\n    indices.reverse();\n    return indices;\n  };\n\n  TreeNode.prototype.getDescendantIndices = function () {\n    var indices = [];\n    this.eachNode(function (childNode) {\n      indices.push(childNode.dataIndex);\n    });\n    return indices;\n  };\n\n  TreeNode.prototype.getValue = function (dimension) {\n    var data = this.hostTree.data;\n    return data.get(data.getDimension(dimension || 'value'), this.dataIndex);\n  };\n\n  TreeNode.prototype.setLayout = function (layout, merge) {\n    this.dataIndex >= 0 && this.hostTree.data.setItemLayout(this.dataIndex, layout, merge);\n  };\n\n  TreeNode.prototype.getLayout = function () {\n    return this.hostTree.data.getItemLayout(this.dataIndex);\n  };\n\n  TreeNode.prototype.getModel = function (path) {\n    if (this.dataIndex < 0) {\n      return;\n    }\n\n    var hostTree = this.hostTree;\n    var itemModel = hostTree.data.getItemModel(this.dataIndex);\n    return itemModel.getModel(path);\n  };\n\n  TreeNode.prototype.getLevelModel = function () {\n    return (this.hostTree.levelModels || [])[this.depth];\n  };\n\n  TreeNode.prototype.setVisual = function (key, value) {\n    this.dataIndex >= 0 && this.hostTree.data.setItemVisual(this.dataIndex, key, value);\n  };\n\n  TreeNode.prototype.getVisual = function (key) {\n    return this.hostTree.data.getItemVisual(this.dataIndex, key);\n  };\n\n  TreeNode.prototype.getRawIndex = function () {\n    return this.hostTree.data.getRawIndex(this.dataIndex);\n  };\n\n  TreeNode.prototype.getId = function () {\n    return this.hostTree.data.getId(this.dataIndex);\n  };\n\n  TreeNode.prototype.isAncestorOf = function (node) {\n    var parent = node.parentNode;\n\n    while (parent) {\n      if (parent === this) {\n        return true;\n      }\n\n      parent = parent.parentNode;\n    }\n\n    return false;\n  };\n\n  TreeNode.prototype.isDescendantOf = function (node) {\n    return node !== this && node.isAncestorOf(this);\n  };\n\n  return TreeNode;\n}();\n\nexport { TreeNode };\n;\n\nvar Tree = function () {\n  function Tree(hostModel) {\n    this.type = 'tree';\n    this._nodes = [];\n    this.hostModel = hostModel;\n  }\n\n  Tree.prototype.eachNode = function (options, cb, context) {\n    this.root.eachNode(options, cb, context);\n  };\n\n  Tree.prototype.getNodeByDataIndex = function (dataIndex) {\n    var rawIndex = this.data.getRawIndex(dataIndex);\n    return this._nodes[rawIndex];\n  };\n\n  Tree.prototype.getNodeById = function (name) {\n    return this.root.getNodeById(name);\n  };\n\n  Tree.prototype.update = function () {\n    var data = this.data;\n    var nodes = this._nodes;\n\n    for (var i = 0, len = nodes.length; i < len; i++) {\n      nodes[i].dataIndex = -1;\n    }\n\n    for (var i = 0, len = data.count(); i < len; i++) {\n      nodes[data.getRawIndex(i)].dataIndex = i;\n    }\n  };\n\n  Tree.prototype.clearLayouts = function () {\n    this.data.clearItemLayouts();\n  };\n\n  Tree.createTree = function (dataRoot, hostModel, beforeLink) {\n    var tree = new Tree(hostModel);\n    var listData = [];\n    var dimMax = 1;\n    buildHierarchy(dataRoot);\n\n    function buildHierarchy(dataNode, parentNode) {\n      var value = dataNode.value;\n      dimMax = Math.max(dimMax, zrUtil.isArray(value) ? value.length : 1);\n      listData.push(dataNode);\n      var node = new TreeNode(convertOptionIdName(dataNode.name, ''), tree);\n      parentNode ? addChild(node, parentNode) : tree.root = node;\n\n      tree._nodes.push(node);\n\n      var children = dataNode.children;\n\n      if (children) {\n        for (var i = 0; i < children.length; i++) {\n          buildHierarchy(children[i], node);\n        }\n      }\n    }\n\n    tree.root.updateDepthAndHeight(0);\n    var dimensionsInfo = createDimensions(listData, {\n      coordDimensions: ['value'],\n      dimensionsCount: dimMax\n    });\n    var list = new List(dimensionsInfo, hostModel);\n    list.initData(listData);\n    beforeLink && beforeLink(list);\n    linkList({\n      mainData: list,\n      struct: tree,\n      structAttr: 'tree'\n    });\n    tree.update();\n    return tree;\n  };\n\n  return Tree;\n}();\n\nfunction addChild(child, node) {\n  var children = node.children;\n\n  if (child.parentNode === node) {\n    return;\n  }\n\n  children.push(child);\n  child.parentNode = node;\n}\n\nexport default Tree;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport Tree from '../../data/Tree';\nimport Model from '../../model/Model';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup';\n\nvar TreeSeriesModel = function (_super) {\n  __extends(TreeSeriesModel, _super);\n\n  function TreeSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.hasSymbolVisual = true;\n    _this.ignoreStyleOnData = true;\n    return _this;\n  }\n\n  TreeSeriesModel.prototype.getInitialData = function (option) {\n    var root = {\n      name: option.name,\n      children: option.data\n    };\n    var leaves = option.leaves || {};\n    var leavesModel = new Model(leaves, this, this.ecModel);\n    var tree = Tree.createTree(root, this, beforeLink);\n\n    function beforeLink(nodeData) {\n      nodeData.wrapMethod('getItemModel', function (model, idx) {\n        var node = tree.getNodeByDataIndex(idx);\n\n        if (!node.children.length || !node.isExpand) {\n          model.parentModel = leavesModel;\n        }\n\n        return model;\n      });\n    }\n\n    var treeDepth = 0;\n    tree.eachNode('preorder', function (node) {\n      if (node.depth > treeDepth) {\n        treeDepth = node.depth;\n      }\n    });\n    var expandAndCollapse = option.expandAndCollapse;\n    var expandTreeDepth = expandAndCollapse && option.initialTreeDepth >= 0 ? option.initialTreeDepth : treeDepth;\n    tree.root.eachNode('preorder', function (node) {\n      var item = node.hostTree.data.getRawDataItem(node.dataIndex);\n      node.isExpand = item && item.collapsed != null ? !item.collapsed : node.depth <= expandTreeDepth;\n    });\n    return tree.data;\n  };\n\n  TreeSeriesModel.prototype.getOrient = function () {\n    var orient = this.get('orient');\n\n    if (orient === 'horizontal') {\n      orient = 'LR';\n    } else if (orient === 'vertical') {\n      orient = 'TB';\n    }\n\n    return orient;\n  };\n\n  TreeSeriesModel.prototype.setZoom = function (zoom) {\n    this.option.zoom = zoom;\n  };\n\n  TreeSeriesModel.prototype.setCenter = function (center) {\n    this.option.center = center;\n  };\n\n  TreeSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var tree = this.getData().tree;\n    var realRoot = tree.root.children[0];\n    var node = tree.getNodeByDataIndex(dataIndex);\n    var value = node.getValue();\n    var name = node.name;\n\n    while (node && node !== realRoot) {\n      name = node.parentNode.name + '.' + name;\n      node = node.parentNode;\n    }\n\n    return createTooltipMarkup('nameValue', {\n      name: name,\n      value: value,\n      noValue: isNaN(value) || value == null\n    });\n  };\n\n  TreeSeriesModel.type = 'series.tree';\n  TreeSeriesModel.layoutMode = 'box';\n  TreeSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'view',\n    left: '12%',\n    top: '12%',\n    right: '12%',\n    bottom: '12%',\n    layout: 'orthogonal',\n    edgeShape: 'curve',\n    edgeForkPosition: '50%',\n    roam: false,\n    nodeScaleRatio: 0.4,\n    center: null,\n    zoom: 1,\n    orient: 'LR',\n    symbol: 'emptyCircle',\n    symbolSize: 7,\n    expandAndCollapse: true,\n    initialTreeDepth: 2,\n    lineStyle: {\n      color: '#ccc',\n      width: 1.5,\n      curveness: 0.5\n    },\n    itemStyle: {\n      color: 'lightsteelblue',\n      borderColor: '#c23531',\n      borderWidth: 1.5\n    },\n    label: {\n      show: true\n    },\n    animationEasing: 'linear',\n    animationDuration: 700,\n    animationDurationUpdate: 500\n  };\n  return TreeSeriesModel;\n}(SeriesModel);\n\nexport default TreeSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nfunction eachAfter(root, callback, separation) {\n  var nodes = [root];\n  var next = [];\n  var node;\n\n  while (node = nodes.pop()) {\n    next.push(node);\n\n    if (node.isExpand) {\n      var children = node.children;\n\n      if (children.length) {\n        for (var i = 0; i < children.length; i++) {\n          nodes.push(children[i]);\n        }\n      }\n    }\n  }\n\n  while (node = next.pop()) {\n    callback(node, separation);\n  }\n}\n\nfunction eachBefore(root, callback) {\n  var nodes = [root];\n  var node;\n\n  while (node = nodes.pop()) {\n    callback(node);\n\n    if (node.isExpand) {\n      var children = node.children;\n\n      if (children.length) {\n        for (var i = children.length - 1; i >= 0; i--) {\n          nodes.push(children[i]);\n        }\n      }\n    }\n  }\n}\n\nexport { eachAfter, eachBefore };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { eachAfter, eachBefore } from './traversalHelper';\nimport { init, firstWalk, secondWalk, separation as sep, radialCoordinate, getViewRect } from './layoutHelper';\nexport default function treeLayout(ecModel, api) {\n  ecModel.eachSeriesByType('tree', function (seriesModel) {\n    commonLayout(seriesModel, api);\n  });\n}\n\nfunction commonLayout(seriesModel, api) {\n  var layoutInfo = getViewRect(seriesModel, api);\n  seriesModel.layoutInfo = layoutInfo;\n  var layout = seriesModel.get('layout');\n  var width = 0;\n  var height = 0;\n  var separation = null;\n\n  if (layout === 'radial') {\n    width = 2 * Math.PI;\n    height = Math.min(layoutInfo.height, layoutInfo.width) / 2;\n    separation = sep(function (node1, node2) {\n      return (node1.parentNode === node2.parentNode ? 1 : 2) / node1.depth;\n    });\n  } else {\n    width = layoutInfo.width;\n    height = layoutInfo.height;\n    separation = sep();\n  }\n\n  var virtualRoot = seriesModel.getData().tree.root;\n  var realRoot = virtualRoot.children[0];\n\n  if (realRoot) {\n    init(virtualRoot);\n    eachAfter(realRoot, firstWalk, separation);\n    virtualRoot.hierNode.modifier = -realRoot.hierNode.prelim;\n    eachBefore(realRoot, secondWalk);\n    var left_1 = realRoot;\n    var right_1 = realRoot;\n    var bottom_1 = realRoot;\n    eachBefore(realRoot, function (node) {\n      var x = node.getLayout().x;\n\n      if (x < left_1.getLayout().x) {\n        left_1 = node;\n      }\n\n      if (x > right_1.getLayout().x) {\n        right_1 = node;\n      }\n\n      if (node.depth > bottom_1.depth) {\n        bottom_1 = node;\n      }\n    });\n    var delta = left_1 === right_1 ? 1 : separation(left_1, right_1) / 2;\n    var tx_1 = delta - left_1.getLayout().x;\n    var kx_1 = 0;\n    var ky_1 = 0;\n    var coorX_1 = 0;\n    var coorY_1 = 0;\n\n    if (layout === 'radial') {\n      kx_1 = width / (right_1.getLayout().x + delta + tx_1);\n      ky_1 = height / (bottom_1.depth - 1 || 1);\n      eachBefore(realRoot, function (node) {\n        coorX_1 = (node.getLayout().x + tx_1) * kx_1;\n        coorY_1 = (node.depth - 1) * ky_1;\n        var finalCoor = radialCoordinate(coorX_1, coorY_1);\n        node.setLayout({\n          x: finalCoor.x,\n          y: finalCoor.y,\n          rawX: coorX_1,\n          rawY: coorY_1\n        }, true);\n      });\n    } else {\n      var orient_1 = seriesModel.getOrient();\n\n      if (orient_1 === 'RL' || orient_1 === 'LR') {\n        ky_1 = height / (right_1.getLayout().x + delta + tx_1);\n        kx_1 = width / (bottom_1.depth - 1 || 1);\n        eachBefore(realRoot, function (node) {\n          coorY_1 = (node.getLayout().x + tx_1) * ky_1;\n          coorX_1 = orient_1 === 'LR' ? (node.depth - 1) * kx_1 : width - (node.depth - 1) * kx_1;\n          node.setLayout({\n            x: coorX_1,\n            y: coorY_1\n          }, true);\n        });\n      } else if (orient_1 === 'TB' || orient_1 === 'BT') {\n        kx_1 = width / (right_1.getLayout().x + delta + tx_1);\n        ky_1 = height / (bottom_1.depth - 1 || 1);\n        eachBefore(realRoot, function (node) {\n          coorX_1 = (node.getLayout().x + tx_1) * kx_1;\n          coorY_1 = orient_1 === 'TB' ? (node.depth - 1) * ky_1 : height - (node.depth - 1) * ky_1;\n          node.setLayout({\n            x: coorX_1,\n            y: coorY_1\n          }, true);\n        });\n      }\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { extend } from 'zrender/lib/core/util';\nexport default function treeVisual(ecModel) {\n  ecModel.eachSeriesByType('tree', function (seriesModel) {\n    var data = seriesModel.getData();\n    var tree = data.tree;\n    tree.eachNode(function (node) {\n      var model = node.getModel();\n      var style = model.getModel('itemStyle').getItemStyle();\n      var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, 'style');\n      extend(existsStyle, style);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function updateCenterAndZoom(view, payload, zoomLimit) {\n  var previousZoom = view.getZoom();\n  var center = view.getCenter();\n  var zoom = payload.zoom;\n  var point = view.dataToPoint(center);\n\n  if (payload.dx != null && payload.dy != null) {\n    point[0] -= payload.dx;\n    point[1] -= payload.dy;\n    view.setCenter(view.pointToData(point));\n  }\n\n  if (zoom != null) {\n    if (zoomLimit) {\n      var zoomMin = zoomLimit.min || 0;\n      var zoomMax = zoomLimit.max || Infinity;\n      zoom = Math.max(Math.min(previousZoom * zoom, zoomMax), zoomMin) / previousZoom;\n    }\n\n    view.scaleX *= zoom;\n    view.scaleY *= zoom;\n    var fixX = (payload.originX - view.x) * (zoom - 1);\n    var fixY = (payload.originY - view.y) * (zoom - 1);\n    view.x -= fixX;\n    view.y -= fixY;\n    view.updateTransform();\n    view.setCenter(view.pointToData(point));\n    view.setZoom(zoom * previousZoom);\n  }\n\n  return {\n    center: view.getCenter(),\n    zoom: view.getZoom()\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { updateCenterAndZoom } from '../../action/roamHelper';\nexport function installTreeAction(registers) {\n  registers.registerAction({\n    type: 'treeExpandAndCollapse',\n    event: 'treeExpandAndCollapse',\n    update: 'update'\n  }, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'tree',\n      query: payload\n    }, function (seriesModel) {\n      var dataIndex = payload.dataIndex;\n      var tree = seriesModel.getData().tree;\n      var node = tree.getNodeByDataIndex(dataIndex);\n      node.isExpand = !node.isExpand;\n    });\n  });\n  registers.registerAction({\n    type: 'treeRoam',\n    event: 'treeRoam',\n    update: 'none'\n  }, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'tree',\n      query: payload\n    }, function (seriesModel) {\n      var coordSys = seriesModel.coordinateSystem;\n      var res = updateCenterAndZoom(coordSys, payload);\n      seriesModel.setCenter && seriesModel.setCenter(res.center);\n      seriesModel.setZoom && seriesModel.setZoom(res.zoom);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport TreeView from './TreeView';\nimport TreeSeriesModel from './TreeSeries';\nimport treeLayout from './treeLayout';\nimport treeVisual from './treeVisual';\nimport { installTreeAction } from './treeAction';\nexport function install(registers) {\n  registers.registerChartView(TreeView);\n  registers.registerSeriesModel(TreeSeriesModel);\n  registers.registerLayout(treeLayout);\n  registers.registerVisual(treeVisual);\n  installTreeAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport function retrieveTargetInfo(payload, validPayloadTypes, seriesModel) {\n  if (payload && zrUtil.indexOf(validPayloadTypes, payload.type) >= 0) {\n    var root = seriesModel.getData().tree.root;\n    var targetNode = payload.targetNode;\n\n    if (typeof targetNode === 'string') {\n      targetNode = root.getNodeById(targetNode);\n    }\n\n    if (targetNode && root.contains(targetNode)) {\n      return {\n        node: targetNode\n      };\n    }\n\n    var targetNodeId = payload.targetNodeId;\n\n    if (targetNodeId != null && (targetNode = root.getNodeById(targetNodeId))) {\n      return {\n        node: targetNode\n      };\n    }\n  }\n}\nexport function getPathToRoot(node) {\n  var path = [];\n\n  while (node) {\n    node = node.parentNode;\n    node && path.push(node);\n  }\n\n  return path.reverse();\n}\nexport function aboveViewRoot(viewRoot, node) {\n  var viewPath = getPathToRoot(viewRoot);\n  return zrUtil.indexOf(viewPath, node) >= 0;\n}\nexport function wrapTreePathInfo(node, seriesModel) {\n  var treePathInfo = [];\n\n  while (node) {\n    var nodeDataIndex = node.dataIndex;\n    treePathInfo.push({\n      name: node.name,\n      dataIndex: nodeDataIndex,\n      value: seriesModel.getRawValue(nodeDataIndex)\n    });\n    node = node.parentNode;\n  }\n\n  treePathInfo.reverse();\n  return treePathInfo;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as helper from '../helper/treeHelper';\n\nvar noop = function () {};\n\nvar actionTypes = ['treemapZoomToNode', 'treemapRender', 'treemapMove'];\nexport function installTreemapAction(registers) {\n  for (var i = 0; i < actionTypes.length; i++) {\n    registers.registerAction({\n      type: actionTypes[i],\n      update: 'updateView'\n    }, noop);\n  }\n\n  registers.registerAction({\n    type: 'treemapRootToNode',\n    update: 'updateView'\n  }, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'treemap',\n      query: payload\n    }, handleRootToNode);\n\n    function handleRootToNode(model, index) {\n      var types = ['treemapZoomToNode', 'treemapRootToNode'];\n      var targetInfo = helper.retrieveTargetInfo(payload, types, model);\n\n      if (targetInfo) {\n        var originViewRoot = model.getViewRoot();\n\n        if (originViewRoot) {\n          payload.direction = helper.aboveViewRoot(originViewRoot, targetInfo.node) ? 'rollUp' : 'drillDown';\n        }\n\n        model.resetViewRoot(targetInfo.node);\n      }\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { getDecalFromPalette } from '../../model/mixin/palette';\nexport default function enableAriaDecalForTree(seriesModel) {\n  var data = seriesModel.getData();\n  var tree = data.tree;\n  var decalPaletteScope = {};\n  tree.eachNode(function (node) {\n    var current = node;\n\n    while (current && current.depth > 1) {\n      current = current.parentNode;\n    }\n\n    var decal = getDecalFromPalette(seriesModel.ecModel, current.name || current.dataIndex + '', decalPaletteScope);\n    node.setVisual('decal', decal);\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport SeriesModel from '../../model/Series';\nimport Tree from '../../data/Tree';\nimport Model from '../../model/Model';\nimport { wrapTreePathInfo } from '../helper/treeHelper';\nimport { normalizeToArray } from '../../util/model';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup';\nimport enableAriaDecalForTree from '../helper/enableAriaDecalForTree';\n\nvar TreemapSeriesModel = function (_super) {\n  __extends(TreemapSeriesModel, _super);\n\n  function TreemapSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TreemapSeriesModel.type;\n    _this.preventUsingHoverLayer = true;\n    return _this;\n  }\n\n  TreemapSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    var root = {\n      name: option.name,\n      children: option.data\n    };\n    completeTreeValue(root);\n    var levels = option.levels || [];\n    var designatedVisualItemStyle = this.designatedVisualItemStyle = {};\n    var designatedVisualModel = new Model({\n      itemStyle: designatedVisualItemStyle\n    }, this, ecModel);\n    levels = option.levels = setDefault(levels, ecModel);\n    var levelModels = zrUtil.map(levels || [], function (levelDefine) {\n      return new Model(levelDefine, designatedVisualModel, ecModel);\n    }, this);\n    var tree = Tree.createTree(root, this, beforeLink);\n\n    function beforeLink(nodeData) {\n      nodeData.wrapMethod('getItemModel', function (model, idx) {\n        var node = tree.getNodeByDataIndex(idx);\n        var levelModel = levelModels[node.depth];\n        model.parentModel = levelModel || designatedVisualModel;\n        return model;\n      });\n    }\n\n    return tree.data;\n  };\n\n  TreemapSeriesModel.prototype.optionUpdated = function () {\n    this.resetViewRoot();\n  };\n\n  TreemapSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var data = this.getData();\n    var value = this.getRawValue(dataIndex);\n    var name = data.getName(dataIndex);\n    return createTooltipMarkup('nameValue', {\n      name: name,\n      value: value\n    });\n  };\n\n  TreemapSeriesModel.prototype.getDataParams = function (dataIndex) {\n    var params = _super.prototype.getDataParams.apply(this, arguments);\n\n    var node = this.getData().tree.getNodeByDataIndex(dataIndex);\n    params.treePathInfo = wrapTreePathInfo(node, this);\n    return params;\n  };\n\n  TreemapSeriesModel.prototype.setLayoutInfo = function (layoutInfo) {\n    this.layoutInfo = this.layoutInfo || {};\n    zrUtil.extend(this.layoutInfo, layoutInfo);\n  };\n\n  TreemapSeriesModel.prototype.mapIdToIndex = function (id) {\n    var idIndexMap = this._idIndexMap;\n\n    if (!idIndexMap) {\n      idIndexMap = this._idIndexMap = zrUtil.createHashMap();\n      this._idIndexMapCount = 0;\n    }\n\n    var index = idIndexMap.get(id);\n\n    if (index == null) {\n      idIndexMap.set(id, index = this._idIndexMapCount++);\n    }\n\n    return index;\n  };\n\n  TreemapSeriesModel.prototype.getViewRoot = function () {\n    return this._viewRoot;\n  };\n\n  TreemapSeriesModel.prototype.resetViewRoot = function (viewRoot) {\n    viewRoot ? this._viewRoot = viewRoot : viewRoot = this._viewRoot;\n    var root = this.getRawData().tree.root;\n\n    if (!viewRoot || viewRoot !== root && !root.contains(viewRoot)) {\n      this._viewRoot = root;\n    }\n  };\n\n  TreemapSeriesModel.prototype.enableAriaDecal = function () {\n    enableAriaDecalForTree(this);\n  };\n\n  TreemapSeriesModel.type = 'series.treemap';\n  TreemapSeriesModel.layoutMode = 'box';\n  TreemapSeriesModel.defaultOption = {\n    progressive: 0,\n    left: 'center',\n    top: 'middle',\n    width: '80%',\n    height: '80%',\n    sort: true,\n    clipWindow: 'origin',\n    squareRatio: 0.5 * (1 + Math.sqrt(5)),\n    leafDepth: null,\n    drillDownIcon: '▶',\n    zoomToNodeRatio: 0.32 * 0.32,\n    roam: true,\n    nodeClick: 'zoomToNode',\n    animation: true,\n    animationDurationUpdate: 900,\n    animationEasing: 'quinticInOut',\n    breadcrumb: {\n      show: true,\n      height: 22,\n      left: 'center',\n      top: 'bottom',\n      emptyItemWidth: 25,\n      itemStyle: {\n        color: 'rgba(0,0,0,0.7)',\n        textStyle: {\n          color: '#fff'\n        }\n      }\n    },\n    label: {\n      show: true,\n      distance: 0,\n      padding: 5,\n      position: 'inside',\n      color: '#fff',\n      overflow: 'truncate'\n    },\n    upperLabel: {\n      show: false,\n      position: [0, '50%'],\n      height: 20,\n      overflow: 'truncate',\n      verticalAlign: 'middle'\n    },\n    itemStyle: {\n      color: null,\n      colorAlpha: null,\n      colorSaturation: null,\n      borderWidth: 0,\n      gapWidth: 0,\n      borderColor: '#fff',\n      borderColorSaturation: null\n    },\n    emphasis: {\n      upperLabel: {\n        show: true,\n        position: [0, '50%'],\n        ellipsis: true,\n        verticalAlign: 'middle'\n      }\n    },\n    visualDimension: 0,\n    visualMin: null,\n    visualMax: null,\n    color: [],\n    colorAlpha: null,\n    colorSaturation: null,\n    colorMappingBy: 'index',\n    visibleMin: 10,\n    childrenVisibleMin: null,\n    levels: []\n  };\n  return TreemapSeriesModel;\n}(SeriesModel);\n\nfunction completeTreeValue(dataNode) {\n  var sum = 0;\n  zrUtil.each(dataNode.children, function (child) {\n    completeTreeValue(child);\n    var childValue = child.value;\n    zrUtil.isArray(childValue) && (childValue = childValue[0]);\n    sum += childValue;\n  });\n  var thisValue = dataNode.value;\n\n  if (zrUtil.isArray(thisValue)) {\n    thisValue = thisValue[0];\n  }\n\n  if (thisValue == null || isNaN(thisValue)) {\n    thisValue = sum;\n  }\n\n  if (thisValue < 0) {\n    thisValue = 0;\n  }\n\n  zrUtil.isArray(dataNode.value) ? dataNode.value[0] = thisValue : dataNode.value = thisValue;\n}\n\nfunction setDefault(levels, ecModel) {\n  var globalColorList = normalizeToArray(ecModel.get('color'));\n  var globalDecalList = normalizeToArray(ecModel.get(['aria', 'decal', 'decals']));\n\n  if (!globalColorList) {\n    return;\n  }\n\n  levels = levels || [];\n  var hasColorDefine;\n  var hasDecalDefine;\n  zrUtil.each(levels, function (levelDefine) {\n    var model = new Model(levelDefine);\n    var modelColor = model.get('color');\n    var modelDecal = model.get('decal');\n\n    if (model.get(['itemStyle', 'color']) || modelColor && modelColor !== 'none') {\n      hasColorDefine = true;\n    }\n\n    if (model.get(['itemStyle', 'decal']) || modelDecal && modelDecal !== 'none') {\n      hasDecalDefine = true;\n    }\n  });\n  var level0 = levels[0] || (levels[0] = {});\n\n  if (!hasColorDefine) {\n    level0.color = globalColorList.slice();\n  }\n\n  if (!hasDecalDefine && globalDecalList) {\n    level0.decal = globalDecalList.slice();\n  }\n\n  return levels;\n}\n\nexport default TreemapSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport * as layout from '../../util/layout';\nimport { wrapTreePathInfo } from '../helper/treeHelper';\nimport { curry, defaults } from 'zrender/lib/core/util';\nimport { convertOptionIdName } from '../../util/model';\nvar TEXT_PADDING = 8;\nvar ITEM_GAP = 8;\nvar ARRAY_LENGTH = 5;\n\nvar Breadcrumb = function () {\n  function Breadcrumb(containerGroup) {\n    this.group = new graphic.Group();\n    containerGroup.add(this.group);\n  }\n\n  Breadcrumb.prototype.render = function (seriesModel, api, targetNode, onSelect) {\n    var model = seriesModel.getModel('breadcrumb');\n    var thisGroup = this.group;\n    thisGroup.removeAll();\n\n    if (!model.get('show') || !targetNode) {\n      return;\n    }\n\n    var normalStyleModel = model.getModel('itemStyle');\n    var textStyleModel = normalStyleModel.getModel('textStyle');\n    var layoutParam = {\n      pos: {\n        left: model.get('left'),\n        right: model.get('right'),\n        top: model.get('top'),\n        bottom: model.get('bottom')\n      },\n      box: {\n        width: api.getWidth(),\n        height: api.getHeight()\n      },\n      emptyItemWidth: model.get('emptyItemWidth'),\n      totalWidth: 0,\n      renderList: []\n    };\n\n    this._prepare(targetNode, layoutParam, textStyleModel);\n\n    this._renderContent(seriesModel, layoutParam, normalStyleModel, textStyleModel, onSelect);\n\n    layout.positionElement(thisGroup, layoutParam.pos, layoutParam.box);\n  };\n\n  Breadcrumb.prototype._prepare = function (targetNode, layoutParam, textStyleModel) {\n    for (var node = targetNode; node; node = node.parentNode) {\n      var text = convertOptionIdName(node.getModel().get('name'), '');\n      var textRect = textStyleModel.getTextRect(text);\n      var itemWidth = Math.max(textRect.width + TEXT_PADDING * 2, layoutParam.emptyItemWidth);\n      layoutParam.totalWidth += itemWidth + ITEM_GAP;\n      layoutParam.renderList.push({\n        node: node,\n        text: text,\n        width: itemWidth\n      });\n    }\n  };\n\n  Breadcrumb.prototype._renderContent = function (seriesModel, layoutParam, normalStyleModel, textStyleModel, onSelect) {\n    var lastX = 0;\n    var emptyItemWidth = layoutParam.emptyItemWidth;\n    var height = seriesModel.get(['breadcrumb', 'height']);\n    var availableSize = layout.getAvailableSize(layoutParam.pos, layoutParam.box);\n    var totalWidth = layoutParam.totalWidth;\n    var renderList = layoutParam.renderList;\n\n    for (var i = renderList.length - 1; i >= 0; i--) {\n      var item = renderList[i];\n      var itemNode = item.node;\n      var itemWidth = item.width;\n      var text = item.text;\n\n      if (totalWidth > availableSize.width) {\n        totalWidth -= itemWidth - emptyItemWidth;\n        itemWidth = emptyItemWidth;\n        text = null;\n      }\n\n      var el = new graphic.Polygon({\n        shape: {\n          points: makeItemPoints(lastX, 0, itemWidth, height, i === renderList.length - 1, i === 0)\n        },\n        style: defaults(normalStyleModel.getItemStyle(), {\n          lineJoin: 'bevel'\n        }),\n        textContent: new graphic.Text({\n          style: {\n            text: text,\n            fill: textStyleModel.getTextColor(),\n            font: textStyleModel.getFont()\n          }\n        }),\n        textConfig: {\n          position: 'inside'\n        },\n        z: 10,\n        onclick: curry(onSelect, itemNode)\n      });\n      el.disableLabelAnimation = true;\n      this.group.add(el);\n      packEventData(el, seriesModel, itemNode);\n      lastX += itemWidth + ITEM_GAP;\n    }\n  };\n\n  Breadcrumb.prototype.remove = function () {\n    this.group.removeAll();\n  };\n\n  return Breadcrumb;\n}();\n\nfunction makeItemPoints(x, y, itemWidth, itemHeight, head, tail) {\n  var points = [[head ? x : x - ARRAY_LENGTH, y], [x + itemWidth, y], [x + itemWidth, y + itemHeight], [head ? x : x - ARRAY_LENGTH, y + itemHeight]];\n  !tail && points.splice(2, 0, [x + itemWidth + ARRAY_LENGTH, y + itemHeight / 2]);\n  !head && points.push([x, y + itemHeight / 2]);\n  return points;\n}\n\nfunction packEventData(el, seriesModel, itemNode) {\n  getECData(el).eventData = {\n    componentType: 'series',\n    componentSubType: 'treemap',\n    componentIndex: seriesModel.componentIndex,\n    seriesIndex: seriesModel.componentIndex,\n    seriesName: seriesModel.name,\n    seriesType: 'treemap',\n    selfType: 'breadcrumb',\n    nodeData: {\n      dataIndex: itemNode && itemNode.dataIndex,\n      name: itemNode && itemNode.name\n    },\n    treePathInfo: itemNode && wrapTreePathInfo(itemNode, seriesModel)\n  };\n}\n\nexport default Breadcrumb;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar AnimationWrap = function () {\n  function AnimationWrap() {\n    this._storage = [];\n    this._elExistsMap = {};\n  }\n\n  AnimationWrap.prototype.add = function (el, target, duration, delay, easing) {\n    if (this._elExistsMap[el.id]) {\n      return false;\n    }\n\n    this._elExistsMap[el.id] = true;\n\n    this._storage.push({\n      el: el,\n      target: target,\n      duration: duration,\n      delay: delay,\n      easing: easing\n    });\n\n    return true;\n  };\n\n  AnimationWrap.prototype.finished = function (callback) {\n    this._finishedCallback = callback;\n    return this;\n  };\n\n  AnimationWrap.prototype.start = function () {\n    var _this = this;\n\n    var count = this._storage.length;\n\n    var checkTerminate = function () {\n      count--;\n\n      if (count <= 0) {\n        _this._storage.length = 0;\n        _this._elExistsMap = {};\n        _this._finishedCallback && _this._finishedCallback();\n      }\n    };\n\n    for (var i = 0, len = this._storage.length; i < len; i++) {\n      var item = this._storage[i];\n      item.el.animateTo(item.target, {\n        duration: item.duration,\n        delay: item.delay,\n        easing: item.easing,\n        setToFinal: true,\n        done: checkTerminate,\n        aborted: checkTerminate\n      });\n    }\n\n    return this;\n  };\n\n  return AnimationWrap;\n}();\n\nexport function createWrap() {\n  return new AnimationWrap();\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { bind, each, indexOf, curry, extend, retrieve, normalizeCssArray, isFunction } from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { isHighDownDispatcher, setAsHighDownDispatcher, setDefaultStateProxy, enableHoverFocus } from '../../util/states';\nimport DataDiffer from '../../data/DataDiffer';\nimport * as helper from '../helper/treeHelper';\nimport Breadcrumb from './Breadcrumb';\nimport RoamController from '../../component/helper/RoamController';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport * as animationUtil from '../../util/animation';\nimport makeStyleMapper from '../../model/mixin/makeStyleMapper';\nimport ChartView from '../../view/Chart';\nimport Displayable from 'zrender/lib/graphic/Displayable';\nimport { makeInner, convertOptionIdName } from '../../util/model';\nimport { windowOpen } from '../../util/format';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nvar Group = graphic.Group;\nvar Rect = graphic.Rect;\nvar DRAG_THRESHOLD = 3;\nvar PATH_LABEL_NOAMAL = 'label';\nvar PATH_UPPERLABEL_NORMAL = 'upperLabel';\nvar Z_BASE = 10;\nvar Z_BG = 1;\nvar Z_CONTENT = 2;\nvar getStateItemStyle = makeStyleMapper([['fill', 'color'], ['stroke', 'strokeColor'], ['lineWidth', 'strokeWidth'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor']]);\n\nvar getItemStyleNormal = function (model) {\n  var itemStyle = getStateItemStyle(model);\n  itemStyle.stroke = itemStyle.fill = itemStyle.lineWidth = null;\n  return itemStyle;\n};\n\nvar inner = makeInner();\n\nvar TreemapView = function (_super) {\n  __extends(TreemapView, _super);\n\n  function TreemapView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TreemapView.type;\n    _this._state = 'ready';\n    _this._storage = createStorage();\n    return _this;\n  }\n\n  TreemapView.prototype.render = function (seriesModel, ecModel, api, payload) {\n    var models = ecModel.findComponents({\n      mainType: 'series',\n      subType: 'treemap',\n      query: payload\n    });\n\n    if (indexOf(models, seriesModel) < 0) {\n      return;\n    }\n\n    this.seriesModel = seriesModel;\n    this.api = api;\n    this.ecModel = ecModel;\n    var types = ['treemapZoomToNode', 'treemapRootToNode'];\n    var targetInfo = helper.retrieveTargetInfo(payload, types, seriesModel);\n    var payloadType = payload && payload.type;\n    var layoutInfo = seriesModel.layoutInfo;\n    var isInit = !this._oldTree;\n    var thisStorage = this._storage;\n    var reRoot = payloadType === 'treemapRootToNode' && targetInfo && thisStorage ? {\n      rootNodeGroup: thisStorage.nodeGroup[targetInfo.node.getRawIndex()],\n      direction: payload.direction\n    } : null;\n\n    var containerGroup = this._giveContainerGroup(layoutInfo);\n\n    var renderResult = this._doRender(containerGroup, seriesModel, reRoot);\n\n    !isInit && (!payloadType || payloadType === 'treemapZoomToNode' || payloadType === 'treemapRootToNode') ? this._doAnimation(containerGroup, renderResult, seriesModel, reRoot) : renderResult.renderFinally();\n\n    this._resetController(api);\n\n    this._renderBreadcrumb(seriesModel, api, targetInfo);\n  };\n\n  TreemapView.prototype._giveContainerGroup = function (layoutInfo) {\n    var containerGroup = this._containerGroup;\n\n    if (!containerGroup) {\n      containerGroup = this._containerGroup = new Group();\n\n      this._initEvents(containerGroup);\n\n      this.group.add(containerGroup);\n    }\n\n    containerGroup.x = layoutInfo.x;\n    containerGroup.y = layoutInfo.y;\n    return containerGroup;\n  };\n\n  TreemapView.prototype._doRender = function (containerGroup, seriesModel, reRoot) {\n    var thisTree = seriesModel.getData().tree;\n    var oldTree = this._oldTree;\n    var lastsForAnimation = createStorage();\n    var thisStorage = createStorage();\n    var oldStorage = this._storage;\n    var willInvisibleEls = [];\n\n    function doRenderNode(thisNode, oldNode, parentGroup, depth) {\n      return renderNode(seriesModel, thisStorage, oldStorage, reRoot, lastsForAnimation, willInvisibleEls, thisNode, oldNode, parentGroup, depth);\n    }\n\n    dualTravel(thisTree.root ? [thisTree.root] : [], oldTree && oldTree.root ? [oldTree.root] : [], containerGroup, thisTree === oldTree || !oldTree, 0);\n    var willDeleteEls = clearStorage(oldStorage);\n    this._oldTree = thisTree;\n    this._storage = thisStorage;\n    return {\n      lastsForAnimation: lastsForAnimation,\n      willDeleteEls: willDeleteEls,\n      renderFinally: renderFinally\n    };\n\n    function dualTravel(thisViewChildren, oldViewChildren, parentGroup, sameTree, depth) {\n      if (sameTree) {\n        oldViewChildren = thisViewChildren;\n        each(thisViewChildren, function (child, index) {\n          !child.isRemoved() && processNode(index, index);\n        });\n      } else {\n        new DataDiffer(oldViewChildren, thisViewChildren, getKey, getKey).add(processNode).update(processNode).remove(curry(processNode, null)).execute();\n      }\n\n      function getKey(node) {\n        return node.getId();\n      }\n\n      function processNode(newIndex, oldIndex) {\n        var thisNode = newIndex != null ? thisViewChildren[newIndex] : null;\n        var oldNode = oldIndex != null ? oldViewChildren[oldIndex] : null;\n        var group = doRenderNode(thisNode, oldNode, parentGroup, depth);\n        group && dualTravel(thisNode && thisNode.viewChildren || [], oldNode && oldNode.viewChildren || [], group, sameTree, depth + 1);\n      }\n    }\n\n    function clearStorage(storage) {\n      var willDeleteEls = createStorage();\n      storage && each(storage, function (store, storageName) {\n        var delEls = willDeleteEls[storageName];\n        each(store, function (el) {\n          el && (delEls.push(el), inner(el).willDelete = true);\n        });\n      });\n      return willDeleteEls;\n    }\n\n    function renderFinally() {\n      each(willDeleteEls, function (els) {\n        each(els, function (el) {\n          el.parent && el.parent.remove(el);\n        });\n      });\n      each(willInvisibleEls, function (el) {\n        el.invisible = true;\n        el.dirty();\n      });\n    }\n  };\n\n  TreemapView.prototype._doAnimation = function (containerGroup, renderResult, seriesModel, reRoot) {\n    if (!seriesModel.get('animation')) {\n      return;\n    }\n\n    var durationOption = seriesModel.get('animationDurationUpdate');\n    var easingOption = seriesModel.get('animationEasing');\n    var duration = (isFunction(durationOption) ? 0 : durationOption) || 0;\n    var easing = (isFunction(easingOption) ? null : easingOption) || 'cubicOut';\n    var animationWrap = animationUtil.createWrap();\n    each(renderResult.willDeleteEls, function (store, storageName) {\n      each(store, function (el, rawIndex) {\n        if (el.invisible) {\n          return;\n        }\n\n        var parent = el.parent;\n        var target;\n        var innerStore = inner(parent);\n\n        if (reRoot && reRoot.direction === 'drillDown') {\n          target = parent === reRoot.rootNodeGroup ? {\n            shape: {\n              x: 0,\n              y: 0,\n              width: innerStore.nodeWidth,\n              height: innerStore.nodeHeight\n            },\n            style: {\n              opacity: 0\n            }\n          } : {\n            style: {\n              opacity: 0\n            }\n          };\n        } else {\n          var targetX = 0;\n          var targetY = 0;\n\n          if (!innerStore.willDelete) {\n            targetX = innerStore.nodeWidth / 2;\n            targetY = innerStore.nodeHeight / 2;\n          }\n\n          target = storageName === 'nodeGroup' ? {\n            x: targetX,\n            y: targetY,\n            style: {\n              opacity: 0\n            }\n          } : {\n            shape: {\n              x: targetX,\n              y: targetY,\n              width: 0,\n              height: 0\n            },\n            style: {\n              opacity: 0\n            }\n          };\n        }\n\n        target && animationWrap.add(el, target, duration, 0, easing);\n      });\n    });\n    each(this._storage, function (store, storageName) {\n      each(store, function (el, rawIndex) {\n        var last = renderResult.lastsForAnimation[storageName][rawIndex];\n        var target = {};\n\n        if (!last) {\n          return;\n        }\n\n        if (el instanceof graphic.Group) {\n          if (last.oldX != null) {\n            target.x = el.x;\n            target.y = el.y;\n            el.x = last.oldX;\n            el.y = last.oldY;\n          }\n        } else {\n          if (last.oldShape) {\n            target.shape = extend({}, el.shape);\n            el.setShape(last.oldShape);\n          }\n\n          if (last.fadein) {\n            el.setStyle('opacity', 0);\n            target.style = {\n              opacity: 1\n            };\n          } else if (el.style.opacity !== 1) {\n            target.style = {\n              opacity: 1\n            };\n          }\n        }\n\n        animationWrap.add(el, target, duration, 0, easing);\n      });\n    }, this);\n    this._state = 'animating';\n    animationWrap.finished(bind(function () {\n      this._state = 'ready';\n      renderResult.renderFinally();\n    }, this)).start();\n  };\n\n  TreemapView.prototype._resetController = function (api) {\n    var controller = this._controller;\n\n    if (!controller) {\n      controller = this._controller = new RoamController(api.getZr());\n      controller.enable(this.seriesModel.get('roam'));\n      controller.on('pan', bind(this._onPan, this));\n      controller.on('zoom', bind(this._onZoom, this));\n    }\n\n    var rect = new BoundingRect(0, 0, api.getWidth(), api.getHeight());\n    controller.setPointerChecker(function (e, x, y) {\n      return rect.contain(x, y);\n    });\n  };\n\n  TreemapView.prototype._clearController = function () {\n    var controller = this._controller;\n\n    if (controller) {\n      controller.dispose();\n      controller = null;\n    }\n  };\n\n  TreemapView.prototype._onPan = function (e) {\n    if (this._state !== 'animating' && (Math.abs(e.dx) > DRAG_THRESHOLD || Math.abs(e.dy) > DRAG_THRESHOLD)) {\n      var root = this.seriesModel.getData().tree.root;\n\n      if (!root) {\n        return;\n      }\n\n      var rootLayout = root.getLayout();\n\n      if (!rootLayout) {\n        return;\n      }\n\n      this.api.dispatchAction({\n        type: 'treemapMove',\n        from: this.uid,\n        seriesId: this.seriesModel.id,\n        rootRect: {\n          x: rootLayout.x + e.dx,\n          y: rootLayout.y + e.dy,\n          width: rootLayout.width,\n          height: rootLayout.height\n        }\n      });\n    }\n  };\n\n  TreemapView.prototype._onZoom = function (e) {\n    var mouseX = e.originX;\n    var mouseY = e.originY;\n\n    if (this._state !== 'animating') {\n      var root = this.seriesModel.getData().tree.root;\n\n      if (!root) {\n        return;\n      }\n\n      var rootLayout = root.getLayout();\n\n      if (!rootLayout) {\n        return;\n      }\n\n      var rect = new BoundingRect(rootLayout.x, rootLayout.y, rootLayout.width, rootLayout.height);\n      var layoutInfo = this.seriesModel.layoutInfo;\n      mouseX -= layoutInfo.x;\n      mouseY -= layoutInfo.y;\n      var m = matrix.create();\n      matrix.translate(m, m, [-mouseX, -mouseY]);\n      matrix.scale(m, m, [e.scale, e.scale]);\n      matrix.translate(m, m, [mouseX, mouseY]);\n      rect.applyTransform(m);\n      this.api.dispatchAction({\n        type: 'treemapRender',\n        from: this.uid,\n        seriesId: this.seriesModel.id,\n        rootRect: {\n          x: rect.x,\n          y: rect.y,\n          width: rect.width,\n          height: rect.height\n        }\n      });\n    }\n  };\n\n  TreemapView.prototype._initEvents = function (containerGroup) {\n    var _this = this;\n\n    containerGroup.on('click', function (e) {\n      if (_this._state !== 'ready') {\n        return;\n      }\n\n      var nodeClick = _this.seriesModel.get('nodeClick', true);\n\n      if (!nodeClick) {\n        return;\n      }\n\n      var targetInfo = _this.findTarget(e.offsetX, e.offsetY);\n\n      if (!targetInfo) {\n        return;\n      }\n\n      var node = targetInfo.node;\n\n      if (node.getLayout().isLeafRoot) {\n        _this._rootToNode(targetInfo);\n      } else {\n        if (nodeClick === 'zoomToNode') {\n          _this._zoomToNode(targetInfo);\n        } else if (nodeClick === 'link') {\n          var itemModel = node.hostTree.data.getItemModel(node.dataIndex);\n          var link = itemModel.get('link', true);\n          var linkTarget = itemModel.get('target', true) || 'blank';\n          link && windowOpen(link, linkTarget);\n        }\n      }\n    }, this);\n  };\n\n  TreemapView.prototype._renderBreadcrumb = function (seriesModel, api, targetInfo) {\n    var _this = this;\n\n    if (!targetInfo) {\n      targetInfo = seriesModel.get('leafDepth', true) != null ? {\n        node: seriesModel.getViewRoot()\n      } : this.findTarget(api.getWidth() / 2, api.getHeight() / 2);\n\n      if (!targetInfo) {\n        targetInfo = {\n          node: seriesModel.getData().tree.root\n        };\n      }\n    }\n\n    (this._breadcrumb || (this._breadcrumb = new Breadcrumb(this.group))).render(seriesModel, api, targetInfo.node, function (node) {\n      if (_this._state !== 'animating') {\n        helper.aboveViewRoot(seriesModel.getViewRoot(), node) ? _this._rootToNode({\n          node: node\n        }) : _this._zoomToNode({\n          node: node\n        });\n      }\n    });\n  };\n\n  TreemapView.prototype.remove = function () {\n    this._clearController();\n\n    this._containerGroup && this._containerGroup.removeAll();\n    this._storage = createStorage();\n    this._state = 'ready';\n    this._breadcrumb && this._breadcrumb.remove();\n  };\n\n  TreemapView.prototype.dispose = function () {\n    this._clearController();\n  };\n\n  TreemapView.prototype._zoomToNode = function (targetInfo) {\n    this.api.dispatchAction({\n      type: 'treemapZoomToNode',\n      from: this.uid,\n      seriesId: this.seriesModel.id,\n      targetNode: targetInfo.node\n    });\n  };\n\n  TreemapView.prototype._rootToNode = function (targetInfo) {\n    this.api.dispatchAction({\n      type: 'treemapRootToNode',\n      from: this.uid,\n      seriesId: this.seriesModel.id,\n      targetNode: targetInfo.node\n    });\n  };\n\n  TreemapView.prototype.findTarget = function (x, y) {\n    var targetInfo;\n    var viewRoot = this.seriesModel.getViewRoot();\n    viewRoot.eachNode({\n      attr: 'viewChildren',\n      order: 'preorder'\n    }, function (node) {\n      var bgEl = this._storage.background[node.getRawIndex()];\n\n      if (bgEl) {\n        var point = bgEl.transformCoordToLocal(x, y);\n        var shape = bgEl.shape;\n\n        if (shape.x <= point[0] && point[0] <= shape.x + shape.width && shape.y <= point[1] && point[1] <= shape.y + shape.height) {\n          targetInfo = {\n            node: node,\n            offsetX: point[0],\n            offsetY: point[1]\n          };\n        } else {\n          return false;\n        }\n      }\n    }, this);\n    return targetInfo;\n  };\n\n  TreemapView.type = 'treemap';\n  return TreemapView;\n}(ChartView);\n\nfunction createStorage() {\n  return {\n    nodeGroup: [],\n    background: [],\n    content: []\n  };\n}\n\nfunction renderNode(seriesModel, thisStorage, oldStorage, reRoot, lastsForAnimation, willInvisibleEls, thisNode, oldNode, parentGroup, depth) {\n  if (!thisNode) {\n    return;\n  }\n\n  var thisLayout = thisNode.getLayout();\n  var data = seriesModel.getData();\n  var nodeModel = thisNode.getModel();\n  data.setItemGraphicEl(thisNode.dataIndex, null);\n\n  if (!thisLayout || !thisLayout.isInView) {\n    return;\n  }\n\n  var thisWidth = thisLayout.width;\n  var thisHeight = thisLayout.height;\n  var borderWidth = thisLayout.borderWidth;\n  var thisInvisible = thisLayout.invisible;\n  var thisRawIndex = thisNode.getRawIndex();\n  var oldRawIndex = oldNode && oldNode.getRawIndex();\n  var thisViewChildren = thisNode.viewChildren;\n  var upperHeight = thisLayout.upperHeight;\n  var isParent = thisViewChildren && thisViewChildren.length;\n  var itemStyleNormalModel = nodeModel.getModel('itemStyle');\n  var itemStyleEmphasisModel = nodeModel.getModel(['emphasis', 'itemStyle']);\n  var itemStyleBlurModel = nodeModel.getModel(['blur', 'itemStyle']);\n  var itemStyleSelectModel = nodeModel.getModel(['select', 'itemStyle']);\n  var borderRadius = itemStyleNormalModel.get('borderRadius') || 0;\n  var group = giveGraphic('nodeGroup', Group);\n\n  if (!group) {\n    return;\n  }\n\n  parentGroup.add(group);\n  group.x = thisLayout.x || 0;\n  group.y = thisLayout.y || 0;\n  group.markRedraw();\n  inner(group).nodeWidth = thisWidth;\n  inner(group).nodeHeight = thisHeight;\n\n  if (thisLayout.isAboveViewRoot) {\n    return group;\n  }\n\n  var bg = giveGraphic('background', Rect, depth, Z_BG);\n  bg && renderBackground(group, bg, isParent && thisLayout.upperLabelHeight);\n  var focus = nodeModel.get(['emphasis', 'focus']);\n  var blurScope = nodeModel.get(['emphasis', 'blurScope']);\n  var focusDataIndices = focus === 'ancestor' ? thisNode.getAncestorsIndices() : focus === 'descendant' ? thisNode.getDescendantIndices() : null;\n\n  if (isParent) {\n    if (isHighDownDispatcher(group)) {\n      setAsHighDownDispatcher(group, false);\n    }\n\n    if (bg) {\n      setAsHighDownDispatcher(bg, true);\n      data.setItemGraphicEl(thisNode.dataIndex, bg);\n      enableHoverFocus(bg, focusDataIndices || focus, blurScope);\n    }\n  } else {\n    var content = giveGraphic('content', Rect, depth, Z_CONTENT);\n    content && renderContent(group, content);\n\n    if (bg && isHighDownDispatcher(bg)) {\n      setAsHighDownDispatcher(bg, false);\n    }\n\n    setAsHighDownDispatcher(group, true);\n    data.setItemGraphicEl(thisNode.dataIndex, group);\n    enableHoverFocus(group, focusDataIndices || focus, blurScope);\n  }\n\n  return group;\n\n  function renderBackground(group, bg, useUpperLabel) {\n    var ecData = getECData(bg);\n    ecData.dataIndex = thisNode.dataIndex;\n    ecData.seriesIndex = seriesModel.seriesIndex;\n    bg.setShape({\n      x: 0,\n      y: 0,\n      width: thisWidth,\n      height: thisHeight,\n      r: borderRadius\n    });\n\n    if (thisInvisible) {\n      processInvisible(bg);\n    } else {\n      bg.invisible = false;\n      var style = thisNode.getVisual('style');\n      var visualBorderColor = style.stroke;\n      var normalStyle = getItemStyleNormal(itemStyleNormalModel);\n      normalStyle.fill = visualBorderColor;\n      var emphasisStyle = getStateItemStyle(itemStyleEmphasisModel);\n      emphasisStyle.fill = itemStyleEmphasisModel.get('borderColor');\n      var blurStyle = getStateItemStyle(itemStyleBlurModel);\n      blurStyle.fill = itemStyleBlurModel.get('borderColor');\n      var selectStyle = getStateItemStyle(itemStyleSelectModel);\n      selectStyle.fill = itemStyleSelectModel.get('borderColor');\n\n      if (useUpperLabel) {\n        var upperLabelWidth = thisWidth - 2 * borderWidth;\n        prepareText(bg, visualBorderColor, upperLabelWidth, upperHeight, style.opacity, {\n          x: borderWidth,\n          y: 0,\n          width: upperLabelWidth,\n          height: upperHeight\n        });\n      } else {\n        bg.removeTextContent();\n      }\n\n      bg.setStyle(normalStyle);\n      bg.ensureState('emphasis').style = emphasisStyle;\n      bg.ensureState('blur').style = blurStyle;\n      bg.ensureState('select').style = selectStyle;\n      setDefaultStateProxy(bg);\n    }\n\n    group.add(bg);\n  }\n\n  function renderContent(group, content) {\n    var ecData = getECData(content);\n    ecData.dataIndex = thisNode.dataIndex;\n    ecData.seriesIndex = seriesModel.seriesIndex;\n    var contentWidth = Math.max(thisWidth - 2 * borderWidth, 0);\n    var contentHeight = Math.max(thisHeight - 2 * borderWidth, 0);\n    content.culling = true;\n    content.setShape({\n      x: borderWidth,\n      y: borderWidth,\n      width: contentWidth,\n      height: contentHeight,\n      r: borderRadius\n    });\n\n    if (thisInvisible) {\n      processInvisible(content);\n    } else {\n      content.invisible = false;\n      var nodeStyle = thisNode.getVisual('style');\n      var visualColor = nodeStyle.fill;\n      var normalStyle = getItemStyleNormal(itemStyleNormalModel);\n      normalStyle.fill = visualColor;\n      normalStyle.decal = nodeStyle.decal;\n      var emphasisStyle = getStateItemStyle(itemStyleEmphasisModel);\n      var blurStyle = getStateItemStyle(itemStyleBlurModel);\n      var selectStyle = getStateItemStyle(itemStyleSelectModel);\n      prepareText(content, visualColor, contentWidth, nodeStyle.opacity, contentHeight);\n      content.setStyle(normalStyle);\n      content.ensureState('emphasis').style = emphasisStyle;\n      content.ensureState('blur').style = blurStyle;\n      content.ensureState('select').style = selectStyle;\n      setDefaultStateProxy(content);\n    }\n\n    group.add(content);\n  }\n\n  function processInvisible(element) {\n    !element.invisible && willInvisibleEls.push(element);\n  }\n\n  function prepareText(rectEl, visualColor, visualOpacity, width, height, upperLabelRect) {\n    var normalLabelModel = nodeModel.getModel(upperLabelRect ? PATH_UPPERLABEL_NORMAL : PATH_LABEL_NOAMAL);\n    var text = retrieve(seriesModel.getFormattedLabel(thisNode.dataIndex, 'normal', null, null, normalLabelModel.get('formatter')), convertOptionIdName(nodeModel.get('name'), null));\n\n    if (!upperLabelRect && thisLayout.isLeafRoot) {\n      var iconChar = seriesModel.get('drillDownIcon', true);\n      text = iconChar ? iconChar + ' ' + text : text;\n    }\n\n    var isShow = normalLabelModel.getShallow('show');\n    setLabelStyle(rectEl, getLabelStatesModels(nodeModel, upperLabelRect ? PATH_UPPERLABEL_NORMAL : PATH_LABEL_NOAMAL), {\n      defaultText: isShow ? text : null,\n      inheritColor: visualColor,\n      defaultOpacity: visualOpacity,\n      labelFetcher: seriesModel,\n      labelDataIndex: thisNode.dataIndex\n    });\n    var textEl = rectEl.getTextContent();\n    var textStyle = textEl.style;\n    var textPadding = normalizeCssArray(textStyle.padding || 0);\n\n    if (upperLabelRect) {\n      rectEl.setTextConfig({\n        layoutRect: upperLabelRect\n      });\n      textEl.disableLabelLayout = true;\n    }\n\n    textEl.beforeUpdate = function () {\n      var width = Math.max((upperLabelRect ? upperLabelRect.width : rectEl.shape.width) - textPadding[1] - textPadding[3], 0);\n      var height = Math.max((upperLabelRect ? upperLabelRect.height : rectEl.shape.height) - textPadding[0] - textPadding[2], 0);\n\n      if (textStyle.width !== width || textStyle.height !== height) {\n        textEl.setStyle({\n          width: width,\n          height: height\n        });\n      }\n    };\n\n    textStyle.truncateMinChar = 2;\n    textStyle.lineOverflow = 'truncate';\n    addDrillDownIcon(textStyle, upperLabelRect, thisLayout);\n    var textEmphasisState = textEl.getState('emphasis');\n    addDrillDownIcon(textEmphasisState ? textEmphasisState.style : null, upperLabelRect, thisLayout);\n  }\n\n  function addDrillDownIcon(style, upperLabelRect, thisLayout) {\n    var text = style ? style.text : null;\n\n    if (!upperLabelRect && thisLayout.isLeafRoot && text != null) {\n      var iconChar = seriesModel.get('drillDownIcon', true);\n      style.text = iconChar ? iconChar + ' ' + text : text;\n    }\n  }\n\n  function giveGraphic(storageName, Ctor, depth, z) {\n    var element = oldRawIndex != null && oldStorage[storageName][oldRawIndex];\n    var lasts = lastsForAnimation[storageName];\n\n    if (element) {\n      oldStorage[storageName][oldRawIndex] = null;\n      prepareAnimationWhenHasOld(lasts, element);\n    } else if (!thisInvisible) {\n      element = new Ctor();\n\n      if (element instanceof Displayable) {\n        element.z = calculateZ(depth, z);\n      }\n\n      prepareAnimationWhenNoOld(lasts, element);\n    }\n\n    return thisStorage[storageName][thisRawIndex] = element;\n  }\n\n  function prepareAnimationWhenHasOld(lasts, element) {\n    var lastCfg = lasts[thisRawIndex] = {};\n\n    if (element instanceof Group) {\n      lastCfg.oldX = element.x;\n      lastCfg.oldY = element.y;\n    } else {\n      lastCfg.oldShape = extend({}, element.shape);\n    }\n  }\n\n  function prepareAnimationWhenNoOld(lasts, element) {\n    var lastCfg = lasts[thisRawIndex] = {};\n    var parentNode = thisNode.parentNode;\n    var isGroup = element instanceof graphic.Group;\n\n    if (parentNode && (!reRoot || reRoot.direction === 'drillDown')) {\n      var parentOldX = 0;\n      var parentOldY = 0;\n      var parentOldBg = lastsForAnimation.background[parentNode.getRawIndex()];\n\n      if (!reRoot && parentOldBg && parentOldBg.oldShape) {\n        parentOldX = parentOldBg.oldShape.width;\n        parentOldY = parentOldBg.oldShape.height;\n      }\n\n      if (isGroup) {\n        lastCfg.oldX = 0;\n        lastCfg.oldY = parentOldY;\n      } else {\n        lastCfg.oldShape = {\n          x: parentOldX,\n          y: parentOldY,\n          width: 0,\n          height: 0\n        };\n      }\n    }\n\n    lastCfg.fadein = !isGroup;\n  }\n}\n\nfunction calculateZ(depth, zInLevel) {\n  var zb = depth * Z_BASE + zInLevel;\n  return (zb - 1) / zb;\n}\n\nexport default TreemapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as zrColor from 'zrender/lib/tool/color';\nimport { linearMap } from '../util/number';\nvar each = zrUtil.each;\nvar isObject = zrUtil.isObject;\nvar CATEGORY_DEFAULT_VISUAL_INDEX = -1;\n\nvar VisualMapping = function () {\n  function VisualMapping(option) {\n    var mappingMethod = option.mappingMethod;\n    var visualType = option.type;\n    var thisOption = this.option = zrUtil.clone(option);\n    this.type = visualType;\n    this.mappingMethod = mappingMethod;\n    this._normalizeData = normalizers[mappingMethod];\n    var visualHandler = VisualMapping.visualHandlers[visualType];\n    this.applyVisual = visualHandler.applyVisual;\n    this.getColorMapper = visualHandler.getColorMapper;\n    this._normalizedToVisual = visualHandler._normalizedToVisual[mappingMethod];\n\n    if (mappingMethod === 'piecewise') {\n      normalizeVisualRange(thisOption);\n      preprocessForPiecewise(thisOption);\n    } else if (mappingMethod === 'category') {\n      thisOption.categories ? preprocessForSpecifiedCategory(thisOption) : normalizeVisualRange(thisOption, true);\n    } else {\n      zrUtil.assert(mappingMethod !== 'linear' || thisOption.dataExtent);\n      normalizeVisualRange(thisOption);\n    }\n  }\n\n  VisualMapping.prototype.mapValueToVisual = function (value) {\n    var normalized = this._normalizeData(value);\n\n    return this._normalizedToVisual(normalized, value);\n  };\n\n  VisualMapping.prototype.getNormalizer = function () {\n    return zrUtil.bind(this._normalizeData, this);\n  };\n\n  VisualMapping.listVisualTypes = function () {\n    return zrUtil.keys(VisualMapping.visualHandlers);\n  };\n\n  VisualMapping.isValidType = function (visualType) {\n    return VisualMapping.visualHandlers.hasOwnProperty(visualType);\n  };\n\n  VisualMapping.eachVisual = function (visual, callback, context) {\n    if (zrUtil.isObject(visual)) {\n      zrUtil.each(visual, callback, context);\n    } else {\n      callback.call(context, visual);\n    }\n  };\n\n  VisualMapping.mapVisual = function (visual, callback, context) {\n    var isPrimary;\n    var newVisual = zrUtil.isArray(visual) ? [] : zrUtil.isObject(visual) ? {} : (isPrimary = true, null);\n    VisualMapping.eachVisual(visual, function (v, key) {\n      var newVal = callback.call(context, v, key);\n      isPrimary ? newVisual = newVal : newVisual[key] = newVal;\n    });\n    return newVisual;\n  };\n\n  VisualMapping.retrieveVisuals = function (obj) {\n    var ret = {};\n    var hasVisual;\n    obj && each(VisualMapping.visualHandlers, function (h, visualType) {\n      if (obj.hasOwnProperty(visualType)) {\n        ret[visualType] = obj[visualType];\n        hasVisual = true;\n      }\n    });\n    return hasVisual ? ret : null;\n  };\n\n  VisualMapping.prepareVisualTypes = function (visualTypes) {\n    if (zrUtil.isArray(visualTypes)) {\n      visualTypes = visualTypes.slice();\n    } else if (isObject(visualTypes)) {\n      var types_1 = [];\n      each(visualTypes, function (item, type) {\n        types_1.push(type);\n      });\n      visualTypes = types_1;\n    } else {\n      return [];\n    }\n\n    visualTypes.sort(function (type1, type2) {\n      return type2 === 'color' && type1 !== 'color' && type1.indexOf('color') === 0 ? 1 : -1;\n    });\n    return visualTypes;\n  };\n\n  VisualMapping.dependsOn = function (visualType1, visualType2) {\n    return visualType2 === 'color' ? !!(visualType1 && visualType1.indexOf(visualType2) === 0) : visualType1 === visualType2;\n  };\n\n  VisualMapping.findPieceIndex = function (value, pieceList, findClosestWhenOutside) {\n    var possibleI;\n    var abs = Infinity;\n\n    for (var i = 0, len = pieceList.length; i < len; i++) {\n      var pieceValue = pieceList[i].value;\n\n      if (pieceValue != null) {\n        if (pieceValue === value || typeof pieceValue === 'string' && pieceValue === value + '') {\n          return i;\n        }\n\n        findClosestWhenOutside && updatePossible(pieceValue, i);\n      }\n    }\n\n    for (var i = 0, len = pieceList.length; i < len; i++) {\n      var piece = pieceList[i];\n      var interval = piece.interval;\n      var close_1 = piece.close;\n\n      if (interval) {\n        if (interval[0] === -Infinity) {\n          if (littleThan(close_1[1], value, interval[1])) {\n            return i;\n          }\n        } else if (interval[1] === Infinity) {\n          if (littleThan(close_1[0], interval[0], value)) {\n            return i;\n          }\n        } else if (littleThan(close_1[0], interval[0], value) && littleThan(close_1[1], value, interval[1])) {\n          return i;\n        }\n\n        findClosestWhenOutside && updatePossible(interval[0], i);\n        findClosestWhenOutside && updatePossible(interval[1], i);\n      }\n    }\n\n    if (findClosestWhenOutside) {\n      return value === Infinity ? pieceList.length - 1 : value === -Infinity ? 0 : possibleI;\n    }\n\n    function updatePossible(val, index) {\n      var newAbs = Math.abs(val - value);\n\n      if (newAbs < abs) {\n        abs = newAbs;\n        possibleI = index;\n      }\n    }\n  };\n\n  VisualMapping.visualHandlers = {\n    color: {\n      applyVisual: makeApplyVisual('color'),\n      getColorMapper: function () {\n        var thisOption = this.option;\n        return zrUtil.bind(thisOption.mappingMethod === 'category' ? function (value, isNormalized) {\n          !isNormalized && (value = this._normalizeData(value));\n          return doMapCategory.call(this, value);\n        } : function (value, isNormalized, out) {\n          var returnRGBArray = !!out;\n          !isNormalized && (value = this._normalizeData(value));\n          out = zrColor.fastLerp(value, thisOption.parsedVisual, out);\n          return returnRGBArray ? out : zrColor.stringify(out, 'rgba');\n        }, this);\n      },\n      _normalizedToVisual: {\n        linear: function (normalized) {\n          return zrColor.stringify(zrColor.fastLerp(normalized, this.option.parsedVisual), 'rgba');\n        },\n        category: doMapCategory,\n        piecewise: function (normalized, value) {\n          var result = getSpecifiedVisual.call(this, value);\n\n          if (result == null) {\n            result = zrColor.stringify(zrColor.fastLerp(normalized, this.option.parsedVisual), 'rgba');\n          }\n\n          return result;\n        },\n        fixed: doMapFixed\n      }\n    },\n    colorHue: makePartialColorVisualHandler(function (color, value) {\n      return zrColor.modifyHSL(color, value);\n    }),\n    colorSaturation: makePartialColorVisualHandler(function (color, value) {\n      return zrColor.modifyHSL(color, null, value);\n    }),\n    colorLightness: makePartialColorVisualHandler(function (color, value) {\n      return zrColor.modifyHSL(color, null, null, value);\n    }),\n    colorAlpha: makePartialColorVisualHandler(function (color, value) {\n      return zrColor.modifyAlpha(color, value);\n    }),\n    decal: {\n      applyVisual: makeApplyVisual('decal'),\n      _normalizedToVisual: {\n        linear: null,\n        category: doMapCategory,\n        piecewise: null,\n        fixed: null\n      }\n    },\n    opacity: {\n      applyVisual: makeApplyVisual('opacity'),\n      _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\n    },\n    liftZ: {\n      applyVisual: makeApplyVisual('liftZ'),\n      _normalizedToVisual: {\n        linear: doMapFixed,\n        category: doMapFixed,\n        piecewise: doMapFixed,\n        fixed: doMapFixed\n      }\n    },\n    symbol: {\n      applyVisual: function (value, getter, setter) {\n        var symbolCfg = this.mapValueToVisual(value);\n        setter('symbol', symbolCfg);\n      },\n      _normalizedToVisual: {\n        linear: doMapToArray,\n        category: doMapCategory,\n        piecewise: function (normalized, value) {\n          var result = getSpecifiedVisual.call(this, value);\n\n          if (result == null) {\n            result = doMapToArray.call(this, normalized);\n          }\n\n          return result;\n        },\n        fixed: doMapFixed\n      }\n    },\n    symbolSize: {\n      applyVisual: makeApplyVisual('symbolSize'),\n      _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\n    }\n  };\n  return VisualMapping;\n}();\n\nfunction preprocessForPiecewise(thisOption) {\n  var pieceList = thisOption.pieceList;\n  thisOption.hasSpecialVisual = false;\n  zrUtil.each(pieceList, function (piece, index) {\n    piece.originIndex = index;\n\n    if (piece.visual != null) {\n      thisOption.hasSpecialVisual = true;\n    }\n  });\n}\n\nfunction preprocessForSpecifiedCategory(thisOption) {\n  var categories = thisOption.categories;\n  var categoryMap = thisOption.categoryMap = {};\n  var visual = thisOption.visual;\n  each(categories, function (cate, index) {\n    categoryMap[cate] = index;\n  });\n\n  if (!zrUtil.isArray(visual)) {\n    var visualArr_1 = [];\n\n    if (zrUtil.isObject(visual)) {\n      each(visual, function (v, cate) {\n        var index = categoryMap[cate];\n        visualArr_1[index != null ? index : CATEGORY_DEFAULT_VISUAL_INDEX] = v;\n      });\n    } else {\n      visualArr_1[CATEGORY_DEFAULT_VISUAL_INDEX] = visual;\n    }\n\n    visual = setVisualToOption(thisOption, visualArr_1);\n  }\n\n  for (var i = categories.length - 1; i >= 0; i--) {\n    if (visual[i] == null) {\n      delete categoryMap[categories[i]];\n      categories.pop();\n    }\n  }\n}\n\nfunction normalizeVisualRange(thisOption, isCategory) {\n  var visual = thisOption.visual;\n  var visualArr = [];\n\n  if (zrUtil.isObject(visual)) {\n    each(visual, function (v) {\n      visualArr.push(v);\n    });\n  } else if (visual != null) {\n    visualArr.push(visual);\n  }\n\n  var doNotNeedPair = {\n    color: 1,\n    symbol: 1\n  };\n\n  if (!isCategory && visualArr.length === 1 && !doNotNeedPair.hasOwnProperty(thisOption.type)) {\n    visualArr[1] = visualArr[0];\n  }\n\n  setVisualToOption(thisOption, visualArr);\n}\n\nfunction makePartialColorVisualHandler(applyValue) {\n  return {\n    applyVisual: function (value, getter, setter) {\n      var colorChannel = this.mapValueToVisual(value);\n      setter('color', applyValue(getter('color'), colorChannel));\n    },\n    _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\n  };\n}\n\nfunction doMapToArray(normalized) {\n  var visual = this.option.visual;\n  return visual[Math.round(linearMap(normalized, [0, 1], [0, visual.length - 1], true))] || {};\n}\n\nfunction makeApplyVisual(visualType) {\n  return function (value, getter, setter) {\n    setter(visualType, this.mapValueToVisual(value));\n  };\n}\n\nfunction doMapCategory(normalized) {\n  var visual = this.option.visual;\n  return visual[this.option.loop && normalized !== CATEGORY_DEFAULT_VISUAL_INDEX ? normalized % visual.length : normalized];\n}\n\nfunction doMapFixed() {\n  return this.option.visual[0];\n}\n\nfunction createNormalizedToNumericVisual(sourceExtent) {\n  return {\n    linear: function (normalized) {\n      return linearMap(normalized, sourceExtent, this.option.visual, true);\n    },\n    category: doMapCategory,\n    piecewise: function (normalized, value) {\n      var result = getSpecifiedVisual.call(this, value);\n\n      if (result == null) {\n        result = linearMap(normalized, sourceExtent, this.option.visual, true);\n      }\n\n      return result;\n    },\n    fixed: doMapFixed\n  };\n}\n\nfunction getSpecifiedVisual(value) {\n  var thisOption = this.option;\n  var pieceList = thisOption.pieceList;\n\n  if (thisOption.hasSpecialVisual) {\n    var pieceIndex = VisualMapping.findPieceIndex(value, pieceList);\n    var piece = pieceList[pieceIndex];\n\n    if (piece && piece.visual) {\n      return piece.visual[this.type];\n    }\n  }\n}\n\nfunction setVisualToOption(thisOption, visualArr) {\n  thisOption.visual = visualArr;\n\n  if (thisOption.type === 'color') {\n    thisOption.parsedVisual = zrUtil.map(visualArr, function (item) {\n      return zrColor.parse(item);\n    });\n  }\n\n  return visualArr;\n}\n\nvar normalizers = {\n  linear: function (value) {\n    return linearMap(value, this.option.dataExtent, [0, 1], true);\n  },\n  piecewise: function (value) {\n    var pieceList = this.option.pieceList;\n    var pieceIndex = VisualMapping.findPieceIndex(value, pieceList, true);\n\n    if (pieceIndex != null) {\n      return linearMap(pieceIndex, [0, pieceList.length - 1], [0, 1], true);\n    }\n  },\n  category: function (value) {\n    var index = this.option.categories ? this.option.categoryMap[value] : value;\n    return index == null ? CATEGORY_DEFAULT_VISUAL_INDEX : index;\n  },\n  fixed: zrUtil.noop\n};\n\nfunction littleThan(close, a, b) {\n  return close ? a <= b : a < b;\n}\n\nexport default VisualMapping;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport VisualMapping from '../../visual/VisualMapping';\nimport { each, extend, isArray } from 'zrender/lib/core/util';\nimport { modifyHSL, modifyAlpha } from 'zrender/lib/tool/color';\nimport { makeInner } from '../../util/model';\nvar ITEM_STYLE_NORMAL = 'itemStyle';\nvar inner = makeInner();\nexport default {\n  seriesType: 'treemap',\n  reset: function (seriesModel) {\n    var tree = seriesModel.getData().tree;\n    var root = tree.root;\n\n    if (root.isRemoved()) {\n      return;\n    }\n\n    travelTree(root, {}, seriesModel.getViewRoot().getAncestors(), seriesModel);\n  }\n};\n\nfunction travelTree(node, designatedVisual, viewRootAncestors, seriesModel) {\n  var nodeModel = node.getModel();\n  var nodeLayout = node.getLayout();\n  var data = node.hostTree.data;\n\n  if (!nodeLayout || nodeLayout.invisible || !nodeLayout.isInView) {\n    return;\n  }\n\n  var nodeItemStyleModel = nodeModel.getModel(ITEM_STYLE_NORMAL);\n  var visuals = buildVisuals(nodeItemStyleModel, designatedVisual, seriesModel);\n  var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, 'style');\n  var borderColor = nodeItemStyleModel.get('borderColor');\n  var borderColorSaturation = nodeItemStyleModel.get('borderColorSaturation');\n  var thisNodeColor;\n\n  if (borderColorSaturation != null) {\n    thisNodeColor = calculateColor(visuals);\n    borderColor = calculateBorderColor(borderColorSaturation, thisNodeColor);\n  }\n\n  existsStyle.stroke = borderColor;\n  var viewChildren = node.viewChildren;\n\n  if (!viewChildren || !viewChildren.length) {\n    thisNodeColor = calculateColor(visuals);\n    existsStyle.fill = thisNodeColor;\n  } else {\n    var mapping_1 = buildVisualMapping(node, nodeModel, nodeLayout, nodeItemStyleModel, visuals, viewChildren);\n    each(viewChildren, function (child, index) {\n      if (child.depth >= viewRootAncestors.length || child === viewRootAncestors[child.depth]) {\n        var childVisual = mapVisual(nodeModel, visuals, child, index, mapping_1, seriesModel);\n        travelTree(child, childVisual, viewRootAncestors, seriesModel);\n      }\n    });\n  }\n}\n\nfunction buildVisuals(nodeItemStyleModel, designatedVisual, seriesModel) {\n  var visuals = extend({}, designatedVisual);\n  var designatedVisualItemStyle = seriesModel.designatedVisualItemStyle;\n  each(['color', 'colorAlpha', 'colorSaturation'], function (visualName) {\n    designatedVisualItemStyle[visualName] = designatedVisual[visualName];\n    var val = nodeItemStyleModel.get(visualName);\n    designatedVisualItemStyle[visualName] = null;\n    val != null && (visuals[visualName] = val);\n  });\n  return visuals;\n}\n\nfunction calculateColor(visuals) {\n  var color = getValueVisualDefine(visuals, 'color');\n\n  if (color) {\n    var colorAlpha = getValueVisualDefine(visuals, 'colorAlpha');\n    var colorSaturation = getValueVisualDefine(visuals, 'colorSaturation');\n\n    if (colorSaturation) {\n      color = modifyHSL(color, null, null, colorSaturation);\n    }\n\n    if (colorAlpha) {\n      color = modifyAlpha(color, colorAlpha);\n    }\n\n    return color;\n  }\n}\n\nfunction calculateBorderColor(borderColorSaturation, thisNodeColor) {\n  return thisNodeColor != null ? modifyHSL(thisNodeColor, null, null, borderColorSaturation) : null;\n}\n\nfunction getValueVisualDefine(visuals, name) {\n  var value = visuals[name];\n\n  if (value != null && value !== 'none') {\n    return value;\n  }\n}\n\nfunction buildVisualMapping(node, nodeModel, nodeLayout, nodeItemStyleModel, visuals, viewChildren) {\n  if (!viewChildren || !viewChildren.length) {\n    return;\n  }\n\n  var rangeVisual = getRangeVisual(nodeModel, 'color') || visuals.color != null && visuals.color !== 'none' && (getRangeVisual(nodeModel, 'colorAlpha') || getRangeVisual(nodeModel, 'colorSaturation'));\n\n  if (!rangeVisual) {\n    return;\n  }\n\n  var visualMin = nodeModel.get('visualMin');\n  var visualMax = nodeModel.get('visualMax');\n  var dataExtent = nodeLayout.dataExtent.slice();\n  visualMin != null && visualMin < dataExtent[0] && (dataExtent[0] = visualMin);\n  visualMax != null && visualMax > dataExtent[1] && (dataExtent[1] = visualMax);\n  var colorMappingBy = nodeModel.get('colorMappingBy');\n  var opt = {\n    type: rangeVisual.name,\n    dataExtent: dataExtent,\n    visual: rangeVisual.range\n  };\n\n  if (opt.type === 'color' && (colorMappingBy === 'index' || colorMappingBy === 'id')) {\n    opt.mappingMethod = 'category';\n    opt.loop = true;\n  } else {\n    opt.mappingMethod = 'linear';\n  }\n\n  var mapping = new VisualMapping(opt);\n  inner(mapping).drColorMappingBy = colorMappingBy;\n  return mapping;\n}\n\nfunction getRangeVisual(nodeModel, name) {\n  var range = nodeModel.get(name);\n  return isArray(range) && range.length ? {\n    name: name,\n    range: range\n  } : null;\n}\n\nfunction mapVisual(nodeModel, visuals, child, index, mapping, seriesModel) {\n  var childVisuals = extend({}, visuals);\n\n  if (mapping) {\n    var mappingType = mapping.type;\n    var colorMappingBy = mappingType === 'color' && inner(mapping).drColorMappingBy;\n    var value = colorMappingBy === 'index' ? index : colorMappingBy === 'id' ? seriesModel.mapIdToIndex(child.getId()) : child.getValue(nodeModel.get('visualDimension'));\n    childVisuals[mappingType] = mapping.mapValueToVisual(value);\n  }\n\n  return childVisuals;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { parsePercent, MAX_SAFE_INTEGER } from '../../util/number';\nimport * as layout from '../../util/layout';\nimport * as helper from '../helper/treeHelper';\nvar mathMax = Math.max;\nvar mathMin = Math.min;\nvar retrieveValue = zrUtil.retrieve;\nvar each = zrUtil.each;\nvar PATH_BORDER_WIDTH = ['itemStyle', 'borderWidth'];\nvar PATH_GAP_WIDTH = ['itemStyle', 'gapWidth'];\nvar PATH_UPPER_LABEL_SHOW = ['upperLabel', 'show'];\nvar PATH_UPPER_LABEL_HEIGHT = ['upperLabel', 'height'];\n;\nexport default {\n  seriesType: 'treemap',\n  reset: function (seriesModel, ecModel, api, payload) {\n    var ecWidth = api.getWidth();\n    var ecHeight = api.getHeight();\n    var seriesOption = seriesModel.option;\n    var layoutInfo = layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n    var size = seriesOption.size || [];\n    var containerWidth = parsePercent(retrieveValue(layoutInfo.width, size[0]), ecWidth);\n    var containerHeight = parsePercent(retrieveValue(layoutInfo.height, size[1]), ecHeight);\n    var payloadType = payload && payload.type;\n    var types = ['treemapZoomToNode', 'treemapRootToNode'];\n    var targetInfo = helper.retrieveTargetInfo(payload, types, seriesModel);\n    var rootRect = payloadType === 'treemapRender' || payloadType === 'treemapMove' ? payload.rootRect : null;\n    var viewRoot = seriesModel.getViewRoot();\n    var viewAbovePath = helper.getPathToRoot(viewRoot);\n\n    if (payloadType !== 'treemapMove') {\n      var rootSize = payloadType === 'treemapZoomToNode' ? estimateRootSize(seriesModel, targetInfo, viewRoot, containerWidth, containerHeight) : rootRect ? [rootRect.width, rootRect.height] : [containerWidth, containerHeight];\n      var sort_1 = seriesOption.sort;\n\n      if (sort_1 && sort_1 !== 'asc' && sort_1 !== 'desc') {\n        sort_1 = 'desc';\n      }\n\n      var options = {\n        squareRatio: seriesOption.squareRatio,\n        sort: sort_1,\n        leafDepth: seriesOption.leafDepth\n      };\n      viewRoot.hostTree.clearLayouts();\n      var viewRootLayout_1 = {\n        x: 0,\n        y: 0,\n        width: rootSize[0],\n        height: rootSize[1],\n        area: rootSize[0] * rootSize[1]\n      };\n      viewRoot.setLayout(viewRootLayout_1);\n      squarify(viewRoot, options, false, 0);\n      viewRootLayout_1 = viewRoot.getLayout();\n      each(viewAbovePath, function (node, index) {\n        var childValue = (viewAbovePath[index + 1] || viewRoot).getValue();\n        node.setLayout(zrUtil.extend({\n          dataExtent: [childValue, childValue],\n          borderWidth: 0,\n          upperHeight: 0\n        }, viewRootLayout_1));\n      });\n    }\n\n    var treeRoot = seriesModel.getData().tree.root;\n    treeRoot.setLayout(calculateRootPosition(layoutInfo, rootRect, targetInfo), true);\n    seriesModel.setLayoutInfo(layoutInfo);\n    prunning(treeRoot, new BoundingRect(-layoutInfo.x, -layoutInfo.y, ecWidth, ecHeight), viewAbovePath, viewRoot, 0);\n  }\n};\n\nfunction squarify(node, options, hideChildren, depth) {\n  var width;\n  var height;\n\n  if (node.isRemoved()) {\n    return;\n  }\n\n  var thisLayout = node.getLayout();\n  width = thisLayout.width;\n  height = thisLayout.height;\n  var nodeModel = node.getModel();\n  var borderWidth = nodeModel.get(PATH_BORDER_WIDTH);\n  var halfGapWidth = nodeModel.get(PATH_GAP_WIDTH) / 2;\n  var upperLabelHeight = getUpperLabelHeight(nodeModel);\n  var upperHeight = Math.max(borderWidth, upperLabelHeight);\n  var layoutOffset = borderWidth - halfGapWidth;\n  var layoutOffsetUpper = upperHeight - halfGapWidth;\n  node.setLayout({\n    borderWidth: borderWidth,\n    upperHeight: upperHeight,\n    upperLabelHeight: upperLabelHeight\n  }, true);\n  width = mathMax(width - 2 * layoutOffset, 0);\n  height = mathMax(height - layoutOffset - layoutOffsetUpper, 0);\n  var totalArea = width * height;\n  var viewChildren = initChildren(node, nodeModel, totalArea, options, hideChildren, depth);\n\n  if (!viewChildren.length) {\n    return;\n  }\n\n  var rect = {\n    x: layoutOffset,\n    y: layoutOffsetUpper,\n    width: width,\n    height: height\n  };\n  var rowFixedLength = mathMin(width, height);\n  var best = Infinity;\n  var row = [];\n  row.area = 0;\n\n  for (var i = 0, len = viewChildren.length; i < len;) {\n    var child = viewChildren[i];\n    row.push(child);\n    row.area += child.getLayout().area;\n    var score = worst(row, rowFixedLength, options.squareRatio);\n\n    if (score <= best) {\n      i++;\n      best = score;\n    } else {\n      row.area -= row.pop().getLayout().area;\n      position(row, rowFixedLength, rect, halfGapWidth, false);\n      rowFixedLength = mathMin(rect.width, rect.height);\n      row.length = row.area = 0;\n      best = Infinity;\n    }\n  }\n\n  if (row.length) {\n    position(row, rowFixedLength, rect, halfGapWidth, true);\n  }\n\n  if (!hideChildren) {\n    var childrenVisibleMin = nodeModel.get('childrenVisibleMin');\n\n    if (childrenVisibleMin != null && totalArea < childrenVisibleMin) {\n      hideChildren = true;\n    }\n  }\n\n  for (var i = 0, len = viewChildren.length; i < len; i++) {\n    squarify(viewChildren[i], options, hideChildren, depth + 1);\n  }\n}\n\nfunction initChildren(node, nodeModel, totalArea, options, hideChildren, depth) {\n  var viewChildren = node.children || [];\n  var orderBy = options.sort;\n  orderBy !== 'asc' && orderBy !== 'desc' && (orderBy = null);\n  var overLeafDepth = options.leafDepth != null && options.leafDepth <= depth;\n\n  if (hideChildren && !overLeafDepth) {\n    return node.viewChildren = [];\n  }\n\n  viewChildren = zrUtil.filter(viewChildren, function (child) {\n    return !child.isRemoved();\n  });\n  sort(viewChildren, orderBy);\n  var info = statistic(nodeModel, viewChildren, orderBy);\n\n  if (info.sum === 0) {\n    return node.viewChildren = [];\n  }\n\n  info.sum = filterByThreshold(nodeModel, totalArea, info.sum, orderBy, viewChildren);\n\n  if (info.sum === 0) {\n    return node.viewChildren = [];\n  }\n\n  for (var i = 0, len = viewChildren.length; i < len; i++) {\n    var area = viewChildren[i].getValue() / info.sum * totalArea;\n    viewChildren[i].setLayout({\n      area: area\n    });\n  }\n\n  if (overLeafDepth) {\n    viewChildren.length && node.setLayout({\n      isLeafRoot: true\n    }, true);\n    viewChildren.length = 0;\n  }\n\n  node.viewChildren = viewChildren;\n  node.setLayout({\n    dataExtent: info.dataExtent\n  }, true);\n  return viewChildren;\n}\n\nfunction filterByThreshold(nodeModel, totalArea, sum, orderBy, orderedChildren) {\n  if (!orderBy) {\n    return sum;\n  }\n\n  var visibleMin = nodeModel.get('visibleMin');\n  var len = orderedChildren.length;\n  var deletePoint = len;\n\n  for (var i = len - 1; i >= 0; i--) {\n    var value = orderedChildren[orderBy === 'asc' ? len - i - 1 : i].getValue();\n\n    if (value / sum * totalArea < visibleMin) {\n      deletePoint = i;\n      sum -= value;\n    }\n  }\n\n  orderBy === 'asc' ? orderedChildren.splice(0, len - deletePoint) : orderedChildren.splice(deletePoint, len - deletePoint);\n  return sum;\n}\n\nfunction sort(viewChildren, orderBy) {\n  if (orderBy) {\n    viewChildren.sort(function (a, b) {\n      var diff = orderBy === 'asc' ? a.getValue() - b.getValue() : b.getValue() - a.getValue();\n      return diff === 0 ? orderBy === 'asc' ? a.dataIndex - b.dataIndex : b.dataIndex - a.dataIndex : diff;\n    });\n  }\n\n  return viewChildren;\n}\n\nfunction statistic(nodeModel, children, orderBy) {\n  var sum = 0;\n\n  for (var i = 0, len = children.length; i < len; i++) {\n    sum += children[i].getValue();\n  }\n\n  var dimension = nodeModel.get('visualDimension');\n  var dataExtent;\n\n  if (!children || !children.length) {\n    dataExtent = [NaN, NaN];\n  } else if (dimension === 'value' && orderBy) {\n    dataExtent = [children[children.length - 1].getValue(), children[0].getValue()];\n    orderBy === 'asc' && dataExtent.reverse();\n  } else {\n    dataExtent = [Infinity, -Infinity];\n    each(children, function (child) {\n      var value = child.getValue(dimension);\n      value < dataExtent[0] && (dataExtent[0] = value);\n      value > dataExtent[1] && (dataExtent[1] = value);\n    });\n  }\n\n  return {\n    sum: sum,\n    dataExtent: dataExtent\n  };\n}\n\nfunction worst(row, rowFixedLength, ratio) {\n  var areaMax = 0;\n  var areaMin = Infinity;\n\n  for (var i = 0, area = void 0, len = row.length; i < len; i++) {\n    area = row[i].getLayout().area;\n\n    if (area) {\n      area < areaMin && (areaMin = area);\n      area > areaMax && (areaMax = area);\n    }\n  }\n\n  var squareArea = row.area * row.area;\n  var f = rowFixedLength * rowFixedLength * ratio;\n  return squareArea ? mathMax(f * areaMax / squareArea, squareArea / (f * areaMin)) : Infinity;\n}\n\nfunction position(row, rowFixedLength, rect, halfGapWidth, flush) {\n  var idx0WhenH = rowFixedLength === rect.width ? 0 : 1;\n  var idx1WhenH = 1 - idx0WhenH;\n  var xy = ['x', 'y'];\n  var wh = ['width', 'height'];\n  var last = rect[xy[idx0WhenH]];\n  var rowOtherLength = rowFixedLength ? row.area / rowFixedLength : 0;\n\n  if (flush || rowOtherLength > rect[wh[idx1WhenH]]) {\n    rowOtherLength = rect[wh[idx1WhenH]];\n  }\n\n  for (var i = 0, rowLen = row.length; i < rowLen; i++) {\n    var node = row[i];\n    var nodeLayout = {};\n    var step = rowOtherLength ? node.getLayout().area / rowOtherLength : 0;\n    var wh1 = nodeLayout[wh[idx1WhenH]] = mathMax(rowOtherLength - 2 * halfGapWidth, 0);\n    var remain = rect[xy[idx0WhenH]] + rect[wh[idx0WhenH]] - last;\n    var modWH = i === rowLen - 1 || remain < step ? remain : step;\n    var wh0 = nodeLayout[wh[idx0WhenH]] = mathMax(modWH - 2 * halfGapWidth, 0);\n    nodeLayout[xy[idx1WhenH]] = rect[xy[idx1WhenH]] + mathMin(halfGapWidth, wh1 / 2);\n    nodeLayout[xy[idx0WhenH]] = last + mathMin(halfGapWidth, wh0 / 2);\n    last += modWH;\n    node.setLayout(nodeLayout, true);\n  }\n\n  rect[xy[idx1WhenH]] += rowOtherLength;\n  rect[wh[idx1WhenH]] -= rowOtherLength;\n}\n\nfunction estimateRootSize(seriesModel, targetInfo, viewRoot, containerWidth, containerHeight) {\n  var currNode = (targetInfo || {}).node;\n  var defaultSize = [containerWidth, containerHeight];\n\n  if (!currNode || currNode === viewRoot) {\n    return defaultSize;\n  }\n\n  var parent;\n  var viewArea = containerWidth * containerHeight;\n  var area = viewArea * seriesModel.option.zoomToNodeRatio;\n\n  while (parent = currNode.parentNode) {\n    var sum = 0;\n    var siblings = parent.children;\n\n    for (var i = 0, len = siblings.length; i < len; i++) {\n      sum += siblings[i].getValue();\n    }\n\n    var currNodeValue = currNode.getValue();\n\n    if (currNodeValue === 0) {\n      return defaultSize;\n    }\n\n    area *= sum / currNodeValue;\n    var parentModel = parent.getModel();\n    var borderWidth = parentModel.get(PATH_BORDER_WIDTH);\n    var upperHeight = Math.max(borderWidth, getUpperLabelHeight(parentModel));\n    area += 4 * borderWidth * borderWidth + (3 * borderWidth + upperHeight) * Math.pow(area, 0.5);\n    area > MAX_SAFE_INTEGER && (area = MAX_SAFE_INTEGER);\n    currNode = parent;\n  }\n\n  area < viewArea && (area = viewArea);\n  var scale = Math.pow(area / viewArea, 0.5);\n  return [containerWidth * scale, containerHeight * scale];\n}\n\nfunction calculateRootPosition(layoutInfo, rootRect, targetInfo) {\n  if (rootRect) {\n    return {\n      x: rootRect.x,\n      y: rootRect.y\n    };\n  }\n\n  var defaultPosition = {\n    x: 0,\n    y: 0\n  };\n\n  if (!targetInfo) {\n    return defaultPosition;\n  }\n\n  var targetNode = targetInfo.node;\n  var layout = targetNode.getLayout();\n\n  if (!layout) {\n    return defaultPosition;\n  }\n\n  var targetCenter = [layout.width / 2, layout.height / 2];\n  var node = targetNode;\n\n  while (node) {\n    var nodeLayout = node.getLayout();\n    targetCenter[0] += nodeLayout.x;\n    targetCenter[1] += nodeLayout.y;\n    node = node.parentNode;\n  }\n\n  return {\n    x: layoutInfo.width / 2 - targetCenter[0],\n    y: layoutInfo.height / 2 - targetCenter[1]\n  };\n}\n\nfunction prunning(node, clipRect, viewAbovePath, viewRoot, depth) {\n  var nodeLayout = node.getLayout();\n  var nodeInViewAbovePath = viewAbovePath[depth];\n  var isAboveViewRoot = nodeInViewAbovePath && nodeInViewAbovePath === node;\n\n  if (nodeInViewAbovePath && !isAboveViewRoot || depth === viewAbovePath.length && node !== viewRoot) {\n    return;\n  }\n\n  node.setLayout({\n    isInView: true,\n    invisible: !isAboveViewRoot && !clipRect.intersect(nodeLayout),\n    isAboveViewRoot: isAboveViewRoot\n  }, true);\n  var childClipRect = new BoundingRect(clipRect.x - nodeLayout.x, clipRect.y - nodeLayout.y, clipRect.width, clipRect.height);\n  each(node.viewChildren || [], function (child) {\n    prunning(child, childClipRect, viewAbovePath, viewRoot, depth + 1);\n  });\n}\n\nfunction getUpperLabelHeight(model) {\n  return model.get(PATH_UPPER_LABEL_SHOW) ? model.get(PATH_UPPER_LABEL_HEIGHT) : 0;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { installTreemapAction } from './treemapAction';\nimport TreemapSeriesModel from './TreemapSeries';\nimport TreemapView from './TreemapView';\nimport treemapVisual from './treemapVisual';\nimport treemapLayout from './treemapLayout';\nexport function install(registers) {\n  registers.registerSeriesModel(TreemapSeriesModel);\n  registers.registerChartView(TreemapView);\n  registers.registerVisual(treemapVisual);\n  registers.registerLayout(treemapLayout);\n  installTreemapAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function categoryFilter(ecModel) {\n  var legendModels = ecModel.findComponents({\n    mainType: 'legend'\n  });\n\n  if (!legendModels || !legendModels.length) {\n    return;\n  }\n\n  ecModel.eachSeriesByType('graph', function (graphSeries) {\n    var categoriesData = graphSeries.getCategoriesData();\n    var graph = graphSeries.getGraph();\n    var data = graph.data;\n    var categoryNames = categoriesData.mapArray(categoriesData.getName);\n    data.filterSelf(function (idx) {\n      var model = data.getItemModel(idx);\n      var category = model.getShallow('category');\n\n      if (category != null) {\n        if (typeof category === 'number') {\n          category = categoryNames[category];\n        }\n\n        for (var i = 0; i < legendModels.length; i++) {\n          if (!legendModels[i].isSelected(category)) {\n            return false;\n          }\n        }\n      }\n\n      return true;\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { extend } from 'zrender/lib/core/util';\nexport default function categoryVisual(ecModel) {\n  var paletteScope = {};\n  ecModel.eachSeriesByType('graph', function (seriesModel) {\n    var categoriesData = seriesModel.getCategoriesData();\n    var data = seriesModel.getData();\n    var categoryNameIdxMap = {};\n    categoriesData.each(function (idx) {\n      var name = categoriesData.getName(idx);\n      categoryNameIdxMap['ec-' + name] = idx;\n      var itemModel = categoriesData.getItemModel(idx);\n      var style = itemModel.getModel('itemStyle').getItemStyle();\n\n      if (!style.fill) {\n        style.fill = seriesModel.getColorFromPalette(name, paletteScope);\n      }\n\n      categoriesData.setItemVisual(idx, 'style', style);\n      var symbolVisualList = ['symbol', 'symbolSize', 'symbolKeepAspect'];\n\n      for (var i = 0; i < symbolVisualList.length; i++) {\n        var symbolVisual = itemModel.getShallow(symbolVisualList[i], true);\n\n        if (symbolVisual != null) {\n          categoriesData.setItemVisual(idx, symbolVisualList[i], symbolVisual);\n        }\n      }\n    });\n\n    if (categoriesData.count()) {\n      data.each(function (idx) {\n        var model = data.getItemModel(idx);\n        var categoryIdx = model.getShallow('category');\n\n        if (categoryIdx != null) {\n          if (typeof categoryIdx === 'string') {\n            categoryIdx = categoryNameIdxMap['ec-' + categoryIdx];\n          }\n\n          var categoryStyle = categoriesData.getItemVisual(categoryIdx, 'style');\n          var style = data.ensureUniqueItemVisual(idx, 'style');\n          extend(style, categoryStyle);\n          var visualList = ['symbol', 'symbolSize', 'symbolKeepAspect'];\n\n          for (var i = 0; i < visualList.length; i++) {\n            data.setItemVisual(idx, visualList[i], categoriesData.getItemVisual(categoryIdx, visualList[i]));\n          }\n        }\n      });\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { extend } from 'zrender/lib/core/util';\n\nfunction normalize(a) {\n  if (!(a instanceof Array)) {\n    a = [a, a];\n  }\n\n  return a;\n}\n\nexport default function graphEdgeVisual(ecModel) {\n  ecModel.eachSeriesByType('graph', function (seriesModel) {\n    var graph = seriesModel.getGraph();\n    var edgeData = seriesModel.getEdgeData();\n    var symbolType = normalize(seriesModel.get('edgeSymbol'));\n    var symbolSize = normalize(seriesModel.get('edgeSymbolSize'));\n    edgeData.setVisual('fromSymbol', symbolType && symbolType[0]);\n    edgeData.setVisual('toSymbol', symbolType && symbolType[1]);\n    edgeData.setVisual('fromSymbolSize', symbolSize && symbolSize[0]);\n    edgeData.setVisual('toSymbolSize', symbolSize && symbolSize[1]);\n    edgeData.setVisual('style', seriesModel.getModel('lineStyle').getLineStyle());\n    edgeData.each(function (idx) {\n      var itemModel = edgeData.getItemModel(idx);\n      var edge = graph.getEdgeByIndex(idx);\n      var symbolType = normalize(itemModel.getShallow('symbol', true));\n      var symbolSize = normalize(itemModel.getShallow('symbolSize', true));\n      var style = itemModel.getModel('lineStyle').getLineStyle();\n      var existsStyle = edgeData.ensureUniqueItemVisual(idx, 'style');\n      extend(existsStyle, style);\n\n      switch (existsStyle.stroke) {\n        case 'source':\n          {\n            var nodeStyle = edge.node1.getVisual('style');\n            existsStyle.stroke = nodeStyle && nodeStyle.fill;\n            break;\n          }\n\n        case 'target':\n          {\n            var nodeStyle = edge.node2.getVisual('style');\n            existsStyle.stroke = nodeStyle && nodeStyle.fill;\n            break;\n          }\n      }\n\n      symbolType[0] && edge.setVisual('fromSymbol', symbolType[0]);\n      symbolType[1] && edge.setVisual('toSymbol', symbolType[1]);\n      symbolSize[0] && edge.setVisual('fromSymbolSize', symbolSize[0]);\n      symbolSize[1] && edge.setVisual('toSymbolSize', symbolSize[1]);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar KEY_DELIMITER = '-->';\n\nvar getAutoCurvenessParams = function (seriesModel) {\n  return seriesModel.get('autoCurveness') || null;\n};\n\nvar createCurveness = function (seriesModel, appendLength) {\n  var autoCurvenessParmas = getAutoCurvenessParams(seriesModel);\n  var length = 20;\n  var curvenessList = [];\n\n  if (typeof autoCurvenessParmas === 'number') {\n    length = autoCurvenessParmas;\n  } else if (zrUtil.isArray(autoCurvenessParmas)) {\n    seriesModel.__curvenessList = autoCurvenessParmas;\n    return;\n  }\n\n  if (appendLength > length) {\n    length = appendLength;\n  }\n\n  var len = length % 2 ? length + 2 : length + 3;\n  curvenessList = [];\n\n  for (var i = 0; i < len; i++) {\n    curvenessList.push((i % 2 ? i + 1 : i) / 10 * (i % 2 ? -1 : 1));\n  }\n\n  seriesModel.__curvenessList = curvenessList;\n};\n\nvar getKeyOfEdges = function (n1, n2, seriesModel) {\n  var source = [n1.id, n1.dataIndex].join('.');\n  var target = [n2.id, n2.dataIndex].join('.');\n  return [seriesModel.uid, source, target].join(KEY_DELIMITER);\n};\n\nvar getOppositeKey = function (key) {\n  var keys = key.split(KEY_DELIMITER);\n  return [keys[0], keys[2], keys[1]].join(KEY_DELIMITER);\n};\n\nvar getEdgeFromMap = function (edge, seriesModel) {\n  var key = getKeyOfEdges(edge.node1, edge.node2, seriesModel);\n  return seriesModel.__edgeMap[key];\n};\n\nvar getTotalLengthBetweenNodes = function (edge, seriesModel) {\n  var len = getEdgeMapLengthWithKey(getKeyOfEdges(edge.node1, edge.node2, seriesModel), seriesModel);\n  var lenV = getEdgeMapLengthWithKey(getKeyOfEdges(edge.node2, edge.node1, seriesModel), seriesModel);\n  return len + lenV;\n};\n\nvar getEdgeMapLengthWithKey = function (key, seriesModel) {\n  var edgeMap = seriesModel.__edgeMap;\n  return edgeMap[key] ? edgeMap[key].length : 0;\n};\n\nexport function initCurvenessList(seriesModel) {\n  if (!getAutoCurvenessParams(seriesModel)) {\n    return;\n  }\n\n  seriesModel.__curvenessList = [];\n  seriesModel.__edgeMap = {};\n  createCurveness(seriesModel);\n}\nexport function createEdgeMapForCurveness(n1, n2, seriesModel, index) {\n  if (!getAutoCurvenessParams(seriesModel)) {\n    return;\n  }\n\n  var key = getKeyOfEdges(n1, n2, seriesModel);\n  var edgeMap = seriesModel.__edgeMap;\n  var oppositeEdges = edgeMap[getOppositeKey(key)];\n\n  if (edgeMap[key] && !oppositeEdges) {\n    edgeMap[key].isForward = true;\n  } else if (oppositeEdges && edgeMap[key]) {\n    oppositeEdges.isForward = true;\n    edgeMap[key].isForward = false;\n  }\n\n  edgeMap[key] = edgeMap[key] || [];\n  edgeMap[key].push(index);\n}\nexport function getCurvenessForEdge(edge, seriesModel, index, needReverse) {\n  var autoCurvenessParams = getAutoCurvenessParams(seriesModel);\n  var isArrayParam = zrUtil.isArray(autoCurvenessParams);\n\n  if (!autoCurvenessParams) {\n    return null;\n  }\n\n  var edgeArray = getEdgeFromMap(edge, seriesModel);\n\n  if (!edgeArray) {\n    return null;\n  }\n\n  var edgeIndex = -1;\n\n  for (var i = 0; i < edgeArray.length; i++) {\n    if (edgeArray[i] === index) {\n      edgeIndex = i;\n      break;\n    }\n  }\n\n  var totalLen = getTotalLengthBetweenNodes(edge, seriesModel);\n  createCurveness(seriesModel, totalLen);\n  edge.lineStyle = edge.lineStyle || {};\n  var curKey = getKeyOfEdges(edge.node1, edge.node2, seriesModel);\n  var curvenessList = seriesModel.__curvenessList;\n  var parityCorrection = isArrayParam ? 0 : totalLen % 2 ? 0 : 1;\n\n  if (!edgeArray.isForward) {\n    var oppositeKey = getOppositeKey(curKey);\n    var len = getEdgeMapLengthWithKey(oppositeKey, seriesModel);\n    var resValue = curvenessList[edgeIndex + len + parityCorrection];\n\n    if (needReverse) {\n      if (isArrayParam) {\n        if (autoCurvenessParams && autoCurvenessParams[0] === 0) {\n          return (len + parityCorrection) % 2 ? resValue : -resValue;\n        } else {\n          return ((len % 2 ? 0 : 1) + parityCorrection) % 2 ? resValue : -resValue;\n        }\n      } else {\n        return (len + parityCorrection) % 2 ? resValue : -resValue;\n      }\n    } else {\n      return curvenessList[edgeIndex + len + parityCorrection];\n    }\n  } else {\n    return curvenessList[parityCorrection + edgeIndex];\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as vec2 from 'zrender/lib/core/vector';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { getCurvenessForEdge } from '../helper/multipleGraphEdgeHelper';\nexport function simpleLayout(seriesModel) {\n  var coordSys = seriesModel.coordinateSystem;\n\n  if (coordSys && coordSys.type !== 'view') {\n    return;\n  }\n\n  var graph = seriesModel.getGraph();\n  graph.eachNode(function (node) {\n    var model = node.getModel();\n    node.setLayout([+model.get('x'), +model.get('y')]);\n  });\n  simpleLayoutEdge(graph, seriesModel);\n}\nexport function simpleLayoutEdge(graph, seriesModel) {\n  graph.eachEdge(function (edge, index) {\n    var curveness = zrUtil.retrieve3(edge.getModel().get(['lineStyle', 'curveness']), -getCurvenessForEdge(edge, seriesModel, index, true), 0);\n    var p1 = vec2.clone(edge.node1.getLayout());\n    var p2 = vec2.clone(edge.node2.getLayout());\n    var points = [p1, p2];\n\n    if (+curveness) {\n      points.push([(p1[0] + p2[0]) / 2 - (p1[1] - p2[1]) * curveness, (p1[1] + p2[1]) / 2 - (p2[0] - p1[0]) * curveness]);\n    }\n\n    edge.setLayout(points);\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each } from 'zrender/lib/core/util';\nimport { simpleLayout, simpleLayoutEdge } from './simpleLayoutHelper';\nexport default function graphSimpleLayout(ecModel, api) {\n  ecModel.eachSeriesByType('graph', function (seriesModel) {\n    var layout = seriesModel.get('layout');\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys && coordSys.type !== 'view') {\n      var data_1 = seriesModel.getData();\n      var dimensions_1 = [];\n      each(coordSys.dimensions, function (coordDim) {\n        dimensions_1 = dimensions_1.concat(data_1.mapDimensionsAll(coordDim));\n      });\n\n      for (var dataIndex = 0; dataIndex < data_1.count(); dataIndex++) {\n        var value = [];\n        var hasValue = false;\n\n        for (var i = 0; i < dimensions_1.length; i++) {\n          var val = data_1.get(dimensions_1[i], dataIndex);\n\n          if (!isNaN(val)) {\n            hasValue = true;\n          }\n\n          value.push(val);\n        }\n\n        if (hasValue) {\n          data_1.setItemLayout(dataIndex, coordSys.dataToPoint(value));\n        } else {\n          data_1.setItemLayout(dataIndex, [NaN, NaN]);\n        }\n      }\n\n      simpleLayoutEdge(data_1.graph, seriesModel);\n    } else if (!layout || layout === 'none') {\n      simpleLayout(seriesModel);\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function getNodeGlobalScale(seriesModel) {\n  var coordSys = seriesModel.coordinateSystem;\n\n  if (coordSys.type !== 'view') {\n    return 1;\n  }\n\n  var nodeScaleRatio = seriesModel.option.nodeScaleRatio;\n  var groupZoom = coordSys.scaleX;\n  var roamZoom = coordSys.getZoom();\n  var nodeScale = (roamZoom - 1) * nodeScaleRatio + 1;\n  return nodeScale / groupZoom;\n}\nexport function getSymbolSize(node) {\n  var symbolSize = node.getVisual('symbolSize');\n\n  if (symbolSize instanceof Array) {\n    symbolSize = (symbolSize[0] + symbolSize[1]) / 2;\n  }\n\n  return +symbolSize;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as vec2 from 'zrender/lib/core/vector';\nimport { getSymbolSize, getNodeGlobalScale } from './graphHelper';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { getCurvenessForEdge } from '../helper/multipleGraphEdgeHelper';\nvar PI = Math.PI;\nvar _symbolRadiansHalf = [];\nexport function circularLayout(seriesModel, basedOn) {\n  var coordSys = seriesModel.coordinateSystem;\n\n  if (coordSys && coordSys.type !== 'view') {\n    return;\n  }\n\n  var rect = coordSys.getBoundingRect();\n  var nodeData = seriesModel.getData();\n  var graph = nodeData.graph;\n  var cx = rect.width / 2 + rect.x;\n  var cy = rect.height / 2 + rect.y;\n  var r = Math.min(rect.width, rect.height) / 2;\n  var count = nodeData.count();\n  nodeData.setLayout({\n    cx: cx,\n    cy: cy\n  });\n\n  if (!count) {\n    return;\n  }\n\n  _layoutNodesBasedOn[basedOn](seriesModel, graph, nodeData, r, cx, cy, count);\n\n  graph.eachEdge(function (edge, index) {\n    var curveness = zrUtil.retrieve3(edge.getModel().get(['lineStyle', 'curveness']), getCurvenessForEdge(edge, seriesModel, index), 0);\n    var p1 = vec2.clone(edge.node1.getLayout());\n    var p2 = vec2.clone(edge.node2.getLayout());\n    var cp1;\n    var x12 = (p1[0] + p2[0]) / 2;\n    var y12 = (p1[1] + p2[1]) / 2;\n\n    if (+curveness) {\n      curveness *= 3;\n      cp1 = [cx * curveness + x12 * (1 - curveness), cy * curveness + y12 * (1 - curveness)];\n    }\n\n    edge.setLayout([p1, p2, cp1]);\n  });\n}\nvar _layoutNodesBasedOn = {\n  value: function (seriesModel, graph, nodeData, r, cx, cy, count) {\n    var angle = 0;\n    var sum = nodeData.getSum('value');\n    var unitAngle = Math.PI * 2 / (sum || count);\n    graph.eachNode(function (node) {\n      var value = node.getValue('value');\n      var radianHalf = unitAngle * (sum ? value : 1) / 2;\n      angle += radianHalf;\n      node.setLayout([r * Math.cos(angle) + cx, r * Math.sin(angle) + cy]);\n      angle += radianHalf;\n    });\n  },\n  symbolSize: function (seriesModel, graph, nodeData, r, cx, cy, count) {\n    var sumRadian = 0;\n    _symbolRadiansHalf.length = count;\n    var nodeScale = getNodeGlobalScale(seriesModel);\n    graph.eachNode(function (node) {\n      var symbolSize = getSymbolSize(node);\n      isNaN(symbolSize) && (symbolSize = 2);\n      symbolSize < 0 && (symbolSize = 0);\n      symbolSize *= nodeScale;\n      var symbolRadianHalf = Math.asin(symbolSize / 2 / r);\n      isNaN(symbolRadianHalf) && (symbolRadianHalf = PI / 2);\n      _symbolRadiansHalf[node.dataIndex] = symbolRadianHalf;\n      sumRadian += symbolRadianHalf * 2;\n    });\n    var halfRemainRadian = (2 * PI - sumRadian) / count / 2;\n    var angle = 0;\n    graph.eachNode(function (node) {\n      var radianHalf = halfRemainRadian + _symbolRadiansHalf[node.dataIndex];\n      angle += radianHalf;\n      node.setLayout([r * Math.cos(angle) + cx, r * Math.sin(angle) + cy]);\n      angle += radianHalf;\n    });\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { circularLayout } from './circularLayoutHelper';\nexport default function graphCircularLayout(ecModel) {\n  ecModel.eachSeriesByType('graph', function (seriesModel) {\n    if (seriesModel.get('layout') === 'circular') {\n      circularLayout(seriesModel, 'symbolSize');\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as vec2 from 'zrender/lib/core/vector';\nvar scaleAndAdd = vec2.scaleAndAdd;\nexport function forceLayout(inNodes, inEdges, opts) {\n  var nodes = inNodes;\n  var edges = inEdges;\n  var rect = opts.rect;\n  var width = rect.width;\n  var height = rect.height;\n  var center = [rect.x + width / 2, rect.y + height / 2];\n  var gravity = opts.gravity == null ? 0.1 : opts.gravity;\n\n  for (var i = 0; i < nodes.length; i++) {\n    var n = nodes[i];\n\n    if (!n.p) {\n      n.p = vec2.create(width * (Math.random() - 0.5) + center[0], height * (Math.random() - 0.5) + center[1]);\n    }\n\n    n.pp = vec2.clone(n.p);\n    n.edges = null;\n  }\n\n  var initialFriction = opts.friction == null ? 0.6 : opts.friction;\n  var friction = initialFriction;\n  var beforeStepCallback;\n  var afterStepCallback;\n  return {\n    warmUp: function () {\n      friction = initialFriction * 0.8;\n    },\n    setFixed: function (idx) {\n      nodes[idx].fixed = true;\n    },\n    setUnfixed: function (idx) {\n      nodes[idx].fixed = false;\n    },\n    beforeStep: function (cb) {\n      beforeStepCallback = cb;\n    },\n    afterStep: function (cb) {\n      afterStepCallback = cb;\n    },\n    step: function (cb) {\n      beforeStepCallback && beforeStepCallback(nodes, edges);\n      var v12 = [];\n      var nLen = nodes.length;\n\n      for (var i = 0; i < edges.length; i++) {\n        var e = edges[i];\n\n        if (e.ignoreForceLayout) {\n          continue;\n        }\n\n        var n1 = e.n1;\n        var n2 = e.n2;\n        vec2.sub(v12, n2.p, n1.p);\n        var d = vec2.len(v12) - e.d;\n        var w = n2.w / (n1.w + n2.w);\n\n        if (isNaN(w)) {\n          w = 0;\n        }\n\n        vec2.normalize(v12, v12);\n        !n1.fixed && scaleAndAdd(n1.p, n1.p, v12, w * d * friction);\n        !n2.fixed && scaleAndAdd(n2.p, n2.p, v12, -(1 - w) * d * friction);\n      }\n\n      for (var i = 0; i < nLen; i++) {\n        var n = nodes[i];\n\n        if (!n.fixed) {\n          vec2.sub(v12, center, n.p);\n          scaleAndAdd(n.p, n.p, v12, gravity * friction);\n        }\n      }\n\n      for (var i = 0; i < nLen; i++) {\n        var n1 = nodes[i];\n\n        for (var j = i + 1; j < nLen; j++) {\n          var n2 = nodes[j];\n          vec2.sub(v12, n2.p, n1.p);\n          var d = vec2.len(v12);\n\n          if (d === 0) {\n            vec2.set(v12, Math.random() - 0.5, Math.random() - 0.5);\n            d = 1;\n          }\n\n          var repFact = (n1.rep + n2.rep) / d / d;\n          !n1.fixed && scaleAndAdd(n1.pp, n1.pp, v12, repFact);\n          !n2.fixed && scaleAndAdd(n2.pp, n2.pp, v12, -repFact);\n        }\n      }\n\n      var v = [];\n\n      for (var i = 0; i < nLen; i++) {\n        var n = nodes[i];\n\n        if (!n.fixed) {\n          vec2.sub(v, n.p, n.pp);\n          scaleAndAdd(n.p, n.p, v, friction);\n          vec2.copy(n.pp, n.p);\n        }\n      }\n\n      friction = friction * 0.992;\n      var finished = friction < 0.01;\n      afterStepCallback && afterStepCallback(nodes, edges, finished);\n      cb && cb(finished);\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { forceLayout } from './forceHelper';\nimport { simpleLayout } from './simpleLayoutHelper';\nimport { circularLayout } from './circularLayoutHelper';\nimport { linearMap } from '../../util/number';\nimport * as vec2 from 'zrender/lib/core/vector';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { getCurvenessForEdge } from '../helper/multipleGraphEdgeHelper';\nexport default function graphForceLayout(ecModel) {\n  ecModel.eachSeriesByType('graph', function (graphSeries) {\n    var coordSys = graphSeries.coordinateSystem;\n\n    if (coordSys && coordSys.type !== 'view') {\n      return;\n    }\n\n    if (graphSeries.get('layout') === 'force') {\n      var preservedPoints_1 = graphSeries.preservedPoints || {};\n      var graph_1 = graphSeries.getGraph();\n      var nodeData_1 = graph_1.data;\n      var edgeData = graph_1.edgeData;\n      var forceModel = graphSeries.getModel('force');\n      var initLayout = forceModel.get('initLayout');\n\n      if (graphSeries.preservedPoints) {\n        nodeData_1.each(function (idx) {\n          var id = nodeData_1.getId(idx);\n          nodeData_1.setItemLayout(idx, preservedPoints_1[id] || [NaN, NaN]);\n        });\n      } else if (!initLayout || initLayout === 'none') {\n        simpleLayout(graphSeries);\n      } else if (initLayout === 'circular') {\n        circularLayout(graphSeries, 'value');\n      }\n\n      var nodeDataExtent_1 = nodeData_1.getDataExtent('value');\n      var edgeDataExtent_1 = edgeData.getDataExtent('value');\n      var repulsion = forceModel.get('repulsion');\n      var edgeLength = forceModel.get('edgeLength');\n      var repulsionArr_1 = zrUtil.isArray(repulsion) ? repulsion : [repulsion, repulsion];\n      var edgeLengthArr_1 = zrUtil.isArray(edgeLength) ? edgeLength : [edgeLength, edgeLength];\n      edgeLengthArr_1 = [edgeLengthArr_1[1], edgeLengthArr_1[0]];\n      var nodes_1 = nodeData_1.mapArray('value', function (value, idx) {\n        var point = nodeData_1.getItemLayout(idx);\n        var rep = linearMap(value, nodeDataExtent_1, repulsionArr_1);\n\n        if (isNaN(rep)) {\n          rep = (repulsionArr_1[0] + repulsionArr_1[1]) / 2;\n        }\n\n        return {\n          w: rep,\n          rep: rep,\n          fixed: nodeData_1.getItemModel(idx).get('fixed'),\n          p: !point || isNaN(point[0]) || isNaN(point[1]) ? null : point\n        };\n      });\n      var edges = edgeData.mapArray('value', function (value, idx) {\n        var edge = graph_1.getEdgeByIndex(idx);\n        var d = linearMap(value, edgeDataExtent_1, edgeLengthArr_1);\n\n        if (isNaN(d)) {\n          d = (edgeLengthArr_1[0] + edgeLengthArr_1[1]) / 2;\n        }\n\n        var edgeModel = edge.getModel();\n        var curveness = zrUtil.retrieve3(edge.getModel().get(['lineStyle', 'curveness']), -getCurvenessForEdge(edge, graphSeries, idx, true), 0);\n        return {\n          n1: nodes_1[edge.node1.dataIndex],\n          n2: nodes_1[edge.node2.dataIndex],\n          d: d,\n          curveness: curveness,\n          ignoreForceLayout: edgeModel.get('ignoreForceLayout')\n        };\n      });\n      var rect = coordSys.getBoundingRect();\n      var forceInstance = forceLayout(nodes_1, edges, {\n        rect: rect,\n        gravity: forceModel.get('gravity'),\n        friction: forceModel.get('friction')\n      });\n      forceInstance.beforeStep(function (nodes, edges) {\n        for (var i = 0, l = nodes.length; i < l; i++) {\n          if (nodes[i].fixed) {\n            vec2.copy(nodes[i].p, graph_1.getNodeByIndex(i).getLayout());\n          }\n        }\n      });\n      forceInstance.afterStep(function (nodes, edges, stopped) {\n        for (var i = 0, l = nodes.length; i < l; i++) {\n          if (!nodes[i].fixed) {\n            graph_1.getNodeByIndex(i).setLayout(nodes[i].p);\n          }\n\n          preservedPoints_1[nodeData_1.getId(i)] = nodes[i].p;\n        }\n\n        for (var i = 0, l = edges.length; i < l; i++) {\n          var e = edges[i];\n          var edge = graph_1.getEdgeByIndex(i);\n          var p1 = e.n1.p;\n          var p2 = e.n2.p;\n          var points = edge.getLayout();\n          points = points ? points.slice() : [];\n          points[0] = points[0] || [];\n          points[1] = points[1] || [];\n          vec2.copy(points[0], p1);\n          vec2.copy(points[1], p2);\n\n          if (+e.curveness) {\n            points[2] = [(p1[0] + p2[0]) / 2 - (p1[1] - p2[1]) * e.curveness, (p1[1] + p2[1]) / 2 - (p2[0] - p1[0]) * e.curveness];\n          }\n\n          edge.setLayout(points);\n        }\n      });\n      graphSeries.forceLayout = forceInstance;\n      graphSeries.preservedPoints = preservedPoints_1;\n      forceInstance.step();\n    } else {\n      graphSeries.forceLayout = null;\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport View from '../../coord/View';\nimport { getLayoutRect } from '../../util/layout';\nimport * as bbox from 'zrender/lib/core/bbox';\nimport { extend } from 'zrender/lib/core/util';\n\nfunction getViewRect(seriesModel, api, aspect) {\n  var option = extend(seriesModel.getBoxLayoutParams(), {\n    aspect: aspect\n  });\n  return getLayoutRect(option, {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n}\n\nexport default function createViewCoordSys(ecModel, api) {\n  var viewList = [];\n  ecModel.eachSeriesByType('graph', function (seriesModel) {\n    var coordSysType = seriesModel.get('coordinateSystem');\n\n    if (!coordSysType || coordSysType === 'view') {\n      var data_1 = seriesModel.getData();\n      var positions = data_1.mapArray(function (idx) {\n        var itemModel = data_1.getItemModel(idx);\n        return [+itemModel.get('x'), +itemModel.get('y')];\n      });\n      var min = [];\n      var max = [];\n      bbox.fromPoints(positions, min, max);\n\n      if (max[0] - min[0] === 0) {\n        max[0] += 1;\n        min[0] -= 1;\n      }\n\n      if (max[1] - min[1] === 0) {\n        max[1] += 1;\n        min[1] -= 1;\n      }\n\n      var aspect = (max[0] - min[0]) / (max[1] - min[1]);\n      var viewRect = getViewRect(seriesModel, api, aspect);\n\n      if (isNaN(aspect)) {\n        min = [viewRect.x, viewRect.y];\n        max = [viewRect.x + viewRect.width, viewRect.y + viewRect.height];\n      }\n\n      var bbWidth = max[0] - min[0];\n      var bbHeight = max[1] - min[1];\n      var viewWidth = viewRect.width;\n      var viewHeight = viewRect.height;\n      var viewCoordSys = seriesModel.coordinateSystem = new View();\n      viewCoordSys.zoomLimit = seriesModel.get('scaleLimit');\n      viewCoordSys.setBoundingRect(min[0], min[1], bbWidth, bbHeight);\n      viewCoordSys.setViewRect(viewRect.x, viewRect.y, viewWidth, viewHeight);\n      viewCoordSys.setCenter(seriesModel.get('center'));\n      viewCoordSys.setZoom(seriesModel.get('zoom'));\n      viewList.push(viewCoordSys);\n    }\n  });\n  return viewList;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport * as vec2 from 'zrender/lib/core/vector';\nvar straightLineProto = graphic.Line.prototype;\nvar bezierCurveProto = graphic.BezierCurve.prototype;\n\nvar StraightLineShape = function () {\n  function StraightLineShape() {\n    this.x1 = 0;\n    this.y1 = 0;\n    this.x2 = 0;\n    this.y2 = 0;\n    this.percent = 1;\n  }\n\n  return StraightLineShape;\n}();\n\nvar CurveShape = function (_super) {\n  __extends(CurveShape, _super);\n\n  function CurveShape() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  return CurveShape;\n}(StraightLineShape);\n\nfunction isStraightLine(shape) {\n  return isNaN(+shape.cpx1) || isNaN(+shape.cpy1);\n}\n\nvar ECLinePath = function (_super) {\n  __extends(ECLinePath, _super);\n\n  function ECLinePath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'ec-line';\n    return _this;\n  }\n\n  ECLinePath.prototype.getDefaultStyle = function () {\n    return {\n      stroke: '#000',\n      fill: null\n    };\n  };\n\n  ECLinePath.prototype.getDefaultShape = function () {\n    return new StraightLineShape();\n  };\n\n  ECLinePath.prototype.buildPath = function (ctx, shape) {\n    if (isStraightLine(shape)) {\n      straightLineProto.buildPath.call(this, ctx, shape);\n    } else {\n      bezierCurveProto.buildPath.call(this, ctx, shape);\n    }\n  };\n\n  ECLinePath.prototype.pointAt = function (t) {\n    if (isStraightLine(this.shape)) {\n      return straightLineProto.pointAt.call(this, t);\n    } else {\n      return bezierCurveProto.pointAt.call(this, t);\n    }\n  };\n\n  ECLinePath.prototype.tangentAt = function (t) {\n    var shape = this.shape;\n    var p = isStraightLine(shape) ? [shape.x2 - shape.x1, shape.y2 - shape.y1] : bezierCurveProto.tangentAt.call(this, t);\n    return vec2.normalize(p, p);\n  };\n\n  return ECLinePath;\n}(graphic.Path);\n\nexport default ECLinePath;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as vector from 'zrender/lib/core/vector';\nimport * as symbolUtil from '../../util/symbol';\nimport ECLinePath from './LinePath';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis, enterEmphasis, leaveEmphasis, SPECIAL_STATES } from '../../util/states';\nimport { getLabelStatesModels, setLabelStyle } from '../../label/labelStyle';\nimport { round } from '../../util/number';\nvar SYMBOL_CATEGORIES = ['fromSymbol', 'toSymbol'];\n\nfunction makeSymbolTypeKey(symbolCategory) {\n  return '_' + symbolCategory + 'Type';\n}\n\nfunction createSymbol(name, lineData, idx) {\n  var symbolType = lineData.getItemVisual(idx, name);\n\n  if (!symbolType || symbolType === 'none') {\n    return;\n  }\n\n  var symbolSize = lineData.getItemVisual(idx, name + 'Size');\n  var symbolRotate = lineData.getItemVisual(idx, name + 'Rotate');\n  var symbolSizeArr = zrUtil.isArray(symbolSize) ? symbolSize : [symbolSize, symbolSize];\n  var symbolPath = symbolUtil.createSymbol(symbolType, -symbolSizeArr[0] / 2, -symbolSizeArr[1] / 2, symbolSizeArr[0], symbolSizeArr[1]);\n  symbolPath.__specifiedRotation = symbolRotate == null || isNaN(symbolRotate) ? void 0 : +symbolRotate * Math.PI / 180 || 0;\n  symbolPath.name = name;\n  return symbolPath;\n}\n\nfunction createLine(points) {\n  var line = new ECLinePath({\n    name: 'line',\n    subPixelOptimize: true\n  });\n  setLinePoints(line.shape, points);\n  return line;\n}\n\nfunction setLinePoints(targetShape, points) {\n  targetShape.x1 = points[0][0];\n  targetShape.y1 = points[0][1];\n  targetShape.x2 = points[1][0];\n  targetShape.y2 = points[1][1];\n  targetShape.percent = 1;\n  var cp1 = points[2];\n\n  if (cp1) {\n    targetShape.cpx1 = cp1[0];\n    targetShape.cpy1 = cp1[1];\n  } else {\n    targetShape.cpx1 = NaN;\n    targetShape.cpy1 = NaN;\n  }\n}\n\nvar Line = function (_super) {\n  __extends(Line, _super);\n\n  function Line(lineData, idx, seriesScope) {\n    var _this = _super.call(this) || this;\n\n    _this._createLine(lineData, idx, seriesScope);\n\n    return _this;\n  }\n\n  Line.prototype._createLine = function (lineData, idx, seriesScope) {\n    var seriesModel = lineData.hostModel;\n    var linePoints = lineData.getItemLayout(idx);\n    var line = createLine(linePoints);\n    line.shape.percent = 0;\n    graphic.initProps(line, {\n      shape: {\n        percent: 1\n      }\n    }, seriesModel, idx);\n    this.add(line);\n    zrUtil.each(SYMBOL_CATEGORIES, function (symbolCategory) {\n      var symbol = createSymbol(symbolCategory, lineData, idx);\n      this.add(symbol);\n      this[makeSymbolTypeKey(symbolCategory)] = lineData.getItemVisual(idx, symbolCategory);\n    }, this);\n\n    this._updateCommonStl(lineData, idx, seriesScope);\n  };\n\n  Line.prototype.updateData = function (lineData, idx, seriesScope) {\n    var seriesModel = lineData.hostModel;\n    var line = this.childOfName('line');\n    var linePoints = lineData.getItemLayout(idx);\n    var target = {\n      shape: {}\n    };\n    setLinePoints(target.shape, linePoints);\n    graphic.updateProps(line, target, seriesModel, idx);\n    zrUtil.each(SYMBOL_CATEGORIES, function (symbolCategory) {\n      var symbolType = lineData.getItemVisual(idx, symbolCategory);\n      var key = makeSymbolTypeKey(symbolCategory);\n\n      if (this[key] !== symbolType) {\n        this.remove(this.childOfName(symbolCategory));\n        var symbol = createSymbol(symbolCategory, lineData, idx);\n        this.add(symbol);\n      }\n\n      this[key] = symbolType;\n    }, this);\n\n    this._updateCommonStl(lineData, idx, seriesScope);\n  };\n\n  ;\n\n  Line.prototype.getLinePath = function () {\n    return this.childAt(0);\n  };\n\n  Line.prototype._updateCommonStl = function (lineData, idx, seriesScope) {\n    var seriesModel = lineData.hostModel;\n    var line = this.childOfName('line');\n    var emphasisLineStyle = seriesScope && seriesScope.emphasisLineStyle;\n    var blurLineStyle = seriesScope && seriesScope.blurLineStyle;\n    var selectLineStyle = seriesScope && seriesScope.selectLineStyle;\n    var labelStatesModels = seriesScope && seriesScope.labelStatesModels;\n\n    if (!seriesScope || lineData.hasItemOption) {\n      var itemModel = lineData.getItemModel(idx);\n      emphasisLineStyle = itemModel.getModel(['emphasis', 'lineStyle']).getLineStyle();\n      blurLineStyle = itemModel.getModel(['blur', 'lineStyle']).getLineStyle();\n      selectLineStyle = itemModel.getModel(['select', 'lineStyle']).getLineStyle();\n      labelStatesModels = getLabelStatesModels(itemModel);\n    }\n\n    var lineStyle = lineData.getItemVisual(idx, 'style');\n    var visualColor = lineStyle.stroke;\n    line.useStyle(lineStyle);\n    line.style.fill = null;\n    line.style.strokeNoScale = true;\n    line.ensureState('emphasis').style = emphasisLineStyle;\n    line.ensureState('blur').style = blurLineStyle;\n    line.ensureState('select').style = selectLineStyle;\n    zrUtil.each(SYMBOL_CATEGORIES, function (symbolCategory) {\n      var symbol = this.childOfName(symbolCategory);\n\n      if (symbol) {\n        symbol.setColor(visualColor);\n        symbol.style.opacity = lineStyle.opacity;\n\n        for (var i = 0; i < SPECIAL_STATES.length; i++) {\n          var stateName = SPECIAL_STATES[i];\n          var lineState = line.getState(stateName);\n\n          if (lineState) {\n            var lineStateStyle = lineState.style || {};\n            var state = symbol.ensureState(stateName);\n            var stateStyle = state.style || (state.style = {});\n\n            if (lineStateStyle.stroke != null) {\n              stateStyle[symbol.__isEmptyBrush ? 'stroke' : 'fill'] = lineStateStyle.stroke;\n            }\n\n            if (lineStateStyle.opacity != null) {\n              stateStyle.opacity = lineStateStyle.opacity;\n            }\n          }\n        }\n\n        symbol.markRedraw();\n      }\n    }, this);\n    var rawVal = seriesModel.getRawValue(idx);\n    setLabelStyle(this, labelStatesModels, {\n      labelDataIndex: idx,\n      labelFetcher: {\n        getFormattedLabel: function (dataIndex, stateName) {\n          return seriesModel.getFormattedLabel(dataIndex, stateName, lineData.dataType);\n        }\n      },\n      inheritColor: visualColor || '#000',\n      defaultOpacity: lineStyle.opacity,\n      defaultText: (rawVal == null ? lineData.getName(idx) : isFinite(rawVal) ? round(rawVal) : rawVal) + ''\n    });\n    var label = this.getTextContent();\n\n    if (label) {\n      var labelNormalModel = labelStatesModels.normal;\n      label.__align = label.style.align;\n      label.__verticalAlign = label.style.verticalAlign;\n      label.__position = labelNormalModel.get('position') || 'middle';\n      var distance = labelNormalModel.get('distance');\n\n      if (!zrUtil.isArray(distance)) {\n        distance = [distance, distance];\n      }\n\n      label.__labelDistance = distance;\n    }\n\n    this.setTextConfig({\n      position: null,\n      local: true,\n      inside: false\n    });\n    enableHoverEmphasis(this);\n  };\n\n  Line.prototype.highlight = function () {\n    enterEmphasis(this);\n  };\n\n  Line.prototype.downplay = function () {\n    leaveEmphasis(this);\n  };\n\n  Line.prototype.updateLayout = function (lineData, idx) {\n    this.setLinePoints(lineData.getItemLayout(idx));\n  };\n\n  Line.prototype.setLinePoints = function (points) {\n    var linePath = this.childOfName('line');\n    setLinePoints(linePath.shape, points);\n    linePath.dirty();\n  };\n\n  Line.prototype.beforeUpdate = function () {\n    var lineGroup = this;\n    var symbolFrom = lineGroup.childOfName('fromSymbol');\n    var symbolTo = lineGroup.childOfName('toSymbol');\n    var label = lineGroup.getTextContent();\n\n    if (!symbolFrom && !symbolTo && (!label || label.ignore)) {\n      return;\n    }\n\n    var invScale = 1;\n    var parentNode = this.parent;\n\n    while (parentNode) {\n      if (parentNode.scaleX) {\n        invScale /= parentNode.scaleX;\n      }\n\n      parentNode = parentNode.parent;\n    }\n\n    var line = lineGroup.childOfName('line');\n\n    if (!this.__dirty && !line.__dirty) {\n      return;\n    }\n\n    var percent = line.shape.percent;\n    var fromPos = line.pointAt(0);\n    var toPos = line.pointAt(percent);\n    var d = vector.sub([], toPos, fromPos);\n    vector.normalize(d, d);\n\n    function setSymbolRotation(symbol, percent) {\n      var specifiedRotation = symbol.__specifiedRotation;\n\n      if (specifiedRotation == null) {\n        var tangent = line.tangentAt(percent);\n        symbol.attr('rotation', (percent === 1 ? -1 : 1) * Math.PI / 2 - Math.atan2(tangent[1], tangent[0]));\n      } else {\n        symbol.attr('rotation', specifiedRotation);\n      }\n    }\n\n    if (symbolFrom) {\n      symbolFrom.setPosition(fromPos);\n      setSymbolRotation(symbolFrom, 0);\n      symbolFrom.scaleX = symbolFrom.scaleY = invScale * percent;\n      symbolFrom.markRedraw();\n    }\n\n    if (symbolTo) {\n      symbolTo.setPosition(toPos);\n      setSymbolRotation(symbolTo, 1);\n      symbolTo.scaleX = symbolTo.scaleY = invScale * percent;\n      symbolTo.markRedraw();\n    }\n\n    if (label && !label.ignore) {\n      label.x = label.y = 0;\n      label.originX = label.originY = 0;\n      var textAlign = void 0;\n      var textVerticalAlign = void 0;\n      var distance = label.__labelDistance;\n      var distanceX = distance[0] * invScale;\n      var distanceY = distance[1] * invScale;\n      var halfPercent = percent / 2;\n      var tangent = line.tangentAt(halfPercent);\n      var n = [tangent[1], -tangent[0]];\n      var cp = line.pointAt(halfPercent);\n\n      if (n[1] > 0) {\n        n[0] = -n[0];\n        n[1] = -n[1];\n      }\n\n      var dir = tangent[0] < 0 ? -1 : 1;\n\n      if (label.__position !== 'start' && label.__position !== 'end') {\n        var rotation = -Math.atan2(tangent[1], tangent[0]);\n\n        if (toPos[0] < fromPos[0]) {\n          rotation = Math.PI + rotation;\n        }\n\n        label.rotation = rotation;\n      }\n\n      var dy = void 0;\n\n      switch (label.__position) {\n        case 'insideStartTop':\n        case 'insideMiddleTop':\n        case 'insideEndTop':\n        case 'middle':\n          dy = -distanceY;\n          textVerticalAlign = 'bottom';\n          break;\n\n        case 'insideStartBottom':\n        case 'insideMiddleBottom':\n        case 'insideEndBottom':\n          dy = distanceY;\n          textVerticalAlign = 'top';\n          break;\n\n        default:\n          dy = 0;\n          textVerticalAlign = 'middle';\n      }\n\n      switch (label.__position) {\n        case 'end':\n          label.x = d[0] * distanceX + toPos[0];\n          label.y = d[1] * distanceY + toPos[1];\n          textAlign = d[0] > 0.8 ? 'left' : d[0] < -0.8 ? 'right' : 'center';\n          textVerticalAlign = d[1] > 0.8 ? 'top' : d[1] < -0.8 ? 'bottom' : 'middle';\n          break;\n\n        case 'start':\n          label.x = -d[0] * distanceX + fromPos[0];\n          label.y = -d[1] * distanceY + fromPos[1];\n          textAlign = d[0] > 0.8 ? 'right' : d[0] < -0.8 ? 'left' : 'center';\n          textVerticalAlign = d[1] > 0.8 ? 'bottom' : d[1] < -0.8 ? 'top' : 'middle';\n          break;\n\n        case 'insideStartTop':\n        case 'insideStart':\n        case 'insideStartBottom':\n          label.x = distanceX * dir + fromPos[0];\n          label.y = fromPos[1] + dy;\n          textAlign = tangent[0] < 0 ? 'right' : 'left';\n          label.originX = -distanceX * dir;\n          label.originY = -dy;\n          break;\n\n        case 'insideMiddleTop':\n        case 'insideMiddle':\n        case 'insideMiddleBottom':\n        case 'middle':\n          label.x = cp[0];\n          label.y = cp[1] + dy;\n          textAlign = 'center';\n          label.originY = -dy;\n          break;\n\n        case 'insideEndTop':\n        case 'insideEnd':\n        case 'insideEndBottom':\n          label.x = -distanceX * dir + toPos[0];\n          label.y = toPos[1] + dy;\n          textAlign = tangent[0] >= 0 ? 'right' : 'left';\n          label.originX = distanceX * dir;\n          label.originY = -dy;\n          break;\n      }\n\n      label.scaleX = label.scaleY = invScale;\n      label.setStyle({\n        verticalAlign: label.__verticalAlign || textVerticalAlign,\n        align: label.__align || textAlign\n      });\n    }\n  };\n\n  return Line;\n}(graphic.Group);\n\nexport default Line;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as graphic from '../../util/graphic';\nimport LineGroup from './Line';\nimport { getLabelStatesModels } from '../../label/labelStyle';\n\nvar LineDraw = function () {\n  function LineDraw(LineCtor) {\n    this.group = new graphic.Group();\n    this._LineCtor = LineCtor || LineGroup;\n  }\n\n  LineDraw.prototype.isPersistent = function () {\n    return true;\n  };\n\n  ;\n\n  LineDraw.prototype.updateData = function (lineData) {\n    var _this = this;\n\n    var lineDraw = this;\n    var group = lineDraw.group;\n    var oldLineData = lineDraw._lineData;\n    lineDraw._lineData = lineData;\n\n    if (!oldLineData) {\n      group.removeAll();\n    }\n\n    var seriesScope = makeSeriesScope(lineData);\n    lineData.diff(oldLineData).add(function (idx) {\n      _this._doAdd(lineData, idx, seriesScope);\n    }).update(function (newIdx, oldIdx) {\n      _this._doUpdate(oldLineData, lineData, oldIdx, newIdx, seriesScope);\n    }).remove(function (idx) {\n      group.remove(oldLineData.getItemGraphicEl(idx));\n    }).execute();\n  };\n\n  ;\n\n  LineDraw.prototype.updateLayout = function () {\n    var lineData = this._lineData;\n\n    if (!lineData) {\n      return;\n    }\n\n    lineData.eachItemGraphicEl(function (el, idx) {\n      el.updateLayout(lineData, idx);\n    }, this);\n  };\n\n  ;\n\n  LineDraw.prototype.incrementalPrepareUpdate = function (lineData) {\n    this._seriesScope = makeSeriesScope(lineData);\n    this._lineData = null;\n    this.group.removeAll();\n  };\n\n  ;\n\n  LineDraw.prototype.incrementalUpdate = function (taskParams, lineData) {\n    function updateIncrementalAndHover(el) {\n      if (!el.isGroup && !isEffectObject(el)) {\n        el.incremental = true;\n        el.ensureState('emphasis').hoverLayer = true;\n      }\n    }\n\n    for (var idx = taskParams.start; idx < taskParams.end; idx++) {\n      var itemLayout = lineData.getItemLayout(idx);\n\n      if (lineNeedsDraw(itemLayout)) {\n        var el = new this._LineCtor(lineData, idx, this._seriesScope);\n        el.traverse(updateIncrementalAndHover);\n        this.group.add(el);\n        lineData.setItemGraphicEl(idx, el);\n      }\n    }\n  };\n\n  ;\n\n  LineDraw.prototype.remove = function () {\n    this.group.removeAll();\n  };\n\n  ;\n\n  LineDraw.prototype._doAdd = function (lineData, idx, seriesScope) {\n    var itemLayout = lineData.getItemLayout(idx);\n\n    if (!lineNeedsDraw(itemLayout)) {\n      return;\n    }\n\n    var el = new this._LineCtor(lineData, idx, seriesScope);\n    lineData.setItemGraphicEl(idx, el);\n    this.group.add(el);\n  };\n\n  LineDraw.prototype._doUpdate = function (oldLineData, newLineData, oldIdx, newIdx, seriesScope) {\n    var itemEl = oldLineData.getItemGraphicEl(oldIdx);\n\n    if (!lineNeedsDraw(newLineData.getItemLayout(newIdx))) {\n      this.group.remove(itemEl);\n      return;\n    }\n\n    if (!itemEl) {\n      itemEl = new this._LineCtor(newLineData, newIdx, seriesScope);\n    } else {\n      itemEl.updateData(newLineData, newIdx, seriesScope);\n    }\n\n    newLineData.setItemGraphicEl(newIdx, itemEl);\n    this.group.add(itemEl);\n  };\n\n  return LineDraw;\n}();\n\nfunction isEffectObject(el) {\n  return el.animators && el.animators.length > 0;\n}\n\nfunction makeSeriesScope(lineData) {\n  var hostModel = lineData.hostModel;\n  return {\n    lineStyle: hostModel.getModel('lineStyle').getLineStyle(),\n    emphasisLineStyle: hostModel.getModel(['emphasis', 'lineStyle']).getLineStyle(),\n    blurLineStyle: hostModel.getModel(['blur', 'lineStyle']).getLineStyle(),\n    selectLineStyle: hostModel.getModel(['select', 'lineStyle']).getLineStyle(),\n    labelStatesModels: getLabelStatesModels(hostModel)\n  };\n}\n\nfunction isPointNaN(pt) {\n  return isNaN(pt[0]) || isNaN(pt[1]);\n}\n\nfunction lineNeedsDraw(pts) {\n  return !isPointNaN(pts[0]) && !isPointNaN(pts[1]);\n}\n\nexport default LineDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as curveTool from 'zrender/lib/core/curve';\nimport * as vec2 from 'zrender/lib/core/vector';\nimport { getSymbolSize } from './graphHelper';\nvar v1 = [];\nvar v2 = [];\nvar v3 = [];\nvar quadraticAt = curveTool.quadraticAt;\nvar v2DistSquare = vec2.distSquare;\nvar mathAbs = Math.abs;\n\nfunction intersectCurveCircle(curvePoints, center, radius) {\n  var p0 = curvePoints[0];\n  var p1 = curvePoints[1];\n  var p2 = curvePoints[2];\n  var d = Infinity;\n  var t;\n  var radiusSquare = radius * radius;\n  var interval = 0.1;\n\n  for (var _t = 0.1; _t <= 0.9; _t += 0.1) {\n    v1[0] = quadraticAt(p0[0], p1[0], p2[0], _t);\n    v1[1] = quadraticAt(p0[1], p1[1], p2[1], _t);\n    var diff = mathAbs(v2DistSquare(v1, center) - radiusSquare);\n\n    if (diff < d) {\n      d = diff;\n      t = _t;\n    }\n  }\n\n  for (var i = 0; i < 32; i++) {\n    var next = t + interval;\n    v2[0] = quadraticAt(p0[0], p1[0], p2[0], t);\n    v2[1] = quadraticAt(p0[1], p1[1], p2[1], t);\n    v3[0] = quadraticAt(p0[0], p1[0], p2[0], next);\n    v3[1] = quadraticAt(p0[1], p1[1], p2[1], next);\n    var diff = v2DistSquare(v2, center) - radiusSquare;\n\n    if (mathAbs(diff) < 1e-2) {\n      break;\n    }\n\n    var nextDiff = v2DistSquare(v3, center) - radiusSquare;\n    interval /= 2;\n\n    if (diff < 0) {\n      if (nextDiff >= 0) {\n        t = t + interval;\n      } else {\n        t = t - interval;\n      }\n    } else {\n      if (nextDiff >= 0) {\n        t = t - interval;\n      } else {\n        t = t + interval;\n      }\n    }\n  }\n\n  return t;\n}\n\nexport default function adjustEdge(graph, scale) {\n  var tmp0 = [];\n  var quadraticSubdivide = curveTool.quadraticSubdivide;\n  var pts = [[], [], []];\n  var pts2 = [[], []];\n  var v = [];\n  scale /= 2;\n  graph.eachEdge(function (edge, idx) {\n    var linePoints = edge.getLayout();\n    var fromSymbol = edge.getVisual('fromSymbol');\n    var toSymbol = edge.getVisual('toSymbol');\n\n    if (!linePoints.__original) {\n      linePoints.__original = [vec2.clone(linePoints[0]), vec2.clone(linePoints[1])];\n\n      if (linePoints[2]) {\n        linePoints.__original.push(vec2.clone(linePoints[2]));\n      }\n    }\n\n    var originalPoints = linePoints.__original;\n\n    if (linePoints[2] != null) {\n      vec2.copy(pts[0], originalPoints[0]);\n      vec2.copy(pts[1], originalPoints[2]);\n      vec2.copy(pts[2], originalPoints[1]);\n\n      if (fromSymbol && fromSymbol !== 'none') {\n        var symbolSize = getSymbolSize(edge.node1);\n        var t = intersectCurveCircle(pts, originalPoints[0], symbolSize * scale);\n        quadraticSubdivide(pts[0][0], pts[1][0], pts[2][0], t, tmp0);\n        pts[0][0] = tmp0[3];\n        pts[1][0] = tmp0[4];\n        quadraticSubdivide(pts[0][1], pts[1][1], pts[2][1], t, tmp0);\n        pts[0][1] = tmp0[3];\n        pts[1][1] = tmp0[4];\n      }\n\n      if (toSymbol && toSymbol !== 'none') {\n        var symbolSize = getSymbolSize(edge.node2);\n        var t = intersectCurveCircle(pts, originalPoints[1], symbolSize * scale);\n        quadraticSubdivide(pts[0][0], pts[1][0], pts[2][0], t, tmp0);\n        pts[1][0] = tmp0[1];\n        pts[2][0] = tmp0[2];\n        quadraticSubdivide(pts[0][1], pts[1][1], pts[2][1], t, tmp0);\n        pts[1][1] = tmp0[1];\n        pts[2][1] = tmp0[2];\n      }\n\n      vec2.copy(linePoints[0], pts[0]);\n      vec2.copy(linePoints[1], pts[2]);\n      vec2.copy(linePoints[2], pts[1]);\n    } else {\n      vec2.copy(pts2[0], originalPoints[0]);\n      vec2.copy(pts2[1], originalPoints[1]);\n      vec2.sub(v, pts2[1], pts2[0]);\n      vec2.normalize(v, v);\n\n      if (fromSymbol && fromSymbol !== 'none') {\n        var symbolSize = getSymbolSize(edge.node1);\n        vec2.scaleAndAdd(pts2[0], pts2[0], v, symbolSize * scale);\n      }\n\n      if (toSymbol && toSymbol !== 'none') {\n        var symbolSize = getSymbolSize(edge.node2);\n        vec2.scaleAndAdd(pts2[1], pts2[1], v, -symbolSize * scale);\n      }\n\n      vec2.copy(linePoints[0], pts2[0]);\n      vec2.copy(linePoints[1], pts2[1]);\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport SymbolDraw from '../helper/SymbolDraw';\nimport LineDraw from '../helper/LineDraw';\nimport RoamController from '../../component/helper/RoamController';\nimport * as roamHelper from '../../component/helper/roamHelper';\nimport { onIrrelevantElement } from '../../component/helper/cursorHelper';\nimport * as graphic from '../../util/graphic';\nimport adjustEdge from './adjustEdge';\nimport { getNodeGlobalScale } from './graphHelper';\nimport ChartView from '../../view/Chart';\nimport { getECData } from '../../util/innerStore';\n\nfunction isViewCoordSys(coordSys) {\n  return coordSys.type === 'view';\n}\n\nvar GraphView = function (_super) {\n  __extends(GraphView, _super);\n\n  function GraphView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GraphView.type;\n    return _this;\n  }\n\n  GraphView.prototype.init = function (ecModel, api) {\n    var symbolDraw = new SymbolDraw();\n    var lineDraw = new LineDraw();\n    var group = this.group;\n    this._controller = new RoamController(api.getZr());\n    this._controllerHost = {\n      target: group\n    };\n    group.add(symbolDraw.group);\n    group.add(lineDraw.group);\n    this._symbolDraw = symbolDraw;\n    this._lineDraw = lineDraw;\n    this._firstRender = true;\n  };\n\n  GraphView.prototype.render = function (seriesModel, ecModel, api) {\n    var _this = this;\n\n    var coordSys = seriesModel.coordinateSystem;\n    this._model = seriesModel;\n    var symbolDraw = this._symbolDraw;\n    var lineDraw = this._lineDraw;\n    var group = this.group;\n\n    if (isViewCoordSys(coordSys)) {\n      var groupNewProp = {\n        x: coordSys.x,\n        y: coordSys.y,\n        scaleX: coordSys.scaleX,\n        scaleY: coordSys.scaleY\n      };\n\n      if (this._firstRender) {\n        group.attr(groupNewProp);\n      } else {\n        graphic.updateProps(group, groupNewProp, seriesModel);\n      }\n    }\n\n    adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));\n    var data = seriesModel.getData();\n    symbolDraw.updateData(data);\n    var edgeData = seriesModel.getEdgeData();\n    lineDraw.updateData(edgeData);\n\n    this._updateNodeAndLinkScale();\n\n    this._updateController(seriesModel, ecModel, api);\n\n    clearTimeout(this._layoutTimeout);\n    var forceLayout = seriesModel.forceLayout;\n    var layoutAnimation = seriesModel.get(['force', 'layoutAnimation']);\n\n    if (forceLayout) {\n      this._startForceLayoutIteration(forceLayout, layoutAnimation);\n    }\n\n    data.graph.eachNode(function (node) {\n      var idx = node.dataIndex;\n      var el = node.getGraphicEl();\n      var itemModel = node.getModel();\n      el.off('drag').off('dragend');\n      var draggable = itemModel.get('draggable');\n\n      if (draggable) {\n        el.on('drag', function () {\n          if (forceLayout) {\n            forceLayout.warmUp();\n            !_this._layouting && _this._startForceLayoutIteration(forceLayout, layoutAnimation);\n            forceLayout.setFixed(idx);\n            data.setItemLayout(idx, [el.x, el.y]);\n          }\n        }).on('dragend', function () {\n          if (forceLayout) {\n            forceLayout.setUnfixed(idx);\n          }\n        });\n      }\n\n      el.setDraggable(draggable && !!forceLayout);\n      var focus = itemModel.get(['emphasis', 'focus']);\n\n      if (focus === 'adjacency') {\n        getECData(el).focus = node.getAdjacentDataIndices();\n      }\n    });\n    data.graph.eachEdge(function (edge) {\n      var el = edge.getGraphicEl();\n      var focus = edge.getModel().get(['emphasis', 'focus']);\n\n      if (focus === 'adjacency') {\n        getECData(el).focus = {\n          edge: [edge.dataIndex],\n          node: [edge.node1.dataIndex, edge.node2.dataIndex]\n        };\n      }\n    });\n    var circularRotateLabel = seriesModel.get('layout') === 'circular' && seriesModel.get(['circular', 'rotateLabel']);\n    var cx = data.getLayout('cx');\n    var cy = data.getLayout('cy');\n    data.eachItemGraphicEl(function (el, idx) {\n      var itemModel = data.getItemModel(idx);\n      var labelRotate = itemModel.get(['label', 'rotate']) || 0;\n      var symbolPath = el.getSymbolPath();\n\n      if (circularRotateLabel) {\n        var pos = data.getItemLayout(idx);\n        var rad = Math.atan2(pos[1] - cy, pos[0] - cx);\n\n        if (rad < 0) {\n          rad = Math.PI * 2 + rad;\n        }\n\n        var isLeft = pos[0] < cx;\n\n        if (isLeft) {\n          rad = rad - Math.PI;\n        }\n\n        var textPosition = isLeft ? 'left' : 'right';\n        symbolPath.setTextConfig({\n          rotation: -rad,\n          position: textPosition,\n          origin: 'center'\n        });\n        var emphasisState = symbolPath.ensureState('emphasis');\n        zrUtil.extend(emphasisState.textConfig || (emphasisState.textConfig = {}), {\n          position: textPosition\n        });\n      } else {\n        symbolPath.setTextConfig({\n          rotation: labelRotate *= Math.PI / 180\n        });\n      }\n    });\n    this._firstRender = false;\n  };\n\n  GraphView.prototype.dispose = function () {\n    this._controller && this._controller.dispose();\n    this._controllerHost = null;\n  };\n\n  GraphView.prototype._startForceLayoutIteration = function (forceLayout, layoutAnimation) {\n    var self = this;\n\n    (function step() {\n      forceLayout.step(function (stopped) {\n        self.updateLayout(self._model);\n        (self._layouting = !stopped) && (layoutAnimation ? self._layoutTimeout = setTimeout(step, 16) : step());\n      });\n    })();\n  };\n\n  GraphView.prototype._updateController = function (seriesModel, ecModel, api) {\n    var _this = this;\n\n    var controller = this._controller;\n    var controllerHost = this._controllerHost;\n    var group = this.group;\n    controller.setPointerChecker(function (e, x, y) {\n      var rect = group.getBoundingRect();\n      rect.applyTransform(group.transform);\n      return rect.contain(x, y) && !onIrrelevantElement(e, api, seriesModel);\n    });\n\n    if (!isViewCoordSys(seriesModel.coordinateSystem)) {\n      controller.disable();\n      return;\n    }\n\n    controller.enable(seriesModel.get('roam'));\n    controllerHost.zoomLimit = seriesModel.get('scaleLimit');\n    controllerHost.zoom = seriesModel.coordinateSystem.getZoom();\n    controller.off('pan').off('zoom').on('pan', function (e) {\n      roamHelper.updateViewOnPan(controllerHost, e.dx, e.dy);\n      api.dispatchAction({\n        seriesId: seriesModel.id,\n        type: 'graphRoam',\n        dx: e.dx,\n        dy: e.dy\n      });\n    }).on('zoom', function (e) {\n      roamHelper.updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\n      api.dispatchAction({\n        seriesId: seriesModel.id,\n        type: 'graphRoam',\n        zoom: e.scale,\n        originX: e.originX,\n        originY: e.originY\n      });\n\n      _this._updateNodeAndLinkScale();\n\n      adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));\n\n      _this._lineDraw.updateLayout();\n\n      api.updateLabelLayout();\n    });\n  };\n\n  GraphView.prototype._updateNodeAndLinkScale = function () {\n    var seriesModel = this._model;\n    var data = seriesModel.getData();\n    var nodeScale = getNodeGlobalScale(seriesModel);\n    data.eachItemGraphicEl(function (el, idx) {\n      el.setSymbolScale(nodeScale);\n    });\n  };\n\n  GraphView.prototype.updateLayout = function (seriesModel) {\n    adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));\n\n    this._symbolDraw.updateLayout();\n\n    this._lineDraw.updateLayout();\n  };\n\n  GraphView.prototype.remove = function (ecModel, api) {\n    this._symbolDraw && this._symbolDraw.remove();\n    this._lineDraw && this._lineDraw.remove();\n  };\n\n  GraphView.type = 'graph';\n  return GraphView;\n}(ChartView);\n\nexport default GraphView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nfunction generateNodeKey(id) {\n  return '_EC_' + id;\n}\n\nvar Graph = function () {\n  function Graph(directed) {\n    this.type = 'graph';\n    this.nodes = [];\n    this.edges = [];\n    this._nodesMap = {};\n    this._edgesMap = {};\n    this._directed = directed || false;\n  }\n\n  Graph.prototype.isDirected = function () {\n    return this._directed;\n  };\n\n  ;\n\n  Graph.prototype.addNode = function (id, dataIndex) {\n    id = id == null ? '' + dataIndex : '' + id;\n    var nodesMap = this._nodesMap;\n\n    if (nodesMap[generateNodeKey(id)]) {\n      if (process.env.NODE_ENV !== 'production') {\n        console.error('Graph nodes have duplicate name or id');\n      }\n\n      return;\n    }\n\n    var node = new GraphNode(id, dataIndex);\n    node.hostGraph = this;\n    this.nodes.push(node);\n    nodesMap[generateNodeKey(id)] = node;\n    return node;\n  };\n\n  ;\n\n  Graph.prototype.getNodeByIndex = function (dataIndex) {\n    var rawIdx = this.data.getRawIndex(dataIndex);\n    return this.nodes[rawIdx];\n  };\n\n  ;\n\n  Graph.prototype.getNodeById = function (id) {\n    return this._nodesMap[generateNodeKey(id)];\n  };\n\n  ;\n\n  Graph.prototype.addEdge = function (n1, n2, dataIndex) {\n    var nodesMap = this._nodesMap;\n    var edgesMap = this._edgesMap;\n\n    if (typeof n1 === 'number') {\n      n1 = this.nodes[n1];\n    }\n\n    if (typeof n2 === 'number') {\n      n2 = this.nodes[n2];\n    }\n\n    if (!(n1 instanceof GraphNode)) {\n      n1 = nodesMap[generateNodeKey(n1)];\n    }\n\n    if (!(n2 instanceof GraphNode)) {\n      n2 = nodesMap[generateNodeKey(n2)];\n    }\n\n    if (!n1 || !n2) {\n      return;\n    }\n\n    var key = n1.id + '-' + n2.id;\n    var edge = new GraphEdge(n1, n2, dataIndex);\n    edge.hostGraph = this;\n\n    if (this._directed) {\n      n1.outEdges.push(edge);\n      n2.inEdges.push(edge);\n    }\n\n    n1.edges.push(edge);\n\n    if (n1 !== n2) {\n      n2.edges.push(edge);\n    }\n\n    this.edges.push(edge);\n    edgesMap[key] = edge;\n    return edge;\n  };\n\n  ;\n\n  Graph.prototype.getEdgeByIndex = function (dataIndex) {\n    var rawIdx = this.edgeData.getRawIndex(dataIndex);\n    return this.edges[rawIdx];\n  };\n\n  ;\n\n  Graph.prototype.getEdge = function (n1, n2) {\n    if (n1 instanceof GraphNode) {\n      n1 = n1.id;\n    }\n\n    if (n2 instanceof GraphNode) {\n      n2 = n2.id;\n    }\n\n    var edgesMap = this._edgesMap;\n\n    if (this._directed) {\n      return edgesMap[n1 + '-' + n2];\n    } else {\n      return edgesMap[n1 + '-' + n2] || edgesMap[n2 + '-' + n1];\n    }\n  };\n\n  ;\n\n  Graph.prototype.eachNode = function (cb, context) {\n    var nodes = this.nodes;\n    var len = nodes.length;\n\n    for (var i = 0; i < len; i++) {\n      if (nodes[i].dataIndex >= 0) {\n        cb.call(context, nodes[i], i);\n      }\n    }\n  };\n\n  ;\n\n  Graph.prototype.eachEdge = function (cb, context) {\n    var edges = this.edges;\n    var len = edges.length;\n\n    for (var i = 0; i < len; i++) {\n      if (edges[i].dataIndex >= 0 && edges[i].node1.dataIndex >= 0 && edges[i].node2.dataIndex >= 0) {\n        cb.call(context, edges[i], i);\n      }\n    }\n  };\n\n  ;\n\n  Graph.prototype.breadthFirstTraverse = function (cb, startNode, direction, context) {\n    if (!(startNode instanceof GraphNode)) {\n      startNode = this._nodesMap[generateNodeKey(startNode)];\n    }\n\n    if (!startNode) {\n      return;\n    }\n\n    var edgeType = direction === 'out' ? 'outEdges' : direction === 'in' ? 'inEdges' : 'edges';\n\n    for (var i = 0; i < this.nodes.length; i++) {\n      this.nodes[i].__visited = false;\n    }\n\n    if (cb.call(context, startNode, null)) {\n      return;\n    }\n\n    var queue = [startNode];\n\n    while (queue.length) {\n      var currentNode = queue.shift();\n      var edges = currentNode[edgeType];\n\n      for (var i = 0; i < edges.length; i++) {\n        var e = edges[i];\n        var otherNode = e.node1 === currentNode ? e.node2 : e.node1;\n\n        if (!otherNode.__visited) {\n          if (cb.call(context, otherNode, currentNode)) {\n            return;\n          }\n\n          queue.push(otherNode);\n          otherNode.__visited = true;\n        }\n      }\n    }\n  };\n\n  ;\n\n  Graph.prototype.update = function () {\n    var data = this.data;\n    var edgeData = this.edgeData;\n    var nodes = this.nodes;\n    var edges = this.edges;\n\n    for (var i = 0, len = nodes.length; i < len; i++) {\n      nodes[i].dataIndex = -1;\n    }\n\n    for (var i = 0, len = data.count(); i < len; i++) {\n      nodes[data.getRawIndex(i)].dataIndex = i;\n    }\n\n    edgeData.filterSelf(function (idx) {\n      var edge = edges[edgeData.getRawIndex(idx)];\n      return edge.node1.dataIndex >= 0 && edge.node2.dataIndex >= 0;\n    });\n\n    for (var i = 0, len = edges.length; i < len; i++) {\n      edges[i].dataIndex = -1;\n    }\n\n    for (var i = 0, len = edgeData.count(); i < len; i++) {\n      edges[edgeData.getRawIndex(i)].dataIndex = i;\n    }\n  };\n\n  ;\n\n  Graph.prototype.clone = function () {\n    var graph = new Graph(this._directed);\n    var nodes = this.nodes;\n    var edges = this.edges;\n\n    for (var i = 0; i < nodes.length; i++) {\n      graph.addNode(nodes[i].id, nodes[i].dataIndex);\n    }\n\n    for (var i = 0; i < edges.length; i++) {\n      var e = edges[i];\n      graph.addEdge(e.node1.id, e.node2.id, e.dataIndex);\n    }\n\n    return graph;\n  };\n\n  ;\n  return Graph;\n}();\n\nvar GraphNode = function () {\n  function GraphNode(id, dataIndex) {\n    this.inEdges = [];\n    this.outEdges = [];\n    this.edges = [];\n    this.dataIndex = -1;\n    this.id = id == null ? '' : id;\n    this.dataIndex = dataIndex == null ? -1 : dataIndex;\n  }\n\n  GraphNode.prototype.degree = function () {\n    return this.edges.length;\n  };\n\n  GraphNode.prototype.inDegree = function () {\n    return this.inEdges.length;\n  };\n\n  GraphNode.prototype.outDegree = function () {\n    return this.outEdges.length;\n  };\n\n  GraphNode.prototype.getModel = function (path) {\n    if (this.dataIndex < 0) {\n      return;\n    }\n\n    var graph = this.hostGraph;\n    var itemModel = graph.data.getItemModel(this.dataIndex);\n    return itemModel.getModel(path);\n  };\n\n  GraphNode.prototype.getAdjacentDataIndices = function () {\n    var dataIndices = {\n      edge: [],\n      node: []\n    };\n\n    for (var i = 0; i < this.edges.length; i++) {\n      var adjacentEdge = this.edges[i];\n\n      if (adjacentEdge.dataIndex < 0) {\n        continue;\n      }\n\n      dataIndices.edge.push(adjacentEdge.dataIndex);\n      dataIndices.node.push(adjacentEdge.node1.dataIndex, adjacentEdge.node2.dataIndex);\n    }\n\n    return dataIndices;\n  };\n\n  return GraphNode;\n}();\n\nvar GraphEdge = function () {\n  function GraphEdge(n1, n2, dataIndex) {\n    this.dataIndex = -1;\n    this.node1 = n1;\n    this.node2 = n2;\n    this.dataIndex = dataIndex == null ? -1 : dataIndex;\n  }\n\n  GraphEdge.prototype.getModel = function (path) {\n    if (this.dataIndex < 0) {\n      return;\n    }\n\n    var graph = this.hostGraph;\n    var itemModel = graph.edgeData.getItemModel(this.dataIndex);\n    return itemModel.getModel(path);\n  };\n\n  GraphEdge.prototype.getAdjacentDataIndices = function () {\n    return {\n      edge: [this.dataIndex],\n      node: [this.node1.dataIndex, this.node2.dataIndex]\n    };\n  };\n\n  return GraphEdge;\n}();\n\nfunction createGraphDataProxyMixin(hostName, dataName) {\n  return {\n    getValue: function (dimension) {\n      var data = this[hostName][dataName];\n      return data.get(data.getDimension(dimension || 'value'), this.dataIndex);\n    },\n    setVisual: function (key, value) {\n      this.dataIndex >= 0 && this[hostName][dataName].setItemVisual(this.dataIndex, key, value);\n    },\n    getVisual: function (key) {\n      return this[hostName][dataName].getItemVisual(this.dataIndex, key);\n    },\n    setLayout: function (layout, merge) {\n      this.dataIndex >= 0 && this[hostName][dataName].setItemLayout(this.dataIndex, layout, merge);\n    },\n    getLayout: function () {\n      return this[hostName][dataName].getItemLayout(this.dataIndex);\n    },\n    getGraphicEl: function () {\n      return this[hostName][dataName].getItemGraphicEl(this.dataIndex);\n    },\n    getRawIndex: function () {\n      return this[hostName][dataName].getRawIndex(this.dataIndex);\n    }\n  };\n}\n\n;\n;\n;\nzrUtil.mixin(GraphNode, createGraphDataProxyMixin('hostGraph', 'data'));\nzrUtil.mixin(GraphEdge, createGraphDataProxyMixin('hostGraph', 'edgeData'));\nexport default Graph;\nexport { GraphNode, GraphEdge };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport List from '../../data/List';\nimport Graph from '../../data/Graph';\nimport linkList from '../../data/helper/linkList';\nimport createDimensions from '../../data/helper/createDimensions';\nimport CoordinateSystem from '../../core/CoordinateSystem';\nimport createListFromArray from './createListFromArray';\nimport { convertOptionIdName } from '../../util/model';\nexport default function createGraphFromNodeEdge(nodes, edges, seriesModel, directed, beforeLink) {\n  var graph = new Graph(directed);\n\n  for (var i = 0; i < nodes.length; i++) {\n    graph.addNode(zrUtil.retrieve(nodes[i].id, nodes[i].name, i), i);\n  }\n\n  var linkNameList = [];\n  var validEdges = [];\n  var linkCount = 0;\n\n  for (var i = 0; i < edges.length; i++) {\n    var link = edges[i];\n    var source = link.source;\n    var target = link.target;\n\n    if (graph.addEdge(source, target, linkCount)) {\n      validEdges.push(link);\n      linkNameList.push(zrUtil.retrieve(convertOptionIdName(link.id, null), source + ' > ' + target));\n      linkCount++;\n    }\n  }\n\n  var coordSys = seriesModel.get('coordinateSystem');\n  var nodeData;\n\n  if (coordSys === 'cartesian2d' || coordSys === 'polar') {\n    nodeData = createListFromArray(nodes, seriesModel);\n  } else {\n    var coordSysCtor = CoordinateSystem.get(coordSys);\n    var coordDimensions = coordSysCtor ? coordSysCtor.dimensions || [] : [];\n\n    if (zrUtil.indexOf(coordDimensions, 'value') < 0) {\n      coordDimensions.concat(['value']);\n    }\n\n    var dimensionNames = createDimensions(nodes, {\n      coordDimensions: coordDimensions\n    });\n    nodeData = new List(dimensionNames, seriesModel);\n    nodeData.initData(nodes);\n  }\n\n  var edgeData = new List(['value'], seriesModel);\n  edgeData.initData(validEdges, linkNameList);\n  beforeLink && beforeLink(nodeData, edgeData);\n  linkList({\n    mainData: nodeData,\n    struct: graph,\n    structAttr: 'graph',\n    datas: {\n      node: nodeData,\n      edge: edgeData\n    },\n    datasAttr: {\n      node: 'data',\n      edge: 'edgeData'\n    }\n  });\n  graph.update();\n  return graph;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport List from '../../data/List';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { defaultEmphasis } from '../../util/model';\nimport Model from '../../model/Model';\nimport createGraphFromNodeEdge from '../helper/createGraphFromNodeEdge';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider';\nimport SeriesModel from '../../model/Series';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup';\nimport { defaultSeriesFormatTooltip } from '../../component/tooltip/seriesFormatTooltip';\nimport { initCurvenessList, createEdgeMapForCurveness } from '../helper/multipleGraphEdgeHelper';\n\nvar GraphSeriesModel = function (_super) {\n  __extends(GraphSeriesModel, _super);\n\n  function GraphSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GraphSeriesModel.type;\n    _this.hasSymbolVisual = true;\n    return _this;\n  }\n\n  GraphSeriesModel.prototype.init = function (option) {\n    _super.prototype.init.apply(this, arguments);\n\n    var self = this;\n\n    function getCategoriesData() {\n      return self._categoriesData;\n    }\n\n    this.legendVisualProvider = new LegendVisualProvider(getCategoriesData, getCategoriesData);\n    this.fillDataTextStyle(option.edges || option.links);\n\n    this._updateCategoriesData();\n  };\n\n  GraphSeriesModel.prototype.mergeOption = function (option) {\n    _super.prototype.mergeOption.apply(this, arguments);\n\n    this.fillDataTextStyle(option.edges || option.links);\n\n    this._updateCategoriesData();\n  };\n\n  GraphSeriesModel.prototype.mergeDefaultAndTheme = function (option) {\n    _super.prototype.mergeDefaultAndTheme.apply(this, arguments);\n\n    defaultEmphasis(option, 'edgeLabel', ['show']);\n  };\n\n  GraphSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    var edges = option.edges || option.links || [];\n    var nodes = option.data || option.nodes || [];\n    var self = this;\n\n    if (nodes && edges) {\n      initCurvenessList(this);\n      var graph = createGraphFromNodeEdge(nodes, edges, this, true, beforeLink);\n      zrUtil.each(graph.edges, function (edge) {\n        createEdgeMapForCurveness(edge.node1, edge.node2, this, edge.dataIndex);\n      }, this);\n      return graph.data;\n    }\n\n    function beforeLink(nodeData, edgeData) {\n      nodeData.wrapMethod('getItemModel', function (model) {\n        var categoriesModels = self._categoriesModels;\n        var categoryIdx = model.getShallow('category');\n        var categoryModel = categoriesModels[categoryIdx];\n\n        if (categoryModel) {\n          categoryModel.parentModel = model.parentModel;\n          model.parentModel = categoryModel;\n        }\n\n        return model;\n      });\n      var oldGetModel = Model.prototype.getModel;\n\n      function newGetModel(path, parentModel) {\n        var model = oldGetModel.call(this, path, parentModel);\n        model.resolveParentPath = resolveParentPath;\n        return model;\n      }\n\n      edgeData.wrapMethod('getItemModel', function (model) {\n        model.resolveParentPath = resolveParentPath;\n        model.getModel = newGetModel;\n        return model;\n      });\n\n      function resolveParentPath(pathArr) {\n        if (pathArr && (pathArr[0] === 'label' || pathArr[1] === 'label')) {\n          var newPathArr = pathArr.slice();\n\n          if (pathArr[0] === 'label') {\n            newPathArr[0] = 'edgeLabel';\n          } else if (pathArr[1] === 'label') {\n            newPathArr[1] = 'edgeLabel';\n          }\n\n          return newPathArr;\n        }\n\n        return pathArr;\n      }\n    }\n  };\n\n  GraphSeriesModel.prototype.getGraph = function () {\n    return this.getData().graph;\n  };\n\n  GraphSeriesModel.prototype.getEdgeData = function () {\n    return this.getGraph().edgeData;\n  };\n\n  GraphSeriesModel.prototype.getCategoriesData = function () {\n    return this._categoriesData;\n  };\n\n  GraphSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    if (dataType === 'edge') {\n      var nodeData = this.getData();\n      var params = this.getDataParams(dataIndex, dataType);\n      var edge = nodeData.graph.getEdgeByIndex(dataIndex);\n      var sourceName = nodeData.getName(edge.node1.dataIndex);\n      var targetName = nodeData.getName(edge.node2.dataIndex);\n      var nameArr = [];\n      sourceName != null && nameArr.push(sourceName);\n      targetName != null && nameArr.push(targetName);\n      return createTooltipMarkup('nameValue', {\n        name: nameArr.join(' > '),\n        value: params.value,\n        noValue: params.value == null\n      });\n    }\n\n    var nodeMarkup = defaultSeriesFormatTooltip({\n      series: this,\n      dataIndex: dataIndex,\n      multipleSeries: multipleSeries\n    });\n    return nodeMarkup;\n  };\n\n  GraphSeriesModel.prototype._updateCategoriesData = function () {\n    var categories = zrUtil.map(this.option.categories || [], function (category) {\n      return category.value != null ? category : zrUtil.extend({\n        value: 0\n      }, category);\n    });\n    var categoriesData = new List(['value'], this);\n    categoriesData.initData(categories);\n    this._categoriesData = categoriesData;\n    this._categoriesModels = categoriesData.mapArray(function (idx) {\n      return categoriesData.getItemModel(idx);\n    });\n  };\n\n  GraphSeriesModel.prototype.setZoom = function (zoom) {\n    this.option.zoom = zoom;\n  };\n\n  GraphSeriesModel.prototype.setCenter = function (center) {\n    this.option.center = center;\n  };\n\n  GraphSeriesModel.prototype.isAnimationEnabled = function () {\n    return _super.prototype.isAnimationEnabled.call(this) && !(this.get('layout') === 'force' && this.get(['force', 'layoutAnimation']));\n  };\n\n  GraphSeriesModel.type = 'series.graph';\n  GraphSeriesModel.dependencies = ['grid', 'polar', 'geo', 'singleAxis', 'calendar'];\n  GraphSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'view',\n    legendHoverLink: true,\n    layout: null,\n    focusNodeAdjacency: false,\n    circular: {\n      rotateLabel: false\n    },\n    force: {\n      initLayout: null,\n      repulsion: [0, 50],\n      gravity: 0.1,\n      friction: 0.6,\n      edgeLength: 30,\n      layoutAnimation: true\n    },\n    left: 'center',\n    top: 'center',\n    symbol: 'circle',\n    symbolSize: 10,\n    edgeSymbol: ['none', 'none'],\n    edgeSymbolSize: 10,\n    edgeLabel: {\n      position: 'middle',\n      distance: 5\n    },\n    draggable: false,\n    roam: false,\n    center: null,\n    zoom: 1,\n    nodeScaleRatio: 0.6,\n    label: {\n      show: false,\n      formatter: '{b}'\n    },\n    itemStyle: {},\n    lineStyle: {\n      color: '#aaa',\n      width: 1,\n      opacity: 0.5\n    },\n    emphasis: {\n      scale: true,\n      label: {\n        show: true\n      }\n    },\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    }\n  };\n  return GraphSeriesModel;\n}(SeriesModel);\n\nexport default GraphSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport categoryFilter from './categoryFilter';\nimport categoryVisual from './categoryVisual';\nimport edgeVisual from './edgeVisual';\nimport simpleLayout from './simpleLayout';\nimport circularLayout from './circularLayout';\nimport forceLayout from './forceLayout';\nimport createView from './createView';\nimport View from '../../coord/View';\nimport GraphView from './GraphView';\nimport GraphSeriesModel from './GraphSeries';\nimport { updateCenterAndZoom } from '../../action/roamHelper';\nvar actionInfo = {\n  type: 'graphRoam',\n  event: 'graphRoam',\n  update: 'none'\n};\nexport function install(registers) {\n  registers.registerChartView(GraphView);\n  registers.registerSeriesModel(GraphSeriesModel);\n  registers.registerProcessor(categoryFilter);\n  registers.registerVisual(categoryVisual);\n  registers.registerVisual(edgeVisual);\n  registers.registerLayout(simpleLayout);\n  registers.registerLayout(registers.PRIORITY.VISUAL.POST_CHART_LAYOUT, circularLayout);\n  registers.registerLayout(forceLayout);\n  registers.registerCoordinateSystem('graphView', {\n    dimensions: View.dimensions,\n    create: createView\n  });\n  registers.registerAction({\n    type: 'focusNodeAdjacency',\n    event: 'focusNodeAdjacency',\n    update: 'series:focusNodeAdjacency'\n  }, function () {});\n  registers.registerAction({\n    type: 'unfocusNodeAdjacency',\n    event: 'unfocusNodeAdjacency',\n    update: 'series:unfocusNodeAdjacency'\n  }, function () {});\n  registers.registerAction(actionInfo, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'series',\n      query: payload\n    }, function (seriesModel) {\n      var coordSys = seriesModel.coordinateSystem;\n      var res = updateCenterAndZoom(coordSys, payload);\n      seriesModel.setCenter && seriesModel.setCenter(res.center);\n      seriesModel.setZoom && seriesModel.setZoom(res.zoom);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Path from 'zrender/lib/graphic/Path';\n\nvar PointerShape = function () {\n  function PointerShape() {\n    this.angle = 0;\n    this.width = 10;\n    this.r = 10;\n    this.x = 0;\n    this.y = 0;\n  }\n\n  return PointerShape;\n}();\n\nvar PointerPath = function (_super) {\n  __extends(PointerPath, _super);\n\n  function PointerPath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'pointer';\n    return _this;\n  }\n\n  PointerPath.prototype.getDefaultShape = function () {\n    return new PointerShape();\n  };\n\n  PointerPath.prototype.buildPath = function (ctx, shape) {\n    var mathCos = Math.cos;\n    var mathSin = Math.sin;\n    var r = shape.r;\n    var width = shape.width;\n    var angle = shape.angle;\n    var x = shape.x - mathCos(angle) * width * (width >= r / 3 ? 1 : 2);\n    var y = shape.y - mathSin(angle) * width * (width >= r / 3 ? 1 : 2);\n    angle = shape.angle - Math.PI / 2;\n    ctx.moveTo(x, y);\n    ctx.lineTo(shape.x + mathCos(angle) * width, shape.y + mathSin(angle) * width);\n    ctx.lineTo(shape.x + mathCos(shape.angle) * r, shape.y + mathSin(shape.angle) * r);\n    ctx.lineTo(shape.x - mathCos(angle) * width, shape.y - mathSin(angle) * width);\n    ctx.lineTo(x, y);\n  };\n\n  return PointerPath;\n}(Path);\n\nexport default PointerPath;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport PointerPath from './PointerPath';\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport { createTextStyle, setLabelValueAnimation, animateLabelValue } from '../../label/labelStyle';\nimport ChartView from '../../view/Chart';\nimport { parsePercent, round, linearMap } from '../../util/number';\nimport Sausage from '../../util/shape/sausage';\nimport { createSymbol } from '../../util/symbol';\n\nfunction parsePosition(seriesModel, api) {\n  var center = seriesModel.get('center');\n  var width = api.getWidth();\n  var height = api.getHeight();\n  var size = Math.min(width, height);\n  var cx = parsePercent(center[0], api.getWidth());\n  var cy = parsePercent(center[1], api.getHeight());\n  var r = parsePercent(seriesModel.get('radius'), size / 2);\n  return {\n    cx: cx,\n    cy: cy,\n    r: r\n  };\n}\n\nfunction formatLabel(value, labelFormatter) {\n  var label = value == null ? '' : value + '';\n\n  if (labelFormatter) {\n    if (typeof labelFormatter === 'string') {\n      label = labelFormatter.replace('{value}', label);\n    } else if (typeof labelFormatter === 'function') {\n      label = labelFormatter(value);\n    }\n  }\n\n  return label;\n}\n\nvar PI2 = Math.PI * 2;\n\nvar GaugeView = function (_super) {\n  __extends(GaugeView, _super);\n\n  function GaugeView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GaugeView.type;\n    return _this;\n  }\n\n  GaugeView.prototype.render = function (seriesModel, ecModel, api) {\n    this.group.removeAll();\n    var colorList = seriesModel.get(['axisLine', 'lineStyle', 'color']);\n    var posInfo = parsePosition(seriesModel, api);\n\n    this._renderMain(seriesModel, ecModel, api, colorList, posInfo);\n\n    this._data = seriesModel.getData();\n  };\n\n  GaugeView.prototype.dispose = function () {};\n\n  GaugeView.prototype._renderMain = function (seriesModel, ecModel, api, colorList, posInfo) {\n    var group = this.group;\n    var clockwise = seriesModel.get('clockwise');\n    var startAngle = -seriesModel.get('startAngle') / 180 * Math.PI;\n    var endAngle = -seriesModel.get('endAngle') / 180 * Math.PI;\n    var axisLineModel = seriesModel.getModel('axisLine');\n    var roundCap = axisLineModel.get('roundCap');\n    var MainPath = roundCap ? Sausage : graphic.Sector;\n    var showAxis = axisLineModel.get('show');\n    var lineStyleModel = axisLineModel.getModel('lineStyle');\n    var axisLineWidth = lineStyleModel.get('width');\n    var angleRangeSpan = !((endAngle - startAngle) % PI2) && endAngle !== startAngle ? PI2 : (endAngle - startAngle) % PI2;\n    var prevEndAngle = startAngle;\n\n    for (var i = 0; showAxis && i < colorList.length; i++) {\n      var percent = Math.min(Math.max(colorList[i][0], 0), 1);\n      endAngle = startAngle + angleRangeSpan * percent;\n      var sector = new MainPath({\n        shape: {\n          startAngle: prevEndAngle,\n          endAngle: endAngle,\n          cx: posInfo.cx,\n          cy: posInfo.cy,\n          clockwise: clockwise,\n          r0: posInfo.r - axisLineWidth,\n          r: posInfo.r\n        },\n        silent: true\n      });\n      sector.setStyle({\n        fill: colorList[i][1]\n      });\n      sector.setStyle(lineStyleModel.getLineStyle(['color', 'width']));\n      group.add(sector);\n      prevEndAngle = endAngle;\n    }\n\n    var getColor = function (percent) {\n      if (percent <= 0) {\n        return colorList[0][1];\n      }\n\n      var i;\n\n      for (i = 0; i < colorList.length; i++) {\n        if (colorList[i][0] >= percent && (i === 0 ? 0 : colorList[i - 1][0]) < percent) {\n          return colorList[i][1];\n        }\n      }\n\n      return colorList[i - 1][1];\n    };\n\n    if (!clockwise) {\n      var tmp = startAngle;\n      startAngle = endAngle;\n      endAngle = tmp;\n    }\n\n    this._renderTicks(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth);\n\n    this._renderTitleAndDetail(seriesModel, ecModel, api, getColor, posInfo);\n\n    this._renderAnchor(seriesModel, posInfo);\n\n    this._renderPointer(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth);\n  };\n\n  GaugeView.prototype._renderTicks = function (seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth) {\n    var group = this.group;\n    var cx = posInfo.cx;\n    var cy = posInfo.cy;\n    var r = posInfo.r;\n    var minVal = +seriesModel.get('min');\n    var maxVal = +seriesModel.get('max');\n    var splitLineModel = seriesModel.getModel('splitLine');\n    var tickModel = seriesModel.getModel('axisTick');\n    var labelModel = seriesModel.getModel('axisLabel');\n    var splitNumber = seriesModel.get('splitNumber');\n    var subSplitNumber = tickModel.get('splitNumber');\n    var splitLineLen = parsePercent(splitLineModel.get('length'), r);\n    var tickLen = parsePercent(tickModel.get('length'), r);\n    var angle = startAngle;\n    var step = (endAngle - startAngle) / splitNumber;\n    var subStep = step / subSplitNumber;\n    var splitLineStyle = splitLineModel.getModel('lineStyle').getLineStyle();\n    var tickLineStyle = tickModel.getModel('lineStyle').getLineStyle();\n    var splitLineDistance = splitLineModel.get('distance');\n    var unitX;\n    var unitY;\n\n    for (var i = 0; i <= splitNumber; i++) {\n      unitX = Math.cos(angle);\n      unitY = Math.sin(angle);\n\n      if (splitLineModel.get('show')) {\n        var distance = splitLineDistance ? splitLineDistance + axisLineWidth : axisLineWidth;\n        var splitLine = new graphic.Line({\n          shape: {\n            x1: unitX * (r - distance) + cx,\n            y1: unitY * (r - distance) + cy,\n            x2: unitX * (r - splitLineLen - distance) + cx,\n            y2: unitY * (r - splitLineLen - distance) + cy\n          },\n          style: splitLineStyle,\n          silent: true\n        });\n\n        if (splitLineStyle.stroke === 'auto') {\n          splitLine.setStyle({\n            stroke: getColor(i / splitNumber)\n          });\n        }\n\n        group.add(splitLine);\n      }\n\n      if (labelModel.get('show')) {\n        var distance = labelModel.get('distance') + splitLineDistance;\n        var label = formatLabel(round(i / splitNumber * (maxVal - minVal) + minVal), labelModel.get('formatter'));\n        var autoColor = getColor(i / splitNumber);\n        group.add(new graphic.Text({\n          style: createTextStyle(labelModel, {\n            text: label,\n            x: unitX * (r - splitLineLen - distance) + cx,\n            y: unitY * (r - splitLineLen - distance) + cy,\n            verticalAlign: unitY < -0.8 ? 'top' : unitY > 0.8 ? 'bottom' : 'middle',\n            align: unitX < -0.4 ? 'left' : unitX > 0.4 ? 'right' : 'center'\n          }, {\n            inheritColor: autoColor\n          }),\n          silent: true\n        }));\n      }\n\n      if (tickModel.get('show') && i !== splitNumber) {\n        var distance = tickModel.get('distance');\n        distance = distance ? distance + axisLineWidth : axisLineWidth;\n\n        for (var j = 0; j <= subSplitNumber; j++) {\n          unitX = Math.cos(angle);\n          unitY = Math.sin(angle);\n          var tickLine = new graphic.Line({\n            shape: {\n              x1: unitX * (r - distance) + cx,\n              y1: unitY * (r - distance) + cy,\n              x2: unitX * (r - tickLen - distance) + cx,\n              y2: unitY * (r - tickLen - distance) + cy\n            },\n            silent: true,\n            style: tickLineStyle\n          });\n\n          if (tickLineStyle.stroke === 'auto') {\n            tickLine.setStyle({\n              stroke: getColor((i + j / subSplitNumber) / splitNumber)\n            });\n          }\n\n          group.add(tickLine);\n          angle += subStep;\n        }\n\n        angle -= subStep;\n      } else {\n        angle += step;\n      }\n    }\n  };\n\n  GaugeView.prototype._renderPointer = function (seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth) {\n    var group = this.group;\n    var oldData = this._data;\n    var oldProgressData = this._progressEls;\n    var progressList = [];\n    var showPointer = seriesModel.get(['pointer', 'show']);\n    var progressModel = seriesModel.getModel('progress');\n    var showProgress = progressModel.get('show');\n    var data = seriesModel.getData();\n    var valueDim = data.mapDimension('value');\n    var minVal = +seriesModel.get('min');\n    var maxVal = +seriesModel.get('max');\n    var valueExtent = [minVal, maxVal];\n    var angleExtent = [startAngle, endAngle];\n\n    function createPointer(idx, angle) {\n      var itemModel = data.getItemModel(idx);\n      var pointerModel = itemModel.getModel('pointer');\n      var pointerWidth = parsePercent(pointerModel.get('width'), posInfo.r);\n      var pointerLength = parsePercent(pointerModel.get('length'), posInfo.r);\n      var pointerStr = seriesModel.get(['pointer', 'icon']);\n      var pointerOffset = pointerModel.get('offsetCenter');\n      var pointerOffsetX = parsePercent(pointerOffset[0], posInfo.r);\n      var pointerOffsetY = parsePercent(pointerOffset[1], posInfo.r);\n      var pointerKeepAspect = pointerModel.get('keepAspect');\n      var pointer;\n\n      if (pointerStr) {\n        pointer = createSymbol(pointerStr, pointerOffsetX - pointerWidth / 2, pointerOffsetY - pointerLength, pointerWidth, pointerLength, null, pointerKeepAspect);\n      } else {\n        pointer = new PointerPath({\n          shape: {\n            angle: -Math.PI / 2,\n            width: pointerWidth,\n            r: pointerLength,\n            x: pointerOffsetX,\n            y: pointerOffsetY\n          }\n        });\n      }\n\n      pointer.rotation = -(angle + Math.PI / 2);\n      pointer.x = posInfo.cx;\n      pointer.y = posInfo.cy;\n      return pointer;\n    }\n\n    function createProgress(idx, endAngle) {\n      var roundCap = progressModel.get('roundCap');\n      var ProgressPath = roundCap ? Sausage : graphic.Sector;\n      var isOverlap = progressModel.get('overlap');\n      var progressWidth = isOverlap ? progressModel.get('width') : axisLineWidth / data.count();\n      var r0 = isOverlap ? posInfo.r - progressWidth : posInfo.r - (idx + 1) * progressWidth;\n      var r = isOverlap ? posInfo.r : posInfo.r - idx * progressWidth;\n      var progress = new ProgressPath({\n        shape: {\n          startAngle: startAngle,\n          endAngle: endAngle,\n          cx: posInfo.cx,\n          cy: posInfo.cy,\n          clockwise: clockwise,\n          r0: r0,\n          r: r\n        }\n      });\n      isOverlap && (progress.z2 = maxVal - data.get(valueDim, idx) % maxVal);\n      return progress;\n    }\n\n    if (showProgress || showPointer) {\n      data.diff(oldData).add(function (idx) {\n        if (showPointer) {\n          var pointer = createPointer(idx, startAngle);\n          graphic.initProps(pointer, {\n            rotation: -(linearMap(data.get(valueDim, idx), valueExtent, angleExtent, true) + Math.PI / 2)\n          }, seriesModel);\n          group.add(pointer);\n          data.setItemGraphicEl(idx, pointer);\n        }\n\n        if (showProgress) {\n          var progress = createProgress(idx, startAngle);\n          var isClip = progressModel.get('clip');\n          graphic.initProps(progress, {\n            shape: {\n              endAngle: linearMap(data.get(valueDim, idx), valueExtent, angleExtent, isClip)\n            }\n          }, seriesModel);\n          group.add(progress);\n          progressList[idx] = progress;\n        }\n      }).update(function (newIdx, oldIdx) {\n        if (showPointer) {\n          var previousPointer = oldData.getItemGraphicEl(oldIdx);\n          var previousRotate = previousPointer ? previousPointer.rotation : startAngle;\n          var pointer = createPointer(newIdx, previousRotate);\n          pointer.rotation = previousRotate;\n          graphic.updateProps(pointer, {\n            rotation: -(linearMap(data.get(valueDim, newIdx), valueExtent, angleExtent, true) + Math.PI / 2)\n          }, seriesModel);\n          group.add(pointer);\n          data.setItemGraphicEl(newIdx, pointer);\n        }\n\n        if (showProgress) {\n          var previousProgress = oldProgressData[oldIdx];\n          var previousEndAngle = previousProgress ? previousProgress.shape.endAngle : startAngle;\n          var progress = createProgress(newIdx, previousEndAngle);\n          var isClip = progressModel.get('clip');\n          graphic.updateProps(progress, {\n            shape: {\n              endAngle: linearMap(data.get(valueDim, newIdx), valueExtent, angleExtent, isClip)\n            }\n          }, seriesModel);\n          group.add(progress);\n          progressList[newIdx] = progress;\n        }\n      }).execute();\n      data.each(function (idx) {\n        var itemModel = data.getItemModel(idx);\n        var emphasisModel = itemModel.getModel('emphasis');\n\n        if (showPointer) {\n          var pointer = data.getItemGraphicEl(idx);\n          pointer.useStyle(data.getItemVisual(idx, 'style'));\n          pointer.setStyle(itemModel.getModel(['pointer', 'itemStyle']).getItemStyle());\n\n          if (pointer.style.fill === 'auto') {\n            pointer.setStyle('fill', getColor(linearMap(data.get(valueDim, idx), valueExtent, [0, 1], true)));\n          }\n\n          pointer.z2EmphasisLift = 0;\n          setStatesStylesFromModel(pointer, itemModel);\n          enableHoverEmphasis(pointer, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n        }\n\n        if (showProgress) {\n          var progress = progressList[idx];\n          progress.useStyle(data.getItemVisual(idx, 'style'));\n          progress.setStyle(itemModel.getModel(['progress', 'itemStyle']).getItemStyle());\n          progress.z2EmphasisLift = 0;\n          setStatesStylesFromModel(progress, itemModel);\n          enableHoverEmphasis(progress, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n        }\n      });\n      this._progressEls = progressList;\n    }\n  };\n\n  GaugeView.prototype._renderAnchor = function (seriesModel, posInfo) {\n    var anchorModel = seriesModel.getModel('anchor');\n    var showAnchor = anchorModel.get('show');\n\n    if (showAnchor) {\n      var anchorSize = anchorModel.get('size');\n      var anchorType = anchorModel.get('icon');\n      var offsetCenter = anchorModel.get('offsetCenter');\n      var anchorKeepAspect = anchorModel.get('keepAspect');\n      var anchor = createSymbol(anchorType, posInfo.cx - anchorSize / 2 + parsePercent(offsetCenter[0], posInfo.r), posInfo.cy - anchorSize / 2 + parsePercent(offsetCenter[1], posInfo.r), anchorSize, anchorSize, null, anchorKeepAspect);\n      anchor.z2 = anchorModel.get('showAbove') ? 1 : 0;\n      anchor.setStyle(anchorModel.getModel('itemStyle').getItemStyle());\n      this.group.add(anchor);\n    }\n  };\n\n  GaugeView.prototype._renderTitleAndDetail = function (seriesModel, ecModel, api, getColor, posInfo) {\n    var _this = this;\n\n    var data = seriesModel.getData();\n    var valueDim = data.mapDimension('value');\n    var minVal = +seriesModel.get('min');\n    var maxVal = +seriesModel.get('max');\n    var contentGroup = new graphic.Group();\n    var newTitleEls = [];\n    var newDetailEls = [];\n    var hasAnimation = seriesModel.isAnimationEnabled();\n    data.diff(this._data).add(function (idx) {\n      newTitleEls[idx] = new graphic.Text({\n        silent: true\n      });\n      newDetailEls[idx] = new graphic.Text({\n        silent: true\n      });\n    }).update(function (idx, oldIdx) {\n      newTitleEls[idx] = _this._titleEls[oldIdx];\n      newDetailEls[idx] = _this._detailEls[oldIdx];\n    }).execute();\n    data.each(function (idx) {\n      var itemModel = data.getItemModel(idx);\n      var value = data.get(valueDim, idx);\n      var itemGroup = new graphic.Group();\n      var autoColor = getColor(linearMap(value, [minVal, maxVal], [0, 1], true));\n      var itemTitleModel = itemModel.getModel('title');\n\n      if (itemTitleModel.get('show')) {\n        var titleOffsetCenter = itemTitleModel.get('offsetCenter');\n        var titleX = posInfo.cx + parsePercent(titleOffsetCenter[0], posInfo.r);\n        var titleY = posInfo.cy + parsePercent(titleOffsetCenter[1], posInfo.r);\n        var labelEl = newTitleEls[idx];\n        labelEl.attr({\n          style: createTextStyle(itemTitleModel, {\n            x: titleX,\n            y: titleY,\n            text: data.getName(idx),\n            align: 'center',\n            verticalAlign: 'middle'\n          }, {\n            inheritColor: autoColor\n          })\n        });\n        itemGroup.add(labelEl);\n      }\n\n      var itemDetailModel = itemModel.getModel('detail');\n\n      if (itemDetailModel.get('show')) {\n        var detailOffsetCenter = itemDetailModel.get('offsetCenter');\n        var detailX = posInfo.cx + parsePercent(detailOffsetCenter[0], posInfo.r);\n        var detailY = posInfo.cy + parsePercent(detailOffsetCenter[1], posInfo.r);\n        var width = parsePercent(itemDetailModel.get('width'), posInfo.r);\n        var height = parsePercent(itemDetailModel.get('height'), posInfo.r);\n        var detailColor = seriesModel.get(['progress', 'show']) ? data.getItemVisual(idx, 'style').fill : autoColor;\n        var labelEl = newDetailEls[idx];\n        var formatter_1 = itemDetailModel.get('formatter');\n        labelEl.attr({\n          style: createTextStyle(itemDetailModel, {\n            x: detailX,\n            y: detailY,\n            text: formatLabel(value, formatter_1),\n            width: isNaN(width) ? null : width,\n            height: isNaN(height) ? null : height,\n            align: 'center',\n            verticalAlign: 'middle'\n          }, {\n            inheritColor: detailColor\n          })\n        });\n        setLabelValueAnimation(labelEl, {\n          normal: itemDetailModel\n        }, value, function (value) {\n          return formatLabel(value, formatter_1);\n        });\n        hasAnimation && animateLabelValue(labelEl, idx, data, seriesModel, {\n          getFormattedLabel: function (labelDataIndex, status, dataType, labelDimIndex, fmt, extendParams) {\n            return formatLabel(extendParams ? extendParams.interpolatedValue : value, formatter_1);\n          }\n        });\n        itemGroup.add(labelEl);\n      }\n\n      contentGroup.add(itemGroup);\n    });\n    this.group.add(contentGroup);\n    this._titleEls = newTitleEls;\n    this._detailEls = newDetailEls;\n  };\n\n  GaugeView.type = 'gauge';\n  return GaugeView;\n}(ChartView);\n\nexport default GaugeView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListSimply from '../helper/createListSimply';\nimport SeriesModel from '../../model/Series';\n\nvar GaugeSeriesModel = function (_super) {\n  __extends(GaugeSeriesModel, _super);\n\n  function GaugeSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GaugeSeriesModel.type;\n    _this.visualStyleAccessPath = 'itemStyle';\n    _this.useColorPaletteOnData = true;\n    return _this;\n  }\n\n  GaugeSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListSimply(this, ['value']);\n  };\n\n  GaugeSeriesModel.type = 'series.gauge';\n  GaugeSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    center: ['50%', '50%'],\n    legendHoverLink: true,\n    radius: '75%',\n    startAngle: 225,\n    endAngle: -45,\n    clockwise: true,\n    min: 0,\n    max: 100,\n    splitNumber: 10,\n    axisLine: {\n      show: true,\n      roundCap: false,\n      lineStyle: {\n        color: [[1, '#E6EBF8']],\n        width: 10\n      }\n    },\n    progress: {\n      show: false,\n      overlap: true,\n      width: 10,\n      roundCap: false,\n      clip: true\n    },\n    splitLine: {\n      show: true,\n      length: 10,\n      distance: 10,\n      lineStyle: {\n        color: '#63677A',\n        width: 3,\n        type: 'solid'\n      }\n    },\n    axisTick: {\n      show: true,\n      splitNumber: 5,\n      length: 6,\n      distance: 10,\n      lineStyle: {\n        color: '#63677A',\n        width: 1,\n        type: 'solid'\n      }\n    },\n    axisLabel: {\n      show: true,\n      distance: 15,\n      color: '#464646',\n      fontSize: 12\n    },\n    pointer: {\n      icon: null,\n      offsetCenter: [0, 0],\n      show: true,\n      length: '60%',\n      width: 6,\n      keepAspect: false\n    },\n    anchor: {\n      show: false,\n      showAbove: false,\n      size: 6,\n      icon: 'circle',\n      offsetCenter: [0, 0],\n      keepAspect: false,\n      itemStyle: {\n        color: '#fff',\n        borderWidth: 0,\n        borderColor: '#5470c6'\n      }\n    },\n    title: {\n      show: true,\n      offsetCenter: [0, '20%'],\n      color: '#464646',\n      fontSize: 16,\n      valueAnimation: false\n    },\n    detail: {\n      show: true,\n      backgroundColor: 'rgba(0,0,0,0)',\n      borderWidth: 0,\n      borderColor: '#ccc',\n      width: 100,\n      height: null,\n      padding: [5, 10],\n      offsetCenter: [0, '40%'],\n      color: '#464646',\n      fontSize: 30,\n      fontWeight: 'bold',\n      lineHeight: 30,\n      valueAnimation: false\n    }\n  };\n  return GaugeSeriesModel;\n}(SeriesModel);\n\nexport default GaugeSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport GaugeView from './GaugeView';\nimport GaugeSeriesModel from './GaugeSeries';\nexport function install(registers) {\n  registers.registerChartView(GaugeView);\n  registers.registerSeriesModel(GaugeSeriesModel);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport ChartView from '../../view/Chart';\nimport { setLabelLineStyle, getLabelLineStatesModels } from '../../label/labelGuideHelper';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nvar opacityAccessPath = ['itemStyle', 'opacity'];\n\nvar FunnelPiece = function (_super) {\n  __extends(FunnelPiece, _super);\n\n  function FunnelPiece(data, idx) {\n    var _this = _super.call(this) || this;\n\n    var polygon = _this;\n    var labelLine = new graphic.Polyline();\n    var text = new graphic.Text();\n    polygon.setTextContent(text);\n\n    _this.setTextGuideLine(labelLine);\n\n    _this.updateData(data, idx, true);\n\n    return _this;\n  }\n\n  FunnelPiece.prototype.updateData = function (data, idx, firstCreate) {\n    var polygon = this;\n    var seriesModel = data.hostModel;\n    var itemModel = data.getItemModel(idx);\n    var layout = data.getItemLayout(idx);\n    var emphasisModel = itemModel.getModel('emphasis');\n    var opacity = itemModel.get(opacityAccessPath);\n    opacity = opacity == null ? 1 : opacity;\n    polygon.useStyle(data.getItemVisual(idx, 'style'));\n    polygon.style.lineJoin = 'round';\n\n    if (firstCreate) {\n      polygon.setShape({\n        points: layout.points\n      });\n      polygon.style.opacity = 0;\n      graphic.initProps(polygon, {\n        style: {\n          opacity: opacity\n        }\n      }, seriesModel, idx);\n    } else {\n      graphic.updateProps(polygon, {\n        style: {\n          opacity: opacity\n        },\n        shape: {\n          points: layout.points\n        }\n      }, seriesModel, idx);\n    }\n\n    setStatesStylesFromModel(polygon, itemModel);\n\n    this._updateLabel(data, idx);\n\n    enableHoverEmphasis(this, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n  };\n\n  FunnelPiece.prototype._updateLabel = function (data, idx) {\n    var polygon = this;\n    var labelLine = this.getTextGuideLine();\n    var labelText = polygon.getTextContent();\n    var seriesModel = data.hostModel;\n    var itemModel = data.getItemModel(idx);\n    var layout = data.getItemLayout(idx);\n    var labelLayout = layout.label;\n    var style = data.getItemVisual(idx, 'style');\n    var visualColor = style.fill;\n    setLabelStyle(labelText, getLabelStatesModels(itemModel), {\n      labelFetcher: data.hostModel,\n      labelDataIndex: idx,\n      defaultOpacity: style.opacity,\n      defaultText: data.getName(idx)\n    }, {\n      normal: {\n        align: labelLayout.textAlign,\n        verticalAlign: labelLayout.verticalAlign\n      }\n    });\n    polygon.setTextConfig({\n      local: true,\n      inside: !!labelLayout.inside,\n      insideStroke: visualColor,\n      outsideFill: visualColor\n    });\n    var linePoints = labelLayout.linePoints;\n    labelLine.setShape({\n      points: linePoints\n    });\n    polygon.textGuideLineConfig = {\n      anchor: linePoints ? new graphic.Point(linePoints[0][0], linePoints[0][1]) : null\n    };\n    graphic.updateProps(labelText, {\n      style: {\n        x: labelLayout.x,\n        y: labelLayout.y\n      }\n    }, seriesModel, idx);\n    labelText.attr({\n      rotation: labelLayout.rotation,\n      originX: labelLayout.x,\n      originY: labelLayout.y,\n      z2: 10\n    });\n    setLabelLineStyle(polygon, getLabelLineStatesModels(itemModel), {\n      stroke: visualColor\n    });\n  };\n\n  return FunnelPiece;\n}(graphic.Polygon);\n\nvar FunnelView = function (_super) {\n  __extends(FunnelView, _super);\n\n  function FunnelView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = FunnelView.type;\n    _this.ignoreLabelLineUpdate = true;\n    return _this;\n  }\n\n  FunnelView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var group = this.group;\n    data.diff(oldData).add(function (idx) {\n      var funnelPiece = new FunnelPiece(data, idx);\n      data.setItemGraphicEl(idx, funnelPiece);\n      group.add(funnelPiece);\n    }).update(function (newIdx, oldIdx) {\n      var piece = oldData.getItemGraphicEl(oldIdx);\n      piece.updateData(data, newIdx);\n      group.add(piece);\n      data.setItemGraphicEl(newIdx, piece);\n    }).remove(function (idx) {\n      var piece = oldData.getItemGraphicEl(idx);\n      graphic.removeElementWithFadeOut(piece, seriesModel, idx);\n    }).execute();\n    this._data = data;\n  };\n\n  FunnelView.prototype.remove = function () {\n    this.group.removeAll();\n    this._data = null;\n  };\n\n  FunnelView.prototype.dispose = function () {};\n\n  FunnelView.type = 'funnel';\n  return FunnelView;\n}(ChartView);\n\nexport default FunnelView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport createListSimply from '../helper/createListSimply';\nimport { defaultEmphasis } from '../../util/model';\nimport { makeSeriesEncodeForNameBased } from '../../data/helper/sourceHelper';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider';\nimport SeriesModel from '../../model/Series';\n\nvar FunnelSeriesModel = function (_super) {\n  __extends(FunnelSeriesModel, _super);\n\n  function FunnelSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = FunnelSeriesModel.type;\n    _this.useColorPaletteOnData = true;\n    return _this;\n  }\n\n  FunnelSeriesModel.prototype.init = function (option) {\n    _super.prototype.init.apply(this, arguments);\n\n    this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));\n\n    this._defaultLabelLine(option);\n  };\n\n  FunnelSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListSimply(this, {\n      coordDimensions: ['value'],\n      encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)\n    });\n  };\n\n  FunnelSeriesModel.prototype._defaultLabelLine = function (option) {\n    defaultEmphasis(option, 'labelLine', ['show']);\n    var labelLineNormalOpt = option.labelLine;\n    var labelLineEmphasisOpt = option.emphasis.labelLine;\n    labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show;\n    labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show;\n  };\n\n  FunnelSeriesModel.prototype.getDataParams = function (dataIndex) {\n    var data = this.getData();\n\n    var params = _super.prototype.getDataParams.call(this, dataIndex);\n\n    var valueDim = data.mapDimension('value');\n    var sum = data.getSum(valueDim);\n    params.percent = !sum ? 0 : +(data.get(valueDim, dataIndex) / sum * 100).toFixed(2);\n    params.$vars.push('percent');\n    return params;\n  };\n\n  FunnelSeriesModel.type = 'series.funnel';\n  FunnelSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    left: 80,\n    top: 60,\n    right: 80,\n    bottom: 60,\n    minSize: '0%',\n    maxSize: '100%',\n    sort: 'descending',\n    orient: 'vertical',\n    gap: 0,\n    funnelAlign: 'center',\n    label: {\n      show: true,\n      position: 'outer'\n    },\n    labelLine: {\n      show: true,\n      length: 20,\n      lineStyle: {\n        width: 1\n      }\n    },\n    itemStyle: {\n      borderColor: '#fff',\n      borderWidth: 1\n    },\n    emphasis: {\n      label: {\n        show: true\n      }\n    },\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    }\n  };\n  return FunnelSeriesModel;\n}(SeriesModel);\n\nexport default FunnelSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as layout from '../../util/layout';\nimport { parsePercent, linearMap } from '../../util/number';\n\nfunction getViewRect(seriesModel, api) {\n  return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n}\n\nfunction getSortedIndices(data, sort) {\n  var valueDim = data.mapDimension('value');\n  var valueArr = data.mapArray(valueDim, function (val) {\n    return val;\n  });\n  var indices = [];\n  var isAscending = sort === 'ascending';\n\n  for (var i = 0, len = data.count(); i < len; i++) {\n    indices[i] = i;\n  }\n\n  if (typeof sort === 'function') {\n    indices.sort(sort);\n  } else if (sort !== 'none') {\n    indices.sort(function (a, b) {\n      return isAscending ? valueArr[a] - valueArr[b] : valueArr[b] - valueArr[a];\n    });\n  }\n\n  return indices;\n}\n\nfunction labelLayout(data) {\n  var seriesModel = data.hostModel;\n  var orient = seriesModel.get('orient');\n  data.each(function (idx) {\n    var itemModel = data.getItemModel(idx);\n    var labelModel = itemModel.getModel('label');\n    var labelPosition = labelModel.get('position');\n    var labelLineModel = itemModel.getModel('labelLine');\n    var layout = data.getItemLayout(idx);\n    var points = layout.points;\n    var isLabelInside = labelPosition === 'inner' || labelPosition === 'inside' || labelPosition === 'center' || labelPosition === 'insideLeft' || labelPosition === 'insideRight';\n    var textAlign;\n    var textX;\n    var textY;\n    var linePoints;\n\n    if (isLabelInside) {\n      if (labelPosition === 'insideLeft') {\n        textX = (points[0][0] + points[3][0]) / 2 + 5;\n        textY = (points[0][1] + points[3][1]) / 2;\n        textAlign = 'left';\n      } else if (labelPosition === 'insideRight') {\n        textX = (points[1][0] + points[2][0]) / 2 - 5;\n        textY = (points[1][1] + points[2][1]) / 2;\n        textAlign = 'right';\n      } else {\n        textX = (points[0][0] + points[1][0] + points[2][0] + points[3][0]) / 4;\n        textY = (points[0][1] + points[1][1] + points[2][1] + points[3][1]) / 4;\n        textAlign = 'center';\n      }\n\n      linePoints = [[textX, textY], [textX, textY]];\n    } else {\n      var x1 = void 0;\n      var y1 = void 0;\n      var x2 = void 0;\n      var y2 = void 0;\n      var labelLineLen = labelLineModel.get('length');\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (orient === 'vertical' && ['top', 'bottom'].indexOf(labelPosition) > -1) {\n          labelPosition = 'left';\n          console.warn('Position error: Funnel chart on vertical orient dose not support top and bottom.');\n        }\n\n        if (orient === 'horizontal' && ['left', 'right'].indexOf(labelPosition) > -1) {\n          labelPosition = 'bottom';\n          console.warn('Position error: Funnel chart on horizontal orient dose not support left and right.');\n        }\n      }\n\n      if (labelPosition === 'left') {\n        x1 = (points[3][0] + points[0][0]) / 2;\n        y1 = (points[3][1] + points[0][1]) / 2;\n        x2 = x1 - labelLineLen;\n        textX = x2 - 5;\n        textAlign = 'right';\n      } else if (labelPosition === 'right') {\n        x1 = (points[1][0] + points[2][0]) / 2;\n        y1 = (points[1][1] + points[2][1]) / 2;\n        x2 = x1 + labelLineLen;\n        textX = x2 + 5;\n        textAlign = 'left';\n      } else if (labelPosition === 'top') {\n        x1 = (points[3][0] + points[0][0]) / 2;\n        y1 = (points[3][1] + points[0][1]) / 2;\n        y2 = y1 - labelLineLen;\n        textY = y2 - 5;\n        textAlign = 'center';\n      } else if (labelPosition === 'bottom') {\n        x1 = (points[1][0] + points[2][0]) / 2;\n        y1 = (points[1][1] + points[2][1]) / 2;\n        y2 = y1 + labelLineLen;\n        textY = y2 + 5;\n        textAlign = 'center';\n      } else if (labelPosition === 'rightTop') {\n        x1 = orient === 'horizontal' ? points[3][0] : points[1][0];\n        y1 = orient === 'horizontal' ? points[3][1] : points[1][1];\n\n        if (orient === 'horizontal') {\n          y2 = y1 - labelLineLen;\n          textY = y2 - 5;\n          textAlign = 'center';\n        } else {\n          x2 = x1 + labelLineLen;\n          textX = x2 + 5;\n          textAlign = 'top';\n        }\n      } else if (labelPosition === 'rightBottom') {\n        x1 = points[2][0];\n        y1 = points[2][1];\n\n        if (orient === 'horizontal') {\n          y2 = y1 + labelLineLen;\n          textY = y2 + 5;\n          textAlign = 'center';\n        } else {\n          x2 = x1 + labelLineLen;\n          textX = x2 + 5;\n          textAlign = 'bottom';\n        }\n      } else if (labelPosition === 'leftTop') {\n        x1 = points[0][0];\n        y1 = orient === 'horizontal' ? points[0][1] : points[1][1];\n\n        if (orient === 'horizontal') {\n          y2 = y1 - labelLineLen;\n          textY = y2 - 5;\n          textAlign = 'center';\n        } else {\n          x2 = x1 - labelLineLen;\n          textX = x2 - 5;\n          textAlign = 'right';\n        }\n      } else if (labelPosition === 'leftBottom') {\n        x1 = orient === 'horizontal' ? points[1][0] : points[3][0];\n        y1 = orient === 'horizontal' ? points[1][1] : points[2][1];\n\n        if (orient === 'horizontal') {\n          y2 = y1 + labelLineLen;\n          textY = y2 + 5;\n          textAlign = 'center';\n        } else {\n          x2 = x1 - labelLineLen;\n          textX = x2 - 5;\n          textAlign = 'right';\n        }\n      } else {\n        x1 = (points[1][0] + points[2][0]) / 2;\n        y1 = (points[1][1] + points[2][1]) / 2;\n\n        if (orient === 'horizontal') {\n          y2 = y1 + labelLineLen;\n          textY = y2 + 5;\n          textAlign = 'center';\n        } else {\n          x2 = x1 + labelLineLen;\n          textX = x2 + 5;\n          textAlign = 'left';\n        }\n      }\n\n      if (orient === 'horizontal') {\n        x2 = x1;\n        textX = x2;\n      } else {\n        y2 = y1;\n        textY = y2;\n      }\n\n      linePoints = [[x1, y1], [x2, y2]];\n    }\n\n    layout.label = {\n      linePoints: linePoints,\n      x: textX,\n      y: textY,\n      verticalAlign: 'middle',\n      textAlign: textAlign,\n      inside: isLabelInside\n    };\n  });\n}\n\nexport default function funnelLayout(ecModel, api) {\n  ecModel.eachSeriesByType('funnel', function (seriesModel) {\n    var data = seriesModel.getData();\n    var valueDim = data.mapDimension('value');\n    var sort = seriesModel.get('sort');\n    var viewRect = getViewRect(seriesModel, api);\n    var orient = seriesModel.get('orient');\n    var viewWidth = viewRect.width;\n    var viewHeight = viewRect.height;\n    var indices = getSortedIndices(data, sort);\n    var x = viewRect.x;\n    var y = viewRect.y;\n    var sizeExtent = orient === 'horizontal' ? [parsePercent(seriesModel.get('minSize'), viewHeight), parsePercent(seriesModel.get('maxSize'), viewHeight)] : [parsePercent(seriesModel.get('minSize'), viewWidth), parsePercent(seriesModel.get('maxSize'), viewWidth)];\n    var dataExtent = data.getDataExtent(valueDim);\n    var min = seriesModel.get('min');\n    var max = seriesModel.get('max');\n\n    if (min == null) {\n      min = Math.min(dataExtent[0], 0);\n    }\n\n    if (max == null) {\n      max = dataExtent[1];\n    }\n\n    var funnelAlign = seriesModel.get('funnelAlign');\n    var gap = seriesModel.get('gap');\n    var viewSize = orient === 'horizontal' ? viewWidth : viewHeight;\n    var itemSize = (viewSize - gap * (data.count() - 1)) / data.count();\n\n    var getLinePoints = function (idx, offset) {\n      if (orient === 'horizontal') {\n        var val_1 = data.get(valueDim, idx) || 0;\n        var itemHeight = linearMap(val_1, [min, max], sizeExtent, true);\n        var y0 = void 0;\n\n        switch (funnelAlign) {\n          case 'top':\n            y0 = y;\n            break;\n\n          case 'center':\n            y0 = y + (viewHeight - itemHeight) / 2;\n            break;\n\n          case 'bottom':\n            y0 = y + (viewHeight - itemHeight);\n            break;\n        }\n\n        return [[offset, y0], [offset, y0 + itemHeight]];\n      }\n\n      var val = data.get(valueDim, idx) || 0;\n      var itemWidth = linearMap(val, [min, max], sizeExtent, true);\n      var x0;\n\n      switch (funnelAlign) {\n        case 'left':\n          x0 = x;\n          break;\n\n        case 'center':\n          x0 = x + (viewWidth - itemWidth) / 2;\n          break;\n\n        case 'right':\n          x0 = x + viewWidth - itemWidth;\n          break;\n      }\n\n      return [[x0, offset], [x0 + itemWidth, offset]];\n    };\n\n    if (sort === 'ascending') {\n      itemSize = -itemSize;\n      gap = -gap;\n\n      if (orient === 'horizontal') {\n        x += viewWidth;\n      } else {\n        y += viewHeight;\n      }\n\n      indices = indices.reverse();\n    }\n\n    for (var i = 0; i < indices.length; i++) {\n      var idx = indices[i];\n      var nextIdx = indices[i + 1];\n      var itemModel = data.getItemModel(idx);\n\n      if (orient === 'horizontal') {\n        var width = itemModel.get(['itemStyle', 'width']);\n\n        if (width == null) {\n          width = itemSize;\n        } else {\n          width = parsePercent(width, viewWidth);\n\n          if (sort === 'ascending') {\n            width = -width;\n          }\n        }\n\n        var start = getLinePoints(idx, x);\n        var end = getLinePoints(nextIdx, x + width);\n        x += width + gap;\n        data.setItemLayout(idx, {\n          points: start.concat(end.slice().reverse())\n        });\n      } else {\n        var height = itemModel.get(['itemStyle', 'height']);\n\n        if (height == null) {\n          height = itemSize;\n        } else {\n          height = parsePercent(height, viewHeight);\n\n          if (sort === 'ascending') {\n            height = -height;\n          }\n        }\n\n        var start = getLinePoints(idx, y);\n        var end = getLinePoints(nextIdx, y + height);\n        y += height + gap;\n        data.setItemLayout(idx, {\n          points: start.concat(end.slice().reverse())\n        });\n      }\n    }\n\n    labelLayout(data);\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport FunnelView from './FunnelView';\nimport FunnelSeriesModel from './FunnelSeries';\nimport funnelLayout from './funnelLayout';\nimport dataFilter from '../../processor/dataFilter';\nexport function install(registers) {\n  registers.registerChartView(FunnelView);\n  registers.registerSeriesModel(FunnelSeriesModel);\n  registers.registerLayout(funnelLayout);\n  registers.registerProcessor(dataFilter('funnel'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport ChartView from '../../view/Chart';\nimport { numericToNumber } from '../../util/number';\nimport { eqNaN } from 'zrender/lib/core/util';\nvar DEFAULT_SMOOTH = 0.3;\n\nvar ParallelView = function (_super) {\n  __extends(ParallelView, _super);\n\n  function ParallelView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ParallelView.type;\n    _this._dataGroup = new graphic.Group();\n    _this._initialized = false;\n    return _this;\n  }\n\n  ParallelView.prototype.init = function () {\n    this.group.add(this._dataGroup);\n  };\n\n  ParallelView.prototype.render = function (seriesModel, ecModel, api, payload) {\n    var dataGroup = this._dataGroup;\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var coordSys = seriesModel.coordinateSystem;\n    var dimensions = coordSys.dimensions;\n    var seriesScope = makeSeriesScope(seriesModel);\n    data.diff(oldData).add(add).update(update).remove(remove).execute();\n\n    function add(newDataIndex) {\n      var line = addEl(data, dataGroup, newDataIndex, dimensions, coordSys);\n      updateElCommon(line, data, newDataIndex, seriesScope);\n    }\n\n    function update(newDataIndex, oldDataIndex) {\n      var line = oldData.getItemGraphicEl(oldDataIndex);\n      var points = createLinePoints(data, newDataIndex, dimensions, coordSys);\n      data.setItemGraphicEl(newDataIndex, line);\n      graphic.updateProps(line, {\n        shape: {\n          points: points\n        }\n      }, seriesModel, newDataIndex);\n      updateElCommon(line, data, newDataIndex, seriesScope);\n    }\n\n    function remove(oldDataIndex) {\n      var line = oldData.getItemGraphicEl(oldDataIndex);\n      dataGroup.remove(line);\n    }\n\n    if (!this._initialized) {\n      this._initialized = true;\n      var clipPath = createGridClipShape(coordSys, seriesModel, function () {\n        setTimeout(function () {\n          dataGroup.removeClipPath();\n        });\n      });\n      dataGroup.setClipPath(clipPath);\n    }\n\n    this._data = data;\n  };\n\n  ParallelView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n    this._initialized = true;\n    this._data = null;\n\n    this._dataGroup.removeAll();\n  };\n\n  ParallelView.prototype.incrementalRender = function (taskParams, seriesModel, ecModel) {\n    var data = seriesModel.getData();\n    var coordSys = seriesModel.coordinateSystem;\n    var dimensions = coordSys.dimensions;\n    var seriesScope = makeSeriesScope(seriesModel);\n\n    for (var dataIndex = taskParams.start; dataIndex < taskParams.end; dataIndex++) {\n      var line = addEl(data, this._dataGroup, dataIndex, dimensions, coordSys);\n      line.incremental = true;\n      updateElCommon(line, data, dataIndex, seriesScope);\n    }\n  };\n\n  ParallelView.prototype.remove = function () {\n    this._dataGroup && this._dataGroup.removeAll();\n    this._data = null;\n  };\n\n  ParallelView.type = 'parallel';\n  return ParallelView;\n}(ChartView);\n\nfunction createGridClipShape(coordSys, seriesModel, cb) {\n  var parallelModel = coordSys.model;\n  var rect = coordSys.getRect();\n  var rectEl = new graphic.Rect({\n    shape: {\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height\n    }\n  });\n  var dim = parallelModel.get('layout') === 'horizontal' ? 'width' : 'height';\n  rectEl.setShape(dim, 0);\n  graphic.initProps(rectEl, {\n    shape: {\n      width: rect.width,\n      height: rect.height\n    }\n  }, seriesModel, cb);\n  return rectEl;\n}\n\nfunction createLinePoints(data, dataIndex, dimensions, coordSys) {\n  var points = [];\n\n  for (var i = 0; i < dimensions.length; i++) {\n    var dimName = dimensions[i];\n    var value = data.get(data.mapDimension(dimName), dataIndex);\n\n    if (!isEmptyValue(value, coordSys.getAxis(dimName).type)) {\n      points.push(coordSys.dataToPoint(value, dimName));\n    }\n  }\n\n  return points;\n}\n\nfunction addEl(data, dataGroup, dataIndex, dimensions, coordSys) {\n  var points = createLinePoints(data, dataIndex, dimensions, coordSys);\n  var line = new graphic.Polyline({\n    shape: {\n      points: points\n    },\n    z2: 10\n  });\n  dataGroup.add(line);\n  data.setItemGraphicEl(dataIndex, line);\n  return line;\n}\n\nfunction makeSeriesScope(seriesModel) {\n  var smooth = seriesModel.get('smooth', true);\n  smooth === true && (smooth = DEFAULT_SMOOTH);\n  smooth = numericToNumber(smooth);\n  eqNaN(smooth) && (smooth = 0);\n  return {\n    smooth: smooth\n  };\n}\n\nfunction updateElCommon(el, data, dataIndex, seriesScope) {\n  el.useStyle(data.getItemVisual(dataIndex, 'style'));\n  el.style.fill = null;\n  el.setShape('smooth', seriesScope.smooth);\n  var itemModel = data.getItemModel(dataIndex);\n  var emphasisModel = itemModel.getModel('emphasis');\n  setStatesStylesFromModel(el, itemModel, 'lineStyle');\n  enableHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n}\n\nfunction isEmptyValue(val, axisType) {\n  return axisType === 'category' ? val == null : val == null || isNaN(val);\n}\n\nexport default ParallelView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { each, bind } from 'zrender/lib/core/util';\nimport SeriesModel from '../../model/Series';\nimport createListFromArray from '../helper/createListFromArray';\n\nvar ParallelSeriesModel = function (_super) {\n  __extends(ParallelSeriesModel, _super);\n\n  function ParallelSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ParallelSeriesModel.type;\n    _this.visualStyleAccessPath = 'lineStyle';\n    _this.visualDrawType = 'stroke';\n    return _this;\n  }\n\n  ParallelSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: bind(makeDefaultEncode, null, this)\n    });\n  };\n\n  ParallelSeriesModel.prototype.getRawIndicesByActiveState = function (activeState) {\n    var coordSys = this.coordinateSystem;\n    var data = this.getData();\n    var indices = [];\n    coordSys.eachActiveState(data, function (theActiveState, dataIndex) {\n      if (activeState === theActiveState) {\n        indices.push(data.getRawIndex(dataIndex));\n      }\n    });\n    return indices;\n  };\n\n  ParallelSeriesModel.type = 'series.parallel';\n  ParallelSeriesModel.dependencies = ['parallel'];\n  ParallelSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'parallel',\n    parallelIndex: 0,\n    label: {\n      show: false\n    },\n    inactiveOpacity: 0.05,\n    activeOpacity: 1,\n    lineStyle: {\n      width: 1,\n      opacity: 0.45,\n      type: 'solid'\n    },\n    emphasis: {\n      label: {\n        show: false\n      }\n    },\n    progressive: 500,\n    smooth: false,\n    animationEasing: 'linear'\n  };\n  return ParallelSeriesModel;\n}(SeriesModel);\n\nfunction makeDefaultEncode(seriesModel) {\n  var parallelModel = seriesModel.ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\n\n  if (!parallelModel) {\n    return;\n  }\n\n  var encodeDefine = {};\n  each(parallelModel.dimensions, function (axisDim) {\n    var dataDimIndex = convertDimNameToNumber(axisDim);\n    encodeDefine[axisDim] = dataDimIndex;\n  });\n  return encodeDefine;\n}\n\nfunction convertDimNameToNumber(dimName) {\n  return +dimName.replace('dim', '');\n}\n\nexport default ParallelSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar opacityAccessPath = ['lineStyle', 'opacity'];\nvar parallelVisual = {\n  seriesType: 'parallel',\n  reset: function (seriesModel, ecModel) {\n    var coordSys = seriesModel.coordinateSystem;\n    var opacityMap = {\n      normal: seriesModel.get(['lineStyle', 'opacity']),\n      active: seriesModel.get('activeOpacity'),\n      inactive: seriesModel.get('inactiveOpacity')\n    };\n    return {\n      progress: function (params, data) {\n        coordSys.eachActiveState(data, function (activeState, dataIndex) {\n          var opacity = opacityMap[activeState];\n\n          if (activeState === 'normal' && data.hasItemOption) {\n            var itemOpacity = data.getItemModel(dataIndex).get(opacityAccessPath, true);\n            itemOpacity != null && (opacity = itemOpacity);\n          }\n\n          var existsStyle = data.ensureUniqueItemVisual(dataIndex, 'style');\n          existsStyle.opacity = opacity;\n        }, params.start, params.end);\n      }\n    };\n  }\n};\nexport default parallelVisual;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nexport default function parallelPreprocessor(option) {\n  createParallelIfNeeded(option);\n  mergeAxisOptionFromParallel(option);\n}\n\nfunction createParallelIfNeeded(option) {\n  if (option.parallel) {\n    return;\n  }\n\n  var hasParallelSeries = false;\n  zrUtil.each(option.series, function (seriesOpt) {\n    if (seriesOpt && seriesOpt.type === 'parallel') {\n      hasParallelSeries = true;\n    }\n  });\n\n  if (hasParallelSeries) {\n    option.parallel = [{}];\n  }\n}\n\nfunction mergeAxisOptionFromParallel(option) {\n  var axes = modelUtil.normalizeToArray(option.parallelAxis);\n  zrUtil.each(axes, function (axisOption) {\n    if (!zrUtil.isObject(axisOption)) {\n      return;\n    }\n\n    var parallelIndex = axisOption.parallelIndex || 0;\n    var parallelOption = modelUtil.normalizeToArray(option.parallel)[parallelIndex];\n\n    if (parallelOption && parallelOption.parallelAxisDefault) {\n      zrUtil.merge(axisOption, parallelOption.parallelAxisDefault, false);\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component';\nimport { each, bind, extend } from 'zrender/lib/core/util';\nimport { createOrUpdate } from '../../util/throttle';\nvar CLICK_THRESHOLD = 5;\n\nvar ParallelView = function (_super) {\n  __extends(ParallelView, _super);\n\n  function ParallelView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ParallelView.type;\n    return _this;\n  }\n\n  ParallelView.prototype.render = function (parallelModel, ecModel, api) {\n    this._model = parallelModel;\n    this._api = api;\n\n    if (!this._handlers) {\n      this._handlers = {};\n      each(handlers, function (handler, eventName) {\n        api.getZr().on(eventName, this._handlers[eventName] = bind(handler, this));\n      }, this);\n    }\n\n    createOrUpdate(this, '_throttledDispatchExpand', parallelModel.get('axisExpandRate'), 'fixRate');\n  };\n\n  ParallelView.prototype.dispose = function (ecModel, api) {\n    each(this._handlers, function (handler, eventName) {\n      api.getZr().off(eventName, handler);\n    });\n    this._handlers = null;\n  };\n\n  ParallelView.prototype._throttledDispatchExpand = function (opt) {\n    this._dispatchExpand(opt);\n  };\n\n  ParallelView.prototype._dispatchExpand = function (opt) {\n    opt && this._api.dispatchAction(extend({\n      type: 'parallelAxisExpand'\n    }, opt));\n  };\n\n  ParallelView.type = 'parallel';\n  return ParallelView;\n}(ComponentView);\n\nvar handlers = {\n  mousedown: function (e) {\n    if (checkTrigger(this, 'click')) {\n      this._mouseDownPoint = [e.offsetX, e.offsetY];\n    }\n  },\n  mouseup: function (e) {\n    var mouseDownPoint = this._mouseDownPoint;\n\n    if (checkTrigger(this, 'click') && mouseDownPoint) {\n      var point = [e.offsetX, e.offsetY];\n      var dist = Math.pow(mouseDownPoint[0] - point[0], 2) + Math.pow(mouseDownPoint[1] - point[1], 2);\n\n      if (dist > CLICK_THRESHOLD) {\n        return;\n      }\n\n      var result = this._model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX, e.offsetY]);\n\n      result.behavior !== 'none' && this._dispatchExpand({\n        axisExpandWindow: result.axisExpandWindow\n      });\n    }\n\n    this._mouseDownPoint = null;\n  },\n  mousemove: function (e) {\n    if (this._mouseDownPoint || !checkTrigger(this, 'mousemove')) {\n      return;\n    }\n\n    var model = this._model;\n    var result = model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX, e.offsetY]);\n    var behavior = result.behavior;\n    behavior === 'jump' && this._throttledDispatchExpand.debounceNextCall(model.get('axisExpandDebounce'));\n\n    this._throttledDispatchExpand(behavior === 'none' ? null : {\n      axisExpandWindow: result.axisExpandWindow,\n      animation: behavior === 'jump' ? null : {\n        duration: 0\n      }\n    });\n  }\n};\n\nfunction checkTrigger(view, triggerOn) {\n  var model = view._model;\n  return model.get('axisExpandable') && model.get('axisExpandTriggerOn') === triggerOn;\n}\n\nexport default ParallelView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\n\nvar ParallelModel = function (_super) {\n  __extends(ParallelModel, _super);\n\n  function ParallelModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ParallelModel.type;\n    return _this;\n  }\n\n  ParallelModel.prototype.init = function () {\n    _super.prototype.init.apply(this, arguments);\n\n    this.mergeOption({});\n  };\n\n  ParallelModel.prototype.mergeOption = function (newOption) {\n    var thisOption = this.option;\n    newOption && zrUtil.merge(thisOption, newOption, true);\n\n    this._initDimensions();\n  };\n\n  ParallelModel.prototype.contains = function (model, ecModel) {\n    var parallelIndex = model.get('parallelIndex');\n    return parallelIndex != null && ecModel.getComponent('parallel', parallelIndex) === this;\n  };\n\n  ParallelModel.prototype.setAxisExpand = function (opt) {\n    zrUtil.each(['axisExpandable', 'axisExpandCenter', 'axisExpandCount', 'axisExpandWidth', 'axisExpandWindow'], function (name) {\n      if (opt.hasOwnProperty(name)) {\n        this.option[name] = opt[name];\n      }\n    }, this);\n  };\n\n  ParallelModel.prototype._initDimensions = function () {\n    var dimensions = this.dimensions = [];\n    var parallelAxisIndex = this.parallelAxisIndex = [];\n    var axisModels = zrUtil.filter(this.ecModel.queryComponents({\n      mainType: 'parallelAxis'\n    }), function (axisModel) {\n      return (axisModel.get('parallelIndex') || 0) === this.componentIndex;\n    }, this);\n    zrUtil.each(axisModels, function (axisModel) {\n      dimensions.push('dim' + axisModel.get('dim'));\n      parallelAxisIndex.push(axisModel.componentIndex);\n    });\n  };\n\n  ParallelModel.type = 'parallel';\n  ParallelModel.dependencies = ['parallelAxis'];\n  ParallelModel.layoutMode = 'box';\n  ParallelModel.defaultOption = {\n    zlevel: 0,\n    z: 0,\n    left: 80,\n    top: 60,\n    right: 80,\n    bottom: 60,\n    layout: 'horizontal',\n    axisExpandable: false,\n    axisExpandCenter: null,\n    axisExpandCount: 0,\n    axisExpandWidth: 50,\n    axisExpandRate: 17,\n    axisExpandDebounce: 50,\n    axisExpandSlideTriggerArea: [-0.15, 0.05, 0.4],\n    axisExpandTriggerOn: 'click',\n    parallelAxisDefault: null\n  };\n  return ParallelModel;\n}(ComponentModel);\n\nexport default ParallelModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis';\n\nvar ParallelAxis = function (_super) {\n  __extends(ParallelAxis, _super);\n\n  function ParallelAxis(dim, scale, coordExtent, axisType, axisIndex) {\n    var _this = _super.call(this, dim, scale, coordExtent) || this;\n\n    _this.type = axisType || 'value';\n    _this.axisIndex = axisIndex;\n    return _this;\n  }\n\n  ParallelAxis.prototype.isHorizontal = function () {\n    return this.coordinateSystem.getModel().get('layout') !== 'horizontal';\n  };\n\n  return ParallelAxis;\n}(Axis);\n\nexport default ParallelAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function sliderMove(delta, handleEnds, extent, handleIndex, minSpan, maxSpan) {\n  delta = delta || 0;\n  var extentSpan = extent[1] - extent[0];\n\n  if (minSpan != null) {\n    minSpan = restrict(minSpan, [0, extentSpan]);\n  }\n\n  if (maxSpan != null) {\n    maxSpan = Math.max(maxSpan, minSpan != null ? minSpan : 0);\n  }\n\n  if (handleIndex === 'all') {\n    var handleSpan = Math.abs(handleEnds[1] - handleEnds[0]);\n    handleSpan = restrict(handleSpan, [0, extentSpan]);\n    minSpan = maxSpan = restrict(handleSpan, [minSpan, maxSpan]);\n    handleIndex = 0;\n  }\n\n  handleEnds[0] = restrict(handleEnds[0], extent);\n  handleEnds[1] = restrict(handleEnds[1], extent);\n  var originalDistSign = getSpanSign(handleEnds, handleIndex);\n  handleEnds[handleIndex] += delta;\n  var extentMinSpan = minSpan || 0;\n  var realExtent = extent.slice();\n  originalDistSign.sign < 0 ? realExtent[0] += extentMinSpan : realExtent[1] -= extentMinSpan;\n  handleEnds[handleIndex] = restrict(handleEnds[handleIndex], realExtent);\n  var currDistSign;\n  currDistSign = getSpanSign(handleEnds, handleIndex);\n\n  if (minSpan != null && (currDistSign.sign !== originalDistSign.sign || currDistSign.span < minSpan)) {\n    handleEnds[1 - handleIndex] = handleEnds[handleIndex] + originalDistSign.sign * minSpan;\n  }\n\n  currDistSign = getSpanSign(handleEnds, handleIndex);\n\n  if (maxSpan != null && currDistSign.span > maxSpan) {\n    handleEnds[1 - handleIndex] = handleEnds[handleIndex] + currDistSign.sign * maxSpan;\n  }\n\n  return handleEnds;\n}\n\nfunction getSpanSign(handleEnds, handleIndex) {\n  var dist = handleEnds[handleIndex] - handleEnds[1 - handleIndex];\n  return {\n    span: Math.abs(dist),\n    sign: dist > 0 ? -1 : dist < 0 ? 1 : handleIndex ? -1 : 1\n  };\n}\n\nfunction restrict(value, extend) {\n  return Math.min(extend[1] != null ? extend[1] : Infinity, Math.max(extend[0] != null ? extend[0] : -Infinity, value));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport * as layoutUtil from '../../util/layout';\nimport * as axisHelper from '../../coord/axisHelper';\nimport ParallelAxis from './ParallelAxis';\nimport * as graphic from '../../util/graphic';\nimport * as numberUtil from '../../util/number';\nimport sliderMove from '../../component/helper/sliderMove';\nvar each = zrUtil.each;\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathFloor = Math.floor;\nvar mathCeil = Math.ceil;\nvar round = numberUtil.round;\nvar PI = Math.PI;\n\nvar Parallel = function () {\n  function Parallel(parallelModel, ecModel, api) {\n    this.type = 'parallel';\n    this._axesMap = zrUtil.createHashMap();\n    this._axesLayout = {};\n    this.dimensions = parallelModel.dimensions;\n    this._model = parallelModel;\n\n    this._init(parallelModel, ecModel, api);\n  }\n\n  Parallel.prototype._init = function (parallelModel, ecModel, api) {\n    var dimensions = parallelModel.dimensions;\n    var parallelAxisIndex = parallelModel.parallelAxisIndex;\n    each(dimensions, function (dim, idx) {\n      var axisIndex = parallelAxisIndex[idx];\n      var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\n\n      var axis = this._axesMap.set(dim, new ParallelAxis(dim, axisHelper.createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisIndex));\n\n      var isCategory = axis.type === 'category';\n      axis.onBand = isCategory && axisModel.get('boundaryGap');\n      axis.inverse = axisModel.get('inverse');\n      axisModel.axis = axis;\n      axis.model = axisModel;\n      axis.coordinateSystem = axisModel.coordinateSystem = this;\n    }, this);\n  };\n\n  Parallel.prototype.update = function (ecModel, api) {\n    this._updateAxesFromSeries(this._model, ecModel);\n  };\n\n  Parallel.prototype.containPoint = function (point) {\n    var layoutInfo = this._makeLayoutInfo();\n\n    var axisBase = layoutInfo.axisBase;\n    var layoutBase = layoutInfo.layoutBase;\n    var pixelDimIndex = layoutInfo.pixelDimIndex;\n    var pAxis = point[1 - pixelDimIndex];\n    var pLayout = point[pixelDimIndex];\n    return pAxis >= axisBase && pAxis <= axisBase + layoutInfo.axisLength && pLayout >= layoutBase && pLayout <= layoutBase + layoutInfo.layoutLength;\n  };\n\n  Parallel.prototype.getModel = function () {\n    return this._model;\n  };\n\n  Parallel.prototype._updateAxesFromSeries = function (parallelModel, ecModel) {\n    ecModel.eachSeries(function (seriesModel) {\n      if (!parallelModel.contains(seriesModel, ecModel)) {\n        return;\n      }\n\n      var data = seriesModel.getData();\n      each(this.dimensions, function (dim) {\n        var axis = this._axesMap.get(dim);\n\n        axis.scale.unionExtentFromData(data, data.mapDimension(dim));\n        axisHelper.niceScaleExtent(axis.scale, axis.model);\n      }, this);\n    }, this);\n  };\n\n  Parallel.prototype.resize = function (parallelModel, api) {\n    this._rect = layoutUtil.getLayoutRect(parallelModel.getBoxLayoutParams(), {\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n\n    this._layoutAxes();\n  };\n\n  Parallel.prototype.getRect = function () {\n    return this._rect;\n  };\n\n  Parallel.prototype._makeLayoutInfo = function () {\n    var parallelModel = this._model;\n    var rect = this._rect;\n    var xy = ['x', 'y'];\n    var wh = ['width', 'height'];\n    var layout = parallelModel.get('layout');\n    var pixelDimIndex = layout === 'horizontal' ? 0 : 1;\n    var layoutLength = rect[wh[pixelDimIndex]];\n    var layoutExtent = [0, layoutLength];\n    var axisCount = this.dimensions.length;\n    var axisExpandWidth = restrict(parallelModel.get('axisExpandWidth'), layoutExtent);\n    var axisExpandCount = restrict(parallelModel.get('axisExpandCount') || 0, [0, axisCount]);\n    var axisExpandable = parallelModel.get('axisExpandable') && axisCount > 3 && axisCount > axisExpandCount && axisExpandCount > 1 && axisExpandWidth > 0 && layoutLength > 0;\n    var axisExpandWindow = parallelModel.get('axisExpandWindow');\n    var winSize;\n\n    if (!axisExpandWindow) {\n      winSize = restrict(axisExpandWidth * (axisExpandCount - 1), layoutExtent);\n      var axisExpandCenter = parallelModel.get('axisExpandCenter') || mathFloor(axisCount / 2);\n      axisExpandWindow = [axisExpandWidth * axisExpandCenter - winSize / 2];\n      axisExpandWindow[1] = axisExpandWindow[0] + winSize;\n    } else {\n      winSize = restrict(axisExpandWindow[1] - axisExpandWindow[0], layoutExtent);\n      axisExpandWindow[1] = axisExpandWindow[0] + winSize;\n    }\n\n    var axisCollapseWidth = (layoutLength - winSize) / (axisCount - axisExpandCount);\n    axisCollapseWidth < 3 && (axisCollapseWidth = 0);\n    var winInnerIndices = [mathFloor(round(axisExpandWindow[0] / axisExpandWidth, 1)) + 1, mathCeil(round(axisExpandWindow[1] / axisExpandWidth, 1)) - 1];\n    var axisExpandWindow0Pos = axisCollapseWidth / axisExpandWidth * axisExpandWindow[0];\n    return {\n      layout: layout,\n      pixelDimIndex: pixelDimIndex,\n      layoutBase: rect[xy[pixelDimIndex]],\n      layoutLength: layoutLength,\n      axisBase: rect[xy[1 - pixelDimIndex]],\n      axisLength: rect[wh[1 - pixelDimIndex]],\n      axisExpandable: axisExpandable,\n      axisExpandWidth: axisExpandWidth,\n      axisCollapseWidth: axisCollapseWidth,\n      axisExpandWindow: axisExpandWindow,\n      axisCount: axisCount,\n      winInnerIndices: winInnerIndices,\n      axisExpandWindow0Pos: axisExpandWindow0Pos\n    };\n  };\n\n  Parallel.prototype._layoutAxes = function () {\n    var rect = this._rect;\n    var axes = this._axesMap;\n    var dimensions = this.dimensions;\n\n    var layoutInfo = this._makeLayoutInfo();\n\n    var layout = layoutInfo.layout;\n    axes.each(function (axis) {\n      var axisExtent = [0, layoutInfo.axisLength];\n      var idx = axis.inverse ? 1 : 0;\n      axis.setExtent(axisExtent[idx], axisExtent[1 - idx]);\n    });\n    each(dimensions, function (dim, idx) {\n      var posInfo = (layoutInfo.axisExpandable ? layoutAxisWithExpand : layoutAxisWithoutExpand)(idx, layoutInfo);\n      var positionTable = {\n        horizontal: {\n          x: posInfo.position,\n          y: layoutInfo.axisLength\n        },\n        vertical: {\n          x: 0,\n          y: posInfo.position\n        }\n      };\n      var rotationTable = {\n        horizontal: PI / 2,\n        vertical: 0\n      };\n      var position = [positionTable[layout].x + rect.x, positionTable[layout].y + rect.y];\n      var rotation = rotationTable[layout];\n      var transform = matrix.create();\n      matrix.rotate(transform, transform, rotation);\n      matrix.translate(transform, transform, position);\n      this._axesLayout[dim] = {\n        position: position,\n        rotation: rotation,\n        transform: transform,\n        axisNameAvailableWidth: posInfo.axisNameAvailableWidth,\n        axisLabelShow: posInfo.axisLabelShow,\n        nameTruncateMaxWidth: posInfo.nameTruncateMaxWidth,\n        tickDirection: 1,\n        labelDirection: 1\n      };\n    }, this);\n  };\n\n  Parallel.prototype.getAxis = function (dim) {\n    return this._axesMap.get(dim);\n  };\n\n  Parallel.prototype.dataToPoint = function (value, dim) {\n    return this.axisCoordToPoint(this._axesMap.get(dim).dataToCoord(value), dim);\n  };\n\n  Parallel.prototype.eachActiveState = function (data, callback, start, end) {\n    start == null && (start = 0);\n    end == null && (end = data.count());\n    var axesMap = this._axesMap;\n    var dimensions = this.dimensions;\n    var dataDimensions = [];\n    var axisModels = [];\n    zrUtil.each(dimensions, function (axisDim) {\n      dataDimensions.push(data.mapDimension(axisDim));\n      axisModels.push(axesMap.get(axisDim).model);\n    });\n    var hasActiveSet = this.hasAxisBrushed();\n\n    for (var dataIndex = start; dataIndex < end; dataIndex++) {\n      var activeState = void 0;\n\n      if (!hasActiveSet) {\n        activeState = 'normal';\n      } else {\n        activeState = 'active';\n        var values = data.getValues(dataDimensions, dataIndex);\n\n        for (var j = 0, lenj = dimensions.length; j < lenj; j++) {\n          var state = axisModels[j].getActiveState(values[j]);\n\n          if (state === 'inactive') {\n            activeState = 'inactive';\n            break;\n          }\n        }\n      }\n\n      callback(activeState, dataIndex);\n    }\n  };\n\n  Parallel.prototype.hasAxisBrushed = function () {\n    var dimensions = this.dimensions;\n    var axesMap = this._axesMap;\n    var hasActiveSet = false;\n\n    for (var j = 0, lenj = dimensions.length; j < lenj; j++) {\n      if (axesMap.get(dimensions[j]).model.getActiveState() !== 'normal') {\n        hasActiveSet = true;\n      }\n    }\n\n    return hasActiveSet;\n  };\n\n  Parallel.prototype.axisCoordToPoint = function (coord, dim) {\n    var axisLayout = this._axesLayout[dim];\n    return graphic.applyTransform([coord, 0], axisLayout.transform);\n  };\n\n  Parallel.prototype.getAxisLayout = function (dim) {\n    return zrUtil.clone(this._axesLayout[dim]);\n  };\n\n  Parallel.prototype.getSlidedAxisExpandWindow = function (point) {\n    var layoutInfo = this._makeLayoutInfo();\n\n    var pixelDimIndex = layoutInfo.pixelDimIndex;\n    var axisExpandWindow = layoutInfo.axisExpandWindow.slice();\n    var winSize = axisExpandWindow[1] - axisExpandWindow[0];\n    var extent = [0, layoutInfo.axisExpandWidth * (layoutInfo.axisCount - 1)];\n\n    if (!this.containPoint(point)) {\n      return {\n        behavior: 'none',\n        axisExpandWindow: axisExpandWindow\n      };\n    }\n\n    var pointCoord = point[pixelDimIndex] - layoutInfo.layoutBase - layoutInfo.axisExpandWindow0Pos;\n    var delta;\n    var behavior = 'slide';\n    var axisCollapseWidth = layoutInfo.axisCollapseWidth;\n\n    var triggerArea = this._model.get('axisExpandSlideTriggerArea');\n\n    var useJump = triggerArea[0] != null;\n\n    if (axisCollapseWidth) {\n      if (useJump && axisCollapseWidth && pointCoord < winSize * triggerArea[0]) {\n        behavior = 'jump';\n        delta = pointCoord - winSize * triggerArea[2];\n      } else if (useJump && axisCollapseWidth && pointCoord > winSize * (1 - triggerArea[0])) {\n        behavior = 'jump';\n        delta = pointCoord - winSize * (1 - triggerArea[2]);\n      } else {\n        (delta = pointCoord - winSize * triggerArea[1]) >= 0 && (delta = pointCoord - winSize * (1 - triggerArea[1])) <= 0 && (delta = 0);\n      }\n\n      delta *= layoutInfo.axisExpandWidth / axisCollapseWidth;\n      delta ? sliderMove(delta, axisExpandWindow, extent, 'all') : behavior = 'none';\n    } else {\n      var winSize2 = axisExpandWindow[1] - axisExpandWindow[0];\n      var pos = extent[1] * pointCoord / winSize2;\n      axisExpandWindow = [mathMax(0, pos - winSize2 / 2)];\n      axisExpandWindow[1] = mathMin(extent[1], axisExpandWindow[0] + winSize2);\n      axisExpandWindow[0] = axisExpandWindow[1] - winSize2;\n    }\n\n    return {\n      axisExpandWindow: axisExpandWindow,\n      behavior: behavior\n    };\n  };\n\n  return Parallel;\n}();\n\nfunction restrict(len, extent) {\n  return mathMin(mathMax(len, extent[0]), extent[1]);\n}\n\nfunction layoutAxisWithoutExpand(axisIndex, layoutInfo) {\n  var step = layoutInfo.layoutLength / (layoutInfo.axisCount - 1);\n  return {\n    position: step * axisIndex,\n    axisNameAvailableWidth: step,\n    axisLabelShow: true\n  };\n}\n\nfunction layoutAxisWithExpand(axisIndex, layoutInfo) {\n  var layoutLength = layoutInfo.layoutLength;\n  var axisExpandWidth = layoutInfo.axisExpandWidth;\n  var axisCount = layoutInfo.axisCount;\n  var axisCollapseWidth = layoutInfo.axisCollapseWidth;\n  var winInnerIndices = layoutInfo.winInnerIndices;\n  var position;\n  var axisNameAvailableWidth = axisCollapseWidth;\n  var axisLabelShow = false;\n  var nameTruncateMaxWidth;\n\n  if (axisIndex < winInnerIndices[0]) {\n    position = axisIndex * axisCollapseWidth;\n    nameTruncateMaxWidth = axisCollapseWidth;\n  } else if (axisIndex <= winInnerIndices[1]) {\n    position = layoutInfo.axisExpandWindow0Pos + axisIndex * axisExpandWidth - layoutInfo.axisExpandWindow[0];\n    axisNameAvailableWidth = axisExpandWidth;\n    axisLabelShow = true;\n  } else {\n    position = layoutLength - (axisCount - 1 - axisIndex) * axisCollapseWidth;\n    nameTruncateMaxWidth = axisCollapseWidth;\n  }\n\n  return {\n    position: position,\n    axisNameAvailableWidth: axisNameAvailableWidth,\n    axisLabelShow: axisLabelShow,\n    nameTruncateMaxWidth: nameTruncateMaxWidth\n  };\n}\n\nexport default Parallel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Parallel from './Parallel';\nimport { SINGLE_REFERRING } from '../../util/model';\n\nfunction createParallelCoordSys(ecModel, api) {\n  var coordSysList = [];\n  ecModel.eachComponent('parallel', function (parallelModel, idx) {\n    var coordSys = new Parallel(parallelModel, ecModel, api);\n    coordSys.name = 'parallel_' + idx;\n    coordSys.resize(parallelModel, api);\n    parallelModel.coordinateSystem = coordSys;\n    coordSys.model = parallelModel;\n    coordSysList.push(coordSys);\n  });\n  ecModel.eachSeries(function (seriesModel) {\n    if (seriesModel.get('coordinateSystem') === 'parallel') {\n      var parallelModel = seriesModel.getReferringComponents('parallel', SINGLE_REFERRING).models[0];\n      seriesModel.coordinateSystem = parallelModel.coordinateSystem;\n    }\n  });\n  return coordSysList;\n}\n\nvar parallelCoordSysCreator = {\n  create: createParallelCoordSys\n};\nexport default parallelCoordSysCreator;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\nimport makeStyleMapper from '../../model/mixin/makeStyleMapper';\nimport * as numberUtil from '../../util/number';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin';\n\nvar ParallelAxisModel = function (_super) {\n  __extends(ParallelAxisModel, _super);\n\n  function ParallelAxisModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ParallelAxisModel.type;\n    _this.activeIntervals = [];\n    return _this;\n  }\n\n  ParallelAxisModel.prototype.getAreaSelectStyle = function () {\n    return makeStyleMapper([['fill', 'color'], ['lineWidth', 'borderWidth'], ['stroke', 'borderColor'], ['width', 'width'], ['opacity', 'opacity']])(this.getModel('areaSelectStyle'));\n  };\n\n  ParallelAxisModel.prototype.setActiveIntervals = function (intervals) {\n    var activeIntervals = this.activeIntervals = zrUtil.clone(intervals);\n\n    if (activeIntervals) {\n      for (var i = activeIntervals.length - 1; i >= 0; i--) {\n        numberUtil.asc(activeIntervals[i]);\n      }\n    }\n  };\n\n  ParallelAxisModel.prototype.getActiveState = function (value) {\n    var activeIntervals = this.activeIntervals;\n\n    if (!activeIntervals.length) {\n      return 'normal';\n    }\n\n    if (value == null || isNaN(+value)) {\n      return 'inactive';\n    }\n\n    if (activeIntervals.length === 1) {\n      var interval = activeIntervals[0];\n\n      if (interval[0] <= value && value <= interval[1]) {\n        return 'active';\n      }\n    } else {\n      for (var i = 0, len = activeIntervals.length; i < len; i++) {\n        if (activeIntervals[i][0] <= value && value <= activeIntervals[i][1]) {\n          return 'active';\n        }\n      }\n    }\n\n    return 'inactive';\n  };\n\n  return ParallelAxisModel;\n}(ComponentModel);\n\nzrUtil.mixin(ParallelAxisModel, AxisModelCommonMixin);\nexport default ParallelAxisModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { curry, each, map, bind, merge, clone, defaults, assert } from 'zrender/lib/core/util';\nimport Eventful from 'zrender/lib/core/Eventful';\nimport * as graphic from '../../util/graphic';\nimport * as interactionMutex from './interactionMutex';\nimport DataDiffer from '../../data/DataDiffer';\nvar BRUSH_PANEL_GLOBAL = true;\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathPow = Math.pow;\nvar COVER_Z = 10000;\nvar UNSELECT_THRESHOLD = 6;\nvar MIN_RESIZE_LINE_WIDTH = 6;\nvar MUTEX_RESOURCE_KEY = 'globalPan';\nvar DIRECTION_MAP = {\n  w: [0, 0],\n  e: [0, 1],\n  n: [1, 0],\n  s: [1, 1]\n};\nvar CURSOR_MAP = {\n  w: 'ew',\n  e: 'ew',\n  n: 'ns',\n  s: 'ns',\n  ne: 'nesw',\n  sw: 'nesw',\n  nw: 'nwse',\n  se: 'nwse'\n};\nvar DEFAULT_BRUSH_OPT = {\n  brushStyle: {\n    lineWidth: 2,\n    stroke: 'rgba(210,219,238,0.3)',\n    fill: '#D2DBEE'\n  },\n  transformable: true,\n  brushMode: 'single',\n  removeOnClick: false\n};\nvar baseUID = 0;\n\nvar BrushController = function (_super) {\n  __extends(BrushController, _super);\n\n  function BrushController(zr) {\n    var _this = _super.call(this) || this;\n\n    _this._track = [];\n    _this._covers = [];\n    _this._handlers = {};\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(zr);\n    }\n\n    _this._zr = zr;\n    _this.group = new graphic.Group();\n    _this._uid = 'brushController_' + baseUID++;\n    each(pointerHandlers, function (handler, eventName) {\n      this._handlers[eventName] = bind(handler, this);\n    }, _this);\n    return _this;\n  }\n\n  BrushController.prototype.enableBrush = function (brushOption) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(this._mounted);\n    }\n\n    this._brushType && this._doDisableBrush();\n    brushOption.brushType && this._doEnableBrush(brushOption);\n    return this;\n  };\n\n  BrushController.prototype._doEnableBrush = function (brushOption) {\n    var zr = this._zr;\n\n    if (!this._enableGlobalPan) {\n      interactionMutex.take(zr, MUTEX_RESOURCE_KEY, this._uid);\n    }\n\n    each(this._handlers, function (handler, eventName) {\n      zr.on(eventName, handler);\n    });\n    this._brushType = brushOption.brushType;\n    this._brushOption = merge(clone(DEFAULT_BRUSH_OPT), brushOption, true);\n  };\n\n  BrushController.prototype._doDisableBrush = function () {\n    var zr = this._zr;\n    interactionMutex.release(zr, MUTEX_RESOURCE_KEY, this._uid);\n    each(this._handlers, function (handler, eventName) {\n      zr.off(eventName, handler);\n    });\n    this._brushType = this._brushOption = null;\n  };\n\n  BrushController.prototype.setPanels = function (panelOpts) {\n    if (panelOpts && panelOpts.length) {\n      var panels_1 = this._panels = {};\n      each(panelOpts, function (panelOpts) {\n        panels_1[panelOpts.panelId] = clone(panelOpts);\n      });\n    } else {\n      this._panels = null;\n    }\n\n    return this;\n  };\n\n  BrushController.prototype.mount = function (opt) {\n    opt = opt || {};\n\n    if (process.env.NODE_ENV !== 'production') {\n      this._mounted = true;\n    }\n\n    this._enableGlobalPan = opt.enableGlobalPan;\n    var thisGroup = this.group;\n\n    this._zr.add(thisGroup);\n\n    thisGroup.attr({\n      x: opt.x || 0,\n      y: opt.y || 0,\n      rotation: opt.rotation || 0,\n      scaleX: opt.scaleX || 1,\n      scaleY: opt.scaleY || 1\n    });\n    this._transform = thisGroup.getLocalTransform();\n    return this;\n  };\n\n  BrushController.prototype.updateCovers = function (coverConfigList) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(this._mounted);\n    }\n\n    coverConfigList = map(coverConfigList, function (coverConfig) {\n      return merge(clone(DEFAULT_BRUSH_OPT), coverConfig, true);\n    });\n    var tmpIdPrefix = '\\0-brush-index-';\n    var oldCovers = this._covers;\n    var newCovers = this._covers = [];\n    var controller = this;\n    var creatingCover = this._creatingCover;\n    new DataDiffer(oldCovers, coverConfigList, oldGetKey, getKey).add(addOrUpdate).update(addOrUpdate).remove(remove).execute();\n    return this;\n\n    function getKey(brushOption, index) {\n      return (brushOption.id != null ? brushOption.id : tmpIdPrefix + index) + '-' + brushOption.brushType;\n    }\n\n    function oldGetKey(cover, index) {\n      return getKey(cover.__brushOption, index);\n    }\n\n    function addOrUpdate(newIndex, oldIndex) {\n      var newBrushInternal = coverConfigList[newIndex];\n\n      if (oldIndex != null && oldCovers[oldIndex] === creatingCover) {\n        newCovers[newIndex] = oldCovers[oldIndex];\n      } else {\n        var cover = newCovers[newIndex] = oldIndex != null ? (oldCovers[oldIndex].__brushOption = newBrushInternal, oldCovers[oldIndex]) : endCreating(controller, createCover(controller, newBrushInternal));\n        updateCoverAfterCreation(controller, cover);\n      }\n    }\n\n    function remove(oldIndex) {\n      if (oldCovers[oldIndex] !== creatingCover) {\n        controller.group.remove(oldCovers[oldIndex]);\n      }\n    }\n  };\n\n  BrushController.prototype.unmount = function () {\n    if (process.env.NODE_ENV !== 'production') {\n      if (!this._mounted) {\n        return;\n      }\n    }\n\n    this.enableBrush(false);\n    clearCovers(this);\n\n    this._zr.remove(this.group);\n\n    if (process.env.NODE_ENV !== 'production') {\n      this._mounted = false;\n    }\n\n    return this;\n  };\n\n  BrushController.prototype.dispose = function () {\n    this.unmount();\n    this.off();\n  };\n\n  return BrushController;\n}(Eventful);\n\nfunction createCover(controller, brushOption) {\n  var cover = coverRenderers[brushOption.brushType].createCover(controller, brushOption);\n  cover.__brushOption = brushOption;\n  updateZ(cover, brushOption);\n  controller.group.add(cover);\n  return cover;\n}\n\nfunction endCreating(controller, creatingCover) {\n  var coverRenderer = getCoverRenderer(creatingCover);\n\n  if (coverRenderer.endCreating) {\n    coverRenderer.endCreating(controller, creatingCover);\n    updateZ(creatingCover, creatingCover.__brushOption);\n  }\n\n  return creatingCover;\n}\n\nfunction updateCoverShape(controller, cover) {\n  var brushOption = cover.__brushOption;\n  getCoverRenderer(cover).updateCoverShape(controller, cover, brushOption.range, brushOption);\n}\n\nfunction updateZ(cover, brushOption) {\n  var z = brushOption.z;\n  z == null && (z = COVER_Z);\n  cover.traverse(function (el) {\n    el.z = z;\n    el.z2 = z;\n  });\n}\n\nfunction updateCoverAfterCreation(controller, cover) {\n  getCoverRenderer(cover).updateCommon(controller, cover);\n  updateCoverShape(controller, cover);\n}\n\nfunction getCoverRenderer(cover) {\n  return coverRenderers[cover.__brushOption.brushType];\n}\n\nfunction getPanelByPoint(controller, e, localCursorPoint) {\n  var panels = controller._panels;\n\n  if (!panels) {\n    return BRUSH_PANEL_GLOBAL;\n  }\n\n  var panel;\n  var transform = controller._transform;\n  each(panels, function (pn) {\n    pn.isTargetByCursor(e, localCursorPoint, transform) && (panel = pn);\n  });\n  return panel;\n}\n\nfunction getPanelByCover(controller, cover) {\n  var panels = controller._panels;\n\n  if (!panels) {\n    return BRUSH_PANEL_GLOBAL;\n  }\n\n  var panelId = cover.__brushOption.panelId;\n  return panelId != null ? panels[panelId] : BRUSH_PANEL_GLOBAL;\n}\n\nfunction clearCovers(controller) {\n  var covers = controller._covers;\n  var originalLength = covers.length;\n  each(covers, function (cover) {\n    controller.group.remove(cover);\n  }, controller);\n  covers.length = 0;\n  return !!originalLength;\n}\n\nfunction trigger(controller, opt) {\n  var areas = map(controller._covers, function (cover) {\n    var brushOption = cover.__brushOption;\n    var range = clone(brushOption.range);\n    return {\n      brushType: brushOption.brushType,\n      panelId: brushOption.panelId,\n      range: range\n    };\n  });\n  controller.trigger('brush', {\n    areas: areas,\n    isEnd: !!opt.isEnd,\n    removeOnClick: !!opt.removeOnClick\n  });\n}\n\nfunction shouldShowCover(controller) {\n  var track = controller._track;\n\n  if (!track.length) {\n    return false;\n  }\n\n  var p2 = track[track.length - 1];\n  var p1 = track[0];\n  var dx = p2[0] - p1[0];\n  var dy = p2[1] - p1[1];\n  var dist = mathPow(dx * dx + dy * dy, 0.5);\n  return dist > UNSELECT_THRESHOLD;\n}\n\nfunction getTrackEnds(track) {\n  var tail = track.length - 1;\n  tail < 0 && (tail = 0);\n  return [track[0], track[tail]];\n}\n\n;\n\nfunction createBaseRectCover(rectRangeConverter, controller, brushOption, edgeNameSequences) {\n  var cover = new graphic.Group();\n  cover.add(new graphic.Rect({\n    name: 'main',\n    style: makeStyle(brushOption),\n    silent: true,\n    draggable: true,\n    cursor: 'move',\n    drift: curry(driftRect, rectRangeConverter, controller, cover, ['n', 's', 'w', 'e']),\n    ondragend: curry(trigger, controller, {\n      isEnd: true\n    })\n  }));\n  each(edgeNameSequences, function (nameSequence) {\n    cover.add(new graphic.Rect({\n      name: nameSequence.join(''),\n      style: {\n        opacity: 0\n      },\n      draggable: true,\n      silent: true,\n      invisible: true,\n      drift: curry(driftRect, rectRangeConverter, controller, cover, nameSequence),\n      ondragend: curry(trigger, controller, {\n        isEnd: true\n      })\n    }));\n  });\n  return cover;\n}\n\nfunction updateBaseRect(controller, cover, localRange, brushOption) {\n  var lineWidth = brushOption.brushStyle.lineWidth || 0;\n  var handleSize = mathMax(lineWidth, MIN_RESIZE_LINE_WIDTH);\n  var x = localRange[0][0];\n  var y = localRange[1][0];\n  var xa = x - lineWidth / 2;\n  var ya = y - lineWidth / 2;\n  var x2 = localRange[0][1];\n  var y2 = localRange[1][1];\n  var x2a = x2 - handleSize + lineWidth / 2;\n  var y2a = y2 - handleSize + lineWidth / 2;\n  var width = x2 - x;\n  var height = y2 - y;\n  var widtha = width + lineWidth;\n  var heighta = height + lineWidth;\n  updateRectShape(controller, cover, 'main', x, y, width, height);\n\n  if (brushOption.transformable) {\n    updateRectShape(controller, cover, 'w', xa, ya, handleSize, heighta);\n    updateRectShape(controller, cover, 'e', x2a, ya, handleSize, heighta);\n    updateRectShape(controller, cover, 'n', xa, ya, widtha, handleSize);\n    updateRectShape(controller, cover, 's', xa, y2a, widtha, handleSize);\n    updateRectShape(controller, cover, 'nw', xa, ya, handleSize, handleSize);\n    updateRectShape(controller, cover, 'ne', x2a, ya, handleSize, handleSize);\n    updateRectShape(controller, cover, 'sw', xa, y2a, handleSize, handleSize);\n    updateRectShape(controller, cover, 'se', x2a, y2a, handleSize, handleSize);\n  }\n}\n\nfunction updateCommon(controller, cover) {\n  var brushOption = cover.__brushOption;\n  var transformable = brushOption.transformable;\n  var mainEl = cover.childAt(0);\n  mainEl.useStyle(makeStyle(brushOption));\n  mainEl.attr({\n    silent: !transformable,\n    cursor: transformable ? 'move' : 'default'\n  });\n  each([['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w']], function (nameSequence) {\n    var el = cover.childOfName(nameSequence.join(''));\n    var globalDir = nameSequence.length === 1 ? getGlobalDirection1(controller, nameSequence[0]) : getGlobalDirection2(controller, nameSequence);\n    el && el.attr({\n      silent: !transformable,\n      invisible: !transformable,\n      cursor: transformable ? CURSOR_MAP[globalDir] + '-resize' : null\n    });\n  });\n}\n\nfunction updateRectShape(controller, cover, name, x, y, w, h) {\n  var el = cover.childOfName(name);\n  el && el.setShape(pointsToRect(clipByPanel(controller, cover, [[x, y], [x + w, y + h]])));\n}\n\nfunction makeStyle(brushOption) {\n  return defaults({\n    strokeNoScale: true\n  }, brushOption.brushStyle);\n}\n\nfunction formatRectRange(x, y, x2, y2) {\n  var min = [mathMin(x, x2), mathMin(y, y2)];\n  var max = [mathMax(x, x2), mathMax(y, y2)];\n  return [[min[0], max[0]], [min[1], max[1]]];\n}\n\nfunction getTransform(controller) {\n  return graphic.getTransform(controller.group);\n}\n\nfunction getGlobalDirection1(controller, localDirName) {\n  var map = {\n    w: 'left',\n    e: 'right',\n    n: 'top',\n    s: 'bottom'\n  };\n  var inverseMap = {\n    left: 'w',\n    right: 'e',\n    top: 'n',\n    bottom: 's'\n  };\n  var dir = graphic.transformDirection(map[localDirName], getTransform(controller));\n  return inverseMap[dir];\n}\n\nfunction getGlobalDirection2(controller, localDirNameSeq) {\n  var globalDir = [getGlobalDirection1(controller, localDirNameSeq[0]), getGlobalDirection1(controller, localDirNameSeq[1])];\n  (globalDir[0] === 'e' || globalDir[0] === 'w') && globalDir.reverse();\n  return globalDir.join('');\n}\n\nfunction driftRect(rectRangeConverter, controller, cover, dirNameSequence, dx, dy) {\n  var brushOption = cover.__brushOption;\n  var rectRange = rectRangeConverter.toRectRange(brushOption.range);\n  var localDelta = toLocalDelta(controller, dx, dy);\n  each(dirNameSequence, function (dirName) {\n    var ind = DIRECTION_MAP[dirName];\n    rectRange[ind[0]][ind[1]] += localDelta[ind[0]];\n  });\n  brushOption.range = rectRangeConverter.fromRectRange(formatRectRange(rectRange[0][0], rectRange[1][0], rectRange[0][1], rectRange[1][1]));\n  updateCoverAfterCreation(controller, cover);\n  trigger(controller, {\n    isEnd: false\n  });\n}\n\nfunction driftPolygon(controller, cover, dx, dy) {\n  var range = cover.__brushOption.range;\n  var localDelta = toLocalDelta(controller, dx, dy);\n  each(range, function (point) {\n    point[0] += localDelta[0];\n    point[1] += localDelta[1];\n  });\n  updateCoverAfterCreation(controller, cover);\n  trigger(controller, {\n    isEnd: false\n  });\n}\n\nfunction toLocalDelta(controller, dx, dy) {\n  var thisGroup = controller.group;\n  var localD = thisGroup.transformCoordToLocal(dx, dy);\n  var localZero = thisGroup.transformCoordToLocal(0, 0);\n  return [localD[0] - localZero[0], localD[1] - localZero[1]];\n}\n\nfunction clipByPanel(controller, cover, data) {\n  var panel = getPanelByCover(controller, cover);\n  return panel && panel !== BRUSH_PANEL_GLOBAL ? panel.clipPath(data, controller._transform) : clone(data);\n}\n\nfunction pointsToRect(points) {\n  var xmin = mathMin(points[0][0], points[1][0]);\n  var ymin = mathMin(points[0][1], points[1][1]);\n  var xmax = mathMax(points[0][0], points[1][0]);\n  var ymax = mathMax(points[0][1], points[1][1]);\n  return {\n    x: xmin,\n    y: ymin,\n    width: xmax - xmin,\n    height: ymax - ymin\n  };\n}\n\nfunction resetCursor(controller, e, localCursorPoint) {\n  if (!controller._brushType || isOutsideZrArea(controller, e.offsetX, e.offsetY)) {\n    return;\n  }\n\n  var zr = controller._zr;\n  var covers = controller._covers;\n  var currPanel = getPanelByPoint(controller, e, localCursorPoint);\n\n  if (!controller._dragging) {\n    for (var i = 0; i < covers.length; i++) {\n      var brushOption = covers[i].__brushOption;\n\n      if (currPanel && (currPanel === BRUSH_PANEL_GLOBAL || brushOption.panelId === currPanel.panelId) && coverRenderers[brushOption.brushType].contain(covers[i], localCursorPoint[0], localCursorPoint[1])) {\n        return;\n      }\n    }\n  }\n\n  currPanel && zr.setCursorStyle('crosshair');\n}\n\nfunction preventDefault(e) {\n  var rawE = e.event;\n  rawE.preventDefault && rawE.preventDefault();\n}\n\nfunction mainShapeContain(cover, x, y) {\n  return cover.childOfName('main').contain(x, y);\n}\n\nfunction updateCoverByMouse(controller, e, localCursorPoint, isEnd) {\n  var creatingCover = controller._creatingCover;\n  var panel = controller._creatingPanel;\n  var thisBrushOption = controller._brushOption;\n  var eventParams;\n\n  controller._track.push(localCursorPoint.slice());\n\n  if (shouldShowCover(controller) || creatingCover) {\n    if (panel && !creatingCover) {\n      thisBrushOption.brushMode === 'single' && clearCovers(controller);\n      var brushOption = clone(thisBrushOption);\n      brushOption.brushType = determineBrushType(brushOption.brushType, panel);\n      brushOption.panelId = panel === BRUSH_PANEL_GLOBAL ? null : panel.panelId;\n      creatingCover = controller._creatingCover = createCover(controller, brushOption);\n\n      controller._covers.push(creatingCover);\n    }\n\n    if (creatingCover) {\n      var coverRenderer = coverRenderers[determineBrushType(controller._brushType, panel)];\n      var coverBrushOption = creatingCover.__brushOption;\n      coverBrushOption.range = coverRenderer.getCreatingRange(clipByPanel(controller, creatingCover, controller._track));\n\n      if (isEnd) {\n        endCreating(controller, creatingCover);\n        coverRenderer.updateCommon(controller, creatingCover);\n      }\n\n      updateCoverShape(controller, creatingCover);\n      eventParams = {\n        isEnd: isEnd\n      };\n    }\n  } else if (isEnd && thisBrushOption.brushMode === 'single' && thisBrushOption.removeOnClick) {\n    if (getPanelByPoint(controller, e, localCursorPoint) && clearCovers(controller)) {\n      eventParams = {\n        isEnd: isEnd,\n        removeOnClick: true\n      };\n    }\n  }\n\n  return eventParams;\n}\n\nfunction determineBrushType(brushType, panel) {\n  if (brushType === 'auto') {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(panel && panel.defaultBrushType, 'MUST have defaultBrushType when brushType is \"atuo\"');\n    }\n\n    return panel.defaultBrushType;\n  }\n\n  return brushType;\n}\n\nvar pointerHandlers = {\n  mousedown: function (e) {\n    if (this._dragging) {\n      handleDragEnd(this, e);\n    } else if (!e.target || !e.target.draggable) {\n      preventDefault(e);\n      var localCursorPoint = this.group.transformCoordToLocal(e.offsetX, e.offsetY);\n      this._creatingCover = null;\n      var panel = this._creatingPanel = getPanelByPoint(this, e, localCursorPoint);\n\n      if (panel) {\n        this._dragging = true;\n        this._track = [localCursorPoint.slice()];\n      }\n    }\n  },\n  mousemove: function (e) {\n    var x = e.offsetX;\n    var y = e.offsetY;\n    var localCursorPoint = this.group.transformCoordToLocal(x, y);\n    resetCursor(this, e, localCursorPoint);\n\n    if (this._dragging) {\n      preventDefault(e);\n      var eventParams = updateCoverByMouse(this, e, localCursorPoint, false);\n      eventParams && trigger(this, eventParams);\n    }\n  },\n  mouseup: function (e) {\n    handleDragEnd(this, e);\n  }\n};\n\nfunction handleDragEnd(controller, e) {\n  if (controller._dragging) {\n    preventDefault(e);\n    var x = e.offsetX;\n    var y = e.offsetY;\n    var localCursorPoint = controller.group.transformCoordToLocal(x, y);\n    var eventParams = updateCoverByMouse(controller, e, localCursorPoint, true);\n    controller._dragging = false;\n    controller._track = [];\n    controller._creatingCover = null;\n    eventParams && trigger(controller, eventParams);\n  }\n}\n\nfunction isOutsideZrArea(controller, x, y) {\n  var zr = controller._zr;\n  return x < 0 || x > zr.getWidth() || y < 0 || y > zr.getHeight();\n}\n\nvar coverRenderers = {\n  lineX: getLineRenderer(0),\n  lineY: getLineRenderer(1),\n  rect: {\n    createCover: function (controller, brushOption) {\n      function returnInput(range) {\n        return range;\n      }\n\n      return createBaseRectCover({\n        toRectRange: returnInput,\n        fromRectRange: returnInput\n      }, controller, brushOption, [['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w']]);\n    },\n    getCreatingRange: function (localTrack) {\n      var ends = getTrackEnds(localTrack);\n      return formatRectRange(ends[1][0], ends[1][1], ends[0][0], ends[0][1]);\n    },\n    updateCoverShape: function (controller, cover, localRange, brushOption) {\n      updateBaseRect(controller, cover, localRange, brushOption);\n    },\n    updateCommon: updateCommon,\n    contain: mainShapeContain\n  },\n  polygon: {\n    createCover: function (controller, brushOption) {\n      var cover = new graphic.Group();\n      cover.add(new graphic.Polyline({\n        name: 'main',\n        style: makeStyle(brushOption),\n        silent: true\n      }));\n      return cover;\n    },\n    getCreatingRange: function (localTrack) {\n      return localTrack;\n    },\n    endCreating: function (controller, cover) {\n      cover.remove(cover.childAt(0));\n      cover.add(new graphic.Polygon({\n        name: 'main',\n        draggable: true,\n        drift: curry(driftPolygon, controller, cover),\n        ondragend: curry(trigger, controller, {\n          isEnd: true\n        })\n      }));\n    },\n    updateCoverShape: function (controller, cover, localRange, brushOption) {\n      cover.childAt(0).setShape({\n        points: clipByPanel(controller, cover, localRange)\n      });\n    },\n    updateCommon: updateCommon,\n    contain: mainShapeContain\n  }\n};\n\nfunction getLineRenderer(xyIndex) {\n  return {\n    createCover: function (controller, brushOption) {\n      return createBaseRectCover({\n        toRectRange: function (range) {\n          var rectRange = [range, [0, 100]];\n          xyIndex && rectRange.reverse();\n          return rectRange;\n        },\n        fromRectRange: function (rectRange) {\n          return rectRange[xyIndex];\n        }\n      }, controller, brushOption, [[['w'], ['e']], [['n'], ['s']]][xyIndex]);\n    },\n    getCreatingRange: function (localTrack) {\n      var ends = getTrackEnds(localTrack);\n      var min = mathMin(ends[0][xyIndex], ends[1][xyIndex]);\n      var max = mathMax(ends[0][xyIndex], ends[1][xyIndex]);\n      return [min, max];\n    },\n    updateCoverShape: function (controller, cover, localRange, brushOption) {\n      var otherExtent;\n      var panel = getPanelByCover(controller, cover);\n\n      if (panel !== BRUSH_PANEL_GLOBAL && panel.getLinearBrushOtherExtent) {\n        otherExtent = panel.getLinearBrushOtherExtent(xyIndex);\n      } else {\n        var zr = controller._zr;\n        otherExtent = [0, [zr.getWidth(), zr.getHeight()][1 - xyIndex]];\n      }\n\n      var rectRange = [localRange, otherExtent];\n      xyIndex && rectRange.reverse();\n      updateBaseRect(controller, cover, rectRange, brushOption);\n    },\n    updateCommon: updateCommon,\n    contain: mainShapeContain\n  };\n}\n\nexport default BrushController;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { onIrrelevantElement } from './cursorHelper';\nimport * as graphicUtil from '../../util/graphic';\nexport function makeRectPanelClipPath(rect) {\n  rect = normalizeRect(rect);\n  return function (localPoints) {\n    return graphicUtil.clipPointsByRect(localPoints, rect);\n  };\n}\nexport function makeLinearBrushOtherExtent(rect, specifiedXYIndex) {\n  rect = normalizeRect(rect);\n  return function (xyIndex) {\n    var idx = specifiedXYIndex != null ? specifiedXYIndex : xyIndex;\n    var brushWidth = idx ? rect.width : rect.height;\n    var base = idx ? rect.x : rect.y;\n    return [base, base + (brushWidth || 0)];\n  };\n}\nexport function makeRectIsTargetByCursor(rect, api, targetModel) {\n  var boundingRect = normalizeRect(rect);\n  return function (e, localCursorPoint) {\n    return boundingRect.contain(localCursorPoint[0], localCursorPoint[1]) && !onIrrelevantElement(e, api, targetModel);\n  };\n}\n\nfunction normalizeRect(rect) {\n  return BoundingRect.create(rect);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport AxisBuilder from './AxisBuilder';\nimport BrushController from '../helper/BrushController';\nimport * as brushHelper from '../helper/brushHelper';\nimport * as graphic from '../../util/graphic';\nimport ComponentView from '../../view/Component';\nvar elementList = ['axisLine', 'axisTickLabel', 'axisName'];\n\nvar ParallelAxisView = function (_super) {\n  __extends(ParallelAxisView, _super);\n\n  function ParallelAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ParallelAxisView.type;\n    return _this;\n  }\n\n  ParallelAxisView.prototype.init = function (ecModel, api) {\n    _super.prototype.init.apply(this, arguments);\n\n    (this._brushController = new BrushController(api.getZr())).on('brush', zrUtil.bind(this._onBrush, this));\n  };\n\n  ParallelAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n    if (fromAxisAreaSelect(axisModel, ecModel, payload)) {\n      return;\n    }\n\n    this.axisModel = axisModel;\n    this.api = api;\n    this.group.removeAll();\n    var oldAxisGroup = this._axisGroup;\n    this._axisGroup = new graphic.Group();\n    this.group.add(this._axisGroup);\n\n    if (!axisModel.get('show')) {\n      return;\n    }\n\n    var coordSysModel = getCoordSysModel(axisModel, ecModel);\n    var coordSys = coordSysModel.coordinateSystem;\n    var areaSelectStyle = axisModel.getAreaSelectStyle();\n    var areaWidth = areaSelectStyle.width;\n    var dim = axisModel.axis.dim;\n    var axisLayout = coordSys.getAxisLayout(dim);\n    var builderOpt = zrUtil.extend({\n      strokeContainThreshold: areaWidth\n    }, axisLayout);\n    var axisBuilder = new AxisBuilder(axisModel, builderOpt);\n    zrUtil.each(elementList, axisBuilder.add, axisBuilder);\n\n    this._axisGroup.add(axisBuilder.getGroup());\n\n    this._refreshBrushController(builderOpt, areaSelectStyle, axisModel, coordSysModel, areaWidth, api);\n\n    graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel);\n  };\n\n  ParallelAxisView.prototype._refreshBrushController = function (builderOpt, areaSelectStyle, axisModel, coordSysModel, areaWidth, api) {\n    var extent = axisModel.axis.getExtent();\n    var extentLen = extent[1] - extent[0];\n    var extra = Math.min(30, Math.abs(extentLen) * 0.1);\n    var rect = graphic.BoundingRect.create({\n      x: extent[0],\n      y: -areaWidth / 2,\n      width: extentLen,\n      height: areaWidth\n    });\n    rect.x -= extra;\n    rect.width += 2 * extra;\n\n    this._brushController.mount({\n      enableGlobalPan: true,\n      rotation: builderOpt.rotation,\n      x: builderOpt.position[0],\n      y: builderOpt.position[1]\n    }).setPanels([{\n      panelId: 'pl',\n      clipPath: brushHelper.makeRectPanelClipPath(rect),\n      isTargetByCursor: brushHelper.makeRectIsTargetByCursor(rect, api, coordSysModel),\n      getLinearBrushOtherExtent: brushHelper.makeLinearBrushOtherExtent(rect, 0)\n    }]).enableBrush({\n      brushType: 'lineX',\n      brushStyle: areaSelectStyle,\n      removeOnClick: true\n    }).updateCovers(getCoverInfoList(axisModel));\n  };\n\n  ParallelAxisView.prototype._onBrush = function (eventParam) {\n    var coverInfoList = eventParam.areas;\n    var axisModel = this.axisModel;\n    var axis = axisModel.axis;\n    var intervals = zrUtil.map(coverInfoList, function (coverInfo) {\n      return [axis.coordToData(coverInfo.range[0], true), axis.coordToData(coverInfo.range[1], true)];\n    });\n\n    if (!axisModel.option.realtime === eventParam.isEnd || eventParam.removeOnClick) {\n      this.api.dispatchAction({\n        type: 'axisAreaSelect',\n        parallelAxisId: axisModel.id,\n        intervals: intervals\n      });\n    }\n  };\n\n  ParallelAxisView.prototype.dispose = function () {\n    this._brushController.dispose();\n  };\n\n  ParallelAxisView.type = 'parallelAxis';\n  return ParallelAxisView;\n}(ComponentView);\n\nfunction fromAxisAreaSelect(axisModel, ecModel, payload) {\n  return payload && payload.type === 'axisAreaSelect' && ecModel.findComponents({\n    mainType: 'parallelAxis',\n    query: payload\n  })[0] === axisModel;\n}\n\nfunction getCoverInfoList(axisModel) {\n  var axis = axisModel.axis;\n  return zrUtil.map(axisModel.activeIntervals, function (interval) {\n    return {\n      brushType: 'lineX',\n      panelId: 'pl',\n      range: [axis.dataToCoord(interval[0], true), axis.dataToCoord(interval[1], true)]\n    };\n  });\n}\n\nfunction getCoordSysModel(axisModel, ecModel) {\n  return ecModel.getComponent('parallel', axisModel.get('parallelIndex'));\n}\n\nexport default ParallelAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar actionInfo = {\n  type: 'axisAreaSelect',\n  event: 'axisAreaSelected'\n};\nexport function installParallelActions(registers) {\n  registers.registerAction(actionInfo, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'parallelAxis',\n      query: payload\n    }, function (parallelAxisModel) {\n      parallelAxisModel.axis.model.setActiveIntervals(payload.intervals);\n    });\n  });\n  registers.registerAction('parallelAxisExpand', function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'parallel',\n      query: payload\n    }, function (parallelModel) {\n      parallelModel.setAxisExpand(payload);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport parallelPreprocessor from '../../coord/parallel/parallelPreprocessor';\nimport ParallelView from './ParallelView';\nimport ParallelModel from '../../coord/parallel/ParallelModel';\nimport parallelCoordSysCreator from '../../coord/parallel/parallelCreator';\nimport axisModelCreator from '../../coord/axisModelCreator';\nimport ParallelAxisModel from '../../coord/parallel/AxisModel';\nimport ParallelAxisView from '../axis/ParallelAxisView';\nimport { installParallelActions } from '../axis/parallelAxisAction';\nvar defaultAxisOption = {\n  type: 'value',\n  areaSelectStyle: {\n    width: 20,\n    borderWidth: 1,\n    borderColor: 'rgba(160,197,232)',\n    color: 'rgba(160,197,232)',\n    opacity: 0.3\n  },\n  realtime: true,\n  z: 10\n};\nexport function install(registers) {\n  registers.registerComponentView(ParallelView);\n  registers.registerComponentModel(ParallelModel);\n  registers.registerCoordinateSystem('parallel', parallelCoordSysCreator);\n  registers.registerPreprocessor(parallelPreprocessor);\n  registers.registerComponentModel(ParallelAxisModel);\n  registers.registerComponentView(ParallelAxisView);\n  axisModelCreator(registers, 'parallel', ParallelAxisModel, defaultAxisOption);\n  installParallelActions(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport ParallelView from './ParallelView';\nimport ParallelSeriesModel from './ParallelSeries';\nimport parallelVisual from './parallelVisual';\nimport { install as installParallelComponent } from '../../component/parallel/install';\nexport function install(registers) {\n  use(installParallelComponent);\n  registers.registerChartView(ParallelView);\n  registers.registerSeriesModel(ParallelSeriesModel);\n  registers.registerVisual(registers.PRIORITY.VISUAL.BRUSH, parallelVisual);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { enterEmphasis, leaveEmphasis, enableHoverEmphasis, setStatesStylesFromModel } from '../../util/states';\nimport ChartView from '../../view/Chart';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { getECData } from '../../util/innerStore';\n\nvar SankeyPathShape = function () {\n  function SankeyPathShape() {\n    this.x1 = 0;\n    this.y1 = 0;\n    this.x2 = 0;\n    this.y2 = 0;\n    this.cpx1 = 0;\n    this.cpy1 = 0;\n    this.cpx2 = 0;\n    this.cpy2 = 0;\n    this.extent = 0;\n  }\n\n  return SankeyPathShape;\n}();\n\nvar SankeyPath = function (_super) {\n  __extends(SankeyPath, _super);\n\n  function SankeyPath(opts) {\n    return _super.call(this, opts) || this;\n  }\n\n  SankeyPath.prototype.getDefaultShape = function () {\n    return new SankeyPathShape();\n  };\n\n  SankeyPath.prototype.buildPath = function (ctx, shape) {\n    var extent = shape.extent;\n    ctx.moveTo(shape.x1, shape.y1);\n    ctx.bezierCurveTo(shape.cpx1, shape.cpy1, shape.cpx2, shape.cpy2, shape.x2, shape.y2);\n\n    if (shape.orient === 'vertical') {\n      ctx.lineTo(shape.x2 + extent, shape.y2);\n      ctx.bezierCurveTo(shape.cpx2 + extent, shape.cpy2, shape.cpx1 + extent, shape.cpy1, shape.x1 + extent, shape.y1);\n    } else {\n      ctx.lineTo(shape.x2, shape.y2 + extent);\n      ctx.bezierCurveTo(shape.cpx2, shape.cpy2 + extent, shape.cpx1, shape.cpy1 + extent, shape.x1, shape.y1 + extent);\n    }\n\n    ctx.closePath();\n  };\n\n  SankeyPath.prototype.highlight = function () {\n    enterEmphasis(this);\n  };\n\n  SankeyPath.prototype.downplay = function () {\n    leaveEmphasis(this);\n  };\n\n  return SankeyPath;\n}(graphic.Path);\n\nvar SankeyView = function (_super) {\n  __extends(SankeyView, _super);\n\n  function SankeyView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SankeyView.type;\n    _this._focusAdjacencyDisabled = false;\n    return _this;\n  }\n\n  SankeyView.prototype.render = function (seriesModel, ecModel, api) {\n    var sankeyView = this;\n    var graph = seriesModel.getGraph();\n    var group = this.group;\n    var layoutInfo = seriesModel.layoutInfo;\n    var width = layoutInfo.width;\n    var height = layoutInfo.height;\n    var nodeData = seriesModel.getData();\n    var edgeData = seriesModel.getData('edge');\n    var orient = seriesModel.get('orient');\n    this._model = seriesModel;\n    group.removeAll();\n    group.x = layoutInfo.x;\n    group.y = layoutInfo.y;\n    graph.eachEdge(function (edge) {\n      var curve = new SankeyPath();\n      var ecData = getECData(curve);\n      ecData.dataIndex = edge.dataIndex;\n      ecData.seriesIndex = seriesModel.seriesIndex;\n      ecData.dataType = 'edge';\n      var edgeModel = edge.getModel();\n      var lineStyleModel = edgeModel.getModel('lineStyle');\n      var curvature = lineStyleModel.get('curveness');\n      var n1Layout = edge.node1.getLayout();\n      var node1Model = edge.node1.getModel();\n      var dragX1 = node1Model.get('localX');\n      var dragY1 = node1Model.get('localY');\n      var n2Layout = edge.node2.getLayout();\n      var node2Model = edge.node2.getModel();\n      var dragX2 = node2Model.get('localX');\n      var dragY2 = node2Model.get('localY');\n      var edgeLayout = edge.getLayout();\n      var x1;\n      var y1;\n      var x2;\n      var y2;\n      var cpx1;\n      var cpy1;\n      var cpx2;\n      var cpy2;\n      curve.shape.extent = Math.max(1, edgeLayout.dy);\n      curve.shape.orient = orient;\n\n      if (orient === 'vertical') {\n        x1 = (dragX1 != null ? dragX1 * width : n1Layout.x) + edgeLayout.sy;\n        y1 = (dragY1 != null ? dragY1 * height : n1Layout.y) + n1Layout.dy;\n        x2 = (dragX2 != null ? dragX2 * width : n2Layout.x) + edgeLayout.ty;\n        y2 = dragY2 != null ? dragY2 * height : n2Layout.y;\n        cpx1 = x1;\n        cpy1 = y1 * (1 - curvature) + y2 * curvature;\n        cpx2 = x2;\n        cpy2 = y1 * curvature + y2 * (1 - curvature);\n      } else {\n        x1 = (dragX1 != null ? dragX1 * width : n1Layout.x) + n1Layout.dx;\n        y1 = (dragY1 != null ? dragY1 * height : n1Layout.y) + edgeLayout.sy;\n        x2 = dragX2 != null ? dragX2 * width : n2Layout.x;\n        y2 = (dragY2 != null ? dragY2 * height : n2Layout.y) + edgeLayout.ty;\n        cpx1 = x1 * (1 - curvature) + x2 * curvature;\n        cpy1 = y1;\n        cpx2 = x1 * curvature + x2 * (1 - curvature);\n        cpy2 = y2;\n      }\n\n      curve.setShape({\n        x1: x1,\n        y1: y1,\n        x2: x2,\n        y2: y2,\n        cpx1: cpx1,\n        cpy1: cpy1,\n        cpx2: cpx2,\n        cpy2: cpy2\n      });\n      curve.useStyle(lineStyleModel.getItemStyle());\n\n      switch (curve.style.fill) {\n        case 'source':\n          curve.style.fill = edge.node1.getVisual('color');\n          curve.style.decal = edge.node1.getVisual('style').decal;\n          break;\n\n        case 'target':\n          curve.style.fill = edge.node2.getVisual('color');\n          curve.style.decal = edge.node2.getVisual('style').decal;\n          break;\n\n        case 'gradient':\n          var sourceColor = edge.node1.getVisual('color');\n          var targetColor = edge.node2.getVisual('color');\n\n          if (typeof sourceColor === 'string' && typeof targetColor === 'string') {\n            curve.style.fill = new graphic.LinearGradient(0, 0, 1, 0, [{\n              color: sourceColor,\n              offset: 0\n            }, {\n              color: targetColor,\n              offset: 1\n            }]);\n          }\n\n      }\n\n      var emphasisModel = edgeModel.getModel('emphasis');\n      setStatesStylesFromModel(curve, edgeModel, 'lineStyle', function (model) {\n        return model.getItemStyle();\n      });\n      group.add(curve);\n      edgeData.setItemGraphicEl(edge.dataIndex, curve);\n      var focus = emphasisModel.get('focus');\n      enableHoverEmphasis(curve, focus === 'adjacency' ? edge.getAdjacentDataIndices() : focus, emphasisModel.get('blurScope'));\n      getECData(curve).dataType = 'edge';\n    });\n    graph.eachNode(function (node) {\n      var layout = node.getLayout();\n      var itemModel = node.getModel();\n      var dragX = itemModel.get('localX');\n      var dragY = itemModel.get('localY');\n      var emphasisModel = itemModel.getModel('emphasis');\n      var rect = new graphic.Rect({\n        shape: {\n          x: dragX != null ? dragX * width : layout.x,\n          y: dragY != null ? dragY * height : layout.y,\n          width: layout.dx,\n          height: layout.dy\n        },\n        style: itemModel.getModel('itemStyle').getItemStyle()\n      });\n      setLabelStyle(rect, getLabelStatesModels(itemModel), {\n        labelFetcher: seriesModel,\n        labelDataIndex: node.dataIndex,\n        defaultText: node.id\n      });\n      rect.disableLabelAnimation = true;\n      rect.setStyle('fill', node.getVisual('color'));\n      rect.setStyle('decal', node.getVisual('style').decal);\n      setStatesStylesFromModel(rect, itemModel);\n      group.add(rect);\n      nodeData.setItemGraphicEl(node.dataIndex, rect);\n      getECData(rect).dataType = 'node';\n      var focus = emphasisModel.get('focus');\n      enableHoverEmphasis(rect, focus === 'adjacency' ? node.getAdjacentDataIndices() : focus, emphasisModel.get('blurScope'));\n    });\n    nodeData.eachItemGraphicEl(function (el, dataIndex) {\n      var itemModel = nodeData.getItemModel(dataIndex);\n\n      if (itemModel.get('draggable')) {\n        el.drift = function (dx, dy) {\n          sankeyView._focusAdjacencyDisabled = true;\n          this.shape.x += dx;\n          this.shape.y += dy;\n          this.dirty();\n          api.dispatchAction({\n            type: 'dragNode',\n            seriesId: seriesModel.id,\n            dataIndex: nodeData.getRawIndex(dataIndex),\n            localX: this.shape.x / width,\n            localY: this.shape.y / height\n          });\n        };\n\n        el.ondragend = function () {\n          sankeyView._focusAdjacencyDisabled = false;\n        };\n\n        el.draggable = true;\n        el.cursor = 'move';\n      }\n    });\n\n    if (!this._data && seriesModel.isAnimationEnabled()) {\n      group.setClipPath(createGridClipShape(group.getBoundingRect(), seriesModel, function () {\n        group.removeClipPath();\n      }));\n    }\n\n    this._data = seriesModel.getData();\n  };\n\n  SankeyView.prototype.dispose = function () {};\n\n  SankeyView.type = 'sankey';\n  return SankeyView;\n}(ChartView);\n\nfunction createGridClipShape(rect, seriesModel, cb) {\n  var rectEl = new graphic.Rect({\n    shape: {\n      x: rect.x - 10,\n      y: rect.y - 10,\n      width: 0,\n      height: rect.height + 20\n    }\n  });\n  graphic.initProps(rectEl, {\n    shape: {\n      width: rect.width + 20\n    }\n  }, seriesModel, cb);\n  return rectEl;\n}\n\nexport default SankeyView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport createGraphFromNodeEdge from '../helper/createGraphFromNodeEdge';\nimport Model from '../../model/Model';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup';\n\nvar SankeySeriesModel = function (_super) {\n  __extends(SankeySeriesModel, _super);\n\n  function SankeySeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SankeySeriesModel.type;\n    return _this;\n  }\n\n  SankeySeriesModel.prototype.getInitialData = function (option, ecModel) {\n    var links = option.edges || option.links;\n    var nodes = option.data || option.nodes;\n    var levels = option.levels;\n    this.levelModels = [];\n    var levelModels = this.levelModels;\n\n    for (var i = 0; i < levels.length; i++) {\n      if (levels[i].depth != null && levels[i].depth >= 0) {\n        levelModels[levels[i].depth] = new Model(levels[i], this, ecModel);\n      } else {\n        if (process.env.NODE_ENV !== 'production') {\n          throw new Error('levels[i].depth is mandatory and should be natural number');\n        }\n      }\n    }\n\n    if (nodes && links) {\n      var graph = createGraphFromNodeEdge(nodes, links, this, true, beforeLink);\n      return graph.data;\n    }\n\n    function beforeLink(nodeData, edgeData) {\n      nodeData.wrapMethod('getItemModel', function (model, idx) {\n        var seriesModel = model.parentModel;\n        var layout = seriesModel.getData().getItemLayout(idx);\n\n        if (layout) {\n          var nodeDepth = layout.depth;\n          var levelModel = seriesModel.levelModels[nodeDepth];\n\n          if (levelModel) {\n            model.parentModel = levelModel;\n          }\n        }\n\n        return model;\n      });\n      edgeData.wrapMethod('getItemModel', function (model, idx) {\n        var seriesModel = model.parentModel;\n        var edge = seriesModel.getGraph().getEdgeByIndex(idx);\n        var layout = edge.node1.getLayout();\n\n        if (layout) {\n          var depth = layout.depth;\n          var levelModel = seriesModel.levelModels[depth];\n\n          if (levelModel) {\n            model.parentModel = levelModel;\n          }\n        }\n\n        return model;\n      });\n    }\n  };\n\n  SankeySeriesModel.prototype.setNodePosition = function (dataIndex, localPosition) {\n    var dataItem = this.option.data[dataIndex];\n    dataItem.localX = localPosition[0];\n    dataItem.localY = localPosition[1];\n  };\n\n  SankeySeriesModel.prototype.getGraph = function () {\n    return this.getData().graph;\n  };\n\n  SankeySeriesModel.prototype.getEdgeData = function () {\n    return this.getGraph().edgeData;\n  };\n\n  SankeySeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    function noValue(val) {\n      return isNaN(val) || val == null;\n    }\n\n    if (dataType === 'edge') {\n      var params = this.getDataParams(dataIndex, dataType);\n      var rawDataOpt = params.data;\n      var edgeValue = params.value;\n      var edgeName = rawDataOpt.source + ' -- ' + rawDataOpt.target;\n      return createTooltipMarkup('nameValue', {\n        name: edgeName,\n        value: edgeValue,\n        noValue: noValue(edgeValue)\n      });\n    } else {\n      var node = this.getGraph().getNodeByIndex(dataIndex);\n      var value = node.getLayout().value;\n      var name_1 = this.getDataParams(dataIndex, dataType).data.name;\n      return createTooltipMarkup('nameValue', {\n        name: name_1 != null ? name_1 + '' : null,\n        value: value,\n        noValue: noValue(value)\n      });\n    }\n  };\n\n  SankeySeriesModel.prototype.optionUpdated = function () {\n    var option = this.option;\n\n    if (option.focusNodeAdjacency === true) {\n      option.focusNodeAdjacency = 'allEdges';\n    }\n  };\n\n  SankeySeriesModel.prototype.getDataParams = function (dataIndex, dataType) {\n    var params = _super.prototype.getDataParams.call(this, dataIndex, dataType);\n\n    if (params.value == null && dataType === 'node') {\n      var node = this.getGraph().getNodeByIndex(dataIndex);\n      var nodeValue = node.getLayout().value;\n      params.value = nodeValue;\n    }\n\n    return params;\n  };\n\n  SankeySeriesModel.type = 'series.sankey';\n  SankeySeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'view',\n    left: '5%',\n    top: '5%',\n    right: '20%',\n    bottom: '5%',\n    orient: 'horizontal',\n    nodeWidth: 20,\n    nodeGap: 8,\n    draggable: true,\n    focusNodeAdjacency: false,\n    layoutIterations: 32,\n    label: {\n      show: true,\n      position: 'right',\n      fontSize: 12\n    },\n    levels: [],\n    nodeAlign: 'justify',\n    lineStyle: {\n      color: '#314656',\n      opacity: 0.2,\n      curveness: 0.5\n    },\n    emphasis: {\n      label: {\n        show: true\n      },\n      lineStyle: {\n        opacity: 0.5\n      }\n    },\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    },\n    animationEasing: 'linear',\n    animationDuration: 1000\n  };\n  return SankeySeriesModel;\n}(SeriesModel);\n\nexport default SankeySeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as layout from '../../util/layout';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { groupData } from '../../util/model';\nexport default function sankeyLayout(ecModel, api) {\n  ecModel.eachSeriesByType('sankey', function (seriesModel) {\n    var nodeWidth = seriesModel.get('nodeWidth');\n    var nodeGap = seriesModel.get('nodeGap');\n    var layoutInfo = getViewRect(seriesModel, api);\n    seriesModel.layoutInfo = layoutInfo;\n    var width = layoutInfo.width;\n    var height = layoutInfo.height;\n    var graph = seriesModel.getGraph();\n    var nodes = graph.nodes;\n    var edges = graph.edges;\n    computeNodeValues(nodes);\n    var filteredNodes = zrUtil.filter(nodes, function (node) {\n      return node.getLayout().value === 0;\n    });\n    var iterations = filteredNodes.length !== 0 ? 0 : seriesModel.get('layoutIterations');\n    var orient = seriesModel.get('orient');\n    var nodeAlign = seriesModel.get('nodeAlign');\n    layoutSankey(nodes, edges, nodeWidth, nodeGap, width, height, iterations, orient, nodeAlign);\n  });\n}\n\nfunction getViewRect(seriesModel, api) {\n  return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n}\n\nfunction layoutSankey(nodes, edges, nodeWidth, nodeGap, width, height, iterations, orient, nodeAlign) {\n  computeNodeBreadths(nodes, edges, nodeWidth, width, height, orient, nodeAlign);\n  computeNodeDepths(nodes, edges, height, width, nodeGap, iterations, orient);\n  computeEdgeDepths(nodes, orient);\n}\n\nfunction computeNodeValues(nodes) {\n  zrUtil.each(nodes, function (node) {\n    var value1 = sum(node.outEdges, getEdgeValue);\n    var value2 = sum(node.inEdges, getEdgeValue);\n    var nodeRawValue = node.getValue() || 0;\n    var value = Math.max(value1, value2, nodeRawValue);\n    node.setLayout({\n      value: value\n    }, true);\n  });\n}\n\nfunction computeNodeBreadths(nodes, edges, nodeWidth, width, height, orient, nodeAlign) {\n  var remainEdges = [];\n  var indegreeArr = [];\n  var zeroIndegrees = [];\n  var nextTargetNode = [];\n  var x = 0;\n\n  for (var i = 0; i < edges.length; i++) {\n    remainEdges[i] = 1;\n  }\n\n  for (var i = 0; i < nodes.length; i++) {\n    indegreeArr[i] = nodes[i].inEdges.length;\n\n    if (indegreeArr[i] === 0) {\n      zeroIndegrees.push(nodes[i]);\n    }\n  }\n\n  var maxNodeDepth = -1;\n\n  while (zeroIndegrees.length) {\n    for (var idx = 0; idx < zeroIndegrees.length; idx++) {\n      var node = zeroIndegrees[idx];\n      var item = node.hostGraph.data.getRawDataItem(node.dataIndex);\n      var isItemDepth = item.depth != null && item.depth >= 0;\n\n      if (isItemDepth && item.depth > maxNodeDepth) {\n        maxNodeDepth = item.depth;\n      }\n\n      node.setLayout({\n        depth: isItemDepth ? item.depth : x\n      }, true);\n      orient === 'vertical' ? node.setLayout({\n        dy: nodeWidth\n      }, true) : node.setLayout({\n        dx: nodeWidth\n      }, true);\n\n      for (var edgeIdx = 0; edgeIdx < node.outEdges.length; edgeIdx++) {\n        var edge = node.outEdges[edgeIdx];\n        var indexEdge = edges.indexOf(edge);\n        remainEdges[indexEdge] = 0;\n        var targetNode = edge.node2;\n        var nodeIndex = nodes.indexOf(targetNode);\n\n        if (--indegreeArr[nodeIndex] === 0 && nextTargetNode.indexOf(targetNode) < 0) {\n          nextTargetNode.push(targetNode);\n        }\n      }\n    }\n\n    ++x;\n    zeroIndegrees = nextTargetNode;\n    nextTargetNode = [];\n  }\n\n  for (var i = 0; i < remainEdges.length; i++) {\n    if (remainEdges[i] === 1) {\n      throw new Error('Sankey is a DAG, the original data has cycle!');\n    }\n  }\n\n  var maxDepth = maxNodeDepth > x - 1 ? maxNodeDepth : x - 1;\n\n  if (nodeAlign && nodeAlign !== 'left') {\n    adjustNodeWithNodeAlign(nodes, nodeAlign, orient, maxDepth);\n  }\n\n  var kx = orient === 'vertical' ? (height - nodeWidth) / maxDepth : (width - nodeWidth) / maxDepth;\n  scaleNodeBreadths(nodes, kx, orient);\n}\n\nfunction isNodeDepth(node) {\n  var item = node.hostGraph.data.getRawDataItem(node.dataIndex);\n  return item.depth != null && item.depth >= 0;\n}\n\nfunction adjustNodeWithNodeAlign(nodes, nodeAlign, orient, maxDepth) {\n  if (nodeAlign === 'right') {\n    var nextSourceNode = [];\n    var remainNodes = nodes;\n    var nodeHeight = 0;\n\n    while (remainNodes.length) {\n      for (var i = 0; i < remainNodes.length; i++) {\n        var node = remainNodes[i];\n        node.setLayout({\n          skNodeHeight: nodeHeight\n        }, true);\n\n        for (var j = 0; j < node.inEdges.length; j++) {\n          var edge = node.inEdges[j];\n\n          if (nextSourceNode.indexOf(edge.node1) < 0) {\n            nextSourceNode.push(edge.node1);\n          }\n        }\n      }\n\n      remainNodes = nextSourceNode;\n      nextSourceNode = [];\n      ++nodeHeight;\n    }\n\n    zrUtil.each(nodes, function (node) {\n      if (!isNodeDepth(node)) {\n        node.setLayout({\n          depth: Math.max(0, maxDepth - node.getLayout().skNodeHeight)\n        }, true);\n      }\n    });\n  } else if (nodeAlign === 'justify') {\n    moveSinksRight(nodes, maxDepth);\n  }\n}\n\nfunction moveSinksRight(nodes, maxDepth) {\n  zrUtil.each(nodes, function (node) {\n    if (!isNodeDepth(node) && !node.outEdges.length) {\n      node.setLayout({\n        depth: maxDepth\n      }, true);\n    }\n  });\n}\n\nfunction scaleNodeBreadths(nodes, kx, orient) {\n  zrUtil.each(nodes, function (node) {\n    var nodeDepth = node.getLayout().depth * kx;\n    orient === 'vertical' ? node.setLayout({\n      y: nodeDepth\n    }, true) : node.setLayout({\n      x: nodeDepth\n    }, true);\n  });\n}\n\nfunction computeNodeDepths(nodes, edges, height, width, nodeGap, iterations, orient) {\n  var nodesByBreadth = prepareNodesByBreadth(nodes, orient);\n  initializeNodeDepth(nodesByBreadth, edges, height, width, nodeGap, orient);\n  resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\n\n  for (var alpha = 1; iterations > 0; iterations--) {\n    alpha *= 0.99;\n    relaxRightToLeft(nodesByBreadth, alpha, orient);\n    resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\n    relaxLeftToRight(nodesByBreadth, alpha, orient);\n    resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\n  }\n}\n\nfunction prepareNodesByBreadth(nodes, orient) {\n  var nodesByBreadth = [];\n  var keyAttr = orient === 'vertical' ? 'y' : 'x';\n  var groupResult = groupData(nodes, function (node) {\n    return node.getLayout()[keyAttr];\n  });\n  groupResult.keys.sort(function (a, b) {\n    return a - b;\n  });\n  zrUtil.each(groupResult.keys, function (key) {\n    nodesByBreadth.push(groupResult.buckets.get(key));\n  });\n  return nodesByBreadth;\n}\n\nfunction initializeNodeDepth(nodesByBreadth, edges, height, width, nodeGap, orient) {\n  var minKy = Infinity;\n  zrUtil.each(nodesByBreadth, function (nodes) {\n    var n = nodes.length;\n    var sum = 0;\n    zrUtil.each(nodes, function (node) {\n      sum += node.getLayout().value;\n    });\n    var ky = orient === 'vertical' ? (width - (n - 1) * nodeGap) / sum : (height - (n - 1) * nodeGap) / sum;\n\n    if (ky < minKy) {\n      minKy = ky;\n    }\n  });\n  zrUtil.each(nodesByBreadth, function (nodes) {\n    zrUtil.each(nodes, function (node, i) {\n      var nodeDy = node.getLayout().value * minKy;\n\n      if (orient === 'vertical') {\n        node.setLayout({\n          x: i\n        }, true);\n        node.setLayout({\n          dx: nodeDy\n        }, true);\n      } else {\n        node.setLayout({\n          y: i\n        }, true);\n        node.setLayout({\n          dy: nodeDy\n        }, true);\n      }\n    });\n  });\n  zrUtil.each(edges, function (edge) {\n    var edgeDy = +edge.getValue() * minKy;\n    edge.setLayout({\n      dy: edgeDy\n    }, true);\n  });\n}\n\nfunction resolveCollisions(nodesByBreadth, nodeGap, height, width, orient) {\n  var keyAttr = orient === 'vertical' ? 'x' : 'y';\n  zrUtil.each(nodesByBreadth, function (nodes) {\n    nodes.sort(function (a, b) {\n      return a.getLayout()[keyAttr] - b.getLayout()[keyAttr];\n    });\n    var nodeX;\n    var node;\n    var dy;\n    var y0 = 0;\n    var n = nodes.length;\n    var nodeDyAttr = orient === 'vertical' ? 'dx' : 'dy';\n\n    for (var i = 0; i < n; i++) {\n      node = nodes[i];\n      dy = y0 - node.getLayout()[keyAttr];\n\n      if (dy > 0) {\n        nodeX = node.getLayout()[keyAttr] + dy;\n        orient === 'vertical' ? node.setLayout({\n          x: nodeX\n        }, true) : node.setLayout({\n          y: nodeX\n        }, true);\n      }\n\n      y0 = node.getLayout()[keyAttr] + node.getLayout()[nodeDyAttr] + nodeGap;\n    }\n\n    var viewWidth = orient === 'vertical' ? width : height;\n    dy = y0 - nodeGap - viewWidth;\n\n    if (dy > 0) {\n      nodeX = node.getLayout()[keyAttr] - dy;\n      orient === 'vertical' ? node.setLayout({\n        x: nodeX\n      }, true) : node.setLayout({\n        y: nodeX\n      }, true);\n      y0 = nodeX;\n\n      for (var i = n - 2; i >= 0; --i) {\n        node = nodes[i];\n        dy = node.getLayout()[keyAttr] + node.getLayout()[nodeDyAttr] + nodeGap - y0;\n\n        if (dy > 0) {\n          nodeX = node.getLayout()[keyAttr] - dy;\n          orient === 'vertical' ? node.setLayout({\n            x: nodeX\n          }, true) : node.setLayout({\n            y: nodeX\n          }, true);\n        }\n\n        y0 = node.getLayout()[keyAttr];\n      }\n    }\n  });\n}\n\nfunction relaxRightToLeft(nodesByBreadth, alpha, orient) {\n  zrUtil.each(nodesByBreadth.slice().reverse(), function (nodes) {\n    zrUtil.each(nodes, function (node) {\n      if (node.outEdges.length) {\n        var y = sum(node.outEdges, weightedTarget, orient) / sum(node.outEdges, getEdgeValue);\n\n        if (isNaN(y)) {\n          var len = node.outEdges.length;\n          y = len ? sum(node.outEdges, centerTarget, orient) / len : 0;\n        }\n\n        if (orient === 'vertical') {\n          var nodeX = node.getLayout().x + (y - center(node, orient)) * alpha;\n          node.setLayout({\n            x: nodeX\n          }, true);\n        } else {\n          var nodeY = node.getLayout().y + (y - center(node, orient)) * alpha;\n          node.setLayout({\n            y: nodeY\n          }, true);\n        }\n      }\n    });\n  });\n}\n\nfunction weightedTarget(edge, orient) {\n  return center(edge.node2, orient) * edge.getValue();\n}\n\nfunction centerTarget(edge, orient) {\n  return center(edge.node2, orient);\n}\n\nfunction weightedSource(edge, orient) {\n  return center(edge.node1, orient) * edge.getValue();\n}\n\nfunction centerSource(edge, orient) {\n  return center(edge.node1, orient);\n}\n\nfunction center(node, orient) {\n  return orient === 'vertical' ? node.getLayout().x + node.getLayout().dx / 2 : node.getLayout().y + node.getLayout().dy / 2;\n}\n\nfunction getEdgeValue(edge) {\n  return edge.getValue();\n}\n\nfunction sum(array, cb, orient) {\n  var sum = 0;\n  var len = array.length;\n  var i = -1;\n\n  while (++i < len) {\n    var value = +cb(array[i], orient);\n\n    if (!isNaN(value)) {\n      sum += value;\n    }\n  }\n\n  return sum;\n}\n\nfunction relaxLeftToRight(nodesByBreadth, alpha, orient) {\n  zrUtil.each(nodesByBreadth, function (nodes) {\n    zrUtil.each(nodes, function (node) {\n      if (node.inEdges.length) {\n        var y = sum(node.inEdges, weightedSource, orient) / sum(node.inEdges, getEdgeValue);\n\n        if (isNaN(y)) {\n          var len = node.inEdges.length;\n          y = len ? sum(node.inEdges, centerSource, orient) / len : 0;\n        }\n\n        if (orient === 'vertical') {\n          var nodeX = node.getLayout().x + (y - center(node, orient)) * alpha;\n          node.setLayout({\n            x: nodeX\n          }, true);\n        } else {\n          var nodeY = node.getLayout().y + (y - center(node, orient)) * alpha;\n          node.setLayout({\n            y: nodeY\n          }, true);\n        }\n      }\n    });\n  });\n}\n\nfunction computeEdgeDepths(nodes, orient) {\n  var keyAttr = orient === 'vertical' ? 'x' : 'y';\n  zrUtil.each(nodes, function (node) {\n    node.outEdges.sort(function (a, b) {\n      return a.node2.getLayout()[keyAttr] - b.node2.getLayout()[keyAttr];\n    });\n    node.inEdges.sort(function (a, b) {\n      return a.node1.getLayout()[keyAttr] - b.node1.getLayout()[keyAttr];\n    });\n  });\n  zrUtil.each(nodes, function (node) {\n    var sy = 0;\n    var ty = 0;\n    zrUtil.each(node.outEdges, function (edge) {\n      edge.setLayout({\n        sy: sy\n      }, true);\n      sy += edge.getLayout().dy;\n    });\n    zrUtil.each(node.inEdges, function (edge) {\n      edge.setLayout({\n        ty: ty\n      }, true);\n      ty += edge.getLayout().dy;\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport VisualMapping from '../../visual/VisualMapping';\nexport default function sankeyVisual(ecModel) {\n  ecModel.eachSeriesByType('sankey', function (seriesModel) {\n    var graph = seriesModel.getGraph();\n    var nodes = graph.nodes;\n\n    if (nodes.length) {\n      var minValue_1 = Infinity;\n      var maxValue_1 = -Infinity;\n      zrUtil.each(nodes, function (node) {\n        var nodeValue = node.getLayout().value;\n\n        if (nodeValue < minValue_1) {\n          minValue_1 = nodeValue;\n        }\n\n        if (nodeValue > maxValue_1) {\n          maxValue_1 = nodeValue;\n        }\n      });\n      zrUtil.each(nodes, function (node) {\n        var mapping = new VisualMapping({\n          type: 'color',\n          mappingMethod: 'linear',\n          dataExtent: [minValue_1, maxValue_1],\n          visual: seriesModel.get('color')\n        });\n        var mapValueToColor = mapping.mapValueToVisual(node.getLayout().value);\n        var customColor = node.getModel().get(['itemStyle', 'color']);\n\n        if (customColor != null) {\n          node.setVisual('color', customColor);\n          node.setVisual('style', {\n            fill: customColor\n          });\n        } else {\n          node.setVisual('color', mapValueToColor);\n          node.setVisual('style', {\n            fill: mapValueToColor\n          });\n        }\n      });\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SankeyView from './SankeyView';\nimport SankeySeriesModel from './SankeySeries';\nimport sankeyLayout from './sankeyLayout';\nimport sankeyVisual from './sankeyVisual';\nexport function install(registers) {\n  registers.registerChartView(SankeyView);\n  registers.registerSeriesModel(SankeySeriesModel);\n  registers.registerLayout(sankeyLayout);\n  registers.registerVisual(sankeyVisual);\n  registers.registerAction({\n    type: 'dragNode',\n    event: 'dragnode',\n    update: 'update'\n  }, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'sankey',\n      query: payload\n    }, function (seriesModel) {\n      seriesModel.setNodePosition(payload.dataIndex, [payload.localX, payload.localY]);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport createListSimply from '../helper/createListSimply';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { getDimensionTypeByAxis } from '../../data/helper/dimensionHelper';\nimport { makeSeriesEncodeForAxisCoordSys } from '../../data/helper/sourceHelper';\n\nvar WhiskerBoxCommonMixin = function () {\n  function WhiskerBoxCommonMixin() {}\n\n  WhiskerBoxCommonMixin.prototype.getInitialData = function (option, ecModel) {\n    var ordinalMeta;\n    var xAxisModel = ecModel.getComponent('xAxis', this.get('xAxisIndex'));\n    var yAxisModel = ecModel.getComponent('yAxis', this.get('yAxisIndex'));\n    var xAxisType = xAxisModel.get('type');\n    var yAxisType = yAxisModel.get('type');\n    var addOrdinal;\n\n    if (xAxisType === 'category') {\n      option.layout = 'horizontal';\n      ordinalMeta = xAxisModel.getOrdinalMeta();\n      addOrdinal = true;\n    } else if (yAxisType === 'category') {\n      option.layout = 'vertical';\n      ordinalMeta = yAxisModel.getOrdinalMeta();\n      addOrdinal = true;\n    } else {\n      option.layout = option.layout || 'horizontal';\n    }\n\n    var coordDims = ['x', 'y'];\n    var baseAxisDimIndex = option.layout === 'horizontal' ? 0 : 1;\n    var baseAxisDim = this._baseAxisDim = coordDims[baseAxisDimIndex];\n    var otherAxisDim = coordDims[1 - baseAxisDimIndex];\n    var axisModels = [xAxisModel, yAxisModel];\n    var baseAxisType = axisModels[baseAxisDimIndex].get('type');\n    var otherAxisType = axisModels[1 - baseAxisDimIndex].get('type');\n    var data = option.data;\n\n    if (data && addOrdinal) {\n      var newOptionData_1 = [];\n      zrUtil.each(data, function (item, index) {\n        var newItem;\n\n        if (zrUtil.isArray(item)) {\n          newItem = item.slice();\n          item.unshift(index);\n        } else if (zrUtil.isArray(item.value)) {\n          newItem = item.value.slice();\n          item.value.unshift(index);\n        } else {\n          newItem = item;\n        }\n\n        newOptionData_1.push(newItem);\n      });\n      option.data = newOptionData_1;\n    }\n\n    var defaultValueDimensions = this.defaultValueDimensions;\n    var coordDimensions = [{\n      name: baseAxisDim,\n      type: getDimensionTypeByAxis(baseAxisType),\n      ordinalMeta: ordinalMeta,\n      otherDims: {\n        tooltip: false,\n        itemName: 0\n      },\n      dimsDef: ['base']\n    }, {\n      name: otherAxisDim,\n      type: getDimensionTypeByAxis(otherAxisType),\n      dimsDef: defaultValueDimensions.slice()\n    }];\n    return createListSimply(this, {\n      coordDimensions: coordDimensions,\n      dimensionsCount: defaultValueDimensions.length + 1,\n      encodeDefaulter: zrUtil.curry(makeSeriesEncodeForAxisCoordSys, coordDimensions, this)\n    });\n  };\n\n  WhiskerBoxCommonMixin.prototype.getBaseAxis = function () {\n    var dim = this._baseAxisDim;\n    return this.ecModel.getComponent(dim + 'Axis', this.get(dim + 'AxisIndex')).axis;\n  };\n\n  return WhiskerBoxCommonMixin;\n}();\n\n;\nexport { WhiskerBoxCommonMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport { WhiskerBoxCommonMixin } from '../helper/whiskerBoxCommon';\nimport { mixin } from 'zrender/lib/core/util';\n\nvar BoxplotSeriesModel = function (_super) {\n  __extends(BoxplotSeriesModel, _super);\n\n  function BoxplotSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BoxplotSeriesModel.type;\n    _this.defaultValueDimensions = [{\n      name: 'min',\n      defaultTooltip: true\n    }, {\n      name: 'Q1',\n      defaultTooltip: true\n    }, {\n      name: 'median',\n      defaultTooltip: true\n    }, {\n      name: 'Q3',\n      defaultTooltip: true\n    }, {\n      name: 'max',\n      defaultTooltip: true\n    }];\n    _this.visualDrawType = 'stroke';\n    return _this;\n  }\n\n  BoxplotSeriesModel.type = 'series.boxplot';\n  BoxplotSeriesModel.dependencies = ['xAxis', 'yAxis', 'grid'];\n  BoxplotSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'cartesian2d',\n    legendHoverLink: true,\n    layout: null,\n    boxWidth: [7, 50],\n    itemStyle: {\n      color: '#fff',\n      borderWidth: 1\n    },\n    emphasis: {\n      scale: true,\n      itemStyle: {\n        borderWidth: 2,\n        shadowBlur: 5,\n        shadowOffsetX: 1,\n        shadowOffsetY: 1,\n        shadowColor: 'rgba(0,0,0,0.2)'\n      }\n    },\n    animationDuration: 800\n  };\n  return BoxplotSeriesModel;\n}(SeriesModel);\n\nmixin(BoxplotSeriesModel, WhiskerBoxCommonMixin, true);\nexport default BoxplotSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ChartView from '../../view/Chart';\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport Path from 'zrender/lib/graphic/Path';\n\nvar BoxplotView = function (_super) {\n  __extends(BoxplotView, _super);\n\n  function BoxplotView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BoxplotView.type;\n    return _this;\n  }\n\n  BoxplotView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    var group = this.group;\n    var oldData = this._data;\n\n    if (!this._data) {\n      group.removeAll();\n    }\n\n    var constDim = seriesModel.get('layout') === 'horizontal' ? 1 : 0;\n    data.diff(oldData).add(function (newIdx) {\n      if (data.hasValue(newIdx)) {\n        var itemLayout = data.getItemLayout(newIdx);\n        var symbolEl = createNormalBox(itemLayout, data, newIdx, constDim, true);\n        data.setItemGraphicEl(newIdx, symbolEl);\n        group.add(symbolEl);\n      }\n    }).update(function (newIdx, oldIdx) {\n      var symbolEl = oldData.getItemGraphicEl(oldIdx);\n\n      if (!data.hasValue(newIdx)) {\n        group.remove(symbolEl);\n        return;\n      }\n\n      var itemLayout = data.getItemLayout(newIdx);\n\n      if (!symbolEl) {\n        symbolEl = createNormalBox(itemLayout, data, newIdx, constDim);\n      } else {\n        updateNormalBoxData(itemLayout, symbolEl, data, newIdx);\n      }\n\n      group.add(symbolEl);\n      data.setItemGraphicEl(newIdx, symbolEl);\n    }).remove(function (oldIdx) {\n      var el = oldData.getItemGraphicEl(oldIdx);\n      el && group.remove(el);\n    }).execute();\n    this._data = data;\n  };\n\n  BoxplotView.prototype.remove = function (ecModel) {\n    var group = this.group;\n    var data = this._data;\n    this._data = null;\n    data && data.eachItemGraphicEl(function (el) {\n      el && group.remove(el);\n    });\n  };\n\n  BoxplotView.type = 'boxplot';\n  return BoxplotView;\n}(ChartView);\n\nvar BoxPathShape = function () {\n  function BoxPathShape() {}\n\n  return BoxPathShape;\n}();\n\nvar BoxPath = function (_super) {\n  __extends(BoxPath, _super);\n\n  function BoxPath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'boxplotBoxPath';\n    return _this;\n  }\n\n  BoxPath.prototype.getDefaultShape = function () {\n    return new BoxPathShape();\n  };\n\n  BoxPath.prototype.buildPath = function (ctx, shape) {\n    var ends = shape.points;\n    var i = 0;\n    ctx.moveTo(ends[i][0], ends[i][1]);\n    i++;\n\n    for (; i < 4; i++) {\n      ctx.lineTo(ends[i][0], ends[i][1]);\n    }\n\n    ctx.closePath();\n\n    for (; i < ends.length; i++) {\n      ctx.moveTo(ends[i][0], ends[i][1]);\n      i++;\n      ctx.lineTo(ends[i][0], ends[i][1]);\n    }\n  };\n\n  return BoxPath;\n}(Path);\n\nfunction createNormalBox(itemLayout, data, dataIndex, constDim, isInit) {\n  var ends = itemLayout.ends;\n  var el = new BoxPath({\n    shape: {\n      points: isInit ? transInit(ends, constDim, itemLayout) : ends\n    }\n  });\n  updateNormalBoxData(itemLayout, el, data, dataIndex, isInit);\n  return el;\n}\n\nfunction updateNormalBoxData(itemLayout, el, data, dataIndex, isInit) {\n  var seriesModel = data.hostModel;\n  var updateMethod = graphic[isInit ? 'initProps' : 'updateProps'];\n  updateMethod(el, {\n    shape: {\n      points: itemLayout.ends\n    }\n  }, seriesModel, dataIndex);\n  el.useStyle(data.getItemVisual(dataIndex, 'style'));\n  el.style.strokeNoScale = true;\n  el.z2 = 100;\n  var itemModel = data.getItemModel(dataIndex);\n  setStatesStylesFromModel(el, itemModel);\n  enableHoverEmphasis(el, itemModel.get(['emphasis', 'focus']), itemModel.get(['emphasis', 'blurScope']));\n}\n\nfunction transInit(points, dim, itemLayout) {\n  return zrUtil.map(points, function (point) {\n    point = point.slice();\n    point[dim] = itemLayout.initBaseline;\n    return point;\n  });\n}\n\nexport default BoxplotView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function boxplotVisual(ecModel, api) {\n  ecModel.eachRawSeriesByType('boxplot', function (seriesModel) {\n    seriesModel.getData().setVisual('legendSymbol', 'roundRect');\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parsePercent } from '../../util/number';\nvar each = zrUtil.each;\nexport default function boxplotLayout(ecModel) {\n  var groupResult = groupSeriesByAxis(ecModel);\n  each(groupResult, function (groupItem) {\n    var seriesModels = groupItem.seriesModels;\n\n    if (!seriesModels.length) {\n      return;\n    }\n\n    calculateBase(groupItem);\n    each(seriesModels, function (seriesModel, idx) {\n      layoutSingleSeries(seriesModel, groupItem.boxOffsetList[idx], groupItem.boxWidthList[idx]);\n    });\n  });\n}\n\nfunction groupSeriesByAxis(ecModel) {\n  var result = [];\n  var axisList = [];\n  ecModel.eachSeriesByType('boxplot', function (seriesModel) {\n    var baseAxis = seriesModel.getBaseAxis();\n    var idx = zrUtil.indexOf(axisList, baseAxis);\n\n    if (idx < 0) {\n      idx = axisList.length;\n      axisList[idx] = baseAxis;\n      result[idx] = {\n        axis: baseAxis,\n        seriesModels: []\n      };\n    }\n\n    result[idx].seriesModels.push(seriesModel);\n  });\n  return result;\n}\n\nfunction calculateBase(groupItem) {\n  var extent;\n  var baseAxis = groupItem.axis;\n  var seriesModels = groupItem.seriesModels;\n  var seriesCount = seriesModels.length;\n  var boxWidthList = groupItem.boxWidthList = [];\n  var boxOffsetList = groupItem.boxOffsetList = [];\n  var boundList = [];\n  var bandWidth;\n\n  if (baseAxis.type === 'category') {\n    bandWidth = baseAxis.getBandWidth();\n  } else {\n    var maxDataCount_1 = 0;\n    each(seriesModels, function (seriesModel) {\n      maxDataCount_1 = Math.max(maxDataCount_1, seriesModel.getData().count());\n    });\n    extent = baseAxis.getExtent(), Math.abs(extent[1] - extent[0]) / maxDataCount_1;\n  }\n\n  each(seriesModels, function (seriesModel) {\n    var boxWidthBound = seriesModel.get('boxWidth');\n\n    if (!zrUtil.isArray(boxWidthBound)) {\n      boxWidthBound = [boxWidthBound, boxWidthBound];\n    }\n\n    boundList.push([parsePercent(boxWidthBound[0], bandWidth) || 0, parsePercent(boxWidthBound[1], bandWidth) || 0]);\n  });\n  var availableWidth = bandWidth * 0.8 - 2;\n  var boxGap = availableWidth / seriesCount * 0.3;\n  var boxWidth = (availableWidth - boxGap * (seriesCount - 1)) / seriesCount;\n  var base = boxWidth / 2 - availableWidth / 2;\n  each(seriesModels, function (seriesModel, idx) {\n    boxOffsetList.push(base);\n    base += boxGap + boxWidth;\n    boxWidthList.push(Math.min(Math.max(boxWidth, boundList[idx][0]), boundList[idx][1]));\n  });\n}\n\nfunction layoutSingleSeries(seriesModel, offset, boxWidth) {\n  var coordSys = seriesModel.coordinateSystem;\n  var data = seriesModel.getData();\n  var halfWidth = boxWidth / 2;\n  var cDimIdx = seriesModel.get('layout') === 'horizontal' ? 0 : 1;\n  var vDimIdx = 1 - cDimIdx;\n  var coordDims = ['x', 'y'];\n  var cDim = data.mapDimension(coordDims[cDimIdx]);\n  var vDims = data.mapDimensionsAll(coordDims[vDimIdx]);\n\n  if (cDim == null || vDims.length < 5) {\n    return;\n  }\n\n  for (var dataIndex = 0; dataIndex < data.count(); dataIndex++) {\n    var axisDimVal = data.get(cDim, dataIndex);\n    var median = getPoint(axisDimVal, vDims[2], dataIndex);\n    var end1 = getPoint(axisDimVal, vDims[0], dataIndex);\n    var end2 = getPoint(axisDimVal, vDims[1], dataIndex);\n    var end4 = getPoint(axisDimVal, vDims[3], dataIndex);\n    var end5 = getPoint(axisDimVal, vDims[4], dataIndex);\n    var ends = [];\n    addBodyEnd(ends, end2, false);\n    addBodyEnd(ends, end4, true);\n    ends.push(end1, end2, end5, end4);\n    layEndLine(ends, end1);\n    layEndLine(ends, end5);\n    layEndLine(ends, median);\n    data.setItemLayout(dataIndex, {\n      initBaseline: median[vDimIdx],\n      ends: ends\n    });\n  }\n\n  function getPoint(axisDimVal, dim, dataIndex) {\n    var val = data.get(dim, dataIndex);\n    var p = [];\n    p[cDimIdx] = axisDimVal;\n    p[vDimIdx] = val;\n    var point;\n\n    if (isNaN(axisDimVal) || isNaN(val)) {\n      point = [NaN, NaN];\n    } else {\n      point = coordSys.dataToPoint(p);\n      point[cDimIdx] += offset;\n    }\n\n    return point;\n  }\n\n  function addBodyEnd(ends, point, start) {\n    var point1 = point.slice();\n    var point2 = point.slice();\n    point1[cDimIdx] += halfWidth;\n    point2[cDimIdx] -= halfWidth;\n    start ? ends.push(point1, point2) : ends.push(point2, point1);\n  }\n\n  function layEndLine(ends, endCenter) {\n    var from = endCenter.slice();\n    var to = endCenter.slice();\n    from[cDimIdx] -= halfWidth;\n    to[cDimIdx] += halfWidth;\n    ends.push(from, to);\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { quantile, asc } from '../../util/number';\nimport { isFunction, isString } from 'zrender/lib/core/util';\nexport default function prepareBoxplotData(rawData, opt) {\n  opt = opt || {};\n  var boxData = [];\n  var outliers = [];\n  var boundIQR = opt.boundIQR;\n  var useExtreme = boundIQR === 'none' || boundIQR === 0;\n\n  for (var i = 0; i < rawData.length; i++) {\n    var ascList = asc(rawData[i].slice());\n    var Q1 = quantile(ascList, 0.25);\n    var Q2 = quantile(ascList, 0.5);\n    var Q3 = quantile(ascList, 0.75);\n    var min = ascList[0];\n    var max = ascList[ascList.length - 1];\n    var bound = (boundIQR == null ? 1.5 : boundIQR) * (Q3 - Q1);\n    var low = useExtreme ? min : Math.max(min, Q1 - bound);\n    var high = useExtreme ? max : Math.min(max, Q3 + bound);\n    var itemNameFormatter = opt.itemNameFormatter;\n    var itemName = isFunction(itemNameFormatter) ? itemNameFormatter({\n      value: i\n    }) : isString(itemNameFormatter) ? itemNameFormatter.replace('{value}', i + '') : i + '';\n    boxData.push([itemName, low, Q1, Q2, Q3, high]);\n\n    for (var j = 0; j < ascList.length; j++) {\n      var dataItem = ascList[j];\n\n      if (dataItem < low || dataItem > high) {\n        var outlier = [itemName, dataItem];\n        outliers.push(outlier);\n      }\n    }\n  }\n\n  return {\n    boxData: boxData,\n    outliers: outliers\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport prepareBoxplotData from './prepareBoxplotData';\nimport { throwError, makePrintable } from '../../util/log';\nimport { SOURCE_FORMAT_ARRAY_ROWS } from '../../util/types';\nexport var boxplotTransform = {\n  type: 'echarts:boxplot',\n  transform: function transform(params) {\n    var upstream = params.upstream;\n\n    if (upstream.sourceFormat !== SOURCE_FORMAT_ARRAY_ROWS) {\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = makePrintable('source data is not applicable for this boxplot transform. Expect number[][].');\n      }\n\n      throwError(errMsg);\n    }\n\n    var result = prepareBoxplotData(upstream.getRawData(), params.config);\n    return [{\n      dimensions: ['ItemName', 'Low', 'Q1', 'Q2', 'Q3', 'High'],\n      data: result.boxData\n    }, {\n      data: result.outliers\n    }];\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport BoxplotSeriesModel from './BoxplotSeries';\nimport BoxplotView from './BoxplotView';\nimport boxplotVisual from './boxplotVisual';\nimport boxplotLayout from './boxplotLayout';\nimport { boxplotTransform } from './boxplotTransform';\nexport function install(registers) {\n  registers.registerSeriesModel(BoxplotSeriesModel);\n  registers.registerChartView(BoxplotView);\n  registers.registerVisual(boxplotVisual);\n  registers.registerLayout(boxplotLayout);\n  registers.registerTransform(boxplotTransform);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ChartView from '../../view/Chart';\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel } from '../../util/states';\nimport Path from 'zrender/lib/graphic/Path';\nimport { createClipPath } from '../helper/createClipPathFromCoordSys';\nvar SKIP_PROPS = ['color', 'borderColor'];\n\nvar CandlestickView = function (_super) {\n  __extends(CandlestickView, _super);\n\n  function CandlestickView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CandlestickView.type;\n    return _this;\n  }\n\n  CandlestickView.prototype.render = function (seriesModel, ecModel, api) {\n    this.group.removeClipPath();\n\n    this._updateDrawMode(seriesModel);\n\n    this._isLargeDraw ? this._renderLarge(seriesModel) : this._renderNormal(seriesModel);\n  };\n\n  CandlestickView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n    this._clear();\n\n    this._updateDrawMode(seriesModel);\n  };\n\n  CandlestickView.prototype.incrementalRender = function (params, seriesModel, ecModel, api) {\n    this._isLargeDraw ? this._incrementalRenderLarge(params, seriesModel) : this._incrementalRenderNormal(params, seriesModel);\n  };\n\n  CandlestickView.prototype._updateDrawMode = function (seriesModel) {\n    var isLargeDraw = seriesModel.pipelineContext.large;\n\n    if (this._isLargeDraw == null || isLargeDraw !== this._isLargeDraw) {\n      this._isLargeDraw = isLargeDraw;\n\n      this._clear();\n    }\n  };\n\n  CandlestickView.prototype._renderNormal = function (seriesModel) {\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var group = this.group;\n    var isSimpleBox = data.getLayout('isSimpleBox');\n    var needsClip = seriesModel.get('clip', true);\n    var coord = seriesModel.coordinateSystem;\n    var clipArea = coord.getArea && coord.getArea();\n\n    if (!this._data) {\n      group.removeAll();\n    }\n\n    data.diff(oldData).add(function (newIdx) {\n      if (data.hasValue(newIdx)) {\n        var itemLayout = data.getItemLayout(newIdx);\n\n        if (needsClip && isNormalBoxClipped(clipArea, itemLayout)) {\n          return;\n        }\n\n        var el = createNormalBox(itemLayout, newIdx, true);\n        graphic.initProps(el, {\n          shape: {\n            points: itemLayout.ends\n          }\n        }, seriesModel, newIdx);\n        setBoxCommon(el, data, newIdx, isSimpleBox);\n        group.add(el);\n        data.setItemGraphicEl(newIdx, el);\n      }\n    }).update(function (newIdx, oldIdx) {\n      var el = oldData.getItemGraphicEl(oldIdx);\n\n      if (!data.hasValue(newIdx)) {\n        group.remove(el);\n        return;\n      }\n\n      var itemLayout = data.getItemLayout(newIdx);\n\n      if (needsClip && isNormalBoxClipped(clipArea, itemLayout)) {\n        group.remove(el);\n        return;\n      }\n\n      if (!el) {\n        el = createNormalBox(itemLayout, newIdx);\n      } else {\n        graphic.updateProps(el, {\n          shape: {\n            points: itemLayout.ends\n          }\n        }, seriesModel, newIdx);\n      }\n\n      setBoxCommon(el, data, newIdx, isSimpleBox);\n      group.add(el);\n      data.setItemGraphicEl(newIdx, el);\n    }).remove(function (oldIdx) {\n      var el = oldData.getItemGraphicEl(oldIdx);\n      el && group.remove(el);\n    }).execute();\n    this._data = data;\n  };\n\n  CandlestickView.prototype._renderLarge = function (seriesModel) {\n    this._clear();\n\n    createLarge(seriesModel, this.group);\n    var clipPath = seriesModel.get('clip', true) ? createClipPath(seriesModel.coordinateSystem, false, seriesModel) : null;\n\n    if (clipPath) {\n      this.group.setClipPath(clipPath);\n    } else {\n      this.group.removeClipPath();\n    }\n  };\n\n  CandlestickView.prototype._incrementalRenderNormal = function (params, seriesModel) {\n    var data = seriesModel.getData();\n    var isSimpleBox = data.getLayout('isSimpleBox');\n    var dataIndex;\n\n    while ((dataIndex = params.next()) != null) {\n      var itemLayout = data.getItemLayout(dataIndex);\n      var el = createNormalBox(itemLayout, dataIndex);\n      setBoxCommon(el, data, dataIndex, isSimpleBox);\n      el.incremental = true;\n      this.group.add(el);\n    }\n  };\n\n  CandlestickView.prototype._incrementalRenderLarge = function (params, seriesModel) {\n    createLarge(seriesModel, this.group, true);\n  };\n\n  CandlestickView.prototype.remove = function (ecModel) {\n    this._clear();\n  };\n\n  CandlestickView.prototype._clear = function () {\n    this.group.removeAll();\n    this._data = null;\n  };\n\n  CandlestickView.type = 'candlestick';\n  return CandlestickView;\n}(ChartView);\n\nvar NormalBoxPathShape = function () {\n  function NormalBoxPathShape() {}\n\n  return NormalBoxPathShape;\n}();\n\nvar NormalBoxPath = function (_super) {\n  __extends(NormalBoxPath, _super);\n\n  function NormalBoxPath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'normalCandlestickBox';\n    return _this;\n  }\n\n  NormalBoxPath.prototype.getDefaultShape = function () {\n    return new NormalBoxPathShape();\n  };\n\n  NormalBoxPath.prototype.buildPath = function (ctx, shape) {\n    var ends = shape.points;\n\n    if (this.__simpleBox) {\n      ctx.moveTo(ends[4][0], ends[4][1]);\n      ctx.lineTo(ends[6][0], ends[6][1]);\n    } else {\n      ctx.moveTo(ends[0][0], ends[0][1]);\n      ctx.lineTo(ends[1][0], ends[1][1]);\n      ctx.lineTo(ends[2][0], ends[2][1]);\n      ctx.lineTo(ends[3][0], ends[3][1]);\n      ctx.closePath();\n      ctx.moveTo(ends[4][0], ends[4][1]);\n      ctx.lineTo(ends[5][0], ends[5][1]);\n      ctx.moveTo(ends[6][0], ends[6][1]);\n      ctx.lineTo(ends[7][0], ends[7][1]);\n    }\n  };\n\n  return NormalBoxPath;\n}(Path);\n\nfunction createNormalBox(itemLayout, dataIndex, isInit) {\n  var ends = itemLayout.ends;\n  return new NormalBoxPath({\n    shape: {\n      points: isInit ? transInit(ends, itemLayout) : ends\n    },\n    z2: 100\n  });\n}\n\nfunction isNormalBoxClipped(clipArea, itemLayout) {\n  var clipped = true;\n\n  for (var i = 0; i < itemLayout.ends.length; i++) {\n    if (clipArea.contain(itemLayout.ends[i][0], itemLayout.ends[i][1])) {\n      clipped = false;\n      break;\n    }\n  }\n\n  return clipped;\n}\n\nfunction setBoxCommon(el, data, dataIndex, isSimpleBox) {\n  var itemModel = data.getItemModel(dataIndex);\n  el.useStyle(data.getItemVisual(dataIndex, 'style'));\n  el.style.strokeNoScale = true;\n  el.__simpleBox = isSimpleBox;\n  setStatesStylesFromModel(el, itemModel);\n}\n\nfunction transInit(points, itemLayout) {\n  return zrUtil.map(points, function (point) {\n    point = point.slice();\n    point[1] = itemLayout.initBaseline;\n    return point;\n  });\n}\n\nvar LargeBoxPathShape = function () {\n  function LargeBoxPathShape() {}\n\n  return LargeBoxPathShape;\n}();\n\nvar LargeBoxPath = function (_super) {\n  __extends(LargeBoxPath, _super);\n\n  function LargeBoxPath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'largeCandlestickBox';\n    return _this;\n  }\n\n  LargeBoxPath.prototype.getDefaultShape = function () {\n    return new LargeBoxPathShape();\n  };\n\n  LargeBoxPath.prototype.buildPath = function (ctx, shape) {\n    var points = shape.points;\n\n    for (var i = 0; i < points.length;) {\n      if (this.__sign === points[i++]) {\n        var x = points[i++];\n        ctx.moveTo(x, points[i++]);\n        ctx.lineTo(x, points[i++]);\n      } else {\n        i += 3;\n      }\n    }\n  };\n\n  return LargeBoxPath;\n}(Path);\n\nfunction createLarge(seriesModel, group, incremental) {\n  var data = seriesModel.getData();\n  var largePoints = data.getLayout('largePoints');\n  var elP = new LargeBoxPath({\n    shape: {\n      points: largePoints\n    },\n    __sign: 1\n  });\n  group.add(elP);\n  var elN = new LargeBoxPath({\n    shape: {\n      points: largePoints\n    },\n    __sign: -1\n  });\n  group.add(elN);\n  setLargeStyle(1, elP, seriesModel, data);\n  setLargeStyle(-1, elN, seriesModel, data);\n\n  if (incremental) {\n    elP.incremental = true;\n    elN.incremental = true;\n  }\n}\n\nfunction setLargeStyle(sign, el, seriesModel, data) {\n  var borderColor = seriesModel.get(['itemStyle', sign > 0 ? 'borderColor' : 'borderColor0']) || seriesModel.get(['itemStyle', sign > 0 ? 'color' : 'color0']);\n  var itemStyle = seriesModel.getModel('itemStyle').getItemStyle(SKIP_PROPS);\n  el.useStyle(itemStyle);\n  el.style.fill = null;\n  el.style.stroke = borderColor;\n}\n\nexport default CandlestickView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport { WhiskerBoxCommonMixin } from '../helper/whiskerBoxCommon';\nimport { mixin } from 'zrender/lib/core/util';\n\nvar CandlestickSeriesModel = function (_super) {\n  __extends(CandlestickSeriesModel, _super);\n\n  function CandlestickSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CandlestickSeriesModel.type;\n    _this.defaultValueDimensions = [{\n      name: 'open',\n      defaultTooltip: true\n    }, {\n      name: 'close',\n      defaultTooltip: true\n    }, {\n      name: 'lowest',\n      defaultTooltip: true\n    }, {\n      name: 'highest',\n      defaultTooltip: true\n    }];\n    return _this;\n  }\n\n  CandlestickSeriesModel.prototype.getShadowDim = function () {\n    return 'open';\n  };\n\n  CandlestickSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n    var itemLayout = data.getItemLayout(dataIndex);\n    return itemLayout && selectors.rect(itemLayout.brushRect);\n  };\n\n  CandlestickSeriesModel.type = 'series.candlestick';\n  CandlestickSeriesModel.dependencies = ['xAxis', 'yAxis', 'grid'];\n  CandlestickSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'cartesian2d',\n    legendHoverLink: true,\n    layout: null,\n    clip: true,\n    itemStyle: {\n      color: '#eb5454',\n      color0: '#47b262',\n      borderColor: '#eb5454',\n      borderColor0: '#47b262',\n      borderWidth: 1\n    },\n    emphasis: {\n      scale: true,\n      itemStyle: {\n        borderWidth: 2\n      }\n    },\n    barMaxWidth: null,\n    barMinWidth: null,\n    barWidth: null,\n    large: true,\n    largeThreshold: 600,\n    progressive: 3e3,\n    progressiveThreshold: 1e4,\n    progressiveChunkMode: 'mod',\n    animationEasing: 'linear',\n    animationDuration: 300\n  };\n  return CandlestickSeriesModel;\n}(SeriesModel);\n\nmixin(CandlestickSeriesModel, WhiskerBoxCommonMixin, true);\nexport default CandlestickSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function candlestickPreprocessor(option) {\n  if (!option || !zrUtil.isArray(option.series)) {\n    return;\n  }\n\n  zrUtil.each(option.series, function (seriesItem) {\n    if (zrUtil.isObject(seriesItem) && seriesItem.type === 'k') {\n      seriesItem.type = 'candlestick';\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport createRenderPlanner from '../helper/createRenderPlanner';\nimport { extend } from 'zrender/lib/core/util';\nvar positiveBorderColorQuery = ['itemStyle', 'borderColor'];\nvar negativeBorderColorQuery = ['itemStyle', 'borderColor0'];\nvar positiveColorQuery = ['itemStyle', 'color'];\nvar negativeColorQuery = ['itemStyle', 'color0'];\nvar candlestickVisual = {\n  seriesType: 'candlestick',\n  plan: createRenderPlanner(),\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    function getColor(sign, model) {\n      return model.get(sign > 0 ? positiveColorQuery : negativeColorQuery);\n    }\n\n    function getBorderColor(sign, model) {\n      return model.get(sign > 0 ? positiveBorderColorQuery : negativeBorderColorQuery);\n    }\n\n    var data = seriesModel.getData();\n    data.setVisual('legendSymbol', 'roundRect');\n\n    if (ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    var isLargeRender = seriesModel.pipelineContext.large;\n    return !isLargeRender && {\n      progress: function (params, data) {\n        var dataIndex;\n\n        while ((dataIndex = params.next()) != null) {\n          var itemModel = data.getItemModel(dataIndex);\n          var sign = data.getItemLayout(dataIndex).sign;\n          var style = itemModel.getItemStyle();\n          style.fill = getColor(sign, itemModel);\n          style.stroke = getBorderColor(sign, itemModel) || style.fill;\n          var existsStyle = data.ensureUniqueItemVisual(dataIndex, 'style');\n          extend(existsStyle, style);\n        }\n      }\n    };\n  }\n};\nexport default candlestickVisual;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { subPixelOptimize } from '../../util/graphic';\nimport createRenderPlanner from '../helper/createRenderPlanner';\nimport { parsePercent } from '../../util/number';\nimport { retrieve2 } from 'zrender/lib/core/util';\nvar LargeArr = typeof Float32Array !== 'undefined' ? Float32Array : Array;\nvar candlestickLayout = {\n  seriesType: 'candlestick',\n  plan: createRenderPlanner(),\n  reset: function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n    var data = seriesModel.getData();\n    var candleWidth = calculateCandleWidth(seriesModel, data);\n    var cDimIdx = 0;\n    var vDimIdx = 1;\n    var coordDims = ['x', 'y'];\n    var cDim = data.mapDimension(coordDims[cDimIdx]);\n    var vDims = data.mapDimensionsAll(coordDims[vDimIdx]);\n    var openDim = vDims[0];\n    var closeDim = vDims[1];\n    var lowestDim = vDims[2];\n    var highestDim = vDims[3];\n    data.setLayout({\n      candleWidth: candleWidth,\n      isSimpleBox: candleWidth <= 1.3\n    });\n\n    if (cDim == null || vDims.length < 4) {\n      return;\n    }\n\n    return {\n      progress: seriesModel.pipelineContext.large ? largeProgress : normalProgress\n    };\n\n    function normalProgress(params, data) {\n      var dataIndex;\n\n      while ((dataIndex = params.next()) != null) {\n        var axisDimVal = data.get(cDim, dataIndex);\n        var openVal = data.get(openDim, dataIndex);\n        var closeVal = data.get(closeDim, dataIndex);\n        var lowestVal = data.get(lowestDim, dataIndex);\n        var highestVal = data.get(highestDim, dataIndex);\n        var ocLow = Math.min(openVal, closeVal);\n        var ocHigh = Math.max(openVal, closeVal);\n        var ocLowPoint = getPoint(ocLow, axisDimVal);\n        var ocHighPoint = getPoint(ocHigh, axisDimVal);\n        var lowestPoint = getPoint(lowestVal, axisDimVal);\n        var highestPoint = getPoint(highestVal, axisDimVal);\n        var ends = [];\n        addBodyEnd(ends, ocHighPoint, 0);\n        addBodyEnd(ends, ocLowPoint, 1);\n        ends.push(subPixelOptimizePoint(highestPoint), subPixelOptimizePoint(ocHighPoint), subPixelOptimizePoint(lowestPoint), subPixelOptimizePoint(ocLowPoint));\n        data.setItemLayout(dataIndex, {\n          sign: getSign(data, dataIndex, openVal, closeVal, closeDim),\n          initBaseline: openVal > closeVal ? ocHighPoint[vDimIdx] : ocLowPoint[vDimIdx],\n          ends: ends,\n          brushRect: makeBrushRect(lowestVal, highestVal, axisDimVal)\n        });\n      }\n\n      function getPoint(val, axisDimVal) {\n        var p = [];\n        p[cDimIdx] = axisDimVal;\n        p[vDimIdx] = val;\n        return isNaN(axisDimVal) || isNaN(val) ? [NaN, NaN] : coordSys.dataToPoint(p);\n      }\n\n      function addBodyEnd(ends, point, start) {\n        var point1 = point.slice();\n        var point2 = point.slice();\n        point1[cDimIdx] = subPixelOptimize(point1[cDimIdx] + candleWidth / 2, 1, false);\n        point2[cDimIdx] = subPixelOptimize(point2[cDimIdx] - candleWidth / 2, 1, true);\n        start ? ends.push(point1, point2) : ends.push(point2, point1);\n      }\n\n      function makeBrushRect(lowestVal, highestVal, axisDimVal) {\n        var pmin = getPoint(lowestVal, axisDimVal);\n        var pmax = getPoint(highestVal, axisDimVal);\n        pmin[cDimIdx] -= candleWidth / 2;\n        pmax[cDimIdx] -= candleWidth / 2;\n        return {\n          x: pmin[0],\n          y: pmin[1],\n          width: vDimIdx ? candleWidth : pmax[0] - pmin[0],\n          height: vDimIdx ? pmax[1] - pmin[1] : candleWidth\n        };\n      }\n\n      function subPixelOptimizePoint(point) {\n        point[cDimIdx] = subPixelOptimize(point[cDimIdx], 1);\n        return point;\n      }\n    }\n\n    function largeProgress(params, data) {\n      var points = new LargeArr(params.count * 4);\n      var offset = 0;\n      var point;\n      var tmpIn = [];\n      var tmpOut = [];\n      var dataIndex;\n\n      while ((dataIndex = params.next()) != null) {\n        var axisDimVal = data.get(cDim, dataIndex);\n        var openVal = data.get(openDim, dataIndex);\n        var closeVal = data.get(closeDim, dataIndex);\n        var lowestVal = data.get(lowestDim, dataIndex);\n        var highestVal = data.get(highestDim, dataIndex);\n\n        if (isNaN(axisDimVal) || isNaN(lowestVal) || isNaN(highestVal)) {\n          points[offset++] = NaN;\n          offset += 3;\n          continue;\n        }\n\n        points[offset++] = getSign(data, dataIndex, openVal, closeVal, closeDim);\n        tmpIn[cDimIdx] = axisDimVal;\n        tmpIn[vDimIdx] = lowestVal;\n        point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n        points[offset++] = point ? point[0] : NaN;\n        points[offset++] = point ? point[1] : NaN;\n        tmpIn[vDimIdx] = highestVal;\n        point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n        points[offset++] = point ? point[1] : NaN;\n      }\n\n      data.setLayout('largePoints', points);\n    }\n  }\n};\n\nfunction getSign(data, dataIndex, openVal, closeVal, closeDim) {\n  var sign;\n\n  if (openVal > closeVal) {\n    sign = -1;\n  } else if (openVal < closeVal) {\n    sign = 1;\n  } else {\n    sign = dataIndex > 0 ? data.get(closeDim, dataIndex - 1) <= closeVal ? 1 : -1 : 1;\n  }\n\n  return sign;\n}\n\nfunction calculateCandleWidth(seriesModel, data) {\n  var baseAxis = seriesModel.getBaseAxis();\n  var extent;\n  var bandWidth = baseAxis.type === 'category' ? baseAxis.getBandWidth() : (extent = baseAxis.getExtent(), Math.abs(extent[1] - extent[0]) / data.count());\n  var barMaxWidth = parsePercent(retrieve2(seriesModel.get('barMaxWidth'), bandWidth), bandWidth);\n  var barMinWidth = parsePercent(retrieve2(seriesModel.get('barMinWidth'), 1), bandWidth);\n  var barWidth = seriesModel.get('barWidth');\n  return barWidth != null ? parsePercent(barWidth, bandWidth) : Math.max(Math.min(bandWidth / 2, barMaxWidth), barMinWidth);\n}\n\nexport default candlestickLayout;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport CandlestickView from './CandlestickView';\nimport CandlestickSeriesModel from './CandlestickSeries';\nimport preprocessor from './preprocessor';\nimport candlestickVisual from './candlestickVisual';\nimport candlestickLayout from './candlestickLayout';\nexport function install(registers) {\n  registers.registerChartView(CandlestickView);\n  registers.registerSeriesModel(CandlestickSeriesModel);\n  registers.registerPreprocessor(preprocessor);\n  registers.registerVisual(candlestickVisual);\n  registers.registerLayout(candlestickLayout);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { createSymbol } from '../../util/symbol';\nimport { Group } from '../../util/graphic';\nimport { enterEmphasis, leaveEmphasis, enableHoverEmphasis } from '../../util/states';\nimport { parsePercent } from '../../util/number';\nimport SymbolClz from './Symbol';\nvar EFFECT_RIPPLE_NUMBER = 3;\n\nfunction normalizeSymbolSize(symbolSize) {\n  if (!zrUtil.isArray(symbolSize)) {\n    symbolSize = [+symbolSize, +symbolSize];\n  }\n\n  return symbolSize;\n}\n\nfunction updateRipplePath(rippleGroup, effectCfg) {\n  var color = effectCfg.rippleEffectColor || effectCfg.color;\n  rippleGroup.eachChild(function (ripplePath) {\n    ripplePath.attr({\n      z: effectCfg.z,\n      zlevel: effectCfg.zlevel,\n      style: {\n        stroke: effectCfg.brushType === 'stroke' ? color : null,\n        fill: effectCfg.brushType === 'fill' ? color : null\n      }\n    });\n  });\n}\n\nvar EffectSymbol = function (_super) {\n  __extends(EffectSymbol, _super);\n\n  function EffectSymbol(data, idx) {\n    var _this = _super.call(this) || this;\n\n    var symbol = new SymbolClz(data, idx);\n    var rippleGroup = new Group();\n\n    _this.add(symbol);\n\n    _this.add(rippleGroup);\n\n    _this.updateData(data, idx);\n\n    return _this;\n  }\n\n  EffectSymbol.prototype.stopEffectAnimation = function () {\n    this.childAt(1).removeAll();\n  };\n\n  EffectSymbol.prototype.startEffectAnimation = function (effectCfg) {\n    var symbolType = effectCfg.symbolType;\n    var color = effectCfg.color;\n    var rippleGroup = this.childAt(1);\n\n    for (var i = 0; i < EFFECT_RIPPLE_NUMBER; i++) {\n      var ripplePath = createSymbol(symbolType, -1, -1, 2, 2, color);\n      ripplePath.attr({\n        style: {\n          strokeNoScale: true\n        },\n        z2: 99,\n        silent: true,\n        scaleX: 0.5,\n        scaleY: 0.5\n      });\n      var delay = -i / EFFECT_RIPPLE_NUMBER * effectCfg.period + effectCfg.effectOffset;\n      ripplePath.animate('', true).when(effectCfg.period, {\n        scale: [effectCfg.rippleScale / 2, effectCfg.rippleScale / 2]\n      }).delay(delay).start();\n      ripplePath.animateStyle(true).when(effectCfg.period, {\n        opacity: 0\n      }).delay(delay).start();\n      rippleGroup.add(ripplePath);\n    }\n\n    updateRipplePath(rippleGroup, effectCfg);\n  };\n\n  EffectSymbol.prototype.updateEffectAnimation = function (effectCfg) {\n    var oldEffectCfg = this._effectCfg;\n    var rippleGroup = this.childAt(1);\n    var DIFFICULT_PROPS = ['symbolType', 'period', 'rippleScale'];\n\n    for (var i = 0; i < DIFFICULT_PROPS.length; i++) {\n      var propName = DIFFICULT_PROPS[i];\n\n      if (oldEffectCfg[propName] !== effectCfg[propName]) {\n        this.stopEffectAnimation();\n        this.startEffectAnimation(effectCfg);\n        return;\n      }\n    }\n\n    updateRipplePath(rippleGroup, effectCfg);\n  };\n\n  EffectSymbol.prototype.highlight = function () {\n    enterEmphasis(this);\n  };\n\n  EffectSymbol.prototype.downplay = function () {\n    leaveEmphasis(this);\n  };\n\n  EffectSymbol.prototype.updateData = function (data, idx) {\n    var _this = this;\n\n    var seriesModel = data.hostModel;\n    this.childAt(0).updateData(data, idx);\n    var rippleGroup = this.childAt(1);\n    var itemModel = data.getItemModel(idx);\n    var symbolType = data.getItemVisual(idx, 'symbol');\n    var symbolSize = normalizeSymbolSize(data.getItemVisual(idx, 'symbolSize'));\n    var symbolStyle = data.getItemVisual(idx, 'style');\n    var color = symbolStyle && symbolStyle.fill;\n    rippleGroup.setScale(symbolSize);\n    rippleGroup.traverse(function (ripplePath) {\n      ripplePath.setStyle('fill', color);\n    });\n    var symbolOffset = itemModel.getShallow('symbolOffset');\n\n    if (symbolOffset) {\n      rippleGroup.x = parsePercent(symbolOffset[0], symbolSize[0]);\n      rippleGroup.y = parsePercent(symbolOffset[1], symbolSize[1]);\n    }\n\n    var symbolRotate = data.getItemVisual(idx, 'symbolRotate');\n    rippleGroup.rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\n    var effectCfg = {};\n    effectCfg.showEffectOn = seriesModel.get('showEffectOn');\n    effectCfg.rippleScale = itemModel.get(['rippleEffect', 'scale']);\n    effectCfg.brushType = itemModel.get(['rippleEffect', 'brushType']);\n    effectCfg.period = itemModel.get(['rippleEffect', 'period']) * 1000;\n    effectCfg.effectOffset = idx / data.count();\n    effectCfg.z = seriesModel.getShallow('z') || 0;\n    effectCfg.zlevel = seriesModel.getShallow('zlevel') || 0;\n    effectCfg.symbolType = symbolType;\n    effectCfg.color = color;\n    effectCfg.rippleEffectColor = itemModel.get(['rippleEffect', 'color']);\n    this.off('mouseover').off('mouseout').off('emphasis').off('normal');\n\n    if (effectCfg.showEffectOn === 'render') {\n      this._effectCfg ? this.updateEffectAnimation(effectCfg) : this.startEffectAnimation(effectCfg);\n      this._effectCfg = effectCfg;\n    } else {\n      this._effectCfg = null;\n      this.stopEffectAnimation();\n\n      this.onHoverStateChange = function (toState) {\n        if (toState === 'emphasis') {\n          if (effectCfg.showEffectOn !== 'render') {\n            _this.startEffectAnimation(effectCfg);\n          }\n        } else if (toState === 'normal') {\n          if (effectCfg.showEffectOn !== 'render') {\n            _this.stopEffectAnimation();\n          }\n        }\n      };\n    }\n\n    this._effectCfg = effectCfg;\n    enableHoverEmphasis(this);\n  };\n\n  ;\n\n  EffectSymbol.prototype.fadeOut = function (cb) {\n    this.off('mouseover').off('mouseout');\n    cb && cb();\n  };\n\n  ;\n  return EffectSymbol;\n}(Group);\n\nzrUtil.inherits(EffectSymbol, Group);\nexport default EffectSymbol;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SymbolDraw from '../helper/SymbolDraw';\nimport EffectSymbol from '../helper/EffectSymbol';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport pointsLayout from '../../layout/points';\nimport ChartView from '../../view/Chart';\n\nvar EffectScatterView = function (_super) {\n  __extends(EffectScatterView, _super);\n\n  function EffectScatterView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = EffectScatterView.type;\n    return _this;\n  }\n\n  EffectScatterView.prototype.init = function () {\n    this._symbolDraw = new SymbolDraw(EffectSymbol);\n  };\n\n  EffectScatterView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    var effectSymbolDraw = this._symbolDraw;\n    effectSymbolDraw.updateData(data);\n    this.group.add(effectSymbolDraw.group);\n  };\n\n  EffectScatterView.prototype.updateTransform = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    this.group.dirty();\n    var res = pointsLayout('').reset(seriesModel, ecModel, api);\n\n    if (res.progress) {\n      res.progress({\n        start: 0,\n        end: data.count(),\n        count: data.count()\n      }, data);\n    }\n\n    this._symbolDraw.updateLayout();\n  };\n\n  EffectScatterView.prototype._updateGroupTransform = function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys && coordSys.getRoamTransform) {\n      this.group.transform = matrix.clone(coordSys.getRoamTransform());\n      this.group.decomposeTransform();\n    }\n  };\n\n  EffectScatterView.prototype.remove = function (ecModel, api) {\n    this._symbolDraw && this._symbolDraw.remove(true);\n  };\n\n  EffectScatterView.type = 'effectScatter';\n  return EffectScatterView;\n}(ChartView);\n\nexport default EffectScatterView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListFromArray from '../helper/createListFromArray';\nimport SeriesModel from '../../model/Series';\n\nvar EffectScatterSeriesModel = function (_super) {\n  __extends(EffectScatterSeriesModel, _super);\n\n  function EffectScatterSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = EffectScatterSeriesModel.type;\n    _this.hasSymbolVisual = true;\n    return _this;\n  }\n\n  EffectScatterSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: true\n    });\n  };\n\n  EffectScatterSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n    return selectors.point(data.getItemLayout(dataIndex));\n  };\n\n  EffectScatterSeriesModel.type = 'series.effectScatter';\n  EffectScatterSeriesModel.dependencies = ['grid', 'polar'];\n  EffectScatterSeriesModel.defaultOption = {\n    coordinateSystem: 'cartesian2d',\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    effectType: 'ripple',\n    progressive: 0,\n    showEffectOn: 'render',\n    rippleEffect: {\n      period: 4,\n      scale: 2.5,\n      brushType: 'fill'\n    },\n    symbolSize: 10\n  };\n  return EffectScatterSeriesModel;\n}(SeriesModel);\n\nexport default EffectScatterSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport EffectScatterView from './EffectScatterView';\nimport EffectScatterSeriesModel from './EffectScatterSeries';\nimport layoutPoints from '../../layout/points';\nexport function install(registers) {\n  registers.registerChartView(EffectScatterView);\n  registers.registerSeriesModel(EffectScatterSeriesModel);\n  registers.registerLayout(layoutPoints('effectScatter'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport Line from './Line';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { createSymbol } from '../../util/symbol';\nimport * as vec2 from 'zrender/lib/core/vector';\nimport * as curveUtil from 'zrender/lib/core/curve';\n\nvar EffectLine = function (_super) {\n  __extends(EffectLine, _super);\n\n  function EffectLine(lineData, idx, seriesScope) {\n    var _this = _super.call(this) || this;\n\n    _this.add(_this.createLine(lineData, idx, seriesScope));\n\n    _this._updateEffectSymbol(lineData, idx);\n\n    return _this;\n  }\n\n  EffectLine.prototype.createLine = function (lineData, idx, seriesScope) {\n    return new Line(lineData, idx, seriesScope);\n  };\n\n  EffectLine.prototype._updateEffectSymbol = function (lineData, idx) {\n    var itemModel = lineData.getItemModel(idx);\n    var effectModel = itemModel.getModel('effect');\n    var size = effectModel.get('symbolSize');\n    var symbolType = effectModel.get('symbol');\n\n    if (!zrUtil.isArray(size)) {\n      size = [size, size];\n    }\n\n    var lineStyle = lineData.getItemVisual(idx, 'style');\n    var color = effectModel.get('color') || lineStyle && lineStyle.stroke;\n    var symbol = this.childAt(1);\n\n    if (this._symbolType !== symbolType) {\n      this.remove(symbol);\n      symbol = createSymbol(symbolType, -0.5, -0.5, 1, 1, color);\n      symbol.z2 = 100;\n      symbol.culling = true;\n      this.add(symbol);\n    }\n\n    if (!symbol) {\n      return;\n    }\n\n    symbol.setStyle('shadowColor', color);\n    symbol.setStyle(effectModel.getItemStyle(['color']));\n    symbol.scaleX = size[0];\n    symbol.scaleY = size[1];\n    symbol.setColor(color);\n    this._symbolType = symbolType;\n    this._symbolScale = size;\n\n    this._updateEffectAnimation(lineData, effectModel, idx);\n  };\n\n  EffectLine.prototype._updateEffectAnimation = function (lineData, effectModel, idx) {\n    var symbol = this.childAt(1);\n\n    if (!symbol) {\n      return;\n    }\n\n    var self = this;\n    var points = lineData.getItemLayout(idx);\n    var period = effectModel.get('period') * 1000;\n    var loop = effectModel.get('loop');\n    var constantSpeed = effectModel.get('constantSpeed');\n    var delayExpr = zrUtil.retrieve(effectModel.get('delay'), function (idx) {\n      return idx / lineData.count() * period / 3;\n    });\n    symbol.ignore = true;\n\n    this._updateAnimationPoints(symbol, points);\n\n    if (constantSpeed > 0) {\n      period = this._getLineLength(symbol) / constantSpeed * 1000;\n    }\n\n    if (period !== this._period || loop !== this._loop) {\n      symbol.stopAnimation();\n\n      if (period > 0) {\n        var delayNum = void 0;\n\n        if (typeof delayExpr === 'function') {\n          delayNum = delayExpr(idx);\n        } else {\n          delayNum = delayExpr;\n        }\n\n        if (symbol.__t > 0) {\n          delayNum = -period * symbol.__t;\n        }\n\n        symbol.__t = 0;\n        var animator = symbol.animate('', loop).when(period, {\n          __t: 1\n        }).delay(delayNum).during(function () {\n          self._updateSymbolPosition(symbol);\n        });\n\n        if (!loop) {\n          animator.done(function () {\n            self.remove(symbol);\n          });\n        }\n\n        animator.start();\n      }\n    }\n\n    this._period = period;\n    this._loop = loop;\n  };\n\n  EffectLine.prototype._getLineLength = function (symbol) {\n    return vec2.dist(symbol.__p1, symbol.__cp1) + vec2.dist(symbol.__cp1, symbol.__p2);\n  };\n\n  EffectLine.prototype._updateAnimationPoints = function (symbol, points) {\n    symbol.__p1 = points[0];\n    symbol.__p2 = points[1];\n    symbol.__cp1 = points[2] || [(points[0][0] + points[1][0]) / 2, (points[0][1] + points[1][1]) / 2];\n  };\n\n  EffectLine.prototype.updateData = function (lineData, idx, seriesScope) {\n    this.childAt(0).updateData(lineData, idx, seriesScope);\n\n    this._updateEffectSymbol(lineData, idx);\n  };\n\n  EffectLine.prototype._updateSymbolPosition = function (symbol) {\n    var p1 = symbol.__p1;\n    var p2 = symbol.__p2;\n    var cp1 = symbol.__cp1;\n    var t = symbol.__t;\n    var pos = [symbol.x, symbol.y];\n    var lastPos = pos.slice();\n    var quadraticAt = curveUtil.quadraticAt;\n    var quadraticDerivativeAt = curveUtil.quadraticDerivativeAt;\n    pos[0] = quadraticAt(p1[0], cp1[0], p2[0], t);\n    pos[1] = quadraticAt(p1[1], cp1[1], p2[1], t);\n    var tx = quadraticDerivativeAt(p1[0], cp1[0], p2[0], t);\n    var ty = quadraticDerivativeAt(p1[1], cp1[1], p2[1], t);\n    symbol.rotation = -Math.atan2(ty, tx) - Math.PI / 2;\n\n    if (this._symbolType === 'line' || this._symbolType === 'rect' || this._symbolType === 'roundRect') {\n      if (symbol.__lastT !== undefined && symbol.__lastT < symbol.__t) {\n        symbol.scaleY = vec2.dist(lastPos, pos) * 1.05;\n\n        if (t === 1) {\n          pos[0] = lastPos[0] + (pos[0] - lastPos[0]) / 2;\n          pos[1] = lastPos[1] + (pos[1] - lastPos[1]) / 2;\n        }\n      } else if (symbol.__lastT === 1) {\n        symbol.scaleY = 2 * vec2.dist(p1, pos);\n      } else {\n        symbol.scaleY = this._symbolScale[1];\n      }\n    }\n\n    symbol.__lastT = symbol.__t;\n    symbol.ignore = false;\n    symbol.x = pos[0];\n    symbol.y = pos[1];\n  };\n\n  EffectLine.prototype.updateLayout = function (lineData, idx) {\n    this.childAt(0).updateLayout(lineData, idx);\n    var effectModel = lineData.getItemModel(idx).getModel('effect');\n\n    this._updateEffectAnimation(lineData, effectModel, idx);\n  };\n\n  return EffectLine;\n}(graphic.Group);\n\nexport default EffectLine;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis } from '../../util/states';\n\nvar Polyline = function (_super) {\n  __extends(Polyline, _super);\n\n  function Polyline(lineData, idx, seriesScope) {\n    var _this = _super.call(this) || this;\n\n    _this._createPolyline(lineData, idx, seriesScope);\n\n    return _this;\n  }\n\n  Polyline.prototype._createPolyline = function (lineData, idx, seriesScope) {\n    var points = lineData.getItemLayout(idx);\n    var line = new graphic.Polyline({\n      shape: {\n        points: points\n      }\n    });\n    this.add(line);\n\n    this._updateCommonStl(lineData, idx, seriesScope);\n  };\n\n  ;\n\n  Polyline.prototype.updateData = function (lineData, idx, seriesScope) {\n    var seriesModel = lineData.hostModel;\n    var line = this.childAt(0);\n    var target = {\n      shape: {\n        points: lineData.getItemLayout(idx)\n      }\n    };\n    graphic.updateProps(line, target, seriesModel, idx);\n\n    this._updateCommonStl(lineData, idx, seriesScope);\n  };\n\n  ;\n\n  Polyline.prototype._updateCommonStl = function (lineData, idx, seriesScope) {\n    var line = this.childAt(0);\n    var itemModel = lineData.getItemModel(idx);\n    var hoverLineStyle = seriesScope && seriesScope.emphasisLineStyle;\n\n    if (!seriesScope || lineData.hasItemOption) {\n      hoverLineStyle = itemModel.getModel(['emphasis', 'lineStyle']).getLineStyle();\n    }\n\n    line.useStyle(lineData.getItemVisual(idx, 'style'));\n    line.style.fill = null;\n    line.style.strokeNoScale = true;\n    var lineEmphasisState = line.ensureState('emphasis');\n    lineEmphasisState.style = hoverLineStyle;\n    enableHoverEmphasis(this);\n  };\n\n  ;\n\n  Polyline.prototype.updateLayout = function (lineData, idx) {\n    var polyline = this.childAt(0);\n    polyline.setShape('points', lineData.getItemLayout(idx));\n  };\n\n  ;\n  return Polyline;\n}(graphic.Group);\n\nexport default Polyline;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Polyline from './Polyline';\nimport EffectLine from './EffectLine';\nimport * as vec2 from 'zrender/lib/core/vector';\n\nvar EffectPolyline = function (_super) {\n  __extends(EffectPolyline, _super);\n\n  function EffectPolyline() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this._lastFrame = 0;\n    _this._lastFramePercent = 0;\n    return _this;\n  }\n\n  EffectPolyline.prototype.createLine = function (lineData, idx, seriesScope) {\n    return new Polyline(lineData, idx, seriesScope);\n  };\n\n  ;\n\n  EffectPolyline.prototype._updateAnimationPoints = function (symbol, points) {\n    this._points = points;\n    var accLenArr = [0];\n    var len = 0;\n\n    for (var i = 1; i < points.length; i++) {\n      var p1 = points[i - 1];\n      var p2 = points[i];\n      len += vec2.dist(p1, p2);\n      accLenArr.push(len);\n    }\n\n    if (len === 0) {\n      this._length = 0;\n      return;\n    }\n\n    for (var i = 0; i < accLenArr.length; i++) {\n      accLenArr[i] /= len;\n    }\n\n    this._offsets = accLenArr;\n    this._length = len;\n  };\n\n  ;\n\n  EffectPolyline.prototype._getLineLength = function () {\n    return this._length;\n  };\n\n  ;\n\n  EffectPolyline.prototype._updateSymbolPosition = function (symbol) {\n    var t = symbol.__t;\n    var points = this._points;\n    var offsets = this._offsets;\n    var len = points.length;\n\n    if (!offsets) {\n      return;\n    }\n\n    var lastFrame = this._lastFrame;\n    var frame;\n\n    if (t < this._lastFramePercent) {\n      var start = Math.min(lastFrame + 1, len - 1);\n\n      for (frame = start; frame >= 0; frame--) {\n        if (offsets[frame] <= t) {\n          break;\n        }\n      }\n\n      frame = Math.min(frame, len - 2);\n    } else {\n      for (frame = lastFrame; frame < len; frame++) {\n        if (offsets[frame] > t) {\n          break;\n        }\n      }\n\n      frame = Math.min(frame - 1, len - 2);\n    }\n\n    var p = (t - offsets[frame]) / (offsets[frame + 1] - offsets[frame]);\n    var p0 = points[frame];\n    var p1 = points[frame + 1];\n    symbol.x = p0[0] * (1 - p) + p * p1[0];\n    symbol.y = p0[1] * (1 - p) + p * p1[1];\n    var tx = p1[0] - p0[0];\n    var ty = p1[1] - p0[1];\n    symbol.rotation = -Math.atan2(ty, tx) - Math.PI / 2;\n    this._lastFrame = frame;\n    this._lastFramePercent = t;\n    symbol.ignore = false;\n  };\n\n  ;\n  return EffectPolyline;\n}(EffectLine);\n\nexport default EffectPolyline;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport IncrementalDisplayable from 'zrender/lib/graphic/IncrementalDisplayable';\nimport * as lineContain from 'zrender/lib/contain/line';\nimport * as quadraticContain from 'zrender/lib/contain/quadratic';\nimport { getECData } from '../../util/innerStore';\n\nvar LargeLinesPathShape = function () {\n  function LargeLinesPathShape() {\n    this.polyline = false;\n    this.curveness = 0;\n    this.segs = [];\n  }\n\n  return LargeLinesPathShape;\n}();\n\nvar LargeLinesPath = function (_super) {\n  __extends(LargeLinesPath, _super);\n\n  function LargeLinesPath(opts) {\n    return _super.call(this, opts) || this;\n  }\n\n  LargeLinesPath.prototype.getDefaultStyle = function () {\n    return {\n      stroke: '#000',\n      fill: null\n    };\n  };\n\n  LargeLinesPath.prototype.getDefaultShape = function () {\n    return new LargeLinesPathShape();\n  };\n\n  LargeLinesPath.prototype.buildPath = function (ctx, shape) {\n    var segs = shape.segs;\n    var curveness = shape.curveness;\n\n    if (shape.polyline) {\n      for (var i = 0; i < segs.length;) {\n        var count = segs[i++];\n\n        if (count > 0) {\n          ctx.moveTo(segs[i++], segs[i++]);\n\n          for (var k = 1; k < count; k++) {\n            ctx.lineTo(segs[i++], segs[i++]);\n          }\n        }\n      }\n    } else {\n      for (var i = 0; i < segs.length;) {\n        var x0 = segs[i++];\n        var y0 = segs[i++];\n        var x1 = segs[i++];\n        var y1 = segs[i++];\n        ctx.moveTo(x0, y0);\n\n        if (curveness > 0) {\n          var x2 = (x0 + x1) / 2 - (y0 - y1) * curveness;\n          var y2 = (y0 + y1) / 2 - (x1 - x0) * curveness;\n          ctx.quadraticCurveTo(x2, y2, x1, y1);\n        } else {\n          ctx.lineTo(x1, y1);\n        }\n      }\n    }\n  };\n\n  LargeLinesPath.prototype.findDataIndex = function (x, y) {\n    var shape = this.shape;\n    var segs = shape.segs;\n    var curveness = shape.curveness;\n    var lineWidth = this.style.lineWidth;\n\n    if (shape.polyline) {\n      var dataIndex = 0;\n\n      for (var i = 0; i < segs.length;) {\n        var count = segs[i++];\n\n        if (count > 0) {\n          var x0 = segs[i++];\n          var y0 = segs[i++];\n\n          for (var k = 1; k < count; k++) {\n            var x1 = segs[i++];\n            var y1 = segs[i++];\n\n            if (lineContain.containStroke(x0, y0, x1, y1, lineWidth, x, y)) {\n              return dataIndex;\n            }\n          }\n        }\n\n        dataIndex++;\n      }\n    } else {\n      var dataIndex = 0;\n\n      for (var i = 0; i < segs.length;) {\n        var x0 = segs[i++];\n        var y0 = segs[i++];\n        var x1 = segs[i++];\n        var y1 = segs[i++];\n\n        if (curveness > 0) {\n          var x2 = (x0 + x1) / 2 - (y0 - y1) * curveness;\n          var y2 = (y0 + y1) / 2 - (x1 - x0) * curveness;\n\n          if (quadraticContain.containStroke(x0, y0, x2, y2, x1, y1, lineWidth, x, y)) {\n            return dataIndex;\n          }\n        } else {\n          if (lineContain.containStroke(x0, y0, x1, y1, lineWidth, x, y)) {\n            return dataIndex;\n          }\n        }\n\n        dataIndex++;\n      }\n    }\n\n    return -1;\n  };\n\n  return LargeLinesPath;\n}(graphic.Path);\n\nvar LargeLineDraw = function () {\n  function LargeLineDraw() {\n    this.group = new graphic.Group();\n  }\n\n  LargeLineDraw.prototype.isPersistent = function () {\n    return !this._incremental;\n  };\n\n  ;\n\n  LargeLineDraw.prototype.updateData = function (data) {\n    this.group.removeAll();\n    var lineEl = new LargeLinesPath({\n      rectHover: true,\n      cursor: 'default'\n    });\n    lineEl.setShape({\n      segs: data.getLayout('linesPoints')\n    });\n\n    this._setCommon(lineEl, data);\n\n    this.group.add(lineEl);\n    this._incremental = null;\n  };\n\n  ;\n\n  LargeLineDraw.prototype.incrementalPrepareUpdate = function (data) {\n    this.group.removeAll();\n\n    this._clearIncremental();\n\n    if (data.count() > 5e5) {\n      if (!this._incremental) {\n        this._incremental = new IncrementalDisplayable({\n          silent: true\n        });\n      }\n\n      this.group.add(this._incremental);\n    } else {\n      this._incremental = null;\n    }\n  };\n\n  ;\n\n  LargeLineDraw.prototype.incrementalUpdate = function (taskParams, data) {\n    var lineEl = new LargeLinesPath();\n    lineEl.setShape({\n      segs: data.getLayout('linesPoints')\n    });\n\n    this._setCommon(lineEl, data, !!this._incremental);\n\n    if (!this._incremental) {\n      lineEl.rectHover = true;\n      lineEl.cursor = 'default';\n      lineEl.__startIndex = taskParams.start;\n      this.group.add(lineEl);\n    } else {\n      this._incremental.addDisplayable(lineEl, true);\n    }\n  };\n\n  ;\n\n  LargeLineDraw.prototype.remove = function () {\n    this._clearIncremental();\n\n    this._incremental = null;\n    this.group.removeAll();\n  };\n\n  ;\n\n  LargeLineDraw.prototype._setCommon = function (lineEl, data, isIncremental) {\n    var hostModel = data.hostModel;\n    lineEl.setShape({\n      polyline: hostModel.get('polyline'),\n      curveness: hostModel.get(['lineStyle', 'curveness'])\n    });\n    lineEl.useStyle(hostModel.getModel('lineStyle').getLineStyle());\n    lineEl.style.strokeNoScale = true;\n    var style = data.getVisual('style');\n\n    if (style && style.stroke) {\n      lineEl.setStyle('stroke', style.stroke);\n    }\n\n    lineEl.setStyle('fill', null);\n\n    if (!isIncremental) {\n      var ecData_1 = getECData(lineEl);\n      ecData_1.seriesIndex = hostModel.seriesIndex;\n      lineEl.on('mousemove', function (e) {\n        ecData_1.dataIndex = null;\n        var dataIndex = lineEl.findDataIndex(e.offsetX, e.offsetY);\n\n        if (dataIndex > 0) {\n          ecData_1.dataIndex = dataIndex + lineEl.__startIndex;\n        }\n      });\n    }\n  };\n\n  ;\n\n  LargeLineDraw.prototype._clearIncremental = function () {\n    var incremental = this._incremental;\n\n    if (incremental) {\n      incremental.clearDisplaybles();\n    }\n  };\n\n  ;\n  return LargeLineDraw;\n}();\n\nexport default LargeLineDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport createRenderPlanner from '../helper/createRenderPlanner';\nvar linesLayout = {\n  seriesType: 'lines',\n  plan: createRenderPlanner(),\n  reset: function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n    var isPolyline = seriesModel.get('polyline');\n    var isLarge = seriesModel.pipelineContext.large;\n    return {\n      progress: function (params, lineData) {\n        var lineCoords = [];\n\n        if (isLarge) {\n          var points = void 0;\n          var segCount = params.end - params.start;\n\n          if (isPolyline) {\n            var totalCoordsCount = 0;\n\n            for (var i = params.start; i < params.end; i++) {\n              totalCoordsCount += seriesModel.getLineCoordsCount(i);\n            }\n\n            points = new Float32Array(segCount + totalCoordsCount * 2);\n          } else {\n            points = new Float32Array(segCount * 4);\n          }\n\n          var offset = 0;\n          var pt = [];\n\n          for (var i = params.start; i < params.end; i++) {\n            var len = seriesModel.getLineCoords(i, lineCoords);\n\n            if (isPolyline) {\n              points[offset++] = len;\n            }\n\n            for (var k = 0; k < len; k++) {\n              pt = coordSys.dataToPoint(lineCoords[k], false, pt);\n              points[offset++] = pt[0];\n              points[offset++] = pt[1];\n            }\n          }\n\n          lineData.setLayout('linesPoints', points);\n        } else {\n          for (var i = params.start; i < params.end; i++) {\n            var itemModel = lineData.getItemModel(i);\n            var len = seriesModel.getLineCoords(i, lineCoords);\n            var pts = [];\n\n            if (isPolyline) {\n              for (var j = 0; j < len; j++) {\n                pts.push(coordSys.dataToPoint(lineCoords[j]));\n              }\n            } else {\n              pts[0] = coordSys.dataToPoint(lineCoords[0]);\n              pts[1] = coordSys.dataToPoint(lineCoords[1]);\n              var curveness = itemModel.get(['lineStyle', 'curveness']);\n\n              if (+curveness) {\n                pts[2] = [(pts[0][0] + pts[1][0]) / 2 - (pts[0][1] - pts[1][1]) * curveness, (pts[0][1] + pts[1][1]) / 2 - (pts[1][0] - pts[0][0]) * curveness];\n              }\n            }\n\n            lineData.setItemLayout(i, pts);\n          }\n        }\n      }\n    };\n  }\n};\nexport default linesLayout;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport LineDraw from '../helper/LineDraw';\nimport EffectLine from '../helper/EffectLine';\nimport Line from '../helper/Line';\nimport Polyline from '../helper/Polyline';\nimport EffectPolyline from '../helper/EffectPolyline';\nimport LargeLineDraw from '../helper/LargeLineDraw';\nimport linesLayout from './linesLayout';\nimport { createClipPath } from '../helper/createClipPathFromCoordSys';\nimport ChartView from '../../view/Chart';\n\nvar LinesView = function (_super) {\n  __extends(LinesView, _super);\n\n  function LinesView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = LinesView.type;\n    return _this;\n  }\n\n  LinesView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n\n    var lineDraw = this._updateLineDraw(data, seriesModel);\n\n    var zlevel = seriesModel.get('zlevel');\n    var trailLength = seriesModel.get(['effect', 'trailLength']);\n    var zr = api.getZr();\n    var isSvg = zr.painter.getType() === 'svg';\n\n    if (!isSvg) {\n      zr.painter.getLayer(zlevel).clear(true);\n    }\n\n    if (this._lastZlevel != null && !isSvg) {\n      zr.configLayer(this._lastZlevel, {\n        motionBlur: false\n      });\n    }\n\n    if (this._showEffect(seriesModel) && trailLength) {\n      if (process.env.NODE_ENV !== 'production') {\n        var notInIndividual_1 = false;\n        ecModel.eachSeries(function (otherSeriesModel) {\n          if (otherSeriesModel !== seriesModel && otherSeriesModel.get('zlevel') === zlevel) {\n            notInIndividual_1 = true;\n          }\n        });\n        notInIndividual_1 && console.warn('Lines with trail effect should have an individual zlevel');\n      }\n\n      if (!isSvg) {\n        zr.configLayer(zlevel, {\n          motionBlur: true,\n          lastFrameAlpha: Math.max(Math.min(trailLength / 10 + 0.9, 1), 0)\n        });\n      }\n    }\n\n    lineDraw.updateData(data);\n    var clipPath = seriesModel.get('clip', true) && createClipPath(seriesModel.coordinateSystem, false, seriesModel);\n\n    if (clipPath) {\n      this.group.setClipPath(clipPath);\n    } else {\n      this.group.removeClipPath();\n    }\n\n    this._lastZlevel = zlevel;\n    this._finished = true;\n  };\n\n  LinesView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n\n    var lineDraw = this._updateLineDraw(data, seriesModel);\n\n    lineDraw.incrementalPrepareUpdate(data);\n\n    this._clearLayer(api);\n\n    this._finished = false;\n  };\n\n  LinesView.prototype.incrementalRender = function (taskParams, seriesModel, ecModel) {\n    this._lineDraw.incrementalUpdate(taskParams, seriesModel.getData());\n\n    this._finished = taskParams.end === seriesModel.getData().count();\n  };\n\n  LinesView.prototype.updateTransform = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    var pipelineContext = seriesModel.pipelineContext;\n\n    if (!this._finished || pipelineContext.large || pipelineContext.progressiveRender) {\n      return {\n        update: true\n      };\n    } else {\n      var res = linesLayout.reset(seriesModel, ecModel, api);\n\n      if (res.progress) {\n        res.progress({\n          start: 0,\n          end: data.count(),\n          count: data.count()\n        }, data);\n      }\n\n      this._lineDraw.updateLayout();\n\n      this._clearLayer(api);\n    }\n  };\n\n  LinesView.prototype._updateLineDraw = function (data, seriesModel) {\n    var lineDraw = this._lineDraw;\n\n    var hasEffect = this._showEffect(seriesModel);\n\n    var isPolyline = !!seriesModel.get('polyline');\n    var pipelineContext = seriesModel.pipelineContext;\n    var isLargeDraw = pipelineContext.large;\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (hasEffect && isLargeDraw) {\n        console.warn('Large lines not support effect');\n      }\n    }\n\n    if (!lineDraw || hasEffect !== this._hasEffet || isPolyline !== this._isPolyline || isLargeDraw !== this._isLargeDraw) {\n      if (lineDraw) {\n        lineDraw.remove();\n      }\n\n      lineDraw = this._lineDraw = isLargeDraw ? new LargeLineDraw() : new LineDraw(isPolyline ? hasEffect ? EffectPolyline : Polyline : hasEffect ? EffectLine : Line);\n      this._hasEffet = hasEffect;\n      this._isPolyline = isPolyline;\n      this._isLargeDraw = isLargeDraw;\n      this.group.removeAll();\n    }\n\n    this.group.add(lineDraw.group);\n    return lineDraw;\n  };\n\n  LinesView.prototype._showEffect = function (seriesModel) {\n    return !!seriesModel.get(['effect', 'show']);\n  };\n\n  LinesView.prototype._clearLayer = function (api) {\n    var zr = api.getZr();\n    var isSvg = zr.painter.getType() === 'svg';\n\n    if (!isSvg && this._lastZlevel != null) {\n      zr.painter.getLayer(this._lastZlevel).clear(true);\n    }\n  };\n\n  LinesView.prototype.remove = function (ecModel, api) {\n    this._lineDraw && this._lineDraw.remove();\n    this._lineDraw = null;\n\n    this._clearLayer(api);\n  };\n\n  LinesView.type = 'lines';\n  return LinesView;\n}(ChartView);\n\nexport default LinesView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport List from '../../data/List';\nimport { concatArray, mergeAll, map } from 'zrender/lib/core/util';\nimport CoordinateSystem from '../../core/CoordinateSystem';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup';\nvar Uint32Arr = typeof Uint32Array === 'undefined' ? Array : Uint32Array;\nvar Float64Arr = typeof Float64Array === 'undefined' ? Array : Float64Array;\n\nfunction compatEc2(seriesOpt) {\n  var data = seriesOpt.data;\n\n  if (data && data[0] && data[0][0] && data[0][0].coord) {\n    if (process.env.NODE_ENV !== 'production') {\n      console.warn('Lines data configuration has been changed to' + ' { coords:[[1,2],[2,3]] }');\n    }\n\n    seriesOpt.data = map(data, function (itemOpt) {\n      var coords = [itemOpt[0].coord, itemOpt[1].coord];\n      var target = {\n        coords: coords\n      };\n\n      if (itemOpt[0].name) {\n        target.fromName = itemOpt[0].name;\n      }\n\n      if (itemOpt[1].name) {\n        target.toName = itemOpt[1].name;\n      }\n\n      return mergeAll([target, itemOpt[0], itemOpt[1]]);\n    });\n  }\n}\n\nvar LinesSeriesModel = function (_super) {\n  __extends(LinesSeriesModel, _super);\n\n  function LinesSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = LinesSeriesModel.type;\n    _this.visualStyleAccessPath = 'lineStyle';\n    _this.visualDrawType = 'stroke';\n    return _this;\n  }\n\n  LinesSeriesModel.prototype.init = function (option) {\n    option.data = option.data || [];\n    compatEc2(option);\n\n    var result = this._processFlatCoordsArray(option.data);\n\n    this._flatCoords = result.flatCoords;\n    this._flatCoordsOffset = result.flatCoordsOffset;\n\n    if (result.flatCoords) {\n      option.data = new Float32Array(result.count);\n    }\n\n    _super.prototype.init.apply(this, arguments);\n  };\n\n  LinesSeriesModel.prototype.mergeOption = function (option) {\n    compatEc2(option);\n\n    if (option.data) {\n      var result = this._processFlatCoordsArray(option.data);\n\n      this._flatCoords = result.flatCoords;\n      this._flatCoordsOffset = result.flatCoordsOffset;\n\n      if (result.flatCoords) {\n        option.data = new Float32Array(result.count);\n      }\n    }\n\n    _super.prototype.mergeOption.apply(this, arguments);\n  };\n\n  LinesSeriesModel.prototype.appendData = function (params) {\n    var result = this._processFlatCoordsArray(params.data);\n\n    if (result.flatCoords) {\n      if (!this._flatCoords) {\n        this._flatCoords = result.flatCoords;\n        this._flatCoordsOffset = result.flatCoordsOffset;\n      } else {\n        this._flatCoords = concatArray(this._flatCoords, result.flatCoords);\n        this._flatCoordsOffset = concatArray(this._flatCoordsOffset, result.flatCoordsOffset);\n      }\n\n      params.data = new Float32Array(result.count);\n    }\n\n    this.getRawData().appendData(params.data);\n  };\n\n  LinesSeriesModel.prototype._getCoordsFromItemModel = function (idx) {\n    var itemModel = this.getData().getItemModel(idx);\n    var coords = itemModel.option instanceof Array ? itemModel.option : itemModel.getShallow('coords');\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!(coords instanceof Array && coords.length > 0 && coords[0] instanceof Array)) {\n        throw new Error('Invalid coords ' + JSON.stringify(coords) + '. Lines must have 2d coords array in data item.');\n      }\n    }\n\n    return coords;\n  };\n\n  LinesSeriesModel.prototype.getLineCoordsCount = function (idx) {\n    if (this._flatCoordsOffset) {\n      return this._flatCoordsOffset[idx * 2 + 1];\n    } else {\n      return this._getCoordsFromItemModel(idx).length;\n    }\n  };\n\n  LinesSeriesModel.prototype.getLineCoords = function (idx, out) {\n    if (this._flatCoordsOffset) {\n      var offset = this._flatCoordsOffset[idx * 2];\n      var len = this._flatCoordsOffset[idx * 2 + 1];\n\n      for (var i = 0; i < len; i++) {\n        out[i] = out[i] || [];\n        out[i][0] = this._flatCoords[offset + i * 2];\n        out[i][1] = this._flatCoords[offset + i * 2 + 1];\n      }\n\n      return len;\n    } else {\n      var coords = this._getCoordsFromItemModel(idx);\n\n      for (var i = 0; i < coords.length; i++) {\n        out[i] = out[i] || [];\n        out[i][0] = coords[i][0];\n        out[i][1] = coords[i][1];\n      }\n\n      return coords.length;\n    }\n  };\n\n  LinesSeriesModel.prototype._processFlatCoordsArray = function (data) {\n    var startOffset = 0;\n\n    if (this._flatCoords) {\n      startOffset = this._flatCoords.length;\n    }\n\n    if (typeof data[0] === 'number') {\n      var len = data.length;\n      var coordsOffsetAndLenStorage = new Uint32Arr(len);\n      var coordsStorage = new Float64Arr(len);\n      var coordsCursor = 0;\n      var offsetCursor = 0;\n      var dataCount = 0;\n\n      for (var i = 0; i < len;) {\n        dataCount++;\n        var count = data[i++];\n        coordsOffsetAndLenStorage[offsetCursor++] = coordsCursor + startOffset;\n        coordsOffsetAndLenStorage[offsetCursor++] = count;\n\n        for (var k = 0; k < count; k++) {\n          var x = data[i++];\n          var y = data[i++];\n          coordsStorage[coordsCursor++] = x;\n          coordsStorage[coordsCursor++] = y;\n\n          if (i > len) {\n            if (process.env.NODE_ENV !== 'production') {\n              throw new Error('Invalid data format.');\n            }\n          }\n        }\n      }\n\n      return {\n        flatCoordsOffset: new Uint32Array(coordsOffsetAndLenStorage.buffer, 0, offsetCursor),\n        flatCoords: coordsStorage,\n        count: dataCount\n      };\n    }\n\n    return {\n      flatCoordsOffset: null,\n      flatCoords: null,\n      count: data.length\n    };\n  };\n\n  LinesSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    if (process.env.NODE_ENV !== 'production') {\n      var CoordSys = CoordinateSystem.get(option.coordinateSystem);\n\n      if (!CoordSys) {\n        throw new Error('Unkown coordinate system ' + option.coordinateSystem);\n      }\n    }\n\n    var lineData = new List(['value'], this);\n    lineData.hasItemOption = false;\n    lineData.initData(option.data, [], function (dataItem, dimName, dataIndex, dimIndex) {\n      if (dataItem instanceof Array) {\n        return NaN;\n      } else {\n        lineData.hasItemOption = true;\n        var value = dataItem.value;\n\n        if (value != null) {\n          return value instanceof Array ? value[dimIndex] : value;\n        }\n      }\n    });\n    return lineData;\n  };\n\n  LinesSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var data = this.getData();\n    var itemModel = data.getItemModel(dataIndex);\n    var name = itemModel.get('name');\n\n    if (name) {\n      return name;\n    }\n\n    var fromName = itemModel.get('fromName');\n    var toName = itemModel.get('toName');\n    var nameArr = [];\n    fromName != null && nameArr.push(fromName);\n    toName != null && nameArr.push(toName);\n    return createTooltipMarkup('nameValue', {\n      name: nameArr.join(' > ')\n    });\n  };\n\n  LinesSeriesModel.prototype.preventIncremental = function () {\n    return !!this.get(['effect', 'show']);\n  };\n\n  LinesSeriesModel.prototype.getProgressive = function () {\n    var progressive = this.option.progressive;\n\n    if (progressive == null) {\n      return this.option.large ? 1e4 : this.get('progressive');\n    }\n\n    return progressive;\n  };\n\n  LinesSeriesModel.prototype.getProgressiveThreshold = function () {\n    var progressiveThreshold = this.option.progressiveThreshold;\n\n    if (progressiveThreshold == null) {\n      return this.option.large ? 2e4 : this.get('progressiveThreshold');\n    }\n\n    return progressiveThreshold;\n  };\n\n  LinesSeriesModel.type = 'series.lines';\n  LinesSeriesModel.dependencies = ['grid', 'polar', 'geo', 'calendar'];\n  LinesSeriesModel.defaultOption = {\n    coordinateSystem: 'geo',\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    xAxisIndex: 0,\n    yAxisIndex: 0,\n    symbol: ['none', 'none'],\n    symbolSize: [10, 10],\n    geoIndex: 0,\n    effect: {\n      show: false,\n      period: 4,\n      constantSpeed: 0,\n      symbol: 'circle',\n      symbolSize: 3,\n      loop: true,\n      trailLength: 0.2\n    },\n    large: false,\n    largeThreshold: 2000,\n    polyline: false,\n    clip: true,\n    label: {\n      show: false,\n      position: 'end'\n    },\n    lineStyle: {\n      opacity: 0.5\n    }\n  };\n  return LinesSeriesModel;\n}(SeriesModel);\n\nexport default LinesSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nfunction normalize(a) {\n  if (!(a instanceof Array)) {\n    a = [a, a];\n  }\n\n  return a;\n}\n\nvar linesVisual = {\n  seriesType: 'lines',\n  reset: function (seriesModel) {\n    var symbolType = normalize(seriesModel.get('symbol'));\n    var symbolSize = normalize(seriesModel.get('symbolSize'));\n    var data = seriesModel.getData();\n    data.setVisual('fromSymbol', symbolType && symbolType[0]);\n    data.setVisual('toSymbol', symbolType && symbolType[1]);\n    data.setVisual('fromSymbolSize', symbolSize && symbolSize[0]);\n    data.setVisual('toSymbolSize', symbolSize && symbolSize[1]);\n\n    function dataEach(data, idx) {\n      var itemModel = data.getItemModel(idx);\n      var symbolType = normalize(itemModel.getShallow('symbol', true));\n      var symbolSize = normalize(itemModel.getShallow('symbolSize', true));\n      symbolType[0] && data.setItemVisual(idx, 'fromSymbol', symbolType[0]);\n      symbolType[1] && data.setItemVisual(idx, 'toSymbol', symbolType[1]);\n      symbolSize[0] && data.setItemVisual(idx, 'fromSymbolSize', symbolSize[0]);\n      symbolSize[1] && data.setItemVisual(idx, 'toSymbolSize', symbolSize[1]);\n    }\n\n    return {\n      dataEach: data.hasItemOption ? dataEach : null\n    };\n  }\n};\nexport default linesVisual;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport LinesView from './LinesView';\nimport LinesSeriesModel from './LinesSeries';\nimport linesLayout from './linesLayout';\nimport linesVisual from './linesVisual';\nexport function install(registers) {\n  registers.registerChartView(LinesView);\n  registers.registerSeriesModel(LinesSeriesModel);\n  registers.registerLayout(linesLayout);\n  registers.registerVisual(linesVisual);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar GRADIENT_LEVELS = 256;\n\nvar HeatmapLayer = function () {\n  function HeatmapLayer() {\n    this.blurSize = 30;\n    this.pointSize = 20;\n    this.maxOpacity = 1;\n    this.minOpacity = 0;\n    this._gradientPixels = {\n      inRange: null,\n      outOfRange: null\n    };\n    var canvas = zrUtil.createCanvas();\n    this.canvas = canvas;\n  }\n\n  HeatmapLayer.prototype.update = function (data, width, height, normalize, colorFunc, isInRange) {\n    var brush = this._getBrush();\n\n    var gradientInRange = this._getGradient(colorFunc, 'inRange');\n\n    var gradientOutOfRange = this._getGradient(colorFunc, 'outOfRange');\n\n    var r = this.pointSize + this.blurSize;\n    var canvas = this.canvas;\n    var ctx = canvas.getContext('2d');\n    var len = data.length;\n    canvas.width = width;\n    canvas.height = height;\n\n    for (var i = 0; i < len; ++i) {\n      var p = data[i];\n      var x = p[0];\n      var y = p[1];\n      var value = p[2];\n      var alpha = normalize(value);\n      ctx.globalAlpha = alpha;\n      ctx.drawImage(brush, x - r, y - r);\n    }\n\n    if (!canvas.width || !canvas.height) {\n      return canvas;\n    }\n\n    var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);\n    var pixels = imageData.data;\n    var offset = 0;\n    var pixelLen = pixels.length;\n    var minOpacity = this.minOpacity;\n    var maxOpacity = this.maxOpacity;\n    var diffOpacity = maxOpacity - minOpacity;\n\n    while (offset < pixelLen) {\n      var alpha = pixels[offset + 3] / 256;\n      var gradientOffset = Math.floor(alpha * (GRADIENT_LEVELS - 1)) * 4;\n\n      if (alpha > 0) {\n        var gradient = isInRange(alpha) ? gradientInRange : gradientOutOfRange;\n        alpha > 0 && (alpha = alpha * diffOpacity + minOpacity);\n        pixels[offset++] = gradient[gradientOffset];\n        pixels[offset++] = gradient[gradientOffset + 1];\n        pixels[offset++] = gradient[gradientOffset + 2];\n        pixels[offset++] = gradient[gradientOffset + 3] * alpha * 256;\n      } else {\n        offset += 4;\n      }\n    }\n\n    ctx.putImageData(imageData, 0, 0);\n    return canvas;\n  };\n\n  HeatmapLayer.prototype._getBrush = function () {\n    var brushCanvas = this._brushCanvas || (this._brushCanvas = zrUtil.createCanvas());\n    var r = this.pointSize + this.blurSize;\n    var d = r * 2;\n    brushCanvas.width = d;\n    brushCanvas.height = d;\n    var ctx = brushCanvas.getContext('2d');\n    ctx.clearRect(0, 0, d, d);\n    ctx.shadowOffsetX = d;\n    ctx.shadowBlur = this.blurSize;\n    ctx.shadowColor = '#000';\n    ctx.beginPath();\n    ctx.arc(-r, r, this.pointSize, 0, Math.PI * 2, true);\n    ctx.closePath();\n    ctx.fill();\n    return brushCanvas;\n  };\n\n  HeatmapLayer.prototype._getGradient = function (colorFunc, state) {\n    var gradientPixels = this._gradientPixels;\n    var pixelsSingleState = gradientPixels[state] || (gradientPixels[state] = new Uint8ClampedArray(256 * 4));\n    var color = [0, 0, 0, 0];\n    var off = 0;\n\n    for (var i = 0; i < 256; i++) {\n      colorFunc[state](i / 255, true, color);\n      pixelsSingleState[off++] = color[0];\n      pixelsSingleState[off++] = color[1];\n      pixelsSingleState[off++] = color[2];\n      pixelsSingleState[off++] = color[3];\n    }\n\n    return pixelsSingleState;\n  };\n\n  return HeatmapLayer;\n}();\n\nexport default HeatmapLayer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis } from '../../util/states';\nimport HeatmapLayer from './HeatmapLayer';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ChartView from '../../view/Chart';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\n\nfunction getIsInPiecewiseRange(dataExtent, pieceList, selected) {\n  var dataSpan = dataExtent[1] - dataExtent[0];\n  pieceList = zrUtil.map(pieceList, function (piece) {\n    return {\n      interval: [(piece.interval[0] - dataExtent[0]) / dataSpan, (piece.interval[1] - dataExtent[0]) / dataSpan]\n    };\n  });\n  var len = pieceList.length;\n  var lastIndex = 0;\n  return function (val) {\n    var i;\n\n    for (i = lastIndex; i < len; i++) {\n      var interval = pieceList[i].interval;\n\n      if (interval[0] <= val && val <= interval[1]) {\n        lastIndex = i;\n        break;\n      }\n    }\n\n    if (i === len) {\n      for (i = lastIndex - 1; i >= 0; i--) {\n        var interval = pieceList[i].interval;\n\n        if (interval[0] <= val && val <= interval[1]) {\n          lastIndex = i;\n          break;\n        }\n      }\n    }\n\n    return i >= 0 && i < len && selected[i];\n  };\n}\n\nfunction getIsInContinuousRange(dataExtent, range) {\n  var dataSpan = dataExtent[1] - dataExtent[0];\n  range = [(range[0] - dataExtent[0]) / dataSpan, (range[1] - dataExtent[0]) / dataSpan];\n  return function (val) {\n    return val >= range[0] && val <= range[1];\n  };\n}\n\nfunction isGeoCoordSys(coordSys) {\n  var dimensions = coordSys.dimensions;\n  return dimensions[0] === 'lng' && dimensions[1] === 'lat';\n}\n\nvar HeatmapView = function (_super) {\n  __extends(HeatmapView, _super);\n\n  function HeatmapView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = HeatmapView.type;\n    return _this;\n  }\n\n  HeatmapView.prototype.render = function (seriesModel, ecModel, api) {\n    var visualMapOfThisSeries;\n    ecModel.eachComponent('visualMap', function (visualMap) {\n      visualMap.eachTargetSeries(function (targetSeries) {\n        if (targetSeries === seriesModel) {\n          visualMapOfThisSeries = visualMap;\n        }\n      });\n    });\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!visualMapOfThisSeries) {\n        throw new Error('Heatmap must use with visualMap');\n      }\n    }\n\n    this.group.removeAll();\n    this._incrementalDisplayable = null;\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys.type === 'cartesian2d' || coordSys.type === 'calendar') {\n      this._renderOnCartesianAndCalendar(seriesModel, api, 0, seriesModel.getData().count());\n    } else if (isGeoCoordSys(coordSys)) {\n      this._renderOnGeo(coordSys, seriesModel, visualMapOfThisSeries, api);\n    }\n  };\n\n  HeatmapView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n    this.group.removeAll();\n  };\n\n  HeatmapView.prototype.incrementalRender = function (params, seriesModel, ecModel, api) {\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys) {\n      if (isGeoCoordSys(coordSys)) {\n        this.render(seriesModel, ecModel, api);\n      } else {\n        this._renderOnCartesianAndCalendar(seriesModel, api, params.start, params.end, true);\n      }\n    }\n  };\n\n  HeatmapView.prototype._renderOnCartesianAndCalendar = function (seriesModel, api, start, end, incremental) {\n    var coordSys = seriesModel.coordinateSystem;\n    var width;\n    var height;\n    var xAxisExtent;\n    var yAxisExtent;\n\n    if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n      var xAxis = coordSys.getAxis('x');\n      var yAxis = coordSys.getAxis('y');\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (!(xAxis.type === 'category' && yAxis.type === 'category')) {\n          throw new Error('Heatmap on cartesian must have two category axes');\n        }\n\n        if (!(xAxis.onBand && yAxis.onBand)) {\n          throw new Error('Heatmap on cartesian must have two axes with boundaryGap true');\n        }\n      }\n\n      width = xAxis.getBandWidth();\n      height = yAxis.getBandWidth();\n      xAxisExtent = xAxis.scale.getExtent();\n      yAxisExtent = yAxis.scale.getExtent();\n    }\n\n    var group = this.group;\n    var data = seriesModel.getData();\n    var emphasisStyle = seriesModel.getModel(['emphasis', 'itemStyle']).getItemStyle();\n    var blurStyle = seriesModel.getModel(['blur', 'itemStyle']).getItemStyle();\n    var selectStyle = seriesModel.getModel(['select', 'itemStyle']).getItemStyle();\n    var labelStatesModels = getLabelStatesModels(seriesModel);\n    var focus = seriesModel.get(['emphasis', 'focus']);\n    var blurScope = seriesModel.get(['emphasis', 'blurScope']);\n    var dataDims = isCoordinateSystemType(coordSys, 'cartesian2d') ? [data.mapDimension('x'), data.mapDimension('y'), data.mapDimension('value')] : [data.mapDimension('time'), data.mapDimension('value')];\n\n    for (var idx = start; idx < end; idx++) {\n      var rect = void 0;\n      var style = data.getItemVisual(idx, 'style');\n\n      if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n        var dataDimX = data.get(dataDims[0], idx);\n        var dataDimY = data.get(dataDims[1], idx);\n\n        if (isNaN(data.get(dataDims[2], idx)) || dataDimX < xAxisExtent[0] || dataDimX > xAxisExtent[1] || dataDimY < yAxisExtent[0] || dataDimY > yAxisExtent[1]) {\n          continue;\n        }\n\n        var point = coordSys.dataToPoint([dataDimX, dataDimY]);\n        rect = new graphic.Rect({\n          shape: {\n            x: Math.floor(Math.round(point[0]) - width / 2),\n            y: Math.floor(Math.round(point[1]) - height / 2),\n            width: Math.ceil(width),\n            height: Math.ceil(height)\n          },\n          style: style\n        });\n      } else {\n        if (isNaN(data.get(dataDims[1], idx))) {\n          continue;\n        }\n\n        rect = new graphic.Rect({\n          z2: 1,\n          shape: coordSys.dataToRect([data.get(dataDims[0], idx)]).contentShape,\n          style: style\n        });\n      }\n\n      var itemModel = data.getItemModel(idx);\n\n      if (data.hasItemOption) {\n        var emphasisModel = itemModel.getModel('emphasis');\n        emphasisStyle = emphasisModel.getModel('itemStyle').getItemStyle();\n        blurStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\n        selectStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\n        focus = emphasisModel.get('focus');\n        blurScope = emphasisModel.get('blurScope');\n        labelStatesModels = getLabelStatesModels(itemModel);\n      }\n\n      var rawValue = seriesModel.getRawValue(idx);\n      var defaultText = '-';\n\n      if (rawValue && rawValue[2] != null) {\n        defaultText = rawValue[2] + '';\n      }\n\n      setLabelStyle(rect, labelStatesModels, {\n        labelFetcher: seriesModel,\n        labelDataIndex: idx,\n        defaultOpacity: style.opacity,\n        defaultText: defaultText\n      });\n      rect.ensureState('emphasis').style = emphasisStyle;\n      rect.ensureState('blur').style = blurStyle;\n      rect.ensureState('select').style = selectStyle;\n      enableHoverEmphasis(rect, focus, blurScope);\n      rect.incremental = incremental;\n\n      if (incremental) {\n        rect.states.emphasis.hoverLayer = true;\n      }\n\n      group.add(rect);\n      data.setItemGraphicEl(idx, rect);\n    }\n  };\n\n  HeatmapView.prototype._renderOnGeo = function (geo, seriesModel, visualMapModel, api) {\n    var inRangeVisuals = visualMapModel.targetVisuals.inRange;\n    var outOfRangeVisuals = visualMapModel.targetVisuals.outOfRange;\n    var data = seriesModel.getData();\n    var hmLayer = this._hmLayer || this._hmLayer || new HeatmapLayer();\n    hmLayer.blurSize = seriesModel.get('blurSize');\n    hmLayer.pointSize = seriesModel.get('pointSize');\n    hmLayer.minOpacity = seriesModel.get('minOpacity');\n    hmLayer.maxOpacity = seriesModel.get('maxOpacity');\n    var rect = geo.getViewRect().clone();\n    var roamTransform = geo.getRoamTransform();\n    rect.applyTransform(roamTransform);\n    var x = Math.max(rect.x, 0);\n    var y = Math.max(rect.y, 0);\n    var x2 = Math.min(rect.width + rect.x, api.getWidth());\n    var y2 = Math.min(rect.height + rect.y, api.getHeight());\n    var width = x2 - x;\n    var height = y2 - y;\n    var dims = [data.mapDimension('lng'), data.mapDimension('lat'), data.mapDimension('value')];\n    var points = data.mapArray(dims, function (lng, lat, value) {\n      var pt = geo.dataToPoint([lng, lat]);\n      pt[0] -= x;\n      pt[1] -= y;\n      pt.push(value);\n      return pt;\n    });\n    var dataExtent = visualMapModel.getExtent();\n    var isInRange = visualMapModel.type === 'visualMap.continuous' ? getIsInContinuousRange(dataExtent, visualMapModel.option.range) : getIsInPiecewiseRange(dataExtent, visualMapModel.getPieceList(), visualMapModel.option.selected);\n    hmLayer.update(points, width, height, inRangeVisuals.color.getNormalizer(), {\n      inRange: inRangeVisuals.color.getColorMapper(),\n      outOfRange: outOfRangeVisuals.color.getColorMapper()\n    }, isInRange);\n    var img = new graphic.Image({\n      style: {\n        width: width,\n        height: height,\n        x: x,\n        y: y,\n        image: hmLayer.canvas\n      },\n      silent: true\n    });\n    this.group.add(img);\n  };\n\n  HeatmapView.type = 'heatmap';\n  return HeatmapView;\n}(ChartView);\n\nexport default HeatmapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport createListFromArray from '../helper/createListFromArray';\nimport CoordinateSystem from '../../core/CoordinateSystem';\n\nvar HeatmapSeriesModel = function (_super) {\n  __extends(HeatmapSeriesModel, _super);\n\n  function HeatmapSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = HeatmapSeriesModel.type;\n    return _this;\n  }\n\n  HeatmapSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListFromArray(this.getSource(), this, {\n      generateCoord: 'value'\n    });\n  };\n\n  HeatmapSeriesModel.prototype.preventIncremental = function () {\n    var coordSysCreator = CoordinateSystem.get(this.get('coordinateSystem'));\n\n    if (coordSysCreator && coordSysCreator.dimensions) {\n      return coordSysCreator.dimensions[0] === 'lng' && coordSysCreator.dimensions[1] === 'lat';\n    }\n  };\n\n  HeatmapSeriesModel.type = 'series.heatmap';\n  HeatmapSeriesModel.dependencies = ['grid', 'geo', 'calendar'];\n  HeatmapSeriesModel.defaultOption = {\n    coordinateSystem: 'cartesian2d',\n    zlevel: 0,\n    z: 2,\n    geoIndex: 0,\n    blurSize: 30,\n    pointSize: 20,\n    maxOpacity: 1,\n    minOpacity: 0,\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    }\n  };\n  return HeatmapSeriesModel;\n}(SeriesModel);\n\nexport default HeatmapSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport HeatmapView from './HeatmapView';\nimport HeatmapSeriesModel from './HeatmapSeries';\nexport function install(registers) {\n  registers.registerChartView(HeatmapView);\n  registers.registerSeriesModel(HeatmapSeriesModel);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis } from '../../util/states';\nimport { createSymbol } from '../../util/symbol';\nimport { parsePercent, isNumeric } from '../../util/number';\nimport ChartView from '../../view/Chart';\nimport { getDefaultLabel } from '../helper/labelHelper';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport ZRImage from 'zrender/lib/graphic/Image';\nimport { getECData } from '../../util/innerStore';\nvar BAR_BORDER_WIDTH_QUERY = ['itemStyle', 'borderWidth'];\nvar LAYOUT_ATTRS = [{\n  xy: 'x',\n  wh: 'width',\n  index: 0,\n  posDesc: ['left', 'right']\n}, {\n  xy: 'y',\n  wh: 'height',\n  index: 1,\n  posDesc: ['top', 'bottom']\n}];\nvar pathForLineWidth = new graphic.Circle();\n\nvar PictorialBarView = function (_super) {\n  __extends(PictorialBarView, _super);\n\n  function PictorialBarView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = PictorialBarView.type;\n    return _this;\n  }\n\n  PictorialBarView.prototype.render = function (seriesModel, ecModel, api) {\n    var group = this.group;\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var cartesian = seriesModel.coordinateSystem;\n    var baseAxis = cartesian.getBaseAxis();\n    var isHorizontal = baseAxis.isHorizontal();\n    var coordSysRect = cartesian.master.getRect();\n    var opt = {\n      ecSize: {\n        width: api.getWidth(),\n        height: api.getHeight()\n      },\n      seriesModel: seriesModel,\n      coordSys: cartesian,\n      coordSysExtent: [[coordSysRect.x, coordSysRect.x + coordSysRect.width], [coordSysRect.y, coordSysRect.y + coordSysRect.height]],\n      isHorizontal: isHorizontal,\n      valueDim: LAYOUT_ATTRS[+isHorizontal],\n      categoryDim: LAYOUT_ATTRS[1 - +isHorizontal]\n    };\n    data.diff(oldData).add(function (dataIndex) {\n      if (!data.hasValue(dataIndex)) {\n        return;\n      }\n\n      var itemModel = getItemModel(data, dataIndex);\n      var symbolMeta = getSymbolMeta(data, dataIndex, itemModel, opt);\n      var bar = createBar(data, opt, symbolMeta);\n      data.setItemGraphicEl(dataIndex, bar);\n      group.add(bar);\n      updateCommon(bar, opt, symbolMeta);\n    }).update(function (newIndex, oldIndex) {\n      var bar = oldData.getItemGraphicEl(oldIndex);\n\n      if (!data.hasValue(newIndex)) {\n        group.remove(bar);\n        return;\n      }\n\n      var itemModel = getItemModel(data, newIndex);\n      var symbolMeta = getSymbolMeta(data, newIndex, itemModel, opt);\n      var pictorialShapeStr = getShapeStr(data, symbolMeta);\n\n      if (bar && pictorialShapeStr !== bar.__pictorialShapeStr) {\n        group.remove(bar);\n        data.setItemGraphicEl(newIndex, null);\n        bar = null;\n      }\n\n      if (bar) {\n        updateBar(bar, opt, symbolMeta);\n      } else {\n        bar = createBar(data, opt, symbolMeta, true);\n      }\n\n      data.setItemGraphicEl(newIndex, bar);\n      bar.__pictorialSymbolMeta = symbolMeta;\n      group.add(bar);\n      updateCommon(bar, opt, symbolMeta);\n    }).remove(function (dataIndex) {\n      var bar = oldData.getItemGraphicEl(dataIndex);\n      bar && removeBar(oldData, dataIndex, bar.__pictorialSymbolMeta.animationModel, bar);\n    }).execute();\n    this._data = data;\n    return this.group;\n  };\n\n  PictorialBarView.prototype.remove = function (ecModel, api) {\n    var group = this.group;\n    var data = this._data;\n\n    if (ecModel.get('animation')) {\n      if (data) {\n        data.eachItemGraphicEl(function (bar) {\n          removeBar(data, getECData(bar).dataIndex, ecModel, bar);\n        });\n      }\n    } else {\n      group.removeAll();\n    }\n  };\n\n  PictorialBarView.type = 'pictorialBar';\n  return PictorialBarView;\n}(ChartView);\n\nfunction getSymbolMeta(data, dataIndex, itemModel, opt) {\n  var layout = data.getItemLayout(dataIndex);\n  var symbolRepeat = itemModel.get('symbolRepeat');\n  var symbolClip = itemModel.get('symbolClip');\n  var symbolPosition = itemModel.get('symbolPosition') || 'start';\n  var symbolRotate = itemModel.get('symbolRotate');\n  var rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\n  var symbolPatternSize = itemModel.get('symbolPatternSize') || 2;\n  var isAnimationEnabled = itemModel.isAnimationEnabled();\n  var symbolMeta = {\n    dataIndex: dataIndex,\n    layout: layout,\n    itemModel: itemModel,\n    symbolType: data.getItemVisual(dataIndex, 'symbol') || 'circle',\n    style: data.getItemVisual(dataIndex, 'style'),\n    symbolClip: symbolClip,\n    symbolRepeat: symbolRepeat,\n    symbolRepeatDirection: itemModel.get('symbolRepeatDirection'),\n    symbolPatternSize: symbolPatternSize,\n    rotation: rotation,\n    animationModel: isAnimationEnabled ? itemModel : null,\n    hoverScale: isAnimationEnabled && itemModel.get(['emphasis', 'scale']),\n    z2: itemModel.getShallow('z', true) || 0\n  };\n  prepareBarLength(itemModel, symbolRepeat, layout, opt, symbolMeta);\n  prepareSymbolSize(data, dataIndex, layout, symbolRepeat, symbolClip, symbolMeta.boundingLength, symbolMeta.pxSign, symbolPatternSize, opt, symbolMeta);\n  prepareLineWidth(itemModel, symbolMeta.symbolScale, rotation, opt, symbolMeta);\n  var symbolSize = symbolMeta.symbolSize;\n  var symbolOffset = itemModel.get('symbolOffset');\n\n  if (zrUtil.isArray(symbolOffset)) {\n    symbolOffset = [parsePercent(symbolOffset[0], symbolSize[0]), parsePercent(symbolOffset[1], symbolSize[1])];\n  }\n\n  prepareLayoutInfo(itemModel, symbolSize, layout, symbolRepeat, symbolClip, symbolOffset, symbolPosition, symbolMeta.valueLineWidth, symbolMeta.boundingLength, symbolMeta.repeatCutLength, opt, symbolMeta);\n  return symbolMeta;\n}\n\nfunction prepareBarLength(itemModel, symbolRepeat, layout, opt, outputSymbolMeta) {\n  var valueDim = opt.valueDim;\n  var symbolBoundingData = itemModel.get('symbolBoundingData');\n  var valueAxis = opt.coordSys.getOtherAxis(opt.coordSys.getBaseAxis());\n  var zeroPx = valueAxis.toGlobalCoord(valueAxis.dataToCoord(0));\n  var pxSignIdx = 1 - +(layout[valueDim.wh] <= 0);\n  var boundingLength;\n\n  if (zrUtil.isArray(symbolBoundingData)) {\n    var symbolBoundingExtent = [convertToCoordOnAxis(valueAxis, symbolBoundingData[0]) - zeroPx, convertToCoordOnAxis(valueAxis, symbolBoundingData[1]) - zeroPx];\n    symbolBoundingExtent[1] < symbolBoundingExtent[0] && symbolBoundingExtent.reverse();\n    boundingLength = symbolBoundingExtent[pxSignIdx];\n  } else if (symbolBoundingData != null) {\n    boundingLength = convertToCoordOnAxis(valueAxis, symbolBoundingData) - zeroPx;\n  } else if (symbolRepeat) {\n    boundingLength = opt.coordSysExtent[valueDim.index][pxSignIdx] - zeroPx;\n  } else {\n    boundingLength = layout[valueDim.wh];\n  }\n\n  outputSymbolMeta.boundingLength = boundingLength;\n\n  if (symbolRepeat) {\n    outputSymbolMeta.repeatCutLength = layout[valueDim.wh];\n  }\n\n  outputSymbolMeta.pxSign = boundingLength > 0 ? 1 : boundingLength < 0 ? -1 : 0;\n}\n\nfunction convertToCoordOnAxis(axis, value) {\n  return axis.toGlobalCoord(axis.dataToCoord(axis.scale.parse(value)));\n}\n\nfunction prepareSymbolSize(data, dataIndex, layout, symbolRepeat, symbolClip, boundingLength, pxSign, symbolPatternSize, opt, outputSymbolMeta) {\n  var valueDim = opt.valueDim;\n  var categoryDim = opt.categoryDim;\n  var categorySize = Math.abs(layout[categoryDim.wh]);\n  var symbolSize = data.getItemVisual(dataIndex, 'symbolSize');\n  var parsedSymbolSize;\n\n  if (zrUtil.isArray(symbolSize)) {\n    parsedSymbolSize = symbolSize.slice();\n  } else {\n    if (symbolSize == null) {\n      parsedSymbolSize = ['100%', '100%'];\n    } else {\n      parsedSymbolSize = [symbolSize, symbolSize];\n    }\n  }\n\n  parsedSymbolSize[categoryDim.index] = parsePercent(parsedSymbolSize[categoryDim.index], categorySize);\n  parsedSymbolSize[valueDim.index] = parsePercent(parsedSymbolSize[valueDim.index], symbolRepeat ? categorySize : Math.abs(boundingLength));\n  outputSymbolMeta.symbolSize = parsedSymbolSize;\n  var symbolScale = outputSymbolMeta.symbolScale = [parsedSymbolSize[0] / symbolPatternSize, parsedSymbolSize[1] / symbolPatternSize];\n  symbolScale[valueDim.index] *= (opt.isHorizontal ? -1 : 1) * pxSign;\n}\n\nfunction prepareLineWidth(itemModel, symbolScale, rotation, opt, outputSymbolMeta) {\n  var valueLineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0;\n\n  if (valueLineWidth) {\n    pathForLineWidth.attr({\n      scaleX: symbolScale[0],\n      scaleY: symbolScale[1],\n      rotation: rotation\n    });\n    pathForLineWidth.updateTransform();\n    valueLineWidth /= pathForLineWidth.getLineScale();\n    valueLineWidth *= symbolScale[opt.valueDim.index];\n  }\n\n  outputSymbolMeta.valueLineWidth = valueLineWidth;\n}\n\nfunction prepareLayoutInfo(itemModel, symbolSize, layout, symbolRepeat, symbolClip, symbolOffset, symbolPosition, valueLineWidth, boundingLength, repeatCutLength, opt, outputSymbolMeta) {\n  var categoryDim = opt.categoryDim;\n  var valueDim = opt.valueDim;\n  var pxSign = outputSymbolMeta.pxSign;\n  var unitLength = Math.max(symbolSize[valueDim.index] + valueLineWidth, 0);\n  var pathLen = unitLength;\n\n  if (symbolRepeat) {\n    var absBoundingLength = Math.abs(boundingLength);\n    var symbolMargin = zrUtil.retrieve(itemModel.get('symbolMargin'), '15%') + '';\n    var hasEndGap = false;\n\n    if (symbolMargin.lastIndexOf('!') === symbolMargin.length - 1) {\n      hasEndGap = true;\n      symbolMargin = symbolMargin.slice(0, symbolMargin.length - 1);\n    }\n\n    var symbolMarginNumeric = parsePercent(symbolMargin, symbolSize[valueDim.index]);\n    var uLenWithMargin = Math.max(unitLength + symbolMarginNumeric * 2, 0);\n    var endFix = hasEndGap ? 0 : symbolMarginNumeric * 2;\n    var repeatSpecified = isNumeric(symbolRepeat);\n    var repeatTimes = repeatSpecified ? symbolRepeat : toIntTimes((absBoundingLength + endFix) / uLenWithMargin);\n    var mDiff = absBoundingLength - repeatTimes * unitLength;\n    symbolMarginNumeric = mDiff / 2 / (hasEndGap ? repeatTimes : repeatTimes - 1);\n    uLenWithMargin = unitLength + symbolMarginNumeric * 2;\n    endFix = hasEndGap ? 0 : symbolMarginNumeric * 2;\n\n    if (!repeatSpecified && symbolRepeat !== 'fixed') {\n      repeatTimes = repeatCutLength ? toIntTimes((Math.abs(repeatCutLength) + endFix) / uLenWithMargin) : 0;\n    }\n\n    pathLen = repeatTimes * uLenWithMargin - endFix;\n    outputSymbolMeta.repeatTimes = repeatTimes;\n    outputSymbolMeta.symbolMargin = symbolMarginNumeric;\n  }\n\n  var sizeFix = pxSign * (pathLen / 2);\n  var pathPosition = outputSymbolMeta.pathPosition = [];\n  pathPosition[categoryDim.index] = layout[categoryDim.wh] / 2;\n  pathPosition[valueDim.index] = symbolPosition === 'start' ? sizeFix : symbolPosition === 'end' ? boundingLength - sizeFix : boundingLength / 2;\n\n  if (symbolOffset) {\n    pathPosition[0] += symbolOffset[0];\n    pathPosition[1] += symbolOffset[1];\n  }\n\n  var bundlePosition = outputSymbolMeta.bundlePosition = [];\n  bundlePosition[categoryDim.index] = layout[categoryDim.xy];\n  bundlePosition[valueDim.index] = layout[valueDim.xy];\n  var barRectShape = outputSymbolMeta.barRectShape = zrUtil.extend({}, layout);\n  barRectShape[valueDim.wh] = pxSign * Math.max(Math.abs(layout[valueDim.wh]), Math.abs(pathPosition[valueDim.index] + sizeFix));\n  barRectShape[categoryDim.wh] = layout[categoryDim.wh];\n  var clipShape = outputSymbolMeta.clipShape = {};\n  clipShape[categoryDim.xy] = -layout[categoryDim.xy];\n  clipShape[categoryDim.wh] = opt.ecSize[categoryDim.wh];\n  clipShape[valueDim.xy] = 0;\n  clipShape[valueDim.wh] = layout[valueDim.wh];\n}\n\nfunction createPath(symbolMeta) {\n  var symbolPatternSize = symbolMeta.symbolPatternSize;\n  var path = createSymbol(symbolMeta.symbolType, -symbolPatternSize / 2, -symbolPatternSize / 2, symbolPatternSize, symbolPatternSize);\n  path.attr({\n    culling: true\n  });\n  path.type !== 'image' && path.setStyle({\n    strokeNoScale: true\n  });\n  return path;\n}\n\nfunction createOrUpdateRepeatSymbols(bar, opt, symbolMeta, isUpdate) {\n  var bundle = bar.__pictorialBundle;\n  var symbolSize = symbolMeta.symbolSize;\n  var valueLineWidth = symbolMeta.valueLineWidth;\n  var pathPosition = symbolMeta.pathPosition;\n  var valueDim = opt.valueDim;\n  var repeatTimes = symbolMeta.repeatTimes || 0;\n  var index = 0;\n  var unit = symbolSize[opt.valueDim.index] + valueLineWidth + symbolMeta.symbolMargin * 2;\n  eachPath(bar, function (path) {\n    path.__pictorialAnimationIndex = index;\n    path.__pictorialRepeatTimes = repeatTimes;\n\n    if (index < repeatTimes) {\n      updateAttr(path, null, makeTarget(index), symbolMeta, isUpdate);\n    } else {\n      updateAttr(path, null, {\n        scaleX: 0,\n        scaleY: 0\n      }, symbolMeta, isUpdate, function () {\n        bundle.remove(path);\n      });\n    }\n\n    index++;\n  });\n\n  for (; index < repeatTimes; index++) {\n    var path = createPath(symbolMeta);\n    path.__pictorialAnimationIndex = index;\n    path.__pictorialRepeatTimes = repeatTimes;\n    bundle.add(path);\n    var target = makeTarget(index);\n    updateAttr(path, {\n      x: target.x,\n      y: target.y,\n      scaleX: 0,\n      scaleY: 0\n    }, {\n      scaleX: target.scaleX,\n      scaleY: target.scaleY,\n      rotation: target.rotation\n    }, symbolMeta, isUpdate);\n  }\n\n  function makeTarget(index) {\n    var position = pathPosition.slice();\n    var pxSign = symbolMeta.pxSign;\n    var i = index;\n\n    if (symbolMeta.symbolRepeatDirection === 'start' ? pxSign > 0 : pxSign < 0) {\n      i = repeatTimes - 1 - index;\n    }\n\n    position[valueDim.index] = unit * (i - repeatTimes / 2 + 0.5) + pathPosition[valueDim.index];\n    return {\n      x: position[0],\n      y: position[1],\n      scaleX: symbolMeta.symbolScale[0],\n      scaleY: symbolMeta.symbolScale[1],\n      rotation: symbolMeta.rotation\n    };\n  }\n}\n\nfunction createOrUpdateSingleSymbol(bar, opt, symbolMeta, isUpdate) {\n  var bundle = bar.__pictorialBundle;\n  var mainPath = bar.__pictorialMainPath;\n\n  if (!mainPath) {\n    mainPath = bar.__pictorialMainPath = createPath(symbolMeta);\n    bundle.add(mainPath);\n    updateAttr(mainPath, {\n      x: symbolMeta.pathPosition[0],\n      y: symbolMeta.pathPosition[1],\n      scaleX: 0,\n      scaleY: 0,\n      rotation: symbolMeta.rotation\n    }, {\n      scaleX: symbolMeta.symbolScale[0],\n      scaleY: symbolMeta.symbolScale[1]\n    }, symbolMeta, isUpdate);\n  } else {\n    updateAttr(mainPath, null, {\n      x: symbolMeta.pathPosition[0],\n      y: symbolMeta.pathPosition[1],\n      scaleX: symbolMeta.symbolScale[0],\n      scaleY: symbolMeta.symbolScale[1],\n      rotation: symbolMeta.rotation\n    }, symbolMeta, isUpdate);\n  }\n}\n\nfunction createOrUpdateBarRect(bar, symbolMeta, isUpdate) {\n  var rectShape = zrUtil.extend({}, symbolMeta.barRectShape);\n  var barRect = bar.__pictorialBarRect;\n\n  if (!barRect) {\n    barRect = bar.__pictorialBarRect = new graphic.Rect({\n      z2: 2,\n      shape: rectShape,\n      silent: true,\n      style: {\n        stroke: 'transparent',\n        fill: 'transparent',\n        lineWidth: 0\n      }\n    });\n    bar.add(barRect);\n  } else {\n    updateAttr(barRect, null, {\n      shape: rectShape\n    }, symbolMeta, isUpdate);\n  }\n}\n\nfunction createOrUpdateClip(bar, opt, symbolMeta, isUpdate) {\n  if (symbolMeta.symbolClip) {\n    var clipPath = bar.__pictorialClipPath;\n    var clipShape = zrUtil.extend({}, symbolMeta.clipShape);\n    var valueDim = opt.valueDim;\n    var animationModel = symbolMeta.animationModel;\n    var dataIndex = symbolMeta.dataIndex;\n\n    if (clipPath) {\n      graphic.updateProps(clipPath, {\n        shape: clipShape\n      }, animationModel, dataIndex);\n    } else {\n      clipShape[valueDim.wh] = 0;\n      clipPath = new graphic.Rect({\n        shape: clipShape\n      });\n\n      bar.__pictorialBundle.setClipPath(clipPath);\n\n      bar.__pictorialClipPath = clipPath;\n      var target = {};\n      target[valueDim.wh] = symbolMeta.clipShape[valueDim.wh];\n      graphic[isUpdate ? 'updateProps' : 'initProps'](clipPath, {\n        shape: target\n      }, animationModel, dataIndex);\n    }\n  }\n}\n\nfunction getItemModel(data, dataIndex) {\n  var itemModel = data.getItemModel(dataIndex);\n  itemModel.getAnimationDelayParams = getAnimationDelayParams;\n  itemModel.isAnimationEnabled = isAnimationEnabled;\n  return itemModel;\n}\n\nfunction getAnimationDelayParams(path) {\n  return {\n    index: path.__pictorialAnimationIndex,\n    count: path.__pictorialRepeatTimes\n  };\n}\n\nfunction isAnimationEnabled() {\n  return this.parentModel.isAnimationEnabled() && !!this.getShallow('animation');\n}\n\nfunction createBar(data, opt, symbolMeta, isUpdate) {\n  var bar = new graphic.Group();\n  var bundle = new graphic.Group();\n  bar.add(bundle);\n  bar.__pictorialBundle = bundle;\n  bundle.x = symbolMeta.bundlePosition[0];\n  bundle.y = symbolMeta.bundlePosition[1];\n\n  if (symbolMeta.symbolRepeat) {\n    createOrUpdateRepeatSymbols(bar, opt, symbolMeta);\n  } else {\n    createOrUpdateSingleSymbol(bar, opt, symbolMeta);\n  }\n\n  createOrUpdateBarRect(bar, symbolMeta, isUpdate);\n  createOrUpdateClip(bar, opt, symbolMeta, isUpdate);\n  bar.__pictorialShapeStr = getShapeStr(data, symbolMeta);\n  bar.__pictorialSymbolMeta = symbolMeta;\n  return bar;\n}\n\nfunction updateBar(bar, opt, symbolMeta) {\n  var animationModel = symbolMeta.animationModel;\n  var dataIndex = symbolMeta.dataIndex;\n  var bundle = bar.__pictorialBundle;\n  graphic.updateProps(bundle, {\n    x: symbolMeta.bundlePosition[0],\n    y: symbolMeta.bundlePosition[1]\n  }, animationModel, dataIndex);\n\n  if (symbolMeta.symbolRepeat) {\n    createOrUpdateRepeatSymbols(bar, opt, symbolMeta, true);\n  } else {\n    createOrUpdateSingleSymbol(bar, opt, symbolMeta, true);\n  }\n\n  createOrUpdateBarRect(bar, symbolMeta, true);\n  createOrUpdateClip(bar, opt, symbolMeta, true);\n}\n\nfunction removeBar(data, dataIndex, animationModel, bar) {\n  var labelRect = bar.__pictorialBarRect;\n  labelRect && labelRect.removeTextContent();\n  var pathes = [];\n  eachPath(bar, function (path) {\n    pathes.push(path);\n  });\n  bar.__pictorialMainPath && pathes.push(bar.__pictorialMainPath);\n  bar.__pictorialClipPath && (animationModel = null);\n  zrUtil.each(pathes, function (path) {\n    graphic.removeElement(path, {\n      scaleX: 0,\n      scaleY: 0\n    }, animationModel, dataIndex, function () {\n      bar.parent && bar.parent.remove(bar);\n    });\n  });\n  data.setItemGraphicEl(dataIndex, null);\n}\n\nfunction getShapeStr(data, symbolMeta) {\n  return [data.getItemVisual(symbolMeta.dataIndex, 'symbol') || 'none', !!symbolMeta.symbolRepeat, !!symbolMeta.symbolClip].join(':');\n}\n\nfunction eachPath(bar, cb, context) {\n  zrUtil.each(bar.__pictorialBundle.children(), function (el) {\n    el !== bar.__pictorialBarRect && cb.call(context, el);\n  });\n}\n\nfunction updateAttr(el, immediateAttrs, animationAttrs, symbolMeta, isUpdate, cb) {\n  immediateAttrs && el.attr(immediateAttrs);\n\n  if (symbolMeta.symbolClip && !isUpdate) {\n    animationAttrs && el.attr(animationAttrs);\n  } else {\n    animationAttrs && graphic[isUpdate ? 'updateProps' : 'initProps'](el, animationAttrs, symbolMeta.animationModel, symbolMeta.dataIndex, cb);\n  }\n}\n\nfunction updateCommon(bar, opt, symbolMeta) {\n  var dataIndex = symbolMeta.dataIndex;\n  var itemModel = symbolMeta.itemModel;\n  var emphasisModel = itemModel.getModel('emphasis');\n  var emphasisStyle = emphasisModel.getModel('itemStyle').getItemStyle();\n  var blurStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\n  var selectStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\n  var cursorStyle = itemModel.getShallow('cursor');\n  var focus = emphasisModel.get('focus');\n  var blurScope = emphasisModel.get('blurScope');\n  var hoverScale = emphasisModel.get('scale');\n  eachPath(bar, function (path) {\n    if (path instanceof ZRImage) {\n      var pathStyle = path.style;\n      path.useStyle(zrUtil.extend({\n        image: pathStyle.image,\n        x: pathStyle.x,\n        y: pathStyle.y,\n        width: pathStyle.width,\n        height: pathStyle.height\n      }, symbolMeta.style));\n    } else {\n      path.useStyle(symbolMeta.style);\n    }\n\n    var emphasisState = path.ensureState('emphasis');\n    emphasisState.style = emphasisStyle;\n\n    if (hoverScale) {\n      emphasisState.scaleX = path.scaleX * 1.1;\n      emphasisState.scaleY = path.scaleY * 1.1;\n    }\n\n    path.ensureState('blur').style = blurStyle;\n    path.ensureState('select').style = selectStyle;\n    cursorStyle && (path.cursor = cursorStyle);\n    path.z2 = symbolMeta.z2;\n  });\n  var barPositionOutside = opt.valueDim.posDesc[+(symbolMeta.boundingLength > 0)];\n  var barRect = bar.__pictorialBarRect;\n  setLabelStyle(barRect, getLabelStatesModels(itemModel), {\n    labelFetcher: opt.seriesModel,\n    labelDataIndex: dataIndex,\n    defaultText: getDefaultLabel(opt.seriesModel.getData(), dataIndex),\n    inheritColor: symbolMeta.style.fill,\n    defaultOpacity: symbolMeta.style.opacity,\n    defaultOutsidePosition: barPositionOutside\n  });\n  enableHoverEmphasis(bar, focus, blurScope);\n}\n\nfunction toIntTimes(times) {\n  var roundedTimes = Math.round(times);\n  return Math.abs(times - roundedTimes) < 1e-4 ? roundedTimes : Math.ceil(times);\n}\n\nexport default PictorialBarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BaseBarSeriesModel from './BaseBarSeries';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar PictorialBarSeriesModel = function (_super) {\n  __extends(PictorialBarSeriesModel, _super);\n\n  function PictorialBarSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = PictorialBarSeriesModel.type;\n    _this.hasSymbolVisual = true;\n    _this.defaultSymbol = 'roundRect';\n    return _this;\n  }\n\n  PictorialBarSeriesModel.prototype.getInitialData = function (option) {\n    option.stack = null;\n    return _super.prototype.getInitialData.apply(this, arguments);\n  };\n\n  PictorialBarSeriesModel.type = 'series.pictorialBar';\n  PictorialBarSeriesModel.dependencies = ['grid'];\n  PictorialBarSeriesModel.defaultOption = inheritDefaultOption(BaseBarSeriesModel.defaultOption, {\n    symbol: 'circle',\n    symbolSize: null,\n    symbolRotate: null,\n    symbolPosition: null,\n    symbolOffset: null,\n    symbolMargin: null,\n    symbolRepeat: false,\n    symbolRepeatDirection: 'end',\n    symbolClip: false,\n    symbolBoundingData: null,\n    symbolPatternSize: 400,\n    barGap: '-100%',\n    progressive: 0,\n    emphasis: {\n      scale: false\n    },\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    }\n  });\n  return PictorialBarSeriesModel;\n}(BaseBarSeriesModel);\n\nexport default PictorialBarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport PictorialBarView from './PictorialBarView';\nimport PictorialBarSeriesModel from './PictorialBarSeries';\nimport { layout } from '../../layout/barGrid';\nimport { curry } from 'zrender/lib/core/util';\nexport function install(registers) {\n  registers.registerChartView(PictorialBarView);\n  registers.registerSeriesModel(PictorialBarSeriesModel);\n  registers.registerLayout(curry(layout, 'pictorialBar'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { ECPolygon } from '../line/poly';\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { bind } from 'zrender/lib/core/util';\nimport DataDiffer from '../../data/DataDiffer';\nimport ChartView from '../../view/Chart';\n\nvar ThemeRiverView = function (_super) {\n  __extends(ThemeRiverView, _super);\n\n  function ThemeRiverView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ThemeRiverView.type;\n    _this._layers = [];\n    return _this;\n  }\n\n  ThemeRiverView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    var self = this;\n    var group = this.group;\n    var layersSeries = seriesModel.getLayerSeries();\n    var layoutInfo = data.getLayout('layoutInfo');\n    var rect = layoutInfo.rect;\n    var boundaryGap = layoutInfo.boundaryGap;\n    group.x = 0;\n    group.y = rect.y + boundaryGap[0];\n\n    function keyGetter(item) {\n      return item.name;\n    }\n\n    var dataDiffer = new DataDiffer(this._layersSeries || [], layersSeries, keyGetter, keyGetter);\n    var newLayersGroups = [];\n    dataDiffer.add(bind(process, this, 'add')).update(bind(process, this, 'update')).remove(bind(process, this, 'remove')).execute();\n\n    function process(status, idx, oldIdx) {\n      var oldLayersGroups = self._layers;\n\n      if (status === 'remove') {\n        group.remove(oldLayersGroups[idx]);\n        return;\n      }\n\n      var points0 = [];\n      var points1 = [];\n      var style;\n      var indices = layersSeries[idx].indices;\n      var j = 0;\n\n      for (; j < indices.length; j++) {\n        var layout = data.getItemLayout(indices[j]);\n        var x = layout.x;\n        var y0 = layout.y0;\n        var y = layout.y;\n        points0.push(x, y0);\n        points1.push(x, y0 + y);\n        style = data.getItemVisual(indices[j], 'style');\n      }\n\n      var polygon;\n      var textLayout = data.getItemLayout(indices[0]);\n      var labelModel = seriesModel.getModel('label');\n      var margin = labelModel.get('margin');\n      var emphasisModel = seriesModel.getModel('emphasis');\n\n      if (status === 'add') {\n        var layerGroup = newLayersGroups[idx] = new graphic.Group();\n        polygon = new ECPolygon({\n          shape: {\n            points: points0,\n            stackedOnPoints: points1,\n            smooth: 0.4,\n            stackedOnSmooth: 0.4,\n            smoothConstraint: false\n          },\n          z2: 0\n        });\n        layerGroup.add(polygon);\n        group.add(layerGroup);\n\n        if (seriesModel.isAnimationEnabled()) {\n          polygon.setClipPath(createGridClipShape(polygon.getBoundingRect(), seriesModel, function () {\n            polygon.removeClipPath();\n          }));\n        }\n      } else {\n        var layerGroup = oldLayersGroups[oldIdx];\n        polygon = layerGroup.childAt(0);\n        group.add(layerGroup);\n        newLayersGroups[idx] = layerGroup;\n        graphic.updateProps(polygon, {\n          shape: {\n            points: points0,\n            stackedOnPoints: points1\n          }\n        }, seriesModel);\n      }\n\n      setLabelStyle(polygon, getLabelStatesModels(seriesModel), {\n        labelDataIndex: indices[j - 1],\n        defaultText: data.getName(indices[j - 1]),\n        inheritColor: style.fill\n      }, {\n        normal: {\n          verticalAlign: 'middle'\n        }\n      });\n      polygon.setTextConfig({\n        position: null,\n        local: true\n      });\n      var labelEl = polygon.getTextContent();\n\n      if (labelEl) {\n        labelEl.x = textLayout.x - margin;\n        labelEl.y = textLayout.y0 + textLayout.y / 2;\n      }\n\n      polygon.useStyle(style);\n      data.setItemGraphicEl(idx, polygon);\n      setStatesStylesFromModel(polygon, seriesModel);\n      enableHoverEmphasis(polygon, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n    }\n\n    this._layersSeries = layersSeries;\n    this._layers = newLayersGroups;\n  };\n\n  ThemeRiverView.type = 'themeRiver';\n  return ThemeRiverView;\n}(ChartView);\n\n;\n\nfunction createGridClipShape(rect, seriesModel, cb) {\n  var rectEl = new graphic.Rect({\n    shape: {\n      x: rect.x - 10,\n      y: rect.y - 10,\n      width: 0,\n      height: rect.height + 20\n    }\n  });\n  graphic.initProps(rectEl, {\n    shape: {\n      x: rect.x - 50,\n      width: rect.width + 100,\n      height: rect.height + 20\n    }\n  }, seriesModel, cb);\n  return rectEl;\n}\n\nexport default ThemeRiverView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport createDimensions from '../../data/helper/createDimensions';\nimport { getDimensionTypeByAxis } from '../../data/helper/dimensionHelper';\nimport List from '../../data/List';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { groupData, SINGLE_REFERRING } from '../../util/model';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup';\nvar DATA_NAME_INDEX = 2;\n\nvar ThemeRiverSeriesModel = function (_super) {\n  __extends(ThemeRiverSeriesModel, _super);\n\n  function ThemeRiverSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ThemeRiverSeriesModel.type;\n    _this.useColorPaletteOnData = true;\n    return _this;\n  }\n\n  ThemeRiverSeriesModel.prototype.init = function (option) {\n    _super.prototype.init.apply(this, arguments);\n\n    this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));\n  };\n\n  ThemeRiverSeriesModel.prototype.fixData = function (data) {\n    var rawDataLength = data.length;\n    var timeValueKeys = {};\n    var groupResult = groupData(data, function (item) {\n      if (!timeValueKeys.hasOwnProperty(item[0] + '')) {\n        timeValueKeys[item[0] + ''] = -1;\n      }\n\n      return item[2];\n    });\n    var layerData = [];\n    groupResult.buckets.each(function (items, key) {\n      layerData.push({\n        name: key,\n        dataList: items\n      });\n    });\n    var layerNum = layerData.length;\n\n    for (var k = 0; k < layerNum; ++k) {\n      var name_1 = layerData[k].name;\n\n      for (var j = 0; j < layerData[k].dataList.length; ++j) {\n        var timeValue = layerData[k].dataList[j][0] + '';\n        timeValueKeys[timeValue] = k;\n      }\n\n      for (var timeValue in timeValueKeys) {\n        if (timeValueKeys.hasOwnProperty(timeValue) && timeValueKeys[timeValue] !== k) {\n          timeValueKeys[timeValue] = k;\n          data[rawDataLength] = [timeValue, 0, name_1];\n          rawDataLength++;\n        }\n      }\n    }\n\n    return data;\n  };\n\n  ThemeRiverSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    var singleAxisModel = this.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\n    var axisType = singleAxisModel.get('type');\n    var filterData = zrUtil.filter(option.data, function (dataItem) {\n      return dataItem[2] !== undefined;\n    });\n    var data = this.fixData(filterData || []);\n    var nameList = [];\n    var nameMap = this.nameMap = zrUtil.createHashMap();\n    var count = 0;\n\n    for (var i = 0; i < data.length; ++i) {\n      nameList.push(data[i][DATA_NAME_INDEX]);\n\n      if (!nameMap.get(data[i][DATA_NAME_INDEX])) {\n        nameMap.set(data[i][DATA_NAME_INDEX], count);\n        count++;\n      }\n    }\n\n    var dimensionsInfo = createDimensions(data, {\n      coordDimensions: ['single'],\n      dimensionsDefine: [{\n        name: 'time',\n        type: getDimensionTypeByAxis(axisType)\n      }, {\n        name: 'value',\n        type: 'float'\n      }, {\n        name: 'name',\n        type: 'ordinal'\n      }],\n      encodeDefine: {\n        single: 0,\n        value: 1,\n        itemName: 2\n      }\n    });\n    var list = new List(dimensionsInfo, this);\n    list.initData(data);\n    return list;\n  };\n\n  ThemeRiverSeriesModel.prototype.getLayerSeries = function () {\n    var data = this.getData();\n    var lenCount = data.count();\n    var indexArr = [];\n\n    for (var i = 0; i < lenCount; ++i) {\n      indexArr[i] = i;\n    }\n\n    var timeDim = data.mapDimension('single');\n    var groupResult = groupData(indexArr, function (index) {\n      return data.get('name', index);\n    });\n    var layerSeries = [];\n    groupResult.buckets.each(function (items, key) {\n      items.sort(function (index1, index2) {\n        return data.get(timeDim, index1) - data.get(timeDim, index2);\n      });\n      layerSeries.push({\n        name: key,\n        indices: items\n      });\n    });\n    return layerSeries;\n  };\n\n  ThemeRiverSeriesModel.prototype.getAxisTooltipData = function (dim, value, baseAxis) {\n    if (!zrUtil.isArray(dim)) {\n      dim = dim ? [dim] : [];\n    }\n\n    var data = this.getData();\n    var layerSeries = this.getLayerSeries();\n    var indices = [];\n    var layerNum = layerSeries.length;\n    var nestestValue;\n\n    for (var i = 0; i < layerNum; ++i) {\n      var minDist = Number.MAX_VALUE;\n      var nearestIdx = -1;\n      var pointNum = layerSeries[i].indices.length;\n\n      for (var j = 0; j < pointNum; ++j) {\n        var theValue = data.get(dim[0], layerSeries[i].indices[j]);\n        var dist = Math.abs(theValue - value);\n\n        if (dist <= minDist) {\n          nestestValue = theValue;\n          minDist = dist;\n          nearestIdx = layerSeries[i].indices[j];\n        }\n      }\n\n      indices.push(nearestIdx);\n    }\n\n    return {\n      dataIndices: indices,\n      nestestValue: nestestValue\n    };\n  };\n\n  ThemeRiverSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var data = this.getData();\n    var name = data.getName(dataIndex);\n    var value = data.get(data.mapDimension('value'), dataIndex);\n    return createTooltipMarkup('nameValue', {\n      name: name,\n      value: value\n    });\n  };\n\n  ThemeRiverSeriesModel.type = 'series.themeRiver';\n  ThemeRiverSeriesModel.dependencies = ['singleAxis'];\n  ThemeRiverSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'singleAxis',\n    boundaryGap: ['10%', '10%'],\n    singleAxisIndex: 0,\n    animationEasing: 'linear',\n    label: {\n      margin: 4,\n      show: true,\n      position: 'left',\n      fontSize: 11\n    },\n    emphasis: {\n      label: {\n        show: true\n      }\n    }\n  };\n  return ThemeRiverSeriesModel;\n}(SeriesModel);\n\nexport default ThemeRiverSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as numberUtil from '../../util/number';\nexport default function themeRiverLayout(ecModel, api) {\n  ecModel.eachSeriesByType('themeRiver', function (seriesModel) {\n    var data = seriesModel.getData();\n    var single = seriesModel.coordinateSystem;\n    var layoutInfo = {};\n    var rect = single.getRect();\n    layoutInfo.rect = rect;\n    var boundaryGap = seriesModel.get('boundaryGap');\n    var axis = single.getAxis();\n    layoutInfo.boundaryGap = boundaryGap;\n\n    if (axis.orient === 'horizontal') {\n      boundaryGap[0] = numberUtil.parsePercent(boundaryGap[0], rect.height);\n      boundaryGap[1] = numberUtil.parsePercent(boundaryGap[1], rect.height);\n      var height = rect.height - boundaryGap[0] - boundaryGap[1];\n      doThemeRiverLayout(data, seriesModel, height);\n    } else {\n      boundaryGap[0] = numberUtil.parsePercent(boundaryGap[0], rect.width);\n      boundaryGap[1] = numberUtil.parsePercent(boundaryGap[1], rect.width);\n      var width = rect.width - boundaryGap[0] - boundaryGap[1];\n      doThemeRiverLayout(data, seriesModel, width);\n    }\n\n    data.setLayout('layoutInfo', layoutInfo);\n  });\n}\n\nfunction doThemeRiverLayout(data, seriesModel, height) {\n  if (!data.count()) {\n    return;\n  }\n\n  var coordSys = seriesModel.coordinateSystem;\n  var layerSeries = seriesModel.getLayerSeries();\n  var timeDim = data.mapDimension('single');\n  var valueDim = data.mapDimension('value');\n  var layerPoints = zrUtil.map(layerSeries, function (singleLayer) {\n    return zrUtil.map(singleLayer.indices, function (idx) {\n      var pt = coordSys.dataToPoint(data.get(timeDim, idx));\n      pt[1] = data.get(valueDim, idx);\n      return pt;\n    });\n  });\n  var base = computeBaseline(layerPoints);\n  var baseLine = base.y0;\n  var ky = height / base.max;\n  var n = layerSeries.length;\n  var m = layerSeries[0].indices.length;\n  var baseY0;\n\n  for (var j = 0; j < m; ++j) {\n    baseY0 = baseLine[j] * ky;\n    data.setItemLayout(layerSeries[0].indices[j], {\n      layerIndex: 0,\n      x: layerPoints[0][j][0],\n      y0: baseY0,\n      y: layerPoints[0][j][1] * ky\n    });\n\n    for (var i = 1; i < n; ++i) {\n      baseY0 += layerPoints[i - 1][j][1] * ky;\n      data.setItemLayout(layerSeries[i].indices[j], {\n        layerIndex: i,\n        x: layerPoints[i][j][0],\n        y0: baseY0,\n        y: layerPoints[i][j][1] * ky\n      });\n    }\n  }\n}\n\nfunction computeBaseline(data) {\n  var layerNum = data.length;\n  var pointNum = data[0].length;\n  var sums = [];\n  var y0 = [];\n  var max = 0;\n\n  for (var i = 0; i < pointNum; ++i) {\n    var temp = 0;\n\n    for (var j = 0; j < layerNum; ++j) {\n      temp += data[j][i][1];\n    }\n\n    if (temp > max) {\n      max = temp;\n    }\n\n    sums.push(temp);\n  }\n\n  for (var k = 0; k < pointNum; ++k) {\n    y0[k] = (max - sums[k]) / 2;\n  }\n\n  max = 0;\n\n  for (var l = 0; l < pointNum; ++l) {\n    var sum = sums[l] + y0[l];\n\n    if (sum > max) {\n      max = sum;\n    }\n  }\n\n  return {\n    y0: y0,\n    max: max\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ThemeRiverView from './ThemeRiverView';\nimport ThemeRiverSeriesModel from './ThemeRiverSeries';\nimport themeRiverLayout from './themeRiverLayout';\nimport dataFilter from '../../processor/dataFilter';\nexport function install(registers) {\n  registers.registerChartView(ThemeRiverView);\n  registers.registerSeriesModel(ThemeRiverSeriesModel);\n  registers.registerLayout(themeRiverLayout);\n  registers.registerProcessor(dataFilter('themeRiver'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis, SPECIAL_STATES, DISPLAY_STATES } from '../../util/states';\nimport { createTextStyle } from '../../label/labelStyle';\nimport { getECData } from '../../util/innerStore';\nimport { getSectorCornerRadius } from '../helper/pieHelper';\nimport { createOrUpdatePatternFromDecal } from '../../util/decal';\nvar DEFAULT_SECTOR_Z = 2;\nvar DEFAULT_TEXT_Z = 4;\n\nvar SunburstPiece = function (_super) {\n  __extends(SunburstPiece, _super);\n\n  function SunburstPiece(node, seriesModel, ecModel, api) {\n    var _this = _super.call(this) || this;\n\n    _this.z2 = DEFAULT_SECTOR_Z;\n    _this.textConfig = {\n      inside: true\n    };\n    getECData(_this).seriesIndex = seriesModel.seriesIndex;\n    var text = new graphic.Text({\n      z2: DEFAULT_TEXT_Z,\n      silent: node.getModel().get(['label', 'silent'])\n    });\n\n    _this.setTextContent(text);\n\n    _this.updateData(true, node, seriesModel, ecModel, api);\n\n    return _this;\n  }\n\n  SunburstPiece.prototype.updateData = function (firstCreate, node, seriesModel, ecModel, api) {\n    this.node = node;\n    node.piece = this;\n    seriesModel = seriesModel || this._seriesModel;\n    ecModel = ecModel || this._ecModel;\n    var sector = this;\n    getECData(sector).dataIndex = node.dataIndex;\n    var itemModel = node.getModel();\n    var emphasisModel = itemModel.getModel('emphasis');\n    var layout = node.getLayout();\n    var sectorShape = zrUtil.extend({}, layout);\n    sectorShape.label = null;\n    var normalStyle = node.getVisual('style');\n    normalStyle.lineJoin = 'bevel';\n    var decal = node.getVisual('decal');\n\n    if (decal) {\n      normalStyle.decal = createOrUpdatePatternFromDecal(decal, api);\n    }\n\n    var cornerRadius = getSectorCornerRadius(itemModel.getModel('itemStyle'), sectorShape);\n    zrUtil.extend(sectorShape, cornerRadius);\n    zrUtil.each(SPECIAL_STATES, function (stateName) {\n      var state = sector.ensureState(stateName);\n      var itemStyleModel = itemModel.getModel([stateName, 'itemStyle']);\n      state.style = itemStyleModel.getItemStyle();\n      var cornerRadius = getSectorCornerRadius(itemStyleModel, sectorShape);\n\n      if (cornerRadius) {\n        state.shape = cornerRadius;\n      }\n    });\n\n    if (firstCreate) {\n      sector.setShape(sectorShape);\n      sector.shape.r = layout.r0;\n      graphic.updateProps(sector, {\n        shape: {\n          r: layout.r\n        }\n      }, seriesModel, node.dataIndex);\n    } else {\n      graphic.updateProps(sector, {\n        shape: sectorShape\n      }, seriesModel);\n    }\n\n    sector.useStyle(normalStyle);\n\n    this._updateLabel(seriesModel);\n\n    var cursorStyle = itemModel.getShallow('cursor');\n    cursorStyle && sector.attr('cursor', cursorStyle);\n    this._seriesModel = seriesModel || this._seriesModel;\n    this._ecModel = ecModel || this._ecModel;\n    var focus = emphasisModel.get('focus');\n    var focusDataIndices = focus === 'ancestor' ? node.getAncestorsIndices() : focus === 'descendant' ? node.getDescendantIndices() : null;\n    enableHoverEmphasis(this, focusDataIndices || focus, emphasisModel.get('blurScope'));\n  };\n\n  SunburstPiece.prototype._updateLabel = function (seriesModel) {\n    var _this = this;\n\n    var itemModel = this.node.getModel();\n    var normalLabelModel = itemModel.getModel('label');\n    var layout = this.node.getLayout();\n    var angle = layout.endAngle - layout.startAngle;\n    var midAngle = (layout.startAngle + layout.endAngle) / 2;\n    var dx = Math.cos(midAngle);\n    var dy = Math.sin(midAngle);\n    var sector = this;\n    var label = sector.getTextContent();\n    var dataIndex = this.node.dataIndex;\n    var labelMinAngle = normalLabelModel.get('minAngle') / 180 * Math.PI;\n    var isNormalShown = normalLabelModel.get('show') && !(labelMinAngle != null && Math.abs(angle) < labelMinAngle);\n    label.ignore = !isNormalShown;\n    zrUtil.each(DISPLAY_STATES, function (stateName) {\n      var labelStateModel = stateName === 'normal' ? itemModel.getModel('label') : itemModel.getModel([stateName, 'label']);\n      var isNormal = stateName === 'normal';\n      var state = isNormal ? label : label.ensureState(stateName);\n      var text = seriesModel.getFormattedLabel(dataIndex, stateName);\n\n      if (isNormal) {\n        text = text || _this.node.name;\n      }\n\n      state.style = createTextStyle(labelStateModel, {}, null, stateName !== 'normal', true);\n\n      if (text) {\n        state.style.text = text;\n      }\n\n      var isShown = labelStateModel.get('show');\n\n      if (isShown != null && !isNormal) {\n        state.ignore = !isShown;\n      }\n\n      var labelPosition = getLabelAttr(labelStateModel, 'position');\n      var sectorState = isNormal ? sector : sector.states[stateName];\n      var labelColor = sectorState.style.fill;\n      sectorState.textConfig = {\n        outsideFill: labelStateModel.get('color') === 'inherit' ? labelColor : null,\n        inside: labelPosition !== 'outside'\n      };\n      var r;\n      var labelPadding = getLabelAttr(labelStateModel, 'distance') || 0;\n      var textAlign = getLabelAttr(labelStateModel, 'align');\n\n      if (labelPosition === 'outside') {\n        r = layout.r + labelPadding;\n        textAlign = midAngle > Math.PI / 2 ? 'right' : 'left';\n      } else {\n        if (!textAlign || textAlign === 'center') {\n          r = (layout.r + layout.r0) / 2;\n          textAlign = 'center';\n        } else if (textAlign === 'left') {\n          r = layout.r0 + labelPadding;\n\n          if (midAngle > Math.PI / 2) {\n            textAlign = 'right';\n          }\n        } else if (textAlign === 'right') {\n          r = layout.r - labelPadding;\n\n          if (midAngle > Math.PI / 2) {\n            textAlign = 'left';\n          }\n        }\n      }\n\n      state.style.align = textAlign;\n      state.style.verticalAlign = getLabelAttr(labelStateModel, 'verticalAlign') || 'middle';\n      state.x = r * dx + layout.cx;\n      state.y = r * dy + layout.cy;\n      var rotateType = getLabelAttr(labelStateModel, 'rotate');\n      var rotate = 0;\n\n      if (rotateType === 'radial') {\n        rotate = -midAngle;\n\n        if (rotate < -Math.PI / 2) {\n          rotate += Math.PI;\n        }\n      } else if (rotateType === 'tangential') {\n        rotate = Math.PI / 2 - midAngle;\n\n        if (rotate > Math.PI / 2) {\n          rotate -= Math.PI;\n        } else if (rotate < -Math.PI / 2) {\n          rotate += Math.PI;\n        }\n      } else if (typeof rotateType === 'number') {\n        rotate = rotateType * Math.PI / 180;\n      }\n\n      state.rotation = rotate;\n    });\n\n    function getLabelAttr(model, name) {\n      var stateAttr = model.get(name);\n\n      if (stateAttr == null) {\n        return normalLabelModel.get(name);\n      }\n\n      return stateAttr;\n    }\n\n    label.dirtyStyle();\n  };\n\n  return SunburstPiece;\n}(graphic.Sector);\n\nexport default SunburstPiece;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { extend } from 'zrender/lib/core/util';\nimport { deprecateReplaceLog } from '../../util/log';\nimport { retrieveTargetInfo, aboveViewRoot } from '../helper/treeHelper';\nexport var ROOT_TO_NODE_ACTION = 'sunburstRootToNode';\nvar HIGHLIGHT_ACTION = 'sunburstHighlight';\nvar UNHIGHLIGHT_ACTION = 'sunburstUnhighlight';\nexport function installSunburstAction(registers) {\n  registers.registerAction({\n    type: ROOT_TO_NODE_ACTION,\n    update: 'updateView'\n  }, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'sunburst',\n      query: payload\n    }, handleRootToNode);\n\n    function handleRootToNode(model, index) {\n      var targetInfo = retrieveTargetInfo(payload, [ROOT_TO_NODE_ACTION], model);\n\n      if (targetInfo) {\n        var originViewRoot = model.getViewRoot();\n\n        if (originViewRoot) {\n          payload.direction = aboveViewRoot(originViewRoot, targetInfo.node) ? 'rollUp' : 'drillDown';\n        }\n\n        model.resetViewRoot(targetInfo.node);\n      }\n    }\n  });\n  registers.registerAction({\n    type: HIGHLIGHT_ACTION,\n    update: 'none'\n  }, function (payload, ecModel, api) {\n    payload = extend({}, payload);\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'sunburst',\n      query: payload\n    }, handleHighlight);\n\n    function handleHighlight(model) {\n      var targetInfo = retrieveTargetInfo(payload, [HIGHLIGHT_ACTION], model);\n\n      if (targetInfo) {\n        payload.dataIndex = targetInfo.node.dataIndex;\n      }\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateReplaceLog('highlight', 'sunburstHighlight');\n    }\n\n    api.dispatchAction(extend(payload, {\n      type: 'highlight'\n    }));\n  });\n  registers.registerAction({\n    type: UNHIGHLIGHT_ACTION,\n    update: 'updateView'\n  }, function (payload, ecModel, api) {\n    payload = extend({}, payload);\n\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateReplaceLog('downplay', 'sunburstUnhighlight');\n    }\n\n    api.dispatchAction(extend(payload, {\n      type: 'downplay'\n    }));\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ChartView from '../../view/Chart';\nimport SunburstPiece from './SunburstPiece';\nimport DataDiffer from '../../data/DataDiffer';\nimport { ROOT_TO_NODE_ACTION } from './sunburstAction';\nimport { windowOpen } from '../../util/format';\n\nvar SunburstView = function (_super) {\n  __extends(SunburstView, _super);\n\n  function SunburstView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SunburstView.type;\n    return _this;\n  }\n\n  SunburstView.prototype.render = function (seriesModel, ecModel, api, payload) {\n    var self = this;\n    this.seriesModel = seriesModel;\n    this.api = api;\n    this.ecModel = ecModel;\n    var data = seriesModel.getData();\n    var virtualRoot = data.tree.root;\n    var newRoot = seriesModel.getViewRoot();\n    var group = this.group;\n    var renderLabelForZeroData = seriesModel.get('renderLabelForZeroData');\n    var newChildren = [];\n    newRoot.eachNode(function (node) {\n      newChildren.push(node);\n    });\n    var oldChildren = this._oldChildren || [];\n    dualTravel(newChildren, oldChildren);\n    renderRollUp(virtualRoot, newRoot);\n\n    this._initEvents();\n\n    this._oldChildren = newChildren;\n\n    function dualTravel(newChildren, oldChildren) {\n      if (newChildren.length === 0 && oldChildren.length === 0) {\n        return;\n      }\n\n      new DataDiffer(oldChildren, newChildren, getKey, getKey).add(processNode).update(processNode).remove(zrUtil.curry(processNode, null)).execute();\n\n      function getKey(node) {\n        return node.getId();\n      }\n\n      function processNode(newIdx, oldIdx) {\n        var newNode = newIdx == null ? null : newChildren[newIdx];\n        var oldNode = oldIdx == null ? null : oldChildren[oldIdx];\n        doRenderNode(newNode, oldNode);\n      }\n    }\n\n    function doRenderNode(newNode, oldNode) {\n      if (!renderLabelForZeroData && newNode && !newNode.getValue()) {\n        newNode = null;\n      }\n\n      if (newNode !== virtualRoot && oldNode !== virtualRoot) {\n        if (oldNode && oldNode.piece) {\n          if (newNode) {\n            oldNode.piece.updateData(false, newNode, seriesModel, ecModel, api);\n            data.setItemGraphicEl(newNode.dataIndex, oldNode.piece);\n          } else {\n            removeNode(oldNode);\n          }\n        } else if (newNode) {\n          var piece = new SunburstPiece(newNode, seriesModel, ecModel, api);\n          group.add(piece);\n          data.setItemGraphicEl(newNode.dataIndex, piece);\n        }\n      }\n    }\n\n    function removeNode(node) {\n      if (!node) {\n        return;\n      }\n\n      if (node.piece) {\n        group.remove(node.piece);\n        node.piece = null;\n      }\n    }\n\n    function renderRollUp(virtualRoot, viewRoot) {\n      if (viewRoot.depth > 0) {\n        if (self.virtualPiece) {\n          self.virtualPiece.updateData(false, virtualRoot, seriesModel, ecModel, api);\n        } else {\n          self.virtualPiece = new SunburstPiece(virtualRoot, seriesModel, ecModel, api);\n          group.add(self.virtualPiece);\n        }\n\n        viewRoot.piece.off('click');\n        self.virtualPiece.on('click', function (e) {\n          self._rootToNode(viewRoot.parentNode);\n        });\n      } else if (self.virtualPiece) {\n        group.remove(self.virtualPiece);\n        self.virtualPiece = null;\n      }\n    }\n  };\n\n  SunburstView.prototype._initEvents = function () {\n    var _this = this;\n\n    this.group.off('click');\n    this.group.on('click', function (e) {\n      var targetFound = false;\n\n      var viewRoot = _this.seriesModel.getViewRoot();\n\n      viewRoot.eachNode(function (node) {\n        if (!targetFound && node.piece && node.piece === e.target) {\n          var nodeClick = node.getModel().get('nodeClick');\n\n          if (nodeClick === 'rootToNode') {\n            _this._rootToNode(node);\n          } else if (nodeClick === 'link') {\n            var itemModel = node.getModel();\n            var link = itemModel.get('link');\n\n            if (link) {\n              var linkTarget = itemModel.get('target', true) || '_blank';\n              windowOpen(link, linkTarget);\n            }\n          }\n\n          targetFound = true;\n        }\n      });\n    });\n  };\n\n  SunburstView.prototype._rootToNode = function (node) {\n    if (node !== this.seriesModel.getViewRoot()) {\n      this.api.dispatchAction({\n        type: ROOT_TO_NODE_ACTION,\n        from: this.uid,\n        seriesId: this.seriesModel.id,\n        targetNode: node\n      });\n    }\n  };\n\n  SunburstView.prototype.containPoint = function (point, seriesModel) {\n    var treeRoot = seriesModel.getData();\n    var itemLayout = treeRoot.getItemLayout(0);\n\n    if (itemLayout) {\n      var dx = point[0] - itemLayout.cx;\n      var dy = point[1] - itemLayout.cy;\n      var radius = Math.sqrt(dx * dx + dy * dy);\n      return radius <= itemLayout.r && radius >= itemLayout.r0;\n    }\n  };\n\n  SunburstView.type = 'sunburst';\n  return SunburstView;\n}(ChartView);\n\nexport default SunburstView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport SeriesModel from '../../model/Series';\nimport Tree from '../../data/Tree';\nimport { wrapTreePathInfo } from '../helper/treeHelper';\nimport Model from '../../model/Model';\nimport enableAriaDecalForTree from '../helper/enableAriaDecalForTree';\n\nvar SunburstSeriesModel = function (_super) {\n  __extends(SunburstSeriesModel, _super);\n\n  function SunburstSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SunburstSeriesModel.type;\n    _this.ignoreStyleOnData = true;\n    return _this;\n  }\n\n  SunburstSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    var root = {\n      name: option.name,\n      children: option.data\n    };\n    completeTreeValue(root);\n    var levelModels = zrUtil.map(option.levels || [], function (levelDefine) {\n      return new Model(levelDefine, this, ecModel);\n    }, this);\n    var tree = Tree.createTree(root, this, beforeLink);\n\n    function beforeLink(nodeData) {\n      nodeData.wrapMethod('getItemModel', function (model, idx) {\n        var node = tree.getNodeByDataIndex(idx);\n        var levelModel = levelModels[node.depth];\n        levelModel && (model.parentModel = levelModel);\n        return model;\n      });\n    }\n\n    return tree.data;\n  };\n\n  SunburstSeriesModel.prototype.optionUpdated = function () {\n    this.resetViewRoot();\n  };\n\n  SunburstSeriesModel.prototype.getDataParams = function (dataIndex) {\n    var params = _super.prototype.getDataParams.apply(this, arguments);\n\n    var node = this.getData().tree.getNodeByDataIndex(dataIndex);\n    params.treePathInfo = wrapTreePathInfo(node, this);\n    return params;\n  };\n\n  SunburstSeriesModel.prototype.getViewRoot = function () {\n    return this._viewRoot;\n  };\n\n  SunburstSeriesModel.prototype.resetViewRoot = function (viewRoot) {\n    viewRoot ? this._viewRoot = viewRoot : viewRoot = this._viewRoot;\n    var root = this.getRawData().tree.root;\n\n    if (!viewRoot || viewRoot !== root && !root.contains(viewRoot)) {\n      this._viewRoot = root;\n    }\n  };\n\n  SunburstSeriesModel.prototype.enableAriaDecal = function () {\n    enableAriaDecalForTree(this);\n  };\n\n  SunburstSeriesModel.type = 'series.sunburst';\n  SunburstSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    center: ['50%', '50%'],\n    radius: [0, '75%'],\n    clockwise: true,\n    startAngle: 90,\n    minAngle: 0,\n    stillShowZeroSum: true,\n    nodeClick: 'rootToNode',\n    renderLabelForZeroData: false,\n    label: {\n      rotate: 'radial',\n      show: true,\n      opacity: 1,\n      align: 'center',\n      position: 'inside',\n      distance: 5,\n      silent: true\n    },\n    itemStyle: {\n      borderWidth: 1,\n      borderColor: 'white',\n      borderType: 'solid',\n      shadowBlur: 0,\n      shadowColor: 'rgba(0, 0, 0, 0.2)',\n      shadowOffsetX: 0,\n      shadowOffsetY: 0,\n      opacity: 1\n    },\n    emphasis: {\n      focus: 'descendant'\n    },\n    blur: {\n      itemStyle: {\n        opacity: 0.2\n      },\n      label: {\n        opacity: 0.1\n      }\n    },\n    animationType: 'expansion',\n    animationDuration: 1000,\n    animationDurationUpdate: 500,\n    data: [],\n    levels: [],\n    sort: 'desc'\n  };\n  return SunburstSeriesModel;\n}(SeriesModel);\n\nfunction completeTreeValue(dataNode) {\n  var sum = 0;\n  zrUtil.each(dataNode.children, function (child) {\n    completeTreeValue(child);\n    var childValue = child.value;\n    zrUtil.isArray(childValue) && (childValue = childValue[0]);\n    sum += childValue;\n  });\n  var thisValue = dataNode.value;\n\n  if (zrUtil.isArray(thisValue)) {\n    thisValue = thisValue[0];\n  }\n\n  if (thisValue == null || isNaN(thisValue)) {\n    thisValue = sum;\n  }\n\n  if (thisValue < 0) {\n    thisValue = 0;\n  }\n\n  zrUtil.isArray(dataNode.value) ? dataNode.value[0] = thisValue : dataNode.value = thisValue;\n}\n\nexport default SunburstSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parsePercent } from '../../util/number';\nimport * as zrUtil from 'zrender/lib/core/util';\nvar RADIAN = Math.PI / 180;\nexport default function sunburstLayout(seriesType, ecModel, api) {\n  ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n    var center = seriesModel.get('center');\n    var radius = seriesModel.get('radius');\n\n    if (!zrUtil.isArray(radius)) {\n      radius = [0, radius];\n    }\n\n    if (!zrUtil.isArray(center)) {\n      center = [center, center];\n    }\n\n    var width = api.getWidth();\n    var height = api.getHeight();\n    var size = Math.min(width, height);\n    var cx = parsePercent(center[0], width);\n    var cy = parsePercent(center[1], height);\n    var r0 = parsePercent(radius[0], size / 2);\n    var r = parsePercent(radius[1], size / 2);\n    var startAngle = -seriesModel.get('startAngle') * RADIAN;\n    var minAngle = seriesModel.get('minAngle') * RADIAN;\n    var virtualRoot = seriesModel.getData().tree.root;\n    var treeRoot = seriesModel.getViewRoot();\n    var rootDepth = treeRoot.depth;\n    var sort = seriesModel.get('sort');\n\n    if (sort != null) {\n      initChildren(treeRoot, sort);\n    }\n\n    var validDataCount = 0;\n    zrUtil.each(treeRoot.children, function (child) {\n      !isNaN(child.getValue()) && validDataCount++;\n    });\n    var sum = treeRoot.getValue();\n    var unitRadian = Math.PI / (sum || validDataCount) * 2;\n    var renderRollupNode = treeRoot.depth > 0;\n    var levels = treeRoot.height - (renderRollupNode ? -1 : 1);\n    var rPerLevel = (r - r0) / (levels || 1);\n    var clockwise = seriesModel.get('clockwise');\n    var stillShowZeroSum = seriesModel.get('stillShowZeroSum');\n    var dir = clockwise ? 1 : -1;\n\n    var renderNode = function (node, startAngle) {\n      if (!node) {\n        return;\n      }\n\n      var endAngle = startAngle;\n\n      if (node !== virtualRoot) {\n        var value = node.getValue();\n        var angle = sum === 0 && stillShowZeroSum ? unitRadian : value * unitRadian;\n\n        if (angle < minAngle) {\n          angle = minAngle;\n        }\n\n        endAngle = startAngle + dir * angle;\n        var depth = node.depth - rootDepth - (renderRollupNode ? -1 : 1);\n        var rStart = r0 + rPerLevel * depth;\n        var rEnd = r0 + rPerLevel * (depth + 1);\n        var itemModel = node.getModel();\n\n        if (itemModel.get('r0') != null) {\n          rStart = parsePercent(itemModel.get('r0'), size / 2);\n        }\n\n        if (itemModel.get('r') != null) {\n          rEnd = parsePercent(itemModel.get('r'), size / 2);\n        }\n\n        node.setLayout({\n          angle: angle,\n          startAngle: startAngle,\n          endAngle: endAngle,\n          clockwise: clockwise,\n          cx: cx,\n          cy: cy,\n          r0: rStart,\n          r: rEnd\n        });\n      }\n\n      if (node.children && node.children.length) {\n        var siblingAngle_1 = 0;\n        zrUtil.each(node.children, function (node) {\n          siblingAngle_1 += renderNode(node, startAngle + siblingAngle_1);\n        });\n      }\n\n      return endAngle - startAngle;\n    };\n\n    if (renderRollupNode) {\n      var rStart = r0;\n      var rEnd = r0 + rPerLevel;\n      var angle = Math.PI * 2;\n      virtualRoot.setLayout({\n        angle: angle,\n        startAngle: startAngle,\n        endAngle: startAngle + angle,\n        clockwise: clockwise,\n        cx: cx,\n        cy: cy,\n        r0: rStart,\n        r: rEnd\n      });\n    }\n\n    renderNode(treeRoot, startAngle);\n  });\n}\n\nfunction initChildren(node, sortOrder) {\n  var children = node.children || [];\n  node.children = sort(children, sortOrder);\n\n  if (children.length) {\n    zrUtil.each(node.children, function (child) {\n      initChildren(child, sortOrder);\n    });\n  }\n}\n\nfunction sort(children, sortOrder) {\n  if (typeof sortOrder === 'function') {\n    var sortTargets = zrUtil.map(children, function (child, idx) {\n      var value = child.getValue();\n      return {\n        params: {\n          depth: child.depth,\n          height: child.height,\n          dataIndex: child.dataIndex,\n          getValue: function () {\n            return value;\n          }\n        },\n        index: idx\n      };\n    });\n    sortTargets.sort(function (a, b) {\n      return sortOrder(a.params, b.params);\n    });\n    return zrUtil.map(sortTargets, function (target) {\n      return children[target.index];\n    });\n  } else {\n    var isAsc_1 = sortOrder === 'asc';\n    return children.sort(function (a, b) {\n      var diff = (a.getValue() - b.getValue()) * (isAsc_1 ? 1 : -1);\n      return diff === 0 ? (a.dataIndex - b.dataIndex) * (isAsc_1 ? -1 : 1) : diff;\n    });\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { extend } from 'zrender/lib/core/util';\nimport { lift } from 'zrender/lib/tool/color';\nexport default function sunburstVisual(ecModel) {\n  var paletteScope = {};\n\n  function pickColor(node, seriesModel, treeHeight) {\n    var current = node;\n\n    while (current && current.depth > 1) {\n      current = current.parentNode;\n    }\n\n    var color = seriesModel.getColorFromPalette(current.name || current.dataIndex + '', paletteScope);\n\n    if (node.depth > 1 && typeof color === 'string') {\n      color = lift(color, (node.depth - 1) / (treeHeight - 1) * 0.5);\n    }\n\n    return color;\n  }\n\n  ecModel.eachSeriesByType('sunburst', function (seriesModel) {\n    var data = seriesModel.getData();\n    var tree = data.tree;\n    tree.eachNode(function (node) {\n      var model = node.getModel();\n      var style = model.getModel('itemStyle').getItemStyle();\n\n      if (!style.fill) {\n        style.fill = pickColor(node, seriesModel, tree.root.height);\n      }\n\n      var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, 'style');\n      extend(existsStyle, style);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SunburstView from './SunburstView';\nimport SunburstSeriesModel from './SunburstSeries';\nimport sunburstLayout from './sunburstLayout';\nimport sunburstVisual from './sunburstVisual';\nimport dataFilter from '../../processor/dataFilter';\nimport { curry } from 'zrender/lib/core/util';\nimport { installSunburstAction } from './sunburstAction';\nexport function install(registers) {\n  registers.registerChartView(SunburstView);\n  registers.registerSeriesModel(SunburstSeriesModel);\n  registers.registerLayout(curry(sunburstLayout, 'sunburst'));\n  registers.registerProcessor(curry(dataFilter, 'sunburst'));\n  registers.registerVisual(sunburstVisual);\n  installSunburstAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nfunction dataToCoordSize(dataSize, dataItem) {\n  dataItem = dataItem || [0, 0];\n  return zrUtil.map(['x', 'y'], function (dim, dimIdx) {\n    var axis = this.getAxis(dim);\n    var val = dataItem[dimIdx];\n    var halfSize = dataSize[dimIdx] / 2;\n    return axis.type === 'category' ? axis.getBandWidth() : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));\n  }, this);\n}\n\nexport default function cartesianPrepareCustom(coordSys) {\n  var rect = coordSys.master.getRect();\n  return {\n    coordSys: {\n      type: 'cartesian2d',\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height\n    },\n    api: {\n      coord: function (data) {\n        return coordSys.dataToPoint(data);\n      },\n      size: zrUtil.bind(dataToCoordSize, coordSys)\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nfunction dataToCoordSize(dataSize, dataItem) {\n  dataItem = dataItem || [0, 0];\n  return zrUtil.map([0, 1], function (dimIdx) {\n    var val = dataItem[dimIdx];\n    var halfSize = dataSize[dimIdx] / 2;\n    var p1 = [];\n    var p2 = [];\n    p1[dimIdx] = val - halfSize;\n    p2[dimIdx] = val + halfSize;\n    p1[1 - dimIdx] = p2[1 - dimIdx] = dataItem[1 - dimIdx];\n    return Math.abs(this.dataToPoint(p1)[dimIdx] - this.dataToPoint(p2)[dimIdx]);\n  }, this);\n}\n\nexport default function geoPrepareCustom(coordSys) {\n  var rect = coordSys.getBoundingRect();\n  return {\n    coordSys: {\n      type: 'geo',\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height,\n      zoom: coordSys.getZoom()\n    },\n    api: {\n      coord: function (data) {\n        return coordSys.dataToPoint(data);\n      },\n      size: zrUtil.bind(dataToCoordSize, coordSys)\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { bind } from 'zrender/lib/core/util';\n\nfunction dataToCoordSize(dataSize, dataItem) {\n  var axis = this.getAxis();\n  var val = dataItem instanceof Array ? dataItem[0] : dataItem;\n  var halfSize = (dataSize instanceof Array ? dataSize[0] : dataSize) / 2;\n  return axis.type === 'category' ? axis.getBandWidth() : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));\n}\n\nexport default function singlePrepareCustom(coordSys) {\n  var rect = coordSys.getRect();\n  return {\n    coordSys: {\n      type: 'singleAxis',\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height\n    },\n    api: {\n      coord: function (val) {\n        return coordSys.dataToPoint(val);\n      },\n      size: bind(dataToCoordSize, coordSys)\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nfunction dataToCoordSize(dataSize, dataItem) {\n  dataItem = dataItem || [0, 0];\n  return zrUtil.map(['Radius', 'Angle'], function (dim, dimIdx) {\n    var getterName = 'get' + dim + 'Axis';\n    var axis = this[getterName]();\n    var val = dataItem[dimIdx];\n    var halfSize = dataSize[dimIdx] / 2;\n    var result = axis.type === 'category' ? axis.getBandWidth() : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));\n\n    if (dim === 'Angle') {\n      result = result * Math.PI / 180;\n    }\n\n    return result;\n  }, this);\n}\n\nexport default function polarPrepareCustom(coordSys) {\n  var radiusAxis = coordSys.getRadiusAxis();\n  var angleAxis = coordSys.getAngleAxis();\n  var radius = radiusAxis.getExtent();\n  radius[0] > radius[1] && radius.reverse();\n  return {\n    coordSys: {\n      type: 'polar',\n      cx: coordSys.cx,\n      cy: coordSys.cy,\n      r: radius[1],\n      r0: radius[0]\n    },\n    api: {\n      coord: function (data) {\n        var radius = radiusAxis.dataToRadius(data[0]);\n        var angle = angleAxis.dataToAngle(data[1]);\n        var coord = coordSys.coordToPoint([radius, angle]);\n        coord.push(radius, angle * Math.PI / 180);\n        return coord;\n      },\n      size: zrUtil.bind(dataToCoordSize, coordSys)\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function calendarPrepareCustom(coordSys) {\n  var rect = coordSys.getRect();\n  var rangeInfo = coordSys.getRangeInfo();\n  return {\n    coordSys: {\n      type: 'calendar',\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height,\n      cellWidth: coordSys.getCellWidth(),\n      cellHeight: coordSys.getCellHeight(),\n      rangeInfo: {\n        start: rangeInfo.start,\n        end: rangeInfo.end,\n        weeks: rangeInfo.weeks,\n        dayCount: rangeInfo.allDay\n      }\n    },\n    api: {\n      coord: function (data, clamp) {\n        return coordSys.dataToPoint(data, clamp);\n      }\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, hasOwn } from 'zrender/lib/core/util';\nvar deprecatedLogs = {};\nexport function isEC4CompatibleStyle(style, elType, hasOwnTextContentOption, hasOwnTextConfig) {\n  return style && (style.legacy || style.legacy !== false && !hasOwnTextContentOption && !hasOwnTextConfig && elType !== 'tspan' && (elType === 'text' || hasOwn(style, 'text')));\n}\nexport function convertFromEC4CompatibleStyle(hostStyle, elType, isNormal) {\n  var srcStyle = hostStyle;\n  var textConfig;\n  var textContent;\n  var textContentStyle;\n\n  if (elType === 'text') {\n    textContentStyle = srcStyle;\n  } else {\n    textContentStyle = {};\n    hasOwn(srcStyle, 'text') && (textContentStyle.text = srcStyle.text);\n    hasOwn(srcStyle, 'rich') && (textContentStyle.rich = srcStyle.rich);\n    hasOwn(srcStyle, 'textFill') && (textContentStyle.fill = srcStyle.textFill);\n    hasOwn(srcStyle, 'textStroke') && (textContentStyle.stroke = srcStyle.textStroke);\n    textContent = {\n      type: 'text',\n      style: textContentStyle,\n      silent: true\n    };\n    textConfig = {};\n    var hasOwnPos = hasOwn(srcStyle, 'textPosition');\n\n    if (isNormal) {\n      textConfig.position = hasOwnPos ? srcStyle.textPosition : 'inside';\n    } else {\n      hasOwnPos && (textConfig.position = srcStyle.textPosition);\n    }\n\n    hasOwn(srcStyle, 'textPosition') && (textConfig.position = srcStyle.textPosition);\n    hasOwn(srcStyle, 'textOffset') && (textConfig.offset = srcStyle.textOffset);\n    hasOwn(srcStyle, 'textRotation') && (textConfig.rotation = srcStyle.textRotation);\n    hasOwn(srcStyle, 'textDistance') && (textConfig.distance = srcStyle.textDistance);\n  }\n\n  convertEC4CompatibleRichItem(textContentStyle, hostStyle);\n  each(textContentStyle.rich, function (richItem) {\n    convertEC4CompatibleRichItem(richItem, richItem);\n  });\n  return {\n    textConfig: textConfig,\n    textContent: textContent\n  };\n}\n\nfunction convertEC4CompatibleRichItem(out, richItem) {\n  if (!richItem) {\n    return;\n  }\n\n  richItem.font = richItem.textFont || richItem.font;\n  hasOwn(richItem, 'textStrokeWidth') && (out.lineWidth = richItem.textStrokeWidth);\n  hasOwn(richItem, 'textAlign') && (out.align = richItem.textAlign);\n  hasOwn(richItem, 'textVerticalAlign') && (out.verticalAlign = richItem.textVerticalAlign);\n  hasOwn(richItem, 'textLineHeight') && (out.lineHeight = richItem.textLineHeight);\n  hasOwn(richItem, 'textWidth') && (out.width = richItem.textWidth);\n  hasOwn(richItem, 'textHeight') && (out.height = richItem.textHeight);\n  hasOwn(richItem, 'textBackgroundColor') && (out.backgroundColor = richItem.textBackgroundColor);\n  hasOwn(richItem, 'textPadding') && (out.padding = richItem.textPadding);\n  hasOwn(richItem, 'textBorderColor') && (out.borderColor = richItem.textBorderColor);\n  hasOwn(richItem, 'textBorderWidth') && (out.borderWidth = richItem.textBorderWidth);\n  hasOwn(richItem, 'textBorderRadius') && (out.borderRadius = richItem.textBorderRadius);\n  hasOwn(richItem, 'textBoxShadowColor') && (out.shadowColor = richItem.textBoxShadowColor);\n  hasOwn(richItem, 'textBoxShadowBlur') && (out.shadowBlur = richItem.textBoxShadowBlur);\n  hasOwn(richItem, 'textBoxShadowOffsetX') && (out.shadowOffsetX = richItem.textBoxShadowOffsetX);\n  hasOwn(richItem, 'textBoxShadowOffsetY') && (out.shadowOffsetY = richItem.textBoxShadowOffsetY);\n}\n\nexport function convertToEC4StyleForCustomSerise(itemStl, txStl, txCfg) {\n  var out = itemStl;\n  out.textPosition = out.textPosition || txCfg.position || 'inside';\n  txCfg.offset != null && (out.textOffset = txCfg.offset);\n  txCfg.rotation != null && (out.textRotation = txCfg.rotation);\n  txCfg.distance != null && (out.textDistance = txCfg.distance);\n  var isInside = out.textPosition.indexOf('inside') >= 0;\n  var hostFill = itemStl.fill || '#000';\n  convertToEC4RichItem(out, txStl);\n  var textFillNotSet = out.textFill == null;\n\n  if (isInside) {\n    if (textFillNotSet) {\n      out.textFill = txCfg.insideFill || '#fff';\n      !out.textStroke && txCfg.insideStroke && (out.textStroke = txCfg.insideStroke);\n      !out.textStroke && (out.textStroke = hostFill);\n      out.textStrokeWidth == null && (out.textStrokeWidth = 2);\n    }\n  } else {\n    if (textFillNotSet) {\n      out.textFill = txCfg.outsideFill || hostFill;\n    }\n\n    !out.textStroke && txCfg.outsideStroke && (out.textStroke = txCfg.outsideStroke);\n  }\n\n  out.text = txStl.text;\n  out.rich = txStl.rich;\n  each(txStl.rich, function (richItem) {\n    convertToEC4RichItem(richItem, richItem);\n  });\n  return out;\n}\n\nfunction convertToEC4RichItem(out, richItem) {\n  if (!richItem) {\n    return;\n  }\n\n  hasOwn(richItem, 'fill') && (out.textFill = richItem.fill);\n  hasOwn(richItem, 'stroke') && (out.textStroke = richItem.fill);\n  hasOwn(richItem, 'lineWidth') && (out.textStrokeWidth = richItem.lineWidth);\n  hasOwn(richItem, 'font') && (out.font = richItem.font);\n  hasOwn(richItem, 'fontStyle') && (out.fontStyle = richItem.fontStyle);\n  hasOwn(richItem, 'fontWeight') && (out.fontWeight = richItem.fontWeight);\n  hasOwn(richItem, 'fontSize') && (out.fontSize = richItem.fontSize);\n  hasOwn(richItem, 'fontFamily') && (out.fontFamily = richItem.fontFamily);\n  hasOwn(richItem, 'align') && (out.textAlign = richItem.align);\n  hasOwn(richItem, 'verticalAlign') && (out.textVerticalAlign = richItem.verticalAlign);\n  hasOwn(richItem, 'lineHeight') && (out.textLineHeight = richItem.lineHeight);\n  hasOwn(richItem, 'width') && (out.textWidth = richItem.width);\n  hasOwn(richItem, 'height') && (out.textHeight = richItem.height);\n  hasOwn(richItem, 'backgroundColor') && (out.textBackgroundColor = richItem.backgroundColor);\n  hasOwn(richItem, 'padding') && (out.textPadding = richItem.padding);\n  hasOwn(richItem, 'borderColor') && (out.textBorderColor = richItem.borderColor);\n  hasOwn(richItem, 'borderWidth') && (out.textBorderWidth = richItem.borderWidth);\n  hasOwn(richItem, 'borderRadius') && (out.textBorderRadius = richItem.borderRadius);\n  hasOwn(richItem, 'shadowColor') && (out.textBoxShadowColor = richItem.shadowColor);\n  hasOwn(richItem, 'shadowBlur') && (out.textBoxShadowBlur = richItem.shadowBlur);\n  hasOwn(richItem, 'shadowOffsetX') && (out.textBoxShadowOffsetX = richItem.shadowOffsetX);\n  hasOwn(richItem, 'shadowOffsetY') && (out.textBoxShadowOffsetY = richItem.shadowOffsetY);\n  hasOwn(richItem, 'textShadowColor') && (out.textShadowColor = richItem.textShadowColor);\n  hasOwn(richItem, 'textShadowBlur') && (out.textShadowBlur = richItem.textShadowBlur);\n  hasOwn(richItem, 'textShadowOffsetX') && (out.textShadowOffsetX = richItem.textShadowOffsetX);\n  hasOwn(richItem, 'textShadowOffsetY') && (out.textShadowOffsetY = richItem.textShadowOffsetY);\n}\n\nexport function warnDeprecated(deprecated, insteadApproach) {\n  if (process.env.NODE_ENV !== 'production') {\n    var key = deprecated + '^_^' + insteadApproach;\n\n    if (!deprecatedLogs[key]) {\n      console.warn(\"[ECharts] DEPRECATED: \\\"\" + deprecated + \"\\\" has been deprecated. \" + insteadApproach);\n      deprecatedLogs[key] = true;\n    }\n  }\n}","import PathProxy from '../core/PathProxy';\nimport { cubicSubdivide } from '../core/curve';\nimport { defaults, assert, noop, clone } from '../core/util';\nimport { lerp } from '../core/vector';\nimport Rect from '../graphic/shape/Rect';\nimport Sector from '../graphic/shape/Sector';\nvar CMD = PathProxy.CMD;\nvar PI2 = Math.PI * 2;\nvar PROP_XY = ['x', 'y'];\nvar PROP_WH = ['width', 'height'];\nvar tmpArr = [];\nfunction aroundEqual(a, b) {\n    return Math.abs(a - b) < 1e-5;\n}\nexport function pathToBezierCurves(path) {\n    var data = path.data;\n    var len = path.len();\n    var bezierArray = [];\n    var currentSubpath;\n    var xi = 0;\n    var yi = 0;\n    var x0 = 0;\n    var y0 = 0;\n    function createNewSubpath(x, y) {\n        if (currentSubpath && currentSubpath.length > 2) {\n            bezierArray.push(currentSubpath);\n        }\n        currentSubpath = [x, y];\n    }\n    function addLine(x0, y0, x1, y1) {\n        if (!(aroundEqual(x0, x1) && aroundEqual(y0, y1))) {\n            currentSubpath.push(x0, y0, x1, y1, x1, y1);\n        }\n    }\n    function addArc(startAngle, endAngle, cx, cy, rx, ry) {\n        var delta = Math.abs(endAngle - startAngle);\n        var len = Math.tan(delta / 4) * 4 / 3;\n        var dir = endAngle < startAngle ? -1 : 1;\n        var c1 = Math.cos(startAngle);\n        var s1 = Math.sin(startAngle);\n        var c2 = Math.cos(endAngle);\n        var s2 = Math.sin(endAngle);\n        var x1 = c1 * rx + cx;\n        var y1 = s1 * ry + cy;\n        var x4 = c2 * rx + cx;\n        var y4 = s2 * ry + cy;\n        var hx = rx * len * dir;\n        var hy = ry * len * dir;\n        currentSubpath.push(x1 - hx * s1, y1 + hy * c1, x4 + hx * s2, y4 - hy * c2, x4, y4);\n    }\n    var x1;\n    var y1;\n    var x2;\n    var y2;\n    for (var i = 0; i < len;) {\n        var cmd = data[i++];\n        var isFirst = i === 1;\n        if (isFirst) {\n            xi = data[i];\n            yi = data[i + 1];\n            x0 = xi;\n            y0 = yi;\n            if (cmd === CMD.L || cmd === CMD.C || cmd === CMD.Q) {\n                currentSubpath = [x0, y0];\n            }\n        }\n        switch (cmd) {\n            case CMD.M:\n                xi = x0 = data[i++];\n                yi = y0 = data[i++];\n                createNewSubpath(x0, y0);\n                break;\n            case CMD.L:\n                x1 = data[i++];\n                y1 = data[i++];\n                addLine(xi, yi, x1, y1);\n                xi = x1;\n                yi = y1;\n                break;\n            case CMD.C:\n                currentSubpath.push(data[i++], data[i++], data[i++], data[i++], xi = data[i++], yi = data[i++]);\n                break;\n            case CMD.Q:\n                x1 = data[i++];\n                y1 = data[i++];\n                x2 = data[i++];\n                y2 = data[i++];\n                currentSubpath.push(xi + 2 / 3 * (x1 - xi), yi + 2 / 3 * (y1 - yi), x2 + 2 / 3 * (x1 - x2), y2 + 2 / 3 * (y1 - y2), x2, y2);\n                xi = x2;\n                yi = y2;\n                break;\n            case CMD.A:\n                var cx = data[i++];\n                var cy = data[i++];\n                var rx = data[i++];\n                var ry = data[i++];\n                var startAngle = data[i++];\n                var endAngle = data[i++] + startAngle;\n                i += 1;\n                var anticlockwise = !data[i++];\n                x1 = Math.cos(startAngle) * rx + cx;\n                y1 = Math.sin(startAngle) * ry + cy;\n                if (isFirst) {\n                    x0 = x1;\n                    y0 = y1;\n                    createNewSubpath(x0, y0);\n                }\n                else {\n                    addLine(xi, yi, x1, y1);\n                }\n                xi = Math.cos(endAngle) * rx + cx;\n                yi = Math.sin(endAngle) * ry + cy;\n                var step = (anticlockwise ? -1 : 1) * Math.PI / 2;\n                for (var angle = startAngle; anticlockwise ? angle > endAngle : angle < endAngle; angle += step) {\n                    var nextAngle = anticlockwise ? Math.max(angle + step, endAngle)\n                        : Math.min(angle + step, endAngle);\n                    addArc(angle, nextAngle, cx, cy, rx, ry);\n                }\n                break;\n            case CMD.R:\n                x0 = xi = data[i++];\n                y0 = yi = data[i++];\n                x1 = x0 + data[i++];\n                y1 = y0 + data[i++];\n                createNewSubpath(x1, y0);\n                addLine(x1, y0, x1, y1);\n                addLine(x1, y1, x0, y1);\n                addLine(x0, y1, x0, y0);\n                addLine(x0, y0, x1, y0);\n                break;\n            case CMD.Z:\n                currentSubpath && addLine(xi, yi, x0, y0);\n                xi = x0;\n                yi = y0;\n                break;\n        }\n    }\n    if (currentSubpath && currentSubpath.length > 2) {\n        bezierArray.push(currentSubpath);\n    }\n    return bezierArray;\n}\nfunction alignSubpath(subpath1, subpath2) {\n    var len1 = subpath1.length;\n    var len2 = subpath2.length;\n    if (len1 === len2) {\n        return [subpath1, subpath2];\n    }\n    var shorterPath = len1 < len2 ? subpath1 : subpath2;\n    var shorterLen = Math.min(len1, len2);\n    var diff = Math.abs(len2 - len1) / 6;\n    var shorterBezierCount = (shorterLen - 2) / 6;\n    var eachCurveSubDivCount = Math.ceil(diff / shorterBezierCount) + 1;\n    var newSubpath = [shorterPath[0], shorterPath[1]];\n    var remained = diff;\n    var tmpSegX = [];\n    var tmpSegY = [];\n    for (var i = 2; i < shorterLen;) {\n        var x0 = shorterPath[i - 2];\n        var y0 = shorterPath[i - 1];\n        var x1 = shorterPath[i++];\n        var y1 = shorterPath[i++];\n        var x2 = shorterPath[i++];\n        var y2 = shorterPath[i++];\n        var x3 = shorterPath[i++];\n        var y3 = shorterPath[i++];\n        if (remained <= 0) {\n            newSubpath.push(x1, y1, x2, y2, x3, y3);\n            continue;\n        }\n        var actualSubDivCount = Math.min(remained, eachCurveSubDivCount - 1) + 1;\n        for (var k = 1; k <= actualSubDivCount; k++) {\n            var p = k / actualSubDivCount;\n            cubicSubdivide(x0, x1, x2, x3, p, tmpSegX);\n            cubicSubdivide(y0, y1, y2, y3, p, tmpSegY);\n            x0 = tmpSegX[3];\n            y0 = tmpSegY[3];\n            newSubpath.push(tmpSegX[1], tmpSegY[1], tmpSegX[2], tmpSegY[2], x0, y0);\n            x1 = tmpSegX[5];\n            y1 = tmpSegY[5];\n            x2 = tmpSegX[6];\n            y2 = tmpSegY[6];\n        }\n        remained -= actualSubDivCount - 1;\n    }\n    return shorterPath === subpath1 ? [newSubpath, subpath2] : [subpath1, newSubpath];\n}\nfunction createSubpath(lastSubpathSubpath, otherSubpath) {\n    var len = lastSubpathSubpath.length;\n    var lastX = lastSubpathSubpath[len - 2];\n    var lastY = lastSubpathSubpath[len - 1];\n    var newSubpath = [];\n    for (var i = 0; i < otherSubpath.length;) {\n        newSubpath[i++] = lastX;\n        newSubpath[i++] = lastY;\n    }\n    return newSubpath;\n}\nexport function alignBezierCurves(array1, array2) {\n    var _a;\n    var lastSubpath1;\n    var lastSubpath2;\n    var newArray1 = [];\n    var newArray2 = [];\n    for (var i = 0; i < Math.max(array1.length, array2.length); i++) {\n        var subpath1 = array1[i];\n        var subpath2 = array2[i];\n        var newSubpath1 = void 0;\n        var newSubpath2 = void 0;\n        if (!subpath1) {\n            newSubpath1 = createSubpath(lastSubpath1 || subpath2, subpath2);\n            newSubpath2 = subpath2;\n        }\n        else if (!subpath2) {\n            newSubpath2 = createSubpath(lastSubpath2 || subpath1, subpath1);\n            newSubpath1 = subpath1;\n        }\n        else {\n            _a = alignSubpath(subpath1, subpath2), newSubpath1 = _a[0], newSubpath2 = _a[1];\n            lastSubpath1 = newSubpath1;\n            lastSubpath2 = newSubpath2;\n        }\n        newArray1.push(newSubpath1);\n        newArray2.push(newSubpath2);\n    }\n    return [newArray1, newArray2];\n}\nexport function centroid(array) {\n    var signedArea = 0;\n    var cx = 0;\n    var cy = 0;\n    var len = array.length;\n    for (var i = 0, j = len - 2; i < len; j = i, i += 2) {\n        var x0 = array[j];\n        var y0 = array[j + 1];\n        var x1 = array[i];\n        var y1 = array[i + 1];\n        var a = x0 * y1 - x1 * y0;\n        signedArea += a;\n        cx += (x0 + x1) * a;\n        cy += (y0 + y1) * a;\n    }\n    if (signedArea === 0) {\n        return [array[0] || 0, array[1] || 0];\n    }\n    return [cx / signedArea / 3, cy / signedArea / 3, signedArea];\n}\nfunction findBestRingOffset(fromSubBeziers, toSubBeziers, fromCp, toCp) {\n    var bezierCount = (fromSubBeziers.length - 2) / 6;\n    var bestScore = Infinity;\n    var bestOffset = 0;\n    var len = fromSubBeziers.length;\n    var len2 = len - 2;\n    for (var offset = 0; offset < bezierCount; offset++) {\n        var cursorOffset = offset * 6;\n        var score = 0;\n        for (var k = 0; k < len; k += 2) {\n            var idx = k === 0 ? cursorOffset : ((cursorOffset + k - 2) % len2 + 2);\n            var x0 = fromSubBeziers[idx] - fromCp[0];\n            var y0 = fromSubBeziers[idx + 1] - fromCp[1];\n            var x1 = toSubBeziers[k] - toCp[0];\n            var y1 = toSubBeziers[k + 1] - toCp[1];\n            var dx = x1 - x0;\n            var dy = y1 - y0;\n            score += dx * dx + dy * dy;\n        }\n        if (score < bestScore) {\n            bestScore = score;\n            bestOffset = offset;\n        }\n    }\n    return bestOffset;\n}\nfunction reverse(array) {\n    var newArr = [];\n    var len = array.length;\n    for (var i = 0; i < len; i += 2) {\n        newArr[i] = array[len - i - 2];\n        newArr[i + 1] = array[len - i - 1];\n    }\n    return newArr;\n}\nfunction findBestMorphingRotation(fromArr, toArr, searchAngleIteration, searchAngleRange) {\n    var result = [];\n    var fromNeedsReverse;\n    for (var i = 0; i < fromArr.length; i++) {\n        var fromSubpathBezier = fromArr[i];\n        var toSubpathBezier = toArr[i];\n        var fromCp = centroid(fromSubpathBezier);\n        var toCp = centroid(toSubpathBezier);\n        if (fromNeedsReverse == null) {\n            fromNeedsReverse = fromCp[2] < 0 !== toCp[2] < 0;\n        }\n        var newFromSubpathBezier = [];\n        var newToSubpathBezier = [];\n        var bestAngle = 0;\n        var bestScore = Infinity;\n        var tmpArr_1 = [];\n        var len = fromSubpathBezier.length;\n        if (fromNeedsReverse) {\n            fromSubpathBezier = reverse(fromSubpathBezier);\n        }\n        var offset = findBestRingOffset(fromSubpathBezier, toSubpathBezier, fromCp, toCp) * 6;\n        var len2 = len - 2;\n        for (var k = 0; k < len2; k += 2) {\n            var idx = (offset + k) % len2 + 2;\n            newFromSubpathBezier[k + 2] = fromSubpathBezier[idx] - fromCp[0];\n            newFromSubpathBezier[k + 3] = fromSubpathBezier[idx + 1] - fromCp[1];\n        }\n        newFromSubpathBezier[0] = fromSubpathBezier[offset] - fromCp[0];\n        newFromSubpathBezier[1] = fromSubpathBezier[offset + 1] - fromCp[1];\n        if (searchAngleIteration > 0) {\n            var step = searchAngleRange / searchAngleIteration;\n            for (var angle = -searchAngleRange / 2; angle <= searchAngleRange / 2; angle += step) {\n                var sa = Math.sin(angle);\n                var ca = Math.cos(angle);\n                var score = 0;\n                for (var k = 0; k < fromSubpathBezier.length; k += 2) {\n                    var x0 = newFromSubpathBezier[k];\n                    var y0 = newFromSubpathBezier[k + 1];\n                    var x1 = toSubpathBezier[k] - toCp[0];\n                    var y1 = toSubpathBezier[k + 1] - toCp[1];\n                    var newX1 = x1 * ca - y1 * sa;\n                    var newY1 = x1 * sa + y1 * ca;\n                    tmpArr_1[k] = newX1;\n                    tmpArr_1[k + 1] = newY1;\n                    var dx = newX1 - x0;\n                    var dy = newY1 - y0;\n                    score += dx * dx + dy * dy;\n                }\n                if (score < bestScore) {\n                    bestScore = score;\n                    bestAngle = angle;\n                    for (var m = 0; m < tmpArr_1.length; m++) {\n                        newToSubpathBezier[m] = tmpArr_1[m];\n                    }\n                }\n            }\n        }\n        else {\n            for (var i_1 = 0; i_1 < len; i_1 += 2) {\n                newToSubpathBezier[i_1] = toSubpathBezier[i_1] - toCp[0];\n                newToSubpathBezier[i_1 + 1] = toSubpathBezier[i_1 + 1] - toCp[1];\n            }\n        }\n        result.push({\n            from: newFromSubpathBezier,\n            to: newToSubpathBezier,\n            fromCp: fromCp,\n            toCp: toCp,\n            rotation: -bestAngle\n        });\n    }\n    return result;\n}\nexport function morphPath(fromPath, toPath, animationOpts) {\n    var fromPathProxy;\n    var toPathProxy;\n    if (!fromPath || !toPath) {\n        return toPath;\n    }\n    !fromPath.path && fromPath.createPathProxy();\n    fromPathProxy = fromPath.path;\n    fromPathProxy.beginPath();\n    fromPath.buildPath(fromPathProxy, fromPath.shape);\n    !toPath.path && toPath.createPathProxy();\n    toPathProxy = toPath.path;\n    toPathProxy === fromPathProxy && (toPathProxy = new PathProxy(false));\n    toPathProxy.beginPath();\n    if (isIndividualMorphingPath(toPath)) {\n        toPath.__oldBuildPath(toPathProxy, toPath.shape);\n    }\n    else {\n        toPath.buildPath(toPathProxy, toPath.shape);\n    }\n    var _a = alignBezierCurves(pathToBezierCurves(fromPathProxy), pathToBezierCurves(toPathProxy)), fromBezierCurves = _a[0], toBezierCurves = _a[1];\n    var morphingData = findBestMorphingRotation(fromBezierCurves, toBezierCurves, 10, Math.PI);\n    becomeIndividualMorphingPath(toPath, morphingData, 0);\n    var oldDone = animationOpts && animationOpts.done;\n    var oldAborted = animationOpts && animationOpts.aborted;\n    var oldDuring = animationOpts && animationOpts.during;\n    toPath.animateTo({\n        __morphT: 1\n    }, defaults({\n        during: function (p) {\n            toPath.dirtyShape();\n            oldDuring && oldDuring(p);\n        },\n        done: function () {\n            restoreIndividualMorphingPath(toPath);\n            toPath.createPathProxy();\n            toPath.dirtyShape();\n            oldDone && oldDone();\n        },\n        aborted: function () {\n            oldAborted && oldAborted();\n        }\n    }, animationOpts));\n    return toPath;\n}\nfunction morphingPathBuildPath(path) {\n    var morphingData = this.__morphingData;\n    var t = this.__morphT;\n    var onet = 1 - t;\n    var newCp = [];\n    for (var i = 0; i < morphingData.length; i++) {\n        var item = morphingData[i];\n        var from = item.from;\n        var to = item.to;\n        var angle = item.rotation * t;\n        var fromCp = item.fromCp;\n        var toCp = item.toCp;\n        var sa = Math.sin(angle);\n        var ca = Math.cos(angle);\n        lerp(newCp, fromCp, toCp, t);\n        for (var m = 0; m < from.length; m += 2) {\n            var x0 = from[m];\n            var y0 = from[m + 1];\n            var x1 = to[m];\n            var y1 = to[m + 1];\n            var x = x0 * onet + x1 * t;\n            var y = y0 * onet + y1 * t;\n            tmpArr[m] = (x * ca - y * sa) + newCp[0];\n            tmpArr[m + 1] = (x * sa + y * ca) + newCp[1];\n        }\n        for (var m = 0; m < from.length;) {\n            if (m === 0) {\n                path.moveTo(tmpArr[m++], tmpArr[m++]);\n            }\n            path.bezierCurveTo(tmpArr[m++], tmpArr[m++], tmpArr[m++], tmpArr[m++], tmpArr[m++], tmpArr[m++]);\n        }\n    }\n}\n;\nfunction becomeIndividualMorphingPath(path, morphingData, morphT) {\n    if (isIndividualMorphingPath(path)) {\n        updateIndividualMorphingPath(path, morphingData, morphT);\n        return;\n    }\n    var morphingPath = path;\n    morphingPath.__oldBuildPath = morphingPath.buildPath;\n    morphingPath.buildPath = morphingPathBuildPath;\n    updateIndividualMorphingPath(morphingPath, morphingData, morphT);\n}\nfunction updateIndividualMorphingPath(morphingPath, morphingData, morphT) {\n    morphingPath.__morphingData = morphingData;\n    morphingPath.__morphT = morphT;\n}\nfunction restoreIndividualMorphingPath(path) {\n    if (isIndividualMorphingPath(path)) {\n        path.buildPath = path.__oldBuildPath;\n        path.__oldBuildPath = path.__morphingData = null;\n    }\n}\nfunction isIndividualMorphingPath(path) {\n    return path.__oldBuildPath != null;\n}\nexport function isCombiningPath(path) {\n    return !!path.__combiningSubList;\n}\nexport function isInAnyMorphing(path) {\n    return isIndividualMorphingPath(path) || isCombiningPath(path);\n}\nexport function combine(fromPathList, toPath, animationOpts, copyPropsIfDivided) {\n    var fromIndividuals = [];\n    var separateCount = 0;\n    for (var i = 0; i < fromPathList.length; i++) {\n        var fromPath = fromPathList[i];\n        if (isCombiningPath(fromPath)) {\n            var fromCombiningSubList = fromPath.__combiningSubList;\n            for (var j = 0; j < fromCombiningSubList.length; j++) {\n                fromIndividuals.push(fromCombiningSubList[j]);\n            }\n            separateCount += fromCombiningSubList.length;\n        }\n        else {\n            fromIndividuals.push(fromPath);\n            separateCount++;\n        }\n    }\n    if (!separateCount) {\n        return;\n    }\n    var dividingMethod = animationOpts ? animationOpts.dividingMethod : null;\n    var toPathSplittedList = divideShape(toPath, separateCount, dividingMethod);\n    assert(toPathSplittedList.length === separateCount);\n    var oldDone = animationOpts && animationOpts.done;\n    var oldAborted = animationOpts && animationOpts.aborted;\n    var oldDuring = animationOpts && animationOpts.during;\n    var doneCount = 0;\n    var abortedCalled = false;\n    var morphAnimationOpts = defaults({\n        during: function (p) {\n            oldDuring && oldDuring(p);\n        },\n        done: function () {\n            doneCount++;\n            if (doneCount === toPathSplittedList.length) {\n                restoreCombiningPath(toPath);\n                oldDone && oldDone();\n            }\n        },\n        aborted: function () {\n            if (!abortedCalled) {\n                abortedCalled = true;\n                oldAborted && oldAborted();\n            }\n        }\n    }, animationOpts);\n    for (var i = 0; i < separateCount; i++) {\n        var from = fromIndividuals[i];\n        var to = toPathSplittedList[i];\n        copyPropsIfDivided && copyPropsIfDivided(toPath, to, true);\n        morphPath(from, to, morphAnimationOpts);\n    }\n    becomeCombiningPath(toPath, toPathSplittedList);\n    return {\n        fromIndividuals: fromIndividuals,\n        toIndividuals: toPathSplittedList,\n        count: separateCount\n    };\n}\nfunction becomeCombiningPath(path, combiningSubList) {\n    if (isCombiningPath(path)) {\n        updateCombiningPathSubList(path, combiningSubList);\n        return;\n    }\n    var combiningPath = path;\n    updateCombiningPathSubList(combiningPath, combiningSubList);\n    combiningPath.__oldAddSelfToZr = path.addSelfToZr;\n    combiningPath.__oldRemoveSelfFromZr = path.removeSelfFromZr;\n    combiningPath.addSelfToZr = combiningAddSelfToZr;\n    combiningPath.removeSelfFromZr = combiningRemoveSelfFromZr;\n    combiningPath.__oldBuildPath = combiningPath.buildPath;\n    combiningPath.buildPath = noop;\n    combiningPath.childrenRef = combiningChildrenRef;\n}\nfunction restoreCombiningPath(path) {\n    if (!isCombiningPath(path)) {\n        return;\n    }\n    var combiningPath = path;\n    updateCombiningPathSubList(combiningPath, null);\n    combiningPath.addSelfToZr = combiningPath.__oldAddSelfToZr;\n    combiningPath.removeSelfFromZr = combiningPath.__oldRemoveSelfFromZr;\n    combiningPath.buildPath = combiningPath.__oldBuildPath;\n    combiningPath.childrenRef =\n        combiningPath.__combiningSubList =\n            combiningPath.__oldAddSelfToZr =\n                combiningPath.__oldRemoveSelfFromZr =\n                    combiningPath.__oldBuildPath = null;\n}\nfunction updateCombiningPathSubList(combiningPath, combiningSubList) {\n    if (combiningPath.__combiningSubList !== combiningSubList) {\n        combiningPathSubListAddRemoveWithZr(combiningPath, 'removeSelfFromZr');\n        combiningPath.__combiningSubList = combiningSubList;\n        if (combiningSubList) {\n            for (var i = 0; i < combiningSubList.length; i++) {\n                combiningSubList[i].parent = combiningPath;\n            }\n        }\n        combiningPathSubListAddRemoveWithZr(combiningPath, 'addSelfToZr');\n    }\n}\nfunction combiningAddSelfToZr(zr) {\n    this.__oldAddSelfToZr(zr);\n    combiningPathSubListAddRemoveWithZr(this, 'addSelfToZr');\n}\nfunction combiningPathSubListAddRemoveWithZr(path, method) {\n    var combiningSubList = path.__combiningSubList;\n    var zr = path.__zr;\n    if (combiningSubList && zr) {\n        for (var i = 0; i < combiningSubList.length; i++) {\n            var child = combiningSubList[i];\n            child[method](zr);\n        }\n    }\n}\nfunction combiningRemoveSelfFromZr(zr) {\n    this.__oldRemoveSelfFromZr(zr);\n    var combiningSubList = this.__combiningSubList;\n    for (var i = 0; i < combiningSubList.length; i++) {\n        var child = combiningSubList[i];\n        child.removeSelfFromZr(zr);\n    }\n}\nfunction combiningChildrenRef() {\n    return this.__combiningSubList;\n}\nexport function separate(fromPath, toPathList, animationOpts, copyPropsIfDivided) {\n    var toPathListLen = toPathList.length;\n    var fromPathList;\n    var dividingMethod = animationOpts ? animationOpts.dividingMethod : null;\n    var copyProps = false;\n    if (isCombiningPath(fromPath)) {\n        var fromCombiningSubList = fromPath.__combiningSubList;\n        if (fromCombiningSubList.length === toPathListLen) {\n            fromPathList = fromCombiningSubList;\n        }\n        else {\n            fromPathList = divideShape(fromPath, toPathListLen, dividingMethod);\n            copyProps = true;\n        }\n    }\n    else {\n        fromPathList = divideShape(fromPath, toPathListLen, dividingMethod);\n        copyProps = true;\n    }\n    assert(fromPathList.length === toPathListLen);\n    for (var i = 0; i < toPathListLen; i++) {\n        if (copyProps && copyPropsIfDivided) {\n            copyPropsIfDivided(fromPath, fromPathList[i], false);\n        }\n        morphPath(fromPathList[i], toPathList[i], animationOpts);\n    }\n    return {\n        fromIndividuals: fromPathList,\n        toIndividuals: toPathList,\n        count: toPathListLen\n    };\n}\nfunction divideShape(path, separateCount, dividingMethod) {\n    return dividingMethod === 'duplicate'\n        ? duplicateShape(path, separateCount)\n        : splitShape(path, separateCount);\n}\nfunction splitShape(path, separateCount) {\n    var resultPaths = [];\n    if (separateCount <= 0) {\n        return resultPaths;\n    }\n    if (separateCount === 1) {\n        return duplicateShape(path, separateCount);\n    }\n    if (path instanceof Rect) {\n        var toPathShape = path.shape;\n        var splitPropIdx = toPathShape.height > toPathShape.width ? 1 : 0;\n        var propWH = PROP_WH[splitPropIdx];\n        var propXY = PROP_XY[splitPropIdx];\n        var subWH = toPathShape[propWH] / separateCount;\n        var xyCurr = toPathShape[propXY];\n        for (var i = 0; i < separateCount; i++, xyCurr += subWH) {\n            var subShape = {\n                x: toPathShape.x,\n                y: toPathShape.y,\n                width: toPathShape.width,\n                height: toPathShape.height\n            };\n            subShape[propXY] = xyCurr;\n            subShape[propWH] = i < separateCount - 1\n                ? subWH\n                : toPathShape[propXY] + toPathShape[propWH] - xyCurr;\n            var splitted = new Rect({ shape: subShape });\n            resultPaths.push(splitted);\n        }\n    }\n    else if (path instanceof Sector) {\n        var toPathShape = path.shape;\n        var clockwise = toPathShape.clockwise;\n        var startAngle = toPathShape.startAngle;\n        var endAngle = toPathShape.endAngle;\n        var endAngleNormalized = normalizeRadian(startAngle, toPathShape.endAngle, clockwise);\n        var step = (endAngleNormalized - startAngle) / separateCount;\n        var angleCurr = startAngle;\n        for (var i = 0; i < separateCount; i++, angleCurr += step) {\n            var splitted = new Sector({\n                shape: {\n                    cx: toPathShape.cx,\n                    cy: toPathShape.cy,\n                    r: toPathShape.r,\n                    r0: toPathShape.r0,\n                    clockwise: clockwise,\n                    startAngle: angleCurr,\n                    endAngle: i === separateCount - 1 ? endAngle : angleCurr + step\n                }\n            });\n            resultPaths.push(splitted);\n        }\n    }\n    else {\n        return duplicateShape(path, separateCount);\n    }\n    return resultPaths;\n}\nfunction duplicateShape(path, separateCount) {\n    var resultPaths = [];\n    if (separateCount <= 0) {\n        return resultPaths;\n    }\n    var ctor = path.constructor;\n    for (var i = 0; i < separateCount; i++) {\n        var sub = new ctor({\n            shape: clone(path.shape)\n        });\n        resultPaths.push(sub);\n    }\n    return resultPaths;\n}\nfunction normalizeRadian(start, end, clockwise) {\n    return end + PI2 * (Math[clockwise ? 'ceil' : 'floor']((start - end) / PI2));\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { hasOwn, assert, isString, retrieve2, retrieve3, defaults, each, keys, isArrayLike, bind, isFunction, eqNaN, indexOf, clone } from 'zrender/lib/core/util';\nimport * as graphicUtil from '../../util/graphic';\nimport { setDefaultStateProxy, enableHoverEmphasis } from '../../util/states';\nimport * as labelStyleHelper from '../../label/labelStyle';\nimport { getDefaultLabel } from '../helper/labelHelper';\nimport createListFromArray from '../helper/createListFromArray';\nimport { getLayoutOnAxis } from '../../layout/barGrid';\nimport DataDiffer from '../../data/DataDiffer';\nimport SeriesModel from '../../model/Series';\nimport ChartView from '../../view/Chart';\nimport { createClipPath } from '../helper/createClipPathFromCoordSys';\nimport prepareCartesian2d from '../../coord/cartesian/prepareCustom';\nimport prepareGeo from '../../coord/geo/prepareCustom';\nimport prepareSingleAxis from '../../coord/single/prepareCustom';\nimport preparePolar from '../../coord/polar/prepareCustom';\nimport prepareCalendar from '../../coord/calendar/prepareCustom';\nimport { makeInner, normalizeToArray } from '../../util/model';\nimport { convertToEC4StyleForCustomSerise, isEC4CompatibleStyle, convertFromEC4CompatibleStyle, warnDeprecated } from '../../util/styleCompat';\nimport Transformable from 'zrender/lib/core/Transformable';\nimport { cloneValue } from 'zrender/lib/animation/Animator';\nimport { warn, throwError } from '../../util/log';\nimport { combine, isInAnyMorphing, morphPath, isCombiningPath, separate } from 'zrender/lib/tool/morphPath';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport { createOrUpdatePatternFromDecal } from '../../util/decal';\nvar inner = makeInner();\nvar TRANSFORM_PROPS = {\n  x: 1,\n  y: 1,\n  scaleX: 1,\n  scaleY: 1,\n  originX: 1,\n  originY: 1,\n  rotation: 1\n};\nvar transformPropNamesStr = keys(TRANSFORM_PROPS).join(', ');\n;\nvar STYLE_VISUAL_TYPE = {\n  color: 'fill',\n  borderColor: 'stroke'\n};\nvar NON_STYLE_VISUAL_PROPS = {\n  symbol: 1,\n  symbolSize: 1,\n  symbolKeepAspect: 1,\n  legendSymbol: 1,\n  visualMeta: 1,\n  liftZ: 1,\n  decal: 1\n};\nvar EMPHASIS = 'emphasis';\nvar NORMAL = 'normal';\nvar BLUR = 'blur';\nvar SELECT = 'select';\nvar STATES = [NORMAL, EMPHASIS, BLUR, SELECT];\nvar PATH_ITEM_STYLE = {\n  normal: ['itemStyle'],\n  emphasis: [EMPHASIS, 'itemStyle'],\n  blur: [BLUR, 'itemStyle'],\n  select: [SELECT, 'itemStyle']\n};\nvar PATH_LABEL = {\n  normal: ['label'],\n  emphasis: [EMPHASIS, 'label'],\n  blur: [BLUR, 'label'],\n  select: [SELECT, 'label']\n};\nvar GROUP_DIFF_PREFIX = 'e\\0\\0';\nvar attachedTxInfoTmp = {\n  normal: {},\n  emphasis: {},\n  blur: {},\n  select: {}\n};\nvar LEGACY_TRANSFORM_PROPS = {\n  position: ['x', 'y'],\n  scale: ['scaleX', 'scaleY'],\n  origin: ['originX', 'originY']\n};\nvar tmpTransformable = new Transformable();\nvar prepareCustoms = {\n  cartesian2d: prepareCartesian2d,\n  geo: prepareGeo,\n  singleAxis: prepareSingleAxis,\n  polar: preparePolar,\n  calendar: prepareCalendar\n};\n\nvar CustomSeriesModel = function (_super) {\n  __extends(CustomSeriesModel, _super);\n\n  function CustomSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CustomSeriesModel.type;\n    return _this;\n  }\n\n  CustomSeriesModel.prototype.optionUpdated = function () {\n    this.currentZLevel = this.get('zlevel', true);\n    this.currentZ = this.get('z', true);\n  };\n\n  CustomSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListFromArray(this.getSource(), this);\n  };\n\n  CustomSeriesModel.prototype.getDataParams = function (dataIndex, dataType, el) {\n    var params = _super.prototype.getDataParams.call(this, dataIndex, dataType);\n\n    el && (params.info = inner(el).info);\n    return params;\n  };\n\n  CustomSeriesModel.type = 'series.custom';\n  CustomSeriesModel.dependencies = ['grid', 'polar', 'geo', 'singleAxis', 'calendar'];\n  CustomSeriesModel.defaultOption = {\n    coordinateSystem: 'cartesian2d',\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    clip: false\n  };\n  return CustomSeriesModel;\n}(SeriesModel);\n\nvar CustomSeriesView = function (_super) {\n  __extends(CustomSeriesView, _super);\n\n  function CustomSeriesView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CustomSeriesView.type;\n    return _this;\n  }\n\n  CustomSeriesView.prototype.render = function (customSeries, ecModel, api, payload) {\n    var oldData = this._data;\n    var data = customSeries.getData();\n    var group = this.group;\n    var renderItem = makeRenderItem(customSeries, data, ecModel, api);\n    var transOpt = customSeries.__transientTransitionOpt;\n\n    if (transOpt && (transOpt.from == null || transOpt.to == null)) {\n      oldData && oldData.each(function (oldIdx) {\n        doRemoveEl(oldData.getItemGraphicEl(oldIdx), customSeries, group);\n      });\n      data.each(function (newIdx) {\n        createOrUpdateItem(api, null, newIdx, renderItem(newIdx, payload), customSeries, group, data, null);\n      });\n    } else {\n      var morphPreparation_1 = new MorphPreparation(customSeries, transOpt);\n      var diffMode = transOpt ? 'multiple' : 'oneToOne';\n      new DataDiffer(oldData ? oldData.getIndices() : [], data.getIndices(), createGetKey(oldData, diffMode, transOpt && transOpt.from), createGetKey(data, diffMode, transOpt && transOpt.to), null, diffMode).add(function (newIdx) {\n        createOrUpdateItem(api, null, newIdx, renderItem(newIdx, payload), customSeries, group, data, null);\n      }).remove(function (oldIdx) {\n        doRemoveEl(oldData.getItemGraphicEl(oldIdx), customSeries, group);\n      }).update(function (newIdx, oldIdx) {\n        morphPreparation_1.reset('oneToOne');\n        var oldEl = oldData.getItemGraphicEl(oldIdx);\n        morphPreparation_1.findAndAddFrom(oldEl);\n\n        if (morphPreparation_1.hasFrom()) {\n          removeElementDirectly(oldEl, group);\n          oldEl = null;\n        }\n\n        createOrUpdateItem(api, oldEl, newIdx, renderItem(newIdx, payload), customSeries, group, data, morphPreparation_1);\n        morphPreparation_1.applyMorphing();\n      }).updateManyToOne(function (newIdx, oldIndices) {\n        morphPreparation_1.reset('manyToOne');\n\n        for (var i = 0; i < oldIndices.length; i++) {\n          var oldEl = oldData.getItemGraphicEl(oldIndices[i]);\n          morphPreparation_1.findAndAddFrom(oldEl);\n          removeElementDirectly(oldEl, group);\n        }\n\n        createOrUpdateItem(api, null, newIdx, renderItem(newIdx, payload), customSeries, group, data, morphPreparation_1);\n        morphPreparation_1.applyMorphing();\n      }).updateOneToMany(function (newIndices, oldIdx) {\n        morphPreparation_1.reset('oneToMany');\n        var newLen = newIndices.length;\n        var oldEl = oldData.getItemGraphicEl(oldIdx);\n        morphPreparation_1.findAndAddFrom(oldEl);\n        removeElementDirectly(oldEl, group);\n\n        for (var i = 0; i < newLen; i++) {\n          createOrUpdateItem(api, null, newIndices[i], renderItem(newIndices[i], payload), customSeries, group, data, morphPreparation_1);\n        }\n\n        morphPreparation_1.applyMorphing();\n      }).execute();\n    }\n\n    var clipPath = customSeries.get('clip', true) ? createClipPath(customSeries.coordinateSystem, false, customSeries) : null;\n\n    if (clipPath) {\n      group.setClipPath(clipPath);\n    } else {\n      group.removeClipPath();\n    }\n\n    this._data = data;\n  };\n\n  CustomSeriesView.prototype.incrementalPrepareRender = function (customSeries, ecModel, api) {\n    this.group.removeAll();\n    this._data = null;\n  };\n\n  CustomSeriesView.prototype.incrementalRender = function (params, customSeries, ecModel, api, payload) {\n    var data = customSeries.getData();\n    var renderItem = makeRenderItem(customSeries, data, ecModel, api);\n\n    function setIncrementalAndHoverLayer(el) {\n      if (!el.isGroup) {\n        el.incremental = true;\n        el.ensureState('emphasis').hoverLayer = true;\n      }\n    }\n\n    for (var idx = params.start; idx < params.end; idx++) {\n      var el = createOrUpdateItem(null, null, idx, renderItem(idx, payload), customSeries, this.group, data, null);\n      el.traverse(setIncrementalAndHoverLayer);\n    }\n  };\n\n  CustomSeriesView.prototype.filterForExposedEvent = function (eventType, query, targetEl, packedEvent) {\n    var elementName = query.element;\n\n    if (elementName == null || targetEl.name === elementName) {\n      return true;\n    }\n\n    while ((targetEl = targetEl.__hostTarget || targetEl.parent) && targetEl !== this.group) {\n      if (targetEl.name === elementName) {\n        return true;\n      }\n    }\n\n    return false;\n  };\n\n  CustomSeriesView.type = 'custom';\n  return CustomSeriesView;\n}(ChartView);\n\nfunction createGetKey(data, diffMode, dimension) {\n  if (!data) {\n    return;\n  }\n\n  if (diffMode === 'oneToOne') {\n    return function (rawIdx, dataIndex) {\n      return data.getId(dataIndex);\n    };\n  }\n\n  var diffByDimName = data.getDimension(dimension);\n  var dimInfo = data.getDimensionInfo(diffByDimName);\n\n  if (!dimInfo) {\n    var errMsg = '';\n\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = dimension + \" is not a valid dimension.\";\n    }\n\n    throwError(errMsg);\n  }\n\n  var ordinalMeta = dimInfo.ordinalMeta;\n  return function (rawIdx, dataIndex) {\n    var key = data.get(diffByDimName, dataIndex);\n\n    if (ordinalMeta) {\n      key = ordinalMeta.categories[key];\n    }\n\n    return key == null || eqNaN(key) ? rawIdx + '' : '_ec_' + key;\n  };\n}\n\nfunction createEl(elOption) {\n  var graphicType = elOption.type;\n  var el;\n\n  if (graphicType === 'path') {\n    var shape = elOption.shape;\n    var pathRect = shape.width != null && shape.height != null ? {\n      x: shape.x || 0,\n      y: shape.y || 0,\n      width: shape.width,\n      height: shape.height\n    } : null;\n    var pathData = getPathData(shape);\n    el = graphicUtil.makePath(pathData, null, pathRect, shape.layout || 'center');\n    inner(el).customPathData = pathData;\n  } else if (graphicType === 'image') {\n    el = new graphicUtil.Image({});\n    inner(el).customImagePath = elOption.style.image;\n  } else if (graphicType === 'text') {\n    el = new graphicUtil.Text({});\n  } else if (graphicType === 'group') {\n    el = new graphicUtil.Group();\n  } else if (graphicType === 'compoundPath') {\n    throw new Error('\"compoundPath\" is not supported yet.');\n  } else {\n    var Clz = graphicUtil.getShapeClass(graphicType);\n\n    if (!Clz) {\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'graphic type \"' + graphicType + '\" can not be found.';\n      }\n\n      throwError(errMsg);\n    }\n\n    el = new Clz();\n  }\n\n  inner(el).customGraphicType = graphicType;\n  el.name = elOption.name;\n  el.z2EmphasisLift = 1;\n  el.z2SelectLift = 1;\n  return el;\n}\n\nfunction updateElNormal(api, el, isMorphTo, dataIndex, elOption, styleOpt, attachedTxInfo, seriesModel, isInit, isTextContent) {\n  var transFromProps = {};\n  var allPropsFinal = {};\n  var elDisplayable = el.isGroup ? null : el;\n  !isMorphTo && prepareShapeOrExtraTransitionFrom('shape', el, null, elOption, transFromProps, isInit);\n  prepareShapeOrExtraAllPropsFinal('shape', elOption, allPropsFinal);\n  !isMorphTo && prepareShapeOrExtraTransitionFrom('extra', el, null, elOption, transFromProps, isInit);\n  prepareShapeOrExtraAllPropsFinal('extra', elOption, allPropsFinal);\n  !isMorphTo && prepareTransformTransitionFrom(el, null, elOption, transFromProps, isInit);\n  prepareTransformAllPropsFinal(elOption, allPropsFinal);\n  var txCfgOpt = attachedTxInfo && attachedTxInfo.normal.cfg;\n\n  if (txCfgOpt) {\n    el.setTextConfig(txCfgOpt);\n  }\n\n  if (el.type === 'text' && styleOpt) {\n    var textOptionStyle = styleOpt;\n    hasOwn(textOptionStyle, 'textFill') && (textOptionStyle.fill = textOptionStyle.textFill);\n    hasOwn(textOptionStyle, 'textStroke') && (textOptionStyle.stroke = textOptionStyle.textStroke);\n  }\n\n  if (styleOpt) {\n    var decalPattern = void 0;\n    var decalObj = isPath(el) ? styleOpt.decal : null;\n\n    if (api && decalObj) {\n      decalObj.dirty = true;\n      decalPattern = createOrUpdatePatternFromDecal(decalObj, api);\n    }\n\n    styleOpt.__decalPattern = decalPattern;\n  }\n\n  !isMorphTo && prepareStyleTransitionFrom(el, null, elOption, styleOpt, transFromProps, isInit);\n\n  if (elDisplayable) {\n    hasOwn(elOption, 'invisible') && (elDisplayable.invisible = elOption.invisible);\n  }\n\n  if (!isMorphTo) {\n    applyPropsFinal(el, allPropsFinal, styleOpt);\n    applyTransitionFrom(el, dataIndex, elOption, seriesModel, transFromProps, isInit);\n  }\n\n  hasOwn(elOption, 'silent') && (el.silent = elOption.silent);\n  hasOwn(elOption, 'ignore') && (el.ignore = elOption.ignore);\n\n  if (!isTextContent) {\n    hasOwn(elOption, 'info') && (inner(el).info = elOption.info);\n  }\n\n  styleOpt ? el.dirty() : el.markRedraw();\n  return isMorphTo ? allPropsFinal : null;\n}\n\nfunction applyPropsFinal(el, allPropsFinal, styleOpt) {\n  var elDisplayable = el.isGroup ? null : el;\n\n  if (elDisplayable && styleOpt) {\n    var decalPattern = styleOpt.__decalPattern;\n    var originalDecalObj = void 0;\n\n    if (decalPattern) {\n      originalDecalObj = styleOpt.decal;\n      styleOpt.decal = decalPattern;\n    }\n\n    elDisplayable.useStyle(styleOpt);\n\n    if (decalPattern) {\n      styleOpt.decal = originalDecalObj;\n    }\n\n    var animators = elDisplayable.animators;\n\n    for (var i = 0; i < animators.length; i++) {\n      var animator = animators[i];\n\n      if (animator.targetName === 'style') {\n        animator.changeTarget(elDisplayable.style);\n      }\n    }\n  }\n\n  allPropsFinal && el.attr(allPropsFinal);\n}\n\nfunction applyTransitionFrom(el, dataIndex, elOption, seriesModel, transFromProps, isInit) {\n  if (transFromProps) {\n    var userDuring = elOption.during;\n    inner(el).userDuring = userDuring;\n    var cfgDuringCall = userDuring ? bind(duringCall, {\n      el: el,\n      userDuring: userDuring\n    }) : null;\n    var cfg = {\n      dataIndex: dataIndex,\n      isFrom: true,\n      during: cfgDuringCall\n    };\n    isInit ? graphicUtil.initProps(el, transFromProps, seriesModel, cfg) : graphicUtil.updateProps(el, transFromProps, seriesModel, cfg);\n  }\n}\n\nfunction prepareShapeOrExtraTransitionFrom(mainAttr, el, morphFromEl, elOption, transFromProps, isInit) {\n  var attrOpt = elOption[mainAttr];\n\n  if (!attrOpt) {\n    return;\n  }\n\n  var elPropsInAttr = el[mainAttr];\n  var transFromPropsInAttr;\n  var enterFrom = attrOpt.enterFrom;\n\n  if (isInit && enterFrom) {\n    !transFromPropsInAttr && (transFromPropsInAttr = transFromProps[mainAttr] = {});\n    var enterFromKeys = keys(enterFrom);\n\n    for (var i = 0; i < enterFromKeys.length; i++) {\n      var key = enterFromKeys[i];\n      transFromPropsInAttr[key] = enterFrom[key];\n    }\n  }\n\n  if (!isInit && elPropsInAttr && !(morphFromEl != null && mainAttr === 'shape')) {\n    if (attrOpt.transition) {\n      !transFromPropsInAttr && (transFromPropsInAttr = transFromProps[mainAttr] = {});\n      var transitionKeys = normalizeToArray(attrOpt.transition);\n\n      for (var i = 0; i < transitionKeys.length; i++) {\n        var key = transitionKeys[i];\n        var elVal = elPropsInAttr[key];\n\n        if (process.env.NODE_ENV !== 'production') {\n          checkNonStyleTansitionRefer(key, attrOpt[key], elVal);\n        }\n\n        transFromPropsInAttr[key] = elVal;\n      }\n    } else if (indexOf(elOption.transition, mainAttr) >= 0) {\n      !transFromPropsInAttr && (transFromPropsInAttr = transFromProps[mainAttr] = {});\n      var elPropsInAttrKeys = keys(elPropsInAttr);\n\n      for (var i = 0; i < elPropsInAttrKeys.length; i++) {\n        var key = elPropsInAttrKeys[i];\n        var elVal = elPropsInAttr[key];\n\n        if (isNonStyleTransitionEnabled(attrOpt[key], elVal)) {\n          transFromPropsInAttr[key] = elVal;\n        }\n      }\n    }\n  }\n\n  var leaveTo = attrOpt.leaveTo;\n\n  if (leaveTo) {\n    var leaveToProps = getOrCreateLeaveToPropsFromEl(el);\n    var leaveToPropsInAttr = leaveToProps[mainAttr] || (leaveToProps[mainAttr] = {});\n    var leaveToKeys = keys(leaveTo);\n\n    for (var i = 0; i < leaveToKeys.length; i++) {\n      var key = leaveToKeys[i];\n      leaveToPropsInAttr[key] = leaveTo[key];\n    }\n  }\n}\n\nfunction prepareShapeOrExtraAllPropsFinal(mainAttr, elOption, allProps) {\n  var attrOpt = elOption[mainAttr];\n\n  if (!attrOpt) {\n    return;\n  }\n\n  var allPropsInAttr = allProps[mainAttr] = {};\n  var keysInAttr = keys(attrOpt);\n\n  for (var i = 0; i < keysInAttr.length; i++) {\n    var key = keysInAttr[i];\n    allPropsInAttr[key] = cloneValue(attrOpt[key]);\n  }\n}\n\nfunction prepareTransformTransitionFrom(el, morphFromEl, elOption, transFromProps, isInit) {\n  var enterFrom = elOption.enterFrom;\n\n  if (isInit && enterFrom) {\n    var enterFromKeys = keys(enterFrom);\n\n    for (var i = 0; i < enterFromKeys.length; i++) {\n      var key = enterFromKeys[i];\n\n      if (process.env.NODE_ENV !== 'production') {\n        checkTransformPropRefer(key, 'el.enterFrom');\n      }\n\n      transFromProps[key] = enterFrom[key];\n    }\n  }\n\n  if (!isInit) {\n    if (morphFromEl) {\n      var fromTransformable = calcOldElLocalTransformBasedOnNewElParent(morphFromEl, el);\n      setTransformPropToTransitionFrom(transFromProps, 'x', fromTransformable);\n      setTransformPropToTransitionFrom(transFromProps, 'y', fromTransformable);\n      setTransformPropToTransitionFrom(transFromProps, 'scaleX', fromTransformable);\n      setTransformPropToTransitionFrom(transFromProps, 'scaleY', fromTransformable);\n      setTransformPropToTransitionFrom(transFromProps, 'originX', fromTransformable);\n      setTransformPropToTransitionFrom(transFromProps, 'originY', fromTransformable);\n      setTransformPropToTransitionFrom(transFromProps, 'rotation', fromTransformable);\n    } else if (elOption.transition) {\n      var transitionKeys = normalizeToArray(elOption.transition);\n\n      for (var i = 0; i < transitionKeys.length; i++) {\n        var key = transitionKeys[i];\n\n        if (key === 'style' || key === 'shape' || key === 'extra') {\n          continue;\n        }\n\n        var elVal = el[key];\n\n        if (process.env.NODE_ENV !== 'production') {\n          checkTransformPropRefer(key, 'el.transition');\n          checkNonStyleTansitionRefer(key, elOption[key], elVal);\n        }\n\n        transFromProps[key] = elVal;\n      }\n    } else {\n      setTransformPropToTransitionFrom(transFromProps, 'x', el);\n      setTransformPropToTransitionFrom(transFromProps, 'y', el);\n    }\n  }\n\n  var leaveTo = elOption.leaveTo;\n\n  if (leaveTo) {\n    var leaveToProps = getOrCreateLeaveToPropsFromEl(el);\n    var leaveToKeys = keys(leaveTo);\n\n    for (var i = 0; i < leaveToKeys.length; i++) {\n      var key = leaveToKeys[i];\n\n      if (process.env.NODE_ENV !== 'production') {\n        checkTransformPropRefer(key, 'el.leaveTo');\n      }\n\n      leaveToProps[key] = leaveTo[key];\n    }\n  }\n}\n\nfunction prepareTransformAllPropsFinal(elOption, allProps) {\n  setLagecyTransformProp(elOption, allProps, 'position');\n  setLagecyTransformProp(elOption, allProps, 'scale');\n  setLagecyTransformProp(elOption, allProps, 'origin');\n  setTransformProp(elOption, allProps, 'x');\n  setTransformProp(elOption, allProps, 'y');\n  setTransformProp(elOption, allProps, 'scaleX');\n  setTransformProp(elOption, allProps, 'scaleY');\n  setTransformProp(elOption, allProps, 'originX');\n  setTransformProp(elOption, allProps, 'originY');\n  setTransformProp(elOption, allProps, 'rotation');\n}\n\nfunction prepareStyleTransitionFrom(el, morphFromEl, elOption, styleOpt, transFromProps, isInit) {\n  if (!styleOpt) {\n    return;\n  }\n\n  var fromEl = morphFromEl || el;\n  var fromElStyle = fromEl.style;\n  var transFromStyleProps;\n  var enterFrom = styleOpt.enterFrom;\n\n  if (isInit && enterFrom) {\n    var enterFromKeys = keys(enterFrom);\n    !transFromStyleProps && (transFromStyleProps = transFromProps.style = {});\n\n    for (var i = 0; i < enterFromKeys.length; i++) {\n      var key = enterFromKeys[i];\n      transFromStyleProps[key] = enterFrom[key];\n    }\n  }\n\n  if (!isInit && fromElStyle) {\n    if (styleOpt.transition) {\n      var transitionKeys = normalizeToArray(styleOpt.transition);\n      !transFromStyleProps && (transFromStyleProps = transFromProps.style = {});\n\n      for (var i = 0; i < transitionKeys.length; i++) {\n        var key = transitionKeys[i];\n        var elVal = fromElStyle[key];\n        transFromStyleProps[key] = elVal;\n      }\n    } else if (el.getAnimationStyleProps && indexOf(elOption.transition, 'style') >= 0) {\n      var animationProps = el.getAnimationStyleProps();\n      var animationStyleProps = animationProps ? animationProps.style : null;\n\n      if (animationStyleProps) {\n        !transFromStyleProps && (transFromStyleProps = transFromProps.style = {});\n        var styleKeys = keys(styleOpt);\n\n        for (var i = 0; i < styleKeys.length; i++) {\n          var key = styleKeys[i];\n\n          if (animationStyleProps[key]) {\n            var elVal = fromElStyle[key];\n            transFromStyleProps[key] = elVal;\n          }\n        }\n      }\n    }\n  }\n\n  var leaveTo = styleOpt.leaveTo;\n\n  if (leaveTo) {\n    var leaveToKeys = keys(leaveTo);\n    var leaveToProps = getOrCreateLeaveToPropsFromEl(el);\n    var leaveToStyleProps = leaveToProps.style || (leaveToProps.style = {});\n\n    for (var i = 0; i < leaveToKeys.length; i++) {\n      var key = leaveToKeys[i];\n      leaveToStyleProps[key] = leaveTo[key];\n    }\n  }\n}\n\nfunction calcOldElLocalTransformBasedOnNewElParent(oldEl, newEl) {\n  if (!oldEl || oldEl === newEl || oldEl.parent === newEl.parent) {\n    return oldEl;\n  }\n\n  var tmpM = tmpTransformable.transform || (tmpTransformable.transform = matrix.identity([]));\n  var oldGlobalTransform = oldEl.getComputedTransform();\n  oldGlobalTransform ? matrix.copy(tmpM, oldGlobalTransform) : matrix.identity(tmpM);\n  var newParent = newEl.parent;\n\n  if (newParent) {\n    newParent.getComputedTransform();\n  }\n\n  tmpTransformable.originX = oldEl.originX;\n  tmpTransformable.originY = oldEl.originY;\n  tmpTransformable.parent = newParent;\n  tmpTransformable.decomposeTransform();\n  return tmpTransformable;\n}\n\nvar checkNonStyleTansitionRefer;\n\nif (process.env.NODE_ENV !== 'production') {\n  checkNonStyleTansitionRefer = function (propName, optVal, elVal) {\n    if (!isArrayLike(optVal)) {\n      assert(optVal != null && isFinite(optVal), 'Prop `' + propName + '` must refer to a finite number or ArrayLike for transition.');\n    } else {\n      assert(optVal !== elVal, 'Prop `' + propName + '` must use different Array object each time for transition.');\n    }\n  };\n}\n\nfunction isNonStyleTransitionEnabled(optVal, elVal) {\n  return !isArrayLike(optVal) ? optVal != null && isFinite(optVal) : optVal !== elVal;\n}\n\nvar checkTransformPropRefer;\n\nif (process.env.NODE_ENV !== 'production') {\n  checkTransformPropRefer = function (key, usedIn) {\n    assert(hasOwn(TRANSFORM_PROPS, key), 'Prop `' + key + '` is not a permitted in `' + usedIn + '`. ' + 'Only `' + keys(TRANSFORM_PROPS).join('`, `') + '` are permitted.');\n  };\n}\n\nfunction getOrCreateLeaveToPropsFromEl(el) {\n  var innerEl = inner(el);\n  return innerEl.leaveToProps || (innerEl.leaveToProps = {});\n}\n\nvar tmpDuringScope = {};\nvar customDuringAPI = {\n  setTransform: function (key, val) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(hasOwn(TRANSFORM_PROPS, key), 'Only ' + transformPropNamesStr + ' available in `setTransform`.');\n    }\n\n    tmpDuringScope.el[key] = val;\n    return this;\n  },\n  getTransform: function (key) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(hasOwn(TRANSFORM_PROPS, key), 'Only ' + transformPropNamesStr + ' available in `getTransform`.');\n    }\n\n    return tmpDuringScope.el[key];\n  },\n  setShape: function (key, val) {\n    if (process.env.NODE_ENV !== 'production') {\n      assertNotReserved(key);\n    }\n\n    var shape = tmpDuringScope.el.shape || (tmpDuringScope.el.shape = {});\n    shape[key] = val;\n    tmpDuringScope.isShapeDirty = true;\n    return this;\n  },\n  getShape: function (key) {\n    if (process.env.NODE_ENV !== 'production') {\n      assertNotReserved(key);\n    }\n\n    var shape = tmpDuringScope.el.shape;\n\n    if (shape) {\n      return shape[key];\n    }\n  },\n  setStyle: function (key, val) {\n    if (process.env.NODE_ENV !== 'production') {\n      assertNotReserved(key);\n    }\n\n    var style = tmpDuringScope.el.style;\n\n    if (style) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (eqNaN(val)) {\n          warn('style.' + key + ' must not be assigned with NaN.');\n        }\n      }\n\n      style[key] = val;\n      tmpDuringScope.isStyleDirty = true;\n    }\n\n    return this;\n  },\n  getStyle: function (key) {\n    if (process.env.NODE_ENV !== 'production') {\n      assertNotReserved(key);\n    }\n\n    var style = tmpDuringScope.el.style;\n\n    if (style) {\n      return style[key];\n    }\n  },\n  setExtra: function (key, val) {\n    if (process.env.NODE_ENV !== 'production') {\n      assertNotReserved(key);\n    }\n\n    var extra = tmpDuringScope.el.extra || (tmpDuringScope.el.extra = {});\n    extra[key] = val;\n    return this;\n  },\n  getExtra: function (key) {\n    if (process.env.NODE_ENV !== 'production') {\n      assertNotReserved(key);\n    }\n\n    var extra = tmpDuringScope.el.extra;\n\n    if (extra) {\n      return extra[key];\n    }\n  }\n};\n\nfunction assertNotReserved(key) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (key === 'transition' || key === 'enterFrom' || key === 'leaveTo') {\n      throw new Error('key must not be \"' + key + '\"');\n    }\n  }\n}\n\nfunction duringCall() {\n  var scope = this;\n  var el = scope.el;\n\n  if (!el) {\n    return;\n  }\n\n  var newstUserDuring = inner(el).userDuring;\n  var scopeUserDuring = scope.userDuring;\n\n  if (newstUserDuring !== scopeUserDuring) {\n    scope.el = scope.userDuring = null;\n    return;\n  }\n\n  tmpDuringScope.el = el;\n  tmpDuringScope.isShapeDirty = false;\n  tmpDuringScope.isStyleDirty = false;\n  scopeUserDuring(customDuringAPI);\n\n  if (tmpDuringScope.isShapeDirty && el.dirtyShape) {\n    el.dirtyShape();\n  }\n\n  if (tmpDuringScope.isStyleDirty && el.dirtyStyle) {\n    el.dirtyStyle();\n  }\n}\n\nfunction updateElOnState(state, el, elStateOpt, styleOpt, attachedTxInfo, isRoot, isTextContent) {\n  var elDisplayable = el.isGroup ? null : el;\n  var txCfgOpt = attachedTxInfo && attachedTxInfo[state].cfg;\n\n  if (elDisplayable) {\n    var stateObj = elDisplayable.ensureState(state);\n\n    if (styleOpt === false) {\n      var existingEmphasisState = elDisplayable.getState(state);\n\n      if (existingEmphasisState) {\n        existingEmphasisState.style = null;\n      }\n    } else {\n      stateObj.style = styleOpt || null;\n    }\n\n    if (txCfgOpt) {\n      stateObj.textConfig = txCfgOpt;\n    }\n\n    setDefaultStateProxy(elDisplayable);\n  }\n}\n\nfunction updateZ(el, elOption, seriesModel, attachedTxInfo) {\n  if (el.isGroup) {\n    return;\n  }\n\n  var elDisplayable = el;\n  var currentZ = seriesModel.currentZ;\n  var currentZLevel = seriesModel.currentZLevel;\n  elDisplayable.z = currentZ;\n  elDisplayable.zlevel = currentZLevel;\n  var optZ2 = elOption.z2;\n  optZ2 != null && (elDisplayable.z2 = optZ2 || 0);\n\n  for (var i = 0; i < STATES.length; i++) {\n    updateZForEachState(elDisplayable, elOption, STATES[i]);\n  }\n}\n\nfunction updateZForEachState(elDisplayable, elOption, state) {\n  var isNormal = state === NORMAL;\n  var elStateOpt = isNormal ? elOption : retrieveStateOption(elOption, state);\n  var optZ2 = elStateOpt ? elStateOpt.z2 : null;\n  var stateObj;\n\n  if (optZ2 != null) {\n    stateObj = isNormal ? elDisplayable : elDisplayable.ensureState(state);\n    stateObj.z2 = optZ2 || 0;\n  }\n}\n\nfunction setLagecyTransformProp(elOption, targetProps, legacyName, fromTransformable) {\n  var legacyArr = elOption[legacyName];\n  var xyName = LEGACY_TRANSFORM_PROPS[legacyName];\n\n  if (legacyArr) {\n    if (fromTransformable) {\n      targetProps[xyName[0]] = fromTransformable[xyName[0]];\n      targetProps[xyName[1]] = fromTransformable[xyName[1]];\n    } else {\n      targetProps[xyName[0]] = legacyArr[0];\n      targetProps[xyName[1]] = legacyArr[1];\n    }\n  }\n}\n\nfunction setTransformProp(elOption, allProps, name, fromTransformable) {\n  if (elOption[name] != null) {\n    allProps[name] = fromTransformable ? fromTransformable[name] : elOption[name];\n  }\n}\n\nfunction setTransformPropToTransitionFrom(transitionFrom, name, fromTransformable) {\n  if (fromTransformable) {\n    transitionFrom[name] = fromTransformable[name];\n  }\n}\n\nfunction makeRenderItem(customSeries, data, ecModel, api) {\n  var renderItem = customSeries.get('renderItem');\n  var coordSys = customSeries.coordinateSystem;\n  var prepareResult = {};\n\n  if (coordSys) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(renderItem, 'series.render is required.');\n      assert(coordSys.prepareCustoms || prepareCustoms[coordSys.type], 'This coordSys does not support custom series.');\n    }\n\n    prepareResult = coordSys.prepareCustoms ? coordSys.prepareCustoms(coordSys) : prepareCustoms[coordSys.type](coordSys);\n  }\n\n  var userAPI = defaults({\n    getWidth: api.getWidth,\n    getHeight: api.getHeight,\n    getZr: api.getZr,\n    getDevicePixelRatio: api.getDevicePixelRatio,\n    value: value,\n    style: style,\n    ordinalRawValue: ordinalRawValue,\n    styleEmphasis: styleEmphasis,\n    visual: visual,\n    barLayout: barLayout,\n    currentSeriesIndices: currentSeriesIndices,\n    font: font\n  }, prepareResult.api || {});\n  var userParams = {\n    context: {},\n    seriesId: customSeries.id,\n    seriesName: customSeries.name,\n    seriesIndex: customSeries.seriesIndex,\n    coordSys: prepareResult.coordSys,\n    dataInsideLength: data.count(),\n    encode: wrapEncodeDef(customSeries.getData())\n  };\n  var currDataIndexInside;\n  var currItemModel;\n  var currItemStyleModels = {};\n  var currLabelModels = {};\n  var seriesItemStyleModels = {};\n  var seriesLabelModels = {};\n\n  for (var i = 0; i < STATES.length; i++) {\n    var stateName = STATES[i];\n    seriesItemStyleModels[stateName] = customSeries.getModel(PATH_ITEM_STYLE[stateName]);\n    seriesLabelModels[stateName] = customSeries.getModel(PATH_LABEL[stateName]);\n  }\n\n  function getItemModel(dataIndexInside) {\n    return dataIndexInside === currDataIndexInside ? currItemModel || (currItemModel = data.getItemModel(dataIndexInside)) : data.getItemModel(dataIndexInside);\n  }\n\n  function getItemStyleModel(dataIndexInside, state) {\n    return !data.hasItemOption ? seriesItemStyleModels[state] : dataIndexInside === currDataIndexInside ? currItemStyleModels[state] || (currItemStyleModels[state] = getItemModel(dataIndexInside).getModel(PATH_ITEM_STYLE[state])) : getItemModel(dataIndexInside).getModel(PATH_ITEM_STYLE[state]);\n  }\n\n  function getLabelModel(dataIndexInside, state) {\n    return !data.hasItemOption ? seriesLabelModels[state] : dataIndexInside === currDataIndexInside ? currLabelModels[state] || (currLabelModels[state] = getItemModel(dataIndexInside).getModel(PATH_LABEL[state])) : getItemModel(dataIndexInside).getModel(PATH_LABEL[state]);\n  }\n\n  return function (dataIndexInside, payload) {\n    currDataIndexInside = dataIndexInside;\n    currItemModel = null;\n    currItemStyleModels = {};\n    currLabelModels = {};\n    return renderItem && renderItem(defaults({\n      dataIndexInside: dataIndexInside,\n      dataIndex: data.getRawIndex(dataIndexInside),\n      actionType: payload ? payload.type : null\n    }, userParams), userAPI);\n  };\n\n  function value(dim, dataIndexInside) {\n    dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n    return data.get(data.getDimension(dim || 0), dataIndexInside);\n  }\n\n  function ordinalRawValue(dim, dataIndexInside) {\n    dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n    var dimInfo = data.getDimensionInfo(dim || 0);\n\n    if (!dimInfo) {\n      return;\n    }\n\n    var val = data.get(dimInfo.name, dataIndexInside);\n    var ordinalMeta = dimInfo && dimInfo.ordinalMeta;\n    return ordinalMeta ? ordinalMeta.categories[val] : val;\n  }\n\n  function style(userProps, dataIndexInside) {\n    if (process.env.NODE_ENV !== 'production') {\n      warnDeprecated('api.style', 'Please write literal style directly instead.');\n    }\n\n    dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n    var style = data.getItemVisual(dataIndexInside, 'style');\n    var visualColor = style && style.fill;\n    var opacity = style && style.opacity;\n    var itemStyle = getItemStyleModel(dataIndexInside, NORMAL).getItemStyle();\n    visualColor != null && (itemStyle.fill = visualColor);\n    opacity != null && (itemStyle.opacity = opacity);\n    var opt = {\n      inheritColor: isString(visualColor) ? visualColor : '#000'\n    };\n    var labelModel = getLabelModel(dataIndexInside, NORMAL);\n    var textStyle = labelStyleHelper.createTextStyle(labelModel, null, opt, false, true);\n    textStyle.text = labelModel.getShallow('show') ? retrieve2(customSeries.getFormattedLabel(dataIndexInside, NORMAL), getDefaultLabel(data, dataIndexInside)) : null;\n    var textConfig = labelStyleHelper.createTextConfig(labelModel, opt, false);\n    preFetchFromExtra(userProps, itemStyle);\n    itemStyle = convertToEC4StyleForCustomSerise(itemStyle, textStyle, textConfig);\n    userProps && applyUserPropsAfter(itemStyle, userProps);\n    itemStyle.legacy = true;\n    return itemStyle;\n  }\n\n  function styleEmphasis(userProps, dataIndexInside) {\n    if (process.env.NODE_ENV !== 'production') {\n      warnDeprecated('api.styleEmphasis', 'Please write literal style directly instead.');\n    }\n\n    dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n    var itemStyle = getItemStyleModel(dataIndexInside, EMPHASIS).getItemStyle();\n    var labelModel = getLabelModel(dataIndexInside, EMPHASIS);\n    var textStyle = labelStyleHelper.createTextStyle(labelModel, null, null, true, true);\n    textStyle.text = labelModel.getShallow('show') ? retrieve3(customSeries.getFormattedLabel(dataIndexInside, EMPHASIS), customSeries.getFormattedLabel(dataIndexInside, NORMAL), getDefaultLabel(data, dataIndexInside)) : null;\n    var textConfig = labelStyleHelper.createTextConfig(labelModel, null, true);\n    preFetchFromExtra(userProps, itemStyle);\n    itemStyle = convertToEC4StyleForCustomSerise(itemStyle, textStyle, textConfig);\n    userProps && applyUserPropsAfter(itemStyle, userProps);\n    itemStyle.legacy = true;\n    return itemStyle;\n  }\n\n  function applyUserPropsAfter(itemStyle, extra) {\n    for (var key in extra) {\n      if (hasOwn(extra, key)) {\n        itemStyle[key] = extra[key];\n      }\n    }\n  }\n\n  function preFetchFromExtra(extra, itemStyle) {\n    if (extra) {\n      extra.textFill && (itemStyle.textFill = extra.textFill);\n      extra.textPosition && (itemStyle.textPosition = extra.textPosition);\n    }\n  }\n\n  function visual(visualType, dataIndexInside) {\n    dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n\n    if (hasOwn(STYLE_VISUAL_TYPE, visualType)) {\n      var style_1 = data.getItemVisual(dataIndexInside, 'style');\n      return style_1 ? style_1[STYLE_VISUAL_TYPE[visualType]] : null;\n    }\n\n    if (hasOwn(NON_STYLE_VISUAL_PROPS, visualType)) {\n      return data.getItemVisual(dataIndexInside, visualType);\n    }\n  }\n\n  function barLayout(opt) {\n    if (coordSys.type === 'cartesian2d') {\n      var baseAxis = coordSys.getBaseAxis();\n      return getLayoutOnAxis(defaults({\n        axis: baseAxis\n      }, opt));\n    }\n  }\n\n  function currentSeriesIndices() {\n    return ecModel.getCurrentSeriesIndices();\n  }\n\n  function font(opt) {\n    return labelStyleHelper.getFont(opt, ecModel);\n  }\n}\n\nfunction wrapEncodeDef(data) {\n  var encodeDef = {};\n  each(data.dimensions, function (dimName, dataDimIndex) {\n    var dimInfo = data.getDimensionInfo(dimName);\n\n    if (!dimInfo.isExtraCoord) {\n      var coordDim = dimInfo.coordDim;\n      var dataDims = encodeDef[coordDim] = encodeDef[coordDim] || [];\n      dataDims[dimInfo.coordDimIndex] = dataDimIndex;\n    }\n  });\n  return encodeDef;\n}\n\nfunction createOrUpdateItem(api, el, dataIndex, elOption, seriesModel, group, data, morphPreparation) {\n  if (!elOption) {\n    removeElementDirectly(el, group);\n    return;\n  }\n\n  el = doCreateOrUpdateEl(api, el, dataIndex, elOption, seriesModel, group, true, morphPreparation);\n  el && data.setItemGraphicEl(dataIndex, el);\n  enableHoverEmphasis(el, elOption.focus, elOption.blurScope);\n  return el;\n}\n\nfunction doCreateOrUpdateEl(api, el, dataIndex, elOption, seriesModel, group, isRoot, morphPreparation) {\n  if (process.env.NODE_ENV !== 'production') {\n    assert(elOption, 'should not have an null/undefined element setting');\n  }\n\n  var toBeReplacedIdx = -1;\n\n  if (el && doesElNeedRecreate(el, elOption)) {\n    toBeReplacedIdx = group.childrenRef().indexOf(el);\n    el = null;\n  }\n\n  var elIsNewCreated = !el;\n\n  if (!el) {\n    el = createEl(elOption);\n  } else {\n    el.clearStates();\n  }\n\n  var canMorph = inner(el).canMorph = elOption.morph && isPath(el);\n  var thisElIsMorphTo = canMorph && morphPreparation && morphPreparation.hasFrom();\n  var isInit = elIsNewCreated && !thisElIsMorphTo;\n  attachedTxInfoTmp.normal.cfg = attachedTxInfoTmp.normal.conOpt = attachedTxInfoTmp.emphasis.cfg = attachedTxInfoTmp.emphasis.conOpt = attachedTxInfoTmp.blur.cfg = attachedTxInfoTmp.blur.conOpt = attachedTxInfoTmp.select.cfg = attachedTxInfoTmp.select.conOpt = null;\n  attachedTxInfoTmp.isLegacy = false;\n  doCreateOrUpdateAttachedTx(el, dataIndex, elOption, seriesModel, isInit, attachedTxInfoTmp);\n  doCreateOrUpdateClipPath(el, dataIndex, elOption, seriesModel, isInit);\n  var pendingAllPropsFinal = updateElNormal(api, el, thisElIsMorphTo, dataIndex, elOption, elOption.style, attachedTxInfoTmp, seriesModel, isInit, false);\n\n  if (thisElIsMorphTo) {\n    morphPreparation.addTo(el, elOption, dataIndex, pendingAllPropsFinal);\n  }\n\n  for (var i = 0; i < STATES.length; i++) {\n    var stateName = STATES[i];\n\n    if (stateName !== NORMAL) {\n      var otherStateOpt = retrieveStateOption(elOption, stateName);\n      var otherStyleOpt = retrieveStyleOptionOnState(elOption, otherStateOpt, stateName);\n      updateElOnState(stateName, el, otherStateOpt, otherStyleOpt, attachedTxInfoTmp, isRoot, false);\n    }\n  }\n\n  updateZ(el, elOption, seriesModel, attachedTxInfoTmp);\n\n  if (elOption.type === 'group') {\n    mergeChildren(api, el, dataIndex, elOption, seriesModel, morphPreparation);\n  }\n\n  if (toBeReplacedIdx >= 0) {\n    group.replaceAt(el, toBeReplacedIdx);\n  } else {\n    group.add(el);\n  }\n\n  return el;\n}\n\nfunction doesElNeedRecreate(el, elOption) {\n  var elInner = inner(el);\n  var elOptionType = elOption.type;\n  var elOptionShape = elOption.shape;\n  var elOptionStyle = elOption.style;\n  return elOptionType != null && elOptionType !== elInner.customGraphicType || elOptionType === 'path' && hasOwnPathData(elOptionShape) && getPathData(elOptionShape) !== elInner.customPathData || elOptionType === 'image' && hasOwn(elOptionStyle, 'image') && elOptionStyle.image !== elInner.customImagePath;\n}\n\nfunction doCreateOrUpdateClipPath(el, dataIndex, elOption, seriesModel, isInit) {\n  var clipPathOpt = elOption.clipPath;\n\n  if (clipPathOpt === false) {\n    if (el && el.getClipPath()) {\n      el.removeClipPath();\n    }\n  } else if (clipPathOpt) {\n    var clipPath = el.getClipPath();\n\n    if (clipPath && doesElNeedRecreate(clipPath, clipPathOpt)) {\n      clipPath = null;\n    }\n\n    if (!clipPath) {\n      clipPath = createEl(clipPathOpt);\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(clipPath instanceof graphicUtil.Path, 'Only any type of `path` can be used in `clipPath`, rather than ' + clipPath.type + '.');\n      }\n\n      el.setClipPath(clipPath);\n    }\n\n    updateElNormal(null, clipPath, null, dataIndex, clipPathOpt, null, null, seriesModel, isInit, false);\n  }\n}\n\nfunction doCreateOrUpdateAttachedTx(el, dataIndex, elOption, seriesModel, isInit, attachedTxInfo) {\n  if (el.isGroup) {\n    return;\n  }\n\n  processTxInfo(elOption, null, attachedTxInfo);\n  processTxInfo(elOption, EMPHASIS, attachedTxInfo);\n  var txConOptNormal = attachedTxInfo.normal.conOpt;\n  var txConOptEmphasis = attachedTxInfo.emphasis.conOpt;\n  var txConOptBlur = attachedTxInfo.blur.conOpt;\n  var txConOptSelect = attachedTxInfo.select.conOpt;\n\n  if (txConOptNormal != null || txConOptEmphasis != null || txConOptSelect != null || txConOptBlur != null) {\n    var textContent = el.getTextContent();\n\n    if (txConOptNormal === false) {\n      textContent && el.removeTextContent();\n    } else {\n      txConOptNormal = attachedTxInfo.normal.conOpt = txConOptNormal || {\n        type: 'text'\n      };\n\n      if (!textContent) {\n        textContent = createEl(txConOptNormal);\n        el.setTextContent(textContent);\n      } else {\n        textContent.clearStates();\n      }\n\n      var txConStlOptNormal = txConOptNormal && txConOptNormal.style;\n      updateElNormal(null, textContent, null, dataIndex, txConOptNormal, txConStlOptNormal, null, seriesModel, isInit, true);\n\n      for (var i = 0; i < STATES.length; i++) {\n        var stateName = STATES[i];\n\n        if (stateName !== NORMAL) {\n          var txConOptOtherState = attachedTxInfo[stateName].conOpt;\n          updateElOnState(stateName, textContent, txConOptOtherState, retrieveStyleOptionOnState(txConOptNormal, txConOptOtherState, stateName), null, false, true);\n        }\n      }\n\n      txConStlOptNormal ? textContent.dirty() : textContent.markRedraw();\n    }\n  }\n}\n\nfunction processTxInfo(elOption, state, attachedTxInfo) {\n  var stateOpt = !state ? elOption : retrieveStateOption(elOption, state);\n  var styleOpt = !state ? elOption.style : retrieveStyleOptionOnState(elOption, stateOpt, EMPHASIS);\n  var elType = elOption.type;\n  var txCfg = stateOpt ? stateOpt.textConfig : null;\n  var txConOptNormal = elOption.textContent;\n  var txConOpt = !txConOptNormal ? null : !state ? txConOptNormal : retrieveStateOption(txConOptNormal, state);\n\n  if (styleOpt && (attachedTxInfo.isLegacy || isEC4CompatibleStyle(styleOpt, elType, !!txCfg, !!txConOpt))) {\n    attachedTxInfo.isLegacy = true;\n    var convertResult = convertFromEC4CompatibleStyle(styleOpt, elType, !state);\n\n    if (!txCfg && convertResult.textConfig) {\n      txCfg = convertResult.textConfig;\n    }\n\n    if (!txConOpt && convertResult.textContent) {\n      txConOpt = convertResult.textContent;\n    }\n  }\n\n  if (!state && txConOpt) {\n    var txConOptNormal_1 = txConOpt;\n    !txConOptNormal_1.type && (txConOptNormal_1.type = 'text');\n\n    if (process.env.NODE_ENV !== 'production') {\n      txConOptNormal_1.type !== 'text' && assert(txConOptNormal_1.type === 'text', 'textContent.type must be \"text\"');\n    }\n  }\n\n  var info = !state ? attachedTxInfo.normal : attachedTxInfo[state];\n  info.cfg = txCfg;\n  info.conOpt = txConOpt;\n}\n\nfunction retrieveStateOption(elOption, state) {\n  return !state ? elOption : elOption ? elOption[state] : null;\n}\n\nfunction retrieveStyleOptionOnState(stateOptionNormal, stateOption, state) {\n  var style = stateOption && stateOption.style;\n\n  if (style == null && state === EMPHASIS && stateOptionNormal) {\n    style = stateOptionNormal.styleEmphasis;\n  }\n\n  return style;\n}\n\nfunction mergeChildren(api, el, dataIndex, elOption, seriesModel, morphPreparation) {\n  var newChildren = elOption.children;\n  var newLen = newChildren ? newChildren.length : 0;\n  var mergeChildren = elOption.$mergeChildren;\n  var byName = mergeChildren === 'byName' || elOption.diffChildrenByName;\n  var notMerge = mergeChildren === false;\n\n  if (!newLen && !byName && !notMerge) {\n    return;\n  }\n\n  if (byName) {\n    diffGroupChildren({\n      api: api,\n      oldChildren: el.children() || [],\n      newChildren: newChildren || [],\n      dataIndex: dataIndex,\n      seriesModel: seriesModel,\n      group: el,\n      morphPreparation: morphPreparation\n    });\n    return;\n  }\n\n  notMerge && el.removeAll();\n  var index = 0;\n\n  for (; index < newLen; index++) {\n    newChildren[index] && doCreateOrUpdateEl(api, el.childAt(index), dataIndex, newChildren[index], seriesModel, el, false, morphPreparation);\n  }\n\n  for (var i = el.childCount() - 1; i >= index; i--) {\n    doRemoveEl(el.childAt(i), seriesModel, el);\n  }\n}\n\nfunction diffGroupChildren(context) {\n  new DataDiffer(context.oldChildren, context.newChildren, getKey, getKey, context).add(processAddUpdate).update(processAddUpdate).remove(processRemove).execute();\n}\n\nfunction getKey(item, idx) {\n  var name = item && item.name;\n  return name != null ? name : GROUP_DIFF_PREFIX + idx;\n}\n\nfunction processAddUpdate(newIndex, oldIndex) {\n  var context = this.context;\n  var childOption = newIndex != null ? context.newChildren[newIndex] : null;\n  var child = oldIndex != null ? context.oldChildren[oldIndex] : null;\n  doCreateOrUpdateEl(context.api, child, context.dataIndex, childOption, context.seriesModel, context.group, false, context.morphPreparation);\n}\n\nfunction processRemove(oldIndex) {\n  var context = this.context;\n  var child = context.oldChildren[oldIndex];\n  doRemoveEl(child, context.seriesModel, context.group);\n}\n\nfunction doRemoveEl(el, seriesModel, group) {\n  if (el) {\n    var leaveToProps = inner(el).leaveToProps;\n    leaveToProps ? graphicUtil.updateProps(el, leaveToProps, seriesModel, {\n      cb: function () {\n        group.remove(el);\n      }\n    }) : group.remove(el);\n  }\n}\n\nfunction getPathData(shape) {\n  return shape && (shape.pathData || shape.d);\n}\n\nfunction hasOwnPathData(shape) {\n  return shape && (hasOwn(shape, 'pathData') || hasOwn(shape, 'd'));\n}\n\nfunction isPath(el) {\n  return el && el instanceof graphicUtil.Path;\n}\n\nfunction removeElementDirectly(el, group) {\n  el && group.remove(el);\n}\n\nvar MorphPreparation = function () {\n  function MorphPreparation(seriesModel, transOpt) {\n    this._fromList = [];\n    this._toList = [];\n    this._toElOptionList = [];\n    this._allPropsFinalList = [];\n    this._toDataIndices = [];\n    this._morphConfigList = [];\n    this._seriesModel = seriesModel;\n    this._transOpt = transOpt;\n  }\n\n  MorphPreparation.prototype.hasFrom = function () {\n    return !!this._fromList.length;\n  };\n\n  MorphPreparation.prototype.findAndAddFrom = function (el) {\n    if (!el) {\n      return;\n    }\n\n    if (inner(el).canMorph) {\n      this._fromList.push(el);\n    }\n\n    if (el.isGroup) {\n      var children = el.childrenRef();\n\n      for (var i = 0; i < children.length; i++) {\n        this.findAndAddFrom(children[i]);\n      }\n    }\n  };\n\n  MorphPreparation.prototype.addTo = function (path, elOption, dataIndex, allPropsFinal) {\n    if (path) {\n      this._toList.push(path);\n\n      this._toElOptionList.push(elOption);\n\n      this._toDataIndices.push(dataIndex);\n\n      this._allPropsFinalList.push(allPropsFinal);\n    }\n  };\n\n  MorphPreparation.prototype.applyMorphing = function () {\n    var type = this._type;\n    var fromList = this._fromList;\n    var toList = this._toList;\n    var toListLen = toList.length;\n    var fromListLen = fromList.length;\n\n    if (!fromListLen || !toListLen) {\n      return;\n    }\n\n    if (type === 'oneToOne') {\n      for (var toIdx = 0; toIdx < toListLen; toIdx++) {\n        this._oneToOneForSingleTo(toIdx, toIdx);\n      }\n    } else if (type === 'manyToOne') {\n      var fromSingleSegLen = Math.max(1, Math.floor(fromListLen / toListLen));\n\n      for (var toIdx = 0, fromIdxStart = 0; toIdx < toListLen; toIdx++, fromIdxStart += fromSingleSegLen) {\n        var fromCount = toIdx + 1 >= toListLen ? fromListLen - fromIdxStart : fromSingleSegLen;\n\n        this._manyToOneForSingleTo(toIdx, fromIdxStart >= fromListLen ? null : fromIdxStart, fromCount);\n      }\n    } else if (type === 'oneToMany') {\n      var toSingleSegLen = Math.max(1, Math.floor(toListLen / fromListLen));\n\n      for (var toIdxStart = 0, fromIdx = 0; toIdxStart < toListLen; toIdxStart += toSingleSegLen, fromIdx++) {\n        var toCount = toIdxStart + toSingleSegLen >= toListLen ? toListLen - toIdxStart : toSingleSegLen;\n\n        this._oneToManyForSingleFrom(toIdxStart, toCount, fromIdx >= fromListLen ? null : fromIdx);\n      }\n    }\n  };\n\n  MorphPreparation.prototype._oneToOneForSingleTo = function (toIdx, fromIdx) {\n    var to = this._toList[toIdx];\n    var toElOption = this._toElOptionList[toIdx];\n    var toDataIndex = this._toDataIndices[toIdx];\n    var allPropsFinal = this._allPropsFinalList[toIdx];\n    var from = this._fromList[fromIdx];\n\n    var elAnimationConfig = this._getOrCreateMorphConfig(toDataIndex);\n\n    var morphDuration = elAnimationConfig.duration;\n\n    if (from && isCombiningPath(from)) {\n      applyPropsFinal(to, allPropsFinal, toElOption.style);\n\n      if (morphDuration) {\n        var combineResult = combine([from], to, elAnimationConfig, copyPropsWhenDivided);\n\n        this._processResultIndividuals(combineResult, toIdx, null);\n      }\n    } else {\n      var morphFrom = morphDuration && from && (from !== to || isInAnyMorphing(from)) ? from : null;\n      var transFromProps = {};\n      prepareShapeOrExtraTransitionFrom('shape', to, morphFrom, toElOption, transFromProps, false);\n      prepareShapeOrExtraTransitionFrom('extra', to, morphFrom, toElOption, transFromProps, false);\n      prepareTransformTransitionFrom(to, morphFrom, toElOption, transFromProps, false);\n      prepareStyleTransitionFrom(to, morphFrom, toElOption, toElOption.style, transFromProps, false);\n      applyPropsFinal(to, allPropsFinal, toElOption.style);\n\n      if (morphFrom) {\n        morphPath(morphFrom, to, elAnimationConfig);\n      }\n\n      applyTransitionFrom(to, toDataIndex, toElOption, this._seriesModel, transFromProps, false);\n    }\n  };\n\n  MorphPreparation.prototype._manyToOneForSingleTo = function (toIdx, fromIdxStart, fromCount) {\n    var to = this._toList[toIdx];\n    var toElOption = this._toElOptionList[toIdx];\n    var allPropsFinal = this._allPropsFinalList[toIdx];\n    applyPropsFinal(to, allPropsFinal, toElOption.style);\n\n    var elAnimationConfig = this._getOrCreateMorphConfig(this._toDataIndices[toIdx]);\n\n    if (elAnimationConfig.duration && fromIdxStart != null) {\n      var combineFromList = [];\n\n      for (var fromIdx = fromIdxStart; fromIdx < fromCount; fromIdx++) {\n        combineFromList.push(this._fromList[fromIdx]);\n      }\n\n      var combineResult = combine(combineFromList, to, elAnimationConfig, copyPropsWhenDivided);\n\n      this._processResultIndividuals(combineResult, toIdx, null);\n    }\n  };\n\n  MorphPreparation.prototype._oneToManyForSingleFrom = function (toIdxStart, toCount, fromIdx) {\n    var from = fromIdx == null ? null : this._fromList[fromIdx];\n    var toList = this._toList;\n    var separateToList = [];\n\n    for (var toIdx = toIdxStart; toIdx < toCount; toIdx++) {\n      var to = toList[toIdx];\n      applyPropsFinal(to, this._allPropsFinalList[toIdx], this._toElOptionList[toIdx].style);\n      separateToList.push(to);\n    }\n\n    var elAnimationConfig = this._getOrCreateMorphConfig(this._toDataIndices[toIdxStart]);\n\n    if (elAnimationConfig.duration && from) {\n      var separateResult = separate(from, separateToList, elAnimationConfig, copyPropsWhenDivided);\n\n      this._processResultIndividuals(separateResult, toIdxStart, toCount);\n    }\n  };\n\n  MorphPreparation.prototype._processResultIndividuals = function (combineSeparateResult, toIdxStart, toCount) {\n    var isSeparate = toCount != null;\n\n    for (var i = 0; i < combineSeparateResult.count; i++) {\n      var fromIndividual = combineSeparateResult.fromIndividuals[i];\n      var toIndividual = combineSeparateResult.toIndividuals[i];\n      var toIdx = toIdxStart + (isSeparate ? i : 0);\n      var toElOption = this._toElOptionList[toIdx];\n      var dataIndex = this._toDataIndices[toIdx];\n      var transFromProps = {};\n      prepareTransformTransitionFrom(toIndividual, fromIndividual, toElOption, transFromProps, false);\n      prepareStyleTransitionFrom(toIndividual, fromIndividual, toElOption, toElOption.style, transFromProps, false);\n      applyTransitionFrom(toIndividual, dataIndex, toElOption, this._seriesModel, transFromProps, false);\n    }\n  };\n\n  MorphPreparation.prototype._getOrCreateMorphConfig = function (dataIndex) {\n    var morphConfigList = this._morphConfigList;\n    var config = morphConfigList[dataIndex];\n\n    if (config) {\n      return config;\n    }\n\n    var duration;\n    var easing;\n    var delay;\n    var seriesModel = this._seriesModel;\n    var transOpt = this._transOpt;\n\n    if (seriesModel.isAnimationEnabled()) {\n      var animationPayload = void 0;\n\n      if (seriesModel && seriesModel.ecModel) {\n        var updatePayload = seriesModel.ecModel.getUpdatePayload();\n        animationPayload = updatePayload && updatePayload.animation;\n      }\n\n      if (animationPayload) {\n        duration = animationPayload.duration || 0;\n        easing = animationPayload.easing || 'cubicOut';\n        delay = animationPayload.delay || 0;\n      } else {\n        easing = seriesModel.get('animationEasingUpdate');\n        var delayOption = seriesModel.get('animationDelayUpdate');\n        delay = isFunction(delayOption) ? delayOption(dataIndex) : delayOption;\n        var durationOption = seriesModel.get('animationDurationUpdate');\n        duration = isFunction(durationOption) ? durationOption(dataIndex) : durationOption;\n      }\n    }\n\n    config = {\n      duration: duration || 0,\n      delay: delay,\n      easing: easing,\n      dividingMethod: transOpt ? transOpt.dividingMethod : null\n    };\n    morphConfigList[dataIndex] = config;\n    return config;\n  };\n\n  MorphPreparation.prototype.reset = function (type) {\n    this._type = type;\n    this._fromList.length = this._toList.length = this._toElOptionList.length = this._allPropsFinalList.length = this._toDataIndices.length = 0;\n  };\n\n  return MorphPreparation;\n}();\n\nfunction copyPropsWhenDivided(srcPath, tarPath, willClone) {\n  tarPath.style = willClone ? clone(srcPath.style) : srcPath.style;\n  tarPath.zlevel = srcPath.zlevel;\n  tarPath.z = srcPath.z;\n  tarPath.z2 = srcPath.z2;\n}\n\nexport function install(registers) {\n  registers.registerChartView(CustomSeriesView);\n  registers.registerSeriesModel(CustomSeriesModel);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport * as axisPointerModelHelper from './modelHelper';\nimport * as eventTool from 'zrender/lib/core/event';\nimport * as throttleUtil from '../../util/throttle';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\nvar clone = zrUtil.clone;\nvar bind = zrUtil.bind;\n\nvar BaseAxisPointer = function () {\n  function BaseAxisPointer() {\n    this._dragging = false;\n    this.animationThreshold = 15;\n  }\n\n  BaseAxisPointer.prototype.render = function (axisModel, axisPointerModel, api, forceRender) {\n    var value = axisPointerModel.get('value');\n    var status = axisPointerModel.get('status');\n    this._axisModel = axisModel;\n    this._axisPointerModel = axisPointerModel;\n    this._api = api;\n\n    if (!forceRender && this._lastValue === value && this._lastStatus === status) {\n      return;\n    }\n\n    this._lastValue = value;\n    this._lastStatus = status;\n    var group = this._group;\n    var handle = this._handle;\n\n    if (!status || status === 'hide') {\n      group && group.hide();\n      handle && handle.hide();\n      return;\n    }\n\n    group && group.show();\n    handle && handle.show();\n    var elOption = {};\n    this.makeElOption(elOption, value, axisModel, axisPointerModel, api);\n    var graphicKey = elOption.graphicKey;\n\n    if (graphicKey !== this._lastGraphicKey) {\n      this.clear(api);\n    }\n\n    this._lastGraphicKey = graphicKey;\n    var moveAnimation = this._moveAnimation = this.determineAnimation(axisModel, axisPointerModel);\n\n    if (!group) {\n      group = this._group = new graphic.Group();\n      this.createPointerEl(group, elOption, axisModel, axisPointerModel);\n      this.createLabelEl(group, elOption, axisModel, axisPointerModel);\n      api.getZr().add(group);\n    } else {\n      var doUpdateProps = zrUtil.curry(updateProps, axisPointerModel, moveAnimation);\n      this.updatePointerEl(group, elOption, doUpdateProps);\n      this.updateLabelEl(group, elOption, doUpdateProps, axisPointerModel);\n    }\n\n    updateMandatoryProps(group, axisPointerModel, true);\n\n    this._renderHandle(value);\n  };\n\n  BaseAxisPointer.prototype.remove = function (api) {\n    this.clear(api);\n  };\n\n  BaseAxisPointer.prototype.dispose = function (api) {\n    this.clear(api);\n  };\n\n  BaseAxisPointer.prototype.determineAnimation = function (axisModel, axisPointerModel) {\n    var animation = axisPointerModel.get('animation');\n    var axis = axisModel.axis;\n    var isCategoryAxis = axis.type === 'category';\n    var useSnap = axisPointerModel.get('snap');\n\n    if (!useSnap && !isCategoryAxis) {\n      return false;\n    }\n\n    if (animation === 'auto' || animation == null) {\n      var animationThreshold = this.animationThreshold;\n\n      if (isCategoryAxis && axis.getBandWidth() > animationThreshold) {\n        return true;\n      }\n\n      if (useSnap) {\n        var seriesDataCount = axisPointerModelHelper.getAxisInfo(axisModel).seriesDataCount;\n        var axisExtent = axis.getExtent();\n        return Math.abs(axisExtent[0] - axisExtent[1]) / seriesDataCount > animationThreshold;\n      }\n\n      return false;\n    }\n\n    return animation === true;\n  };\n\n  BaseAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {};\n\n  BaseAxisPointer.prototype.createPointerEl = function (group, elOption, axisModel, axisPointerModel) {\n    var pointerOption = elOption.pointer;\n\n    if (pointerOption) {\n      var pointerEl = inner(group).pointerEl = new graphic[pointerOption.type](clone(elOption.pointer));\n      group.add(pointerEl);\n    }\n  };\n\n  BaseAxisPointer.prototype.createLabelEl = function (group, elOption, axisModel, axisPointerModel) {\n    if (elOption.label) {\n      var labelEl = inner(group).labelEl = new graphic.Text(clone(elOption.label));\n      group.add(labelEl);\n      updateLabelShowHide(labelEl, axisPointerModel);\n    }\n  };\n\n  BaseAxisPointer.prototype.updatePointerEl = function (group, elOption, updateProps) {\n    var pointerEl = inner(group).pointerEl;\n\n    if (pointerEl && elOption.pointer) {\n      pointerEl.setStyle(elOption.pointer.style);\n      updateProps(pointerEl, {\n        shape: elOption.pointer.shape\n      });\n    }\n  };\n\n  BaseAxisPointer.prototype.updateLabelEl = function (group, elOption, updateProps, axisPointerModel) {\n    var labelEl = inner(group).labelEl;\n\n    if (labelEl) {\n      labelEl.setStyle(elOption.label.style);\n      updateProps(labelEl, {\n        x: elOption.label.x,\n        y: elOption.label.y\n      });\n      updateLabelShowHide(labelEl, axisPointerModel);\n    }\n  };\n\n  BaseAxisPointer.prototype._renderHandle = function (value) {\n    if (this._dragging || !this.updateHandleTransform) {\n      return;\n    }\n\n    var axisPointerModel = this._axisPointerModel;\n\n    var zr = this._api.getZr();\n\n    var handle = this._handle;\n    var handleModel = axisPointerModel.getModel('handle');\n    var status = axisPointerModel.get('status');\n\n    if (!handleModel.get('show') || !status || status === 'hide') {\n      handle && zr.remove(handle);\n      this._handle = null;\n      return;\n    }\n\n    var isInit;\n\n    if (!this._handle) {\n      isInit = true;\n      handle = this._handle = graphic.createIcon(handleModel.get('icon'), {\n        cursor: 'move',\n        draggable: true,\n        onmousemove: function (e) {\n          eventTool.stop(e.event);\n        },\n        onmousedown: bind(this._onHandleDragMove, this, 0, 0),\n        drift: bind(this._onHandleDragMove, this),\n        ondragend: bind(this._onHandleDragEnd, this)\n      });\n      zr.add(handle);\n    }\n\n    updateMandatoryProps(handle, axisPointerModel, false);\n    handle.setStyle(handleModel.getItemStyle(null, ['color', 'borderColor', 'borderWidth', 'opacity', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY']));\n    var handleSize = handleModel.get('size');\n\n    if (!zrUtil.isArray(handleSize)) {\n      handleSize = [handleSize, handleSize];\n    }\n\n    handle.scaleX = handleSize[0] / 2;\n    handle.scaleY = handleSize[1] / 2;\n    throttleUtil.createOrUpdate(this, '_doDispatchAxisPointer', handleModel.get('throttle') || 0, 'fixRate');\n\n    this._moveHandleToValue(value, isInit);\n  };\n\n  BaseAxisPointer.prototype._moveHandleToValue = function (value, isInit) {\n    updateProps(this._axisPointerModel, !isInit && this._moveAnimation, this._handle, getHandleTransProps(this.getHandleTransform(value, this._axisModel, this._axisPointerModel)));\n  };\n\n  BaseAxisPointer.prototype._onHandleDragMove = function (dx, dy) {\n    var handle = this._handle;\n\n    if (!handle) {\n      return;\n    }\n\n    this._dragging = true;\n    var trans = this.updateHandleTransform(getHandleTransProps(handle), [dx, dy], this._axisModel, this._axisPointerModel);\n    this._payloadInfo = trans;\n    handle.stopAnimation();\n    handle.attr(getHandleTransProps(trans));\n    inner(handle).lastProp = null;\n\n    this._doDispatchAxisPointer();\n  };\n\n  BaseAxisPointer.prototype._doDispatchAxisPointer = function () {\n    var handle = this._handle;\n\n    if (!handle) {\n      return;\n    }\n\n    var payloadInfo = this._payloadInfo;\n    var axisModel = this._axisModel;\n\n    this._api.dispatchAction({\n      type: 'updateAxisPointer',\n      x: payloadInfo.cursorPoint[0],\n      y: payloadInfo.cursorPoint[1],\n      tooltipOption: payloadInfo.tooltipOption,\n      axesInfo: [{\n        axisDim: axisModel.axis.dim,\n        axisIndex: axisModel.componentIndex\n      }]\n    });\n  };\n\n  BaseAxisPointer.prototype._onHandleDragEnd = function () {\n    this._dragging = false;\n    var handle = this._handle;\n\n    if (!handle) {\n      return;\n    }\n\n    var value = this._axisPointerModel.get('value');\n\n    this._moveHandleToValue(value);\n\n    this._api.dispatchAction({\n      type: 'hideTip'\n    });\n  };\n\n  BaseAxisPointer.prototype.clear = function (api) {\n    this._lastValue = null;\n    this._lastStatus = null;\n    var zr = api.getZr();\n    var group = this._group;\n    var handle = this._handle;\n\n    if (zr && group) {\n      this._lastGraphicKey = null;\n      group && zr.remove(group);\n      handle && zr.remove(handle);\n      this._group = null;\n      this._handle = null;\n      this._payloadInfo = null;\n    }\n  };\n\n  BaseAxisPointer.prototype.doClear = function () {};\n\n  BaseAxisPointer.prototype.buildLabel = function (xy, wh, xDimIndex) {\n    xDimIndex = xDimIndex || 0;\n    return {\n      x: xy[xDimIndex],\n      y: xy[1 - xDimIndex],\n      width: wh[xDimIndex],\n      height: wh[1 - xDimIndex]\n    };\n  };\n\n  return BaseAxisPointer;\n}();\n\nfunction updateProps(animationModel, moveAnimation, el, props) {\n  if (!propsEqual(inner(el).lastProp, props)) {\n    inner(el).lastProp = props;\n    moveAnimation ? graphic.updateProps(el, props, animationModel) : (el.stopAnimation(), el.attr(props));\n  }\n}\n\nfunction propsEqual(lastProps, newProps) {\n  if (zrUtil.isObject(lastProps) && zrUtil.isObject(newProps)) {\n    var equals_1 = true;\n    zrUtil.each(newProps, function (item, key) {\n      equals_1 = equals_1 && propsEqual(lastProps[key], item);\n    });\n    return !!equals_1;\n  } else {\n    return lastProps === newProps;\n  }\n}\n\nfunction updateLabelShowHide(labelEl, axisPointerModel) {\n  labelEl[axisPointerModel.get(['label', 'show']) ? 'show' : 'hide']();\n}\n\nfunction getHandleTransProps(trans) {\n  return {\n    x: trans.x || 0,\n    y: trans.y || 0,\n    rotation: trans.rotation || 0\n  };\n}\n\nfunction updateMandatoryProps(group, axisPointerModel, silent) {\n  var z = axisPointerModel.get('z');\n  var zlevel = axisPointerModel.get('zlevel');\n  group && group.traverse(function (el) {\n    if (el.type !== 'group') {\n      z != null && (el.z = z);\n      zlevel != null && (el.zlevel = zlevel);\n      el.silent = silent;\n    }\n  });\n}\n\nexport default BaseAxisPointer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport * as textContain from 'zrender/lib/contain/text';\nimport * as formatUtil from '../../util/format';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport * as axisHelper from '../../coord/axisHelper';\nimport AxisBuilder from '../axis/AxisBuilder';\nimport { createTextStyle } from '../../label/labelStyle';\nexport function buildElStyle(axisPointerModel) {\n  var axisPointerType = axisPointerModel.get('type');\n  var styleModel = axisPointerModel.getModel(axisPointerType + 'Style');\n  var style;\n\n  if (axisPointerType === 'line') {\n    style = styleModel.getLineStyle();\n    style.fill = null;\n  } else if (axisPointerType === 'shadow') {\n    style = styleModel.getAreaStyle();\n    style.stroke = null;\n  }\n\n  return style;\n}\nexport function buildLabelElOption(elOption, axisModel, axisPointerModel, api, labelPos) {\n  var value = axisPointerModel.get('value');\n  var text = getValueLabel(value, axisModel.axis, axisModel.ecModel, axisPointerModel.get('seriesDataIndices'), {\n    precision: axisPointerModel.get(['label', 'precision']),\n    formatter: axisPointerModel.get(['label', 'formatter'])\n  });\n  var labelModel = axisPointerModel.getModel('label');\n  var paddings = formatUtil.normalizeCssArray(labelModel.get('padding') || 0);\n  var font = labelModel.getFont();\n  var textRect = textContain.getBoundingRect(text, font);\n  var position = labelPos.position;\n  var width = textRect.width + paddings[1] + paddings[3];\n  var height = textRect.height + paddings[0] + paddings[2];\n  var align = labelPos.align;\n  align === 'right' && (position[0] -= width);\n  align === 'center' && (position[0] -= width / 2);\n  var verticalAlign = labelPos.verticalAlign;\n  verticalAlign === 'bottom' && (position[1] -= height);\n  verticalAlign === 'middle' && (position[1] -= height / 2);\n  confineInContainer(position, width, height, api);\n  var bgColor = labelModel.get('backgroundColor');\n\n  if (!bgColor || bgColor === 'auto') {\n    bgColor = axisModel.get(['axisLine', 'lineStyle', 'color']);\n  }\n\n  elOption.label = {\n    x: position[0],\n    y: position[1],\n    style: createTextStyle(labelModel, {\n      text: text,\n      font: font,\n      fill: labelModel.getTextColor(),\n      padding: paddings,\n      backgroundColor: bgColor\n    }),\n    z2: 10\n  };\n}\n\nfunction confineInContainer(position, width, height, api) {\n  var viewWidth = api.getWidth();\n  var viewHeight = api.getHeight();\n  position[0] = Math.min(position[0] + width, viewWidth) - width;\n  position[1] = Math.min(position[1] + height, viewHeight) - height;\n  position[0] = Math.max(position[0], 0);\n  position[1] = Math.max(position[1], 0);\n}\n\nexport function getValueLabel(value, axis, ecModel, seriesDataIndices, opt) {\n  value = axis.scale.parse(value);\n  var text = axis.scale.getLabel({\n    value: value\n  }, {\n    precision: opt.precision\n  });\n  var formatter = opt.formatter;\n\n  if (formatter) {\n    var params_1 = {\n      value: axisHelper.getAxisRawValue(axis, {\n        value: value\n      }),\n      axisDimension: axis.dim,\n      axisIndex: axis.index,\n      seriesData: []\n    };\n    zrUtil.each(seriesDataIndices, function (idxItem) {\n      var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\n      var dataIndex = idxItem.dataIndexInside;\n      var dataParams = series && series.getDataParams(dataIndex);\n      dataParams && params_1.seriesData.push(dataParams);\n    });\n\n    if (zrUtil.isString(formatter)) {\n      text = formatter.replace('{value}', text);\n    } else if (zrUtil.isFunction(formatter)) {\n      text = formatter(params_1);\n    }\n  }\n\n  return text;\n}\nexport function getTransformedPosition(axis, value, layoutInfo) {\n  var transform = matrix.create();\n  matrix.rotate(transform, transform, layoutInfo.rotation);\n  matrix.translate(transform, transform, layoutInfo.position);\n  return graphic.applyTransform([axis.dataToCoord(value), (layoutInfo.labelOffset || 0) + (layoutInfo.labelDirection || 1) * (layoutInfo.labelMargin || 0)], transform);\n}\nexport function buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api) {\n  var textLayout = AxisBuilder.innerTextLayout(layoutInfo.rotation, 0, layoutInfo.labelDirection);\n  layoutInfo.labelMargin = axisPointerModel.get(['label', 'margin']);\n  buildLabelElOption(elOption, axisModel, axisPointerModel, api, {\n    position: getTransformedPosition(axisModel.axis, value, layoutInfo),\n    align: textLayout.textAlign,\n    verticalAlign: textLayout.textVerticalAlign\n  });\n}\nexport function makeLineShape(p1, p2, xDimIndex) {\n  xDimIndex = xDimIndex || 0;\n  return {\n    x1: p1[xDimIndex],\n    y1: p1[1 - xDimIndex],\n    x2: p2[xDimIndex],\n    y2: p2[1 - xDimIndex]\n  };\n}\nexport function makeRectShape(xy, wh, xDimIndex) {\n  xDimIndex = xDimIndex || 0;\n  return {\n    x: xy[xDimIndex],\n    y: xy[1 - xDimIndex],\n    width: wh[xDimIndex],\n    height: wh[1 - xDimIndex]\n  };\n}\nexport function makeSectorShape(cx, cy, r0, r, startAngle, endAngle) {\n  return {\n    cx: cx,\n    cy: cy,\n    r0: r0,\n    r: r,\n    startAngle: startAngle,\n    endAngle: endAngle,\n    clockwise: true\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BaseAxisPointer from './BaseAxisPointer';\nimport * as viewHelper from './viewHelper';\nimport * as cartesianAxisHelper from '../../coord/cartesian/cartesianAxisHelper';\n\nvar CartesianAxisPointer = function (_super) {\n  __extends(CartesianAxisPointer, _super);\n\n  function CartesianAxisPointer() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  CartesianAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\n    var axis = axisModel.axis;\n    var grid = axis.grid;\n    var axisPointerType = axisPointerModel.get('type');\n    var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent();\n    var pixelValue = axis.toGlobalCoord(axis.dataToCoord(value, true));\n\n    if (axisPointerType && axisPointerType !== 'none') {\n      var elStyle = viewHelper.buildElStyle(axisPointerModel);\n      var pointerOption = pointerShapeBuilder[axisPointerType](axis, pixelValue, otherExtent);\n      pointerOption.style = elStyle;\n      elOption.graphicKey = pointerOption.type;\n      elOption.pointer = pointerOption;\n    }\n\n    var layoutInfo = cartesianAxisHelper.layout(grid.model, axisModel);\n    viewHelper.buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api);\n  };\n\n  CartesianAxisPointer.prototype.getHandleTransform = function (value, axisModel, axisPointerModel) {\n    var layoutInfo = cartesianAxisHelper.layout(axisModel.axis.grid.model, axisModel, {\n      labelInside: false\n    });\n    layoutInfo.labelMargin = axisPointerModel.get(['handle', 'margin']);\n    var pos = viewHelper.getTransformedPosition(axisModel.axis, value, layoutInfo);\n    return {\n      x: pos[0],\n      y: pos[1],\n      rotation: layoutInfo.rotation + (layoutInfo.labelDirection < 0 ? Math.PI : 0)\n    };\n  };\n\n  CartesianAxisPointer.prototype.updateHandleTransform = function (transform, delta, axisModel, axisPointerModel) {\n    var axis = axisModel.axis;\n    var grid = axis.grid;\n    var axisExtent = axis.getGlobalExtent(true);\n    var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent();\n    var dimIndex = axis.dim === 'x' ? 0 : 1;\n    var currPosition = [transform.x, transform.y];\n    currPosition[dimIndex] += delta[dimIndex];\n    currPosition[dimIndex] = Math.min(axisExtent[1], currPosition[dimIndex]);\n    currPosition[dimIndex] = Math.max(axisExtent[0], currPosition[dimIndex]);\n    var cursorOtherValue = (otherExtent[1] + otherExtent[0]) / 2;\n    var cursorPoint = [cursorOtherValue, cursorOtherValue];\n    cursorPoint[dimIndex] = currPosition[dimIndex];\n    var tooltipOptions = [{\n      verticalAlign: 'middle'\n    }, {\n      align: 'center'\n    }];\n    return {\n      x: currPosition[0],\n      y: currPosition[1],\n      rotation: transform.rotation,\n      cursorPoint: cursorPoint,\n      tooltipOption: tooltipOptions[dimIndex]\n    };\n  };\n\n  return CartesianAxisPointer;\n}(BaseAxisPointer);\n\nfunction getCartesian(grid, axis) {\n  var opt = {};\n  opt[axis.dim + 'AxisIndex'] = axis.index;\n  return grid.getCartesian(opt);\n}\n\nvar pointerShapeBuilder = {\n  line: function (axis, pixelValue, otherExtent) {\n    var targetShape = viewHelper.makeLineShape([pixelValue, otherExtent[0]], [pixelValue, otherExtent[1]], getAxisDimIndex(axis));\n    return {\n      type: 'Line',\n      subPixelOptimize: true,\n      shape: targetShape\n    };\n  },\n  shadow: function (axis, pixelValue, otherExtent) {\n    var bandWidth = Math.max(1, axis.getBandWidth());\n    var span = otherExtent[1] - otherExtent[0];\n    return {\n      type: 'Rect',\n      shape: viewHelper.makeRectShape([pixelValue - bandWidth / 2, otherExtent[0]], [bandWidth, span], getAxisDimIndex(axis))\n    };\n  }\n};\n\nfunction getAxisDimIndex(axis) {\n  return axis.dim === 'x' ? 0 : 1;\n}\n\nexport default CartesianAxisPointer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\n\nvar AxisPointerModel = function (_super) {\n  __extends(AxisPointerModel, _super);\n\n  function AxisPointerModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = AxisPointerModel.type;\n    return _this;\n  }\n\n  AxisPointerModel.type = 'axisPointer';\n  AxisPointerModel.defaultOption = {\n    show: 'auto',\n    zlevel: 0,\n    z: 50,\n    type: 'line',\n    snap: false,\n    triggerTooltip: true,\n    value: null,\n    status: null,\n    link: [],\n    animation: null,\n    animationDurationUpdate: 200,\n    lineStyle: {\n      color: '#B9BEC9',\n      width: 1,\n      type: 'dashed'\n    },\n    shadowStyle: {\n      color: 'rgba(210,219,238,0.2)'\n    },\n    label: {\n      show: true,\n      formatter: null,\n      precision: 'auto',\n      margin: 3,\n      color: '#fff',\n      padding: [5, 7, 5, 7],\n      backgroundColor: 'auto',\n      borderColor: null,\n      borderWidth: 0,\n      borderRadius: 3\n    },\n    handle: {\n      show: false,\n      icon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z',\n      size: 45,\n      margin: 50,\n      color: '#333',\n      shadowBlur: 3,\n      shadowColor: '#aaa',\n      shadowOffsetX: 0,\n      shadowOffsetY: 2,\n      throttle: 40\n    }\n  };\n  return AxisPointerModel;\n}(ComponentModel);\n\nexport default AxisPointerModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\nvar each = zrUtil.each;\nexport function register(key, api, handler) {\n  if (env.node) {\n    return;\n  }\n\n  var zr = api.getZr();\n  inner(zr).records || (inner(zr).records = {});\n  initGlobalListeners(zr, api);\n  var record = inner(zr).records[key] || (inner(zr).records[key] = {});\n  record.handler = handler;\n}\n\nfunction initGlobalListeners(zr, api) {\n  if (inner(zr).initialized) {\n    return;\n  }\n\n  inner(zr).initialized = true;\n  useHandler('click', zrUtil.curry(doEnter, 'click'));\n  useHandler('mousemove', zrUtil.curry(doEnter, 'mousemove'));\n  useHandler('globalout', onLeave);\n\n  function useHandler(eventType, cb) {\n    zr.on(eventType, function (e) {\n      var dis = makeDispatchAction(api);\n      each(inner(zr).records, function (record) {\n        record && cb(record, e, dis.dispatchAction);\n      });\n      dispatchTooltipFinally(dis.pendings, api);\n    });\n  }\n}\n\nfunction dispatchTooltipFinally(pendings, api) {\n  var showLen = pendings.showTip.length;\n  var hideLen = pendings.hideTip.length;\n  var actuallyPayload;\n\n  if (showLen) {\n    actuallyPayload = pendings.showTip[showLen - 1];\n  } else if (hideLen) {\n    actuallyPayload = pendings.hideTip[hideLen - 1];\n  }\n\n  if (actuallyPayload) {\n    actuallyPayload.dispatchAction = null;\n    api.dispatchAction(actuallyPayload);\n  }\n}\n\nfunction onLeave(record, e, dispatchAction) {\n  record.handler('leave', null, dispatchAction);\n}\n\nfunction doEnter(currTrigger, record, e, dispatchAction) {\n  record.handler(currTrigger, e, dispatchAction);\n}\n\nfunction makeDispatchAction(api) {\n  var pendings = {\n    showTip: [],\n    hideTip: []\n  };\n\n  var dispatchAction = function (payload) {\n    var pendingList = pendings[payload.type];\n\n    if (pendingList) {\n      pendingList.push(payload);\n    } else {\n      payload.dispatchAction = dispatchAction;\n      api.dispatchAction(payload);\n    }\n  };\n\n  return {\n    dispatchAction: dispatchAction,\n    pendings: pendings\n  };\n}\n\nexport function unregister(key, api) {\n  if (env.node) {\n    return;\n  }\n\n  var zr = api.getZr();\n  var record = (inner(zr).records || {})[key];\n\n  if (record) {\n    inner(zr).records[key] = null;\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as globalListener from './globalListener';\nimport ComponentView from '../../view/Component';\n\nvar AxisPointerView = function (_super) {\n  __extends(AxisPointerView, _super);\n\n  function AxisPointerView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = AxisPointerView.type;\n    return _this;\n  }\n\n  AxisPointerView.prototype.render = function (globalAxisPointerModel, ecModel, api) {\n    var globalTooltipModel = ecModel.getComponent('tooltip');\n    var triggerOn = globalAxisPointerModel.get('triggerOn') || globalTooltipModel && globalTooltipModel.get('triggerOn') || 'mousemove|click';\n    globalListener.register('axisPointer', api, function (currTrigger, e, dispatchAction) {\n      if (triggerOn !== 'none' && (currTrigger === 'leave' || triggerOn.indexOf(currTrigger) >= 0)) {\n        dispatchAction({\n          type: 'updateAxisPointer',\n          currTrigger: currTrigger,\n          x: e && e.offsetX,\n          y: e && e.offsetY\n        });\n      }\n    });\n  };\n\n  AxisPointerView.prototype.remove = function (ecModel, api) {\n    globalListener.unregister('axisPointer', api);\n  };\n\n  AxisPointerView.prototype.dispose = function (ecModel, api) {\n    globalListener.unregister('axisPointer', api);\n  };\n\n  AxisPointerView.type = 'axisPointer';\n  return AxisPointerView;\n}(ComponentView);\n\nexport default AxisPointerView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nexport default function findPointFromSeries(finder, ecModel) {\n  var point = [];\n  var seriesIndex = finder.seriesIndex;\n  var seriesModel;\n\n  if (seriesIndex == null || !(seriesModel = ecModel.getSeriesByIndex(seriesIndex))) {\n    return {\n      point: []\n    };\n  }\n\n  var data = seriesModel.getData();\n  var dataIndex = modelUtil.queryDataIndex(data, finder);\n\n  if (dataIndex == null || dataIndex < 0 || zrUtil.isArray(dataIndex)) {\n    return {\n      point: []\n    };\n  }\n\n  var el = data.getItemGraphicEl(dataIndex);\n  var coordSys = seriesModel.coordinateSystem;\n\n  if (seriesModel.getTooltipPosition) {\n    point = seriesModel.getTooltipPosition(dataIndex) || [];\n  } else if (coordSys && coordSys.dataToPoint) {\n    if (finder.isStacked) {\n      var baseAxis = coordSys.getBaseAxis();\n      var valueAxis = coordSys.getOtherAxis(baseAxis);\n      var valueAxisDim = valueAxis.dim;\n      var baseAxisDim = baseAxis.dim;\n      var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\n      var baseDim = data.mapDimension(baseAxisDim);\n      var stackedData = [];\n      stackedData[baseDataOffset] = data.get(baseDim, dataIndex);\n      stackedData[1 - baseDataOffset] = data.get(data.getCalculationInfo('stackResultDimension'), dataIndex);\n      point = coordSys.dataToPoint(stackedData) || [];\n    } else {\n      point = coordSys.dataToPoint(data.getValues(zrUtil.map(coordSys.dimensions, function (dim) {\n        return data.mapDimension(dim);\n      }), dataIndex)) || [];\n    }\n  } else if (el) {\n    var rect = el.getBoundingRect().clone();\n    rect.applyTransform(el.transform);\n    point = [rect.x + rect.width / 2, rect.y + rect.height / 2];\n  }\n\n  return {\n    point: point,\n    el: el\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner } from '../../util/model';\nimport * as modelHelper from './modelHelper';\nimport findPointFromSeries from './findPointFromSeries';\nimport { each, curry, bind, extend } from 'zrender/lib/core/util';\nvar inner = makeInner();\nexport default function axisTrigger(payload, ecModel, api) {\n  var currTrigger = payload.currTrigger;\n  var point = [payload.x, payload.y];\n  var finder = payload;\n  var dispatchAction = payload.dispatchAction || bind(api.dispatchAction, api);\n  var coordSysAxesInfo = ecModel.getComponent('axisPointer').coordSysAxesInfo;\n\n  if (!coordSysAxesInfo) {\n    return;\n  }\n\n  if (illegalPoint(point)) {\n    point = findPointFromSeries({\n      seriesIndex: finder.seriesIndex,\n      dataIndex: finder.dataIndex\n    }, ecModel).point;\n  }\n\n  var isIllegalPoint = illegalPoint(point);\n  var inputAxesInfo = finder.axesInfo;\n  var axesInfo = coordSysAxesInfo.axesInfo;\n  var shouldHide = currTrigger === 'leave' || illegalPoint(point);\n  var outputPayload = {};\n  var showValueMap = {};\n  var dataByCoordSys = {\n    list: [],\n    map: {}\n  };\n  var updaters = {\n    showPointer: curry(showPointer, showValueMap),\n    showTooltip: curry(showTooltip, dataByCoordSys)\n  };\n  each(coordSysAxesInfo.coordSysMap, function (coordSys, coordSysKey) {\n    var coordSysContainsPoint = isIllegalPoint || coordSys.containPoint(point);\n    each(coordSysAxesInfo.coordSysAxesInfo[coordSysKey], function (axisInfo, key) {\n      var axis = axisInfo.axis;\n      var inputAxisInfo = findInputAxisInfo(inputAxesInfo, axisInfo);\n\n      if (!shouldHide && coordSysContainsPoint && (!inputAxesInfo || inputAxisInfo)) {\n        var val = inputAxisInfo && inputAxisInfo.value;\n\n        if (val == null && !isIllegalPoint) {\n          val = axis.pointToData(point);\n        }\n\n        val != null && processOnAxis(axisInfo, val, updaters, false, outputPayload);\n      }\n    });\n  });\n  var linkTriggers = {};\n  each(axesInfo, function (tarAxisInfo, tarKey) {\n    var linkGroup = tarAxisInfo.linkGroup;\n\n    if (linkGroup && !showValueMap[tarKey]) {\n      each(linkGroup.axesInfo, function (srcAxisInfo, srcKey) {\n        var srcValItem = showValueMap[srcKey];\n\n        if (srcAxisInfo !== tarAxisInfo && srcValItem) {\n          var val = srcValItem.value;\n          linkGroup.mapper && (val = tarAxisInfo.axis.scale.parse(linkGroup.mapper(val, makeMapperParam(srcAxisInfo), makeMapperParam(tarAxisInfo))));\n          linkTriggers[tarAxisInfo.key] = val;\n        }\n      });\n    }\n  });\n  each(linkTriggers, function (val, tarKey) {\n    processOnAxis(axesInfo[tarKey], val, updaters, true, outputPayload);\n  });\n  updateModelActually(showValueMap, axesInfo, outputPayload);\n  dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction);\n  dispatchHighDownActually(axesInfo, dispatchAction, api);\n  return outputPayload;\n}\n\nfunction processOnAxis(axisInfo, newValue, updaters, noSnap, outputFinder) {\n  var axis = axisInfo.axis;\n\n  if (axis.scale.isBlank() || !axis.containData(newValue)) {\n    return;\n  }\n\n  if (!axisInfo.involveSeries) {\n    updaters.showPointer(axisInfo, newValue);\n    return;\n  }\n\n  var payloadInfo = buildPayloadsBySeries(newValue, axisInfo);\n  var payloadBatch = payloadInfo.payloadBatch;\n  var snapToValue = payloadInfo.snapToValue;\n\n  if (payloadBatch[0] && outputFinder.seriesIndex == null) {\n    extend(outputFinder, payloadBatch[0]);\n  }\n\n  if (!noSnap && axisInfo.snap) {\n    if (axis.containData(snapToValue) && snapToValue != null) {\n      newValue = snapToValue;\n    }\n  }\n\n  updaters.showPointer(axisInfo, newValue, payloadBatch);\n  updaters.showTooltip(axisInfo, payloadInfo, snapToValue);\n}\n\nfunction buildPayloadsBySeries(value, axisInfo) {\n  var axis = axisInfo.axis;\n  var dim = axis.dim;\n  var snapToValue = value;\n  var payloadBatch = [];\n  var minDist = Number.MAX_VALUE;\n  var minDiff = -1;\n  each(axisInfo.seriesModels, function (series, idx) {\n    var dataDim = series.getData().mapDimensionsAll(dim);\n    var seriesNestestValue;\n    var dataIndices;\n\n    if (series.getAxisTooltipData) {\n      var result = series.getAxisTooltipData(dataDim, value, axis);\n      dataIndices = result.dataIndices;\n      seriesNestestValue = result.nestestValue;\n    } else {\n      dataIndices = series.getData().indicesOfNearest(dataDim[0], value, axis.type === 'category' ? 0.5 : null);\n\n      if (!dataIndices.length) {\n        return;\n      }\n\n      seriesNestestValue = series.getData().get(dataDim[0], dataIndices[0]);\n    }\n\n    if (seriesNestestValue == null || !isFinite(seriesNestestValue)) {\n      return;\n    }\n\n    var diff = value - seriesNestestValue;\n    var dist = Math.abs(diff);\n\n    if (dist <= minDist) {\n      if (dist < minDist || diff >= 0 && minDiff < 0) {\n        minDist = dist;\n        minDiff = diff;\n        snapToValue = seriesNestestValue;\n        payloadBatch.length = 0;\n      }\n\n      each(dataIndices, function (dataIndex) {\n        payloadBatch.push({\n          seriesIndex: series.seriesIndex,\n          dataIndexInside: dataIndex,\n          dataIndex: series.getData().getRawIndex(dataIndex)\n        });\n      });\n    }\n  });\n  return {\n    payloadBatch: payloadBatch,\n    snapToValue: snapToValue\n  };\n}\n\nfunction showPointer(showValueMap, axisInfo, value, payloadBatch) {\n  showValueMap[axisInfo.key] = {\n    value: value,\n    payloadBatch: payloadBatch\n  };\n}\n\nfunction showTooltip(dataByCoordSys, axisInfo, payloadInfo, value) {\n  var payloadBatch = payloadInfo.payloadBatch;\n  var axis = axisInfo.axis;\n  var axisModel = axis.model;\n  var axisPointerModel = axisInfo.axisPointerModel;\n\n  if (!axisInfo.triggerTooltip || !payloadBatch.length) {\n    return;\n  }\n\n  var coordSysModel = axisInfo.coordSys.model;\n  var coordSysKey = modelHelper.makeKey(coordSysModel);\n  var coordSysItem = dataByCoordSys.map[coordSysKey];\n\n  if (!coordSysItem) {\n    coordSysItem = dataByCoordSys.map[coordSysKey] = {\n      coordSysId: coordSysModel.id,\n      coordSysIndex: coordSysModel.componentIndex,\n      coordSysType: coordSysModel.type,\n      coordSysMainType: coordSysModel.mainType,\n      dataByAxis: []\n    };\n    dataByCoordSys.list.push(coordSysItem);\n  }\n\n  coordSysItem.dataByAxis.push({\n    axisDim: axis.dim,\n    axisIndex: axisModel.componentIndex,\n    axisType: axisModel.type,\n    axisId: axisModel.id,\n    value: value,\n    valueLabelOpt: {\n      precision: axisPointerModel.get(['label', 'precision']),\n      formatter: axisPointerModel.get(['label', 'formatter'])\n    },\n    seriesDataIndices: payloadBatch.slice()\n  });\n}\n\nfunction updateModelActually(showValueMap, axesInfo, outputPayload) {\n  var outputAxesInfo = outputPayload.axesInfo = [];\n  each(axesInfo, function (axisInfo, key) {\n    var option = axisInfo.axisPointerModel.option;\n    var valItem = showValueMap[key];\n\n    if (valItem) {\n      !axisInfo.useHandle && (option.status = 'show');\n      option.value = valItem.value;\n      option.seriesDataIndices = (valItem.payloadBatch || []).slice();\n    } else {\n      !axisInfo.useHandle && (option.status = 'hide');\n    }\n\n    option.status === 'show' && outputAxesInfo.push({\n      axisDim: axisInfo.axis.dim,\n      axisIndex: axisInfo.axis.model.componentIndex,\n      value: option.value\n    });\n  });\n}\n\nfunction dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction) {\n  if (illegalPoint(point) || !dataByCoordSys.list.length) {\n    dispatchAction({\n      type: 'hideTip'\n    });\n    return;\n  }\n\n  var sampleItem = ((dataByCoordSys.list[0].dataByAxis[0] || {}).seriesDataIndices || [])[0] || {};\n  dispatchAction({\n    type: 'showTip',\n    escapeConnect: true,\n    x: point[0],\n    y: point[1],\n    tooltipOption: payload.tooltipOption,\n    position: payload.position,\n    dataIndexInside: sampleItem.dataIndexInside,\n    dataIndex: sampleItem.dataIndex,\n    seriesIndex: sampleItem.seriesIndex,\n    dataByCoordSys: dataByCoordSys.list\n  });\n}\n\nfunction dispatchHighDownActually(axesInfo, dispatchAction, api) {\n  var zr = api.getZr();\n  var highDownKey = 'axisPointerLastHighlights';\n  var lastHighlights = inner(zr)[highDownKey] || {};\n  var newHighlights = inner(zr)[highDownKey] = {};\n  each(axesInfo, function (axisInfo, key) {\n    var option = axisInfo.axisPointerModel.option;\n    option.status === 'show' && each(option.seriesDataIndices, function (batchItem) {\n      var key = batchItem.seriesIndex + ' | ' + batchItem.dataIndex;\n      newHighlights[key] = batchItem;\n    });\n  });\n  var toHighlight = [];\n  var toDownplay = [];\n  each(lastHighlights, function (batchItem, key) {\n    !newHighlights[key] && toDownplay.push(batchItem);\n  });\n  each(newHighlights, function (batchItem, key) {\n    !lastHighlights[key] && toHighlight.push(batchItem);\n  });\n  toDownplay.length && api.dispatchAction({\n    type: 'downplay',\n    escapeConnect: true,\n    notBlur: true,\n    batch: toDownplay\n  });\n  toHighlight.length && api.dispatchAction({\n    type: 'highlight',\n    escapeConnect: true,\n    notBlur: true,\n    batch: toHighlight\n  });\n}\n\nfunction findInputAxisInfo(inputAxesInfo, axisInfo) {\n  for (var i = 0; i < (inputAxesInfo || []).length; i++) {\n    var inputAxisInfo = inputAxesInfo[i];\n\n    if (axisInfo.axis.dim === inputAxisInfo.axisDim && axisInfo.axis.model.componentIndex === inputAxisInfo.axisIndex) {\n      return inputAxisInfo;\n    }\n  }\n}\n\nfunction makeMapperParam(axisInfo) {\n  var axisModel = axisInfo.axis.model;\n  var item = {};\n  var dim = item.axisDim = axisInfo.axis.dim;\n  item.axisIndex = item[dim + 'AxisIndex'] = axisModel.componentIndex;\n  item.axisName = item[dim + 'AxisName'] = axisModel.name;\n  item.axisId = item[dim + 'AxisId'] = axisModel.id;\n  return item;\n}\n\nfunction illegalPoint(point) {\n  return !point || point[0] == null || isNaN(point[0]) || point[1] == null || isNaN(point[1]);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport AxisView from '../axis/AxisView';\nimport CartesianAxisPointer from './CartesianAxisPointer';\nimport AxisPointerModel from './AxisPointerModel';\nimport AxisPointerView from './AxisPointerView';\nimport { isArray } from 'zrender/lib/core/util';\nimport { collect } from './modelHelper';\nimport axisTrigger from './axisTrigger';\nexport function install(registers) {\n  AxisView.registerAxisPointerClass('CartesianAxisPointer', CartesianAxisPointer);\n  registers.registerComponentModel(AxisPointerModel);\n  registers.registerComponentView(AxisPointerView);\n  registers.registerPreprocessor(function (option) {\n    if (option) {\n      (!option.axisPointer || option.axisPointer.length === 0) && (option.axisPointer = {});\n      var link = option.axisPointer.link;\n\n      if (link && !isArray(link)) {\n        option.axisPointer.link = [link];\n      }\n    }\n  });\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, function (ecModel, api) {\n    ecModel.getComponent('axisPointer').coordSysAxesInfo = collect(ecModel, api);\n  });\n  registers.registerAction({\n    type: 'updateAxisPointer',\n    event: 'updateAxisPointer',\n    update: ':updateAxisPointer'\n  }, axisTrigger);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { install as installSimple } from './installSimple';\nimport { install as installAxisPointer } from '../axisPointer/install';\nimport { use } from '../../extension';\nexport function install(registers) {\n  use(installSimple);\n  use(installAxisPointer);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BaseAxisPointer from './BaseAxisPointer';\nimport * as graphic from '../../util/graphic';\nimport * as viewHelper from './viewHelper';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport AxisBuilder from '../axis/AxisBuilder';\n\nvar PolarAxisPointer = function (_super) {\n  __extends(PolarAxisPointer, _super);\n\n  function PolarAxisPointer() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  PolarAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\n    var axis = axisModel.axis;\n\n    if (axis.dim === 'angle') {\n      this.animationThreshold = Math.PI / 18;\n    }\n\n    var polar = axis.polar;\n    var otherAxis = polar.getOtherAxis(axis);\n    var otherExtent = otherAxis.getExtent();\n    var coordValue = axis.dataToCoord(value);\n    var axisPointerType = axisPointerModel.get('type');\n\n    if (axisPointerType && axisPointerType !== 'none') {\n      var elStyle = viewHelper.buildElStyle(axisPointerModel);\n      var pointerOption = pointerShapeBuilder[axisPointerType](axis, polar, coordValue, otherExtent);\n      pointerOption.style = elStyle;\n      elOption.graphicKey = pointerOption.type;\n      elOption.pointer = pointerOption;\n    }\n\n    var labelMargin = axisPointerModel.get(['label', 'margin']);\n    var labelPos = getLabelPosition(value, axisModel, axisPointerModel, polar, labelMargin);\n    viewHelper.buildLabelElOption(elOption, axisModel, axisPointerModel, api, labelPos);\n  };\n\n  return PolarAxisPointer;\n}(BaseAxisPointer);\n\n;\n\nfunction getLabelPosition(value, axisModel, axisPointerModel, polar, labelMargin) {\n  var axis = axisModel.axis;\n  var coord = axis.dataToCoord(value);\n  var axisAngle = polar.getAngleAxis().getExtent()[0];\n  axisAngle = axisAngle / 180 * Math.PI;\n  var radiusExtent = polar.getRadiusAxis().getExtent();\n  var position;\n  var align;\n  var verticalAlign;\n\n  if (axis.dim === 'radius') {\n    var transform = matrix.create();\n    matrix.rotate(transform, transform, axisAngle);\n    matrix.translate(transform, transform, [polar.cx, polar.cy]);\n    position = graphic.applyTransform([coord, -labelMargin], transform);\n    var labelRotation = axisModel.getModel('axisLabel').get('rotate') || 0;\n    var labelLayout = AxisBuilder.innerTextLayout(axisAngle, labelRotation * Math.PI / 180, -1);\n    align = labelLayout.textAlign;\n    verticalAlign = labelLayout.textVerticalAlign;\n  } else {\n    var r = radiusExtent[1];\n    position = polar.coordToPoint([r + labelMargin, coord]);\n    var cx = polar.cx;\n    var cy = polar.cy;\n    align = Math.abs(position[0] - cx) / r < 0.3 ? 'center' : position[0] > cx ? 'left' : 'right';\n    verticalAlign = Math.abs(position[1] - cy) / r < 0.3 ? 'middle' : position[1] > cy ? 'top' : 'bottom';\n  }\n\n  return {\n    position: position,\n    align: align,\n    verticalAlign: verticalAlign\n  };\n}\n\nvar pointerShapeBuilder = {\n  line: function (axis, polar, coordValue, otherExtent) {\n    return axis.dim === 'angle' ? {\n      type: 'Line',\n      shape: viewHelper.makeLineShape(polar.coordToPoint([otherExtent[0], coordValue]), polar.coordToPoint([otherExtent[1], coordValue]))\n    } : {\n      type: 'Circle',\n      shape: {\n        cx: polar.cx,\n        cy: polar.cy,\n        r: coordValue\n      }\n    };\n  },\n  shadow: function (axis, polar, coordValue, otherExtent) {\n    var bandWidth = Math.max(1, axis.getBandWidth());\n    var radian = Math.PI / 180;\n    return axis.dim === 'angle' ? {\n      type: 'Sector',\n      shape: viewHelper.makeSectorShape(polar.cx, polar.cy, otherExtent[0], otherExtent[1], (-coordValue - bandWidth / 2) * radian, (-coordValue + bandWidth / 2) * radian)\n    } : {\n      type: 'Sector',\n      shape: viewHelper.makeSectorShape(polar.cx, polar.cy, coordValue - bandWidth / 2, coordValue + bandWidth / 2, 0, Math.PI * 2)\n    };\n  }\n};\nexport default PolarAxisPointer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\n\nvar PolarModel = function (_super) {\n  __extends(PolarModel, _super);\n\n  function PolarModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = PolarModel.type;\n    return _this;\n  }\n\n  PolarModel.prototype.findAxisModel = function (axisType) {\n    var foundAxisModel;\n    var ecModel = this.ecModel;\n    ecModel.eachComponent(axisType, function (axisModel) {\n      if (axisModel.getCoordSysModel() === this) {\n        foundAxisModel = axisModel;\n      }\n    }, this);\n    return foundAxisModel;\n  };\n\n  PolarModel.type = 'polar';\n  PolarModel.dependencies = ['radiusAxis', 'angleAxis'];\n  PolarModel.defaultOption = {\n    zlevel: 0,\n    z: 0,\n    center: ['50%', '50%'],\n    radius: '80%'\n  };\n  return PolarModel;\n}(ComponentModel);\n\nexport default PolarModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin';\nimport { SINGLE_REFERRING } from '../../util/model';\n\nvar PolarAxisModel = function (_super) {\n  __extends(PolarAxisModel, _super);\n\n  function PolarAxisModel() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  PolarAxisModel.prototype.getCoordSysModel = function () {\n    return this.getReferringComponents('polar', SINGLE_REFERRING).models[0];\n  };\n\n  PolarAxisModel.type = 'polarAxis';\n  return PolarAxisModel;\n}(ComponentModel);\n\nzrUtil.mixin(PolarAxisModel, AxisModelCommonMixin);\nexport { PolarAxisModel };\n\nvar AngleAxisModel = function (_super) {\n  __extends(AngleAxisModel, _super);\n\n  function AngleAxisModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = AngleAxisModel.type;\n    return _this;\n  }\n\n  AngleAxisModel.type = 'angleAxis';\n  return AngleAxisModel;\n}(PolarAxisModel);\n\nexport { AngleAxisModel };\n\nvar RadiusAxisModel = function (_super) {\n  __extends(RadiusAxisModel, _super);\n\n  function RadiusAxisModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = RadiusAxisModel.type;\n    return _this;\n  }\n\n  RadiusAxisModel.type = 'radiusAxis';\n  return RadiusAxisModel;\n}(PolarAxisModel);\n\nexport { RadiusAxisModel };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis';\n\nvar RadiusAxis = function (_super) {\n  __extends(RadiusAxis, _super);\n\n  function RadiusAxis(scale, radiusExtent) {\n    return _super.call(this, 'radius', scale, radiusExtent) || this;\n  }\n\n  RadiusAxis.prototype.pointToData = function (point, clamp) {\n    return this.polar.pointToData(point, clamp)[this.dim === 'radius' ? 0 : 1];\n  };\n\n  return RadiusAxis;\n}(Axis);\n\nRadiusAxis.prototype.dataToRadius = Axis.prototype.dataToCoord;\nRadiusAxis.prototype.radiusToData = Axis.prototype.coordToData;\nexport default RadiusAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as textContain from 'zrender/lib/contain/text';\nimport Axis from '../Axis';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\n\nvar AngleAxis = function (_super) {\n  __extends(AngleAxis, _super);\n\n  function AngleAxis(scale, angleExtent) {\n    return _super.call(this, 'angle', scale, angleExtent || [0, 360]) || this;\n  }\n\n  AngleAxis.prototype.pointToData = function (point, clamp) {\n    return this.polar.pointToData(point, clamp)[this.dim === 'radius' ? 0 : 1];\n  };\n\n  AngleAxis.prototype.calculateCategoryInterval = function () {\n    var axis = this;\n    var labelModel = axis.getLabelModel();\n    var ordinalScale = axis.scale;\n    var ordinalExtent = ordinalScale.getExtent();\n    var tickCount = ordinalScale.count();\n\n    if (ordinalExtent[1] - ordinalExtent[0] < 1) {\n      return 0;\n    }\n\n    var tickValue = ordinalExtent[0];\n    var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue);\n    var unitH = Math.abs(unitSpan);\n    var rect = textContain.getBoundingRect(tickValue == null ? '' : tickValue + '', labelModel.getFont(), 'center', 'top');\n    var maxH = Math.max(rect.height, 7);\n    var dh = maxH / unitH;\n    isNaN(dh) && (dh = Infinity);\n    var interval = Math.max(0, Math.floor(dh));\n    var cache = inner(axis.model);\n    var lastAutoInterval = cache.lastAutoInterval;\n    var lastTickCount = cache.lastTickCount;\n\n    if (lastAutoInterval != null && lastTickCount != null && Math.abs(lastAutoInterval - interval) <= 1 && Math.abs(lastTickCount - tickCount) <= 1 && lastAutoInterval > interval) {\n      interval = lastAutoInterval;\n    } else {\n      cache.lastTickCount = tickCount;\n      cache.lastAutoInterval = interval;\n    }\n\n    return interval;\n  };\n\n  return AngleAxis;\n}(Axis);\n\nAngleAxis.prototype.dataToAngle = Axis.prototype.dataToCoord;\nAngleAxis.prototype.angleToData = Axis.prototype.coordToData;\nexport default AngleAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport RadiusAxis from './RadiusAxis';\nimport AngleAxis from './AngleAxis';\n\nvar Polar = function () {\n  function Polar(name) {\n    this.dimensions = ['radius', 'angle'];\n    this.type = 'polar';\n    this.cx = 0;\n    this.cy = 0;\n    this._radiusAxis = new RadiusAxis();\n    this._angleAxis = new AngleAxis();\n    this.axisPointerEnabled = true;\n    this.name = name || '';\n    this._radiusAxis.polar = this._angleAxis.polar = this;\n  }\n\n  Polar.prototype.containPoint = function (point) {\n    var coord = this.pointToCoord(point);\n    return this._radiusAxis.contain(coord[0]) && this._angleAxis.contain(coord[1]);\n  };\n\n  Polar.prototype.containData = function (data) {\n    return this._radiusAxis.containData(data[0]) && this._angleAxis.containData(data[1]);\n  };\n\n  Polar.prototype.getAxis = function (dim) {\n    var key = '_' + dim + 'Axis';\n    return this[key];\n  };\n\n  Polar.prototype.getAxes = function () {\n    return [this._radiusAxis, this._angleAxis];\n  };\n\n  Polar.prototype.getAxesByScale = function (scaleType) {\n    var axes = [];\n    var angleAxis = this._angleAxis;\n    var radiusAxis = this._radiusAxis;\n    angleAxis.scale.type === scaleType && axes.push(angleAxis);\n    radiusAxis.scale.type === scaleType && axes.push(radiusAxis);\n    return axes;\n  };\n\n  Polar.prototype.getAngleAxis = function () {\n    return this._angleAxis;\n  };\n\n  Polar.prototype.getRadiusAxis = function () {\n    return this._radiusAxis;\n  };\n\n  Polar.prototype.getOtherAxis = function (axis) {\n    var angleAxis = this._angleAxis;\n    return axis === angleAxis ? this._radiusAxis : angleAxis;\n  };\n\n  Polar.prototype.getBaseAxis = function () {\n    return this.getAxesByScale('ordinal')[0] || this.getAxesByScale('time')[0] || this.getAngleAxis();\n  };\n\n  Polar.prototype.getTooltipAxes = function (dim) {\n    var baseAxis = dim != null && dim !== 'auto' ? this.getAxis(dim) : this.getBaseAxis();\n    return {\n      baseAxes: [baseAxis],\n      otherAxes: [this.getOtherAxis(baseAxis)]\n    };\n  };\n\n  Polar.prototype.dataToPoint = function (data, clamp) {\n    return this.coordToPoint([this._radiusAxis.dataToRadius(data[0], clamp), this._angleAxis.dataToAngle(data[1], clamp)]);\n  };\n\n  Polar.prototype.pointToData = function (point, clamp) {\n    var coord = this.pointToCoord(point);\n    return [this._radiusAxis.radiusToData(coord[0], clamp), this._angleAxis.angleToData(coord[1], clamp)];\n  };\n\n  Polar.prototype.pointToCoord = function (point) {\n    var dx = point[0] - this.cx;\n    var dy = point[1] - this.cy;\n    var angleAxis = this.getAngleAxis();\n    var extent = angleAxis.getExtent();\n    var minAngle = Math.min(extent[0], extent[1]);\n    var maxAngle = Math.max(extent[0], extent[1]);\n    angleAxis.inverse ? minAngle = maxAngle - 360 : maxAngle = minAngle + 360;\n    var radius = Math.sqrt(dx * dx + dy * dy);\n    dx /= radius;\n    dy /= radius;\n    var radian = Math.atan2(-dy, dx) / Math.PI * 180;\n    var dir = radian < minAngle ? 1 : -1;\n\n    while (radian < minAngle || radian > maxAngle) {\n      radian += dir * 360;\n    }\n\n    return [radius, radian];\n  };\n\n  Polar.prototype.coordToPoint = function (coord) {\n    var radius = coord[0];\n    var radian = coord[1] / 180 * Math.PI;\n    var x = Math.cos(radian) * radius + this.cx;\n    var y = -Math.sin(radian) * radius + this.cy;\n    return [x, y];\n  };\n\n  Polar.prototype.getArea = function () {\n    var angleAxis = this.getAngleAxis();\n    var radiusAxis = this.getRadiusAxis();\n    var radiusExtent = radiusAxis.getExtent().slice();\n    radiusExtent[0] > radiusExtent[1] && radiusExtent.reverse();\n    var angleExtent = angleAxis.getExtent();\n    var RADIAN = Math.PI / 180;\n    return {\n      cx: this.cx,\n      cy: this.cy,\n      r0: radiusExtent[0],\n      r: radiusExtent[1],\n      startAngle: -angleExtent[0] * RADIAN,\n      endAngle: -angleExtent[1] * RADIAN,\n      clockwise: angleAxis.inverse,\n      contain: function (x, y) {\n        var dx = x - this.cx;\n        var dy = y - this.cy;\n        var d2 = dx * dx + dy * dy;\n        var r = this.r;\n        var r0 = this.r0;\n        return d2 <= r * r && d2 >= r0 * r0;\n      }\n    };\n  };\n\n  Polar.prototype.convertToPixel = function (ecModel, finder, value) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? this.dataToPoint(value) : null;\n  };\n\n  Polar.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? this.pointToData(pixel) : null;\n  };\n\n  return Polar;\n}();\n\nfunction getCoordSys(finder) {\n  var seriesModel = finder.seriesModel;\n  var polarModel = finder.polarModel;\n  return polarModel && polarModel.coordinateSystem || seriesModel && seriesModel.coordinateSystem;\n}\n\nexport default Polar;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Polar from './Polar';\nimport { parsePercent } from '../../util/number';\nimport { createScaleByModel, niceScaleExtent, getDataDimensionsOnAxis } from '../../coord/axisHelper';\nimport { SINGLE_REFERRING } from '../../util/model';\n\nfunction resizePolar(polar, polarModel, api) {\n  var center = polarModel.get('center');\n  var width = api.getWidth();\n  var height = api.getHeight();\n  polar.cx = parsePercent(center[0], width);\n  polar.cy = parsePercent(center[1], height);\n  var radiusAxis = polar.getRadiusAxis();\n  var size = Math.min(width, height) / 2;\n  var radius = polarModel.get('radius');\n\n  if (radius == null) {\n    radius = [0, '100%'];\n  } else if (!zrUtil.isArray(radius)) {\n    radius = [0, radius];\n  }\n\n  var parsedRadius = [parsePercent(radius[0], size), parsePercent(radius[1], size)];\n  radiusAxis.inverse ? radiusAxis.setExtent(parsedRadius[1], parsedRadius[0]) : radiusAxis.setExtent(parsedRadius[0], parsedRadius[1]);\n}\n\nfunction updatePolarScale(ecModel, api) {\n  var polar = this;\n  var angleAxis = polar.getAngleAxis();\n  var radiusAxis = polar.getRadiusAxis();\n  angleAxis.scale.setExtent(Infinity, -Infinity);\n  radiusAxis.scale.setExtent(Infinity, -Infinity);\n  ecModel.eachSeries(function (seriesModel) {\n    if (seriesModel.coordinateSystem === polar) {\n      var data_1 = seriesModel.getData();\n      zrUtil.each(getDataDimensionsOnAxis(data_1, 'radius'), function (dim) {\n        radiusAxis.scale.unionExtentFromData(data_1, dim);\n      });\n      zrUtil.each(getDataDimensionsOnAxis(data_1, 'angle'), function (dim) {\n        angleAxis.scale.unionExtentFromData(data_1, dim);\n      });\n    }\n  });\n  niceScaleExtent(angleAxis.scale, angleAxis.model);\n  niceScaleExtent(radiusAxis.scale, radiusAxis.model);\n\n  if (angleAxis.type === 'category' && !angleAxis.onBand) {\n    var extent = angleAxis.getExtent();\n    var diff = 360 / angleAxis.scale.count();\n    angleAxis.inverse ? extent[1] += diff : extent[1] -= diff;\n    angleAxis.setExtent(extent[0], extent[1]);\n  }\n}\n\nfunction isAngleAxisModel(axisModel) {\n  return axisModel.mainType === 'angleAxis';\n}\n\nfunction setAxis(axis, axisModel) {\n  axis.type = axisModel.get('type');\n  axis.scale = createScaleByModel(axisModel);\n  axis.onBand = axisModel.get('boundaryGap') && axis.type === 'category';\n  axis.inverse = axisModel.get('inverse');\n\n  if (isAngleAxisModel(axisModel)) {\n    axis.inverse = axis.inverse !== axisModel.get('clockwise');\n    var startAngle = axisModel.get('startAngle');\n    axis.setExtent(startAngle, startAngle + (axis.inverse ? -360 : 360));\n  }\n\n  axisModel.axis = axis;\n  axis.model = axisModel;\n}\n\nvar polarCreator = {\n  dimensions: Polar.prototype.dimensions,\n  create: function (ecModel, api) {\n    var polarList = [];\n    ecModel.eachComponent('polar', function (polarModel, idx) {\n      var polar = new Polar(idx + '');\n      polar.update = updatePolarScale;\n      var radiusAxis = polar.getRadiusAxis();\n      var angleAxis = polar.getAngleAxis();\n      var radiusAxisModel = polarModel.findAxisModel('radiusAxis');\n      var angleAxisModel = polarModel.findAxisModel('angleAxis');\n      setAxis(radiusAxis, radiusAxisModel);\n      setAxis(angleAxis, angleAxisModel);\n      resizePolar(polar, polarModel, api);\n      polarList.push(polar);\n      polarModel.coordinateSystem = polar;\n      polar.model = polarModel;\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      if (seriesModel.get('coordinateSystem') === 'polar') {\n        var polarModel = seriesModel.getReferringComponents('polar', SINGLE_REFERRING).models[0];\n\n        if (process.env.NODE_ENV !== 'production') {\n          if (!polarModel) {\n            throw new Error('Polar \"' + zrUtil.retrieve(seriesModel.get('polarIndex'), seriesModel.get('polarId'), 0) + '\" not found');\n          }\n        }\n\n        seriesModel.coordinateSystem = polarModel.coordinateSystem;\n      }\n    });\n    return polarList;\n  }\n};\nexport default polarCreator;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { createTextStyle } from '../../label/labelStyle';\nimport Model from '../../model/Model';\nimport AxisView from './AxisView';\nimport AxisBuilder from './AxisBuilder';\nimport { getECData } from '../../util/innerStore';\nvar elementList = ['axisLine', 'axisLabel', 'axisTick', 'minorTick', 'splitLine', 'minorSplitLine', 'splitArea'];\n\nfunction getAxisLineShape(polar, rExtent, angle) {\n  rExtent[1] > rExtent[0] && (rExtent = rExtent.slice().reverse());\n  var start = polar.coordToPoint([rExtent[0], angle]);\n  var end = polar.coordToPoint([rExtent[1], angle]);\n  return {\n    x1: start[0],\n    y1: start[1],\n    x2: end[0],\n    y2: end[1]\n  };\n}\n\nfunction getRadiusIdx(polar) {\n  var radiusAxis = polar.getRadiusAxis();\n  return radiusAxis.inverse ? 0 : 1;\n}\n\nfunction fixAngleOverlap(list) {\n  var firstItem = list[0];\n  var lastItem = list[list.length - 1];\n\n  if (firstItem && lastItem && Math.abs(Math.abs(firstItem.coord - lastItem.coord) - 360) < 1e-4) {\n    list.pop();\n  }\n}\n\nvar AngleAxisView = function (_super) {\n  __extends(AngleAxisView, _super);\n\n  function AngleAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = AngleAxisView.type;\n    _this.axisPointerClass = 'PolarAxisPointer';\n    return _this;\n  }\n\n  AngleAxisView.prototype.render = function (angleAxisModel, ecModel) {\n    this.group.removeAll();\n\n    if (!angleAxisModel.get('show')) {\n      return;\n    }\n\n    var angleAxis = angleAxisModel.axis;\n    var polar = angleAxis.polar;\n    var radiusExtent = polar.getRadiusAxis().getExtent();\n    var ticksAngles = angleAxis.getTicksCoords();\n    var minorTickAngles = angleAxis.getMinorTicksCoords();\n    var labels = zrUtil.map(angleAxis.getViewLabels(), function (labelItem) {\n      labelItem = zrUtil.clone(labelItem);\n      var scale = angleAxis.scale;\n      var tickValue = scale.type === 'ordinal' ? scale.getRawOrdinalNumber(labelItem.tickValue) : labelItem.tickValue;\n      labelItem.coord = angleAxis.dataToCoord(tickValue);\n      return labelItem;\n    });\n    fixAngleOverlap(labels);\n    fixAngleOverlap(ticksAngles);\n    zrUtil.each(elementList, function (name) {\n      if (angleAxisModel.get([name, 'show']) && (!angleAxis.scale.isBlank() || name === 'axisLine')) {\n        angelAxisElementsBuilders[name](this.group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent, labels);\n      }\n    }, this);\n  };\n\n  AngleAxisView.type = 'angleAxis';\n  return AngleAxisView;\n}(AxisView);\n\nvar angelAxisElementsBuilders = {\n  axisLine: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n    var lineStyleModel = angleAxisModel.getModel(['axisLine', 'lineStyle']);\n    var rId = getRadiusIdx(polar);\n    var r0Id = rId ? 0 : 1;\n    var shape;\n\n    if (radiusExtent[r0Id] === 0) {\n      shape = new graphic.Circle({\n        shape: {\n          cx: polar.cx,\n          cy: polar.cy,\n          r: radiusExtent[rId]\n        },\n        style: lineStyleModel.getLineStyle(),\n        z2: 1,\n        silent: true\n      });\n    } else {\n      shape = new graphic.Ring({\n        shape: {\n          cx: polar.cx,\n          cy: polar.cy,\n          r: radiusExtent[rId],\n          r0: radiusExtent[r0Id]\n        },\n        style: lineStyleModel.getLineStyle(),\n        z2: 1,\n        silent: true\n      });\n    }\n\n    shape.style.fill = null;\n    group.add(shape);\n  },\n  axisTick: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n    var tickModel = angleAxisModel.getModel('axisTick');\n    var tickLen = (tickModel.get('inside') ? -1 : 1) * tickModel.get('length');\n    var radius = radiusExtent[getRadiusIdx(polar)];\n    var lines = zrUtil.map(ticksAngles, function (tickAngleItem) {\n      return new graphic.Line({\n        shape: getAxisLineShape(polar, [radius, radius + tickLen], tickAngleItem.coord)\n      });\n    });\n    group.add(graphic.mergePath(lines, {\n      style: zrUtil.defaults(tickModel.getModel('lineStyle').getLineStyle(), {\n        stroke: angleAxisModel.get(['axisLine', 'lineStyle', 'color'])\n      })\n    }));\n  },\n  minorTick: function (group, angleAxisModel, polar, tickAngles, minorTickAngles, radiusExtent) {\n    if (!minorTickAngles.length) {\n      return;\n    }\n\n    var tickModel = angleAxisModel.getModel('axisTick');\n    var minorTickModel = angleAxisModel.getModel('minorTick');\n    var tickLen = (tickModel.get('inside') ? -1 : 1) * minorTickModel.get('length');\n    var radius = radiusExtent[getRadiusIdx(polar)];\n    var lines = [];\n\n    for (var i = 0; i < minorTickAngles.length; i++) {\n      for (var k = 0; k < minorTickAngles[i].length; k++) {\n        lines.push(new graphic.Line({\n          shape: getAxisLineShape(polar, [radius, radius + tickLen], minorTickAngles[i][k].coord)\n        }));\n      }\n    }\n\n    group.add(graphic.mergePath(lines, {\n      style: zrUtil.defaults(minorTickModel.getModel('lineStyle').getLineStyle(), zrUtil.defaults(tickModel.getLineStyle(), {\n        stroke: angleAxisModel.get(['axisLine', 'lineStyle', 'color'])\n      }))\n    }));\n  },\n  axisLabel: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent, labels) {\n    var rawCategoryData = angleAxisModel.getCategories(true);\n    var commonLabelModel = angleAxisModel.getModel('axisLabel');\n    var labelMargin = commonLabelModel.get('margin');\n    var triggerEvent = angleAxisModel.get('triggerEvent');\n    zrUtil.each(labels, function (labelItem, idx) {\n      var labelModel = commonLabelModel;\n      var tickValue = labelItem.tickValue;\n      var r = radiusExtent[getRadiusIdx(polar)];\n      var p = polar.coordToPoint([r + labelMargin, labelItem.coord]);\n      var cx = polar.cx;\n      var cy = polar.cy;\n      var labelTextAlign = Math.abs(p[0] - cx) / r < 0.3 ? 'center' : p[0] > cx ? 'left' : 'right';\n      var labelTextVerticalAlign = Math.abs(p[1] - cy) / r < 0.3 ? 'middle' : p[1] > cy ? 'top' : 'bottom';\n\n      if (rawCategoryData && rawCategoryData[tickValue]) {\n        var rawCategoryItem = rawCategoryData[tickValue];\n\n        if (zrUtil.isObject(rawCategoryItem) && rawCategoryItem.textStyle) {\n          labelModel = new Model(rawCategoryItem.textStyle, commonLabelModel, commonLabelModel.ecModel);\n        }\n      }\n\n      var textEl = new graphic.Text({\n        silent: AxisBuilder.isLabelSilent(angleAxisModel),\n        style: createTextStyle(labelModel, {\n          x: p[0],\n          y: p[1],\n          fill: labelModel.getTextColor() || angleAxisModel.get(['axisLine', 'lineStyle', 'color']),\n          text: labelItem.formattedLabel,\n          align: labelTextAlign,\n          verticalAlign: labelTextVerticalAlign\n        })\n      });\n      group.add(textEl);\n\n      if (triggerEvent) {\n        var eventData = AxisBuilder.makeAxisEventDataBase(angleAxisModel);\n        eventData.targetType = 'axisLabel';\n        eventData.value = labelItem.rawLabel;\n        getECData(textEl).eventData = eventData;\n      }\n    }, this);\n  },\n  splitLine: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n    var splitLineModel = angleAxisModel.getModel('splitLine');\n    var lineStyleModel = splitLineModel.getModel('lineStyle');\n    var lineColors = lineStyleModel.get('color');\n    var lineCount = 0;\n    lineColors = lineColors instanceof Array ? lineColors : [lineColors];\n    var splitLines = [];\n\n    for (var i = 0; i < ticksAngles.length; i++) {\n      var colorIndex = lineCount++ % lineColors.length;\n      splitLines[colorIndex] = splitLines[colorIndex] || [];\n      splitLines[colorIndex].push(new graphic.Line({\n        shape: getAxisLineShape(polar, radiusExtent, ticksAngles[i].coord)\n      }));\n    }\n\n    for (var i = 0; i < splitLines.length; i++) {\n      group.add(graphic.mergePath(splitLines[i], {\n        style: zrUtil.defaults({\n          stroke: lineColors[i % lineColors.length]\n        }, lineStyleModel.getLineStyle()),\n        silent: true,\n        z: angleAxisModel.get('z')\n      }));\n    }\n  },\n  minorSplitLine: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n    if (!minorTickAngles.length) {\n      return;\n    }\n\n    var minorSplitLineModel = angleAxisModel.getModel('minorSplitLine');\n    var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\n    var lines = [];\n\n    for (var i = 0; i < minorTickAngles.length; i++) {\n      for (var k = 0; k < minorTickAngles[i].length; k++) {\n        lines.push(new graphic.Line({\n          shape: getAxisLineShape(polar, radiusExtent, minorTickAngles[i][k].coord)\n        }));\n      }\n    }\n\n    group.add(graphic.mergePath(lines, {\n      style: lineStyleModel.getLineStyle(),\n      silent: true,\n      z: angleAxisModel.get('z')\n    }));\n  },\n  splitArea: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n    if (!ticksAngles.length) {\n      return;\n    }\n\n    var splitAreaModel = angleAxisModel.getModel('splitArea');\n    var areaStyleModel = splitAreaModel.getModel('areaStyle');\n    var areaColors = areaStyleModel.get('color');\n    var lineCount = 0;\n    areaColors = areaColors instanceof Array ? areaColors : [areaColors];\n    var splitAreas = [];\n    var RADIAN = Math.PI / 180;\n    var prevAngle = -ticksAngles[0].coord * RADIAN;\n    var r0 = Math.min(radiusExtent[0], radiusExtent[1]);\n    var r1 = Math.max(radiusExtent[0], radiusExtent[1]);\n    var clockwise = angleAxisModel.get('clockwise');\n\n    for (var i = 1, len = ticksAngles.length; i <= len; i++) {\n      var coord = i === len ? ticksAngles[0].coord : ticksAngles[i].coord;\n      var colorIndex = lineCount++ % areaColors.length;\n      splitAreas[colorIndex] = splitAreas[colorIndex] || [];\n      splitAreas[colorIndex].push(new graphic.Sector({\n        shape: {\n          cx: polar.cx,\n          cy: polar.cy,\n          r0: r0,\n          r: r1,\n          startAngle: prevAngle,\n          endAngle: -coord * RADIAN,\n          clockwise: clockwise\n        },\n        silent: true\n      }));\n      prevAngle = -coord * RADIAN;\n    }\n\n    for (var i = 0; i < splitAreas.length; i++) {\n      group.add(graphic.mergePath(splitAreas[i], {\n        style: zrUtil.defaults({\n          fill: areaColors[i % areaColors.length]\n        }, areaStyleModel.getAreaStyle()),\n        silent: true\n      }));\n    }\n  }\n};\nexport default AngleAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport AxisBuilder from './AxisBuilder';\nimport AxisView from './AxisView';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitLine', 'splitArea', 'minorSplitLine'];\n\nvar RadiusAxisView = function (_super) {\n  __extends(RadiusAxisView, _super);\n\n  function RadiusAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = RadiusAxisView.type;\n    _this.axisPointerClass = 'PolarAxisPointer';\n    return _this;\n  }\n\n  RadiusAxisView.prototype.render = function (radiusAxisModel, ecModel) {\n    this.group.removeAll();\n\n    if (!radiusAxisModel.get('show')) {\n      return;\n    }\n\n    var oldAxisGroup = this._axisGroup;\n    var newAxisGroup = this._axisGroup = new graphic.Group();\n    this.group.add(newAxisGroup);\n    var radiusAxis = radiusAxisModel.axis;\n    var polar = radiusAxis.polar;\n    var angleAxis = polar.getAngleAxis();\n    var ticksCoords = radiusAxis.getTicksCoords();\n    var minorTicksCoords = radiusAxis.getMinorTicksCoords();\n    var axisAngle = angleAxis.getExtent()[0];\n    var radiusExtent = radiusAxis.getExtent();\n    var layout = layoutAxis(polar, radiusAxisModel, axisAngle);\n    var axisBuilder = new AxisBuilder(radiusAxisModel, layout);\n    zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n    newAxisGroup.add(axisBuilder.getGroup());\n    graphic.groupTransition(oldAxisGroup, newAxisGroup, radiusAxisModel);\n    zrUtil.each(selfBuilderAttrs, function (name) {\n      if (radiusAxisModel.get([name, 'show']) && !radiusAxis.scale.isBlank()) {\n        axisElementBuilders[name](this.group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords, minorTicksCoords);\n      }\n    }, this);\n  };\n\n  RadiusAxisView.type = 'radiusAxis';\n  return RadiusAxisView;\n}(AxisView);\n\nvar axisElementBuilders = {\n  splitLine: function (group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords) {\n    var splitLineModel = radiusAxisModel.getModel('splitLine');\n    var lineStyleModel = splitLineModel.getModel('lineStyle');\n    var lineColors = lineStyleModel.get('color');\n    var lineCount = 0;\n    lineColors = lineColors instanceof Array ? lineColors : [lineColors];\n    var splitLines = [];\n\n    for (var i = 0; i < ticksCoords.length; i++) {\n      var colorIndex = lineCount++ % lineColors.length;\n      splitLines[colorIndex] = splitLines[colorIndex] || [];\n      splitLines[colorIndex].push(new graphic.Circle({\n        shape: {\n          cx: polar.cx,\n          cy: polar.cy,\n          r: ticksCoords[i].coord\n        }\n      }));\n    }\n\n    for (var i = 0; i < splitLines.length; i++) {\n      group.add(graphic.mergePath(splitLines[i], {\n        style: zrUtil.defaults({\n          stroke: lineColors[i % lineColors.length],\n          fill: null\n        }, lineStyleModel.getLineStyle()),\n        silent: true\n      }));\n    }\n  },\n  minorSplitLine: function (group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords, minorTicksCoords) {\n    if (!minorTicksCoords.length) {\n      return;\n    }\n\n    var minorSplitLineModel = radiusAxisModel.getModel('minorSplitLine');\n    var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\n    var lines = [];\n\n    for (var i = 0; i < minorTicksCoords.length; i++) {\n      for (var k = 0; k < minorTicksCoords[i].length; k++) {\n        lines.push(new graphic.Circle({\n          shape: {\n            cx: polar.cx,\n            cy: polar.cy,\n            r: minorTicksCoords[i][k].coord\n          }\n        }));\n      }\n    }\n\n    group.add(graphic.mergePath(lines, {\n      style: zrUtil.defaults({\n        fill: null\n      }, lineStyleModel.getLineStyle()),\n      silent: true\n    }));\n  },\n  splitArea: function (group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords) {\n    if (!ticksCoords.length) {\n      return;\n    }\n\n    var splitAreaModel = radiusAxisModel.getModel('splitArea');\n    var areaStyleModel = splitAreaModel.getModel('areaStyle');\n    var areaColors = areaStyleModel.get('color');\n    var lineCount = 0;\n    areaColors = areaColors instanceof Array ? areaColors : [areaColors];\n    var splitAreas = [];\n    var prevRadius = ticksCoords[0].coord;\n\n    for (var i = 1; i < ticksCoords.length; i++) {\n      var colorIndex = lineCount++ % areaColors.length;\n      splitAreas[colorIndex] = splitAreas[colorIndex] || [];\n      splitAreas[colorIndex].push(new graphic.Sector({\n        shape: {\n          cx: polar.cx,\n          cy: polar.cy,\n          r0: prevRadius,\n          r: ticksCoords[i].coord,\n          startAngle: 0,\n          endAngle: Math.PI * 2\n        },\n        silent: true\n      }));\n      prevRadius = ticksCoords[i].coord;\n    }\n\n    for (var i = 0; i < splitAreas.length; i++) {\n      group.add(graphic.mergePath(splitAreas[i], {\n        style: zrUtil.defaults({\n          fill: areaColors[i % areaColors.length]\n        }, areaStyleModel.getAreaStyle()),\n        silent: true\n      }));\n    }\n  }\n};\n\nfunction layoutAxis(polar, radiusAxisModel, axisAngle) {\n  return {\n    position: [polar.cx, polar.cy],\n    rotation: axisAngle / 180 * Math.PI,\n    labelDirection: -1,\n    tickDirection: -1,\n    nameDirection: 1,\n    labelRotate: radiusAxisModel.getModel('axisLabel').get('rotate'),\n    z2: 1\n  };\n}\n\nexport default RadiusAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parsePercent } from '../util/number';\nimport { isDimensionStacked } from '../data/helper/dataStackHelper';\n\nfunction getSeriesStackId(seriesModel) {\n  return seriesModel.get('stack') || '__ec_stack_' + seriesModel.seriesIndex;\n}\n\nfunction getAxisKey(polar, axis) {\n  return axis.dim + polar.model.componentIndex;\n}\n\nfunction barLayoutPolar(seriesType, ecModel, api) {\n  var lastStackCoords = {};\n  var barWidthAndOffset = calRadialBar(zrUtil.filter(ecModel.getSeriesByType(seriesType), function (seriesModel) {\n    return !ecModel.isSeriesFiltered(seriesModel) && seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'polar';\n  }));\n  ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n    if (seriesModel.coordinateSystem.type !== 'polar') {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var polar = seriesModel.coordinateSystem;\n    var baseAxis = polar.getBaseAxis();\n    var axisKey = getAxisKey(polar, baseAxis);\n    var stackId = getSeriesStackId(seriesModel);\n    var columnLayoutInfo = barWidthAndOffset[axisKey][stackId];\n    var columnOffset = columnLayoutInfo.offset;\n    var columnWidth = columnLayoutInfo.width;\n    var valueAxis = polar.getOtherAxis(baseAxis);\n    var cx = seriesModel.coordinateSystem.cx;\n    var cy = seriesModel.coordinateSystem.cy;\n    var barMinHeight = seriesModel.get('barMinHeight') || 0;\n    var barMinAngle = seriesModel.get('barMinAngle') || 0;\n    lastStackCoords[stackId] = lastStackCoords[stackId] || [];\n    var valueDim = data.mapDimension(valueAxis.dim);\n    var baseDim = data.mapDimension(baseAxis.dim);\n    var stacked = isDimensionStacked(data, valueDim);\n    var clampLayout = baseAxis.dim !== 'radius' || !seriesModel.get('roundCap', true);\n    var valueAxisStart = valueAxis.dataToCoord(0);\n\n    for (var idx = 0, len = data.count(); idx < len; idx++) {\n      var value = data.get(valueDim, idx);\n      var baseValue = data.get(baseDim, idx);\n      var sign = value >= 0 ? 'p' : 'n';\n      var baseCoord = valueAxisStart;\n\n      if (stacked) {\n        if (!lastStackCoords[stackId][baseValue]) {\n          lastStackCoords[stackId][baseValue] = {\n            p: valueAxisStart,\n            n: valueAxisStart\n          };\n        }\n\n        baseCoord = lastStackCoords[stackId][baseValue][sign];\n      }\n\n      var r0 = void 0;\n      var r = void 0;\n      var startAngle = void 0;\n      var endAngle = void 0;\n\n      if (valueAxis.dim === 'radius') {\n        var radiusSpan = valueAxis.dataToCoord(value) - valueAxisStart;\n        var angle = baseAxis.dataToCoord(baseValue);\n\n        if (Math.abs(radiusSpan) < barMinHeight) {\n          radiusSpan = (radiusSpan < 0 ? -1 : 1) * barMinHeight;\n        }\n\n        r0 = baseCoord;\n        r = baseCoord + radiusSpan;\n        startAngle = angle - columnOffset;\n        endAngle = startAngle - columnWidth;\n        stacked && (lastStackCoords[stackId][baseValue][sign] = r);\n      } else {\n        var angleSpan = valueAxis.dataToCoord(value, clampLayout) - valueAxisStart;\n        var radius = baseAxis.dataToCoord(baseValue);\n\n        if (Math.abs(angleSpan) < barMinAngle) {\n          angleSpan = (angleSpan < 0 ? -1 : 1) * barMinAngle;\n        }\n\n        r0 = radius + columnOffset;\n        r = r0 + columnWidth;\n        startAngle = baseCoord;\n        endAngle = baseCoord + angleSpan;\n        stacked && (lastStackCoords[stackId][baseValue][sign] = endAngle);\n      }\n\n      data.setItemLayout(idx, {\n        cx: cx,\n        cy: cy,\n        r0: r0,\n        r: r,\n        startAngle: -startAngle * Math.PI / 180,\n        endAngle: -endAngle * Math.PI / 180\n      });\n    }\n  });\n}\n\nfunction calRadialBar(barSeries) {\n  var columnsMap = {};\n  zrUtil.each(barSeries, function (seriesModel, idx) {\n    var data = seriesModel.getData();\n    var polar = seriesModel.coordinateSystem;\n    var baseAxis = polar.getBaseAxis();\n    var axisKey = getAxisKey(polar, baseAxis);\n    var axisExtent = baseAxis.getExtent();\n    var bandWidth = baseAxis.type === 'category' ? baseAxis.getBandWidth() : Math.abs(axisExtent[1] - axisExtent[0]) / data.count();\n    var columnsOnAxis = columnsMap[axisKey] || {\n      bandWidth: bandWidth,\n      remainedWidth: bandWidth,\n      autoWidthCount: 0,\n      categoryGap: '20%',\n      gap: '30%',\n      stacks: {}\n    };\n    var stacks = columnsOnAxis.stacks;\n    columnsMap[axisKey] = columnsOnAxis;\n    var stackId = getSeriesStackId(seriesModel);\n\n    if (!stacks[stackId]) {\n      columnsOnAxis.autoWidthCount++;\n    }\n\n    stacks[stackId] = stacks[stackId] || {\n      width: 0,\n      maxWidth: 0\n    };\n    var barWidth = parsePercent(seriesModel.get('barWidth'), bandWidth);\n    var barMaxWidth = parsePercent(seriesModel.get('barMaxWidth'), bandWidth);\n    var barGap = seriesModel.get('barGap');\n    var barCategoryGap = seriesModel.get('barCategoryGap');\n\n    if (barWidth && !stacks[stackId].width) {\n      barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\n      stacks[stackId].width = barWidth;\n      columnsOnAxis.remainedWidth -= barWidth;\n    }\n\n    barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\n    barGap != null && (columnsOnAxis.gap = barGap);\n    barCategoryGap != null && (columnsOnAxis.categoryGap = barCategoryGap);\n  });\n  var result = {};\n  zrUtil.each(columnsMap, function (columnsOnAxis, coordSysName) {\n    result[coordSysName] = {};\n    var stacks = columnsOnAxis.stacks;\n    var bandWidth = columnsOnAxis.bandWidth;\n    var categoryGap = parsePercent(columnsOnAxis.categoryGap, bandWidth);\n    var barGapPercent = parsePercent(columnsOnAxis.gap, 1);\n    var remainedWidth = columnsOnAxis.remainedWidth;\n    var autoWidthCount = columnsOnAxis.autoWidthCount;\n    var autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n    autoWidth = Math.max(autoWidth, 0);\n    zrUtil.each(stacks, function (column, stack) {\n      var maxWidth = column.maxWidth;\n\n      if (maxWidth && maxWidth < autoWidth) {\n        maxWidth = Math.min(maxWidth, remainedWidth);\n\n        if (column.width) {\n          maxWidth = Math.min(maxWidth, column.width);\n        }\n\n        remainedWidth -= maxWidth;\n        column.width = maxWidth;\n        autoWidthCount--;\n      }\n    });\n    autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n    autoWidth = Math.max(autoWidth, 0);\n    var widthSum = 0;\n    var lastColumn;\n    zrUtil.each(stacks, function (column, idx) {\n      if (!column.width) {\n        column.width = autoWidth;\n      }\n\n      lastColumn = column;\n      widthSum += column.width * (1 + barGapPercent);\n    });\n\n    if (lastColumn) {\n      widthSum -= lastColumn.width * barGapPercent;\n    }\n\n    var offset = -widthSum / 2;\n    zrUtil.each(stacks, function (column, stackId) {\n      result[coordSysName][stackId] = result[coordSysName][stackId] || {\n        offset: offset,\n        width: column.width\n      };\n      offset += column.width * (1 + barGapPercent);\n    });\n  });\n  return result;\n}\n\nexport default barLayoutPolar;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { use } from '../../extension';\nimport AxisView from '../axis/AxisView';\nimport PolarAxisPointer from '../axisPointer/PolarAxisPointer';\nimport { install as installAxisPointer } from '../axisPointer/install';\nimport PolarModel from '../../coord/polar/PolarModel';\nimport axisModelCreator from '../../coord/axisModelCreator';\nimport { AngleAxisModel, RadiusAxisModel } from '../../coord/polar/AxisModel';\nimport polarCreator from '../../coord/polar/polarCreator';\nimport AngleAxisView from '../axis/AngleAxisView';\nimport RadiusAxisView from '../axis/RadiusAxisView';\nimport ComponentView from '../../view/Component';\nimport { curry } from 'zrender/lib/core/util';\nimport barLayoutPolar from '../../layout/barPolar';\nvar angleAxisExtraOption = {\n  startAngle: 90,\n  clockwise: true,\n  splitNumber: 12,\n  axisLabel: {\n    rotate: 0\n  }\n};\nvar radiusAxisExtraOption = {\n  splitNumber: 5\n};\n\nvar PolarView = function (_super) {\n  __extends(PolarView, _super);\n\n  function PolarView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = PolarView.type;\n    return _this;\n  }\n\n  PolarView.type = 'polar';\n  return PolarView;\n}(ComponentView);\n\nexport function install(registers) {\n  use(installAxisPointer);\n  AxisView.registerAxisPointerClass('PolarAxisPointer', PolarAxisPointer);\n  registers.registerCoordinateSystem('polar', polarCreator);\n  registers.registerComponentModel(PolarModel);\n  registers.registerComponentView(PolarView);\n  axisModelCreator(registers, 'angle', AngleAxisModel, angleAxisExtraOption);\n  axisModelCreator(registers, 'radius', RadiusAxisModel, radiusAxisExtraOption);\n  registers.registerComponentView(AngleAxisView);\n  registers.registerComponentView(RadiusAxisView);\n  registers.registerLayout(curry(barLayoutPolar, 'bar'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport View from '../View';\nimport geoSourceManager from './geoSourceManager';\nimport { SINGLE_REFERRING } from '../../util/model';\n\nvar Geo = function (_super) {\n  __extends(Geo, _super);\n\n  function Geo(name, map, nameMap, invertLongitute) {\n    var _this = _super.call(this, name) || this;\n\n    _this.dimensions = ['lng', 'lat'];\n    _this.type = 'geo';\n    _this.map = map;\n    var source = geoSourceManager.load(map, nameMap);\n    _this._nameCoordMap = source.nameCoordMap;\n    _this._regionsMap = source.regionsMap;\n    _this._invertLongitute = invertLongitute == null ? true : invertLongitute;\n    _this.regions = source.regions;\n    _this._rect = source.boundingRect;\n    return _this;\n  }\n\n  Geo.prototype.containCoord = function (coord) {\n    var regions = this.regions;\n\n    for (var i = 0; i < regions.length; i++) {\n      if (regions[i].contain(coord)) {\n        return true;\n      }\n    }\n\n    return false;\n  };\n\n  Geo.prototype.transformTo = function (x, y, width, height) {\n    var rect = this.getBoundingRect();\n    var invertLongitute = this._invertLongitute;\n    rect = rect.clone();\n\n    if (invertLongitute) {\n      rect.y = -rect.y - rect.height;\n    }\n\n    var rawTransformable = this._rawTransformable;\n    rawTransformable.transform = rect.calculateTransform(new BoundingRect(x, y, width, height));\n    rawTransformable.decomposeTransform();\n\n    if (invertLongitute) {\n      rawTransformable.scaleY = -rawTransformable.scaleY;\n    }\n\n    rawTransformable.updateTransform();\n\n    this._updateTransform();\n  };\n\n  Geo.prototype.getRegion = function (name) {\n    return this._regionsMap.get(name);\n  };\n\n  Geo.prototype.getRegionByCoord = function (coord) {\n    var regions = this.regions;\n\n    for (var i = 0; i < regions.length; i++) {\n      if (regions[i].contain(coord)) {\n        return regions[i];\n      }\n    }\n  };\n\n  Geo.prototype.addGeoCoord = function (name, geoCoord) {\n    this._nameCoordMap.set(name, geoCoord);\n  };\n\n  Geo.prototype.getGeoCoord = function (name) {\n    return this._nameCoordMap.get(name);\n  };\n\n  Geo.prototype.getBoundingRect = function () {\n    return this._rect;\n  };\n\n  Geo.prototype.dataToPoint = function (data, noRoam, out) {\n    if (typeof data === 'string') {\n      data = this.getGeoCoord(data);\n    }\n\n    if (data) {\n      return View.prototype.dataToPoint.call(this, data, noRoam, out);\n    }\n  };\n\n  Geo.prototype.convertToPixel = function (ecModel, finder, value) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? coordSys.dataToPoint(value) : null;\n  };\n\n  Geo.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? coordSys.pointToData(pixel) : null;\n  };\n\n  return Geo;\n}(View);\n\n;\nzrUtil.mixin(Geo, View);\n\nfunction getCoordSys(finder) {\n  var geoModel = finder.geoModel;\n  var seriesModel = finder.seriesModel;\n  return geoModel ? geoModel.coordinateSystem : seriesModel ? seriesModel.coordinateSystem || (seriesModel.getReferringComponents('geo', SINGLE_REFERRING).models[0] || {}).coordinateSystem : null;\n}\n\nexport default Geo;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Geo from './Geo';\nimport * as layout from '../../util/layout';\nimport * as numberUtil from '../../util/number';\nimport geoSourceManager from './geoSourceManager';\nimport mapDataStorage from './mapDataStorage';\n\nfunction resizeGeo(geoModel, api) {\n  var boundingCoords = geoModel.get('boundingCoords');\n\n  if (boundingCoords != null) {\n    var leftTop = boundingCoords[0];\n    var rightBottom = boundingCoords[1];\n\n    if (isNaN(leftTop[0]) || isNaN(leftTop[1]) || isNaN(rightBottom[0]) || isNaN(rightBottom[1])) {\n      if (process.env.NODE_ENV !== 'production') {\n        console.error('Invalid boundingCoords');\n      }\n    } else {\n      this.setBoundingRect(leftTop[0], leftTop[1], rightBottom[0] - leftTop[0], rightBottom[1] - leftTop[1]);\n    }\n  }\n\n  var rect = this.getBoundingRect();\n  var centerOption = geoModel.get('layoutCenter');\n  var sizeOption = geoModel.get('layoutSize');\n  var viewWidth = api.getWidth();\n  var viewHeight = api.getHeight();\n  var aspect = rect.width / rect.height * this.aspectScale;\n  var useCenterAndSize = false;\n  var center;\n  var size;\n\n  if (centerOption && sizeOption) {\n    center = [numberUtil.parsePercent(centerOption[0], viewWidth), numberUtil.parsePercent(centerOption[1], viewHeight)];\n    size = numberUtil.parsePercent(sizeOption, Math.min(viewWidth, viewHeight));\n\n    if (!isNaN(center[0]) && !isNaN(center[1]) && !isNaN(size)) {\n      useCenterAndSize = true;\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn('Given layoutCenter or layoutSize data are invalid. Use left/top/width/height instead.');\n      }\n    }\n  }\n\n  var viewRect;\n\n  if (useCenterAndSize) {\n    viewRect = {};\n\n    if (aspect > 1) {\n      viewRect.width = size;\n      viewRect.height = size / aspect;\n    } else {\n      viewRect.height = size;\n      viewRect.width = size * aspect;\n    }\n\n    viewRect.y = center[1] - viewRect.height / 2;\n    viewRect.x = center[0] - viewRect.width / 2;\n  } else {\n    var boxLayoutOption = geoModel.getBoxLayoutParams();\n    boxLayoutOption.aspect = aspect;\n    viewRect = layout.getLayoutRect(boxLayoutOption, {\n      width: viewWidth,\n      height: viewHeight\n    });\n  }\n\n  this.setViewRect(viewRect.x, viewRect.y, viewRect.width, viewRect.height);\n  this.setCenter(geoModel.get('center'));\n  this.setZoom(geoModel.get('zoom'));\n}\n\nfunction setGeoCoords(geo, model) {\n  zrUtil.each(model.get('geoCoord'), function (geoCoord, name) {\n    geo.addGeoCoord(name, geoCoord);\n  });\n}\n\nvar GeoCreator = function () {\n  function GeoCreator() {\n    this.dimensions = Geo.prototype.dimensions;\n  }\n\n  GeoCreator.prototype.create = function (ecModel, api) {\n    var geoList = [];\n    ecModel.eachComponent('geo', function (geoModel, idx) {\n      var name = geoModel.get('map');\n      var aspectScale = geoModel.get('aspectScale');\n      var invertLongitute = true;\n      var mapRecords = mapDataStorage.retrieveMap(name);\n\n      if (mapRecords && mapRecords[0] && mapRecords[0].type === 'svg') {\n        aspectScale == null && (aspectScale = 1);\n        invertLongitute = false;\n      } else {\n        aspectScale == null && (aspectScale = 0.75);\n      }\n\n      var geo = new Geo(name + idx, name, geoModel.get('nameMap'), invertLongitute);\n      geo.aspectScale = aspectScale;\n      geo.zoomLimit = geoModel.get('scaleLimit');\n      geoList.push(geo);\n      geoModel.coordinateSystem = geo;\n      geo.model = geoModel;\n      geo.resize = resizeGeo;\n      geo.resize(geoModel, api);\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      var coordSys = seriesModel.get('coordinateSystem');\n\n      if (coordSys === 'geo') {\n        var geoIndex = seriesModel.get('geoIndex') || 0;\n        seriesModel.coordinateSystem = geoList[geoIndex];\n      }\n    });\n    var mapModelGroupBySeries = {};\n    ecModel.eachSeriesByType('map', function (seriesModel) {\n      if (!seriesModel.getHostGeoModel()) {\n        var mapType = seriesModel.getMapType();\n        mapModelGroupBySeries[mapType] = mapModelGroupBySeries[mapType] || [];\n        mapModelGroupBySeries[mapType].push(seriesModel);\n      }\n    });\n    zrUtil.each(mapModelGroupBySeries, function (mapSeries, mapType) {\n      var nameMapList = zrUtil.map(mapSeries, function (singleMapSeries) {\n        return singleMapSeries.get('nameMap');\n      });\n      var geo = new Geo(mapType, mapType, zrUtil.mergeAll(nameMapList));\n      geo.zoomLimit = zrUtil.retrieve.apply(null, zrUtil.map(mapSeries, function (singleMapSeries) {\n        return singleMapSeries.get('scaleLimit');\n      }));\n      geoList.push(geo);\n      geo.resize = resizeGeo;\n      geo.aspectScale = mapSeries[0].get('aspectScale');\n      geo.resize(mapSeries[0], api);\n      zrUtil.each(mapSeries, function (singleMapSeries) {\n        singleMapSeries.coordinateSystem = geo;\n        setGeoCoords(geo, singleMapSeries);\n      });\n    });\n    return geoList;\n  };\n\n  GeoCreator.prototype.getFilledRegions = function (originRegionArr, mapName, nameMap) {\n    var regionsArr = (originRegionArr || []).slice();\n    var dataNameMap = zrUtil.createHashMap();\n\n    for (var i = 0; i < regionsArr.length; i++) {\n      dataNameMap.set(regionsArr[i].name, regionsArr[i]);\n    }\n\n    var source = geoSourceManager.load(mapName, nameMap);\n    zrUtil.each(source.regions, function (region) {\n      var name = region.name;\n      !dataNameMap.get(name) && regionsArr.push({\n        name: name\n      });\n    });\n    return regionsArr;\n  };\n\n  return GeoCreator;\n}();\n\nvar geoCreator = new GeoCreator();\nexport default geoCreator;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nimport ComponentModel from '../../model/Component';\nimport Model from '../../model/Model';\nimport geoCreator from './geoCreator';\n;\n;\n\nvar GeoModel = function (_super) {\n  __extends(GeoModel, _super);\n\n  function GeoModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GeoModel.type;\n    return _this;\n  }\n\n  GeoModel.prototype.init = function (option, parentModel, ecModel) {\n    _super.prototype.init.call(this, option, parentModel, ecModel);\n\n    modelUtil.defaultEmphasis(option, 'label', ['show']);\n  };\n\n  GeoModel.prototype.optionUpdated = function () {\n    var option = this.option;\n    var self = this;\n    option.regions = geoCreator.getFilledRegions(option.regions, option.map, option.nameMap);\n    var selectedMap = {};\n    this._optionModelMap = zrUtil.reduce(option.regions || [], function (optionModelMap, regionOpt) {\n      var regionName = regionOpt.name;\n\n      if (regionName) {\n        optionModelMap.set(regionName, new Model(regionOpt, self));\n\n        if (regionOpt.selected) {\n          selectedMap[regionName] = true;\n        }\n      }\n\n      return optionModelMap;\n    }, zrUtil.createHashMap());\n\n    if (!option.selectedMap) {\n      option.selectedMap = selectedMap;\n    }\n  };\n\n  GeoModel.prototype.getRegionModel = function (name) {\n    return this._optionModelMap.get(name) || new Model(null, this, this.ecModel);\n  };\n\n  GeoModel.prototype.getFormattedLabel = function (name, status) {\n    var regionModel = this.getRegionModel(name);\n    var formatter = status === 'normal' ? regionModel.get(['label', 'formatter']) : regionModel.get(['emphasis', 'label', 'formatter']);\n    var params = {\n      name: name\n    };\n\n    if (typeof formatter === 'function') {\n      params.status = status;\n      return formatter(params);\n    } else if (typeof formatter === 'string') {\n      return formatter.replace('{a}', name != null ? name : '');\n    }\n  };\n\n  GeoModel.prototype.setZoom = function (zoom) {\n    this.option.zoom = zoom;\n  };\n\n  GeoModel.prototype.setCenter = function (center) {\n    this.option.center = center;\n  };\n\n  GeoModel.prototype.select = function (name) {\n    var option = this.option;\n    var selectedMode = option.selectedMode;\n\n    if (!selectedMode) {\n      return;\n    }\n\n    if (selectedMode !== 'multiple') {\n      option.selectedMap = null;\n    }\n\n    var selectedMap = option.selectedMap || (option.selectedMap = {});\n    selectedMap[name] = true;\n  };\n\n  GeoModel.prototype.unSelect = function (name) {\n    var selectedMap = this.option.selectedMap;\n\n    if (selectedMap) {\n      selectedMap[name] = false;\n    }\n  };\n\n  GeoModel.prototype.toggleSelected = function (name) {\n    this[this.isSelected(name) ? 'unSelect' : 'select'](name);\n  };\n\n  GeoModel.prototype.isSelected = function (name) {\n    var selectedMap = this.option.selectedMap;\n    return !!(selectedMap && selectedMap[name]);\n  };\n\n  GeoModel.prototype._initSelectedMapFromData = function () {};\n\n  GeoModel.type = 'geo';\n  GeoModel.layoutMode = 'box';\n  GeoModel.defaultOption = {\n    zlevel: 0,\n    z: 0,\n    show: true,\n    left: 'center',\n    top: 'center',\n    aspectScale: null,\n    silent: false,\n    map: '',\n    boundingCoords: null,\n    center: null,\n    zoom: 1,\n    scaleLimit: null,\n    label: {\n      show: false,\n      color: '#000'\n    },\n    itemStyle: {\n      borderWidth: 0.5,\n      borderColor: '#444',\n      color: '#eee'\n    },\n    emphasis: {\n      label: {\n        show: true,\n        color: 'rgb(100,0,0)'\n      },\n      itemStyle: {\n        color: 'rgba(255,215,0,0.8)'\n      }\n    },\n    select: {\n      label: {\n        show: true,\n        color: 'rgb(100,0,0)'\n      },\n      itemStyle: {\n        color: 'rgba(255,215,0,0.8)'\n      }\n    },\n    regions: []\n  };\n  return GeoModel;\n}(ComponentModel);\n\nexport default GeoModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport MapDraw from '../helper/MapDraw';\nimport ComponentView from '../../view/Component';\nimport { getECData } from '../../util/innerStore';\n\nvar GeoView = function (_super) {\n  __extends(GeoView, _super);\n\n  function GeoView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GeoView.type;\n    return _this;\n  }\n\n  GeoView.prototype.init = function (ecModel, api) {\n    var mapDraw = new MapDraw(api);\n    this._mapDraw = mapDraw;\n    this.group.add(mapDraw.group);\n    this._api = api;\n  };\n\n  GeoView.prototype.render = function (geoModel, ecModel, api, payload) {\n    var mapDraw = this._mapDraw;\n\n    if (geoModel.get('show')) {\n      mapDraw.draw(geoModel, ecModel, api, this, payload);\n    } else {\n      this._mapDraw.group.removeAll();\n    }\n\n    mapDraw.group.on('click', this._handleRegionClick, this);\n    mapDraw.group.silent = geoModel.get('silent');\n    this._model = geoModel;\n    this.updateSelectStatus(geoModel, ecModel, api);\n  };\n\n  GeoView.prototype._handleRegionClick = function (e) {\n    var current = e.target;\n    var eventData;\n\n    while (current && (eventData = getECData(current).eventData) == null) {\n      current = current.__hostTarget || current.parent;\n    }\n\n    if (eventData) {\n      this._api.dispatchAction({\n        type: 'geoToggleSelect',\n        geoId: this._model.id,\n        name: eventData.name\n      });\n    }\n  };\n\n  GeoView.prototype.updateSelectStatus = function (model, ecModel, api) {\n    var _this = this;\n\n    this._mapDraw.group.traverse(function (node) {\n      var eventData = getECData(node).eventData;\n\n      if (eventData) {\n        _this._model.isSelected(eventData.name) ? api.enterSelect(node) : api.leaveSelect(node);\n        return true;\n      }\n    });\n  };\n\n  GeoView.prototype.dispose = function () {\n    this._mapDraw && this._mapDraw.remove();\n  };\n\n  GeoView.type = 'geo';\n  return GeoView;\n}(ComponentView);\n\nexport default GeoView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport GeoModel from '../../coord/geo/GeoModel';\nimport geoCreator from '../../coord/geo/geoCreator';\nimport { each } from 'zrender/lib/core/util';\nimport { updateCenterAndZoom } from '../../action/roamHelper';\nimport GeoView from './GeoView';\nexport function install(registers) {\n  registers.registerCoordinateSystem('geo', geoCreator);\n  registers.registerComponentModel(GeoModel);\n  registers.registerComponentView(GeoView);\n\n  function makeAction(method, actionInfo) {\n    actionInfo.update = 'geo:updateSelectStatus';\n    registers.registerAction(actionInfo, function (payload, ecModel) {\n      var selected = {};\n      ecModel.eachComponent({\n        mainType: 'geo',\n        query: payload\n      }, function (geoModel) {\n        geoModel[method](payload.name);\n        var geo = geoModel.coordinateSystem;\n        each(geo.regions, function (region) {\n          selected[region.name] = geoModel.isSelected(region.name) || false;\n        });\n      });\n      return {\n        selected: selected,\n        name: payload.name\n      };\n    });\n  }\n\n  makeAction('toggleSelected', {\n    type: 'geoToggleSelect',\n    event: 'geoselectchanged'\n  });\n  makeAction('select', {\n    type: 'geoSelect',\n    event: 'geoselected'\n  });\n  makeAction('unSelect', {\n    type: 'geoUnSelect',\n    event: 'geounselected'\n  });\n  registers.registerAction({\n    type: 'geoRoam',\n    event: 'geoRoam',\n    update: 'updateTransform'\n  }, function (payload, ecModel) {\n    var componentType = payload.componentType || 'series';\n    ecModel.eachComponent({\n      mainType: componentType,\n      query: payload\n    }, function (componentModel) {\n      var geo = componentModel.coordinateSystem;\n\n      if (geo.type !== 'geo') {\n        return;\n      }\n\n      var res = updateCenterAndZoom(geo, payload, componentModel.get('scaleLimit'));\n      componentModel.setCenter && componentModel.setCenter(res.center);\n      componentModel.setZoom && componentModel.setZoom(res.zoom);\n\n      if (componentType === 'series') {\n        each(componentModel.seriesGroup, function (seriesModel) {\n          seriesModel.setCenter(res.center);\n          seriesModel.setZoom(res.zoom);\n        });\n      }\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport function layout(axisModel, opt) {\n  opt = opt || {};\n  var single = axisModel.coordinateSystem;\n  var axis = axisModel.axis;\n  var layout = {};\n  var axisPosition = axis.position;\n  var orient = axis.orient;\n  var rect = single.getRect();\n  var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height];\n  var positionMap = {\n    horizontal: {\n      top: rectBound[2],\n      bottom: rectBound[3]\n    },\n    vertical: {\n      left: rectBound[0],\n      right: rectBound[1]\n    }\n  };\n  layout.position = [orient === 'vertical' ? positionMap.vertical[axisPosition] : rectBound[0], orient === 'horizontal' ? positionMap.horizontal[axisPosition] : rectBound[3]];\n  var r = {\n    horizontal: 0,\n    vertical: 1\n  };\n  layout.rotation = Math.PI / 2 * r[orient];\n  var directionMap = {\n    top: -1,\n    bottom: 1,\n    right: 1,\n    left: -1\n  };\n  layout.labelDirection = layout.tickDirection = layout.nameDirection = directionMap[axisPosition];\n\n  if (axisModel.get(['axisTick', 'inside'])) {\n    layout.tickDirection = -layout.tickDirection;\n  }\n\n  if (zrUtil.retrieve(opt.labelInside, axisModel.get(['axisLabel', 'inside']))) {\n    layout.labelDirection = -layout.labelDirection;\n  }\n\n  var labelRotation = opt.rotate;\n  labelRotation == null && (labelRotation = axisModel.get(['axisLabel', 'rotate']));\n  layout.labelRotation = axisPosition === 'top' ? -labelRotation : labelRotation;\n  layout.z2 = 1;\n  return layout;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport AxisBuilder from './AxisBuilder';\nimport * as graphic from '../../util/graphic';\nimport * as singleAxisHelper from '../../coord/single/singleAxisHelper';\nimport AxisView from './AxisView';\nimport { rectCoordAxisBuildSplitArea, rectCoordAxisHandleRemove } from './axisSplitHelper';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitArea', 'splitLine'];\n\nvar SingleAxisView = function (_super) {\n  __extends(SingleAxisView, _super);\n\n  function SingleAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SingleAxisView.type;\n    _this.axisPointerClass = 'SingleAxisPointer';\n    return _this;\n  }\n\n  SingleAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n    var group = this.group;\n    group.removeAll();\n    var oldAxisGroup = this._axisGroup;\n    this._axisGroup = new graphic.Group();\n    var layout = singleAxisHelper.layout(axisModel);\n    var axisBuilder = new AxisBuilder(axisModel, layout);\n    zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n    group.add(this._axisGroup);\n    group.add(axisBuilder.getGroup());\n    zrUtil.each(selfBuilderAttrs, function (name) {\n      if (axisModel.get([name, 'show'])) {\n        axisElementBuilders[name](this, this.group, this._axisGroup, axisModel);\n      }\n    }, this);\n    graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel);\n\n    _super.prototype.render.call(this, axisModel, ecModel, api, payload);\n  };\n\n  SingleAxisView.prototype.remove = function () {\n    rectCoordAxisHandleRemove(this);\n  };\n\n  SingleAxisView.type = 'singleAxis';\n  return SingleAxisView;\n}(AxisView);\n\nvar axisElementBuilders = {\n  splitLine: function (axisView, group, axisGroup, axisModel) {\n    var axis = axisModel.axis;\n\n    if (axis.scale.isBlank()) {\n      return;\n    }\n\n    var splitLineModel = axisModel.getModel('splitLine');\n    var lineStyleModel = splitLineModel.getModel('lineStyle');\n    var lineColors = lineStyleModel.get('color');\n    lineColors = lineColors instanceof Array ? lineColors : [lineColors];\n    var gridRect = axisModel.coordinateSystem.getRect();\n    var isHorizontal = axis.isHorizontal();\n    var splitLines = [];\n    var lineCount = 0;\n    var ticksCoords = axis.getTicksCoords({\n      tickModel: splitLineModel\n    });\n    var p1 = [];\n    var p2 = [];\n\n    for (var i = 0; i < ticksCoords.length; ++i) {\n      var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n\n      if (isHorizontal) {\n        p1[0] = tickCoord;\n        p1[1] = gridRect.y;\n        p2[0] = tickCoord;\n        p2[1] = gridRect.y + gridRect.height;\n      } else {\n        p1[0] = gridRect.x;\n        p1[1] = tickCoord;\n        p2[0] = gridRect.x + gridRect.width;\n        p2[1] = tickCoord;\n      }\n\n      var colorIndex = lineCount++ % lineColors.length;\n      splitLines[colorIndex] = splitLines[colorIndex] || [];\n      splitLines[colorIndex].push(new graphic.Line({\n        subPixelOptimize: true,\n        shape: {\n          x1: p1[0],\n          y1: p1[1],\n          x2: p2[0],\n          y2: p2[1]\n        },\n        silent: true\n      }));\n    }\n\n    var lineStyle = lineStyleModel.getLineStyle(['color']);\n\n    for (var i = 0; i < splitLines.length; ++i) {\n      group.add(graphic.mergePath(splitLines[i], {\n        style: zrUtil.defaults({\n          stroke: lineColors[i % lineColors.length]\n        }, lineStyle),\n        silent: true\n      }));\n    }\n  },\n  splitArea: function (axisView, group, axisGroup, axisModel) {\n    rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, axisModel);\n  }\n};\nexport default SingleAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin';\nimport { mixin } from 'zrender/lib/core/util';\n\nvar SingleAxisModel = function (_super) {\n  __extends(SingleAxisModel, _super);\n\n  function SingleAxisModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SingleAxisModel.type;\n    return _this;\n  }\n\n  SingleAxisModel.prototype.getCoordSysModel = function () {\n    return this;\n  };\n\n  SingleAxisModel.type = 'singleAxis';\n  SingleAxisModel.layoutMode = 'box';\n  SingleAxisModel.defaultOption = {\n    left: '5%',\n    top: '5%',\n    right: '5%',\n    bottom: '5%',\n    type: 'value',\n    position: 'bottom',\n    orient: 'horizontal',\n    axisLine: {\n      show: true,\n      lineStyle: {\n        width: 1,\n        type: 'solid'\n      }\n    },\n    tooltip: {\n      show: true\n    },\n    axisTick: {\n      show: true,\n      length: 6,\n      lineStyle: {\n        width: 1\n      }\n    },\n    axisLabel: {\n      show: true,\n      interval: 'auto'\n    },\n    splitLine: {\n      show: true,\n      lineStyle: {\n        type: 'dashed',\n        opacity: 0.2\n      }\n    }\n  };\n  return SingleAxisModel;\n}(ComponentModel);\n\nmixin(SingleAxisModel, AxisModelCommonMixin.prototype);\nexport default SingleAxisModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis';\n\nvar SingleAxis = function (_super) {\n  __extends(SingleAxis, _super);\n\n  function SingleAxis(dim, scale, coordExtent, axisType, position) {\n    var _this = _super.call(this, dim, scale, coordExtent) || this;\n\n    _this.type = axisType || 'value';\n    _this.position = position || 'bottom';\n    return _this;\n  }\n\n  SingleAxis.prototype.isHorizontal = function () {\n    var position = this.position;\n    return position === 'top' || position === 'bottom';\n  };\n\n  SingleAxis.prototype.pointToData = function (point, clamp) {\n    return this.coordinateSystem.pointToData(point)[0];\n  };\n\n  return SingleAxis;\n}(Axis);\n\nexport default SingleAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SingleAxis from './SingleAxis';\nimport * as axisHelper from '../axisHelper';\nimport { getLayoutRect } from '../../util/layout';\nimport { each } from 'zrender/lib/core/util';\n\nvar Single = function () {\n  function Single(axisModel, ecModel, api) {\n    this.type = 'single';\n    this.dimension = 'single';\n    this.dimensions = ['single'];\n    this.axisPointerEnabled = true;\n    this.model = axisModel;\n\n    this._init(axisModel, ecModel, api);\n  }\n\n  Single.prototype._init = function (axisModel, ecModel, api) {\n    var dim = this.dimension;\n    var axis = new SingleAxis(dim, axisHelper.createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisModel.get('position'));\n    var isCategory = axis.type === 'category';\n    axis.onBand = isCategory && axisModel.get('boundaryGap');\n    axis.inverse = axisModel.get('inverse');\n    axis.orient = axisModel.get('orient');\n    axisModel.axis = axis;\n    axis.model = axisModel;\n    axis.coordinateSystem = this;\n    this._axis = axis;\n  };\n\n  Single.prototype.update = function (ecModel, api) {\n    ecModel.eachSeries(function (seriesModel) {\n      if (seriesModel.coordinateSystem === this) {\n        var data_1 = seriesModel.getData();\n        each(data_1.mapDimensionsAll(this.dimension), function (dim) {\n          this._axis.scale.unionExtentFromData(data_1, dim);\n        }, this);\n        axisHelper.niceScaleExtent(this._axis.scale, this._axis.model);\n      }\n    }, this);\n  };\n\n  Single.prototype.resize = function (axisModel, api) {\n    this._rect = getLayoutRect({\n      left: axisModel.get('left'),\n      top: axisModel.get('top'),\n      right: axisModel.get('right'),\n      bottom: axisModel.get('bottom'),\n      width: axisModel.get('width'),\n      height: axisModel.get('height')\n    }, {\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n\n    this._adjustAxis();\n  };\n\n  Single.prototype.getRect = function () {\n    return this._rect;\n  };\n\n  Single.prototype._adjustAxis = function () {\n    var rect = this._rect;\n    var axis = this._axis;\n    var isHorizontal = axis.isHorizontal();\n    var extent = isHorizontal ? [0, rect.width] : [0, rect.height];\n    var idx = axis.reverse ? 1 : 0;\n    axis.setExtent(extent[idx], extent[1 - idx]);\n\n    this._updateAxisTransform(axis, isHorizontal ? rect.x : rect.y);\n  };\n\n  Single.prototype._updateAxisTransform = function (axis, coordBase) {\n    var axisExtent = axis.getExtent();\n    var extentSum = axisExtent[0] + axisExtent[1];\n    var isHorizontal = axis.isHorizontal();\n    axis.toGlobalCoord = isHorizontal ? function (coord) {\n      return coord + coordBase;\n    } : function (coord) {\n      return extentSum - coord + coordBase;\n    };\n    axis.toLocalCoord = isHorizontal ? function (coord) {\n      return coord - coordBase;\n    } : function (coord) {\n      return extentSum - coord + coordBase;\n    };\n  };\n\n  Single.prototype.getAxis = function () {\n    return this._axis;\n  };\n\n  Single.prototype.getBaseAxis = function () {\n    return this._axis;\n  };\n\n  Single.prototype.getAxes = function () {\n    return [this._axis];\n  };\n\n  Single.prototype.getTooltipAxes = function () {\n    return {\n      baseAxes: [this.getAxis()],\n      otherAxes: []\n    };\n  };\n\n  Single.prototype.containPoint = function (point) {\n    var rect = this.getRect();\n    var axis = this.getAxis();\n    var orient = axis.orient;\n\n    if (orient === 'horizontal') {\n      return axis.contain(axis.toLocalCoord(point[0])) && point[1] >= rect.y && point[1] <= rect.y + rect.height;\n    } else {\n      return axis.contain(axis.toLocalCoord(point[1])) && point[0] >= rect.y && point[0] <= rect.y + rect.height;\n    }\n  };\n\n  Single.prototype.pointToData = function (point) {\n    var axis = this.getAxis();\n    return [axis.coordToData(axis.toLocalCoord(point[axis.orient === 'horizontal' ? 0 : 1]))];\n  };\n\n  Single.prototype.dataToPoint = function (val) {\n    var axis = this.getAxis();\n    var rect = this.getRect();\n    var pt = [];\n    var idx = axis.orient === 'horizontal' ? 0 : 1;\n\n    if (val instanceof Array) {\n      val = val[0];\n    }\n\n    pt[idx] = axis.toGlobalCoord(axis.dataToCoord(+val));\n    pt[1 - idx] = idx === 0 ? rect.y + rect.height / 2 : rect.x + rect.width / 2;\n    return pt;\n  };\n\n  Single.prototype.convertToPixel = function (ecModel, finder, value) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? this.dataToPoint(value) : null;\n  };\n\n  Single.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? this.pointToData(pixel) : null;\n  };\n\n  return Single;\n}();\n\nfunction getCoordSys(finder) {\n  var seriesModel = finder.seriesModel;\n  var singleModel = finder.singleAxisModel;\n  return singleModel && singleModel.coordinateSystem || seriesModel && seriesModel.coordinateSystem;\n}\n\nexport default Single;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Single from './Single';\nimport { SINGLE_REFERRING } from '../../util/model';\n\nfunction create(ecModel, api) {\n  var singles = [];\n  ecModel.eachComponent('singleAxis', function (axisModel, idx) {\n    var single = new Single(axisModel, ecModel, api);\n    single.name = 'single_' + idx;\n    single.resize(axisModel, api);\n    axisModel.coordinateSystem = single;\n    singles.push(single);\n  });\n  ecModel.eachSeries(function (seriesModel) {\n    if (seriesModel.get('coordinateSystem') === 'singleAxis') {\n      var singleAxisModel = seriesModel.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\n      seriesModel.coordinateSystem = singleAxisModel && singleAxisModel.coordinateSystem;\n    }\n  });\n  return singles;\n}\n\nvar singleCreator = {\n  create: create,\n  dimensions: Single.prototype.dimensions\n};\nexport default singleCreator;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BaseAxisPointer from './BaseAxisPointer';\nimport * as viewHelper from './viewHelper';\nimport * as singleAxisHelper from '../../coord/single/singleAxisHelper';\nvar XY = ['x', 'y'];\nvar WH = ['width', 'height'];\n\nvar SingleAxisPointer = function (_super) {\n  __extends(SingleAxisPointer, _super);\n\n  function SingleAxisPointer() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  SingleAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\n    var axis = axisModel.axis;\n    var coordSys = axis.coordinateSystem;\n    var otherExtent = getGlobalExtent(coordSys, 1 - getPointDimIndex(axis));\n    var pixelValue = coordSys.dataToPoint(value)[0];\n    var axisPointerType = axisPointerModel.get('type');\n\n    if (axisPointerType && axisPointerType !== 'none') {\n      var elStyle = viewHelper.buildElStyle(axisPointerModel);\n      var pointerOption = pointerShapeBuilder[axisPointerType](axis, pixelValue, otherExtent);\n      pointerOption.style = elStyle;\n      elOption.graphicKey = pointerOption.type;\n      elOption.pointer = pointerOption;\n    }\n\n    var layoutInfo = singleAxisHelper.layout(axisModel);\n    viewHelper.buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api);\n  };\n\n  SingleAxisPointer.prototype.getHandleTransform = function (value, axisModel, axisPointerModel) {\n    var layoutInfo = singleAxisHelper.layout(axisModel, {\n      labelInside: false\n    });\n    layoutInfo.labelMargin = axisPointerModel.get(['handle', 'margin']);\n    var position = viewHelper.getTransformedPosition(axisModel.axis, value, layoutInfo);\n    return {\n      x: position[0],\n      y: position[1],\n      rotation: layoutInfo.rotation + (layoutInfo.labelDirection < 0 ? Math.PI : 0)\n    };\n  };\n\n  SingleAxisPointer.prototype.updateHandleTransform = function (transform, delta, axisModel, axisPointerModel) {\n    var axis = axisModel.axis;\n    var coordSys = axis.coordinateSystem;\n    var dimIndex = getPointDimIndex(axis);\n    var axisExtent = getGlobalExtent(coordSys, dimIndex);\n    var currPosition = [transform.x, transform.y];\n    currPosition[dimIndex] += delta[dimIndex];\n    currPosition[dimIndex] = Math.min(axisExtent[1], currPosition[dimIndex]);\n    currPosition[dimIndex] = Math.max(axisExtent[0], currPosition[dimIndex]);\n    var otherExtent = getGlobalExtent(coordSys, 1 - dimIndex);\n    var cursorOtherValue = (otherExtent[1] + otherExtent[0]) / 2;\n    var cursorPoint = [cursorOtherValue, cursorOtherValue];\n    cursorPoint[dimIndex] = currPosition[dimIndex];\n    return {\n      x: currPosition[0],\n      y: currPosition[1],\n      rotation: transform.rotation,\n      cursorPoint: cursorPoint,\n      tooltipOption: {\n        verticalAlign: 'middle'\n      }\n    };\n  };\n\n  return SingleAxisPointer;\n}(BaseAxisPointer);\n\nvar pointerShapeBuilder = {\n  line: function (axis, pixelValue, otherExtent) {\n    var targetShape = viewHelper.makeLineShape([pixelValue, otherExtent[0]], [pixelValue, otherExtent[1]], getPointDimIndex(axis));\n    return {\n      type: 'Line',\n      subPixelOptimize: true,\n      shape: targetShape\n    };\n  },\n  shadow: function (axis, pixelValue, otherExtent) {\n    var bandWidth = axis.getBandWidth();\n    var span = otherExtent[1] - otherExtent[0];\n    return {\n      type: 'Rect',\n      shape: viewHelper.makeRectShape([pixelValue - bandWidth / 2, otherExtent[0]], [bandWidth, span], getPointDimIndex(axis))\n    };\n  }\n};\n\nfunction getPointDimIndex(axis) {\n  return axis.isHorizontal() ? 0 : 1;\n}\n\nfunction getGlobalExtent(coordSys, dimIndex) {\n  var rect = coordSys.getRect();\n  return [rect[XY[dimIndex]], rect[XY[dimIndex]] + rect[WH[dimIndex]]];\n}\n\nexport default SingleAxisPointer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { use } from '../../extension';\nimport ComponentView from '../../view/Component';\nimport SingleAxisView from '../axis/SingleAxisView';\nimport axisModelCreator from '../../coord/axisModelCreator';\nimport SingleAxisModel from '../../coord/single/AxisModel';\nimport singleCreator from '../../coord/single/singleCreator';\nimport { install as installAxisPointer } from '../axisPointer/install';\nimport AxisView from '../axis/AxisView';\nimport SingleAxisPointer from '../axisPointer/SingleAxisPointer';\n\nvar SingleView = function (_super) {\n  __extends(SingleView, _super);\n\n  function SingleView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SingleView.type;\n    return _this;\n  }\n\n  SingleView.type = 'single';\n  return SingleView;\n}(ComponentView);\n\nexport function install(registers) {\n  use(installAxisPointer);\n  AxisView.registerAxisPointerClass('SingleAxisPointer', SingleAxisPointer);\n  registers.registerComponentView(SingleView);\n  registers.registerComponentView(SingleAxisView);\n  registers.registerComponentModel(SingleAxisModel);\n  axisModelCreator(registers, 'single', SingleAxisModel, SingleAxisModel.defaultOption);\n  registers.registerCoordinateSystem('single', singleCreator);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\nimport { getLayoutParams, sizeCalculable, mergeLayoutParam } from '../../util/layout';\n\nvar CalendarModel = function (_super) {\n  __extends(CalendarModel, _super);\n\n  function CalendarModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CalendarModel.type;\n    return _this;\n  }\n\n  CalendarModel.prototype.init = function (option, parentModel, ecModel) {\n    var inputPositionParams = getLayoutParams(option);\n\n    _super.prototype.init.apply(this, arguments);\n\n    mergeAndNormalizeLayoutParams(option, inputPositionParams);\n  };\n\n  CalendarModel.prototype.mergeOption = function (option) {\n    _super.prototype.mergeOption.apply(this, arguments);\n\n    mergeAndNormalizeLayoutParams(this.option, option);\n  };\n\n  CalendarModel.prototype.getCellSize = function () {\n    return this.option.cellSize;\n  };\n\n  CalendarModel.type = 'calendar';\n  CalendarModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    left: 80,\n    top: 60,\n    cellSize: 20,\n    orient: 'horizontal',\n    splitLine: {\n      show: true,\n      lineStyle: {\n        color: '#000',\n        width: 1,\n        type: 'solid'\n      }\n    },\n    itemStyle: {\n      color: '#fff',\n      borderWidth: 1,\n      borderColor: '#ccc'\n    },\n    dayLabel: {\n      show: true,\n      firstDay: 0,\n      position: 'start',\n      margin: '50%',\n      nameMap: 'en',\n      color: '#000'\n    },\n    monthLabel: {\n      show: true,\n      position: 'start',\n      margin: 5,\n      align: 'center',\n      nameMap: 'en',\n      formatter: null,\n      color: '#000'\n    },\n    yearLabel: {\n      show: true,\n      position: null,\n      margin: 30,\n      formatter: null,\n      color: '#ccc',\n      fontFamily: 'sans-serif',\n      fontWeight: 'bolder',\n      fontSize: 20\n    }\n  };\n  return CalendarModel;\n}(ComponentModel);\n\nfunction mergeAndNormalizeLayoutParams(target, raw) {\n  var cellSize = target.cellSize;\n  var cellSizeArr;\n\n  if (!zrUtil.isArray(cellSize)) {\n    cellSizeArr = target.cellSize = [cellSize, cellSize];\n  } else {\n    cellSizeArr = cellSize;\n  }\n\n  if (cellSizeArr.length === 1) {\n    cellSizeArr[1] = cellSizeArr[0];\n  }\n\n  var ignoreSize = zrUtil.map([0, 1], function (hvIdx) {\n    if (sizeCalculable(raw, hvIdx)) {\n      cellSizeArr[hvIdx] = 'auto';\n    }\n\n    return cellSizeArr[hvIdx] != null && cellSizeArr[hvIdx] !== 'auto';\n  });\n  mergeLayoutParam(target, raw, {\n    type: 'box',\n    ignoreSize: ignoreSize\n  });\n}\n\nexport default CalendarModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { createTextStyle } from '../../label/labelStyle';\nimport * as formatUtil from '../../util/format';\nimport * as numberUtil from '../../util/number';\nimport ComponentView from '../../view/Component';\nvar MONTH_TEXT = {\n  EN: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n  CN: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']\n};\nvar WEEK_TEXT = {\n  EN: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n  CN: ['日', '一', '二', '三', '四', '五', '六']\n};\n\nvar CalendarView = function (_super) {\n  __extends(CalendarView, _super);\n\n  function CalendarView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CalendarView.type;\n    return _this;\n  }\n\n  CalendarView.prototype.render = function (calendarModel, ecModel, api) {\n    var group = this.group;\n    group.removeAll();\n    var coordSys = calendarModel.coordinateSystem;\n    var rangeData = coordSys.getRangeInfo();\n    var orient = coordSys.getOrient();\n\n    this._renderDayRect(calendarModel, rangeData, group);\n\n    this._renderLines(calendarModel, rangeData, orient, group);\n\n    this._renderYearText(calendarModel, rangeData, orient, group);\n\n    this._renderMonthText(calendarModel, orient, group);\n\n    this._renderWeekText(calendarModel, rangeData, orient, group);\n  };\n\n  CalendarView.prototype._renderDayRect = function (calendarModel, rangeData, group) {\n    var coordSys = calendarModel.coordinateSystem;\n    var itemRectStyleModel = calendarModel.getModel('itemStyle').getItemStyle();\n    var sw = coordSys.getCellWidth();\n    var sh = coordSys.getCellHeight();\n\n    for (var i = rangeData.start.time; i <= rangeData.end.time; i = coordSys.getNextNDay(i, 1).time) {\n      var point = coordSys.dataToRect([i], false).tl;\n      var rect = new graphic.Rect({\n        shape: {\n          x: point[0],\n          y: point[1],\n          width: sw,\n          height: sh\n        },\n        cursor: 'default',\n        style: itemRectStyleModel\n      });\n      group.add(rect);\n    }\n  };\n\n  CalendarView.prototype._renderLines = function (calendarModel, rangeData, orient, group) {\n    var self = this;\n    var coordSys = calendarModel.coordinateSystem;\n    var lineStyleModel = calendarModel.getModel(['splitLine', 'lineStyle']).getLineStyle();\n    var show = calendarModel.get(['splitLine', 'show']);\n    var lineWidth = lineStyleModel.lineWidth;\n    this._tlpoints = [];\n    this._blpoints = [];\n    this._firstDayOfMonth = [];\n    this._firstDayPoints = [];\n    var firstDay = rangeData.start;\n\n    for (var i = 0; firstDay.time <= rangeData.end.time; i++) {\n      addPoints(firstDay.formatedDate);\n\n      if (i === 0) {\n        firstDay = coordSys.getDateInfo(rangeData.start.y + '-' + rangeData.start.m);\n      }\n\n      var date = firstDay.date;\n      date.setMonth(date.getMonth() + 1);\n      firstDay = coordSys.getDateInfo(date);\n    }\n\n    addPoints(coordSys.getNextNDay(rangeData.end.time, 1).formatedDate);\n\n    function addPoints(date) {\n      self._firstDayOfMonth.push(coordSys.getDateInfo(date));\n\n      self._firstDayPoints.push(coordSys.dataToRect([date], false).tl);\n\n      var points = self._getLinePointsOfOneWeek(calendarModel, date, orient);\n\n      self._tlpoints.push(points[0]);\n\n      self._blpoints.push(points[points.length - 1]);\n\n      show && self._drawSplitline(points, lineStyleModel, group);\n    }\n\n    show && this._drawSplitline(self._getEdgesPoints(self._tlpoints, lineWidth, orient), lineStyleModel, group);\n    show && this._drawSplitline(self._getEdgesPoints(self._blpoints, lineWidth, orient), lineStyleModel, group);\n  };\n\n  CalendarView.prototype._getEdgesPoints = function (points, lineWidth, orient) {\n    var rs = [points[0].slice(), points[points.length - 1].slice()];\n    var idx = orient === 'horizontal' ? 0 : 1;\n    rs[0][idx] = rs[0][idx] - lineWidth / 2;\n    rs[1][idx] = rs[1][idx] + lineWidth / 2;\n    return rs;\n  };\n\n  CalendarView.prototype._drawSplitline = function (points, lineStyle, group) {\n    var poyline = new graphic.Polyline({\n      z2: 20,\n      shape: {\n        points: points\n      },\n      style: lineStyle\n    });\n    group.add(poyline);\n  };\n\n  CalendarView.prototype._getLinePointsOfOneWeek = function (calendarModel, date, orient) {\n    var coordSys = calendarModel.coordinateSystem;\n    var parsedDate = coordSys.getDateInfo(date);\n    var points = [];\n\n    for (var i = 0; i < 7; i++) {\n      var tmpD = coordSys.getNextNDay(parsedDate.time, i);\n      var point = coordSys.dataToRect([tmpD.time], false);\n      points[2 * tmpD.day] = point.tl;\n      points[2 * tmpD.day + 1] = point[orient === 'horizontal' ? 'bl' : 'tr'];\n    }\n\n    return points;\n  };\n\n  CalendarView.prototype._formatterLabel = function (formatter, params) {\n    if (typeof formatter === 'string' && formatter) {\n      return formatUtil.formatTplSimple(formatter, params);\n    }\n\n    if (typeof formatter === 'function') {\n      return formatter(params);\n    }\n\n    return params.nameMap;\n  };\n\n  CalendarView.prototype._yearTextPositionControl = function (textEl, point, orient, position, margin) {\n    var x = point[0];\n    var y = point[1];\n    var aligns = ['center', 'bottom'];\n\n    if (position === 'bottom') {\n      y += margin;\n      aligns = ['center', 'top'];\n    } else if (position === 'left') {\n      x -= margin;\n    } else if (position === 'right') {\n      x += margin;\n      aligns = ['center', 'top'];\n    } else {\n      y -= margin;\n    }\n\n    var rotate = 0;\n\n    if (position === 'left' || position === 'right') {\n      rotate = Math.PI / 2;\n    }\n\n    return {\n      rotation: rotate,\n      x: x,\n      y: y,\n      style: {\n        align: aligns[0],\n        verticalAlign: aligns[1]\n      }\n    };\n  };\n\n  CalendarView.prototype._renderYearText = function (calendarModel, rangeData, orient, group) {\n    var yearLabel = calendarModel.getModel('yearLabel');\n\n    if (!yearLabel.get('show')) {\n      return;\n    }\n\n    var margin = yearLabel.get('margin');\n    var pos = yearLabel.get('position');\n\n    if (!pos) {\n      pos = orient !== 'horizontal' ? 'top' : 'left';\n    }\n\n    var points = [this._tlpoints[this._tlpoints.length - 1], this._blpoints[0]];\n    var xc = (points[0][0] + points[1][0]) / 2;\n    var yc = (points[0][1] + points[1][1]) / 2;\n    var idx = orient === 'horizontal' ? 0 : 1;\n    var posPoints = {\n      top: [xc, points[idx][1]],\n      bottom: [xc, points[1 - idx][1]],\n      left: [points[1 - idx][0], yc],\n      right: [points[idx][0], yc]\n    };\n    var name = rangeData.start.y;\n\n    if (+rangeData.end.y > +rangeData.start.y) {\n      name = name + '-' + rangeData.end.y;\n    }\n\n    var formatter = yearLabel.get('formatter');\n    var params = {\n      start: rangeData.start.y,\n      end: rangeData.end.y,\n      nameMap: name\n    };\n\n    var content = this._formatterLabel(formatter, params);\n\n    var yearText = new graphic.Text({\n      z2: 30,\n      style: createTextStyle(yearLabel, {\n        text: content\n      })\n    });\n    yearText.attr(this._yearTextPositionControl(yearText, posPoints[pos], orient, pos, margin));\n    group.add(yearText);\n  };\n\n  CalendarView.prototype._monthTextPositionControl = function (point, isCenter, orient, position, margin) {\n    var align = 'left';\n    var vAlign = 'top';\n    var x = point[0];\n    var y = point[1];\n\n    if (orient === 'horizontal') {\n      y = y + margin;\n\n      if (isCenter) {\n        align = 'center';\n      }\n\n      if (position === 'start') {\n        vAlign = 'bottom';\n      }\n    } else {\n      x = x + margin;\n\n      if (isCenter) {\n        vAlign = 'middle';\n      }\n\n      if (position === 'start') {\n        align = 'right';\n      }\n    }\n\n    return {\n      x: x,\n      y: y,\n      align: align,\n      verticalAlign: vAlign\n    };\n  };\n\n  CalendarView.prototype._renderMonthText = function (calendarModel, orient, group) {\n    var monthLabel = calendarModel.getModel('monthLabel');\n\n    if (!monthLabel.get('show')) {\n      return;\n    }\n\n    var nameMap = monthLabel.get('nameMap');\n    var margin = monthLabel.get('margin');\n    var pos = monthLabel.get('position');\n    var align = monthLabel.get('align');\n    var termPoints = [this._tlpoints, this._blpoints];\n\n    if (zrUtil.isString(nameMap)) {\n      nameMap = MONTH_TEXT[nameMap.toUpperCase()] || [];\n    }\n\n    var idx = pos === 'start' ? 0 : 1;\n    var axis = orient === 'horizontal' ? 0 : 1;\n    margin = pos === 'start' ? -margin : margin;\n    var isCenter = align === 'center';\n\n    for (var i = 0; i < termPoints[idx].length - 1; i++) {\n      var tmp = termPoints[idx][i].slice();\n      var firstDay = this._firstDayOfMonth[i];\n\n      if (isCenter) {\n        var firstDayPoints = this._firstDayPoints[i];\n        tmp[axis] = (firstDayPoints[axis] + termPoints[0][i + 1][axis]) / 2;\n      }\n\n      var formatter = monthLabel.get('formatter');\n      var name_1 = nameMap[+firstDay.m - 1];\n      var params = {\n        yyyy: firstDay.y,\n        yy: (firstDay.y + '').slice(2),\n        MM: firstDay.m,\n        M: +firstDay.m,\n        nameMap: name_1\n      };\n\n      var content = this._formatterLabel(formatter, params);\n\n      var monthText = new graphic.Text({\n        z2: 30,\n        style: zrUtil.extend(createTextStyle(monthLabel, {\n          text: content\n        }), this._monthTextPositionControl(tmp, isCenter, orient, pos, margin))\n      });\n      group.add(monthText);\n    }\n  };\n\n  CalendarView.prototype._weekTextPositionControl = function (point, orient, position, margin, cellSize) {\n    var align = 'center';\n    var vAlign = 'middle';\n    var x = point[0];\n    var y = point[1];\n    var isStart = position === 'start';\n\n    if (orient === 'horizontal') {\n      x = x + margin + (isStart ? 1 : -1) * cellSize[0] / 2;\n      align = isStart ? 'right' : 'left';\n    } else {\n      y = y + margin + (isStart ? 1 : -1) * cellSize[1] / 2;\n      vAlign = isStart ? 'bottom' : 'top';\n    }\n\n    return {\n      x: x,\n      y: y,\n      align: align,\n      verticalAlign: vAlign\n    };\n  };\n\n  CalendarView.prototype._renderWeekText = function (calendarModel, rangeData, orient, group) {\n    var dayLabel = calendarModel.getModel('dayLabel');\n\n    if (!dayLabel.get('show')) {\n      return;\n    }\n\n    var coordSys = calendarModel.coordinateSystem;\n    var pos = dayLabel.get('position');\n    var nameMap = dayLabel.get('nameMap');\n    var margin = dayLabel.get('margin');\n    var firstDayOfWeek = coordSys.getFirstDayOfWeek();\n\n    if (zrUtil.isString(nameMap)) {\n      nameMap = WEEK_TEXT[nameMap.toUpperCase()] || [];\n    }\n\n    var start = coordSys.getNextNDay(rangeData.end.time, 7 - rangeData.lweek).time;\n    var cellSize = [coordSys.getCellWidth(), coordSys.getCellHeight()];\n    margin = numberUtil.parsePercent(margin, cellSize[orient === 'horizontal' ? 0 : 1]);\n\n    if (pos === 'start') {\n      start = coordSys.getNextNDay(rangeData.start.time, -(7 + rangeData.fweek)).time;\n      margin = -margin;\n    }\n\n    for (var i = 0; i < 7; i++) {\n      var tmpD = coordSys.getNextNDay(start, i);\n      var point = coordSys.dataToRect([tmpD.time], false).center;\n      var day = i;\n      day = Math.abs((i + firstDayOfWeek) % 7);\n      var weekText = new graphic.Text({\n        z2: 30,\n        style: zrUtil.extend(createTextStyle(dayLabel, {\n          text: nameMap[day]\n        }), this._weekTextPositionControl(point, orient, pos, margin, cellSize))\n      });\n      group.add(weekText);\n    }\n  };\n\n  CalendarView.type = 'calendar';\n  return CalendarView;\n}(ComponentView);\n\nexport default CalendarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as layout from '../../util/layout';\nimport * as numberUtil from '../../util/number';\nvar PROXIMATE_ONE_DAY = 86400000;\n\nvar Calendar = function () {\n  function Calendar(calendarModel, ecModel, api) {\n    this.type = 'calendar';\n    this.dimensions = Calendar.dimensions;\n    this.getDimensionsInfo = Calendar.getDimensionsInfo;\n    this._model = calendarModel;\n  }\n\n  Calendar.getDimensionsInfo = function () {\n    return [{\n      name: 'time',\n      type: 'time'\n    }, 'value'];\n  };\n\n  Calendar.prototype.getRangeInfo = function () {\n    return this._rangeInfo;\n  };\n\n  Calendar.prototype.getModel = function () {\n    return this._model;\n  };\n\n  Calendar.prototype.getRect = function () {\n    return this._rect;\n  };\n\n  Calendar.prototype.getCellWidth = function () {\n    return this._sw;\n  };\n\n  Calendar.prototype.getCellHeight = function () {\n    return this._sh;\n  };\n\n  Calendar.prototype.getOrient = function () {\n    return this._orient;\n  };\n\n  Calendar.prototype.getFirstDayOfWeek = function () {\n    return this._firstDayOfWeek;\n  };\n\n  Calendar.prototype.getDateInfo = function (date) {\n    date = numberUtil.parseDate(date);\n    var y = date.getFullYear();\n    var m = date.getMonth() + 1;\n    var mStr = m < 10 ? '0' + m : '' + m;\n    var d = date.getDate();\n    var dStr = d < 10 ? '0' + d : '' + d;\n    var day = date.getDay();\n    day = Math.abs((day + 7 - this.getFirstDayOfWeek()) % 7);\n    return {\n      y: y + '',\n      m: mStr,\n      d: dStr,\n      day: day,\n      time: date.getTime(),\n      formatedDate: y + '-' + mStr + '-' + dStr,\n      date: date\n    };\n  };\n\n  Calendar.prototype.getNextNDay = function (date, n) {\n    n = n || 0;\n\n    if (n === 0) {\n      return this.getDateInfo(date);\n    }\n\n    date = new Date(this.getDateInfo(date).time);\n    date.setDate(date.getDate() + n);\n    return this.getDateInfo(date);\n  };\n\n  Calendar.prototype.update = function (ecModel, api) {\n    this._firstDayOfWeek = +this._model.getModel('dayLabel').get('firstDay');\n    this._orient = this._model.get('orient');\n    this._lineWidth = this._model.getModel('itemStyle').getItemStyle().lineWidth || 0;\n    this._rangeInfo = this._getRangeInfo(this._initRangeOption());\n    var weeks = this._rangeInfo.weeks || 1;\n    var whNames = ['width', 'height'];\n\n    var cellSize = this._model.getCellSize().slice();\n\n    var layoutParams = this._model.getBoxLayoutParams();\n\n    var cellNumbers = this._orient === 'horizontal' ? [weeks, 7] : [7, weeks];\n    zrUtil.each([0, 1], function (idx) {\n      if (cellSizeSpecified(cellSize, idx)) {\n        layoutParams[whNames[idx]] = cellSize[idx] * cellNumbers[idx];\n      }\n    });\n    var whGlobal = {\n      width: api.getWidth(),\n      height: api.getHeight()\n    };\n    var calendarRect = this._rect = layout.getLayoutRect(layoutParams, whGlobal);\n    zrUtil.each([0, 1], function (idx) {\n      if (!cellSizeSpecified(cellSize, idx)) {\n        cellSize[idx] = calendarRect[whNames[idx]] / cellNumbers[idx];\n      }\n    });\n\n    function cellSizeSpecified(cellSize, idx) {\n      return cellSize[idx] != null && cellSize[idx] !== 'auto';\n    }\n\n    this._sw = cellSize[0];\n    this._sh = cellSize[1];\n  };\n\n  Calendar.prototype.dataToPoint = function (data, clamp) {\n    zrUtil.isArray(data) && (data = data[0]);\n    clamp == null && (clamp = true);\n    var dayInfo = this.getDateInfo(data);\n    var range = this._rangeInfo;\n    var date = dayInfo.formatedDate;\n\n    if (clamp && !(dayInfo.time >= range.start.time && dayInfo.time < range.end.time + PROXIMATE_ONE_DAY)) {\n      return [NaN, NaN];\n    }\n\n    var week = dayInfo.day;\n\n    var nthWeek = this._getRangeInfo([range.start.time, date]).nthWeek;\n\n    if (this._orient === 'vertical') {\n      return [this._rect.x + week * this._sw + this._sw / 2, this._rect.y + nthWeek * this._sh + this._sh / 2];\n    }\n\n    return [this._rect.x + nthWeek * this._sw + this._sw / 2, this._rect.y + week * this._sh + this._sh / 2];\n  };\n\n  Calendar.prototype.pointToData = function (point) {\n    var date = this.pointToDate(point);\n    return date && date.time;\n  };\n\n  Calendar.prototype.dataToRect = function (data, clamp) {\n    var point = this.dataToPoint(data, clamp);\n    return {\n      contentShape: {\n        x: point[0] - (this._sw - this._lineWidth) / 2,\n        y: point[1] - (this._sh - this._lineWidth) / 2,\n        width: this._sw - this._lineWidth,\n        height: this._sh - this._lineWidth\n      },\n      center: point,\n      tl: [point[0] - this._sw / 2, point[1] - this._sh / 2],\n      tr: [point[0] + this._sw / 2, point[1] - this._sh / 2],\n      br: [point[0] + this._sw / 2, point[1] + this._sh / 2],\n      bl: [point[0] - this._sw / 2, point[1] + this._sh / 2]\n    };\n  };\n\n  Calendar.prototype.pointToDate = function (point) {\n    var nthX = Math.floor((point[0] - this._rect.x) / this._sw) + 1;\n    var nthY = Math.floor((point[1] - this._rect.y) / this._sh) + 1;\n    var range = this._rangeInfo.range;\n\n    if (this._orient === 'vertical') {\n      return this._getDateByWeeksAndDay(nthY, nthX - 1, range);\n    }\n\n    return this._getDateByWeeksAndDay(nthX, nthY - 1, range);\n  };\n\n  Calendar.prototype.convertToPixel = function (ecModel, finder, value) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? coordSys.dataToPoint(value) : null;\n  };\n\n  Calendar.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? coordSys.pointToData(pixel) : null;\n  };\n\n  Calendar.prototype.containPoint = function (point) {\n    console.warn('Not implemented.');\n    return false;\n  };\n\n  Calendar.prototype._initRangeOption = function () {\n    var range = this._model.get('range');\n\n    var normalizedRange;\n\n    if (zrUtil.isArray(range) && range.length === 1) {\n      range = range[0];\n    }\n\n    if (!zrUtil.isArray(range)) {\n      var rangeStr = range.toString();\n\n      if (/^\\d{4}$/.test(rangeStr)) {\n        normalizedRange = [rangeStr + '-01-01', rangeStr + '-12-31'];\n      }\n\n      if (/^\\d{4}[\\/|-]\\d{1,2}$/.test(rangeStr)) {\n        var start = this.getDateInfo(rangeStr);\n        var firstDay = start.date;\n        firstDay.setMonth(firstDay.getMonth() + 1);\n        var end = this.getNextNDay(firstDay, -1);\n        normalizedRange = [start.formatedDate, end.formatedDate];\n      }\n\n      if (/^\\d{4}[\\/|-]\\d{1,2}[\\/|-]\\d{1,2}$/.test(rangeStr)) {\n        normalizedRange = [rangeStr, rangeStr];\n      }\n    } else {\n      normalizedRange = range;\n    }\n\n    if (!normalizedRange) {\n      if (process.env.NODE_ENV !== 'production') {\n        zrUtil.logError('Invalid date range.');\n      }\n\n      return range;\n    }\n\n    var tmp = this._getRangeInfo(normalizedRange);\n\n    if (tmp.start.time > tmp.end.time) {\n      normalizedRange.reverse();\n    }\n\n    return normalizedRange;\n  };\n\n  Calendar.prototype._getRangeInfo = function (range) {\n    var parsedRange = [this.getDateInfo(range[0]), this.getDateInfo(range[1])];\n    var reversed;\n\n    if (parsedRange[0].time > parsedRange[1].time) {\n      reversed = true;\n      parsedRange.reverse();\n    }\n\n    var allDay = Math.floor(parsedRange[1].time / PROXIMATE_ONE_DAY) - Math.floor(parsedRange[0].time / PROXIMATE_ONE_DAY) + 1;\n    var date = new Date(parsedRange[0].time);\n    var startDateNum = date.getDate();\n    var endDateNum = parsedRange[1].date.getDate();\n    date.setDate(startDateNum + allDay - 1);\n    var dateNum = date.getDate();\n\n    if (dateNum !== endDateNum) {\n      var sign = date.getTime() - parsedRange[1].time > 0 ? 1 : -1;\n\n      while ((dateNum = date.getDate()) !== endDateNum && (date.getTime() - parsedRange[1].time) * sign > 0) {\n        allDay -= sign;\n        date.setDate(dateNum - sign);\n      }\n    }\n\n    var weeks = Math.floor((allDay + parsedRange[0].day + 6) / 7);\n    var nthWeek = reversed ? -weeks + 1 : weeks - 1;\n    reversed && parsedRange.reverse();\n    return {\n      range: [parsedRange[0].formatedDate, parsedRange[1].formatedDate],\n      start: parsedRange[0],\n      end: parsedRange[1],\n      allDay: allDay,\n      weeks: weeks,\n      nthWeek: nthWeek,\n      fweek: parsedRange[0].day,\n      lweek: parsedRange[1].day\n    };\n  };\n\n  Calendar.prototype._getDateByWeeksAndDay = function (nthWeek, day, range) {\n    var rangeInfo = this._getRangeInfo(range);\n\n    if (nthWeek > rangeInfo.weeks || nthWeek === 0 && day < rangeInfo.fweek || nthWeek === rangeInfo.weeks && day > rangeInfo.lweek) {\n      return null;\n    }\n\n    var nthDay = (nthWeek - 1) * 7 - rangeInfo.fweek + day;\n    var date = new Date(rangeInfo.start.time);\n    date.setDate(+rangeInfo.start.d + nthDay);\n    return this.getDateInfo(date);\n  };\n\n  Calendar.create = function (ecModel, api) {\n    var calendarList = [];\n    ecModel.eachComponent('calendar', function (calendarModel) {\n      var calendar = new Calendar(calendarModel, ecModel, api);\n      calendarList.push(calendar);\n      calendarModel.coordinateSystem = calendar;\n    });\n    ecModel.eachSeries(function (calendarSeries) {\n      if (calendarSeries.get('coordinateSystem') === 'calendar') {\n        calendarSeries.coordinateSystem = calendarList[calendarSeries.get('calendarIndex') || 0];\n      }\n    });\n    return calendarList;\n  };\n\n  Calendar.dimensions = ['time', 'value'];\n  return Calendar;\n}();\n\nfunction getCoordSys(finder) {\n  var calendarModel = finder.calendarModel;\n  var seriesModel = finder.seriesModel;\n  var coordSys = calendarModel ? calendarModel.coordinateSystem : seriesModel ? seriesModel.coordinateSystem : null;\n  return coordSys;\n}\n\nexport default Calendar;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport CalendarModel from '../../coord/calendar/CalendarModel';\nimport CalendarView from './CalendarView';\nimport Calendar from '../../coord/calendar/Calendar';\nexport function install(registers) {\n  registers.registerComponentModel(CalendarModel);\n  registers.registerComponentView(CalendarView);\n  registers.registerCoordinateSystem('calendar', Calendar);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nimport * as graphicUtil from '../../util/graphic';\nimport * as layoutUtil from '../../util/layout';\nimport { parsePercent } from '../../util/number';\nimport ComponentModel from '../../model/Component';\nimport ComponentView from '../../view/Component';\nimport { getECData } from '../../util/innerStore';\nimport { isEC4CompatibleStyle, convertFromEC4CompatibleStyle } from '../../util/styleCompat';\nvar TRANSFORM_PROPS = {\n  x: 1,\n  y: 1,\n  scaleX: 1,\n  scaleY: 1,\n  originX: 1,\n  originY: 1,\n  rotation: 1\n};\n;\nvar inner = modelUtil.makeInner();\nvar _nonShapeGraphicElements = {\n  path: null,\n  compoundPath: null,\n  group: graphicUtil.Group,\n  image: graphicUtil.Image,\n  text: graphicUtil.Text\n};\n\nvar preprocessor = function (option) {\n  var graphicOption = option.graphic;\n\n  if (zrUtil.isArray(graphicOption)) {\n    if (!graphicOption[0] || !graphicOption[0].elements) {\n      option.graphic = [{\n        elements: graphicOption\n      }];\n    } else {\n      option.graphic = [option.graphic[0]];\n    }\n  } else if (graphicOption && !graphicOption.elements) {\n    option.graphic = [{\n      elements: [graphicOption]\n    }];\n  }\n};\n\n;\n\nvar GraphicComponentModel = function (_super) {\n  __extends(GraphicComponentModel, _super);\n\n  function GraphicComponentModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GraphicComponentModel.type;\n    return _this;\n  }\n\n  GraphicComponentModel.prototype.mergeOption = function (option, ecModel) {\n    var elements = this.option.elements;\n    this.option.elements = null;\n\n    _super.prototype.mergeOption.call(this, option, ecModel);\n\n    this.option.elements = elements;\n  };\n\n  GraphicComponentModel.prototype.optionUpdated = function (newOption, isInit) {\n    var thisOption = this.option;\n    var newList = (isInit ? thisOption : newOption).elements;\n    var existList = thisOption.elements = isInit ? [] : thisOption.elements;\n    var flattenedList = [];\n\n    this._flatten(newList, flattenedList, null);\n\n    var mappingResult = modelUtil.mappingToExists(existList, flattenedList, 'normalMerge');\n    var elOptionsToUpdate = this._elOptionsToUpdate = [];\n    zrUtil.each(mappingResult, function (resultItem, index) {\n      var newElOption = resultItem.newOption;\n\n      if (process.env.NODE_ENV !== 'production') {\n        zrUtil.assert(zrUtil.isObject(newElOption) || resultItem.existing, 'Empty graphic option definition');\n      }\n\n      if (!newElOption) {\n        return;\n      }\n\n      elOptionsToUpdate.push(newElOption);\n      setKeyInfoToNewElOption(resultItem, newElOption);\n      mergeNewElOptionToExist(existList, index, newElOption);\n      setLayoutInfoToExist(existList[index], newElOption);\n    }, this);\n\n    for (var i = existList.length - 1; i >= 0; i--) {\n      if (existList[i] == null) {\n        existList.splice(i, 1);\n      } else {\n        delete existList[i].$action;\n      }\n    }\n  };\n\n  GraphicComponentModel.prototype._flatten = function (optionList, result, parentOption) {\n    zrUtil.each(optionList, function (option) {\n      if (!option) {\n        return;\n      }\n\n      if (parentOption) {\n        option.parentOption = parentOption;\n      }\n\n      result.push(option);\n      var children = option.children;\n\n      if (option.type === 'group' && children) {\n        this._flatten(children, result, option);\n      }\n\n      delete option.children;\n    }, this);\n  };\n\n  GraphicComponentModel.prototype.useElOptionsToUpdate = function () {\n    var els = this._elOptionsToUpdate;\n    this._elOptionsToUpdate = null;\n    return els;\n  };\n\n  GraphicComponentModel.type = 'graphic';\n  GraphicComponentModel.defaultOption = {\n    elements: []\n  };\n  return GraphicComponentModel;\n}(ComponentModel);\n\nvar GraphicComponentView = function (_super) {\n  __extends(GraphicComponentView, _super);\n\n  function GraphicComponentView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GraphicComponentView.type;\n    return _this;\n  }\n\n  GraphicComponentView.prototype.init = function () {\n    this._elMap = zrUtil.createHashMap();\n  };\n\n  GraphicComponentView.prototype.render = function (graphicModel, ecModel, api) {\n    if (graphicModel !== this._lastGraphicModel) {\n      this._clear();\n    }\n\n    this._lastGraphicModel = graphicModel;\n\n    this._updateElements(graphicModel);\n\n    this._relocate(graphicModel, api);\n  };\n\n  GraphicComponentView.prototype._updateElements = function (graphicModel) {\n    var elOptionsToUpdate = graphicModel.useElOptionsToUpdate();\n\n    if (!elOptionsToUpdate) {\n      return;\n    }\n\n    var elMap = this._elMap;\n    var rootGroup = this.group;\n    zrUtil.each(elOptionsToUpdate, function (elOption) {\n      var id = modelUtil.convertOptionIdName(elOption.id, null);\n      var elExisting = id != null ? elMap.get(id) : null;\n      var parentId = modelUtil.convertOptionIdName(elOption.parentId, null);\n      var targetElParent = parentId != null ? elMap.get(parentId) : rootGroup;\n      var elType = elOption.type;\n      var elOptionStyle = elOption.style;\n\n      if (elType === 'text' && elOptionStyle) {\n        if (elOption.hv && elOption.hv[1]) {\n          elOptionStyle.textVerticalAlign = elOptionStyle.textBaseline = elOptionStyle.verticalAlign = elOptionStyle.align = null;\n        }\n      }\n\n      var textContentOption = elOption.textContent;\n      var textConfig = elOption.textConfig;\n\n      if (elOptionStyle && isEC4CompatibleStyle(elOptionStyle, elType, !!textConfig, !!textContentOption)) {\n        var convertResult = convertFromEC4CompatibleStyle(elOptionStyle, elType, true);\n\n        if (!textConfig && convertResult.textConfig) {\n          textConfig = elOption.textConfig = convertResult.textConfig;\n        }\n\n        if (!textContentOption && convertResult.textContent) {\n          textContentOption = convertResult.textContent;\n        }\n      }\n\n      var elOptionCleaned = getCleanedElOption(elOption);\n\n      if (process.env.NODE_ENV !== 'production') {\n        elExisting && zrUtil.assert(targetElParent === elExisting.parent, 'Changing parent is not supported.');\n      }\n\n      var $action = elOption.$action || 'merge';\n\n      if ($action === 'merge') {\n        elExisting ? elExisting.attr(elOptionCleaned) : createEl(id, targetElParent, elOptionCleaned, elMap);\n      } else if ($action === 'replace') {\n        removeEl(elExisting, elMap);\n        createEl(id, targetElParent, elOptionCleaned, elMap);\n      } else if ($action === 'remove') {\n        removeEl(elExisting, elMap);\n      }\n\n      var el = elMap.get(id);\n\n      if (el && textContentOption) {\n        if ($action === 'merge') {\n          var textContentExisting = el.getTextContent();\n          textContentExisting ? textContentExisting.attr(textContentOption) : el.setTextContent(new graphicUtil.Text(textContentOption));\n        } else if ($action === 'replace') {\n          el.setTextContent(new graphicUtil.Text(textContentOption));\n        }\n      }\n\n      if (el) {\n        var elInner = inner(el);\n        elInner.__ecGraphicWidthOption = elOption.width;\n        elInner.__ecGraphicHeightOption = elOption.height;\n        setEventData(el, graphicModel, elOption);\n      }\n    });\n  };\n\n  GraphicComponentView.prototype._relocate = function (graphicModel, api) {\n    var elOptions = graphicModel.option.elements;\n    var rootGroup = this.group;\n    var elMap = this._elMap;\n    var apiWidth = api.getWidth();\n    var apiHeight = api.getHeight();\n\n    for (var i = 0; i < elOptions.length; i++) {\n      var elOption = elOptions[i];\n      var id = modelUtil.convertOptionIdName(elOption.id, null);\n      var el = id != null ? elMap.get(id) : null;\n\n      if (!el || !el.isGroup) {\n        continue;\n      }\n\n      var parentEl = el.parent;\n      var isParentRoot = parentEl === rootGroup;\n      var elInner = inner(el);\n      var parentElInner = inner(parentEl);\n      elInner.__ecGraphicWidth = parsePercent(elInner.__ecGraphicWidthOption, isParentRoot ? apiWidth : parentElInner.__ecGraphicWidth) || 0;\n      elInner.__ecGraphicHeight = parsePercent(elInner.__ecGraphicHeightOption, isParentRoot ? apiHeight : parentElInner.__ecGraphicHeight) || 0;\n    }\n\n    for (var i = elOptions.length - 1; i >= 0; i--) {\n      var elOption = elOptions[i];\n      var id = modelUtil.convertOptionIdName(elOption.id, null);\n      var el = id != null ? elMap.get(id) : null;\n\n      if (!el) {\n        continue;\n      }\n\n      var parentEl = el.parent;\n      var parentElInner = inner(parentEl);\n      var containerInfo = parentEl === rootGroup ? {\n        width: apiWidth,\n        height: apiHeight\n      } : {\n        width: parentElInner.__ecGraphicWidth,\n        height: parentElInner.__ecGraphicHeight\n      };\n      layoutUtil.positionElement(el, elOption, containerInfo, null, {\n        hv: elOption.hv,\n        boundingMode: elOption.bounding\n      });\n    }\n  };\n\n  GraphicComponentView.prototype._clear = function () {\n    var elMap = this._elMap;\n    elMap.each(function (el) {\n      removeEl(el, elMap);\n    });\n    this._elMap = zrUtil.createHashMap();\n  };\n\n  GraphicComponentView.prototype.dispose = function () {\n    this._clear();\n  };\n\n  GraphicComponentView.type = 'graphic';\n  return GraphicComponentView;\n}(ComponentView);\n\nfunction createEl(id, targetElParent, elOption, elMap) {\n  var graphicType = elOption.type;\n\n  if (process.env.NODE_ENV !== 'production') {\n    zrUtil.assert(graphicType, 'graphic type MUST be set');\n  }\n\n  var Clz = zrUtil.hasOwn(_nonShapeGraphicElements, graphicType) ? _nonShapeGraphicElements[graphicType] : graphicUtil.getShapeClass(graphicType);\n\n  if (process.env.NODE_ENV !== 'production') {\n    zrUtil.assert(Clz, 'graphic type can not be found');\n  }\n\n  var el = new Clz(elOption);\n  targetElParent.add(el);\n  elMap.set(id, el);\n  inner(el).__ecGraphicId = id;\n}\n\nfunction removeEl(elExisting, elMap) {\n  var existElParent = elExisting && elExisting.parent;\n\n  if (existElParent) {\n    elExisting.type === 'group' && elExisting.traverse(function (el) {\n      removeEl(el, elMap);\n    });\n    elMap.removeKey(inner(elExisting).__ecGraphicId);\n    existElParent.remove(elExisting);\n  }\n}\n\nfunction getCleanedElOption(elOption) {\n  elOption = zrUtil.extend({}, elOption);\n  zrUtil.each(['id', 'parentId', '$action', 'hv', 'bounding', 'textContent'].concat(layoutUtil.LOCATION_PARAMS), function (name) {\n    delete elOption[name];\n  });\n  return elOption;\n}\n\nfunction isSetLoc(obj, props) {\n  var isSet;\n  zrUtil.each(props, function (prop) {\n    obj[prop] != null && obj[prop] !== 'auto' && (isSet = true);\n  });\n  return isSet;\n}\n\nfunction setKeyInfoToNewElOption(resultItem, newElOption) {\n  var existElOption = resultItem.existing;\n  newElOption.id = resultItem.keyInfo.id;\n  !newElOption.type && existElOption && (newElOption.type = existElOption.type);\n\n  if (newElOption.parentId == null) {\n    var newElParentOption = newElOption.parentOption;\n\n    if (newElParentOption) {\n      newElOption.parentId = newElParentOption.id;\n    } else if (existElOption) {\n      newElOption.parentId = existElOption.parentId;\n    }\n  }\n\n  newElOption.parentOption = null;\n}\n\nfunction mergeNewElOptionToExist(existList, index, newElOption) {\n  var newElOptCopy = zrUtil.extend({}, newElOption);\n  var existElOption = existList[index];\n  var $action = newElOption.$action || 'merge';\n\n  if ($action === 'merge') {\n    if (existElOption) {\n      if (process.env.NODE_ENV !== 'production') {\n        var newType = newElOption.type;\n        zrUtil.assert(!newType || existElOption.type === newType, 'Please set $action: \"replace\" to change `type`');\n      }\n\n      zrUtil.merge(existElOption, newElOptCopy, true);\n      layoutUtil.mergeLayoutParam(existElOption, newElOptCopy, {\n        ignoreSize: true\n      });\n      layoutUtil.copyLayoutParams(newElOption, existElOption);\n    } else {\n      existList[index] = newElOptCopy;\n    }\n  } else if ($action === 'replace') {\n    existList[index] = newElOptCopy;\n  } else if ($action === 'remove') {\n    existElOption && (existList[index] = null);\n  }\n}\n\nfunction setLayoutInfoToExist(existItem, newElOption) {\n  if (!existItem) {\n    return;\n  }\n\n  existItem.hv = newElOption.hv = [isSetLoc(newElOption, ['left', 'right']), isSetLoc(newElOption, ['top', 'bottom'])];\n\n  if (existItem.type === 'group') {\n    var existingGroupOpt = existItem;\n    var newGroupOpt = newElOption;\n    existingGroupOpt.width == null && (existingGroupOpt.width = newGroupOpt.width = 0);\n    existingGroupOpt.height == null && (existingGroupOpt.height = newGroupOpt.height = 0);\n  }\n}\n\nfunction setEventData(el, graphicModel, elOption) {\n  var eventData = getECData(el).eventData;\n\n  if (!el.silent && !el.ignore && !eventData) {\n    eventData = getECData(el).eventData = {\n      componentType: 'graphic',\n      componentIndex: graphicModel.componentIndex,\n      name: el.name\n    };\n  }\n\n  if (eventData) {\n    eventData.info = elOption.info;\n  }\n}\n\nexport function install(registers) {\n  registers.registerComponentModel(GraphicComponentModel);\n  registers.registerComponentView(GraphicComponentView);\n  registers.registerPreprocessor(preprocessor);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { indexOf, createHashMap, assert } from 'zrender/lib/core/util';\nexport var DATA_ZOOM_AXIS_DIMENSIONS = ['x', 'y', 'radius', 'angle', 'single'];\nvar SERIES_COORDS = ['cartesian2d', 'polar', 'singleAxis'];\nexport function isCoordSupported(seriesModel) {\n  var coordType = seriesModel.get('coordinateSystem');\n  return indexOf(SERIES_COORDS, coordType) >= 0;\n}\nexport function getAxisMainType(axisDim) {\n  if (process.env.NODE_ENV !== 'production') {\n    assert(axisDim);\n  }\n\n  return axisDim + 'Axis';\n}\nexport function getAxisIndexPropName(axisDim) {\n  if (process.env.NODE_ENV !== 'production') {\n    assert(axisDim);\n  }\n\n  return axisDim + 'AxisIndex';\n}\nexport function getAxisIdPropName(axisDim) {\n  if (process.env.NODE_ENV !== 'production') {\n    assert(axisDim);\n  }\n\n  return axisDim + 'AxisId';\n}\nexport function findEffectedDataZooms(ecModel, payload) {\n  var axisRecords = createHashMap();\n  var effectedModels = [];\n  var effectedModelMap = createHashMap();\n  ecModel.eachComponent({\n    mainType: 'dataZoom',\n    query: payload\n  }, function (dataZoomModel) {\n    if (!effectedModelMap.get(dataZoomModel.uid)) {\n      addToEffected(dataZoomModel);\n    }\n  });\n  var foundNewLink;\n\n  do {\n    foundNewLink = false;\n    ecModel.eachComponent('dataZoom', processSingle);\n  } while (foundNewLink);\n\n  function processSingle(dataZoomModel) {\n    if (!effectedModelMap.get(dataZoomModel.uid) && isLinked(dataZoomModel)) {\n      addToEffected(dataZoomModel);\n      foundNewLink = true;\n    }\n  }\n\n  function addToEffected(dataZoom) {\n    effectedModelMap.set(dataZoom.uid, true);\n    effectedModels.push(dataZoom);\n    markAxisControlled(dataZoom);\n  }\n\n  function isLinked(dataZoomModel) {\n    var isLink = false;\n    dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n      var axisIdxArr = axisRecords.get(axisDim);\n\n      if (axisIdxArr && axisIdxArr[axisIndex]) {\n        isLink = true;\n      }\n    });\n    return isLink;\n  }\n\n  function markAxisControlled(dataZoomModel) {\n    dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n      (axisRecords.get(axisDim) || axisRecords.set(axisDim, []))[axisIndex] = true;\n    });\n  }\n\n  return effectedModels;\n}\nexport function collectReferCoordSysModelInfo(dataZoomModel) {\n  var ecModel = dataZoomModel.ecModel;\n  var coordSysInfoWrap = {\n    infoList: [],\n    infoMap: createHashMap()\n  };\n  dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n    var axisModel = ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n\n    if (!axisModel) {\n      return;\n    }\n\n    var coordSysModel = axisModel.getCoordSysModel();\n\n    if (!coordSysModel) {\n      return;\n    }\n\n    var coordSysUid = coordSysModel.uid;\n    var coordSysInfo = coordSysInfoWrap.infoMap.get(coordSysUid);\n\n    if (!coordSysInfo) {\n      coordSysInfo = {\n        model: coordSysModel,\n        axisModels: []\n      };\n      coordSysInfoWrap.infoList.push(coordSysInfo);\n      coordSysInfoWrap.infoMap.set(coordSysUid, coordSysInfo);\n    }\n\n    coordSysInfo.axisModels.push(axisModel);\n  });\n  return coordSysInfoWrap;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { each, createHashMap, merge, assert } from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\nimport { getAxisMainType, DATA_ZOOM_AXIS_DIMENSIONS } from './helper';\nimport { MULTIPLE_REFERRING, SINGLE_REFERRING } from '../../util/model';\n\nvar DataZoomAxisInfo = function () {\n  function DataZoomAxisInfo() {\n    this.indexList = [];\n    this.indexMap = [];\n  }\n\n  DataZoomAxisInfo.prototype.add = function (axisCmptIdx) {\n    if (!this.indexMap[axisCmptIdx]) {\n      this.indexList.push(axisCmptIdx);\n      this.indexMap[axisCmptIdx] = true;\n    }\n  };\n\n  return DataZoomAxisInfo;\n}();\n\nvar DataZoomModel = function (_super) {\n  __extends(DataZoomModel, _super);\n\n  function DataZoomModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = DataZoomModel.type;\n    _this._autoThrottle = true;\n    _this._noTarget = true;\n    _this._rangePropMode = ['percent', 'percent'];\n    return _this;\n  }\n\n  DataZoomModel.prototype.init = function (option, parentModel, ecModel) {\n    var inputRawOption = retrieveRawOption(option);\n    this.settledOption = inputRawOption;\n    this.mergeDefaultAndTheme(option, ecModel);\n\n    this._doInit(inputRawOption);\n  };\n\n  DataZoomModel.prototype.mergeOption = function (newOption) {\n    var inputRawOption = retrieveRawOption(newOption);\n    merge(this.option, newOption, true);\n    merge(this.settledOption, inputRawOption, true);\n\n    this._doInit(inputRawOption);\n  };\n\n  DataZoomModel.prototype._doInit = function (inputRawOption) {\n    var thisOption = this.option;\n\n    this._setDefaultThrottle(inputRawOption);\n\n    this._updateRangeUse(inputRawOption);\n\n    var settledOption = this.settledOption;\n    each([['start', 'startValue'], ['end', 'endValue']], function (names, index) {\n      if (this._rangePropMode[index] === 'value') {\n        thisOption[names[0]] = settledOption[names[0]] = null;\n      }\n    }, this);\n\n    this._resetTarget();\n  };\n\n  DataZoomModel.prototype._resetTarget = function () {\n    var optionOrient = this.get('orient', true);\n    var targetAxisIndexMap = this._targetAxisInfoMap = createHashMap();\n\n    var hasAxisSpecified = this._fillSpecifiedTargetAxis(targetAxisIndexMap);\n\n    if (hasAxisSpecified) {\n      this._orient = optionOrient || this._makeAutoOrientByTargetAxis();\n    } else {\n      this._orient = optionOrient || 'horizontal';\n\n      this._fillAutoTargetAxisByOrient(targetAxisIndexMap, this._orient);\n    }\n\n    this._noTarget = true;\n    targetAxisIndexMap.each(function (axisInfo) {\n      if (axisInfo.indexList.length) {\n        this._noTarget = false;\n      }\n    }, this);\n  };\n\n  DataZoomModel.prototype._fillSpecifiedTargetAxis = function (targetAxisIndexMap) {\n    var hasAxisSpecified = false;\n    each(DATA_ZOOM_AXIS_DIMENSIONS, function (axisDim) {\n      var refering = this.getReferringComponents(getAxisMainType(axisDim), MULTIPLE_REFERRING);\n\n      if (!refering.specified) {\n        return;\n      }\n\n      hasAxisSpecified = true;\n      var axisInfo = new DataZoomAxisInfo();\n      each(refering.models, function (axisModel) {\n        axisInfo.add(axisModel.componentIndex);\n      });\n      targetAxisIndexMap.set(axisDim, axisInfo);\n    }, this);\n    return hasAxisSpecified;\n  };\n\n  DataZoomModel.prototype._fillAutoTargetAxisByOrient = function (targetAxisIndexMap, orient) {\n    var ecModel = this.ecModel;\n    var needAuto = true;\n\n    if (needAuto) {\n      var axisDim = orient === 'vertical' ? 'y' : 'x';\n      var axisModels = ecModel.findComponents({\n        mainType: axisDim + 'Axis'\n      });\n      setParallelAxis(axisModels, axisDim);\n    }\n\n    if (needAuto) {\n      var axisModels = ecModel.findComponents({\n        mainType: 'singleAxis',\n        filter: function (axisModel) {\n          return axisModel.get('orient', true) === orient;\n        }\n      });\n      setParallelAxis(axisModels, 'single');\n    }\n\n    function setParallelAxis(axisModels, axisDim) {\n      var axisModel = axisModels[0];\n\n      if (!axisModel) {\n        return;\n      }\n\n      var axisInfo = new DataZoomAxisInfo();\n      axisInfo.add(axisModel.componentIndex);\n      targetAxisIndexMap.set(axisDim, axisInfo);\n      needAuto = false;\n\n      if (axisDim === 'x' || axisDim === 'y') {\n        var gridModel_1 = axisModel.getReferringComponents('grid', SINGLE_REFERRING).models[0];\n        gridModel_1 && each(axisModels, function (axModel) {\n          if (axisModel.componentIndex !== axModel.componentIndex && gridModel_1 === axModel.getReferringComponents('grid', SINGLE_REFERRING).models[0]) {\n            axisInfo.add(axModel.componentIndex);\n          }\n        });\n      }\n    }\n\n    if (needAuto) {\n      each(DATA_ZOOM_AXIS_DIMENSIONS, function (axisDim) {\n        if (!needAuto) {\n          return;\n        }\n\n        var axisModels = ecModel.findComponents({\n          mainType: getAxisMainType(axisDim),\n          filter: function (axisModel) {\n            return axisModel.get('type', true) === 'category';\n          }\n        });\n\n        if (axisModels[0]) {\n          var axisInfo = new DataZoomAxisInfo();\n          axisInfo.add(axisModels[0].componentIndex);\n          targetAxisIndexMap.set(axisDim, axisInfo);\n          needAuto = false;\n        }\n      }, this);\n    }\n  };\n\n  DataZoomModel.prototype._makeAutoOrientByTargetAxis = function () {\n    var dim;\n    this.eachTargetAxis(function (axisDim) {\n      !dim && (dim = axisDim);\n    }, this);\n    return dim === 'y' ? 'vertical' : 'horizontal';\n  };\n\n  DataZoomModel.prototype._setDefaultThrottle = function (inputRawOption) {\n    if (inputRawOption.hasOwnProperty('throttle')) {\n      this._autoThrottle = false;\n    }\n\n    if (this._autoThrottle) {\n      var globalOption = this.ecModel.option;\n      this.option.throttle = globalOption.animation && globalOption.animationDurationUpdate > 0 ? 100 : 20;\n    }\n  };\n\n  DataZoomModel.prototype._updateRangeUse = function (inputRawOption) {\n    var rangePropMode = this._rangePropMode;\n    var rangeModeInOption = this.get('rangeMode');\n    each([['start', 'startValue'], ['end', 'endValue']], function (names, index) {\n      var percentSpecified = inputRawOption[names[0]] != null;\n      var valueSpecified = inputRawOption[names[1]] != null;\n\n      if (percentSpecified && !valueSpecified) {\n        rangePropMode[index] = 'percent';\n      } else if (!percentSpecified && valueSpecified) {\n        rangePropMode[index] = 'value';\n      } else if (rangeModeInOption) {\n        rangePropMode[index] = rangeModeInOption[index];\n      } else if (percentSpecified) {\n        rangePropMode[index] = 'percent';\n      }\n    });\n  };\n\n  DataZoomModel.prototype.noTarget = function () {\n    return this._noTarget;\n  };\n\n  DataZoomModel.prototype.getFirstTargetAxisModel = function () {\n    var firstAxisModel;\n    this.eachTargetAxis(function (axisDim, axisIndex) {\n      if (firstAxisModel == null) {\n        firstAxisModel = this.ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n      }\n    }, this);\n    return firstAxisModel;\n  };\n\n  DataZoomModel.prototype.eachTargetAxis = function (callback, context) {\n    this._targetAxisInfoMap.each(function (axisInfo, axisDim) {\n      each(axisInfo.indexList, function (axisIndex) {\n        callback.call(context, axisDim, axisIndex);\n      });\n    });\n  };\n\n  DataZoomModel.prototype.getAxisProxy = function (axisDim, axisIndex) {\n    var axisModel = this.getAxisModel(axisDim, axisIndex);\n\n    if (axisModel) {\n      return axisModel.__dzAxisProxy;\n    }\n  };\n\n  DataZoomModel.prototype.getAxisModel = function (axisDim, axisIndex) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(axisDim && axisIndex != null);\n    }\n\n    var axisInfo = this._targetAxisInfoMap.get(axisDim);\n\n    if (axisInfo && axisInfo.indexMap[axisIndex]) {\n      return this.ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n    }\n  };\n\n  DataZoomModel.prototype.setRawRange = function (opt) {\n    var thisOption = this.option;\n    var settledOption = this.settledOption;\n    each([['start', 'startValue'], ['end', 'endValue']], function (names) {\n      if (opt[names[0]] != null || opt[names[1]] != null) {\n        thisOption[names[0]] = settledOption[names[0]] = opt[names[0]];\n        thisOption[names[1]] = settledOption[names[1]] = opt[names[1]];\n      }\n    }, this);\n\n    this._updateRangeUse(opt);\n  };\n\n  DataZoomModel.prototype.setCalculatedRange = function (opt) {\n    var option = this.option;\n    each(['start', 'startValue', 'end', 'endValue'], function (name) {\n      option[name] = opt[name];\n    });\n  };\n\n  DataZoomModel.prototype.getPercentRange = function () {\n    var axisProxy = this.findRepresentativeAxisProxy();\n\n    if (axisProxy) {\n      return axisProxy.getDataPercentWindow();\n    }\n  };\n\n  DataZoomModel.prototype.getValueRange = function (axisDim, axisIndex) {\n    if (axisDim == null && axisIndex == null) {\n      var axisProxy = this.findRepresentativeAxisProxy();\n\n      if (axisProxy) {\n        return axisProxy.getDataValueWindow();\n      }\n    } else {\n      return this.getAxisProxy(axisDim, axisIndex).getDataValueWindow();\n    }\n  };\n\n  DataZoomModel.prototype.findRepresentativeAxisProxy = function (axisModel) {\n    if (axisModel) {\n      return axisModel.__dzAxisProxy;\n    }\n\n    var firstProxy;\n\n    var axisDimList = this._targetAxisInfoMap.keys();\n\n    for (var i = 0; i < axisDimList.length; i++) {\n      var axisDim = axisDimList[i];\n\n      var axisInfo = this._targetAxisInfoMap.get(axisDim);\n\n      for (var j = 0; j < axisInfo.indexList.length; j++) {\n        var proxy = this.getAxisProxy(axisDim, axisInfo.indexList[j]);\n\n        if (proxy.hostedBy(this)) {\n          return proxy;\n        }\n\n        if (!firstProxy) {\n          firstProxy = proxy;\n        }\n      }\n    }\n\n    return firstProxy;\n  };\n\n  DataZoomModel.prototype.getRangePropMode = function () {\n    return this._rangePropMode.slice();\n  };\n\n  DataZoomModel.prototype.getOrient = function () {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(this._orient);\n    }\n\n    return this._orient;\n  };\n\n  DataZoomModel.type = 'dataZoom';\n  DataZoomModel.dependencies = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'series', 'toolbox'];\n  DataZoomModel.defaultOption = {\n    zlevel: 0,\n    z: 4,\n    filterMode: 'filter',\n    start: 0,\n    end: 100\n  };\n  return DataZoomModel;\n}(ComponentModel);\n\nfunction retrieveRawOption(option) {\n  var ret = {};\n  each(['start', 'end', 'startValue', 'endValue', 'throttle'], function (name) {\n    option.hasOwnProperty(name) && (ret[name] = option[name]);\n  });\n  return ret;\n}\n\nexport default DataZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport DataZoomModel from './DataZoomModel';\n\nvar SelectDataZoomModel = function (_super) {\n  __extends(SelectDataZoomModel, _super);\n\n  function SelectDataZoomModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SelectDataZoomModel.type;\n    return _this;\n  }\n\n  SelectDataZoomModel.type = 'dataZoom.select';\n  return SelectDataZoomModel;\n}(DataZoomModel);\n\nexport default SelectDataZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component';\n\nvar DataZoomView = function (_super) {\n  __extends(DataZoomView, _super);\n\n  function DataZoomView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = DataZoomView.type;\n    return _this;\n  }\n\n  DataZoomView.prototype.render = function (dataZoomModel, ecModel, api, payload) {\n    this.dataZoomModel = dataZoomModel;\n    this.ecModel = ecModel;\n    this.api = api;\n  };\n\n  DataZoomView.type = 'dataZoom';\n  return DataZoomView;\n}(ComponentView);\n\nexport default DataZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport DataZoomView from './DataZoomView';\n\nvar SelectDataZoomView = function (_super) {\n  __extends(SelectDataZoomView, _super);\n\n  function SelectDataZoomView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SelectDataZoomView.type;\n    return _this;\n  }\n\n  SelectDataZoomView.type = 'dataZoom.select';\n  return SelectDataZoomView;\n}(DataZoomView);\n\nexport default SelectDataZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as numberUtil from '../../util/number';\nimport sliderMove from '../helper/sliderMove';\nimport { unionAxisExtentFromData } from '../../coord/axisHelper';\nimport { ensureScaleRawExtentInfo } from '../../coord/scaleRawExtentInfo';\nimport { getAxisMainType, isCoordSupported } from './helper';\nimport { SINGLE_REFERRING } from '../../util/model';\nvar each = zrUtil.each;\nvar asc = numberUtil.asc;\n\nvar AxisProxy = function () {\n  function AxisProxy(dimName, axisIndex, dataZoomModel, ecModel) {\n    this._dimName = dimName;\n    this._axisIndex = axisIndex;\n    this.ecModel = ecModel;\n    this._dataZoomModel = dataZoomModel;\n  }\n\n  AxisProxy.prototype.hostedBy = function (dataZoomModel) {\n    return this._dataZoomModel === dataZoomModel;\n  };\n\n  AxisProxy.prototype.getDataValueWindow = function () {\n    return this._valueWindow.slice();\n  };\n\n  AxisProxy.prototype.getDataPercentWindow = function () {\n    return this._percentWindow.slice();\n  };\n\n  AxisProxy.prototype.getTargetSeriesModels = function () {\n    var seriesModels = [];\n    this.ecModel.eachSeries(function (seriesModel) {\n      if (isCoordSupported(seriesModel)) {\n        var axisMainType = getAxisMainType(this._dimName);\n        var axisModel = seriesModel.getReferringComponents(axisMainType, SINGLE_REFERRING).models[0];\n\n        if (axisModel && this._axisIndex === axisModel.componentIndex) {\n          seriesModels.push(seriesModel);\n        }\n      }\n    }, this);\n    return seriesModels;\n  };\n\n  AxisProxy.prototype.getAxisModel = function () {\n    return this.ecModel.getComponent(this._dimName + 'Axis', this._axisIndex);\n  };\n\n  AxisProxy.prototype.getMinMaxSpan = function () {\n    return zrUtil.clone(this._minMaxSpan);\n  };\n\n  AxisProxy.prototype.calculateDataWindow = function (opt) {\n    var dataExtent = this._dataExtent;\n    var axisModel = this.getAxisModel();\n    var scale = axisModel.axis.scale;\n\n    var rangePropMode = this._dataZoomModel.getRangePropMode();\n\n    var percentExtent = [0, 100];\n    var percentWindow = [];\n    var valueWindow = [];\n    var hasPropModeValue;\n    each(['start', 'end'], function (prop, idx) {\n      var boundPercent = opt[prop];\n      var boundValue = opt[prop + 'Value'];\n\n      if (rangePropMode[idx] === 'percent') {\n        boundPercent == null && (boundPercent = percentExtent[idx]);\n        boundValue = scale.parse(numberUtil.linearMap(boundPercent, percentExtent, dataExtent));\n      } else {\n        hasPropModeValue = true;\n        boundValue = boundValue == null ? dataExtent[idx] : scale.parse(boundValue);\n        boundPercent = numberUtil.linearMap(boundValue, dataExtent, percentExtent);\n      }\n\n      valueWindow[idx] = boundValue;\n      percentWindow[idx] = boundPercent;\n    });\n    asc(valueWindow);\n    asc(percentWindow);\n    var spans = this._minMaxSpan;\n    hasPropModeValue ? restrictSet(valueWindow, percentWindow, dataExtent, percentExtent, false) : restrictSet(percentWindow, valueWindow, percentExtent, dataExtent, true);\n\n    function restrictSet(fromWindow, toWindow, fromExtent, toExtent, toValue) {\n      var suffix = toValue ? 'Span' : 'ValueSpan';\n      sliderMove(0, fromWindow, fromExtent, 'all', spans['min' + suffix], spans['max' + suffix]);\n\n      for (var i = 0; i < 2; i++) {\n        toWindow[i] = numberUtil.linearMap(fromWindow[i], fromExtent, toExtent, true);\n        toValue && (toWindow[i] = scale.parse(toWindow[i]));\n      }\n    }\n\n    return {\n      valueWindow: valueWindow,\n      percentWindow: percentWindow\n    };\n  };\n\n  AxisProxy.prototype.reset = function (dataZoomModel) {\n    if (dataZoomModel !== this._dataZoomModel) {\n      return;\n    }\n\n    var targetSeries = this.getTargetSeriesModels();\n    this._dataExtent = calculateDataExtent(this, this._dimName, targetSeries);\n\n    this._updateMinMaxSpan();\n\n    var dataWindow = this.calculateDataWindow(dataZoomModel.settledOption);\n    this._valueWindow = dataWindow.valueWindow;\n    this._percentWindow = dataWindow.percentWindow;\n\n    this._setAxisModel();\n  };\n\n  AxisProxy.prototype.filterData = function (dataZoomModel, api) {\n    if (dataZoomModel !== this._dataZoomModel) {\n      return;\n    }\n\n    var axisDim = this._dimName;\n    var seriesModels = this.getTargetSeriesModels();\n    var filterMode = dataZoomModel.get('filterMode');\n    var valueWindow = this._valueWindow;\n\n    if (filterMode === 'none') {\n      return;\n    }\n\n    each(seriesModels, function (seriesModel) {\n      var seriesData = seriesModel.getData();\n      var dataDims = seriesData.mapDimensionsAll(axisDim);\n\n      if (!dataDims.length) {\n        return;\n      }\n\n      if (filterMode === 'weakFilter') {\n        seriesData.filterSelf(function (dataIndex) {\n          var leftOut;\n          var rightOut;\n          var hasValue;\n\n          for (var i = 0; i < dataDims.length; i++) {\n            var value = seriesData.get(dataDims[i], dataIndex);\n            var thisHasValue = !isNaN(value);\n            var thisLeftOut = value < valueWindow[0];\n            var thisRightOut = value > valueWindow[1];\n\n            if (thisHasValue && !thisLeftOut && !thisRightOut) {\n              return true;\n            }\n\n            thisHasValue && (hasValue = true);\n            thisLeftOut && (leftOut = true);\n            thisRightOut && (rightOut = true);\n          }\n\n          return hasValue && leftOut && rightOut;\n        });\n      } else {\n        each(dataDims, function (dim) {\n          if (filterMode === 'empty') {\n            seriesModel.setData(seriesData = seriesData.map(dim, function (value) {\n              return !isInWindow(value) ? NaN : value;\n            }));\n          } else {\n            var range = {};\n            range[dim] = valueWindow;\n            seriesData.selectRange(range);\n          }\n        });\n      }\n\n      each(dataDims, function (dim) {\n        seriesData.setApproximateExtent(valueWindow, dim);\n      });\n    });\n\n    function isInWindow(value) {\n      return value >= valueWindow[0] && value <= valueWindow[1];\n    }\n  };\n\n  AxisProxy.prototype._updateMinMaxSpan = function () {\n    var minMaxSpan = this._minMaxSpan = {};\n    var dataZoomModel = this._dataZoomModel;\n    var dataExtent = this._dataExtent;\n    each(['min', 'max'], function (minMax) {\n      var percentSpan = dataZoomModel.get(minMax + 'Span');\n      var valueSpan = dataZoomModel.get(minMax + 'ValueSpan');\n      valueSpan != null && (valueSpan = this.getAxisModel().axis.scale.parse(valueSpan));\n\n      if (valueSpan != null) {\n        percentSpan = numberUtil.linearMap(dataExtent[0] + valueSpan, dataExtent, [0, 100], true);\n      } else if (percentSpan != null) {\n        valueSpan = numberUtil.linearMap(percentSpan, [0, 100], dataExtent, true) - dataExtent[0];\n      }\n\n      minMaxSpan[minMax + 'Span'] = percentSpan;\n      minMaxSpan[minMax + 'ValueSpan'] = valueSpan;\n    }, this);\n  };\n\n  AxisProxy.prototype._setAxisModel = function () {\n    var axisModel = this.getAxisModel();\n    var percentWindow = this._percentWindow;\n    var valueWindow = this._valueWindow;\n\n    if (!percentWindow) {\n      return;\n    }\n\n    var precision = numberUtil.getPixelPrecision(valueWindow, [0, 500]);\n    precision = Math.min(precision, 20);\n    var rawExtentInfo = axisModel.axis.scale.rawExtentInfo;\n\n    if (percentWindow[0] !== 0) {\n      rawExtentInfo.setDeterminedMinMax('min', +valueWindow[0].toFixed(precision));\n    }\n\n    if (percentWindow[1] !== 100) {\n      rawExtentInfo.setDeterminedMinMax('max', +valueWindow[1].toFixed(precision));\n    }\n\n    rawExtentInfo.freeze();\n  };\n\n  return AxisProxy;\n}();\n\nfunction calculateDataExtent(axisProxy, axisDim, seriesModels) {\n  var dataExtent = [Infinity, -Infinity];\n  each(seriesModels, function (seriesModel) {\n    unionAxisExtentFromData(dataExtent, seriesModel.getData(), axisDim);\n  });\n  var axisModel = axisProxy.getAxisModel();\n  var rawExtentResult = ensureScaleRawExtentInfo(axisModel.axis.scale, axisModel, dataExtent).calculate();\n  return [rawExtentResult.min, rawExtentResult.max];\n}\n\nexport default AxisProxy;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, each } from 'zrender/lib/core/util';\nimport { getAxisMainType } from './helper';\nimport AxisProxy from './AxisProxy';\nvar dataZoomProcessor = {\n  getTargetSeries: function (ecModel) {\n    function eachAxisModel(cb) {\n      ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n        dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n          var axisModel = ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n          cb(axisDim, axisIndex, axisModel, dataZoomModel);\n        });\n      });\n    }\n\n    eachAxisModel(function (axisDim, axisIndex, axisModel, dataZoomModel) {\n      axisModel.__dzAxisProxy = null;\n    });\n    var proxyList = [];\n    eachAxisModel(function (axisDim, axisIndex, axisModel, dataZoomModel) {\n      if (!axisModel.__dzAxisProxy) {\n        axisModel.__dzAxisProxy = new AxisProxy(axisDim, axisIndex, dataZoomModel, ecModel);\n        proxyList.push(axisModel.__dzAxisProxy);\n      }\n    });\n    var seriesModelMap = createHashMap();\n    each(proxyList, function (axisProxy) {\n      each(axisProxy.getTargetSeriesModels(), function (seriesModel) {\n        seriesModelMap.set(seriesModel.uid, seriesModel);\n      });\n    });\n    return seriesModelMap;\n  },\n  overallReset: function (ecModel, api) {\n    ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n      dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n        dataZoomModel.getAxisProxy(axisDim, axisIndex).reset(dataZoomModel);\n      });\n      dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n        dataZoomModel.getAxisProxy(axisDim, axisIndex).filterData(dataZoomModel, api);\n      });\n    });\n    ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n      var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\n\n      if (axisProxy) {\n        var percentRange = axisProxy.getDataPercentWindow();\n        var valueRange = axisProxy.getDataValueWindow();\n        dataZoomModel.setCalculatedRange({\n          start: percentRange[0],\n          end: percentRange[1],\n          startValue: valueRange[0],\n          endValue: valueRange[1]\n        });\n      }\n    });\n  }\n};\nexport default dataZoomProcessor;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { findEffectedDataZooms } from './helper';\nimport { each } from 'zrender/lib/core/util';\nexport default function installDataZoomAction(registers) {\n  registers.registerAction('dataZoom', function (payload, ecModel) {\n    var effectedModels = findEffectedDataZooms(ecModel, payload);\n    each(effectedModels, function (dataZoomModel) {\n      dataZoomModel.setRawRange({\n        start: payload.start,\n        end: payload.end,\n        startValue: payload.startValue,\n        endValue: payload.endValue\n      });\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport dataZoomProcessor from './dataZoomProcessor';\nimport installDataZoomAction from './dataZoomAction';\nvar installed = false;\nexport default function installCommon(registers) {\n  if (installed) {\n    return;\n  }\n\n  installed = true;\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.FILTER, dataZoomProcessor);\n  installDataZoomAction(registers);\n  registers.registerSubTypeDefaulter('dataZoom', function () {\n    return 'slider';\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SelectZoomModel from './SelectZoomModel';\nimport SelectZoomView from './SelectZoomView';\nimport installCommon from './installCommon';\nexport function install(registers) {\n  registers.registerComponentModel(SelectZoomModel);\n  registers.registerComponentView(SelectZoomView);\n  installCommon(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar ToolboxFeature = function () {\n  function ToolboxFeature() {}\n\n  return ToolboxFeature;\n}();\n\nexport { ToolboxFeature };\nvar features = {};\nexport function registerFeature(name, ctor) {\n  features[name] = ctor;\n}\nexport function getFeature(name) {\n  return features[name];\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as featureManager from './featureManager';\nimport ComponentModel from '../../model/Component';\n\nvar ToolboxModel = function (_super) {\n  __extends(ToolboxModel, _super);\n\n  function ToolboxModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ToolboxModel.type;\n    return _this;\n  }\n\n  ToolboxModel.prototype.optionUpdated = function () {\n    _super.prototype.optionUpdated.apply(this, arguments);\n\n    var ecModel = this.ecModel;\n    zrUtil.each(this.option.feature, function (featureOpt, featureName) {\n      var Feature = featureManager.getFeature(featureName);\n\n      if (Feature) {\n        if (Feature.getDefaultOption) {\n          Feature.defaultOption = Feature.getDefaultOption(ecModel);\n        }\n\n        zrUtil.merge(featureOpt, Feature.defaultOption);\n      }\n    });\n  };\n\n  ToolboxModel.type = 'toolbox';\n  ToolboxModel.layoutMode = {\n    type: 'box',\n    ignoreSize: true\n  };\n  ToolboxModel.defaultOption = {\n    show: true,\n    z: 6,\n    zlevel: 0,\n    orient: 'horizontal',\n    left: 'right',\n    top: 'top',\n    backgroundColor: 'transparent',\n    borderColor: '#ccc',\n    borderRadius: 0,\n    borderWidth: 0,\n    padding: 5,\n    itemSize: 15,\n    itemGap: 8,\n    showTitle: true,\n    iconStyle: {\n      borderColor: '#666',\n      color: 'none'\n    },\n    emphasis: {\n      iconStyle: {\n        borderColor: '#3E98C5'\n      }\n    },\n    tooltip: {\n      show: false\n    }\n  };\n  return ToolboxModel;\n}(ComponentModel);\n\nexport default ToolboxModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { getLayoutRect, box as layoutBox, positionElement } from '../../util/layout';\nimport * as formatUtil from '../../util/format';\nimport * as graphic from '../../util/graphic';\nexport function layout(group, componentModel, api) {\n  var boxLayoutParams = componentModel.getBoxLayoutParams();\n  var padding = componentModel.get('padding');\n  var viewportSize = {\n    width: api.getWidth(),\n    height: api.getHeight()\n  };\n  var rect = getLayoutRect(boxLayoutParams, viewportSize, padding);\n  layoutBox(componentModel.get('orient'), group, componentModel.get('itemGap'), rect.width, rect.height);\n  positionElement(group, boxLayoutParams, viewportSize, padding);\n}\nexport function makeBackground(rect, componentModel) {\n  var padding = formatUtil.normalizeCssArray(componentModel.get('padding'));\n  var style = componentModel.getItemStyle(['color', 'opacity']);\n  style.fill = componentModel.get('backgroundColor');\n  rect = new graphic.Rect({\n    shape: {\n      x: rect.x - padding[3],\n      y: rect.y - padding[0],\n      width: rect.width + padding[1] + padding[3],\n      height: rect.height + padding[0] + padding[2],\n      r: componentModel.get('borderRadius')\n    },\n    style: style,\n    silent: true,\n    z2: -1\n  });\n  return rect;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as textContain from 'zrender/lib/contain/text';\nimport * as graphic from '../../util/graphic';\nimport { enterEmphasis, leaveEmphasis } from '../../util/states';\nimport Model from '../../model/Model';\nimport DataDiffer from '../../data/DataDiffer';\nimport * as listComponentHelper from '../helper/listComponent';\nimport ComponentView from '../../view/Component';\nimport { ToolboxFeature, getFeature } from './featureManager';\nimport { getUID } from '../../util/component';\nimport ZRText from 'zrender/lib/graphic/Text';\n\nvar ToolboxView = function (_super) {\n  __extends(ToolboxView, _super);\n\n  function ToolboxView() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  ToolboxView.prototype.render = function (toolboxModel, ecModel, api, payload) {\n    var group = this.group;\n    group.removeAll();\n\n    if (!toolboxModel.get('show')) {\n      return;\n    }\n\n    var itemSize = +toolboxModel.get('itemSize');\n    var featureOpts = toolboxModel.get('feature') || {};\n    var features = this._features || (this._features = {});\n    var featureNames = [];\n    zrUtil.each(featureOpts, function (opt, name) {\n      featureNames.push(name);\n    });\n    new DataDiffer(this._featureNames || [], featureNames).add(processFeature).update(processFeature).remove(zrUtil.curry(processFeature, null)).execute();\n    this._featureNames = featureNames;\n\n    function processFeature(newIndex, oldIndex) {\n      var featureName = featureNames[newIndex];\n      var oldName = featureNames[oldIndex];\n      var featureOpt = featureOpts[featureName];\n      var featureModel = new Model(featureOpt, toolboxModel, toolboxModel.ecModel);\n      var feature;\n\n      if (payload && payload.newTitle != null && payload.featureName === featureName) {\n        featureOpt.title = payload.newTitle;\n      }\n\n      if (featureName && !oldName) {\n        if (isUserFeatureName(featureName)) {\n          feature = {\n            onclick: featureModel.option.onclick,\n            featureName: featureName\n          };\n        } else {\n          var Feature = getFeature(featureName);\n\n          if (!Feature) {\n            return;\n          }\n\n          feature = new Feature();\n        }\n\n        features[featureName] = feature;\n      } else {\n        feature = features[oldName];\n\n        if (!feature) {\n          return;\n        }\n      }\n\n      feature.uid = getUID('toolbox-feature');\n      feature.model = featureModel;\n      feature.ecModel = ecModel;\n      feature.api = api;\n\n      if (feature instanceof ToolboxFeature) {\n        if (!featureName && oldName) {\n          feature.dispose && feature.dispose(ecModel, api);\n          return;\n        }\n\n        if (!featureModel.get('show') || feature.unusable) {\n          feature.remove && feature.remove(ecModel, api);\n          return;\n        }\n      }\n\n      createIconPaths(featureModel, feature, featureName);\n\n      featureModel.setIconStatus = function (iconName, status) {\n        var option = this.option;\n        var iconPaths = this.iconPaths;\n        option.iconStatus = option.iconStatus || {};\n        option.iconStatus[iconName] = status;\n\n        if (iconPaths[iconName]) {\n          (status === 'emphasis' ? enterEmphasis : leaveEmphasis)(iconPaths[iconName]);\n        }\n      };\n\n      if (feature instanceof ToolboxFeature) {\n        if (feature.render) {\n          feature.render(featureModel, ecModel, api, payload);\n        }\n      }\n    }\n\n    function createIconPaths(featureModel, feature, featureName) {\n      var iconStyleModel = featureModel.getModel('iconStyle');\n      var iconStyleEmphasisModel = featureModel.getModel(['emphasis', 'iconStyle']);\n      var icons = feature instanceof ToolboxFeature && feature.getIcons ? feature.getIcons() : featureModel.get('icon');\n      var titles = featureModel.get('title') || {};\n      var iconsMap;\n      var titlesMap;\n\n      if (typeof icons === 'string') {\n        iconsMap = {};\n        iconsMap[featureName] = icons;\n      } else {\n        iconsMap = icons;\n      }\n\n      if (typeof titles === 'string') {\n        titlesMap = {};\n        titlesMap[featureName] = titles;\n      } else {\n        titlesMap = titles;\n      }\n\n      var iconPaths = featureModel.iconPaths = {};\n      zrUtil.each(iconsMap, function (iconStr, iconName) {\n        var path = graphic.createIcon(iconStr, {}, {\n          x: -itemSize / 2,\n          y: -itemSize / 2,\n          width: itemSize,\n          height: itemSize\n        });\n        path.setStyle(iconStyleModel.getItemStyle());\n        var pathEmphasisState = path.ensureState('emphasis');\n        pathEmphasisState.style = iconStyleEmphasisModel.getItemStyle();\n        var textContent = new ZRText({\n          style: {\n            text: titlesMap[iconName],\n            align: iconStyleEmphasisModel.get('textAlign'),\n            borderRadius: iconStyleEmphasisModel.get('textBorderRadius'),\n            padding: iconStyleEmphasisModel.get('textPadding'),\n            fill: null\n          },\n          ignore: true\n        });\n        path.setTextContent(textContent);\n        var tooltipModel = toolboxModel.getModel('tooltip');\n\n        if (tooltipModel && tooltipModel.get('show')) {\n          path.tooltip = zrUtil.extend({\n            content: titlesMap[iconName],\n            formatter: tooltipModel.get('formatter', true) || function () {\n              return titlesMap[iconName];\n            },\n            formatterParams: {\n              componentType: 'toolbox',\n              name: iconName,\n              title: titlesMap[iconName],\n              $vars: ['name', 'title']\n            },\n            position: tooltipModel.get('position', true) || 'bottom'\n          }, tooltipModel.option);\n        }\n\n        path.__title = titlesMap[iconName];\n        path.on('mouseover', function () {\n          var hoverStyle = iconStyleEmphasisModel.getItemStyle();\n          var defaultTextPosition = toolboxModel.get('orient') === 'vertical' ? toolboxModel.get('right') == null ? 'right' : 'left' : toolboxModel.get('bottom') == null ? 'bottom' : 'top';\n          textContent.setStyle({\n            fill: iconStyleEmphasisModel.get('textFill') || hoverStyle.fill || hoverStyle.stroke || '#000',\n            backgroundColor: iconStyleEmphasisModel.get('textBackgroundColor')\n          });\n          path.setTextConfig({\n            position: iconStyleEmphasisModel.get('textPosition') || defaultTextPosition\n          });\n          textContent.ignore = !toolboxModel.get('showTitle');\n          enterEmphasis(this);\n        }).on('mouseout', function () {\n          if (featureModel.get(['iconStatus', iconName]) !== 'emphasis') {\n            leaveEmphasis(this);\n          }\n\n          textContent.hide();\n        });\n        (featureModel.get(['iconStatus', iconName]) === 'emphasis' ? enterEmphasis : leaveEmphasis)(path);\n        group.add(path);\n        path.on('click', zrUtil.bind(feature.onclick, feature, ecModel, api, iconName));\n        iconPaths[iconName] = path;\n      });\n    }\n\n    listComponentHelper.layout(group, toolboxModel, api);\n    group.add(listComponentHelper.makeBackground(group.getBoundingRect(), toolboxModel));\n    group.eachChild(function (icon) {\n      var titleText = icon.__title;\n      var emphasisState = icon.ensureState('emphasis');\n      var emphasisTextConfig = emphasisState.textConfig || (emphasisState.textConfig = {});\n      var textContent = icon.getTextContent();\n      var emphasisTextState = textContent && textContent.states.emphasis;\n\n      if (emphasisTextState && !zrUtil.isFunction(emphasisTextState) && titleText) {\n        var emphasisTextStyle = emphasisTextState.style || (emphasisTextState.style = {});\n        var rect = textContain.getBoundingRect(titleText, ZRText.makeFont(emphasisTextStyle));\n        var offsetX = icon.x + group.x;\n        var offsetY = icon.y + group.y + itemSize;\n        var needPutOnTop = false;\n\n        if (offsetY + rect.height > api.getHeight()) {\n          emphasisTextConfig.position = 'top';\n          needPutOnTop = true;\n        }\n\n        var topOffset = needPutOnTop ? -5 - rect.height : itemSize + 8;\n\n        if (offsetX + rect.width / 2 > api.getWidth()) {\n          emphasisTextConfig.position = ['100%', topOffset];\n          emphasisTextStyle.align = 'right';\n        } else if (offsetX - rect.width / 2 < 0) {\n          emphasisTextConfig.position = [0, topOffset];\n          emphasisTextStyle.align = 'left';\n        }\n      }\n    });\n  };\n\n  ToolboxView.prototype.updateView = function (toolboxModel, ecModel, api, payload) {\n    zrUtil.each(this._features, function (feature) {\n      feature instanceof ToolboxFeature && feature.updateView && feature.updateView(feature.model, ecModel, api, payload);\n    });\n  };\n\n  ToolboxView.prototype.remove = function (ecModel, api) {\n    zrUtil.each(this._features, function (feature) {\n      feature instanceof ToolboxFeature && feature.remove && feature.remove(ecModel, api);\n    });\n    this.group.removeAll();\n  };\n\n  ToolboxView.prototype.dispose = function (ecModel, api) {\n    zrUtil.each(this._features, function (feature) {\n      feature instanceof ToolboxFeature && feature.dispose && feature.dispose(ecModel, api);\n    });\n  };\n\n  ToolboxView.type = 'toolbox';\n  return ToolboxView;\n}(ComponentView);\n\nfunction isUserFeatureName(featureName) {\n  return featureName.indexOf('my') === 0;\n}\n\nexport default ToolboxView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport env from 'zrender/lib/core/env';\nimport { ToolboxFeature } from '../featureManager';\n\nvar SaveAsImage = function (_super) {\n  __extends(SaveAsImage, _super);\n\n  function SaveAsImage() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  SaveAsImage.prototype.onclick = function (ecModel, api) {\n    var model = this.model;\n    var title = model.get('name') || ecModel.get('title.0.text') || 'echarts';\n    var isSvg = api.getZr().painter.getType() === 'svg';\n    var type = isSvg ? 'svg' : model.get('type', true) || 'png';\n    var url = api.getConnectedDataURL({\n      type: type,\n      backgroundColor: model.get('backgroundColor', true) || ecModel.get('backgroundColor') || '#fff',\n      connectedBackgroundColor: model.get('connectedBackgroundColor'),\n      excludeComponents: model.get('excludeComponents'),\n      pixelRatio: model.get('pixelRatio')\n    });\n\n    if (typeof MouseEvent === 'function' && (env.browser.newEdge || !env.browser.ie && !env.browser.edge)) {\n      var $a = document.createElement('a');\n      $a.download = title + '.' + type;\n      $a.target = '_blank';\n      $a.href = url;\n      var evt = new MouseEvent('click', {\n        view: document.defaultView,\n        bubbles: true,\n        cancelable: false\n      });\n      $a.dispatchEvent(evt);\n    } else {\n      if (window.navigator.msSaveOrOpenBlob || isSvg) {\n        var parts = url.split(',');\n        var base64Encoded = parts[0].indexOf('base64') > -1;\n        var bstr = isSvg ? decodeURIComponent(parts[1]) : parts[1];\n        base64Encoded && (bstr = atob(bstr));\n        var filename = title + '.' + type;\n\n        if (window.navigator.msSaveOrOpenBlob) {\n          var n = bstr.length;\n          var u8arr = new Uint8Array(n);\n\n          while (n--) {\n            u8arr[n] = bstr.charCodeAt(n);\n          }\n\n          var blob = new Blob([u8arr]);\n          window.navigator.msSaveOrOpenBlob(blob, filename);\n        } else {\n          var frame = document.createElement('iframe');\n          document.body.appendChild(frame);\n          var cw = frame.contentWindow;\n          var doc = cw.document;\n          doc.open('image/svg+xml', 'replace');\n          doc.write(bstr);\n          doc.close();\n          cw.focus();\n          doc.execCommand('SaveAs', true, filename);\n          document.body.removeChild(frame);\n        }\n      } else {\n        var lang = model.get('lang');\n        var html = '' + '<body style=\"margin:0;\">' + '<img src=\"' + url + '\" style=\"max-width:100%;\" title=\"' + (lang && lang[0] || '') + '\" />' + '</body>';\n        var tab = window.open();\n        tab.document.write(html);\n        tab.document.title = title;\n      }\n    }\n  };\n\n  SaveAsImage.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      icon: 'M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0',\n      title: ecModel.getLocale(['toolbox', 'saveAsImage', 'title']),\n      type: 'png',\n      connectedBackgroundColor: '#fff',\n      name: '',\n      excludeComponents: ['toolbox'],\n      pixelRatio: 1,\n      lang: ecModel.getLocale(['toolbox', 'saveAsImage', 'lang'])\n    };\n    return defaultOption;\n  };\n\n  return SaveAsImage;\n}(ToolboxFeature);\n\nSaveAsImage.prototype.unusable = !env.canvasSupported;\nexport default SaveAsImage;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as echarts from '../../../core/echarts';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { ToolboxFeature } from '../featureManager';\nimport { SINGLE_REFERRING } from '../../../util/model';\nvar INNER_STACK_KEYWORD = '__ec_magicType_stack__';\nvar ICON_TYPES = ['line', 'bar', 'stack'];\nvar TITLE_TYPES = ['line', 'bar', 'stack', 'tiled'];\nvar radioTypes = [['line', 'bar'], ['stack']];\n\nvar MagicType = function (_super) {\n  __extends(MagicType, _super);\n\n  function MagicType() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  MagicType.prototype.getIcons = function () {\n    var model = this.model;\n    var availableIcons = model.get('icon');\n    var icons = {};\n    zrUtil.each(model.get('type'), function (type) {\n      if (availableIcons[type]) {\n        icons[type] = availableIcons[type];\n      }\n    });\n    return icons;\n  };\n\n  MagicType.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      type: [],\n      icon: {\n        line: 'M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4',\n        bar: 'M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7',\n        stack: 'M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z'\n      },\n      title: ecModel.getLocale(['toolbox', 'magicType', 'title']),\n      option: {},\n      seriesIndex: {}\n    };\n    return defaultOption;\n  };\n\n  MagicType.prototype.onclick = function (ecModel, api, type) {\n    var model = this.model;\n    var seriesIndex = model.get(['seriesIndex', type]);\n\n    if (!seriesOptGenreator[type]) {\n      return;\n    }\n\n    var newOption = {\n      series: []\n    };\n\n    var generateNewSeriesTypes = function (seriesModel) {\n      var seriesType = seriesModel.subType;\n      var seriesId = seriesModel.id;\n      var newSeriesOpt = seriesOptGenreator[type](seriesType, seriesId, seriesModel, model);\n\n      if (newSeriesOpt) {\n        zrUtil.defaults(newSeriesOpt, seriesModel.option);\n        newOption.series.push(newSeriesOpt);\n      }\n\n      var coordSys = seriesModel.coordinateSystem;\n\n      if (coordSys && coordSys.type === 'cartesian2d' && (type === 'line' || type === 'bar')) {\n        var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\n\n        if (categoryAxis) {\n          var axisDim = categoryAxis.dim;\n          var axisType = axisDim + 'Axis';\n          var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\n          var axisIndex = axisModel.componentIndex;\n          newOption[axisType] = newOption[axisType] || [];\n\n          for (var i = 0; i <= axisIndex; i++) {\n            newOption[axisType][axisIndex] = newOption[axisType][axisIndex] || {};\n          }\n\n          newOption[axisType][axisIndex].boundaryGap = type === 'bar';\n        }\n      }\n    };\n\n    zrUtil.each(radioTypes, function (radio) {\n      if (zrUtil.indexOf(radio, type) >= 0) {\n        zrUtil.each(radio, function (item) {\n          model.setIconStatus(item, 'normal');\n        });\n      }\n    });\n    model.setIconStatus(type, 'emphasis');\n    ecModel.eachComponent({\n      mainType: 'series',\n      query: seriesIndex == null ? null : {\n        seriesIndex: seriesIndex\n      }\n    }, generateNewSeriesTypes);\n    var newTitle;\n\n    if (type === 'stack') {\n      newTitle = zrUtil.merge({\n        stack: model.option.title.tiled,\n        tiled: model.option.title.stack\n      }, model.option.title);\n    }\n\n    api.dispatchAction({\n      type: 'changeMagicType',\n      currentType: type,\n      newOption: newOption,\n      newTitle: newTitle,\n      featureName: 'magicType'\n    });\n  };\n\n  return MagicType;\n}(ToolboxFeature);\n\nvar seriesOptGenreator = {\n  'line': function (seriesType, seriesId, seriesModel, model) {\n    if (seriesType === 'bar') {\n      return zrUtil.merge({\n        id: seriesId,\n        type: 'line',\n        data: seriesModel.get('data'),\n        stack: seriesModel.get('stack'),\n        markPoint: seriesModel.get('markPoint'),\n        markLine: seriesModel.get('markLine')\n      }, model.get(['option', 'line']) || {}, true);\n    }\n  },\n  'bar': function (seriesType, seriesId, seriesModel, model) {\n    if (seriesType === 'line') {\n      return zrUtil.merge({\n        id: seriesId,\n        type: 'bar',\n        data: seriesModel.get('data'),\n        stack: seriesModel.get('stack'),\n        markPoint: seriesModel.get('markPoint'),\n        markLine: seriesModel.get('markLine')\n      }, model.get(['option', 'bar']) || {}, true);\n    }\n  },\n  'stack': function (seriesType, seriesId, seriesModel, model) {\n    var isStack = seriesModel.get('stack') === INNER_STACK_KEYWORD;\n\n    if (seriesType === 'line' || seriesType === 'bar') {\n      model.setIconStatus('stack', isStack ? 'normal' : 'emphasis');\n      return zrUtil.merge({\n        id: seriesId,\n        stack: isStack ? '' : INNER_STACK_KEYWORD\n      }, model.get(['option', 'stack']) || {}, true);\n    }\n  }\n};\necharts.registerAction({\n  type: 'changeMagicType',\n  event: 'magicTypeChanged',\n  update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n  ecModel.mergeOption(payload.newOption);\n});\nexport default MagicType;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as echarts from '../../../core/echarts';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { ToolboxFeature } from '../featureManager';\nimport { addEventListener } from 'zrender/lib/core/event';\nvar BLOCK_SPLITER = new Array(60).join('-');\nvar ITEM_SPLITER = '\\t';\n\nfunction groupSeries(ecModel) {\n  var seriesGroupByCategoryAxis = {};\n  var otherSeries = [];\n  var meta = [];\n  ecModel.eachRawSeries(function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys && (coordSys.type === 'cartesian2d' || coordSys.type === 'polar')) {\n      var baseAxis = coordSys.getBaseAxis();\n\n      if (baseAxis.type === 'category') {\n        var key = baseAxis.dim + '_' + baseAxis.index;\n\n        if (!seriesGroupByCategoryAxis[key]) {\n          seriesGroupByCategoryAxis[key] = {\n            categoryAxis: baseAxis,\n            valueAxis: coordSys.getOtherAxis(baseAxis),\n            series: []\n          };\n          meta.push({\n            axisDim: baseAxis.dim,\n            axisIndex: baseAxis.index\n          });\n        }\n\n        seriesGroupByCategoryAxis[key].series.push(seriesModel);\n      } else {\n        otherSeries.push(seriesModel);\n      }\n    } else {\n      otherSeries.push(seriesModel);\n    }\n  });\n  return {\n    seriesGroupByCategoryAxis: seriesGroupByCategoryAxis,\n    other: otherSeries,\n    meta: meta\n  };\n}\n\nfunction assembleSeriesWithCategoryAxis(groups) {\n  var tables = [];\n  zrUtil.each(groups, function (group, key) {\n    var categoryAxis = group.categoryAxis;\n    var valueAxis = group.valueAxis;\n    var valueAxisDim = valueAxis.dim;\n    var headers = [' '].concat(zrUtil.map(group.series, function (series) {\n      return series.name;\n    }));\n    var columns = [categoryAxis.model.getCategories()];\n    zrUtil.each(group.series, function (series) {\n      var rawData = series.getRawData();\n      columns.push(series.getRawData().mapArray(rawData.mapDimension(valueAxisDim), function (val) {\n        return val;\n      }));\n    });\n    var lines = [headers.join(ITEM_SPLITER)];\n\n    for (var i = 0; i < columns[0].length; i++) {\n      var items = [];\n\n      for (var j = 0; j < columns.length; j++) {\n        items.push(columns[j][i]);\n      }\n\n      lines.push(items.join(ITEM_SPLITER));\n    }\n\n    tables.push(lines.join('\\n'));\n  });\n  return tables.join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\n}\n\nfunction assembleOtherSeries(series) {\n  return zrUtil.map(series, function (series) {\n    var data = series.getRawData();\n    var lines = [series.name];\n    var vals = [];\n    data.each(data.dimensions, function () {\n      var argLen = arguments.length;\n      var dataIndex = arguments[argLen - 1];\n      var name = data.getName(dataIndex);\n\n      for (var i = 0; i < argLen - 1; i++) {\n        vals[i] = arguments[i];\n      }\n\n      lines.push((name ? name + ITEM_SPLITER : '') + vals.join(ITEM_SPLITER));\n    });\n    return lines.join('\\n');\n  }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\n}\n\nfunction getContentFromModel(ecModel) {\n  var result = groupSeries(ecModel);\n  return {\n    value: zrUtil.filter([assembleSeriesWithCategoryAxis(result.seriesGroupByCategoryAxis), assembleOtherSeries(result.other)], function (str) {\n      return !!str.replace(/[\\n\\t\\s]/g, '');\n    }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n'),\n    meta: result.meta\n  };\n}\n\nfunction trim(str) {\n  return str.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n}\n\nfunction isTSVFormat(block) {\n  var firstLine = block.slice(0, block.indexOf('\\n'));\n\n  if (firstLine.indexOf(ITEM_SPLITER) >= 0) {\n    return true;\n  }\n}\n\nvar itemSplitRegex = new RegExp('[' + ITEM_SPLITER + ']+', 'g');\n\nfunction parseTSVContents(tsv) {\n  var tsvLines = tsv.split(/\\n+/g);\n  var headers = trim(tsvLines.shift()).split(itemSplitRegex);\n  var categories = [];\n  var series = zrUtil.map(headers, function (header) {\n    return {\n      name: header,\n      data: []\n    };\n  });\n\n  for (var i = 0; i < tsvLines.length; i++) {\n    var items = trim(tsvLines[i]).split(itemSplitRegex);\n    categories.push(items.shift());\n\n    for (var j = 0; j < items.length; j++) {\n      series[j] && (series[j].data[i] = items[j]);\n    }\n  }\n\n  return {\n    series: series,\n    categories: categories\n  };\n}\n\nfunction parseListContents(str) {\n  var lines = str.split(/\\n+/g);\n  var seriesName = trim(lines.shift());\n  var data = [];\n\n  for (var i = 0; i < lines.length; i++) {\n    var line = trim(lines[i]);\n\n    if (!line) {\n      continue;\n    }\n\n    var items = line.split(itemSplitRegex);\n    var name_1 = '';\n    var value = void 0;\n    var hasName = false;\n\n    if (isNaN(items[0])) {\n      hasName = true;\n      name_1 = items[0];\n      items = items.slice(1);\n      data[i] = {\n        name: name_1,\n        value: []\n      };\n      value = data[i].value;\n    } else {\n      value = data[i] = [];\n    }\n\n    for (var j = 0; j < items.length; j++) {\n      value.push(+items[j]);\n    }\n\n    if (value.length === 1) {\n      hasName ? data[i].value = value[0] : data[i] = value[0];\n    }\n  }\n\n  return {\n    name: seriesName,\n    data: data\n  };\n}\n\nfunction parseContents(str, blockMetaList) {\n  var blocks = str.split(new RegExp('\\n*' + BLOCK_SPLITER + '\\n*', 'g'));\n  var newOption = {\n    series: []\n  };\n  zrUtil.each(blocks, function (block, idx) {\n    if (isTSVFormat(block)) {\n      var result = parseTSVContents(block);\n      var blockMeta = blockMetaList[idx];\n      var axisKey = blockMeta.axisDim + 'Axis';\n\n      if (blockMeta) {\n        newOption[axisKey] = newOption[axisKey] || [];\n        newOption[axisKey][blockMeta.axisIndex] = {\n          data: result.categories\n        };\n        newOption.series = newOption.series.concat(result.series);\n      }\n    } else {\n      var result = parseListContents(block);\n      newOption.series.push(result);\n    }\n  });\n  return newOption;\n}\n\nvar DataView = function (_super) {\n  __extends(DataView, _super);\n\n  function DataView() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  DataView.prototype.onclick = function (ecModel, api) {\n    var container = api.getDom();\n    var model = this.model;\n\n    if (this._dom) {\n      container.removeChild(this._dom);\n    }\n\n    var root = document.createElement('div');\n    root.style.cssText = 'position:absolute;left:5px;top:5px;bottom:5px;right:5px;';\n    root.style.backgroundColor = model.get('backgroundColor') || '#fff';\n    var header = document.createElement('h4');\n    var lang = model.get('lang') || [];\n    header.innerHTML = lang[0] || model.get('title');\n    header.style.cssText = 'margin: 10px 20px;';\n    header.style.color = model.get('textColor');\n    var viewMain = document.createElement('div');\n    var textarea = document.createElement('textarea');\n    viewMain.style.cssText = 'display:block;width:100%;overflow:auto;';\n    var optionToContent = model.get('optionToContent');\n    var contentToOption = model.get('contentToOption');\n    var result = getContentFromModel(ecModel);\n\n    if (typeof optionToContent === 'function') {\n      var htmlOrDom = optionToContent(api.getOption());\n\n      if (typeof htmlOrDom === 'string') {\n        viewMain.innerHTML = htmlOrDom;\n      } else if (zrUtil.isDom(htmlOrDom)) {\n        viewMain.appendChild(htmlOrDom);\n      }\n    } else {\n      viewMain.appendChild(textarea);\n      textarea.readOnly = model.get('readOnly');\n      textarea.style.cssText = 'width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;';\n      textarea.style.color = model.get('textColor');\n      textarea.style.borderColor = model.get('textareaBorderColor');\n      textarea.style.backgroundColor = model.get('textareaColor');\n      textarea.value = result.value;\n    }\n\n    var blockMetaList = result.meta;\n    var buttonContainer = document.createElement('div');\n    buttonContainer.style.cssText = 'position:absolute;bottom:0;left:0;right:0;';\n    var buttonStyle = 'float:right;margin-right:20px;border:none;' + 'cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px';\n    var closeButton = document.createElement('div');\n    var refreshButton = document.createElement('div');\n    buttonStyle += ';background-color:' + model.get('buttonColor');\n    buttonStyle += ';color:' + model.get('buttonTextColor');\n    var self = this;\n\n    function close() {\n      container.removeChild(root);\n      self._dom = null;\n    }\n\n    addEventListener(closeButton, 'click', close);\n    addEventListener(refreshButton, 'click', function () {\n      if (contentToOption == null && optionToContent != null || contentToOption != null && optionToContent == null) {\n        if (process.env.NODE_ENV !== 'production') {\n          console.warn('It seems you have just provided one of `contentToOption` and `optionToContent` functions but missed the other one. Data change is ignored.');\n        }\n\n        close();\n        return;\n      }\n\n      var newOption;\n\n      try {\n        if (typeof contentToOption === 'function') {\n          newOption = contentToOption(viewMain, api.getOption());\n        } else {\n          newOption = parseContents(textarea.value, blockMetaList);\n        }\n      } catch (e) {\n        close();\n        throw new Error('Data view format error ' + e);\n      }\n\n      if (newOption) {\n        api.dispatchAction({\n          type: 'changeDataView',\n          newOption: newOption\n        });\n      }\n\n      close();\n    });\n    closeButton.innerHTML = lang[1];\n    refreshButton.innerHTML = lang[2];\n    refreshButton.style.cssText = buttonStyle;\n    closeButton.style.cssText = buttonStyle;\n    !model.get('readOnly') && buttonContainer.appendChild(refreshButton);\n    buttonContainer.appendChild(closeButton);\n    root.appendChild(header);\n    root.appendChild(viewMain);\n    root.appendChild(buttonContainer);\n    viewMain.style.height = container.clientHeight - 80 + 'px';\n    container.appendChild(root);\n    this._dom = root;\n  };\n\n  DataView.prototype.remove = function (ecModel, api) {\n    this._dom && api.getDom().removeChild(this._dom);\n  };\n\n  DataView.prototype.dispose = function (ecModel, api) {\n    this.remove(ecModel, api);\n  };\n\n  DataView.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      readOnly: false,\n      optionToContent: null,\n      contentToOption: null,\n      icon: 'M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28',\n      title: ecModel.getLocale(['toolbox', 'dataView', 'title']),\n      lang: ecModel.getLocale(['toolbox', 'dataView', 'lang']),\n      backgroundColor: '#fff',\n      textColor: '#000',\n      textareaColor: '#fff',\n      textareaBorderColor: '#333',\n      buttonColor: '#c23531',\n      buttonTextColor: '#fff'\n    };\n    return defaultOption;\n  };\n\n  return DataView;\n}(ToolboxFeature);\n\nfunction tryMergeDataOption(newData, originalData) {\n  return zrUtil.map(newData, function (newVal, idx) {\n    var original = originalData && originalData[idx];\n\n    if (zrUtil.isObject(original) && !zrUtil.isArray(original)) {\n      var newValIsObject = zrUtil.isObject(newVal) && !zrUtil.isArray(newVal);\n\n      if (!newValIsObject) {\n        newVal = {\n          value: newVal\n        };\n      }\n\n      var shouldDeleteName = original.name != null && newVal.name == null;\n      newVal = zrUtil.defaults(newVal, original);\n      shouldDeleteName && delete newVal.name;\n      return newVal;\n    } else {\n      return newVal;\n    }\n  });\n}\n\necharts.registerAction({\n  type: 'changeDataView',\n  event: 'dataViewChanged',\n  update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n  var newSeriesOptList = [];\n  zrUtil.each(payload.newOption.series, function (seriesOpt) {\n    var seriesModel = ecModel.getSeriesByName(seriesOpt.name)[0];\n\n    if (!seriesModel) {\n      newSeriesOptList.push(zrUtil.extend({\n        type: 'scatter'\n      }, seriesOpt));\n    } else {\n      var originalData = seriesModel.get('data');\n      newSeriesOptList.push({\n        name: seriesOpt.name,\n        data: tryMergeDataOption(seriesOpt.data, originalData)\n      });\n    }\n  });\n  ecModel.mergeOption(zrUtil.defaults({\n    series: newSeriesOptList\n  }, payload.newOption));\n});\nexport default DataView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { makeInner } from '../../util/model';\nvar each = zrUtil.each;\nvar inner = makeInner();\nexport function push(ecModel, newSnapshot) {\n  var storedSnapshots = getStoreSnapshots(ecModel);\n  each(newSnapshot, function (batchItem, dataZoomId) {\n    var i = storedSnapshots.length - 1;\n\n    for (; i >= 0; i--) {\n      var snapshot = storedSnapshots[i];\n\n      if (snapshot[dataZoomId]) {\n        break;\n      }\n    }\n\n    if (i < 0) {\n      var dataZoomModel = ecModel.queryComponents({\n        mainType: 'dataZoom',\n        subType: 'select',\n        id: dataZoomId\n      })[0];\n\n      if (dataZoomModel) {\n        var percentRange = dataZoomModel.getPercentRange();\n        storedSnapshots[0][dataZoomId] = {\n          dataZoomId: dataZoomId,\n          start: percentRange[0],\n          end: percentRange[1]\n        };\n      }\n    }\n  });\n  storedSnapshots.push(newSnapshot);\n}\nexport function pop(ecModel) {\n  var storedSnapshots = getStoreSnapshots(ecModel);\n  var head = storedSnapshots[storedSnapshots.length - 1];\n  storedSnapshots.length > 1 && storedSnapshots.pop();\n  var snapshot = {};\n  each(head, function (batchItem, dataZoomId) {\n    for (var i = storedSnapshots.length - 1; i >= 0; i--) {\n      batchItem = storedSnapshots[i][dataZoomId];\n\n      if (batchItem) {\n        snapshot[dataZoomId] = batchItem;\n        break;\n      }\n    }\n  });\n  return snapshot;\n}\nexport function clear(ecModel) {\n  inner(ecModel).snapshots = null;\n}\nexport function count(ecModel) {\n  return getStoreSnapshots(ecModel).length;\n}\n\nfunction getStoreSnapshots(ecModel) {\n  var store = inner(ecModel);\n\n  if (!store.snapshots) {\n    store.snapshots = [{}];\n  }\n\n  return store.snapshots;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as echarts from '../../../core/echarts';\nimport * as history from '../../dataZoom/history';\nimport { ToolboxFeature } from '../featureManager';\n\nvar RestoreOption = function (_super) {\n  __extends(RestoreOption, _super);\n\n  function RestoreOption() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  RestoreOption.prototype.onclick = function (ecModel, api) {\n    history.clear(ecModel);\n    api.dispatchAction({\n      type: 'restore',\n      from: this.uid\n    });\n  };\n\n  RestoreOption.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      icon: 'M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5',\n      title: ecModel.getLocale(['toolbox', 'restore', 'title'])\n    };\n    return defaultOption;\n  };\n\n  return RestoreOption;\n}(ToolboxFeature);\n\necharts.registerAction({\n  type: 'restore',\n  event: 'restore',\n  update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n  ecModel.resetOption('recreate');\n});\nexport default RestoreOption;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, indexOf, curry, assert, map, createHashMap } from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport * as brushHelper from './brushHelper';\nimport { parseFinder as modelUtilParseFinder } from '../../util/model';\nvar COORD_CONVERTS = ['dataToPoint', 'pointToData'];\nvar INCLUDE_FINDER_MAIN_TYPES = ['grid', 'xAxis', 'yAxis', 'geo', 'graph', 'polar', 'radiusAxis', 'angleAxis', 'bmap'];\n\nvar BrushTargetManager = function () {\n  function BrushTargetManager(finder, ecModel, opt) {\n    var _this = this;\n\n    this._targetInfoList = [];\n    var foundCpts = parseFinder(ecModel, finder);\n    each(targetInfoBuilders, function (builder, type) {\n      if (!opt || !opt.include || indexOf(opt.include, type) >= 0) {\n        builder(foundCpts, _this._targetInfoList);\n      }\n    });\n  }\n\n  BrushTargetManager.prototype.setOutputRanges = function (areas, ecModel) {\n    this.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) {\n      (area.coordRanges || (area.coordRanges = [])).push(coordRange);\n\n      if (!area.coordRange) {\n        area.coordRange = coordRange;\n        var result = coordConvert[area.brushType](0, coordSys, coordRange);\n        area.__rangeOffset = {\n          offset: diffProcessor[area.brushType](result.values, area.range, [1, 1]),\n          xyMinMax: result.xyMinMax\n        };\n      }\n    });\n    return areas;\n  };\n\n  BrushTargetManager.prototype.matchOutputRanges = function (areas, ecModel, cb) {\n    each(areas, function (area) {\n      var targetInfo = this.findTargetInfo(area, ecModel);\n\n      if (targetInfo && targetInfo !== true) {\n        each(targetInfo.coordSyses, function (coordSys) {\n          var result = coordConvert[area.brushType](1, coordSys, area.range);\n          cb(area, result.values, coordSys, ecModel);\n        });\n      }\n    }, this);\n  };\n\n  BrushTargetManager.prototype.setInputRanges = function (areas, ecModel) {\n    each(areas, function (area) {\n      var targetInfo = this.findTargetInfo(area, ecModel);\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(!targetInfo || targetInfo === true || area.coordRange, 'coordRange must be specified when coord index specified.');\n        assert(!targetInfo || targetInfo !== true || area.range, 'range must be specified in global brush.');\n      }\n\n      area.range = area.range || [];\n\n      if (targetInfo && targetInfo !== true) {\n        area.panelId = targetInfo.panelId;\n        var result = coordConvert[area.brushType](0, targetInfo.coordSys, area.coordRange);\n        var rangeOffset = area.__rangeOffset;\n        area.range = rangeOffset ? diffProcessor[area.brushType](result.values, rangeOffset.offset, getScales(result.xyMinMax, rangeOffset.xyMinMax)) : result.values;\n      }\n    }, this);\n  };\n\n  BrushTargetManager.prototype.makePanelOpts = function (api, getDefaultBrushType) {\n    return map(this._targetInfoList, function (targetInfo) {\n      var rect = targetInfo.getPanelRect();\n      return {\n        panelId: targetInfo.panelId,\n        defaultBrushType: getDefaultBrushType ? getDefaultBrushType(targetInfo) : null,\n        clipPath: brushHelper.makeRectPanelClipPath(rect),\n        isTargetByCursor: brushHelper.makeRectIsTargetByCursor(rect, api, targetInfo.coordSysModel),\n        getLinearBrushOtherExtent: brushHelper.makeLinearBrushOtherExtent(rect)\n      };\n    });\n  };\n\n  BrushTargetManager.prototype.controlSeries = function (area, seriesModel, ecModel) {\n    var targetInfo = this.findTargetInfo(area, ecModel);\n    return targetInfo === true || targetInfo && indexOf(targetInfo.coordSyses, seriesModel.coordinateSystem) >= 0;\n  };\n\n  BrushTargetManager.prototype.findTargetInfo = function (area, ecModel) {\n    var targetInfoList = this._targetInfoList;\n    var foundCpts = parseFinder(ecModel, area);\n\n    for (var i = 0; i < targetInfoList.length; i++) {\n      var targetInfo = targetInfoList[i];\n      var areaPanelId = area.panelId;\n\n      if (areaPanelId) {\n        if (targetInfo.panelId === areaPanelId) {\n          return targetInfo;\n        }\n      } else {\n        for (var j = 0; j < targetInfoMatchers.length; j++) {\n          if (targetInfoMatchers[j](foundCpts, targetInfo)) {\n            return targetInfo;\n          }\n        }\n      }\n    }\n\n    return true;\n  };\n\n  return BrushTargetManager;\n}();\n\nfunction formatMinMax(minMax) {\n  minMax[0] > minMax[1] && minMax.reverse();\n  return minMax;\n}\n\nfunction parseFinder(ecModel, finder) {\n  return modelUtilParseFinder(ecModel, finder, {\n    includeMainTypes: INCLUDE_FINDER_MAIN_TYPES\n  });\n}\n\nvar targetInfoBuilders = {\n  grid: function (foundCpts, targetInfoList) {\n    var xAxisModels = foundCpts.xAxisModels;\n    var yAxisModels = foundCpts.yAxisModels;\n    var gridModels = foundCpts.gridModels;\n    var gridModelMap = createHashMap();\n    var xAxesHas = {};\n    var yAxesHas = {};\n\n    if (!xAxisModels && !yAxisModels && !gridModels) {\n      return;\n    }\n\n    each(xAxisModels, function (axisModel) {\n      var gridModel = axisModel.axis.grid.model;\n      gridModelMap.set(gridModel.id, gridModel);\n      xAxesHas[gridModel.id] = true;\n    });\n    each(yAxisModels, function (axisModel) {\n      var gridModel = axisModel.axis.grid.model;\n      gridModelMap.set(gridModel.id, gridModel);\n      yAxesHas[gridModel.id] = true;\n    });\n    each(gridModels, function (gridModel) {\n      gridModelMap.set(gridModel.id, gridModel);\n      xAxesHas[gridModel.id] = true;\n      yAxesHas[gridModel.id] = true;\n    });\n    gridModelMap.each(function (gridModel) {\n      var grid = gridModel.coordinateSystem;\n      var cartesians = [];\n      each(grid.getCartesians(), function (cartesian, index) {\n        if (indexOf(xAxisModels, cartesian.getAxis('x').model) >= 0 || indexOf(yAxisModels, cartesian.getAxis('y').model) >= 0) {\n          cartesians.push(cartesian);\n        }\n      });\n      targetInfoList.push({\n        panelId: 'grid--' + gridModel.id,\n        gridModel: gridModel,\n        coordSysModel: gridModel,\n        coordSys: cartesians[0],\n        coordSyses: cartesians,\n        getPanelRect: panelRectBuilders.grid,\n        xAxisDeclared: xAxesHas[gridModel.id],\n        yAxisDeclared: yAxesHas[gridModel.id]\n      });\n    });\n  },\n  geo: function (foundCpts, targetInfoList) {\n    each(foundCpts.geoModels, function (geoModel) {\n      var coordSys = geoModel.coordinateSystem;\n      targetInfoList.push({\n        panelId: 'geo--' + geoModel.id,\n        geoModel: geoModel,\n        coordSysModel: geoModel,\n        coordSys: coordSys,\n        coordSyses: [coordSys],\n        getPanelRect: panelRectBuilders.geo\n      });\n    });\n  }\n};\nvar targetInfoMatchers = [function (foundCpts, targetInfo) {\n  var xAxisModel = foundCpts.xAxisModel;\n  var yAxisModel = foundCpts.yAxisModel;\n  var gridModel = foundCpts.gridModel;\n  !gridModel && xAxisModel && (gridModel = xAxisModel.axis.grid.model);\n  !gridModel && yAxisModel && (gridModel = yAxisModel.axis.grid.model);\n  return gridModel && gridModel === targetInfo.gridModel;\n}, function (foundCpts, targetInfo) {\n  var geoModel = foundCpts.geoModel;\n  return geoModel && geoModel === targetInfo.geoModel;\n}];\nvar panelRectBuilders = {\n  grid: function () {\n    return this.coordSys.master.getRect().clone();\n  },\n  geo: function () {\n    var coordSys = this.coordSys;\n    var rect = coordSys.getBoundingRect().clone();\n    rect.applyTransform(graphic.getTransform(coordSys));\n    return rect;\n  }\n};\nvar coordConvert = {\n  lineX: curry(axisConvert, 0),\n  lineY: curry(axisConvert, 1),\n  rect: function (to, coordSys, rangeOrCoordRange) {\n    var xminymin = coordSys[COORD_CONVERTS[to]]([rangeOrCoordRange[0][0], rangeOrCoordRange[1][0]]);\n    var xmaxymax = coordSys[COORD_CONVERTS[to]]([rangeOrCoordRange[0][1], rangeOrCoordRange[1][1]]);\n    var values = [formatMinMax([xminymin[0], xmaxymax[0]]), formatMinMax([xminymin[1], xmaxymax[1]])];\n    return {\n      values: values,\n      xyMinMax: values\n    };\n  },\n  polygon: function (to, coordSys, rangeOrCoordRange) {\n    var xyMinMax = [[Infinity, -Infinity], [Infinity, -Infinity]];\n    var values = map(rangeOrCoordRange, function (item) {\n      var p = coordSys[COORD_CONVERTS[to]](item);\n      xyMinMax[0][0] = Math.min(xyMinMax[0][0], p[0]);\n      xyMinMax[1][0] = Math.min(xyMinMax[1][0], p[1]);\n      xyMinMax[0][1] = Math.max(xyMinMax[0][1], p[0]);\n      xyMinMax[1][1] = Math.max(xyMinMax[1][1], p[1]);\n      return p;\n    });\n    return {\n      values: values,\n      xyMinMax: xyMinMax\n    };\n  }\n};\n\nfunction axisConvert(axisNameIndex, to, coordSys, rangeOrCoordRange) {\n  if (process.env.NODE_ENV !== 'production') {\n    assert(coordSys.type === 'cartesian2d', 'lineX/lineY brush is available only in cartesian2d.');\n  }\n\n  var axis = coordSys.getAxis(['x', 'y'][axisNameIndex]);\n  var values = formatMinMax(map([0, 1], function (i) {\n    return to ? axis.coordToData(axis.toLocalCoord(rangeOrCoordRange[i])) : axis.toGlobalCoord(axis.dataToCoord(rangeOrCoordRange[i]));\n  }));\n  var xyMinMax = [];\n  xyMinMax[axisNameIndex] = values;\n  xyMinMax[1 - axisNameIndex] = [NaN, NaN];\n  return {\n    values: values,\n    xyMinMax: xyMinMax\n  };\n}\n\nvar diffProcessor = {\n  lineX: curry(axisDiffProcessor, 0),\n  lineY: curry(axisDiffProcessor, 1),\n  rect: function (values, refer, scales) {\n    return [[values[0][0] - scales[0] * refer[0][0], values[0][1] - scales[0] * refer[0][1]], [values[1][0] - scales[1] * refer[1][0], values[1][1] - scales[1] * refer[1][1]]];\n  },\n  polygon: function (values, refer, scales) {\n    return map(values, function (item, idx) {\n      return [item[0] - scales[0] * refer[idx][0], item[1] - scales[1] * refer[idx][1]];\n    });\n  }\n};\n\nfunction axisDiffProcessor(axisNameIndex, values, refer, scales) {\n  return [values[0] - scales[axisNameIndex] * refer[0], values[1] - scales[axisNameIndex] * refer[1]];\n}\n\nfunction getScales(xyMinMaxCurr, xyMinMaxOrigin) {\n  var sizeCurr = getSize(xyMinMaxCurr);\n  var sizeOrigin = getSize(xyMinMaxOrigin);\n  var scales = [sizeCurr[0] / sizeOrigin[0], sizeCurr[1] / sizeOrigin[1]];\n  isNaN(scales[0]) && (scales[0] = 1);\n  isNaN(scales[1]) && (scales[1] = 1);\n  return scales;\n}\n\nfunction getSize(xyMinMax) {\n  return xyMinMax ? [xyMinMax[0][1] - xyMinMax[0][0], xyMinMax[1][1] - xyMinMax[1][0]] : [NaN, NaN];\n}\n\nexport default BrushTargetManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BrushController from '../../helper/BrushController';\nimport BrushTargetManager from '../../helper/BrushTargetManager';\nimport * as history from '../../dataZoom/history';\nimport sliderMove from '../../helper/sliderMove';\nimport { ToolboxFeature } from '../featureManager';\nimport { makeInternalComponentId, parseFinder } from '../../../util/model';\nimport { registerInternalOptionCreator } from '../../../model/internalComponentCreator';\nvar each = zrUtil.each;\nvar DATA_ZOOM_ID_BASE = makeInternalComponentId('toolbox-dataZoom_');\nvar ICON_TYPES = ['zoom', 'back'];\n\nvar DataZoomFeature = function (_super) {\n  __extends(DataZoomFeature, _super);\n\n  function DataZoomFeature() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  DataZoomFeature.prototype.render = function (featureModel, ecModel, api, payload) {\n    if (!this.brushController) {\n      this.brushController = new BrushController(api.getZr());\n      this.brushController.on('brush', zrUtil.bind(this._onBrush, this)).mount();\n    }\n\n    updateZoomBtnStatus(featureModel, ecModel, this, payload, api);\n    updateBackBtnStatus(featureModel, ecModel);\n  };\n\n  DataZoomFeature.prototype.onclick = function (ecModel, api, type) {\n    handlers[type].call(this);\n  };\n\n  DataZoomFeature.prototype.remove = function (ecModel, api) {\n    this.brushController.unmount();\n  };\n\n  DataZoomFeature.prototype.dispose = function (ecModel, api) {\n    this.brushController.dispose();\n  };\n\n  DataZoomFeature.prototype._onBrush = function (eventParam) {\n    var areas = eventParam.areas;\n\n    if (!eventParam.isEnd || !areas.length) {\n      return;\n    }\n\n    var snapshot = {};\n    var ecModel = this.ecModel;\n    this.brushController.updateCovers([]);\n    var brushTargetManager = new BrushTargetManager(makeAxisFinder(this.model), ecModel, {\n      include: ['grid']\n    });\n    brushTargetManager.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) {\n      if (coordSys.type !== 'cartesian2d') {\n        return;\n      }\n\n      var brushType = area.brushType;\n\n      if (brushType === 'rect') {\n        setBatch('x', coordSys, coordRange[0]);\n        setBatch('y', coordSys, coordRange[1]);\n      } else {\n        setBatch({\n          lineX: 'x',\n          lineY: 'y'\n        }[brushType], coordSys, coordRange);\n      }\n    });\n    history.push(ecModel, snapshot);\n\n    this._dispatchZoomAction(snapshot);\n\n    function setBatch(dimName, coordSys, minMax) {\n      var axis = coordSys.getAxis(dimName);\n      var axisModel = axis.model;\n      var dataZoomModel = findDataZoom(dimName, axisModel, ecModel);\n      var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy(axisModel).getMinMaxSpan();\n\n      if (minMaxSpan.minValueSpan != null || minMaxSpan.maxValueSpan != null) {\n        minMax = sliderMove(0, minMax.slice(), axis.scale.getExtent(), 0, minMaxSpan.minValueSpan, minMaxSpan.maxValueSpan);\n      }\n\n      dataZoomModel && (snapshot[dataZoomModel.id] = {\n        dataZoomId: dataZoomModel.id,\n        startValue: minMax[0],\n        endValue: minMax[1]\n      });\n    }\n\n    function findDataZoom(dimName, axisModel, ecModel) {\n      var found;\n      ecModel.eachComponent({\n        mainType: 'dataZoom',\n        subType: 'select'\n      }, function (dzModel) {\n        var has = dzModel.getAxisModel(dimName, axisModel.componentIndex);\n        has && (found = dzModel);\n      });\n      return found;\n    }\n  };\n\n  ;\n\n  DataZoomFeature.prototype._dispatchZoomAction = function (snapshot) {\n    var batch = [];\n    each(snapshot, function (batchItem, dataZoomId) {\n      batch.push(zrUtil.clone(batchItem));\n    });\n    batch.length && this.api.dispatchAction({\n      type: 'dataZoom',\n      from: this.uid,\n      batch: batch\n    });\n  };\n\n  DataZoomFeature.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      filterMode: 'filter',\n      icon: {\n        zoom: 'M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1',\n        back: 'M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26'\n      },\n      title: ecModel.getLocale(['toolbox', 'dataZoom', 'title']),\n      brushStyle: {\n        borderWidth: 0,\n        color: 'rgba(210,219,238,0.2)'\n      }\n    };\n    return defaultOption;\n  };\n\n  return DataZoomFeature;\n}(ToolboxFeature);\n\nvar handlers = {\n  zoom: function () {\n    var nextActive = !this.isZoomActive;\n    this.api.dispatchAction({\n      type: 'takeGlobalCursor',\n      key: 'dataZoomSelect',\n      dataZoomSelectActive: nextActive\n    });\n  },\n  back: function () {\n    this._dispatchZoomAction(history.pop(this.ecModel));\n  }\n};\n\nfunction makeAxisFinder(dzFeatureModel) {\n  var setting = {\n    xAxisIndex: dzFeatureModel.get('xAxisIndex', true),\n    yAxisIndex: dzFeatureModel.get('yAxisIndex', true),\n    xAxisId: dzFeatureModel.get('xAxisId', true),\n    yAxisId: dzFeatureModel.get('yAxisId', true)\n  };\n\n  if (setting.xAxisIndex == null && setting.xAxisId == null) {\n    setting.xAxisIndex = 'all';\n  }\n\n  if (setting.yAxisIndex == null && setting.yAxisId == null) {\n    setting.yAxisIndex = 'all';\n  }\n\n  return setting;\n}\n\nfunction updateBackBtnStatus(featureModel, ecModel) {\n  featureModel.setIconStatus('back', history.count(ecModel) > 1 ? 'emphasis' : 'normal');\n}\n\nfunction updateZoomBtnStatus(featureModel, ecModel, view, payload, api) {\n  var zoomActive = view.isZoomActive;\n\n  if (payload && payload.type === 'takeGlobalCursor') {\n    zoomActive = payload.key === 'dataZoomSelect' ? payload.dataZoomSelectActive : false;\n  }\n\n  view.isZoomActive = zoomActive;\n  featureModel.setIconStatus('zoom', zoomActive ? 'emphasis' : 'normal');\n  var brushTargetManager = new BrushTargetManager(makeAxisFinder(featureModel), ecModel, {\n    include: ['grid']\n  });\n  var panels = brushTargetManager.makePanelOpts(api, function (targetInfo) {\n    return targetInfo.xAxisDeclared && !targetInfo.yAxisDeclared ? 'lineX' : !targetInfo.xAxisDeclared && targetInfo.yAxisDeclared ? 'lineY' : 'rect';\n  });\n  view.brushController.setPanels(panels).enableBrush(zoomActive && panels.length ? {\n    brushType: 'auto',\n    brushStyle: featureModel.getModel('brushStyle').getItemStyle()\n  } : false);\n}\n\nregisterInternalOptionCreator('dataZoom', function (ecModel) {\n  var toolboxModel = ecModel.getComponent('toolbox', 0);\n\n  if (!toolboxModel) {\n    return;\n  }\n\n  var dzFeatureModel = toolboxModel.getModel(['feature', 'dataZoom']);\n  var dzOptions = [];\n  var finder = makeAxisFinder(dzFeatureModel);\n  var finderResult = parseFinder(ecModel, finder);\n  each(finderResult.xAxisModels, function (axisModel) {\n    return buildInternalOptions(axisModel, 'xAxis', 'xAxisIndex');\n  });\n  each(finderResult.yAxisModels, function (axisModel) {\n    return buildInternalOptions(axisModel, 'yAxis', 'yAxisIndex');\n  });\n\n  function buildInternalOptions(axisModel, axisMainType, axisIndexPropName) {\n    var axisIndex = axisModel.componentIndex;\n    var newOpt = {\n      type: 'select',\n      $fromToolbox: true,\n      filterMode: dzFeatureModel.get('filterMode', true) || 'filter',\n      id: DATA_ZOOM_ID_BASE + axisMainType + axisIndex\n    };\n    newOpt[axisIndexPropName] = axisIndex;\n    dzOptions.push(newOpt);\n  }\n\n  return dzOptions;\n});\nexport default DataZoomFeature;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport { install as installDataZoomSelect } from '../../component/dataZoom/installDataZoomSelect';\nimport ToolboxModel from './ToolboxModel';\nimport ToolboxView from './ToolboxView';\nimport { registerFeature } from './featureManager';\nimport SaveAsImage from './feature/SaveAsImage';\nimport MagicType from './feature/MagicType';\nimport DataView from './feature/DataView';\nimport Restore from './feature/Restore';\nimport DataZoom from './feature/DataZoom';\nexport function install(registers) {\n  registers.registerComponentModel(ToolboxModel);\n  registers.registerComponentView(ToolboxView);\n  registerFeature('saveAsImage', SaveAsImage);\n  registerFeature('magicType', MagicType);\n  registerFeature('dataView', DataView);\n  registerFeature('dataZoom', DataZoom);\n  registerFeature('restore', Restore);\n  use(installDataZoomSelect);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\n\nvar TooltipModel = function (_super) {\n  __extends(TooltipModel, _super);\n\n  function TooltipModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TooltipModel.type;\n    return _this;\n  }\n\n  TooltipModel.type = 'tooltip';\n  TooltipModel.dependencies = ['axisPointer'];\n  TooltipModel.defaultOption = {\n    zlevel: 0,\n    z: 60,\n    show: true,\n    showContent: true,\n    trigger: 'item',\n    triggerOn: 'mousemove|click',\n    alwaysShowContent: false,\n    displayMode: 'single',\n    renderMode: 'auto',\n    confine: null,\n    showDelay: 0,\n    hideDelay: 100,\n    transitionDuration: 0.4,\n    enterable: false,\n    backgroundColor: '#fff',\n    shadowBlur: 10,\n    shadowColor: 'rgba(0, 0, 0, .2)',\n    shadowOffsetX: 1,\n    shadowOffsetY: 2,\n    borderRadius: 4,\n    borderWidth: 1,\n    padding: null,\n    extraCssText: '',\n    axisPointer: {\n      type: 'line',\n      axis: 'auto',\n      animation: 'auto',\n      animationDurationUpdate: 200,\n      animationEasingUpdate: 'exponentialOut',\n      crossStyle: {\n        color: '#999',\n        width: 1,\n        type: 'dashed',\n        textStyle: {}\n      }\n    },\n    textStyle: {\n      color: '#666',\n      fontSize: 14\n    }\n  };\n  return TooltipModel;\n}(ComponentModel);\n\nexport default TooltipModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function shouldTooltipConfine(tooltipModel) {\n  var confineOption = tooltipModel.get('confine');\n  return confineOption != null ? !!confineOption : tooltipModel.get('renderMode') === 'richText';\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isString, indexOf, map, each, bind, isArray, isDom } from 'zrender/lib/core/util';\nimport { toHex } from 'zrender/lib/tool/color';\nimport { normalizeEvent } from 'zrender/lib/core/event';\nimport { transformLocalCoord } from 'zrender/lib/core/dom';\nimport env from 'zrender/lib/core/env';\nimport { convertToColorString, toCamelCase, normalizeCssArray } from '../../util/format';\nimport { shouldTooltipConfine } from './helper';\nimport { getPaddingFromTooltipModel } from './tooltipMarkup';\nvar vendors = ['-ms-', '-moz-', '-o-', '-webkit-', ''];\nvar gCssText = 'position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;';\n\nfunction mirrorPos(pos) {\n  pos = pos === 'left' ? 'right' : pos === 'right' ? 'left' : pos === 'top' ? 'bottom' : 'top';\n  return pos;\n}\n\nfunction assembleArrow(backgroundColor, borderColor, arrowPosition) {\n  if (!isString(arrowPosition) || arrowPosition === 'inside') {\n    return '';\n  }\n\n  borderColor = convertToColorString(borderColor);\n  var arrowPos = mirrorPos(arrowPosition);\n  var positionStyle = '';\n  var transformStyle = '';\n\n  if (indexOf(['left', 'right'], arrowPos) > -1) {\n    positionStyle = arrowPos + \":-6px;top:50%;\";\n    transformStyle = \"translateY(-50%) rotate(\" + (arrowPos === 'left' ? -225 : -45) + \"deg)\";\n  } else {\n    positionStyle = arrowPos + \":-6px;left:50%;\";\n    transformStyle = \"translateX(-50%) rotate(\" + (arrowPos === 'top' ? 225 : 45) + \"deg)\";\n  }\n\n  transformStyle = map(vendors, function (vendorPrefix) {\n    return vendorPrefix + 'transform:' + transformStyle;\n  }).join(';');\n  var styleCss = ['position:absolute;width:10px;height:10px;', \"\" + positionStyle + transformStyle + \";\", \"border-bottom: \" + borderColor + \" solid 1px;\", \"border-right: \" + borderColor + \" solid 1px;\", \"background-color: \" + backgroundColor + \";\", 'box-shadow: 8px 8px 16px -3px #000;'];\n  return \"<div style=\\\"\" + styleCss.join('') + \"\\\"></div>\";\n}\n\nfunction assembleTransition(duration, onlyFade) {\n  var transitionCurve = 'cubic-bezier(0.23, 1, 0.32, 1)';\n  var transitionText = 'opacity ' + duration / 2 + 's ' + transitionCurve + ',' + 'visibility ' + duration / 2 + 's ' + transitionCurve;\n\n  if (!onlyFade) {\n    transitionText += ',left ' + duration + 's ' + transitionCurve + ',top ' + duration + 's ' + transitionCurve;\n  }\n\n  return map(vendors, function (vendorPrefix) {\n    return vendorPrefix + 'transition:' + transitionText;\n  }).join(';');\n}\n\nfunction assembleFont(textStyleModel) {\n  var cssText = [];\n  var fontSize = textStyleModel.get('fontSize');\n  var color = textStyleModel.getTextColor();\n  color && cssText.push('color:' + color);\n  cssText.push('font:' + textStyleModel.getFont());\n  fontSize && cssText.push('line-height:' + Math.round(fontSize * 3 / 2) + 'px');\n  var shadowColor = textStyleModel.get('textShadowColor');\n  var shadowBlur = textStyleModel.get('textShadowBlur') || 0;\n  var shadowOffsetX = textStyleModel.get('textShadowOffsetX') || 0;\n  var shadowOffsetY = textStyleModel.get('textShadowOffsetY') || 0;\n  shadowColor && shadowBlur && cssText.push('text-shadow:' + shadowOffsetX + 'px ' + shadowOffsetY + 'px ' + shadowBlur + 'px ' + shadowColor);\n  each(['decoration', 'align'], function (name) {\n    var val = textStyleModel.get(name);\n    val && cssText.push('text-' + name + ':' + val);\n  });\n  return cssText.join(';');\n}\n\nfunction assembleCssText(tooltipModel, enableTransition, onlyFade) {\n  var cssText = [];\n  var transitionDuration = tooltipModel.get('transitionDuration');\n  var backgroundColor = tooltipModel.get('backgroundColor');\n  var shadowBlur = tooltipModel.get('shadowBlur');\n  var shadowColor = tooltipModel.get('shadowColor');\n  var shadowOffsetX = tooltipModel.get('shadowOffsetX');\n  var shadowOffsetY = tooltipModel.get('shadowOffsetY');\n  var textStyleModel = tooltipModel.getModel('textStyle');\n  var padding = getPaddingFromTooltipModel(tooltipModel, 'html');\n  var boxShadow = shadowOffsetX + \"px \" + shadowOffsetY + \"px \" + shadowBlur + \"px \" + shadowColor;\n  cssText.push('box-shadow:' + boxShadow);\n  enableTransition && transitionDuration && cssText.push(assembleTransition(transitionDuration, onlyFade));\n\n  if (backgroundColor) {\n    if (env.canvasSupported) {\n      cssText.push('background-Color:' + backgroundColor);\n    } else {\n      cssText.push('background-Color:#' + toHex(backgroundColor));\n      cssText.push('filter:alpha(opacity=70)');\n    }\n  }\n\n  each(['width', 'color', 'radius'], function (name) {\n    var borderName = 'border-' + name;\n    var camelCase = toCamelCase(borderName);\n    var val = tooltipModel.get(camelCase);\n    val != null && cssText.push(borderName + ':' + val + (name === 'color' ? '' : 'px'));\n  });\n  cssText.push(assembleFont(textStyleModel));\n\n  if (padding != null) {\n    cssText.push('padding:' + normalizeCssArray(padding).join('px ') + 'px');\n  }\n\n  return cssText.join(';') + ';';\n}\n\nfunction makeStyleCoord(out, zr, appendToBody, zrX, zrY) {\n  var zrPainter = zr && zr.painter;\n\n  if (appendToBody) {\n    var zrViewportRoot = zrPainter && zrPainter.getViewportRoot();\n\n    if (zrViewportRoot) {\n      transformLocalCoord(out, zrViewportRoot, document.body, zrX, zrY);\n    }\n  } else {\n    out[0] = zrX;\n    out[1] = zrY;\n    var viewportRootOffset = zrPainter && zrPainter.getViewportRootOffset();\n\n    if (viewportRootOffset) {\n      out[0] += viewportRootOffset.offsetLeft;\n      out[1] += viewportRootOffset.offsetTop;\n    }\n  }\n\n  out[2] = out[0] / zr.getWidth();\n  out[3] = out[1] / zr.getHeight();\n}\n\nvar TooltipHTMLContent = function () {\n  function TooltipHTMLContent(container, api, opt) {\n    this._show = false;\n    this._styleCoord = [0, 0, 0, 0];\n    this._enterable = true;\n    this._firstShow = true;\n    this._longHide = true;\n\n    if (env.wxa) {\n      return null;\n    }\n\n    var el = document.createElement('div');\n    el.domBelongToZr = true;\n    this.el = el;\n    var zr = this._zr = api.getZr();\n    var appendToBody = this._appendToBody = opt && opt.appendToBody;\n    makeStyleCoord(this._styleCoord, zr, appendToBody, api.getWidth() / 2, api.getHeight() / 2);\n\n    if (appendToBody) {\n      document.body.appendChild(el);\n    } else {\n      container.appendChild(el);\n    }\n\n    this._container = container;\n    var self = this;\n\n    el.onmouseenter = function () {\n      if (self._enterable) {\n        clearTimeout(self._hideTimeout);\n        self._show = true;\n      }\n\n      self._inContent = true;\n    };\n\n    el.onmousemove = function (e) {\n      e = e || window.event;\n\n      if (!self._enterable) {\n        var handler = zr.handler;\n        var zrViewportRoot = zr.painter.getViewportRoot();\n        normalizeEvent(zrViewportRoot, e, true);\n        handler.dispatch('mousemove', e);\n      }\n    };\n\n    el.onmouseleave = function () {\n      self._inContent = false;\n\n      if (self._enterable) {\n        if (self._show) {\n          self.hideLater(self._hideDelay);\n        }\n      }\n    };\n  }\n\n  TooltipHTMLContent.prototype.update = function (tooltipModel) {\n    var container = this._container;\n    var stl = container.currentStyle || document.defaultView.getComputedStyle(container);\n    var domStyle = container.style;\n\n    if (domStyle.position !== 'absolute' && stl.position !== 'absolute') {\n      domStyle.position = 'relative';\n    }\n\n    var alwaysShowContent = tooltipModel.get('alwaysShowContent');\n    alwaysShowContent && this._moveIfResized();\n    this.el.className = tooltipModel.get('className') || '';\n  };\n\n  TooltipHTMLContent.prototype.show = function (tooltipModel, nearPointColor) {\n    clearTimeout(this._hideTimeout);\n    clearTimeout(this._longHideTimeout);\n    var el = this.el;\n    var styleCoord = this._styleCoord;\n    var offset = el.offsetHeight / 2;\n    nearPointColor = convertToColorString(nearPointColor);\n    el.style.cssText = gCssText + assembleCssText(tooltipModel, !this._firstShow, this._longHide) + ';left:' + styleCoord[0] + 'px;top:' + (styleCoord[1] - offset) + 'px;' + (\"border-color: \" + nearPointColor + \";\") + (tooltipModel.get('extraCssText') || '');\n    el.style.display = el.innerHTML ? 'block' : 'none';\n    el.style.pointerEvents = this._enterable ? 'auto' : 'none';\n    this._show = true;\n    this._firstShow = false;\n    this._longHide = false;\n  };\n\n  TooltipHTMLContent.prototype.setContent = function (content, markers, tooltipModel, borderColor, arrowPosition) {\n    if (content == null) {\n      return;\n    }\n\n    var el = this.el;\n\n    if (isString(arrowPosition) && tooltipModel.get('trigger') === 'item' && !shouldTooltipConfine(tooltipModel)) {\n      content += assembleArrow(tooltipModel.get('backgroundColor'), borderColor, arrowPosition);\n    }\n\n    if (isString(content)) {\n      el.innerHTML = content;\n    } else if (content) {\n      el.innerHTML = '';\n\n      if (!isArray(content)) {\n        content = [content];\n      }\n\n      for (var i = 0; i < content.length; i++) {\n        if (isDom(content[i]) && content[i].parentNode !== el) {\n          el.appendChild(content[i]);\n        }\n      }\n    }\n  };\n\n  TooltipHTMLContent.prototype.setEnterable = function (enterable) {\n    this._enterable = enterable;\n  };\n\n  TooltipHTMLContent.prototype.getSize = function () {\n    var el = this.el;\n    return [el.clientWidth, el.clientHeight];\n  };\n\n  TooltipHTMLContent.prototype.moveTo = function (zrX, zrY) {\n    var styleCoord = this._styleCoord;\n    makeStyleCoord(styleCoord, this._zr, this._appendToBody, zrX, zrY);\n\n    if (styleCoord[0] != null && styleCoord[1] != null) {\n      var style = this.el.style;\n      style.left = styleCoord[0].toFixed(0) + 'px';\n      style.top = styleCoord[1].toFixed(0) + 'px';\n    }\n  };\n\n  TooltipHTMLContent.prototype._moveIfResized = function () {\n    var ratioX = this._styleCoord[2];\n    var ratioY = this._styleCoord[3];\n    this.moveTo(ratioX * this._zr.getWidth(), ratioY * this._zr.getHeight());\n  };\n\n  TooltipHTMLContent.prototype.hide = function () {\n    var _this = this;\n\n    this.el.style.visibility = 'hidden';\n    this.el.style.opacity = '0';\n    this._show = false;\n    this._longHideTimeout = setTimeout(function () {\n      return _this._longHide = true;\n    }, 500);\n  };\n\n  TooltipHTMLContent.prototype.hideLater = function (time) {\n    if (this._show && !(this._inContent && this._enterable)) {\n      if (time) {\n        this._hideDelay = time;\n        this._show = false;\n        this._hideTimeout = setTimeout(bind(this.hide, this), time);\n      } else {\n        this.hide();\n      }\n    }\n  };\n\n  TooltipHTMLContent.prototype.isShow = function () {\n    return this._show;\n  };\n\n  TooltipHTMLContent.prototype.dispose = function () {\n    this.el.parentNode.removeChild(this.el);\n  };\n\n  TooltipHTMLContent.prototype.getOuterSize = function () {\n    var width = this.el.clientWidth;\n    var height = this.el.clientHeight;\n\n    if (document.defaultView && document.defaultView.getComputedStyle) {\n      var stl = document.defaultView.getComputedStyle(this.el);\n\n      if (stl) {\n        width += parseInt(stl.borderLeftWidth, 10) + parseInt(stl.borderRightWidth, 10);\n        height += parseInt(stl.borderTopWidth, 10) + parseInt(stl.borderBottomWidth, 10);\n      }\n    }\n\n    return {\n      width: width,\n      height: height\n    };\n  };\n\n  return TooltipHTMLContent;\n}();\n\nexport default TooltipHTMLContent;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ZRText from 'zrender/lib/graphic/Text';\nimport { getPaddingFromTooltipModel } from './tooltipMarkup';\nimport { throwError } from '../../util/log';\n\nvar TooltipRichContent = function () {\n  function TooltipRichContent(api) {\n    this._show = false;\n    this._styleCoord = [0, 0, 0, 0];\n    this._enterable = true;\n    this._zr = api.getZr();\n    makeStyleCoord(this._styleCoord, this._zr, api.getWidth() / 2, api.getHeight() / 2);\n  }\n\n  TooltipRichContent.prototype.update = function (tooltipModel) {\n    var alwaysShowContent = tooltipModel.get('alwaysShowContent');\n    alwaysShowContent && this._moveIfResized();\n  };\n\n  TooltipRichContent.prototype.show = function () {\n    if (this._hideTimeout) {\n      clearTimeout(this._hideTimeout);\n    }\n\n    this.el.show();\n    this._show = true;\n  };\n\n  TooltipRichContent.prototype.setContent = function (content, markupStyleCreator, tooltipModel, borderColor, arrowPosition) {\n    if (zrUtil.isObject(content)) {\n      throwError(process.env.NODE_ENV !== 'production' ? 'Passing DOM nodes as content is not supported in richText tooltip!' : '');\n    }\n\n    if (this.el) {\n      this._zr.remove(this.el);\n    }\n\n    var textStyleModel = tooltipModel.getModel('textStyle');\n    this.el = new ZRText({\n      style: {\n        rich: markupStyleCreator.richTextStyles,\n        text: content,\n        lineHeight: 22,\n        backgroundColor: tooltipModel.get('backgroundColor'),\n        borderRadius: tooltipModel.get('borderRadius'),\n        borderWidth: 1,\n        borderColor: borderColor,\n        shadowColor: tooltipModel.get('shadowColor'),\n        shadowBlur: tooltipModel.get('shadowBlur'),\n        shadowOffsetX: tooltipModel.get('shadowOffsetX'),\n        shadowOffsetY: tooltipModel.get('shadowOffsetY'),\n        textShadowColor: textStyleModel.get('textShadowColor'),\n        textShadowBlur: textStyleModel.get('textShadowBlur') || 0,\n        textShadowOffsetX: textStyleModel.get('textShadowOffsetX') || 0,\n        textShadowOffsetY: textStyleModel.get('textShadowOffsetY') || 0,\n        fill: tooltipModel.get(['textStyle', 'color']),\n        padding: getPaddingFromTooltipModel(tooltipModel, 'richText'),\n        verticalAlign: 'top',\n        align: 'left'\n      },\n      z: tooltipModel.get('z')\n    });\n\n    this._zr.add(this.el);\n\n    var self = this;\n    this.el.on('mouseover', function () {\n      if (self._enterable) {\n        clearTimeout(self._hideTimeout);\n        self._show = true;\n      }\n\n      self._inContent = true;\n    });\n    this.el.on('mouseout', function () {\n      if (self._enterable) {\n        if (self._show) {\n          self.hideLater(self._hideDelay);\n        }\n      }\n\n      self._inContent = false;\n    });\n  };\n\n  TooltipRichContent.prototype.setEnterable = function (enterable) {\n    this._enterable = enterable;\n  };\n\n  TooltipRichContent.prototype.getSize = function () {\n    var el = this.el;\n    var bounding = this.el.getBoundingRect();\n    var shadowOuterSize = calcShadowOuterSize(el.style);\n    return [bounding.width + shadowOuterSize.left + shadowOuterSize.right, bounding.height + shadowOuterSize.top + shadowOuterSize.bottom];\n  };\n\n  TooltipRichContent.prototype.moveTo = function (x, y) {\n    var el = this.el;\n\n    if (el) {\n      var styleCoord = this._styleCoord;\n      makeStyleCoord(styleCoord, this._zr, x, y);\n      x = styleCoord[0];\n      y = styleCoord[1];\n      var style = el.style;\n      var borderWidth = mathMaxWith0(style.borderWidth || 0);\n      var shadowOuterSize = calcShadowOuterSize(style);\n      el.x = x + borderWidth + shadowOuterSize.left;\n      el.y = y + borderWidth + shadowOuterSize.top;\n      el.markRedraw();\n    }\n  };\n\n  TooltipRichContent.prototype._moveIfResized = function () {\n    var ratioX = this._styleCoord[2];\n    var ratioY = this._styleCoord[3];\n    this.moveTo(ratioX * this._zr.getWidth(), ratioY * this._zr.getHeight());\n  };\n\n  TooltipRichContent.prototype.hide = function () {\n    if (this.el) {\n      this.el.hide();\n    }\n\n    this._show = false;\n  };\n\n  TooltipRichContent.prototype.hideLater = function (time) {\n    if (this._show && !(this._inContent && this._enterable)) {\n      if (time) {\n        this._hideDelay = time;\n        this._show = false;\n        this._hideTimeout = setTimeout(zrUtil.bind(this.hide, this), time);\n      } else {\n        this.hide();\n      }\n    }\n  };\n\n  TooltipRichContent.prototype.isShow = function () {\n    return this._show;\n  };\n\n  TooltipRichContent.prototype.getOuterSize = function () {\n    var size = this.getSize();\n    return {\n      width: size[0],\n      height: size[1]\n    };\n  };\n\n  TooltipRichContent.prototype.dispose = function () {\n    this._zr.remove(this.el);\n  };\n\n  return TooltipRichContent;\n}();\n\nfunction mathMaxWith0(val) {\n  return Math.max(0, val);\n}\n\nfunction calcShadowOuterSize(style) {\n  var shadowBlur = mathMaxWith0(style.shadowBlur || 0);\n  var shadowOffsetX = mathMaxWith0(style.shadowOffsetX || 0);\n  var shadowOffsetY = mathMaxWith0(style.shadowOffsetY || 0);\n  return {\n    left: mathMaxWith0(shadowBlur - shadowOffsetX),\n    right: mathMaxWith0(shadowBlur + shadowOffsetX),\n    top: mathMaxWith0(shadowBlur - shadowOffsetY),\n    bottom: mathMaxWith0(shadowBlur + shadowOffsetY)\n  };\n}\n\nfunction makeStyleCoord(out, zr, zrX, zrY) {\n  out[0] = zrX;\n  out[1] = zrY;\n  out[2] = out[0] / zr.getWidth();\n  out[3] = out[1] / zr.getHeight();\n}\n\nexport default TooltipRichContent;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport TooltipHTMLContent from './TooltipHTMLContent';\nimport TooltipRichContent from './TooltipRichContent';\nimport * as formatUtil from '../../util/format';\nimport * as numberUtil from '../../util/number';\nimport * as graphic from '../../util/graphic';\nimport findPointFromSeries from '../axisPointer/findPointFromSeries';\nimport * as layoutUtil from '../../util/layout';\nimport Model from '../../model/Model';\nimport * as globalListener from '../axisPointer/globalListener';\nimport * as axisHelper from '../../coord/axisHelper';\nimport * as axisPointerViewHelper from '../axisPointer/viewHelper';\nimport { getTooltipRenderMode } from '../../util/model';\nimport ComponentView from '../../view/Component';\nimport { format as timeFormat } from '../../util/time';\nimport { getECData } from '../../util/innerStore';\nimport { shouldTooltipConfine } from './helper';\nimport { normalizeTooltipFormatResult } from '../../model/mixin/dataFormat';\nimport { createTooltipMarkup, buildTooltipMarkup, TooltipMarkupStyleCreator } from './tooltipMarkup';\nimport { findEventDispatcher } from '../../util/event';\nvar bind = zrUtil.bind;\nvar each = zrUtil.each;\nvar parsePercent = numberUtil.parsePercent;\nvar proxyRect = new graphic.Rect({\n  shape: {\n    x: -1,\n    y: -1,\n    width: 2,\n    height: 2\n  }\n});\n\nvar TooltipView = function (_super) {\n  __extends(TooltipView, _super);\n\n  function TooltipView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TooltipView.type;\n    return _this;\n  }\n\n  TooltipView.prototype.init = function (ecModel, api) {\n    if (env.node) {\n      return;\n    }\n\n    var tooltipModel = ecModel.getComponent('tooltip');\n    var renderMode = tooltipModel.get('renderMode');\n    this._renderMode = getTooltipRenderMode(renderMode);\n    this._tooltipContent = this._renderMode === 'richText' ? new TooltipRichContent(api) : new TooltipHTMLContent(api.getDom(), api, {\n      appendToBody: tooltipModel.get('appendToBody', true)\n    });\n  };\n\n  TooltipView.prototype.render = function (tooltipModel, ecModel, api) {\n    if (env.node) {\n      return;\n    }\n\n    this.group.removeAll();\n    this._tooltipModel = tooltipModel;\n    this._ecModel = ecModel;\n    this._api = api;\n    this._alwaysShowContent = tooltipModel.get('alwaysShowContent');\n    var tooltipContent = this._tooltipContent;\n    tooltipContent.update(tooltipModel);\n    tooltipContent.setEnterable(tooltipModel.get('enterable'));\n\n    this._initGlobalListener();\n\n    this._keepShow();\n  };\n\n  TooltipView.prototype._initGlobalListener = function () {\n    var tooltipModel = this._tooltipModel;\n    var triggerOn = tooltipModel.get('triggerOn');\n    globalListener.register('itemTooltip', this._api, bind(function (currTrigger, e, dispatchAction) {\n      if (triggerOn !== 'none') {\n        if (triggerOn.indexOf(currTrigger) >= 0) {\n          this._tryShow(e, dispatchAction);\n        } else if (currTrigger === 'leave') {\n          this._hide(dispatchAction);\n        }\n      }\n    }, this));\n  };\n\n  TooltipView.prototype._keepShow = function () {\n    var tooltipModel = this._tooltipModel;\n    var ecModel = this._ecModel;\n    var api = this._api;\n\n    if (this._lastX != null && this._lastY != null && tooltipModel.get('triggerOn') !== 'none') {\n      var self_1 = this;\n      clearTimeout(this._refreshUpdateTimeout);\n      this._refreshUpdateTimeout = setTimeout(function () {\n        !api.isDisposed() && self_1.manuallyShowTip(tooltipModel, ecModel, api, {\n          x: self_1._lastX,\n          y: self_1._lastY,\n          dataByCoordSys: self_1._lastDataByCoordSys\n        });\n      });\n    }\n  };\n\n  TooltipView.prototype.manuallyShowTip = function (tooltipModel, ecModel, api, payload) {\n    if (payload.from === this.uid || env.node) {\n      return;\n    }\n\n    var dispatchAction = makeDispatchAction(payload, api);\n    this._ticket = '';\n    var dataByCoordSys = payload.dataByCoordSys;\n\n    if (payload.tooltip && payload.x != null && payload.y != null) {\n      var el = proxyRect;\n      el.x = payload.x;\n      el.y = payload.y;\n      el.update();\n      el.tooltip = payload.tooltip;\n\n      this._tryShow({\n        offsetX: payload.x,\n        offsetY: payload.y,\n        target: el\n      }, dispatchAction);\n    } else if (dataByCoordSys) {\n      this._tryShow({\n        offsetX: payload.x,\n        offsetY: payload.y,\n        position: payload.position,\n        dataByCoordSys: dataByCoordSys,\n        tooltipOption: payload.tooltipOption\n      }, dispatchAction);\n    } else if (payload.seriesIndex != null) {\n      if (this._manuallyAxisShowTip(tooltipModel, ecModel, api, payload)) {\n        return;\n      }\n\n      var pointInfo = findPointFromSeries(payload, ecModel);\n      var cx = pointInfo.point[0];\n      var cy = pointInfo.point[1];\n\n      if (cx != null && cy != null) {\n        this._tryShow({\n          offsetX: cx,\n          offsetY: cy,\n          position: payload.position,\n          target: pointInfo.el\n        }, dispatchAction);\n      }\n    } else if (payload.x != null && payload.y != null) {\n      api.dispatchAction({\n        type: 'updateAxisPointer',\n        x: payload.x,\n        y: payload.y\n      });\n\n      this._tryShow({\n        offsetX: payload.x,\n        offsetY: payload.y,\n        position: payload.position,\n        target: api.getZr().findHover(payload.x, payload.y).target\n      }, dispatchAction);\n    }\n  };\n\n  TooltipView.prototype.manuallyHideTip = function (tooltipModel, ecModel, api, payload) {\n    var tooltipContent = this._tooltipContent;\n\n    if (!this._alwaysShowContent && this._tooltipModel) {\n      tooltipContent.hideLater(this._tooltipModel.get('hideDelay'));\n    }\n\n    this._lastX = this._lastY = this._lastDataByCoordSys = null;\n\n    if (payload.from !== this.uid) {\n      this._hide(makeDispatchAction(payload, api));\n    }\n  };\n\n  TooltipView.prototype._manuallyAxisShowTip = function (tooltipModel, ecModel, api, payload) {\n    var seriesIndex = payload.seriesIndex;\n    var dataIndex = payload.dataIndex;\n    var coordSysAxesInfo = ecModel.getComponent('axisPointer').coordSysAxesInfo;\n\n    if (seriesIndex == null || dataIndex == null || coordSysAxesInfo == null) {\n      return;\n    }\n\n    var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n\n    if (!seriesModel) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var tooltipCascadedModel = buildTooltipModel([data.getItemModel(dataIndex), seriesModel, (seriesModel.coordinateSystem || {}).model, tooltipModel]);\n\n    if (tooltipCascadedModel.get('trigger') !== 'axis') {\n      return;\n    }\n\n    api.dispatchAction({\n      type: 'updateAxisPointer',\n      seriesIndex: seriesIndex,\n      dataIndex: dataIndex,\n      position: payload.position\n    });\n    return true;\n  };\n\n  TooltipView.prototype._tryShow = function (e, dispatchAction) {\n    var el = e.target;\n    var tooltipModel = this._tooltipModel;\n\n    if (!tooltipModel) {\n      return;\n    }\n\n    this._lastX = e.offsetX;\n    this._lastY = e.offsetY;\n    var dataByCoordSys = e.dataByCoordSys;\n\n    if (dataByCoordSys && dataByCoordSys.length) {\n      this._showAxisTooltip(dataByCoordSys, e);\n    } else if (el && findEventDispatcher(el, function (target) {\n      return getECData(target).dataIndex != null;\n    }, true)) {\n      this._lastDataByCoordSys = null;\n\n      this._showSeriesItemTooltip(e, el, dispatchAction);\n    } else if (el && el.tooltip) {\n      this._lastDataByCoordSys = null;\n\n      this._showComponentItemTooltip(e, el, dispatchAction);\n    } else {\n      this._lastDataByCoordSys = null;\n\n      this._hide(dispatchAction);\n    }\n  };\n\n  TooltipView.prototype._showOrMove = function (tooltipModel, cb) {\n    var delay = tooltipModel.get('showDelay');\n    cb = zrUtil.bind(cb, this);\n    clearTimeout(this._showTimout);\n    delay > 0 ? this._showTimout = setTimeout(cb, delay) : cb();\n  };\n\n  TooltipView.prototype._showAxisTooltip = function (dataByCoordSys, e) {\n    var ecModel = this._ecModel;\n    var globalTooltipModel = this._tooltipModel;\n    var point = [e.offsetX, e.offsetY];\n    var singleTooltipModel = buildTooltipModel([e.tooltipOption, globalTooltipModel]);\n    var renderMode = this._renderMode;\n    var cbParamsList = [];\n    var articleMarkup = createTooltipMarkup('section', {\n      blocks: [],\n      noHeader: true\n    });\n    var markupTextArrLegacy = [];\n    var markupStyleCreator = new TooltipMarkupStyleCreator();\n    each(dataByCoordSys, function (itemCoordSys) {\n      each(itemCoordSys.dataByAxis, function (axisItem) {\n        var axisModel = ecModel.getComponent(axisItem.axisDim + 'Axis', axisItem.axisIndex);\n        var axisValue = axisItem.value;\n\n        if (!axisModel || axisValue == null) {\n          return;\n        }\n\n        var axisValueLabel = axisPointerViewHelper.getValueLabel(axisValue, axisModel.axis, ecModel, axisItem.seriesDataIndices, axisItem.valueLabelOpt);\n        var axisSectionMarkup = createTooltipMarkup('section', {\n          header: axisValueLabel,\n          noHeader: !zrUtil.trim(axisValueLabel),\n          sortBlocks: true,\n          blocks: []\n        });\n        articleMarkup.blocks.push(axisSectionMarkup);\n        zrUtil.each(axisItem.seriesDataIndices, function (idxItem) {\n          var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\n          var dataIndex = idxItem.dataIndexInside;\n          var cbParams = series.getDataParams(dataIndex);\n          cbParams.axisDim = axisItem.axisDim;\n          cbParams.axisIndex = axisItem.axisIndex;\n          cbParams.axisType = axisItem.axisType;\n          cbParams.axisId = axisItem.axisId;\n          cbParams.axisValue = axisHelper.getAxisRawValue(axisModel.axis, {\n            value: axisValue\n          });\n          cbParams.axisValueLabel = axisValueLabel;\n          cbParams.marker = markupStyleCreator.makeTooltipMarker('item', formatUtil.convertToColorString(cbParams.color), renderMode);\n          var seriesTooltipResult = normalizeTooltipFormatResult(series.formatTooltip(dataIndex, true, null));\n\n          if (seriesTooltipResult.markupFragment) {\n            axisSectionMarkup.blocks.push(seriesTooltipResult.markupFragment);\n          }\n\n          if (seriesTooltipResult.markupText) {\n            markupTextArrLegacy.push(seriesTooltipResult.markupText);\n          }\n\n          cbParamsList.push(cbParams);\n        });\n      });\n    });\n    articleMarkup.blocks.reverse();\n    markupTextArrLegacy.reverse();\n    var positionExpr = e.position;\n    var orderMode = singleTooltipModel.get('order');\n    var builtMarkupText = buildTooltipMarkup(articleMarkup, markupStyleCreator, renderMode, orderMode, ecModel.get('useUTC'), singleTooltipModel.get('textStyle'));\n    builtMarkupText && markupTextArrLegacy.unshift(builtMarkupText);\n    var blockBreak = renderMode === 'richText' ? '\\n\\n' : '<br/>';\n    var allMarkupText = markupTextArrLegacy.join(blockBreak);\n\n    this._showOrMove(singleTooltipModel, function () {\n      if (this._updateContentNotChangedOnAxis(dataByCoordSys)) {\n        this._updatePosition(singleTooltipModel, positionExpr, point[0], point[1], this._tooltipContent, cbParamsList);\n      } else {\n        this._showTooltipContent(singleTooltipModel, allMarkupText, cbParamsList, Math.random() + '', point[0], point[1], positionExpr, null, markupStyleCreator);\n      }\n    });\n  };\n\n  TooltipView.prototype._showSeriesItemTooltip = function (e, el, dispatchAction) {\n    var dispatcher = findEventDispatcher(el, function (target) {\n      return getECData(target).dataIndex != null;\n    }, true);\n    var ecModel = this._ecModel;\n    var ecData = getECData(dispatcher);\n    var seriesIndex = ecData.seriesIndex;\n    var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n    var dataModel = ecData.dataModel || seriesModel;\n    var dataIndex = ecData.dataIndex;\n    var dataType = ecData.dataType;\n    var data = dataModel.getData(dataType);\n    var renderMode = this._renderMode;\n    var tooltipModel = buildTooltipModel([data.getItemModel(dataIndex), dataModel, seriesModel && (seriesModel.coordinateSystem || {}).model, this._tooltipModel]);\n    var tooltipTrigger = tooltipModel.get('trigger');\n\n    if (tooltipTrigger != null && tooltipTrigger !== 'item') {\n      return;\n    }\n\n    var params = dataModel.getDataParams(dataIndex, dataType);\n    var markupStyleCreator = new TooltipMarkupStyleCreator();\n    params.marker = markupStyleCreator.makeTooltipMarker('item', formatUtil.convertToColorString(params.color), renderMode);\n    var seriesTooltipResult = normalizeTooltipFormatResult(dataModel.formatTooltip(dataIndex, false, dataType));\n    var orderMode = tooltipModel.get('order');\n    var markupText = seriesTooltipResult.markupFragment ? buildTooltipMarkup(seriesTooltipResult.markupFragment, markupStyleCreator, renderMode, orderMode, ecModel.get('useUTC'), tooltipModel.get('textStyle')) : seriesTooltipResult.markupText;\n    var asyncTicket = 'item_' + dataModel.name + '_' + dataIndex;\n\n    this._showOrMove(tooltipModel, function () {\n      this._showTooltipContent(tooltipModel, markupText, params, asyncTicket, e.offsetX, e.offsetY, e.position, e.target, markupStyleCreator);\n    });\n\n    dispatchAction({\n      type: 'showTip',\n      dataIndexInside: dataIndex,\n      dataIndex: data.getRawIndex(dataIndex),\n      seriesIndex: seriesIndex,\n      from: this.uid\n    });\n  };\n\n  TooltipView.prototype._showComponentItemTooltip = function (e, el, dispatchAction) {\n    var tooltipOpt = el.tooltip;\n\n    if (zrUtil.isString(tooltipOpt)) {\n      var content = tooltipOpt;\n      tooltipOpt = {\n        content: content,\n        formatter: content\n      };\n    }\n\n    var subTooltipModel = new Model(tooltipOpt, this._tooltipModel, this._ecModel);\n    var defaultHtml = subTooltipModel.get('content');\n    var asyncTicket = Math.random() + '';\n    var markupStyleCreator = new TooltipMarkupStyleCreator();\n\n    this._showOrMove(subTooltipModel, function () {\n      this._showTooltipContent(subTooltipModel, defaultHtml, subTooltipModel.get('formatterParams') || {}, asyncTicket, e.offsetX, e.offsetY, e.position, el, markupStyleCreator);\n    });\n\n    dispatchAction({\n      type: 'showTip',\n      from: this.uid\n    });\n  };\n\n  TooltipView.prototype._showTooltipContent = function (tooltipModel, defaultHtml, params, asyncTicket, x, y, positionExpr, el, markupStyleCreator) {\n    this._ticket = '';\n\n    if (!tooltipModel.get('showContent') || !tooltipModel.get('show')) {\n      return;\n    }\n\n    var tooltipContent = this._tooltipContent;\n    var formatter = tooltipModel.get('formatter');\n    positionExpr = positionExpr || tooltipModel.get('position');\n    var html = defaultHtml;\n\n    var nearPoint = this._getNearestPoint([x, y], params, tooltipModel.get('trigger'), tooltipModel.get('borderColor'));\n\n    if (formatter && zrUtil.isString(formatter)) {\n      var useUTC = tooltipModel.ecModel.get('useUTC');\n      var params0 = zrUtil.isArray(params) ? params[0] : params;\n      var isTimeAxis = params0 && params0.axisType && params0.axisType.indexOf('time') >= 0;\n      html = formatter;\n\n      if (isTimeAxis) {\n        html = timeFormat(params0.axisValue, html, useUTC);\n      }\n\n      html = formatUtil.formatTpl(html, params, true);\n    } else if (zrUtil.isFunction(formatter)) {\n      var callback = bind(function (cbTicket, html) {\n        if (cbTicket === this._ticket) {\n          tooltipContent.setContent(html, markupStyleCreator, tooltipModel, nearPoint.color, positionExpr);\n\n          this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\n        }\n      }, this);\n      this._ticket = asyncTicket;\n      html = formatter(params, asyncTicket, callback);\n    }\n\n    tooltipContent.setContent(html, markupStyleCreator, tooltipModel, nearPoint.color, positionExpr);\n    tooltipContent.show(tooltipModel, nearPoint.color);\n\n    this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\n  };\n\n  TooltipView.prototype._getNearestPoint = function (point, tooltipDataParams, trigger, borderColor) {\n    if (trigger === 'axis' || zrUtil.isArray(tooltipDataParams)) {\n      return {\n        color: borderColor || (this._renderMode === 'html' ? '#fff' : 'none')\n      };\n    }\n\n    if (!zrUtil.isArray(tooltipDataParams)) {\n      return {\n        color: borderColor || tooltipDataParams.color || tooltipDataParams.borderColor\n      };\n    }\n  };\n\n  TooltipView.prototype._updatePosition = function (tooltipModel, positionExpr, x, y, content, params, el) {\n    var viewWidth = this._api.getWidth();\n\n    var viewHeight = this._api.getHeight();\n\n    positionExpr = positionExpr || tooltipModel.get('position');\n    var contentSize = content.getSize();\n    var align = tooltipModel.get('align');\n    var vAlign = tooltipModel.get('verticalAlign');\n    var rect = el && el.getBoundingRect().clone();\n    el && rect.applyTransform(el.transform);\n\n    if (zrUtil.isFunction(positionExpr)) {\n      positionExpr = positionExpr([x, y], params, content.el, rect, {\n        viewSize: [viewWidth, viewHeight],\n        contentSize: contentSize.slice()\n      });\n    }\n\n    if (zrUtil.isArray(positionExpr)) {\n      x = parsePercent(positionExpr[0], viewWidth);\n      y = parsePercent(positionExpr[1], viewHeight);\n    } else if (zrUtil.isObject(positionExpr)) {\n      var boxLayoutPosition = positionExpr;\n      boxLayoutPosition.width = contentSize[0];\n      boxLayoutPosition.height = contentSize[1];\n      var layoutRect = layoutUtil.getLayoutRect(boxLayoutPosition, {\n        width: viewWidth,\n        height: viewHeight\n      });\n      x = layoutRect.x;\n      y = layoutRect.y;\n      align = null;\n      vAlign = null;\n    } else if (zrUtil.isString(positionExpr) && el) {\n      var pos = calcTooltipPosition(positionExpr, rect, contentSize);\n      x = pos[0];\n      y = pos[1];\n    } else {\n      var pos = refixTooltipPosition(x, y, content, viewWidth, viewHeight, align ? null : 20, vAlign ? null : 20);\n      x = pos[0];\n      y = pos[1];\n    }\n\n    align && (x -= isCenterAlign(align) ? contentSize[0] / 2 : align === 'right' ? contentSize[0] : 0);\n    vAlign && (y -= isCenterAlign(vAlign) ? contentSize[1] / 2 : vAlign === 'bottom' ? contentSize[1] : 0);\n\n    if (shouldTooltipConfine(tooltipModel)) {\n      var pos = confineTooltipPosition(x, y, content, viewWidth, viewHeight);\n      x = pos[0];\n      y = pos[1];\n    }\n\n    content.moveTo(x, y);\n  };\n\n  TooltipView.prototype._updateContentNotChangedOnAxis = function (dataByCoordSys) {\n    var lastCoordSys = this._lastDataByCoordSys;\n    var contentNotChanged = !!lastCoordSys && lastCoordSys.length === dataByCoordSys.length;\n    contentNotChanged && each(lastCoordSys, function (lastItemCoordSys, indexCoordSys) {\n      var lastDataByAxis = lastItemCoordSys.dataByAxis || [];\n      var thisItemCoordSys = dataByCoordSys[indexCoordSys] || {};\n      var thisDataByAxis = thisItemCoordSys.dataByAxis || [];\n      contentNotChanged = contentNotChanged && lastDataByAxis.length === thisDataByAxis.length;\n      contentNotChanged && each(lastDataByAxis, function (lastItem, indexAxis) {\n        var thisItem = thisDataByAxis[indexAxis] || {};\n        var lastIndices = lastItem.seriesDataIndices || [];\n        var newIndices = thisItem.seriesDataIndices || [];\n        contentNotChanged = contentNotChanged && lastItem.value === thisItem.value && lastItem.axisType === thisItem.axisType && lastItem.axisId === thisItem.axisId && lastIndices.length === newIndices.length;\n        contentNotChanged && each(lastIndices, function (lastIdxItem, j) {\n          var newIdxItem = newIndices[j];\n          contentNotChanged = contentNotChanged && lastIdxItem.seriesIndex === newIdxItem.seriesIndex && lastIdxItem.dataIndex === newIdxItem.dataIndex;\n        });\n      });\n    });\n    this._lastDataByCoordSys = dataByCoordSys;\n    return !!contentNotChanged;\n  };\n\n  TooltipView.prototype._hide = function (dispatchAction) {\n    this._lastDataByCoordSys = null;\n    dispatchAction({\n      type: 'hideTip',\n      from: this.uid\n    });\n  };\n\n  TooltipView.prototype.dispose = function (ecModel, api) {\n    if (env.node) {\n      return;\n    }\n\n    this._tooltipContent.dispose();\n\n    globalListener.unregister('itemTooltip', api);\n  };\n\n  TooltipView.type = 'tooltip';\n  return TooltipView;\n}(ComponentView);\n\nfunction buildTooltipModel(modelCascade) {\n  var resultModel = modelCascade.pop();\n\n  while (modelCascade.length) {\n    var tooltipOpt = modelCascade.pop();\n\n    if (tooltipOpt) {\n      if (tooltipOpt instanceof Model) {\n        tooltipOpt = tooltipOpt.get('tooltip', true);\n      }\n\n      if (zrUtil.isString(tooltipOpt)) {\n        tooltipOpt = {\n          formatter: tooltipOpt\n        };\n      }\n\n      resultModel = new Model(tooltipOpt, resultModel, resultModel.ecModel);\n    }\n  }\n\n  return resultModel;\n}\n\nfunction makeDispatchAction(payload, api) {\n  return payload.dispatchAction || zrUtil.bind(api.dispatchAction, api);\n}\n\nfunction refixTooltipPosition(x, y, content, viewWidth, viewHeight, gapH, gapV) {\n  var size = content.getOuterSize();\n  var width = size.width;\n  var height = size.height;\n\n  if (gapH != null) {\n    if (x + width + gapH + 2 > viewWidth) {\n      x -= width + gapH;\n    } else {\n      x += gapH;\n    }\n  }\n\n  if (gapV != null) {\n    if (y + height + gapV > viewHeight) {\n      y -= height + gapV;\n    } else {\n      y += gapV;\n    }\n  }\n\n  return [x, y];\n}\n\nfunction confineTooltipPosition(x, y, content, viewWidth, viewHeight) {\n  var size = content.getOuterSize();\n  var width = size.width;\n  var height = size.height;\n  x = Math.min(x + width, viewWidth) - width;\n  y = Math.min(y + height, viewHeight) - height;\n  x = Math.max(x, 0);\n  y = Math.max(y, 0);\n  return [x, y];\n}\n\nfunction calcTooltipPosition(position, rect, contentSize) {\n  var domWidth = contentSize[0];\n  var domHeight = contentSize[1];\n  var gap = 10;\n  var offset = 5;\n  var x = 0;\n  var y = 0;\n  var rectWidth = rect.width;\n  var rectHeight = rect.height;\n\n  switch (position) {\n    case 'inside':\n      x = rect.x + rectWidth / 2 - domWidth / 2;\n      y = rect.y + rectHeight / 2 - domHeight / 2;\n      break;\n\n    case 'top':\n      x = rect.x + rectWidth / 2 - domWidth / 2;\n      y = rect.y - domHeight - gap;\n      break;\n\n    case 'bottom':\n      x = rect.x + rectWidth / 2 - domWidth / 2;\n      y = rect.y + rectHeight + gap;\n      break;\n\n    case 'left':\n      x = rect.x - domWidth - gap - offset;\n      y = rect.y + rectHeight / 2 - domHeight / 2;\n      break;\n\n    case 'right':\n      x = rect.x + rectWidth + gap + offset;\n      y = rect.y + rectHeight / 2 - domHeight / 2;\n  }\n\n  return [x, y];\n}\n\nfunction isCenterAlign(align) {\n  return align === 'center' || align === 'middle';\n}\n\nexport default TooltipView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { install as installAxisPointer } from '../axisPointer/install';\nimport { use } from '../../extension';\nimport TooltipModel from './TooltipModel';\nimport TooltipView from './TooltipView';\nexport function install(registers) {\n  use(installAxisPointer);\n  registers.registerComponentModel(TooltipModel);\n  registers.registerComponentView(TooltipView);\n  registers.registerAction({\n    type: 'showTip',\n    event: 'showTip',\n    update: 'tooltip:manuallyShowTip'\n  }, function () {});\n  registers.registerAction({\n    type: 'hideTip',\n    event: 'hideTip',\n    update: 'tooltip:manuallyHideTip'\n  }, function () {});\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { normalizeToArray } from '../../util/model';\nvar DEFAULT_TOOLBOX_BTNS = ['rect', 'polygon', 'keep', 'clear'];\nexport default function brushPreprocessor(option, isNew) {\n  var brushComponents = normalizeToArray(option ? option.brush : []);\n\n  if (!brushComponents.length) {\n    return;\n  }\n\n  var brushComponentSpecifiedBtns = [];\n  zrUtil.each(brushComponents, function (brushOpt) {\n    var tbs = brushOpt.hasOwnProperty('toolbox') ? brushOpt.toolbox : [];\n\n    if (tbs instanceof Array) {\n      brushComponentSpecifiedBtns = brushComponentSpecifiedBtns.concat(tbs);\n    }\n  });\n  var toolbox = option && option.toolbox;\n\n  if (zrUtil.isArray(toolbox)) {\n    toolbox = toolbox[0];\n  }\n\n  if (!toolbox) {\n    toolbox = {\n      feature: {}\n    };\n    option.toolbox = [toolbox];\n  }\n\n  var toolboxFeature = toolbox.feature || (toolbox.feature = {});\n  var toolboxBrush = toolboxFeature.brush || (toolboxFeature.brush = {});\n  var brushTypes = toolboxBrush.type || (toolboxBrush.type = []);\n  brushTypes.push.apply(brushTypes, brushComponentSpecifiedBtns);\n  removeDuplicate(brushTypes);\n\n  if (isNew && !brushTypes.length) {\n    brushTypes.push.apply(brushTypes, DEFAULT_TOOLBOX_BTNS);\n  }\n}\n\nfunction removeDuplicate(arr) {\n  var map = {};\n  zrUtil.each(arr, function (val) {\n    map[val] = 1;\n  });\n  arr.length = 0;\n  zrUtil.each(map, function (flag, val) {\n    arr.push(val);\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport VisualMapping from './VisualMapping';\nimport { getItemVisualFromData, setItemVisualFromData } from './helper';\nvar each = zrUtil.each;\n\nfunction hasKeys(obj) {\n  if (obj) {\n    for (var name_1 in obj) {\n      if (obj.hasOwnProperty(name_1)) {\n        return true;\n      }\n    }\n  }\n}\n\nexport function createVisualMappings(option, stateList, supplementVisualOption) {\n  var visualMappings = {};\n  each(stateList, function (state) {\n    var mappings = visualMappings[state] = createMappings();\n    each(option[state], function (visualData, visualType) {\n      if (!VisualMapping.isValidType(visualType)) {\n        return;\n      }\n\n      var mappingOption = {\n        type: visualType,\n        visual: visualData\n      };\n      supplementVisualOption && supplementVisualOption(mappingOption, state);\n      mappings[visualType] = new VisualMapping(mappingOption);\n\n      if (visualType === 'opacity') {\n        mappingOption = zrUtil.clone(mappingOption);\n        mappingOption.type = 'colorAlpha';\n        mappings.__hidden.__alphaForOpacity = new VisualMapping(mappingOption);\n      }\n    });\n  });\n  return visualMappings;\n\n  function createMappings() {\n    var Creater = function () {};\n\n    Creater.prototype.__hidden = Creater.prototype;\n    var obj = new Creater();\n    return obj;\n  }\n}\nexport function replaceVisualOption(thisOption, newOption, keys) {\n  var has;\n  zrUtil.each(keys, function (key) {\n    if (newOption.hasOwnProperty(key) && hasKeys(newOption[key])) {\n      has = true;\n    }\n  });\n  has && zrUtil.each(keys, function (key) {\n    if (newOption.hasOwnProperty(key) && hasKeys(newOption[key])) {\n      thisOption[key] = zrUtil.clone(newOption[key]);\n    } else {\n      delete thisOption[key];\n    }\n  });\n}\nexport function applyVisual(stateList, visualMappings, data, getValueState, scope, dimension) {\n  var visualTypesMap = {};\n  zrUtil.each(stateList, function (state) {\n    var visualTypes = VisualMapping.prepareVisualTypes(visualMappings[state]);\n    visualTypesMap[state] = visualTypes;\n  });\n  var dataIndex;\n\n  function getVisual(key) {\n    return getItemVisualFromData(data, dataIndex, key);\n  }\n\n  function setVisual(key, value) {\n    setItemVisualFromData(data, dataIndex, key, value);\n  }\n\n  if (dimension == null) {\n    data.each(eachItem);\n  } else {\n    data.each([dimension], eachItem);\n  }\n\n  function eachItem(valueOrIndex, index) {\n    dataIndex = dimension == null ? valueOrIndex : index;\n    var rawDataItem = data.getRawDataItem(dataIndex);\n\n    if (rawDataItem && rawDataItem.visualMap === false) {\n      return;\n    }\n\n    var valueState = getValueState.call(scope, valueOrIndex);\n    var mappings = visualMappings[valueState];\n    var visualTypes = visualTypesMap[valueState];\n\n    for (var i = 0, len = visualTypes.length; i < len; i++) {\n      var type = visualTypes[i];\n      mappings[type] && mappings[type].applyVisual(valueOrIndex, getVisual, setVisual);\n    }\n  }\n}\nexport function incrementalApplyVisual(stateList, visualMappings, getValueState, dim) {\n  var visualTypesMap = {};\n  zrUtil.each(stateList, function (state) {\n    var visualTypes = VisualMapping.prepareVisualTypes(visualMappings[state]);\n    visualTypesMap[state] = visualTypes;\n  });\n  return {\n    progress: function progress(params, data) {\n      var dimName;\n\n      if (dim != null) {\n        dimName = data.getDimension(dim);\n      }\n\n      function getVisual(key) {\n        return getItemVisualFromData(data, dataIndex, key);\n      }\n\n      function setVisual(key, value) {\n        setItemVisualFromData(data, dataIndex, key, value);\n      }\n\n      var dataIndex;\n\n      while ((dataIndex = params.next()) != null) {\n        var rawDataItem = data.getRawDataItem(dataIndex);\n\n        if (rawDataItem && rawDataItem.visualMap === false) {\n          continue;\n        }\n\n        var value = dim != null ? data.get(dimName, dataIndex) : dataIndex;\n        var valueState = getValueState(value);\n        var mappings = visualMappings[valueState];\n        var visualTypes = visualTypesMap[valueState];\n\n        for (var i = 0, len = visualTypes.length; i < len; i++) {\n          var type = visualTypes[i];\n          mappings[type] && mappings[type].applyVisual(value, getVisual, setVisual);\n        }\n      }\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as polygonContain from 'zrender/lib/contain/polygon';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { linePolygonIntersect } from '../../util/graphic';\nexport function makeBrushCommonSelectorForSeries(area) {\n  var brushType = area.brushType;\n  var selectors = {\n    point: function (itemLayout) {\n      return selector[brushType].point(itemLayout, selectors, area);\n    },\n    rect: function (itemLayout) {\n      return selector[brushType].rect(itemLayout, selectors, area);\n    }\n  };\n  return selectors;\n}\nvar selector = {\n  lineX: getLineSelectors(0),\n  lineY: getLineSelectors(1),\n  rect: {\n    point: function (itemLayout, selectors, area) {\n      return itemLayout && area.boundingRect.contain(itemLayout[0], itemLayout[1]);\n    },\n    rect: function (itemLayout, selectors, area) {\n      return itemLayout && area.boundingRect.intersect(itemLayout);\n    }\n  },\n  polygon: {\n    point: function (itemLayout, selectors, area) {\n      return itemLayout && area.boundingRect.contain(itemLayout[0], itemLayout[1]) && polygonContain.contain(area.range, itemLayout[0], itemLayout[1]);\n    },\n    rect: function (itemLayout, selectors, area) {\n      var points = area.range;\n\n      if (!itemLayout || points.length <= 1) {\n        return false;\n      }\n\n      var x = itemLayout.x;\n      var y = itemLayout.y;\n      var width = itemLayout.width;\n      var height = itemLayout.height;\n      var p = points[0];\n\n      if (polygonContain.contain(points, x, y) || polygonContain.contain(points, x + width, y) || polygonContain.contain(points, x, y + height) || polygonContain.contain(points, x + width, y + height) || BoundingRect.create(itemLayout).contain(p[0], p[1]) || linePolygonIntersect(x, y, x + width, y, points) || linePolygonIntersect(x, y, x, y + height, points) || linePolygonIntersect(x + width, y, x + width, y + height, points) || linePolygonIntersect(x, y + height, x + width, y + height, points)) {\n        return true;\n      }\n    }\n  }\n};\n\nfunction getLineSelectors(xyIndex) {\n  var xy = ['x', 'y'];\n  var wh = ['width', 'height'];\n  return {\n    point: function (itemLayout, selectors, area) {\n      if (itemLayout) {\n        var range = area.range;\n        var p = itemLayout[xyIndex];\n        return inLineRange(p, range);\n      }\n    },\n    rect: function (itemLayout, selectors, area) {\n      if (itemLayout) {\n        var range = area.range;\n        var layoutRange = [itemLayout[xy[xyIndex]], itemLayout[xy[xyIndex]] + itemLayout[wh[xyIndex]]];\n        layoutRange[1] < layoutRange[0] && layoutRange.reverse();\n        return inLineRange(layoutRange[0], range) || inLineRange(layoutRange[1], range) || inLineRange(range[0], layoutRange) || inLineRange(range[1], layoutRange);\n      }\n    }\n  };\n}\n\nfunction inLineRange(p, range) {\n  return range[0] <= p && p <= range[1];\n}\n\nexport default selector;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport * as visualSolution from '../../visual/visualSolution';\nimport { makeBrushCommonSelectorForSeries } from './selector';\nimport * as throttleUtil from '../../util/throttle';\nimport BrushTargetManager from '../helper/BrushTargetManager';\nvar STATE_LIST = ['inBrush', 'outOfBrush'];\nvar DISPATCH_METHOD = '__ecBrushSelect';\nvar DISPATCH_FLAG = '__ecInBrushSelectEvent';\n;\nexport function layoutCovers(ecModel) {\n  ecModel.eachComponent({\n    mainType: 'brush'\n  }, function (brushModel) {\n    var brushTargetManager = brushModel.brushTargetManager = new BrushTargetManager(brushModel.option, ecModel);\n    brushTargetManager.setInputRanges(brushModel.areas, ecModel);\n  });\n}\nexport default function brushVisual(ecModel, api, payload) {\n  var brushSelected = [];\n  var throttleType;\n  var throttleDelay;\n  ecModel.eachComponent({\n    mainType: 'brush'\n  }, function (brushModel) {\n    payload && payload.type === 'takeGlobalCursor' && brushModel.setBrushOption(payload.key === 'brush' ? payload.brushOption : {\n      brushType: false\n    });\n  });\n  layoutCovers(ecModel);\n  ecModel.eachComponent({\n    mainType: 'brush'\n  }, function (brushModel, brushIndex) {\n    var thisBrushSelected = {\n      brushId: brushModel.id,\n      brushIndex: brushIndex,\n      brushName: brushModel.name,\n      areas: zrUtil.clone(brushModel.areas),\n      selected: []\n    };\n    brushSelected.push(thisBrushSelected);\n    var brushOption = brushModel.option;\n    var brushLink = brushOption.brushLink;\n    var linkedSeriesMap = [];\n    var selectedDataIndexForLink = [];\n    var rangeInfoBySeries = [];\n    var hasBrushExists = false;\n\n    if (!brushIndex) {\n      throttleType = brushOption.throttleType;\n      throttleDelay = brushOption.throttleDelay;\n    }\n\n    var areas = zrUtil.map(brushModel.areas, function (area) {\n      var builder = boundingRectBuilders[area.brushType];\n      var selectableArea = zrUtil.defaults({\n        boundingRect: builder ? builder(area) : void 0\n      }, area);\n      selectableArea.selectors = makeBrushCommonSelectorForSeries(selectableArea);\n      return selectableArea;\n    });\n    var visualMappings = visualSolution.createVisualMappings(brushModel.option, STATE_LIST, function (mappingOption) {\n      mappingOption.mappingMethod = 'fixed';\n    });\n    zrUtil.isArray(brushLink) && zrUtil.each(brushLink, function (seriesIndex) {\n      linkedSeriesMap[seriesIndex] = 1;\n    });\n\n    function linkOthers(seriesIndex) {\n      return brushLink === 'all' || !!linkedSeriesMap[seriesIndex];\n    }\n\n    function brushed(rangeInfoList) {\n      return !!rangeInfoList.length;\n    }\n\n    ecModel.eachSeries(function (seriesModel, seriesIndex) {\n      var rangeInfoList = rangeInfoBySeries[seriesIndex] = [];\n      seriesModel.subType === 'parallel' ? stepAParallel(seriesModel, seriesIndex) : stepAOthers(seriesModel, seriesIndex, rangeInfoList);\n    });\n\n    function stepAParallel(seriesModel, seriesIndex) {\n      var coordSys = seriesModel.coordinateSystem;\n      hasBrushExists = hasBrushExists || coordSys.hasAxisBrushed();\n      linkOthers(seriesIndex) && coordSys.eachActiveState(seriesModel.getData(), function (activeState, dataIndex) {\n        activeState === 'active' && (selectedDataIndexForLink[dataIndex] = 1);\n      });\n    }\n\n    function stepAOthers(seriesModel, seriesIndex, rangeInfoList) {\n      if (!seriesModel.brushSelector || brushModelNotControll(brushModel, seriesIndex)) {\n        return;\n      }\n\n      zrUtil.each(areas, function (area) {\n        if (brushModel.brushTargetManager.controlSeries(area, seriesModel, ecModel)) {\n          rangeInfoList.push(area);\n        }\n\n        hasBrushExists = hasBrushExists || brushed(rangeInfoList);\n      });\n\n      if (linkOthers(seriesIndex) && brushed(rangeInfoList)) {\n        var data_1 = seriesModel.getData();\n        data_1.each(function (dataIndex) {\n          if (checkInRange(seriesModel, rangeInfoList, data_1, dataIndex)) {\n            selectedDataIndexForLink[dataIndex] = 1;\n          }\n        });\n      }\n    }\n\n    ecModel.eachSeries(function (seriesModel, seriesIndex) {\n      var seriesBrushSelected = {\n        seriesId: seriesModel.id,\n        seriesIndex: seriesIndex,\n        seriesName: seriesModel.name,\n        dataIndex: []\n      };\n      thisBrushSelected.selected.push(seriesBrushSelected);\n      var rangeInfoList = rangeInfoBySeries[seriesIndex];\n      var data = seriesModel.getData();\n      var getValueState = linkOthers(seriesIndex) ? function (dataIndex) {\n        return selectedDataIndexForLink[dataIndex] ? (seriesBrushSelected.dataIndex.push(data.getRawIndex(dataIndex)), 'inBrush') : 'outOfBrush';\n      } : function (dataIndex) {\n        return checkInRange(seriesModel, rangeInfoList, data, dataIndex) ? (seriesBrushSelected.dataIndex.push(data.getRawIndex(dataIndex)), 'inBrush') : 'outOfBrush';\n      };\n      (linkOthers(seriesIndex) ? hasBrushExists : brushed(rangeInfoList)) && visualSolution.applyVisual(STATE_LIST, visualMappings, data, getValueState);\n    });\n  });\n  dispatchAction(api, throttleType, throttleDelay, brushSelected, payload);\n}\n;\n\nfunction dispatchAction(api, throttleType, throttleDelay, brushSelected, payload) {\n  if (!payload) {\n    return;\n  }\n\n  var zr = api.getZr();\n\n  if (zr[DISPATCH_FLAG]) {\n    return;\n  }\n\n  if (!zr[DISPATCH_METHOD]) {\n    zr[DISPATCH_METHOD] = doDispatch;\n  }\n\n  var fn = throttleUtil.createOrUpdate(zr, DISPATCH_METHOD, throttleDelay, throttleType);\n  fn(api, brushSelected);\n}\n\nfunction doDispatch(api, brushSelected) {\n  if (!api.isDisposed()) {\n    var zr = api.getZr();\n    zr[DISPATCH_FLAG] = true;\n    api.dispatchAction({\n      type: 'brushSelect',\n      batch: brushSelected\n    });\n    zr[DISPATCH_FLAG] = false;\n  }\n}\n\nfunction checkInRange(seriesModel, rangeInfoList, data, dataIndex) {\n  for (var i = 0, len = rangeInfoList.length; i < len; i++) {\n    var area = rangeInfoList[i];\n\n    if (seriesModel.brushSelector(dataIndex, data, area.selectors, area)) {\n      return true;\n    }\n  }\n}\n\nfunction brushModelNotControll(brushModel, seriesIndex) {\n  var seriesIndices = brushModel.option.seriesIndex;\n  return seriesIndices != null && seriesIndices !== 'all' && (zrUtil.isArray(seriesIndices) ? zrUtil.indexOf(seriesIndices, seriesIndex) < 0 : seriesIndex !== seriesIndices);\n}\n\nvar boundingRectBuilders = {\n  rect: function (area) {\n    return getBoundingRectFromMinMax(area.range);\n  },\n  polygon: function (area) {\n    var minMax;\n    var range = area.range;\n\n    for (var i = 0, len = range.length; i < len; i++) {\n      minMax = minMax || [[Infinity, -Infinity], [Infinity, -Infinity]];\n      var rg = range[i];\n      rg[0] < minMax[0][0] && (minMax[0][0] = rg[0]);\n      rg[0] > minMax[0][1] && (minMax[0][1] = rg[0]);\n      rg[1] < minMax[1][0] && (minMax[1][0] = rg[1]);\n      rg[1] > minMax[1][1] && (minMax[1][1] = rg[1]);\n    }\n\n    return minMax && getBoundingRectFromMinMax(minMax);\n  }\n};\n\nfunction getBoundingRectFromMinMax(minMax) {\n  return new BoundingRect(minMax[0][0], minMax[1][0], minMax[0][1] - minMax[0][0], minMax[1][1] - minMax[1][0]);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BrushController from '../helper/BrushController';\nimport { layoutCovers } from './visualEncoding';\nimport ComponentView from '../../view/Component';\n\nvar BrushView = function (_super) {\n  __extends(BrushView, _super);\n\n  function BrushView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BrushView.type;\n    return _this;\n  }\n\n  BrushView.prototype.init = function (ecModel, api) {\n    this.ecModel = ecModel;\n    this.api = api;\n    this.model;\n    (this._brushController = new BrushController(api.getZr())).on('brush', zrUtil.bind(this._onBrush, this)).mount();\n  };\n\n  BrushView.prototype.render = function (brushModel, ecModel, api, payload) {\n    this.model = brushModel;\n\n    this._updateController(brushModel, ecModel, api, payload);\n  };\n\n  BrushView.prototype.updateTransform = function (brushModel, ecModel, api, payload) {\n    layoutCovers(ecModel);\n\n    this._updateController(brushModel, ecModel, api, payload);\n  };\n\n  BrushView.prototype.updateVisual = function (brushModel, ecModel, api, payload) {\n    this.updateTransform(brushModel, ecModel, api, payload);\n  };\n\n  BrushView.prototype.updateView = function (brushModel, ecModel, api, payload) {\n    this._updateController(brushModel, ecModel, api, payload);\n  };\n\n  BrushView.prototype._updateController = function (brushModel, ecModel, api, payload) {\n    (!payload || payload.$from !== brushModel.id) && this._brushController.setPanels(brushModel.brushTargetManager.makePanelOpts(api)).enableBrush(brushModel.brushOption).updateCovers(brushModel.areas.slice());\n  };\n\n  BrushView.prototype.dispose = function () {\n    this._brushController.dispose();\n  };\n\n  BrushView.prototype._onBrush = function (eventParam) {\n    var modelId = this.model.id;\n    var areas = this.model.brushTargetManager.setOutputRanges(eventParam.areas, this.ecModel);\n    (!eventParam.isEnd || eventParam.removeOnClick) && this.api.dispatchAction({\n      type: 'brush',\n      brushId: modelId,\n      areas: zrUtil.clone(areas),\n      $from: modelId\n    });\n    eventParam.isEnd && this.api.dispatchAction({\n      type: 'brushEnd',\n      brushId: modelId,\n      areas: zrUtil.clone(areas),\n      $from: modelId\n    });\n  };\n\n  BrushView.type = 'brush';\n  return BrushView;\n}(ComponentView);\n\nexport default BrushView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as visualSolution from '../../visual/visualSolution';\nimport Model from '../../model/Model';\nimport ComponentModel from '../../model/Component';\nvar DEFAULT_OUT_OF_BRUSH_COLOR = '#ddd';\n\nvar BrushModel = function (_super) {\n  __extends(BrushModel, _super);\n\n  function BrushModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BrushModel.type;\n    _this.areas = [];\n    _this.brushOption = {};\n    return _this;\n  }\n\n  BrushModel.prototype.optionUpdated = function (newOption, isInit) {\n    var thisOption = this.option;\n    !isInit && visualSolution.replaceVisualOption(thisOption, newOption, ['inBrush', 'outOfBrush']);\n    var inBrush = thisOption.inBrush = thisOption.inBrush || {};\n    thisOption.outOfBrush = thisOption.outOfBrush || {\n      color: DEFAULT_OUT_OF_BRUSH_COLOR\n    };\n\n    if (!inBrush.hasOwnProperty('liftZ')) {\n      inBrush.liftZ = 5;\n    }\n  };\n\n  BrushModel.prototype.setAreas = function (areas) {\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.assert(zrUtil.isArray(areas));\n      zrUtil.each(areas, function (area) {\n        zrUtil.assert(area.brushType, 'Illegal areas');\n      });\n    }\n\n    if (!areas) {\n      return;\n    }\n\n    this.areas = zrUtil.map(areas, function (area) {\n      return generateBrushOption(this.option, area);\n    }, this);\n  };\n\n  BrushModel.prototype.setBrushOption = function (brushOption) {\n    this.brushOption = generateBrushOption(this.option, brushOption);\n    this.brushType = this.brushOption.brushType;\n  };\n\n  BrushModel.type = 'brush';\n  BrushModel.dependencies = ['geo', 'grid', 'xAxis', 'yAxis', 'parallel', 'series'];\n  BrushModel.defaultOption = {\n    seriesIndex: 'all',\n    brushType: 'rect',\n    brushMode: 'single',\n    transformable: true,\n    brushStyle: {\n      borderWidth: 1,\n      color: 'rgba(210,219,238,0.3)',\n      borderColor: '#D2DBEE'\n    },\n    throttleType: 'fixRate',\n    throttleDelay: 0,\n    removeOnClick: true,\n    z: 10000\n  };\n  return BrushModel;\n}(ComponentModel);\n\nfunction generateBrushOption(option, brushOption) {\n  return zrUtil.merge({\n    brushType: option.brushType,\n    brushMode: option.brushMode,\n    transformable: option.transformable,\n    brushStyle: new Model(option.brushStyle).getItemStyle(),\n    removeOnClick: option.removeOnClick,\n    z: option.z\n  }, brushOption, true);\n}\n\nexport default BrushModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { ToolboxFeature } from '../featureManager';\nvar ICON_TYPES = ['rect', 'polygon', 'lineX', 'lineY', 'keep', 'clear'];\n\nvar BrushFeature = function (_super) {\n  __extends(BrushFeature, _super);\n\n  function BrushFeature() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  BrushFeature.prototype.render = function (featureModel, ecModel, api) {\n    var brushType;\n    var brushMode;\n    var isBrushed;\n    ecModel.eachComponent({\n      mainType: 'brush'\n    }, function (brushModel) {\n      brushType = brushModel.brushType;\n      brushMode = brushModel.brushOption.brushMode || 'single';\n      isBrushed = isBrushed || !!brushModel.areas.length;\n    });\n    this._brushType = brushType;\n    this._brushMode = brushMode;\n    zrUtil.each(featureModel.get('type', true), function (type) {\n      featureModel.setIconStatus(type, (type === 'keep' ? brushMode === 'multiple' : type === 'clear' ? isBrushed : type === brushType) ? 'emphasis' : 'normal');\n    });\n  };\n\n  BrushFeature.prototype.updateView = function (featureModel, ecModel, api) {\n    this.render(featureModel, ecModel, api);\n  };\n\n  BrushFeature.prototype.getIcons = function () {\n    var model = this.model;\n    var availableIcons = model.get('icon', true);\n    var icons = {};\n    zrUtil.each(model.get('type', true), function (type) {\n      if (availableIcons[type]) {\n        icons[type] = availableIcons[type];\n      }\n    });\n    return icons;\n  };\n\n  ;\n\n  BrushFeature.prototype.onclick = function (ecModel, api, type) {\n    var brushType = this._brushType;\n    var brushMode = this._brushMode;\n\n    if (type === 'clear') {\n      api.dispatchAction({\n        type: 'axisAreaSelect',\n        intervals: []\n      });\n      api.dispatchAction({\n        type: 'brush',\n        command: 'clear',\n        areas: []\n      });\n    } else {\n      api.dispatchAction({\n        type: 'takeGlobalCursor',\n        key: 'brush',\n        brushOption: {\n          brushType: type === 'keep' ? brushType : brushType === type ? false : type,\n          brushMode: type === 'keep' ? brushMode === 'multiple' ? 'single' : 'multiple' : brushMode\n        }\n      });\n    }\n  };\n\n  ;\n\n  BrushFeature.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      type: ICON_TYPES.slice(),\n      icon: {\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',\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',\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',\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',\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',\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'\n      },\n      title: ecModel.getLocale(['toolbox', 'brush', 'title'])\n    };\n    return defaultOption;\n  };\n\n  return BrushFeature;\n}(ToolboxFeature);\n\nexport default BrushFeature;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport brushPreprocessor from './preprocessor';\nimport BrushView from './BrushView';\nimport BrushModel from './BrushModel';\nimport brushVisual from './visualEncoding';\nimport BrushFeature from '../toolbox/feature/Brush';\nimport { registerFeature } from '../toolbox/featureManager';\nexport function install(registers) {\n  registers.registerComponentView(BrushView);\n  registers.registerComponentModel(BrushModel);\n  registers.registerPreprocessor(brushPreprocessor);\n  registers.registerVisual(registers.PRIORITY.VISUAL.BRUSH, brushVisual);\n  registers.registerAction({\n    type: 'brush',\n    event: 'brush',\n    update: 'updateVisual'\n  }, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'brush',\n      query: payload\n    }, function (brushModel) {\n      brushModel.setAreas(payload.areas);\n    });\n  });\n  registers.registerAction({\n    type: 'brushSelect',\n    event: 'brushSelected',\n    update: 'none'\n  }, function () {});\n  registers.registerAction({\n    type: 'brushEnd',\n    event: 'brushEnd',\n    update: 'none'\n  }, function () {});\n  registerFeature('brush', BrushFeature);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { createTextStyle } from '../../label/labelStyle';\nimport { getLayoutRect } from '../../util/layout';\nimport ComponentModel from '../../model/Component';\nimport ComponentView from '../../view/Component';\nimport { windowOpen } from '../../util/format';\n\nvar TitleModel = function (_super) {\n  __extends(TitleModel, _super);\n\n  function TitleModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TitleModel.type;\n    _this.layoutMode = {\n      type: 'box',\n      ignoreSize: true\n    };\n    return _this;\n  }\n\n  TitleModel.type = 'title';\n  TitleModel.defaultOption = {\n    zlevel: 0,\n    z: 6,\n    show: true,\n    text: '',\n    target: 'blank',\n    subtext: '',\n    subtarget: 'blank',\n    left: 0,\n    top: 0,\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderColor: '#ccc',\n    borderWidth: 0,\n    padding: 5,\n    itemGap: 10,\n    textStyle: {\n      fontSize: 18,\n      fontWeight: 'bold',\n      color: '#464646'\n    },\n    subtextStyle: {\n      fontSize: 12,\n      color: '#6E7079'\n    }\n  };\n  return TitleModel;\n}(ComponentModel);\n\nvar TitleView = function (_super) {\n  __extends(TitleView, _super);\n\n  function TitleView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TitleView.type;\n    return _this;\n  }\n\n  TitleView.prototype.render = function (titleModel, ecModel, api) {\n    this.group.removeAll();\n\n    if (!titleModel.get('show')) {\n      return;\n    }\n\n    var group = this.group;\n    var textStyleModel = titleModel.getModel('textStyle');\n    var subtextStyleModel = titleModel.getModel('subtextStyle');\n    var textAlign = titleModel.get('textAlign');\n    var textVerticalAlign = zrUtil.retrieve2(titleModel.get('textBaseline'), titleModel.get('textVerticalAlign'));\n    var textEl = new graphic.Text({\n      style: createTextStyle(textStyleModel, {\n        text: titleModel.get('text'),\n        fill: textStyleModel.getTextColor()\n      }, {\n        disableBox: true\n      }),\n      z2: 10\n    });\n    var textRect = textEl.getBoundingRect();\n    var subText = titleModel.get('subtext');\n    var subTextEl = new graphic.Text({\n      style: createTextStyle(subtextStyleModel, {\n        text: subText,\n        fill: subtextStyleModel.getTextColor(),\n        y: textRect.height + titleModel.get('itemGap'),\n        verticalAlign: 'top'\n      }, {\n        disableBox: true\n      }),\n      z2: 10\n    });\n    var link = titleModel.get('link');\n    var sublink = titleModel.get('sublink');\n    var triggerEvent = titleModel.get('triggerEvent', true);\n    textEl.silent = !link && !triggerEvent;\n    subTextEl.silent = !sublink && !triggerEvent;\n\n    if (link) {\n      textEl.on('click', function () {\n        windowOpen(link, '_' + titleModel.get('target'));\n      });\n    }\n\n    if (sublink) {\n      subTextEl.on('click', function () {\n        windowOpen(sublink, '_' + titleModel.get('subtarget'));\n      });\n    }\n\n    getECData(textEl).eventData = getECData(subTextEl).eventData = triggerEvent ? {\n      componentType: 'title',\n      componentIndex: titleModel.componentIndex\n    } : null;\n    group.add(textEl);\n    subText && group.add(subTextEl);\n    var groupRect = group.getBoundingRect();\n    var layoutOption = titleModel.getBoxLayoutParams();\n    layoutOption.width = groupRect.width;\n    layoutOption.height = groupRect.height;\n    var layoutRect = getLayoutRect(layoutOption, {\n      width: api.getWidth(),\n      height: api.getHeight()\n    }, titleModel.get('padding'));\n\n    if (!textAlign) {\n      textAlign = titleModel.get('left') || titleModel.get('right');\n\n      if (textAlign === 'middle') {\n        textAlign = 'center';\n      }\n\n      if (textAlign === 'right') {\n        layoutRect.x += layoutRect.width;\n      } else if (textAlign === 'center') {\n        layoutRect.x += layoutRect.width / 2;\n      }\n    }\n\n    if (!textVerticalAlign) {\n      textVerticalAlign = titleModel.get('top') || titleModel.get('bottom');\n\n      if (textVerticalAlign === 'center') {\n        textVerticalAlign = 'middle';\n      }\n\n      if (textVerticalAlign === 'bottom') {\n        layoutRect.y += layoutRect.height;\n      } else if (textVerticalAlign === 'middle') {\n        layoutRect.y += layoutRect.height / 2;\n      }\n\n      textVerticalAlign = textVerticalAlign || 'top';\n    }\n\n    group.x = layoutRect.x;\n    group.y = layoutRect.y;\n    group.markRedraw();\n    var alignStyle = {\n      align: textAlign,\n      verticalAlign: textVerticalAlign\n    };\n    textEl.setStyle(alignStyle);\n    subTextEl.setStyle(alignStyle);\n    groupRect = group.getBoundingRect();\n    var padding = layoutRect.margin;\n    var style = titleModel.getItemStyle(['color', 'opacity']);\n    style.fill = titleModel.get('backgroundColor');\n    var rect = new graphic.Rect({\n      shape: {\n        x: groupRect.x - padding[3],\n        y: groupRect.y - padding[0],\n        width: groupRect.width + padding[1] + padding[3],\n        height: groupRect.height + padding[0] + padding[2],\n        r: titleModel.get('borderRadius')\n      },\n      style: style,\n      subPixelOptimize: true,\n      silent: true\n    });\n    group.add(rect);\n  };\n\n  TitleView.type = 'title';\n  return TitleView;\n}(ComponentView);\n\nexport function install(registers) {\n  registers.registerComponentModel(TitleModel);\n  registers.registerComponentView(TitleView);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\nimport List from '../../data/List';\nimport { each, isObject, clone } from 'zrender/lib/core/util';\nimport { convertOptionIdName, getDataItemValue } from '../../util/model';\n\nvar TimelineModel = function (_super) {\n  __extends(TimelineModel, _super);\n\n  function TimelineModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TimelineModel.type;\n    _this.layoutMode = 'box';\n    return _this;\n  }\n\n  TimelineModel.prototype.init = function (option, parentModel, ecModel) {\n    this.mergeDefaultAndTheme(option, ecModel);\n\n    this._initData();\n  };\n\n  TimelineModel.prototype.mergeOption = function (option) {\n    _super.prototype.mergeOption.apply(this, arguments);\n\n    this._initData();\n  };\n\n  TimelineModel.prototype.setCurrentIndex = function (currentIndex) {\n    if (currentIndex == null) {\n      currentIndex = this.option.currentIndex;\n    }\n\n    var count = this._data.count();\n\n    if (this.option.loop) {\n      currentIndex = (currentIndex % count + count) % count;\n    } else {\n      currentIndex >= count && (currentIndex = count - 1);\n      currentIndex < 0 && (currentIndex = 0);\n    }\n\n    this.option.currentIndex = currentIndex;\n  };\n\n  TimelineModel.prototype.getCurrentIndex = function () {\n    return this.option.currentIndex;\n  };\n\n  TimelineModel.prototype.isIndexMax = function () {\n    return this.getCurrentIndex() >= this._data.count() - 1;\n  };\n\n  TimelineModel.prototype.setPlayState = function (state) {\n    this.option.autoPlay = !!state;\n  };\n\n  TimelineModel.prototype.getPlayState = function () {\n    return !!this.option.autoPlay;\n  };\n\n  TimelineModel.prototype._initData = function () {\n    var thisOption = this.option;\n    var dataArr = thisOption.data || [];\n    var axisType = thisOption.axisType;\n    var names = this._names = [];\n    var processedDataArr;\n\n    if (axisType === 'category') {\n      processedDataArr = [];\n      each(dataArr, function (item, index) {\n        var value = convertOptionIdName(getDataItemValue(item), '');\n        var newItem;\n\n        if (isObject(item)) {\n          newItem = clone(item);\n          newItem.value = index;\n        } else {\n          newItem = index;\n        }\n\n        processedDataArr.push(newItem);\n        names.push(value);\n      });\n    } else {\n      processedDataArr = dataArr;\n    }\n\n    var dimType = {\n      category: 'ordinal',\n      time: 'time',\n      value: 'number'\n    }[axisType] || 'number';\n    var data = this._data = new List([{\n      name: 'value',\n      type: dimType\n    }], this);\n    data.initData(processedDataArr, names);\n  };\n\n  TimelineModel.prototype.getData = function () {\n    return this._data;\n  };\n\n  TimelineModel.prototype.getCategories = function () {\n    if (this.get('axisType') === 'category') {\n      return this._names.slice();\n    }\n  };\n\n  TimelineModel.type = 'timeline';\n  TimelineModel.defaultOption = {\n    zlevel: 0,\n    z: 4,\n    show: true,\n    axisType: 'time',\n    realtime: true,\n    left: '20%',\n    top: null,\n    right: '20%',\n    bottom: 0,\n    width: null,\n    height: 40,\n    padding: 5,\n    controlPosition: 'left',\n    autoPlay: false,\n    rewind: false,\n    loop: true,\n    playInterval: 2000,\n    currentIndex: 0,\n    itemStyle: {},\n    label: {\n      color: '#000'\n    },\n    data: []\n  };\n  return TimelineModel;\n}(ComponentModel);\n\nexport default TimelineModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport TimelineModel from './TimelineModel';\nimport { DataFormatMixin } from '../../model/mixin/dataFormat';\nimport { mixin } from 'zrender/lib/core/util';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar SliderTimelineModel = function (_super) {\n  __extends(SliderTimelineModel, _super);\n\n  function SliderTimelineModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SliderTimelineModel.type;\n    return _this;\n  }\n\n  SliderTimelineModel.type = 'timeline.slider';\n  SliderTimelineModel.defaultOption = inheritDefaultOption(TimelineModel.defaultOption, {\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderColor: '#ccc',\n    borderWidth: 0,\n    orient: 'horizontal',\n    inverse: false,\n    tooltip: {\n      trigger: 'item'\n    },\n    symbol: 'circle',\n    symbolSize: 12,\n    lineStyle: {\n      show: true,\n      width: 2,\n      color: '#DAE1F5'\n    },\n    label: {\n      position: 'auto',\n      show: true,\n      interval: 'auto',\n      rotate: 0,\n      color: '#A4B1D7'\n    },\n    itemStyle: {\n      color: '#A4B1D7',\n      borderWidth: 1\n    },\n    checkpointStyle: {\n      symbol: 'circle',\n      symbolSize: 15,\n      color: '#316bf3',\n      borderColor: '#fff',\n      borderWidth: 2,\n      shadowBlur: 2,\n      shadowOffsetX: 1,\n      shadowOffsetY: 1,\n      shadowColor: 'rgba(0, 0, 0, 0.3)',\n      animation: true,\n      animationDuration: 300,\n      animationEasing: 'quinticInOut'\n    },\n    controlStyle: {\n      show: true,\n      showPlayBtn: true,\n      showPrevBtn: true,\n      showNextBtn: true,\n      itemSize: 24,\n      itemGap: 12,\n      position: 'left',\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',\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',\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',\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',\n      prevBtnSize: 18,\n      nextBtnSize: 18,\n      color: '#A4B1D7',\n      borderColor: '#A4B1D7',\n      borderWidth: 1\n    },\n    emphasis: {\n      label: {\n        show: true,\n        color: '#6f778d'\n      },\n      itemStyle: {\n        color: '#316BF3'\n      },\n      controlStyle: {\n        color: '#316BF3',\n        borderColor: '#316BF3',\n        borderWidth: 2\n      }\n    },\n    progress: {\n      lineStyle: {\n        color: '#316BF3'\n      },\n      itemStyle: {\n        color: '#316BF3'\n      },\n      label: {\n        color: '#6f778d'\n      }\n    },\n    data: []\n  });\n  return SliderTimelineModel;\n}(TimelineModel);\n\nmixin(SliderTimelineModel, DataFormatMixin.prototype);\nexport default SliderTimelineModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component';\n\nvar TimelineView = function (_super) {\n  __extends(TimelineView, _super);\n\n  function TimelineView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TimelineView.type;\n    return _this;\n  }\n\n  TimelineView.type = 'timeline';\n  return TimelineView;\n}(ComponentView);\n\nexport default TimelineView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Axis from '../../coord/Axis';\n\nvar TimelineAxis = function (_super) {\n  __extends(TimelineAxis, _super);\n\n  function TimelineAxis(dim, scale, coordExtent, axisType) {\n    var _this = _super.call(this, dim, scale, coordExtent) || this;\n\n    _this.type = axisType || 'value';\n    return _this;\n  }\n\n  TimelineAxis.prototype.getLabelModel = function () {\n    return this.model.getModel('label');\n  };\n\n  TimelineAxis.prototype.isHorizontal = function () {\n    return this.model.get('orient') === 'horizontal';\n  };\n\n  return TimelineAxis;\n}(Axis);\n\nexport default TimelineAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport * as graphic from '../../util/graphic';\nimport { createTextStyle } from '../../label/labelStyle';\nimport * as layout from '../../util/layout';\nimport TimelineView from './TimelineView';\nimport TimelineAxis from './TimelineAxis';\nimport { createSymbol } from '../../util/symbol';\nimport * as numberUtil from '../../util/number';\nimport { merge, each, extend, isString, bind, defaults, retrieve2 } from 'zrender/lib/core/util';\nimport OrdinalScale from '../../scale/Ordinal';\nimport TimeScale from '../../scale/Time';\nimport IntervalScale from '../../scale/Interval';\nimport { parsePercent } from 'zrender/lib/contain/text';\nimport { makeInner } from '../../util/model';\nimport { getECData } from '../../util/innerStore';\nimport { enableHoverEmphasis } from '../../util/states';\nimport { createTooltipMarkup } from '../tooltip/tooltipMarkup';\nvar PI = Math.PI;\nvar labelDataIndexStore = makeInner();\n\nvar SliderTimelineView = function (_super) {\n  __extends(SliderTimelineView, _super);\n\n  function SliderTimelineView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SliderTimelineView.type;\n    return _this;\n  }\n\n  SliderTimelineView.prototype.init = function (ecModel, api) {\n    this.api = api;\n  };\n\n  SliderTimelineView.prototype.render = function (timelineModel, ecModel, api) {\n    this.model = timelineModel;\n    this.api = api;\n    this.ecModel = ecModel;\n    this.group.removeAll();\n\n    if (timelineModel.get('show', true)) {\n      var layoutInfo_1 = this._layout(timelineModel, api);\n\n      var mainGroup_1 = this._createGroup('_mainGroup');\n\n      var labelGroup = this._createGroup('_labelGroup');\n\n      var axis_1 = this._axis = this._createAxis(layoutInfo_1, timelineModel);\n\n      timelineModel.formatTooltip = function (dataIndex) {\n        var name = axis_1.scale.getLabel({\n          value: dataIndex\n        });\n        return createTooltipMarkup('nameValue', {\n          noName: true,\n          value: name\n        });\n      };\n\n      each(['AxisLine', 'AxisTick', 'Control', 'CurrentPointer'], function (name) {\n        this['_render' + name](layoutInfo_1, mainGroup_1, axis_1, timelineModel);\n      }, this);\n\n      this._renderAxisLabel(layoutInfo_1, labelGroup, axis_1, timelineModel);\n\n      this._position(layoutInfo_1, timelineModel);\n    }\n\n    this._doPlayStop();\n\n    this._updateTicksStatus();\n  };\n\n  SliderTimelineView.prototype.remove = function () {\n    this._clearTimer();\n\n    this.group.removeAll();\n  };\n\n  SliderTimelineView.prototype.dispose = function () {\n    this._clearTimer();\n  };\n\n  SliderTimelineView.prototype._layout = function (timelineModel, api) {\n    var labelPosOpt = timelineModel.get(['label', 'position']);\n    var orient = timelineModel.get('orient');\n    var viewRect = getViewRect(timelineModel, api);\n    var parsedLabelPos;\n\n    if (labelPosOpt == null || labelPosOpt === 'auto') {\n      parsedLabelPos = orient === 'horizontal' ? viewRect.y + viewRect.height / 2 < api.getHeight() / 2 ? '-' : '+' : viewRect.x + viewRect.width / 2 < api.getWidth() / 2 ? '+' : '-';\n    } else if (isString(labelPosOpt)) {\n      parsedLabelPos = {\n        horizontal: {\n          top: '-',\n          bottom: '+'\n        },\n        vertical: {\n          left: '-',\n          right: '+'\n        }\n      }[orient][labelPosOpt];\n    } else {\n      parsedLabelPos = labelPosOpt;\n    }\n\n    var labelAlignMap = {\n      horizontal: 'center',\n      vertical: parsedLabelPos >= 0 || parsedLabelPos === '+' ? 'left' : 'right'\n    };\n    var labelBaselineMap = {\n      horizontal: parsedLabelPos >= 0 || parsedLabelPos === '+' ? 'top' : 'bottom',\n      vertical: 'middle'\n    };\n    var rotationMap = {\n      horizontal: 0,\n      vertical: PI / 2\n    };\n    var mainLength = orient === 'vertical' ? viewRect.height : viewRect.width;\n    var controlModel = timelineModel.getModel('controlStyle');\n    var showControl = controlModel.get('show', true);\n    var controlSize = showControl ? controlModel.get('itemSize') : 0;\n    var controlGap = showControl ? controlModel.get('itemGap') : 0;\n    var sizePlusGap = controlSize + controlGap;\n    var labelRotation = timelineModel.get(['label', 'rotate']) || 0;\n    labelRotation = labelRotation * PI / 180;\n    var playPosition;\n    var prevBtnPosition;\n    var nextBtnPosition;\n    var controlPosition = controlModel.get('position', true);\n    var showPlayBtn = showControl && controlModel.get('showPlayBtn', true);\n    var showPrevBtn = showControl && controlModel.get('showPrevBtn', true);\n    var showNextBtn = showControl && controlModel.get('showNextBtn', true);\n    var xLeft = 0;\n    var xRight = mainLength;\n\n    if (controlPosition === 'left' || controlPosition === 'bottom') {\n      showPlayBtn && (playPosition = [0, 0], xLeft += sizePlusGap);\n      showPrevBtn && (prevBtnPosition = [xLeft, 0], xLeft += sizePlusGap);\n      showNextBtn && (nextBtnPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\n    } else {\n      showPlayBtn && (playPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\n      showPrevBtn && (prevBtnPosition = [0, 0], xLeft += sizePlusGap);\n      showNextBtn && (nextBtnPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\n    }\n\n    var axisExtent = [xLeft, xRight];\n\n    if (timelineModel.get('inverse')) {\n      axisExtent.reverse();\n    }\n\n    return {\n      viewRect: viewRect,\n      mainLength: mainLength,\n      orient: orient,\n      rotation: rotationMap[orient],\n      labelRotation: labelRotation,\n      labelPosOpt: parsedLabelPos,\n      labelAlign: timelineModel.get(['label', 'align']) || labelAlignMap[orient],\n      labelBaseline: timelineModel.get(['label', 'verticalAlign']) || timelineModel.get(['label', 'baseline']) || labelBaselineMap[orient],\n      playPosition: playPosition,\n      prevBtnPosition: prevBtnPosition,\n      nextBtnPosition: nextBtnPosition,\n      axisExtent: axisExtent,\n      controlSize: controlSize,\n      controlGap: controlGap\n    };\n  };\n\n  SliderTimelineView.prototype._position = function (layoutInfo, timelineModel) {\n    var mainGroup = this._mainGroup;\n    var labelGroup = this._labelGroup;\n    var viewRect = layoutInfo.viewRect;\n\n    if (layoutInfo.orient === 'vertical') {\n      var m = matrix.create();\n      var rotateOriginX = viewRect.x;\n      var rotateOriginY = viewRect.y + viewRect.height;\n      matrix.translate(m, m, [-rotateOriginX, -rotateOriginY]);\n      matrix.rotate(m, m, -PI / 2);\n      matrix.translate(m, m, [rotateOriginX, rotateOriginY]);\n      viewRect = viewRect.clone();\n      viewRect.applyTransform(m);\n    }\n\n    var viewBound = getBound(viewRect);\n    var mainBound = getBound(mainGroup.getBoundingRect());\n    var labelBound = getBound(labelGroup.getBoundingRect());\n    var mainPosition = [mainGroup.x, mainGroup.y];\n    var labelsPosition = [labelGroup.x, labelGroup.y];\n    labelsPosition[0] = mainPosition[0] = viewBound[0][0];\n    var labelPosOpt = layoutInfo.labelPosOpt;\n\n    if (labelPosOpt == null || isString(labelPosOpt)) {\n      var mainBoundIdx = labelPosOpt === '+' ? 0 : 1;\n      toBound(mainPosition, mainBound, viewBound, 1, mainBoundIdx);\n      toBound(labelsPosition, labelBound, viewBound, 1, 1 - mainBoundIdx);\n    } else {\n      var mainBoundIdx = labelPosOpt >= 0 ? 0 : 1;\n      toBound(mainPosition, mainBound, viewBound, 1, mainBoundIdx);\n      labelsPosition[1] = mainPosition[1] + labelPosOpt;\n    }\n\n    mainGroup.setPosition(mainPosition);\n    labelGroup.setPosition(labelsPosition);\n    mainGroup.rotation = labelGroup.rotation = layoutInfo.rotation;\n    setOrigin(mainGroup);\n    setOrigin(labelGroup);\n\n    function setOrigin(targetGroup) {\n      targetGroup.originX = viewBound[0][0] - targetGroup.x;\n      targetGroup.originY = viewBound[1][0] - targetGroup.y;\n    }\n\n    function getBound(rect) {\n      return [[rect.x, rect.x + rect.width], [rect.y, rect.y + rect.height]];\n    }\n\n    function toBound(fromPos, from, to, dimIdx, boundIdx) {\n      fromPos[dimIdx] += to[dimIdx][boundIdx] - from[dimIdx][boundIdx];\n    }\n  };\n\n  SliderTimelineView.prototype._createAxis = function (layoutInfo, timelineModel) {\n    var data = timelineModel.getData();\n    var axisType = timelineModel.get('axisType');\n    var scale = createScaleByModel(timelineModel, axisType);\n\n    scale.getTicks = function () {\n      return data.mapArray(['value'], function (value) {\n        return {\n          value: value\n        };\n      });\n    };\n\n    var dataExtent = data.getDataExtent('value');\n    scale.setExtent(dataExtent[0], dataExtent[1]);\n    scale.niceTicks();\n    var axis = new TimelineAxis('value', scale, layoutInfo.axisExtent, axisType);\n    axis.model = timelineModel;\n    return axis;\n  };\n\n  SliderTimelineView.prototype._createGroup = function (key) {\n    var newGroup = this[key] = new graphic.Group();\n    this.group.add(newGroup);\n    return newGroup;\n  };\n\n  SliderTimelineView.prototype._renderAxisLine = function (layoutInfo, group, axis, timelineModel) {\n    var axisExtent = axis.getExtent();\n\n    if (!timelineModel.get(['lineStyle', 'show'])) {\n      return;\n    }\n\n    var line = new graphic.Line({\n      shape: {\n        x1: axisExtent[0],\n        y1: 0,\n        x2: axisExtent[1],\n        y2: 0\n      },\n      style: extend({\n        lineCap: 'round'\n      }, timelineModel.getModel('lineStyle').getLineStyle()),\n      silent: true,\n      z2: 1\n    });\n    group.add(line);\n    var progressLine = this._progressLine = new graphic.Line({\n      shape: {\n        x1: axisExtent[0],\n        x2: this._currentPointer ? this._currentPointer.x : axisExtent[0],\n        y1: 0,\n        y2: 0\n      },\n      style: defaults({\n        lineCap: 'round',\n        lineWidth: line.style.lineWidth\n      }, timelineModel.getModel(['progress', 'lineStyle']).getLineStyle()),\n      silent: true,\n      z2: 1\n    });\n    group.add(progressLine);\n  };\n\n  SliderTimelineView.prototype._renderAxisTick = function (layoutInfo, group, axis, timelineModel) {\n    var _this = this;\n\n    var data = timelineModel.getData();\n    var ticks = axis.scale.getTicks();\n    this._tickSymbols = [];\n    each(ticks, function (tick) {\n      var tickCoord = axis.dataToCoord(tick.value);\n      var itemModel = data.getItemModel(tick.value);\n      var itemStyleModel = itemModel.getModel('itemStyle');\n      var hoverStyleModel = itemModel.getModel(['emphasis', 'itemStyle']);\n      var progressStyleModel = itemModel.getModel(['progress', 'itemStyle']);\n      var symbolOpt = {\n        x: tickCoord,\n        y: 0,\n        onclick: bind(_this._changeTimeline, _this, tick.value)\n      };\n      var el = giveSymbol(itemModel, itemStyleModel, group, symbolOpt);\n      el.ensureState('emphasis').style = hoverStyleModel.getItemStyle();\n      el.ensureState('progress').style = progressStyleModel.getItemStyle();\n      enableHoverEmphasis(el);\n      var ecData = getECData(el);\n\n      if (itemModel.get('tooltip')) {\n        ecData.dataIndex = tick.value;\n        ecData.dataModel = timelineModel;\n      } else {\n        ecData.dataIndex = ecData.dataModel = null;\n      }\n\n      _this._tickSymbols.push(el);\n    });\n  };\n\n  SliderTimelineView.prototype._renderAxisLabel = function (layoutInfo, group, axis, timelineModel) {\n    var _this = this;\n\n    var labelModel = axis.getLabelModel();\n\n    if (!labelModel.get('show')) {\n      return;\n    }\n\n    var data = timelineModel.getData();\n    var labels = axis.getViewLabels();\n    this._tickLabels = [];\n    each(labels, function (labelItem) {\n      var dataIndex = labelItem.tickValue;\n      var itemModel = data.getItemModel(dataIndex);\n      var normalLabelModel = itemModel.getModel('label');\n      var hoverLabelModel = itemModel.getModel(['emphasis', 'label']);\n      var progressLabelModel = itemModel.getModel(['progress', 'label']);\n      var tickCoord = axis.dataToCoord(labelItem.tickValue);\n      var textEl = new graphic.Text({\n        x: tickCoord,\n        y: 0,\n        rotation: layoutInfo.labelRotation - layoutInfo.rotation,\n        onclick: bind(_this._changeTimeline, _this, dataIndex),\n        silent: false,\n        style: createTextStyle(normalLabelModel, {\n          text: labelItem.formattedLabel,\n          align: layoutInfo.labelAlign,\n          verticalAlign: layoutInfo.labelBaseline\n        })\n      });\n      textEl.ensureState('emphasis').style = createTextStyle(hoverLabelModel);\n      textEl.ensureState('progress').style = createTextStyle(progressLabelModel);\n      group.add(textEl);\n      enableHoverEmphasis(textEl);\n      labelDataIndexStore(textEl).dataIndex = dataIndex;\n\n      _this._tickLabels.push(textEl);\n    });\n  };\n\n  SliderTimelineView.prototype._renderControl = function (layoutInfo, group, axis, timelineModel) {\n    var controlSize = layoutInfo.controlSize;\n    var rotation = layoutInfo.rotation;\n    var itemStyle = timelineModel.getModel('controlStyle').getItemStyle();\n    var hoverStyle = timelineModel.getModel(['emphasis', 'controlStyle']).getItemStyle();\n    var playState = timelineModel.getPlayState();\n    var inverse = timelineModel.get('inverse', true);\n    makeBtn(layoutInfo.nextBtnPosition, 'next', bind(this._changeTimeline, this, inverse ? '-' : '+'));\n    makeBtn(layoutInfo.prevBtnPosition, 'prev', bind(this._changeTimeline, this, inverse ? '+' : '-'));\n    makeBtn(layoutInfo.playPosition, playState ? 'stop' : 'play', bind(this._handlePlayClick, this, !playState), true);\n\n    function makeBtn(position, iconName, onclick, willRotate) {\n      if (!position) {\n        return;\n      }\n\n      var iconSize = parsePercent(retrieve2(timelineModel.get(['controlStyle', iconName + 'BtnSize']), controlSize), controlSize);\n      var rect = [0, -iconSize / 2, iconSize, iconSize];\n      var opt = {\n        position: position,\n        origin: [controlSize / 2, 0],\n        rotation: willRotate ? -rotation : 0,\n        rectHover: true,\n        style: itemStyle,\n        onclick: onclick\n      };\n      var btn = makeControlIcon(timelineModel, iconName + 'Icon', rect, opt);\n      btn.ensureState('emphasis').style = hoverStyle;\n      group.add(btn);\n      enableHoverEmphasis(btn);\n    }\n  };\n\n  SliderTimelineView.prototype._renderCurrentPointer = function (layoutInfo, group, axis, timelineModel) {\n    var data = timelineModel.getData();\n    var currentIndex = timelineModel.getCurrentIndex();\n    var pointerModel = data.getItemModel(currentIndex).getModel('checkpointStyle');\n    var me = this;\n    var callback = {\n      onCreate: function (pointer) {\n        pointer.draggable = true;\n        pointer.drift = bind(me._handlePointerDrag, me);\n        pointer.ondragend = bind(me._handlePointerDragend, me);\n        pointerMoveTo(pointer, me._progressLine, currentIndex, axis, timelineModel, true);\n      },\n      onUpdate: function (pointer) {\n        pointerMoveTo(pointer, me._progressLine, currentIndex, axis, timelineModel);\n      }\n    };\n    this._currentPointer = giveSymbol(pointerModel, pointerModel, this._mainGroup, {}, this._currentPointer, callback);\n  };\n\n  SliderTimelineView.prototype._handlePlayClick = function (nextState) {\n    this._clearTimer();\n\n    this.api.dispatchAction({\n      type: 'timelinePlayChange',\n      playState: nextState,\n      from: this.uid\n    });\n  };\n\n  SliderTimelineView.prototype._handlePointerDrag = function (dx, dy, e) {\n    this._clearTimer();\n\n    this._pointerChangeTimeline([e.offsetX, e.offsetY]);\n  };\n\n  SliderTimelineView.prototype._handlePointerDragend = function (e) {\n    this._pointerChangeTimeline([e.offsetX, e.offsetY], true);\n  };\n\n  SliderTimelineView.prototype._pointerChangeTimeline = function (mousePos, trigger) {\n    var toCoord = this._toAxisCoord(mousePos)[0];\n\n    var axis = this._axis;\n    var axisExtent = numberUtil.asc(axis.getExtent().slice());\n    toCoord > axisExtent[1] && (toCoord = axisExtent[1]);\n    toCoord < axisExtent[0] && (toCoord = axisExtent[0]);\n    this._currentPointer.x = toCoord;\n\n    this._currentPointer.markRedraw();\n\n    this._progressLine.shape.x2 = toCoord;\n\n    this._progressLine.dirty();\n\n    var targetDataIndex = this._findNearestTick(toCoord);\n\n    var timelineModel = this.model;\n\n    if (trigger || targetDataIndex !== timelineModel.getCurrentIndex() && timelineModel.get('realtime')) {\n      this._changeTimeline(targetDataIndex);\n    }\n  };\n\n  SliderTimelineView.prototype._doPlayStop = function () {\n    var _this = this;\n\n    this._clearTimer();\n\n    if (this.model.getPlayState()) {\n      this._timer = setTimeout(function () {\n        var timelineModel = _this.model;\n\n        _this._changeTimeline(timelineModel.getCurrentIndex() + (timelineModel.get('rewind', true) ? -1 : 1));\n      }, this.model.get('playInterval'));\n    }\n  };\n\n  SliderTimelineView.prototype._toAxisCoord = function (vertex) {\n    var trans = this._mainGroup.getLocalTransform();\n\n    return graphic.applyTransform(vertex, trans, true);\n  };\n\n  SliderTimelineView.prototype._findNearestTick = function (axisCoord) {\n    var data = this.model.getData();\n    var dist = Infinity;\n    var targetDataIndex;\n    var axis = this._axis;\n    data.each(['value'], function (value, dataIndex) {\n      var coord = axis.dataToCoord(value);\n      var d = Math.abs(coord - axisCoord);\n\n      if (d < dist) {\n        dist = d;\n        targetDataIndex = dataIndex;\n      }\n    });\n    return targetDataIndex;\n  };\n\n  SliderTimelineView.prototype._clearTimer = function () {\n    if (this._timer) {\n      clearTimeout(this._timer);\n      this._timer = null;\n    }\n  };\n\n  SliderTimelineView.prototype._changeTimeline = function (nextIndex) {\n    var currentIndex = this.model.getCurrentIndex();\n\n    if (nextIndex === '+') {\n      nextIndex = currentIndex + 1;\n    } else if (nextIndex === '-') {\n      nextIndex = currentIndex - 1;\n    }\n\n    this.api.dispatchAction({\n      type: 'timelineChange',\n      currentIndex: nextIndex,\n      from: this.uid\n    });\n  };\n\n  SliderTimelineView.prototype._updateTicksStatus = function () {\n    var currentIndex = this.model.getCurrentIndex();\n    var tickSymbols = this._tickSymbols;\n    var tickLabels = this._tickLabels;\n\n    if (tickSymbols) {\n      for (var i = 0; i < tickSymbols.length; i++) {\n        tickSymbols && tickSymbols[i] && tickSymbols[i].toggleState('progress', i < currentIndex);\n      }\n    }\n\n    if (tickLabels) {\n      for (var i = 0; i < tickLabels.length; i++) {\n        tickLabels && tickLabels[i] && tickLabels[i].toggleState('progress', labelDataIndexStore(tickLabels[i]).dataIndex <= currentIndex);\n      }\n    }\n  };\n\n  SliderTimelineView.type = 'timeline.slider';\n  return SliderTimelineView;\n}(TimelineView);\n\nfunction createScaleByModel(model, axisType) {\n  axisType = axisType || model.get('type');\n\n  if (axisType) {\n    switch (axisType) {\n      case 'category':\n        return new OrdinalScale({\n          ordinalMeta: model.getCategories(),\n          extent: [Infinity, -Infinity]\n        });\n\n      case 'time':\n        return new TimeScale({\n          locale: model.ecModel.getLocaleModel(),\n          useUTC: model.ecModel.get('useUTC')\n        });\n\n      default:\n        return new IntervalScale();\n    }\n  }\n}\n\nfunction getViewRect(model, api) {\n  return layout.getLayoutRect(model.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  }, model.get('padding'));\n}\n\nfunction makeControlIcon(timelineModel, objPath, rect, opts) {\n  var style = opts.style;\n  var icon = graphic.createIcon(timelineModel.get(['controlStyle', objPath]), opts || {}, new BoundingRect(rect[0], rect[1], rect[2], rect[3]));\n\n  if (style) {\n    icon.setStyle(style);\n  }\n\n  return icon;\n}\n\nfunction giveSymbol(hostModel, itemStyleModel, group, opt, symbol, callback) {\n  var color = itemStyleModel.get('color');\n\n  if (!symbol) {\n    var symbolType = hostModel.get('symbol');\n    symbol = createSymbol(symbolType, -1, -1, 2, 2, color);\n    symbol.setStyle('strokeNoScale', true);\n    group.add(symbol);\n    callback && callback.onCreate(symbol);\n  } else {\n    symbol.setColor(color);\n    group.add(symbol);\n    callback && callback.onUpdate(symbol);\n  }\n\n  var itemStyle = itemStyleModel.getItemStyle(['color']);\n  symbol.setStyle(itemStyle);\n  opt = merge({\n    rectHover: true,\n    z2: 100\n  }, opt, true);\n  var symbolSize = hostModel.get('symbolSize');\n  symbolSize = symbolSize instanceof Array ? symbolSize.slice() : [+symbolSize, +symbolSize];\n  opt.scaleX = symbolSize[0] / 2;\n  opt.scaleY = symbolSize[1] / 2;\n  var symbolOffset = hostModel.get('symbolOffset');\n\n  if (symbolOffset) {\n    opt.x = opt.x || 0;\n    opt.y = opt.y || 0;\n    opt.x += numberUtil.parsePercent(symbolOffset[0], symbolSize[0]);\n    opt.y += numberUtil.parsePercent(symbolOffset[1], symbolSize[1]);\n  }\n\n  var symbolRotate = hostModel.get('symbolRotate');\n  opt.rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\n  symbol.attr(opt);\n  symbol.updateTransform();\n  return symbol;\n}\n\nfunction pointerMoveTo(pointer, progressLine, dataIndex, axis, timelineModel, noAnimation) {\n  if (pointer.dragging) {\n    return;\n  }\n\n  var pointerModel = timelineModel.getModel('checkpointStyle');\n  var toCoord = axis.dataToCoord(timelineModel.getData().get('value', dataIndex));\n\n  if (noAnimation || !pointerModel.get('animation', true)) {\n    pointer.attr({\n      x: toCoord,\n      y: 0\n    });\n    progressLine && progressLine.attr({\n      shape: {\n        x2: toCoord\n      }\n    });\n  } else {\n    var animationCfg = {\n      duration: pointerModel.get('animationDuration', true),\n      easing: pointerModel.get('animationEasing', true)\n    };\n    pointer.stopAnimation(null, true);\n    pointer.animateTo({\n      x: toCoord,\n      y: 0\n    }, animationCfg);\n    progressLine && progressLine.animateTo({\n      shape: {\n        x2: toCoord\n      }\n    }, animationCfg);\n  }\n}\n\nexport default SliderTimelineView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { defaults } from 'zrender/lib/core/util';\nexport function installTimelineAction(registers) {\n  registers.registerAction({\n    type: 'timelineChange',\n    event: 'timelineChanged',\n    update: 'prepareAndUpdate'\n  }, function (payload, ecModel) {\n    var timelineModel = ecModel.getComponent('timeline');\n\n    if (timelineModel && payload.currentIndex != null) {\n      timelineModel.setCurrentIndex(payload.currentIndex);\n\n      if (!timelineModel.get('loop', true) && timelineModel.isIndexMax()) {\n        timelineModel.setPlayState(false);\n      }\n    }\n\n    ecModel.resetOption('timeline', {\n      replaceMerge: timelineModel.get('replaceMerge', true)\n    });\n    return defaults({\n      currentIndex: timelineModel.option.currentIndex\n    }, payload);\n  });\n  registers.registerAction({\n    type: 'timelinePlayChange',\n    event: 'timelinePlayChanged',\n    update: 'update'\n  }, function (payload, ecModel) {\n    var timelineModel = ecModel.getComponent('timeline');\n\n    if (timelineModel && payload.playState != null) {\n      timelineModel.setPlayState(payload.playState);\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function timelinePreprocessor(option) {\n  var timelineOpt = option && option.timeline;\n\n  if (!zrUtil.isArray(timelineOpt)) {\n    timelineOpt = timelineOpt ? [timelineOpt] : [];\n  }\n\n  zrUtil.each(timelineOpt, function (opt) {\n    if (!opt) {\n      return;\n    }\n\n    compatibleEC2(opt);\n  });\n}\n\nfunction compatibleEC2(opt) {\n  var type = opt.type;\n  var ec2Types = {\n    'number': 'value',\n    'time': 'time'\n  };\n\n  if (ec2Types[type]) {\n    opt.axisType = ec2Types[type];\n    delete opt.type;\n  }\n\n  transferItem(opt);\n\n  if (has(opt, 'controlPosition')) {\n    var controlStyle = opt.controlStyle || (opt.controlStyle = {});\n\n    if (!has(controlStyle, 'position')) {\n      controlStyle.position = opt.controlPosition;\n    }\n\n    if (controlStyle.position === 'none' && !has(controlStyle, 'show')) {\n      controlStyle.show = false;\n      delete controlStyle.position;\n    }\n\n    delete opt.controlPosition;\n  }\n\n  zrUtil.each(opt.data || [], function (dataItem) {\n    if (zrUtil.isObject(dataItem) && !zrUtil.isArray(dataItem)) {\n      if (!has(dataItem, 'value') && has(dataItem, 'name')) {\n        dataItem.value = dataItem.name;\n      }\n\n      transferItem(dataItem);\n    }\n  });\n}\n\nfunction transferItem(opt) {\n  var itemStyle = opt.itemStyle || (opt.itemStyle = {});\n  var itemStyleEmphasis = itemStyle.emphasis || (itemStyle.emphasis = {});\n  var label = opt.label || opt.label || {};\n  var labelNormal = label.normal || (label.normal = {});\n  var excludeLabelAttr = {\n    normal: 1,\n    emphasis: 1\n  };\n  zrUtil.each(label, function (value, name) {\n    if (!excludeLabelAttr[name] && !has(labelNormal, name)) {\n      labelNormal[name] = value;\n    }\n  });\n\n  if (itemStyleEmphasis.label && !has(label, 'emphasis')) {\n    label.emphasis = itemStyleEmphasis.label;\n    delete itemStyleEmphasis.label;\n  }\n}\n\nfunction has(obj, attr) {\n  return obj.hasOwnProperty(attr);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SliderTimelineModel from './SliderTimelineModel';\nimport SliderTimelineView from './SliderTimelineView';\nimport { installTimelineAction } from './timelineAction';\nimport preprocessor from './preprocessor';\nexport function install(registers) {\n  registers.registerComponentModel(SliderTimelineModel);\n  registers.registerComponentView(SliderTimelineView);\n  registers.registerSubTypeDefaulter('timeline', function () {\n    return 'slider';\n  });\n  installTimelineAction(registers);\n  registers.registerPreprocessor(preprocessor);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport { DataFormatMixin } from '../../model/mixin/dataFormat';\nimport ComponentModel from '../../model/Component';\nimport { makeInner, defaultEmphasis } from '../../util/model';\nimport { createTooltipMarkup } from '../tooltip/tooltipMarkup';\n\nfunction fillLabel(opt) {\n  defaultEmphasis(opt, 'label', ['show']);\n}\n\nvar inner = makeInner();\n\nvar MarkerModel = function (_super) {\n  __extends(MarkerModel, _super);\n\n  function MarkerModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkerModel.type;\n    _this.createdBySelf = false;\n    return _this;\n  }\n\n  MarkerModel.prototype.init = function (option, parentModel, ecModel) {\n    if (process.env.NODE_ENV !== 'production') {\n      if (this.type === 'marker') {\n        throw new Error('Marker component is abstract component. Use markLine, markPoint, markArea instead.');\n      }\n    }\n\n    this.mergeDefaultAndTheme(option, ecModel);\n\n    this._mergeOption(option, ecModel, false, true);\n  };\n\n  MarkerModel.prototype.isAnimationEnabled = function () {\n    if (env.node) {\n      return false;\n    }\n\n    var hostSeries = this.__hostSeries;\n    return this.getShallow('animation') && hostSeries && hostSeries.isAnimationEnabled();\n  };\n\n  MarkerModel.prototype.mergeOption = function (newOpt, ecModel) {\n    this._mergeOption(newOpt, ecModel, false, false);\n  };\n\n  MarkerModel.prototype._mergeOption = function (newOpt, ecModel, createdBySelf, isInit) {\n    var componentType = this.mainType;\n\n    if (!createdBySelf) {\n      ecModel.eachSeries(function (seriesModel) {\n        var markerOpt = seriesModel.get(this.mainType, true);\n        var markerModel = inner(seriesModel)[componentType];\n\n        if (!markerOpt || !markerOpt.data) {\n          inner(seriesModel)[componentType] = null;\n          return;\n        }\n\n        if (!markerModel) {\n          if (isInit) {\n            fillLabel(markerOpt);\n          }\n\n          zrUtil.each(markerOpt.data, function (item) {\n            if (item instanceof Array) {\n              fillLabel(item[0]);\n              fillLabel(item[1]);\n            } else {\n              fillLabel(item);\n            }\n          });\n          markerModel = this.createMarkerModelFromSeries(markerOpt, this, ecModel);\n          zrUtil.extend(markerModel, {\n            mainType: this.mainType,\n            seriesIndex: seriesModel.seriesIndex,\n            name: seriesModel.name,\n            createdBySelf: true\n          });\n          markerModel.__hostSeries = seriesModel;\n        } else {\n          markerModel._mergeOption(markerOpt, ecModel, true);\n        }\n\n        inner(seriesModel)[componentType] = markerModel;\n      }, this);\n    }\n  };\n\n  MarkerModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var data = this.getData();\n    var value = this.getRawValue(dataIndex);\n    var itemName = data.getName(dataIndex);\n    return createTooltipMarkup('section', {\n      header: this.name,\n      blocks: [createTooltipMarkup('nameValue', {\n        name: itemName,\n        value: value,\n        noName: !itemName,\n        noValue: value == null\n      })]\n    });\n  };\n\n  MarkerModel.prototype.getData = function () {\n    return this._data;\n  };\n\n  MarkerModel.prototype.setData = function (data) {\n    this._data = data;\n  };\n\n  MarkerModel.getMarkerModelFromSeries = function (seriesModel, componentType) {\n    return inner(seriesModel)[componentType];\n  };\n\n  MarkerModel.type = 'marker';\n  MarkerModel.dependencies = ['series', 'grid', 'polar', 'geo'];\n  return MarkerModel;\n}(ComponentModel);\n\nzrUtil.mixin(MarkerModel, DataFormatMixin.prototype);\nexport default MarkerModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport MarkerModel from './MarkerModel';\n\nvar MarkPointModel = function (_super) {\n  __extends(MarkPointModel, _super);\n\n  function MarkPointModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkPointModel.type;\n    return _this;\n  }\n\n  MarkPointModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\n    return new MarkPointModel(markerOpt, masterMarkerModel, ecModel);\n  };\n\n  MarkPointModel.type = 'markPoint';\n  MarkPointModel.defaultOption = {\n    zlevel: 0,\n    z: 5,\n    symbol: 'pin',\n    symbolSize: 50,\n    tooltip: {\n      trigger: 'item'\n    },\n    label: {\n      show: true,\n      position: 'inside'\n    },\n    itemStyle: {\n      borderWidth: 2\n    },\n    emphasis: {\n      label: {\n        show: true\n      }\n    }\n  };\n  return MarkPointModel;\n}(MarkerModel);\n\nexport default MarkPointModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as numberUtil from '../../util/number';\nimport { isDimensionStacked } from '../../data/helper/dataStackHelper';\nimport { indexOf, curry, clone, isArray } from 'zrender/lib/core/util';\n\nfunction hasXOrY(item) {\n  return !(isNaN(parseFloat(item.x)) && isNaN(parseFloat(item.y)));\n}\n\nfunction hasXAndY(item) {\n  return !isNaN(parseFloat(item.x)) && !isNaN(parseFloat(item.y));\n}\n\nfunction markerTypeCalculatorWithExtent(markerType, data, otherDataDim, targetDataDim, otherCoordIndex, targetCoordIndex) {\n  var coordArr = [];\n  var stacked = isDimensionStacked(data, targetDataDim);\n  var calcDataDim = stacked ? data.getCalculationInfo('stackResultDimension') : targetDataDim;\n  var value = numCalculate(data, calcDataDim, markerType);\n  var dataIndex = data.indicesOfNearest(calcDataDim, value)[0];\n  coordArr[otherCoordIndex] = data.get(otherDataDim, dataIndex);\n  coordArr[targetCoordIndex] = data.get(calcDataDim, dataIndex);\n  var coordArrValue = data.get(targetDataDim, dataIndex);\n  var precision = numberUtil.getPrecision(data.get(targetDataDim, dataIndex));\n  precision = Math.min(precision, 20);\n\n  if (precision >= 0) {\n    coordArr[targetCoordIndex] = +coordArr[targetCoordIndex].toFixed(precision);\n  }\n\n  return [coordArr, coordArrValue];\n}\n\nvar markerTypeCalculator = {\n  min: curry(markerTypeCalculatorWithExtent, 'min'),\n  max: curry(markerTypeCalculatorWithExtent, 'max'),\n  average: curry(markerTypeCalculatorWithExtent, 'average'),\n  median: curry(markerTypeCalculatorWithExtent, 'median')\n};\nexport function dataTransform(seriesModel, item) {\n  var data = seriesModel.getData();\n  var coordSys = seriesModel.coordinateSystem;\n\n  if (item && !hasXAndY(item) && !isArray(item.coord) && coordSys) {\n    var dims = coordSys.dimensions;\n    var axisInfo = getAxisInfo(item, data, coordSys, seriesModel);\n    item = clone(item);\n\n    if (item.type && markerTypeCalculator[item.type] && axisInfo.baseAxis && axisInfo.valueAxis) {\n      var otherCoordIndex = indexOf(dims, axisInfo.baseAxis.dim);\n      var targetCoordIndex = indexOf(dims, axisInfo.valueAxis.dim);\n      var coordInfo = markerTypeCalculator[item.type](data, axisInfo.baseDataDim, axisInfo.valueDataDim, otherCoordIndex, targetCoordIndex);\n      item.coord = coordInfo[0];\n      item.value = coordInfo[1];\n    } else {\n      var coord = [item.xAxis != null ? item.xAxis : item.radiusAxis, item.yAxis != null ? item.yAxis : item.angleAxis];\n\n      for (var i = 0; i < 2; i++) {\n        if (markerTypeCalculator[coord[i]]) {\n          coord[i] = numCalculate(data, data.mapDimension(dims[i]), coord[i]);\n        }\n      }\n\n      item.coord = coord;\n    }\n  }\n\n  return item;\n}\nexport function getAxisInfo(item, data, coordSys, seriesModel) {\n  var ret = {};\n\n  if (item.valueIndex != null || item.valueDim != null) {\n    ret.valueDataDim = item.valueIndex != null ? data.getDimension(item.valueIndex) : item.valueDim;\n    ret.valueAxis = coordSys.getAxis(dataDimToCoordDim(seriesModel, ret.valueDataDim));\n    ret.baseAxis = coordSys.getOtherAxis(ret.valueAxis);\n    ret.baseDataDim = data.mapDimension(ret.baseAxis.dim);\n  } else {\n    ret.baseAxis = seriesModel.getBaseAxis();\n    ret.valueAxis = coordSys.getOtherAxis(ret.baseAxis);\n    ret.baseDataDim = data.mapDimension(ret.baseAxis.dim);\n    ret.valueDataDim = data.mapDimension(ret.valueAxis.dim);\n  }\n\n  return ret;\n}\n\nfunction dataDimToCoordDim(seriesModel, dataDim) {\n  var data = seriesModel.getData();\n  var dimensions = data.dimensions;\n  dataDim = data.getDimension(dataDim);\n\n  for (var i = 0; i < dimensions.length; i++) {\n    var dimItem = data.getDimensionInfo(dimensions[i]);\n\n    if (dimItem.name === dataDim) {\n      return dimItem.coordDim;\n    }\n  }\n}\n\nexport function dataFilter(coordSys, item) {\n  return coordSys && coordSys.containData && item.coord && !hasXOrY(item) ? coordSys.containData(item.coord) : true;\n}\nexport function dimValueGetter(item, dimName, dataIndex, dimIndex) {\n  if (dimIndex < 2) {\n    return item.coord && item.coord[dimIndex];\n  }\n\n  return item.value;\n}\nexport function numCalculate(data, valueDataDim, type) {\n  if (type === 'average') {\n    var sum_1 = 0;\n    var count_1 = 0;\n    data.each(valueDataDim, function (val, idx) {\n      if (!isNaN(val)) {\n        sum_1 += val;\n        count_1++;\n      }\n    });\n    return sum_1 / count_1;\n  } else if (type === 'median') {\n    return data.getMedian(valueDataDim);\n  } else {\n    return data.getDataExtent(valueDataDim)[type === 'max' ? 1 : 0];\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component';\nimport { createHashMap, each } from 'zrender/lib/core/util';\nimport MarkerModel from './MarkerModel';\nimport { makeInner } from '../../util/model';\nimport { enterBlur } from '../../util/states';\nvar inner = makeInner();\n\nvar MarkerView = function (_super) {\n  __extends(MarkerView, _super);\n\n  function MarkerView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkerView.type;\n    return _this;\n  }\n\n  MarkerView.prototype.init = function () {\n    this.markerGroupMap = createHashMap();\n  };\n\n  MarkerView.prototype.render = function (markerModel, ecModel, api) {\n    var _this = this;\n\n    var markerGroupMap = this.markerGroupMap;\n    markerGroupMap.each(function (item) {\n      inner(item).keep = false;\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      var markerModel = MarkerModel.getMarkerModelFromSeries(seriesModel, _this.type);\n      markerModel && _this.renderSeries(seriesModel, markerModel, ecModel, api);\n    });\n    markerGroupMap.each(function (item) {\n      !inner(item).keep && _this.group.remove(item.group);\n    });\n  };\n\n  MarkerView.prototype.markKeep = function (drawGroup) {\n    inner(drawGroup).keep = true;\n  };\n\n  MarkerView.prototype.blurSeries = function (seriesModelList) {\n    var _this = this;\n\n    each(seriesModelList, function (seriesModel) {\n      var markerModel = MarkerModel.getMarkerModelFromSeries(seriesModel, _this.type);\n\n      if (markerModel) {\n        var data = markerModel.getData();\n        data.eachItemGraphicEl(function (el) {\n          if (el) {\n            enterBlur(el);\n          }\n        });\n      }\n    });\n  };\n\n  MarkerView.type = 'marker';\n  return MarkerView;\n}(ComponentView);\n\nexport default MarkerView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SymbolDraw from '../../chart/helper/SymbolDraw';\nimport * as numberUtil from '../../util/number';\nimport List from '../../data/List';\nimport * as markerHelper from './markerHelper';\nimport MarkerView from './MarkerView';\nimport MarkerModel from './MarkerModel';\nimport { isFunction, map, defaults, filter, curry } from 'zrender/lib/core/util';\nimport { getECData } from '../../util/innerStore';\nimport { getVisualFromData } from '../../visual/helper';\n\nfunction updateMarkerLayout(mpData, seriesModel, api) {\n  var coordSys = seriesModel.coordinateSystem;\n  mpData.each(function (idx) {\n    var itemModel = mpData.getItemModel(idx);\n    var point;\n    var xPx = numberUtil.parsePercent(itemModel.get('x'), api.getWidth());\n    var yPx = numberUtil.parsePercent(itemModel.get('y'), api.getHeight());\n\n    if (!isNaN(xPx) && !isNaN(yPx)) {\n      point = [xPx, yPx];\n    } else if (seriesModel.getMarkerPosition) {\n      point = seriesModel.getMarkerPosition(mpData.getValues(mpData.dimensions, idx));\n    } else if (coordSys) {\n      var x = mpData.get(coordSys.dimensions[0], idx);\n      var y = mpData.get(coordSys.dimensions[1], idx);\n      point = coordSys.dataToPoint([x, y]);\n    }\n\n    if (!isNaN(xPx)) {\n      point[0] = xPx;\n    }\n\n    if (!isNaN(yPx)) {\n      point[1] = yPx;\n    }\n\n    mpData.setItemLayout(idx, point);\n  });\n}\n\nvar MarkPointView = function (_super) {\n  __extends(MarkPointView, _super);\n\n  function MarkPointView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkPointView.type;\n    return _this;\n  }\n\n  MarkPointView.prototype.updateTransform = function (markPointModel, ecModel, api) {\n    ecModel.eachSeries(function (seriesModel) {\n      var mpModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markPoint');\n\n      if (mpModel) {\n        updateMarkerLayout(mpModel.getData(), seriesModel, api);\n        this.markerGroupMap.get(seriesModel.id).updateLayout();\n      }\n    }, this);\n  };\n\n  MarkPointView.prototype.renderSeries = function (seriesModel, mpModel, ecModel, api) {\n    var coordSys = seriesModel.coordinateSystem;\n    var seriesId = seriesModel.id;\n    var seriesData = seriesModel.getData();\n    var symbolDrawMap = this.markerGroupMap;\n    var symbolDraw = symbolDrawMap.get(seriesId) || symbolDrawMap.set(seriesId, new SymbolDraw());\n    var mpData = createList(coordSys, seriesModel, mpModel);\n    mpModel.setData(mpData);\n    updateMarkerLayout(mpModel.getData(), seriesModel, api);\n    mpData.each(function (idx) {\n      var itemModel = mpData.getItemModel(idx);\n      var symbol = itemModel.getShallow('symbol');\n      var symbolSize = itemModel.getShallow('symbolSize');\n      var symbolRotate = itemModel.getShallow('symbolRotate');\n\n      if (isFunction(symbol) || isFunction(symbolSize) || isFunction(symbolRotate)) {\n        var rawIdx = mpModel.getRawValue(idx);\n        var dataParams = mpModel.getDataParams(idx);\n\n        if (isFunction(symbol)) {\n          symbol = symbol(rawIdx, dataParams);\n        }\n\n        if (isFunction(symbolSize)) {\n          symbolSize = symbolSize(rawIdx, dataParams);\n        }\n\n        if (isFunction(symbolRotate)) {\n          symbolRotate = symbolRotate(rawIdx, dataParams);\n        }\n      }\n\n      var style = itemModel.getModel('itemStyle').getItemStyle();\n      var color = getVisualFromData(seriesData, 'color');\n\n      if (!style.fill) {\n        style.fill = color;\n      }\n\n      mpData.setItemVisual(idx, {\n        symbol: symbol,\n        symbolSize: symbolSize,\n        symbolRotate: symbolRotate,\n        style: style\n      });\n    });\n    symbolDraw.updateData(mpData);\n    this.group.add(symbolDraw.group);\n    mpData.eachItemGraphicEl(function (el) {\n      el.traverse(function (child) {\n        getECData(child).dataModel = mpModel;\n      });\n    });\n    this.markKeep(symbolDraw);\n    symbolDraw.group.silent = mpModel.get('silent') || seriesModel.get('silent');\n  };\n\n  MarkPointView.type = 'markPoint';\n  return MarkPointView;\n}(MarkerView);\n\nfunction createList(coordSys, seriesModel, mpModel) {\n  var coordDimsInfos;\n\n  if (coordSys) {\n    coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\n      var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {};\n      return defaults({\n        name: coordDim\n      }, info);\n    });\n  } else {\n    coordDimsInfos = [{\n      name: 'value',\n      type: 'float'\n    }];\n  }\n\n  var mpData = new List(coordDimsInfos, mpModel);\n  var dataOpt = map(mpModel.get('data'), curry(markerHelper.dataTransform, seriesModel));\n\n  if (coordSys) {\n    dataOpt = filter(dataOpt, curry(markerHelper.dataFilter, coordSys));\n  }\n\n  mpData.initData(dataOpt, null, coordSys ? markerHelper.dimValueGetter : function (item) {\n    return item.value;\n  });\n  return mpData;\n}\n\nexport default MarkPointView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport MarkPointModel from './MarkPointModel';\nimport MarkPointView from './MarkPointView';\nexport function install(registers) {\n  registers.registerComponentModel(MarkPointModel);\n  registers.registerComponentView(MarkPointView);\n  registers.registerPreprocessor(function (opt) {\n    opt.markPoint = opt.markPoint || {};\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport MarkerModel from './MarkerModel';\n\nvar MarkLineModel = function (_super) {\n  __extends(MarkLineModel, _super);\n\n  function MarkLineModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkLineModel.type;\n    return _this;\n  }\n\n  MarkLineModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\n    return new MarkLineModel(markerOpt, masterMarkerModel, ecModel);\n  };\n\n  MarkLineModel.type = 'markLine';\n  MarkLineModel.defaultOption = {\n    zlevel: 0,\n    z: 5,\n    symbol: ['circle', 'arrow'],\n    symbolSize: [8, 16],\n    precision: 2,\n    tooltip: {\n      trigger: 'item'\n    },\n    label: {\n      show: true,\n      position: 'end',\n      distance: 5\n    },\n    lineStyle: {\n      type: 'dashed'\n    },\n    emphasis: {\n      label: {\n        show: true\n      },\n      lineStyle: {\n        width: 3\n      }\n    },\n    animationEasing: 'linear'\n  };\n  return MarkLineModel;\n}(MarkerModel);\n\nexport default MarkLineModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport List from '../../data/List';\nimport * as numberUtil from '../../util/number';\nimport * as markerHelper from './markerHelper';\nimport LineDraw from '../../chart/helper/LineDraw';\nimport MarkerView from './MarkerView';\nimport { getStackedDimension } from '../../data/helper/dataStackHelper';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport { getECData } from '../../util/innerStore';\nimport MarkerModel from './MarkerModel';\nimport { isArray, retrieve, clone, extend, logError, merge, map, defaults, curry, filter } from 'zrender/lib/core/util';\nimport { makeInner } from '../../util/model';\nimport { getVisualFromData } from '../../visual/helper';\nvar inner = makeInner();\n\nvar markLineTransform = function (seriesModel, coordSys, mlModel, item) {\n  var data = seriesModel.getData();\n  var itemArray;\n\n  if (!isArray(item)) {\n    var mlType = item.type;\n\n    if (mlType === 'min' || mlType === 'max' || mlType === 'average' || mlType === 'median' || item.xAxis != null || item.yAxis != null) {\n      var valueAxis = void 0;\n      var value = void 0;\n\n      if (item.yAxis != null || item.xAxis != null) {\n        valueAxis = coordSys.getAxis(item.yAxis != null ? 'y' : 'x');\n        value = retrieve(item.yAxis, item.xAxis);\n      } else {\n        var axisInfo = markerHelper.getAxisInfo(item, data, coordSys, seriesModel);\n        valueAxis = axisInfo.valueAxis;\n        var valueDataDim = getStackedDimension(data, axisInfo.valueDataDim);\n        value = markerHelper.numCalculate(data, valueDataDim, mlType);\n      }\n\n      var valueIndex = valueAxis.dim === 'x' ? 0 : 1;\n      var baseIndex = 1 - valueIndex;\n      var mlFrom = clone(item);\n      var mlTo = {\n        coord: []\n      };\n      mlFrom.type = null;\n      mlFrom.coord = [];\n      mlFrom.coord[baseIndex] = -Infinity;\n      mlTo.coord[baseIndex] = Infinity;\n      var precision = mlModel.get('precision');\n\n      if (precision >= 0 && typeof value === 'number') {\n        value = +value.toFixed(Math.min(precision, 20));\n      }\n\n      mlFrom.coord[valueIndex] = mlTo.coord[valueIndex] = value;\n      itemArray = [mlFrom, mlTo, {\n        type: mlType,\n        valueIndex: item.valueIndex,\n        value: value\n      }];\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        logError('Invalid markLine data.');\n      }\n\n      itemArray = [];\n    }\n  } else {\n    itemArray = item;\n  }\n\n  var normalizedItem = [markerHelper.dataTransform(seriesModel, itemArray[0]), markerHelper.dataTransform(seriesModel, itemArray[1]), extend({}, itemArray[2])];\n  normalizedItem[2].type = normalizedItem[2].type || null;\n  merge(normalizedItem[2], normalizedItem[0]);\n  merge(normalizedItem[2], normalizedItem[1]);\n  return normalizedItem;\n};\n\nfunction isInifinity(val) {\n  return !isNaN(val) && !isFinite(val);\n}\n\nfunction ifMarkLineHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\n  var otherDimIndex = 1 - dimIndex;\n  var dimName = coordSys.dimensions[dimIndex];\n  return isInifinity(fromCoord[otherDimIndex]) && isInifinity(toCoord[otherDimIndex]) && fromCoord[dimIndex] === toCoord[dimIndex] && coordSys.getAxis(dimName).containData(fromCoord[dimIndex]);\n}\n\nfunction markLineFilter(coordSys, item) {\n  if (coordSys.type === 'cartesian2d') {\n    var fromCoord = item[0].coord;\n    var toCoord = item[1].coord;\n\n    if (fromCoord && toCoord && (ifMarkLineHasOnlyDim(1, fromCoord, toCoord, coordSys) || ifMarkLineHasOnlyDim(0, fromCoord, toCoord, coordSys))) {\n      return true;\n    }\n  }\n\n  return markerHelper.dataFilter(coordSys, item[0]) && markerHelper.dataFilter(coordSys, item[1]);\n}\n\nfunction updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api) {\n  var coordSys = seriesModel.coordinateSystem;\n  var itemModel = data.getItemModel(idx);\n  var point;\n  var xPx = numberUtil.parsePercent(itemModel.get('x'), api.getWidth());\n  var yPx = numberUtil.parsePercent(itemModel.get('y'), api.getHeight());\n\n  if (!isNaN(xPx) && !isNaN(yPx)) {\n    point = [xPx, yPx];\n  } else {\n    if (seriesModel.getMarkerPosition) {\n      point = seriesModel.getMarkerPosition(data.getValues(data.dimensions, idx));\n    } else {\n      var dims = coordSys.dimensions;\n      var x = data.get(dims[0], idx);\n      var y = data.get(dims[1], idx);\n      point = coordSys.dataToPoint([x, y]);\n    }\n\n    if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n      var xAxis = coordSys.getAxis('x');\n      var yAxis = coordSys.getAxis('y');\n      var dims = coordSys.dimensions;\n\n      if (isInifinity(data.get(dims[0], idx))) {\n        point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[isFrom ? 0 : 1]);\n      } else if (isInifinity(data.get(dims[1], idx))) {\n        point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[isFrom ? 0 : 1]);\n      }\n    }\n\n    if (!isNaN(xPx)) {\n      point[0] = xPx;\n    }\n\n    if (!isNaN(yPx)) {\n      point[1] = yPx;\n    }\n  }\n\n  data.setItemLayout(idx, point);\n}\n\nvar MarkLineView = function (_super) {\n  __extends(MarkLineView, _super);\n\n  function MarkLineView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkLineView.type;\n    return _this;\n  }\n\n  MarkLineView.prototype.updateTransform = function (markLineModel, ecModel, api) {\n    ecModel.eachSeries(function (seriesModel) {\n      var mlModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markLine');\n\n      if (mlModel) {\n        var mlData_1 = mlModel.getData();\n        var fromData_1 = inner(mlModel).from;\n        var toData_1 = inner(mlModel).to;\n        fromData_1.each(function (idx) {\n          updateSingleMarkerEndLayout(fromData_1, idx, true, seriesModel, api);\n          updateSingleMarkerEndLayout(toData_1, idx, false, seriesModel, api);\n        });\n        mlData_1.each(function (idx) {\n          mlData_1.setItemLayout(idx, [fromData_1.getItemLayout(idx), toData_1.getItemLayout(idx)]);\n        });\n        this.markerGroupMap.get(seriesModel.id).updateLayout();\n      }\n    }, this);\n  };\n\n  MarkLineView.prototype.renderSeries = function (seriesModel, mlModel, ecModel, api) {\n    var coordSys = seriesModel.coordinateSystem;\n    var seriesId = seriesModel.id;\n    var seriesData = seriesModel.getData();\n    var lineDrawMap = this.markerGroupMap;\n    var lineDraw = lineDrawMap.get(seriesId) || lineDrawMap.set(seriesId, new LineDraw());\n    this.group.add(lineDraw.group);\n    var mlData = createList(coordSys, seriesModel, mlModel);\n    var fromData = mlData.from;\n    var toData = mlData.to;\n    var lineData = mlData.line;\n    inner(mlModel).from = fromData;\n    inner(mlModel).to = toData;\n    mlModel.setData(lineData);\n    var symbolType = mlModel.get('symbol');\n    var symbolSize = mlModel.get('symbolSize');\n\n    if (!isArray(symbolType)) {\n      symbolType = [symbolType, symbolType];\n    }\n\n    if (!isArray(symbolSize)) {\n      symbolSize = [symbolSize, symbolSize];\n    }\n\n    mlData.from.each(function (idx) {\n      updateDataVisualAndLayout(fromData, idx, true);\n      updateDataVisualAndLayout(toData, idx, false);\n    });\n    lineData.each(function (idx) {\n      var lineStyle = lineData.getItemModel(idx).getModel('lineStyle').getLineStyle();\n      lineData.setItemLayout(idx, [fromData.getItemLayout(idx), toData.getItemLayout(idx)]);\n\n      if (lineStyle.stroke == null) {\n        lineStyle.stroke = fromData.getItemVisual(idx, 'style').fill;\n      }\n\n      lineData.setItemVisual(idx, {\n        fromSymbolRotate: fromData.getItemVisual(idx, 'symbolRotate'),\n        fromSymbolSize: fromData.getItemVisual(idx, 'symbolSize'),\n        fromSymbol: fromData.getItemVisual(idx, 'symbol'),\n        toSymbolRotate: toData.getItemVisual(idx, 'symbolRotate'),\n        toSymbolSize: toData.getItemVisual(idx, 'symbolSize'),\n        toSymbol: toData.getItemVisual(idx, 'symbol'),\n        style: lineStyle\n      });\n    });\n    lineDraw.updateData(lineData);\n    mlData.line.eachItemGraphicEl(function (el, idx) {\n      el.traverse(function (child) {\n        getECData(child).dataModel = mlModel;\n      });\n    });\n\n    function updateDataVisualAndLayout(data, idx, isFrom) {\n      var itemModel = data.getItemModel(idx);\n      updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api);\n      var style = itemModel.getModel('itemStyle').getItemStyle();\n\n      if (style.fill == null) {\n        style.fill = getVisualFromData(seriesData, 'color');\n      }\n\n      data.setItemVisual(idx, {\n        symbolRotate: itemModel.get('symbolRotate'),\n        symbolSize: itemModel.get('symbolSize') || symbolSize[isFrom ? 0 : 1],\n        symbol: itemModel.get('symbol', true) || symbolType[isFrom ? 0 : 1],\n        style: style\n      });\n    }\n\n    this.markKeep(lineDraw);\n    lineDraw.group.silent = mlModel.get('silent') || seriesModel.get('silent');\n  };\n\n  MarkLineView.type = 'markLine';\n  return MarkLineView;\n}(MarkerView);\n\nfunction createList(coordSys, seriesModel, mlModel) {\n  var coordDimsInfos;\n\n  if (coordSys) {\n    coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\n      var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {};\n      return defaults({\n        name: coordDim\n      }, info);\n    });\n  } else {\n    coordDimsInfos = [{\n      name: 'value',\n      type: 'float'\n    }];\n  }\n\n  var fromData = new List(coordDimsInfos, mlModel);\n  var toData = new List(coordDimsInfos, mlModel);\n  var lineData = new List([], mlModel);\n  var optData = map(mlModel.get('data'), curry(markLineTransform, seriesModel, coordSys, mlModel));\n\n  if (coordSys) {\n    optData = filter(optData, curry(markLineFilter, coordSys));\n  }\n\n  var dimValueGetter = coordSys ? markerHelper.dimValueGetter : function (item) {\n    return item.value;\n  };\n  fromData.initData(map(optData, function (item) {\n    return item[0];\n  }), null, dimValueGetter);\n  toData.initData(map(optData, function (item) {\n    return item[1];\n  }), null, dimValueGetter);\n  lineData.initData(map(optData, function (item) {\n    return item[2];\n  }));\n  lineData.hasItemOption = true;\n  return {\n    from: fromData,\n    to: toData,\n    line: lineData\n  };\n}\n\nexport default MarkLineView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport MarkLineModel from './MarkLineModel';\nimport MarkLineView from './MarkLineView';\nexport function install(registers) {\n  registers.registerComponentModel(MarkLineModel);\n  registers.registerComponentView(MarkLineView);\n  registers.registerPreprocessor(function (opt) {\n    opt.markLine = opt.markLine || {};\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport MarkerModel from './MarkerModel';\n\nvar MarkAreaModel = function (_super) {\n  __extends(MarkAreaModel, _super);\n\n  function MarkAreaModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkAreaModel.type;\n    return _this;\n  }\n\n  MarkAreaModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\n    return new MarkAreaModel(markerOpt, masterMarkerModel, ecModel);\n  };\n\n  MarkAreaModel.type = 'markArea';\n  MarkAreaModel.defaultOption = {\n    zlevel: 0,\n    z: 1,\n    tooltip: {\n      trigger: 'item'\n    },\n    animation: false,\n    label: {\n      show: true,\n      position: 'top'\n    },\n    itemStyle: {\n      borderWidth: 0\n    },\n    emphasis: {\n      label: {\n        show: true,\n        position: 'top'\n      }\n    }\n  };\n  return MarkAreaModel;\n}(MarkerModel);\n\nexport default MarkAreaModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as colorUtil from 'zrender/lib/tool/color';\nimport List from '../../data/List';\nimport * as numberUtil from '../../util/number';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis, setStatesStylesFromModel } from '../../util/states';\nimport * as markerHelper from './markerHelper';\nimport MarkerView from './MarkerView';\nimport { retrieve, mergeAll, map, defaults, curry, filter, each } from 'zrender/lib/core/util';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport MarkerModel from './MarkerModel';\nimport { makeInner } from '../../util/model';\nimport { getVisualFromData } from '../../visual/helper';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { getECData } from '../../util/innerStore';\nvar inner = makeInner();\n\nvar markAreaTransform = function (seriesModel, coordSys, maModel, item) {\n  var lt = markerHelper.dataTransform(seriesModel, item[0]);\n  var rb = markerHelper.dataTransform(seriesModel, item[1]);\n  var ltCoord = lt.coord;\n  var rbCoord = rb.coord;\n  ltCoord[0] = retrieve(ltCoord[0], -Infinity);\n  ltCoord[1] = retrieve(ltCoord[1], -Infinity);\n  rbCoord[0] = retrieve(rbCoord[0], Infinity);\n  rbCoord[1] = retrieve(rbCoord[1], Infinity);\n  var result = mergeAll([{}, lt, rb]);\n  result.coord = [lt.coord, rb.coord];\n  result.x0 = lt.x;\n  result.y0 = lt.y;\n  result.x1 = rb.x;\n  result.y1 = rb.y;\n  return result;\n};\n\nfunction isInifinity(val) {\n  return !isNaN(val) && !isFinite(val);\n}\n\nfunction ifMarkAreaHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\n  var otherDimIndex = 1 - dimIndex;\n  return isInifinity(fromCoord[otherDimIndex]) && isInifinity(toCoord[otherDimIndex]);\n}\n\nfunction markAreaFilter(coordSys, item) {\n  var fromCoord = item.coord[0];\n  var toCoord = item.coord[1];\n\n  if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n    if (fromCoord && toCoord && (ifMarkAreaHasOnlyDim(1, fromCoord, toCoord, coordSys) || ifMarkAreaHasOnlyDim(0, fromCoord, toCoord, coordSys))) {\n      return true;\n    }\n  }\n\n  return markerHelper.dataFilter(coordSys, {\n    coord: fromCoord,\n    x: item.x0,\n    y: item.y0\n  }) || markerHelper.dataFilter(coordSys, {\n    coord: toCoord,\n    x: item.x1,\n    y: item.y1\n  });\n}\n\nfunction getSingleMarkerEndPoint(data, idx, dims, seriesModel, api) {\n  var coordSys = seriesModel.coordinateSystem;\n  var itemModel = data.getItemModel(idx);\n  var point;\n  var xPx = numberUtil.parsePercent(itemModel.get(dims[0]), api.getWidth());\n  var yPx = numberUtil.parsePercent(itemModel.get(dims[1]), api.getHeight());\n\n  if (!isNaN(xPx) && !isNaN(yPx)) {\n    point = [xPx, yPx];\n  } else {\n    if (seriesModel.getMarkerPosition) {\n      point = seriesModel.getMarkerPosition(data.getValues(dims, idx));\n    } else {\n      var x = data.get(dims[0], idx);\n      var y = data.get(dims[1], idx);\n      var pt = [x, y];\n      coordSys.clampData && coordSys.clampData(pt, pt);\n      point = coordSys.dataToPoint(pt, true);\n    }\n\n    if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n      var xAxis = coordSys.getAxis('x');\n      var yAxis = coordSys.getAxis('y');\n      var x = data.get(dims[0], idx);\n      var y = data.get(dims[1], idx);\n\n      if (isInifinity(x)) {\n        point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[dims[0] === 'x0' ? 0 : 1]);\n      } else if (isInifinity(y)) {\n        point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[dims[1] === 'y0' ? 0 : 1]);\n      }\n    }\n\n    if (!isNaN(xPx)) {\n      point[0] = xPx;\n    }\n\n    if (!isNaN(yPx)) {\n      point[1] = yPx;\n    }\n  }\n\n  return point;\n}\n\nvar dimPermutations = [['x0', 'y0'], ['x1', 'y0'], ['x1', 'y1'], ['x0', 'y1']];\n\nvar MarkAreaView = function (_super) {\n  __extends(MarkAreaView, _super);\n\n  function MarkAreaView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkAreaView.type;\n    return _this;\n  }\n\n  MarkAreaView.prototype.updateTransform = function (markAreaModel, ecModel, api) {\n    ecModel.eachSeries(function (seriesModel) {\n      var maModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markArea');\n\n      if (maModel) {\n        var areaData_1 = maModel.getData();\n        areaData_1.each(function (idx) {\n          var points = map(dimPermutations, function (dim) {\n            return getSingleMarkerEndPoint(areaData_1, idx, dim, seriesModel, api);\n          });\n          areaData_1.setItemLayout(idx, points);\n          var el = areaData_1.getItemGraphicEl(idx);\n          el.setShape('points', points);\n        });\n      }\n    }, this);\n  };\n\n  MarkAreaView.prototype.renderSeries = function (seriesModel, maModel, ecModel, api) {\n    var coordSys = seriesModel.coordinateSystem;\n    var seriesId = seriesModel.id;\n    var seriesData = seriesModel.getData();\n    var areaGroupMap = this.markerGroupMap;\n    var polygonGroup = areaGroupMap.get(seriesId) || areaGroupMap.set(seriesId, {\n      group: new graphic.Group()\n    });\n    this.group.add(polygonGroup.group);\n    this.markKeep(polygonGroup);\n    var areaData = createList(coordSys, seriesModel, maModel);\n    maModel.setData(areaData);\n    areaData.each(function (idx) {\n      var points = map(dimPermutations, function (dim) {\n        return getSingleMarkerEndPoint(areaData, idx, dim, seriesModel, api);\n      });\n      var allClipped = true;\n      each(dimPermutations, function (dim) {\n        if (!allClipped) {\n          return;\n        }\n\n        var xValue = areaData.get(dim[0], idx);\n        var yValue = areaData.get(dim[1], idx);\n\n        if ((isInifinity(xValue) || coordSys.getAxis('x').containData(xValue)) && (isInifinity(yValue) || coordSys.getAxis('y').containData(yValue))) {\n          allClipped = false;\n        }\n      });\n      areaData.setItemLayout(idx, {\n        points: points,\n        allClipped: allClipped\n      });\n      var style = areaData.getItemModel(idx).getModel('itemStyle').getItemStyle();\n      var color = getVisualFromData(seriesData, 'color');\n\n      if (!style.fill) {\n        style.fill = color;\n\n        if (typeof style.fill === 'string') {\n          style.fill = colorUtil.modifyAlpha(style.fill, 0.4);\n        }\n      }\n\n      if (!style.stroke) {\n        style.stroke = color;\n      }\n\n      areaData.setItemVisual(idx, 'style', style);\n    });\n    areaData.diff(inner(polygonGroup).data).add(function (idx) {\n      var layout = areaData.getItemLayout(idx);\n\n      if (!layout.allClipped) {\n        var polygon = new graphic.Polygon({\n          shape: {\n            points: layout.points\n          }\n        });\n        areaData.setItemGraphicEl(idx, polygon);\n        polygonGroup.group.add(polygon);\n      }\n    }).update(function (newIdx, oldIdx) {\n      var polygon = inner(polygonGroup).data.getItemGraphicEl(oldIdx);\n      var layout = areaData.getItemLayout(newIdx);\n\n      if (!layout.allClipped) {\n        if (polygon) {\n          graphic.updateProps(polygon, {\n            shape: {\n              points: layout.points\n            }\n          }, maModel, newIdx);\n        } else {\n          polygon = new graphic.Polygon({\n            shape: {\n              points: layout.points\n            }\n          });\n        }\n\n        areaData.setItemGraphicEl(newIdx, polygon);\n        polygonGroup.group.add(polygon);\n      } else if (polygon) {\n        polygonGroup.group.remove(polygon);\n      }\n    }).remove(function (idx) {\n      var polygon = inner(polygonGroup).data.getItemGraphicEl(idx);\n      polygonGroup.group.remove(polygon);\n    }).execute();\n    areaData.eachItemGraphicEl(function (polygon, idx) {\n      var itemModel = areaData.getItemModel(idx);\n      var style = areaData.getItemVisual(idx, 'style');\n      polygon.useStyle(areaData.getItemVisual(idx, 'style'));\n      setLabelStyle(polygon, getLabelStatesModels(itemModel), {\n        labelFetcher: maModel,\n        labelDataIndex: idx,\n        defaultText: areaData.getName(idx) || '',\n        inheritColor: typeof style.fill === 'string' ? colorUtil.modifyAlpha(style.fill, 1) : '#000'\n      });\n      setStatesStylesFromModel(polygon, itemModel);\n      enableHoverEmphasis(polygon);\n      getECData(polygon).dataModel = maModel;\n    });\n    inner(polygonGroup).data = areaData;\n    polygonGroup.group.silent = maModel.get('silent') || seriesModel.get('silent');\n  };\n\n  MarkAreaView.type = 'markArea';\n  return MarkAreaView;\n}(MarkerView);\n\nfunction createList(coordSys, seriesModel, maModel) {\n  var coordDimsInfos;\n  var areaData;\n  var dims = ['x0', 'y0', 'x1', 'y1'];\n\n  if (coordSys) {\n    coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\n      var data = seriesModel.getData();\n      var info = data.getDimensionInfo(data.mapDimension(coordDim)) || {};\n      return defaults({\n        name: coordDim\n      }, info);\n    });\n    areaData = new List(map(dims, function (dim, idx) {\n      return {\n        name: dim,\n        type: coordDimsInfos[idx % 2].type\n      };\n    }), maModel);\n  } else {\n    coordDimsInfos = [{\n      name: 'value',\n      type: 'float'\n    }];\n    areaData = new List(coordDimsInfos, maModel);\n  }\n\n  var optData = map(maModel.get('data'), curry(markAreaTransform, seriesModel, coordSys, maModel));\n\n  if (coordSys) {\n    optData = filter(optData, curry(markAreaFilter, coordSys));\n  }\n\n  var dimValueGetter = coordSys ? function (item, dimName, dataIndex, dimIndex) {\n    return item.coord[Math.floor(dimIndex / 2)][dimIndex % 2];\n  } : function (item) {\n    return item.value;\n  };\n  areaData.initData(optData, null, dimValueGetter);\n  areaData.hasItemOption = true;\n  return areaData;\n}\n\nexport default MarkAreaView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport MarkAreaModel from './MarkAreaModel';\nimport MarkAreaView from './MarkAreaView';\nexport function install(registers) {\n  registers.registerComponentModel(MarkAreaModel);\n  registers.registerComponentView(MarkAreaView);\n  registers.registerPreprocessor(function (opt) {\n    opt.markArea = opt.markArea || {};\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Model from '../../model/Model';\nimport { isNameSpecified } from '../../util/model';\nimport ComponentModel from '../../model/Component';\n\nvar getDefaultSelectorOptions = function (ecModel, type) {\n  if (type === 'all') {\n    return {\n      type: 'all',\n      title: ecModel.getLocale(['legend', 'selector', 'all'])\n    };\n  } else if (type === 'inverse') {\n    return {\n      type: 'inverse',\n      title: ecModel.getLocale(['legend', 'selector', 'inverse'])\n    };\n  }\n};\n\nvar LegendModel = function (_super) {\n  __extends(LegendModel, _super);\n\n  function LegendModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = LegendModel.type;\n    _this.layoutMode = {\n      type: 'box',\n      ignoreSize: true\n    };\n    return _this;\n  }\n\n  LegendModel.prototype.init = function (option, parentModel, ecModel) {\n    this.mergeDefaultAndTheme(option, ecModel);\n    option.selected = option.selected || {};\n\n    this._updateSelector(option);\n  };\n\n  LegendModel.prototype.mergeOption = function (option, ecModel) {\n    _super.prototype.mergeOption.call(this, option, ecModel);\n\n    this._updateSelector(option);\n  };\n\n  LegendModel.prototype._updateSelector = function (option) {\n    var selector = option.selector;\n    var ecModel = this.ecModel;\n\n    if (selector === true) {\n      selector = option.selector = ['all', 'inverse'];\n    }\n\n    if (zrUtil.isArray(selector)) {\n      zrUtil.each(selector, function (item, index) {\n        zrUtil.isString(item) && (item = {\n          type: item\n        });\n        selector[index] = zrUtil.merge(item, getDefaultSelectorOptions(ecModel, item.type));\n      });\n    }\n  };\n\n  LegendModel.prototype.optionUpdated = function () {\n    this._updateData(this.ecModel);\n\n    var legendData = this._data;\n\n    if (legendData[0] && this.get('selectedMode') === 'single') {\n      var hasSelected = false;\n\n      for (var i = 0; i < legendData.length; i++) {\n        var name_1 = legendData[i].get('name');\n\n        if (this.isSelected(name_1)) {\n          this.select(name_1);\n          hasSelected = true;\n          break;\n        }\n      }\n\n      !hasSelected && this.select(legendData[0].get('name'));\n    }\n  };\n\n  LegendModel.prototype._updateData = function (ecModel) {\n    var potentialData = [];\n    var availableNames = [];\n    ecModel.eachRawSeries(function (seriesModel) {\n      var seriesName = seriesModel.name;\n      availableNames.push(seriesName);\n      var isPotential;\n\n      if (seriesModel.legendVisualProvider) {\n        var provider = seriesModel.legendVisualProvider;\n        var names = provider.getAllNames();\n\n        if (!ecModel.isSeriesFiltered(seriesModel)) {\n          availableNames = availableNames.concat(names);\n        }\n\n        if (names.length) {\n          potentialData = potentialData.concat(names);\n        } else {\n          isPotential = true;\n        }\n      } else {\n        isPotential = true;\n      }\n\n      if (isPotential && isNameSpecified(seriesModel)) {\n        potentialData.push(seriesModel.name);\n      }\n    });\n    this._availableNames = availableNames;\n    var rawData = this.get('data') || potentialData;\n    var legendData = zrUtil.map(rawData, function (dataItem) {\n      if (typeof dataItem === 'string' || typeof dataItem === 'number') {\n        dataItem = {\n          name: dataItem\n        };\n      }\n\n      return new Model(dataItem, this, this.ecModel);\n    }, this);\n    this._data = legendData;\n  };\n\n  LegendModel.prototype.getData = function () {\n    return this._data;\n  };\n\n  LegendModel.prototype.select = function (name) {\n    var selected = this.option.selected;\n    var selectedMode = this.get('selectedMode');\n\n    if (selectedMode === 'single') {\n      var data = this._data;\n      zrUtil.each(data, function (dataItem) {\n        selected[dataItem.get('name')] = false;\n      });\n    }\n\n    selected[name] = true;\n  };\n\n  LegendModel.prototype.unSelect = function (name) {\n    if (this.get('selectedMode') !== 'single') {\n      this.option.selected[name] = false;\n    }\n  };\n\n  LegendModel.prototype.toggleSelected = function (name) {\n    var selected = this.option.selected;\n\n    if (!selected.hasOwnProperty(name)) {\n      selected[name] = true;\n    }\n\n    this[selected[name] ? 'unSelect' : 'select'](name);\n  };\n\n  LegendModel.prototype.allSelect = function () {\n    var data = this._data;\n    var selected = this.option.selected;\n    zrUtil.each(data, function (dataItem) {\n      selected[dataItem.get('name', true)] = true;\n    });\n  };\n\n  LegendModel.prototype.inverseSelect = function () {\n    var data = this._data;\n    var selected = this.option.selected;\n    zrUtil.each(data, function (dataItem) {\n      var name = dataItem.get('name', true);\n\n      if (!selected.hasOwnProperty(name)) {\n        selected[name] = true;\n      }\n\n      selected[name] = !selected[name];\n    });\n  };\n\n  LegendModel.prototype.isSelected = function (name) {\n    var selected = this.option.selected;\n    return !(selected.hasOwnProperty(name) && !selected[name]) && zrUtil.indexOf(this._availableNames, name) >= 0;\n  };\n\n  LegendModel.prototype.getOrient = function () {\n    return this.get('orient') === 'vertical' ? {\n      index: 1,\n      name: 'vertical'\n    } : {\n      index: 0,\n      name: 'horizontal'\n    };\n  };\n\n  LegendModel.type = 'legend.plain';\n  LegendModel.dependencies = ['series'];\n  LegendModel.defaultOption = {\n    zlevel: 0,\n    z: 4,\n    show: true,\n    orient: 'horizontal',\n    left: 'center',\n    top: 0,\n    align: 'auto',\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderColor: '#ccc',\n    borderRadius: 0,\n    borderWidth: 0,\n    padding: 5,\n    itemGap: 10,\n    itemWidth: 25,\n    itemHeight: 14,\n    inactiveColor: '#ccc',\n    inactiveBorderColor: '#ccc',\n    itemStyle: {\n      borderWidth: 0\n    },\n    textStyle: {\n      color: '#333'\n    },\n    selectedMode: true,\n    selector: false,\n    selectorLabel: {\n      show: true,\n      borderRadius: 10,\n      padding: [3, 5, 3, 5],\n      fontSize: 12,\n      fontFamily: ' sans-serif',\n      color: '#666',\n      borderWidth: 1,\n      borderColor: '#666'\n    },\n    emphasis: {\n      selectorLabel: {\n        show: true,\n        color: '#eee',\n        backgroundColor: '#666'\n      }\n    },\n    selectorPosition: 'auto',\n    selectorItemGap: 7,\n    selectorButtonGap: 10,\n    tooltip: {\n      show: false\n    }\n  };\n  return LegendModel;\n}(ComponentModel);\n\nexport default LegendModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { createSymbol } from '../../util/symbol';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis } from '../../util/states';\nimport { setLabelStyle, createTextStyle } from '../../label/labelStyle';\nimport { makeBackground } from '../helper/listComponent';\nimport * as layoutUtil from '../../util/layout';\nimport ComponentView from '../../view/Component';\nimport { parse, stringify } from 'zrender/lib/tool/color';\nvar curry = zrUtil.curry;\nvar each = zrUtil.each;\nvar Group = graphic.Group;\n\nvar LegendView = function (_super) {\n  __extends(LegendView, _super);\n\n  function LegendView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = LegendView.type;\n    _this.newlineDisabled = false;\n    return _this;\n  }\n\n  LegendView.prototype.init = function () {\n    this.group.add(this._contentGroup = new Group());\n    this.group.add(this._selectorGroup = new Group());\n    this._isFirstRender = true;\n  };\n\n  LegendView.prototype.getContentGroup = function () {\n    return this._contentGroup;\n  };\n\n  LegendView.prototype.getSelectorGroup = function () {\n    return this._selectorGroup;\n  };\n\n  LegendView.prototype.render = function (legendModel, ecModel, api) {\n    var isFirstRender = this._isFirstRender;\n    this._isFirstRender = false;\n    this.resetInner();\n\n    if (!legendModel.get('show', true)) {\n      return;\n    }\n\n    var itemAlign = legendModel.get('align');\n    var orient = legendModel.get('orient');\n\n    if (!itemAlign || itemAlign === 'auto') {\n      itemAlign = legendModel.get('left') === 'right' && orient === 'vertical' ? 'right' : 'left';\n    }\n\n    var selector = legendModel.get('selector', true);\n    var selectorPosition = legendModel.get('selectorPosition', true);\n\n    if (selector && (!selectorPosition || selectorPosition === 'auto')) {\n      selectorPosition = orient === 'horizontal' ? 'end' : 'start';\n    }\n\n    this.renderInner(itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\n    var positionInfo = legendModel.getBoxLayoutParams();\n    var viewportSize = {\n      width: api.getWidth(),\n      height: api.getHeight()\n    };\n    var padding = legendModel.get('padding');\n    var maxSize = layoutUtil.getLayoutRect(positionInfo, viewportSize, padding);\n    var mainRect = this.layoutInner(legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition);\n    var layoutRect = layoutUtil.getLayoutRect(zrUtil.defaults({\n      width: mainRect.width,\n      height: mainRect.height\n    }, positionInfo), viewportSize, padding);\n    this.group.x = layoutRect.x - mainRect.x;\n    this.group.y = layoutRect.y - mainRect.y;\n    this.group.markRedraw();\n    this.group.add(this._backgroundEl = makeBackground(mainRect, legendModel));\n  };\n\n  LegendView.prototype.resetInner = function () {\n    this.getContentGroup().removeAll();\n    this._backgroundEl && this.group.remove(this._backgroundEl);\n    this.getSelectorGroup().removeAll();\n  };\n\n  LegendView.prototype.renderInner = function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\n    var contentGroup = this.getContentGroup();\n    var legendDrawnMap = zrUtil.createHashMap();\n    var selectMode = legendModel.get('selectedMode');\n    var excludeSeriesId = [];\n    ecModel.eachRawSeries(function (seriesModel) {\n      !seriesModel.get('legendHoverLink') && excludeSeriesId.push(seriesModel.id);\n    });\n    each(legendModel.getData(), function (itemModel, dataIndex) {\n      var name = itemModel.get('name');\n\n      if (!this.newlineDisabled && (name === '' || name === '\\n')) {\n        var g = new Group();\n        g.newline = true;\n        contentGroup.add(g);\n        return;\n      }\n\n      var seriesModel = ecModel.getSeriesByName(name)[0];\n\n      if (legendDrawnMap.get(name)) {\n        return;\n      }\n\n      if (seriesModel) {\n        var data = seriesModel.getData();\n        var style = data.getVisual('style');\n        var color = style[data.getVisual('drawType')] || style.fill;\n        var borderColor = style.stroke;\n        var decal = style.decal;\n        var legendSymbolType = data.getVisual('legendSymbol') || 'roundRect';\n        var symbolType = data.getVisual('symbol');\n\n        var itemGroup = this._createItem(name, dataIndex, itemModel, legendModel, legendSymbolType, symbolType, itemAlign, color, borderColor, decal, selectMode);\n\n        itemGroup.on('click', curry(dispatchSelectAction, name, null, api, excludeSeriesId)).on('mouseover', curry(dispatchHighlightAction, seriesModel.name, null, api, excludeSeriesId)).on('mouseout', curry(dispatchDownplayAction, seriesModel.name, null, api, excludeSeriesId));\n        legendDrawnMap.set(name, true);\n      } else {\n        ecModel.eachRawSeries(function (seriesModel) {\n          if (legendDrawnMap.get(name)) {\n            return;\n          }\n\n          if (seriesModel.legendVisualProvider) {\n            var provider = seriesModel.legendVisualProvider;\n\n            if (!provider.containName(name)) {\n              return;\n            }\n\n            var idx = provider.indexOfName(name);\n            var style = provider.getItemVisual(idx, 'style');\n            var borderColor = style.stroke;\n            var decal = style.decal;\n            var color = style.fill;\n            var colorArr = parse(style.fill);\n\n            if (colorArr && colorArr[3] === 0) {\n              colorArr[3] = 0.2;\n              color = stringify(colorArr, 'rgba');\n            }\n\n            var legendSymbolType = 'roundRect';\n\n            var itemGroup = this._createItem(name, dataIndex, itemModel, legendModel, legendSymbolType, null, itemAlign, color, borderColor, decal, selectMode);\n\n            itemGroup.on('click', curry(dispatchSelectAction, null, name, api, excludeSeriesId)).on('mouseover', curry(dispatchHighlightAction, null, name, api, excludeSeriesId)).on('mouseout', curry(dispatchDownplayAction, null, name, api, excludeSeriesId));\n            legendDrawnMap.set(name, true);\n          }\n        }, this);\n      }\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (!legendDrawnMap.get(name)) {\n          console.warn(name + ' series not exists. Legend data should be same with series name or data name.');\n        }\n      }\n    }, this);\n\n    if (selector) {\n      this._createSelector(selector, legendModel, api, orient, selectorPosition);\n    }\n  };\n\n  LegendView.prototype._createSelector = function (selector, legendModel, api, orient, selectorPosition) {\n    var selectorGroup = this.getSelectorGroup();\n    each(selector, function createSelectorButton(selectorItem) {\n      var type = selectorItem.type;\n      var labelText = new graphic.Text({\n        style: {\n          x: 0,\n          y: 0,\n          align: 'center',\n          verticalAlign: 'middle'\n        },\n        onclick: function () {\n          api.dispatchAction({\n            type: type === 'all' ? 'legendAllSelect' : 'legendInverseSelect'\n          });\n        }\n      });\n      selectorGroup.add(labelText);\n      var labelModel = legendModel.getModel('selectorLabel');\n      var emphasisLabelModel = legendModel.getModel(['emphasis', 'selectorLabel']);\n      setLabelStyle(labelText, {\n        normal: labelModel,\n        emphasis: emphasisLabelModel\n      }, {\n        defaultText: selectorItem.title\n      });\n      enableHoverEmphasis(labelText);\n    });\n  };\n\n  LegendView.prototype._createItem = function (name, dataIndex, itemModel, legendModel, legendSymbolType, symbolType, itemAlign, color, borderColor, decal, selectMode) {\n    var itemWidth = legendModel.get('itemWidth');\n    var itemHeight = legendModel.get('itemHeight');\n    var inactiveColor = legendModel.get('inactiveColor');\n    var inactiveBorderColor = legendModel.get('inactiveBorderColor');\n    var symbolKeepAspect = legendModel.get('symbolKeepAspect');\n    var legendModelItemStyle = legendModel.getModel('itemStyle');\n    var isSelected = legendModel.isSelected(name);\n    var itemGroup = new Group();\n    var textStyleModel = itemModel.getModel('textStyle');\n    var itemIcon = itemModel.get('icon');\n    var tooltipModel = itemModel.getModel('tooltip');\n    var legendGlobalTooltipModel = tooltipModel.parentModel;\n    legendSymbolType = itemIcon || legendSymbolType;\n    var legendSymbol = createSymbol(legendSymbolType, 0, 0, itemWidth, itemHeight, isSelected ? color : inactiveColor, symbolKeepAspect == null ? true : symbolKeepAspect);\n    itemGroup.add(setSymbolStyle(legendSymbol, legendSymbolType, legendModelItemStyle, borderColor, inactiveBorderColor, decal, isSelected));\n\n    if (!itemIcon && symbolType && (symbolType !== legendSymbolType || symbolType === 'none')) {\n      var size = itemHeight * 0.8;\n\n      if (symbolType === 'none') {\n        symbolType = 'circle';\n      }\n\n      var legendSymbolCenter = createSymbol(symbolType, (itemWidth - size) / 2, (itemHeight - size) / 2, size, size, isSelected ? color : inactiveColor, symbolKeepAspect == null ? true : symbolKeepAspect);\n      itemGroup.add(setSymbolStyle(legendSymbolCenter, symbolType, legendModelItemStyle, borderColor, inactiveBorderColor, decal, isSelected));\n    }\n\n    var textX = itemAlign === 'left' ? itemWidth + 5 : -5;\n    var textAlign = itemAlign;\n    var formatter = legendModel.get('formatter');\n    var content = name;\n\n    if (typeof formatter === 'string' && formatter) {\n      content = formatter.replace('{name}', name != null ? name : '');\n    } else if (typeof formatter === 'function') {\n      content = formatter(name);\n    }\n\n    itemGroup.add(new graphic.Text({\n      style: createTextStyle(textStyleModel, {\n        text: content,\n        x: textX,\n        y: itemHeight / 2,\n        fill: isSelected ? textStyleModel.getTextColor() : inactiveColor,\n        align: textAlign,\n        verticalAlign: 'middle'\n      })\n    }));\n    var hitRect = new graphic.Rect({\n      shape: itemGroup.getBoundingRect(),\n      invisible: true\n    });\n\n    if (tooltipModel.get('show')) {\n      var formatterParams = {\n        componentType: 'legend',\n        legendIndex: legendModel.componentIndex,\n        name: name,\n        $vars: ['name']\n      };\n      hitRect.tooltip = zrUtil.extend({\n        content: name,\n        formatter: legendGlobalTooltipModel.get('formatter', true) || function (params) {\n          return params.name;\n        },\n        formatterParams: formatterParams\n      }, tooltipModel.option);\n    }\n\n    itemGroup.add(hitRect);\n    itemGroup.eachChild(function (child) {\n      child.silent = true;\n    });\n    hitRect.silent = !selectMode;\n    this.getContentGroup().add(itemGroup);\n    enableHoverEmphasis(itemGroup);\n    itemGroup.__legendDataIndex = dataIndex;\n    return itemGroup;\n  };\n\n  LegendView.prototype.layoutInner = function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\n    var contentGroup = this.getContentGroup();\n    var selectorGroup = this.getSelectorGroup();\n    layoutUtil.box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), maxSize.width, maxSize.height);\n    var contentRect = contentGroup.getBoundingRect();\n    var contentPos = [-contentRect.x, -contentRect.y];\n    selectorGroup.markRedraw();\n    contentGroup.markRedraw();\n\n    if (selector) {\n      layoutUtil.box('horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\n      var selectorRect = selectorGroup.getBoundingRect();\n      var selectorPos = [-selectorRect.x, -selectorRect.y];\n      var selectorButtonGap = legendModel.get('selectorButtonGap', true);\n      var orientIdx = legendModel.getOrient().index;\n      var wh = orientIdx === 0 ? 'width' : 'height';\n      var hw = orientIdx === 0 ? 'height' : 'width';\n      var yx = orientIdx === 0 ? 'y' : 'x';\n\n      if (selectorPosition === 'end') {\n        selectorPos[orientIdx] += contentRect[wh] + selectorButtonGap;\n      } else {\n        contentPos[orientIdx] += selectorRect[wh] + selectorButtonGap;\n      }\n\n      selectorPos[1 - orientIdx] += contentRect[hw] / 2 - selectorRect[hw] / 2;\n      selectorGroup.x = selectorPos[0];\n      selectorGroup.y = selectorPos[1];\n      contentGroup.x = contentPos[0];\n      contentGroup.y = contentPos[1];\n      var mainRect = {\n        x: 0,\n        y: 0\n      };\n      mainRect[wh] = contentRect[wh] + selectorButtonGap + selectorRect[wh];\n      mainRect[hw] = Math.max(contentRect[hw], selectorRect[hw]);\n      mainRect[yx] = Math.min(0, selectorRect[yx] + selectorPos[1 - orientIdx]);\n      return mainRect;\n    } else {\n      contentGroup.x = contentPos[0];\n      contentGroup.y = contentPos[1];\n      return this.group.getBoundingRect();\n    }\n  };\n\n  LegendView.prototype.remove = function () {\n    this.getContentGroup().removeAll();\n    this._isFirstRender = true;\n  };\n\n  LegendView.type = 'legend.plain';\n  return LegendView;\n}(ComponentView);\n\nfunction setSymbolStyle(symbol, symbolType, legendModelItemStyle, borderColor, inactiveBorderColor, decal, isSelected) {\n  var itemStyle;\n\n  if (symbolType !== 'line' && symbolType.indexOf('empty') < 0) {\n    itemStyle = legendModelItemStyle.getItemStyle();\n    symbol.style.stroke = borderColor;\n    symbol.style.decal = decal;\n\n    if (!isSelected) {\n      itemStyle.stroke = inactiveBorderColor;\n    }\n  } else {\n    itemStyle = legendModelItemStyle.getItemStyle(['borderWidth', 'borderColor']);\n  }\n\n  symbol.setStyle(itemStyle);\n  return symbol;\n}\n\nfunction dispatchSelectAction(seriesName, dataName, api, excludeSeriesId) {\n  dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId);\n  api.dispatchAction({\n    type: 'legendToggleSelect',\n    name: seriesName != null ? seriesName : dataName\n  });\n  dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId);\n}\n\nfunction isUseHoverLayer(api) {\n  var list = api.getZr().storage.getDisplayList();\n  var emphasisState;\n  var i = 0;\n  var len = list.length;\n\n  while (i < len && !(emphasisState = list[i].states.emphasis)) {\n    i++;\n  }\n\n  return emphasisState && emphasisState.hoverLayer;\n}\n\nfunction dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId) {\n  if (!isUseHoverLayer(api)) {\n    api.dispatchAction({\n      type: 'highlight',\n      seriesName: seriesName,\n      name: dataName,\n      excludeSeriesId: excludeSeriesId\n    });\n  }\n}\n\nfunction dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId) {\n  if (!isUseHoverLayer(api)) {\n    api.dispatchAction({\n      type: 'downplay',\n      seriesName: seriesName,\n      name: dataName,\n      excludeSeriesId: excludeSeriesId\n    });\n  }\n}\n\nexport default LegendView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function legendFilter(ecModel) {\n  var legendModels = ecModel.findComponents({\n    mainType: 'legend'\n  });\n\n  if (legendModels && legendModels.length) {\n    ecModel.filterSeries(function (series) {\n      for (var i = 0; i < legendModels.length; i++) {\n        if (!legendModels[i].isSelected(series.name)) {\n          return false;\n        }\n      }\n\n      return true;\n    });\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { curry, each } from 'zrender/lib/core/util';\n\nfunction legendSelectActionHandler(methodName, payload, ecModel) {\n  var selectedMap = {};\n  var isToggleSelect = methodName === 'toggleSelected';\n  var isSelected;\n  ecModel.eachComponent('legend', function (legendModel) {\n    if (isToggleSelect && isSelected != null) {\n      legendModel[isSelected ? 'select' : 'unSelect'](payload.name);\n    } else if (methodName === 'allSelect' || methodName === 'inverseSelect') {\n      legendModel[methodName]();\n    } else {\n      legendModel[methodName](payload.name);\n      isSelected = legendModel.isSelected(payload.name);\n    }\n\n    var legendData = legendModel.getData();\n    each(legendData, function (model) {\n      var name = model.get('name');\n\n      if (name === '\\n' || name === '') {\n        return;\n      }\n\n      var isItemSelected = legendModel.isSelected(name);\n\n      if (selectedMap.hasOwnProperty(name)) {\n        selectedMap[name] = selectedMap[name] && isItemSelected;\n      } else {\n        selectedMap[name] = isItemSelected;\n      }\n    });\n  });\n  return methodName === 'allSelect' || methodName === 'inverseSelect' ? {\n    selected: selectedMap\n  } : {\n    name: payload.name,\n    selected: selectedMap\n  };\n}\n\nexport function installLegendAction(registers) {\n  registers.registerAction('legendToggleSelect', 'legendselectchanged', curry(legendSelectActionHandler, 'toggleSelected'));\n  registers.registerAction('legendAllSelect', 'legendselectall', curry(legendSelectActionHandler, 'allSelect'));\n  registers.registerAction('legendInverseSelect', 'legendinverseselect', curry(legendSelectActionHandler, 'inverseSelect'));\n  registers.registerAction('legendSelect', 'legendselected', curry(legendSelectActionHandler, 'select'));\n  registers.registerAction('legendUnSelect', 'legendunselected', curry(legendSelectActionHandler, 'unSelect'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport LegendModel from './LegendModel';\nimport LegendView from './LegendView';\nimport legendFilter from './legendFilter';\nimport { installLegendAction } from './legendAction';\nexport function install(registers) {\n  registers.registerComponentModel(LegendModel);\n  registers.registerComponentView(LegendView);\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.SERIES_FILTER, legendFilter);\n  registers.registerSubTypeDefaulter('legend', function () {\n    return 'plain';\n  });\n  installLegendAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport LegendModel from './LegendModel';\nimport { mergeLayoutParam, getLayoutParams } from '../../util/layout';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar ScrollableLegendModel = function (_super) {\n  __extends(ScrollableLegendModel, _super);\n\n  function ScrollableLegendModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ScrollableLegendModel.type;\n    return _this;\n  }\n\n  ScrollableLegendModel.prototype.setScrollDataIndex = function (scrollDataIndex) {\n    this.option.scrollDataIndex = scrollDataIndex;\n  };\n\n  ScrollableLegendModel.prototype.init = function (option, parentModel, ecModel) {\n    var inputPositionParams = getLayoutParams(option);\n\n    _super.prototype.init.call(this, option, parentModel, ecModel);\n\n    mergeAndNormalizeLayoutParams(this, option, inputPositionParams);\n  };\n\n  ScrollableLegendModel.prototype.mergeOption = function (option, ecModel) {\n    _super.prototype.mergeOption.call(this, option, ecModel);\n\n    mergeAndNormalizeLayoutParams(this, this.option, option);\n  };\n\n  ScrollableLegendModel.type = 'legend.scroll';\n  ScrollableLegendModel.defaultOption = inheritDefaultOption(LegendModel.defaultOption, {\n    scrollDataIndex: 0,\n    pageButtonItemGap: 5,\n    pageButtonGap: null,\n    pageButtonPosition: 'end',\n    pageFormatter: '{current}/{total}',\n    pageIcons: {\n      horizontal: ['M0,0L12,-10L12,10z', 'M0,0L-12,-10L-12,10z'],\n      vertical: ['M0,0L20,0L10,-20z', 'M0,0L20,0L10,20z']\n    },\n    pageIconColor: '#2f4554',\n    pageIconInactiveColor: '#aaa',\n    pageIconSize: 15,\n    pageTextStyle: {\n      color: '#333'\n    },\n    animationDurationUpdate: 800\n  });\n  return ScrollableLegendModel;\n}(LegendModel);\n\n;\n\nfunction mergeAndNormalizeLayoutParams(legendModel, target, raw) {\n  var orient = legendModel.getOrient();\n  var ignoreSize = [1, 1];\n  ignoreSize[orient.index] = 0;\n  mergeLayoutParam(target, raw, {\n    type: 'box',\n    ignoreSize: !!ignoreSize\n  });\n}\n\nexport default ScrollableLegendModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport * as layoutUtil from '../../util/layout';\nimport LegendView from './LegendView';\nvar Group = graphic.Group;\nvar WH = ['width', 'height'];\nvar XY = ['x', 'y'];\n\nvar ScrollableLegendView = function (_super) {\n  __extends(ScrollableLegendView, _super);\n\n  function ScrollableLegendView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ScrollableLegendView.type;\n    _this.newlineDisabled = true;\n    _this._currentIndex = 0;\n    return _this;\n  }\n\n  ScrollableLegendView.prototype.init = function () {\n    _super.prototype.init.call(this);\n\n    this.group.add(this._containerGroup = new Group());\n\n    this._containerGroup.add(this.getContentGroup());\n\n    this.group.add(this._controllerGroup = new Group());\n  };\n\n  ScrollableLegendView.prototype.resetInner = function () {\n    _super.prototype.resetInner.call(this);\n\n    this._controllerGroup.removeAll();\n\n    this._containerGroup.removeClipPath();\n\n    this._containerGroup.__rectSize = null;\n  };\n\n  ScrollableLegendView.prototype.renderInner = function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\n    var self = this;\n\n    _super.prototype.renderInner.call(this, itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\n\n    var controllerGroup = this._controllerGroup;\n    var pageIconSize = legendModel.get('pageIconSize', true);\n    var pageIconSizeArr = zrUtil.isArray(pageIconSize) ? pageIconSize : [pageIconSize, pageIconSize];\n    createPageButton('pagePrev', 0);\n    var pageTextStyleModel = legendModel.getModel('pageTextStyle');\n    controllerGroup.add(new graphic.Text({\n      name: 'pageText',\n      style: {\n        text: 'xx/xx',\n        fill: pageTextStyleModel.getTextColor(),\n        font: pageTextStyleModel.getFont(),\n        verticalAlign: 'middle',\n        align: 'center'\n      },\n      silent: true\n    }));\n    createPageButton('pageNext', 1);\n\n    function createPageButton(name, iconIdx) {\n      var pageDataIndexName = name + 'DataIndex';\n      var icon = graphic.createIcon(legendModel.get('pageIcons', true)[legendModel.getOrient().name][iconIdx], {\n        onclick: zrUtil.bind(self._pageGo, self, pageDataIndexName, legendModel, api)\n      }, {\n        x: -pageIconSizeArr[0] / 2,\n        y: -pageIconSizeArr[1] / 2,\n        width: pageIconSizeArr[0],\n        height: pageIconSizeArr[1]\n      });\n      icon.name = name;\n      controllerGroup.add(icon);\n    }\n  };\n\n  ScrollableLegendView.prototype.layoutInner = function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\n    var selectorGroup = this.getSelectorGroup();\n    var orientIdx = legendModel.getOrient().index;\n    var wh = WH[orientIdx];\n    var xy = XY[orientIdx];\n    var hw = WH[1 - orientIdx];\n    var yx = XY[1 - orientIdx];\n    selector && layoutUtil.box('horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\n    var selectorButtonGap = legendModel.get('selectorButtonGap', true);\n    var selectorRect = selectorGroup.getBoundingRect();\n    var selectorPos = [-selectorRect.x, -selectorRect.y];\n    var processMaxSize = zrUtil.clone(maxSize);\n    selector && (processMaxSize[wh] = maxSize[wh] - selectorRect[wh] - selectorButtonGap);\n\n    var mainRect = this._layoutContentAndController(legendModel, isFirstRender, processMaxSize, orientIdx, wh, hw, yx, xy);\n\n    if (selector) {\n      if (selectorPosition === 'end') {\n        selectorPos[orientIdx] += mainRect[wh] + selectorButtonGap;\n      } else {\n        var offset = selectorRect[wh] + selectorButtonGap;\n        selectorPos[orientIdx] -= offset;\n        mainRect[xy] -= offset;\n      }\n\n      mainRect[wh] += selectorRect[wh] + selectorButtonGap;\n      selectorPos[1 - orientIdx] += mainRect[yx] + mainRect[hw] / 2 - selectorRect[hw] / 2;\n      mainRect[hw] = Math.max(mainRect[hw], selectorRect[hw]);\n      mainRect[yx] = Math.min(mainRect[yx], selectorRect[yx] + selectorPos[1 - orientIdx]);\n      selectorGroup.x = selectorPos[0];\n      selectorGroup.y = selectorPos[1];\n      selectorGroup.markRedraw();\n    }\n\n    return mainRect;\n  };\n\n  ScrollableLegendView.prototype._layoutContentAndController = function (legendModel, isFirstRender, maxSize, orientIdx, wh, hw, yx, xy) {\n    var contentGroup = this.getContentGroup();\n    var containerGroup = this._containerGroup;\n    var controllerGroup = this._controllerGroup;\n    layoutUtil.box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), !orientIdx ? null : maxSize.width, orientIdx ? null : maxSize.height);\n    layoutUtil.box('horizontal', controllerGroup, legendModel.get('pageButtonItemGap', true));\n    var contentRect = contentGroup.getBoundingRect();\n    var controllerRect = controllerGroup.getBoundingRect();\n    var showController = this._showController = contentRect[wh] > maxSize[wh];\n    var contentPos = [-contentRect.x, -contentRect.y];\n\n    if (!isFirstRender) {\n      contentPos[orientIdx] = contentGroup[xy];\n    }\n\n    var containerPos = [0, 0];\n    var controllerPos = [-controllerRect.x, -controllerRect.y];\n    var pageButtonGap = zrUtil.retrieve2(legendModel.get('pageButtonGap', true), legendModel.get('itemGap', true));\n\n    if (showController) {\n      var pageButtonPosition = legendModel.get('pageButtonPosition', true);\n\n      if (pageButtonPosition === 'end') {\n        controllerPos[orientIdx] += maxSize[wh] - controllerRect[wh];\n      } else {\n        containerPos[orientIdx] += controllerRect[wh] + pageButtonGap;\n      }\n    }\n\n    controllerPos[1 - orientIdx] += contentRect[hw] / 2 - controllerRect[hw] / 2;\n    contentGroup.setPosition(contentPos);\n    containerGroup.setPosition(containerPos);\n    controllerGroup.setPosition(controllerPos);\n    var mainRect = {\n      x: 0,\n      y: 0\n    };\n    mainRect[wh] = showController ? maxSize[wh] : contentRect[wh];\n    mainRect[hw] = Math.max(contentRect[hw], controllerRect[hw]);\n    mainRect[yx] = Math.min(0, controllerRect[yx] + controllerPos[1 - orientIdx]);\n    containerGroup.__rectSize = maxSize[wh];\n\n    if (showController) {\n      var clipShape = {\n        x: 0,\n        y: 0\n      };\n      clipShape[wh] = Math.max(maxSize[wh] - controllerRect[wh] - pageButtonGap, 0);\n      clipShape[hw] = mainRect[hw];\n      containerGroup.setClipPath(new graphic.Rect({\n        shape: clipShape\n      }));\n      containerGroup.__rectSize = clipShape[wh];\n    } else {\n      controllerGroup.eachChild(function (child) {\n        child.attr({\n          invisible: true,\n          silent: true\n        });\n      });\n    }\n\n    var pageInfo = this._getPageInfo(legendModel);\n\n    pageInfo.pageIndex != null && graphic.updateProps(contentGroup, {\n      x: pageInfo.contentPosition[0],\n      y: pageInfo.contentPosition[1]\n    }, showController ? legendModel : null);\n\n    this._updatePageInfoView(legendModel, pageInfo);\n\n    return mainRect;\n  };\n\n  ScrollableLegendView.prototype._pageGo = function (to, legendModel, api) {\n    var scrollDataIndex = this._getPageInfo(legendModel)[to];\n\n    scrollDataIndex != null && api.dispatchAction({\n      type: 'legendScroll',\n      scrollDataIndex: scrollDataIndex,\n      legendId: legendModel.id\n    });\n  };\n\n  ScrollableLegendView.prototype._updatePageInfoView = function (legendModel, pageInfo) {\n    var controllerGroup = this._controllerGroup;\n    zrUtil.each(['pagePrev', 'pageNext'], function (name) {\n      var key = name + 'DataIndex';\n      var canJump = pageInfo[key] != null;\n      var icon = controllerGroup.childOfName(name);\n\n      if (icon) {\n        icon.setStyle('fill', canJump ? legendModel.get('pageIconColor', true) : legendModel.get('pageIconInactiveColor', true));\n        icon.cursor = canJump ? 'pointer' : 'default';\n      }\n    });\n    var pageText = controllerGroup.childOfName('pageText');\n    var pageFormatter = legendModel.get('pageFormatter');\n    var pageIndex = pageInfo.pageIndex;\n    var current = pageIndex != null ? pageIndex + 1 : 0;\n    var total = pageInfo.pageCount;\n    pageText && pageFormatter && pageText.setStyle('text', zrUtil.isString(pageFormatter) ? pageFormatter.replace('{current}', current == null ? '' : current + '').replace('{total}', total == null ? '' : total + '') : pageFormatter({\n      current: current,\n      total: total\n    }));\n  };\n\n  ScrollableLegendView.prototype._getPageInfo = function (legendModel) {\n    var scrollDataIndex = legendModel.get('scrollDataIndex', true);\n    var contentGroup = this.getContentGroup();\n    var containerRectSize = this._containerGroup.__rectSize;\n    var orientIdx = legendModel.getOrient().index;\n    var wh = WH[orientIdx];\n    var xy = XY[orientIdx];\n\n    var targetItemIndex = this._findTargetItemIndex(scrollDataIndex);\n\n    var children = contentGroup.children();\n    var targetItem = children[targetItemIndex];\n    var itemCount = children.length;\n    var pCount = !itemCount ? 0 : 1;\n    var result = {\n      contentPosition: [contentGroup.x, contentGroup.y],\n      pageCount: pCount,\n      pageIndex: pCount - 1,\n      pagePrevDataIndex: null,\n      pageNextDataIndex: null\n    };\n\n    if (!targetItem) {\n      return result;\n    }\n\n    var targetItemInfo = getItemInfo(targetItem);\n    result.contentPosition[orientIdx] = -targetItemInfo.s;\n\n    for (var i = targetItemIndex + 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i <= itemCount; ++i) {\n      currItemInfo = getItemInfo(children[i]);\n\n      if (!currItemInfo && winEndItemInfo.e > winStartItemInfo.s + containerRectSize || currItemInfo && !intersect(currItemInfo, winStartItemInfo.s)) {\n        if (winEndItemInfo.i > winStartItemInfo.i) {\n          winStartItemInfo = winEndItemInfo;\n        } else {\n          winStartItemInfo = currItemInfo;\n        }\n\n        if (winStartItemInfo) {\n          if (result.pageNextDataIndex == null) {\n            result.pageNextDataIndex = winStartItemInfo.i;\n          }\n\n          ++result.pageCount;\n        }\n      }\n\n      winEndItemInfo = currItemInfo;\n    }\n\n    for (var i = targetItemIndex - 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i >= -1; --i) {\n      currItemInfo = getItemInfo(children[i]);\n\n      if ((!currItemInfo || !intersect(winEndItemInfo, currItemInfo.s)) && winStartItemInfo.i < winEndItemInfo.i) {\n        winEndItemInfo = winStartItemInfo;\n\n        if (result.pagePrevDataIndex == null) {\n          result.pagePrevDataIndex = winStartItemInfo.i;\n        }\n\n        ++result.pageCount;\n        ++result.pageIndex;\n      }\n\n      winStartItemInfo = currItemInfo;\n    }\n\n    return result;\n\n    function getItemInfo(el) {\n      if (el) {\n        var itemRect = el.getBoundingRect();\n        var start = itemRect[xy] + el[xy];\n        return {\n          s: start,\n          e: start + itemRect[wh],\n          i: el.__legendDataIndex\n        };\n      }\n    }\n\n    function intersect(itemInfo, winStart) {\n      return itemInfo.e >= winStart && itemInfo.s <= winStart + containerRectSize;\n    }\n  };\n\n  ScrollableLegendView.prototype._findTargetItemIndex = function (targetDataIndex) {\n    if (!this._showController) {\n      return 0;\n    }\n\n    var index;\n    var contentGroup = this.getContentGroup();\n    var defaultIndex;\n    contentGroup.eachChild(function (child, idx) {\n      var legendDataIdx = child.__legendDataIndex;\n\n      if (defaultIndex == null && legendDataIdx != null) {\n        defaultIndex = idx;\n      }\n\n      if (legendDataIdx === targetDataIndex) {\n        index = idx;\n      }\n    });\n    return index != null ? index : defaultIndex;\n  };\n\n  ScrollableLegendView.type = 'legend.scroll';\n  return ScrollableLegendView;\n}(LegendView);\n\nexport default ScrollableLegendView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function installScrollableLegendAction(registers) {\n  registers.registerAction('legendScroll', 'legendscroll', function (payload, ecModel) {\n    var scrollDataIndex = payload.scrollDataIndex;\n    scrollDataIndex != null && ecModel.eachComponent({\n      mainType: 'legend',\n      subType: 'scroll',\n      query: payload\n    }, function (legendModel) {\n      legendModel.setScrollDataIndex(scrollDataIndex);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport { install as installLegendPlain } from './installLegendPlain';\nimport ScrollableLegendModel from './ScrollableLegendModel';\nimport ScrollableLegendView from './ScrollableLegendView';\nimport installScrollableLegendAction from './scrollableLegendAction';\nexport function install(registers) {\n  use(installLegendPlain);\n  registers.registerComponentModel(ScrollableLegendModel);\n  registers.registerComponentView(ScrollableLegendView);\n  installScrollableLegendAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport { install as installLegendPlain } from './installLegendPlain';\nimport { install as installLegendScroll } from './installLegendScroll';\nexport function install(registers) {\n  use(installLegendPlain);\n  use(installLegendScroll);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport DataZoomModel from './DataZoomModel';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar InsideZoomModel = function (_super) {\n  __extends(InsideZoomModel, _super);\n\n  function InsideZoomModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = InsideZoomModel.type;\n    return _this;\n  }\n\n  InsideZoomModel.type = 'dataZoom.inside';\n  InsideZoomModel.defaultOption = inheritDefaultOption(DataZoomModel.defaultOption, {\n    disabled: false,\n    zoomLock: false,\n    zoomOnMouseWheel: true,\n    moveOnMouseMove: true,\n    moveOnMouseWheel: false,\n    preventDefaultMouseMove: true\n  });\n  return InsideZoomModel;\n}(DataZoomModel);\n\nexport default InsideZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport RoamController from '../../component/helper/RoamController';\nimport * as throttleUtil from '../../util/throttle';\nimport { makeInner } from '../../util/model';\nimport { each, curry, createHashMap } from 'zrender/lib/core/util';\nimport { collectReferCoordSysModelInfo } from './helper';\nvar inner = makeInner();\nexport function setViewInfoToCoordSysRecord(api, dataZoomModel, getRange) {\n  inner(api).coordSysRecordMap.each(function (coordSysRecord) {\n    var dzInfo = coordSysRecord.dataZoomInfoMap.get(dataZoomModel.uid);\n\n    if (dzInfo) {\n      dzInfo.getRange = getRange;\n    }\n  });\n}\nexport function disposeCoordSysRecordIfNeeded(api, dataZoomModel) {\n  var coordSysRecordMap = inner(api).coordSysRecordMap;\n  var coordSysKeyArr = coordSysRecordMap.keys();\n\n  for (var i = 0; i < coordSysKeyArr.length; i++) {\n    var coordSysKey = coordSysKeyArr[i];\n    var coordSysRecord = coordSysRecordMap.get(coordSysKey);\n    var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap;\n\n    if (dataZoomInfoMap) {\n      var dzUid = dataZoomModel.uid;\n      var dzInfo = dataZoomInfoMap.get(dzUid);\n\n      if (dzInfo) {\n        dataZoomInfoMap.removeKey(dzUid);\n\n        if (!dataZoomInfoMap.keys().length) {\n          disposeCoordSysRecord(coordSysRecordMap, coordSysRecord);\n        }\n      }\n    }\n  }\n}\n\nfunction disposeCoordSysRecord(coordSysRecordMap, coordSysRecord) {\n  if (coordSysRecord) {\n    coordSysRecordMap.removeKey(coordSysRecord.model.uid);\n    var controller = coordSysRecord.controller;\n    controller && controller.dispose();\n  }\n}\n\nfunction createCoordSysRecord(api, coordSysModel) {\n  var coordSysRecord = {\n    model: coordSysModel,\n    containsPoint: curry(containsPoint, coordSysModel),\n    dispatchAction: curry(dispatchAction, api),\n    dataZoomInfoMap: null,\n    controller: null\n  };\n  var controller = coordSysRecord.controller = new RoamController(api.getZr());\n  each(['pan', 'zoom', 'scrollMove'], function (eventName) {\n    controller.on(eventName, function (event) {\n      var batch = [];\n      coordSysRecord.dataZoomInfoMap.each(function (dzInfo) {\n        if (!event.isAvailableBehavior(dzInfo.model.option)) {\n          return;\n        }\n\n        var method = (dzInfo.getRange || {})[eventName];\n        var range = method && method(dzInfo.dzReferCoordSysInfo, coordSysRecord.model.mainType, coordSysRecord.controller, event);\n        !dzInfo.model.get('disabled', true) && range && batch.push({\n          dataZoomId: dzInfo.model.id,\n          start: range[0],\n          end: range[1]\n        });\n      });\n      batch.length && coordSysRecord.dispatchAction(batch);\n    });\n  });\n  return coordSysRecord;\n}\n\nfunction dispatchAction(api, batch) {\n  api.dispatchAction({\n    type: 'dataZoom',\n    animation: {\n      easing: 'cubicOut',\n      duration: 100\n    },\n    batch: batch\n  });\n}\n\nfunction containsPoint(coordSysModel, e, x, y) {\n  return coordSysModel.coordinateSystem.containPoint([x, y]);\n}\n\nfunction mergeControllerParams(dataZoomInfoMap) {\n  var controlType;\n  var prefix = 'type_';\n  var typePriority = {\n    'type_true': 2,\n    'type_move': 1,\n    'type_false': 0,\n    'type_undefined': -1\n  };\n  var preventDefaultMouseMove = true;\n  dataZoomInfoMap.each(function (dataZoomInfo) {\n    var dataZoomModel = dataZoomInfo.model;\n    var oneType = dataZoomModel.get('disabled', true) ? false : dataZoomModel.get('zoomLock', true) ? 'move' : true;\n\n    if (typePriority[prefix + oneType] > typePriority[prefix + controlType]) {\n      controlType = oneType;\n    }\n\n    preventDefaultMouseMove = preventDefaultMouseMove && dataZoomModel.get('preventDefaultMouseMove', true);\n  });\n  return {\n    controlType: controlType,\n    opt: {\n      zoomOnMouseWheel: true,\n      moveOnMouseMove: true,\n      moveOnMouseWheel: true,\n      preventDefaultMouseMove: !!preventDefaultMouseMove\n    }\n  };\n}\n\nexport function installDataZoomRoamProcessor(registers) {\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.FILTER, function (ecModel, api) {\n    var apiInner = inner(api);\n    var coordSysRecordMap = apiInner.coordSysRecordMap || (apiInner.coordSysRecordMap = createHashMap());\n    coordSysRecordMap.each(function (coordSysRecord) {\n      coordSysRecord.dataZoomInfoMap = null;\n    });\n    ecModel.eachComponent({\n      mainType: 'dataZoom',\n      subType: 'inside'\n    }, function (dataZoomModel) {\n      var dzReferCoordSysWrap = collectReferCoordSysModelInfo(dataZoomModel);\n      each(dzReferCoordSysWrap.infoList, function (dzCoordSysInfo) {\n        var coordSysUid = dzCoordSysInfo.model.uid;\n        var coordSysRecord = coordSysRecordMap.get(coordSysUid) || coordSysRecordMap.set(coordSysUid, createCoordSysRecord(api, dzCoordSysInfo.model));\n        var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap || (coordSysRecord.dataZoomInfoMap = createHashMap());\n        dataZoomInfoMap.set(dataZoomModel.uid, {\n          dzReferCoordSysInfo: dzCoordSysInfo,\n          model: dataZoomModel,\n          getRange: null\n        });\n      });\n    });\n    coordSysRecordMap.each(function (coordSysRecord) {\n      var controller = coordSysRecord.controller;\n      var firstDzInfo;\n      var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap;\n\n      if (dataZoomInfoMap) {\n        var firstDzKey = dataZoomInfoMap.keys()[0];\n\n        if (firstDzKey != null) {\n          firstDzInfo = dataZoomInfoMap.get(firstDzKey);\n        }\n      }\n\n      if (!firstDzInfo) {\n        disposeCoordSysRecord(coordSysRecordMap, coordSysRecord);\n        return;\n      }\n\n      var controllerParams = mergeControllerParams(dataZoomInfoMap);\n      controller.enable(controllerParams.controlType, controllerParams.opt);\n      controller.setPointerChecker(coordSysRecord.containsPoint);\n      throttleUtil.createOrUpdate(coordSysRecord, 'dispatchAction', firstDzInfo.model.get('throttle', true), 'fixRate');\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport DataZoomView from './DataZoomView';\nimport sliderMove from '../helper/sliderMove';\nimport * as roams from './roams';\nimport { bind } from 'zrender/lib/core/util';\n\nvar InsideZoomView = function (_super) {\n  __extends(InsideZoomView, _super);\n\n  function InsideZoomView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'dataZoom.inside';\n    return _this;\n  }\n\n  InsideZoomView.prototype.render = function (dataZoomModel, ecModel, api) {\n    _super.prototype.render.apply(this, arguments);\n\n    if (dataZoomModel.noTarget()) {\n      this._clear();\n\n      return;\n    }\n\n    this.range = dataZoomModel.getPercentRange();\n    roams.setViewInfoToCoordSysRecord(api, dataZoomModel, {\n      pan: bind(getRangeHandlers.pan, this),\n      zoom: bind(getRangeHandlers.zoom, this),\n      scrollMove: bind(getRangeHandlers.scrollMove, this)\n    });\n  };\n\n  InsideZoomView.prototype.dispose = function () {\n    this._clear();\n\n    _super.prototype.dispose.apply(this, arguments);\n  };\n\n  InsideZoomView.prototype._clear = function () {\n    roams.disposeCoordSysRecordIfNeeded(this.api, this.dataZoomModel);\n    this.range = null;\n  };\n\n  InsideZoomView.type = 'dataZoom.inside';\n  return InsideZoomView;\n}(DataZoomView);\n\nvar getRangeHandlers = {\n  zoom: function (coordSysInfo, coordSysMainType, controller, e) {\n    var lastRange = this.range;\n    var range = lastRange.slice();\n    var axisModel = coordSysInfo.axisModels[0];\n\n    if (!axisModel) {\n      return;\n    }\n\n    var directionInfo = getDirectionInfo[coordSysMainType](null, [e.originX, e.originY], axisModel, controller, coordSysInfo);\n    var percentPoint = (directionInfo.signal > 0 ? directionInfo.pixelStart + directionInfo.pixelLength - directionInfo.pixel : directionInfo.pixel - directionInfo.pixelStart) / directionInfo.pixelLength * (range[1] - range[0]) + range[0];\n    var scale = Math.max(1 / e.scale, 0);\n    range[0] = (range[0] - percentPoint) * scale + percentPoint;\n    range[1] = (range[1] - percentPoint) * scale + percentPoint;\n    var minMaxSpan = this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\n    sliderMove(0, range, [0, 100], 0, minMaxSpan.minSpan, minMaxSpan.maxSpan);\n    this.range = range;\n\n    if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\n      return range;\n    }\n  },\n  pan: makeMover(function (range, axisModel, coordSysInfo, coordSysMainType, controller, e) {\n    var directionInfo = getDirectionInfo[coordSysMainType]([e.oldX, e.oldY], [e.newX, e.newY], axisModel, controller, coordSysInfo);\n    return directionInfo.signal * (range[1] - range[0]) * directionInfo.pixel / directionInfo.pixelLength;\n  }),\n  scrollMove: makeMover(function (range, axisModel, coordSysInfo, coordSysMainType, controller, e) {\n    var directionInfo = getDirectionInfo[coordSysMainType]([0, 0], [e.scrollDelta, e.scrollDelta], axisModel, controller, coordSysInfo);\n    return directionInfo.signal * (range[1] - range[0]) * e.scrollDelta;\n  })\n};\n\nfunction makeMover(getPercentDelta) {\n  return function (coordSysInfo, coordSysMainType, controller, e) {\n    var lastRange = this.range;\n    var range = lastRange.slice();\n    var axisModel = coordSysInfo.axisModels[0];\n\n    if (!axisModel) {\n      return;\n    }\n\n    var percentDelta = getPercentDelta(range, axisModel, coordSysInfo, coordSysMainType, controller, e);\n    sliderMove(percentDelta, range, [0, 100], 'all');\n    this.range = range;\n\n    if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\n      return range;\n    }\n  };\n}\n\nvar getDirectionInfo = {\n  grid: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\n    var axis = axisModel.axis;\n    var ret = {};\n    var rect = coordSysInfo.model.coordinateSystem.getRect();\n    oldPoint = oldPoint || [0, 0];\n\n    if (axis.dim === 'x') {\n      ret.pixel = newPoint[0] - oldPoint[0];\n      ret.pixelLength = rect.width;\n      ret.pixelStart = rect.x;\n      ret.signal = axis.inverse ? 1 : -1;\n    } else {\n      ret.pixel = newPoint[1] - oldPoint[1];\n      ret.pixelLength = rect.height;\n      ret.pixelStart = rect.y;\n      ret.signal = axis.inverse ? -1 : 1;\n    }\n\n    return ret;\n  },\n  polar: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\n    var axis = axisModel.axis;\n    var ret = {};\n    var polar = coordSysInfo.model.coordinateSystem;\n    var radiusExtent = polar.getRadiusAxis().getExtent();\n    var angleExtent = polar.getAngleAxis().getExtent();\n    oldPoint = oldPoint ? polar.pointToCoord(oldPoint) : [0, 0];\n    newPoint = polar.pointToCoord(newPoint);\n\n    if (axisModel.mainType === 'radiusAxis') {\n      ret.pixel = newPoint[0] - oldPoint[0];\n      ret.pixelLength = radiusExtent[1] - radiusExtent[0];\n      ret.pixelStart = radiusExtent[0];\n      ret.signal = axis.inverse ? 1 : -1;\n    } else {\n      ret.pixel = newPoint[1] - oldPoint[1];\n      ret.pixelLength = angleExtent[1] - angleExtent[0];\n      ret.pixelStart = angleExtent[0];\n      ret.signal = axis.inverse ? -1 : 1;\n    }\n\n    return ret;\n  },\n  singleAxis: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\n    var axis = axisModel.axis;\n    var rect = coordSysInfo.model.coordinateSystem.getRect();\n    var ret = {};\n    oldPoint = oldPoint || [0, 0];\n\n    if (axis.orient === 'horizontal') {\n      ret.pixel = newPoint[0] - oldPoint[0];\n      ret.pixelLength = rect.width;\n      ret.pixelStart = rect.x;\n      ret.signal = axis.inverse ? 1 : -1;\n    } else {\n      ret.pixel = newPoint[1] - oldPoint[1];\n      ret.pixelLength = rect.height;\n      ret.pixelStart = rect.y;\n      ret.signal = axis.inverse ? -1 : 1;\n    }\n\n    return ret;\n  }\n};\nexport default InsideZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport InsideZoomModel from './InsideZoomModel';\nimport InsideZoomView from './InsideZoomView';\nimport { installDataZoomRoamProcessor } from './roams';\nimport installCommon from './installCommon';\nexport function install(registers) {\n  installCommon(registers);\n  registers.registerComponentModel(InsideZoomModel);\n  registers.registerComponentView(InsideZoomView);\n  installDataZoomRoamProcessor(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport DataZoomModel from './DataZoomModel';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar SliderZoomModel = function (_super) {\n  __extends(SliderZoomModel, _super);\n\n  function SliderZoomModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SliderZoomModel.type;\n    return _this;\n  }\n\n  SliderZoomModel.type = 'dataZoom.slider';\n  SliderZoomModel.layoutMode = 'box';\n  SliderZoomModel.defaultOption = inheritDefaultOption(DataZoomModel.defaultOption, {\n    show: true,\n    right: 'ph',\n    top: 'ph',\n    width: 'ph',\n    height: 'ph',\n    left: null,\n    bottom: null,\n    borderColor: '#d2dbee',\n    borderRadius: 3,\n    backgroundColor: 'rgba(47,69,84,0)',\n    dataBackground: {\n      lineStyle: {\n        color: '#d2dbee',\n        width: 0.5\n      },\n      areaStyle: {\n        color: '#d2dbee',\n        opacity: 0.2\n      }\n    },\n    selectedDataBackground: {\n      lineStyle: {\n        color: '#8fb0f7',\n        width: 0.5\n      },\n      areaStyle: {\n        color: '#8fb0f7',\n        opacity: 0.2\n      }\n    },\n    fillerColor: 'rgba(135,175,274,0.2)',\n    handleIcon: 'path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z',\n    handleSize: '100%',\n    handleStyle: {\n      color: '#fff',\n      borderColor: '#ACB8D1'\n    },\n    moveHandleSize: 7,\n    moveHandleIcon: 'path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z',\n    moveHandleStyle: {\n      color: '#D2DBEE',\n      opacity: 0.7\n    },\n    showDetail: true,\n    showDataShadow: 'auto',\n    realtime: true,\n    zoomLock: false,\n    textStyle: {\n      color: '#6E7079'\n    },\n    brushSelect: true,\n    brushStyle: {\n      color: 'rgba(135,175,274,0.15)'\n    },\n    emphasis: {\n      handleStyle: {\n        borderColor: '#8FB0F7'\n      },\n      moveHandleStyle: {\n        color: '#8FB0F7'\n      }\n    }\n  });\n  return SliderZoomModel;\n}(DataZoomModel);\n\nexport default SliderZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { bind, each, isFunction, isString, indexOf } from 'zrender/lib/core/util';\nimport * as eventTool from 'zrender/lib/core/event';\nimport * as graphic from '../../util/graphic';\nimport * as throttle from '../../util/throttle';\nimport DataZoomView from './DataZoomView';\nimport { linearMap, asc, parsePercent } from '../../util/number';\nimport * as layout from '../../util/layout';\nimport sliderMove from '../helper/sliderMove';\nimport { getAxisMainType, collectReferCoordSysModelInfo } from './helper';\nimport { enableHoverEmphasis } from '../../util/states';\nimport { createSymbol, symbolBuildProxies } from '../../util/symbol';\nimport { deprecateLog } from '../../util/log';\nvar Rect = graphic.Rect;\nvar DEFAULT_LOCATION_EDGE_GAP = 7;\nvar DEFAULT_FRAME_BORDER_WIDTH = 1;\nvar DEFAULT_FILLER_SIZE = 30;\nvar DEFAULT_MOVE_HANDLE_SIZE = 7;\nvar HORIZONTAL = 'horizontal';\nvar VERTICAL = 'vertical';\nvar LABEL_GAP = 5;\nvar SHOW_DATA_SHADOW_SERIES_TYPE = ['line', 'bar', 'candlestick', 'scatter'];\nvar REALTIME_ANIMATION_CONFIG = {\n  easing: 'cubicOut',\n  duration: 100\n};\n\nvar SliderZoomView = function (_super) {\n  __extends(SliderZoomView, _super);\n\n  function SliderZoomView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SliderZoomView.type;\n    _this._displayables = {};\n    return _this;\n  }\n\n  SliderZoomView.prototype.init = function (ecModel, api) {\n    this.api = api;\n    this._onBrush = bind(this._onBrush, this);\n    this._onBrushEnd = bind(this._onBrushEnd, this);\n  };\n\n  SliderZoomView.prototype.render = function (dataZoomModel, ecModel, api, payload) {\n    _super.prototype.render.apply(this, arguments);\n\n    throttle.createOrUpdate(this, '_dispatchZoomAction', dataZoomModel.get('throttle'), 'fixRate');\n    this._orient = dataZoomModel.getOrient();\n\n    if (dataZoomModel.get('show') === false) {\n      this.group.removeAll();\n      return;\n    }\n\n    if (dataZoomModel.noTarget()) {\n      this._clear();\n\n      this.group.removeAll();\n      return;\n    }\n\n    if (!payload || payload.type !== 'dataZoom' || payload.from !== this.uid) {\n      this._buildView();\n    }\n\n    this._updateView();\n  };\n\n  SliderZoomView.prototype.dispose = function () {\n    this._clear();\n\n    _super.prototype.dispose.apply(this, arguments);\n  };\n\n  SliderZoomView.prototype._clear = function () {\n    throttle.clear(this, '_dispatchZoomAction');\n    var zr = this.api.getZr();\n    zr.off('mousemove', this._onBrush);\n    zr.off('mouseup', this._onBrushEnd);\n  };\n\n  SliderZoomView.prototype._buildView = function () {\n    var thisGroup = this.group;\n    thisGroup.removeAll();\n    this._brushing = false;\n    this._displayables.brushRect = null;\n\n    this._resetLocation();\n\n    this._resetInterval();\n\n    var barGroup = this._displayables.sliderGroup = new graphic.Group();\n\n    this._renderBackground();\n\n    this._renderHandle();\n\n    this._renderDataShadow();\n\n    thisGroup.add(barGroup);\n\n    this._positionGroup();\n  };\n\n  SliderZoomView.prototype._resetLocation = function () {\n    var dataZoomModel = this.dataZoomModel;\n    var api = this.api;\n    var showMoveHandle = dataZoomModel.get('brushSelect');\n    var moveHandleSize = showMoveHandle ? DEFAULT_MOVE_HANDLE_SIZE : 0;\n\n    var coordRect = this._findCoordRect();\n\n    var ecSize = {\n      width: api.getWidth(),\n      height: api.getHeight()\n    };\n    var positionInfo = this._orient === HORIZONTAL ? {\n      right: ecSize.width - coordRect.x - coordRect.width,\n      top: ecSize.height - DEFAULT_FILLER_SIZE - DEFAULT_LOCATION_EDGE_GAP - moveHandleSize,\n      width: coordRect.width,\n      height: DEFAULT_FILLER_SIZE\n    } : {\n      right: DEFAULT_LOCATION_EDGE_GAP,\n      top: coordRect.y,\n      width: DEFAULT_FILLER_SIZE,\n      height: coordRect.height\n    };\n    var layoutParams = layout.getLayoutParams(dataZoomModel.option);\n    each(['right', 'top', 'width', 'height'], function (name) {\n      if (layoutParams[name] === 'ph') {\n        layoutParams[name] = positionInfo[name];\n      }\n    });\n    var layoutRect = layout.getLayoutRect(layoutParams, ecSize);\n    this._location = {\n      x: layoutRect.x,\n      y: layoutRect.y\n    };\n    this._size = [layoutRect.width, layoutRect.height];\n    this._orient === VERTICAL && this._size.reverse();\n  };\n\n  SliderZoomView.prototype._positionGroup = function () {\n    var thisGroup = this.group;\n    var location = this._location;\n    var orient = this._orient;\n    var targetAxisModel = this.dataZoomModel.getFirstTargetAxisModel();\n    var inverse = targetAxisModel && targetAxisModel.get('inverse');\n    var sliderGroup = this._displayables.sliderGroup;\n    var otherAxisInverse = (this._dataShadowInfo || {}).otherAxisInverse;\n    sliderGroup.attr(orient === HORIZONTAL && !inverse ? {\n      scaleY: otherAxisInverse ? 1 : -1,\n      scaleX: 1\n    } : orient === HORIZONTAL && inverse ? {\n      scaleY: otherAxisInverse ? 1 : -1,\n      scaleX: -1\n    } : orient === VERTICAL && !inverse ? {\n      scaleY: otherAxisInverse ? -1 : 1,\n      scaleX: 1,\n      rotation: Math.PI / 2\n    } : {\n      scaleY: otherAxisInverse ? -1 : 1,\n      scaleX: -1,\n      rotation: Math.PI / 2\n    });\n    var rect = thisGroup.getBoundingRect([sliderGroup]);\n    thisGroup.x = location.x - rect.x;\n    thisGroup.y = location.y - rect.y;\n    thisGroup.markRedraw();\n  };\n\n  SliderZoomView.prototype._getViewExtent = function () {\n    return [0, this._size[0]];\n  };\n\n  SliderZoomView.prototype._renderBackground = function () {\n    var dataZoomModel = this.dataZoomModel;\n    var size = this._size;\n    var barGroup = this._displayables.sliderGroup;\n    var brushSelect = dataZoomModel.get('brushSelect');\n    barGroup.add(new Rect({\n      silent: true,\n      shape: {\n        x: 0,\n        y: 0,\n        width: size[0],\n        height: size[1]\n      },\n      style: {\n        fill: dataZoomModel.get('backgroundColor')\n      },\n      z2: -40\n    }));\n    var clickPanel = new Rect({\n      shape: {\n        x: 0,\n        y: 0,\n        width: size[0],\n        height: size[1]\n      },\n      style: {\n        fill: 'transparent'\n      },\n      z2: 0,\n      onclick: bind(this._onClickPanel, this)\n    });\n    var zr = this.api.getZr();\n\n    if (brushSelect) {\n      clickPanel.on('mousedown', this._onBrushStart, this);\n      clickPanel.cursor = 'crosshair';\n      zr.on('mousemove', this._onBrush);\n      zr.on('mouseup', this._onBrushEnd);\n    } else {\n      zr.off('mousemove', this._onBrush);\n      zr.off('mouseup', this._onBrushEnd);\n    }\n\n    barGroup.add(clickPanel);\n  };\n\n  SliderZoomView.prototype._renderDataShadow = function () {\n    var info = this._dataShadowInfo = this._prepareDataShadowInfo();\n\n    this._displayables.dataShadowSegs = [];\n\n    if (!info) {\n      return;\n    }\n\n    var size = this._size;\n    var seriesModel = info.series;\n    var data = seriesModel.getRawData();\n    var otherDim = seriesModel.getShadowDim ? seriesModel.getShadowDim() : info.otherDim;\n\n    if (otherDim == null) {\n      return;\n    }\n\n    var otherDataExtent = data.getDataExtent(otherDim);\n    var otherOffset = (otherDataExtent[1] - otherDataExtent[0]) * 0.3;\n    otherDataExtent = [otherDataExtent[0] - otherOffset, otherDataExtent[1] + otherOffset];\n    var otherShadowExtent = [0, size[1]];\n    var thisShadowExtent = [0, size[0]];\n    var areaPoints = [[size[0], 0], [0, 0]];\n    var linePoints = [];\n    var step = thisShadowExtent[1] / (data.count() - 1);\n    var thisCoord = 0;\n    var stride = Math.round(data.count() / size[0]);\n    var lastIsEmpty;\n    data.each([otherDim], function (value, index) {\n      if (stride > 0 && index % stride) {\n        thisCoord += step;\n        return;\n      }\n\n      var isEmpty = value == null || isNaN(value) || value === '';\n      var otherCoord = isEmpty ? 0 : linearMap(value, otherDataExtent, otherShadowExtent, true);\n\n      if (isEmpty && !lastIsEmpty && index) {\n        areaPoints.push([areaPoints[areaPoints.length - 1][0], 0]);\n        linePoints.push([linePoints[linePoints.length - 1][0], 0]);\n      } else if (!isEmpty && lastIsEmpty) {\n        areaPoints.push([thisCoord, 0]);\n        linePoints.push([thisCoord, 0]);\n      }\n\n      areaPoints.push([thisCoord, otherCoord]);\n      linePoints.push([thisCoord, otherCoord]);\n      thisCoord += step;\n      lastIsEmpty = isEmpty;\n    });\n    var dataZoomModel = this.dataZoomModel;\n\n    function createDataShadowGroup(isSelectedArea) {\n      var model = dataZoomModel.getModel(isSelectedArea ? 'selectedDataBackground' : 'dataBackground');\n      var group = new graphic.Group();\n      var polygon = new graphic.Polygon({\n        shape: {\n          points: areaPoints\n        },\n        segmentIgnoreThreshold: 1,\n        style: model.getModel('areaStyle').getAreaStyle(),\n        silent: true,\n        z2: -20\n      });\n      var polyline = new graphic.Polyline({\n        shape: {\n          points: linePoints\n        },\n        segmentIgnoreThreshold: 1,\n        style: model.getModel('lineStyle').getLineStyle(),\n        silent: true,\n        z2: -19\n      });\n      group.add(polygon);\n      group.add(polyline);\n      return group;\n    }\n\n    for (var i = 0; i < 3; i++) {\n      var group = createDataShadowGroup(i === 1);\n\n      this._displayables.sliderGroup.add(group);\n\n      this._displayables.dataShadowSegs.push(group);\n    }\n  };\n\n  SliderZoomView.prototype._prepareDataShadowInfo = function () {\n    var dataZoomModel = this.dataZoomModel;\n    var showDataShadow = dataZoomModel.get('showDataShadow');\n\n    if (showDataShadow === false) {\n      return;\n    }\n\n    var result;\n    var ecModel = this.ecModel;\n    dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n      var seriesModels = dataZoomModel.getAxisProxy(axisDim, axisIndex).getTargetSeriesModels();\n      each(seriesModels, function (seriesModel) {\n        if (result) {\n          return;\n        }\n\n        if (showDataShadow !== true && indexOf(SHOW_DATA_SHADOW_SERIES_TYPE, seriesModel.get('type')) < 0) {\n          return;\n        }\n\n        var thisAxis = ecModel.getComponent(getAxisMainType(axisDim), axisIndex).axis;\n        var otherDim = getOtherDim(axisDim);\n        var otherAxisInverse;\n        var coordSys = seriesModel.coordinateSystem;\n\n        if (otherDim != null && coordSys.getOtherAxis) {\n          otherAxisInverse = coordSys.getOtherAxis(thisAxis).inverse;\n        }\n\n        otherDim = seriesModel.getData().mapDimension(otherDim);\n        result = {\n          thisAxis: thisAxis,\n          series: seriesModel,\n          thisDim: axisDim,\n          otherDim: otherDim,\n          otherAxisInverse: otherAxisInverse\n        };\n      }, this);\n    }, this);\n    return result;\n  };\n\n  SliderZoomView.prototype._renderHandle = function () {\n    var thisGroup = this.group;\n    var displayables = this._displayables;\n    var handles = displayables.handles = [null, null];\n    var handleLabels = displayables.handleLabels = [null, null];\n    var sliderGroup = this._displayables.sliderGroup;\n    var size = this._size;\n    var dataZoomModel = this.dataZoomModel;\n    var api = this.api;\n    var borderRadius = dataZoomModel.get('borderRadius') || 0;\n    var brushSelect = dataZoomModel.get('brushSelect');\n    var filler = displayables.filler = new Rect({\n      silent: brushSelect,\n      style: {\n        fill: dataZoomModel.get('fillerColor')\n      },\n      textConfig: {\n        position: 'inside'\n      }\n    });\n    sliderGroup.add(filler);\n    sliderGroup.add(new Rect({\n      silent: true,\n      subPixelOptimize: true,\n      shape: {\n        x: 0,\n        y: 0,\n        width: size[0],\n        height: size[1],\n        r: borderRadius\n      },\n      style: {\n        stroke: dataZoomModel.get('dataBackgroundColor') || dataZoomModel.get('borderColor'),\n        lineWidth: DEFAULT_FRAME_BORDER_WIDTH,\n        fill: 'rgba(0,0,0,0)'\n      }\n    }));\n    each([0, 1], function (handleIndex) {\n      var iconStr = dataZoomModel.get('handleIcon');\n\n      if (!symbolBuildProxies[iconStr] && iconStr.indexOf('path://') < 0) {\n        iconStr = 'path://' + iconStr;\n\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateLog('handleIcon now needs \\'path://\\' prefix when using a path string');\n        }\n      }\n\n      var path = createSymbol(iconStr, -1, 0, 2, 2, null, true);\n      path.attr({\n        cursor: getCursor(this._orient),\n        draggable: true,\n        drift: bind(this._onDragMove, this, handleIndex),\n        ondragend: bind(this._onDragEnd, this),\n        onmouseover: bind(this._showDataInfo, this, true),\n        onmouseout: bind(this._showDataInfo, this, false),\n        z2: 5\n      });\n      var bRect = path.getBoundingRect();\n      var handleSize = dataZoomModel.get('handleSize');\n      this._handleHeight = parsePercent(handleSize, this._size[1]);\n      this._handleWidth = bRect.width / bRect.height * this._handleHeight;\n      path.setStyle(dataZoomModel.getModel('handleStyle').getItemStyle());\n      path.style.strokeNoScale = true;\n      path.rectHover = true;\n      path.ensureState('emphasis').style = dataZoomModel.getModel(['emphasis', 'handleStyle']).getItemStyle();\n      enableHoverEmphasis(path);\n      var handleColor = dataZoomModel.get('handleColor');\n\n      if (handleColor != null) {\n        path.style.fill = handleColor;\n      }\n\n      sliderGroup.add(handles[handleIndex] = path);\n      var textStyleModel = dataZoomModel.getModel('textStyle');\n      thisGroup.add(handleLabels[handleIndex] = new graphic.Text({\n        silent: true,\n        invisible: true,\n        style: {\n          x: 0,\n          y: 0,\n          text: '',\n          verticalAlign: 'middle',\n          align: 'center',\n          fill: textStyleModel.getTextColor(),\n          font: textStyleModel.getFont()\n        },\n        z2: 10\n      }));\n    }, this);\n    var actualMoveZone = filler;\n\n    if (brushSelect) {\n      var moveHandleHeight = parsePercent(dataZoomModel.get('moveHandleSize'), size[1]);\n      var moveHandle_1 = displayables.moveHandle = new graphic.Rect({\n        style: dataZoomModel.getModel('moveHandleStyle').getItemStyle(),\n        silent: true,\n        shape: {\n          r: [0, 0, 2, 2],\n          y: size[1] - 0.5,\n          height: moveHandleHeight\n        }\n      });\n      var iconSize = moveHandleHeight * 0.8;\n      var moveHandleIcon = displayables.moveHandleIcon = createSymbol(dataZoomModel.get('moveHandleIcon'), -iconSize / 2, -iconSize / 2, iconSize, iconSize, '#fff', true);\n      moveHandleIcon.silent = true;\n      moveHandleIcon.y = size[1] + moveHandleHeight / 2 - 0.5;\n      moveHandle_1.ensureState('emphasis').style = dataZoomModel.getModel(['emphasis', 'moveHandleStyle']).getItemStyle();\n      var moveZoneExpandSize = Math.min(size[1] / 2, Math.max(moveHandleHeight, 10));\n      actualMoveZone = displayables.moveZone = new graphic.Rect({\n        invisible: true,\n        shape: {\n          y: size[1] - moveZoneExpandSize,\n          height: moveHandleHeight + moveZoneExpandSize\n        }\n      });\n      actualMoveZone.on('mouseover', function () {\n        api.enterEmphasis(moveHandle_1);\n      }).on('mouseout', function () {\n        api.leaveEmphasis(moveHandle_1);\n      });\n      sliderGroup.add(moveHandle_1);\n      sliderGroup.add(moveHandleIcon);\n      sliderGroup.add(actualMoveZone);\n    }\n\n    actualMoveZone.attr({\n      draggable: true,\n      cursor: getCursor(this._orient),\n      drift: bind(this._onDragMove, this, 'all'),\n      ondragstart: bind(this._showDataInfo, this, true),\n      ondragend: bind(this._onDragEnd, this),\n      onmouseover: bind(this._showDataInfo, this, true),\n      onmouseout: bind(this._showDataInfo, this, false)\n    });\n  };\n\n  SliderZoomView.prototype._resetInterval = function () {\n    var range = this._range = this.dataZoomModel.getPercentRange();\n\n    var viewExtent = this._getViewExtent();\n\n    this._handleEnds = [linearMap(range[0], [0, 100], viewExtent, true), linearMap(range[1], [0, 100], viewExtent, true)];\n  };\n\n  SliderZoomView.prototype._updateInterval = function (handleIndex, delta) {\n    var dataZoomModel = this.dataZoomModel;\n    var handleEnds = this._handleEnds;\n\n    var viewExtend = this._getViewExtent();\n\n    var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\n    var percentExtent = [0, 100];\n    sliderMove(delta, handleEnds, viewExtend, dataZoomModel.get('zoomLock') ? 'all' : handleIndex, minMaxSpan.minSpan != null ? linearMap(minMaxSpan.minSpan, percentExtent, viewExtend, true) : null, minMaxSpan.maxSpan != null ? linearMap(minMaxSpan.maxSpan, percentExtent, viewExtend, true) : null);\n    var lastRange = this._range;\n    var range = this._range = asc([linearMap(handleEnds[0], viewExtend, percentExtent, true), linearMap(handleEnds[1], viewExtend, percentExtent, true)]);\n    return !lastRange || lastRange[0] !== range[0] || lastRange[1] !== range[1];\n  };\n\n  SliderZoomView.prototype._updateView = function (nonRealtime) {\n    var displaybles = this._displayables;\n    var handleEnds = this._handleEnds;\n    var handleInterval = asc(handleEnds.slice());\n    var size = this._size;\n    each([0, 1], function (handleIndex) {\n      var handle = displaybles.handles[handleIndex];\n      var handleHeight = this._handleHeight;\n      handle.attr({\n        scaleX: handleHeight / 2,\n        scaleY: handleHeight / 2,\n        x: handleEnds[handleIndex] + (handleIndex ? -1 : 1),\n        y: size[1] / 2 - handleHeight / 2\n      });\n    }, this);\n    displaybles.filler.setShape({\n      x: handleInterval[0],\n      y: 0,\n      width: handleInterval[1] - handleInterval[0],\n      height: size[1]\n    });\n    var viewExtent = {\n      x: handleInterval[0],\n      width: handleInterval[1] - handleInterval[0]\n    };\n\n    if (displaybles.moveHandle) {\n      displaybles.moveHandle.setShape(viewExtent);\n      displaybles.moveZone.setShape(viewExtent);\n      displaybles.moveZone.getBoundingRect();\n      displaybles.moveHandleIcon && displaybles.moveHandleIcon.attr('x', viewExtent.x + viewExtent.width / 2);\n    }\n\n    var dataShadowSegs = displaybles.dataShadowSegs;\n    var segIntervals = [0, handleInterval[0], handleInterval[1], size[0]];\n\n    for (var i = 0; i < dataShadowSegs.length; i++) {\n      var segGroup = dataShadowSegs[i];\n      var clipPath = segGroup.getClipPath();\n\n      if (!clipPath) {\n        clipPath = new graphic.Rect();\n        segGroup.setClipPath(clipPath);\n      }\n\n      clipPath.setShape({\n        x: segIntervals[i],\n        y: 0,\n        width: segIntervals[i + 1] - segIntervals[i],\n        height: size[1]\n      });\n    }\n\n    this._updateDataInfo(nonRealtime);\n  };\n\n  SliderZoomView.prototype._updateDataInfo = function (nonRealtime) {\n    var dataZoomModel = this.dataZoomModel;\n    var displaybles = this._displayables;\n    var handleLabels = displaybles.handleLabels;\n    var orient = this._orient;\n    var labelTexts = ['', ''];\n\n    if (dataZoomModel.get('showDetail')) {\n      var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\n\n      if (axisProxy) {\n        var axis = axisProxy.getAxisModel().axis;\n        var range = this._range;\n        var dataInterval = nonRealtime ? axisProxy.calculateDataWindow({\n          start: range[0],\n          end: range[1]\n        }).valueWindow : axisProxy.getDataValueWindow();\n        labelTexts = [this._formatLabel(dataInterval[0], axis), this._formatLabel(dataInterval[1], axis)];\n      }\n    }\n\n    var orderedHandleEnds = asc(this._handleEnds.slice());\n    setLabel.call(this, 0);\n    setLabel.call(this, 1);\n\n    function setLabel(handleIndex) {\n      var barTransform = graphic.getTransform(displaybles.handles[handleIndex].parent, this.group);\n      var direction = graphic.transformDirection(handleIndex === 0 ? 'right' : 'left', barTransform);\n      var offset = this._handleWidth / 2 + LABEL_GAP;\n      var textPoint = graphic.applyTransform([orderedHandleEnds[handleIndex] + (handleIndex === 0 ? -offset : offset), this._size[1] / 2], barTransform);\n      handleLabels[handleIndex].setStyle({\n        x: textPoint[0],\n        y: textPoint[1],\n        verticalAlign: orient === HORIZONTAL ? 'middle' : direction,\n        align: orient === HORIZONTAL ? direction : 'center',\n        text: labelTexts[handleIndex]\n      });\n    }\n  };\n\n  SliderZoomView.prototype._formatLabel = function (value, axis) {\n    var dataZoomModel = this.dataZoomModel;\n    var labelFormatter = dataZoomModel.get('labelFormatter');\n    var labelPrecision = dataZoomModel.get('labelPrecision');\n\n    if (labelPrecision == null || labelPrecision === 'auto') {\n      labelPrecision = axis.getPixelPrecision();\n    }\n\n    var valueStr = value == null || isNaN(value) ? '' : axis.type === 'category' || axis.type === 'time' ? axis.scale.getLabel({\n      value: Math.round(value)\n    }) : value.toFixed(Math.min(labelPrecision, 20));\n    return isFunction(labelFormatter) ? labelFormatter(value, valueStr) : isString(labelFormatter) ? labelFormatter.replace('{value}', valueStr) : valueStr;\n  };\n\n  SliderZoomView.prototype._showDataInfo = function (showOrHide) {\n    showOrHide = this._dragging || showOrHide;\n    var displayables = this._displayables;\n    var handleLabels = displayables.handleLabels;\n    handleLabels[0].attr('invisible', !showOrHide);\n    handleLabels[1].attr('invisible', !showOrHide);\n    displayables.moveHandle && this.api[showOrHide ? 'enterEmphasis' : 'leaveEmphasis'](displayables.moveHandle, 1);\n  };\n\n  SliderZoomView.prototype._onDragMove = function (handleIndex, dx, dy, event) {\n    this._dragging = true;\n    eventTool.stop(event.event);\n\n    var barTransform = this._displayables.sliderGroup.getLocalTransform();\n\n    var vertex = graphic.applyTransform([dx, dy], barTransform, true);\n\n    var changed = this._updateInterval(handleIndex, vertex[0]);\n\n    var realtime = this.dataZoomModel.get('realtime');\n\n    this._updateView(!realtime);\n\n    changed && realtime && this._dispatchZoomAction(true);\n  };\n\n  SliderZoomView.prototype._onDragEnd = function () {\n    this._dragging = false;\n\n    this._showDataInfo(false);\n\n    var realtime = this.dataZoomModel.get('realtime');\n    !realtime && this._dispatchZoomAction(false);\n  };\n\n  SliderZoomView.prototype._onClickPanel = function (e) {\n    var size = this._size;\n\n    var localPoint = this._displayables.sliderGroup.transformCoordToLocal(e.offsetX, e.offsetY);\n\n    if (localPoint[0] < 0 || localPoint[0] > size[0] || localPoint[1] < 0 || localPoint[1] > size[1]) {\n      return;\n    }\n\n    var handleEnds = this._handleEnds;\n    var center = (handleEnds[0] + handleEnds[1]) / 2;\n\n    var changed = this._updateInterval('all', localPoint[0] - center);\n\n    this._updateView();\n\n    changed && this._dispatchZoomAction(false);\n  };\n\n  SliderZoomView.prototype._onBrushStart = function (e) {\n    var x = e.offsetX;\n    var y = e.offsetY;\n    this._brushStart = new graphic.Point(x, y);\n    this._brushing = true;\n    this._brushStartTime = +new Date();\n  };\n\n  SliderZoomView.prototype._onBrushEnd = function (e) {\n    if (!this._brushing) {\n      return;\n    }\n\n    var brushRect = this._displayables.brushRect;\n    this._brushing = false;\n\n    if (!brushRect) {\n      return;\n    }\n\n    brushRect.attr('ignore', true);\n    var brushShape = brushRect.shape;\n    var brushEndTime = +new Date();\n\n    if (brushEndTime - this._brushStartTime < 200 && Math.abs(brushShape.width) < 5) {\n      return;\n    }\n\n    var viewExtend = this._getViewExtent();\n\n    var percentExtent = [0, 100];\n    this._range = asc([linearMap(brushShape.x, viewExtend, percentExtent, true), linearMap(brushShape.x + brushShape.width, viewExtend, percentExtent, true)]);\n    this._handleEnds = [brushShape.x, brushShape.x + brushShape.width];\n\n    this._updateView();\n\n    this._dispatchZoomAction(false);\n  };\n\n  SliderZoomView.prototype._onBrush = function (e) {\n    if (this._brushing) {\n      eventTool.stop(e.event);\n\n      this._updateBrushRect(e.offsetX, e.offsetY);\n    }\n  };\n\n  SliderZoomView.prototype._updateBrushRect = function (mouseX, mouseY) {\n    var displayables = this._displayables;\n    var dataZoomModel = this.dataZoomModel;\n    var brushRect = displayables.brushRect;\n\n    if (!brushRect) {\n      brushRect = displayables.brushRect = new Rect({\n        silent: true,\n        style: dataZoomModel.getModel('brushStyle').getItemStyle()\n      });\n      displayables.sliderGroup.add(brushRect);\n    }\n\n    brushRect.attr('ignore', false);\n    var brushStart = this._brushStart;\n    var sliderGroup = this._displayables.sliderGroup;\n    var endPoint = sliderGroup.transformCoordToLocal(mouseX, mouseY);\n    var startPoint = sliderGroup.transformCoordToLocal(brushStart.x, brushStart.y);\n    var size = this._size;\n    endPoint[0] = Math.max(Math.min(size[0], endPoint[0]), 0);\n    brushRect.setShape({\n      x: startPoint[0],\n      y: 0,\n      width: endPoint[0] - startPoint[0],\n      height: size[1]\n    });\n  };\n\n  SliderZoomView.prototype._dispatchZoomAction = function (realtime) {\n    var range = this._range;\n    this.api.dispatchAction({\n      type: 'dataZoom',\n      from: this.uid,\n      dataZoomId: this.dataZoomModel.id,\n      animation: realtime ? REALTIME_ANIMATION_CONFIG : null,\n      start: range[0],\n      end: range[1]\n    });\n  };\n\n  SliderZoomView.prototype._findCoordRect = function () {\n    var rect;\n    var coordSysInfoList = collectReferCoordSysModelInfo(this.dataZoomModel).infoList;\n\n    if (!rect && coordSysInfoList.length) {\n      var coordSys = coordSysInfoList[0].model.coordinateSystem;\n      rect = coordSys.getRect && coordSys.getRect();\n    }\n\n    if (!rect) {\n      var width = this.api.getWidth();\n      var height = this.api.getHeight();\n      rect = {\n        x: width * 0.2,\n        y: height * 0.2,\n        width: width * 0.6,\n        height: height * 0.6\n      };\n    }\n\n    return rect;\n  };\n\n  SliderZoomView.type = 'dataZoom.slider';\n  return SliderZoomView;\n}(DataZoomView);\n\nfunction getOtherDim(thisDim) {\n  var map = {\n    x: 'y',\n    y: 'x',\n    radius: 'angle',\n    angle: 'radius'\n  };\n  return map[thisDim];\n}\n\nfunction getCursor(orient) {\n  return orient === 'vertical' ? 'ns-resize' : 'ew-resize';\n}\n\nexport default SliderZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SliderZoomModel from './SliderZoomModel';\nimport SliderZoomView from './SliderZoomView';\nimport installCommon from './installCommon';\nexport function install(registers) {\n  registers.registerComponentModel(SliderZoomModel);\n  registers.registerComponentView(SliderZoomView);\n  installCommon(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport { install as installDataZoomInside } from './installDataZoomInside';\nimport { install as installDataZoomSlider } from './installDataZoomSlider';\nexport function install(registers) {\n  use(installDataZoomInside);\n  use(installDataZoomSlider);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar visualDefault = {\n  get: function (visualType, key, isCategory) {\n    var value = zrUtil.clone((defaultOption[visualType] || {})[key]);\n    return isCategory ? zrUtil.isArray(value) ? value[value.length - 1] : value : value;\n  }\n};\nvar defaultOption = {\n  color: {\n    active: ['#006edd', '#e0ffff'],\n    inactive: ['rgba(0,0,0,0)']\n  },\n  colorHue: {\n    active: [0, 360],\n    inactive: [0, 0]\n  },\n  colorSaturation: {\n    active: [0.3, 1],\n    inactive: [0, 0]\n  },\n  colorLightness: {\n    active: [0.9, 0.5],\n    inactive: [0, 0]\n  },\n  colorAlpha: {\n    active: [0.3, 1],\n    inactive: [0, 0]\n  },\n  opacity: {\n    active: [0.3, 1],\n    inactive: [0, 0]\n  },\n  symbol: {\n    active: ['circle', 'roundRect', 'diamond'],\n    inactive: ['none']\n  },\n  symbolSize: {\n    active: [10, 50],\n    inactive: [0, 0]\n  }\n};\nexport default visualDefault;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport visualDefault from '../../visual/visualDefault';\nimport VisualMapping from '../../visual/VisualMapping';\nimport * as visualSolution from '../../visual/visualSolution';\nimport * as modelUtil from '../../util/model';\nimport * as numberUtil from '../../util/number';\nimport ComponentModel from '../../model/Component';\nvar mapVisual = VisualMapping.mapVisual;\nvar eachVisual = VisualMapping.eachVisual;\nvar isArray = zrUtil.isArray;\nvar each = zrUtil.each;\nvar asc = numberUtil.asc;\nvar linearMap = numberUtil.linearMap;\n\nvar VisualMapModel = function (_super) {\n  __extends(VisualMapModel, _super);\n\n  function VisualMapModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = VisualMapModel.type;\n    _this.stateList = ['inRange', 'outOfRange'];\n    _this.replacableOptionKeys = ['inRange', 'outOfRange', 'target', 'controller', 'color'];\n    _this.layoutMode = {\n      type: 'box',\n      ignoreSize: true\n    };\n    _this.dataBound = [-Infinity, Infinity];\n    _this.targetVisuals = {};\n    _this.controllerVisuals = {};\n    return _this;\n  }\n\n  VisualMapModel.prototype.init = function (option, parentModel, ecModel) {\n    this.mergeDefaultAndTheme(option, ecModel);\n  };\n\n  VisualMapModel.prototype.optionUpdated = function (newOption, isInit) {\n    var thisOption = this.option;\n\n    if (!env.canvasSupported) {\n      thisOption.realtime = false;\n    }\n\n    !isInit && visualSolution.replaceVisualOption(thisOption, newOption, this.replacableOptionKeys);\n    this.textStyleModel = this.getModel('textStyle');\n    this.resetItemSize();\n    this.completeVisualOption();\n  };\n\n  VisualMapModel.prototype.resetVisual = function (supplementVisualOption) {\n    var stateList = this.stateList;\n    supplementVisualOption = zrUtil.bind(supplementVisualOption, this);\n    this.controllerVisuals = visualSolution.createVisualMappings(this.option.controller, stateList, supplementVisualOption);\n    this.targetVisuals = visualSolution.createVisualMappings(this.option.target, stateList, supplementVisualOption);\n  };\n\n  VisualMapModel.prototype.getTargetSeriesIndices = function () {\n    var optionSeriesIndex = this.option.seriesIndex;\n    var seriesIndices = [];\n\n    if (optionSeriesIndex == null || optionSeriesIndex === 'all') {\n      this.ecModel.eachSeries(function (seriesModel, index) {\n        seriesIndices.push(index);\n      });\n    } else {\n      seriesIndices = modelUtil.normalizeToArray(optionSeriesIndex);\n    }\n\n    return seriesIndices;\n  };\n\n  VisualMapModel.prototype.eachTargetSeries = function (callback, context) {\n    zrUtil.each(this.getTargetSeriesIndices(), function (seriesIndex) {\n      var seriesModel = this.ecModel.getSeriesByIndex(seriesIndex);\n\n      if (seriesModel) {\n        callback.call(context, seriesModel);\n      }\n    }, this);\n  };\n\n  VisualMapModel.prototype.isTargetSeries = function (seriesModel) {\n    var is = false;\n    this.eachTargetSeries(function (model) {\n      model === seriesModel && (is = true);\n    });\n    return is;\n  };\n\n  VisualMapModel.prototype.formatValueText = function (value, isCategory, edgeSymbols) {\n    var option = this.option;\n    var precision = option.precision;\n    var dataBound = this.dataBound;\n    var formatter = option.formatter;\n    var isMinMax;\n    edgeSymbols = edgeSymbols || ['<', '>'];\n\n    if (zrUtil.isArray(value)) {\n      value = value.slice();\n      isMinMax = true;\n    }\n\n    var textValue = isCategory ? value : isMinMax ? [toFixed(value[0]), toFixed(value[1])] : toFixed(value);\n\n    if (zrUtil.isString(formatter)) {\n      return formatter.replace('{value}', isMinMax ? textValue[0] : textValue).replace('{value2}', isMinMax ? textValue[1] : textValue);\n    } else if (zrUtil.isFunction(formatter)) {\n      return isMinMax ? formatter(value[0], value[1]) : formatter(value);\n    }\n\n    if (isMinMax) {\n      if (value[0] === dataBound[0]) {\n        return edgeSymbols[0] + ' ' + textValue[1];\n      } else if (value[1] === dataBound[1]) {\n        return edgeSymbols[1] + ' ' + textValue[0];\n      } else {\n        return textValue[0] + ' - ' + textValue[1];\n      }\n    } else {\n      return textValue;\n    }\n\n    function toFixed(val) {\n      return val === dataBound[0] ? 'min' : val === dataBound[1] ? 'max' : (+val).toFixed(Math.min(precision, 20));\n    }\n  };\n\n  VisualMapModel.prototype.resetExtent = function () {\n    var thisOption = this.option;\n    var extent = asc([thisOption.min, thisOption.max]);\n    this._dataExtent = extent;\n  };\n\n  VisualMapModel.prototype.getDataDimension = function (list) {\n    var optDim = this.option.dimension;\n    var listDimensions = list.dimensions;\n\n    if (optDim == null && !listDimensions.length) {\n      return;\n    }\n\n    if (optDim != null) {\n      return list.getDimension(optDim);\n    }\n\n    var dimNames = list.dimensions;\n\n    for (var i = dimNames.length - 1; i >= 0; i--) {\n      var dimName = dimNames[i];\n      var dimInfo = list.getDimensionInfo(dimName);\n\n      if (!dimInfo.isCalculationCoord) {\n        return dimName;\n      }\n    }\n  };\n\n  VisualMapModel.prototype.getExtent = function () {\n    return this._dataExtent.slice();\n  };\n\n  VisualMapModel.prototype.completeVisualOption = function () {\n    var ecModel = this.ecModel;\n    var thisOption = this.option;\n    var base = {\n      inRange: thisOption.inRange,\n      outOfRange: thisOption.outOfRange\n    };\n    var target = thisOption.target || (thisOption.target = {});\n    var controller = thisOption.controller || (thisOption.controller = {});\n    zrUtil.merge(target, base);\n    zrUtil.merge(controller, base);\n    var isCategory = this.isCategory();\n    completeSingle.call(this, target);\n    completeSingle.call(this, controller);\n    completeInactive.call(this, target, 'inRange', 'outOfRange');\n    completeController.call(this, controller);\n\n    function completeSingle(base) {\n      if (isArray(thisOption.color) && !base.inRange) {\n        base.inRange = {\n          color: thisOption.color.slice().reverse()\n        };\n      }\n\n      base.inRange = base.inRange || {\n        color: ecModel.get('gradientColor')\n      };\n    }\n\n    function completeInactive(base, stateExist, stateAbsent) {\n      var optExist = base[stateExist];\n      var optAbsent = base[stateAbsent];\n\n      if (optExist && !optAbsent) {\n        optAbsent = base[stateAbsent] = {};\n        each(optExist, function (visualData, visualType) {\n          if (!VisualMapping.isValidType(visualType)) {\n            return;\n          }\n\n          var defa = visualDefault.get(visualType, 'inactive', isCategory);\n\n          if (defa != null) {\n            optAbsent[visualType] = defa;\n\n            if (visualType === 'color' && !optAbsent.hasOwnProperty('opacity') && !optAbsent.hasOwnProperty('colorAlpha')) {\n              optAbsent.opacity = [0, 0];\n            }\n          }\n        });\n      }\n    }\n\n    function completeController(controller) {\n      var symbolExists = (controller.inRange || {}).symbol || (controller.outOfRange || {}).symbol;\n      var symbolSizeExists = (controller.inRange || {}).symbolSize || (controller.outOfRange || {}).symbolSize;\n      var inactiveColor = this.get('inactiveColor');\n      each(this.stateList, function (state) {\n        var itemSize = this.itemSize;\n        var visuals = controller[state];\n\n        if (!visuals) {\n          visuals = controller[state] = {\n            color: isCategory ? inactiveColor : [inactiveColor]\n          };\n        }\n\n        if (visuals.symbol == null) {\n          visuals.symbol = symbolExists && zrUtil.clone(symbolExists) || (isCategory ? 'roundRect' : ['roundRect']);\n        }\n\n        if (visuals.symbolSize == null) {\n          visuals.symbolSize = symbolSizeExists && zrUtil.clone(symbolSizeExists) || (isCategory ? itemSize[0] : [itemSize[0], itemSize[0]]);\n        }\n\n        visuals.symbol = mapVisual(visuals.symbol, function (symbol) {\n          return symbol === 'none' || symbol === 'square' ? 'roundRect' : symbol;\n        });\n        var symbolSize = visuals.symbolSize;\n\n        if (symbolSize != null) {\n          var max_1 = -Infinity;\n          eachVisual(symbolSize, function (value) {\n            value > max_1 && (max_1 = value);\n          });\n          visuals.symbolSize = mapVisual(symbolSize, function (value) {\n            return linearMap(value, [0, max_1], [0, itemSize[0]], true);\n          });\n        }\n      }, this);\n    }\n  };\n\n  VisualMapModel.prototype.resetItemSize = function () {\n    this.itemSize = [parseFloat(this.get('itemWidth')), parseFloat(this.get('itemHeight'))];\n  };\n\n  VisualMapModel.prototype.isCategory = function () {\n    return !!this.option.categories;\n  };\n\n  VisualMapModel.prototype.setSelected = function (selected) {};\n\n  VisualMapModel.prototype.getSelected = function () {\n    return null;\n  };\n\n  VisualMapModel.prototype.getValueState = function (value) {\n    return null;\n  };\n\n  VisualMapModel.prototype.getVisualMeta = function (getColorVisual) {\n    return null;\n  };\n\n  VisualMapModel.type = 'visualMap';\n  VisualMapModel.dependencies = ['series'];\n  VisualMapModel.defaultOption = {\n    show: true,\n    zlevel: 0,\n    z: 4,\n    seriesIndex: 'all',\n    min: 0,\n    max: 200,\n    left: 0,\n    right: null,\n    top: null,\n    bottom: 0,\n    itemWidth: null,\n    itemHeight: null,\n    inverse: false,\n    orient: 'vertical',\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderColor: '#ccc',\n    contentColor: '#5793f3',\n    inactiveColor: '#aaa',\n    borderWidth: 0,\n    padding: 5,\n    textGap: 10,\n    precision: 0,\n    textStyle: {\n      color: '#333'\n    }\n  };\n  return VisualMapModel;\n}(ComponentModel);\n\nexport default VisualMapModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport VisualMapModel from './VisualMapModel';\nimport * as numberUtil from '../../util/number';\nimport { inheritDefaultOption } from '../../util/component';\nvar DEFAULT_BAR_BOUND = [20, 140];\n\nvar ContinuousModel = function (_super) {\n  __extends(ContinuousModel, _super);\n\n  function ContinuousModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ContinuousModel.type;\n    return _this;\n  }\n\n  ContinuousModel.prototype.optionUpdated = function (newOption, isInit) {\n    _super.prototype.optionUpdated.apply(this, arguments);\n\n    this.resetExtent();\n    this.resetVisual(function (mappingOption) {\n      mappingOption.mappingMethod = 'linear';\n      mappingOption.dataExtent = this.getExtent();\n    });\n\n    this._resetRange();\n  };\n\n  ContinuousModel.prototype.resetItemSize = function () {\n    _super.prototype.resetItemSize.apply(this, arguments);\n\n    var itemSize = this.itemSize;\n    (itemSize[0] == null || isNaN(itemSize[0])) && (itemSize[0] = DEFAULT_BAR_BOUND[0]);\n    (itemSize[1] == null || isNaN(itemSize[1])) && (itemSize[1] = DEFAULT_BAR_BOUND[1]);\n  };\n\n  ContinuousModel.prototype._resetRange = function () {\n    var dataExtent = this.getExtent();\n    var range = this.option.range;\n\n    if (!range || range.auto) {\n      dataExtent.auto = 1;\n      this.option.range = dataExtent;\n    } else if (zrUtil.isArray(range)) {\n      if (range[0] > range[1]) {\n        range.reverse();\n      }\n\n      range[0] = Math.max(range[0], dataExtent[0]);\n      range[1] = Math.min(range[1], dataExtent[1]);\n    }\n  };\n\n  ContinuousModel.prototype.completeVisualOption = function () {\n    _super.prototype.completeVisualOption.apply(this, arguments);\n\n    zrUtil.each(this.stateList, function (state) {\n      var symbolSize = this.option.controller[state].symbolSize;\n\n      if (symbolSize && symbolSize[0] !== symbolSize[1]) {\n        symbolSize[0] = symbolSize[1] / 3;\n      }\n    }, this);\n  };\n\n  ContinuousModel.prototype.setSelected = function (selected) {\n    this.option.range = selected.slice();\n\n    this._resetRange();\n  };\n\n  ContinuousModel.prototype.getSelected = function () {\n    var dataExtent = this.getExtent();\n    var dataInterval = numberUtil.asc((this.get('range') || []).slice());\n    dataInterval[0] > dataExtent[1] && (dataInterval[0] = dataExtent[1]);\n    dataInterval[1] > dataExtent[1] && (dataInterval[1] = dataExtent[1]);\n    dataInterval[0] < dataExtent[0] && (dataInterval[0] = dataExtent[0]);\n    dataInterval[1] < dataExtent[0] && (dataInterval[1] = dataExtent[0]);\n    return dataInterval;\n  };\n\n  ContinuousModel.prototype.getValueState = function (value) {\n    var range = this.option.range;\n    var dataExtent = this.getExtent();\n    return (range[0] <= dataExtent[0] || range[0] <= value) && (range[1] >= dataExtent[1] || value <= range[1]) ? 'inRange' : 'outOfRange';\n  };\n\n  ContinuousModel.prototype.findTargetDataIndices = function (range) {\n    var result = [];\n    this.eachTargetSeries(function (seriesModel) {\n      var dataIndices = [];\n      var data = seriesModel.getData();\n      data.each(this.getDataDimension(data), function (value, dataIndex) {\n        range[0] <= value && value <= range[1] && dataIndices.push(dataIndex);\n      }, this);\n      result.push({\n        seriesId: seriesModel.id,\n        dataIndex: dataIndices\n      });\n    }, this);\n    return result;\n  };\n\n  ContinuousModel.prototype.getVisualMeta = function (getColorVisual) {\n    var oVals = getColorStopValues(this, 'outOfRange', this.getExtent());\n    var iVals = getColorStopValues(this, 'inRange', this.option.range.slice());\n    var stops = [];\n\n    function setStop(value, valueState) {\n      stops.push({\n        value: value,\n        color: getColorVisual(value, valueState)\n      });\n    }\n\n    var iIdx = 0;\n    var oIdx = 0;\n    var iLen = iVals.length;\n    var oLen = oVals.length;\n\n    for (; oIdx < oLen && (!iVals.length || oVals[oIdx] <= iVals[0]); oIdx++) {\n      if (oVals[oIdx] < iVals[iIdx]) {\n        setStop(oVals[oIdx], 'outOfRange');\n      }\n    }\n\n    for (var first = 1; iIdx < iLen; iIdx++, first = 0) {\n      first && stops.length && setStop(iVals[iIdx], 'outOfRange');\n      setStop(iVals[iIdx], 'inRange');\n    }\n\n    for (var first = 1; oIdx < oLen; oIdx++) {\n      if (!iVals.length || iVals[iVals.length - 1] < oVals[oIdx]) {\n        if (first) {\n          stops.length && setStop(stops[stops.length - 1].value, 'outOfRange');\n          first = 0;\n        }\n\n        setStop(oVals[oIdx], 'outOfRange');\n      }\n    }\n\n    var stopsLen = stops.length;\n    return {\n      stops: stops,\n      outerColors: [stopsLen ? stops[0].color : 'transparent', stopsLen ? stops[stopsLen - 1].color : 'transparent']\n    };\n  };\n\n  ContinuousModel.type = 'visualMap.continuous';\n  ContinuousModel.defaultOption = inheritDefaultOption(VisualMapModel.defaultOption, {\n    align: 'auto',\n    calculable: false,\n    hoverLink: true,\n    realtime: true,\n    handleIcon: 'path://M-11.39,9.77h0a3.5,3.5,0,0,1-3.5,3.5h-22a3.5,3.5,0,0,1-3.5-3.5h0a3.5,3.5,0,0,1,3.5-3.5h22A3.5,3.5,0,0,1-11.39,9.77Z',\n    handleSize: '120%',\n    handleStyle: {\n      borderColor: '#fff',\n      borderWidth: 1\n    },\n    indicatorIcon: 'circle',\n    indicatorSize: '50%',\n    indicatorStyle: {\n      borderColor: '#fff',\n      borderWidth: 2,\n      shadowBlur: 2,\n      shadowOffsetX: 1,\n      shadowOffsetY: 1,\n      shadowColor: 'rgba(0,0,0,0.2)'\n    }\n  });\n  return ContinuousModel;\n}(VisualMapModel);\n\nfunction getColorStopValues(visualMapModel, valueState, dataExtent) {\n  if (dataExtent[0] === dataExtent[1]) {\n    return dataExtent.slice();\n  }\n\n  var count = 200;\n  var step = (dataExtent[1] - dataExtent[0]) / count;\n  var value = dataExtent[0];\n  var stopValues = [];\n\n  for (var i = 0; i <= count && value < dataExtent[1]; i++) {\n    stopValues.push(value);\n    value += step;\n  }\n\n  stopValues.push(dataExtent[1]);\n  return stopValues;\n}\n\nexport default ContinuousModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { Rect } from '../../util/graphic';\nimport * as formatUtil from '../../util/format';\nimport * as layout from '../../util/layout';\nimport VisualMapping from '../../visual/VisualMapping';\nimport ComponentView from '../../view/Component';\n\nvar VisualMapView = function (_super) {\n  __extends(VisualMapView, _super);\n\n  function VisualMapView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = VisualMapView.type;\n    _this.autoPositionValues = {\n      left: 1,\n      right: 1,\n      top: 1,\n      bottom: 1\n    };\n    return _this;\n  }\n\n  VisualMapView.prototype.init = function (ecModel, api) {\n    this.ecModel = ecModel;\n    this.api = api;\n  };\n\n  VisualMapView.prototype.render = function (visualMapModel, ecModel, api, payload) {\n    this.visualMapModel = visualMapModel;\n\n    if (visualMapModel.get('show') === false) {\n      this.group.removeAll();\n      return;\n    }\n\n    this.doRender(visualMapModel, ecModel, api, payload);\n  };\n\n  VisualMapView.prototype.renderBackground = function (group) {\n    var visualMapModel = this.visualMapModel;\n    var padding = formatUtil.normalizeCssArray(visualMapModel.get('padding') || 0);\n    var rect = group.getBoundingRect();\n    group.add(new Rect({\n      z2: -1,\n      silent: true,\n      shape: {\n        x: rect.x - padding[3],\n        y: rect.y - padding[0],\n        width: rect.width + padding[3] + padding[1],\n        height: rect.height + padding[0] + padding[2]\n      },\n      style: {\n        fill: visualMapModel.get('backgroundColor'),\n        stroke: visualMapModel.get('borderColor'),\n        lineWidth: visualMapModel.get('borderWidth')\n      }\n    }));\n  };\n\n  VisualMapView.prototype.getControllerVisual = function (targetValue, visualCluster, opts) {\n    opts = opts || {};\n    var forceState = opts.forceState;\n    var visualMapModel = this.visualMapModel;\n    var visualObj = {};\n\n    if (visualCluster === 'symbol') {\n      visualObj.symbol = visualMapModel.get('itemSymbol');\n    }\n\n    if (visualCluster === 'color') {\n      var defaultColor = visualMapModel.get('contentColor');\n      visualObj.color = defaultColor;\n    }\n\n    function getter(key) {\n      return visualObj[key];\n    }\n\n    function setter(key, value) {\n      visualObj[key] = value;\n    }\n\n    var mappings = visualMapModel.controllerVisuals[forceState || visualMapModel.getValueState(targetValue)];\n    var visualTypes = VisualMapping.prepareVisualTypes(mappings);\n    zrUtil.each(visualTypes, function (type) {\n      var visualMapping = mappings[type];\n\n      if (opts.convertOpacityToAlpha && type === 'opacity') {\n        type = 'colorAlpha';\n        visualMapping = mappings.__alphaForOpacity;\n      }\n\n      if (VisualMapping.dependsOn(type, visualCluster)) {\n        visualMapping && visualMapping.applyVisual(targetValue, getter, setter);\n      }\n    });\n    return visualObj[visualCluster];\n  };\n\n  VisualMapView.prototype.positionGroup = function (group) {\n    var model = this.visualMapModel;\n    var api = this.api;\n    layout.positionElement(group, model.getBoxLayoutParams(), {\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n  };\n\n  VisualMapView.prototype.doRender = function (visualMapModel, ecModel, api, payload) {};\n\n  VisualMapView.type = 'visualMap';\n  return VisualMapView;\n}(ComponentView);\n\nexport default VisualMapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { getLayoutRect } from '../../util/layout';\nvar paramsSet = [['left', 'right', 'width'], ['top', 'bottom', 'height']];\nexport function getItemAlign(visualMapModel, api, itemSize) {\n  var modelOption = visualMapModel.option;\n  var itemAlign = modelOption.align;\n\n  if (itemAlign != null && itemAlign !== 'auto') {\n    return itemAlign;\n  }\n\n  var ecSize = {\n    width: api.getWidth(),\n    height: api.getHeight()\n  };\n  var realIndex = modelOption.orient === 'horizontal' ? 1 : 0;\n  var reals = paramsSet[realIndex];\n  var fakeValue = [0, null, 10];\n  var layoutInput = {};\n\n  for (var i = 0; i < 3; i++) {\n    layoutInput[paramsSet[1 - realIndex][i]] = fakeValue[i];\n    layoutInput[reals[i]] = i === 2 ? itemSize[0] : modelOption[reals[i]];\n  }\n\n  var rParam = [['x', 'width', 3], ['y', 'height', 0]][realIndex];\n  var rect = getLayoutRect(layoutInput, ecSize, modelOption.padding);\n  return reals[(rect.margin[rParam[2]] || 0) + rect[rParam[0]] + rect[rParam[1]] * 0.5 < ecSize[rParam[1]] * 0.5 ? 0 : 1];\n}\nexport function makeHighDownBatch(batch, visualMapModel) {\n  zrUtil.each(batch || [], function (batchItem) {\n    if (batchItem.dataIndex != null) {\n      batchItem.dataIndexInside = batchItem.dataIndex;\n      batchItem.dataIndex = null;\n    }\n\n    batchItem.highlightKey = 'visualMap' + (visualMapModel ? visualMapModel.componentIndex : '');\n  });\n  return batch;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport LinearGradient from 'zrender/lib/graphic/LinearGradient';\nimport * as eventTool from 'zrender/lib/core/event';\nimport VisualMapView from './VisualMapView';\nimport * as graphic from '../../util/graphic';\nimport * as numberUtil from '../../util/number';\nimport sliderMove from '../helper/sliderMove';\nimport * as helper from './helper';\nimport * as modelUtil from '../../util/model';\nimport { parsePercent } from 'zrender/lib/contain/text';\nimport { setAsHighDownDispatcher } from '../../util/states';\nimport { createSymbol } from '../../util/symbol';\nimport ZRImage from 'zrender/lib/graphic/Image';\nimport { getECData } from '../../util/innerStore';\nvar linearMap = numberUtil.linearMap;\nvar each = zrUtil.each;\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar HOVER_LINK_SIZE = 12;\nvar HOVER_LINK_OUT = 6;\n\nvar ContinuousView = function (_super) {\n  __extends(ContinuousView, _super);\n\n  function ContinuousView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ContinuousView.type;\n    _this._shapes = {};\n    _this._dataInterval = [];\n    _this._handleEnds = [];\n    _this._hoverLinkDataIndices = [];\n    return _this;\n  }\n\n  ContinuousView.prototype.doRender = function (visualMapModel, ecModel, api, payload) {\n    this._api = api;\n\n    if (!payload || payload.type !== 'selectDataRange' || payload.from !== this.uid) {\n      this._buildView();\n    }\n  };\n\n  ContinuousView.prototype._buildView = function () {\n    this.group.removeAll();\n    var visualMapModel = this.visualMapModel;\n    var thisGroup = this.group;\n    this._orient = visualMapModel.get('orient');\n    this._useHandle = visualMapModel.get('calculable');\n\n    this._resetInterval();\n\n    this._renderBar(thisGroup);\n\n    var dataRangeText = visualMapModel.get('text');\n\n    this._renderEndsText(thisGroup, dataRangeText, 0);\n\n    this._renderEndsText(thisGroup, dataRangeText, 1);\n\n    this._updateView(true);\n\n    this.renderBackground(thisGroup);\n\n    this._updateView();\n\n    this._enableHoverLinkToSeries();\n\n    this._enableHoverLinkFromSeries();\n\n    this.positionGroup(thisGroup);\n  };\n\n  ContinuousView.prototype._renderEndsText = function (group, dataRangeText, endsIndex) {\n    if (!dataRangeText) {\n      return;\n    }\n\n    var text = dataRangeText[1 - endsIndex];\n    text = text != null ? text + '' : '';\n    var visualMapModel = this.visualMapModel;\n    var textGap = visualMapModel.get('textGap');\n    var itemSize = visualMapModel.itemSize;\n    var barGroup = this._shapes.mainGroup;\n\n    var position = this._applyTransform([itemSize[0] / 2, endsIndex === 0 ? -textGap : itemSize[1] + textGap], barGroup);\n\n    var align = this._applyTransform(endsIndex === 0 ? 'bottom' : 'top', barGroup);\n\n    var orient = this._orient;\n    var textStyleModel = this.visualMapModel.textStyleModel;\n    this.group.add(new graphic.Text({\n      style: {\n        x: position[0],\n        y: position[1],\n        verticalAlign: orient === 'horizontal' ? 'middle' : align,\n        align: orient === 'horizontal' ? align : 'center',\n        text: text,\n        font: textStyleModel.getFont(),\n        fill: textStyleModel.getTextColor()\n      }\n    }));\n  };\n\n  ContinuousView.prototype._renderBar = function (targetGroup) {\n    var visualMapModel = this.visualMapModel;\n    var shapes = this._shapes;\n    var itemSize = visualMapModel.itemSize;\n    var orient = this._orient;\n    var useHandle = this._useHandle;\n    var itemAlign = helper.getItemAlign(visualMapModel, this.api, itemSize);\n\n    var mainGroup = shapes.mainGroup = this._createBarGroup(itemAlign);\n\n    var gradientBarGroup = new graphic.Group();\n    mainGroup.add(gradientBarGroup);\n    gradientBarGroup.add(shapes.outOfRange = createPolygon());\n    gradientBarGroup.add(shapes.inRange = createPolygon(null, useHandle ? getCursor(this._orient) : null, zrUtil.bind(this._dragHandle, this, 'all', false), zrUtil.bind(this._dragHandle, this, 'all', true)));\n    gradientBarGroup.setClipPath(new graphic.Rect({\n      shape: {\n        x: 0,\n        y: 0,\n        width: itemSize[0],\n        height: itemSize[1],\n        r: 3\n      }\n    }));\n    var textRect = visualMapModel.textStyleModel.getTextRect('国');\n    var textSize = mathMax(textRect.width, textRect.height);\n\n    if (useHandle) {\n      shapes.handleThumbs = [];\n      shapes.handleLabels = [];\n      shapes.handleLabelPoints = [];\n\n      this._createHandle(visualMapModel, mainGroup, 0, itemSize, textSize, orient);\n\n      this._createHandle(visualMapModel, mainGroup, 1, itemSize, textSize, orient);\n    }\n\n    this._createIndicator(visualMapModel, mainGroup, itemSize, textSize, orient);\n\n    targetGroup.add(mainGroup);\n  };\n\n  ContinuousView.prototype._createHandle = function (visualMapModel, mainGroup, handleIndex, itemSize, textSize, orient) {\n    var onDrift = zrUtil.bind(this._dragHandle, this, handleIndex, false);\n    var onDragEnd = zrUtil.bind(this._dragHandle, this, handleIndex, true);\n    var handleSize = parsePercent(visualMapModel.get('handleSize'), itemSize[0]);\n    var handleThumb = createSymbol(visualMapModel.get('handleIcon'), -handleSize / 2, -handleSize / 2, handleSize, handleSize, null, true);\n    var cursor = getCursor(this._orient);\n    handleThumb.attr({\n      cursor: cursor,\n      draggable: true,\n      drift: onDrift,\n      ondragend: onDragEnd,\n      onmousemove: function (e) {\n        eventTool.stop(e.event);\n      }\n    });\n    handleThumb.x = itemSize[0] / 2;\n    handleThumb.useStyle(visualMapModel.getModel('handleStyle').getItemStyle());\n    handleThumb.setStyle({\n      strokeNoScale: true,\n      strokeFirst: true\n    });\n    handleThumb.style.lineWidth *= 2;\n    handleThumb.ensureState('emphasis').style = visualMapModel.getModel(['emphasis', 'handleStyle']).getItemStyle();\n    setAsHighDownDispatcher(handleThumb, true);\n    mainGroup.add(handleThumb);\n    var textStyleModel = this.visualMapModel.textStyleModel;\n    var handleLabel = new graphic.Text({\n      cursor: cursor,\n      draggable: true,\n      drift: onDrift,\n      onmousemove: function (e) {\n        eventTool.stop(e.event);\n      },\n      ondragend: onDragEnd,\n      style: {\n        x: 0,\n        y: 0,\n        text: '',\n        font: textStyleModel.getFont(),\n        fill: textStyleModel.getTextColor()\n      }\n    });\n    handleLabel.ensureState('blur').style = {\n      opacity: 0.1\n    };\n    handleLabel.stateTransition = {\n      duration: 200\n    };\n    this.group.add(handleLabel);\n    var handleLabelPoint = [handleSize, 0];\n    var shapes = this._shapes;\n    shapes.handleThumbs[handleIndex] = handleThumb;\n    shapes.handleLabelPoints[handleIndex] = handleLabelPoint;\n    shapes.handleLabels[handleIndex] = handleLabel;\n  };\n\n  ContinuousView.prototype._createIndicator = function (visualMapModel, mainGroup, itemSize, textSize, orient) {\n    var scale = parsePercent(visualMapModel.get('indicatorSize'), itemSize[0]);\n    var indicator = createSymbol(visualMapModel.get('indicatorIcon'), -scale / 2, -scale / 2, scale, scale, null, true);\n    indicator.attr({\n      cursor: 'move',\n      invisible: true,\n      silent: true,\n      x: itemSize[0] / 2\n    });\n    var indicatorStyle = visualMapModel.getModel('indicatorStyle').getItemStyle();\n\n    if (indicator instanceof ZRImage) {\n      var pathStyle = indicator.style;\n      indicator.useStyle(zrUtil.extend({\n        image: pathStyle.image,\n        x: pathStyle.x,\n        y: pathStyle.y,\n        width: pathStyle.width,\n        height: pathStyle.height\n      }, indicatorStyle));\n    } else {\n      indicator.useStyle(indicatorStyle);\n    }\n\n    mainGroup.add(indicator);\n    var textStyleModel = this.visualMapModel.textStyleModel;\n    var indicatorLabel = new graphic.Text({\n      silent: true,\n      invisible: true,\n      style: {\n        x: 0,\n        y: 0,\n        text: '',\n        font: textStyleModel.getFont(),\n        fill: textStyleModel.getTextColor()\n      }\n    });\n    this.group.add(indicatorLabel);\n    var indicatorLabelPoint = [(orient === 'horizontal' ? textSize / 2 : HOVER_LINK_OUT) + itemSize[0] / 2, 0];\n    var shapes = this._shapes;\n    shapes.indicator = indicator;\n    shapes.indicatorLabel = indicatorLabel;\n    shapes.indicatorLabelPoint = indicatorLabelPoint;\n    this._firstShowIndicator = true;\n  };\n\n  ContinuousView.prototype._dragHandle = function (handleIndex, isEnd, dx, dy) {\n    if (!this._useHandle) {\n      return;\n    }\n\n    this._dragging = !isEnd;\n\n    if (!isEnd) {\n      var vertex = this._applyTransform([dx, dy], this._shapes.mainGroup, true);\n\n      this._updateInterval(handleIndex, vertex[1]);\n\n      this._hideIndicator();\n\n      this._updateView();\n    }\n\n    if (isEnd === !this.visualMapModel.get('realtime')) {\n      this.api.dispatchAction({\n        type: 'selectDataRange',\n        from: this.uid,\n        visualMapId: this.visualMapModel.id,\n        selected: this._dataInterval.slice()\n      });\n    }\n\n    if (isEnd) {\n      !this._hovering && this._clearHoverLinkToSeries();\n    } else if (useHoverLinkOnHandle(this.visualMapModel)) {\n      this._doHoverLinkToSeries(this._handleEnds[handleIndex], false);\n    }\n  };\n\n  ContinuousView.prototype._resetInterval = function () {\n    var visualMapModel = this.visualMapModel;\n    var dataInterval = this._dataInterval = visualMapModel.getSelected();\n    var dataExtent = visualMapModel.getExtent();\n    var sizeExtent = [0, visualMapModel.itemSize[1]];\n    this._handleEnds = [linearMap(dataInterval[0], dataExtent, sizeExtent, true), linearMap(dataInterval[1], dataExtent, sizeExtent, true)];\n  };\n\n  ContinuousView.prototype._updateInterval = function (handleIndex, delta) {\n    delta = delta || 0;\n    var visualMapModel = this.visualMapModel;\n    var handleEnds = this._handleEnds;\n    var sizeExtent = [0, visualMapModel.itemSize[1]];\n    sliderMove(delta, handleEnds, sizeExtent, handleIndex, 0);\n    var dataExtent = visualMapModel.getExtent();\n    this._dataInterval = [linearMap(handleEnds[0], sizeExtent, dataExtent, true), linearMap(handleEnds[1], sizeExtent, dataExtent, true)];\n  };\n\n  ContinuousView.prototype._updateView = function (forSketch) {\n    var visualMapModel = this.visualMapModel;\n    var dataExtent = visualMapModel.getExtent();\n    var shapes = this._shapes;\n    var outOfRangeHandleEnds = [0, visualMapModel.itemSize[1]];\n    var inRangeHandleEnds = forSketch ? outOfRangeHandleEnds : this._handleEnds;\n\n    var visualInRange = this._createBarVisual(this._dataInterval, dataExtent, inRangeHandleEnds, 'inRange');\n\n    var visualOutOfRange = this._createBarVisual(dataExtent, dataExtent, outOfRangeHandleEnds, 'outOfRange');\n\n    shapes.inRange.setStyle({\n      fill: visualInRange.barColor\n    }).setShape('points', visualInRange.barPoints);\n    shapes.outOfRange.setStyle({\n      fill: visualOutOfRange.barColor\n    }).setShape('points', visualOutOfRange.barPoints);\n\n    this._updateHandle(inRangeHandleEnds, visualInRange);\n  };\n\n  ContinuousView.prototype._createBarVisual = function (dataInterval, dataExtent, handleEnds, forceState) {\n    var opts = {\n      forceState: forceState,\n      convertOpacityToAlpha: true\n    };\n\n    var colorStops = this._makeColorGradient(dataInterval, opts);\n\n    var symbolSizes = [this.getControllerVisual(dataInterval[0], 'symbolSize', opts), this.getControllerVisual(dataInterval[1], 'symbolSize', opts)];\n\n    var barPoints = this._createBarPoints(handleEnds, symbolSizes);\n\n    return {\n      barColor: new LinearGradient(0, 0, 0, 1, colorStops),\n      barPoints: barPoints,\n      handlesColor: [colorStops[0].color, colorStops[colorStops.length - 1].color]\n    };\n  };\n\n  ContinuousView.prototype._makeColorGradient = function (dataInterval, opts) {\n    var sampleNumber = 100;\n    var colorStops = [];\n    var step = (dataInterval[1] - dataInterval[0]) / sampleNumber;\n    colorStops.push({\n      color: this.getControllerVisual(dataInterval[0], 'color', opts),\n      offset: 0\n    });\n\n    for (var i = 1; i < sampleNumber; i++) {\n      var currValue = dataInterval[0] + step * i;\n\n      if (currValue > dataInterval[1]) {\n        break;\n      }\n\n      colorStops.push({\n        color: this.getControllerVisual(currValue, 'color', opts),\n        offset: i / sampleNumber\n      });\n    }\n\n    colorStops.push({\n      color: this.getControllerVisual(dataInterval[1], 'color', opts),\n      offset: 1\n    });\n    return colorStops;\n  };\n\n  ContinuousView.prototype._createBarPoints = function (handleEnds, symbolSizes) {\n    var itemSize = this.visualMapModel.itemSize;\n    return [[itemSize[0] - symbolSizes[0], handleEnds[0]], [itemSize[0], handleEnds[0]], [itemSize[0], handleEnds[1]], [itemSize[0] - symbolSizes[1], handleEnds[1]]];\n  };\n\n  ContinuousView.prototype._createBarGroup = function (itemAlign) {\n    var orient = this._orient;\n    var inverse = this.visualMapModel.get('inverse');\n    return new graphic.Group(orient === 'horizontal' && !inverse ? {\n      scaleX: itemAlign === 'bottom' ? 1 : -1,\n      rotation: Math.PI / 2\n    } : orient === 'horizontal' && inverse ? {\n      scaleX: itemAlign === 'bottom' ? -1 : 1,\n      rotation: -Math.PI / 2\n    } : orient === 'vertical' && !inverse ? {\n      scaleX: itemAlign === 'left' ? 1 : -1,\n      scaleY: -1\n    } : {\n      scaleX: itemAlign === 'left' ? 1 : -1\n    });\n  };\n\n  ContinuousView.prototype._updateHandle = function (handleEnds, visualInRange) {\n    if (!this._useHandle) {\n      return;\n    }\n\n    var shapes = this._shapes;\n    var visualMapModel = this.visualMapModel;\n    var handleThumbs = shapes.handleThumbs;\n    var handleLabels = shapes.handleLabels;\n    var itemSize = visualMapModel.itemSize;\n    var dataExtent = visualMapModel.getExtent();\n    each([0, 1], function (handleIndex) {\n      var handleThumb = handleThumbs[handleIndex];\n      handleThumb.setStyle('fill', visualInRange.handlesColor[handleIndex]);\n      handleThumb.y = handleEnds[handleIndex];\n      var val = linearMap(handleEnds[handleIndex], [0, itemSize[1]], dataExtent, true);\n      var symbolSize = this.getControllerVisual(val, 'symbolSize');\n      handleThumb.scaleX = handleThumb.scaleY = symbolSize / itemSize[0];\n      handleThumb.x = itemSize[0] - symbolSize / 2;\n      var textPoint = graphic.applyTransform(shapes.handleLabelPoints[handleIndex], graphic.getTransform(handleThumb, this.group));\n      handleLabels[handleIndex].setStyle({\n        x: textPoint[0],\n        y: textPoint[1],\n        text: visualMapModel.formatValueText(this._dataInterval[handleIndex]),\n        verticalAlign: 'middle',\n        align: this._orient === 'vertical' ? this._applyTransform('left', shapes.mainGroup) : 'center'\n      });\n    }, this);\n  };\n\n  ContinuousView.prototype._showIndicator = function (cursorValue, textValue, rangeSymbol, halfHoverLinkSize) {\n    var visualMapModel = this.visualMapModel;\n    var dataExtent = visualMapModel.getExtent();\n    var itemSize = visualMapModel.itemSize;\n    var sizeExtent = [0, itemSize[1]];\n    var shapes = this._shapes;\n    var indicator = shapes.indicator;\n\n    if (!indicator) {\n      return;\n    }\n\n    indicator.attr('invisible', false);\n    var opts = {\n      convertOpacityToAlpha: true\n    };\n    var color = this.getControllerVisual(cursorValue, 'color', opts);\n    var symbolSize = this.getControllerVisual(cursorValue, 'symbolSize');\n    var y = linearMap(cursorValue, dataExtent, sizeExtent, true);\n    var x = itemSize[0] - symbolSize / 2;\n    var oldIndicatorPos = {\n      x: indicator.x,\n      y: indicator.y\n    };\n    indicator.y = y;\n    indicator.x = x;\n    var textPoint = graphic.applyTransform(shapes.indicatorLabelPoint, graphic.getTransform(indicator, this.group));\n    var indicatorLabel = shapes.indicatorLabel;\n    indicatorLabel.attr('invisible', false);\n\n    var align = this._applyTransform('left', shapes.mainGroup);\n\n    var orient = this._orient;\n    var isHorizontal = orient === 'horizontal';\n    indicatorLabel.setStyle({\n      text: (rangeSymbol ? rangeSymbol : '') + visualMapModel.formatValueText(textValue),\n      verticalAlign: isHorizontal ? align : 'middle',\n      align: isHorizontal ? 'center' : align\n    });\n    var indicatorNewProps = {\n      x: x,\n      y: y,\n      style: {\n        fill: color\n      }\n    };\n    var labelNewProps = {\n      style: {\n        x: textPoint[0],\n        y: textPoint[1]\n      }\n    };\n\n    if (visualMapModel.ecModel.isAnimationEnabled() && !this._firstShowIndicator) {\n      var animationCfg = {\n        duration: 100,\n        easing: 'cubicInOut',\n        additive: true\n      };\n      indicator.x = oldIndicatorPos.x;\n      indicator.y = oldIndicatorPos.y;\n      indicator.animateTo(indicatorNewProps, animationCfg);\n      indicatorLabel.animateTo(labelNewProps, animationCfg);\n    } else {\n      indicator.attr(indicatorNewProps);\n      indicatorLabel.attr(labelNewProps);\n    }\n\n    this._firstShowIndicator = false;\n    var handleLabels = this._shapes.handleLabels;\n\n    if (handleLabels) {\n      for (var i = 0; i < handleLabels.length; i++) {\n        this._api.enterBlur(handleLabels[i]);\n      }\n    }\n  };\n\n  ContinuousView.prototype._enableHoverLinkToSeries = function () {\n    var self = this;\n\n    this._shapes.mainGroup.on('mousemove', function (e) {\n      self._hovering = true;\n\n      if (!self._dragging) {\n        var itemSize = self.visualMapModel.itemSize;\n\n        var pos = self._applyTransform([e.offsetX, e.offsetY], self._shapes.mainGroup, true, true);\n\n        pos[1] = mathMin(mathMax(0, pos[1]), itemSize[1]);\n\n        self._doHoverLinkToSeries(pos[1], 0 <= pos[0] && pos[0] <= itemSize[0]);\n      }\n    }).on('mouseout', function () {\n      self._hovering = false;\n      !self._dragging && self._clearHoverLinkToSeries();\n    });\n  };\n\n  ContinuousView.prototype._enableHoverLinkFromSeries = function () {\n    var zr = this.api.getZr();\n\n    if (this.visualMapModel.option.hoverLink) {\n      zr.on('mouseover', this._hoverLinkFromSeriesMouseOver, this);\n      zr.on('mouseout', this._hideIndicator, this);\n    } else {\n      this._clearHoverLinkFromSeries();\n    }\n  };\n\n  ContinuousView.prototype._doHoverLinkToSeries = function (cursorPos, hoverOnBar) {\n    var visualMapModel = this.visualMapModel;\n    var itemSize = visualMapModel.itemSize;\n\n    if (!visualMapModel.option.hoverLink) {\n      return;\n    }\n\n    var sizeExtent = [0, itemSize[1]];\n    var dataExtent = visualMapModel.getExtent();\n    cursorPos = mathMin(mathMax(sizeExtent[0], cursorPos), sizeExtent[1]);\n    var halfHoverLinkSize = getHalfHoverLinkSize(visualMapModel, dataExtent, sizeExtent);\n    var hoverRange = [cursorPos - halfHoverLinkSize, cursorPos + halfHoverLinkSize];\n    var cursorValue = linearMap(cursorPos, sizeExtent, dataExtent, true);\n    var valueRange = [linearMap(hoverRange[0], sizeExtent, dataExtent, true), linearMap(hoverRange[1], sizeExtent, dataExtent, true)];\n    hoverRange[0] < sizeExtent[0] && (valueRange[0] = -Infinity);\n    hoverRange[1] > sizeExtent[1] && (valueRange[1] = Infinity);\n\n    if (hoverOnBar) {\n      if (valueRange[0] === -Infinity) {\n        this._showIndicator(cursorValue, valueRange[1], '< ', halfHoverLinkSize);\n      } else if (valueRange[1] === Infinity) {\n        this._showIndicator(cursorValue, valueRange[0], '> ', halfHoverLinkSize);\n      } else {\n        this._showIndicator(cursorValue, cursorValue, '≈ ', halfHoverLinkSize);\n      }\n    }\n\n    var oldBatch = this._hoverLinkDataIndices;\n    var newBatch = [];\n\n    if (hoverOnBar || useHoverLinkOnHandle(visualMapModel)) {\n      newBatch = this._hoverLinkDataIndices = visualMapModel.findTargetDataIndices(valueRange);\n    }\n\n    var resultBatches = modelUtil.compressBatches(oldBatch, newBatch);\n\n    this._dispatchHighDown('downplay', helper.makeHighDownBatch(resultBatches[0], visualMapModel));\n\n    this._dispatchHighDown('highlight', helper.makeHighDownBatch(resultBatches[1], visualMapModel));\n  };\n\n  ContinuousView.prototype._hoverLinkFromSeriesMouseOver = function (e) {\n    var el = e.target;\n    var visualMapModel = this.visualMapModel;\n\n    if (!el || getECData(el).dataIndex == null) {\n      return;\n    }\n\n    var ecData = getECData(el);\n    var dataModel = this.ecModel.getSeriesByIndex(ecData.seriesIndex);\n\n    if (!visualMapModel.isTargetSeries(dataModel)) {\n      return;\n    }\n\n    var data = dataModel.getData(ecData.dataType);\n    var value = data.get(visualMapModel.getDataDimension(data), ecData.dataIndex);\n\n    if (!isNaN(value)) {\n      this._showIndicator(value, value);\n    }\n  };\n\n  ContinuousView.prototype._hideIndicator = function () {\n    var shapes = this._shapes;\n    shapes.indicator && shapes.indicator.attr('invisible', true);\n    shapes.indicatorLabel && shapes.indicatorLabel.attr('invisible', true);\n    var handleLabels = this._shapes.handleLabels;\n\n    if (handleLabels) {\n      for (var i = 0; i < handleLabels.length; i++) {\n        this._api.leaveBlur(handleLabels[i]);\n      }\n    }\n  };\n\n  ContinuousView.prototype._clearHoverLinkToSeries = function () {\n    this._hideIndicator();\n\n    var indices = this._hoverLinkDataIndices;\n\n    this._dispatchHighDown('downplay', helper.makeHighDownBatch(indices, this.visualMapModel));\n\n    indices.length = 0;\n  };\n\n  ContinuousView.prototype._clearHoverLinkFromSeries = function () {\n    this._hideIndicator();\n\n    var zr = this.api.getZr();\n    zr.off('mouseover', this._hoverLinkFromSeriesMouseOver);\n    zr.off('mouseout', this._hideIndicator);\n  };\n\n  ContinuousView.prototype._applyTransform = function (vertex, element, inverse, global) {\n    var transform = graphic.getTransform(element, global ? null : this.group);\n    return zrUtil.isArray(vertex) ? graphic.applyTransform(vertex, transform, inverse) : graphic.transformDirection(vertex, transform, inverse);\n  };\n\n  ContinuousView.prototype._dispatchHighDown = function (type, batch) {\n    batch && batch.length && this.api.dispatchAction({\n      type: type,\n      batch: batch\n    });\n  };\n\n  ContinuousView.prototype.dispose = function () {\n    this._clearHoverLinkFromSeries();\n\n    this._clearHoverLinkToSeries();\n  };\n\n  ContinuousView.prototype.remove = function () {\n    this._clearHoverLinkFromSeries();\n\n    this._clearHoverLinkToSeries();\n  };\n\n  ContinuousView.type = 'visualMap.continuous';\n  return ContinuousView;\n}(VisualMapView);\n\nfunction createPolygon(points, cursor, onDrift, onDragEnd) {\n  return new graphic.Polygon({\n    shape: {\n      points: points\n    },\n    draggable: !!onDrift,\n    cursor: cursor,\n    drift: onDrift,\n    onmousemove: function (e) {\n      eventTool.stop(e.event);\n    },\n    ondragend: onDragEnd\n  });\n}\n\nfunction getHalfHoverLinkSize(visualMapModel, dataExtent, sizeExtent) {\n  var halfHoverLinkSize = HOVER_LINK_SIZE / 2;\n  var hoverLinkDataSize = visualMapModel.get('hoverLinkDataSize');\n\n  if (hoverLinkDataSize) {\n    halfHoverLinkSize = linearMap(hoverLinkDataSize, dataExtent, sizeExtent, true) / 2;\n  }\n\n  return halfHoverLinkSize;\n}\n\nfunction useHoverLinkOnHandle(visualMapModel) {\n  var hoverLinkOnHandle = visualMapModel.get('hoverLinkOnHandle');\n  return !!(hoverLinkOnHandle == null ? visualMapModel.get('realtime') : hoverLinkOnHandle);\n}\n\nfunction getCursor(orient) {\n  return orient === 'vertical' ? 'ns-resize' : 'ew-resize';\n}\n\nexport default ContinuousView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport var visualMapActionInfo = {\n  type: 'selectDataRange',\n  event: 'dataRangeSelected',\n  update: 'update'\n};\nexport var visualMapActionHander = function (payload, ecModel) {\n  ecModel.eachComponent({\n    mainType: 'visualMap',\n    query: payload\n  }, function (model) {\n    model.setSelected(payload.selected);\n  });\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as visualSolution from '../../visual/visualSolution';\nimport VisualMapping from '../../visual/VisualMapping';\nimport { getVisualFromData } from '../../visual/helper';\nexport var visualMapEncodingHandlers = [{\n  createOnAllSeries: true,\n  reset: function (seriesModel, ecModel) {\n    var resetDefines = [];\n    ecModel.eachComponent('visualMap', function (visualMapModel) {\n      var pipelineContext = seriesModel.pipelineContext;\n\n      if (!visualMapModel.isTargetSeries(seriesModel) || pipelineContext && pipelineContext.large) {\n        return;\n      }\n\n      resetDefines.push(visualSolution.incrementalApplyVisual(visualMapModel.stateList, visualMapModel.targetVisuals, zrUtil.bind(visualMapModel.getValueState, visualMapModel), visualMapModel.getDataDimension(seriesModel.getData())));\n    });\n    return resetDefines;\n  }\n}, {\n  createOnAllSeries: true,\n  reset: function (seriesModel, ecModel) {\n    var data = seriesModel.getData();\n    var visualMetaList = [];\n    ecModel.eachComponent('visualMap', function (visualMapModel) {\n      if (visualMapModel.isTargetSeries(seriesModel)) {\n        var visualMeta = visualMapModel.getVisualMeta(zrUtil.bind(getColorVisual, null, seriesModel, visualMapModel)) || {\n          stops: [],\n          outerColors: []\n        };\n        var concreteDim = visualMapModel.getDataDimension(data);\n        var dimInfo = data.getDimensionInfo(concreteDim);\n\n        if (dimInfo != null) {\n          visualMeta.dimension = dimInfo.index;\n          visualMetaList.push(visualMeta);\n        }\n      }\n    });\n    seriesModel.getData().setVisual('visualMeta', visualMetaList);\n  }\n}];\n\nfunction getColorVisual(seriesModel, visualMapModel, value, valueState) {\n  var mappings = visualMapModel.targetVisuals[valueState];\n  var visualTypes = VisualMapping.prepareVisualTypes(mappings);\n  var resultVisual = {\n    color: getVisualFromData(seriesModel.getData(), 'color')\n  };\n\n  for (var i = 0, len = visualTypes.length; i < len; i++) {\n    var type = visualTypes[i];\n    var mapping = mappings[type === 'opacity' ? '__alphaForOpacity' : type];\n    mapping && mapping.applyVisual(value, getVisual, setVisual);\n  }\n\n  return resultVisual.color;\n\n  function getVisual(key) {\n    return resultVisual[key];\n  }\n\n  function setVisual(key, value) {\n    resultVisual[key] = value;\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar each = zrUtil.each;\nexport default function visualMapPreprocessor(option) {\n  var visualMap = option && option.visualMap;\n\n  if (!zrUtil.isArray(visualMap)) {\n    visualMap = visualMap ? [visualMap] : [];\n  }\n\n  each(visualMap, function (opt) {\n    if (!opt) {\n      return;\n    }\n\n    if (has(opt, 'splitList') && !has(opt, 'pieces')) {\n      opt.pieces = opt.splitList;\n      delete opt.splitList;\n    }\n\n    var pieces = opt.pieces;\n\n    if (pieces && zrUtil.isArray(pieces)) {\n      each(pieces, function (piece) {\n        if (zrUtil.isObject(piece)) {\n          if (has(piece, 'start') && !has(piece, 'min')) {\n            piece.min = piece.start;\n          }\n\n          if (has(piece, 'end') && !has(piece, 'max')) {\n            piece.max = piece.end;\n          }\n        }\n      });\n    }\n  });\n}\n\nfunction has(obj, name) {\n  return obj && obj.hasOwnProperty && obj.hasOwnProperty(name);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { visualMapActionInfo, visualMapActionHander } from './visualMapAction';\nimport { visualMapEncodingHandlers } from './visualEncoding';\nimport { each } from 'zrender/lib/core/util';\nimport preprocessor from './preprocessor';\nvar installed = false;\nexport default function installCommon(registers) {\n  if (installed) {\n    return;\n  }\n\n  installed = true;\n  registers.registerSubTypeDefaulter('visualMap', function (option) {\n    return !option.categories && (!(option.pieces ? option.pieces.length > 0 : option.splitNumber > 0) || option.calculable) ? 'continuous' : 'piecewise';\n  });\n  registers.registerAction(visualMapActionInfo, visualMapActionHander);\n  each(visualMapEncodingHandlers, function (handler) {\n    registers.registerVisual(registers.PRIORITY.VISUAL.COMPONENT, handler);\n  });\n  registers.registerPreprocessor(preprocessor);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ContinuousModel from './ContinuousModel';\nimport ContinuousView from './ContinuousView';\nimport installCommon from './installCommon';\nexport function install(registers) {\n  registers.registerComponentModel(ContinuousModel);\n  registers.registerComponentView(ContinuousView);\n  installCommon(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport VisualMapModel from './VisualMapModel';\nimport VisualMapping from '../../visual/VisualMapping';\nimport visualDefault from '../../visual/visualDefault';\nimport { reformIntervals } from '../../util/number';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar PiecewiseModel = function (_super) {\n  __extends(PiecewiseModel, _super);\n\n  function PiecewiseModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = PiecewiseModel.type;\n    _this._pieceList = [];\n    return _this;\n  }\n\n  PiecewiseModel.prototype.optionUpdated = function (newOption, isInit) {\n    _super.prototype.optionUpdated.apply(this, arguments);\n\n    this.resetExtent();\n\n    var mode = this._mode = this._determineMode();\n\n    this._pieceList = [];\n\n    resetMethods[this._mode].call(this, this._pieceList);\n\n    this._resetSelected(newOption, isInit);\n\n    var categories = this.option.categories;\n    this.resetVisual(function (mappingOption, state) {\n      if (mode === 'categories') {\n        mappingOption.mappingMethod = 'category';\n        mappingOption.categories = zrUtil.clone(categories);\n      } else {\n        mappingOption.dataExtent = this.getExtent();\n        mappingOption.mappingMethod = 'piecewise';\n        mappingOption.pieceList = zrUtil.map(this._pieceList, function (piece) {\n          piece = zrUtil.clone(piece);\n\n          if (state !== 'inRange') {\n            piece.visual = null;\n          }\n\n          return piece;\n        });\n      }\n    });\n  };\n\n  PiecewiseModel.prototype.completeVisualOption = function () {\n    var option = this.option;\n    var visualTypesInPieces = {};\n    var visualTypes = VisualMapping.listVisualTypes();\n    var isCategory = this.isCategory();\n    zrUtil.each(option.pieces, function (piece) {\n      zrUtil.each(visualTypes, function (visualType) {\n        if (piece.hasOwnProperty(visualType)) {\n          visualTypesInPieces[visualType] = 1;\n        }\n      });\n    });\n    zrUtil.each(visualTypesInPieces, function (v, visualType) {\n      var exists = false;\n      zrUtil.each(this.stateList, function (state) {\n        exists = exists || has(option, state, visualType) || has(option.target, state, visualType);\n      }, this);\n      !exists && zrUtil.each(this.stateList, function (state) {\n        (option[state] || (option[state] = {}))[visualType] = visualDefault.get(visualType, state === 'inRange' ? 'active' : 'inactive', isCategory);\n      });\n    }, this);\n\n    function has(obj, state, visualType) {\n      return obj && obj[state] && obj[state].hasOwnProperty(visualType);\n    }\n\n    _super.prototype.completeVisualOption.apply(this, arguments);\n  };\n\n  PiecewiseModel.prototype._resetSelected = function (newOption, isInit) {\n    var thisOption = this.option;\n    var pieceList = this._pieceList;\n    var selected = (isInit ? thisOption : newOption).selected || {};\n    thisOption.selected = selected;\n    zrUtil.each(pieceList, function (piece, index) {\n      var key = this.getSelectedMapKey(piece);\n\n      if (!selected.hasOwnProperty(key)) {\n        selected[key] = true;\n      }\n    }, this);\n\n    if (thisOption.selectedMode === 'single') {\n      var hasSel_1 = false;\n      zrUtil.each(pieceList, function (piece, index) {\n        var key = this.getSelectedMapKey(piece);\n\n        if (selected[key]) {\n          hasSel_1 ? selected[key] = false : hasSel_1 = true;\n        }\n      }, this);\n    }\n  };\n\n  PiecewiseModel.prototype.getSelectedMapKey = function (piece) {\n    return this._mode === 'categories' ? piece.value + '' : piece.index + '';\n  };\n\n  PiecewiseModel.prototype.getPieceList = function () {\n    return this._pieceList;\n  };\n\n  PiecewiseModel.prototype._determineMode = function () {\n    var option = this.option;\n    return option.pieces && option.pieces.length > 0 ? 'pieces' : this.option.categories ? 'categories' : 'splitNumber';\n  };\n\n  PiecewiseModel.prototype.setSelected = function (selected) {\n    this.option.selected = zrUtil.clone(selected);\n  };\n\n  PiecewiseModel.prototype.getValueState = function (value) {\n    var index = VisualMapping.findPieceIndex(value, this._pieceList);\n    return index != null ? this.option.selected[this.getSelectedMapKey(this._pieceList[index])] ? 'inRange' : 'outOfRange' : 'outOfRange';\n  };\n\n  PiecewiseModel.prototype.findTargetDataIndices = function (pieceIndex) {\n    var result = [];\n    var pieceList = this._pieceList;\n    this.eachTargetSeries(function (seriesModel) {\n      var dataIndices = [];\n      var data = seriesModel.getData();\n      data.each(this.getDataDimension(data), function (value, dataIndex) {\n        var pIdx = VisualMapping.findPieceIndex(value, pieceList);\n        pIdx === pieceIndex && dataIndices.push(dataIndex);\n      }, this);\n      result.push({\n        seriesId: seriesModel.id,\n        dataIndex: dataIndices\n      });\n    }, this);\n    return result;\n  };\n\n  PiecewiseModel.prototype.getRepresentValue = function (piece) {\n    var representValue;\n\n    if (this.isCategory()) {\n      representValue = piece.value;\n    } else {\n      if (piece.value != null) {\n        representValue = piece.value;\n      } else {\n        var pieceInterval = piece.interval || [];\n        representValue = pieceInterval[0] === -Infinity && pieceInterval[1] === Infinity ? 0 : (pieceInterval[0] + pieceInterval[1]) / 2;\n      }\n    }\n\n    return representValue;\n  };\n\n  PiecewiseModel.prototype.getVisualMeta = function (getColorVisual) {\n    if (this.isCategory()) {\n      return;\n    }\n\n    var stops = [];\n    var outerColors = ['', ''];\n    var visualMapModel = this;\n\n    function setStop(interval, valueState) {\n      var representValue = visualMapModel.getRepresentValue({\n        interval: interval\n      });\n\n      if (!valueState) {\n        valueState = visualMapModel.getValueState(representValue);\n      }\n\n      var color = getColorVisual(representValue, valueState);\n\n      if (interval[0] === -Infinity) {\n        outerColors[0] = color;\n      } else if (interval[1] === Infinity) {\n        outerColors[1] = color;\n      } else {\n        stops.push({\n          value: interval[0],\n          color: color\n        }, {\n          value: interval[1],\n          color: color\n        });\n      }\n    }\n\n    var pieceList = this._pieceList.slice();\n\n    if (!pieceList.length) {\n      pieceList.push({\n        interval: [-Infinity, Infinity]\n      });\n    } else {\n      var edge = pieceList[0].interval[0];\n      edge !== -Infinity && pieceList.unshift({\n        interval: [-Infinity, edge]\n      });\n      edge = pieceList[pieceList.length - 1].interval[1];\n      edge !== Infinity && pieceList.push({\n        interval: [edge, Infinity]\n      });\n    }\n\n    var curr = -Infinity;\n    zrUtil.each(pieceList, function (piece) {\n      var interval = piece.interval;\n\n      if (interval) {\n        interval[0] > curr && setStop([curr, interval[0]], 'outOfRange');\n        setStop(interval.slice());\n        curr = interval[1];\n      }\n    }, this);\n    return {\n      stops: stops,\n      outerColors: outerColors\n    };\n  };\n\n  PiecewiseModel.type = 'visualMap.piecewise';\n  PiecewiseModel.defaultOption = inheritDefaultOption(VisualMapModel.defaultOption, {\n    selected: null,\n    minOpen: false,\n    maxOpen: false,\n    align: 'auto',\n    itemWidth: 20,\n    itemHeight: 14,\n    itemSymbol: 'roundRect',\n    pieces: null,\n    categories: null,\n    splitNumber: 5,\n    selectedMode: 'multiple',\n    itemGap: 10,\n    hoverLink: true\n  });\n  return PiecewiseModel;\n}(VisualMapModel);\n\n;\nvar resetMethods = {\n  splitNumber: function (outPieceList) {\n    var thisOption = this.option;\n    var precision = Math.min(thisOption.precision, 20);\n    var dataExtent = this.getExtent();\n    var splitNumber = thisOption.splitNumber;\n    splitNumber = Math.max(parseInt(splitNumber, 10), 1);\n    thisOption.splitNumber = splitNumber;\n    var splitStep = (dataExtent[1] - dataExtent[0]) / splitNumber;\n\n    while (+splitStep.toFixed(precision) !== splitStep && precision < 5) {\n      precision++;\n    }\n\n    thisOption.precision = precision;\n    splitStep = +splitStep.toFixed(precision);\n\n    if (thisOption.minOpen) {\n      outPieceList.push({\n        interval: [-Infinity, dataExtent[0]],\n        close: [0, 0]\n      });\n    }\n\n    for (var index = 0, curr = dataExtent[0]; index < splitNumber; curr += splitStep, index++) {\n      var max = index === splitNumber - 1 ? dataExtent[1] : curr + splitStep;\n      outPieceList.push({\n        interval: [curr, max],\n        close: [1, 1]\n      });\n    }\n\n    if (thisOption.maxOpen) {\n      outPieceList.push({\n        interval: [dataExtent[1], Infinity],\n        close: [0, 0]\n      });\n    }\n\n    reformIntervals(outPieceList);\n    zrUtil.each(outPieceList, function (piece, index) {\n      piece.index = index;\n      piece.text = this.formatValueText(piece.interval);\n    }, this);\n  },\n  categories: function (outPieceList) {\n    var thisOption = this.option;\n    zrUtil.each(thisOption.categories, function (cate) {\n      outPieceList.push({\n        text: this.formatValueText(cate, true),\n        value: cate\n      });\n    }, this);\n    normalizeReverse(thisOption, outPieceList);\n  },\n  pieces: function (outPieceList) {\n    var thisOption = this.option;\n    zrUtil.each(thisOption.pieces, function (pieceListItem, index) {\n      if (!zrUtil.isObject(pieceListItem)) {\n        pieceListItem = {\n          value: pieceListItem\n        };\n      }\n\n      var item = {\n        text: '',\n        index: index\n      };\n\n      if (pieceListItem.label != null) {\n        item.text = pieceListItem.label;\n      }\n\n      if (pieceListItem.hasOwnProperty('value')) {\n        var value = item.value = pieceListItem.value;\n        item.interval = [value, value];\n        item.close = [1, 1];\n      } else {\n        var interval = item.interval = [];\n        var close_1 = item.close = [0, 0];\n        var closeList = [1, 0, 1];\n        var infinityList = [-Infinity, Infinity];\n        var useMinMax = [];\n\n        for (var lg = 0; lg < 2; lg++) {\n          var names = [['gte', 'gt', 'min'], ['lte', 'lt', 'max']][lg];\n\n          for (var i = 0; i < 3 && interval[lg] == null; i++) {\n            interval[lg] = pieceListItem[names[i]];\n            close_1[lg] = closeList[i];\n            useMinMax[lg] = i === 2;\n          }\n\n          interval[lg] == null && (interval[lg] = infinityList[lg]);\n        }\n\n        useMinMax[0] && interval[1] === Infinity && (close_1[0] = 0);\n        useMinMax[1] && interval[0] === -Infinity && (close_1[1] = 0);\n\n        if (process.env.NODE_ENV !== 'production') {\n          if (interval[0] > interval[1]) {\n            console.warn('Piece ' + index + 'is illegal: ' + interval + ' lower bound should not greater then uppper bound.');\n          }\n        }\n\n        if (interval[0] === interval[1] && close_1[0] && close_1[1]) {\n          item.value = interval[0];\n        }\n      }\n\n      item.visual = VisualMapping.retrieveVisuals(pieceListItem);\n      outPieceList.push(item);\n    }, this);\n    normalizeReverse(thisOption, outPieceList);\n    reformIntervals(outPieceList);\n    zrUtil.each(outPieceList, function (piece) {\n      var close = piece.close;\n      var edgeSymbols = [['<', '≤'][close[1]], ['>', '≥'][close[0]]];\n      piece.text = piece.text || this.formatValueText(piece.value != null ? piece.value : piece.interval, false, edgeSymbols);\n    }, this);\n  }\n};\n\nfunction normalizeReverse(thisOption, pieceList) {\n  var inverse = thisOption.inverse;\n\n  if (thisOption.orient === 'vertical' ? !inverse : inverse) {\n    pieceList.reverse();\n  }\n}\n\nexport default PiecewiseModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport VisualMapView from './VisualMapView';\nimport * as graphic from '../../util/graphic';\nimport { createSymbol } from '../../util/symbol';\nimport * as layout from '../../util/layout';\nimport * as helper from './helper';\n\nvar PiecewiseVisualMapView = function (_super) {\n  __extends(PiecewiseVisualMapView, _super);\n\n  function PiecewiseVisualMapView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = PiecewiseVisualMapView.type;\n    return _this;\n  }\n\n  PiecewiseVisualMapView.prototype.doRender = function () {\n    var thisGroup = this.group;\n    thisGroup.removeAll();\n    var visualMapModel = this.visualMapModel;\n    var textGap = visualMapModel.get('textGap');\n    var textStyleModel = visualMapModel.textStyleModel;\n    var textFont = textStyleModel.getFont();\n    var textFill = textStyleModel.getTextColor();\n\n    var itemAlign = this._getItemAlign();\n\n    var itemSize = visualMapModel.itemSize;\n\n    var viewData = this._getViewData();\n\n    var endsText = viewData.endsText;\n    var showLabel = zrUtil.retrieve(visualMapModel.get('showLabel', true), !endsText);\n    endsText && this._renderEndsText(thisGroup, endsText[0], itemSize, showLabel, itemAlign);\n    zrUtil.each(viewData.viewPieceList, function (item) {\n      var piece = item.piece;\n      var itemGroup = new graphic.Group();\n      itemGroup.onclick = zrUtil.bind(this._onItemClick, this, piece);\n\n      this._enableHoverLink(itemGroup, item.indexInModelPieceList);\n\n      var representValue = visualMapModel.getRepresentValue(piece);\n\n      this._createItemSymbol(itemGroup, representValue, [0, 0, itemSize[0], itemSize[1]]);\n\n      if (showLabel) {\n        var visualState = this.visualMapModel.getValueState(representValue);\n        itemGroup.add(new graphic.Text({\n          style: {\n            x: itemAlign === 'right' ? -textGap : itemSize[0] + textGap,\n            y: itemSize[1] / 2,\n            text: piece.text,\n            verticalAlign: 'middle',\n            align: itemAlign,\n            font: textFont,\n            fill: textFill,\n            opacity: visualState === 'outOfRange' ? 0.5 : 1\n          }\n        }));\n      }\n\n      thisGroup.add(itemGroup);\n    }, this);\n    endsText && this._renderEndsText(thisGroup, endsText[1], itemSize, showLabel, itemAlign);\n    layout.box(visualMapModel.get('orient'), thisGroup, visualMapModel.get('itemGap'));\n    this.renderBackground(thisGroup);\n    this.positionGroup(thisGroup);\n  };\n\n  PiecewiseVisualMapView.prototype._enableHoverLink = function (itemGroup, pieceIndex) {\n    var _this = this;\n\n    itemGroup.on('mouseover', function () {\n      return onHoverLink('highlight');\n    }).on('mouseout', function () {\n      return onHoverLink('downplay');\n    });\n\n    var onHoverLink = function (method) {\n      var visualMapModel = _this.visualMapModel;\n      visualMapModel.option.hoverLink && _this.api.dispatchAction({\n        type: method,\n        batch: helper.makeHighDownBatch(visualMapModel.findTargetDataIndices(pieceIndex), visualMapModel)\n      });\n    };\n  };\n\n  PiecewiseVisualMapView.prototype._getItemAlign = function () {\n    var visualMapModel = this.visualMapModel;\n    var modelOption = visualMapModel.option;\n\n    if (modelOption.orient === 'vertical') {\n      return helper.getItemAlign(visualMapModel, this.api, visualMapModel.itemSize);\n    } else {\n      var align = modelOption.align;\n\n      if (!align || align === 'auto') {\n        align = 'left';\n      }\n\n      return align;\n    }\n  };\n\n  PiecewiseVisualMapView.prototype._renderEndsText = function (group, text, itemSize, showLabel, itemAlign) {\n    if (!text) {\n      return;\n    }\n\n    var itemGroup = new graphic.Group();\n    var textStyleModel = this.visualMapModel.textStyleModel;\n    itemGroup.add(new graphic.Text({\n      style: {\n        x: showLabel ? itemAlign === 'right' ? itemSize[0] : 0 : itemSize[0] / 2,\n        y: itemSize[1] / 2,\n        verticalAlign: 'middle',\n        align: showLabel ? itemAlign : 'center',\n        text: text,\n        font: textStyleModel.getFont(),\n        fill: textStyleModel.getTextColor()\n      }\n    }));\n    group.add(itemGroup);\n  };\n\n  PiecewiseVisualMapView.prototype._getViewData = function () {\n    var visualMapModel = this.visualMapModel;\n    var viewPieceList = zrUtil.map(visualMapModel.getPieceList(), function (piece, index) {\n      return {\n        piece: piece,\n        indexInModelPieceList: index\n      };\n    });\n    var endsText = visualMapModel.get('text');\n    var orient = visualMapModel.get('orient');\n    var inverse = visualMapModel.get('inverse');\n\n    if (orient === 'horizontal' ? inverse : !inverse) {\n      viewPieceList.reverse();\n    } else if (endsText) {\n      endsText = endsText.slice().reverse();\n    }\n\n    return {\n      viewPieceList: viewPieceList,\n      endsText: endsText\n    };\n  };\n\n  PiecewiseVisualMapView.prototype._createItemSymbol = function (group, representValue, shapeParam) {\n    group.add(createSymbol(this.getControllerVisual(representValue, 'symbol'), shapeParam[0], shapeParam[1], shapeParam[2], shapeParam[3], this.getControllerVisual(representValue, 'color')));\n  };\n\n  PiecewiseVisualMapView.prototype._onItemClick = function (piece) {\n    var visualMapModel = this.visualMapModel;\n    var option = visualMapModel.option;\n    var selected = zrUtil.clone(option.selected);\n    var newKey = visualMapModel.getSelectedMapKey(piece);\n\n    if (option.selectedMode === 'single') {\n      selected[newKey] = true;\n      zrUtil.each(selected, function (o, key) {\n        selected[key] = key === newKey;\n      });\n    } else {\n      selected[newKey] = !selected[newKey];\n    }\n\n    this.api.dispatchAction({\n      type: 'selectDataRange',\n      from: this.uid,\n      visualMapId: this.visualMapModel.id,\n      selected: selected\n    });\n  };\n\n  PiecewiseVisualMapView.type = 'visualMap.piecewise';\n  return PiecewiseVisualMapView;\n}(VisualMapView);\n\nexport default PiecewiseVisualMapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport PiecewiseModel from './PiecewiseModel';\nimport PiecewiseView from './PiecewiseView';\nimport installCommon from './installCommon';\nexport function install(registers) {\n  registers.registerComponentModel(PiecewiseModel);\n  registers.registerComponentView(PiecewiseView);\n  installCommon(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport { install as installVisualMapContinuous } from './installVisualMapContinuous';\nimport { install as installVisualMapPiecewise } from './installVisualMapPiecewise';\nexport function install(registers) {\n  use(installVisualMapContinuous);\n  use(installVisualMapPiecewise);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { retrieveRawValue } from '../data/helper/dataProvider';\nimport { makeInner } from '../util/model';\nimport { getDecalFromPalette } from '../model/mixin/palette';\nvar DEFAULT_OPTION = {\n  label: {\n    enabled: true\n  },\n  decal: {\n    show: false\n  }\n};\nvar inner = makeInner();\nvar decalPaletteScope = {};\nexport default function ariaVisual(ecModel, api) {\n  var ariaModel = ecModel.getModel('aria');\n\n  if (!ariaModel.get('enabled')) {\n    return;\n  }\n\n  var defaultOption = zrUtil.clone(DEFAULT_OPTION);\n  zrUtil.merge(defaultOption.label, ecModel.getLocaleModel().get('aria'), false);\n  zrUtil.merge(ariaModel.option, defaultOption, false);\n  setDecal();\n  setLabel();\n\n  function setDecal() {\n    var decalModel = ariaModel.getModel('decal');\n    var useDecal = decalModel.get('show');\n\n    if (useDecal) {\n      var paletteScopeGroupByType_1 = zrUtil.createHashMap();\n      ecModel.eachSeries(function (seriesModel) {\n        if (!seriesModel.useColorPaletteOnData) {\n          return;\n        }\n\n        var decalScope = paletteScopeGroupByType_1.get(seriesModel.type);\n\n        if (!decalScope) {\n          decalScope = {};\n          paletteScopeGroupByType_1.set(seriesModel.type, decalScope);\n        }\n\n        inner(seriesModel).scope = decalScope;\n      });\n      ecModel.eachRawSeries(function (seriesModel) {\n        if (ecModel.isSeriesFiltered(seriesModel)) {\n          return;\n        }\n\n        if (typeof seriesModel.enableAriaDecal === 'function') {\n          seriesModel.enableAriaDecal();\n          return;\n        }\n\n        var data = seriesModel.getData();\n\n        if (seriesModel.useColorPaletteOnData) {\n          var dataAll_1 = seriesModel.getRawData();\n          var idxMap_1 = {};\n          var decalScope_1 = inner(seriesModel).scope;\n          data.each(function (idx) {\n            var rawIdx = data.getRawIndex(idx);\n            idxMap_1[rawIdx] = idx;\n          });\n          var dataCount_1 = dataAll_1.count();\n          dataAll_1.each(function (rawIdx) {\n            var idx = idxMap_1[rawIdx];\n            var name = dataAll_1.getName(rawIdx) || rawIdx + '';\n            var paletteDecal = getDecalFromPalette(seriesModel.ecModel, name, decalScope_1, dataCount_1);\n            var specifiedDecal = data.getItemVisual(idx, 'decal');\n            data.setItemVisual(idx, 'decal', mergeDecal(specifiedDecal, paletteDecal));\n          });\n        } else {\n          var paletteDecal = getDecalFromPalette(seriesModel.ecModel, seriesModel.name, decalPaletteScope, ecModel.getSeriesCount());\n          var specifiedDecal = data.getVisual('decal');\n          data.setVisual('decal', mergeDecal(specifiedDecal, paletteDecal));\n        }\n\n        function mergeDecal(specifiedDecal, paletteDecal) {\n          var resultDecal = specifiedDecal ? zrUtil.extend(zrUtil.extend({}, paletteDecal), specifiedDecal) : paletteDecal;\n          resultDecal.dirty = true;\n          return resultDecal;\n        }\n      });\n    }\n  }\n\n  function setLabel() {\n    var labelLocale = ecModel.getLocaleModel().get('aria');\n    var labelModel = ariaModel.getModel('label');\n    labelModel.option = zrUtil.defaults(labelModel.option, labelLocale);\n\n    if (!labelModel.get('enabled')) {\n      return;\n    }\n\n    var dom = api.getZr().dom;\n\n    if (labelModel.get('description')) {\n      dom.setAttribute('aria-label', labelModel.get('description'));\n      return;\n    }\n\n    var seriesCnt = ecModel.getSeriesCount();\n    var maxDataCnt = labelModel.get(['data', 'maxCount']) || 10;\n    var maxSeriesCnt = labelModel.get(['series', 'maxCount']) || 10;\n    var displaySeriesCnt = Math.min(seriesCnt, maxSeriesCnt);\n    var ariaLabel;\n\n    if (seriesCnt < 1) {\n      return;\n    } else {\n      var title = getTitle();\n\n      if (title) {\n        var withTitle = labelModel.get(['general', 'withTitle']);\n        ariaLabel = replace(withTitle, {\n          title: title\n        });\n      } else {\n        ariaLabel = labelModel.get(['general', 'withoutTitle']);\n      }\n\n      var seriesLabels_1 = [];\n      var prefix = seriesCnt > 1 ? labelModel.get(['series', 'multiple', 'prefix']) : labelModel.get(['series', 'single', 'prefix']);\n      ariaLabel += replace(prefix, {\n        seriesCount: seriesCnt\n      });\n      ecModel.eachSeries(function (seriesModel, idx) {\n        if (idx < displaySeriesCnt) {\n          var seriesLabel = void 0;\n          var seriesName = seriesModel.get('name');\n          var withName = seriesName ? 'withName' : 'withoutName';\n          seriesLabel = seriesCnt > 1 ? labelModel.get(['series', 'multiple', withName]) : labelModel.get(['series', 'single', withName]);\n          seriesLabel = replace(seriesLabel, {\n            seriesId: seriesModel.seriesIndex,\n            seriesName: seriesModel.get('name'),\n            seriesType: getSeriesTypeName(seriesModel.subType)\n          });\n          var data = seriesModel.getData();\n\n          if (data.count() > maxDataCnt) {\n            var partialLabel = labelModel.get(['data', 'partialData']);\n            seriesLabel += replace(partialLabel, {\n              displayCnt: maxDataCnt\n            });\n          } else {\n            seriesLabel += labelModel.get(['data', 'allData']);\n          }\n\n          var dataLabels = [];\n\n          for (var i = 0; i < data.count(); i++) {\n            if (i < maxDataCnt) {\n              var name_1 = data.getName(i);\n              var value = retrieveRawValue(data, i);\n              var dataLabel = labelModel.get(['data', name_1 ? 'withName' : 'withoutName']);\n              dataLabels.push(replace(dataLabel, {\n                name: name_1,\n                value: value\n              }));\n            }\n          }\n\n          var middleSeparator_1 = labelModel.get(['data', 'separator', 'middle']);\n          var endSeparator_1 = labelModel.get(['data', 'separator', 'end']);\n          seriesLabel += dataLabels.join(middleSeparator_1) + endSeparator_1;\n          seriesLabels_1.push(seriesLabel);\n        }\n      });\n      var separatorModel = labelModel.getModel(['series', 'multiple', 'separator']);\n      var middleSeparator = separatorModel.get('middle');\n      var endSeparator = separatorModel.get('end');\n      ariaLabel += seriesLabels_1.join(middleSeparator) + endSeparator;\n      dom.setAttribute('aria-label', ariaLabel);\n    }\n  }\n\n  function replace(str, keyValues) {\n    if (typeof str !== 'string') {\n      return str;\n    }\n\n    var result = str;\n    zrUtil.each(keyValues, function (value, key) {\n      result = result.replace(new RegExp('\\\\{\\\\s*' + key + '\\\\s*\\\\}', 'g'), value);\n    });\n    return result;\n  }\n\n  function getTitle() {\n    var title = ecModel.get('title');\n\n    if (title && title.length) {\n      title = title[0];\n    }\n\n    return title && title.text;\n  }\n\n  function getSeriesTypeName(type) {\n    return ecModel.getLocaleModel().get(['series', 'typeNames'])[type] || '自定义图';\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function ariaPreprocessor(option) {\n  if (!option || !option.aria) {\n    return;\n  }\n\n  var aria = option.aria;\n\n  if (aria.show != null) {\n    aria.enabled = aria.show;\n  }\n\n  aria.label = aria.label || {};\n  zrUtil.each(['description', 'general', 'series', 'data'], function (name) {\n    if (aria[name] != null) {\n      aria.label[name] = aria[name];\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ariaVisual from '../../visual/aria';\nimport ariaPreprocessor from './preprocessor';\nexport function install(registers) {\n  registers.registerPreprocessor(ariaPreprocessor);\n  registers.registerVisual(registers.PRIORITY.VISUAL.ARIA, ariaVisual);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { keys, isArray, map, isObject, isString, isRegExp, isArrayLike, hasOwn } from 'zrender/lib/core/util';\nimport { throwError, makePrintable } from './log';\nimport { getRawValueParser, createFilterComparator } from '../data/helper/dataValueHelper';\n;\nvar RELATIONAL_EXPRESSION_OP_ALIAS_MAP = {\n  value: 'eq',\n  '<': 'lt',\n  '<=': 'lte',\n  '>': 'gt',\n  '>=': 'gte',\n  '=': 'eq',\n  '!=': 'ne',\n  '<>': 'ne'\n};\n\nvar RegExpEvaluator = function () {\n  function RegExpEvaluator(rVal) {\n    var condValue = this._condVal = isString(rVal) ? new RegExp(rVal) : isRegExp(rVal) ? rVal : null;\n\n    if (condValue == null) {\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = makePrintable('Illegal regexp', rVal, 'in');\n      }\n\n      throwError(errMsg);\n    }\n  }\n\n  RegExpEvaluator.prototype.evaluate = function (lVal) {\n    var type = typeof lVal;\n    return type === 'string' ? this._condVal.test(lVal) : type === 'number' ? this._condVal.test(lVal + '') : false;\n  };\n\n  return RegExpEvaluator;\n}();\n\nvar ConstConditionInternal = function () {\n  function ConstConditionInternal() {}\n\n  ConstConditionInternal.prototype.evaluate = function () {\n    return this.value;\n  };\n\n  return ConstConditionInternal;\n}();\n\nvar AndConditionInternal = function () {\n  function AndConditionInternal() {}\n\n  AndConditionInternal.prototype.evaluate = function () {\n    var children = this.children;\n\n    for (var i = 0; i < children.length; i++) {\n      if (!children[i].evaluate()) {\n        return false;\n      }\n    }\n\n    return true;\n  };\n\n  return AndConditionInternal;\n}();\n\nvar OrConditionInternal = function () {\n  function OrConditionInternal() {}\n\n  OrConditionInternal.prototype.evaluate = function () {\n    var children = this.children;\n\n    for (var i = 0; i < children.length; i++) {\n      if (children[i].evaluate()) {\n        return true;\n      }\n    }\n\n    return false;\n  };\n\n  return OrConditionInternal;\n}();\n\nvar NotConditionInternal = function () {\n  function NotConditionInternal() {}\n\n  NotConditionInternal.prototype.evaluate = function () {\n    return !this.child.evaluate();\n  };\n\n  return NotConditionInternal;\n}();\n\nvar RelationalConditionInternal = function () {\n  function RelationalConditionInternal() {}\n\n  RelationalConditionInternal.prototype.evaluate = function () {\n    var needParse = !!this.valueParser;\n    var getValue = this.getValue;\n    var tarValRaw = getValue(this.valueGetterParam);\n    var tarValParsed = needParse ? this.valueParser(tarValRaw) : null;\n\n    for (var i = 0; i < this.subCondList.length; i++) {\n      if (!this.subCondList[i].evaluate(needParse ? tarValParsed : tarValRaw)) {\n        return false;\n      }\n    }\n\n    return true;\n  };\n\n  return RelationalConditionInternal;\n}();\n\nfunction parseOption(exprOption, getters) {\n  if (exprOption === true || exprOption === false) {\n    var cond = new ConstConditionInternal();\n    cond.value = exprOption;\n    return cond;\n  }\n\n  var errMsg = '';\n\n  if (!isObjectNotArray(exprOption)) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = makePrintable('Illegal config. Expect a plain object but actually', exprOption);\n    }\n\n    throwError(errMsg);\n  }\n\n  if (exprOption.and) {\n    return parseAndOrOption('and', exprOption, getters);\n  } else if (exprOption.or) {\n    return parseAndOrOption('or', exprOption, getters);\n  } else if (exprOption.not) {\n    return parseNotOption(exprOption, getters);\n  }\n\n  return parseRelationalOption(exprOption, getters);\n}\n\nfunction parseAndOrOption(op, exprOption, getters) {\n  var subOptionArr = exprOption[op];\n  var errMsg = '';\n\n  if (process.env.NODE_ENV !== 'production') {\n    errMsg = makePrintable('\"and\"/\"or\" condition should only be `' + op + ': [...]` and must not be empty array.', 'Illegal condition:', exprOption);\n  }\n\n  if (!isArray(subOptionArr)) {\n    throwError(errMsg);\n  }\n\n  if (!subOptionArr.length) {\n    throwError(errMsg);\n  }\n\n  var cond = op === 'and' ? new AndConditionInternal() : new OrConditionInternal();\n  cond.children = map(subOptionArr, function (subOption) {\n    return parseOption(subOption, getters);\n  });\n\n  if (!cond.children.length) {\n    throwError(errMsg);\n  }\n\n  return cond;\n}\n\nfunction parseNotOption(exprOption, getters) {\n  var subOption = exprOption.not;\n  var errMsg = '';\n\n  if (process.env.NODE_ENV !== 'production') {\n    errMsg = makePrintable('\"not\" condition should only be `not: {}`.', 'Illegal condition:', exprOption);\n  }\n\n  if (!isObjectNotArray(subOption)) {\n    throwError(errMsg);\n  }\n\n  var cond = new NotConditionInternal();\n  cond.child = parseOption(subOption, getters);\n\n  if (!cond.child) {\n    throwError(errMsg);\n  }\n\n  return cond;\n}\n\nfunction parseRelationalOption(exprOption, getters) {\n  var errMsg = '';\n  var valueGetterParam = getters.prepareGetValue(exprOption);\n  var subCondList = [];\n  var exprKeys = keys(exprOption);\n  var parserName = exprOption.parser;\n  var valueParser = parserName ? getRawValueParser(parserName) : null;\n\n  for (var i = 0; i < exprKeys.length; i++) {\n    var keyRaw = exprKeys[i];\n\n    if (keyRaw === 'parser' || getters.valueGetterAttrMap.get(keyRaw)) {\n      continue;\n    }\n\n    var op = hasOwn(RELATIONAL_EXPRESSION_OP_ALIAS_MAP, keyRaw) ? RELATIONAL_EXPRESSION_OP_ALIAS_MAP[keyRaw] : keyRaw;\n    var condValueRaw = exprOption[keyRaw];\n    var condValueParsed = valueParser ? valueParser(condValueRaw) : condValueRaw;\n    var evaluator = createFilterComparator(op, condValueParsed) || op === 'reg' && new RegExpEvaluator(condValueParsed);\n\n    if (!evaluator) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = makePrintable('Illegal relational operation: \"' + keyRaw + '\" in condition:', exprOption);\n      }\n\n      throwError(errMsg);\n    }\n\n    subCondList.push(evaluator);\n  }\n\n  if (!subCondList.length) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = makePrintable('Relational condition must have at least one operator.', 'Illegal condition:', exprOption);\n    }\n\n    throwError(errMsg);\n  }\n\n  var cond = new RelationalConditionInternal();\n  cond.valueGetterParam = valueGetterParam;\n  cond.valueParser = valueParser;\n  cond.getValue = getters.getValue;\n  cond.subCondList = subCondList;\n  return cond;\n}\n\nfunction isObjectNotArray(val) {\n  return isObject(val) && !isArrayLike(val);\n}\n\nvar ConditionalExpressionParsed = function () {\n  function ConditionalExpressionParsed(exprOption, getters) {\n    this._cond = parseOption(exprOption, getters);\n  }\n\n  ConditionalExpressionParsed.prototype.evaluate = function () {\n    return this._cond.evaluate();\n  };\n\n  return ConditionalExpressionParsed;\n}();\n\n;\nexport function parseConditionalExpression(exprOption, getters) {\n  return new ConditionalExpressionParsed(exprOption, getters);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parseConditionalExpression } from '../../util/conditionalExpression';\nimport { hasOwn, createHashMap } from 'zrender/lib/core/util';\nimport { makePrintable, throwError } from '../../util/log';\nexport var filterTransform = {\n  type: 'echarts:filter',\n  transform: function (params) {\n    var upstream = params.upstream;\n    var rawItem;\n    var condition = parseConditionalExpression(params.config, {\n      valueGetterAttrMap: createHashMap({\n        dimension: true\n      }),\n      prepareGetValue: function (exprOption) {\n        var errMsg = '';\n        var dimLoose = exprOption.dimension;\n\n        if (!hasOwn(exprOption, 'dimension')) {\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg = makePrintable('Relation condition must has prop \"dimension\" specified.', 'Illegal condition:', exprOption);\n          }\n\n          throwError(errMsg);\n        }\n\n        var dimInfo = upstream.getDimensionInfo(dimLoose);\n\n        if (!dimInfo) {\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg = makePrintable('Can not find dimension info via: ' + dimLoose + '.\\n', 'Existing dimensions: ', upstream.cloneAllDimensionInfo(), '.\\n', 'Illegal condition:', exprOption, '.\\n');\n          }\n\n          throwError(errMsg);\n        }\n\n        return {\n          dimIdx: dimInfo.index\n        };\n      },\n      getValue: function (param) {\n        return upstream.retrieveValueFromItem(rawItem, param.dimIdx);\n      }\n    });\n    var resultData = [];\n\n    for (var i = 0, len = upstream.count(); i < len; i++) {\n      rawItem = upstream.getRawDataItem(i);\n\n      if (condition.evaluate()) {\n        resultData.push(rawItem);\n      }\n    }\n\n    return {\n      data: resultData\n    };\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { SOURCE_FORMAT_ARRAY_ROWS, SOURCE_FORMAT_OBJECT_ROWS } from '../../util/types';\nimport { makePrintable, throwError } from '../../util/log';\nimport { each } from 'zrender/lib/core/util';\nimport { normalizeToArray } from '../../util/model';\nimport { getRawValueParser, SortOrderComparator } from '../../data/helper/dataValueHelper';\nvar sampleLog = '';\n\nif (process.env.NODE_ENV !== 'production') {\n  sampleLog = ['Valid config is like:', '{ dimension: \"age\", order: \"asc\" }', 'or [{ dimension: \"age\", order: \"asc\"], { dimension: \"date\", order: \"desc\" }]'].join(' ');\n}\n\nexport var sortTransform = {\n  type: 'echarts:sort',\n  transform: function (params) {\n    var upstream = params.upstream;\n    var config = params.config;\n    var errMsg = '';\n    var orderExprList = normalizeToArray(config);\n\n    if (!orderExprList.length) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'Empty `config` in sort transform.';\n      }\n\n      throwError(errMsg);\n    }\n\n    var orderDefList = [];\n    each(orderExprList, function (orderExpr) {\n      var dimLoose = orderExpr.dimension;\n      var order = orderExpr.order;\n      var parserName = orderExpr.parser;\n      var incomparable = orderExpr.incomparable;\n\n      if (dimLoose == null) {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = 'Sort transform config must has \"dimension\" specified.' + sampleLog;\n        }\n\n        throwError(errMsg);\n      }\n\n      if (order !== 'asc' && order !== 'desc') {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = 'Sort transform config must has \"order\" specified.' + sampleLog;\n        }\n\n        throwError(errMsg);\n      }\n\n      if (incomparable && incomparable !== 'min' && incomparable !== 'max') {\n        var errMsg_1 = '';\n\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg_1 = 'incomparable must be \"min\" or \"max\" rather than \"' + incomparable + '\".';\n        }\n\n        throwError(errMsg_1);\n      }\n\n      if (order !== 'asc' && order !== 'desc') {\n        var errMsg_2 = '';\n\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg_2 = 'order must be \"asc\" or \"desc\" rather than \"' + order + '\".';\n        }\n\n        throwError(errMsg_2);\n      }\n\n      var dimInfo = upstream.getDimensionInfo(dimLoose);\n\n      if (!dimInfo) {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = makePrintable('Can not find dimension info via: ' + dimLoose + '.\\n', 'Existing dimensions: ', upstream.cloneAllDimensionInfo(), '.\\n', 'Illegal config:', orderExpr, '.\\n');\n        }\n\n        throwError(errMsg);\n      }\n\n      var parser = parserName ? getRawValueParser(parserName) : null;\n\n      if (parserName && !parser) {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = makePrintable('Invalid parser name ' + parserName + '.\\n', 'Illegal config:', orderExpr, '.\\n');\n        }\n\n        throwError(errMsg);\n      }\n\n      orderDefList.push({\n        dimIdx: dimInfo.index,\n        parser: parser,\n        comparator: new SortOrderComparator(order, incomparable)\n      });\n    });\n    var sourceFormat = upstream.sourceFormat;\n\n    if (sourceFormat !== SOURCE_FORMAT_ARRAY_ROWS && sourceFormat !== SOURCE_FORMAT_OBJECT_ROWS) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'sourceFormat \"' + sourceFormat + '\" is not supported yet';\n      }\n\n      throwError(errMsg);\n    }\n\n    var resultData = [];\n\n    for (var i = 0, len = upstream.count(); i < len; i++) {\n      resultData.push(upstream.getRawDataItem(i));\n    }\n\n    resultData.sort(function (item0, item1) {\n      for (var i = 0; i < orderDefList.length; i++) {\n        var orderDef = orderDefList[i];\n        var val0 = upstream.retrieveValueFromItem(item0, orderDef.dimIdx);\n        var val1 = upstream.retrieveValueFromItem(item1, orderDef.dimIdx);\n\n        if (orderDef.parser) {\n          val0 = orderDef.parser(val0);\n          val1 = orderDef.parser(val1);\n        }\n\n        var result = orderDef.comparator.evaluate(val0, val1);\n\n        if (result !== 0) {\n          return result;\n        }\n      }\n\n      return 0;\n    });\n    return {\n      data: resultData\n    };\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { filterTransform } from './filterTransform';\nimport { sortTransform } from './sortTransform';\nexport function install(registers) {\n  registers.registerTransform(filterTransform);\n  registers.registerTransform(sortTransform);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\nimport ComponentView from '../../view/Component';\nimport { SERIES_LAYOUT_BY_COLUMN } from '../../util/types';\nimport { disableTransformOptionMerge, SourceManager } from '../../data/helper/sourceManager';\n\nvar DatasetModel = function (_super) {\n  __extends(DatasetModel, _super);\n\n  function DatasetModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'dataset';\n    return _this;\n  }\n\n  DatasetModel.prototype.init = function (option, parentModel, ecModel) {\n    _super.prototype.init.call(this, option, parentModel, ecModel);\n\n    this._sourceManager = new SourceManager(this);\n    disableTransformOptionMerge(this);\n  };\n\n  DatasetModel.prototype.mergeOption = function (newOption, ecModel) {\n    _super.prototype.mergeOption.call(this, newOption, ecModel);\n\n    disableTransformOptionMerge(this);\n  };\n\n  DatasetModel.prototype.optionUpdated = function () {\n    this._sourceManager.dirty();\n  };\n\n  DatasetModel.prototype.getSourceManager = function () {\n    return this._sourceManager;\n  };\n\n  DatasetModel.type = 'dataset';\n  DatasetModel.defaultOption = {\n    seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN\n  };\n  return DatasetModel;\n}(ComponentModel);\n\nexport { DatasetModel };\n\nvar DatasetView = function (_super) {\n  __extends(DatasetView, _super);\n\n  function DatasetView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'dataset';\n    return _this;\n  }\n\n  DatasetView.type = 'dataset';\n  return DatasetView;\n}(ComponentView);\n\nexport function install(registers) {\n  registers.registerComponentModel(DatasetModel);\n  registers.registerComponentView(DatasetView);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from './lib/extension';\nexport * from './lib/export/core';\nimport { SVGRenderer, CanvasRenderer } from './lib/export/renderers';\nimport { LineChart, BarChart, PieChart, ScatterChart, RadarChart, MapChart, TreeChart, TreemapChart, GraphChart, GaugeChart, FunnelChart, ParallelChart, SankeyChart, BoxplotChart, CandlestickChart, EffectScatterChart, LinesChart, HeatmapChart, PictorialBarChart, ThemeRiverChart, SunburstChart, CustomChart } from './lib/export/charts';\nimport { GridComponent, PolarComponent, GeoComponent, SingleAxisComponent, ParallelComponent, CalendarComponent, GraphicComponent, ToolboxComponent, TooltipComponent, AxisPointerComponent, BrushComponent, TitleComponent, TimelineComponent, MarkPointComponent, MarkLineComponent, MarkAreaComponent, LegendComponent, DataZoomComponent, DataZoomInsideComponent, DataZoomSliderComponent, VisualMapComponent, VisualMapContinuousComponent, VisualMapPiecewiseComponent, AriaComponent, DatasetComponent, TransformComponent } from './lib/export/components';\nuse([CanvasRenderer]);\nuse([SVGRenderer]);\nuse([LineChart, BarChart, PieChart, ScatterChart, RadarChart, MapChart, TreeChart, TreemapChart, GraphChart, GaugeChart, FunnelChart, ParallelChart, SankeyChart, BoxplotChart, CandlestickChart, EffectScatterChart, LinesChart, HeatmapChart, PictorialBarChart, ThemeRiverChart, SunburstChart, CustomChart]);\nuse(GridComponent);\nuse(PolarComponent);\nuse(GeoComponent);\nuse(SingleAxisComponent);\nuse(ParallelComponent);\nuse(CalendarComponent);\nuse(GraphicComponent);\nuse(ToolboxComponent);\nuse(TooltipComponent);\nuse(AxisPointerComponent);\nuse(BrushComponent);\nuse(TitleComponent);\nuse(TimelineComponent);\nuse(MarkPointComponent);\nuse(MarkLineComponent);\nuse(MarkAreaComponent);\nuse(LegendComponent);\nuse(DataZoomComponent);\nuse(DataZoomInsideComponent);\nuse(DataZoomSliderComponent);\nuse(VisualMapComponent);\nuse(VisualMapContinuousComponent);\nuse(VisualMapPiecewiseComponent);\nuse(AriaComponent);\nuse(TransformComponent);\nuse(DatasetComponent);"],"names":["extendStatics","__extends","clone","_calcOut","eventUtil.clientToLocal","dist","eventTool.stop","util.each","vec2.dist","create","copy","mul","scale","matrix.identity","matrix.create","matrix.mul","matrix.copy","matrix.invert","vector.applyTransform","matrix.rotate","easing","easingFuncs","lerp","color.parse","matrix.translate","matrix.scale","methods","timsort","util.indexOf","requestAnimationFrame","zrUtil.map","zrUtil.noop","zrUtil.each","zrUtil.indexOf","zrUtil.keys","HandlerProxy","zrUtil.guid","parsePercent","zrUtil.reduce","zrUtil.assert","zrUtil.createObject","zrUtil.extend","zrUtil.inherits","imageHelper.findExistImage","imageHelper.isImageReady","PRIMARY_STATES_KEYS","EPSILON","v2Create","isNotAroundZero","v2DistSquare","mathMin","mathMax","vec2.create","cubicExtrema","curve.cubicExtrema","cubicAt","curve.cubicAt","quadraticExtremum","curve.quadraticExtremum","quadraticAt","curve.quadraticAt","min","max","vec2.min","vec2.max","mathCos","mathSin","mathSqrt","PI2","dpr","containStroke","curve.cubicProjectPoint","CMD","curve.cubicRootAt","curve.quadraticRootAt","line.containStroke","cubic.containStroke","quadratic.containStroke","arc.containStroke","pathContain.containStroke","pathContain.contain","round","roundRectHelper.buildPath","color","colorTool.lift","v2ApplyTransform","PI","mathAbs","buildPath","roundSectorHelper.buildPath","distance","v2Distance","v2Min","v2Max","v2Clone","v2Sub","v2Scale","v2Add","polyHelper.buildPath","subPixelOptimizeOutputShape","vec2.normalize","minTv","maxTv","Displayble","pathTool.extendFromString","pathTool.createFromString","mergePath","pathTool.mergePath","subPixelOptimizeLine","subPixelOptimizeUtil.subPixelOptimizeLine","subPixelOptimizeRect","subPixelOptimizeUtil.subPixelOptimizeRect","subPixelOptimize","subPixelOptimizeUtil.subPixelOptimize","applyTransform","invert","zrUtil.merge","numberUtil.parseDate","defaults","zrUtil.defaults","zrUtil.isArray","Text","zrUtil.isString","normalizeCssArray","zrUtil.normalizeCssArray","zrUtil.trim","timeFormat","zrUtil.isStringSafe","zrUtil.isNumber","zrUtil.isObject","each","zrUtil.curry","formatUtil.normalizeCssArray","componentUtil.getUID","layout.fetchLayoutMode","layout.getLayoutParams","layout.mergeLayoutParam","componentUtil.enableSubTypeDefaulter","componentUtil.enableTopologicalTravel","modelUtil.normalizeToArray","modelUtil.mappingToExists","modelUtil.setComponentTypeToKeyInfo","modelUtil.isComponentIdInternal","modelUtil.convertOptionIdName","zrUtil.bind","isObject","modelUtil.TEXT_STYLE_OPTIONS","zrUtil.isTypedArray","set","compatStyle","inner","modelUtil.makeInner","modelUtil.defaultEmphasis","zrUtil.mixin","modelUtil.isNameSpecified","clazzUtil.enableClassExtend","clazzUtil.enableClassManagement","modelUtil.queryDataIndex","graphic.Group","graphic.Rect","graphic.Text","graphic.Arc","vector.dist","vector.lerp","graphic.Path","graphic.Circle","graphic.makeImage","graphic.makePath","assert","isFunction","zrUtil.isFunction","indexOf","version","zrender.init","zrUtil.clone","backwardCompat","zrUtil.setAsPrimitive","instances","zrUtil.createCanvas","graphic.Image","modelUtil.parseFinder","modelUtil.setAttribute","zrUtil.createHashMap","colorTool.parse","colorTool.stringify","graphic.isElementRemoved","init","zrUtil.isDom","dispose","modelUtil.getAttribute","zrUtil.$override","decal","loadingDefault","darkTheme","map","zrUtil.isArrayLike","zrUtil.slice","CoordinateSystem","numberUtil.round","numberUtil.nice","numberUtil.getPrecisionSafe","contain","normalize","scaleHelper.contain","scaleHelper.normalize","scaleHelper.scale","roundNumber","helper.contain","helper.normalize","helper.scale","helper.getIntervalPrecision","formatUtil.addCommas","helper.intervalScaleNiceTicks","getPrecisionSafe","mathFloor","mathPow","numberUtil.quantity","dataStack","axisHelper.createScaleByModel","axisHelper.niceScaleExtent","createTextStyle","innerCreateTextStyle","isAroundEqual","bbox.fromPoints","polygonContain.contain","vec2.applyTransform","zrUtil.filter","textContain.getBoundingRect","isAroundZero","adjustTextY","zrUtil.logError","colorTool.toHex","util.extend","util.logError","util.createCanvas","util.isObject","util.isGradientObject","util.isPatternObject","parseInt10","util.merge","install","graphic.updateProps","graphic.initProps","graphic.removeElement","SymbolClz","graphic.Sector","graphic.LinearGradient","isPointNull","modelUtil.interpolateRawValues","LineSeries","layoutPoints","Sausage","BarSeries","layout.getLayoutRect","RADIAN","graphic.Polyline","graphic.removeElementWithFadeOut","labelLayout","layout","zrUtil.retrieve","zrUtil.retrieve3","graphic.Line","matrixUtil.identity","matrixUtil.rotate","matrixUtil.mul","axisPointerModelHelper.fixValue","axisPointerModelHelper.getAxisPointerModel","cartesianAxisHelper.layout","graphic.groupTransition","installGridSimple","zrUtil.find","createSymbol","symbolUtil.createSymbol","graphic.Polygon","axisBuilderAttrs","RadarView","graphic.Ring","graphic.mergePath","numberUtil.parsePercent","installRadarComponent","echarts.registerAction","eventTool.isMiddleOrRightButtonOnMouseUpDown","interactionMutex.isTaken","points","parseGeoJson","fixTextCoord","fixGeoCoord","getBoundingRect","graphic.CompoundPath","roamHelper.updateViewOnPan","roamHelper.updateViewOnZoom","getViewRect","vector.copy","symbolNeedsDraw","graphic.BezierCurve","separation","sep","noop","helper.retrieveTargetInfo","helper.aboveViewRoot","layout.positionElement","layout.getAvailableSize","Group","Rect","animationUtil.createWrap","zrColor.fastLerp","zrColor.stringify","zrColor.modifyHSL","zrColor.modifyAlpha","zrColor.parse","helper.getPathToRoot","sort","vec2.clone","scaleAndAdd","vec2.scaleAndAdd","vec2.sub","vec2.len","vec2.set","vec2.copy","Line","vector.sub","vector.normalize","LineGroup","makeSeriesScope","curveTool.quadraticAt","vec2.distSquare","quadraticSubdivide","curveTool.quadraticSubdivide","edgeVisual","simpleLayout","circularLayout","forceLayout","createView","graphic.Point","opacityAccessPath","ParallelView","mathCeil","layoutUtil.getLayoutRect","restrict","graphic.applyTransform","numberUtil.asc","interactionMutex.take","interactionMutex.release","trigger","getTransform","graphic.getTransform","graphic.transformDirection","graphicUtil.clipPointsByRect","graphic.BoundingRect","brushHelper.makeRectPanelClipPath","brushHelper.makeRectIsTargetByCursor","brushHelper.makeLinearBrushOtherExtent","actionInfo","installParallelComponent","createGridClipShape","center","createNormalBox","createLarge","transInit","setLargeStyle","LargeArr","preprocessor","normalizeSymbolSize","matrix.clone","curveUtil.quadraticAt","quadraticDerivativeAt","curveUtil.quadraticDerivativeAt","Polyline","lineContain.containStroke","quadraticContain.containStroke","BAR_BORDER_WIDTH_QUERY","updateCommon","completeTreeValue","initChildren","dataToCoordSize","tmpArr","normalizeRadian","prepareCartesian2d","prepareGeo","prepareSingleAxis","preparePolar","prepareCalendar","graphicUtil.makePath","graphicUtil.Image","graphicUtil.Text","graphicUtil.Group","graphicUtil.getShapeClass","isPath","graphicUtil.initProps","graphicUtil.updateProps","updateZ","labelStyleHelper.createTextStyle","labelStyleHelper.createTextConfig","labelStyleHelper.getFont","graphicUtil.Path","bind","updateProps","axisPointerModelHelper.getAxisInfo","graphic.createIcon","throttleUtil.createOrUpdate","axisHelper.getAxisRawValue","viewHelper.buildElStyle","viewHelper.buildCartesianSingleLabelElOption","viewHelper.getTransformedPosition","viewHelper.makeLineShape","viewHelper.makeRectShape","globalListener.register","globalListener.unregister","modelHelper.makeKey","installSimple","installAxisPointer","pointerShapeBuilder","viewHelper.buildLabelElOption","viewHelper.makeSectorShape","getCoordSys","elementList","selfBuilderAttrs","axisElementBuilders","getSeriesStackId","getAxisKey","zrUtil.mergeAll","singleAxisHelper.layout","formatUtil.formatTplSimple","createEl","layoutUtil.positionElement","zrUtil.hasOwn","layoutUtil.LOCATION_PARAMS","layoutUtil.mergeLayoutParam","layoutUtil.copyLayoutParams","asc","numberUtil.linearMap","numberUtil.getPixelPrecision","SelectZoomModel","SelectZoomView","featureManager.getFeature","layoutBox","listComponentHelper.layout","listComponentHelper.makeBackground","trim","clear","history.clear","parseFinder","modelUtilParseFinder","handlers","history.push","history.pop","history.count","DataZoom","Restore","installDataZoomSelect","makeStyleCoord","makeDispatchAction","axisPointerViewHelper.getValueLabel","formatUtil.convertToColorString","formatUtil.formatTpl","visualSolution.createVisualMappings","visualSolution.applyVisual","visualSolution.replaceVisualOption","zrUtil.retrieve2","createScaleByModel","numberUtil.getPrecision","getAxisInfo","dataFilter","createList","markerHelper.dataTransform","markerHelper.dataFilter","markerHelper.dimValueGetter","markerHelper.getAxisInfo","markerHelper.numCalculate","dimValueGetter","isInifinity","colorUtil.modifyAlpha","curry","layoutUtil.box","mergeAndNormalizeLayoutParams","WH","XY","installLegendPlain","installLegendScroll","dispatchAction","roams.setViewInfoToCoordSysRecord","roams.disposeCoordSysRecordIfNeeded","throttle.createOrUpdate","throttle.clear","installDataZoomInside","installDataZoomSlider","defaultOption","mapVisual","isArray","linearMap","helper.getItemAlign","getCursor","modelUtil.compressBatches","helper.makeHighDownBatch","visualSolution.incrementalApplyVisual","has","installed","installCommon","layout.box","PiecewiseView","installVisualMapContinuous","installVisualMapPiecewise","CanvasRenderer","SVGRenderer","LineChart","BarChart","PieChart","ScatterChart","RadarChart","MapChart","TreeChart","TreemapChart","GraphChart","GaugeChart","FunnelChart","ParallelChart","SankeyChart","BoxplotChart","CandlestickChart","EffectScatterChart","LinesChart","HeatmapChart","PictorialBarChart","ThemeRiverChart","SunburstChart","CustomChart","GridComponent","PolarComponent","GeoComponent","SingleAxisComponent","ParallelComponent","CalendarComponent","GraphicComponent","ToolboxComponent","TooltipComponent","AxisPointerComponent","BrushComponent","TitleComponent","TimelineComponent","MarkPointComponent","MarkLineComponent","MarkAreaComponent","LegendComponent","DataZoomComponent","DataZoomInsideComponent","DataZoomSliderComponent","VisualMapComponent","VisualMapContinuousComponent","VisualMapPiecewiseComponent","AriaComponent","TransformComponent","DatasetComponent"],"mappings":"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,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC1E,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC1E,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC1E,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC1E,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AAC1E,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC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I,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAA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"}
\ No newline at end of file
+{"version":3,"file":"echarts.esm.js","sources":["../node_modules/tslib/tslib.es6.js","../node_modules/zrender/lib/core/env.js","../node_modules/zrender/lib/core/util.js","../node_modules/zrender/lib/core/vector.js","../node_modules/zrender/lib/mixin/Draggable.js","../node_modules/zrender/lib/core/Eventful.js","../node_modules/zrender/lib/core/fourPointsTransform.js","../node_modules/zrender/lib/core/dom.js","../node_modules/zrender/lib/core/event.js","../node_modules/zrender/lib/core/GestureMgr.js","../node_modules/zrender/lib/Handler.js","../node_modules/zrender/lib/core/matrix.js","../node_modules/zrender/lib/core/Transformable.js","../node_modules/zrender/lib/animation/easing.js","../node_modules/zrender/lib/animation/Clip.js","../node_modules/zrender/lib/core/LRU.js","../node_modules/zrender/lib/tool/color.js","../node_modules/zrender/lib/animation/Animator.js","../node_modules/zrender/lib/core/Point.js","../node_modules/zrender/lib/core/BoundingRect.js","../node_modules/zrender/lib/contain/text.js","../node_modules/zrender/lib/config.js","../node_modules/zrender/lib/Element.js","../node_modules/zrender/lib/core/timsort.js","../node_modules/zrender/lib/Storage.js","../node_modules/zrender/lib/animation/requestAnimationFrame.js","../node_modules/zrender/lib/animation/Animation.js","../node_modules/zrender/lib/dom/HandlerProxy.js","../node_modules/zrender/lib/graphic/Group.js","../node_modules/zrender/lib/zrender.js","../lib/util/number.js","../lib/util/log.js","../lib/util/model.js","../lib/util/clazz.js","../lib/model/mixin/makeStyleMapper.js","../lib/model/mixin/areaStyle.js","../node_modules/zrender/lib/graphic/helper/image.js","../node_modules/zrender/lib/graphic/helper/parseText.js","../node_modules/zrender/lib/graphic/Displayable.js","../node_modules/zrender/lib/core/curve.js","../node_modules/zrender/lib/core/bbox.js","../node_modules/zrender/lib/core/PathProxy.js","../node_modules/zrender/lib/contain/line.js","../node_modules/zrender/lib/contain/cubic.js","../node_modules/zrender/lib/contain/quadratic.js","../node_modules/zrender/lib/contain/util.js","../node_modules/zrender/lib/contain/arc.js","../node_modules/zrender/lib/contain/windingLine.js","../node_modules/zrender/lib/contain/path.js","../node_modules/zrender/lib/graphic/Path.js","../node_modules/zrender/lib/graphic/TSpan.js","../node_modules/zrender/lib/graphic/Image.js","../node_modules/zrender/lib/graphic/helper/roundRect.js","../node_modules/zrender/lib/graphic/helper/subPixelOptimize.js","../node_modules/zrender/lib/graphic/shape/Rect.js","../node_modules/zrender/lib/graphic/Text.js","../lib/util/innerStore.js","../lib/util/states.js","../node_modules/zrender/lib/tool/transformPath.js","../node_modules/zrender/lib/tool/path.js","../node_modules/zrender/lib/graphic/shape/Circle.js","../node_modules/zrender/lib/graphic/shape/Ellipse.js","../node_modules/zrender/lib/graphic/helper/roundSector.js","../node_modules/zrender/lib/graphic/shape/Sector.js","../node_modules/zrender/lib/graphic/shape/Ring.js","../node_modules/zrender/lib/graphic/helper/smoothSpline.js","../node_modules/zrender/lib/graphic/helper/smoothBezier.js","../node_modules/zrender/lib/graphic/helper/poly.js","../node_modules/zrender/lib/graphic/shape/Polygon.js","../node_modules/zrender/lib/graphic/shape/Polyline.js","../node_modules/zrender/lib/graphic/shape/Line.js","../node_modules/zrender/lib/graphic/shape/BezierCurve.js","../node_modules/zrender/lib/graphic/shape/Arc.js","../node_modules/zrender/lib/graphic/CompoundPath.js","../node_modules/zrender/lib/graphic/Gradient.js","../node_modules/zrender/lib/graphic/LinearGradient.js","../node_modules/zrender/lib/graphic/RadialGradient.js","../node_modules/zrender/lib/core/OrientedBoundingRect.js","../node_modules/zrender/lib/graphic/IncrementalDisplayable.js","../lib/util/graphic.js","../lib/label/labelStyle.js","../lib/model/mixin/textStyle.js","../lib/model/mixin/lineStyle.js","../lib/model/mixin/itemStyle.js","../lib/model/Model.js","../lib/util/component.js","../lib/i18n/langEN.js","../lib/i18n/langZH.js","../lib/core/locale.js","../lib/util/time.js","../lib/legacy/getTextRect.js","../lib/util/format.js","../lib/util/layout.js","../lib/model/Component.js","../lib/model/globalDefault.js","../lib/util/types.js","../lib/data/helper/sourceHelper.js","../lib/model/internalComponentCreator.js","../lib/model/mixin/palette.js","../lib/model/Global.js","../lib/core/ExtensionAPI.js","../lib/core/CoordinateSystem.js","../lib/model/OptionManager.js","../lib/preprocessor/helper/compatStyle.js","../lib/preprocessor/backwardCompat.js","../lib/processor/dataStack.js","../lib/data/Source.js","../lib/data/helper/dataProvider.js","../lib/model/mixin/dataFormat.js","../lib/core/task.js","../lib/data/helper/dataValueHelper.js","../lib/data/helper/transform.js","../lib/data/helper/sourceManager.js","../lib/component/tooltip/tooltipMarkup.js","../lib/component/tooltip/seriesFormatTooltip.js","../lib/model/Series.js","../lib/view/Component.js","../lib/chart/helper/createRenderPlanner.js","../lib/view/Chart.js","../lib/util/throttle.js","../lib/visual/style.js","../lib/loading/default.js","../lib/core/Scheduler.js","../lib/theme/light.js","../lib/theme/dark.js","../node_modules/zrender/lib/tool/parseXML.js","../lib/coord/geo/mapDataStorage.js","../lib/util/ECEventProcessor.js","../lib/visual/symbol.js","../lib/visual/helper.js","../lib/label/labelGuideHelper.js","../lib/label/labelLayoutHelper.js","../lib/label/LabelManager.js","../lib/legacy/dataSelectAction.js","../lib/util/event.js","../node_modules/zrender/lib/core/WeakMap.js","../lib/util/symbol.js","../node_modules/zrender/lib/canvas/helper.js","../node_modules/zrender/lib/graphic/helper/dashStyle.js","../node_modules/zrender/lib/canvas/graphic.js","../lib/util/decal.js","../lib/visual/decal.js","../lib/core/echarts.js","../lib/extension.js","../lib/data/DataDiffer.js","../lib/data/helper/dimensionHelper.js","../lib/data/DataDimensionInfo.js","../lib/data/List.js","../lib/data/helper/completeDimensions.js","../lib/data/helper/createDimensions.js","../lib/model/referHelper.js","../lib/data/helper/dataStackHelper.js","../lib/chart/helper/createListFromArray.js","../lib/scale/Scale.js","../lib/data/OrdinalMeta.js","../lib/scale/helper.js","../lib/scale/Ordinal.js","../lib/scale/Interval.js","../lib/layout/barGrid.js","../lib/scale/Time.js","../lib/scale/Log.js","../lib/coord/scaleRawExtentInfo.js","../lib/coord/axisHelper.js","../lib/coord/axisModelCommonMixin.js","../lib/export/api/helper.js","../node_modules/zrender/lib/contain/polygon.js","../lib/coord/geo/Region.js","../lib/coord/geo/parseGeoJson.js","../lib/coord/axisTickLabelBuilder.js","../lib/coord/Axis.js","../lib/export/api.js","../node_modules/zrender/lib/svg/core.js","../node_modules/zrender/lib/core/arrayDiff.js","../node_modules/zrender/lib/svg/graphic.js","../node_modules/zrender/lib/svg/helper/Definable.js","../node_modules/zrender/lib/svg/helper/GradientManager.js","../node_modules/zrender/lib/svg/helper/PatternManager.js","../node_modules/zrender/lib/svg/helper/ClippathManager.js","../node_modules/zrender/lib/svg/helper/ShadowManager.js","../node_modules/zrender/lib/svg/Painter.js","../lib/renderer/installSVGRenderer.js","../node_modules/zrender/lib/canvas/Layer.js","../node_modules/zrender/lib/canvas/Painter.js","../lib/renderer/installCanvasRenderer.js","../lib/chart/line/LineSeries.js","../lib/chart/helper/labelHelper.js","../lib/chart/helper/Symbol.js","../lib/chart/helper/SymbolDraw.js","../lib/chart/line/helper.js","../lib/util/vendor.js","../lib/chart/line/lineAnimationDiff.js","../lib/chart/line/poly.js","../lib/chart/helper/createClipPathFromCoordSys.js","../lib/coord/CoordinateSystem.js","../lib/chart/line/LineView.js","../lib/layout/points.js","../lib/processor/dataSample.js","../lib/chart/line/install.js","../lib/chart/bar/BaseBarSeries.js","../lib/chart/bar/BarSeries.js","../lib/util/shape/sausage.js","../lib/chart/bar/BarView.js","../lib/chart/bar/install.js","../lib/chart/pie/pieLayout.js","../lib/processor/dataFilter.js","../lib/chart/pie/labelLayout.js","../lib/chart/helper/pieHelper.js","../lib/chart/pie/PieView.js","../lib/chart/helper/createListSimply.js","../lib/visual/LegendVisualProvider.js","../lib/chart/pie/PieSeries.js","../lib/chart/pie/install.js","../lib/chart/scatter/ScatterSeries.js","../lib/chart/helper/LargeSymbolDraw.js","../lib/chart/scatter/ScatterView.js","../lib/coord/cartesian/GridModel.js","../lib/coord/cartesian/AxisModel.js","../lib/coord/axisDefault.js","../lib/coord/axisCommonTypes.js","../lib/coord/axisModelCreator.js","../lib/coord/cartesian/Cartesian.js","../lib/coord/cartesian/Cartesian2D.js","../lib/coord/cartesian/Axis2D.js","../lib/coord/cartesian/cartesianAxisHelper.js","../lib/coord/cartesian/Grid.js","../lib/component/axis/AxisBuilder.js","../lib/component/axisPointer/modelHelper.js","../lib/component/axis/AxisView.js","../lib/component/axis/axisSplitHelper.js","../lib/component/axis/CartesianAxisView.js","../lib/component/grid/installSimple.js","../lib/chart/scatter/install.js","../lib/chart/radar/radarLayout.js","../lib/chart/radar/backwardCompat.js","../lib/chart/radar/RadarView.js","../lib/chart/radar/RadarSeries.js","../lib/coord/radar/RadarModel.js","../lib/component/radar/RadarView.js","../lib/coord/radar/IndicatorAxis.js","../lib/coord/radar/Radar.js","../lib/component/radar/install.js","../lib/chart/radar/install.js","../lib/component/helper/interactionMutex.js","../lib/component/helper/RoamController.js","../lib/component/helper/roamHelper.js","../lib/component/helper/cursorHelper.js","../lib/coord/geo/fix/nanhai.js","../lib/coord/geo/fix/textCoord.js","../lib/coord/geo/fix/geoCoord.js","../lib/coord/geo/fix/diaoyuIsland.js","../lib/coord/geo/geoJSONLoader.js","../node_modules/zrender/lib/tool/parseSVG.js","../lib/coord/geo/geoSVGLoader.js","../lib/coord/geo/geoSourceManager.js","../lib/component/helper/MapDraw.js","../lib/chart/map/MapView.js","../lib/chart/map/MapSeries.js","../lib/chart/map/mapDataStatistic.js","../lib/chart/map/mapSymbolLayout.js","../lib/chart/map/install.js","../lib/chart/tree/layoutHelper.js","../lib/coord/View.js","../lib/chart/tree/TreeView.js","../lib/data/helper/linkList.js","../lib/data/Tree.js","../lib/chart/tree/TreeSeries.js","../lib/chart/tree/traversalHelper.js","../lib/chart/tree/treeLayout.js","../lib/chart/tree/treeVisual.js","../lib/action/roamHelper.js","../lib/chart/tree/treeAction.js","../lib/chart/tree/install.js","../lib/chart/helper/treeHelper.js","../lib/chart/treemap/treemapAction.js","../lib/chart/helper/enableAriaDecalForTree.js","../lib/chart/treemap/TreemapSeries.js","../lib/chart/treemap/Breadcrumb.js","../lib/util/animation.js","../lib/chart/treemap/TreemapView.js","../lib/visual/VisualMapping.js","../lib/chart/treemap/treemapVisual.js","../lib/chart/treemap/treemapLayout.js","../lib/chart/treemap/install.js","../lib/chart/graph/categoryFilter.js","../lib/chart/graph/categoryVisual.js","../lib/chart/graph/edgeVisual.js","../lib/chart/helper/multipleGraphEdgeHelper.js","../lib/chart/graph/simpleLayoutHelper.js","../lib/chart/graph/simpleLayout.js","../lib/chart/graph/graphHelper.js","../lib/chart/graph/circularLayoutHelper.js","../lib/chart/graph/circularLayout.js","../lib/chart/graph/forceHelper.js","../lib/chart/graph/forceLayout.js","../lib/chart/graph/createView.js","../lib/chart/helper/LinePath.js","../lib/chart/helper/Line.js","../lib/chart/helper/LineDraw.js","../lib/chart/graph/adjustEdge.js","../lib/chart/graph/GraphView.js","../lib/data/Graph.js","../lib/chart/helper/createGraphFromNodeEdge.js","../lib/chart/graph/GraphSeries.js","../lib/chart/graph/install.js","../lib/chart/gauge/PointerPath.js","../lib/chart/gauge/GaugeView.js","../lib/chart/gauge/GaugeSeries.js","../lib/chart/gauge/install.js","../lib/chart/funnel/FunnelView.js","../lib/chart/funnel/FunnelSeries.js","../lib/chart/funnel/funnelLayout.js","../lib/chart/funnel/install.js","../lib/chart/parallel/ParallelView.js","../lib/chart/parallel/ParallelSeries.js","../lib/chart/parallel/parallelVisual.js","../lib/coord/parallel/parallelPreprocessor.js","../lib/component/parallel/ParallelView.js","../lib/coord/parallel/ParallelModel.js","../lib/coord/parallel/ParallelAxis.js","../lib/component/helper/sliderMove.js","../lib/coord/parallel/Parallel.js","../lib/coord/parallel/parallelCreator.js","../lib/coord/parallel/AxisModel.js","../lib/component/helper/BrushController.js","../lib/component/helper/brushHelper.js","../lib/component/axis/ParallelAxisView.js","../lib/component/axis/parallelAxisAction.js","../lib/component/parallel/install.js","../lib/chart/parallel/install.js","../lib/chart/sankey/SankeyView.js","../lib/chart/sankey/SankeySeries.js","../lib/chart/sankey/sankeyLayout.js","../lib/chart/sankey/sankeyVisual.js","../lib/chart/sankey/install.js","../lib/chart/helper/whiskerBoxCommon.js","../lib/chart/boxplot/BoxplotSeries.js","../lib/chart/boxplot/BoxplotView.js","../lib/chart/boxplot/boxplotVisual.js","../lib/chart/boxplot/boxplotLayout.js","../lib/chart/boxplot/prepareBoxplotData.js","../lib/chart/boxplot/boxplotTransform.js","../lib/chart/boxplot/install.js","../lib/chart/candlestick/CandlestickView.js","../lib/chart/candlestick/CandlestickSeries.js","../lib/chart/candlestick/preprocessor.js","../lib/chart/candlestick/candlestickVisual.js","../lib/chart/candlestick/candlestickLayout.js","../lib/chart/candlestick/install.js","../lib/chart/helper/EffectSymbol.js","../lib/chart/effectScatter/EffectScatterView.js","../lib/chart/effectScatter/EffectScatterSeries.js","../lib/chart/effectScatter/install.js","../lib/chart/helper/EffectLine.js","../lib/chart/helper/Polyline.js","../lib/chart/helper/EffectPolyline.js","../lib/chart/helper/LargeLineDraw.js","../lib/chart/lines/linesLayout.js","../lib/chart/lines/LinesView.js","../lib/chart/lines/LinesSeries.js","../lib/chart/lines/linesVisual.js","../lib/chart/lines/install.js","../lib/chart/heatmap/HeatmapLayer.js","../lib/chart/heatmap/HeatmapView.js","../lib/chart/heatmap/HeatmapSeries.js","../lib/chart/heatmap/install.js","../lib/chart/bar/PictorialBarView.js","../lib/chart/bar/PictorialBarSeries.js","../lib/chart/bar/installPictorialBar.js","../lib/chart/themeRiver/ThemeRiverView.js","../lib/chart/themeRiver/ThemeRiverSeries.js","../lib/chart/themeRiver/themeRiverLayout.js","../lib/chart/themeRiver/install.js","../lib/chart/sunburst/SunburstPiece.js","../lib/chart/sunburst/sunburstAction.js","../lib/chart/sunburst/SunburstView.js","../lib/chart/sunburst/SunburstSeries.js","../lib/chart/sunburst/sunburstLayout.js","../lib/chart/sunburst/sunburstVisual.js","../lib/chart/sunburst/install.js","../lib/coord/cartesian/prepareCustom.js","../lib/coord/geo/prepareCustom.js","../lib/coord/single/prepareCustom.js","../lib/coord/polar/prepareCustom.js","../lib/coord/calendar/prepareCustom.js","../lib/util/styleCompat.js","../node_modules/zrender/lib/tool/morphPath.js","../lib/chart/custom/install.js","../lib/component/axisPointer/BaseAxisPointer.js","../lib/component/axisPointer/viewHelper.js","../lib/component/axisPointer/CartesianAxisPointer.js","../lib/component/axisPointer/AxisPointerModel.js","../lib/component/axisPointer/globalListener.js","../lib/component/axisPointer/AxisPointerView.js","../lib/component/axisPointer/findPointFromSeries.js","../lib/component/axisPointer/axisTrigger.js","../lib/component/axisPointer/install.js","../lib/component/grid/install.js","../lib/component/axisPointer/PolarAxisPointer.js","../lib/coord/polar/PolarModel.js","../lib/coord/polar/AxisModel.js","../lib/coord/polar/RadiusAxis.js","../lib/coord/polar/AngleAxis.js","../lib/coord/polar/Polar.js","../lib/coord/polar/polarCreator.js","../lib/component/axis/AngleAxisView.js","../lib/component/axis/RadiusAxisView.js","../lib/layout/barPolar.js","../lib/component/polar/install.js","../lib/coord/geo/Geo.js","../lib/coord/geo/geoCreator.js","../lib/coord/geo/GeoModel.js","../lib/component/geo/GeoView.js","../lib/component/geo/install.js","../lib/coord/single/singleAxisHelper.js","../lib/component/axis/SingleAxisView.js","../lib/coord/single/AxisModel.js","../lib/coord/single/SingleAxis.js","../lib/coord/single/Single.js","../lib/coord/single/singleCreator.js","../lib/component/axisPointer/SingleAxisPointer.js","../lib/component/singleAxis/install.js","../lib/coord/calendar/CalendarModel.js","../lib/component/calendar/CalendarView.js","../lib/coord/calendar/Calendar.js","../lib/component/calendar/install.js","../lib/component/graphic/install.js","../lib/component/dataZoom/helper.js","../lib/component/dataZoom/DataZoomModel.js","../lib/component/dataZoom/SelectZoomModel.js","../lib/component/dataZoom/DataZoomView.js","../lib/component/dataZoom/SelectZoomView.js","../lib/component/dataZoom/AxisProxy.js","../lib/component/dataZoom/dataZoomProcessor.js","../lib/component/dataZoom/dataZoomAction.js","../lib/component/dataZoom/installCommon.js","../lib/component/dataZoom/installDataZoomSelect.js","../lib/component/toolbox/featureManager.js","../lib/component/toolbox/ToolboxModel.js","../lib/component/helper/listComponent.js","../lib/component/toolbox/ToolboxView.js","../lib/component/toolbox/feature/SaveAsImage.js","../lib/component/toolbox/feature/MagicType.js","../lib/component/toolbox/feature/DataView.js","../lib/component/dataZoom/history.js","../lib/component/toolbox/feature/Restore.js","../lib/component/helper/BrushTargetManager.js","../lib/component/toolbox/feature/DataZoom.js","../lib/component/toolbox/install.js","../lib/component/tooltip/TooltipModel.js","../lib/component/tooltip/helper.js","../lib/component/tooltip/TooltipHTMLContent.js","../lib/component/tooltip/TooltipRichContent.js","../lib/component/tooltip/TooltipView.js","../lib/component/tooltip/install.js","../lib/component/brush/preprocessor.js","../lib/visual/visualSolution.js","../lib/component/brush/selector.js","../lib/component/brush/visualEncoding.js","../lib/component/brush/BrushView.js","../lib/component/brush/BrushModel.js","../lib/component/toolbox/feature/Brush.js","../lib/component/brush/install.js","../lib/component/title/install.js","../lib/component/timeline/TimelineModel.js","../lib/component/timeline/SliderTimelineModel.js","../lib/component/timeline/TimelineView.js","../lib/component/timeline/TimelineAxis.js","../lib/component/timeline/SliderTimelineView.js","../lib/component/timeline/timelineAction.js","../lib/component/timeline/preprocessor.js","../lib/component/timeline/install.js","../lib/component/marker/MarkerModel.js","../lib/component/marker/MarkPointModel.js","../lib/component/marker/markerHelper.js","../lib/component/marker/MarkerView.js","../lib/component/marker/MarkPointView.js","../lib/component/marker/installMarkPoint.js","../lib/component/marker/MarkLineModel.js","../lib/component/marker/MarkLineView.js","../lib/component/marker/installMarkLine.js","../lib/component/marker/MarkAreaModel.js","../lib/component/marker/MarkAreaView.js","../lib/component/marker/installMarkArea.js","../lib/component/legend/LegendModel.js","../lib/component/legend/LegendView.js","../lib/component/legend/legendFilter.js","../lib/component/legend/legendAction.js","../lib/component/legend/installLegendPlain.js","../lib/component/legend/ScrollableLegendModel.js","../lib/component/legend/ScrollableLegendView.js","../lib/component/legend/scrollableLegendAction.js","../lib/component/legend/installLegendScroll.js","../lib/component/legend/install.js","../lib/component/dataZoom/InsideZoomModel.js","../lib/component/dataZoom/roams.js","../lib/component/dataZoom/InsideZoomView.js","../lib/component/dataZoom/installDataZoomInside.js","../lib/component/dataZoom/SliderZoomModel.js","../lib/component/dataZoom/SliderZoomView.js","../lib/component/dataZoom/installDataZoomSlider.js","../lib/component/dataZoom/install.js","../lib/visual/visualDefault.js","../lib/component/visualMap/VisualMapModel.js","../lib/component/visualMap/ContinuousModel.js","../lib/component/visualMap/VisualMapView.js","../lib/component/visualMap/helper.js","../lib/component/visualMap/ContinuousView.js","../lib/component/visualMap/visualMapAction.js","../lib/component/visualMap/visualEncoding.js","../lib/component/visualMap/preprocessor.js","../lib/component/visualMap/installCommon.js","../lib/component/visualMap/installVisualMapContinuous.js","../lib/component/visualMap/PiecewiseModel.js","../lib/component/visualMap/PiecewiseView.js","../lib/component/visualMap/installVisualMapPiecewise.js","../lib/component/visualMap/install.js","../lib/visual/aria.js","../lib/component/aria/preprocessor.js","../lib/component/aria/install.js","../lib/util/conditionalExpression.js","../lib/component/transform/filterTransform.js","../lib/component/transform/sortTransform.js","../lib/component/transform/install.js","../lib/component/dataset/install.js","../index.js"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar 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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport 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\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\nexport 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};\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to get private field on non-instance\");\r\n    }\r\n    return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to set private field on non-instance\");\r\n    }\r\n    privateMap.set(receiver, value);\r\n    return value;\r\n}\r\n","var Browser = (function () {\n    function Browser() {\n        this.firefox = false;\n        this.ie = false;\n        this.edge = false;\n        this.newEdge = false;\n        this.weChat = false;\n    }\n    return Browser;\n}());\nvar Env = (function () {\n    function Env() {\n        this.browser = new Browser();\n        this.node = false;\n        this.wxa = false;\n        this.worker = false;\n        this.canvasSupported = false;\n        this.svgSupported = false;\n        this.touchEventsSupported = false;\n        this.pointerEventsSupported = false;\n        this.domSupported = false;\n    }\n    return Env;\n}());\nvar env = new Env();\nif (typeof wx === 'object' && typeof wx.getSystemInfoSync === 'function') {\n    env.wxa = true;\n    env.canvasSupported = true;\n    env.touchEventsSupported = true;\n}\nelse if (typeof document === 'undefined' && typeof self !== 'undefined') {\n    env.worker = true;\n    env.canvasSupported = true;\n}\nelse if (typeof navigator === 'undefined') {\n    env.node = true;\n    env.canvasSupported = true;\n    env.svgSupported = true;\n}\nelse {\n    detect(navigator.userAgent, env);\n}\nfunction detect(ua, env) {\n    var browser = env.browser;\n    var firefox = ua.match(/Firefox\\/([\\d.]+)/);\n    var ie = ua.match(/MSIE\\s([\\d.]+)/)\n        || ua.match(/Trident\\/.+?rv:(([\\d.]+))/);\n    var edge = ua.match(/Edge?\\/([\\d.]+)/);\n    var weChat = (/micromessenger/i).test(ua);\n    if (firefox) {\n        browser.firefox = true;\n        browser.version = firefox[1];\n    }\n    if (ie) {\n        browser.ie = true;\n        browser.version = ie[1];\n    }\n    if (edge) {\n        browser.edge = true;\n        browser.version = edge[1];\n        browser.newEdge = +edge[1].split('.')[0] > 18;\n    }\n    if (weChat) {\n        browser.weChat = true;\n    }\n    env.canvasSupported = !!document.createElement('canvas').getContext;\n    env.svgSupported = typeof SVGRect !== 'undefined';\n    env.touchEventsSupported = 'ontouchstart' in window && !browser.ie && !browser.edge;\n    env.pointerEventsSupported = 'onpointerdown' in window\n        && (browser.edge || (browser.ie && +browser.version >= 11));\n    env.domSupported = typeof document !== 'undefined';\n}\nexport default env;\n","var BUILTIN_OBJECT = {\n    '[object Function]': true,\n    '[object RegExp]': true,\n    '[object Date]': true,\n    '[object Error]': true,\n    '[object CanvasGradient]': true,\n    '[object CanvasPattern]': true,\n    '[object Image]': true,\n    '[object Canvas]': true\n};\nvar TYPED_ARRAY = {\n    '[object Int8Array]': true,\n    '[object Uint8Array]': true,\n    '[object Uint8ClampedArray]': true,\n    '[object Int16Array]': true,\n    '[object Uint16Array]': true,\n    '[object Int32Array]': true,\n    '[object Uint32Array]': true,\n    '[object Float32Array]': true,\n    '[object Float64Array]': true\n};\nvar objToString = Object.prototype.toString;\nvar arrayProto = Array.prototype;\nvar nativeForEach = arrayProto.forEach;\nvar nativeFilter = arrayProto.filter;\nvar nativeSlice = arrayProto.slice;\nvar nativeMap = arrayProto.map;\nvar ctorFunction = function () { }.constructor;\nvar protoFunction = ctorFunction ? ctorFunction.prototype : null;\nvar methods = {};\nexport function $override(name, fn) {\n    methods[name] = fn;\n}\nvar idStart = 0x0907;\nexport function guid() {\n    return idStart++;\n}\nexport function logError() {\n    var args = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n    }\n    if (typeof console !== 'undefined') {\n        console.error.apply(console, args);\n    }\n}\nexport function clone(source) {\n    if (source == null || typeof source !== 'object') {\n        return source;\n    }\n    var result = source;\n    var typeStr = objToString.call(source);\n    if (typeStr === '[object Array]') {\n        if (!isPrimitive(source)) {\n            result = [];\n            for (var i = 0, len = source.length; i < len; i++) {\n                result[i] = clone(source[i]);\n            }\n        }\n    }\n    else if (TYPED_ARRAY[typeStr]) {\n        if (!isPrimitive(source)) {\n            var Ctor = source.constructor;\n            if (Ctor.from) {\n                result = Ctor.from(source);\n            }\n            else {\n                result = new Ctor(source.length);\n                for (var i = 0, len = source.length; i < len; i++) {\n                    result[i] = clone(source[i]);\n                }\n            }\n        }\n    }\n    else if (!BUILTIN_OBJECT[typeStr] && !isPrimitive(source) && !isDom(source)) {\n        result = {};\n        for (var key in source) {\n            if (source.hasOwnProperty(key)) {\n                result[key] = clone(source[key]);\n            }\n        }\n    }\n    return result;\n}\nexport function merge(target, source, overwrite) {\n    if (!isObject(source) || !isObject(target)) {\n        return overwrite ? clone(source) : target;\n    }\n    for (var key in source) {\n        if (source.hasOwnProperty(key)) {\n            var targetProp = target[key];\n            var sourceProp = source[key];\n            if (isObject(sourceProp)\n                && isObject(targetProp)\n                && !isArray(sourceProp)\n                && !isArray(targetProp)\n                && !isDom(sourceProp)\n                && !isDom(targetProp)\n                && !isBuiltInObject(sourceProp)\n                && !isBuiltInObject(targetProp)\n                && !isPrimitive(sourceProp)\n                && !isPrimitive(targetProp)) {\n                merge(targetProp, sourceProp, overwrite);\n            }\n            else if (overwrite || !(key in target)) {\n                target[key] = clone(source[key]);\n            }\n        }\n    }\n    return target;\n}\nexport function mergeAll(targetAndSources, overwrite) {\n    var result = targetAndSources[0];\n    for (var i = 1, len = targetAndSources.length; i < len; i++) {\n        result = merge(result, targetAndSources[i], overwrite);\n    }\n    return result;\n}\nexport function extend(target, source) {\n    if (Object.assign) {\n        Object.assign(target, source);\n    }\n    else {\n        for (var key in source) {\n            if (source.hasOwnProperty(key)) {\n                target[key] = source[key];\n            }\n        }\n    }\n    return target;\n}\nexport function defaults(target, source, overlay) {\n    var keysArr = keys(source);\n    for (var i = 0; i < keysArr.length; i++) {\n        var key = keysArr[i];\n        if ((overlay ? source[key] != null : target[key] == null)) {\n            target[key] = source[key];\n        }\n    }\n    return target;\n}\nexport var createCanvas = function () {\n    return methods.createCanvas();\n};\nmethods.createCanvas = function () {\n    return document.createElement('canvas');\n};\nexport function indexOf(array, value) {\n    if (array) {\n        if (array.indexOf) {\n            return array.indexOf(value);\n        }\n        for (var i = 0, len = array.length; i < len; i++) {\n            if (array[i] === value) {\n                return i;\n            }\n        }\n    }\n    return -1;\n}\nexport function inherits(clazz, baseClazz) {\n    var clazzPrototype = clazz.prototype;\n    function F() { }\n    F.prototype = baseClazz.prototype;\n    clazz.prototype = new F();\n    for (var prop in clazzPrototype) {\n        if (clazzPrototype.hasOwnProperty(prop)) {\n            clazz.prototype[prop] = clazzPrototype[prop];\n        }\n    }\n    clazz.prototype.constructor = clazz;\n    clazz.superClass = baseClazz;\n}\nexport function mixin(target, source, override) {\n    target = 'prototype' in target ? target.prototype : target;\n    source = 'prototype' in source ? source.prototype : source;\n    if (Object.getOwnPropertyNames) {\n        var keyList = Object.getOwnPropertyNames(source);\n        for (var i = 0; i < keyList.length; i++) {\n            var key = keyList[i];\n            if (key !== 'constructor') {\n                if ((override ? source[key] != null : target[key] == null)) {\n                    target[key] = source[key];\n                }\n            }\n        }\n    }\n    else {\n        defaults(target, source, override);\n    }\n}\nexport function isArrayLike(data) {\n    if (!data) {\n        return false;\n    }\n    if (typeof data === 'string') {\n        return false;\n    }\n    return typeof data.length === 'number';\n}\nexport function each(arr, cb, context) {\n    if (!(arr && cb)) {\n        return;\n    }\n    if (arr.forEach && arr.forEach === nativeForEach) {\n        arr.forEach(cb, context);\n    }\n    else if (arr.length === +arr.length) {\n        for (var i = 0, len = arr.length; i < len; i++) {\n            cb.call(context, arr[i], i, arr);\n        }\n    }\n    else {\n        for (var key in arr) {\n            if (arr.hasOwnProperty(key)) {\n                cb.call(context, arr[key], key, arr);\n            }\n        }\n    }\n}\nexport function map(arr, cb, context) {\n    if (!arr) {\n        return [];\n    }\n    if (!cb) {\n        return slice(arr);\n    }\n    if (arr.map && arr.map === nativeMap) {\n        return arr.map(cb, context);\n    }\n    else {\n        var result = [];\n        for (var i = 0, len = arr.length; i < len; i++) {\n            result.push(cb.call(context, arr[i], i, arr));\n        }\n        return result;\n    }\n}\nexport function reduce(arr, cb, memo, context) {\n    if (!(arr && cb)) {\n        return;\n    }\n    for (var i = 0, len = arr.length; i < len; i++) {\n        memo = cb.call(context, memo, arr[i], i, arr);\n    }\n    return memo;\n}\nexport function filter(arr, cb, context) {\n    if (!arr) {\n        return [];\n    }\n    if (!cb) {\n        return slice(arr);\n    }\n    if (arr.filter && arr.filter === nativeFilter) {\n        return arr.filter(cb, context);\n    }\n    else {\n        var result = [];\n        for (var i = 0, len = arr.length; i < len; i++) {\n            if (cb.call(context, arr[i], i, arr)) {\n                result.push(arr[i]);\n            }\n        }\n        return result;\n    }\n}\nexport function find(arr, cb, context) {\n    if (!(arr && cb)) {\n        return;\n    }\n    for (var i = 0, len = arr.length; i < len; i++) {\n        if (cb.call(context, arr[i], i, arr)) {\n            return arr[i];\n        }\n    }\n}\nexport function keys(obj) {\n    if (!obj) {\n        return [];\n    }\n    if (Object.keys) {\n        return Object.keys(obj);\n    }\n    var keyList = [];\n    for (var key in obj) {\n        if (obj.hasOwnProperty(key)) {\n            keyList.push(key);\n        }\n    }\n    return keyList;\n}\nfunction bindPolyfill(func, context) {\n    var args = [];\n    for (var _i = 2; _i < arguments.length; _i++) {\n        args[_i - 2] = arguments[_i];\n    }\n    return function () {\n        return func.apply(context, args.concat(nativeSlice.call(arguments)));\n    };\n}\nexport var bind = (protoFunction && isFunction(protoFunction.bind))\n    ? protoFunction.call.bind(protoFunction.bind)\n    : bindPolyfill;\nfunction curry(func) {\n    var args = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        args[_i - 1] = arguments[_i];\n    }\n    return function () {\n        return func.apply(this, args.concat(nativeSlice.call(arguments)));\n    };\n}\nexport { curry };\nexport function isArray(value) {\n    if (Array.isArray) {\n        return Array.isArray(value);\n    }\n    return objToString.call(value) === '[object Array]';\n}\nexport function isFunction(value) {\n    return typeof value === 'function';\n}\nexport function isString(value) {\n    return typeof value === 'string';\n}\nexport function isStringSafe(value) {\n    return objToString.call(value) === '[object String]';\n}\nexport function isNumber(value) {\n    return typeof value === 'number';\n}\nexport function isObject(value) {\n    var type = typeof value;\n    return type === 'function' || (!!value && type === 'object');\n}\nexport function isBuiltInObject(value) {\n    return !!BUILTIN_OBJECT[objToString.call(value)];\n}\nexport function isTypedArray(value) {\n    return !!TYPED_ARRAY[objToString.call(value)];\n}\nexport function isDom(value) {\n    return typeof value === 'object'\n        && typeof value.nodeType === 'number'\n        && typeof value.ownerDocument === 'object';\n}\nexport function isGradientObject(value) {\n    return value.colorStops != null;\n}\nexport function isPatternObject(value) {\n    return value.image != null;\n}\nexport function isRegExp(value) {\n    return objToString.call(value) === '[object RegExp]';\n}\nexport function eqNaN(value) {\n    return value !== value;\n}\nexport function retrieve() {\n    var args = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n    }\n    for (var i = 0, len = args.length; i < len; i++) {\n        if (args[i] != null) {\n            return args[i];\n        }\n    }\n}\nexport function retrieve2(value0, value1) {\n    return value0 != null\n        ? value0\n        : value1;\n}\nexport function retrieve3(value0, value1, value2) {\n    return value0 != null\n        ? value0\n        : value1 != null\n            ? value1\n            : value2;\n}\nexport function slice(arr) {\n    var args = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        args[_i - 1] = arguments[_i];\n    }\n    return nativeSlice.apply(arr, args);\n}\nexport function normalizeCssArray(val) {\n    if (typeof (val) === 'number') {\n        return [val, val, val, val];\n    }\n    var len = val.length;\n    if (len === 2) {\n        return [val[0], val[1], val[0], val[1]];\n    }\n    else if (len === 3) {\n        return [val[0], val[1], val[2], val[1]];\n    }\n    return val;\n}\nexport function assert(condition, message) {\n    if (!condition) {\n        throw new Error(message);\n    }\n}\nexport function trim(str) {\n    if (str == null) {\n        return null;\n    }\n    else if (typeof str.trim === 'function') {\n        return str.trim();\n    }\n    else {\n        return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n    }\n}\nvar primitiveKey = '__ec_primitive__';\nexport function setAsPrimitive(obj) {\n    obj[primitiveKey] = true;\n}\nexport function isPrimitive(obj) {\n    return obj[primitiveKey];\n}\nvar HashMap = (function () {\n    function HashMap(obj) {\n        this.data = {};\n        var isArr = isArray(obj);\n        this.data = {};\n        var thisMap = this;\n        (obj instanceof HashMap)\n            ? obj.each(visit)\n            : (obj && each(obj, visit));\n        function visit(value, key) {\n            isArr ? thisMap.set(value, key) : thisMap.set(key, value);\n        }\n    }\n    HashMap.prototype.get = function (key) {\n        return this.data.hasOwnProperty(key) ? this.data[key] : null;\n    };\n    HashMap.prototype.set = function (key, value) {\n        return (this.data[key] = value);\n    };\n    HashMap.prototype.each = function (cb, context) {\n        for (var key in this.data) {\n            if (this.data.hasOwnProperty(key)) {\n                cb.call(context, this.data[key], key);\n            }\n        }\n    };\n    HashMap.prototype.keys = function () {\n        return keys(this.data);\n    };\n    HashMap.prototype.removeKey = function (key) {\n        delete this.data[key];\n    };\n    return HashMap;\n}());\nexport { HashMap };\nexport function createHashMap(obj) {\n    return new HashMap(obj);\n}\nexport function concatArray(a, b) {\n    var newArray = new a.constructor(a.length + b.length);\n    for (var i = 0; i < a.length; i++) {\n        newArray[i] = a[i];\n    }\n    var offset = a.length;\n    for (var i = 0; i < b.length; i++) {\n        newArray[i + offset] = b[i];\n    }\n    return newArray;\n}\nexport function createObject(proto, properties) {\n    var obj;\n    if (Object.create) {\n        obj = Object.create(proto);\n    }\n    else {\n        var StyleCtor = function () { };\n        StyleCtor.prototype = proto;\n        obj = new StyleCtor();\n    }\n    if (properties) {\n        extend(obj, properties);\n    }\n    return obj;\n}\nexport function hasOwn(own, prop) {\n    return own.hasOwnProperty(prop);\n}\nexport function noop() { }\n","export function create(x, y) {\n    if (x == null) {\n        x = 0;\n    }\n    if (y == null) {\n        y = 0;\n    }\n    return [x, y];\n}\nexport function copy(out, v) {\n    out[0] = v[0];\n    out[1] = v[1];\n    return out;\n}\nexport function clone(v) {\n    return [v[0], v[1]];\n}\nexport function set(out, a, b) {\n    out[0] = a;\n    out[1] = b;\n    return out;\n}\nexport function add(out, v1, v2) {\n    out[0] = v1[0] + v2[0];\n    out[1] = v1[1] + v2[1];\n    return out;\n}\nexport function scaleAndAdd(out, v1, v2, a) {\n    out[0] = v1[0] + v2[0] * a;\n    out[1] = v1[1] + v2[1] * a;\n    return out;\n}\nexport function sub(out, v1, v2) {\n    out[0] = v1[0] - v2[0];\n    out[1] = v1[1] - v2[1];\n    return out;\n}\nexport function len(v) {\n    return Math.sqrt(lenSquare(v));\n}\nexport var length = len;\nexport function lenSquare(v) {\n    return v[0] * v[0] + v[1] * v[1];\n}\nexport var lengthSquare = lenSquare;\nexport function mul(out, v1, v2) {\n    out[0] = v1[0] * v2[0];\n    out[1] = v1[1] * v2[1];\n    return out;\n}\nexport function div(out, v1, v2) {\n    out[0] = v1[0] / v2[0];\n    out[1] = v1[1] / v2[1];\n    return out;\n}\nexport function dot(v1, v2) {\n    return v1[0] * v2[0] + v1[1] * v2[1];\n}\nexport function scale(out, v, s) {\n    out[0] = v[0] * s;\n    out[1] = v[1] * s;\n    return out;\n}\nexport function normalize(out, v) {\n    var d = len(v);\n    if (d === 0) {\n        out[0] = 0;\n        out[1] = 0;\n    }\n    else {\n        out[0] = v[0] / d;\n        out[1] = v[1] / d;\n    }\n    return out;\n}\nexport function distance(v1, v2) {\n    return Math.sqrt((v1[0] - v2[0]) * (v1[0] - v2[0])\n        + (v1[1] - v2[1]) * (v1[1] - v2[1]));\n}\nexport var dist = distance;\nexport function distanceSquare(v1, v2) {\n    return (v1[0] - v2[0]) * (v1[0] - v2[0])\n        + (v1[1] - v2[1]) * (v1[1] - v2[1]);\n}\nexport var distSquare = distanceSquare;\nexport function negate(out, v) {\n    out[0] = -v[0];\n    out[1] = -v[1];\n    return out;\n}\nexport function lerp(out, v1, v2, t) {\n    out[0] = v1[0] + t * (v2[0] - v1[0]);\n    out[1] = v1[1] + t * (v2[1] - v1[1]);\n    return out;\n}\nexport function applyTransform(out, v, m) {\n    var x = v[0];\n    var y = v[1];\n    out[0] = m[0] * x + m[2] * y + m[4];\n    out[1] = m[1] * x + m[3] * y + m[5];\n    return out;\n}\nexport function min(out, v1, v2) {\n    out[0] = Math.min(v1[0], v2[0]);\n    out[1] = Math.min(v1[1], v2[1]);\n    return out;\n}\nexport function max(out, v1, v2) {\n    out[0] = Math.max(v1[0], v2[0]);\n    out[1] = Math.max(v1[1], v2[1]);\n    return out;\n}\n","var Param = (function () {\n    function Param(target, e) {\n        this.target = target;\n        this.topTarget = e && e.topTarget;\n    }\n    return Param;\n}());\nvar Draggable = (function () {\n    function Draggable(handler) {\n        this.handler = handler;\n        handler.on('mousedown', this._dragStart, this);\n        handler.on('mousemove', this._drag, this);\n        handler.on('mouseup', this._dragEnd, this);\n    }\n    Draggable.prototype._dragStart = function (e) {\n        var draggingTarget = e.target;\n        while (draggingTarget && !draggingTarget.draggable) {\n            draggingTarget = draggingTarget.parent;\n        }\n        if (draggingTarget) {\n            this._draggingTarget = draggingTarget;\n            draggingTarget.dragging = true;\n            this._x = e.offsetX;\n            this._y = e.offsetY;\n            this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragstart', e.event);\n        }\n    };\n    Draggable.prototype._drag = function (e) {\n        var draggingTarget = this._draggingTarget;\n        if (draggingTarget) {\n            var x = e.offsetX;\n            var y = e.offsetY;\n            var dx = x - this._x;\n            var dy = y - this._y;\n            this._x = x;\n            this._y = y;\n            draggingTarget.drift(dx, dy, e);\n            this.handler.dispatchToElement(new Param(draggingTarget, e), 'drag', e.event);\n            var dropTarget = this.handler.findHover(x, y, draggingTarget).target;\n            var lastDropTarget = this._dropTarget;\n            this._dropTarget = dropTarget;\n            if (draggingTarget !== dropTarget) {\n                if (lastDropTarget && dropTarget !== lastDropTarget) {\n                    this.handler.dispatchToElement(new Param(lastDropTarget, e), 'dragleave', e.event);\n                }\n                if (dropTarget && dropTarget !== lastDropTarget) {\n                    this.handler.dispatchToElement(new Param(dropTarget, e), 'dragenter', e.event);\n                }\n            }\n        }\n    };\n    Draggable.prototype._dragEnd = function (e) {\n        var draggingTarget = this._draggingTarget;\n        if (draggingTarget) {\n            draggingTarget.dragging = false;\n        }\n        this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragend', e.event);\n        if (this._dropTarget) {\n            this.handler.dispatchToElement(new Param(this._dropTarget, e), 'drop', e.event);\n        }\n        this._draggingTarget = null;\n        this._dropTarget = null;\n    };\n    return Draggable;\n}());\nexport default Draggable;\n","var Eventful = (function () {\n    function Eventful(eventProcessors) {\n        if (eventProcessors) {\n            this._$eventProcessor = eventProcessors;\n        }\n    }\n    Eventful.prototype.on = function (event, query, handler, context) {\n        if (!this._$handlers) {\n            this._$handlers = {};\n        }\n        var _h = this._$handlers;\n        if (typeof query === 'function') {\n            context = handler;\n            handler = query;\n            query = null;\n        }\n        if (!handler || !event) {\n            return this;\n        }\n        var eventProcessor = this._$eventProcessor;\n        if (query != null && eventProcessor && eventProcessor.normalizeQuery) {\n            query = eventProcessor.normalizeQuery(query);\n        }\n        if (!_h[event]) {\n            _h[event] = [];\n        }\n        for (var i = 0; i < _h[event].length; i++) {\n            if (_h[event][i].h === handler) {\n                return this;\n            }\n        }\n        var wrap = {\n            h: handler,\n            query: query,\n            ctx: (context || this),\n            callAtLast: handler.zrEventfulCallAtLast\n        };\n        var lastIndex = _h[event].length - 1;\n        var lastWrap = _h[event][lastIndex];\n        (lastWrap && lastWrap.callAtLast)\n            ? _h[event].splice(lastIndex, 0, wrap)\n            : _h[event].push(wrap);\n        return this;\n    };\n    Eventful.prototype.isSilent = function (eventName) {\n        var _h = this._$handlers;\n        return !_h || !_h[eventName] || !_h[eventName].length;\n    };\n    Eventful.prototype.off = function (eventType, handler) {\n        var _h = this._$handlers;\n        if (!_h) {\n            return this;\n        }\n        if (!eventType) {\n            this._$handlers = {};\n            return this;\n        }\n        if (handler) {\n            if (_h[eventType]) {\n                var newList = [];\n                for (var i = 0, l = _h[eventType].length; i < l; i++) {\n                    if (_h[eventType][i].h !== handler) {\n                        newList.push(_h[eventType][i]);\n                    }\n                }\n                _h[eventType] = newList;\n            }\n            if (_h[eventType] && _h[eventType].length === 0) {\n                delete _h[eventType];\n            }\n        }\n        else {\n            delete _h[eventType];\n        }\n        return this;\n    };\n    Eventful.prototype.trigger = function (eventType) {\n        var args = [];\n        for (var _i = 1; _i < arguments.length; _i++) {\n            args[_i - 1] = arguments[_i];\n        }\n        if (!this._$handlers) {\n            return this;\n        }\n        var _h = this._$handlers[eventType];\n        var eventProcessor = this._$eventProcessor;\n        if (_h) {\n            var argLen = args.length;\n            var len = _h.length;\n            for (var i = 0; i < len; i++) {\n                var hItem = _h[i];\n                if (eventProcessor\n                    && eventProcessor.filter\n                    && hItem.query != null\n                    && !eventProcessor.filter(eventType, hItem.query)) {\n                    continue;\n                }\n                switch (argLen) {\n                    case 0:\n                        hItem.h.call(hItem.ctx);\n                        break;\n                    case 1:\n                        hItem.h.call(hItem.ctx, args[0]);\n                        break;\n                    case 2:\n                        hItem.h.call(hItem.ctx, args[0], args[1]);\n                        break;\n                    default:\n                        hItem.h.apply(hItem.ctx, args);\n                        break;\n                }\n            }\n        }\n        eventProcessor && eventProcessor.afterTrigger\n            && eventProcessor.afterTrigger(eventType);\n        return this;\n    };\n    Eventful.prototype.triggerWithContext = function (type) {\n        if (!this._$handlers) {\n            return this;\n        }\n        var _h = this._$handlers[type];\n        var eventProcessor = this._$eventProcessor;\n        if (_h) {\n            var args = arguments;\n            var argLen = args.length;\n            var ctx = args[argLen - 1];\n            var len = _h.length;\n            for (var i = 0; i < len; i++) {\n                var hItem = _h[i];\n                if (eventProcessor\n                    && eventProcessor.filter\n                    && hItem.query != null\n                    && !eventProcessor.filter(type, hItem.query)) {\n                    continue;\n                }\n                switch (argLen) {\n                    case 0:\n                        hItem.h.call(ctx);\n                        break;\n                    case 1:\n                        hItem.h.call(ctx, args[0]);\n                        break;\n                    case 2:\n                        hItem.h.call(ctx, args[0], args[1]);\n                        break;\n                    default:\n                        hItem.h.apply(ctx, args.slice(1, argLen - 1));\n                        break;\n                }\n            }\n        }\n        eventProcessor && eventProcessor.afterTrigger\n            && eventProcessor.afterTrigger(type);\n        return this;\n    };\n    return Eventful;\n}());\nexport default Eventful;\n","var LN2 = Math.log(2);\nfunction determinant(rows, rank, rowStart, rowMask, colMask, detCache) {\n    var cacheKey = rowMask + '-' + colMask;\n    var fullRank = rows.length;\n    if (detCache.hasOwnProperty(cacheKey)) {\n        return detCache[cacheKey];\n    }\n    if (rank === 1) {\n        var colStart = Math.round(Math.log(((1 << fullRank) - 1) & ~colMask) / LN2);\n        return rows[rowStart][colStart];\n    }\n    var subRowMask = rowMask | (1 << rowStart);\n    var subRowStart = rowStart + 1;\n    while (rowMask & (1 << subRowStart)) {\n        subRowStart++;\n    }\n    var sum = 0;\n    for (var j = 0, colLocalIdx = 0; j < fullRank; j++) {\n        var colTag = 1 << j;\n        if (!(colTag & colMask)) {\n            sum += (colLocalIdx % 2 ? -1 : 1) * rows[rowStart][j]\n                * determinant(rows, rank - 1, subRowStart, subRowMask, colMask | colTag, detCache);\n            colLocalIdx++;\n        }\n    }\n    detCache[cacheKey] = sum;\n    return sum;\n}\nexport function buildTransformer(src, dest) {\n    var mA = [\n        [src[0], src[1], 1, 0, 0, 0, -dest[0] * src[0], -dest[0] * src[1]],\n        [0, 0, 0, src[0], src[1], 1, -dest[1] * src[0], -dest[1] * src[1]],\n        [src[2], src[3], 1, 0, 0, 0, -dest[2] * src[2], -dest[2] * src[3]],\n        [0, 0, 0, src[2], src[3], 1, -dest[3] * src[2], -dest[3] * src[3]],\n        [src[4], src[5], 1, 0, 0, 0, -dest[4] * src[4], -dest[4] * src[5]],\n        [0, 0, 0, src[4], src[5], 1, -dest[5] * src[4], -dest[5] * src[5]],\n        [src[6], src[7], 1, 0, 0, 0, -dest[6] * src[6], -dest[6] * src[7]],\n        [0, 0, 0, src[6], src[7], 1, -dest[7] * src[6], -dest[7] * src[7]]\n    ];\n    var detCache = {};\n    var det = determinant(mA, 8, 0, 0, 0, detCache);\n    if (det === 0) {\n        return;\n    }\n    var vh = [];\n    for (var i = 0; i < 8; i++) {\n        for (var j = 0; j < 8; j++) {\n            vh[j] == null && (vh[j] = 0);\n            vh[j] += ((i + j) % 2 ? -1 : 1)\n                * determinant(mA, 7, i === 0 ? 1 : 0, 1 << i, 1 << j, detCache)\n                / det * dest[i];\n        }\n    }\n    return function (out, srcPointX, srcPointY) {\n        var pk = srcPointX * vh[6] + srcPointY * vh[7] + 1;\n        out[0] = (srcPointX * vh[0] + srcPointY * vh[1] + vh[2]) / pk;\n        out[1] = (srcPointX * vh[3] + srcPointY * vh[4] + vh[5]) / pk;\n    };\n}\n","import env from './env';\nimport { buildTransformer } from './fourPointsTransform';\nvar EVENT_SAVED_PROP = '___zrEVENTSAVED';\nvar _calcOut = [];\nexport function transformLocalCoord(out, elFrom, elTarget, inX, inY) {\n    return transformCoordWithViewport(_calcOut, elFrom, inX, inY, true)\n        && transformCoordWithViewport(out, elTarget, _calcOut[0], _calcOut[1]);\n}\nexport function transformCoordWithViewport(out, el, inX, inY, inverse) {\n    if (el.getBoundingClientRect && env.domSupported && !isCanvasEl(el)) {\n        var saved = el[EVENT_SAVED_PROP] || (el[EVENT_SAVED_PROP] = {});\n        var markers = prepareCoordMarkers(el, saved);\n        var transformer = preparePointerTransformer(markers, saved, inverse);\n        if (transformer) {\n            transformer(out, inX, inY);\n            return true;\n        }\n    }\n    return false;\n}\nfunction prepareCoordMarkers(el, saved) {\n    var markers = saved.markers;\n    if (markers) {\n        return markers;\n    }\n    markers = saved.markers = [];\n    var propLR = ['left', 'right'];\n    var propTB = ['top', 'bottom'];\n    for (var i = 0; i < 4; i++) {\n        var marker = document.createElement('div');\n        var stl = marker.style;\n        var idxLR = i % 2;\n        var idxTB = (i >> 1) % 2;\n        stl.cssText = [\n            'position: absolute',\n            'visibility: hidden',\n            'padding: 0',\n            'margin: 0',\n            'border-width: 0',\n            'user-select: none',\n            'width:0',\n            'height:0',\n            propLR[idxLR] + ':0',\n            propTB[idxTB] + ':0',\n            propLR[1 - idxLR] + ':auto',\n            propTB[1 - idxTB] + ':auto',\n            ''\n        ].join('!important;');\n        el.appendChild(marker);\n        markers.push(marker);\n    }\n    return markers;\n}\nfunction preparePointerTransformer(markers, saved, inverse) {\n    var transformerName = inverse ? 'invTrans' : 'trans';\n    var transformer = saved[transformerName];\n    var oldSrcCoords = saved.srcCoords;\n    var srcCoords = [];\n    var destCoords = [];\n    var oldCoordTheSame = true;\n    for (var i = 0; i < 4; i++) {\n        var rect = markers[i].getBoundingClientRect();\n        var ii = 2 * i;\n        var x = rect.left;\n        var y = rect.top;\n        srcCoords.push(x, y);\n        oldCoordTheSame = oldCoordTheSame && oldSrcCoords && x === oldSrcCoords[ii] && y === oldSrcCoords[ii + 1];\n        destCoords.push(markers[i].offsetLeft, markers[i].offsetTop);\n    }\n    return (oldCoordTheSame && transformer)\n        ? transformer\n        : (saved.srcCoords = srcCoords,\n            saved[transformerName] = inverse\n                ? buildTransformer(destCoords, srcCoords)\n                : buildTransformer(srcCoords, destCoords));\n}\nexport function isCanvasEl(el) {\n    return el.nodeName.toUpperCase() === 'CANVAS';\n}\n","import Eventful from './Eventful';\nimport env from './env';\nimport { isCanvasEl, transformCoordWithViewport } from './dom';\nvar isDomLevel2 = (typeof window !== 'undefined') && !!window.addEventListener;\nvar MOUSE_EVENT_REG = /^(?:mouse|pointer|contextmenu|drag|drop)|click/;\nvar _calcOut = [];\nexport function clientToLocal(el, e, out, calculate) {\n    out = out || {};\n    if (calculate || !env.canvasSupported) {\n        calculateZrXY(el, e, out);\n    }\n    else if (env.browser.firefox\n        && e.layerX != null\n        && e.layerX !== e.offsetX) {\n        out.zrX = e.layerX;\n        out.zrY = e.layerY;\n    }\n    else if (e.offsetX != null) {\n        out.zrX = e.offsetX;\n        out.zrY = e.offsetY;\n    }\n    else {\n        calculateZrXY(el, e, out);\n    }\n    return out;\n}\nfunction calculateZrXY(el, e, out) {\n    if (env.domSupported && el.getBoundingClientRect) {\n        var ex = e.clientX;\n        var ey = e.clientY;\n        if (isCanvasEl(el)) {\n            var box = el.getBoundingClientRect();\n            out.zrX = ex - box.left;\n            out.zrY = ey - box.top;\n            return;\n        }\n        else {\n            if (transformCoordWithViewport(_calcOut, el, ex, ey)) {\n                out.zrX = _calcOut[0];\n                out.zrY = _calcOut[1];\n                return;\n            }\n        }\n    }\n    out.zrX = out.zrY = 0;\n}\nexport function getNativeEvent(e) {\n    return e\n        || window.event;\n}\nexport function normalizeEvent(el, e, calculate) {\n    e = getNativeEvent(e);\n    if (e.zrX != null) {\n        return e;\n    }\n    var eventType = e.type;\n    var isTouch = eventType && eventType.indexOf('touch') >= 0;\n    if (!isTouch) {\n        clientToLocal(el, e, e, calculate);\n        var wheelDelta = getWheelDeltaMayPolyfill(e);\n        e.zrDelta = wheelDelta ? wheelDelta / 120 : -(e.detail || 0) / 3;\n    }\n    else {\n        var touch = eventType !== 'touchend'\n            ? e.targetTouches[0]\n            : e.changedTouches[0];\n        touch && clientToLocal(el, touch, e, calculate);\n    }\n    var button = e.button;\n    if (e.which == null && button !== undefined && MOUSE_EVENT_REG.test(e.type)) {\n        e.which = (button & 1 ? 1 : (button & 2 ? 3 : (button & 4 ? 2 : 0)));\n    }\n    return e;\n}\nfunction getWheelDeltaMayPolyfill(e) {\n    var rawWheelDelta = e.wheelDelta;\n    if (rawWheelDelta) {\n        return rawWheelDelta;\n    }\n    var deltaX = e.deltaX;\n    var deltaY = e.deltaY;\n    if (deltaX == null || deltaY == null) {\n        return rawWheelDelta;\n    }\n    var delta = deltaY !== 0 ? Math.abs(deltaY) : Math.abs(deltaX);\n    var sign = deltaY > 0 ? -1\n        : deltaY < 0 ? 1\n            : deltaX > 0 ? -1\n                : 1;\n    return 3 * delta * sign;\n}\nexport function addEventListener(el, name, handler, opt) {\n    if (isDomLevel2) {\n        el.addEventListener(name, handler, opt);\n    }\n    else {\n        el.attachEvent('on' + name, handler);\n    }\n}\nexport function removeEventListener(el, name, handler, opt) {\n    if (isDomLevel2) {\n        el.removeEventListener(name, handler, opt);\n    }\n    else {\n        el.detachEvent('on' + name, handler);\n    }\n}\nexport var stop = isDomLevel2\n    ? function (e) {\n        e.preventDefault();\n        e.stopPropagation();\n        e.cancelBubble = true;\n    }\n    : function (e) {\n        e.returnValue = false;\n        e.cancelBubble = true;\n    };\nexport function isMiddleOrRightButtonOnMouseUpDown(e) {\n    return e.which === 2 || e.which === 3;\n}\nexport function notLeftMouse(e) {\n    return e.which > 1;\n}\nexport { Eventful as Dispatcher };\n","import * as eventUtil from './event';\nvar GestureMgr = (function () {\n    function GestureMgr() {\n        this._track = [];\n    }\n    GestureMgr.prototype.recognize = function (event, target, root) {\n        this._doTrack(event, target, root);\n        return this._recognize(event);\n    };\n    GestureMgr.prototype.clear = function () {\n        this._track.length = 0;\n        return this;\n    };\n    GestureMgr.prototype._doTrack = function (event, target, root) {\n        var touches = event.touches;\n        if (!touches) {\n            return;\n        }\n        var trackItem = {\n            points: [],\n            touches: [],\n            target: target,\n            event: event\n        };\n        for (var i = 0, len = touches.length; i < len; i++) {\n            var touch = touches[i];\n            var pos = eventUtil.clientToLocal(root, touch, {});\n            trackItem.points.push([pos.zrX, pos.zrY]);\n            trackItem.touches.push(touch);\n        }\n        this._track.push(trackItem);\n    };\n    GestureMgr.prototype._recognize = function (event) {\n        for (var eventName in recognizers) {\n            if (recognizers.hasOwnProperty(eventName)) {\n                var gestureInfo = recognizers[eventName](this._track, event);\n                if (gestureInfo) {\n                    return gestureInfo;\n                }\n            }\n        }\n    };\n    return GestureMgr;\n}());\nexport { GestureMgr };\nfunction dist(pointPair) {\n    var dx = pointPair[1][0] - pointPair[0][0];\n    var dy = pointPair[1][1] - pointPair[0][1];\n    return Math.sqrt(dx * dx + dy * dy);\n}\nfunction center(pointPair) {\n    return [\n        (pointPair[0][0] + pointPair[1][0]) / 2,\n        (pointPair[0][1] + pointPair[1][1]) / 2\n    ];\n}\nvar recognizers = {\n    pinch: function (tracks, event) {\n        var trackLen = tracks.length;\n        if (!trackLen) {\n            return;\n        }\n        var pinchEnd = (tracks[trackLen - 1] || {}).points;\n        var pinchPre = (tracks[trackLen - 2] || {}).points || pinchEnd;\n        if (pinchPre\n            && pinchPre.length > 1\n            && pinchEnd\n            && pinchEnd.length > 1) {\n            var pinchScale = dist(pinchEnd) / dist(pinchPre);\n            !isFinite(pinchScale) && (pinchScale = 1);\n            event.pinchScale = pinchScale;\n            var pinchCenter = center(pinchEnd);\n            event.pinchX = pinchCenter[0];\n            event.pinchY = pinchCenter[1];\n            return {\n                type: 'pinch',\n                target: tracks[0].target,\n                event: event\n            };\n        }\n    }\n};\n","import { __extends } from \"tslib\";\nimport * as util from './core/util';\nimport * as vec2 from './core/vector';\nimport Draggable from './mixin/Draggable';\nimport Eventful from './core/Eventful';\nimport * as eventTool from './core/event';\nimport { GestureMgr } from './core/GestureMgr';\nvar SILENT = 'silent';\nfunction makeEventPacket(eveType, targetInfo, event) {\n    return {\n        type: eveType,\n        event: event,\n        target: targetInfo.target,\n        topTarget: targetInfo.topTarget,\n        cancelBubble: false,\n        offsetX: event.zrX,\n        offsetY: event.zrY,\n        gestureEvent: event.gestureEvent,\n        pinchX: event.pinchX,\n        pinchY: event.pinchY,\n        pinchScale: event.pinchScale,\n        wheelDelta: event.zrDelta,\n        zrByTouch: event.zrByTouch,\n        which: event.which,\n        stop: stopEvent\n    };\n}\nfunction stopEvent() {\n    eventTool.stop(this.event);\n}\nvar EmptyProxy = (function (_super) {\n    __extends(EmptyProxy, _super);\n    function EmptyProxy() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.handler = null;\n        return _this;\n    }\n    EmptyProxy.prototype.dispose = function () { };\n    EmptyProxy.prototype.setCursor = function () { };\n    return EmptyProxy;\n}(Eventful));\nvar HoveredResult = (function () {\n    function HoveredResult(x, y) {\n        this.x = x;\n        this.y = y;\n    }\n    return HoveredResult;\n}());\nvar handlerNames = [\n    'click', 'dblclick', 'mousewheel', 'mouseout',\n    'mouseup', 'mousedown', 'mousemove', 'contextmenu'\n];\nvar Handler = (function (_super) {\n    __extends(Handler, _super);\n    function Handler(storage, painter, proxy, painterRoot) {\n        var _this = _super.call(this) || this;\n        _this._hovered = new HoveredResult(0, 0);\n        _this.storage = storage;\n        _this.painter = painter;\n        _this.painterRoot = painterRoot;\n        proxy = proxy || new EmptyProxy();\n        _this.proxy = null;\n        _this.setHandlerProxy(proxy);\n        _this._draggingMgr = new Draggable(_this);\n        return _this;\n    }\n    Handler.prototype.setHandlerProxy = function (proxy) {\n        if (this.proxy) {\n            this.proxy.dispose();\n        }\n        if (proxy) {\n            util.each(handlerNames, function (name) {\n                proxy.on && proxy.on(name, this[name], this);\n            }, this);\n            proxy.handler = this;\n        }\n        this.proxy = proxy;\n    };\n    Handler.prototype.mousemove = function (event) {\n        var x = event.zrX;\n        var y = event.zrY;\n        var isOutside = isOutsideBoundary(this, x, y);\n        var lastHovered = this._hovered;\n        var lastHoveredTarget = lastHovered.target;\n        if (lastHoveredTarget && !lastHoveredTarget.__zr) {\n            lastHovered = this.findHover(lastHovered.x, lastHovered.y);\n            lastHoveredTarget = lastHovered.target;\n        }\n        var hovered = this._hovered = isOutside ? new HoveredResult(x, y) : this.findHover(x, y);\n        var hoveredTarget = hovered.target;\n        var proxy = this.proxy;\n        proxy.setCursor && proxy.setCursor(hoveredTarget ? hoveredTarget.cursor : 'default');\n        if (lastHoveredTarget && hoveredTarget !== lastHoveredTarget) {\n            this.dispatchToElement(lastHovered, 'mouseout', event);\n        }\n        this.dispatchToElement(hovered, 'mousemove', event);\n        if (hoveredTarget && hoveredTarget !== lastHoveredTarget) {\n            this.dispatchToElement(hovered, 'mouseover', event);\n        }\n    };\n    Handler.prototype.mouseout = function (event) {\n        var eventControl = event.zrEventControl;\n        if (eventControl !== 'only_globalout') {\n            this.dispatchToElement(this._hovered, 'mouseout', event);\n        }\n        if (eventControl !== 'no_globalout') {\n            this.trigger('globalout', { type: 'globalout', event: event });\n        }\n    };\n    Handler.prototype.resize = function () {\n        this._hovered = new HoveredResult(0, 0);\n    };\n    Handler.prototype.dispatch = function (eventName, eventArgs) {\n        var handler = this[eventName];\n        handler && handler.call(this, eventArgs);\n    };\n    Handler.prototype.dispose = function () {\n        this.proxy.dispose();\n        this.storage = null;\n        this.proxy = null;\n        this.painter = null;\n    };\n    Handler.prototype.setCursorStyle = function (cursorStyle) {\n        var proxy = this.proxy;\n        proxy.setCursor && proxy.setCursor(cursorStyle);\n    };\n    Handler.prototype.dispatchToElement = function (targetInfo, eventName, event) {\n        targetInfo = targetInfo || {};\n        var el = targetInfo.target;\n        if (el && el.silent) {\n            return;\n        }\n        var eventKey = ('on' + eventName);\n        var eventPacket = makeEventPacket(eventName, targetInfo, event);\n        while (el) {\n            el[eventKey]\n                && (eventPacket.cancelBubble = !!el[eventKey].call(el, eventPacket));\n            el.trigger(eventName, eventPacket);\n            el = el.__hostTarget ? el.__hostTarget : el.parent;\n            if (eventPacket.cancelBubble) {\n                break;\n            }\n        }\n        if (!eventPacket.cancelBubble) {\n            this.trigger(eventName, eventPacket);\n            if (this.painter && this.painter.eachOtherLayer) {\n                this.painter.eachOtherLayer(function (layer) {\n                    if (typeof (layer[eventKey]) === 'function') {\n                        layer[eventKey].call(layer, eventPacket);\n                    }\n                    if (layer.trigger) {\n                        layer.trigger(eventName, eventPacket);\n                    }\n                });\n            }\n        }\n    };\n    Handler.prototype.findHover = function (x, y, exclude) {\n        var list = this.storage.getDisplayList();\n        var out = new HoveredResult(x, y);\n        for (var i = list.length - 1; i >= 0; i--) {\n            var hoverCheckResult = void 0;\n            if (list[i] !== exclude\n                && !list[i].ignore\n                && (hoverCheckResult = isHover(list[i], x, y))) {\n                !out.topTarget && (out.topTarget = list[i]);\n                if (hoverCheckResult !== SILENT) {\n                    out.target = list[i];\n                    break;\n                }\n            }\n        }\n        return out;\n    };\n    Handler.prototype.processGesture = function (event, stage) {\n        if (!this._gestureMgr) {\n            this._gestureMgr = new GestureMgr();\n        }\n        var gestureMgr = this._gestureMgr;\n        stage === 'start' && gestureMgr.clear();\n        var gestureInfo = gestureMgr.recognize(event, this.findHover(event.zrX, event.zrY, null).target, this.proxy.dom);\n        stage === 'end' && gestureMgr.clear();\n        if (gestureInfo) {\n            var type = gestureInfo.type;\n            event.gestureEvent = type;\n            var res = new HoveredResult();\n            res.target = gestureInfo.target;\n            this.dispatchToElement(res, type, gestureInfo.event);\n        }\n    };\n    return Handler;\n}(Eventful));\nutil.each(['click', 'mousedown', 'mouseup', 'mousewheel', 'dblclick', 'contextmenu'], function (name) {\n    Handler.prototype[name] = function (event) {\n        var x = event.zrX;\n        var y = event.zrY;\n        var isOutside = isOutsideBoundary(this, x, y);\n        var hovered;\n        var hoveredTarget;\n        if (name !== 'mouseup' || !isOutside) {\n            hovered = this.findHover(x, y);\n            hoveredTarget = hovered.target;\n        }\n        if (name === 'mousedown') {\n            this._downEl = hoveredTarget;\n            this._downPoint = [event.zrX, event.zrY];\n            this._upEl = hoveredTarget;\n        }\n        else if (name === 'mouseup') {\n            this._upEl = hoveredTarget;\n        }\n        else if (name === 'click') {\n            if (this._downEl !== this._upEl\n                || !this._downPoint\n                || vec2.dist(this._downPoint, [event.zrX, event.zrY]) > 4) {\n                return;\n            }\n            this._downPoint = null;\n        }\n        this.dispatchToElement(hovered, name, event);\n    };\n});\nfunction isHover(displayable, x, y) {\n    if (displayable[displayable.rectHover ? 'rectContain' : 'contain'](x, y)) {\n        var el = displayable;\n        var isSilent = void 0;\n        var ignoreClip = false;\n        while (el) {\n            if (el.ignoreClip) {\n                ignoreClip = true;\n            }\n            if (!ignoreClip) {\n                var clipPath = el.getClipPath();\n                if (clipPath && !clipPath.contain(x, y)) {\n                    return false;\n                }\n                if (el.silent) {\n                    isSilent = true;\n                }\n            }\n            var hostEl = el.__hostTarget;\n            el = hostEl ? hostEl : el.parent;\n        }\n        return isSilent ? SILENT : true;\n    }\n    return false;\n}\nfunction isOutsideBoundary(handlerInstance, x, y) {\n    var painter = handlerInstance.painter;\n    return x < 0 || x > painter.getWidth() || y < 0 || y > painter.getHeight();\n}\nexport default Handler;\n","export function create() {\n    return [1, 0, 0, 1, 0, 0];\n}\nexport function identity(out) {\n    out[0] = 1;\n    out[1] = 0;\n    out[2] = 0;\n    out[3] = 1;\n    out[4] = 0;\n    out[5] = 0;\n    return out;\n}\nexport function copy(out, m) {\n    out[0] = m[0];\n    out[1] = m[1];\n    out[2] = m[2];\n    out[3] = m[3];\n    out[4] = m[4];\n    out[5] = m[5];\n    return out;\n}\nexport function mul(out, m1, m2) {\n    var out0 = m1[0] * m2[0] + m1[2] * m2[1];\n    var out1 = m1[1] * m2[0] + m1[3] * m2[1];\n    var out2 = m1[0] * m2[2] + m1[2] * m2[3];\n    var out3 = m1[1] * m2[2] + m1[3] * m2[3];\n    var out4 = m1[0] * m2[4] + m1[2] * m2[5] + m1[4];\n    var out5 = m1[1] * m2[4] + m1[3] * m2[5] + m1[5];\n    out[0] = out0;\n    out[1] = out1;\n    out[2] = out2;\n    out[3] = out3;\n    out[4] = out4;\n    out[5] = out5;\n    return out;\n}\nexport function translate(out, a, v) {\n    out[0] = a[0];\n    out[1] = a[1];\n    out[2] = a[2];\n    out[3] = a[3];\n    out[4] = a[4] + v[0];\n    out[5] = a[5] + v[1];\n    return out;\n}\nexport function rotate(out, a, rad) {\n    var aa = a[0];\n    var ac = a[2];\n    var atx = a[4];\n    var ab = a[1];\n    var ad = a[3];\n    var aty = a[5];\n    var st = Math.sin(rad);\n    var ct = Math.cos(rad);\n    out[0] = aa * ct + ab * st;\n    out[1] = -aa * st + ab * ct;\n    out[2] = ac * ct + ad * st;\n    out[3] = -ac * st + ct * ad;\n    out[4] = ct * atx + st * aty;\n    out[5] = ct * aty - st * atx;\n    return out;\n}\nexport function scale(out, a, v) {\n    var vx = v[0];\n    var vy = v[1];\n    out[0] = a[0] * vx;\n    out[1] = a[1] * vy;\n    out[2] = a[2] * vx;\n    out[3] = a[3] * vy;\n    out[4] = a[4] * vx;\n    out[5] = a[5] * vy;\n    return out;\n}\nexport function invert(out, a) {\n    var aa = a[0];\n    var ac = a[2];\n    var atx = a[4];\n    var ab = a[1];\n    var ad = a[3];\n    var aty = a[5];\n    var det = aa * ad - ab * ac;\n    if (!det) {\n        return null;\n    }\n    det = 1.0 / det;\n    out[0] = ad * det;\n    out[1] = -ab * det;\n    out[2] = -ac * det;\n    out[3] = aa * det;\n    out[4] = (ac * aty - ad * atx) * det;\n    out[5] = (ab * atx - aa * aty) * det;\n    return out;\n}\nexport function clone(a) {\n    var b = create();\n    copy(b, a);\n    return b;\n}\n","import * as matrix from './matrix';\nimport * as vector from './vector';\nvar mIdentity = matrix.identity;\nvar EPSILON = 5e-5;\nfunction isNotAroundZero(val) {\n    return val > EPSILON || val < -EPSILON;\n}\nvar scaleTmp = [];\nvar tmpTransform = [];\nvar originTransform = matrix.create();\nvar abs = Math.abs;\nvar Transformable = (function () {\n    function Transformable() {\n    }\n    Transformable.prototype.setPosition = function (arr) {\n        this.x = arr[0];\n        this.y = arr[1];\n    };\n    Transformable.prototype.setScale = function (arr) {\n        this.scaleX = arr[0];\n        this.scaleY = arr[1];\n    };\n    Transformable.prototype.setOrigin = function (arr) {\n        this.originX = arr[0];\n        this.originY = arr[1];\n    };\n    Transformable.prototype.needLocalTransform = function () {\n        return isNotAroundZero(this.rotation)\n            || isNotAroundZero(this.x)\n            || isNotAroundZero(this.y)\n            || isNotAroundZero(this.scaleX - 1)\n            || isNotAroundZero(this.scaleY - 1);\n    };\n    Transformable.prototype.updateTransform = function () {\n        var parent = this.parent;\n        var parentHasTransform = parent && parent.transform;\n        var needLocalTransform = this.needLocalTransform();\n        var m = this.transform;\n        if (!(needLocalTransform || parentHasTransform)) {\n            m && mIdentity(m);\n            return;\n        }\n        m = m || matrix.create();\n        if (needLocalTransform) {\n            this.getLocalTransform(m);\n        }\n        else {\n            mIdentity(m);\n        }\n        if (parentHasTransform) {\n            if (needLocalTransform) {\n                matrix.mul(m, parent.transform, m);\n            }\n            else {\n                matrix.copy(m, parent.transform);\n            }\n        }\n        this.transform = m;\n        this._resolveGlobalScaleRatio(m);\n    };\n    Transformable.prototype._resolveGlobalScaleRatio = function (m) {\n        var globalScaleRatio = this.globalScaleRatio;\n        if (globalScaleRatio != null && globalScaleRatio !== 1) {\n            this.getGlobalScale(scaleTmp);\n            var relX = scaleTmp[0] < 0 ? -1 : 1;\n            var relY = scaleTmp[1] < 0 ? -1 : 1;\n            var sx = ((scaleTmp[0] - relX) * globalScaleRatio + relX) / scaleTmp[0] || 0;\n            var sy = ((scaleTmp[1] - relY) * globalScaleRatio + relY) / scaleTmp[1] || 0;\n            m[0] *= sx;\n            m[1] *= sx;\n            m[2] *= sy;\n            m[3] *= sy;\n        }\n        this.invTransform = this.invTransform || matrix.create();\n        matrix.invert(this.invTransform, m);\n    };\n    Transformable.prototype.getLocalTransform = function (m) {\n        return Transformable.getLocalTransform(this, m);\n    };\n    Transformable.prototype.getComputedTransform = function () {\n        var transformNode = this;\n        var ancestors = [];\n        while (transformNode) {\n            ancestors.push(transformNode);\n            transformNode = transformNode.parent;\n        }\n        while (transformNode = ancestors.pop()) {\n            transformNode.updateTransform();\n        }\n        return this.transform;\n    };\n    Transformable.prototype.setLocalTransform = function (m) {\n        if (!m) {\n            return;\n        }\n        var sx = m[0] * m[0] + m[1] * m[1];\n        var sy = m[2] * m[2] + m[3] * m[3];\n        if (isNotAroundZero(sx - 1)) {\n            sx = Math.sqrt(sx);\n        }\n        if (isNotAroundZero(sy - 1)) {\n            sy = Math.sqrt(sy);\n        }\n        if (m[0] < 0) {\n            sx = -sx;\n        }\n        if (m[3] < 0) {\n            sy = -sy;\n        }\n        this.rotation = Math.atan2(-m[1] / sy, m[0] / sx);\n        if (sx < 0 && sy < 0) {\n            this.rotation += Math.PI;\n            sx = -sx;\n            sy = -sy;\n        }\n        this.x = m[4];\n        this.y = m[5];\n        this.scaleX = sx;\n        this.scaleY = sy;\n    };\n    Transformable.prototype.decomposeTransform = function () {\n        if (!this.transform) {\n            return;\n        }\n        var parent = this.parent;\n        var m = this.transform;\n        if (parent && parent.transform) {\n            matrix.mul(tmpTransform, parent.invTransform, m);\n            m = tmpTransform;\n        }\n        var ox = this.originX;\n        var oy = this.originY;\n        if (ox || oy) {\n            originTransform[4] = ox;\n            originTransform[5] = oy;\n            matrix.mul(tmpTransform, m, originTransform);\n            tmpTransform[4] -= ox;\n            tmpTransform[5] -= oy;\n            m = tmpTransform;\n        }\n        this.setLocalTransform(m);\n    };\n    Transformable.prototype.getGlobalScale = function (out) {\n        var m = this.transform;\n        out = out || [];\n        if (!m) {\n            out[0] = 1;\n            out[1] = 1;\n            return out;\n        }\n        out[0] = Math.sqrt(m[0] * m[0] + m[1] * m[1]);\n        out[1] = Math.sqrt(m[2] * m[2] + m[3] * m[3]);\n        if (m[0] < 0) {\n            out[0] = -out[0];\n        }\n        if (m[3] < 0) {\n            out[1] = -out[1];\n        }\n        return out;\n    };\n    Transformable.prototype.transformCoordToLocal = function (x, y) {\n        var v2 = [x, y];\n        var invTransform = this.invTransform;\n        if (invTransform) {\n            vector.applyTransform(v2, v2, invTransform);\n        }\n        return v2;\n    };\n    Transformable.prototype.transformCoordToGlobal = function (x, y) {\n        var v2 = [x, y];\n        var transform = this.transform;\n        if (transform) {\n            vector.applyTransform(v2, v2, transform);\n        }\n        return v2;\n    };\n    Transformable.prototype.getLineScale = function () {\n        var m = this.transform;\n        return m && abs(m[0] - 1) > 1e-10 && abs(m[3] - 1) > 1e-10\n            ? Math.sqrt(abs(m[0] * m[3] - m[2] * m[1]))\n            : 1;\n    };\n    Transformable.getLocalTransform = function (target, m) {\n        m = m || [];\n        mIdentity(m);\n        var ox = target.originX || 0;\n        var oy = target.originY || 0;\n        var sx = target.scaleX;\n        var sy = target.scaleY;\n        var rotation = target.rotation || 0;\n        var x = target.x;\n        var y = target.y;\n        m[4] -= ox;\n        m[5] -= oy;\n        m[0] *= sx;\n        m[1] *= sy;\n        m[2] *= sx;\n        m[3] *= sy;\n        m[4] *= sx;\n        m[5] *= sy;\n        if (rotation) {\n            matrix.rotate(m, m, rotation);\n        }\n        m[4] += ox;\n        m[5] += oy;\n        m[4] += x;\n        m[5] += y;\n        return m;\n    };\n    Transformable.initDefaultProps = (function () {\n        var proto = Transformable.prototype;\n        proto.x = 0;\n        proto.y = 0;\n        proto.scaleX = 1;\n        proto.scaleY = 1;\n        proto.originX = 0;\n        proto.originY = 0;\n        proto.rotation = 0;\n        proto.globalScaleRatio = 1;\n    })();\n    return Transformable;\n}());\n;\nexport default Transformable;\n","var easing = {\n    linear: function (k) {\n        return k;\n    },\n    quadraticIn: function (k) {\n        return k * k;\n    },\n    quadraticOut: function (k) {\n        return k * (2 - k);\n    },\n    quadraticInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return 0.5 * k * k;\n        }\n        return -0.5 * (--k * (k - 2) - 1);\n    },\n    cubicIn: function (k) {\n        return k * k * k;\n    },\n    cubicOut: function (k) {\n        return --k * k * k + 1;\n    },\n    cubicInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return 0.5 * k * k * k;\n        }\n        return 0.5 * ((k -= 2) * k * k + 2);\n    },\n    quarticIn: function (k) {\n        return k * k * k * k;\n    },\n    quarticOut: function (k) {\n        return 1 - (--k * k * k * k);\n    },\n    quarticInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return 0.5 * k * k * k * k;\n        }\n        return -0.5 * ((k -= 2) * k * k * k - 2);\n    },\n    quinticIn: function (k) {\n        return k * k * k * k * k;\n    },\n    quinticOut: function (k) {\n        return --k * k * k * k * k + 1;\n    },\n    quinticInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return 0.5 * k * k * k * k * k;\n        }\n        return 0.5 * ((k -= 2) * k * k * k * k + 2);\n    },\n    sinusoidalIn: function (k) {\n        return 1 - Math.cos(k * Math.PI / 2);\n    },\n    sinusoidalOut: function (k) {\n        return Math.sin(k * Math.PI / 2);\n    },\n    sinusoidalInOut: function (k) {\n        return 0.5 * (1 - Math.cos(Math.PI * k));\n    },\n    exponentialIn: function (k) {\n        return k === 0 ? 0 : Math.pow(1024, k - 1);\n    },\n    exponentialOut: function (k) {\n        return k === 1 ? 1 : 1 - Math.pow(2, -10 * k);\n    },\n    exponentialInOut: function (k) {\n        if (k === 0) {\n            return 0;\n        }\n        if (k === 1) {\n            return 1;\n        }\n        if ((k *= 2) < 1) {\n            return 0.5 * Math.pow(1024, k - 1);\n        }\n        return 0.5 * (-Math.pow(2, -10 * (k - 1)) + 2);\n    },\n    circularIn: function (k) {\n        return 1 - Math.sqrt(1 - k * k);\n    },\n    circularOut: function (k) {\n        return Math.sqrt(1 - (--k * k));\n    },\n    circularInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return -0.5 * (Math.sqrt(1 - k * k) - 1);\n        }\n        return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1);\n    },\n    elasticIn: function (k) {\n        var s;\n        var a = 0.1;\n        var p = 0.4;\n        if (k === 0) {\n            return 0;\n        }\n        if (k === 1) {\n            return 1;\n        }\n        if (!a || a < 1) {\n            a = 1;\n            s = p / 4;\n        }\n        else {\n            s = p * Math.asin(1 / a) / (2 * Math.PI);\n        }\n        return -(a * Math.pow(2, 10 * (k -= 1))\n            * Math.sin((k - s) * (2 * Math.PI) / p));\n    },\n    elasticOut: function (k) {\n        var s;\n        var a = 0.1;\n        var p = 0.4;\n        if (k === 0) {\n            return 0;\n        }\n        if (k === 1) {\n            return 1;\n        }\n        if (!a || a < 1) {\n            a = 1;\n            s = p / 4;\n        }\n        else {\n            s = p * Math.asin(1 / a) / (2 * Math.PI);\n        }\n        return (a * Math.pow(2, -10 * k)\n            * Math.sin((k - s) * (2 * Math.PI) / p) + 1);\n    },\n    elasticInOut: function (k) {\n        var s;\n        var a = 0.1;\n        var p = 0.4;\n        if (k === 0) {\n            return 0;\n        }\n        if (k === 1) {\n            return 1;\n        }\n        if (!a || a < 1) {\n            a = 1;\n            s = p / 4;\n        }\n        else {\n            s = p * Math.asin(1 / a) / (2 * Math.PI);\n        }\n        if ((k *= 2) < 1) {\n            return -0.5 * (a * Math.pow(2, 10 * (k -= 1))\n                * Math.sin((k - s) * (2 * Math.PI) / p));\n        }\n        return a * Math.pow(2, -10 * (k -= 1))\n            * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1;\n    },\n    backIn: function (k) {\n        var s = 1.70158;\n        return k * k * ((s + 1) * k - s);\n    },\n    backOut: function (k) {\n        var s = 1.70158;\n        return --k * k * ((s + 1) * k + s) + 1;\n    },\n    backInOut: function (k) {\n        var s = 1.70158 * 1.525;\n        if ((k *= 2) < 1) {\n            return 0.5 * (k * k * ((s + 1) * k - s));\n        }\n        return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2);\n    },\n    bounceIn: function (k) {\n        return 1 - easing.bounceOut(1 - k);\n    },\n    bounceOut: function (k) {\n        if (k < (1 / 2.75)) {\n            return 7.5625 * k * k;\n        }\n        else if (k < (2 / 2.75)) {\n            return 7.5625 * (k -= (1.5 / 2.75)) * k + 0.75;\n        }\n        else if (k < (2.5 / 2.75)) {\n            return 7.5625 * (k -= (2.25 / 2.75)) * k + 0.9375;\n        }\n        else {\n            return 7.5625 * (k -= (2.625 / 2.75)) * k + 0.984375;\n        }\n    },\n    bounceInOut: function (k) {\n        if (k < 0.5) {\n            return easing.bounceIn(k * 2) * 0.5;\n        }\n        return easing.bounceOut(k * 2 - 1) * 0.5 + 0.5;\n    }\n};\nexport default easing;\n","import easingFuncs from './easing';\nvar Clip = (function () {\n    function Clip(opts) {\n        this._initialized = false;\n        this._startTime = 0;\n        this._pausedTime = 0;\n        this._paused = false;\n        this._life = opts.life || 1000;\n        this._delay = opts.delay || 0;\n        this.loop = opts.loop == null ? false : opts.loop;\n        this.gap = opts.gap || 0;\n        this.easing = opts.easing || 'linear';\n        this.onframe = opts.onframe;\n        this.ondestroy = opts.ondestroy;\n        this.onrestart = opts.onrestart;\n    }\n    Clip.prototype.step = function (globalTime, deltaTime) {\n        if (!this._initialized) {\n            this._startTime = globalTime + this._delay;\n            this._initialized = true;\n        }\n        if (this._paused) {\n            this._pausedTime += deltaTime;\n            return;\n        }\n        var percent = (globalTime - this._startTime - this._pausedTime) / this._life;\n        if (percent < 0) {\n            percent = 0;\n        }\n        percent = Math.min(percent, 1);\n        var easing = this.easing;\n        var easingFunc = typeof easing === 'string'\n            ? easingFuncs[easing] : easing;\n        var schedule = typeof easingFunc === 'function'\n            ? easingFunc(percent)\n            : percent;\n        this.onframe && this.onframe(schedule);\n        if (percent === 1) {\n            if (this.loop) {\n                this._restart(globalTime);\n                this.onrestart && this.onrestart();\n            }\n            else {\n                return true;\n            }\n        }\n        return false;\n    };\n    Clip.prototype._restart = function (globalTime) {\n        var remainder = (globalTime - this._startTime - this._pausedTime) % this._life;\n        this._startTime = globalTime - remainder + this.gap;\n        this._pausedTime = 0;\n    };\n    Clip.prototype.pause = function () {\n        this._paused = true;\n    };\n    Clip.prototype.resume = function () {\n        this._paused = false;\n    };\n    return Clip;\n}());\nexport default Clip;\n","var Entry = (function () {\n    function Entry(val) {\n        this.value = val;\n    }\n    return Entry;\n}());\nexport { Entry };\nvar LinkedList = (function () {\n    function LinkedList() {\n        this._len = 0;\n    }\n    LinkedList.prototype.insert = function (val) {\n        var entry = new Entry(val);\n        this.insertEntry(entry);\n        return entry;\n    };\n    LinkedList.prototype.insertEntry = function (entry) {\n        if (!this.head) {\n            this.head = this.tail = entry;\n        }\n        else {\n            this.tail.next = entry;\n            entry.prev = this.tail;\n            entry.next = null;\n            this.tail = entry;\n        }\n        this._len++;\n    };\n    LinkedList.prototype.remove = function (entry) {\n        var prev = entry.prev;\n        var next = entry.next;\n        if (prev) {\n            prev.next = next;\n        }\n        else {\n            this.head = next;\n        }\n        if (next) {\n            next.prev = prev;\n        }\n        else {\n            this.tail = prev;\n        }\n        entry.next = entry.prev = null;\n        this._len--;\n    };\n    LinkedList.prototype.len = function () {\n        return this._len;\n    };\n    LinkedList.prototype.clear = function () {\n        this.head = this.tail = null;\n        this._len = 0;\n    };\n    return LinkedList;\n}());\nexport { LinkedList };\nvar LRU = (function () {\n    function LRU(maxSize) {\n        this._list = new LinkedList();\n        this._maxSize = 10;\n        this._map = {};\n        this._maxSize = maxSize;\n    }\n    LRU.prototype.put = function (key, value) {\n        var list = this._list;\n        var map = this._map;\n        var removed = null;\n        if (map[key] == null) {\n            var len = list.len();\n            var entry = this._lastRemovedEntry;\n            if (len >= this._maxSize && len > 0) {\n                var leastUsedEntry = list.head;\n                list.remove(leastUsedEntry);\n                delete map[leastUsedEntry.key];\n                removed = leastUsedEntry.value;\n                this._lastRemovedEntry = leastUsedEntry;\n            }\n            if (entry) {\n                entry.value = value;\n            }\n            else {\n                entry = new Entry(value);\n            }\n            entry.key = key;\n            list.insertEntry(entry);\n            map[key] = entry;\n        }\n        return removed;\n    };\n    LRU.prototype.get = function (key) {\n        var entry = this._map[key];\n        var list = this._list;\n        if (entry != null) {\n            if (entry !== list.tail) {\n                list.remove(entry);\n                list.insertEntry(entry);\n            }\n            return entry.value;\n        }\n    };\n    LRU.prototype.clear = function () {\n        this._list.clear();\n        this._map = {};\n    };\n    LRU.prototype.len = function () {\n        return this._list.len();\n    };\n    return LRU;\n}());\nexport default LRU;\n","import LRU from '../core/LRU';\nvar kCSSColorTable = {\n    'transparent': [0, 0, 0, 0], 'aliceblue': [240, 248, 255, 1],\n    'antiquewhite': [250, 235, 215, 1], 'aqua': [0, 255, 255, 1],\n    'aquamarine': [127, 255, 212, 1], 'azure': [240, 255, 255, 1],\n    'beige': [245, 245, 220, 1], 'bisque': [255, 228, 196, 1],\n    'black': [0, 0, 0, 1], 'blanchedalmond': [255, 235, 205, 1],\n    'blue': [0, 0, 255, 1], 'blueviolet': [138, 43, 226, 1],\n    'brown': [165, 42, 42, 1], 'burlywood': [222, 184, 135, 1],\n    'cadetblue': [95, 158, 160, 1], 'chartreuse': [127, 255, 0, 1],\n    'chocolate': [210, 105, 30, 1], 'coral': [255, 127, 80, 1],\n    'cornflowerblue': [100, 149, 237, 1], 'cornsilk': [255, 248, 220, 1],\n    'crimson': [220, 20, 60, 1], 'cyan': [0, 255, 255, 1],\n    'darkblue': [0, 0, 139, 1], 'darkcyan': [0, 139, 139, 1],\n    'darkgoldenrod': [184, 134, 11, 1], 'darkgray': [169, 169, 169, 1],\n    'darkgreen': [0, 100, 0, 1], 'darkgrey': [169, 169, 169, 1],\n    'darkkhaki': [189, 183, 107, 1], 'darkmagenta': [139, 0, 139, 1],\n    'darkolivegreen': [85, 107, 47, 1], 'darkorange': [255, 140, 0, 1],\n    'darkorchid': [153, 50, 204, 1], 'darkred': [139, 0, 0, 1],\n    'darksalmon': [233, 150, 122, 1], 'darkseagreen': [143, 188, 143, 1],\n    'darkslateblue': [72, 61, 139, 1], 'darkslategray': [47, 79, 79, 1],\n    'darkslategrey': [47, 79, 79, 1], 'darkturquoise': [0, 206, 209, 1],\n    'darkviolet': [148, 0, 211, 1], 'deeppink': [255, 20, 147, 1],\n    'deepskyblue': [0, 191, 255, 1], 'dimgray': [105, 105, 105, 1],\n    'dimgrey': [105, 105, 105, 1], 'dodgerblue': [30, 144, 255, 1],\n    'firebrick': [178, 34, 34, 1], 'floralwhite': [255, 250, 240, 1],\n    'forestgreen': [34, 139, 34, 1], 'fuchsia': [255, 0, 255, 1],\n    'gainsboro': [220, 220, 220, 1], 'ghostwhite': [248, 248, 255, 1],\n    'gold': [255, 215, 0, 1], 'goldenrod': [218, 165, 32, 1],\n    'gray': [128, 128, 128, 1], 'green': [0, 128, 0, 1],\n    'greenyellow': [173, 255, 47, 1], 'grey': [128, 128, 128, 1],\n    'honeydew': [240, 255, 240, 1], 'hotpink': [255, 105, 180, 1],\n    'indianred': [205, 92, 92, 1], 'indigo': [75, 0, 130, 1],\n    'ivory': [255, 255, 240, 1], 'khaki': [240, 230, 140, 1],\n    'lavender': [230, 230, 250, 1], 'lavenderblush': [255, 240, 245, 1],\n    'lawngreen': [124, 252, 0, 1], 'lemonchiffon': [255, 250, 205, 1],\n    'lightblue': [173, 216, 230, 1], 'lightcoral': [240, 128, 128, 1],\n    'lightcyan': [224, 255, 255, 1], 'lightgoldenrodyellow': [250, 250, 210, 1],\n    'lightgray': [211, 211, 211, 1], 'lightgreen': [144, 238, 144, 1],\n    'lightgrey': [211, 211, 211, 1], 'lightpink': [255, 182, 193, 1],\n    'lightsalmon': [255, 160, 122, 1], 'lightseagreen': [32, 178, 170, 1],\n    'lightskyblue': [135, 206, 250, 1], 'lightslategray': [119, 136, 153, 1],\n    'lightslategrey': [119, 136, 153, 1], 'lightsteelblue': [176, 196, 222, 1],\n    'lightyellow': [255, 255, 224, 1], 'lime': [0, 255, 0, 1],\n    'limegreen': [50, 205, 50, 1], 'linen': [250, 240, 230, 1],\n    'magenta': [255, 0, 255, 1], 'maroon': [128, 0, 0, 1],\n    'mediumaquamarine': [102, 205, 170, 1], 'mediumblue': [0, 0, 205, 1],\n    'mediumorchid': [186, 85, 211, 1], 'mediumpurple': [147, 112, 219, 1],\n    'mediumseagreen': [60, 179, 113, 1], 'mediumslateblue': [123, 104, 238, 1],\n    'mediumspringgreen': [0, 250, 154, 1], 'mediumturquoise': [72, 209, 204, 1],\n    'mediumvioletred': [199, 21, 133, 1], 'midnightblue': [25, 25, 112, 1],\n    'mintcream': [245, 255, 250, 1], 'mistyrose': [255, 228, 225, 1],\n    'moccasin': [255, 228, 181, 1], 'navajowhite': [255, 222, 173, 1],\n    'navy': [0, 0, 128, 1], 'oldlace': [253, 245, 230, 1],\n    'olive': [128, 128, 0, 1], 'olivedrab': [107, 142, 35, 1],\n    'orange': [255, 165, 0, 1], 'orangered': [255, 69, 0, 1],\n    'orchid': [218, 112, 214, 1], 'palegoldenrod': [238, 232, 170, 1],\n    'palegreen': [152, 251, 152, 1], 'paleturquoise': [175, 238, 238, 1],\n    'palevioletred': [219, 112, 147, 1], 'papayawhip': [255, 239, 213, 1],\n    'peachpuff': [255, 218, 185, 1], 'peru': [205, 133, 63, 1],\n    'pink': [255, 192, 203, 1], 'plum': [221, 160, 221, 1],\n    'powderblue': [176, 224, 230, 1], 'purple': [128, 0, 128, 1],\n    'red': [255, 0, 0, 1], 'rosybrown': [188, 143, 143, 1],\n    'royalblue': [65, 105, 225, 1], 'saddlebrown': [139, 69, 19, 1],\n    'salmon': [250, 128, 114, 1], 'sandybrown': [244, 164, 96, 1],\n    'seagreen': [46, 139, 87, 1], 'seashell': [255, 245, 238, 1],\n    'sienna': [160, 82, 45, 1], 'silver': [192, 192, 192, 1],\n    'skyblue': [135, 206, 235, 1], 'slateblue': [106, 90, 205, 1],\n    'slategray': [112, 128, 144, 1], 'slategrey': [112, 128, 144, 1],\n    'snow': [255, 250, 250, 1], 'springgreen': [0, 255, 127, 1],\n    'steelblue': [70, 130, 180, 1], 'tan': [210, 180, 140, 1],\n    'teal': [0, 128, 128, 1], 'thistle': [216, 191, 216, 1],\n    'tomato': [255, 99, 71, 1], 'turquoise': [64, 224, 208, 1],\n    'violet': [238, 130, 238, 1], 'wheat': [245, 222, 179, 1],\n    'white': [255, 255, 255, 1], 'whitesmoke': [245, 245, 245, 1],\n    'yellow': [255, 255, 0, 1], 'yellowgreen': [154, 205, 50, 1]\n};\nfunction clampCssByte(i) {\n    i = Math.round(i);\n    return i < 0 ? 0 : i > 255 ? 255 : i;\n}\nfunction clampCssAngle(i) {\n    i = Math.round(i);\n    return i < 0 ? 0 : i > 360 ? 360 : i;\n}\nfunction clampCssFloat(f) {\n    return f < 0 ? 0 : f > 1 ? 1 : f;\n}\nfunction parseCssInt(val) {\n    var str = val;\n    if (str.length && str.charAt(str.length - 1) === '%') {\n        return clampCssByte(parseFloat(str) / 100 * 255);\n    }\n    return clampCssByte(parseInt(str, 10));\n}\nfunction parseCssFloat(val) {\n    var str = val;\n    if (str.length && str.charAt(str.length - 1) === '%') {\n        return clampCssFloat(parseFloat(str) / 100);\n    }\n    return clampCssFloat(parseFloat(str));\n}\nfunction cssHueToRgb(m1, m2, h) {\n    if (h < 0) {\n        h += 1;\n    }\n    else if (h > 1) {\n        h -= 1;\n    }\n    if (h * 6 < 1) {\n        return m1 + (m2 - m1) * h * 6;\n    }\n    if (h * 2 < 1) {\n        return m2;\n    }\n    if (h * 3 < 2) {\n        return m1 + (m2 - m1) * (2 / 3 - h) * 6;\n    }\n    return m1;\n}\nfunction lerpNumber(a, b, p) {\n    return a + (b - a) * p;\n}\nfunction setRgba(out, r, g, b, a) {\n    out[0] = r;\n    out[1] = g;\n    out[2] = b;\n    out[3] = a;\n    return out;\n}\nfunction copyRgba(out, a) {\n    out[0] = a[0];\n    out[1] = a[1];\n    out[2] = a[2];\n    out[3] = a[3];\n    return out;\n}\nvar colorCache = new LRU(20);\nvar lastRemovedArr = null;\nfunction putToCache(colorStr, rgbaArr) {\n    if (lastRemovedArr) {\n        copyRgba(lastRemovedArr, rgbaArr);\n    }\n    lastRemovedArr = colorCache.put(colorStr, lastRemovedArr || (rgbaArr.slice()));\n}\nexport function parse(colorStr, rgbaArr) {\n    if (!colorStr) {\n        return;\n    }\n    rgbaArr = rgbaArr || [];\n    var cached = colorCache.get(colorStr);\n    if (cached) {\n        return copyRgba(rgbaArr, cached);\n    }\n    colorStr = colorStr + '';\n    var str = colorStr.replace(/ /g, '').toLowerCase();\n    if (str in kCSSColorTable) {\n        copyRgba(rgbaArr, kCSSColorTable[str]);\n        putToCache(colorStr, rgbaArr);\n        return rgbaArr;\n    }\n    var strLen = str.length;\n    if (str.charAt(0) === '#') {\n        if (strLen === 4 || strLen === 5) {\n            var iv = parseInt(str.slice(1, 4), 16);\n            if (!(iv >= 0 && iv <= 0xfff)) {\n                setRgba(rgbaArr, 0, 0, 0, 1);\n                return;\n            }\n            setRgba(rgbaArr, ((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8), (iv & 0xf0) | ((iv & 0xf0) >> 4), (iv & 0xf) | ((iv & 0xf) << 4), strLen === 5 ? parseInt(str.slice(4), 16) / 0xf : 1);\n            putToCache(colorStr, rgbaArr);\n            return rgbaArr;\n        }\n        else if (strLen === 7 || strLen === 9) {\n            var iv = parseInt(str.slice(1, 7), 16);\n            if (!(iv >= 0 && iv <= 0xffffff)) {\n                setRgba(rgbaArr, 0, 0, 0, 1);\n                return;\n            }\n            setRgba(rgbaArr, (iv & 0xff0000) >> 16, (iv & 0xff00) >> 8, iv & 0xff, strLen === 9 ? parseInt(str.slice(7), 16) / 0xff : 1);\n            putToCache(colorStr, rgbaArr);\n            return rgbaArr;\n        }\n        return;\n    }\n    var op = str.indexOf('(');\n    var ep = str.indexOf(')');\n    if (op !== -1 && ep + 1 === strLen) {\n        var fname = str.substr(0, op);\n        var params = str.substr(op + 1, ep - (op + 1)).split(',');\n        var alpha = 1;\n        switch (fname) {\n            case 'rgba':\n                if (params.length !== 4) {\n                    return params.length === 3\n                        ? setRgba(rgbaArr, +params[0], +params[1], +params[2], 1)\n                        : setRgba(rgbaArr, 0, 0, 0, 1);\n                }\n                alpha = parseCssFloat(params.pop());\n            case 'rgb':\n                if (params.length !== 3) {\n                    setRgba(rgbaArr, 0, 0, 0, 1);\n                    return;\n                }\n                setRgba(rgbaArr, parseCssInt(params[0]), parseCssInt(params[1]), parseCssInt(params[2]), alpha);\n                putToCache(colorStr, rgbaArr);\n                return rgbaArr;\n            case 'hsla':\n                if (params.length !== 4) {\n                    setRgba(rgbaArr, 0, 0, 0, 1);\n                    return;\n                }\n                params[3] = parseCssFloat(params[3]);\n                hsla2rgba(params, rgbaArr);\n                putToCache(colorStr, rgbaArr);\n                return rgbaArr;\n            case 'hsl':\n                if (params.length !== 3) {\n                    setRgba(rgbaArr, 0, 0, 0, 1);\n                    return;\n                }\n                hsla2rgba(params, rgbaArr);\n                putToCache(colorStr, rgbaArr);\n                return rgbaArr;\n            default:\n                return;\n        }\n    }\n    setRgba(rgbaArr, 0, 0, 0, 1);\n    return;\n}\nfunction hsla2rgba(hsla, rgba) {\n    var h = (((parseFloat(hsla[0]) % 360) + 360) % 360) / 360;\n    var s = parseCssFloat(hsla[1]);\n    var l = parseCssFloat(hsla[2]);\n    var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n    var m1 = l * 2 - m2;\n    rgba = rgba || [];\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);\n    if (hsla.length === 4) {\n        rgba[3] = hsla[3];\n    }\n    return rgba;\n}\nfunction rgba2hsla(rgba) {\n    if (!rgba) {\n        return;\n    }\n    var R = rgba[0] / 255;\n    var G = rgba[1] / 255;\n    var B = rgba[2] / 255;\n    var vMin = Math.min(R, G, B);\n    var vMax = Math.max(R, G, B);\n    var delta = vMax - vMin;\n    var L = (vMax + vMin) / 2;\n    var H;\n    var S;\n    if (delta === 0) {\n        H = 0;\n        S = 0;\n    }\n    else {\n        if (L < 0.5) {\n            S = delta / (vMax + vMin);\n        }\n        else {\n            S = delta / (2 - vMax - vMin);\n        }\n        var deltaR = (((vMax - R) / 6) + (delta / 2)) / delta;\n        var deltaG = (((vMax - G) / 6) + (delta / 2)) / delta;\n        var deltaB = (((vMax - B) / 6) + (delta / 2)) / delta;\n        if (R === vMax) {\n            H = deltaB - deltaG;\n        }\n        else if (G === vMax) {\n            H = (1 / 3) + deltaR - deltaB;\n        }\n        else if (B === vMax) {\n            H = (2 / 3) + deltaG - deltaR;\n        }\n        if (H < 0) {\n            H += 1;\n        }\n        if (H > 1) {\n            H -= 1;\n        }\n    }\n    var hsla = [H * 360, S, L];\n    if (rgba[3] != null) {\n        hsla.push(rgba[3]);\n    }\n    return hsla;\n}\nexport function lift(color, level) {\n    var colorArr = parse(color);\n    if (colorArr) {\n        for (var i = 0; i < 3; i++) {\n            if (level < 0) {\n                colorArr[i] = colorArr[i] * (1 - level) | 0;\n            }\n            else {\n                colorArr[i] = ((255 - colorArr[i]) * level + colorArr[i]) | 0;\n            }\n            if (colorArr[i] > 255) {\n                colorArr[i] = 255;\n            }\n            else if (colorArr[i] < 0) {\n                colorArr[i] = 0;\n            }\n        }\n        return stringify(colorArr, colorArr.length === 4 ? 'rgba' : 'rgb');\n    }\n}\nexport function toHex(color) {\n    var colorArr = parse(color);\n    if (colorArr) {\n        return ((1 << 24) + (colorArr[0] << 16) + (colorArr[1] << 8) + (+colorArr[2])).toString(16).slice(1);\n    }\n}\nexport function fastLerp(normalizedValue, colors, out) {\n    if (!(colors && colors.length)\n        || !(normalizedValue >= 0 && normalizedValue <= 1)) {\n        return;\n    }\n    out = out || [];\n    var value = normalizedValue * (colors.length - 1);\n    var leftIndex = Math.floor(value);\n    var rightIndex = Math.ceil(value);\n    var leftColor = colors[leftIndex];\n    var rightColor = colors[rightIndex];\n    var dv = value - leftIndex;\n    out[0] = clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv));\n    out[1] = clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv));\n    out[2] = clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv));\n    out[3] = clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv));\n    return out;\n}\nexport var fastMapToColor = fastLerp;\nexport function lerp(normalizedValue, colors, fullOutput) {\n    if (!(colors && colors.length)\n        || !(normalizedValue >= 0 && normalizedValue <= 1)) {\n        return;\n    }\n    var value = normalizedValue * (colors.length - 1);\n    var leftIndex = Math.floor(value);\n    var rightIndex = Math.ceil(value);\n    var leftColor = parse(colors[leftIndex]);\n    var rightColor = parse(colors[rightIndex]);\n    var dv = value - leftIndex;\n    var color = stringify([\n        clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv)),\n        clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv)),\n        clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv)),\n        clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv))\n    ], 'rgba');\n    return fullOutput\n        ? {\n            color: color,\n            leftIndex: leftIndex,\n            rightIndex: rightIndex,\n            value: value\n        }\n        : color;\n}\nexport var mapToColor = lerp;\nexport function modifyHSL(color, h, s, l) {\n    var colorArr = parse(color);\n    if (color) {\n        colorArr = rgba2hsla(colorArr);\n        h != null && (colorArr[0] = clampCssAngle(h));\n        s != null && (colorArr[1] = parseCssFloat(s));\n        l != null && (colorArr[2] = parseCssFloat(l));\n        return stringify(hsla2rgba(colorArr), 'rgba');\n    }\n}\nexport function modifyAlpha(color, alpha) {\n    var colorArr = parse(color);\n    if (colorArr && alpha != null) {\n        colorArr[3] = clampCssFloat(alpha);\n        return stringify(colorArr, 'rgba');\n    }\n}\nexport function stringify(arrColor, type) {\n    if (!arrColor || !arrColor.length) {\n        return;\n    }\n    var colorStr = arrColor[0] + ',' + arrColor[1] + ',' + arrColor[2];\n    if (type === 'rgba' || type === 'hsva' || type === 'hsla') {\n        colorStr += ',' + arrColor[3];\n    }\n    return type + '(' + colorStr + ')';\n}\nexport function lum(color, backgroundLum) {\n    var arr = parse(color);\n    return arr\n        ? (0.299 * arr[0] + 0.587 * arr[1] + 0.114 * arr[2]) * arr[3] / 255\n            + (1 - arr[3]) * backgroundLum\n        : 0;\n}\nexport function random() {\n    var r = Math.round(Math.random() * 255);\n    var g = Math.round(Math.random() * 255);\n    var b = Math.round(Math.random() * 255);\n    return 'rgb(' + r + ',' + g + ',' + b + ')';\n}\n","import Clip from './Clip';\nimport * as color from '../tool/color';\nimport { isArrayLike, keys, logError } from '../core/util';\nvar arraySlice = Array.prototype.slice;\nexport function interpolateNumber(p0, p1, percent) {\n    return (p1 - p0) * percent + p0;\n}\nexport function step(p0, p1, percent) {\n    return percent > 0.5 ? p1 : p0;\n}\nexport function interpolate1DArray(out, p0, p1, percent) {\n    var len = p0.length;\n    for (var i = 0; i < len; i++) {\n        out[i] = interpolateNumber(p0[i], p1[i], percent);\n    }\n}\nexport function interpolate2DArray(out, p0, p1, percent) {\n    var len = p0.length;\n    var len2 = len && p0[0].length;\n    for (var i = 0; i < len; i++) {\n        if (!out[i]) {\n            out[i] = [];\n        }\n        for (var j = 0; j < len2; j++) {\n            out[i][j] = interpolateNumber(p0[i][j], p1[i][j], percent);\n        }\n    }\n}\nfunction add1DArray(out, p0, p1, sign) {\n    var len = p0.length;\n    for (var i = 0; i < len; i++) {\n        out[i] = p0[i] + p1[i] * sign;\n    }\n    return out;\n}\nfunction add2DArray(out, p0, p1, sign) {\n    var len = p0.length;\n    var len2 = len && p0[0].length;\n    for (var i = 0; i < len; i++) {\n        if (!out[i]) {\n            out[i] = [];\n        }\n        for (var j = 0; j < len2; j++) {\n            out[i][j] = p0[i][j] + p1[i][j] * sign;\n        }\n    }\n    return out;\n}\nfunction fillArray(val0, val1, arrDim) {\n    var arr0 = val0;\n    var arr1 = val1;\n    if (!arr0.push || !arr1.push) {\n        return;\n    }\n    var arr0Len = arr0.length;\n    var arr1Len = arr1.length;\n    if (arr0Len !== arr1Len) {\n        var isPreviousLarger = arr0Len > arr1Len;\n        if (isPreviousLarger) {\n            arr0.length = arr1Len;\n        }\n        else {\n            for (var i = arr0Len; i < arr1Len; i++) {\n                arr0.push(arrDim === 1 ? arr1[i] : arraySlice.call(arr1[i]));\n            }\n        }\n    }\n    var len2 = arr0[0] && arr0[0].length;\n    for (var i = 0; i < arr0.length; i++) {\n        if (arrDim === 1) {\n            if (isNaN(arr0[i])) {\n                arr0[i] = arr1[i];\n            }\n        }\n        else {\n            for (var j = 0; j < len2; j++) {\n                if (isNaN(arr0[i][j])) {\n                    arr0[i][j] = arr1[i][j];\n                }\n            }\n        }\n    }\n}\nfunction is1DArraySame(arr0, arr1) {\n    var len = arr0.length;\n    if (len !== arr1.length) {\n        return false;\n    }\n    for (var i = 0; i < len; i++) {\n        if (arr0[i] !== arr1[i]) {\n            return false;\n        }\n    }\n    return true;\n}\nfunction is2DArraySame(arr0, arr1) {\n    var len = arr0.length;\n    if (len !== arr1.length) {\n        return false;\n    }\n    var len2 = arr0[0].length;\n    for (var i = 0; i < len; i++) {\n        for (var j = 0; j < len2; j++) {\n            if (arr0[i][j] !== arr1[i][j]) {\n                return false;\n            }\n        }\n    }\n    return true;\n}\nfunction catmullRomInterpolate(p0, p1, p2, p3, t, t2, t3) {\n    var v0 = (p2 - p0) * 0.5;\n    var v1 = (p3 - p1) * 0.5;\n    return (2 * (p1 - p2) + v0 + v1) * t3\n        + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\n        + v0 * t + p1;\n}\nfunction catmullRomInterpolate1DArray(out, p0, p1, p2, p3, t, t2, t3) {\n    var len = p0.length;\n    for (var i = 0; i < len; i++) {\n        out[i] = catmullRomInterpolate(p0[i], p1[i], p2[i], p3[i], t, t2, t3);\n    }\n}\nfunction catmullRomInterpolate2DArray(out, p0, p1, p2, p3, t, t2, t3) {\n    var len = p0.length;\n    var len2 = p0[0].length;\n    for (var i = 0; i < len; i++) {\n        if (!out[i]) {\n            out[1] = [];\n        }\n        for (var j = 0; j < len2; j++) {\n            out[i][j] = catmullRomInterpolate(p0[i][j], p1[i][j], p2[i][j], p3[i][j], t, t2, t3);\n        }\n    }\n}\nexport function cloneValue(value) {\n    if (isArrayLike(value)) {\n        var len = value.length;\n        if (isArrayLike(value[0])) {\n            var ret = [];\n            for (var i = 0; i < len; i++) {\n                ret.push(arraySlice.call(value[i]));\n            }\n            return ret;\n        }\n        return arraySlice.call(value);\n    }\n    return value;\n}\nfunction rgba2String(rgba) {\n    rgba[0] = Math.floor(rgba[0]);\n    rgba[1] = Math.floor(rgba[1]);\n    rgba[2] = Math.floor(rgba[2]);\n    return 'rgba(' + rgba.join(',') + ')';\n}\nfunction guessArrayDim(value) {\n    return isArrayLike(value && value[0]) ? 2 : 1;\n}\nvar tmpRgba = [0, 0, 0, 0];\nvar Track = (function () {\n    function Track(propName) {\n        this.keyframes = [];\n        this.maxTime = 0;\n        this.arrDim = 0;\n        this.interpolable = true;\n        this._needsSort = false;\n        this._isAllValueEqual = true;\n        this._lastFrame = 0;\n        this._lastFramePercent = 0;\n        this.propName = propName;\n    }\n    Track.prototype.isFinished = function () {\n        return this._finished;\n    };\n    Track.prototype.setFinished = function () {\n        this._finished = true;\n        if (this._additiveTrack) {\n            this._additiveTrack.setFinished();\n        }\n    };\n    Track.prototype.needsAnimate = function () {\n        return !this._isAllValueEqual && this.keyframes.length >= 2 && this.interpolable;\n    };\n    Track.prototype.getAdditiveTrack = function () {\n        return this._additiveTrack;\n    };\n    Track.prototype.addKeyframe = function (time, value) {\n        if (time >= this.maxTime) {\n            this.maxTime = time;\n        }\n        else {\n            this._needsSort = true;\n        }\n        var keyframes = this.keyframes;\n        var len = keyframes.length;\n        if (this.interpolable) {\n            if (isArrayLike(value)) {\n                var arrayDim = guessArrayDim(value);\n                if (len > 0 && this.arrDim !== arrayDim) {\n                    this.interpolable = false;\n                    return;\n                }\n                if (arrayDim === 1 && typeof value[0] !== 'number'\n                    || arrayDim === 2 && typeof value[0][0] !== 'number') {\n                    this.interpolable = false;\n                    return;\n                }\n                if (len > 0) {\n                    var lastFrame = keyframes[len - 1];\n                    if (this._isAllValueEqual) {\n                        if (arrayDim === 1) {\n                            if (!is1DArraySame(value, lastFrame.value)) {\n                                this._isAllValueEqual = false;\n                            }\n                        }\n                        else {\n                            this._isAllValueEqual = false;\n                        }\n                    }\n                }\n                this.arrDim = arrayDim;\n            }\n            else {\n                if (this.arrDim > 0) {\n                    this.interpolable = false;\n                    return;\n                }\n                if (typeof value === 'string') {\n                    var colorArray = color.parse(value);\n                    if (colorArray) {\n                        value = colorArray;\n                        this.isValueColor = true;\n                    }\n                    else {\n                        this.interpolable = false;\n                    }\n                }\n                else if (typeof value !== 'number') {\n                    this.interpolable = false;\n                    return;\n                }\n                if (this._isAllValueEqual && len > 0) {\n                    var lastFrame = keyframes[len - 1];\n                    if (this.isValueColor && !is1DArraySame(lastFrame.value, value)) {\n                        this._isAllValueEqual = false;\n                    }\n                    else if (lastFrame.value !== value) {\n                        this._isAllValueEqual = false;\n                    }\n                }\n            }\n        }\n        var kf = {\n            time: time,\n            value: value,\n            percent: 0\n        };\n        this.keyframes.push(kf);\n        return kf;\n    };\n    Track.prototype.prepare = function (additiveTrack) {\n        var kfs = this.keyframes;\n        if (this._needsSort) {\n            kfs.sort(function (a, b) {\n                return a.time - b.time;\n            });\n        }\n        var arrDim = this.arrDim;\n        var kfsLen = kfs.length;\n        var lastKf = kfs[kfsLen - 1];\n        for (var i = 0; i < kfsLen; i++) {\n            kfs[i].percent = kfs[i].time / this.maxTime;\n            if (arrDim > 0 && i !== kfsLen - 1) {\n                fillArray(kfs[i].value, lastKf.value, arrDim);\n            }\n        }\n        if (additiveTrack\n            && this.needsAnimate()\n            && additiveTrack.needsAnimate()\n            && arrDim === additiveTrack.arrDim\n            && this.isValueColor === additiveTrack.isValueColor\n            && !additiveTrack._finished) {\n            this._additiveTrack = additiveTrack;\n            var startValue = kfs[0].value;\n            for (var i = 0; i < kfsLen; i++) {\n                if (arrDim === 0) {\n                    if (this.isValueColor) {\n                        kfs[i].additiveValue\n                            = add1DArray([], kfs[i].value, startValue, -1);\n                    }\n                    else {\n                        kfs[i].additiveValue = kfs[i].value - startValue;\n                    }\n                }\n                else if (arrDim === 1) {\n                    kfs[i].additiveValue = add1DArray([], kfs[i].value, startValue, -1);\n                }\n                else if (arrDim === 2) {\n                    kfs[i].additiveValue = add2DArray([], kfs[i].value, startValue, -1);\n                }\n            }\n        }\n    };\n    Track.prototype.step = function (target, percent) {\n        if (this._finished) {\n            return;\n        }\n        if (this._additiveTrack && this._additiveTrack._finished) {\n            this._additiveTrack = null;\n        }\n        var isAdditive = this._additiveTrack != null;\n        var valueKey = isAdditive ? 'additiveValue' : 'value';\n        var keyframes = this.keyframes;\n        var kfsNum = this.keyframes.length;\n        var propName = this.propName;\n        var arrDim = this.arrDim;\n        var isValueColor = this.isValueColor;\n        var frameIdx;\n        if (percent < 0) {\n            frameIdx = 0;\n        }\n        else if (percent < this._lastFramePercent) {\n            var start = Math.min(this._lastFrame + 1, kfsNum - 1);\n            for (frameIdx = start; frameIdx >= 0; frameIdx--) {\n                if (keyframes[frameIdx].percent <= percent) {\n                    break;\n                }\n            }\n            frameIdx = Math.min(frameIdx, kfsNum - 2);\n        }\n        else {\n            for (frameIdx = this._lastFrame; frameIdx < kfsNum; frameIdx++) {\n                if (keyframes[frameIdx].percent > percent) {\n                    break;\n                }\n            }\n            frameIdx = Math.min(frameIdx - 1, kfsNum - 2);\n        }\n        var nextFrame = keyframes[frameIdx + 1];\n        var frame = keyframes[frameIdx];\n        if (!(frame && nextFrame)) {\n            return;\n        }\n        this._lastFrame = frameIdx;\n        this._lastFramePercent = percent;\n        var range = (nextFrame.percent - frame.percent);\n        if (range === 0) {\n            return;\n        }\n        var w = (percent - frame.percent) / range;\n        var targetArr = isAdditive ? this._additiveValue\n            : (isValueColor ? tmpRgba : target[propName]);\n        if ((arrDim > 0 || isValueColor) && !targetArr) {\n            targetArr = this._additiveValue = [];\n        }\n        if (this.useSpline) {\n            var p1 = keyframes[frameIdx][valueKey];\n            var p0 = keyframes[frameIdx === 0 ? frameIdx : frameIdx - 1][valueKey];\n            var p2 = keyframes[frameIdx > kfsNum - 2 ? kfsNum - 1 : frameIdx + 1][valueKey];\n            var p3 = keyframes[frameIdx > kfsNum - 3 ? kfsNum - 1 : frameIdx + 2][valueKey];\n            if (arrDim > 0) {\n                arrDim === 1\n                    ? catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w)\n                    : catmullRomInterpolate2DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\n            }\n            else if (isValueColor) {\n                catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\n                if (!isAdditive) {\n                    target[propName] = rgba2String(targetArr);\n                }\n            }\n            else {\n                var value = void 0;\n                if (!this.interpolable) {\n                    value = p2;\n                }\n                else {\n                    value = catmullRomInterpolate(p0, p1, p2, p3, w, w * w, w * w * w);\n                }\n                if (isAdditive) {\n                    this._additiveValue = value;\n                }\n                else {\n                    target[propName] = value;\n                }\n            }\n        }\n        else {\n            if (arrDim > 0) {\n                arrDim === 1\n                    ? interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w)\n                    : interpolate2DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\n            }\n            else if (isValueColor) {\n                interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\n                if (!isAdditive) {\n                    target[propName] = rgba2String(targetArr);\n                }\n            }\n            else {\n                var value = void 0;\n                if (!this.interpolable) {\n                    value = step(frame[valueKey], nextFrame[valueKey], w);\n                }\n                else {\n                    value = interpolateNumber(frame[valueKey], nextFrame[valueKey], w);\n                }\n                if (isAdditive) {\n                    this._additiveValue = value;\n                }\n                else {\n                    target[propName] = value;\n                }\n            }\n        }\n        if (isAdditive) {\n            this._addToTarget(target);\n        }\n    };\n    Track.prototype._addToTarget = function (target) {\n        var arrDim = this.arrDim;\n        var propName = this.propName;\n        var additiveValue = this._additiveValue;\n        if (arrDim === 0) {\n            if (this.isValueColor) {\n                color.parse(target[propName], tmpRgba);\n                add1DArray(tmpRgba, tmpRgba, additiveValue, 1);\n                target[propName] = rgba2String(tmpRgba);\n            }\n            else {\n                target[propName] = target[propName] + additiveValue;\n            }\n        }\n        else if (arrDim === 1) {\n            add1DArray(target[propName], target[propName], additiveValue, 1);\n        }\n        else if (arrDim === 2) {\n            add2DArray(target[propName], target[propName], additiveValue, 1);\n        }\n    };\n    return Track;\n}());\nvar Animator = (function () {\n    function Animator(target, loop, additiveTo) {\n        this._tracks = {};\n        this._trackKeys = [];\n        this._delay = 0;\n        this._maxTime = 0;\n        this._paused = false;\n        this._started = 0;\n        this._clip = null;\n        this._target = target;\n        this._loop = loop;\n        if (loop && additiveTo) {\n            logError('Can\\' use additive animation on looped animation.');\n            return;\n        }\n        this._additiveAnimators = additiveTo;\n    }\n    Animator.prototype.getTarget = function () {\n        return this._target;\n    };\n    Animator.prototype.changeTarget = function (target) {\n        this._target = target;\n    };\n    Animator.prototype.when = function (time, props) {\n        return this.whenWithKeys(time, props, keys(props));\n    };\n    Animator.prototype.whenWithKeys = function (time, props, propNames) {\n        var tracks = this._tracks;\n        for (var i = 0; i < propNames.length; i++) {\n            var propName = propNames[i];\n            var track = tracks[propName];\n            if (!track) {\n                track = tracks[propName] = new Track(propName);\n                var initialValue = void 0;\n                var additiveTrack = this._getAdditiveTrack(propName);\n                if (additiveTrack) {\n                    var lastFinalKf = additiveTrack.keyframes[additiveTrack.keyframes.length - 1];\n                    initialValue = lastFinalKf && lastFinalKf.value;\n                    if (additiveTrack.isValueColor && initialValue) {\n                        initialValue = rgba2String(initialValue);\n                    }\n                }\n                else {\n                    initialValue = this._target[propName];\n                }\n                if (initialValue == null) {\n                    continue;\n                }\n                if (time !== 0) {\n                    track.addKeyframe(0, cloneValue(initialValue));\n                }\n                this._trackKeys.push(propName);\n            }\n            track.addKeyframe(time, cloneValue(props[propName]));\n        }\n        this._maxTime = Math.max(this._maxTime, time);\n        return this;\n    };\n    Animator.prototype.pause = function () {\n        this._clip.pause();\n        this._paused = true;\n    };\n    Animator.prototype.resume = function () {\n        this._clip.resume();\n        this._paused = false;\n    };\n    Animator.prototype.isPaused = function () {\n        return !!this._paused;\n    };\n    Animator.prototype._doneCallback = function () {\n        this._setTracksFinished();\n        this._clip = null;\n        var doneList = this._doneList;\n        if (doneList) {\n            var len = doneList.length;\n            for (var i = 0; i < len; i++) {\n                doneList[i].call(this);\n            }\n        }\n    };\n    Animator.prototype._abortedCallback = function () {\n        this._setTracksFinished();\n        var animation = this.animation;\n        var abortedList = this._abortedList;\n        if (animation) {\n            animation.removeClip(this._clip);\n        }\n        this._clip = null;\n        if (abortedList) {\n            for (var i = 0; i < abortedList.length; i++) {\n                abortedList[i].call(this);\n            }\n        }\n    };\n    Animator.prototype._setTracksFinished = function () {\n        var tracks = this._tracks;\n        var tracksKeys = this._trackKeys;\n        for (var i = 0; i < tracksKeys.length; i++) {\n            tracks[tracksKeys[i]].setFinished();\n        }\n    };\n    Animator.prototype._getAdditiveTrack = function (trackName) {\n        var additiveTrack;\n        var additiveAnimators = this._additiveAnimators;\n        if (additiveAnimators) {\n            for (var i = 0; i < additiveAnimators.length; i++) {\n                var track = additiveAnimators[i].getTrack(trackName);\n                if (track) {\n                    additiveTrack = track;\n                }\n            }\n        }\n        return additiveTrack;\n    };\n    Animator.prototype.start = function (easing, forceAnimate) {\n        if (this._started > 0) {\n            return;\n        }\n        this._started = 1;\n        var self = this;\n        var tracks = [];\n        for (var i = 0; i < this._trackKeys.length; i++) {\n            var propName = this._trackKeys[i];\n            var track = this._tracks[propName];\n            var additiveTrack = this._getAdditiveTrack(propName);\n            var kfs = track.keyframes;\n            track.prepare(additiveTrack);\n            if (track.needsAnimate()) {\n                tracks.push(track);\n            }\n            else if (!track.interpolable) {\n                var lastKf = kfs[kfs.length - 1];\n                if (lastKf) {\n                    self._target[track.propName] = lastKf.value;\n                }\n            }\n        }\n        if (tracks.length || forceAnimate) {\n            var clip = new Clip({\n                life: this._maxTime,\n                loop: this._loop,\n                delay: this._delay,\n                onframe: function (percent) {\n                    self._started = 2;\n                    var additiveAnimators = self._additiveAnimators;\n                    if (additiveAnimators) {\n                        var stillHasAdditiveAnimator = false;\n                        for (var i = 0; i < additiveAnimators.length; i++) {\n                            if (additiveAnimators[i]._clip) {\n                                stillHasAdditiveAnimator = true;\n                                break;\n                            }\n                        }\n                        if (!stillHasAdditiveAnimator) {\n                            self._additiveAnimators = null;\n                        }\n                    }\n                    for (var i = 0; i < tracks.length; i++) {\n                        tracks[i].step(self._target, percent);\n                    }\n                    var onframeList = self._onframeList;\n                    if (onframeList) {\n                        for (var i = 0; i < onframeList.length; i++) {\n                            onframeList[i](self._target, percent);\n                        }\n                    }\n                },\n                ondestroy: function () {\n                    self._doneCallback();\n                }\n            });\n            this._clip = clip;\n            if (this.animation) {\n                this.animation.addClip(clip);\n            }\n            if (easing && easing !== 'spline') {\n                clip.easing = easing;\n            }\n        }\n        else {\n            this._doneCallback();\n        }\n        return this;\n    };\n    Animator.prototype.stop = function (forwardToLast) {\n        if (!this._clip) {\n            return;\n        }\n        var clip = this._clip;\n        if (forwardToLast) {\n            clip.onframe(1);\n        }\n        this._abortedCallback();\n    };\n    Animator.prototype.delay = function (time) {\n        this._delay = time;\n        return this;\n    };\n    Animator.prototype.during = function (cb) {\n        if (cb) {\n            if (!this._onframeList) {\n                this._onframeList = [];\n            }\n            this._onframeList.push(cb);\n        }\n        return this;\n    };\n    Animator.prototype.done = function (cb) {\n        if (cb) {\n            if (!this._doneList) {\n                this._doneList = [];\n            }\n            this._doneList.push(cb);\n        }\n        return this;\n    };\n    Animator.prototype.aborted = function (cb) {\n        if (cb) {\n            if (!this._abortedList) {\n                this._abortedList = [];\n            }\n            this._abortedList.push(cb);\n        }\n        return this;\n    };\n    Animator.prototype.getClip = function () {\n        return this._clip;\n    };\n    Animator.prototype.getTrack = function (propName) {\n        return this._tracks[propName];\n    };\n    Animator.prototype.stopTracks = function (propNames, forwardToLast) {\n        if (!propNames.length || !this._clip) {\n            return true;\n        }\n        var tracks = this._tracks;\n        var tracksKeys = this._trackKeys;\n        for (var i = 0; i < propNames.length; i++) {\n            var track = tracks[propNames[i]];\n            if (track) {\n                if (forwardToLast) {\n                    track.step(this._target, 1);\n                }\n                else if (this._started === 1) {\n                    track.step(this._target, 0);\n                }\n                track.setFinished();\n            }\n        }\n        var allAborted = true;\n        for (var i = 0; i < tracksKeys.length; i++) {\n            if (!tracks[tracksKeys[i]].isFinished()) {\n                allAborted = false;\n                break;\n            }\n        }\n        if (allAborted) {\n            this._abortedCallback();\n        }\n        return allAborted;\n    };\n    Animator.prototype.saveFinalToTarget = function (target, trackKeys) {\n        if (!target) {\n            return;\n        }\n        trackKeys = trackKeys || this._trackKeys;\n        for (var i = 0; i < trackKeys.length; i++) {\n            var propName = trackKeys[i];\n            var track = this._tracks[propName];\n            if (!track || track.isFinished()) {\n                continue;\n            }\n            var kfs = track.keyframes;\n            var lastKf = kfs[kfs.length - 1];\n            if (lastKf) {\n                var val = cloneValue(lastKf.value);\n                if (track.isValueColor) {\n                    val = rgba2String(val);\n                }\n                target[propName] = val;\n            }\n        }\n    };\n    Animator.prototype.__changeFinalValue = function (finalProps, trackKeys) {\n        trackKeys = trackKeys || keys(finalProps);\n        for (var i = 0; i < trackKeys.length; i++) {\n            var propName = trackKeys[i];\n            var track = this._tracks[propName];\n            if (!track) {\n                continue;\n            }\n            var kfs = track.keyframes;\n            if (kfs.length > 1) {\n                var lastKf = kfs.pop();\n                track.addKeyframe(lastKf.time, finalProps[propName]);\n                track.prepare(track.getAdditiveTrack());\n            }\n        }\n    };\n    return Animator;\n}());\nexport default Animator;\n","var Point = (function () {\n    function Point(x, y) {\n        this.x = x || 0;\n        this.y = y || 0;\n    }\n    Point.prototype.copy = function (other) {\n        this.x = other.x;\n        this.y = other.y;\n        return this;\n    };\n    Point.prototype.clone = function () {\n        return new Point(this.x, this.y);\n    };\n    Point.prototype.set = function (x, y) {\n        this.x = x;\n        this.y = y;\n        return this;\n    };\n    Point.prototype.equal = function (other) {\n        return other.x === this.x && other.y === this.y;\n    };\n    Point.prototype.add = function (other) {\n        this.x += other.x;\n        this.y += other.y;\n        return this;\n    };\n    Point.prototype.scale = function (scalar) {\n        this.x *= scalar;\n        this.y *= scalar;\n    };\n    Point.prototype.scaleAndAdd = function (other, scalar) {\n        this.x += other.x * scalar;\n        this.y += other.y * scalar;\n    };\n    Point.prototype.sub = function (other) {\n        this.x -= other.x;\n        this.y -= other.y;\n        return this;\n    };\n    Point.prototype.dot = function (other) {\n        return this.x * other.x + this.y * other.y;\n    };\n    Point.prototype.len = function () {\n        return Math.sqrt(this.x * this.x + this.y * this.y);\n    };\n    Point.prototype.lenSquare = function () {\n        return this.x * this.x + this.y * this.y;\n    };\n    Point.prototype.normalize = function () {\n        var len = this.len();\n        this.x /= len;\n        this.y /= len;\n        return this;\n    };\n    Point.prototype.distance = function (other) {\n        var dx = this.x - other.x;\n        var dy = this.y - other.y;\n        return Math.sqrt(dx * dx + dy * dy);\n    };\n    Point.prototype.distanceSquare = function (other) {\n        var dx = this.x - other.x;\n        var dy = this.y - other.y;\n        return dx * dx + dy * dy;\n    };\n    Point.prototype.negate = function () {\n        this.x = -this.x;\n        this.y = -this.y;\n        return this;\n    };\n    Point.prototype.transform = function (m) {\n        if (!m) {\n            return;\n        }\n        var x = this.x;\n        var y = this.y;\n        this.x = m[0] * x + m[2] * y + m[4];\n        this.y = m[1] * x + m[3] * y + m[5];\n        return this;\n    };\n    Point.prototype.toArray = function (out) {\n        out[0] = this.x;\n        out[1] = this.y;\n        return out;\n    };\n    Point.prototype.fromArray = function (input) {\n        this.x = input[0];\n        this.y = input[1];\n    };\n    Point.set = function (p, x, y) {\n        p.x = x;\n        p.y = y;\n    };\n    Point.copy = function (p, p2) {\n        p.x = p2.x;\n        p.y = p2.y;\n    };\n    Point.len = function (p) {\n        return Math.sqrt(p.x * p.x + p.y * p.y);\n    };\n    Point.lenSquare = function (p) {\n        return p.x * p.x + p.y * p.y;\n    };\n    Point.dot = function (p0, p1) {\n        return p0.x * p1.x + p0.y * p1.y;\n    };\n    Point.add = function (out, p0, p1) {\n        out.x = p0.x + p1.x;\n        out.y = p0.y + p1.y;\n    };\n    Point.sub = function (out, p0, p1) {\n        out.x = p0.x - p1.x;\n        out.y = p0.y - p1.y;\n    };\n    Point.scale = function (out, p0, scalar) {\n        out.x = p0.x * scalar;\n        out.y = p0.y * scalar;\n    };\n    Point.scaleAndAdd = function (out, p0, p1, scalar) {\n        out.x = p0.x + p1.x * scalar;\n        out.y = p0.y + p1.y * scalar;\n    };\n    Point.lerp = function (out, p0, p1, t) {\n        var onet = 1 - t;\n        out.x = onet * p0.x + t * p1.x;\n        out.y = onet * p0.y + t * p1.y;\n    };\n    return Point;\n}());\nexport default Point;\n","import * as matrix from './matrix';\nimport Point from './Point';\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar lt = new Point();\nvar rb = new Point();\nvar lb = new Point();\nvar rt = new Point();\nvar minTv = new Point();\nvar maxTv = new Point();\nvar BoundingRect = (function () {\n    function BoundingRect(x, y, width, height) {\n        if (width < 0 && isFinite(width)) {\n            x = x + width;\n            width = -width;\n        }\n        if (height < 0 && isFinite(height)) {\n            y = y + height;\n            height = -height;\n        }\n        this.x = x;\n        this.y = y;\n        this.width = width;\n        this.height = height;\n    }\n    BoundingRect.prototype.union = function (other) {\n        var x = mathMin(other.x, this.x);\n        var y = mathMin(other.y, this.y);\n        if (isFinite(this.x) && isFinite(this.width)) {\n            this.width = mathMax(other.x + other.width, this.x + this.width) - x;\n        }\n        else {\n            this.width = other.width;\n        }\n        if (isFinite(this.y) && isFinite(this.height)) {\n            this.height = mathMax(other.y + other.height, this.y + this.height) - y;\n        }\n        else {\n            this.height = other.height;\n        }\n        this.x = x;\n        this.y = y;\n    };\n    BoundingRect.prototype.applyTransform = function (m) {\n        BoundingRect.applyTransform(this, this, m);\n    };\n    BoundingRect.prototype.calculateTransform = function (b) {\n        var a = this;\n        var sx = b.width / a.width;\n        var sy = b.height / a.height;\n        var m = matrix.create();\n        matrix.translate(m, m, [-a.x, -a.y]);\n        matrix.scale(m, m, [sx, sy]);\n        matrix.translate(m, m, [b.x, b.y]);\n        return m;\n    };\n    BoundingRect.prototype.intersect = function (b, mtv) {\n        if (!b) {\n            return false;\n        }\n        if (!(b instanceof BoundingRect)) {\n            b = BoundingRect.create(b);\n        }\n        var a = this;\n        var ax0 = a.x;\n        var ax1 = a.x + a.width;\n        var ay0 = a.y;\n        var ay1 = a.y + a.height;\n        var bx0 = b.x;\n        var bx1 = b.x + b.width;\n        var by0 = b.y;\n        var by1 = b.y + b.height;\n        var overlap = !(ax1 < bx0 || bx1 < ax0 || ay1 < by0 || by1 < ay0);\n        if (mtv) {\n            var dMin = Infinity;\n            var dMax = 0;\n            var d0 = Math.abs(ax1 - bx0);\n            var d1 = Math.abs(bx1 - ax0);\n            var d2 = Math.abs(ay1 - by0);\n            var d3 = Math.abs(by1 - ay0);\n            var dx = Math.min(d0, d1);\n            var dy = Math.min(d2, d3);\n            if (ax1 < bx0 || bx1 < ax0) {\n                if (dx > dMax) {\n                    dMax = dx;\n                    if (d0 < d1) {\n                        Point.set(maxTv, -d0, 0);\n                    }\n                    else {\n                        Point.set(maxTv, d1, 0);\n                    }\n                }\n            }\n            else {\n                if (dx < dMin) {\n                    dMin = dx;\n                    if (d0 < d1) {\n                        Point.set(minTv, d0, 0);\n                    }\n                    else {\n                        Point.set(minTv, -d1, 0);\n                    }\n                }\n            }\n            if (ay1 < by0 || by1 < ay0) {\n                if (dy > dMax) {\n                    dMax = dy;\n                    if (d2 < d3) {\n                        Point.set(maxTv, 0, -d2);\n                    }\n                    else {\n                        Point.set(maxTv, 0, d3);\n                    }\n                }\n            }\n            else {\n                if (dx < dMin) {\n                    dMin = dx;\n                    if (d2 < d3) {\n                        Point.set(minTv, 0, d2);\n                    }\n                    else {\n                        Point.set(minTv, 0, -d3);\n                    }\n                }\n            }\n        }\n        if (mtv) {\n            Point.copy(mtv, overlap ? minTv : maxTv);\n        }\n        return overlap;\n    };\n    BoundingRect.prototype.contain = function (x, y) {\n        var rect = this;\n        return x >= rect.x\n            && x <= (rect.x + rect.width)\n            && y >= rect.y\n            && y <= (rect.y + rect.height);\n    };\n    BoundingRect.prototype.clone = function () {\n        return new BoundingRect(this.x, this.y, this.width, this.height);\n    };\n    BoundingRect.prototype.copy = function (other) {\n        BoundingRect.copy(this, other);\n    };\n    BoundingRect.prototype.plain = function () {\n        return {\n            x: this.x,\n            y: this.y,\n            width: this.width,\n            height: this.height\n        };\n    };\n    BoundingRect.prototype.isFinite = function () {\n        return isFinite(this.x)\n            && isFinite(this.y)\n            && isFinite(this.width)\n            && isFinite(this.height);\n    };\n    BoundingRect.prototype.isZero = function () {\n        return this.width === 0 || this.height === 0;\n    };\n    BoundingRect.create = function (rect) {\n        return new BoundingRect(rect.x, rect.y, rect.width, rect.height);\n    };\n    BoundingRect.copy = function (target, source) {\n        target.x = source.x;\n        target.y = source.y;\n        target.width = source.width;\n        target.height = source.height;\n    };\n    BoundingRect.applyTransform = function (target, source, m) {\n        if (!m) {\n            if (target !== source) {\n                BoundingRect.copy(target, source);\n            }\n            return;\n        }\n        if (m[1] < 1e-5 && m[1] > -1e-5 && m[2] < 1e-5 && m[2] > -1e-5) {\n            var sx = m[0];\n            var sy = m[3];\n            var tx = m[4];\n            var ty = m[5];\n            target.x = source.x * sx + tx;\n            target.y = source.y * sy + ty;\n            target.width = source.width * sx;\n            target.height = source.height * sy;\n            if (target.width < 0) {\n                target.x += target.width;\n                target.width = -target.width;\n            }\n            if (target.height < 0) {\n                target.y += target.height;\n                target.height = -target.height;\n            }\n            return;\n        }\n        lt.x = lb.x = source.x;\n        lt.y = rt.y = source.y;\n        rb.x = rt.x = source.x + source.width;\n        rb.y = lb.y = source.y + source.height;\n        lt.transform(m);\n        rt.transform(m);\n        rb.transform(m);\n        lb.transform(m);\n        target.x = mathMin(lt.x, rb.x, lb.x, rt.x);\n        target.y = mathMin(lt.y, rb.y, lb.y, rt.y);\n        var maxX = mathMax(lt.x, rb.x, lb.x, rt.x);\n        var maxY = mathMax(lt.y, rb.y, lb.y, rt.y);\n        target.width = maxX - target.x;\n        target.height = maxY - target.y;\n    };\n    return BoundingRect;\n}());\nexport default BoundingRect;\n","import BoundingRect from '../core/BoundingRect';\nimport { createCanvas } from '../core/util';\nimport LRU from '../core/LRU';\nvar textWidthCache = {};\nexport var DEFAULT_FONT = '12px sans-serif';\nvar _ctx;\nvar _cachedFont;\nfunction defaultMeasureText(text, font) {\n    if (!_ctx) {\n        _ctx = createCanvas().getContext('2d');\n    }\n    if (_cachedFont !== font) {\n        _cachedFont = _ctx.font = font || DEFAULT_FONT;\n    }\n    return _ctx.measureText(text);\n}\nvar methods = {\n    measureText: defaultMeasureText\n};\nexport function $override(name, fn) {\n    methods[name] = fn;\n}\nexport function getWidth(text, font) {\n    font = font || DEFAULT_FONT;\n    var cacheOfFont = textWidthCache[font];\n    if (!cacheOfFont) {\n        cacheOfFont = textWidthCache[font] = new LRU(500);\n    }\n    var width = cacheOfFont.get(text);\n    if (width == null) {\n        width = methods.measureText(text, font).width;\n        cacheOfFont.put(text, width);\n    }\n    return width;\n}\nexport function innerGetBoundingRect(text, font, textAlign, textBaseline) {\n    var width = getWidth(text, font);\n    var height = getLineHeight(font);\n    var x = adjustTextX(0, width, textAlign);\n    var y = adjustTextY(0, height, textBaseline);\n    var rect = new BoundingRect(x, y, width, height);\n    return rect;\n}\nexport function getBoundingRect(text, font, textAlign, textBaseline) {\n    var textLines = ((text || '') + '').split('\\n');\n    var len = textLines.length;\n    if (len === 1) {\n        return innerGetBoundingRect(textLines[0], font, textAlign, textBaseline);\n    }\n    else {\n        var uniondRect = new BoundingRect(0, 0, 0, 0);\n        for (var i = 0; i < textLines.length; i++) {\n            var rect = innerGetBoundingRect(textLines[i], font, textAlign, textBaseline);\n            i === 0 ? uniondRect.copy(rect) : uniondRect.union(rect);\n        }\n        return uniondRect;\n    }\n}\nexport function adjustTextX(x, width, textAlign) {\n    if (textAlign === 'right') {\n        x -= width;\n    }\n    else if (textAlign === 'center') {\n        x -= width / 2;\n    }\n    return x;\n}\nexport function adjustTextY(y, height, verticalAlign) {\n    if (verticalAlign === 'middle') {\n        y -= height / 2;\n    }\n    else if (verticalAlign === 'bottom') {\n        y -= height;\n    }\n    return y;\n}\nexport function getLineHeight(font) {\n    return getWidth('国', font);\n}\nexport function measureText(text, font) {\n    return methods.measureText(text, font);\n}\nexport function parsePercent(value, maxValue) {\n    if (typeof value === 'string') {\n        if (value.lastIndexOf('%') >= 0) {\n            return parseFloat(value) / 100 * maxValue;\n        }\n        return parseFloat(value);\n    }\n    return value;\n}\nexport function calculateTextPosition(out, opts, rect) {\n    var textPosition = opts.position || 'inside';\n    var distance = opts.distance != null ? opts.distance : 5;\n    var height = rect.height;\n    var width = rect.width;\n    var halfHeight = height / 2;\n    var x = rect.x;\n    var y = rect.y;\n    var textAlign = 'left';\n    var textVerticalAlign = 'top';\n    if (textPosition instanceof Array) {\n        x += parsePercent(textPosition[0], rect.width);\n        y += parsePercent(textPosition[1], rect.height);\n        textAlign = null;\n        textVerticalAlign = null;\n    }\n    else {\n        switch (textPosition) {\n            case 'left':\n                x -= distance;\n                y += halfHeight;\n                textAlign = 'right';\n                textVerticalAlign = 'middle';\n                break;\n            case 'right':\n                x += distance + width;\n                y += halfHeight;\n                textVerticalAlign = 'middle';\n                break;\n            case 'top':\n                x += width / 2;\n                y -= distance;\n                textAlign = 'center';\n                textVerticalAlign = 'bottom';\n                break;\n            case 'bottom':\n                x += width / 2;\n                y += height + distance;\n                textAlign = 'center';\n                break;\n            case 'inside':\n                x += width / 2;\n                y += halfHeight;\n                textAlign = 'center';\n                textVerticalAlign = 'middle';\n                break;\n            case 'insideLeft':\n                x += distance;\n                y += halfHeight;\n                textVerticalAlign = 'middle';\n                break;\n            case 'insideRight':\n                x += width - distance;\n                y += halfHeight;\n                textAlign = 'right';\n                textVerticalAlign = 'middle';\n                break;\n            case 'insideTop':\n                x += width / 2;\n                y += distance;\n                textAlign = 'center';\n                break;\n            case 'insideBottom':\n                x += width / 2;\n                y += height - distance;\n                textAlign = 'center';\n                textVerticalAlign = 'bottom';\n                break;\n            case 'insideTopLeft':\n                x += distance;\n                y += distance;\n                break;\n            case 'insideTopRight':\n                x += width - distance;\n                y += distance;\n                textAlign = 'right';\n                break;\n            case 'insideBottomLeft':\n                x += distance;\n                y += height - distance;\n                textVerticalAlign = 'bottom';\n                break;\n            case 'insideBottomRight':\n                x += width - distance;\n                y += height - distance;\n                textAlign = 'right';\n                textVerticalAlign = 'bottom';\n                break;\n        }\n    }\n    out = out || {};\n    out.x = x;\n    out.y = y;\n    out.align = textAlign;\n    out.verticalAlign = textVerticalAlign;\n    return out;\n}\n","var dpr = 1;\nif (typeof window !== 'undefined') {\n    dpr = Math.max(window.devicePixelRatio\n        || (window.screen && window.screen.deviceXDPI / window.screen.logicalXDPI)\n        || 1, 1);\n}\nexport var debugMode = 0;\nexport var devicePixelRatio = dpr;\nexport var DARK_MODE_THRESHOLD = 0.4;\nexport var DARK_LABEL_COLOR = '#333';\nexport var LIGHT_LABEL_COLOR = '#ccc';\nexport var LIGHTER_LABEL_COLOR = '#eee';\n","import Transformable from './core/Transformable';\nimport Animator, { cloneValue } from './animation/Animator';\nimport BoundingRect from './core/BoundingRect';\nimport Eventful from './core/Eventful';\nimport { calculateTextPosition, parsePercent } from './contain/text';\nimport { guid, isObject, keys, extend, indexOf, logError, mixin, isArrayLike, isTypedArray } from './core/util';\nimport { LIGHT_LABEL_COLOR, DARK_LABEL_COLOR } from './config';\nimport { parse, stringify } from './tool/color';\nimport env from './core/env';\nexport var PRESERVED_NORMAL_STATE = '__zr_normal__';\nvar PRIMARY_STATES_KEYS = ['x', 'y', 'scaleX', 'scaleY', 'originX', 'originY', 'rotation', 'ignore'];\nvar DEFAULT_ANIMATABLE_MAP = {\n    x: true,\n    y: true,\n    scaleX: true,\n    scaleY: true,\n    originX: true,\n    originY: true,\n    rotation: true,\n    ignore: false\n};\nvar tmpTextPosCalcRes = {};\nvar tmpBoundingRect = new BoundingRect(0, 0, 0, 0);\nvar Element = (function () {\n    function Element(props) {\n        this.id = guid();\n        this.animators = [];\n        this.currentStates = [];\n        this.states = {};\n        this._init(props);\n    }\n    Element.prototype._init = function (props) {\n        this.attr(props);\n    };\n    Element.prototype.drift = function (dx, dy, e) {\n        switch (this.draggable) {\n            case 'horizontal':\n                dy = 0;\n                break;\n            case 'vertical':\n                dx = 0;\n                break;\n        }\n        var m = this.transform;\n        if (!m) {\n            m = this.transform = [1, 0, 0, 1, 0, 0];\n        }\n        m[4] += dx;\n        m[5] += dy;\n        this.decomposeTransform();\n        this.markRedraw();\n    };\n    Element.prototype.beforeUpdate = function () { };\n    Element.prototype.afterUpdate = function () { };\n    Element.prototype.update = function () {\n        this.updateTransform();\n        if (this.__dirty) {\n            this.updateInnerText();\n        }\n    };\n    Element.prototype.updateInnerText = function (forceUpdate) {\n        var textEl = this._textContent;\n        if (textEl && (!textEl.ignore || forceUpdate)) {\n            if (!this.textConfig) {\n                this.textConfig = {};\n            }\n            var textConfig = this.textConfig;\n            var isLocal = textConfig.local;\n            var attachedTransform = textEl.attachedTransform;\n            var textAlign = void 0;\n            var textVerticalAlign = void 0;\n            var textStyleChanged = false;\n            if (isLocal) {\n                attachedTransform.parent = this;\n            }\n            else {\n                attachedTransform.parent = null;\n            }\n            var innerOrigin = false;\n            attachedTransform.x = textEl.x;\n            attachedTransform.y = textEl.y;\n            attachedTransform.originX = textEl.originX;\n            attachedTransform.originY = textEl.originY;\n            attachedTransform.rotation = textEl.rotation;\n            attachedTransform.scaleX = textEl.scaleX;\n            attachedTransform.scaleY = textEl.scaleY;\n            if (textConfig.position != null) {\n                var layoutRect = tmpBoundingRect;\n                if (textConfig.layoutRect) {\n                    layoutRect.copy(textConfig.layoutRect);\n                }\n                else {\n                    layoutRect.copy(this.getBoundingRect());\n                }\n                if (!isLocal) {\n                    layoutRect.applyTransform(this.transform);\n                }\n                if (this.calculateTextPosition) {\n                    this.calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\n                }\n                else {\n                    calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\n                }\n                attachedTransform.x = tmpTextPosCalcRes.x;\n                attachedTransform.y = tmpTextPosCalcRes.y;\n                textAlign = tmpTextPosCalcRes.align;\n                textVerticalAlign = tmpTextPosCalcRes.verticalAlign;\n                var textOrigin = textConfig.origin;\n                if (textOrigin && textConfig.rotation != null) {\n                    var relOriginX = void 0;\n                    var relOriginY = void 0;\n                    if (textOrigin === 'center') {\n                        relOriginX = layoutRect.width * 0.5;\n                        relOriginY = layoutRect.height * 0.5;\n                    }\n                    else {\n                        relOriginX = parsePercent(textOrigin[0], layoutRect.width);\n                        relOriginY = parsePercent(textOrigin[1], layoutRect.height);\n                    }\n                    innerOrigin = true;\n                    attachedTransform.originX = -attachedTransform.x + relOriginX + (isLocal ? 0 : layoutRect.x);\n                    attachedTransform.originY = -attachedTransform.y + relOriginY + (isLocal ? 0 : layoutRect.y);\n                }\n            }\n            if (textConfig.rotation != null) {\n                attachedTransform.rotation = textConfig.rotation;\n            }\n            var textOffset = textConfig.offset;\n            if (textOffset) {\n                attachedTransform.x += textOffset[0];\n                attachedTransform.y += textOffset[1];\n                if (!innerOrigin) {\n                    attachedTransform.originX = -textOffset[0];\n                    attachedTransform.originY = -textOffset[1];\n                }\n            }\n            var isInside = textConfig.inside == null\n                ? (typeof textConfig.position === 'string' && textConfig.position.indexOf('inside') >= 0)\n                : textConfig.inside;\n            var innerTextDefaultStyle = this._innerTextDefaultStyle || (this._innerTextDefaultStyle = {});\n            var textFill = void 0;\n            var textStroke = void 0;\n            var autoStroke = void 0;\n            if (isInside && this.canBeInsideText()) {\n                textFill = textConfig.insideFill;\n                textStroke = textConfig.insideStroke;\n                if (textFill == null || textFill === 'auto') {\n                    textFill = this.getInsideTextFill();\n                }\n                if (textStroke == null || textStroke === 'auto') {\n                    textStroke = this.getInsideTextStroke(textFill);\n                    autoStroke = true;\n                }\n            }\n            else {\n                textFill = textConfig.outsideFill;\n                textStroke = textConfig.outsideStroke;\n                if (textFill == null || textFill === 'auto') {\n                    textFill = this.getOutsideFill();\n                }\n                if (textStroke == null || textStroke === 'auto') {\n                    textStroke = this.getOutsideStroke(textFill);\n                    autoStroke = true;\n                }\n            }\n            textFill = textFill || '#000';\n            if (textFill !== innerTextDefaultStyle.fill\n                || textStroke !== innerTextDefaultStyle.stroke\n                || autoStroke !== innerTextDefaultStyle.autoStroke\n                || textAlign !== innerTextDefaultStyle.align\n                || textVerticalAlign !== innerTextDefaultStyle.verticalAlign) {\n                textStyleChanged = true;\n                innerTextDefaultStyle.fill = textFill;\n                innerTextDefaultStyle.stroke = textStroke;\n                innerTextDefaultStyle.autoStroke = autoStroke;\n                innerTextDefaultStyle.align = textAlign;\n                innerTextDefaultStyle.verticalAlign = textVerticalAlign;\n                textEl.setDefaultTextStyle(innerTextDefaultStyle);\n            }\n            if (textStyleChanged) {\n                textEl.dirtyStyle();\n            }\n            textEl.markRedraw();\n        }\n    };\n    Element.prototype.canBeInsideText = function () {\n        return true;\n    };\n    Element.prototype.getInsideTextFill = function () {\n        return '#fff';\n    };\n    Element.prototype.getInsideTextStroke = function (textFill) {\n        return '#000';\n    };\n    Element.prototype.getOutsideFill = function () {\n        return this.__zr && this.__zr.isDarkMode() ? LIGHT_LABEL_COLOR : DARK_LABEL_COLOR;\n    };\n    Element.prototype.getOutsideStroke = function (textFill) {\n        var backgroundColor = this.__zr && this.__zr.getBackgroundColor();\n        var colorArr = typeof backgroundColor === 'string' && parse(backgroundColor);\n        if (!colorArr) {\n            colorArr = [255, 255, 255, 1];\n        }\n        var alpha = colorArr[3];\n        var isDark = this.__zr.isDarkMode();\n        for (var i = 0; i < 3; i++) {\n            colorArr[i] = colorArr[i] * alpha + (isDark ? 0 : 255) * (1 - alpha);\n        }\n        colorArr[3] = 1;\n        return stringify(colorArr, 'rgba');\n    };\n    Element.prototype.traverse = function (cb, context) { };\n    Element.prototype.attrKV = function (key, value) {\n        if (key === 'textConfig') {\n            this.setTextConfig(value);\n        }\n        else if (key === 'textContent') {\n            this.setTextContent(value);\n        }\n        else if (key === 'clipPath') {\n            this.setClipPath(value);\n        }\n        else if (key === 'extra') {\n            this.extra = this.extra || {};\n            extend(this.extra, value);\n        }\n        else {\n            this[key] = value;\n        }\n    };\n    Element.prototype.hide = function () {\n        this.ignore = true;\n        this.markRedraw();\n    };\n    Element.prototype.show = function () {\n        this.ignore = false;\n        this.markRedraw();\n    };\n    Element.prototype.attr = function (keyOrObj, value) {\n        if (typeof keyOrObj === 'string') {\n            this.attrKV(keyOrObj, value);\n        }\n        else if (isObject(keyOrObj)) {\n            var obj = keyOrObj;\n            var keysArr = keys(obj);\n            for (var i = 0; i < keysArr.length; i++) {\n                var key = keysArr[i];\n                this.attrKV(key, keyOrObj[key]);\n            }\n        }\n        this.markRedraw();\n        return this;\n    };\n    Element.prototype.saveCurrentToNormalState = function (toState) {\n        this._innerSaveToNormal(toState);\n        var normalState = this._normalState;\n        for (var i = 0; i < this.animators.length; i++) {\n            var animator = this.animators[i];\n            var fromStateTransition = animator.__fromStateTransition;\n            if (fromStateTransition && fromStateTransition !== PRESERVED_NORMAL_STATE) {\n                continue;\n            }\n            var targetName = animator.targetName;\n            var target = targetName\n                ? normalState[targetName] : normalState;\n            animator.saveFinalToTarget(target);\n        }\n    };\n    Element.prototype._innerSaveToNormal = function (toState) {\n        var normalState = this._normalState;\n        if (!normalState) {\n            normalState = this._normalState = {};\n        }\n        if (toState.textConfig && !normalState.textConfig) {\n            normalState.textConfig = this.textConfig;\n        }\n        this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS);\n    };\n    Element.prototype._savePrimaryToNormal = function (toState, normalState, primaryKeys) {\n        for (var i = 0; i < primaryKeys.length; i++) {\n            var key = primaryKeys[i];\n            if (toState[key] != null && !(key in normalState)) {\n                normalState[key] = this[key];\n            }\n        }\n    };\n    Element.prototype.hasState = function () {\n        return this.currentStates.length > 0;\n    };\n    Element.prototype.getState = function (name) {\n        return this.states[name];\n    };\n    Element.prototype.ensureState = function (name) {\n        var states = this.states;\n        if (!states[name]) {\n            states[name] = {};\n        }\n        return states[name];\n    };\n    Element.prototype.clearStates = function (noAnimation) {\n        this.useState(PRESERVED_NORMAL_STATE, false, noAnimation);\n    };\n    Element.prototype.useState = function (stateName, keepCurrentStates, noAnimation) {\n        var toNormalState = stateName === PRESERVED_NORMAL_STATE;\n        var hasStates = this.hasState();\n        if (!hasStates && toNormalState) {\n            return;\n        }\n        var currentStates = this.currentStates;\n        var animationCfg = this.stateTransition;\n        if (indexOf(currentStates, stateName) >= 0 && (keepCurrentStates || currentStates.length === 1)) {\n            return;\n        }\n        var state;\n        if (this.stateProxy && !toNormalState) {\n            state = this.stateProxy(stateName);\n        }\n        if (!state) {\n            state = (this.states && this.states[stateName]);\n        }\n        if (!state && !toNormalState) {\n            logError(\"State \" + stateName + \" not exists.\");\n            return;\n        }\n        if (!toNormalState) {\n            this.saveCurrentToNormalState(state);\n        }\n        var useHoverLayer = !!(state && state.hoverLayer);\n        if (useHoverLayer) {\n            this._toggleHoverLayerFlag(true);\n        }\n        this._applyStateObj(stateName, state, this._normalState, keepCurrentStates, !noAnimation && !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\n        if (this._textContent) {\n            this._textContent.useState(stateName, keepCurrentStates);\n        }\n        if (this._textGuide) {\n            this._textGuide.useState(stateName, keepCurrentStates);\n        }\n        if (toNormalState) {\n            this.currentStates = [];\n            this._normalState = {};\n        }\n        else {\n            if (!keepCurrentStates) {\n                this.currentStates = [stateName];\n            }\n            else {\n                this.currentStates.push(stateName);\n            }\n        }\n        this._updateAnimationTargets();\n        this.markRedraw();\n        if (!useHoverLayer && this.__inHover) {\n            this._toggleHoverLayerFlag(false);\n            this.__dirty &= ~Element.REDARAW_BIT;\n        }\n        return state;\n    };\n    Element.prototype.useStates = function (states, noAnimation) {\n        if (!states.length) {\n            this.clearStates();\n        }\n        else {\n            var stateObjects = [];\n            var currentStates = this.currentStates;\n            var len = states.length;\n            var notChange = len === currentStates.length;\n            if (notChange) {\n                for (var i = 0; i < len; i++) {\n                    if (states[i] !== currentStates[i]) {\n                        notChange = false;\n                        break;\n                    }\n                }\n            }\n            if (notChange) {\n                return;\n            }\n            for (var i = 0; i < len; i++) {\n                var stateName = states[i];\n                var stateObj = void 0;\n                if (this.stateProxy) {\n                    stateObj = this.stateProxy(stateName, states);\n                }\n                if (!stateObj) {\n                    stateObj = this.states[stateName];\n                }\n                if (stateObj) {\n                    stateObjects.push(stateObj);\n                }\n            }\n            var useHoverLayer = !!(stateObjects[len - 1] && stateObjects[len - 1].hoverLayer);\n            if (useHoverLayer) {\n                this._toggleHoverLayerFlag(true);\n            }\n            var mergedState = this._mergeStates(stateObjects);\n            var animationCfg = this.stateTransition;\n            this.saveCurrentToNormalState(mergedState);\n            this._applyStateObj(states.join(','), mergedState, this._normalState, false, !noAnimation && !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\n            if (this._textContent) {\n                this._textContent.useStates(states);\n            }\n            if (this._textGuide) {\n                this._textGuide.useStates(states);\n            }\n            this._updateAnimationTargets();\n            this.currentStates = states.slice();\n            this.markRedraw();\n            if (!useHoverLayer && this.__inHover) {\n                this._toggleHoverLayerFlag(false);\n                this.__dirty &= ~Element.REDARAW_BIT;\n            }\n        }\n    };\n    Element.prototype._updateAnimationTargets = function () {\n        for (var i = 0; i < this.animators.length; i++) {\n            var animator = this.animators[i];\n            if (animator.targetName) {\n                animator.changeTarget(this[animator.targetName]);\n            }\n        }\n    };\n    Element.prototype.removeState = function (state) {\n        var idx = indexOf(this.currentStates, state);\n        if (idx >= 0) {\n            var currentStates = this.currentStates.slice();\n            currentStates.splice(idx, 1);\n            this.useStates(currentStates);\n        }\n    };\n    Element.prototype.replaceState = function (oldState, newState, forceAdd) {\n        var currentStates = this.currentStates.slice();\n        var idx = indexOf(currentStates, oldState);\n        var newStateExists = indexOf(currentStates, newState) >= 0;\n        if (idx >= 0) {\n            if (!newStateExists) {\n                currentStates[idx] = newState;\n            }\n            else {\n                currentStates.splice(idx, 1);\n            }\n        }\n        else if (forceAdd && !newStateExists) {\n            currentStates.push(newState);\n        }\n        this.useStates(currentStates);\n    };\n    Element.prototype.toggleState = function (state, enable) {\n        if (enable) {\n            this.useState(state, true);\n        }\n        else {\n            this.removeState(state);\n        }\n    };\n    Element.prototype._mergeStates = function (states) {\n        var mergedState = {};\n        var mergedTextConfig;\n        for (var i = 0; i < states.length; i++) {\n            var state = states[i];\n            extend(mergedState, state);\n            if (state.textConfig) {\n                mergedTextConfig = mergedTextConfig || {};\n                extend(mergedTextConfig, state.textConfig);\n            }\n        }\n        if (mergedTextConfig) {\n            mergedState.textConfig = mergedTextConfig;\n        }\n        return mergedState;\n    };\n    Element.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\n        var needsRestoreToNormal = !(state && keepCurrentStates);\n        if (state && state.textConfig) {\n            this.textConfig = extend({}, keepCurrentStates ? this.textConfig : normalState.textConfig);\n            extend(this.textConfig, state.textConfig);\n        }\n        else if (needsRestoreToNormal) {\n            if (normalState.textConfig) {\n                this.textConfig = normalState.textConfig;\n            }\n        }\n        var transitionTarget = {};\n        var hasTransition = false;\n        for (var i = 0; i < PRIMARY_STATES_KEYS.length; i++) {\n            var key = PRIMARY_STATES_KEYS[i];\n            var propNeedsTransition = transition && DEFAULT_ANIMATABLE_MAP[key];\n            if (state && state[key] != null) {\n                if (propNeedsTransition) {\n                    hasTransition = true;\n                    transitionTarget[key] = state[key];\n                }\n                else {\n                    this[key] = state[key];\n                }\n            }\n            else if (needsRestoreToNormal) {\n                if (normalState[key] != null) {\n                    if (propNeedsTransition) {\n                        hasTransition = true;\n                        transitionTarget[key] = normalState[key];\n                    }\n                    else {\n                        this[key] = normalState[key];\n                    }\n                }\n            }\n        }\n        if (!transition) {\n            for (var i = 0; i < this.animators.length; i++) {\n                var animator = this.animators[i];\n                var targetName = animator.targetName;\n                animator.__changeFinalValue(targetName\n                    ? (state || normalState)[targetName]\n                    : (state || normalState));\n            }\n        }\n        if (hasTransition) {\n            this._transitionState(stateName, transitionTarget, animationCfg);\n        }\n    };\n    Element.prototype._attachComponent = function (componentEl) {\n        if (componentEl.__zr && !componentEl.__hostTarget) {\n            throw new Error('Text element has been added to zrender.');\n        }\n        if (componentEl === this) {\n            throw new Error('Recursive component attachment.');\n        }\n        var zr = this.__zr;\n        if (zr) {\n            componentEl.addSelfToZr(zr);\n        }\n        componentEl.__zr = zr;\n        componentEl.__hostTarget = this;\n    };\n    Element.prototype._detachComponent = function (componentEl) {\n        if (componentEl.__zr) {\n            componentEl.removeSelfFromZr(componentEl.__zr);\n        }\n        componentEl.__zr = null;\n        componentEl.__hostTarget = null;\n    };\n    Element.prototype.getClipPath = function () {\n        return this._clipPath;\n    };\n    Element.prototype.setClipPath = function (clipPath) {\n        if (this._clipPath && this._clipPath !== clipPath) {\n            this.removeClipPath();\n        }\n        this._attachComponent(clipPath);\n        this._clipPath = clipPath;\n        this.markRedraw();\n    };\n    Element.prototype.removeClipPath = function () {\n        var clipPath = this._clipPath;\n        if (clipPath) {\n            this._detachComponent(clipPath);\n            this._clipPath = null;\n            this.markRedraw();\n        }\n    };\n    Element.prototype.getTextContent = function () {\n        return this._textContent;\n    };\n    Element.prototype.setTextContent = function (textEl) {\n        var previousTextContent = this._textContent;\n        if (previousTextContent === textEl) {\n            return;\n        }\n        if (previousTextContent && previousTextContent !== textEl) {\n            this.removeTextContent();\n        }\n        if (textEl.__zr && !textEl.__hostTarget) {\n            throw new Error('Text element has been added to zrender.');\n        }\n        textEl.attachedTransform = new Transformable();\n        this._attachComponent(textEl);\n        this._textContent = textEl;\n        this.markRedraw();\n    };\n    Element.prototype.setTextConfig = function (cfg) {\n        if (!this.textConfig) {\n            this.textConfig = {};\n        }\n        extend(this.textConfig, cfg);\n        this.markRedraw();\n    };\n    Element.prototype.removeTextContent = function () {\n        var textEl = this._textContent;\n        if (textEl) {\n            textEl.attachedTransform = null;\n            this._detachComponent(textEl);\n            this._textContent = null;\n            this._innerTextDefaultStyle = null;\n            this.markRedraw();\n        }\n    };\n    Element.prototype.getTextGuideLine = function () {\n        return this._textGuide;\n    };\n    Element.prototype.setTextGuideLine = function (guideLine) {\n        if (this._textGuide && this._textGuide !== guideLine) {\n            this.removeTextGuideLine();\n        }\n        this._attachComponent(guideLine);\n        this._textGuide = guideLine;\n        this.markRedraw();\n    };\n    Element.prototype.removeTextGuideLine = function () {\n        var textGuide = this._textGuide;\n        if (textGuide) {\n            this._detachComponent(textGuide);\n            this._textGuide = null;\n            this.markRedraw();\n        }\n    };\n    Element.prototype.markRedraw = function () {\n        this.__dirty |= Element.REDARAW_BIT;\n        var zr = this.__zr;\n        if (zr) {\n            if (this.__inHover) {\n                zr.refreshHover();\n            }\n            else {\n                zr.refresh();\n            }\n        }\n        if (this.__hostTarget) {\n            this.__hostTarget.markRedraw();\n        }\n    };\n    Element.prototype.dirty = function () {\n        this.markRedraw();\n    };\n    Element.prototype._toggleHoverLayerFlag = function (inHover) {\n        this.__inHover = inHover;\n        var textContent = this._textContent;\n        var textGuide = this._textGuide;\n        if (textContent) {\n            textContent.__inHover = inHover;\n        }\n        if (textGuide) {\n            textGuide.__inHover = inHover;\n        }\n    };\n    Element.prototype.addSelfToZr = function (zr) {\n        this.__zr = zr;\n        var animators = this.animators;\n        if (animators) {\n            for (var i = 0; i < animators.length; i++) {\n                zr.animation.addAnimator(animators[i]);\n            }\n        }\n        if (this._clipPath) {\n            this._clipPath.addSelfToZr(zr);\n        }\n        if (this._textContent) {\n            this._textContent.addSelfToZr(zr);\n        }\n        if (this._textGuide) {\n            this._textGuide.addSelfToZr(zr);\n        }\n    };\n    Element.prototype.removeSelfFromZr = function (zr) {\n        this.__zr = null;\n        var animators = this.animators;\n        if (animators) {\n            for (var i = 0; i < animators.length; i++) {\n                zr.animation.removeAnimator(animators[i]);\n            }\n        }\n        if (this._clipPath) {\n            this._clipPath.removeSelfFromZr(zr);\n        }\n        if (this._textContent) {\n            this._textContent.removeSelfFromZr(zr);\n        }\n        if (this._textGuide) {\n            this._textGuide.removeSelfFromZr(zr);\n        }\n    };\n    Element.prototype.animate = function (key, loop) {\n        var target = key ? this[key] : this;\n        if (!target) {\n            logError('Property \"'\n                + key\n                + '\" is not existed in element '\n                + this.id);\n            return;\n        }\n        var animator = new Animator(target, loop);\n        this.addAnimator(animator, key);\n        return animator;\n    };\n    Element.prototype.addAnimator = function (animator, key) {\n        var zr = this.__zr;\n        var el = this;\n        animator.during(function () {\n            el.updateDuringAnimation(key);\n        }).done(function () {\n            var animators = el.animators;\n            var idx = indexOf(animators, animator);\n            if (idx >= 0) {\n                animators.splice(idx, 1);\n            }\n        });\n        this.animators.push(animator);\n        if (zr) {\n            zr.animation.addAnimator(animator);\n        }\n        zr && zr.wakeUp();\n    };\n    Element.prototype.updateDuringAnimation = function (key) {\n        this.markRedraw();\n    };\n    Element.prototype.stopAnimation = function (scope, forwardToLast) {\n        var animators = this.animators;\n        var len = animators.length;\n        var leftAnimators = [];\n        for (var i = 0; i < len; i++) {\n            var animator = animators[i];\n            if (!scope || scope === animator.scope) {\n                animator.stop(forwardToLast);\n            }\n            else {\n                leftAnimators.push(animator);\n            }\n        }\n        this.animators = leftAnimators;\n        return this;\n    };\n    Element.prototype.animateTo = function (target, cfg, animationProps) {\n        animateTo(this, target, cfg, animationProps);\n    };\n    Element.prototype.animateFrom = function (target, cfg, animationProps) {\n        animateTo(this, target, cfg, animationProps, true);\n    };\n    Element.prototype._transitionState = function (stateName, target, cfg, animationProps) {\n        var animators = animateTo(this, target, cfg, animationProps);\n        for (var i = 0; i < animators.length; i++) {\n            animators[i].__fromStateTransition = stateName;\n        }\n    };\n    Element.prototype.getBoundingRect = function () {\n        return null;\n    };\n    Element.prototype.getPaintRect = function () {\n        return null;\n    };\n    Element.REDARAW_BIT = 1;\n    Element.initDefaultProps = (function () {\n        var elProto = Element.prototype;\n        elProto.type = 'element';\n        elProto.name = '';\n        elProto.ignore = false;\n        elProto.silent = false;\n        elProto.isGroup = false;\n        elProto.draggable = false;\n        elProto.dragging = false;\n        elProto.ignoreClip = false;\n        elProto.__inHover = false;\n        elProto.__dirty = Element.REDARAW_BIT;\n        var logs = {};\n        function logDeprecatedError(key, xKey, yKey) {\n            if (!logs[key + xKey + yKey]) {\n                console.warn(\"DEPRECATED: '\" + key + \"' has been deprecated. use '\" + xKey + \"', '\" + yKey + \"' instead\");\n                logs[key + xKey + yKey] = true;\n            }\n        }\n        function createLegacyProperty(key, privateKey, xKey, yKey) {\n            Object.defineProperty(elProto, key, {\n                get: function () {\n                    logDeprecatedError(key, xKey, yKey);\n                    if (!this[privateKey]) {\n                        var pos = this[privateKey] = [];\n                        enhanceArray(this, pos);\n                    }\n                    return this[privateKey];\n                },\n                set: function (pos) {\n                    logDeprecatedError(key, xKey, yKey);\n                    this[xKey] = pos[0];\n                    this[yKey] = pos[1];\n                    this[privateKey] = pos;\n                    enhanceArray(this, pos);\n                }\n            });\n            function enhanceArray(self, pos) {\n                Object.defineProperty(pos, 0, {\n                    get: function () {\n                        return self[xKey];\n                    },\n                    set: function (val) {\n                        self[xKey] = val;\n                    }\n                });\n                Object.defineProperty(pos, 1, {\n                    get: function () {\n                        return self[yKey];\n                    },\n                    set: function (val) {\n                        self[yKey] = val;\n                    }\n                });\n            }\n        }\n        if (Object.defineProperty && (!env.browser.ie || env.browser.version > 8)) {\n            createLegacyProperty('position', '_legacyPos', 'x', 'y');\n            createLegacyProperty('scale', '_legacyScale', 'scaleX', 'scaleY');\n            createLegacyProperty('origin', '_legacyOrigin', 'originX', 'originY');\n        }\n    })();\n    return Element;\n}());\nmixin(Element, Eventful);\nmixin(Element, Transformable);\nfunction animateTo(animatable, target, cfg, animationProps, reverse) {\n    cfg = cfg || {};\n    var animators = [];\n    animateToShallow(animatable, '', animatable, target, cfg, animationProps, animators, reverse);\n    var finishCount = animators.length;\n    var doneHappened = false;\n    var cfgDone = cfg.done;\n    var cfgAborted = cfg.aborted;\n    var doneCb = function () {\n        doneHappened = true;\n        finishCount--;\n        if (finishCount <= 0) {\n            doneHappened\n                ? (cfgDone && cfgDone())\n                : (cfgAborted && cfgAborted());\n        }\n    };\n    var abortedCb = function () {\n        finishCount--;\n        if (finishCount <= 0) {\n            doneHappened\n                ? (cfgDone && cfgDone())\n                : (cfgAborted && cfgAborted());\n        }\n    };\n    if (!finishCount) {\n        cfgDone && cfgDone();\n    }\n    if (animators.length > 0 && cfg.during) {\n        animators[0].during(function (target, percent) {\n            cfg.during(percent);\n        });\n    }\n    for (var i = 0; i < animators.length; i++) {\n        var animator = animators[i];\n        if (doneCb) {\n            animator.done(doneCb);\n        }\n        if (abortedCb) {\n            animator.aborted(abortedCb);\n        }\n        animator.start(cfg.easing, cfg.force);\n    }\n    return animators;\n}\nfunction copyArrShallow(source, target, len) {\n    for (var i = 0; i < len; i++) {\n        source[i] = target[i];\n    }\n}\nfunction is2DArray(value) {\n    return isArrayLike(value[0]);\n}\nfunction copyValue(target, source, key) {\n    if (isArrayLike(source[key])) {\n        if (!isArrayLike(target[key])) {\n            target[key] = [];\n        }\n        if (isTypedArray(source[key])) {\n            var len = source[key].length;\n            if (target[key].length !== len) {\n                target[key] = new (source[key].constructor)(len);\n                copyArrShallow(target[key], source[key], len);\n            }\n        }\n        else {\n            var sourceArr = source[key];\n            var targetArr = target[key];\n            var len0 = sourceArr.length;\n            if (is2DArray(sourceArr)) {\n                var len1 = sourceArr[0].length;\n                for (var i = 0; i < len0; i++) {\n                    if (!targetArr[i]) {\n                        targetArr[i] = Array.prototype.slice.call(sourceArr[i]);\n                    }\n                    else {\n                        copyArrShallow(targetArr[i], sourceArr[i], len1);\n                    }\n                }\n            }\n            else {\n                copyArrShallow(targetArr, sourceArr, len0);\n            }\n            targetArr.length = sourceArr.length;\n        }\n    }\n    else {\n        target[key] = source[key];\n    }\n}\nfunction animateToShallow(animatable, topKey, source, target, cfg, animationProps, animators, reverse) {\n    var animatableKeys = [];\n    var changedKeys = [];\n    var targetKeys = keys(target);\n    var duration = cfg.duration;\n    var delay = cfg.delay;\n    var additive = cfg.additive;\n    var setToFinal = cfg.setToFinal;\n    var animateAll = !isObject(animationProps);\n    for (var k = 0; k < targetKeys.length; k++) {\n        var innerKey = targetKeys[k];\n        if (source[innerKey] != null\n            && target[innerKey] != null\n            && (animateAll || animationProps[innerKey])) {\n            if (isObject(target[innerKey]) && !isArrayLike(target[innerKey])) {\n                if (topKey) {\n                    if (!reverse) {\n                        source[innerKey] = target[innerKey];\n                        animatable.updateDuringAnimation(topKey);\n                    }\n                    continue;\n                }\n                animateToShallow(animatable, innerKey, source[innerKey], target[innerKey], cfg, animationProps && animationProps[innerKey], animators, reverse);\n            }\n            else {\n                animatableKeys.push(innerKey);\n                changedKeys.push(innerKey);\n            }\n        }\n        else if (!reverse) {\n            source[innerKey] = target[innerKey];\n            animatable.updateDuringAnimation(topKey);\n            changedKeys.push(innerKey);\n        }\n    }\n    var keyLen = animatableKeys.length;\n    if (keyLen > 0\n        || (cfg.force && !animators.length)) {\n        var existsAnimators = animatable.animators;\n        var existsAnimatorsOnSameTarget = [];\n        for (var i = 0; i < existsAnimators.length; i++) {\n            if (existsAnimators[i].targetName === topKey) {\n                existsAnimatorsOnSameTarget.push(existsAnimators[i]);\n            }\n        }\n        if (!additive && existsAnimatorsOnSameTarget.length) {\n            for (var i = 0; i < existsAnimatorsOnSameTarget.length; i++) {\n                var allAborted = existsAnimatorsOnSameTarget[i].stopTracks(changedKeys);\n                if (allAborted) {\n                    var idx = indexOf(existsAnimators, existsAnimatorsOnSameTarget[i]);\n                    existsAnimators.splice(idx, 1);\n                }\n            }\n        }\n        var revertedSource = void 0;\n        var reversedTarget = void 0;\n        var sourceClone = void 0;\n        if (reverse) {\n            reversedTarget = {};\n            if (setToFinal) {\n                revertedSource = {};\n            }\n            for (var i = 0; i < keyLen; i++) {\n                var innerKey = animatableKeys[i];\n                reversedTarget[innerKey] = source[innerKey];\n                if (setToFinal) {\n                    revertedSource[innerKey] = target[innerKey];\n                }\n                else {\n                    source[innerKey] = target[innerKey];\n                }\n            }\n        }\n        else if (setToFinal) {\n            sourceClone = {};\n            for (var i = 0; i < keyLen; i++) {\n                var innerKey = animatableKeys[i];\n                sourceClone[innerKey] = cloneValue(source[innerKey]);\n                copyValue(source, target, innerKey);\n            }\n        }\n        var animator = new Animator(source, false, additive ? existsAnimatorsOnSameTarget : null);\n        animator.targetName = topKey;\n        if (cfg.scope) {\n            animator.scope = cfg.scope;\n        }\n        if (setToFinal && revertedSource) {\n            animator.whenWithKeys(0, revertedSource, animatableKeys);\n        }\n        if (sourceClone) {\n            animator.whenWithKeys(0, sourceClone, animatableKeys);\n        }\n        animator.whenWithKeys(duration == null ? 500 : duration, reverse ? reversedTarget : target, animatableKeys).delay(delay || 0);\n        animatable.addAnimator(animator, topKey);\n        animators.push(animator);\n    }\n}\nexport default Element;\n","var DEFAULT_MIN_MERGE = 32;\nvar DEFAULT_MIN_GALLOPING = 7;\nvar DEFAULT_TMP_STORAGE_LENGTH = 256;\nfunction minRunLength(n) {\n    var r = 0;\n    while (n >= DEFAULT_MIN_MERGE) {\n        r |= n & 1;\n        n >>= 1;\n    }\n    return n + r;\n}\nfunction makeAscendingRun(array, lo, hi, compare) {\n    var runHi = lo + 1;\n    if (runHi === hi) {\n        return 1;\n    }\n    if (compare(array[runHi++], array[lo]) < 0) {\n        while (runHi < hi && compare(array[runHi], array[runHi - 1]) < 0) {\n            runHi++;\n        }\n        reverseRun(array, lo, runHi);\n    }\n    else {\n        while (runHi < hi && compare(array[runHi], array[runHi - 1]) >= 0) {\n            runHi++;\n        }\n    }\n    return runHi - lo;\n}\nfunction reverseRun(array, lo, hi) {\n    hi--;\n    while (lo < hi) {\n        var t = array[lo];\n        array[lo++] = array[hi];\n        array[hi--] = t;\n    }\n}\nfunction binaryInsertionSort(array, lo, hi, start, compare) {\n    if (start === lo) {\n        start++;\n    }\n    for (; start < hi; start++) {\n        var pivot = array[start];\n        var left = lo;\n        var right = start;\n        var mid;\n        while (left < right) {\n            mid = left + right >>> 1;\n            if (compare(pivot, array[mid]) < 0) {\n                right = mid;\n            }\n            else {\n                left = mid + 1;\n            }\n        }\n        var n = start - left;\n        switch (n) {\n            case 3:\n                array[left + 3] = array[left + 2];\n            case 2:\n                array[left + 2] = array[left + 1];\n            case 1:\n                array[left + 1] = array[left];\n                break;\n            default:\n                while (n > 0) {\n                    array[left + n] = array[left + n - 1];\n                    n--;\n                }\n        }\n        array[left] = pivot;\n    }\n}\nfunction gallopLeft(value, array, start, length, hint, compare) {\n    var lastOffset = 0;\n    var maxOffset = 0;\n    var offset = 1;\n    if (compare(value, array[start + hint]) > 0) {\n        maxOffset = length - hint;\n        while (offset < maxOffset && compare(value, array[start + hint + offset]) > 0) {\n            lastOffset = offset;\n            offset = (offset << 1) + 1;\n            if (offset <= 0) {\n                offset = maxOffset;\n            }\n        }\n        if (offset > maxOffset) {\n            offset = maxOffset;\n        }\n        lastOffset += hint;\n        offset += hint;\n    }\n    else {\n        maxOffset = hint + 1;\n        while (offset < maxOffset && compare(value, array[start + hint - offset]) <= 0) {\n            lastOffset = offset;\n            offset = (offset << 1) + 1;\n            if (offset <= 0) {\n                offset = maxOffset;\n            }\n        }\n        if (offset > maxOffset) {\n            offset = maxOffset;\n        }\n        var tmp = lastOffset;\n        lastOffset = hint - offset;\n        offset = hint - tmp;\n    }\n    lastOffset++;\n    while (lastOffset < offset) {\n        var m = lastOffset + (offset - lastOffset >>> 1);\n        if (compare(value, array[start + m]) > 0) {\n            lastOffset = m + 1;\n        }\n        else {\n            offset = m;\n        }\n    }\n    return offset;\n}\nfunction gallopRight(value, array, start, length, hint, compare) {\n    var lastOffset = 0;\n    var maxOffset = 0;\n    var offset = 1;\n    if (compare(value, array[start + hint]) < 0) {\n        maxOffset = hint + 1;\n        while (offset < maxOffset && compare(value, array[start + hint - offset]) < 0) {\n            lastOffset = offset;\n            offset = (offset << 1) + 1;\n            if (offset <= 0) {\n                offset = maxOffset;\n            }\n        }\n        if (offset > maxOffset) {\n            offset = maxOffset;\n        }\n        var tmp = lastOffset;\n        lastOffset = hint - offset;\n        offset = hint - tmp;\n    }\n    else {\n        maxOffset = length - hint;\n        while (offset < maxOffset && compare(value, array[start + hint + offset]) >= 0) {\n            lastOffset = offset;\n            offset = (offset << 1) + 1;\n            if (offset <= 0) {\n                offset = maxOffset;\n            }\n        }\n        if (offset > maxOffset) {\n            offset = maxOffset;\n        }\n        lastOffset += hint;\n        offset += hint;\n    }\n    lastOffset++;\n    while (lastOffset < offset) {\n        var m = lastOffset + (offset - lastOffset >>> 1);\n        if (compare(value, array[start + m]) < 0) {\n            offset = m;\n        }\n        else {\n            lastOffset = m + 1;\n        }\n    }\n    return offset;\n}\nfunction TimSort(array, compare) {\n    var minGallop = DEFAULT_MIN_GALLOPING;\n    var length = 0;\n    var tmpStorageLength = DEFAULT_TMP_STORAGE_LENGTH;\n    var stackLength = 0;\n    var runStart;\n    var runLength;\n    var stackSize = 0;\n    length = array.length;\n    if (length < 2 * DEFAULT_TMP_STORAGE_LENGTH) {\n        tmpStorageLength = length >>> 1;\n    }\n    var tmp = [];\n    stackLength = length < 120 ? 5 : length < 1542 ? 10 : length < 119151 ? 19 : 40;\n    runStart = [];\n    runLength = [];\n    function pushRun(_runStart, _runLength) {\n        runStart[stackSize] = _runStart;\n        runLength[stackSize] = _runLength;\n        stackSize += 1;\n    }\n    function mergeRuns() {\n        while (stackSize > 1) {\n            var n = stackSize - 2;\n            if ((n >= 1 && runLength[n - 1] <= runLength[n] + runLength[n + 1])\n                || (n >= 2 && runLength[n - 2] <= runLength[n] + runLength[n - 1])) {\n                if (runLength[n - 1] < runLength[n + 1]) {\n                    n--;\n                }\n            }\n            else if (runLength[n] > runLength[n + 1]) {\n                break;\n            }\n            mergeAt(n);\n        }\n    }\n    function forceMergeRuns() {\n        while (stackSize > 1) {\n            var n = stackSize - 2;\n            if (n > 0 && runLength[n - 1] < runLength[n + 1]) {\n                n--;\n            }\n            mergeAt(n);\n        }\n    }\n    function mergeAt(i) {\n        var start1 = runStart[i];\n        var length1 = runLength[i];\n        var start2 = runStart[i + 1];\n        var length2 = runLength[i + 1];\n        runLength[i] = length1 + length2;\n        if (i === stackSize - 3) {\n            runStart[i + 1] = runStart[i + 2];\n            runLength[i + 1] = runLength[i + 2];\n        }\n        stackSize--;\n        var k = gallopRight(array[start2], array, start1, length1, 0, compare);\n        start1 += k;\n        length1 -= k;\n        if (length1 === 0) {\n            return;\n        }\n        length2 = gallopLeft(array[start1 + length1 - 1], array, start2, length2, length2 - 1, compare);\n        if (length2 === 0) {\n            return;\n        }\n        if (length1 <= length2) {\n            mergeLow(start1, length1, start2, length2);\n        }\n        else {\n            mergeHigh(start1, length1, start2, length2);\n        }\n    }\n    function mergeLow(start1, length1, start2, length2) {\n        var i = 0;\n        for (i = 0; i < length1; i++) {\n            tmp[i] = array[start1 + i];\n        }\n        var cursor1 = 0;\n        var cursor2 = start2;\n        var dest = start1;\n        array[dest++] = array[cursor2++];\n        if (--length2 === 0) {\n            for (i = 0; i < length1; i++) {\n                array[dest + i] = tmp[cursor1 + i];\n            }\n            return;\n        }\n        if (length1 === 1) {\n            for (i = 0; i < length2; i++) {\n                array[dest + i] = array[cursor2 + i];\n            }\n            array[dest + length2] = tmp[cursor1];\n            return;\n        }\n        var _minGallop = minGallop;\n        var count1;\n        var count2;\n        var exit;\n        while (1) {\n            count1 = 0;\n            count2 = 0;\n            exit = false;\n            do {\n                if (compare(array[cursor2], tmp[cursor1]) < 0) {\n                    array[dest++] = array[cursor2++];\n                    count2++;\n                    count1 = 0;\n                    if (--length2 === 0) {\n                        exit = true;\n                        break;\n                    }\n                }\n                else {\n                    array[dest++] = tmp[cursor1++];\n                    count1++;\n                    count2 = 0;\n                    if (--length1 === 1) {\n                        exit = true;\n                        break;\n                    }\n                }\n            } while ((count1 | count2) < _minGallop);\n            if (exit) {\n                break;\n            }\n            do {\n                count1 = gallopRight(array[cursor2], tmp, cursor1, length1, 0, compare);\n                if (count1 !== 0) {\n                    for (i = 0; i < count1; i++) {\n                        array[dest + i] = tmp[cursor1 + i];\n                    }\n                    dest += count1;\n                    cursor1 += count1;\n                    length1 -= count1;\n                    if (length1 <= 1) {\n                        exit = true;\n                        break;\n                    }\n                }\n                array[dest++] = array[cursor2++];\n                if (--length2 === 0) {\n                    exit = true;\n                    break;\n                }\n                count2 = gallopLeft(tmp[cursor1], array, cursor2, length2, 0, compare);\n                if (count2 !== 0) {\n                    for (i = 0; i < count2; i++) {\n                        array[dest + i] = array[cursor2 + i];\n                    }\n                    dest += count2;\n                    cursor2 += count2;\n                    length2 -= count2;\n                    if (length2 === 0) {\n                        exit = true;\n                        break;\n                    }\n                }\n                array[dest++] = tmp[cursor1++];\n                if (--length1 === 1) {\n                    exit = true;\n                    break;\n                }\n                _minGallop--;\n            } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\n            if (exit) {\n                break;\n            }\n            if (_minGallop < 0) {\n                _minGallop = 0;\n            }\n            _minGallop += 2;\n        }\n        minGallop = _minGallop;\n        minGallop < 1 && (minGallop = 1);\n        if (length1 === 1) {\n            for (i = 0; i < length2; i++) {\n                array[dest + i] = array[cursor2 + i];\n            }\n            array[dest + length2] = tmp[cursor1];\n        }\n        else if (length1 === 0) {\n            throw new Error();\n        }\n        else {\n            for (i = 0; i < length1; i++) {\n                array[dest + i] = tmp[cursor1 + i];\n            }\n        }\n    }\n    function mergeHigh(start1, length1, start2, length2) {\n        var i = 0;\n        for (i = 0; i < length2; i++) {\n            tmp[i] = array[start2 + i];\n        }\n        var cursor1 = start1 + length1 - 1;\n        var cursor2 = length2 - 1;\n        var dest = start2 + length2 - 1;\n        var customCursor = 0;\n        var customDest = 0;\n        array[dest--] = array[cursor1--];\n        if (--length1 === 0) {\n            customCursor = dest - (length2 - 1);\n            for (i = 0; i < length2; i++) {\n                array[customCursor + i] = tmp[i];\n            }\n            return;\n        }\n        if (length2 === 1) {\n            dest -= length1;\n            cursor1 -= length1;\n            customDest = dest + 1;\n            customCursor = cursor1 + 1;\n            for (i = length1 - 1; i >= 0; i--) {\n                array[customDest + i] = array[customCursor + i];\n            }\n            array[dest] = tmp[cursor2];\n            return;\n        }\n        var _minGallop = minGallop;\n        while (true) {\n            var count1 = 0;\n            var count2 = 0;\n            var exit = false;\n            do {\n                if (compare(tmp[cursor2], array[cursor1]) < 0) {\n                    array[dest--] = array[cursor1--];\n                    count1++;\n                    count2 = 0;\n                    if (--length1 === 0) {\n                        exit = true;\n                        break;\n                    }\n                }\n                else {\n                    array[dest--] = tmp[cursor2--];\n                    count2++;\n                    count1 = 0;\n                    if (--length2 === 1) {\n                        exit = true;\n                        break;\n                    }\n                }\n            } while ((count1 | count2) < _minGallop);\n            if (exit) {\n                break;\n            }\n            do {\n                count1 = length1 - gallopRight(tmp[cursor2], array, start1, length1, length1 - 1, compare);\n                if (count1 !== 0) {\n                    dest -= count1;\n                    cursor1 -= count1;\n                    length1 -= count1;\n                    customDest = dest + 1;\n                    customCursor = cursor1 + 1;\n                    for (i = count1 - 1; i >= 0; i--) {\n                        array[customDest + i] = array[customCursor + i];\n                    }\n                    if (length1 === 0) {\n                        exit = true;\n                        break;\n                    }\n                }\n                array[dest--] = tmp[cursor2--];\n                if (--length2 === 1) {\n                    exit = true;\n                    break;\n                }\n                count2 = length2 - gallopLeft(array[cursor1], tmp, 0, length2, length2 - 1, compare);\n                if (count2 !== 0) {\n                    dest -= count2;\n                    cursor2 -= count2;\n                    length2 -= count2;\n                    customDest = dest + 1;\n                    customCursor = cursor2 + 1;\n                    for (i = 0; i < count2; i++) {\n                        array[customDest + i] = tmp[customCursor + i];\n                    }\n                    if (length2 <= 1) {\n                        exit = true;\n                        break;\n                    }\n                }\n                array[dest--] = array[cursor1--];\n                if (--length1 === 0) {\n                    exit = true;\n                    break;\n                }\n                _minGallop--;\n            } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\n            if (exit) {\n                break;\n            }\n            if (_minGallop < 0) {\n                _minGallop = 0;\n            }\n            _minGallop += 2;\n        }\n        minGallop = _minGallop;\n        if (minGallop < 1) {\n            minGallop = 1;\n        }\n        if (length2 === 1) {\n            dest -= length1;\n            cursor1 -= length1;\n            customDest = dest + 1;\n            customCursor = cursor1 + 1;\n            for (i = length1 - 1; i >= 0; i--) {\n                array[customDest + i] = array[customCursor + i];\n            }\n            array[dest] = tmp[cursor2];\n        }\n        else if (length2 === 0) {\n            throw new Error();\n        }\n        else {\n            customCursor = dest - (length2 - 1);\n            for (i = 0; i < length2; i++) {\n                array[customCursor + i] = tmp[i];\n            }\n        }\n    }\n    return {\n        mergeRuns: mergeRuns,\n        forceMergeRuns: forceMergeRuns,\n        pushRun: pushRun\n    };\n}\nexport default function sort(array, compare, lo, hi) {\n    if (!lo) {\n        lo = 0;\n    }\n    if (!hi) {\n        hi = array.length;\n    }\n    var remaining = hi - lo;\n    if (remaining < 2) {\n        return;\n    }\n    var runLength = 0;\n    if (remaining < DEFAULT_MIN_MERGE) {\n        runLength = makeAscendingRun(array, lo, hi, compare);\n        binaryInsertionSort(array, lo, hi, lo + runLength, compare);\n        return;\n    }\n    var ts = TimSort(array, compare);\n    var minRun = minRunLength(remaining);\n    do {\n        runLength = makeAscendingRun(array, lo, hi, compare);\n        if (runLength < minRun) {\n            var force = remaining;\n            if (force > minRun) {\n                force = minRun;\n            }\n            binaryInsertionSort(array, lo, lo + force, lo + runLength, compare);\n            runLength = force;\n        }\n        ts.pushRun(lo, runLength);\n        ts.mergeRuns();\n        remaining -= runLength;\n        lo += runLength;\n    } while (remaining !== 0);\n    ts.forceMergeRuns();\n}\n","import * as util from './core/util';\nimport env from './core/env';\nimport Element from './Element';\nimport timsort from './core/timsort';\nvar invalidZErrorLogged = false;\nfunction logInvalidZError() {\n    if (invalidZErrorLogged) {\n        return;\n    }\n    invalidZErrorLogged = true;\n    console.warn('z / z2 / zlevel of displayable is invalid, which may cause unexpected errors');\n}\nfunction shapeCompareFunc(a, b) {\n    if (a.zlevel === b.zlevel) {\n        if (a.z === b.z) {\n            return a.z2 - b.z2;\n        }\n        return a.z - b.z;\n    }\n    return a.zlevel - b.zlevel;\n}\nvar Storage = (function () {\n    function Storage() {\n        this._roots = [];\n        this._displayList = [];\n        this._displayListLen = 0;\n        this.displayableSortFunc = shapeCompareFunc;\n    }\n    Storage.prototype.traverse = function (cb, context) {\n        for (var i = 0; i < this._roots.length; i++) {\n            this._roots[i].traverse(cb, context);\n        }\n    };\n    Storage.prototype.getDisplayList = function (update, includeIgnore) {\n        includeIgnore = includeIgnore || false;\n        var displayList = this._displayList;\n        if (update || !displayList.length) {\n            this.updateDisplayList(includeIgnore);\n        }\n        return displayList;\n    };\n    Storage.prototype.updateDisplayList = function (includeIgnore) {\n        this._displayListLen = 0;\n        var roots = this._roots;\n        var displayList = this._displayList;\n        for (var i = 0, len = roots.length; i < len; i++) {\n            this._updateAndAddDisplayable(roots[i], null, includeIgnore);\n        }\n        displayList.length = this._displayListLen;\n        env.canvasSupported && timsort(displayList, shapeCompareFunc);\n    };\n    Storage.prototype._updateAndAddDisplayable = function (el, clipPaths, includeIgnore) {\n        if (el.ignore && !includeIgnore) {\n            return;\n        }\n        el.beforeUpdate();\n        el.update();\n        el.afterUpdate();\n        var userSetClipPath = el.getClipPath();\n        if (el.ignoreClip) {\n            clipPaths = null;\n        }\n        else if (userSetClipPath) {\n            if (clipPaths) {\n                clipPaths = clipPaths.slice();\n            }\n            else {\n                clipPaths = [];\n            }\n            var currentClipPath = userSetClipPath;\n            var parentClipPath = el;\n            while (currentClipPath) {\n                currentClipPath.parent = parentClipPath;\n                currentClipPath.updateTransform();\n                clipPaths.push(currentClipPath);\n                parentClipPath = currentClipPath;\n                currentClipPath = currentClipPath.getClipPath();\n            }\n        }\n        if (el.childrenRef) {\n            var children = el.childrenRef();\n            for (var i = 0; i < children.length; i++) {\n                var child = children[i];\n                if (el.__dirty) {\n                    child.__dirty |= Element.REDARAW_BIT;\n                }\n                this._updateAndAddDisplayable(child, clipPaths, includeIgnore);\n            }\n            el.__dirty = 0;\n        }\n        else {\n            var disp = el;\n            if (clipPaths && clipPaths.length) {\n                disp.__clipPaths = clipPaths;\n            }\n            else if (disp.__clipPaths && disp.__clipPaths.length > 0) {\n                disp.__clipPaths = [];\n            }\n            if (isNaN(disp.z)) {\n                logInvalidZError();\n                disp.z = 0;\n            }\n            if (isNaN(disp.z2)) {\n                logInvalidZError();\n                disp.z2 = 0;\n            }\n            if (isNaN(disp.zlevel)) {\n                logInvalidZError();\n                disp.zlevel = 0;\n            }\n            this._displayList[this._displayListLen++] = disp;\n        }\n        var decalEl = el.getDecalElement && el.getDecalElement();\n        if (decalEl) {\n            this._updateAndAddDisplayable(decalEl, clipPaths, includeIgnore);\n        }\n        var textGuide = el.getTextGuideLine();\n        if (textGuide) {\n            this._updateAndAddDisplayable(textGuide, clipPaths, includeIgnore);\n        }\n        var textEl = el.getTextContent();\n        if (textEl) {\n            this._updateAndAddDisplayable(textEl, clipPaths, includeIgnore);\n        }\n    };\n    Storage.prototype.addRoot = function (el) {\n        if (el.__zr && el.__zr.storage === this) {\n            return;\n        }\n        this._roots.push(el);\n    };\n    Storage.prototype.delRoot = function (el) {\n        if (el instanceof Array) {\n            for (var i = 0, l = el.length; i < l; i++) {\n                this.delRoot(el[i]);\n            }\n            return;\n        }\n        var idx = util.indexOf(this._roots, el);\n        if (idx >= 0) {\n            this._roots.splice(idx, 1);\n        }\n    };\n    Storage.prototype.delAllRoots = function () {\n        this._roots = [];\n        this._displayList = [];\n        this._displayListLen = 0;\n        return;\n    };\n    Storage.prototype.getRoots = function () {\n        return this._roots;\n    };\n    Storage.prototype.dispose = function () {\n        this._displayList = null;\n        this._roots = null;\n    };\n    return Storage;\n}());\nexport default Storage;\n","var requestAnimationFrame;\nrequestAnimationFrame = (typeof window !== 'undefined'\n    && ((window.requestAnimationFrame && window.requestAnimationFrame.bind(window))\n        || (window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window))\n        || window.mozRequestAnimationFrame\n        || window.webkitRequestAnimationFrame)) || function (func) {\n    return setTimeout(func, 16);\n};\nexport default requestAnimationFrame;\n","import { __extends } from \"tslib\";\nimport Eventful from '../core/Eventful';\nimport requestAnimationFrame from './requestAnimationFrame';\nimport Animator from './Animator';\nvar Animation = (function (_super) {\n    __extends(Animation, _super);\n    function Animation(opts) {\n        var _this = _super.call(this) || this;\n        _this._running = false;\n        _this._time = 0;\n        _this._pausedTime = 0;\n        _this._pauseStart = 0;\n        _this._paused = false;\n        opts = opts || {};\n        _this.stage = opts.stage || {};\n        _this.onframe = opts.onframe || function () { };\n        return _this;\n    }\n    Animation.prototype.addClip = function (clip) {\n        if (clip.animation) {\n            this.removeClip(clip);\n        }\n        if (!this._clipsHead) {\n            this._clipsHead = this._clipsTail = clip;\n        }\n        else {\n            this._clipsTail.next = clip;\n            clip.prev = this._clipsTail;\n            clip.next = null;\n            this._clipsTail = clip;\n        }\n        clip.animation = this;\n    };\n    Animation.prototype.addAnimator = function (animator) {\n        animator.animation = this;\n        var clip = animator.getClip();\n        if (clip) {\n            this.addClip(clip);\n        }\n    };\n    Animation.prototype.removeClip = function (clip) {\n        if (!clip.animation) {\n            return;\n        }\n        var prev = clip.prev;\n        var next = clip.next;\n        if (prev) {\n            prev.next = next;\n        }\n        else {\n            this._clipsHead = next;\n        }\n        if (next) {\n            next.prev = prev;\n        }\n        else {\n            this._clipsTail = prev;\n        }\n        clip.next = clip.prev = clip.animation = null;\n    };\n    Animation.prototype.removeAnimator = function (animator) {\n        var clip = animator.getClip();\n        if (clip) {\n            this.removeClip(clip);\n        }\n        animator.animation = null;\n    };\n    Animation.prototype.update = function (notTriggerFrameAndStageUpdate) {\n        var time = new Date().getTime() - this._pausedTime;\n        var delta = time - this._time;\n        var clip = this._clipsHead;\n        while (clip) {\n            var nextClip = clip.next;\n            var finished = clip.step(time, delta);\n            if (finished) {\n                clip.ondestroy && clip.ondestroy();\n                this.removeClip(clip);\n                clip = nextClip;\n            }\n            else {\n                clip = nextClip;\n            }\n        }\n        this._time = time;\n        if (!notTriggerFrameAndStageUpdate) {\n            this.onframe(delta);\n            this.trigger('frame', delta);\n            this.stage.update && this.stage.update();\n        }\n    };\n    Animation.prototype._startLoop = function () {\n        var self = this;\n        this._running = true;\n        function step() {\n            if (self._running) {\n                requestAnimationFrame(step);\n                !self._paused && self.update();\n            }\n        }\n        requestAnimationFrame(step);\n    };\n    Animation.prototype.start = function () {\n        if (this._running) {\n            return;\n        }\n        this._time = new Date().getTime();\n        this._pausedTime = 0;\n        this._startLoop();\n    };\n    Animation.prototype.stop = function () {\n        this._running = false;\n    };\n    Animation.prototype.pause = function () {\n        if (!this._paused) {\n            this._pauseStart = new Date().getTime();\n            this._paused = true;\n        }\n    };\n    Animation.prototype.resume = function () {\n        if (this._paused) {\n            this._pausedTime += (new Date().getTime()) - this._pauseStart;\n            this._paused = false;\n        }\n    };\n    Animation.prototype.clear = function () {\n        var clip = this._clipsHead;\n        while (clip) {\n            var nextClip = clip.next;\n            clip.prev = clip.next = clip.animation = null;\n            clip = nextClip;\n        }\n        this._clipsHead = this._clipsTail = null;\n    };\n    Animation.prototype.isFinished = function () {\n        return this._clipsHead == null;\n    };\n    Animation.prototype.animate = function (target, options) {\n        options = options || {};\n        this.start();\n        var animator = new Animator(target, options.loop);\n        this.addAnimator(animator);\n        return animator;\n    };\n    return Animation;\n}(Eventful));\nexport default Animation;\n","import { __extends } from \"tslib\";\nimport { addEventListener, removeEventListener, normalizeEvent, getNativeEvent } from '../core/event';\nimport * as zrUtil from '../core/util';\nimport Eventful from '../core/Eventful';\nimport env from '../core/env';\nvar TOUCH_CLICK_DELAY = 300;\nvar globalEventSupported = env.domSupported;\nvar localNativeListenerNames = (function () {\n    var mouseHandlerNames = [\n        'click', 'dblclick', 'mousewheel', 'wheel', 'mouseout',\n        'mouseup', 'mousedown', 'mousemove', 'contextmenu'\n    ];\n    var touchHandlerNames = [\n        'touchstart', 'touchend', 'touchmove'\n    ];\n    var pointerEventNameMap = {\n        pointerdown: 1, pointerup: 1, pointermove: 1, pointerout: 1\n    };\n    var pointerHandlerNames = zrUtil.map(mouseHandlerNames, function (name) {\n        var nm = name.replace('mouse', 'pointer');\n        return pointerEventNameMap.hasOwnProperty(nm) ? nm : name;\n    });\n    return {\n        mouse: mouseHandlerNames,\n        touch: touchHandlerNames,\n        pointer: pointerHandlerNames\n    };\n})();\nvar globalNativeListenerNames = {\n    mouse: ['mousemove', 'mouseup'],\n    pointer: ['pointermove', 'pointerup']\n};\nvar wheelEventSupported = false;\nfunction isPointerFromTouch(event) {\n    var pointerType = event.pointerType;\n    return pointerType === 'pen' || pointerType === 'touch';\n}\nfunction setTouchTimer(scope) {\n    scope.touching = true;\n    if (scope.touchTimer != null) {\n        clearTimeout(scope.touchTimer);\n        scope.touchTimer = null;\n    }\n    scope.touchTimer = setTimeout(function () {\n        scope.touching = false;\n        scope.touchTimer = null;\n    }, 700);\n}\nfunction markTouch(event) {\n    event && (event.zrByTouch = true);\n}\nfunction normalizeGlobalEvent(instance, event) {\n    return normalizeEvent(instance.dom, new FakeGlobalEvent(instance, event), true);\n}\nfunction isLocalEl(instance, el) {\n    var elTmp = el;\n    var isLocal = false;\n    while (elTmp && elTmp.nodeType !== 9\n        && !(isLocal = elTmp.domBelongToZr\n            || (elTmp !== el && elTmp === instance.painterRoot))) {\n        elTmp = elTmp.parentNode;\n    }\n    return isLocal;\n}\nvar FakeGlobalEvent = (function () {\n    function FakeGlobalEvent(instance, event) {\n        this.stopPropagation = zrUtil.noop;\n        this.stopImmediatePropagation = zrUtil.noop;\n        this.preventDefault = zrUtil.noop;\n        this.type = event.type;\n        this.target = this.currentTarget = instance.dom;\n        this.pointerType = event.pointerType;\n        this.clientX = event.clientX;\n        this.clientY = event.clientY;\n    }\n    return FakeGlobalEvent;\n}());\nvar localDOMHandlers = {\n    mousedown: function (event) {\n        event = normalizeEvent(this.dom, event);\n        this.__mayPointerCapture = [event.zrX, event.zrY];\n        this.trigger('mousedown', event);\n    },\n    mousemove: function (event) {\n        event = normalizeEvent(this.dom, event);\n        var downPoint = this.__mayPointerCapture;\n        if (downPoint && (event.zrX !== downPoint[0] || event.zrY !== downPoint[1])) {\n            this.__togglePointerCapture(true);\n        }\n        this.trigger('mousemove', event);\n    },\n    mouseup: function (event) {\n        event = normalizeEvent(this.dom, event);\n        this.__togglePointerCapture(false);\n        this.trigger('mouseup', event);\n    },\n    mouseout: function (event) {\n        event = normalizeEvent(this.dom, event);\n        var element = event.toElement || event.relatedTarget;\n        if (!isLocalEl(this, element)) {\n            if (this.__pointerCapturing) {\n                event.zrEventControl = 'no_globalout';\n            }\n            this.trigger('mouseout', event);\n        }\n    },\n    wheel: function (event) {\n        wheelEventSupported = true;\n        event = normalizeEvent(this.dom, event);\n        this.trigger('mousewheel', event);\n    },\n    mousewheel: function (event) {\n        if (wheelEventSupported) {\n            return;\n        }\n        event = normalizeEvent(this.dom, event);\n        this.trigger('mousewheel', event);\n    },\n    touchstart: function (event) {\n        event = normalizeEvent(this.dom, event);\n        markTouch(event);\n        this.__lastTouchMoment = new Date();\n        this.handler.processGesture(event, 'start');\n        localDOMHandlers.mousemove.call(this, event);\n        localDOMHandlers.mousedown.call(this, event);\n    },\n    touchmove: function (event) {\n        event = normalizeEvent(this.dom, event);\n        markTouch(event);\n        this.handler.processGesture(event, 'change');\n        localDOMHandlers.mousemove.call(this, event);\n    },\n    touchend: function (event) {\n        event = normalizeEvent(this.dom, event);\n        markTouch(event);\n        this.handler.processGesture(event, 'end');\n        localDOMHandlers.mouseup.call(this, event);\n        if (+new Date() - (+this.__lastTouchMoment) < TOUCH_CLICK_DELAY) {\n            localDOMHandlers.click.call(this, event);\n        }\n    },\n    pointerdown: function (event) {\n        localDOMHandlers.mousedown.call(this, event);\n    },\n    pointermove: function (event) {\n        if (!isPointerFromTouch(event)) {\n            localDOMHandlers.mousemove.call(this, event);\n        }\n    },\n    pointerup: function (event) {\n        localDOMHandlers.mouseup.call(this, event);\n    },\n    pointerout: function (event) {\n        if (!isPointerFromTouch(event)) {\n            localDOMHandlers.mouseout.call(this, event);\n        }\n    }\n};\nzrUtil.each(['click', 'dblclick', 'contextmenu'], function (name) {\n    localDOMHandlers[name] = function (event) {\n        event = normalizeEvent(this.dom, event);\n        this.trigger(name, event);\n    };\n});\nvar globalDOMHandlers = {\n    pointermove: function (event) {\n        if (!isPointerFromTouch(event)) {\n            globalDOMHandlers.mousemove.call(this, event);\n        }\n    },\n    pointerup: function (event) {\n        globalDOMHandlers.mouseup.call(this, event);\n    },\n    mousemove: function (event) {\n        this.trigger('mousemove', event);\n    },\n    mouseup: function (event) {\n        var pointerCaptureReleasing = this.__pointerCapturing;\n        this.__togglePointerCapture(false);\n        this.trigger('mouseup', event);\n        if (pointerCaptureReleasing) {\n            event.zrEventControl = 'only_globalout';\n            this.trigger('mouseout', event);\n        }\n    }\n};\nfunction mountLocalDOMEventListeners(instance, scope) {\n    var domHandlers = scope.domHandlers;\n    if (env.pointerEventsSupported) {\n        zrUtil.each(localNativeListenerNames.pointer, function (nativeEventName) {\n            mountSingleDOMEventListener(scope, nativeEventName, function (event) {\n                domHandlers[nativeEventName].call(instance, event);\n            });\n        });\n    }\n    else {\n        if (env.touchEventsSupported) {\n            zrUtil.each(localNativeListenerNames.touch, function (nativeEventName) {\n                mountSingleDOMEventListener(scope, nativeEventName, function (event) {\n                    domHandlers[nativeEventName].call(instance, event);\n                    setTouchTimer(scope);\n                });\n            });\n        }\n        zrUtil.each(localNativeListenerNames.mouse, function (nativeEventName) {\n            mountSingleDOMEventListener(scope, nativeEventName, function (event) {\n                event = getNativeEvent(event);\n                if (!scope.touching) {\n                    domHandlers[nativeEventName].call(instance, event);\n                }\n            });\n        });\n    }\n}\nfunction mountGlobalDOMEventListeners(instance, scope) {\n    if (env.pointerEventsSupported) {\n        zrUtil.each(globalNativeListenerNames.pointer, mount);\n    }\n    else if (!env.touchEventsSupported) {\n        zrUtil.each(globalNativeListenerNames.mouse, mount);\n    }\n    function mount(nativeEventName) {\n        function nativeEventListener(event) {\n            event = getNativeEvent(event);\n            if (!isLocalEl(instance, event.target)) {\n                event = normalizeGlobalEvent(instance, event);\n                scope.domHandlers[nativeEventName].call(instance, event);\n            }\n        }\n        mountSingleDOMEventListener(scope, nativeEventName, nativeEventListener, { capture: true });\n    }\n}\nfunction mountSingleDOMEventListener(scope, nativeEventName, listener, opt) {\n    scope.mounted[nativeEventName] = listener;\n    scope.listenerOpts[nativeEventName] = opt;\n    addEventListener(scope.domTarget, nativeEventName, listener, opt);\n}\nfunction unmountDOMEventListeners(scope) {\n    var mounted = scope.mounted;\n    for (var nativeEventName in mounted) {\n        if (mounted.hasOwnProperty(nativeEventName)) {\n            removeEventListener(scope.domTarget, nativeEventName, mounted[nativeEventName], scope.listenerOpts[nativeEventName]);\n        }\n    }\n    scope.mounted = {};\n}\nvar DOMHandlerScope = (function () {\n    function DOMHandlerScope(domTarget, domHandlers) {\n        this.mounted = {};\n        this.listenerOpts = {};\n        this.touching = false;\n        this.domTarget = domTarget;\n        this.domHandlers = domHandlers;\n    }\n    return DOMHandlerScope;\n}());\nvar HandlerDomProxy = (function (_super) {\n    __extends(HandlerDomProxy, _super);\n    function HandlerDomProxy(dom, painterRoot) {\n        var _this = _super.call(this) || this;\n        _this.__pointerCapturing = false;\n        _this.dom = dom;\n        _this.painterRoot = painterRoot;\n        _this._localHandlerScope = new DOMHandlerScope(dom, localDOMHandlers);\n        if (globalEventSupported) {\n            _this._globalHandlerScope = new DOMHandlerScope(document, globalDOMHandlers);\n        }\n        mountLocalDOMEventListeners(_this, _this._localHandlerScope);\n        return _this;\n    }\n    HandlerDomProxy.prototype.dispose = function () {\n        unmountDOMEventListeners(this._localHandlerScope);\n        if (globalEventSupported) {\n            unmountDOMEventListeners(this._globalHandlerScope);\n        }\n    };\n    HandlerDomProxy.prototype.setCursor = function (cursorStyle) {\n        this.dom.style && (this.dom.style.cursor = cursorStyle || 'default');\n    };\n    HandlerDomProxy.prototype.__togglePointerCapture = function (isPointerCapturing) {\n        this.__mayPointerCapture = null;\n        if (globalEventSupported\n            && ((+this.__pointerCapturing) ^ (+isPointerCapturing))) {\n            this.__pointerCapturing = isPointerCapturing;\n            var globalHandlerScope = this._globalHandlerScope;\n            isPointerCapturing\n                ? mountGlobalDOMEventListeners(this, globalHandlerScope)\n                : unmountDOMEventListeners(globalHandlerScope);\n        }\n    };\n    return HandlerDomProxy;\n}(Eventful));\nexport default HandlerDomProxy;\n","import { __extends } from \"tslib\";\nimport * as zrUtil from '../core/util';\nimport Element from '../Element';\nimport BoundingRect from '../core/BoundingRect';\nvar Group = (function (_super) {\n    __extends(Group, _super);\n    function Group(opts) {\n        var _this = _super.call(this) || this;\n        _this.isGroup = true;\n        _this._children = [];\n        _this.attr(opts);\n        return _this;\n    }\n    Group.prototype.childrenRef = function () {\n        return this._children;\n    };\n    Group.prototype.children = function () {\n        return this._children.slice();\n    };\n    Group.prototype.childAt = function (idx) {\n        return this._children[idx];\n    };\n    Group.prototype.childOfName = function (name) {\n        var children = this._children;\n        for (var i = 0; i < children.length; i++) {\n            if (children[i].name === name) {\n                return children[i];\n            }\n        }\n    };\n    Group.prototype.childCount = function () {\n        return this._children.length;\n    };\n    Group.prototype.add = function (child) {\n        if (child) {\n            if (child !== this && child.parent !== this) {\n                this._children.push(child);\n                this._doAdd(child);\n            }\n            if (child.__hostTarget) {\n                throw 'This elemenet has been used as an attachment';\n            }\n        }\n        return this;\n    };\n    Group.prototype.addBefore = function (child, nextSibling) {\n        if (child && child !== this && child.parent !== this\n            && nextSibling && nextSibling.parent === this) {\n            var children = this._children;\n            var idx = children.indexOf(nextSibling);\n            if (idx >= 0) {\n                children.splice(idx, 0, child);\n                this._doAdd(child);\n            }\n        }\n        return this;\n    };\n    Group.prototype.replaceAt = function (child, index) {\n        var children = this._children;\n        var old = children[index];\n        if (child && child !== this && child.parent !== this && child !== old) {\n            children[index] = child;\n            old.parent = null;\n            var zr = this.__zr;\n            if (zr) {\n                old.removeSelfFromZr(zr);\n            }\n            this._doAdd(child);\n        }\n        return this;\n    };\n    Group.prototype._doAdd = function (child) {\n        if (child.parent) {\n            child.parent.remove(child);\n        }\n        child.parent = this;\n        var zr = this.__zr;\n        if (zr && zr !== child.__zr) {\n            child.addSelfToZr(zr);\n        }\n        zr && zr.refresh();\n    };\n    Group.prototype.remove = function (child) {\n        var zr = this.__zr;\n        var children = this._children;\n        var idx = zrUtil.indexOf(children, child);\n        if (idx < 0) {\n            return this;\n        }\n        children.splice(idx, 1);\n        child.parent = null;\n        if (zr) {\n            child.removeSelfFromZr(zr);\n        }\n        zr && zr.refresh();\n        return this;\n    };\n    Group.prototype.removeAll = function () {\n        var children = this._children;\n        var zr = this.__zr;\n        for (var i = 0; i < children.length; i++) {\n            var child = children[i];\n            if (zr) {\n                child.removeSelfFromZr(zr);\n            }\n            child.parent = null;\n        }\n        children.length = 0;\n        return this;\n    };\n    Group.prototype.eachChild = function (cb, context) {\n        var children = this._children;\n        for (var i = 0; i < children.length; i++) {\n            var child = children[i];\n            cb.call(context, child, i);\n        }\n        return this;\n    };\n    Group.prototype.traverse = function (cb, context) {\n        for (var i = 0; i < this._children.length; i++) {\n            var child = this._children[i];\n            var stopped = cb.call(context, child);\n            if (child.isGroup && !stopped) {\n                child.traverse(cb, context);\n            }\n        }\n        return this;\n    };\n    Group.prototype.addSelfToZr = function (zr) {\n        _super.prototype.addSelfToZr.call(this, zr);\n        for (var i = 0; i < this._children.length; i++) {\n            var child = this._children[i];\n            child.addSelfToZr(zr);\n        }\n    };\n    Group.prototype.removeSelfFromZr = function (zr) {\n        _super.prototype.removeSelfFromZr.call(this, zr);\n        for (var i = 0; i < this._children.length; i++) {\n            var child = this._children[i];\n            child.removeSelfFromZr(zr);\n        }\n    };\n    Group.prototype.getBoundingRect = function (includeChildren) {\n        var tmpRect = new BoundingRect(0, 0, 0, 0);\n        var children = includeChildren || this._children;\n        var tmpMat = [];\n        var rect = null;\n        for (var i = 0; i < children.length; i++) {\n            var child = children[i];\n            if (child.ignore || child.invisible) {\n                continue;\n            }\n            var childRect = child.getBoundingRect();\n            var transform = child.getLocalTransform(tmpMat);\n            if (transform) {\n                BoundingRect.applyTransform(tmpRect, childRect, transform);\n                rect = rect || tmpRect.clone();\n                rect.union(tmpRect);\n            }\n            else {\n                rect = rect || childRect.clone();\n                rect.union(childRect);\n            }\n        }\n        return rect || tmpRect;\n    };\n    return Group;\n}(Element));\nGroup.prototype.type = 'group';\nexport default Group;\n","/*!\n* ZRender, a high performance 2d drawing library.\n*\n* Copyright (c) 2013, Baidu Inc.\n* All rights reserved.\n*\n* LICENSE\n* https://github.com/ecomfe/zrender/blob/master/LICENSE.txt\n*/\nimport env from './core/env';\nimport * as zrUtil from './core/util';\nimport Handler from './Handler';\nimport Storage from './Storage';\nimport Animation from './animation/Animation';\nimport HandlerProxy from './dom/HandlerProxy';\nimport { lum } from './tool/color';\nimport { DARK_MODE_THRESHOLD } from './config';\nimport Group from './graphic/Group';\nvar useVML = !env.canvasSupported;\nvar painterCtors = {};\nvar instances = {};\nfunction delInstance(id) {\n    delete instances[id];\n}\nfunction isDarkMode(backgroundColor) {\n    if (!backgroundColor) {\n        return false;\n    }\n    if (typeof backgroundColor === 'string') {\n        return lum(backgroundColor, 1) < DARK_MODE_THRESHOLD;\n    }\n    else if (backgroundColor.colorStops) {\n        var colorStops = backgroundColor.colorStops;\n        var totalLum = 0;\n        var len = colorStops.length;\n        for (var i = 0; i < len; i++) {\n            totalLum += lum(colorStops[i].color, 1);\n        }\n        totalLum /= len;\n        return totalLum < DARK_MODE_THRESHOLD;\n    }\n    return false;\n}\nvar ZRender = (function () {\n    function ZRender(id, dom, opts) {\n        var _this = this;\n        this._sleepAfterStill = 10;\n        this._stillFrameAccum = 0;\n        this._needsRefresh = true;\n        this._needsRefreshHover = true;\n        this._darkMode = false;\n        opts = opts || {};\n        this.dom = dom;\n        this.id = id;\n        var storage = new Storage();\n        var rendererType = opts.renderer || 'canvas';\n        if (useVML) {\n            throw new Error('IE8 support has been dropped since 5.0');\n        }\n        if (!painterCtors[rendererType]) {\n            rendererType = zrUtil.keys(painterCtors)[0];\n        }\n        if (!painterCtors[rendererType]) {\n            throw new Error(\"Renderer '\" + rendererType + \"' is not imported. Please import it first.\");\n        }\n        opts.useDirtyRect = opts.useDirtyRect == null\n            ? false\n            : opts.useDirtyRect;\n        var painter = new painterCtors[rendererType](dom, storage, opts, id);\n        this.storage = storage;\n        this.painter = painter;\n        var handerProxy = (!env.node && !env.worker)\n            ? new HandlerProxy(painter.getViewportRoot(), painter.root)\n            : null;\n        this.handler = new Handler(storage, painter, handerProxy, painter.root);\n        this.animation = new Animation({\n            stage: {\n                update: function () { return _this._flush(true); }\n            }\n        });\n        this.animation.start();\n    }\n    ZRender.prototype.add = function (el) {\n        if (!el) {\n            return;\n        }\n        this.storage.addRoot(el);\n        el.addSelfToZr(this);\n        this.refresh();\n    };\n    ZRender.prototype.remove = function (el) {\n        if (!el) {\n            return;\n        }\n        this.storage.delRoot(el);\n        el.removeSelfFromZr(this);\n        this.refresh();\n    };\n    ZRender.prototype.configLayer = function (zLevel, config) {\n        if (this.painter.configLayer) {\n            this.painter.configLayer(zLevel, config);\n        }\n        this.refresh();\n    };\n    ZRender.prototype.setBackgroundColor = function (backgroundColor) {\n        if (this.painter.setBackgroundColor) {\n            this.painter.setBackgroundColor(backgroundColor);\n        }\n        this.refresh();\n        this._backgroundColor = backgroundColor;\n        this._darkMode = isDarkMode(backgroundColor);\n    };\n    ZRender.prototype.getBackgroundColor = function () {\n        return this._backgroundColor;\n    };\n    ZRender.prototype.setDarkMode = function (darkMode) {\n        this._darkMode = darkMode;\n    };\n    ZRender.prototype.isDarkMode = function () {\n        return this._darkMode;\n    };\n    ZRender.prototype.refreshImmediately = function (fromInside) {\n        if (!fromInside) {\n            this.animation.update(true);\n        }\n        this._needsRefresh = false;\n        this.painter.refresh();\n        this._needsRefresh = false;\n    };\n    ZRender.prototype.refresh = function () {\n        this._needsRefresh = true;\n        this.animation.start();\n    };\n    ZRender.prototype.flush = function () {\n        this._flush(false);\n    };\n    ZRender.prototype._flush = function (fromInside) {\n        var triggerRendered;\n        var start = new Date().getTime();\n        if (this._needsRefresh) {\n            triggerRendered = true;\n            this.refreshImmediately(fromInside);\n        }\n        if (this._needsRefreshHover) {\n            triggerRendered = true;\n            this.refreshHoverImmediately();\n        }\n        var end = new Date().getTime();\n        if (triggerRendered) {\n            this._stillFrameAccum = 0;\n            this.trigger('rendered', {\n                elapsedTime: end - start\n            });\n        }\n        else if (this._sleepAfterStill > 0) {\n            this._stillFrameAccum++;\n            if (this._stillFrameAccum > this._sleepAfterStill) {\n                this.animation.stop();\n            }\n        }\n    };\n    ZRender.prototype.setSleepAfterStill = function (stillFramesCount) {\n        this._sleepAfterStill = stillFramesCount;\n    };\n    ZRender.prototype.wakeUp = function () {\n        this.animation.start();\n        this._stillFrameAccum = 0;\n    };\n    ZRender.prototype.addHover = function (el) {\n    };\n    ZRender.prototype.removeHover = function (el) {\n    };\n    ZRender.prototype.clearHover = function () {\n    };\n    ZRender.prototype.refreshHover = function () {\n        this._needsRefreshHover = true;\n    };\n    ZRender.prototype.refreshHoverImmediately = function () {\n        this._needsRefreshHover = false;\n        if (this.painter.refreshHover && this.painter.getType() === 'canvas') {\n            this.painter.refreshHover();\n        }\n    };\n    ZRender.prototype.resize = function (opts) {\n        opts = opts || {};\n        this.painter.resize(opts.width, opts.height);\n        this.handler.resize();\n    };\n    ZRender.prototype.clearAnimation = function () {\n        this.animation.clear();\n    };\n    ZRender.prototype.getWidth = function () {\n        return this.painter.getWidth();\n    };\n    ZRender.prototype.getHeight = function () {\n        return this.painter.getHeight();\n    };\n    ZRender.prototype.pathToImage = function (e, dpr) {\n        if (this.painter.pathToImage) {\n            return this.painter.pathToImage(e, dpr);\n        }\n    };\n    ZRender.prototype.setCursorStyle = function (cursorStyle) {\n        this.handler.setCursorStyle(cursorStyle);\n    };\n    ZRender.prototype.findHover = function (x, y) {\n        return this.handler.findHover(x, y);\n    };\n    ZRender.prototype.on = function (eventName, eventHandler, context) {\n        this.handler.on(eventName, eventHandler, context);\n        return this;\n    };\n    ZRender.prototype.off = function (eventName, eventHandler) {\n        this.handler.off(eventName, eventHandler);\n    };\n    ZRender.prototype.trigger = function (eventName, event) {\n        this.handler.trigger(eventName, event);\n    };\n    ZRender.prototype.clear = function () {\n        var roots = this.storage.getRoots();\n        for (var i = 0; i < roots.length; i++) {\n            if (roots[i] instanceof Group) {\n                roots[i].removeSelfFromZr(this);\n            }\n        }\n        this.storage.delAllRoots();\n        this.painter.clear();\n    };\n    ZRender.prototype.dispose = function () {\n        this.animation.stop();\n        this.clear();\n        this.storage.dispose();\n        this.painter.dispose();\n        this.handler.dispose();\n        this.animation =\n            this.storage =\n                this.painter =\n                    this.handler = null;\n        delInstance(this.id);\n    };\n    return ZRender;\n}());\nexport function init(dom, opts) {\n    var zr = new ZRender(zrUtil.guid(), dom, opts);\n    instances[zr.id] = zr;\n    return zr;\n}\nexport function dispose(zr) {\n    zr.dispose();\n}\nexport function disposeAll() {\n    for (var key in instances) {\n        if (instances.hasOwnProperty(key)) {\n            instances[key].dispose();\n        }\n    }\n    instances = {};\n}\nexport function getInstance(id) {\n    return instances[id];\n}\nexport function registerPainter(name, Ctor) {\n    painterCtors[name] = Ctor;\n}\nexport var version = '5.0.3';\n;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar RADIAN_EPSILON = 1e-4;\n\nfunction _trim(str) {\n  return str.replace(/^\\s+|\\s+$/g, '');\n}\n\nexport function linearMap(val, domain, range, clamp) {\n  var subDomain = domain[1] - domain[0];\n  var subRange = range[1] - range[0];\n\n  if (subDomain === 0) {\n    return subRange === 0 ? range[0] : (range[0] + range[1]) / 2;\n  }\n\n  if (clamp) {\n    if (subDomain > 0) {\n      if (val <= domain[0]) {\n        return range[0];\n      } else if (val >= domain[1]) {\n        return range[1];\n      }\n    } else {\n      if (val >= domain[0]) {\n        return range[0];\n      } else if (val <= domain[1]) {\n        return range[1];\n      }\n    }\n  } else {\n    if (val === domain[0]) {\n      return range[0];\n    }\n\n    if (val === domain[1]) {\n      return range[1];\n    }\n  }\n\n  return (val - domain[0]) / subDomain * subRange + range[0];\n}\nexport function parsePercent(percent, all) {\n  switch (percent) {\n    case 'center':\n    case 'middle':\n      percent = '50%';\n      break;\n\n    case 'left':\n    case 'top':\n      percent = '0%';\n      break;\n\n    case 'right':\n    case 'bottom':\n      percent = '100%';\n      break;\n  }\n\n  if (typeof percent === 'string') {\n    if (_trim(percent).match(/%$/)) {\n      return parseFloat(percent) / 100 * all;\n    }\n\n    return parseFloat(percent);\n  }\n\n  return percent == null ? NaN : +percent;\n}\nexport function round(x, precision, returnStr) {\n  if (precision == null) {\n    precision = 10;\n  }\n\n  precision = Math.min(Math.max(0, precision), 20);\n  x = (+x).toFixed(precision);\n  return returnStr ? x : +x;\n}\nexport function asc(arr) {\n  arr.sort(function (a, b) {\n    return a - b;\n  });\n  return arr;\n}\nexport function getPrecision(val) {\n  val = +val;\n\n  if (isNaN(val)) {\n    return 0;\n  }\n\n  var e = 1;\n  var count = 0;\n\n  while (Math.round(val * e) / e !== val) {\n    e *= 10;\n    count++;\n  }\n\n  return count;\n}\nexport function getPrecisionSafe(val) {\n  var str = val.toString();\n  var eIndex = str.indexOf('e');\n\n  if (eIndex > 0) {\n    var precision = +str.slice(eIndex + 1);\n    return precision < 0 ? -precision : 0;\n  } else {\n    var dotIndex = str.indexOf('.');\n    return dotIndex < 0 ? 0 : str.length - 1 - dotIndex;\n  }\n}\nexport function getPixelPrecision(dataExtent, pixelExtent) {\n  var log = Math.log;\n  var LN10 = Math.LN10;\n  var dataQuantity = Math.floor(log(dataExtent[1] - dataExtent[0]) / LN10);\n  var sizeQuantity = Math.round(log(Math.abs(pixelExtent[1] - pixelExtent[0])) / LN10);\n  var precision = Math.min(Math.max(-dataQuantity + sizeQuantity, 0), 20);\n  return !isFinite(precision) ? 20 : precision;\n}\nexport function getPercentWithPrecision(valueList, idx, precision) {\n  if (!valueList[idx]) {\n    return 0;\n  }\n\n  var sum = zrUtil.reduce(valueList, function (acc, val) {\n    return acc + (isNaN(val) ? 0 : val);\n  }, 0);\n\n  if (sum === 0) {\n    return 0;\n  }\n\n  var digits = Math.pow(10, precision);\n  var votesPerQuota = zrUtil.map(valueList, function (val) {\n    return (isNaN(val) ? 0 : val) / sum * digits * 100;\n  });\n  var targetSeats = digits * 100;\n  var seats = zrUtil.map(votesPerQuota, function (votes) {\n    return Math.floor(votes);\n  });\n  var currentSum = zrUtil.reduce(seats, function (acc, val) {\n    return acc + val;\n  }, 0);\n  var remainder = zrUtil.map(votesPerQuota, function (votes, idx) {\n    return votes - seats[idx];\n  });\n\n  while (currentSum < targetSeats) {\n    var max = Number.NEGATIVE_INFINITY;\n    var maxId = null;\n\n    for (var i = 0, len = remainder.length; i < len; ++i) {\n      if (remainder[i] > max) {\n        max = remainder[i];\n        maxId = i;\n      }\n    }\n\n    ++seats[maxId];\n    remainder[maxId] = 0;\n    ++currentSum;\n  }\n\n  return seats[idx] / digits;\n}\nexport var MAX_SAFE_INTEGER = 9007199254740991;\nexport function remRadian(radian) {\n  var pi2 = Math.PI * 2;\n  return (radian % pi2 + pi2) % pi2;\n}\nexport function isRadianAroundZero(val) {\n  return val > -RADIAN_EPSILON && val < RADIAN_EPSILON;\n}\nvar 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)?)?)?)?)?$/;\nexport function parseDate(value) {\n  if (value instanceof Date) {\n    return value;\n  } else if (typeof value === 'string') {\n    var match = TIME_REG.exec(value);\n\n    if (!match) {\n      return new Date(NaN);\n    }\n\n    if (!match[8]) {\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);\n    } else {\n      var hour = +match[4] || 0;\n\n      if (match[8].toUpperCase() !== 'Z') {\n        hour -= +match[8].slice(0, 3);\n      }\n\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));\n    }\n  } else if (value == null) {\n    return new Date(NaN);\n  }\n\n  return new Date(Math.round(value));\n}\nexport function quantity(val) {\n  return Math.pow(10, quantityExponent(val));\n}\nexport function quantityExponent(val) {\n  if (val === 0) {\n    return 0;\n  }\n\n  var exp = Math.floor(Math.log(val) / Math.LN10);\n\n  if (val / Math.pow(10, exp) >= 10) {\n    exp++;\n  }\n\n  return exp;\n}\nexport function nice(val, round) {\n  var exponent = quantityExponent(val);\n  var exp10 = Math.pow(10, exponent);\n  var f = val / exp10;\n  var nf;\n\n  if (round) {\n    if (f < 1.5) {\n      nf = 1;\n    } else if (f < 2.5) {\n      nf = 2;\n    } else if (f < 4) {\n      nf = 3;\n    } else if (f < 7) {\n      nf = 5;\n    } else {\n      nf = 10;\n    }\n  } else {\n    if (f < 1) {\n      nf = 1;\n    } else if (f < 2) {\n      nf = 2;\n    } else if (f < 3) {\n      nf = 3;\n    } else if (f < 5) {\n      nf = 5;\n    } else {\n      nf = 10;\n    }\n  }\n\n  val = nf * exp10;\n  return exponent >= -20 ? +val.toFixed(exponent < 0 ? -exponent : 0) : val;\n}\nexport function quantile(ascArr, p) {\n  var H = (ascArr.length - 1) * p + 1;\n  var h = Math.floor(H);\n  var v = +ascArr[h - 1];\n  var e = H - h;\n  return e ? v + e * (ascArr[h] - v) : v;\n}\nexport function reformIntervals(list) {\n  list.sort(function (a, b) {\n    return littleThan(a, b, 0) ? -1 : 1;\n  });\n  var curr = -Infinity;\n  var currClose = 1;\n\n  for (var i = 0; i < list.length;) {\n    var interval = list[i].interval;\n    var close_1 = list[i].close;\n\n    for (var lg = 0; lg < 2; lg++) {\n      if (interval[lg] <= curr) {\n        interval[lg] = curr;\n        close_1[lg] = !lg ? 1 - currClose : 1;\n      }\n\n      curr = interval[lg];\n      currClose = close_1[lg];\n    }\n\n    if (interval[0] === interval[1] && close_1[0] * close_1[1] !== 1) {\n      list.splice(i, 1);\n    } else {\n      i++;\n    }\n  }\n\n  return list;\n\n  function littleThan(a, b, lg) {\n    return a.interval[lg] < b.interval[lg] || a.interval[lg] === b.interval[lg] && (a.close[lg] - b.close[lg] === (!lg ? 1 : -1) || !lg && littleThan(a, b, 1));\n  }\n}\nexport function numericToNumber(val) {\n  var valFloat = parseFloat(val);\n  return valFloat == val && (valFloat !== 0 || typeof val !== 'string' || val.indexOf('x') <= 0) ? valFloat : NaN;\n}\nexport function isNumeric(val) {\n  return !isNaN(numericToNumber(val));\n}\nexport function getRandomIdBase() {\n  return Math.round(Math.random() * 9);\n}\nexport function getGreatestCommonDividor(a, b) {\n  if (b === 0) {\n    return a;\n  }\n\n  return getGreatestCommonDividor(b, a % b);\n}\nexport function getLeastCommonMultiple(a, b) {\n  if (a == null) {\n    return b;\n  }\n\n  if (b == null) {\n    return a;\n  }\n\n  return a * b / getGreatestCommonDividor(a, b);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { map, isString, isFunction, eqNaN, isRegExp } from 'zrender/lib/core/util';\nvar ECHARTS_PREFIX = '[ECharts] ';\nvar storedLogs = {};\nvar hasConsole = typeof console !== 'undefined' && console.warn && console.log;\nexport function log(str) {\n  if (hasConsole) {\n    console.log(ECHARTS_PREFIX + str);\n  }\n}\nexport function warn(str) {\n  if (hasConsole) {\n    console.warn(ECHARTS_PREFIX + str);\n  }\n}\nexport function error(str) {\n  if (hasConsole) {\n    console.error(ECHARTS_PREFIX + str);\n  }\n}\nexport function deprecateLog(str) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (storedLogs[str]) {\n      return;\n    }\n\n    if (hasConsole) {\n      storedLogs[str] = true;\n      console.warn(ECHARTS_PREFIX + 'DEPRECATED: ' + str);\n    }\n  }\n}\nexport function deprecateReplaceLog(oldOpt, newOpt, scope) {\n  if (process.env.NODE_ENV !== 'production') {\n    deprecateLog((scope ? \"[\" + scope + \"]\" : '') + (oldOpt + \" is deprecated, use \" + newOpt + \" instead.\"));\n  }\n}\nexport function consoleLog() {\n  var args = [];\n\n  for (var _i = 0; _i < arguments.length; _i++) {\n    args[_i] = arguments[_i];\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (typeof console !== 'undefined' && console.log) {\n      console.log.apply(console, args);\n    }\n  }\n}\nexport function makePrintable() {\n  var hintInfo = [];\n\n  for (var _i = 0; _i < arguments.length; _i++) {\n    hintInfo[_i] = arguments[_i];\n  }\n\n  var msg = '';\n\n  if (process.env.NODE_ENV !== 'production') {\n    var makePrintableStringIfPossible_1 = function (val) {\n      return val === void 0 ? 'undefined' : val === Infinity ? 'Infinity' : val === -Infinity ? '-Infinity' : eqNaN(val) ? 'NaN' : val instanceof Date ? 'Date(' + val.toISOString() + ')' : isFunction(val) ? 'function () { ... }' : isRegExp(val) ? val + '' : null;\n    };\n\n    msg = map(hintInfo, function (arg) {\n      if (isString(arg)) {\n        return arg;\n      } else {\n        var printableStr = makePrintableStringIfPossible_1(arg);\n\n        if (printableStr != null) {\n          return printableStr;\n        } else if (typeof JSON !== 'undefined' && JSON.stringify) {\n          try {\n            return JSON.stringify(arg, function (n, val) {\n              var printableStr = makePrintableStringIfPossible_1(val);\n              return printableStr == null ? val : printableStr;\n            });\n          } catch (err) {\n            return '?';\n          }\n        } else {\n          return '?';\n        }\n      }\n    }).join(' ');\n  }\n\n  return msg;\n}\nexport function throwError(msg) {\n  throw new Error(msg);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, isObject, isArray, createHashMap, map, assert, isString, indexOf, isStringSafe } from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport { isNumeric, getRandomIdBase, getPrecisionSafe, round } from './number';\nimport { interpolateNumber } from 'zrender/lib/animation/Animator';\nimport { warn } from './log';\nvar DUMMY_COMPONENT_NAME_PREFIX = 'series\\0';\nvar INTERNAL_COMPONENT_ID_PREFIX = '\\0_ec_\\0';\nexport function normalizeToArray(value) {\n  return value instanceof Array ? value : value == null ? [] : [value];\n}\nexport function defaultEmphasis(opt, key, subOpts) {\n  if (opt) {\n    opt[key] = opt[key] || {};\n    opt.emphasis = opt.emphasis || {};\n    opt.emphasis[key] = opt.emphasis[key] || {};\n\n    for (var i = 0, len = subOpts.length; i < len; i++) {\n      var subOptName = subOpts[i];\n\n      if (!opt.emphasis[key].hasOwnProperty(subOptName) && opt[key].hasOwnProperty(subOptName)) {\n        opt.emphasis[key][subOptName] = opt[key][subOptName];\n      }\n    }\n  }\n}\nexport var TEXT_STYLE_OPTIONS = ['fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'rich', 'tag', 'color', 'textBorderColor', 'textBorderWidth', 'width', 'height', 'lineHeight', 'align', 'verticalAlign', 'baseline', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY', 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY', 'backgroundColor', 'borderColor', 'borderWidth', 'borderRadius', 'padding'];\nexport function getDataItemValue(dataItem) {\n  return isObject(dataItem) && !isArray(dataItem) && !(dataItem instanceof Date) ? dataItem.value : dataItem;\n}\nexport function isDataItemOption(dataItem) {\n  return isObject(dataItem) && !(dataItem instanceof Array);\n}\n;\nexport function mappingToExists(existings, newCmptOptions, mode) {\n  var isNormalMergeMode = mode === 'normalMerge';\n  var isReplaceMergeMode = mode === 'replaceMerge';\n  var isReplaceAllMode = mode === 'replaceAll';\n  existings = existings || [];\n  newCmptOptions = (newCmptOptions || []).slice();\n  var existingIdIdxMap = createHashMap();\n  each(newCmptOptions, function (cmptOption, index) {\n    if (!isObject(cmptOption)) {\n      newCmptOptions[index] = null;\n      return;\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (cmptOption.id != null && !isValidIdOrName(cmptOption.id)) {\n        warnInvalidateIdOrName(cmptOption.id);\n      }\n\n      if (cmptOption.name != null && !isValidIdOrName(cmptOption.name)) {\n        warnInvalidateIdOrName(cmptOption.name);\n      }\n    }\n  });\n  var result = prepareResult(existings, existingIdIdxMap, mode);\n\n  if (isNormalMergeMode || isReplaceMergeMode) {\n    mappingById(result, existings, existingIdIdxMap, newCmptOptions);\n  }\n\n  if (isNormalMergeMode) {\n    mappingByName(result, newCmptOptions);\n  }\n\n  if (isNormalMergeMode || isReplaceMergeMode) {\n    mappingByIndex(result, newCmptOptions, isReplaceMergeMode);\n  } else if (isReplaceAllMode) {\n    mappingInReplaceAllMode(result, newCmptOptions);\n  }\n\n  makeIdAndName(result);\n  return result;\n}\n\nfunction prepareResult(existings, existingIdIdxMap, mode) {\n  var result = [];\n\n  if (mode === 'replaceAll') {\n    return result;\n  }\n\n  for (var index = 0; index < existings.length; index++) {\n    var existing = existings[index];\n\n    if (existing && existing.id != null) {\n      existingIdIdxMap.set(existing.id, index);\n    }\n\n    result.push({\n      existing: mode === 'replaceMerge' || isComponentIdInternal(existing) ? null : existing,\n      newOption: null,\n      keyInfo: null,\n      brandNew: null\n    });\n  }\n\n  return result;\n}\n\nfunction mappingById(result, existings, existingIdIdxMap, newCmptOptions) {\n  each(newCmptOptions, function (cmptOption, index) {\n    if (!cmptOption || cmptOption.id == null) {\n      return;\n    }\n\n    var optionId = makeComparableKey(cmptOption.id);\n    var existingIdx = existingIdIdxMap.get(optionId);\n\n    if (existingIdx != null) {\n      var resultItem = result[existingIdx];\n      assert(!resultItem.newOption, 'Duplicated option on id \"' + optionId + '\".');\n      resultItem.newOption = cmptOption;\n      resultItem.existing = existings[existingIdx];\n      newCmptOptions[index] = null;\n    }\n  });\n}\n\nfunction mappingByName(result, newCmptOptions) {\n  each(newCmptOptions, function (cmptOption, index) {\n    if (!cmptOption || cmptOption.name == null) {\n      return;\n    }\n\n    for (var i = 0; i < result.length; i++) {\n      var existing = result[i].existing;\n\n      if (!result[i].newOption && existing && (existing.id == null || cmptOption.id == null) && !isComponentIdInternal(cmptOption) && !isComponentIdInternal(existing) && keyExistAndEqual('name', existing, cmptOption)) {\n        result[i].newOption = cmptOption;\n        newCmptOptions[index] = null;\n        return;\n      }\n    }\n  });\n}\n\nfunction mappingByIndex(result, newCmptOptions, brandNew) {\n  each(newCmptOptions, function (cmptOption) {\n    if (!cmptOption) {\n      return;\n    }\n\n    var resultItem;\n    var nextIdx = 0;\n\n    while ((resultItem = result[nextIdx]) && (resultItem.newOption || isComponentIdInternal(resultItem.existing) || resultItem.existing && cmptOption.id != null && !keyExistAndEqual('id', cmptOption, resultItem.existing))) {\n      nextIdx++;\n    }\n\n    if (resultItem) {\n      resultItem.newOption = cmptOption;\n      resultItem.brandNew = brandNew;\n    } else {\n      result.push({\n        newOption: cmptOption,\n        brandNew: brandNew,\n        existing: null,\n        keyInfo: null\n      });\n    }\n\n    nextIdx++;\n  });\n}\n\nfunction mappingInReplaceAllMode(result, newCmptOptions) {\n  each(newCmptOptions, function (cmptOption) {\n    result.push({\n      newOption: cmptOption,\n      brandNew: true,\n      existing: null,\n      keyInfo: null\n    });\n  });\n}\n\nfunction makeIdAndName(mapResult) {\n  var idMap = createHashMap();\n  each(mapResult, function (item) {\n    var existing = item.existing;\n    existing && idMap.set(existing.id, item);\n  });\n  each(mapResult, function (item) {\n    var opt = item.newOption;\n    assert(!opt || opt.id == null || !idMap.get(opt.id) || idMap.get(opt.id) === item, 'id duplicates: ' + (opt && opt.id));\n    opt && opt.id != null && idMap.set(opt.id, item);\n    !item.keyInfo && (item.keyInfo = {});\n  });\n  each(mapResult, function (item, index) {\n    var existing = item.existing;\n    var opt = item.newOption;\n    var keyInfo = item.keyInfo;\n\n    if (!isObject(opt)) {\n      return;\n    }\n\n    keyInfo.name = opt.name != null ? makeComparableKey(opt.name) : existing ? existing.name : DUMMY_COMPONENT_NAME_PREFIX + index;\n\n    if (existing) {\n      keyInfo.id = makeComparableKey(existing.id);\n    } else if (opt.id != null) {\n      keyInfo.id = makeComparableKey(opt.id);\n    } else {\n      var idNum = 0;\n\n      do {\n        keyInfo.id = '\\0' + keyInfo.name + '\\0' + idNum++;\n      } while (idMap.get(keyInfo.id));\n    }\n\n    idMap.set(keyInfo.id, item);\n  });\n}\n\nfunction keyExistAndEqual(attr, obj1, obj2) {\n  var key1 = convertOptionIdName(obj1[attr], null);\n  var key2 = convertOptionIdName(obj2[attr], null);\n  return key1 != null && key2 != null && key1 === key2;\n}\n\nfunction makeComparableKey(val) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (val == null) {\n      throw new Error();\n    }\n  }\n\n  return convertOptionIdName(val, '');\n}\n\nexport function convertOptionIdName(idOrName, defaultValue) {\n  if (idOrName == null) {\n    return defaultValue;\n  }\n\n  var type = typeof idOrName;\n  return type === 'string' ? idOrName : type === 'number' || isStringSafe(idOrName) ? idOrName + '' : defaultValue;\n}\n\nfunction warnInvalidateIdOrName(idOrName) {\n  if (process.env.NODE_ENV !== 'production') {\n    warn('`' + idOrName + '` is invalid id or name. Must be a string or number.');\n  }\n}\n\nfunction isValidIdOrName(idOrName) {\n  return isStringSafe(idOrName) || isNumeric(idOrName);\n}\n\nexport function isNameSpecified(componentModel) {\n  var name = componentModel.name;\n  return !!(name && name.indexOf(DUMMY_COMPONENT_NAME_PREFIX));\n}\nexport function isComponentIdInternal(cmptOption) {\n  return cmptOption && cmptOption.id != null && makeComparableKey(cmptOption.id).indexOf(INTERNAL_COMPONENT_ID_PREFIX) === 0;\n}\nexport function makeInternalComponentId(idSuffix) {\n  return INTERNAL_COMPONENT_ID_PREFIX + idSuffix;\n}\nexport function setComponentTypeToKeyInfo(mappingResult, mainType, componentModelCtor) {\n  each(mappingResult, function (item) {\n    var newOption = item.newOption;\n\n    if (isObject(newOption)) {\n      item.keyInfo.mainType = mainType;\n      item.keyInfo.subType = determineSubType(mainType, newOption, item.existing, componentModelCtor);\n    }\n  });\n}\n\nfunction determineSubType(mainType, newCmptOption, existComponent, componentModelCtor) {\n  var subType = newCmptOption.type ? newCmptOption.type : existComponent ? existComponent.subType : componentModelCtor.determineSubType(mainType, newCmptOption);\n  return subType;\n}\n\nexport function compressBatches(batchA, batchB) {\n  var mapA = {};\n  var mapB = {};\n  makeMap(batchA || [], mapA);\n  makeMap(batchB || [], mapB, mapA);\n  return [mapToArray(mapA), mapToArray(mapB)];\n\n  function makeMap(sourceBatch, map, otherMap) {\n    for (var i = 0, len = sourceBatch.length; i < len; i++) {\n      var seriesId = convertOptionIdName(sourceBatch[i].seriesId, null);\n\n      if (seriesId == null) {\n        return;\n      }\n\n      var dataIndices = normalizeToArray(sourceBatch[i].dataIndex);\n      var otherDataIndices = otherMap && otherMap[seriesId];\n\n      for (var j = 0, lenj = dataIndices.length; j < lenj; j++) {\n        var dataIndex = dataIndices[j];\n\n        if (otherDataIndices && otherDataIndices[dataIndex]) {\n          otherDataIndices[dataIndex] = null;\n        } else {\n          (map[seriesId] || (map[seriesId] = {}))[dataIndex] = 1;\n        }\n      }\n    }\n  }\n\n  function mapToArray(map, isData) {\n    var result = [];\n\n    for (var i in map) {\n      if (map.hasOwnProperty(i) && map[i] != null) {\n        if (isData) {\n          result.push(+i);\n        } else {\n          var dataIndices = mapToArray(map[i], true);\n          dataIndices.length && result.push({\n            seriesId: i,\n            dataIndex: dataIndices\n          });\n        }\n      }\n    }\n\n    return result;\n  }\n}\nexport function queryDataIndex(data, payload) {\n  if (payload.dataIndexInside != null) {\n    return payload.dataIndexInside;\n  } else if (payload.dataIndex != null) {\n    return isArray(payload.dataIndex) ? map(payload.dataIndex, function (value) {\n      return data.indexOfRawIndex(value);\n    }) : data.indexOfRawIndex(payload.dataIndex);\n  } else if (payload.name != null) {\n    return isArray(payload.name) ? map(payload.name, function (value) {\n      return data.indexOfName(value);\n    }) : data.indexOfName(payload.name);\n  }\n}\nexport function makeInner() {\n  var key = '__ec_inner_' + innerUniqueIndex++;\n  return function (hostObj) {\n    return hostObj[key] || (hostObj[key] = {});\n  };\n}\nvar innerUniqueIndex = getRandomIdBase();\nexport function parseFinder(ecModel, finderInput, opt) {\n  var finder;\n\n  if (isString(finderInput)) {\n    var obj = {};\n    obj[finderInput + 'Index'] = 0;\n    finder = obj;\n  } else {\n    finder = finderInput;\n  }\n\n  var queryOptionMap = createHashMap();\n  var result = {};\n  var mainTypeSpecified = false;\n  each(finder, function (value, key) {\n    if (key === 'dataIndex' || key === 'dataIndexInside') {\n      result[key] = value;\n      return;\n    }\n\n    var parsedKey = key.match(/^(\\w+)(Index|Id|Name)$/) || [];\n    var mainType = parsedKey[1];\n    var queryType = (parsedKey[2] || '').toLowerCase();\n\n    if (!mainType || !queryType || opt && opt.includeMainTypes && indexOf(opt.includeMainTypes, mainType) < 0) {\n      return;\n    }\n\n    mainTypeSpecified = mainTypeSpecified || !!mainType;\n    var queryOption = queryOptionMap.get(mainType) || queryOptionMap.set(mainType, {});\n    queryOption[queryType] = value;\n  });\n  var defaultMainType = opt ? opt.defaultMainType : null;\n\n  if (!mainTypeSpecified && defaultMainType) {\n    queryOptionMap.set(defaultMainType, {});\n  }\n\n  queryOptionMap.each(function (queryOption, mainType) {\n    var queryResult = queryReferringComponents(ecModel, mainType, queryOption, {\n      useDefault: defaultMainType === mainType,\n      enableAll: opt && opt.enableAll != null ? opt.enableAll : true,\n      enableNone: opt && opt.enableNone != null ? opt.enableNone : true\n    });\n    result[mainType + 'Models'] = queryResult.models;\n    result[mainType + 'Model'] = queryResult.models[0];\n  });\n  return result;\n}\nexport var SINGLE_REFERRING = {\n  useDefault: true,\n  enableAll: false,\n  enableNone: false\n};\nexport var MULTIPLE_REFERRING = {\n  useDefault: false,\n  enableAll: true,\n  enableNone: true\n};\nexport function queryReferringComponents(ecModel, mainType, userOption, opt) {\n  opt = opt || SINGLE_REFERRING;\n  var indexOption = userOption.index;\n  var idOption = userOption.id;\n  var nameOption = userOption.name;\n  var result = {\n    models: null,\n    specified: indexOption != null || idOption != null || nameOption != null\n  };\n\n  if (!result.specified) {\n    var firstCmpt = void 0;\n    result.models = opt.useDefault && (firstCmpt = ecModel.getComponent(mainType)) ? [firstCmpt] : [];\n    return result;\n  }\n\n  if (indexOption === 'none' || indexOption === false) {\n    assert(opt.enableNone, '`\"none\"` or `false` is not a valid value on index option.');\n    result.models = [];\n    return result;\n  }\n\n  if (indexOption === 'all') {\n    assert(opt.enableAll, '`\"all\"` is not a valid value on index option.');\n    indexOption = idOption = nameOption = null;\n  }\n\n  result.models = ecModel.queryComponents({\n    mainType: mainType,\n    index: indexOption,\n    id: idOption,\n    name: nameOption\n  });\n  return result;\n}\nexport function setAttribute(dom, key, value) {\n  dom.setAttribute ? dom.setAttribute(key, value) : dom[key] = value;\n}\nexport function getAttribute(dom, key) {\n  return dom.getAttribute ? dom.getAttribute(key) : dom[key];\n}\nexport function getTooltipRenderMode(renderModeOption) {\n  if (renderModeOption === 'auto') {\n    return env.domSupported ? 'html' : 'richText';\n  } else {\n    return renderModeOption || 'html';\n  }\n}\nexport function groupData(array, getKey) {\n  var buckets = createHashMap();\n  var keys = [];\n  each(array, function (item) {\n    var key = getKey(item);\n    (buckets.get(key) || (keys.push(key), buckets.set(key, []))).push(item);\n  });\n  return {\n    keys: keys,\n    buckets: buckets\n  };\n}\nexport function interpolateRawValues(data, precision, sourceValue, targetValue, percent) {\n  var isAutoPrecision = precision == null || precision === 'auto';\n\n  if (targetValue == null) {\n    return targetValue;\n  }\n\n  if (typeof targetValue === 'number') {\n    var value = interpolateNumber(sourceValue || 0, targetValue, percent);\n    return round(value, isAutoPrecision ? Math.max(getPrecisionSafe(sourceValue || 0), getPrecisionSafe(targetValue)) : precision);\n  } else if (typeof targetValue === 'string') {\n    return percent < 1 ? sourceValue : targetValue;\n  } else {\n    var interpolated = [];\n    var leftArr = sourceValue;\n    var rightArr = targetValue;\n    var length_1 = Math.max(leftArr ? leftArr.length : 0, rightArr.length);\n\n    for (var i = 0; i < length_1; ++i) {\n      var info = data.getDimensionInfo(i);\n\n      if (info.type === 'ordinal') {\n        interpolated[i] = (percent < 1 && leftArr ? leftArr : rightArr)[i];\n      } else {\n        var leftVal = leftArr && leftArr[i] ? leftArr[i] : 0;\n        var rightVal = rightArr[i];\n        var value = interpolateNumber(leftVal, rightVal, percent);\n        interpolated[i] = round(value, isAutoPrecision ? Math.max(getPrecisionSafe(leftVal), getPrecisionSafe(rightVal)) : precision);\n      }\n    }\n\n    return interpolated;\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __spreadArrays } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nvar TYPE_DELIMITER = '.';\nvar IS_CONTAINER = '___EC__COMPONENT__CONTAINER___';\nvar IS_EXTENDED_CLASS = '___EC__EXTENDED_CLASS___';\nexport function parseClassType(componentType) {\n  var ret = {\n    main: '',\n    sub: ''\n  };\n\n  if (componentType) {\n    var typeArr = componentType.split(TYPE_DELIMITER);\n    ret.main = typeArr[0] || '';\n    ret.sub = typeArr[1] || '';\n  }\n\n  return ret;\n}\n\nfunction checkClassType(componentType) {\n  zrUtil.assert(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(componentType), 'componentType \"' + componentType + '\" illegal');\n}\n\nexport function isExtendedClass(clz) {\n  return !!(clz && clz[IS_EXTENDED_CLASS]);\n}\nexport function enableClassExtend(rootClz, mandatoryMethods) {\n  rootClz.$constructor = rootClz;\n\n  rootClz.extend = function (proto) {\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.each(mandatoryMethods, function (method) {\n        if (!proto[method]) {\n          console.warn('Method `' + method + '` should be implemented' + (proto.type ? ' in ' + proto.type : '') + '.');\n        }\n      });\n    }\n\n    var superClass = this;\n\n    function ExtendedClass() {\n      var args = [];\n\n      for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n      }\n\n      if (!proto.$constructor) {\n        if (!isESClass(superClass)) {\n          superClass.apply(this, arguments);\n        } else {\n          var ins = zrUtil.createObject(ExtendedClass.prototype, new (superClass.bind.apply(superClass, __spreadArrays([void 0], args)))());\n          return ins;\n        }\n      } else {\n        proto.$constructor.apply(this, arguments);\n      }\n    }\n\n    ExtendedClass[IS_EXTENDED_CLASS] = true;\n    zrUtil.extend(ExtendedClass.prototype, proto);\n    ExtendedClass.extend = this.extend;\n    ExtendedClass.superCall = superCall;\n    ExtendedClass.superApply = superApply;\n    zrUtil.inherits(ExtendedClass, this);\n    ExtendedClass.superClass = superClass;\n    return ExtendedClass;\n  };\n}\n\nfunction isESClass(fn) {\n  return typeof fn === 'function' && /^class\\s/.test(Function.prototype.toString.call(fn));\n}\n\nexport function mountExtend(SubClz, SupperClz) {\n  SubClz.extend = SupperClz.extend;\n}\nvar classBase = Math.round(Math.random() * 10);\nexport function enableClassCheck(target) {\n  var classAttr = ['__\\0is_clz', classBase++].join('_');\n  target.prototype[classAttr] = true;\n\n  if (process.env.NODE_ENV !== 'production') {\n    zrUtil.assert(!target.isInstance, 'The method \"is\" can not be defined.');\n  }\n\n  target.isInstance = function (obj) {\n    return !!(obj && obj[classAttr]);\n  };\n}\n\nfunction superCall(context, methodName) {\n  var args = [];\n\n  for (var _i = 2; _i < arguments.length; _i++) {\n    args[_i - 2] = arguments[_i];\n  }\n\n  return this.superClass.prototype[methodName].apply(context, args);\n}\n\nfunction superApply(context, methodName, args) {\n  return this.superClass.prototype[methodName].apply(context, args);\n}\n\nexport function enableClassManagement(target) {\n  var storage = {};\n\n  target.registerClass = function (clz) {\n    var componentFullType = clz.type || clz.prototype.type;\n\n    if (componentFullType) {\n      checkClassType(componentFullType);\n      clz.prototype.type = componentFullType;\n      var componentTypeInfo = parseClassType(componentFullType);\n\n      if (!componentTypeInfo.sub) {\n        if (process.env.NODE_ENV !== 'production') {\n          if (storage[componentTypeInfo.main]) {\n            console.warn(componentTypeInfo.main + ' exists.');\n          }\n        }\n\n        storage[componentTypeInfo.main] = clz;\n      } else if (componentTypeInfo.sub !== IS_CONTAINER) {\n        var container = makeContainer(componentTypeInfo);\n        container[componentTypeInfo.sub] = clz;\n      }\n    }\n\n    return clz;\n  };\n\n  target.getClass = function (mainType, subType, throwWhenNotFound) {\n    var clz = storage[mainType];\n\n    if (clz && clz[IS_CONTAINER]) {\n      clz = subType ? clz[subType] : null;\n    }\n\n    if (throwWhenNotFound && !clz) {\n      throw new Error(!subType ? mainType + '.' + 'type should be specified.' : 'Component ' + mainType + '.' + (subType || '') + ' not exists. Load it first.');\n    }\n\n    return clz;\n  };\n\n  target.getClassesByMainType = function (componentType) {\n    var componentTypeInfo = parseClassType(componentType);\n    var result = [];\n    var obj = storage[componentTypeInfo.main];\n\n    if (obj && obj[IS_CONTAINER]) {\n      zrUtil.each(obj, function (o, type) {\n        type !== IS_CONTAINER && result.push(o);\n      });\n    } else {\n      result.push(obj);\n    }\n\n    return result;\n  };\n\n  target.hasClass = function (componentType) {\n    var componentTypeInfo = parseClassType(componentType);\n    return !!storage[componentTypeInfo.main];\n  };\n\n  target.getAllClassMainTypes = function () {\n    var types = [];\n    zrUtil.each(storage, function (obj, type) {\n      types.push(type);\n    });\n    return types;\n  };\n\n  target.hasSubTypes = function (componentType) {\n    var componentTypeInfo = parseClassType(componentType);\n    var obj = storage[componentTypeInfo.main];\n    return obj && obj[IS_CONTAINER];\n  };\n\n  function makeContainer(componentTypeInfo) {\n    var container = storage[componentTypeInfo.main];\n\n    if (!container || !container[IS_CONTAINER]) {\n      container = storage[componentTypeInfo.main] = {};\n      container[IS_CONTAINER] = true;\n    }\n\n    return container;\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function makeStyleMapper(properties, ignoreParent) {\n  for (var i = 0; i < properties.length; i++) {\n    if (!properties[i][1]) {\n      properties[i][1] = properties[i][0];\n    }\n  }\n\n  ignoreParent = ignoreParent || false;\n  return function (model, excludes, includes) {\n    var style = {};\n\n    for (var i = 0; i < properties.length; i++) {\n      var propName = properties[i][1];\n\n      if (excludes && zrUtil.indexOf(excludes, propName) >= 0 || includes && zrUtil.indexOf(includes, propName) < 0) {\n        continue;\n      }\n\n      var val = model.getShallow(propName, ignoreParent);\n\n      if (val != null) {\n        style[properties[i][0]] = val;\n      }\n    }\n\n    return style;\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport makeStyleMapper from './makeStyleMapper';\nexport var AREA_STYLE_KEY_MAP = [['fill', 'color'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['opacity'], ['shadowColor']];\nvar getAreaStyle = makeStyleMapper(AREA_STYLE_KEY_MAP);\n\nvar AreaStyleMixin = function () {\n  function AreaStyleMixin() {}\n\n  AreaStyleMixin.prototype.getAreaStyle = function (excludes, includes) {\n    return getAreaStyle(this, excludes, includes);\n  };\n\n  return AreaStyleMixin;\n}();\n\n;\nexport { AreaStyleMixin };","import LRU from '../../core/LRU';\nvar globalImageCache = new LRU(50);\nexport function findExistImage(newImageOrSrc) {\n    if (typeof newImageOrSrc === 'string') {\n        var cachedImgObj = globalImageCache.get(newImageOrSrc);\n        return cachedImgObj && cachedImgObj.image;\n    }\n    else {\n        return newImageOrSrc;\n    }\n}\nexport function createOrUpdateImage(newImageOrSrc, image, hostEl, onload, cbPayload) {\n    if (!newImageOrSrc) {\n        return image;\n    }\n    else if (typeof newImageOrSrc === 'string') {\n        if ((image && image.__zrImageSrc === newImageOrSrc) || !hostEl) {\n            return image;\n        }\n        var cachedImgObj = globalImageCache.get(newImageOrSrc);\n        var pendingWrap = { hostEl: hostEl, cb: onload, cbPayload: cbPayload };\n        if (cachedImgObj) {\n            image = cachedImgObj.image;\n            !isImageReady(image) && cachedImgObj.pending.push(pendingWrap);\n        }\n        else {\n            image = new Image();\n            image.onload = image.onerror = imageOnLoad;\n            globalImageCache.put(newImageOrSrc, image.__cachedImgObj = {\n                image: image,\n                pending: [pendingWrap]\n            });\n            image.src = image.__zrImageSrc = newImageOrSrc;\n        }\n        return image;\n    }\n    else {\n        return newImageOrSrc;\n    }\n}\nfunction imageOnLoad() {\n    var cachedImgObj = this.__cachedImgObj;\n    this.onload = this.onerror = this.__cachedImgObj = null;\n    for (var i = 0; i < cachedImgObj.pending.length; i++) {\n        var pendingWrap = cachedImgObj.pending[i];\n        var cb = pendingWrap.cb;\n        cb && cb(this, pendingWrap.cbPayload);\n        pendingWrap.hostEl.dirty();\n    }\n    cachedImgObj.pending.length = 0;\n}\nexport function isImageReady(image) {\n    return image && image.width && image.height;\n}\n","import * as imageHelper from '../helper/image';\nimport { extend, retrieve2, retrieve3, reduce } from '../../core/util';\nimport { getLineHeight, getWidth } from '../../contain/text';\nvar STYLE_REG = /\\{([a-zA-Z0-9_]+)\\|([^}]*)\\}/g;\nexport function truncateText(text, containerWidth, font, ellipsis, options) {\n    if (!containerWidth) {\n        return '';\n    }\n    var textLines = (text + '').split('\\n');\n    options = prepareTruncateOptions(containerWidth, font, ellipsis, options);\n    for (var i = 0, len = textLines.length; i < len; i++) {\n        textLines[i] = truncateSingleLine(textLines[i], options);\n    }\n    return textLines.join('\\n');\n}\nfunction prepareTruncateOptions(containerWidth, font, ellipsis, options) {\n    options = options || {};\n    var preparedOpts = extend({}, options);\n    preparedOpts.font = font;\n    ellipsis = retrieve2(ellipsis, '...');\n    preparedOpts.maxIterations = retrieve2(options.maxIterations, 2);\n    var minChar = preparedOpts.minChar = retrieve2(options.minChar, 0);\n    preparedOpts.cnCharWidth = getWidth('国', font);\n    var ascCharWidth = preparedOpts.ascCharWidth = getWidth('a', font);\n    preparedOpts.placeholder = retrieve2(options.placeholder, '');\n    var contentWidth = containerWidth = Math.max(0, containerWidth - 1);\n    for (var i = 0; i < minChar && contentWidth >= ascCharWidth; i++) {\n        contentWidth -= ascCharWidth;\n    }\n    var ellipsisWidth = getWidth(ellipsis, font);\n    if (ellipsisWidth > contentWidth) {\n        ellipsis = '';\n        ellipsisWidth = 0;\n    }\n    contentWidth = containerWidth - ellipsisWidth;\n    preparedOpts.ellipsis = ellipsis;\n    preparedOpts.ellipsisWidth = ellipsisWidth;\n    preparedOpts.contentWidth = contentWidth;\n    preparedOpts.containerWidth = containerWidth;\n    return preparedOpts;\n}\nfunction truncateSingleLine(textLine, options) {\n    var containerWidth = options.containerWidth;\n    var font = options.font;\n    var contentWidth = options.contentWidth;\n    if (!containerWidth) {\n        return '';\n    }\n    var lineWidth = getWidth(textLine, font);\n    if (lineWidth <= containerWidth) {\n        return textLine;\n    }\n    for (var j = 0;; j++) {\n        if (lineWidth <= contentWidth || j >= options.maxIterations) {\n            textLine += options.ellipsis;\n            break;\n        }\n        var subLength = j === 0\n            ? estimateLength(textLine, contentWidth, options.ascCharWidth, options.cnCharWidth)\n            : lineWidth > 0\n                ? Math.floor(textLine.length * contentWidth / lineWidth)\n                : 0;\n        textLine = textLine.substr(0, subLength);\n        lineWidth = getWidth(textLine, font);\n    }\n    if (textLine === '') {\n        textLine = options.placeholder;\n    }\n    return textLine;\n}\nfunction estimateLength(text, contentWidth, ascCharWidth, cnCharWidth) {\n    var width = 0;\n    var i = 0;\n    for (var len = text.length; i < len && width < contentWidth; i++) {\n        var charCode = text.charCodeAt(i);\n        width += (0 <= charCode && charCode <= 127) ? ascCharWidth : cnCharWidth;\n    }\n    return i;\n}\nexport function parsePlainText(text, style) {\n    text != null && (text += '');\n    var overflow = style.overflow;\n    var padding = style.padding;\n    var font = style.font;\n    var truncate = overflow === 'truncate';\n    var calculatedLineHeight = getLineHeight(font);\n    var lineHeight = retrieve2(style.lineHeight, calculatedLineHeight);\n    var truncateLineOverflow = style.lineOverflow === 'truncate';\n    var width = style.width;\n    var lines;\n    if (width != null && overflow === 'break' || overflow === 'breakAll') {\n        lines = text ? wrapText(text, style.font, width, overflow === 'breakAll', 0).lines : [];\n    }\n    else {\n        lines = text ? text.split('\\n') : [];\n    }\n    var contentHeight = lines.length * lineHeight;\n    var height = retrieve2(style.height, contentHeight);\n    if (contentHeight > height && truncateLineOverflow) {\n        var lineCount = Math.floor(height / lineHeight);\n        lines = lines.slice(0, lineCount);\n    }\n    var outerHeight = height;\n    var outerWidth = width;\n    if (padding) {\n        outerHeight += padding[0] + padding[2];\n        if (outerWidth != null) {\n            outerWidth += padding[1] + padding[3];\n        }\n    }\n    if (text && truncate && outerWidth != null) {\n        var options = prepareTruncateOptions(width, font, style.ellipsis, {\n            minChar: style.truncateMinChar,\n            placeholder: style.placeholder\n        });\n        for (var i = 0; i < lines.length; i++) {\n            lines[i] = truncateSingleLine(lines[i], options);\n        }\n    }\n    if (width == null) {\n        var maxWidth = 0;\n        for (var i = 0; i < lines.length; i++) {\n            maxWidth = Math.max(getWidth(lines[i], font), maxWidth);\n        }\n        width = maxWidth;\n    }\n    return {\n        lines: lines,\n        height: height,\n        outerHeight: outerHeight,\n        lineHeight: lineHeight,\n        calculatedLineHeight: calculatedLineHeight,\n        contentHeight: contentHeight,\n        width: width\n    };\n}\nvar RichTextToken = (function () {\n    function RichTextToken() {\n    }\n    return RichTextToken;\n}());\nvar RichTextLine = (function () {\n    function RichTextLine(tokens) {\n        this.tokens = [];\n        if (tokens) {\n            this.tokens = tokens;\n        }\n    }\n    return RichTextLine;\n}());\nvar RichTextContentBlock = (function () {\n    function RichTextContentBlock() {\n        this.width = 0;\n        this.height = 0;\n        this.contentWidth = 0;\n        this.contentHeight = 0;\n        this.outerWidth = 0;\n        this.outerHeight = 0;\n        this.lines = [];\n    }\n    return RichTextContentBlock;\n}());\nexport { RichTextContentBlock };\nexport function parseRichText(text, style) {\n    var contentBlock = new RichTextContentBlock();\n    text != null && (text += '');\n    if (!text) {\n        return contentBlock;\n    }\n    var topWidth = style.width;\n    var topHeight = style.height;\n    var overflow = style.overflow;\n    var wrapInfo = (overflow === 'break' || overflow === 'breakAll') && topWidth != null\n        ? { width: topWidth, accumWidth: 0, breakAll: overflow === 'breakAll' }\n        : null;\n    var lastIndex = STYLE_REG.lastIndex = 0;\n    var result;\n    while ((result = STYLE_REG.exec(text)) != null) {\n        var matchedIndex = result.index;\n        if (matchedIndex > lastIndex) {\n            pushTokens(contentBlock, text.substring(lastIndex, matchedIndex), style, wrapInfo);\n        }\n        pushTokens(contentBlock, result[2], style, wrapInfo, result[1]);\n        lastIndex = STYLE_REG.lastIndex;\n    }\n    if (lastIndex < text.length) {\n        pushTokens(contentBlock, text.substring(lastIndex, text.length), style, wrapInfo);\n    }\n    var pendingList = [];\n    var calculatedHeight = 0;\n    var calculatedWidth = 0;\n    var stlPadding = style.padding;\n    var truncate = overflow === 'truncate';\n    var truncateLine = style.lineOverflow === 'truncate';\n    var prevToken;\n    function finishLine(line, lineWidth, lineHeight) {\n        line.width = lineWidth;\n        line.lineHeight = lineHeight;\n        calculatedHeight += lineHeight;\n        calculatedWidth = Math.max(calculatedWidth, lineWidth);\n    }\n    outer: for (var i = 0; i < contentBlock.lines.length; i++) {\n        var line = contentBlock.lines[i];\n        var lineHeight = 0;\n        var lineWidth = 0;\n        for (var j = 0; j < line.tokens.length; j++) {\n            var token = line.tokens[j];\n            var tokenStyle = token.styleName && style.rich[token.styleName] || {};\n            var textPadding = token.textPadding = tokenStyle.padding;\n            var paddingH = textPadding ? textPadding[1] + textPadding[3] : 0;\n            var font = token.font = tokenStyle.font || style.font;\n            token.contentHeight = getLineHeight(font);\n            var tokenHeight = retrieve2(tokenStyle.height, token.contentHeight);\n            token.innerHeight = tokenHeight;\n            textPadding && (tokenHeight += textPadding[0] + textPadding[2]);\n            token.height = tokenHeight;\n            token.lineHeight = retrieve3(tokenStyle.lineHeight, style.lineHeight, tokenHeight);\n            token.align = tokenStyle && tokenStyle.align || style.align;\n            token.verticalAlign = tokenStyle && tokenStyle.verticalAlign || 'middle';\n            if (truncateLine && topHeight != null && calculatedHeight + token.lineHeight > topHeight) {\n                if (j > 0) {\n                    line.tokens = line.tokens.slice(0, j);\n                    finishLine(line, lineWidth, lineHeight);\n                    contentBlock.lines = contentBlock.lines.slice(0, i + 1);\n                }\n                else {\n                    contentBlock.lines = contentBlock.lines.slice(0, i);\n                }\n                break outer;\n            }\n            var styleTokenWidth = tokenStyle.width;\n            var tokenWidthNotSpecified = styleTokenWidth == null || styleTokenWidth === 'auto';\n            if (typeof styleTokenWidth === 'string' && styleTokenWidth.charAt(styleTokenWidth.length - 1) === '%') {\n                token.percentWidth = styleTokenWidth;\n                pendingList.push(token);\n                token.contentWidth = getWidth(token.text, font);\n            }\n            else {\n                if (tokenWidthNotSpecified) {\n                    var textBackgroundColor = tokenStyle.backgroundColor;\n                    var bgImg = textBackgroundColor && textBackgroundColor.image;\n                    if (bgImg) {\n                        bgImg = imageHelper.findExistImage(bgImg);\n                        if (imageHelper.isImageReady(bgImg)) {\n                            token.width = Math.max(token.width, bgImg.width * tokenHeight / bgImg.height);\n                        }\n                    }\n                }\n                var remainTruncWidth = truncate && topWidth != null\n                    ? topWidth - lineWidth : null;\n                if (remainTruncWidth != null && remainTruncWidth < token.width) {\n                    if (!tokenWidthNotSpecified || remainTruncWidth < paddingH) {\n                        token.text = '';\n                        token.width = token.contentWidth = 0;\n                    }\n                    else {\n                        token.text = truncateText(token.text, remainTruncWidth - paddingH, font, style.ellipsis, { minChar: style.truncateMinChar });\n                        token.width = token.contentWidth = getWidth(token.text, font);\n                    }\n                }\n                else {\n                    token.contentWidth = getWidth(token.text, font);\n                }\n            }\n            token.width += paddingH;\n            lineWidth += token.width;\n            tokenStyle && (lineHeight = Math.max(lineHeight, token.lineHeight));\n            prevToken = token;\n        }\n        finishLine(line, lineWidth, lineHeight);\n    }\n    contentBlock.outerWidth = contentBlock.width = retrieve2(topWidth, calculatedWidth);\n    contentBlock.outerHeight = contentBlock.height = retrieve2(topHeight, calculatedHeight);\n    contentBlock.contentHeight = calculatedHeight;\n    contentBlock.contentWidth = calculatedWidth;\n    if (stlPadding) {\n        contentBlock.outerWidth += stlPadding[1] + stlPadding[3];\n        contentBlock.outerHeight += stlPadding[0] + stlPadding[2];\n    }\n    for (var i = 0; i < pendingList.length; i++) {\n        var token = pendingList[i];\n        var percentWidth = token.percentWidth;\n        token.width = parseInt(percentWidth, 10) / 100 * contentBlock.width;\n    }\n    return contentBlock;\n}\nfunction pushTokens(block, str, style, wrapInfo, styleName) {\n    var isEmptyStr = str === '';\n    var tokenStyle = styleName && style.rich[styleName] || {};\n    var lines = block.lines;\n    var font = tokenStyle.font || style.font;\n    var newLine = false;\n    var strLines;\n    var linesWidths;\n    if (wrapInfo) {\n        var tokenPadding = tokenStyle.padding;\n        var tokenPaddingH = tokenPadding ? tokenPadding[1] + tokenPadding[3] : 0;\n        if (tokenStyle.width != null && tokenStyle.width !== 'auto') {\n            var outerWidth_1 = parsePercent(tokenStyle.width, wrapInfo.width) + tokenPaddingH;\n            if (lines.length > 0) {\n                if (outerWidth_1 + wrapInfo.accumWidth > wrapInfo.width) {\n                    strLines = str.split('\\n');\n                    newLine = true;\n                }\n            }\n            wrapInfo.accumWidth = outerWidth_1;\n        }\n        else {\n            var res = wrapText(str, font, wrapInfo.width, wrapInfo.breakAll, wrapInfo.accumWidth);\n            wrapInfo.accumWidth = res.accumWidth + tokenPaddingH;\n            linesWidths = res.linesWidths;\n            strLines = res.lines;\n        }\n    }\n    else {\n        strLines = str.split('\\n');\n    }\n    for (var i = 0; i < strLines.length; i++) {\n        var text = strLines[i];\n        var token = new RichTextToken();\n        token.styleName = styleName;\n        token.text = text;\n        token.isLineHolder = !text && !isEmptyStr;\n        if (typeof tokenStyle.width === 'number') {\n            token.width = tokenStyle.width;\n        }\n        else {\n            token.width = linesWidths\n                ? linesWidths[i]\n                : getWidth(text, font);\n        }\n        if (!i && !newLine) {\n            var tokens = (lines[lines.length - 1] || (lines[0] = new RichTextLine())).tokens;\n            var tokensLen = tokens.length;\n            (tokensLen === 1 && tokens[0].isLineHolder)\n                ? (tokens[0] = token)\n                : ((text || !tokensLen || isEmptyStr) && tokens.push(token));\n        }\n        else {\n            lines.push(new RichTextLine([token]));\n        }\n    }\n}\nfunction isLatin(ch) {\n    var code = ch.charCodeAt(0);\n    return code >= 0x21 && code <= 0xFF;\n}\nvar breakCharMap = reduce(',&?/;] '.split(''), function (obj, ch) {\n    obj[ch] = true;\n    return obj;\n}, {});\nfunction isWordBreakChar(ch) {\n    if (isLatin(ch)) {\n        if (breakCharMap[ch]) {\n            return true;\n        }\n        return false;\n    }\n    return true;\n}\nfunction wrapText(text, font, lineWidth, isBreakAll, lastAccumWidth) {\n    var lines = [];\n    var linesWidths = [];\n    var line = '';\n    var currentWord = '';\n    var currentWordWidth = 0;\n    var accumWidth = 0;\n    for (var i = 0; i < text.length; i++) {\n        var ch = text.charAt(i);\n        if (ch === '\\n') {\n            if (currentWord) {\n                line += currentWord;\n                accumWidth += currentWordWidth;\n            }\n            lines.push(line);\n            linesWidths.push(accumWidth);\n            line = '';\n            currentWord = '';\n            currentWordWidth = 0;\n            accumWidth = 0;\n            continue;\n        }\n        var chWidth = getWidth(ch, font);\n        var inWord = isBreakAll ? false : !isWordBreakChar(ch);\n        if (!lines.length\n            ? lastAccumWidth + accumWidth + chWidth > lineWidth\n            : accumWidth + chWidth > lineWidth) {\n            if (!accumWidth) {\n                if (inWord) {\n                    lines.push(currentWord);\n                    linesWidths.push(currentWordWidth);\n                    currentWord = ch;\n                    currentWordWidth = chWidth;\n                }\n                else {\n                    lines.push(ch);\n                    linesWidths.push(chWidth);\n                }\n            }\n            else if (line || currentWord) {\n                if (inWord) {\n                    if (!line) {\n                        line = currentWord;\n                        currentWord = '';\n                        currentWordWidth = 0;\n                        accumWidth = currentWordWidth;\n                    }\n                    lines.push(line);\n                    linesWidths.push(accumWidth - currentWordWidth);\n                    currentWord += ch;\n                    currentWordWidth += chWidth;\n                    line = '';\n                    accumWidth = currentWordWidth;\n                }\n                else {\n                    if (currentWord) {\n                        line += currentWord;\n                        accumWidth += currentWordWidth;\n                        currentWord = '';\n                        currentWordWidth = 0;\n                    }\n                    lines.push(line);\n                    linesWidths.push(accumWidth);\n                    line = ch;\n                    accumWidth = chWidth;\n                }\n            }\n            continue;\n        }\n        accumWidth += chWidth;\n        if (inWord) {\n            currentWord += ch;\n            currentWordWidth += chWidth;\n        }\n        else {\n            if (currentWord) {\n                line += currentWord;\n                currentWord = '';\n                currentWordWidth = 0;\n            }\n            line += ch;\n        }\n    }\n    if (!lines.length && !line) {\n        line = text;\n        currentWord = '';\n        currentWordWidth = 0;\n    }\n    if (currentWord) {\n        line += currentWord;\n    }\n    if (line) {\n        lines.push(line);\n        linesWidths.push(accumWidth);\n    }\n    if (lines.length === 1) {\n        accumWidth += lastAccumWidth;\n    }\n    return {\n        accumWidth: accumWidth,\n        lines: lines,\n        linesWidths: linesWidths\n    };\n}\nfunction parsePercent(value, maxValue) {\n    if (typeof value === 'string') {\n        if (value.lastIndexOf('%') >= 0) {\n            return parseFloat(value) / 100 * maxValue;\n        }\n        return parseFloat(value);\n    }\n    return value;\n}\n","import { __extends } from \"tslib\";\nimport Element from '../Element';\nimport BoundingRect from '../core/BoundingRect';\nimport { keys, extend, createObject } from '../core/util';\nvar STYLE_MAGIC_KEY = '__zr_style_' + Math.round((Math.random() * 10));\nexport var DEFAULT_COMMON_STYLE = {\n    shadowBlur: 0,\n    shadowOffsetX: 0,\n    shadowOffsetY: 0,\n    shadowColor: '#000',\n    opacity: 1,\n    blend: 'source-over'\n};\nexport var DEFAULT_COMMON_ANIMATION_PROPS = {\n    style: {\n        shadowBlur: true,\n        shadowOffsetX: true,\n        shadowOffsetY: true,\n        shadowColor: true,\n        opacity: true\n    }\n};\nDEFAULT_COMMON_STYLE[STYLE_MAGIC_KEY] = true;\nvar PRIMARY_STATES_KEYS = ['z', 'z2', 'invisible'];\nvar Displayable = (function (_super) {\n    __extends(Displayable, _super);\n    function Displayable(props) {\n        return _super.call(this, props) || this;\n    }\n    Displayable.prototype._init = function (props) {\n        var keysArr = keys(props);\n        for (var i = 0; i < keysArr.length; i++) {\n            var key = keysArr[i];\n            if (key === 'style') {\n                this.useStyle(props[key]);\n            }\n            else {\n                _super.prototype.attrKV.call(this, key, props[key]);\n            }\n        }\n        if (!this.style) {\n            this.useStyle({});\n        }\n    };\n    Displayable.prototype.beforeBrush = function () { };\n    Displayable.prototype.afterBrush = function () { };\n    Displayable.prototype.innerBeforeBrush = function () { };\n    Displayable.prototype.innerAfterBrush = function () { };\n    Displayable.prototype.shouldBePainted = function (viewWidth, viewHeight, considerClipPath, considerAncestors) {\n        var m = this.transform;\n        if (this.ignore\n            || this.invisible\n            || this.style.opacity === 0\n            || (this.culling\n                && isDisplayableCulled(this, viewWidth, viewHeight))\n            || (m && !m[0] && !m[3])) {\n            return false;\n        }\n        if (considerClipPath && this.__clipPaths) {\n            for (var i = 0; i < this.__clipPaths.length; ++i) {\n                if (this.__clipPaths[i].isZeroArea()) {\n                    return false;\n                }\n            }\n        }\n        if (considerAncestors && this.parent) {\n            var parent_1 = this.parent;\n            while (parent_1) {\n                if (parent_1.ignore) {\n                    return false;\n                }\n                parent_1 = parent_1.parent;\n            }\n        }\n        return true;\n    };\n    Displayable.prototype.contain = function (x, y) {\n        return this.rectContain(x, y);\n    };\n    Displayable.prototype.traverse = function (cb, context) {\n        cb.call(context, this);\n    };\n    Displayable.prototype.rectContain = function (x, y) {\n        var coord = this.transformCoordToLocal(x, y);\n        var rect = this.getBoundingRect();\n        return rect.contain(coord[0], coord[1]);\n    };\n    Displayable.prototype.getPaintRect = function () {\n        var rect = this._paintRect;\n        if (!this._paintRect || this.__dirty) {\n            var transform = this.transform;\n            var elRect = this.getBoundingRect();\n            var style = this.style;\n            var shadowSize = style.shadowBlur || 0;\n            var shadowOffsetX = style.shadowOffsetX || 0;\n            var shadowOffsetY = style.shadowOffsetY || 0;\n            rect = this._paintRect || (this._paintRect = new BoundingRect(0, 0, 0, 0));\n            if (transform) {\n                BoundingRect.applyTransform(rect, elRect, transform);\n            }\n            else {\n                rect.copy(elRect);\n            }\n            if (shadowSize || shadowOffsetX || shadowOffsetY) {\n                rect.width += shadowSize * 2 + Math.abs(shadowOffsetX);\n                rect.height += shadowSize * 2 + Math.abs(shadowOffsetY);\n                rect.x = Math.min(rect.x, rect.x + shadowOffsetX - shadowSize);\n                rect.y = Math.min(rect.y, rect.y + shadowOffsetY - shadowSize);\n            }\n            var tolerance = this.dirtyRectTolerance;\n            if (!rect.isZero()) {\n                rect.x = Math.floor(rect.x - tolerance);\n                rect.y = Math.floor(rect.y - tolerance);\n                rect.width = Math.ceil(rect.width + 1 + tolerance * 2);\n                rect.height = Math.ceil(rect.height + 1 + tolerance * 2);\n            }\n        }\n        return rect;\n    };\n    Displayable.prototype.setPrevPaintRect = function (paintRect) {\n        if (paintRect) {\n            this._prevPaintRect = this._prevPaintRect || new BoundingRect(0, 0, 0, 0);\n            this._prevPaintRect.copy(paintRect);\n        }\n        else {\n            this._prevPaintRect = null;\n        }\n    };\n    Displayable.prototype.getPrevPaintRect = function () {\n        return this._prevPaintRect;\n    };\n    Displayable.prototype.animateStyle = function (loop) {\n        return this.animate('style', loop);\n    };\n    Displayable.prototype.updateDuringAnimation = function (targetKey) {\n        if (targetKey === 'style') {\n            this.dirtyStyle();\n        }\n        else {\n            this.markRedraw();\n        }\n    };\n    Displayable.prototype.attrKV = function (key, value) {\n        if (key !== 'style') {\n            _super.prototype.attrKV.call(this, key, value);\n        }\n        else {\n            if (!this.style) {\n                this.useStyle(value);\n            }\n            else {\n                this.setStyle(value);\n            }\n        }\n    };\n    Displayable.prototype.setStyle = function (keyOrObj, value) {\n        if (typeof keyOrObj === 'string') {\n            this.style[keyOrObj] = value;\n        }\n        else {\n            extend(this.style, keyOrObj);\n        }\n        this.dirtyStyle();\n        return this;\n    };\n    Displayable.prototype.dirtyStyle = function () {\n        this.markRedraw();\n        this.__dirty |= Displayable.STYLE_CHANGED_BIT;\n        if (this._rect) {\n            this._rect = null;\n        }\n    };\n    Displayable.prototype.dirty = function () {\n        this.dirtyStyle();\n    };\n    Displayable.prototype.styleChanged = function () {\n        return !!(this.__dirty & Displayable.STYLE_CHANGED_BIT);\n    };\n    Displayable.prototype.styleUpdated = function () {\n        this.__dirty &= ~Displayable.STYLE_CHANGED_BIT;\n    };\n    Displayable.prototype.createStyle = function (obj) {\n        return createObject(DEFAULT_COMMON_STYLE, obj);\n    };\n    Displayable.prototype.useStyle = function (obj) {\n        if (!obj[STYLE_MAGIC_KEY]) {\n            obj = this.createStyle(obj);\n        }\n        if (this.__inHover) {\n            this.__hoverStyle = obj;\n        }\n        else {\n            this.style = obj;\n        }\n        this.dirtyStyle();\n    };\n    Displayable.prototype.isStyleObject = function (obj) {\n        return obj[STYLE_MAGIC_KEY];\n    };\n    Displayable.prototype._innerSaveToNormal = function (toState) {\n        _super.prototype._innerSaveToNormal.call(this, toState);\n        var normalState = this._normalState;\n        if (toState.style && !normalState.style) {\n            normalState.style = this._mergeStyle(this.createStyle(), this.style);\n        }\n        this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS);\n    };\n    Displayable.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\n        _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\n        var needsRestoreToNormal = !(state && keepCurrentStates);\n        var targetStyle;\n        if (state && state.style) {\n            if (transition) {\n                if (keepCurrentStates) {\n                    targetStyle = state.style;\n                }\n                else {\n                    targetStyle = this._mergeStyle(this.createStyle(), normalState.style);\n                    this._mergeStyle(targetStyle, state.style);\n                }\n            }\n            else {\n                targetStyle = this._mergeStyle(this.createStyle(), keepCurrentStates ? this.style : normalState.style);\n                this._mergeStyle(targetStyle, state.style);\n            }\n        }\n        else if (needsRestoreToNormal) {\n            targetStyle = normalState.style;\n        }\n        if (targetStyle) {\n            if (transition) {\n                var sourceStyle = this.style;\n                this.style = this.createStyle(needsRestoreToNormal ? {} : sourceStyle);\n                if (needsRestoreToNormal) {\n                    var changedKeys = keys(sourceStyle);\n                    for (var i = 0; i < changedKeys.length; i++) {\n                        var key = changedKeys[i];\n                        if (key in targetStyle) {\n                            targetStyle[key] = targetStyle[key];\n                            this.style[key] = sourceStyle[key];\n                        }\n                    }\n                }\n                var targetKeys = keys(targetStyle);\n                for (var i = 0; i < targetKeys.length; i++) {\n                    var key = targetKeys[i];\n                    this.style[key] = this.style[key];\n                }\n                this._transitionState(stateName, {\n                    style: targetStyle\n                }, animationCfg, this.getAnimationStyleProps());\n            }\n            else {\n                this.useStyle(targetStyle);\n            }\n        }\n        for (var i = 0; i < PRIMARY_STATES_KEYS.length; i++) {\n            var key = PRIMARY_STATES_KEYS[i];\n            if (state && state[key] != null) {\n                this[key] = state[key];\n            }\n            else if (needsRestoreToNormal) {\n                if (normalState[key] != null) {\n                    this[key] = normalState[key];\n                }\n            }\n        }\n    };\n    Displayable.prototype._mergeStates = function (states) {\n        var mergedState = _super.prototype._mergeStates.call(this, states);\n        var mergedStyle;\n        for (var i = 0; i < states.length; i++) {\n            var state = states[i];\n            if (state.style) {\n                mergedStyle = mergedStyle || {};\n                this._mergeStyle(mergedStyle, state.style);\n            }\n        }\n        if (mergedStyle) {\n            mergedState.style = mergedStyle;\n        }\n        return mergedState;\n    };\n    Displayable.prototype._mergeStyle = function (targetStyle, sourceStyle) {\n        extend(targetStyle, sourceStyle);\n        return targetStyle;\n    };\n    Displayable.prototype.getAnimationStyleProps = function () {\n        return DEFAULT_COMMON_ANIMATION_PROPS;\n    };\n    Displayable.STYLE_CHANGED_BIT = 2;\n    Displayable.initDefaultProps = (function () {\n        var dispProto = Displayable.prototype;\n        dispProto.type = 'displayable';\n        dispProto.invisible = false;\n        dispProto.z = 0;\n        dispProto.z2 = 0;\n        dispProto.zlevel = 0;\n        dispProto.culling = false;\n        dispProto.cursor = 'pointer';\n        dispProto.rectHover = false;\n        dispProto.incremental = false;\n        dispProto._rect = null;\n        dispProto.dirtyRectTolerance = 0;\n        dispProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT;\n    })();\n    return Displayable;\n}(Element));\nvar tmpRect = new BoundingRect(0, 0, 0, 0);\nvar viewRect = new BoundingRect(0, 0, 0, 0);\nfunction isDisplayableCulled(el, width, height) {\n    tmpRect.copy(el.getBoundingRect());\n    if (el.transform) {\n        tmpRect.applyTransform(el.transform);\n    }\n    viewRect.width = width;\n    viewRect.height = height;\n    return !tmpRect.intersect(viewRect);\n}\nexport default Displayable;\n","import { create as v2Create, distSquare as v2DistSquare } from './vector';\nvar mathPow = Math.pow;\nvar mathSqrt = Math.sqrt;\nvar EPSILON = 1e-8;\nvar EPSILON_NUMERIC = 1e-4;\nvar THREE_SQRT = mathSqrt(3);\nvar ONE_THIRD = 1 / 3;\nvar _v0 = v2Create();\nvar _v1 = v2Create();\nvar _v2 = v2Create();\nfunction isAroundZero(val) {\n    return val > -EPSILON && val < EPSILON;\n}\nfunction isNotAroundZero(val) {\n    return val > EPSILON || val < -EPSILON;\n}\nexport function cubicAt(p0, p1, p2, p3, t) {\n    var onet = 1 - t;\n    return onet * onet * (onet * p0 + 3 * t * p1)\n        + t * t * (t * p3 + 3 * onet * p2);\n}\nexport function cubicDerivativeAt(p0, p1, p2, p3, t) {\n    var onet = 1 - t;\n    return 3 * (((p1 - p0) * onet + 2 * (p2 - p1) * t) * onet\n        + (p3 - p2) * t * t);\n}\nexport function cubicRootAt(p0, p1, p2, p3, val, roots) {\n    var a = p3 + 3 * (p1 - p2) - p0;\n    var b = 3 * (p2 - p1 * 2 + p0);\n    var c = 3 * (p1 - p0);\n    var d = p0 - val;\n    var A = b * b - 3 * a * c;\n    var B = b * c - 9 * a * d;\n    var C = c * c - 3 * b * d;\n    var n = 0;\n    if (isAroundZero(A) && isAroundZero(B)) {\n        if (isAroundZero(b)) {\n            roots[0] = 0;\n        }\n        else {\n            var t1 = -c / b;\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n        }\n    }\n    else {\n        var disc = B * B - 4 * A * C;\n        if (isAroundZero(disc)) {\n            var K = B / A;\n            var t1 = -b / a + K;\n            var t2 = -K / 2;\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n            if (t2 >= 0 && t2 <= 1) {\n                roots[n++] = t2;\n            }\n        }\n        else if (disc > 0) {\n            var discSqrt = mathSqrt(disc);\n            var Y1 = A * b + 1.5 * a * (-B + discSqrt);\n            var Y2 = A * b + 1.5 * a * (-B - discSqrt);\n            if (Y1 < 0) {\n                Y1 = -mathPow(-Y1, ONE_THIRD);\n            }\n            else {\n                Y1 = mathPow(Y1, ONE_THIRD);\n            }\n            if (Y2 < 0) {\n                Y2 = -mathPow(-Y2, ONE_THIRD);\n            }\n            else {\n                Y2 = mathPow(Y2, ONE_THIRD);\n            }\n            var t1 = (-b - (Y1 + Y2)) / (3 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n        }\n        else {\n            var T = (2 * A * b - 3 * a * B) / (2 * mathSqrt(A * A * A));\n            var theta = Math.acos(T) / 3;\n            var ASqrt = mathSqrt(A);\n            var tmp = Math.cos(theta);\n            var t1 = (-b - 2 * ASqrt * tmp) / (3 * a);\n            var t2 = (-b + ASqrt * (tmp + THREE_SQRT * Math.sin(theta))) / (3 * a);\n            var t3 = (-b + ASqrt * (tmp - THREE_SQRT * Math.sin(theta))) / (3 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n            if (t2 >= 0 && t2 <= 1) {\n                roots[n++] = t2;\n            }\n            if (t3 >= 0 && t3 <= 1) {\n                roots[n++] = t3;\n            }\n        }\n    }\n    return n;\n}\nexport function cubicExtrema(p0, p1, p2, p3, extrema) {\n    var b = 6 * p2 - 12 * p1 + 6 * p0;\n    var a = 9 * p1 + 3 * p3 - 3 * p0 - 9 * p2;\n    var c = 3 * p1 - 3 * p0;\n    var n = 0;\n    if (isAroundZero(a)) {\n        if (isNotAroundZero(b)) {\n            var t1 = -c / b;\n            if (t1 >= 0 && t1 <= 1) {\n                extrema[n++] = t1;\n            }\n        }\n    }\n    else {\n        var disc = b * b - 4 * a * c;\n        if (isAroundZero(disc)) {\n            extrema[0] = -b / (2 * a);\n        }\n        else if (disc > 0) {\n            var discSqrt = mathSqrt(disc);\n            var t1 = (-b + discSqrt) / (2 * a);\n            var t2 = (-b - discSqrt) / (2 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                extrema[n++] = t1;\n            }\n            if (t2 >= 0 && t2 <= 1) {\n                extrema[n++] = t2;\n            }\n        }\n    }\n    return n;\n}\nexport function cubicSubdivide(p0, p1, p2, p3, t, out) {\n    var p01 = (p1 - p0) * t + p0;\n    var p12 = (p2 - p1) * t + p1;\n    var p23 = (p3 - p2) * t + p2;\n    var p012 = (p12 - p01) * t + p01;\n    var p123 = (p23 - p12) * t + p12;\n    var p0123 = (p123 - p012) * t + p012;\n    out[0] = p0;\n    out[1] = p01;\n    out[2] = p012;\n    out[3] = p0123;\n    out[4] = p0123;\n    out[5] = p123;\n    out[6] = p23;\n    out[7] = p3;\n}\nexport function cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, out) {\n    var t;\n    var interval = 0.005;\n    var d = Infinity;\n    var prev;\n    var next;\n    var d1;\n    var d2;\n    _v0[0] = x;\n    _v0[1] = y;\n    for (var _t = 0; _t < 1; _t += 0.05) {\n        _v1[0] = cubicAt(x0, x1, x2, x3, _t);\n        _v1[1] = cubicAt(y0, y1, y2, y3, _t);\n        d1 = v2DistSquare(_v0, _v1);\n        if (d1 < d) {\n            t = _t;\n            d = d1;\n        }\n    }\n    d = Infinity;\n    for (var i = 0; i < 32; i++) {\n        if (interval < EPSILON_NUMERIC) {\n            break;\n        }\n        prev = t - interval;\n        next = t + interval;\n        _v1[0] = cubicAt(x0, x1, x2, x3, prev);\n        _v1[1] = cubicAt(y0, y1, y2, y3, prev);\n        d1 = v2DistSquare(_v1, _v0);\n        if (prev >= 0 && d1 < d) {\n            t = prev;\n            d = d1;\n        }\n        else {\n            _v2[0] = cubicAt(x0, x1, x2, x3, next);\n            _v2[1] = cubicAt(y0, y1, y2, y3, next);\n            d2 = v2DistSquare(_v2, _v0);\n            if (next <= 1 && d2 < d) {\n                t = next;\n                d = d2;\n            }\n            else {\n                interval *= 0.5;\n            }\n        }\n    }\n    if (out) {\n        out[0] = cubicAt(x0, x1, x2, x3, t);\n        out[1] = cubicAt(y0, y1, y2, y3, t);\n    }\n    return mathSqrt(d);\n}\nexport function cubicLength(x0, y0, x1, y1, x2, y2, x3, y3, iteration) {\n    var px = x0;\n    var py = y0;\n    var d = 0;\n    var step = 1 / iteration;\n    for (var i = 1; i <= iteration; i++) {\n        var t = i * step;\n        var x = cubicAt(x0, x1, x2, x3, t);\n        var y = cubicAt(y0, y1, y2, y3, t);\n        var dx = x - px;\n        var dy = y - py;\n        d += Math.sqrt(dx * dx + dy * dy);\n        px = x;\n        py = y;\n    }\n    return d;\n}\nexport function quadraticAt(p0, p1, p2, t) {\n    var onet = 1 - t;\n    return onet * (onet * p0 + 2 * t * p1) + t * t * p2;\n}\nexport function quadraticDerivativeAt(p0, p1, p2, t) {\n    return 2 * ((1 - t) * (p1 - p0) + t * (p2 - p1));\n}\nexport function quadraticRootAt(p0, p1, p2, val, roots) {\n    var a = p0 - 2 * p1 + p2;\n    var b = 2 * (p1 - p0);\n    var c = p0 - val;\n    var n = 0;\n    if (isAroundZero(a)) {\n        if (isNotAroundZero(b)) {\n            var t1 = -c / b;\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n        }\n    }\n    else {\n        var disc = b * b - 4 * a * c;\n        if (isAroundZero(disc)) {\n            var t1 = -b / (2 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n        }\n        else if (disc > 0) {\n            var discSqrt = mathSqrt(disc);\n            var t1 = (-b + discSqrt) / (2 * a);\n            var t2 = (-b - discSqrt) / (2 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n            if (t2 >= 0 && t2 <= 1) {\n                roots[n++] = t2;\n            }\n        }\n    }\n    return n;\n}\nexport function quadraticExtremum(p0, p1, p2) {\n    var divider = p0 + p2 - 2 * p1;\n    if (divider === 0) {\n        return 0.5;\n    }\n    else {\n        return (p0 - p1) / divider;\n    }\n}\nexport function quadraticSubdivide(p0, p1, p2, t, out) {\n    var p01 = (p1 - p0) * t + p0;\n    var p12 = (p2 - p1) * t + p1;\n    var p012 = (p12 - p01) * t + p01;\n    out[0] = p0;\n    out[1] = p01;\n    out[2] = p012;\n    out[3] = p012;\n    out[4] = p12;\n    out[5] = p2;\n}\nexport function quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, out) {\n    var t;\n    var interval = 0.005;\n    var d = Infinity;\n    _v0[0] = x;\n    _v0[1] = y;\n    for (var _t = 0; _t < 1; _t += 0.05) {\n        _v1[0] = quadraticAt(x0, x1, x2, _t);\n        _v1[1] = quadraticAt(y0, y1, y2, _t);\n        var d1 = v2DistSquare(_v0, _v1);\n        if (d1 < d) {\n            t = _t;\n            d = d1;\n        }\n    }\n    d = Infinity;\n    for (var i = 0; i < 32; i++) {\n        if (interval < EPSILON_NUMERIC) {\n            break;\n        }\n        var prev = t - interval;\n        var next = t + interval;\n        _v1[0] = quadraticAt(x0, x1, x2, prev);\n        _v1[1] = quadraticAt(y0, y1, y2, prev);\n        var d1 = v2DistSquare(_v1, _v0);\n        if (prev >= 0 && d1 < d) {\n            t = prev;\n            d = d1;\n        }\n        else {\n            _v2[0] = quadraticAt(x0, x1, x2, next);\n            _v2[1] = quadraticAt(y0, y1, y2, next);\n            var d2 = v2DistSquare(_v2, _v0);\n            if (next <= 1 && d2 < d) {\n                t = next;\n                d = d2;\n            }\n            else {\n                interval *= 0.5;\n            }\n        }\n    }\n    if (out) {\n        out[0] = quadraticAt(x0, x1, x2, t);\n        out[1] = quadraticAt(y0, y1, y2, t);\n    }\n    return mathSqrt(d);\n}\nexport function quadraticLength(x0, y0, x1, y1, x2, y2, iteration) {\n    var px = x0;\n    var py = y0;\n    var d = 0;\n    var step = 1 / iteration;\n    for (var i = 1; i <= iteration; i++) {\n        var t = i * step;\n        var x = quadraticAt(x0, x1, x2, t);\n        var y = quadraticAt(y0, y1, y2, t);\n        var dx = x - px;\n        var dy = y - py;\n        d += Math.sqrt(dx * dx + dy * dy);\n        px = x;\n        py = y;\n    }\n    return d;\n}\n","import * as vec2 from './vector';\nimport * as curve from './curve';\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI2 = Math.PI * 2;\nvar start = vec2.create();\nvar end = vec2.create();\nvar extremity = vec2.create();\nexport function fromPoints(points, min, max) {\n    if (points.length === 0) {\n        return;\n    }\n    var p = points[0];\n    var left = p[0];\n    var right = p[0];\n    var top = p[1];\n    var bottom = p[1];\n    for (var i = 1; i < points.length; i++) {\n        p = points[i];\n        left = mathMin(left, p[0]);\n        right = mathMax(right, p[0]);\n        top = mathMin(top, p[1]);\n        bottom = mathMax(bottom, p[1]);\n    }\n    min[0] = left;\n    min[1] = top;\n    max[0] = right;\n    max[1] = bottom;\n}\nexport function fromLine(x0, y0, x1, y1, min, max) {\n    min[0] = mathMin(x0, x1);\n    min[1] = mathMin(y0, y1);\n    max[0] = mathMax(x0, x1);\n    max[1] = mathMax(y0, y1);\n}\nvar xDim = [];\nvar yDim = [];\nexport function fromCubic(x0, y0, x1, y1, x2, y2, x3, y3, min, max) {\n    var cubicExtrema = curve.cubicExtrema;\n    var cubicAt = curve.cubicAt;\n    var n = cubicExtrema(x0, x1, x2, x3, xDim);\n    min[0] = Infinity;\n    min[1] = Infinity;\n    max[0] = -Infinity;\n    max[1] = -Infinity;\n    for (var i = 0; i < n; i++) {\n        var x = cubicAt(x0, x1, x2, x3, xDim[i]);\n        min[0] = mathMin(x, min[0]);\n        max[0] = mathMax(x, max[0]);\n    }\n    n = cubicExtrema(y0, y1, y2, y3, yDim);\n    for (var i = 0; i < n; i++) {\n        var y = cubicAt(y0, y1, y2, y3, yDim[i]);\n        min[1] = mathMin(y, min[1]);\n        max[1] = mathMax(y, max[1]);\n    }\n    min[0] = mathMin(x0, min[0]);\n    max[0] = mathMax(x0, max[0]);\n    min[0] = mathMin(x3, min[0]);\n    max[0] = mathMax(x3, max[0]);\n    min[1] = mathMin(y0, min[1]);\n    max[1] = mathMax(y0, max[1]);\n    min[1] = mathMin(y3, min[1]);\n    max[1] = mathMax(y3, max[1]);\n}\nexport function fromQuadratic(x0, y0, x1, y1, x2, y2, min, max) {\n    var quadraticExtremum = curve.quadraticExtremum;\n    var quadraticAt = curve.quadraticAt;\n    var tx = mathMax(mathMin(quadraticExtremum(x0, x1, x2), 1), 0);\n    var ty = mathMax(mathMin(quadraticExtremum(y0, y1, y2), 1), 0);\n    var x = quadraticAt(x0, x1, x2, tx);\n    var y = quadraticAt(y0, y1, y2, ty);\n    min[0] = mathMin(x0, x2, x);\n    min[1] = mathMin(y0, y2, y);\n    max[0] = mathMax(x0, x2, x);\n    max[1] = mathMax(y0, y2, y);\n}\nexport function fromArc(x, y, rx, ry, startAngle, endAngle, anticlockwise, min, max) {\n    var vec2Min = vec2.min;\n    var vec2Max = vec2.max;\n    var diff = Math.abs(startAngle - endAngle);\n    if (diff % PI2 < 1e-4 && diff > 1e-4) {\n        min[0] = x - rx;\n        min[1] = y - ry;\n        max[0] = x + rx;\n        max[1] = y + ry;\n        return;\n    }\n    start[0] = mathCos(startAngle) * rx + x;\n    start[1] = mathSin(startAngle) * ry + y;\n    end[0] = mathCos(endAngle) * rx + x;\n    end[1] = mathSin(endAngle) * ry + y;\n    vec2Min(min, start, end);\n    vec2Max(max, start, end);\n    startAngle = startAngle % (PI2);\n    if (startAngle < 0) {\n        startAngle = startAngle + PI2;\n    }\n    endAngle = endAngle % (PI2);\n    if (endAngle < 0) {\n        endAngle = endAngle + PI2;\n    }\n    if (startAngle > endAngle && !anticlockwise) {\n        endAngle += PI2;\n    }\n    else if (startAngle < endAngle && anticlockwise) {\n        startAngle += PI2;\n    }\n    if (anticlockwise) {\n        var tmp = endAngle;\n        endAngle = startAngle;\n        startAngle = tmp;\n    }\n    for (var angle = 0; angle < endAngle; angle += Math.PI / 2) {\n        if (angle > startAngle) {\n            extremity[0] = mathCos(angle) * rx + x;\n            extremity[1] = mathSin(angle) * ry + y;\n            vec2Min(min, extremity, min);\n            vec2Max(max, extremity, max);\n        }\n    }\n}\n","import * as vec2 from './vector';\nimport BoundingRect from './BoundingRect';\nimport { devicePixelRatio as dpr } from '../config';\nimport { fromLine, fromCubic, fromQuadratic, fromArc } from './bbox';\nimport { cubicAt, cubicLength, cubicSubdivide, quadraticLength, quadraticSubdivide } from './curve';\nvar CMD = {\n    M: 1,\n    L: 2,\n    C: 3,\n    Q: 4,\n    A: 5,\n    Z: 6,\n    R: 7\n};\nvar tmpOutX = [];\nvar tmpOutY = [];\nvar min = [];\nvar max = [];\nvar min2 = [];\nvar max2 = [];\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathCos = Math.cos;\nvar mathSin = Math.sin;\nvar mathSqrt = Math.sqrt;\nvar mathAbs = Math.abs;\nvar PI = Math.PI;\nvar PI2 = PI * 2;\nvar hasTypedArray = typeof Float32Array !== 'undefined';\nvar tmpAngles = [];\nfunction modPI2(radian) {\n    var n = Math.round(radian / PI * 1e8) / 1e8;\n    return (n % 2) * PI;\n}\nexport function normalizeArcAngles(angles, anticlockwise) {\n    var newStartAngle = modPI2(angles[0]);\n    if (newStartAngle < 0) {\n        newStartAngle += PI2;\n    }\n    var delta = newStartAngle - angles[0];\n    var newEndAngle = angles[1];\n    newEndAngle += delta;\n    if (!anticlockwise && newEndAngle - newStartAngle >= PI2) {\n        newEndAngle = newStartAngle + PI2;\n    }\n    else if (anticlockwise && newStartAngle - newEndAngle >= PI2) {\n        newEndAngle = newStartAngle - PI2;\n    }\n    else if (!anticlockwise && newStartAngle > newEndAngle) {\n        newEndAngle = newStartAngle +\n            (PI2 - modPI2(newStartAngle - newEndAngle));\n    }\n    else if (anticlockwise && newStartAngle < newEndAngle) {\n        newEndAngle = newStartAngle -\n            (PI2 - modPI2(newEndAngle - newStartAngle));\n    }\n    angles[0] = newStartAngle;\n    angles[1] = newEndAngle;\n}\nvar PathProxy = (function () {\n    function PathProxy(notSaveData) {\n        this.dpr = 1;\n        this._version = 0;\n        this._xi = 0;\n        this._yi = 0;\n        this._x0 = 0;\n        this._y0 = 0;\n        this._len = 0;\n        if (notSaveData) {\n            this._saveData = false;\n        }\n        if (this._saveData) {\n            this.data = [];\n        }\n    }\n    PathProxy.prototype.increaseVersion = function () {\n        this._version++;\n    };\n    PathProxy.prototype.getVersion = function () {\n        return this._version;\n    };\n    PathProxy.prototype.setScale = function (sx, sy, segmentIgnoreThreshold) {\n        segmentIgnoreThreshold = segmentIgnoreThreshold || 0;\n        if (segmentIgnoreThreshold > 0) {\n            this._ux = mathAbs(segmentIgnoreThreshold / dpr / sx) || 0;\n            this._uy = mathAbs(segmentIgnoreThreshold / dpr / sy) || 0;\n        }\n    };\n    PathProxy.prototype.setDPR = function (dpr) {\n        this.dpr = dpr;\n    };\n    PathProxy.prototype.setContext = function (ctx) {\n        this._ctx = ctx;\n    };\n    PathProxy.prototype.getContext = function () {\n        return this._ctx;\n    };\n    PathProxy.prototype.beginPath = function () {\n        this._ctx && this._ctx.beginPath();\n        this.reset();\n        return this;\n    };\n    PathProxy.prototype.reset = function () {\n        if (this._saveData) {\n            this._len = 0;\n        }\n        if (this._lineDash) {\n            this._lineDash = null;\n            this._dashOffset = 0;\n        }\n        if (this._pathSegLen) {\n            this._pathSegLen = null;\n            this._pathLen = 0;\n        }\n        this._version++;\n    };\n    PathProxy.prototype.moveTo = function (x, y) {\n        this.addData(CMD.M, x, y);\n        this._ctx && this._ctx.moveTo(x, y);\n        this._x0 = x;\n        this._y0 = y;\n        this._xi = x;\n        this._yi = y;\n        return this;\n    };\n    PathProxy.prototype.lineTo = function (x, y) {\n        var exceedUnit = mathAbs(x - this._xi) > this._ux\n            || mathAbs(y - this._yi) > this._uy\n            || this._len < 5;\n        this.addData(CMD.L, x, y);\n        if (this._ctx && exceedUnit) {\n            this._needsDash ? this._dashedLineTo(x, y)\n                : this._ctx.lineTo(x, y);\n        }\n        if (exceedUnit) {\n            this._xi = x;\n            this._yi = y;\n        }\n        return this;\n    };\n    PathProxy.prototype.bezierCurveTo = function (x1, y1, x2, y2, x3, y3) {\n        this.addData(CMD.C, x1, y1, x2, y2, x3, y3);\n        if (this._ctx) {\n            this._needsDash ? this._dashedBezierTo(x1, y1, x2, y2, x3, y3)\n                : this._ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\n        }\n        this._xi = x3;\n        this._yi = y3;\n        return this;\n    };\n    PathProxy.prototype.quadraticCurveTo = function (x1, y1, x2, y2) {\n        this.addData(CMD.Q, x1, y1, x2, y2);\n        if (this._ctx) {\n            this._needsDash ? this._dashedQuadraticTo(x1, y1, x2, y2)\n                : this._ctx.quadraticCurveTo(x1, y1, x2, y2);\n        }\n        this._xi = x2;\n        this._yi = y2;\n        return this;\n    };\n    PathProxy.prototype.arc = function (cx, cy, r, startAngle, endAngle, anticlockwise) {\n        tmpAngles[0] = startAngle;\n        tmpAngles[1] = endAngle;\n        normalizeArcAngles(tmpAngles, anticlockwise);\n        startAngle = tmpAngles[0];\n        endAngle = tmpAngles[1];\n        var delta = endAngle - startAngle;\n        this.addData(CMD.A, cx, cy, r, r, startAngle, delta, 0, anticlockwise ? 0 : 1);\n        this._ctx && this._ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\n        this._xi = mathCos(endAngle) * r + cx;\n        this._yi = mathSin(endAngle) * r + cy;\n        return this;\n    };\n    PathProxy.prototype.arcTo = function (x1, y1, x2, y2, radius) {\n        if (this._ctx) {\n            this._ctx.arcTo(x1, y1, x2, y2, radius);\n        }\n        return this;\n    };\n    PathProxy.prototype.rect = function (x, y, w, h) {\n        this._ctx && this._ctx.rect(x, y, w, h);\n        this.addData(CMD.R, x, y, w, h);\n        return this;\n    };\n    PathProxy.prototype.closePath = function () {\n        this.addData(CMD.Z);\n        var ctx = this._ctx;\n        var x0 = this._x0;\n        var y0 = this._y0;\n        if (ctx) {\n            this._needsDash && this._dashedLineTo(x0, y0);\n            ctx.closePath();\n        }\n        this._xi = x0;\n        this._yi = y0;\n        return this;\n    };\n    PathProxy.prototype.fill = function (ctx) {\n        ctx && ctx.fill();\n        this.toStatic();\n    };\n    PathProxy.prototype.stroke = function (ctx) {\n        ctx && ctx.stroke();\n        this.toStatic();\n    };\n    PathProxy.prototype.setLineDash = function (lineDash) {\n        if (lineDash instanceof Array) {\n            this._lineDash = lineDash;\n            this._dashIdx = 0;\n            var lineDashSum = 0;\n            for (var i = 0; i < lineDash.length; i++) {\n                lineDashSum += lineDash[i];\n            }\n            this._dashSum = lineDashSum;\n            this._needsDash = true;\n        }\n        else {\n            this._lineDash = null;\n            this._needsDash = false;\n        }\n        return this;\n    };\n    PathProxy.prototype.setLineDashOffset = function (offset) {\n        this._dashOffset = offset;\n        return this;\n    };\n    PathProxy.prototype.len = function () {\n        return this._len;\n    };\n    PathProxy.prototype.setData = function (data) {\n        var len = data.length;\n        if (!(this.data && this.data.length === len) && hasTypedArray) {\n            this.data = new Float32Array(len);\n        }\n        for (var i = 0; i < len; i++) {\n            this.data[i] = data[i];\n        }\n        this._len = len;\n    };\n    PathProxy.prototype.appendPath = function (path) {\n        if (!(path instanceof Array)) {\n            path = [path];\n        }\n        var len = path.length;\n        var appendSize = 0;\n        var offset = this._len;\n        for (var i = 0; i < len; i++) {\n            appendSize += path[i].len();\n        }\n        if (hasTypedArray && (this.data instanceof Float32Array)) {\n            this.data = new Float32Array(offset + appendSize);\n        }\n        for (var i = 0; i < len; i++) {\n            var appendPathData = path[i].data;\n            for (var k = 0; k < appendPathData.length; k++) {\n                this.data[offset++] = appendPathData[k];\n            }\n        }\n        this._len = offset;\n    };\n    PathProxy.prototype.addData = function (cmd, a, b, c, d, e, f, g, h) {\n        if (!this._saveData) {\n            return;\n        }\n        var data = this.data;\n        if (this._len + arguments.length > data.length) {\n            this._expandData();\n            data = this.data;\n        }\n        for (var i = 0; i < arguments.length; i++) {\n            data[this._len++] = arguments[i];\n        }\n    };\n    PathProxy.prototype._expandData = function () {\n        if (!(this.data instanceof Array)) {\n            var newData = [];\n            for (var i = 0; i < this._len; i++) {\n                newData[i] = this.data[i];\n            }\n            this.data = newData;\n        }\n    };\n    PathProxy.prototype._dashedLineTo = function (x1, y1) {\n        var dashSum = this._dashSum;\n        var lineDash = this._lineDash;\n        var ctx = this._ctx;\n        var offset = this._dashOffset;\n        var x0 = this._xi;\n        var y0 = this._yi;\n        var dx = x1 - x0;\n        var dy = y1 - y0;\n        var dist = mathSqrt(dx * dx + dy * dy);\n        var x = x0;\n        var y = y0;\n        var nDash = lineDash.length;\n        var dash;\n        var idx;\n        dx /= dist;\n        dy /= dist;\n        if (offset < 0) {\n            offset = dashSum + offset;\n        }\n        offset %= dashSum;\n        x -= offset * dx;\n        y -= offset * dy;\n        while ((dx > 0 && x <= x1) || (dx < 0 && x >= x1)\n            || (dx === 0 && ((dy > 0 && y <= y1) || (dy < 0 && y >= y1)))) {\n            idx = this._dashIdx;\n            dash = lineDash[idx];\n            x += dx * dash;\n            y += dy * dash;\n            this._dashIdx = (idx + 1) % nDash;\n            if ((dx > 0 && x < x0) || (dx < 0 && x > x0) || (dy > 0 && y < y0) || (dy < 0 && y > y0)) {\n                continue;\n            }\n            ctx[idx % 2 ? 'moveTo' : 'lineTo'](dx >= 0 ? mathMin(x, x1) : mathMax(x, x1), dy >= 0 ? mathMin(y, y1) : mathMax(y, y1));\n        }\n        dx = x - x1;\n        dy = y - y1;\n        this._dashOffset = -mathSqrt(dx * dx + dy * dy);\n    };\n    PathProxy.prototype._dashedBezierTo = function (x1, y1, x2, y2, x3, y3) {\n        var ctx = this._ctx;\n        var dashSum = this._dashSum;\n        var offset = this._dashOffset;\n        var lineDash = this._lineDash;\n        var x0 = this._xi;\n        var y0 = this._yi;\n        var bezierLen = 0;\n        var idx = this._dashIdx;\n        var nDash = lineDash.length;\n        var t;\n        var dx;\n        var dy;\n        var x;\n        var y;\n        var tmpLen = 0;\n        if (offset < 0) {\n            offset = dashSum + offset;\n        }\n        offset %= dashSum;\n        for (t = 0; t < 1; t += 0.1) {\n            dx = cubicAt(x0, x1, x2, x3, t + 0.1)\n                - cubicAt(x0, x1, x2, x3, t);\n            dy = cubicAt(y0, y1, y2, y3, t + 0.1)\n                - cubicAt(y0, y1, y2, y3, t);\n            bezierLen += mathSqrt(dx * dx + dy * dy);\n        }\n        for (; idx < nDash; idx++) {\n            tmpLen += lineDash[idx];\n            if (tmpLen > offset) {\n                break;\n            }\n        }\n        t = (tmpLen - offset) / bezierLen;\n        while (t <= 1) {\n            x = cubicAt(x0, x1, x2, x3, t);\n            y = cubicAt(y0, y1, y2, y3, t);\n            idx % 2 ? ctx.moveTo(x, y)\n                : ctx.lineTo(x, y);\n            t += lineDash[idx] / bezierLen;\n            idx = (idx + 1) % nDash;\n        }\n        (idx % 2 !== 0) && ctx.lineTo(x3, y3);\n        dx = x3 - x;\n        dy = y3 - y;\n        this._dashOffset = -mathSqrt(dx * dx + dy * dy);\n    };\n    PathProxy.prototype._dashedQuadraticTo = function (x1, y1, x2, y2) {\n        var x3 = x2;\n        var y3 = y2;\n        x2 = (x2 + 2 * x1) / 3;\n        y2 = (y2 + 2 * y1) / 3;\n        x1 = (this._xi + 2 * x1) / 3;\n        y1 = (this._yi + 2 * y1) / 3;\n        this._dashedBezierTo(x1, y1, x2, y2, x3, y3);\n    };\n    PathProxy.prototype.toStatic = function () {\n        if (!this._saveData) {\n            return;\n        }\n        var data = this.data;\n        if (data instanceof Array) {\n            data.length = this._len;\n            if (hasTypedArray && this._len > 11) {\n                this.data = new Float32Array(data);\n            }\n        }\n    };\n    PathProxy.prototype.getBoundingRect = function () {\n        min[0] = min[1] = min2[0] = min2[1] = Number.MAX_VALUE;\n        max[0] = max[1] = max2[0] = max2[1] = -Number.MAX_VALUE;\n        var data = this.data;\n        var xi = 0;\n        var yi = 0;\n        var x0 = 0;\n        var y0 = 0;\n        var i;\n        for (i = 0; i < this._len;) {\n            var cmd = data[i++];\n            var isFirst = i === 1;\n            if (isFirst) {\n                xi = data[i];\n                yi = data[i + 1];\n                x0 = xi;\n                y0 = yi;\n            }\n            switch (cmd) {\n                case CMD.M:\n                    xi = x0 = data[i++];\n                    yi = y0 = data[i++];\n                    min2[0] = x0;\n                    min2[1] = y0;\n                    max2[0] = x0;\n                    max2[1] = y0;\n                    break;\n                case CMD.L:\n                    fromLine(xi, yi, data[i], data[i + 1], min2, max2);\n                    xi = data[i++];\n                    yi = data[i++];\n                    break;\n                case CMD.C:\n                    fromCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], min2, max2);\n                    xi = data[i++];\n                    yi = data[i++];\n                    break;\n                case CMD.Q:\n                    fromQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], min2, max2);\n                    xi = data[i++];\n                    yi = data[i++];\n                    break;\n                case CMD.A:\n                    var cx = data[i++];\n                    var cy = data[i++];\n                    var rx = data[i++];\n                    var ry = data[i++];\n                    var startAngle = data[i++];\n                    var endAngle = data[i++] + startAngle;\n                    i += 1;\n                    var anticlockwise = !data[i++];\n                    if (isFirst) {\n                        x0 = mathCos(startAngle) * rx + cx;\n                        y0 = mathSin(startAngle) * ry + cy;\n                    }\n                    fromArc(cx, cy, rx, ry, startAngle, endAngle, anticlockwise, min2, max2);\n                    xi = mathCos(endAngle) * rx + cx;\n                    yi = mathSin(endAngle) * ry + cy;\n                    break;\n                case CMD.R:\n                    x0 = xi = data[i++];\n                    y0 = yi = data[i++];\n                    var width = data[i++];\n                    var height = data[i++];\n                    fromLine(x0, y0, x0 + width, y0 + height, min2, max2);\n                    break;\n                case CMD.Z:\n                    xi = x0;\n                    yi = y0;\n                    break;\n            }\n            vec2.min(min, min, min2);\n            vec2.max(max, max, max2);\n        }\n        if (i === 0) {\n            min[0] = min[1] = max[0] = max[1] = 0;\n        }\n        return new BoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n    };\n    PathProxy.prototype._calculateLength = function () {\n        var data = this.data;\n        var len = this._len;\n        var ux = this._ux;\n        var uy = this._uy;\n        var xi = 0;\n        var yi = 0;\n        var x0 = 0;\n        var y0 = 0;\n        if (!this._pathSegLen) {\n            this._pathSegLen = [];\n        }\n        var pathSegLen = this._pathSegLen;\n        var pathTotalLen = 0;\n        var segCount = 0;\n        for (var i = 0; i < len;) {\n            var cmd = data[i++];\n            var isFirst = i === 1;\n            if (isFirst) {\n                xi = data[i];\n                yi = data[i + 1];\n                x0 = xi;\n                y0 = yi;\n            }\n            var l = -1;\n            switch (cmd) {\n                case CMD.M:\n                    xi = x0 = data[i++];\n                    yi = y0 = data[i++];\n                    break;\n                case CMD.L: {\n                    var x2 = data[i++];\n                    var y2 = data[i++];\n                    var dx = x2 - xi;\n                    var dy = y2 - yi;\n                    if (mathAbs(dx) > ux || mathAbs(dy) > uy || i === len - 1) {\n                        l = Math.sqrt(dx * dx + dy * dy);\n                        xi = x2;\n                        yi = y2;\n                    }\n                    break;\n                }\n                case CMD.C: {\n                    var x1 = data[i++];\n                    var y1 = data[i++];\n                    var x2 = data[i++];\n                    var y2 = data[i++];\n                    var x3 = data[i++];\n                    var y3 = data[i++];\n                    l = cubicLength(xi, yi, x1, y1, x2, y2, x3, y3, 10);\n                    xi = x3;\n                    yi = y3;\n                    break;\n                }\n                case CMD.Q: {\n                    var x1 = data[i++];\n                    var y1 = data[i++];\n                    var x2 = data[i++];\n                    var y2 = data[i++];\n                    l = quadraticLength(xi, yi, x1, y1, x2, y2, 10);\n                    xi = x2;\n                    yi = y2;\n                    break;\n                }\n                case CMD.A:\n                    var cx = data[i++];\n                    var cy = data[i++];\n                    var rx = data[i++];\n                    var ry = data[i++];\n                    var startAngle = data[i++];\n                    var delta = data[i++];\n                    var endAngle = delta + startAngle;\n                    i += 1;\n                    var anticlockwise = !data[i++];\n                    if (isFirst) {\n                        x0 = mathCos(startAngle) * rx + cx;\n                        y0 = mathSin(startAngle) * ry + cy;\n                    }\n                    l = mathMax(rx, ry) * mathMin(PI2, Math.abs(delta));\n                    xi = mathCos(endAngle) * rx + cx;\n                    yi = mathSin(endAngle) * ry + cy;\n                    break;\n                case CMD.R: {\n                    x0 = xi = data[i++];\n                    y0 = yi = data[i++];\n                    var width = data[i++];\n                    var height = data[i++];\n                    l = width * 2 + height * 2;\n                    break;\n                }\n                case CMD.Z: {\n                    var dx = x0 - xi;\n                    var dy = y0 - yi;\n                    l = Math.sqrt(dx * dx + dy * dy);\n                    xi = x0;\n                    yi = y0;\n                    break;\n                }\n            }\n            if (l >= 0) {\n                pathSegLen[segCount++] = l;\n                pathTotalLen += l;\n            }\n        }\n        this._pathLen = pathTotalLen;\n        return pathTotalLen;\n    };\n    PathProxy.prototype.rebuildPath = function (ctx, percent) {\n        var d = this.data;\n        var ux = this._ux;\n        var uy = this._uy;\n        var len = this._len;\n        var x0;\n        var y0;\n        var xi;\n        var yi;\n        var x;\n        var y;\n        var drawPart = percent < 1;\n        var pathSegLen;\n        var pathTotalLen;\n        var accumLength = 0;\n        var segCount = 0;\n        var displayedLength;\n        if (drawPart) {\n            if (!this._pathSegLen) {\n                this._calculateLength();\n            }\n            pathSegLen = this._pathSegLen;\n            pathTotalLen = this._pathLen;\n            displayedLength = percent * pathTotalLen;\n            if (!displayedLength) {\n                return;\n            }\n        }\n        lo: for (var i = 0; i < len;) {\n            var cmd = d[i++];\n            var isFirst = i === 1;\n            if (isFirst) {\n                xi = d[i];\n                yi = d[i + 1];\n                x0 = xi;\n                y0 = yi;\n            }\n            switch (cmd) {\n                case CMD.M:\n                    x0 = xi = d[i++];\n                    y0 = yi = d[i++];\n                    ctx.moveTo(xi, yi);\n                    break;\n                case CMD.L: {\n                    x = d[i++];\n                    y = d[i++];\n                    if (mathAbs(x - xi) > ux || mathAbs(y - yi) > uy || i === len - 1) {\n                        if (drawPart) {\n                            var l = pathSegLen[segCount++];\n                            if (accumLength + l > displayedLength) {\n                                var t = (displayedLength - accumLength) / l;\n                                ctx.lineTo(xi * (1 - t) + x * t, yi * (1 - t) + y * t);\n                                break lo;\n                            }\n                            accumLength += l;\n                        }\n                        ctx.lineTo(x, y);\n                        xi = x;\n                        yi = y;\n                    }\n                    break;\n                }\n                case CMD.C: {\n                    var x1 = d[i++];\n                    var y1 = d[i++];\n                    var x2 = d[i++];\n                    var y2 = d[i++];\n                    var x3 = d[i++];\n                    var y3 = d[i++];\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            var t = (displayedLength - accumLength) / l;\n                            cubicSubdivide(xi, x1, x2, x3, t, tmpOutX);\n                            cubicSubdivide(yi, y1, y2, y3, t, tmpOutY);\n                            ctx.bezierCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2], tmpOutX[3], tmpOutY[3]);\n                            break lo;\n                        }\n                        accumLength += l;\n                    }\n                    ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\n                    xi = x3;\n                    yi = y3;\n                    break;\n                }\n                case CMD.Q: {\n                    var x1 = d[i++];\n                    var y1 = d[i++];\n                    var x2 = d[i++];\n                    var y2 = d[i++];\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            var t = (displayedLength - accumLength) / l;\n                            quadraticSubdivide(xi, x1, x2, t, tmpOutX);\n                            quadraticSubdivide(yi, y1, y2, t, tmpOutY);\n                            ctx.quadraticCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2]);\n                            break lo;\n                        }\n                        accumLength += l;\n                    }\n                    ctx.quadraticCurveTo(x1, y1, x2, y2);\n                    xi = x2;\n                    yi = y2;\n                    break;\n                }\n                case CMD.A:\n                    var cx = d[i++];\n                    var cy = d[i++];\n                    var rx = d[i++];\n                    var ry = d[i++];\n                    var startAngle = d[i++];\n                    var delta = d[i++];\n                    var psi = d[i++];\n                    var anticlockwise = !d[i++];\n                    var r = (rx > ry) ? rx : ry;\n                    var scaleX = (rx > ry) ? 1 : rx / ry;\n                    var scaleY = (rx > ry) ? ry / rx : 1;\n                    var isEllipse = mathAbs(rx - ry) > 1e-3;\n                    var endAngle = startAngle + delta;\n                    var breakBuild = false;\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            endAngle = startAngle + delta * (displayedLength - accumLength) / l;\n                            breakBuild = true;\n                        }\n                        accumLength += l;\n                    }\n                    if (isEllipse && ctx.ellipse) {\n                        ctx.ellipse(cx, cy, rx, ry, psi, startAngle, endAngle, anticlockwise);\n                    }\n                    else {\n                        ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\n                    }\n                    if (breakBuild) {\n                        break lo;\n                    }\n                    if (isFirst) {\n                        x0 = mathCos(startAngle) * rx + cx;\n                        y0 = mathSin(startAngle) * ry + cy;\n                    }\n                    xi = mathCos(endAngle) * rx + cx;\n                    yi = mathSin(endAngle) * ry + cy;\n                    break;\n                case CMD.R:\n                    x0 = xi = d[i];\n                    y0 = yi = d[i + 1];\n                    x = d[i++];\n                    y = d[i++];\n                    var width = d[i++];\n                    var height = d[i++];\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            var d_1 = displayedLength - accumLength;\n                            ctx.moveTo(x, y);\n                            ctx.lineTo(x + mathMin(d_1, width), y);\n                            d_1 -= width;\n                            if (d_1 > 0) {\n                                ctx.lineTo(x + width, y + mathMin(d_1, height));\n                            }\n                            d_1 -= height;\n                            if (d_1 > 0) {\n                                ctx.lineTo(x + mathMax(width - d_1, 0), y + height);\n                            }\n                            d_1 -= width;\n                            if (d_1 > 0) {\n                                ctx.lineTo(x, y + mathMax(height - d_1, 0));\n                            }\n                            break lo;\n                        }\n                        accumLength += l;\n                    }\n                    ctx.rect(x, y, width, height);\n                    break;\n                case CMD.Z:\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            var t = (displayedLength - accumLength) / l;\n                            ctx.lineTo(xi * (1 - t) + x0 * t, yi * (1 - t) + y0 * t);\n                            break lo;\n                        }\n                        accumLength += l;\n                    }\n                    ctx.closePath();\n                    xi = x0;\n                    yi = y0;\n            }\n        }\n    };\n    PathProxy.CMD = CMD;\n    PathProxy.initDefaultProps = (function () {\n        var proto = PathProxy.prototype;\n        proto._saveData = true;\n        proto._needsDash = false;\n        proto._dashOffset = 0;\n        proto._dashIdx = 0;\n        proto._dashSum = 0;\n        proto._ux = 0;\n        proto._uy = 0;\n    })();\n    return PathProxy;\n}());\nexport default PathProxy;\n","export function containStroke(x0, y0, x1, y1, lineWidth, x, y) {\n    if (lineWidth === 0) {\n        return false;\n    }\n    var _l = lineWidth;\n    var _a = 0;\n    var _b = x0;\n    if ((y > y0 + _l && y > y1 + _l)\n        || (y < y0 - _l && y < y1 - _l)\n        || (x > x0 + _l && x > x1 + _l)\n        || (x < x0 - _l && x < x1 - _l)) {\n        return false;\n    }\n    if (x0 !== x1) {\n        _a = (y0 - y1) / (x0 - x1);\n        _b = (x0 * y1 - x1 * y0) / (x0 - x1);\n    }\n    else {\n        return Math.abs(x - x0) <= _l / 2;\n    }\n    var tmp = _a * x - y + _b;\n    var _s = tmp * tmp / (_a * _a + 1);\n    return _s <= _l / 2 * _l / 2;\n}\n","import * as curve from '../core/curve';\nexport function containStroke(x0, y0, x1, y1, x2, y2, x3, y3, lineWidth, x, y) {\n    if (lineWidth === 0) {\n        return false;\n    }\n    var _l = lineWidth;\n    if ((y > y0 + _l && y > y1 + _l && y > y2 + _l && y > y3 + _l)\n        || (y < y0 - _l && y < y1 - _l && y < y2 - _l && y < y3 - _l)\n        || (x > x0 + _l && x > x1 + _l && x > x2 + _l && x > x3 + _l)\n        || (x < x0 - _l && x < x1 - _l && x < x2 - _l && x < x3 - _l)) {\n        return false;\n    }\n    var d = curve.cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, null);\n    return d <= _l / 2;\n}\n","import { quadraticProjectPoint } from '../core/curve';\nexport function containStroke(x0, y0, x1, y1, x2, y2, lineWidth, x, y) {\n    if (lineWidth === 0) {\n        return false;\n    }\n    var _l = lineWidth;\n    if ((y > y0 + _l && y > y1 + _l && y > y2 + _l)\n        || (y < y0 - _l && y < y1 - _l && y < y2 - _l)\n        || (x > x0 + _l && x > x1 + _l && x > x2 + _l)\n        || (x < x0 - _l && x < x1 - _l && x < x2 - _l)) {\n        return false;\n    }\n    var d = quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, null);\n    return d <= _l / 2;\n}\n","var PI2 = Math.PI * 2;\nexport function normalizeRadian(angle) {\n    angle %= PI2;\n    if (angle < 0) {\n        angle += PI2;\n    }\n    return angle;\n}\n","import { normalizeRadian } from './util';\nvar PI2 = Math.PI * 2;\nexport function containStroke(cx, cy, r, startAngle, endAngle, anticlockwise, lineWidth, x, y) {\n    if (lineWidth === 0) {\n        return false;\n    }\n    var _l = lineWidth;\n    x -= cx;\n    y -= cy;\n    var d = Math.sqrt(x * x + y * y);\n    if ((d - _l > r) || (d + _l < r)) {\n        return false;\n    }\n    if (Math.abs(startAngle - endAngle) % PI2 < 1e-4) {\n        return true;\n    }\n    if (anticlockwise) {\n        var tmp = startAngle;\n        startAngle = normalizeRadian(endAngle);\n        endAngle = normalizeRadian(tmp);\n    }\n    else {\n        startAngle = normalizeRadian(startAngle);\n        endAngle = normalizeRadian(endAngle);\n    }\n    if (startAngle > endAngle) {\n        endAngle += PI2;\n    }\n    var angle = Math.atan2(y, x);\n    if (angle < 0) {\n        angle += PI2;\n    }\n    return (angle >= startAngle && angle <= endAngle)\n        || (angle + PI2 >= startAngle && angle + PI2 <= endAngle);\n}\n","export default function windingLine(x0, y0, x1, y1, x, y) {\n    if ((y > y0 && y > y1) || (y < y0 && y < y1)) {\n        return 0;\n    }\n    if (y1 === y0) {\n        return 0;\n    }\n    var t = (y - y0) / (y1 - y0);\n    var dir = y1 < y0 ? 1 : -1;\n    if (t === 1 || t === 0) {\n        dir = y1 < y0 ? 0.5 : -0.5;\n    }\n    var x_ = t * (x1 - x0) + x0;\n    return x_ === x ? Infinity : x_ > x ? dir : 0;\n}\n","import PathProxy from '../core/PathProxy';\nimport * as line from './line';\nimport * as cubic from './cubic';\nimport * as quadratic from './quadratic';\nimport * as arc from './arc';\nimport * as curve from '../core/curve';\nimport windingLine from './windingLine';\nvar CMD = PathProxy.CMD;\nvar PI2 = Math.PI * 2;\nvar EPSILON = 1e-4;\nfunction isAroundEqual(a, b) {\n    return Math.abs(a - b) < EPSILON;\n}\nvar roots = [-1, -1, -1];\nvar extrema = [-1, -1];\nfunction swapExtrema() {\n    var tmp = extrema[0];\n    extrema[0] = extrema[1];\n    extrema[1] = tmp;\n}\nfunction windingCubic(x0, y0, x1, y1, x2, y2, x3, y3, x, y) {\n    if ((y > y0 && y > y1 && y > y2 && y > y3)\n        || (y < y0 && y < y1 && y < y2 && y < y3)) {\n        return 0;\n    }\n    var nRoots = curve.cubicRootAt(y0, y1, y2, y3, y, roots);\n    if (nRoots === 0) {\n        return 0;\n    }\n    else {\n        var w = 0;\n        var nExtrema = -1;\n        var y0_ = void 0;\n        var y1_ = void 0;\n        for (var i = 0; i < nRoots; i++) {\n            var t = roots[i];\n            var unit = (t === 0 || t === 1) ? 0.5 : 1;\n            var x_ = curve.cubicAt(x0, x1, x2, x3, t);\n            if (x_ < x) {\n                continue;\n            }\n            if (nExtrema < 0) {\n                nExtrema = curve.cubicExtrema(y0, y1, y2, y3, extrema);\n                if (extrema[1] < extrema[0] && nExtrema > 1) {\n                    swapExtrema();\n                }\n                y0_ = curve.cubicAt(y0, y1, y2, y3, extrema[0]);\n                if (nExtrema > 1) {\n                    y1_ = curve.cubicAt(y0, y1, y2, y3, extrema[1]);\n                }\n            }\n            if (nExtrema === 2) {\n                if (t < extrema[0]) {\n                    w += y0_ < y0 ? unit : -unit;\n                }\n                else if (t < extrema[1]) {\n                    w += y1_ < y0_ ? unit : -unit;\n                }\n                else {\n                    w += y3 < y1_ ? unit : -unit;\n                }\n            }\n            else {\n                if (t < extrema[0]) {\n                    w += y0_ < y0 ? unit : -unit;\n                }\n                else {\n                    w += y3 < y0_ ? unit : -unit;\n                }\n            }\n        }\n        return w;\n    }\n}\nfunction windingQuadratic(x0, y0, x1, y1, x2, y2, x, y) {\n    if ((y > y0 && y > y1 && y > y2)\n        || (y < y0 && y < y1 && y < y2)) {\n        return 0;\n    }\n    var nRoots = curve.quadraticRootAt(y0, y1, y2, y, roots);\n    if (nRoots === 0) {\n        return 0;\n    }\n    else {\n        var t = curve.quadraticExtremum(y0, y1, y2);\n        if (t >= 0 && t <= 1) {\n            var w = 0;\n            var y_ = curve.quadraticAt(y0, y1, y2, t);\n            for (var i = 0; i < nRoots; i++) {\n                var unit = (roots[i] === 0 || roots[i] === 1) ? 0.5 : 1;\n                var x_ = curve.quadraticAt(x0, x1, x2, roots[i]);\n                if (x_ < x) {\n                    continue;\n                }\n                if (roots[i] < t) {\n                    w += y_ < y0 ? unit : -unit;\n                }\n                else {\n                    w += y2 < y_ ? unit : -unit;\n                }\n            }\n            return w;\n        }\n        else {\n            var unit = (roots[0] === 0 || roots[0] === 1) ? 0.5 : 1;\n            var x_ = curve.quadraticAt(x0, x1, x2, roots[0]);\n            if (x_ < x) {\n                return 0;\n            }\n            return y2 < y0 ? unit : -unit;\n        }\n    }\n}\nfunction windingArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y) {\n    y -= cy;\n    if (y > r || y < -r) {\n        return 0;\n    }\n    var tmp = Math.sqrt(r * r - y * y);\n    roots[0] = -tmp;\n    roots[1] = tmp;\n    var dTheta = Math.abs(startAngle - endAngle);\n    if (dTheta < 1e-4) {\n        return 0;\n    }\n    if (dTheta >= PI2 - 1e-4) {\n        startAngle = 0;\n        endAngle = PI2;\n        var dir = anticlockwise ? 1 : -1;\n        if (x >= roots[0] + cx && x <= roots[1] + cx) {\n            return dir;\n        }\n        else {\n            return 0;\n        }\n    }\n    if (startAngle > endAngle) {\n        var tmp_1 = startAngle;\n        startAngle = endAngle;\n        endAngle = tmp_1;\n    }\n    if (startAngle < 0) {\n        startAngle += PI2;\n        endAngle += PI2;\n    }\n    var w = 0;\n    for (var i = 0; i < 2; i++) {\n        var x_ = roots[i];\n        if (x_ + cx > x) {\n            var angle = Math.atan2(y, x_);\n            var dir = anticlockwise ? 1 : -1;\n            if (angle < 0) {\n                angle = PI2 + angle;\n            }\n            if ((angle >= startAngle && angle <= endAngle)\n                || (angle + PI2 >= startAngle && angle + PI2 <= endAngle)) {\n                if (angle > Math.PI / 2 && angle < Math.PI * 1.5) {\n                    dir = -dir;\n                }\n                w += dir;\n            }\n        }\n    }\n    return w;\n}\nfunction containPath(path, lineWidth, isStroke, x, y) {\n    var data = path.data;\n    var len = path.len();\n    var w = 0;\n    var xi = 0;\n    var yi = 0;\n    var x0 = 0;\n    var y0 = 0;\n    var x1;\n    var y1;\n    for (var i = 0; i < len;) {\n        var cmd = data[i++];\n        var isFirst = i === 1;\n        if (cmd === CMD.M && i > 1) {\n            if (!isStroke) {\n                w += windingLine(xi, yi, x0, y0, x, y);\n            }\n        }\n        if (isFirst) {\n            xi = data[i];\n            yi = data[i + 1];\n            x0 = xi;\n            y0 = yi;\n        }\n        switch (cmd) {\n            case CMD.M:\n                x0 = data[i++];\n                y0 = data[i++];\n                xi = x0;\n                yi = y0;\n                break;\n            case CMD.L:\n                if (isStroke) {\n                    if (line.containStroke(xi, yi, data[i], data[i + 1], lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingLine(xi, yi, data[i], data[i + 1], x, y) || 0;\n                }\n                xi = data[i++];\n                yi = data[i++];\n                break;\n            case CMD.C:\n                if (isStroke) {\n                    if (cubic.containStroke(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\n                }\n                xi = data[i++];\n                yi = data[i++];\n                break;\n            case CMD.Q:\n                if (isStroke) {\n                    if (quadratic.containStroke(xi, yi, data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\n                }\n                xi = data[i++];\n                yi = data[i++];\n                break;\n            case CMD.A:\n                var cx = data[i++];\n                var cy = data[i++];\n                var rx = data[i++];\n                var ry = data[i++];\n                var theta = data[i++];\n                var dTheta = data[i++];\n                i += 1;\n                var anticlockwise = !!(1 - data[i++]);\n                x1 = Math.cos(theta) * rx + cx;\n                y1 = Math.sin(theta) * ry + cy;\n                if (!isFirst) {\n                    w += windingLine(xi, yi, x1, y1, x, y);\n                }\n                else {\n                    x0 = x1;\n                    y0 = y1;\n                }\n                var _x = (x - cx) * ry / rx + cx;\n                if (isStroke) {\n                    if (arc.containStroke(cx, cy, ry, theta, theta + dTheta, anticlockwise, lineWidth, _x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y);\n                }\n                xi = Math.cos(theta + dTheta) * rx + cx;\n                yi = Math.sin(theta + dTheta) * ry + cy;\n                break;\n            case CMD.R:\n                x0 = xi = data[i++];\n                y0 = yi = data[i++];\n                var width = data[i++];\n                var height = data[i++];\n                x1 = x0 + width;\n                y1 = y0 + height;\n                if (isStroke) {\n                    if (line.containStroke(x0, y0, x1, y0, lineWidth, x, y)\n                        || line.containStroke(x1, y0, x1, y1, lineWidth, x, y)\n                        || line.containStroke(x1, y1, x0, y1, lineWidth, x, y)\n                        || line.containStroke(x0, y1, x0, y0, lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingLine(x1, y0, x1, y1, x, y);\n                    w += windingLine(x0, y1, x0, y0, x, y);\n                }\n                break;\n            case CMD.Z:\n                if (isStroke) {\n                    if (line.containStroke(xi, yi, x0, y0, lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingLine(xi, yi, x0, y0, x, y);\n                }\n                xi = x0;\n                yi = y0;\n                break;\n        }\n    }\n    if (!isStroke && !isAroundEqual(yi, y0)) {\n        w += windingLine(xi, yi, x0, y0, x, y) || 0;\n    }\n    return w !== 0;\n}\nexport function contain(pathProxy, x, y) {\n    return containPath(pathProxy, 0, false, x, y);\n}\nexport function containStroke(pathProxy, lineWidth, x, y) {\n    return containPath(pathProxy, lineWidth, true, x, y);\n}\n","import { __extends } from \"tslib\";\nimport Displayable, { DEFAULT_COMMON_STYLE, DEFAULT_COMMON_ANIMATION_PROPS } from './Displayable';\nimport Element from '../Element';\nimport PathProxy from '../core/PathProxy';\nimport * as pathContain from '../contain/path';\nimport { defaults, keys, extend, clone, isString, createObject } from '../core/util';\nimport { lum } from '../tool/color';\nimport { DARK_LABEL_COLOR, LIGHT_LABEL_COLOR, DARK_MODE_THRESHOLD, LIGHTER_LABEL_COLOR } from '../config';\nexport var DEFAULT_PATH_STYLE = defaults({\n    fill: '#000',\n    stroke: null,\n    strokePercent: 1,\n    fillOpacity: 1,\n    strokeOpacity: 1,\n    lineDashOffset: 0,\n    lineWidth: 1,\n    lineCap: 'butt',\n    miterLimit: 10,\n    strokeNoScale: false,\n    strokeFirst: false\n}, DEFAULT_COMMON_STYLE);\nexport var DEFAULT_PATH_ANIMATION_PROPS = {\n    style: defaults({\n        fill: true,\n        stroke: true,\n        strokePercent: true,\n        fillOpacity: true,\n        strokeOpacity: true,\n        lineDashOffset: true,\n        lineWidth: true,\n        miterLimit: true\n    }, DEFAULT_COMMON_ANIMATION_PROPS.style)\n};\nvar pathCopyParams = [\n    'x', 'y', 'rotation', 'scaleX', 'scaleY', 'originX', 'originY', 'invisible',\n    'culling', 'z', 'z2', 'zlevel', 'parent'\n];\nvar Path = (function (_super) {\n    __extends(Path, _super);\n    function Path(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Path.prototype.update = function () {\n        var _this = this;\n        _super.prototype.update.call(this);\n        var style = this.style;\n        if (style.decal) {\n            var decalEl = this._decalEl\n                = this._decalEl || new Path();\n            if (decalEl.buildPath === Path.prototype.buildPath) {\n                decalEl.buildPath = function (ctx) {\n                    _this.buildPath(ctx, _this.shape);\n                };\n            }\n            decalEl.silent = true;\n            var decalElStyle = decalEl.style;\n            for (var key in style) {\n                if (decalElStyle[key] !== style[key]) {\n                    decalElStyle[key] = style[key];\n                }\n            }\n            decalElStyle.fill = style.fill ? style.decal : null;\n            decalElStyle.decal = null;\n            decalElStyle.shadowColor = null;\n            style.strokeFirst && (decalElStyle.stroke = null);\n            for (var i = 0; i < pathCopyParams.length; ++i) {\n                decalEl[pathCopyParams[i]] = this[pathCopyParams[i]];\n            }\n            decalEl.__dirty |= Element.REDARAW_BIT;\n        }\n        else if (this._decalEl) {\n            this._decalEl = null;\n        }\n    };\n    Path.prototype.getDecalElement = function () {\n        return this._decalEl;\n    };\n    Path.prototype._init = function (props) {\n        var keysArr = keys(props);\n        this.shape = this.getDefaultShape();\n        var defaultStyle = this.getDefaultStyle();\n        if (defaultStyle) {\n            this.useStyle(defaultStyle);\n        }\n        for (var i = 0; i < keysArr.length; i++) {\n            var key = keysArr[i];\n            var value = props[key];\n            if (key === 'style') {\n                if (!this.style) {\n                    this.useStyle(value);\n                }\n                else {\n                    extend(this.style, value);\n                }\n            }\n            else if (key === 'shape') {\n                extend(this.shape, value);\n            }\n            else {\n                _super.prototype.attrKV.call(this, key, value);\n            }\n        }\n        if (!this.style) {\n            this.useStyle({});\n        }\n    };\n    Path.prototype.getDefaultStyle = function () {\n        return null;\n    };\n    Path.prototype.getDefaultShape = function () {\n        return {};\n    };\n    Path.prototype.canBeInsideText = function () {\n        return this.hasFill();\n    };\n    Path.prototype.getInsideTextFill = function () {\n        var pathFill = this.style.fill;\n        if (pathFill !== 'none') {\n            if (isString(pathFill)) {\n                var fillLum = lum(pathFill, 0);\n                if (fillLum > 0.5) {\n                    return DARK_LABEL_COLOR;\n                }\n                else if (fillLum > 0.2) {\n                    return LIGHTER_LABEL_COLOR;\n                }\n                return LIGHT_LABEL_COLOR;\n            }\n            else if (pathFill) {\n                return LIGHT_LABEL_COLOR;\n            }\n        }\n        return DARK_LABEL_COLOR;\n    };\n    Path.prototype.getInsideTextStroke = function (textFill) {\n        var pathFill = this.style.fill;\n        if (isString(pathFill)) {\n            var zr = this.__zr;\n            var isDarkMode = !!(zr && zr.isDarkMode());\n            var isDarkLabel = lum(textFill, 0) < DARK_MODE_THRESHOLD;\n            if (isDarkMode === isDarkLabel) {\n                return pathFill;\n            }\n        }\n    };\n    Path.prototype.buildPath = function (ctx, shapeCfg, inBundle) { };\n    Path.prototype.pathUpdated = function () {\n        this.__dirty &= ~Path.SHAPE_CHANGED_BIT;\n    };\n    Path.prototype.createPathProxy = function () {\n        this.path = new PathProxy(false);\n    };\n    Path.prototype.hasStroke = function () {\n        var style = this.style;\n        var stroke = style.stroke;\n        return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\n    };\n    Path.prototype.hasFill = function () {\n        var style = this.style;\n        var fill = style.fill;\n        return fill != null && fill !== 'none';\n    };\n    Path.prototype.getBoundingRect = function () {\n        var rect = this._rect;\n        var style = this.style;\n        var needsUpdateRect = !rect;\n        if (needsUpdateRect) {\n            var firstInvoke = false;\n            if (!this.path) {\n                firstInvoke = true;\n                this.createPathProxy();\n            }\n            var path = this.path;\n            if (firstInvoke || (this.__dirty & Path.SHAPE_CHANGED_BIT)) {\n                path.beginPath();\n                this.buildPath(path, this.shape, false);\n                this.pathUpdated();\n            }\n            rect = path.getBoundingRect();\n        }\n        this._rect = rect;\n        if (this.hasStroke() && this.path && this.path.len() > 0) {\n            var rectWithStroke = this._rectWithStroke || (this._rectWithStroke = rect.clone());\n            if (this.__dirty || needsUpdateRect) {\n                rectWithStroke.copy(rect);\n                var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\n                var w = style.lineWidth;\n                if (!this.hasFill()) {\n                    var strokeContainThreshold = this.strokeContainThreshold;\n                    w = Math.max(w, strokeContainThreshold == null ? 4 : strokeContainThreshold);\n                }\n                if (lineScale > 1e-10) {\n                    rectWithStroke.width += w / lineScale;\n                    rectWithStroke.height += w / lineScale;\n                    rectWithStroke.x -= w / lineScale / 2;\n                    rectWithStroke.y -= w / lineScale / 2;\n                }\n            }\n            return rectWithStroke;\n        }\n        return rect;\n    };\n    Path.prototype.contain = function (x, y) {\n        var localPos = this.transformCoordToLocal(x, y);\n        var rect = this.getBoundingRect();\n        var style = this.style;\n        x = localPos[0];\n        y = localPos[1];\n        if (rect.contain(x, y)) {\n            var pathProxy = this.path;\n            if (this.hasStroke()) {\n                var lineWidth = style.lineWidth;\n                var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\n                if (lineScale > 1e-10) {\n                    if (!this.hasFill()) {\n                        lineWidth = Math.max(lineWidth, this.strokeContainThreshold);\n                    }\n                    if (pathContain.containStroke(pathProxy, lineWidth / lineScale, x, y)) {\n                        return true;\n                    }\n                }\n            }\n            if (this.hasFill()) {\n                return pathContain.contain(pathProxy, x, y);\n            }\n        }\n        return false;\n    };\n    Path.prototype.dirtyShape = function () {\n        this.__dirty |= Path.SHAPE_CHANGED_BIT;\n        if (this._rect) {\n            this._rect = null;\n        }\n        if (this._decalEl) {\n            this._decalEl.dirtyShape();\n        }\n        this.markRedraw();\n    };\n    Path.prototype.dirty = function () {\n        this.dirtyStyle();\n        this.dirtyShape();\n    };\n    Path.prototype.animateShape = function (loop) {\n        return this.animate('shape', loop);\n    };\n    Path.prototype.updateDuringAnimation = function (targetKey) {\n        if (targetKey === 'style') {\n            this.dirtyStyle();\n        }\n        else if (targetKey === 'shape') {\n            this.dirtyShape();\n        }\n        else {\n            this.markRedraw();\n        }\n    };\n    Path.prototype.attrKV = function (key, value) {\n        if (key === 'shape') {\n            this.setShape(value);\n        }\n        else {\n            _super.prototype.attrKV.call(this, key, value);\n        }\n    };\n    Path.prototype.setShape = function (keyOrObj, value) {\n        var shape = this.shape;\n        if (!shape) {\n            shape = this.shape = {};\n        }\n        if (typeof keyOrObj === 'string') {\n            shape[keyOrObj] = value;\n        }\n        else {\n            extend(shape, keyOrObj);\n        }\n        this.dirtyShape();\n        return this;\n    };\n    Path.prototype.shapeChanged = function () {\n        return !!(this.__dirty & Path.SHAPE_CHANGED_BIT);\n    };\n    Path.prototype.createStyle = function (obj) {\n        return createObject(DEFAULT_PATH_STYLE, obj);\n    };\n    Path.prototype._innerSaveToNormal = function (toState) {\n        _super.prototype._innerSaveToNormal.call(this, toState);\n        var normalState = this._normalState;\n        if (toState.shape && !normalState.shape) {\n            normalState.shape = extend({}, this.shape);\n        }\n    };\n    Path.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\n        _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\n        var needsRestoreToNormal = !(state && keepCurrentStates);\n        var targetShape;\n        if (state && state.shape) {\n            if (transition) {\n                if (keepCurrentStates) {\n                    targetShape = state.shape;\n                }\n                else {\n                    targetShape = extend({}, normalState.shape);\n                    extend(targetShape, state.shape);\n                }\n            }\n            else {\n                targetShape = extend({}, keepCurrentStates ? this.shape : normalState.shape);\n                extend(targetShape, state.shape);\n            }\n        }\n        else if (needsRestoreToNormal) {\n            targetShape = normalState.shape;\n        }\n        if (targetShape) {\n            if (transition) {\n                this.shape = extend({}, this.shape);\n                var targetShapePrimaryProps = {};\n                var shapeKeys = keys(targetShape);\n                for (var i = 0; i < shapeKeys.length; i++) {\n                    var key = shapeKeys[i];\n                    if (typeof targetShape[key] === 'object') {\n                        this.shape[key] = targetShape[key];\n                    }\n                    else {\n                        targetShapePrimaryProps[key] = targetShape[key];\n                    }\n                }\n                this._transitionState(stateName, {\n                    shape: targetShapePrimaryProps\n                }, animationCfg);\n            }\n            else {\n                this.shape = targetShape;\n                this.dirtyShape();\n            }\n        }\n    };\n    Path.prototype._mergeStates = function (states) {\n        var mergedState = _super.prototype._mergeStates.call(this, states);\n        var mergedShape;\n        for (var i = 0; i < states.length; i++) {\n            var state = states[i];\n            if (state.shape) {\n                mergedShape = mergedShape || {};\n                this._mergeStyle(mergedShape, state.shape);\n            }\n        }\n        if (mergedShape) {\n            mergedState.shape = mergedShape;\n        }\n        return mergedState;\n    };\n    Path.prototype.getAnimationStyleProps = function () {\n        return DEFAULT_PATH_ANIMATION_PROPS;\n    };\n    Path.prototype.isZeroArea = function () {\n        return false;\n    };\n    Path.extend = function (defaultProps) {\n        var Sub = (function (_super) {\n            __extends(Sub, _super);\n            function Sub(opts) {\n                var _this = _super.call(this, opts) || this;\n                defaultProps.init && defaultProps.init.call(_this, opts);\n                return _this;\n            }\n            Sub.prototype.getDefaultStyle = function () {\n                return clone(defaultProps.style);\n            };\n            Sub.prototype.getDefaultShape = function () {\n                return clone(defaultProps.shape);\n            };\n            return Sub;\n        }(Path));\n        for (var key in defaultProps) {\n            if (typeof defaultProps[key] === 'function') {\n                Sub.prototype[key] = defaultProps[key];\n            }\n        }\n        return Sub;\n    };\n    Path.SHAPE_CHANGED_BIT = 4;\n    Path.initDefaultProps = (function () {\n        var pathProto = Path.prototype;\n        pathProto.type = 'path';\n        pathProto.strokeContainThreshold = 5;\n        pathProto.segmentIgnoreThreshold = 0;\n        pathProto.subPixelOptimize = false;\n        pathProto.autoBatch = false;\n        pathProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT | Path.SHAPE_CHANGED_BIT;\n    })();\n    return Path;\n}(Displayable));\nexport default Path;\n","import { __extends } from \"tslib\";\nimport Displayable from './Displayable';\nimport { getBoundingRect, DEFAULT_FONT } from '../contain/text';\nimport { DEFAULT_PATH_STYLE } from './Path';\nimport { createObject, defaults } from '../core/util';\nexport var DEFAULT_TSPAN_STYLE = defaults({\n    strokeFirst: true,\n    font: DEFAULT_FONT,\n    x: 0,\n    y: 0,\n    textAlign: 'left',\n    textBaseline: 'top',\n    miterLimit: 2\n}, DEFAULT_PATH_STYLE);\nvar TSpan = (function (_super) {\n    __extends(TSpan, _super);\n    function TSpan() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    TSpan.prototype.hasStroke = function () {\n        var style = this.style;\n        var stroke = style.stroke;\n        return stroke != null && stroke !== 'none' && style.lineWidth > 0;\n    };\n    TSpan.prototype.hasFill = function () {\n        var style = this.style;\n        var fill = style.fill;\n        return fill != null && fill !== 'none';\n    };\n    TSpan.prototype.createStyle = function (obj) {\n        return createObject(DEFAULT_TSPAN_STYLE, obj);\n    };\n    TSpan.prototype.setBoundingRect = function (rect) {\n        this._rect = rect;\n    };\n    TSpan.prototype.getBoundingRect = function () {\n        var style = this.style;\n        if (!this._rect) {\n            var text = style.text;\n            text != null ? (text += '') : (text = '');\n            var rect = getBoundingRect(text, style.font, style.textAlign, style.textBaseline);\n            rect.x += style.x || 0;\n            rect.y += style.y || 0;\n            if (this.hasStroke()) {\n                var w = style.lineWidth;\n                rect.x -= w / 2;\n                rect.y -= w / 2;\n                rect.width += w;\n                rect.height += w;\n            }\n            this._rect = rect;\n        }\n        return this._rect;\n    };\n    TSpan.initDefaultProps = (function () {\n        var tspanProto = TSpan.prototype;\n        tspanProto.dirtyRectTolerance = 10;\n    })();\n    return TSpan;\n}(Displayable));\nTSpan.prototype.type = 'tspan';\nexport default TSpan;\n","import { __extends } from \"tslib\";\nimport Displayable, { DEFAULT_COMMON_STYLE, DEFAULT_COMMON_ANIMATION_PROPS } from './Displayable';\nimport BoundingRect from '../core/BoundingRect';\nimport { defaults, createObject } from '../core/util';\nexport var DEFAULT_IMAGE_STYLE = defaults({\n    x: 0,\n    y: 0\n}, DEFAULT_COMMON_STYLE);\nexport var DEFAULT_IMAGE_ANIMATION_PROPS = {\n    style: defaults({\n        x: true,\n        y: true,\n        width: true,\n        height: true,\n        sx: true,\n        sy: true,\n        sWidth: true,\n        sHeight: true\n    }, DEFAULT_COMMON_ANIMATION_PROPS.style)\n};\nfunction isImageLike(source) {\n    return !!(source\n        && typeof source !== 'string'\n        && source.width && source.height);\n}\nvar ZRImage = (function (_super) {\n    __extends(ZRImage, _super);\n    function ZRImage() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    ZRImage.prototype.createStyle = function (obj) {\n        return createObject(DEFAULT_IMAGE_STYLE, obj);\n    };\n    ZRImage.prototype._getSize = function (dim) {\n        var style = this.style;\n        var size = style[dim];\n        if (size != null) {\n            return size;\n        }\n        var imageSource = isImageLike(style.image)\n            ? style.image : this.__image;\n        if (!imageSource) {\n            return 0;\n        }\n        var otherDim = dim === 'width' ? 'height' : 'width';\n        var otherDimSize = style[otherDim];\n        if (otherDimSize == null) {\n            return imageSource[dim];\n        }\n        else {\n            return imageSource[dim] / imageSource[otherDim] * otherDimSize;\n        }\n    };\n    ZRImage.prototype.getWidth = function () {\n        return this._getSize('width');\n    };\n    ZRImage.prototype.getHeight = function () {\n        return this._getSize('height');\n    };\n    ZRImage.prototype.getAnimationStyleProps = function () {\n        return DEFAULT_IMAGE_ANIMATION_PROPS;\n    };\n    ZRImage.prototype.getBoundingRect = function () {\n        var style = this.style;\n        if (!this._rect) {\n            this._rect = new BoundingRect(style.x || 0, style.y || 0, this.getWidth(), this.getHeight());\n        }\n        return this._rect;\n    };\n    return ZRImage;\n}(Displayable));\nZRImage.prototype.type = 'image';\nexport default ZRImage;\n","export function buildPath(ctx, shape) {\n    var x = shape.x;\n    var y = shape.y;\n    var width = shape.width;\n    var height = shape.height;\n    var r = shape.r;\n    var r1;\n    var r2;\n    var r3;\n    var r4;\n    if (width < 0) {\n        x = x + width;\n        width = -width;\n    }\n    if (height < 0) {\n        y = y + height;\n        height = -height;\n    }\n    if (typeof r === 'number') {\n        r1 = r2 = r3 = r4 = r;\n    }\n    else if (r instanceof Array) {\n        if (r.length === 1) {\n            r1 = r2 = r3 = r4 = r[0];\n        }\n        else if (r.length === 2) {\n            r1 = r3 = r[0];\n            r2 = r4 = r[1];\n        }\n        else if (r.length === 3) {\n            r1 = r[0];\n            r2 = r4 = r[1];\n            r3 = r[2];\n        }\n        else {\n            r1 = r[0];\n            r2 = r[1];\n            r3 = r[2];\n            r4 = r[3];\n        }\n    }\n    else {\n        r1 = r2 = r3 = r4 = 0;\n    }\n    var total;\n    if (r1 + r2 > width) {\n        total = r1 + r2;\n        r1 *= width / total;\n        r2 *= width / total;\n    }\n    if (r3 + r4 > width) {\n        total = r3 + r4;\n        r3 *= width / total;\n        r4 *= width / total;\n    }\n    if (r2 + r3 > height) {\n        total = r2 + r3;\n        r2 *= height / total;\n        r3 *= height / total;\n    }\n    if (r1 + r4 > height) {\n        total = r1 + r4;\n        r1 *= height / total;\n        r4 *= height / total;\n    }\n    ctx.moveTo(x + r1, y);\n    ctx.lineTo(x + width - r2, y);\n    r2 !== 0 && ctx.arc(x + width - r2, y + r2, r2, -Math.PI / 2, 0);\n    ctx.lineTo(x + width, y + height - r3);\n    r3 !== 0 && ctx.arc(x + width - r3, y + height - r3, r3, 0, Math.PI / 2);\n    ctx.lineTo(x + r4, y + height);\n    r4 !== 0 && ctx.arc(x + r4, y + height - r4, r4, Math.PI / 2, Math.PI);\n    ctx.lineTo(x, y + r1);\n    r1 !== 0 && ctx.arc(x + r1, y + r1, r1, Math.PI, Math.PI * 1.5);\n}\n","var round = Math.round;\nexport function subPixelOptimizeLine(outputShape, inputShape, style) {\n    if (!inputShape) {\n        return;\n    }\n    var x1 = inputShape.x1;\n    var x2 = inputShape.x2;\n    var y1 = inputShape.y1;\n    var y2 = inputShape.y2;\n    outputShape.x1 = x1;\n    outputShape.x2 = x2;\n    outputShape.y1 = y1;\n    outputShape.y2 = y2;\n    var lineWidth = style && style.lineWidth;\n    if (!lineWidth) {\n        return outputShape;\n    }\n    if (round(x1 * 2) === round(x2 * 2)) {\n        outputShape.x1 = outputShape.x2 = subPixelOptimize(x1, lineWidth, true);\n    }\n    if (round(y1 * 2) === round(y2 * 2)) {\n        outputShape.y1 = outputShape.y2 = subPixelOptimize(y1, lineWidth, true);\n    }\n    return outputShape;\n}\nexport function subPixelOptimizeRect(outputShape, inputShape, style) {\n    if (!inputShape) {\n        return;\n    }\n    var originX = inputShape.x;\n    var originY = inputShape.y;\n    var originWidth = inputShape.width;\n    var originHeight = inputShape.height;\n    outputShape.x = originX;\n    outputShape.y = originY;\n    outputShape.width = originWidth;\n    outputShape.height = originHeight;\n    var lineWidth = style && style.lineWidth;\n    if (!lineWidth) {\n        return outputShape;\n    }\n    outputShape.x = subPixelOptimize(originX, lineWidth, true);\n    outputShape.y = subPixelOptimize(originY, lineWidth, true);\n    outputShape.width = Math.max(subPixelOptimize(originX + originWidth, lineWidth, false) - outputShape.x, originWidth === 0 ? 0 : 1);\n    outputShape.height = Math.max(subPixelOptimize(originY + originHeight, lineWidth, false) - outputShape.y, originHeight === 0 ? 0 : 1);\n    return outputShape;\n}\nexport function subPixelOptimize(position, lineWidth, positiveOrNegative) {\n    if (!lineWidth) {\n        return position;\n    }\n    var doubledPosition = round(position * 2);\n    return (doubledPosition + round(lineWidth)) % 2 === 0\n        ? doubledPosition / 2\n        : (doubledPosition + (positiveOrNegative ? 1 : -1)) / 2;\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as roundRectHelper from '../helper/roundRect';\nimport { subPixelOptimizeRect } from '../helper/subPixelOptimize';\nvar RectShape = (function () {\n    function RectShape() {\n        this.x = 0;\n        this.y = 0;\n        this.width = 0;\n        this.height = 0;\n    }\n    return RectShape;\n}());\nvar subPixelOptimizeOutputShape = {};\nvar Rect = (function (_super) {\n    __extends(Rect, _super);\n    function Rect(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Rect.prototype.getDefaultShape = function () {\n        return new RectShape();\n    };\n    Rect.prototype.buildPath = function (ctx, shape) {\n        var x;\n        var y;\n        var width;\n        var height;\n        if (this.subPixelOptimize) {\n            var optimizedShape = subPixelOptimizeRect(subPixelOptimizeOutputShape, shape, this.style);\n            x = optimizedShape.x;\n            y = optimizedShape.y;\n            width = optimizedShape.width;\n            height = optimizedShape.height;\n            optimizedShape.r = shape.r;\n            shape = optimizedShape;\n        }\n        else {\n            x = shape.x;\n            y = shape.y;\n            width = shape.width;\n            height = shape.height;\n        }\n        if (!shape.r) {\n            ctx.rect(x, y, width, height);\n        }\n        else {\n            roundRectHelper.buildPath(ctx, shape);\n        }\n    };\n    Rect.prototype.isZeroArea = function () {\n        return !this.shape.width || !this.shape.height;\n    };\n    return Rect;\n}(Path));\nRect.prototype.type = 'rect';\nexport default Rect;\n","import { __extends } from \"tslib\";\nimport { parseRichText, parsePlainText } from './helper/parseText';\nimport TSpan from './TSpan';\nimport { retrieve2, isString, each, normalizeCssArray, trim, retrieve3, extend, keys, defaults } from '../core/util';\nimport { DEFAULT_FONT, adjustTextX, adjustTextY } from '../contain/text';\nimport ZRImage from './Image';\nimport Rect from './shape/Rect';\nimport BoundingRect from '../core/BoundingRect';\nimport { copy } from '../core/matrix';\nimport Displayable, { DEFAULT_COMMON_ANIMATION_PROPS } from './Displayable';\nvar DEFAULT_RICH_TEXT_COLOR = {\n    fill: '#000'\n};\nvar DEFAULT_STROKE_LINE_WIDTH = 2;\nexport var DEFAULT_TEXT_ANIMATION_PROPS = {\n    style: defaults({\n        fill: true,\n        stroke: true,\n        fillOpacity: true,\n        strokeOpacity: true,\n        lineWidth: true,\n        fontSize: true,\n        lineHeight: true,\n        width: true,\n        height: true,\n        textShadowColor: true,\n        textShadowBlur: true,\n        textShadowOffsetX: true,\n        textShadowOffsetY: true,\n        backgroundColor: true,\n        padding: true,\n        borderColor: true,\n        borderWidth: true,\n        borderRadius: true\n    }, DEFAULT_COMMON_ANIMATION_PROPS.style)\n};\nvar ZRText = (function (_super) {\n    __extends(ZRText, _super);\n    function ZRText(opts) {\n        var _this = _super.call(this) || this;\n        _this.type = 'text';\n        _this._children = [];\n        _this._defaultStyle = DEFAULT_RICH_TEXT_COLOR;\n        _this.attr(opts);\n        return _this;\n    }\n    ZRText.prototype.childrenRef = function () {\n        return this._children;\n    };\n    ZRText.prototype.update = function () {\n        if (this.styleChanged()) {\n            this._updateSubTexts();\n        }\n        for (var i = 0; i < this._children.length; i++) {\n            var child = this._children[i];\n            child.zlevel = this.zlevel;\n            child.z = this.z;\n            child.z2 = this.z2;\n            child.culling = this.culling;\n            child.cursor = this.cursor;\n            child.invisible = this.invisible;\n        }\n        var attachedTransform = this.attachedTransform;\n        if (attachedTransform) {\n            attachedTransform.updateTransform();\n            var m = attachedTransform.transform;\n            if (m) {\n                this.transform = this.transform || [];\n                copy(this.transform, m);\n            }\n            else {\n                this.transform = null;\n            }\n        }\n        else {\n            _super.prototype.update.call(this);\n        }\n    };\n    ZRText.prototype.getComputedTransform = function () {\n        if (this.__hostTarget) {\n            this.__hostTarget.getComputedTransform();\n            this.__hostTarget.updateInnerText(true);\n        }\n        return this.attachedTransform ? this.attachedTransform.getComputedTransform()\n            : _super.prototype.getComputedTransform.call(this);\n    };\n    ZRText.prototype._updateSubTexts = function () {\n        this._childCursor = 0;\n        normalizeTextStyle(this.style);\n        this.style.rich\n            ? this._updateRichTexts()\n            : this._updatePlainTexts();\n        this._children.length = this._childCursor;\n        this.styleUpdated();\n    };\n    ZRText.prototype.addSelfToZr = function (zr) {\n        _super.prototype.addSelfToZr.call(this, zr);\n        for (var i = 0; i < this._children.length; i++) {\n            this._children[i].__zr = zr;\n        }\n    };\n    ZRText.prototype.removeSelfFromZr = function (zr) {\n        _super.prototype.removeSelfFromZr.call(this, zr);\n        for (var i = 0; i < this._children.length; i++) {\n            this._children[i].__zr = null;\n        }\n    };\n    ZRText.prototype.getBoundingRect = function () {\n        if (this.styleChanged()) {\n            this._updateSubTexts();\n        }\n        if (!this._rect) {\n            var tmpRect = new BoundingRect(0, 0, 0, 0);\n            var children = this._children;\n            var tmpMat = [];\n            var rect = null;\n            for (var i = 0; i < children.length; i++) {\n                var child = children[i];\n                var childRect = child.getBoundingRect();\n                var transform = child.getLocalTransform(tmpMat);\n                if (transform) {\n                    tmpRect.copy(childRect);\n                    tmpRect.applyTransform(transform);\n                    rect = rect || tmpRect.clone();\n                    rect.union(tmpRect);\n                }\n                else {\n                    rect = rect || childRect.clone();\n                    rect.union(childRect);\n                }\n            }\n            this._rect = rect || tmpRect;\n        }\n        return this._rect;\n    };\n    ZRText.prototype.setDefaultTextStyle = function (defaultTextStyle) {\n        this._defaultStyle = defaultTextStyle || DEFAULT_RICH_TEXT_COLOR;\n    };\n    ZRText.prototype.setTextContent = function (textContent) {\n        throw new Error('Can\\'t attach text on another text');\n    };\n    ZRText.prototype._mergeStyle = function (targetStyle, sourceStyle) {\n        if (!sourceStyle) {\n            return targetStyle;\n        }\n        var sourceRich = sourceStyle.rich;\n        var targetRich = targetStyle.rich || (sourceRich && {});\n        extend(targetStyle, sourceStyle);\n        if (sourceRich && targetRich) {\n            this._mergeRich(targetRich, sourceRich);\n            targetStyle.rich = targetRich;\n        }\n        else if (targetRich) {\n            targetStyle.rich = targetRich;\n        }\n        return targetStyle;\n    };\n    ZRText.prototype._mergeRich = function (targetRich, sourceRich) {\n        var richNames = keys(sourceRich);\n        for (var i = 0; i < richNames.length; i++) {\n            var richName = richNames[i];\n            targetRich[richName] = targetRich[richName] || {};\n            extend(targetRich[richName], sourceRich[richName]);\n        }\n    };\n    ZRText.prototype.getAnimationStyleProps = function () {\n        return DEFAULT_TEXT_ANIMATION_PROPS;\n    };\n    ZRText.prototype._getOrCreateChild = function (Ctor) {\n        var child = this._children[this._childCursor];\n        if (!child || !(child instanceof Ctor)) {\n            child = new Ctor();\n        }\n        this._children[this._childCursor++] = child;\n        child.__zr = this.__zr;\n        child.parent = this;\n        return child;\n    };\n    ZRText.prototype._updatePlainTexts = function () {\n        var style = this.style;\n        var textFont = style.font || DEFAULT_FONT;\n        var textPadding = style.padding;\n        var text = getStyleText(style);\n        var contentBlock = parsePlainText(text, style);\n        var needDrawBg = needDrawBackground(style);\n        var bgColorDrawn = !!(style.backgroundColor);\n        var outerHeight = contentBlock.outerHeight;\n        var textLines = contentBlock.lines;\n        var lineHeight = contentBlock.lineHeight;\n        var defaultStyle = this._defaultStyle;\n        var baseX = style.x || 0;\n        var baseY = style.y || 0;\n        var textAlign = style.align || defaultStyle.align || 'left';\n        var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign || 'top';\n        var textX = baseX;\n        var textY = adjustTextY(baseY, contentBlock.contentHeight, verticalAlign);\n        if (needDrawBg || textPadding) {\n            var outerWidth_1 = contentBlock.width;\n            textPadding && (outerWidth_1 += textPadding[1] + textPadding[3]);\n            var boxX = adjustTextX(baseX, outerWidth_1, textAlign);\n            var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\n            needDrawBg && this._renderBackground(style, style, boxX, boxY, outerWidth_1, outerHeight);\n        }\n        textY += lineHeight / 2;\n        if (textPadding) {\n            textX = getTextXForPadding(baseX, textAlign, textPadding);\n            if (verticalAlign === 'top') {\n                textY += textPadding[0];\n            }\n            else if (verticalAlign === 'bottom') {\n                textY -= textPadding[2];\n            }\n        }\n        var defaultLineWidth = 0;\n        var useDefaultFill = false;\n        var textFill = getFill('fill' in style\n            ? style.fill\n            : (useDefaultFill = true, defaultStyle.fill));\n        var textStroke = getStroke('stroke' in style\n            ? style.stroke\n            : (!bgColorDrawn\n                && (!defaultStyle.autoStroke || useDefaultFill))\n                ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\n                : null);\n        var hasShadow = style.textShadowBlur > 0;\n        var fixedBoundingRect = style.width != null\n            && (style.overflow === 'truncate' || style.overflow === 'break' || style.overflow === 'breakAll');\n        var calculatedLineHeight = contentBlock.calculatedLineHeight;\n        for (var i = 0; i < textLines.length; i++) {\n            var el = this._getOrCreateChild(TSpan);\n            var subElStyle = el.createStyle();\n            el.useStyle(subElStyle);\n            subElStyle.text = textLines[i];\n            subElStyle.x = textX;\n            subElStyle.y = textY;\n            if (textAlign) {\n                subElStyle.textAlign = textAlign;\n            }\n            subElStyle.textBaseline = 'middle';\n            subElStyle.opacity = style.opacity;\n            subElStyle.strokeFirst = true;\n            if (hasShadow) {\n                subElStyle.shadowBlur = style.textShadowBlur || 0;\n                subElStyle.shadowColor = style.textShadowColor || 'transparent';\n                subElStyle.shadowOffsetX = style.textShadowOffsetX || 0;\n                subElStyle.shadowOffsetY = style.textShadowOffsetY || 0;\n            }\n            if (textStroke) {\n                subElStyle.stroke = textStroke;\n                subElStyle.lineWidth = style.lineWidth || defaultLineWidth;\n                subElStyle.lineDash = style.lineDash;\n                subElStyle.lineDashOffset = style.lineDashOffset || 0;\n            }\n            if (textFill) {\n                subElStyle.fill = textFill;\n            }\n            subElStyle.font = textFont;\n            textY += lineHeight;\n            if (fixedBoundingRect) {\n                el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, style.width, subElStyle.textAlign), adjustTextY(subElStyle.y, calculatedLineHeight, subElStyle.textBaseline), style.width, calculatedLineHeight));\n            }\n        }\n    };\n    ZRText.prototype._updateRichTexts = function () {\n        var style = this.style;\n        var text = getStyleText(style);\n        var contentBlock = parseRichText(text, style);\n        var contentWidth = contentBlock.width;\n        var outerWidth = contentBlock.outerWidth;\n        var outerHeight = contentBlock.outerHeight;\n        var textPadding = style.padding;\n        var baseX = style.x || 0;\n        var baseY = style.y || 0;\n        var defaultStyle = this._defaultStyle;\n        var textAlign = style.align || defaultStyle.align;\n        var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign;\n        var boxX = adjustTextX(baseX, outerWidth, textAlign);\n        var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\n        var xLeft = boxX;\n        var lineTop = boxY;\n        if (textPadding) {\n            xLeft += textPadding[3];\n            lineTop += textPadding[0];\n        }\n        var xRight = xLeft + contentWidth;\n        if (needDrawBackground(style)) {\n            this._renderBackground(style, style, boxX, boxY, outerWidth, outerHeight);\n        }\n        var bgColorDrawn = !!(style.backgroundColor);\n        for (var i = 0; i < contentBlock.lines.length; i++) {\n            var line = contentBlock.lines[i];\n            var tokens = line.tokens;\n            var tokenCount = tokens.length;\n            var lineHeight = line.lineHeight;\n            var remainedWidth = line.width;\n            var leftIndex = 0;\n            var lineXLeft = xLeft;\n            var lineXRight = xRight;\n            var rightIndex = tokenCount - 1;\n            var token = void 0;\n            while (leftIndex < tokenCount\n                && (token = tokens[leftIndex], !token.align || token.align === 'left')) {\n                this._placeToken(token, style, lineHeight, lineTop, lineXLeft, 'left', bgColorDrawn);\n                remainedWidth -= token.width;\n                lineXLeft += token.width;\n                leftIndex++;\n            }\n            while (rightIndex >= 0\n                && (token = tokens[rightIndex], token.align === 'right')) {\n                this._placeToken(token, style, lineHeight, lineTop, lineXRight, 'right', bgColorDrawn);\n                remainedWidth -= token.width;\n                lineXRight -= token.width;\n                rightIndex--;\n            }\n            lineXLeft += (contentWidth - (lineXLeft - xLeft) - (xRight - lineXRight) - remainedWidth) / 2;\n            while (leftIndex <= rightIndex) {\n                token = tokens[leftIndex];\n                this._placeToken(token, style, lineHeight, lineTop, lineXLeft + token.width / 2, 'center', bgColorDrawn);\n                lineXLeft += token.width;\n                leftIndex++;\n            }\n            lineTop += lineHeight;\n        }\n    };\n    ZRText.prototype._placeToken = function (token, style, lineHeight, lineTop, x, textAlign, parentBgColorDrawn) {\n        var tokenStyle = style.rich[token.styleName] || {};\n        tokenStyle.text = token.text;\n        var verticalAlign = token.verticalAlign;\n        var y = lineTop + lineHeight / 2;\n        if (verticalAlign === 'top') {\n            y = lineTop + token.height / 2;\n        }\n        else if (verticalAlign === 'bottom') {\n            y = lineTop + lineHeight - token.height / 2;\n        }\n        var needDrawBg = !token.isLineHolder && needDrawBackground(tokenStyle);\n        needDrawBg && this._renderBackground(tokenStyle, style, textAlign === 'right'\n            ? x - token.width\n            : textAlign === 'center'\n                ? x - token.width / 2\n                : x, y - token.height / 2, token.width, token.height);\n        var bgColorDrawn = !!tokenStyle.backgroundColor;\n        var textPadding = token.textPadding;\n        if (textPadding) {\n            x = getTextXForPadding(x, textAlign, textPadding);\n            y -= token.height / 2 - textPadding[0] - token.innerHeight / 2;\n        }\n        var el = this._getOrCreateChild(TSpan);\n        var subElStyle = el.createStyle();\n        el.useStyle(subElStyle);\n        var defaultStyle = this._defaultStyle;\n        var useDefaultFill = false;\n        var defaultLineWidth = 0;\n        var textFill = getStroke('fill' in tokenStyle ? tokenStyle.fill\n            : 'fill' in style ? style.fill\n                : (useDefaultFill = true, defaultStyle.fill));\n        var textStroke = getStroke('stroke' in tokenStyle ? tokenStyle.stroke\n            : 'stroke' in style ? style.stroke\n                : (!bgColorDrawn\n                    && !parentBgColorDrawn\n                    && (!defaultStyle.autoStroke || useDefaultFill)) ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\n                    : null);\n        var hasShadow = tokenStyle.textShadowBlur > 0\n            || style.textShadowBlur > 0;\n        subElStyle.text = token.text;\n        subElStyle.x = x;\n        subElStyle.y = y;\n        if (hasShadow) {\n            subElStyle.shadowBlur = tokenStyle.textShadowBlur || style.textShadowBlur || 0;\n            subElStyle.shadowColor = tokenStyle.textShadowColor || style.textShadowColor || 'transparent';\n            subElStyle.shadowOffsetX = tokenStyle.textShadowOffsetX || style.textShadowOffsetX || 0;\n            subElStyle.shadowOffsetY = tokenStyle.textShadowOffsetY || style.textShadowOffsetY || 0;\n        }\n        subElStyle.textAlign = textAlign;\n        subElStyle.textBaseline = 'middle';\n        subElStyle.font = token.font || DEFAULT_FONT;\n        subElStyle.opacity = retrieve3(tokenStyle.opacity, style.opacity, 1);\n        if (textStroke) {\n            subElStyle.lineWidth = retrieve3(tokenStyle.lineWidth, style.lineWidth, defaultLineWidth);\n            subElStyle.lineDash = retrieve2(tokenStyle.lineDash, style.lineDash);\n            subElStyle.lineDashOffset = style.lineDashOffset || 0;\n            subElStyle.stroke = textStroke;\n        }\n        if (textFill) {\n            subElStyle.fill = textFill;\n        }\n        var textWidth = token.contentWidth;\n        var textHeight = token.contentHeight;\n        el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, textWidth, subElStyle.textAlign), adjustTextY(subElStyle.y, textHeight, subElStyle.textBaseline), textWidth, textHeight));\n    };\n    ZRText.prototype._renderBackground = function (style, topStyle, x, y, width, height) {\n        var textBackgroundColor = style.backgroundColor;\n        var textBorderWidth = style.borderWidth;\n        var textBorderColor = style.borderColor;\n        var isPlainBg = isString(textBackgroundColor);\n        var textBorderRadius = style.borderRadius;\n        var self = this;\n        var rectEl;\n        var imgEl;\n        if (isPlainBg || (textBorderWidth && textBorderColor)) {\n            rectEl = this._getOrCreateChild(Rect);\n            rectEl.useStyle(rectEl.createStyle());\n            rectEl.style.fill = null;\n            var rectShape = rectEl.shape;\n            rectShape.x = x;\n            rectShape.y = y;\n            rectShape.width = width;\n            rectShape.height = height;\n            rectShape.r = textBorderRadius;\n            rectEl.dirtyShape();\n        }\n        if (isPlainBg) {\n            var rectStyle = rectEl.style;\n            rectStyle.fill = textBackgroundColor || null;\n            rectStyle.fillOpacity = retrieve2(style.fillOpacity, 1);\n        }\n        else if (textBackgroundColor && textBackgroundColor.image) {\n            imgEl = this._getOrCreateChild(ZRImage);\n            imgEl.onload = function () {\n                self.dirtyStyle();\n            };\n            var imgStyle = imgEl.style;\n            imgStyle.image = textBackgroundColor.image;\n            imgStyle.x = x;\n            imgStyle.y = y;\n            imgStyle.width = width;\n            imgStyle.height = height;\n        }\n        if (textBorderWidth && textBorderColor) {\n            var rectStyle = rectEl.style;\n            rectStyle.lineWidth = textBorderWidth;\n            rectStyle.stroke = textBorderColor;\n            rectStyle.strokeOpacity = retrieve2(style.strokeOpacity, 1);\n            rectStyle.lineDash = style.borderDash;\n            rectStyle.lineDashOffset = style.borderDashOffset || 0;\n            rectEl.strokeContainThreshold = 0;\n            if (rectEl.hasFill() && rectEl.hasStroke()) {\n                rectStyle.strokeFirst = true;\n                rectStyle.lineWidth *= 2;\n            }\n        }\n        var commonStyle = (rectEl || imgEl).style;\n        commonStyle.shadowBlur = style.shadowBlur || 0;\n        commonStyle.shadowColor = style.shadowColor || 'transparent';\n        commonStyle.shadowOffsetX = style.shadowOffsetX || 0;\n        commonStyle.shadowOffsetY = style.shadowOffsetY || 0;\n        commonStyle.opacity = retrieve3(style.opacity, topStyle.opacity, 1);\n    };\n    ZRText.makeFont = function (style) {\n        var font = '';\n        if (style.fontSize || style.fontFamily || style.fontWeight) {\n            var fontSize = '';\n            if (typeof style.fontSize === 'string'\n                && (style.fontSize.indexOf('px') !== -1\n                    || style.fontSize.indexOf('rem') !== -1\n                    || style.fontSize.indexOf('em') !== -1)) {\n                fontSize = style.fontSize;\n            }\n            else if (!isNaN(+style.fontSize)) {\n                fontSize = style.fontSize + 'px';\n            }\n            else {\n                fontSize = '12px';\n            }\n            font = [\n                style.fontStyle,\n                style.fontWeight,\n                fontSize,\n                style.fontFamily || 'sans-serif'\n            ].join(' ');\n        }\n        return font && trim(font) || style.textFont || style.font;\n    };\n    return ZRText;\n}(Displayable));\nvar VALID_TEXT_ALIGN = { left: true, right: 1, center: 1 };\nvar VALID_TEXT_VERTICAL_ALIGN = { top: 1, bottom: 1, middle: 1 };\nexport function normalizeTextStyle(style) {\n    normalizeStyle(style);\n    each(style.rich, normalizeStyle);\n    return style;\n}\nfunction normalizeStyle(style) {\n    if (style) {\n        style.font = ZRText.makeFont(style);\n        var textAlign = style.align;\n        textAlign === 'middle' && (textAlign = 'center');\n        style.align = (textAlign == null || VALID_TEXT_ALIGN[textAlign]) ? textAlign : 'left';\n        var verticalAlign = style.verticalAlign;\n        verticalAlign === 'center' && (verticalAlign = 'middle');\n        style.verticalAlign = (verticalAlign == null || VALID_TEXT_VERTICAL_ALIGN[verticalAlign]) ? verticalAlign : 'top';\n        var textPadding = style.padding;\n        if (textPadding) {\n            style.padding = normalizeCssArray(style.padding);\n        }\n    }\n}\nfunction getStroke(stroke, lineWidth) {\n    return (stroke == null || lineWidth <= 0 || stroke === 'transparent' || stroke === 'none')\n        ? null\n        : (stroke.image || stroke.colorStops)\n            ? '#000'\n            : stroke;\n}\nfunction getFill(fill) {\n    return (fill == null || fill === 'none')\n        ? null\n        : (fill.image || fill.colorStops)\n            ? '#000'\n            : fill;\n}\nfunction getTextXForPadding(x, textAlign, textPadding) {\n    return textAlign === 'right'\n        ? (x - textPadding[1])\n        : textAlign === 'center'\n            ? (x + textPadding[3] / 2 - textPadding[1] / 2)\n            : (x + textPadding[3]);\n}\nfunction getStyleText(style) {\n    var text = style.text;\n    text != null && (text += '');\n    return text;\n}\nfunction needDrawBackground(style) {\n    return !!(style.backgroundColor\n        || (style.borderWidth && style.borderColor));\n}\nexport default ZRText;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner } from './model';\nexport var getECData = makeInner();","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport LRU from 'zrender/lib/core/LRU';\nimport { extend, indexOf, isArrayLike, isObject, keys, isArray, each } from 'zrender/lib/core/util';\nimport { getECData } from './innerStore';\nimport * as colorTool from 'zrender/lib/tool/color';\nimport { queryDataIndex, makeInner } from './model';\nimport Path from 'zrender/lib/graphic/Path';\nvar _highlightNextDigit = 1;\nvar _highlightKeyMap = {};\nvar getSavedStates = makeInner();\nexport var HOVER_STATE_NORMAL = 0;\nexport var HOVER_STATE_BLUR = 1;\nexport var HOVER_STATE_EMPHASIS = 2;\nexport var SPECIAL_STATES = ['emphasis', 'blur', 'select'];\nexport var DISPLAY_STATES = ['normal', 'emphasis', 'blur', 'select'];\nexport var Z2_EMPHASIS_LIFT = 10;\nexport var Z2_SELECT_LIFT = 9;\nexport var HIGHLIGHT_ACTION_TYPE = 'highlight';\nexport var DOWNPLAY_ACTION_TYPE = 'downplay';\nexport var SELECT_ACTION_TYPE = 'select';\nexport var UNSELECT_ACTION_TYPE = 'unselect';\nexport var TOGGLE_SELECT_ACTION_TYPE = 'toggleSelect';\n\nfunction hasFillOrStroke(fillOrStroke) {\n  return fillOrStroke != null && fillOrStroke !== 'none';\n}\n\nvar liftedColorCache = new LRU(100);\n\nfunction liftColor(color) {\n  if (typeof color !== 'string') {\n    return color;\n  }\n\n  var liftedColor = liftedColorCache.get(color);\n\n  if (!liftedColor) {\n    liftedColor = colorTool.lift(color, -0.1);\n    liftedColorCache.put(color, liftedColor);\n  }\n\n  return liftedColor;\n}\n\nfunction doChangeHoverState(el, stateName, hoverStateEnum) {\n  if (el.onHoverStateChange && (el.hoverState || 0) !== hoverStateEnum) {\n    el.onHoverStateChange(stateName);\n  }\n\n  el.hoverState = hoverStateEnum;\n}\n\nfunction singleEnterEmphasis(el) {\n  doChangeHoverState(el, 'emphasis', HOVER_STATE_EMPHASIS);\n}\n\nfunction singleLeaveEmphasis(el) {\n  if (el.hoverState === HOVER_STATE_EMPHASIS) {\n    doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\n  }\n}\n\nfunction singleEnterBlur(el) {\n  doChangeHoverState(el, 'blur', HOVER_STATE_BLUR);\n}\n\nfunction singleLeaveBlur(el) {\n  if (el.hoverState === HOVER_STATE_BLUR) {\n    doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\n  }\n}\n\nfunction singleEnterSelect(el) {\n  el.selected = true;\n}\n\nfunction singleLeaveSelect(el) {\n  el.selected = false;\n}\n\nfunction updateElementState(el, updater, commonParam) {\n  updater(el, commonParam);\n}\n\nfunction traverseUpdateState(el, updater, commonParam) {\n  updateElementState(el, updater, commonParam);\n  el.isGroup && el.traverse(function (child) {\n    updateElementState(child, updater, commonParam);\n  });\n}\n\nexport function setStatesFlag(el, stateName) {\n  switch (stateName) {\n    case 'emphasis':\n      el.hoverState = HOVER_STATE_EMPHASIS;\n      break;\n\n    case 'normal':\n      el.hoverState = HOVER_STATE_NORMAL;\n      break;\n\n    case 'blur':\n      el.hoverState = HOVER_STATE_BLUR;\n      break;\n\n    case 'select':\n      el.selected = true;\n  }\n}\nexport function clearStates(el) {\n  if (el.isGroup) {\n    el.traverse(function (child) {\n      child.clearStates();\n    });\n  } else {\n    el.clearStates();\n  }\n}\n\nfunction getFromStateStyle(el, props, toStateName, defaultValue) {\n  var style = el.style;\n  var fromState = {};\n\n  for (var i = 0; i < props.length; i++) {\n    var propName = props[i];\n    var val = style[propName];\n    fromState[propName] = val == null ? defaultValue && defaultValue[propName] : val;\n  }\n\n  for (var i = 0; i < el.animators.length; i++) {\n    var animator = el.animators[i];\n\n    if (animator.__fromStateTransition && animator.__fromStateTransition.indexOf(toStateName) < 0 && animator.targetName === 'style') {\n      animator.saveFinalToTarget(fromState, props);\n    }\n  }\n\n  return fromState;\n}\n\nfunction createEmphasisDefaultState(el, stateName, targetStates, state) {\n  var hasSelect = targetStates && indexOf(targetStates, 'select') >= 0;\n  var cloned = false;\n\n  if (el instanceof Path) {\n    var store = getSavedStates(el);\n    var fromFill = hasSelect ? store.selectFill || store.normalFill : store.normalFill;\n    var fromStroke = hasSelect ? store.selectStroke || store.normalStroke : store.normalStroke;\n\n    if (hasFillOrStroke(fromFill) || hasFillOrStroke(fromStroke)) {\n      state = state || {};\n      var emphasisStyle = state.style || {};\n\n      if (!hasFillOrStroke(emphasisStyle.fill) && hasFillOrStroke(fromFill)) {\n        cloned = true;\n        state = extend({}, state);\n        emphasisStyle = extend({}, emphasisStyle);\n        emphasisStyle.fill = liftColor(fromFill);\n      } else if (!hasFillOrStroke(emphasisStyle.stroke) && hasFillOrStroke(fromStroke)) {\n        if (!cloned) {\n          state = extend({}, state);\n          emphasisStyle = extend({}, emphasisStyle);\n        }\n\n        emphasisStyle.stroke = liftColor(fromStroke);\n      }\n\n      state.style = emphasisStyle;\n    }\n  }\n\n  if (state) {\n    if (state.z2 == null) {\n      if (!cloned) {\n        state = extend({}, state);\n      }\n\n      var z2EmphasisLift = el.z2EmphasisLift;\n      state.z2 = el.z2 + (z2EmphasisLift != null ? z2EmphasisLift : Z2_EMPHASIS_LIFT);\n    }\n  }\n\n  return state;\n}\n\nfunction createSelectDefaultState(el, stateName, state) {\n  if (state) {\n    if (state.z2 == null) {\n      state = extend({}, state);\n      var z2SelectLift = el.z2SelectLift;\n      state.z2 = el.z2 + (z2SelectLift != null ? z2SelectLift : Z2_SELECT_LIFT);\n    }\n  }\n\n  return state;\n}\n\nfunction createBlurDefaultState(el, stateName, state) {\n  var hasBlur = indexOf(el.currentStates, stateName) >= 0;\n  var currentOpacity = el.style.opacity;\n  var fromState = !hasBlur ? getFromStateStyle(el, ['opacity'], stateName, {\n    opacity: 1\n  }) : null;\n  state = state || {};\n  var blurStyle = state.style || {};\n\n  if (blurStyle.opacity == null) {\n    state = extend({}, state);\n    blurStyle = extend({\n      opacity: hasBlur ? currentOpacity : fromState.opacity * 0.1\n    }, blurStyle);\n    state.style = blurStyle;\n  }\n\n  return state;\n}\n\nfunction elementStateProxy(stateName, targetStates) {\n  var state = this.states[stateName];\n\n  if (this.style) {\n    if (stateName === 'emphasis') {\n      return createEmphasisDefaultState(this, stateName, targetStates, state);\n    } else if (stateName === 'blur') {\n      return createBlurDefaultState(this, stateName, state);\n    } else if (stateName === 'select') {\n      return createSelectDefaultState(this, stateName, state);\n    }\n  }\n\n  return state;\n}\n\nexport function setDefaultStateProxy(el) {\n  el.stateProxy = elementStateProxy;\n  var textContent = el.getTextContent();\n  var textGuide = el.getTextGuideLine();\n\n  if (textContent) {\n    textContent.stateProxy = elementStateProxy;\n  }\n\n  if (textGuide) {\n    textGuide.stateProxy = elementStateProxy;\n  }\n}\nexport function enterEmphasisWhenMouseOver(el, e) {\n  !shouldSilent(el, e) && !el.__highByOuter && traverseUpdateState(el, singleEnterEmphasis);\n}\nexport function leaveEmphasisWhenMouseOut(el, e) {\n  !shouldSilent(el, e) && !el.__highByOuter && traverseUpdateState(el, singleLeaveEmphasis);\n}\nexport function enterEmphasis(el, highlightDigit) {\n  el.__highByOuter |= 1 << (highlightDigit || 0);\n  traverseUpdateState(el, singleEnterEmphasis);\n}\nexport function leaveEmphasis(el, highlightDigit) {\n  !(el.__highByOuter &= ~(1 << (highlightDigit || 0))) && traverseUpdateState(el, singleLeaveEmphasis);\n}\nexport function enterBlur(el) {\n  traverseUpdateState(el, singleEnterBlur);\n}\nexport function leaveBlur(el) {\n  traverseUpdateState(el, singleLeaveBlur);\n}\nexport function enterSelect(el) {\n  traverseUpdateState(el, singleEnterSelect);\n}\nexport function leaveSelect(el) {\n  traverseUpdateState(el, singleLeaveSelect);\n}\n\nfunction shouldSilent(el, e) {\n  return el.__highDownSilentOnTouch && e.zrByTouch;\n}\n\nfunction allLeaveBlur(api) {\n  var model = api.getModel();\n  model.eachComponent(function (componentType, componentModel) {\n    var view = componentType === 'series' ? api.getViewOfSeriesModel(componentModel) : api.getViewOfComponentModel(componentModel);\n    view.group.traverse(function (child) {\n      singleLeaveBlur(child);\n    });\n  });\n}\n\nexport function toggleSeriesBlurState(targetSeriesIndex, focus, blurScope, api, isBlur) {\n  var ecModel = api.getModel();\n  blurScope = blurScope || 'coordinateSystem';\n\n  function leaveBlurOfIndices(data, dataIndices) {\n    for (var i = 0; i < dataIndices.length; i++) {\n      var itemEl = data.getItemGraphicEl(dataIndices[i]);\n      itemEl && leaveBlur(itemEl);\n    }\n  }\n\n  if (!isBlur) {\n    allLeaveBlur(api);\n    return;\n  }\n\n  if (targetSeriesIndex == null) {\n    return;\n  }\n\n  if (!focus || focus === 'none') {\n    return;\n  }\n\n  var targetSeriesModel = ecModel.getSeriesByIndex(targetSeriesIndex);\n  var targetCoordSys = targetSeriesModel.coordinateSystem;\n\n  if (targetCoordSys && targetCoordSys.master) {\n    targetCoordSys = targetCoordSys.master;\n  }\n\n  var blurredSeries = [];\n  ecModel.eachSeries(function (seriesModel) {\n    var sameSeries = targetSeriesModel === seriesModel;\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys && coordSys.master) {\n      coordSys = coordSys.master;\n    }\n\n    var sameCoordSys = coordSys && targetCoordSys ? coordSys === targetCoordSys : sameSeries;\n\n    if (!(blurScope === 'series' && !sameSeries || blurScope === 'coordinateSystem' && !sameCoordSys || focus === 'series' && sameSeries)) {\n      var view = api.getViewOfSeriesModel(seriesModel);\n      view.group.traverse(function (child) {\n        singleEnterBlur(child);\n      });\n\n      if (isArrayLike(focus)) {\n        leaveBlurOfIndices(seriesModel.getData(), focus);\n      } else if (isObject(focus)) {\n        var dataTypes = keys(focus);\n\n        for (var d = 0; d < dataTypes.length; d++) {\n          leaveBlurOfIndices(seriesModel.getData(dataTypes[d]), focus[dataTypes[d]]);\n        }\n      }\n\n      blurredSeries.push(seriesModel);\n    }\n  });\n  ecModel.eachComponent(function (componentType, componentModel) {\n    if (componentType === 'series') {\n      return;\n    }\n\n    var view = api.getViewOfComponentModel(componentModel);\n\n    if (view && view.blurSeries) {\n      view.blurSeries(blurredSeries, ecModel);\n    }\n  });\n}\nexport function toggleSeriesBlurStateFromPayload(seriesModel, payload, api) {\n  if (!isHighDownPayload(payload)) {\n    return;\n  }\n\n  var isHighlight = payload.type === HIGHLIGHT_ACTION_TYPE;\n  var seriesIndex = seriesModel.seriesIndex;\n  var data = seriesModel.getData(payload.dataType);\n  var dataIndex = queryDataIndex(data, payload);\n  dataIndex = (isArray(dataIndex) ? dataIndex[0] : dataIndex) || 0;\n  var el = data.getItemGraphicEl(dataIndex);\n\n  if (!el) {\n    var count = data.count();\n    var current = 0;\n\n    while (!el && current < count) {\n      el = data.getItemGraphicEl(current++);\n    }\n  }\n\n  if (el) {\n    var ecData = getECData(el);\n    toggleSeriesBlurState(seriesIndex, ecData.focus, ecData.blurScope, api, isHighlight);\n  } else {\n    var focus_1 = seriesModel.get(['emphasis', 'focus']);\n    var blurScope = seriesModel.get(['emphasis', 'blurScope']);\n\n    if (focus_1 != null) {\n      toggleSeriesBlurState(seriesIndex, focus_1, blurScope, api, isHighlight);\n    }\n  }\n}\nexport function toggleSelectionFromPayload(seriesModel, payload, api) {\n  if (!isSelectChangePayload(payload)) {\n    return;\n  }\n\n  var dataType = payload.dataType;\n  var data = seriesModel.getData(dataType);\n  var dataIndex = queryDataIndex(data, payload);\n\n  if (!isArray(dataIndex)) {\n    dataIndex = [dataIndex];\n  }\n\n  seriesModel[payload.type === TOGGLE_SELECT_ACTION_TYPE ? 'toggleSelect' : payload.type === SELECT_ACTION_TYPE ? 'select' : 'unselect'](dataIndex, dataType);\n}\nexport function updateSeriesElementSelection(seriesModel) {\n  var allData = seriesModel.getAllData();\n  each(allData, function (_a) {\n    var data = _a.data,\n        type = _a.type;\n    data.eachItemGraphicEl(function (el, idx) {\n      seriesModel.isSelected(idx, type) ? enterSelect(el) : leaveSelect(el);\n    });\n  });\n}\nexport function getAllSelectedIndices(ecModel) {\n  var ret = [];\n  ecModel.eachSeries(function (seriesModel) {\n    var allData = seriesModel.getAllData();\n    each(allData, function (_a) {\n      var data = _a.data,\n          type = _a.type;\n      var dataIndices = seriesModel.getSelectedDataIndices();\n\n      if (dataIndices.length > 0) {\n        var item = {\n          dataIndex: dataIndices,\n          seriesIndex: seriesModel.seriesIndex\n        };\n\n        if (type != null) {\n          item.dataType = type;\n        }\n\n        ret.push(item);\n      }\n    });\n  });\n  return ret;\n}\nexport function enableHoverEmphasis(el, focus, blurScope) {\n  setAsHighDownDispatcher(el, true);\n  traverseUpdateState(el, setDefaultStateProxy);\n  enableHoverFocus(el, focus, blurScope);\n}\nexport function enableHoverFocus(el, focus, blurScope) {\n  var ecData = getECData(el);\n\n  if (focus != null) {\n    ecData.focus = focus;\n    ecData.blurScope = blurScope;\n  } else if (ecData.focus) {\n    ecData.focus = null;\n  }\n}\nvar OTHER_STATES = ['emphasis', 'blur', 'select'];\nvar defaultStyleGetterMap = {\n  itemStyle: 'getItemStyle',\n  lineStyle: 'getLineStyle',\n  areaStyle: 'getAreaStyle'\n};\nexport function setStatesStylesFromModel(el, itemModel, styleType, getter) {\n  styleType = styleType || 'itemStyle';\n\n  for (var i = 0; i < OTHER_STATES.length; i++) {\n    var stateName = OTHER_STATES[i];\n    var model = itemModel.getModel([stateName, styleType]);\n    var state = el.ensureState(stateName);\n    state.style = getter ? getter(model) : model[defaultStyleGetterMap[styleType]]();\n  }\n}\nexport function setAsHighDownDispatcher(el, asDispatcher) {\n  var disable = asDispatcher === false;\n  var extendedEl = el;\n\n  if (el.highDownSilentOnTouch) {\n    extendedEl.__highDownSilentOnTouch = el.highDownSilentOnTouch;\n  }\n\n  if (!disable || extendedEl.__highDownDispatcher) {\n    extendedEl.__highByOuter = extendedEl.__highByOuter || 0;\n    extendedEl.__highDownDispatcher = !disable;\n  }\n}\nexport function isHighDownDispatcher(el) {\n  return !!(el && el.__highDownDispatcher);\n}\nexport function getHighlightDigit(highlightKey) {\n  var highlightDigit = _highlightKeyMap[highlightKey];\n\n  if (highlightDigit == null && _highlightNextDigit <= 32) {\n    highlightDigit = _highlightKeyMap[highlightKey] = _highlightNextDigit++;\n  }\n\n  return highlightDigit;\n}\nexport function isSelectChangePayload(payload) {\n  var payloadType = payload.type;\n  return payloadType === SELECT_ACTION_TYPE || payloadType === UNSELECT_ACTION_TYPE || payloadType === TOGGLE_SELECT_ACTION_TYPE;\n}\nexport function isHighDownPayload(payload) {\n  var payloadType = payload.type;\n  return payloadType === HIGHLIGHT_ACTION_TYPE || payloadType === DOWNPLAY_ACTION_TYPE;\n}\nexport function savePathStates(el) {\n  var store = getSavedStates(el);\n  store.normalFill = el.style.fill;\n  store.normalStroke = el.style.stroke;\n  var selectState = el.states.select || {};\n  store.selectFill = selectState.style && selectState.style.fill || null;\n  store.selectStroke = selectState.style && selectState.style.stroke || null;\n}","import PathProxy from '../core/PathProxy';\nimport { applyTransform as v2ApplyTransform } from '../core/vector';\nvar CMD = PathProxy.CMD;\nvar points = [[], [], []];\nvar mathSqrt = Math.sqrt;\nvar mathAtan2 = Math.atan2;\nexport default function transformPath(path, m) {\n    var data = path.data;\n    var len = path.len();\n    var cmd;\n    var nPoint;\n    var i;\n    var j;\n    var k;\n    var p;\n    var M = CMD.M;\n    var C = CMD.C;\n    var L = CMD.L;\n    var R = CMD.R;\n    var A = CMD.A;\n    var Q = CMD.Q;\n    for (i = 0, j = 0; i < len;) {\n        cmd = data[i++];\n        j = i;\n        nPoint = 0;\n        switch (cmd) {\n            case M:\n                nPoint = 1;\n                break;\n            case L:\n                nPoint = 1;\n                break;\n            case C:\n                nPoint = 3;\n                break;\n            case Q:\n                nPoint = 2;\n                break;\n            case A:\n                var x = m[4];\n                var y = m[5];\n                var sx = mathSqrt(m[0] * m[0] + m[1] * m[1]);\n                var sy = mathSqrt(m[2] * m[2] + m[3] * m[3]);\n                var angle = mathAtan2(-m[1] / sy, m[0] / sx);\n                data[i] *= sx;\n                data[i++] += x;\n                data[i] *= sy;\n                data[i++] += y;\n                data[i++] *= sx;\n                data[i++] *= sy;\n                data[i++] += angle;\n                data[i++] += angle;\n                i += 2;\n                j = i;\n                break;\n            case R:\n                p[0] = data[i++];\n                p[1] = data[i++];\n                v2ApplyTransform(p, p, m);\n                data[j++] = p[0];\n                data[j++] = p[1];\n                p[0] += data[i++];\n                p[1] += data[i++];\n                v2ApplyTransform(p, p, m);\n                data[j++] = p[0];\n                data[j++] = p[1];\n        }\n        for (k = 0; k < nPoint; k++) {\n            var p_1 = points[k];\n            p_1[0] = data[i++];\n            p_1[1] = data[i++];\n            v2ApplyTransform(p_1, p_1, m);\n            data[j++] = p_1[0];\n            data[j++] = p_1[1];\n        }\n    }\n    path.increaseVersion();\n}\n","import { __extends } from \"tslib\";\nimport Path from '../graphic/Path';\nimport PathProxy from '../core/PathProxy';\nimport transformPath from './transformPath';\nimport { extend } from '../core/util';\nvar mathSqrt = Math.sqrt;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI = Math.PI;\nfunction vMag(v) {\n    return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\n}\n;\nfunction vRatio(u, v) {\n    return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));\n}\n;\nfunction vAngle(u, v) {\n    return (u[0] * v[1] < u[1] * v[0] ? -1 : 1)\n        * Math.acos(vRatio(u, v));\n}\n;\nfunction processArc(x1, y1, x2, y2, fa, fs, rx, ry, psiDeg, cmd, path) {\n    var psi = psiDeg * (PI / 180.0);\n    var xp = mathCos(psi) * (x1 - x2) / 2.0\n        + mathSin(psi) * (y1 - y2) / 2.0;\n    var yp = -1 * mathSin(psi) * (x1 - x2) / 2.0\n        + mathCos(psi) * (y1 - y2) / 2.0;\n    var lambda = (xp * xp) / (rx * rx) + (yp * yp) / (ry * ry);\n    if (lambda > 1) {\n        rx *= mathSqrt(lambda);\n        ry *= mathSqrt(lambda);\n    }\n    var f = (fa === fs ? -1 : 1)\n        * mathSqrt((((rx * rx) * (ry * ry))\n            - ((rx * rx) * (yp * yp))\n            - ((ry * ry) * (xp * xp))) / ((rx * rx) * (yp * yp)\n            + (ry * ry) * (xp * xp))) || 0;\n    var cxp = f * rx * yp / ry;\n    var cyp = f * -ry * xp / rx;\n    var cx = (x1 + x2) / 2.0\n        + mathCos(psi) * cxp\n        - mathSin(psi) * cyp;\n    var cy = (y1 + y2) / 2.0\n        + mathSin(psi) * cxp\n        + mathCos(psi) * cyp;\n    var theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]);\n    var u = [(xp - cxp) / rx, (yp - cyp) / ry];\n    var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry];\n    var dTheta = vAngle(u, v);\n    if (vRatio(u, v) <= -1) {\n        dTheta = PI;\n    }\n    if (vRatio(u, v) >= 1) {\n        dTheta = 0;\n    }\n    if (dTheta < 0) {\n        var n = Math.round(dTheta / PI * 1e6) / 1e6;\n        dTheta = PI * 2 + (n % 2) * PI;\n    }\n    path.addData(cmd, cx, cy, rx, ry, theta, dTheta, psi, fs);\n}\nvar commandReg = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig;\nvar numberReg = /-?([0-9]*\\.)?[0-9]+([eE]-?[0-9]+)?/g;\nfunction createPathProxyFromString(data) {\n    var path = new PathProxy();\n    if (!data) {\n        return path;\n    }\n    var cpx = 0;\n    var cpy = 0;\n    var subpathX = cpx;\n    var subpathY = cpy;\n    var prevCmd;\n    var CMD = PathProxy.CMD;\n    var cmdList = data.match(commandReg);\n    if (!cmdList) {\n        return path;\n    }\n    for (var l = 0; l < cmdList.length; l++) {\n        var cmdText = cmdList[l];\n        var cmdStr = cmdText.charAt(0);\n        var cmd = void 0;\n        var p = cmdText.match(numberReg) || [];\n        var pLen = p.length;\n        for (var i = 0; i < pLen; i++) {\n            p[i] = parseFloat(p[i]);\n        }\n        var off = 0;\n        while (off < pLen) {\n            var ctlPtx = void 0;\n            var ctlPty = void 0;\n            var rx = void 0;\n            var ry = void 0;\n            var psi = void 0;\n            var fa = void 0;\n            var fs = void 0;\n            var x1 = cpx;\n            var y1 = cpy;\n            var len = void 0;\n            var pathData = void 0;\n            switch (cmdStr) {\n                case 'l':\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'L':\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'm':\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.M;\n                    path.addData(cmd, cpx, cpy);\n                    subpathX = cpx;\n                    subpathY = cpy;\n                    cmdStr = 'l';\n                    break;\n                case 'M':\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.M;\n                    path.addData(cmd, cpx, cpy);\n                    subpathX = cpx;\n                    subpathY = cpy;\n                    cmdStr = 'L';\n                    break;\n                case 'h':\n                    cpx += p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'H':\n                    cpx = p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'v':\n                    cpy += p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'V':\n                    cpy = p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'C':\n                    cmd = CMD.C;\n                    path.addData(cmd, p[off++], p[off++], p[off++], p[off++], p[off++], p[off++]);\n                    cpx = p[off - 2];\n                    cpy = p[off - 1];\n                    break;\n                case 'c':\n                    cmd = CMD.C;\n                    path.addData(cmd, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy);\n                    cpx += p[off - 2];\n                    cpy += p[off - 1];\n                    break;\n                case 'S':\n                    ctlPtx = cpx;\n                    ctlPty = cpy;\n                    len = path.len();\n                    pathData = path.data;\n                    if (prevCmd === CMD.C) {\n                        ctlPtx += cpx - pathData[len - 4];\n                        ctlPty += cpy - pathData[len - 3];\n                    }\n                    cmd = CMD.C;\n                    x1 = p[off++];\n                    y1 = p[off++];\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\n                    break;\n                case 's':\n                    ctlPtx = cpx;\n                    ctlPty = cpy;\n                    len = path.len();\n                    pathData = path.data;\n                    if (prevCmd === CMD.C) {\n                        ctlPtx += cpx - pathData[len - 4];\n                        ctlPty += cpy - pathData[len - 3];\n                    }\n                    cmd = CMD.C;\n                    x1 = cpx + p[off++];\n                    y1 = cpy + p[off++];\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\n                    break;\n                case 'Q':\n                    x1 = p[off++];\n                    y1 = p[off++];\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.Q;\n                    path.addData(cmd, x1, y1, cpx, cpy);\n                    break;\n                case 'q':\n                    x1 = p[off++] + cpx;\n                    y1 = p[off++] + cpy;\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.Q;\n                    path.addData(cmd, x1, y1, cpx, cpy);\n                    break;\n                case 'T':\n                    ctlPtx = cpx;\n                    ctlPty = cpy;\n                    len = path.len();\n                    pathData = path.data;\n                    if (prevCmd === CMD.Q) {\n                        ctlPtx += cpx - pathData[len - 4];\n                        ctlPty += cpy - pathData[len - 3];\n                    }\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.Q;\n                    path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n                    break;\n                case 't':\n                    ctlPtx = cpx;\n                    ctlPty = cpy;\n                    len = path.len();\n                    pathData = path.data;\n                    if (prevCmd === CMD.Q) {\n                        ctlPtx += cpx - pathData[len - 4];\n                        ctlPty += cpy - pathData[len - 3];\n                    }\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.Q;\n                    path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n                    break;\n                case 'A':\n                    rx = p[off++];\n                    ry = p[off++];\n                    psi = p[off++];\n                    fa = p[off++];\n                    fs = p[off++];\n                    x1 = cpx, y1 = cpy;\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.A;\n                    processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\n                    break;\n                case 'a':\n                    rx = p[off++];\n                    ry = p[off++];\n                    psi = p[off++];\n                    fa = p[off++];\n                    fs = p[off++];\n                    x1 = cpx, y1 = cpy;\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.A;\n                    processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\n                    break;\n            }\n        }\n        if (cmdStr === 'z' || cmdStr === 'Z') {\n            cmd = CMD.Z;\n            path.addData(cmd);\n            cpx = subpathX;\n            cpy = subpathY;\n        }\n        prevCmd = cmd;\n    }\n    path.toStatic();\n    return path;\n}\nvar SVGPath = (function (_super) {\n    __extends(SVGPath, _super);\n    function SVGPath() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    SVGPath.prototype.applyTransform = function (m) { };\n    return SVGPath;\n}(Path));\nfunction isPathProxy(path) {\n    return path.setData != null;\n}\nfunction createPathOptions(str, opts) {\n    var pathProxy = createPathProxyFromString(str);\n    var innerOpts = extend({}, opts);\n    innerOpts.buildPath = function (path) {\n        if (isPathProxy(path)) {\n            path.setData(pathProxy.data);\n            var ctx = path.getContext();\n            if (ctx) {\n                path.rebuildPath(ctx, 1);\n            }\n        }\n        else {\n            var ctx = path;\n            pathProxy.rebuildPath(ctx, 1);\n        }\n    };\n    innerOpts.applyTransform = function (m) {\n        transformPath(pathProxy, m);\n        this.dirtyShape();\n    };\n    return innerOpts;\n}\nexport function createFromString(str, opts) {\n    return new SVGPath(createPathOptions(str, opts));\n}\nexport function extendFromString(str, defaultOpts) {\n    var innerOpts = createPathOptions(str, defaultOpts);\n    var Sub = (function (_super) {\n        __extends(Sub, _super);\n        function Sub(opts) {\n            var _this = _super.call(this, opts) || this;\n            _this.applyTransform = innerOpts.applyTransform;\n            _this.buildPath = innerOpts.buildPath;\n            return _this;\n        }\n        return Sub;\n    }(SVGPath));\n    return Sub;\n}\nexport function mergePath(pathEls, opts) {\n    var pathList = [];\n    var len = pathEls.length;\n    for (var i = 0; i < len; i++) {\n        var pathEl = pathEls[i];\n        if (!pathEl.path) {\n            pathEl.createPathProxy();\n        }\n        if (pathEl.shapeChanged()) {\n            pathEl.buildPath(pathEl.path, pathEl.shape, true);\n        }\n        pathList.push(pathEl.path);\n    }\n    var pathBundle = new Path(opts);\n    pathBundle.createPathProxy();\n    pathBundle.buildPath = function (path) {\n        if (isPathProxy(path)) {\n            path.appendPath(pathList);\n            var ctx = path.getContext();\n            if (ctx) {\n                path.rebuildPath(ctx, 1);\n            }\n        }\n    };\n    return pathBundle;\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar CircleShape = (function () {\n    function CircleShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.r = 0;\n    }\n    return CircleShape;\n}());\nvar Circle = (function (_super) {\n    __extends(Circle, _super);\n    function Circle(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Circle.prototype.getDefaultShape = function () {\n        return new CircleShape();\n    };\n    Circle.prototype.buildPath = function (ctx, shape, inBundle) {\n        if (inBundle) {\n            ctx.moveTo(shape.cx + shape.r, shape.cy);\n        }\n        ctx.arc(shape.cx, shape.cy, shape.r, 0, Math.PI * 2);\n    };\n    return Circle;\n}(Path));\n;\nCircle.prototype.type = 'circle';\nexport default Circle;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar EllipseShape = (function () {\n    function EllipseShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.rx = 0;\n        this.ry = 0;\n    }\n    return EllipseShape;\n}());\nvar Ellipse = (function (_super) {\n    __extends(Ellipse, _super);\n    function Ellipse(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Ellipse.prototype.getDefaultShape = function () {\n        return new EllipseShape();\n    };\n    Ellipse.prototype.buildPath = function (ctx, shape) {\n        var k = 0.5522848;\n        var x = shape.cx;\n        var y = shape.cy;\n        var a = shape.rx;\n        var b = shape.ry;\n        var ox = a * k;\n        var oy = b * k;\n        ctx.moveTo(x - a, y);\n        ctx.bezierCurveTo(x - a, y - oy, x - ox, y - b, x, y - b);\n        ctx.bezierCurveTo(x + ox, y - b, x + a, y - oy, x + a, y);\n        ctx.bezierCurveTo(x + a, y + oy, x + ox, y + b, x, y + b);\n        ctx.bezierCurveTo(x - ox, y + b, x - a, y + oy, x - a, y);\n        ctx.closePath();\n    };\n    return Ellipse;\n}(Path));\nEllipse.prototype.type = 'ellipse';\nexport default Ellipse;\n","import { normalizeArcAngles } from '../../core/PathProxy';\nvar PI = Math.PI;\nvar PI2 = PI * 2;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar mathACos = Math.acos;\nvar mathATan2 = Math.atan2;\nvar mathAbs = Math.abs;\nvar mathSqrt = Math.sqrt;\nvar mathMax = Math.max;\nvar mathMin = Math.min;\nvar e = 1e-4;\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n    var x10 = x1 - x0;\n    var y10 = y1 - y0;\n    var x32 = x3 - x2;\n    var y32 = y3 - y2;\n    var t = y32 * x10 - x32 * y10;\n    if (t * t < e) {\n        return;\n    }\n    t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n    return [x0 + t * x10, y0 + t * y10];\n}\nfunction computeCornerTangents(x0, y0, x1, y1, radius, cr, clockwise) {\n    var x01 = x0 - x1;\n    var y01 = y0 - y1;\n    var lo = (clockwise ? cr : -cr) / mathSqrt(x01 * x01 + y01 * y01);\n    var ox = lo * y01;\n    var oy = -lo * x01;\n    var x11 = x0 + ox;\n    var y11 = y0 + oy;\n    var x10 = x1 + ox;\n    var y10 = y1 + oy;\n    var x00 = (x11 + x10) / 2;\n    var y00 = (y11 + y10) / 2;\n    var dx = x10 - x11;\n    var dy = y10 - y11;\n    var d2 = dx * dx + dy * dy;\n    var r = radius - cr;\n    var s = x11 * y10 - x10 * y11;\n    var d = (dy < 0 ? -1 : 1) * mathSqrt(mathMax(0, r * r * d2 - s * s));\n    var cx0 = (s * dy - dx * d) / d2;\n    var cy0 = (-s * dx - dy * d) / d2;\n    var cx1 = (s * dy + dx * d) / d2;\n    var cy1 = (-s * dx + dy * d) / d2;\n    var dx0 = cx0 - x00;\n    var dy0 = cy0 - y00;\n    var dx1 = cx1 - x00;\n    var dy1 = cy1 - y00;\n    if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) {\n        cx0 = cx1;\n        cy0 = cy1;\n    }\n    return {\n        cx: cx0,\n        cy: cy0,\n        x01: -ox,\n        y01: -oy,\n        x11: cx0 * (radius / r - 1),\n        y11: cy0 * (radius / r - 1)\n    };\n}\nexport function buildPath(ctx, shape) {\n    var radius = mathMax(shape.r, 0);\n    var innerRadius = mathMax(shape.r0 || 0, 0);\n    var hasRadius = radius > 0;\n    var hasInnerRadius = innerRadius > 0;\n    if (!hasRadius && !hasInnerRadius) {\n        return;\n    }\n    if (!hasRadius) {\n        radius = innerRadius;\n        innerRadius = 0;\n    }\n    if (innerRadius > radius) {\n        var tmp = radius;\n        radius = innerRadius;\n        innerRadius = tmp;\n    }\n    var clockwise = !!shape.clockwise;\n    var startAngle = shape.startAngle;\n    var endAngle = shape.endAngle;\n    var tmpAngles = [startAngle, endAngle];\n    normalizeArcAngles(tmpAngles, !clockwise);\n    var arc = mathAbs(tmpAngles[0] - tmpAngles[1]);\n    var x = shape.cx;\n    var y = shape.cy;\n    var cornerRadius = shape.cornerRadius || 0;\n    var innerCornerRadius = shape.innerCornerRadius || 0;\n    if (!(radius > e)) {\n        ctx.moveTo(x, y);\n    }\n    else if (arc > PI2 - e) {\n        ctx.moveTo(x + radius * mathCos(startAngle), y + radius * mathSin(startAngle));\n        ctx.arc(x, y, radius, startAngle, endAngle, !clockwise);\n        if (innerRadius > e) {\n            ctx.moveTo(x + innerRadius * mathCos(endAngle), y + innerRadius * mathSin(endAngle));\n            ctx.arc(x, y, innerRadius, endAngle, startAngle, clockwise);\n        }\n    }\n    else {\n        var halfRd = mathAbs(radius - innerRadius) / 2;\n        var cr = mathMin(halfRd, cornerRadius);\n        var icr = mathMin(halfRd, innerCornerRadius);\n        var cr0 = icr;\n        var cr1 = cr;\n        var xrs = radius * mathCos(startAngle);\n        var yrs = radius * mathSin(startAngle);\n        var xire = innerRadius * mathCos(endAngle);\n        var yire = innerRadius * mathSin(endAngle);\n        var xre = void 0;\n        var yre = void 0;\n        var xirs = void 0;\n        var yirs = void 0;\n        if (cr > e || icr > e) {\n            xre = radius * mathCos(endAngle);\n            yre = radius * mathSin(endAngle);\n            xirs = innerRadius * mathCos(startAngle);\n            yirs = innerRadius * mathSin(startAngle);\n            if (arc < PI) {\n                var it_1 = intersect(xrs, yrs, xirs, yirs, xre, yre, xire, yire);\n                if (it_1) {\n                    var x0 = xrs - it_1[0];\n                    var y0 = yrs - it_1[1];\n                    var x1 = xre - it_1[0];\n                    var y1 = yre - it_1[1];\n                    var a = 1 / mathSin(mathACos((x0 * x1 + y0 * y1) / (mathSqrt(x0 * x0 + y0 * y0) * mathSqrt(x1 * x1 + y1 * y1))) / 2);\n                    var b = mathSqrt(it_1[0] * it_1[0] + it_1[1] * it_1[1]);\n                    cr0 = mathMin(icr, (innerRadius - b) / (a - 1));\n                    cr1 = mathMin(cr, (radius - b) / (a + 1));\n                }\n            }\n        }\n        if (!(arc > e)) {\n            ctx.moveTo(x + xrs, y + yrs);\n        }\n        else if (cr1 > e) {\n            var ct0 = computeCornerTangents(xirs, yirs, xrs, yrs, radius, cr1, clockwise);\n            var ct1 = computeCornerTangents(xre, yre, xire, yire, radius, cr1, clockwise);\n            ctx.moveTo(x + ct0.cx + ct0.x01, y + ct0.cy + ct0.y01);\n            if (cr1 < cr) {\n                ctx.arc(x + ct0.cx, y + ct0.cy, cr1, mathATan2(ct0.y01, ct0.x01), mathATan2(ct1.y01, ct1.x01), !clockwise);\n            }\n            else {\n                ctx.arc(x + ct0.cx, y + ct0.cy, cr1, mathATan2(ct0.y01, ct0.x01), mathATan2(ct0.y11, ct0.x11), !clockwise);\n                ctx.arc(x, y, radius, mathATan2(ct0.cy + ct0.y11, ct0.cx + ct0.x11), mathATan2(ct1.cy + ct1.y11, ct1.cx + ct1.x11), !clockwise);\n                ctx.arc(x + ct1.cx, y + ct1.cy, cr1, mathATan2(ct1.y11, ct1.x11), mathATan2(ct1.y01, ct1.x01), !clockwise);\n            }\n        }\n        else {\n            ctx.moveTo(x + xrs, y + yrs);\n            ctx.arc(x, y, radius, startAngle, endAngle, !clockwise);\n        }\n        if (!(innerRadius > e) || !(arc > e)) {\n            ctx.lineTo(x + xire, y + yire);\n        }\n        else if (cr0 > e) {\n            var ct0 = computeCornerTangents(xire, yire, xre, yre, innerRadius, -cr0, clockwise);\n            var ct1 = computeCornerTangents(xrs, yrs, xirs, yirs, innerRadius, -cr0, clockwise);\n            ctx.lineTo(x + ct0.cx + ct0.x01, y + ct0.cy + ct0.y01);\n            if (cr0 < icr) {\n                ctx.arc(x + ct0.cx, y + ct0.cy, cr0, mathATan2(ct0.y01, ct0.x01), mathATan2(ct1.y01, ct1.x01), !clockwise);\n            }\n            else {\n                ctx.arc(x + ct0.cx, y + ct0.cy, cr0, mathATan2(ct0.y01, ct0.x01), mathATan2(ct0.y11, ct0.x11), !clockwise);\n                ctx.arc(x, y, innerRadius, mathATan2(ct0.cy + ct0.y11, ct0.cx + ct0.x11), mathATan2(ct1.cy + ct1.y11, ct1.cx + ct1.x11), clockwise);\n                ctx.arc(x + ct1.cx, y + ct1.cy, cr0, mathATan2(ct1.y11, ct1.x11), mathATan2(ct1.y01, ct1.x01), !clockwise);\n            }\n        }\n        else {\n            ctx.lineTo(x + xire, y + yire);\n            ctx.arc(x, y, innerRadius, endAngle, startAngle, clockwise);\n        }\n    }\n    ctx.closePath();\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as roundSectorHelper from '../helper/roundSector';\nvar SectorShape = (function () {\n    function SectorShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.r0 = 0;\n        this.r = 0;\n        this.startAngle = 0;\n        this.endAngle = Math.PI * 2;\n        this.clockwise = true;\n        this.cornerRadius = 0;\n        this.innerCornerRadius = 0;\n    }\n    return SectorShape;\n}());\nvar Sector = (function (_super) {\n    __extends(Sector, _super);\n    function Sector(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Sector.prototype.getDefaultShape = function () {\n        return new SectorShape();\n    };\n    Sector.prototype.buildPath = function (ctx, shape) {\n        roundSectorHelper.buildPath(ctx, shape);\n    };\n    Sector.prototype.isZeroArea = function () {\n        return this.shape.startAngle === this.shape.endAngle\n            || this.shape.r === this.shape.r0;\n    };\n    return Sector;\n}(Path));\nSector.prototype.type = 'sector';\nexport default Sector;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar RingShape = (function () {\n    function RingShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.r = 0;\n        this.r0 = 0;\n    }\n    return RingShape;\n}());\nvar Ring = (function (_super) {\n    __extends(Ring, _super);\n    function Ring(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Ring.prototype.getDefaultShape = function () {\n        return new RingShape();\n    };\n    Ring.prototype.buildPath = function (ctx, shape) {\n        var x = shape.cx;\n        var y = shape.cy;\n        var PI2 = Math.PI * 2;\n        ctx.moveTo(x + shape.r, y);\n        ctx.arc(x, y, shape.r, 0, PI2, false);\n        ctx.moveTo(x + shape.r0, y);\n        ctx.arc(x, y, shape.r0, 0, PI2, true);\n    };\n    return Ring;\n}(Path));\nRing.prototype.type = 'ring';\nexport default Ring;\n","import { distance as v2Distance } from '../../core/vector';\nfunction interpolate(p0, p1, p2, p3, t, t2, t3) {\n    var v0 = (p2 - p0) * 0.5;\n    var v1 = (p3 - p1) * 0.5;\n    return (2 * (p1 - p2) + v0 + v1) * t3\n        + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\n        + v0 * t + p1;\n}\nexport default function smoothSpline(points, isLoop) {\n    var len = points.length;\n    var ret = [];\n    var distance = 0;\n    for (var i = 1; i < len; i++) {\n        distance += v2Distance(points[i - 1], points[i]);\n    }\n    var segs = distance / 2;\n    segs = segs < len ? len : segs;\n    for (var i = 0; i < segs; i++) {\n        var pos = i / (segs - 1) * (isLoop ? len : len - 1);\n        var idx = Math.floor(pos);\n        var w = pos - idx;\n        var p0 = void 0;\n        var p1 = points[idx % len];\n        var p2 = void 0;\n        var p3 = void 0;\n        if (!isLoop) {\n            p0 = points[idx === 0 ? idx : idx - 1];\n            p2 = points[idx > len - 2 ? len - 1 : idx + 1];\n            p3 = points[idx > len - 3 ? len - 1 : idx + 2];\n        }\n        else {\n            p0 = points[(idx - 1 + len) % len];\n            p2 = points[(idx + 1) % len];\n            p3 = points[(idx + 2) % len];\n        }\n        var w2 = w * w;\n        var w3 = w * w2;\n        ret.push([\n            interpolate(p0[0], p1[0], p2[0], p3[0], w, w2, w3),\n            interpolate(p0[1], p1[1], p2[1], p3[1], w, w2, w3)\n        ]);\n    }\n    return ret;\n}\n","import { min as v2Min, max as v2Max, scale as v2Scale, distance as v2Distance, add as v2Add, clone as v2Clone, sub as v2Sub } from '../../core/vector';\nexport default function smoothBezier(points, smooth, isLoop, constraint) {\n    var cps = [];\n    var v = [];\n    var v1 = [];\n    var v2 = [];\n    var prevPoint;\n    var nextPoint;\n    var min;\n    var max;\n    if (constraint) {\n        min = [Infinity, Infinity];\n        max = [-Infinity, -Infinity];\n        for (var i = 0, len = points.length; i < len; i++) {\n            v2Min(min, min, points[i]);\n            v2Max(max, max, points[i]);\n        }\n        v2Min(min, min, constraint[0]);\n        v2Max(max, max, constraint[1]);\n    }\n    for (var i = 0, len = points.length; i < len; i++) {\n        var point = points[i];\n        if (isLoop) {\n            prevPoint = points[i ? i - 1 : len - 1];\n            nextPoint = points[(i + 1) % len];\n        }\n        else {\n            if (i === 0 || i === len - 1) {\n                cps.push(v2Clone(points[i]));\n                continue;\n            }\n            else {\n                prevPoint = points[i - 1];\n                nextPoint = points[i + 1];\n            }\n        }\n        v2Sub(v, nextPoint, prevPoint);\n        v2Scale(v, v, smooth);\n        var d0 = v2Distance(point, prevPoint);\n        var d1 = v2Distance(point, nextPoint);\n        var sum = d0 + d1;\n        if (sum !== 0) {\n            d0 /= sum;\n            d1 /= sum;\n        }\n        v2Scale(v1, v, -d0);\n        v2Scale(v2, v, d1);\n        var cp0 = v2Add([], point, v1);\n        var cp1 = v2Add([], point, v2);\n        if (constraint) {\n            v2Max(cp0, cp0, min);\n            v2Min(cp0, cp0, max);\n            v2Max(cp1, cp1, min);\n            v2Min(cp1, cp1, max);\n        }\n        cps.push(cp0);\n        cps.push(cp1);\n    }\n    if (isLoop) {\n        cps.push(cps.shift());\n    }\n    return cps;\n}\n","import smoothSpline from './smoothSpline';\nimport smoothBezier from './smoothBezier';\nexport function buildPath(ctx, shape, closePath) {\n    var smooth = shape.smooth;\n    var points = shape.points;\n    if (points && points.length >= 2) {\n        if (smooth && smooth !== 'spline') {\n            var controlPoints = smoothBezier(points, smooth, closePath, shape.smoothConstraint);\n            ctx.moveTo(points[0][0], points[0][1]);\n            var len = points.length;\n            for (var i = 0; i < (closePath ? len : len - 1); i++) {\n                var cp1 = controlPoints[i * 2];\n                var cp2 = controlPoints[i * 2 + 1];\n                var p = points[(i + 1) % len];\n                ctx.bezierCurveTo(cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]);\n            }\n        }\n        else {\n            if (smooth === 'spline') {\n                points = smoothSpline(points, closePath);\n            }\n            ctx.moveTo(points[0][0], points[0][1]);\n            for (var i = 1, l = points.length; i < l; i++) {\n                ctx.lineTo(points[i][0], points[i][1]);\n            }\n        }\n        closePath && ctx.closePath();\n    }\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as polyHelper from '../helper/poly';\nvar PolygonShape = (function () {\n    function PolygonShape() {\n        this.points = null;\n        this.smooth = 0;\n        this.smoothConstraint = null;\n    }\n    return PolygonShape;\n}());\nvar Polygon = (function (_super) {\n    __extends(Polygon, _super);\n    function Polygon(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Polygon.prototype.getDefaultShape = function () {\n        return new PolygonShape();\n    };\n    Polygon.prototype.buildPath = function (ctx, shape) {\n        polyHelper.buildPath(ctx, shape, true);\n    };\n    return Polygon;\n}(Path));\n;\nPolygon.prototype.type = 'polygon';\nexport default Polygon;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as polyHelper from '../helper/poly';\nvar PolylineShape = (function () {\n    function PolylineShape() {\n        this.points = null;\n        this.percent = 1;\n        this.smooth = 0;\n        this.smoothConstraint = null;\n    }\n    return PolylineShape;\n}());\nvar Polyline = (function (_super) {\n    __extends(Polyline, _super);\n    function Polyline(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Polyline.prototype.getDefaultStyle = function () {\n        return {\n            stroke: '#000',\n            fill: null\n        };\n    };\n    Polyline.prototype.getDefaultShape = function () {\n        return new PolylineShape();\n    };\n    Polyline.prototype.buildPath = function (ctx, shape) {\n        polyHelper.buildPath(ctx, shape, false);\n    };\n    return Polyline;\n}(Path));\nPolyline.prototype.type = 'polyline';\nexport default Polyline;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport { subPixelOptimizeLine } from '../helper/subPixelOptimize';\nvar subPixelOptimizeOutputShape = {};\nvar LineShape = (function () {\n    function LineShape() {\n        this.x1 = 0;\n        this.y1 = 0;\n        this.x2 = 0;\n        this.y2 = 0;\n        this.percent = 1;\n    }\n    return LineShape;\n}());\nvar Line = (function (_super) {\n    __extends(Line, _super);\n    function Line(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Line.prototype.getDefaultStyle = function () {\n        return {\n            stroke: '#000',\n            fill: null\n        };\n    };\n    Line.prototype.getDefaultShape = function () {\n        return new LineShape();\n    };\n    Line.prototype.buildPath = function (ctx, shape) {\n        var x1;\n        var y1;\n        var x2;\n        var y2;\n        if (this.subPixelOptimize) {\n            var optimizedShape = subPixelOptimizeLine(subPixelOptimizeOutputShape, shape, this.style);\n            x1 = optimizedShape.x1;\n            y1 = optimizedShape.y1;\n            x2 = optimizedShape.x2;\n            y2 = optimizedShape.y2;\n        }\n        else {\n            x1 = shape.x1;\n            y1 = shape.y1;\n            x2 = shape.x2;\n            y2 = shape.y2;\n        }\n        var percent = shape.percent;\n        if (percent === 0) {\n            return;\n        }\n        ctx.moveTo(x1, y1);\n        if (percent < 1) {\n            x2 = x1 * (1 - percent) + x2 * percent;\n            y2 = y1 * (1 - percent) + y2 * percent;\n        }\n        ctx.lineTo(x2, y2);\n    };\n    Line.prototype.pointAt = function (p) {\n        var shape = this.shape;\n        return [\n            shape.x1 * (1 - p) + shape.x2 * p,\n            shape.y1 * (1 - p) + shape.y2 * p\n        ];\n    };\n    return Line;\n}(Path));\nLine.prototype.type = 'line';\nexport default Line;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as vec2 from '../../core/vector';\nimport { quadraticSubdivide, cubicSubdivide, quadraticAt, cubicAt, quadraticDerivativeAt, cubicDerivativeAt } from '../../core/curve';\nvar out = [];\nvar BezierCurveShape = (function () {\n    function BezierCurveShape() {\n        this.x1 = 0;\n        this.y1 = 0;\n        this.x2 = 0;\n        this.y2 = 0;\n        this.cpx1 = 0;\n        this.cpy1 = 0;\n        this.percent = 1;\n    }\n    return BezierCurveShape;\n}());\nfunction someVectorAt(shape, t, isTangent) {\n    var cpx2 = shape.cpx2;\n    var cpy2 = shape.cpy2;\n    if (cpx2 === null || cpy2 === null) {\n        return [\n            (isTangent ? cubicDerivativeAt : cubicAt)(shape.x1, shape.cpx1, shape.cpx2, shape.x2, t),\n            (isTangent ? cubicDerivativeAt : cubicAt)(shape.y1, shape.cpy1, shape.cpy2, shape.y2, t)\n        ];\n    }\n    else {\n        return [\n            (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.x1, shape.cpx1, shape.x2, t),\n            (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.y1, shape.cpy1, shape.y2, t)\n        ];\n    }\n}\nvar BezierCurve = (function (_super) {\n    __extends(BezierCurve, _super);\n    function BezierCurve(opts) {\n        return _super.call(this, opts) || this;\n    }\n    BezierCurve.prototype.getDefaultStyle = function () {\n        return {\n            stroke: '#000',\n            fill: null\n        };\n    };\n    BezierCurve.prototype.getDefaultShape = function () {\n        return new BezierCurveShape();\n    };\n    BezierCurve.prototype.buildPath = function (ctx, shape) {\n        var x1 = shape.x1;\n        var y1 = shape.y1;\n        var x2 = shape.x2;\n        var y2 = shape.y2;\n        var cpx1 = shape.cpx1;\n        var cpy1 = shape.cpy1;\n        var cpx2 = shape.cpx2;\n        var cpy2 = shape.cpy2;\n        var percent = shape.percent;\n        if (percent === 0) {\n            return;\n        }\n        ctx.moveTo(x1, y1);\n        if (cpx2 == null || cpy2 == null) {\n            if (percent < 1) {\n                quadraticSubdivide(x1, cpx1, x2, percent, out);\n                cpx1 = out[1];\n                x2 = out[2];\n                quadraticSubdivide(y1, cpy1, y2, percent, out);\n                cpy1 = out[1];\n                y2 = out[2];\n            }\n            ctx.quadraticCurveTo(cpx1, cpy1, x2, y2);\n        }\n        else {\n            if (percent < 1) {\n                cubicSubdivide(x1, cpx1, cpx2, x2, percent, out);\n                cpx1 = out[1];\n                cpx2 = out[2];\n                x2 = out[3];\n                cubicSubdivide(y1, cpy1, cpy2, y2, percent, out);\n                cpy1 = out[1];\n                cpy2 = out[2];\n                y2 = out[3];\n            }\n            ctx.bezierCurveTo(cpx1, cpy1, cpx2, cpy2, x2, y2);\n        }\n    };\n    BezierCurve.prototype.pointAt = function (t) {\n        return someVectorAt(this.shape, t, false);\n    };\n    BezierCurve.prototype.tangentAt = function (t) {\n        var p = someVectorAt(this.shape, t, true);\n        return vec2.normalize(p, p);\n    };\n    return BezierCurve;\n}(Path));\n;\nBezierCurve.prototype.type = 'bezier-curve';\nexport default BezierCurve;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar ArcShape = (function () {\n    function ArcShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.r = 0;\n        this.startAngle = 0;\n        this.endAngle = Math.PI * 2;\n        this.clockwise = true;\n    }\n    return ArcShape;\n}());\nvar Arc = (function (_super) {\n    __extends(Arc, _super);\n    function Arc(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Arc.prototype.getDefaultStyle = function () {\n        return {\n            stroke: '#000',\n            fill: null\n        };\n    };\n    Arc.prototype.getDefaultShape = function () {\n        return new ArcShape();\n    };\n    Arc.prototype.buildPath = function (ctx, shape) {\n        var x = shape.cx;\n        var y = shape.cy;\n        var r = Math.max(shape.r, 0);\n        var startAngle = shape.startAngle;\n        var endAngle = shape.endAngle;\n        var clockwise = shape.clockwise;\n        var unitX = Math.cos(startAngle);\n        var unitY = Math.sin(startAngle);\n        ctx.moveTo(unitX * r + x, unitY * r + y);\n        ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\n    };\n    return Arc;\n}(Path));\nArc.prototype.type = 'arc';\nexport default Arc;\n","import { __extends } from \"tslib\";\nimport Path from './Path';\nvar CompoundPath = (function (_super) {\n    __extends(CompoundPath, _super);\n    function CompoundPath() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.type = 'compound';\n        return _this;\n    }\n    CompoundPath.prototype._updatePathDirty = function () {\n        var paths = this.shape.paths;\n        var dirtyPath = this.shapeChanged();\n        for (var i = 0; i < paths.length; i++) {\n            dirtyPath = dirtyPath || paths[i].shapeChanged();\n        }\n        if (dirtyPath) {\n            this.dirtyShape();\n        }\n    };\n    CompoundPath.prototype.beforeBrush = function () {\n        this._updatePathDirty();\n        var paths = this.shape.paths || [];\n        var scale = this.getGlobalScale();\n        for (var i = 0; i < paths.length; i++) {\n            if (!paths[i].path) {\n                paths[i].createPathProxy();\n            }\n            paths[i].path.setScale(scale[0], scale[1], paths[i].segmentIgnoreThreshold);\n        }\n    };\n    CompoundPath.prototype.buildPath = function (ctx, shape) {\n        var paths = shape.paths || [];\n        for (var i = 0; i < paths.length; i++) {\n            paths[i].buildPath(ctx, paths[i].shape, true);\n        }\n    };\n    CompoundPath.prototype.afterBrush = function () {\n        var paths = this.shape.paths || [];\n        for (var i = 0; i < paths.length; i++) {\n            paths[i].pathUpdated();\n        }\n    };\n    CompoundPath.prototype.getBoundingRect = function () {\n        this._updatePathDirty.call(this);\n        return Path.prototype.getBoundingRect.call(this);\n    };\n    return CompoundPath;\n}(Path));\nexport default CompoundPath;\n","var Gradient = (function () {\n    function Gradient(colorStops) {\n        this.colorStops = colorStops || [];\n    }\n    Gradient.prototype.addColorStop = function (offset, color) {\n        this.colorStops.push({\n            offset: offset,\n            color: color\n        });\n    };\n    return Gradient;\n}());\nexport default Gradient;\n","import { __extends } from \"tslib\";\nimport Gradient from './Gradient';\nvar LinearGradient = (function (_super) {\n    __extends(LinearGradient, _super);\n    function LinearGradient(x, y, x2, y2, colorStops, globalCoord) {\n        var _this = _super.call(this, colorStops) || this;\n        _this.x = x == null ? 0 : x;\n        _this.y = y == null ? 0 : y;\n        _this.x2 = x2 == null ? 1 : x2;\n        _this.y2 = y2 == null ? 0 : y2;\n        _this.type = 'linear';\n        _this.global = globalCoord || false;\n        return _this;\n    }\n    return LinearGradient;\n}(Gradient));\nexport default LinearGradient;\n;\n","import { __extends } from \"tslib\";\nimport Gradient from './Gradient';\nvar RadialGradient = (function (_super) {\n    __extends(RadialGradient, _super);\n    function RadialGradient(x, y, r, colorStops, globalCoord) {\n        var _this = _super.call(this, colorStops) || this;\n        _this.x = x == null ? 0.5 : x;\n        _this.y = y == null ? 0.5 : y;\n        _this.r = r == null ? 0.5 : r;\n        _this.type = 'radial';\n        _this.global = globalCoord || false;\n        return _this;\n    }\n    return RadialGradient;\n}(Gradient));\nexport default RadialGradient;\n","import Point from './Point';\nvar extent = [0, 0];\nvar extent2 = [0, 0];\nvar minTv = new Point();\nvar maxTv = new Point();\nvar OrientedBoundingRect = (function () {\n    function OrientedBoundingRect(rect, transform) {\n        this._corners = [];\n        this._axes = [];\n        this._origin = [0, 0];\n        for (var i = 0; i < 4; i++) {\n            this._corners[i] = new Point();\n        }\n        for (var i = 0; i < 2; i++) {\n            this._axes[i] = new Point();\n        }\n        if (rect) {\n            this.fromBoundingRect(rect, transform);\n        }\n    }\n    OrientedBoundingRect.prototype.fromBoundingRect = function (rect, transform) {\n        var corners = this._corners;\n        var axes = this._axes;\n        var x = rect.x;\n        var y = rect.y;\n        var x2 = x + rect.width;\n        var y2 = y + rect.height;\n        corners[0].set(x, y);\n        corners[1].set(x2, y);\n        corners[2].set(x2, y2);\n        corners[3].set(x, y2);\n        if (transform) {\n            for (var i = 0; i < 4; i++) {\n                corners[i].transform(transform);\n            }\n        }\n        Point.sub(axes[0], corners[1], corners[0]);\n        Point.sub(axes[1], corners[3], corners[0]);\n        axes[0].normalize();\n        axes[1].normalize();\n        for (var i = 0; i < 2; i++) {\n            this._origin[i] = axes[i].dot(corners[0]);\n        }\n    };\n    OrientedBoundingRect.prototype.intersect = function (other, mtv) {\n        var overlapped = true;\n        var noMtv = !mtv;\n        minTv.set(Infinity, Infinity);\n        maxTv.set(0, 0);\n        if (!this._intersectCheckOneSide(this, other, minTv, maxTv, noMtv, 1)) {\n            overlapped = false;\n            if (noMtv) {\n                return overlapped;\n            }\n        }\n        if (!this._intersectCheckOneSide(other, this, minTv, maxTv, noMtv, -1)) {\n            overlapped = false;\n            if (noMtv) {\n                return overlapped;\n            }\n        }\n        if (!noMtv) {\n            Point.copy(mtv, overlapped ? minTv : maxTv);\n        }\n        return overlapped;\n    };\n    OrientedBoundingRect.prototype._intersectCheckOneSide = function (self, other, minTv, maxTv, noMtv, inverse) {\n        var overlapped = true;\n        for (var i = 0; i < 2; i++) {\n            var axis = this._axes[i];\n            this._getProjMinMaxOnAxis(i, self._corners, extent);\n            this._getProjMinMaxOnAxis(i, other._corners, extent2);\n            if (extent[1] < extent2[0] || extent[0] > extent2[1]) {\n                overlapped = false;\n                if (noMtv) {\n                    return overlapped;\n                }\n                var dist0 = Math.abs(extent2[0] - extent[1]);\n                var dist1 = Math.abs(extent[0] - extent2[1]);\n                if (Math.min(dist0, dist1) > maxTv.len()) {\n                    if (dist0 < dist1) {\n                        Point.scale(maxTv, axis, -dist0 * inverse);\n                    }\n                    else {\n                        Point.scale(maxTv, axis, dist1 * inverse);\n                    }\n                }\n            }\n            else if (minTv) {\n                var dist0 = Math.abs(extent2[0] - extent[1]);\n                var dist1 = Math.abs(extent[0] - extent2[1]);\n                if (Math.min(dist0, dist1) < minTv.len()) {\n                    if (dist0 < dist1) {\n                        Point.scale(minTv, axis, dist0 * inverse);\n                    }\n                    else {\n                        Point.scale(minTv, axis, -dist1 * inverse);\n                    }\n                }\n            }\n        }\n        return overlapped;\n    };\n    OrientedBoundingRect.prototype._getProjMinMaxOnAxis = function (dim, corners, out) {\n        var axis = this._axes[dim];\n        var origin = this._origin;\n        var proj = corners[0].dot(axis) + origin[dim];\n        var min = proj;\n        var max = proj;\n        for (var i = 1; i < corners.length; i++) {\n            var proj_1 = corners[i].dot(axis) + origin[dim];\n            min = Math.min(proj_1, min);\n            max = Math.max(proj_1, max);\n        }\n        out[0] = min;\n        out[1] = max;\n    };\n    return OrientedBoundingRect;\n}());\nexport default OrientedBoundingRect;\n","import { __extends } from \"tslib\";\nimport Displayble from './Displayable';\nimport BoundingRect from '../core/BoundingRect';\nvar m = [];\nvar IncrementalDisplayable = (function (_super) {\n    __extends(IncrementalDisplayable, _super);\n    function IncrementalDisplayable() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.notClear = true;\n        _this.incremental = true;\n        _this._displayables = [];\n        _this._temporaryDisplayables = [];\n        _this._cursor = 0;\n        return _this;\n    }\n    IncrementalDisplayable.prototype.traverse = function (cb, context) {\n        cb.call(context, this);\n    };\n    IncrementalDisplayable.prototype.useStyle = function () {\n        this.style = {};\n    };\n    IncrementalDisplayable.prototype.getCursor = function () {\n        return this._cursor;\n    };\n    IncrementalDisplayable.prototype.innerAfterBrush = function () {\n        this._cursor = this._displayables.length;\n    };\n    IncrementalDisplayable.prototype.clearDisplaybles = function () {\n        this._displayables = [];\n        this._temporaryDisplayables = [];\n        this._cursor = 0;\n        this.markRedraw();\n        this.notClear = false;\n    };\n    IncrementalDisplayable.prototype.clearTemporalDisplayables = function () {\n        this._temporaryDisplayables = [];\n    };\n    IncrementalDisplayable.prototype.addDisplayable = function (displayable, notPersistent) {\n        if (notPersistent) {\n            this._temporaryDisplayables.push(displayable);\n        }\n        else {\n            this._displayables.push(displayable);\n        }\n        this.markRedraw();\n    };\n    IncrementalDisplayable.prototype.addDisplayables = function (displayables, notPersistent) {\n        notPersistent = notPersistent || false;\n        for (var i = 0; i < displayables.length; i++) {\n            this.addDisplayable(displayables[i], notPersistent);\n        }\n    };\n    IncrementalDisplayable.prototype.getDisplayables = function () {\n        return this._displayables;\n    };\n    IncrementalDisplayable.prototype.getTemporalDisplayables = function () {\n        return this._temporaryDisplayables;\n    };\n    IncrementalDisplayable.prototype.eachPendingDisplayable = function (cb) {\n        for (var i = this._cursor; i < this._displayables.length; i++) {\n            cb && cb(this._displayables[i]);\n        }\n        for (var i = 0; i < this._temporaryDisplayables.length; i++) {\n            cb && cb(this._temporaryDisplayables[i]);\n        }\n    };\n    IncrementalDisplayable.prototype.update = function () {\n        this.updateTransform();\n        for (var i = this._cursor; i < this._displayables.length; i++) {\n            var displayable = this._displayables[i];\n            displayable.parent = this;\n            displayable.update();\n            displayable.parent = null;\n        }\n        for (var i = 0; i < this._temporaryDisplayables.length; i++) {\n            var displayable = this._temporaryDisplayables[i];\n            displayable.parent = this;\n            displayable.update();\n            displayable.parent = null;\n        }\n    };\n    IncrementalDisplayable.prototype.getBoundingRect = function () {\n        if (!this._rect) {\n            var rect = new BoundingRect(Infinity, Infinity, -Infinity, -Infinity);\n            for (var i = 0; i < this._displayables.length; i++) {\n                var displayable = this._displayables[i];\n                var childRect = displayable.getBoundingRect().clone();\n                if (displayable.needLocalTransform()) {\n                    childRect.applyTransform(displayable.getLocalTransform(m));\n                }\n                rect.union(childRect);\n            }\n            this._rect = rect;\n        }\n        return this._rect;\n    };\n    IncrementalDisplayable.prototype.contain = function (x, y) {\n        var localPos = this.transformCoordToLocal(x, y);\n        var rect = this.getBoundingRect();\n        if (rect.contain(localPos[0], localPos[1])) {\n            for (var i = 0; i < this._displayables.length; i++) {\n                var displayable = this._displayables[i];\n                if (displayable.contain(x, y)) {\n                    return true;\n                }\n            }\n        }\n        return false;\n    };\n    return IncrementalDisplayable;\n}(Displayble));\nexport default IncrementalDisplayable;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as pathTool from 'zrender/lib/tool/path';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport * as vector from 'zrender/lib/core/vector';\nimport Path from 'zrender/lib/graphic/Path';\nimport Transformable from 'zrender/lib/core/Transformable';\nimport ZRImage from 'zrender/lib/graphic/Image';\nimport Group from 'zrender/lib/graphic/Group';\nimport ZRText from 'zrender/lib/graphic/Text';\nimport Circle from 'zrender/lib/graphic/shape/Circle';\nimport Ellipse from 'zrender/lib/graphic/shape/Ellipse';\nimport Sector from 'zrender/lib/graphic/shape/Sector';\nimport Ring from 'zrender/lib/graphic/shape/Ring';\nimport Polygon from 'zrender/lib/graphic/shape/Polygon';\nimport Polyline from 'zrender/lib/graphic/shape/Polyline';\nimport Rect from 'zrender/lib/graphic/shape/Rect';\nimport Line from 'zrender/lib/graphic/shape/Line';\nimport BezierCurve from 'zrender/lib/graphic/shape/BezierCurve';\nimport Arc from 'zrender/lib/graphic/shape/Arc';\nimport CompoundPath from 'zrender/lib/graphic/CompoundPath';\nimport LinearGradient from 'zrender/lib/graphic/LinearGradient';\nimport RadialGradient from 'zrender/lib/graphic/RadialGradient';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport OrientedBoundingRect from 'zrender/lib/core/OrientedBoundingRect';\nimport Point from 'zrender/lib/core/Point';\nimport IncrementalDisplayable from 'zrender/lib/graphic/IncrementalDisplayable';\nimport * as subPixelOptimizeUtil from 'zrender/lib/graphic/helper/subPixelOptimize';\nimport { extend, isArrayLike, map, defaults, isObject, retrieve2 } from 'zrender/lib/core/util';\nimport { getECData } from './innerStore';\nvar mathMax = Math.max;\nvar mathMin = Math.min;\nvar _customShapeMap = {};\nexport function extendShape(opts) {\n  return Path.extend(opts);\n}\nvar extendPathFromString = pathTool.extendFromString;\nexport function extendPath(pathData, opts) {\n  return extendPathFromString(pathData, opts);\n}\nexport function registerShape(name, ShapeClass) {\n  _customShapeMap[name] = ShapeClass;\n}\nexport function getShapeClass(name) {\n  if (_customShapeMap.hasOwnProperty(name)) {\n    return _customShapeMap[name];\n  }\n}\nexport function makePath(pathData, opts, rect, layout) {\n  var path = pathTool.createFromString(pathData, opts);\n\n  if (rect) {\n    if (layout === 'center') {\n      rect = centerGraphic(rect, path.getBoundingRect());\n    }\n\n    resizePath(path, rect);\n  }\n\n  return path;\n}\nexport function makeImage(imageUrl, rect, layout) {\n  var zrImg = new ZRImage({\n    style: {\n      image: imageUrl,\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height\n    },\n    onload: function (img) {\n      if (layout === 'center') {\n        var boundingRect = {\n          width: img.width,\n          height: img.height\n        };\n        zrImg.setStyle(centerGraphic(rect, boundingRect));\n      }\n    }\n  });\n  return zrImg;\n}\n\nfunction centerGraphic(rect, boundingRect) {\n  var aspect = boundingRect.width / boundingRect.height;\n  var width = rect.height * aspect;\n  var height;\n\n  if (width <= rect.width) {\n    height = rect.height;\n  } else {\n    width = rect.width;\n    height = width / aspect;\n  }\n\n  var cx = rect.x + rect.width / 2;\n  var cy = rect.y + rect.height / 2;\n  return {\n    x: cx - width / 2,\n    y: cy - height / 2,\n    width: width,\n    height: height\n  };\n}\n\nexport var mergePath = pathTool.mergePath;\nexport function resizePath(path, rect) {\n  if (!path.applyTransform) {\n    return;\n  }\n\n  var pathRect = path.getBoundingRect();\n  var m = pathRect.calculateTransform(rect);\n  path.applyTransform(m);\n}\nexport function subPixelOptimizeLine(param) {\n  subPixelOptimizeUtil.subPixelOptimizeLine(param.shape, param.shape, param.style);\n  return param;\n}\nexport function subPixelOptimizeRect(param) {\n  subPixelOptimizeUtil.subPixelOptimizeRect(param.shape, param.shape, param.style);\n  return param;\n}\nexport var subPixelOptimize = subPixelOptimizeUtil.subPixelOptimize;\n\nfunction animateOrSetProps(animationType, el, props, animatableModel, dataIndex, cb, during) {\n  var isFrom = false;\n  var removeOpt;\n\n  if (typeof dataIndex === 'function') {\n    during = cb;\n    cb = dataIndex;\n    dataIndex = null;\n  } else if (isObject(dataIndex)) {\n    cb = dataIndex.cb;\n    during = dataIndex.during;\n    isFrom = dataIndex.isFrom;\n    removeOpt = dataIndex.removeOpt;\n    dataIndex = dataIndex.dataIndex;\n  }\n\n  var isUpdate = animationType === 'update';\n  var isRemove = animationType === 'remove';\n  var animationPayload;\n\n  if (animatableModel && animatableModel.ecModel) {\n    var updatePayload = animatableModel.ecModel.getUpdatePayload();\n    animationPayload = updatePayload && updatePayload.animation;\n  }\n\n  var animationEnabled = animatableModel && animatableModel.isAnimationEnabled();\n\n  if (!isRemove) {\n    el.stopAnimation('remove');\n  }\n\n  if (animationEnabled) {\n    var duration = void 0;\n    var animationEasing = void 0;\n    var animationDelay = void 0;\n\n    if (animationPayload) {\n      duration = animationPayload.duration || 0;\n      animationEasing = animationPayload.easing || 'cubicOut';\n      animationDelay = animationPayload.delay || 0;\n    } else if (isRemove) {\n      removeOpt = removeOpt || {};\n      duration = retrieve2(removeOpt.duration, 200);\n      animationEasing = retrieve2(removeOpt.easing, 'cubicOut');\n      animationDelay = 0;\n    } else {\n      duration = animatableModel.getShallow(isUpdate ? 'animationDurationUpdate' : 'animationDuration');\n      animationEasing = animatableModel.getShallow(isUpdate ? 'animationEasingUpdate' : 'animationEasing');\n      animationDelay = animatableModel.getShallow(isUpdate ? 'animationDelayUpdate' : 'animationDelay');\n    }\n\n    if (typeof animationDelay === 'function') {\n      animationDelay = animationDelay(dataIndex, animatableModel.getAnimationDelayParams ? animatableModel.getAnimationDelayParams(el, dataIndex) : null);\n    }\n\n    if (typeof duration === 'function') {\n      duration = duration(dataIndex);\n    }\n\n    duration > 0 ? isFrom ? el.animateFrom(props, {\n      duration: duration,\n      delay: animationDelay || 0,\n      easing: animationEasing,\n      done: cb,\n      force: !!cb || !!during,\n      scope: animationType,\n      during: during\n    }) : el.animateTo(props, {\n      duration: duration,\n      delay: animationDelay || 0,\n      easing: animationEasing,\n      done: cb,\n      force: !!cb || !!during,\n      setToFinal: true,\n      scope: animationType,\n      during: during\n    }) : (el.stopAnimation(), !isFrom && el.attr(props), cb && cb());\n  } else {\n    el.stopAnimation();\n    !isFrom && el.attr(props);\n    during && during(1);\n    cb && cb();\n  }\n}\n\nfunction updateProps(el, props, animatableModel, dataIndex, cb, during) {\n  animateOrSetProps('update', el, props, animatableModel, dataIndex, cb, during);\n}\n\nexport { updateProps };\nexport function initProps(el, props, animatableModel, dataIndex, cb, during) {\n  animateOrSetProps('init', el, props, animatableModel, dataIndex, cb, during);\n}\nexport function removeElement(el, props, animatableModel, dataIndex, cb, during) {\n  if (isElementRemoved(el)) {\n    return;\n  }\n\n  animateOrSetProps('remove', el, props, animatableModel, dataIndex, cb, during);\n}\n\nfunction fadeOutDisplayable(el, animatableModel, dataIndex, done) {\n  el.removeTextContent();\n  el.removeTextGuideLine();\n  removeElement(el, {\n    style: {\n      opacity: 0\n    }\n  }, animatableModel, dataIndex, done);\n}\n\nexport function removeElementWithFadeOut(el, animatableModel, dataIndex) {\n  function doRemove() {\n    el.parent && el.parent.remove(el);\n  }\n\n  if (!el.isGroup) {\n    fadeOutDisplayable(el, animatableModel, dataIndex, doRemove);\n  } else {\n    el.traverse(function (disp) {\n      if (!disp.isGroup) {\n        fadeOutDisplayable(disp, animatableModel, dataIndex, doRemove);\n      }\n    });\n  }\n}\nexport function isElementRemoved(el) {\n  if (!el.__zr) {\n    return true;\n  }\n\n  for (var i = 0; i < el.animators.length; i++) {\n    var animator = el.animators[i];\n\n    if (animator.scope === 'remove') {\n      return true;\n    }\n  }\n\n  return false;\n}\nexport function getTransform(target, ancestor) {\n  var mat = matrix.identity([]);\n\n  while (target && target !== ancestor) {\n    matrix.mul(mat, target.getLocalTransform(), mat);\n    target = target.parent;\n  }\n\n  return mat;\n}\nexport function applyTransform(target, transform, invert) {\n  if (transform && !isArrayLike(transform)) {\n    transform = Transformable.getLocalTransform(transform);\n  }\n\n  if (invert) {\n    transform = matrix.invert([], transform);\n  }\n\n  return vector.applyTransform([], target, transform);\n}\nexport function transformDirection(direction, transform, invert) {\n  var hBase = transform[4] === 0 || transform[5] === 0 || transform[0] === 0 ? 1 : Math.abs(2 * transform[4] / transform[0]);\n  var vBase = transform[4] === 0 || transform[5] === 0 || transform[2] === 0 ? 1 : Math.abs(2 * transform[4] / transform[2]);\n  var vertex = [direction === 'left' ? -hBase : direction === 'right' ? hBase : 0, direction === 'top' ? -vBase : direction === 'bottom' ? vBase : 0];\n  vertex = applyTransform(vertex, transform, invert);\n  return Math.abs(vertex[0]) > Math.abs(vertex[1]) ? vertex[0] > 0 ? 'right' : 'left' : vertex[1] > 0 ? 'bottom' : 'top';\n}\n\nfunction isNotGroup(el) {\n  return !el.isGroup;\n}\n\nfunction isPath(el) {\n  return el.shape != null;\n}\n\nexport function groupTransition(g1, g2, animatableModel) {\n  if (!g1 || !g2) {\n    return;\n  }\n\n  function getElMap(g) {\n    var elMap = {};\n    g.traverse(function (el) {\n      if (isNotGroup(el) && el.anid) {\n        elMap[el.anid] = el;\n      }\n    });\n    return elMap;\n  }\n\n  function getAnimatableProps(el) {\n    var obj = {\n      x: el.x,\n      y: el.y,\n      rotation: el.rotation\n    };\n\n    if (isPath(el)) {\n      obj.shape = extend({}, el.shape);\n    }\n\n    return obj;\n  }\n\n  var elMap1 = getElMap(g1);\n  g2.traverse(function (el) {\n    if (isNotGroup(el) && el.anid) {\n      var oldEl = elMap1[el.anid];\n\n      if (oldEl) {\n        var newProp = getAnimatableProps(el);\n        el.attr(getAnimatableProps(oldEl));\n        updateProps(el, newProp, animatableModel, getECData(el).dataIndex);\n      }\n    }\n  });\n}\nexport function clipPointsByRect(points, rect) {\n  return map(points, function (point) {\n    var x = point[0];\n    x = mathMax(x, rect.x);\n    x = mathMin(x, rect.x + rect.width);\n    var y = point[1];\n    y = mathMax(y, rect.y);\n    y = mathMin(y, rect.y + rect.height);\n    return [x, y];\n  });\n}\nexport function clipRectByRect(targetRect, rect) {\n  var x = mathMax(targetRect.x, rect.x);\n  var x2 = mathMin(targetRect.x + targetRect.width, rect.x + rect.width);\n  var y = mathMax(targetRect.y, rect.y);\n  var y2 = mathMin(targetRect.y + targetRect.height, rect.y + rect.height);\n\n  if (x2 >= x && y2 >= y) {\n    return {\n      x: x,\n      y: y,\n      width: x2 - x,\n      height: y2 - y\n    };\n  }\n}\nexport function createIcon(iconStr, opt, rect) {\n  var innerOpts = extend({\n    rectHover: true\n  }, opt);\n  var style = innerOpts.style = {\n    strokeNoScale: true\n  };\n  rect = rect || {\n    x: -1,\n    y: -1,\n    width: 2,\n    height: 2\n  };\n\n  if (iconStr) {\n    return iconStr.indexOf('image://') === 0 ? (style.image = iconStr.slice(8), defaults(style, rect), new ZRImage(innerOpts)) : makePath(iconStr.replace('path://', ''), innerOpts, rect, 'center');\n  }\n}\nexport function linePolygonIntersect(a1x, a1y, a2x, a2y, points) {\n  for (var i = 0, p2 = points[points.length - 1]; i < points.length; i++) {\n    var p = points[i];\n\n    if (lineLineIntersect(a1x, a1y, a2x, a2y, p[0], p[1], p2[0], p2[1])) {\n      return true;\n    }\n\n    p2 = p;\n  }\n}\nexport function lineLineIntersect(a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y) {\n  var mx = a2x - a1x;\n  var my = a2y - a1y;\n  var nx = b2x - b1x;\n  var ny = b2y - b1y;\n  var nmCrossProduct = crossProduct2d(nx, ny, mx, my);\n\n  if (nearZero(nmCrossProduct)) {\n    return false;\n  }\n\n  var b1a1x = a1x - b1x;\n  var b1a1y = a1y - b1y;\n  var q = crossProduct2d(b1a1x, b1a1y, mx, my) / nmCrossProduct;\n\n  if (q < 0 || q > 1) {\n    return false;\n  }\n\n  var p = crossProduct2d(b1a1x, b1a1y, nx, ny) / nmCrossProduct;\n\n  if (p < 0 || p > 1) {\n    return false;\n  }\n\n  return true;\n}\n\nfunction crossProduct2d(x1, y1, x2, y2) {\n  return x1 * y2 - x2 * y1;\n}\n\nfunction nearZero(val) {\n  return val <= 1e-6 && val >= -1e-6;\n}\n\nregisterShape('circle', Circle);\nregisterShape('ellipse', Ellipse);\nregisterShape('sector', Sector);\nregisterShape('ring', Ring);\nregisterShape('polygon', Polygon);\nregisterShape('polyline', Polyline);\nregisterShape('rect', Rect);\nregisterShape('line', Line);\nregisterShape('bezierCurve', BezierCurve);\nregisterShape('arc', Arc);\nexport { Group, ZRImage as Image, ZRText as Text, Circle, Ellipse, Sector, Ring, Polygon, Polyline, Rect, Line, BezierCurve, Arc, IncrementalDisplayable, CompoundPath, LinearGradient, RadialGradient, BoundingRect, OrientedBoundingRect, Point, Path };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ZRText from 'zrender/lib/graphic/Text';\nimport { isFunction, retrieve2, extend, keys, trim } from 'zrender/lib/core/util';\nimport { SPECIAL_STATES, DISPLAY_STATES } from '../util/states';\nimport { deprecateReplaceLog } from '../util/log';\nimport { makeInner, interpolateRawValues } from '../util/model';\nimport { initProps, updateProps } from '../util/graphic';\nvar EMPTY_OBJ = {};\nexport function setLabelText(label, labelTexts) {\n  for (var i = 0; i < SPECIAL_STATES.length; i++) {\n    var stateName = SPECIAL_STATES[i];\n    var text = labelTexts[stateName];\n    var state = label.ensureState(stateName);\n    state.style = state.style || {};\n    state.style.text = text;\n  }\n\n  var oldStates = label.currentStates.slice();\n  label.clearStates(true);\n  label.setStyle({\n    text: labelTexts.normal\n  });\n  label.useStates(oldStates, true);\n}\n\nfunction getLabelText(opt, stateModels, interpolatedValue) {\n  var labelFetcher = opt.labelFetcher;\n  var labelDataIndex = opt.labelDataIndex;\n  var labelDimIndex = opt.labelDimIndex;\n  var normalModel = stateModels.normal;\n  var baseText;\n\n  if (labelFetcher) {\n    baseText = labelFetcher.getFormattedLabel(labelDataIndex, 'normal', null, labelDimIndex, normalModel && normalModel.get('formatter'), interpolatedValue != null ? {\n      interpolatedValue: interpolatedValue\n    } : null);\n  }\n\n  if (baseText == null) {\n    baseText = isFunction(opt.defaultText) ? opt.defaultText(labelDataIndex, opt, interpolatedValue) : opt.defaultText;\n  }\n\n  var statesText = {\n    normal: baseText\n  };\n\n  for (var i = 0; i < SPECIAL_STATES.length; i++) {\n    var stateName = SPECIAL_STATES[i];\n    var stateModel = stateModels[stateName];\n    statesText[stateName] = retrieve2(labelFetcher ? labelFetcher.getFormattedLabel(labelDataIndex, stateName, null, labelDimIndex, stateModel && stateModel.get('formatter')) : null, baseText);\n  }\n\n  return statesText;\n}\n\nfunction setLabelStyle(targetEl, labelStatesModels, opt, stateSpecified) {\n  opt = opt || EMPTY_OBJ;\n  var isSetOnText = targetEl instanceof ZRText;\n  var needsCreateText = false;\n\n  for (var i = 0; i < DISPLAY_STATES.length; i++) {\n    var stateModel = labelStatesModels[DISPLAY_STATES[i]];\n\n    if (stateModel && stateModel.getShallow('show')) {\n      needsCreateText = true;\n      break;\n    }\n  }\n\n  var textContent = isSetOnText ? targetEl : targetEl.getTextContent();\n\n  if (needsCreateText) {\n    if (!isSetOnText) {\n      if (!textContent) {\n        textContent = new ZRText();\n        targetEl.setTextContent(textContent);\n      }\n\n      if (targetEl.stateProxy) {\n        textContent.stateProxy = targetEl.stateProxy;\n      }\n    }\n\n    var labelStatesTexts = getLabelText(opt, labelStatesModels);\n    var normalModel = labelStatesModels.normal;\n    var showNormal = !!normalModel.getShallow('show');\n    var normalStyle = createTextStyle(normalModel, stateSpecified && stateSpecified.normal, opt, false, !isSetOnText);\n    normalStyle.text = labelStatesTexts.normal;\n\n    if (!isSetOnText) {\n      targetEl.setTextConfig(createTextConfig(normalModel, opt, false));\n    }\n\n    for (var i = 0; i < SPECIAL_STATES.length; i++) {\n      var stateName = SPECIAL_STATES[i];\n      var stateModel = labelStatesModels[stateName];\n\n      if (stateModel) {\n        var stateObj = textContent.ensureState(stateName);\n        var stateShow = !!retrieve2(stateModel.getShallow('show'), showNormal);\n\n        if (stateShow !== showNormal) {\n          stateObj.ignore = !stateShow;\n        }\n\n        stateObj.style = createTextStyle(stateModel, stateSpecified && stateSpecified[stateName], opt, true, !isSetOnText);\n        stateObj.style.text = labelStatesTexts[stateName];\n\n        if (!isSetOnText) {\n          var targetElEmphasisState = targetEl.ensureState(stateName);\n          targetElEmphasisState.textConfig = createTextConfig(stateModel, opt, true);\n        }\n      }\n    }\n\n    textContent.silent = !!normalModel.getShallow('silent');\n\n    if (textContent.style.x != null) {\n      normalStyle.x = textContent.style.x;\n    }\n\n    if (textContent.style.y != null) {\n      normalStyle.y = textContent.style.y;\n    }\n\n    textContent.ignore = !showNormal;\n    textContent.useStyle(normalStyle);\n    textContent.dirty();\n\n    if (opt.enableTextSetter) {\n      labelInner(textContent).setLabelText = function (interpolatedValue) {\n        var labelStatesTexts = getLabelText(opt, labelStatesModels, interpolatedValue);\n        setLabelText(textContent, labelStatesTexts);\n      };\n    }\n  } else if (textContent) {\n    textContent.ignore = true;\n  }\n\n  targetEl.dirty();\n}\n\nexport { setLabelStyle };\nexport function getLabelStatesModels(itemModel, labelName) {\n  labelName = labelName || 'label';\n  var statesModels = {\n    normal: itemModel.getModel(labelName)\n  };\n\n  for (var i = 0; i < SPECIAL_STATES.length; i++) {\n    var stateName = SPECIAL_STATES[i];\n    statesModels[stateName] = itemModel.getModel([stateName, labelName]);\n  }\n\n  return statesModels;\n}\nexport function createTextStyle(textStyleModel, specifiedTextStyle, opt, isNotNormal, isAttached) {\n  var textStyle = {};\n  setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached);\n  specifiedTextStyle && extend(textStyle, specifiedTextStyle);\n  return textStyle;\n}\nexport function createTextConfig(textStyleModel, opt, isNotNormal) {\n  opt = opt || {};\n  var textConfig = {};\n  var labelPosition;\n  var labelRotate = textStyleModel.getShallow('rotate');\n  var labelDistance = retrieve2(textStyleModel.getShallow('distance'), isNotNormal ? null : 5);\n  var labelOffset = textStyleModel.getShallow('offset');\n  labelPosition = textStyleModel.getShallow('position') || (isNotNormal ? null : 'inside');\n  labelPosition === 'outside' && (labelPosition = opt.defaultOutsidePosition || 'top');\n\n  if (labelPosition != null) {\n    textConfig.position = labelPosition;\n  }\n\n  if (labelOffset != null) {\n    textConfig.offset = labelOffset;\n  }\n\n  if (labelRotate != null) {\n    labelRotate *= Math.PI / 180;\n    textConfig.rotation = labelRotate;\n  }\n\n  if (labelDistance != null) {\n    textConfig.distance = labelDistance;\n  }\n\n  textConfig.outsideFill = textStyleModel.get('color') === 'inherit' ? opt.inheritColor || null : 'auto';\n  return textConfig;\n}\n\nfunction setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached) {\n  opt = opt || EMPTY_OBJ;\n  var ecModel = textStyleModel.ecModel;\n  var globalTextStyle = ecModel && ecModel.option.textStyle;\n  var richItemNames = getRichItemNames(textStyleModel);\n  var richResult;\n\n  if (richItemNames) {\n    richResult = {};\n\n    for (var name_1 in richItemNames) {\n      if (richItemNames.hasOwnProperty(name_1)) {\n        var richTextStyle = textStyleModel.getModel(['rich', name_1]);\n        setTokenTextStyle(richResult[name_1] = {}, richTextStyle, globalTextStyle, opt, isNotNormal, isAttached, false, true);\n      }\n    }\n  }\n\n  if (richResult) {\n    textStyle.rich = richResult;\n  }\n\n  var overflow = textStyleModel.get('overflow');\n\n  if (overflow) {\n    textStyle.overflow = overflow;\n  }\n\n  var margin = textStyleModel.get('minMargin');\n\n  if (margin != null) {\n    textStyle.margin = margin;\n  }\n\n  setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, true, false);\n}\n\nfunction getRichItemNames(textStyleModel) {\n  var richItemNameMap;\n\n  while (textStyleModel && textStyleModel !== textStyleModel.ecModel) {\n    var rich = (textStyleModel.option || EMPTY_OBJ).rich;\n\n    if (rich) {\n      richItemNameMap = richItemNameMap || {};\n      var richKeys = keys(rich);\n\n      for (var i = 0; i < richKeys.length; i++) {\n        var richKey = richKeys[i];\n        richItemNameMap[richKey] = 1;\n      }\n    }\n\n    textStyleModel = textStyleModel.parentModel;\n  }\n\n  return richItemNameMap;\n}\n\nvar TEXT_PROPS_WITH_GLOBAL = ['fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY'];\nvar TEXT_PROPS_SELF = ['align', 'lineHeight', 'width', 'height', 'tag', 'verticalAlign'];\nvar TEXT_PROPS_BOX = ['padding', 'borderWidth', 'borderRadius', 'borderDashOffset', 'backgroundColor', 'borderColor', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'];\n\nfunction setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, isBlock, inRich) {\n  globalTextStyle = !isNotNormal && globalTextStyle || EMPTY_OBJ;\n  var inheritColor = opt && opt.inheritColor;\n  var fillColor = textStyleModel.getShallow('color');\n  var strokeColor = textStyleModel.getShallow('textBorderColor');\n  var opacity = retrieve2(textStyleModel.getShallow('opacity'), globalTextStyle.opacity);\n\n  if (fillColor === 'inherit' || fillColor === 'auto') {\n    if (process.env.NODE_ENV !== 'production') {\n      if (fillColor === 'auto') {\n        deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\n      }\n    }\n\n    if (inheritColor) {\n      fillColor = inheritColor;\n    } else {\n      fillColor = null;\n    }\n  }\n\n  if (strokeColor === 'inherit' || strokeColor === 'auto') {\n    if (process.env.NODE_ENV !== 'production') {\n      if (strokeColor === 'auto') {\n        deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\n      }\n    }\n\n    if (inheritColor) {\n      strokeColor = inheritColor;\n    } else {\n      strokeColor = null;\n    }\n  }\n\n  if (!isAttached) {\n    fillColor = fillColor || globalTextStyle.color;\n    strokeColor = strokeColor || globalTextStyle.textBorderColor;\n  }\n\n  if (fillColor != null) {\n    textStyle.fill = fillColor;\n  }\n\n  if (strokeColor != null) {\n    textStyle.stroke = strokeColor;\n  }\n\n  var textBorderWidth = retrieve2(textStyleModel.getShallow('textBorderWidth'), globalTextStyle.textBorderWidth);\n\n  if (textBorderWidth != null) {\n    textStyle.lineWidth = textBorderWidth;\n  }\n\n  var textBorderType = retrieve2(textStyleModel.getShallow('textBorderType'), globalTextStyle.textBorderType);\n\n  if (textBorderType != null) {\n    textStyle.lineDash = textBorderType;\n  }\n\n  var textBorderDashOffset = retrieve2(textStyleModel.getShallow('textBorderDashOffset'), globalTextStyle.textBorderDashOffset);\n\n  if (textBorderDashOffset != null) {\n    textStyle.lineDashOffset = textBorderDashOffset;\n  }\n\n  if (!isNotNormal && opacity == null && !inRich) {\n    opacity = opt && opt.defaultOpacity;\n  }\n\n  if (opacity != null) {\n    textStyle.opacity = opacity;\n  }\n\n  if (!isNotNormal && !isAttached) {\n    if (textStyle.fill == null && opt.inheritColor) {\n      textStyle.fill = opt.inheritColor;\n    }\n  }\n\n  for (var i = 0; i < TEXT_PROPS_WITH_GLOBAL.length; i++) {\n    var key = TEXT_PROPS_WITH_GLOBAL[i];\n    var val = retrieve2(textStyleModel.getShallow(key), globalTextStyle[key]);\n\n    if (val != null) {\n      textStyle[key] = val;\n    }\n  }\n\n  for (var i = 0; i < TEXT_PROPS_SELF.length; i++) {\n    var key = TEXT_PROPS_SELF[i];\n    var val = textStyleModel.getShallow(key);\n\n    if (val != null) {\n      textStyle[key] = val;\n    }\n  }\n\n  if (textStyle.verticalAlign == null) {\n    var baseline = textStyleModel.getShallow('baseline');\n\n    if (baseline != null) {\n      textStyle.verticalAlign = baseline;\n    }\n  }\n\n  if (!isBlock || !opt.disableBox) {\n    for (var i = 0; i < TEXT_PROPS_BOX.length; i++) {\n      var key = TEXT_PROPS_BOX[i];\n      var val = textStyleModel.getShallow(key);\n\n      if (val != null) {\n        textStyle[key] = val;\n      }\n    }\n\n    var borderType = textStyleModel.getShallow('borderType');\n\n    if (borderType != null) {\n      textStyle.borderDash = borderType;\n    }\n\n    if ((textStyle.backgroundColor === 'auto' || textStyle.backgroundColor === 'inherit') && inheritColor) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (textStyle.backgroundColor === 'auto') {\n          deprecateReplaceLog('backgroundColor: \\'auto\\'', 'backgroundColor: \\'inherit\\'');\n        }\n      }\n\n      textStyle.backgroundColor = inheritColor;\n    }\n\n    if ((textStyle.borderColor === 'auto' || textStyle.borderColor === 'inherit') && inheritColor) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (textStyle.borderColor === 'auto') {\n          deprecateReplaceLog('borderColor: \\'auto\\'', 'borderColor: \\'inherit\\'');\n        }\n      }\n\n      textStyle.borderColor = inheritColor;\n    }\n  }\n}\n\nexport function getFont(opt, ecModel) {\n  var gTextStyleModel = ecModel && ecModel.getModel('textStyle');\n  return trim([opt.fontStyle || gTextStyleModel && gTextStyleModel.getShallow('fontStyle') || '', opt.fontWeight || gTextStyleModel && gTextStyleModel.getShallow('fontWeight') || '', (opt.fontSize || gTextStyleModel && gTextStyleModel.getShallow('fontSize') || 12) + 'px', opt.fontFamily || gTextStyleModel && gTextStyleModel.getShallow('fontFamily') || 'sans-serif'].join(' '));\n}\nexport var labelInner = makeInner();\nexport function setLabelValueAnimation(label, labelStatesModels, value, getDefaultText) {\n  if (!label) {\n    return;\n  }\n\n  var obj = labelInner(label);\n  obj.prevValue = obj.value;\n  obj.value = value;\n  var normalLabelModel = labelStatesModels.normal;\n  obj.valueAnimation = normalLabelModel.get('valueAnimation');\n\n  if (obj.valueAnimation) {\n    obj.precision = normalLabelModel.get('precision');\n    obj.defaultInterpolatedText = getDefaultText;\n    obj.statesModels = labelStatesModels;\n  }\n}\nexport function animateLabelValue(textEl, dataIndex, data, animatableModel, labelFetcher) {\n  var labelInnerStore = labelInner(textEl);\n\n  if (!labelInnerStore.valueAnimation) {\n    return;\n  }\n\n  var defaultInterpolatedText = labelInnerStore.defaultInterpolatedText;\n  var currValue = retrieve2(labelInnerStore.interpolatedValue, labelInnerStore.prevValue);\n  var targetValue = labelInnerStore.value;\n\n  function during(percent) {\n    var interpolated = interpolateRawValues(data, labelInnerStore.precision, currValue, targetValue, percent);\n    labelInnerStore.interpolatedValue = percent === 1 ? null : interpolated;\n    var labelText = getLabelText({\n      labelDataIndex: dataIndex,\n      labelFetcher: labelFetcher,\n      defaultText: defaultInterpolatedText ? defaultInterpolatedText(interpolated) : interpolated + ''\n    }, labelInnerStore.statesModels, interpolated);\n    setLabelText(textEl, labelText);\n  }\n\n  (currValue == null ? initProps : updateProps)(textEl, {}, animatableModel, dataIndex, null, during);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { getFont } from '../../label/labelStyle';\nimport ZRText from 'zrender/lib/graphic/Text';\nvar PATH_COLOR = ['textStyle', 'color'];\nvar tmpRichText = new ZRText();\n\nvar TextStyleMixin = function () {\n  function TextStyleMixin() {}\n\n  TextStyleMixin.prototype.getTextColor = function (isEmphasis) {\n    var ecModel = this.ecModel;\n    return this.getShallow('color') || (!isEmphasis && ecModel ? ecModel.get(PATH_COLOR) : null);\n  };\n\n  TextStyleMixin.prototype.getFont = function () {\n    return getFont({\n      fontStyle: this.getShallow('fontStyle'),\n      fontWeight: this.getShallow('fontWeight'),\n      fontSize: this.getShallow('fontSize'),\n      fontFamily: this.getShallow('fontFamily')\n    }, this.ecModel);\n  };\n\n  TextStyleMixin.prototype.getTextRect = function (text) {\n    tmpRichText.useStyle({\n      text: text,\n      fontStyle: this.getShallow('fontStyle'),\n      fontWeight: this.getShallow('fontWeight'),\n      fontSize: this.getShallow('fontSize'),\n      fontFamily: this.getShallow('fontFamily'),\n      verticalAlign: this.getShallow('verticalAlign') || this.getShallow('baseline'),\n      padding: this.getShallow('padding'),\n      lineHeight: this.getShallow('lineHeight'),\n      rich: this.getShallow('rich')\n    });\n    tmpRichText.update();\n    return tmpRichText.getBoundingRect();\n  };\n\n  return TextStyleMixin;\n}();\n\n;\nexport default TextStyleMixin;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport makeStyleMapper from './makeStyleMapper';\nexport var LINE_STYLE_KEY_MAP = [['lineWidth', 'width'], ['stroke', 'color'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor'], ['lineDash', 'type'], ['lineDashOffset', 'dashOffset'], ['lineCap', 'cap'], ['lineJoin', 'join'], ['miterLimit']];\nvar getLineStyle = makeStyleMapper(LINE_STYLE_KEY_MAP);\n\nvar LineStyleMixin = function () {\n  function LineStyleMixin() {}\n\n  LineStyleMixin.prototype.getLineStyle = function (excludes) {\n    return getLineStyle(this, excludes);\n  };\n\n  return LineStyleMixin;\n}();\n\n;\nexport { LineStyleMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport makeStyleMapper from './makeStyleMapper';\nexport var ITEM_STYLE_KEY_MAP = [['fill', 'color'], ['stroke', 'borderColor'], ['lineWidth', 'borderWidth'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor'], ['lineDash', 'borderType'], ['lineDashOffset', 'borderDashOffset'], ['lineCap', 'borderCap'], ['lineJoin', 'borderJoin'], ['miterLimit', 'borderMiterLimit']];\nvar getItemStyle = makeStyleMapper(ITEM_STYLE_KEY_MAP);\n\nvar ItemStyleMixin = function () {\n  function ItemStyleMixin() {}\n\n  ItemStyleMixin.prototype.getItemStyle = function (excludes, includes) {\n    return getItemStyle(this, excludes, includes);\n  };\n\n  return ItemStyleMixin;\n}();\n\nexport { ItemStyleMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport env from 'zrender/lib/core/env';\nimport { enableClassExtend, enableClassCheck } from '../util/clazz';\nimport { AreaStyleMixin } from './mixin/areaStyle';\nimport TextStyleMixin from './mixin/textStyle';\nimport { LineStyleMixin } from './mixin/lineStyle';\nimport { ItemStyleMixin } from './mixin/itemStyle';\nimport { mixin, clone, merge } from 'zrender/lib/core/util';\n\nvar Model = function () {\n  function Model(option, parentModel, ecModel) {\n    this.parentModel = parentModel;\n    this.ecModel = ecModel;\n    this.option = option;\n  }\n\n  Model.prototype.init = function (option, parentModel, ecModel) {\n    var rest = [];\n\n    for (var _i = 3; _i < arguments.length; _i++) {\n      rest[_i - 3] = arguments[_i];\n    }\n  };\n\n  Model.prototype.mergeOption = function (option, ecModel) {\n    merge(this.option, option, true);\n  };\n\n  Model.prototype.get = function (path, ignoreParent) {\n    if (path == null) {\n      return this.option;\n    }\n\n    return this._doGet(this.parsePath(path), !ignoreParent && this.parentModel);\n  };\n\n  Model.prototype.getShallow = function (key, ignoreParent) {\n    var option = this.option;\n    var val = option == null ? option : option[key];\n\n    if (val == null && !ignoreParent) {\n      var parentModel = this.parentModel;\n\n      if (parentModel) {\n        val = parentModel.getShallow(key);\n      }\n    }\n\n    return val;\n  };\n\n  Model.prototype.getModel = function (path, parentModel) {\n    var hasPath = path != null;\n    var pathFinal = hasPath ? this.parsePath(path) : null;\n    var obj = hasPath ? this._doGet(pathFinal) : this.option;\n    parentModel = parentModel || this.parentModel && this.parentModel.getModel(this.resolveParentPath(pathFinal));\n    return new Model(obj, parentModel, this.ecModel);\n  };\n\n  Model.prototype.isEmpty = function () {\n    return this.option == null;\n  };\n\n  Model.prototype.restoreData = function () {};\n\n  Model.prototype.clone = function () {\n    var Ctor = this.constructor;\n    return new Ctor(clone(this.option));\n  };\n\n  Model.prototype.parsePath = function (path) {\n    if (typeof path === 'string') {\n      return path.split('.');\n    }\n\n    return path;\n  };\n\n  Model.prototype.resolveParentPath = function (path) {\n    return path;\n  };\n\n  Model.prototype.isAnimationEnabled = function () {\n    if (!env.node && this.option) {\n      if (this.option.animation != null) {\n        return !!this.option.animation;\n      } else if (this.parentModel) {\n        return this.parentModel.isAnimationEnabled();\n      }\n    }\n  };\n\n  Model.prototype._doGet = function (pathArr, parentModel) {\n    var obj = this.option;\n\n    if (!pathArr) {\n      return obj;\n    }\n\n    for (var i = 0; i < pathArr.length; i++) {\n      if (!pathArr[i]) {\n        continue;\n      }\n\n      obj = obj && typeof obj === 'object' ? obj[pathArr[i]] : null;\n\n      if (obj == null) {\n        break;\n      }\n    }\n\n    if (obj == null && parentModel) {\n      obj = parentModel._doGet(this.resolveParentPath(pathArr), parentModel.parentModel);\n    }\n\n    return obj;\n  };\n\n  return Model;\n}();\n\n;\nenableClassExtend(Model);\nenableClassCheck(Model);\nmixin(Model, LineStyleMixin);\nmixin(Model, ItemStyleMixin);\nmixin(Model, AreaStyleMixin);\nmixin(Model, TextStyleMixin);\nexport default Model;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parseClassType } from './clazz';\nimport { makePrintable } from './log';\nvar base = Math.round(Math.random() * 10);\nexport function getUID(type) {\n  return [type || '', base++].join('_');\n}\nexport function enableSubTypeDefaulter(target) {\n  var subTypeDefaulters = {};\n\n  target.registerSubTypeDefaulter = function (componentType, defaulter) {\n    var componentTypeInfo = parseClassType(componentType);\n    subTypeDefaulters[componentTypeInfo.main] = defaulter;\n  };\n\n  target.determineSubType = function (componentType, option) {\n    var type = option.type;\n\n    if (!type) {\n      var componentTypeMain = parseClassType(componentType).main;\n\n      if (target.hasSubTypes(componentType) && subTypeDefaulters[componentTypeMain]) {\n        type = subTypeDefaulters[componentTypeMain](option);\n      }\n    }\n\n    return type;\n  };\n}\nexport function enableTopologicalTravel(entity, dependencyGetter) {\n  entity.topologicalTravel = function (targetNameList, fullNameList, callback, context) {\n    if (!targetNameList.length) {\n      return;\n    }\n\n    var result = makeDepndencyGraph(fullNameList);\n    var graph = result.graph;\n    var noEntryList = result.noEntryList;\n    var targetNameSet = {};\n    zrUtil.each(targetNameList, function (name) {\n      targetNameSet[name] = true;\n    });\n\n    while (noEntryList.length) {\n      var currComponentType = noEntryList.pop();\n      var currVertex = graph[currComponentType];\n      var isInTargetNameSet = !!targetNameSet[currComponentType];\n\n      if (isInTargetNameSet) {\n        callback.call(context, currComponentType, currVertex.originalDeps.slice());\n        delete targetNameSet[currComponentType];\n      }\n\n      zrUtil.each(currVertex.successor, isInTargetNameSet ? removeEdgeAndAdd : removeEdge);\n    }\n\n    zrUtil.each(targetNameSet, function () {\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = makePrintable('Circle dependency may exists: ', targetNameSet, targetNameList, fullNameList);\n      }\n\n      throw new Error(errMsg);\n    });\n\n    function removeEdge(succComponentType) {\n      graph[succComponentType].entryCount--;\n\n      if (graph[succComponentType].entryCount === 0) {\n        noEntryList.push(succComponentType);\n      }\n    }\n\n    function removeEdgeAndAdd(succComponentType) {\n      targetNameSet[succComponentType] = true;\n      removeEdge(succComponentType);\n    }\n  };\n\n  function makeDepndencyGraph(fullNameList) {\n    var graph = {};\n    var noEntryList = [];\n    zrUtil.each(fullNameList, function (name) {\n      var thisItem = createDependencyGraphItem(graph, name);\n      var originalDeps = thisItem.originalDeps = dependencyGetter(name);\n      var availableDeps = getAvailableDependencies(originalDeps, fullNameList);\n      thisItem.entryCount = availableDeps.length;\n\n      if (thisItem.entryCount === 0) {\n        noEntryList.push(name);\n      }\n\n      zrUtil.each(availableDeps, function (dependentName) {\n        if (zrUtil.indexOf(thisItem.predecessor, dependentName) < 0) {\n          thisItem.predecessor.push(dependentName);\n        }\n\n        var thatItem = createDependencyGraphItem(graph, dependentName);\n\n        if (zrUtil.indexOf(thatItem.successor, dependentName) < 0) {\n          thatItem.successor.push(name);\n        }\n      });\n    });\n    return {\n      graph: graph,\n      noEntryList: noEntryList\n    };\n  }\n\n  function createDependencyGraphItem(graph, name) {\n    if (!graph[name]) {\n      graph[name] = {\n        predecessor: [],\n        successor: []\n      };\n    }\n\n    return graph[name];\n  }\n\n  function getAvailableDependencies(originalDeps, fullNameList) {\n    var availableDeps = [];\n    zrUtil.each(originalDeps, function (dep) {\n      zrUtil.indexOf(fullNameList, dep) >= 0 && availableDeps.push(dep);\n    });\n    return availableDeps;\n  }\n}\nexport function inheritDefaultOption(superOption, subOption) {\n  return zrUtil.merge(zrUtil.merge({}, superOption, true), subOption, true);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default {\n  time: {\n    month: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n    monthAbbr: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n    dayOfWeek: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n    dayOfWeekAbbr: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\n  },\n  legend: {\n    selector: {\n      all: 'All',\n      inverse: 'Inv'\n    }\n  },\n  toolbox: {\n    brush: {\n      title: {\n        rect: 'Box Select',\n        polygon: 'Lasso Select',\n        lineX: 'Horizontally Select',\n        lineY: 'Vertically Select',\n        keep: 'Keep Selections',\n        clear: 'Clear Selections'\n      }\n    },\n    dataView: {\n      title: 'Data View',\n      lang: ['Data View', 'Close', 'Refresh']\n    },\n    dataZoom: {\n      title: {\n        zoom: 'Zoom',\n        back: 'Zoom Reset'\n      }\n    },\n    magicType: {\n      title: {\n        line: 'Switch to Line Chart',\n        bar: 'Switch to Bar Chart',\n        stack: 'Stack',\n        tiled: 'Tile'\n      }\n    },\n    restore: {\n      title: 'Restore'\n    },\n    saveAsImage: {\n      title: 'Save as Image',\n      lang: ['Right Click to Save Image']\n    }\n  },\n  series: {\n    typeNames: {\n      pie: 'Pie chart',\n      bar: 'Bar chart',\n      line: 'Line chart',\n      scatter: 'Scatter plot',\n      effectScatter: 'Ripple scatter plot',\n      radar: 'Radar chart',\n      tree: 'Tree',\n      treemap: 'Treemap',\n      boxplot: 'Boxplot',\n      candlestick: 'Candlestick',\n      k: 'K line chart',\n      heatmap: 'Heat map',\n      map: 'Map',\n      parallel: 'Parallel coordinate map',\n      lines: 'Line graph',\n      graph: 'Relationship graph',\n      sankey: 'Sankey diagram',\n      funnel: 'Funnel chart',\n      gauge: 'Guage',\n      pictorialBar: 'Pictorial bar',\n      themeRiver: 'Theme River Map',\n      sunburst: 'Sunburst'\n    }\n  },\n  aria: {\n    general: {\n      withTitle: 'This is a chart about \"{title}\"',\n      withoutTitle: 'This is a chart'\n    },\n    series: {\n      single: {\n        prefix: '',\n        withName: ' with type {seriesType} named {seriesName}.',\n        withoutName: ' with type {seriesType}.'\n      },\n      multiple: {\n        prefix: '. It consists of {seriesCount} series count.',\n        withName: ' The {seriesId} series is a {seriesType} representing {seriesName}.',\n        withoutName: ' The {seriesId} series is a {seriesType}.',\n        separator: {\n          middle: '',\n          end: ''\n        }\n      }\n    },\n    data: {\n      allData: 'The data is as follows: ',\n      partialData: 'The first {displayCnt} items are: ',\n      withName: 'the data for {name} is {value}',\n      withoutName: '{value}',\n      separator: {\n        middle: ', ',\n        end: '. '\n      }\n    }\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default {\n  time: {\n    month: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],\n    monthAbbr: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\n    dayOfWeek: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],\n    dayOfWeekAbbr: ['日', '一', '二', '三', '四', '五', '六']\n  },\n  legend: {\n    selector: {\n      all: '全选',\n      inverse: '反选'\n    }\n  },\n  toolbox: {\n    brush: {\n      title: {\n        rect: '矩形选择',\n        polygon: '圈选',\n        lineX: '横向选择',\n        lineY: '纵向选择',\n        keep: '保持选择',\n        clear: '清除选择'\n      }\n    },\n    dataView: {\n      title: '数据视图',\n      lang: ['数据视图', '关闭', '刷新']\n    },\n    dataZoom: {\n      title: {\n        zoom: '区域缩放',\n        back: '区域缩放还原'\n      }\n    },\n    magicType: {\n      title: {\n        line: '切换为折线图',\n        bar: '切换为柱状图',\n        stack: '切换为堆叠',\n        tiled: '切换为平铺'\n      }\n    },\n    restore: {\n      title: '还原'\n    },\n    saveAsImage: {\n      title: '保存为图片',\n      lang: ['右键另存为图片']\n    }\n  },\n  series: {\n    typeNames: {\n      pie: '饼图',\n      bar: '柱状图',\n      line: '折线图',\n      scatter: '散点图',\n      effectScatter: '涟漪散点图',\n      radar: '雷达图',\n      tree: '树图',\n      treemap: '矩形树图',\n      boxplot: '箱型图',\n      candlestick: 'K线图',\n      k: 'K线图',\n      heatmap: '热力图',\n      map: '地图',\n      parallel: '平行坐标图',\n      lines: '线图',\n      graph: '关系图',\n      sankey: '桑基图',\n      funnel: '漏斗图',\n      gauge: '仪表盘图',\n      pictorialBar: '象形柱图',\n      themeRiver: '主题河流图',\n      sunburst: '旭日图'\n    }\n  },\n  aria: {\n    general: {\n      withTitle: '这是一个关于“{title}”的图表。',\n      withoutTitle: '这是一个图表,'\n    },\n    series: {\n      single: {\n        prefix: '',\n        withName: '图表类型是{seriesType},表示{seriesName}。',\n        withoutName: '图表类型是{seriesType}。'\n      },\n      multiple: {\n        prefix: '它由{seriesCount}个图表系列组成。',\n        withName: '第{seriesId}个系列是一个表示{seriesName}的{seriesType},',\n        withoutName: '第{seriesId}个系列是一个{seriesType},',\n        separator: {\n          middle: ';',\n          end: '。'\n        }\n      }\n    },\n    data: {\n      allData: '其数据是——',\n      partialData: '其中,前{displayCnt}项是——',\n      withName: '{name}的数据是{value}',\n      withoutName: '{value}',\n      separator: {\n        middle: ',',\n        end: ''\n      }\n    }\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Model from '../model/Model';\nimport env from 'zrender/lib/core/env';\nimport langEN from '../i18n/langEN';\nimport langZH from '../i18n/langZH';\nimport { isString, clone, merge } from 'zrender/lib/core/util';\nvar LOCALE_ZH = 'ZH';\nvar LOCALE_EN = 'EN';\nvar DEFAULT_LOCALE = LOCALE_EN;\nvar localeStorage = {};\nvar localeModels = {};\nexport var SYSTEM_LANG = !env.domSupported ? DEFAULT_LOCALE : function () {\n  var langStr = (document.documentElement.lang || navigator.language || navigator.browserLanguage).toUpperCase();\n  return langStr.indexOf(LOCALE_ZH) > -1 ? LOCALE_ZH : DEFAULT_LOCALE;\n}();\nexport function registerLocale(locale, localeObj) {\n  locale = locale.toUpperCase();\n  localeModels[locale] = new Model(localeObj);\n  localeStorage[locale] = localeObj;\n}\nexport function createLocaleObject(locale) {\n  if (isString(locale)) {\n    var localeObj = localeStorage[locale.toUpperCase()] || {};\n\n    if (locale === LOCALE_ZH || locale === LOCALE_EN) {\n      return clone(localeObj);\n    } else {\n      return merge(clone(localeObj), clone(localeStorage[DEFAULT_LOCALE]), false);\n    }\n  } else {\n    return merge(clone(locale), clone(localeStorage[DEFAULT_LOCALE]), false);\n  }\n}\nexport function getLocaleModel(lang) {\n  return localeModels[lang];\n}\nexport function getDefaultLocaleModel() {\n  return localeModels[DEFAULT_LOCALE];\n}\nregisterLocale(LOCALE_EN, langEN);\nregisterLocale(LOCALE_ZH, langZH);","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as numberUtil from './number';\nimport { getDefaultLocaleModel, getLocaleModel, SYSTEM_LANG } from '../core/locale';\nimport Model from '../model/Model';\nexport var ONE_SECOND = 1000;\nexport var ONE_MINUTE = ONE_SECOND * 60;\nexport var ONE_HOUR = ONE_MINUTE * 60;\nexport var ONE_DAY = ONE_HOUR * 24;\nexport var ONE_YEAR = ONE_DAY * 365;\nexport var defaultLeveledFormatter = {\n  year: '{yyyy}',\n  month: '{MMM}',\n  day: '{d}',\n  hour: '{HH}:{mm}',\n  minute: '{HH}:{mm}',\n  second: '{HH}:{mm}:{ss}',\n  millisecond: '{hh}:{mm}:{ss} {SSS}',\n  none: '{yyyy}-{MM}-{dd} {hh}:{mm}:{ss} {SSS}'\n};\nvar fullDayFormatter = '{yyyy}-{MM}-{dd}';\nexport var fullLeveledFormatter = {\n  year: '{yyyy}',\n  month: '{yyyy}-{MM}',\n  day: fullDayFormatter,\n  hour: fullDayFormatter + ' ' + defaultLeveledFormatter.hour,\n  minute: fullDayFormatter + ' ' + defaultLeveledFormatter.minute,\n  second: fullDayFormatter + ' ' + defaultLeveledFormatter.second,\n  millisecond: defaultLeveledFormatter.none\n};\nexport var primaryTimeUnits = ['year', 'month', 'day', 'hour', 'minute', 'second', 'millisecond'];\nexport var timeUnits = ['year', 'half-year', 'quarter', 'month', 'week', 'half-week', 'day', 'half-day', 'quarter-day', 'hour', 'minute', 'second', 'millisecond'];\nexport function pad(str, len) {\n  str += '';\n  return '0000'.substr(0, len - str.length) + str;\n}\nexport function getPrimaryTimeUnit(timeUnit) {\n  switch (timeUnit) {\n    case 'half-year':\n    case 'quarter':\n      return 'month';\n\n    case 'week':\n    case 'half-week':\n      return 'day';\n\n    case 'half-day':\n    case 'quarter-day':\n      return 'hour';\n\n    default:\n      return timeUnit;\n  }\n}\nexport function isPrimaryTimeUnit(timeUnit) {\n  return timeUnit === getPrimaryTimeUnit(timeUnit);\n}\nexport function getDefaultFormatPrecisionOfInterval(timeUnit) {\n  switch (timeUnit) {\n    case 'year':\n    case 'month':\n      return 'day';\n\n    case 'millisecond':\n      return 'millisecond';\n\n    default:\n      return 'second';\n  }\n}\nexport function format(time, template, isUTC, lang) {\n  var date = numberUtil.parseDate(time);\n  var y = date[fullYearGetterName(isUTC)]();\n  var M = date[monthGetterName(isUTC)]() + 1;\n  var q = Math.floor((M - 1) / 4) + 1;\n  var d = date[dateGetterName(isUTC)]();\n  var e = date['get' + (isUTC ? 'UTC' : '') + 'Day']();\n  var H = date[hoursGetterName(isUTC)]();\n  var h = (H - 1) % 12 + 1;\n  var m = date[minutesGetterName(isUTC)]();\n  var s = date[secondsGetterName(isUTC)]();\n  var S = date[millisecondsGetterName(isUTC)]();\n  var localeModel = lang instanceof Model ? lang : getLocaleModel(lang || SYSTEM_LANG) || getDefaultLocaleModel();\n  var timeModel = localeModel.getModel('time');\n  var month = timeModel.get('month');\n  var monthAbbr = timeModel.get('monthAbbr');\n  var dayOfWeek = timeModel.get('dayOfWeek');\n  var dayOfWeekAbbr = timeModel.get('dayOfWeekAbbr');\n  return (template || '').replace(/{yyyy}/g, y + '').replace(/{yy}/g, y % 100 + '').replace(/{Q}/g, q + '').replace(/{MMMM}/g, month[M - 1]).replace(/{MMM}/g, monthAbbr[M - 1]).replace(/{MM}/g, pad(M, 2)).replace(/{M}/g, M + '').replace(/{dd}/g, pad(d, 2)).replace(/{d}/g, d + '').replace(/{eeee}/g, dayOfWeek[e]).replace(/{ee}/g, dayOfWeekAbbr[e]).replace(/{e}/g, e + '').replace(/{HH}/g, pad(H, 2)).replace(/{H}/g, H + '').replace(/{hh}/g, pad(h + '', 2)).replace(/{h}/g, h + '').replace(/{mm}/g, pad(m, 2)).replace(/{m}/g, m + '').replace(/{ss}/g, pad(s, 2)).replace(/{s}/g, s + '').replace(/{SSS}/g, pad(S, 3)).replace(/{S}/g, S + '');\n}\nexport function leveledFormat(tick, idx, formatter, lang, isUTC) {\n  var template = null;\n\n  if (typeof formatter === 'string') {\n    template = formatter;\n  } else if (typeof formatter === 'function') {\n    template = formatter(tick.value, idx, {\n      level: tick.level\n    });\n  } else {\n    var defaults = zrUtil.extend({}, defaultLeveledFormatter);\n\n    if (tick.level > 0) {\n      for (var i = 0; i < primaryTimeUnits.length; ++i) {\n        defaults[primaryTimeUnits[i]] = \"{primary|\" + defaults[primaryTimeUnits[i]] + \"}\";\n      }\n    }\n\n    var mergedFormatter = formatter ? formatter.inherit === false ? formatter : zrUtil.defaults(formatter, defaults) : defaults;\n    var unit = getUnitFromValue(tick.value, isUTC);\n\n    if (mergedFormatter[unit]) {\n      template = mergedFormatter[unit];\n    } else if (mergedFormatter.inherit) {\n      var targetId = timeUnits.indexOf(unit);\n\n      for (var i = targetId - 1; i >= 0; --i) {\n        if (mergedFormatter[unit]) {\n          template = mergedFormatter[unit];\n          break;\n        }\n      }\n\n      template = template || defaults.none;\n    }\n\n    if (zrUtil.isArray(template)) {\n      var levelId = tick.level == null ? 0 : tick.level >= 0 ? tick.level : template.length + tick.level;\n      levelId = Math.min(levelId, template.length - 1);\n      template = template[levelId];\n    }\n  }\n\n  return format(new Date(tick.value), template, isUTC, lang);\n}\nexport function getUnitFromValue(value, isUTC) {\n  var date = numberUtil.parseDate(value);\n  var M = date[monthGetterName(isUTC)]() + 1;\n  var d = date[dateGetterName(isUTC)]();\n  var h = date[hoursGetterName(isUTC)]();\n  var m = date[minutesGetterName(isUTC)]();\n  var s = date[secondsGetterName(isUTC)]();\n  var S = date[millisecondsGetterName(isUTC)]();\n  var isSecond = S === 0;\n  var isMinute = isSecond && s === 0;\n  var isHour = isMinute && m === 0;\n  var isDay = isHour && h === 0;\n  var isMonth = isDay && d === 1;\n  var isYear = isMonth && M === 1;\n\n  if (isYear) {\n    return 'year';\n  } else if (isMonth) {\n    return 'month';\n  } else if (isDay) {\n    return 'day';\n  } else if (isHour) {\n    return 'hour';\n  } else if (isMinute) {\n    return 'minute';\n  } else if (isSecond) {\n    return 'second';\n  } else {\n    return 'millisecond';\n  }\n}\nexport function getUnitValue(value, unit, isUTC) {\n  var date = typeof value === 'number' ? numberUtil.parseDate(value) : value;\n  unit = unit || getUnitFromValue(value, isUTC);\n\n  switch (unit) {\n    case 'year':\n      return date[fullYearGetterName(isUTC)]();\n\n    case 'half-year':\n      return date[monthGetterName(isUTC)]() >= 6 ? 1 : 0;\n\n    case 'quarter':\n      return Math.floor((date[monthGetterName(isUTC)]() + 1) / 4);\n\n    case 'month':\n      return date[monthGetterName(isUTC)]();\n\n    case 'day':\n      return date[dateGetterName(isUTC)]();\n\n    case 'half-day':\n      return date[hoursGetterName(isUTC)]() / 24;\n\n    case 'hour':\n      return date[hoursGetterName(isUTC)]();\n\n    case 'minute':\n      return date[minutesGetterName(isUTC)]();\n\n    case 'second':\n      return date[secondsGetterName(isUTC)]();\n\n    case 'millisecond':\n      return date[millisecondsGetterName(isUTC)]();\n  }\n}\nexport function fullYearGetterName(isUTC) {\n  return isUTC ? 'getUTCFullYear' : 'getFullYear';\n}\nexport function monthGetterName(isUTC) {\n  return isUTC ? 'getUTCMonth' : 'getMonth';\n}\nexport function dateGetterName(isUTC) {\n  return isUTC ? 'getUTCDate' : 'getDate';\n}\nexport function hoursGetterName(isUTC) {\n  return isUTC ? 'getUTCHours' : 'getHours';\n}\nexport function minutesGetterName(isUTC) {\n  return isUTC ? 'getUTCMinutes' : 'getMinutes';\n}\nexport function secondsGetterName(isUTC) {\n  return isUTC ? 'getUTCSeconds' : 'getSeconds';\n}\nexport function millisecondsGetterName(isUTC) {\n  return isUTC ? 'getUTCSeconds' : 'getSeconds';\n}\nexport function fullYearSetterName(isUTC) {\n  return isUTC ? 'setUTCFullYear' : 'setFullYear';\n}\nexport function monthSetterName(isUTC) {\n  return isUTC ? 'setUTCMonth' : 'setMonth';\n}\nexport function dateSetterName(isUTC) {\n  return isUTC ? 'setUTCDate' : 'setDate';\n}\nexport function hoursSetterName(isUTC) {\n  return isUTC ? 'setUTCHours' : 'setHours';\n}\nexport function minutesSetterName(isUTC) {\n  return isUTC ? 'setUTCMinutes' : 'setMinutes';\n}\nexport function secondsSetterName(isUTC) {\n  return isUTC ? 'setUTCSeconds' : 'setSeconds';\n}\nexport function millisecondsSetterName(isUTC) {\n  return isUTC ? 'setUTCSeconds' : 'setSeconds';\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { Text } from '../util/graphic';\nimport { deprecateLog } from '../util/log';\nexport function getTextRect(text, font, align, verticalAlign, padding, rich, truncate, lineHeight) {\n  deprecateLog('getTextRect is deprecated.');\n  var textEl = new Text({\n    style: {\n      text: text,\n      font: font,\n      align: align,\n      verticalAlign: verticalAlign,\n      padding: padding,\n      rich: rich,\n      overflow: truncate ? 'truncate' : null,\n      lineHeight: lineHeight\n    }\n  });\n  return textEl.getBoundingRect();\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parseDate, isNumeric, numericToNumber } from './number';\nimport { format as timeFormat, pad } from './time';\nimport { deprecateReplaceLog } from './log';\nexport function addCommas(x) {\n  if (!isNumeric(x)) {\n    return zrUtil.isString(x) ? x : '-';\n  }\n\n  var parts = (x + '').split('.');\n  return parts[0].replace(/(\\d{1,3})(?=(?:\\d{3})+(?!\\d))/g, '$1,') + (parts.length > 1 ? '.' + parts[1] : '');\n}\nexport function toCamelCase(str, upperCaseFirst) {\n  str = (str || '').toLowerCase().replace(/-(.)/g, function (match, group1) {\n    return group1.toUpperCase();\n  });\n\n  if (upperCaseFirst && str) {\n    str = str.charAt(0).toUpperCase() + str.slice(1);\n  }\n\n  return str;\n}\nexport var normalizeCssArray = zrUtil.normalizeCssArray;\nvar replaceReg = /([&<>\"'])/g;\nvar replaceMap = {\n  '&': '&amp;',\n  '<': '&lt;',\n  '>': '&gt;',\n  '\"': '&quot;',\n  '\\'': '&#39;'\n};\nexport function encodeHTML(source) {\n  return source == null ? '' : (source + '').replace(replaceReg, function (str, c) {\n    return replaceMap[c];\n  });\n}\nexport function makeValueReadable(value, valueType, useUTC) {\n  var USER_READABLE_DEFUALT_TIME_PATTERN = 'yyyy-MM-dd hh:mm:ss';\n\n  function stringToUserReadable(str) {\n    return str && zrUtil.trim(str) ? str : '-';\n  }\n\n  function isNumberUserReadable(num) {\n    return !!(num != null && !isNaN(num) && isFinite(num));\n  }\n\n  var isTypeTime = valueType === 'time';\n  var isValueDate = value instanceof Date;\n\n  if (isTypeTime || isValueDate) {\n    var date = isTypeTime ? parseDate(value) : value;\n\n    if (!isNaN(+date)) {\n      return timeFormat(date, USER_READABLE_DEFUALT_TIME_PATTERN, useUTC);\n    } else if (isValueDate) {\n      return '-';\n    }\n  }\n\n  if (valueType === 'ordinal') {\n    return zrUtil.isStringSafe(value) ? stringToUserReadable(value) : zrUtil.isNumber(value) ? isNumberUserReadable(value) ? value + '' : '-' : '-';\n  }\n\n  var numericResult = numericToNumber(value);\n  return isNumberUserReadable(numericResult) ? addCommas(numericResult) : zrUtil.isStringSafe(value) ? stringToUserReadable(value) : '-';\n}\nvar TPL_VAR_ALIAS = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];\n\nvar wrapVar = function (varName, seriesIdx) {\n  return '{' + varName + (seriesIdx == null ? '' : seriesIdx) + '}';\n};\n\nexport function formatTpl(tpl, paramsList, encode) {\n  if (!zrUtil.isArray(paramsList)) {\n    paramsList = [paramsList];\n  }\n\n  var seriesLen = paramsList.length;\n\n  if (!seriesLen) {\n    return '';\n  }\n\n  var $vars = paramsList[0].$vars || [];\n\n  for (var i = 0; i < $vars.length; i++) {\n    var alias = TPL_VAR_ALIAS[i];\n    tpl = tpl.replace(wrapVar(alias), wrapVar(alias, 0));\n  }\n\n  for (var seriesIdx = 0; seriesIdx < seriesLen; seriesIdx++) {\n    for (var k = 0; k < $vars.length; k++) {\n      var val = paramsList[seriesIdx][$vars[k]];\n      tpl = tpl.replace(wrapVar(TPL_VAR_ALIAS[k], seriesIdx), encode ? encodeHTML(val) : val);\n    }\n  }\n\n  return tpl;\n}\nexport function formatTplSimple(tpl, param, encode) {\n  zrUtil.each(param, function (value, key) {\n    tpl = tpl.replace('{' + key + '}', encode ? encodeHTML(value) : value);\n  });\n  return tpl;\n}\nexport function getTooltipMarker(inOpt, extraCssText) {\n  var opt = zrUtil.isString(inOpt) ? {\n    color: inOpt,\n    extraCssText: extraCssText\n  } : inOpt || {};\n  var color = opt.color;\n  var type = opt.type;\n  extraCssText = opt.extraCssText;\n  var renderMode = opt.renderMode || 'html';\n\n  if (!color) {\n    return '';\n  }\n\n  if (renderMode === 'html') {\n    return type === 'subItem' ? '<span style=\"display:inline-block;vertical-align:middle;margin-right:8px;margin-left:3px;' + 'border-radius:4px;width:4px;height:4px;background-color:' + encodeHTML(color) + ';' + (extraCssText || '') + '\"></span>' : '<span style=\"display:inline-block;margin-right:4px;' + 'border-radius:10px;width:10px;height:10px;background-color:' + encodeHTML(color) + ';' + (extraCssText || '') + '\"></span>';\n  } else {\n    var markerId = opt.markerId || 'markerX';\n    return {\n      renderMode: renderMode,\n      content: '{' + markerId + '|}  ',\n      style: type === 'subItem' ? {\n        width: 4,\n        height: 4,\n        borderRadius: 2,\n        backgroundColor: color\n      } : {\n        width: 10,\n        height: 10,\n        borderRadius: 5,\n        backgroundColor: color\n      }\n    };\n  }\n}\nexport function formatTime(tpl, value, isUTC) {\n  if (process.env.NODE_ENV !== 'production') {\n    deprecateReplaceLog('echarts.format.formatTime', 'echarts.time.format');\n  }\n\n  if (tpl === 'week' || tpl === 'month' || tpl === 'quarter' || tpl === 'half-year' || tpl === 'year') {\n    tpl = 'MM-dd\\nyyyy';\n  }\n\n  var date = parseDate(value);\n  var utc = isUTC ? 'UTC' : '';\n  var y = date['get' + utc + 'FullYear']();\n  var M = date['get' + utc + 'Month']() + 1;\n  var d = date['get' + utc + 'Date']();\n  var h = date['get' + utc + 'Hours']();\n  var m = date['get' + utc + 'Minutes']();\n  var s = date['get' + utc + 'Seconds']();\n  var S = date['get' + utc + 'Milliseconds']();\n  tpl = tpl.replace('MM', pad(M, 2)).replace('M', M).replace('yyyy', y).replace('yy', y % 100 + '').replace('dd', pad(d, 2)).replace('d', d).replace('hh', pad(h, 2)).replace('h', h).replace('mm', pad(m, 2)).replace('m', m).replace('ss', pad(s, 2)).replace('s', s).replace('SSS', pad(S, 3));\n  return tpl;\n}\nexport function capitalFirst(str) {\n  return str ? str.charAt(0).toUpperCase() + str.substr(1) : str;\n}\nexport function convertToColorString(color, defaultColor) {\n  defaultColor = defaultColor || 'transparent';\n  return zrUtil.isString(color) ? color : zrUtil.isObject(color) ? color.colorStops && (color.colorStops[0] || {}).color || defaultColor : defaultColor;\n}\nexport { truncateText } from 'zrender/lib/graphic/helper/parseText';\nexport function windowOpen(link, target) {\n  if (target === '_blank' || target === 'blank') {\n    var blank = window.open();\n    blank.opener = null;\n    blank.location.href = link;\n  } else {\n    window.open(link, target);\n  }\n}\nexport { getTextRect } from '../legacy/getTextRect';","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { parsePercent } from './number';\nimport * as formatUtil from './format';\nvar each = zrUtil.each;\nexport var LOCATION_PARAMS = ['left', 'right', 'top', 'bottom', 'width', 'height'];\nexport var HV_NAMES = [['width', 'left', 'right'], ['height', 'top', 'bottom']];\n\nfunction boxLayout(orient, group, gap, maxWidth, maxHeight) {\n  var x = 0;\n  var y = 0;\n\n  if (maxWidth == null) {\n    maxWidth = Infinity;\n  }\n\n  if (maxHeight == null) {\n    maxHeight = Infinity;\n  }\n\n  var currentLineMaxSize = 0;\n  group.eachChild(function (child, idx) {\n    var rect = child.getBoundingRect();\n    var nextChild = group.childAt(idx + 1);\n    var nextChildRect = nextChild && nextChild.getBoundingRect();\n    var nextX;\n    var nextY;\n\n    if (orient === 'horizontal') {\n      var moveX = rect.width + (nextChildRect ? -nextChildRect.x + rect.x : 0);\n      nextX = x + moveX;\n\n      if (nextX > maxWidth || child.newline) {\n        x = 0;\n        nextX = moveX;\n        y += currentLineMaxSize + gap;\n        currentLineMaxSize = rect.height;\n      } else {\n        currentLineMaxSize = Math.max(currentLineMaxSize, rect.height);\n      }\n    } else {\n      var moveY = rect.height + (nextChildRect ? -nextChildRect.y + rect.y : 0);\n      nextY = y + moveY;\n\n      if (nextY > maxHeight || child.newline) {\n        x += currentLineMaxSize + gap;\n        y = 0;\n        nextY = moveY;\n        currentLineMaxSize = rect.width;\n      } else {\n        currentLineMaxSize = Math.max(currentLineMaxSize, rect.width);\n      }\n    }\n\n    if (child.newline) {\n      return;\n    }\n\n    child.x = x;\n    child.y = y;\n    child.markRedraw();\n    orient === 'horizontal' ? x = nextX + gap : y = nextY + gap;\n  });\n}\n\nexport var box = boxLayout;\nexport var vbox = zrUtil.curry(boxLayout, 'vertical');\nexport var hbox = zrUtil.curry(boxLayout, 'horizontal');\nexport function getAvailableSize(positionInfo, containerRect, margin) {\n  var containerWidth = containerRect.width;\n  var containerHeight = containerRect.height;\n  var x = parsePercent(positionInfo.left, containerWidth);\n  var y = parsePercent(positionInfo.top, containerHeight);\n  var x2 = parsePercent(positionInfo.right, containerWidth);\n  var y2 = parsePercent(positionInfo.bottom, containerHeight);\n  (isNaN(x) || isNaN(parseFloat(positionInfo.left))) && (x = 0);\n  (isNaN(x2) || isNaN(parseFloat(positionInfo.right))) && (x2 = containerWidth);\n  (isNaN(y) || isNaN(parseFloat(positionInfo.top))) && (y = 0);\n  (isNaN(y2) || isNaN(parseFloat(positionInfo.bottom))) && (y2 = containerHeight);\n  margin = formatUtil.normalizeCssArray(margin || 0);\n  return {\n    width: Math.max(x2 - x - margin[1] - margin[3], 0),\n    height: Math.max(y2 - y - margin[0] - margin[2], 0)\n  };\n}\nexport function getLayoutRect(positionInfo, containerRect, margin) {\n  margin = formatUtil.normalizeCssArray(margin || 0);\n  var containerWidth = containerRect.width;\n  var containerHeight = containerRect.height;\n  var left = parsePercent(positionInfo.left, containerWidth);\n  var top = parsePercent(positionInfo.top, containerHeight);\n  var right = parsePercent(positionInfo.right, containerWidth);\n  var bottom = parsePercent(positionInfo.bottom, containerHeight);\n  var width = parsePercent(positionInfo.width, containerWidth);\n  var height = parsePercent(positionInfo.height, containerHeight);\n  var verticalMargin = margin[2] + margin[0];\n  var horizontalMargin = margin[1] + margin[3];\n  var aspect = positionInfo.aspect;\n\n  if (isNaN(width)) {\n    width = containerWidth - right - horizontalMargin - left;\n  }\n\n  if (isNaN(height)) {\n    height = containerHeight - bottom - verticalMargin - top;\n  }\n\n  if (aspect != null) {\n    if (isNaN(width) && isNaN(height)) {\n      if (aspect > containerWidth / containerHeight) {\n        width = containerWidth * 0.8;\n      } else {\n        height = containerHeight * 0.8;\n      }\n    }\n\n    if (isNaN(width)) {\n      width = aspect * height;\n    }\n\n    if (isNaN(height)) {\n      height = width / aspect;\n    }\n  }\n\n  if (isNaN(left)) {\n    left = containerWidth - right - width - horizontalMargin;\n  }\n\n  if (isNaN(top)) {\n    top = containerHeight - bottom - height - verticalMargin;\n  }\n\n  switch (positionInfo.left || positionInfo.right) {\n    case 'center':\n      left = containerWidth / 2 - width / 2 - margin[3];\n      break;\n\n    case 'right':\n      left = containerWidth - width - horizontalMargin;\n      break;\n  }\n\n  switch (positionInfo.top || positionInfo.bottom) {\n    case 'middle':\n    case 'center':\n      top = containerHeight / 2 - height / 2 - margin[0];\n      break;\n\n    case 'bottom':\n      top = containerHeight - height - verticalMargin;\n      break;\n  }\n\n  left = left || 0;\n  top = top || 0;\n\n  if (isNaN(width)) {\n    width = containerWidth - horizontalMargin - left - (right || 0);\n  }\n\n  if (isNaN(height)) {\n    height = containerHeight - verticalMargin - top - (bottom || 0);\n  }\n\n  var rect = new BoundingRect(left + margin[3], top + margin[0], width, height);\n  rect.margin = margin;\n  return rect;\n}\nexport function positionElement(el, positionInfo, containerRect, margin, opt) {\n  var h = !opt || !opt.hv || opt.hv[0];\n  var v = !opt || !opt.hv || opt.hv[1];\n  var boundingMode = opt && opt.boundingMode || 'all';\n\n  if (!h && !v) {\n    return;\n  }\n\n  var rect;\n\n  if (boundingMode === 'raw') {\n    rect = el.type === 'group' ? new BoundingRect(0, 0, +positionInfo.width || 0, +positionInfo.height || 0) : el.getBoundingRect();\n  } else {\n    rect = el.getBoundingRect();\n\n    if (el.needLocalTransform()) {\n      var transform = el.getLocalTransform();\n      rect = rect.clone();\n      rect.applyTransform(transform);\n    }\n  }\n\n  var layoutRect = getLayoutRect(zrUtil.defaults({\n    width: rect.width,\n    height: rect.height\n  }, positionInfo), containerRect, margin);\n  var dx = h ? layoutRect.x - rect.x : 0;\n  var dy = v ? layoutRect.y - rect.y : 0;\n\n  if (boundingMode === 'raw') {\n    el.x = dx;\n    el.y = dy;\n  } else {\n    el.x += dx;\n    el.y += dy;\n  }\n\n  el.markRedraw();\n}\nexport function sizeCalculable(option, hvIdx) {\n  return option[HV_NAMES[hvIdx][0]] != null || option[HV_NAMES[hvIdx][1]] != null && option[HV_NAMES[hvIdx][2]] != null;\n}\nexport function fetchLayoutMode(ins) {\n  var layoutMode = ins.layoutMode || ins.constructor.layoutMode;\n  return zrUtil.isObject(layoutMode) ? layoutMode : layoutMode ? {\n    type: layoutMode\n  } : null;\n}\nexport function mergeLayoutParam(targetOption, newOption, opt) {\n  var ignoreSize = opt && opt.ignoreSize;\n  !zrUtil.isArray(ignoreSize) && (ignoreSize = [ignoreSize, ignoreSize]);\n  var hResult = merge(HV_NAMES[0], 0);\n  var vResult = merge(HV_NAMES[1], 1);\n  copy(HV_NAMES[0], targetOption, hResult);\n  copy(HV_NAMES[1], targetOption, vResult);\n\n  function merge(names, hvIdx) {\n    var newParams = {};\n    var newValueCount = 0;\n    var merged = {};\n    var mergedValueCount = 0;\n    var enoughParamNumber = 2;\n    each(names, function (name) {\n      merged[name] = targetOption[name];\n    });\n    each(names, function (name) {\n      hasProp(newOption, name) && (newParams[name] = merged[name] = newOption[name]);\n      hasValue(newParams, name) && newValueCount++;\n      hasValue(merged, name) && mergedValueCount++;\n    });\n\n    if (ignoreSize[hvIdx]) {\n      if (hasValue(newOption, names[1])) {\n        merged[names[2]] = null;\n      } else if (hasValue(newOption, names[2])) {\n        merged[names[1]] = null;\n      }\n\n      return merged;\n    }\n\n    if (mergedValueCount === enoughParamNumber || !newValueCount) {\n      return merged;\n    } else if (newValueCount >= enoughParamNumber) {\n      return newParams;\n    } else {\n      for (var i = 0; i < names.length; i++) {\n        var name_1 = names[i];\n\n        if (!hasProp(newParams, name_1) && hasProp(targetOption, name_1)) {\n          newParams[name_1] = targetOption[name_1];\n          break;\n        }\n      }\n\n      return newParams;\n    }\n  }\n\n  function hasProp(obj, name) {\n    return obj.hasOwnProperty(name);\n  }\n\n  function hasValue(obj, name) {\n    return obj[name] != null && obj[name] !== 'auto';\n  }\n\n  function copy(names, target, source) {\n    each(names, function (name) {\n      target[name] = source[name];\n    });\n  }\n}\nexport function getLayoutParams(source) {\n  return copyLayoutParams({}, source);\n}\nexport function copyLayoutParams(target, source) {\n  source && target && each(LOCATION_PARAMS, function (name) {\n    source.hasOwnProperty(name) && (target[name] = source[name]);\n  });\n  return target;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Model from './Model';\nimport * as componentUtil from '../util/component';\nimport { enableClassManagement, parseClassType, isExtendedClass, mountExtend } from '../util/clazz';\nimport { makeInner, queryReferringComponents } from '../util/model';\nimport * as layout from '../util/layout';\nvar inner = makeInner();\n\nvar ComponentModel = function (_super) {\n  __extends(ComponentModel, _super);\n\n  function ComponentModel(option, parentModel, ecModel) {\n    var _this = _super.call(this, option, parentModel, ecModel) || this;\n\n    _this.uid = componentUtil.getUID('ec_cpt_model');\n    return _this;\n  }\n\n  ComponentModel.prototype.init = function (option, parentModel, ecModel) {\n    this.mergeDefaultAndTheme(option, ecModel);\n  };\n\n  ComponentModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n    var layoutMode = layout.fetchLayoutMode(this);\n    var inputPositionParams = layoutMode ? layout.getLayoutParams(option) : {};\n    var themeModel = ecModel.getTheme();\n    zrUtil.merge(option, themeModel.get(this.mainType));\n    zrUtil.merge(option, this.getDefaultOption());\n\n    if (layoutMode) {\n      layout.mergeLayoutParam(option, inputPositionParams, layoutMode);\n    }\n  };\n\n  ComponentModel.prototype.mergeOption = function (option, ecModel) {\n    zrUtil.merge(this.option, option, true);\n    var layoutMode = layout.fetchLayoutMode(this);\n\n    if (layoutMode) {\n      layout.mergeLayoutParam(this.option, option, layoutMode);\n    }\n  };\n\n  ComponentModel.prototype.optionUpdated = function (newCptOption, isInit) {};\n\n  ComponentModel.prototype.getDefaultOption = function () {\n    var ctor = this.constructor;\n\n    if (!isExtendedClass(ctor)) {\n      return ctor.defaultOption;\n    }\n\n    var fields = inner(this);\n\n    if (!fields.defaultOption) {\n      var optList = [];\n      var clz = ctor;\n\n      while (clz) {\n        var opt = clz.prototype.defaultOption;\n        opt && optList.push(opt);\n        clz = clz.superClass;\n      }\n\n      var defaultOption = {};\n\n      for (var i = optList.length - 1; i >= 0; i--) {\n        defaultOption = zrUtil.merge(defaultOption, optList[i], true);\n      }\n\n      fields.defaultOption = defaultOption;\n    }\n\n    return fields.defaultOption;\n  };\n\n  ComponentModel.prototype.getReferringComponents = function (mainType, opt) {\n    var indexKey = mainType + 'Index';\n    var idKey = mainType + 'Id';\n    return queryReferringComponents(this.ecModel, mainType, {\n      index: this.get(indexKey, true),\n      id: this.get(idKey, true)\n    }, opt);\n  };\n\n  ComponentModel.prototype.getBoxLayoutParams = function () {\n    var boxLayoutModel = this;\n    return {\n      left: boxLayoutModel.get('left'),\n      top: boxLayoutModel.get('top'),\n      right: boxLayoutModel.get('right'),\n      bottom: boxLayoutModel.get('bottom'),\n      width: boxLayoutModel.get('width'),\n      height: boxLayoutModel.get('height')\n    };\n  };\n\n  ComponentModel.protoInitialize = function () {\n    var proto = ComponentModel.prototype;\n    proto.type = 'component';\n    proto.id = '';\n    proto.name = '';\n    proto.mainType = '';\n    proto.subType = '';\n    proto.componentIndex = 0;\n  }();\n\n  return ComponentModel;\n}(Model);\n\nmountExtend(ComponentModel, Model);\nenableClassManagement(ComponentModel);\ncomponentUtil.enableSubTypeDefaulter(ComponentModel);\ncomponentUtil.enableTopologicalTravel(ComponentModel, getDependencies);\n\nfunction getDependencies(componentType) {\n  var deps = [];\n  zrUtil.each(ComponentModel.getClassesByMainType(componentType), function (clz) {\n    deps = deps.concat(clz.dependencies || clz.prototype.dependencies || []);\n  });\n  deps = zrUtil.map(deps, function (type) {\n    return parseClassType(type).main;\n  });\n\n  if (componentType !== 'dataset' && zrUtil.indexOf(deps, 'dataset') <= 0) {\n    deps.unshift('dataset');\n  }\n\n  return deps;\n}\n\nexport default ComponentModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar platform = '';\n\nif (typeof navigator !== 'undefined') {\n  platform = navigator.platform || '';\n}\n\nvar decalColor = 'rgba(0, 0, 0, 0.2)';\nexport default {\n  darkMode: 'auto',\n  color: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],\n  gradientColor: ['#f6efa6', '#d88273', '#bf444c'],\n  aria: {\n    decal: {\n      decals: [{\n        color: decalColor,\n        dashArrayX: [1, 0],\n        dashArrayY: [2, 5],\n        symbolSize: 1,\n        rotation: Math.PI / 6\n      }, {\n        color: decalColor,\n        symbol: 'circle',\n        dashArrayX: [[8, 8], [0, 8, 8, 0]],\n        dashArrayY: [6, 0],\n        symbolSize: 0.8\n      }, {\n        color: decalColor,\n        dashArrayX: [1, 0],\n        dashArrayY: [4, 3],\n        rotation: -Math.PI / 4\n      }, {\n        color: decalColor,\n        dashArrayX: [[6, 6], [0, 6, 6, 0]],\n        dashArrayY: [6, 0]\n      }, {\n        color: decalColor,\n        dashArrayX: [[1, 0], [1, 6]],\n        dashArrayY: [1, 0, 6, 0],\n        rotation: Math.PI / 4\n      }, {\n        color: decalColor,\n        symbol: 'triangle',\n        dashArrayX: [[9, 9], [0, 9, 9, 0]],\n        dashArrayY: [7, 2],\n        symbolSize: 0.75\n      }]\n    }\n  },\n  textStyle: {\n    fontFamily: platform.match(/^Win/) ? 'Microsoft YaHei' : 'sans-serif',\n    fontSize: 12,\n    fontStyle: 'normal',\n    fontWeight: 'normal'\n  },\n  blendMode: null,\n  stateAnimation: {\n    duration: 300,\n    easing: 'cubicOut'\n  },\n  animation: 'auto',\n  animationDuration: 1000,\n  animationDurationUpdate: 500,\n  animationEasing: 'cubicInOut',\n  animationEasingUpdate: 'cubicInOut',\n  animationThreshold: 2000,\n  progressiveThreshold: 3000,\n  progressive: 400,\n  hoverLayerThreshold: 3000,\n  useUTC: false\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap } from 'zrender/lib/core/util';\n;\n;\n;\nexport var VISUAL_DIMENSIONS = createHashMap(['tooltip', 'label', 'itemName', 'itemId', 'seriesName']);\nexport var SOURCE_FORMAT_ORIGINAL = 'original';\nexport var SOURCE_FORMAT_ARRAY_ROWS = 'arrayRows';\nexport var SOURCE_FORMAT_OBJECT_ROWS = 'objectRows';\nexport var SOURCE_FORMAT_KEYED_COLUMNS = 'keyedColumns';\nexport var SOURCE_FORMAT_TYPED_ARRAY = 'typedArray';\nexport var SOURCE_FORMAT_UNKNOWN = 'unknown';\nexport var SERIES_LAYOUT_BY_COLUMN = 'column';\nexport var SERIES_LAYOUT_BY_ROW = 'row';\n;\n;\n;\n;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner, getDataItemValue, queryReferringComponents, SINGLE_REFERRING } from '../../util/model';\nimport { createHashMap, each, isArray, isString, isObject, isTypedArray } from 'zrender/lib/core/util';\nimport { SOURCE_FORMAT_ORIGINAL, SOURCE_FORMAT_ARRAY_ROWS, SOURCE_FORMAT_OBJECT_ROWS, SERIES_LAYOUT_BY_ROW, SOURCE_FORMAT_KEYED_COLUMNS } from '../../util/types';\nexport var BE_ORDINAL = {\n  Must: 1,\n  Might: 2,\n  Not: 3\n};\nvar innerGlobalModel = makeInner();\nexport function resetSourceDefaulter(ecModel) {\n  innerGlobalModel(ecModel).datasetMap = createHashMap();\n}\nexport function makeSeriesEncodeForAxisCoordSys(coordDimensions, seriesModel, source) {\n  var encode = {};\n  var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\n\n  if (!datasetModel || !coordDimensions) {\n    return encode;\n  }\n\n  var encodeItemName = [];\n  var encodeSeriesName = [];\n  var ecModel = seriesModel.ecModel;\n  var datasetMap = innerGlobalModel(ecModel).datasetMap;\n  var key = datasetModel.uid + '_' + source.seriesLayoutBy;\n  var baseCategoryDimIndex;\n  var categoryWayValueDimStart;\n  coordDimensions = coordDimensions.slice();\n  each(coordDimensions, function (coordDimInfoLoose, coordDimIdx) {\n    var coordDimInfo = isObject(coordDimInfoLoose) ? coordDimInfoLoose : coordDimensions[coordDimIdx] = {\n      name: coordDimInfoLoose\n    };\n\n    if (coordDimInfo.type === 'ordinal' && baseCategoryDimIndex == null) {\n      baseCategoryDimIndex = coordDimIdx;\n      categoryWayValueDimStart = getDataDimCountOnCoordDim(coordDimInfo);\n    }\n\n    encode[coordDimInfo.name] = [];\n  });\n  var datasetRecord = datasetMap.get(key) || datasetMap.set(key, {\n    categoryWayDim: categoryWayValueDimStart,\n    valueWayDim: 0\n  });\n  each(coordDimensions, function (coordDimInfo, coordDimIdx) {\n    var coordDimName = coordDimInfo.name;\n    var count = getDataDimCountOnCoordDim(coordDimInfo);\n\n    if (baseCategoryDimIndex == null) {\n      var start = datasetRecord.valueWayDim;\n      pushDim(encode[coordDimName], start, count);\n      pushDim(encodeSeriesName, start, count);\n      datasetRecord.valueWayDim += count;\n    } else if (baseCategoryDimIndex === coordDimIdx) {\n      pushDim(encode[coordDimName], 0, count);\n      pushDim(encodeItemName, 0, count);\n    } else {\n      var start = datasetRecord.categoryWayDim;\n      pushDim(encode[coordDimName], start, count);\n      pushDim(encodeSeriesName, start, count);\n      datasetRecord.categoryWayDim += count;\n    }\n  });\n\n  function pushDim(dimIdxArr, idxFrom, idxCount) {\n    for (var i = 0; i < idxCount; i++) {\n      dimIdxArr.push(idxFrom + i);\n    }\n  }\n\n  function getDataDimCountOnCoordDim(coordDimInfo) {\n    var dimsDef = coordDimInfo.dimsDef;\n    return dimsDef ? dimsDef.length : 1;\n  }\n\n  encodeItemName.length && (encode.itemName = encodeItemName);\n  encodeSeriesName.length && (encode.seriesName = encodeSeriesName);\n  return encode;\n}\nexport function makeSeriesEncodeForNameBased(seriesModel, source, dimCount) {\n  var encode = {};\n  var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\n\n  if (!datasetModel) {\n    return encode;\n  }\n\n  var sourceFormat = source.sourceFormat;\n  var dimensionsDefine = source.dimensionsDefine;\n  var potentialNameDimIndex;\n\n  if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS || sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n    each(dimensionsDefine, function (dim, idx) {\n      if ((isObject(dim) ? dim.name : dim) === 'name') {\n        potentialNameDimIndex = idx;\n      }\n    });\n  }\n\n  var idxResult = function () {\n    var idxRes0 = {};\n    var idxRes1 = {};\n    var guessRecords = [];\n\n    for (var i = 0, len = Math.min(5, dimCount); i < len; i++) {\n      var guessResult = doGuessOrdinal(source.data, sourceFormat, source.seriesLayoutBy, dimensionsDefine, source.startIndex, i);\n      guessRecords.push(guessResult);\n      var isPureNumber = guessResult === BE_ORDINAL.Not;\n\n      if (isPureNumber && idxRes0.v == null && i !== potentialNameDimIndex) {\n        idxRes0.v = i;\n      }\n\n      if (idxRes0.n == null || idxRes0.n === idxRes0.v || !isPureNumber && guessRecords[idxRes0.n] === BE_ORDINAL.Not) {\n        idxRes0.n = i;\n      }\n\n      if (fulfilled(idxRes0) && guessRecords[idxRes0.n] !== BE_ORDINAL.Not) {\n        return idxRes0;\n      }\n\n      if (!isPureNumber) {\n        if (guessResult === BE_ORDINAL.Might && idxRes1.v == null && i !== potentialNameDimIndex) {\n          idxRes1.v = i;\n        }\n\n        if (idxRes1.n == null || idxRes1.n === idxRes1.v) {\n          idxRes1.n = i;\n        }\n      }\n    }\n\n    function fulfilled(idxResult) {\n      return idxResult.v != null && idxResult.n != null;\n    }\n\n    return fulfilled(idxRes0) ? idxRes0 : fulfilled(idxRes1) ? idxRes1 : null;\n  }();\n\n  if (idxResult) {\n    encode.value = [idxResult.v];\n    var nameDimIndex = potentialNameDimIndex != null ? potentialNameDimIndex : idxResult.n;\n    encode.itemName = [nameDimIndex];\n    encode.seriesName = [nameDimIndex];\n  }\n\n  return encode;\n}\nexport function querySeriesUpstreamDatasetModel(seriesModel) {\n  var thisData = seriesModel.get('data', true);\n\n  if (!thisData) {\n    return queryReferringComponents(seriesModel.ecModel, 'dataset', {\n      index: seriesModel.get('datasetIndex', true),\n      id: seriesModel.get('datasetId', true)\n    }, SINGLE_REFERRING).models[0];\n  }\n}\nexport function queryDatasetUpstreamDatasetModels(datasetModel) {\n  if (!datasetModel.get('transform', true) && !datasetModel.get('fromTransformResult', true)) {\n    return [];\n  }\n\n  return queryReferringComponents(datasetModel.ecModel, 'dataset', {\n    index: datasetModel.get('fromDatasetIndex', true),\n    id: datasetModel.get('fromDatasetId', true)\n  }, SINGLE_REFERRING).models;\n}\nexport function guessOrdinal(source, dimIndex) {\n  return doGuessOrdinal(source.data, source.sourceFormat, source.seriesLayoutBy, source.dimensionsDefine, source.startIndex, dimIndex);\n}\n\nfunction doGuessOrdinal(data, sourceFormat, seriesLayoutBy, dimensionsDefine, startIndex, dimIndex) {\n  var result;\n  var maxLoop = 5;\n\n  if (isTypedArray(data)) {\n    return BE_ORDINAL.Not;\n  }\n\n  var dimName;\n  var dimType;\n\n  if (dimensionsDefine) {\n    var dimDefItem = dimensionsDefine[dimIndex];\n\n    if (isObject(dimDefItem)) {\n      dimName = dimDefItem.name;\n      dimType = dimDefItem.type;\n    } else if (isString(dimDefItem)) {\n      dimName = dimDefItem;\n    }\n  }\n\n  if (dimType != null) {\n    return dimType === 'ordinal' ? BE_ORDINAL.Must : BE_ORDINAL.Not;\n  }\n\n  if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n    var dataArrayRows = data;\n\n    if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\n      var sample = dataArrayRows[dimIndex];\n\n      for (var i = 0; i < (sample || []).length && i < maxLoop; i++) {\n        if ((result = detectValue(sample[startIndex + i])) != null) {\n          return result;\n        }\n      }\n    } else {\n      for (var i = 0; i < dataArrayRows.length && i < maxLoop; i++) {\n        var row = dataArrayRows[startIndex + i];\n\n        if (row && (result = detectValue(row[dimIndex])) != null) {\n          return result;\n        }\n      }\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n    var dataObjectRows = data;\n\n    if (!dimName) {\n      return BE_ORDINAL.Not;\n    }\n\n    for (var i = 0; i < dataObjectRows.length && i < maxLoop; i++) {\n      var item = dataObjectRows[i];\n\n      if (item && (result = detectValue(item[dimName])) != null) {\n        return result;\n      }\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n    var dataKeyedColumns = data;\n\n    if (!dimName) {\n      return BE_ORDINAL.Not;\n    }\n\n    var sample = dataKeyedColumns[dimName];\n\n    if (!sample || isTypedArray(sample)) {\n      return BE_ORDINAL.Not;\n    }\n\n    for (var i = 0; i < sample.length && i < maxLoop; i++) {\n      if ((result = detectValue(sample[i])) != null) {\n        return result;\n      }\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n    var dataOriginal = data;\n\n    for (var i = 0; i < dataOriginal.length && i < maxLoop; i++) {\n      var item = dataOriginal[i];\n      var val = getDataItemValue(item);\n\n      if (!isArray(val)) {\n        return BE_ORDINAL.Not;\n      }\n\n      if ((result = detectValue(val[dimIndex])) != null) {\n        return result;\n      }\n    }\n  }\n\n  function detectValue(val) {\n    var beStr = isString(val);\n\n    if (val != null && isFinite(val) && val !== '') {\n      return beStr ? BE_ORDINAL.Might : BE_ORDINAL.Not;\n    } else if (beStr && val !== '-') {\n      return BE_ORDINAL.Must;\n    }\n  }\n\n  return BE_ORDINAL.Not;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, assert } from 'zrender/lib/core/util';\nimport { isComponentIdInternal } from '../util/model';\nvar internalOptionCreatorMap = createHashMap();\nexport function registerInternalOptionCreator(mainType, creator) {\n  assert(internalOptionCreatorMap.get(mainType) == null && creator);\n  internalOptionCreatorMap.set(mainType, creator);\n}\nexport function concatInternalOptions(ecModel, mainType, newCmptOptionList) {\n  var internalOptionCreator = internalOptionCreatorMap.get(mainType);\n\n  if (!internalOptionCreator) {\n    return newCmptOptionList;\n  }\n\n  var internalOptions = internalOptionCreator(ecModel);\n\n  if (!internalOptions) {\n    return newCmptOptionList;\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    for (var i = 0; i < internalOptions.length; i++) {\n      assert(isComponentIdInternal(internalOptions[i]));\n    }\n  }\n\n  return newCmptOptionList.concat(internalOptions);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner, normalizeToArray } from '../../util/model';\nvar innerColor = makeInner();\nvar innerDecal = makeInner();\n\nvar PaletteMixin = function () {\n  function PaletteMixin() {}\n\n  PaletteMixin.prototype.getColorFromPalette = function (name, scope, requestNum) {\n    var defaultPalette = normalizeToArray(this.get('color', true));\n    var layeredPalette = this.get('colorLayer', true);\n    return getFromPalette(this, innerColor, defaultPalette, layeredPalette, name, scope, requestNum);\n  };\n\n  PaletteMixin.prototype.clearColorPalette = function () {\n    clearPalette(this, innerColor);\n  };\n\n  return PaletteMixin;\n}();\n\nexport function getDecalFromPalette(ecModel, name, scope, requestNum) {\n  var defaultDecals = normalizeToArray(ecModel.get(['aria', 'decal', 'decals']));\n  return getFromPalette(ecModel, innerDecal, defaultDecals, null, name, scope, requestNum);\n}\n\nfunction getNearestPalette(palettes, requestColorNum) {\n  var paletteNum = palettes.length;\n\n  for (var i = 0; i < paletteNum; i++) {\n    if (palettes[i].length > requestColorNum) {\n      return palettes[i];\n    }\n  }\n\n  return palettes[paletteNum - 1];\n}\n\nfunction getFromPalette(that, inner, defaultPalette, layeredPalette, name, scope, requestNum) {\n  scope = scope || that;\n  var scopeFields = inner(scope);\n  var paletteIdx = scopeFields.paletteIdx || 0;\n  var paletteNameMap = scopeFields.paletteNameMap = scopeFields.paletteNameMap || {};\n\n  if (paletteNameMap.hasOwnProperty(name)) {\n    return paletteNameMap[name];\n  }\n\n  var palette = requestNum == null || !layeredPalette ? defaultPalette : getNearestPalette(layeredPalette, requestNum);\n  palette = palette || defaultPalette;\n\n  if (!palette || !palette.length) {\n    return;\n  }\n\n  var pickedPaletteItem = palette[paletteIdx];\n\n  if (name) {\n    paletteNameMap[name] = pickedPaletteItem;\n  }\n\n  scopeFields.paletteIdx = (paletteIdx + 1) % palette.length;\n  return pickedPaletteItem;\n}\n\nfunction clearPalette(that, inner) {\n  inner(that).paletteIdx = 0;\n  inner(that).paletteNameMap = {};\n}\n\nexport { PaletteMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { each, filter, isArray, isObject, isString, createHashMap, assert, clone, merge, extend, mixin, isFunction } from 'zrender/lib/core/util';\nimport * as modelUtil from '../util/model';\nimport Model from './Model';\nimport ComponentModel from './Component';\nimport globalDefault from './globalDefault';\nimport { resetSourceDefaulter } from '../data/helper/sourceHelper';\nimport { concatInternalOptions } from './internalComponentCreator';\nimport { PaletteMixin } from './mixin/palette';\nvar reCreateSeriesIndices;\nvar assertSeriesInitialized;\nvar initBase;\nvar OPTION_INNER_KEY = '\\0_ec_inner';\nvar OPTION_INNER_VALUE = 1;\n\nvar GlobalModel = function (_super) {\n  __extends(GlobalModel, _super);\n\n  function GlobalModel() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  GlobalModel.prototype.init = function (option, parentModel, ecModel, theme, locale, optionManager) {\n    theme = theme || {};\n    this.option = null;\n    this._theme = new Model(theme);\n    this._locale = new Model(locale);\n    this._optionManager = optionManager;\n  };\n\n  GlobalModel.prototype.setOption = function (option, opts, optionPreprocessorFuncs) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(option != null, 'option is null/undefined');\n      assert(option[OPTION_INNER_KEY] !== OPTION_INNER_VALUE, 'please use chart.getOption()');\n    }\n\n    var innerOpt = normalizeSetOptionInput(opts);\n\n    this._optionManager.setOption(option, optionPreprocessorFuncs, innerOpt);\n\n    this._resetOption(null, innerOpt);\n  };\n\n  GlobalModel.prototype.resetOption = function (type, opt) {\n    return this._resetOption(type, normalizeSetOptionInput(opt));\n  };\n\n  GlobalModel.prototype._resetOption = function (type, opt) {\n    var optionChanged = false;\n    var optionManager = this._optionManager;\n\n    if (!type || type === 'recreate') {\n      var baseOption = optionManager.mountOption(type === 'recreate');\n\n      if (!this.option || type === 'recreate') {\n        initBase(this, baseOption);\n      } else {\n        this.restoreData();\n\n        this._mergeOption(baseOption, opt);\n      }\n\n      optionChanged = true;\n    }\n\n    if (type === 'timeline' || type === 'media') {\n      this.restoreData();\n    }\n\n    if (!type || type === 'recreate' || type === 'timeline') {\n      var timelineOption = optionManager.getTimelineOption(this);\n\n      if (timelineOption) {\n        optionChanged = true;\n\n        this._mergeOption(timelineOption, opt);\n      }\n    }\n\n    if (!type || type === 'recreate' || type === 'media') {\n      var mediaOptions = optionManager.getMediaOption(this);\n\n      if (mediaOptions.length) {\n        each(mediaOptions, function (mediaOption) {\n          optionChanged = true;\n\n          this._mergeOption(mediaOption, opt);\n        }, this);\n      }\n    }\n\n    return optionChanged;\n  };\n\n  GlobalModel.prototype.mergeOption = function (option) {\n    this._mergeOption(option, null);\n  };\n\n  GlobalModel.prototype._mergeOption = function (newOption, opt) {\n    var option = this.option;\n    var componentsMap = this._componentsMap;\n    var componentsCount = this._componentsCount;\n    var newCmptTypes = [];\n    var newCmptTypeMap = createHashMap();\n    var replaceMergeMainTypeMap = opt && opt.replaceMergeMainTypeMap;\n    resetSourceDefaulter(this);\n    each(newOption, function (componentOption, mainType) {\n      if (componentOption == null) {\n        return;\n      }\n\n      if (!ComponentModel.hasClass(mainType)) {\n        option[mainType] = option[mainType] == null ? clone(componentOption) : merge(option[mainType], componentOption, true);\n      } else if (mainType) {\n        newCmptTypes.push(mainType);\n        newCmptTypeMap.set(mainType, true);\n      }\n    });\n\n    if (replaceMergeMainTypeMap) {\n      replaceMergeMainTypeMap.each(function (val, mainTypeInReplaceMerge) {\n        if (ComponentModel.hasClass(mainTypeInReplaceMerge) && !newCmptTypeMap.get(mainTypeInReplaceMerge)) {\n          newCmptTypes.push(mainTypeInReplaceMerge);\n          newCmptTypeMap.set(mainTypeInReplaceMerge, true);\n        }\n      });\n    }\n\n    ComponentModel.topologicalTravel(newCmptTypes, ComponentModel.getAllClassMainTypes(), visitComponent, this);\n\n    function visitComponent(mainType) {\n      var newCmptOptionList = concatInternalOptions(this, mainType, modelUtil.normalizeToArray(newOption[mainType]));\n      var oldCmptList = componentsMap.get(mainType);\n      var mergeMode = !oldCmptList ? 'replaceAll' : replaceMergeMainTypeMap && replaceMergeMainTypeMap.get(mainType) ? 'replaceMerge' : 'normalMerge';\n      var mappingResult = modelUtil.mappingToExists(oldCmptList, newCmptOptionList, mergeMode);\n      modelUtil.setComponentTypeToKeyInfo(mappingResult, mainType, ComponentModel);\n      option[mainType] = null;\n      componentsMap.set(mainType, null);\n      componentsCount.set(mainType, 0);\n      var optionsByMainType = [];\n      var cmptsByMainType = [];\n      var cmptsCountByMainType = 0;\n      each(mappingResult, function (resultItem, index) {\n        var componentModel = resultItem.existing;\n        var newCmptOption = resultItem.newOption;\n\n        if (!newCmptOption) {\n          if (componentModel) {\n            componentModel.mergeOption({}, this);\n            componentModel.optionUpdated({}, false);\n          }\n        } else {\n          var ComponentModelClass = ComponentModel.getClass(mainType, resultItem.keyInfo.subType, true);\n\n          if (componentModel && componentModel.constructor === ComponentModelClass) {\n            componentModel.name = resultItem.keyInfo.name;\n            componentModel.mergeOption(newCmptOption, this);\n            componentModel.optionUpdated(newCmptOption, false);\n          } else {\n            var extraOpt = extend({\n              componentIndex: index\n            }, resultItem.keyInfo);\n            componentModel = new ComponentModelClass(newCmptOption, this, this, extraOpt);\n            extend(componentModel, extraOpt);\n\n            if (resultItem.brandNew) {\n              componentModel.__requireNewView = true;\n            }\n\n            componentModel.init(newCmptOption, this, this);\n            componentModel.optionUpdated(null, true);\n          }\n        }\n\n        if (componentModel) {\n          optionsByMainType.push(componentModel.option);\n          cmptsByMainType.push(componentModel);\n          cmptsCountByMainType++;\n        } else {\n          optionsByMainType.push(void 0);\n          cmptsByMainType.push(void 0);\n        }\n      }, this);\n      option[mainType] = optionsByMainType;\n      componentsMap.set(mainType, cmptsByMainType);\n      componentsCount.set(mainType, cmptsCountByMainType);\n\n      if (mainType === 'series') {\n        reCreateSeriesIndices(this);\n      }\n    }\n\n    if (!this._seriesIndices) {\n      reCreateSeriesIndices(this);\n    }\n  };\n\n  GlobalModel.prototype.getOption = function () {\n    var option = clone(this.option);\n    each(option, function (optInMainType, mainType) {\n      if (ComponentModel.hasClass(mainType)) {\n        var opts = modelUtil.normalizeToArray(optInMainType);\n        var realLen = opts.length;\n        var metNonInner = false;\n\n        for (var i = realLen - 1; i >= 0; i--) {\n          if (opts[i] && !modelUtil.isComponentIdInternal(opts[i])) {\n            metNonInner = true;\n          } else {\n            opts[i] = null;\n            !metNonInner && realLen--;\n          }\n        }\n\n        opts.length = realLen;\n        option[mainType] = opts;\n      }\n    });\n    delete option[OPTION_INNER_KEY];\n    return option;\n  };\n\n  GlobalModel.prototype.getTheme = function () {\n    return this._theme;\n  };\n\n  GlobalModel.prototype.getLocaleModel = function () {\n    return this._locale;\n  };\n\n  GlobalModel.prototype.getLocale = function (localePosition) {\n    var locale = this.getLocaleModel();\n    return locale.get(localePosition);\n  };\n\n  GlobalModel.prototype.setUpdatePayload = function (payload) {\n    this._payload = payload;\n  };\n\n  GlobalModel.prototype.getUpdatePayload = function () {\n    return this._payload;\n  };\n\n  GlobalModel.prototype.getComponent = function (mainType, idx) {\n    var list = this._componentsMap.get(mainType);\n\n    if (list) {\n      var cmpt = list[idx || 0];\n\n      if (cmpt) {\n        return cmpt;\n      } else if (idx == null) {\n        for (var i = 0; i < list.length; i++) {\n          if (list[i]) {\n            return list[i];\n          }\n        }\n      }\n    }\n  };\n\n  GlobalModel.prototype.queryComponents = function (condition) {\n    var mainType = condition.mainType;\n\n    if (!mainType) {\n      return [];\n    }\n\n    var index = condition.index;\n    var id = condition.id;\n    var name = condition.name;\n\n    var cmpts = this._componentsMap.get(mainType);\n\n    if (!cmpts || !cmpts.length) {\n      return [];\n    }\n\n    var result;\n\n    if (index != null) {\n      result = [];\n      each(modelUtil.normalizeToArray(index), function (idx) {\n        cmpts[idx] && result.push(cmpts[idx]);\n      });\n    } else if (id != null) {\n      result = queryByIdOrName('id', id, cmpts);\n    } else if (name != null) {\n      result = queryByIdOrName('name', name, cmpts);\n    } else {\n      result = filter(cmpts, function (cmpt) {\n        return !!cmpt;\n      });\n    }\n\n    return filterBySubType(result, condition);\n  };\n\n  GlobalModel.prototype.findComponents = function (condition) {\n    var query = condition.query;\n    var mainType = condition.mainType;\n    var queryCond = getQueryCond(query);\n    var result = queryCond ? this.queryComponents(queryCond) : filter(this._componentsMap.get(mainType), function (cmpt) {\n      return !!cmpt;\n    });\n    return doFilter(filterBySubType(result, condition));\n\n    function getQueryCond(q) {\n      var indexAttr = mainType + 'Index';\n      var idAttr = mainType + 'Id';\n      var nameAttr = mainType + 'Name';\n      return q && (q[indexAttr] != null || q[idAttr] != null || q[nameAttr] != null) ? {\n        mainType: mainType,\n        index: q[indexAttr],\n        id: q[idAttr],\n        name: q[nameAttr]\n      } : null;\n    }\n\n    function doFilter(res) {\n      return condition.filter ? filter(res, condition.filter) : res;\n    }\n  };\n\n  GlobalModel.prototype.eachComponent = function (mainType, cb, context) {\n    var componentsMap = this._componentsMap;\n\n    if (isFunction(mainType)) {\n      var ctxForAll_1 = cb;\n      var cbForAll_1 = mainType;\n      componentsMap.each(function (cmpts, componentType) {\n        for (var i = 0; cmpts && i < cmpts.length; i++) {\n          var cmpt = cmpts[i];\n          cmpt && cbForAll_1.call(ctxForAll_1, componentType, cmpt, cmpt.componentIndex);\n        }\n      });\n    } else {\n      var cmpts = isString(mainType) ? componentsMap.get(mainType) : isObject(mainType) ? this.findComponents(mainType) : null;\n\n      for (var i = 0; cmpts && i < cmpts.length; i++) {\n        var cmpt = cmpts[i];\n        cmpt && cb.call(context, cmpt, cmpt.componentIndex);\n      }\n    }\n  };\n\n  GlobalModel.prototype.getSeriesByName = function (name) {\n    var nameStr = modelUtil.convertOptionIdName(name, null);\n    return filter(this._componentsMap.get('series'), function (oneSeries) {\n      return !!oneSeries && nameStr != null && oneSeries.name === nameStr;\n    });\n  };\n\n  GlobalModel.prototype.getSeriesByIndex = function (seriesIndex) {\n    return this._componentsMap.get('series')[seriesIndex];\n  };\n\n  GlobalModel.prototype.getSeriesByType = function (subType) {\n    return filter(this._componentsMap.get('series'), function (oneSeries) {\n      return !!oneSeries && oneSeries.subType === subType;\n    });\n  };\n\n  GlobalModel.prototype.getSeries = function () {\n    return filter(this._componentsMap.get('series').slice(), function (oneSeries) {\n      return !!oneSeries;\n    });\n  };\n\n  GlobalModel.prototype.getSeriesCount = function () {\n    return this._componentsCount.get('series');\n  };\n\n  GlobalModel.prototype.eachSeries = function (cb, context) {\n    assertSeriesInitialized(this);\n    each(this._seriesIndices, function (rawSeriesIndex) {\n      var series = this._componentsMap.get('series')[rawSeriesIndex];\n\n      cb.call(context, series, rawSeriesIndex);\n    }, this);\n  };\n\n  GlobalModel.prototype.eachRawSeries = function (cb, context) {\n    each(this._componentsMap.get('series'), function (series) {\n      series && cb.call(context, series, series.componentIndex);\n    });\n  };\n\n  GlobalModel.prototype.eachSeriesByType = function (subType, cb, context) {\n    assertSeriesInitialized(this);\n    each(this._seriesIndices, function (rawSeriesIndex) {\n      var series = this._componentsMap.get('series')[rawSeriesIndex];\n\n      if (series.subType === subType) {\n        cb.call(context, series, rawSeriesIndex);\n      }\n    }, this);\n  };\n\n  GlobalModel.prototype.eachRawSeriesByType = function (subType, cb, context) {\n    return each(this.getSeriesByType(subType), cb, context);\n  };\n\n  GlobalModel.prototype.isSeriesFiltered = function (seriesModel) {\n    assertSeriesInitialized(this);\n    return this._seriesIndicesMap.get(seriesModel.componentIndex) == null;\n  };\n\n  GlobalModel.prototype.getCurrentSeriesIndices = function () {\n    return (this._seriesIndices || []).slice();\n  };\n\n  GlobalModel.prototype.filterSeries = function (cb, context) {\n    assertSeriesInitialized(this);\n    var newSeriesIndices = [];\n    each(this._seriesIndices, function (seriesRawIdx) {\n      var series = this._componentsMap.get('series')[seriesRawIdx];\n\n      cb.call(context, series, seriesRawIdx) && newSeriesIndices.push(seriesRawIdx);\n    }, this);\n    this._seriesIndices = newSeriesIndices;\n    this._seriesIndicesMap = createHashMap(newSeriesIndices);\n  };\n\n  GlobalModel.prototype.restoreData = function (payload) {\n    reCreateSeriesIndices(this);\n    var componentsMap = this._componentsMap;\n    var componentTypes = [];\n    componentsMap.each(function (components, componentType) {\n      if (ComponentModel.hasClass(componentType)) {\n        componentTypes.push(componentType);\n      }\n    });\n    ComponentModel.topologicalTravel(componentTypes, ComponentModel.getAllClassMainTypes(), function (componentType) {\n      each(componentsMap.get(componentType), function (component) {\n        if (component && (componentType !== 'series' || !isNotTargetSeries(component, payload))) {\n          component.restoreData();\n        }\n      });\n    });\n  };\n\n  GlobalModel.internalField = function () {\n    reCreateSeriesIndices = function (ecModel) {\n      var seriesIndices = ecModel._seriesIndices = [];\n      each(ecModel._componentsMap.get('series'), function (series) {\n        series && seriesIndices.push(series.componentIndex);\n      });\n      ecModel._seriesIndicesMap = createHashMap(seriesIndices);\n    };\n\n    assertSeriesInitialized = function (ecModel) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (!ecModel._seriesIndices) {\n          throw new Error('Option should contains series.');\n        }\n      }\n    };\n\n    initBase = function (ecModel, baseOption) {\n      ecModel.option = {};\n      ecModel.option[OPTION_INNER_KEY] = OPTION_INNER_VALUE;\n      ecModel._componentsMap = createHashMap({\n        series: []\n      });\n      ecModel._componentsCount = createHashMap();\n      var airaOption = baseOption.aria;\n\n      if (isObject(airaOption) && airaOption.enabled == null) {\n        airaOption.enabled = true;\n      }\n\n      mergeTheme(baseOption, ecModel._theme.option);\n      merge(baseOption, globalDefault, false);\n\n      ecModel._mergeOption(baseOption, null);\n    };\n  }();\n\n  return GlobalModel;\n}(Model);\n\nfunction isNotTargetSeries(seriesModel, payload) {\n  if (payload) {\n    var index = payload.seriesIndex;\n    var id = payload.seriesId;\n    var name_1 = payload.seriesName;\n    return index != null && seriesModel.componentIndex !== index || id != null && seriesModel.id !== id || name_1 != null && seriesModel.name !== name_1;\n  }\n}\n\nfunction mergeTheme(option, theme) {\n  var notMergeColorLayer = option.color && !option.colorLayer;\n  each(theme, function (themeItem, name) {\n    if (name === 'colorLayer' && notMergeColorLayer) {\n      return;\n    }\n\n    if (!ComponentModel.hasClass(name)) {\n      if (typeof themeItem === 'object') {\n        option[name] = !option[name] ? clone(themeItem) : merge(option[name], themeItem, false);\n      } else {\n        if (option[name] == null) {\n          option[name] = themeItem;\n        }\n      }\n    }\n  });\n}\n\nfunction queryByIdOrName(attr, idOrName, cmpts) {\n  if (isArray(idOrName)) {\n    var keyMap_1 = createHashMap();\n    each(idOrName, function (idOrNameItem) {\n      if (idOrNameItem != null) {\n        var idName = modelUtil.convertOptionIdName(idOrNameItem, null);\n        idName != null && keyMap_1.set(idOrNameItem, true);\n      }\n    });\n    return filter(cmpts, function (cmpt) {\n      return cmpt && keyMap_1.get(cmpt[attr]);\n    });\n  } else {\n    var idName_1 = modelUtil.convertOptionIdName(idOrName, null);\n    return filter(cmpts, function (cmpt) {\n      return cmpt && idName_1 != null && cmpt[attr] === idName_1;\n    });\n  }\n}\n\nfunction filterBySubType(components, condition) {\n  return condition.hasOwnProperty('subType') ? filter(components, function (cmpt) {\n    return cmpt && cmpt.subType === condition.subType;\n  }) : components;\n}\n\nfunction normalizeSetOptionInput(opts) {\n  var replaceMergeMainTypeMap = createHashMap();\n  opts && each(modelUtil.normalizeToArray(opts.replaceMerge), function (mainType) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(ComponentModel.hasClass(mainType), '\"' + mainType + '\" is not valid component main type in \"replaceMerge\"');\n    }\n\n    replaceMergeMainTypeMap.set(mainType, true);\n  });\n  return {\n    replaceMergeMainTypeMap: replaceMergeMainTypeMap\n  };\n}\n\nmixin(GlobalModel, PaletteMixin);\nexport default GlobalModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar availableMethods = ['getDom', 'getZr', 'getWidth', 'getHeight', 'getDevicePixelRatio', 'dispatchAction', 'isDisposed', 'on', 'off', 'getDataURL', 'getConnectedDataURL', 'getOption', 'getId', 'updateLabelLayout'];\n\nvar ExtensionAPI = function () {\n  function ExtensionAPI(ecInstance) {\n    zrUtil.each(availableMethods, function (methodName) {\n      this[methodName] = zrUtil.bind(ecInstance[methodName], ecInstance);\n    }, this);\n  }\n\n  return ExtensionAPI;\n}();\n\nexport default ExtensionAPI;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar coordinateSystemCreators = {};\n\nvar CoordinateSystemManager = function () {\n  function CoordinateSystemManager() {\n    this._coordinateSystems = [];\n  }\n\n  CoordinateSystemManager.prototype.create = function (ecModel, api) {\n    var coordinateSystems = [];\n    zrUtil.each(coordinateSystemCreators, function (creater, type) {\n      var list = creater.create(ecModel, api);\n      coordinateSystems = coordinateSystems.concat(list || []);\n    });\n    this._coordinateSystems = coordinateSystems;\n  };\n\n  CoordinateSystemManager.prototype.update = function (ecModel, api) {\n    zrUtil.each(this._coordinateSystems, function (coordSys) {\n      coordSys.update && coordSys.update(ecModel, api);\n    });\n  };\n\n  CoordinateSystemManager.prototype.getCoordinateSystems = function () {\n    return this._coordinateSystems.slice();\n  };\n\n  CoordinateSystemManager.register = function (type, creator) {\n    coordinateSystemCreators[type] = creator;\n  };\n\n  CoordinateSystemManager.get = function (type) {\n    return coordinateSystemCreators[type];\n  };\n\n  return CoordinateSystemManager;\n}();\n\nexport default CoordinateSystemManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { normalizeToArray } from '../util/model';\nimport { each, clone, map, isTypedArray, setAsPrimitive, isArray, isObject } from 'zrender/lib/core/util';\nimport { error } from '../util/log';\nvar QUERY_REG = /^(min|max)?(.+)$/;\n\nvar OptionManager = function () {\n  function OptionManager(api) {\n    this._timelineOptions = [];\n    this._mediaList = [];\n    this._currentMediaIndices = [];\n    this._api = api;\n  }\n\n  OptionManager.prototype.setOption = function (rawOption, optionPreprocessorFuncs, opt) {\n    if (rawOption) {\n      each(normalizeToArray(rawOption.series), function (series) {\n        series && series.data && isTypedArray(series.data) && setAsPrimitive(series.data);\n      });\n      each(normalizeToArray(rawOption.dataset), function (dataset) {\n        dataset && dataset.source && isTypedArray(dataset.source) && setAsPrimitive(dataset.source);\n      });\n    }\n\n    rawOption = clone(rawOption);\n    var optionBackup = this._optionBackup;\n    var newParsedOption = parseRawOption(rawOption, optionPreprocessorFuncs, !optionBackup);\n    this._newBaseOption = newParsedOption.baseOption;\n\n    if (optionBackup) {\n      if (newParsedOption.timelineOptions.length) {\n        optionBackup.timelineOptions = newParsedOption.timelineOptions;\n      }\n\n      if (newParsedOption.mediaList.length) {\n        optionBackup.mediaList = newParsedOption.mediaList;\n      }\n\n      if (newParsedOption.mediaDefault) {\n        optionBackup.mediaDefault = newParsedOption.mediaDefault;\n      }\n    } else {\n      this._optionBackup = newParsedOption;\n    }\n  };\n\n  OptionManager.prototype.mountOption = function (isRecreate) {\n    var optionBackup = this._optionBackup;\n    this._timelineOptions = optionBackup.timelineOptions;\n    this._mediaList = optionBackup.mediaList;\n    this._mediaDefault = optionBackup.mediaDefault;\n    this._currentMediaIndices = [];\n    return clone(isRecreate ? optionBackup.baseOption : this._newBaseOption);\n  };\n\n  OptionManager.prototype.getTimelineOption = function (ecModel) {\n    var option;\n    var timelineOptions = this._timelineOptions;\n\n    if (timelineOptions.length) {\n      var timelineModel = ecModel.getComponent('timeline');\n\n      if (timelineModel) {\n        option = clone(timelineOptions[timelineModel.getCurrentIndex()]);\n      }\n    }\n\n    return option;\n  };\n\n  OptionManager.prototype.getMediaOption = function (ecModel) {\n    var ecWidth = this._api.getWidth();\n\n    var ecHeight = this._api.getHeight();\n\n    var mediaList = this._mediaList;\n    var mediaDefault = this._mediaDefault;\n    var indices = [];\n    var result = [];\n\n    if (!mediaList.length && !mediaDefault) {\n      return result;\n    }\n\n    for (var i = 0, len = mediaList.length; i < len; i++) {\n      if (applyMediaQuery(mediaList[i].query, ecWidth, ecHeight)) {\n        indices.push(i);\n      }\n    }\n\n    if (!indices.length && mediaDefault) {\n      indices = [-1];\n    }\n\n    if (indices.length && !indicesEquals(indices, this._currentMediaIndices)) {\n      result = map(indices, function (index) {\n        return clone(index === -1 ? mediaDefault.option : mediaList[index].option);\n      });\n    }\n\n    this._currentMediaIndices = indices;\n    return result;\n  };\n\n  return OptionManager;\n}();\n\nfunction parseRawOption(rawOption, optionPreprocessorFuncs, isNew) {\n  var mediaList = [];\n  var mediaDefault;\n  var baseOption;\n  var declaredBaseOption = rawOption.baseOption;\n  var timelineOnRoot = rawOption.timeline;\n  var timelineOptionsOnRoot = rawOption.options;\n  var mediaOnRoot = rawOption.media;\n  var hasMedia = !!rawOption.media;\n  var hasTimeline = !!(timelineOptionsOnRoot || timelineOnRoot || declaredBaseOption && declaredBaseOption.timeline);\n\n  if (declaredBaseOption) {\n    baseOption = declaredBaseOption;\n\n    if (!baseOption.timeline) {\n      baseOption.timeline = timelineOnRoot;\n    }\n  } else {\n    if (hasTimeline || hasMedia) {\n      rawOption.options = rawOption.media = null;\n    }\n\n    baseOption = rawOption;\n  }\n\n  if (hasMedia) {\n    if (isArray(mediaOnRoot)) {\n      each(mediaOnRoot, function (singleMedia) {\n        if (process.env.NODE_ENV !== 'production') {\n          if (singleMedia && !singleMedia.option && isObject(singleMedia.query) && isObject(singleMedia.query.option)) {\n            error('Illegal media option. Must be like { media: [ { query: {}, option: {} } ] }');\n          }\n        }\n\n        if (singleMedia && singleMedia.option) {\n          if (singleMedia.query) {\n            mediaList.push(singleMedia);\n          } else if (!mediaDefault) {\n            mediaDefault = singleMedia;\n          }\n        }\n      });\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        error('Illegal media option. Must be an array. Like { media: [ {...}, {...} ] }');\n      }\n    }\n  }\n\n  doPreprocess(baseOption);\n  each(timelineOptionsOnRoot, function (option) {\n    return doPreprocess(option);\n  });\n  each(mediaList, function (media) {\n    return doPreprocess(media.option);\n  });\n\n  function doPreprocess(option) {\n    each(optionPreprocessorFuncs, function (preProcess) {\n      preProcess(option, isNew);\n    });\n  }\n\n  return {\n    baseOption: baseOption,\n    timelineOptions: timelineOptionsOnRoot || [],\n    mediaDefault: mediaDefault,\n    mediaList: mediaList\n  };\n}\n\nfunction applyMediaQuery(query, ecWidth, ecHeight) {\n  var realMap = {\n    width: ecWidth,\n    height: ecHeight,\n    aspectratio: ecWidth / ecHeight\n  };\n  var applicatable = true;\n  each(query, function (value, attr) {\n    var matched = attr.match(QUERY_REG);\n\n    if (!matched || !matched[1] || !matched[2]) {\n      return;\n    }\n\n    var operator = matched[1];\n    var realAttr = matched[2].toLowerCase();\n\n    if (!compare(realMap[realAttr], value, operator)) {\n      applicatable = false;\n    }\n  });\n  return applicatable;\n}\n\nfunction compare(real, expect, operator) {\n  if (operator === 'min') {\n    return real >= expect;\n  } else if (operator === 'max') {\n    return real <= expect;\n  } else {\n    return real === expect;\n  }\n}\n\nfunction indicesEquals(indices1, indices2) {\n  return indices1.join(',') === indices2.join(',');\n}\n\nexport default OptionManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nimport { deprecateLog, deprecateReplaceLog } from '../../util/log';\nvar each = zrUtil.each;\nvar isObject = zrUtil.isObject;\nvar POSSIBLE_STYLES = ['areaStyle', 'lineStyle', 'nodeStyle', 'linkStyle', 'chordStyle', 'label', 'labelLine'];\n\nfunction compatEC2ItemStyle(opt) {\n  var itemStyleOpt = opt && opt.itemStyle;\n\n  if (!itemStyleOpt) {\n    return;\n  }\n\n  for (var i = 0, len = POSSIBLE_STYLES.length; i < len; i++) {\n    var styleName = POSSIBLE_STYLES[i];\n    var normalItemStyleOpt = itemStyleOpt.normal;\n    var emphasisItemStyleOpt = itemStyleOpt.emphasis;\n\n    if (normalItemStyleOpt && normalItemStyleOpt[styleName]) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateReplaceLog(\"itemStyle.normal.\" + styleName, styleName);\n      }\n\n      opt[styleName] = opt[styleName] || {};\n\n      if (!opt[styleName].normal) {\n        opt[styleName].normal = normalItemStyleOpt[styleName];\n      } else {\n        zrUtil.merge(opt[styleName].normal, normalItemStyleOpt[styleName]);\n      }\n\n      normalItemStyleOpt[styleName] = null;\n    }\n\n    if (emphasisItemStyleOpt && emphasisItemStyleOpt[styleName]) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateReplaceLog(\"itemStyle.emphasis.\" + styleName, \"emphasis.\" + styleName);\n      }\n\n      opt[styleName] = opt[styleName] || {};\n\n      if (!opt[styleName].emphasis) {\n        opt[styleName].emphasis = emphasisItemStyleOpt[styleName];\n      } else {\n        zrUtil.merge(opt[styleName].emphasis, emphasisItemStyleOpt[styleName]);\n      }\n\n      emphasisItemStyleOpt[styleName] = null;\n    }\n  }\n}\n\nfunction convertNormalEmphasis(opt, optType, useExtend) {\n  if (opt && opt[optType] && (opt[optType].normal || opt[optType].emphasis)) {\n    var normalOpt = opt[optType].normal;\n    var emphasisOpt = opt[optType].emphasis;\n\n    if (normalOpt) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateLog(\"'normal' hierarchy in \" + optType + \" has been removed since 4.0. All style properties are configured in \" + optType + \" directly now.\");\n      }\n\n      if (useExtend) {\n        opt[optType].normal = opt[optType].emphasis = null;\n        zrUtil.defaults(opt[optType], normalOpt);\n      } else {\n        opt[optType] = normalOpt;\n      }\n    }\n\n    if (emphasisOpt) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateLog(optType + \".emphasis has been changed to emphasis.\" + optType + \" since 4.0\");\n      }\n\n      opt.emphasis = opt.emphasis || {};\n      opt.emphasis[optType] = emphasisOpt;\n\n      if (emphasisOpt.focus) {\n        opt.emphasis.focus = emphasisOpt.focus;\n      }\n\n      if (emphasisOpt.blurScope) {\n        opt.emphasis.blurScope = emphasisOpt.blurScope;\n      }\n    }\n  }\n}\n\nfunction removeEC3NormalStatus(opt) {\n  convertNormalEmphasis(opt, 'itemStyle');\n  convertNormalEmphasis(opt, 'lineStyle');\n  convertNormalEmphasis(opt, 'areaStyle');\n  convertNormalEmphasis(opt, 'label');\n  convertNormalEmphasis(opt, 'labelLine');\n  convertNormalEmphasis(opt, 'upperLabel');\n  convertNormalEmphasis(opt, 'edgeLabel');\n}\n\nfunction compatTextStyle(opt, propName) {\n  var labelOptSingle = isObject(opt) && opt[propName];\n  var textStyle = isObject(labelOptSingle) && labelOptSingle.textStyle;\n\n  if (textStyle) {\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateLog(\"textStyle hierarchy in \" + propName + \" has been removed since 4.0. All textStyle properties are configured in \" + propName + \" directly now.\");\n    }\n\n    for (var i = 0, len = modelUtil.TEXT_STYLE_OPTIONS.length; i < len; i++) {\n      var textPropName = modelUtil.TEXT_STYLE_OPTIONS[i];\n\n      if (textStyle.hasOwnProperty(textPropName)) {\n        labelOptSingle[textPropName] = textStyle[textPropName];\n      }\n    }\n  }\n}\n\nfunction compatEC3CommonStyles(opt) {\n  if (opt) {\n    removeEC3NormalStatus(opt);\n    compatTextStyle(opt, 'label');\n    opt.emphasis && compatTextStyle(opt.emphasis, 'label');\n  }\n}\n\nfunction processSeries(seriesOpt) {\n  if (!isObject(seriesOpt)) {\n    return;\n  }\n\n  compatEC2ItemStyle(seriesOpt);\n  removeEC3NormalStatus(seriesOpt);\n  compatTextStyle(seriesOpt, 'label');\n  compatTextStyle(seriesOpt, 'upperLabel');\n  compatTextStyle(seriesOpt, 'edgeLabel');\n\n  if (seriesOpt.emphasis) {\n    compatTextStyle(seriesOpt.emphasis, 'label');\n    compatTextStyle(seriesOpt.emphasis, 'upperLabel');\n    compatTextStyle(seriesOpt.emphasis, 'edgeLabel');\n  }\n\n  var markPoint = seriesOpt.markPoint;\n\n  if (markPoint) {\n    compatEC2ItemStyle(markPoint);\n    compatEC3CommonStyles(markPoint);\n  }\n\n  var markLine = seriesOpt.markLine;\n\n  if (markLine) {\n    compatEC2ItemStyle(markLine);\n    compatEC3CommonStyles(markLine);\n  }\n\n  var markArea = seriesOpt.markArea;\n\n  if (markArea) {\n    compatEC3CommonStyles(markArea);\n  }\n\n  var data = seriesOpt.data;\n\n  if (seriesOpt.type === 'graph') {\n    data = data || seriesOpt.nodes;\n    var edgeData = seriesOpt.links || seriesOpt.edges;\n\n    if (edgeData && !zrUtil.isTypedArray(edgeData)) {\n      for (var i = 0; i < edgeData.length; i++) {\n        compatEC3CommonStyles(edgeData[i]);\n      }\n    }\n\n    zrUtil.each(seriesOpt.categories, function (opt) {\n      removeEC3NormalStatus(opt);\n    });\n  }\n\n  if (data && !zrUtil.isTypedArray(data)) {\n    for (var i = 0; i < data.length; i++) {\n      compatEC3CommonStyles(data[i]);\n    }\n  }\n\n  markPoint = seriesOpt.markPoint;\n\n  if (markPoint && markPoint.data) {\n    var mpData = markPoint.data;\n\n    for (var i = 0; i < mpData.length; i++) {\n      compatEC3CommonStyles(mpData[i]);\n    }\n  }\n\n  markLine = seriesOpt.markLine;\n\n  if (markLine && markLine.data) {\n    var mlData = markLine.data;\n\n    for (var i = 0; i < mlData.length; i++) {\n      if (zrUtil.isArray(mlData[i])) {\n        compatEC3CommonStyles(mlData[i][0]);\n        compatEC3CommonStyles(mlData[i][1]);\n      } else {\n        compatEC3CommonStyles(mlData[i]);\n      }\n    }\n  }\n\n  if (seriesOpt.type === 'gauge') {\n    compatTextStyle(seriesOpt, 'axisLabel');\n    compatTextStyle(seriesOpt, 'title');\n    compatTextStyle(seriesOpt, 'detail');\n  } else if (seriesOpt.type === 'treemap') {\n    convertNormalEmphasis(seriesOpt.breadcrumb, 'itemStyle');\n    zrUtil.each(seriesOpt.levels, function (opt) {\n      removeEC3NormalStatus(opt);\n    });\n  } else if (seriesOpt.type === 'tree') {\n    removeEC3NormalStatus(seriesOpt.leaves);\n  }\n}\n\nfunction toArr(o) {\n  return zrUtil.isArray(o) ? o : o ? [o] : [];\n}\n\nfunction toObj(o) {\n  return (zrUtil.isArray(o) ? o[0] : o) || {};\n}\n\nexport default function globalCompatStyle(option, isTheme) {\n  each(toArr(option.series), function (seriesOpt) {\n    isObject(seriesOpt) && processSeries(seriesOpt);\n  });\n  var axes = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'parallelAxis', 'radar'];\n  isTheme && axes.push('valueAxis', 'categoryAxis', 'logAxis', 'timeAxis');\n  each(axes, function (axisName) {\n    each(toArr(option[axisName]), function (axisOpt) {\n      if (axisOpt) {\n        compatTextStyle(axisOpt, 'axisLabel');\n        compatTextStyle(axisOpt.axisPointer, 'label');\n      }\n    });\n  });\n  each(toArr(option.parallel), function (parallelOpt) {\n    var parallelAxisDefault = parallelOpt && parallelOpt.parallelAxisDefault;\n    compatTextStyle(parallelAxisDefault, 'axisLabel');\n    compatTextStyle(parallelAxisDefault && parallelAxisDefault.axisPointer, 'label');\n  });\n  each(toArr(option.calendar), function (calendarOpt) {\n    convertNormalEmphasis(calendarOpt, 'itemStyle');\n    compatTextStyle(calendarOpt, 'dayLabel');\n    compatTextStyle(calendarOpt, 'monthLabel');\n    compatTextStyle(calendarOpt, 'yearLabel');\n  });\n  each(toArr(option.radar), function (radarOpt) {\n    compatTextStyle(radarOpt, 'name');\n\n    if (radarOpt.name && radarOpt.axisName == null) {\n      radarOpt.axisName = radarOpt.name;\n      delete radarOpt.name;\n\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateLog('name property in radar component has been changed to axisName');\n      }\n    }\n\n    if (radarOpt.nameGap != null && radarOpt.axisNameGap == null) {\n      radarOpt.axisNameGap = radarOpt.nameGap;\n      delete radarOpt.nameGap;\n\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateLog('nameGap property in radar component has been changed to axisNameGap');\n      }\n    }\n  });\n  each(toArr(option.geo), function (geoOpt) {\n    if (isObject(geoOpt)) {\n      compatEC3CommonStyles(geoOpt);\n      each(toArr(geoOpt.regions), function (regionObj) {\n        compatEC3CommonStyles(regionObj);\n      });\n    }\n  });\n  each(toArr(option.timeline), function (timelineOpt) {\n    compatEC3CommonStyles(timelineOpt);\n    convertNormalEmphasis(timelineOpt, 'label');\n    convertNormalEmphasis(timelineOpt, 'itemStyle');\n    convertNormalEmphasis(timelineOpt, 'controlStyle', true);\n    var data = timelineOpt.data;\n    zrUtil.isArray(data) && zrUtil.each(data, function (item) {\n      if (zrUtil.isObject(item)) {\n        convertNormalEmphasis(item, 'label');\n        convertNormalEmphasis(item, 'itemStyle');\n      }\n    });\n  });\n  each(toArr(option.toolbox), function (toolboxOpt) {\n    convertNormalEmphasis(toolboxOpt, 'iconStyle');\n    each(toolboxOpt.feature, function (featureOpt) {\n      convertNormalEmphasis(featureOpt, 'iconStyle');\n    });\n  });\n  compatTextStyle(toObj(option.axisPointer), 'label');\n  compatTextStyle(toObj(option.tooltip).axisPointer, 'label');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, isArray, isObject, isTypedArray, defaults } from 'zrender/lib/core/util';\nimport compatStyle from './helper/compatStyle';\nimport { normalizeToArray } from '../util/model';\nimport { deprecateLog, deprecateReplaceLog } from '../util/log';\n\nfunction get(opt, path) {\n  var pathArr = path.split(',');\n  var obj = opt;\n\n  for (var i = 0; i < pathArr.length; i++) {\n    obj = obj && obj[pathArr[i]];\n\n    if (obj == null) {\n      break;\n    }\n  }\n\n  return obj;\n}\n\nfunction set(opt, path, val, overwrite) {\n  var pathArr = path.split(',');\n  var obj = opt;\n  var key;\n  var i = 0;\n\n  for (; i < pathArr.length - 1; i++) {\n    key = pathArr[i];\n\n    if (obj[key] == null) {\n      obj[key] = {};\n    }\n\n    obj = obj[key];\n  }\n\n  if (overwrite || obj[pathArr[i]] == null) {\n    obj[pathArr[i]] = val;\n  }\n}\n\nfunction compatLayoutProperties(option) {\n  option && each(LAYOUT_PROPERTIES, function (prop) {\n    if (prop[0] in option && !(prop[1] in option)) {\n      option[prop[1]] = option[prop[0]];\n    }\n  });\n}\n\nvar LAYOUT_PROPERTIES = [['x', 'left'], ['y', 'top'], ['x2', 'right'], ['y2', 'bottom']];\nvar COMPATITABLE_COMPONENTS = ['grid', 'geo', 'parallel', 'legend', 'toolbox', 'title', 'visualMap', 'dataZoom', 'timeline'];\nvar BAR_ITEM_STYLE_MAP = [['borderRadius', 'barBorderRadius'], ['borderColor', 'barBorderColor'], ['borderWidth', 'barBorderWidth']];\n\nfunction compatBarItemStyle(option) {\n  var itemStyle = option && option.itemStyle;\n\n  if (itemStyle) {\n    for (var i = 0; i < BAR_ITEM_STYLE_MAP.length; i++) {\n      var oldName = BAR_ITEM_STYLE_MAP[i][1];\n      var newName = BAR_ITEM_STYLE_MAP[i][0];\n\n      if (itemStyle[oldName] != null) {\n        itemStyle[newName] = itemStyle[oldName];\n\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog(oldName, newName);\n        }\n      }\n    }\n  }\n}\n\nfunction compatPieLabel(option) {\n  if (!option) {\n    return;\n  }\n\n  if (option.alignTo === 'edge' && option.margin != null && option.edgeDistance == null) {\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateReplaceLog('label.margin', 'label.edgeDistance', 'pie');\n    }\n\n    option.edgeDistance = option.margin;\n  }\n}\n\nfunction compatSunburstState(option) {\n  if (!option) {\n    return;\n  }\n\n  if (option.downplay && !option.blur) {\n    option.blur = option.downplay;\n\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateReplaceLog('downplay', 'blur', 'sunburst');\n    }\n  }\n}\n\nfunction compatGraphFocus(option) {\n  if (!option) {\n    return;\n  }\n\n  if (option.focusNodeAdjacency != null) {\n    option.emphasis = option.emphasis || {};\n\n    if (option.emphasis.focus == null) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateReplaceLog('focusNodeAdjacency', 'emphasis: { focus: \\'adjacency\\'}', 'graph/sankey');\n      }\n\n      option.emphasis.focus = 'adjacency';\n    }\n  }\n}\n\nfunction traverseTree(data, cb) {\n  if (data) {\n    for (var i = 0; i < data.length; i++) {\n      cb(data[i]);\n      data[i] && traverseTree(data[i].children, cb);\n    }\n  }\n}\n\nexport default function globalBackwardCompat(option, isTheme) {\n  compatStyle(option, isTheme);\n  option.series = normalizeToArray(option.series);\n  each(option.series, function (seriesOpt) {\n    if (!isObject(seriesOpt)) {\n      return;\n    }\n\n    var seriesType = seriesOpt.type;\n\n    if (seriesType === 'line') {\n      if (seriesOpt.clipOverflow != null) {\n        seriesOpt.clip = seriesOpt.clipOverflow;\n\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog('clipOverflow', 'clip', 'line');\n        }\n      }\n    } else if (seriesType === 'pie' || seriesType === 'gauge') {\n      if (seriesOpt.clockWise != null) {\n        seriesOpt.clockwise = seriesOpt.clockWise;\n\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog('clockWise', 'clockwise');\n        }\n      }\n\n      compatPieLabel(seriesOpt.label);\n      var data = seriesOpt.data;\n\n      if (data && !isTypedArray(data)) {\n        for (var i = 0; i < data.length; i++) {\n          compatPieLabel(data[i]);\n        }\n      }\n\n      if (seriesOpt.hoverOffset != null) {\n        seriesOpt.emphasis = seriesOpt.emphasis || {};\n\n        if (seriesOpt.emphasis.scaleSize = null) {\n          if (process.env.NODE_ENV !== 'production') {\n            deprecateReplaceLog('hoverOffset', 'emphasis.scaleSize');\n          }\n\n          seriesOpt.emphasis.scaleSize = seriesOpt.hoverOffset;\n        }\n      }\n    } else if (seriesType === 'gauge') {\n      var pointerColor = get(seriesOpt, 'pointer.color');\n      pointerColor != null && set(seriesOpt, 'itemStyle.color', pointerColor);\n    } else if (seriesType === 'bar') {\n      compatBarItemStyle(seriesOpt);\n      compatBarItemStyle(seriesOpt.backgroundStyle);\n      compatBarItemStyle(seriesOpt.emphasis);\n      var data = seriesOpt.data;\n\n      if (data && !isTypedArray(data)) {\n        for (var i = 0; i < data.length; i++) {\n          if (typeof data[i] === 'object') {\n            compatBarItemStyle(data[i]);\n            compatBarItemStyle(data[i] && data[i].emphasis);\n          }\n        }\n      }\n    } else if (seriesType === 'sunburst') {\n      var highlightPolicy = seriesOpt.highlightPolicy;\n\n      if (highlightPolicy) {\n        seriesOpt.emphasis = seriesOpt.emphasis || {};\n\n        if (!seriesOpt.emphasis.focus) {\n          seriesOpt.emphasis.focus = highlightPolicy;\n\n          if (process.env.NODE_ENV !== 'production') {\n            deprecateReplaceLog('highlightPolicy', 'emphasis.focus', 'sunburst');\n          }\n        }\n      }\n\n      compatSunburstState(seriesOpt);\n      traverseTree(seriesOpt.data, compatSunburstState);\n    } else if (seriesType === 'graph' || seriesType === 'sankey') {\n      compatGraphFocus(seriesOpt);\n    } else if (seriesType === 'map') {\n      if (seriesOpt.mapType && !seriesOpt.map) {\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog('mapType', 'map', 'map');\n        }\n\n        seriesOpt.map = seriesOpt.mapType;\n      }\n\n      if (seriesOpt.mapLocation) {\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateLog('`mapLocation` is not used anymore.');\n        }\n\n        defaults(seriesOpt, seriesOpt.mapLocation);\n      }\n    }\n\n    if (seriesOpt.hoverAnimation != null) {\n      seriesOpt.emphasis = seriesOpt.emphasis || {};\n\n      if (seriesOpt.emphasis && seriesOpt.emphasis.scale == null) {\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog('hoverAnimation', 'emphasis.scale');\n        }\n\n        seriesOpt.emphasis.scale = seriesOpt.hoverAnimation;\n      }\n    }\n\n    compatLayoutProperties(seriesOpt);\n  });\n\n  if (option.dataRange) {\n    option.visualMap = option.dataRange;\n  }\n\n  each(COMPATITABLE_COMPONENTS, function (componentName) {\n    var options = option[componentName];\n\n    if (options) {\n      if (!isArray(options)) {\n        options = [options];\n      }\n\n      each(options, function (option) {\n        compatLayoutProperties(option);\n      });\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, each } from 'zrender/lib/core/util';\nexport default function dataStack(ecModel) {\n  var stackInfoMap = createHashMap();\n  ecModel.eachSeries(function (seriesModel) {\n    var stack = seriesModel.get('stack');\n\n    if (stack) {\n      var stackInfoList = stackInfoMap.get(stack) || stackInfoMap.set(stack, []);\n      var data = seriesModel.getData();\n      var stackInfo = {\n        stackResultDimension: data.getCalculationInfo('stackResultDimension'),\n        stackedOverDimension: data.getCalculationInfo('stackedOverDimension'),\n        stackedDimension: data.getCalculationInfo('stackedDimension'),\n        stackedByDimension: data.getCalculationInfo('stackedByDimension'),\n        isStackedByIndex: data.getCalculationInfo('isStackedByIndex'),\n        data: data,\n        seriesModel: seriesModel\n      };\n\n      if (!stackInfo.stackedDimension || !(stackInfo.isStackedByIndex || stackInfo.stackedByDimension)) {\n        return;\n      }\n\n      stackInfoList.length && data.setCalculationInfo('stackedOnSeries', stackInfoList[stackInfoList.length - 1].seriesModel);\n      stackInfoList.push(stackInfo);\n    }\n  });\n  stackInfoMap.each(calculateStack);\n}\n\nfunction calculateStack(stackInfoList) {\n  each(stackInfoList, function (targetStackInfo, idxInStack) {\n    var resultVal = [];\n    var resultNaN = [NaN, NaN];\n    var dims = [targetStackInfo.stackResultDimension, targetStackInfo.stackedOverDimension];\n    var targetData = targetStackInfo.data;\n    var isStackedByIndex = targetStackInfo.isStackedByIndex;\n    var newData = targetData.map(dims, function (v0, v1, dataIndex) {\n      var sum = targetData.get(targetStackInfo.stackedDimension, dataIndex);\n\n      if (isNaN(sum)) {\n        return resultNaN;\n      }\n\n      var byValue;\n      var stackedDataRawIndex;\n\n      if (isStackedByIndex) {\n        stackedDataRawIndex = targetData.getRawIndex(dataIndex);\n      } else {\n        byValue = targetData.get(targetStackInfo.stackedByDimension, dataIndex);\n      }\n\n      var stackedOver = NaN;\n\n      for (var j = idxInStack - 1; j >= 0; j--) {\n        var stackInfo = stackInfoList[j];\n\n        if (!isStackedByIndex) {\n          stackedDataRawIndex = stackInfo.data.rawIndexOf(stackInfo.stackedByDimension, byValue);\n        }\n\n        if (stackedDataRawIndex >= 0) {\n          var val = stackInfo.data.getByRawIndex(stackInfo.stackResultDimension, stackedDataRawIndex);\n\n          if (sum >= 0 && val > 0 || sum <= 0 && val < 0) {\n            sum += val;\n            stackedOver = val;\n            break;\n          }\n        }\n      }\n\n      resultVal[0] = sum;\n      resultVal[1] = stackedOver;\n      return resultVal;\n    });\n    targetData.hostModel.setData(newData);\n    targetStackInfo.data = newData;\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isTypedArray, clone, createHashMap, isArray, isObject, isArrayLike, hasOwn, assert, each, map, isNumber, isString } from 'zrender/lib/core/util';\nimport { SOURCE_FORMAT_ORIGINAL, SERIES_LAYOUT_BY_COLUMN, SOURCE_FORMAT_UNKNOWN, SOURCE_FORMAT_KEYED_COLUMNS, SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ARRAY_ROWS, SOURCE_FORMAT_OBJECT_ROWS, SERIES_LAYOUT_BY_ROW } from '../util/types';\nimport { getDataItemValue } from '../util/model';\n;\n\nvar SourceImpl = function () {\n  function SourceImpl(fields) {\n    this.data = fields.data || (fields.sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS ? {} : []);\n    this.sourceFormat = fields.sourceFormat || SOURCE_FORMAT_UNKNOWN;\n    this.seriesLayoutBy = fields.seriesLayoutBy || SERIES_LAYOUT_BY_COLUMN;\n    this.startIndex = fields.startIndex || 0;\n    this.dimensionsDefine = fields.dimensionsDefine;\n    this.dimensionsDetectedCount = fields.dimensionsDetectedCount;\n    this.encodeDefine = fields.encodeDefine;\n    this.metaRawOption = fields.metaRawOption;\n  }\n\n  return SourceImpl;\n}();\n\nexport function isSourceInstance(val) {\n  return val instanceof SourceImpl;\n}\nexport function createSource(sourceData, thisMetaRawOption, sourceFormat, encodeDefine) {\n  sourceFormat = sourceFormat || detectSourceFormat(sourceData);\n  var seriesLayoutBy = thisMetaRawOption.seriesLayoutBy;\n  var determined = determineSourceDimensions(sourceData, sourceFormat, seriesLayoutBy, thisMetaRawOption.sourceHeader, thisMetaRawOption.dimensions);\n  var source = new SourceImpl({\n    data: sourceData,\n    sourceFormat: sourceFormat,\n    seriesLayoutBy: seriesLayoutBy,\n    dimensionsDefine: determined.dimensionsDefine,\n    startIndex: determined.startIndex,\n    dimensionsDetectedCount: determined.dimensionsDetectedCount,\n    encodeDefine: makeEncodeDefine(encodeDefine),\n    metaRawOption: clone(thisMetaRawOption)\n  });\n  return source;\n}\nexport function createSourceFromSeriesDataOption(data) {\n  return new SourceImpl({\n    data: data,\n    sourceFormat: isTypedArray(data) ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL\n  });\n}\nexport function cloneSourceShallow(source) {\n  return new SourceImpl({\n    data: source.data,\n    sourceFormat: source.sourceFormat,\n    seriesLayoutBy: source.seriesLayoutBy,\n    dimensionsDefine: clone(source.dimensionsDefine),\n    startIndex: source.startIndex,\n    dimensionsDetectedCount: source.dimensionsDetectedCount,\n    encodeDefine: makeEncodeDefine(source.encodeDefine)\n  });\n}\n\nfunction makeEncodeDefine(encodeDefine) {\n  return encodeDefine ? createHashMap(encodeDefine) : null;\n}\n\nexport function detectSourceFormat(data) {\n  var sourceFormat = SOURCE_FORMAT_UNKNOWN;\n\n  if (isTypedArray(data)) {\n    sourceFormat = SOURCE_FORMAT_TYPED_ARRAY;\n  } else if (isArray(data)) {\n    if (data.length === 0) {\n      sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\n    }\n\n    for (var i = 0, len = data.length; i < len; i++) {\n      var item = data[i];\n\n      if (item == null) {\n        continue;\n      } else if (isArray(item)) {\n        sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\n        break;\n      } else if (isObject(item)) {\n        sourceFormat = SOURCE_FORMAT_OBJECT_ROWS;\n        break;\n      }\n    }\n  } else if (isObject(data)) {\n    for (var key in data) {\n      if (hasOwn(data, key) && isArrayLike(data[key])) {\n        sourceFormat = SOURCE_FORMAT_KEYED_COLUMNS;\n        break;\n      }\n    }\n  }\n\n  return sourceFormat;\n}\n\nfunction determineSourceDimensions(data, sourceFormat, seriesLayoutBy, sourceHeader, dimensionsDefine) {\n  var dimensionsDetectedCount;\n  var startIndex;\n\n  if (!data) {\n    return {\n      dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\n      startIndex: startIndex,\n      dimensionsDetectedCount: dimensionsDetectedCount\n    };\n  }\n\n  if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n    var dataArrayRows = data;\n\n    if (sourceHeader === 'auto' || sourceHeader == null) {\n      arrayRowsTravelFirst(function (val) {\n        if (val != null && val !== '-') {\n          if (isString(val)) {\n            startIndex == null && (startIndex = 1);\n          } else {\n            startIndex = 0;\n          }\n        }\n      }, seriesLayoutBy, dataArrayRows, 10);\n    } else {\n      startIndex = isNumber(sourceHeader) ? sourceHeader : sourceHeader ? 1 : 0;\n    }\n\n    if (!dimensionsDefine && startIndex === 1) {\n      dimensionsDefine = [];\n      arrayRowsTravelFirst(function (val, index) {\n        dimensionsDefine[index] = val != null ? val + '' : '';\n      }, seriesLayoutBy, dataArrayRows, Infinity);\n    }\n\n    dimensionsDetectedCount = dimensionsDefine ? dimensionsDefine.length : seriesLayoutBy === SERIES_LAYOUT_BY_ROW ? dataArrayRows.length : dataArrayRows[0] ? dataArrayRows[0].length : null;\n  } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n    if (!dimensionsDefine) {\n      dimensionsDefine = objectRowsCollectDimensions(data);\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n    if (!dimensionsDefine) {\n      dimensionsDefine = [];\n      each(data, function (colArr, key) {\n        dimensionsDefine.push(key);\n      });\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n    var value0 = getDataItemValue(data[0]);\n    dimensionsDetectedCount = isArray(value0) && value0.length || 1;\n  } else if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!!dimensionsDefine, 'dimensions must be given if data is TypedArray.');\n    }\n  }\n\n  return {\n    startIndex: startIndex,\n    dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\n    dimensionsDetectedCount: dimensionsDetectedCount\n  };\n}\n\nfunction objectRowsCollectDimensions(data) {\n  var firstIndex = 0;\n  var obj;\n\n  while (firstIndex < data.length && !(obj = data[firstIndex++])) {}\n\n  if (obj) {\n    var dimensions_1 = [];\n    each(obj, function (value, key) {\n      dimensions_1.push(key);\n    });\n    return dimensions_1;\n  }\n}\n\nfunction normalizeDimensionsOption(dimensionsDefine) {\n  if (!dimensionsDefine) {\n    return;\n  }\n\n  var nameMap = createHashMap();\n  return map(dimensionsDefine, function (rawItem, index) {\n    rawItem = isObject(rawItem) ? rawItem : {\n      name: rawItem\n    };\n    var item = {\n      name: rawItem.name,\n      displayName: rawItem.displayName,\n      type: rawItem.type\n    };\n\n    if (item.name == null) {\n      return item;\n    }\n\n    item.name += '';\n\n    if (item.displayName == null) {\n      item.displayName = item.name;\n    }\n\n    var exist = nameMap.get(item.name);\n\n    if (!exist) {\n      nameMap.set(item.name, {\n        count: 1\n      });\n    } else {\n      item.name += '-' + exist.count++;\n    }\n\n    return item;\n  });\n}\n\nfunction arrayRowsTravelFirst(cb, seriesLayoutBy, data, maxLoop) {\n  if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\n    for (var i = 0; i < data.length && i < maxLoop; i++) {\n      cb(data[i] ? data[i][0] : null, i);\n    }\n  } else {\n    var value0 = data[0] || [];\n\n    for (var i = 0; i < value0.length && i < maxLoop; i++) {\n      cb(value0[i], i);\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar _a, _b, _c;\n\nimport { isTypedArray, extend, assert, each, isObject, bind } from 'zrender/lib/core/util';\nimport { getDataItemValue } from '../../util/model';\nimport { createSourceFromSeriesDataOption, isSourceInstance } from '../Source';\nimport { SOURCE_FORMAT_ORIGINAL, SOURCE_FORMAT_OBJECT_ROWS, SOURCE_FORMAT_KEYED_COLUMNS, SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ARRAY_ROWS, SERIES_LAYOUT_BY_COLUMN, SERIES_LAYOUT_BY_ROW } from '../../util/types';\nvar providerMethods;\nvar mountMethods;\n\nvar DefaultDataProvider = function () {\n  function DefaultDataProvider(sourceParam, dimSize) {\n    var source = !isSourceInstance(sourceParam) ? createSourceFromSeriesDataOption(sourceParam) : sourceParam;\n    this._source = source;\n    var data = this._data = source.data;\n\n    if (source.sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (dimSize == null) {\n          throw new Error('Typed array data must specify dimension size');\n        }\n      }\n\n      this._offset = 0;\n      this._dimSize = dimSize;\n      this._data = data;\n    }\n\n    mountMethods(this, data, source);\n  }\n\n  DefaultDataProvider.prototype.getSource = function () {\n    return this._source;\n  };\n\n  DefaultDataProvider.prototype.count = function () {\n    return 0;\n  };\n\n  DefaultDataProvider.prototype.getItem = function (idx, out) {\n    return;\n  };\n\n  DefaultDataProvider.prototype.appendData = function (newData) {};\n\n  DefaultDataProvider.prototype.clean = function () {};\n\n  DefaultDataProvider.protoInitialize = function () {\n    var proto = DefaultDataProvider.prototype;\n    proto.pure = false;\n    proto.persistent = true;\n  }();\n\n  DefaultDataProvider.internalField = function () {\n    var _a;\n\n    mountMethods = function (provider, data, source) {\n      var sourceFormat = source.sourceFormat;\n      var seriesLayoutBy = source.seriesLayoutBy;\n      var startIndex = source.startIndex;\n      var dimsDef = source.dimensionsDefine;\n      var methods = providerMethods[getMethodMapKey(sourceFormat, seriesLayoutBy)];\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(methods, 'Invalide sourceFormat: ' + sourceFormat);\n      }\n\n      extend(provider, methods);\n\n      if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n        provider.getItem = getItemForTypedArray;\n        provider.count = countForTypedArray;\n        provider.fillStorage = fillStorageForTypedArray;\n      } else {\n        var rawItemGetter = getRawSourceItemGetter(sourceFormat, seriesLayoutBy);\n        provider.getItem = bind(rawItemGetter, null, data, startIndex, dimsDef);\n        var rawCounter = getRawSourceDataCounter(sourceFormat, seriesLayoutBy);\n        provider.count = bind(rawCounter, null, data, startIndex, dimsDef);\n      }\n    };\n\n    var getItemForTypedArray = function (idx, out) {\n      idx = idx - this._offset;\n      out = out || [];\n      var data = this._data;\n      var dimSize = this._dimSize;\n      var offset = dimSize * idx;\n\n      for (var i = 0; i < dimSize; i++) {\n        out[i] = data[offset + i];\n      }\n\n      return out;\n    };\n\n    var fillStorageForTypedArray = function (start, end, storage, extent) {\n      var data = this._data;\n      var dimSize = this._dimSize;\n\n      for (var dim = 0; dim < dimSize; dim++) {\n        var dimExtent = extent[dim];\n        var min = dimExtent[0] == null ? Infinity : dimExtent[0];\n        var max = dimExtent[1] == null ? -Infinity : dimExtent[1];\n        var count = end - start;\n        var arr = storage[dim];\n\n        for (var i = 0; i < count; i++) {\n          var val = data[i * dimSize + dim];\n          arr[start + i] = val;\n          val < min && (min = val);\n          val > max && (max = val);\n        }\n\n        dimExtent[0] = min;\n        dimExtent[1] = max;\n      }\n    };\n\n    var countForTypedArray = function () {\n      return this._data ? this._data.length / this._dimSize : 0;\n    };\n\n    providerMethods = (_a = {}, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = {\n      pure: true,\n      appendData: appendDataSimply\n    }, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = {\n      pure: true,\n      appendData: function () {\n        throw new Error('Do not support appendData when set seriesLayoutBy: \"row\".');\n      }\n    }, _a[SOURCE_FORMAT_OBJECT_ROWS] = {\n      pure: true,\n      appendData: appendDataSimply\n    }, _a[SOURCE_FORMAT_KEYED_COLUMNS] = {\n      pure: true,\n      appendData: function (newData) {\n        var data = this._data;\n        each(newData, function (newCol, key) {\n          var oldCol = data[key] || (data[key] = []);\n\n          for (var i = 0; i < (newCol || []).length; i++) {\n            oldCol.push(newCol[i]);\n          }\n        });\n      }\n    }, _a[SOURCE_FORMAT_ORIGINAL] = {\n      appendData: appendDataSimply\n    }, _a[SOURCE_FORMAT_TYPED_ARRAY] = {\n      persistent: false,\n      pure: true,\n      appendData: function (newData) {\n        if (process.env.NODE_ENV !== 'production') {\n          assert(isTypedArray(newData), 'Added data must be TypedArray if data in initialization is TypedArray');\n        }\n\n        this._data = newData;\n      },\n      clean: function () {\n        this._offset += this.count();\n        this._data = null;\n      }\n    }, _a);\n\n    function appendDataSimply(newData) {\n      for (var i = 0; i < newData.length; i++) {\n        this._data.push(newData[i]);\n      }\n    }\n  }();\n\n  return DefaultDataProvider;\n}();\n\nexport { DefaultDataProvider };\n\nvar getItemSimply = function (rawData, startIndex, dimsDef, idx) {\n  return rawData[idx];\n};\n\nvar rawSourceItemGetterMap = (_a = {}, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef, idx) {\n  return rawData[idx + startIndex];\n}, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef, idx) {\n  idx += startIndex;\n  var item = [];\n  var data = rawData;\n\n  for (var i = 0; i < data.length; i++) {\n    var row = data[i];\n    item.push(row ? row[idx] : null);\n  }\n\n  return item;\n}, _a[SOURCE_FORMAT_OBJECT_ROWS] = getItemSimply, _a[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef, idx) {\n  var item = [];\n\n  for (var i = 0; i < dimsDef.length; i++) {\n    var dimName = dimsDef[i].name;\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (dimName == null) {\n        throw new Error();\n      }\n    }\n\n    var col = rawData[dimName];\n    item.push(col ? col[idx] : null);\n  }\n\n  return item;\n}, _a[SOURCE_FORMAT_ORIGINAL] = getItemSimply, _a);\nexport function getRawSourceItemGetter(sourceFormat, seriesLayoutBy) {\n  var method = rawSourceItemGetterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\n\n  if (process.env.NODE_ENV !== 'production') {\n    assert(method, 'Do not suppport get item on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\n  }\n\n  return method;\n}\n\nvar countSimply = function (rawData, startIndex, dimsDef) {\n  return rawData.length;\n};\n\nvar rawSourceDataCounterMap = (_b = {}, _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef) {\n  return Math.max(0, rawData.length - startIndex);\n}, _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef) {\n  var row = rawData[0];\n  return row ? Math.max(0, row.length - startIndex) : 0;\n}, _b[SOURCE_FORMAT_OBJECT_ROWS] = countSimply, _b[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef) {\n  var dimName = dimsDef[0].name;\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (dimName == null) {\n      throw new Error();\n    }\n  }\n\n  var col = rawData[dimName];\n  return col ? col.length : 0;\n}, _b[SOURCE_FORMAT_ORIGINAL] = countSimply, _b);\nexport function getRawSourceDataCounter(sourceFormat, seriesLayoutBy) {\n  var method = rawSourceDataCounterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\n\n  if (process.env.NODE_ENV !== 'production') {\n    assert(method, 'Do not suppport count on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\n  }\n\n  return method;\n}\n\nvar getRawValueSimply = function (dataItem, dimIndex, dimName) {\n  return dimIndex != null ? dataItem[dimIndex] : dataItem;\n};\n\nvar rawSourceValueGetterMap = (_c = {}, _c[SOURCE_FORMAT_ARRAY_ROWS] = getRawValueSimply, _c[SOURCE_FORMAT_OBJECT_ROWS] = function (dataItem, dimIndex, dimName) {\n  return dimIndex != null ? dataItem[dimName] : dataItem;\n}, _c[SOURCE_FORMAT_KEYED_COLUMNS] = getRawValueSimply, _c[SOURCE_FORMAT_ORIGINAL] = function (dataItem, dimIndex, dimName) {\n  var value = getDataItemValue(dataItem);\n  return dimIndex == null || !(value instanceof Array) ? value : value[dimIndex];\n}, _c[SOURCE_FORMAT_TYPED_ARRAY] = getRawValueSimply, _c);\nexport function getRawSourceValueGetter(sourceFormat) {\n  var method = rawSourceValueGetterMap[sourceFormat];\n\n  if (process.env.NODE_ENV !== 'production') {\n    assert(method, 'Do not suppport get value on \"' + sourceFormat + '\".');\n  }\n\n  return method;\n}\n\nfunction getMethodMapKey(sourceFormat, seriesLayoutBy) {\n  return sourceFormat === SOURCE_FORMAT_ARRAY_ROWS ? sourceFormat + '_' + seriesLayoutBy : sourceFormat;\n}\n\nexport function retrieveRawValue(data, dataIndex, dim) {\n  if (!data) {\n    return;\n  }\n\n  var dataItem = data.getRawDataItem(dataIndex);\n\n  if (dataItem == null) {\n    return;\n  }\n\n  var sourceFormat = data.getProvider().getSource().sourceFormat;\n  var dimName;\n  var dimIndex;\n  var dimInfo = data.getDimensionInfo(dim);\n\n  if (dimInfo) {\n    dimName = dimInfo.name;\n    dimIndex = dimInfo.index;\n  }\n\n  return getRawSourceValueGetter(sourceFormat)(dataItem, dimIndex, dimName);\n}\nexport function retrieveRawAttr(data, dataIndex, attr) {\n  if (!data) {\n    return;\n  }\n\n  var sourceFormat = data.getProvider().getSource().sourceFormat;\n\n  if (sourceFormat !== SOURCE_FORMAT_ORIGINAL && sourceFormat !== SOURCE_FORMAT_OBJECT_ROWS) {\n    return;\n  }\n\n  var dataItem = data.getRawDataItem(dataIndex);\n\n  if (sourceFormat === SOURCE_FORMAT_ORIGINAL && !isObject(dataItem)) {\n    dataItem = null;\n  }\n\n  if (dataItem) {\n    return dataItem[attr];\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { retrieveRawValue } from '../../data/helper/dataProvider';\nimport { formatTpl } from '../../util/format';\nimport { makePrintable } from '../../util/log';\nvar DIMENSION_LABEL_REG = /\\{@(.+?)\\}/g;\n\nvar DataFormatMixin = function () {\n  function DataFormatMixin() {}\n\n  DataFormatMixin.prototype.getDataParams = function (dataIndex, dataType) {\n    var data = this.getData(dataType);\n    var rawValue = this.getRawValue(dataIndex, dataType);\n    var rawDataIndex = data.getRawIndex(dataIndex);\n    var name = data.getName(dataIndex);\n    var itemOpt = data.getRawDataItem(dataIndex);\n    var style = data.getItemVisual(dataIndex, 'style');\n    var color = style && style[data.getItemVisual(dataIndex, 'drawType') || 'fill'];\n    var borderColor = style && style.stroke;\n    var mainType = this.mainType;\n    var isSeries = mainType === 'series';\n    var userOutput = data.userOutput;\n    return {\n      componentType: mainType,\n      componentSubType: this.subType,\n      componentIndex: this.componentIndex,\n      seriesType: isSeries ? this.subType : null,\n      seriesIndex: this.seriesIndex,\n      seriesId: isSeries ? this.id : null,\n      seriesName: isSeries ? this.name : null,\n      name: name,\n      dataIndex: rawDataIndex,\n      data: itemOpt,\n      dataType: dataType,\n      value: rawValue,\n      color: color,\n      borderColor: borderColor,\n      dimensionNames: userOutput ? userOutput.dimensionNames : null,\n      encode: userOutput ? userOutput.encode : null,\n      $vars: ['seriesName', 'name', 'value']\n    };\n  };\n\n  DataFormatMixin.prototype.getFormattedLabel = function (dataIndex, status, dataType, labelDimIndex, formatter, extendParams) {\n    status = status || 'normal';\n    var data = this.getData(dataType);\n    var params = this.getDataParams(dataIndex, dataType);\n\n    if (extendParams) {\n      params.value = extendParams.interpolatedValue;\n    }\n\n    if (labelDimIndex != null && zrUtil.isArray(params.value)) {\n      params.value = params.value[labelDimIndex];\n    }\n\n    if (!formatter) {\n      var itemModel = data.getItemModel(dataIndex);\n      formatter = itemModel.get(status === 'normal' ? ['label', 'formatter'] : [status, 'label', 'formatter']);\n    }\n\n    if (typeof formatter === 'function') {\n      params.status = status;\n      params.dimensionIndex = labelDimIndex;\n      return formatter(params);\n    } else if (typeof formatter === 'string') {\n      var str = formatTpl(formatter, params);\n      return str.replace(DIMENSION_LABEL_REG, function (origin, dimStr) {\n        var len = dimStr.length;\n        var dimLoose = dimStr.charAt(0) === '[' && dimStr.charAt(len - 1) === ']' ? +dimStr.slice(1, len - 1) : dimStr;\n        var val = retrieveRawValue(data, dataIndex, dimLoose);\n\n        if (extendParams && zrUtil.isArray(extendParams.interpolatedValue)) {\n          var dimInfo = data.getDimensionInfo(dimLoose);\n\n          if (dimInfo) {\n            val = extendParams.interpolatedValue[dimInfo.index];\n          }\n        }\n\n        return val != null ? val + '' : '';\n      });\n    }\n  };\n\n  DataFormatMixin.prototype.getRawValue = function (idx, dataType) {\n    return retrieveRawValue(this.getData(dataType), idx);\n  };\n\n  DataFormatMixin.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    return;\n  };\n\n  return DataFormatMixin;\n}();\n\nexport { DataFormatMixin };\n;\nexport function normalizeTooltipFormatResult(result) {\n  var markupText;\n  var markupFragment;\n\n  if (zrUtil.isObject(result)) {\n    if (result.type) {\n      markupFragment = result;\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn('The return type of `formatTooltip` is not supported: ' + makePrintable(result));\n      }\n    }\n  } else {\n    markupText = result;\n  }\n\n  return {\n    markupText: markupText,\n    markupFragment: markupFragment\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { assert, isArray } from 'zrender/lib/core/util';\n;\nexport function createTask(define) {\n  return new Task(define);\n}\n\nvar Task = function () {\n  function Task(define) {\n    define = define || {};\n    this._reset = define.reset;\n    this._plan = define.plan;\n    this._count = define.count;\n    this._onDirty = define.onDirty;\n    this._dirty = true;\n  }\n\n  Task.prototype.perform = function (performArgs) {\n    var upTask = this._upstream;\n    var skip = performArgs && performArgs.skip;\n\n    if (this._dirty && upTask) {\n      var context = this.context;\n      context.data = context.outputData = upTask.context.outputData;\n    }\n\n    if (this.__pipeline) {\n      this.__pipeline.currentTask = this;\n    }\n\n    var planResult;\n\n    if (this._plan && !skip) {\n      planResult = this._plan(this.context);\n    }\n\n    var lastModBy = normalizeModBy(this._modBy);\n    var lastModDataCount = this._modDataCount || 0;\n    var modBy = normalizeModBy(performArgs && performArgs.modBy);\n    var modDataCount = performArgs && performArgs.modDataCount || 0;\n\n    if (lastModBy !== modBy || lastModDataCount !== modDataCount) {\n      planResult = 'reset';\n    }\n\n    function normalizeModBy(val) {\n      !(val >= 1) && (val = 1);\n      return val;\n    }\n\n    var forceFirstProgress;\n\n    if (this._dirty || planResult === 'reset') {\n      this._dirty = false;\n      forceFirstProgress = this._doReset(skip);\n    }\n\n    this._modBy = modBy;\n    this._modDataCount = modDataCount;\n    var step = performArgs && performArgs.step;\n\n    if (upTask) {\n      if (process.env.NODE_ENV !== 'production') {\n        assert(upTask._outputDueEnd != null);\n      }\n\n      this._dueEnd = upTask._outputDueEnd;\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        assert(!this._progress || this._count);\n      }\n\n      this._dueEnd = this._count ? this._count(this.context) : Infinity;\n    }\n\n    if (this._progress) {\n      var start = this._dueIndex;\n      var end = Math.min(step != null ? this._dueIndex + step : Infinity, this._dueEnd);\n\n      if (!skip && (forceFirstProgress || start < end)) {\n        var progress = this._progress;\n\n        if (isArray(progress)) {\n          for (var i = 0; i < progress.length; i++) {\n            this._doProgress(progress[i], start, end, modBy, modDataCount);\n          }\n        } else {\n          this._doProgress(progress, start, end, modBy, modDataCount);\n        }\n      }\n\n      this._dueIndex = end;\n      var outputDueEnd = this._settedOutputEnd != null ? this._settedOutputEnd : end;\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(outputDueEnd >= this._outputDueEnd);\n      }\n\n      this._outputDueEnd = outputDueEnd;\n    } else {\n      this._dueIndex = this._outputDueEnd = this._settedOutputEnd != null ? this._settedOutputEnd : this._dueEnd;\n    }\n\n    return this.unfinished();\n  };\n\n  Task.prototype.dirty = function () {\n    this._dirty = true;\n    this._onDirty && this._onDirty(this.context);\n  };\n\n  Task.prototype._doProgress = function (progress, start, end, modBy, modDataCount) {\n    iterator.reset(start, end, modBy, modDataCount);\n    this._callingProgress = progress;\n\n    this._callingProgress({\n      start: start,\n      end: end,\n      count: end - start,\n      next: iterator.next\n    }, this.context);\n  };\n\n  Task.prototype._doReset = function (skip) {\n    this._dueIndex = this._outputDueEnd = this._dueEnd = 0;\n    this._settedOutputEnd = null;\n    var progress;\n    var forceFirstProgress;\n\n    if (!skip && this._reset) {\n      progress = this._reset(this.context);\n\n      if (progress && progress.progress) {\n        forceFirstProgress = progress.forceFirstProgress;\n        progress = progress.progress;\n      }\n\n      if (isArray(progress) && !progress.length) {\n        progress = null;\n      }\n    }\n\n    this._progress = progress;\n    this._modBy = this._modDataCount = null;\n    var downstream = this._downstream;\n    downstream && downstream.dirty();\n    return forceFirstProgress;\n  };\n\n  Task.prototype.unfinished = function () {\n    return this._progress && this._dueIndex < this._dueEnd;\n  };\n\n  Task.prototype.pipe = function (downTask) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(downTask && !downTask._disposed && downTask !== this);\n    }\n\n    if (this._downstream !== downTask || this._dirty) {\n      this._downstream = downTask;\n      downTask._upstream = this;\n      downTask.dirty();\n    }\n  };\n\n  Task.prototype.dispose = function () {\n    if (this._disposed) {\n      return;\n    }\n\n    this._upstream && (this._upstream._downstream = null);\n    this._downstream && (this._downstream._upstream = null);\n    this._dirty = false;\n    this._disposed = true;\n  };\n\n  Task.prototype.getUpstream = function () {\n    return this._upstream;\n  };\n\n  Task.prototype.getDownstream = function () {\n    return this._downstream;\n  };\n\n  Task.prototype.setOutputEnd = function (end) {\n    this._outputDueEnd = this._settedOutputEnd = end;\n  };\n\n  return Task;\n}();\n\nexport { Task };\n\nvar iterator = function () {\n  var end;\n  var current;\n  var modBy;\n  var modDataCount;\n  var winCount;\n  var it = {\n    reset: function (s, e, sStep, sCount) {\n      current = s;\n      end = e;\n      modBy = sStep;\n      modDataCount = sCount;\n      winCount = Math.ceil(modDataCount / modBy);\n      it.next = modBy > 1 && modDataCount > 0 ? modNext : sequentialNext;\n    }\n  };\n  return it;\n\n  function sequentialNext() {\n    return current < end ? current++ : null;\n  }\n\n  function modNext() {\n    var dataIndex = current % winCount * modBy + Math.ceil(current / winCount);\n    var result = current >= end ? null : dataIndex < modDataCount ? dataIndex : current;\n    current++;\n    return result;\n  }\n}();","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parseDate, numericToNumber } from '../../util/number';\nimport { createHashMap, trim, hasOwn } from 'zrender/lib/core/util';\nimport { throwError } from '../../util/log';\nexport function parseDataValue(value, opt) {\n  var dimType = opt && opt.type;\n\n  if (dimType === 'ordinal') {\n    var ordinalMeta = opt && opt.ordinalMeta;\n    return ordinalMeta ? ordinalMeta.parseAndCollect(value) : value;\n  }\n\n  if (dimType === 'time' && typeof value !== 'number' && value != null && value !== '-') {\n    value = +parseDate(value);\n  }\n\n  return value == null || value === '' ? NaN : +value;\n}\n;\nvar valueParserMap = createHashMap({\n  'number': function (val) {\n    return parseFloat(val);\n  },\n  'time': function (val) {\n    return +parseDate(val);\n  },\n  'trim': function (val) {\n    return typeof val === 'string' ? trim(val) : val;\n  }\n});\nexport function getRawValueParser(type) {\n  return valueParserMap.get(type);\n}\nvar ORDER_COMPARISON_OP_MAP = {\n  lt: function (lval, rval) {\n    return lval < rval;\n  },\n  lte: function (lval, rval) {\n    return lval <= rval;\n  },\n  gt: function (lval, rval) {\n    return lval > rval;\n  },\n  gte: function (lval, rval) {\n    return lval >= rval;\n  }\n};\n\nvar FilterOrderComparator = function () {\n  function FilterOrderComparator(op, rval) {\n    if (typeof rval !== 'number') {\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'rvalue of \"<\", \">\", \"<=\", \">=\" can only be number in filter.';\n      }\n\n      throwError(errMsg);\n    }\n\n    this._opFn = ORDER_COMPARISON_OP_MAP[op];\n    this._rvalFloat = numericToNumber(rval);\n  }\n\n  FilterOrderComparator.prototype.evaluate = function (lval) {\n    return typeof lval === 'number' ? this._opFn(lval, this._rvalFloat) : this._opFn(numericToNumber(lval), this._rvalFloat);\n  };\n\n  return FilterOrderComparator;\n}();\n\nvar SortOrderComparator = function () {\n  function SortOrderComparator(order, incomparable) {\n    var isDesc = order === 'desc';\n    this._resultLT = isDesc ? 1 : -1;\n\n    if (incomparable == null) {\n      incomparable = isDesc ? 'min' : 'max';\n    }\n\n    this._incomparable = incomparable === 'min' ? -Infinity : Infinity;\n  }\n\n  SortOrderComparator.prototype.evaluate = function (lval, rval) {\n    var lvalTypeof = typeof lval;\n    var rvalTypeof = typeof rval;\n    var lvalFloat = lvalTypeof === 'number' ? lval : numericToNumber(lval);\n    var rvalFloat = rvalTypeof === 'number' ? rval : numericToNumber(rval);\n    var lvalNotNumeric = isNaN(lvalFloat);\n    var rvalNotNumeric = isNaN(rvalFloat);\n\n    if (lvalNotNumeric) {\n      lvalFloat = this._incomparable;\n    }\n\n    if (rvalNotNumeric) {\n      rvalFloat = this._incomparable;\n    }\n\n    if (lvalNotNumeric && rvalNotNumeric) {\n      var lvalIsStr = lvalTypeof === 'string';\n      var rvalIsStr = rvalTypeof === 'string';\n\n      if (lvalIsStr) {\n        lvalFloat = rvalIsStr ? lval : 0;\n      }\n\n      if (rvalIsStr) {\n        rvalFloat = lvalIsStr ? rval : 0;\n      }\n    }\n\n    return lvalFloat < rvalFloat ? this._resultLT : lvalFloat > rvalFloat ? -this._resultLT : 0;\n  };\n\n  return SortOrderComparator;\n}();\n\nexport { SortOrderComparator };\n\nvar FilterEqualityComparator = function () {\n  function FilterEqualityComparator(isEq, rval) {\n    this._rval = rval;\n    this._isEQ = isEq;\n    this._rvalTypeof = typeof rval;\n    this._rvalFloat = numericToNumber(rval);\n  }\n\n  FilterEqualityComparator.prototype.evaluate = function (lval) {\n    var eqResult = lval === this._rval;\n\n    if (!eqResult) {\n      var lvalTypeof = typeof lval;\n\n      if (lvalTypeof !== this._rvalTypeof && (lvalTypeof === 'number' || this._rvalTypeof === 'number')) {\n        eqResult = numericToNumber(lval) === this._rvalFloat;\n      }\n    }\n\n    return this._isEQ ? eqResult : !eqResult;\n  };\n\n  return FilterEqualityComparator;\n}();\n\nexport function createFilterComparator(op, rval) {\n  return op === 'eq' || op === 'ne' ? new FilterEqualityComparator(op === 'eq', rval) : hasOwn(ORDER_COMPARISON_OP_MAP, op) ? new FilterOrderComparator(op, rval) : null;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { SERIES_LAYOUT_BY_COLUMN, SOURCE_FORMAT_OBJECT_ROWS, SOURCE_FORMAT_ARRAY_ROWS } from '../../util/types';\nimport { normalizeToArray } from '../../util/model';\nimport { createHashMap, bind, each, hasOwn, map, clone, isObject, extend } from 'zrender/lib/core/util';\nimport { getRawSourceItemGetter, getRawSourceDataCounter, getRawSourceValueGetter } from './dataProvider';\nimport { parseDataValue } from './dataValueHelper';\nimport { consoleLog, makePrintable, throwError } from '../../util/log';\nimport { createSource, detectSourceFormat } from '../Source';\n\nvar ExternalSource = function () {\n  function ExternalSource() {}\n\n  ExternalSource.prototype.getRawData = function () {\n    throw new Error('not supported');\n  };\n\n  ExternalSource.prototype.getRawDataItem = function (dataIndex) {\n    throw new Error('not supported');\n  };\n\n  ExternalSource.prototype.cloneRawData = function () {\n    return;\n  };\n\n  ExternalSource.prototype.getDimensionInfo = function (dim) {\n    return;\n  };\n\n  ExternalSource.prototype.cloneAllDimensionInfo = function () {\n    return;\n  };\n\n  ExternalSource.prototype.count = function () {\n    return;\n  };\n\n  ExternalSource.prototype.retrieveValue = function (dataIndex, dimIndex) {\n    return;\n  };\n\n  ExternalSource.prototype.retrieveValueFromItem = function (dataItem, dimIndex) {\n    return;\n  };\n\n  ExternalSource.prototype.convertValue = function (rawVal, dimInfo) {\n    return parseDataValue(rawVal, dimInfo);\n  };\n\n  return ExternalSource;\n}();\n\nexport { ExternalSource };\n\nfunction createExternalSource(internalSource, externalTransform) {\n  var extSource = new ExternalSource();\n  var data = internalSource.data;\n  var sourceFormat = extSource.sourceFormat = internalSource.sourceFormat;\n  var sourceHeaderCount = internalSource.startIndex;\n  var errMsg = '';\n\n  if (internalSource.seriesLayoutBy !== SERIES_LAYOUT_BY_COLUMN) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = '`seriesLayoutBy` of upstream dataset can only be \"column\" in data transform.';\n    }\n\n    throwError(errMsg);\n  }\n\n  var dimensions = [];\n  var dimsByName = {};\n  var dimsDef = internalSource.dimensionsDefine;\n\n  if (dimsDef) {\n    each(dimsDef, function (dimDef, idx) {\n      var name = dimDef.name;\n      var dimDefExt = {\n        index: idx,\n        name: name,\n        displayName: dimDef.displayName\n      };\n      dimensions.push(dimDefExt);\n\n      if (name != null) {\n        var errMsg_1 = '';\n\n        if (hasOwn(dimsByName, name)) {\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg_1 = 'dimension name \"' + name + '\" duplicated.';\n          }\n\n          throwError(errMsg_1);\n        }\n\n        dimsByName[name] = dimDefExt;\n      }\n    });\n  } else {\n    for (var i = 0; i < internalSource.dimensionsDetectedCount || 0; i++) {\n      dimensions.push({\n        index: i\n      });\n    }\n  }\n\n  var rawItemGetter = getRawSourceItemGetter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\n\n  if (externalTransform.__isBuiltIn) {\n    extSource.getRawDataItem = function (dataIndex) {\n      return rawItemGetter(data, sourceHeaderCount, dimensions, dataIndex);\n    };\n\n    extSource.getRawData = bind(getRawData, null, internalSource);\n  }\n\n  extSource.cloneRawData = bind(cloneRawData, null, internalSource);\n  var rawCounter = getRawSourceDataCounter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\n  extSource.count = bind(rawCounter, null, data, sourceHeaderCount, dimensions);\n  var rawValueGetter = getRawSourceValueGetter(sourceFormat);\n\n  extSource.retrieveValue = function (dataIndex, dimIndex) {\n    var rawItem = rawItemGetter(data, sourceHeaderCount, dimensions, dataIndex);\n    return retrieveValueFromItem(rawItem, dimIndex);\n  };\n\n  var retrieveValueFromItem = extSource.retrieveValueFromItem = function (dataItem, dimIndex) {\n    if (dataItem == null) {\n      return;\n    }\n\n    var dimDef = dimensions[dimIndex];\n\n    if (dimDef) {\n      return rawValueGetter(dataItem, dimIndex, dimDef.name);\n    }\n  };\n\n  extSource.getDimensionInfo = bind(getDimensionInfo, null, dimensions, dimsByName);\n  extSource.cloneAllDimensionInfo = bind(cloneAllDimensionInfo, null, dimensions);\n  return extSource;\n}\n\nfunction getRawData(upstream) {\n  var sourceFormat = upstream.sourceFormat;\n\n  if (!isSupportedSourceFormat(sourceFormat)) {\n    var errMsg = '';\n\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = '`getRawData` is not supported in source format ' + sourceFormat;\n    }\n\n    throwError(errMsg);\n  }\n\n  return upstream.data;\n}\n\nfunction cloneRawData(upstream) {\n  var sourceFormat = upstream.sourceFormat;\n  var data = upstream.data;\n\n  if (!isSupportedSourceFormat(sourceFormat)) {\n    var errMsg = '';\n\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = '`cloneRawData` is not supported in source format ' + sourceFormat;\n    }\n\n    throwError(errMsg);\n  }\n\n  if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n    var result = [];\n\n    for (var i = 0, len = data.length; i < len; i++) {\n      result.push(data[i].slice());\n    }\n\n    return result;\n  } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n    var result = [];\n\n    for (var i = 0, len = data.length; i < len; i++) {\n      result.push(extend({}, data[i]));\n    }\n\n    return result;\n  }\n}\n\nfunction getDimensionInfo(dimensions, dimsByName, dim) {\n  if (dim == null) {\n    return;\n  }\n\n  if (typeof dim === 'number' || !isNaN(dim) && !hasOwn(dimsByName, dim)) {\n    return dimensions[dim];\n  } else if (hasOwn(dimsByName, dim)) {\n    return dimsByName[dim];\n  }\n}\n\nfunction cloneAllDimensionInfo(dimensions) {\n  return clone(dimensions);\n}\n\nvar externalTransformMap = createHashMap();\nexport function registerExternalTransform(externalTransform) {\n  externalTransform = clone(externalTransform);\n  var type = externalTransform.type;\n  var errMsg = '';\n\n  if (!type) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'Must have a `type` when `registerTransform`.';\n    }\n\n    throwError(errMsg);\n  }\n\n  var typeParsed = type.split(':');\n\n  if (typeParsed.length !== 2) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'Name must include namespace like \"ns:regression\".';\n    }\n\n    throwError(errMsg);\n  }\n\n  var isBuiltIn = false;\n\n  if (typeParsed[0] === 'echarts') {\n    type = typeParsed[1];\n    isBuiltIn = true;\n  }\n\n  externalTransform.__isBuiltIn = isBuiltIn;\n  externalTransformMap.set(type, externalTransform);\n}\nexport function applyDataTransform(rawTransOption, sourceList, infoForPrint) {\n  var pipedTransOption = normalizeToArray(rawTransOption);\n  var pipeLen = pipedTransOption.length;\n  var errMsg = '';\n\n  if (!pipeLen) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'If `transform` declared, it should at least contain one transform.';\n    }\n\n    throwError(errMsg);\n  }\n\n  for (var i = 0, len = pipeLen; i < len; i++) {\n    var transOption = pipedTransOption[i];\n    sourceList = applySingleDataTransform(transOption, sourceList, infoForPrint, pipeLen === 1 ? null : i);\n\n    if (i !== len - 1) {\n      sourceList.length = Math.max(sourceList.length, 1);\n    }\n  }\n\n  return sourceList;\n}\n\nfunction applySingleDataTransform(transOption, upSourceList, infoForPrint, pipeIndex) {\n  var errMsg = '';\n\n  if (!upSourceList.length) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'Must have at least one upstream dataset.';\n    }\n\n    throwError(errMsg);\n  }\n\n  if (!isObject(transOption)) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'transform declaration must be an object rather than ' + typeof transOption + '.';\n    }\n\n    throwError(errMsg);\n  }\n\n  var transType = transOption.type;\n  var externalTransform = externalTransformMap.get(transType);\n\n  if (!externalTransform) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'Can not find transform on type \"' + transType + '\".';\n    }\n\n    throwError(errMsg);\n  }\n\n  var extUpSourceList = map(upSourceList, function (upSource) {\n    return createExternalSource(upSource, externalTransform);\n  });\n  var resultList = normalizeToArray(externalTransform.transform({\n    upstream: extUpSourceList[0],\n    upstreamList: extUpSourceList,\n    config: clone(transOption.config)\n  }));\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (transOption.print) {\n      var printStrArr = map(resultList, function (extSource) {\n        var pipeIndexStr = pipeIndex != null ? ' === pipe index: ' + pipeIndex : '';\n        return ['=== dataset index: ' + infoForPrint.datasetIndex + pipeIndexStr + ' ===', '- transform result data:', makePrintable(extSource.data), '- transform result dimensions:', makePrintable(extSource.dimensions)].join('\\n');\n      }).join('\\n');\n      consoleLog(printStrArr);\n    }\n  }\n\n  return map(resultList, function (result, resultIndex) {\n    var errMsg = '';\n\n    if (!isObject(result)) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'A transform should not return some empty results.';\n      }\n\n      throwError(errMsg);\n    }\n\n    if (!result.data) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'Transform result data should be not be null or undefined';\n      }\n\n      throwError(errMsg);\n    }\n\n    var sourceFormat = detectSourceFormat(result.data);\n\n    if (!isSupportedSourceFormat(sourceFormat)) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'Transform result data should be array rows or object rows.';\n      }\n\n      throwError(errMsg);\n    }\n\n    var resultMetaRawOption;\n    var firstUpSource = upSourceList[0];\n\n    if (firstUpSource && resultIndex === 0 && !result.dimensions) {\n      var startIndex = firstUpSource.startIndex;\n\n      if (startIndex) {\n        result.data = firstUpSource.data.slice(0, startIndex).concat(result.data);\n      }\n\n      resultMetaRawOption = {\n        seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN,\n        sourceHeader: startIndex,\n        dimensions: firstUpSource.metaRawOption.dimensions\n      };\n    } else {\n      resultMetaRawOption = {\n        seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN,\n        sourceHeader: 0,\n        dimensions: result.dimensions\n      };\n    }\n\n    return createSource(result.data, resultMetaRawOption, null, null);\n  });\n}\n\nfunction isSupportedSourceFormat(sourceFormat) {\n  return sourceFormat === SOURCE_FORMAT_ARRAY_ROWS || sourceFormat === SOURCE_FORMAT_OBJECT_ROWS;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { setAsPrimitive, map, isTypedArray, assert, each, retrieve2 } from 'zrender/lib/core/util';\nimport { createSource, cloneSourceShallow } from '../Source';\nimport { SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ORIGINAL } from '../../util/types';\nimport { querySeriesUpstreamDatasetModel, queryDatasetUpstreamDatasetModels } from './sourceHelper';\nimport { applyDataTransform } from './transform';\n\nvar SourceManager = function () {\n  function SourceManager(sourceHost) {\n    this._sourceList = [];\n    this._upstreamSignList = [];\n    this._versionSignBase = 0;\n    this._sourceHost = sourceHost;\n  }\n\n  SourceManager.prototype.dirty = function () {\n    this._setLocalSource([], []);\n  };\n\n  SourceManager.prototype._setLocalSource = function (sourceList, upstreamSignList) {\n    this._sourceList = sourceList;\n    this._upstreamSignList = upstreamSignList;\n    this._versionSignBase++;\n\n    if (this._versionSignBase > 9e10) {\n      this._versionSignBase = 0;\n    }\n  };\n\n  SourceManager.prototype._getVersionSign = function () {\n    return this._sourceHost.uid + '_' + this._versionSignBase;\n  };\n\n  SourceManager.prototype.prepareSource = function () {\n    if (this._isDirty()) {\n      this._createSource();\n    }\n  };\n\n  SourceManager.prototype._createSource = function () {\n    this._setLocalSource([], []);\n\n    var sourceHost = this._sourceHost;\n\n    var upSourceMgrList = this._getUpstreamSourceManagers();\n\n    var hasUpstream = !!upSourceMgrList.length;\n    var resultSourceList;\n    var upstreamSignList;\n\n    if (isSeries(sourceHost)) {\n      var seriesModel = sourceHost;\n      var data = void 0;\n      var sourceFormat = void 0;\n      var upSource = void 0;\n\n      if (hasUpstream) {\n        var upSourceMgr = upSourceMgrList[0];\n        upSourceMgr.prepareSource();\n        upSource = upSourceMgr.getSource();\n        data = upSource.data;\n        sourceFormat = upSource.sourceFormat;\n        upstreamSignList = [upSourceMgr._getVersionSign()];\n      } else {\n        data = seriesModel.get('data', true);\n        sourceFormat = isTypedArray(data) ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL;\n        upstreamSignList = [];\n      }\n\n      var newMetaRawOption = this._getSourceMetaRawOption();\n\n      var upMetaRawOption = upSource ? upSource.metaRawOption : null;\n      var seriesLayoutBy = retrieve2(newMetaRawOption.seriesLayoutBy, upMetaRawOption ? upMetaRawOption.seriesLayoutBy : null);\n      var sourceHeader = retrieve2(newMetaRawOption.sourceHeader, upMetaRawOption ? upMetaRawOption.sourceHeader : null);\n      var dimensions = retrieve2(newMetaRawOption.dimensions, upMetaRawOption ? upMetaRawOption.dimensions : null);\n      resultSourceList = [createSource(data, {\n        seriesLayoutBy: seriesLayoutBy,\n        sourceHeader: sourceHeader,\n        dimensions: dimensions\n      }, sourceFormat, seriesModel.get('encode', true))];\n    } else {\n      var datasetModel = sourceHost;\n\n      if (hasUpstream) {\n        var result = this._applyTransform(upSourceMgrList);\n\n        resultSourceList = result.sourceList;\n        upstreamSignList = result.upstreamSignList;\n      } else {\n        var sourceData = datasetModel.get('source', true);\n        resultSourceList = [createSource(sourceData, this._getSourceMetaRawOption(), null, null)];\n        upstreamSignList = [];\n      }\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(resultSourceList && upstreamSignList);\n    }\n\n    this._setLocalSource(resultSourceList, upstreamSignList);\n  };\n\n  SourceManager.prototype._applyTransform = function (upMgrList) {\n    var datasetModel = this._sourceHost;\n    var transformOption = datasetModel.get('transform', true);\n    var fromTransformResult = datasetModel.get('fromTransformResult', true);\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(fromTransformResult != null || transformOption != null);\n    }\n\n    if (fromTransformResult != null) {\n      var errMsg = '';\n\n      if (upMgrList.length !== 1) {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = 'When using `fromTransformResult`, there should be only one upstream dataset';\n        }\n\n        doThrow(errMsg);\n      }\n    }\n\n    var sourceList;\n    var upSourceList = [];\n    var upstreamSignList = [];\n    each(upMgrList, function (upMgr) {\n      upMgr.prepareSource();\n      var upSource = upMgr.getSource(fromTransformResult || 0);\n      var errMsg = '';\n\n      if (fromTransformResult != null && !upSource) {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = 'Can not retrieve result by `fromTransformResult`: ' + fromTransformResult;\n        }\n\n        doThrow(errMsg);\n      }\n\n      upSourceList.push(upSource);\n      upstreamSignList.push(upMgr._getVersionSign());\n    });\n\n    if (transformOption) {\n      sourceList = applyDataTransform(transformOption, upSourceList, {\n        datasetIndex: datasetModel.componentIndex\n      });\n    } else if (fromTransformResult != null) {\n      sourceList = [cloneSourceShallow(upSourceList[0])];\n    }\n\n    return {\n      sourceList: sourceList,\n      upstreamSignList: upstreamSignList\n    };\n  };\n\n  SourceManager.prototype._isDirty = function () {\n    var sourceList = this._sourceList;\n\n    if (!sourceList.length) {\n      return true;\n    }\n\n    var upSourceMgrList = this._getUpstreamSourceManagers();\n\n    for (var i = 0; i < upSourceMgrList.length; i++) {\n      var upSrcMgr = upSourceMgrList[i];\n\n      if (upSrcMgr._isDirty() || this._upstreamSignList[i] !== upSrcMgr._getVersionSign()) {\n        return true;\n      }\n    }\n  };\n\n  SourceManager.prototype.getSource = function (sourceIndex) {\n    return this._sourceList[sourceIndex || 0];\n  };\n\n  SourceManager.prototype._getUpstreamSourceManagers = function () {\n    var sourceHost = this._sourceHost;\n\n    if (isSeries(sourceHost)) {\n      var datasetModel = querySeriesUpstreamDatasetModel(sourceHost);\n      return !datasetModel ? [] : [datasetModel.getSourceManager()];\n    } else {\n      return map(queryDatasetUpstreamDatasetModels(sourceHost), function (datasetModel) {\n        return datasetModel.getSourceManager();\n      });\n    }\n  };\n\n  SourceManager.prototype._getSourceMetaRawOption = function () {\n    var sourceHost = this._sourceHost;\n    var seriesLayoutBy;\n    var sourceHeader;\n    var dimensions;\n\n    if (isSeries(sourceHost)) {\n      seriesLayoutBy = sourceHost.get('seriesLayoutBy', true);\n      sourceHeader = sourceHost.get('sourceHeader', true);\n      dimensions = sourceHost.get('dimensions', true);\n    } else if (!this._getUpstreamSourceManagers().length) {\n      var model = sourceHost;\n      seriesLayoutBy = model.get('seriesLayoutBy', true);\n      sourceHeader = model.get('sourceHeader', true);\n      dimensions = model.get('dimensions', true);\n    }\n\n    return {\n      seriesLayoutBy: seriesLayoutBy,\n      sourceHeader: sourceHeader,\n      dimensions: dimensions\n    };\n  };\n\n  return SourceManager;\n}();\n\nexport { SourceManager };\nexport function disableTransformOptionMerge(datasetModel) {\n  var transformOption = datasetModel.option.transform;\n  transformOption && setAsPrimitive(datasetModel.option.transform);\n}\n\nfunction isSeries(sourceHost) {\n  return sourceHost.mainType === 'series';\n}\n\nfunction doThrow(errMsg) {\n  throw new Error(errMsg);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { getTooltipMarker, encodeHTML, makeValueReadable, convertToColorString } from '../../util/format';\nimport { isString, each, hasOwn, isArray, map, assert, extend } from 'zrender/lib/core/util';\nimport { SortOrderComparator } from '../../data/helper/dataValueHelper';\nimport { getRandomIdBase } from '../../util/number';\nvar TOOLTIP_LINE_HEIGHT_CSS = 'line-height:1';\n\nfunction getTooltipTextStyle(textStyle, renderMode) {\n  var nameFontColor = textStyle.color || '#6e7079';\n  var nameFontSize = textStyle.fontSize || 12;\n  var nameFontWeight = textStyle.fontWeight || '400';\n  var valueFontColor = textStyle.color || '#464646';\n  var valueFontSize = textStyle.fontSize || 14;\n  var valueFontWeight = textStyle.fontWeight || '900';\n\n  if (renderMode === 'html') {\n    return {\n      nameStyle: \"font-size:\" + nameFontSize + \"px;color:\" + nameFontColor + \";font-weight:\" + nameFontWeight,\n      valueStyle: \"font-size:\" + valueFontSize + \"px;color:\" + valueFontColor + \";font-weight:\" + valueFontWeight\n    };\n  } else {\n    return {\n      nameStyle: {\n        fontSize: nameFontSize,\n        fill: nameFontColor,\n        fontWeight: nameFontWeight\n      },\n      valueStyle: {\n        fontSize: valueFontSize,\n        fill: valueFontColor,\n        fontWeight: valueFontWeight\n      }\n    };\n  }\n}\n\nvar HTML_GAPS = [0, 10, 20, 30];\nvar RICH_TEXT_GAPS = ['', '\\n', '\\n\\n', '\\n\\n\\n'];\nexport function createTooltipMarkup(type, option) {\n  option.type = type;\n  return option;\n}\n\nfunction getBuilder(fragment) {\n  return hasOwn(builderMap, fragment.type) && builderMap[fragment.type];\n}\n\nvar builderMap = {\n  section: {\n    planLayout: function (fragment) {\n      var subBlockLen = fragment.blocks.length;\n      var thisBlockHasInnerGap = subBlockLen > 1 || subBlockLen > 0 && !fragment.noHeader;\n      var thisGapLevelBetweenSubBlocks = 0;\n      each(fragment.blocks, function (subBlock) {\n        getBuilder(subBlock).planLayout(subBlock);\n        var subGapLevel = subBlock.__gapLevelBetweenSubBlocks;\n\n        if (subGapLevel >= thisGapLevelBetweenSubBlocks) {\n          thisGapLevelBetweenSubBlocks = subGapLevel + (thisBlockHasInnerGap && (!subGapLevel || subBlock.type === 'section' && !subBlock.noHeader) ? 1 : 0);\n        }\n      });\n      fragment.__gapLevelBetweenSubBlocks = thisGapLevelBetweenSubBlocks;\n    },\n    build: function (ctx, fragment, topMarginForOuterGap, toolTipTextStyle) {\n      var noHeader = fragment.noHeader;\n      var gaps = getGap(fragment);\n      var subMarkupText = buildSubBlocks(ctx, fragment, noHeader ? topMarginForOuterGap : gaps.html, toolTipTextStyle);\n\n      if (noHeader) {\n        return subMarkupText;\n      }\n\n      var displayableHeader = makeValueReadable(fragment.header, 'ordinal', ctx.useUTC);\n      var nameStyle = getTooltipTextStyle(toolTipTextStyle, ctx.renderMode).nameStyle;\n\n      if (ctx.renderMode === 'richText') {\n        return wrapInlineNameRichText(ctx, displayableHeader, nameStyle) + gaps.richText + subMarkupText;\n      } else {\n        return wrapBlockHTML(\"<div style=\\\"\" + nameStyle + \";\" + TOOLTIP_LINE_HEIGHT_CSS + \";\\\">\" + encodeHTML(displayableHeader) + '</div>' + subMarkupText, topMarginForOuterGap);\n      }\n    }\n  },\n  nameValue: {\n    planLayout: function (fragment) {\n      fragment.__gapLevelBetweenSubBlocks = 0;\n    },\n    build: function (ctx, fragment, topMarginForOuterGap, toolTipTextStyle) {\n      var renderMode = ctx.renderMode;\n      var noName = fragment.noName;\n      var noValue = fragment.noValue;\n      var noMarker = !fragment.markerType;\n      var name = fragment.name;\n      var value = fragment.value;\n      var useUTC = ctx.useUTC;\n\n      if (noName && noValue) {\n        return;\n      }\n\n      var markerStr = noMarker ? '' : ctx.markupStyleCreator.makeTooltipMarker(fragment.markerType, fragment.markerColor || '#333', renderMode);\n      var readableName = noName ? '' : makeValueReadable(name, 'ordinal', useUTC);\n      var valueTypeOption = fragment.valueType;\n      var readableValueList = noValue ? [] : isArray(value) ? map(value, function (val, idx) {\n        return makeValueReadable(val, isArray(valueTypeOption) ? valueTypeOption[idx] : valueTypeOption, useUTC);\n      }) : [makeValueReadable(value, isArray(valueTypeOption) ? valueTypeOption[0] : valueTypeOption, useUTC)];\n      var valueAlignRight = !noMarker || !noName;\n      var valueCloseToMarker = !noMarker && noName;\n\n      var _a = getTooltipTextStyle(toolTipTextStyle, renderMode),\n          nameStyle = _a.nameStyle,\n          valueStyle = _a.valueStyle;\n\n      return renderMode === 'richText' ? (noMarker ? '' : markerStr) + (noName ? '' : wrapInlineNameRichText(ctx, readableName, nameStyle)) + (noValue ? '' : wrapInlineValueRichText(ctx, readableValueList, valueAlignRight, valueCloseToMarker, valueStyle)) : wrapBlockHTML((noMarker ? '' : markerStr) + (noName ? '' : wrapInlineNameHTML(readableName, !noMarker, nameStyle)) + (noValue ? '' : wrapInlineValueHTML(readableValueList, valueAlignRight, valueCloseToMarker, valueStyle)), topMarginForOuterGap);\n    }\n  }\n};\n\nfunction buildSubBlocks(ctx, fragment, topMarginForOuterGap, tooltipTextStyle) {\n  var subMarkupTextList = [];\n  var subBlocks = fragment.blocks || [];\n  assert(!subBlocks || isArray(subBlocks));\n  subBlocks = subBlocks || [];\n  var orderMode = ctx.orderMode;\n\n  if (fragment.sortBlocks && orderMode) {\n    subBlocks = subBlocks.slice();\n    var orderMap = {\n      valueAsc: 'asc',\n      valueDesc: 'desc'\n    };\n\n    if (hasOwn(orderMap, orderMode)) {\n      var comparator_1 = new SortOrderComparator(orderMap[orderMode], null);\n      subBlocks.sort(function (a, b) {\n        return comparator_1.evaluate(a.sortParam, b.sortParam);\n      });\n    } else if (orderMode === 'seriesDesc') {\n      subBlocks.reverse();\n    }\n  }\n\n  var gaps = getGap(fragment);\n  each(subBlocks, function (subBlock, idx) {\n    var subMarkupText = getBuilder(subBlock).build(ctx, subBlock, idx > 0 ? gaps.html : 0, tooltipTextStyle);\n    subMarkupText != null && subMarkupTextList.push(subMarkupText);\n  });\n\n  if (!subMarkupTextList.length) {\n    return;\n  }\n\n  return ctx.renderMode === 'richText' ? subMarkupTextList.join(gaps.richText) : wrapBlockHTML(subMarkupTextList.join(''), topMarginForOuterGap);\n}\n\nexport function buildTooltipMarkup(fragment, markupStyleCreator, renderMode, orderMode, useUTC, toolTipTextStyle) {\n  if (!fragment) {\n    return;\n  }\n\n  var builder = getBuilder(fragment);\n  builder.planLayout(fragment);\n  var ctx = {\n    useUTC: useUTC,\n    renderMode: renderMode,\n    orderMode: orderMode,\n    markupStyleCreator: markupStyleCreator\n  };\n  return builder.build(ctx, fragment, 0, toolTipTextStyle);\n}\n\nfunction getGap(fragment) {\n  var gapLevelBetweenSubBlocks = fragment.__gapLevelBetweenSubBlocks;\n  return {\n    html: HTML_GAPS[gapLevelBetweenSubBlocks],\n    richText: RICH_TEXT_GAPS[gapLevelBetweenSubBlocks]\n  };\n}\n\nfunction wrapBlockHTML(encodedContent, topGap) {\n  var clearfix = '<div style=\"clear:both\"></div>';\n  var marginCSS = \"margin: \" + topGap + \"px 0 0\";\n  return \"<div style=\\\"\" + marginCSS + \";\" + TOOLTIP_LINE_HEIGHT_CSS + \";\\\">\" + encodedContent + clearfix + '</div>';\n}\n\nfunction wrapInlineNameHTML(name, leftHasMarker, style) {\n  var marginCss = leftHasMarker ? 'margin-left:2px' : '';\n  return \"<span style=\\\"\" + style + \";\" + marginCss + \"\\\">\" + encodeHTML(name) + '</span>';\n}\n\nfunction wrapInlineValueHTML(valueList, alignRight, valueCloseToMarker, style) {\n  var paddingStr = valueCloseToMarker ? '10px' : '20px';\n  var alignCSS = alignRight ? \"float:right;margin-left:\" + paddingStr : '';\n  return \"<span style=\\\"\" + alignCSS + \";\" + style + \"\\\">\" + map(valueList, function (value) {\n    return encodeHTML(value);\n  }).join('&nbsp;&nbsp;') + '</span>';\n}\n\nfunction wrapInlineNameRichText(ctx, name, style) {\n  return ctx.markupStyleCreator.wrapRichTextStyle(name, style);\n}\n\nfunction wrapInlineValueRichText(ctx, valueList, alignRight, valueCloseToMarker, style) {\n  var styles = [style];\n  var paddingLeft = valueCloseToMarker ? 10 : 20;\n  alignRight && styles.push({\n    padding: [0, 0, 0, paddingLeft],\n    align: 'right'\n  });\n  return ctx.markupStyleCreator.wrapRichTextStyle(valueList.join('  '), styles);\n}\n\nexport function retrieveVisualColorForTooltipMarker(series, dataIndex) {\n  var style = series.getData().getItemVisual(dataIndex, 'style');\n  var color = style[series.visualDrawType];\n  return convertToColorString(color);\n}\nexport function getPaddingFromTooltipModel(model, renderMode) {\n  var padding = model.get('padding');\n  return padding != null ? padding : renderMode === 'richText' ? [8, 10] : 10;\n}\n\nvar TooltipMarkupStyleCreator = function () {\n  function TooltipMarkupStyleCreator() {\n    this.richTextStyles = {};\n    this._nextStyleNameId = getRandomIdBase();\n  }\n\n  TooltipMarkupStyleCreator.prototype._generateStyleName = function () {\n    return '__EC_aUTo_' + this._nextStyleNameId++;\n  };\n\n  TooltipMarkupStyleCreator.prototype.makeTooltipMarker = function (markerType, colorStr, renderMode) {\n    var markerId = renderMode === 'richText' ? this._generateStyleName() : null;\n    var marker = getTooltipMarker({\n      color: colorStr,\n      type: markerType,\n      renderMode: renderMode,\n      markerId: markerId\n    });\n\n    if (isString(marker)) {\n      return marker;\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        assert(markerId);\n      }\n\n      this.richTextStyles[markerId] = marker.style;\n      return marker.content;\n    }\n  };\n\n  TooltipMarkupStyleCreator.prototype.wrapRichTextStyle = function (text, styles) {\n    var finalStl = {};\n\n    if (isArray(styles)) {\n      each(styles, function (stl) {\n        return extend(finalStl, stl);\n      });\n    } else {\n      extend(finalStl, styles);\n    }\n\n    var styleName = this._generateStyleName();\n\n    this.richTextStyles[styleName] = finalStl;\n    return \"{\" + styleName + \"|\" + text + \"}\";\n  };\n\n  return TooltipMarkupStyleCreator;\n}();\n\nexport { TooltipMarkupStyleCreator };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { trim, isArray, each, reduce } from 'zrender/lib/core/util';\nimport { retrieveVisualColorForTooltipMarker, createTooltipMarkup } from './tooltipMarkup';\nimport { retrieveRawValue } from '../../data/helper/dataProvider';\nimport { isNameSpecified } from '../../util/model';\nexport function defaultSeriesFormatTooltip(opt) {\n  var series = opt.series;\n  var dataIndex = opt.dataIndex;\n  var multipleSeries = opt.multipleSeries;\n  var data = series.getData();\n  var tooltipDims = data.mapDimensionsAll('defaultedTooltip');\n  var tooltipDimLen = tooltipDims.length;\n  var value = series.getRawValue(dataIndex);\n  var isValueArr = isArray(value);\n  var markerColor = retrieveVisualColorForTooltipMarker(series, dataIndex);\n  var inlineValue;\n  var inlineValueType;\n  var subBlocks;\n  var sortParam;\n\n  if (tooltipDimLen > 1 || isValueArr && !tooltipDimLen) {\n    var formatArrResult = formatTooltipArrayValue(value, series, dataIndex, tooltipDims, markerColor);\n    inlineValue = formatArrResult.inlineValues;\n    inlineValueType = formatArrResult.inlineValueTypes;\n    subBlocks = formatArrResult.blocks;\n    sortParam = formatArrResult.inlineValues[0];\n  } else if (tooltipDimLen) {\n    var dimInfo = data.getDimensionInfo(tooltipDims[0]);\n    sortParam = inlineValue = retrieveRawValue(data, dataIndex, tooltipDims[0]);\n    inlineValueType = dimInfo.type;\n  } else {\n    sortParam = inlineValue = isValueArr ? value[0] : value;\n  }\n\n  var seriesNameSpecified = isNameSpecified(series);\n  var seriesName = seriesNameSpecified && series.name || '';\n  var itemName = data.getName(dataIndex);\n  var inlineName = multipleSeries ? seriesName : itemName;\n  return createTooltipMarkup('section', {\n    header: seriesName,\n    noHeader: multipleSeries || !seriesNameSpecified,\n    sortParam: sortParam,\n    blocks: [createTooltipMarkup('nameValue', {\n      markerType: 'item',\n      markerColor: markerColor,\n      name: inlineName,\n      noName: !trim(inlineName),\n      value: inlineValue,\n      valueType: inlineValueType\n    })].concat(subBlocks || [])\n  });\n}\n\nfunction formatTooltipArrayValue(value, series, dataIndex, tooltipDims, colorStr) {\n  var data = series.getData();\n  var isValueMultipleLine = reduce(value, function (isValueMultipleLine, val, idx) {\n    var dimItem = data.getDimensionInfo(idx);\n    return isValueMultipleLine = isValueMultipleLine || dimItem && dimItem.tooltip !== false && dimItem.displayName != null;\n  }, false);\n  var inlineValues = [];\n  var inlineValueTypes = [];\n  var blocks = [];\n  tooltipDims.length ? each(tooltipDims, function (dim) {\n    setEachItem(retrieveRawValue(data, dataIndex, dim), dim);\n  }) : each(value, setEachItem);\n\n  function setEachItem(val, dim) {\n    var dimInfo = data.getDimensionInfo(dim);\n\n    if (!dimInfo || dimInfo.otherDims.tooltip === false) {\n      return;\n    }\n\n    if (isValueMultipleLine) {\n      blocks.push(createTooltipMarkup('nameValue', {\n        markerType: 'subItem',\n        markerColor: colorStr,\n        name: dimInfo.displayName,\n        value: val,\n        valueType: dimInfo.type\n      }));\n    } else {\n      inlineValues.push(val);\n      inlineValueTypes.push(dimInfo.type);\n    }\n  }\n\n  return {\n    inlineValues: inlineValues,\n    inlineValueTypes: inlineValueTypes,\n    blocks: blocks\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends, __spreadArrays } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport * as modelUtil from '../util/model';\nimport ComponentModel from './Component';\nimport { PaletteMixin } from './mixin/palette';\nimport { DataFormatMixin } from '../model/mixin/dataFormat';\nimport { getLayoutParams, mergeLayoutParam, fetchLayoutMode } from '../util/layout';\nimport { createTask } from '../core/task';\nimport { mountExtend } from '../util/clazz';\nimport { SourceManager } from '../data/helper/sourceManager';\nimport { defaultSeriesFormatTooltip } from '../component/tooltip/seriesFormatTooltip';\nvar inner = modelUtil.makeInner();\n\nfunction getSelectionKey(data, dataIndex) {\n  return data.getName(dataIndex) || data.getId(dataIndex);\n}\n\nvar SeriesModel = function (_super) {\n  __extends(SeriesModel, _super);\n\n  function SeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this._selectedDataIndicesMap = {};\n    return _this;\n  }\n\n  SeriesModel.prototype.init = function (option, parentModel, ecModel) {\n    this.seriesIndex = this.componentIndex;\n    this.dataTask = createTask({\n      count: dataTaskCount,\n      reset: dataTaskReset\n    });\n    this.dataTask.context = {\n      model: this\n    };\n    this.mergeDefaultAndTheme(option, ecModel);\n    var sourceManager = inner(this).sourceManager = new SourceManager(this);\n    sourceManager.prepareSource();\n    var data = this.getInitialData(option, ecModel);\n    wrapData(data, this);\n    this.dataTask.context.data = data;\n\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.assert(data, 'getInitialData returned invalid data.');\n    }\n\n    inner(this).dataBeforeProcessed = data;\n    autoSeriesName(this);\n\n    this._initSelectedMapFromData(data);\n  };\n\n  SeriesModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n    var layoutMode = fetchLayoutMode(this);\n    var inputPositionParams = layoutMode ? getLayoutParams(option) : {};\n    var themeSubType = this.subType;\n\n    if (ComponentModel.hasClass(themeSubType)) {\n      themeSubType += 'Series';\n    }\n\n    zrUtil.merge(option, ecModel.getTheme().get(this.subType));\n    zrUtil.merge(option, this.getDefaultOption());\n    modelUtil.defaultEmphasis(option, 'label', ['show']);\n    this.fillDataTextStyle(option.data);\n\n    if (layoutMode) {\n      mergeLayoutParam(option, inputPositionParams, layoutMode);\n    }\n  };\n\n  SeriesModel.prototype.mergeOption = function (newSeriesOption, ecModel) {\n    newSeriesOption = zrUtil.merge(this.option, newSeriesOption, true);\n    this.fillDataTextStyle(newSeriesOption.data);\n    var layoutMode = fetchLayoutMode(this);\n\n    if (layoutMode) {\n      mergeLayoutParam(this.option, newSeriesOption, layoutMode);\n    }\n\n    var sourceManager = inner(this).sourceManager;\n    sourceManager.dirty();\n    sourceManager.prepareSource();\n    var data = this.getInitialData(newSeriesOption, ecModel);\n    wrapData(data, this);\n    this.dataTask.dirty();\n    this.dataTask.context.data = data;\n    inner(this).dataBeforeProcessed = data;\n    autoSeriesName(this);\n\n    this._initSelectedMapFromData(data);\n  };\n\n  SeriesModel.prototype.fillDataTextStyle = function (data) {\n    if (data && !zrUtil.isTypedArray(data)) {\n      var props = ['show'];\n\n      for (var i = 0; i < data.length; i++) {\n        if (data[i] && data[i].label) {\n          modelUtil.defaultEmphasis(data[i], 'label', props);\n        }\n      }\n    }\n  };\n\n  SeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return;\n  };\n\n  SeriesModel.prototype.appendData = function (params) {\n    var data = this.getRawData();\n    data.appendData(params.data);\n  };\n\n  SeriesModel.prototype.getData = function (dataType) {\n    var task = getCurrentTask(this);\n\n    if (task) {\n      var data = task.context.data;\n      return dataType == null ? data : data.getLinkedData(dataType);\n    } else {\n      return inner(this).data;\n    }\n  };\n\n  SeriesModel.prototype.getAllData = function () {\n    var mainData = this.getData();\n    return mainData && mainData.getLinkedDataAll ? mainData.getLinkedDataAll() : [{\n      data: mainData\n    }];\n  };\n\n  SeriesModel.prototype.setData = function (data) {\n    var task = getCurrentTask(this);\n\n    if (task) {\n      var context = task.context;\n      context.outputData = data;\n\n      if (task !== this.dataTask) {\n        context.data = data;\n      }\n    }\n\n    inner(this).data = data;\n  };\n\n  SeriesModel.prototype.getSource = function () {\n    return inner(this).sourceManager.getSource();\n  };\n\n  SeriesModel.prototype.getRawData = function () {\n    return inner(this).dataBeforeProcessed;\n  };\n\n  SeriesModel.prototype.getBaseAxis = function () {\n    var coordSys = this.coordinateSystem;\n    return coordSys && coordSys.getBaseAxis && coordSys.getBaseAxis();\n  };\n\n  SeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    return defaultSeriesFormatTooltip({\n      series: this,\n      dataIndex: dataIndex,\n      multipleSeries: multipleSeries\n    });\n  };\n\n  SeriesModel.prototype.isAnimationEnabled = function () {\n    if (env.node) {\n      return false;\n    }\n\n    var animationEnabled = this.getShallow('animation');\n\n    if (animationEnabled) {\n      if (this.getData().count() > this.getShallow('animationThreshold')) {\n        animationEnabled = false;\n      }\n    }\n\n    return !!animationEnabled;\n  };\n\n  SeriesModel.prototype.restoreData = function () {\n    this.dataTask.dirty();\n  };\n\n  SeriesModel.prototype.getColorFromPalette = function (name, scope, requestColorNum) {\n    var ecModel = this.ecModel;\n    var color = PaletteMixin.prototype.getColorFromPalette.call(this, name, scope, requestColorNum);\n\n    if (!color) {\n      color = ecModel.getColorFromPalette(name, scope, requestColorNum);\n    }\n\n    return color;\n  };\n\n  SeriesModel.prototype.coordDimToDataDim = function (coordDim) {\n    return this.getRawData().mapDimensionsAll(coordDim);\n  };\n\n  SeriesModel.prototype.getProgressive = function () {\n    return this.get('progressive');\n  };\n\n  SeriesModel.prototype.getProgressiveThreshold = function () {\n    return this.get('progressiveThreshold');\n  };\n\n  SeriesModel.prototype.select = function (innerDataIndices, dataType) {\n    this._innerSelect(this.getData(dataType), innerDataIndices);\n  };\n\n  SeriesModel.prototype.unselect = function (innerDataIndices, dataType) {\n    var selectedMap = this.option.selectedMap;\n\n    if (!selectedMap) {\n      return;\n    }\n\n    var data = this.getData(dataType);\n\n    for (var i = 0; i < innerDataIndices.length; i++) {\n      var dataIndex = innerDataIndices[i];\n      var nameOrId = getSelectionKey(data, dataIndex);\n      selectedMap[nameOrId] = false;\n      this._selectedDataIndicesMap[nameOrId] = -1;\n    }\n  };\n\n  SeriesModel.prototype.toggleSelect = function (innerDataIndices, dataType) {\n    var tmpArr = [];\n\n    for (var i = 0; i < innerDataIndices.length; i++) {\n      tmpArr[0] = innerDataIndices[i];\n      this.isSelected(innerDataIndices[i], dataType) ? this.unselect(tmpArr, dataType) : this.select(tmpArr, dataType);\n    }\n  };\n\n  SeriesModel.prototype.getSelectedDataIndices = function () {\n    var selectedDataIndicesMap = this._selectedDataIndicesMap;\n    var nameOrIds = zrUtil.keys(selectedDataIndicesMap);\n    var dataIndices = [];\n\n    for (var i = 0; i < nameOrIds.length; i++) {\n      var dataIndex = selectedDataIndicesMap[nameOrIds[i]];\n\n      if (dataIndex >= 0) {\n        dataIndices.push(dataIndex);\n      }\n    }\n\n    return dataIndices;\n  };\n\n  SeriesModel.prototype.isSelected = function (dataIndex, dataType) {\n    var selectedMap = this.option.selectedMap;\n\n    if (!selectedMap) {\n      return false;\n    }\n\n    var data = this.getData(dataType);\n    var nameOrId = getSelectionKey(data, dataIndex);\n    return selectedMap[nameOrId] || false;\n  };\n\n  SeriesModel.prototype._innerSelect = function (data, innerDataIndices) {\n    var _a, _b;\n\n    var selectedMode = this.option.selectedMode;\n    var len = innerDataIndices.length;\n\n    if (!selectedMode || !len) {\n      return;\n    }\n\n    if (selectedMode === 'multiple') {\n      var selectedMap = this.option.selectedMap || (this.option.selectedMap = {});\n\n      for (var i = 0; i < len; i++) {\n        var dataIndex = innerDataIndices[i];\n        var nameOrId = getSelectionKey(data, dataIndex);\n        selectedMap[nameOrId] = true;\n        this._selectedDataIndicesMap[nameOrId] = data.getRawIndex(dataIndex);\n      }\n    } else if (selectedMode === 'single' || selectedMode === true) {\n      var lastDataIndex = innerDataIndices[len - 1];\n      var nameOrId = getSelectionKey(data, lastDataIndex);\n      this.option.selectedMap = (_a = {}, _a[nameOrId] = true, _a);\n      this._selectedDataIndicesMap = (_b = {}, _b[nameOrId] = data.getRawIndex(lastDataIndex), _b);\n    }\n  };\n\n  SeriesModel.prototype._initSelectedMapFromData = function (data) {\n    if (this.option.selectedMap) {\n      return;\n    }\n\n    var dataIndices = [];\n\n    if (data.hasItemOption) {\n      data.each(function (idx) {\n        var rawItem = data.getRawDataItem(idx);\n\n        if (typeof rawItem === 'object' && rawItem.selected) {\n          dataIndices.push(idx);\n        }\n      });\n    }\n\n    if (dataIndices.length > 0) {\n      this._innerSelect(data, dataIndices);\n    }\n  };\n\n  SeriesModel.registerClass = function (clz) {\n    return ComponentModel.registerClass(clz);\n  };\n\n  SeriesModel.protoInitialize = function () {\n    var proto = SeriesModel.prototype;\n    proto.type = 'series.__base__';\n    proto.seriesIndex = 0;\n    proto.useColorPaletteOnData = false;\n    proto.ignoreStyleOnData = false;\n    proto.hasSymbolVisual = false;\n    proto.defaultSymbol = 'circle';\n    proto.visualStyleAccessPath = 'itemStyle';\n    proto.visualDrawType = 'fill';\n  }();\n\n  return SeriesModel;\n}(ComponentModel);\n\nzrUtil.mixin(SeriesModel, DataFormatMixin);\nzrUtil.mixin(SeriesModel, PaletteMixin);\nmountExtend(SeriesModel, ComponentModel);\n\nfunction autoSeriesName(seriesModel) {\n  var name = seriesModel.name;\n\n  if (!modelUtil.isNameSpecified(seriesModel)) {\n    seriesModel.name = getSeriesAutoName(seriesModel) || name;\n  }\n}\n\nfunction getSeriesAutoName(seriesModel) {\n  var data = seriesModel.getRawData();\n  var dataDims = data.mapDimensionsAll('seriesName');\n  var nameArr = [];\n  zrUtil.each(dataDims, function (dataDim) {\n    var dimInfo = data.getDimensionInfo(dataDim);\n    dimInfo.displayName && nameArr.push(dimInfo.displayName);\n  });\n  return nameArr.join(' ');\n}\n\nfunction dataTaskCount(context) {\n  return context.model.getRawData().count();\n}\n\nfunction dataTaskReset(context) {\n  var seriesModel = context.model;\n  seriesModel.setData(seriesModel.getRawData().cloneShallow());\n  return dataTaskProgress;\n}\n\nfunction dataTaskProgress(param, context) {\n  if (context.outputData && param.end > context.outputData.count()) {\n    context.model.getRawData().cloneShallow(context.outputData);\n  }\n}\n\nfunction wrapData(data, seriesModel) {\n  zrUtil.each(__spreadArrays(data.CHANGABLE_METHODS, data.DOWNSAMPLE_METHODS), function (methodName) {\n    data.wrapMethod(methodName, zrUtil.curry(onDataChange, seriesModel));\n  });\n}\n\nfunction onDataChange(seriesModel, newList) {\n  var task = getCurrentTask(seriesModel);\n\n  if (task) {\n    task.setOutputEnd((newList || this).count());\n  }\n\n  return newList;\n}\n\nfunction getCurrentTask(seriesModel) {\n  var scheduler = (seriesModel.ecModel || {}).scheduler;\n  var pipeline = scheduler && scheduler.getPipeline(seriesModel.uid);\n\n  if (pipeline) {\n    var task = pipeline.currentTask;\n\n    if (task) {\n      var agentStubMap = task.agentStubMap;\n\n      if (agentStubMap) {\n        task = agentStubMap.get(seriesModel.uid);\n      }\n    }\n\n    return task;\n  }\n}\n\nexport default SeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Group from 'zrender/lib/graphic/Group';\nimport * as componentUtil from '../util/component';\nimport * as clazzUtil from '../util/clazz';\n\nvar ComponentView = function () {\n  function ComponentView() {\n    this.group = new Group();\n    this.uid = componentUtil.getUID('viewComponent');\n  }\n\n  ComponentView.prototype.init = function (ecModel, api) {};\n\n  ComponentView.prototype.render = function (model, ecModel, api, payload) {};\n\n  ComponentView.prototype.dispose = function (ecModel, api) {};\n\n  ComponentView.prototype.updateView = function (model, ecModel, api, payload) {};\n\n  ComponentView.prototype.updateLayout = function (model, ecModel, api, payload) {};\n\n  ComponentView.prototype.updateVisual = function (model, ecModel, api, payload) {};\n\n  ComponentView.prototype.blurSeries = function (seriesModels, ecModel) {};\n\n  return ComponentView;\n}();\n\n;\nclazzUtil.enableClassExtend(ComponentView);\nclazzUtil.enableClassManagement(ComponentView);\nexport default ComponentView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner } from '../../util/model';\nexport default function createRenderPlanner() {\n  var inner = makeInner();\n  return function (seriesModel) {\n    var fields = inner(seriesModel);\n    var pipelineContext = seriesModel.pipelineContext;\n    var originalLarge = !!fields.large;\n    var originalProgressive = !!fields.progressiveRender;\n    var large = fields.large = !!(pipelineContext && pipelineContext.large);\n    var progressive = fields.progressiveRender = !!(pipelineContext && pipelineContext.progressiveRender);\n    return !!(originalLarge !== large || originalProgressive !== progressive) && 'reset';\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each } from 'zrender/lib/core/util';\nimport Group from 'zrender/lib/graphic/Group';\nimport * as componentUtil from '../util/component';\nimport * as clazzUtil from '../util/clazz';\nimport * as modelUtil from '../util/model';\nimport { enterEmphasis, leaveEmphasis, getHighlightDigit } from '../util/states';\nimport { createTask } from '../core/task';\nimport createRenderPlanner from '../chart/helper/createRenderPlanner';\nvar inner = modelUtil.makeInner();\nvar renderPlanner = createRenderPlanner();\n\nvar ChartView = function () {\n  function ChartView() {\n    this.group = new Group();\n    this.uid = componentUtil.getUID('viewChart');\n    this.renderTask = createTask({\n      plan: renderTaskPlan,\n      reset: renderTaskReset\n    });\n    this.renderTask.context = {\n      view: this\n    };\n  }\n\n  ChartView.prototype.init = function (ecModel, api) {};\n\n  ChartView.prototype.render = function (seriesModel, ecModel, api, payload) {};\n\n  ChartView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\n    toggleHighlight(seriesModel.getData(), payload, 'emphasis');\n  };\n\n  ChartView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\n    toggleHighlight(seriesModel.getData(), payload, 'normal');\n  };\n\n  ChartView.prototype.remove = function (ecModel, api) {\n    this.group.removeAll();\n  };\n\n  ChartView.prototype.dispose = function (ecModel, api) {};\n\n  ChartView.prototype.updateView = function (seriesModel, ecModel, api, payload) {\n    this.render(seriesModel, ecModel, api, payload);\n  };\n\n  ChartView.prototype.updateLayout = function (seriesModel, ecModel, api, payload) {\n    this.render(seriesModel, ecModel, api, payload);\n  };\n\n  ChartView.prototype.updateVisual = function (seriesModel, ecModel, api, payload) {\n    this.render(seriesModel, ecModel, api, payload);\n  };\n\n  ChartView.markUpdateMethod = function (payload, methodName) {\n    inner(payload).updateMethod = methodName;\n  };\n\n  ChartView.protoInitialize = function () {\n    var proto = ChartView.prototype;\n    proto.type = 'chart';\n  }();\n\n  return ChartView;\n}();\n\n;\n\nfunction elSetState(el, state, highlightDigit) {\n  if (el) {\n    (state === 'emphasis' ? enterEmphasis : leaveEmphasis)(el, highlightDigit);\n  }\n}\n\nfunction toggleHighlight(data, payload, state) {\n  var dataIndex = modelUtil.queryDataIndex(data, payload);\n  var highlightDigit = payload && payload.highlightKey != null ? getHighlightDigit(payload.highlightKey) : null;\n\n  if (dataIndex != null) {\n    each(modelUtil.normalizeToArray(dataIndex), function (dataIdx) {\n      elSetState(data.getItemGraphicEl(dataIdx), state, highlightDigit);\n    });\n  } else {\n    data.eachItemGraphicEl(function (el) {\n      elSetState(el, state, highlightDigit);\n    });\n  }\n}\n\nclazzUtil.enableClassExtend(ChartView, ['dispose']);\nclazzUtil.enableClassManagement(ChartView);\n\nfunction renderTaskPlan(context) {\n  return renderPlanner(context.model);\n}\n\nfunction renderTaskReset(context) {\n  var seriesModel = context.model;\n  var ecModel = context.ecModel;\n  var api = context.api;\n  var payload = context.payload;\n  var progressiveRender = seriesModel.pipelineContext.progressiveRender;\n  var view = context.view;\n  var updateMethod = payload && inner(payload).updateMethod;\n  var methodName = progressiveRender ? 'incrementalPrepareRender' : updateMethod && view[updateMethod] ? updateMethod : 'render';\n\n  if (methodName !== 'render') {\n    view[methodName](seriesModel, ecModel, api, payload);\n  }\n\n  return progressMethodMap[methodName];\n}\n\nvar progressMethodMap = {\n  incrementalPrepareRender: {\n    progress: function (params, context) {\n      context.view.incrementalRender(params, context.model, context.ecModel, context.api, context.payload);\n    }\n  },\n  render: {\n    forceFirstProgress: true,\n    progress: function (params, context) {\n      context.view.render(context.model, context.ecModel, context.api, context.payload);\n    }\n  }\n};\nexport default ChartView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar ORIGIN_METHOD = '\\0__throttleOriginMethod';\nvar RATE = '\\0__throttleRate';\nvar THROTTLE_TYPE = '\\0__throttleType';\n;\nexport function throttle(fn, delay, debounce) {\n  var currCall;\n  var lastCall = 0;\n  var lastExec = 0;\n  var timer = null;\n  var diff;\n  var scope;\n  var args;\n  var debounceNextCall;\n  delay = delay || 0;\n\n  function exec() {\n    lastExec = new Date().getTime();\n    timer = null;\n    fn.apply(scope, args || []);\n  }\n\n  var cb = function () {\n    var cbArgs = [];\n\n    for (var _i = 0; _i < arguments.length; _i++) {\n      cbArgs[_i] = arguments[_i];\n    }\n\n    currCall = new Date().getTime();\n    scope = this;\n    args = cbArgs;\n    var thisDelay = debounceNextCall || delay;\n    var thisDebounce = debounceNextCall || debounce;\n    debounceNextCall = null;\n    diff = currCall - (thisDebounce ? lastCall : lastExec) - thisDelay;\n    clearTimeout(timer);\n\n    if (thisDebounce) {\n      timer = setTimeout(exec, thisDelay);\n    } else {\n      if (diff >= 0) {\n        exec();\n      } else {\n        timer = setTimeout(exec, -diff);\n      }\n    }\n\n    lastCall = currCall;\n  };\n\n  cb.clear = function () {\n    if (timer) {\n      clearTimeout(timer);\n      timer = null;\n    }\n  };\n\n  cb.debounceNextCall = function (debounceDelay) {\n    debounceNextCall = debounceDelay;\n  };\n\n  return cb;\n}\nexport function createOrUpdate(obj, fnAttr, rate, throttleType) {\n  var fn = obj[fnAttr];\n\n  if (!fn) {\n    return;\n  }\n\n  var originFn = fn[ORIGIN_METHOD] || fn;\n  var lastThrottleType = fn[THROTTLE_TYPE];\n  var lastRate = fn[RATE];\n\n  if (lastRate !== rate || lastThrottleType !== throttleType) {\n    if (rate == null || !throttleType) {\n      return obj[fnAttr] = originFn;\n    }\n\n    fn = obj[fnAttr] = throttle(originFn, rate, throttleType === 'debounce');\n    fn[ORIGIN_METHOD] = originFn;\n    fn[THROTTLE_TYPE] = throttleType;\n    fn[RATE] = rate;\n  }\n\n  return fn;\n}\nexport function clear(obj, fnAttr) {\n  var fn = obj[fnAttr];\n\n  if (fn && fn[ORIGIN_METHOD]) {\n    obj[fnAttr] = fn[ORIGIN_METHOD];\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isFunction, extend, createHashMap } from 'zrender/lib/core/util';\nimport makeStyleMapper from '../model/mixin/makeStyleMapper';\nimport { ITEM_STYLE_KEY_MAP } from '../model/mixin/itemStyle';\nimport { LINE_STYLE_KEY_MAP } from '../model/mixin/lineStyle';\nimport Model from '../model/Model';\nimport { makeInner } from '../util/model';\nvar inner = makeInner();\nvar defaultStyleMappers = {\n  itemStyle: makeStyleMapper(ITEM_STYLE_KEY_MAP, true),\n  lineStyle: makeStyleMapper(LINE_STYLE_KEY_MAP, true)\n};\nvar defaultColorKey = {\n  lineStyle: 'stroke',\n  itemStyle: 'fill'\n};\n\nfunction getStyleMapper(seriesModel, stylePath) {\n  var styleMapper = seriesModel.visualStyleMapper || defaultStyleMappers[stylePath];\n\n  if (!styleMapper) {\n    console.warn(\"Unkown style type '\" + stylePath + \"'.\");\n    return defaultStyleMappers.itemStyle;\n  }\n\n  return styleMapper;\n}\n\nfunction getDefaultColorKey(seriesModel, stylePath) {\n  var colorKey = seriesModel.visualDrawType || defaultColorKey[stylePath];\n\n  if (!colorKey) {\n    console.warn(\"Unkown style type '\" + stylePath + \"'.\");\n    return 'fill';\n  }\n\n  return colorKey;\n}\n\nvar seriesStyleTask = {\n  createOnAllSeries: true,\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    var data = seriesModel.getData();\n    var stylePath = seriesModel.visualStyleAccessPath || 'itemStyle';\n    var styleModel = seriesModel.getModel(stylePath);\n    var getStyle = getStyleMapper(seriesModel, stylePath);\n    var globalStyle = getStyle(styleModel);\n    var decalOption = styleModel.getShallow('decal');\n\n    if (decalOption) {\n      data.setVisual('decal', decalOption);\n      decalOption.dirty = true;\n    }\n\n    var colorKey = getDefaultColorKey(seriesModel, stylePath);\n    var color = globalStyle[colorKey];\n    var colorCallback = isFunction(color) ? color : null;\n\n    if (!globalStyle[colorKey] || colorCallback) {\n      globalStyle[colorKey] = seriesModel.getColorFromPalette(seriesModel.name, null, ecModel.getSeriesCount());\n      data.setVisual('colorFromPalette', true);\n    }\n\n    data.setVisual('style', globalStyle);\n    data.setVisual('drawType', colorKey);\n\n    if (!ecModel.isSeriesFiltered(seriesModel) && colorCallback) {\n      data.setVisual('colorFromPalette', false);\n      return {\n        dataEach: function (data, idx) {\n          var dataParams = seriesModel.getDataParams(idx);\n          var itemStyle = extend({}, globalStyle);\n          itemStyle[colorKey] = colorCallback(dataParams);\n          data.setItemVisual(idx, 'style', itemStyle);\n        }\n      };\n    }\n  }\n};\nvar sharedModel = new Model();\nvar dataStyleTask = {\n  createOnAllSeries: true,\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    if (seriesModel.ignoreStyleOnData || ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var stylePath = seriesModel.visualStyleAccessPath || 'itemStyle';\n    var getStyle = getStyleMapper(seriesModel, stylePath);\n    var colorKey = data.getVisual('drawType');\n    return {\n      dataEach: data.hasItemOption ? function (data, idx) {\n        var rawItem = data.getRawDataItem(idx);\n\n        if (rawItem && rawItem[stylePath]) {\n          sharedModel.option = rawItem[stylePath];\n          var style = getStyle(sharedModel);\n          var existsStyle = data.ensureUniqueItemVisual(idx, 'style');\n          extend(existsStyle, style);\n\n          if (sharedModel.option.decal) {\n            data.setItemVisual(idx, 'decal', sharedModel.option.decal);\n            sharedModel.option.decal.dirty = true;\n          }\n\n          if (colorKey in style) {\n            data.setItemVisual(idx, 'colorFromPalette', false);\n          }\n        }\n      } : null\n    };\n  }\n};\nvar dataColorPaletteTask = {\n  performRawSeries: true,\n  overallReset: function (ecModel) {\n    var paletteScopeGroupByType = createHashMap();\n    ecModel.eachSeries(function (seriesModel) {\n      if (!seriesModel.useColorPaletteOnData) {\n        return;\n      }\n\n      var colorScope = paletteScopeGroupByType.get(seriesModel.type);\n\n      if (!colorScope) {\n        colorScope = {};\n        paletteScopeGroupByType.set(seriesModel.type, colorScope);\n      }\n\n      inner(seriesModel).scope = colorScope;\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      if (!seriesModel.useColorPaletteOnData || ecModel.isSeriesFiltered(seriesModel)) {\n        return;\n      }\n\n      var dataAll = seriesModel.getRawData();\n      var idxMap = {};\n      var data = seriesModel.getData();\n      var colorScope = inner(seriesModel).scope;\n      var stylePath = seriesModel.visualStyleAccessPath || 'itemStyle';\n      var colorKey = getDefaultColorKey(seriesModel, stylePath);\n      data.each(function (idx) {\n        var rawIdx = data.getRawIndex(idx);\n        idxMap[rawIdx] = idx;\n      });\n      dataAll.each(function (rawIdx) {\n        var idx = idxMap[rawIdx];\n        var fromPalette = data.getItemVisual(idx, 'colorFromPalette');\n\n        if (fromPalette) {\n          var itemStyle = data.ensureUniqueItemVisual(idx, 'style');\n          var name_1 = dataAll.getName(rawIdx) || rawIdx + '';\n          var dataCount = dataAll.count();\n          itemStyle[colorKey] = seriesModel.getColorFromPalette(name_1, colorScope, dataCount);\n        }\n      });\n    });\n  }\n};\nexport { seriesStyleTask, dataStyleTask, dataColorPaletteTask };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../util/graphic';\nvar PI = Math.PI;\nexport default function defaultLoading(api, opts) {\n  opts = opts || {};\n  zrUtil.defaults(opts, {\n    text: 'loading',\n    textColor: '#000',\n    fontSize: 12,\n    fontWeight: 'normal',\n    fontStyle: 'normal',\n    fontFamily: 'sans-serif',\n    maskColor: 'rgba(255, 255, 255, 0.8)',\n    showSpinner: true,\n    color: '#5470c6',\n    spinnerRadius: 10,\n    lineWidth: 5,\n    zlevel: 0\n  });\n  var group = new graphic.Group();\n  var mask = new graphic.Rect({\n    style: {\n      fill: opts.maskColor\n    },\n    zlevel: opts.zlevel,\n    z: 10000\n  });\n  group.add(mask);\n  var textContent = new graphic.Text({\n    style: {\n      text: opts.text,\n      fill: opts.textColor,\n      fontSize: opts.fontSize,\n      fontWeight: opts.fontWeight,\n      fontStyle: opts.fontStyle,\n      fontFamily: opts.fontFamily\n    }\n  });\n  var labelRect = new graphic.Rect({\n    style: {\n      fill: 'none'\n    },\n    textContent: textContent,\n    textConfig: {\n      position: 'right',\n      distance: 10\n    },\n    zlevel: opts.zlevel,\n    z: 10001\n  });\n  group.add(labelRect);\n  var arc;\n\n  if (opts.showSpinner) {\n    arc = new graphic.Arc({\n      shape: {\n        startAngle: -PI / 2,\n        endAngle: -PI / 2 + 0.1,\n        r: opts.spinnerRadius\n      },\n      style: {\n        stroke: opts.color,\n        lineCap: 'round',\n        lineWidth: opts.lineWidth\n      },\n      zlevel: opts.zlevel,\n      z: 10001\n    });\n    arc.animateShape(true).when(1000, {\n      endAngle: PI * 3 / 2\n    }).start('circularInOut');\n    arc.animateShape(true).when(1000, {\n      startAngle: PI * 3 / 2\n    }).delay(300).start('circularInOut');\n    group.add(arc);\n  }\n\n  group.resize = function () {\n    var textWidth = textContent.getBoundingRect().width;\n    var r = opts.showSpinner ? opts.spinnerRadius : 0;\n    var cx = (api.getWidth() - r * 2 - (opts.showSpinner && textWidth ? 10 : 0) - textWidth) / 2 - (opts.showSpinner && textWidth ? 0 : 5 + textWidth / 2) + (opts.showSpinner ? 0 : textWidth / 2) + (textWidth ? 0 : r);\n    var cy = api.getHeight() / 2;\n    opts.showSpinner && arc.setShape({\n      cx: cx,\n      cy: cy\n    });\n    labelRect.setShape({\n      x: cx - r,\n      y: cy - r,\n      width: r * 2,\n      height: r * 2\n    });\n    mask.setShape({\n      x: 0,\n      y: 0,\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n  };\n\n  group.resize();\n  return group;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, map, isFunction, createHashMap, noop, assert } from 'zrender/lib/core/util';\nimport { createTask } from './task';\nimport { getUID } from '../util/component';\nimport GlobalModel from '../model/Global';\nimport ExtensionAPI from './ExtensionAPI';\nimport { normalizeToArray } from '../util/model';\n;\n\nvar Scheduler = function () {\n  function Scheduler(ecInstance, api, dataProcessorHandlers, visualHandlers) {\n    this._stageTaskMap = createHashMap();\n    this.ecInstance = ecInstance;\n    this.api = api;\n    dataProcessorHandlers = this._dataProcessorHandlers = dataProcessorHandlers.slice();\n    visualHandlers = this._visualHandlers = visualHandlers.slice();\n    this._allHandlers = dataProcessorHandlers.concat(visualHandlers);\n  }\n\n  Scheduler.prototype.restoreData = function (ecModel, payload) {\n    ecModel.restoreData(payload);\n\n    this._stageTaskMap.each(function (taskRecord) {\n      var overallTask = taskRecord.overallTask;\n      overallTask && overallTask.dirty();\n    });\n  };\n\n  Scheduler.prototype.getPerformArgs = function (task, isBlock) {\n    if (!task.__pipeline) {\n      return;\n    }\n\n    var pipeline = this._pipelineMap.get(task.__pipeline.id);\n\n    var pCtx = pipeline.context;\n    var incremental = !isBlock && pipeline.progressiveEnabled && (!pCtx || pCtx.progressiveRender) && task.__idxInPipeline > pipeline.blockIndex;\n    var step = incremental ? pipeline.step : null;\n    var modDataCount = pCtx && pCtx.modDataCount;\n    var modBy = modDataCount != null ? Math.ceil(modDataCount / step) : null;\n    return {\n      step: step,\n      modBy: modBy,\n      modDataCount: modDataCount\n    };\n  };\n\n  Scheduler.prototype.getPipeline = function (pipelineId) {\n    return this._pipelineMap.get(pipelineId);\n  };\n\n  Scheduler.prototype.updateStreamModes = function (seriesModel, view) {\n    var pipeline = this._pipelineMap.get(seriesModel.uid);\n\n    var data = seriesModel.getData();\n    var dataLen = data.count();\n    var progressiveRender = pipeline.progressiveEnabled && view.incrementalPrepareRender && dataLen >= pipeline.threshold;\n    var large = seriesModel.get('large') && dataLen >= seriesModel.get('largeThreshold');\n    var modDataCount = seriesModel.get('progressiveChunkMode') === 'mod' ? dataLen : null;\n    seriesModel.pipelineContext = pipeline.context = {\n      progressiveRender: progressiveRender,\n      modDataCount: modDataCount,\n      large: large\n    };\n  };\n\n  Scheduler.prototype.restorePipelines = function (ecModel) {\n    var scheduler = this;\n    var pipelineMap = scheduler._pipelineMap = createHashMap();\n    ecModel.eachSeries(function (seriesModel) {\n      var progressive = seriesModel.getProgressive();\n      var pipelineId = seriesModel.uid;\n      pipelineMap.set(pipelineId, {\n        id: pipelineId,\n        head: null,\n        tail: null,\n        threshold: seriesModel.getProgressiveThreshold(),\n        progressiveEnabled: progressive && !(seriesModel.preventIncremental && seriesModel.preventIncremental()),\n        blockIndex: -1,\n        step: Math.round(progressive || 700),\n        count: 0\n      });\n\n      scheduler._pipe(seriesModel, seriesModel.dataTask);\n    });\n  };\n\n  Scheduler.prototype.prepareStageTasks = function () {\n    var stageTaskMap = this._stageTaskMap;\n    var ecModel = this.api.getModel();\n    var api = this.api;\n    each(this._allHandlers, function (handler) {\n      var record = stageTaskMap.get(handler.uid) || stageTaskMap.set(handler.uid, {});\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = '\"reset\" and \"overallReset\" must not be both specified.';\n      }\n\n      assert(!(handler.reset && handler.overallReset), errMsg);\n      handler.reset && this._createSeriesStageTask(handler, record, ecModel, api);\n      handler.overallReset && this._createOverallStageTask(handler, record, ecModel, api);\n    }, this);\n  };\n\n  Scheduler.prototype.prepareView = function (view, model, ecModel, api) {\n    var renderTask = view.renderTask;\n    var context = renderTask.context;\n    context.model = model;\n    context.ecModel = ecModel;\n    context.api = api;\n    renderTask.__block = !view.incrementalPrepareRender;\n\n    this._pipe(model, renderTask);\n  };\n\n  Scheduler.prototype.performDataProcessorTasks = function (ecModel, payload) {\n    this._performStageTasks(this._dataProcessorHandlers, ecModel, payload, {\n      block: true\n    });\n  };\n\n  Scheduler.prototype.performVisualTasks = function (ecModel, payload, opt) {\n    this._performStageTasks(this._visualHandlers, ecModel, payload, opt);\n  };\n\n  Scheduler.prototype._performStageTasks = function (stageHandlers, ecModel, payload, opt) {\n    opt = opt || {};\n    var unfinished = false;\n    var scheduler = this;\n    each(stageHandlers, function (stageHandler, idx) {\n      if (opt.visualType && opt.visualType !== stageHandler.visualType) {\n        return;\n      }\n\n      var stageHandlerRecord = scheduler._stageTaskMap.get(stageHandler.uid);\n\n      var seriesTaskMap = stageHandlerRecord.seriesTaskMap;\n      var overallTask = stageHandlerRecord.overallTask;\n\n      if (overallTask) {\n        var overallNeedDirty_1;\n        var agentStubMap = overallTask.agentStubMap;\n        agentStubMap.each(function (stub) {\n          if (needSetDirty(opt, stub)) {\n            stub.dirty();\n            overallNeedDirty_1 = true;\n          }\n        });\n        overallNeedDirty_1 && overallTask.dirty();\n        scheduler.updatePayload(overallTask, payload);\n        var performArgs_1 = scheduler.getPerformArgs(overallTask, opt.block);\n        agentStubMap.each(function (stub) {\n          stub.perform(performArgs_1);\n        });\n\n        if (overallTask.perform(performArgs_1)) {\n          unfinished = true;\n        }\n      } else if (seriesTaskMap) {\n        seriesTaskMap.each(function (task, pipelineId) {\n          if (needSetDirty(opt, task)) {\n            task.dirty();\n          }\n\n          var performArgs = scheduler.getPerformArgs(task, opt.block);\n          performArgs.skip = !stageHandler.performRawSeries && ecModel.isSeriesFiltered(task.context.model);\n          scheduler.updatePayload(task, payload);\n\n          if (task.perform(performArgs)) {\n            unfinished = true;\n          }\n        });\n      }\n    });\n\n    function needSetDirty(opt, task) {\n      return opt.setDirty && (!opt.dirtyMap || opt.dirtyMap.get(task.__pipeline.id));\n    }\n\n    this.unfinished = unfinished || this.unfinished;\n  };\n\n  Scheduler.prototype.performSeriesTasks = function (ecModel) {\n    var unfinished;\n    ecModel.eachSeries(function (seriesModel) {\n      unfinished = seriesModel.dataTask.perform() || unfinished;\n    });\n    this.unfinished = unfinished || this.unfinished;\n  };\n\n  Scheduler.prototype.plan = function () {\n    this._pipelineMap.each(function (pipeline) {\n      var task = pipeline.tail;\n\n      do {\n        if (task.__block) {\n          pipeline.blockIndex = task.__idxInPipeline;\n          break;\n        }\n\n        task = task.getUpstream();\n      } while (task);\n    });\n  };\n\n  Scheduler.prototype.updatePayload = function (task, payload) {\n    payload !== 'remain' && (task.context.payload = payload);\n  };\n\n  Scheduler.prototype._createSeriesStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\n    var scheduler = this;\n    var oldSeriesTaskMap = stageHandlerRecord.seriesTaskMap;\n    var newSeriesTaskMap = stageHandlerRecord.seriesTaskMap = createHashMap();\n    var seriesType = stageHandler.seriesType;\n    var getTargetSeries = stageHandler.getTargetSeries;\n\n    if (stageHandler.createOnAllSeries) {\n      ecModel.eachRawSeries(create);\n    } else if (seriesType) {\n      ecModel.eachRawSeriesByType(seriesType, create);\n    } else if (getTargetSeries) {\n      getTargetSeries(ecModel, api).each(create);\n    }\n\n    function create(seriesModel) {\n      var pipelineId = seriesModel.uid;\n      var task = newSeriesTaskMap.set(pipelineId, oldSeriesTaskMap && oldSeriesTaskMap.get(pipelineId) || createTask({\n        plan: seriesTaskPlan,\n        reset: seriesTaskReset,\n        count: seriesTaskCount\n      }));\n      task.context = {\n        model: seriesModel,\n        ecModel: ecModel,\n        api: api,\n        useClearVisual: stageHandler.isVisual && !stageHandler.isLayout,\n        plan: stageHandler.plan,\n        reset: stageHandler.reset,\n        scheduler: scheduler\n      };\n\n      scheduler._pipe(seriesModel, task);\n    }\n  };\n\n  Scheduler.prototype._createOverallStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\n    var scheduler = this;\n    var overallTask = stageHandlerRecord.overallTask = stageHandlerRecord.overallTask || createTask({\n      reset: overallTaskReset\n    });\n    overallTask.context = {\n      ecModel: ecModel,\n      api: api,\n      overallReset: stageHandler.overallReset,\n      scheduler: scheduler\n    };\n    var oldAgentStubMap = overallTask.agentStubMap;\n    var newAgentStubMap = overallTask.agentStubMap = createHashMap();\n    var seriesType = stageHandler.seriesType;\n    var getTargetSeries = stageHandler.getTargetSeries;\n    var overallProgress = true;\n    var shouldOverallTaskDirty = false;\n    var errMsg = '';\n\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = '\"createOnAllSeries\" do not supported for \"overallReset\", ' + 'becuase it will block all streams.';\n    }\n\n    assert(!stageHandler.createOnAllSeries, errMsg);\n\n    if (seriesType) {\n      ecModel.eachRawSeriesByType(seriesType, createStub);\n    } else if (getTargetSeries) {\n      getTargetSeries(ecModel, api).each(createStub);\n    } else {\n      overallProgress = false;\n      each(ecModel.getSeries(), createStub);\n    }\n\n    function createStub(seriesModel) {\n      var pipelineId = seriesModel.uid;\n      var stub = newAgentStubMap.set(pipelineId, oldAgentStubMap && oldAgentStubMap.get(pipelineId) || (shouldOverallTaskDirty = true, createTask({\n        reset: stubReset,\n        onDirty: stubOnDirty\n      })));\n      stub.context = {\n        model: seriesModel,\n        overallProgress: overallProgress\n      };\n      stub.agent = overallTask;\n      stub.__block = overallProgress;\n\n      scheduler._pipe(seriesModel, stub);\n    }\n\n    if (shouldOverallTaskDirty) {\n      overallTask.dirty();\n    }\n  };\n\n  Scheduler.prototype._pipe = function (seriesModel, task) {\n    var pipelineId = seriesModel.uid;\n\n    var pipeline = this._pipelineMap.get(pipelineId);\n\n    !pipeline.head && (pipeline.head = task);\n    pipeline.tail && pipeline.tail.pipe(task);\n    pipeline.tail = task;\n    task.__idxInPipeline = pipeline.count++;\n    task.__pipeline = pipeline;\n  };\n\n  Scheduler.wrapStageHandler = function (stageHandler, visualType) {\n    if (isFunction(stageHandler)) {\n      stageHandler = {\n        overallReset: stageHandler,\n        seriesType: detectSeriseType(stageHandler)\n      };\n    }\n\n    stageHandler.uid = getUID('stageHandler');\n    visualType && (stageHandler.visualType = visualType);\n    return stageHandler;\n  };\n\n  ;\n  return Scheduler;\n}();\n\nfunction overallTaskReset(context) {\n  context.overallReset(context.ecModel, context.api, context.payload);\n}\n\nfunction stubReset(context) {\n  return context.overallProgress && stubProgress;\n}\n\nfunction stubProgress() {\n  this.agent.dirty();\n  this.getDownstream().dirty();\n}\n\nfunction stubOnDirty() {\n  this.agent && this.agent.dirty();\n}\n\nfunction seriesTaskPlan(context) {\n  return context.plan ? context.plan(context.model, context.ecModel, context.api, context.payload) : null;\n}\n\nfunction seriesTaskReset(context) {\n  if (context.useClearVisual) {\n    context.data.clearAllVisual();\n  }\n\n  var resetDefines = context.resetDefines = normalizeToArray(context.reset(context.model, context.ecModel, context.api, context.payload));\n  return resetDefines.length > 1 ? map(resetDefines, function (v, idx) {\n    return makeSeriesTaskProgress(idx);\n  }) : singleSeriesTaskProgress;\n}\n\nvar singleSeriesTaskProgress = makeSeriesTaskProgress(0);\n\nfunction makeSeriesTaskProgress(resetDefineIdx) {\n  return function (params, context) {\n    var data = context.data;\n    var resetDefine = context.resetDefines[resetDefineIdx];\n\n    if (resetDefine && resetDefine.dataEach) {\n      for (var i = params.start; i < params.end; i++) {\n        resetDefine.dataEach(data, i);\n      }\n    } else if (resetDefine && resetDefine.progress) {\n      resetDefine.progress(params, data);\n    }\n  };\n}\n\nfunction seriesTaskCount(context) {\n  return context.data.count();\n}\n\nfunction detectSeriseType(legacyFunc) {\n  seriesType = null;\n\n  try {\n    legacyFunc(ecModelMock, apiMock);\n  } catch (e) {}\n\n  return seriesType;\n}\n\nvar ecModelMock = {};\nvar apiMock = {};\nvar seriesType;\nmockMethods(ecModelMock, GlobalModel);\nmockMethods(apiMock, ExtensionAPI);\n\necModelMock.eachSeriesByType = ecModelMock.eachRawSeriesByType = function (type) {\n  seriesType = type;\n};\n\necModelMock.eachComponent = function (cond) {\n  if (cond.mainType === 'series' && cond.subType) {\n    seriesType = cond.subType;\n  }\n};\n\nfunction mockMethods(target, Clz) {\n  for (var name_1 in Clz.prototype) {\n    target[name_1] = noop;\n  }\n}\n\nexport default Scheduler;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar colorAll = ['#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'];\nexport default {\n  color: colorAll,\n  colorLayer: [['#37A2DA', '#ffd85c', '#fd7b5f'], ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'], ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'], colorAll]\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar contrastColor = '#B9B8CE';\nvar backgroundColor = '#100C2A';\n\nvar axisCommon = function () {\n  return {\n    axisLine: {\n      lineStyle: {\n        color: contrastColor\n      }\n    },\n    splitLine: {\n      lineStyle: {\n        color: '#484753'\n      }\n    },\n    splitArea: {\n      areaStyle: {\n        color: ['rgba(255,255,255,0.02)', 'rgba(255,255,255,0.05)']\n      }\n    },\n    minorSplitLine: {\n      lineStyle: {\n        color: '#20203B'\n      }\n    }\n  };\n};\n\nvar colorPalette = ['#4992ff', '#7cffb2', '#fddd60', '#ff6e76', '#58d9f9', '#05c091', '#ff8a45', '#8d48e3', '#dd79ff'];\nvar theme = {\n  darkMode: true,\n  color: colorPalette,\n  backgroundColor: backgroundColor,\n  axisPointer: {\n    lineStyle: {\n      color: '#817f91'\n    },\n    crossStyle: {\n      color: '#817f91'\n    },\n    label: {\n      color: '#fff'\n    }\n  },\n  legend: {\n    textStyle: {\n      color: contrastColor\n    }\n  },\n  textStyle: {\n    color: contrastColor\n  },\n  title: {\n    textStyle: {\n      color: '#EEF1FA'\n    },\n    subtextStyle: {\n      color: '#B9B8CE'\n    }\n  },\n  toolbox: {\n    iconStyle: {\n      borderColor: contrastColor\n    }\n  },\n  dataZoom: {\n    borderColor: '#71708A',\n    textStyle: {\n      color: contrastColor\n    },\n    brushStyle: {\n      color: 'rgba(135,163,206,0.3)'\n    },\n    handleStyle: {\n      color: '#353450',\n      borderColor: '#C5CBE3'\n    },\n    moveHandleStyle: {\n      color: '#B0B6C3',\n      opacity: 0.3\n    },\n    fillerColor: 'rgba(135,163,206,0.2)',\n    emphasis: {\n      handleStyle: {\n        borderColor: '#91B7F2',\n        color: '#4D587D'\n      },\n      moveHandleStyle: {\n        color: '#636D9A',\n        opacity: 0.7\n      }\n    },\n    dataBackground: {\n      lineStyle: {\n        color: '#71708A',\n        width: 1\n      },\n      areaStyle: {\n        color: '#71708A'\n      }\n    },\n    selectedDataBackground: {\n      lineStyle: {\n        color: '#87A3CE'\n      },\n      areaStyle: {\n        color: '#87A3CE'\n      }\n    }\n  },\n  visualMap: {\n    textStyle: {\n      color: contrastColor\n    }\n  },\n  timeline: {\n    lineStyle: {\n      color: contrastColor\n    },\n    label: {\n      color: contrastColor\n    },\n    controlStyle: {\n      color: contrastColor,\n      borderColor: contrastColor\n    }\n  },\n  calendar: {\n    itemStyle: {\n      color: backgroundColor\n    },\n    dayLabel: {\n      color: contrastColor\n    },\n    monthLabel: {\n      color: contrastColor\n    },\n    yearLabel: {\n      color: contrastColor\n    }\n  },\n  timeAxis: axisCommon(),\n  logAxis: axisCommon(),\n  valueAxis: axisCommon(),\n  categoryAxis: axisCommon(),\n  line: {\n    symbol: 'circle'\n  },\n  graph: {\n    color: colorPalette\n  },\n  gauge: {\n    title: {\n      color: contrastColor\n    },\n    axisLine: {\n      lineStyle: {\n        color: [[1, 'rgba(207,212,219,0.2)']]\n      }\n    },\n    axisLabel: {\n      color: contrastColor\n    },\n    detail: {\n      color: '#EEF1FA'\n    }\n  },\n  candlestick: {\n    itemStyle: {\n      color: '#f64e56',\n      color0: '#54ea92',\n      borderColor: '#f64e56',\n      borderColor0: '#54ea92'\n    }\n  }\n};\ntheme.categoryAxis.splitLine.show = false;\nexport default theme;","import { isString } from '../core/util';\nexport function parseXML(svg) {\n    if (isString(svg)) {\n        var parser = new DOMParser();\n        svg = parser.parseFromString(svg, 'text/xml');\n    }\n    var svgNode = svg;\n    if (svgNode.nodeType === 9) {\n        svgNode = svgNode.firstChild;\n    }\n    while (svgNode.nodeName.toLowerCase() !== 'svg' || svgNode.nodeType !== 1) {\n        svgNode = svgNode.nextSibling;\n    }\n    return svgNode;\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, isString, isArray, each, assert } from 'zrender/lib/core/util';\nimport { parseXML } from 'zrender/lib/tool/parseXML';\nvar storage = createHashMap();\nexport default {\n  registerMap: function (mapName, rawDef, rawSpecialAreas) {\n    var records;\n\n    if (isArray(rawDef)) {\n      records = rawDef;\n    } else if (rawDef.svg) {\n      records = [{\n        type: 'svg',\n        source: rawDef.svg,\n        specialAreas: rawDef.specialAreas\n      }];\n    } else {\n      var geoSource = rawDef.geoJson || rawDef.geoJSON;\n\n      if (geoSource && !rawDef.features) {\n        rawSpecialAreas = rawDef.specialAreas;\n        rawDef = geoSource;\n      }\n\n      records = [{\n        type: 'geoJSON',\n        source: rawDef,\n        specialAreas: rawSpecialAreas\n      }];\n    }\n\n    each(records, function (record) {\n      var type = record.type;\n      type === 'geoJson' && (type = record.type = 'geoJSON');\n      var parse = parsers[type];\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(parse, 'Illegal map type: ' + type);\n      }\n\n      parse(record);\n    });\n    return storage.set(mapName, records);\n  },\n  retrieveMap: function (mapName) {\n    return storage.get(mapName);\n  }\n};\nvar parsers = {\n  geoJSON: function (record) {\n    var source = record.source;\n    record.geoJSON = !isString(source) ? source : typeof JSON !== 'undefined' && JSON.parse ? JSON.parse(source) : new Function('return (' + source + ');')();\n  },\n  svg: function (record) {\n    record.svgXML = parseXML(record.source);\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parseClassType } from './clazz';\n\nvar ECEventProcessor = function () {\n  function ECEventProcessor() {}\n\n  ECEventProcessor.prototype.normalizeQuery = function (query) {\n    var cptQuery = {};\n    var dataQuery = {};\n    var otherQuery = {};\n\n    if (zrUtil.isString(query)) {\n      var condCptType = parseClassType(query);\n      cptQuery.mainType = condCptType.main || null;\n      cptQuery.subType = condCptType.sub || null;\n    } else {\n      var suffixes_1 = ['Index', 'Name', 'Id'];\n      var dataKeys_1 = {\n        name: 1,\n        dataIndex: 1,\n        dataType: 1\n      };\n      zrUtil.each(query, function (val, key) {\n        var reserved = false;\n\n        for (var i = 0; i < suffixes_1.length; i++) {\n          var propSuffix = suffixes_1[i];\n          var suffixPos = key.lastIndexOf(propSuffix);\n\n          if (suffixPos > 0 && suffixPos === key.length - propSuffix.length) {\n            var mainType = key.slice(0, suffixPos);\n\n            if (mainType !== 'data') {\n              cptQuery.mainType = mainType;\n              cptQuery[propSuffix.toLowerCase()] = val;\n              reserved = true;\n            }\n          }\n        }\n\n        if (dataKeys_1.hasOwnProperty(key)) {\n          dataQuery[key] = val;\n          reserved = true;\n        }\n\n        if (!reserved) {\n          otherQuery[key] = val;\n        }\n      });\n    }\n\n    return {\n      cptQuery: cptQuery,\n      dataQuery: dataQuery,\n      otherQuery: otherQuery\n    };\n  };\n\n  ECEventProcessor.prototype.filter = function (eventType, query) {\n    var eventInfo = this.eventInfo;\n\n    if (!eventInfo) {\n      return true;\n    }\n\n    var targetEl = eventInfo.targetEl;\n    var packedEvent = eventInfo.packedEvent;\n    var model = eventInfo.model;\n    var view = eventInfo.view;\n\n    if (!model || !view) {\n      return true;\n    }\n\n    var cptQuery = query.cptQuery;\n    var dataQuery = query.dataQuery;\n    return check(cptQuery, model, 'mainType') && check(cptQuery, model, 'subType') && check(cptQuery, model, 'index', 'componentIndex') && check(cptQuery, model, 'name') && check(cptQuery, model, 'id') && check(dataQuery, packedEvent, 'name') && check(dataQuery, packedEvent, 'dataIndex') && check(dataQuery, packedEvent, 'dataType') && (!view.filterForExposedEvent || view.filterForExposedEvent(eventType, query.otherQuery, targetEl, packedEvent));\n\n    function check(query, host, prop, propOnHost) {\n      return query[prop] == null || host[propOnHost || prop] === query[prop];\n    }\n  };\n\n  ECEventProcessor.prototype.afterTrigger = function () {\n    this.eventInfo = null;\n  };\n\n  return ECEventProcessor;\n}();\n\nexport { ECEventProcessor };\n;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isFunction } from 'zrender/lib/core/util';\nvar seriesSymbolTask = {\n  createOnAllSeries: true,\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    var data = seriesModel.getData();\n\n    if (seriesModel.legendSymbol) {\n      data.setVisual('legendSymbol', seriesModel.legendSymbol);\n    }\n\n    if (!seriesModel.hasSymbolVisual) {\n      return;\n    }\n\n    var symbolType = seriesModel.get('symbol');\n    var symbolSize = seriesModel.get('symbolSize');\n    var keepAspect = seriesModel.get('symbolKeepAspect');\n    var symbolRotate = seriesModel.get('symbolRotate');\n    var hasSymbolTypeCallback = isFunction(symbolType);\n    var hasSymbolSizeCallback = isFunction(symbolSize);\n    var hasSymbolRotateCallback = isFunction(symbolRotate);\n    var hasCallback = hasSymbolTypeCallback || hasSymbolSizeCallback || hasSymbolRotateCallback;\n    var seriesSymbol = !hasSymbolTypeCallback && symbolType ? symbolType : seriesModel.defaultSymbol;\n    var seriesSymbolSize = !hasSymbolSizeCallback ? symbolSize : null;\n    var seriesSymbolRotate = !hasSymbolRotateCallback ? symbolRotate : null;\n    data.setVisual({\n      legendSymbol: seriesModel.legendSymbol || seriesSymbol,\n      symbol: seriesSymbol,\n      symbolSize: seriesSymbolSize,\n      symbolKeepAspect: keepAspect,\n      symbolRotate: seriesSymbolRotate\n    });\n\n    if (ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    function dataEach(data, idx) {\n      var rawValue = seriesModel.getRawValue(idx);\n      var params = seriesModel.getDataParams(idx);\n      hasSymbolTypeCallback && data.setItemVisual(idx, 'symbol', symbolType(rawValue, params));\n      hasSymbolSizeCallback && data.setItemVisual(idx, 'symbolSize', symbolSize(rawValue, params));\n      hasSymbolRotateCallback && data.setItemVisual(idx, 'symbolRotate', symbolRotate(rawValue, params));\n    }\n\n    return {\n      dataEach: hasCallback ? dataEach : null\n    };\n  }\n};\nvar dataSymbolTask = {\n  createOnAllSeries: true,\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    if (!seriesModel.hasSymbolVisual) {\n      return;\n    }\n\n    if (ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n\n    function dataEach(data, idx) {\n      var itemModel = data.getItemModel(idx);\n      var itemSymbolType = itemModel.getShallow('symbol', true);\n      var itemSymbolSize = itemModel.getShallow('symbolSize', true);\n      var itemSymbolRotate = itemModel.getShallow('symbolRotate', true);\n      var itemSymbolKeepAspect = itemModel.getShallow('symbolKeepAspect', true);\n\n      if (itemSymbolType != null) {\n        data.setItemVisual(idx, 'symbol', itemSymbolType);\n      }\n\n      if (itemSymbolSize != null) {\n        data.setItemVisual(idx, 'symbolSize', itemSymbolSize);\n      }\n\n      if (itemSymbolRotate != null) {\n        data.setItemVisual(idx, 'symbolRotate', itemSymbolRotate);\n      }\n\n      if (itemSymbolKeepAspect != null) {\n        data.setItemVisual(idx, 'symbolKeepAspect', itemSymbolKeepAspect);\n      }\n    }\n\n    return {\n      dataEach: data.hasItemOption ? dataEach : null\n    };\n  }\n};\nexport { seriesSymbolTask, dataSymbolTask };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function getItemVisualFromData(data, dataIndex, key) {\n  switch (key) {\n    case 'color':\n      var style = data.getItemVisual(dataIndex, 'style');\n      return style[data.getVisual('drawType')];\n\n    case 'opacity':\n      return data.getItemVisual(dataIndex, 'style').opacity;\n\n    case 'symbol':\n    case 'symbolSize':\n    case 'liftZ':\n      return data.getItemVisual(dataIndex, key);\n\n    default:\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn(\"Unknown visual type \" + key);\n      }\n\n  }\n}\nexport function getVisualFromData(data, key) {\n  switch (key) {\n    case 'color':\n      var style = data.getVisual('style');\n      return style[data.getVisual('drawType')];\n\n    case 'opacity':\n      return data.getVisual('style').opacity;\n\n    case 'symbol':\n    case 'symbolSize':\n    case 'liftZ':\n      return data.getVisual(key);\n\n    default:\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn(\"Unknown visual type \" + key);\n      }\n\n  }\n}\nexport function setItemVisualFromData(data, dataIndex, key, value) {\n  switch (key) {\n    case 'color':\n      var style = data.ensureUniqueItemVisual(dataIndex, 'style');\n      style[data.getVisual('drawType')] = value;\n      data.setItemVisual(dataIndex, 'colorFromPalette', false);\n      break;\n\n    case 'opacity':\n      data.ensureUniqueItemVisual(dataIndex, 'style').opacity = value;\n      break;\n\n    case 'symbol':\n    case 'symbolSize':\n    case 'liftZ':\n      data.setItemVisual(dataIndex, key, value);\n      break;\n\n    default:\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn(\"Unknown visual type \" + key);\n      }\n\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { Point, Path, Polyline } from '../util/graphic';\nimport PathProxy from 'zrender/lib/core/PathProxy';\nimport { normalizeRadian } from 'zrender/lib/contain/util';\nimport { cubicProjectPoint, quadraticProjectPoint } from 'zrender/lib/core/curve';\nimport { defaults, retrieve2 } from 'zrender/lib/core/util';\nimport { invert } from 'zrender/lib/core/matrix';\nimport * as vector from 'zrender/lib/core/vector';\nimport { DISPLAY_STATES, SPECIAL_STATES } from '../util/states';\nvar PI2 = Math.PI * 2;\nvar CMD = PathProxy.CMD;\nvar DEFAULT_SEARCH_SPACE = ['top', 'right', 'bottom', 'left'];\n\nfunction getCandidateAnchor(pos, distance, rect, outPt, outDir) {\n  var width = rect.width;\n  var height = rect.height;\n\n  switch (pos) {\n    case 'top':\n      outPt.set(rect.x + width / 2, rect.y - distance);\n      outDir.set(0, -1);\n      break;\n\n    case 'bottom':\n      outPt.set(rect.x + width / 2, rect.y + height + distance);\n      outDir.set(0, 1);\n      break;\n\n    case 'left':\n      outPt.set(rect.x - distance, rect.y + height / 2);\n      outDir.set(-1, 0);\n      break;\n\n    case 'right':\n      outPt.set(rect.x + width + distance, rect.y + height / 2);\n      outDir.set(1, 0);\n      break;\n  }\n}\n\nfunction projectPointToArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y, out) {\n  x -= cx;\n  y -= cy;\n  var d = Math.sqrt(x * x + y * y);\n  x /= d;\n  y /= d;\n  var ox = x * r + cx;\n  var oy = y * r + cy;\n\n  if (Math.abs(startAngle - endAngle) % PI2 < 1e-4) {\n    out[0] = ox;\n    out[1] = oy;\n    return d - r;\n  }\n\n  if (anticlockwise) {\n    var tmp = startAngle;\n    startAngle = normalizeRadian(endAngle);\n    endAngle = normalizeRadian(tmp);\n  } else {\n    startAngle = normalizeRadian(startAngle);\n    endAngle = normalizeRadian(endAngle);\n  }\n\n  if (startAngle > endAngle) {\n    endAngle += PI2;\n  }\n\n  var angle = Math.atan2(y, x);\n\n  if (angle < 0) {\n    angle += PI2;\n  }\n\n  if (angle >= startAngle && angle <= endAngle || angle + PI2 >= startAngle && angle + PI2 <= endAngle) {\n    out[0] = ox;\n    out[1] = oy;\n    return d - r;\n  }\n\n  var x1 = r * Math.cos(startAngle) + cx;\n  var y1 = r * Math.sin(startAngle) + cy;\n  var x2 = r * Math.cos(endAngle) + cx;\n  var y2 = r * Math.sin(endAngle) + cy;\n  var d1 = (x1 - x) * (x1 - x) + (y1 - y) * (y1 - y);\n  var d2 = (x2 - x) * (x2 - x) + (y2 - y) * (y2 - y);\n\n  if (d1 < d2) {\n    out[0] = x1;\n    out[1] = y1;\n    return Math.sqrt(d1);\n  } else {\n    out[0] = x2;\n    out[1] = y2;\n    return Math.sqrt(d2);\n  }\n}\n\nfunction projectPointToLine(x1, y1, x2, y2, x, y, out, limitToEnds) {\n  var dx = x - x1;\n  var dy = y - y1;\n  var dx1 = x2 - x1;\n  var dy1 = y2 - y1;\n  var lineLen = Math.sqrt(dx1 * dx1 + dy1 * dy1);\n  dx1 /= lineLen;\n  dy1 /= lineLen;\n  var projectedLen = dx * dx1 + dy * dy1;\n  var t = projectedLen / lineLen;\n\n  if (limitToEnds) {\n    t = Math.min(Math.max(t, 0), 1);\n  }\n\n  t *= lineLen;\n  var ox = out[0] = x1 + t * dx1;\n  var oy = out[1] = y1 + t * dy1;\n  return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\n}\n\nfunction projectPointToRect(x1, y1, width, height, x, y, out) {\n  if (width < 0) {\n    x1 = x1 + width;\n    width = -width;\n  }\n\n  if (height < 0) {\n    y1 = y1 + height;\n    height = -height;\n  }\n\n  var x2 = x1 + width;\n  var y2 = y1 + height;\n  var ox = out[0] = Math.min(Math.max(x, x1), x2);\n  var oy = out[1] = Math.min(Math.max(y, y1), y2);\n  return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\n}\n\nvar tmpPt = [];\n\nfunction nearestPointOnRect(pt, rect, out) {\n  var dist = projectPointToRect(rect.x, rect.y, rect.width, rect.height, pt.x, pt.y, tmpPt);\n  out.set(tmpPt[0], tmpPt[1]);\n  return dist;\n}\n\nfunction nearestPointOnPath(pt, path, out) {\n  var xi = 0;\n  var yi = 0;\n  var x0 = 0;\n  var y0 = 0;\n  var x1;\n  var y1;\n  var minDist = Infinity;\n  var data = path.data;\n  var x = pt.x;\n  var y = pt.y;\n\n  for (var i = 0; i < data.length;) {\n    var cmd = data[i++];\n\n    if (i === 1) {\n      xi = data[i];\n      yi = data[i + 1];\n      x0 = xi;\n      y0 = yi;\n    }\n\n    var d = minDist;\n\n    switch (cmd) {\n      case CMD.M:\n        x0 = data[i++];\n        y0 = data[i++];\n        xi = x0;\n        yi = y0;\n        break;\n\n      case CMD.L:\n        d = projectPointToLine(xi, yi, data[i], data[i + 1], x, y, tmpPt, true);\n        xi = data[i++];\n        yi = data[i++];\n        break;\n\n      case CMD.C:\n        d = cubicProjectPoint(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\n        xi = data[i++];\n        yi = data[i++];\n        break;\n\n      case CMD.Q:\n        d = quadraticProjectPoint(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\n        xi = data[i++];\n        yi = data[i++];\n        break;\n\n      case CMD.A:\n        var cx = data[i++];\n        var cy = data[i++];\n        var rx = data[i++];\n        var ry = data[i++];\n        var theta = data[i++];\n        var dTheta = data[i++];\n        i += 1;\n        var anticlockwise = !!(1 - data[i++]);\n        x1 = Math.cos(theta) * rx + cx;\n        y1 = Math.sin(theta) * ry + cy;\n\n        if (i <= 1) {\n          x0 = x1;\n          y0 = y1;\n        }\n\n        var _x = (x - cx) * ry / rx + cx;\n\n        d = projectPointToArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y, tmpPt);\n        xi = Math.cos(theta + dTheta) * rx + cx;\n        yi = Math.sin(theta + dTheta) * ry + cy;\n        break;\n\n      case CMD.R:\n        x0 = xi = data[i++];\n        y0 = yi = data[i++];\n        var width = data[i++];\n        var height = data[i++];\n        d = projectPointToRect(x0, y0, width, height, x, y, tmpPt);\n        break;\n\n      case CMD.Z:\n        d = projectPointToLine(xi, yi, x0, y0, x, y, tmpPt, true);\n        xi = x0;\n        yi = y0;\n        break;\n    }\n\n    if (d < minDist) {\n      minDist = d;\n      out.set(tmpPt[0], tmpPt[1]);\n    }\n  }\n\n  return minDist;\n}\n\nvar pt0 = new Point();\nvar pt1 = new Point();\nvar pt2 = new Point();\nvar dir = new Point();\nvar dir2 = new Point();\nexport function updateLabelLinePoints(target, labelLineModel) {\n  if (!target) {\n    return;\n  }\n\n  var labelLine = target.getTextGuideLine();\n  var label = target.getTextContent();\n\n  if (!(label && labelLine)) {\n    return;\n  }\n\n  var labelGuideConfig = target.textGuideLineConfig || {};\n  var points = [[0, 0], [0, 0], [0, 0]];\n  var searchSpace = labelGuideConfig.candidates || DEFAULT_SEARCH_SPACE;\n  var labelRect = label.getBoundingRect().clone();\n  labelRect.applyTransform(label.getComputedTransform());\n  var minDist = Infinity;\n  var anchorPoint = labelGuideConfig.anchor;\n  var targetTransform = target.getComputedTransform();\n  var targetInversedTransform = targetTransform && invert([], targetTransform);\n  var len = labelLineModel.get('length2') || 0;\n\n  if (anchorPoint) {\n    pt2.copy(anchorPoint);\n  }\n\n  for (var i = 0; i < searchSpace.length; i++) {\n    var candidate = searchSpace[i];\n    getCandidateAnchor(candidate, 0, labelRect, pt0, dir);\n    Point.scaleAndAdd(pt1, pt0, dir, len);\n    pt1.transform(targetInversedTransform);\n    var boundingRect = target.getBoundingRect();\n    var dist = anchorPoint ? anchorPoint.distance(pt1) : target instanceof Path ? nearestPointOnPath(pt1, target.path, pt2) : nearestPointOnRect(pt1, boundingRect, pt2);\n\n    if (dist < minDist) {\n      minDist = dist;\n      pt1.transform(targetTransform);\n      pt2.transform(targetTransform);\n      pt2.toArray(points[0]);\n      pt1.toArray(points[1]);\n      pt0.toArray(points[2]);\n    }\n  }\n\n  limitTurnAngle(points, labelLineModel.get('minTurnAngle'));\n  labelLine.setShape({\n    points: points\n  });\n}\nvar tmpArr = [];\nvar tmpProjPoint = new Point();\nexport function limitTurnAngle(linePoints, minTurnAngle) {\n  if (!(minTurnAngle <= 180 && minTurnAngle > 0)) {\n    return;\n  }\n\n  minTurnAngle = minTurnAngle / 180 * Math.PI;\n  pt0.fromArray(linePoints[0]);\n  pt1.fromArray(linePoints[1]);\n  pt2.fromArray(linePoints[2]);\n  Point.sub(dir, pt0, pt1);\n  Point.sub(dir2, pt2, pt1);\n  var len1 = dir.len();\n  var len2 = dir2.len();\n\n  if (len1 < 1e-3 || len2 < 1e-3) {\n    return;\n  }\n\n  dir.scale(1 / len1);\n  dir2.scale(1 / len2);\n  var angleCos = dir.dot(dir2);\n  var minTurnAngleCos = Math.cos(minTurnAngle);\n\n  if (minTurnAngleCos < angleCos) {\n    var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\n    tmpProjPoint.fromArray(tmpArr);\n    tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI - minTurnAngle));\n    var t = pt2.x !== pt1.x ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x) : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\n\n    if (isNaN(t)) {\n      return;\n    }\n\n    if (t < 0) {\n      Point.copy(tmpProjPoint, pt1);\n    } else if (t > 1) {\n      Point.copy(tmpProjPoint, pt2);\n    }\n\n    tmpProjPoint.toArray(linePoints[1]);\n  }\n}\nexport function limitSurfaceAngle(linePoints, surfaceNormal, maxSurfaceAngle) {\n  if (!(maxSurfaceAngle <= 180 && maxSurfaceAngle > 0)) {\n    return;\n  }\n\n  maxSurfaceAngle = maxSurfaceAngle / 180 * Math.PI;\n  pt0.fromArray(linePoints[0]);\n  pt1.fromArray(linePoints[1]);\n  pt2.fromArray(linePoints[2]);\n  Point.sub(dir, pt1, pt0);\n  Point.sub(dir2, pt2, pt1);\n  var len1 = dir.len();\n  var len2 = dir2.len();\n\n  if (len1 < 1e-3 || len2 < 1e-3) {\n    return;\n  }\n\n  dir.scale(1 / len1);\n  dir2.scale(1 / len2);\n  var angleCos = dir.dot(surfaceNormal);\n  var maxSurfaceAngleCos = Math.cos(maxSurfaceAngle);\n\n  if (angleCos < maxSurfaceAngleCos) {\n    var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\n    tmpProjPoint.fromArray(tmpArr);\n    var HALF_PI = Math.PI / 2;\n    var angle2 = Math.acos(dir2.dot(surfaceNormal));\n    var newAngle = HALF_PI + angle2 - maxSurfaceAngle;\n\n    if (newAngle >= HALF_PI) {\n      Point.copy(tmpProjPoint, pt2);\n    } else {\n      tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI / 2 - newAngle));\n      var t = pt2.x !== pt1.x ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x) : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\n\n      if (isNaN(t)) {\n        return;\n      }\n\n      if (t < 0) {\n        Point.copy(tmpProjPoint, pt1);\n      } else if (t > 1) {\n        Point.copy(tmpProjPoint, pt2);\n      }\n    }\n\n    tmpProjPoint.toArray(linePoints[1]);\n  }\n}\n\nfunction setLabelLineState(labelLine, ignore, stateName, stateModel) {\n  var isNormal = stateName === 'normal';\n  var stateObj = isNormal ? labelLine : labelLine.ensureState(stateName);\n  stateObj.ignore = ignore;\n  var smooth = stateModel.get('smooth');\n\n  if (smooth && smooth === true) {\n    smooth = 0.3;\n  }\n\n  stateObj.shape = stateObj.shape || {};\n\n  if (smooth > 0) {\n    stateObj.shape.smooth = smooth;\n  }\n\n  var styleObj = stateModel.getModel('lineStyle').getLineStyle();\n  isNormal ? labelLine.useStyle(styleObj) : stateObj.style = styleObj;\n}\n\nfunction buildLabelLinePath(path, shape) {\n  var smooth = shape.smooth;\n  var points = shape.points;\n\n  if (!points) {\n    return;\n  }\n\n  path.moveTo(points[0][0], points[0][1]);\n\n  if (smooth > 0 && points.length >= 3) {\n    var len1 = vector.dist(points[0], points[1]);\n    var len2 = vector.dist(points[1], points[2]);\n\n    if (!len1 || !len2) {\n      path.lineTo(points[1][0], points[1][1]);\n      path.lineTo(points[2][0], points[2][1]);\n      return;\n    }\n\n    var moveLen = Math.min(len1, len2) * smooth;\n    var midPoint0 = vector.lerp([], points[1], points[0], moveLen / len1);\n    var midPoint2 = vector.lerp([], points[1], points[2], moveLen / len2);\n    var midPoint1 = vector.lerp([], midPoint0, midPoint2, 0.5);\n    path.bezierCurveTo(midPoint0[0], midPoint0[1], midPoint0[0], midPoint0[1], midPoint1[0], midPoint1[1]);\n    path.bezierCurveTo(midPoint2[0], midPoint2[1], midPoint2[0], midPoint2[1], points[2][0], points[2][1]);\n  } else {\n    for (var i = 1; i < points.length; i++) {\n      path.lineTo(points[i][0], points[i][1]);\n    }\n  }\n}\n\nexport function setLabelLineStyle(targetEl, statesModels, defaultStyle) {\n  var labelLine = targetEl.getTextGuideLine();\n  var label = targetEl.getTextContent();\n\n  if (!label) {\n    if (labelLine) {\n      targetEl.removeTextGuideLine();\n    }\n\n    return;\n  }\n\n  var normalModel = statesModels.normal;\n  var showNormal = normalModel.get('show');\n  var labelIgnoreNormal = label.ignore;\n\n  for (var i = 0; i < DISPLAY_STATES.length; i++) {\n    var stateName = DISPLAY_STATES[i];\n    var stateModel = statesModels[stateName];\n    var isNormal = stateName === 'normal';\n\n    if (stateModel) {\n      var stateShow = stateModel.get('show');\n      var isLabelIgnored = isNormal ? labelIgnoreNormal : retrieve2(label.states[stateName] && label.states[stateName].ignore, labelIgnoreNormal);\n\n      if (isLabelIgnored || !retrieve2(stateShow, showNormal)) {\n        var stateObj = isNormal ? labelLine : labelLine && labelLine.states.normal;\n\n        if (stateObj) {\n          stateObj.ignore = true;\n        }\n\n        continue;\n      }\n\n      if (!labelLine) {\n        labelLine = new Polyline();\n        targetEl.setTextGuideLine(labelLine);\n\n        if (!isNormal && (labelIgnoreNormal || !showNormal)) {\n          setLabelLineState(labelLine, true, 'normal', statesModels.normal);\n        }\n\n        if (targetEl.stateProxy) {\n          labelLine.stateProxy = targetEl.stateProxy;\n        }\n      }\n\n      setLabelLineState(labelLine, false, stateName, stateModel);\n    }\n  }\n\n  if (labelLine) {\n    defaults(labelLine.style, defaultStyle);\n    labelLine.style.fill = null;\n    var showAbove = normalModel.get('showAbove');\n    var labelLineConfig = targetEl.textGuideLineConfig = targetEl.textGuideLineConfig || {};\n    labelLineConfig.showAbove = showAbove || false;\n    labelLine.buildPath = buildLabelLinePath;\n  }\n}\nexport function getLabelLineStatesModels(itemModel, labelLineName) {\n  labelLineName = labelLineName || 'labelLine';\n  var statesModels = {\n    normal: itemModel.getModel(labelLineName)\n  };\n\n  for (var i = 0; i < SPECIAL_STATES.length; i++) {\n    var stateName = SPECIAL_STATES[i];\n    statesModels[stateName] = itemModel.getModel([stateName, labelLineName]);\n  }\n\n  return statesModels;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { BoundingRect, OrientedBoundingRect } from '../util/graphic';\nexport function prepareLayoutList(input) {\n  var list = [];\n\n  for (var i = 0; i < input.length; i++) {\n    var rawItem = input[i];\n\n    if (rawItem.defaultAttr.ignore) {\n      continue;\n    }\n\n    var label = rawItem.label;\n    var transform = label.getComputedTransform();\n    var localRect = label.getBoundingRect();\n    var isAxisAligned = !transform || transform[1] < 1e-5 && transform[2] < 1e-5;\n    var minMargin = label.style.margin || 0;\n    var globalRect = localRect.clone();\n    globalRect.applyTransform(transform);\n    globalRect.x -= minMargin / 2;\n    globalRect.y -= minMargin / 2;\n    globalRect.width += minMargin;\n    globalRect.height += minMargin;\n    var obb = isAxisAligned ? new OrientedBoundingRect(localRect, transform) : null;\n    list.push({\n      label: label,\n      labelLine: rawItem.labelLine,\n      rect: globalRect,\n      localRect: localRect,\n      obb: obb,\n      priority: rawItem.priority,\n      defaultAttr: rawItem.defaultAttr,\n      layoutOption: rawItem.computedLayoutOption,\n      axisAligned: isAxisAligned,\n      transform: transform\n    });\n  }\n\n  return list;\n}\n\nfunction shiftLayout(list, xyDim, sizeDim, minBound, maxBound, balanceShift) {\n  var len = list.length;\n\n  if (len < 2) {\n    return;\n  }\n\n  list.sort(function (a, b) {\n    return a.rect[xyDim] - b.rect[xyDim];\n  });\n  var lastPos = 0;\n  var delta;\n  var adjusted = false;\n  var shifts = [];\n  var totalShifts = 0;\n\n  for (var i = 0; i < len; i++) {\n    var item = list[i];\n    var rect = item.rect;\n    delta = rect[xyDim] - lastPos;\n\n    if (delta < 0) {\n      rect[xyDim] -= delta;\n      item.label[xyDim] -= delta;\n      adjusted = true;\n    }\n\n    var shift = Math.max(-delta, 0);\n    shifts.push(shift);\n    totalShifts += shift;\n    lastPos = rect[xyDim] + rect[sizeDim];\n  }\n\n  if (totalShifts > 0 && balanceShift) {\n    shiftList(-totalShifts / len, 0, len);\n  }\n\n  var first = list[0];\n  var last = list[len - 1];\n  var minGap;\n  var maxGap;\n  updateMinMaxGap();\n  minGap < 0 && squeezeGaps(-minGap, 0.8);\n  maxGap < 0 && squeezeGaps(maxGap, 0.8);\n  updateMinMaxGap();\n  takeBoundsGap(minGap, maxGap, 1);\n  takeBoundsGap(maxGap, minGap, -1);\n  updateMinMaxGap();\n\n  if (minGap < 0) {\n    squeezeWhenBailout(-minGap);\n  }\n\n  if (maxGap < 0) {\n    squeezeWhenBailout(maxGap);\n  }\n\n  function updateMinMaxGap() {\n    minGap = first.rect[xyDim] - minBound;\n    maxGap = maxBound - last.rect[xyDim] - last.rect[sizeDim];\n  }\n\n  function takeBoundsGap(gapThisBound, gapOtherBound, moveDir) {\n    if (gapThisBound < 0) {\n      var moveFromMaxGap = Math.min(gapOtherBound, -gapThisBound);\n\n      if (moveFromMaxGap > 0) {\n        shiftList(moveFromMaxGap * moveDir, 0, len);\n        var remained = moveFromMaxGap + gapThisBound;\n\n        if (remained < 0) {\n          squeezeGaps(-remained * moveDir, 1);\n        }\n      } else {\n        squeezeGaps(-gapThisBound * moveDir, 1);\n      }\n    }\n  }\n\n  function shiftList(delta, start, end) {\n    if (delta !== 0) {\n      adjusted = true;\n    }\n\n    for (var i = start; i < end; i++) {\n      var item = list[i];\n      var rect = item.rect;\n      rect[xyDim] += delta;\n      item.label[xyDim] += delta;\n    }\n  }\n\n  function squeezeGaps(delta, maxSqeezePercent) {\n    var gaps = [];\n    var totalGaps = 0;\n\n    for (var i = 1; i < len; i++) {\n      var prevItemRect = list[i - 1].rect;\n      var gap = Math.max(list[i].rect[xyDim] - prevItemRect[xyDim] - prevItemRect[sizeDim], 0);\n      gaps.push(gap);\n      totalGaps += gap;\n    }\n\n    if (!totalGaps) {\n      return;\n    }\n\n    var squeezePercent = Math.min(Math.abs(delta) / totalGaps, maxSqeezePercent);\n\n    if (delta > 0) {\n      for (var i = 0; i < len - 1; i++) {\n        var movement = gaps[i] * squeezePercent;\n        shiftList(movement, 0, i + 1);\n      }\n    } else {\n      for (var i = len - 1; i > 0; i--) {\n        var movement = gaps[i - 1] * squeezePercent;\n        shiftList(-movement, i, len);\n      }\n    }\n  }\n\n  function squeezeWhenBailout(delta) {\n    var dir = delta < 0 ? -1 : 1;\n    delta = Math.abs(delta);\n    var moveForEachLabel = Math.ceil(delta / (len - 1));\n\n    for (var i = 0; i < len - 1; i++) {\n      if (dir > 0) {\n        shiftList(moveForEachLabel, 0, i + 1);\n      } else {\n        shiftList(-moveForEachLabel, len - i - 1, len);\n      }\n\n      delta -= moveForEachLabel;\n\n      if (delta <= 0) {\n        return;\n      }\n    }\n  }\n\n  return adjusted;\n}\n\nexport function shiftLayoutOnX(list, leftBound, rightBound, balanceShift) {\n  return shiftLayout(list, 'x', 'width', leftBound, rightBound, balanceShift);\n}\nexport function shiftLayoutOnY(list, topBound, bottomBound, balanceShift) {\n  return shiftLayout(list, 'y', 'height', topBound, bottomBound, balanceShift);\n}\nexport function hideOverlap(labelList) {\n  var displayedLabels = [];\n  labelList.sort(function (a, b) {\n    return b.priority - a.priority;\n  });\n  var globalRect = new BoundingRect(0, 0, 0, 0);\n\n  function hideEl(el) {\n    if (!el.ignore) {\n      var emphasisState = el.ensureState('emphasis');\n\n      if (emphasisState.ignore == null) {\n        emphasisState.ignore = false;\n      }\n    }\n\n    el.ignore = true;\n  }\n\n  for (var i = 0; i < labelList.length; i++) {\n    var labelItem = labelList[i];\n    var isAxisAligned = labelItem.axisAligned;\n    var localRect = labelItem.localRect;\n    var transform = labelItem.transform;\n    var label = labelItem.label;\n    var labelLine = labelItem.labelLine;\n    globalRect.copy(labelItem.rect);\n    globalRect.width -= 0.1;\n    globalRect.height -= 0.1;\n    globalRect.x += 0.05;\n    globalRect.y += 0.05;\n    var obb = labelItem.obb;\n    var overlapped = false;\n\n    for (var j = 0; j < displayedLabels.length; j++) {\n      var existsTextCfg = displayedLabels[j];\n\n      if (!globalRect.intersect(existsTextCfg.rect)) {\n        continue;\n      }\n\n      if (isAxisAligned && existsTextCfg.axisAligned) {\n        overlapped = true;\n        break;\n      }\n\n      if (!existsTextCfg.obb) {\n        existsTextCfg.obb = new OrientedBoundingRect(existsTextCfg.localRect, existsTextCfg.transform);\n      }\n\n      if (!obb) {\n        obb = new OrientedBoundingRect(localRect, transform);\n      }\n\n      if (obb.intersect(existsTextCfg.obb)) {\n        overlapped = true;\n        break;\n      }\n    }\n\n    if (overlapped) {\n      hideEl(label);\n      labelLine && hideEl(labelLine);\n    } else {\n      label.attr('ignore', labelItem.defaultAttr.ignore);\n      labelLine && labelLine.attr('ignore', labelItem.defaultAttr.labelGuideIgnore);\n      displayedLabels.push(labelItem);\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { BoundingRect, updateProps, initProps, isElementRemoved } from '../util/graphic';\nimport { getECData } from '../util/innerStore';\nimport { parsePercent } from '../util/number';\nimport Transformable from 'zrender/lib/core/Transformable';\nimport { updateLabelLinePoints, setLabelLineStyle, getLabelLineStatesModels } from './labelGuideHelper';\nimport { makeInner } from '../util/model';\nimport { retrieve2, each, keys, isFunction, filter, indexOf } from 'zrender/lib/core/util';\nimport { prepareLayoutList, hideOverlap, shiftLayoutOnX, shiftLayoutOnY } from './labelLayoutHelper';\nimport { labelInner, animateLabelValue } from './labelStyle';\n\nfunction cloneArr(points) {\n  if (points) {\n    var newPoints = [];\n\n    for (var i = 0; i < points.length; i++) {\n      newPoints.push(points[i].slice());\n    }\n\n    return newPoints;\n  }\n}\n\nfunction prepareLayoutCallbackParams(labelItem, hostEl) {\n  var label = labelItem.label;\n  var labelLine = hostEl && hostEl.getTextGuideLine();\n  return {\n    dataIndex: labelItem.dataIndex,\n    dataType: labelItem.dataType,\n    seriesIndex: labelItem.seriesModel.seriesIndex,\n    text: labelItem.label.style.text,\n    rect: labelItem.hostRect,\n    labelRect: labelItem.rect,\n    align: label.style.align,\n    verticalAlign: label.style.verticalAlign,\n    labelLinePoints: cloneArr(labelLine && labelLine.shape.points)\n  };\n}\n\nvar LABEL_OPTION_TO_STYLE_KEYS = ['align', 'verticalAlign', 'width', 'height', 'fontSize'];\nvar dummyTransformable = new Transformable();\nvar labelLayoutInnerStore = makeInner();\nvar labelLineAnimationStore = makeInner();\n\nfunction extendWithKeys(target, source, keys) {\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n\n    if (source[key] != null) {\n      target[key] = source[key];\n    }\n  }\n}\n\nvar LABEL_LAYOUT_PROPS = ['x', 'y', 'rotation'];\n\nvar LabelManager = function () {\n  function LabelManager() {\n    this._labelList = [];\n    this._chartViewList = [];\n  }\n\n  LabelManager.prototype.clearLabels = function () {\n    this._labelList = [];\n    this._chartViewList = [];\n  };\n\n  LabelManager.prototype._addLabel = function (dataIndex, dataType, seriesModel, label, layoutOption) {\n    var labelStyle = label.style;\n    var hostEl = label.__hostTarget;\n    var textConfig = hostEl.textConfig || {};\n    var labelTransform = label.getComputedTransform();\n    var labelRect = label.getBoundingRect().plain();\n    BoundingRect.applyTransform(labelRect, labelRect, labelTransform);\n\n    if (labelTransform) {\n      dummyTransformable.setLocalTransform(labelTransform);\n    } else {\n      dummyTransformable.x = dummyTransformable.y = dummyTransformable.rotation = dummyTransformable.originX = dummyTransformable.originY = 0;\n      dummyTransformable.scaleX = dummyTransformable.scaleY = 1;\n    }\n\n    var host = label.__hostTarget;\n    var hostRect;\n\n    if (host) {\n      hostRect = host.getBoundingRect().plain();\n      var transform = host.getComputedTransform();\n      BoundingRect.applyTransform(hostRect, hostRect, transform);\n    }\n\n    var labelGuide = hostRect && host.getTextGuideLine();\n\n    this._labelList.push({\n      label: label,\n      labelLine: labelGuide,\n      seriesModel: seriesModel,\n      dataIndex: dataIndex,\n      dataType: dataType,\n      layoutOption: layoutOption,\n      computedLayoutOption: null,\n      rect: labelRect,\n      hostRect: hostRect,\n      priority: hostRect ? hostRect.width * hostRect.height : 0,\n      defaultAttr: {\n        ignore: label.ignore,\n        labelGuideIgnore: labelGuide && labelGuide.ignore,\n        x: dummyTransformable.x,\n        y: dummyTransformable.y,\n        rotation: dummyTransformable.rotation,\n        style: {\n          x: labelStyle.x,\n          y: labelStyle.y,\n          align: labelStyle.align,\n          verticalAlign: labelStyle.verticalAlign,\n          width: labelStyle.width,\n          height: labelStyle.height,\n          fontSize: labelStyle.fontSize\n        },\n        cursor: label.cursor,\n        attachedPos: textConfig.position,\n        attachedRot: textConfig.rotation\n      }\n    });\n  };\n\n  LabelManager.prototype.addLabelsOfSeries = function (chartView) {\n    var _this = this;\n\n    this._chartViewList.push(chartView);\n\n    var seriesModel = chartView.__model;\n    var layoutOption = seriesModel.get('labelLayout');\n\n    if (!(isFunction(layoutOption) || keys(layoutOption).length)) {\n      return;\n    }\n\n    chartView.group.traverse(function (child) {\n      if (child.ignore) {\n        return true;\n      }\n\n      var textEl = child.getTextContent();\n      var ecData = getECData(child);\n\n      if (textEl && !textEl.disableLabelLayout) {\n        _this._addLabel(ecData.dataIndex, ecData.dataType, seriesModel, textEl, layoutOption);\n      }\n    });\n  };\n\n  LabelManager.prototype.updateLayoutConfig = function (api) {\n    var width = api.getWidth();\n    var height = api.getHeight();\n\n    function createDragHandler(el, labelLineModel) {\n      return function () {\n        updateLabelLinePoints(el, labelLineModel);\n      };\n    }\n\n    for (var i = 0; i < this._labelList.length; i++) {\n      var labelItem = this._labelList[i];\n      var label = labelItem.label;\n      var hostEl = label.__hostTarget;\n      var defaultLabelAttr = labelItem.defaultAttr;\n      var layoutOption = void 0;\n\n      if (typeof labelItem.layoutOption === 'function') {\n        layoutOption = labelItem.layoutOption(prepareLayoutCallbackParams(labelItem, hostEl));\n      } else {\n        layoutOption = labelItem.layoutOption;\n      }\n\n      layoutOption = layoutOption || {};\n      labelItem.computedLayoutOption = layoutOption;\n      var degreeToRadian = Math.PI / 180;\n\n      if (hostEl) {\n        hostEl.setTextConfig({\n          local: false,\n          position: layoutOption.x != null || layoutOption.y != null ? null : defaultLabelAttr.attachedPos,\n          rotation: layoutOption.rotate != null ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.attachedRot,\n          offset: [layoutOption.dx || 0, layoutOption.dy || 0]\n        });\n      }\n\n      var needsUpdateLabelLine = false;\n\n      if (layoutOption.x != null) {\n        label.x = parsePercent(layoutOption.x, width);\n        label.setStyle('x', 0);\n        needsUpdateLabelLine = true;\n      } else {\n        label.x = defaultLabelAttr.x;\n        label.setStyle('x', defaultLabelAttr.style.x);\n      }\n\n      if (layoutOption.y != null) {\n        label.y = parsePercent(layoutOption.y, height);\n        label.setStyle('y', 0);\n        needsUpdateLabelLine = true;\n      } else {\n        label.y = defaultLabelAttr.y;\n        label.setStyle('y', defaultLabelAttr.style.y);\n      }\n\n      if (layoutOption.labelLinePoints) {\n        var guideLine = hostEl.getTextGuideLine();\n\n        if (guideLine) {\n          guideLine.setShape({\n            points: layoutOption.labelLinePoints\n          });\n          needsUpdateLabelLine = false;\n        }\n      }\n\n      var labelLayoutStore = labelLayoutInnerStore(label);\n      labelLayoutStore.needsUpdateLabelLine = needsUpdateLabelLine;\n      label.rotation = layoutOption.rotate != null ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.rotation;\n\n      for (var k = 0; k < LABEL_OPTION_TO_STYLE_KEYS.length; k++) {\n        var key = LABEL_OPTION_TO_STYLE_KEYS[k];\n        label.setStyle(key, layoutOption[key] != null ? layoutOption[key] : defaultLabelAttr.style[key]);\n      }\n\n      if (layoutOption.draggable) {\n        label.draggable = true;\n        label.cursor = 'move';\n\n        if (hostEl) {\n          var hostModel = labelItem.seriesModel;\n\n          if (labelItem.dataIndex != null) {\n            var data = labelItem.seriesModel.getData(labelItem.dataType);\n            hostModel = data.getItemModel(labelItem.dataIndex);\n          }\n\n          label.on('drag', createDragHandler(hostEl, hostModel.getModel('labelLine')));\n        }\n      } else {\n        label.off('drag');\n        label.cursor = defaultLabelAttr.cursor;\n      }\n    }\n  };\n\n  LabelManager.prototype.layout = function (api) {\n    var width = api.getWidth();\n    var height = api.getHeight();\n    var labelList = prepareLayoutList(this._labelList);\n    var labelsNeedsAdjustOnX = filter(labelList, function (item) {\n      return item.layoutOption.moveOverlap === 'shiftX';\n    });\n    var labelsNeedsAdjustOnY = filter(labelList, function (item) {\n      return item.layoutOption.moveOverlap === 'shiftY';\n    });\n    shiftLayoutOnX(labelsNeedsAdjustOnX, 0, width);\n    shiftLayoutOnY(labelsNeedsAdjustOnY, 0, height);\n    var labelsNeedsHideOverlap = filter(labelList, function (item) {\n      return item.layoutOption.hideOverlap;\n    });\n    hideOverlap(labelsNeedsHideOverlap);\n  };\n\n  LabelManager.prototype.processLabelsOverall = function () {\n    var _this = this;\n\n    each(this._chartViewList, function (chartView) {\n      var seriesModel = chartView.__model;\n      var ignoreLabelLineUpdate = chartView.ignoreLabelLineUpdate;\n      var animationEnabled = seriesModel.isAnimationEnabled();\n      chartView.group.traverse(function (child) {\n        if (child.ignore) {\n          return true;\n        }\n\n        var needsUpdateLabelLine = !ignoreLabelLineUpdate;\n        var label = child.getTextContent();\n\n        if (!needsUpdateLabelLine && label) {\n          needsUpdateLabelLine = labelLayoutInnerStore(label).needsUpdateLabelLine;\n        }\n\n        if (needsUpdateLabelLine) {\n          _this._updateLabelLine(child, seriesModel);\n        }\n\n        if (animationEnabled) {\n          _this._animateLabels(child, seriesModel);\n        }\n      });\n    });\n  };\n\n  LabelManager.prototype._updateLabelLine = function (el, seriesModel) {\n    var textEl = el.getTextContent();\n    var ecData = getECData(el);\n    var dataIndex = ecData.dataIndex;\n\n    if (textEl && dataIndex != null) {\n      var data = seriesModel.getData(ecData.dataType);\n      var itemModel = data.getItemModel(dataIndex);\n      var defaultStyle = {};\n      var visualStyle = data.getItemVisual(dataIndex, 'style');\n      var visualType = data.getVisual('drawType');\n      defaultStyle.stroke = visualStyle[visualType];\n      var labelLineModel = itemModel.getModel('labelLine');\n      setLabelLineStyle(el, getLabelLineStatesModels(itemModel), defaultStyle);\n      updateLabelLinePoints(el, labelLineModel);\n    }\n  };\n\n  LabelManager.prototype._animateLabels = function (el, seriesModel) {\n    var textEl = el.getTextContent();\n    var guideLine = el.getTextGuideLine();\n\n    if (textEl && !textEl.ignore && !textEl.invisible && !el.disableLabelAnimation && !isElementRemoved(el)) {\n      var layoutStore = labelLayoutInnerStore(textEl);\n      var oldLayout = layoutStore.oldLayout;\n      var ecData = getECData(el);\n      var dataIndex = ecData.dataIndex;\n      var newProps = {\n        x: textEl.x,\n        y: textEl.y,\n        rotation: textEl.rotation\n      };\n      var data = seriesModel.getData(ecData.dataType);\n\n      if (!oldLayout) {\n        textEl.attr(newProps);\n\n        if (!labelInner(textEl).valueAnimation) {\n          var oldOpacity = retrieve2(textEl.style.opacity, 1);\n          textEl.style.opacity = 0;\n          initProps(textEl, {\n            style: {\n              opacity: oldOpacity\n            }\n          }, seriesModel, dataIndex);\n        }\n      } else {\n        textEl.attr(oldLayout);\n        var prevStates = el.prevStates;\n\n        if (prevStates) {\n          if (indexOf(prevStates, 'select') >= 0) {\n            textEl.attr(layoutStore.oldLayoutSelect);\n          }\n\n          if (indexOf(prevStates, 'emphasis') >= 0) {\n            textEl.attr(layoutStore.oldLayoutEmphasis);\n          }\n        }\n\n        updateProps(textEl, newProps, seriesModel, dataIndex);\n      }\n\n      layoutStore.oldLayout = newProps;\n\n      if (textEl.states.select) {\n        var layoutSelect = layoutStore.oldLayoutSelect = {};\n        extendWithKeys(layoutSelect, newProps, LABEL_LAYOUT_PROPS);\n        extendWithKeys(layoutSelect, textEl.states.select, LABEL_LAYOUT_PROPS);\n      }\n\n      if (textEl.states.emphasis) {\n        var layoutEmphasis = layoutStore.oldLayoutEmphasis = {};\n        extendWithKeys(layoutEmphasis, newProps, LABEL_LAYOUT_PROPS);\n        extendWithKeys(layoutEmphasis, textEl.states.emphasis, LABEL_LAYOUT_PROPS);\n      }\n\n      animateLabelValue(textEl, dataIndex, data, seriesModel, seriesModel);\n    }\n\n    if (guideLine && !guideLine.ignore && !guideLine.invisible) {\n      var layoutStore = labelLineAnimationStore(guideLine);\n      var oldLayout = layoutStore.oldLayout;\n      var newLayout = {\n        points: guideLine.shape.points\n      };\n\n      if (!oldLayout) {\n        guideLine.setShape(newLayout);\n        guideLine.style.strokePercent = 0;\n        initProps(guideLine, {\n          style: {\n            strokePercent: 1\n          }\n        }, seriesModel);\n      } else {\n        guideLine.attr({\n          shape: oldLayout\n        });\n        updateProps(guideLine, {\n          shape: newLayout\n        }, seriesModel);\n      }\n\n      layoutStore.oldLayout = newLayout;\n    }\n  };\n\n  return LabelManager;\n}();\n\nexport default LabelManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { extend, each, isArray } from 'zrender/lib/core/util';\nimport { deprecateReplaceLog, deprecateLog } from '../util/log';\nimport { queryDataIndex } from '../util/model';\nexport function createLegacyDataSelectAction(seriesType, ecRegisterAction) {\n  function getSeriesIndices(ecModel, payload) {\n    var seriesIndices = [];\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: seriesType,\n      query: payload\n    }, function (seriesModel) {\n      seriesIndices.push(seriesModel.seriesIndex);\n    });\n    return seriesIndices;\n  }\n\n  each([[seriesType + 'ToggleSelect', 'toggleSelect'], [seriesType + 'Select', 'select'], [seriesType + 'UnSelect', 'unselect']], function (eventsMap) {\n    ecRegisterAction(eventsMap[0], function (payload, ecModel, api) {\n      payload = extend({}, payload);\n\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateReplaceLog(payload.type, eventsMap[1]);\n      }\n\n      api.dispatchAction(extend(payload, {\n        type: eventsMap[1],\n        seriesIndex: getSeriesIndices(ecModel, payload)\n      }));\n    });\n  });\n}\n\nfunction handleSeriesLegacySelectEvents(type, eventPostfix, ecIns, ecModel, payload) {\n  var legacyEventName = type + eventPostfix;\n\n  if (!ecIns.isSilent(legacyEventName)) {\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateLog(\"event \" + legacyEventName + \" is deprecated.\");\n    }\n\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'pie'\n    }, function (seriesModel) {\n      var seriesIndex = seriesModel.seriesIndex;\n      var selected = payload.selected;\n\n      for (var i = 0; i < selected.length; i++) {\n        if (selected[i].seriesIndex === seriesIndex) {\n          var data = seriesModel.getData();\n          var dataIndex = queryDataIndex(data, payload.fromActionPayload);\n          ecIns.trigger(legacyEventName, {\n            type: legacyEventName,\n            seriesId: seriesModel.id,\n            name: isArray(dataIndex) ? data.getName(dataIndex[0]) : data.getName(dataIndex),\n            selected: extend({}, seriesModel.option.selectedMap)\n          });\n        }\n      }\n    });\n  }\n}\n\nexport function handleLegacySelectEvents(messageCenter, ecIns, api) {\n  messageCenter.on('selectchanged', function (params) {\n    var ecModel = api.getModel();\n\n    if (params.isFromClick) {\n      handleSeriesLegacySelectEvents('map', 'selectchanged', ecIns, ecModel, params);\n      handleSeriesLegacySelectEvents('pie', 'selectchanged', ecIns, ecModel, params);\n    } else if (params.fromAction === 'select') {\n      handleSeriesLegacySelectEvents('map', 'selected', ecIns, ecModel, params);\n      handleSeriesLegacySelectEvents('pie', 'selected', ecIns, ecModel, params);\n    } else if (params.fromAction === 'unselect') {\n      handleSeriesLegacySelectEvents('map', 'unselected', ecIns, ecModel, params);\n      handleSeriesLegacySelectEvents('pie', 'unselected', ecIns, ecModel, params);\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function findEventDispatcher(target, det, returnFirstMatch) {\n  var found;\n\n  while (target) {\n    if (det(target)) {\n      found = target;\n\n      if (returnFirstMatch) {\n        break;\n      }\n    }\n\n    target = target.__hostTarget || target.parent;\n  }\n\n  return found;\n}","var wmUniqueIndex = Math.round(Math.random() * 9);\nvar WeakMap = (function () {\n    function WeakMap() {\n        this._id = '__ec_inner_' + wmUniqueIndex++;\n    }\n    WeakMap.prototype.get = function (key) {\n        return this._guard(key)[this._id];\n    };\n    WeakMap.prototype.set = function (key, value) {\n        var target = this._guard(key);\n        if (typeof Object.defineProperty === 'function') {\n            Object.defineProperty(target, this._id, {\n                value: value,\n                enumerable: false,\n                configurable: true\n            });\n        }\n        else {\n            target[this._id] = value;\n        }\n        return this;\n    };\n    WeakMap.prototype[\"delete\"] = function (key) {\n        if (this.has(key)) {\n            delete this._guard(key)[this._id];\n            return true;\n        }\n        return false;\n    };\n    WeakMap.prototype.has = function (key) {\n        return !!this._guard(key)[this._id];\n    };\n    WeakMap.prototype._guard = function (key) {\n        if (key !== Object(key)) {\n            throw TypeError('Value of WeakMap is not a non-null object.');\n        }\n        return key;\n    };\n    return WeakMap;\n}());\nexport default WeakMap;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from './graphic';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { calculateTextPosition } from 'zrender/lib/contain/text';\nvar Triangle = graphic.Path.extend({\n  type: 'triangle',\n  shape: {\n    cx: 0,\n    cy: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (path, shape) {\n    var cx = shape.cx;\n    var cy = shape.cy;\n    var width = shape.width / 2;\n    var height = shape.height / 2;\n    path.moveTo(cx, cy - height);\n    path.lineTo(cx + width, cy + height);\n    path.lineTo(cx - width, cy + height);\n    path.closePath();\n  }\n});\nvar Diamond = graphic.Path.extend({\n  type: 'diamond',\n  shape: {\n    cx: 0,\n    cy: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (path, shape) {\n    var cx = shape.cx;\n    var cy = shape.cy;\n    var width = shape.width / 2;\n    var height = shape.height / 2;\n    path.moveTo(cx, cy - height);\n    path.lineTo(cx + width, cy);\n    path.lineTo(cx, cy + height);\n    path.lineTo(cx - width, cy);\n    path.closePath();\n  }\n});\nvar Pin = graphic.Path.extend({\n  type: 'pin',\n  shape: {\n    x: 0,\n    y: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (path, shape) {\n    var x = shape.x;\n    var y = shape.y;\n    var w = shape.width / 5 * 3;\n    var h = Math.max(w, shape.height);\n    var r = w / 2;\n    var dy = r * r / (h - r);\n    var cy = y - h + r + dy;\n    var angle = Math.asin(dy / r);\n    var dx = Math.cos(angle) * r;\n    var tanX = Math.sin(angle);\n    var tanY = Math.cos(angle);\n    var cpLen = r * 0.6;\n    var cpLen2 = r * 0.7;\n    path.moveTo(x - dx, cy + dy);\n    path.arc(x, cy, r, Math.PI - angle, Math.PI * 2 + angle);\n    path.bezierCurveTo(x + dx - tanX * cpLen, cy + dy + tanY * cpLen, x, y - cpLen2, x, y);\n    path.bezierCurveTo(x, y - cpLen2, x - dx + tanX * cpLen, cy + dy + tanY * cpLen, x - dx, cy + dy);\n    path.closePath();\n  }\n});\nvar Arrow = graphic.Path.extend({\n  type: 'arrow',\n  shape: {\n    x: 0,\n    y: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (ctx, shape) {\n    var height = shape.height;\n    var width = shape.width;\n    var x = shape.x;\n    var y = shape.y;\n    var dx = width / 3 * 2;\n    ctx.moveTo(x, y);\n    ctx.lineTo(x + dx, y + height);\n    ctx.lineTo(x, y + height / 4 * 3);\n    ctx.lineTo(x - dx, y + height);\n    ctx.lineTo(x, y);\n    ctx.closePath();\n  }\n});\nvar symbolCtors = {\n  line: graphic.Rect,\n  rect: graphic.Rect,\n  roundRect: graphic.Rect,\n  square: graphic.Rect,\n  circle: graphic.Circle,\n  diamond: Diamond,\n  pin: Pin,\n  arrow: Arrow,\n  triangle: Triangle\n};\nvar symbolShapeMakers = {\n  line: function (x, y, w, h, shape) {\n    var thickness = 2;\n    shape.x = x;\n    shape.y = y + h / 2 - thickness / 2;\n    shape.width = w;\n    shape.height = thickness;\n  },\n  rect: function (x, y, w, h, shape) {\n    shape.x = x;\n    shape.y = y;\n    shape.width = w;\n    shape.height = h;\n  },\n  roundRect: function (x, y, w, h, shape) {\n    shape.x = x;\n    shape.y = y;\n    shape.width = w;\n    shape.height = h;\n    shape.r = Math.min(w, h) / 4;\n  },\n  square: function (x, y, w, h, shape) {\n    var size = Math.min(w, h);\n    shape.x = x;\n    shape.y = y;\n    shape.width = size;\n    shape.height = size;\n  },\n  circle: function (x, y, w, h, shape) {\n    shape.cx = x + w / 2;\n    shape.cy = y + h / 2;\n    shape.r = Math.min(w, h) / 2;\n  },\n  diamond: function (x, y, w, h, shape) {\n    shape.cx = x + w / 2;\n    shape.cy = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  },\n  pin: function (x, y, w, h, shape) {\n    shape.x = x + w / 2;\n    shape.y = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  },\n  arrow: function (x, y, w, h, shape) {\n    shape.x = x + w / 2;\n    shape.y = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  },\n  triangle: function (x, y, w, h, shape) {\n    shape.cx = x + w / 2;\n    shape.cy = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  }\n};\nexport var symbolBuildProxies = {};\nzrUtil.each(symbolCtors, function (Ctor, name) {\n  symbolBuildProxies[name] = new Ctor();\n});\nvar SymbolClz = graphic.Path.extend({\n  type: 'symbol',\n  shape: {\n    symbolType: '',\n    x: 0,\n    y: 0,\n    width: 0,\n    height: 0\n  },\n  calculateTextPosition: function (out, config, rect) {\n    var res = calculateTextPosition(out, config, rect);\n    var shape = this.shape;\n\n    if (shape && shape.symbolType === 'pin' && config.position === 'inside') {\n      res.y = rect.y + rect.height * 0.4;\n    }\n\n    return res;\n  },\n  buildPath: function (ctx, shape, inBundle) {\n    var symbolType = shape.symbolType;\n\n    if (symbolType !== 'none') {\n      var proxySymbol = symbolBuildProxies[symbolType];\n\n      if (!proxySymbol) {\n        symbolType = 'rect';\n        proxySymbol = symbolBuildProxies[symbolType];\n      }\n\n      symbolShapeMakers[symbolType](shape.x, shape.y, shape.width, shape.height, proxySymbol.shape);\n      proxySymbol.buildPath(ctx, proxySymbol.shape, inBundle);\n    }\n  }\n});\n\nfunction symbolPathSetColor(color, innerColor) {\n  if (this.type !== 'image') {\n    var symbolStyle = this.style;\n\n    if (this.__isEmptyBrush) {\n      symbolStyle.stroke = color;\n      symbolStyle.fill = innerColor || '#fff';\n      symbolStyle.lineWidth = 2;\n    } else {\n      symbolStyle.fill = color;\n    }\n\n    this.markRedraw();\n  }\n}\n\nexport function createSymbol(symbolType, x, y, w, h, color, keepAspect) {\n  var isEmpty = symbolType.indexOf('empty') === 0;\n\n  if (isEmpty) {\n    symbolType = symbolType.substr(5, 1).toLowerCase() + symbolType.substr(6);\n  }\n\n  var symbolPath;\n\n  if (symbolType.indexOf('image://') === 0) {\n    symbolPath = graphic.makeImage(symbolType.slice(8), new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\n  } else if (symbolType.indexOf('path://') === 0) {\n    symbolPath = graphic.makePath(symbolType.slice(7), {}, new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\n  } else {\n    symbolPath = new SymbolClz({\n      shape: {\n        symbolType: symbolType,\n        x: x,\n        y: y,\n        width: w,\n        height: h\n      }\n    });\n  }\n\n  symbolPath.__isEmptyBrush = isEmpty;\n  symbolPath.setColor = symbolPathSetColor;\n\n  if (color) {\n    symbolPath.setColor(color);\n  }\n\n  return symbolPath;\n}","export function createLinearGradient(ctx, obj, rect) {\n    var x = obj.x == null ? 0 : obj.x;\n    var x2 = obj.x2 == null ? 1 : obj.x2;\n    var y = obj.y == null ? 0 : obj.y;\n    var y2 = obj.y2 == null ? 0 : obj.y2;\n    if (!obj.global) {\n        x = x * rect.width + rect.x;\n        x2 = x2 * rect.width + rect.x;\n        y = y * rect.height + rect.y;\n        y2 = y2 * rect.height + rect.y;\n    }\n    x = isNaN(x) ? 0 : x;\n    x2 = isNaN(x2) ? 1 : x2;\n    y = isNaN(y) ? 0 : y;\n    y2 = isNaN(y2) ? 0 : y2;\n    var canvasGradient = ctx.createLinearGradient(x, y, x2, y2);\n    return canvasGradient;\n}\nexport function createRadialGradient(ctx, obj, rect) {\n    var width = rect.width;\n    var height = rect.height;\n    var min = Math.min(width, height);\n    var x = obj.x == null ? 0.5 : obj.x;\n    var y = obj.y == null ? 0.5 : obj.y;\n    var r = obj.r == null ? 0.5 : obj.r;\n    if (!obj.global) {\n        x = x * width + rect.x;\n        y = y * height + rect.y;\n        r = r * min;\n    }\n    var canvasGradient = ctx.createRadialGradient(x, y, 0, x, y, r);\n    return canvasGradient;\n}\nexport function getCanvasGradient(ctx, obj, rect) {\n    var canvasGradient = obj.type === 'radial'\n        ? createRadialGradient(ctx, obj, rect)\n        : createLinearGradient(ctx, obj, rect);\n    var colorStops = obj.colorStops;\n    for (var i = 0; i < colorStops.length; i++) {\n        canvasGradient.addColorStop(colorStops[i].offset, colorStops[i].color);\n    }\n    return canvasGradient;\n}\nexport function isClipPathChanged(clipPaths, prevClipPaths) {\n    if (clipPaths === prevClipPaths || (!clipPaths && !prevClipPaths)) {\n        return false;\n    }\n    if (!clipPaths || !prevClipPaths || (clipPaths.length !== prevClipPaths.length)) {\n        return true;\n    }\n    for (var i = 0; i < clipPaths.length; i++) {\n        if (clipPaths[i] !== prevClipPaths[i]) {\n            return true;\n        }\n    }\n    return false;\n}\n","import { isArray, isNumber } from '../../core/util';\nexport function normalizeLineDash(lineType, lineWidth) {\n    if (!lineType || lineType === 'solid' || !(lineWidth > 0)) {\n        return null;\n    }\n    lineWidth = lineWidth || 1;\n    return lineType === 'dashed'\n        ? [4 * lineWidth, 2 * lineWidth]\n        : lineType === 'dotted'\n            ? [lineWidth]\n            : isNumber(lineType)\n                ? [lineType] : isArray(lineType) ? lineType : null;\n}\n","import { DEFAULT_COMMON_STYLE } from '../graphic/Displayable';\nimport PathProxy from '../core/PathProxy';\nimport { createOrUpdateImage, isImageReady } from '../graphic/helper/image';\nimport { getCanvasGradient, isClipPathChanged } from './helper';\nimport Path from '../graphic/Path';\nimport ZRImage from '../graphic/Image';\nimport TSpan from '../graphic/TSpan';\nimport { DEFAULT_FONT } from '../contain/text';\nimport { map } from '../core/util';\nimport { normalizeLineDash } from '../graphic/helper/dashStyle';\nimport Element from '../Element';\nimport IncrementalDisplayable from '../graphic/IncrementalDisplayable';\nvar pathProxyForDraw = new PathProxy(true);\nfunction styleHasStroke(style) {\n    var stroke = style.stroke;\n    return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\n}\nfunction styleHasFill(style) {\n    var fill = style.fill;\n    return fill != null && fill !== 'none';\n}\nfunction doFillPath(ctx, style) {\n    if (style.fillOpacity != null && style.fillOpacity !== 1) {\n        var originalGlobalAlpha = ctx.globalAlpha;\n        ctx.globalAlpha = style.fillOpacity * style.opacity;\n        ctx.fill();\n        ctx.globalAlpha = originalGlobalAlpha;\n    }\n    else {\n        ctx.fill();\n    }\n}\nfunction doStrokePath(ctx, style) {\n    if (style.strokeOpacity != null && style.strokeOpacity !== 1) {\n        var originalGlobalAlpha = ctx.globalAlpha;\n        ctx.globalAlpha = style.strokeOpacity * style.opacity;\n        ctx.stroke();\n        ctx.globalAlpha = originalGlobalAlpha;\n    }\n    else {\n        ctx.stroke();\n    }\n}\nexport function createCanvasPattern(ctx, pattern, el) {\n    var image = createOrUpdateImage(pattern.image, pattern.__image, el);\n    if (isImageReady(image)) {\n        var canvasPattern = ctx.createPattern(image, pattern.repeat || 'repeat');\n        if (typeof DOMMatrix === 'function') {\n            var matrix = new DOMMatrix();\n            matrix.rotateSelf(0, 0, (pattern.rotation || 0) / Math.PI * 180);\n            matrix.scaleSelf((pattern.scaleX || 1), (pattern.scaleY || 1));\n            matrix.translateSelf((pattern.x || 0), (pattern.y || 0));\n            canvasPattern.setTransform(matrix);\n        }\n        return canvasPattern;\n    }\n}\nfunction brushPath(ctx, el, style, inBatch) {\n    var hasStroke = styleHasStroke(style);\n    var hasFill = styleHasFill(style);\n    var strokePercent = style.strokePercent;\n    var strokePart = strokePercent < 1;\n    var firstDraw = !el.path;\n    if ((!el.silent || strokePart) && firstDraw) {\n        el.createPathProxy();\n    }\n    var path = el.path || pathProxyForDraw;\n    if (!inBatch) {\n        var fill = style.fill;\n        var stroke = style.stroke;\n        var hasFillGradient = hasFill && !!fill.colorStops;\n        var hasStrokeGradient = hasStroke && !!stroke.colorStops;\n        var hasFillPattern = hasFill && !!fill.image;\n        var hasStrokePattern = hasStroke && !!stroke.image;\n        var fillGradient = void 0;\n        var strokeGradient = void 0;\n        var fillPattern = void 0;\n        var strokePattern = void 0;\n        var rect = void 0;\n        if (hasFillGradient || hasStrokeGradient) {\n            rect = el.getBoundingRect();\n        }\n        if (hasFillGradient) {\n            fillGradient = el.__dirty\n                ? getCanvasGradient(ctx, fill, rect)\n                : el.__canvasFillGradient;\n            el.__canvasFillGradient = fillGradient;\n        }\n        if (hasStrokeGradient) {\n            strokeGradient = el.__dirty\n                ? getCanvasGradient(ctx, stroke, rect)\n                : el.__canvasStrokeGradient;\n            el.__canvasStrokeGradient = strokeGradient;\n        }\n        if (hasFillPattern) {\n            fillPattern = (el.__dirty || !el.__canvasFillPattern)\n                ? createCanvasPattern(ctx, fill, el)\n                : el.__canvasFillPattern;\n            el.__canvasFillPattern = fillPattern;\n        }\n        if (hasStrokePattern) {\n            strokePattern = (el.__dirty || !el.__canvasStrokePattern)\n                ? createCanvasPattern(ctx, stroke, el)\n                : el.__canvasStrokePattern;\n            el.__canvasStrokePattern = fillPattern;\n        }\n        if (hasFillGradient) {\n            ctx.fillStyle = fillGradient;\n        }\n        else if (hasFillPattern) {\n            if (fillPattern) {\n                ctx.fillStyle = fillPattern;\n            }\n            else {\n                hasFill = false;\n            }\n        }\n        if (hasStrokeGradient) {\n            ctx.strokeStyle = strokeGradient;\n        }\n        else if (hasStrokePattern) {\n            if (strokePattern) {\n                ctx.strokeStyle = strokePattern;\n            }\n            else {\n                hasStroke = false;\n            }\n        }\n    }\n    var lineDash = style.lineDash && style.lineWidth > 0 && normalizeLineDash(style.lineDash, style.lineWidth);\n    var lineDashOffset = style.lineDashOffset;\n    var ctxLineDash = !!ctx.setLineDash;\n    var scale = el.getGlobalScale();\n    path.setScale(scale[0], scale[1], el.segmentIgnoreThreshold);\n    if (lineDash) {\n        var lineScale_1 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\n        if (lineScale_1 && lineScale_1 !== 1) {\n            lineDash = map(lineDash, function (rawVal) {\n                return rawVal / lineScale_1;\n            });\n            lineDashOffset /= lineScale_1;\n        }\n    }\n    var needsRebuild = true;\n    if (firstDraw || (el.__dirty & Path.SHAPE_CHANGED_BIT)\n        || (lineDash && !ctxLineDash && hasStroke)) {\n        path.setDPR(ctx.dpr);\n        if (strokePart) {\n            path.setContext(null);\n        }\n        else {\n            path.setContext(ctx);\n            needsRebuild = false;\n        }\n        path.reset();\n        if (lineDash && !ctxLineDash) {\n            path.setLineDash(lineDash);\n            path.setLineDashOffset(lineDashOffset);\n        }\n        el.buildPath(path, el.shape, inBatch);\n        path.toStatic();\n        el.pathUpdated();\n    }\n    if (needsRebuild) {\n        path.rebuildPath(ctx, strokePart ? strokePercent : 1);\n    }\n    if (lineDash && ctxLineDash) {\n        ctx.setLineDash(lineDash);\n        ctx.lineDashOffset = lineDashOffset;\n    }\n    if (!inBatch) {\n        if (style.strokeFirst) {\n            if (hasStroke) {\n                doStrokePath(ctx, style);\n            }\n            if (hasFill) {\n                doFillPath(ctx, style);\n            }\n        }\n        else {\n            if (hasFill) {\n                doFillPath(ctx, style);\n            }\n            if (hasStroke) {\n                doStrokePath(ctx, style);\n            }\n        }\n    }\n    if (lineDash && ctxLineDash) {\n        ctx.setLineDash([]);\n    }\n}\nfunction brushImage(ctx, el, style) {\n    var image = el.__image = createOrUpdateImage(style.image, el.__image, el, el.onload);\n    if (!image || !isImageReady(image)) {\n        return;\n    }\n    var x = style.x || 0;\n    var y = style.y || 0;\n    var width = el.getWidth();\n    var height = el.getHeight();\n    var aspect = image.width / image.height;\n    if (width == null && height != null) {\n        width = height * aspect;\n    }\n    else if (height == null && width != null) {\n        height = width / aspect;\n    }\n    else if (width == null && height == null) {\n        width = image.width;\n        height = image.height;\n    }\n    if (style.sWidth && style.sHeight) {\n        var sx = style.sx || 0;\n        var sy = style.sy || 0;\n        ctx.drawImage(image, sx, sy, style.sWidth, style.sHeight, x, y, width, height);\n    }\n    else if (style.sx && style.sy) {\n        var sx = style.sx;\n        var sy = style.sy;\n        var sWidth = width - sx;\n        var sHeight = height - sy;\n        ctx.drawImage(image, sx, sy, sWidth, sHeight, x, y, width, height);\n    }\n    else {\n        ctx.drawImage(image, x, y, width, height);\n    }\n}\nfunction brushText(ctx, el, style) {\n    var text = style.text;\n    text != null && (text += '');\n    if (text) {\n        ctx.font = style.font || DEFAULT_FONT;\n        ctx.textAlign = style.textAlign;\n        ctx.textBaseline = style.textBaseline;\n        var hasLineDash = void 0;\n        if (ctx.setLineDash) {\n            var lineDash = style.lineDash && style.lineWidth > 0 && normalizeLineDash(style.lineDash, style.lineWidth);\n            var lineDashOffset = style.lineDashOffset;\n            if (lineDash) {\n                var lineScale_2 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\n                if (lineScale_2 && lineScale_2 !== 1) {\n                    lineDash = map(lineDash, function (rawVal) {\n                        return rawVal / lineScale_2;\n                    });\n                    lineDashOffset /= lineScale_2;\n                }\n                ctx.setLineDash(lineDash);\n                ctx.lineDashOffset = lineDashOffset;\n                hasLineDash = true;\n            }\n        }\n        if (style.strokeFirst) {\n            if (styleHasStroke(style)) {\n                ctx.strokeText(text, style.x, style.y);\n            }\n            if (styleHasFill(style)) {\n                ctx.fillText(text, style.x, style.y);\n            }\n        }\n        else {\n            if (styleHasFill(style)) {\n                ctx.fillText(text, style.x, style.y);\n            }\n            if (styleHasStroke(style)) {\n                ctx.strokeText(text, style.x, style.y);\n            }\n        }\n        if (hasLineDash) {\n            ctx.setLineDash([]);\n        }\n    }\n}\nvar SHADOW_NUMBER_PROPS = ['shadowBlur', 'shadowOffsetX', 'shadowOffsetY'];\nvar STROKE_PROPS = [\n    ['lineCap', 'butt'], ['lineJoin', 'miter'], ['miterLimit', 10]\n];\nfunction bindCommonProps(ctx, style, prevStyle, forceSetAll, scope) {\n    var styleChanged = false;\n    if (!forceSetAll) {\n        prevStyle = prevStyle || {};\n        if (style === prevStyle) {\n            return false;\n        }\n    }\n    if (forceSetAll || style.opacity !== prevStyle.opacity) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.globalAlpha = style.opacity == null ? DEFAULT_COMMON_STYLE.opacity : style.opacity;\n    }\n    if (forceSetAll || style.blend !== prevStyle.blend) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.globalCompositeOperation = style.blend || DEFAULT_COMMON_STYLE.blend;\n    }\n    for (var i = 0; i < SHADOW_NUMBER_PROPS.length; i++) {\n        var propName = SHADOW_NUMBER_PROPS[i];\n        if (forceSetAll || style[propName] !== prevStyle[propName]) {\n            if (!styleChanged) {\n                flushPathDrawn(ctx, scope);\n                styleChanged = true;\n            }\n            ctx[propName] = ctx.dpr * (style[propName] || 0);\n        }\n    }\n    if (forceSetAll || style.shadowColor !== prevStyle.shadowColor) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.shadowColor = style.shadowColor || DEFAULT_COMMON_STYLE.shadowColor;\n    }\n    return styleChanged;\n}\nfunction bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetAll, scope) {\n    var style = getStyle(el, scope.inHover);\n    var prevStyle = forceSetAll\n        ? null\n        : (prevEl && getStyle(prevEl, scope.inHover) || {});\n    if (style === prevStyle) {\n        return false;\n    }\n    var styleChanged = bindCommonProps(ctx, style, prevStyle, forceSetAll, scope);\n    if (forceSetAll || style.fill !== prevStyle.fill) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.fillStyle = style.fill;\n    }\n    if (forceSetAll || style.stroke !== prevStyle.stroke) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.strokeStyle = style.stroke;\n    }\n    if (forceSetAll || style.opacity !== prevStyle.opacity) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.globalAlpha = style.opacity == null ? 1 : style.opacity;\n    }\n    if (el.hasStroke()) {\n        var lineWidth = style.lineWidth;\n        var newLineWidth = lineWidth / ((style.strokeNoScale && el && el.getLineScale) ? el.getLineScale() : 1);\n        if (ctx.lineWidth !== newLineWidth) {\n            if (!styleChanged) {\n                flushPathDrawn(ctx, scope);\n                styleChanged = true;\n            }\n            ctx.lineWidth = newLineWidth;\n        }\n    }\n    for (var i = 0; i < STROKE_PROPS.length; i++) {\n        var prop = STROKE_PROPS[i];\n        var propName = prop[0];\n        if (forceSetAll || style[propName] !== prevStyle[propName]) {\n            if (!styleChanged) {\n                flushPathDrawn(ctx, scope);\n                styleChanged = true;\n            }\n            ctx[propName] = style[propName] || prop[1];\n        }\n    }\n    return styleChanged;\n}\nfunction bindImageStyle(ctx, el, prevEl, forceSetAll, scope) {\n    return bindCommonProps(ctx, getStyle(el, scope.inHover), prevEl && getStyle(prevEl, scope.inHover), forceSetAll, scope);\n}\nfunction setContextTransform(ctx, el) {\n    var m = el.transform;\n    var dpr = ctx.dpr || 1;\n    if (m) {\n        ctx.setTransform(dpr * m[0], dpr * m[1], dpr * m[2], dpr * m[3], dpr * m[4], dpr * m[5]);\n    }\n    else {\n        ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n    }\n}\nfunction updateClipStatus(clipPaths, ctx, scope) {\n    var allClipped = false;\n    for (var i = 0; i < clipPaths.length; i++) {\n        var clipPath = clipPaths[i];\n        allClipped = allClipped || clipPath.isZeroArea();\n        setContextTransform(ctx, clipPath);\n        ctx.beginPath();\n        clipPath.buildPath(ctx, clipPath.shape);\n        ctx.clip();\n    }\n    scope.allClipped = allClipped;\n}\nfunction isTransformChanged(m0, m1) {\n    if (m0 && m1) {\n        return m0[0] !== m1[0]\n            || m0[1] !== m1[1]\n            || m0[2] !== m1[2]\n            || m0[3] !== m1[3]\n            || m0[4] !== m1[4]\n            || m0[5] !== m1[5];\n    }\n    else if (!m0 && !m1) {\n        return false;\n    }\n    return true;\n}\nvar DRAW_TYPE_PATH = 1;\nvar DRAW_TYPE_IMAGE = 2;\nvar DRAW_TYPE_TEXT = 3;\nvar DRAW_TYPE_INCREMENTAL = 4;\nfunction canPathBatch(style) {\n    var hasFill = styleHasFill(style);\n    var hasStroke = styleHasStroke(style);\n    return !(style.lineDash\n        || !(+hasFill ^ +hasStroke)\n        || (hasFill && typeof style.fill !== 'string')\n        || (hasStroke && typeof style.stroke !== 'string')\n        || style.strokePercent < 1\n        || style.strokeOpacity < 1\n        || style.fillOpacity < 1);\n}\nfunction flushPathDrawn(ctx, scope) {\n    scope.batchFill && ctx.fill();\n    scope.batchStroke && ctx.stroke();\n    scope.batchFill = '';\n    scope.batchStroke = '';\n}\nfunction getStyle(el, inHover) {\n    return inHover ? (el.__hoverStyle || el.style) : el.style;\n}\nexport function brushSingle(ctx, el) {\n    brush(ctx, el, { inHover: false, viewWidth: 0, viewHeight: 0 }, true);\n}\nexport function brush(ctx, el, scope, isLast) {\n    var m = el.transform;\n    if (!el.shouldBePainted(scope.viewWidth, scope.viewHeight, false, false)) {\n        el.__dirty &= ~Element.REDARAW_BIT;\n        el.__isRendered = false;\n        return;\n    }\n    var clipPaths = el.__clipPaths;\n    var prevElClipPaths = scope.prevElClipPaths;\n    var forceSetTransform = false;\n    var forceSetStyle = false;\n    if (!prevElClipPaths || isClipPathChanged(clipPaths, prevElClipPaths)) {\n        if (prevElClipPaths && prevElClipPaths.length) {\n            flushPathDrawn(ctx, scope);\n            ctx.restore();\n            forceSetStyle = forceSetTransform = true;\n            scope.prevElClipPaths = null;\n            scope.allClipped = false;\n            scope.prevEl = null;\n        }\n        if (clipPaths && clipPaths.length) {\n            flushPathDrawn(ctx, scope);\n            ctx.save();\n            updateClipStatus(clipPaths, ctx, scope);\n            forceSetTransform = true;\n        }\n        scope.prevElClipPaths = clipPaths;\n    }\n    if (scope.allClipped) {\n        el.__isRendered = false;\n        return;\n    }\n    el.beforeBrush && el.beforeBrush();\n    el.innerBeforeBrush();\n    var prevEl = scope.prevEl;\n    if (!prevEl) {\n        forceSetStyle = forceSetTransform = true;\n    }\n    var canBatchPath = el instanceof Path\n        && el.autoBatch\n        && canPathBatch(el.style);\n    if (forceSetTransform || isTransformChanged(m, prevEl.transform)) {\n        flushPathDrawn(ctx, scope);\n        setContextTransform(ctx, el);\n    }\n    else if (!canBatchPath) {\n        flushPathDrawn(ctx, scope);\n    }\n    var style = getStyle(el, scope.inHover);\n    if (el instanceof Path) {\n        if (scope.lastDrawType !== DRAW_TYPE_PATH) {\n            forceSetStyle = true;\n            scope.lastDrawType = DRAW_TYPE_PATH;\n        }\n        bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\n        if (!canBatchPath || (!scope.batchFill && !scope.batchStroke)) {\n            ctx.beginPath();\n        }\n        brushPath(ctx, el, style, canBatchPath);\n        if (canBatchPath) {\n            scope.batchFill = style.fill || '';\n            scope.batchStroke = style.stroke || '';\n        }\n    }\n    else {\n        if (el instanceof TSpan) {\n            if (scope.lastDrawType !== DRAW_TYPE_TEXT) {\n                forceSetStyle = true;\n                scope.lastDrawType = DRAW_TYPE_TEXT;\n            }\n            bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\n            brushText(ctx, el, style);\n        }\n        else if (el instanceof ZRImage) {\n            if (scope.lastDrawType !== DRAW_TYPE_IMAGE) {\n                forceSetStyle = true;\n                scope.lastDrawType = DRAW_TYPE_IMAGE;\n            }\n            bindImageStyle(ctx, el, prevEl, forceSetStyle, scope);\n            brushImage(ctx, el, style);\n        }\n        else if (el instanceof IncrementalDisplayable) {\n            if (scope.lastDrawType !== DRAW_TYPE_INCREMENTAL) {\n                forceSetStyle = true;\n                scope.lastDrawType = DRAW_TYPE_INCREMENTAL;\n            }\n            brushIncremental(ctx, el, scope);\n        }\n    }\n    if (canBatchPath && isLast) {\n        flushPathDrawn(ctx, scope);\n    }\n    el.innerAfterBrush();\n    el.afterBrush && el.afterBrush();\n    scope.prevEl = el;\n    el.__dirty = 0;\n    el.__isRendered = true;\n}\nfunction brushIncremental(ctx, el, scope) {\n    var displayables = el.getDisplayables();\n    var temporalDisplayables = el.getTemporalDisplayables();\n    ctx.save();\n    var innerScope = {\n        prevElClipPaths: null,\n        prevEl: null,\n        allClipped: false,\n        viewWidth: scope.viewWidth,\n        viewHeight: scope.viewHeight,\n        inHover: scope.inHover\n    };\n    var i;\n    var len;\n    for (i = el.getCursor(), len = displayables.length; i < len; i++) {\n        var displayable = displayables[i];\n        displayable.beforeBrush && displayable.beforeBrush();\n        displayable.innerBeforeBrush();\n        brush(ctx, displayable, innerScope, i === len - 1);\n        displayable.innerAfterBrush();\n        displayable.afterBrush && displayable.afterBrush();\n        innerScope.prevEl = displayable;\n    }\n    for (var i_1 = 0, len_1 = temporalDisplayables.length; i_1 < len_1; i_1++) {\n        var displayable = temporalDisplayables[i_1];\n        displayable.beforeBrush && displayable.beforeBrush();\n        displayable.innerBeforeBrush();\n        brush(ctx, displayable, innerScope, i_1 === len_1 - 1);\n        displayable.innerAfterBrush();\n        displayable.afterBrush && displayable.afterBrush();\n        innerScope.prevEl = displayable;\n    }\n    el.clearTemporalDisplayables();\n    el.notClear = true;\n    ctx.restore();\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport WeakMap from 'zrender/lib/core/WeakMap';\nimport LRU from 'zrender/lib/core/LRU';\nimport { defaults, createCanvas, map, isArray } from 'zrender/lib/core/util';\nimport { getLeastCommonMultiple } from './number';\nimport { createSymbol } from './symbol';\nimport { brushSingle } from 'zrender/lib/canvas/graphic';\nvar decalMap = new WeakMap();\nvar decalCache = new LRU(100);\nvar decalKeys = ['symbol', 'symbolSize', 'symbolKeepAspect', 'color', 'backgroundColor', 'dashArrayX', 'dashArrayY', 'maxTileWidth', 'maxTileHeight'];\nexport function createOrUpdatePatternFromDecal(decalObject, api) {\n  if (decalObject === 'none') {\n    return null;\n  }\n\n  var dpr = api.getDevicePixelRatio();\n  var zr = api.getZr();\n  var isSVG = zr.painter.type === 'svg';\n\n  if (decalObject.dirty) {\n    decalMap[\"delete\"](decalObject);\n  }\n\n  var oldPattern = decalMap.get(decalObject);\n\n  if (oldPattern) {\n    return oldPattern;\n  }\n\n  var decalOpt = defaults(decalObject, {\n    symbol: 'rect',\n    symbolSize: 1,\n    symbolKeepAspect: true,\n    color: 'rgba(0, 0, 0, 0.2)',\n    backgroundColor: null,\n    dashArrayX: 5,\n    dashArrayY: 5,\n    rotation: 0,\n    maxTileWidth: 512,\n    maxTileHeight: 512\n  });\n\n  if (decalOpt.backgroundColor === 'none') {\n    decalOpt.backgroundColor = null;\n  }\n\n  var pattern = {\n    repeat: 'repeat'\n  };\n  setPatternnSource(pattern);\n  pattern.rotation = decalOpt.rotation;\n  pattern.scaleX = pattern.scaleY = isSVG ? 1 : 1 / dpr;\n  decalMap.set(decalObject, pattern);\n  decalObject.dirty = false;\n  return pattern;\n\n  function setPatternnSource(pattern) {\n    var keys = [dpr];\n    var isValidKey = true;\n\n    for (var i = 0; i < decalKeys.length; ++i) {\n      var value = decalOpt[decalKeys[i]];\n      var valueType = typeof value;\n\n      if (value != null && !isArray(value) && valueType !== 'string' && valueType !== 'number' && valueType !== 'boolean') {\n        isValidKey = false;\n        break;\n      }\n\n      keys.push(value);\n    }\n\n    var cacheKey;\n\n    if (isValidKey) {\n      cacheKey = keys.join(',') + (isSVG ? '-svg' : '');\n      var cache = decalCache.get(cacheKey);\n\n      if (cache) {\n        isSVG ? pattern.svgElement = cache : pattern.image = cache;\n      }\n    }\n\n    var dashArrayX = normalizeDashArrayX(decalOpt.dashArrayX);\n    var dashArrayY = normalizeDashArrayY(decalOpt.dashArrayY);\n    var symbolArray = normalizeSymbolArray(decalOpt.symbol);\n    var lineBlockLengthsX = getLineBlockLengthX(dashArrayX);\n    var lineBlockLengthY = getLineBlockLengthY(dashArrayY);\n    var canvas = !isSVG && createCanvas();\n    var svgRoot = isSVG && zr.painter.createSVGElement('g');\n    var pSize = getPatternSize();\n    var ctx;\n\n    if (canvas) {\n      canvas.width = pSize.width * dpr;\n      canvas.height = pSize.height * dpr;\n      ctx = canvas.getContext('2d');\n    }\n\n    brushDecal();\n\n    if (isValidKey) {\n      decalCache.put(cacheKey, canvas || svgRoot);\n    }\n\n    pattern.image = canvas;\n    pattern.svgElement = svgRoot;\n    pattern.svgWidth = pSize.width;\n    pattern.svgHeight = pSize.height;\n\n    function getPatternSize() {\n      var width = 1;\n\n      for (var i = 0, xlen = lineBlockLengthsX.length; i < xlen; ++i) {\n        width = getLeastCommonMultiple(width, lineBlockLengthsX[i]);\n      }\n\n      var symbolRepeats = 1;\n\n      for (var i = 0, xlen = symbolArray.length; i < xlen; ++i) {\n        symbolRepeats = getLeastCommonMultiple(symbolRepeats, symbolArray[i].length);\n      }\n\n      width *= symbolRepeats;\n      var height = lineBlockLengthY * lineBlockLengthsX.length * symbolArray.length;\n\n      if (process.env.NODE_ENV !== 'production') {\n        var warn = function (attrName) {\n          console.warn(\"Calculated decal size is greater than \" + attrName + \" due to decal option settings so \" + attrName + \" is used for the decal size. Please consider changing the decal option to make a smaller decal or set \" + attrName + \" to be larger to avoid incontinuity.\");\n        };\n\n        if (width > decalOpt.maxTileWidth) {\n          warn('maxTileWidth');\n        }\n\n        if (height > decalOpt.maxTileHeight) {\n          warn('maxTileHeight');\n        }\n      }\n\n      return {\n        width: Math.max(1, Math.min(width, decalOpt.maxTileWidth)),\n        height: Math.max(1, Math.min(height, decalOpt.maxTileHeight))\n      };\n    }\n\n    function brushDecal() {\n      if (ctx) {\n        ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n        if (decalOpt.backgroundColor) {\n          ctx.fillStyle = decalOpt.backgroundColor;\n          ctx.fillRect(0, 0, canvas.width, canvas.height);\n        }\n      }\n\n      var ySum = 0;\n\n      for (var i = 0; i < dashArrayY.length; ++i) {\n        ySum += dashArrayY[i];\n      }\n\n      if (ySum <= 0) {\n        return;\n      }\n\n      var y = -lineBlockLengthY;\n      var yId = 0;\n      var yIdTotal = 0;\n      var xId0 = 0;\n\n      while (y < pSize.height) {\n        if (yId % 2 === 0) {\n          var symbolYId = yIdTotal / 2 % symbolArray.length;\n          var x = 0;\n          var xId1 = 0;\n          var xId1Total = 0;\n\n          while (x < pSize.width * 2) {\n            var xSum = 0;\n\n            for (var i = 0; i < dashArrayX[xId0].length; ++i) {\n              xSum += dashArrayX[xId0][i];\n            }\n\n            if (xSum <= 0) {\n              break;\n            }\n\n            if (xId1 % 2 === 0) {\n              var size = (1 - decalOpt.symbolSize) * 0.5;\n              var left = x + dashArrayX[xId0][xId1] * size;\n              var top_1 = y + dashArrayY[yId] * size;\n              var width = dashArrayX[xId0][xId1] * decalOpt.symbolSize;\n              var height = dashArrayY[yId] * decalOpt.symbolSize;\n              var symbolXId = xId1Total / 2 % symbolArray[symbolYId].length;\n              brushSymbol(left, top_1, width, height, symbolArray[symbolYId][symbolXId]);\n            }\n\n            x += dashArrayX[xId0][xId1];\n            ++xId1Total;\n            ++xId1;\n\n            if (xId1 === dashArrayX[xId0].length) {\n              xId1 = 0;\n            }\n          }\n\n          ++xId0;\n\n          if (xId0 === dashArrayX.length) {\n            xId0 = 0;\n          }\n        }\n\n        y += dashArrayY[yId];\n        ++yIdTotal;\n        ++yId;\n\n        if (yId === dashArrayY.length) {\n          yId = 0;\n        }\n      }\n\n      function brushSymbol(x, y, width, height, symbolType) {\n        var scale = isSVG ? 1 : dpr;\n        var symbol = createSymbol(symbolType, x * scale, y * scale, width * scale, height * scale, decalOpt.color, decalOpt.symbolKeepAspect);\n\n        if (isSVG) {\n          svgRoot.appendChild(zr.painter.paintOne(symbol));\n        } else {\n          brushSingle(ctx, symbol);\n        }\n      }\n    }\n  }\n}\n\nfunction normalizeSymbolArray(symbol) {\n  if (!symbol || symbol.length === 0) {\n    return [['rect']];\n  }\n\n  if (typeof symbol === 'string') {\n    return [[symbol]];\n  }\n\n  var isAllString = true;\n\n  for (var i = 0; i < symbol.length; ++i) {\n    if (typeof symbol[i] !== 'string') {\n      isAllString = false;\n      break;\n    }\n  }\n\n  if (isAllString) {\n    return normalizeSymbolArray([symbol]);\n  }\n\n  var result = [];\n\n  for (var i = 0; i < symbol.length; ++i) {\n    if (typeof symbol[i] === 'string') {\n      result.push([symbol[i]]);\n    } else {\n      result.push(symbol[i]);\n    }\n  }\n\n  return result;\n}\n\nfunction normalizeDashArrayX(dash) {\n  if (!dash || dash.length === 0) {\n    return [[0, 0]];\n  }\n\n  if (typeof dash === 'number') {\n    var dashValue = Math.ceil(dash);\n    return [[dashValue, dashValue]];\n  }\n\n  var isAllNumber = true;\n\n  for (var i = 0; i < dash.length; ++i) {\n    if (typeof dash[i] !== 'number') {\n      isAllNumber = false;\n      break;\n    }\n  }\n\n  if (isAllNumber) {\n    return normalizeDashArrayX([dash]);\n  }\n\n  var result = [];\n\n  for (var i = 0; i < dash.length; ++i) {\n    if (typeof dash[i] === 'number') {\n      var dashValue = Math.ceil(dash[i]);\n      result.push([dashValue, dashValue]);\n    } else {\n      var dashValue = map(dash[i], function (n) {\n        return Math.ceil(n);\n      });\n\n      if (dashValue.length % 2 === 1) {\n        result.push(dashValue.concat(dashValue));\n      } else {\n        result.push(dashValue);\n      }\n    }\n  }\n\n  return result;\n}\n\nfunction normalizeDashArrayY(dash) {\n  if (!dash || typeof dash === 'object' && dash.length === 0) {\n    return [0, 0];\n  }\n\n  if (typeof dash === 'number') {\n    var dashValue_1 = Math.ceil(dash);\n    return [dashValue_1, dashValue_1];\n  }\n\n  var dashValue = map(dash, function (n) {\n    return Math.ceil(n);\n  });\n  return dash.length % 2 ? dashValue.concat(dashValue) : dashValue;\n}\n\nfunction getLineBlockLengthX(dash) {\n  return map(dash, function (line) {\n    return getLineBlockLengthY(line);\n  });\n}\n\nfunction getLineBlockLengthY(dash) {\n  var blockLength = 0;\n\n  for (var i = 0; i < dash.length; ++i) {\n    blockLength += dash[i];\n  }\n\n  if (dash.length % 2 === 1) {\n    return blockLength * 2;\n  }\n\n  return blockLength;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createOrUpdatePatternFromDecal } from '../util/decal';\nexport default function decalVisual(ecModel, api) {\n  ecModel.eachRawSeries(function (seriesModel) {\n    if (ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n\n    if (data.hasItemVisual()) {\n      data.each(function (idx) {\n        var decal = data.getItemVisual(idx, 'decal');\n\n        if (decal) {\n          var itemStyle = data.ensureUniqueItemVisual(idx, 'style');\n          itemStyle.decal = createOrUpdatePatternFromDecal(decal, api);\n        }\n      });\n    }\n\n    var decal = data.getVisual('decal');\n\n    if (decal) {\n      var style = data.getVisual('style');\n      style.decal = createOrUpdatePatternFromDecal(decal, api);\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrender from 'zrender/lib/zrender';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as colorTool from 'zrender/lib/tool/color';\nimport env from 'zrender/lib/core/env';\nimport timsort from 'zrender/lib/core/timsort';\nimport Eventful from 'zrender/lib/core/Eventful';\nimport GlobalModel from '../model/Global';\nimport ExtensionAPI from './ExtensionAPI';\nimport CoordinateSystemManager from './CoordinateSystem';\nimport OptionManager from '../model/OptionManager';\nimport backwardCompat from '../preprocessor/backwardCompat';\nimport dataStack from '../processor/dataStack';\nimport SeriesModel from '../model/Series';\nimport ComponentView from '../view/Component';\nimport ChartView from '../view/Chart';\nimport * as graphic from '../util/graphic';\nimport { getECData } from '../util/innerStore';\nimport { enterEmphasisWhenMouseOver, leaveEmphasisWhenMouseOut, isHighDownDispatcher, HOVER_STATE_EMPHASIS, HOVER_STATE_BLUR, toggleSeriesBlurState, toggleSeriesBlurStateFromPayload, toggleSelectionFromPayload, updateSeriesElementSelection, getAllSelectedIndices, isSelectChangePayload, isHighDownPayload, HIGHLIGHT_ACTION_TYPE, DOWNPLAY_ACTION_TYPE, SELECT_ACTION_TYPE, UNSELECT_ACTION_TYPE, TOGGLE_SELECT_ACTION_TYPE, savePathStates, enterEmphasis, leaveEmphasis, leaveBlur, enterSelect, leaveSelect, enterBlur } from '../util/states';\nimport * as modelUtil from '../util/model';\nimport { throttle } from '../util/throttle';\nimport { seriesStyleTask, dataStyleTask, dataColorPaletteTask } from '../visual/style';\nimport loadingDefault from '../loading/default';\nimport Scheduler from './Scheduler';\nimport lightTheme from '../theme/light';\nimport darkTheme from '../theme/dark';\nimport mapDataStorage from '../coord/geo/mapDataStorage';\nimport { parseClassType } from '../util/clazz';\nimport { ECEventProcessor } from '../util/ECEventProcessor';\nimport { seriesSymbolTask, dataSymbolTask } from '../visual/symbol';\nimport { getVisualFromData, getItemVisualFromData } from '../visual/helper';\nimport LabelManager from '../label/LabelManager';\nimport { deprecateLog, throwError } from '../util/log';\nimport { handleLegacySelectEvents } from '../legacy/dataSelectAction';\nimport { registerExternalTransform } from '../data/helper/transform';\nimport { createLocaleObject, SYSTEM_LANG } from './locale';\nimport { findEventDispatcher } from '../util/event';\nimport decal from '../visual/decal';\nvar assert = zrUtil.assert;\nvar each = zrUtil.each;\nvar isFunction = zrUtil.isFunction;\nvar isObject = zrUtil.isObject;\nvar indexOf = zrUtil.indexOf;\nvar hasWindow = typeof window !== 'undefined';\nexport var version = '5.0.1';\nexport var dependencies = {\n  zrender: '5.0.3'\n};\nvar TEST_FRAME_REMAIN_TIME = 1;\nvar PRIORITY_PROCESSOR_SERIES_FILTER = 800;\nvar PRIORITY_PROCESSOR_DATASTACK = 900;\nvar PRIORITY_PROCESSOR_FILTER = 1000;\nvar PRIORITY_PROCESSOR_DEFAULT = 2000;\nvar PRIORITY_PROCESSOR_STATISTIC = 5000;\nvar PRIORITY_VISUAL_LAYOUT = 1000;\nvar PRIORITY_VISUAL_PROGRESSIVE_LAYOUT = 1100;\nvar PRIORITY_VISUAL_GLOBAL = 2000;\nvar PRIORITY_VISUAL_CHART = 3000;\nvar PRIORITY_VISUAL_COMPONENT = 4000;\nvar PRIORITY_VISUAL_CHART_DATA_CUSTOM = 4500;\nvar PRIORITY_VISUAL_POST_CHART_LAYOUT = 4600;\nvar PRIORITY_VISUAL_BRUSH = 5000;\nvar PRIORITY_VISUAL_ARIA = 6000;\nvar PRIORITY_VISUAL_DECAL = 7000;\nexport var PRIORITY = {\n  PROCESSOR: {\n    FILTER: PRIORITY_PROCESSOR_FILTER,\n    SERIES_FILTER: PRIORITY_PROCESSOR_SERIES_FILTER,\n    STATISTIC: PRIORITY_PROCESSOR_STATISTIC\n  },\n  VISUAL: {\n    LAYOUT: PRIORITY_VISUAL_LAYOUT,\n    PROGRESSIVE_LAYOUT: PRIORITY_VISUAL_PROGRESSIVE_LAYOUT,\n    GLOBAL: PRIORITY_VISUAL_GLOBAL,\n    CHART: PRIORITY_VISUAL_CHART,\n    POST_CHART_LAYOUT: PRIORITY_VISUAL_POST_CHART_LAYOUT,\n    COMPONENT: PRIORITY_VISUAL_COMPONENT,\n    BRUSH: PRIORITY_VISUAL_BRUSH,\n    CHART_ITEM: PRIORITY_VISUAL_CHART_DATA_CUSTOM,\n    ARIA: PRIORITY_VISUAL_ARIA,\n    DECAL: PRIORITY_VISUAL_DECAL\n  }\n};\nvar IN_MAIN_PROCESS_KEY = '__flagInMainProcess';\nvar OPTION_UPDATED_KEY = '__optionUpdated';\nvar STATUS_NEEDS_UPDATE_KEY = '__needsUpdateStatus';\nvar ACTION_REG = /^[a-zA-Z0-9_]+$/;\nvar CONNECT_STATUS_KEY = '__connectUpdateStatus';\nvar CONNECT_STATUS_PENDING = 0;\nvar CONNECT_STATUS_UPDATING = 1;\nvar CONNECT_STATUS_UPDATED = 2;\n;\n\nfunction createRegisterEventWithLowercaseECharts(method) {\n  return function () {\n    var args = [];\n\n    for (var _i = 0; _i < arguments.length; _i++) {\n      args[_i] = arguments[_i];\n    }\n\n    if (this.isDisposed()) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    return toLowercaseNameAndCallEventful(this, method, args);\n  };\n}\n\nfunction createRegisterEventWithLowercaseMessageCenter(method) {\n  return function () {\n    var args = [];\n\n    for (var _i = 0; _i < arguments.length; _i++) {\n      args[_i] = arguments[_i];\n    }\n\n    return toLowercaseNameAndCallEventful(this, method, args);\n  };\n}\n\nfunction toLowercaseNameAndCallEventful(host, method, args) {\n  args[0] = args[0] && args[0].toLowerCase();\n  return Eventful.prototype[method].apply(host, args);\n}\n\nvar MessageCenter = function (_super) {\n  __extends(MessageCenter, _super);\n\n  function MessageCenter() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  return MessageCenter;\n}(Eventful);\n\nvar messageCenterProto = MessageCenter.prototype;\nmessageCenterProto.on = createRegisterEventWithLowercaseMessageCenter('on');\nmessageCenterProto.off = createRegisterEventWithLowercaseMessageCenter('off');\nvar prepare;\nvar prepareView;\nvar updateDirectly;\nvar updateMethods;\nvar doConvertPixel;\nvar updateStreamModes;\nvar doDispatchAction;\nvar flushPendingActions;\nvar triggerUpdatedEvent;\nvar bindRenderedEvent;\nvar bindMouseEvent;\nvar clearColorPalette;\nvar render;\nvar renderComponents;\nvar renderSeries;\nvar performPostUpdateFuncs;\nvar createExtensionAPI;\nvar enableConnect;\nvar setTransitionOpt;\nvar markStatusToUpdate;\nvar applyChangedStates;\n\nvar ECharts = function (_super) {\n  __extends(ECharts, _super);\n\n  function ECharts(dom, theme, opts) {\n    var _this = _super.call(this, new ECEventProcessor()) || this;\n\n    _this._chartsViews = [];\n    _this._chartsMap = {};\n    _this._componentsViews = [];\n    _this._componentsMap = {};\n    _this._pendingActions = [];\n    opts = opts || {};\n\n    if (typeof theme === 'string') {\n      theme = themeStorage[theme];\n    }\n\n    _this._dom = dom;\n    var defaultRenderer = 'canvas';\n    var defaultUseDirtyRect = false;\n\n    if (process.env.NODE_ENV !== 'production') {\n      var root = hasWindow ? window : global;\n      defaultRenderer = root.__ECHARTS__DEFAULT__RENDERER__ || defaultRenderer;\n      var devUseDirtyRect = root.__ECHARTS__DEFAULT__USE_DIRTY_RECT__;\n      defaultUseDirtyRect = devUseDirtyRect == null ? defaultUseDirtyRect : devUseDirtyRect;\n    }\n\n    var zr = _this._zr = zrender.init(dom, {\n      renderer: opts.renderer || defaultRenderer,\n      devicePixelRatio: opts.devicePixelRatio,\n      width: opts.width,\n      height: opts.height,\n      useDirtyRect: opts.useDirtyRect == null ? defaultUseDirtyRect : opts.useDirtyRect\n    });\n    _this._throttledZrFlush = throttle(zrUtil.bind(zr.flush, zr), 17);\n    theme = zrUtil.clone(theme);\n    theme && backwardCompat(theme, true);\n    _this._theme = theme;\n    _this._locale = createLocaleObject(opts.locale || SYSTEM_LANG);\n    _this._coordSysMgr = new CoordinateSystemManager();\n    var api = _this._api = createExtensionAPI(_this);\n\n    function prioritySortFunc(a, b) {\n      return a.__prio - b.__prio;\n    }\n\n    timsort(visualFuncs, prioritySortFunc);\n    timsort(dataProcessorFuncs, prioritySortFunc);\n    _this._scheduler = new Scheduler(_this, api, dataProcessorFuncs, visualFuncs);\n    _this._messageCenter = new MessageCenter();\n    _this._labelManager = new LabelManager();\n\n    _this._initEvents();\n\n    _this.resize = zrUtil.bind(_this.resize, _this);\n    zr.animation.on('frame', _this._onframe, _this);\n    bindRenderedEvent(zr, _this);\n    bindMouseEvent(zr, _this);\n    zrUtil.setAsPrimitive(_this);\n    return _this;\n  }\n\n  ECharts.prototype._onframe = function () {\n    if (this._disposed) {\n      return;\n    }\n\n    applyChangedStates(this);\n    var scheduler = this._scheduler;\n\n    if (this[OPTION_UPDATED_KEY]) {\n      var silent = this[OPTION_UPDATED_KEY].silent;\n      this[IN_MAIN_PROCESS_KEY] = true;\n      prepare(this);\n      updateMethods.update.call(this);\n\n      this._zr.flush();\n\n      this[IN_MAIN_PROCESS_KEY] = false;\n      this[OPTION_UPDATED_KEY] = false;\n      flushPendingActions.call(this, silent);\n      triggerUpdatedEvent.call(this, silent);\n    } else if (scheduler.unfinished) {\n      var remainTime = TEST_FRAME_REMAIN_TIME;\n      var ecModel = this._model;\n      var api = this._api;\n      scheduler.unfinished = false;\n\n      do {\n        var startTime = +new Date();\n        scheduler.performSeriesTasks(ecModel);\n        scheduler.performDataProcessorTasks(ecModel);\n        updateStreamModes(this, ecModel);\n        scheduler.performVisualTasks(ecModel);\n        renderSeries(this, this._model, api, 'remain');\n        remainTime -= +new Date() - startTime;\n      } while (remainTime > 0 && scheduler.unfinished);\n\n      if (!scheduler.unfinished) {\n        this._zr.flush();\n      }\n    }\n  };\n\n  ECharts.prototype.getDom = function () {\n    return this._dom;\n  };\n\n  ECharts.prototype.getId = function () {\n    return this.id;\n  };\n\n  ECharts.prototype.getZr = function () {\n    return this._zr;\n  };\n\n  ECharts.prototype.setOption = function (option, notMerge, lazyUpdate) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!this[IN_MAIN_PROCESS_KEY], '`setOption` should not be called during main process.');\n    }\n\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    var silent;\n    var replaceMerge;\n    var transitionOpt;\n\n    if (isObject(notMerge)) {\n      lazyUpdate = notMerge.lazyUpdate;\n      silent = notMerge.silent;\n      replaceMerge = notMerge.replaceMerge;\n      transitionOpt = notMerge.transition;\n      notMerge = notMerge.notMerge;\n    }\n\n    this[IN_MAIN_PROCESS_KEY] = true;\n\n    if (!this._model || notMerge) {\n      var optionManager = new OptionManager(this._api);\n      var theme = this._theme;\n      var ecModel = this._model = new GlobalModel();\n      ecModel.scheduler = this._scheduler;\n      ecModel.init(null, null, null, theme, this._locale, optionManager);\n    }\n\n    this._model.setOption(option, {\n      replaceMerge: replaceMerge\n    }, optionPreprocessorFuncs);\n\n    setTransitionOpt(this, transitionOpt);\n\n    if (lazyUpdate) {\n      this[OPTION_UPDATED_KEY] = {\n        silent: silent\n      };\n      this[IN_MAIN_PROCESS_KEY] = false;\n      this.getZr().wakeUp();\n    } else {\n      prepare(this);\n      updateMethods.update.call(this);\n\n      this._zr.flush();\n\n      this[OPTION_UPDATED_KEY] = false;\n      this[IN_MAIN_PROCESS_KEY] = false;\n      flushPendingActions.call(this, silent);\n      triggerUpdatedEvent.call(this, silent);\n    }\n  };\n\n  ECharts.prototype.setTheme = function () {\n    console.error('ECharts#setTheme() is DEPRECATED in ECharts 3.0');\n  };\n\n  ECharts.prototype.getModel = function () {\n    return this._model;\n  };\n\n  ECharts.prototype.getOption = function () {\n    return this._model && this._model.getOption();\n  };\n\n  ECharts.prototype.getWidth = function () {\n    return this._zr.getWidth();\n  };\n\n  ECharts.prototype.getHeight = function () {\n    return this._zr.getHeight();\n  };\n\n  ECharts.prototype.getDevicePixelRatio = function () {\n    return this._zr.painter.dpr || hasWindow && window.devicePixelRatio || 1;\n  };\n\n  ECharts.prototype.getRenderedCanvas = function (opts) {\n    if (!env.canvasSupported) {\n      return;\n    }\n\n    opts = zrUtil.extend({}, opts || {});\n    opts.pixelRatio = opts.pixelRatio || 1;\n    opts.backgroundColor = opts.backgroundColor || this._model.get('backgroundColor');\n    var zr = this._zr;\n    return zr.painter.getRenderedCanvas(opts);\n  };\n\n  ECharts.prototype.getSvgDataURL = function () {\n    if (!env.svgSupported) {\n      return;\n    }\n\n    var zr = this._zr;\n    var list = zr.storage.getDisplayList();\n    zrUtil.each(list, function (el) {\n      el.stopAnimation(null, true);\n    });\n    return zr.painter.toDataURL();\n  };\n\n  ECharts.prototype.getDataURL = function (opts) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    opts = opts || {};\n    var excludeComponents = opts.excludeComponents;\n    var ecModel = this._model;\n    var excludesComponentViews = [];\n    var self = this;\n    each(excludeComponents, function (componentType) {\n      ecModel.eachComponent({\n        mainType: componentType\n      }, function (component) {\n        var view = self._componentsMap[component.__viewId];\n\n        if (!view.group.ignore) {\n          excludesComponentViews.push(view);\n          view.group.ignore = true;\n        }\n      });\n    });\n    var url = this._zr.painter.getType() === 'svg' ? this.getSvgDataURL() : this.getRenderedCanvas(opts).toDataURL('image/' + (opts && opts.type || 'png'));\n    each(excludesComponentViews, function (view) {\n      view.group.ignore = false;\n    });\n    return url;\n  };\n\n  ECharts.prototype.getConnectedDataURL = function (opts) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    if (!env.canvasSupported) {\n      return;\n    }\n\n    var isSvg = opts.type === 'svg';\n    var groupId = this.group;\n    var mathMin = Math.min;\n    var mathMax = Math.max;\n    var MAX_NUMBER = Infinity;\n\n    if (connectedGroups[groupId]) {\n      var left_1 = MAX_NUMBER;\n      var top_1 = MAX_NUMBER;\n      var right_1 = -MAX_NUMBER;\n      var bottom_1 = -MAX_NUMBER;\n      var canvasList_1 = [];\n      var dpr_1 = opts && opts.pixelRatio || 1;\n      zrUtil.each(instances, function (chart, id) {\n        if (chart.group === groupId) {\n          var canvas = isSvg ? chart.getZr().painter.getSvgDom().innerHTML : chart.getRenderedCanvas(zrUtil.clone(opts));\n          var boundingRect = chart.getDom().getBoundingClientRect();\n          left_1 = mathMin(boundingRect.left, left_1);\n          top_1 = mathMin(boundingRect.top, top_1);\n          right_1 = mathMax(boundingRect.right, right_1);\n          bottom_1 = mathMax(boundingRect.bottom, bottom_1);\n          canvasList_1.push({\n            dom: canvas,\n            left: boundingRect.left,\n            top: boundingRect.top\n          });\n        }\n      });\n      left_1 *= dpr_1;\n      top_1 *= dpr_1;\n      right_1 *= dpr_1;\n      bottom_1 *= dpr_1;\n      var width = right_1 - left_1;\n      var height = bottom_1 - top_1;\n      var targetCanvas = zrUtil.createCanvas();\n      var zr_1 = zrender.init(targetCanvas, {\n        renderer: isSvg ? 'svg' : 'canvas'\n      });\n      zr_1.resize({\n        width: width,\n        height: height\n      });\n\n      if (isSvg) {\n        var content_1 = '';\n        each(canvasList_1, function (item) {\n          var x = item.left - left_1;\n          var y = item.top - top_1;\n          content_1 += '<g transform=\"translate(' + x + ',' + y + ')\">' + item.dom + '</g>';\n        });\n        zr_1.painter.getSvgRoot().innerHTML = content_1;\n\n        if (opts.connectedBackgroundColor) {\n          zr_1.painter.setBackgroundColor(opts.connectedBackgroundColor);\n        }\n\n        zr_1.refreshImmediately();\n        return zr_1.painter.toDataURL();\n      } else {\n        if (opts.connectedBackgroundColor) {\n          zr_1.add(new graphic.Rect({\n            shape: {\n              x: 0,\n              y: 0,\n              width: width,\n              height: height\n            },\n            style: {\n              fill: opts.connectedBackgroundColor\n            }\n          }));\n        }\n\n        each(canvasList_1, function (item) {\n          var img = new graphic.Image({\n            style: {\n              x: item.left * dpr_1 - left_1,\n              y: item.top * dpr_1 - top_1,\n              image: item.dom\n            }\n          });\n          zr_1.add(img);\n        });\n        zr_1.refreshImmediately();\n        return targetCanvas.toDataURL('image/' + (opts && opts.type || 'png'));\n      }\n    } else {\n      return this.getDataURL(opts);\n    }\n  };\n\n  ECharts.prototype.convertToPixel = function (finder, value) {\n    return doConvertPixel(this, 'convertToPixel', finder, value);\n  };\n\n  ECharts.prototype.convertFromPixel = function (finder, value) {\n    return doConvertPixel(this, 'convertFromPixel', finder, value);\n  };\n\n  ECharts.prototype.containPixel = function (finder, value) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    var ecModel = this._model;\n    var result;\n    var findResult = modelUtil.parseFinder(ecModel, finder);\n    zrUtil.each(findResult, function (models, key) {\n      key.indexOf('Models') >= 0 && zrUtil.each(models, function (model) {\n        var coordSys = model.coordinateSystem;\n\n        if (coordSys && coordSys.containPoint) {\n          result = result || !!coordSys.containPoint(value);\n        } else if (key === 'seriesModels') {\n          var view = this._chartsMap[model.__viewId];\n\n          if (view && view.containPoint) {\n            result = result || view.containPoint(value, model);\n          } else {\n            if (process.env.NODE_ENV !== 'production') {\n              console.warn(key + ': ' + (view ? 'The found component do not support containPoint.' : 'No view mapping to the found component.'));\n            }\n          }\n        } else {\n          if (process.env.NODE_ENV !== 'production') {\n            console.warn(key + ': containPoint is not supported');\n          }\n        }\n      }, this);\n    }, this);\n    return !!result;\n  };\n\n  ECharts.prototype.getVisual = function (finder, visualType) {\n    var ecModel = this._model;\n    var parsedFinder = modelUtil.parseFinder(ecModel, finder, {\n      defaultMainType: 'series'\n    });\n    var seriesModel = parsedFinder.seriesModel;\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!seriesModel) {\n        console.warn('There is no specified seires model');\n      }\n    }\n\n    var data = seriesModel.getData();\n    var dataIndexInside = parsedFinder.hasOwnProperty('dataIndexInside') ? parsedFinder.dataIndexInside : parsedFinder.hasOwnProperty('dataIndex') ? data.indexOfRawIndex(parsedFinder.dataIndex) : null;\n    return dataIndexInside != null ? getItemVisualFromData(data, dataIndexInside, visualType) : getVisualFromData(data, visualType);\n  };\n\n  ECharts.prototype.getViewOfComponentModel = function (componentModel) {\n    return this._componentsMap[componentModel.__viewId];\n  };\n\n  ECharts.prototype.getViewOfSeriesModel = function (seriesModel) {\n    return this._chartsMap[seriesModel.__viewId];\n  };\n\n  ECharts.prototype._initEvents = function () {\n    var _this = this;\n\n    each(MOUSE_EVENT_NAMES, function (eveName) {\n      var handler = function (e) {\n        var ecModel = _this.getModel();\n\n        var el = e.target;\n        var params;\n        var isGlobalOut = eveName === 'globalout';\n\n        if (isGlobalOut) {\n          params = {};\n        } else {\n          el && findEventDispatcher(el, function (parent) {\n            var ecData = getECData(parent);\n\n            if (ecData && ecData.dataIndex != null) {\n              var dataModel = ecData.dataModel || ecModel.getSeriesByIndex(ecData.seriesIndex);\n              params = dataModel && dataModel.getDataParams(ecData.dataIndex, ecData.dataType) || {};\n              return true;\n            } else if (ecData.eventData) {\n              params = zrUtil.extend({}, ecData.eventData);\n              return true;\n            }\n          }, true);\n        }\n\n        if (params) {\n          var componentType = params.componentType;\n          var componentIndex = params.componentIndex;\n\n          if (componentType === 'markLine' || componentType === 'markPoint' || componentType === 'markArea') {\n            componentType = 'series';\n            componentIndex = params.seriesIndex;\n          }\n\n          var model = componentType && componentIndex != null && ecModel.getComponent(componentType, componentIndex);\n          var view = model && _this[model.mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId];\n\n          if (process.env.NODE_ENV !== 'production') {\n            if (!isGlobalOut && !(model && view)) {\n              console.warn('model or view can not be found by params');\n            }\n          }\n\n          params.event = e;\n          params.type = eveName;\n          _this._$eventProcessor.eventInfo = {\n            targetEl: el,\n            packedEvent: params,\n            model: model,\n            view: view\n          };\n\n          _this.trigger(eveName, params);\n        }\n      };\n\n      handler.zrEventfulCallAtLast = true;\n\n      _this._zr.on(eveName, handler, _this);\n    });\n    each(eventActionMap, function (actionType, eventType) {\n      _this._messageCenter.on(eventType, function (event) {\n        this.trigger(eventType, event);\n      }, _this);\n    });\n    each(['selectchanged'], function (eventType) {\n      _this._messageCenter.on(eventType, function (event) {\n        this.trigger(eventType, event);\n      }, _this);\n    });\n    handleLegacySelectEvents(this._messageCenter, this, this._api);\n  };\n\n  ECharts.prototype.isDisposed = function () {\n    return this._disposed;\n  };\n\n  ECharts.prototype.clear = function () {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    this.setOption({\n      series: []\n    }, true);\n  };\n\n  ECharts.prototype.dispose = function () {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    this._disposed = true;\n    modelUtil.setAttribute(this.getDom(), DOM_ATTRIBUTE_KEY, '');\n    var api = this._api;\n    var ecModel = this._model;\n    each(this._componentsViews, function (component) {\n      component.dispose(ecModel, api);\n    });\n    each(this._chartsViews, function (chart) {\n      chart.dispose(ecModel, api);\n    });\n\n    this._zr.dispose();\n\n    delete instances[this.id];\n  };\n\n  ECharts.prototype.resize = function (opts) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!this[IN_MAIN_PROCESS_KEY], '`resize` should not be called during main process.');\n    }\n\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    this._zr.resize(opts);\n\n    var ecModel = this._model;\n    this._loadingFX && this._loadingFX.resize();\n\n    if (!ecModel) {\n      return;\n    }\n\n    var optionChanged = ecModel.resetOption('media');\n    var silent = opts && opts.silent;\n    this[IN_MAIN_PROCESS_KEY] = true;\n    optionChanged && prepare(this);\n    updateMethods.update.call(this, {\n      type: 'resize',\n      animation: {\n        duration: 0\n      }\n    });\n    this[IN_MAIN_PROCESS_KEY] = false;\n    flushPendingActions.call(this, silent);\n    triggerUpdatedEvent.call(this, silent);\n  };\n\n  ECharts.prototype.showLoading = function (name, cfg) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    if (isObject(name)) {\n      cfg = name;\n      name = '';\n    }\n\n    name = name || 'default';\n    this.hideLoading();\n\n    if (!loadingEffects[name]) {\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn('Loading effects ' + name + ' not exists.');\n      }\n\n      return;\n    }\n\n    var el = loadingEffects[name](this._api, cfg);\n    var zr = this._zr;\n    this._loadingFX = el;\n    zr.add(el);\n  };\n\n  ECharts.prototype.hideLoading = function () {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    this._loadingFX && this._zr.remove(this._loadingFX);\n    this._loadingFX = null;\n  };\n\n  ECharts.prototype.makeActionFromEvent = function (eventObj) {\n    var payload = zrUtil.extend({}, eventObj);\n    payload.type = eventActionMap[eventObj.type];\n    return payload;\n  };\n\n  ECharts.prototype.dispatchAction = function (payload, opt) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    if (!isObject(opt)) {\n      opt = {\n        silent: !!opt\n      };\n    }\n\n    if (!actions[payload.type]) {\n      return;\n    }\n\n    if (!this._model) {\n      return;\n    }\n\n    if (this[IN_MAIN_PROCESS_KEY]) {\n      this._pendingActions.push(payload);\n\n      return;\n    }\n\n    var silent = opt.silent;\n    doDispatchAction.call(this, payload, silent);\n    var flush = opt.flush;\n\n    if (flush) {\n      this._zr.flush();\n    } else if (flush !== false && env.browser.weChat) {\n      this._throttledZrFlush();\n    }\n\n    flushPendingActions.call(this, silent);\n    triggerUpdatedEvent.call(this, silent);\n  };\n\n  ECharts.prototype.updateLabelLayout = function () {\n    var labelManager = this._labelManager;\n    labelManager.updateLayoutConfig(this._api);\n    labelManager.layout(this._api);\n    labelManager.processLabelsOverall();\n  };\n\n  ECharts.prototype.appendData = function (params) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    var seriesIndex = params.seriesIndex;\n    var ecModel = this.getModel();\n    var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(params.data && seriesModel);\n    }\n\n    seriesModel.appendData(params);\n    this._scheduler.unfinished = true;\n    this.getZr().wakeUp();\n  };\n\n  ECharts.internalField = function () {\n    prepare = function (ecIns) {\n      var scheduler = ecIns._scheduler;\n      scheduler.restorePipelines(ecIns._model);\n      scheduler.prepareStageTasks();\n      prepareView(ecIns, true);\n      prepareView(ecIns, false);\n      scheduler.plan();\n    };\n\n    prepareView = function (ecIns, isComponent) {\n      var ecModel = ecIns._model;\n      var scheduler = ecIns._scheduler;\n      var viewList = isComponent ? ecIns._componentsViews : ecIns._chartsViews;\n      var viewMap = isComponent ? ecIns._componentsMap : ecIns._chartsMap;\n      var zr = ecIns._zr;\n      var api = ecIns._api;\n\n      for (var i = 0; i < viewList.length; i++) {\n        viewList[i].__alive = false;\n      }\n\n      isComponent ? ecModel.eachComponent(function (componentType, model) {\n        componentType !== 'series' && doPrepare(model);\n      }) : ecModel.eachSeries(doPrepare);\n\n      function doPrepare(model) {\n        var requireNewView = model.__requireNewView;\n        model.__requireNewView = false;\n        var viewId = '_ec_' + model.id + '_' + model.type;\n        var view = !requireNewView && viewMap[viewId];\n\n        if (!view) {\n          var classType = parseClassType(model.type);\n          var Clazz = isComponent ? ComponentView.getClass(classType.main, classType.sub) : ChartView.getClass(classType.sub);\n\n          if (process.env.NODE_ENV !== 'production') {\n            assert(Clazz, classType.sub + ' does not exist.');\n          }\n\n          view = new Clazz();\n          view.init(ecModel, api);\n          viewMap[viewId] = view;\n          viewList.push(view);\n          zr.add(view.group);\n        }\n\n        model.__viewId = view.__id = viewId;\n        view.__alive = true;\n        view.__model = model;\n        view.group.__ecComponentInfo = {\n          mainType: model.mainType,\n          index: model.componentIndex\n        };\n        !isComponent && scheduler.prepareView(view, model, ecModel, api);\n      }\n\n      for (var i = 0; i < viewList.length;) {\n        var view = viewList[i];\n\n        if (!view.__alive) {\n          !isComponent && view.renderTask.dispose();\n          zr.remove(view.group);\n          view.dispose(ecModel, api);\n          viewList.splice(i, 1);\n\n          if (viewMap[view.__id] === view) {\n            delete viewMap[view.__id];\n          }\n\n          view.__id = view.group.__ecComponentInfo = null;\n        } else {\n          i++;\n        }\n      }\n    };\n\n    updateDirectly = function (ecIns, method, payload, mainType, subType) {\n      var ecModel = ecIns._model;\n      ecModel.setUpdatePayload(payload);\n\n      if (!mainType) {\n        each([].concat(ecIns._componentsViews).concat(ecIns._chartsViews), callView);\n        return;\n      }\n\n      var query = {};\n      query[mainType + 'Id'] = payload[mainType + 'Id'];\n      query[mainType + 'Index'] = payload[mainType + 'Index'];\n      query[mainType + 'Name'] = payload[mainType + 'Name'];\n      var condition = {\n        mainType: mainType,\n        query: query\n      };\n      subType && (condition.subType = subType);\n      var excludeSeriesId = payload.excludeSeriesId;\n      var excludeSeriesIdMap;\n\n      if (excludeSeriesId != null) {\n        excludeSeriesIdMap = zrUtil.createHashMap();\n        each(modelUtil.normalizeToArray(excludeSeriesId), function (id) {\n          var modelId = modelUtil.convertOptionIdName(id, null);\n\n          if (modelId != null) {\n            excludeSeriesIdMap.set(modelId, true);\n          }\n        });\n      }\n\n      ecModel && ecModel.eachComponent(condition, function (model) {\n        if (!excludeSeriesIdMap || excludeSeriesIdMap.get(model.id) == null) {\n          if (isHighDownPayload(payload) && !payload.notBlur) {\n            if (model instanceof SeriesModel) {\n              toggleSeriesBlurStateFromPayload(model, payload, ecIns._api);\n            }\n          } else if (isSelectChangePayload(payload)) {\n            if (model instanceof SeriesModel) {\n              toggleSelectionFromPayload(model, payload, ecIns._api);\n              updateSeriesElementSelection(model);\n              markStatusToUpdate(ecIns);\n            }\n          }\n\n          callView(ecIns[mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId]);\n        }\n      }, ecIns);\n\n      function callView(view) {\n        view && view.__alive && view[method] && view[method](view.__model, ecModel, ecIns._api, payload);\n      }\n    };\n\n    updateMethods = {\n      prepareAndUpdate: function (payload) {\n        prepare(this);\n        updateMethods.update.call(this, payload);\n      },\n      update: function (payload) {\n        var ecModel = this._model;\n        var api = this._api;\n        var zr = this._zr;\n        var coordSysMgr = this._coordSysMgr;\n        var scheduler = this._scheduler;\n\n        if (!ecModel) {\n          return;\n        }\n\n        ecModel.setUpdatePayload(payload);\n        scheduler.restoreData(ecModel, payload);\n        scheduler.performSeriesTasks(ecModel);\n        coordSysMgr.create(ecModel, api);\n        scheduler.performDataProcessorTasks(ecModel, payload);\n        updateStreamModes(this, ecModel);\n        coordSysMgr.update(ecModel, api);\n        clearColorPalette(ecModel);\n        scheduler.performVisualTasks(ecModel, payload);\n        render(this, ecModel, api, payload);\n        var backgroundColor = ecModel.get('backgroundColor') || 'transparent';\n        var darkMode = ecModel.get('darkMode');\n\n        if (!env.canvasSupported) {\n          var colorArr = colorTool.parse(backgroundColor);\n          backgroundColor = colorTool.stringify(colorArr, 'rgb');\n\n          if (colorArr[3] === 0) {\n            backgroundColor = 'transparent';\n          }\n        } else {\n          zr.setBackgroundColor(backgroundColor);\n\n          if (darkMode != null && darkMode !== 'auto') {\n            zr.setDarkMode(darkMode);\n          }\n        }\n\n        performPostUpdateFuncs(ecModel, api);\n      },\n      updateTransform: function (payload) {\n        var _this = this;\n\n        var ecModel = this._model;\n        var api = this._api;\n\n        if (!ecModel) {\n          return;\n        }\n\n        ecModel.setUpdatePayload(payload);\n        var componentDirtyList = [];\n        ecModel.eachComponent(function (componentType, componentModel) {\n          if (componentType === 'series') {\n            return;\n          }\n\n          var componentView = _this.getViewOfComponentModel(componentModel);\n\n          if (componentView && componentView.__alive) {\n            if (componentView.updateTransform) {\n              var result = componentView.updateTransform(componentModel, ecModel, api, payload);\n              result && result.update && componentDirtyList.push(componentView);\n            } else {\n              componentDirtyList.push(componentView);\n            }\n          }\n        });\n        var seriesDirtyMap = zrUtil.createHashMap();\n        ecModel.eachSeries(function (seriesModel) {\n          var chartView = _this._chartsMap[seriesModel.__viewId];\n\n          if (chartView.updateTransform) {\n            var result = chartView.updateTransform(seriesModel, ecModel, api, payload);\n            result && result.update && seriesDirtyMap.set(seriesModel.uid, 1);\n          } else {\n            seriesDirtyMap.set(seriesModel.uid, 1);\n          }\n        });\n        clearColorPalette(ecModel);\n\n        this._scheduler.performVisualTasks(ecModel, payload, {\n          setDirty: true,\n          dirtyMap: seriesDirtyMap\n        });\n\n        renderSeries(this, ecModel, api, payload, seriesDirtyMap);\n        performPostUpdateFuncs(ecModel, this._api);\n      },\n      updateView: function (payload) {\n        var ecModel = this._model;\n\n        if (!ecModel) {\n          return;\n        }\n\n        ecModel.setUpdatePayload(payload);\n        ChartView.markUpdateMethod(payload, 'updateView');\n        clearColorPalette(ecModel);\n\n        this._scheduler.performVisualTasks(ecModel, payload, {\n          setDirty: true\n        });\n\n        render(this, this._model, this._api, payload);\n        performPostUpdateFuncs(ecModel, this._api);\n      },\n      updateVisual: function (payload) {\n        var _this = this;\n\n        var ecModel = this._model;\n\n        if (!ecModel) {\n          return;\n        }\n\n        ecModel.setUpdatePayload(payload);\n        ecModel.eachSeries(function (seriesModel) {\n          seriesModel.getData().clearAllVisual();\n        });\n        ChartView.markUpdateMethod(payload, 'updateVisual');\n        clearColorPalette(ecModel);\n\n        this._scheduler.performVisualTasks(ecModel, payload, {\n          visualType: 'visual',\n          setDirty: true\n        });\n\n        ecModel.eachComponent(function (componentType, componentModel) {\n          if (componentType !== 'series') {\n            var componentView = _this.getViewOfComponentModel(componentModel);\n\n            componentView && componentView.__alive && componentView.updateVisual(componentModel, ecModel, _this._api, payload);\n          }\n        });\n        ecModel.eachSeries(function (seriesModel) {\n          var chartView = _this._chartsMap[seriesModel.__viewId];\n          chartView.updateVisual(seriesModel, ecModel, _this._api, payload);\n        });\n        performPostUpdateFuncs(ecModel, this._api);\n      },\n      updateLayout: function (payload) {\n        updateMethods.update.call(this, payload);\n      }\n    };\n\n    doConvertPixel = function (ecIns, methodName, finder, value) {\n      if (ecIns._disposed) {\n        disposedWarning(ecIns.id);\n        return;\n      }\n\n      var ecModel = ecIns._model;\n\n      var coordSysList = ecIns._coordSysMgr.getCoordinateSystems();\n\n      var result;\n      var parsedFinder = modelUtil.parseFinder(ecModel, finder);\n\n      for (var i = 0; i < coordSysList.length; i++) {\n        var coordSys = coordSysList[i];\n\n        if (coordSys[methodName] && (result = coordSys[methodName](ecModel, parsedFinder, value)) != null) {\n          return result;\n        }\n      }\n\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn('No coordinate system that supports ' + methodName + ' found by the given finder.');\n      }\n    };\n\n    updateStreamModes = function (ecIns, ecModel) {\n      var chartsMap = ecIns._chartsMap;\n      var scheduler = ecIns._scheduler;\n      ecModel.eachSeries(function (seriesModel) {\n        scheduler.updateStreamModes(seriesModel, chartsMap[seriesModel.__viewId]);\n      });\n    };\n\n    doDispatchAction = function (payload, silent) {\n      var _this = this;\n\n      var ecModel = this.getModel();\n      var payloadType = payload.type;\n      var escapeConnect = payload.escapeConnect;\n      var actionWrap = actions[payloadType];\n      var actionInfo = actionWrap.actionInfo;\n      var cptTypeTmp = (actionInfo.update || 'update').split(':');\n      var updateMethod = cptTypeTmp.pop();\n      var cptType = cptTypeTmp[0] != null && parseClassType(cptTypeTmp[0]);\n      this[IN_MAIN_PROCESS_KEY] = true;\n      var payloads = [payload];\n      var batched = false;\n\n      if (payload.batch) {\n        batched = true;\n        payloads = zrUtil.map(payload.batch, function (item) {\n          item = zrUtil.defaults(zrUtil.extend({}, item), payload);\n          item.batch = null;\n          return item;\n        });\n      }\n\n      var eventObjBatch = [];\n      var eventObj;\n      var isSelectChange = isSelectChangePayload(payload);\n      var isStatusChange = isHighDownPayload(payload) || isSelectChange;\n      each(payloads, function (batchItem) {\n        eventObj = actionWrap.action(batchItem, _this._model, _this._api);\n        eventObj = eventObj || zrUtil.extend({}, batchItem);\n        eventObj.type = actionInfo.event || eventObj.type;\n        eventObjBatch.push(eventObj);\n\n        if (isStatusChange) {\n          updateDirectly(_this, updateMethod, batchItem, 'series');\n          markStatusToUpdate(_this);\n        } else if (cptType) {\n          updateDirectly(_this, updateMethod, batchItem, cptType.main, cptType.sub);\n        }\n      });\n\n      if (updateMethod !== 'none' && !isStatusChange && !cptType) {\n        if (this[OPTION_UPDATED_KEY]) {\n          prepare(this);\n          updateMethods.update.call(this, payload);\n          this[OPTION_UPDATED_KEY] = false;\n        } else {\n          updateMethods[updateMethod].call(this, payload);\n        }\n      }\n\n      if (batched) {\n        eventObj = {\n          type: actionInfo.event || payloadType,\n          escapeConnect: escapeConnect,\n          batch: eventObjBatch\n        };\n      } else {\n        eventObj = eventObjBatch[0];\n      }\n\n      this[IN_MAIN_PROCESS_KEY] = false;\n\n      if (!silent) {\n        var messageCenter = this._messageCenter;\n        messageCenter.trigger(eventObj.type, eventObj);\n\n        if (isSelectChange) {\n          var newObj = {\n            type: 'selectchanged',\n            escapeConnect: escapeConnect,\n            selected: getAllSelectedIndices(ecModel),\n            isFromClick: payload.isFromClick || false,\n            fromAction: payload.type,\n            fromActionPayload: payload\n          };\n          messageCenter.trigger(newObj.type, newObj);\n        }\n      }\n    };\n\n    flushPendingActions = function (silent) {\n      var pendingActions = this._pendingActions;\n\n      while (pendingActions.length) {\n        var payload = pendingActions.shift();\n        doDispatchAction.call(this, payload, silent);\n      }\n    };\n\n    triggerUpdatedEvent = function (silent) {\n      !silent && this.trigger('updated');\n    };\n\n    bindRenderedEvent = function (zr, ecIns) {\n      zr.on('rendered', function (params) {\n        ecIns.trigger('rendered', params);\n\n        if (zr.animation.isFinished() && !ecIns[OPTION_UPDATED_KEY] && !ecIns._scheduler.unfinished && !ecIns._pendingActions.length) {\n          ecIns.trigger('finished');\n        }\n      });\n    };\n\n    bindMouseEvent = function (zr, ecIns) {\n      zr.on('mouseover', function (e) {\n        var el = e.target;\n        var dispatcher = findEventDispatcher(el, isHighDownDispatcher);\n\n        if (dispatcher) {\n          var ecData = getECData(dispatcher);\n          toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns._api, true);\n          enterEmphasisWhenMouseOver(dispatcher, e);\n          markStatusToUpdate(ecIns);\n        }\n      }).on('mouseout', function (e) {\n        var el = e.target;\n        var dispatcher = findEventDispatcher(el, isHighDownDispatcher);\n\n        if (dispatcher) {\n          var ecData = getECData(dispatcher);\n          toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns._api, false);\n          leaveEmphasisWhenMouseOut(dispatcher, e);\n          markStatusToUpdate(ecIns);\n        }\n      }).on('click', function (e) {\n        var el = e.target;\n        var dispatcher = findEventDispatcher(el, function (target) {\n          return getECData(target).dataIndex != null;\n        }, true);\n\n        if (dispatcher) {\n          var actionType = dispatcher.selected ? 'unselect' : 'select';\n          var ecData = getECData(dispatcher);\n\n          ecIns._api.dispatchAction({\n            type: actionType,\n            dataType: ecData.dataType,\n            dataIndexInside: ecData.dataIndex,\n            seriesIndex: ecData.seriesIndex,\n            isFromClick: true\n          });\n        }\n      });\n    };\n\n    clearColorPalette = function (ecModel) {\n      ecModel.clearColorPalette();\n      ecModel.eachSeries(function (seriesModel) {\n        seriesModel.clearColorPalette();\n      });\n    };\n\n    render = function (ecIns, ecModel, api, payload) {\n      renderComponents(ecIns, ecModel, api, payload);\n      each(ecIns._chartsViews, function (chart) {\n        chart.__alive = false;\n      });\n      renderSeries(ecIns, ecModel, api, payload);\n      each(ecIns._chartsViews, function (chart) {\n        if (!chart.__alive) {\n          chart.remove(ecModel, api);\n        }\n      });\n    };\n\n    renderComponents = function (ecIns, ecModel, api, payload, dirtyList) {\n      each(dirtyList || ecIns._componentsViews, function (componentView) {\n        var componentModel = componentView.__model;\n        clearStates(componentModel, componentView);\n        componentView.render(componentModel, ecModel, api, payload);\n        updateZ(componentModel, componentView);\n        updateStates(componentModel, componentView);\n      });\n    };\n\n    renderSeries = function (ecIns, ecModel, api, payload, dirtyMap) {\n      var scheduler = ecIns._scheduler;\n      var labelManager = ecIns._labelManager;\n      labelManager.clearLabels();\n      var unfinished = false;\n      ecModel.eachSeries(function (seriesModel) {\n        var chartView = ecIns._chartsMap[seriesModel.__viewId];\n        chartView.__alive = true;\n        var renderTask = chartView.renderTask;\n        scheduler.updatePayload(renderTask, payload);\n        clearStates(seriesModel, chartView);\n\n        if (dirtyMap && dirtyMap.get(seriesModel.uid)) {\n          renderTask.dirty();\n        }\n\n        if (renderTask.perform(scheduler.getPerformArgs(renderTask))) {\n          unfinished = true;\n        }\n\n        seriesModel.__transientTransitionOpt = null;\n        chartView.group.silent = !!seriesModel.get('silent');\n        updateBlend(seriesModel, chartView);\n        updateSeriesElementSelection(seriesModel);\n        labelManager.addLabelsOfSeries(chartView);\n      });\n      scheduler.unfinished = unfinished || scheduler.unfinished;\n      labelManager.updateLayoutConfig(api);\n      labelManager.layout(api);\n      labelManager.processLabelsOverall();\n      ecModel.eachSeries(function (seriesModel) {\n        var chartView = ecIns._chartsMap[seriesModel.__viewId];\n        updateZ(seriesModel, chartView);\n        updateStates(seriesModel, chartView);\n      });\n      updateHoverLayerStatus(ecIns, ecModel);\n    };\n\n    performPostUpdateFuncs = function (ecModel, api) {\n      each(postUpdateFuncs, function (func) {\n        func(ecModel, api);\n      });\n    };\n\n    markStatusToUpdate = function (ecIns) {\n      ecIns[STATUS_NEEDS_UPDATE_KEY] = true;\n      ecIns.getZr().wakeUp();\n    };\n\n    applyChangedStates = function (ecIns) {\n      if (!ecIns[STATUS_NEEDS_UPDATE_KEY]) {\n        return;\n      }\n\n      ecIns.getZr().storage.traverse(function (el) {\n        if (graphic.isElementRemoved(el)) {\n          return;\n        }\n\n        applyElementStates(el);\n      });\n      ecIns[STATUS_NEEDS_UPDATE_KEY] = false;\n    };\n\n    function applyElementStates(el) {\n      var newStates = [];\n      var oldStates = el.currentStates;\n\n      for (var i = 0; i < oldStates.length; i++) {\n        var stateName = oldStates[i];\n\n        if (!(stateName === 'emphasis' || stateName === 'blur' || stateName === 'select')) {\n          newStates.push(stateName);\n        }\n      }\n\n      if (el.selected && el.states.select) {\n        newStates.push('select');\n      }\n\n      if (el.hoverState === HOVER_STATE_EMPHASIS && el.states.emphasis) {\n        newStates.push('emphasis');\n      } else if (el.hoverState === HOVER_STATE_BLUR && el.states.blur) {\n        newStates.push('blur');\n      }\n\n      el.useStates(newStates);\n    }\n\n    function updateHoverLayerStatus(ecIns, ecModel) {\n      var zr = ecIns._zr;\n      var storage = zr.storage;\n      var elCount = 0;\n      storage.traverse(function (el) {\n        if (!el.isGroup) {\n          elCount++;\n        }\n      });\n\n      if (elCount > ecModel.get('hoverLayerThreshold') && !env.node && !env.worker) {\n        ecModel.eachSeries(function (seriesModel) {\n          if (seriesModel.preventUsingHoverLayer) {\n            return;\n          }\n\n          var chartView = ecIns._chartsMap[seriesModel.__viewId];\n\n          if (chartView.__alive) {\n            chartView.group.traverse(function (el) {\n              if (el.states.emphasis) {\n                el.states.emphasis.hoverLayer = true;\n              }\n            });\n          }\n        });\n      }\n    }\n\n    ;\n\n    function updateBlend(seriesModel, chartView) {\n      var blendMode = seriesModel.get('blendMode') || null;\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (!env.canvasSupported && blendMode && blendMode !== 'source-over') {\n          console.warn('Only canvas support blendMode');\n        }\n      }\n\n      chartView.group.traverse(function (el) {\n        if (!el.isGroup) {\n          el.style.blend = blendMode;\n        }\n\n        if (el.eachPendingDisplayable) {\n          el.eachPendingDisplayable(function (displayable) {\n            displayable.style.blend = blendMode;\n          });\n        }\n      });\n    }\n\n    ;\n\n    function updateZ(model, view) {\n      if (model.preventAutoZ) {\n        return;\n      }\n\n      var z = model.get('z');\n      var zlevel = model.get('zlevel');\n      view.group.traverse(function (el) {\n        if (!el.isGroup) {\n          z != null && (el.z = z);\n          zlevel != null && (el.zlevel = zlevel);\n          var label = el.getTextContent();\n          var labelLine = el.getTextGuideLine();\n\n          if (label) {\n            label.z = el.z;\n            label.zlevel = el.zlevel;\n            label.z2 = el.z2 + 2;\n          }\n\n          if (labelLine) {\n            var showAbove = el.textGuideLineConfig && el.textGuideLineConfig.showAbove;\n            labelLine.z = el.z;\n            labelLine.zlevel = el.zlevel;\n            labelLine.z2 = el.z2 + (showAbove ? 1 : -1);\n          }\n        }\n      });\n    }\n\n    ;\n\n    function clearStates(model, view) {\n      view.group.traverse(function (el) {\n        if (graphic.isElementRemoved(el)) {\n          return;\n        }\n\n        var textContent = el.getTextContent();\n        var textGuide = el.getTextGuideLine();\n\n        if (el.stateTransition) {\n          el.stateTransition = null;\n        }\n\n        if (textContent && textContent.stateTransition) {\n          textContent.stateTransition = null;\n        }\n\n        if (textGuide && textGuide.stateTransition) {\n          textGuide.stateTransition = null;\n        }\n\n        if (el.hasState()) {\n          el.prevStates = el.currentStates;\n          el.clearStates();\n        } else if (el.prevStates) {\n          el.prevStates = null;\n        }\n      });\n    }\n\n    function updateStates(model, view) {\n      var stateAnimationModel = model.getModel('stateAnimation');\n      var enableAnimation = model.isAnimationEnabled();\n      var duration = stateAnimationModel.get('duration');\n      var stateTransition = duration > 0 ? {\n        duration: duration,\n        delay: stateAnimationModel.get('delay'),\n        easing: stateAnimationModel.get('easing')\n      } : null;\n      view.group.traverse(function (el) {\n        if (el.states && el.states.emphasis) {\n          if (graphic.isElementRemoved(el)) {\n            return;\n          }\n\n          if (el instanceof graphic.Path) {\n            savePathStates(el);\n          }\n\n          if (el.__dirty) {\n            var prevStates = el.prevStates;\n\n            if (prevStates) {\n              el.useStates(prevStates);\n            }\n          }\n\n          if (enableAnimation) {\n            el.stateTransition = stateTransition;\n            var textContent = el.getTextContent();\n            var textGuide = el.getTextGuideLine();\n\n            if (textContent) {\n              textContent.stateTransition = stateTransition;\n            }\n\n            if (textGuide) {\n              textGuide.stateTransition = stateTransition;\n            }\n          }\n\n          if (el.__dirty) {\n            applyElementStates(el);\n          }\n        }\n      });\n    }\n\n    ;\n\n    createExtensionAPI = function (ecIns) {\n      return new (function (_super) {\n        __extends(class_1, _super);\n\n        function class_1() {\n          return _super !== null && _super.apply(this, arguments) || this;\n        }\n\n        class_1.prototype.getCoordinateSystems = function () {\n          return ecIns._coordSysMgr.getCoordinateSystems();\n        };\n\n        class_1.prototype.getComponentByElement = function (el) {\n          while (el) {\n            var modelInfo = el.__ecComponentInfo;\n\n            if (modelInfo != null) {\n              return ecIns._model.getComponent(modelInfo.mainType, modelInfo.index);\n            }\n\n            el = el.parent;\n          }\n        };\n\n        class_1.prototype.enterEmphasis = function (el, highlightDigit) {\n          enterEmphasis(el, highlightDigit);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.leaveEmphasis = function (el, highlightDigit) {\n          leaveEmphasis(el, highlightDigit);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.enterBlur = function (el) {\n          enterBlur(el);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.leaveBlur = function (el) {\n          leaveBlur(el);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.enterSelect = function (el) {\n          enterSelect(el);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.leaveSelect = function (el) {\n          leaveSelect(el);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.getModel = function () {\n          return ecIns.getModel();\n        };\n\n        class_1.prototype.getViewOfComponentModel = function (componentModel) {\n          return ecIns.getViewOfComponentModel(componentModel);\n        };\n\n        class_1.prototype.getViewOfSeriesModel = function (seriesModel) {\n          return ecIns.getViewOfSeriesModel(seriesModel);\n        };\n\n        return class_1;\n      }(ExtensionAPI))(ecIns);\n    };\n\n    enableConnect = function (chart) {\n      function updateConnectedChartsStatus(charts, status) {\n        for (var i = 0; i < charts.length; i++) {\n          var otherChart = charts[i];\n          otherChart[CONNECT_STATUS_KEY] = status;\n        }\n      }\n\n      each(eventActionMap, function (actionType, eventType) {\n        chart._messageCenter.on(eventType, function (event) {\n          if (connectedGroups[chart.group] && chart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_PENDING) {\n            if (event && event.escapeConnect) {\n              return;\n            }\n\n            var action_1 = chart.makeActionFromEvent(event);\n            var otherCharts_1 = [];\n            each(instances, function (otherChart) {\n              if (otherChart !== chart && otherChart.group === chart.group) {\n                otherCharts_1.push(otherChart);\n              }\n            });\n            updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_PENDING);\n            each(otherCharts_1, function (otherChart) {\n              if (otherChart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_UPDATING) {\n                otherChart.dispatchAction(action_1);\n              }\n            });\n            updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_UPDATED);\n          }\n        });\n      });\n    };\n\n    setTransitionOpt = function (chart, transitionOpt) {\n      var ecModel = chart._model;\n      zrUtil.each(modelUtil.normalizeToArray(transitionOpt), function (transOpt) {\n        var errMsg;\n        var fromOpt = transOpt.from;\n        var toOpt = transOpt.to;\n\n        if (toOpt == null) {\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg = '`transition.to` must be specified.';\n          }\n\n          throwError(errMsg);\n        }\n\n        var finderOpt = {\n          includeMainTypes: ['series'],\n          enableAll: false,\n          enableNone: false\n        };\n        var fromResult = fromOpt ? modelUtil.parseFinder(ecModel, fromOpt, finderOpt) : null;\n        var toResult = modelUtil.parseFinder(ecModel, toOpt, finderOpt);\n        var toSeries = toResult.seriesModel;\n\n        if (toSeries == null) {\n          errMsg = '';\n\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg = '`transition` is only supported on series.';\n          }\n        }\n\n        if (fromResult && fromResult.seriesModel !== toSeries) {\n          errMsg = '';\n\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg = '`transition.from` and `transition.to` must be specified to the same series.';\n          }\n        }\n\n        if (errMsg != null) {\n          throwError(errMsg);\n        }\n\n        toSeries.__transientTransitionOpt = {\n          from: fromOpt ? fromOpt.dimension : null,\n          to: toOpt.dimension,\n          dividingMethod: transOpt.dividingMethod\n        };\n      });\n    };\n  }();\n\n  return ECharts;\n}(Eventful);\n\nvar echartsProto = ECharts.prototype;\nechartsProto.on = createRegisterEventWithLowercaseECharts('on');\nechartsProto.off = createRegisterEventWithLowercaseECharts('off');\n\nechartsProto.one = function (eventName, cb, ctx) {\n  var self = this;\n  deprecateLog('ECharts#one is deprecated.');\n\n  function wrapped() {\n    var args2 = [];\n\n    for (var _i = 0; _i < arguments.length; _i++) {\n      args2[_i] = arguments[_i];\n    }\n\n    cb && cb.apply && cb.apply(this, args2);\n    self.off(eventName, wrapped);\n  }\n\n  ;\n  this.on.call(this, eventName, wrapped, ctx);\n};\n\nvar MOUSE_EVENT_NAMES = ['click', 'dblclick', 'mouseover', 'mouseout', 'mousemove', 'mousedown', 'mouseup', 'globalout', 'contextmenu'];\n\nfunction disposedWarning(id) {\n  if (process.env.NODE_ENV !== 'production') {\n    console.warn('Instance ' + id + ' has been disposed');\n  }\n}\n\nvar actions = {};\nvar eventActionMap = {};\nvar dataProcessorFuncs = [];\nvar optionPreprocessorFuncs = [];\nvar postInitFuncs = [];\nvar postUpdateFuncs = [];\nvar visualFuncs = [];\nvar themeStorage = {};\nvar loadingEffects = {};\nvar instances = {};\nvar connectedGroups = {};\nvar idBase = +new Date() - 0;\nvar groupIdBase = +new Date() - 0;\nvar DOM_ATTRIBUTE_KEY = '_echarts_instance_';\nexport function init(dom, theme, opts) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (!dom) {\n      throw new Error('Initialize failed: invalid dom.');\n    }\n  }\n\n  var existInstance = getInstanceByDom(dom);\n\n  if (existInstance) {\n    if (process.env.NODE_ENV !== 'production') {\n      console.warn('There is a chart instance already initialized on the dom.');\n    }\n\n    return existInstance;\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (zrUtil.isDom(dom) && dom.nodeName.toUpperCase() !== 'CANVAS' && (!dom.clientWidth && (!opts || opts.width == null) || !dom.clientHeight && (!opts || opts.height == null))) {\n      console.warn('Can\\'t get DOM width or height. Please check ' + 'dom.clientWidth and dom.clientHeight. They should not be 0.' + 'For example, you may need to call this in the callback ' + 'of window.onload.');\n    }\n  }\n\n  var chart = new ECharts(dom, theme, opts);\n  chart.id = 'ec_' + idBase++;\n  instances[chart.id] = chart;\n  modelUtil.setAttribute(dom, DOM_ATTRIBUTE_KEY, chart.id);\n  enableConnect(chart);\n  each(postInitFuncs, function (postInitFunc) {\n    postInitFunc(chart);\n  });\n  return chart;\n}\nexport function connect(groupId) {\n  if (zrUtil.isArray(groupId)) {\n    var charts = groupId;\n    groupId = null;\n    each(charts, function (chart) {\n      if (chart.group != null) {\n        groupId = chart.group;\n      }\n    });\n    groupId = groupId || 'g_' + groupIdBase++;\n    each(charts, function (chart) {\n      chart.group = groupId;\n    });\n  }\n\n  connectedGroups[groupId] = true;\n  return groupId;\n}\nexport function disConnect(groupId) {\n  connectedGroups[groupId] = false;\n}\nexport var disconnect = disConnect;\nexport function dispose(chart) {\n  if (typeof chart === 'string') {\n    chart = instances[chart];\n  } else if (!(chart instanceof ECharts)) {\n    chart = getInstanceByDom(chart);\n  }\n\n  if (chart instanceof ECharts && !chart.isDisposed()) {\n    chart.dispose();\n  }\n}\nexport function getInstanceByDom(dom) {\n  return instances[modelUtil.getAttribute(dom, DOM_ATTRIBUTE_KEY)];\n}\nexport function getInstanceById(key) {\n  return instances[key];\n}\nexport function registerTheme(name, theme) {\n  themeStorage[name] = theme;\n}\nexport function registerPreprocessor(preprocessorFunc) {\n  if (indexOf(optionPreprocessorFuncs, preprocessorFunc) < 0) {\n    optionPreprocessorFuncs.push(preprocessorFunc);\n  }\n}\nexport function registerProcessor(priority, processor) {\n  normalizeRegister(dataProcessorFuncs, priority, processor, PRIORITY_PROCESSOR_DEFAULT);\n}\nexport function registerPostInit(postInitFunc) {\n  if (indexOf(postInitFuncs, postInitFunc) < 0) {\n    postInitFunc && postInitFuncs.push(postInitFunc);\n  }\n}\nexport function registerPostUpdate(postUpdateFunc) {\n  if (indexOf(postUpdateFuncs, postUpdateFunc) < 0) {\n    postUpdateFunc && postUpdateFuncs.push(postUpdateFunc);\n  }\n}\nexport function registerAction(actionInfo, eventName, action) {\n  if (typeof eventName === 'function') {\n    action = eventName;\n    eventName = '';\n  }\n\n  var actionType = isObject(actionInfo) ? actionInfo.type : [actionInfo, actionInfo = {\n    event: eventName\n  }][0];\n  actionInfo.event = (actionInfo.event || actionType).toLowerCase();\n  eventName = actionInfo.event;\n\n  if (eventActionMap[eventName]) {\n    return;\n  }\n\n  assert(ACTION_REG.test(actionType) && ACTION_REG.test(eventName));\n\n  if (!actions[actionType]) {\n    actions[actionType] = {\n      action: action,\n      actionInfo: actionInfo\n    };\n  }\n\n  eventActionMap[eventName] = actionType;\n}\nexport function registerCoordinateSystem(type, coordSysCreator) {\n  CoordinateSystemManager.register(type, coordSysCreator);\n}\nexport function getCoordinateSystemDimensions(type) {\n  var coordSysCreator = CoordinateSystemManager.get(type);\n\n  if (coordSysCreator) {\n    return coordSysCreator.getDimensionsInfo ? coordSysCreator.getDimensionsInfo() : coordSysCreator.dimensions.slice();\n  }\n}\nexport { registerLocale } from './locale';\n\nfunction registerLayout(priority, layoutTask) {\n  normalizeRegister(visualFuncs, priority, layoutTask, PRIORITY_VISUAL_LAYOUT, 'layout');\n}\n\nfunction registerVisual(priority, visualTask) {\n  normalizeRegister(visualFuncs, priority, visualTask, PRIORITY_VISUAL_CHART, 'visual');\n}\n\nexport { registerLayout, registerVisual };\nvar registeredTasks = [];\n\nfunction normalizeRegister(targetList, priority, fn, defaultPriority, visualType) {\n  if (isFunction(priority) || isObject(priority)) {\n    fn = priority;\n    priority = defaultPriority;\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (isNaN(priority) || priority == null) {\n      throw new Error('Illegal priority');\n    }\n\n    each(targetList, function (wrap) {\n      assert(wrap.__raw !== fn);\n    });\n  }\n\n  if (indexOf(registeredTasks, fn) >= 0) {\n    return;\n  }\n\n  registeredTasks.push(fn);\n  var stageHandler = Scheduler.wrapStageHandler(fn, visualType);\n  stageHandler.__prio = priority;\n  stageHandler.__raw = fn;\n  targetList.push(stageHandler);\n}\n\nexport function registerLoading(name, loadingFx) {\n  loadingEffects[name] = loadingFx;\n}\nexport function setCanvasCreator(creator) {\n  zrUtil.$override('createCanvas', creator);\n}\nexport function registerMap(mapName, geoJson, specialAreas) {\n  mapDataStorage.registerMap(mapName, geoJson, specialAreas);\n}\nexport function getMap(mapName) {\n  var records = mapDataStorage.retrieveMap(mapName);\n  return records && records[0] && {\n    geoJson: records[0].geoJSON,\n    specialAreas: records[0].specialAreas\n  };\n}\nexport var registerTransform = registerExternalTransform;\nregisterVisual(PRIORITY_VISUAL_GLOBAL, seriesStyleTask);\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataStyleTask);\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataColorPaletteTask);\nregisterVisual(PRIORITY_VISUAL_GLOBAL, seriesSymbolTask);\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataSymbolTask);\nregisterVisual(PRIORITY_VISUAL_DECAL, decal);\nregisterPreprocessor(backwardCompat);\nregisterProcessor(PRIORITY_PROCESSOR_DATASTACK, dataStack);\nregisterLoading('default', loadingDefault);\nregisterAction({\n  type: HIGHLIGHT_ACTION_TYPE,\n  event: HIGHLIGHT_ACTION_TYPE,\n  update: HIGHLIGHT_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n  type: DOWNPLAY_ACTION_TYPE,\n  event: DOWNPLAY_ACTION_TYPE,\n  update: DOWNPLAY_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n  type: SELECT_ACTION_TYPE,\n  event: SELECT_ACTION_TYPE,\n  update: SELECT_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n  type: UNSELECT_ACTION_TYPE,\n  event: UNSELECT_ACTION_TYPE,\n  update: UNSELECT_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n  type: TOGGLE_SELECT_ACTION_TYPE,\n  event: TOGGLE_SELECT_ACTION_TYPE,\n  update: TOGGLE_SELECT_ACTION_TYPE\n}, zrUtil.noop);\nregisterTheme('light', lightTheme);\nregisterTheme('dark', darkTheme);\nexport var dataTool = {};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { registerPreprocessor, registerProcessor, registerPostInit, registerPostUpdate, registerAction, registerCoordinateSystem, registerLayout, registerVisual, registerTransform, registerLoading, registerMap, PRIORITY } from './core/echarts';\nimport ComponentView from './view/Component';\nimport ChartView from './view/Chart';\nimport ComponentModel from './model/Component';\nimport SeriesModel from './model/Series';\nimport { isFunction, indexOf, isArray, each } from 'zrender/lib/core/util';\nimport { registerPainter } from 'zrender/lib/zrender';\nvar extensions = [];\nvar extensionRegisters = {\n  registerPreprocessor: registerPreprocessor,\n  registerProcessor: registerProcessor,\n  registerPostInit: registerPostInit,\n  registerPostUpdate: registerPostUpdate,\n  registerAction: registerAction,\n  registerCoordinateSystem: registerCoordinateSystem,\n  registerLayout: registerLayout,\n  registerVisual: registerVisual,\n  registerTransform: registerTransform,\n  registerLoading: registerLoading,\n  registerMap: registerMap,\n  PRIORITY: PRIORITY,\n  ComponentModel: ComponentModel,\n  ComponentView: ComponentView,\n  SeriesModel: SeriesModel,\n  ChartView: ChartView,\n  registerComponentModel: function (ComponentModelClass) {\n    ComponentModel.registerClass(ComponentModelClass);\n  },\n  registerComponentView: function (ComponentViewClass) {\n    ComponentView.registerClass(ComponentViewClass);\n  },\n  registerSeriesModel: function (SeriesModelClass) {\n    SeriesModel.registerClass(SeriesModelClass);\n  },\n  registerChartView: function (ChartViewClass) {\n    ChartView.registerClass(ChartViewClass);\n  },\n  registerSubTypeDefaulter: function (componentType, defaulter) {\n    ComponentModel.registerSubTypeDefaulter(componentType, defaulter);\n  },\n  registerPainter: function (painterType, PainterCtor) {\n    registerPainter(painterType, PainterCtor);\n  }\n};\nexport function use(ext) {\n  if (isArray(ext)) {\n    each(ext, function (singleExt) {\n      use(singleExt);\n    });\n    return;\n  }\n\n  if (indexOf(extensions, ext) >= 0) {\n    return;\n  }\n\n  extensions.push(ext);\n\n  if (isFunction(ext)) {\n    ext = {\n      install: ext\n    };\n  }\n\n  ext.install(extensionRegisters);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nfunction dataIndexMapValueLength(valNumOrArrLengthMoreThan2) {\n  return valNumOrArrLengthMoreThan2 == null ? 0 : valNumOrArrLengthMoreThan2.length || 1;\n}\n\nfunction defaultKeyGetter(item) {\n  return item;\n}\n\nvar DataDiffer = function () {\n  function DataDiffer(oldArr, newArr, oldKeyGetter, newKeyGetter, context, diffMode) {\n    this._old = oldArr;\n    this._new = newArr;\n    this._oldKeyGetter = oldKeyGetter || defaultKeyGetter;\n    this._newKeyGetter = newKeyGetter || defaultKeyGetter;\n    this.context = context;\n    this._diffModeMultiple = diffMode === 'multiple';\n  }\n\n  DataDiffer.prototype.add = function (func) {\n    this._add = func;\n    return this;\n  };\n\n  DataDiffer.prototype.update = function (func) {\n    this._update = func;\n    return this;\n  };\n\n  DataDiffer.prototype.updateManyToOne = function (func) {\n    this._updateManyToOne = func;\n    return this;\n  };\n\n  DataDiffer.prototype.updateOneToMany = function (func) {\n    this._updateOneToMany = func;\n    return this;\n  };\n\n  DataDiffer.prototype.remove = function (func) {\n    this._remove = func;\n    return this;\n  };\n\n  DataDiffer.prototype.execute = function () {\n    this[this._diffModeMultiple ? '_executeMultiple' : '_executeOneToOne']();\n  };\n\n  DataDiffer.prototype._executeOneToOne = function () {\n    var oldArr = this._old;\n    var newArr = this._new;\n    var newDataIndexMap = {};\n    var oldDataKeyArr = new Array(oldArr.length);\n    var newDataKeyArr = new Array(newArr.length);\n\n    this._initIndexMap(oldArr, null, oldDataKeyArr, '_oldKeyGetter');\n\n    this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, '_newKeyGetter');\n\n    for (var i = 0; i < oldArr.length; i++) {\n      var oldKey = oldDataKeyArr[i];\n      var newIdxMapVal = newDataIndexMap[oldKey];\n      var newIdxMapValLen = dataIndexMapValueLength(newIdxMapVal);\n\n      if (newIdxMapValLen > 1) {\n        var newIdx = newIdxMapVal.shift();\n\n        if (newIdxMapVal.length === 1) {\n          newDataIndexMap[oldKey] = newIdxMapVal[0];\n        }\n\n        this._update && this._update(newIdx, i);\n      } else if (newIdxMapValLen === 1) {\n        newDataIndexMap[oldKey] = null;\n        this._update && this._update(newIdxMapVal, i);\n      } else {\n        this._remove && this._remove(i);\n      }\n    }\n\n    this._performRestAdd(newDataKeyArr, newDataIndexMap);\n  };\n\n  DataDiffer.prototype._executeMultiple = function () {\n    var oldArr = this._old;\n    var newArr = this._new;\n    var oldDataIndexMap = {};\n    var newDataIndexMap = {};\n    var oldDataKeyArr = [];\n    var newDataKeyArr = [];\n\n    this._initIndexMap(oldArr, oldDataIndexMap, oldDataKeyArr, '_oldKeyGetter');\n\n    this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, '_newKeyGetter');\n\n    for (var i = 0; i < oldDataKeyArr.length; i++) {\n      var oldKey = oldDataKeyArr[i];\n      var oldIdxMapVal = oldDataIndexMap[oldKey];\n      var newIdxMapVal = newDataIndexMap[oldKey];\n      var oldIdxMapValLen = dataIndexMapValueLength(oldIdxMapVal);\n      var newIdxMapValLen = dataIndexMapValueLength(newIdxMapVal);\n\n      if (oldIdxMapValLen > 1 && newIdxMapValLen === 1) {\n        this._updateManyToOne && this._updateManyToOne(newIdxMapVal, oldIdxMapVal);\n        newDataIndexMap[oldKey] = null;\n      } else if (oldIdxMapValLen === 1 && newIdxMapValLen > 1) {\n        this._updateOneToMany && this._updateOneToMany(newIdxMapVal, oldIdxMapVal);\n        newDataIndexMap[oldKey] = null;\n      } else if (oldIdxMapValLen === 1 && newIdxMapValLen === 1) {\n        this._update && this._update(newIdxMapVal, oldIdxMapVal);\n        newDataIndexMap[oldKey] = null;\n      } else if (oldIdxMapValLen > 1) {\n        for (var i_1 = 0; i_1 < oldIdxMapValLen; i_1++) {\n          this._remove && this._remove(oldIdxMapVal[i_1]);\n        }\n      } else {\n        this._remove && this._remove(oldIdxMapVal);\n      }\n    }\n\n    this._performRestAdd(newDataKeyArr, newDataIndexMap);\n  };\n\n  DataDiffer.prototype._performRestAdd = function (newDataKeyArr, newDataIndexMap) {\n    for (var i = 0; i < newDataKeyArr.length; i++) {\n      var newKey = newDataKeyArr[i];\n      var newIdxMapVal = newDataIndexMap[newKey];\n      var idxMapValLen = dataIndexMapValueLength(newIdxMapVal);\n\n      if (idxMapValLen > 1) {\n        for (var j = 0; j < idxMapValLen; j++) {\n          this._add && this._add(newIdxMapVal[j]);\n        }\n      } else if (idxMapValLen === 1) {\n        this._add && this._add(newIdxMapVal);\n      }\n\n      newDataIndexMap[newKey] = null;\n    }\n  };\n\n  DataDiffer.prototype._initIndexMap = function (arr, map, keyArr, keyGetterName) {\n    var cbModeMultiple = this._diffModeMultiple;\n\n    for (var i = 0; i < arr.length; i++) {\n      var key = '_ec_' + this[keyGetterName](arr[i], i);\n\n      if (!cbModeMultiple) {\n        keyArr[i] = key;\n      }\n\n      if (!map) {\n        continue;\n      }\n\n      var idxMapVal = map[key];\n      var idxMapValLen = dataIndexMapValueLength(idxMapVal);\n\n      if (idxMapValLen === 0) {\n        map[key] = i;\n\n        if (cbModeMultiple) {\n          keyArr.push(key);\n        }\n      } else if (idxMapValLen === 1) {\n        map[key] = [idxMapVal, i];\n      } else {\n        idxMapVal.push(i);\n      }\n    }\n  };\n\n  return DataDiffer;\n}();\n\nexport default DataDiffer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, createHashMap, assert } from 'zrender/lib/core/util';\nimport { VISUAL_DIMENSIONS } from '../../util/types';\nexport function summarizeDimensions(data) {\n  var summary = {};\n  var encode = summary.encode = {};\n  var notExtraCoordDimMap = createHashMap();\n  var defaultedLabel = [];\n  var defaultedTooltip = [];\n  var userOutput = summary.userOutput = {\n    dimensionNames: data.dimensions.slice(),\n    encode: {}\n  };\n  each(data.dimensions, function (dimName) {\n    var dimItem = data.getDimensionInfo(dimName);\n    var coordDim = dimItem.coordDim;\n\n    if (coordDim) {\n      if (process.env.NODE_ENV !== 'production') {\n        assert(VISUAL_DIMENSIONS.get(coordDim) == null);\n      }\n\n      var coordDimIndex = dimItem.coordDimIndex;\n      getOrCreateEncodeArr(encode, coordDim)[coordDimIndex] = dimName;\n\n      if (!dimItem.isExtraCoord) {\n        notExtraCoordDimMap.set(coordDim, 1);\n\n        if (mayLabelDimType(dimItem.type)) {\n          defaultedLabel[0] = dimName;\n        }\n\n        getOrCreateEncodeArr(userOutput.encode, coordDim)[coordDimIndex] = dimItem.index;\n      }\n\n      if (dimItem.defaultTooltip) {\n        defaultedTooltip.push(dimName);\n      }\n    }\n\n    VISUAL_DIMENSIONS.each(function (v, otherDim) {\n      var encodeArr = getOrCreateEncodeArr(encode, otherDim);\n      var dimIndex = dimItem.otherDims[otherDim];\n\n      if (dimIndex != null && dimIndex !== false) {\n        encodeArr[dimIndex] = dimItem.name;\n      }\n    });\n  });\n  var dataDimsOnCoord = [];\n  var encodeFirstDimNotExtra = {};\n  notExtraCoordDimMap.each(function (v, coordDim) {\n    var dimArr = encode[coordDim];\n    encodeFirstDimNotExtra[coordDim] = dimArr[0];\n    dataDimsOnCoord = dataDimsOnCoord.concat(dimArr);\n  });\n  summary.dataDimsOnCoord = dataDimsOnCoord;\n  summary.encodeFirstDimNotExtra = encodeFirstDimNotExtra;\n  var encodeLabel = encode.label;\n\n  if (encodeLabel && encodeLabel.length) {\n    defaultedLabel = encodeLabel.slice();\n  }\n\n  var encodeTooltip = encode.tooltip;\n\n  if (encodeTooltip && encodeTooltip.length) {\n    defaultedTooltip = encodeTooltip.slice();\n  } else if (!defaultedTooltip.length) {\n    defaultedTooltip = defaultedLabel.slice();\n  }\n\n  encode.defaultedLabel = defaultedLabel;\n  encode.defaultedTooltip = defaultedTooltip;\n  return summary;\n}\n\nfunction getOrCreateEncodeArr(encode, dim) {\n  if (!encode.hasOwnProperty(dim)) {\n    encode[dim] = [];\n  }\n\n  return encode[dim];\n}\n\nexport function getDimensionTypeByAxis(axisType) {\n  return axisType === 'category' ? 'ordinal' : axisType === 'time' ? 'time' : 'float';\n}\n\nfunction mayLabelDimType(dimType) {\n  return !(dimType === 'ordinal' || dimType === 'time');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nvar DataDimensionInfo = function () {\n  function DataDimensionInfo(opt) {\n    this.otherDims = {};\n\n    if (opt != null) {\n      zrUtil.extend(this, opt);\n    }\n  }\n\n  return DataDimensionInfo;\n}();\n\n;\nexport default DataDimensionInfo;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Model from '../model/Model';\nimport DataDiffer from './DataDiffer';\nimport { DefaultDataProvider } from './helper/dataProvider';\nimport { summarizeDimensions } from './helper/dimensionHelper';\nimport DataDimensionInfo from './DataDimensionInfo';\nimport { SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ORIGINAL } from '../util/types';\nimport { isDataItemOption, convertOptionIdName } from '../util/model';\nimport { getECData } from '../util/innerStore';\nimport { parseDataValue } from './helper/dataValueHelper';\nimport { isSourceInstance } from './Source';\nvar mathFloor = Math.floor;\nvar isObject = zrUtil.isObject;\nvar map = zrUtil.map;\nvar UNDEFINED = 'undefined';\nvar INDEX_NOT_FOUND = -1;\nvar ID_PREFIX = 'e\\0\\0';\nvar dataCtors = {\n  'float': typeof Float64Array === UNDEFINED ? Array : Float64Array,\n  'int': typeof Int32Array === UNDEFINED ? Array : Int32Array,\n  'ordinal': Array,\n  'number': Array,\n  'time': Array\n};\nvar CtorUint32Array = typeof Uint32Array === UNDEFINED ? Array : Uint32Array;\nvar CtorInt32Array = typeof Int32Array === UNDEFINED ? Array : Int32Array;\nvar CtorUint16Array = typeof Uint16Array === UNDEFINED ? Array : Uint16Array;\nvar TRANSFERABLE_PROPERTIES = ['hasItemOption', '_nameList', '_idList', '_invertedIndicesMap', '_rawData', '_dimValueGetter', '_count', '_rawCount', '_nameDimIdx', '_idDimIdx', '_nameRepeatCount'];\nvar CLONE_PROPERTIES = ['_extent', '_approximateExtent', '_rawExtent'];\nvar defaultDimValueGetters;\nvar prepareInvertedIndex;\nvar getIndicesCtor;\nvar prepareStorage;\nvar getRawIndexWithoutIndices;\nvar getRawIndexWithIndices;\nvar getId;\nvar getIdNameFromStore;\nvar makeIdFromName;\nvar normalizeDimensions;\nvar validateDimensions;\nvar cloneListForMapAndSample;\nvar getInitialExtent;\nvar setItemDataAndSeriesIndex;\nvar transferProperties;\n\nvar List = function () {\n  function List(dimensions, hostModel) {\n    this.type = 'list';\n    this._count = 0;\n    this._rawCount = 0;\n    this._storage = {};\n    this._storageArr = [];\n    this._nameList = [];\n    this._idList = [];\n    this._visual = {};\n    this._layout = {};\n    this._itemVisuals = [];\n    this._itemLayouts = [];\n    this._graphicEls = [];\n    this._rawExtent = {};\n    this._extent = {};\n    this._approximateExtent = {};\n    this._calculationInfo = {};\n    this.hasItemOption = true;\n    this.TRANSFERABLE_METHODS = ['cloneShallow', 'downSample', 'lttbDownSample', 'map'];\n    this.CHANGABLE_METHODS = ['filterSelf', 'selectRange'];\n    this.DOWNSAMPLE_METHODS = ['downSample', 'lttbDownSample'];\n    this.getRawIndex = getRawIndexWithoutIndices;\n    dimensions = dimensions || ['x', 'y'];\n    var dimensionInfos = {};\n    var dimensionNames = [];\n    var invertedIndicesMap = {};\n\n    for (var i = 0; i < dimensions.length; i++) {\n      var dimInfoInput = dimensions[i];\n      var dimensionInfo = zrUtil.isString(dimInfoInput) ? new DataDimensionInfo({\n        name: dimInfoInput\n      }) : !(dimInfoInput instanceof DataDimensionInfo) ? new DataDimensionInfo(dimInfoInput) : dimInfoInput;\n      var dimensionName = dimensionInfo.name;\n      dimensionInfo.type = dimensionInfo.type || 'float';\n\n      if (!dimensionInfo.coordDim) {\n        dimensionInfo.coordDim = dimensionName;\n        dimensionInfo.coordDimIndex = 0;\n      }\n\n      var otherDims = dimensionInfo.otherDims = dimensionInfo.otherDims || {};\n      dimensionNames.push(dimensionName);\n      dimensionInfos[dimensionName] = dimensionInfo;\n      dimensionInfo.index = i;\n\n      if (dimensionInfo.createInvertedIndices) {\n        invertedIndicesMap[dimensionName] = [];\n      }\n\n      if (otherDims.itemName === 0) {\n        this._nameDimIdx = i;\n        this._nameOrdinalMeta = dimensionInfo.ordinalMeta;\n      }\n\n      if (otherDims.itemId === 0) {\n        this._idDimIdx = i;\n        this._idOrdinalMeta = dimensionInfo.ordinalMeta;\n      }\n    }\n\n    this.dimensions = dimensionNames;\n    this._dimensionInfos = dimensionInfos;\n    this.hostModel = hostModel;\n    this._dimensionsSummary = summarizeDimensions(this);\n    this._invertedIndicesMap = invertedIndicesMap;\n    this.userOutput = this._dimensionsSummary.userOutput;\n  }\n\n  List.prototype.getDimension = function (dim) {\n    if (typeof dim === 'number' || !isNaN(dim) && !this._dimensionInfos.hasOwnProperty(dim)) {\n      dim = this.dimensions[dim];\n    }\n\n    return dim;\n  };\n\n  List.prototype.getDimensionInfo = function (dim) {\n    return this._dimensionInfos[this.getDimension(dim)];\n  };\n\n  List.prototype.getDimensionsOnCoord = function () {\n    return this._dimensionsSummary.dataDimsOnCoord.slice();\n  };\n\n  List.prototype.mapDimension = function (coordDim, idx) {\n    var dimensionsSummary = this._dimensionsSummary;\n\n    if (idx == null) {\n      return dimensionsSummary.encodeFirstDimNotExtra[coordDim];\n    }\n\n    var dims = dimensionsSummary.encode[coordDim];\n    return dims ? dims[idx] : null;\n  };\n\n  List.prototype.mapDimensionsAll = function (coordDim) {\n    var dimensionsSummary = this._dimensionsSummary;\n    var dims = dimensionsSummary.encode[coordDim];\n    return (dims || []).slice();\n  };\n\n  List.prototype.initData = function (data, nameList, dimValueGetter) {\n    var notProvider = isSourceInstance(data) || zrUtil.isArrayLike(data);\n    var provider = notProvider ? new DefaultDataProvider(data, this.dimensions.length) : data;\n\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.assert(notProvider || zrUtil.isFunction(provider.getItem) && zrUtil.isFunction(provider.count), 'Inavlid data provider.');\n    }\n\n    this._rawData = provider;\n    var sourceFormat = provider.getSource().sourceFormat;\n    this._storage = {};\n    this._indices = null;\n    this._dontMakeIdFromName = this._idDimIdx != null || sourceFormat === SOURCE_FORMAT_TYPED_ARRAY || !!provider.fillStorage;\n    this._nameList = (nameList || []).slice();\n    this._idList = [];\n    this._nameRepeatCount = {};\n\n    if (!dimValueGetter) {\n      this.hasItemOption = false;\n    }\n\n    this.defaultDimValueGetter = defaultDimValueGetters[sourceFormat];\n    this._dimValueGetter = dimValueGetter = dimValueGetter || this.defaultDimValueGetter;\n    this._dimValueGetterArrayRows = defaultDimValueGetters.arrayRows;\n    this._rawExtent = {};\n\n    this._initDataFromProvider(0, provider.count());\n\n    if (provider.pure) {\n      this.hasItemOption = false;\n    }\n  };\n\n  List.prototype.getProvider = function () {\n    return this._rawData;\n  };\n\n  List.prototype.appendData = function (data) {\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.assert(!this._indices, 'appendData can only be called on raw data.');\n    }\n\n    var rawData = this._rawData;\n    var start = this.count();\n    rawData.appendData(data);\n    var end = rawData.count();\n\n    if (!rawData.persistent) {\n      end += start;\n    }\n\n    this._initDataFromProvider(start, end, true);\n  };\n\n  List.prototype.appendValues = function (values, names) {\n    var storage = this._storage;\n    var dimensions = this.dimensions;\n    var dimLen = dimensions.length;\n    var rawExtent = this._rawExtent;\n    var start = this.count();\n    var end = start + Math.max(values.length, names ? names.length : 0);\n\n    for (var i = 0; i < dimLen; i++) {\n      var dim = dimensions[i];\n\n      if (!rawExtent[dim]) {\n        rawExtent[dim] = getInitialExtent();\n      }\n\n      prepareStorage(storage, this._dimensionInfos[dim], end, true);\n    }\n\n    var rawExtentArr = map(dimensions, function (dim) {\n      return rawExtent[dim];\n    });\n    var storageArr = this._storageArr = map(dimensions, function (dim) {\n      return storage[dim];\n    });\n    var emptyDataItem = [];\n\n    for (var idx = start; idx < end; idx++) {\n      var sourceIdx = idx - start;\n\n      for (var dimIdx = 0; dimIdx < dimLen; dimIdx++) {\n        var dim = dimensions[dimIdx];\n\n        var val = this._dimValueGetterArrayRows(values[sourceIdx] || emptyDataItem, dim, sourceIdx, dimIdx);\n\n        storageArr[dimIdx][idx] = val;\n        var dimRawExtent = rawExtentArr[dimIdx];\n        val < dimRawExtent[0] && (dimRawExtent[0] = val);\n        val > dimRawExtent[1] && (dimRawExtent[1] = val);\n      }\n\n      if (names) {\n        this._nameList[idx] = names[sourceIdx];\n\n        if (!this._dontMakeIdFromName) {\n          makeIdFromName(this, idx);\n        }\n      }\n    }\n\n    this._rawCount = this._count = end;\n    this._extent = {};\n    prepareInvertedIndex(this);\n  };\n\n  List.prototype._initDataFromProvider = function (start, end, append) {\n    if (start >= end) {\n      return;\n    }\n\n    var rawData = this._rawData;\n    var storage = this._storage;\n    var dimensions = this.dimensions;\n    var dimLen = dimensions.length;\n    var dimensionInfoMap = this._dimensionInfos;\n    var nameList = this._nameList;\n    var idList = this._idList;\n    var rawExtent = this._rawExtent;\n    var sourceFormat = rawData.getSource().sourceFormat;\n    var isFormatOriginal = sourceFormat === SOURCE_FORMAT_ORIGINAL;\n\n    for (var i = 0; i < dimLen; i++) {\n      var dim = dimensions[i];\n\n      if (!rawExtent[dim]) {\n        rawExtent[dim] = getInitialExtent();\n      }\n\n      prepareStorage(storage, dimensionInfoMap[dim], end, append);\n    }\n\n    var storageArr = this._storageArr = map(dimensions, function (dim) {\n      return storage[dim];\n    });\n    var rawExtentArr = map(dimensions, function (dim) {\n      return rawExtent[dim];\n    });\n\n    if (rawData.fillStorage) {\n      rawData.fillStorage(start, end, storageArr, rawExtentArr);\n    } else {\n      var dataItem = [];\n\n      for (var idx = start; idx < end; idx++) {\n        dataItem = rawData.getItem(idx, dataItem);\n\n        for (var dimIdx = 0; dimIdx < dimLen; dimIdx++) {\n          var dim = dimensions[dimIdx];\n          var dimStorage = storageArr[dimIdx];\n\n          var val = this._dimValueGetter(dataItem, dim, idx, dimIdx);\n\n          dimStorage[idx] = val;\n          var dimRawExtent = rawExtentArr[dimIdx];\n          val < dimRawExtent[0] && (dimRawExtent[0] = val);\n          val > dimRawExtent[1] && (dimRawExtent[1] = val);\n        }\n\n        if (isFormatOriginal && !rawData.pure && dataItem) {\n          var itemName = dataItem.name;\n\n          if (nameList[idx] == null && itemName != null) {\n            nameList[idx] = convertOptionIdName(itemName, null);\n          }\n\n          var itemId = dataItem.id;\n\n          if (idList[idx] == null && itemId != null) {\n            idList[idx] = convertOptionIdName(itemId, null);\n          }\n        }\n\n        if (!this._dontMakeIdFromName) {\n          makeIdFromName(this, idx);\n        }\n      }\n    }\n\n    if (!rawData.persistent && rawData.clean) {\n      rawData.clean();\n    }\n\n    this._rawCount = this._count = end;\n    this._extent = {};\n    prepareInvertedIndex(this);\n  };\n\n  List.prototype.count = function () {\n    return this._count;\n  };\n\n  List.prototype.getIndices = function () {\n    var newIndices;\n    var indices = this._indices;\n\n    if (indices) {\n      var Ctor = indices.constructor;\n      var thisCount = this._count;\n\n      if (Ctor === Array) {\n        newIndices = new Ctor(thisCount);\n\n        for (var i = 0; i < thisCount; i++) {\n          newIndices[i] = indices[i];\n        }\n      } else {\n        newIndices = new Ctor(indices.buffer, 0, thisCount);\n      }\n    } else {\n      var Ctor = getIndicesCtor(this);\n      newIndices = new Ctor(this.count());\n\n      for (var i = 0; i < newIndices.length; i++) {\n        newIndices[i] = i;\n      }\n    }\n\n    return newIndices;\n  };\n\n  List.prototype.getByDimIdx = function (dimIdx, idx) {\n    if (!(idx >= 0 && idx < this._count)) {\n      return NaN;\n    }\n\n    var dimStore = this._storageArr[dimIdx];\n    return dimStore ? dimStore[this.getRawIndex(idx)] : NaN;\n  };\n\n  List.prototype.get = function (dim, idx) {\n    if (!(idx >= 0 && idx < this._count)) {\n      return NaN;\n    }\n\n    var dimStore = this._storage[dim];\n    return dimStore ? dimStore[this.getRawIndex(idx)] : NaN;\n  };\n\n  List.prototype.getByRawIndex = function (dim, rawIdx) {\n    if (!(rawIdx >= 0 && rawIdx < this._rawCount)) {\n      return NaN;\n    }\n\n    var dimStore = this._storage[dim];\n    return dimStore ? dimStore[rawIdx] : NaN;\n  };\n\n  List.prototype.getValues = function (dimensions, idx) {\n    var values = [];\n\n    if (!zrUtil.isArray(dimensions)) {\n      idx = dimensions;\n      dimensions = this.dimensions;\n    }\n\n    for (var i = 0, len = dimensions.length; i < len; i++) {\n      values.push(this.get(dimensions[i], idx));\n    }\n\n    return values;\n  };\n\n  List.prototype.hasValue = function (idx) {\n    var dataDimsOnCoord = this._dimensionsSummary.dataDimsOnCoord;\n\n    for (var i = 0, len = dataDimsOnCoord.length; i < len; i++) {\n      if (isNaN(this.get(dataDimsOnCoord[i], idx))) {\n        return false;\n      }\n    }\n\n    return true;\n  };\n\n  List.prototype.getDataExtent = function (dim) {\n    dim = this.getDimension(dim);\n    var dimData = this._storage[dim];\n    var initialExtent = getInitialExtent();\n\n    if (!dimData) {\n      return initialExtent;\n    }\n\n    var currEnd = this.count();\n    var useRaw = !this._indices;\n    var dimExtent;\n\n    if (useRaw) {\n      return this._rawExtent[dim].slice();\n    }\n\n    dimExtent = this._extent[dim];\n\n    if (dimExtent) {\n      return dimExtent.slice();\n    }\n\n    dimExtent = initialExtent;\n    var min = dimExtent[0];\n    var max = dimExtent[1];\n\n    for (var i = 0; i < currEnd; i++) {\n      var rawIdx = this.getRawIndex(i);\n      var value = dimData[rawIdx];\n      value < min && (min = value);\n      value > max && (max = value);\n    }\n\n    dimExtent = [min, max];\n    this._extent[dim] = dimExtent;\n    return dimExtent;\n  };\n\n  List.prototype.getApproximateExtent = function (dim) {\n    dim = this.getDimension(dim);\n    return this._approximateExtent[dim] || this.getDataExtent(dim);\n  };\n\n  List.prototype.setApproximateExtent = function (extent, dim) {\n    dim = this.getDimension(dim);\n    this._approximateExtent[dim] = extent.slice();\n  };\n\n  List.prototype.getCalculationInfo = function (key) {\n    return this._calculationInfo[key];\n  };\n\n  List.prototype.setCalculationInfo = function (key, value) {\n    isObject(key) ? zrUtil.extend(this._calculationInfo, key) : this._calculationInfo[key] = value;\n  };\n\n  List.prototype.getSum = function (dim) {\n    var dimData = this._storage[dim];\n    var sum = 0;\n\n    if (dimData) {\n      for (var i = 0, len = this.count(); i < len; i++) {\n        var value = this.get(dim, i);\n\n        if (!isNaN(value)) {\n          sum += value;\n        }\n      }\n    }\n\n    return sum;\n  };\n\n  List.prototype.getMedian = function (dim) {\n    var dimDataArray = [];\n    this.each(dim, function (val) {\n      if (!isNaN(val)) {\n        dimDataArray.push(val);\n      }\n    });\n    var sortedDimDataArray = dimDataArray.sort(function (a, b) {\n      return a - b;\n    });\n    var len = this.count();\n    return len === 0 ? 0 : len % 2 === 1 ? sortedDimDataArray[(len - 1) / 2] : (sortedDimDataArray[len / 2] + sortedDimDataArray[len / 2 - 1]) / 2;\n  };\n\n  List.prototype.rawIndexOf = function (dim, value) {\n    var invertedIndices = dim && this._invertedIndicesMap[dim];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!invertedIndices) {\n        throw new Error('Do not supported yet');\n      }\n    }\n\n    var rawIndex = invertedIndices[value];\n\n    if (rawIndex == null || isNaN(rawIndex)) {\n      return INDEX_NOT_FOUND;\n    }\n\n    return rawIndex;\n  };\n\n  List.prototype.indexOfName = function (name) {\n    for (var i = 0, len = this.count(); i < len; i++) {\n      if (this.getName(i) === name) {\n        return i;\n      }\n    }\n\n    return -1;\n  };\n\n  List.prototype.indexOfRawIndex = function (rawIndex) {\n    if (rawIndex >= this._rawCount || rawIndex < 0) {\n      return -1;\n    }\n\n    if (!this._indices) {\n      return rawIndex;\n    }\n\n    var indices = this._indices;\n    var rawDataIndex = indices[rawIndex];\n\n    if (rawDataIndex != null && rawDataIndex < this._count && rawDataIndex === rawIndex) {\n      return rawIndex;\n    }\n\n    var left = 0;\n    var right = this._count - 1;\n\n    while (left <= right) {\n      var mid = (left + right) / 2 | 0;\n\n      if (indices[mid] < rawIndex) {\n        left = mid + 1;\n      } else if (indices[mid] > rawIndex) {\n        right = mid - 1;\n      } else {\n        return mid;\n      }\n    }\n\n    return -1;\n  };\n\n  List.prototype.indicesOfNearest = function (dim, value, maxDistance) {\n    var storage = this._storage;\n    var dimData = storage[dim];\n    var nearestIndices = [];\n\n    if (!dimData) {\n      return nearestIndices;\n    }\n\n    if (maxDistance == null) {\n      maxDistance = Infinity;\n    }\n\n    var minDist = Infinity;\n    var minDiff = -1;\n    var nearestIndicesLen = 0;\n\n    for (var i = 0, len = this.count(); i < len; i++) {\n      var dataIndex = this.getRawIndex(i);\n      var diff = value - dimData[dataIndex];\n      var dist = Math.abs(diff);\n\n      if (dist <= maxDistance) {\n        if (dist < minDist || dist === minDist && diff >= 0 && minDiff < 0) {\n          minDist = dist;\n          minDiff = diff;\n          nearestIndicesLen = 0;\n        }\n\n        if (diff === minDiff) {\n          nearestIndices[nearestIndicesLen++] = i;\n        }\n      }\n    }\n\n    nearestIndices.length = nearestIndicesLen;\n    return nearestIndices;\n  };\n\n  List.prototype.getRawDataItem = function (idx) {\n    if (!this._rawData.persistent) {\n      var val = [];\n\n      for (var i = 0; i < this.dimensions.length; i++) {\n        var dim = this.dimensions[i];\n        val.push(this.get(dim, idx));\n      }\n\n      return val;\n    } else {\n      return this._rawData.getItem(this.getRawIndex(idx));\n    }\n  };\n\n  List.prototype.getName = function (idx) {\n    var rawIndex = this.getRawIndex(idx);\n    var name = this._nameList[rawIndex];\n\n    if (name == null && this._nameDimIdx != null) {\n      name = getIdNameFromStore(this, this._nameDimIdx, this._nameOrdinalMeta, rawIndex);\n    }\n\n    if (name == null) {\n      name = '';\n    }\n\n    return name;\n  };\n\n  List.prototype.getId = function (idx) {\n    return getId(this, this.getRawIndex(idx));\n  };\n\n  List.prototype.each = function (dims, cb, ctx, ctxCompat) {\n    'use strict';\n\n    var _this = this;\n\n    if (!this._count) {\n      return;\n    }\n\n    if (typeof dims === 'function') {\n      ctxCompat = ctx;\n      ctx = cb;\n      cb = dims;\n      dims = [];\n    }\n\n    var fCtx = ctx || ctxCompat || this;\n    var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\n\n    if (process.env.NODE_ENV !== 'production') {\n      validateDimensions(this, dimNames);\n    }\n\n    var dimSize = dimNames.length;\n    var dimIndices = map(dimNames, function (dimName) {\n      return _this._dimensionInfos[dimName].index;\n    });\n    var storageArr = this._storageArr;\n\n    for (var i = 0, len = this.count(); i < len; i++) {\n      var rawIdx = this.getRawIndex(i);\n\n      switch (dimSize) {\n        case 0:\n          cb.call(fCtx, i);\n          break;\n\n        case 1:\n          cb.call(fCtx, storageArr[dimIndices[0]][rawIdx], i);\n          break;\n\n        case 2:\n          cb.call(fCtx, storageArr[dimIndices[0]][rawIdx], storageArr[dimIndices[1]][rawIdx], i);\n          break;\n\n        default:\n          var k = 0;\n          var value = [];\n\n          for (; k < dimSize; k++) {\n            value[k] = storageArr[dimIndices[k]][rawIdx];\n          }\n\n          value[k] = i;\n          cb.apply(fCtx, value);\n      }\n    }\n  };\n\n  List.prototype.filterSelf = function (dims, cb, ctx, ctxCompat) {\n    'use strict';\n\n    var _this = this;\n\n    if (!this._count) {\n      return;\n    }\n\n    if (typeof dims === 'function') {\n      ctxCompat = ctx;\n      ctx = cb;\n      cb = dims;\n      dims = [];\n    }\n\n    var fCtx = ctx || ctxCompat || this;\n    var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\n\n    if (process.env.NODE_ENV !== 'production') {\n      validateDimensions(this, dimNames);\n    }\n\n    var count = this.count();\n    var Ctor = getIndicesCtor(this);\n    var newIndices = new Ctor(count);\n    var value = [];\n    var dimSize = dimNames.length;\n    var offset = 0;\n    var dimIndices = map(dimNames, function (dimName) {\n      return _this._dimensionInfos[dimName].index;\n    });\n    var dim0 = dimIndices[0];\n    var storageArr = this._storageArr;\n\n    for (var i = 0; i < count; i++) {\n      var keep = void 0;\n      var rawIdx = this.getRawIndex(i);\n\n      if (dimSize === 0) {\n        keep = cb.call(fCtx, i);\n      } else if (dimSize === 1) {\n        var val = storageArr[dim0][rawIdx];\n        keep = cb.call(fCtx, val, i);\n      } else {\n        var k = 0;\n\n        for (; k < dimSize; k++) {\n          value[k] = storageArr[dimIndices[k]][rawIdx];\n        }\n\n        value[k] = i;\n        keep = cb.apply(fCtx, value);\n      }\n\n      if (keep) {\n        newIndices[offset++] = rawIdx;\n      }\n    }\n\n    if (offset < count) {\n      this._indices = newIndices;\n    }\n\n    this._count = offset;\n    this._extent = {};\n    this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n    return this;\n  };\n\n  List.prototype.selectRange = function (range) {\n    'use strict';\n\n    var _this = this;\n\n    var len = this._count;\n\n    if (!len) {\n      return;\n    }\n\n    var dimensions = [];\n\n    for (var dim in range) {\n      if (range.hasOwnProperty(dim)) {\n        dimensions.push(dim);\n      }\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      validateDimensions(this, dimensions);\n    }\n\n    var dimSize = dimensions.length;\n\n    if (!dimSize) {\n      return;\n    }\n\n    var originalCount = this.count();\n    var Ctor = getIndicesCtor(this);\n    var newIndices = new Ctor(originalCount);\n    var offset = 0;\n    var dim0 = dimensions[0];\n    var dimIndices = map(dimensions, function (dimName) {\n      return _this._dimensionInfos[dimName].index;\n    });\n    var min = range[dim0][0];\n    var max = range[dim0][1];\n    var storageArr = this._storageArr;\n    var quickFinished = false;\n\n    if (!this._indices) {\n      var idx = 0;\n\n      if (dimSize === 1) {\n        var dimStorage = storageArr[dimIndices[0]];\n\n        for (var i = 0; i < len; i++) {\n          var val = dimStorage[i];\n\n          if (val >= min && val <= max || isNaN(val)) {\n            newIndices[offset++] = idx;\n          }\n\n          idx++;\n        }\n\n        quickFinished = true;\n      } else if (dimSize === 2) {\n        var dimStorage = storageArr[dimIndices[0]];\n        var dimStorage2 = storageArr[dimIndices[1]];\n        var min2 = range[dimensions[1]][0];\n        var max2 = range[dimensions[1]][1];\n\n        for (var i = 0; i < len; i++) {\n          var val = dimStorage[i];\n          var val2 = dimStorage2[i];\n\n          if ((val >= min && val <= max || isNaN(val)) && (val2 >= min2 && val2 <= max2 || isNaN(val2))) {\n            newIndices[offset++] = idx;\n          }\n\n          idx++;\n        }\n\n        quickFinished = true;\n      }\n    }\n\n    if (!quickFinished) {\n      if (dimSize === 1) {\n        for (var i = 0; i < originalCount; i++) {\n          var rawIndex = this.getRawIndex(i);\n          var val = storageArr[dimIndices[0]][rawIndex];\n\n          if (val >= min && val <= max || isNaN(val)) {\n            newIndices[offset++] = rawIndex;\n          }\n        }\n      } else {\n        for (var i = 0; i < originalCount; i++) {\n          var keep = true;\n          var rawIndex = this.getRawIndex(i);\n\n          for (var k = 0; k < dimSize; k++) {\n            var dimk = dimensions[k];\n            var val = storageArr[dimIndices[k]][rawIndex];\n\n            if (val < range[dimk][0] || val > range[dimk][1]) {\n              keep = false;\n            }\n          }\n\n          if (keep) {\n            newIndices[offset++] = this.getRawIndex(i);\n          }\n        }\n      }\n    }\n\n    if (offset < originalCount) {\n      this._indices = newIndices;\n    }\n\n    this._count = offset;\n    this._extent = {};\n    this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n    return this;\n  };\n\n  List.prototype.mapArray = function (dims, cb, ctx, ctxCompat) {\n    'use strict';\n\n    if (typeof dims === 'function') {\n      ctxCompat = ctx;\n      ctx = cb;\n      cb = dims;\n      dims = [];\n    }\n\n    ctx = ctx || ctxCompat || this;\n    var result = [];\n    this.each(dims, function () {\n      result.push(cb && cb.apply(this, arguments));\n    }, ctx);\n    return result;\n  };\n\n  List.prototype.map = function (dims, cb, ctx, ctxCompat) {\n    'use strict';\n\n    var fCtx = ctx || ctxCompat || this;\n    var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\n\n    if (process.env.NODE_ENV !== 'production') {\n      validateDimensions(this, dimNames);\n    }\n\n    var list = cloneListForMapAndSample(this, dimNames);\n    var storage = list._storage;\n    list._indices = this._indices;\n    list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n    var tmpRetValue = [];\n    var dimSize = dimNames.length;\n    var dataCount = this.count();\n    var values = [];\n    var rawExtent = list._rawExtent;\n\n    for (var dataIndex = 0; dataIndex < dataCount; dataIndex++) {\n      for (var dimIndex = 0; dimIndex < dimSize; dimIndex++) {\n        values[dimIndex] = this.get(dimNames[dimIndex], dataIndex);\n      }\n\n      values[dimSize] = dataIndex;\n      var retValue = cb && cb.apply(fCtx, values);\n\n      if (retValue != null) {\n        if (typeof retValue !== 'object') {\n          tmpRetValue[0] = retValue;\n          retValue = tmpRetValue;\n        }\n\n        var rawIndex = this.getRawIndex(dataIndex);\n\n        for (var i = 0; i < retValue.length; i++) {\n          var dim = dimNames[i];\n          var val = retValue[i];\n          var rawExtentOnDim = rawExtent[dim];\n          var dimStore = storage[dim];\n\n          if (dimStore) {\n            dimStore[rawIndex] = val;\n          }\n\n          if (val < rawExtentOnDim[0]) {\n            rawExtentOnDim[0] = val;\n          }\n\n          if (val > rawExtentOnDim[1]) {\n            rawExtentOnDim[1] = val;\n          }\n        }\n      }\n    }\n\n    return list;\n  };\n\n  List.prototype.downSample = function (dimension, rate, sampleValue, sampleIndex) {\n    var list = cloneListForMapAndSample(this, [dimension]);\n    var targetStorage = list._storage;\n    var frameValues = [];\n    var frameSize = mathFloor(1 / rate);\n    var dimStore = targetStorage[dimension];\n    var len = this.count();\n    var rawExtentOnDim = list._rawExtent[dimension];\n    var newIndices = new (getIndicesCtor(this))(len);\n    var offset = 0;\n\n    for (var i = 0; i < len; i += frameSize) {\n      if (frameSize > len - i) {\n        frameSize = len - i;\n        frameValues.length = frameSize;\n      }\n\n      for (var k = 0; k < frameSize; k++) {\n        var dataIdx = this.getRawIndex(i + k);\n        frameValues[k] = dimStore[dataIdx];\n      }\n\n      var value = sampleValue(frameValues);\n      var sampleFrameIdx = this.getRawIndex(Math.min(i + sampleIndex(frameValues, value) || 0, len - 1));\n      dimStore[sampleFrameIdx] = value;\n\n      if (value < rawExtentOnDim[0]) {\n        rawExtentOnDim[0] = value;\n      }\n\n      if (value > rawExtentOnDim[1]) {\n        rawExtentOnDim[1] = value;\n      }\n\n      newIndices[offset++] = sampleFrameIdx;\n    }\n\n    list._count = offset;\n    list._indices = newIndices;\n    list.getRawIndex = getRawIndexWithIndices;\n    return list;\n  };\n\n  List.prototype.lttbDownSample = function (valueDimension, rate) {\n    var list = cloneListForMapAndSample(this, []);\n    var targetStorage = list._storage;\n    var dimStore = targetStorage[valueDimension];\n    var len = this.count();\n    var newIndices = new (getIndicesCtor(this))(len);\n    var sampledIndex = 0;\n    var frameSize = mathFloor(1 / rate);\n    var currentRawIndex = this.getRawIndex(0);\n    var maxArea;\n    var area;\n    var nextRawIndex;\n    newIndices[sampledIndex++] = currentRawIndex;\n\n    for (var i = 1; i < len - 1; i += frameSize) {\n      var nextFrameStart = Math.min(i + frameSize, len - 1);\n      var nextFrameEnd = Math.min(i + frameSize * 2, len);\n      var avgX = (nextFrameEnd + nextFrameStart) / 2;\n      var avgY = 0;\n\n      for (var idx = nextFrameStart; idx < nextFrameEnd; idx++) {\n        var rawIndex = this.getRawIndex(idx);\n        var y = dimStore[rawIndex];\n\n        if (isNaN(y)) {\n          continue;\n        }\n\n        avgY += y;\n      }\n\n      avgY /= nextFrameEnd - nextFrameStart;\n      var frameStart = i;\n      var frameEnd = Math.min(i + frameSize, len);\n      var pointAX = i - 1;\n      var pointAY = dimStore[currentRawIndex];\n      maxArea = -1;\n      nextRawIndex = frameStart;\n\n      for (var idx = frameStart; idx < frameEnd; idx++) {\n        var rawIndex = this.getRawIndex(idx);\n        var y = dimStore[rawIndex];\n\n        if (isNaN(y)) {\n          continue;\n        }\n\n        area = Math.abs((pointAX - avgX) * (y - pointAY) - (pointAX - idx) * (avgY - pointAY));\n\n        if (area > maxArea) {\n          maxArea = area;\n          nextRawIndex = rawIndex;\n        }\n      }\n\n      newIndices[sampledIndex++] = nextRawIndex;\n      currentRawIndex = nextRawIndex;\n    }\n\n    newIndices[sampledIndex++] = this.getRawIndex(len - 1);\n    list._count = sampledIndex;\n    list._indices = newIndices;\n    list.getRawIndex = getRawIndexWithIndices;\n    return list;\n  };\n\n  List.prototype.getItemModel = function (idx) {\n    var hostModel = this.hostModel;\n    var dataItem = this.getRawDataItem(idx);\n    return new Model(dataItem, hostModel, hostModel && hostModel.ecModel);\n  };\n\n  List.prototype.diff = function (otherList) {\n    var thisList = this;\n    return new DataDiffer(otherList ? otherList.getIndices() : [], this.getIndices(), function (idx) {\n      return getId(otherList, idx);\n    }, function (idx) {\n      return getId(thisList, idx);\n    });\n  };\n\n  List.prototype.getVisual = function (key) {\n    var visual = this._visual;\n    return visual && visual[key];\n  };\n\n  List.prototype.setVisual = function (kvObj, val) {\n    this._visual = this._visual || {};\n\n    if (isObject(kvObj)) {\n      zrUtil.extend(this._visual, kvObj);\n    } else {\n      this._visual[kvObj] = val;\n    }\n  };\n\n  List.prototype.getItemVisual = function (idx, key) {\n    var itemVisual = this._itemVisuals[idx];\n    var val = itemVisual && itemVisual[key];\n\n    if (val == null) {\n      return this.getVisual(key);\n    }\n\n    return val;\n  };\n\n  List.prototype.hasItemVisual = function () {\n    return this._itemVisuals.length > 0;\n  };\n\n  List.prototype.ensureUniqueItemVisual = function (idx, key) {\n    var itemVisuals = this._itemVisuals;\n    var itemVisual = itemVisuals[idx];\n\n    if (!itemVisual) {\n      itemVisual = itemVisuals[idx] = {};\n    }\n\n    var val = itemVisual[key];\n\n    if (val == null) {\n      val = this.getVisual(key);\n\n      if (zrUtil.isArray(val)) {\n        val = val.slice();\n      } else if (isObject(val)) {\n        val = zrUtil.extend({}, val);\n      }\n\n      itemVisual[key] = val;\n    }\n\n    return val;\n  };\n\n  List.prototype.setItemVisual = function (idx, key, value) {\n    var itemVisual = this._itemVisuals[idx] || {};\n    this._itemVisuals[idx] = itemVisual;\n\n    if (isObject(key)) {\n      zrUtil.extend(itemVisual, key);\n    } else {\n      itemVisual[key] = value;\n    }\n  };\n\n  List.prototype.clearAllVisual = function () {\n    this._visual = {};\n    this._itemVisuals = [];\n  };\n\n  List.prototype.setLayout = function (key, val) {\n    if (isObject(key)) {\n      for (var name_1 in key) {\n        if (key.hasOwnProperty(name_1)) {\n          this.setLayout(name_1, key[name_1]);\n        }\n      }\n\n      return;\n    }\n\n    this._layout[key] = val;\n  };\n\n  List.prototype.getLayout = function (key) {\n    return this._layout[key];\n  };\n\n  List.prototype.getItemLayout = function (idx) {\n    return this._itemLayouts[idx];\n  };\n\n  List.prototype.setItemLayout = function (idx, layout, merge) {\n    this._itemLayouts[idx] = merge ? zrUtil.extend(this._itemLayouts[idx] || {}, layout) : layout;\n  };\n\n  List.prototype.clearItemLayouts = function () {\n    this._itemLayouts.length = 0;\n  };\n\n  List.prototype.setItemGraphicEl = function (idx, el) {\n    var hostModel = this.hostModel;\n\n    if (el) {\n      var ecData = getECData(el);\n      ecData.dataIndex = idx;\n      ecData.dataType = this.dataType;\n      ecData.seriesIndex = hostModel && hostModel.seriesIndex;\n\n      if (el.type === 'group') {\n        el.traverse(setItemDataAndSeriesIndex, el);\n      }\n    }\n\n    this._graphicEls[idx] = el;\n  };\n\n  List.prototype.getItemGraphicEl = function (idx) {\n    return this._graphicEls[idx];\n  };\n\n  List.prototype.eachItemGraphicEl = function (cb, context) {\n    zrUtil.each(this._graphicEls, function (el, idx) {\n      if (el) {\n        cb && cb.call(context, el, idx);\n      }\n    });\n  };\n\n  List.prototype.cloneShallow = function (list) {\n    if (!list) {\n      var dimensionInfoList = map(this.dimensions, this.getDimensionInfo, this);\n      list = new List(dimensionInfoList, this.hostModel);\n    }\n\n    list._storage = this._storage;\n    list._storageArr = this._storageArr;\n    transferProperties(list, this);\n\n    if (this._indices) {\n      var Ctor = this._indices.constructor;\n\n      if (Ctor === Array) {\n        var thisCount = this._indices.length;\n        list._indices = new Ctor(thisCount);\n\n        for (var i = 0; i < thisCount; i++) {\n          list._indices[i] = this._indices[i];\n        }\n      } else {\n        list._indices = new Ctor(this._indices);\n      }\n    } else {\n      list._indices = null;\n    }\n\n    list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n    return list;\n  };\n\n  List.prototype.wrapMethod = function (methodName, injectFunction) {\n    var originalMethod = this[methodName];\n\n    if (typeof originalMethod !== 'function') {\n      return;\n    }\n\n    this.__wrappedMethods = this.__wrappedMethods || [];\n\n    this.__wrappedMethods.push(methodName);\n\n    this[methodName] = function () {\n      var res = originalMethod.apply(this, arguments);\n      return injectFunction.apply(this, [res].concat(zrUtil.slice(arguments)));\n    };\n  };\n\n  List.internalField = function () {\n    defaultDimValueGetters = {\n      arrayRows: getDimValueSimply,\n      objectRows: function (dataItem, dimName, dataIndex, dimIndex) {\n        return parseDataValue(dataItem[dimName], this._dimensionInfos[dimName]);\n      },\n      keyedColumns: getDimValueSimply,\n      original: function (dataItem, dimName, dataIndex, dimIndex) {\n        var value = dataItem && (dataItem.value == null ? dataItem : dataItem.value);\n\n        if (!this._rawData.pure && isDataItemOption(dataItem)) {\n          this.hasItemOption = true;\n        }\n\n        return parseDataValue(value instanceof Array ? value[dimIndex] : value, this._dimensionInfos[dimName]);\n      },\n      typedArray: function (dataItem, dimName, dataIndex, dimIndex) {\n        return dataItem[dimIndex];\n      }\n    };\n\n    function getDimValueSimply(dataItem, dimName, dataIndex, dimIndex) {\n      return parseDataValue(dataItem[dimIndex], this._dimensionInfos[dimName]);\n    }\n\n    prepareInvertedIndex = function (list) {\n      var invertedIndicesMap = list._invertedIndicesMap;\n      zrUtil.each(invertedIndicesMap, function (invertedIndices, dim) {\n        var dimInfo = list._dimensionInfos[dim];\n        var ordinalMeta = dimInfo.ordinalMeta;\n\n        if (ordinalMeta) {\n          invertedIndices = invertedIndicesMap[dim] = new CtorInt32Array(ordinalMeta.categories.length);\n\n          for (var i = 0; i < invertedIndices.length; i++) {\n            invertedIndices[i] = INDEX_NOT_FOUND;\n          }\n\n          for (var i = 0; i < list._count; i++) {\n            invertedIndices[list.get(dim, i)] = i;\n          }\n        }\n      });\n    };\n\n    getIdNameFromStore = function (list, dimIdx, ordinalMeta, rawIndex) {\n      var val;\n      var chunk = list._storageArr[dimIdx];\n\n      if (chunk) {\n        val = chunk[rawIndex];\n\n        if (ordinalMeta && ordinalMeta.categories.length) {\n          val = ordinalMeta.categories[val];\n        }\n      }\n\n      return convertOptionIdName(val, null);\n    };\n\n    getIndicesCtor = function (list) {\n      return list._rawCount > 65535 ? CtorUint32Array : CtorUint16Array;\n    };\n\n    prepareStorage = function (storage, dimInfo, end, append) {\n      var DataCtor = dataCtors[dimInfo.type];\n      var dim = dimInfo.name;\n\n      if (append) {\n        var oldStore = storage[dim];\n        var oldLen = oldStore && oldStore.length;\n\n        if (!(oldLen === end)) {\n          var newStore = new DataCtor(end);\n\n          for (var j = 0; j < oldLen; j++) {\n            newStore[j] = oldStore[j];\n          }\n\n          storage[dim] = newStore;\n        }\n      } else {\n        storage[dim] = new DataCtor(end);\n      }\n    };\n\n    getRawIndexWithoutIndices = function (idx) {\n      return idx;\n    };\n\n    getRawIndexWithIndices = function (idx) {\n      if (idx < this._count && idx >= 0) {\n        return this._indices[idx];\n      }\n\n      return -1;\n    };\n\n    getId = function (list, rawIndex) {\n      var id = list._idList[rawIndex];\n\n      if (id == null && list._idDimIdx != null) {\n        id = getIdNameFromStore(list, list._idDimIdx, list._idOrdinalMeta, rawIndex);\n      }\n\n      if (id == null) {\n        id = ID_PREFIX + rawIndex;\n      }\n\n      return id;\n    };\n\n    normalizeDimensions = function (dimensions) {\n      if (!zrUtil.isArray(dimensions)) {\n        dimensions = dimensions != null ? [dimensions] : [];\n      }\n\n      return dimensions;\n    };\n\n    validateDimensions = function (list, dims) {\n      for (var i = 0; i < dims.length; i++) {\n        if (!list._dimensionInfos[dims[i]]) {\n          console.error('Unkown dimension ' + dims[i]);\n        }\n      }\n    };\n\n    cloneListForMapAndSample = function (original, excludeDimensions) {\n      var allDimensions = original.dimensions;\n      var list = new List(map(allDimensions, original.getDimensionInfo, original), original.hostModel);\n      transferProperties(list, original);\n      var storage = list._storage = {};\n      var originalStorage = original._storage;\n      var storageArr = list._storageArr = [];\n\n      for (var i = 0; i < allDimensions.length; i++) {\n        var dim = allDimensions[i];\n\n        if (originalStorage[dim]) {\n          if (zrUtil.indexOf(excludeDimensions, dim) >= 0) {\n            storage[dim] = cloneChunk(originalStorage[dim]);\n            list._rawExtent[dim] = getInitialExtent();\n            list._extent[dim] = null;\n          } else {\n            storage[dim] = originalStorage[dim];\n          }\n\n          storageArr.push(storage[dim]);\n        }\n      }\n\n      return list;\n    };\n\n    function cloneChunk(originalChunk) {\n      var Ctor = originalChunk.constructor;\n      return Ctor === Array ? originalChunk.slice() : new Ctor(originalChunk);\n    }\n\n    getInitialExtent = function () {\n      return [Infinity, -Infinity];\n    };\n\n    setItemDataAndSeriesIndex = function (child) {\n      var childECData = getECData(child);\n      var thisECData = getECData(this);\n      childECData.seriesIndex = thisECData.seriesIndex;\n      childECData.dataIndex = thisECData.dataIndex;\n      childECData.dataType = thisECData.dataType;\n    };\n\n    transferProperties = function (target, source) {\n      zrUtil.each(TRANSFERABLE_PROPERTIES.concat(source.__wrappedMethods || []), function (propName) {\n        if (source.hasOwnProperty(propName)) {\n          target[propName] = source[propName];\n        }\n      });\n      target.__wrappedMethods = source.__wrappedMethods;\n      zrUtil.each(CLONE_PROPERTIES, function (propName) {\n        target[propName] = zrUtil.clone(source[propName]);\n      });\n      target._calculationInfo = zrUtil.extend({}, source._calculationInfo);\n    };\n\n    makeIdFromName = function (list, idx) {\n      var nameList = list._nameList;\n      var idList = list._idList;\n      var nameDimIdx = list._nameDimIdx;\n      var idDimIdx = list._idDimIdx;\n      var name = nameList[idx];\n      var id = idList[idx];\n\n      if (name == null && nameDimIdx != null) {\n        nameList[idx] = name = getIdNameFromStore(list, nameDimIdx, list._nameOrdinalMeta, idx);\n      }\n\n      if (id == null && idDimIdx != null) {\n        idList[idx] = id = getIdNameFromStore(list, idDimIdx, list._idOrdinalMeta, idx);\n      }\n\n      if (id == null && name != null) {\n        var nameRepeatCount = list._nameRepeatCount;\n        var nmCnt = nameRepeatCount[name] = (nameRepeatCount[name] || 0) + 1;\n        id = name;\n\n        if (nmCnt > 1) {\n          id += '__ec__' + nmCnt;\n        }\n\n        idList[idx] = id;\n      }\n    };\n  }();\n\n  return List;\n}();\n\nexport default List;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, each, isString, defaults, extend, isObject, clone } from 'zrender/lib/core/util';\nimport { normalizeToArray } from '../../util/model';\nimport { guessOrdinal, BE_ORDINAL } from './sourceHelper';\nimport { createSourceFromSeriesDataOption, isSourceInstance } from '../Source';\nimport { VISUAL_DIMENSIONS } from '../../util/types';\nimport DataDimensionInfo from '../DataDimensionInfo';\n\nfunction completeDimensions(sysDims, source, opt) {\n  if (!isSourceInstance(source)) {\n    source = createSourceFromSeriesDataOption(source);\n  }\n\n  opt = opt || {};\n  sysDims = (sysDims || []).slice();\n  var dimsDef = (opt.dimsDef || []).slice();\n  var dataDimNameMap = createHashMap();\n  var coordDimNameMap = createHashMap();\n  var result = [];\n  var dimCount = getDimCount(source, sysDims, dimsDef, opt.dimCount);\n\n  for (var i = 0; i < dimCount; i++) {\n    var dimDefItemRaw = dimsDef[i];\n    var dimDefItem = dimsDef[i] = extend({}, isObject(dimDefItemRaw) ? dimDefItemRaw : {\n      name: dimDefItemRaw\n    });\n    var userDimName = dimDefItem.name;\n    var resultItem = result[i] = new DataDimensionInfo();\n\n    if (userDimName != null && dataDimNameMap.get(userDimName) == null) {\n      resultItem.name = resultItem.displayName = userDimName;\n      dataDimNameMap.set(userDimName, i);\n    }\n\n    dimDefItem.type != null && (resultItem.type = dimDefItem.type);\n    dimDefItem.displayName != null && (resultItem.displayName = dimDefItem.displayName);\n  }\n\n  var encodeDef = opt.encodeDef;\n\n  if (!encodeDef && opt.encodeDefaulter) {\n    encodeDef = opt.encodeDefaulter(source, dimCount);\n  }\n\n  var encodeDefMap = createHashMap(encodeDef);\n  encodeDefMap.each(function (dataDimsRaw, coordDim) {\n    var dataDims = normalizeToArray(dataDimsRaw).slice();\n\n    if (dataDims.length === 1 && !isString(dataDims[0]) && dataDims[0] < 0) {\n      encodeDefMap.set(coordDim, false);\n      return;\n    }\n\n    var validDataDims = encodeDefMap.set(coordDim, []);\n    each(dataDims, function (resultDimIdxOrName, idx) {\n      var resultDimIdx = isString(resultDimIdxOrName) ? dataDimNameMap.get(resultDimIdxOrName) : resultDimIdxOrName;\n\n      if (resultDimIdx != null && resultDimIdx < dimCount) {\n        validDataDims[idx] = resultDimIdx;\n        applyDim(result[resultDimIdx], coordDim, idx);\n      }\n    });\n  });\n  var availDimIdx = 0;\n  each(sysDims, function (sysDimItemRaw) {\n    var coordDim;\n    var sysDimItemDimsDef;\n    var sysDimItemOtherDims;\n    var sysDimItem;\n\n    if (isString(sysDimItemRaw)) {\n      coordDim = sysDimItemRaw;\n      sysDimItem = {};\n    } else {\n      sysDimItem = sysDimItemRaw;\n      coordDim = sysDimItem.name;\n      var ordinalMeta = sysDimItem.ordinalMeta;\n      sysDimItem.ordinalMeta = null;\n      sysDimItem = clone(sysDimItem);\n      sysDimItem.ordinalMeta = ordinalMeta;\n      sysDimItemDimsDef = sysDimItem.dimsDef;\n      sysDimItemOtherDims = sysDimItem.otherDims;\n      sysDimItem.name = sysDimItem.coordDim = sysDimItem.coordDimIndex = sysDimItem.dimsDef = sysDimItem.otherDims = null;\n    }\n\n    var dataDims = encodeDefMap.get(coordDim);\n\n    if (dataDims === false) {\n      return;\n    }\n\n    dataDims = normalizeToArray(dataDims);\n\n    if (!dataDims.length) {\n      for (var i = 0; i < (sysDimItemDimsDef && sysDimItemDimsDef.length || 1); i++) {\n        while (availDimIdx < result.length && result[availDimIdx].coordDim != null) {\n          availDimIdx++;\n        }\n\n        availDimIdx < result.length && dataDims.push(availDimIdx++);\n      }\n    }\n\n    each(dataDims, function (resultDimIdx, coordDimIndex) {\n      var resultItem = result[resultDimIdx];\n      applyDim(defaults(resultItem, sysDimItem), coordDim, coordDimIndex);\n\n      if (resultItem.name == null && sysDimItemDimsDef) {\n        var sysDimItemDimsDefItem = sysDimItemDimsDef[coordDimIndex];\n        !isObject(sysDimItemDimsDefItem) && (sysDimItemDimsDefItem = {\n          name: sysDimItemDimsDefItem\n        });\n        resultItem.name = resultItem.displayName = sysDimItemDimsDefItem.name;\n        resultItem.defaultTooltip = sysDimItemDimsDefItem.defaultTooltip;\n      }\n\n      sysDimItemOtherDims && defaults(resultItem.otherDims, sysDimItemOtherDims);\n    });\n  });\n\n  function applyDim(resultItem, coordDim, coordDimIndex) {\n    if (VISUAL_DIMENSIONS.get(coordDim) != null) {\n      resultItem.otherDims[coordDim] = coordDimIndex;\n    } else {\n      resultItem.coordDim = coordDim;\n      resultItem.coordDimIndex = coordDimIndex;\n      coordDimNameMap.set(coordDim, true);\n    }\n  }\n\n  var generateCoord = opt.generateCoord;\n  var generateCoordCount = opt.generateCoordCount;\n  var fromZero = generateCoordCount != null;\n  generateCoordCount = generateCoord ? generateCoordCount || 1 : 0;\n  var extra = generateCoord || 'value';\n\n  for (var resultDimIdx = 0; resultDimIdx < dimCount; resultDimIdx++) {\n    var resultItem = result[resultDimIdx] = result[resultDimIdx] || new DataDimensionInfo();\n    var coordDim = resultItem.coordDim;\n\n    if (coordDim == null) {\n      resultItem.coordDim = genName(extra, coordDimNameMap, fromZero);\n      resultItem.coordDimIndex = 0;\n\n      if (!generateCoord || generateCoordCount <= 0) {\n        resultItem.isExtraCoord = true;\n      }\n\n      generateCoordCount--;\n    }\n\n    resultItem.name == null && (resultItem.name = genName(resultItem.coordDim, dataDimNameMap, false));\n\n    if (resultItem.type == null && (guessOrdinal(source, resultDimIdx) === BE_ORDINAL.Must || resultItem.isExtraCoord && (resultItem.otherDims.itemName != null || resultItem.otherDims.seriesName != null))) {\n      resultItem.type = 'ordinal';\n    }\n  }\n\n  return result;\n}\n\nfunction getDimCount(source, sysDims, dimsDef, optDimCount) {\n  var dimCount = Math.max(source.dimensionsDetectedCount || 1, sysDims.length, dimsDef.length, optDimCount || 0);\n  each(sysDims, function (sysDimItem) {\n    var sysDimItemDimsDef;\n\n    if (isObject(sysDimItem) && (sysDimItemDimsDef = sysDimItem.dimsDef)) {\n      dimCount = Math.max(dimCount, sysDimItemDimsDef.length);\n    }\n  });\n  return dimCount;\n}\n\nfunction genName(name, map, fromZero) {\n  if (fromZero || map.get(name) != null) {\n    var i = 0;\n\n    while (map.get(name + i) != null) {\n      i++;\n    }\n\n    name += i;\n  }\n\n  map.set(name, true);\n  return name;\n}\n\nexport default completeDimensions;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport completeDimensions from './completeDimensions';\nexport default function createDimensions(source, opt) {\n  opt = opt || {};\n  return completeDimensions(opt.coordDimensions || [], source, {\n    dimsDef: opt.dimensionsDefine || source.dimensionsDefine,\n    encodeDef: opt.encodeDefine || source.encodeDefine,\n    dimCount: opt.dimensionsCount,\n    encodeDefaulter: opt.encodeDefaulter,\n    generateCoord: opt.generateCoord,\n    generateCoordCount: opt.generateCoordCount\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, retrieve, each } from 'zrender/lib/core/util';\nimport { SINGLE_REFERRING } from '../util/model';\n\nvar CoordSysInfo = function () {\n  function CoordSysInfo(coordSysName) {\n    this.coordSysDims = [];\n    this.axisMap = createHashMap();\n    this.categoryAxisMap = createHashMap();\n    this.coordSysName = coordSysName;\n  }\n\n  return CoordSysInfo;\n}();\n\nexport function getCoordSysInfoBySeries(seriesModel) {\n  var coordSysName = seriesModel.get('coordinateSystem');\n  var result = new CoordSysInfo(coordSysName);\n  var fetch = fetchers[coordSysName];\n\n  if (fetch) {\n    fetch(seriesModel, result, result.axisMap, result.categoryAxisMap);\n    return result;\n  }\n}\nvar fetchers = {\n  cartesian2d: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var xAxisModel = seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0];\n    var yAxisModel = seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!xAxisModel) {\n        throw new Error('xAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('xAxisId'), 0) + '\" not found');\n      }\n\n      if (!yAxisModel) {\n        throw new Error('yAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('yAxisId'), 0) + '\" not found');\n      }\n    }\n\n    result.coordSysDims = ['x', 'y'];\n    axisMap.set('x', xAxisModel);\n    axisMap.set('y', yAxisModel);\n\n    if (isCategory(xAxisModel)) {\n      categoryAxisMap.set('x', xAxisModel);\n      result.firstCategoryDimIndex = 0;\n    }\n\n    if (isCategory(yAxisModel)) {\n      categoryAxisMap.set('y', yAxisModel);\n      result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\n    }\n  },\n  singleAxis: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var singleAxisModel = seriesModel.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!singleAxisModel) {\n        throw new Error('singleAxis should be specified.');\n      }\n    }\n\n    result.coordSysDims = ['single'];\n    axisMap.set('single', singleAxisModel);\n\n    if (isCategory(singleAxisModel)) {\n      categoryAxisMap.set('single', singleAxisModel);\n      result.firstCategoryDimIndex = 0;\n    }\n  },\n  polar: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var polarModel = seriesModel.getReferringComponents('polar', SINGLE_REFERRING).models[0];\n    var radiusAxisModel = polarModel.findAxisModel('radiusAxis');\n    var angleAxisModel = polarModel.findAxisModel('angleAxis');\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!angleAxisModel) {\n        throw new Error('angleAxis option not found');\n      }\n\n      if (!radiusAxisModel) {\n        throw new Error('radiusAxis option not found');\n      }\n    }\n\n    result.coordSysDims = ['radius', 'angle'];\n    axisMap.set('radius', radiusAxisModel);\n    axisMap.set('angle', angleAxisModel);\n\n    if (isCategory(radiusAxisModel)) {\n      categoryAxisMap.set('radius', radiusAxisModel);\n      result.firstCategoryDimIndex = 0;\n    }\n\n    if (isCategory(angleAxisModel)) {\n      categoryAxisMap.set('angle', angleAxisModel);\n      result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\n    }\n  },\n  geo: function (seriesModel, result, axisMap, categoryAxisMap) {\n    result.coordSysDims = ['lng', 'lat'];\n  },\n  parallel: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var ecModel = seriesModel.ecModel;\n    var parallelModel = ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\n    var coordSysDims = result.coordSysDims = parallelModel.dimensions.slice();\n    each(parallelModel.parallelAxisIndex, function (axisIndex, index) {\n      var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\n      var axisDim = coordSysDims[index];\n      axisMap.set(axisDim, axisModel);\n\n      if (isCategory(axisModel)) {\n        categoryAxisMap.set(axisDim, axisModel);\n\n        if (result.firstCategoryDimIndex == null) {\n          result.firstCategoryDimIndex = index;\n        }\n      }\n    });\n  }\n};\n\nfunction isCategory(axisModel) {\n  return axisModel.get('type') === 'category';\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, isString } from 'zrender/lib/core/util';\nexport function enableDataStack(seriesModel, dimensionInfoList, opt) {\n  opt = opt || {};\n  var byIndex = opt.byIndex;\n  var stackedCoordDimension = opt.stackedCoordDimension;\n  var mayStack = !!(seriesModel && seriesModel.get('stack'));\n  var stackedByDimInfo;\n  var stackedDimInfo;\n  var stackResultDimension;\n  var stackedOverDimension;\n  each(dimensionInfoList, function (dimensionInfo, index) {\n    if (isString(dimensionInfo)) {\n      dimensionInfoList[index] = dimensionInfo = {\n        name: dimensionInfo\n      };\n    }\n\n    if (mayStack && !dimensionInfo.isExtraCoord) {\n      if (!byIndex && !stackedByDimInfo && dimensionInfo.ordinalMeta) {\n        stackedByDimInfo = dimensionInfo;\n      }\n\n      if (!stackedDimInfo && dimensionInfo.type !== 'ordinal' && dimensionInfo.type !== 'time' && (!stackedCoordDimension || stackedCoordDimension === dimensionInfo.coordDim)) {\n        stackedDimInfo = dimensionInfo;\n      }\n    }\n  });\n\n  if (stackedDimInfo && !byIndex && !stackedByDimInfo) {\n    byIndex = true;\n  }\n\n  if (stackedDimInfo) {\n    stackResultDimension = '__\\0ecstackresult';\n    stackedOverDimension = '__\\0ecstackedover';\n\n    if (stackedByDimInfo) {\n      stackedByDimInfo.createInvertedIndices = true;\n    }\n\n    var stackedDimCoordDim_1 = stackedDimInfo.coordDim;\n    var stackedDimType = stackedDimInfo.type;\n    var stackedDimCoordIndex_1 = 0;\n    each(dimensionInfoList, function (dimensionInfo) {\n      if (dimensionInfo.coordDim === stackedDimCoordDim_1) {\n        stackedDimCoordIndex_1++;\n      }\n    });\n    dimensionInfoList.push({\n      name: stackResultDimension,\n      coordDim: stackedDimCoordDim_1,\n      coordDimIndex: stackedDimCoordIndex_1,\n      type: stackedDimType,\n      isExtraCoord: true,\n      isCalculationCoord: true\n    });\n    stackedDimCoordIndex_1++;\n    dimensionInfoList.push({\n      name: stackedOverDimension,\n      coordDim: stackedOverDimension,\n      coordDimIndex: stackedDimCoordIndex_1,\n      type: stackedDimType,\n      isExtraCoord: true,\n      isCalculationCoord: true\n    });\n  }\n\n  return {\n    stackedDimension: stackedDimInfo && stackedDimInfo.name,\n    stackedByDimension: stackedByDimInfo && stackedByDimInfo.name,\n    isStackedByIndex: byIndex,\n    stackedOverDimension: stackedOverDimension,\n    stackResultDimension: stackResultDimension\n  };\n}\nexport function isDimensionStacked(data, stackedDim) {\n  return !!stackedDim && stackedDim === data.getCalculationInfo('stackedDimension');\n}\nexport function getStackedDimension(data, targetDim) {\n  return isDimensionStacked(data, targetDim) ? data.getCalculationInfo('stackResultDimension') : targetDim;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport List from '../../data/List';\nimport createDimensions from '../../data/helper/createDimensions';\nimport { getDimensionTypeByAxis } from '../../data/helper/dimensionHelper';\nimport { getDataItemValue } from '../../util/model';\nimport CoordinateSystem from '../../core/CoordinateSystem';\nimport { getCoordSysInfoBySeries } from '../../model/referHelper';\nimport { createSourceFromSeriesDataOption, isSourceInstance } from '../../data/Source';\nimport { enableDataStack } from '../../data/helper/dataStackHelper';\nimport { makeSeriesEncodeForAxisCoordSys } from '../../data/helper/sourceHelper';\nimport { SOURCE_FORMAT_ORIGINAL } from '../../util/types';\n\nfunction createListFromArray(source, seriesModel, opt) {\n  opt = opt || {};\n\n  if (!isSourceInstance(source)) {\n    source = createSourceFromSeriesDataOption(source);\n  }\n\n  var coordSysName = seriesModel.get('coordinateSystem');\n  var registeredCoordSys = CoordinateSystem.get(coordSysName);\n  var coordSysInfo = getCoordSysInfoBySeries(seriesModel);\n  var coordSysDimDefs;\n\n  if (coordSysInfo && coordSysInfo.coordSysDims) {\n    coordSysDimDefs = zrUtil.map(coordSysInfo.coordSysDims, function (dim) {\n      var dimInfo = {\n        name: dim\n      };\n      var axisModel = coordSysInfo.axisMap.get(dim);\n\n      if (axisModel) {\n        var axisType = axisModel.get('type');\n        dimInfo.type = getDimensionTypeByAxis(axisType);\n      }\n\n      return dimInfo;\n    });\n  }\n\n  if (!coordSysDimDefs) {\n    coordSysDimDefs = registeredCoordSys && (registeredCoordSys.getDimensionsInfo ? registeredCoordSys.getDimensionsInfo() : registeredCoordSys.dimensions.slice()) || ['x', 'y'];\n  }\n\n  var useEncodeDefaulter = opt.useEncodeDefaulter;\n  var dimInfoList = createDimensions(source, {\n    coordDimensions: coordSysDimDefs,\n    generateCoord: opt.generateCoord,\n    encodeDefaulter: zrUtil.isFunction(useEncodeDefaulter) ? useEncodeDefaulter : useEncodeDefaulter ? zrUtil.curry(makeSeriesEncodeForAxisCoordSys, coordSysDimDefs, seriesModel) : null\n  });\n  var firstCategoryDimIndex;\n  var hasNameEncode;\n  coordSysInfo && zrUtil.each(dimInfoList, function (dimInfo, dimIndex) {\n    var coordDim = dimInfo.coordDim;\n    var categoryAxisModel = coordSysInfo.categoryAxisMap.get(coordDim);\n\n    if (categoryAxisModel) {\n      if (firstCategoryDimIndex == null) {\n        firstCategoryDimIndex = dimIndex;\n      }\n\n      dimInfo.ordinalMeta = categoryAxisModel.getOrdinalMeta();\n\n      if (opt.createInvertedIndices) {\n        dimInfo.createInvertedIndices = true;\n      }\n    }\n\n    if (dimInfo.otherDims.itemName != null) {\n      hasNameEncode = true;\n    }\n  });\n\n  if (!hasNameEncode && firstCategoryDimIndex != null) {\n    dimInfoList[firstCategoryDimIndex].otherDims.itemName = 0;\n  }\n\n  var stackCalculationInfo = enableDataStack(seriesModel, dimInfoList);\n  var list = new List(dimInfoList, seriesModel);\n  list.setCalculationInfo(stackCalculationInfo);\n  var dimValueGetter = firstCategoryDimIndex != null && isNeedCompleteOrdinalData(source) ? function (itemOpt, dimName, dataIndex, dimIndex) {\n    return dimIndex === firstCategoryDimIndex ? dataIndex : this.defaultDimValueGetter(itemOpt, dimName, dataIndex, dimIndex);\n  } : null;\n  list.hasItemOption = false;\n  list.initData(source, null, dimValueGetter);\n  return list;\n}\n\nfunction isNeedCompleteOrdinalData(source) {\n  if (source.sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n    var sampleItem = firstDataNotNull(source.data || []);\n    return sampleItem != null && !zrUtil.isArray(getDataItemValue(sampleItem));\n  }\n}\n\nfunction firstDataNotNull(data) {\n  var i = 0;\n\n  while (i < data.length && data[i] == null) {\n    i++;\n  }\n\n  return data[i];\n}\n\nexport default createListFromArray;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as clazzUtil from '../util/clazz';\n\nvar Scale = function () {\n  function Scale(setting) {\n    this._setting = setting || {};\n    this._extent = [Infinity, -Infinity];\n  }\n\n  Scale.prototype.getSetting = function (name) {\n    return this._setting[name];\n  };\n\n  Scale.prototype.unionExtent = function (other) {\n    var extent = this._extent;\n    other[0] < extent[0] && (extent[0] = other[0]);\n    other[1] > extent[1] && (extent[1] = other[1]);\n  };\n\n  Scale.prototype.unionExtentFromData = function (data, dim) {\n    this.unionExtent(data.getApproximateExtent(dim));\n  };\n\n  Scale.prototype.getExtent = function () {\n    return this._extent.slice();\n  };\n\n  Scale.prototype.setExtent = function (start, end) {\n    var thisExtent = this._extent;\n\n    if (!isNaN(start)) {\n      thisExtent[0] = start;\n    }\n\n    if (!isNaN(end)) {\n      thisExtent[1] = end;\n    }\n  };\n\n  Scale.prototype.isInExtentRange = function (value) {\n    return this._extent[0] <= value && this._extent[1] >= value;\n  };\n\n  Scale.prototype.isBlank = function () {\n    return this._isBlank;\n  };\n\n  Scale.prototype.setBlank = function (isBlank) {\n    this._isBlank = isBlank;\n  };\n\n  return Scale;\n}();\n\nclazzUtil.enableClassManagement(Scale);\nexport default Scale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, isObject, map } from 'zrender/lib/core/util';\n\nvar OrdinalMeta = function () {\n  function OrdinalMeta(opt) {\n    this.categories = opt.categories || [];\n    this._needCollect = opt.needCollect;\n    this._deduplication = opt.deduplication;\n  }\n\n  OrdinalMeta.createByAxisModel = function (axisModel) {\n    var option = axisModel.option;\n    var data = option.data;\n    var categories = data && map(data, getName);\n    return new OrdinalMeta({\n      categories: categories,\n      needCollect: !categories,\n      deduplication: option.dedplication !== false\n    });\n  };\n\n  ;\n\n  OrdinalMeta.prototype.getOrdinal = function (category) {\n    return this._getOrCreateMap().get(category);\n  };\n\n  OrdinalMeta.prototype.parseAndCollect = function (category) {\n    var index;\n    var needCollect = this._needCollect;\n\n    if (typeof category !== 'string' && !needCollect) {\n      return category;\n    }\n\n    if (needCollect && !this._deduplication) {\n      index = this.categories.length;\n      this.categories[index] = category;\n      return index;\n    }\n\n    var map = this._getOrCreateMap();\n\n    index = map.get(category);\n\n    if (index == null) {\n      if (needCollect) {\n        index = this.categories.length;\n        this.categories[index] = category;\n        map.set(category, index);\n      } else {\n        index = NaN;\n      }\n    }\n\n    return index;\n  };\n\n  OrdinalMeta.prototype._getOrCreateMap = function () {\n    return this._map || (this._map = createHashMap(this.categories));\n  };\n\n  return OrdinalMeta;\n}();\n\nfunction getName(obj) {\n  if (isObject(obj) && obj.value != null) {\n    return obj.value;\n  } else {\n    return obj + '';\n  }\n}\n\nexport default OrdinalMeta;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as numberUtil from '../util/number';\nvar roundNumber = numberUtil.round;\nexport function intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval) {\n  var result = {};\n  var span = extent[1] - extent[0];\n  var interval = result.interval = numberUtil.nice(span / splitNumber, true);\n\n  if (minInterval != null && interval < minInterval) {\n    interval = result.interval = minInterval;\n  }\n\n  if (maxInterval != null && interval > maxInterval) {\n    interval = result.interval = maxInterval;\n  }\n\n  var precision = result.intervalPrecision = getIntervalPrecision(interval);\n  var niceTickExtent = result.niceTickExtent = [roundNumber(Math.ceil(extent[0] / interval) * interval, precision), roundNumber(Math.floor(extent[1] / interval) * interval, precision)];\n  fixExtent(niceTickExtent, extent);\n  return result;\n}\nexport function getIntervalPrecision(interval) {\n  return numberUtil.getPrecisionSafe(interval) + 2;\n}\n\nfunction clamp(niceTickExtent, idx, extent) {\n  niceTickExtent[idx] = Math.max(Math.min(niceTickExtent[idx], extent[1]), extent[0]);\n}\n\nexport function fixExtent(niceTickExtent, extent) {\n  !isFinite(niceTickExtent[0]) && (niceTickExtent[0] = extent[0]);\n  !isFinite(niceTickExtent[1]) && (niceTickExtent[1] = extent[1]);\n  clamp(niceTickExtent, 0, extent);\n  clamp(niceTickExtent, 1, extent);\n\n  if (niceTickExtent[0] > niceTickExtent[1]) {\n    niceTickExtent[0] = niceTickExtent[1];\n  }\n}\nexport function contain(val, extent) {\n  return val >= extent[0] && val <= extent[1];\n}\nexport function normalize(val, extent) {\n  if (extent[1] === extent[0]) {\n    return 0.5;\n  }\n\n  return (val - extent[0]) / (extent[1] - extent[0]);\n}\nexport function scale(val, extent) {\n  return val * (extent[1] - extent[0]) + extent[0];\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Scale from './Scale';\nimport OrdinalMeta from '../data/OrdinalMeta';\nimport * as scaleHelper from './helper';\nimport { isArray, map, isObject } from 'zrender/lib/core/util';\n\nvar OrdinalScale = function (_super) {\n  __extends(OrdinalScale, _super);\n\n  function OrdinalScale(setting) {\n    var _this = _super.call(this, setting) || this;\n\n    _this.type = 'ordinal';\n\n    var ordinalMeta = _this.getSetting('ordinalMeta');\n\n    if (!ordinalMeta) {\n      ordinalMeta = new OrdinalMeta({});\n    }\n\n    if (isArray(ordinalMeta)) {\n      ordinalMeta = new OrdinalMeta({\n        categories: map(ordinalMeta, function (item) {\n          return isObject(item) ? item.value : item;\n        })\n      });\n    }\n\n    _this._ordinalMeta = ordinalMeta;\n    _this._extent = _this.getSetting('extent') || [0, ordinalMeta.categories.length - 1];\n    return _this;\n  }\n\n  OrdinalScale.prototype.parse = function (val) {\n    return typeof val === 'string' ? this._ordinalMeta.getOrdinal(val) : Math.round(val);\n  };\n\n  OrdinalScale.prototype.contain = function (rank) {\n    rank = this.parse(rank);\n    return scaleHelper.contain(rank, this._extent) && this._ordinalMeta.categories[rank] != null;\n  };\n\n  OrdinalScale.prototype.normalize = function (val) {\n    val = this._getTickNumber(this.parse(val));\n    return scaleHelper.normalize(val, this._extent);\n  };\n\n  OrdinalScale.prototype.scale = function (val) {\n    val = Math.round(scaleHelper.scale(val, this._extent));\n    return this.getRawOrdinalNumber(val);\n  };\n\n  OrdinalScale.prototype.getTicks = function () {\n    var ticks = [];\n    var extent = this._extent;\n    var rank = extent[0];\n\n    while (rank <= extent[1]) {\n      ticks.push({\n        value: rank\n      });\n      rank++;\n    }\n\n    return ticks;\n  };\n\n  OrdinalScale.prototype.getMinorTicks = function (splitNumber) {\n    return;\n  };\n\n  OrdinalScale.prototype.setSortInfo = function (info) {\n    if (info == null) {\n      this._ordinalNumbersByTick = this._ticksByOrdinalNumber = null;\n      return;\n    }\n\n    var infoOrdinalNumbers = info.ordinalNumbers;\n    var ordinalsByTick = this._ordinalNumbersByTick = [];\n    var ticksByOrdinal = this._ticksByOrdinalNumber = [];\n    var tickNum = 0;\n    var allCategoryLen = this._ordinalMeta.categories.length;\n\n    for (var len = Math.min(allCategoryLen, infoOrdinalNumbers.length); tickNum < len; ++tickNum) {\n      var ordinalNumber = infoOrdinalNumbers[tickNum];\n      ordinalsByTick[tickNum] = ordinalNumber;\n      ticksByOrdinal[ordinalNumber] = tickNum;\n    }\n\n    var unusedOrdinal = 0;\n\n    for (; tickNum < allCategoryLen; ++tickNum) {\n      while (ticksByOrdinal[unusedOrdinal] != null) {\n        unusedOrdinal++;\n      }\n\n      ;\n      ordinalsByTick.push(unusedOrdinal);\n      ticksByOrdinal[unusedOrdinal] = tickNum;\n    }\n  };\n\n  OrdinalScale.prototype._getTickNumber = function (ordinal) {\n    var ticksByOrdinalNumber = this._ticksByOrdinalNumber;\n    return ticksByOrdinalNumber && ordinal >= 0 && ordinal < ticksByOrdinalNumber.length ? ticksByOrdinalNumber[ordinal] : ordinal;\n  };\n\n  OrdinalScale.prototype.getRawOrdinalNumber = function (tickNumber) {\n    var ordinalNumbersByTick = this._ordinalNumbersByTick;\n    return ordinalNumbersByTick && tickNumber >= 0 && tickNumber < ordinalNumbersByTick.length ? ordinalNumbersByTick[tickNumber] : tickNumber;\n  };\n\n  OrdinalScale.prototype.getLabel = function (tick) {\n    if (!this.isBlank()) {\n      var ordinalNumber = this.getRawOrdinalNumber(tick.value);\n      var cateogry = this._ordinalMeta.categories[ordinalNumber];\n      return cateogry == null ? '' : cateogry + '';\n    }\n  };\n\n  OrdinalScale.prototype.count = function () {\n    return this._extent[1] - this._extent[0] + 1;\n  };\n\n  OrdinalScale.prototype.unionExtentFromData = function (data, dim) {\n    this.unionExtent(data.getApproximateExtent(dim));\n  };\n\n  OrdinalScale.prototype.isInExtentRange = function (value) {\n    value = this._getTickNumber(value);\n    return this._extent[0] <= value && this._extent[1] >= value;\n  };\n\n  OrdinalScale.prototype.getOrdinalMeta = function () {\n    return this._ordinalMeta;\n  };\n\n  OrdinalScale.prototype.niceTicks = function () {};\n\n  OrdinalScale.prototype.niceExtent = function () {};\n\n  OrdinalScale.type = 'ordinal';\n  return OrdinalScale;\n}(Scale);\n\nScale.registerClass(OrdinalScale);\nexport default OrdinalScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as numberUtil from '../util/number';\nimport * as formatUtil from '../util/format';\nimport Scale from './Scale';\nimport * as helper from './helper';\nvar roundNumber = numberUtil.round;\n\nvar IntervalScale = function (_super) {\n  __extends(IntervalScale, _super);\n\n  function IntervalScale() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'interval';\n    _this._interval = 0;\n    _this._intervalPrecision = 2;\n    return _this;\n  }\n\n  IntervalScale.prototype.parse = function (val) {\n    return val;\n  };\n\n  IntervalScale.prototype.contain = function (val) {\n    return helper.contain(val, this._extent);\n  };\n\n  IntervalScale.prototype.normalize = function (val) {\n    return helper.normalize(val, this._extent);\n  };\n\n  IntervalScale.prototype.scale = function (val) {\n    return helper.scale(val, this._extent);\n  };\n\n  IntervalScale.prototype.setExtent = function (start, end) {\n    var thisExtent = this._extent;\n\n    if (!isNaN(start)) {\n      thisExtent[0] = parseFloat(start);\n    }\n\n    if (!isNaN(end)) {\n      thisExtent[1] = parseFloat(end);\n    }\n  };\n\n  IntervalScale.prototype.unionExtent = function (other) {\n    var extent = this._extent;\n    other[0] < extent[0] && (extent[0] = other[0]);\n    other[1] > extent[1] && (extent[1] = other[1]);\n    this.setExtent(extent[0], extent[1]);\n  };\n\n  IntervalScale.prototype.getInterval = function () {\n    return this._interval;\n  };\n\n  IntervalScale.prototype.setInterval = function (interval) {\n    this._interval = interval;\n    this._niceExtent = this._extent.slice();\n    this._intervalPrecision = helper.getIntervalPrecision(interval);\n  };\n\n  IntervalScale.prototype.getTicks = function (expandToNicedExtent) {\n    var interval = this._interval;\n    var extent = this._extent;\n    var niceTickExtent = this._niceExtent;\n    var intervalPrecision = this._intervalPrecision;\n    var ticks = [];\n\n    if (!interval) {\n      return ticks;\n    }\n\n    var safeLimit = 10000;\n\n    if (extent[0] < niceTickExtent[0]) {\n      if (expandToNicedExtent) {\n        ticks.push({\n          value: roundNumber(niceTickExtent[0] - interval, intervalPrecision)\n        });\n      } else {\n        ticks.push({\n          value: extent[0]\n        });\n      }\n    }\n\n    var tick = niceTickExtent[0];\n\n    while (tick <= niceTickExtent[1]) {\n      ticks.push({\n        value: tick\n      });\n      tick = roundNumber(tick + interval, intervalPrecision);\n\n      if (tick === ticks[ticks.length - 1].value) {\n        break;\n      }\n\n      if (ticks.length > safeLimit) {\n        return [];\n      }\n    }\n\n    var lastNiceTick = ticks.length ? ticks[ticks.length - 1].value : niceTickExtent[1];\n\n    if (extent[1] > lastNiceTick) {\n      if (expandToNicedExtent) {\n        ticks.push({\n          value: roundNumber(lastNiceTick + interval, intervalPrecision)\n        });\n      } else {\n        ticks.push({\n          value: extent[1]\n        });\n      }\n    }\n\n    return ticks;\n  };\n\n  IntervalScale.prototype.getMinorTicks = function (splitNumber) {\n    var ticks = this.getTicks(true);\n    var minorTicks = [];\n    var extent = this.getExtent();\n\n    for (var i = 1; i < ticks.length; i++) {\n      var nextTick = ticks[i];\n      var prevTick = ticks[i - 1];\n      var count = 0;\n      var minorTicksGroup = [];\n      var interval = nextTick.value - prevTick.value;\n      var minorInterval = interval / splitNumber;\n\n      while (count < splitNumber - 1) {\n        var minorTick = roundNumber(prevTick.value + (count + 1) * minorInterval);\n\n        if (minorTick > extent[0] && minorTick < extent[1]) {\n          minorTicksGroup.push(minorTick);\n        }\n\n        count++;\n      }\n\n      minorTicks.push(minorTicksGroup);\n    }\n\n    return minorTicks;\n  };\n\n  IntervalScale.prototype.getLabel = function (data, opt) {\n    if (data == null) {\n      return '';\n    }\n\n    var precision = opt && opt.precision;\n\n    if (precision == null) {\n      precision = numberUtil.getPrecisionSafe(data.value) || 0;\n    } else if (precision === 'auto') {\n      precision = this._intervalPrecision;\n    }\n\n    var dataNum = roundNumber(data.value, precision, true);\n    return formatUtil.addCommas(dataNum);\n  };\n\n  IntervalScale.prototype.niceTicks = function (splitNumber, minInterval, maxInterval) {\n    splitNumber = splitNumber || 5;\n    var extent = this._extent;\n    var span = extent[1] - extent[0];\n\n    if (!isFinite(span)) {\n      return;\n    }\n\n    if (span < 0) {\n      span = -span;\n      extent.reverse();\n    }\n\n    var result = helper.intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval);\n    this._intervalPrecision = result.intervalPrecision;\n    this._interval = result.interval;\n    this._niceExtent = result.niceTickExtent;\n  };\n\n  IntervalScale.prototype.niceExtent = function (opt) {\n    var extent = this._extent;\n\n    if (extent[0] === extent[1]) {\n      if (extent[0] !== 0) {\n        var expandSize = extent[0];\n\n        if (!opt.fixMax) {\n          extent[1] += expandSize / 2;\n          extent[0] -= expandSize / 2;\n        } else {\n          extent[0] -= expandSize / 2;\n        }\n      } else {\n        extent[1] = 1;\n      }\n    }\n\n    var span = extent[1] - extent[0];\n\n    if (!isFinite(span)) {\n      extent[0] = 0;\n      extent[1] = 1;\n    }\n\n    this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\n    var interval = this._interval;\n\n    if (!opt.fixMin) {\n      extent[0] = roundNumber(Math.floor(extent[0] / interval) * interval);\n    }\n\n    if (!opt.fixMax) {\n      extent[1] = roundNumber(Math.ceil(extent[1] / interval) * interval);\n    }\n  };\n\n  IntervalScale.type = 'interval';\n  return IntervalScale;\n}(Scale);\n\nScale.registerClass(IntervalScale);\nexport default IntervalScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parsePercent } from '../util/number';\nimport { isDimensionStacked } from '../data/helper/dataStackHelper';\nimport createRenderPlanner from '../chart/helper/createRenderPlanner';\nvar STACK_PREFIX = '__ec_stack_';\nvar LARGE_BAR_MIN_WIDTH = 0.5;\nvar LargeArr = typeof Float32Array !== 'undefined' ? Float32Array : Array;\n\nfunction getSeriesStackId(seriesModel) {\n  return seriesModel.get('stack') || STACK_PREFIX + seriesModel.seriesIndex;\n}\n\nfunction getAxisKey(axis) {\n  return axis.dim + axis.index;\n}\n\nexport function getLayoutOnAxis(opt) {\n  var params = [];\n  var baseAxis = opt.axis;\n  var axisKey = 'axis0';\n\n  if (baseAxis.type !== 'category') {\n    return;\n  }\n\n  var bandWidth = baseAxis.getBandWidth();\n\n  for (var i = 0; i < opt.count || 0; i++) {\n    params.push(zrUtil.defaults({\n      bandWidth: bandWidth,\n      axisKey: axisKey,\n      stackId: STACK_PREFIX + i\n    }, opt));\n  }\n\n  var widthAndOffsets = doCalBarWidthAndOffset(params);\n  var result = [];\n\n  for (var i = 0; i < opt.count; i++) {\n    var item = widthAndOffsets[axisKey][STACK_PREFIX + i];\n    item.offsetCenter = item.offset + item.width / 2;\n    result.push(item);\n  }\n\n  return result;\n}\nexport function prepareLayoutBarSeries(seriesType, ecModel) {\n  var seriesModels = [];\n  ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n    if (isOnCartesian(seriesModel) && !isInLargeMode(seriesModel)) {\n      seriesModels.push(seriesModel);\n    }\n  });\n  return seriesModels;\n}\n\nfunction getValueAxesMinGaps(barSeries) {\n  var axisValues = {};\n  zrUtil.each(barSeries, function (seriesModel) {\n    var cartesian = seriesModel.coordinateSystem;\n    var baseAxis = cartesian.getBaseAxis();\n\n    if (baseAxis.type !== 'time' && baseAxis.type !== 'value') {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var key = baseAxis.dim + '_' + baseAxis.index;\n    var dim = data.mapDimension(baseAxis.dim);\n\n    for (var i = 0, cnt = data.count(); i < cnt; ++i) {\n      var value = data.get(dim, i);\n\n      if (!axisValues[key]) {\n        axisValues[key] = [value];\n      } else {\n        axisValues[key].push(value);\n      }\n    }\n  });\n  var axisMinGaps = {};\n\n  for (var key in axisValues) {\n    if (axisValues.hasOwnProperty(key)) {\n      var valuesInAxis = axisValues[key];\n\n      if (valuesInAxis) {\n        valuesInAxis.sort(function (a, b) {\n          return a - b;\n        });\n        var min = null;\n\n        for (var j = 1; j < valuesInAxis.length; ++j) {\n          var delta = valuesInAxis[j] - valuesInAxis[j - 1];\n\n          if (delta > 0) {\n            min = min === null ? delta : Math.min(min, delta);\n          }\n        }\n\n        axisMinGaps[key] = min;\n      }\n    }\n  }\n\n  return axisMinGaps;\n}\n\nexport function makeColumnLayout(barSeries) {\n  var axisMinGaps = getValueAxesMinGaps(barSeries);\n  var seriesInfoList = [];\n  zrUtil.each(barSeries, function (seriesModel) {\n    var cartesian = seriesModel.coordinateSystem;\n    var baseAxis = cartesian.getBaseAxis();\n    var axisExtent = baseAxis.getExtent();\n    var bandWidth;\n\n    if (baseAxis.type === 'category') {\n      bandWidth = baseAxis.getBandWidth();\n    } else if (baseAxis.type === 'value' || baseAxis.type === 'time') {\n      var key = baseAxis.dim + '_' + baseAxis.index;\n      var minGap = axisMinGaps[key];\n      var extentSpan = Math.abs(axisExtent[1] - axisExtent[0]);\n      var scale = baseAxis.scale.getExtent();\n      var scaleSpan = Math.abs(scale[1] - scale[0]);\n      bandWidth = minGap ? extentSpan / scaleSpan * minGap : extentSpan;\n    } else {\n      var data = seriesModel.getData();\n      bandWidth = Math.abs(axisExtent[1] - axisExtent[0]) / data.count();\n    }\n\n    var barWidth = parsePercent(seriesModel.get('barWidth'), bandWidth);\n    var barMaxWidth = parsePercent(seriesModel.get('barMaxWidth'), bandWidth);\n    var barMinWidth = parsePercent(seriesModel.get('barMinWidth') || 1, bandWidth);\n    var barGap = seriesModel.get('barGap');\n    var barCategoryGap = seriesModel.get('barCategoryGap');\n    seriesInfoList.push({\n      bandWidth: bandWidth,\n      barWidth: barWidth,\n      barMaxWidth: barMaxWidth,\n      barMinWidth: barMinWidth,\n      barGap: barGap,\n      barCategoryGap: barCategoryGap,\n      axisKey: getAxisKey(baseAxis),\n      stackId: getSeriesStackId(seriesModel)\n    });\n  });\n  return doCalBarWidthAndOffset(seriesInfoList);\n}\n\nfunction doCalBarWidthAndOffset(seriesInfoList) {\n  var columnsMap = {};\n  zrUtil.each(seriesInfoList, function (seriesInfo, idx) {\n    var axisKey = seriesInfo.axisKey;\n    var bandWidth = seriesInfo.bandWidth;\n    var columnsOnAxis = columnsMap[axisKey] || {\n      bandWidth: bandWidth,\n      remainedWidth: bandWidth,\n      autoWidthCount: 0,\n      categoryGap: null,\n      gap: '20%',\n      stacks: {}\n    };\n    var stacks = columnsOnAxis.stacks;\n    columnsMap[axisKey] = columnsOnAxis;\n    var stackId = seriesInfo.stackId;\n\n    if (!stacks[stackId]) {\n      columnsOnAxis.autoWidthCount++;\n    }\n\n    stacks[stackId] = stacks[stackId] || {\n      width: 0,\n      maxWidth: 0\n    };\n    var barWidth = seriesInfo.barWidth;\n\n    if (barWidth && !stacks[stackId].width) {\n      stacks[stackId].width = barWidth;\n      barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\n      columnsOnAxis.remainedWidth -= barWidth;\n    }\n\n    var barMaxWidth = seriesInfo.barMaxWidth;\n    barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\n    var barMinWidth = seriesInfo.barMinWidth;\n    barMinWidth && (stacks[stackId].minWidth = barMinWidth);\n    var barGap = seriesInfo.barGap;\n    barGap != null && (columnsOnAxis.gap = barGap);\n    var barCategoryGap = seriesInfo.barCategoryGap;\n    barCategoryGap != null && (columnsOnAxis.categoryGap = barCategoryGap);\n  });\n  var result = {};\n  zrUtil.each(columnsMap, function (columnsOnAxis, coordSysName) {\n    result[coordSysName] = {};\n    var stacks = columnsOnAxis.stacks;\n    var bandWidth = columnsOnAxis.bandWidth;\n    var categoryGapPercent = columnsOnAxis.categoryGap;\n\n    if (categoryGapPercent == null) {\n      var columnCount = zrUtil.keys(stacks).length;\n      categoryGapPercent = Math.max(35 - columnCount * 4, 15) + '%';\n    }\n\n    var categoryGap = parsePercent(categoryGapPercent, bandWidth);\n    var barGapPercent = parsePercent(columnsOnAxis.gap, 1);\n    var remainedWidth = columnsOnAxis.remainedWidth;\n    var autoWidthCount = columnsOnAxis.autoWidthCount;\n    var autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n    autoWidth = Math.max(autoWidth, 0);\n    zrUtil.each(stacks, function (column) {\n      var maxWidth = column.maxWidth;\n      var minWidth = column.minWidth;\n\n      if (!column.width) {\n        var finalWidth = autoWidth;\n\n        if (maxWidth && maxWidth < finalWidth) {\n          finalWidth = Math.min(maxWidth, remainedWidth);\n        }\n\n        if (minWidth && minWidth > finalWidth) {\n          finalWidth = minWidth;\n        }\n\n        if (finalWidth !== autoWidth) {\n          column.width = finalWidth;\n          remainedWidth -= finalWidth + barGapPercent * finalWidth;\n          autoWidthCount--;\n        }\n      } else {\n        var finalWidth = column.width;\n\n        if (maxWidth) {\n          finalWidth = Math.min(finalWidth, maxWidth);\n        }\n\n        if (minWidth) {\n          finalWidth = Math.max(finalWidth, minWidth);\n        }\n\n        column.width = finalWidth;\n        remainedWidth -= finalWidth + barGapPercent * finalWidth;\n        autoWidthCount--;\n      }\n    });\n    autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n    autoWidth = Math.max(autoWidth, 0);\n    var widthSum = 0;\n    var lastColumn;\n    zrUtil.each(stacks, function (column, idx) {\n      if (!column.width) {\n        column.width = autoWidth;\n      }\n\n      lastColumn = column;\n      widthSum += column.width * (1 + barGapPercent);\n    });\n\n    if (lastColumn) {\n      widthSum -= lastColumn.width * barGapPercent;\n    }\n\n    var offset = -widthSum / 2;\n    zrUtil.each(stacks, function (column, stackId) {\n      result[coordSysName][stackId] = result[coordSysName][stackId] || {\n        bandWidth: bandWidth,\n        offset: offset,\n        width: column.width\n      };\n      offset += column.width * (1 + barGapPercent);\n    });\n  });\n  return result;\n}\n\nfunction retrieveColumnLayout(barWidthAndOffset, axis, seriesModel) {\n  if (barWidthAndOffset && axis) {\n    var result = barWidthAndOffset[getAxisKey(axis)];\n\n    if (result != null && seriesModel != null) {\n      return result[getSeriesStackId(seriesModel)];\n    }\n\n    return result;\n  }\n}\n\nexport { retrieveColumnLayout };\nexport function layout(seriesType, ecModel) {\n  var seriesModels = prepareLayoutBarSeries(seriesType, ecModel);\n  var barWidthAndOffset = makeColumnLayout(seriesModels);\n  var lastStackCoords = {};\n  zrUtil.each(seriesModels, function (seriesModel) {\n    var data = seriesModel.getData();\n    var cartesian = seriesModel.coordinateSystem;\n    var baseAxis = cartesian.getBaseAxis();\n    var stackId = getSeriesStackId(seriesModel);\n    var columnLayoutInfo = barWidthAndOffset[getAxisKey(baseAxis)][stackId];\n    var columnOffset = columnLayoutInfo.offset;\n    var columnWidth = columnLayoutInfo.width;\n    var valueAxis = cartesian.getOtherAxis(baseAxis);\n    var barMinHeight = seriesModel.get('barMinHeight') || 0;\n    lastStackCoords[stackId] = lastStackCoords[stackId] || [];\n    data.setLayout({\n      bandWidth: columnLayoutInfo.bandWidth,\n      offset: columnOffset,\n      size: columnWidth\n    });\n    var valueDim = data.mapDimension(valueAxis.dim);\n    var baseDim = data.mapDimension(baseAxis.dim);\n    var stacked = isDimensionStacked(data, valueDim);\n    var isValueAxisH = valueAxis.isHorizontal();\n    var valueAxisStart = getValueAxisStart(baseAxis, valueAxis, stacked);\n\n    for (var idx = 0, len = data.count(); idx < len; idx++) {\n      var value = data.get(valueDim, idx);\n      var baseValue = data.get(baseDim, idx);\n      var sign = value >= 0 ? 'p' : 'n';\n      var baseCoord = valueAxisStart;\n\n      if (stacked) {\n        if (!lastStackCoords[stackId][baseValue]) {\n          lastStackCoords[stackId][baseValue] = {\n            p: valueAxisStart,\n            n: valueAxisStart\n          };\n        }\n\n        baseCoord = lastStackCoords[stackId][baseValue][sign];\n      }\n\n      var x = void 0;\n      var y = void 0;\n      var width = void 0;\n      var height = void 0;\n\n      if (isValueAxisH) {\n        var coord = cartesian.dataToPoint([value, baseValue]);\n        x = baseCoord;\n        y = coord[1] + columnOffset;\n        width = coord[0] - valueAxisStart;\n        height = columnWidth;\n\n        if (Math.abs(width) < barMinHeight) {\n          width = (width < 0 ? -1 : 1) * barMinHeight;\n        }\n\n        if (!isNaN(width)) {\n          stacked && (lastStackCoords[stackId][baseValue][sign] += width);\n        }\n      } else {\n        var coord = cartesian.dataToPoint([baseValue, value]);\n        x = coord[0] + columnOffset;\n        y = baseCoord;\n        width = columnWidth;\n        height = coord[1] - valueAxisStart;\n\n        if (Math.abs(height) < barMinHeight) {\n          height = (height <= 0 ? -1 : 1) * barMinHeight;\n        }\n\n        if (!isNaN(height)) {\n          stacked && (lastStackCoords[stackId][baseValue][sign] += height);\n        }\n      }\n\n      data.setItemLayout(idx, {\n        x: x,\n        y: y,\n        width: width,\n        height: height\n      });\n    }\n  });\n}\nexport var largeLayout = {\n  seriesType: 'bar',\n  plan: createRenderPlanner(),\n  reset: function (seriesModel) {\n    if (!isOnCartesian(seriesModel) || !isInLargeMode(seriesModel)) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var cartesian = seriesModel.coordinateSystem;\n    var coordLayout = cartesian.master.getRect();\n    var baseAxis = cartesian.getBaseAxis();\n    var valueAxis = cartesian.getOtherAxis(baseAxis);\n    var valueDim = data.mapDimension(valueAxis.dim);\n    var baseDim = data.mapDimension(baseAxis.dim);\n    var valueAxisHorizontal = valueAxis.isHorizontal();\n    var valueDimIdx = valueAxisHorizontal ? 0 : 1;\n    var barWidth = retrieveColumnLayout(makeColumnLayout([seriesModel]), baseAxis, seriesModel).width;\n\n    if (!(barWidth > LARGE_BAR_MIN_WIDTH)) {\n      barWidth = LARGE_BAR_MIN_WIDTH;\n    }\n\n    return {\n      progress: function (params, data) {\n        var count = params.count;\n        var largePoints = new LargeArr(count * 2);\n        var largeBackgroundPoints = new LargeArr(count * 2);\n        var largeDataIndices = new LargeArr(count);\n        var dataIndex;\n        var coord = [];\n        var valuePair = [];\n        var pointsOffset = 0;\n        var idxOffset = 0;\n\n        while ((dataIndex = params.next()) != null) {\n          valuePair[valueDimIdx] = data.get(valueDim, dataIndex);\n          valuePair[1 - valueDimIdx] = data.get(baseDim, dataIndex);\n          coord = cartesian.dataToPoint(valuePair, null, coord);\n          largeBackgroundPoints[pointsOffset] = valueAxisHorizontal ? coordLayout.x + coordLayout.width : coord[0];\n          largePoints[pointsOffset++] = coord[0];\n          largeBackgroundPoints[pointsOffset] = valueAxisHorizontal ? coord[1] : coordLayout.y + coordLayout.height;\n          largePoints[pointsOffset++] = coord[1];\n          largeDataIndices[idxOffset++] = dataIndex;\n        }\n\n        data.setLayout({\n          largePoints: largePoints,\n          largeDataIndices: largeDataIndices,\n          largeBackgroundPoints: largeBackgroundPoints,\n          barWidth: barWidth,\n          valueAxisStart: getValueAxisStart(baseAxis, valueAxis, false),\n          backgroundStart: valueAxisHorizontal ? coordLayout.x : coordLayout.y,\n          valueAxisHorizontal: valueAxisHorizontal\n        });\n      }\n    };\n  }\n};\n\nfunction isOnCartesian(seriesModel) {\n  return seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'cartesian2d';\n}\n\nfunction isInLargeMode(seriesModel) {\n  return seriesModel.pipelineContext && seriesModel.pipelineContext.large;\n}\n\nfunction getValueAxisStart(baseAxis, valueAxis, stacked) {\n  return valueAxis.toGlobalCoord(valueAxis.dataToCoord(valueAxis.type === 'log' ? 1 : 0));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as numberUtil from '../util/number';\nimport { ONE_SECOND, ONE_MINUTE, ONE_HOUR, ONE_DAY, ONE_YEAR, format, leveledFormat, getUnitValue, timeUnits, fullLeveledFormatter, getPrimaryTimeUnit, isPrimaryTimeUnit, getDefaultFormatPrecisionOfInterval, fullYearGetterName, monthSetterName, fullYearSetterName, dateSetterName, hoursGetterName, hoursSetterName, minutesSetterName, secondsSetterName, millisecondsSetterName, monthGetterName, dateGetterName, minutesGetterName, secondsGetterName, millisecondsGetterName } from '../util/time';\nimport * as scaleHelper from './helper';\nimport IntervalScale from './Interval';\nimport Scale from './Scale';\nimport { warn } from '../util/log';\nimport { filter, map } from 'zrender/lib/core/util';\n\nvar bisect = function (a, x, lo, hi) {\n  while (lo < hi) {\n    var mid = lo + hi >>> 1;\n\n    if (a[mid][1] < x) {\n      lo = mid + 1;\n    } else {\n      hi = mid;\n    }\n  }\n\n  return lo;\n};\n\nvar TimeScale = function (_super) {\n  __extends(TimeScale, _super);\n\n  function TimeScale(settings) {\n    var _this = _super.call(this, settings) || this;\n\n    _this.type = 'time';\n    return _this;\n  }\n\n  TimeScale.prototype.getLabel = function (tick) {\n    var useUTC = this.getSetting('useUTC');\n    return format(tick.value, fullLeveledFormatter[getDefaultFormatPrecisionOfInterval(getPrimaryTimeUnit(this._minLevelUnit))] || fullLeveledFormatter.second, useUTC, this.getSetting('locale'));\n  };\n\n  TimeScale.prototype.getFormattedLabel = function (tick, idx, labelFormatter) {\n    var isUTC = this.getSetting('useUTC');\n    var lang = this.getSetting('locale');\n    return leveledFormat(tick, idx, labelFormatter, lang, isUTC);\n  };\n\n  TimeScale.prototype.getTicks = function (expandToNicedExtent) {\n    var interval = this._interval;\n    var extent = this._extent;\n    var ticks = [];\n\n    if (!interval) {\n      return ticks;\n    }\n\n    ticks.push({\n      value: extent[0],\n      level: 0\n    });\n    var useUTC = this.getSetting('useUTC');\n    var innerTicks = getIntervalTicks(this._minLevelUnit, this._approxInterval, useUTC, extent);\n    ticks = ticks.concat(innerTicks);\n    ticks.push({\n      value: extent[1],\n      level: 0\n    });\n    return ticks;\n  };\n\n  TimeScale.prototype.niceExtent = function (opt) {\n    var extent = this._extent;\n\n    if (extent[0] === extent[1]) {\n      extent[0] -= ONE_DAY;\n      extent[1] += ONE_DAY;\n    }\n\n    if (extent[1] === -Infinity && extent[0] === Infinity) {\n      var d = new Date();\n      extent[1] = +new Date(d.getFullYear(), d.getMonth(), d.getDate());\n      extent[0] = extent[1] - ONE_DAY;\n    }\n\n    this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\n  };\n\n  TimeScale.prototype.niceTicks = function (approxTickNum, minInterval, maxInterval) {\n    approxTickNum = approxTickNum || 10;\n    var extent = this._extent;\n    var span = extent[1] - extent[0];\n    this._approxInterval = span / approxTickNum;\n\n    if (minInterval != null && this._approxInterval < minInterval) {\n      this._approxInterval = minInterval;\n    }\n\n    if (maxInterval != null && this._approxInterval > maxInterval) {\n      this._approxInterval = maxInterval;\n    }\n\n    var scaleIntervalsLen = scaleIntervals.length;\n    var idx = Math.min(bisect(scaleIntervals, this._approxInterval, 0, scaleIntervalsLen), scaleIntervalsLen - 1);\n    this._interval = scaleIntervals[idx][1];\n    this._minLevelUnit = scaleIntervals[Math.max(idx - 1, 0)][0];\n  };\n\n  TimeScale.prototype.parse = function (val) {\n    return typeof val === 'number' ? val : +numberUtil.parseDate(val);\n  };\n\n  TimeScale.prototype.contain = function (val) {\n    return scaleHelper.contain(this.parse(val), this._extent);\n  };\n\n  TimeScale.prototype.normalize = function (val) {\n    return scaleHelper.normalize(this.parse(val), this._extent);\n  };\n\n  TimeScale.prototype.scale = function (val) {\n    return scaleHelper.scale(val, this._extent);\n  };\n\n  TimeScale.type = 'time';\n  return TimeScale;\n}(IntervalScale);\n\nvar scaleIntervals = [['second', ONE_SECOND], ['minute', ONE_MINUTE], ['hour', ONE_HOUR], ['quarter-day', ONE_HOUR * 6], ['half-day', ONE_HOUR * 12], ['day', ONE_DAY * 1.2], ['half-week', ONE_DAY * 3.5], ['week', ONE_DAY * 7], ['month', ONE_DAY * 31], ['quarter', ONE_DAY * 95], ['half-year', ONE_YEAR / 2], ['year', ONE_YEAR]];\n\nfunction isUnitValueSame(unit, valueA, valueB, isUTC) {\n  var dateA = numberUtil.parseDate(valueA);\n  var dateB = numberUtil.parseDate(valueB);\n\n  var isSame = function (unit) {\n    return getUnitValue(dateA, unit, isUTC) === getUnitValue(dateB, unit, isUTC);\n  };\n\n  var isSameYear = function () {\n    return isSame('year');\n  };\n\n  var isSameMonth = function () {\n    return isSameYear() && isSame('month');\n  };\n\n  var isSameDay = function () {\n    return isSameMonth() && isSame('day');\n  };\n\n  var isSameHour = function () {\n    return isSameDay() && isSame('hour');\n  };\n\n  var isSameMinute = function () {\n    return isSameHour() && isSame('minute');\n  };\n\n  var isSameSecond = function () {\n    return isSameMinute() && isSame('second');\n  };\n\n  var isSameMilliSecond = function () {\n    return isSameSecond() && isSame('millisecond');\n  };\n\n  switch (unit) {\n    case 'year':\n      return isSameYear();\n\n    case 'month':\n      return isSameMonth();\n\n    case 'day':\n      return isSameDay();\n\n    case 'hour':\n      return isSameHour();\n\n    case 'minute':\n      return isSameMinute();\n\n    case 'second':\n      return isSameSecond();\n\n    case 'millisecond':\n      return isSameMilliSecond();\n  }\n}\n\nfunction getDateInterval(approxInterval, daysInMonth) {\n  approxInterval /= ONE_DAY;\n  return approxInterval > 16 ? 16 : approxInterval > 7.5 ? 7 : approxInterval > 3.5 ? 4 : approxInterval > 1.5 ? 2 : 1;\n}\n\nfunction getMonthInterval(approxInterval) {\n  var APPROX_ONE_MONTH = 30 * ONE_DAY;\n  approxInterval /= APPROX_ONE_MONTH;\n  return approxInterval > 6 ? 6 : approxInterval > 3 ? 3 : approxInterval > 2 ? 2 : 1;\n}\n\nfunction getHourInterval(approxInterval) {\n  approxInterval /= ONE_HOUR;\n  return approxInterval > 12 ? 12 : approxInterval > 6 ? 6 : approxInterval > 3.5 ? 4 : approxInterval > 2 ? 2 : 1;\n}\n\nfunction getMinutesAndSecondsInterval(approxInterval, isMinutes) {\n  approxInterval /= isMinutes ? ONE_MINUTE : ONE_SECOND;\n  return approxInterval > 30 ? 30 : approxInterval > 20 ? 20 : approxInterval > 15 ? 15 : approxInterval > 10 ? 10 : approxInterval > 5 ? 5 : approxInterval > 2 ? 2 : 1;\n}\n\nfunction getMillisecondsInterval(approxInterval) {\n  return numberUtil.nice(approxInterval, true);\n}\n\nfunction getFirstTimestampOfUnit(date, unitName, isUTC) {\n  var outDate = new Date(date);\n\n  switch (getPrimaryTimeUnit(unitName)) {\n    case 'year':\n    case 'month':\n      outDate[monthSetterName(isUTC)](0);\n\n    case 'day':\n      outDate[dateSetterName(isUTC)](1);\n\n    case 'hour':\n      outDate[hoursSetterName(isUTC)](0);\n\n    case 'minute':\n      outDate[minutesSetterName(isUTC)](0);\n\n    case 'second':\n      outDate[secondsSetterName(isUTC)](0);\n      outDate[millisecondsSetterName(isUTC)](0);\n  }\n\n  return outDate.getTime();\n}\n\nfunction getIntervalTicks(bottomUnitName, approxInterval, isUTC, extent) {\n  var safeLimit = 10000;\n  var unitNames = timeUnits;\n  var iter = 0;\n\n  function addTicksInSpan(interval, minTimestamp, maxTimestamp, getMethodName, setMethodName, isDate, out) {\n    var date = new Date(minTimestamp);\n    var dateTime = minTimestamp;\n    var d = date[getMethodName]();\n\n    while (dateTime < maxTimestamp && dateTime <= extent[1]) {\n      out.push({\n        value: dateTime\n      });\n      d += interval;\n      date[setMethodName](d);\n      dateTime = date.getTime();\n    }\n\n    out.push({\n      value: dateTime,\n      notAdd: true\n    });\n  }\n\n  function addLevelTicks(unitName, lastLevelTicks, levelTicks) {\n    var newAddedTicks = [];\n    var isFirstLevel = !lastLevelTicks.length;\n\n    if (isUnitValueSame(getPrimaryTimeUnit(unitName), extent[0], extent[1], isUTC)) {\n      return;\n    }\n\n    if (isFirstLevel) {\n      lastLevelTicks = [{\n        value: getFirstTimestampOfUnit(new Date(extent[0]), unitName, isUTC)\n      }, {\n        value: extent[1]\n      }];\n    }\n\n    for (var i = 0; i < lastLevelTicks.length - 1; i++) {\n      var startTick = lastLevelTicks[i].value;\n      var endTick = lastLevelTicks[i + 1].value;\n\n      if (startTick === endTick) {\n        continue;\n      }\n\n      var interval = void 0;\n      var getterName = void 0;\n      var setterName = void 0;\n      var isDate = false;\n\n      switch (unitName) {\n        case 'year':\n          interval = Math.max(1, Math.round(approxInterval / ONE_DAY / 365));\n          getterName = fullYearGetterName(isUTC);\n          setterName = fullYearSetterName(isUTC);\n          break;\n\n        case 'half-year':\n        case 'quarter':\n        case 'month':\n          interval = getMonthInterval(approxInterval);\n          getterName = monthGetterName(isUTC);\n          setterName = monthSetterName(isUTC);\n          break;\n\n        case 'week':\n        case 'half-week':\n        case 'day':\n          interval = getDateInterval(approxInterval, 31);\n          getterName = dateGetterName(isUTC);\n          setterName = dateSetterName(isUTC);\n          isDate = true;\n          break;\n\n        case 'half-day':\n        case 'quarter-day':\n        case 'hour':\n          interval = getHourInterval(approxInterval);\n          getterName = hoursGetterName(isUTC);\n          setterName = hoursSetterName(isUTC);\n          break;\n\n        case 'minute':\n          interval = getMinutesAndSecondsInterval(approxInterval, true);\n          getterName = minutesGetterName(isUTC);\n          setterName = minutesSetterName(isUTC);\n          break;\n\n        case 'second':\n          interval = getMinutesAndSecondsInterval(approxInterval, false);\n          getterName = secondsGetterName(isUTC);\n          setterName = secondsSetterName(isUTC);\n          break;\n\n        case 'millisecond':\n          interval = getMillisecondsInterval(approxInterval);\n          getterName = millisecondsGetterName(isUTC);\n          setterName = millisecondsSetterName(isUTC);\n          break;\n      }\n\n      addTicksInSpan(interval, startTick, endTick, getterName, setterName, isDate, newAddedTicks);\n\n      if (unitName === 'year' && levelTicks.length > 1 && i === 0) {\n        levelTicks.unshift({\n          value: levelTicks[0].value - interval\n        });\n      }\n    }\n\n    for (var i = 0; i < newAddedTicks.length; i++) {\n      levelTicks.push(newAddedTicks[i]);\n    }\n\n    return newAddedTicks;\n  }\n\n  var levelsTicks = [];\n  var currentLevelTicks = [];\n  var tickCount = 0;\n  var lastLevelTickCount = 0;\n\n  for (var i = 0; i < unitNames.length && iter++ < safeLimit; ++i) {\n    var primaryTimeUnit = getPrimaryTimeUnit(unitNames[i]);\n\n    if (!isPrimaryTimeUnit(unitNames[i])) {\n      continue;\n    }\n\n    addLevelTicks(unitNames[i], levelsTicks[levelsTicks.length - 1] || [], currentLevelTicks);\n    var nextPrimaryTimeUnit = unitNames[i + 1] ? getPrimaryTimeUnit(unitNames[i + 1]) : null;\n\n    if (primaryTimeUnit !== nextPrimaryTimeUnit) {\n      if (currentLevelTicks.length) {\n        lastLevelTickCount = tickCount;\n        currentLevelTicks.sort(function (a, b) {\n          return a.value - b.value;\n        });\n        var levelTicksRemoveDuplicated = [];\n\n        for (var i_1 = 0; i_1 < currentLevelTicks.length; ++i_1) {\n          var tickValue = currentLevelTicks[i_1].value;\n\n          if (i_1 === 0 || currentLevelTicks[i_1 - 1].value !== tickValue) {\n            levelTicksRemoveDuplicated.push(currentLevelTicks[i_1]);\n\n            if (tickValue >= extent[0] && tickValue <= extent[1]) {\n              tickCount++;\n            }\n          }\n        }\n\n        var targetTickNum = (extent[1] - extent[0]) / approxInterval;\n\n        if (tickCount > targetTickNum * 1.5 && lastLevelTickCount > targetTickNum / 1.5) {\n          break;\n        }\n\n        levelsTicks.push(levelTicksRemoveDuplicated);\n\n        if (tickCount > targetTickNum || bottomUnitName === unitNames[i]) {\n          break;\n        }\n      }\n\n      currentLevelTicks = [];\n    }\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (iter >= safeLimit) {\n      warn('Exceed safe limit.');\n    }\n  }\n\n  var levelsTicksInExtent = filter(map(levelsTicks, function (levelTicks) {\n    return filter(levelTicks, function (tick) {\n      return tick.value >= extent[0] && tick.value <= extent[1] && !tick.notAdd;\n    });\n  }), function (levelTicks) {\n    return levelTicks.length > 0;\n  });\n  var ticks = [];\n  var maxLevel = levelsTicksInExtent.length - 1;\n\n  for (var i = 0; i < levelsTicksInExtent.length; ++i) {\n    var levelTicks = levelsTicksInExtent[i];\n\n    for (var k = 0; k < levelTicks.length; ++k) {\n      ticks.push({\n        value: levelTicks[k].value,\n        level: maxLevel - i\n      });\n    }\n  }\n\n  ticks.sort(function (a, b) {\n    return a.value - b.value;\n  });\n  var result = [];\n\n  for (var i = 0; i < ticks.length; ++i) {\n    if (i === 0 || ticks[i].value !== ticks[i - 1].value) {\n      result.push(ticks[i]);\n    }\n  }\n\n  return result;\n}\n\nScale.registerClass(TimeScale);\nexport default TimeScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Scale from './Scale';\nimport * as numberUtil from '../util/number';\nimport * as scaleHelper from './helper';\nimport IntervalScale from './Interval';\nvar scaleProto = Scale.prototype;\nvar intervalScaleProto = IntervalScale.prototype;\nvar getPrecisionSafe = numberUtil.getPrecisionSafe;\nvar roundingErrorFix = numberUtil.round;\nvar mathFloor = Math.floor;\nvar mathCeil = Math.ceil;\nvar mathPow = Math.pow;\nvar mathLog = Math.log;\n\nvar LogScale = function (_super) {\n  __extends(LogScale, _super);\n\n  function LogScale() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'log';\n    _this.base = 10;\n    _this._originalScale = new IntervalScale();\n    _this._interval = 0;\n    return _this;\n  }\n\n  LogScale.prototype.getTicks = function (expandToNicedExtent) {\n    var originalScale = this._originalScale;\n    var extent = this._extent;\n    var originalExtent = originalScale.getExtent();\n    var ticks = intervalScaleProto.getTicks.call(this, expandToNicedExtent);\n    return zrUtil.map(ticks, function (tick) {\n      var val = tick.value;\n      var powVal = numberUtil.round(mathPow(this.base, val));\n      powVal = val === extent[0] && this._fixMin ? fixRoundingError(powVal, originalExtent[0]) : powVal;\n      powVal = val === extent[1] && this._fixMax ? fixRoundingError(powVal, originalExtent[1]) : powVal;\n      return {\n        value: powVal\n      };\n    }, this);\n  };\n\n  LogScale.prototype.setExtent = function (start, end) {\n    var base = this.base;\n    start = mathLog(start) / mathLog(base);\n    end = mathLog(end) / mathLog(base);\n    intervalScaleProto.setExtent.call(this, start, end);\n  };\n\n  LogScale.prototype.getExtent = function () {\n    var base = this.base;\n    var extent = scaleProto.getExtent.call(this);\n    extent[0] = mathPow(base, extent[0]);\n    extent[1] = mathPow(base, extent[1]);\n    var originalScale = this._originalScale;\n    var originalExtent = originalScale.getExtent();\n    this._fixMin && (extent[0] = fixRoundingError(extent[0], originalExtent[0]));\n    this._fixMax && (extent[1] = fixRoundingError(extent[1], originalExtent[1]));\n    return extent;\n  };\n\n  LogScale.prototype.unionExtent = function (extent) {\n    this._originalScale.unionExtent(extent);\n\n    var base = this.base;\n    extent[0] = mathLog(extent[0]) / mathLog(base);\n    extent[1] = mathLog(extent[1]) / mathLog(base);\n    scaleProto.unionExtent.call(this, extent);\n  };\n\n  LogScale.prototype.unionExtentFromData = function (data, dim) {\n    this.unionExtent(data.getApproximateExtent(dim));\n  };\n\n  LogScale.prototype.niceTicks = function (approxTickNum) {\n    approxTickNum = approxTickNum || 10;\n    var extent = this._extent;\n    var span = extent[1] - extent[0];\n\n    if (span === Infinity || span <= 0) {\n      return;\n    }\n\n    var interval = numberUtil.quantity(span);\n    var err = approxTickNum / span * interval;\n\n    if (err <= 0.5) {\n      interval *= 10;\n    }\n\n    while (!isNaN(interval) && Math.abs(interval) < 1 && Math.abs(interval) > 0) {\n      interval *= 10;\n    }\n\n    var niceExtent = [numberUtil.round(mathCeil(extent[0] / interval) * interval), numberUtil.round(mathFloor(extent[1] / interval) * interval)];\n    this._interval = interval;\n    this._niceExtent = niceExtent;\n  };\n\n  LogScale.prototype.niceExtent = function (opt) {\n    intervalScaleProto.niceExtent.call(this, opt);\n    this._fixMin = opt.fixMin;\n    this._fixMax = opt.fixMax;\n  };\n\n  LogScale.prototype.parse = function (val) {\n    return val;\n  };\n\n  LogScale.prototype.contain = function (val) {\n    val = mathLog(val) / mathLog(this.base);\n    return scaleHelper.contain(val, this._extent);\n  };\n\n  LogScale.prototype.normalize = function (val) {\n    val = mathLog(val) / mathLog(this.base);\n    return scaleHelper.normalize(val, this._extent);\n  };\n\n  LogScale.prototype.scale = function (val) {\n    val = scaleHelper.scale(val, this._extent);\n    return mathPow(this.base, val);\n  };\n\n  LogScale.type = 'log';\n  return LogScale;\n}(Scale);\n\nvar proto = LogScale.prototype;\nproto.getMinorTicks = intervalScaleProto.getMinorTicks;\nproto.getLabel = intervalScaleProto.getLabel;\n\nfunction fixRoundingError(val, originalVal) {\n  return roundingErrorFix(val, getPrecisionSafe(originalVal));\n}\n\nScale.registerClass(LogScale);\nexport default LogScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { assert, isArray, eqNaN, isFunction } from 'zrender/lib/core/util';\nimport { parsePercent } from 'zrender/lib/contain/text';\n\nvar ScaleRawExtentInfo = function () {\n  function ScaleRawExtentInfo(scale, model, originalExtent) {\n    this._prepareParams(scale, model, originalExtent);\n  }\n\n  ScaleRawExtentInfo.prototype._prepareParams = function (scale, model, dataExtent) {\n    if (dataExtent[1] < dataExtent[0]) {\n      dataExtent = [NaN, NaN];\n    }\n\n    this._dataMin = dataExtent[0];\n    this._dataMax = dataExtent[1];\n    var isOrdinal = this._isOrdinal = scale.type === 'ordinal';\n    this._needCrossZero = model.getNeedCrossZero && model.getNeedCrossZero();\n    var modelMinRaw = this._modelMinRaw = model.get('min', true);\n\n    if (isFunction(modelMinRaw)) {\n      this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw({\n        min: dataExtent[0],\n        max: dataExtent[1]\n      }));\n    } else if (modelMinRaw !== 'dataMin') {\n      this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw);\n    }\n\n    var modelMaxRaw = this._modelMaxRaw = model.get('max', true);\n\n    if (isFunction(modelMaxRaw)) {\n      this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw({\n        min: dataExtent[0],\n        max: dataExtent[1]\n      }));\n    } else if (modelMaxRaw !== 'dataMax') {\n      this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw);\n    }\n\n    if (isOrdinal) {\n      this._axisDataLen = model.getCategories().length;\n    } else {\n      var boundaryGap = model.get('boundaryGap');\n      var boundaryGapArr = isArray(boundaryGap) ? boundaryGap : [boundaryGap || 0, boundaryGap || 0];\n\n      if (typeof boundaryGapArr[0] === 'boolean' || typeof boundaryGapArr[1] === 'boolean') {\n        if (process.env.NODE_ENV !== 'production') {\n          console.warn('Boolean type for boundaryGap is only ' + 'allowed for ordinal axis. Please use string in ' + 'percentage instead, e.g., \"20%\". Currently, ' + 'boundaryGap is set to be 0.');\n        }\n\n        this._boundaryGapInner = [0, 0];\n      } else {\n        this._boundaryGapInner = [parsePercent(boundaryGapArr[0], 1), parsePercent(boundaryGapArr[1], 1)];\n      }\n    }\n  };\n\n  ScaleRawExtentInfo.prototype.calculate = function () {\n    var isOrdinal = this._isOrdinal;\n    var dataMin = this._dataMin;\n    var dataMax = this._dataMax;\n    var axisDataLen = this._axisDataLen;\n    var boundaryGapInner = this._boundaryGapInner;\n    var span = !isOrdinal ? dataMax - dataMin || Math.abs(dataMin) : null;\n    var min = this._modelMinRaw === 'dataMin' ? dataMin : this._modelMinNum;\n    var max = this._modelMaxRaw === 'dataMax' ? dataMax : this._modelMaxNum;\n    var minFixed = min != null;\n    var maxFixed = max != null;\n\n    if (min == null) {\n      min = isOrdinal ? axisDataLen ? 0 : NaN : dataMin - boundaryGapInner[0] * span;\n    }\n\n    if (max == null) {\n      max = isOrdinal ? axisDataLen ? axisDataLen - 1 : NaN : dataMax + boundaryGapInner[1] * span;\n    }\n\n    (min == null || !isFinite(min)) && (min = NaN);\n    (max == null || !isFinite(max)) && (max = NaN);\n\n    if (min > max) {\n      min = NaN;\n      max = NaN;\n    }\n\n    var isBlank = eqNaN(min) || eqNaN(max) || isOrdinal && !axisDataLen;\n\n    if (this._needCrossZero) {\n      if (min > 0 && max > 0 && !minFixed) {\n        min = 0;\n      }\n\n      if (min < 0 && max < 0 && !maxFixed) {\n        max = 0;\n      }\n    }\n\n    var determinedMin = this._determinedMin;\n    var determinedMax = this._determinedMax;\n\n    if (determinedMin != null) {\n      min = determinedMin;\n      minFixed = true;\n    }\n\n    if (determinedMax != null) {\n      max = determinedMax;\n      maxFixed = true;\n    }\n\n    return {\n      min: min,\n      max: max,\n      minFixed: minFixed,\n      maxFixed: maxFixed,\n      isBlank: isBlank\n    };\n  };\n\n  ScaleRawExtentInfo.prototype.modifyDataMinMax = function (minMaxName, val) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!this.frozen);\n    }\n\n    this[DATA_MIN_MAX_ATTR[minMaxName]] = val;\n  };\n\n  ScaleRawExtentInfo.prototype.setDeterminedMinMax = function (minMaxName, val) {\n    var attr = DETERMINED_MIN_MAX_ATTR[minMaxName];\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!this.frozen && this[attr] == null);\n    }\n\n    this[attr] = val;\n  };\n\n  ScaleRawExtentInfo.prototype.freeze = function () {\n    this.frozen = true;\n  };\n\n  return ScaleRawExtentInfo;\n}();\n\nexport { ScaleRawExtentInfo };\nvar DETERMINED_MIN_MAX_ATTR = {\n  min: '_determinedMin',\n  max: '_determinedMax'\n};\nvar DATA_MIN_MAX_ATTR = {\n  min: '_dataMin',\n  max: '_dataMax'\n};\nexport function ensureScaleRawExtentInfo(scale, model, originalExtent) {\n  var rawExtentInfo = scale.rawExtentInfo;\n\n  if (rawExtentInfo) {\n    return rawExtentInfo;\n  }\n\n  rawExtentInfo = new ScaleRawExtentInfo(scale, model, originalExtent);\n  scale.rawExtentInfo = rawExtentInfo;\n  return rawExtentInfo;\n}\nexport function parseAxisModelMinMax(scale, minMax) {\n  return minMax == null ? null : eqNaN(minMax) ? NaN : scale.parse(minMax);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport OrdinalScale from '../scale/Ordinal';\nimport IntervalScale from '../scale/Interval';\nimport Scale from '../scale/Scale';\nimport { prepareLayoutBarSeries, makeColumnLayout, retrieveColumnLayout } from '../layout/barGrid';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport TimeScale from '../scale/Time';\nimport LogScale from '../scale/Log';\nimport { getStackedDimension } from '../data/helper/dataStackHelper';\nimport { ensureScaleRawExtentInfo } from './scaleRawExtentInfo';\nexport function getScaleExtent(scale, model) {\n  var scaleType = scale.type;\n  var rawExtentResult = ensureScaleRawExtentInfo(scale, model, scale.getExtent()).calculate();\n  scale.setBlank(rawExtentResult.isBlank);\n  var min = rawExtentResult.min;\n  var max = rawExtentResult.max;\n  var ecModel = model.ecModel;\n\n  if (ecModel && scaleType === 'time') {\n    var barSeriesModels = prepareLayoutBarSeries('bar', ecModel);\n    var isBaseAxisAndHasBarSeries_1 = false;\n    zrUtil.each(barSeriesModels, function (seriesModel) {\n      isBaseAxisAndHasBarSeries_1 = isBaseAxisAndHasBarSeries_1 || seriesModel.getBaseAxis() === model.axis;\n    });\n\n    if (isBaseAxisAndHasBarSeries_1) {\n      var barWidthAndOffset = makeColumnLayout(barSeriesModels);\n      var adjustedScale = adjustScaleForOverflow(min, max, model, barWidthAndOffset);\n      min = adjustedScale.min;\n      max = adjustedScale.max;\n    }\n  }\n\n  return {\n    extent: [min, max],\n    fixMin: rawExtentResult.minFixed,\n    fixMax: rawExtentResult.maxFixed\n  };\n}\n\nfunction adjustScaleForOverflow(min, max, model, barWidthAndOffset) {\n  var axisExtent = model.axis.getExtent();\n  var axisLength = axisExtent[1] - axisExtent[0];\n  var barsOnCurrentAxis = retrieveColumnLayout(barWidthAndOffset, model.axis);\n\n  if (barsOnCurrentAxis === undefined) {\n    return {\n      min: min,\n      max: max\n    };\n  }\n\n  var minOverflow = Infinity;\n  zrUtil.each(barsOnCurrentAxis, function (item) {\n    minOverflow = Math.min(item.offset, minOverflow);\n  });\n  var maxOverflow = -Infinity;\n  zrUtil.each(barsOnCurrentAxis, function (item) {\n    maxOverflow = Math.max(item.offset + item.width, maxOverflow);\n  });\n  minOverflow = Math.abs(minOverflow);\n  maxOverflow = Math.abs(maxOverflow);\n  var totalOverFlow = minOverflow + maxOverflow;\n  var oldRange = max - min;\n  var oldRangePercentOfNew = 1 - (minOverflow + maxOverflow) / axisLength;\n  var overflowBuffer = oldRange / oldRangePercentOfNew - oldRange;\n  max += overflowBuffer * (maxOverflow / totalOverFlow);\n  min -= overflowBuffer * (minOverflow / totalOverFlow);\n  return {\n    min: min,\n    max: max\n  };\n}\n\nexport function niceScaleExtent(scale, model) {\n  var extentInfo = getScaleExtent(scale, model);\n  var extent = extentInfo.extent;\n  var splitNumber = model.get('splitNumber');\n\n  if (scale instanceof LogScale) {\n    scale.base = model.get('logBase');\n  }\n\n  var scaleType = scale.type;\n  scale.setExtent(extent[0], extent[1]);\n  scale.niceExtent({\n    splitNumber: splitNumber,\n    fixMin: extentInfo.fixMin,\n    fixMax: extentInfo.fixMax,\n    minInterval: scaleType === 'interval' || scaleType === 'time' ? model.get('minInterval') : null,\n    maxInterval: scaleType === 'interval' || scaleType === 'time' ? model.get('maxInterval') : null\n  });\n  var interval = model.get('interval');\n\n  if (interval != null) {\n    scale.setInterval && scale.setInterval(interval);\n  }\n}\nexport function createScaleByModel(model, axisType) {\n  axisType = axisType || model.get('type');\n\n  if (axisType) {\n    switch (axisType) {\n      case 'category':\n        return new OrdinalScale({\n          ordinalMeta: model.getOrdinalMeta ? model.getOrdinalMeta() : model.getCategories(),\n          extent: [Infinity, -Infinity]\n        });\n\n      case 'time':\n        return new TimeScale({\n          locale: model.ecModel.getLocaleModel(),\n          useUTC: model.ecModel.get('useUTC')\n        });\n\n      default:\n        return new (Scale.getClass(axisType) || IntervalScale)();\n    }\n  }\n}\nexport function ifAxisCrossZero(axis) {\n  var dataExtent = axis.scale.getExtent();\n  var min = dataExtent[0];\n  var max = dataExtent[1];\n  return !(min > 0 && max > 0 || min < 0 && max < 0);\n}\nexport function makeLabelFormatter(axis) {\n  var labelFormatter = axis.getLabelModel().get('formatter');\n  var categoryTickStart = axis.type === 'category' ? axis.scale.getExtent()[0] : null;\n\n  if (axis.scale.type === 'time') {\n    return function (tpl) {\n      return function (tick, idx) {\n        return axis.scale.getFormattedLabel(tick, idx, tpl);\n      };\n    }(labelFormatter);\n  } else if (typeof labelFormatter === 'string') {\n    return function (tpl) {\n      return function (tick) {\n        var label = axis.scale.getLabel(tick);\n        var text = tpl.replace('{value}', label != null ? label : '');\n        return text;\n      };\n    }(labelFormatter);\n  } else if (typeof labelFormatter === 'function') {\n    return function (cb) {\n      return function (tick, idx) {\n        if (categoryTickStart != null) {\n          idx = tick.value - categoryTickStart;\n        }\n\n        return cb(getAxisRawValue(axis, tick), idx, tick.level != null ? {\n          level: tick.level\n        } : null);\n      };\n    }(labelFormatter);\n  } else {\n    return function (tick) {\n      return axis.scale.getLabel(tick);\n    };\n  }\n}\nexport function getAxisRawValue(axis, tick) {\n  return axis.type === 'category' ? axis.scale.getLabel(tick) : tick.value;\n}\nexport function estimateLabelUnionRect(axis) {\n  var axisModel = axis.model;\n  var scale = axis.scale;\n\n  if (!axisModel.get(['axisLabel', 'show']) || scale.isBlank()) {\n    return;\n  }\n\n  var realNumberScaleTicks;\n  var tickCount;\n  var categoryScaleExtent = scale.getExtent();\n\n  if (scale instanceof OrdinalScale) {\n    tickCount = scale.count();\n  } else {\n    realNumberScaleTicks = scale.getTicks();\n    tickCount = realNumberScaleTicks.length;\n  }\n\n  var axisLabelModel = axis.getLabelModel();\n  var labelFormatter = makeLabelFormatter(axis);\n  var rect;\n  var step = 1;\n\n  if (tickCount > 40) {\n    step = Math.ceil(tickCount / 40);\n  }\n\n  for (var i = 0; i < tickCount; i += step) {\n    var tick = realNumberScaleTicks ? realNumberScaleTicks[i] : {\n      value: categoryScaleExtent[0] + i\n    };\n    var label = labelFormatter(tick, i);\n    var unrotatedSingleRect = axisLabelModel.getTextRect(label);\n    var singleRect = rotateTextRect(unrotatedSingleRect, axisLabelModel.get('rotate') || 0);\n    rect ? rect.union(singleRect) : rect = singleRect;\n  }\n\n  return rect;\n}\n\nfunction rotateTextRect(textRect, rotate) {\n  var rotateRadians = rotate * Math.PI / 180;\n  var beforeWidth = textRect.width;\n  var beforeHeight = textRect.height;\n  var afterWidth = beforeWidth * Math.abs(Math.cos(rotateRadians)) + Math.abs(beforeHeight * Math.sin(rotateRadians));\n  var afterHeight = beforeWidth * Math.abs(Math.sin(rotateRadians)) + Math.abs(beforeHeight * Math.cos(rotateRadians));\n  var rotatedRect = new BoundingRect(textRect.x, textRect.y, afterWidth, afterHeight);\n  return rotatedRect;\n}\n\nexport function getOptionCategoryInterval(model) {\n  var interval = model.get('interval');\n  return interval == null ? 'auto' : interval;\n}\nexport function shouldShowAllLabels(axis) {\n  return axis.type === 'category' && getOptionCategoryInterval(axis.getLabelModel()) === 0;\n}\nexport function getDataDimensionsOnAxis(data, axisDim) {\n  var dataDimMap = {};\n  zrUtil.each(data.mapDimensionsAll(axisDim), function (dataDim) {\n    dataDimMap[getStackedDimension(data, dataDim)] = true;\n  });\n  return zrUtil.keys(dataDimMap);\n}\nexport function unionAxisExtentFromData(dataExtent, data, axisDim) {\n  if (data) {\n    zrUtil.each(getDataDimensionsOnAxis(data, axisDim), function (dim) {\n      var seriesExtent = data.getApproximateExtent(dim);\n      seriesExtent[0] < dataExtent[0] && (dataExtent[0] = seriesExtent[0]);\n      seriesExtent[1] > dataExtent[1] && (dataExtent[1] = seriesExtent[1]);\n    });\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar AxisModelCommonMixin = function () {\n  function AxisModelCommonMixin() {}\n\n  AxisModelCommonMixin.prototype.getNeedCrossZero = function () {\n    var option = this.option;\n    return !option.scale;\n  };\n\n  AxisModelCommonMixin.prototype.getCoordSysModel = function () {\n    return;\n  };\n\n  return AxisModelCommonMixin;\n}();\n\nexport { AxisModelCommonMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport createListFromArray from '../../chart/helper/createListFromArray';\nimport * as axisHelper from '../../coord/axisHelper';\nimport { AxisModelCommonMixin } from '../../coord/axisModelCommonMixin';\nimport Model from '../../model/Model';\nimport { getLayoutRect } from '../../util/layout';\nimport { enableDataStack, isDimensionStacked, getStackedDimension } from '../../data/helper/dataStackHelper';\nimport { getECData } from '../../util/innerStore';\nimport { createTextStyle as innerCreateTextStyle } from '../../label/labelStyle';\nexport function createList(seriesModel) {\n  return createListFromArray(seriesModel.getSource(), seriesModel);\n}\nexport { getLayoutRect };\nexport { default as createDimensions } from '../../data/helper/createDimensions';\nexport var dataStack = {\n  isDimensionStacked: isDimensionStacked,\n  enableDataStack: enableDataStack,\n  getStackedDimension: getStackedDimension\n};\nexport { createSymbol } from '../../util/symbol';\nexport function createScale(dataExtent, option) {\n  var axisModel = option;\n\n  if (!(option instanceof Model)) {\n    axisModel = new Model(option);\n  }\n\n  var scale = axisHelper.createScaleByModel(axisModel);\n  scale.setExtent(dataExtent[0], dataExtent[1]);\n  axisHelper.niceScaleExtent(scale, axisModel);\n  return scale;\n}\nexport function mixinAxisModelCommonMethods(Model) {\n  zrUtil.mixin(Model, AxisModelCommonMixin);\n}\nexport { getECData };\nexport { enableHoverEmphasis } from '../../util/states';\nexport function createTextStyle(textStyleModel, opts) {\n  opts = opts || {};\n  return innerCreateTextStyle(textStyleModel, null, null, opts.state !== 'normal');\n}","import windingLine from './windingLine';\nvar EPSILON = 1e-8;\nfunction isAroundEqual(a, b) {\n    return Math.abs(a - b) < EPSILON;\n}\nexport function contain(points, x, y) {\n    var w = 0;\n    var p = points[0];\n    if (!p) {\n        return false;\n    }\n    for (var i = 1; i < points.length; i++) {\n        var p2 = points[i];\n        w += windingLine(p[0], p[1], p2[0], p2[1], x, y);\n        p = p2;\n    }\n    var p0 = points[0];\n    if (!isAroundEqual(p[0], p0[0]) || !isAroundEqual(p[1], p0[1])) {\n        w += windingLine(p[0], p[1], p0[0], p0[1], x, y);\n    }\n    return w !== 0;\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport * as bbox from 'zrender/lib/core/bbox';\nimport * as vec2 from 'zrender/lib/core/vector';\nimport * as polygonContain from 'zrender/lib/contain/polygon';\n\nvar Region = function () {\n  function Region(name, geometries, cp) {\n    this.name = name;\n    this.geometries = geometries;\n\n    if (!cp) {\n      var rect = this.getBoundingRect();\n      cp = [rect.x + rect.width / 2, rect.y + rect.height / 2];\n    } else {\n      cp = [cp[0], cp[1]];\n    }\n\n    this.center = cp;\n  }\n\n  Region.prototype.getBoundingRect = function () {\n    var rect = this._rect;\n\n    if (rect) {\n      return rect;\n    }\n\n    var MAX_NUMBER = Number.MAX_VALUE;\n    var min = [MAX_NUMBER, MAX_NUMBER];\n    var max = [-MAX_NUMBER, -MAX_NUMBER];\n    var min2 = [];\n    var max2 = [];\n    var geometries = this.geometries;\n    var i = 0;\n\n    for (; i < geometries.length; i++) {\n      if (geometries[i].type !== 'polygon') {\n        continue;\n      }\n\n      var exterior = geometries[i].exterior;\n      bbox.fromPoints(exterior, min2, max2);\n      vec2.min(min, min, min2);\n      vec2.max(max, max, max2);\n    }\n\n    if (i === 0) {\n      min[0] = min[1] = max[0] = max[1] = 0;\n    }\n\n    return this._rect = new BoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n  };\n\n  Region.prototype.contain = function (coord) {\n    var rect = this.getBoundingRect();\n    var geometries = this.geometries;\n\n    if (!rect.contain(coord[0], coord[1])) {\n      return false;\n    }\n\n    loopGeo: for (var i = 0, len = geometries.length; i < len; i++) {\n      if (geometries[i].type !== 'polygon') {\n        continue;\n      }\n\n      var exterior = geometries[i].exterior;\n      var interiors = geometries[i].interiors;\n\n      if (polygonContain.contain(exterior, coord[0], coord[1])) {\n        for (var k = 0; k < (interiors ? interiors.length : 0); k++) {\n          if (polygonContain.contain(interiors[k], coord[0], coord[1])) {\n            continue loopGeo;\n          }\n        }\n\n        return true;\n      }\n    }\n\n    return false;\n  };\n\n  Region.prototype.transformTo = function (x, y, width, height) {\n    var rect = this.getBoundingRect();\n    var aspect = rect.width / rect.height;\n\n    if (!width) {\n      width = aspect * height;\n    } else if (!height) {\n      height = width / aspect;\n    }\n\n    var target = new BoundingRect(x, y, width, height);\n    var transform = rect.calculateTransform(target);\n    var geometries = this.geometries;\n\n    for (var i = 0; i < geometries.length; i++) {\n      if (geometries[i].type !== 'polygon') {\n        continue;\n      }\n\n      var exterior = geometries[i].exterior;\n      var interiors = geometries[i].interiors;\n\n      for (var p = 0; p < exterior.length; p++) {\n        vec2.applyTransform(exterior[p], exterior[p], transform);\n      }\n\n      for (var h = 0; h < (interiors ? interiors.length : 0); h++) {\n        for (var p = 0; p < interiors[h].length; p++) {\n          vec2.applyTransform(interiors[h][p], interiors[h][p], transform);\n        }\n      }\n    }\n\n    rect = this._rect;\n    rect.copy(target);\n    this.center = [rect.x + rect.width / 2, rect.y + rect.height / 2];\n  };\n\n  Region.prototype.cloneShallow = function (name) {\n    name == null && (name = this.name);\n    var newRegion = new Region(name, this.geometries, this.center);\n    newRegion._rect = this._rect;\n    newRegion.transformTo = null;\n    return newRegion;\n  };\n\n  return Region;\n}();\n\nexport default Region;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Region from './Region';\n\nfunction decode(json) {\n  if (!json.UTF8Encoding) {\n    return json;\n  }\n\n  var jsonCompressed = json;\n  var encodeScale = jsonCompressed.UTF8Scale;\n\n  if (encodeScale == null) {\n    encodeScale = 1024;\n  }\n\n  var features = jsonCompressed.features;\n\n  for (var f = 0; f < features.length; f++) {\n    var feature = features[f];\n    var geometry = feature.geometry;\n\n    if (geometry.type === 'Polygon') {\n      var coordinates = geometry.coordinates;\n\n      for (var c = 0; c < coordinates.length; c++) {\n        coordinates[c] = decodePolygon(coordinates[c], geometry.encodeOffsets[c], encodeScale);\n      }\n    } else if (geometry.type === 'MultiPolygon') {\n      var coordinates = geometry.coordinates;\n\n      for (var c = 0; c < coordinates.length; c++) {\n        var coordinate = coordinates[c];\n\n        for (var c2 = 0; c2 < coordinate.length; c2++) {\n          coordinate[c2] = decodePolygon(coordinate[c2], geometry.encodeOffsets[c][c2], encodeScale);\n        }\n      }\n    }\n  }\n\n  jsonCompressed.UTF8Encoding = false;\n  return jsonCompressed;\n}\n\nfunction decodePolygon(coordinate, encodeOffsets, encodeScale) {\n  var result = [];\n  var prevX = encodeOffsets[0];\n  var prevY = encodeOffsets[1];\n\n  for (var i = 0; i < coordinate.length; i += 2) {\n    var x = coordinate.charCodeAt(i) - 64;\n    var y = coordinate.charCodeAt(i + 1) - 64;\n    x = x >> 1 ^ -(x & 1);\n    y = y >> 1 ^ -(y & 1);\n    x += prevX;\n    y += prevY;\n    prevX = x;\n    prevY = y;\n    result.push([x / encodeScale, y / encodeScale]);\n  }\n\n  return result;\n}\n\nexport default function parseGeoJSON(geoJson, nameProperty) {\n  geoJson = decode(geoJson);\n  return zrUtil.map(zrUtil.filter(geoJson.features, function (featureObj) {\n    return featureObj.geometry && featureObj.properties && featureObj.geometry.coordinates.length > 0;\n  }), function (featureObj) {\n    var properties = featureObj.properties;\n    var geo = featureObj.geometry;\n    var geometries = [];\n\n    if (geo.type === 'Polygon') {\n      var coordinates = geo.coordinates;\n      geometries.push({\n        type: 'polygon',\n        exterior: coordinates[0],\n        interiors: coordinates.slice(1)\n      });\n    }\n\n    if (geo.type === 'MultiPolygon') {\n      var coordinates = geo.coordinates;\n      zrUtil.each(coordinates, function (item) {\n        if (item[0]) {\n          geometries.push({\n            type: 'polygon',\n            exterior: item[0],\n            interiors: item.slice(1)\n          });\n        }\n      });\n    }\n\n    var region = new Region(properties[nameProperty || 'name'], geometries, properties.cp);\n    region.properties = properties;\n    return region;\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as textContain from 'zrender/lib/contain/text';\nimport { makeInner } from '../util/model';\nimport { makeLabelFormatter, getOptionCategoryInterval, shouldShowAllLabels } from './axisHelper';\nvar inner = makeInner();\nexport function createAxisLabels(axis) {\n  return axis.type === 'category' ? makeCategoryLabels(axis) : makeRealNumberLabels(axis);\n}\nexport function createAxisTicks(axis, tickModel) {\n  return axis.type === 'category' ? makeCategoryTicks(axis, tickModel) : {\n    ticks: zrUtil.map(axis.scale.getTicks(), function (tick) {\n      return tick.value;\n    })\n  };\n}\n\nfunction makeCategoryLabels(axis) {\n  var labelModel = axis.getLabelModel();\n  var result = makeCategoryLabelsActually(axis, labelModel);\n  return !labelModel.get('show') || axis.scale.isBlank() ? {\n    labels: [],\n    labelCategoryInterval: result.labelCategoryInterval\n  } : result;\n}\n\nfunction makeCategoryLabelsActually(axis, labelModel) {\n  var labelsCache = getListCache(axis, 'labels');\n  var optionLabelInterval = getOptionCategoryInterval(labelModel);\n  var result = listCacheGet(labelsCache, optionLabelInterval);\n\n  if (result) {\n    return result;\n  }\n\n  var labels;\n  var numericLabelInterval;\n\n  if (zrUtil.isFunction(optionLabelInterval)) {\n    labels = makeLabelsByCustomizedCategoryInterval(axis, optionLabelInterval);\n  } else {\n    numericLabelInterval = optionLabelInterval === 'auto' ? makeAutoCategoryInterval(axis) : optionLabelInterval;\n    labels = makeLabelsByNumericCategoryInterval(axis, numericLabelInterval);\n  }\n\n  return listCacheSet(labelsCache, optionLabelInterval, {\n    labels: labels,\n    labelCategoryInterval: numericLabelInterval\n  });\n}\n\nfunction makeCategoryTicks(axis, tickModel) {\n  var ticksCache = getListCache(axis, 'ticks');\n  var optionTickInterval = getOptionCategoryInterval(tickModel);\n  var result = listCacheGet(ticksCache, optionTickInterval);\n\n  if (result) {\n    return result;\n  }\n\n  var ticks;\n  var tickCategoryInterval;\n\n  if (!tickModel.get('show') || axis.scale.isBlank()) {\n    ticks = [];\n  }\n\n  if (zrUtil.isFunction(optionTickInterval)) {\n    ticks = makeLabelsByCustomizedCategoryInterval(axis, optionTickInterval, true);\n  } else if (optionTickInterval === 'auto') {\n    var labelsResult = makeCategoryLabelsActually(axis, axis.getLabelModel());\n    tickCategoryInterval = labelsResult.labelCategoryInterval;\n    ticks = zrUtil.map(labelsResult.labels, function (labelItem) {\n      return labelItem.tickValue;\n    });\n  } else {\n    tickCategoryInterval = optionTickInterval;\n    ticks = makeLabelsByNumericCategoryInterval(axis, tickCategoryInterval, true);\n  }\n\n  return listCacheSet(ticksCache, optionTickInterval, {\n    ticks: ticks,\n    tickCategoryInterval: tickCategoryInterval\n  });\n}\n\nfunction makeRealNumberLabels(axis) {\n  var ticks = axis.scale.getTicks();\n  var labelFormatter = makeLabelFormatter(axis);\n  return {\n    labels: zrUtil.map(ticks, function (tick, idx) {\n      return {\n        formattedLabel: labelFormatter(tick, idx),\n        rawLabel: axis.scale.getLabel(tick),\n        tickValue: tick.value\n      };\n    })\n  };\n}\n\nfunction getListCache(axis, prop) {\n  return inner(axis)[prop] || (inner(axis)[prop] = []);\n}\n\nfunction listCacheGet(cache, key) {\n  for (var i = 0; i < cache.length; i++) {\n    if (cache[i].key === key) {\n      return cache[i].value;\n    }\n  }\n}\n\nfunction listCacheSet(cache, key, value) {\n  cache.push({\n    key: key,\n    value: value\n  });\n  return value;\n}\n\nfunction makeAutoCategoryInterval(axis) {\n  var result = inner(axis).autoInterval;\n  return result != null ? result : inner(axis).autoInterval = axis.calculateCategoryInterval();\n}\n\nexport function calculateCategoryInterval(axis) {\n  var params = fetchAutoCategoryIntervalCalculationParams(axis);\n  var labelFormatter = makeLabelFormatter(axis);\n  var rotation = (params.axisRotate - params.labelRotate) / 180 * Math.PI;\n  var ordinalScale = axis.scale;\n  var ordinalExtent = ordinalScale.getExtent();\n  var tickCount = ordinalScale.count();\n\n  if (ordinalExtent[1] - ordinalExtent[0] < 1) {\n    return 0;\n  }\n\n  var step = 1;\n\n  if (tickCount > 40) {\n    step = Math.max(1, Math.floor(tickCount / 40));\n  }\n\n  var tickValue = ordinalExtent[0];\n  var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue);\n  var unitW = Math.abs(unitSpan * Math.cos(rotation));\n  var unitH = Math.abs(unitSpan * Math.sin(rotation));\n  var maxW = 0;\n  var maxH = 0;\n\n  for (; tickValue <= ordinalExtent[1]; tickValue += step) {\n    var width = 0;\n    var height = 0;\n    var rect = textContain.getBoundingRect(labelFormatter({\n      value: tickValue\n    }), params.font, 'center', 'top');\n    width = rect.width * 1.3;\n    height = rect.height * 1.3;\n    maxW = Math.max(maxW, width, 7);\n    maxH = Math.max(maxH, height, 7);\n  }\n\n  var dw = maxW / unitW;\n  var dh = maxH / unitH;\n  isNaN(dw) && (dw = Infinity);\n  isNaN(dh) && (dh = Infinity);\n  var interval = Math.max(0, Math.floor(Math.min(dw, dh)));\n  var cache = inner(axis.model);\n  var axisExtent = axis.getExtent();\n  var lastAutoInterval = cache.lastAutoInterval;\n  var lastTickCount = cache.lastTickCount;\n\n  if (lastAutoInterval != null && lastTickCount != null && Math.abs(lastAutoInterval - interval) <= 1 && Math.abs(lastTickCount - tickCount) <= 1 && lastAutoInterval > interval && cache.axisExtent0 === axisExtent[0] && cache.axisExtent1 === axisExtent[1]) {\n    interval = lastAutoInterval;\n  } else {\n    cache.lastTickCount = tickCount;\n    cache.lastAutoInterval = interval;\n    cache.axisExtent0 = axisExtent[0];\n    cache.axisExtent1 = axisExtent[1];\n  }\n\n  return interval;\n}\n\nfunction fetchAutoCategoryIntervalCalculationParams(axis) {\n  var labelModel = axis.getLabelModel();\n  return {\n    axisRotate: axis.getRotate ? axis.getRotate() : axis.isHorizontal && !axis.isHorizontal() ? 90 : 0,\n    labelRotate: labelModel.get('rotate') || 0,\n    font: labelModel.getFont()\n  };\n}\n\nfunction makeLabelsByNumericCategoryInterval(axis, categoryInterval, onlyTick) {\n  var labelFormatter = makeLabelFormatter(axis);\n  var ordinalScale = axis.scale;\n  var ordinalExtent = ordinalScale.getExtent();\n  var labelModel = axis.getLabelModel();\n  var result = [];\n  var step = Math.max((categoryInterval || 0) + 1, 1);\n  var startTick = ordinalExtent[0];\n  var tickCount = ordinalScale.count();\n\n  if (startTick !== 0 && step > 1 && tickCount / step > 2) {\n    startTick = Math.round(Math.ceil(startTick / step) * step);\n  }\n\n  var showAllLabel = shouldShowAllLabels(axis);\n  var includeMinLabel = labelModel.get('showMinLabel') || showAllLabel;\n  var includeMaxLabel = labelModel.get('showMaxLabel') || showAllLabel;\n\n  if (includeMinLabel && startTick !== ordinalExtent[0]) {\n    addItem(ordinalExtent[0]);\n  }\n\n  var tickValue = startTick;\n\n  for (; tickValue <= ordinalExtent[1]; tickValue += step) {\n    addItem(tickValue);\n  }\n\n  if (includeMaxLabel && tickValue - step !== ordinalExtent[1]) {\n    addItem(ordinalExtent[1]);\n  }\n\n  function addItem(tickValue) {\n    var tickObj = {\n      value: tickValue\n    };\n    result.push(onlyTick ? tickValue : {\n      formattedLabel: labelFormatter(tickObj),\n      rawLabel: ordinalScale.getLabel(tickObj),\n      tickValue: tickValue\n    });\n  }\n\n  return result;\n}\n\nfunction makeLabelsByCustomizedCategoryInterval(axis, categoryInterval, onlyTick) {\n  var ordinalScale = axis.scale;\n  var labelFormatter = makeLabelFormatter(axis);\n  var result = [];\n  zrUtil.each(ordinalScale.getTicks(), function (tick) {\n    var rawLabel = ordinalScale.getLabel(tick);\n    var tickValue = tick.value;\n\n    if (categoryInterval(tick.value, rawLabel)) {\n      result.push(onlyTick ? tickValue : {\n        formattedLabel: labelFormatter(tick),\n        rawLabel: rawLabel,\n        tickValue: tickValue\n      });\n    }\n  });\n  return result;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, map } from 'zrender/lib/core/util';\nimport { linearMap, getPixelPrecision, round } from '../util/number';\nimport { createAxisTicks, createAxisLabels, calculateCategoryInterval } from './axisTickLabelBuilder';\nvar NORMALIZED_EXTENT = [0, 1];\n\nvar Axis = function () {\n  function Axis(dim, scale, extent) {\n    this.onBand = false;\n    this.inverse = false;\n    this.dim = dim;\n    this.scale = scale;\n    this._extent = extent || [0, 0];\n  }\n\n  Axis.prototype.contain = function (coord) {\n    var extent = this._extent;\n    var min = Math.min(extent[0], extent[1]);\n    var max = Math.max(extent[0], extent[1]);\n    return coord >= min && coord <= max;\n  };\n\n  Axis.prototype.containData = function (data) {\n    return this.scale.contain(data);\n  };\n\n  Axis.prototype.getExtent = function () {\n    return this._extent.slice();\n  };\n\n  Axis.prototype.getPixelPrecision = function (dataExtent) {\n    return getPixelPrecision(dataExtent || this.scale.getExtent(), this._extent);\n  };\n\n  Axis.prototype.setExtent = function (start, end) {\n    var extent = this._extent;\n    extent[0] = start;\n    extent[1] = end;\n  };\n\n  Axis.prototype.dataToCoord = function (data, clamp) {\n    var extent = this._extent;\n    var scale = this.scale;\n    data = scale.normalize(data);\n\n    if (this.onBand && scale.type === 'ordinal') {\n      extent = extent.slice();\n      fixExtentWithBands(extent, scale.count());\n    }\n\n    return linearMap(data, NORMALIZED_EXTENT, extent, clamp);\n  };\n\n  Axis.prototype.coordToData = function (coord, clamp) {\n    var extent = this._extent;\n    var scale = this.scale;\n\n    if (this.onBand && scale.type === 'ordinal') {\n      extent = extent.slice();\n      fixExtentWithBands(extent, scale.count());\n    }\n\n    var t = linearMap(coord, extent, NORMALIZED_EXTENT, clamp);\n    return this.scale.scale(t);\n  };\n\n  Axis.prototype.pointToData = function (point, clamp) {\n    return;\n  };\n\n  Axis.prototype.getTicksCoords = function (opt) {\n    opt = opt || {};\n    var tickModel = opt.tickModel || this.getTickModel();\n    var result = createAxisTicks(this, tickModel);\n    var ticks = result.ticks;\n    var ticksCoords = map(ticks, function (tickVal) {\n      return {\n        coord: this.dataToCoord(this.scale.type === 'ordinal' ? this.scale.getRawOrdinalNumber(tickVal) : tickVal),\n        tickValue: tickVal\n      };\n    }, this);\n    var alignWithLabel = tickModel.get('alignWithLabel');\n    fixOnBandTicksCoords(this, ticksCoords, alignWithLabel, opt.clamp);\n    return ticksCoords;\n  };\n\n  Axis.prototype.getMinorTicksCoords = function () {\n    if (this.scale.type === 'ordinal') {\n      return [];\n    }\n\n    var minorTickModel = this.model.getModel('minorTick');\n    var splitNumber = minorTickModel.get('splitNumber');\n\n    if (!(splitNumber > 0 && splitNumber < 100)) {\n      splitNumber = 5;\n    }\n\n    var minorTicks = this.scale.getMinorTicks(splitNumber);\n    var minorTicksCoords = map(minorTicks, function (minorTicksGroup) {\n      return map(minorTicksGroup, function (minorTick) {\n        return {\n          coord: this.dataToCoord(minorTick),\n          tickValue: minorTick\n        };\n      }, this);\n    }, this);\n    return minorTicksCoords;\n  };\n\n  Axis.prototype.getViewLabels = function () {\n    return createAxisLabels(this).labels;\n  };\n\n  Axis.prototype.getLabelModel = function () {\n    return this.model.getModel('axisLabel');\n  };\n\n  Axis.prototype.getTickModel = function () {\n    return this.model.getModel('axisTick');\n  };\n\n  Axis.prototype.getBandWidth = function () {\n    var axisExtent = this._extent;\n    var dataExtent = this.scale.getExtent();\n    var len = dataExtent[1] - dataExtent[0] + (this.onBand ? 1 : 0);\n    len === 0 && (len = 1);\n    var size = Math.abs(axisExtent[1] - axisExtent[0]);\n    return Math.abs(size) / len;\n  };\n\n  Axis.prototype.calculateCategoryInterval = function () {\n    return calculateCategoryInterval(this);\n  };\n\n  return Axis;\n}();\n\nfunction fixExtentWithBands(extent, nTick) {\n  var size = extent[1] - extent[0];\n  var len = nTick;\n  var margin = size / len / 2;\n  extent[0] += margin;\n  extent[1] -= margin;\n}\n\nfunction fixOnBandTicksCoords(axis, ticksCoords, alignWithLabel, clamp) {\n  var ticksLen = ticksCoords.length;\n\n  if (!axis.onBand || alignWithLabel || !ticksLen) {\n    return;\n  }\n\n  var axisExtent = axis.getExtent();\n  var last;\n  var diffSize;\n\n  if (ticksLen === 1) {\n    ticksCoords[0].coord = axisExtent[0];\n    last = ticksCoords[1] = {\n      coord: axisExtent[0]\n    };\n  } else {\n    var crossLen = ticksCoords[ticksLen - 1].tickValue - ticksCoords[0].tickValue;\n    var shift_1 = (ticksCoords[ticksLen - 1].coord - ticksCoords[0].coord) / crossLen;\n    each(ticksCoords, function (ticksItem) {\n      ticksItem.coord -= shift_1 / 2;\n    });\n    var dataExtent = axis.scale.getExtent();\n    diffSize = 1 + dataExtent[1] - ticksCoords[ticksLen - 1].tickValue;\n    last = {\n      coord: ticksCoords[ticksLen - 1].coord + shift_1 * diffSize\n    };\n    ticksCoords.push(last);\n  }\n\n  var inverse = axisExtent[0] > axisExtent[1];\n\n  if (littleThan(ticksCoords[0].coord, axisExtent[0])) {\n    clamp ? ticksCoords[0].coord = axisExtent[0] : ticksCoords.shift();\n  }\n\n  if (clamp && littleThan(axisExtent[0], ticksCoords[0].coord)) {\n    ticksCoords.unshift({\n      coord: axisExtent[0]\n    });\n  }\n\n  if (littleThan(axisExtent[1], last.coord)) {\n    clamp ? last.coord = axisExtent[1] : ticksCoords.pop();\n  }\n\n  if (clamp && littleThan(last.coord, axisExtent[1])) {\n    ticksCoords.push({\n      coord: axisExtent[1]\n    });\n  }\n\n  function littleThan(a, b) {\n    a = round(a);\n    b = round(b);\n    return inverse ? a > b : a < b;\n  }\n}\n\nexport default Axis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ComponentModel from '../model/Component';\nimport ComponentView from '../view/Component';\nimport SeriesModel from '../model/Series';\nimport ChartView from '../view/Chart';\nimport * as zrender_1 from 'zrender/lib/zrender';\nexport { zrender_1 as zrender };\nimport * as matrix_1 from 'zrender/lib/core/matrix';\nexport { matrix_1 as matrix };\nimport * as vector_1 from 'zrender/lib/core/vector';\nexport { vector_1 as vector };\nimport * as zrUtil_1 from 'zrender/lib/core/util';\nexport { zrUtil_1 as zrUtil };\nimport * as color_1 from 'zrender/lib/tool/color';\nexport { color_1 as color };\nexport { throttle } from '../util/throttle';\nimport * as helper_1 from './api/helper';\nexport { helper_1 as helper };\nexport { use } from '../extension';\nexport { default as parseGeoJSON } from '../coord/geo/parseGeoJson';\nexport { default as parseGeoJson } from '../coord/geo/parseGeoJson';\nimport * as number_1 from './api/number';\nexport { number_1 as number };\nimport * as time_1 from './api/time';\nexport { time_1 as time };\nimport * as graphic_1 from './api/graphic';\nexport { graphic_1 as graphic };\nimport * as format_1 from './api/format';\nexport { format_1 as format };\nimport * as util_1 from './api/util';\nexport { util_1 as util };\nexport { default as env } from 'zrender/lib/core/env';\nexport { default as List } from '../data/List';\nexport { default as Model } from '../model/Model';\nexport { default as Axis } from '../coord/Axis';\nexport { ComponentModel, ComponentView, SeriesModel, ChartView };\nexport { brushSingle as innerDrawElementOnCanvas } from 'zrender/lib/canvas/graphic';\nexport function extendComponentModel(proto) {\n  var Model = ComponentModel.extend(proto);\n  ComponentModel.registerClass(Model);\n  return Model;\n}\nexport function extendComponentView(proto) {\n  var View = ComponentView.extend(proto);\n  ComponentView.registerClass(View);\n  return View;\n}\nexport function extendSeriesModel(proto) {\n  var Model = SeriesModel.extend(proto);\n  SeriesModel.registerClass(Model);\n  return Model;\n}\nexport function extendChartView(proto) {\n  var View = ChartView.extend(proto);\n  ChartView.registerClass(View);\n  return View;\n}","export function createElement(name) {\n    return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\n","function diff(oldArr, newArr, equals) {\n    if (!equals) {\n        equals = function (a, b) {\n            return a === b;\n        };\n    }\n    oldArr = oldArr.slice();\n    newArr = newArr.slice();\n    var newLen = newArr.length;\n    var oldLen = oldArr.length;\n    var editLength = 1;\n    var maxEditLength = newLen + oldLen;\n    var bestPath = [{ newPos: -1, components: [] }];\n    var oldPos = extractCommon(bestPath[0], newArr, oldArr, 0, equals);\n    if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n        var indices = [];\n        for (var i = 0; i < newArr.length; i++) {\n            indices.push(i);\n        }\n        return [{\n                indices: indices,\n                count: newArr.length,\n                added: false,\n                removed: false\n            }];\n    }\n    function execEditLength() {\n        for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {\n            var basePath;\n            var addPath = bestPath[diagonalPath - 1];\n            var removePath = bestPath[diagonalPath + 1];\n            var oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;\n            if (addPath) {\n                bestPath[diagonalPath - 1] = undefined;\n            }\n            var canAdd = addPath && addPath.newPos + 1 < newLen;\n            var canRemove = removePath && 0 <= oldPos && oldPos < oldLen;\n            if (!canAdd && !canRemove) {\n                bestPath[diagonalPath] = undefined;\n                continue;\n            }\n            if (!canAdd || (canRemove && addPath.newPos < removePath.newPos)) {\n                basePath = clonePath(removePath);\n                pushComponent(basePath.components, false, true);\n            }\n            else {\n                basePath = addPath;\n                basePath.newPos++;\n                pushComponent(basePath.components, true, false);\n            }\n            oldPos = extractCommon(basePath, newArr, oldArr, diagonalPath, equals);\n            if (basePath.newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n                return buildValues(basePath.components);\n            }\n            else {\n                bestPath[diagonalPath] = basePath;\n            }\n        }\n        editLength++;\n    }\n    while (editLength <= maxEditLength) {\n        var ret = execEditLength();\n        if (ret) {\n            return ret;\n        }\n    }\n}\nfunction extractCommon(basePath, newArr, oldArr, diagonalPath, equals) {\n    var newLen = newArr.length;\n    var oldLen = oldArr.length;\n    var newPos = basePath.newPos;\n    var oldPos = newPos - diagonalPath;\n    var commonCount = 0;\n    while (newPos + 1 < newLen && oldPos + 1 < oldLen && equals(newArr[newPos + 1], oldArr[oldPos + 1])) {\n        newPos++;\n        oldPos++;\n        commonCount++;\n    }\n    if (commonCount) {\n        basePath.components.push({\n            count: commonCount,\n            added: false,\n            removed: false,\n            indices: []\n        });\n    }\n    basePath.newPos = newPos;\n    return oldPos;\n}\nfunction pushComponent(components, added, removed) {\n    var last = components[components.length - 1];\n    if (last && last.added === added && last.removed === removed) {\n        components[components.length - 1] = {\n            count: last.count + 1,\n            added: added,\n            removed: removed,\n            indices: []\n        };\n    }\n    else {\n        components.push({\n            count: 1,\n            added: added,\n            removed: removed,\n            indices: []\n        });\n    }\n}\nfunction buildValues(components) {\n    var componentPos = 0;\n    var componentLen = components.length;\n    var newPos = 0;\n    var oldPos = 0;\n    for (; componentPos < componentLen; componentPos++) {\n        var component = components[componentPos];\n        if (!component.removed) {\n            var indices = [];\n            for (var i = newPos; i < newPos + component.count; i++) {\n                indices.push(i);\n            }\n            component.indices = indices;\n            newPos += component.count;\n            if (!component.added) {\n                oldPos += component.count;\n            }\n        }\n        else {\n            for (var i = oldPos; i < oldPos + component.count; i++) {\n                component.indices.push(i);\n            }\n            oldPos += component.count;\n        }\n    }\n    return components;\n}\nfunction clonePath(path) {\n    return { newPos: path.newPos, components: path.components.slice(0) };\n}\nexport default function arrayDiff(oldArr, newArr, equal) {\n    return diff(oldArr, newArr, equal);\n}\n","import { createElement } from './core';\nimport ZRImage from '../graphic/Image';\nimport { DEFAULT_FONT, getLineHeight } from '../contain/text';\nimport { map } from '../core/util';\nimport { normalizeLineDash } from '../graphic/helper/dashStyle';\nvar NONE = 'none';\nvar mathRound = Math.round;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI = Math.PI;\nvar PI2 = Math.PI * 2;\nvar degree = 180 / PI;\nvar EPSILON = 1e-4;\nfunction round3(val) {\n    return mathRound(val * 1e3) / 1e3;\n}\nfunction round4(val) {\n    return mathRound(val * 1e4) / 1e4;\n}\nfunction isAroundZero(val) {\n    return val < EPSILON && val > -EPSILON;\n}\nfunction pathHasFill(style) {\n    var fill = style.fill;\n    return fill != null && fill !== NONE;\n}\nfunction pathHasStroke(style) {\n    var stroke = style.stroke;\n    return stroke != null && stroke !== NONE;\n}\nfunction setTransform(svgEl, m) {\n    if (m) {\n        attr(svgEl, 'transform', 'matrix('\n            + round3(m[0]) + ','\n            + round3(m[1]) + ','\n            + round3(m[2]) + ','\n            + round3(m[3]) + ','\n            + round4(m[4]) + ','\n            + round4(m[5])\n            + ')');\n    }\n}\nfunction attr(el, key, val) {\n    if (!val || val.type !== 'linear' && val.type !== 'radial') {\n        el.setAttribute(key, val);\n    }\n}\nfunction attrXLink(el, key, val) {\n    el.setAttributeNS('http://www.w3.org/1999/xlink', key, val);\n}\nfunction attrXML(el, key, val) {\n    el.setAttributeNS('http://www.w3.org/XML/1998/namespace', key, val);\n}\nfunction bindStyle(svgEl, style, el) {\n    var opacity = style.opacity == null ? 1 : style.opacity;\n    if (el instanceof ZRImage) {\n        svgEl.style.opacity = opacity + '';\n        return;\n    }\n    if (pathHasFill(style)) {\n        var fill = style.fill;\n        fill = fill === 'transparent' ? NONE : fill;\n        attr(svgEl, 'fill', fill);\n        attr(svgEl, 'fill-opacity', (style.fillOpacity != null ? style.fillOpacity * opacity : opacity) + '');\n    }\n    else {\n        attr(svgEl, 'fill', NONE);\n    }\n    if (pathHasStroke(style)) {\n        var stroke = style.stroke;\n        stroke = stroke === 'transparent' ? NONE : stroke;\n        attr(svgEl, 'stroke', stroke);\n        var strokeWidth = style.lineWidth;\n        var strokeScale_1 = style.strokeNoScale\n            ? el.getLineScale()\n            : 1;\n        attr(svgEl, 'stroke-width', (strokeScale_1 ? strokeWidth / strokeScale_1 : 0) + '');\n        attr(svgEl, 'paint-order', style.strokeFirst ? 'stroke' : 'fill');\n        attr(svgEl, 'stroke-opacity', (style.strokeOpacity != null ? style.strokeOpacity * opacity : opacity) + '');\n        var lineDash = style.lineDash && strokeWidth > 0 && normalizeLineDash(style.lineDash, strokeWidth);\n        if (lineDash) {\n            var lineDashOffset = style.lineDashOffset;\n            if (strokeScale_1 && strokeScale_1 !== 1) {\n                lineDash = map(lineDash, function (rawVal) {\n                    return rawVal / strokeScale_1;\n                });\n                if (lineDashOffset) {\n                    lineDashOffset /= strokeScale_1;\n                    lineDashOffset = mathRound(lineDashOffset);\n                }\n            }\n            attr(svgEl, 'stroke-dasharray', lineDash.join(','));\n            attr(svgEl, 'stroke-dashoffset', (lineDashOffset || 0) + '');\n        }\n        else {\n            attr(svgEl, 'stroke-dasharray', '');\n        }\n        style.lineCap && attr(svgEl, 'stroke-linecap', style.lineCap);\n        style.lineJoin && attr(svgEl, 'stroke-linejoin', style.lineJoin);\n        style.miterLimit && attr(svgEl, 'stroke-miterlimit', style.miterLimit + '');\n    }\n    else {\n        attr(svgEl, 'stroke', NONE);\n    }\n}\nvar SVGPathRebuilder = (function () {\n    function SVGPathRebuilder() {\n    }\n    SVGPathRebuilder.prototype.reset = function () {\n        this._d = [];\n        this._str = '';\n    };\n    SVGPathRebuilder.prototype.moveTo = function (x, y) {\n        this._add('M', x, y);\n    };\n    SVGPathRebuilder.prototype.lineTo = function (x, y) {\n        this._add('L', x, y);\n    };\n    SVGPathRebuilder.prototype.bezierCurveTo = function (x, y, x2, y2, x3, y3) {\n        this._add('C', x, y, x2, y2, x3, y3);\n    };\n    SVGPathRebuilder.prototype.quadraticCurveTo = function (x, y, x2, y2) {\n        this._add('Q', x, y, x2, y2);\n    };\n    SVGPathRebuilder.prototype.arc = function (cx, cy, r, startAngle, endAngle, anticlockwise) {\n        this.ellipse(cx, cy, r, r, 0, startAngle, endAngle, anticlockwise);\n    };\n    SVGPathRebuilder.prototype.ellipse = function (cx, cy, rx, ry, psi, startAngle, endAngle, anticlockwise) {\n        var firstCmd = this._d.length === 0;\n        var dTheta = endAngle - startAngle;\n        var clockwise = !anticlockwise;\n        var dThetaPositive = Math.abs(dTheta);\n        var isCircle = isAroundZero(dThetaPositive - PI2)\n            || (clockwise ? dTheta >= PI2 : -dTheta >= PI2);\n        var unifiedTheta = dTheta > 0 ? dTheta % PI2 : (dTheta % PI2 + PI2);\n        var large = false;\n        if (isCircle) {\n            large = true;\n        }\n        else if (isAroundZero(dThetaPositive)) {\n            large = false;\n        }\n        else {\n            large = (unifiedTheta >= PI) === !!clockwise;\n        }\n        var x0 = round4(cx + rx * mathCos(startAngle));\n        var y0 = round4(cy + ry * mathSin(startAngle));\n        if (isCircle) {\n            if (clockwise) {\n                dTheta = PI2 - 1e-4;\n            }\n            else {\n                dTheta = -PI2 + 1e-4;\n            }\n            large = true;\n            if (firstCmd) {\n                this._d.push('M', x0, y0);\n            }\n        }\n        var x = round4(cx + rx * mathCos(startAngle + dTheta));\n        var y = round4(cy + ry * mathSin(startAngle + dTheta));\n        if (isNaN(x0) || isNaN(y0) || isNaN(rx) || isNaN(ry) || isNaN(psi) || isNaN(degree) || isNaN(x) || isNaN(y)) {\n            return '';\n        }\n        this._d.push('A', round4(rx), round4(ry), mathRound(psi * degree), +large, +clockwise, x, y);\n    };\n    SVGPathRebuilder.prototype.rect = function (x, y, w, h) {\n        this._add('M', x, y);\n        this._add('L', x + w, y);\n        this._add('L', x + w, y + h);\n        this._add('L', x, y + h);\n        this._add('L', x, y);\n    };\n    SVGPathRebuilder.prototype.closePath = function () {\n        if (this._d.length > 0) {\n            this._add('Z');\n        }\n    };\n    SVGPathRebuilder.prototype._add = function (cmd, a, b, c, d, e, f, g, h) {\n        this._d.push(cmd);\n        for (var i = 1; i < arguments.length; i++) {\n            var val = arguments[i];\n            if (isNaN(val)) {\n                this._invalid = true;\n                return;\n            }\n            this._d.push(round4(val));\n        }\n    };\n    SVGPathRebuilder.prototype.generateStr = function () {\n        this._str = this._invalid ? '' : this._d.join(' ');\n        this._d = [];\n    };\n    SVGPathRebuilder.prototype.getStr = function () {\n        return this._str;\n    };\n    return SVGPathRebuilder;\n}());\nvar svgPath = {\n    brush: function (el) {\n        var style = el.style;\n        var svgEl = el.__svgEl;\n        if (!svgEl) {\n            svgEl = createElement('path');\n            el.__svgEl = svgEl;\n        }\n        if (!el.path) {\n            el.createPathProxy();\n        }\n        var path = el.path;\n        if (el.shapeChanged()) {\n            path.beginPath();\n            el.buildPath(path, el.shape);\n            el.pathUpdated();\n        }\n        var pathVersion = path.getVersion();\n        var elExt = el;\n        var svgPathBuilder = elExt.__svgPathBuilder;\n        if (elExt.__svgPathVersion !== pathVersion || !svgPathBuilder || el.style.strokePercent < 1) {\n            if (!svgPathBuilder) {\n                svgPathBuilder = elExt.__svgPathBuilder = new SVGPathRebuilder();\n            }\n            svgPathBuilder.reset();\n            path.rebuildPath(svgPathBuilder, el.style.strokePercent);\n            svgPathBuilder.generateStr();\n            elExt.__svgPathVersion = pathVersion;\n        }\n        attr(svgEl, 'd', svgPathBuilder.getStr());\n        bindStyle(svgEl, style, el);\n        setTransform(svgEl, el.transform);\n    }\n};\nexport { svgPath as path };\nvar svgImage = {\n    brush: function (el) {\n        var style = el.style;\n        var image = style.image;\n        if (image instanceof HTMLImageElement) {\n            image = image.src;\n        }\n        else if (image instanceof HTMLCanvasElement) {\n            image = image.toDataURL();\n        }\n        if (!image) {\n            return;\n        }\n        var x = style.x || 0;\n        var y = style.y || 0;\n        var dw = style.width;\n        var dh = style.height;\n        var svgEl = el.__svgEl;\n        if (!svgEl) {\n            svgEl = createElement('image');\n            el.__svgEl = svgEl;\n        }\n        if (image !== el.__imageSrc) {\n            attrXLink(svgEl, 'href', image);\n            el.__imageSrc = image;\n        }\n        attr(svgEl, 'width', dw + '');\n        attr(svgEl, 'height', dh + '');\n        attr(svgEl, 'x', x + '');\n        attr(svgEl, 'y', y + '');\n        bindStyle(svgEl, style, el);\n        setTransform(svgEl, el.transform);\n    }\n};\nexport { svgImage as image };\nvar TEXT_ALIGN_TO_ANCHOR = {\n    left: 'start',\n    right: 'end',\n    center: 'middle',\n    middle: 'middle'\n};\nfunction adjustTextY(y, lineHeight, textBaseline) {\n    if (textBaseline === 'top') {\n        y += lineHeight / 2;\n    }\n    else if (textBaseline === 'bottom') {\n        y -= lineHeight / 2;\n    }\n    return y;\n}\nvar svgText = {\n    brush: function (el) {\n        var style = el.style;\n        var text = style.text;\n        text != null && (text += '');\n        if (!text || isNaN(style.x) || isNaN(style.y)) {\n            return;\n        }\n        var textSvgEl = el.__svgEl;\n        if (!textSvgEl) {\n            textSvgEl = createElement('text');\n            attrXML(textSvgEl, 'xml:space', 'preserve');\n            el.__svgEl = textSvgEl;\n        }\n        var font = style.font || DEFAULT_FONT;\n        var textSvgElStyle = textSvgEl.style;\n        textSvgElStyle.font = font;\n        textSvgEl.textContent = text;\n        bindStyle(textSvgEl, style, el);\n        setTransform(textSvgEl, el.transform);\n        var x = style.x || 0;\n        var y = adjustTextY(style.y || 0, getLineHeight(font), style.textBaseline);\n        var textAlign = TEXT_ALIGN_TO_ANCHOR[style.textAlign]\n            || style.textAlign;\n        attr(textSvgEl, 'dominant-baseline', 'central');\n        attr(textSvgEl, 'text-anchor', textAlign);\n        attr(textSvgEl, 'x', x + '');\n        attr(textSvgEl, 'y', y + '');\n    }\n};\nexport { svgText as text };\n","import { createElement } from '../core';\nimport * as zrUtil from '../../core/util';\nimport Path from '../../graphic/Path';\nimport ZRImage from '../../graphic/Image';\nimport TSpan from '../../graphic/TSpan';\nimport { path as svgPath, image as svgImage, text as svgText } from '../graphic';\nvar MARK_UNUSED = '0';\nvar MARK_USED = '1';\nvar Definable = (function () {\n    function Definable(zrId, svgRoot, tagNames, markLabel, domName) {\n        this.nextId = 0;\n        this._domName = '_dom';\n        this.createElement = createElement;\n        this._zrId = zrId;\n        this._svgRoot = svgRoot;\n        this._tagNames = typeof tagNames === 'string' ? [tagNames] : tagNames;\n        this._markLabel = markLabel;\n        if (domName) {\n            this._domName = domName;\n        }\n    }\n    Definable.prototype.getDefs = function (isForceCreating) {\n        var svgRoot = this._svgRoot;\n        var defs = this._svgRoot.getElementsByTagName('defs');\n        if (defs.length === 0) {\n            if (isForceCreating) {\n                var defs_1 = svgRoot.insertBefore(this.createElement('defs'), svgRoot.firstChild);\n                if (!defs_1.contains) {\n                    defs_1.contains = function (el) {\n                        var children = defs_1.children;\n                        if (!children) {\n                            return false;\n                        }\n                        for (var i = children.length - 1; i >= 0; --i) {\n                            if (children[i] === el) {\n                                return true;\n                            }\n                        }\n                        return false;\n                    };\n                }\n                return defs_1;\n            }\n            else {\n                return null;\n            }\n        }\n        else {\n            return defs[0];\n        }\n    };\n    Definable.prototype.doUpdate = function (target, onUpdate) {\n        if (!target) {\n            return;\n        }\n        var defs = this.getDefs(false);\n        if (target[this._domName] && defs.contains(target[this._domName])) {\n            if (typeof onUpdate === 'function') {\n                onUpdate(target);\n            }\n        }\n        else {\n            var dom = this.add(target);\n            if (dom) {\n                target[this._domName] = dom;\n            }\n        }\n    };\n    Definable.prototype.add = function (target) {\n        return null;\n    };\n    Definable.prototype.addDom = function (dom) {\n        var defs = this.getDefs(true);\n        if (dom.parentNode !== defs) {\n            defs.appendChild(dom);\n        }\n    };\n    Definable.prototype.removeDom = function (target) {\n        var defs = this.getDefs(false);\n        if (defs && target[this._domName]) {\n            defs.removeChild(target[this._domName]);\n            target[this._domName] = null;\n        }\n    };\n    Definable.prototype.getDoms = function () {\n        var defs = this.getDefs(false);\n        if (!defs) {\n            return [];\n        }\n        var doms = [];\n        zrUtil.each(this._tagNames, function (tagName) {\n            var tags = defs.getElementsByTagName(tagName);\n            for (var i = 0; i < tags.length; i++) {\n                doms.push(tags[i]);\n            }\n        });\n        return doms;\n    };\n    Definable.prototype.markAllUnused = function () {\n        var doms = this.getDoms();\n        var that = this;\n        zrUtil.each(doms, function (dom) {\n            dom[that._markLabel] = MARK_UNUSED;\n        });\n    };\n    Definable.prototype.markDomUsed = function (dom) {\n        dom && (dom[this._markLabel] = MARK_USED);\n    };\n    ;\n    Definable.prototype.markDomUnused = function (dom) {\n        dom && (dom[this._markLabel] = MARK_UNUSED);\n    };\n    ;\n    Definable.prototype.isDomUnused = function (dom) {\n        return dom && dom[this._markLabel] !== MARK_USED;\n    };\n    Definable.prototype.removeUnused = function () {\n        var _this = this;\n        var defs = this.getDefs(false);\n        if (!defs) {\n            return;\n        }\n        var doms = this.getDoms();\n        zrUtil.each(doms, function (dom) {\n            if (_this.isDomUnused(dom)) {\n                defs.removeChild(dom);\n            }\n        });\n    };\n    Definable.prototype.getSvgProxy = function (displayable) {\n        if (displayable instanceof Path) {\n            return svgPath;\n        }\n        else if (displayable instanceof ZRImage) {\n            return svgImage;\n        }\n        else if (displayable instanceof TSpan) {\n            return svgText;\n        }\n        else {\n            return svgPath;\n        }\n    };\n    Definable.prototype.getSvgElement = function (displayable) {\n        return displayable.__svgEl;\n    };\n    return Definable;\n}());\nexport default Definable;\n","import { __extends } from \"tslib\";\nimport Definable from './Definable';\nimport * as zrUtil from '../../core/util';\nimport * as colorTool from '../../tool/color';\nfunction isLinearGradient(value) {\n    return value.type === 'linear';\n}\nfunction isRadialGradient(value) {\n    return value.type === 'radial';\n}\nfunction isGradient(value) {\n    return value && (value.type === 'linear'\n        || value.type === 'radial');\n}\nvar GradientManager = (function (_super) {\n    __extends(GradientManager, _super);\n    function GradientManager(zrId, svgRoot) {\n        return _super.call(this, zrId, svgRoot, ['linearGradient', 'radialGradient'], '__gradient_in_use__') || this;\n    }\n    GradientManager.prototype.addWithoutUpdate = function (svgElement, displayable) {\n        if (displayable && displayable.style) {\n            var that_1 = this;\n            zrUtil.each(['fill', 'stroke'], function (fillOrStroke) {\n                var value = displayable.style[fillOrStroke];\n                if (isGradient(value)) {\n                    var gradient = value;\n                    var defs = that_1.getDefs(true);\n                    var dom = void 0;\n                    if (gradient.__dom) {\n                        dom = gradient.__dom;\n                        if (!defs.contains(gradient.__dom)) {\n                            that_1.addDom(dom);\n                        }\n                    }\n                    else {\n                        dom = that_1.add(gradient);\n                    }\n                    that_1.markUsed(displayable);\n                    var id = dom.getAttribute('id');\n                    svgElement.setAttribute(fillOrStroke, 'url(#' + id + ')');\n                }\n            });\n        }\n    };\n    GradientManager.prototype.add = function (gradient) {\n        var dom;\n        if (isLinearGradient(gradient)) {\n            dom = this.createElement('linearGradient');\n        }\n        else if (isRadialGradient(gradient)) {\n            dom = this.createElement('radialGradient');\n        }\n        else {\n            zrUtil.logError('Illegal gradient type.');\n            return null;\n        }\n        gradient.id = gradient.id || this.nextId++;\n        dom.setAttribute('id', 'zr' + this._zrId\n            + '-gradient-' + gradient.id);\n        this.updateDom(gradient, dom);\n        this.addDom(dom);\n        return dom;\n    };\n    GradientManager.prototype.update = function (gradient) {\n        if (!isGradient(gradient)) {\n            return;\n        }\n        var that = this;\n        this.doUpdate(gradient, function () {\n            var dom = gradient.__dom;\n            if (!dom) {\n                return;\n            }\n            var tagName = dom.tagName;\n            var type = gradient.type;\n            if (type === 'linear' && tagName === 'linearGradient'\n                || type === 'radial' && tagName === 'radialGradient') {\n                that.updateDom(gradient, gradient.__dom);\n            }\n            else {\n                that.removeDom(gradient);\n                that.add(gradient);\n            }\n        });\n    };\n    GradientManager.prototype.updateDom = function (gradient, dom) {\n        if (isLinearGradient(gradient)) {\n            dom.setAttribute('x1', gradient.x + '');\n            dom.setAttribute('y1', gradient.y + '');\n            dom.setAttribute('x2', gradient.x2 + '');\n            dom.setAttribute('y2', gradient.y2 + '');\n        }\n        else if (isRadialGradient(gradient)) {\n            dom.setAttribute('cx', gradient.x + '');\n            dom.setAttribute('cy', gradient.y + '');\n            dom.setAttribute('r', gradient.r + '');\n        }\n        else {\n            zrUtil.logError('Illegal gradient type.');\n            return;\n        }\n        if (gradient.global) {\n            dom.setAttribute('gradientUnits', 'userSpaceOnUse');\n        }\n        else {\n            dom.setAttribute('gradientUnits', 'objectBoundingBox');\n        }\n        dom.innerHTML = '';\n        var colors = gradient.colorStops;\n        for (var i = 0, len = colors.length; i < len; ++i) {\n            var stop_1 = this.createElement('stop');\n            stop_1.setAttribute('offset', colors[i].offset * 100 + '%');\n            var color = colors[i].color;\n            if (color.indexOf('rgba') > -1) {\n                var opacity = colorTool.parse(color)[3];\n                var hex = colorTool.toHex(color);\n                stop_1.setAttribute('stop-color', '#' + hex);\n                stop_1.setAttribute('stop-opacity', opacity + '');\n            }\n            else {\n                stop_1.setAttribute('stop-color', colors[i].color);\n            }\n            dom.appendChild(stop_1);\n        }\n        gradient.__dom = dom;\n    };\n    GradientManager.prototype.markUsed = function (displayable) {\n        if (displayable.style) {\n            var gradient = displayable.style.fill;\n            if (gradient && gradient.__dom) {\n                _super.prototype.markDomUsed.call(this, gradient.__dom);\n            }\n            gradient = displayable.style.stroke;\n            if (gradient && gradient.__dom) {\n                _super.prototype.markDomUsed.call(this, gradient.__dom);\n            }\n        }\n    };\n    return GradientManager;\n}(Definable));\nexport default GradientManager;\n","import { __extends } from \"tslib\";\nimport Definable from './Definable';\nimport * as zrUtil from '../../core/util';\nimport LRU from '../../core/LRU';\nimport { createOrUpdateImage } from '../../graphic/helper/image';\nimport WeakMap from '../../core/WeakMap';\nfunction isPattern(value) {\n    return value && (!!value.image || !!value.svgElement);\n}\nvar patternDomMap = new WeakMap();\nvar PatternManager = (function (_super) {\n    __extends(PatternManager, _super);\n    function PatternManager(zrId, svgRoot) {\n        return _super.call(this, zrId, svgRoot, ['pattern'], '__pattern_in_use__') || this;\n    }\n    PatternManager.prototype.addWithoutUpdate = function (svgElement, displayable) {\n        if (displayable && displayable.style) {\n            var that_1 = this;\n            zrUtil.each(['fill', 'stroke'], function (fillOrStroke) {\n                var pattern = displayable.style[fillOrStroke];\n                if (isPattern(pattern)) {\n                    var defs = that_1.getDefs(true);\n                    var dom = patternDomMap.get(pattern);\n                    if (dom) {\n                        if (!defs.contains(dom)) {\n                            that_1.addDom(dom);\n                        }\n                    }\n                    else {\n                        dom = that_1.add(pattern);\n                    }\n                    that_1.markUsed(displayable);\n                    var id = dom.getAttribute('id');\n                    svgElement.setAttribute(fillOrStroke, 'url(#' + id + ')');\n                }\n            });\n        }\n    };\n    PatternManager.prototype.add = function (pattern) {\n        if (!isPattern(pattern)) {\n            return;\n        }\n        var dom = this.createElement('pattern');\n        pattern.id = pattern.id == null ? this.nextId++ : pattern.id;\n        dom.setAttribute('id', 'zr' + this._zrId\n            + '-pattern-' + pattern.id);\n        dom.setAttribute('x', '0');\n        dom.setAttribute('y', '0');\n        dom.setAttribute('patternUnits', 'userSpaceOnUse');\n        this.updateDom(pattern, dom);\n        this.addDom(dom);\n        return dom;\n    };\n    PatternManager.prototype.update = function (pattern) {\n        if (!isPattern(pattern)) {\n            return;\n        }\n        var that = this;\n        this.doUpdate(pattern, function () {\n            var dom = patternDomMap.get(pattern);\n            that.updateDom(pattern, dom);\n        });\n    };\n    PatternManager.prototype.updateDom = function (pattern, patternDom) {\n        var svgElement = pattern.svgElement;\n        if (svgElement instanceof SVGElement) {\n            if (svgElement.parentNode !== patternDom) {\n                patternDom.innerHTML = '';\n                patternDom.appendChild(svgElement);\n                patternDom.setAttribute('width', pattern.svgWidth + '');\n                patternDom.setAttribute('height', pattern.svgHeight + '');\n            }\n        }\n        else {\n            var img = void 0;\n            var prevImage = patternDom.getElementsByTagName('image');\n            if (prevImage.length) {\n                if (pattern.image) {\n                    img = prevImage[0];\n                }\n                else {\n                    patternDom.removeChild(prevImage[0]);\n                    return;\n                }\n            }\n            else if (pattern.image) {\n                img = this.createElement('image');\n            }\n            if (img) {\n                var imageSrc = void 0;\n                if (typeof pattern.image === 'string') {\n                    imageSrc = pattern.image;\n                }\n                else if (pattern.image instanceof HTMLImageElement) {\n                    imageSrc = pattern.image.src;\n                }\n                else if (pattern.image instanceof HTMLCanvasElement) {\n                    imageSrc = pattern.image.toDataURL();\n                }\n                if (imageSrc) {\n                    img.setAttribute('href', imageSrc);\n                    img.setAttribute('x', '0');\n                    img.setAttribute('y', '0');\n                    var hostEl = {\n                        dirty: function () { }\n                    };\n                    var createdImage = createOrUpdateImage(imageSrc, img, hostEl, function (img) {\n                        patternDom.setAttribute('width', img.width + '');\n                        patternDom.setAttribute('height', img.height + '');\n                    });\n                    if (createdImage && createdImage.width && createdImage.height) {\n                        patternDom.setAttribute('width', createdImage.width + '');\n                        patternDom.setAttribute('height', createdImage.height + '');\n                    }\n                    patternDom.appendChild(img);\n                }\n            }\n        }\n        var x = pattern.x || 0;\n        var y = pattern.y || 0;\n        var rotation = (pattern.rotation || 0) / Math.PI * 180;\n        var scaleX = pattern.scaleX || 1;\n        var scaleY = pattern.scaleY || 1;\n        var transform = \"translate(\" + x + \", \" + y + \") rotate(\" + rotation + \") scale(\" + scaleX + \", \" + scaleY + \")\";\n        patternDom.setAttribute('patternTransform', transform);\n        patternDomMap.set(pattern, patternDom);\n    };\n    PatternManager.prototype.markUsed = function (displayable) {\n        if (displayable.style) {\n            if (isPattern(displayable.style.fill)) {\n                _super.prototype.markDomUsed.call(this, patternDomMap.get(displayable.style.fill));\n            }\n            if (isPattern(displayable.style.stroke)) {\n                _super.prototype.markDomUsed.call(this, patternDomMap.get(displayable.style.stroke));\n            }\n        }\n    };\n    return PatternManager;\n}(Definable));\nexport default PatternManager;\nvar patternSizeCache = new LRU(50);\n","import { __extends } from \"tslib\";\nimport Definable from './Definable';\nimport * as zrUtil from '../../core/util';\nimport { isClipPathChanged } from '../../canvas/helper';\nfunction generateClipPathsKey(clipPaths) {\n    var key = [];\n    if (clipPaths) {\n        for (var i = 0; i < clipPaths.length; i++) {\n            var clipPath = clipPaths[i];\n            key.push(clipPath.id);\n        }\n    }\n    return key.join(',');\n}\nexport function hasClipPath(displayable) {\n    var clipPaths = displayable.__clipPaths;\n    return clipPaths && clipPaths.length > 0;\n}\nvar ClippathManager = (function (_super) {\n    __extends(ClippathManager, _super);\n    function ClippathManager(zrId, svgRoot) {\n        var _this = _super.call(this, zrId, svgRoot, 'clipPath', '__clippath_in_use__') || this;\n        _this._refGroups = {};\n        _this._keyDuplicateCount = {};\n        return _this;\n    }\n    ClippathManager.prototype.markAllUnused = function () {\n        _super.prototype.markAllUnused.call(this);\n        for (var key in this._refGroups) {\n            this.markDomUnused(this._refGroups[key]);\n        }\n        this._keyDuplicateCount = {};\n    };\n    ClippathManager.prototype._getClipPathGroup = function (displayable, prevDisplayable) {\n        if (!hasClipPath(displayable)) {\n            return;\n        }\n        var clipPaths = displayable.__clipPaths;\n        var keyDuplicateCount = this._keyDuplicateCount;\n        var clipPathKey = generateClipPathsKey(clipPaths);\n        if (isClipPathChanged(clipPaths, prevDisplayable && prevDisplayable.__clipPaths)) {\n            keyDuplicateCount[clipPathKey] = keyDuplicateCount[clipPathKey] || 0;\n            keyDuplicateCount[clipPathKey] && (clipPathKey += '-' + keyDuplicateCount[clipPathKey]);\n            keyDuplicateCount[clipPathKey]++;\n        }\n        return this._refGroups[clipPathKey]\n            || (this._refGroups[clipPathKey] = this.createElement('g'));\n    };\n    ClippathManager.prototype.update = function (displayable, prevDisplayable) {\n        var clipGroup = this._getClipPathGroup(displayable, prevDisplayable);\n        if (clipGroup) {\n            this.markDomUsed(clipGroup);\n            this.updateDom(clipGroup, displayable.__clipPaths);\n        }\n        return clipGroup;\n    };\n    ;\n    ClippathManager.prototype.updateDom = function (parentEl, clipPaths) {\n        if (clipPaths && clipPaths.length > 0) {\n            var defs = this.getDefs(true);\n            var clipPath = clipPaths[0];\n            var clipPathEl = void 0;\n            var id = void 0;\n            if (clipPath._dom) {\n                id = clipPath._dom.getAttribute('id');\n                clipPathEl = clipPath._dom;\n                if (!defs.contains(clipPathEl)) {\n                    defs.appendChild(clipPathEl);\n                }\n            }\n            else {\n                id = 'zr' + this._zrId + '-clip-' + this.nextId;\n                ++this.nextId;\n                clipPathEl = this.createElement('clipPath');\n                clipPathEl.setAttribute('id', id);\n                defs.appendChild(clipPathEl);\n                clipPath._dom = clipPathEl;\n            }\n            var svgProxy = this.getSvgProxy(clipPath);\n            svgProxy.brush(clipPath);\n            var pathEl = this.getSvgElement(clipPath);\n            clipPathEl.innerHTML = '';\n            clipPathEl.appendChild(pathEl);\n            parentEl.setAttribute('clip-path', 'url(#' + id + ')');\n            if (clipPaths.length > 1) {\n                this.updateDom(clipPathEl, clipPaths.slice(1));\n            }\n        }\n        else {\n            if (parentEl) {\n                parentEl.setAttribute('clip-path', 'none');\n            }\n        }\n    };\n    ;\n    ClippathManager.prototype.markUsed = function (displayable) {\n        var _this = this;\n        if (displayable.__clipPaths) {\n            zrUtil.each(displayable.__clipPaths, function (clipPath) {\n                if (clipPath._dom) {\n                    _super.prototype.markDomUsed.call(_this, clipPath._dom);\n                }\n            });\n        }\n    };\n    ;\n    ClippathManager.prototype.removeUnused = function () {\n        _super.prototype.removeUnused.call(this);\n        var newRefGroupsMap = {};\n        for (var key in this._refGroups) {\n            var group = this._refGroups[key];\n            if (!this.isDomUnused(group)) {\n                newRefGroupsMap[key] = group;\n            }\n            else if (group.parentNode) {\n                group.parentNode.removeChild(group);\n            }\n        }\n        this._refGroups = newRefGroupsMap;\n    };\n    return ClippathManager;\n}(Definable));\nexport default ClippathManager;\n","import { __extends } from \"tslib\";\nimport Definable from './Definable';\nvar ShadowManager = (function (_super) {\n    __extends(ShadowManager, _super);\n    function ShadowManager(zrId, svgRoot) {\n        var _this = _super.call(this, zrId, svgRoot, ['filter'], '__filter_in_use__', '_shadowDom') || this;\n        _this._shadowDomMap = {};\n        _this._shadowDomPool = [];\n        return _this;\n    }\n    ShadowManager.prototype._getFromPool = function () {\n        var shadowDom = this._shadowDomPool.pop();\n        if (!shadowDom) {\n            shadowDom = this.createElement('filter');\n            shadowDom.setAttribute('id', 'zr' + this._zrId + '-shadow-' + this.nextId++);\n            var domChild = this.createElement('feDropShadow');\n            shadowDom.appendChild(domChild);\n            this.addDom(shadowDom);\n        }\n        return shadowDom;\n    };\n    ShadowManager.prototype.update = function (svgElement, displayable) {\n        var style = displayable.style;\n        if (hasShadow(style)) {\n            var shadowKey = getShadowKey(displayable);\n            var shadowDom = displayable._shadowDom = this._shadowDomMap[shadowKey];\n            if (!shadowDom) {\n                shadowDom = this._getFromPool();\n                this._shadowDomMap[shadowKey] = shadowDom;\n            }\n            this.updateDom(svgElement, displayable, shadowDom);\n        }\n        else {\n            this.remove(svgElement, displayable);\n        }\n    };\n    ShadowManager.prototype.remove = function (svgElement, displayable) {\n        if (displayable._shadowDom != null) {\n            displayable._shadowDom = null;\n            svgElement.style.filter = '';\n        }\n    };\n    ShadowManager.prototype.updateDom = function (svgElement, displayable, shadowDom) {\n        var domChild = shadowDom.children[0];\n        var style = displayable.style;\n        var globalScale = displayable.getGlobalScale();\n        var scaleX = globalScale[0];\n        var scaleY = globalScale[1];\n        if (!scaleX || !scaleY) {\n            return;\n        }\n        var offsetX = style.shadowOffsetX || 0;\n        var offsetY = style.shadowOffsetY || 0;\n        var blur = style.shadowBlur;\n        var color = style.shadowColor;\n        domChild.setAttribute('dx', offsetX / scaleX + '');\n        domChild.setAttribute('dy', offsetY / scaleY + '');\n        domChild.setAttribute('flood-color', color);\n        var stdDx = blur / 2 / scaleX;\n        var stdDy = blur / 2 / scaleY;\n        var stdDeviation = stdDx + ' ' + stdDy;\n        domChild.setAttribute('stdDeviation', stdDeviation);\n        shadowDom.setAttribute('x', '-100%');\n        shadowDom.setAttribute('y', '-100%');\n        shadowDom.setAttribute('width', '300%');\n        shadowDom.setAttribute('height', '300%');\n        displayable._shadowDom = shadowDom;\n        var id = shadowDom.getAttribute('id');\n        svgElement.style.filter = 'url(#' + id + ')';\n    };\n    ShadowManager.prototype.removeUnused = function () {\n        var defs = this.getDefs(false);\n        if (!defs) {\n            return;\n        }\n        var shadowDomsPool = this._shadowDomPool;\n        var currentUsedShadow = 0;\n        for (var key in this._shadowDomMap) {\n            var dom = this._shadowDomMap[key];\n            shadowDomsPool.push(dom);\n            currentUsedShadow++;\n        }\n        this._shadowDomMap = {};\n    };\n    return ShadowManager;\n}(Definable));\nexport default ShadowManager;\nfunction hasShadow(style) {\n    return style\n        && (style.shadowBlur || style.shadowOffsetX || style.shadowOffsetY);\n}\nfunction getShadowKey(displayable) {\n    var style = displayable.style;\n    var globalScale = displayable.getGlobalScale();\n    return [\n        style.shadowColor,\n        (style.shadowBlur || 0).toFixed(2),\n        (style.shadowOffsetX || 0).toFixed(2),\n        (style.shadowOffsetY || 0).toFixed(2),\n        globalScale[0],\n        globalScale[1]\n    ].join(',');\n}\n","import { createElement } from './core';\nimport * as util from '../core/util';\nimport Path from '../graphic/Path';\nimport ZRImage from '../graphic/Image';\nimport TSpan from '../graphic/TSpan';\nimport arrayDiff from '../core/arrayDiff';\nimport GradientManager from './helper/GradientManager';\nimport PatternManager from './helper/PatternManager';\nimport ClippathManager, { hasClipPath } from './helper/ClippathManager';\nimport ShadowManager from './helper/ShadowManager';\nimport { path as svgPath, image as svgImage, text as svgText } from './graphic';\nfunction parseInt10(val) {\n    return parseInt(val, 10);\n}\nfunction getSvgProxy(el) {\n    if (el instanceof Path) {\n        return svgPath;\n    }\n    else if (el instanceof ZRImage) {\n        return svgImage;\n    }\n    else if (el instanceof TSpan) {\n        return svgText;\n    }\n    else {\n        return svgPath;\n    }\n}\nfunction checkParentAvailable(parent, child) {\n    return child && parent && child.parentNode !== parent;\n}\nfunction insertAfter(parent, child, prevSibling) {\n    if (checkParentAvailable(parent, child) && prevSibling) {\n        var nextSibling = prevSibling.nextSibling;\n        nextSibling ? parent.insertBefore(child, nextSibling)\n            : parent.appendChild(child);\n    }\n}\nfunction prepend(parent, child) {\n    if (checkParentAvailable(parent, child)) {\n        var firstChild = parent.firstChild;\n        firstChild ? parent.insertBefore(child, firstChild)\n            : parent.appendChild(child);\n    }\n}\nfunction remove(parent, child) {\n    if (child && parent && child.parentNode === parent) {\n        parent.removeChild(child);\n    }\n}\nfunction removeFromMyParent(child) {\n    if (child && child.parentNode) {\n        child.parentNode.removeChild(child);\n    }\n}\nfunction getSvgElement(displayable) {\n    return displayable.__svgEl;\n}\nvar SVGPainter = (function () {\n    function SVGPainter(root, storage, opts, zrId) {\n        this.type = 'svg';\n        this.refreshHover = createMethodNotSupport('refreshHover');\n        this.pathToImage = createMethodNotSupport('pathToImage');\n        this.configLayer = createMethodNotSupport('configLayer');\n        this.root = root;\n        this.storage = storage;\n        this._opts = opts = util.extend({}, opts || {});\n        var svgDom = createElement('svg');\n        svgDom.setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns', 'http://www.w3.org/2000/svg');\n        svgDom.setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:xlink', 'http://www.w3.org/1999/xlink');\n        svgDom.setAttribute('version', '1.1');\n        svgDom.setAttribute('baseProfile', 'full');\n        svgDom.style.cssText = 'user-select:none;position:absolute;left:0;top:0;';\n        var bgRoot = createElement('g');\n        svgDom.appendChild(bgRoot);\n        var svgRoot = createElement('g');\n        svgDom.appendChild(svgRoot);\n        this._gradientManager = new GradientManager(zrId, svgRoot);\n        this._patternManager = new PatternManager(zrId, svgRoot);\n        this._clipPathManager = new ClippathManager(zrId, svgRoot);\n        this._shadowManager = new ShadowManager(zrId, svgRoot);\n        var viewport = document.createElement('div');\n        viewport.style.cssText = 'overflow:hidden;position:relative';\n        this._svgDom = svgDom;\n        this._svgRoot = svgRoot;\n        this._backgroundRoot = bgRoot;\n        this._viewport = viewport;\n        root.appendChild(viewport);\n        viewport.appendChild(svgDom);\n        this.resize(opts.width, opts.height);\n        this._visibleList = [];\n    }\n    SVGPainter.prototype.getType = function () {\n        return 'svg';\n    };\n    SVGPainter.prototype.getViewportRoot = function () {\n        return this._viewport;\n    };\n    SVGPainter.prototype.getSvgDom = function () {\n        return this._svgDom;\n    };\n    SVGPainter.prototype.getSvgRoot = function () {\n        return this._svgRoot;\n    };\n    SVGPainter.prototype.getViewportRootOffset = function () {\n        var viewportRoot = this.getViewportRoot();\n        if (viewportRoot) {\n            return {\n                offsetLeft: viewportRoot.offsetLeft || 0,\n                offsetTop: viewportRoot.offsetTop || 0\n            };\n        }\n    };\n    SVGPainter.prototype.refresh = function () {\n        var list = this.storage.getDisplayList(true);\n        this._paintList(list);\n    };\n    SVGPainter.prototype.setBackgroundColor = function (backgroundColor) {\n        if (this._backgroundRoot && this._backgroundNode) {\n            this._backgroundRoot.removeChild(this._backgroundNode);\n        }\n        var bgNode = createElement('rect');\n        bgNode.setAttribute('width', this.getWidth());\n        bgNode.setAttribute('height', this.getHeight());\n        bgNode.setAttribute('x', 0);\n        bgNode.setAttribute('y', 0);\n        bgNode.setAttribute('id', 0);\n        bgNode.style.fill = backgroundColor;\n        this._backgroundRoot.appendChild(bgNode);\n        this._backgroundNode = bgNode;\n    };\n    SVGPainter.prototype.createSVGElement = function (tag) {\n        return createElement(tag);\n    };\n    SVGPainter.prototype.paintOne = function (el) {\n        var svgProxy = getSvgProxy(el);\n        svgProxy && svgProxy.brush(el);\n        return getSvgElement(el);\n    };\n    SVGPainter.prototype._paintList = function (list) {\n        var gradientManager = this._gradientManager;\n        var patternManager = this._patternManager;\n        var clipPathManager = this._clipPathManager;\n        var shadowManager = this._shadowManager;\n        gradientManager.markAllUnused();\n        patternManager.markAllUnused();\n        clipPathManager.markAllUnused();\n        shadowManager.markAllUnused();\n        var svgRoot = this._svgRoot;\n        var visibleList = this._visibleList;\n        var listLen = list.length;\n        var newVisibleList = [];\n        for (var i = 0; i < listLen; i++) {\n            var displayable = list[i];\n            var svgProxy = getSvgProxy(displayable);\n            var svgElement = getSvgElement(displayable);\n            if (!displayable.invisible) {\n                if (displayable.__dirty || !svgElement) {\n                    svgProxy && svgProxy.brush(displayable);\n                    svgElement = getSvgElement(displayable);\n                    if (svgElement && displayable.style) {\n                        gradientManager.update(displayable.style.fill);\n                        gradientManager.update(displayable.style.stroke);\n                        patternManager.update(displayable.style.fill);\n                        patternManager.update(displayable.style.stroke);\n                        shadowManager.update(svgElement, displayable);\n                    }\n                    displayable.__dirty = 0;\n                }\n                if (svgElement) {\n                    newVisibleList.push(displayable);\n                }\n            }\n        }\n        var diff = arrayDiff(visibleList, newVisibleList);\n        var prevSvgElement;\n        var topPrevSvgElement;\n        for (var i = 0; i < diff.length; i++) {\n            var item = diff[i];\n            if (item.removed) {\n                for (var k = 0; k < item.count; k++) {\n                    var displayable = visibleList[item.indices[k]];\n                    var svgElement = getSvgElement(displayable);\n                    hasClipPath(displayable) ? removeFromMyParent(svgElement)\n                        : remove(svgRoot, svgElement);\n                }\n            }\n        }\n        var prevDisplayable;\n        var currentClipGroup;\n        for (var i = 0; i < diff.length; i++) {\n            var item = diff[i];\n            var isAdd = item.added;\n            if (item.removed) {\n                continue;\n            }\n            for (var k = 0; k < item.count; k++) {\n                var displayable = newVisibleList[item.indices[k]];\n                var clipGroup = clipPathManager.update(displayable, prevDisplayable);\n                if (clipGroup !== currentClipGroup) {\n                    prevSvgElement = topPrevSvgElement;\n                    if (clipGroup) {\n                        prevSvgElement ? insertAfter(svgRoot, clipGroup, prevSvgElement)\n                            : prepend(svgRoot, clipGroup);\n                        topPrevSvgElement = clipGroup;\n                        prevSvgElement = null;\n                    }\n                    currentClipGroup = clipGroup;\n                }\n                var svgElement = getSvgElement(displayable);\n                prevSvgElement\n                    ? insertAfter(currentClipGroup || svgRoot, svgElement, prevSvgElement)\n                    : prepend(currentClipGroup || svgRoot, svgElement);\n                prevSvgElement = svgElement || prevSvgElement;\n                if (!currentClipGroup) {\n                    topPrevSvgElement = prevSvgElement;\n                }\n                gradientManager.markUsed(displayable);\n                gradientManager.addWithoutUpdate(svgElement, displayable);\n                patternManager.markUsed(displayable);\n                patternManager.addWithoutUpdate(svgElement, displayable);\n                clipPathManager.markUsed(displayable);\n                prevDisplayable = displayable;\n            }\n        }\n        gradientManager.removeUnused();\n        patternManager.removeUnused();\n        clipPathManager.removeUnused();\n        shadowManager.removeUnused();\n        this._visibleList = newVisibleList;\n    };\n    SVGPainter.prototype._getDefs = function (isForceCreating) {\n        var svgRoot = this._svgDom;\n        var defs = svgRoot.getElementsByTagName('defs');\n        if (defs.length === 0) {\n            if (isForceCreating) {\n                var defs_1 = svgRoot.insertBefore(createElement('defs'), svgRoot.firstChild);\n                if (!defs_1.contains) {\n                    defs_1.contains = function (el) {\n                        var children = defs_1.children;\n                        if (!children) {\n                            return false;\n                        }\n                        for (var i = children.length - 1; i >= 0; --i) {\n                            if (children[i] === el) {\n                                return true;\n                            }\n                        }\n                        return false;\n                    };\n                }\n                return defs_1;\n            }\n            else {\n                return null;\n            }\n        }\n        else {\n            return defs[0];\n        }\n    };\n    SVGPainter.prototype.resize = function (width, height) {\n        var viewport = this._viewport;\n        viewport.style.display = 'none';\n        var opts = this._opts;\n        width != null && (opts.width = width);\n        height != null && (opts.height = height);\n        width = this._getSize(0);\n        height = this._getSize(1);\n        viewport.style.display = '';\n        if (this._width !== width || this._height !== height) {\n            this._width = width;\n            this._height = height;\n            var viewportStyle = viewport.style;\n            viewportStyle.width = width + 'px';\n            viewportStyle.height = height + 'px';\n            var svgRoot = this._svgDom;\n            svgRoot.setAttribute('width', width + '');\n            svgRoot.setAttribute('height', height + '');\n        }\n        if (this._backgroundNode) {\n            this._backgroundNode.setAttribute('width', width);\n            this._backgroundNode.setAttribute('height', height);\n        }\n    };\n    SVGPainter.prototype.getWidth = function () {\n        return this._width;\n    };\n    SVGPainter.prototype.getHeight = function () {\n        return this._height;\n    };\n    SVGPainter.prototype._getSize = function (whIdx) {\n        var opts = this._opts;\n        var wh = ['width', 'height'][whIdx];\n        var cwh = ['clientWidth', 'clientHeight'][whIdx];\n        var plt = ['paddingLeft', 'paddingTop'][whIdx];\n        var prb = ['paddingRight', 'paddingBottom'][whIdx];\n        if (opts[wh] != null && opts[wh] !== 'auto') {\n            return parseFloat(opts[wh]);\n        }\n        var root = this.root;\n        var stl = document.defaultView.getComputedStyle(root);\n        return ((root[cwh] || parseInt10(stl[wh]) || parseInt10(root.style[wh]))\n            - (parseInt10(stl[plt]) || 0)\n            - (parseInt10(stl[prb]) || 0)) | 0;\n    };\n    SVGPainter.prototype.dispose = function () {\n        this.root.innerHTML = '';\n        this._svgRoot\n            = this._backgroundRoot\n                = this._svgDom\n                    = this._backgroundNode\n                        = this._viewport\n                            = this.storage\n                                = null;\n    };\n    SVGPainter.prototype.clear = function () {\n        var viewportNode = this._viewport;\n        if (viewportNode && viewportNode.parentNode) {\n            viewportNode.parentNode.removeChild(viewportNode);\n        }\n    };\n    SVGPainter.prototype.toDataURL = function () {\n        this.refresh();\n        var svgDom = this._svgDom;\n        var outerHTML = svgDom.outerHTML\n            || (svgDom.parentNode && svgDom.parentNode).innerHTML;\n        var html = encodeURIComponent(outerHTML.replace(/></g, '>\\n\\r<'));\n        return 'data:image/svg+xml;charset=UTF-8,' + html;\n    };\n    return SVGPainter;\n}());\nfunction createMethodNotSupport(method) {\n    return function () {\n        util.logError('In SVG mode painter not support method \"' + method + '\"');\n    };\n}\nexport default SVGPainter;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SVGPainter from 'zrender/lib/svg/Painter';\nexport function install(registers) {\n  registers.registerPainter('svg', SVGPainter);\n}","import { __extends } from \"tslib\";\nimport * as util from '../core/util';\nimport { devicePixelRatio } from '../config';\nimport Eventful from '../core/Eventful';\nimport Element from '../Element';\nimport { getCanvasGradient } from './helper';\nimport { createCanvasPattern } from './graphic';\nimport BoundingRect from '../core/BoundingRect';\nfunction returnFalse() {\n    return false;\n}\nfunction createDom(id, painter, dpr) {\n    var newDom = util.createCanvas();\n    var width = painter.getWidth();\n    var height = painter.getHeight();\n    var newDomStyle = newDom.style;\n    if (newDomStyle) {\n        newDomStyle.position = 'absolute';\n        newDomStyle.left = '0';\n        newDomStyle.top = '0';\n        newDomStyle.width = width + 'px';\n        newDomStyle.height = height + 'px';\n        newDom.setAttribute('data-zr-dom-id', id);\n    }\n    newDom.width = width * dpr;\n    newDom.height = height * dpr;\n    return newDom;\n}\n;\nvar Layer = (function (_super) {\n    __extends(Layer, _super);\n    function Layer(id, painter, dpr) {\n        var _this = _super.call(this) || this;\n        _this.motionBlur = false;\n        _this.lastFrameAlpha = 0.7;\n        _this.dpr = 1;\n        _this.virtual = false;\n        _this.config = {};\n        _this.incremental = false;\n        _this.zlevel = 0;\n        _this.maxRepaintRectCount = 5;\n        _this.__dirty = true;\n        _this.__firstTimePaint = true;\n        _this.__used = false;\n        _this.__drawIndex = 0;\n        _this.__startIndex = 0;\n        _this.__endIndex = 0;\n        _this.__prevStartIndex = null;\n        _this.__prevEndIndex = null;\n        var dom;\n        dpr = dpr || devicePixelRatio;\n        if (typeof id === 'string') {\n            dom = createDom(id, painter, dpr);\n        }\n        else if (util.isObject(id)) {\n            dom = id;\n            id = dom.id;\n        }\n        _this.id = id;\n        _this.dom = dom;\n        var domStyle = dom.style;\n        if (domStyle) {\n            dom.onselectstart = returnFalse;\n            domStyle.webkitUserSelect = 'none';\n            domStyle.userSelect = 'none';\n            domStyle.webkitTapHighlightColor = 'rgba(0,0,0,0)';\n            domStyle['-webkit-touch-callout'] = 'none';\n            domStyle.padding = '0';\n            domStyle.margin = '0';\n            domStyle.borderWidth = '0';\n        }\n        _this.domBack = null;\n        _this.ctxBack = null;\n        _this.painter = painter;\n        _this.config = null;\n        _this.dpr = dpr;\n        return _this;\n    }\n    Layer.prototype.getElementCount = function () {\n        return this.__endIndex - this.__startIndex;\n    };\n    Layer.prototype.afterBrush = function () {\n        this.__prevStartIndex = this.__startIndex;\n        this.__prevEndIndex = this.__endIndex;\n    };\n    Layer.prototype.initContext = function () {\n        this.ctx = this.dom.getContext('2d');\n        this.ctx.dpr = this.dpr;\n    };\n    Layer.prototype.setUnpainted = function () {\n        this.__firstTimePaint = true;\n    };\n    Layer.prototype.createBackBuffer = function () {\n        var dpr = this.dpr;\n        this.domBack = createDom('back-' + this.id, this.painter, dpr);\n        this.ctxBack = this.domBack.getContext('2d');\n        if (dpr !== 1) {\n            this.ctxBack.scale(dpr, dpr);\n        }\n    };\n    Layer.prototype.createRepaintRects = function (displayList, prevList, viewWidth, viewHeight) {\n        if (this.__firstTimePaint) {\n            this.__firstTimePaint = false;\n            return null;\n        }\n        var mergedRepaintRects = [];\n        var maxRepaintRectCount = this.maxRepaintRectCount;\n        var full = false;\n        var pendingRect = new BoundingRect(0, 0, 0, 0);\n        function addRectToMergePool(rect) {\n            if (!rect.isFinite() || rect.isZero()) {\n                return;\n            }\n            if (mergedRepaintRects.length === 0) {\n                var boundingRect = new BoundingRect(0, 0, 0, 0);\n                boundingRect.copy(rect);\n                mergedRepaintRects.push(boundingRect);\n            }\n            else {\n                var isMerged = false;\n                var minDeltaArea = Infinity;\n                var bestRectToMergeIdx = 0;\n                for (var i = 0; i < mergedRepaintRects.length; ++i) {\n                    var mergedRect = mergedRepaintRects[i];\n                    if (mergedRect.intersect(rect)) {\n                        var pendingRect_1 = new BoundingRect(0, 0, 0, 0);\n                        pendingRect_1.copy(mergedRect);\n                        pendingRect_1.union(rect);\n                        mergedRepaintRects[i] = pendingRect_1;\n                        isMerged = true;\n                        break;\n                    }\n                    else if (full) {\n                        pendingRect.copy(rect);\n                        pendingRect.union(mergedRect);\n                        var aArea = rect.width * rect.height;\n                        var bArea = mergedRect.width * mergedRect.height;\n                        var pendingArea = pendingRect.width * pendingRect.height;\n                        var deltaArea = pendingArea - aArea - bArea;\n                        if (deltaArea < minDeltaArea) {\n                            minDeltaArea = deltaArea;\n                            bestRectToMergeIdx = i;\n                        }\n                    }\n                }\n                if (full) {\n                    mergedRepaintRects[bestRectToMergeIdx].union(rect);\n                    isMerged = true;\n                }\n                if (!isMerged) {\n                    var boundingRect = new BoundingRect(0, 0, 0, 0);\n                    boundingRect.copy(rect);\n                    mergedRepaintRects.push(boundingRect);\n                }\n                if (!full) {\n                    full = mergedRepaintRects.length >= maxRepaintRectCount;\n                }\n            }\n        }\n        for (var i = this.__startIndex; i < this.__endIndex; ++i) {\n            var el = displayList[i];\n            if (el) {\n                var shouldPaint = el.shouldBePainted(viewWidth, viewHeight, true, true);\n                var prevRect = el.__isRendered && ((el.__dirty & Element.REDARAW_BIT) || !shouldPaint)\n                    ? el.getPrevPaintRect()\n                    : null;\n                if (prevRect) {\n                    addRectToMergePool(prevRect);\n                }\n                var curRect = shouldPaint && ((el.__dirty & Element.REDARAW_BIT) || !el.__isRendered)\n                    ? el.getPaintRect()\n                    : null;\n                if (curRect) {\n                    addRectToMergePool(curRect);\n                }\n            }\n        }\n        for (var i = this.__prevStartIndex; i < this.__prevEndIndex; ++i) {\n            var el = prevList[i];\n            var shouldPaint = el.shouldBePainted(viewWidth, viewHeight, true, true);\n            if (el && (!shouldPaint || !el.__zr) && el.__isRendered) {\n                var prevRect = el.getPrevPaintRect();\n                if (prevRect) {\n                    addRectToMergePool(prevRect);\n                }\n            }\n        }\n        var hasIntersections;\n        do {\n            hasIntersections = false;\n            for (var i = 0; i < mergedRepaintRects.length;) {\n                if (mergedRepaintRects[i].isZero()) {\n                    mergedRepaintRects.splice(i, 1);\n                    continue;\n                }\n                for (var j = i + 1; j < mergedRepaintRects.length;) {\n                    if (mergedRepaintRects[i].intersect(mergedRepaintRects[j])) {\n                        hasIntersections = true;\n                        mergedRepaintRects[i].union(mergedRepaintRects[j]);\n                        mergedRepaintRects.splice(j, 1);\n                    }\n                    else {\n                        j++;\n                    }\n                }\n                i++;\n            }\n        } while (hasIntersections);\n        this._paintRects = mergedRepaintRects;\n        return mergedRepaintRects;\n    };\n    Layer.prototype.debugGetPaintRects = function () {\n        return (this._paintRects || []).slice();\n    };\n    Layer.prototype.resize = function (width, height) {\n        var dpr = this.dpr;\n        var dom = this.dom;\n        var domStyle = dom.style;\n        var domBack = this.domBack;\n        if (domStyle) {\n            domStyle.width = width + 'px';\n            domStyle.height = height + 'px';\n        }\n        dom.width = width * dpr;\n        dom.height = height * dpr;\n        if (domBack) {\n            domBack.width = width * dpr;\n            domBack.height = height * dpr;\n            if (dpr !== 1) {\n                this.ctxBack.scale(dpr, dpr);\n            }\n        }\n    };\n    Layer.prototype.clear = function (clearAll, clearColor, repaintRects) {\n        var dom = this.dom;\n        var ctx = this.ctx;\n        var width = dom.width;\n        var height = dom.height;\n        clearColor = clearColor || this.clearColor;\n        var haveMotionBLur = this.motionBlur && !clearAll;\n        var lastFrameAlpha = this.lastFrameAlpha;\n        var dpr = this.dpr;\n        var self = this;\n        if (haveMotionBLur) {\n            if (!this.domBack) {\n                this.createBackBuffer();\n            }\n            this.ctxBack.globalCompositeOperation = 'copy';\n            this.ctxBack.drawImage(dom, 0, 0, width / dpr, height / dpr);\n        }\n        var domBack = this.domBack;\n        function doClear(x, y, width, height) {\n            ctx.clearRect(x, y, width, height);\n            if (clearColor && clearColor !== 'transparent') {\n                var clearColorGradientOrPattern = void 0;\n                if (util.isGradientObject(clearColor)) {\n                    clearColorGradientOrPattern = clearColor.__canvasGradient\n                        || getCanvasGradient(ctx, clearColor, {\n                            x: 0,\n                            y: 0,\n                            width: width,\n                            height: height\n                        });\n                    clearColor.__canvasGradient = clearColorGradientOrPattern;\n                }\n                else if (util.isPatternObject(clearColor)) {\n                    clearColorGradientOrPattern = createCanvasPattern(ctx, clearColor, {\n                        dirty: function () {\n                            self.setUnpainted();\n                            self.__painter.refresh();\n                        }\n                    });\n                }\n                ctx.save();\n                ctx.fillStyle = clearColorGradientOrPattern || clearColor;\n                ctx.fillRect(x, y, width, height);\n                ctx.restore();\n            }\n            if (haveMotionBLur) {\n                ctx.save();\n                ctx.globalAlpha = lastFrameAlpha;\n                ctx.drawImage(domBack, x, y, width, height);\n                ctx.restore();\n            }\n        }\n        ;\n        if (!repaintRects || haveMotionBLur) {\n            doClear(0, 0, width, height);\n        }\n        else if (repaintRects.length) {\n            util.each(repaintRects, function (rect) {\n                doClear(rect.x * dpr, rect.y * dpr, rect.width * dpr, rect.height * dpr);\n            });\n        }\n    };\n    return Layer;\n}(Eventful));\nexport default Layer;\n","import { devicePixelRatio } from '../config';\nimport * as util from '../core/util';\nimport Layer from './Layer';\nimport requestAnimationFrame from '../animation/requestAnimationFrame';\nimport ZRImage from '../graphic/Image';\nimport env from '../core/env';\nimport { brush, brushSingle } from './graphic';\nimport Element from '../Element';\nvar HOVER_LAYER_ZLEVEL = 1e5;\nvar CANVAS_ZLEVEL = 314159;\nvar EL_AFTER_INCREMENTAL_INC = 0.01;\nvar INCREMENTAL_INC = 0.001;\nfunction parseInt10(val) {\n    return parseInt(val, 10);\n}\nfunction isLayerValid(layer) {\n    if (!layer) {\n        return false;\n    }\n    if (layer.__builtin__) {\n        return true;\n    }\n    if (typeof (layer.resize) !== 'function'\n        || typeof (layer.refresh) !== 'function') {\n        return false;\n    }\n    return true;\n}\nfunction createRoot(width, height) {\n    var domRoot = document.createElement('div');\n    domRoot.style.cssText = [\n        'position:relative',\n        'width:' + width + 'px',\n        'height:' + height + 'px',\n        'padding:0',\n        'margin:0',\n        'border-width:0'\n    ].join(';') + ';';\n    return domRoot;\n}\nvar CanvasPainter = (function () {\n    function CanvasPainter(root, storage, opts, id) {\n        this.type = 'canvas';\n        this._zlevelList = [];\n        this._prevDisplayList = [];\n        this._layers = {};\n        this._layerConfig = {};\n        this._needsManuallyCompositing = false;\n        this.type = 'canvas';\n        var singleCanvas = !root.nodeName\n            || root.nodeName.toUpperCase() === 'CANVAS';\n        this._opts = opts = util.extend({}, opts || {});\n        this.dpr = opts.devicePixelRatio || devicePixelRatio;\n        this._singleCanvas = singleCanvas;\n        this.root = root;\n        var rootStyle = root.style;\n        if (rootStyle) {\n            rootStyle.webkitTapHighlightColor = 'transparent';\n            rootStyle.webkitUserSelect = 'none';\n            rootStyle.userSelect = 'none';\n            rootStyle['-webkit-touch-callout'] = 'none';\n            root.innerHTML = '';\n        }\n        this.storage = storage;\n        var zlevelList = this._zlevelList;\n        this._prevDisplayList = [];\n        var layers = this._layers;\n        if (!singleCanvas) {\n            this._width = this._getSize(0);\n            this._height = this._getSize(1);\n            var domRoot = this._domRoot = createRoot(this._width, this._height);\n            root.appendChild(domRoot);\n        }\n        else {\n            var rootCanvas = root;\n            var width = rootCanvas.width;\n            var height = rootCanvas.height;\n            if (opts.width != null) {\n                width = opts.width;\n            }\n            if (opts.height != null) {\n                height = opts.height;\n            }\n            this.dpr = opts.devicePixelRatio || 1;\n            rootCanvas.width = width * this.dpr;\n            rootCanvas.height = height * this.dpr;\n            this._width = width;\n            this._height = height;\n            var mainLayer = new Layer(rootCanvas, this, this.dpr);\n            mainLayer.__builtin__ = true;\n            mainLayer.initContext();\n            layers[CANVAS_ZLEVEL] = mainLayer;\n            mainLayer.zlevel = CANVAS_ZLEVEL;\n            zlevelList.push(CANVAS_ZLEVEL);\n            this._domRoot = root;\n        }\n    }\n    CanvasPainter.prototype.getType = function () {\n        return 'canvas';\n    };\n    CanvasPainter.prototype.isSingleCanvas = function () {\n        return this._singleCanvas;\n    };\n    CanvasPainter.prototype.getViewportRoot = function () {\n        return this._domRoot;\n    };\n    CanvasPainter.prototype.getViewportRootOffset = function () {\n        var viewportRoot = this.getViewportRoot();\n        if (viewportRoot) {\n            return {\n                offsetLeft: viewportRoot.offsetLeft || 0,\n                offsetTop: viewportRoot.offsetTop || 0\n            };\n        }\n    };\n    CanvasPainter.prototype.refresh = function (paintAll) {\n        var list = this.storage.getDisplayList(true);\n        var prevList = this._prevDisplayList;\n        var zlevelList = this._zlevelList;\n        this._redrawId = Math.random();\n        this._paintList(list, prevList, paintAll, this._redrawId);\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            var layer = this._layers[z];\n            if (!layer.__builtin__ && layer.refresh) {\n                var clearColor = i === 0 ? this._backgroundColor : null;\n                layer.refresh(clearColor);\n            }\n        }\n        if (this._opts.useDirtyRect) {\n            this._prevDisplayList = list.slice();\n        }\n        return this;\n    };\n    CanvasPainter.prototype.refreshHover = function () {\n        this._paintHoverList(this.storage.getDisplayList(false));\n    };\n    CanvasPainter.prototype._paintHoverList = function (list) {\n        var len = list.length;\n        var hoverLayer = this._hoverlayer;\n        hoverLayer && hoverLayer.clear();\n        if (!len) {\n            return;\n        }\n        var scope = {\n            inHover: true,\n            viewWidth: this._width,\n            viewHeight: this._height\n        };\n        var ctx;\n        for (var i = 0; i < len; i++) {\n            var el = list[i];\n            if (el.__inHover) {\n                if (!hoverLayer) {\n                    hoverLayer = this._hoverlayer = this.getLayer(HOVER_LAYER_ZLEVEL);\n                }\n                if (!ctx) {\n                    ctx = hoverLayer.ctx;\n                    ctx.save();\n                }\n                brush(ctx, el, scope, i === len - 1);\n            }\n        }\n        if (ctx) {\n            ctx.restore();\n        }\n    };\n    CanvasPainter.prototype.getHoverLayer = function () {\n        return this.getLayer(HOVER_LAYER_ZLEVEL);\n    };\n    CanvasPainter.prototype.paintOne = function (ctx, el) {\n        brushSingle(ctx, el);\n    };\n    CanvasPainter.prototype._paintList = function (list, prevList, paintAll, redrawId) {\n        if (this._redrawId !== redrawId) {\n            return;\n        }\n        paintAll = paintAll || false;\n        this._updateLayerStatus(list);\n        var _a = this._doPaintList(list, prevList, paintAll), finished = _a.finished, needsRefreshHover = _a.needsRefreshHover;\n        if (this._needsManuallyCompositing) {\n            this._compositeManually();\n        }\n        if (needsRefreshHover) {\n            this._paintHoverList(list);\n        }\n        if (!finished) {\n            var self_1 = this;\n            requestAnimationFrame(function () {\n                self_1._paintList(list, prevList, paintAll, redrawId);\n            });\n        }\n        else {\n            this.eachLayer(function (layer) {\n                layer.afterBrush && layer.afterBrush();\n            });\n        }\n    };\n    CanvasPainter.prototype._compositeManually = function () {\n        var ctx = this.getLayer(CANVAS_ZLEVEL).ctx;\n        var width = this._domRoot.width;\n        var height = this._domRoot.height;\n        ctx.clearRect(0, 0, width, height);\n        this.eachBuiltinLayer(function (layer) {\n            if (layer.virtual) {\n                ctx.drawImage(layer.dom, 0, 0, width, height);\n            }\n        });\n    };\n    CanvasPainter.prototype._doPaintList = function (list, prevList, paintAll) {\n        var _this = this;\n        var layerList = [];\n        var useDirtyRect = this._opts.useDirtyRect;\n        for (var zi = 0; zi < this._zlevelList.length; zi++) {\n            var zlevel = this._zlevelList[zi];\n            var layer = this._layers[zlevel];\n            if (layer.__builtin__\n                && layer !== this._hoverlayer\n                && (layer.__dirty || paintAll)) {\n                layerList.push(layer);\n            }\n        }\n        var finished = true;\n        var needsRefreshHover = false;\n        var _loop_1 = function (k) {\n            var layer = layerList[k];\n            var ctx = layer.ctx;\n            var repaintRects = useDirtyRect\n                && layer.createRepaintRects(list, prevList, this_1._width, this_1._height);\n            ctx.save();\n            var start = paintAll ? layer.__startIndex : layer.__drawIndex;\n            var useTimer = !paintAll && layer.incremental && Date.now;\n            var startTime = useTimer && Date.now();\n            var clearColor = layer.zlevel === this_1._zlevelList[0]\n                ? this_1._backgroundColor : null;\n            if (layer.__startIndex === layer.__endIndex) {\n                layer.clear(false, clearColor, repaintRects);\n            }\n            else if (start === layer.__startIndex) {\n                var firstEl = list[start];\n                if (!firstEl.incremental || !firstEl.notClear || paintAll) {\n                    layer.clear(false, clearColor, repaintRects);\n                }\n            }\n            if (start === -1) {\n                console.error('For some unknown reason. drawIndex is -1');\n                start = layer.__startIndex;\n            }\n            var i;\n            var repaint = function (repaintRect) {\n                var scope = {\n                    inHover: false,\n                    allClipped: false,\n                    prevEl: null,\n                    viewWidth: _this._width,\n                    viewHeight: _this._height\n                };\n                for (i = start; i < layer.__endIndex; i++) {\n                    var el = list[i];\n                    if (el.__inHover) {\n                        needsRefreshHover = true;\n                    }\n                    _this._doPaintEl(el, layer, useDirtyRect, repaintRect, scope, i === layer.__endIndex - 1);\n                    if (useTimer) {\n                        var dTime = Date.now() - startTime;\n                        if (dTime > 15) {\n                            break;\n                        }\n                    }\n                }\n                if (scope.prevElClipPaths) {\n                    ctx.restore();\n                }\n            };\n            if (repaintRects) {\n                if (repaintRects.length === 0) {\n                    i = layer.__endIndex;\n                }\n                else {\n                    var dpr = this_1.dpr;\n                    for (var r = 0; r < repaintRects.length; ++r) {\n                        var rect = repaintRects[r];\n                        ctx.save();\n                        ctx.beginPath();\n                        ctx.rect(rect.x * dpr, rect.y * dpr, rect.width * dpr, rect.height * dpr);\n                        ctx.clip();\n                        repaint(rect);\n                        ctx.restore();\n                    }\n                }\n            }\n            else {\n                ctx.save();\n                repaint();\n                ctx.restore();\n            }\n            layer.__drawIndex = i;\n            if (layer.__drawIndex < layer.__endIndex) {\n                finished = false;\n            }\n        };\n        var this_1 = this;\n        for (var k = 0; k < layerList.length; k++) {\n            _loop_1(k);\n        }\n        if (env.wxa) {\n            util.each(this._layers, function (layer) {\n                if (layer && layer.ctx && layer.ctx.draw) {\n                    layer.ctx.draw();\n                }\n            });\n        }\n        return {\n            finished: finished,\n            needsRefreshHover: needsRefreshHover\n        };\n    };\n    CanvasPainter.prototype._doPaintEl = function (el, currentLayer, useDirtyRect, repaintRect, scope, isLast) {\n        var ctx = currentLayer.ctx;\n        if (useDirtyRect) {\n            var paintRect = el.getPaintRect();\n            if (!repaintRect || paintRect && paintRect.intersect(repaintRect)) {\n                brush(ctx, el, scope, isLast);\n                el.setPrevPaintRect(paintRect);\n            }\n        }\n        else {\n            brush(ctx, el, scope, isLast);\n        }\n    };\n    CanvasPainter.prototype.getLayer = function (zlevel, virtual) {\n        if (this._singleCanvas && !this._needsManuallyCompositing) {\n            zlevel = CANVAS_ZLEVEL;\n        }\n        var layer = this._layers[zlevel];\n        if (!layer) {\n            layer = new Layer('zr_' + zlevel, this, this.dpr);\n            layer.zlevel = zlevel;\n            layer.__builtin__ = true;\n            if (this._layerConfig[zlevel]) {\n                util.merge(layer, this._layerConfig[zlevel], true);\n            }\n            else if (this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC]) {\n                util.merge(layer, this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC], true);\n            }\n            if (virtual) {\n                layer.virtual = virtual;\n            }\n            this.insertLayer(zlevel, layer);\n            layer.initContext();\n        }\n        return layer;\n    };\n    CanvasPainter.prototype.insertLayer = function (zlevel, layer) {\n        var layersMap = this._layers;\n        var zlevelList = this._zlevelList;\n        var len = zlevelList.length;\n        var domRoot = this._domRoot;\n        var prevLayer = null;\n        var i = -1;\n        if (layersMap[zlevel]) {\n            util.logError('ZLevel ' + zlevel + ' has been used already');\n            return;\n        }\n        if (!isLayerValid(layer)) {\n            util.logError('Layer of zlevel ' + zlevel + ' is not valid');\n            return;\n        }\n        if (len > 0 && zlevel > zlevelList[0]) {\n            for (i = 0; i < len - 1; i++) {\n                if (zlevelList[i] < zlevel\n                    && zlevelList[i + 1] > zlevel) {\n                    break;\n                }\n            }\n            prevLayer = layersMap[zlevelList[i]];\n        }\n        zlevelList.splice(i + 1, 0, zlevel);\n        layersMap[zlevel] = layer;\n        if (!layer.virtual) {\n            if (prevLayer) {\n                var prevDom = prevLayer.dom;\n                if (prevDom.nextSibling) {\n                    domRoot.insertBefore(layer.dom, prevDom.nextSibling);\n                }\n                else {\n                    domRoot.appendChild(layer.dom);\n                }\n            }\n            else {\n                if (domRoot.firstChild) {\n                    domRoot.insertBefore(layer.dom, domRoot.firstChild);\n                }\n                else {\n                    domRoot.appendChild(layer.dom);\n                }\n            }\n        }\n        layer.__painter = this;\n    };\n    CanvasPainter.prototype.eachLayer = function (cb, context) {\n        var zlevelList = this._zlevelList;\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            cb.call(context, this._layers[z], z);\n        }\n    };\n    CanvasPainter.prototype.eachBuiltinLayer = function (cb, context) {\n        var zlevelList = this._zlevelList;\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            var layer = this._layers[z];\n            if (layer.__builtin__) {\n                cb.call(context, layer, z);\n            }\n        }\n    };\n    CanvasPainter.prototype.eachOtherLayer = function (cb, context) {\n        var zlevelList = this._zlevelList;\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            var layer = this._layers[z];\n            if (!layer.__builtin__) {\n                cb.call(context, layer, z);\n            }\n        }\n    };\n    CanvasPainter.prototype.getLayers = function () {\n        return this._layers;\n    };\n    CanvasPainter.prototype._updateLayerStatus = function (list) {\n        this.eachBuiltinLayer(function (layer, z) {\n            layer.__dirty = layer.__used = false;\n        });\n        function updatePrevLayer(idx) {\n            if (prevLayer) {\n                if (prevLayer.__endIndex !== idx) {\n                    prevLayer.__dirty = true;\n                }\n                prevLayer.__endIndex = idx;\n            }\n        }\n        if (this._singleCanvas) {\n            for (var i_1 = 1; i_1 < list.length; i_1++) {\n                var el = list[i_1];\n                if (el.zlevel !== list[i_1 - 1].zlevel || el.incremental) {\n                    this._needsManuallyCompositing = true;\n                    break;\n                }\n            }\n        }\n        var prevLayer = null;\n        var incrementalLayerCount = 0;\n        var prevZlevel;\n        var i;\n        for (i = 0; i < list.length; i++) {\n            var el = list[i];\n            var zlevel = el.zlevel;\n            var layer = void 0;\n            if (prevZlevel !== zlevel) {\n                prevZlevel = zlevel;\n                incrementalLayerCount = 0;\n            }\n            if (el.incremental) {\n                layer = this.getLayer(zlevel + INCREMENTAL_INC, this._needsManuallyCompositing);\n                layer.incremental = true;\n                incrementalLayerCount = 1;\n            }\n            else {\n                layer = this.getLayer(zlevel + (incrementalLayerCount > 0 ? EL_AFTER_INCREMENTAL_INC : 0), this._needsManuallyCompositing);\n            }\n            if (!layer.__builtin__) {\n                util.logError('ZLevel ' + zlevel + ' has been used by unkown layer ' + layer.id);\n            }\n            if (layer !== prevLayer) {\n                layer.__used = true;\n                if (layer.__startIndex !== i) {\n                    layer.__dirty = true;\n                }\n                layer.__startIndex = i;\n                if (!layer.incremental) {\n                    layer.__drawIndex = i;\n                }\n                else {\n                    layer.__drawIndex = -1;\n                }\n                updatePrevLayer(i);\n                prevLayer = layer;\n            }\n            if ((el.__dirty & Element.REDARAW_BIT) && !el.__inHover) {\n                layer.__dirty = true;\n                if (layer.incremental && layer.__drawIndex < 0) {\n                    layer.__drawIndex = i;\n                }\n            }\n        }\n        updatePrevLayer(i);\n        this.eachBuiltinLayer(function (layer, z) {\n            if (!layer.__used && layer.getElementCount() > 0) {\n                layer.__dirty = true;\n                layer.__startIndex = layer.__endIndex = layer.__drawIndex = 0;\n            }\n            if (layer.__dirty && layer.__drawIndex < 0) {\n                layer.__drawIndex = layer.__startIndex;\n            }\n        });\n    };\n    CanvasPainter.prototype.clear = function () {\n        this.eachBuiltinLayer(this._clearLayer);\n        return this;\n    };\n    CanvasPainter.prototype._clearLayer = function (layer) {\n        layer.clear();\n    };\n    CanvasPainter.prototype.setBackgroundColor = function (backgroundColor) {\n        this._backgroundColor = backgroundColor;\n        util.each(this._layers, function (layer) {\n            layer.setUnpainted();\n        });\n    };\n    CanvasPainter.prototype.configLayer = function (zlevel, config) {\n        if (config) {\n            var layerConfig = this._layerConfig;\n            if (!layerConfig[zlevel]) {\n                layerConfig[zlevel] = config;\n            }\n            else {\n                util.merge(layerConfig[zlevel], config, true);\n            }\n            for (var i = 0; i < this._zlevelList.length; i++) {\n                var _zlevel = this._zlevelList[i];\n                if (_zlevel === zlevel || _zlevel === zlevel + EL_AFTER_INCREMENTAL_INC) {\n                    var layer = this._layers[_zlevel];\n                    util.merge(layer, layerConfig[zlevel], true);\n                }\n            }\n        }\n    };\n    CanvasPainter.prototype.delLayer = function (zlevel) {\n        var layers = this._layers;\n        var zlevelList = this._zlevelList;\n        var layer = layers[zlevel];\n        if (!layer) {\n            return;\n        }\n        layer.dom.parentNode.removeChild(layer.dom);\n        delete layers[zlevel];\n        zlevelList.splice(util.indexOf(zlevelList, zlevel), 1);\n    };\n    CanvasPainter.prototype.resize = function (width, height) {\n        if (!this._domRoot.style) {\n            if (width == null || height == null) {\n                return;\n            }\n            this._width = width;\n            this._height = height;\n            this.getLayer(CANVAS_ZLEVEL).resize(width, height);\n        }\n        else {\n            var domRoot = this._domRoot;\n            domRoot.style.display = 'none';\n            var opts = this._opts;\n            width != null && (opts.width = width);\n            height != null && (opts.height = height);\n            width = this._getSize(0);\n            height = this._getSize(1);\n            domRoot.style.display = '';\n            if (this._width !== width || height !== this._height) {\n                domRoot.style.width = width + 'px';\n                domRoot.style.height = height + 'px';\n                for (var id in this._layers) {\n                    if (this._layers.hasOwnProperty(id)) {\n                        this._layers[id].resize(width, height);\n                    }\n                }\n                this.refresh(true);\n            }\n            this._width = width;\n            this._height = height;\n        }\n        return this;\n    };\n    CanvasPainter.prototype.clearLayer = function (zlevel) {\n        var layer = this._layers[zlevel];\n        if (layer) {\n            layer.clear();\n        }\n    };\n    CanvasPainter.prototype.dispose = function () {\n        this.root.innerHTML = '';\n        this.root =\n            this.storage =\n                this._domRoot =\n                    this._layers = null;\n    };\n    CanvasPainter.prototype.getRenderedCanvas = function (opts) {\n        opts = opts || {};\n        if (this._singleCanvas && !this._compositeManually) {\n            return this._layers[CANVAS_ZLEVEL].dom;\n        }\n        var imageLayer = new Layer('image', this, opts.pixelRatio || this.dpr);\n        var ctx = imageLayer.ctx;\n        imageLayer.initContext();\n        imageLayer.clear(false, opts.backgroundColor || this._backgroundColor);\n        if (opts.pixelRatio <= this.dpr) {\n            this.refresh();\n            var width_1 = imageLayer.dom.width;\n            var height_1 = imageLayer.dom.height;\n            var ctx_1 = imageLayer.ctx;\n            this.eachLayer(function (layer) {\n                if (layer.__builtin__) {\n                    ctx_1.drawImage(layer.dom, 0, 0, width_1, height_1);\n                }\n                else if (layer.renderToCanvas) {\n                    imageLayer.ctx.save();\n                    layer.renderToCanvas(imageLayer.ctx);\n                    imageLayer.ctx.restore();\n                }\n            });\n        }\n        else {\n            var scope = {\n                inHover: false,\n                viewWidth: this._width,\n                viewHeight: this._height\n            };\n            var displayList = this.storage.getDisplayList(true);\n            for (var i = 0, len = displayList.length; i < len; i++) {\n                var el = displayList[i];\n                brush(ctx, el, scope, i === len - 1);\n            }\n        }\n        return imageLayer.dom;\n    };\n    CanvasPainter.prototype.getWidth = function () {\n        return this._width;\n    };\n    CanvasPainter.prototype.getHeight = function () {\n        return this._height;\n    };\n    CanvasPainter.prototype._getSize = function (whIdx) {\n        var opts = this._opts;\n        var wh = ['width', 'height'][whIdx];\n        var cwh = ['clientWidth', 'clientHeight'][whIdx];\n        var plt = ['paddingLeft', 'paddingTop'][whIdx];\n        var prb = ['paddingRight', 'paddingBottom'][whIdx];\n        if (opts[wh] != null && opts[wh] !== 'auto') {\n            return parseFloat(opts[wh]);\n        }\n        var root = this.root;\n        var stl = document.defaultView.getComputedStyle(root);\n        return ((root[cwh] || parseInt10(stl[wh]) || parseInt10(root.style[wh]))\n            - (parseInt10(stl[plt]) || 0)\n            - (parseInt10(stl[prb]) || 0)) | 0;\n    };\n    CanvasPainter.prototype.pathToImage = function (path, dpr) {\n        dpr = dpr || this.dpr;\n        var canvas = document.createElement('canvas');\n        var ctx = canvas.getContext('2d');\n        var rect = path.getBoundingRect();\n        var style = path.style;\n        var shadowBlurSize = style.shadowBlur * dpr;\n        var shadowOffsetX = style.shadowOffsetX * dpr;\n        var shadowOffsetY = style.shadowOffsetY * dpr;\n        var lineWidth = path.hasStroke() ? style.lineWidth : 0;\n        var leftMargin = Math.max(lineWidth / 2, -shadowOffsetX + shadowBlurSize);\n        var rightMargin = Math.max(lineWidth / 2, shadowOffsetX + shadowBlurSize);\n        var topMargin = Math.max(lineWidth / 2, -shadowOffsetY + shadowBlurSize);\n        var bottomMargin = Math.max(lineWidth / 2, shadowOffsetY + shadowBlurSize);\n        var width = rect.width + leftMargin + rightMargin;\n        var height = rect.height + topMargin + bottomMargin;\n        canvas.width = width * dpr;\n        canvas.height = height * dpr;\n        ctx.scale(dpr, dpr);\n        ctx.clearRect(0, 0, width, height);\n        ctx.dpr = dpr;\n        var pathTransform = {\n            x: path.x,\n            y: path.y,\n            scaleX: path.scaleX,\n            scaleY: path.scaleY,\n            rotation: path.rotation,\n            originX: path.originX,\n            originY: path.originY\n        };\n        path.x = leftMargin - rect.x;\n        path.y = topMargin - rect.y;\n        path.rotation = 0;\n        path.scaleX = 1;\n        path.scaleY = 1;\n        path.updateTransform();\n        if (path) {\n            brush(ctx, path, {\n                inHover: false,\n                viewWidth: this._width,\n                viewHeight: this._height\n            }, true);\n        }\n        var imgShape = new ZRImage({\n            style: {\n                x: 0,\n                y: 0,\n                image: canvas\n            }\n        });\n        util.extend(path, pathTransform);\n        return imgShape;\n    };\n    return CanvasPainter;\n}());\nexport default CanvasPainter;\n;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport CanvasPainter from 'zrender/lib/canvas/Painter';\nexport function install(registers) {\n  registers.registerPainter('canvas', CanvasPainter);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListFromArray from '../helper/createListFromArray';\nimport SeriesModel from '../../model/Series';\n\nvar LineSeriesModel = function (_super) {\n  __extends(LineSeriesModel, _super);\n\n  function LineSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = LineSeriesModel.type;\n    _this.hasSymbolVisual = true;\n    _this.legendSymbol = 'line';\n    return _this;\n  }\n\n  LineSeriesModel.prototype.getInitialData = function (option) {\n    if (process.env.NODE_ENV !== 'production') {\n      var coordSys = option.coordinateSystem;\n\n      if (coordSys !== 'polar' && coordSys !== 'cartesian2d') {\n        throw new Error('Line not support coordinateSystem besides cartesian and polar');\n      }\n    }\n\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: true\n    });\n  };\n\n  LineSeriesModel.type = 'series.line';\n  LineSeriesModel.dependencies = ['grid', 'polar'];\n  LineSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 3,\n    coordinateSystem: 'cartesian2d',\n    legendHoverLink: true,\n    clip: true,\n    label: {\n      position: 'top'\n    },\n    endLabel: {\n      show: false,\n      valueAnimation: true,\n      distance: 8\n    },\n    lineStyle: {\n      width: 2,\n      type: 'solid'\n    },\n    emphasis: {\n      scale: true,\n      lineStyle: {\n        width: 'bolder'\n      }\n    },\n    step: false,\n    smooth: false,\n    smoothMonotone: null,\n    symbol: 'emptyCircle',\n    symbolSize: 4,\n    symbolRotate: null,\n    showSymbol: true,\n    showAllSymbol: 'auto',\n    connectNulls: false,\n    sampling: 'none',\n    animationEasing: 'linear',\n    progressive: 0,\n    hoverLayerThreshold: Infinity\n  };\n  return LineSeriesModel;\n}(SeriesModel);\n\nexport default LineSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { retrieveRawValue } from '../../data/helper/dataProvider';\nimport { isArray } from 'zrender/lib/core/util';\nexport function getDefaultLabel(data, dataIndex) {\n  var labelDims = data.mapDimensionsAll('defaultedLabel');\n  var len = labelDims.length;\n\n  if (len === 1) {\n    var rawVal = retrieveRawValue(data, dataIndex, labelDims[0]);\n    return rawVal != null ? rawVal + '' : null;\n  } else if (len) {\n    var vals = [];\n\n    for (var i = 0; i < labelDims.length; i++) {\n      vals.push(retrieveRawValue(data, dataIndex, labelDims[i]));\n    }\n\n    return vals.join(' ');\n  }\n}\nexport function getDefaultInterpolatedLabel(data, interpolatedValue) {\n  var labelDims = data.mapDimensionsAll('defaultedLabel');\n\n  if (!isArray(interpolatedValue)) {\n    return interpolatedValue + '';\n  }\n\n  var vals = [];\n\n  for (var i = 0; i < labelDims.length; i++) {\n    var dimInfo = data.getDimensionInfo(labelDims[i]);\n\n    if (dimInfo) {\n      vals.push(interpolatedValue[dimInfo.index]);\n    }\n  }\n\n  return vals.join(' ');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { createSymbol } from '../../util/symbol';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { enterEmphasis, leaveEmphasis, enableHoverEmphasis } from '../../util/states';\nimport { parsePercent } from '../../util/number';\nimport { getDefaultLabel } from './labelHelper';\nimport { extend } from 'zrender/lib/core/util';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport ZRImage from 'zrender/lib/graphic/Image';\n\nvar Symbol = function (_super) {\n  __extends(Symbol, _super);\n\n  function Symbol(data, idx, seriesScope, opts) {\n    var _this = _super.call(this) || this;\n\n    _this.updateData(data, idx, seriesScope, opts);\n\n    return _this;\n  }\n\n  Symbol.prototype._createSymbol = function (symbolType, data, idx, symbolSize, keepAspect) {\n    this.removeAll();\n    var symbolPath = createSymbol(symbolType, -1, -1, 2, 2, null, keepAspect);\n    symbolPath.attr({\n      z2: 100,\n      culling: true,\n      scaleX: symbolSize[0] / 2,\n      scaleY: symbolSize[1] / 2\n    });\n    symbolPath.drift = driftSymbol;\n    this._symbolType = symbolType;\n    this.add(symbolPath);\n  };\n\n  Symbol.prototype.stopSymbolAnimation = function (toLastFrame) {\n    this.childAt(0).stopAnimation(null, toLastFrame);\n  };\n\n  Symbol.prototype.getSymbolPath = function () {\n    return this.childAt(0);\n  };\n\n  Symbol.prototype.highlight = function () {\n    enterEmphasis(this.childAt(0));\n  };\n\n  Symbol.prototype.downplay = function () {\n    leaveEmphasis(this.childAt(0));\n  };\n\n  Symbol.prototype.setZ = function (zlevel, z) {\n    var symbolPath = this.childAt(0);\n    symbolPath.zlevel = zlevel;\n    symbolPath.z = z;\n  };\n\n  Symbol.prototype.setDraggable = function (draggable) {\n    var symbolPath = this.childAt(0);\n    symbolPath.draggable = draggable;\n    symbolPath.cursor = draggable ? 'move' : symbolPath.cursor;\n  };\n\n  Symbol.prototype.updateData = function (data, idx, seriesScope, opts) {\n    this.silent = false;\n    var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\n    var seriesModel = data.hostModel;\n    var symbolSize = Symbol.getSymbolSize(data, idx);\n    var isInit = symbolType !== this._symbolType;\n    var disableAnimation = opts && opts.disableAnimation;\n\n    if (isInit) {\n      var keepAspect = data.getItemVisual(idx, 'symbolKeepAspect');\n\n      this._createSymbol(symbolType, data, idx, symbolSize, keepAspect);\n    } else {\n      var symbolPath = this.childAt(0);\n      symbolPath.silent = false;\n      var target = {\n        scaleX: symbolSize[0] / 2,\n        scaleY: symbolSize[1] / 2\n      };\n      disableAnimation ? symbolPath.attr(target) : graphic.updateProps(symbolPath, target, seriesModel, idx);\n    }\n\n    this._updateCommon(data, idx, symbolSize, seriesScope, opts);\n\n    if (isInit) {\n      var symbolPath = this.childAt(0);\n\n      if (!disableAnimation) {\n        var target = {\n          scaleX: this._sizeX,\n          scaleY: this._sizeY,\n          style: {\n            opacity: symbolPath.style.opacity\n          }\n        };\n        symbolPath.scaleX = symbolPath.scaleY = 0;\n        symbolPath.style.opacity = 0;\n        graphic.initProps(symbolPath, target, seriesModel, idx);\n      }\n    }\n\n    if (disableAnimation) {\n      this.childAt(0).stopAnimation('remove');\n    }\n\n    this._seriesModel = seriesModel;\n  };\n\n  Symbol.prototype._updateCommon = function (data, idx, symbolSize, seriesScope, opts) {\n    var symbolPath = this.childAt(0);\n    var seriesModel = data.hostModel;\n    var emphasisItemStyle;\n    var blurItemStyle;\n    var selectItemStyle;\n    var focus;\n    var blurScope;\n    var symbolOffset;\n    var labelStatesModels;\n    var hoverScale;\n    var cursorStyle;\n\n    if (seriesScope) {\n      emphasisItemStyle = seriesScope.emphasisItemStyle;\n      blurItemStyle = seriesScope.blurItemStyle;\n      selectItemStyle = seriesScope.selectItemStyle;\n      focus = seriesScope.focus;\n      blurScope = seriesScope.blurScope;\n      symbolOffset = seriesScope.symbolOffset;\n      labelStatesModels = seriesScope.labelStatesModels;\n      hoverScale = seriesScope.hoverScale;\n      cursorStyle = seriesScope.cursorStyle;\n    }\n\n    if (!seriesScope || data.hasItemOption) {\n      var itemModel = seriesScope && seriesScope.itemModel ? seriesScope.itemModel : data.getItemModel(idx);\n      var emphasisModel = itemModel.getModel('emphasis');\n      emphasisItemStyle = emphasisModel.getModel('itemStyle').getItemStyle();\n      selectItemStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\n      blurItemStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\n      focus = emphasisModel.get('focus');\n      blurScope = emphasisModel.get('blurScope');\n      symbolOffset = itemModel.getShallow('symbolOffset');\n      labelStatesModels = getLabelStatesModels(itemModel);\n      hoverScale = emphasisModel.getShallow('scale');\n      cursorStyle = itemModel.getShallow('cursor');\n    }\n\n    var symbolRotate = data.getItemVisual(idx, 'symbolRotate');\n    symbolPath.attr('rotation', (symbolRotate || 0) * Math.PI / 180 || 0);\n\n    if (symbolOffset) {\n      symbolPath.x = parsePercent(symbolOffset[0], symbolSize[0]);\n      symbolPath.y = parsePercent(symbolOffset[1], symbolSize[1]);\n    }\n\n    cursorStyle && symbolPath.attr('cursor', cursorStyle);\n    var symbolStyle = data.getItemVisual(idx, 'style');\n    var visualColor = symbolStyle.fill;\n\n    if (symbolPath instanceof ZRImage) {\n      var pathStyle = symbolPath.style;\n      symbolPath.useStyle(extend({\n        image: pathStyle.image,\n        x: pathStyle.x,\n        y: pathStyle.y,\n        width: pathStyle.width,\n        height: pathStyle.height\n      }, symbolStyle));\n    } else {\n      if (symbolPath.__isEmptyBrush) {\n        symbolPath.useStyle(extend({}, symbolStyle));\n      } else {\n        symbolPath.useStyle(symbolStyle);\n      }\n\n      symbolPath.style.decal = null;\n      symbolPath.setColor(visualColor, opts && opts.symbolInnerColor);\n      symbolPath.style.strokeNoScale = true;\n    }\n\n    var liftZ = data.getItemVisual(idx, 'liftZ');\n    var z2Origin = this._z2;\n\n    if (liftZ != null) {\n      if (z2Origin == null) {\n        this._z2 = symbolPath.z2;\n        symbolPath.z2 += liftZ;\n      }\n    } else if (z2Origin != null) {\n      symbolPath.z2 = z2Origin;\n      this._z2 = null;\n    }\n\n    var useNameLabel = opts && opts.useNameLabel;\n    setLabelStyle(symbolPath, labelStatesModels, {\n      labelFetcher: seriesModel,\n      labelDataIndex: idx,\n      defaultText: getLabelDefaultText,\n      inheritColor: visualColor,\n      defaultOpacity: symbolStyle.opacity\n    });\n\n    function getLabelDefaultText(idx) {\n      return useNameLabel ? data.getName(idx) : getDefaultLabel(data, idx);\n    }\n\n    this._sizeX = symbolSize[0] / 2;\n    this._sizeY = symbolSize[1] / 2;\n    var emphasisState = symbolPath.ensureState('emphasis');\n    emphasisState.style = emphasisItemStyle;\n    symbolPath.ensureState('select').style = selectItemStyle;\n    symbolPath.ensureState('blur').style = blurItemStyle;\n\n    if (hoverScale) {\n      var scaleRatio = Math.max(1.1, 3 / this._sizeY);\n      emphasisState.scaleX = this._sizeX * scaleRatio;\n      emphasisState.scaleY = this._sizeY * scaleRatio;\n    }\n\n    this.setSymbolScale(1);\n    enableHoverEmphasis(this, focus, blurScope);\n  };\n\n  Symbol.prototype.setSymbolScale = function (scale) {\n    this.scaleX = this.scaleY = scale;\n  };\n\n  Symbol.prototype.fadeOut = function (cb, opt) {\n    var symbolPath = this.childAt(0);\n    var seriesModel = this._seriesModel;\n    var dataIndex = getECData(this).dataIndex;\n    var animationOpt = opt && opt.animation;\n    this.silent = symbolPath.silent = true;\n\n    if (opt && opt.fadeLabel) {\n      var textContent = symbolPath.getTextContent();\n\n      if (textContent) {\n        graphic.removeElement(textContent, {\n          style: {\n            opacity: 0\n          }\n        }, seriesModel, {\n          dataIndex: dataIndex,\n          removeOpt: animationOpt,\n          cb: function () {\n            symbolPath.removeTextContent();\n          }\n        });\n      }\n    } else {\n      symbolPath.removeTextContent();\n    }\n\n    graphic.removeElement(symbolPath, {\n      style: {\n        opacity: 0\n      },\n      scaleX: 0,\n      scaleY: 0\n    }, seriesModel, {\n      dataIndex: dataIndex,\n      cb: cb,\n      removeOpt: animationOpt\n    });\n  };\n\n  Symbol.getSymbolSize = function (data, idx) {\n    var symbolSize = data.getItemVisual(idx, 'symbolSize');\n    return symbolSize instanceof Array ? symbolSize.slice() : [+symbolSize, +symbolSize];\n  };\n\n  return Symbol;\n}(graphic.Group);\n\nfunction driftSymbol(dx, dy) {\n  this.parent.drift(dx, dy);\n}\n\nexport default Symbol;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as graphic from '../../util/graphic';\nimport SymbolClz from './Symbol';\nimport { isObject } from 'zrender/lib/core/util';\nimport { getLabelStatesModels } from '../../label/labelStyle';\n\nfunction symbolNeedsDraw(data, point, idx, opt) {\n  return point && !isNaN(point[0]) && !isNaN(point[1]) && !(opt.isIgnore && opt.isIgnore(idx)) && !(opt.clipShape && !opt.clipShape.contain(point[0], point[1])) && data.getItemVisual(idx, 'symbol') !== 'none';\n}\n\nfunction normalizeUpdateOpt(opt) {\n  if (opt != null && !isObject(opt)) {\n    opt = {\n      isIgnore: opt\n    };\n  }\n\n  return opt || {};\n}\n\nfunction makeSeriesScope(data) {\n  var seriesModel = data.hostModel;\n  var emphasisModel = seriesModel.getModel('emphasis');\n  return {\n    emphasisItemStyle: emphasisModel.getModel('itemStyle').getItemStyle(),\n    blurItemStyle: seriesModel.getModel(['blur', 'itemStyle']).getItemStyle(),\n    selectItemStyle: seriesModel.getModel(['select', 'itemStyle']).getItemStyle(),\n    focus: emphasisModel.get('focus'),\n    blurScope: emphasisModel.get('blurScope'),\n    symbolRotate: seriesModel.get('symbolRotate'),\n    symbolOffset: seriesModel.get('symbolOffset'),\n    hoverScale: emphasisModel.get('scale'),\n    labelStatesModels: getLabelStatesModels(seriesModel),\n    cursorStyle: seriesModel.get('cursor')\n  };\n}\n\nvar SymbolDraw = function () {\n  function SymbolDraw(SymbolCtor) {\n    this.group = new graphic.Group();\n    this._SymbolCtor = SymbolCtor || SymbolClz;\n  }\n\n  SymbolDraw.prototype.updateData = function (data, opt) {\n    opt = normalizeUpdateOpt(opt);\n    var group = this.group;\n    var seriesModel = data.hostModel;\n    var oldData = this._data;\n    var SymbolCtor = this._SymbolCtor;\n    var disableAnimation = opt.disableAnimation;\n    var seriesScope = makeSeriesScope(data);\n    var symbolUpdateOpt = {\n      disableAnimation: disableAnimation\n    };\n\n    var getSymbolPoint = opt.getSymbolPoint || function (idx) {\n      return data.getItemLayout(idx);\n    };\n\n    if (!oldData) {\n      group.removeAll();\n    }\n\n    data.diff(oldData).add(function (newIdx) {\n      var point = getSymbolPoint(newIdx);\n\n      if (symbolNeedsDraw(data, point, newIdx, opt)) {\n        var symbolEl = new SymbolCtor(data, newIdx, seriesScope, symbolUpdateOpt);\n        symbolEl.setPosition(point);\n        data.setItemGraphicEl(newIdx, symbolEl);\n        group.add(symbolEl);\n      }\n    }).update(function (newIdx, oldIdx) {\n      var symbolEl = oldData.getItemGraphicEl(oldIdx);\n      var point = getSymbolPoint(newIdx);\n\n      if (!symbolNeedsDraw(data, point, newIdx, opt)) {\n        group.remove(symbolEl);\n        return;\n      }\n\n      if (!symbolEl) {\n        symbolEl = new SymbolCtor(data, newIdx);\n        symbolEl.setPosition(point);\n      } else {\n        symbolEl.updateData(data, newIdx, seriesScope, symbolUpdateOpt);\n        var target = {\n          x: point[0],\n          y: point[1]\n        };\n        disableAnimation ? symbolEl.attr(target) : graphic.updateProps(symbolEl, target, seriesModel);\n      }\n\n      group.add(symbolEl);\n      data.setItemGraphicEl(newIdx, symbolEl);\n    }).remove(function (oldIdx) {\n      var el = oldData.getItemGraphicEl(oldIdx);\n      el && el.fadeOut(function () {\n        group.remove(el);\n      });\n    }).execute();\n    this._getSymbolPoint = getSymbolPoint;\n    this._data = data;\n  };\n\n  ;\n\n  SymbolDraw.prototype.isPersistent = function () {\n    return true;\n  };\n\n  ;\n\n  SymbolDraw.prototype.updateLayout = function () {\n    var _this = this;\n\n    var data = this._data;\n\n    if (data) {\n      data.eachItemGraphicEl(function (el, idx) {\n        var point = _this._getSymbolPoint(idx);\n\n        el.setPosition(point);\n        el.markRedraw();\n      });\n    }\n  };\n\n  ;\n\n  SymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\n    this._seriesScope = makeSeriesScope(data);\n    this._data = null;\n    this.group.removeAll();\n  };\n\n  ;\n\n  SymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\n    opt = normalizeUpdateOpt(opt);\n\n    function updateIncrementalAndHover(el) {\n      if (!el.isGroup) {\n        el.incremental = true;\n        el.ensureState('emphasis').hoverLayer = true;\n      }\n    }\n\n    for (var idx = taskParams.start; idx < taskParams.end; idx++) {\n      var point = data.getItemLayout(idx);\n\n      if (symbolNeedsDraw(data, point, idx, opt)) {\n        var el = new this._SymbolCtor(data, idx, this._seriesScope);\n        el.traverse(updateIncrementalAndHover);\n        el.setPosition(point);\n        this.group.add(el);\n        data.setItemGraphicEl(idx, el);\n      }\n    }\n  };\n\n  ;\n\n  SymbolDraw.prototype.remove = function (enableAnimation) {\n    var group = this.group;\n    var data = this._data;\n\n    if (data && enableAnimation) {\n      data.eachItemGraphicEl(function (el) {\n        el.fadeOut(function () {\n          group.remove(el);\n        });\n      });\n    } else {\n      group.removeAll();\n    }\n  };\n\n  ;\n  return SymbolDraw;\n}();\n\nexport default SymbolDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isDimensionStacked } from '../../data/helper/dataStackHelper';\nimport { map } from 'zrender/lib/core/util';\nexport function prepareDataCoordInfo(coordSys, data, valueOrigin) {\n  var baseAxis = coordSys.getBaseAxis();\n  var valueAxis = coordSys.getOtherAxis(baseAxis);\n  var valueStart = getValueStart(valueAxis, valueOrigin);\n  var baseAxisDim = baseAxis.dim;\n  var valueAxisDim = valueAxis.dim;\n  var valueDim = data.mapDimension(valueAxisDim);\n  var baseDim = data.mapDimension(baseAxisDim);\n  var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\n  var dims = map(coordSys.dimensions, function (coordDim) {\n    return data.mapDimension(coordDim);\n  });\n  var stacked = false;\n  var stackResultDim = data.getCalculationInfo('stackResultDimension');\n\n  if (isDimensionStacked(data, dims[0])) {\n    stacked = true;\n    dims[0] = stackResultDim;\n  }\n\n  if (isDimensionStacked(data, dims[1])) {\n    stacked = true;\n    dims[1] = stackResultDim;\n  }\n\n  return {\n    dataDimsForPoint: dims,\n    valueStart: valueStart,\n    valueAxisDim: valueAxisDim,\n    baseAxisDim: baseAxisDim,\n    stacked: !!stacked,\n    valueDim: valueDim,\n    baseDim: baseDim,\n    baseDataOffset: baseDataOffset,\n    stackedOverDimension: data.getCalculationInfo('stackedOverDimension')\n  };\n}\n\nfunction getValueStart(valueAxis, valueOrigin) {\n  var valueStart = 0;\n  var extent = valueAxis.scale.getExtent();\n\n  if (valueOrigin === 'start') {\n    valueStart = extent[0];\n  } else if (valueOrigin === 'end') {\n    valueStart = extent[1];\n  } else {\n    if (extent[0] > 0) {\n      valueStart = extent[0];\n    } else if (extent[1] < 0) {\n      valueStart = extent[1];\n    }\n  }\n\n  return valueStart;\n}\n\nexport function getStackedOnPoint(dataCoordInfo, coordSys, data, idx) {\n  var value = NaN;\n\n  if (dataCoordInfo.stacked) {\n    value = data.get(data.getCalculationInfo('stackedOverDimension'), idx);\n  }\n\n  if (isNaN(value)) {\n    value = dataCoordInfo.valueStart;\n  }\n\n  var baseDataOffset = dataCoordInfo.baseDataOffset;\n  var stackedData = [];\n  stackedData[baseDataOffset] = data.get(dataCoordInfo.baseDim, idx);\n  stackedData[1 - baseDataOffset] = value;\n  return coordSys.dataToPoint(stackedData);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isArray } from 'zrender/lib/core/util';\nvar supportFloat32Array = typeof Float32Array !== 'undefined';\nvar Float32ArrayCtor = !supportFloat32Array ? Array : Float32Array;\nexport function createFloat32Array(arg) {\n  if (isArray(arg)) {\n    return supportFloat32Array ? new Float32Array(arg) : arg;\n  }\n\n  return new Float32ArrayCtor(arg);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { prepareDataCoordInfo, getStackedOnPoint } from './helper';\nimport { createFloat32Array } from '../../util/vendor';\n\nfunction diffData(oldData, newData) {\n  var diffResult = [];\n  newData.diff(oldData).add(function (idx) {\n    diffResult.push({\n      cmd: '+',\n      idx: idx\n    });\n  }).update(function (newIdx, oldIdx) {\n    diffResult.push({\n      cmd: '=',\n      idx: oldIdx,\n      idx1: newIdx\n    });\n  }).remove(function (idx) {\n    diffResult.push({\n      cmd: '-',\n      idx: idx\n    });\n  }).execute();\n  return diffResult;\n}\n\nexport default function lineAnimationDiff(oldData, newData, oldStackedOnPoints, newStackedOnPoints, oldCoordSys, newCoordSys, oldValueOrigin, newValueOrigin) {\n  var diff = diffData(oldData, newData);\n  var currPoints = [];\n  var nextPoints = [];\n  var currStackedPoints = [];\n  var nextStackedPoints = [];\n  var status = [];\n  var sortedIndices = [];\n  var rawIndices = [];\n  var newDataOldCoordInfo = prepareDataCoordInfo(oldCoordSys, newData, oldValueOrigin);\n  var oldDataNewCoordInfo = prepareDataCoordInfo(newCoordSys, oldData, newValueOrigin);\n  var oldPoints = oldData.getLayout('points') || [];\n  var newPoints = newData.getLayout('points') || [];\n\n  for (var i = 0; i < diff.length; i++) {\n    var diffItem = diff[i];\n    var pointAdded = true;\n    var oldIdx2 = void 0;\n    var newIdx2 = void 0;\n\n    switch (diffItem.cmd) {\n      case '=':\n        oldIdx2 = diffItem.idx * 2;\n        newIdx2 = diffItem.idx1 * 2;\n        var currentX = oldPoints[oldIdx2];\n        var currentY = oldPoints[oldIdx2 + 1];\n        var nextX = newPoints[newIdx2];\n        var nextY = newPoints[newIdx2 + 1];\n\n        if (isNaN(currentX) || isNaN(currentY)) {\n          currentX = nextX;\n          currentY = nextY;\n        }\n\n        currPoints.push(currentX, currentY);\n        nextPoints.push(nextX, nextY);\n        currStackedPoints.push(oldStackedOnPoints[oldIdx2], oldStackedOnPoints[oldIdx2 + 1]);\n        nextStackedPoints.push(newStackedOnPoints[newIdx2], newStackedOnPoints[newIdx2 + 1]);\n        rawIndices.push(newData.getRawIndex(diffItem.idx1));\n        break;\n\n      case '+':\n        var newIdx = diffItem.idx;\n        var newDataDimsForPoint = newDataOldCoordInfo.dataDimsForPoint;\n        var oldPt = oldCoordSys.dataToPoint([newData.get(newDataDimsForPoint[0], newIdx), newData.get(newDataDimsForPoint[1], newIdx)]);\n        newIdx2 = newIdx * 2;\n        currPoints.push(oldPt[0], oldPt[1]);\n        nextPoints.push(newPoints[newIdx2], newPoints[newIdx2 + 1]);\n        var stackedOnPoint = getStackedOnPoint(newDataOldCoordInfo, oldCoordSys, newData, newIdx);\n        currStackedPoints.push(stackedOnPoint[0], stackedOnPoint[1]);\n        nextStackedPoints.push(newStackedOnPoints[newIdx2], newStackedOnPoints[newIdx2 + 1]);\n        rawIndices.push(newData.getRawIndex(newIdx));\n        break;\n\n      case '-':\n        var oldIdx = diffItem.idx;\n        var rawIndex = oldData.getRawIndex(oldIdx);\n        var oldDataDimsForPoint = oldDataNewCoordInfo.dataDimsForPoint;\n        oldIdx2 = oldIdx * 2;\n\n        if (rawIndex !== oldIdx) {\n          var newPt = newCoordSys.dataToPoint([oldData.get(oldDataDimsForPoint[0], oldIdx), oldData.get(oldDataDimsForPoint[1], oldIdx)]);\n          var newStackedOnPt = getStackedOnPoint(oldDataNewCoordInfo, newCoordSys, oldData, oldIdx);\n          currPoints.push(oldPoints[oldIdx2], oldPoints[oldIdx2 + 1]);\n          nextPoints.push(newPt[0], newPt[1]);\n          currStackedPoints.push(oldStackedOnPoints[oldIdx2], oldStackedOnPoints[oldIdx2 + 1]);\n          nextStackedPoints.push(newStackedOnPt[0], newStackedOnPt[1]);\n          rawIndices.push(rawIndex);\n        } else {\n          pointAdded = false;\n        }\n\n    }\n\n    if (pointAdded) {\n      status.push(diffItem);\n      sortedIndices.push(sortedIndices.length);\n    }\n  }\n\n  sortedIndices.sort(function (a, b) {\n    return rawIndices[a] - rawIndices[b];\n  });\n  var len = currPoints.length;\n  var sortedCurrPoints = createFloat32Array(len);\n  var sortedNextPoints = createFloat32Array(len);\n  var sortedCurrStackedPoints = createFloat32Array(len);\n  var sortedNextStackedPoints = createFloat32Array(len);\n  var sortedStatus = [];\n\n  for (var i = 0; i < sortedIndices.length; i++) {\n    var idx = sortedIndices[i];\n    var i2 = i * 2;\n    var idx2 = idx * 2;\n    sortedCurrPoints[i2] = currPoints[idx2];\n    sortedCurrPoints[i2 + 1] = currPoints[idx2 + 1];\n    sortedNextPoints[i2] = nextPoints[idx2];\n    sortedNextPoints[i2 + 1] = nextPoints[idx2 + 1];\n    sortedCurrStackedPoints[i2] = currStackedPoints[idx2];\n    sortedCurrStackedPoints[i2 + 1] = currStackedPoints[idx2 + 1];\n    sortedNextStackedPoints[i2] = nextStackedPoints[idx2];\n    sortedNextStackedPoints[i2 + 1] = nextStackedPoints[idx2 + 1];\n    sortedStatus[i] = status[idx];\n  }\n\n  return {\n    current: sortedCurrPoints,\n    next: sortedNextPoints,\n    stackedOnCurrent: sortedCurrStackedPoints,\n    stackedOnNext: sortedNextStackedPoints,\n    status: sortedStatus\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Path from 'zrender/lib/graphic/Path';\nimport PathProxy from 'zrender/lib/core/PathProxy';\nimport { cubicRootAt, cubicAt } from 'zrender/lib/core/curve';\nvar mathMin = Math.min;\nvar mathMax = Math.max;\n\nfunction isPointNull(x, y) {\n  return isNaN(x) || isNaN(y);\n}\n\nfunction drawSegment(ctx, points, start, segLen, allLen, dir, smooth, smoothMonotone, connectNulls) {\n  var prevX;\n  var prevY;\n  var cpx0;\n  var cpy0;\n  var cpx1;\n  var cpy1;\n  var idx = start;\n  var k = 0;\n\n  for (; k < segLen; k++) {\n    var x = points[idx * 2];\n    var y = points[idx * 2 + 1];\n\n    if (idx >= allLen || idx < 0) {\n      break;\n    }\n\n    if (isPointNull(x, y)) {\n      if (connectNulls) {\n        idx += dir;\n        continue;\n      }\n\n      break;\n    }\n\n    if (idx === start) {\n      ctx[dir > 0 ? 'moveTo' : 'lineTo'](x, y);\n      cpx0 = x;\n      cpy0 = y;\n    } else {\n      var dx = x - prevX;\n      var dy = y - prevY;\n\n      if (dx * dx + dy * dy < 0.5) {\n        idx += dir;\n        continue;\n      }\n\n      if (smooth > 0) {\n        var nextIdx = idx + dir;\n        var nextX = points[nextIdx * 2];\n        var nextY = points[nextIdx * 2 + 1];\n        var tmpK = k + 1;\n\n        if (connectNulls) {\n          while (isPointNull(nextX, nextY) && tmpK < segLen) {\n            tmpK++;\n            nextIdx += dir;\n            nextX = points[nextIdx * 2];\n            nextY = points[nextIdx * 2 + 1];\n          }\n        }\n\n        var ratioNextSeg = 0.5;\n        var vx = 0;\n        var vy = 0;\n        var nextCpx0 = void 0;\n        var nextCpy0 = void 0;\n\n        if (tmpK >= segLen || isPointNull(nextX, nextY)) {\n          cpx1 = x;\n          cpy1 = y;\n        } else {\n          vx = nextX - prevX;\n          vy = nextY - prevY;\n          var dx0 = x - prevX;\n          var dx1 = nextX - x;\n          var dy0 = y - prevY;\n          var dy1 = nextY - y;\n          var lenPrevSeg = void 0;\n          var lenNextSeg = void 0;\n\n          if (smoothMonotone === 'x') {\n            lenPrevSeg = Math.abs(dx0);\n            lenNextSeg = Math.abs(dx1);\n            cpx1 = x - lenPrevSeg * smooth;\n            cpy1 = y;\n            nextCpx0 = x + lenPrevSeg * smooth;\n            nextCpy0 = y;\n          } else if (smoothMonotone === 'y') {\n            lenPrevSeg = Math.abs(dy0);\n            lenNextSeg = Math.abs(dy1);\n            cpx1 = x;\n            cpy1 = y - lenPrevSeg * smooth;\n            nextCpx0 = x;\n            nextCpy0 = y + lenPrevSeg * smooth;\n          } else {\n            lenPrevSeg = Math.sqrt(dx0 * dx0 + dy0 * dy0);\n            lenNextSeg = Math.sqrt(dx1 * dx1 + dy1 * dy1);\n            ratioNextSeg = lenNextSeg / (lenNextSeg + lenPrevSeg);\n            cpx1 = x - vx * smooth * (1 - ratioNextSeg);\n            cpy1 = y - vy * smooth * (1 - ratioNextSeg);\n            nextCpx0 = x + vx * smooth * ratioNextSeg;\n            nextCpy0 = y + vy * smooth * ratioNextSeg;\n            nextCpx0 = mathMin(nextCpx0, mathMax(nextX, x));\n            nextCpy0 = mathMin(nextCpy0, mathMax(nextY, y));\n            nextCpx0 = mathMax(nextCpx0, mathMin(nextX, x));\n            nextCpy0 = mathMax(nextCpy0, mathMin(nextY, y));\n            vx = nextCpx0 - x;\n            vy = nextCpy0 - y;\n            cpx1 = x - vx * lenPrevSeg / lenNextSeg;\n            cpy1 = y - vy * lenPrevSeg / lenNextSeg;\n            cpx1 = mathMin(cpx1, mathMax(prevX, x));\n            cpy1 = mathMin(cpy1, mathMax(prevY, y));\n            cpx1 = mathMax(cpx1, mathMin(prevX, x));\n            cpy1 = mathMax(cpy1, mathMin(prevY, y));\n            vx = x - cpx1;\n            vy = y - cpy1;\n            nextCpx0 = x + vx * lenNextSeg / lenPrevSeg;\n            nextCpy0 = y + vy * lenNextSeg / lenPrevSeg;\n          }\n        }\n\n        ctx.bezierCurveTo(cpx0, cpy0, cpx1, cpy1, x, y);\n        cpx0 = nextCpx0;\n        cpy0 = nextCpy0;\n      } else {\n        ctx.lineTo(x, y);\n      }\n    }\n\n    prevX = x;\n    prevY = y;\n    idx += dir;\n  }\n\n  return k;\n}\n\nvar ECPolylineShape = function () {\n  function ECPolylineShape() {\n    this.smooth = 0;\n    this.smoothConstraint = true;\n  }\n\n  return ECPolylineShape;\n}();\n\nvar ECPolyline = function (_super) {\n  __extends(ECPolyline, _super);\n\n  function ECPolyline(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'ec-polyline';\n    return _this;\n  }\n\n  ECPolyline.prototype.getDefaultStyle = function () {\n    return {\n      stroke: '#000',\n      fill: null\n    };\n  };\n\n  ECPolyline.prototype.getDefaultShape = function () {\n    return new ECPolylineShape();\n  };\n\n  ECPolyline.prototype.buildPath = function (ctx, shape) {\n    var points = shape.points;\n    var i = 0;\n    var len = points.length / 2;\n\n    if (shape.connectNulls) {\n      for (; len > 0; len--) {\n        if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n          break;\n        }\n      }\n\n      for (; i < len; i++) {\n        if (!isPointNull(points[i * 2], points[i * 2 + 1])) {\n          break;\n        }\n      }\n    }\n\n    while (i < len) {\n      i += drawSegment(ctx, points, i, len, len, 1, shape.smooth, shape.smoothMonotone, shape.connectNulls) + 1;\n    }\n  };\n\n  ECPolyline.prototype.getPointOn = function (xOrY, dim) {\n    if (!this.path) {\n      this.createPathProxy();\n      this.buildPath(this.path, this.shape);\n    }\n\n    var path = this.path;\n    var data = path.data;\n    var CMD = PathProxy.CMD;\n    var x0;\n    var y0;\n    var isDimX = dim === 'x';\n    var roots = [];\n\n    for (var i = 0; i < data.length;) {\n      var cmd = data[i++];\n      var x = void 0;\n      var y = void 0;\n      var x2 = void 0;\n      var y2 = void 0;\n      var x3 = void 0;\n      var y3 = void 0;\n      var t = void 0;\n\n      switch (cmd) {\n        case CMD.M:\n          x0 = data[i++];\n          y0 = data[i++];\n          break;\n\n        case CMD.L:\n          x = data[i++];\n          y = data[i++];\n          t = isDimX ? (xOrY - x0) / (x - x0) : (xOrY - y0) / (y - y0);\n\n          if (t <= 1 && t >= 0) {\n            var val = isDimX ? (y - y0) * t + y0 : (x - x0) * t + x0;\n            return isDimX ? [xOrY, val] : [val, xOrY];\n          }\n\n          x0 = x;\n          y0 = y;\n          break;\n\n        case CMD.C:\n          x = data[i++];\n          y = data[i++];\n          x2 = data[i++];\n          y2 = data[i++];\n          x3 = data[i++];\n          y3 = data[i++];\n          var nRoot = isDimX ? cubicRootAt(x0, x, x2, x3, xOrY, roots) : cubicRootAt(y0, y, y2, y3, xOrY, roots);\n\n          if (nRoot > 0) {\n            for (var i_1 = 0; i_1 < nRoot; i_1++) {\n              var t_1 = roots[i_1];\n\n              if (t_1 <= 1 && t_1 >= 0) {\n                var val = isDimX ? cubicAt(y0, y, y2, y3, t_1) : cubicAt(x0, x, x2, x3, t_1);\n                return isDimX ? [xOrY, val] : [val, xOrY];\n              }\n            }\n          }\n\n          x0 = x3;\n          y0 = y3;\n          break;\n      }\n    }\n  };\n\n  return ECPolyline;\n}(Path);\n\nexport { ECPolyline };\n\nvar ECPolygonShape = function (_super) {\n  __extends(ECPolygonShape, _super);\n\n  function ECPolygonShape() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  return ECPolygonShape;\n}(ECPolylineShape);\n\nvar ECPolygon = function (_super) {\n  __extends(ECPolygon, _super);\n\n  function ECPolygon(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'ec-polygon';\n    return _this;\n  }\n\n  ECPolygon.prototype.getDefaultShape = function () {\n    return new ECPolygonShape();\n  };\n\n  ECPolygon.prototype.buildPath = function (ctx, shape) {\n    var points = shape.points;\n    var stackedOnPoints = shape.stackedOnPoints;\n    var i = 0;\n    var len = points.length / 2;\n    var smoothMonotone = shape.smoothMonotone;\n\n    if (shape.connectNulls) {\n      for (; len > 0; len--) {\n        if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n          break;\n        }\n      }\n\n      for (; i < len; i++) {\n        if (!isPointNull(points[i * 2], points[i * 2 + 1])) {\n          break;\n        }\n      }\n    }\n\n    while (i < len) {\n      var k = drawSegment(ctx, points, i, len, len, 1, shape.smooth, smoothMonotone, shape.connectNulls);\n      drawSegment(ctx, stackedOnPoints, i + k - 1, k, len, -1, shape.stackedOnSmooth, smoothMonotone, shape.connectNulls);\n      i += k + 1;\n      ctx.closePath();\n    }\n  };\n\n  return ECPolygon;\n}(Path);\n\nexport { ECPolygon };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as graphic from '../../util/graphic';\nimport { round } from '../../util/number';\n\nfunction createGridClipPath(cartesian, hasAnimation, seriesModel, done, during) {\n  var rect = cartesian.getArea();\n  var x = rect.x;\n  var y = rect.y;\n  var width = rect.width;\n  var height = rect.height;\n  var lineWidth = seriesModel.get(['lineStyle', 'width']) || 2;\n  x -= lineWidth / 2;\n  y -= lineWidth / 2;\n  width += lineWidth;\n  height += lineWidth;\n  x = Math.floor(x);\n  width = Math.round(width);\n  var clipPath = new graphic.Rect({\n    shape: {\n      x: x,\n      y: y,\n      width: width,\n      height: height\n    }\n  });\n\n  if (hasAnimation) {\n    var baseAxis = cartesian.getBaseAxis();\n    var isHorizontal = baseAxis.isHorizontal();\n    var isAxisInversed = baseAxis.inverse;\n\n    if (isHorizontal) {\n      if (isAxisInversed) {\n        clipPath.shape.x += width;\n      }\n\n      clipPath.shape.width = 0;\n    } else {\n      if (!isAxisInversed) {\n        clipPath.shape.y += height;\n      }\n\n      clipPath.shape.height = 0;\n    }\n\n    var duringCb = typeof during === 'function' ? function (percent) {\n      during(percent, clipPath);\n    } : null;\n    graphic.initProps(clipPath, {\n      shape: {\n        width: width,\n        height: height,\n        x: x,\n        y: y\n      }\n    }, seriesModel, null, done, duringCb);\n  }\n\n  return clipPath;\n}\n\nfunction createPolarClipPath(polar, hasAnimation, seriesModel) {\n  var sectorArea = polar.getArea();\n  var r0 = round(sectorArea.r0, 1);\n  var r = round(sectorArea.r, 1);\n  var clipPath = new graphic.Sector({\n    shape: {\n      cx: round(polar.cx, 1),\n      cy: round(polar.cy, 1),\n      r0: r0,\n      r: r,\n      startAngle: sectorArea.startAngle,\n      endAngle: sectorArea.endAngle,\n      clockwise: sectorArea.clockwise\n    }\n  });\n\n  if (hasAnimation) {\n    var isRadial = polar.getBaseAxis().dim === 'angle';\n\n    if (isRadial) {\n      clipPath.shape.endAngle = sectorArea.startAngle;\n    } else {\n      clipPath.shape.r = r0;\n    }\n\n    graphic.initProps(clipPath, {\n      shape: {\n        endAngle: sectorArea.endAngle,\n        r: r\n      }\n    }, seriesModel);\n  }\n\n  return clipPath;\n}\n\nfunction createClipPath(coordSys, hasAnimation, seriesModel, done, during) {\n  if (!coordSys) {\n    return null;\n  } else if (coordSys.type === 'polar') {\n    return createPolarClipPath(coordSys, hasAnimation, seriesModel);\n  } else if (coordSys.type === 'cartesian2d') {\n    return createGridClipPath(coordSys, hasAnimation, seriesModel, done, during);\n  }\n\n  return null;\n}\n\nexport { createGridClipPath, createPolarClipPath, createClipPath };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function isCoordinateSystemType(coordSys, type) {\n  return coordSys.type === type;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport SymbolDraw from '../helper/SymbolDraw';\nimport SymbolClz from '../helper/Symbol';\nimport lineAnimationDiff from './lineAnimationDiff';\nimport * as graphic from '../../util/graphic';\nimport * as modelUtil from '../../util/model';\nimport { ECPolyline, ECPolygon } from './poly';\nimport ChartView from '../../view/Chart';\nimport { prepareDataCoordInfo, getStackedOnPoint } from './helper';\nimport { createGridClipPath, createPolarClipPath } from '../helper/createClipPathFromCoordSys';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport { setStatesStylesFromModel, setStatesFlag, enableHoverEmphasis } from '../../util/states';\nimport { setLabelStyle, getLabelStatesModels, labelInner } from '../../label/labelStyle';\nimport { getDefaultLabel, getDefaultInterpolatedLabel } from '../helper/labelHelper';\nimport { getECData } from '../../util/innerStore';\nimport { createFloat32Array } from '../../util/vendor';\n\nfunction isPointsSame(points1, points2) {\n  if (points1.length !== points2.length) {\n    return;\n  }\n\n  for (var i = 0; i < points1.length; i++) {\n    if (points1[i] !== points2[i]) {\n      return;\n    }\n  }\n\n  return true;\n}\n\nfunction bboxFromPoints(points) {\n  var minX = Infinity;\n  var minY = Infinity;\n  var maxX = -Infinity;\n  var maxY = -Infinity;\n\n  for (var i = 0; i < points.length;) {\n    var x = points[i++];\n    var y = points[i++];\n\n    if (!isNaN(x)) {\n      minX = Math.min(x, minX);\n      maxX = Math.max(x, maxX);\n    }\n\n    if (!isNaN(y)) {\n      minY = Math.min(y, minY);\n      maxY = Math.max(y, maxY);\n    }\n  }\n\n  return [[minX, minY], [maxX, maxY]];\n}\n\nfunction getBoundingDiff(points1, points2) {\n  var _a = bboxFromPoints(points1),\n      min1 = _a[0],\n      max1 = _a[1];\n\n  var _b = bboxFromPoints(points2),\n      min2 = _b[0],\n      max2 = _b[1];\n\n  return Math.max(Math.abs(min1[0] - min2[0]), Math.abs(min1[1] - min2[1]), Math.abs(max1[0] - max2[0]), Math.abs(max1[1] - max2[1]));\n}\n\nfunction getSmooth(smooth) {\n  return typeof smooth === 'number' ? smooth : smooth ? 0.5 : 0;\n}\n\nfunction getStackedOnPoints(coordSys, data, dataCoordInfo) {\n  if (!dataCoordInfo.valueDim) {\n    return [];\n  }\n\n  var len = data.count();\n  var points = createFloat32Array(len * 2);\n\n  for (var idx = 0; idx < len; idx++) {\n    var pt = getStackedOnPoint(dataCoordInfo, coordSys, data, idx);\n    points[idx * 2] = pt[0];\n    points[idx * 2 + 1] = pt[1];\n  }\n\n  return points;\n}\n\nfunction turnPointsIntoStep(points, coordSys, stepTurnAt) {\n  var baseAxis = coordSys.getBaseAxis();\n  var baseIndex = baseAxis.dim === 'x' || baseAxis.dim === 'radius' ? 0 : 1;\n  var stepPoints = [];\n  var i = 0;\n  var stepPt = [];\n  var pt = [];\n  var nextPt = [];\n\n  for (; i < points.length - 2; i += 2) {\n    nextPt[0] = points[i + 2];\n    nextPt[1] = points[i + 3];\n    pt[0] = points[i];\n    pt[1] = points[i + 1];\n    stepPoints.push(pt[0], pt[1]);\n\n    switch (stepTurnAt) {\n      case 'end':\n        stepPt[baseIndex] = nextPt[baseIndex];\n        stepPt[1 - baseIndex] = pt[1 - baseIndex];\n        stepPoints.push(stepPt[0], stepPt[1]);\n        break;\n\n      case 'middle':\n        var middle = (pt[baseIndex] + nextPt[baseIndex]) / 2;\n        var stepPt2 = [];\n        stepPt[baseIndex] = stepPt2[baseIndex] = middle;\n        stepPt[1 - baseIndex] = pt[1 - baseIndex];\n        stepPt2[1 - baseIndex] = nextPt[1 - baseIndex];\n        stepPoints.push(stepPt[0], stepPt[1]);\n        stepPoints.push(stepPt2[0], stepPt2[1]);\n        break;\n\n      default:\n        stepPt[baseIndex] = pt[baseIndex];\n        stepPt[1 - baseIndex] = nextPt[1 - baseIndex];\n        stepPoints.push(stepPt[0], stepPt[1]);\n    }\n  }\n\n  stepPoints.push(points[i++], points[i++]);\n  return stepPoints;\n}\n\nfunction getVisualGradient(data, coordSys) {\n  var visualMetaList = data.getVisual('visualMeta');\n\n  if (!visualMetaList || !visualMetaList.length || !data.count()) {\n    return;\n  }\n\n  if (coordSys.type !== 'cartesian2d') {\n    if (process.env.NODE_ENV !== 'production') {\n      console.warn('Visual map on line style is only supported on cartesian2d.');\n    }\n\n    return;\n  }\n\n  var coordDim;\n  var visualMeta;\n\n  for (var i = visualMetaList.length - 1; i >= 0; i--) {\n    var dimIndex = visualMetaList[i].dimension;\n    var dimName = data.dimensions[dimIndex];\n    var dimInfo = data.getDimensionInfo(dimName);\n    coordDim = dimInfo && dimInfo.coordDim;\n\n    if (coordDim === 'x' || coordDim === 'y') {\n      visualMeta = visualMetaList[i];\n      break;\n    }\n  }\n\n  if (!visualMeta) {\n    if (process.env.NODE_ENV !== 'production') {\n      console.warn('Visual map on line style only support x or y dimension.');\n    }\n\n    return;\n  }\n\n  var axis = coordSys.getAxis(coordDim);\n  var colorStops = zrUtil.map(visualMeta.stops, function (stop) {\n    return {\n      offset: 0,\n      coord: axis.toGlobalCoord(axis.dataToCoord(stop.value)),\n      color: stop.color\n    };\n  });\n  var stopLen = colorStops.length;\n  var outerColors = visualMeta.outerColors.slice();\n\n  if (stopLen && colorStops[0].coord > colorStops[stopLen - 1].coord) {\n    colorStops.reverse();\n    outerColors.reverse();\n  }\n\n  var tinyExtent = 10;\n  var minCoord = colorStops[0].coord - tinyExtent;\n  var maxCoord = colorStops[stopLen - 1].coord + tinyExtent;\n  var coordSpan = maxCoord - minCoord;\n\n  if (coordSpan < 1e-3) {\n    return 'transparent';\n  }\n\n  zrUtil.each(colorStops, function (stop) {\n    stop.offset = (stop.coord - minCoord) / coordSpan;\n  });\n  colorStops.push({\n    offset: stopLen ? colorStops[stopLen - 1].offset : 0.5,\n    color: outerColors[1] || 'transparent'\n  });\n  colorStops.unshift({\n    offset: stopLen ? colorStops[0].offset : 0.5,\n    color: outerColors[0] || 'transparent'\n  });\n  var gradient = new graphic.LinearGradient(0, 0, 0, 0, colorStops, true);\n  gradient[coordDim] = minCoord;\n  gradient[coordDim + '2'] = maxCoord;\n  return gradient;\n}\n\nfunction getIsIgnoreFunc(seriesModel, data, coordSys) {\n  var showAllSymbol = seriesModel.get('showAllSymbol');\n  var isAuto = showAllSymbol === 'auto';\n\n  if (showAllSymbol && !isAuto) {\n    return;\n  }\n\n  var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\n\n  if (!categoryAxis) {\n    return;\n  }\n\n  if (isAuto && canShowAllSymbolForCategory(categoryAxis, data)) {\n    return;\n  }\n\n  var categoryDataDim = data.mapDimension(categoryAxis.dim);\n  var labelMap = {};\n  zrUtil.each(categoryAxis.getViewLabels(), function (labelItem) {\n    var ordinalNumber = categoryAxis.scale.getRawOrdinalNumber(labelItem.tickValue);\n    labelMap[ordinalNumber] = 1;\n  });\n  return function (dataIndex) {\n    return !labelMap.hasOwnProperty(data.get(categoryDataDim, dataIndex));\n  };\n}\n\nfunction canShowAllSymbolForCategory(categoryAxis, data) {\n  var axisExtent = categoryAxis.getExtent();\n  var availSize = Math.abs(axisExtent[1] - axisExtent[0]) / categoryAxis.scale.count();\n  isNaN(availSize) && (availSize = 0);\n  var dataLen = data.count();\n  var step = Math.max(1, Math.round(dataLen / 5));\n\n  for (var dataIndex = 0; dataIndex < dataLen; dataIndex += step) {\n    if (SymbolClz.getSymbolSize(data, dataIndex)[categoryAxis.isHorizontal() ? 1 : 0] * 1.5 > availSize) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nfunction isPointNull(x, y) {\n  return isNaN(x) || isNaN(y);\n}\n\nfunction getLastIndexNotNull(points) {\n  var len = points.length / 2;\n\n  for (; len > 0; len--) {\n    if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n      break;\n    }\n  }\n\n  return len - 1;\n}\n\nfunction getPointAtIndex(points, idx) {\n  return [points[idx * 2], points[idx * 2 + 1]];\n}\n\nfunction getIndexRange(points, xOrY, dim) {\n  var len = points.length / 2;\n  var dimIdx = dim === 'x' ? 0 : 1;\n  var a;\n  var b;\n  var prevIndex = 0;\n  var nextIndex = -1;\n\n  for (var i = 0; i < len; i++) {\n    b = points[i * 2 + dimIdx];\n\n    if (isNaN(b) || isNaN(points[i * 2 + 1 - dimIdx])) {\n      continue;\n    }\n\n    if (i === 0) {\n      a = b;\n      continue;\n    }\n\n    if (a <= xOrY && b >= xOrY || a >= xOrY && b <= xOrY) {\n      nextIndex = i;\n      break;\n    }\n\n    prevIndex = i;\n    a = b;\n  }\n\n  return {\n    range: [prevIndex, nextIndex],\n    t: (xOrY - a) / (b - a)\n  };\n}\n\nfunction createLineClipPath(lineView, coordSys, hasAnimation, seriesModel) {\n  if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n    var endLabelModel_1 = seriesModel.getModel('endLabel');\n    var showEndLabel = endLabelModel_1.get('show');\n    var valueAnimation_1 = endLabelModel_1.get('valueAnimation');\n    var data_1 = seriesModel.getData();\n    var labelAnimationRecord_1 = {\n      lastFrameIndex: 0\n    };\n    var during = showEndLabel ? function (percent, clipRect) {\n      lineView._endLabelOnDuring(percent, clipRect, data_1, labelAnimationRecord_1, valueAnimation_1, endLabelModel_1, coordSys);\n    } : null;\n    var isHorizontal = coordSys.getBaseAxis().isHorizontal();\n    var clipPath = createGridClipPath(coordSys, hasAnimation, seriesModel, function () {\n      var endLabel = lineView._endLabel;\n\n      if (endLabel && hasAnimation) {\n        if (labelAnimationRecord_1.originalX != null) {\n          endLabel.attr({\n            x: labelAnimationRecord_1.originalX,\n            y: labelAnimationRecord_1.originalY\n          });\n        }\n      }\n    }, during);\n\n    if (!seriesModel.get('clip', true)) {\n      var rectShape = clipPath.shape;\n      var expandSize = Math.max(rectShape.width, rectShape.height);\n\n      if (isHorizontal) {\n        rectShape.y -= expandSize;\n        rectShape.height += expandSize * 2;\n      } else {\n        rectShape.x -= expandSize;\n        rectShape.width += expandSize * 2;\n      }\n    }\n\n    if (during) {\n      during(1, clipPath);\n    }\n\n    return clipPath;\n  } else {\n    if (process.env.NODE_ENV !== 'production') {\n      if (seriesModel.get(['endLabel', 'show'])) {\n        console.warn('endLabel is not supported for lines in polar systems.');\n      }\n    }\n\n    return createPolarClipPath(coordSys, hasAnimation, seriesModel);\n  }\n}\n\nfunction getEndLabelStateSpecified(endLabelModel, coordSys) {\n  var baseAxis = coordSys.getBaseAxis();\n  var isHorizontal = baseAxis.isHorizontal();\n  var isBaseInversed = baseAxis.inverse;\n  var align = isHorizontal ? isBaseInversed ? 'right' : 'left' : 'center';\n  var verticalAlign = isHorizontal ? 'middle' : isBaseInversed ? 'top' : 'bottom';\n  return {\n    normal: {\n      align: endLabelModel.get('align') || align,\n      verticalAlign: endLabelModel.get('verticalAlign') || verticalAlign\n    }\n  };\n}\n\nvar LineView = function (_super) {\n  __extends(LineView, _super);\n\n  function LineView() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  LineView.prototype.init = function () {\n    var lineGroup = new graphic.Group();\n    var symbolDraw = new SymbolDraw();\n    this.group.add(symbolDraw.group);\n    this._symbolDraw = symbolDraw;\n    this._lineGroup = lineGroup;\n  };\n\n  LineView.prototype.render = function (seriesModel, ecModel, api) {\n    var _this = this;\n\n    var coordSys = seriesModel.coordinateSystem;\n    var group = this.group;\n    var data = seriesModel.getData();\n    var lineStyleModel = seriesModel.getModel('lineStyle');\n    var areaStyleModel = seriesModel.getModel('areaStyle');\n    var points = data.getLayout('points') || [];\n    var isCoordSysPolar = coordSys.type === 'polar';\n    var prevCoordSys = this._coordSys;\n    var symbolDraw = this._symbolDraw;\n    var polyline = this._polyline;\n    var polygon = this._polygon;\n    var lineGroup = this._lineGroup;\n    var hasAnimation = seriesModel.get('animation');\n    var isAreaChart = !areaStyleModel.isEmpty();\n    var valueOrigin = areaStyleModel.get('origin');\n    var dataCoordInfo = prepareDataCoordInfo(coordSys, data, valueOrigin);\n    var stackedOnPoints = isAreaChart && getStackedOnPoints(coordSys, data, dataCoordInfo);\n    var showSymbol = seriesModel.get('showSymbol');\n    var isIgnoreFunc = showSymbol && !isCoordSysPolar && getIsIgnoreFunc(seriesModel, data, coordSys);\n    var oldData = this._data;\n    oldData && oldData.eachItemGraphicEl(function (el, idx) {\n      if (el.__temp) {\n        group.remove(el);\n        oldData.setItemGraphicEl(idx, null);\n      }\n    });\n\n    if (!showSymbol) {\n      symbolDraw.remove();\n    }\n\n    group.add(lineGroup);\n    var step = !isCoordSysPolar ? seriesModel.get('step') : false;\n    var clipShapeForSymbol;\n\n    if (coordSys && coordSys.getArea && seriesModel.get('clip', true)) {\n      clipShapeForSymbol = coordSys.getArea();\n\n      if (clipShapeForSymbol.width != null) {\n        clipShapeForSymbol.x -= 0.1;\n        clipShapeForSymbol.y -= 0.1;\n        clipShapeForSymbol.width += 0.2;\n        clipShapeForSymbol.height += 0.2;\n      } else if (clipShapeForSymbol.r0) {\n        clipShapeForSymbol.r0 -= 0.5;\n        clipShapeForSymbol.r += 0.5;\n      }\n    }\n\n    this._clipShapeForSymbol = clipShapeForSymbol;\n\n    if (!(polyline && prevCoordSys.type === coordSys.type && step === this._step)) {\n      showSymbol && symbolDraw.updateData(data, {\n        isIgnore: isIgnoreFunc,\n        clipShape: clipShapeForSymbol,\n        disableAnimation: true,\n        getSymbolPoint: function (idx) {\n          return [points[idx * 2], points[idx * 2 + 1]];\n        }\n      });\n      hasAnimation && this._initSymbolLabelAnimation(data, coordSys, clipShapeForSymbol);\n\n      if (step) {\n        points = turnPointsIntoStep(points, coordSys, step);\n\n        if (stackedOnPoints) {\n          stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\n        }\n      }\n\n      polyline = this._newPolyline(points);\n\n      if (isAreaChart) {\n        polygon = this._newPolygon(points, stackedOnPoints);\n      }\n\n      if (!isCoordSysPolar) {\n        this._initOrUpdateEndLabel(seriesModel, coordSys);\n      }\n\n      lineGroup.setClipPath(createLineClipPath(this, coordSys, true, seriesModel));\n    } else {\n      if (isAreaChart && !polygon) {\n        polygon = this._newPolygon(points, stackedOnPoints);\n      } else if (polygon && !isAreaChart) {\n        lineGroup.remove(polygon);\n        polygon = this._polygon = null;\n      }\n\n      if (!isCoordSysPolar) {\n        this._initOrUpdateEndLabel(seriesModel, coordSys);\n      }\n\n      lineGroup.setClipPath(createLineClipPath(this, coordSys, false, seriesModel));\n      showSymbol && symbolDraw.updateData(data, {\n        isIgnore: isIgnoreFunc,\n        clipShape: clipShapeForSymbol,\n        disableAnimation: true,\n        getSymbolPoint: function (idx) {\n          return [points[idx * 2], points[idx * 2 + 1]];\n        }\n      });\n\n      if (!isPointsSame(this._stackedOnPoints, stackedOnPoints) || !isPointsSame(this._points, points)) {\n        if (hasAnimation) {\n          this._doUpdateAnimation(data, stackedOnPoints, coordSys, api, step, valueOrigin);\n        } else {\n          if (step) {\n            points = turnPointsIntoStep(points, coordSys, step);\n\n            if (stackedOnPoints) {\n              stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\n            }\n          }\n\n          polyline.setShape({\n            points: points\n          });\n          polygon && polygon.setShape({\n            points: points,\n            stackedOnPoints: stackedOnPoints\n          });\n        }\n      }\n    }\n\n    var visualColor = getVisualGradient(data, coordSys) || data.getVisual('style')[data.getVisual('drawType')];\n    var focus = seriesModel.get(['emphasis', 'focus']);\n    var blurScope = seriesModel.get(['emphasis', 'blurScope']);\n    polyline.useStyle(zrUtil.defaults(lineStyleModel.getLineStyle(), {\n      fill: 'none',\n      stroke: visualColor,\n      lineJoin: 'bevel'\n    }));\n    setStatesStylesFromModel(polyline, seriesModel, 'lineStyle');\n\n    if (polyline.style.lineWidth > 0 && seriesModel.get(['emphasis', 'lineStyle', 'width']) === 'bolder') {\n      var emphasisLineStyle = polyline.getState('emphasis').style;\n      emphasisLineStyle.lineWidth = polyline.style.lineWidth + 1;\n    }\n\n    getECData(polyline).seriesIndex = seriesModel.seriesIndex;\n    enableHoverEmphasis(polyline, focus, blurScope);\n    var smooth = getSmooth(seriesModel.get('smooth'));\n    var smoothMonotone = seriesModel.get('smoothMonotone');\n    var connectNulls = seriesModel.get('connectNulls');\n    polyline.setShape({\n      smooth: smooth,\n      smoothMonotone: smoothMonotone,\n      connectNulls: connectNulls\n    });\n\n    if (polygon) {\n      var stackedOnSeries = data.getCalculationInfo('stackedOnSeries');\n      var stackedOnSmooth = 0;\n      polygon.useStyle(zrUtil.defaults(areaStyleModel.getAreaStyle(), {\n        fill: visualColor,\n        opacity: 0.7,\n        lineJoin: 'bevel',\n        decal: data.getVisual('style').decal\n      }));\n\n      if (stackedOnSeries) {\n        stackedOnSmooth = getSmooth(stackedOnSeries.get('smooth'));\n      }\n\n      polygon.setShape({\n        smooth: smooth,\n        stackedOnSmooth: stackedOnSmooth,\n        smoothMonotone: smoothMonotone,\n        connectNulls: connectNulls\n      });\n      setStatesStylesFromModel(polygon, seriesModel, 'areaStyle');\n      getECData(polygon).seriesIndex = seriesModel.seriesIndex;\n      enableHoverEmphasis(polygon, focus, blurScope);\n    }\n\n    var changePolyState = function (toState) {\n      _this._changePolyState(toState);\n    };\n\n    data.eachItemGraphicEl(function (el) {\n      el && (el.onHoverStateChange = changePolyState);\n    });\n    this._polyline.onHoverStateChange = changePolyState;\n    this._data = data;\n    this._coordSys = coordSys;\n    this._stackedOnPoints = stackedOnPoints;\n    this._points = points;\n    this._step = step;\n    this._valueOrigin = valueOrigin;\n  };\n\n  LineView.prototype.dispose = function () {};\n\n  LineView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\n    var data = seriesModel.getData();\n    var dataIndex = modelUtil.queryDataIndex(data, payload);\n\n    this._changePolyState('emphasis');\n\n    if (!(dataIndex instanceof Array) && dataIndex != null && dataIndex >= 0) {\n      var points = data.getLayout('points');\n      var symbol = data.getItemGraphicEl(dataIndex);\n\n      if (!symbol) {\n        var x = points[dataIndex * 2];\n        var y = points[dataIndex * 2 + 1];\n\n        if (isNaN(x) || isNaN(y)) {\n          return;\n        }\n\n        if (this._clipShapeForSymbol && !this._clipShapeForSymbol.contain(x, y)) {\n          return;\n        }\n\n        symbol = new SymbolClz(data, dataIndex);\n        symbol.x = x;\n        symbol.y = y;\n        symbol.setZ(seriesModel.get('zlevel'), seriesModel.get('z'));\n        symbol.__temp = true;\n        data.setItemGraphicEl(dataIndex, symbol);\n        symbol.stopSymbolAnimation(true);\n        this.group.add(symbol);\n      }\n\n      symbol.highlight();\n    } else {\n      ChartView.prototype.highlight.call(this, seriesModel, ecModel, api, payload);\n    }\n  };\n\n  LineView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\n    var data = seriesModel.getData();\n    var dataIndex = modelUtil.queryDataIndex(data, payload);\n\n    this._changePolyState('normal');\n\n    if (dataIndex != null && dataIndex >= 0) {\n      var symbol = data.getItemGraphicEl(dataIndex);\n\n      if (symbol) {\n        if (symbol.__temp) {\n          data.setItemGraphicEl(dataIndex, null);\n          this.group.remove(symbol);\n        } else {\n          symbol.downplay();\n        }\n      }\n    } else {\n      ChartView.prototype.downplay.call(this, seriesModel, ecModel, api, payload);\n    }\n  };\n\n  LineView.prototype._changePolyState = function (toState) {\n    var polygon = this._polygon;\n    setStatesFlag(this._polyline, toState);\n    polygon && setStatesFlag(polygon, toState);\n  };\n\n  LineView.prototype._newPolyline = function (points) {\n    var polyline = this._polyline;\n\n    if (polyline) {\n      this._lineGroup.remove(polyline);\n    }\n\n    polyline = new ECPolyline({\n      shape: {\n        points: points\n      },\n      segmentIgnoreThreshold: 2,\n      z2: 10\n    });\n\n    this._lineGroup.add(polyline);\n\n    this._polyline = polyline;\n    return polyline;\n  };\n\n  LineView.prototype._newPolygon = function (points, stackedOnPoints) {\n    var polygon = this._polygon;\n\n    if (polygon) {\n      this._lineGroup.remove(polygon);\n    }\n\n    polygon = new ECPolygon({\n      shape: {\n        points: points,\n        stackedOnPoints: stackedOnPoints\n      },\n      segmentIgnoreThreshold: 2\n    });\n\n    this._lineGroup.add(polygon);\n\n    this._polygon = polygon;\n    return polygon;\n  };\n\n  LineView.prototype._initSymbolLabelAnimation = function (data, coordSys, clipShape) {\n    var isHorizontalOrRadial;\n    var isCoordSysPolar;\n    var baseAxis = coordSys.getBaseAxis();\n    var isAxisInverse = baseAxis.inverse;\n\n    if (coordSys.type === 'cartesian2d') {\n      isHorizontalOrRadial = baseAxis.isHorizontal();\n      isCoordSysPolar = false;\n    } else if (coordSys.type === 'polar') {\n      isHorizontalOrRadial = baseAxis.dim === 'angle';\n      isCoordSysPolar = true;\n    }\n\n    var seriesModel = data.hostModel;\n    var seriesDuration = seriesModel.get('animationDuration');\n\n    if (typeof seriesDuration === 'function') {\n      seriesDuration = seriesDuration(null);\n    }\n\n    var seriesDalay = seriesModel.get('animationDelay') || 0;\n    var seriesDalayValue = typeof seriesDalay === 'function' ? seriesDalay(null) : seriesDalay;\n    data.eachItemGraphicEl(function (symbol, idx) {\n      var el = symbol;\n\n      if (el) {\n        var point = [symbol.x, symbol.y];\n        var start = void 0;\n        var end = void 0;\n        var current = void 0;\n\n        if (isCoordSysPolar) {\n          var polarClip = clipShape;\n          var coord = coordSys.pointToCoord(point);\n\n          if (isHorizontalOrRadial) {\n            start = polarClip.startAngle;\n            end = polarClip.endAngle;\n            current = -coord[1] / 180 * Math.PI;\n          } else {\n            start = polarClip.r0;\n            end = polarClip.r;\n            current = coord[0];\n          }\n        } else {\n          var gridClip = clipShape;\n\n          if (isHorizontalOrRadial) {\n            start = gridClip.x;\n            end = gridClip.x + gridClip.width;\n            current = symbol.x;\n          } else {\n            start = gridClip.y + gridClip.height;\n            end = gridClip.y;\n            current = symbol.y;\n          }\n        }\n\n        var ratio = end === start ? 0 : (current - start) / (end - start);\n\n        if (isAxisInverse) {\n          ratio = 1 - ratio;\n        }\n\n        var delay = typeof seriesDalay === 'function' ? seriesDalay(idx) : seriesDuration * ratio + seriesDalayValue;\n        var symbolPath = el.getSymbolPath();\n        var text = symbolPath.getTextContent();\n        el.attr({\n          scaleX: 0,\n          scaleY: 0\n        });\n        el.animateTo({\n          scaleX: 1,\n          scaleY: 1\n        }, {\n          duration: 200,\n          delay: delay\n        });\n\n        if (text) {\n          text.animateFrom({\n            style: {\n              opacity: 0\n            }\n          }, {\n            duration: 300,\n            delay: delay\n          });\n        }\n\n        symbolPath.disableLabelAnimation = true;\n      }\n    });\n  };\n\n  LineView.prototype._initOrUpdateEndLabel = function (seriesModel, coordSys) {\n    var endLabelModel = seriesModel.getModel('endLabel');\n\n    if (endLabelModel.get('show')) {\n      var data_2 = seriesModel.getData();\n      var polyline = this._polyline;\n      var endLabel = this._endLabel;\n\n      if (!endLabel) {\n        endLabel = this._endLabel = new graphic.Text({\n          z2: 200\n        });\n        endLabel.ignoreClip = true;\n        polyline.setTextContent(this._endLabel);\n        polyline.disableLabelAnimation = true;\n      }\n\n      var dataIndex = getLastIndexNotNull(data_2.getLayout('points'));\n\n      if (dataIndex >= 0) {\n        setLabelStyle(polyline, getLabelStatesModels(seriesModel, 'endLabel'), {\n          labelFetcher: seriesModel,\n          labelDataIndex: dataIndex,\n          defaultText: function (dataIndex, opt, interpolatedValue) {\n            return interpolatedValue != null ? getDefaultInterpolatedLabel(data_2, interpolatedValue) : getDefaultLabel(data_2, dataIndex);\n          },\n          enableTextSetter: true\n        }, getEndLabelStateSpecified(endLabelModel, coordSys));\n        polyline.textConfig.position = null;\n      }\n    } else if (this._endLabel) {\n      this._polyline.removeTextContent();\n\n      this._endLabel = null;\n    }\n  };\n\n  LineView.prototype._endLabelOnDuring = function (percent, clipRect, data, animationRecord, valueAnimation, endLabelModel, coordSys) {\n    var endLabel = this._endLabel;\n    var polyline = this._polyline;\n\n    if (endLabel) {\n      if (percent < 1 && animationRecord.originalX == null) {\n        animationRecord.originalX = endLabel.x;\n        animationRecord.originalY = endLabel.y;\n      }\n\n      var points = data.getLayout('points');\n      var seriesModel = data.hostModel;\n      var connectNulls = seriesModel.get('connectNulls');\n      var precision = endLabelModel.get('precision');\n      var distance = endLabelModel.get('distance') || 0;\n      var baseAxis = coordSys.getBaseAxis();\n      var isHorizontal = baseAxis.isHorizontal();\n      var isBaseInversed = baseAxis.inverse;\n      var clipShape = clipRect.shape;\n      var xOrY = isBaseInversed ? isHorizontal ? clipShape.x : clipShape.y + clipShape.height : isHorizontal ? clipShape.x + clipShape.width : clipShape.y;\n      var distanceX = (isHorizontal ? distance : 0) * (isBaseInversed ? -1 : 1);\n      var distanceY = (isHorizontal ? 0 : -distance) * (isBaseInversed ? -1 : 1);\n      var dim = isHorizontal ? 'x' : 'y';\n      var dataIndexRange = getIndexRange(points, xOrY, dim);\n      var indices = dataIndexRange.range;\n      var diff = indices[1] - indices[0];\n      var value = void 0;\n\n      if (diff >= 1) {\n        if (diff > 1 && !connectNulls) {\n          var pt = getPointAtIndex(points, indices[0]);\n          endLabel.attr({\n            x: pt[0] + distanceX,\n            y: pt[1] + distanceY\n          });\n          valueAnimation && (value = seriesModel.getRawValue(indices[0]));\n        } else {\n          var pt = polyline.getPointOn(xOrY, dim);\n          pt && endLabel.attr({\n            x: pt[0] + distanceX,\n            y: pt[1] + distanceY\n          });\n          var startValue = seriesModel.getRawValue(indices[0]);\n          var endValue = seriesModel.getRawValue(indices[1]);\n          valueAnimation && (value = modelUtil.interpolateRawValues(data, precision, startValue, endValue, dataIndexRange.t));\n        }\n\n        animationRecord.lastFrameIndex = indices[0];\n      } else {\n        var idx = percent === 1 || animationRecord.lastFrameIndex > 0 ? indices[0] : 0;\n        var pt = getPointAtIndex(points, idx);\n        valueAnimation && (value = seriesModel.getRawValue(idx));\n        endLabel.attr({\n          x: pt[0] + distanceX,\n          y: pt[1] + distanceY\n        });\n      }\n\n      if (valueAnimation) {\n        labelInner(endLabel).setLabelText(value);\n      }\n    }\n  };\n\n  LineView.prototype._doUpdateAnimation = function (data, stackedOnPoints, coordSys, api, step, valueOrigin) {\n    var polyline = this._polyline;\n    var polygon = this._polygon;\n    var seriesModel = data.hostModel;\n    var diff = lineAnimationDiff(this._data, data, this._stackedOnPoints, stackedOnPoints, this._coordSys, coordSys, this._valueOrigin, valueOrigin);\n    var current = diff.current;\n    var stackedOnCurrent = diff.stackedOnCurrent;\n    var next = diff.next;\n    var stackedOnNext = diff.stackedOnNext;\n\n    if (step) {\n      current = turnPointsIntoStep(diff.current, coordSys, step);\n      stackedOnCurrent = turnPointsIntoStep(diff.stackedOnCurrent, coordSys, step);\n      next = turnPointsIntoStep(diff.next, coordSys, step);\n      stackedOnNext = turnPointsIntoStep(diff.stackedOnNext, coordSys, step);\n    }\n\n    if (getBoundingDiff(current, next) > 3000 || polygon && getBoundingDiff(stackedOnCurrent, stackedOnNext) > 3000) {\n      polyline.setShape({\n        points: next\n      });\n\n      if (polygon) {\n        polygon.setShape({\n          points: next,\n          stackedOnPoints: stackedOnNext\n        });\n      }\n\n      return;\n    }\n\n    polyline.shape.__points = diff.current;\n    polyline.shape.points = current;\n    var target = {\n      shape: {\n        points: next\n      }\n    };\n\n    if (diff.current !== current) {\n      target.shape.__points = diff.next;\n    }\n\n    polyline.stopAnimation();\n    graphic.updateProps(polyline, target, seriesModel);\n\n    if (polygon) {\n      polygon.setShape({\n        points: current,\n        stackedOnPoints: stackedOnCurrent\n      });\n      polygon.stopAnimation();\n      graphic.updateProps(polygon, {\n        shape: {\n          stackedOnPoints: stackedOnNext\n        }\n      }, seriesModel);\n\n      if (polyline.shape.points !== polygon.shape.points) {\n        polygon.shape.points = polyline.shape.points;\n      }\n    }\n\n    var updatedDataInfo = [];\n    var diffStatus = diff.status;\n\n    for (var i = 0; i < diffStatus.length; i++) {\n      var cmd = diffStatus[i].cmd;\n\n      if (cmd === '=') {\n        var el = data.getItemGraphicEl(diffStatus[i].idx1);\n\n        if (el) {\n          updatedDataInfo.push({\n            el: el,\n            ptIdx: i\n          });\n        }\n      }\n    }\n\n    if (polyline.animators && polyline.animators.length) {\n      polyline.animators[0].during(function () {\n        polygon && polygon.dirtyShape();\n        var points = polyline.shape.__points;\n\n        for (var i = 0; i < updatedDataInfo.length; i++) {\n          var el = updatedDataInfo[i].el;\n          var offset = updatedDataInfo[i].ptIdx * 2;\n          el.x = points[offset];\n          el.y = points[offset + 1];\n          el.markRedraw();\n        }\n      });\n    }\n  };\n\n  LineView.prototype.remove = function (ecModel) {\n    var group = this.group;\n    var oldData = this._data;\n\n    this._lineGroup.removeAll();\n\n    this._symbolDraw.remove(true);\n\n    oldData && oldData.eachItemGraphicEl(function (el, idx) {\n      if (el.__temp) {\n        group.remove(el);\n        oldData.setItemGraphicEl(idx, null);\n      }\n    });\n    this._polyline = this._polygon = this._coordSys = this._points = this._stackedOnPoints = this._endLabel = this._data = null;\n  };\n\n  LineView.type = 'line';\n  return LineView;\n}(ChartView);\n\nexport default LineView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { map } from 'zrender/lib/core/util';\nimport createRenderPlanner from '../chart/helper/createRenderPlanner';\nimport { isDimensionStacked } from '../data/helper/dataStackHelper';\nimport { createFloat32Array } from '../util/vendor';\nexport default function pointsLayout(seriesType, forceStoreInTypedArray) {\n  return {\n    seriesType: seriesType,\n    plan: createRenderPlanner(),\n    reset: function (seriesModel) {\n      var data = seriesModel.getData();\n      var coordSys = seriesModel.coordinateSystem;\n      var pipelineContext = seriesModel.pipelineContext;\n      var useTypedArray = forceStoreInTypedArray || pipelineContext.large;\n\n      if (!coordSys) {\n        return;\n      }\n\n      var dims = map(coordSys.dimensions, function (dim) {\n        return data.mapDimension(dim);\n      }).slice(0, 2);\n      var dimLen = dims.length;\n      var stackResultDim = data.getCalculationInfo('stackResultDimension');\n\n      if (isDimensionStacked(data, dims[0])) {\n        dims[0] = stackResultDim;\n      }\n\n      if (isDimensionStacked(data, dims[1])) {\n        dims[1] = stackResultDim;\n      }\n\n      var dimInfo0 = data.getDimensionInfo(dims[0]);\n      var dimInfo1 = data.getDimensionInfo(dims[1]);\n      var dimIdx0 = dimInfo0 && dimInfo0.index;\n      var dimIdx1 = dimInfo1 && dimInfo1.index;\n      return dimLen && {\n        progress: function (params, data) {\n          var segCount = params.end - params.start;\n          var points = useTypedArray && createFloat32Array(segCount * dimLen);\n          var tmpIn = [];\n          var tmpOut = [];\n\n          for (var i = params.start, offset = 0; i < params.end; i++) {\n            var point = void 0;\n\n            if (dimLen === 1) {\n              var x = data.getByDimIdx(dimIdx0, i);\n              point = coordSys.dataToPoint(x, null, tmpOut);\n            } else {\n              tmpIn[0] = data.getByDimIdx(dimIdx0, i);\n              tmpIn[1] = data.getByDimIdx(dimIdx1, i);\n              point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n            }\n\n            if (useTypedArray) {\n              points[offset++] = point[0];\n              points[offset++] = point[1];\n            } else {\n              data.setItemLayout(i, point.slice());\n            }\n          }\n\n          useTypedArray && data.setLayout('points', points);\n        }\n      };\n    }\n  };\n}\n;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar samplers = {\n  average: function (frame) {\n    var sum = 0;\n    var count = 0;\n\n    for (var i = 0; i < frame.length; i++) {\n      if (!isNaN(frame[i])) {\n        sum += frame[i];\n        count++;\n      }\n    }\n\n    return count === 0 ? NaN : sum / count;\n  },\n  sum: function (frame) {\n    var sum = 0;\n\n    for (var i = 0; i < frame.length; i++) {\n      sum += frame[i] || 0;\n    }\n\n    return sum;\n  },\n  max: function (frame) {\n    var max = -Infinity;\n\n    for (var i = 0; i < frame.length; i++) {\n      frame[i] > max && (max = frame[i]);\n    }\n\n    return isFinite(max) ? max : NaN;\n  },\n  min: function (frame) {\n    var min = Infinity;\n\n    for (var i = 0; i < frame.length; i++) {\n      frame[i] < min && (min = frame[i]);\n    }\n\n    return isFinite(min) ? min : NaN;\n  },\n  nearest: function (frame) {\n    return frame[0];\n  }\n};\n\nvar indexSampler = function (frame) {\n  return Math.round(frame.length / 2);\n};\n\nexport default function dataSample(seriesType) {\n  return {\n    seriesType: seriesType,\n    reset: function (seriesModel, ecModel, api) {\n      var data = seriesModel.getData();\n      var sampling = seriesModel.get('sampling');\n      var coordSys = seriesModel.coordinateSystem;\n      var count = data.count();\n\n      if (count > 10 && coordSys.type === 'cartesian2d' && sampling) {\n        var baseAxis = coordSys.getBaseAxis();\n        var valueAxis = coordSys.getOtherAxis(baseAxis);\n        var extent = baseAxis.getExtent();\n        var dpr = api.getDevicePixelRatio();\n        var size = Math.abs(extent[1] - extent[0]) * (dpr || 1);\n        var rate = Math.round(count / size);\n\n        if (rate > 1) {\n          if (sampling === 'lttb') {\n            seriesModel.setData(data.lttbDownSample(data.mapDimension(valueAxis.dim), 1 / rate));\n          }\n\n          var sampler = void 0;\n\n          if (typeof sampling === 'string') {\n            sampler = samplers[sampling];\n          } else if (typeof sampling === 'function') {\n            sampler = sampling;\n          }\n\n          if (sampler) {\n            seriesModel.setData(data.downSample(data.mapDimension(valueAxis.dim), 1 / rate, sampler, indexSampler));\n          }\n        }\n      }\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport LineSeries from './LineSeries';\nimport LineView from './LineView';\nimport layoutPoints from '../../layout/points';\nimport dataSample from '../../processor/dataSample';\nexport function install(registers) {\n  registers.registerChartView(LineView);\n  registers.registerSeriesModel(LineSeries);\n  registers.registerLayout(layoutPoints('line', true));\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, dataSample('line'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport createListFromArray from '../helper/createListFromArray';\n\nvar BaseBarSeriesModel = function (_super) {\n  __extends(BaseBarSeriesModel, _super);\n\n  function BaseBarSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BaseBarSeriesModel.type;\n    return _this;\n  }\n\n  BaseBarSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: true\n    });\n  };\n\n  BaseBarSeriesModel.prototype.getMarkerPosition = function (value) {\n    var coordSys = this.coordinateSystem;\n\n    if (coordSys) {\n      var pt = coordSys.dataToPoint(coordSys.clampData(value));\n      var data = this.getData();\n      var offset = data.getLayout('offset');\n      var size = data.getLayout('size');\n      var offsetIndex = coordSys.getBaseAxis().isHorizontal() ? 0 : 1;\n      pt[offsetIndex] += offset + size / 2;\n      return pt;\n    }\n\n    return [NaN, NaN];\n  };\n\n  BaseBarSeriesModel.type = 'series.__base_bar__';\n  BaseBarSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'cartesian2d',\n    legendHoverLink: true,\n    barMinHeight: 0,\n    barMinAngle: 0,\n    large: false,\n    largeThreshold: 400,\n    progressive: 3e3,\n    progressiveChunkMode: 'mod'\n  };\n  return BaseBarSeriesModel;\n}(SeriesModel);\n\nSeriesModel.registerClass(BaseBarSeriesModel);\nexport default BaseBarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BaseBarSeriesModel from './BaseBarSeries';\nimport createListFromArray from '../helper/createListFromArray';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar BarSeriesModel = function (_super) {\n  __extends(BarSeriesModel, _super);\n\n  function BarSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BarSeriesModel.type;\n    return _this;\n  }\n\n  BarSeriesModel.prototype.getInitialData = function () {\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: true,\n      createInvertedIndices: !!this.get('realtimeSort', true) || null\n    });\n  };\n\n  BarSeriesModel.prototype.getProgressive = function () {\n    return this.get('large') ? this.get('progressive') : false;\n  };\n\n  BarSeriesModel.prototype.getProgressiveThreshold = function () {\n    var progressiveThreshold = this.get('progressiveThreshold');\n    var largeThreshold = this.get('largeThreshold');\n\n    if (largeThreshold > progressiveThreshold) {\n      progressiveThreshold = largeThreshold;\n    }\n\n    return progressiveThreshold;\n  };\n\n  BarSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n    return selectors.rect(data.getItemLayout(dataIndex));\n  };\n\n  BarSeriesModel.type = 'series.bar';\n  BarSeriesModel.dependencies = ['grid', 'polar'];\n  BarSeriesModel.defaultOption = inheritDefaultOption(BaseBarSeriesModel.defaultOption, {\n    clip: true,\n    roundCap: false,\n    showBackground: false,\n    backgroundStyle: {\n      color: 'rgba(180, 180, 180, 0.2)',\n      borderColor: null,\n      borderWidth: 0,\n      borderType: 'solid',\n      borderRadius: 0,\n      shadowBlur: 0,\n      shadowColor: null,\n      shadowOffsetX: 0,\n      shadowOffsetY: 0,\n      opacity: 1\n    },\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    },\n    realtimeSort: false\n  });\n  return BarSeriesModel;\n}(BaseBarSeriesModel);\n\nexport default BarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { Path } from '../graphic';\n\nvar SausageShape = function () {\n  function SausageShape() {\n    this.cx = 0;\n    this.cy = 0;\n    this.r0 = 0;\n    this.r = 0;\n    this.startAngle = 0;\n    this.endAngle = Math.PI * 2;\n    this.clockwise = true;\n  }\n\n  return SausageShape;\n}();\n\nvar SausagePath = function (_super) {\n  __extends(SausagePath, _super);\n\n  function SausagePath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'sausage';\n    return _this;\n  }\n\n  SausagePath.prototype.getDefaultShape = function () {\n    return new SausageShape();\n  };\n\n  SausagePath.prototype.buildPath = function (ctx, shape) {\n    var x = shape.cx;\n    var y = shape.cy;\n    var r0 = Math.max(shape.r0 || 0, 0);\n    var r = Math.max(shape.r, 0);\n    var dr = (r - r0) * 0.5;\n    var rCenter = r0 + dr;\n    var startAngle = shape.startAngle;\n    var endAngle = shape.endAngle;\n    var clockwise = shape.clockwise;\n    var unitStartX = Math.cos(startAngle);\n    var unitStartY = Math.sin(startAngle);\n    var unitEndX = Math.cos(endAngle);\n    var unitEndY = Math.sin(endAngle);\n    var lessThanCircle = clockwise ? endAngle - startAngle < Math.PI * 2 : startAngle - endAngle < Math.PI * 2;\n\n    if (lessThanCircle) {\n      ctx.moveTo(unitStartX * r0 + x, unitStartY * r0 + y);\n      ctx.arc(unitStartX * rCenter + x, unitStartY * rCenter + y, dr, -Math.PI + startAngle, startAngle, !clockwise);\n    }\n\n    ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\n    ctx.moveTo(unitEndX * r + x, unitEndY * r + y);\n    ctx.arc(unitEndX * rCenter + x, unitEndY * rCenter + y, dr, endAngle - Math.PI * 2, endAngle - Math.PI, !clockwise);\n\n    if (r0 !== 0) {\n      ctx.arc(x, y, r0, endAngle, startAngle, clockwise);\n      ctx.moveTo(unitStartX * r0 + x, unitEndY * r0 + y);\n    }\n\n    ctx.closePath();\n  };\n\n  return SausagePath;\n}(Path);\n\nexport default SausagePath;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Path from 'zrender/lib/graphic/Path';\nimport Group from 'zrender/lib/graphic/Group';\nimport { extend, defaults, each, map } from 'zrender/lib/core/util';\nimport { Rect, Sector, updateProps, initProps, removeElementWithFadeOut } from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { enableHoverEmphasis, setStatesStylesFromModel } from '../../util/states';\nimport { setLabelStyle, getLabelStatesModels, setLabelValueAnimation } from '../../label/labelStyle';\nimport { throttle } from '../../util/throttle';\nimport { createClipPath } from '../helper/createClipPathFromCoordSys';\nimport Sausage from '../../util/shape/sausage';\nimport ChartView from '../../view/Chart';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport { getDefaultLabel, getDefaultInterpolatedLabel } from '../helper/labelHelper';\nimport { warn } from '../../util/log';\nvar BAR_BORDER_WIDTH_QUERY = ['itemStyle', 'borderWidth'];\nvar BAR_BORDER_RADIUS_QUERY = ['itemStyle', 'borderRadius'];\nvar _eventPos = [0, 0];\nvar mathMax = Math.max;\nvar mathMin = Math.min;\n\nfunction getClipArea(coord, data) {\n  var coordSysClipArea = coord.getArea && coord.getArea();\n\n  if (isCoordinateSystemType(coord, 'cartesian2d')) {\n    var baseAxis = coord.getBaseAxis();\n\n    if (baseAxis.type !== 'category' || !baseAxis.onBand) {\n      var expandWidth = data.getLayout('bandWidth');\n\n      if (baseAxis.isHorizontal()) {\n        coordSysClipArea.x -= expandWidth;\n        coordSysClipArea.width += expandWidth * 2;\n      } else {\n        coordSysClipArea.y -= expandWidth;\n        coordSysClipArea.height += expandWidth * 2;\n      }\n    }\n  }\n\n  return coordSysClipArea;\n}\n\nvar BarView = function (_super) {\n  __extends(BarView, _super);\n\n  function BarView() {\n    var _this = _super.call(this) || this;\n\n    _this.type = BarView.type;\n    _this._isFirstFrame = true;\n    return _this;\n  }\n\n  BarView.prototype.render = function (seriesModel, ecModel, api, payload) {\n    this._model = seriesModel;\n\n    this._removeOnRenderedListener(api);\n\n    this._updateDrawMode(seriesModel);\n\n    var coordinateSystemType = seriesModel.get('coordinateSystem');\n\n    if (coordinateSystemType === 'cartesian2d' || coordinateSystemType === 'polar') {\n      this._isLargeDraw ? this._renderLarge(seriesModel, ecModel, api) : this._renderNormal(seriesModel, ecModel, api, payload);\n    } else if (process.env.NODE_ENV !== 'production') {\n      warn('Only cartesian2d and polar supported for bar.');\n    }\n  };\n\n  BarView.prototype.incrementalPrepareRender = function (seriesModel) {\n    this._clear();\n\n    this._updateDrawMode(seriesModel);\n\n    this._updateLargeClip(seriesModel);\n  };\n\n  BarView.prototype.incrementalRender = function (params, seriesModel) {\n    this._incrementalRenderLarge(params, seriesModel);\n  };\n\n  BarView.prototype._updateDrawMode = function (seriesModel) {\n    var isLargeDraw = seriesModel.pipelineContext.large;\n\n    if (this._isLargeDraw == null || isLargeDraw !== this._isLargeDraw) {\n      this._isLargeDraw = isLargeDraw;\n\n      this._clear();\n    }\n  };\n\n  BarView.prototype._renderNormal = function (seriesModel, ecModel, api, payload) {\n    var group = this.group;\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var coord = seriesModel.coordinateSystem;\n    var baseAxis = coord.getBaseAxis();\n    var isHorizontalOrRadial;\n\n    if (coord.type === 'cartesian2d') {\n      isHorizontalOrRadial = baseAxis.isHorizontal();\n    } else if (coord.type === 'polar') {\n      isHorizontalOrRadial = baseAxis.dim === 'angle';\n    }\n\n    var animationModel = seriesModel.isAnimationEnabled() ? seriesModel : null;\n    var realtimeSortCfg = shouldRealtimeSort(seriesModel, coord);\n\n    if (realtimeSortCfg) {\n      this._enableRealtimeSort(realtimeSortCfg, data, api);\n    }\n\n    var needsClip = seriesModel.get('clip', true) || realtimeSortCfg;\n    var coordSysClipArea = getClipArea(coord, data);\n    group.removeClipPath();\n    var roundCap = seriesModel.get('roundCap', true);\n    var drawBackground = seriesModel.get('showBackground', true);\n    var backgroundModel = seriesModel.getModel('backgroundStyle');\n    var barBorderRadius = backgroundModel.get('borderRadius') || 0;\n    var bgEls = [];\n    var oldBgEls = this._backgroundEls;\n    var isInitSort = payload && payload.isInitSort;\n    var isChangeOrder = payload && payload.type === 'changeAxisOrder';\n\n    function createBackground(dataIndex) {\n      var bgLayout = getLayout[coord.type](data, dataIndex);\n      var bgEl = createBackgroundEl(coord, isHorizontalOrRadial, bgLayout);\n      bgEl.useStyle(backgroundModel.getItemStyle());\n\n      if (coord.type === 'cartesian2d') {\n        bgEl.setShape('r', barBorderRadius);\n      }\n\n      bgEls[dataIndex] = bgEl;\n      return bgEl;\n    }\n\n    ;\n    data.diff(oldData).add(function (dataIndex) {\n      var itemModel = data.getItemModel(dataIndex);\n      var layout = getLayout[coord.type](data, dataIndex, itemModel);\n\n      if (drawBackground) {\n        createBackground(dataIndex);\n      }\n\n      if (!data.hasValue(dataIndex)) {\n        return;\n      }\n\n      var isClipped = false;\n\n      if (needsClip) {\n        isClipped = clip[coord.type](coordSysClipArea, layout);\n      }\n\n      var el = elementCreator[coord.type](seriesModel, data, dataIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, false, roundCap);\n      updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\n\n      if (isInitSort) {\n        el.attr({\n          shape: layout\n        });\n      } else if (realtimeSortCfg) {\n        updateRealtimeAnimation(realtimeSortCfg, animationModel, el, layout, dataIndex, isHorizontalOrRadial, false, false);\n      } else {\n        initProps(el, {\n          shape: layout\n        }, seriesModel, dataIndex);\n      }\n\n      data.setItemGraphicEl(dataIndex, el);\n      group.add(el);\n      el.ignore = isClipped;\n    }).update(function (newIndex, oldIndex) {\n      var itemModel = data.getItemModel(newIndex);\n      var layout = getLayout[coord.type](data, newIndex, itemModel);\n\n      if (drawBackground) {\n        var bgEl = void 0;\n\n        if (oldBgEls.length === 0) {\n          bgEl = createBackground(oldIndex);\n        } else {\n          bgEl = oldBgEls[oldIndex];\n          bgEl.useStyle(backgroundModel.getItemStyle());\n\n          if (coord.type === 'cartesian2d') {\n            bgEl.setShape('r', barBorderRadius);\n          }\n\n          bgEls[newIndex] = bgEl;\n        }\n\n        var bgLayout = getLayout[coord.type](data, newIndex);\n        var shape = createBackgroundShape(isHorizontalOrRadial, bgLayout, coord);\n        updateProps(bgEl, {\n          shape: shape\n        }, animationModel, newIndex);\n      }\n\n      var el = oldData.getItemGraphicEl(oldIndex);\n\n      if (!data.hasValue(newIndex)) {\n        group.remove(el);\n        el = null;\n        return;\n      }\n\n      var isClipped = false;\n\n      if (needsClip) {\n        isClipped = clip[coord.type](coordSysClipArea, layout);\n\n        if (isClipped) {\n          group.remove(el);\n        }\n      }\n\n      if (!el) {\n        el = elementCreator[coord.type](seriesModel, data, newIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, !!el, roundCap);\n      }\n\n      if (!isChangeOrder) {\n        updateStyle(el, data, newIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\n      }\n\n      if (isInitSort) {\n        el.attr({\n          shape: layout\n        });\n      } else if (realtimeSortCfg) {\n        updateRealtimeAnimation(realtimeSortCfg, animationModel, el, layout, newIndex, isHorizontalOrRadial, true, isChangeOrder);\n      } else {\n        updateProps(el, {\n          shape: layout\n        }, seriesModel, newIndex, null);\n      }\n\n      data.setItemGraphicEl(newIndex, el);\n      el.ignore = isClipped;\n      group.add(el);\n    }).remove(function (dataIndex) {\n      var el = oldData.getItemGraphicEl(dataIndex);\n      el && removeElementWithFadeOut(el, seriesModel, dataIndex);\n    }).execute();\n    var bgGroup = this._backgroundGroup || (this._backgroundGroup = new Group());\n    bgGroup.removeAll();\n\n    for (var i = 0; i < bgEls.length; ++i) {\n      bgGroup.add(bgEls[i]);\n    }\n\n    group.add(bgGroup);\n    this._backgroundEls = bgEls;\n    this._data = data;\n  };\n\n  BarView.prototype._renderLarge = function (seriesModel, ecModel, api) {\n    this._clear();\n\n    createLarge(seriesModel, this.group);\n\n    this._updateLargeClip(seriesModel);\n  };\n\n  BarView.prototype._incrementalRenderLarge = function (params, seriesModel) {\n    this._removeBackground();\n\n    createLarge(seriesModel, this.group, true);\n  };\n\n  BarView.prototype._updateLargeClip = function (seriesModel) {\n    var clipPath = seriesModel.get('clip', true) ? createClipPath(seriesModel.coordinateSystem, false, seriesModel) : null;\n\n    if (clipPath) {\n      this.group.setClipPath(clipPath);\n    } else {\n      this.group.removeClipPath();\n    }\n  };\n\n  BarView.prototype._enableRealtimeSort = function (realtimeSortCfg, data, api) {\n    var _this = this;\n\n    if (!data.count()) {\n      return;\n    }\n\n    var baseAxis = realtimeSortCfg.baseAxis;\n\n    if (this._isFirstFrame) {\n      this._dispatchInitSort(data, realtimeSortCfg, api);\n\n      this._isFirstFrame = false;\n    } else {\n      var orderMapping_1 = function (idx) {\n        var el = data.getItemGraphicEl(idx);\n\n        if (el) {\n          var shape = el.shape;\n          return (baseAxis.isHorizontal() ? Math.abs(shape.height) : Math.abs(shape.width)) || 0;\n        } else {\n          return 0;\n        }\n      };\n\n      this._onRendered = function () {\n        _this._updateSortWithinSameData(data, orderMapping_1, baseAxis, api);\n      };\n\n      api.getZr().on('rendered', this._onRendered);\n    }\n  };\n\n  BarView.prototype._dataSort = function (data, baseAxis, orderMapping) {\n    var info = [];\n    data.each(data.mapDimension(baseAxis.dim), function (ordinalNumber, dataIdx) {\n      var mappedValue = orderMapping(dataIdx);\n      mappedValue = mappedValue == null ? NaN : mappedValue;\n      info.push({\n        dataIndex: dataIdx,\n        mappedValue: mappedValue,\n        ordinalNumber: ordinalNumber\n      });\n    });\n    info.sort(function (a, b) {\n      return b.mappedValue - a.mappedValue;\n    });\n    return {\n      ordinalNumbers: map(info, function (item) {\n        return item.ordinalNumber;\n      })\n    };\n  };\n\n  BarView.prototype._isOrderChangedWithinSameData = function (data, orderMapping, baseAxis) {\n    var scale = baseAxis.scale;\n    var ordinalDataDim = data.mapDimension(baseAxis.dim);\n    var lastValue = Number.MAX_VALUE;\n\n    for (var tickNum = 0, len = scale.getOrdinalMeta().categories.length; tickNum < len; ++tickNum) {\n      var rawIdx = data.rawIndexOf(ordinalDataDim, scale.getRawOrdinalNumber(tickNum));\n      var value = rawIdx < 0 ? Number.MIN_VALUE : orderMapping(data.indexOfRawIndex(rawIdx));\n\n      if (value > lastValue) {\n        return true;\n      }\n\n      lastValue = value;\n    }\n\n    return false;\n  };\n\n  BarView.prototype._isOrderDifferentInView = function (orderInfo, baseAxis) {\n    var scale = baseAxis.scale;\n    var extent = scale.getExtent();\n    var tickNum = Math.max(0, extent[0]);\n    var tickMax = Math.min(extent[1], scale.getOrdinalMeta().categories.length - 1);\n\n    for (; tickNum <= tickMax; ++tickNum) {\n      if (orderInfo.ordinalNumbers[tickNum] !== scale.getRawOrdinalNumber(tickNum)) {\n        return true;\n      }\n    }\n  };\n\n  BarView.prototype._updateSortWithinSameData = function (data, orderMapping, baseAxis, api) {\n    if (!this._isOrderChangedWithinSameData(data, orderMapping, baseAxis)) {\n      return;\n    }\n\n    var sortInfo = this._dataSort(data, baseAxis, orderMapping);\n\n    if (this._isOrderDifferentInView(sortInfo, baseAxis)) {\n      this._removeOnRenderedListener(api);\n\n      api.dispatchAction({\n        type: 'changeAxisOrder',\n        componentType: baseAxis.dim + 'Axis',\n        axisId: baseAxis.index,\n        sortInfo: sortInfo\n      });\n    }\n  };\n\n  BarView.prototype._dispatchInitSort = function (data, realtimeSortCfg, api) {\n    var baseAxis = realtimeSortCfg.baseAxis;\n\n    var sortResult = this._dataSort(data, baseAxis, function (dataIdx) {\n      return data.get(data.mapDimension(realtimeSortCfg.otherAxis.dim), dataIdx);\n    });\n\n    api.dispatchAction({\n      type: 'changeAxisOrder',\n      componentType: baseAxis.dim + 'Axis',\n      isInitSort: true,\n      axisId: baseAxis.index,\n      sortInfo: sortResult,\n      animation: {\n        duration: 0\n      }\n    });\n  };\n\n  BarView.prototype.remove = function (ecModel, api) {\n    this._clear(this._model);\n\n    this._removeOnRenderedListener(api);\n  };\n\n  BarView.prototype.dispose = function (ecModel, api) {\n    this._removeOnRenderedListener(api);\n  };\n\n  BarView.prototype._removeOnRenderedListener = function (api) {\n    if (this._onRendered) {\n      api.getZr().off('rendered', this._onRendered);\n      this._onRendered = null;\n    }\n  };\n\n  BarView.prototype._clear = function (model) {\n    var group = this.group;\n    var data = this._data;\n\n    if (model && model.isAnimationEnabled() && data && !this._isLargeDraw) {\n      this._removeBackground();\n\n      this._backgroundEls = [];\n      data.eachItemGraphicEl(function (el) {\n        removeElementWithFadeOut(el, model, getECData(el).dataIndex);\n      });\n    } else {\n      group.removeAll();\n    }\n\n    this._data = null;\n    this._isFirstFrame = true;\n  };\n\n  BarView.prototype._removeBackground = function () {\n    this.group.remove(this._backgroundGroup);\n    this._backgroundGroup = null;\n  };\n\n  BarView.type = 'bar';\n  return BarView;\n}(ChartView);\n\nvar clip = {\n  cartesian2d: function (coordSysBoundingRect, layout) {\n    var signWidth = layout.width < 0 ? -1 : 1;\n    var signHeight = layout.height < 0 ? -1 : 1;\n\n    if (signWidth < 0) {\n      layout.x += layout.width;\n      layout.width = -layout.width;\n    }\n\n    if (signHeight < 0) {\n      layout.y += layout.height;\n      layout.height = -layout.height;\n    }\n\n    var coordSysX2 = coordSysBoundingRect.x + coordSysBoundingRect.width;\n    var coordSysY2 = coordSysBoundingRect.y + coordSysBoundingRect.height;\n    var x = mathMax(layout.x, coordSysBoundingRect.x);\n    var x2 = mathMin(layout.x + layout.width, coordSysX2);\n    var y = mathMax(layout.y, coordSysBoundingRect.y);\n    var y2 = mathMin(layout.y + layout.height, coordSysY2);\n    var xClipped = x2 < x;\n    var yClipped = y2 < y;\n    layout.x = xClipped && x > coordSysX2 ? x2 : x;\n    layout.y = yClipped && y > coordSysY2 ? y2 : y;\n    layout.width = xClipped ? 0 : x2 - x;\n    layout.height = yClipped ? 0 : y2 - y;\n\n    if (signWidth < 0) {\n      layout.x += layout.width;\n      layout.width = -layout.width;\n    }\n\n    if (signHeight < 0) {\n      layout.y += layout.height;\n      layout.height = -layout.height;\n    }\n\n    return xClipped || yClipped;\n  },\n  polar: function (coordSysClipArea, layout) {\n    var signR = layout.r0 <= layout.r ? 1 : -1;\n\n    if (signR < 0) {\n      var tmp = layout.r;\n      layout.r = layout.r0;\n      layout.r0 = tmp;\n    }\n\n    var r = mathMin(layout.r, coordSysClipArea.r);\n    var r0 = mathMax(layout.r0, coordSysClipArea.r0);\n    layout.r = r;\n    layout.r0 = r0;\n    var clipped = r - r0 < 0;\n\n    if (signR < 0) {\n      var tmp = layout.r;\n      layout.r = layout.r0;\n      layout.r0 = tmp;\n    }\n\n    return clipped;\n  }\n};\nvar elementCreator = {\n  cartesian2d: function (seriesModel, data, newIndex, layout, isHorizontal, animationModel, axisModel, isUpdate, roundCap) {\n    var rect = new Rect({\n      shape: extend({}, layout),\n      z2: 1\n    });\n    rect.__dataIndex = newIndex;\n    rect.name = 'item';\n\n    if (animationModel) {\n      var rectShape = rect.shape;\n      var animateProperty = isHorizontal ? 'height' : 'width';\n      rectShape[animateProperty] = 0;\n    }\n\n    return rect;\n  },\n  polar: function (seriesModel, data, newIndex, layout, isRadial, animationModel, axisModel, isUpdate, roundCap) {\n    var clockwise = layout.startAngle < layout.endAngle;\n    var ShapeClass = !isRadial && roundCap ? Sausage : Sector;\n    var sector = new ShapeClass({\n      shape: defaults({\n        clockwise: clockwise\n      }, layout),\n      z2: 1\n    });\n    sector.name = 'item';\n\n    if (animationModel) {\n      var sectorShape = sector.shape;\n      var animateProperty = isRadial ? 'r' : 'endAngle';\n      var animateTarget = {};\n      sectorShape[animateProperty] = isRadial ? 0 : layout.startAngle;\n      animateTarget[animateProperty] = layout[animateProperty];\n      (isUpdate ? updateProps : initProps)(sector, {\n        shape: animateTarget\n      }, animationModel);\n    }\n\n    return sector;\n  }\n};\n\nfunction shouldRealtimeSort(seriesModel, coordSys) {\n  var realtimeSortOption = seriesModel.get('realtimeSort', true);\n  var baseAxis = coordSys.getBaseAxis();\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (realtimeSortOption) {\n      if (baseAxis.type !== 'category') {\n        warn('`realtimeSort` will not work because this bar series is not based on a category axis.');\n      }\n\n      if (coordSys.type !== 'cartesian2d') {\n        warn('`realtimeSort` will not work because this bar series is not on cartesian2d.');\n      }\n    }\n  }\n\n  if (realtimeSortOption && baseAxis.type === 'category' && coordSys.type === 'cartesian2d') {\n    return {\n      baseAxis: baseAxis,\n      otherAxis: coordSys.getOtherAxis(baseAxis)\n    };\n  }\n}\n\nfunction updateRealtimeAnimation(realtimeSortCfg, seriesAnimationModel, el, layout, newIndex, isHorizontal, isUpdate, isChangeOrder) {\n  var seriesTarget;\n  var axisTarget;\n\n  if (isHorizontal) {\n    axisTarget = {\n      x: layout.x,\n      width: layout.width\n    };\n    seriesTarget = {\n      y: layout.y,\n      height: layout.height\n    };\n  } else {\n    axisTarget = {\n      y: layout.y,\n      height: layout.height\n    };\n    seriesTarget = {\n      x: layout.x,\n      width: layout.width\n    };\n  }\n\n  if (!isChangeOrder) {\n    (isUpdate ? updateProps : initProps)(el, {\n      shape: seriesTarget\n    }, seriesAnimationModel, newIndex, null);\n  }\n\n  var axisAnimationModel = seriesAnimationModel ? realtimeSortCfg.baseAxis.model : null;\n  (isUpdate ? updateProps : initProps)(el, {\n    shape: axisTarget\n  }, axisAnimationModel, newIndex);\n}\n\nvar getLayout = {\n  cartesian2d: function (data, dataIndex, itemModel) {\n    var layout = data.getItemLayout(dataIndex);\n    var fixedLineWidth = itemModel ? getLineWidth(itemModel, layout) : 0;\n    var signX = layout.width > 0 ? 1 : -1;\n    var signY = layout.height > 0 ? 1 : -1;\n    return {\n      x: layout.x + signX * fixedLineWidth / 2,\n      y: layout.y + signY * fixedLineWidth / 2,\n      width: layout.width - signX * fixedLineWidth,\n      height: layout.height - signY * fixedLineWidth\n    };\n  },\n  polar: function (data, dataIndex, itemModel) {\n    var layout = data.getItemLayout(dataIndex);\n    return {\n      cx: layout.cx,\n      cy: layout.cy,\n      r0: layout.r0,\n      r: layout.r,\n      startAngle: layout.startAngle,\n      endAngle: layout.endAngle\n    };\n  }\n};\n\nfunction isZeroOnPolar(layout) {\n  return layout.startAngle != null && layout.endAngle != null && layout.startAngle === layout.endAngle;\n}\n\nfunction updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontal, isPolar) {\n  var style = data.getItemVisual(dataIndex, 'style');\n\n  if (!isPolar) {\n    el.setShape('r', itemModel.get(BAR_BORDER_RADIUS_QUERY) || 0);\n  }\n\n  el.useStyle(style);\n  var cursorStyle = itemModel.getShallow('cursor');\n  cursorStyle && el.attr('cursor', cursorStyle);\n\n  if (!isPolar) {\n    var labelPositionOutside = isHorizontal ? layout.height > 0 ? 'bottom' : 'top' : layout.width > 0 ? 'left' : 'right';\n    var labelStatesModels = getLabelStatesModels(itemModel);\n    setLabelStyle(el, labelStatesModels, {\n      labelFetcher: seriesModel,\n      labelDataIndex: dataIndex,\n      defaultText: getDefaultLabel(seriesModel.getData(), dataIndex),\n      inheritColor: style.fill,\n      defaultOpacity: style.opacity,\n      defaultOutsidePosition: labelPositionOutside\n    });\n    var label = el.getTextContent();\n    setLabelValueAnimation(label, labelStatesModels, seriesModel.getRawValue(dataIndex), function (value) {\n      return getDefaultInterpolatedLabel(data, value);\n    });\n  }\n\n  var emphasisModel = itemModel.getModel(['emphasis']);\n  enableHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n  setStatesStylesFromModel(el, itemModel);\n\n  if (isZeroOnPolar(layout)) {\n    el.style.fill = 'none';\n    el.style.stroke = 'none';\n    each(el.states, function (state) {\n      if (state.style) {\n        state.style.fill = state.style.stroke = 'none';\n      }\n    });\n  }\n}\n\nfunction getLineWidth(itemModel, rawLayout) {\n  var lineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0;\n  var width = isNaN(rawLayout.width) ? Number.MAX_VALUE : Math.abs(rawLayout.width);\n  var height = isNaN(rawLayout.height) ? Number.MAX_VALUE : Math.abs(rawLayout.height);\n  return Math.min(lineWidth, width, height);\n}\n\nvar LagePathShape = function () {\n  function LagePathShape() {}\n\n  return LagePathShape;\n}();\n\nvar LargePath = function (_super) {\n  __extends(LargePath, _super);\n\n  function LargePath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'largeBar';\n    return _this;\n  }\n\n  ;\n\n  LargePath.prototype.getDefaultShape = function () {\n    return new LagePathShape();\n  };\n\n  LargePath.prototype.buildPath = function (ctx, shape) {\n    var points = shape.points;\n    var startPoint = this.__startPoint;\n    var baseDimIdx = this.__baseDimIdx;\n\n    for (var i = 0; i < points.length; i += 2) {\n      startPoint[baseDimIdx] = points[i + baseDimIdx];\n      ctx.moveTo(startPoint[0], startPoint[1]);\n      ctx.lineTo(points[i], points[i + 1]);\n    }\n  };\n\n  return LargePath;\n}(Path);\n\nfunction createLarge(seriesModel, group, incremental) {\n  var data = seriesModel.getData();\n  var startPoint = [];\n  var baseDimIdx = data.getLayout('valueAxisHorizontal') ? 1 : 0;\n  startPoint[1 - baseDimIdx] = data.getLayout('valueAxisStart');\n  var largeDataIndices = data.getLayout('largeDataIndices');\n  var barWidth = data.getLayout('barWidth');\n  var backgroundModel = seriesModel.getModel('backgroundStyle');\n  var drawBackground = seriesModel.get('showBackground', true);\n\n  if (drawBackground) {\n    var points = data.getLayout('largeBackgroundPoints');\n    var backgroundStartPoint = [];\n    backgroundStartPoint[1 - baseDimIdx] = data.getLayout('backgroundStart');\n    var bgEl = new LargePath({\n      shape: {\n        points: points\n      },\n      incremental: !!incremental,\n      silent: true,\n      z2: 0\n    });\n    bgEl.__startPoint = backgroundStartPoint;\n    bgEl.__baseDimIdx = baseDimIdx;\n    bgEl.__largeDataIndices = largeDataIndices;\n    bgEl.__barWidth = barWidth;\n    setLargeBackgroundStyle(bgEl, backgroundModel, data);\n    group.add(bgEl);\n  }\n\n  var el = new LargePath({\n    shape: {\n      points: data.getLayout('largePoints')\n    },\n    incremental: !!incremental\n  });\n  el.__startPoint = startPoint;\n  el.__baseDimIdx = baseDimIdx;\n  el.__largeDataIndices = largeDataIndices;\n  el.__barWidth = barWidth;\n  group.add(el);\n  setLargeStyle(el, seriesModel, data);\n  getECData(el).seriesIndex = seriesModel.seriesIndex;\n\n  if (!seriesModel.get('silent')) {\n    el.on('mousedown', largePathUpdateDataIndex);\n    el.on('mousemove', largePathUpdateDataIndex);\n  }\n}\n\nvar largePathUpdateDataIndex = throttle(function (event) {\n  var largePath = this;\n  var dataIndex = largePathFindDataIndex(largePath, event.offsetX, event.offsetY);\n  getECData(largePath).dataIndex = dataIndex >= 0 ? dataIndex : null;\n}, 30, false);\n\nfunction largePathFindDataIndex(largePath, x, y) {\n  var baseDimIdx = largePath.__baseDimIdx;\n  var valueDimIdx = 1 - baseDimIdx;\n  var points = largePath.shape.points;\n  var largeDataIndices = largePath.__largeDataIndices;\n  var barWidthHalf = Math.abs(largePath.__barWidth / 2);\n  var startValueVal = largePath.__startPoint[valueDimIdx];\n  _eventPos[0] = x;\n  _eventPos[1] = y;\n  var pointerBaseVal = _eventPos[baseDimIdx];\n  var pointerValueVal = _eventPos[1 - baseDimIdx];\n  var baseLowerBound = pointerBaseVal - barWidthHalf;\n  var baseUpperBound = pointerBaseVal + barWidthHalf;\n\n  for (var i = 0, len = points.length / 2; i < len; i++) {\n    var ii = i * 2;\n    var barBaseVal = points[ii + baseDimIdx];\n    var barValueVal = points[ii + valueDimIdx];\n\n    if (barBaseVal >= baseLowerBound && barBaseVal <= baseUpperBound && (startValueVal <= barValueVal ? pointerValueVal >= startValueVal && pointerValueVal <= barValueVal : pointerValueVal >= barValueVal && pointerValueVal <= startValueVal)) {\n      return largeDataIndices[i];\n    }\n  }\n\n  return -1;\n}\n\nfunction setLargeStyle(el, seriesModel, data) {\n  var globalStyle = data.getVisual('style');\n  el.useStyle(extend({}, globalStyle));\n  el.style.fill = null;\n  el.style.stroke = globalStyle.fill;\n  el.style.lineWidth = data.getLayout('barWidth');\n}\n\nfunction setLargeBackgroundStyle(el, backgroundModel, data) {\n  var borderColor = backgroundModel.get('borderColor') || backgroundModel.get('color');\n  var itemStyle = backgroundModel.getItemStyle();\n  el.useStyle(itemStyle);\n  el.style.fill = null;\n  el.style.stroke = borderColor;\n  el.style.lineWidth = data.getLayout('barWidth');\n}\n\nfunction createBackgroundShape(isHorizontalOrRadial, layout, coord) {\n  if (isCoordinateSystemType(coord, 'cartesian2d')) {\n    var rectShape = layout;\n    var coordLayout = coord.getArea();\n    return {\n      x: isHorizontalOrRadial ? rectShape.x : coordLayout.x,\n      y: isHorizontalOrRadial ? coordLayout.y : rectShape.y,\n      width: isHorizontalOrRadial ? rectShape.width : coordLayout.width,\n      height: isHorizontalOrRadial ? coordLayout.height : rectShape.height\n    };\n  } else {\n    var coordLayout = coord.getArea();\n    var sectorShape = layout;\n    return {\n      cx: coordLayout.cx,\n      cy: coordLayout.cy,\n      r0: isHorizontalOrRadial ? coordLayout.r0 : sectorShape.r0,\n      r: isHorizontalOrRadial ? coordLayout.r : sectorShape.r,\n      startAngle: isHorizontalOrRadial ? sectorShape.startAngle : 0,\n      endAngle: isHorizontalOrRadial ? sectorShape.endAngle : Math.PI * 2\n    };\n  }\n}\n\nfunction createBackgroundEl(coord, isHorizontalOrRadial, layout) {\n  var ElementClz = coord.type === 'polar' ? Sector : Rect;\n  return new ElementClz({\n    shape: createBackgroundShape(isHorizontalOrRadial, layout, coord),\n    silent: true,\n    z2: 0\n  });\n}\n\nexport default BarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { layout, largeLayout } from '../../layout/barGrid';\nimport dataSample from '../../processor/dataSample';\nimport BarSeries from './BarSeries';\nimport BarView from './BarView';\nexport function install(registers) {\n  registers.registerChartView(BarView);\n  registers.registerSeriesModel(BarSeries);\n  registers.registerLayout(registers.PRIORITY.VISUAL.LAYOUT, zrUtil.curry(layout, 'bar'));\n  registers.registerLayout(registers.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT, largeLayout);\n  registers.registerVisual({\n    seriesType: 'bar',\n    reset: function (seriesModel) {\n      seriesModel.getData().setVisual('legendSymbol', 'roundRect');\n    }\n  });\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, dataSample('bar'));\n  registers.registerAction({\n    type: 'changeAxisOrder',\n    event: 'changeAxisOrder',\n    update: 'update'\n  }, function (payload, ecModel) {\n    var componentType = payload.componentType || 'series';\n    ecModel.eachComponent({\n      mainType: componentType,\n      query: payload\n    }, function (componentModel) {\n      if (payload.sortInfo) {\n        componentModel.axis.setCategorySortInfo(payload.sortInfo);\n      }\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parsePercent, linearMap } from '../../util/number';\nimport * as layout from '../../util/layout';\nimport * as zrUtil from 'zrender/lib/core/util';\nvar PI2 = Math.PI * 2;\nvar RADIAN = Math.PI / 180;\n\nfunction getViewRect(seriesModel, api) {\n  return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n}\n\nexport default function pieLayout(seriesType, ecModel, api) {\n  ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n    var data = seriesModel.getData();\n    var valueDim = data.mapDimension('value');\n    var viewRect = getViewRect(seriesModel, api);\n    var center = seriesModel.get('center');\n    var radius = seriesModel.get('radius');\n\n    if (!zrUtil.isArray(radius)) {\n      radius = [0, radius];\n    }\n\n    if (!zrUtil.isArray(center)) {\n      center = [center, center];\n    }\n\n    var width = parsePercent(viewRect.width, api.getWidth());\n    var height = parsePercent(viewRect.height, api.getHeight());\n    var size = Math.min(width, height);\n    var cx = parsePercent(center[0], width) + viewRect.x;\n    var cy = parsePercent(center[1], height) + viewRect.y;\n    var r0 = parsePercent(radius[0], size / 2);\n    var r = parsePercent(radius[1], size / 2);\n    var startAngle = -seriesModel.get('startAngle') * RADIAN;\n    var minAngle = seriesModel.get('minAngle') * RADIAN;\n    var validDataCount = 0;\n    data.each(valueDim, function (value) {\n      !isNaN(value) && validDataCount++;\n    });\n    var sum = data.getSum(valueDim);\n    var unitRadian = Math.PI / (sum || validDataCount) * 2;\n    var clockwise = seriesModel.get('clockwise');\n    var roseType = seriesModel.get('roseType');\n    var stillShowZeroSum = seriesModel.get('stillShowZeroSum');\n    var extent = data.getDataExtent(valueDim);\n    extent[0] = 0;\n    var restAngle = PI2;\n    var valueSumLargerThanMinAngle = 0;\n    var currentAngle = startAngle;\n    var dir = clockwise ? 1 : -1;\n    data.setLayout({\n      viewRect: viewRect,\n      r: r\n    });\n    data.each(valueDim, function (value, idx) {\n      var angle;\n\n      if (isNaN(value)) {\n        data.setItemLayout(idx, {\n          angle: NaN,\n          startAngle: NaN,\n          endAngle: NaN,\n          clockwise: clockwise,\n          cx: cx,\n          cy: cy,\n          r0: r0,\n          r: roseType ? NaN : r\n        });\n        return;\n      }\n\n      if (roseType !== 'area') {\n        angle = sum === 0 && stillShowZeroSum ? unitRadian : value * unitRadian;\n      } else {\n        angle = PI2 / validDataCount;\n      }\n\n      if (angle < minAngle) {\n        angle = minAngle;\n        restAngle -= minAngle;\n      } else {\n        valueSumLargerThanMinAngle += value;\n      }\n\n      var endAngle = currentAngle + dir * angle;\n      data.setItemLayout(idx, {\n        angle: angle,\n        startAngle: currentAngle,\n        endAngle: endAngle,\n        clockwise: clockwise,\n        cx: cx,\n        cy: cy,\n        r0: r0,\n        r: roseType ? linearMap(value, extent, [r0, r]) : r\n      });\n      currentAngle = endAngle;\n    });\n\n    if (restAngle < PI2 && validDataCount) {\n      if (restAngle <= 1e-3) {\n        var angle_1 = PI2 / validDataCount;\n        data.each(valueDim, function (value, idx) {\n          if (!isNaN(value)) {\n            var layout_1 = data.getItemLayout(idx);\n            layout_1.angle = angle_1;\n            layout_1.startAngle = startAngle + dir * idx * angle_1;\n            layout_1.endAngle = startAngle + dir * (idx + 1) * angle_1;\n          }\n        });\n      } else {\n        unitRadian = restAngle / valueSumLargerThanMinAngle;\n        currentAngle = startAngle;\n        data.each(valueDim, function (value, idx) {\n          if (!isNaN(value)) {\n            var layout_2 = data.getItemLayout(idx);\n            var angle = layout_2.angle === minAngle ? minAngle : value * unitRadian;\n            layout_2.startAngle = currentAngle;\n            layout_2.endAngle = currentAngle + dir * angle;\n            currentAngle += dir * angle;\n          }\n        });\n      }\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function dataFilter(seriesType) {\n  return {\n    seriesType: seriesType,\n    reset: function (seriesModel, ecModel) {\n      var legendModels = ecModel.findComponents({\n        mainType: 'legend'\n      });\n\n      if (!legendModels || !legendModels.length) {\n        return;\n      }\n\n      var data = seriesModel.getData();\n      data.filterSelf(function (idx) {\n        var name = data.getName(idx);\n\n        for (var i = 0; i < legendModels.length; i++) {\n          if (!legendModels[i].isSelected(name)) {\n            return false;\n          }\n        }\n\n        return true;\n      });\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parsePercent } from '../../util/number';\nimport { Point } from '../../util/graphic';\nimport { each } from 'zrender/lib/core/util';\nimport { limitTurnAngle, limitSurfaceAngle } from '../../label/labelGuideHelper';\nimport { shiftLayoutOnY } from '../../label/labelLayoutHelper';\nvar RADIAN = Math.PI / 180;\n\nfunction adjustSingleSide(list, cx, cy, r, dir, viewWidth, viewHeight, viewLeft, viewTop, farthestX) {\n  if (list.length < 2) {\n    return;\n  }\n\n  ;\n\n  function recalculateXOnSemiToAlignOnEllipseCurve(semi) {\n    var rB = semi.rB;\n    var rB2 = rB * rB;\n\n    for (var i = 0; i < semi.list.length; i++) {\n      var item = semi.list[i];\n      var dy = Math.abs(item.label.y - cy);\n      var rA = r + item.len;\n      var rA2 = rA * rA;\n      var dx = Math.sqrt((1 - Math.abs(dy * dy / rB2)) * rA2);\n      item.label.x = cx + (dx + item.len2) * dir;\n    }\n  }\n\n  function recalculateX(items) {\n    var topSemi = {\n      list: [],\n      maxY: 0\n    };\n    var bottomSemi = {\n      list: [],\n      maxY: 0\n    };\n\n    for (var i = 0; i < items.length; i++) {\n      if (items[i].labelAlignTo !== 'none') {\n        continue;\n      }\n\n      var item = items[i];\n      var semi = item.label.y > cy ? bottomSemi : topSemi;\n      var dy = Math.abs(item.label.y - cy);\n\n      if (dy > semi.maxY) {\n        var dx = item.label.x - cx - item.len2 * dir;\n        var rA = r + item.len;\n        var rB = dx < rA ? Math.sqrt(dy * dy / (1 - dx * dx / rA / rA)) : rA;\n        semi.rB = rB;\n        semi.maxY = dy;\n      }\n\n      semi.list.push(item);\n    }\n\n    recalculateXOnSemiToAlignOnEllipseCurve(topSemi);\n    recalculateXOnSemiToAlignOnEllipseCurve(bottomSemi);\n  }\n\n  var len = list.length;\n\n  for (var i = 0; i < len; i++) {\n    if (list[i].position === 'outer' && list[i].labelAlignTo === 'labelLine') {\n      var dx = list[i].label.x - farthestX;\n      list[i].linePoints[1][0] += dx;\n      list[i].label.x = farthestX;\n    }\n  }\n\n  if (shiftLayoutOnY(list, viewTop, viewTop + viewHeight)) {\n    recalculateX(list);\n  }\n}\n\nfunction avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop) {\n  var leftList = [];\n  var rightList = [];\n  var leftmostX = Number.MAX_VALUE;\n  var rightmostX = -Number.MAX_VALUE;\n\n  for (var i = 0; i < labelLayoutList.length; i++) {\n    var label = labelLayoutList[i].label;\n\n    if (isPositionCenter(labelLayoutList[i])) {\n      continue;\n    }\n\n    if (label.x < cx) {\n      leftmostX = Math.min(leftmostX, label.x);\n      leftList.push(labelLayoutList[i]);\n    } else {\n      rightmostX = Math.max(rightmostX, label.x);\n      rightList.push(labelLayoutList[i]);\n    }\n  }\n\n  adjustSingleSide(rightList, cx, cy, r, 1, viewWidth, viewHeight, viewLeft, viewTop, rightmostX);\n  adjustSingleSide(leftList, cx, cy, r, -1, viewWidth, viewHeight, viewLeft, viewTop, leftmostX);\n\n  for (var i = 0; i < labelLayoutList.length; i++) {\n    var layout = labelLayoutList[i];\n    var label = layout.label;\n\n    if (isPositionCenter(layout)) {\n      continue;\n    }\n\n    var linePoints = layout.linePoints;\n\n    if (linePoints) {\n      var isAlignToEdge = layout.labelAlignTo === 'edge';\n      var realTextWidth = layout.rect.width;\n      var targetTextWidth = void 0;\n\n      if (isAlignToEdge) {\n        if (label.x < cx) {\n          targetTextWidth = linePoints[2][0] - layout.labelDistance - viewLeft - layout.edgeDistance;\n        } else {\n          targetTextWidth = viewLeft + viewWidth - layout.edgeDistance - linePoints[2][0] - layout.labelDistance;\n        }\n      } else {\n        if (label.x < cx) {\n          targetTextWidth = label.x - viewLeft - layout.bleedMargin;\n        } else {\n          targetTextWidth = viewLeft + viewWidth - label.x - layout.bleedMargin;\n        }\n      }\n\n      if (targetTextWidth < layout.rect.width) {\n        layout.label.style.width = targetTextWidth;\n\n        if (layout.labelAlignTo === 'edge') {\n          realTextWidth = targetTextWidth;\n        }\n      }\n\n      var dist = linePoints[1][0] - linePoints[2][0];\n\n      if (isAlignToEdge) {\n        if (label.x < cx) {\n          linePoints[2][0] = viewLeft + layout.edgeDistance + realTextWidth + layout.labelDistance;\n        } else {\n          linePoints[2][0] = viewLeft + viewWidth - layout.edgeDistance - realTextWidth - layout.labelDistance;\n        }\n      } else {\n        if (label.x < cx) {\n          linePoints[2][0] = label.x + layout.labelDistance;\n        } else {\n          linePoints[2][0] = label.x - layout.labelDistance;\n        }\n\n        linePoints[1][0] = linePoints[2][0] + dist;\n      }\n\n      linePoints[1][1] = linePoints[2][1] = label.y;\n    }\n  }\n}\n\nfunction isPositionCenter(sectorShape) {\n  return sectorShape.position === 'center';\n}\n\nexport default function pieLabelLayout(seriesModel) {\n  var data = seriesModel.getData();\n  var labelLayoutList = [];\n  var cx;\n  var cy;\n  var hasLabelRotate = false;\n  var minShowLabelRadian = (seriesModel.get('minShowLabelAngle') || 0) * RADIAN;\n  var viewRect = data.getLayout('viewRect');\n  var r = data.getLayout('r');\n  var viewWidth = viewRect.width;\n  var viewLeft = viewRect.x;\n  var viewTop = viewRect.y;\n  var viewHeight = viewRect.height;\n\n  function setNotShow(el) {\n    el.ignore = true;\n  }\n\n  function isLabelShown(label) {\n    if (!label.ignore) {\n      return true;\n    }\n\n    for (var key in label.states) {\n      if (label.states[key].ignore === false) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  data.each(function (idx) {\n    var sector = data.getItemGraphicEl(idx);\n    var sectorShape = sector.shape;\n    var label = sector.getTextContent();\n    var labelLine = sector.getTextGuideLine();\n    var itemModel = data.getItemModel(idx);\n    var labelModel = itemModel.getModel('label');\n    var labelPosition = labelModel.get('position') || itemModel.get(['emphasis', 'label', 'position']);\n    var labelDistance = labelModel.get('distanceToLabelLine');\n    var labelAlignTo = labelModel.get('alignTo');\n    var edgeDistance = parsePercent(labelModel.get('edgeDistance'), viewWidth);\n    var bleedMargin = labelModel.get('bleedMargin');\n    var labelLineModel = itemModel.getModel('labelLine');\n    var labelLineLen = labelLineModel.get('length');\n    labelLineLen = parsePercent(labelLineLen, viewWidth);\n    var labelLineLen2 = labelLineModel.get('length2');\n    labelLineLen2 = parsePercent(labelLineLen2, viewWidth);\n\n    if (Math.abs(sectorShape.endAngle - sectorShape.startAngle) < minShowLabelRadian) {\n      each(label.states, setNotShow);\n      label.ignore = true;\n      return;\n    }\n\n    if (!isLabelShown(label)) {\n      return;\n    }\n\n    var midAngle = (sectorShape.startAngle + sectorShape.endAngle) / 2;\n    var nx = Math.cos(midAngle);\n    var ny = Math.sin(midAngle);\n    var textX;\n    var textY;\n    var linePoints;\n    var textAlign;\n    cx = sectorShape.cx;\n    cy = sectorShape.cy;\n    var isLabelInside = labelPosition === 'inside' || labelPosition === 'inner';\n\n    if (labelPosition === 'center') {\n      textX = sectorShape.cx;\n      textY = sectorShape.cy;\n      textAlign = 'center';\n    } else {\n      var x1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * nx : sectorShape.r * nx) + cx;\n      var y1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * ny : sectorShape.r * ny) + cy;\n      textX = x1 + nx * 3;\n      textY = y1 + ny * 3;\n\n      if (!isLabelInside) {\n        var x2 = x1 + nx * (labelLineLen + r - sectorShape.r);\n        var y2 = y1 + ny * (labelLineLen + r - sectorShape.r);\n        var x3 = x2 + (nx < 0 ? -1 : 1) * labelLineLen2;\n        var y3 = y2;\n\n        if (labelAlignTo === 'edge') {\n          textX = nx < 0 ? viewLeft + edgeDistance : viewLeft + viewWidth - edgeDistance;\n        } else {\n          textX = x3 + (nx < 0 ? -labelDistance : labelDistance);\n        }\n\n        textY = y3;\n        linePoints = [[x1, y1], [x2, y2], [x3, y3]];\n      }\n\n      textAlign = isLabelInside ? 'center' : labelAlignTo === 'edge' ? nx > 0 ? 'right' : 'left' : nx > 0 ? 'left' : 'right';\n    }\n\n    var labelRotate;\n    var rotate = labelModel.get('rotate');\n\n    if (typeof rotate === 'number') {\n      labelRotate = rotate * (Math.PI / 180);\n    } else {\n      labelRotate = rotate ? nx < 0 ? -midAngle + Math.PI : -midAngle : 0;\n    }\n\n    hasLabelRotate = !!labelRotate;\n    label.x = textX;\n    label.y = textY;\n    label.rotation = labelRotate;\n    label.setStyle({\n      verticalAlign: 'middle'\n    });\n\n    if (!isLabelInside) {\n      var textRect = label.getBoundingRect().clone();\n      textRect.applyTransform(label.getComputedTransform());\n      var margin = (label.style.margin || 0) + 2.1;\n      textRect.y -= margin / 2;\n      textRect.height += margin;\n      labelLayoutList.push({\n        label: label,\n        labelLine: labelLine,\n        position: labelPosition,\n        len: labelLineLen,\n        len2: labelLineLen2,\n        minTurnAngle: labelLineModel.get('minTurnAngle'),\n        maxSurfaceAngle: labelLineModel.get('maxSurfaceAngle'),\n        surfaceNormal: new Point(nx, ny),\n        linePoints: linePoints,\n        textAlign: textAlign,\n        labelDistance: labelDistance,\n        labelAlignTo: labelAlignTo,\n        edgeDistance: edgeDistance,\n        bleedMargin: bleedMargin,\n        rect: textRect\n      });\n    } else {\n      label.setStyle({\n        align: textAlign\n      });\n      var selectState = label.states.select;\n\n      if (selectState) {\n        selectState.x += label.x;\n        selectState.y += label.y;\n      }\n    }\n\n    sector.setTextConfig({\n      inside: isLabelInside\n    });\n  });\n\n  if (!hasLabelRotate && seriesModel.get('avoidLabelOverlap')) {\n    avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop);\n  }\n\n  for (var i = 0; i < labelLayoutList.length; i++) {\n    var layout = labelLayoutList[i];\n    var label = layout.label;\n    var labelLine = layout.labelLine;\n    var notShowLabel = isNaN(label.x) || isNaN(label.y);\n\n    if (label) {\n      label.setStyle({\n        align: layout.textAlign\n      });\n\n      if (notShowLabel) {\n        each(label.states, setNotShow);\n        label.ignore = true;\n      }\n\n      var selectState = label.states.select;\n\n      if (selectState) {\n        selectState.x += label.x;\n        selectState.y += label.y;\n      }\n    }\n\n    if (labelLine) {\n      var linePoints = layout.linePoints;\n\n      if (notShowLabel || !linePoints) {\n        each(labelLine.states, setNotShow);\n        labelLine.ignore = true;\n      } else {\n        limitTurnAngle(linePoints, layout.minTurnAngle);\n        limitSurfaceAngle(linePoints, layout.surfaceNormal, layout.maxSurfaceAngle);\n        labelLine.setShape({\n          points: linePoints\n        });\n        label.__hostTarget.textGuideLineConfig = {\n          anchor: new Point(linePoints[0][0], linePoints[0][1])\n        };\n      }\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isArray } from 'zrender/lib/core/util';\nimport { parsePercent } from 'zrender/lib/contain/text';\nexport function getSectorCornerRadius(model, shape) {\n  var cornerRadius = model.get('borderRadius');\n\n  if (cornerRadius == null) {\n    return null;\n  }\n\n  if (!isArray(cornerRadius)) {\n    cornerRadius = [cornerRadius, cornerRadius];\n  }\n\n  return {\n    innerCornerRadius: parsePercent(cornerRadius[0], shape.r0),\n    cornerRadius: parsePercent(cornerRadius[1], shape.r)\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __assign, __extends } from \"tslib\";\nimport { extend, retrieve3 } from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport ChartView from '../../view/Chart';\nimport labelLayout from './labelLayout';\nimport { setLabelLineStyle, getLabelLineStatesModels } from '../../label/labelGuideHelper';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { getSectorCornerRadius } from '../helper/pieHelper';\n\nvar PiePiece = function (_super) {\n  __extends(PiePiece, _super);\n\n  function PiePiece(data, idx, startAngle) {\n    var _this = _super.call(this) || this;\n\n    _this.z2 = 2;\n    var polyline = new graphic.Polyline();\n    var text = new graphic.Text();\n\n    _this.setTextGuideLine(polyline);\n\n    _this.setTextContent(text);\n\n    _this.updateData(data, idx, startAngle, true);\n\n    return _this;\n  }\n\n  PiePiece.prototype.updateData = function (data, idx, startAngle, firstCreate) {\n    var sector = this;\n    var seriesModel = data.hostModel;\n    var itemModel = data.getItemModel(idx);\n    var emphasisModel = itemModel.getModel('emphasis');\n    var layout = data.getItemLayout(idx);\n    var sectorShape = extend(getSectorCornerRadius(itemModel.getModel('itemStyle'), layout) || {}, layout);\n\n    if (firstCreate) {\n      sector.setShape(sectorShape);\n      var animationType = seriesModel.getShallow('animationType');\n\n      if (animationType === 'scale') {\n        sector.shape.r = layout.r0;\n        graphic.initProps(sector, {\n          shape: {\n            r: layout.r\n          }\n        }, seriesModel, idx);\n      } else {\n        if (startAngle != null) {\n          sector.setShape({\n            startAngle: startAngle,\n            endAngle: startAngle\n          });\n          graphic.initProps(sector, {\n            shape: {\n              startAngle: layout.startAngle,\n              endAngle: layout.endAngle\n            }\n          }, seriesModel, idx);\n        } else {\n          sector.shape.endAngle = layout.startAngle;\n          graphic.updateProps(sector, {\n            shape: {\n              endAngle: layout.endAngle\n            }\n          }, seriesModel, idx);\n        }\n      }\n    } else {\n      graphic.updateProps(sector, {\n        shape: sectorShape\n      }, seriesModel, idx);\n    }\n\n    sector.useStyle(data.getItemVisual(idx, 'style'));\n    setStatesStylesFromModel(sector, itemModel);\n    var midAngle = (layout.startAngle + layout.endAngle) / 2;\n    var offset = seriesModel.get('selectedOffset');\n    var dx = Math.cos(midAngle) * offset;\n    var dy = Math.sin(midAngle) * offset;\n    var cursorStyle = itemModel.getShallow('cursor');\n    cursorStyle && sector.attr('cursor', cursorStyle);\n\n    this._updateLabel(seriesModel, data, idx);\n\n    sector.ensureState('emphasis').shape = __assign({\n      r: layout.r + (emphasisModel.get('scale') ? emphasisModel.get('scaleSize') || 0 : 0)\n    }, getSectorCornerRadius(emphasisModel.getModel('itemStyle'), layout));\n    extend(sector.ensureState('select'), {\n      x: dx,\n      y: dy,\n      shape: getSectorCornerRadius(itemModel.getModel(['select', 'itemStyle']), layout)\n    });\n    extend(sector.ensureState('blur'), {\n      shape: getSectorCornerRadius(itemModel.getModel(['blur', 'itemStyle']), layout)\n    });\n    var labelLine = sector.getTextGuideLine();\n    var labelText = sector.getTextContent();\n    extend(labelLine.ensureState('select'), {\n      x: dx,\n      y: dy\n    });\n    extend(labelText.ensureState('select'), {\n      x: dx,\n      y: dy\n    });\n    enableHoverEmphasis(this, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n  };\n\n  PiePiece.prototype._updateLabel = function (seriesModel, data, idx) {\n    var sector = this;\n    var itemModel = data.getItemModel(idx);\n    var labelLineModel = itemModel.getModel('labelLine');\n    var style = data.getItemVisual(idx, 'style');\n    var visualColor = style && style.fill;\n    var visualOpacity = style && style.opacity;\n    setLabelStyle(sector, getLabelStatesModels(itemModel), {\n      labelFetcher: data.hostModel,\n      labelDataIndex: idx,\n      inheritColor: visualColor,\n      defaultOpacity: visualOpacity,\n      defaultText: seriesModel.getFormattedLabel(idx, 'normal') || data.getName(idx)\n    });\n    var labelText = sector.getTextContent();\n    sector.setTextConfig({\n      position: null,\n      rotation: null\n    });\n    labelText.attr({\n      z2: 10\n    });\n    setLabelLineStyle(this, getLabelLineStatesModels(itemModel), {\n      stroke: visualColor,\n      opacity: retrieve3(labelLineModel.get(['lineStyle', 'opacity']), visualOpacity, 1)\n    });\n  };\n\n  return PiePiece;\n}(graphic.Sector);\n\nvar PieView = function (_super) {\n  __extends(PieView, _super);\n\n  function PieView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.ignoreLabelLineUpdate = true;\n    return _this;\n  }\n\n  PieView.prototype.init = function () {\n    var sectorGroup = new graphic.Group();\n    this._sectorGroup = sectorGroup;\n  };\n\n  PieView.prototype.render = function (seriesModel, ecModel, api, payload) {\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var group = this.group;\n    var startAngle;\n\n    if (!oldData && data.count() > 0) {\n      var shape = data.getItemLayout(0);\n\n      for (var s = 1; isNaN(shape && shape.startAngle) && s < data.count(); ++s) {\n        shape = data.getItemLayout(s);\n      }\n\n      if (shape) {\n        startAngle = shape.startAngle;\n      }\n    }\n\n    data.diff(oldData).add(function (idx) {\n      var piePiece = new PiePiece(data, idx, startAngle);\n      data.setItemGraphicEl(idx, piePiece);\n      group.add(piePiece);\n    }).update(function (newIdx, oldIdx) {\n      var piePiece = oldData.getItemGraphicEl(oldIdx);\n      piePiece.updateData(data, newIdx, startAngle);\n      piePiece.off('click');\n      group.add(piePiece);\n      data.setItemGraphicEl(newIdx, piePiece);\n    }).remove(function (idx) {\n      var piePiece = oldData.getItemGraphicEl(idx);\n      graphic.removeElementWithFadeOut(piePiece, seriesModel, idx);\n    }).execute();\n    labelLayout(seriesModel);\n\n    if (seriesModel.get('animationTypeUpdate') !== 'expansion') {\n      this._data = data;\n    }\n  };\n\n  PieView.prototype.dispose = function () {};\n\n  PieView.prototype.containPoint = function (point, seriesModel) {\n    var data = seriesModel.getData();\n    var itemLayout = data.getItemLayout(0);\n\n    if (itemLayout) {\n      var dx = point[0] - itemLayout.cx;\n      var dy = point[1] - itemLayout.cy;\n      var radius = Math.sqrt(dx * dx + dy * dy);\n      return radius <= itemLayout.r && radius >= itemLayout.r0;\n    }\n  };\n\n  PieView.type = 'pie';\n  return PieView;\n}(ChartView);\n\nexport default PieView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport createDimensions from '../../data/helper/createDimensions';\nimport List from '../../data/List';\nimport { extend, isArray } from 'zrender/lib/core/util';\nexport default function createListSimply(seriesModel, opt, nameList) {\n  opt = isArray(opt) && {\n    coordDimensions: opt\n  } || extend({}, opt);\n  var source = seriesModel.getSource();\n  var dimensionsInfo = createDimensions(source, opt);\n  var list = new List(dimensionsInfo, seriesModel);\n  list.initData(source, nameList);\n  return list;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar LegendVisualProvider = function () {\n  function LegendVisualProvider(getDataWithEncodedVisual, getRawData) {\n    this._getDataWithEncodedVisual = getDataWithEncodedVisual;\n    this._getRawData = getRawData;\n  }\n\n  LegendVisualProvider.prototype.getAllNames = function () {\n    var rawData = this._getRawData();\n\n    return rawData.mapArray(rawData.getName);\n  };\n\n  LegendVisualProvider.prototype.containName = function (name) {\n    var rawData = this._getRawData();\n\n    return rawData.indexOfName(name) >= 0;\n  };\n\n  LegendVisualProvider.prototype.indexOfName = function (name) {\n    var dataWithEncodedVisual = this._getDataWithEncodedVisual();\n\n    return dataWithEncodedVisual.indexOfName(name);\n  };\n\n  LegendVisualProvider.prototype.getItemVisual = function (dataIndex, key) {\n    var dataWithEncodedVisual = this._getDataWithEncodedVisual();\n\n    return dataWithEncodedVisual.getItemVisual(dataIndex, key);\n  };\n\n  return LegendVisualProvider;\n}();\n\nexport default LegendVisualProvider;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListSimply from '../helper/createListSimply';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nimport { getPercentWithPrecision } from '../../util/number';\nimport { makeSeriesEncodeForNameBased } from '../../data/helper/sourceHelper';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider';\nimport SeriesModel from '../../model/Series';\n\nvar PieSeriesModel = function (_super) {\n  __extends(PieSeriesModel, _super);\n\n  function PieSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.useColorPaletteOnData = true;\n    return _this;\n  }\n\n  PieSeriesModel.prototype.init = function (option) {\n    _super.prototype.init.apply(this, arguments);\n\n    this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));\n\n    this._defaultLabelLine(option);\n  };\n\n  PieSeriesModel.prototype.mergeOption = function () {\n    _super.prototype.mergeOption.apply(this, arguments);\n  };\n\n  PieSeriesModel.prototype.getInitialData = function () {\n    return createListSimply(this, {\n      coordDimensions: ['value'],\n      encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)\n    });\n  };\n\n  PieSeriesModel.prototype.getDataParams = function (dataIndex) {\n    var data = this.getData();\n\n    var params = _super.prototype.getDataParams.call(this, dataIndex);\n\n    var valueList = [];\n    data.each(data.mapDimension('value'), function (value) {\n      valueList.push(value);\n    });\n    params.percent = getPercentWithPrecision(valueList, dataIndex, data.hostModel.get('percentPrecision'));\n    params.$vars.push('percent');\n    return params;\n  };\n\n  PieSeriesModel.prototype._defaultLabelLine = function (option) {\n    modelUtil.defaultEmphasis(option, 'labelLine', ['show']);\n    var labelLineNormalOpt = option.labelLine;\n    var labelLineEmphasisOpt = option.emphasis.labelLine;\n    labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show;\n    labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show;\n  };\n\n  PieSeriesModel.type = 'series.pie';\n  PieSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    center: ['50%', '50%'],\n    radius: [0, '75%'],\n    clockwise: true,\n    startAngle: 90,\n    minAngle: 0,\n    minShowLabelAngle: 0,\n    selectedOffset: 10,\n    percentPrecision: 2,\n    stillShowZeroSum: true,\n    left: 0,\n    top: 0,\n    right: 0,\n    bottom: 0,\n    width: null,\n    height: null,\n    label: {\n      rotate: 0,\n      show: true,\n      overflow: 'truncate',\n      position: 'outer',\n      alignTo: 'none',\n      edgeDistance: '25%',\n      bleedMargin: 10,\n      distanceToLabelLine: 5\n    },\n    labelLine: {\n      show: true,\n      length: 15,\n      length2: 15,\n      smooth: false,\n      minTurnAngle: 90,\n      maxSurfaceAngle: 90,\n      lineStyle: {\n        width: 1,\n        type: 'solid'\n      }\n    },\n    itemStyle: {\n      borderWidth: 1\n    },\n    labelLayout: {\n      hideOverlap: true\n    },\n    emphasis: {\n      scale: true,\n      scaleSize: 5\n    },\n    avoidLabelOverlap: true,\n    animationType: 'expansion',\n    animationDuration: 1000,\n    animationTypeUpdate: 'transition',\n    animationEasingUpdate: 'cubicInOut',\n    animationDurationUpdate: 500,\n    animationEasing: 'cubicInOut'\n  };\n  return PieSeriesModel;\n}(SeriesModel);\n\nexport default PieSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createLegacyDataSelectAction } from '../../legacy/dataSelectAction';\nimport pieLayout from '../pie/pieLayout';\nimport dataFilter from '../../processor/dataFilter';\nimport { curry } from 'zrender/lib/core/util';\nimport PieView from './PieView';\nimport PieSeriesModel from './PieSeries';\nexport function install(registers) {\n  registers.registerChartView(PieView);\n  registers.registerSeriesModel(PieSeriesModel);\n  createLegacyDataSelectAction('pie', registers.registerAction);\n  registers.registerLayout(curry(pieLayout, 'pie'));\n  registers.registerProcessor(dataFilter('pie'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListFromArray from '../helper/createListFromArray';\nimport SeriesModel from '../../model/Series';\n\nvar ScatterSeriesModel = function (_super) {\n  __extends(ScatterSeriesModel, _super);\n\n  function ScatterSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ScatterSeriesModel.type;\n    _this.hasSymbolVisual = true;\n    return _this;\n  }\n\n  ScatterSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: true\n    });\n  };\n\n  ScatterSeriesModel.prototype.getProgressive = function () {\n    var progressive = this.option.progressive;\n\n    if (progressive == null) {\n      return this.option.large ? 5e3 : this.get('progressive');\n    }\n\n    return progressive;\n  };\n\n  ScatterSeriesModel.prototype.getProgressiveThreshold = function () {\n    var progressiveThreshold = this.option.progressiveThreshold;\n\n    if (progressiveThreshold == null) {\n      return this.option.large ? 1e4 : this.get('progressiveThreshold');\n    }\n\n    return progressiveThreshold;\n  };\n\n  ScatterSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n    return selectors.point(data.getItemLayout(dataIndex));\n  };\n\n  ScatterSeriesModel.type = 'series.scatter';\n  ScatterSeriesModel.dependencies = ['grid', 'polar', 'geo', 'singleAxis', 'calendar'];\n  ScatterSeriesModel.defaultOption = {\n    coordinateSystem: 'cartesian2d',\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    symbolSize: 10,\n    large: false,\n    largeThreshold: 2000,\n    itemStyle: {\n      opacity: 0.8\n    },\n    emphasis: {\n      scale: true\n    },\n    clip: true,\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    }\n  };\n  return ScatterSeriesModel;\n}(SeriesModel);\n\nexport default ScatterSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { createSymbol } from '../../util/symbol';\nimport IncrementalDisplayable from 'zrender/lib/graphic/IncrementalDisplayable';\nimport { getECData } from '../../util/innerStore';\nvar BOOST_SIZE_THRESHOLD = 4;\n\nvar LargeSymbolPathShape = function () {\n  function LargeSymbolPathShape() {}\n\n  return LargeSymbolPathShape;\n}();\n\nvar LargeSymbolPath = function (_super) {\n  __extends(LargeSymbolPath, _super);\n\n  function LargeSymbolPath(opts) {\n    return _super.call(this, opts) || this;\n  }\n\n  LargeSymbolPath.prototype.getDefaultShape = function () {\n    return new LargeSymbolPathShape();\n  };\n\n  LargeSymbolPath.prototype.buildPath = function (path, shape) {\n    var points = shape.points;\n    var size = shape.size;\n    var symbolProxy = this.symbolProxy;\n    var symbolProxyShape = symbolProxy.shape;\n    var ctx = path.getContext ? path.getContext() : path;\n    var canBoost = ctx && size[0] < BOOST_SIZE_THRESHOLD;\n\n    if (canBoost) {\n      this._ctx = ctx;\n      return;\n    }\n\n    this._ctx = null;\n\n    for (var i = 0; i < points.length;) {\n      var x = points[i++];\n      var y = points[i++];\n\n      if (isNaN(x) || isNaN(y)) {\n        continue;\n      }\n\n      if (this.softClipShape && !this.softClipShape.contain(x, y)) {\n        continue;\n      }\n\n      symbolProxyShape.x = x - size[0] / 2;\n      symbolProxyShape.y = y - size[1] / 2;\n      symbolProxyShape.width = size[0];\n      symbolProxyShape.height = size[1];\n      symbolProxy.buildPath(path, symbolProxyShape, true);\n    }\n  };\n\n  LargeSymbolPath.prototype.afterBrush = function () {\n    var shape = this.shape;\n    var points = shape.points;\n    var size = shape.size;\n    var ctx = this._ctx;\n\n    if (!ctx) {\n      return;\n    }\n\n    for (var i = 0; i < points.length;) {\n      var x = points[i++];\n      var y = points[i++];\n\n      if (isNaN(x) || isNaN(y)) {\n        continue;\n      }\n\n      if (this.softClipShape && !this.softClipShape.contain(x, y)) {\n        continue;\n      }\n\n      ctx.fillRect(x - size[0] / 2, y - size[1] / 2, size[0], size[1]);\n    }\n  };\n\n  LargeSymbolPath.prototype.findDataIndex = function (x, y) {\n    var shape = this.shape;\n    var points = shape.points;\n    var size = shape.size;\n    var w = Math.max(size[0], 4);\n    var h = Math.max(size[1], 4);\n\n    for (var idx = points.length / 2 - 1; idx >= 0; idx--) {\n      var i = idx * 2;\n      var x0 = points[i] - w / 2;\n      var y0 = points[i + 1] - h / 2;\n\n      if (x >= x0 && y >= y0 && x <= x0 + w && y <= y0 + h) {\n        return idx;\n      }\n    }\n\n    return -1;\n  };\n\n  return LargeSymbolPath;\n}(graphic.Path);\n\nvar LargeSymbolDraw = function () {\n  function LargeSymbolDraw() {\n    this.group = new graphic.Group();\n  }\n\n  LargeSymbolDraw.prototype.isPersistent = function () {\n    return !this._incremental;\n  };\n\n  ;\n\n  LargeSymbolDraw.prototype.updateData = function (data, opt) {\n    this.group.removeAll();\n    var symbolEl = new LargeSymbolPath({\n      rectHover: true,\n      cursor: 'default'\n    });\n    symbolEl.setShape({\n      points: data.getLayout('points')\n    });\n\n    this._setCommon(symbolEl, data, false, opt);\n\n    this.group.add(symbolEl);\n    this._incremental = null;\n  };\n\n  LargeSymbolDraw.prototype.updateLayout = function (data) {\n    if (this._incremental) {\n      return;\n    }\n\n    var points = data.getLayout('points');\n    this.group.eachChild(function (child) {\n      if (child.startIndex != null) {\n        var len = (child.endIndex - child.startIndex) * 2;\n        var byteOffset = child.startIndex * 4 * 2;\n        points = new Float32Array(points.buffer, byteOffset, len);\n      }\n\n      child.setShape('points', points);\n    });\n  };\n\n  LargeSymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\n    this.group.removeAll();\n\n    this._clearIncremental();\n\n    if (data.count() > 2e6) {\n      if (!this._incremental) {\n        this._incremental = new IncrementalDisplayable({\n          silent: true\n        });\n      }\n\n      this.group.add(this._incremental);\n    } else {\n      this._incremental = null;\n    }\n  };\n\n  LargeSymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\n    var symbolEl;\n\n    if (this._incremental) {\n      symbolEl = new LargeSymbolPath();\n\n      this._incremental.addDisplayable(symbolEl, true);\n    } else {\n      symbolEl = new LargeSymbolPath({\n        rectHover: true,\n        cursor: 'default',\n        startIndex: taskParams.start,\n        endIndex: taskParams.end\n      });\n      symbolEl.incremental = true;\n      this.group.add(symbolEl);\n    }\n\n    symbolEl.setShape({\n      points: data.getLayout('points')\n    });\n\n    this._setCommon(symbolEl, data, !!this._incremental, opt);\n  };\n\n  LargeSymbolDraw.prototype._setCommon = function (symbolEl, data, isIncremental, opt) {\n    var hostModel = data.hostModel;\n    opt = opt || {};\n    var size = data.getVisual('symbolSize');\n    symbolEl.setShape('size', size instanceof Array ? size : [size, size]);\n    symbolEl.softClipShape = opt.clipShape || null;\n    symbolEl.symbolProxy = createSymbol(data.getVisual('symbol'), 0, 0, 0, 0);\n    symbolEl.setColor = symbolEl.symbolProxy.setColor;\n    var extrudeShadow = symbolEl.shape.size[0] < BOOST_SIZE_THRESHOLD;\n    symbolEl.useStyle(hostModel.getModel('itemStyle').getItemStyle(extrudeShadow ? ['color', 'shadowBlur', 'shadowColor'] : ['color']));\n    var globalStyle = data.getVisual('style');\n    var visualColor = globalStyle && globalStyle.fill;\n\n    if (visualColor) {\n      symbolEl.setColor(visualColor);\n    }\n\n    if (!isIncremental) {\n      var ecData_1 = getECData(symbolEl);\n      ecData_1.seriesIndex = hostModel.seriesIndex;\n      symbolEl.on('mousemove', function (e) {\n        ecData_1.dataIndex = null;\n        var dataIndex = symbolEl.findDataIndex(e.offsetX, e.offsetY);\n\n        if (dataIndex >= 0) {\n          ecData_1.dataIndex = dataIndex + (symbolEl.startIndex || 0);\n        }\n      });\n    }\n  };\n\n  LargeSymbolDraw.prototype.remove = function () {\n    this._clearIncremental();\n\n    this._incremental = null;\n    this.group.removeAll();\n  };\n\n  LargeSymbolDraw.prototype._clearIncremental = function () {\n    var incremental = this._incremental;\n\n    if (incremental) {\n      incremental.clearDisplaybles();\n    }\n  };\n\n  return LargeSymbolDraw;\n}();\n\nexport default LargeSymbolDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SymbolDraw from '../helper/SymbolDraw';\nimport LargeSymbolDraw from '../helper/LargeSymbolDraw';\nimport pointsLayout from '../../layout/points';\nimport ChartView from '../../view/Chart';\n\nvar ScatterView = function (_super) {\n  __extends(ScatterView, _super);\n\n  function ScatterView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ScatterView.type;\n    return _this;\n  }\n\n  ScatterView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n\n    var symbolDraw = this._updateSymbolDraw(data, seriesModel);\n\n    symbolDraw.updateData(data, {\n      clipShape: this._getClipShape(seriesModel)\n    });\n    this._finished = true;\n  };\n\n  ScatterView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n\n    var symbolDraw = this._updateSymbolDraw(data, seriesModel);\n\n    symbolDraw.incrementalPrepareUpdate(data);\n    this._finished = false;\n  };\n\n  ScatterView.prototype.incrementalRender = function (taskParams, seriesModel, ecModel) {\n    this._symbolDraw.incrementalUpdate(taskParams, seriesModel.getData(), {\n      clipShape: this._getClipShape(seriesModel)\n    });\n\n    this._finished = taskParams.end === seriesModel.getData().count();\n  };\n\n  ScatterView.prototype.updateTransform = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    this.group.dirty();\n\n    if (!this._finished || data.count() > 1e4 || !this._symbolDraw.isPersistent()) {\n      return {\n        update: true\n      };\n    } else {\n      var res = pointsLayout('').reset(seriesModel, ecModel, api);\n\n      if (res.progress) {\n        res.progress({\n          start: 0,\n          end: data.count(),\n          count: data.count()\n        }, data);\n      }\n\n      this._symbolDraw.updateLayout(data);\n    }\n  };\n\n  ScatterView.prototype._getClipShape = function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n    var clipArea = coordSys && coordSys.getArea && coordSys.getArea();\n    return seriesModel.get('clip', true) ? clipArea : null;\n  };\n\n  ScatterView.prototype._updateSymbolDraw = function (data, seriesModel) {\n    var symbolDraw = this._symbolDraw;\n    var pipelineContext = seriesModel.pipelineContext;\n    var isLargeDraw = pipelineContext.large;\n\n    if (!symbolDraw || isLargeDraw !== this._isLargeDraw) {\n      symbolDraw && symbolDraw.remove();\n      symbolDraw = this._symbolDraw = isLargeDraw ? new LargeSymbolDraw() : new SymbolDraw();\n      this._isLargeDraw = isLargeDraw;\n      this.group.removeAll();\n    }\n\n    this.group.add(symbolDraw.group);\n    return symbolDraw;\n  };\n\n  ScatterView.prototype.remove = function (ecModel, api) {\n    this._symbolDraw && this._symbolDraw.remove(true);\n    this._symbolDraw = null;\n  };\n\n  ScatterView.prototype.dispose = function () {};\n\n  ScatterView.type = 'scatter';\n  return ScatterView;\n}(ChartView);\n\nexport default ScatterView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\n\nvar GridModel = function (_super) {\n  __extends(GridModel, _super);\n\n  function GridModel() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  GridModel.type = 'grid';\n  GridModel.dependencies = ['xAxis', 'yAxis'];\n  GridModel.layoutMode = 'box';\n  GridModel.defaultOption = {\n    show: false,\n    zlevel: 0,\n    z: 0,\n    left: '10%',\n    top: 60,\n    right: '10%',\n    bottom: 70,\n    containLabel: false,\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderWidth: 1,\n    borderColor: '#ccc'\n  };\n  return GridModel;\n}(ComponentModel);\n\nexport default GridModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin';\nimport { SINGLE_REFERRING } from '../../util/model';\n\nvar CartesianAxisModel = function (_super) {\n  __extends(CartesianAxisModel, _super);\n\n  function CartesianAxisModel() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  CartesianAxisModel.prototype.getCoordSysModel = function () {\n    return this.getReferringComponents('grid', SINGLE_REFERRING).models[0];\n  };\n\n  CartesianAxisModel.type = 'cartesian2dAxis';\n  return CartesianAxisModel;\n}(ComponentModel);\n\nexport { CartesianAxisModel };\nzrUtil.mixin(CartesianAxisModel, AxisModelCommonMixin);\nexport default CartesianAxisModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar defaultOption = {\n  show: true,\n  zlevel: 0,\n  z: 0,\n  inverse: false,\n  name: '',\n  nameLocation: 'end',\n  nameRotate: null,\n  nameTruncate: {\n    maxWidth: null,\n    ellipsis: '...',\n    placeholder: '.'\n  },\n  nameTextStyle: {},\n  nameGap: 15,\n  silent: false,\n  triggerEvent: false,\n  tooltip: {\n    show: false\n  },\n  axisPointer: {},\n  axisLine: {\n    show: true,\n    onZero: true,\n    onZeroAxisIndex: null,\n    lineStyle: {\n      color: '#6E7079',\n      width: 1,\n      type: 'solid'\n    },\n    symbol: ['none', 'none'],\n    symbolSize: [10, 15]\n  },\n  axisTick: {\n    show: true,\n    inside: false,\n    length: 5,\n    lineStyle: {\n      width: 1\n    }\n  },\n  axisLabel: {\n    show: true,\n    inside: false,\n    rotate: 0,\n    showMinLabel: null,\n    showMaxLabel: null,\n    margin: 8,\n    fontSize: 12\n  },\n  splitLine: {\n    show: true,\n    lineStyle: {\n      color: ['#E0E6F1'],\n      width: 1,\n      type: 'solid'\n    }\n  },\n  splitArea: {\n    show: false,\n    areaStyle: {\n      color: ['rgba(250,250,250,0.2)', 'rgba(210,219,238,0.2)']\n    }\n  }\n};\nvar categoryAxis = zrUtil.merge({\n  boundaryGap: true,\n  deduplication: null,\n  splitLine: {\n    show: false\n  },\n  axisTick: {\n    alignWithLabel: false,\n    interval: 'auto'\n  },\n  axisLabel: {\n    interval: 'auto'\n  }\n}, defaultOption);\nvar valueAxis = zrUtil.merge({\n  boundaryGap: [0, 0],\n  axisLine: {\n    show: 'auto'\n  },\n  axisTick: {\n    show: 'auto'\n  },\n  splitNumber: 5,\n  minorTick: {\n    show: false,\n    splitNumber: 5,\n    length: 3,\n    lineStyle: {}\n  },\n  minorSplitLine: {\n    show: false,\n    lineStyle: {\n      color: '#F4F7FD',\n      width: 1\n    }\n  }\n}, defaultOption);\nvar timeAxis = zrUtil.merge({\n  scale: true,\n  splitNumber: 6,\n  axisLabel: {\n    showMinLabel: false,\n    showMaxLabel: false,\n    rich: {\n      primary: {\n        fontWeight: 'bold'\n      }\n    }\n  },\n  splitLine: {\n    show: false\n  }\n}, valueAxis);\nvar logAxis = zrUtil.defaults({\n  scale: true,\n  logBase: 10\n}, valueAxis);\nexport default {\n  category: categoryAxis,\n  value: valueAxis,\n  time: timeAxis,\n  log: logAxis\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport var AXIS_TYPES = {\n  value: 1,\n  category: 1,\n  time: 1,\n  log: 1\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport axisDefault from './axisDefault';\nimport { getLayoutParams, mergeLayoutParam, fetchLayoutMode } from '../util/layout';\nimport OrdinalMeta from '../data/OrdinalMeta';\nimport { AXIS_TYPES } from './axisCommonTypes';\nimport { each, merge } from 'zrender/lib/core/util';\nexport default function axisModelCreator(registers, axisName, BaseAxisModelClass, extraDefaultOption) {\n  each(AXIS_TYPES, function (v, axisType) {\n    var defaultOption = merge(merge({}, axisDefault[axisType], true), extraDefaultOption, true);\n\n    var AxisModel = function (_super) {\n      __extends(AxisModel, _super);\n\n      function AxisModel() {\n        var args = [];\n\n        for (var _i = 0; _i < arguments.length; _i++) {\n          args[_i] = arguments[_i];\n        }\n\n        var _this = _super.apply(this, args) || this;\n\n        _this.type = axisName + 'Axis.' + axisType;\n        return _this;\n      }\n\n      AxisModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n        var layoutMode = fetchLayoutMode(this);\n        var inputPositionParams = layoutMode ? getLayoutParams(option) : {};\n        var themeModel = ecModel.getTheme();\n        merge(option, themeModel.get(axisType + 'Axis'));\n        merge(option, this.getDefaultOption());\n        option.type = getAxisType(option);\n\n        if (layoutMode) {\n          mergeLayoutParam(option, inputPositionParams, layoutMode);\n        }\n      };\n\n      AxisModel.prototype.optionUpdated = function () {\n        var thisOption = this.option;\n\n        if (thisOption.type === 'category') {\n          this.__ordinalMeta = OrdinalMeta.createByAxisModel(this);\n        }\n      };\n\n      AxisModel.prototype.getCategories = function (rawData) {\n        var option = this.option;\n\n        if (option.type === 'category') {\n          if (rawData) {\n            return option.data;\n          }\n\n          return this.__ordinalMeta.categories;\n        }\n      };\n\n      AxisModel.prototype.getOrdinalMeta = function () {\n        return this.__ordinalMeta;\n      };\n\n      AxisModel.type = axisName + 'Axis.' + axisType;\n      AxisModel.defaultOption = defaultOption;\n      return AxisModel;\n    }(BaseAxisModelClass);\n\n    registers.registerComponentModel(AxisModel);\n  });\n  registers.registerSubTypeDefaulter(axisName + 'Axis', getAxisType);\n}\n\nfunction getAxisType(option) {\n  return option.type || (option.data ? 'category' : 'value');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nvar Cartesian = function () {\n  function Cartesian(name) {\n    this.type = 'cartesian';\n    this._dimList = [];\n    this._axes = {};\n    this.name = name || '';\n  }\n\n  Cartesian.prototype.getAxis = function (dim) {\n    return this._axes[dim];\n  };\n\n  Cartesian.prototype.getAxes = function () {\n    return zrUtil.map(this._dimList, function (dim) {\n      return this._axes[dim];\n    }, this);\n  };\n\n  Cartesian.prototype.getAxesByScale = function (scaleType) {\n    scaleType = scaleType.toLowerCase();\n    return zrUtil.filter(this.getAxes(), function (axis) {\n      return axis.scale.type === scaleType;\n    });\n  };\n\n  Cartesian.prototype.addAxis = function (axis) {\n    var dim = axis.dim;\n    this._axes[dim] = axis;\n\n    this._dimList.push(dim);\n  };\n\n  return Cartesian;\n}();\n\n;\nexport default Cartesian;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport Cartesian from './Cartesian';\nimport { invert } from 'zrender/lib/core/matrix';\nimport { applyTransform } from 'zrender/lib/core/vector';\nexport var cartesian2DDimensions = ['x', 'y'];\n\nfunction canCalculateAffineTransform(scale) {\n  return scale.type === 'interval' || scale.type === 'time';\n}\n\nvar Cartesian2D = function (_super) {\n  __extends(Cartesian2D, _super);\n\n  function Cartesian2D() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'cartesian2d';\n    _this.dimensions = cartesian2DDimensions;\n    return _this;\n  }\n\n  Cartesian2D.prototype.calcAffineTransform = function () {\n    this._transform = this._invTransform = null;\n    var xAxisScale = this.getAxis('x').scale;\n    var yAxisScale = this.getAxis('y').scale;\n\n    if (!canCalculateAffineTransform(xAxisScale) || !canCalculateAffineTransform(yAxisScale)) {\n      return;\n    }\n\n    var xScaleExtent = xAxisScale.getExtent();\n    var yScaleExtent = yAxisScale.getExtent();\n    var start = this.dataToPoint([xScaleExtent[0], yScaleExtent[0]]);\n    var end = this.dataToPoint([xScaleExtent[1], yScaleExtent[1]]);\n    var xScaleSpan = xScaleExtent[1] - xScaleExtent[0];\n    var yScaleSpan = yScaleExtent[1] - yScaleExtent[0];\n\n    if (!xScaleSpan || !yScaleSpan) {\n      return;\n    }\n\n    var scaleX = (end[0] - start[0]) / xScaleSpan;\n    var scaleY = (end[1] - start[1]) / yScaleSpan;\n    var translateX = start[0] - xScaleExtent[0] * scaleX;\n    var translateY = start[1] - yScaleExtent[0] * scaleY;\n    var m = this._transform = [scaleX, 0, 0, scaleY, translateX, translateY];\n    this._invTransform = invert([], m);\n  };\n\n  Cartesian2D.prototype.getBaseAxis = function () {\n    return this.getAxesByScale('ordinal')[0] || this.getAxesByScale('time')[0] || this.getAxis('x');\n  };\n\n  Cartesian2D.prototype.containPoint = function (point) {\n    var axisX = this.getAxis('x');\n    var axisY = this.getAxis('y');\n    return axisX.contain(axisX.toLocalCoord(point[0])) && axisY.contain(axisY.toLocalCoord(point[1]));\n  };\n\n  Cartesian2D.prototype.containData = function (data) {\n    return this.getAxis('x').containData(data[0]) && this.getAxis('y').containData(data[1]);\n  };\n\n  Cartesian2D.prototype.dataToPoint = function (data, reserved, out) {\n    out = out || [];\n    var xVal = data[0];\n    var yVal = data[1];\n\n    if (this._transform && xVal != null && isFinite(xVal) && yVal != null && isFinite(yVal)) {\n      return applyTransform(out, data, this._transform);\n    }\n\n    var xAxis = this.getAxis('x');\n    var yAxis = this.getAxis('y');\n    out[0] = xAxis.toGlobalCoord(xAxis.dataToCoord(xVal));\n    out[1] = yAxis.toGlobalCoord(yAxis.dataToCoord(yVal));\n    return out;\n  };\n\n  Cartesian2D.prototype.clampData = function (data, out) {\n    var xScale = this.getAxis('x').scale;\n    var yScale = this.getAxis('y').scale;\n    var xAxisExtent = xScale.getExtent();\n    var yAxisExtent = yScale.getExtent();\n    var x = xScale.parse(data[0]);\n    var y = yScale.parse(data[1]);\n    out = out || [];\n    out[0] = Math.min(Math.max(Math.min(xAxisExtent[0], xAxisExtent[1]), x), Math.max(xAxisExtent[0], xAxisExtent[1]));\n    out[1] = Math.min(Math.max(Math.min(yAxisExtent[0], yAxisExtent[1]), y), Math.max(yAxisExtent[0], yAxisExtent[1]));\n    return out;\n  };\n\n  Cartesian2D.prototype.pointToData = function (point, out) {\n    out = out || [];\n\n    if (this._invTransform) {\n      return applyTransform(out, point, this._invTransform);\n    }\n\n    var xAxis = this.getAxis('x');\n    var yAxis = this.getAxis('y');\n    out[0] = xAxis.coordToData(xAxis.toLocalCoord(point[0]));\n    out[1] = yAxis.coordToData(yAxis.toLocalCoord(point[1]));\n    return out;\n  };\n\n  Cartesian2D.prototype.getOtherAxis = function (axis) {\n    return this.getAxis(axis.dim === 'x' ? 'y' : 'x');\n  };\n\n  Cartesian2D.prototype.getArea = function () {\n    var xExtent = this.getAxis('x').getGlobalExtent();\n    var yExtent = this.getAxis('y').getGlobalExtent();\n    var x = Math.min(xExtent[0], xExtent[1]);\n    var y = Math.min(yExtent[0], yExtent[1]);\n    var width = Math.max(xExtent[0], xExtent[1]) - x;\n    var height = Math.max(yExtent[0], yExtent[1]) - y;\n    return new BoundingRect(x, y, width, height);\n  };\n\n  return Cartesian2D;\n}(Cartesian);\n\n;\nexport default Cartesian2D;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis';\n\nvar Axis2D = function (_super) {\n  __extends(Axis2D, _super);\n\n  function Axis2D(dim, scale, coordExtent, axisType, position) {\n    var _this = _super.call(this, dim, scale, coordExtent) || this;\n\n    _this.index = 0;\n    _this.type = axisType || 'value';\n    _this.position = position || 'bottom';\n    return _this;\n  }\n\n  Axis2D.prototype.isHorizontal = function () {\n    var position = this.position;\n    return position === 'top' || position === 'bottom';\n  };\n\n  Axis2D.prototype.getGlobalExtent = function (asc) {\n    var ret = this.getExtent();\n    ret[0] = this.toGlobalCoord(ret[0]);\n    ret[1] = this.toGlobalCoord(ret[1]);\n    asc && ret[0] > ret[1] && ret.reverse();\n    return ret;\n  };\n\n  Axis2D.prototype.pointToData = function (point, clamp) {\n    return this.coordToData(this.toLocalCoord(point[this.dim === 'x' ? 0 : 1]), clamp);\n  };\n\n  Axis2D.prototype.setCategorySortInfo = function (info) {\n    if (this.type !== 'category') {\n      return false;\n    }\n\n    this.model.option.categorySortInfo = info;\n    this.scale.setSortInfo(info);\n  };\n\n  return Axis2D;\n}(Axis);\n\nexport default Axis2D;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { SINGLE_REFERRING } from '../../util/model';\nexport function layout(gridModel, axisModel, opt) {\n  opt = opt || {};\n  var grid = gridModel.coordinateSystem;\n  var axis = axisModel.axis;\n  var layout = {};\n  var otherAxisOnZeroOf = axis.getAxesOnZeroOf()[0];\n  var rawAxisPosition = axis.position;\n  var axisPosition = otherAxisOnZeroOf ? 'onZero' : rawAxisPosition;\n  var axisDim = axis.dim;\n  var rect = grid.getRect();\n  var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height];\n  var idx = {\n    left: 0,\n    right: 1,\n    top: 0,\n    bottom: 1,\n    onZero: 2\n  };\n  var axisOffset = axisModel.get('offset') || 0;\n  var posBound = axisDim === 'x' ? [rectBound[2] - axisOffset, rectBound[3] + axisOffset] : [rectBound[0] - axisOffset, rectBound[1] + axisOffset];\n\n  if (otherAxisOnZeroOf) {\n    var onZeroCoord = otherAxisOnZeroOf.toGlobalCoord(otherAxisOnZeroOf.dataToCoord(0));\n    posBound[idx.onZero] = Math.max(Math.min(onZeroCoord, posBound[1]), posBound[0]);\n  }\n\n  layout.position = [axisDim === 'y' ? posBound[idx[axisPosition]] : rectBound[0], axisDim === 'x' ? posBound[idx[axisPosition]] : rectBound[3]];\n  layout.rotation = Math.PI / 2 * (axisDim === 'x' ? 0 : 1);\n  var dirMap = {\n    top: -1,\n    bottom: 1,\n    left: -1,\n    right: 1\n  };\n  layout.labelDirection = layout.tickDirection = layout.nameDirection = dirMap[rawAxisPosition];\n  layout.labelOffset = otherAxisOnZeroOf ? posBound[idx[rawAxisPosition]] - posBound[idx.onZero] : 0;\n\n  if (axisModel.get(['axisTick', 'inside'])) {\n    layout.tickDirection = -layout.tickDirection;\n  }\n\n  if (zrUtil.retrieve(opt.labelInside, axisModel.get(['axisLabel', 'inside']))) {\n    layout.labelDirection = -layout.labelDirection;\n  }\n\n  var labelRotate = axisModel.get(['axisLabel', 'rotate']);\n  layout.labelRotate = axisPosition === 'top' ? -labelRotate : labelRotate;\n  layout.z2 = 1;\n  return layout;\n}\nexport function isCartesian2DSeries(seriesModel) {\n  return seriesModel.get('coordinateSystem') === 'cartesian2d';\n}\nexport function findAxisModels(seriesModel) {\n  var axisModelMap = {\n    xAxisModel: null,\n    yAxisModel: null\n  };\n  zrUtil.each(axisModelMap, function (v, key) {\n    var axisType = key.replace(/Model$/, '');\n    var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!axisModel) {\n        throw new Error(axisType + ' \"' + zrUtil.retrieve3(seriesModel.get(axisType + 'Index'), seriesModel.get(axisType + 'Id'), 0) + '\" not found');\n      }\n    }\n\n    axisModelMap[key] = axisModel;\n  });\n  return axisModelMap;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isObject, each, indexOf, retrieve3 } from 'zrender/lib/core/util';\nimport { getLayoutRect } from '../../util/layout';\nimport { createScaleByModel, ifAxisCrossZero, niceScaleExtent, estimateLabelUnionRect, getDataDimensionsOnAxis } from '../../coord/axisHelper';\nimport Cartesian2D, { cartesian2DDimensions } from './Cartesian2D';\nimport Axis2D from './Axis2D';\nimport { SINGLE_REFERRING } from '../../util/model';\nimport { isCartesian2DSeries, findAxisModels } from './cartesianAxisHelper';\n\nvar Grid = function () {\n  function Grid(gridModel, ecModel, api) {\n    this.type = 'grid';\n    this._coordsMap = {};\n    this._coordsList = [];\n    this._axesMap = {};\n    this._axesList = [];\n    this.axisPointerEnabled = true;\n    this.dimensions = cartesian2DDimensions;\n\n    this._initCartesian(gridModel, ecModel, api);\n\n    this.model = gridModel;\n  }\n\n  Grid.prototype.getRect = function () {\n    return this._rect;\n  };\n\n  Grid.prototype.update = function (ecModel, api) {\n    var axesMap = this._axesMap;\n\n    this._updateScale(ecModel, this.model);\n\n    each(axesMap.x, function (xAxis) {\n      niceScaleExtent(xAxis.scale, xAxis.model);\n    });\n    each(axesMap.y, function (yAxis) {\n      niceScaleExtent(yAxis.scale, yAxis.model);\n    });\n    var onZeroRecords = {};\n    each(axesMap.x, function (xAxis) {\n      fixAxisOnZero(axesMap, 'y', xAxis, onZeroRecords);\n    });\n    each(axesMap.y, function (yAxis) {\n      fixAxisOnZero(axesMap, 'x', yAxis, onZeroRecords);\n    });\n    this.resize(this.model, api);\n  };\n\n  Grid.prototype.resize = function (gridModel, api, ignoreContainLabel) {\n    var boxLayoutParams = gridModel.getBoxLayoutParams();\n    var isContainLabel = !ignoreContainLabel && gridModel.get('containLabel');\n    var gridRect = getLayoutRect(boxLayoutParams, {\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n    this._rect = gridRect;\n    var axesList = this._axesList;\n    adjustAxes();\n\n    if (isContainLabel) {\n      each(axesList, function (axis) {\n        if (!axis.model.get(['axisLabel', 'inside'])) {\n          var labelUnionRect = estimateLabelUnionRect(axis);\n\n          if (labelUnionRect) {\n            var dim = axis.isHorizontal() ? 'height' : 'width';\n            var margin = axis.model.get(['axisLabel', 'margin']);\n            gridRect[dim] -= labelUnionRect[dim] + margin;\n\n            if (axis.position === 'top') {\n              gridRect.y += labelUnionRect.height + margin;\n            } else if (axis.position === 'left') {\n              gridRect.x += labelUnionRect.width + margin;\n            }\n          }\n        }\n      });\n      adjustAxes();\n    }\n\n    each(this._coordsList, function (coord) {\n      coord.calcAffineTransform();\n    });\n\n    function adjustAxes() {\n      each(axesList, function (axis) {\n        var isHorizontal = axis.isHorizontal();\n        var extent = isHorizontal ? [0, gridRect.width] : [0, gridRect.height];\n        var idx = axis.inverse ? 1 : 0;\n        axis.setExtent(extent[idx], extent[1 - idx]);\n        updateAxisTransform(axis, isHorizontal ? gridRect.x : gridRect.y);\n      });\n    }\n  };\n\n  Grid.prototype.getAxis = function (dim, axisIndex) {\n    var axesMapOnDim = this._axesMap[dim];\n\n    if (axesMapOnDim != null) {\n      return axesMapOnDim[axisIndex || 0];\n    }\n  };\n\n  Grid.prototype.getAxes = function () {\n    return this._axesList.slice();\n  };\n\n  Grid.prototype.getCartesian = function (xAxisIndex, yAxisIndex) {\n    if (xAxisIndex != null && yAxisIndex != null) {\n      var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\n      return this._coordsMap[key];\n    }\n\n    if (isObject(xAxisIndex)) {\n      yAxisIndex = xAxisIndex.yAxisIndex;\n      xAxisIndex = xAxisIndex.xAxisIndex;\n    }\n\n    for (var i = 0, coordList = this._coordsList; i < coordList.length; i++) {\n      if (coordList[i].getAxis('x').index === xAxisIndex || coordList[i].getAxis('y').index === yAxisIndex) {\n        return coordList[i];\n      }\n    }\n  };\n\n  Grid.prototype.getCartesians = function () {\n    return this._coordsList.slice();\n  };\n\n  Grid.prototype.convertToPixel = function (ecModel, finder, value) {\n    var target = this._findConvertTarget(finder);\n\n    return target.cartesian ? target.cartesian.dataToPoint(value) : target.axis ? target.axis.toGlobalCoord(target.axis.dataToCoord(value)) : null;\n  };\n\n  Grid.prototype.convertFromPixel = function (ecModel, finder, value) {\n    var target = this._findConvertTarget(finder);\n\n    return target.cartesian ? target.cartesian.pointToData(value) : target.axis ? target.axis.coordToData(target.axis.toLocalCoord(value)) : null;\n  };\n\n  Grid.prototype._findConvertTarget = function (finder) {\n    var seriesModel = finder.seriesModel;\n    var xAxisModel = finder.xAxisModel || seriesModel && seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0];\n    var yAxisModel = finder.yAxisModel || seriesModel && seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0];\n    var gridModel = finder.gridModel;\n    var coordsList = this._coordsList;\n    var cartesian;\n    var axis;\n\n    if (seriesModel) {\n      cartesian = seriesModel.coordinateSystem;\n      indexOf(coordsList, cartesian) < 0 && (cartesian = null);\n    } else if (xAxisModel && yAxisModel) {\n      cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n    } else if (xAxisModel) {\n      axis = this.getAxis('x', xAxisModel.componentIndex);\n    } else if (yAxisModel) {\n      axis = this.getAxis('y', yAxisModel.componentIndex);\n    } else if (gridModel) {\n      var grid = gridModel.coordinateSystem;\n\n      if (grid === this) {\n        cartesian = this._coordsList[0];\n      }\n    }\n\n    return {\n      cartesian: cartesian,\n      axis: axis\n    };\n  };\n\n  Grid.prototype.containPoint = function (point) {\n    var coord = this._coordsList[0];\n\n    if (coord) {\n      return coord.containPoint(point);\n    }\n  };\n\n  Grid.prototype._initCartesian = function (gridModel, ecModel, api) {\n    var _this = this;\n\n    var grid = this;\n    var axisPositionUsed = {\n      left: false,\n      right: false,\n      top: false,\n      bottom: false\n    };\n    var axesMap = {\n      x: {},\n      y: {}\n    };\n    var axesCount = {\n      x: 0,\n      y: 0\n    };\n    ecModel.eachComponent('xAxis', createAxisCreator('x'), this);\n    ecModel.eachComponent('yAxis', createAxisCreator('y'), this);\n\n    if (!axesCount.x || !axesCount.y) {\n      this._axesMap = {};\n      this._axesList = [];\n      return;\n    }\n\n    this._axesMap = axesMap;\n    each(axesMap.x, function (xAxis, xAxisIndex) {\n      each(axesMap.y, function (yAxis, yAxisIndex) {\n        var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\n        var cartesian = new Cartesian2D(key);\n        cartesian.master = _this;\n        cartesian.model = gridModel;\n        _this._coordsMap[key] = cartesian;\n\n        _this._coordsList.push(cartesian);\n\n        cartesian.addAxis(xAxis);\n        cartesian.addAxis(yAxis);\n      });\n    });\n\n    function createAxisCreator(dimName) {\n      return function (axisModel, idx) {\n        if (!isAxisUsedInTheGrid(axisModel, gridModel)) {\n          return;\n        }\n\n        var axisPosition = axisModel.get('position');\n\n        if (dimName === 'x') {\n          if (axisPosition !== 'top' && axisPosition !== 'bottom') {\n            axisPosition = axisPositionUsed.bottom ? 'top' : 'bottom';\n          }\n        } else {\n          if (axisPosition !== 'left' && axisPosition !== 'right') {\n            axisPosition = axisPositionUsed.left ? 'right' : 'left';\n          }\n        }\n\n        axisPositionUsed[axisPosition] = true;\n        var axis = new Axis2D(dimName, createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisPosition);\n        var isCategory = axis.type === 'category';\n        axis.onBand = isCategory && axisModel.get('boundaryGap');\n        axis.inverse = axisModel.get('inverse');\n        axisModel.axis = axis;\n        axis.model = axisModel;\n        axis.grid = grid;\n        axis.index = idx;\n\n        grid._axesList.push(axis);\n\n        axesMap[dimName][idx] = axis;\n        axesCount[dimName]++;\n      };\n    }\n  };\n\n  Grid.prototype._updateScale = function (ecModel, gridModel) {\n    each(this._axesList, function (axis) {\n      axis.scale.setExtent(Infinity, -Infinity);\n\n      if (axis.type === 'category') {\n        var categorySortInfo = axis.model.get('categorySortInfo');\n        axis.scale.setSortInfo(categorySortInfo);\n      }\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      if (isCartesian2DSeries(seriesModel)) {\n        var axesModelMap = findAxisModels(seriesModel);\n        var xAxisModel = axesModelMap.xAxisModel;\n        var yAxisModel = axesModelMap.yAxisModel;\n\n        if (!isAxisUsedInTheGrid(xAxisModel, gridModel) || !isAxisUsedInTheGrid(yAxisModel, gridModel)) {\n          return;\n        }\n\n        var cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n        var data = seriesModel.getData();\n        var xAxis = cartesian.getAxis('x');\n        var yAxis = cartesian.getAxis('y');\n\n        if (data.type === 'list') {\n          unionExtent(data, xAxis);\n          unionExtent(data, yAxis);\n        }\n      }\n    }, this);\n\n    function unionExtent(data, axis) {\n      each(getDataDimensionsOnAxis(data, axis.dim), function (dim) {\n        axis.scale.unionExtentFromData(data, dim);\n      });\n    }\n  };\n\n  Grid.prototype.getTooltipAxes = function (dim) {\n    var baseAxes = [];\n    var otherAxes = [];\n    each(this.getCartesians(), function (cartesian) {\n      var baseAxis = dim != null && dim !== 'auto' ? cartesian.getAxis(dim) : cartesian.getBaseAxis();\n      var otherAxis = cartesian.getOtherAxis(baseAxis);\n      indexOf(baseAxes, baseAxis) < 0 && baseAxes.push(baseAxis);\n      indexOf(otherAxes, otherAxis) < 0 && otherAxes.push(otherAxis);\n    });\n    return {\n      baseAxes: baseAxes,\n      otherAxes: otherAxes\n    };\n  };\n\n  Grid.create = function (ecModel, api) {\n    var grids = [];\n    ecModel.eachComponent('grid', function (gridModel, idx) {\n      var grid = new Grid(gridModel, ecModel, api);\n      grid.name = 'grid_' + idx;\n      grid.resize(gridModel, api, true);\n      gridModel.coordinateSystem = grid;\n      grids.push(grid);\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      if (!isCartesian2DSeries(seriesModel)) {\n        return;\n      }\n\n      var axesModelMap = findAxisModels(seriesModel);\n      var xAxisModel = axesModelMap.xAxisModel;\n      var yAxisModel = axesModelMap.yAxisModel;\n      var gridModel = xAxisModel.getCoordSysModel();\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (!gridModel) {\n          throw new Error('Grid \"' + retrieve3(xAxisModel.get('gridIndex'), xAxisModel.get('gridId'), 0) + '\" not found');\n        }\n\n        if (xAxisModel.getCoordSysModel() !== yAxisModel.getCoordSysModel()) {\n          throw new Error('xAxis and yAxis must use the same grid');\n        }\n      }\n\n      var grid = gridModel.coordinateSystem;\n      seriesModel.coordinateSystem = grid.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n    });\n    return grids;\n  };\n\n  Grid.dimensions = cartesian2DDimensions;\n  return Grid;\n}();\n\nfunction isAxisUsedInTheGrid(axisModel, gridModel) {\n  return axisModel.getCoordSysModel() === gridModel;\n}\n\nfunction fixAxisOnZero(axesMap, otherAxisDim, axis, onZeroRecords) {\n  axis.getAxesOnZeroOf = function () {\n    return otherAxisOnZeroOf ? [otherAxisOnZeroOf] : [];\n  };\n\n  var otherAxes = axesMap[otherAxisDim];\n  var otherAxisOnZeroOf;\n  var axisModel = axis.model;\n  var onZero = axisModel.get(['axisLine', 'onZero']);\n  var onZeroAxisIndex = axisModel.get(['axisLine', 'onZeroAxisIndex']);\n\n  if (!onZero) {\n    return;\n  }\n\n  if (onZeroAxisIndex != null) {\n    if (canOnZeroToAxis(otherAxes[onZeroAxisIndex])) {\n      otherAxisOnZeroOf = otherAxes[onZeroAxisIndex];\n    }\n  } else {\n    for (var idx in otherAxes) {\n      if (otherAxes.hasOwnProperty(idx) && canOnZeroToAxis(otherAxes[idx]) && !onZeroRecords[getOnZeroRecordKey(otherAxes[idx])]) {\n        otherAxisOnZeroOf = otherAxes[idx];\n        break;\n      }\n    }\n  }\n\n  if (otherAxisOnZeroOf) {\n    onZeroRecords[getOnZeroRecordKey(otherAxisOnZeroOf)] = true;\n  }\n\n  function getOnZeroRecordKey(axis) {\n    return axis.dim + '_' + axis.index;\n  }\n}\n\nfunction canOnZeroToAxis(axis) {\n  return axis && axis.type !== 'category' && axis.type !== 'time' && ifAxisCrossZero(axis);\n}\n\nfunction updateAxisTransform(axis, coordBase) {\n  var axisExtent = axis.getExtent();\n  var axisExtentSum = axisExtent[0] + axisExtent[1];\n  axis.toGlobalCoord = axis.dim === 'x' ? function (coord) {\n    return coord + coordBase;\n  } : function (coord) {\n    return axisExtentSum - coord + coordBase;\n  };\n  axis.toLocalCoord = axis.dim === 'x' ? function (coord) {\n    return coord - coordBase;\n  } : function (coord) {\n    return axisExtentSum - coord + coordBase;\n  };\n}\n\nexport default Grid;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { retrieve, defaults, extend, each, isObject } from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { createTextStyle } from '../../label/labelStyle';\nimport Model from '../../model/Model';\nimport { isRadianAroundZero, remRadian } from '../../util/number';\nimport { createSymbol } from '../../util/symbol';\nimport * as matrixUtil from 'zrender/lib/core/matrix';\nimport { applyTransform as v2ApplyTransform } from 'zrender/lib/core/vector';\nimport { shouldShowAllLabels } from '../../coord/axisHelper';\nvar PI = Math.PI;\n\nvar AxisBuilder = function () {\n  function AxisBuilder(axisModel, opt) {\n    this.group = new graphic.Group();\n    this.opt = opt;\n    this.axisModel = axisModel;\n    defaults(opt, {\n      labelOffset: 0,\n      nameDirection: 1,\n      tickDirection: 1,\n      labelDirection: 1,\n      silent: true,\n      handleAutoShown: function () {\n        return true;\n      }\n    });\n    var transformGroup = new graphic.Group({\n      x: opt.position[0],\n      y: opt.position[1],\n      rotation: opt.rotation\n    });\n    transformGroup.updateTransform();\n    this._transformGroup = transformGroup;\n  }\n\n  AxisBuilder.prototype.hasBuilder = function (name) {\n    return !!builders[name];\n  };\n\n  AxisBuilder.prototype.add = function (name) {\n    builders[name](this.opt, this.axisModel, this.group, this._transformGroup);\n  };\n\n  AxisBuilder.prototype.getGroup = function () {\n    return this.group;\n  };\n\n  AxisBuilder.innerTextLayout = function (axisRotation, textRotation, direction) {\n    var rotationDiff = remRadian(textRotation - axisRotation);\n    var textAlign;\n    var textVerticalAlign;\n\n    if (isRadianAroundZero(rotationDiff)) {\n      textVerticalAlign = direction > 0 ? 'top' : 'bottom';\n      textAlign = 'center';\n    } else if (isRadianAroundZero(rotationDiff - PI)) {\n      textVerticalAlign = direction > 0 ? 'bottom' : 'top';\n      textAlign = 'center';\n    } else {\n      textVerticalAlign = 'middle';\n\n      if (rotationDiff > 0 && rotationDiff < PI) {\n        textAlign = direction > 0 ? 'right' : 'left';\n      } else {\n        textAlign = direction > 0 ? 'left' : 'right';\n      }\n    }\n\n    return {\n      rotation: rotationDiff,\n      textAlign: textAlign,\n      textVerticalAlign: textVerticalAlign\n    };\n  };\n\n  AxisBuilder.makeAxisEventDataBase = function (axisModel) {\n    var eventData = {\n      componentType: axisModel.mainType,\n      componentIndex: axisModel.componentIndex\n    };\n    eventData[axisModel.mainType + 'Index'] = axisModel.componentIndex;\n    return eventData;\n  };\n\n  AxisBuilder.isLabelSilent = function (axisModel) {\n    var tooltipOpt = axisModel.get('tooltip');\n    return axisModel.get('silent') || !(axisModel.get('triggerEvent') || tooltipOpt && tooltipOpt.show);\n  };\n\n  return AxisBuilder;\n}();\n\n;\nvar builders = {\n  axisLine: function (opt, axisModel, group, transformGroup) {\n    var shown = axisModel.get(['axisLine', 'show']);\n\n    if (shown === 'auto' && opt.handleAutoShown) {\n      shown = opt.handleAutoShown('axisLine');\n    }\n\n    if (!shown) {\n      return;\n    }\n\n    var extent = axisModel.axis.getExtent();\n    var matrix = transformGroup.transform;\n    var pt1 = [extent[0], 0];\n    var pt2 = [extent[1], 0];\n\n    if (matrix) {\n      v2ApplyTransform(pt1, pt1, matrix);\n      v2ApplyTransform(pt2, pt2, matrix);\n    }\n\n    var lineStyle = extend({\n      lineCap: 'round'\n    }, axisModel.getModel(['axisLine', 'lineStyle']).getLineStyle());\n    var line = new graphic.Line({\n      subPixelOptimize: true,\n      shape: {\n        x1: pt1[0],\n        y1: pt1[1],\n        x2: pt2[0],\n        y2: pt2[1]\n      },\n      style: lineStyle,\n      strokeContainThreshold: opt.strokeContainThreshold || 5,\n      silent: true,\n      z2: 1\n    });\n    line.anid = 'line';\n    group.add(line);\n    var arrows = axisModel.get(['axisLine', 'symbol']);\n    var arrowSize = axisModel.get(['axisLine', 'symbolSize']);\n    var arrowOffset = axisModel.get(['axisLine', 'symbolOffset']) || 0;\n\n    if (typeof arrowOffset === 'number') {\n      arrowOffset = [arrowOffset, arrowOffset];\n    }\n\n    if (arrows != null) {\n      if (typeof arrows === 'string') {\n        arrows = [arrows, arrows];\n      }\n\n      if (typeof arrowSize === 'string' || typeof arrowSize === 'number') {\n        arrowSize = [arrowSize, arrowSize];\n      }\n\n      var symbolWidth_1 = arrowSize[0];\n      var symbolHeight_1 = arrowSize[1];\n      each([{\n        rotate: opt.rotation + Math.PI / 2,\n        offset: arrowOffset[0],\n        r: 0\n      }, {\n        rotate: opt.rotation - Math.PI / 2,\n        offset: arrowOffset[1],\n        r: Math.sqrt((pt1[0] - pt2[0]) * (pt1[0] - pt2[0]) + (pt1[1] - pt2[1]) * (pt1[1] - pt2[1]))\n      }], function (point, index) {\n        if (arrows[index] !== 'none' && arrows[index] != null) {\n          var symbol = createSymbol(arrows[index], -symbolWidth_1 / 2, -symbolHeight_1 / 2, symbolWidth_1, symbolHeight_1, lineStyle.stroke, true);\n          var r = point.r + point.offset;\n          symbol.attr({\n            rotation: point.rotate,\n            x: pt1[0] + r * Math.cos(opt.rotation),\n            y: pt1[1] - r * Math.sin(opt.rotation),\n            silent: true,\n            z2: 11\n          });\n          group.add(symbol);\n        }\n      });\n    }\n  },\n  axisTickLabel: function (opt, axisModel, group, transformGroup) {\n    var ticksEls = buildAxisMajorTicks(group, transformGroup, axisModel, opt);\n    var labelEls = buildAxisLabel(group, transformGroup, axisModel, opt);\n    fixMinMaxLabelShow(axisModel, labelEls, ticksEls);\n    buildAxisMinorTicks(group, transformGroup, axisModel, opt.tickDirection);\n  },\n  axisName: function (opt, axisModel, group, transformGroup) {\n    var name = retrieve(opt.axisName, axisModel.get('name'));\n\n    if (!name) {\n      return;\n    }\n\n    var nameLocation = axisModel.get('nameLocation');\n    var nameDirection = opt.nameDirection;\n    var textStyleModel = axisModel.getModel('nameTextStyle');\n    var gap = axisModel.get('nameGap') || 0;\n    var extent = axisModel.axis.getExtent();\n    var gapSignal = extent[0] > extent[1] ? -1 : 1;\n    var pos = [nameLocation === 'start' ? extent[0] - gapSignal * gap : nameLocation === 'end' ? extent[1] + gapSignal * gap : (extent[0] + extent[1]) / 2, isNameLocationCenter(nameLocation) ? opt.labelOffset + nameDirection * gap : 0];\n    var labelLayout;\n    var nameRotation = axisModel.get('nameRotate');\n\n    if (nameRotation != null) {\n      nameRotation = nameRotation * PI / 180;\n    }\n\n    var axisNameAvailableWidth;\n\n    if (isNameLocationCenter(nameLocation)) {\n      labelLayout = AxisBuilder.innerTextLayout(opt.rotation, nameRotation != null ? nameRotation : opt.rotation, nameDirection);\n    } else {\n      labelLayout = endTextLayout(opt.rotation, nameLocation, nameRotation || 0, extent);\n      axisNameAvailableWidth = opt.axisNameAvailableWidth;\n\n      if (axisNameAvailableWidth != null) {\n        axisNameAvailableWidth = Math.abs(axisNameAvailableWidth / Math.sin(labelLayout.rotation));\n        !isFinite(axisNameAvailableWidth) && (axisNameAvailableWidth = null);\n      }\n    }\n\n    var textFont = textStyleModel.getFont();\n    var truncateOpt = axisModel.get('nameTruncate', true) || {};\n    var ellipsis = truncateOpt.ellipsis;\n    var maxWidth = retrieve(opt.nameTruncateMaxWidth, truncateOpt.maxWidth, axisNameAvailableWidth);\n    var tooltipOpt = axisModel.get('tooltip', true);\n    var mainType = axisModel.mainType;\n    var formatterParams = {\n      componentType: mainType,\n      name: name,\n      $vars: ['name']\n    };\n    formatterParams[mainType + 'Index'] = axisModel.componentIndex;\n    var textEl = new graphic.Text({\n      x: pos[0],\n      y: pos[1],\n      rotation: labelLayout.rotation,\n      silent: AxisBuilder.isLabelSilent(axisModel),\n      style: createTextStyle(textStyleModel, {\n        text: name,\n        font: textFont,\n        overflow: 'truncate',\n        width: maxWidth,\n        ellipsis: ellipsis,\n        fill: textStyleModel.getTextColor() || axisModel.get(['axisLine', 'lineStyle', 'color']),\n        align: textStyleModel.get('align') || labelLayout.textAlign,\n        verticalAlign: textStyleModel.get('verticalAlign') || labelLayout.textVerticalAlign\n      }),\n      z2: 1\n    });\n    textEl.tooltip = tooltipOpt && tooltipOpt.show ? extend({\n      content: name,\n      formatter: function () {\n        return name;\n      },\n      formatterParams: formatterParams\n    }, tooltipOpt) : null;\n    textEl.__fullText = name;\n    textEl.anid = 'name';\n\n    if (axisModel.get('triggerEvent')) {\n      var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\n      eventData.targetType = 'axisName';\n      eventData.name = name;\n      getECData(textEl).eventData = eventData;\n    }\n\n    transformGroup.add(textEl);\n    textEl.updateTransform();\n    group.add(textEl);\n    textEl.decomposeTransform();\n  }\n};\n\nfunction endTextLayout(rotation, textPosition, textRotate, extent) {\n  var rotationDiff = remRadian(textRotate - rotation);\n  var textAlign;\n  var textVerticalAlign;\n  var inverse = extent[0] > extent[1];\n  var onLeft = textPosition === 'start' && !inverse || textPosition !== 'start' && inverse;\n\n  if (isRadianAroundZero(rotationDiff - PI / 2)) {\n    textVerticalAlign = onLeft ? 'bottom' : 'top';\n    textAlign = 'center';\n  } else if (isRadianAroundZero(rotationDiff - PI * 1.5)) {\n    textVerticalAlign = onLeft ? 'top' : 'bottom';\n    textAlign = 'center';\n  } else {\n    textVerticalAlign = 'middle';\n\n    if (rotationDiff < PI * 1.5 && rotationDiff > PI / 2) {\n      textAlign = onLeft ? 'left' : 'right';\n    } else {\n      textAlign = onLeft ? 'right' : 'left';\n    }\n  }\n\n  return {\n    rotation: rotationDiff,\n    textAlign: textAlign,\n    textVerticalAlign: textVerticalAlign\n  };\n}\n\nfunction fixMinMaxLabelShow(axisModel, labelEls, tickEls) {\n  if (shouldShowAllLabels(axisModel.axis)) {\n    return;\n  }\n\n  var showMinLabel = axisModel.get(['axisLabel', 'showMinLabel']);\n  var showMaxLabel = axisModel.get(['axisLabel', 'showMaxLabel']);\n  labelEls = labelEls || [];\n  tickEls = tickEls || [];\n  var firstLabel = labelEls[0];\n  var nextLabel = labelEls[1];\n  var lastLabel = labelEls[labelEls.length - 1];\n  var prevLabel = labelEls[labelEls.length - 2];\n  var firstTick = tickEls[0];\n  var nextTick = tickEls[1];\n  var lastTick = tickEls[tickEls.length - 1];\n  var prevTick = tickEls[tickEls.length - 2];\n\n  if (showMinLabel === false) {\n    ignoreEl(firstLabel);\n    ignoreEl(firstTick);\n  } else if (isTwoLabelOverlapped(firstLabel, nextLabel)) {\n    if (showMinLabel) {\n      ignoreEl(nextLabel);\n      ignoreEl(nextTick);\n    } else {\n      ignoreEl(firstLabel);\n      ignoreEl(firstTick);\n    }\n  }\n\n  if (showMaxLabel === false) {\n    ignoreEl(lastLabel);\n    ignoreEl(lastTick);\n  } else if (isTwoLabelOverlapped(prevLabel, lastLabel)) {\n    if (showMaxLabel) {\n      ignoreEl(prevLabel);\n      ignoreEl(prevTick);\n    } else {\n      ignoreEl(lastLabel);\n      ignoreEl(lastTick);\n    }\n  }\n}\n\nfunction ignoreEl(el) {\n  el && (el.ignore = true);\n}\n\nfunction isTwoLabelOverlapped(current, next) {\n  var firstRect = current && current.getBoundingRect().clone();\n  var nextRect = next && next.getBoundingRect().clone();\n\n  if (!firstRect || !nextRect) {\n    return;\n  }\n\n  var mRotationBack = matrixUtil.identity([]);\n  matrixUtil.rotate(mRotationBack, mRotationBack, -current.rotation);\n  firstRect.applyTransform(matrixUtil.mul([], mRotationBack, current.getLocalTransform()));\n  nextRect.applyTransform(matrixUtil.mul([], mRotationBack, next.getLocalTransform()));\n  return firstRect.intersect(nextRect);\n}\n\nfunction isNameLocationCenter(nameLocation) {\n  return nameLocation === 'middle' || nameLocation === 'center';\n}\n\nfunction createTicks(ticksCoords, tickTransform, tickEndCoord, tickLineStyle, anidPrefix) {\n  var tickEls = [];\n  var pt1 = [];\n  var pt2 = [];\n\n  for (var i = 0; i < ticksCoords.length; i++) {\n    var tickCoord = ticksCoords[i].coord;\n    pt1[0] = tickCoord;\n    pt1[1] = 0;\n    pt2[0] = tickCoord;\n    pt2[1] = tickEndCoord;\n\n    if (tickTransform) {\n      v2ApplyTransform(pt1, pt1, tickTransform);\n      v2ApplyTransform(pt2, pt2, tickTransform);\n    }\n\n    var tickEl = new graphic.Line({\n      subPixelOptimize: true,\n      shape: {\n        x1: pt1[0],\n        y1: pt1[1],\n        x2: pt2[0],\n        y2: pt2[1]\n      },\n      style: tickLineStyle,\n      z2: 2,\n      autoBatch: true,\n      silent: true\n    });\n    tickEl.anid = anidPrefix + '_' + ticksCoords[i].tickValue;\n    tickEls.push(tickEl);\n  }\n\n  return tickEls;\n}\n\nfunction buildAxisMajorTicks(group, transformGroup, axisModel, opt) {\n  var axis = axisModel.axis;\n  var tickModel = axisModel.getModel('axisTick');\n  var shown = tickModel.get('show');\n\n  if (shown === 'auto' && opt.handleAutoShown) {\n    shown = opt.handleAutoShown('axisTick');\n  }\n\n  if (!shown || axis.scale.isBlank()) {\n    return;\n  }\n\n  var lineStyleModel = tickModel.getModel('lineStyle');\n  var tickEndCoord = opt.tickDirection * tickModel.get('length');\n  var ticksCoords = axis.getTicksCoords();\n  var ticksEls = createTicks(ticksCoords, transformGroup.transform, tickEndCoord, defaults(lineStyleModel.getLineStyle(), {\n    stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\n  }), 'ticks');\n\n  for (var i = 0; i < ticksEls.length; i++) {\n    group.add(ticksEls[i]);\n  }\n\n  return ticksEls;\n}\n\nfunction buildAxisMinorTicks(group, transformGroup, axisModel, tickDirection) {\n  var axis = axisModel.axis;\n  var minorTickModel = axisModel.getModel('minorTick');\n\n  if (!minorTickModel.get('show') || axis.scale.isBlank()) {\n    return;\n  }\n\n  var minorTicksCoords = axis.getMinorTicksCoords();\n\n  if (!minorTicksCoords.length) {\n    return;\n  }\n\n  var lineStyleModel = minorTickModel.getModel('lineStyle');\n  var tickEndCoord = tickDirection * minorTickModel.get('length');\n  var minorTickLineStyle = defaults(lineStyleModel.getLineStyle(), defaults(axisModel.getModel('axisTick').getLineStyle(), {\n    stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\n  }));\n\n  for (var i = 0; i < minorTicksCoords.length; i++) {\n    var minorTicksEls = createTicks(minorTicksCoords[i], transformGroup.transform, tickEndCoord, minorTickLineStyle, 'minorticks_' + i);\n\n    for (var k = 0; k < minorTicksEls.length; k++) {\n      group.add(minorTicksEls[k]);\n    }\n  }\n}\n\nfunction buildAxisLabel(group, transformGroup, axisModel, opt) {\n  var axis = axisModel.axis;\n  var show = retrieve(opt.axisLabelShow, axisModel.get(['axisLabel', 'show']));\n\n  if (!show || axis.scale.isBlank()) {\n    return;\n  }\n\n  var labelModel = axisModel.getModel('axisLabel');\n  var labelMargin = labelModel.get('margin');\n  var labels = axis.getViewLabels();\n  var labelRotation = (retrieve(opt.labelRotate, labelModel.get('rotate')) || 0) * PI / 180;\n  var labelLayout = AxisBuilder.innerTextLayout(opt.rotation, labelRotation, opt.labelDirection);\n  var rawCategoryData = axisModel.getCategories && axisModel.getCategories(true);\n  var labelEls = [];\n  var silent = AxisBuilder.isLabelSilent(axisModel);\n  var triggerEvent = axisModel.get('triggerEvent');\n  each(labels, function (labelItem, index) {\n    var tickValue = axis.scale.type === 'ordinal' ? axis.scale.getRawOrdinalNumber(labelItem.tickValue) : labelItem.tickValue;\n    var formattedLabel = labelItem.formattedLabel;\n    var rawLabel = labelItem.rawLabel;\n    var itemLabelModel = labelModel;\n\n    if (rawCategoryData && rawCategoryData[tickValue]) {\n      var rawCategoryItem = rawCategoryData[tickValue];\n\n      if (isObject(rawCategoryItem) && rawCategoryItem.textStyle) {\n        itemLabelModel = new Model(rawCategoryItem.textStyle, labelModel, axisModel.ecModel);\n      }\n    }\n\n    var textColor = itemLabelModel.getTextColor() || axisModel.get(['axisLine', 'lineStyle', 'color']);\n    var tickCoord = axis.dataToCoord(tickValue);\n    var textEl = new graphic.Text({\n      x: tickCoord,\n      y: opt.labelOffset + opt.labelDirection * labelMargin,\n      rotation: labelLayout.rotation,\n      silent: silent,\n      z2: 10,\n      style: createTextStyle(itemLabelModel, {\n        text: formattedLabel,\n        align: itemLabelModel.getShallow('align', true) || labelLayout.textAlign,\n        verticalAlign: itemLabelModel.getShallow('verticalAlign', true) || itemLabelModel.getShallow('baseline', true) || labelLayout.textVerticalAlign,\n        fill: typeof textColor === 'function' ? textColor(axis.type === 'category' ? rawLabel : axis.type === 'value' ? tickValue + '' : tickValue, index) : textColor\n      })\n    });\n    textEl.anid = 'label_' + tickValue;\n\n    if (triggerEvent) {\n      var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\n      eventData.targetType = 'axisLabel';\n      eventData.value = rawLabel;\n      getECData(textEl).eventData = eventData;\n    }\n\n    transformGroup.add(textEl);\n    textEl.updateTransform();\n    labelEls.push(textEl);\n    group.add(textEl);\n    textEl.decomposeTransform();\n  });\n  return labelEls;\n}\n\nexport default AxisBuilder;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Model from '../../model/Model';\nimport { each, curry, clone, defaults, isArray, indexOf } from 'zrender/lib/core/util';\nexport function collect(ecModel, api) {\n  var result = {\n    axesInfo: {},\n    seriesInvolved: false,\n    coordSysAxesInfo: {},\n    coordSysMap: {}\n  };\n  collectAxesInfo(result, ecModel, api);\n  result.seriesInvolved && collectSeriesInfo(result, ecModel);\n  return result;\n}\n\nfunction collectAxesInfo(result, ecModel, api) {\n  var globalTooltipModel = ecModel.getComponent('tooltip');\n  var globalAxisPointerModel = ecModel.getComponent('axisPointer');\n  var linksOption = globalAxisPointerModel.get('link', true) || [];\n  var linkGroups = [];\n  each(api.getCoordinateSystems(), function (coordSys) {\n    if (!coordSys.axisPointerEnabled) {\n      return;\n    }\n\n    var coordSysKey = makeKey(coordSys.model);\n    var axesInfoInCoordSys = result.coordSysAxesInfo[coordSysKey] = {};\n    result.coordSysMap[coordSysKey] = coordSys;\n    var coordSysModel = coordSys.model;\n    var baseTooltipModel = coordSysModel.getModel('tooltip', globalTooltipModel);\n    each(coordSys.getAxes(), curry(saveTooltipAxisInfo, false, null));\n\n    if (coordSys.getTooltipAxes && globalTooltipModel && baseTooltipModel.get('show')) {\n      var triggerAxis = baseTooltipModel.get('trigger') === 'axis';\n      var cross = baseTooltipModel.get(['axisPointer', 'type']) === 'cross';\n      var tooltipAxes = coordSys.getTooltipAxes(baseTooltipModel.get(['axisPointer', 'axis']));\n\n      if (triggerAxis || cross) {\n        each(tooltipAxes.baseAxes, curry(saveTooltipAxisInfo, cross ? 'cross' : true, triggerAxis));\n      }\n\n      if (cross) {\n        each(tooltipAxes.otherAxes, curry(saveTooltipAxisInfo, 'cross', false));\n      }\n    }\n\n    function saveTooltipAxisInfo(fromTooltip, triggerTooltip, axis) {\n      var axisPointerModel = axis.model.getModel('axisPointer', globalAxisPointerModel);\n      var axisPointerShow = axisPointerModel.get('show');\n\n      if (!axisPointerShow || axisPointerShow === 'auto' && !fromTooltip && !isHandleTrigger(axisPointerModel)) {\n        return;\n      }\n\n      if (triggerTooltip == null) {\n        triggerTooltip = axisPointerModel.get('triggerTooltip');\n      }\n\n      axisPointerModel = fromTooltip ? makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) : axisPointerModel;\n      var snap = axisPointerModel.get('snap');\n      var axisKey = makeKey(axis.model);\n      var involveSeries = triggerTooltip || snap || axis.type === 'category';\n      var axisInfo = result.axesInfo[axisKey] = {\n        key: axisKey,\n        axis: axis,\n        coordSys: coordSys,\n        axisPointerModel: axisPointerModel,\n        triggerTooltip: triggerTooltip,\n        involveSeries: involveSeries,\n        snap: snap,\n        useHandle: isHandleTrigger(axisPointerModel),\n        seriesModels: [],\n        linkGroup: null\n      };\n      axesInfoInCoordSys[axisKey] = axisInfo;\n      result.seriesInvolved = result.seriesInvolved || involveSeries;\n      var groupIndex = getLinkGroupIndex(linksOption, axis);\n\n      if (groupIndex != null) {\n        var linkGroup = linkGroups[groupIndex] || (linkGroups[groupIndex] = {\n          axesInfo: {}\n        });\n        linkGroup.axesInfo[axisKey] = axisInfo;\n        linkGroup.mapper = linksOption[groupIndex].mapper;\n        axisInfo.linkGroup = linkGroup;\n      }\n    }\n  });\n}\n\nfunction makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) {\n  var tooltipAxisPointerModel = baseTooltipModel.getModel('axisPointer');\n  var fields = ['type', 'snap', 'lineStyle', 'shadowStyle', 'label', 'animation', 'animationDurationUpdate', 'animationEasingUpdate', 'z'];\n  var volatileOption = {};\n  each(fields, function (field) {\n    volatileOption[field] = clone(tooltipAxisPointerModel.get(field));\n  });\n  volatileOption.snap = axis.type !== 'category' && !!triggerTooltip;\n\n  if (tooltipAxisPointerModel.get('type') === 'cross') {\n    volatileOption.type = 'line';\n  }\n\n  var labelOption = volatileOption.label || (volatileOption.label = {});\n  labelOption.show == null && (labelOption.show = false);\n\n  if (fromTooltip === 'cross') {\n    var tooltipAxisPointerLabelShow = tooltipAxisPointerModel.get(['label', 'show']);\n    labelOption.show = tooltipAxisPointerLabelShow != null ? tooltipAxisPointerLabelShow : true;\n\n    if (!triggerTooltip) {\n      var crossStyle = volatileOption.lineStyle = tooltipAxisPointerModel.get('crossStyle');\n      crossStyle && defaults(labelOption, crossStyle.textStyle);\n    }\n  }\n\n  return axis.model.getModel('axisPointer', new Model(volatileOption, globalAxisPointerModel, ecModel));\n}\n\nfunction collectSeriesInfo(result, ecModel) {\n  ecModel.eachSeries(function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n    var seriesTooltipTrigger = seriesModel.get(['tooltip', 'trigger'], true);\n    var seriesTooltipShow = seriesModel.get(['tooltip', 'show'], true);\n\n    if (!coordSys || seriesTooltipTrigger === 'none' || seriesTooltipTrigger === false || seriesTooltipTrigger === 'item' || seriesTooltipShow === false || seriesModel.get(['axisPointer', 'show'], true) === false) {\n      return;\n    }\n\n    each(result.coordSysAxesInfo[makeKey(coordSys.model)], function (axisInfo) {\n      var axis = axisInfo.axis;\n\n      if (coordSys.getAxis(axis.dim) === axis) {\n        axisInfo.seriesModels.push(seriesModel);\n        axisInfo.seriesDataCount == null && (axisInfo.seriesDataCount = 0);\n        axisInfo.seriesDataCount += seriesModel.getData().count();\n      }\n    });\n  });\n}\n\nfunction getLinkGroupIndex(linksOption, axis) {\n  var axisModel = axis.model;\n  var dim = axis.dim;\n\n  for (var i = 0; i < linksOption.length; i++) {\n    var linkOption = linksOption[i] || {};\n\n    if (checkPropInLink(linkOption[dim + 'AxisId'], axisModel.id) || checkPropInLink(linkOption[dim + 'AxisIndex'], axisModel.componentIndex) || checkPropInLink(linkOption[dim + 'AxisName'], axisModel.name)) {\n      return i;\n    }\n  }\n}\n\nfunction checkPropInLink(linkPropValue, axisPropValue) {\n  return linkPropValue === 'all' || isArray(linkPropValue) && indexOf(linkPropValue, axisPropValue) >= 0 || linkPropValue === axisPropValue;\n}\n\nexport function fixValue(axisModel) {\n  var axisInfo = getAxisInfo(axisModel);\n\n  if (!axisInfo) {\n    return;\n  }\n\n  var axisPointerModel = axisInfo.axisPointerModel;\n  var scale = axisInfo.axis.scale;\n  var option = axisPointerModel.option;\n  var status = axisPointerModel.get('status');\n  var value = axisPointerModel.get('value');\n\n  if (value != null) {\n    value = scale.parse(value);\n  }\n\n  var useHandle = isHandleTrigger(axisPointerModel);\n\n  if (status == null) {\n    option.status = useHandle ? 'show' : 'hide';\n  }\n\n  var extent = scale.getExtent().slice();\n  extent[0] > extent[1] && extent.reverse();\n\n  if (value == null || value > extent[1]) {\n    value = extent[1];\n  }\n\n  if (value < extent[0]) {\n    value = extent[0];\n  }\n\n  option.value = value;\n\n  if (useHandle) {\n    option.status = axisInfo.axis.scale.isBlank() ? 'hide' : 'show';\n  }\n}\nexport function getAxisInfo(axisModel) {\n  var coordSysAxesInfo = (axisModel.ecModel.getComponent('axisPointer') || {}).coordSysAxesInfo;\n  return coordSysAxesInfo && coordSysAxesInfo.axesInfo[makeKey(axisModel)];\n}\nexport function getAxisPointerModel(axisModel) {\n  var axisInfo = getAxisInfo(axisModel);\n  return axisInfo && axisInfo.axisPointerModel;\n}\n\nfunction isHandleTrigger(axisPointerModel) {\n  return !!axisPointerModel.get(['handle', 'show']);\n}\n\nexport function makeKey(model) {\n  return model.type + '||' + model.id;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as axisPointerModelHelper from '../axisPointer/modelHelper';\nimport ComponentView from '../../view/Component';\nvar axisPointerClazz = {};\n\nvar AxisView = function (_super) {\n  __extends(AxisView, _super);\n\n  function AxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = AxisView.type;\n    return _this;\n  }\n\n  AxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n    this.axisPointerClass && axisPointerModelHelper.fixValue(axisModel);\n\n    _super.prototype.render.apply(this, arguments);\n\n    this._doUpdateAxisPointerClass(axisModel, api, true);\n  };\n\n  AxisView.prototype.updateAxisPointer = function (axisModel, ecModel, api, payload) {\n    this._doUpdateAxisPointerClass(axisModel, api, false);\n  };\n\n  AxisView.prototype.remove = function (ecModel, api) {\n    var axisPointer = this._axisPointer;\n    axisPointer && axisPointer.remove(api);\n  };\n\n  AxisView.prototype.dispose = function (ecModel, api) {\n    this._disposeAxisPointer(api);\n\n    _super.prototype.dispose.apply(this, arguments);\n  };\n\n  AxisView.prototype._doUpdateAxisPointerClass = function (axisModel, api, forceRender) {\n    var Clazz = AxisView.getAxisPointerClass(this.axisPointerClass);\n\n    if (!Clazz) {\n      return;\n    }\n\n    var axisPointerModel = axisPointerModelHelper.getAxisPointerModel(axisModel);\n    axisPointerModel ? (this._axisPointer || (this._axisPointer = new Clazz())).render(axisModel, axisPointerModel, api, forceRender) : this._disposeAxisPointer(api);\n  };\n\n  AxisView.prototype._disposeAxisPointer = function (api) {\n    this._axisPointer && this._axisPointer.dispose(api);\n    this._axisPointer = null;\n  };\n\n  AxisView.registerAxisPointerClass = function (type, clazz) {\n    if (process.env.NODE_ENV !== 'production') {\n      if (axisPointerClazz[type]) {\n        throw new Error('axisPointer ' + type + ' exists');\n      }\n    }\n\n    axisPointerClazz[type] = clazz;\n  };\n\n  ;\n\n  AxisView.getAxisPointerClass = function (type) {\n    return type && axisPointerClazz[type];\n  };\n\n  ;\n  AxisView.type = 'axis';\n  return AxisView;\n}(ComponentView);\n\nexport default AxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\nexport function rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel) {\n  var axis = axisModel.axis;\n\n  if (axis.scale.isBlank()) {\n    return;\n  }\n\n  var splitAreaModel = axisModel.getModel('splitArea');\n  var areaStyleModel = splitAreaModel.getModel('areaStyle');\n  var areaColors = areaStyleModel.get('color');\n  var gridRect = gridModel.coordinateSystem.getRect();\n  var ticksCoords = axis.getTicksCoords({\n    tickModel: splitAreaModel,\n    clamp: true\n  });\n\n  if (!ticksCoords.length) {\n    return;\n  }\n\n  var areaColorsLen = areaColors.length;\n  var lastSplitAreaColors = inner(axisView).splitAreaColors;\n  var newSplitAreaColors = zrUtil.createHashMap();\n  var colorIndex = 0;\n\n  if (lastSplitAreaColors) {\n    for (var i = 0; i < ticksCoords.length; i++) {\n      var cIndex = lastSplitAreaColors.get(ticksCoords[i].tickValue);\n\n      if (cIndex != null) {\n        colorIndex = (cIndex + (areaColorsLen - 1) * i) % areaColorsLen;\n        break;\n      }\n    }\n  }\n\n  var prev = axis.toGlobalCoord(ticksCoords[0].coord);\n  var areaStyle = areaStyleModel.getAreaStyle();\n  areaColors = zrUtil.isArray(areaColors) ? areaColors : [areaColors];\n\n  for (var i = 1; i < ticksCoords.length; i++) {\n    var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n    var x = void 0;\n    var y = void 0;\n    var width = void 0;\n    var height = void 0;\n\n    if (axis.isHorizontal()) {\n      x = prev;\n      y = gridRect.y;\n      width = tickCoord - x;\n      height = gridRect.height;\n      prev = x + width;\n    } else {\n      x = gridRect.x;\n      y = prev;\n      width = gridRect.width;\n      height = tickCoord - y;\n      prev = y + height;\n    }\n\n    var tickValue = ticksCoords[i - 1].tickValue;\n    tickValue != null && newSplitAreaColors.set(tickValue, colorIndex);\n    axisGroup.add(new graphic.Rect({\n      anid: tickValue != null ? 'area_' + tickValue : null,\n      shape: {\n        x: x,\n        y: y,\n        width: width,\n        height: height\n      },\n      style: zrUtil.defaults({\n        fill: areaColors[colorIndex]\n      }, areaStyle),\n      autoBatch: true,\n      silent: true\n    }));\n    colorIndex = (colorIndex + 1) % areaColorsLen;\n  }\n\n  inner(axisView).splitAreaColors = newSplitAreaColors;\n}\nexport function rectCoordAxisHandleRemove(axisView) {\n  inner(axisView).splitAreaColors = null;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport AxisBuilder from './AxisBuilder';\nimport AxisView from './AxisView';\nimport * as cartesianAxisHelper from '../../coord/cartesian/cartesianAxisHelper';\nimport { rectCoordAxisBuildSplitArea, rectCoordAxisHandleRemove } from './axisSplitHelper';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitArea', 'splitLine', 'minorSplitLine'];\n\nvar CartesianAxisView = function (_super) {\n  __extends(CartesianAxisView, _super);\n\n  function CartesianAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CartesianAxisView.type;\n    _this.axisPointerClass = 'CartesianAxisPointer';\n    return _this;\n  }\n\n  CartesianAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n    this.group.removeAll();\n    var oldAxisGroup = this._axisGroup;\n    this._axisGroup = new graphic.Group();\n    this.group.add(this._axisGroup);\n\n    if (!axisModel.get('show')) {\n      return;\n    }\n\n    var gridModel = axisModel.getCoordSysModel();\n    var layout = cartesianAxisHelper.layout(gridModel, axisModel);\n    var axisBuilder = new AxisBuilder(axisModel, zrUtil.extend({\n      handleAutoShown: function (elementType) {\n        var cartesians = gridModel.coordinateSystem.getCartesians();\n\n        for (var i = 0; i < cartesians.length; i++) {\n          var otherAxisType = cartesians[i].getOtherAxis(axisModel.axis).type;\n\n          if (otherAxisType === 'value' || otherAxisType === 'log') {\n            return true;\n          }\n        }\n\n        return false;\n      }\n    }, layout));\n    zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n\n    this._axisGroup.add(axisBuilder.getGroup());\n\n    zrUtil.each(selfBuilderAttrs, function (name) {\n      if (axisModel.get([name, 'show'])) {\n        axisElementBuilders[name](this, this._axisGroup, axisModel, gridModel);\n      }\n    }, this);\n    graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel);\n\n    _super.prototype.render.call(this, axisModel, ecModel, api, payload);\n  };\n\n  CartesianAxisView.prototype.remove = function () {\n    rectCoordAxisHandleRemove(this);\n  };\n\n  CartesianAxisView.type = 'cartesianAxis';\n  return CartesianAxisView;\n}(AxisView);\n\nvar axisElementBuilders = {\n  splitLine: function (axisView, axisGroup, axisModel, gridModel) {\n    var axis = axisModel.axis;\n\n    if (axis.scale.isBlank()) {\n      return;\n    }\n\n    var splitLineModel = axisModel.getModel('splitLine');\n    var lineStyleModel = splitLineModel.getModel('lineStyle');\n    var lineColors = lineStyleModel.get('color');\n    lineColors = zrUtil.isArray(lineColors) ? lineColors : [lineColors];\n    var gridRect = gridModel.coordinateSystem.getRect();\n    var isHorizontal = axis.isHorizontal();\n    var lineCount = 0;\n    var ticksCoords = axis.getTicksCoords({\n      tickModel: splitLineModel\n    });\n    var p1 = [];\n    var p2 = [];\n    var lineStyle = lineStyleModel.getLineStyle();\n\n    for (var i = 0; i < ticksCoords.length; i++) {\n      var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n\n      if (isHorizontal) {\n        p1[0] = tickCoord;\n        p1[1] = gridRect.y;\n        p2[0] = tickCoord;\n        p2[1] = gridRect.y + gridRect.height;\n      } else {\n        p1[0] = gridRect.x;\n        p1[1] = tickCoord;\n        p2[0] = gridRect.x + gridRect.width;\n        p2[1] = tickCoord;\n      }\n\n      var colorIndex = lineCount++ % lineColors.length;\n      var tickValue = ticksCoords[i].tickValue;\n      axisGroup.add(new graphic.Line({\n        anid: tickValue != null ? 'line_' + ticksCoords[i].tickValue : null,\n        subPixelOptimize: true,\n        autoBatch: true,\n        shape: {\n          x1: p1[0],\n          y1: p1[1],\n          x2: p2[0],\n          y2: p2[1]\n        },\n        style: zrUtil.defaults({\n          stroke: lineColors[colorIndex]\n        }, lineStyle),\n        silent: true\n      }));\n    }\n  },\n  minorSplitLine: function (axisView, axisGroup, axisModel, gridModel) {\n    var axis = axisModel.axis;\n    var minorSplitLineModel = axisModel.getModel('minorSplitLine');\n    var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\n    var gridRect = gridModel.coordinateSystem.getRect();\n    var isHorizontal = axis.isHorizontal();\n    var minorTicksCoords = axis.getMinorTicksCoords();\n\n    if (!minorTicksCoords.length) {\n      return;\n    }\n\n    var p1 = [];\n    var p2 = [];\n    var lineStyle = lineStyleModel.getLineStyle();\n\n    for (var i = 0; i < minorTicksCoords.length; i++) {\n      for (var k = 0; k < minorTicksCoords[i].length; k++) {\n        var tickCoord = axis.toGlobalCoord(minorTicksCoords[i][k].coord);\n\n        if (isHorizontal) {\n          p1[0] = tickCoord;\n          p1[1] = gridRect.y;\n          p2[0] = tickCoord;\n          p2[1] = gridRect.y + gridRect.height;\n        } else {\n          p1[0] = gridRect.x;\n          p1[1] = tickCoord;\n          p2[0] = gridRect.x + gridRect.width;\n          p2[1] = tickCoord;\n        }\n\n        axisGroup.add(new graphic.Line({\n          anid: 'minor_line_' + minorTicksCoords[i][k].tickValue,\n          subPixelOptimize: true,\n          autoBatch: true,\n          shape: {\n            x1: p1[0],\n            y1: p1[1],\n            x2: p2[0],\n            y2: p2[1]\n          },\n          style: lineStyle,\n          silent: true\n        }));\n      }\n    }\n  },\n  splitArea: function (axisView, axisGroup, axisModel, gridModel) {\n    rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel);\n  }\n};\n\nvar CartesianXAxisView = function (_super) {\n  __extends(CartesianXAxisView, _super);\n\n  function CartesianXAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CartesianXAxisView.type;\n    return _this;\n  }\n\n  CartesianXAxisView.type = 'xAxis';\n  return CartesianXAxisView;\n}(CartesianAxisView);\n\nexport { CartesianXAxisView };\n\nvar CartesianYAxisView = function (_super) {\n  __extends(CartesianYAxisView, _super);\n\n  function CartesianYAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CartesianXAxisView.type;\n    return _this;\n  }\n\n  CartesianYAxisView.type = 'yAxis';\n  return CartesianYAxisView;\n}(CartesianAxisView);\n\nexport { CartesianYAxisView };\nexport default CartesianAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component';\nimport GridModel from '../../coord/cartesian/GridModel';\nimport { Rect } from '../../util/graphic';\nimport { defaults } from 'zrender/lib/core/util';\nimport { CartesianAxisModel } from '../../coord/cartesian/AxisModel';\nimport axisModelCreator from '../../coord/axisModelCreator';\nimport Grid from '../../coord/cartesian/Grid';\nimport { CartesianXAxisView, CartesianYAxisView } from '../axis/CartesianAxisView';\n\nvar GridView = function (_super) {\n  __extends(GridView, _super);\n\n  function GridView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'grid';\n    return _this;\n  }\n\n  GridView.prototype.render = function (gridModel, ecModel) {\n    this.group.removeAll();\n\n    if (gridModel.get('show')) {\n      this.group.add(new Rect({\n        shape: gridModel.coordinateSystem.getRect(),\n        style: defaults({\n          fill: gridModel.get('backgroundColor')\n        }, gridModel.getItemStyle()),\n        silent: true,\n        z2: -1\n      }));\n    }\n  };\n\n  GridView.type = 'grid';\n  return GridView;\n}(ComponentView);\n\nvar extraOption = {\n  offset: 0\n};\nexport function install(registers) {\n  registers.registerComponentView(GridView);\n  registers.registerComponentModel(GridModel);\n  registers.registerCoordinateSystem('cartesian2d', Grid);\n  axisModelCreator(registers, 'x', CartesianAxisModel, extraOption);\n  axisModelCreator(registers, 'y', CartesianAxisModel, extraOption);\n  registers.registerComponentView(CartesianXAxisView);\n  registers.registerComponentView(CartesianYAxisView);\n  registers.registerPreprocessor(function (option) {\n    if (option.xAxis && option.yAxis && !option.grid) {\n      option.grid = {};\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport ScatterSeriesModel from './ScatterSeries';\nimport ScatterView from './ScatterView';\nimport { install as installGridSimple } from '../../component/grid/installSimple';\nimport layoutPoints from '../../layout/points';\nexport function install(registers) {\n  use(installGridSimple);\n  registers.registerSeriesModel(ScatterSeriesModel);\n  registers.registerChartView(ScatterView);\n  registers.registerLayout(layoutPoints('scatter'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function radarLayout(ecModel) {\n  ecModel.eachSeriesByType('radar', function (seriesModel) {\n    var data = seriesModel.getData();\n    var points = [];\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (!coordSys) {\n      return;\n    }\n\n    var axes = coordSys.getIndicatorAxes();\n    zrUtil.each(axes, function (axis, axisIndex) {\n      data.each(data.mapDimension(axes[axisIndex].dim), function (val, dataIndex) {\n        points[dataIndex] = points[dataIndex] || [];\n        var point = coordSys.dataToPoint(val, axisIndex);\n        points[dataIndex][axisIndex] = isValidPoint(point) ? point : getValueMissingPoint(coordSys);\n      });\n    });\n    data.each(function (idx) {\n      var firstPoint = zrUtil.find(points[idx], function (point) {\n        return isValidPoint(point);\n      }) || getValueMissingPoint(coordSys);\n      points[idx].push(firstPoint.slice());\n      data.setItemLayout(idx, points[idx]);\n    });\n  });\n}\n\nfunction isValidPoint(point) {\n  return !isNaN(point[0]) && !isNaN(point[1]);\n}\n\nfunction getValueMissingPoint(coordSys) {\n  return [coordSys.cx, coordSys.cy];\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function radarBackwardCompat(option) {\n  var polarOptArr = option.polar;\n\n  if (polarOptArr) {\n    if (!zrUtil.isArray(polarOptArr)) {\n      polarOptArr = [polarOptArr];\n    }\n\n    var polarNotRadar_1 = [];\n    zrUtil.each(polarOptArr, function (polarOpt, idx) {\n      if (polarOpt.indicator) {\n        if (polarOpt.type && !polarOpt.shape) {\n          polarOpt.shape = polarOpt.type;\n        }\n\n        option.radar = option.radar || [];\n\n        if (!zrUtil.isArray(option.radar)) {\n          option.radar = [option.radar];\n        }\n\n        option.radar.push(polarOpt);\n      } else {\n        polarNotRadar_1.push(polarOpt);\n      }\n    });\n    option.polar = polarNotRadar_1;\n  }\n\n  zrUtil.each(option.series, function (seriesOpt) {\n    if (seriesOpt && seriesOpt.type === 'radar' && seriesOpt.polarIndex) {\n      seriesOpt.radarIndex = seriesOpt.polarIndex;\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as symbolUtil from '../../util/symbol';\nimport ChartView from '../../view/Chart';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport ZRImage from 'zrender/lib/graphic/Image';\n\nfunction normalizeSymbolSize(symbolSize) {\n  if (!zrUtil.isArray(symbolSize)) {\n    symbolSize = [+symbolSize, +symbolSize];\n  }\n\n  return symbolSize;\n}\n\nvar RadarView = function (_super) {\n  __extends(RadarView, _super);\n\n  function RadarView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = RadarView.type;\n    return _this;\n  }\n\n  RadarView.prototype.render = function (seriesModel, ecModel, api) {\n    var polar = seriesModel.coordinateSystem;\n    var group = this.group;\n    var data = seriesModel.getData();\n    var oldData = this._data;\n\n    function createSymbol(data, idx) {\n      var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\n\n      if (symbolType === 'none') {\n        return;\n      }\n\n      var symbolSize = normalizeSymbolSize(data.getItemVisual(idx, 'symbolSize'));\n      var symbolPath = symbolUtil.createSymbol(symbolType, -1, -1, 2, 2);\n      var symbolRotate = data.getItemVisual(idx, 'symbolRotate') || 0;\n      symbolPath.attr({\n        style: {\n          strokeNoScale: true\n        },\n        z2: 100,\n        scaleX: symbolSize[0] / 2,\n        scaleY: symbolSize[1] / 2,\n        rotation: symbolRotate * Math.PI / 180 || 0\n      });\n      return symbolPath;\n    }\n\n    function updateSymbols(oldPoints, newPoints, symbolGroup, data, idx, isInit) {\n      symbolGroup.removeAll();\n\n      for (var i = 0; i < newPoints.length - 1; i++) {\n        var symbolPath = createSymbol(data, idx);\n\n        if (symbolPath) {\n          symbolPath.__dimIdx = i;\n\n          if (oldPoints[i]) {\n            symbolPath.setPosition(oldPoints[i]);\n            graphic[isInit ? 'initProps' : 'updateProps'](symbolPath, {\n              x: newPoints[i][0],\n              y: newPoints[i][1]\n            }, seriesModel, idx);\n          } else {\n            symbolPath.setPosition(newPoints[i]);\n          }\n\n          symbolGroup.add(symbolPath);\n        }\n      }\n    }\n\n    function getInitialPoints(points) {\n      return zrUtil.map(points, function (pt) {\n        return [polar.cx, polar.cy];\n      });\n    }\n\n    data.diff(oldData).add(function (idx) {\n      var points = data.getItemLayout(idx);\n\n      if (!points) {\n        return;\n      }\n\n      var polygon = new graphic.Polygon();\n      var polyline = new graphic.Polyline();\n      var target = {\n        shape: {\n          points: points\n        }\n      };\n      polygon.shape.points = getInitialPoints(points);\n      polyline.shape.points = getInitialPoints(points);\n      graphic.initProps(polygon, target, seriesModel, idx);\n      graphic.initProps(polyline, target, seriesModel, idx);\n      var itemGroup = new graphic.Group();\n      var symbolGroup = new graphic.Group();\n      itemGroup.add(polyline);\n      itemGroup.add(polygon);\n      itemGroup.add(symbolGroup);\n      updateSymbols(polyline.shape.points, points, symbolGroup, data, idx, true);\n      data.setItemGraphicEl(idx, itemGroup);\n    }).update(function (newIdx, oldIdx) {\n      var itemGroup = oldData.getItemGraphicEl(oldIdx);\n      var polyline = itemGroup.childAt(0);\n      var polygon = itemGroup.childAt(1);\n      var symbolGroup = itemGroup.childAt(2);\n      var target = {\n        shape: {\n          points: data.getItemLayout(newIdx)\n        }\n      };\n\n      if (!target.shape.points) {\n        return;\n      }\n\n      updateSymbols(polyline.shape.points, target.shape.points, symbolGroup, data, newIdx, false);\n      graphic.updateProps(polyline, target, seriesModel);\n      graphic.updateProps(polygon, target, seriesModel);\n      data.setItemGraphicEl(newIdx, itemGroup);\n    }).remove(function (idx) {\n      group.remove(oldData.getItemGraphicEl(idx));\n    }).execute();\n    data.eachItemGraphicEl(function (itemGroup, idx) {\n      var itemModel = data.getItemModel(idx);\n      var polyline = itemGroup.childAt(0);\n      var polygon = itemGroup.childAt(1);\n      var symbolGroup = itemGroup.childAt(2);\n      var itemStyle = data.getItemVisual(idx, 'style');\n      var color = itemStyle.fill;\n      group.add(itemGroup);\n      polyline.useStyle(zrUtil.defaults(itemModel.getModel('lineStyle').getLineStyle(), {\n        fill: 'none',\n        stroke: color\n      }));\n      setStatesStylesFromModel(polyline, itemModel, 'lineStyle');\n      setStatesStylesFromModel(polygon, itemModel, 'areaStyle');\n      var areaStyleModel = itemModel.getModel('areaStyle');\n      var polygonIgnore = areaStyleModel.isEmpty() && areaStyleModel.parentModel.isEmpty();\n      polygon.ignore = polygonIgnore;\n      zrUtil.each(['emphasis', 'select', 'blur'], function (stateName) {\n        var stateModel = itemModel.getModel([stateName, 'areaStyle']);\n        var stateIgnore = stateModel.isEmpty() && stateModel.parentModel.isEmpty();\n        polygon.ensureState(stateName).ignore = stateIgnore && polygonIgnore;\n      });\n      polygon.useStyle(zrUtil.defaults(areaStyleModel.getAreaStyle(), {\n        fill: color,\n        opacity: 0.7,\n        decal: itemStyle.decal\n      }));\n      var emphasisModel = itemModel.getModel('emphasis');\n      var itemHoverStyle = emphasisModel.getModel('itemStyle').getItemStyle();\n      symbolGroup.eachChild(function (symbolPath) {\n        if (symbolPath instanceof ZRImage) {\n          var pathStyle = symbolPath.style;\n          symbolPath.useStyle(zrUtil.extend({\n            image: pathStyle.image,\n            x: pathStyle.x,\n            y: pathStyle.y,\n            width: pathStyle.width,\n            height: pathStyle.height\n          }, itemStyle));\n        } else {\n          symbolPath.useStyle(itemStyle);\n          symbolPath.setColor(color);\n        }\n\n        var pathEmphasisState = symbolPath.ensureState('emphasis');\n        pathEmphasisState.style = zrUtil.clone(itemHoverStyle);\n        var defaultText = data.get(data.dimensions[symbolPath.__dimIdx], idx);\n        (defaultText == null || isNaN(defaultText)) && (defaultText = '');\n        setLabelStyle(symbolPath, getLabelStatesModels(itemModel), {\n          labelFetcher: data.hostModel,\n          labelDataIndex: idx,\n          labelDimIndex: symbolPath.__dimIdx,\n          defaultText: defaultText,\n          inheritColor: color,\n          defaultOpacity: itemStyle.opacity\n        });\n      });\n      enableHoverEmphasis(itemGroup, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n    });\n    this._data = data;\n  };\n\n  RadarView.prototype.remove = function () {\n    this.group.removeAll();\n    this._data = null;\n  };\n\n  RadarView.type = 'radar';\n  return RadarView;\n}(ChartView);\n\nexport default RadarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport createListSimply from '../helper/createListSimply';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider';\nimport { createTooltipMarkup, retrieveVisualColorForTooltipMarker } from '../../component/tooltip/tooltipMarkup';\n\nvar RadarSeriesModel = function (_super) {\n  __extends(RadarSeriesModel, _super);\n\n  function RadarSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = RadarSeriesModel.type;\n    _this.useColorPaletteOnData = true;\n    _this.hasSymbolVisual = true;\n    return _this;\n  }\n\n  RadarSeriesModel.prototype.init = function (option) {\n    _super.prototype.init.apply(this, arguments);\n\n    this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));\n  };\n\n  RadarSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListSimply(this, {\n      generateCoord: 'indicator_',\n      generateCoordCount: Infinity\n    });\n  };\n\n  RadarSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var data = this.getData();\n    var coordSys = this.coordinateSystem;\n    var indicatorAxes = coordSys.getIndicatorAxes();\n    var name = this.getData().getName(dataIndex);\n    var nameToDisplay = name === '' ? this.name : name;\n    var markerColor = retrieveVisualColorForTooltipMarker(this, dataIndex);\n    return createTooltipMarkup('section', {\n      header: nameToDisplay,\n      sortBlocks: true,\n      blocks: zrUtil.map(indicatorAxes, function (axis) {\n        var val = data.get(data.mapDimension(axis.dim), dataIndex);\n        return createTooltipMarkup('nameValue', {\n          markerType: 'subItem',\n          markerColor: markerColor,\n          name: axis.name,\n          value: val,\n          sortParam: val\n        });\n      })\n    });\n  };\n\n  RadarSeriesModel.prototype.getTooltipPosition = function (dataIndex) {\n    if (dataIndex != null) {\n      var data_1 = this.getData();\n      var coordSys = this.coordinateSystem;\n      var values = data_1.getValues(zrUtil.map(coordSys.dimensions, function (dim) {\n        return data_1.mapDimension(dim);\n      }), dataIndex);\n\n      for (var i = 0, len = values.length; i < len; i++) {\n        if (!isNaN(values[i])) {\n          var indicatorAxes = coordSys.getIndicatorAxes();\n          return coordSys.coordToPoint(indicatorAxes[i].dataToCoord(values[i]), i);\n        }\n      }\n    }\n  };\n\n  RadarSeriesModel.type = 'series.radar';\n  RadarSeriesModel.dependencies = ['radar'];\n  RadarSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'radar',\n    legendHoverLink: true,\n    radarIndex: 0,\n    lineStyle: {\n      width: 2,\n      type: 'solid'\n    },\n    label: {\n      position: 'top'\n    },\n    symbol: 'emptyCircle',\n    symbolSize: 4\n  };\n  return RadarSeriesModel;\n}(SeriesModel);\n\nexport default RadarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport axisDefault from '../axisDefault';\nimport Model from '../../model/Model';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin';\nimport ComponentModel from '../../model/Component';\nvar valueAxisDefault = axisDefault.value;\n\nfunction defaultsShow(opt, show) {\n  return zrUtil.defaults({\n    show: show\n  }, opt);\n}\n\nvar RadarModel = function (_super) {\n  __extends(RadarModel, _super);\n\n  function RadarModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = RadarModel.type;\n    return _this;\n  }\n\n  RadarModel.prototype.optionUpdated = function () {\n    var boundaryGap = this.get('boundaryGap');\n    var splitNumber = this.get('splitNumber');\n    var scale = this.get('scale');\n    var axisLine = this.get('axisLine');\n    var axisTick = this.get('axisTick');\n    var axisLabel = this.get('axisLabel');\n    var nameTextStyle = this.get('axisName');\n    var showName = this.get(['axisName', 'show']);\n    var nameFormatter = this.get(['axisName', 'formatter']);\n    var nameGap = this.get('axisNameGap');\n    var triggerEvent = this.get('triggerEvent');\n    var indicatorModels = zrUtil.map(this.get('indicator') || [], function (indicatorOpt) {\n      if (indicatorOpt.max != null && indicatorOpt.max > 0 && !indicatorOpt.min) {\n        indicatorOpt.min = 0;\n      } else if (indicatorOpt.min != null && indicatorOpt.min < 0 && !indicatorOpt.max) {\n        indicatorOpt.max = 0;\n      }\n\n      var iNameTextStyle = nameTextStyle;\n\n      if (indicatorOpt.color != null) {\n        iNameTextStyle = zrUtil.defaults({\n          color: indicatorOpt.color\n        }, nameTextStyle);\n      }\n\n      var innerIndicatorOpt = zrUtil.merge(zrUtil.clone(indicatorOpt), {\n        boundaryGap: boundaryGap,\n        splitNumber: splitNumber,\n        scale: scale,\n        axisLine: axisLine,\n        axisTick: axisTick,\n        axisLabel: axisLabel,\n        name: indicatorOpt.text,\n        nameLocation: 'end',\n        nameGap: nameGap,\n        nameTextStyle: iNameTextStyle,\n        triggerEvent: triggerEvent\n      }, false);\n\n      if (!showName) {\n        innerIndicatorOpt.name = '';\n      }\n\n      if (typeof nameFormatter === 'string') {\n        var indName = innerIndicatorOpt.name;\n        innerIndicatorOpt.name = nameFormatter.replace('{value}', indName != null ? indName : '');\n      } else if (typeof nameFormatter === 'function') {\n        innerIndicatorOpt.name = nameFormatter(innerIndicatorOpt.name, innerIndicatorOpt);\n      }\n\n      var model = new Model(innerIndicatorOpt, null, this.ecModel);\n      zrUtil.mixin(model, AxisModelCommonMixin.prototype);\n      model.mainType = 'radar';\n      model.componentIndex = this.componentIndex;\n      return model;\n    }, this);\n    this._indicatorModels = indicatorModels;\n  };\n\n  RadarModel.prototype.getIndicatorModels = function () {\n    return this._indicatorModels;\n  };\n\n  RadarModel.type = 'radar';\n  RadarModel.defaultOption = {\n    zlevel: 0,\n    z: 0,\n    center: ['50%', '50%'],\n    radius: '75%',\n    startAngle: 90,\n    axisName: {\n      show: true\n    },\n    boundaryGap: [0, 0],\n    splitNumber: 5,\n    axisNameGap: 15,\n    scale: false,\n    shape: 'polygon',\n    axisLine: zrUtil.merge({\n      lineStyle: {\n        color: '#bbb'\n      }\n    }, valueAxisDefault.axisLine),\n    axisLabel: defaultsShow(valueAxisDefault.axisLabel, false),\n    axisTick: defaultsShow(valueAxisDefault.axisTick, false),\n    splitLine: defaultsShow(valueAxisDefault.splitLine, true),\n    splitArea: defaultsShow(valueAxisDefault.splitArea, true),\n    indicator: []\n  };\n  return RadarModel;\n}(ComponentModel);\n\nexport default RadarModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport AxisBuilder from '../axis/AxisBuilder';\nimport * as graphic from '../../util/graphic';\nimport ComponentView from '../../view/Component';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\n\nvar RadarView = function (_super) {\n  __extends(RadarView, _super);\n\n  function RadarView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = RadarView.type;\n    return _this;\n  }\n\n  RadarView.prototype.render = function (radarModel, ecModel, api) {\n    var group = this.group;\n    group.removeAll();\n\n    this._buildAxes(radarModel);\n\n    this._buildSplitLineAndArea(radarModel);\n  };\n\n  RadarView.prototype._buildAxes = function (radarModel) {\n    var radar = radarModel.coordinateSystem;\n    var indicatorAxes = radar.getIndicatorAxes();\n    var axisBuilders = zrUtil.map(indicatorAxes, function (indicatorAxis) {\n      var axisBuilder = new AxisBuilder(indicatorAxis.model, {\n        position: [radar.cx, radar.cy],\n        rotation: indicatorAxis.angle,\n        labelDirection: -1,\n        tickDirection: -1,\n        nameDirection: 1\n      });\n      return axisBuilder;\n    });\n    zrUtil.each(axisBuilders, function (axisBuilder) {\n      zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n      this.group.add(axisBuilder.getGroup());\n    }, this);\n  };\n\n  RadarView.prototype._buildSplitLineAndArea = function (radarModel) {\n    var radar = radarModel.coordinateSystem;\n    var indicatorAxes = radar.getIndicatorAxes();\n\n    if (!indicatorAxes.length) {\n      return;\n    }\n\n    var shape = radarModel.get('shape');\n    var splitLineModel = radarModel.getModel('splitLine');\n    var splitAreaModel = radarModel.getModel('splitArea');\n    var lineStyleModel = splitLineModel.getModel('lineStyle');\n    var areaStyleModel = splitAreaModel.getModel('areaStyle');\n    var showSplitLine = splitLineModel.get('show');\n    var showSplitArea = splitAreaModel.get('show');\n    var splitLineColors = lineStyleModel.get('color');\n    var splitAreaColors = areaStyleModel.get('color');\n    var splitLineColorsArr = zrUtil.isArray(splitLineColors) ? splitLineColors : [splitLineColors];\n    var splitAreaColorsArr = zrUtil.isArray(splitAreaColors) ? splitAreaColors : [splitAreaColors];\n    var splitLines = [];\n    var splitAreas = [];\n\n    function getColorIndex(areaOrLine, areaOrLineColorList, idx) {\n      var colorIndex = idx % areaOrLineColorList.length;\n      areaOrLine[colorIndex] = areaOrLine[colorIndex] || [];\n      return colorIndex;\n    }\n\n    if (shape === 'circle') {\n      var ticksRadius = indicatorAxes[0].getTicksCoords();\n      var cx = radar.cx;\n      var cy = radar.cy;\n\n      for (var i = 0; i < ticksRadius.length; i++) {\n        if (showSplitLine) {\n          var colorIndex = getColorIndex(splitLines, splitLineColorsArr, i);\n          splitLines[colorIndex].push(new graphic.Circle({\n            shape: {\n              cx: cx,\n              cy: cy,\n              r: ticksRadius[i].coord\n            }\n          }));\n        }\n\n        if (showSplitArea && i < ticksRadius.length - 1) {\n          var colorIndex = getColorIndex(splitAreas, splitAreaColorsArr, i);\n          splitAreas[colorIndex].push(new graphic.Ring({\n            shape: {\n              cx: cx,\n              cy: cy,\n              r0: ticksRadius[i].coord,\n              r: ticksRadius[i + 1].coord\n            }\n          }));\n        }\n      }\n    } else {\n      var realSplitNumber_1;\n      var axesTicksPoints = zrUtil.map(indicatorAxes, function (indicatorAxis, idx) {\n        var ticksCoords = indicatorAxis.getTicksCoords();\n        realSplitNumber_1 = realSplitNumber_1 == null ? ticksCoords.length - 1 : Math.min(ticksCoords.length - 1, realSplitNumber_1);\n        return zrUtil.map(ticksCoords, function (tickCoord) {\n          return radar.coordToPoint(tickCoord.coord, idx);\n        });\n      });\n      var prevPoints = [];\n\n      for (var i = 0; i <= realSplitNumber_1; i++) {\n        var points = [];\n\n        for (var j = 0; j < indicatorAxes.length; j++) {\n          points.push(axesTicksPoints[j][i]);\n        }\n\n        if (points[0]) {\n          points.push(points[0].slice());\n        } else {\n          if (process.env.NODE_ENV !== 'production') {\n            console.error('Can\\'t draw value axis ' + i);\n          }\n        }\n\n        if (showSplitLine) {\n          var colorIndex = getColorIndex(splitLines, splitLineColorsArr, i);\n          splitLines[colorIndex].push(new graphic.Polyline({\n            shape: {\n              points: points\n            }\n          }));\n        }\n\n        if (showSplitArea && prevPoints) {\n          var colorIndex = getColorIndex(splitAreas, splitAreaColorsArr, i - 1);\n          splitAreas[colorIndex].push(new graphic.Polygon({\n            shape: {\n              points: points.concat(prevPoints)\n            }\n          }));\n        }\n\n        prevPoints = points.slice().reverse();\n      }\n    }\n\n    var lineStyle = lineStyleModel.getLineStyle();\n    var areaStyle = areaStyleModel.getAreaStyle();\n    zrUtil.each(splitAreas, function (splitAreas, idx) {\n      this.group.add(graphic.mergePath(splitAreas, {\n        style: zrUtil.defaults({\n          stroke: 'none',\n          fill: splitAreaColorsArr[idx % splitAreaColorsArr.length]\n        }, areaStyle),\n        silent: true\n      }));\n    }, this);\n    zrUtil.each(splitLines, function (splitLines, idx) {\n      this.group.add(graphic.mergePath(splitLines, {\n        style: zrUtil.defaults({\n          fill: 'none',\n          stroke: splitLineColorsArr[idx % splitLineColorsArr.length]\n        }, lineStyle),\n        silent: true\n      }));\n    }, this);\n  };\n\n  RadarView.type = 'radar';\n  return RadarView;\n}(ComponentView);\n\nexport default RadarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis';\n\nvar IndicatorAxis = function (_super) {\n  __extends(IndicatorAxis, _super);\n\n  function IndicatorAxis(dim, scale, radiusExtent) {\n    var _this = _super.call(this, dim, scale, radiusExtent) || this;\n\n    _this.type = 'value';\n    _this.angle = 0;\n    _this.name = '';\n    return _this;\n  }\n\n  return IndicatorAxis;\n}(Axis);\n\nexport default IndicatorAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport IndicatorAxis from './IndicatorAxis';\nimport IntervalScale from '../../scale/Interval';\nimport * as numberUtil from '../../util/number';\nimport { getScaleExtent, niceScaleExtent } from '../axisHelper';\nimport { parseAxisModelMinMax } from '../scaleRawExtentInfo';\nimport { map, each } from 'zrender/lib/core/util';\n\nvar Radar = function () {\n  function Radar(radarModel, ecModel, api) {\n    this.dimensions = [];\n    this._model = radarModel;\n    this._indicatorAxes = map(radarModel.getIndicatorModels(), function (indicatorModel, idx) {\n      var dim = 'indicator_' + idx;\n      var indicatorAxis = new IndicatorAxis(dim, new IntervalScale());\n      indicatorAxis.name = indicatorModel.get('name');\n      indicatorAxis.model = indicatorModel;\n      indicatorModel.axis = indicatorAxis;\n      this.dimensions.push(dim);\n      return indicatorAxis;\n    }, this);\n    this.resize(radarModel, api);\n  }\n\n  Radar.prototype.getIndicatorAxes = function () {\n    return this._indicatorAxes;\n  };\n\n  Radar.prototype.dataToPoint = function (value, indicatorIndex) {\n    var indicatorAxis = this._indicatorAxes[indicatorIndex];\n    return this.coordToPoint(indicatorAxis.dataToCoord(value), indicatorIndex);\n  };\n\n  Radar.prototype.coordToPoint = function (coord, indicatorIndex) {\n    var indicatorAxis = this._indicatorAxes[indicatorIndex];\n    var angle = indicatorAxis.angle;\n    var x = this.cx + coord * Math.cos(angle);\n    var y = this.cy - coord * Math.sin(angle);\n    return [x, y];\n  };\n\n  Radar.prototype.pointToData = function (pt) {\n    var dx = pt[0] - this.cx;\n    var dy = pt[1] - this.cy;\n    var radius = Math.sqrt(dx * dx + dy * dy);\n    dx /= radius;\n    dy /= radius;\n    var radian = Math.atan2(-dy, dx);\n    var minRadianDiff = Infinity;\n    var closestAxis;\n    var closestAxisIdx = -1;\n\n    for (var i = 0; i < this._indicatorAxes.length; i++) {\n      var indicatorAxis = this._indicatorAxes[i];\n      var diff = Math.abs(radian - indicatorAxis.angle);\n\n      if (diff < minRadianDiff) {\n        closestAxis = indicatorAxis;\n        closestAxisIdx = i;\n        minRadianDiff = diff;\n      }\n    }\n\n    return [closestAxisIdx, +(closestAxis && closestAxis.coordToData(radius))];\n  };\n\n  Radar.prototype.resize = function (radarModel, api) {\n    var center = radarModel.get('center');\n    var viewWidth = api.getWidth();\n    var viewHeight = api.getHeight();\n    var viewSize = Math.min(viewWidth, viewHeight) / 2;\n    this.cx = numberUtil.parsePercent(center[0], viewWidth);\n    this.cy = numberUtil.parsePercent(center[1], viewHeight);\n    this.startAngle = radarModel.get('startAngle') * Math.PI / 180;\n    var radius = radarModel.get('radius');\n\n    if (typeof radius === 'string' || typeof radius === 'number') {\n      radius = [0, radius];\n    }\n\n    this.r0 = numberUtil.parsePercent(radius[0], viewSize);\n    this.r = numberUtil.parsePercent(radius[1], viewSize);\n    each(this._indicatorAxes, function (indicatorAxis, idx) {\n      indicatorAxis.setExtent(this.r0, this.r);\n      var angle = this.startAngle + idx * Math.PI * 2 / this._indicatorAxes.length;\n      angle = Math.atan2(Math.sin(angle), Math.cos(angle));\n      indicatorAxis.angle = angle;\n    }, this);\n  };\n\n  Radar.prototype.update = function (ecModel, api) {\n    var indicatorAxes = this._indicatorAxes;\n    var radarModel = this._model;\n    each(indicatorAxes, function (indicatorAxis) {\n      indicatorAxis.scale.setExtent(Infinity, -Infinity);\n    });\n    ecModel.eachSeriesByType('radar', function (radarSeries, idx) {\n      if (radarSeries.get('coordinateSystem') !== 'radar' || ecModel.getComponent('radar', radarSeries.get('radarIndex')) !== radarModel) {\n        return;\n      }\n\n      var data = radarSeries.getData();\n      each(indicatorAxes, function (indicatorAxis) {\n        indicatorAxis.scale.unionExtentFromData(data, data.mapDimension(indicatorAxis.dim));\n      });\n    }, this);\n    var splitNumber = radarModel.get('splitNumber');\n\n    function increaseInterval(interval) {\n      var exp10 = Math.pow(10, Math.floor(Math.log(interval) / Math.LN10));\n      var f = interval / exp10;\n\n      if (f === 2) {\n        f = 5;\n      } else {\n        f *= 2;\n      }\n\n      return f * exp10;\n    }\n\n    each(indicatorAxes, function (indicatorAxis, idx) {\n      var rawExtent = getScaleExtent(indicatorAxis.scale, indicatorAxis.model).extent;\n      niceScaleExtent(indicatorAxis.scale, indicatorAxis.model);\n      var axisModel = indicatorAxis.model;\n      var scale = indicatorAxis.scale;\n      var fixedMin = parseAxisModelMinMax(scale, axisModel.get('min', true));\n      var fixedMax = parseAxisModelMinMax(scale, axisModel.get('max', true));\n      var interval = scale.getInterval();\n\n      if (fixedMin != null && fixedMax != null) {\n        scale.setExtent(+fixedMin, +fixedMax);\n        scale.setInterval((fixedMax - fixedMin) / splitNumber);\n      } else if (fixedMin != null) {\n        var max = void 0;\n\n        do {\n          max = fixedMin + interval * splitNumber;\n          scale.setExtent(+fixedMin, max);\n          scale.setInterval(interval);\n          interval = increaseInterval(interval);\n        } while (max < rawExtent[1] && isFinite(max) && isFinite(rawExtent[1]));\n      } else if (fixedMax != null) {\n        var min = void 0;\n\n        do {\n          min = fixedMax - interval * splitNumber;\n          scale.setExtent(min, +fixedMax);\n          scale.setInterval(interval);\n          interval = increaseInterval(interval);\n        } while (min > rawExtent[0] && isFinite(min) && isFinite(rawExtent[0]));\n      } else {\n        var nicedSplitNumber = scale.getTicks().length - 1;\n\n        if (nicedSplitNumber > splitNumber) {\n          interval = increaseInterval(interval);\n        }\n\n        var max = Math.ceil(rawExtent[1] / interval) * interval;\n        var min = numberUtil.round(max - interval * splitNumber);\n        scale.setExtent(min, max);\n        scale.setInterval(interval);\n      }\n    });\n  };\n\n  Radar.prototype.convertToPixel = function (ecModel, finder, value) {\n    console.warn('Not implemented.');\n    return null;\n  };\n\n  Radar.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n    console.warn('Not implemented.');\n    return null;\n  };\n\n  Radar.prototype.containPoint = function (point) {\n    console.warn('Not implemented.');\n    return false;\n  };\n\n  Radar.create = function (ecModel, api) {\n    var radarList = [];\n    ecModel.eachComponent('radar', function (radarModel) {\n      var radar = new Radar(radarModel, ecModel, api);\n      radarList.push(radar);\n      radarModel.coordinateSystem = radar;\n    });\n    ecModel.eachSeriesByType('radar', function (radarSeries) {\n      if (radarSeries.get('coordinateSystem') === 'radar') {\n        radarSeries.coordinateSystem = radarList[radarSeries.get('radarIndex') || 0];\n      }\n    });\n    return radarList;\n  };\n\n  Radar.dimensions = [];\n  return Radar;\n}();\n\nexport default Radar;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport RadarModel from '../../coord/radar/RadarModel';\nimport RadarView from './RadarView';\nimport Radar from '../../coord/radar/Radar';\nexport function install(registers) {\n  registers.registerCoordinateSystem('radar', Radar);\n  registers.registerComponentModel(RadarModel);\n  registers.registerComponentView(RadarView);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport radarLayout from '../radar/radarLayout';\nimport dataFilter from '../../processor/dataFilter';\nimport backwardCompat from '../radar/backwardCompat';\nimport RadarView from './RadarView';\nimport RadarSeriesModel from './RadarSeries';\nimport { install as installRadarComponent } from '../../component/radar/install';\nexport function install(registers) {\n  use(installRadarComponent);\n  registers.registerChartView(RadarView);\n  registers.registerSeriesModel(RadarSeriesModel);\n  registers.registerLayout(radarLayout);\n  registers.registerProcessor(dataFilter('radar'));\n  registers.registerPreprocessor(backwardCompat);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as echarts from '../../core/echarts';\nvar ATTR = '\\0_ec_interaction_mutex';\nexport function take(zr, resourceKey, userKey) {\n  var store = getStore(zr);\n  store[resourceKey] = userKey;\n}\nexport function release(zr, resourceKey, userKey) {\n  var store = getStore(zr);\n  var uKey = store[resourceKey];\n\n  if (uKey === userKey) {\n    store[resourceKey] = null;\n  }\n}\nexport function isTaken(zr, resourceKey) {\n  return !!getStore(zr)[resourceKey];\n}\n\nfunction getStore(zr) {\n  return zr[ATTR] || (zr[ATTR] = {});\n}\n\necharts.registerAction({\n  type: 'takeGlobalCursor',\n  event: 'globalCursorTaken',\n  update: 'update'\n}, function () {});","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Eventful from 'zrender/lib/core/Eventful';\nimport * as eventTool from 'zrender/lib/core/event';\nimport * as interactionMutex from './interactionMutex';\nimport { isString, bind, defaults, clone } from 'zrender/lib/core/util';\n\nvar RoamController = function (_super) {\n  __extends(RoamController, _super);\n\n  function RoamController(zr) {\n    var _this = _super.call(this) || this;\n\n    _this._zr = zr;\n    var mousedownHandler = bind(_this._mousedownHandler, _this);\n    var mousemoveHandler = bind(_this._mousemoveHandler, _this);\n    var mouseupHandler = bind(_this._mouseupHandler, _this);\n    var mousewheelHandler = bind(_this._mousewheelHandler, _this);\n    var pinchHandler = bind(_this._pinchHandler, _this);\n\n    _this.enable = function (controlType, opt) {\n      this.disable();\n      this._opt = defaults(clone(opt) || {}, {\n        zoomOnMouseWheel: true,\n        moveOnMouseMove: true,\n        moveOnMouseWheel: false,\n        preventDefaultMouseMove: true\n      });\n\n      if (controlType == null) {\n        controlType = true;\n      }\n\n      if (controlType === true || controlType === 'move' || controlType === 'pan') {\n        zr.on('mousedown', mousedownHandler);\n        zr.on('mousemove', mousemoveHandler);\n        zr.on('mouseup', mouseupHandler);\n      }\n\n      if (controlType === true || controlType === 'scale' || controlType === 'zoom') {\n        zr.on('mousewheel', mousewheelHandler);\n        zr.on('pinch', pinchHandler);\n      }\n    };\n\n    _this.disable = function () {\n      zr.off('mousedown', mousedownHandler);\n      zr.off('mousemove', mousemoveHandler);\n      zr.off('mouseup', mouseupHandler);\n      zr.off('mousewheel', mousewheelHandler);\n      zr.off('pinch', pinchHandler);\n    };\n\n    return _this;\n  }\n\n  RoamController.prototype.isDragging = function () {\n    return this._dragging;\n  };\n\n  RoamController.prototype.isPinching = function () {\n    return this._pinching;\n  };\n\n  RoamController.prototype.setPointerChecker = function (pointerChecker) {\n    this.pointerChecker = pointerChecker;\n  };\n\n  RoamController.prototype.dispose = function () {\n    this.disable();\n  };\n\n  RoamController.prototype._mousedownHandler = function (e) {\n    if (eventTool.isMiddleOrRightButtonOnMouseUpDown(e) || e.target && e.target.draggable) {\n      return;\n    }\n\n    var x = e.offsetX;\n    var y = e.offsetY;\n\n    if (this.pointerChecker && this.pointerChecker(e, x, y)) {\n      this._x = x;\n      this._y = y;\n      this._dragging = true;\n    }\n  };\n\n  RoamController.prototype._mousemoveHandler = function (e) {\n    if (!this._dragging || !isAvailableBehavior('moveOnMouseMove', e, this._opt) || e.gestureEvent === 'pinch' || interactionMutex.isTaken(this._zr, 'globalPan')) {\n      return;\n    }\n\n    var x = e.offsetX;\n    var y = e.offsetY;\n    var oldX = this._x;\n    var oldY = this._y;\n    var dx = x - oldX;\n    var dy = y - oldY;\n    this._x = x;\n    this._y = y;\n    this._opt.preventDefaultMouseMove && eventTool.stop(e.event);\n    trigger(this, 'pan', 'moveOnMouseMove', e, {\n      dx: dx,\n      dy: dy,\n      oldX: oldX,\n      oldY: oldY,\n      newX: x,\n      newY: y,\n      isAvailableBehavior: null\n    });\n  };\n\n  RoamController.prototype._mouseupHandler = function (e) {\n    if (!eventTool.isMiddleOrRightButtonOnMouseUpDown(e)) {\n      this._dragging = false;\n    }\n  };\n\n  RoamController.prototype._mousewheelHandler = function (e) {\n    var shouldZoom = isAvailableBehavior('zoomOnMouseWheel', e, this._opt);\n    var shouldMove = isAvailableBehavior('moveOnMouseWheel', e, this._opt);\n    var wheelDelta = e.wheelDelta;\n    var absWheelDeltaDelta = Math.abs(wheelDelta);\n    var originX = e.offsetX;\n    var originY = e.offsetY;\n\n    if (wheelDelta === 0 || !shouldZoom && !shouldMove) {\n      return;\n    }\n\n    if (shouldZoom) {\n      var factor = absWheelDeltaDelta > 3 ? 1.4 : absWheelDeltaDelta > 1 ? 1.2 : 1.1;\n      var scale = wheelDelta > 0 ? factor : 1 / factor;\n      checkPointerAndTrigger(this, 'zoom', 'zoomOnMouseWheel', e, {\n        scale: scale,\n        originX: originX,\n        originY: originY,\n        isAvailableBehavior: null\n      });\n    }\n\n    if (shouldMove) {\n      var absDelta = Math.abs(wheelDelta);\n      var scrollDelta = (wheelDelta > 0 ? 1 : -1) * (absDelta > 3 ? 0.4 : absDelta > 1 ? 0.15 : 0.05);\n      checkPointerAndTrigger(this, 'scrollMove', 'moveOnMouseWheel', e, {\n        scrollDelta: scrollDelta,\n        originX: originX,\n        originY: originY,\n        isAvailableBehavior: null\n      });\n    }\n  };\n\n  RoamController.prototype._pinchHandler = function (e) {\n    if (interactionMutex.isTaken(this._zr, 'globalPan')) {\n      return;\n    }\n\n    var scale = e.pinchScale > 1 ? 1.1 : 1 / 1.1;\n    checkPointerAndTrigger(this, 'zoom', null, e, {\n      scale: scale,\n      originX: e.pinchX,\n      originY: e.pinchY,\n      isAvailableBehavior: null\n    });\n  };\n\n  return RoamController;\n}(Eventful);\n\nfunction checkPointerAndTrigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\n  if (controller.pointerChecker && controller.pointerChecker(e, contollerEvent.originX, contollerEvent.originY)) {\n    eventTool.stop(e.event);\n    trigger(controller, eventName, behaviorToCheck, e, contollerEvent);\n  }\n}\n\nfunction trigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\n  contollerEvent.isAvailableBehavior = bind(isAvailableBehavior, null, behaviorToCheck, e);\n  controller.trigger(eventName, contollerEvent);\n}\n\nfunction isAvailableBehavior(behaviorToCheck, e, settings) {\n  var setting = settings[behaviorToCheck];\n  return !behaviorToCheck || setting && (!isString(setting) || e.event[setting + 'Key']);\n}\n\nexport default RoamController;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function updateViewOnPan(controllerHost, dx, dy) {\n  var target = controllerHost.target;\n  target.x += dx;\n  target.y += dy;\n  target.dirty();\n}\nexport function updateViewOnZoom(controllerHost, zoomDelta, zoomX, zoomY) {\n  var target = controllerHost.target;\n  var zoomLimit = controllerHost.zoomLimit;\n  var newZoom = controllerHost.zoom = controllerHost.zoom || 1;\n  newZoom *= zoomDelta;\n\n  if (zoomLimit) {\n    var zoomMin = zoomLimit.min || 0;\n    var zoomMax = zoomLimit.max || Infinity;\n    newZoom = Math.max(Math.min(zoomMax, newZoom), zoomMin);\n  }\n\n  var zoomScale = newZoom / controllerHost.zoom;\n  controllerHost.zoom = newZoom;\n  target.x -= (zoomX - target.x) * (zoomScale - 1);\n  target.y -= (zoomY - target.y) * (zoomScale - 1);\n  target.scaleX *= zoomScale;\n  target.scaleY *= zoomScale;\n  target.dirty();\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar IRRELEVANT_EXCLUDES = {\n  'axisPointer': 1,\n  'tooltip': 1,\n  'brush': 1\n};\nexport function onIrrelevantElement(e, api, targetCoordSysModel) {\n  var model = api.getComponentByElement(e.topTarget);\n  var coordSys = model && model.coordinateSystem;\n  return model && model !== targetCoordSysModel && !IRRELEVANT_EXCLUDES.hasOwnProperty(model.mainType) && coordSys && coordSys.model !== targetCoordSysModel;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Region from '../Region';\nvar geoCoord = [126, 25];\nvar points = [[[0, 3.5], [7, 11.2], [15, 11.9], [30, 7], [42, 0.7], [52, 0.7], [56, 7.7], [59, 0.7], [64, 0.7], [64, 0], [5, 0], [0, 3.5]], [[13, 16.1], [19, 14.7], [16, 21.7], [11, 23.1], [13, 16.1]], [[12, 32.2], [14, 38.5], [15, 38.5], [13, 32.2], [12, 32.2]], [[16, 47.6], [12, 53.2], [13, 53.2], [18, 47.6], [16, 47.6]], [[6, 64.4], [8, 70], [9, 70], [8, 64.4], [6, 64.4]], [[23, 82.6], [29, 79.8], [30, 79.8], [25, 82.6], [23, 82.6]], [[37, 70.7], [43, 62.3], [44, 62.3], [39, 70.7], [37, 70.7]], [[48, 51.1], [51, 45.5], [53, 45.5], [50, 51.1], [48, 51.1]], [[51, 35], [51, 28.7], [53, 28.7], [53, 35], [51, 35]], [[52, 22.4], [55, 17.5], [56, 17.5], [53, 22.4], [52, 22.4]], [[58, 12.6], [62, 7], [63, 7], [60, 12.6], [58, 12.6]], [[0, 3.5], [0, 93.1], [64, 93.1], [64, 0], [63, 0], [63, 92.4], [1, 92.4], [1, 3.5], [0, 3.5]]];\n\nfor (var i = 0; i < points.length; i++) {\n  for (var k = 0; k < points[i].length; k++) {\n    points[i][k][0] /= 10.5;\n    points[i][k][1] /= -10.5 / 0.75;\n    points[i][k][0] += geoCoord[0];\n    points[i][k][1] += geoCoord[1];\n  }\n}\n\nexport default function fixNanhai(mapType, regions) {\n  if (mapType === 'china') {\n    regions.push(new Region('南海诸岛', zrUtil.map(points, function (exterior) {\n      return {\n        type: 'polygon',\n        exterior: exterior\n      };\n    }), geoCoord));\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar coordsOffsetMap = {\n  '南海诸岛': [32, 80],\n  '广东': [0, -10],\n  '香港': [10, 5],\n  '澳门': [-10, 10],\n  '天津': [5, 5]\n};\nexport default function fixTextCoords(mapType, region) {\n  if (mapType === 'china') {\n    var coordFix = coordsOffsetMap[region.name];\n\n    if (coordFix) {\n      var cp = region.center;\n      cp[0] += coordFix[0] / 10.5;\n      cp[1] += -coordFix[1] / (10.5 / 0.75);\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar geoCoordMap = {\n  'Russia': [100, 60],\n  'United States': [-99, 38],\n  'United States of America': [-99, 38]\n};\nexport default function fixGeoCoords(mapType, region) {\n  if (mapType === 'world') {\n    var geoCoord = geoCoordMap[region.name];\n\n    if (geoCoord) {\n      var cp = region.center;\n      cp[0] = geoCoord[0];\n      cp[1] = geoCoord[1];\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar points = [[[123.45165252685547, 25.73527164402261], [123.49731445312499, 25.73527164402261], [123.49731445312499, 25.750734064600884], [123.45165252685547, 25.750734064600884], [123.45165252685547, 25.73527164402261]]];\nexport default function fixDiaoyuIsland(mapType, region) {\n  if (mapType === 'china' && region.name === '台湾') {\n    region.geometries.push({\n      type: 'polygon',\n      exterior: points[0]\n    });\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each } from 'zrender/lib/core/util';\nimport parseGeoJson from './parseGeoJson';\nimport { makeInner } from '../../util/model';\nimport fixNanhai from './fix/nanhai';\nimport fixTextCoord from './fix/textCoord';\nimport fixGeoCoord from './fix/geoCoord';\nimport fixDiaoyuIsland from './fix/diaoyuIsland';\nvar inner = makeInner();\nexport default {\n  load: function (mapName, mapRecord, nameProperty) {\n    var parsed = inner(mapRecord).parsed;\n\n    if (parsed) {\n      return parsed;\n    }\n\n    var specialAreas = mapRecord.specialAreas || {};\n    var geoJSON = mapRecord.geoJSON;\n    var regions;\n\n    try {\n      regions = geoJSON ? parseGeoJson(geoJSON, nameProperty) : [];\n    } catch (e) {\n      throw new Error('Invalid geoJson format\\n' + e.message);\n    }\n\n    fixNanhai(mapName, regions);\n    each(regions, function (region) {\n      var regionName = region.name;\n      fixTextCoord(mapName, region);\n      fixGeoCoord(mapName, region);\n      fixDiaoyuIsland(mapName, region);\n      var specialArea = specialAreas[regionName];\n\n      if (specialArea) {\n        region.transformTo(specialArea.left, specialArea.top, specialArea.width, specialArea.height);\n      }\n    });\n    return inner(mapRecord).parsed = {\n      regions: regions,\n      boundingRect: getBoundingRect(regions)\n    };\n  }\n};\n\nfunction getBoundingRect(regions) {\n  var rect;\n\n  for (var i = 0; i < regions.length; i++) {\n    var regionRect = regions[i].getBoundingRect();\n    rect = rect || regionRect.clone();\n    rect.union(regionRect);\n  }\n\n  return rect;\n}","import Group from '../graphic/Group';\nimport ZRImage from '../graphic/Image';\nimport Circle from '../graphic/shape/Circle';\nimport Rect from '../graphic/shape/Rect';\nimport Ellipse from '../graphic/shape/Ellipse';\nimport Line from '../graphic/shape/Line';\nimport Path from '../graphic/Path';\nimport Polygon from '../graphic/shape/Polygon';\nimport Polyline from '../graphic/shape/Polyline';\nimport * as matrix from '../core/matrix';\nimport { createFromString } from './path';\nimport { extend, defaults, trim, each, map } from '../core/util';\nimport LinearGradient from '../graphic/LinearGradient';\nimport TSpan from '../graphic/TSpan';\nimport { parseXML } from './parseXML';\nvar DILIMITER_REG = /[\\s,]+/;\nvar nodeParsers;\nvar SVGParser = (function () {\n    function SVGParser() {\n        this._defs = {};\n        this._root = null;\n        this._isDefine = false;\n        this._isText = false;\n    }\n    SVGParser.prototype.parse = function (xml, opt) {\n        opt = opt || {};\n        var svg = parseXML(xml);\n        if (!svg) {\n            throw new Error('Illegal svg');\n        }\n        var root = new Group();\n        this._root = root;\n        var viewBox = svg.getAttribute('viewBox') || '';\n        var width = parseFloat((svg.getAttribute('width') || opt.width));\n        var height = parseFloat((svg.getAttribute('height') || opt.height));\n        isNaN(width) && (width = null);\n        isNaN(height) && (height = null);\n        parseAttributes(svg, root, null, true);\n        var child = svg.firstChild;\n        while (child) {\n            this._parseNode(child, root);\n            child = child.nextSibling;\n        }\n        var viewBoxRect;\n        var viewBoxTransform;\n        if (viewBox) {\n            var viewBoxArr = trim(viewBox).split(DILIMITER_REG);\n            if (viewBoxArr.length >= 4) {\n                viewBoxRect = {\n                    x: parseFloat((viewBoxArr[0] || 0)),\n                    y: parseFloat((viewBoxArr[1] || 0)),\n                    width: parseFloat(viewBoxArr[2]),\n                    height: parseFloat(viewBoxArr[3])\n                };\n            }\n        }\n        if (viewBoxRect && width != null && height != null) {\n            viewBoxTransform = makeViewBoxTransform(viewBoxRect, width, height);\n            if (!opt.ignoreViewBox) {\n                var elRoot = root;\n                root = new Group();\n                root.add(elRoot);\n                elRoot.scaleX = elRoot.scaleY = viewBoxTransform.scale;\n                elRoot.x = viewBoxTransform.x;\n                elRoot.y = viewBoxTransform.y;\n            }\n        }\n        if (!opt.ignoreRootClip && width != null && height != null) {\n            root.setClipPath(new Rect({\n                shape: { x: 0, y: 0, width: width, height: height }\n            }));\n        }\n        return {\n            root: root,\n            width: width,\n            height: height,\n            viewBoxRect: viewBoxRect,\n            viewBoxTransform: viewBoxTransform\n        };\n    };\n    SVGParser.prototype._parseNode = function (xmlNode, parentGroup) {\n        var nodeName = xmlNode.nodeName.toLowerCase();\n        if (nodeName === 'defs') {\n            this._isDefine = true;\n        }\n        else if (nodeName === 'text') {\n            this._isText = true;\n        }\n        var el;\n        if (this._isDefine) {\n            var parser = defineParsers[nodeName];\n            if (parser) {\n                var def = parser.call(this, xmlNode);\n                var id = xmlNode.getAttribute('id');\n                if (id) {\n                    this._defs[id] = def;\n                }\n            }\n        }\n        else {\n            var parser = nodeParsers[nodeName];\n            if (parser) {\n                el = parser.call(this, xmlNode, parentGroup);\n                parentGroup.add(el);\n            }\n        }\n        if (el) {\n            var child = xmlNode.firstChild;\n            while (child) {\n                if (child.nodeType === 1) {\n                    this._parseNode(child, el);\n                }\n                if (child.nodeType === 3 && this._isText) {\n                    this._parseText(child, el);\n                }\n                child = child.nextSibling;\n            }\n        }\n        if (nodeName === 'defs') {\n            this._isDefine = false;\n        }\n        else if (nodeName === 'text') {\n            this._isText = false;\n        }\n    };\n    SVGParser.prototype._parseText = function (xmlNode, parentGroup) {\n        if (xmlNode.nodeType === 1) {\n            var dx = xmlNode.getAttribute('dx') || 0;\n            var dy = xmlNode.getAttribute('dy') || 0;\n            this._textX += parseFloat(dx);\n            this._textY += parseFloat(dy);\n        }\n        var text = new TSpan({\n            style: {\n                text: xmlNode.textContent\n            },\n            x: this._textX || 0,\n            y: this._textY || 0\n        });\n        inheritStyle(parentGroup, text);\n        parseAttributes(xmlNode, text, this._defs);\n        var textStyle = text.style;\n        var fontSize = textStyle.fontSize;\n        if (fontSize && fontSize < 9) {\n            textStyle.fontSize = 9;\n            text.scaleX *= fontSize / 9;\n            text.scaleY *= fontSize / 9;\n        }\n        var font = (textStyle.fontSize || textStyle.fontFamily) && [\n            textStyle.fontStyle,\n            textStyle.fontWeight,\n            (textStyle.fontSize || 12) + 'px',\n            textStyle.fontFamily || 'sans-serif'\n        ].join(' ');\n        textStyle.font = font;\n        var rect = text.getBoundingRect();\n        this._textX += rect.width;\n        parentGroup.add(text);\n        return text;\n    };\n    SVGParser.internalField = (function () {\n        nodeParsers = {\n            'g': function (xmlNode, parentGroup) {\n                var g = new Group();\n                inheritStyle(parentGroup, g);\n                parseAttributes(xmlNode, g, this._defs);\n                return g;\n            },\n            'rect': function (xmlNode, parentGroup) {\n                var rect = new Rect();\n                inheritStyle(parentGroup, rect);\n                parseAttributes(xmlNode, rect, this._defs);\n                rect.setShape({\n                    x: parseFloat(xmlNode.getAttribute('x') || '0'),\n                    y: parseFloat(xmlNode.getAttribute('y') || '0'),\n                    width: parseFloat(xmlNode.getAttribute('width') || '0'),\n                    height: parseFloat(xmlNode.getAttribute('height') || '0')\n                });\n                return rect;\n            },\n            'circle': function (xmlNode, parentGroup) {\n                var circle = new Circle();\n                inheritStyle(parentGroup, circle);\n                parseAttributes(xmlNode, circle, this._defs);\n                circle.setShape({\n                    cx: parseFloat(xmlNode.getAttribute('cx') || '0'),\n                    cy: parseFloat(xmlNode.getAttribute('cy') || '0'),\n                    r: parseFloat(xmlNode.getAttribute('r') || '0')\n                });\n                return circle;\n            },\n            'line': function (xmlNode, parentGroup) {\n                var line = new Line();\n                inheritStyle(parentGroup, line);\n                parseAttributes(xmlNode, line, this._defs);\n                line.setShape({\n                    x1: parseFloat(xmlNode.getAttribute('x1') || '0'),\n                    y1: parseFloat(xmlNode.getAttribute('y1') || '0'),\n                    x2: parseFloat(xmlNode.getAttribute('x2') || '0'),\n                    y2: parseFloat(xmlNode.getAttribute('y2') || '0')\n                });\n                return line;\n            },\n            'ellipse': function (xmlNode, parentGroup) {\n                var ellipse = new Ellipse();\n                inheritStyle(parentGroup, ellipse);\n                parseAttributes(xmlNode, ellipse, this._defs);\n                ellipse.setShape({\n                    cx: parseFloat(xmlNode.getAttribute('cx') || '0'),\n                    cy: parseFloat(xmlNode.getAttribute('cy') || '0'),\n                    rx: parseFloat(xmlNode.getAttribute('rx') || '0'),\n                    ry: parseFloat(xmlNode.getAttribute('ry') || '0')\n                });\n                return ellipse;\n            },\n            'polygon': function (xmlNode, parentGroup) {\n                var pointsStr = xmlNode.getAttribute('points');\n                var pointsArr;\n                if (pointsStr) {\n                    pointsArr = parsePoints(pointsStr);\n                }\n                var polygon = new Polygon({\n                    shape: {\n                        points: pointsArr || []\n                    }\n                });\n                inheritStyle(parentGroup, polygon);\n                parseAttributes(xmlNode, polygon, this._defs);\n                return polygon;\n            },\n            'polyline': function (xmlNode, parentGroup) {\n                var path = new Path();\n                inheritStyle(parentGroup, path);\n                parseAttributes(xmlNode, path, this._defs);\n                var pointsStr = xmlNode.getAttribute('points');\n                var pointsArr;\n                if (pointsStr) {\n                    pointsArr = parsePoints(pointsStr);\n                }\n                var polyline = new Polyline({\n                    shape: {\n                        points: pointsArr || []\n                    }\n                });\n                return polyline;\n            },\n            'image': function (xmlNode, parentGroup) {\n                var img = new ZRImage();\n                inheritStyle(parentGroup, img);\n                parseAttributes(xmlNode, img, this._defs);\n                img.setStyle({\n                    image: xmlNode.getAttribute('xlink:href'),\n                    x: +xmlNode.getAttribute('x'),\n                    y: +xmlNode.getAttribute('y'),\n                    width: +xmlNode.getAttribute('width'),\n                    height: +xmlNode.getAttribute('height')\n                });\n                return img;\n            },\n            'text': function (xmlNode, parentGroup) {\n                var x = xmlNode.getAttribute('x') || '0';\n                var y = xmlNode.getAttribute('y') || '0';\n                var dx = xmlNode.getAttribute('dx') || '0';\n                var dy = xmlNode.getAttribute('dy') || '0';\n                this._textX = parseFloat(x) + parseFloat(dx);\n                this._textY = parseFloat(y) + parseFloat(dy);\n                var g = new Group();\n                inheritStyle(parentGroup, g);\n                parseAttributes(xmlNode, g, this._defs);\n                return g;\n            },\n            'tspan': function (xmlNode, parentGroup) {\n                var x = xmlNode.getAttribute('x');\n                var y = xmlNode.getAttribute('y');\n                if (x != null) {\n                    this._textX = parseFloat(x);\n                }\n                if (y != null) {\n                    this._textY = parseFloat(y);\n                }\n                var dx = xmlNode.getAttribute('dx') || 0;\n                var dy = xmlNode.getAttribute('dy') || 0;\n                var g = new Group();\n                inheritStyle(parentGroup, g);\n                parseAttributes(xmlNode, g, this._defs);\n                this._textX += dx;\n                this._textY += dy;\n                return g;\n            },\n            'path': function (xmlNode, parentGroup) {\n                var d = xmlNode.getAttribute('d') || '';\n                var path = createFromString(d);\n                inheritStyle(parentGroup, path);\n                parseAttributes(xmlNode, path, this._defs);\n                return path;\n            }\n        };\n    })();\n    return SVGParser;\n}());\nvar defineParsers = {\n    'lineargradient': function (xmlNode) {\n        var x1 = parseInt(xmlNode.getAttribute('x1') || '0', 10);\n        var y1 = parseInt(xmlNode.getAttribute('y1') || '0', 10);\n        var x2 = parseInt(xmlNode.getAttribute('x2') || '10', 10);\n        var y2 = parseInt(xmlNode.getAttribute('y2') || '0', 10);\n        var gradient = new LinearGradient(x1, y1, x2, y2);\n        _parseGradientColorStops(xmlNode, gradient);\n        return gradient;\n    }\n};\nfunction _parseGradientColorStops(xmlNode, gradient) {\n    var stop = xmlNode.firstChild;\n    while (stop) {\n        if (stop.nodeType === 1) {\n            var offsetStr = stop.getAttribute('offset');\n            var offset = void 0;\n            if (offsetStr.indexOf('%') > 0) {\n                offset = parseInt(offsetStr, 10) / 100;\n            }\n            else if (offsetStr) {\n                offset = parseFloat(offsetStr);\n            }\n            else {\n                offset = 0;\n            }\n            var stopColor = stop.getAttribute('stop-color') || '#000000';\n            gradient.colorStops.push({\n                offset: offset,\n                color: stopColor\n            });\n        }\n        stop = stop.nextSibling;\n    }\n}\nfunction inheritStyle(parent, child) {\n    if (parent && parent.__inheritedStyle) {\n        if (!child.__inheritedStyle) {\n            child.__inheritedStyle = {};\n        }\n        defaults(child.__inheritedStyle, parent.__inheritedStyle);\n    }\n}\nfunction parsePoints(pointsString) {\n    var list = trim(pointsString).split(DILIMITER_REG);\n    var points = [];\n    for (var i = 0; i < list.length; i += 2) {\n        var x = parseFloat(list[i]);\n        var y = parseFloat(list[i + 1]);\n        points.push([x, y]);\n    }\n    return points;\n}\nvar attributesMap = {\n    'fill': 'fill',\n    'stroke': 'stroke',\n    'stroke-width': 'lineWidth',\n    'opacity': 'opacity',\n    'fill-opacity': 'fillOpacity',\n    'stroke-opacity': 'strokeOpacity',\n    'stroke-dasharray': 'lineDash',\n    'stroke-dashoffset': 'lineDashOffset',\n    'stroke-linecap': 'lineCap',\n    'stroke-linejoin': 'lineJoin',\n    'stroke-miterlimit': 'miterLimit',\n    'font-family': 'fontFamily',\n    'font-size': 'fontSize',\n    'font-style': 'fontStyle',\n    'font-weight': 'fontWeight',\n    'text-align': 'textAlign',\n    'alignment-baseline': 'textBaseline'\n};\nfunction parseAttributes(xmlNode, el, defs, onlyInlineStyle) {\n    var disp = el;\n    var zrStyle = disp.__inheritedStyle || {};\n    if (xmlNode.nodeType === 1) {\n        parseTransformAttribute(xmlNode, el);\n        extend(zrStyle, parseStyleAttribute(xmlNode));\n        if (!onlyInlineStyle) {\n            for (var svgAttrName in attributesMap) {\n                if (attributesMap.hasOwnProperty(svgAttrName)) {\n                    var attrValue = xmlNode.getAttribute(svgAttrName);\n                    if (attrValue != null) {\n                        zrStyle[attributesMap[svgAttrName]] = attrValue;\n                    }\n                }\n            }\n        }\n    }\n    disp.style = disp.style || {};\n    zrStyle.fill != null && (disp.style.fill = getPaint(zrStyle.fill, defs));\n    zrStyle.stroke != null && (disp.style.stroke = getPaint(zrStyle.stroke, defs));\n    each([\n        'lineWidth', 'opacity', 'fillOpacity', 'strokeOpacity', 'miterLimit', 'fontSize'\n    ], function (propName) {\n        zrStyle[propName] != null && (disp.style[propName] = parseFloat(zrStyle[propName]));\n    });\n    if (!zrStyle.textBaseline || zrStyle.textBaseline === 'auto') {\n        zrStyle.textBaseline = 'alphabetic';\n    }\n    if (zrStyle.textBaseline === 'alphabetic') {\n        zrStyle.textBaseline = 'bottom';\n    }\n    if (zrStyle.textAlign === 'start') {\n        zrStyle.textAlign = 'left';\n    }\n    if (zrStyle.textAlign === 'end') {\n        zrStyle.textAlign = 'right';\n    }\n    each(['lineDashOffset', 'lineCap', 'lineJoin',\n        'fontWeight', 'fontFamily', 'fontStyle', 'textAlign', 'textBaseline'\n    ], function (propName) {\n        zrStyle[propName] != null && (disp.style[propName] = zrStyle[propName]);\n    });\n    if (zrStyle.lineDash) {\n        disp.style.lineDash = map(trim(zrStyle.lineDash).split(DILIMITER_REG), function (str) {\n            return parseFloat(str);\n        });\n    }\n    disp.__inheritedStyle = zrStyle;\n}\nvar urlRegex = /url\\(\\s*#(.*?)\\)/;\nfunction getPaint(str, defs) {\n    var urlMatch = defs && str && str.match(urlRegex);\n    if (urlMatch) {\n        var url = trim(urlMatch[1]);\n        var def = defs[url];\n        return def;\n    }\n    return str;\n}\nvar transformRegex = /(translate|scale|rotate|skewX|skewY|matrix)\\(([\\-\\s0-9\\.e,]*)\\)/g;\nfunction parseTransformAttribute(xmlNode, node) {\n    var transform = xmlNode.getAttribute('transform');\n    if (transform) {\n        transform = transform.replace(/,/g, ' ');\n        var transformOps_1 = [];\n        var m = null;\n        transform.replace(transformRegex, function (str, type, value) {\n            transformOps_1.push(type, value);\n            return '';\n        });\n        for (var i = transformOps_1.length - 1; i > 0; i -= 2) {\n            var value = transformOps_1[i];\n            var type = transformOps_1[i - 1];\n            var valueArr = void 0;\n            m = m || matrix.create();\n            switch (type) {\n                case 'translate':\n                    valueArr = trim(value).split(DILIMITER_REG);\n                    matrix.translate(m, m, [parseFloat(valueArr[0]), parseFloat(valueArr[1] || '0')]);\n                    break;\n                case 'scale':\n                    valueArr = trim(value).split(DILIMITER_REG);\n                    matrix.scale(m, m, [parseFloat(valueArr[0]), parseFloat(valueArr[1] || valueArr[0])]);\n                    break;\n                case 'rotate':\n                    valueArr = trim(value).split(DILIMITER_REG);\n                    matrix.rotate(m, m, parseFloat(valueArr[0]));\n                    break;\n                case 'skew':\n                    valueArr = trim(value).split(DILIMITER_REG);\n                    console.warn('Skew transform is not supported yet');\n                    break;\n                case 'matrix':\n                    valueArr = trim(value).split(DILIMITER_REG);\n                    m[0] = parseFloat(valueArr[0]);\n                    m[1] = parseFloat(valueArr[1]);\n                    m[2] = parseFloat(valueArr[2]);\n                    m[3] = parseFloat(valueArr[3]);\n                    m[4] = parseFloat(valueArr[4]);\n                    m[5] = parseFloat(valueArr[5]);\n                    break;\n            }\n        }\n        node.setLocalTransform(m);\n    }\n}\nvar styleRegex = /([^\\s:;]+)\\s*:\\s*([^:;]+)/g;\nfunction parseStyleAttribute(xmlNode) {\n    var style = xmlNode.getAttribute('style');\n    var result = {};\n    if (!style) {\n        return result;\n    }\n    var styleList = {};\n    styleRegex.lastIndex = 0;\n    var styleRegResult;\n    while ((styleRegResult = styleRegex.exec(style)) != null) {\n        styleList[styleRegResult[1]] = styleRegResult[2];\n    }\n    for (var svgAttrName in attributesMap) {\n        if (attributesMap.hasOwnProperty(svgAttrName) && styleList[svgAttrName] != null) {\n            result[attributesMap[svgAttrName]] = styleList[svgAttrName];\n        }\n    }\n    return result;\n}\nexport function makeViewBoxTransform(viewBoxRect, width, height) {\n    var scaleX = width / viewBoxRect.width;\n    var scaleY = height / viewBoxRect.height;\n    var scale = Math.min(scaleX, scaleY);\n    return {\n        scale: scale,\n        x: -(viewBoxRect.x + viewBoxRect.width / 2) * scale + width / 2,\n        y: -(viewBoxRect.y + viewBoxRect.height / 2) * scale + height / 2\n    };\n}\nexport function parseSVG(xml, opt) {\n    var parser = new SVGParser();\n    return parser.parse(xml, opt);\n}\nexport { parseXML };\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parseSVG, makeViewBoxTransform } from 'zrender/lib/tool/parseSVG';\nimport Group from 'zrender/lib/graphic/Group';\nimport Rect from 'zrender/lib/graphic/shape/Rect';\nimport { assert, createHashMap } from 'zrender/lib/core/util';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\nexport default {\n  load: function (mapName, mapRecord) {\n    var originRoot = inner(mapRecord).originRoot;\n\n    if (originRoot) {\n      return {\n        root: originRoot,\n        boundingRect: inner(mapRecord).boundingRect\n      };\n    }\n\n    var graphic = buildGraphic(mapRecord);\n    inner(mapRecord).originRoot = graphic.root;\n    inner(mapRecord).boundingRect = graphic.boundingRect;\n    return graphic;\n  },\n  makeGraphic: function (mapName, mapRecord, hostKey) {\n    var field = inner(mapRecord);\n    var rootMap = field.rootMap || (field.rootMap = createHashMap());\n    var root = rootMap.get(hostKey);\n\n    if (root) {\n      return root;\n    }\n\n    var originRoot = field.originRoot;\n    var boundingRect = field.boundingRect;\n\n    if (!field.originRootHostKey) {\n      field.originRootHostKey = hostKey;\n      root = originRoot;\n    } else {\n      root = buildGraphic(mapRecord, boundingRect).root;\n    }\n\n    return rootMap.set(hostKey, root);\n  },\n  removeGraphic: function (mapName, mapRecord, hostKey) {\n    var field = inner(mapRecord);\n    var rootMap = field.rootMap;\n    rootMap && rootMap.removeKey(hostKey);\n\n    if (hostKey === field.originRootHostKey) {\n      field.originRootHostKey = null;\n    }\n  }\n};\n\nfunction buildGraphic(mapRecord, boundingRect) {\n  var svgXML = mapRecord.svgXML;\n  var result;\n  var root;\n\n  try {\n    result = svgXML && parseSVG(svgXML, {\n      ignoreViewBox: true,\n      ignoreRootClip: true\n    }) || {};\n    root = result.root;\n    assert(root != null);\n  } catch (e) {\n    throw new Error('Invalid svg format\\n' + e.message);\n  }\n\n  var svgWidth = result.width;\n  var svgHeight = result.height;\n  var viewBoxRect = result.viewBoxRect;\n\n  if (!boundingRect) {\n    boundingRect = svgWidth == null || svgHeight == null ? root.getBoundingRect() : new BoundingRect(0, 0, 0, 0);\n\n    if (svgWidth != null) {\n      boundingRect.width = svgWidth;\n    }\n\n    if (svgHeight != null) {\n      boundingRect.height = svgHeight;\n    }\n  }\n\n  if (viewBoxRect) {\n    var viewBoxTransform = makeViewBoxTransform(viewBoxRect, boundingRect.width, boundingRect.height);\n    var elRoot = root;\n    root = new Group();\n    root.add(elRoot);\n    elRoot.scaleX = elRoot.scaleY = viewBoxTransform.scale;\n    elRoot.x = viewBoxTransform.x;\n    elRoot.y = viewBoxTransform.y;\n  }\n\n  root.setClipPath(new Rect({\n    shape: boundingRect.plain()\n  }));\n  return {\n    root: root,\n    boundingRect: boundingRect\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, createHashMap } from 'zrender/lib/core/util';\nimport mapDataStorage from './mapDataStorage';\nimport geoJSONLoader from './geoJSONLoader';\nimport geoSVGLoader from './geoSVGLoader';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nvar loaders = {\n  geoJSON: geoJSONLoader,\n  svg: geoSVGLoader\n};\nexport default {\n  load: function (mapName, nameMap, nameProperty) {\n    var regions = [];\n    var regionsMap = createHashMap();\n    var nameCoordMap = createHashMap();\n    var boundingRect;\n    var mapRecords = retrieveMap(mapName);\n    each(mapRecords, function (record) {\n      var singleSource = loaders[record.type].load(mapName, record, nameProperty);\n      each(singleSource.regions, function (region) {\n        var regionName = region.name;\n\n        if (nameMap && nameMap.hasOwnProperty(regionName)) {\n          region = region.cloneShallow(regionName = nameMap[regionName]);\n        }\n\n        regions.push(region);\n        regionsMap.set(regionName, region);\n        nameCoordMap.set(regionName, region.center);\n      });\n      var rect = singleSource.boundingRect;\n\n      if (rect) {\n        boundingRect ? boundingRect.union(rect) : boundingRect = rect.clone();\n      }\n    });\n    return {\n      regions: regions,\n      regionsMap: regionsMap,\n      nameCoordMap: nameCoordMap,\n      boundingRect: boundingRect || new BoundingRect(0, 0, 0, 0)\n    };\n  },\n  makeGraphic: function (mapName, hostKey) {\n    var mapRecords = retrieveMap(mapName);\n    var results = [];\n    each(mapRecords, function (record) {\n      var method = loaders[record.type].makeGraphic;\n      method && results.push(method(mapName, record, hostKey));\n    });\n    return results;\n  },\n  removeGraphic: function (mapName, hostKey) {\n    var mapRecords = retrieveMap(mapName);\n    each(mapRecords, function (record) {\n      var method = loaders[record.type].makeGraphic;\n      method && method(mapName, record, hostKey);\n    });\n  }\n};\n\nfunction mapNotExistsError(mapName) {\n  if (process.env.NODE_ENV !== 'production') {\n    console.error('Map ' + mapName + ' not exists. The GeoJSON of the map must be provided.');\n  }\n}\n\nfunction retrieveMap(mapName) {\n  var mapRecords = mapDataStorage.retrieveMap(mapName) || [];\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (!mapRecords.length) {\n      mapNotExistsError(mapName);\n    }\n  }\n\n  return mapRecords;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport RoamController from './RoamController';\nimport * as roamHelper from '../../component/helper/roamHelper';\nimport { onIrrelevantElement } from '../../component/helper/cursorHelper';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis, DISPLAY_STATES } from '../../util/states';\nimport geoSourceManager from '../../coord/geo/geoSourceManager';\nimport { getUID } from '../../util/component';\nimport Transformable from 'zrender/lib/core/Transformable';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { getECData } from '../../util/innerStore';\nimport { createOrUpdatePatternFromDecal } from '../../util/decal';\n\nfunction getFixedItemStyle(model) {\n  var itemStyle = model.getItemStyle();\n  var areaColor = model.get('areaColor');\n\n  if (areaColor != null) {\n    itemStyle.fill = areaColor;\n  }\n\n  return itemStyle;\n}\n\nvar MapDraw = function () {\n  function MapDraw(api) {\n    var group = new graphic.Group();\n    this.uid = getUID('ec_map_draw');\n    this._controller = new RoamController(api.getZr());\n    this._controllerHost = {\n      target: group\n    };\n    this.group = group;\n    group.add(this._regionsGroup = new graphic.Group());\n    group.add(this._backgroundGroup = new graphic.Group());\n  }\n\n  MapDraw.prototype.draw = function (mapOrGeoModel, ecModel, api, fromView, payload) {\n    var isGeo = mapOrGeoModel.mainType === 'geo';\n    var data = mapOrGeoModel.getData && mapOrGeoModel.getData();\n    isGeo && ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'map'\n    }, function (mapSeries) {\n      if (!data && mapSeries.getHostGeoModel() === mapOrGeoModel) {\n        data = mapSeries.getData();\n      }\n    });\n    var geo = mapOrGeoModel.coordinateSystem;\n\n    this._updateBackground(geo);\n\n    var regionsGroup = this._regionsGroup;\n    var group = this.group;\n    var transformInfo = geo.getTransformInfo();\n    var isFirstDraw = !regionsGroup.childAt(0) || payload;\n    var targetScaleX;\n    var targetScaleY;\n\n    if (isFirstDraw) {\n      group.transform = transformInfo.roamTransform;\n      group.decomposeTransform();\n      group.dirty();\n    } else {\n      var target = new Transformable();\n      target.transform = transformInfo.roamTransform;\n      target.decomposeTransform();\n      var props = {\n        scaleX: target.scaleX,\n        scaleY: target.scaleY,\n        x: target.x,\n        y: target.y\n      };\n      targetScaleX = target.scaleX;\n      targetScaleY = target.scaleY;\n      graphic.updateProps(group, props, mapOrGeoModel);\n    }\n\n    regionsGroup.removeAll();\n    var nameMap = zrUtil.createHashMap();\n    var isVisualEncodedByVisualMap = data && data.getVisual('visualMeta') && data.getVisual('visualMeta').length > 0;\n    zrUtil.each(geo.regions, function (region) {\n      var regionGroup = nameMap.get(region.name) || nameMap.set(region.name, new graphic.Group());\n      var compoundPath = new graphic.CompoundPath({\n        segmentIgnoreThreshold: 1,\n        shape: {\n          paths: []\n        }\n      });\n      regionGroup.add(compoundPath);\n      var regionModel = mapOrGeoModel.getRegionModel(region.name) || mapOrGeoModel;\n      var itemStyleModel = regionModel.getModel('itemStyle');\n      var emphasisModel = regionModel.getModel('emphasis');\n      var emphasisItemStyleModel = emphasisModel.getModel('itemStyle');\n      var blurItemStyleModel = regionModel.getModel(['blur', 'itemStyle']);\n      var selectItemStyleModel = regionModel.getModel(['select', 'itemStyle']);\n      var itemStyle = getFixedItemStyle(itemStyleModel);\n      var emphasisItemStyle = getFixedItemStyle(emphasisItemStyleModel);\n      var blurItemStyle = getFixedItemStyle(blurItemStyleModel);\n      var selectItemStyle = getFixedItemStyle(selectItemStyleModel);\n      var dataIdx;\n\n      if (data) {\n        dataIdx = data.indexOfName(region.name);\n        var style = data.getItemVisual(dataIdx, 'style');\n        var decal = data.getItemVisual(dataIdx, 'decal');\n\n        if (isVisualEncodedByVisualMap && style.fill) {\n          itemStyle.fill = style.fill;\n        }\n\n        if (decal) {\n          itemStyle.decal = createOrUpdatePatternFromDecal(decal, api);\n        }\n      }\n\n      var sx = transformInfo.rawScaleX;\n      var sy = transformInfo.rawScaleY;\n      var offsetX = transformInfo.rawX;\n      var offsetY = transformInfo.rawY;\n\n      var transformPoint = function (point) {\n        return [point[0] * sx + offsetX, point[1] * sy + offsetY];\n      };\n\n      zrUtil.each(region.geometries, function (geometry) {\n        if (geometry.type !== 'polygon') {\n          return;\n        }\n\n        var points = [];\n\n        for (var i = 0; i < geometry.exterior.length; ++i) {\n          points.push(transformPoint(geometry.exterior[i]));\n        }\n\n        compoundPath.shape.paths.push(new graphic.Polygon({\n          segmentIgnoreThreshold: 1,\n          shape: {\n            points: points\n          }\n        }));\n\n        for (var i = 0; i < (geometry.interiors ? geometry.interiors.length : 0); ++i) {\n          var interior = geometry.interiors[i];\n          var points_1 = [];\n\n          for (var j = 0; j < interior.length; ++j) {\n            points_1.push(transformPoint(interior[j]));\n          }\n\n          compoundPath.shape.paths.push(new graphic.Polygon({\n            segmentIgnoreThreshold: 1,\n            shape: {\n              points: points_1\n            }\n          }));\n        }\n      });\n      compoundPath.setStyle(itemStyle);\n      compoundPath.style.strokeNoScale = true;\n      compoundPath.culling = true;\n      compoundPath.ensureState('emphasis').style = emphasisItemStyle;\n      compoundPath.ensureState('blur').style = blurItemStyle;\n      compoundPath.ensureState('select').style = selectItemStyle;\n      var showLabel = false;\n\n      for (var i = 0; i < DISPLAY_STATES.length; i++) {\n        var stateName = DISPLAY_STATES[i];\n\n        if (regionModel.get(stateName === 'normal' ? ['label', 'show'] : [stateName, 'label', 'show'])) {\n          showLabel = true;\n          break;\n        }\n      }\n\n      var isDataNaN = data && isNaN(data.get(data.mapDimension('value'), dataIdx));\n      var itemLayout = data && data.getItemLayout(dataIdx);\n\n      if (isGeo || isDataNaN && showLabel || itemLayout && itemLayout.showLabel) {\n        var query = !isGeo ? dataIdx : region.name;\n        var labelFetcher = void 0;\n\n        if (!data || dataIdx >= 0) {\n          labelFetcher = mapOrGeoModel;\n        }\n\n        var centerPt = transformPoint(region.center);\n        var textEl = new graphic.Text({\n          x: centerPt[0],\n          y: centerPt[1],\n          scaleX: 1 / group.scaleX,\n          scaleY: 1 / group.scaleY,\n          z2: 10,\n          silent: true\n        });\n        setLabelStyle(textEl, getLabelStatesModels(regionModel), {\n          labelFetcher: labelFetcher,\n          labelDataIndex: query,\n          defaultText: region.name\n        }, {\n          normal: {\n            align: 'center',\n            verticalAlign: 'middle'\n          }\n        });\n        compoundPath.setTextContent(textEl);\n        compoundPath.setTextConfig({\n          local: true\n        });\n        compoundPath.disableLabelAnimation = true;\n\n        if (!isFirstDraw) {\n          graphic.updateProps(textEl, {\n            scaleX: 1 / targetScaleX,\n            scaleY: 1 / targetScaleY\n          }, mapOrGeoModel);\n        }\n      }\n\n      if (data) {\n        data.setItemGraphicEl(dataIdx, regionGroup);\n      } else {\n        var regionModel_1 = mapOrGeoModel.getRegionModel(region.name);\n        getECData(compoundPath).eventData = {\n          componentType: 'geo',\n          componentIndex: mapOrGeoModel.componentIndex,\n          geoIndex: mapOrGeoModel.componentIndex,\n          name: region.name,\n          region: regionModel_1 && regionModel_1.option || {}\n        };\n      }\n\n      var groupRegions = regionGroup.__regions || (regionGroup.__regions = []);\n      groupRegions.push(region);\n      regionGroup.highDownSilentOnTouch = !!mapOrGeoModel.get('selectedMode');\n      enableHoverEmphasis(regionGroup, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n      regionsGroup.add(regionGroup);\n    });\n\n    this._updateController(mapOrGeoModel, ecModel, api);\n\n    this._updateMapSelectHandler(mapOrGeoModel, regionsGroup, api, fromView);\n  };\n\n  MapDraw.prototype.remove = function () {\n    this._regionsGroup.removeAll();\n\n    this._backgroundGroup.removeAll();\n\n    this._controller.dispose();\n\n    this._mapName && geoSourceManager.removeGraphic(this._mapName, this.uid);\n    this._mapName = null;\n    this._controllerHost = null;\n  };\n\n  MapDraw.prototype._updateBackground = function (geo) {\n    var mapName = geo.map;\n\n    if (this._mapName !== mapName) {\n      zrUtil.each(geoSourceManager.makeGraphic(mapName, this.uid), function (root) {\n        this._backgroundGroup.add(root);\n      }, this);\n    }\n\n    this._mapName = mapName;\n  };\n\n  MapDraw.prototype._updateController = function (mapOrGeoModel, ecModel, api) {\n    var geo = mapOrGeoModel.coordinateSystem;\n    var controller = this._controller;\n    var controllerHost = this._controllerHost;\n    controllerHost.zoomLimit = mapOrGeoModel.get('scaleLimit');\n    controllerHost.zoom = geo.getZoom();\n    controller.enable(mapOrGeoModel.get('roam') || false);\n    var mainType = mapOrGeoModel.mainType;\n\n    function makeActionBase() {\n      var action = {\n        type: 'geoRoam',\n        componentType: mainType\n      };\n      action[mainType + 'Id'] = mapOrGeoModel.id;\n      return action;\n    }\n\n    controller.off('pan').on('pan', function (e) {\n      this._mouseDownFlag = false;\n      roamHelper.updateViewOnPan(controllerHost, e.dx, e.dy);\n      api.dispatchAction(zrUtil.extend(makeActionBase(), {\n        dx: e.dx,\n        dy: e.dy\n      }));\n    }, this);\n    controller.off('zoom').on('zoom', function (e) {\n      this._mouseDownFlag = false;\n      roamHelper.updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\n      api.dispatchAction(zrUtil.extend(makeActionBase(), {\n        zoom: e.scale,\n        originX: e.originX,\n        originY: e.originY\n      }));\n      var group = this.group;\n\n      this._regionsGroup.traverse(function (el) {\n        var textContent = el.getTextContent();\n\n        if (textContent) {\n          textContent.scaleX = 1 / group.scaleX;\n          textContent.scaleY = 1 / group.scaleY;\n          textContent.markRedraw();\n        }\n      });\n    }, this);\n    controller.setPointerChecker(function (e, x, y) {\n      return geo.getViewRectAfterRoam().contain(x, y) && !onIrrelevantElement(e, api, mapOrGeoModel);\n    });\n  };\n\n  MapDraw.prototype._updateMapSelectHandler = function (mapOrGeoModel, regionsGroup, api, fromView) {\n    var mapDraw = this;\n    regionsGroup.off('mousedown');\n\n    if (mapOrGeoModel.get('selectedMode')) {\n      regionsGroup.on('mousedown', function () {\n        mapDraw._mouseDownFlag = true;\n      });\n      regionsGroup.on('click', function (e) {\n        if (!mapDraw._mouseDownFlag) {\n          return;\n        }\n\n        mapDraw._mouseDownFlag = false;\n      });\n    }\n  };\n\n  return MapDraw;\n}();\n\n;\nexport default MapDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport MapDraw from '../../component/helper/MapDraw';\nimport ChartView from '../../view/Chart';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { Z2_EMPHASIS_LIFT } from '../../util/states';\n;\n\nvar MapView = function (_super) {\n  __extends(MapView, _super);\n\n  function MapView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MapView.type;\n    return _this;\n  }\n\n  MapView.prototype.render = function (mapModel, ecModel, api, payload) {\n    if (payload && payload.type === 'mapToggleSelect' && payload.from === this.uid) {\n      return;\n    }\n\n    var group = this.group;\n    group.removeAll();\n\n    if (mapModel.getHostGeoModel()) {\n      return;\n    }\n\n    if (!(payload && payload.type === 'geoRoam' && payload.componentType === 'series' && payload.seriesId === mapModel.id)) {\n      if (mapModel.needsDrawMap) {\n        var mapDraw = this._mapDraw || new MapDraw(api);\n        group.add(mapDraw.group);\n        mapDraw.draw(mapModel, ecModel, api, this, payload);\n        this._mapDraw = mapDraw;\n      } else {\n        this._mapDraw && this._mapDraw.remove();\n        this._mapDraw = null;\n      }\n    } else {\n      var mapDraw = this._mapDraw;\n      mapDraw && group.add(mapDraw.group);\n    }\n\n    mapModel.get('showLegendSymbol') && ecModel.getComponent('legend') && this._renderSymbols(mapModel, ecModel, api);\n  };\n\n  MapView.prototype.remove = function () {\n    this._mapDraw && this._mapDraw.remove();\n    this._mapDraw = null;\n    this.group.removeAll();\n  };\n\n  MapView.prototype.dispose = function () {\n    this._mapDraw && this._mapDraw.remove();\n    this._mapDraw = null;\n  };\n\n  MapView.prototype._renderSymbols = function (mapModel, ecModel, api) {\n    var originalData = mapModel.originalData;\n    var group = this.group;\n    originalData.each(originalData.mapDimension('value'), function (value, originalDataIndex) {\n      if (isNaN(value)) {\n        return;\n      }\n\n      var layout = originalData.getItemLayout(originalDataIndex);\n\n      if (!layout || !layout.point) {\n        return;\n      }\n\n      var point = layout.point;\n      var offset = layout.offset;\n      var circle = new graphic.Circle({\n        style: {\n          fill: mapModel.getData().getVisual('style').fill\n        },\n        shape: {\n          cx: point[0] + offset * 9,\n          cy: point[1],\n          r: 3\n        },\n        silent: true,\n        z2: 8 + (!offset ? Z2_EMPHASIS_LIFT + 1 : 0)\n      });\n\n      if (!offset) {\n        var fullData = mapModel.mainSeries.getData();\n        var name_1 = originalData.getName(originalDataIndex);\n        var fullIndex_1 = fullData.indexOfName(name_1);\n        var itemModel = originalData.getItemModel(originalDataIndex);\n        var labelModel = itemModel.getModel('label');\n        var regionGroup = fullData.getItemGraphicEl(fullIndex_1);\n        setLabelStyle(circle, getLabelStatesModels(itemModel), {\n          labelFetcher: {\n            getFormattedLabel: function (idx, state) {\n              return mapModel.getFormattedLabel(fullIndex_1, state);\n            }\n          }\n        });\n        circle.disableLabelAnimation = true;\n\n        if (!labelModel.get('position')) {\n          circle.setTextConfig({\n            position: 'bottom'\n          });\n        }\n\n        regionGroup.onHoverStateChange = function (toState) {\n          circle.useState(toState);\n        };\n      }\n\n      group.add(circle);\n    });\n  };\n\n  MapView.type = 'map';\n  return MapView;\n}(ChartView);\n\nexport default MapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport createListSimply from '../helper/createListSimply';\nimport SeriesModel from '../../model/Series';\nimport geoSourceManager from '../../coord/geo/geoSourceManager';\nimport { makeSeriesEncodeForNameBased } from '../../data/helper/sourceHelper';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup';\n\nvar MapSeries = function (_super) {\n  __extends(MapSeries, _super);\n\n  function MapSeries() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MapSeries.type;\n    _this.needsDrawMap = false;\n    _this.seriesGroup = [];\n\n    _this.getTooltipPosition = function (dataIndex) {\n      if (dataIndex != null) {\n        var name_1 = this.getData().getName(dataIndex);\n        var geo = this.coordinateSystem;\n        var region = geo.getRegion(name_1);\n        return region && geo.dataToPoint(region.center);\n      }\n    };\n\n    return _this;\n  }\n\n  MapSeries.prototype.getInitialData = function (option) {\n    var data = createListSimply(this, {\n      coordDimensions: ['value'],\n      encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)\n    });\n    var dataNameMap = zrUtil.createHashMap();\n    var toAppendNames = [];\n\n    for (var i = 0, len = data.count(); i < len; i++) {\n      var name_2 = data.getName(i);\n      dataNameMap.set(name_2, true);\n    }\n\n    var geoSource = geoSourceManager.load(this.getMapType(), this.option.nameMap, this.option.nameProperty);\n    zrUtil.each(geoSource.regions, function (region) {\n      var name = region.name;\n\n      if (!dataNameMap.get(name)) {\n        toAppendNames.push(name);\n      }\n    });\n    data.appendValues([], toAppendNames);\n    return data;\n  };\n\n  MapSeries.prototype.getHostGeoModel = function () {\n    var geoIndex = this.option.geoIndex;\n    return geoIndex != null ? this.ecModel.getComponent('geo', geoIndex) : null;\n  };\n\n  MapSeries.prototype.getMapType = function () {\n    return (this.getHostGeoModel() || this).option.map;\n  };\n\n  MapSeries.prototype.getRawValue = function (dataIndex) {\n    var data = this.getData();\n    return data.get(data.mapDimension('value'), dataIndex);\n  };\n\n  MapSeries.prototype.getRegionModel = function (regionName) {\n    var data = this.getData();\n    return data.getItemModel(data.indexOfName(regionName));\n  };\n\n  MapSeries.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var data = this.getData();\n    var value = this.getRawValue(dataIndex);\n    var name = data.getName(dataIndex);\n    var seriesGroup = this.seriesGroup;\n    var seriesNames = [];\n\n    for (var i = 0; i < seriesGroup.length; i++) {\n      var otherIndex = seriesGroup[i].originalData.indexOfName(name);\n      var valueDim = data.mapDimension('value');\n\n      if (!isNaN(seriesGroup[i].originalData.get(valueDim, otherIndex))) {\n        seriesNames.push(seriesGroup[i].name);\n      }\n    }\n\n    return createTooltipMarkup('section', {\n      header: seriesNames.join(', '),\n      noHeader: !seriesNames.length,\n      blocks: [createTooltipMarkup('nameValue', {\n        name: name,\n        value: value\n      })]\n    });\n  };\n\n  MapSeries.prototype.setZoom = function (zoom) {\n    this.option.zoom = zoom;\n  };\n\n  MapSeries.prototype.setCenter = function (center) {\n    this.option.center = center;\n  };\n\n  MapSeries.type = 'series.map';\n  MapSeries.dependencies = ['geo'];\n  MapSeries.layoutMode = 'box';\n  MapSeries.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'geo',\n    map: '',\n    left: 'center',\n    top: 'center',\n    aspectScale: 0.75,\n    showLegendSymbol: true,\n    boundingCoords: null,\n    center: null,\n    zoom: 1,\n    scaleLimit: null,\n    selectedMode: true,\n    label: {\n      show: false,\n      color: '#000'\n    },\n    itemStyle: {\n      borderWidth: 0.5,\n      borderColor: '#444',\n      areaColor: '#eee'\n    },\n    emphasis: {\n      label: {\n        show: true,\n        color: 'rgb(100,0,0)'\n      },\n      itemStyle: {\n        areaColor: 'rgba(255,215,0,0.8)'\n      }\n    },\n    select: {\n      label: {\n        show: true,\n        color: 'rgb(100,0,0)'\n      },\n      itemStyle: {\n        color: 'rgba(255,215,0,0.8)'\n      }\n    },\n    nameProperty: 'name'\n  };\n  return MapSeries;\n}(SeriesModel);\n\nexport default MapSeries;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nfunction dataStatistics(datas, statisticType) {\n  var dataNameMap = {};\n  zrUtil.each(datas, function (data) {\n    data.each(data.mapDimension('value'), function (value, idx) {\n      var mapKey = 'ec-' + data.getName(idx);\n      dataNameMap[mapKey] = dataNameMap[mapKey] || [];\n\n      if (!isNaN(value)) {\n        dataNameMap[mapKey].push(value);\n      }\n    });\n  });\n  return datas[0].map(datas[0].mapDimension('value'), function (value, idx) {\n    var mapKey = 'ec-' + datas[0].getName(idx);\n    var sum = 0;\n    var min = Infinity;\n    var max = -Infinity;\n    var len = dataNameMap[mapKey].length;\n\n    for (var i = 0; i < len; i++) {\n      min = Math.min(min, dataNameMap[mapKey][i]);\n      max = Math.max(max, dataNameMap[mapKey][i]);\n      sum += dataNameMap[mapKey][i];\n    }\n\n    var result;\n\n    if (statisticType === 'min') {\n      result = min;\n    } else if (statisticType === 'max') {\n      result = max;\n    } else if (statisticType === 'average') {\n      result = sum / len;\n    } else {\n      result = sum;\n    }\n\n    return len === 0 ? NaN : result;\n  });\n}\n\nexport default function mapDataStatistic(ecModel) {\n  var seriesGroups = {};\n  ecModel.eachSeriesByType('map', function (seriesModel) {\n    var hostGeoModel = seriesModel.getHostGeoModel();\n    var key = hostGeoModel ? 'o' + hostGeoModel.id : 'i' + seriesModel.getMapType();\n    (seriesGroups[key] = seriesGroups[key] || []).push(seriesModel);\n  });\n  zrUtil.each(seriesGroups, function (seriesList, key) {\n    var data = dataStatistics(zrUtil.map(seriesList, function (seriesModel) {\n      return seriesModel.getData();\n    }), seriesList[0].get('mapValueCalculation'));\n\n    for (var i = 0; i < seriesList.length; i++) {\n      seriesList[i].originalData = seriesList[i].getData();\n    }\n\n    for (var i = 0; i < seriesList.length; i++) {\n      seriesList[i].seriesGroup = seriesList;\n      seriesList[i].needsDrawMap = i === 0 && !seriesList[i].getHostGeoModel();\n      seriesList[i].setData(data.cloneShallow());\n      seriesList[i].mainSeries = seriesList[0];\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function mapSymbolLayout(ecModel) {\n  var processedMapType = {};\n  ecModel.eachSeriesByType('map', function (mapSeries) {\n    var mapType = mapSeries.getMapType();\n\n    if (mapSeries.getHostGeoModel() || processedMapType[mapType]) {\n      return;\n    }\n\n    var mapSymbolOffsets = {};\n    zrUtil.each(mapSeries.seriesGroup, function (subMapSeries) {\n      var geo = subMapSeries.coordinateSystem;\n      var data = subMapSeries.originalData;\n\n      if (subMapSeries.get('showLegendSymbol') && ecModel.getComponent('legend')) {\n        data.each(data.mapDimension('value'), function (value, idx) {\n          var name = data.getName(idx);\n          var region = geo.getRegion(name);\n\n          if (!region || isNaN(value)) {\n            return;\n          }\n\n          var offset = mapSymbolOffsets[name] || 0;\n          var point = geo.dataToPoint(region.center);\n          mapSymbolOffsets[name] = offset + 1;\n          data.setItemLayout(idx, {\n            point: point,\n            offset: offset\n          });\n        });\n      }\n    });\n    var data = mapSeries.getData();\n    data.each(function (idx) {\n      var name = data.getName(idx);\n      var layout = data.getItemLayout(idx) || {};\n      layout.showLabel = !mapSymbolOffsets[name];\n      data.setItemLayout(idx, layout);\n    });\n    processedMapType[mapType] = true;\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport MapView from './MapView';\nimport MapSeries from './MapSeries';\nimport mapDataStatistic from './mapDataStatistic';\nimport mapSymbolLayout from './mapSymbolLayout';\nimport { createLegacyDataSelectAction } from '../../legacy/dataSelectAction';\nexport function install(registers) {\n  registers.registerChartView(MapView);\n  registers.registerSeriesModel(MapSeries);\n  registers.registerLayout(mapSymbolLayout);\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, mapDataStatistic);\n  createLegacyDataSelectAction('map', registers.registerAction);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as layout from '../../util/layout';\nexport function init(inRoot) {\n  var root = inRoot;\n  root.hierNode = {\n    defaultAncestor: null,\n    ancestor: root,\n    prelim: 0,\n    modifier: 0,\n    change: 0,\n    shift: 0,\n    i: 0,\n    thread: null\n  };\n  var nodes = [root];\n  var node;\n  var children;\n\n  while (node = nodes.pop()) {\n    children = node.children;\n\n    if (node.isExpand && children.length) {\n      var n = children.length;\n\n      for (var i = n - 1; i >= 0; i--) {\n        var child = children[i];\n        child.hierNode = {\n          defaultAncestor: null,\n          ancestor: child,\n          prelim: 0,\n          modifier: 0,\n          change: 0,\n          shift: 0,\n          i: i,\n          thread: null\n        };\n        nodes.push(child);\n      }\n    }\n  }\n}\nexport function firstWalk(node, separation) {\n  var children = node.isExpand ? node.children : [];\n  var siblings = node.parentNode.children;\n  var subtreeW = node.hierNode.i ? siblings[node.hierNode.i - 1] : null;\n\n  if (children.length) {\n    executeShifts(node);\n    var midPoint = (children[0].hierNode.prelim + children[children.length - 1].hierNode.prelim) / 2;\n\n    if (subtreeW) {\n      node.hierNode.prelim = subtreeW.hierNode.prelim + separation(node, subtreeW);\n      node.hierNode.modifier = node.hierNode.prelim - midPoint;\n    } else {\n      node.hierNode.prelim = midPoint;\n    }\n  } else if (subtreeW) {\n    node.hierNode.prelim = subtreeW.hierNode.prelim + separation(node, subtreeW);\n  }\n\n  node.parentNode.hierNode.defaultAncestor = apportion(node, subtreeW, node.parentNode.hierNode.defaultAncestor || siblings[0], separation);\n}\nexport function secondWalk(node) {\n  var nodeX = node.hierNode.prelim + node.parentNode.hierNode.modifier;\n  node.setLayout({\n    x: nodeX\n  }, true);\n  node.hierNode.modifier += node.parentNode.hierNode.modifier;\n}\nexport function separation(cb) {\n  return arguments.length ? cb : defaultSeparation;\n}\nexport function radialCoordinate(rad, r) {\n  rad -= Math.PI / 2;\n  return {\n    x: r * Math.cos(rad),\n    y: r * Math.sin(rad)\n  };\n}\nexport function getViewRect(seriesModel, api) {\n  return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n}\n\nfunction executeShifts(node) {\n  var children = node.children;\n  var n = children.length;\n  var shift = 0;\n  var change = 0;\n\n  while (--n >= 0) {\n    var child = children[n];\n    child.hierNode.prelim += shift;\n    child.hierNode.modifier += shift;\n    change += child.hierNode.change;\n    shift += child.hierNode.shift + change;\n  }\n}\n\nfunction apportion(subtreeV, subtreeW, ancestor, separation) {\n  if (subtreeW) {\n    var nodeOutRight = subtreeV;\n    var nodeInRight = subtreeV;\n    var nodeOutLeft = nodeInRight.parentNode.children[0];\n    var nodeInLeft = subtreeW;\n    var sumOutRight = nodeOutRight.hierNode.modifier;\n    var sumInRight = nodeInRight.hierNode.modifier;\n    var sumOutLeft = nodeOutLeft.hierNode.modifier;\n    var sumInLeft = nodeInLeft.hierNode.modifier;\n\n    while (nodeInLeft = nextRight(nodeInLeft), nodeInRight = nextLeft(nodeInRight), nodeInLeft && nodeInRight) {\n      nodeOutRight = nextRight(nodeOutRight);\n      nodeOutLeft = nextLeft(nodeOutLeft);\n      nodeOutRight.hierNode.ancestor = subtreeV;\n      var shift = nodeInLeft.hierNode.prelim + sumInLeft - nodeInRight.hierNode.prelim - sumInRight + separation(nodeInLeft, nodeInRight);\n\n      if (shift > 0) {\n        moveSubtree(nextAncestor(nodeInLeft, subtreeV, ancestor), subtreeV, shift);\n        sumInRight += shift;\n        sumOutRight += shift;\n      }\n\n      sumInLeft += nodeInLeft.hierNode.modifier;\n      sumInRight += nodeInRight.hierNode.modifier;\n      sumOutRight += nodeOutRight.hierNode.modifier;\n      sumOutLeft += nodeOutLeft.hierNode.modifier;\n    }\n\n    if (nodeInLeft && !nextRight(nodeOutRight)) {\n      nodeOutRight.hierNode.thread = nodeInLeft;\n      nodeOutRight.hierNode.modifier += sumInLeft - sumOutRight;\n    }\n\n    if (nodeInRight && !nextLeft(nodeOutLeft)) {\n      nodeOutLeft.hierNode.thread = nodeInRight;\n      nodeOutLeft.hierNode.modifier += sumInRight - sumOutLeft;\n      ancestor = subtreeV;\n    }\n  }\n\n  return ancestor;\n}\n\nfunction nextRight(node) {\n  var children = node.children;\n  return children.length && node.isExpand ? children[children.length - 1] : node.hierNode.thread;\n}\n\nfunction nextLeft(node) {\n  var children = node.children;\n  return children.length && node.isExpand ? children[0] : node.hierNode.thread;\n}\n\nfunction nextAncestor(nodeInLeft, node, ancestor) {\n  return nodeInLeft.hierNode.ancestor.parentNode === node.parentNode ? nodeInLeft.hierNode.ancestor : ancestor;\n}\n\nfunction moveSubtree(wl, wr, shift) {\n  var change = shift / (wr.hierNode.i - wl.hierNode.i);\n  wr.hierNode.change -= change;\n  wr.hierNode.shift += shift;\n  wr.hierNode.modifier += shift;\n  wr.hierNode.prelim += shift;\n  wl.hierNode.change += change;\n}\n\nfunction defaultSeparation(node1, node2) {\n  return node1.parentNode === node2.parentNode ? 1 : 2;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as vector from 'zrender/lib/core/vector';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport Transformable from 'zrender/lib/core/Transformable';\nvar v2ApplyTransform = vector.applyTransform;\n\nvar View = function (_super) {\n  __extends(View, _super);\n\n  function View(name) {\n    var _this = _super.call(this) || this;\n\n    _this.type = 'view';\n    _this.dimensions = ['x', 'y'];\n    _this._roamTransformable = new Transformable();\n    _this._rawTransformable = new Transformable();\n    _this.name = name;\n    return _this;\n  }\n\n  View.prototype.setBoundingRect = function (x, y, width, height) {\n    this._rect = new BoundingRect(x, y, width, height);\n    return this._rect;\n  };\n\n  View.prototype.getBoundingRect = function () {\n    return this._rect;\n  };\n\n  View.prototype.setViewRect = function (x, y, width, height) {\n    this.transformTo(x, y, width, height);\n    this._viewRect = new BoundingRect(x, y, width, height);\n  };\n\n  View.prototype.transformTo = function (x, y, width, height) {\n    var rect = this.getBoundingRect();\n    var rawTransform = this._rawTransformable;\n    rawTransform.transform = rect.calculateTransform(new BoundingRect(x, y, width, height));\n    rawTransform.decomposeTransform();\n\n    this._updateTransform();\n  };\n\n  View.prototype.setCenter = function (centerCoord) {\n    if (!centerCoord) {\n      return;\n    }\n\n    this._center = centerCoord;\n\n    this._updateCenterAndZoom();\n  };\n\n  View.prototype.setZoom = function (zoom) {\n    zoom = zoom || 1;\n    var zoomLimit = this.zoomLimit;\n\n    if (zoomLimit) {\n      if (zoomLimit.max != null) {\n        zoom = Math.min(zoomLimit.max, zoom);\n      }\n\n      if (zoomLimit.min != null) {\n        zoom = Math.max(zoomLimit.min, zoom);\n      }\n    }\n\n    this._zoom = zoom;\n\n    this._updateCenterAndZoom();\n  };\n\n  View.prototype.getDefaultCenter = function () {\n    var rawRect = this.getBoundingRect();\n    var cx = rawRect.x + rawRect.width / 2;\n    var cy = rawRect.y + rawRect.height / 2;\n    return [cx, cy];\n  };\n\n  View.prototype.getCenter = function () {\n    return this._center || this.getDefaultCenter();\n  };\n\n  View.prototype.getZoom = function () {\n    return this._zoom || 1;\n  };\n\n  View.prototype.getRoamTransform = function () {\n    return this._roamTransformable.getLocalTransform();\n  };\n\n  View.prototype._updateCenterAndZoom = function () {\n    var rawTransformMatrix = this._rawTransformable.getLocalTransform();\n\n    var roamTransform = this._roamTransformable;\n    var defaultCenter = this.getDefaultCenter();\n    var center = this.getCenter();\n    var zoom = this.getZoom();\n    center = vector.applyTransform([], center, rawTransformMatrix);\n    defaultCenter = vector.applyTransform([], defaultCenter, rawTransformMatrix);\n    roamTransform.originX = center[0];\n    roamTransform.originY = center[1];\n    roamTransform.x = defaultCenter[0] - center[0];\n    roamTransform.y = defaultCenter[1] - center[1];\n    roamTransform.scaleX = roamTransform.scaleY = zoom;\n\n    this._updateTransform();\n  };\n\n  View.prototype._updateTransform = function () {\n    var roamTransformable = this._roamTransformable;\n    var rawTransformable = this._rawTransformable;\n    rawTransformable.parent = roamTransformable;\n    roamTransformable.updateTransform();\n    rawTransformable.updateTransform();\n    matrix.copy(this.transform || (this.transform = []), rawTransformable.transform || matrix.create());\n    this._rawTransform = rawTransformable.getLocalTransform();\n    this.invTransform = this.invTransform || [];\n    matrix.invert(this.invTransform, this.transform);\n    this.decomposeTransform();\n  };\n\n  View.prototype.getTransformInfo = function () {\n    var roamTransform = this._roamTransformable.transform;\n    var rawTransformable = this._rawTransformable;\n    return {\n      roamTransform: roamTransform ? zrUtil.slice(roamTransform) : matrix.create(),\n      rawScaleX: rawTransformable.scaleX,\n      rawScaleY: rawTransformable.scaleY,\n      rawX: rawTransformable.x,\n      rawY: rawTransformable.y\n    };\n  };\n\n  View.prototype.getViewRect = function () {\n    return this._viewRect;\n  };\n\n  View.prototype.getViewRectAfterRoam = function () {\n    var rect = this.getBoundingRect().clone();\n    rect.applyTransform(this.transform);\n    return rect;\n  };\n\n  View.prototype.dataToPoint = function (data, noRoam, out) {\n    var transform = noRoam ? this._rawTransform : this.transform;\n    out = out || [];\n    return transform ? v2ApplyTransform(out, data, transform) : vector.copy(out, data);\n  };\n\n  View.prototype.pointToData = function (point) {\n    var invTransform = this.invTransform;\n    return invTransform ? v2ApplyTransform([], point, invTransform) : [point[0], point[1]];\n  };\n\n  View.prototype.convertToPixel = function (ecModel, finder, value) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? coordSys.dataToPoint(value) : null;\n  };\n\n  View.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? coordSys.pointToData(pixel) : null;\n  };\n\n  View.prototype.containPoint = function (point) {\n    return this.getViewRectAfterRoam().contain(point[0], point[1]);\n  };\n\n  View.dimensions = ['x', 'y'];\n  return View;\n}(Transformable);\n\nfunction getCoordSys(finder) {\n  var seriesModel = finder.seriesModel;\n  return seriesModel ? seriesModel.coordinateSystem : null;\n}\n\nexport default View;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport SymbolClz from '../helper/Symbol';\nimport { radialCoordinate } from './layoutHelper';\nimport * as bbox from 'zrender/lib/core/bbox';\nimport View from '../../coord/View';\nimport * as roamHelper from '../../component/helper/roamHelper';\nimport RoamController from '../../component/helper/RoamController';\nimport { onIrrelevantElement } from '../../component/helper/cursorHelper';\nimport { parsePercent } from '../../util/number';\nimport ChartView from '../../view/Chart';\nimport Path from 'zrender/lib/graphic/Path';\nimport { setStatesStylesFromModel, setStatesFlag, setDefaultStateProxy, HOVER_STATE_BLUR } from '../../util/states';\n\nvar TreeEdgeShape = function () {\n  function TreeEdgeShape() {\n    this.parentPoint = [];\n    this.childPoints = [];\n  }\n\n  return TreeEdgeShape;\n}();\n\nvar TreePath = function (_super) {\n  __extends(TreePath, _super);\n\n  function TreePath(opts) {\n    return _super.call(this, opts) || this;\n  }\n\n  TreePath.prototype.getDefaultStyle = function () {\n    return {\n      stroke: '#000',\n      fill: null\n    };\n  };\n\n  TreePath.prototype.getDefaultShape = function () {\n    return new TreeEdgeShape();\n  };\n\n  TreePath.prototype.buildPath = function (ctx, shape) {\n    var childPoints = shape.childPoints;\n    var childLen = childPoints.length;\n    var parentPoint = shape.parentPoint;\n    var firstChildPos = childPoints[0];\n    var lastChildPos = childPoints[childLen - 1];\n\n    if (childLen === 1) {\n      ctx.moveTo(parentPoint[0], parentPoint[1]);\n      ctx.lineTo(firstChildPos[0], firstChildPos[1]);\n      return;\n    }\n\n    var orient = shape.orient;\n    var forkDim = orient === 'TB' || orient === 'BT' ? 0 : 1;\n    var otherDim = 1 - forkDim;\n    var forkPosition = parsePercent(shape.forkPosition, 1);\n    var tmpPoint = [];\n    tmpPoint[forkDim] = parentPoint[forkDim];\n    tmpPoint[otherDim] = parentPoint[otherDim] + (lastChildPos[otherDim] - parentPoint[otherDim]) * forkPosition;\n    ctx.moveTo(parentPoint[0], parentPoint[1]);\n    ctx.lineTo(tmpPoint[0], tmpPoint[1]);\n    ctx.moveTo(firstChildPos[0], firstChildPos[1]);\n    tmpPoint[forkDim] = firstChildPos[forkDim];\n    ctx.lineTo(tmpPoint[0], tmpPoint[1]);\n    tmpPoint[forkDim] = lastChildPos[forkDim];\n    ctx.lineTo(tmpPoint[0], tmpPoint[1]);\n    ctx.lineTo(lastChildPos[0], lastChildPos[1]);\n\n    for (var i = 1; i < childLen - 1; i++) {\n      var point = childPoints[i];\n      ctx.moveTo(point[0], point[1]);\n      tmpPoint[forkDim] = point[forkDim];\n      ctx.lineTo(tmpPoint[0], tmpPoint[1]);\n    }\n  };\n\n  return TreePath;\n}(Path);\n\nvar TreeView = function (_super) {\n  __extends(TreeView, _super);\n\n  function TreeView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TreeView.type;\n    _this._mainGroup = new graphic.Group();\n    return _this;\n  }\n\n  TreeView.prototype.init = function (ecModel, api) {\n    this._controller = new RoamController(api.getZr());\n    this._controllerHost = {\n      target: this.group\n    };\n    this.group.add(this._mainGroup);\n  };\n\n  TreeView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    var layoutInfo = seriesModel.layoutInfo;\n    var group = this._mainGroup;\n    var layout = seriesModel.get('layout');\n\n    if (layout === 'radial') {\n      group.x = layoutInfo.x + layoutInfo.width / 2;\n      group.y = layoutInfo.y + layoutInfo.height / 2;\n    } else {\n      group.x = layoutInfo.x;\n      group.y = layoutInfo.y;\n    }\n\n    this._updateViewCoordSys(seriesModel);\n\n    this._updateController(seriesModel, ecModel, api);\n\n    var oldData = this._data;\n    data.diff(oldData).add(function (newIdx) {\n      if (symbolNeedsDraw(data, newIdx)) {\n        updateNode(data, newIdx, null, group, seriesModel);\n      }\n    }).update(function (newIdx, oldIdx) {\n      var symbolEl = oldData.getItemGraphicEl(oldIdx);\n\n      if (!symbolNeedsDraw(data, newIdx)) {\n        symbolEl && removeNode(oldData, oldIdx, symbolEl, group, seriesModel);\n        return;\n      }\n\n      updateNode(data, newIdx, symbolEl, group, seriesModel);\n    }).remove(function (oldIdx) {\n      var symbolEl = oldData.getItemGraphicEl(oldIdx);\n\n      if (symbolEl) {\n        removeNode(oldData, oldIdx, symbolEl, group, seriesModel);\n      }\n    }).execute();\n    this._nodeScaleRatio = seriesModel.get('nodeScaleRatio');\n\n    this._updateNodeAndLinkScale(seriesModel);\n\n    if (seriesModel.get('expandAndCollapse') === true) {\n      data.eachItemGraphicEl(function (el, dataIndex) {\n        el.off('click').on('click', function () {\n          api.dispatchAction({\n            type: 'treeExpandAndCollapse',\n            seriesId: seriesModel.id,\n            dataIndex: dataIndex\n          });\n        });\n      });\n    }\n\n    this._data = data;\n  };\n\n  TreeView.prototype._updateViewCoordSys = function (seriesModel) {\n    var data = seriesModel.getData();\n    var points = [];\n    data.each(function (idx) {\n      var layout = data.getItemLayout(idx);\n\n      if (layout && !isNaN(layout.x) && !isNaN(layout.y)) {\n        points.push([+layout.x, +layout.y]);\n      }\n    });\n    var min = [];\n    var max = [];\n    bbox.fromPoints(points, min, max);\n    var oldMin = this._min;\n    var oldMax = this._max;\n\n    if (max[0] - min[0] === 0) {\n      min[0] = oldMin ? oldMin[0] : min[0] - 1;\n      max[0] = oldMax ? oldMax[0] : max[0] + 1;\n    }\n\n    if (max[1] - min[1] === 0) {\n      min[1] = oldMin ? oldMin[1] : min[1] - 1;\n      max[1] = oldMax ? oldMax[1] : max[1] + 1;\n    }\n\n    var viewCoordSys = seriesModel.coordinateSystem = new View();\n    viewCoordSys.zoomLimit = seriesModel.get('scaleLimit');\n    viewCoordSys.setBoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n    viewCoordSys.setCenter(seriesModel.get('center'));\n    viewCoordSys.setZoom(seriesModel.get('zoom'));\n    this.group.attr({\n      x: viewCoordSys.x,\n      y: viewCoordSys.y,\n      scaleX: viewCoordSys.scaleX,\n      scaleY: viewCoordSys.scaleY\n    });\n    this._min = min;\n    this._max = max;\n  };\n\n  TreeView.prototype._updateController = function (seriesModel, ecModel, api) {\n    var _this = this;\n\n    var controller = this._controller;\n    var controllerHost = this._controllerHost;\n    var group = this.group;\n    controller.setPointerChecker(function (e, x, y) {\n      var rect = group.getBoundingRect();\n      rect.applyTransform(group.transform);\n      return rect.contain(x, y) && !onIrrelevantElement(e, api, seriesModel);\n    });\n    controller.enable(seriesModel.get('roam'));\n    controllerHost.zoomLimit = seriesModel.get('scaleLimit');\n    controllerHost.zoom = seriesModel.coordinateSystem.getZoom();\n    controller.off('pan').off('zoom').on('pan', function (e) {\n      roamHelper.updateViewOnPan(controllerHost, e.dx, e.dy);\n      api.dispatchAction({\n        seriesId: seriesModel.id,\n        type: 'treeRoam',\n        dx: e.dx,\n        dy: e.dy\n      });\n    }).on('zoom', function (e) {\n      roamHelper.updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\n      api.dispatchAction({\n        seriesId: seriesModel.id,\n        type: 'treeRoam',\n        zoom: e.scale,\n        originX: e.originX,\n        originY: e.originY\n      });\n\n      _this._updateNodeAndLinkScale(seriesModel);\n\n      api.updateLabelLayout();\n    });\n  };\n\n  TreeView.prototype._updateNodeAndLinkScale = function (seriesModel) {\n    var data = seriesModel.getData();\n\n    var nodeScale = this._getNodeGlobalScale(seriesModel);\n\n    data.eachItemGraphicEl(function (el, idx) {\n      el.setSymbolScale(nodeScale);\n    });\n  };\n\n  TreeView.prototype._getNodeGlobalScale = function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys.type !== 'view') {\n      return 1;\n    }\n\n    var nodeScaleRatio = this._nodeScaleRatio;\n    var groupZoom = coordSys.scaleX || 1;\n    var roamZoom = coordSys.getZoom();\n    var nodeScale = (roamZoom - 1) * nodeScaleRatio + 1;\n    return nodeScale / groupZoom;\n  };\n\n  TreeView.prototype.dispose = function () {\n    this._controller && this._controller.dispose();\n    this._controllerHost = null;\n  };\n\n  TreeView.prototype.remove = function () {\n    this._mainGroup.removeAll();\n\n    this._data = null;\n  };\n\n  TreeView.type = 'tree';\n  return TreeView;\n}(ChartView);\n\nfunction symbolNeedsDraw(data, dataIndex) {\n  var layout = data.getItemLayout(dataIndex);\n  return layout && !isNaN(layout.x) && !isNaN(layout.y);\n}\n\nfunction updateNode(data, dataIndex, symbolEl, group, seriesModel) {\n  var isInit = !symbolEl;\n  var node = data.tree.getNodeByDataIndex(dataIndex);\n  var itemModel = node.getModel();\n  var visualColor = node.getVisual('style').fill;\n  var symbolInnerColor = node.isExpand === false && node.children.length !== 0 ? visualColor : '#fff';\n  var virtualRoot = data.tree.root;\n  var source = node.parentNode === virtualRoot ? node : node.parentNode || node;\n  var sourceSymbolEl = data.getItemGraphicEl(source.dataIndex);\n  var sourceLayout = source.getLayout();\n  var sourceOldLayout = sourceSymbolEl ? {\n    x: sourceSymbolEl.__oldX,\n    y: sourceSymbolEl.__oldY,\n    rawX: sourceSymbolEl.__radialOldRawX,\n    rawY: sourceSymbolEl.__radialOldRawY\n  } : sourceLayout;\n  var targetLayout = node.getLayout();\n\n  if (isInit) {\n    symbolEl = new SymbolClz(data, dataIndex, null, {\n      symbolInnerColor: symbolInnerColor,\n      useNameLabel: true\n    });\n    symbolEl.x = sourceOldLayout.x;\n    symbolEl.y = sourceOldLayout.y;\n  } else {\n    symbolEl.updateData(data, dataIndex, null, {\n      symbolInnerColor: symbolInnerColor,\n      useNameLabel: true\n    });\n  }\n\n  symbolEl.__radialOldRawX = symbolEl.__radialRawX;\n  symbolEl.__radialOldRawY = symbolEl.__radialRawY;\n  symbolEl.__radialRawX = targetLayout.rawX;\n  symbolEl.__radialRawY = targetLayout.rawY;\n  group.add(symbolEl);\n  data.setItemGraphicEl(dataIndex, symbolEl);\n  symbolEl.__oldX = symbolEl.x;\n  symbolEl.__oldY = symbolEl.y;\n  graphic.updateProps(symbolEl, {\n    x: targetLayout.x,\n    y: targetLayout.y\n  }, seriesModel);\n  var symbolPath = symbolEl.getSymbolPath();\n\n  if (seriesModel.get('layout') === 'radial') {\n    var realRoot = virtualRoot.children[0];\n    var rootLayout = realRoot.getLayout();\n    var length_1 = realRoot.children.length;\n    var rad = void 0;\n    var isLeft = void 0;\n\n    if (targetLayout.x === rootLayout.x && node.isExpand === true) {\n      var center = {\n        x: (realRoot.children[0].getLayout().x + realRoot.children[length_1 - 1].getLayout().x) / 2,\n        y: (realRoot.children[0].getLayout().y + realRoot.children[length_1 - 1].getLayout().y) / 2\n      };\n      rad = Math.atan2(center.y - rootLayout.y, center.x - rootLayout.x);\n\n      if (rad < 0) {\n        rad = Math.PI * 2 + rad;\n      }\n\n      isLeft = center.x < rootLayout.x;\n\n      if (isLeft) {\n        rad = rad - Math.PI;\n      }\n    } else {\n      rad = Math.atan2(targetLayout.y - rootLayout.y, targetLayout.x - rootLayout.x);\n\n      if (rad < 0) {\n        rad = Math.PI * 2 + rad;\n      }\n\n      if (node.children.length === 0 || node.children.length !== 0 && node.isExpand === false) {\n        isLeft = targetLayout.x < rootLayout.x;\n\n        if (isLeft) {\n          rad = rad - Math.PI;\n        }\n      } else {\n        isLeft = targetLayout.x > rootLayout.x;\n\n        if (!isLeft) {\n          rad = rad - Math.PI;\n        }\n      }\n    }\n\n    var textPosition = isLeft ? 'left' : 'right';\n    var normalLabelModel = itemModel.getModel('label');\n    var rotate = normalLabelModel.get('rotate');\n    var labelRotateRadian = rotate * (Math.PI / 180);\n    var textContent = symbolPath.getTextContent();\n\n    if (textContent) {\n      symbolPath.setTextConfig({\n        position: normalLabelModel.get('position') || textPosition,\n        rotation: rotate == null ? -rad : labelRotateRadian,\n        origin: 'center'\n      });\n      textContent.setStyle('verticalAlign', 'middle');\n    }\n  }\n\n  var focus = itemModel.get(['emphasis', 'focus']);\n  var focusDataIndices = focus === 'ancestor' ? node.getAncestorsIndices() : focus === 'descendant' ? node.getDescendantIndices() : null;\n\n  if (focusDataIndices) {\n    getECData(symbolEl).focus = focusDataIndices;\n  }\n\n  drawEdge(seriesModel, node, virtualRoot, symbolEl, sourceOldLayout, sourceLayout, targetLayout, group);\n\n  if (symbolEl.__edge) {\n    symbolEl.onHoverStateChange = function (toState) {\n      if (toState !== 'blur') {\n        var parentEl = node.parentNode && data.getItemGraphicEl(node.parentNode.dataIndex);\n\n        if (!(parentEl && parentEl.hoverState === HOVER_STATE_BLUR)) {\n          setStatesFlag(symbolEl.__edge, toState);\n        }\n      }\n    };\n  }\n}\n\nfunction drawEdge(seriesModel, node, virtualRoot, symbolEl, sourceOldLayout, sourceLayout, targetLayout, group) {\n  var itemModel = node.getModel();\n  var edgeShape = seriesModel.get('edgeShape');\n  var layout = seriesModel.get('layout');\n  var orient = seriesModel.getOrient();\n  var curvature = seriesModel.get(['lineStyle', 'curveness']);\n  var edgeForkPosition = seriesModel.get('edgeForkPosition');\n  var lineStyle = itemModel.getModel('lineStyle').getLineStyle();\n  var edge = symbolEl.__edge;\n\n  if (edgeShape === 'curve') {\n    if (node.parentNode && node.parentNode !== virtualRoot) {\n      if (!edge) {\n        edge = symbolEl.__edge = new graphic.BezierCurve({\n          shape: getEdgeShape(layout, orient, curvature, sourceOldLayout, sourceOldLayout)\n        });\n      }\n\n      graphic.updateProps(edge, {\n        shape: getEdgeShape(layout, orient, curvature, sourceLayout, targetLayout)\n      }, seriesModel);\n    }\n  } else if (edgeShape === 'polyline') {\n    if (layout === 'orthogonal') {\n      if (node !== virtualRoot && node.children && node.children.length !== 0 && node.isExpand === true) {\n        var children = node.children;\n        var childPoints = [];\n\n        for (var i = 0; i < children.length; i++) {\n          var childLayout = children[i].getLayout();\n          childPoints.push([childLayout.x, childLayout.y]);\n        }\n\n        if (!edge) {\n          edge = symbolEl.__edge = new TreePath({\n            shape: {\n              parentPoint: [targetLayout.x, targetLayout.y],\n              childPoints: [[targetLayout.x, targetLayout.y]],\n              orient: orient,\n              forkPosition: edgeForkPosition\n            }\n          });\n        }\n\n        graphic.updateProps(edge, {\n          shape: {\n            parentPoint: [targetLayout.x, targetLayout.y],\n            childPoints: childPoints\n          }\n        }, seriesModel);\n      }\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        throw new Error('The polyline edgeShape can only be used in orthogonal layout');\n      }\n    }\n  }\n\n  if (edge) {\n    edge.useStyle(zrUtil.defaults({\n      strokeNoScale: true,\n      fill: null\n    }, lineStyle));\n    setStatesStylesFromModel(edge, itemModel, 'lineStyle');\n    setDefaultStateProxy(edge);\n    group.add(edge);\n  }\n}\n\nfunction removeNode(data, dataIndex, symbolEl, group, seriesModel) {\n  var node = data.tree.getNodeByDataIndex(dataIndex);\n  var virtualRoot = data.tree.root;\n  var source = node.parentNode === virtualRoot ? node : node.parentNode || node;\n  var sourceLayout;\n\n  while (sourceLayout = source.getLayout(), sourceLayout == null) {\n    source = source.parentNode === virtualRoot ? source : source.parentNode || source;\n  }\n\n  var removeAnimationOpt = {\n    duration: seriesModel.get('animationDurationUpdate'),\n    easing: seriesModel.get('animationEasingUpdate')\n  };\n  graphic.removeElement(symbolEl, {\n    x: sourceLayout.x + 1,\n    y: sourceLayout.y + 1\n  }, seriesModel, {\n    cb: function () {\n      group.remove(symbolEl);\n      data.setItemGraphicEl(dataIndex, null);\n    },\n    removeOpt: removeAnimationOpt\n  });\n  symbolEl.fadeOut(null, {\n    fadeLabel: true,\n    animation: removeAnimationOpt\n  });\n  var sourceSymbolEl = data.getItemGraphicEl(source.dataIndex);\n  var sourceEdge = sourceSymbolEl.__edge;\n  var edge = symbolEl.__edge || (source.isExpand === false || source.children.length === 1 ? sourceEdge : undefined);\n  var edgeShape = seriesModel.get('edgeShape');\n  var layoutOpt = seriesModel.get('layout');\n  var orient = seriesModel.get('orient');\n  var curvature = seriesModel.get(['lineStyle', 'curveness']);\n\n  if (edge) {\n    if (edgeShape === 'curve') {\n      graphic.removeElement(edge, {\n        shape: getEdgeShape(layoutOpt, orient, curvature, sourceLayout, sourceLayout),\n        style: {\n          opacity: 0\n        }\n      }, seriesModel, {\n        cb: function () {\n          group.remove(edge);\n        },\n        removeOpt: removeAnimationOpt\n      });\n    } else if (edgeShape === 'polyline' && seriesModel.get('layout') === 'orthogonal') {\n      graphic.removeElement(edge, {\n        shape: {\n          parentPoint: [sourceLayout.x, sourceLayout.y],\n          childPoints: [[sourceLayout.x, sourceLayout.y]]\n        },\n        style: {\n          opacity: 0\n        }\n      }, seriesModel, {\n        cb: function () {\n          group.remove(edge);\n        },\n        removeOpt: removeAnimationOpt\n      });\n    }\n  }\n}\n\nfunction getEdgeShape(layoutOpt, orient, curvature, sourceLayout, targetLayout) {\n  var cpx1;\n  var cpy1;\n  var cpx2;\n  var cpy2;\n  var x1;\n  var x2;\n  var y1;\n  var y2;\n\n  if (layoutOpt === 'radial') {\n    x1 = sourceLayout.rawX;\n    y1 = sourceLayout.rawY;\n    x2 = targetLayout.rawX;\n    y2 = targetLayout.rawY;\n    var radialCoor1 = radialCoordinate(x1, y1);\n    var radialCoor2 = radialCoordinate(x1, y1 + (y2 - y1) * curvature);\n    var radialCoor3 = radialCoordinate(x2, y2 + (y1 - y2) * curvature);\n    var radialCoor4 = radialCoordinate(x2, y2);\n    return {\n      x1: radialCoor1.x || 0,\n      y1: radialCoor1.y || 0,\n      x2: radialCoor4.x || 0,\n      y2: radialCoor4.y || 0,\n      cpx1: radialCoor2.x || 0,\n      cpy1: radialCoor2.y || 0,\n      cpx2: radialCoor3.x || 0,\n      cpy2: radialCoor3.y || 0\n    };\n  } else {\n    x1 = sourceLayout.x;\n    y1 = sourceLayout.y;\n    x2 = targetLayout.x;\n    y2 = targetLayout.y;\n\n    if (orient === 'LR' || orient === 'RL') {\n      cpx1 = x1 + (x2 - x1) * curvature;\n      cpy1 = y1;\n      cpx2 = x2 + (x1 - x2) * curvature;\n      cpy2 = y2;\n    }\n\n    if (orient === 'TB' || orient === 'BT') {\n      cpx1 = x1;\n      cpy1 = y1 + (y2 - y1) * curvature;\n      cpx2 = x2;\n      cpy2 = y2 + (y1 - y2) * curvature;\n    }\n  }\n\n  return {\n    x1: x1,\n    y1: y1,\n    x2: x2,\n    y2: y2,\n    cpx1: cpx1,\n    cpy1: cpy1,\n    cpx2: cpx2,\n    cpy2: cpy2\n  };\n}\n\nexport default TreeView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { curry, each, assert, extend, map, keys } from 'zrender/lib/core/util';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\n\nfunction linkList(opt) {\n  var mainData = opt.mainData;\n  var datas = opt.datas;\n\n  if (!datas) {\n    datas = {\n      main: mainData\n    };\n    opt.datasAttr = {\n      main: 'data'\n    };\n  }\n\n  opt.datas = opt.mainData = null;\n  linkAll(mainData, datas, opt);\n  each(datas, function (data) {\n    each(mainData.TRANSFERABLE_METHODS, function (methodName) {\n      data.wrapMethod(methodName, curry(transferInjection, opt));\n    });\n  });\n  mainData.wrapMethod('cloneShallow', curry(cloneShallowInjection, opt));\n  each(mainData.CHANGABLE_METHODS, function (methodName) {\n    mainData.wrapMethod(methodName, curry(changeInjection, opt));\n  });\n  assert(datas[mainData.dataType] === mainData);\n}\n\nfunction transferInjection(opt, res) {\n  if (isMainData(this)) {\n    var datas = extend({}, inner(this).datas);\n    datas[this.dataType] = res;\n    linkAll(res, datas, opt);\n  } else {\n    linkSingle(res, this.dataType, inner(this).mainData, opt);\n  }\n\n  return res;\n}\n\nfunction changeInjection(opt, res) {\n  opt.struct && opt.struct.update();\n  return res;\n}\n\nfunction cloneShallowInjection(opt, res) {\n  each(inner(res).datas, function (data, dataType) {\n    data !== res && linkSingle(data.cloneShallow(), dataType, res, opt);\n  });\n  return res;\n}\n\nfunction getLinkedData(dataType) {\n  var mainData = inner(this).mainData;\n  return dataType == null || mainData == null ? mainData : inner(mainData).datas[dataType];\n}\n\nfunction getLinkedDataAll() {\n  var mainData = inner(this).mainData;\n  return mainData == null ? [{\n    data: mainData\n  }] : map(keys(inner(mainData).datas), function (type) {\n    return {\n      type: type,\n      data: inner(mainData).datas[type]\n    };\n  });\n}\n\nfunction isMainData(data) {\n  return inner(data).mainData === data;\n}\n\nfunction linkAll(mainData, datas, opt) {\n  inner(mainData).datas = {};\n  each(datas, function (data, dataType) {\n    linkSingle(data, dataType, mainData, opt);\n  });\n}\n\nfunction linkSingle(data, dataType, mainData, opt) {\n  inner(mainData).datas[dataType] = data;\n  inner(data).mainData = mainData;\n  data.dataType = dataType;\n\n  if (opt.struct) {\n    data[opt.structAttr] = opt.struct;\n    opt.struct[opt.datasAttr[dataType]] = data;\n  }\n\n  data.getLinkedData = getLinkedData;\n  data.getLinkedDataAll = getLinkedDataAll;\n}\n\nexport default linkList;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport linkList from './helper/linkList';\nimport List from './List';\nimport createDimensions from './helper/createDimensions';\nimport { convertOptionIdName } from '../util/model';\n\nvar TreeNode = function () {\n  function TreeNode(name, hostTree) {\n    this.depth = 0;\n    this.height = 0;\n    this.dataIndex = -1;\n    this.children = [];\n    this.viewChildren = [];\n    this.isExpand = false;\n    this.name = name || '';\n    this.hostTree = hostTree;\n  }\n\n  TreeNode.prototype.isRemoved = function () {\n    return this.dataIndex < 0;\n  };\n\n  TreeNode.prototype.eachNode = function (options, cb, context) {\n    if (typeof options === 'function') {\n      context = cb;\n      cb = options;\n      options = null;\n    }\n\n    options = options || {};\n\n    if (zrUtil.isString(options)) {\n      options = {\n        order: options\n      };\n    }\n\n    var order = options.order || 'preorder';\n    var children = this[options.attr || 'children'];\n    var suppressVisitSub;\n    order === 'preorder' && (suppressVisitSub = cb.call(context, this));\n\n    for (var i = 0; !suppressVisitSub && i < children.length; i++) {\n      children[i].eachNode(options, cb, context);\n    }\n\n    order === 'postorder' && cb.call(context, this);\n  };\n\n  TreeNode.prototype.updateDepthAndHeight = function (depth) {\n    var height = 0;\n    this.depth = depth;\n\n    for (var i = 0; i < this.children.length; i++) {\n      var child = this.children[i];\n      child.updateDepthAndHeight(depth + 1);\n\n      if (child.height > height) {\n        height = child.height;\n      }\n    }\n\n    this.height = height + 1;\n  };\n\n  TreeNode.prototype.getNodeById = function (id) {\n    if (this.getId() === id) {\n      return this;\n    }\n\n    for (var i = 0, children = this.children, len = children.length; i < len; i++) {\n      var res = children[i].getNodeById(id);\n\n      if (res) {\n        return res;\n      }\n    }\n  };\n\n  TreeNode.prototype.contains = function (node) {\n    if (node === this) {\n      return true;\n    }\n\n    for (var i = 0, children = this.children, len = children.length; i < len; i++) {\n      var res = children[i].contains(node);\n\n      if (res) {\n        return res;\n      }\n    }\n  };\n\n  TreeNode.prototype.getAncestors = function (includeSelf) {\n    var ancestors = [];\n    var node = includeSelf ? this : this.parentNode;\n\n    while (node) {\n      ancestors.push(node);\n      node = node.parentNode;\n    }\n\n    ancestors.reverse();\n    return ancestors;\n  };\n\n  TreeNode.prototype.getAncestorsIndices = function () {\n    var indices = [];\n    var currNode = this;\n\n    while (currNode) {\n      indices.push(currNode.dataIndex);\n      currNode = currNode.parentNode;\n    }\n\n    indices.reverse();\n    return indices;\n  };\n\n  TreeNode.prototype.getDescendantIndices = function () {\n    var indices = [];\n    this.eachNode(function (childNode) {\n      indices.push(childNode.dataIndex);\n    });\n    return indices;\n  };\n\n  TreeNode.prototype.getValue = function (dimension) {\n    var data = this.hostTree.data;\n    return data.get(data.getDimension(dimension || 'value'), this.dataIndex);\n  };\n\n  TreeNode.prototype.setLayout = function (layout, merge) {\n    this.dataIndex >= 0 && this.hostTree.data.setItemLayout(this.dataIndex, layout, merge);\n  };\n\n  TreeNode.prototype.getLayout = function () {\n    return this.hostTree.data.getItemLayout(this.dataIndex);\n  };\n\n  TreeNode.prototype.getModel = function (path) {\n    if (this.dataIndex < 0) {\n      return;\n    }\n\n    var hostTree = this.hostTree;\n    var itemModel = hostTree.data.getItemModel(this.dataIndex);\n    return itemModel.getModel(path);\n  };\n\n  TreeNode.prototype.getLevelModel = function () {\n    return (this.hostTree.levelModels || [])[this.depth];\n  };\n\n  TreeNode.prototype.setVisual = function (key, value) {\n    this.dataIndex >= 0 && this.hostTree.data.setItemVisual(this.dataIndex, key, value);\n  };\n\n  TreeNode.prototype.getVisual = function (key) {\n    return this.hostTree.data.getItemVisual(this.dataIndex, key);\n  };\n\n  TreeNode.prototype.getRawIndex = function () {\n    return this.hostTree.data.getRawIndex(this.dataIndex);\n  };\n\n  TreeNode.prototype.getId = function () {\n    return this.hostTree.data.getId(this.dataIndex);\n  };\n\n  TreeNode.prototype.isAncestorOf = function (node) {\n    var parent = node.parentNode;\n\n    while (parent) {\n      if (parent === this) {\n        return true;\n      }\n\n      parent = parent.parentNode;\n    }\n\n    return false;\n  };\n\n  TreeNode.prototype.isDescendantOf = function (node) {\n    return node !== this && node.isAncestorOf(this);\n  };\n\n  return TreeNode;\n}();\n\nexport { TreeNode };\n;\n\nvar Tree = function () {\n  function Tree(hostModel) {\n    this.type = 'tree';\n    this._nodes = [];\n    this.hostModel = hostModel;\n  }\n\n  Tree.prototype.eachNode = function (options, cb, context) {\n    this.root.eachNode(options, cb, context);\n  };\n\n  Tree.prototype.getNodeByDataIndex = function (dataIndex) {\n    var rawIndex = this.data.getRawIndex(dataIndex);\n    return this._nodes[rawIndex];\n  };\n\n  Tree.prototype.getNodeById = function (name) {\n    return this.root.getNodeById(name);\n  };\n\n  Tree.prototype.update = function () {\n    var data = this.data;\n    var nodes = this._nodes;\n\n    for (var i = 0, len = nodes.length; i < len; i++) {\n      nodes[i].dataIndex = -1;\n    }\n\n    for (var i = 0, len = data.count(); i < len; i++) {\n      nodes[data.getRawIndex(i)].dataIndex = i;\n    }\n  };\n\n  Tree.prototype.clearLayouts = function () {\n    this.data.clearItemLayouts();\n  };\n\n  Tree.createTree = function (dataRoot, hostModel, beforeLink) {\n    var tree = new Tree(hostModel);\n    var listData = [];\n    var dimMax = 1;\n    buildHierarchy(dataRoot);\n\n    function buildHierarchy(dataNode, parentNode) {\n      var value = dataNode.value;\n      dimMax = Math.max(dimMax, zrUtil.isArray(value) ? value.length : 1);\n      listData.push(dataNode);\n      var node = new TreeNode(convertOptionIdName(dataNode.name, ''), tree);\n      parentNode ? addChild(node, parentNode) : tree.root = node;\n\n      tree._nodes.push(node);\n\n      var children = dataNode.children;\n\n      if (children) {\n        for (var i = 0; i < children.length; i++) {\n          buildHierarchy(children[i], node);\n        }\n      }\n    }\n\n    tree.root.updateDepthAndHeight(0);\n    var dimensionsInfo = createDimensions(listData, {\n      coordDimensions: ['value'],\n      dimensionsCount: dimMax\n    });\n    var list = new List(dimensionsInfo, hostModel);\n    list.initData(listData);\n    beforeLink && beforeLink(list);\n    linkList({\n      mainData: list,\n      struct: tree,\n      structAttr: 'tree'\n    });\n    tree.update();\n    return tree;\n  };\n\n  return Tree;\n}();\n\nfunction addChild(child, node) {\n  var children = node.children;\n\n  if (child.parentNode === node) {\n    return;\n  }\n\n  children.push(child);\n  child.parentNode = node;\n}\n\nexport default Tree;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport Tree from '../../data/Tree';\nimport Model from '../../model/Model';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup';\n\nvar TreeSeriesModel = function (_super) {\n  __extends(TreeSeriesModel, _super);\n\n  function TreeSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.hasSymbolVisual = true;\n    _this.ignoreStyleOnData = true;\n    return _this;\n  }\n\n  TreeSeriesModel.prototype.getInitialData = function (option) {\n    var root = {\n      name: option.name,\n      children: option.data\n    };\n    var leaves = option.leaves || {};\n    var leavesModel = new Model(leaves, this, this.ecModel);\n    var tree = Tree.createTree(root, this, beforeLink);\n\n    function beforeLink(nodeData) {\n      nodeData.wrapMethod('getItemModel', function (model, idx) {\n        var node = tree.getNodeByDataIndex(idx);\n\n        if (!node.children.length || !node.isExpand) {\n          model.parentModel = leavesModel;\n        }\n\n        return model;\n      });\n    }\n\n    var treeDepth = 0;\n    tree.eachNode('preorder', function (node) {\n      if (node.depth > treeDepth) {\n        treeDepth = node.depth;\n      }\n    });\n    var expandAndCollapse = option.expandAndCollapse;\n    var expandTreeDepth = expandAndCollapse && option.initialTreeDepth >= 0 ? option.initialTreeDepth : treeDepth;\n    tree.root.eachNode('preorder', function (node) {\n      var item = node.hostTree.data.getRawDataItem(node.dataIndex);\n      node.isExpand = item && item.collapsed != null ? !item.collapsed : node.depth <= expandTreeDepth;\n    });\n    return tree.data;\n  };\n\n  TreeSeriesModel.prototype.getOrient = function () {\n    var orient = this.get('orient');\n\n    if (orient === 'horizontal') {\n      orient = 'LR';\n    } else if (orient === 'vertical') {\n      orient = 'TB';\n    }\n\n    return orient;\n  };\n\n  TreeSeriesModel.prototype.setZoom = function (zoom) {\n    this.option.zoom = zoom;\n  };\n\n  TreeSeriesModel.prototype.setCenter = function (center) {\n    this.option.center = center;\n  };\n\n  TreeSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var tree = this.getData().tree;\n    var realRoot = tree.root.children[0];\n    var node = tree.getNodeByDataIndex(dataIndex);\n    var value = node.getValue();\n    var name = node.name;\n\n    while (node && node !== realRoot) {\n      name = node.parentNode.name + '.' + name;\n      node = node.parentNode;\n    }\n\n    return createTooltipMarkup('nameValue', {\n      name: name,\n      value: value,\n      noValue: isNaN(value) || value == null\n    });\n  };\n\n  TreeSeriesModel.type = 'series.tree';\n  TreeSeriesModel.layoutMode = 'box';\n  TreeSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'view',\n    left: '12%',\n    top: '12%',\n    right: '12%',\n    bottom: '12%',\n    layout: 'orthogonal',\n    edgeShape: 'curve',\n    edgeForkPosition: '50%',\n    roam: false,\n    nodeScaleRatio: 0.4,\n    center: null,\n    zoom: 1,\n    orient: 'LR',\n    symbol: 'emptyCircle',\n    symbolSize: 7,\n    expandAndCollapse: true,\n    initialTreeDepth: 2,\n    lineStyle: {\n      color: '#ccc',\n      width: 1.5,\n      curveness: 0.5\n    },\n    itemStyle: {\n      color: 'lightsteelblue',\n      borderColor: '#c23531',\n      borderWidth: 1.5\n    },\n    label: {\n      show: true\n    },\n    animationEasing: 'linear',\n    animationDuration: 700,\n    animationDurationUpdate: 500\n  };\n  return TreeSeriesModel;\n}(SeriesModel);\n\nexport default TreeSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nfunction eachAfter(root, callback, separation) {\n  var nodes = [root];\n  var next = [];\n  var node;\n\n  while (node = nodes.pop()) {\n    next.push(node);\n\n    if (node.isExpand) {\n      var children = node.children;\n\n      if (children.length) {\n        for (var i = 0; i < children.length; i++) {\n          nodes.push(children[i]);\n        }\n      }\n    }\n  }\n\n  while (node = next.pop()) {\n    callback(node, separation);\n  }\n}\n\nfunction eachBefore(root, callback) {\n  var nodes = [root];\n  var node;\n\n  while (node = nodes.pop()) {\n    callback(node);\n\n    if (node.isExpand) {\n      var children = node.children;\n\n      if (children.length) {\n        for (var i = children.length - 1; i >= 0; i--) {\n          nodes.push(children[i]);\n        }\n      }\n    }\n  }\n}\n\nexport { eachAfter, eachBefore };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { eachAfter, eachBefore } from './traversalHelper';\nimport { init, firstWalk, secondWalk, separation as sep, radialCoordinate, getViewRect } from './layoutHelper';\nexport default function treeLayout(ecModel, api) {\n  ecModel.eachSeriesByType('tree', function (seriesModel) {\n    commonLayout(seriesModel, api);\n  });\n}\n\nfunction commonLayout(seriesModel, api) {\n  var layoutInfo = getViewRect(seriesModel, api);\n  seriesModel.layoutInfo = layoutInfo;\n  var layout = seriesModel.get('layout');\n  var width = 0;\n  var height = 0;\n  var separation = null;\n\n  if (layout === 'radial') {\n    width = 2 * Math.PI;\n    height = Math.min(layoutInfo.height, layoutInfo.width) / 2;\n    separation = sep(function (node1, node2) {\n      return (node1.parentNode === node2.parentNode ? 1 : 2) / node1.depth;\n    });\n  } else {\n    width = layoutInfo.width;\n    height = layoutInfo.height;\n    separation = sep();\n  }\n\n  var virtualRoot = seriesModel.getData().tree.root;\n  var realRoot = virtualRoot.children[0];\n\n  if (realRoot) {\n    init(virtualRoot);\n    eachAfter(realRoot, firstWalk, separation);\n    virtualRoot.hierNode.modifier = -realRoot.hierNode.prelim;\n    eachBefore(realRoot, secondWalk);\n    var left_1 = realRoot;\n    var right_1 = realRoot;\n    var bottom_1 = realRoot;\n    eachBefore(realRoot, function (node) {\n      var x = node.getLayout().x;\n\n      if (x < left_1.getLayout().x) {\n        left_1 = node;\n      }\n\n      if (x > right_1.getLayout().x) {\n        right_1 = node;\n      }\n\n      if (node.depth > bottom_1.depth) {\n        bottom_1 = node;\n      }\n    });\n    var delta = left_1 === right_1 ? 1 : separation(left_1, right_1) / 2;\n    var tx_1 = delta - left_1.getLayout().x;\n    var kx_1 = 0;\n    var ky_1 = 0;\n    var coorX_1 = 0;\n    var coorY_1 = 0;\n\n    if (layout === 'radial') {\n      kx_1 = width / (right_1.getLayout().x + delta + tx_1);\n      ky_1 = height / (bottom_1.depth - 1 || 1);\n      eachBefore(realRoot, function (node) {\n        coorX_1 = (node.getLayout().x + tx_1) * kx_1;\n        coorY_1 = (node.depth - 1) * ky_1;\n        var finalCoor = radialCoordinate(coorX_1, coorY_1);\n        node.setLayout({\n          x: finalCoor.x,\n          y: finalCoor.y,\n          rawX: coorX_1,\n          rawY: coorY_1\n        }, true);\n      });\n    } else {\n      var orient_1 = seriesModel.getOrient();\n\n      if (orient_1 === 'RL' || orient_1 === 'LR') {\n        ky_1 = height / (right_1.getLayout().x + delta + tx_1);\n        kx_1 = width / (bottom_1.depth - 1 || 1);\n        eachBefore(realRoot, function (node) {\n          coorY_1 = (node.getLayout().x + tx_1) * ky_1;\n          coorX_1 = orient_1 === 'LR' ? (node.depth - 1) * kx_1 : width - (node.depth - 1) * kx_1;\n          node.setLayout({\n            x: coorX_1,\n            y: coorY_1\n          }, true);\n        });\n      } else if (orient_1 === 'TB' || orient_1 === 'BT') {\n        kx_1 = width / (right_1.getLayout().x + delta + tx_1);\n        ky_1 = height / (bottom_1.depth - 1 || 1);\n        eachBefore(realRoot, function (node) {\n          coorX_1 = (node.getLayout().x + tx_1) * kx_1;\n          coorY_1 = orient_1 === 'TB' ? (node.depth - 1) * ky_1 : height - (node.depth - 1) * ky_1;\n          node.setLayout({\n            x: coorX_1,\n            y: coorY_1\n          }, true);\n        });\n      }\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { extend } from 'zrender/lib/core/util';\nexport default function treeVisual(ecModel) {\n  ecModel.eachSeriesByType('tree', function (seriesModel) {\n    var data = seriesModel.getData();\n    var tree = data.tree;\n    tree.eachNode(function (node) {\n      var model = node.getModel();\n      var style = model.getModel('itemStyle').getItemStyle();\n      var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, 'style');\n      extend(existsStyle, style);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function updateCenterAndZoom(view, payload, zoomLimit) {\n  var previousZoom = view.getZoom();\n  var center = view.getCenter();\n  var zoom = payload.zoom;\n  var point = view.dataToPoint(center);\n\n  if (payload.dx != null && payload.dy != null) {\n    point[0] -= payload.dx;\n    point[1] -= payload.dy;\n    view.setCenter(view.pointToData(point));\n  }\n\n  if (zoom != null) {\n    if (zoomLimit) {\n      var zoomMin = zoomLimit.min || 0;\n      var zoomMax = zoomLimit.max || Infinity;\n      zoom = Math.max(Math.min(previousZoom * zoom, zoomMax), zoomMin) / previousZoom;\n    }\n\n    view.scaleX *= zoom;\n    view.scaleY *= zoom;\n    var fixX = (payload.originX - view.x) * (zoom - 1);\n    var fixY = (payload.originY - view.y) * (zoom - 1);\n    view.x -= fixX;\n    view.y -= fixY;\n    view.updateTransform();\n    view.setCenter(view.pointToData(point));\n    view.setZoom(zoom * previousZoom);\n  }\n\n  return {\n    center: view.getCenter(),\n    zoom: view.getZoom()\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { updateCenterAndZoom } from '../../action/roamHelper';\nexport function installTreeAction(registers) {\n  registers.registerAction({\n    type: 'treeExpandAndCollapse',\n    event: 'treeExpandAndCollapse',\n    update: 'update'\n  }, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'tree',\n      query: payload\n    }, function (seriesModel) {\n      var dataIndex = payload.dataIndex;\n      var tree = seriesModel.getData().tree;\n      var node = tree.getNodeByDataIndex(dataIndex);\n      node.isExpand = !node.isExpand;\n    });\n  });\n  registers.registerAction({\n    type: 'treeRoam',\n    event: 'treeRoam',\n    update: 'none'\n  }, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'tree',\n      query: payload\n    }, function (seriesModel) {\n      var coordSys = seriesModel.coordinateSystem;\n      var res = updateCenterAndZoom(coordSys, payload);\n      seriesModel.setCenter && seriesModel.setCenter(res.center);\n      seriesModel.setZoom && seriesModel.setZoom(res.zoom);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport TreeView from './TreeView';\nimport TreeSeriesModel from './TreeSeries';\nimport treeLayout from './treeLayout';\nimport treeVisual from './treeVisual';\nimport { installTreeAction } from './treeAction';\nexport function install(registers) {\n  registers.registerChartView(TreeView);\n  registers.registerSeriesModel(TreeSeriesModel);\n  registers.registerLayout(treeLayout);\n  registers.registerVisual(treeVisual);\n  installTreeAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport function retrieveTargetInfo(payload, validPayloadTypes, seriesModel) {\n  if (payload && zrUtil.indexOf(validPayloadTypes, payload.type) >= 0) {\n    var root = seriesModel.getData().tree.root;\n    var targetNode = payload.targetNode;\n\n    if (typeof targetNode === 'string') {\n      targetNode = root.getNodeById(targetNode);\n    }\n\n    if (targetNode && root.contains(targetNode)) {\n      return {\n        node: targetNode\n      };\n    }\n\n    var targetNodeId = payload.targetNodeId;\n\n    if (targetNodeId != null && (targetNode = root.getNodeById(targetNodeId))) {\n      return {\n        node: targetNode\n      };\n    }\n  }\n}\nexport function getPathToRoot(node) {\n  var path = [];\n\n  while (node) {\n    node = node.parentNode;\n    node && path.push(node);\n  }\n\n  return path.reverse();\n}\nexport function aboveViewRoot(viewRoot, node) {\n  var viewPath = getPathToRoot(viewRoot);\n  return zrUtil.indexOf(viewPath, node) >= 0;\n}\nexport function wrapTreePathInfo(node, seriesModel) {\n  var treePathInfo = [];\n\n  while (node) {\n    var nodeDataIndex = node.dataIndex;\n    treePathInfo.push({\n      name: node.name,\n      dataIndex: nodeDataIndex,\n      value: seriesModel.getRawValue(nodeDataIndex)\n    });\n    node = node.parentNode;\n  }\n\n  treePathInfo.reverse();\n  return treePathInfo;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as helper from '../helper/treeHelper';\n\nvar noop = function () {};\n\nvar actionTypes = ['treemapZoomToNode', 'treemapRender', 'treemapMove'];\nexport function installTreemapAction(registers) {\n  for (var i = 0; i < actionTypes.length; i++) {\n    registers.registerAction({\n      type: actionTypes[i],\n      update: 'updateView'\n    }, noop);\n  }\n\n  registers.registerAction({\n    type: 'treemapRootToNode',\n    update: 'updateView'\n  }, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'treemap',\n      query: payload\n    }, handleRootToNode);\n\n    function handleRootToNode(model, index) {\n      var types = ['treemapZoomToNode', 'treemapRootToNode'];\n      var targetInfo = helper.retrieveTargetInfo(payload, types, model);\n\n      if (targetInfo) {\n        var originViewRoot = model.getViewRoot();\n\n        if (originViewRoot) {\n          payload.direction = helper.aboveViewRoot(originViewRoot, targetInfo.node) ? 'rollUp' : 'drillDown';\n        }\n\n        model.resetViewRoot(targetInfo.node);\n      }\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { getDecalFromPalette } from '../../model/mixin/palette';\nexport default function enableAriaDecalForTree(seriesModel) {\n  var data = seriesModel.getData();\n  var tree = data.tree;\n  var decalPaletteScope = {};\n  tree.eachNode(function (node) {\n    var current = node;\n\n    while (current && current.depth > 1) {\n      current = current.parentNode;\n    }\n\n    var decal = getDecalFromPalette(seriesModel.ecModel, current.name || current.dataIndex + '', decalPaletteScope);\n    node.setVisual('decal', decal);\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport SeriesModel from '../../model/Series';\nimport Tree from '../../data/Tree';\nimport Model from '../../model/Model';\nimport { wrapTreePathInfo } from '../helper/treeHelper';\nimport { normalizeToArray } from '../../util/model';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup';\nimport enableAriaDecalForTree from '../helper/enableAriaDecalForTree';\n\nvar TreemapSeriesModel = function (_super) {\n  __extends(TreemapSeriesModel, _super);\n\n  function TreemapSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TreemapSeriesModel.type;\n    _this.preventUsingHoverLayer = true;\n    return _this;\n  }\n\n  TreemapSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    var root = {\n      name: option.name,\n      children: option.data\n    };\n    completeTreeValue(root);\n    var levels = option.levels || [];\n    var designatedVisualItemStyle = this.designatedVisualItemStyle = {};\n    var designatedVisualModel = new Model({\n      itemStyle: designatedVisualItemStyle\n    }, this, ecModel);\n    levels = option.levels = setDefault(levels, ecModel);\n    var levelModels = zrUtil.map(levels || [], function (levelDefine) {\n      return new Model(levelDefine, designatedVisualModel, ecModel);\n    }, this);\n    var tree = Tree.createTree(root, this, beforeLink);\n\n    function beforeLink(nodeData) {\n      nodeData.wrapMethod('getItemModel', function (model, idx) {\n        var node = tree.getNodeByDataIndex(idx);\n        var levelModel = levelModels[node.depth];\n        model.parentModel = levelModel || designatedVisualModel;\n        return model;\n      });\n    }\n\n    return tree.data;\n  };\n\n  TreemapSeriesModel.prototype.optionUpdated = function () {\n    this.resetViewRoot();\n  };\n\n  TreemapSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var data = this.getData();\n    var value = this.getRawValue(dataIndex);\n    var name = data.getName(dataIndex);\n    return createTooltipMarkup('nameValue', {\n      name: name,\n      value: value\n    });\n  };\n\n  TreemapSeriesModel.prototype.getDataParams = function (dataIndex) {\n    var params = _super.prototype.getDataParams.apply(this, arguments);\n\n    var node = this.getData().tree.getNodeByDataIndex(dataIndex);\n    params.treePathInfo = wrapTreePathInfo(node, this);\n    return params;\n  };\n\n  TreemapSeriesModel.prototype.setLayoutInfo = function (layoutInfo) {\n    this.layoutInfo = this.layoutInfo || {};\n    zrUtil.extend(this.layoutInfo, layoutInfo);\n  };\n\n  TreemapSeriesModel.prototype.mapIdToIndex = function (id) {\n    var idIndexMap = this._idIndexMap;\n\n    if (!idIndexMap) {\n      idIndexMap = this._idIndexMap = zrUtil.createHashMap();\n      this._idIndexMapCount = 0;\n    }\n\n    var index = idIndexMap.get(id);\n\n    if (index == null) {\n      idIndexMap.set(id, index = this._idIndexMapCount++);\n    }\n\n    return index;\n  };\n\n  TreemapSeriesModel.prototype.getViewRoot = function () {\n    return this._viewRoot;\n  };\n\n  TreemapSeriesModel.prototype.resetViewRoot = function (viewRoot) {\n    viewRoot ? this._viewRoot = viewRoot : viewRoot = this._viewRoot;\n    var root = this.getRawData().tree.root;\n\n    if (!viewRoot || viewRoot !== root && !root.contains(viewRoot)) {\n      this._viewRoot = root;\n    }\n  };\n\n  TreemapSeriesModel.prototype.enableAriaDecal = function () {\n    enableAriaDecalForTree(this);\n  };\n\n  TreemapSeriesModel.type = 'series.treemap';\n  TreemapSeriesModel.layoutMode = 'box';\n  TreemapSeriesModel.defaultOption = {\n    progressive: 0,\n    left: 'center',\n    top: 'middle',\n    width: '80%',\n    height: '80%',\n    sort: true,\n    clipWindow: 'origin',\n    squareRatio: 0.5 * (1 + Math.sqrt(5)),\n    leafDepth: null,\n    drillDownIcon: '▶',\n    zoomToNodeRatio: 0.32 * 0.32,\n    roam: true,\n    nodeClick: 'zoomToNode',\n    animation: true,\n    animationDurationUpdate: 900,\n    animationEasing: 'quinticInOut',\n    breadcrumb: {\n      show: true,\n      height: 22,\n      left: 'center',\n      top: 'bottom',\n      emptyItemWidth: 25,\n      itemStyle: {\n        color: 'rgba(0,0,0,0.7)',\n        textStyle: {\n          color: '#fff'\n        }\n      }\n    },\n    label: {\n      show: true,\n      distance: 0,\n      padding: 5,\n      position: 'inside',\n      color: '#fff',\n      overflow: 'truncate'\n    },\n    upperLabel: {\n      show: false,\n      position: [0, '50%'],\n      height: 20,\n      overflow: 'truncate',\n      verticalAlign: 'middle'\n    },\n    itemStyle: {\n      color: null,\n      colorAlpha: null,\n      colorSaturation: null,\n      borderWidth: 0,\n      gapWidth: 0,\n      borderColor: '#fff',\n      borderColorSaturation: null\n    },\n    emphasis: {\n      upperLabel: {\n        show: true,\n        position: [0, '50%'],\n        ellipsis: true,\n        verticalAlign: 'middle'\n      }\n    },\n    visualDimension: 0,\n    visualMin: null,\n    visualMax: null,\n    color: [],\n    colorAlpha: null,\n    colorSaturation: null,\n    colorMappingBy: 'index',\n    visibleMin: 10,\n    childrenVisibleMin: null,\n    levels: []\n  };\n  return TreemapSeriesModel;\n}(SeriesModel);\n\nfunction completeTreeValue(dataNode) {\n  var sum = 0;\n  zrUtil.each(dataNode.children, function (child) {\n    completeTreeValue(child);\n    var childValue = child.value;\n    zrUtil.isArray(childValue) && (childValue = childValue[0]);\n    sum += childValue;\n  });\n  var thisValue = dataNode.value;\n\n  if (zrUtil.isArray(thisValue)) {\n    thisValue = thisValue[0];\n  }\n\n  if (thisValue == null || isNaN(thisValue)) {\n    thisValue = sum;\n  }\n\n  if (thisValue < 0) {\n    thisValue = 0;\n  }\n\n  zrUtil.isArray(dataNode.value) ? dataNode.value[0] = thisValue : dataNode.value = thisValue;\n}\n\nfunction setDefault(levels, ecModel) {\n  var globalColorList = normalizeToArray(ecModel.get('color'));\n  var globalDecalList = normalizeToArray(ecModel.get(['aria', 'decal', 'decals']));\n\n  if (!globalColorList) {\n    return;\n  }\n\n  levels = levels || [];\n  var hasColorDefine;\n  var hasDecalDefine;\n  zrUtil.each(levels, function (levelDefine) {\n    var model = new Model(levelDefine);\n    var modelColor = model.get('color');\n    var modelDecal = model.get('decal');\n\n    if (model.get(['itemStyle', 'color']) || modelColor && modelColor !== 'none') {\n      hasColorDefine = true;\n    }\n\n    if (model.get(['itemStyle', 'decal']) || modelDecal && modelDecal !== 'none') {\n      hasDecalDefine = true;\n    }\n  });\n  var level0 = levels[0] || (levels[0] = {});\n\n  if (!hasColorDefine) {\n    level0.color = globalColorList.slice();\n  }\n\n  if (!hasDecalDefine && globalDecalList) {\n    level0.decal = globalDecalList.slice();\n  }\n\n  return levels;\n}\n\nexport default TreemapSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport * as layout from '../../util/layout';\nimport { wrapTreePathInfo } from '../helper/treeHelper';\nimport { curry, defaults } from 'zrender/lib/core/util';\nimport { convertOptionIdName } from '../../util/model';\nvar TEXT_PADDING = 8;\nvar ITEM_GAP = 8;\nvar ARRAY_LENGTH = 5;\n\nvar Breadcrumb = function () {\n  function Breadcrumb(containerGroup) {\n    this.group = new graphic.Group();\n    containerGroup.add(this.group);\n  }\n\n  Breadcrumb.prototype.render = function (seriesModel, api, targetNode, onSelect) {\n    var model = seriesModel.getModel('breadcrumb');\n    var thisGroup = this.group;\n    thisGroup.removeAll();\n\n    if (!model.get('show') || !targetNode) {\n      return;\n    }\n\n    var normalStyleModel = model.getModel('itemStyle');\n    var textStyleModel = normalStyleModel.getModel('textStyle');\n    var layoutParam = {\n      pos: {\n        left: model.get('left'),\n        right: model.get('right'),\n        top: model.get('top'),\n        bottom: model.get('bottom')\n      },\n      box: {\n        width: api.getWidth(),\n        height: api.getHeight()\n      },\n      emptyItemWidth: model.get('emptyItemWidth'),\n      totalWidth: 0,\n      renderList: []\n    };\n\n    this._prepare(targetNode, layoutParam, textStyleModel);\n\n    this._renderContent(seriesModel, layoutParam, normalStyleModel, textStyleModel, onSelect);\n\n    layout.positionElement(thisGroup, layoutParam.pos, layoutParam.box);\n  };\n\n  Breadcrumb.prototype._prepare = function (targetNode, layoutParam, textStyleModel) {\n    for (var node = targetNode; node; node = node.parentNode) {\n      var text = convertOptionIdName(node.getModel().get('name'), '');\n      var textRect = textStyleModel.getTextRect(text);\n      var itemWidth = Math.max(textRect.width + TEXT_PADDING * 2, layoutParam.emptyItemWidth);\n      layoutParam.totalWidth += itemWidth + ITEM_GAP;\n      layoutParam.renderList.push({\n        node: node,\n        text: text,\n        width: itemWidth\n      });\n    }\n  };\n\n  Breadcrumb.prototype._renderContent = function (seriesModel, layoutParam, normalStyleModel, textStyleModel, onSelect) {\n    var lastX = 0;\n    var emptyItemWidth = layoutParam.emptyItemWidth;\n    var height = seriesModel.get(['breadcrumb', 'height']);\n    var availableSize = layout.getAvailableSize(layoutParam.pos, layoutParam.box);\n    var totalWidth = layoutParam.totalWidth;\n    var renderList = layoutParam.renderList;\n\n    for (var i = renderList.length - 1; i >= 0; i--) {\n      var item = renderList[i];\n      var itemNode = item.node;\n      var itemWidth = item.width;\n      var text = item.text;\n\n      if (totalWidth > availableSize.width) {\n        totalWidth -= itemWidth - emptyItemWidth;\n        itemWidth = emptyItemWidth;\n        text = null;\n      }\n\n      var el = new graphic.Polygon({\n        shape: {\n          points: makeItemPoints(lastX, 0, itemWidth, height, i === renderList.length - 1, i === 0)\n        },\n        style: defaults(normalStyleModel.getItemStyle(), {\n          lineJoin: 'bevel'\n        }),\n        textContent: new graphic.Text({\n          style: {\n            text: text,\n            fill: textStyleModel.getTextColor(),\n            font: textStyleModel.getFont()\n          }\n        }),\n        textConfig: {\n          position: 'inside'\n        },\n        z: 10,\n        onclick: curry(onSelect, itemNode)\n      });\n      el.disableLabelAnimation = true;\n      this.group.add(el);\n      packEventData(el, seriesModel, itemNode);\n      lastX += itemWidth + ITEM_GAP;\n    }\n  };\n\n  Breadcrumb.prototype.remove = function () {\n    this.group.removeAll();\n  };\n\n  return Breadcrumb;\n}();\n\nfunction makeItemPoints(x, y, itemWidth, itemHeight, head, tail) {\n  var points = [[head ? x : x - ARRAY_LENGTH, y], [x + itemWidth, y], [x + itemWidth, y + itemHeight], [head ? x : x - ARRAY_LENGTH, y + itemHeight]];\n  !tail && points.splice(2, 0, [x + itemWidth + ARRAY_LENGTH, y + itemHeight / 2]);\n  !head && points.push([x, y + itemHeight / 2]);\n  return points;\n}\n\nfunction packEventData(el, seriesModel, itemNode) {\n  getECData(el).eventData = {\n    componentType: 'series',\n    componentSubType: 'treemap',\n    componentIndex: seriesModel.componentIndex,\n    seriesIndex: seriesModel.componentIndex,\n    seriesName: seriesModel.name,\n    seriesType: 'treemap',\n    selfType: 'breadcrumb',\n    nodeData: {\n      dataIndex: itemNode && itemNode.dataIndex,\n      name: itemNode && itemNode.name\n    },\n    treePathInfo: itemNode && wrapTreePathInfo(itemNode, seriesModel)\n  };\n}\n\nexport default Breadcrumb;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar AnimationWrap = function () {\n  function AnimationWrap() {\n    this._storage = [];\n    this._elExistsMap = {};\n  }\n\n  AnimationWrap.prototype.add = function (el, target, duration, delay, easing) {\n    if (this._elExistsMap[el.id]) {\n      return false;\n    }\n\n    this._elExistsMap[el.id] = true;\n\n    this._storage.push({\n      el: el,\n      target: target,\n      duration: duration,\n      delay: delay,\n      easing: easing\n    });\n\n    return true;\n  };\n\n  AnimationWrap.prototype.finished = function (callback) {\n    this._finishedCallback = callback;\n    return this;\n  };\n\n  AnimationWrap.prototype.start = function () {\n    var _this = this;\n\n    var count = this._storage.length;\n\n    var checkTerminate = function () {\n      count--;\n\n      if (count <= 0) {\n        _this._storage.length = 0;\n        _this._elExistsMap = {};\n        _this._finishedCallback && _this._finishedCallback();\n      }\n    };\n\n    for (var i = 0, len = this._storage.length; i < len; i++) {\n      var item = this._storage[i];\n      item.el.animateTo(item.target, {\n        duration: item.duration,\n        delay: item.delay,\n        easing: item.easing,\n        setToFinal: true,\n        done: checkTerminate,\n        aborted: checkTerminate\n      });\n    }\n\n    return this;\n  };\n\n  return AnimationWrap;\n}();\n\nexport function createWrap() {\n  return new AnimationWrap();\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { bind, each, indexOf, curry, extend, retrieve, normalizeCssArray, isFunction } from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { isHighDownDispatcher, setAsHighDownDispatcher, setDefaultStateProxy, enableHoverFocus } from '../../util/states';\nimport DataDiffer from '../../data/DataDiffer';\nimport * as helper from '../helper/treeHelper';\nimport Breadcrumb from './Breadcrumb';\nimport RoamController from '../../component/helper/RoamController';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport * as animationUtil from '../../util/animation';\nimport makeStyleMapper from '../../model/mixin/makeStyleMapper';\nimport ChartView from '../../view/Chart';\nimport Displayable from 'zrender/lib/graphic/Displayable';\nimport { makeInner, convertOptionIdName } from '../../util/model';\nimport { windowOpen } from '../../util/format';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nvar Group = graphic.Group;\nvar Rect = graphic.Rect;\nvar DRAG_THRESHOLD = 3;\nvar PATH_LABEL_NOAMAL = 'label';\nvar PATH_UPPERLABEL_NORMAL = 'upperLabel';\nvar Z_BASE = 10;\nvar Z_BG = 1;\nvar Z_CONTENT = 2;\nvar getStateItemStyle = makeStyleMapper([['fill', 'color'], ['stroke', 'strokeColor'], ['lineWidth', 'strokeWidth'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor']]);\n\nvar getItemStyleNormal = function (model) {\n  var itemStyle = getStateItemStyle(model);\n  itemStyle.stroke = itemStyle.fill = itemStyle.lineWidth = null;\n  return itemStyle;\n};\n\nvar inner = makeInner();\n\nvar TreemapView = function (_super) {\n  __extends(TreemapView, _super);\n\n  function TreemapView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TreemapView.type;\n    _this._state = 'ready';\n    _this._storage = createStorage();\n    return _this;\n  }\n\n  TreemapView.prototype.render = function (seriesModel, ecModel, api, payload) {\n    var models = ecModel.findComponents({\n      mainType: 'series',\n      subType: 'treemap',\n      query: payload\n    });\n\n    if (indexOf(models, seriesModel) < 0) {\n      return;\n    }\n\n    this.seriesModel = seriesModel;\n    this.api = api;\n    this.ecModel = ecModel;\n    var types = ['treemapZoomToNode', 'treemapRootToNode'];\n    var targetInfo = helper.retrieveTargetInfo(payload, types, seriesModel);\n    var payloadType = payload && payload.type;\n    var layoutInfo = seriesModel.layoutInfo;\n    var isInit = !this._oldTree;\n    var thisStorage = this._storage;\n    var reRoot = payloadType === 'treemapRootToNode' && targetInfo && thisStorage ? {\n      rootNodeGroup: thisStorage.nodeGroup[targetInfo.node.getRawIndex()],\n      direction: payload.direction\n    } : null;\n\n    var containerGroup = this._giveContainerGroup(layoutInfo);\n\n    var renderResult = this._doRender(containerGroup, seriesModel, reRoot);\n\n    !isInit && (!payloadType || payloadType === 'treemapZoomToNode' || payloadType === 'treemapRootToNode') ? this._doAnimation(containerGroup, renderResult, seriesModel, reRoot) : renderResult.renderFinally();\n\n    this._resetController(api);\n\n    this._renderBreadcrumb(seriesModel, api, targetInfo);\n  };\n\n  TreemapView.prototype._giveContainerGroup = function (layoutInfo) {\n    var containerGroup = this._containerGroup;\n\n    if (!containerGroup) {\n      containerGroup = this._containerGroup = new Group();\n\n      this._initEvents(containerGroup);\n\n      this.group.add(containerGroup);\n    }\n\n    containerGroup.x = layoutInfo.x;\n    containerGroup.y = layoutInfo.y;\n    return containerGroup;\n  };\n\n  TreemapView.prototype._doRender = function (containerGroup, seriesModel, reRoot) {\n    var thisTree = seriesModel.getData().tree;\n    var oldTree = this._oldTree;\n    var lastsForAnimation = createStorage();\n    var thisStorage = createStorage();\n    var oldStorage = this._storage;\n    var willInvisibleEls = [];\n\n    function doRenderNode(thisNode, oldNode, parentGroup, depth) {\n      return renderNode(seriesModel, thisStorage, oldStorage, reRoot, lastsForAnimation, willInvisibleEls, thisNode, oldNode, parentGroup, depth);\n    }\n\n    dualTravel(thisTree.root ? [thisTree.root] : [], oldTree && oldTree.root ? [oldTree.root] : [], containerGroup, thisTree === oldTree || !oldTree, 0);\n    var willDeleteEls = clearStorage(oldStorage);\n    this._oldTree = thisTree;\n    this._storage = thisStorage;\n    return {\n      lastsForAnimation: lastsForAnimation,\n      willDeleteEls: willDeleteEls,\n      renderFinally: renderFinally\n    };\n\n    function dualTravel(thisViewChildren, oldViewChildren, parentGroup, sameTree, depth) {\n      if (sameTree) {\n        oldViewChildren = thisViewChildren;\n        each(thisViewChildren, function (child, index) {\n          !child.isRemoved() && processNode(index, index);\n        });\n      } else {\n        new DataDiffer(oldViewChildren, thisViewChildren, getKey, getKey).add(processNode).update(processNode).remove(curry(processNode, null)).execute();\n      }\n\n      function getKey(node) {\n        return node.getId();\n      }\n\n      function processNode(newIndex, oldIndex) {\n        var thisNode = newIndex != null ? thisViewChildren[newIndex] : null;\n        var oldNode = oldIndex != null ? oldViewChildren[oldIndex] : null;\n        var group = doRenderNode(thisNode, oldNode, parentGroup, depth);\n        group && dualTravel(thisNode && thisNode.viewChildren || [], oldNode && oldNode.viewChildren || [], group, sameTree, depth + 1);\n      }\n    }\n\n    function clearStorage(storage) {\n      var willDeleteEls = createStorage();\n      storage && each(storage, function (store, storageName) {\n        var delEls = willDeleteEls[storageName];\n        each(store, function (el) {\n          el && (delEls.push(el), inner(el).willDelete = true);\n        });\n      });\n      return willDeleteEls;\n    }\n\n    function renderFinally() {\n      each(willDeleteEls, function (els) {\n        each(els, function (el) {\n          el.parent && el.parent.remove(el);\n        });\n      });\n      each(willInvisibleEls, function (el) {\n        el.invisible = true;\n        el.dirty();\n      });\n    }\n  };\n\n  TreemapView.prototype._doAnimation = function (containerGroup, renderResult, seriesModel, reRoot) {\n    if (!seriesModel.get('animation')) {\n      return;\n    }\n\n    var durationOption = seriesModel.get('animationDurationUpdate');\n    var easingOption = seriesModel.get('animationEasing');\n    var duration = (isFunction(durationOption) ? 0 : durationOption) || 0;\n    var easing = (isFunction(easingOption) ? null : easingOption) || 'cubicOut';\n    var animationWrap = animationUtil.createWrap();\n    each(renderResult.willDeleteEls, function (store, storageName) {\n      each(store, function (el, rawIndex) {\n        if (el.invisible) {\n          return;\n        }\n\n        var parent = el.parent;\n        var target;\n        var innerStore = inner(parent);\n\n        if (reRoot && reRoot.direction === 'drillDown') {\n          target = parent === reRoot.rootNodeGroup ? {\n            shape: {\n              x: 0,\n              y: 0,\n              width: innerStore.nodeWidth,\n              height: innerStore.nodeHeight\n            },\n            style: {\n              opacity: 0\n            }\n          } : {\n            style: {\n              opacity: 0\n            }\n          };\n        } else {\n          var targetX = 0;\n          var targetY = 0;\n\n          if (!innerStore.willDelete) {\n            targetX = innerStore.nodeWidth / 2;\n            targetY = innerStore.nodeHeight / 2;\n          }\n\n          target = storageName === 'nodeGroup' ? {\n            x: targetX,\n            y: targetY,\n            style: {\n              opacity: 0\n            }\n          } : {\n            shape: {\n              x: targetX,\n              y: targetY,\n              width: 0,\n              height: 0\n            },\n            style: {\n              opacity: 0\n            }\n          };\n        }\n\n        target && animationWrap.add(el, target, duration, 0, easing);\n      });\n    });\n    each(this._storage, function (store, storageName) {\n      each(store, function (el, rawIndex) {\n        var last = renderResult.lastsForAnimation[storageName][rawIndex];\n        var target = {};\n\n        if (!last) {\n          return;\n        }\n\n        if (el instanceof graphic.Group) {\n          if (last.oldX != null) {\n            target.x = el.x;\n            target.y = el.y;\n            el.x = last.oldX;\n            el.y = last.oldY;\n          }\n        } else {\n          if (last.oldShape) {\n            target.shape = extend({}, el.shape);\n            el.setShape(last.oldShape);\n          }\n\n          if (last.fadein) {\n            el.setStyle('opacity', 0);\n            target.style = {\n              opacity: 1\n            };\n          } else if (el.style.opacity !== 1) {\n            target.style = {\n              opacity: 1\n            };\n          }\n        }\n\n        animationWrap.add(el, target, duration, 0, easing);\n      });\n    }, this);\n    this._state = 'animating';\n    animationWrap.finished(bind(function () {\n      this._state = 'ready';\n      renderResult.renderFinally();\n    }, this)).start();\n  };\n\n  TreemapView.prototype._resetController = function (api) {\n    var controller = this._controller;\n\n    if (!controller) {\n      controller = this._controller = new RoamController(api.getZr());\n      controller.enable(this.seriesModel.get('roam'));\n      controller.on('pan', bind(this._onPan, this));\n      controller.on('zoom', bind(this._onZoom, this));\n    }\n\n    var rect = new BoundingRect(0, 0, api.getWidth(), api.getHeight());\n    controller.setPointerChecker(function (e, x, y) {\n      return rect.contain(x, y);\n    });\n  };\n\n  TreemapView.prototype._clearController = function () {\n    var controller = this._controller;\n\n    if (controller) {\n      controller.dispose();\n      controller = null;\n    }\n  };\n\n  TreemapView.prototype._onPan = function (e) {\n    if (this._state !== 'animating' && (Math.abs(e.dx) > DRAG_THRESHOLD || Math.abs(e.dy) > DRAG_THRESHOLD)) {\n      var root = this.seriesModel.getData().tree.root;\n\n      if (!root) {\n        return;\n      }\n\n      var rootLayout = root.getLayout();\n\n      if (!rootLayout) {\n        return;\n      }\n\n      this.api.dispatchAction({\n        type: 'treemapMove',\n        from: this.uid,\n        seriesId: this.seriesModel.id,\n        rootRect: {\n          x: rootLayout.x + e.dx,\n          y: rootLayout.y + e.dy,\n          width: rootLayout.width,\n          height: rootLayout.height\n        }\n      });\n    }\n  };\n\n  TreemapView.prototype._onZoom = function (e) {\n    var mouseX = e.originX;\n    var mouseY = e.originY;\n\n    if (this._state !== 'animating') {\n      var root = this.seriesModel.getData().tree.root;\n\n      if (!root) {\n        return;\n      }\n\n      var rootLayout = root.getLayout();\n\n      if (!rootLayout) {\n        return;\n      }\n\n      var rect = new BoundingRect(rootLayout.x, rootLayout.y, rootLayout.width, rootLayout.height);\n      var layoutInfo = this.seriesModel.layoutInfo;\n      mouseX -= layoutInfo.x;\n      mouseY -= layoutInfo.y;\n      var m = matrix.create();\n      matrix.translate(m, m, [-mouseX, -mouseY]);\n      matrix.scale(m, m, [e.scale, e.scale]);\n      matrix.translate(m, m, [mouseX, mouseY]);\n      rect.applyTransform(m);\n      this.api.dispatchAction({\n        type: 'treemapRender',\n        from: this.uid,\n        seriesId: this.seriesModel.id,\n        rootRect: {\n          x: rect.x,\n          y: rect.y,\n          width: rect.width,\n          height: rect.height\n        }\n      });\n    }\n  };\n\n  TreemapView.prototype._initEvents = function (containerGroup) {\n    var _this = this;\n\n    containerGroup.on('click', function (e) {\n      if (_this._state !== 'ready') {\n        return;\n      }\n\n      var nodeClick = _this.seriesModel.get('nodeClick', true);\n\n      if (!nodeClick) {\n        return;\n      }\n\n      var targetInfo = _this.findTarget(e.offsetX, e.offsetY);\n\n      if (!targetInfo) {\n        return;\n      }\n\n      var node = targetInfo.node;\n\n      if (node.getLayout().isLeafRoot) {\n        _this._rootToNode(targetInfo);\n      } else {\n        if (nodeClick === 'zoomToNode') {\n          _this._zoomToNode(targetInfo);\n        } else if (nodeClick === 'link') {\n          var itemModel = node.hostTree.data.getItemModel(node.dataIndex);\n          var link = itemModel.get('link', true);\n          var linkTarget = itemModel.get('target', true) || 'blank';\n          link && windowOpen(link, linkTarget);\n        }\n      }\n    }, this);\n  };\n\n  TreemapView.prototype._renderBreadcrumb = function (seriesModel, api, targetInfo) {\n    var _this = this;\n\n    if (!targetInfo) {\n      targetInfo = seriesModel.get('leafDepth', true) != null ? {\n        node: seriesModel.getViewRoot()\n      } : this.findTarget(api.getWidth() / 2, api.getHeight() / 2);\n\n      if (!targetInfo) {\n        targetInfo = {\n          node: seriesModel.getData().tree.root\n        };\n      }\n    }\n\n    (this._breadcrumb || (this._breadcrumb = new Breadcrumb(this.group))).render(seriesModel, api, targetInfo.node, function (node) {\n      if (_this._state !== 'animating') {\n        helper.aboveViewRoot(seriesModel.getViewRoot(), node) ? _this._rootToNode({\n          node: node\n        }) : _this._zoomToNode({\n          node: node\n        });\n      }\n    });\n  };\n\n  TreemapView.prototype.remove = function () {\n    this._clearController();\n\n    this._containerGroup && this._containerGroup.removeAll();\n    this._storage = createStorage();\n    this._state = 'ready';\n    this._breadcrumb && this._breadcrumb.remove();\n  };\n\n  TreemapView.prototype.dispose = function () {\n    this._clearController();\n  };\n\n  TreemapView.prototype._zoomToNode = function (targetInfo) {\n    this.api.dispatchAction({\n      type: 'treemapZoomToNode',\n      from: this.uid,\n      seriesId: this.seriesModel.id,\n      targetNode: targetInfo.node\n    });\n  };\n\n  TreemapView.prototype._rootToNode = function (targetInfo) {\n    this.api.dispatchAction({\n      type: 'treemapRootToNode',\n      from: this.uid,\n      seriesId: this.seriesModel.id,\n      targetNode: targetInfo.node\n    });\n  };\n\n  TreemapView.prototype.findTarget = function (x, y) {\n    var targetInfo;\n    var viewRoot = this.seriesModel.getViewRoot();\n    viewRoot.eachNode({\n      attr: 'viewChildren',\n      order: 'preorder'\n    }, function (node) {\n      var bgEl = this._storage.background[node.getRawIndex()];\n\n      if (bgEl) {\n        var point = bgEl.transformCoordToLocal(x, y);\n        var shape = bgEl.shape;\n\n        if (shape.x <= point[0] && point[0] <= shape.x + shape.width && shape.y <= point[1] && point[1] <= shape.y + shape.height) {\n          targetInfo = {\n            node: node,\n            offsetX: point[0],\n            offsetY: point[1]\n          };\n        } else {\n          return false;\n        }\n      }\n    }, this);\n    return targetInfo;\n  };\n\n  TreemapView.type = 'treemap';\n  return TreemapView;\n}(ChartView);\n\nfunction createStorage() {\n  return {\n    nodeGroup: [],\n    background: [],\n    content: []\n  };\n}\n\nfunction renderNode(seriesModel, thisStorage, oldStorage, reRoot, lastsForAnimation, willInvisibleEls, thisNode, oldNode, parentGroup, depth) {\n  if (!thisNode) {\n    return;\n  }\n\n  var thisLayout = thisNode.getLayout();\n  var data = seriesModel.getData();\n  var nodeModel = thisNode.getModel();\n  data.setItemGraphicEl(thisNode.dataIndex, null);\n\n  if (!thisLayout || !thisLayout.isInView) {\n    return;\n  }\n\n  var thisWidth = thisLayout.width;\n  var thisHeight = thisLayout.height;\n  var borderWidth = thisLayout.borderWidth;\n  var thisInvisible = thisLayout.invisible;\n  var thisRawIndex = thisNode.getRawIndex();\n  var oldRawIndex = oldNode && oldNode.getRawIndex();\n  var thisViewChildren = thisNode.viewChildren;\n  var upperHeight = thisLayout.upperHeight;\n  var isParent = thisViewChildren && thisViewChildren.length;\n  var itemStyleNormalModel = nodeModel.getModel('itemStyle');\n  var itemStyleEmphasisModel = nodeModel.getModel(['emphasis', 'itemStyle']);\n  var itemStyleBlurModel = nodeModel.getModel(['blur', 'itemStyle']);\n  var itemStyleSelectModel = nodeModel.getModel(['select', 'itemStyle']);\n  var borderRadius = itemStyleNormalModel.get('borderRadius') || 0;\n  var group = giveGraphic('nodeGroup', Group);\n\n  if (!group) {\n    return;\n  }\n\n  parentGroup.add(group);\n  group.x = thisLayout.x || 0;\n  group.y = thisLayout.y || 0;\n  group.markRedraw();\n  inner(group).nodeWidth = thisWidth;\n  inner(group).nodeHeight = thisHeight;\n\n  if (thisLayout.isAboveViewRoot) {\n    return group;\n  }\n\n  var bg = giveGraphic('background', Rect, depth, Z_BG);\n  bg && renderBackground(group, bg, isParent && thisLayout.upperLabelHeight);\n  var focus = nodeModel.get(['emphasis', 'focus']);\n  var blurScope = nodeModel.get(['emphasis', 'blurScope']);\n  var focusDataIndices = focus === 'ancestor' ? thisNode.getAncestorsIndices() : focus === 'descendant' ? thisNode.getDescendantIndices() : null;\n\n  if (isParent) {\n    if (isHighDownDispatcher(group)) {\n      setAsHighDownDispatcher(group, false);\n    }\n\n    if (bg) {\n      setAsHighDownDispatcher(bg, true);\n      data.setItemGraphicEl(thisNode.dataIndex, bg);\n      enableHoverFocus(bg, focusDataIndices || focus, blurScope);\n    }\n  } else {\n    var content = giveGraphic('content', Rect, depth, Z_CONTENT);\n    content && renderContent(group, content);\n\n    if (bg && isHighDownDispatcher(bg)) {\n      setAsHighDownDispatcher(bg, false);\n    }\n\n    setAsHighDownDispatcher(group, true);\n    data.setItemGraphicEl(thisNode.dataIndex, group);\n    enableHoverFocus(group, focusDataIndices || focus, blurScope);\n  }\n\n  return group;\n\n  function renderBackground(group, bg, useUpperLabel) {\n    var ecData = getECData(bg);\n    ecData.dataIndex = thisNode.dataIndex;\n    ecData.seriesIndex = seriesModel.seriesIndex;\n    bg.setShape({\n      x: 0,\n      y: 0,\n      width: thisWidth,\n      height: thisHeight,\n      r: borderRadius\n    });\n\n    if (thisInvisible) {\n      processInvisible(bg);\n    } else {\n      bg.invisible = false;\n      var style = thisNode.getVisual('style');\n      var visualBorderColor = style.stroke;\n      var normalStyle = getItemStyleNormal(itemStyleNormalModel);\n      normalStyle.fill = visualBorderColor;\n      var emphasisStyle = getStateItemStyle(itemStyleEmphasisModel);\n      emphasisStyle.fill = itemStyleEmphasisModel.get('borderColor');\n      var blurStyle = getStateItemStyle(itemStyleBlurModel);\n      blurStyle.fill = itemStyleBlurModel.get('borderColor');\n      var selectStyle = getStateItemStyle(itemStyleSelectModel);\n      selectStyle.fill = itemStyleSelectModel.get('borderColor');\n\n      if (useUpperLabel) {\n        var upperLabelWidth = thisWidth - 2 * borderWidth;\n        prepareText(bg, visualBorderColor, upperLabelWidth, upperHeight, style.opacity, {\n          x: borderWidth,\n          y: 0,\n          width: upperLabelWidth,\n          height: upperHeight\n        });\n      } else {\n        bg.removeTextContent();\n      }\n\n      bg.setStyle(normalStyle);\n      bg.ensureState('emphasis').style = emphasisStyle;\n      bg.ensureState('blur').style = blurStyle;\n      bg.ensureState('select').style = selectStyle;\n      setDefaultStateProxy(bg);\n    }\n\n    group.add(bg);\n  }\n\n  function renderContent(group, content) {\n    var ecData = getECData(content);\n    ecData.dataIndex = thisNode.dataIndex;\n    ecData.seriesIndex = seriesModel.seriesIndex;\n    var contentWidth = Math.max(thisWidth - 2 * borderWidth, 0);\n    var contentHeight = Math.max(thisHeight - 2 * borderWidth, 0);\n    content.culling = true;\n    content.setShape({\n      x: borderWidth,\n      y: borderWidth,\n      width: contentWidth,\n      height: contentHeight,\n      r: borderRadius\n    });\n\n    if (thisInvisible) {\n      processInvisible(content);\n    } else {\n      content.invisible = false;\n      var nodeStyle = thisNode.getVisual('style');\n      var visualColor = nodeStyle.fill;\n      var normalStyle = getItemStyleNormal(itemStyleNormalModel);\n      normalStyle.fill = visualColor;\n      normalStyle.decal = nodeStyle.decal;\n      var emphasisStyle = getStateItemStyle(itemStyleEmphasisModel);\n      var blurStyle = getStateItemStyle(itemStyleBlurModel);\n      var selectStyle = getStateItemStyle(itemStyleSelectModel);\n      prepareText(content, visualColor, contentWidth, nodeStyle.opacity, contentHeight);\n      content.setStyle(normalStyle);\n      content.ensureState('emphasis').style = emphasisStyle;\n      content.ensureState('blur').style = blurStyle;\n      content.ensureState('select').style = selectStyle;\n      setDefaultStateProxy(content);\n    }\n\n    group.add(content);\n  }\n\n  function processInvisible(element) {\n    !element.invisible && willInvisibleEls.push(element);\n  }\n\n  function prepareText(rectEl, visualColor, visualOpacity, width, height, upperLabelRect) {\n    var normalLabelModel = nodeModel.getModel(upperLabelRect ? PATH_UPPERLABEL_NORMAL : PATH_LABEL_NOAMAL);\n    var text = retrieve(seriesModel.getFormattedLabel(thisNode.dataIndex, 'normal', null, null, normalLabelModel.get('formatter')), convertOptionIdName(nodeModel.get('name'), null));\n\n    if (!upperLabelRect && thisLayout.isLeafRoot) {\n      var iconChar = seriesModel.get('drillDownIcon', true);\n      text = iconChar ? iconChar + ' ' + text : text;\n    }\n\n    var isShow = normalLabelModel.getShallow('show');\n    setLabelStyle(rectEl, getLabelStatesModels(nodeModel, upperLabelRect ? PATH_UPPERLABEL_NORMAL : PATH_LABEL_NOAMAL), {\n      defaultText: isShow ? text : null,\n      inheritColor: visualColor,\n      defaultOpacity: visualOpacity,\n      labelFetcher: seriesModel,\n      labelDataIndex: thisNode.dataIndex\n    });\n    var textEl = rectEl.getTextContent();\n    var textStyle = textEl.style;\n    var textPadding = normalizeCssArray(textStyle.padding || 0);\n\n    if (upperLabelRect) {\n      rectEl.setTextConfig({\n        layoutRect: upperLabelRect\n      });\n      textEl.disableLabelLayout = true;\n    }\n\n    textEl.beforeUpdate = function () {\n      var width = Math.max((upperLabelRect ? upperLabelRect.width : rectEl.shape.width) - textPadding[1] - textPadding[3], 0);\n      var height = Math.max((upperLabelRect ? upperLabelRect.height : rectEl.shape.height) - textPadding[0] - textPadding[2], 0);\n\n      if (textStyle.width !== width || textStyle.height !== height) {\n        textEl.setStyle({\n          width: width,\n          height: height\n        });\n      }\n    };\n\n    textStyle.truncateMinChar = 2;\n    textStyle.lineOverflow = 'truncate';\n    addDrillDownIcon(textStyle, upperLabelRect, thisLayout);\n    var textEmphasisState = textEl.getState('emphasis');\n    addDrillDownIcon(textEmphasisState ? textEmphasisState.style : null, upperLabelRect, thisLayout);\n  }\n\n  function addDrillDownIcon(style, upperLabelRect, thisLayout) {\n    var text = style ? style.text : null;\n\n    if (!upperLabelRect && thisLayout.isLeafRoot && text != null) {\n      var iconChar = seriesModel.get('drillDownIcon', true);\n      style.text = iconChar ? iconChar + ' ' + text : text;\n    }\n  }\n\n  function giveGraphic(storageName, Ctor, depth, z) {\n    var element = oldRawIndex != null && oldStorage[storageName][oldRawIndex];\n    var lasts = lastsForAnimation[storageName];\n\n    if (element) {\n      oldStorage[storageName][oldRawIndex] = null;\n      prepareAnimationWhenHasOld(lasts, element);\n    } else if (!thisInvisible) {\n      element = new Ctor();\n\n      if (element instanceof Displayable) {\n        element.z = calculateZ(depth, z);\n      }\n\n      prepareAnimationWhenNoOld(lasts, element);\n    }\n\n    return thisStorage[storageName][thisRawIndex] = element;\n  }\n\n  function prepareAnimationWhenHasOld(lasts, element) {\n    var lastCfg = lasts[thisRawIndex] = {};\n\n    if (element instanceof Group) {\n      lastCfg.oldX = element.x;\n      lastCfg.oldY = element.y;\n    } else {\n      lastCfg.oldShape = extend({}, element.shape);\n    }\n  }\n\n  function prepareAnimationWhenNoOld(lasts, element) {\n    var lastCfg = lasts[thisRawIndex] = {};\n    var parentNode = thisNode.parentNode;\n    var isGroup = element instanceof graphic.Group;\n\n    if (parentNode && (!reRoot || reRoot.direction === 'drillDown')) {\n      var parentOldX = 0;\n      var parentOldY = 0;\n      var parentOldBg = lastsForAnimation.background[parentNode.getRawIndex()];\n\n      if (!reRoot && parentOldBg && parentOldBg.oldShape) {\n        parentOldX = parentOldBg.oldShape.width;\n        parentOldY = parentOldBg.oldShape.height;\n      }\n\n      if (isGroup) {\n        lastCfg.oldX = 0;\n        lastCfg.oldY = parentOldY;\n      } else {\n        lastCfg.oldShape = {\n          x: parentOldX,\n          y: parentOldY,\n          width: 0,\n          height: 0\n        };\n      }\n    }\n\n    lastCfg.fadein = !isGroup;\n  }\n}\n\nfunction calculateZ(depth, zInLevel) {\n  var zb = depth * Z_BASE + zInLevel;\n  return (zb - 1) / zb;\n}\n\nexport default TreemapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as zrColor from 'zrender/lib/tool/color';\nimport { linearMap } from '../util/number';\nvar each = zrUtil.each;\nvar isObject = zrUtil.isObject;\nvar CATEGORY_DEFAULT_VISUAL_INDEX = -1;\n\nvar VisualMapping = function () {\n  function VisualMapping(option) {\n    var mappingMethod = option.mappingMethod;\n    var visualType = option.type;\n    var thisOption = this.option = zrUtil.clone(option);\n    this.type = visualType;\n    this.mappingMethod = mappingMethod;\n    this._normalizeData = normalizers[mappingMethod];\n    var visualHandler = VisualMapping.visualHandlers[visualType];\n    this.applyVisual = visualHandler.applyVisual;\n    this.getColorMapper = visualHandler.getColorMapper;\n    this._normalizedToVisual = visualHandler._normalizedToVisual[mappingMethod];\n\n    if (mappingMethod === 'piecewise') {\n      normalizeVisualRange(thisOption);\n      preprocessForPiecewise(thisOption);\n    } else if (mappingMethod === 'category') {\n      thisOption.categories ? preprocessForSpecifiedCategory(thisOption) : normalizeVisualRange(thisOption, true);\n    } else {\n      zrUtil.assert(mappingMethod !== 'linear' || thisOption.dataExtent);\n      normalizeVisualRange(thisOption);\n    }\n  }\n\n  VisualMapping.prototype.mapValueToVisual = function (value) {\n    var normalized = this._normalizeData(value);\n\n    return this._normalizedToVisual(normalized, value);\n  };\n\n  VisualMapping.prototype.getNormalizer = function () {\n    return zrUtil.bind(this._normalizeData, this);\n  };\n\n  VisualMapping.listVisualTypes = function () {\n    return zrUtil.keys(VisualMapping.visualHandlers);\n  };\n\n  VisualMapping.isValidType = function (visualType) {\n    return VisualMapping.visualHandlers.hasOwnProperty(visualType);\n  };\n\n  VisualMapping.eachVisual = function (visual, callback, context) {\n    if (zrUtil.isObject(visual)) {\n      zrUtil.each(visual, callback, context);\n    } else {\n      callback.call(context, visual);\n    }\n  };\n\n  VisualMapping.mapVisual = function (visual, callback, context) {\n    var isPrimary;\n    var newVisual = zrUtil.isArray(visual) ? [] : zrUtil.isObject(visual) ? {} : (isPrimary = true, null);\n    VisualMapping.eachVisual(visual, function (v, key) {\n      var newVal = callback.call(context, v, key);\n      isPrimary ? newVisual = newVal : newVisual[key] = newVal;\n    });\n    return newVisual;\n  };\n\n  VisualMapping.retrieveVisuals = function (obj) {\n    var ret = {};\n    var hasVisual;\n    obj && each(VisualMapping.visualHandlers, function (h, visualType) {\n      if (obj.hasOwnProperty(visualType)) {\n        ret[visualType] = obj[visualType];\n        hasVisual = true;\n      }\n    });\n    return hasVisual ? ret : null;\n  };\n\n  VisualMapping.prepareVisualTypes = function (visualTypes) {\n    if (zrUtil.isArray(visualTypes)) {\n      visualTypes = visualTypes.slice();\n    } else if (isObject(visualTypes)) {\n      var types_1 = [];\n      each(visualTypes, function (item, type) {\n        types_1.push(type);\n      });\n      visualTypes = types_1;\n    } else {\n      return [];\n    }\n\n    visualTypes.sort(function (type1, type2) {\n      return type2 === 'color' && type1 !== 'color' && type1.indexOf('color') === 0 ? 1 : -1;\n    });\n    return visualTypes;\n  };\n\n  VisualMapping.dependsOn = function (visualType1, visualType2) {\n    return visualType2 === 'color' ? !!(visualType1 && visualType1.indexOf(visualType2) === 0) : visualType1 === visualType2;\n  };\n\n  VisualMapping.findPieceIndex = function (value, pieceList, findClosestWhenOutside) {\n    var possibleI;\n    var abs = Infinity;\n\n    for (var i = 0, len = pieceList.length; i < len; i++) {\n      var pieceValue = pieceList[i].value;\n\n      if (pieceValue != null) {\n        if (pieceValue === value || typeof pieceValue === 'string' && pieceValue === value + '') {\n          return i;\n        }\n\n        findClosestWhenOutside && updatePossible(pieceValue, i);\n      }\n    }\n\n    for (var i = 0, len = pieceList.length; i < len; i++) {\n      var piece = pieceList[i];\n      var interval = piece.interval;\n      var close_1 = piece.close;\n\n      if (interval) {\n        if (interval[0] === -Infinity) {\n          if (littleThan(close_1[1], value, interval[1])) {\n            return i;\n          }\n        } else if (interval[1] === Infinity) {\n          if (littleThan(close_1[0], interval[0], value)) {\n            return i;\n          }\n        } else if (littleThan(close_1[0], interval[0], value) && littleThan(close_1[1], value, interval[1])) {\n          return i;\n        }\n\n        findClosestWhenOutside && updatePossible(interval[0], i);\n        findClosestWhenOutside && updatePossible(interval[1], i);\n      }\n    }\n\n    if (findClosestWhenOutside) {\n      return value === Infinity ? pieceList.length - 1 : value === -Infinity ? 0 : possibleI;\n    }\n\n    function updatePossible(val, index) {\n      var newAbs = Math.abs(val - value);\n\n      if (newAbs < abs) {\n        abs = newAbs;\n        possibleI = index;\n      }\n    }\n  };\n\n  VisualMapping.visualHandlers = {\n    color: {\n      applyVisual: makeApplyVisual('color'),\n      getColorMapper: function () {\n        var thisOption = this.option;\n        return zrUtil.bind(thisOption.mappingMethod === 'category' ? function (value, isNormalized) {\n          !isNormalized && (value = this._normalizeData(value));\n          return doMapCategory.call(this, value);\n        } : function (value, isNormalized, out) {\n          var returnRGBArray = !!out;\n          !isNormalized && (value = this._normalizeData(value));\n          out = zrColor.fastLerp(value, thisOption.parsedVisual, out);\n          return returnRGBArray ? out : zrColor.stringify(out, 'rgba');\n        }, this);\n      },\n      _normalizedToVisual: {\n        linear: function (normalized) {\n          return zrColor.stringify(zrColor.fastLerp(normalized, this.option.parsedVisual), 'rgba');\n        },\n        category: doMapCategory,\n        piecewise: function (normalized, value) {\n          var result = getSpecifiedVisual.call(this, value);\n\n          if (result == null) {\n            result = zrColor.stringify(zrColor.fastLerp(normalized, this.option.parsedVisual), 'rgba');\n          }\n\n          return result;\n        },\n        fixed: doMapFixed\n      }\n    },\n    colorHue: makePartialColorVisualHandler(function (color, value) {\n      return zrColor.modifyHSL(color, value);\n    }),\n    colorSaturation: makePartialColorVisualHandler(function (color, value) {\n      return zrColor.modifyHSL(color, null, value);\n    }),\n    colorLightness: makePartialColorVisualHandler(function (color, value) {\n      return zrColor.modifyHSL(color, null, null, value);\n    }),\n    colorAlpha: makePartialColorVisualHandler(function (color, value) {\n      return zrColor.modifyAlpha(color, value);\n    }),\n    decal: {\n      applyVisual: makeApplyVisual('decal'),\n      _normalizedToVisual: {\n        linear: null,\n        category: doMapCategory,\n        piecewise: null,\n        fixed: null\n      }\n    },\n    opacity: {\n      applyVisual: makeApplyVisual('opacity'),\n      _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\n    },\n    liftZ: {\n      applyVisual: makeApplyVisual('liftZ'),\n      _normalizedToVisual: {\n        linear: doMapFixed,\n        category: doMapFixed,\n        piecewise: doMapFixed,\n        fixed: doMapFixed\n      }\n    },\n    symbol: {\n      applyVisual: function (value, getter, setter) {\n        var symbolCfg = this.mapValueToVisual(value);\n        setter('symbol', symbolCfg);\n      },\n      _normalizedToVisual: {\n        linear: doMapToArray,\n        category: doMapCategory,\n        piecewise: function (normalized, value) {\n          var result = getSpecifiedVisual.call(this, value);\n\n          if (result == null) {\n            result = doMapToArray.call(this, normalized);\n          }\n\n          return result;\n        },\n        fixed: doMapFixed\n      }\n    },\n    symbolSize: {\n      applyVisual: makeApplyVisual('symbolSize'),\n      _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\n    }\n  };\n  return VisualMapping;\n}();\n\nfunction preprocessForPiecewise(thisOption) {\n  var pieceList = thisOption.pieceList;\n  thisOption.hasSpecialVisual = false;\n  zrUtil.each(pieceList, function (piece, index) {\n    piece.originIndex = index;\n\n    if (piece.visual != null) {\n      thisOption.hasSpecialVisual = true;\n    }\n  });\n}\n\nfunction preprocessForSpecifiedCategory(thisOption) {\n  var categories = thisOption.categories;\n  var categoryMap = thisOption.categoryMap = {};\n  var visual = thisOption.visual;\n  each(categories, function (cate, index) {\n    categoryMap[cate] = index;\n  });\n\n  if (!zrUtil.isArray(visual)) {\n    var visualArr_1 = [];\n\n    if (zrUtil.isObject(visual)) {\n      each(visual, function (v, cate) {\n        var index = categoryMap[cate];\n        visualArr_1[index != null ? index : CATEGORY_DEFAULT_VISUAL_INDEX] = v;\n      });\n    } else {\n      visualArr_1[CATEGORY_DEFAULT_VISUAL_INDEX] = visual;\n    }\n\n    visual = setVisualToOption(thisOption, visualArr_1);\n  }\n\n  for (var i = categories.length - 1; i >= 0; i--) {\n    if (visual[i] == null) {\n      delete categoryMap[categories[i]];\n      categories.pop();\n    }\n  }\n}\n\nfunction normalizeVisualRange(thisOption, isCategory) {\n  var visual = thisOption.visual;\n  var visualArr = [];\n\n  if (zrUtil.isObject(visual)) {\n    each(visual, function (v) {\n      visualArr.push(v);\n    });\n  } else if (visual != null) {\n    visualArr.push(visual);\n  }\n\n  var doNotNeedPair = {\n    color: 1,\n    symbol: 1\n  };\n\n  if (!isCategory && visualArr.length === 1 && !doNotNeedPair.hasOwnProperty(thisOption.type)) {\n    visualArr[1] = visualArr[0];\n  }\n\n  setVisualToOption(thisOption, visualArr);\n}\n\nfunction makePartialColorVisualHandler(applyValue) {\n  return {\n    applyVisual: function (value, getter, setter) {\n      var colorChannel = this.mapValueToVisual(value);\n      setter('color', applyValue(getter('color'), colorChannel));\n    },\n    _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\n  };\n}\n\nfunction doMapToArray(normalized) {\n  var visual = this.option.visual;\n  return visual[Math.round(linearMap(normalized, [0, 1], [0, visual.length - 1], true))] || {};\n}\n\nfunction makeApplyVisual(visualType) {\n  return function (value, getter, setter) {\n    setter(visualType, this.mapValueToVisual(value));\n  };\n}\n\nfunction doMapCategory(normalized) {\n  var visual = this.option.visual;\n  return visual[this.option.loop && normalized !== CATEGORY_DEFAULT_VISUAL_INDEX ? normalized % visual.length : normalized];\n}\n\nfunction doMapFixed() {\n  return this.option.visual[0];\n}\n\nfunction createNormalizedToNumericVisual(sourceExtent) {\n  return {\n    linear: function (normalized) {\n      return linearMap(normalized, sourceExtent, this.option.visual, true);\n    },\n    category: doMapCategory,\n    piecewise: function (normalized, value) {\n      var result = getSpecifiedVisual.call(this, value);\n\n      if (result == null) {\n        result = linearMap(normalized, sourceExtent, this.option.visual, true);\n      }\n\n      return result;\n    },\n    fixed: doMapFixed\n  };\n}\n\nfunction getSpecifiedVisual(value) {\n  var thisOption = this.option;\n  var pieceList = thisOption.pieceList;\n\n  if (thisOption.hasSpecialVisual) {\n    var pieceIndex = VisualMapping.findPieceIndex(value, pieceList);\n    var piece = pieceList[pieceIndex];\n\n    if (piece && piece.visual) {\n      return piece.visual[this.type];\n    }\n  }\n}\n\nfunction setVisualToOption(thisOption, visualArr) {\n  thisOption.visual = visualArr;\n\n  if (thisOption.type === 'color') {\n    thisOption.parsedVisual = zrUtil.map(visualArr, function (item) {\n      return zrColor.parse(item);\n    });\n  }\n\n  return visualArr;\n}\n\nvar normalizers = {\n  linear: function (value) {\n    return linearMap(value, this.option.dataExtent, [0, 1], true);\n  },\n  piecewise: function (value) {\n    var pieceList = this.option.pieceList;\n    var pieceIndex = VisualMapping.findPieceIndex(value, pieceList, true);\n\n    if (pieceIndex != null) {\n      return linearMap(pieceIndex, [0, pieceList.length - 1], [0, 1], true);\n    }\n  },\n  category: function (value) {\n    var index = this.option.categories ? this.option.categoryMap[value] : value;\n    return index == null ? CATEGORY_DEFAULT_VISUAL_INDEX : index;\n  },\n  fixed: zrUtil.noop\n};\n\nfunction littleThan(close, a, b) {\n  return close ? a <= b : a < b;\n}\n\nexport default VisualMapping;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport VisualMapping from '../../visual/VisualMapping';\nimport { each, extend, isArray } from 'zrender/lib/core/util';\nimport { modifyHSL, modifyAlpha } from 'zrender/lib/tool/color';\nimport { makeInner } from '../../util/model';\nvar ITEM_STYLE_NORMAL = 'itemStyle';\nvar inner = makeInner();\nexport default {\n  seriesType: 'treemap',\n  reset: function (seriesModel) {\n    var tree = seriesModel.getData().tree;\n    var root = tree.root;\n\n    if (root.isRemoved()) {\n      return;\n    }\n\n    travelTree(root, {}, seriesModel.getViewRoot().getAncestors(), seriesModel);\n  }\n};\n\nfunction travelTree(node, designatedVisual, viewRootAncestors, seriesModel) {\n  var nodeModel = node.getModel();\n  var nodeLayout = node.getLayout();\n  var data = node.hostTree.data;\n\n  if (!nodeLayout || nodeLayout.invisible || !nodeLayout.isInView) {\n    return;\n  }\n\n  var nodeItemStyleModel = nodeModel.getModel(ITEM_STYLE_NORMAL);\n  var visuals = buildVisuals(nodeItemStyleModel, designatedVisual, seriesModel);\n  var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, 'style');\n  var borderColor = nodeItemStyleModel.get('borderColor');\n  var borderColorSaturation = nodeItemStyleModel.get('borderColorSaturation');\n  var thisNodeColor;\n\n  if (borderColorSaturation != null) {\n    thisNodeColor = calculateColor(visuals);\n    borderColor = calculateBorderColor(borderColorSaturation, thisNodeColor);\n  }\n\n  existsStyle.stroke = borderColor;\n  var viewChildren = node.viewChildren;\n\n  if (!viewChildren || !viewChildren.length) {\n    thisNodeColor = calculateColor(visuals);\n    existsStyle.fill = thisNodeColor;\n  } else {\n    var mapping_1 = buildVisualMapping(node, nodeModel, nodeLayout, nodeItemStyleModel, visuals, viewChildren);\n    each(viewChildren, function (child, index) {\n      if (child.depth >= viewRootAncestors.length || child === viewRootAncestors[child.depth]) {\n        var childVisual = mapVisual(nodeModel, visuals, child, index, mapping_1, seriesModel);\n        travelTree(child, childVisual, viewRootAncestors, seriesModel);\n      }\n    });\n  }\n}\n\nfunction buildVisuals(nodeItemStyleModel, designatedVisual, seriesModel) {\n  var visuals = extend({}, designatedVisual);\n  var designatedVisualItemStyle = seriesModel.designatedVisualItemStyle;\n  each(['color', 'colorAlpha', 'colorSaturation'], function (visualName) {\n    designatedVisualItemStyle[visualName] = designatedVisual[visualName];\n    var val = nodeItemStyleModel.get(visualName);\n    designatedVisualItemStyle[visualName] = null;\n    val != null && (visuals[visualName] = val);\n  });\n  return visuals;\n}\n\nfunction calculateColor(visuals) {\n  var color = getValueVisualDefine(visuals, 'color');\n\n  if (color) {\n    var colorAlpha = getValueVisualDefine(visuals, 'colorAlpha');\n    var colorSaturation = getValueVisualDefine(visuals, 'colorSaturation');\n\n    if (colorSaturation) {\n      color = modifyHSL(color, null, null, colorSaturation);\n    }\n\n    if (colorAlpha) {\n      color = modifyAlpha(color, colorAlpha);\n    }\n\n    return color;\n  }\n}\n\nfunction calculateBorderColor(borderColorSaturation, thisNodeColor) {\n  return thisNodeColor != null ? modifyHSL(thisNodeColor, null, null, borderColorSaturation) : null;\n}\n\nfunction getValueVisualDefine(visuals, name) {\n  var value = visuals[name];\n\n  if (value != null && value !== 'none') {\n    return value;\n  }\n}\n\nfunction buildVisualMapping(node, nodeModel, nodeLayout, nodeItemStyleModel, visuals, viewChildren) {\n  if (!viewChildren || !viewChildren.length) {\n    return;\n  }\n\n  var rangeVisual = getRangeVisual(nodeModel, 'color') || visuals.color != null && visuals.color !== 'none' && (getRangeVisual(nodeModel, 'colorAlpha') || getRangeVisual(nodeModel, 'colorSaturation'));\n\n  if (!rangeVisual) {\n    return;\n  }\n\n  var visualMin = nodeModel.get('visualMin');\n  var visualMax = nodeModel.get('visualMax');\n  var dataExtent = nodeLayout.dataExtent.slice();\n  visualMin != null && visualMin < dataExtent[0] && (dataExtent[0] = visualMin);\n  visualMax != null && visualMax > dataExtent[1] && (dataExtent[1] = visualMax);\n  var colorMappingBy = nodeModel.get('colorMappingBy');\n  var opt = {\n    type: rangeVisual.name,\n    dataExtent: dataExtent,\n    visual: rangeVisual.range\n  };\n\n  if (opt.type === 'color' && (colorMappingBy === 'index' || colorMappingBy === 'id')) {\n    opt.mappingMethod = 'category';\n    opt.loop = true;\n  } else {\n    opt.mappingMethod = 'linear';\n  }\n\n  var mapping = new VisualMapping(opt);\n  inner(mapping).drColorMappingBy = colorMappingBy;\n  return mapping;\n}\n\nfunction getRangeVisual(nodeModel, name) {\n  var range = nodeModel.get(name);\n  return isArray(range) && range.length ? {\n    name: name,\n    range: range\n  } : null;\n}\n\nfunction mapVisual(nodeModel, visuals, child, index, mapping, seriesModel) {\n  var childVisuals = extend({}, visuals);\n\n  if (mapping) {\n    var mappingType = mapping.type;\n    var colorMappingBy = mappingType === 'color' && inner(mapping).drColorMappingBy;\n    var value = colorMappingBy === 'index' ? index : colorMappingBy === 'id' ? seriesModel.mapIdToIndex(child.getId()) : child.getValue(nodeModel.get('visualDimension'));\n    childVisuals[mappingType] = mapping.mapValueToVisual(value);\n  }\n\n  return childVisuals;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { parsePercent, MAX_SAFE_INTEGER } from '../../util/number';\nimport * as layout from '../../util/layout';\nimport * as helper from '../helper/treeHelper';\nvar mathMax = Math.max;\nvar mathMin = Math.min;\nvar retrieveValue = zrUtil.retrieve;\nvar each = zrUtil.each;\nvar PATH_BORDER_WIDTH = ['itemStyle', 'borderWidth'];\nvar PATH_GAP_WIDTH = ['itemStyle', 'gapWidth'];\nvar PATH_UPPER_LABEL_SHOW = ['upperLabel', 'show'];\nvar PATH_UPPER_LABEL_HEIGHT = ['upperLabel', 'height'];\n;\nexport default {\n  seriesType: 'treemap',\n  reset: function (seriesModel, ecModel, api, payload) {\n    var ecWidth = api.getWidth();\n    var ecHeight = api.getHeight();\n    var seriesOption = seriesModel.option;\n    var layoutInfo = layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n    var size = seriesOption.size || [];\n    var containerWidth = parsePercent(retrieveValue(layoutInfo.width, size[0]), ecWidth);\n    var containerHeight = parsePercent(retrieveValue(layoutInfo.height, size[1]), ecHeight);\n    var payloadType = payload && payload.type;\n    var types = ['treemapZoomToNode', 'treemapRootToNode'];\n    var targetInfo = helper.retrieveTargetInfo(payload, types, seriesModel);\n    var rootRect = payloadType === 'treemapRender' || payloadType === 'treemapMove' ? payload.rootRect : null;\n    var viewRoot = seriesModel.getViewRoot();\n    var viewAbovePath = helper.getPathToRoot(viewRoot);\n\n    if (payloadType !== 'treemapMove') {\n      var rootSize = payloadType === 'treemapZoomToNode' ? estimateRootSize(seriesModel, targetInfo, viewRoot, containerWidth, containerHeight) : rootRect ? [rootRect.width, rootRect.height] : [containerWidth, containerHeight];\n      var sort_1 = seriesOption.sort;\n\n      if (sort_1 && sort_1 !== 'asc' && sort_1 !== 'desc') {\n        sort_1 = 'desc';\n      }\n\n      var options = {\n        squareRatio: seriesOption.squareRatio,\n        sort: sort_1,\n        leafDepth: seriesOption.leafDepth\n      };\n      viewRoot.hostTree.clearLayouts();\n      var viewRootLayout_1 = {\n        x: 0,\n        y: 0,\n        width: rootSize[0],\n        height: rootSize[1],\n        area: rootSize[0] * rootSize[1]\n      };\n      viewRoot.setLayout(viewRootLayout_1);\n      squarify(viewRoot, options, false, 0);\n      viewRootLayout_1 = viewRoot.getLayout();\n      each(viewAbovePath, function (node, index) {\n        var childValue = (viewAbovePath[index + 1] || viewRoot).getValue();\n        node.setLayout(zrUtil.extend({\n          dataExtent: [childValue, childValue],\n          borderWidth: 0,\n          upperHeight: 0\n        }, viewRootLayout_1));\n      });\n    }\n\n    var treeRoot = seriesModel.getData().tree.root;\n    treeRoot.setLayout(calculateRootPosition(layoutInfo, rootRect, targetInfo), true);\n    seriesModel.setLayoutInfo(layoutInfo);\n    prunning(treeRoot, new BoundingRect(-layoutInfo.x, -layoutInfo.y, ecWidth, ecHeight), viewAbovePath, viewRoot, 0);\n  }\n};\n\nfunction squarify(node, options, hideChildren, depth) {\n  var width;\n  var height;\n\n  if (node.isRemoved()) {\n    return;\n  }\n\n  var thisLayout = node.getLayout();\n  width = thisLayout.width;\n  height = thisLayout.height;\n  var nodeModel = node.getModel();\n  var borderWidth = nodeModel.get(PATH_BORDER_WIDTH);\n  var halfGapWidth = nodeModel.get(PATH_GAP_WIDTH) / 2;\n  var upperLabelHeight = getUpperLabelHeight(nodeModel);\n  var upperHeight = Math.max(borderWidth, upperLabelHeight);\n  var layoutOffset = borderWidth - halfGapWidth;\n  var layoutOffsetUpper = upperHeight - halfGapWidth;\n  node.setLayout({\n    borderWidth: borderWidth,\n    upperHeight: upperHeight,\n    upperLabelHeight: upperLabelHeight\n  }, true);\n  width = mathMax(width - 2 * layoutOffset, 0);\n  height = mathMax(height - layoutOffset - layoutOffsetUpper, 0);\n  var totalArea = width * height;\n  var viewChildren = initChildren(node, nodeModel, totalArea, options, hideChildren, depth);\n\n  if (!viewChildren.length) {\n    return;\n  }\n\n  var rect = {\n    x: layoutOffset,\n    y: layoutOffsetUpper,\n    width: width,\n    height: height\n  };\n  var rowFixedLength = mathMin(width, height);\n  var best = Infinity;\n  var row = [];\n  row.area = 0;\n\n  for (var i = 0, len = viewChildren.length; i < len;) {\n    var child = viewChildren[i];\n    row.push(child);\n    row.area += child.getLayout().area;\n    var score = worst(row, rowFixedLength, options.squareRatio);\n\n    if (score <= best) {\n      i++;\n      best = score;\n    } else {\n      row.area -= row.pop().getLayout().area;\n      position(row, rowFixedLength, rect, halfGapWidth, false);\n      rowFixedLength = mathMin(rect.width, rect.height);\n      row.length = row.area = 0;\n      best = Infinity;\n    }\n  }\n\n  if (row.length) {\n    position(row, rowFixedLength, rect, halfGapWidth, true);\n  }\n\n  if (!hideChildren) {\n    var childrenVisibleMin = nodeModel.get('childrenVisibleMin');\n\n    if (childrenVisibleMin != null && totalArea < childrenVisibleMin) {\n      hideChildren = true;\n    }\n  }\n\n  for (var i = 0, len = viewChildren.length; i < len; i++) {\n    squarify(viewChildren[i], options, hideChildren, depth + 1);\n  }\n}\n\nfunction initChildren(node, nodeModel, totalArea, options, hideChildren, depth) {\n  var viewChildren = node.children || [];\n  var orderBy = options.sort;\n  orderBy !== 'asc' && orderBy !== 'desc' && (orderBy = null);\n  var overLeafDepth = options.leafDepth != null && options.leafDepth <= depth;\n\n  if (hideChildren && !overLeafDepth) {\n    return node.viewChildren = [];\n  }\n\n  viewChildren = zrUtil.filter(viewChildren, function (child) {\n    return !child.isRemoved();\n  });\n  sort(viewChildren, orderBy);\n  var info = statistic(nodeModel, viewChildren, orderBy);\n\n  if (info.sum === 0) {\n    return node.viewChildren = [];\n  }\n\n  info.sum = filterByThreshold(nodeModel, totalArea, info.sum, orderBy, viewChildren);\n\n  if (info.sum === 0) {\n    return node.viewChildren = [];\n  }\n\n  for (var i = 0, len = viewChildren.length; i < len; i++) {\n    var area = viewChildren[i].getValue() / info.sum * totalArea;\n    viewChildren[i].setLayout({\n      area: area\n    });\n  }\n\n  if (overLeafDepth) {\n    viewChildren.length && node.setLayout({\n      isLeafRoot: true\n    }, true);\n    viewChildren.length = 0;\n  }\n\n  node.viewChildren = viewChildren;\n  node.setLayout({\n    dataExtent: info.dataExtent\n  }, true);\n  return viewChildren;\n}\n\nfunction filterByThreshold(nodeModel, totalArea, sum, orderBy, orderedChildren) {\n  if (!orderBy) {\n    return sum;\n  }\n\n  var visibleMin = nodeModel.get('visibleMin');\n  var len = orderedChildren.length;\n  var deletePoint = len;\n\n  for (var i = len - 1; i >= 0; i--) {\n    var value = orderedChildren[orderBy === 'asc' ? len - i - 1 : i].getValue();\n\n    if (value / sum * totalArea < visibleMin) {\n      deletePoint = i;\n      sum -= value;\n    }\n  }\n\n  orderBy === 'asc' ? orderedChildren.splice(0, len - deletePoint) : orderedChildren.splice(deletePoint, len - deletePoint);\n  return sum;\n}\n\nfunction sort(viewChildren, orderBy) {\n  if (orderBy) {\n    viewChildren.sort(function (a, b) {\n      var diff = orderBy === 'asc' ? a.getValue() - b.getValue() : b.getValue() - a.getValue();\n      return diff === 0 ? orderBy === 'asc' ? a.dataIndex - b.dataIndex : b.dataIndex - a.dataIndex : diff;\n    });\n  }\n\n  return viewChildren;\n}\n\nfunction statistic(nodeModel, children, orderBy) {\n  var sum = 0;\n\n  for (var i = 0, len = children.length; i < len; i++) {\n    sum += children[i].getValue();\n  }\n\n  var dimension = nodeModel.get('visualDimension');\n  var dataExtent;\n\n  if (!children || !children.length) {\n    dataExtent = [NaN, NaN];\n  } else if (dimension === 'value' && orderBy) {\n    dataExtent = [children[children.length - 1].getValue(), children[0].getValue()];\n    orderBy === 'asc' && dataExtent.reverse();\n  } else {\n    dataExtent = [Infinity, -Infinity];\n    each(children, function (child) {\n      var value = child.getValue(dimension);\n      value < dataExtent[0] && (dataExtent[0] = value);\n      value > dataExtent[1] && (dataExtent[1] = value);\n    });\n  }\n\n  return {\n    sum: sum,\n    dataExtent: dataExtent\n  };\n}\n\nfunction worst(row, rowFixedLength, ratio) {\n  var areaMax = 0;\n  var areaMin = Infinity;\n\n  for (var i = 0, area = void 0, len = row.length; i < len; i++) {\n    area = row[i].getLayout().area;\n\n    if (area) {\n      area < areaMin && (areaMin = area);\n      area > areaMax && (areaMax = area);\n    }\n  }\n\n  var squareArea = row.area * row.area;\n  var f = rowFixedLength * rowFixedLength * ratio;\n  return squareArea ? mathMax(f * areaMax / squareArea, squareArea / (f * areaMin)) : Infinity;\n}\n\nfunction position(row, rowFixedLength, rect, halfGapWidth, flush) {\n  var idx0WhenH = rowFixedLength === rect.width ? 0 : 1;\n  var idx1WhenH = 1 - idx0WhenH;\n  var xy = ['x', 'y'];\n  var wh = ['width', 'height'];\n  var last = rect[xy[idx0WhenH]];\n  var rowOtherLength = rowFixedLength ? row.area / rowFixedLength : 0;\n\n  if (flush || rowOtherLength > rect[wh[idx1WhenH]]) {\n    rowOtherLength = rect[wh[idx1WhenH]];\n  }\n\n  for (var i = 0, rowLen = row.length; i < rowLen; i++) {\n    var node = row[i];\n    var nodeLayout = {};\n    var step = rowOtherLength ? node.getLayout().area / rowOtherLength : 0;\n    var wh1 = nodeLayout[wh[idx1WhenH]] = mathMax(rowOtherLength - 2 * halfGapWidth, 0);\n    var remain = rect[xy[idx0WhenH]] + rect[wh[idx0WhenH]] - last;\n    var modWH = i === rowLen - 1 || remain < step ? remain : step;\n    var wh0 = nodeLayout[wh[idx0WhenH]] = mathMax(modWH - 2 * halfGapWidth, 0);\n    nodeLayout[xy[idx1WhenH]] = rect[xy[idx1WhenH]] + mathMin(halfGapWidth, wh1 / 2);\n    nodeLayout[xy[idx0WhenH]] = last + mathMin(halfGapWidth, wh0 / 2);\n    last += modWH;\n    node.setLayout(nodeLayout, true);\n  }\n\n  rect[xy[idx1WhenH]] += rowOtherLength;\n  rect[wh[idx1WhenH]] -= rowOtherLength;\n}\n\nfunction estimateRootSize(seriesModel, targetInfo, viewRoot, containerWidth, containerHeight) {\n  var currNode = (targetInfo || {}).node;\n  var defaultSize = [containerWidth, containerHeight];\n\n  if (!currNode || currNode === viewRoot) {\n    return defaultSize;\n  }\n\n  var parent;\n  var viewArea = containerWidth * containerHeight;\n  var area = viewArea * seriesModel.option.zoomToNodeRatio;\n\n  while (parent = currNode.parentNode) {\n    var sum = 0;\n    var siblings = parent.children;\n\n    for (var i = 0, len = siblings.length; i < len; i++) {\n      sum += siblings[i].getValue();\n    }\n\n    var currNodeValue = currNode.getValue();\n\n    if (currNodeValue === 0) {\n      return defaultSize;\n    }\n\n    area *= sum / currNodeValue;\n    var parentModel = parent.getModel();\n    var borderWidth = parentModel.get(PATH_BORDER_WIDTH);\n    var upperHeight = Math.max(borderWidth, getUpperLabelHeight(parentModel));\n    area += 4 * borderWidth * borderWidth + (3 * borderWidth + upperHeight) * Math.pow(area, 0.5);\n    area > MAX_SAFE_INTEGER && (area = MAX_SAFE_INTEGER);\n    currNode = parent;\n  }\n\n  area < viewArea && (area = viewArea);\n  var scale = Math.pow(area / viewArea, 0.5);\n  return [containerWidth * scale, containerHeight * scale];\n}\n\nfunction calculateRootPosition(layoutInfo, rootRect, targetInfo) {\n  if (rootRect) {\n    return {\n      x: rootRect.x,\n      y: rootRect.y\n    };\n  }\n\n  var defaultPosition = {\n    x: 0,\n    y: 0\n  };\n\n  if (!targetInfo) {\n    return defaultPosition;\n  }\n\n  var targetNode = targetInfo.node;\n  var layout = targetNode.getLayout();\n\n  if (!layout) {\n    return defaultPosition;\n  }\n\n  var targetCenter = [layout.width / 2, layout.height / 2];\n  var node = targetNode;\n\n  while (node) {\n    var nodeLayout = node.getLayout();\n    targetCenter[0] += nodeLayout.x;\n    targetCenter[1] += nodeLayout.y;\n    node = node.parentNode;\n  }\n\n  return {\n    x: layoutInfo.width / 2 - targetCenter[0],\n    y: layoutInfo.height / 2 - targetCenter[1]\n  };\n}\n\nfunction prunning(node, clipRect, viewAbovePath, viewRoot, depth) {\n  var nodeLayout = node.getLayout();\n  var nodeInViewAbovePath = viewAbovePath[depth];\n  var isAboveViewRoot = nodeInViewAbovePath && nodeInViewAbovePath === node;\n\n  if (nodeInViewAbovePath && !isAboveViewRoot || depth === viewAbovePath.length && node !== viewRoot) {\n    return;\n  }\n\n  node.setLayout({\n    isInView: true,\n    invisible: !isAboveViewRoot && !clipRect.intersect(nodeLayout),\n    isAboveViewRoot: isAboveViewRoot\n  }, true);\n  var childClipRect = new BoundingRect(clipRect.x - nodeLayout.x, clipRect.y - nodeLayout.y, clipRect.width, clipRect.height);\n  each(node.viewChildren || [], function (child) {\n    prunning(child, childClipRect, viewAbovePath, viewRoot, depth + 1);\n  });\n}\n\nfunction getUpperLabelHeight(model) {\n  return model.get(PATH_UPPER_LABEL_SHOW) ? model.get(PATH_UPPER_LABEL_HEIGHT) : 0;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { installTreemapAction } from './treemapAction';\nimport TreemapSeriesModel from './TreemapSeries';\nimport TreemapView from './TreemapView';\nimport treemapVisual from './treemapVisual';\nimport treemapLayout from './treemapLayout';\nexport function install(registers) {\n  registers.registerSeriesModel(TreemapSeriesModel);\n  registers.registerChartView(TreemapView);\n  registers.registerVisual(treemapVisual);\n  registers.registerLayout(treemapLayout);\n  installTreemapAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function categoryFilter(ecModel) {\n  var legendModels = ecModel.findComponents({\n    mainType: 'legend'\n  });\n\n  if (!legendModels || !legendModels.length) {\n    return;\n  }\n\n  ecModel.eachSeriesByType('graph', function (graphSeries) {\n    var categoriesData = graphSeries.getCategoriesData();\n    var graph = graphSeries.getGraph();\n    var data = graph.data;\n    var categoryNames = categoriesData.mapArray(categoriesData.getName);\n    data.filterSelf(function (idx) {\n      var model = data.getItemModel(idx);\n      var category = model.getShallow('category');\n\n      if (category != null) {\n        if (typeof category === 'number') {\n          category = categoryNames[category];\n        }\n\n        for (var i = 0; i < legendModels.length; i++) {\n          if (!legendModels[i].isSelected(category)) {\n            return false;\n          }\n        }\n      }\n\n      return true;\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { extend } from 'zrender/lib/core/util';\nexport default function categoryVisual(ecModel) {\n  var paletteScope = {};\n  ecModel.eachSeriesByType('graph', function (seriesModel) {\n    var categoriesData = seriesModel.getCategoriesData();\n    var data = seriesModel.getData();\n    var categoryNameIdxMap = {};\n    categoriesData.each(function (idx) {\n      var name = categoriesData.getName(idx);\n      categoryNameIdxMap['ec-' + name] = idx;\n      var itemModel = categoriesData.getItemModel(idx);\n      var style = itemModel.getModel('itemStyle').getItemStyle();\n\n      if (!style.fill) {\n        style.fill = seriesModel.getColorFromPalette(name, paletteScope);\n      }\n\n      categoriesData.setItemVisual(idx, 'style', style);\n      var symbolVisualList = ['symbol', 'symbolSize', 'symbolKeepAspect'];\n\n      for (var i = 0; i < symbolVisualList.length; i++) {\n        var symbolVisual = itemModel.getShallow(symbolVisualList[i], true);\n\n        if (symbolVisual != null) {\n          categoriesData.setItemVisual(idx, symbolVisualList[i], symbolVisual);\n        }\n      }\n    });\n\n    if (categoriesData.count()) {\n      data.each(function (idx) {\n        var model = data.getItemModel(idx);\n        var categoryIdx = model.getShallow('category');\n\n        if (categoryIdx != null) {\n          if (typeof categoryIdx === 'string') {\n            categoryIdx = categoryNameIdxMap['ec-' + categoryIdx];\n          }\n\n          var categoryStyle = categoriesData.getItemVisual(categoryIdx, 'style');\n          var style = data.ensureUniqueItemVisual(idx, 'style');\n          extend(style, categoryStyle);\n          var visualList = ['symbol', 'symbolSize', 'symbolKeepAspect'];\n\n          for (var i = 0; i < visualList.length; i++) {\n            data.setItemVisual(idx, visualList[i], categoriesData.getItemVisual(categoryIdx, visualList[i]));\n          }\n        }\n      });\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { extend } from 'zrender/lib/core/util';\n\nfunction normalize(a) {\n  if (!(a instanceof Array)) {\n    a = [a, a];\n  }\n\n  return a;\n}\n\nexport default function graphEdgeVisual(ecModel) {\n  ecModel.eachSeriesByType('graph', function (seriesModel) {\n    var graph = seriesModel.getGraph();\n    var edgeData = seriesModel.getEdgeData();\n    var symbolType = normalize(seriesModel.get('edgeSymbol'));\n    var symbolSize = normalize(seriesModel.get('edgeSymbolSize'));\n    edgeData.setVisual('fromSymbol', symbolType && symbolType[0]);\n    edgeData.setVisual('toSymbol', symbolType && symbolType[1]);\n    edgeData.setVisual('fromSymbolSize', symbolSize && symbolSize[0]);\n    edgeData.setVisual('toSymbolSize', symbolSize && symbolSize[1]);\n    edgeData.setVisual('style', seriesModel.getModel('lineStyle').getLineStyle());\n    edgeData.each(function (idx) {\n      var itemModel = edgeData.getItemModel(idx);\n      var edge = graph.getEdgeByIndex(idx);\n      var symbolType = normalize(itemModel.getShallow('symbol', true));\n      var symbolSize = normalize(itemModel.getShallow('symbolSize', true));\n      var style = itemModel.getModel('lineStyle').getLineStyle();\n      var existsStyle = edgeData.ensureUniqueItemVisual(idx, 'style');\n      extend(existsStyle, style);\n\n      switch (existsStyle.stroke) {\n        case 'source':\n          {\n            var nodeStyle = edge.node1.getVisual('style');\n            existsStyle.stroke = nodeStyle && nodeStyle.fill;\n            break;\n          }\n\n        case 'target':\n          {\n            var nodeStyle = edge.node2.getVisual('style');\n            existsStyle.stroke = nodeStyle && nodeStyle.fill;\n            break;\n          }\n      }\n\n      symbolType[0] && edge.setVisual('fromSymbol', symbolType[0]);\n      symbolType[1] && edge.setVisual('toSymbol', symbolType[1]);\n      symbolSize[0] && edge.setVisual('fromSymbolSize', symbolSize[0]);\n      symbolSize[1] && edge.setVisual('toSymbolSize', symbolSize[1]);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar KEY_DELIMITER = '-->';\n\nvar getAutoCurvenessParams = function (seriesModel) {\n  return seriesModel.get('autoCurveness') || null;\n};\n\nvar createCurveness = function (seriesModel, appendLength) {\n  var autoCurvenessParmas = getAutoCurvenessParams(seriesModel);\n  var length = 20;\n  var curvenessList = [];\n\n  if (typeof autoCurvenessParmas === 'number') {\n    length = autoCurvenessParmas;\n  } else if (zrUtil.isArray(autoCurvenessParmas)) {\n    seriesModel.__curvenessList = autoCurvenessParmas;\n    return;\n  }\n\n  if (appendLength > length) {\n    length = appendLength;\n  }\n\n  var len = length % 2 ? length + 2 : length + 3;\n  curvenessList = [];\n\n  for (var i = 0; i < len; i++) {\n    curvenessList.push((i % 2 ? i + 1 : i) / 10 * (i % 2 ? -1 : 1));\n  }\n\n  seriesModel.__curvenessList = curvenessList;\n};\n\nvar getKeyOfEdges = function (n1, n2, seriesModel) {\n  var source = [n1.id, n1.dataIndex].join('.');\n  var target = [n2.id, n2.dataIndex].join('.');\n  return [seriesModel.uid, source, target].join(KEY_DELIMITER);\n};\n\nvar getOppositeKey = function (key) {\n  var keys = key.split(KEY_DELIMITER);\n  return [keys[0], keys[2], keys[1]].join(KEY_DELIMITER);\n};\n\nvar getEdgeFromMap = function (edge, seriesModel) {\n  var key = getKeyOfEdges(edge.node1, edge.node2, seriesModel);\n  return seriesModel.__edgeMap[key];\n};\n\nvar getTotalLengthBetweenNodes = function (edge, seriesModel) {\n  var len = getEdgeMapLengthWithKey(getKeyOfEdges(edge.node1, edge.node2, seriesModel), seriesModel);\n  var lenV = getEdgeMapLengthWithKey(getKeyOfEdges(edge.node2, edge.node1, seriesModel), seriesModel);\n  return len + lenV;\n};\n\nvar getEdgeMapLengthWithKey = function (key, seriesModel) {\n  var edgeMap = seriesModel.__edgeMap;\n  return edgeMap[key] ? edgeMap[key].length : 0;\n};\n\nexport function initCurvenessList(seriesModel) {\n  if (!getAutoCurvenessParams(seriesModel)) {\n    return;\n  }\n\n  seriesModel.__curvenessList = [];\n  seriesModel.__edgeMap = {};\n  createCurveness(seriesModel);\n}\nexport function createEdgeMapForCurveness(n1, n2, seriesModel, index) {\n  if (!getAutoCurvenessParams(seriesModel)) {\n    return;\n  }\n\n  var key = getKeyOfEdges(n1, n2, seriesModel);\n  var edgeMap = seriesModel.__edgeMap;\n  var oppositeEdges = edgeMap[getOppositeKey(key)];\n\n  if (edgeMap[key] && !oppositeEdges) {\n    edgeMap[key].isForward = true;\n  } else if (oppositeEdges && edgeMap[key]) {\n    oppositeEdges.isForward = true;\n    edgeMap[key].isForward = false;\n  }\n\n  edgeMap[key] = edgeMap[key] || [];\n  edgeMap[key].push(index);\n}\nexport function getCurvenessForEdge(edge, seriesModel, index, needReverse) {\n  var autoCurvenessParams = getAutoCurvenessParams(seriesModel);\n  var isArrayParam = zrUtil.isArray(autoCurvenessParams);\n\n  if (!autoCurvenessParams) {\n    return null;\n  }\n\n  var edgeArray = getEdgeFromMap(edge, seriesModel);\n\n  if (!edgeArray) {\n    return null;\n  }\n\n  var edgeIndex = -1;\n\n  for (var i = 0; i < edgeArray.length; i++) {\n    if (edgeArray[i] === index) {\n      edgeIndex = i;\n      break;\n    }\n  }\n\n  var totalLen = getTotalLengthBetweenNodes(edge, seriesModel);\n  createCurveness(seriesModel, totalLen);\n  edge.lineStyle = edge.lineStyle || {};\n  var curKey = getKeyOfEdges(edge.node1, edge.node2, seriesModel);\n  var curvenessList = seriesModel.__curvenessList;\n  var parityCorrection = isArrayParam ? 0 : totalLen % 2 ? 0 : 1;\n\n  if (!edgeArray.isForward) {\n    var oppositeKey = getOppositeKey(curKey);\n    var len = getEdgeMapLengthWithKey(oppositeKey, seriesModel);\n    var resValue = curvenessList[edgeIndex + len + parityCorrection];\n\n    if (needReverse) {\n      if (isArrayParam) {\n        if (autoCurvenessParams && autoCurvenessParams[0] === 0) {\n          return (len + parityCorrection) % 2 ? resValue : -resValue;\n        } else {\n          return ((len % 2 ? 0 : 1) + parityCorrection) % 2 ? resValue : -resValue;\n        }\n      } else {\n        return (len + parityCorrection) % 2 ? resValue : -resValue;\n      }\n    } else {\n      return curvenessList[edgeIndex + len + parityCorrection];\n    }\n  } else {\n    return curvenessList[parityCorrection + edgeIndex];\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as vec2 from 'zrender/lib/core/vector';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { getCurvenessForEdge } from '../helper/multipleGraphEdgeHelper';\nexport function simpleLayout(seriesModel) {\n  var coordSys = seriesModel.coordinateSystem;\n\n  if (coordSys && coordSys.type !== 'view') {\n    return;\n  }\n\n  var graph = seriesModel.getGraph();\n  graph.eachNode(function (node) {\n    var model = node.getModel();\n    node.setLayout([+model.get('x'), +model.get('y')]);\n  });\n  simpleLayoutEdge(graph, seriesModel);\n}\nexport function simpleLayoutEdge(graph, seriesModel) {\n  graph.eachEdge(function (edge, index) {\n    var curveness = zrUtil.retrieve3(edge.getModel().get(['lineStyle', 'curveness']), -getCurvenessForEdge(edge, seriesModel, index, true), 0);\n    var p1 = vec2.clone(edge.node1.getLayout());\n    var p2 = vec2.clone(edge.node2.getLayout());\n    var points = [p1, p2];\n\n    if (+curveness) {\n      points.push([(p1[0] + p2[0]) / 2 - (p1[1] - p2[1]) * curveness, (p1[1] + p2[1]) / 2 - (p2[0] - p1[0]) * curveness]);\n    }\n\n    edge.setLayout(points);\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each } from 'zrender/lib/core/util';\nimport { simpleLayout, simpleLayoutEdge } from './simpleLayoutHelper';\nexport default function graphSimpleLayout(ecModel, api) {\n  ecModel.eachSeriesByType('graph', function (seriesModel) {\n    var layout = seriesModel.get('layout');\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys && coordSys.type !== 'view') {\n      var data_1 = seriesModel.getData();\n      var dimensions_1 = [];\n      each(coordSys.dimensions, function (coordDim) {\n        dimensions_1 = dimensions_1.concat(data_1.mapDimensionsAll(coordDim));\n      });\n\n      for (var dataIndex = 0; dataIndex < data_1.count(); dataIndex++) {\n        var value = [];\n        var hasValue = false;\n\n        for (var i = 0; i < dimensions_1.length; i++) {\n          var val = data_1.get(dimensions_1[i], dataIndex);\n\n          if (!isNaN(val)) {\n            hasValue = true;\n          }\n\n          value.push(val);\n        }\n\n        if (hasValue) {\n          data_1.setItemLayout(dataIndex, coordSys.dataToPoint(value));\n        } else {\n          data_1.setItemLayout(dataIndex, [NaN, NaN]);\n        }\n      }\n\n      simpleLayoutEdge(data_1.graph, seriesModel);\n    } else if (!layout || layout === 'none') {\n      simpleLayout(seriesModel);\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function getNodeGlobalScale(seriesModel) {\n  var coordSys = seriesModel.coordinateSystem;\n\n  if (coordSys.type !== 'view') {\n    return 1;\n  }\n\n  var nodeScaleRatio = seriesModel.option.nodeScaleRatio;\n  var groupZoom = coordSys.scaleX;\n  var roamZoom = coordSys.getZoom();\n  var nodeScale = (roamZoom - 1) * nodeScaleRatio + 1;\n  return nodeScale / groupZoom;\n}\nexport function getSymbolSize(node) {\n  var symbolSize = node.getVisual('symbolSize');\n\n  if (symbolSize instanceof Array) {\n    symbolSize = (symbolSize[0] + symbolSize[1]) / 2;\n  }\n\n  return +symbolSize;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as vec2 from 'zrender/lib/core/vector';\nimport { getSymbolSize, getNodeGlobalScale } from './graphHelper';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { getCurvenessForEdge } from '../helper/multipleGraphEdgeHelper';\nvar PI = Math.PI;\nvar _symbolRadiansHalf = [];\nexport function circularLayout(seriesModel, basedOn) {\n  var coordSys = seriesModel.coordinateSystem;\n\n  if (coordSys && coordSys.type !== 'view') {\n    return;\n  }\n\n  var rect = coordSys.getBoundingRect();\n  var nodeData = seriesModel.getData();\n  var graph = nodeData.graph;\n  var cx = rect.width / 2 + rect.x;\n  var cy = rect.height / 2 + rect.y;\n  var r = Math.min(rect.width, rect.height) / 2;\n  var count = nodeData.count();\n  nodeData.setLayout({\n    cx: cx,\n    cy: cy\n  });\n\n  if (!count) {\n    return;\n  }\n\n  _layoutNodesBasedOn[basedOn](seriesModel, graph, nodeData, r, cx, cy, count);\n\n  graph.eachEdge(function (edge, index) {\n    var curveness = zrUtil.retrieve3(edge.getModel().get(['lineStyle', 'curveness']), getCurvenessForEdge(edge, seriesModel, index), 0);\n    var p1 = vec2.clone(edge.node1.getLayout());\n    var p2 = vec2.clone(edge.node2.getLayout());\n    var cp1;\n    var x12 = (p1[0] + p2[0]) / 2;\n    var y12 = (p1[1] + p2[1]) / 2;\n\n    if (+curveness) {\n      curveness *= 3;\n      cp1 = [cx * curveness + x12 * (1 - curveness), cy * curveness + y12 * (1 - curveness)];\n    }\n\n    edge.setLayout([p1, p2, cp1]);\n  });\n}\nvar _layoutNodesBasedOn = {\n  value: function (seriesModel, graph, nodeData, r, cx, cy, count) {\n    var angle = 0;\n    var sum = nodeData.getSum('value');\n    var unitAngle = Math.PI * 2 / (sum || count);\n    graph.eachNode(function (node) {\n      var value = node.getValue('value');\n      var radianHalf = unitAngle * (sum ? value : 1) / 2;\n      angle += radianHalf;\n      node.setLayout([r * Math.cos(angle) + cx, r * Math.sin(angle) + cy]);\n      angle += radianHalf;\n    });\n  },\n  symbolSize: function (seriesModel, graph, nodeData, r, cx, cy, count) {\n    var sumRadian = 0;\n    _symbolRadiansHalf.length = count;\n    var nodeScale = getNodeGlobalScale(seriesModel);\n    graph.eachNode(function (node) {\n      var symbolSize = getSymbolSize(node);\n      isNaN(symbolSize) && (symbolSize = 2);\n      symbolSize < 0 && (symbolSize = 0);\n      symbolSize *= nodeScale;\n      var symbolRadianHalf = Math.asin(symbolSize / 2 / r);\n      isNaN(symbolRadianHalf) && (symbolRadianHalf = PI / 2);\n      _symbolRadiansHalf[node.dataIndex] = symbolRadianHalf;\n      sumRadian += symbolRadianHalf * 2;\n    });\n    var halfRemainRadian = (2 * PI - sumRadian) / count / 2;\n    var angle = 0;\n    graph.eachNode(function (node) {\n      var radianHalf = halfRemainRadian + _symbolRadiansHalf[node.dataIndex];\n      angle += radianHalf;\n      node.setLayout([r * Math.cos(angle) + cx, r * Math.sin(angle) + cy]);\n      angle += radianHalf;\n    });\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { circularLayout } from './circularLayoutHelper';\nexport default function graphCircularLayout(ecModel) {\n  ecModel.eachSeriesByType('graph', function (seriesModel) {\n    if (seriesModel.get('layout') === 'circular') {\n      circularLayout(seriesModel, 'symbolSize');\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as vec2 from 'zrender/lib/core/vector';\nvar scaleAndAdd = vec2.scaleAndAdd;\nexport function forceLayout(inNodes, inEdges, opts) {\n  var nodes = inNodes;\n  var edges = inEdges;\n  var rect = opts.rect;\n  var width = rect.width;\n  var height = rect.height;\n  var center = [rect.x + width / 2, rect.y + height / 2];\n  var gravity = opts.gravity == null ? 0.1 : opts.gravity;\n\n  for (var i = 0; i < nodes.length; i++) {\n    var n = nodes[i];\n\n    if (!n.p) {\n      n.p = vec2.create(width * (Math.random() - 0.5) + center[0], height * (Math.random() - 0.5) + center[1]);\n    }\n\n    n.pp = vec2.clone(n.p);\n    n.edges = null;\n  }\n\n  var initialFriction = opts.friction == null ? 0.6 : opts.friction;\n  var friction = initialFriction;\n  var beforeStepCallback;\n  var afterStepCallback;\n  return {\n    warmUp: function () {\n      friction = initialFriction * 0.8;\n    },\n    setFixed: function (idx) {\n      nodes[idx].fixed = true;\n    },\n    setUnfixed: function (idx) {\n      nodes[idx].fixed = false;\n    },\n    beforeStep: function (cb) {\n      beforeStepCallback = cb;\n    },\n    afterStep: function (cb) {\n      afterStepCallback = cb;\n    },\n    step: function (cb) {\n      beforeStepCallback && beforeStepCallback(nodes, edges);\n      var v12 = [];\n      var nLen = nodes.length;\n\n      for (var i = 0; i < edges.length; i++) {\n        var e = edges[i];\n\n        if (e.ignoreForceLayout) {\n          continue;\n        }\n\n        var n1 = e.n1;\n        var n2 = e.n2;\n        vec2.sub(v12, n2.p, n1.p);\n        var d = vec2.len(v12) - e.d;\n        var w = n2.w / (n1.w + n2.w);\n\n        if (isNaN(w)) {\n          w = 0;\n        }\n\n        vec2.normalize(v12, v12);\n        !n1.fixed && scaleAndAdd(n1.p, n1.p, v12, w * d * friction);\n        !n2.fixed && scaleAndAdd(n2.p, n2.p, v12, -(1 - w) * d * friction);\n      }\n\n      for (var i = 0; i < nLen; i++) {\n        var n = nodes[i];\n\n        if (!n.fixed) {\n          vec2.sub(v12, center, n.p);\n          scaleAndAdd(n.p, n.p, v12, gravity * friction);\n        }\n      }\n\n      for (var i = 0; i < nLen; i++) {\n        var n1 = nodes[i];\n\n        for (var j = i + 1; j < nLen; j++) {\n          var n2 = nodes[j];\n          vec2.sub(v12, n2.p, n1.p);\n          var d = vec2.len(v12);\n\n          if (d === 0) {\n            vec2.set(v12, Math.random() - 0.5, Math.random() - 0.5);\n            d = 1;\n          }\n\n          var repFact = (n1.rep + n2.rep) / d / d;\n          !n1.fixed && scaleAndAdd(n1.pp, n1.pp, v12, repFact);\n          !n2.fixed && scaleAndAdd(n2.pp, n2.pp, v12, -repFact);\n        }\n      }\n\n      var v = [];\n\n      for (var i = 0; i < nLen; i++) {\n        var n = nodes[i];\n\n        if (!n.fixed) {\n          vec2.sub(v, n.p, n.pp);\n          scaleAndAdd(n.p, n.p, v, friction);\n          vec2.copy(n.pp, n.p);\n        }\n      }\n\n      friction = friction * 0.992;\n      var finished = friction < 0.01;\n      afterStepCallback && afterStepCallback(nodes, edges, finished);\n      cb && cb(finished);\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { forceLayout } from './forceHelper';\nimport { simpleLayout } from './simpleLayoutHelper';\nimport { circularLayout } from './circularLayoutHelper';\nimport { linearMap } from '../../util/number';\nimport * as vec2 from 'zrender/lib/core/vector';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { getCurvenessForEdge } from '../helper/multipleGraphEdgeHelper';\nexport default function graphForceLayout(ecModel) {\n  ecModel.eachSeriesByType('graph', function (graphSeries) {\n    var coordSys = graphSeries.coordinateSystem;\n\n    if (coordSys && coordSys.type !== 'view') {\n      return;\n    }\n\n    if (graphSeries.get('layout') === 'force') {\n      var preservedPoints_1 = graphSeries.preservedPoints || {};\n      var graph_1 = graphSeries.getGraph();\n      var nodeData_1 = graph_1.data;\n      var edgeData = graph_1.edgeData;\n      var forceModel = graphSeries.getModel('force');\n      var initLayout = forceModel.get('initLayout');\n\n      if (graphSeries.preservedPoints) {\n        nodeData_1.each(function (idx) {\n          var id = nodeData_1.getId(idx);\n          nodeData_1.setItemLayout(idx, preservedPoints_1[id] || [NaN, NaN]);\n        });\n      } else if (!initLayout || initLayout === 'none') {\n        simpleLayout(graphSeries);\n      } else if (initLayout === 'circular') {\n        circularLayout(graphSeries, 'value');\n      }\n\n      var nodeDataExtent_1 = nodeData_1.getDataExtent('value');\n      var edgeDataExtent_1 = edgeData.getDataExtent('value');\n      var repulsion = forceModel.get('repulsion');\n      var edgeLength = forceModel.get('edgeLength');\n      var repulsionArr_1 = zrUtil.isArray(repulsion) ? repulsion : [repulsion, repulsion];\n      var edgeLengthArr_1 = zrUtil.isArray(edgeLength) ? edgeLength : [edgeLength, edgeLength];\n      edgeLengthArr_1 = [edgeLengthArr_1[1], edgeLengthArr_1[0]];\n      var nodes_1 = nodeData_1.mapArray('value', function (value, idx) {\n        var point = nodeData_1.getItemLayout(idx);\n        var rep = linearMap(value, nodeDataExtent_1, repulsionArr_1);\n\n        if (isNaN(rep)) {\n          rep = (repulsionArr_1[0] + repulsionArr_1[1]) / 2;\n        }\n\n        return {\n          w: rep,\n          rep: rep,\n          fixed: nodeData_1.getItemModel(idx).get('fixed'),\n          p: !point || isNaN(point[0]) || isNaN(point[1]) ? null : point\n        };\n      });\n      var edges = edgeData.mapArray('value', function (value, idx) {\n        var edge = graph_1.getEdgeByIndex(idx);\n        var d = linearMap(value, edgeDataExtent_1, edgeLengthArr_1);\n\n        if (isNaN(d)) {\n          d = (edgeLengthArr_1[0] + edgeLengthArr_1[1]) / 2;\n        }\n\n        var edgeModel = edge.getModel();\n        var curveness = zrUtil.retrieve3(edge.getModel().get(['lineStyle', 'curveness']), -getCurvenessForEdge(edge, graphSeries, idx, true), 0);\n        return {\n          n1: nodes_1[edge.node1.dataIndex],\n          n2: nodes_1[edge.node2.dataIndex],\n          d: d,\n          curveness: curveness,\n          ignoreForceLayout: edgeModel.get('ignoreForceLayout')\n        };\n      });\n      var rect = coordSys.getBoundingRect();\n      var forceInstance = forceLayout(nodes_1, edges, {\n        rect: rect,\n        gravity: forceModel.get('gravity'),\n        friction: forceModel.get('friction')\n      });\n      forceInstance.beforeStep(function (nodes, edges) {\n        for (var i = 0, l = nodes.length; i < l; i++) {\n          if (nodes[i].fixed) {\n            vec2.copy(nodes[i].p, graph_1.getNodeByIndex(i).getLayout());\n          }\n        }\n      });\n      forceInstance.afterStep(function (nodes, edges, stopped) {\n        for (var i = 0, l = nodes.length; i < l; i++) {\n          if (!nodes[i].fixed) {\n            graph_1.getNodeByIndex(i).setLayout(nodes[i].p);\n          }\n\n          preservedPoints_1[nodeData_1.getId(i)] = nodes[i].p;\n        }\n\n        for (var i = 0, l = edges.length; i < l; i++) {\n          var e = edges[i];\n          var edge = graph_1.getEdgeByIndex(i);\n          var p1 = e.n1.p;\n          var p2 = e.n2.p;\n          var points = edge.getLayout();\n          points = points ? points.slice() : [];\n          points[0] = points[0] || [];\n          points[1] = points[1] || [];\n          vec2.copy(points[0], p1);\n          vec2.copy(points[1], p2);\n\n          if (+e.curveness) {\n            points[2] = [(p1[0] + p2[0]) / 2 - (p1[1] - p2[1]) * e.curveness, (p1[1] + p2[1]) / 2 - (p2[0] - p1[0]) * e.curveness];\n          }\n\n          edge.setLayout(points);\n        }\n      });\n      graphSeries.forceLayout = forceInstance;\n      graphSeries.preservedPoints = preservedPoints_1;\n      forceInstance.step();\n    } else {\n      graphSeries.forceLayout = null;\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport View from '../../coord/View';\nimport { getLayoutRect } from '../../util/layout';\nimport * as bbox from 'zrender/lib/core/bbox';\nimport { extend } from 'zrender/lib/core/util';\n\nfunction getViewRect(seriesModel, api, aspect) {\n  var option = extend(seriesModel.getBoxLayoutParams(), {\n    aspect: aspect\n  });\n  return getLayoutRect(option, {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n}\n\nexport default function createViewCoordSys(ecModel, api) {\n  var viewList = [];\n  ecModel.eachSeriesByType('graph', function (seriesModel) {\n    var coordSysType = seriesModel.get('coordinateSystem');\n\n    if (!coordSysType || coordSysType === 'view') {\n      var data_1 = seriesModel.getData();\n      var positions = data_1.mapArray(function (idx) {\n        var itemModel = data_1.getItemModel(idx);\n        return [+itemModel.get('x'), +itemModel.get('y')];\n      });\n      var min = [];\n      var max = [];\n      bbox.fromPoints(positions, min, max);\n\n      if (max[0] - min[0] === 0) {\n        max[0] += 1;\n        min[0] -= 1;\n      }\n\n      if (max[1] - min[1] === 0) {\n        max[1] += 1;\n        min[1] -= 1;\n      }\n\n      var aspect = (max[0] - min[0]) / (max[1] - min[1]);\n      var viewRect = getViewRect(seriesModel, api, aspect);\n\n      if (isNaN(aspect)) {\n        min = [viewRect.x, viewRect.y];\n        max = [viewRect.x + viewRect.width, viewRect.y + viewRect.height];\n      }\n\n      var bbWidth = max[0] - min[0];\n      var bbHeight = max[1] - min[1];\n      var viewWidth = viewRect.width;\n      var viewHeight = viewRect.height;\n      var viewCoordSys = seriesModel.coordinateSystem = new View();\n      viewCoordSys.zoomLimit = seriesModel.get('scaleLimit');\n      viewCoordSys.setBoundingRect(min[0], min[1], bbWidth, bbHeight);\n      viewCoordSys.setViewRect(viewRect.x, viewRect.y, viewWidth, viewHeight);\n      viewCoordSys.setCenter(seriesModel.get('center'));\n      viewCoordSys.setZoom(seriesModel.get('zoom'));\n      viewList.push(viewCoordSys);\n    }\n  });\n  return viewList;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport * as vec2 from 'zrender/lib/core/vector';\nvar straightLineProto = graphic.Line.prototype;\nvar bezierCurveProto = graphic.BezierCurve.prototype;\n\nvar StraightLineShape = function () {\n  function StraightLineShape() {\n    this.x1 = 0;\n    this.y1 = 0;\n    this.x2 = 0;\n    this.y2 = 0;\n    this.percent = 1;\n  }\n\n  return StraightLineShape;\n}();\n\nvar CurveShape = function (_super) {\n  __extends(CurveShape, _super);\n\n  function CurveShape() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  return CurveShape;\n}(StraightLineShape);\n\nfunction isStraightLine(shape) {\n  return isNaN(+shape.cpx1) || isNaN(+shape.cpy1);\n}\n\nvar ECLinePath = function (_super) {\n  __extends(ECLinePath, _super);\n\n  function ECLinePath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'ec-line';\n    return _this;\n  }\n\n  ECLinePath.prototype.getDefaultStyle = function () {\n    return {\n      stroke: '#000',\n      fill: null\n    };\n  };\n\n  ECLinePath.prototype.getDefaultShape = function () {\n    return new StraightLineShape();\n  };\n\n  ECLinePath.prototype.buildPath = function (ctx, shape) {\n    if (isStraightLine(shape)) {\n      straightLineProto.buildPath.call(this, ctx, shape);\n    } else {\n      bezierCurveProto.buildPath.call(this, ctx, shape);\n    }\n  };\n\n  ECLinePath.prototype.pointAt = function (t) {\n    if (isStraightLine(this.shape)) {\n      return straightLineProto.pointAt.call(this, t);\n    } else {\n      return bezierCurveProto.pointAt.call(this, t);\n    }\n  };\n\n  ECLinePath.prototype.tangentAt = function (t) {\n    var shape = this.shape;\n    var p = isStraightLine(shape) ? [shape.x2 - shape.x1, shape.y2 - shape.y1] : bezierCurveProto.tangentAt.call(this, t);\n    return vec2.normalize(p, p);\n  };\n\n  return ECLinePath;\n}(graphic.Path);\n\nexport default ECLinePath;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as vector from 'zrender/lib/core/vector';\nimport * as symbolUtil from '../../util/symbol';\nimport ECLinePath from './LinePath';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis, enterEmphasis, leaveEmphasis, SPECIAL_STATES } from '../../util/states';\nimport { getLabelStatesModels, setLabelStyle } from '../../label/labelStyle';\nimport { round } from '../../util/number';\nvar SYMBOL_CATEGORIES = ['fromSymbol', 'toSymbol'];\n\nfunction makeSymbolTypeKey(symbolCategory) {\n  return '_' + symbolCategory + 'Type';\n}\n\nfunction createSymbol(name, lineData, idx) {\n  var symbolType = lineData.getItemVisual(idx, name);\n\n  if (!symbolType || symbolType === 'none') {\n    return;\n  }\n\n  var symbolSize = lineData.getItemVisual(idx, name + 'Size');\n  var symbolRotate = lineData.getItemVisual(idx, name + 'Rotate');\n  var symbolSizeArr = zrUtil.isArray(symbolSize) ? symbolSize : [symbolSize, symbolSize];\n  var symbolPath = symbolUtil.createSymbol(symbolType, -symbolSizeArr[0] / 2, -symbolSizeArr[1] / 2, symbolSizeArr[0], symbolSizeArr[1]);\n  symbolPath.__specifiedRotation = symbolRotate == null || isNaN(symbolRotate) ? void 0 : +symbolRotate * Math.PI / 180 || 0;\n  symbolPath.name = name;\n  return symbolPath;\n}\n\nfunction createLine(points) {\n  var line = new ECLinePath({\n    name: 'line',\n    subPixelOptimize: true\n  });\n  setLinePoints(line.shape, points);\n  return line;\n}\n\nfunction setLinePoints(targetShape, points) {\n  targetShape.x1 = points[0][0];\n  targetShape.y1 = points[0][1];\n  targetShape.x2 = points[1][0];\n  targetShape.y2 = points[1][1];\n  targetShape.percent = 1;\n  var cp1 = points[2];\n\n  if (cp1) {\n    targetShape.cpx1 = cp1[0];\n    targetShape.cpy1 = cp1[1];\n  } else {\n    targetShape.cpx1 = NaN;\n    targetShape.cpy1 = NaN;\n  }\n}\n\nvar Line = function (_super) {\n  __extends(Line, _super);\n\n  function Line(lineData, idx, seriesScope) {\n    var _this = _super.call(this) || this;\n\n    _this._createLine(lineData, idx, seriesScope);\n\n    return _this;\n  }\n\n  Line.prototype._createLine = function (lineData, idx, seriesScope) {\n    var seriesModel = lineData.hostModel;\n    var linePoints = lineData.getItemLayout(idx);\n    var line = createLine(linePoints);\n    line.shape.percent = 0;\n    graphic.initProps(line, {\n      shape: {\n        percent: 1\n      }\n    }, seriesModel, idx);\n    this.add(line);\n    zrUtil.each(SYMBOL_CATEGORIES, function (symbolCategory) {\n      var symbol = createSymbol(symbolCategory, lineData, idx);\n      this.add(symbol);\n      this[makeSymbolTypeKey(symbolCategory)] = lineData.getItemVisual(idx, symbolCategory);\n    }, this);\n\n    this._updateCommonStl(lineData, idx, seriesScope);\n  };\n\n  Line.prototype.updateData = function (lineData, idx, seriesScope) {\n    var seriesModel = lineData.hostModel;\n    var line = this.childOfName('line');\n    var linePoints = lineData.getItemLayout(idx);\n    var target = {\n      shape: {}\n    };\n    setLinePoints(target.shape, linePoints);\n    graphic.updateProps(line, target, seriesModel, idx);\n    zrUtil.each(SYMBOL_CATEGORIES, function (symbolCategory) {\n      var symbolType = lineData.getItemVisual(idx, symbolCategory);\n      var key = makeSymbolTypeKey(symbolCategory);\n\n      if (this[key] !== symbolType) {\n        this.remove(this.childOfName(symbolCategory));\n        var symbol = createSymbol(symbolCategory, lineData, idx);\n        this.add(symbol);\n      }\n\n      this[key] = symbolType;\n    }, this);\n\n    this._updateCommonStl(lineData, idx, seriesScope);\n  };\n\n  ;\n\n  Line.prototype.getLinePath = function () {\n    return this.childAt(0);\n  };\n\n  Line.prototype._updateCommonStl = function (lineData, idx, seriesScope) {\n    var seriesModel = lineData.hostModel;\n    var line = this.childOfName('line');\n    var emphasisLineStyle = seriesScope && seriesScope.emphasisLineStyle;\n    var blurLineStyle = seriesScope && seriesScope.blurLineStyle;\n    var selectLineStyle = seriesScope && seriesScope.selectLineStyle;\n    var labelStatesModels = seriesScope && seriesScope.labelStatesModels;\n\n    if (!seriesScope || lineData.hasItemOption) {\n      var itemModel = lineData.getItemModel(idx);\n      emphasisLineStyle = itemModel.getModel(['emphasis', 'lineStyle']).getLineStyle();\n      blurLineStyle = itemModel.getModel(['blur', 'lineStyle']).getLineStyle();\n      selectLineStyle = itemModel.getModel(['select', 'lineStyle']).getLineStyle();\n      labelStatesModels = getLabelStatesModels(itemModel);\n    }\n\n    var lineStyle = lineData.getItemVisual(idx, 'style');\n    var visualColor = lineStyle.stroke;\n    line.useStyle(lineStyle);\n    line.style.fill = null;\n    line.style.strokeNoScale = true;\n    line.ensureState('emphasis').style = emphasisLineStyle;\n    line.ensureState('blur').style = blurLineStyle;\n    line.ensureState('select').style = selectLineStyle;\n    zrUtil.each(SYMBOL_CATEGORIES, function (symbolCategory) {\n      var symbol = this.childOfName(symbolCategory);\n\n      if (symbol) {\n        symbol.setColor(visualColor);\n        symbol.style.opacity = lineStyle.opacity;\n\n        for (var i = 0; i < SPECIAL_STATES.length; i++) {\n          var stateName = SPECIAL_STATES[i];\n          var lineState = line.getState(stateName);\n\n          if (lineState) {\n            var lineStateStyle = lineState.style || {};\n            var state = symbol.ensureState(stateName);\n            var stateStyle = state.style || (state.style = {});\n\n            if (lineStateStyle.stroke != null) {\n              stateStyle[symbol.__isEmptyBrush ? 'stroke' : 'fill'] = lineStateStyle.stroke;\n            }\n\n            if (lineStateStyle.opacity != null) {\n              stateStyle.opacity = lineStateStyle.opacity;\n            }\n          }\n        }\n\n        symbol.markRedraw();\n      }\n    }, this);\n    var rawVal = seriesModel.getRawValue(idx);\n    setLabelStyle(this, labelStatesModels, {\n      labelDataIndex: idx,\n      labelFetcher: {\n        getFormattedLabel: function (dataIndex, stateName) {\n          return seriesModel.getFormattedLabel(dataIndex, stateName, lineData.dataType);\n        }\n      },\n      inheritColor: visualColor || '#000',\n      defaultOpacity: lineStyle.opacity,\n      defaultText: (rawVal == null ? lineData.getName(idx) : isFinite(rawVal) ? round(rawVal) : rawVal) + ''\n    });\n    var label = this.getTextContent();\n\n    if (label) {\n      var labelNormalModel = labelStatesModels.normal;\n      label.__align = label.style.align;\n      label.__verticalAlign = label.style.verticalAlign;\n      label.__position = labelNormalModel.get('position') || 'middle';\n      var distance = labelNormalModel.get('distance');\n\n      if (!zrUtil.isArray(distance)) {\n        distance = [distance, distance];\n      }\n\n      label.__labelDistance = distance;\n    }\n\n    this.setTextConfig({\n      position: null,\n      local: true,\n      inside: false\n    });\n    enableHoverEmphasis(this);\n  };\n\n  Line.prototype.highlight = function () {\n    enterEmphasis(this);\n  };\n\n  Line.prototype.downplay = function () {\n    leaveEmphasis(this);\n  };\n\n  Line.prototype.updateLayout = function (lineData, idx) {\n    this.setLinePoints(lineData.getItemLayout(idx));\n  };\n\n  Line.prototype.setLinePoints = function (points) {\n    var linePath = this.childOfName('line');\n    setLinePoints(linePath.shape, points);\n    linePath.dirty();\n  };\n\n  Line.prototype.beforeUpdate = function () {\n    var lineGroup = this;\n    var symbolFrom = lineGroup.childOfName('fromSymbol');\n    var symbolTo = lineGroup.childOfName('toSymbol');\n    var label = lineGroup.getTextContent();\n\n    if (!symbolFrom && !symbolTo && (!label || label.ignore)) {\n      return;\n    }\n\n    var invScale = 1;\n    var parentNode = this.parent;\n\n    while (parentNode) {\n      if (parentNode.scaleX) {\n        invScale /= parentNode.scaleX;\n      }\n\n      parentNode = parentNode.parent;\n    }\n\n    var line = lineGroup.childOfName('line');\n\n    if (!this.__dirty && !line.__dirty) {\n      return;\n    }\n\n    var percent = line.shape.percent;\n    var fromPos = line.pointAt(0);\n    var toPos = line.pointAt(percent);\n    var d = vector.sub([], toPos, fromPos);\n    vector.normalize(d, d);\n\n    function setSymbolRotation(symbol, percent) {\n      var specifiedRotation = symbol.__specifiedRotation;\n\n      if (specifiedRotation == null) {\n        var tangent = line.tangentAt(percent);\n        symbol.attr('rotation', (percent === 1 ? -1 : 1) * Math.PI / 2 - Math.atan2(tangent[1], tangent[0]));\n      } else {\n        symbol.attr('rotation', specifiedRotation);\n      }\n    }\n\n    if (symbolFrom) {\n      symbolFrom.setPosition(fromPos);\n      setSymbolRotation(symbolFrom, 0);\n      symbolFrom.scaleX = symbolFrom.scaleY = invScale * percent;\n      symbolFrom.markRedraw();\n    }\n\n    if (symbolTo) {\n      symbolTo.setPosition(toPos);\n      setSymbolRotation(symbolTo, 1);\n      symbolTo.scaleX = symbolTo.scaleY = invScale * percent;\n      symbolTo.markRedraw();\n    }\n\n    if (label && !label.ignore) {\n      label.x = label.y = 0;\n      label.originX = label.originY = 0;\n      var textAlign = void 0;\n      var textVerticalAlign = void 0;\n      var distance = label.__labelDistance;\n      var distanceX = distance[0] * invScale;\n      var distanceY = distance[1] * invScale;\n      var halfPercent = percent / 2;\n      var tangent = line.tangentAt(halfPercent);\n      var n = [tangent[1], -tangent[0]];\n      var cp = line.pointAt(halfPercent);\n\n      if (n[1] > 0) {\n        n[0] = -n[0];\n        n[1] = -n[1];\n      }\n\n      var dir = tangent[0] < 0 ? -1 : 1;\n\n      if (label.__position !== 'start' && label.__position !== 'end') {\n        var rotation = -Math.atan2(tangent[1], tangent[0]);\n\n        if (toPos[0] < fromPos[0]) {\n          rotation = Math.PI + rotation;\n        }\n\n        label.rotation = rotation;\n      }\n\n      var dy = void 0;\n\n      switch (label.__position) {\n        case 'insideStartTop':\n        case 'insideMiddleTop':\n        case 'insideEndTop':\n        case 'middle':\n          dy = -distanceY;\n          textVerticalAlign = 'bottom';\n          break;\n\n        case 'insideStartBottom':\n        case 'insideMiddleBottom':\n        case 'insideEndBottom':\n          dy = distanceY;\n          textVerticalAlign = 'top';\n          break;\n\n        default:\n          dy = 0;\n          textVerticalAlign = 'middle';\n      }\n\n      switch (label.__position) {\n        case 'end':\n          label.x = d[0] * distanceX + toPos[0];\n          label.y = d[1] * distanceY + toPos[1];\n          textAlign = d[0] > 0.8 ? 'left' : d[0] < -0.8 ? 'right' : 'center';\n          textVerticalAlign = d[1] > 0.8 ? 'top' : d[1] < -0.8 ? 'bottom' : 'middle';\n          break;\n\n        case 'start':\n          label.x = -d[0] * distanceX + fromPos[0];\n          label.y = -d[1] * distanceY + fromPos[1];\n          textAlign = d[0] > 0.8 ? 'right' : d[0] < -0.8 ? 'left' : 'center';\n          textVerticalAlign = d[1] > 0.8 ? 'bottom' : d[1] < -0.8 ? 'top' : 'middle';\n          break;\n\n        case 'insideStartTop':\n        case 'insideStart':\n        case 'insideStartBottom':\n          label.x = distanceX * dir + fromPos[0];\n          label.y = fromPos[1] + dy;\n          textAlign = tangent[0] < 0 ? 'right' : 'left';\n          label.originX = -distanceX * dir;\n          label.originY = -dy;\n          break;\n\n        case 'insideMiddleTop':\n        case 'insideMiddle':\n        case 'insideMiddleBottom':\n        case 'middle':\n          label.x = cp[0];\n          label.y = cp[1] + dy;\n          textAlign = 'center';\n          label.originY = -dy;\n          break;\n\n        case 'insideEndTop':\n        case 'insideEnd':\n        case 'insideEndBottom':\n          label.x = -distanceX * dir + toPos[0];\n          label.y = toPos[1] + dy;\n          textAlign = tangent[0] >= 0 ? 'right' : 'left';\n          label.originX = distanceX * dir;\n          label.originY = -dy;\n          break;\n      }\n\n      label.scaleX = label.scaleY = invScale;\n      label.setStyle({\n        verticalAlign: label.__verticalAlign || textVerticalAlign,\n        align: label.__align || textAlign\n      });\n    }\n  };\n\n  return Line;\n}(graphic.Group);\n\nexport default Line;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as graphic from '../../util/graphic';\nimport LineGroup from './Line';\nimport { getLabelStatesModels } from '../../label/labelStyle';\n\nvar LineDraw = function () {\n  function LineDraw(LineCtor) {\n    this.group = new graphic.Group();\n    this._LineCtor = LineCtor || LineGroup;\n  }\n\n  LineDraw.prototype.isPersistent = function () {\n    return true;\n  };\n\n  ;\n\n  LineDraw.prototype.updateData = function (lineData) {\n    var _this = this;\n\n    var lineDraw = this;\n    var group = lineDraw.group;\n    var oldLineData = lineDraw._lineData;\n    lineDraw._lineData = lineData;\n\n    if (!oldLineData) {\n      group.removeAll();\n    }\n\n    var seriesScope = makeSeriesScope(lineData);\n    lineData.diff(oldLineData).add(function (idx) {\n      _this._doAdd(lineData, idx, seriesScope);\n    }).update(function (newIdx, oldIdx) {\n      _this._doUpdate(oldLineData, lineData, oldIdx, newIdx, seriesScope);\n    }).remove(function (idx) {\n      group.remove(oldLineData.getItemGraphicEl(idx));\n    }).execute();\n  };\n\n  ;\n\n  LineDraw.prototype.updateLayout = function () {\n    var lineData = this._lineData;\n\n    if (!lineData) {\n      return;\n    }\n\n    lineData.eachItemGraphicEl(function (el, idx) {\n      el.updateLayout(lineData, idx);\n    }, this);\n  };\n\n  ;\n\n  LineDraw.prototype.incrementalPrepareUpdate = function (lineData) {\n    this._seriesScope = makeSeriesScope(lineData);\n    this._lineData = null;\n    this.group.removeAll();\n  };\n\n  ;\n\n  LineDraw.prototype.incrementalUpdate = function (taskParams, lineData) {\n    function updateIncrementalAndHover(el) {\n      if (!el.isGroup && !isEffectObject(el)) {\n        el.incremental = true;\n        el.ensureState('emphasis').hoverLayer = true;\n      }\n    }\n\n    for (var idx = taskParams.start; idx < taskParams.end; idx++) {\n      var itemLayout = lineData.getItemLayout(idx);\n\n      if (lineNeedsDraw(itemLayout)) {\n        var el = new this._LineCtor(lineData, idx, this._seriesScope);\n        el.traverse(updateIncrementalAndHover);\n        this.group.add(el);\n        lineData.setItemGraphicEl(idx, el);\n      }\n    }\n  };\n\n  ;\n\n  LineDraw.prototype.remove = function () {\n    this.group.removeAll();\n  };\n\n  ;\n\n  LineDraw.prototype._doAdd = function (lineData, idx, seriesScope) {\n    var itemLayout = lineData.getItemLayout(idx);\n\n    if (!lineNeedsDraw(itemLayout)) {\n      return;\n    }\n\n    var el = new this._LineCtor(lineData, idx, seriesScope);\n    lineData.setItemGraphicEl(idx, el);\n    this.group.add(el);\n  };\n\n  LineDraw.prototype._doUpdate = function (oldLineData, newLineData, oldIdx, newIdx, seriesScope) {\n    var itemEl = oldLineData.getItemGraphicEl(oldIdx);\n\n    if (!lineNeedsDraw(newLineData.getItemLayout(newIdx))) {\n      this.group.remove(itemEl);\n      return;\n    }\n\n    if (!itemEl) {\n      itemEl = new this._LineCtor(newLineData, newIdx, seriesScope);\n    } else {\n      itemEl.updateData(newLineData, newIdx, seriesScope);\n    }\n\n    newLineData.setItemGraphicEl(newIdx, itemEl);\n    this.group.add(itemEl);\n  };\n\n  return LineDraw;\n}();\n\nfunction isEffectObject(el) {\n  return el.animators && el.animators.length > 0;\n}\n\nfunction makeSeriesScope(lineData) {\n  var hostModel = lineData.hostModel;\n  return {\n    lineStyle: hostModel.getModel('lineStyle').getLineStyle(),\n    emphasisLineStyle: hostModel.getModel(['emphasis', 'lineStyle']).getLineStyle(),\n    blurLineStyle: hostModel.getModel(['blur', 'lineStyle']).getLineStyle(),\n    selectLineStyle: hostModel.getModel(['select', 'lineStyle']).getLineStyle(),\n    labelStatesModels: getLabelStatesModels(hostModel)\n  };\n}\n\nfunction isPointNaN(pt) {\n  return isNaN(pt[0]) || isNaN(pt[1]);\n}\n\nfunction lineNeedsDraw(pts) {\n  return !isPointNaN(pts[0]) && !isPointNaN(pts[1]);\n}\n\nexport default LineDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as curveTool from 'zrender/lib/core/curve';\nimport * as vec2 from 'zrender/lib/core/vector';\nimport { getSymbolSize } from './graphHelper';\nvar v1 = [];\nvar v2 = [];\nvar v3 = [];\nvar quadraticAt = curveTool.quadraticAt;\nvar v2DistSquare = vec2.distSquare;\nvar mathAbs = Math.abs;\n\nfunction intersectCurveCircle(curvePoints, center, radius) {\n  var p0 = curvePoints[0];\n  var p1 = curvePoints[1];\n  var p2 = curvePoints[2];\n  var d = Infinity;\n  var t;\n  var radiusSquare = radius * radius;\n  var interval = 0.1;\n\n  for (var _t = 0.1; _t <= 0.9; _t += 0.1) {\n    v1[0] = quadraticAt(p0[0], p1[0], p2[0], _t);\n    v1[1] = quadraticAt(p0[1], p1[1], p2[1], _t);\n    var diff = mathAbs(v2DistSquare(v1, center) - radiusSquare);\n\n    if (diff < d) {\n      d = diff;\n      t = _t;\n    }\n  }\n\n  for (var i = 0; i < 32; i++) {\n    var next = t + interval;\n    v2[0] = quadraticAt(p0[0], p1[0], p2[0], t);\n    v2[1] = quadraticAt(p0[1], p1[1], p2[1], t);\n    v3[0] = quadraticAt(p0[0], p1[0], p2[0], next);\n    v3[1] = quadraticAt(p0[1], p1[1], p2[1], next);\n    var diff = v2DistSquare(v2, center) - radiusSquare;\n\n    if (mathAbs(diff) < 1e-2) {\n      break;\n    }\n\n    var nextDiff = v2DistSquare(v3, center) - radiusSquare;\n    interval /= 2;\n\n    if (diff < 0) {\n      if (nextDiff >= 0) {\n        t = t + interval;\n      } else {\n        t = t - interval;\n      }\n    } else {\n      if (nextDiff >= 0) {\n        t = t - interval;\n      } else {\n        t = t + interval;\n      }\n    }\n  }\n\n  return t;\n}\n\nexport default function adjustEdge(graph, scale) {\n  var tmp0 = [];\n  var quadraticSubdivide = curveTool.quadraticSubdivide;\n  var pts = [[], [], []];\n  var pts2 = [[], []];\n  var v = [];\n  scale /= 2;\n  graph.eachEdge(function (edge, idx) {\n    var linePoints = edge.getLayout();\n    var fromSymbol = edge.getVisual('fromSymbol');\n    var toSymbol = edge.getVisual('toSymbol');\n\n    if (!linePoints.__original) {\n      linePoints.__original = [vec2.clone(linePoints[0]), vec2.clone(linePoints[1])];\n\n      if (linePoints[2]) {\n        linePoints.__original.push(vec2.clone(linePoints[2]));\n      }\n    }\n\n    var originalPoints = linePoints.__original;\n\n    if (linePoints[2] != null) {\n      vec2.copy(pts[0], originalPoints[0]);\n      vec2.copy(pts[1], originalPoints[2]);\n      vec2.copy(pts[2], originalPoints[1]);\n\n      if (fromSymbol && fromSymbol !== 'none') {\n        var symbolSize = getSymbolSize(edge.node1);\n        var t = intersectCurveCircle(pts, originalPoints[0], symbolSize * scale);\n        quadraticSubdivide(pts[0][0], pts[1][0], pts[2][0], t, tmp0);\n        pts[0][0] = tmp0[3];\n        pts[1][0] = tmp0[4];\n        quadraticSubdivide(pts[0][1], pts[1][1], pts[2][1], t, tmp0);\n        pts[0][1] = tmp0[3];\n        pts[1][1] = tmp0[4];\n      }\n\n      if (toSymbol && toSymbol !== 'none') {\n        var symbolSize = getSymbolSize(edge.node2);\n        var t = intersectCurveCircle(pts, originalPoints[1], symbolSize * scale);\n        quadraticSubdivide(pts[0][0], pts[1][0], pts[2][0], t, tmp0);\n        pts[1][0] = tmp0[1];\n        pts[2][0] = tmp0[2];\n        quadraticSubdivide(pts[0][1], pts[1][1], pts[2][1], t, tmp0);\n        pts[1][1] = tmp0[1];\n        pts[2][1] = tmp0[2];\n      }\n\n      vec2.copy(linePoints[0], pts[0]);\n      vec2.copy(linePoints[1], pts[2]);\n      vec2.copy(linePoints[2], pts[1]);\n    } else {\n      vec2.copy(pts2[0], originalPoints[0]);\n      vec2.copy(pts2[1], originalPoints[1]);\n      vec2.sub(v, pts2[1], pts2[0]);\n      vec2.normalize(v, v);\n\n      if (fromSymbol && fromSymbol !== 'none') {\n        var symbolSize = getSymbolSize(edge.node1);\n        vec2.scaleAndAdd(pts2[0], pts2[0], v, symbolSize * scale);\n      }\n\n      if (toSymbol && toSymbol !== 'none') {\n        var symbolSize = getSymbolSize(edge.node2);\n        vec2.scaleAndAdd(pts2[1], pts2[1], v, -symbolSize * scale);\n      }\n\n      vec2.copy(linePoints[0], pts2[0]);\n      vec2.copy(linePoints[1], pts2[1]);\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport SymbolDraw from '../helper/SymbolDraw';\nimport LineDraw from '../helper/LineDraw';\nimport RoamController from '../../component/helper/RoamController';\nimport * as roamHelper from '../../component/helper/roamHelper';\nimport { onIrrelevantElement } from '../../component/helper/cursorHelper';\nimport * as graphic from '../../util/graphic';\nimport adjustEdge from './adjustEdge';\nimport { getNodeGlobalScale } from './graphHelper';\nimport ChartView from '../../view/Chart';\nimport { getECData } from '../../util/innerStore';\n\nfunction isViewCoordSys(coordSys) {\n  return coordSys.type === 'view';\n}\n\nvar GraphView = function (_super) {\n  __extends(GraphView, _super);\n\n  function GraphView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GraphView.type;\n    return _this;\n  }\n\n  GraphView.prototype.init = function (ecModel, api) {\n    var symbolDraw = new SymbolDraw();\n    var lineDraw = new LineDraw();\n    var group = this.group;\n    this._controller = new RoamController(api.getZr());\n    this._controllerHost = {\n      target: group\n    };\n    group.add(symbolDraw.group);\n    group.add(lineDraw.group);\n    this._symbolDraw = symbolDraw;\n    this._lineDraw = lineDraw;\n    this._firstRender = true;\n  };\n\n  GraphView.prototype.render = function (seriesModel, ecModel, api) {\n    var _this = this;\n\n    var coordSys = seriesModel.coordinateSystem;\n    this._model = seriesModel;\n    var symbolDraw = this._symbolDraw;\n    var lineDraw = this._lineDraw;\n    var group = this.group;\n\n    if (isViewCoordSys(coordSys)) {\n      var groupNewProp = {\n        x: coordSys.x,\n        y: coordSys.y,\n        scaleX: coordSys.scaleX,\n        scaleY: coordSys.scaleY\n      };\n\n      if (this._firstRender) {\n        group.attr(groupNewProp);\n      } else {\n        graphic.updateProps(group, groupNewProp, seriesModel);\n      }\n    }\n\n    adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));\n    var data = seriesModel.getData();\n    symbolDraw.updateData(data);\n    var edgeData = seriesModel.getEdgeData();\n    lineDraw.updateData(edgeData);\n\n    this._updateNodeAndLinkScale();\n\n    this._updateController(seriesModel, ecModel, api);\n\n    clearTimeout(this._layoutTimeout);\n    var forceLayout = seriesModel.forceLayout;\n    var layoutAnimation = seriesModel.get(['force', 'layoutAnimation']);\n\n    if (forceLayout) {\n      this._startForceLayoutIteration(forceLayout, layoutAnimation);\n    }\n\n    data.graph.eachNode(function (node) {\n      var idx = node.dataIndex;\n      var el = node.getGraphicEl();\n      var itemModel = node.getModel();\n      el.off('drag').off('dragend');\n      var draggable = itemModel.get('draggable');\n\n      if (draggable) {\n        el.on('drag', function () {\n          if (forceLayout) {\n            forceLayout.warmUp();\n            !_this._layouting && _this._startForceLayoutIteration(forceLayout, layoutAnimation);\n            forceLayout.setFixed(idx);\n            data.setItemLayout(idx, [el.x, el.y]);\n          }\n        }).on('dragend', function () {\n          if (forceLayout) {\n            forceLayout.setUnfixed(idx);\n          }\n        });\n      }\n\n      el.setDraggable(draggable && !!forceLayout);\n      var focus = itemModel.get(['emphasis', 'focus']);\n\n      if (focus === 'adjacency') {\n        getECData(el).focus = node.getAdjacentDataIndices();\n      }\n    });\n    data.graph.eachEdge(function (edge) {\n      var el = edge.getGraphicEl();\n      var focus = edge.getModel().get(['emphasis', 'focus']);\n\n      if (focus === 'adjacency') {\n        getECData(el).focus = {\n          edge: [edge.dataIndex],\n          node: [edge.node1.dataIndex, edge.node2.dataIndex]\n        };\n      }\n    });\n    var circularRotateLabel = seriesModel.get('layout') === 'circular' && seriesModel.get(['circular', 'rotateLabel']);\n    var cx = data.getLayout('cx');\n    var cy = data.getLayout('cy');\n    data.eachItemGraphicEl(function (el, idx) {\n      var itemModel = data.getItemModel(idx);\n      var labelRotate = itemModel.get(['label', 'rotate']) || 0;\n      var symbolPath = el.getSymbolPath();\n\n      if (circularRotateLabel) {\n        var pos = data.getItemLayout(idx);\n        var rad = Math.atan2(pos[1] - cy, pos[0] - cx);\n\n        if (rad < 0) {\n          rad = Math.PI * 2 + rad;\n        }\n\n        var isLeft = pos[0] < cx;\n\n        if (isLeft) {\n          rad = rad - Math.PI;\n        }\n\n        var textPosition = isLeft ? 'left' : 'right';\n        symbolPath.setTextConfig({\n          rotation: -rad,\n          position: textPosition,\n          origin: 'center'\n        });\n        var emphasisState = symbolPath.ensureState('emphasis');\n        zrUtil.extend(emphasisState.textConfig || (emphasisState.textConfig = {}), {\n          position: textPosition\n        });\n      } else {\n        symbolPath.setTextConfig({\n          rotation: labelRotate *= Math.PI / 180\n        });\n      }\n    });\n    this._firstRender = false;\n  };\n\n  GraphView.prototype.dispose = function () {\n    this._controller && this._controller.dispose();\n    this._controllerHost = null;\n  };\n\n  GraphView.prototype._startForceLayoutIteration = function (forceLayout, layoutAnimation) {\n    var self = this;\n\n    (function step() {\n      forceLayout.step(function (stopped) {\n        self.updateLayout(self._model);\n        (self._layouting = !stopped) && (layoutAnimation ? self._layoutTimeout = setTimeout(step, 16) : step());\n      });\n    })();\n  };\n\n  GraphView.prototype._updateController = function (seriesModel, ecModel, api) {\n    var _this = this;\n\n    var controller = this._controller;\n    var controllerHost = this._controllerHost;\n    var group = this.group;\n    controller.setPointerChecker(function (e, x, y) {\n      var rect = group.getBoundingRect();\n      rect.applyTransform(group.transform);\n      return rect.contain(x, y) && !onIrrelevantElement(e, api, seriesModel);\n    });\n\n    if (!isViewCoordSys(seriesModel.coordinateSystem)) {\n      controller.disable();\n      return;\n    }\n\n    controller.enable(seriesModel.get('roam'));\n    controllerHost.zoomLimit = seriesModel.get('scaleLimit');\n    controllerHost.zoom = seriesModel.coordinateSystem.getZoom();\n    controller.off('pan').off('zoom').on('pan', function (e) {\n      roamHelper.updateViewOnPan(controllerHost, e.dx, e.dy);\n      api.dispatchAction({\n        seriesId: seriesModel.id,\n        type: 'graphRoam',\n        dx: e.dx,\n        dy: e.dy\n      });\n    }).on('zoom', function (e) {\n      roamHelper.updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\n      api.dispatchAction({\n        seriesId: seriesModel.id,\n        type: 'graphRoam',\n        zoom: e.scale,\n        originX: e.originX,\n        originY: e.originY\n      });\n\n      _this._updateNodeAndLinkScale();\n\n      adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));\n\n      _this._lineDraw.updateLayout();\n\n      api.updateLabelLayout();\n    });\n  };\n\n  GraphView.prototype._updateNodeAndLinkScale = function () {\n    var seriesModel = this._model;\n    var data = seriesModel.getData();\n    var nodeScale = getNodeGlobalScale(seriesModel);\n    data.eachItemGraphicEl(function (el, idx) {\n      el.setSymbolScale(nodeScale);\n    });\n  };\n\n  GraphView.prototype.updateLayout = function (seriesModel) {\n    adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));\n\n    this._symbolDraw.updateLayout();\n\n    this._lineDraw.updateLayout();\n  };\n\n  GraphView.prototype.remove = function (ecModel, api) {\n    this._symbolDraw && this._symbolDraw.remove();\n    this._lineDraw && this._lineDraw.remove();\n  };\n\n  GraphView.type = 'graph';\n  return GraphView;\n}(ChartView);\n\nexport default GraphView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nfunction generateNodeKey(id) {\n  return '_EC_' + id;\n}\n\nvar Graph = function () {\n  function Graph(directed) {\n    this.type = 'graph';\n    this.nodes = [];\n    this.edges = [];\n    this._nodesMap = {};\n    this._edgesMap = {};\n    this._directed = directed || false;\n  }\n\n  Graph.prototype.isDirected = function () {\n    return this._directed;\n  };\n\n  ;\n\n  Graph.prototype.addNode = function (id, dataIndex) {\n    id = id == null ? '' + dataIndex : '' + id;\n    var nodesMap = this._nodesMap;\n\n    if (nodesMap[generateNodeKey(id)]) {\n      if (process.env.NODE_ENV !== 'production') {\n        console.error('Graph nodes have duplicate name or id');\n      }\n\n      return;\n    }\n\n    var node = new GraphNode(id, dataIndex);\n    node.hostGraph = this;\n    this.nodes.push(node);\n    nodesMap[generateNodeKey(id)] = node;\n    return node;\n  };\n\n  ;\n\n  Graph.prototype.getNodeByIndex = function (dataIndex) {\n    var rawIdx = this.data.getRawIndex(dataIndex);\n    return this.nodes[rawIdx];\n  };\n\n  ;\n\n  Graph.prototype.getNodeById = function (id) {\n    return this._nodesMap[generateNodeKey(id)];\n  };\n\n  ;\n\n  Graph.prototype.addEdge = function (n1, n2, dataIndex) {\n    var nodesMap = this._nodesMap;\n    var edgesMap = this._edgesMap;\n\n    if (typeof n1 === 'number') {\n      n1 = this.nodes[n1];\n    }\n\n    if (typeof n2 === 'number') {\n      n2 = this.nodes[n2];\n    }\n\n    if (!(n1 instanceof GraphNode)) {\n      n1 = nodesMap[generateNodeKey(n1)];\n    }\n\n    if (!(n2 instanceof GraphNode)) {\n      n2 = nodesMap[generateNodeKey(n2)];\n    }\n\n    if (!n1 || !n2) {\n      return;\n    }\n\n    var key = n1.id + '-' + n2.id;\n    var edge = new GraphEdge(n1, n2, dataIndex);\n    edge.hostGraph = this;\n\n    if (this._directed) {\n      n1.outEdges.push(edge);\n      n2.inEdges.push(edge);\n    }\n\n    n1.edges.push(edge);\n\n    if (n1 !== n2) {\n      n2.edges.push(edge);\n    }\n\n    this.edges.push(edge);\n    edgesMap[key] = edge;\n    return edge;\n  };\n\n  ;\n\n  Graph.prototype.getEdgeByIndex = function (dataIndex) {\n    var rawIdx = this.edgeData.getRawIndex(dataIndex);\n    return this.edges[rawIdx];\n  };\n\n  ;\n\n  Graph.prototype.getEdge = function (n1, n2) {\n    if (n1 instanceof GraphNode) {\n      n1 = n1.id;\n    }\n\n    if (n2 instanceof GraphNode) {\n      n2 = n2.id;\n    }\n\n    var edgesMap = this._edgesMap;\n\n    if (this._directed) {\n      return edgesMap[n1 + '-' + n2];\n    } else {\n      return edgesMap[n1 + '-' + n2] || edgesMap[n2 + '-' + n1];\n    }\n  };\n\n  ;\n\n  Graph.prototype.eachNode = function (cb, context) {\n    var nodes = this.nodes;\n    var len = nodes.length;\n\n    for (var i = 0; i < len; i++) {\n      if (nodes[i].dataIndex >= 0) {\n        cb.call(context, nodes[i], i);\n      }\n    }\n  };\n\n  ;\n\n  Graph.prototype.eachEdge = function (cb, context) {\n    var edges = this.edges;\n    var len = edges.length;\n\n    for (var i = 0; i < len; i++) {\n      if (edges[i].dataIndex >= 0 && edges[i].node1.dataIndex >= 0 && edges[i].node2.dataIndex >= 0) {\n        cb.call(context, edges[i], i);\n      }\n    }\n  };\n\n  ;\n\n  Graph.prototype.breadthFirstTraverse = function (cb, startNode, direction, context) {\n    if (!(startNode instanceof GraphNode)) {\n      startNode = this._nodesMap[generateNodeKey(startNode)];\n    }\n\n    if (!startNode) {\n      return;\n    }\n\n    var edgeType = direction === 'out' ? 'outEdges' : direction === 'in' ? 'inEdges' : 'edges';\n\n    for (var i = 0; i < this.nodes.length; i++) {\n      this.nodes[i].__visited = false;\n    }\n\n    if (cb.call(context, startNode, null)) {\n      return;\n    }\n\n    var queue = [startNode];\n\n    while (queue.length) {\n      var currentNode = queue.shift();\n      var edges = currentNode[edgeType];\n\n      for (var i = 0; i < edges.length; i++) {\n        var e = edges[i];\n        var otherNode = e.node1 === currentNode ? e.node2 : e.node1;\n\n        if (!otherNode.__visited) {\n          if (cb.call(context, otherNode, currentNode)) {\n            return;\n          }\n\n          queue.push(otherNode);\n          otherNode.__visited = true;\n        }\n      }\n    }\n  };\n\n  ;\n\n  Graph.prototype.update = function () {\n    var data = this.data;\n    var edgeData = this.edgeData;\n    var nodes = this.nodes;\n    var edges = this.edges;\n\n    for (var i = 0, len = nodes.length; i < len; i++) {\n      nodes[i].dataIndex = -1;\n    }\n\n    for (var i = 0, len = data.count(); i < len; i++) {\n      nodes[data.getRawIndex(i)].dataIndex = i;\n    }\n\n    edgeData.filterSelf(function (idx) {\n      var edge = edges[edgeData.getRawIndex(idx)];\n      return edge.node1.dataIndex >= 0 && edge.node2.dataIndex >= 0;\n    });\n\n    for (var i = 0, len = edges.length; i < len; i++) {\n      edges[i].dataIndex = -1;\n    }\n\n    for (var i = 0, len = edgeData.count(); i < len; i++) {\n      edges[edgeData.getRawIndex(i)].dataIndex = i;\n    }\n  };\n\n  ;\n\n  Graph.prototype.clone = function () {\n    var graph = new Graph(this._directed);\n    var nodes = this.nodes;\n    var edges = this.edges;\n\n    for (var i = 0; i < nodes.length; i++) {\n      graph.addNode(nodes[i].id, nodes[i].dataIndex);\n    }\n\n    for (var i = 0; i < edges.length; i++) {\n      var e = edges[i];\n      graph.addEdge(e.node1.id, e.node2.id, e.dataIndex);\n    }\n\n    return graph;\n  };\n\n  ;\n  return Graph;\n}();\n\nvar GraphNode = function () {\n  function GraphNode(id, dataIndex) {\n    this.inEdges = [];\n    this.outEdges = [];\n    this.edges = [];\n    this.dataIndex = -1;\n    this.id = id == null ? '' : id;\n    this.dataIndex = dataIndex == null ? -1 : dataIndex;\n  }\n\n  GraphNode.prototype.degree = function () {\n    return this.edges.length;\n  };\n\n  GraphNode.prototype.inDegree = function () {\n    return this.inEdges.length;\n  };\n\n  GraphNode.prototype.outDegree = function () {\n    return this.outEdges.length;\n  };\n\n  GraphNode.prototype.getModel = function (path) {\n    if (this.dataIndex < 0) {\n      return;\n    }\n\n    var graph = this.hostGraph;\n    var itemModel = graph.data.getItemModel(this.dataIndex);\n    return itemModel.getModel(path);\n  };\n\n  GraphNode.prototype.getAdjacentDataIndices = function () {\n    var dataIndices = {\n      edge: [],\n      node: []\n    };\n\n    for (var i = 0; i < this.edges.length; i++) {\n      var adjacentEdge = this.edges[i];\n\n      if (adjacentEdge.dataIndex < 0) {\n        continue;\n      }\n\n      dataIndices.edge.push(adjacentEdge.dataIndex);\n      dataIndices.node.push(adjacentEdge.node1.dataIndex, adjacentEdge.node2.dataIndex);\n    }\n\n    return dataIndices;\n  };\n\n  return GraphNode;\n}();\n\nvar GraphEdge = function () {\n  function GraphEdge(n1, n2, dataIndex) {\n    this.dataIndex = -1;\n    this.node1 = n1;\n    this.node2 = n2;\n    this.dataIndex = dataIndex == null ? -1 : dataIndex;\n  }\n\n  GraphEdge.prototype.getModel = function (path) {\n    if (this.dataIndex < 0) {\n      return;\n    }\n\n    var graph = this.hostGraph;\n    var itemModel = graph.edgeData.getItemModel(this.dataIndex);\n    return itemModel.getModel(path);\n  };\n\n  GraphEdge.prototype.getAdjacentDataIndices = function () {\n    return {\n      edge: [this.dataIndex],\n      node: [this.node1.dataIndex, this.node2.dataIndex]\n    };\n  };\n\n  return GraphEdge;\n}();\n\nfunction createGraphDataProxyMixin(hostName, dataName) {\n  return {\n    getValue: function (dimension) {\n      var data = this[hostName][dataName];\n      return data.get(data.getDimension(dimension || 'value'), this.dataIndex);\n    },\n    setVisual: function (key, value) {\n      this.dataIndex >= 0 && this[hostName][dataName].setItemVisual(this.dataIndex, key, value);\n    },\n    getVisual: function (key) {\n      return this[hostName][dataName].getItemVisual(this.dataIndex, key);\n    },\n    setLayout: function (layout, merge) {\n      this.dataIndex >= 0 && this[hostName][dataName].setItemLayout(this.dataIndex, layout, merge);\n    },\n    getLayout: function () {\n      return this[hostName][dataName].getItemLayout(this.dataIndex);\n    },\n    getGraphicEl: function () {\n      return this[hostName][dataName].getItemGraphicEl(this.dataIndex);\n    },\n    getRawIndex: function () {\n      return this[hostName][dataName].getRawIndex(this.dataIndex);\n    }\n  };\n}\n\n;\n;\n;\nzrUtil.mixin(GraphNode, createGraphDataProxyMixin('hostGraph', 'data'));\nzrUtil.mixin(GraphEdge, createGraphDataProxyMixin('hostGraph', 'edgeData'));\nexport default Graph;\nexport { GraphNode, GraphEdge };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport List from '../../data/List';\nimport Graph from '../../data/Graph';\nimport linkList from '../../data/helper/linkList';\nimport createDimensions from '../../data/helper/createDimensions';\nimport CoordinateSystem from '../../core/CoordinateSystem';\nimport createListFromArray from './createListFromArray';\nimport { convertOptionIdName } from '../../util/model';\nexport default function createGraphFromNodeEdge(nodes, edges, seriesModel, directed, beforeLink) {\n  var graph = new Graph(directed);\n\n  for (var i = 0; i < nodes.length; i++) {\n    graph.addNode(zrUtil.retrieve(nodes[i].id, nodes[i].name, i), i);\n  }\n\n  var linkNameList = [];\n  var validEdges = [];\n  var linkCount = 0;\n\n  for (var i = 0; i < edges.length; i++) {\n    var link = edges[i];\n    var source = link.source;\n    var target = link.target;\n\n    if (graph.addEdge(source, target, linkCount)) {\n      validEdges.push(link);\n      linkNameList.push(zrUtil.retrieve(convertOptionIdName(link.id, null), source + ' > ' + target));\n      linkCount++;\n    }\n  }\n\n  var coordSys = seriesModel.get('coordinateSystem');\n  var nodeData;\n\n  if (coordSys === 'cartesian2d' || coordSys === 'polar') {\n    nodeData = createListFromArray(nodes, seriesModel);\n  } else {\n    var coordSysCtor = CoordinateSystem.get(coordSys);\n    var coordDimensions = coordSysCtor ? coordSysCtor.dimensions || [] : [];\n\n    if (zrUtil.indexOf(coordDimensions, 'value') < 0) {\n      coordDimensions.concat(['value']);\n    }\n\n    var dimensionNames = createDimensions(nodes, {\n      coordDimensions: coordDimensions\n    });\n    nodeData = new List(dimensionNames, seriesModel);\n    nodeData.initData(nodes);\n  }\n\n  var edgeData = new List(['value'], seriesModel);\n  edgeData.initData(validEdges, linkNameList);\n  beforeLink && beforeLink(nodeData, edgeData);\n  linkList({\n    mainData: nodeData,\n    struct: graph,\n    structAttr: 'graph',\n    datas: {\n      node: nodeData,\n      edge: edgeData\n    },\n    datasAttr: {\n      node: 'data',\n      edge: 'edgeData'\n    }\n  });\n  graph.update();\n  return graph;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport List from '../../data/List';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { defaultEmphasis } from '../../util/model';\nimport Model from '../../model/Model';\nimport createGraphFromNodeEdge from '../helper/createGraphFromNodeEdge';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider';\nimport SeriesModel from '../../model/Series';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup';\nimport { defaultSeriesFormatTooltip } from '../../component/tooltip/seriesFormatTooltip';\nimport { initCurvenessList, createEdgeMapForCurveness } from '../helper/multipleGraphEdgeHelper';\n\nvar GraphSeriesModel = function (_super) {\n  __extends(GraphSeriesModel, _super);\n\n  function GraphSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GraphSeriesModel.type;\n    _this.hasSymbolVisual = true;\n    return _this;\n  }\n\n  GraphSeriesModel.prototype.init = function (option) {\n    _super.prototype.init.apply(this, arguments);\n\n    var self = this;\n\n    function getCategoriesData() {\n      return self._categoriesData;\n    }\n\n    this.legendVisualProvider = new LegendVisualProvider(getCategoriesData, getCategoriesData);\n    this.fillDataTextStyle(option.edges || option.links);\n\n    this._updateCategoriesData();\n  };\n\n  GraphSeriesModel.prototype.mergeOption = function (option) {\n    _super.prototype.mergeOption.apply(this, arguments);\n\n    this.fillDataTextStyle(option.edges || option.links);\n\n    this._updateCategoriesData();\n  };\n\n  GraphSeriesModel.prototype.mergeDefaultAndTheme = function (option) {\n    _super.prototype.mergeDefaultAndTheme.apply(this, arguments);\n\n    defaultEmphasis(option, 'edgeLabel', ['show']);\n  };\n\n  GraphSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    var edges = option.edges || option.links || [];\n    var nodes = option.data || option.nodes || [];\n    var self = this;\n\n    if (nodes && edges) {\n      initCurvenessList(this);\n      var graph = createGraphFromNodeEdge(nodes, edges, this, true, beforeLink);\n      zrUtil.each(graph.edges, function (edge) {\n        createEdgeMapForCurveness(edge.node1, edge.node2, this, edge.dataIndex);\n      }, this);\n      return graph.data;\n    }\n\n    function beforeLink(nodeData, edgeData) {\n      nodeData.wrapMethod('getItemModel', function (model) {\n        var categoriesModels = self._categoriesModels;\n        var categoryIdx = model.getShallow('category');\n        var categoryModel = categoriesModels[categoryIdx];\n\n        if (categoryModel) {\n          categoryModel.parentModel = model.parentModel;\n          model.parentModel = categoryModel;\n        }\n\n        return model;\n      });\n      var oldGetModel = Model.prototype.getModel;\n\n      function newGetModel(path, parentModel) {\n        var model = oldGetModel.call(this, path, parentModel);\n        model.resolveParentPath = resolveParentPath;\n        return model;\n      }\n\n      edgeData.wrapMethod('getItemModel', function (model) {\n        model.resolveParentPath = resolveParentPath;\n        model.getModel = newGetModel;\n        return model;\n      });\n\n      function resolveParentPath(pathArr) {\n        if (pathArr && (pathArr[0] === 'label' || pathArr[1] === 'label')) {\n          var newPathArr = pathArr.slice();\n\n          if (pathArr[0] === 'label') {\n            newPathArr[0] = 'edgeLabel';\n          } else if (pathArr[1] === 'label') {\n            newPathArr[1] = 'edgeLabel';\n          }\n\n          return newPathArr;\n        }\n\n        return pathArr;\n      }\n    }\n  };\n\n  GraphSeriesModel.prototype.getGraph = function () {\n    return this.getData().graph;\n  };\n\n  GraphSeriesModel.prototype.getEdgeData = function () {\n    return this.getGraph().edgeData;\n  };\n\n  GraphSeriesModel.prototype.getCategoriesData = function () {\n    return this._categoriesData;\n  };\n\n  GraphSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    if (dataType === 'edge') {\n      var nodeData = this.getData();\n      var params = this.getDataParams(dataIndex, dataType);\n      var edge = nodeData.graph.getEdgeByIndex(dataIndex);\n      var sourceName = nodeData.getName(edge.node1.dataIndex);\n      var targetName = nodeData.getName(edge.node2.dataIndex);\n      var nameArr = [];\n      sourceName != null && nameArr.push(sourceName);\n      targetName != null && nameArr.push(targetName);\n      return createTooltipMarkup('nameValue', {\n        name: nameArr.join(' > '),\n        value: params.value,\n        noValue: params.value == null\n      });\n    }\n\n    var nodeMarkup = defaultSeriesFormatTooltip({\n      series: this,\n      dataIndex: dataIndex,\n      multipleSeries: multipleSeries\n    });\n    return nodeMarkup;\n  };\n\n  GraphSeriesModel.prototype._updateCategoriesData = function () {\n    var categories = zrUtil.map(this.option.categories || [], function (category) {\n      return category.value != null ? category : zrUtil.extend({\n        value: 0\n      }, category);\n    });\n    var categoriesData = new List(['value'], this);\n    categoriesData.initData(categories);\n    this._categoriesData = categoriesData;\n    this._categoriesModels = categoriesData.mapArray(function (idx) {\n      return categoriesData.getItemModel(idx);\n    });\n  };\n\n  GraphSeriesModel.prototype.setZoom = function (zoom) {\n    this.option.zoom = zoom;\n  };\n\n  GraphSeriesModel.prototype.setCenter = function (center) {\n    this.option.center = center;\n  };\n\n  GraphSeriesModel.prototype.isAnimationEnabled = function () {\n    return _super.prototype.isAnimationEnabled.call(this) && !(this.get('layout') === 'force' && this.get(['force', 'layoutAnimation']));\n  };\n\n  GraphSeriesModel.type = 'series.graph';\n  GraphSeriesModel.dependencies = ['grid', 'polar', 'geo', 'singleAxis', 'calendar'];\n  GraphSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'view',\n    legendHoverLink: true,\n    layout: null,\n    focusNodeAdjacency: false,\n    circular: {\n      rotateLabel: false\n    },\n    force: {\n      initLayout: null,\n      repulsion: [0, 50],\n      gravity: 0.1,\n      friction: 0.6,\n      edgeLength: 30,\n      layoutAnimation: true\n    },\n    left: 'center',\n    top: 'center',\n    symbol: 'circle',\n    symbolSize: 10,\n    edgeSymbol: ['none', 'none'],\n    edgeSymbolSize: 10,\n    edgeLabel: {\n      position: 'middle',\n      distance: 5\n    },\n    draggable: false,\n    roam: false,\n    center: null,\n    zoom: 1,\n    nodeScaleRatio: 0.6,\n    label: {\n      show: false,\n      formatter: '{b}'\n    },\n    itemStyle: {},\n    lineStyle: {\n      color: '#aaa',\n      width: 1,\n      opacity: 0.5\n    },\n    emphasis: {\n      scale: true,\n      label: {\n        show: true\n      }\n    },\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    }\n  };\n  return GraphSeriesModel;\n}(SeriesModel);\n\nexport default GraphSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport categoryFilter from './categoryFilter';\nimport categoryVisual from './categoryVisual';\nimport edgeVisual from './edgeVisual';\nimport simpleLayout from './simpleLayout';\nimport circularLayout from './circularLayout';\nimport forceLayout from './forceLayout';\nimport createView from './createView';\nimport View from '../../coord/View';\nimport GraphView from './GraphView';\nimport GraphSeriesModel from './GraphSeries';\nimport { updateCenterAndZoom } from '../../action/roamHelper';\nvar actionInfo = {\n  type: 'graphRoam',\n  event: 'graphRoam',\n  update: 'none'\n};\nexport function install(registers) {\n  registers.registerChartView(GraphView);\n  registers.registerSeriesModel(GraphSeriesModel);\n  registers.registerProcessor(categoryFilter);\n  registers.registerVisual(categoryVisual);\n  registers.registerVisual(edgeVisual);\n  registers.registerLayout(simpleLayout);\n  registers.registerLayout(registers.PRIORITY.VISUAL.POST_CHART_LAYOUT, circularLayout);\n  registers.registerLayout(forceLayout);\n  registers.registerCoordinateSystem('graphView', {\n    dimensions: View.dimensions,\n    create: createView\n  });\n  registers.registerAction({\n    type: 'focusNodeAdjacency',\n    event: 'focusNodeAdjacency',\n    update: 'series:focusNodeAdjacency'\n  }, function () {});\n  registers.registerAction({\n    type: 'unfocusNodeAdjacency',\n    event: 'unfocusNodeAdjacency',\n    update: 'series:unfocusNodeAdjacency'\n  }, function () {});\n  registers.registerAction(actionInfo, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'series',\n      query: payload\n    }, function (seriesModel) {\n      var coordSys = seriesModel.coordinateSystem;\n      var res = updateCenterAndZoom(coordSys, payload);\n      seriesModel.setCenter && seriesModel.setCenter(res.center);\n      seriesModel.setZoom && seriesModel.setZoom(res.zoom);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Path from 'zrender/lib/graphic/Path';\n\nvar PointerShape = function () {\n  function PointerShape() {\n    this.angle = 0;\n    this.width = 10;\n    this.r = 10;\n    this.x = 0;\n    this.y = 0;\n  }\n\n  return PointerShape;\n}();\n\nvar PointerPath = function (_super) {\n  __extends(PointerPath, _super);\n\n  function PointerPath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'pointer';\n    return _this;\n  }\n\n  PointerPath.prototype.getDefaultShape = function () {\n    return new PointerShape();\n  };\n\n  PointerPath.prototype.buildPath = function (ctx, shape) {\n    var mathCos = Math.cos;\n    var mathSin = Math.sin;\n    var r = shape.r;\n    var width = shape.width;\n    var angle = shape.angle;\n    var x = shape.x - mathCos(angle) * width * (width >= r / 3 ? 1 : 2);\n    var y = shape.y - mathSin(angle) * width * (width >= r / 3 ? 1 : 2);\n    angle = shape.angle - Math.PI / 2;\n    ctx.moveTo(x, y);\n    ctx.lineTo(shape.x + mathCos(angle) * width, shape.y + mathSin(angle) * width);\n    ctx.lineTo(shape.x + mathCos(shape.angle) * r, shape.y + mathSin(shape.angle) * r);\n    ctx.lineTo(shape.x - mathCos(angle) * width, shape.y - mathSin(angle) * width);\n    ctx.lineTo(x, y);\n  };\n\n  return PointerPath;\n}(Path);\n\nexport default PointerPath;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport PointerPath from './PointerPath';\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport { createTextStyle, setLabelValueAnimation, animateLabelValue } from '../../label/labelStyle';\nimport ChartView from '../../view/Chart';\nimport { parsePercent, round, linearMap } from '../../util/number';\nimport Sausage from '../../util/shape/sausage';\nimport { createSymbol } from '../../util/symbol';\n\nfunction parsePosition(seriesModel, api) {\n  var center = seriesModel.get('center');\n  var width = api.getWidth();\n  var height = api.getHeight();\n  var size = Math.min(width, height);\n  var cx = parsePercent(center[0], api.getWidth());\n  var cy = parsePercent(center[1], api.getHeight());\n  var r = parsePercent(seriesModel.get('radius'), size / 2);\n  return {\n    cx: cx,\n    cy: cy,\n    r: r\n  };\n}\n\nfunction formatLabel(value, labelFormatter) {\n  var label = value == null ? '' : value + '';\n\n  if (labelFormatter) {\n    if (typeof labelFormatter === 'string') {\n      label = labelFormatter.replace('{value}', label);\n    } else if (typeof labelFormatter === 'function') {\n      label = labelFormatter(value);\n    }\n  }\n\n  return label;\n}\n\nvar PI2 = Math.PI * 2;\n\nvar GaugeView = function (_super) {\n  __extends(GaugeView, _super);\n\n  function GaugeView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GaugeView.type;\n    return _this;\n  }\n\n  GaugeView.prototype.render = function (seriesModel, ecModel, api) {\n    this.group.removeAll();\n    var colorList = seriesModel.get(['axisLine', 'lineStyle', 'color']);\n    var posInfo = parsePosition(seriesModel, api);\n\n    this._renderMain(seriesModel, ecModel, api, colorList, posInfo);\n\n    this._data = seriesModel.getData();\n  };\n\n  GaugeView.prototype.dispose = function () {};\n\n  GaugeView.prototype._renderMain = function (seriesModel, ecModel, api, colorList, posInfo) {\n    var group = this.group;\n    var clockwise = seriesModel.get('clockwise');\n    var startAngle = -seriesModel.get('startAngle') / 180 * Math.PI;\n    var endAngle = -seriesModel.get('endAngle') / 180 * Math.PI;\n    var axisLineModel = seriesModel.getModel('axisLine');\n    var roundCap = axisLineModel.get('roundCap');\n    var MainPath = roundCap ? Sausage : graphic.Sector;\n    var showAxis = axisLineModel.get('show');\n    var lineStyleModel = axisLineModel.getModel('lineStyle');\n    var axisLineWidth = lineStyleModel.get('width');\n    var angleRangeSpan = !((endAngle - startAngle) % PI2) && endAngle !== startAngle ? PI2 : (endAngle - startAngle) % PI2;\n    var prevEndAngle = startAngle;\n\n    for (var i = 0; showAxis && i < colorList.length; i++) {\n      var percent = Math.min(Math.max(colorList[i][0], 0), 1);\n      endAngle = startAngle + angleRangeSpan * percent;\n      var sector = new MainPath({\n        shape: {\n          startAngle: prevEndAngle,\n          endAngle: endAngle,\n          cx: posInfo.cx,\n          cy: posInfo.cy,\n          clockwise: clockwise,\n          r0: posInfo.r - axisLineWidth,\n          r: posInfo.r\n        },\n        silent: true\n      });\n      sector.setStyle({\n        fill: colorList[i][1]\n      });\n      sector.setStyle(lineStyleModel.getLineStyle(['color', 'width']));\n      group.add(sector);\n      prevEndAngle = endAngle;\n    }\n\n    var getColor = function (percent) {\n      if (percent <= 0) {\n        return colorList[0][1];\n      }\n\n      var i;\n\n      for (i = 0; i < colorList.length; i++) {\n        if (colorList[i][0] >= percent && (i === 0 ? 0 : colorList[i - 1][0]) < percent) {\n          return colorList[i][1];\n        }\n      }\n\n      return colorList[i - 1][1];\n    };\n\n    if (!clockwise) {\n      var tmp = startAngle;\n      startAngle = endAngle;\n      endAngle = tmp;\n    }\n\n    this._renderTicks(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth);\n\n    this._renderTitleAndDetail(seriesModel, ecModel, api, getColor, posInfo);\n\n    this._renderAnchor(seriesModel, posInfo);\n\n    this._renderPointer(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth);\n  };\n\n  GaugeView.prototype._renderTicks = function (seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth) {\n    var group = this.group;\n    var cx = posInfo.cx;\n    var cy = posInfo.cy;\n    var r = posInfo.r;\n    var minVal = +seriesModel.get('min');\n    var maxVal = +seriesModel.get('max');\n    var splitLineModel = seriesModel.getModel('splitLine');\n    var tickModel = seriesModel.getModel('axisTick');\n    var labelModel = seriesModel.getModel('axisLabel');\n    var splitNumber = seriesModel.get('splitNumber');\n    var subSplitNumber = tickModel.get('splitNumber');\n    var splitLineLen = parsePercent(splitLineModel.get('length'), r);\n    var tickLen = parsePercent(tickModel.get('length'), r);\n    var angle = startAngle;\n    var step = (endAngle - startAngle) / splitNumber;\n    var subStep = step / subSplitNumber;\n    var splitLineStyle = splitLineModel.getModel('lineStyle').getLineStyle();\n    var tickLineStyle = tickModel.getModel('lineStyle').getLineStyle();\n    var splitLineDistance = splitLineModel.get('distance');\n    var unitX;\n    var unitY;\n\n    for (var i = 0; i <= splitNumber; i++) {\n      unitX = Math.cos(angle);\n      unitY = Math.sin(angle);\n\n      if (splitLineModel.get('show')) {\n        var distance = splitLineDistance ? splitLineDistance + axisLineWidth : axisLineWidth;\n        var splitLine = new graphic.Line({\n          shape: {\n            x1: unitX * (r - distance) + cx,\n            y1: unitY * (r - distance) + cy,\n            x2: unitX * (r - splitLineLen - distance) + cx,\n            y2: unitY * (r - splitLineLen - distance) + cy\n          },\n          style: splitLineStyle,\n          silent: true\n        });\n\n        if (splitLineStyle.stroke === 'auto') {\n          splitLine.setStyle({\n            stroke: getColor(i / splitNumber)\n          });\n        }\n\n        group.add(splitLine);\n      }\n\n      if (labelModel.get('show')) {\n        var distance = labelModel.get('distance') + splitLineDistance;\n        var label = formatLabel(round(i / splitNumber * (maxVal - minVal) + minVal), labelModel.get('formatter'));\n        var autoColor = getColor(i / splitNumber);\n        group.add(new graphic.Text({\n          style: createTextStyle(labelModel, {\n            text: label,\n            x: unitX * (r - splitLineLen - distance) + cx,\n            y: unitY * (r - splitLineLen - distance) + cy,\n            verticalAlign: unitY < -0.8 ? 'top' : unitY > 0.8 ? 'bottom' : 'middle',\n            align: unitX < -0.4 ? 'left' : unitX > 0.4 ? 'right' : 'center'\n          }, {\n            inheritColor: autoColor\n          }),\n          silent: true\n        }));\n      }\n\n      if (tickModel.get('show') && i !== splitNumber) {\n        var distance = tickModel.get('distance');\n        distance = distance ? distance + axisLineWidth : axisLineWidth;\n\n        for (var j = 0; j <= subSplitNumber; j++) {\n          unitX = Math.cos(angle);\n          unitY = Math.sin(angle);\n          var tickLine = new graphic.Line({\n            shape: {\n              x1: unitX * (r - distance) + cx,\n              y1: unitY * (r - distance) + cy,\n              x2: unitX * (r - tickLen - distance) + cx,\n              y2: unitY * (r - tickLen - distance) + cy\n            },\n            silent: true,\n            style: tickLineStyle\n          });\n\n          if (tickLineStyle.stroke === 'auto') {\n            tickLine.setStyle({\n              stroke: getColor((i + j / subSplitNumber) / splitNumber)\n            });\n          }\n\n          group.add(tickLine);\n          angle += subStep;\n        }\n\n        angle -= subStep;\n      } else {\n        angle += step;\n      }\n    }\n  };\n\n  GaugeView.prototype._renderPointer = function (seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth) {\n    var group = this.group;\n    var oldData = this._data;\n    var oldProgressData = this._progressEls;\n    var progressList = [];\n    var showPointer = seriesModel.get(['pointer', 'show']);\n    var progressModel = seriesModel.getModel('progress');\n    var showProgress = progressModel.get('show');\n    var data = seriesModel.getData();\n    var valueDim = data.mapDimension('value');\n    var minVal = +seriesModel.get('min');\n    var maxVal = +seriesModel.get('max');\n    var valueExtent = [minVal, maxVal];\n    var angleExtent = [startAngle, endAngle];\n\n    function createPointer(idx, angle) {\n      var itemModel = data.getItemModel(idx);\n      var pointerModel = itemModel.getModel('pointer');\n      var pointerWidth = parsePercent(pointerModel.get('width'), posInfo.r);\n      var pointerLength = parsePercent(pointerModel.get('length'), posInfo.r);\n      var pointerStr = seriesModel.get(['pointer', 'icon']);\n      var pointerOffset = pointerModel.get('offsetCenter');\n      var pointerOffsetX = parsePercent(pointerOffset[0], posInfo.r);\n      var pointerOffsetY = parsePercent(pointerOffset[1], posInfo.r);\n      var pointerKeepAspect = pointerModel.get('keepAspect');\n      var pointer;\n\n      if (pointerStr) {\n        pointer = createSymbol(pointerStr, pointerOffsetX - pointerWidth / 2, pointerOffsetY - pointerLength, pointerWidth, pointerLength, null, pointerKeepAspect);\n      } else {\n        pointer = new PointerPath({\n          shape: {\n            angle: -Math.PI / 2,\n            width: pointerWidth,\n            r: pointerLength,\n            x: pointerOffsetX,\n            y: pointerOffsetY\n          }\n        });\n      }\n\n      pointer.rotation = -(angle + Math.PI / 2);\n      pointer.x = posInfo.cx;\n      pointer.y = posInfo.cy;\n      return pointer;\n    }\n\n    function createProgress(idx, endAngle) {\n      var roundCap = progressModel.get('roundCap');\n      var ProgressPath = roundCap ? Sausage : graphic.Sector;\n      var isOverlap = progressModel.get('overlap');\n      var progressWidth = isOverlap ? progressModel.get('width') : axisLineWidth / data.count();\n      var r0 = isOverlap ? posInfo.r - progressWidth : posInfo.r - (idx + 1) * progressWidth;\n      var r = isOverlap ? posInfo.r : posInfo.r - idx * progressWidth;\n      var progress = new ProgressPath({\n        shape: {\n          startAngle: startAngle,\n          endAngle: endAngle,\n          cx: posInfo.cx,\n          cy: posInfo.cy,\n          clockwise: clockwise,\n          r0: r0,\n          r: r\n        }\n      });\n      isOverlap && (progress.z2 = maxVal - data.get(valueDim, idx) % maxVal);\n      return progress;\n    }\n\n    if (showProgress || showPointer) {\n      data.diff(oldData).add(function (idx) {\n        if (showPointer) {\n          var pointer = createPointer(idx, startAngle);\n          graphic.initProps(pointer, {\n            rotation: -(linearMap(data.get(valueDim, idx), valueExtent, angleExtent, true) + Math.PI / 2)\n          }, seriesModel);\n          group.add(pointer);\n          data.setItemGraphicEl(idx, pointer);\n        }\n\n        if (showProgress) {\n          var progress = createProgress(idx, startAngle);\n          var isClip = progressModel.get('clip');\n          graphic.initProps(progress, {\n            shape: {\n              endAngle: linearMap(data.get(valueDim, idx), valueExtent, angleExtent, isClip)\n            }\n          }, seriesModel);\n          group.add(progress);\n          progressList[idx] = progress;\n        }\n      }).update(function (newIdx, oldIdx) {\n        if (showPointer) {\n          var previousPointer = oldData.getItemGraphicEl(oldIdx);\n          var previousRotate = previousPointer ? previousPointer.rotation : startAngle;\n          var pointer = createPointer(newIdx, previousRotate);\n          pointer.rotation = previousRotate;\n          graphic.updateProps(pointer, {\n            rotation: -(linearMap(data.get(valueDim, newIdx), valueExtent, angleExtent, true) + Math.PI / 2)\n          }, seriesModel);\n          group.add(pointer);\n          data.setItemGraphicEl(newIdx, pointer);\n        }\n\n        if (showProgress) {\n          var previousProgress = oldProgressData[oldIdx];\n          var previousEndAngle = previousProgress ? previousProgress.shape.endAngle : startAngle;\n          var progress = createProgress(newIdx, previousEndAngle);\n          var isClip = progressModel.get('clip');\n          graphic.updateProps(progress, {\n            shape: {\n              endAngle: linearMap(data.get(valueDim, newIdx), valueExtent, angleExtent, isClip)\n            }\n          }, seriesModel);\n          group.add(progress);\n          progressList[newIdx] = progress;\n        }\n      }).execute();\n      data.each(function (idx) {\n        var itemModel = data.getItemModel(idx);\n        var emphasisModel = itemModel.getModel('emphasis');\n\n        if (showPointer) {\n          var pointer = data.getItemGraphicEl(idx);\n          pointer.useStyle(data.getItemVisual(idx, 'style'));\n          pointer.setStyle(itemModel.getModel(['pointer', 'itemStyle']).getItemStyle());\n\n          if (pointer.style.fill === 'auto') {\n            pointer.setStyle('fill', getColor(linearMap(data.get(valueDim, idx), valueExtent, [0, 1], true)));\n          }\n\n          pointer.z2EmphasisLift = 0;\n          setStatesStylesFromModel(pointer, itemModel);\n          enableHoverEmphasis(pointer, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n        }\n\n        if (showProgress) {\n          var progress = progressList[idx];\n          progress.useStyle(data.getItemVisual(idx, 'style'));\n          progress.setStyle(itemModel.getModel(['progress', 'itemStyle']).getItemStyle());\n          progress.z2EmphasisLift = 0;\n          setStatesStylesFromModel(progress, itemModel);\n          enableHoverEmphasis(progress, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n        }\n      });\n      this._progressEls = progressList;\n    }\n  };\n\n  GaugeView.prototype._renderAnchor = function (seriesModel, posInfo) {\n    var anchorModel = seriesModel.getModel('anchor');\n    var showAnchor = anchorModel.get('show');\n\n    if (showAnchor) {\n      var anchorSize = anchorModel.get('size');\n      var anchorType = anchorModel.get('icon');\n      var offsetCenter = anchorModel.get('offsetCenter');\n      var anchorKeepAspect = anchorModel.get('keepAspect');\n      var anchor = createSymbol(anchorType, posInfo.cx - anchorSize / 2 + parsePercent(offsetCenter[0], posInfo.r), posInfo.cy - anchorSize / 2 + parsePercent(offsetCenter[1], posInfo.r), anchorSize, anchorSize, null, anchorKeepAspect);\n      anchor.z2 = anchorModel.get('showAbove') ? 1 : 0;\n      anchor.setStyle(anchorModel.getModel('itemStyle').getItemStyle());\n      this.group.add(anchor);\n    }\n  };\n\n  GaugeView.prototype._renderTitleAndDetail = function (seriesModel, ecModel, api, getColor, posInfo) {\n    var _this = this;\n\n    var data = seriesModel.getData();\n    var valueDim = data.mapDimension('value');\n    var minVal = +seriesModel.get('min');\n    var maxVal = +seriesModel.get('max');\n    var contentGroup = new graphic.Group();\n    var newTitleEls = [];\n    var newDetailEls = [];\n    var hasAnimation = seriesModel.isAnimationEnabled();\n    data.diff(this._data).add(function (idx) {\n      newTitleEls[idx] = new graphic.Text({\n        silent: true\n      });\n      newDetailEls[idx] = new graphic.Text({\n        silent: true\n      });\n    }).update(function (idx, oldIdx) {\n      newTitleEls[idx] = _this._titleEls[oldIdx];\n      newDetailEls[idx] = _this._detailEls[oldIdx];\n    }).execute();\n    data.each(function (idx) {\n      var itemModel = data.getItemModel(idx);\n      var value = data.get(valueDim, idx);\n      var itemGroup = new graphic.Group();\n      var autoColor = getColor(linearMap(value, [minVal, maxVal], [0, 1], true));\n      var itemTitleModel = itemModel.getModel('title');\n\n      if (itemTitleModel.get('show')) {\n        var titleOffsetCenter = itemTitleModel.get('offsetCenter');\n        var titleX = posInfo.cx + parsePercent(titleOffsetCenter[0], posInfo.r);\n        var titleY = posInfo.cy + parsePercent(titleOffsetCenter[1], posInfo.r);\n        var labelEl = newTitleEls[idx];\n        labelEl.attr({\n          style: createTextStyle(itemTitleModel, {\n            x: titleX,\n            y: titleY,\n            text: data.getName(idx),\n            align: 'center',\n            verticalAlign: 'middle'\n          }, {\n            inheritColor: autoColor\n          })\n        });\n        itemGroup.add(labelEl);\n      }\n\n      var itemDetailModel = itemModel.getModel('detail');\n\n      if (itemDetailModel.get('show')) {\n        var detailOffsetCenter = itemDetailModel.get('offsetCenter');\n        var detailX = posInfo.cx + parsePercent(detailOffsetCenter[0], posInfo.r);\n        var detailY = posInfo.cy + parsePercent(detailOffsetCenter[1], posInfo.r);\n        var width = parsePercent(itemDetailModel.get('width'), posInfo.r);\n        var height = parsePercent(itemDetailModel.get('height'), posInfo.r);\n        var detailColor = seriesModel.get(['progress', 'show']) ? data.getItemVisual(idx, 'style').fill : autoColor;\n        var labelEl = newDetailEls[idx];\n        var formatter_1 = itemDetailModel.get('formatter');\n        labelEl.attr({\n          style: createTextStyle(itemDetailModel, {\n            x: detailX,\n            y: detailY,\n            text: formatLabel(value, formatter_1),\n            width: isNaN(width) ? null : width,\n            height: isNaN(height) ? null : height,\n            align: 'center',\n            verticalAlign: 'middle'\n          }, {\n            inheritColor: detailColor\n          })\n        });\n        setLabelValueAnimation(labelEl, {\n          normal: itemDetailModel\n        }, value, function (value) {\n          return formatLabel(value, formatter_1);\n        });\n        hasAnimation && animateLabelValue(labelEl, idx, data, seriesModel, {\n          getFormattedLabel: function (labelDataIndex, status, dataType, labelDimIndex, fmt, extendParams) {\n            return formatLabel(extendParams ? extendParams.interpolatedValue : value, formatter_1);\n          }\n        });\n        itemGroup.add(labelEl);\n      }\n\n      contentGroup.add(itemGroup);\n    });\n    this.group.add(contentGroup);\n    this._titleEls = newTitleEls;\n    this._detailEls = newDetailEls;\n  };\n\n  GaugeView.type = 'gauge';\n  return GaugeView;\n}(ChartView);\n\nexport default GaugeView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListSimply from '../helper/createListSimply';\nimport SeriesModel from '../../model/Series';\n\nvar GaugeSeriesModel = function (_super) {\n  __extends(GaugeSeriesModel, _super);\n\n  function GaugeSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GaugeSeriesModel.type;\n    _this.visualStyleAccessPath = 'itemStyle';\n    _this.useColorPaletteOnData = true;\n    return _this;\n  }\n\n  GaugeSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListSimply(this, ['value']);\n  };\n\n  GaugeSeriesModel.type = 'series.gauge';\n  GaugeSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    center: ['50%', '50%'],\n    legendHoverLink: true,\n    radius: '75%',\n    startAngle: 225,\n    endAngle: -45,\n    clockwise: true,\n    min: 0,\n    max: 100,\n    splitNumber: 10,\n    axisLine: {\n      show: true,\n      roundCap: false,\n      lineStyle: {\n        color: [[1, '#E6EBF8']],\n        width: 10\n      }\n    },\n    progress: {\n      show: false,\n      overlap: true,\n      width: 10,\n      roundCap: false,\n      clip: true\n    },\n    splitLine: {\n      show: true,\n      length: 10,\n      distance: 10,\n      lineStyle: {\n        color: '#63677A',\n        width: 3,\n        type: 'solid'\n      }\n    },\n    axisTick: {\n      show: true,\n      splitNumber: 5,\n      length: 6,\n      distance: 10,\n      lineStyle: {\n        color: '#63677A',\n        width: 1,\n        type: 'solid'\n      }\n    },\n    axisLabel: {\n      show: true,\n      distance: 15,\n      color: '#464646',\n      fontSize: 12\n    },\n    pointer: {\n      icon: null,\n      offsetCenter: [0, 0],\n      show: true,\n      length: '60%',\n      width: 6,\n      keepAspect: false\n    },\n    anchor: {\n      show: false,\n      showAbove: false,\n      size: 6,\n      icon: 'circle',\n      offsetCenter: [0, 0],\n      keepAspect: false,\n      itemStyle: {\n        color: '#fff',\n        borderWidth: 0,\n        borderColor: '#5470c6'\n      }\n    },\n    title: {\n      show: true,\n      offsetCenter: [0, '20%'],\n      color: '#464646',\n      fontSize: 16,\n      valueAnimation: false\n    },\n    detail: {\n      show: true,\n      backgroundColor: 'rgba(0,0,0,0)',\n      borderWidth: 0,\n      borderColor: '#ccc',\n      width: 100,\n      height: null,\n      padding: [5, 10],\n      offsetCenter: [0, '40%'],\n      color: '#464646',\n      fontSize: 30,\n      fontWeight: 'bold',\n      lineHeight: 30,\n      valueAnimation: false\n    }\n  };\n  return GaugeSeriesModel;\n}(SeriesModel);\n\nexport default GaugeSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport GaugeView from './GaugeView';\nimport GaugeSeriesModel from './GaugeSeries';\nexport function install(registers) {\n  registers.registerChartView(GaugeView);\n  registers.registerSeriesModel(GaugeSeriesModel);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport ChartView from '../../view/Chart';\nimport { setLabelLineStyle, getLabelLineStatesModels } from '../../label/labelGuideHelper';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nvar opacityAccessPath = ['itemStyle', 'opacity'];\n\nvar FunnelPiece = function (_super) {\n  __extends(FunnelPiece, _super);\n\n  function FunnelPiece(data, idx) {\n    var _this = _super.call(this) || this;\n\n    var polygon = _this;\n    var labelLine = new graphic.Polyline();\n    var text = new graphic.Text();\n    polygon.setTextContent(text);\n\n    _this.setTextGuideLine(labelLine);\n\n    _this.updateData(data, idx, true);\n\n    return _this;\n  }\n\n  FunnelPiece.prototype.updateData = function (data, idx, firstCreate) {\n    var polygon = this;\n    var seriesModel = data.hostModel;\n    var itemModel = data.getItemModel(idx);\n    var layout = data.getItemLayout(idx);\n    var emphasisModel = itemModel.getModel('emphasis');\n    var opacity = itemModel.get(opacityAccessPath);\n    opacity = opacity == null ? 1 : opacity;\n    polygon.useStyle(data.getItemVisual(idx, 'style'));\n    polygon.style.lineJoin = 'round';\n\n    if (firstCreate) {\n      polygon.setShape({\n        points: layout.points\n      });\n      polygon.style.opacity = 0;\n      graphic.initProps(polygon, {\n        style: {\n          opacity: opacity\n        }\n      }, seriesModel, idx);\n    } else {\n      graphic.updateProps(polygon, {\n        style: {\n          opacity: opacity\n        },\n        shape: {\n          points: layout.points\n        }\n      }, seriesModel, idx);\n    }\n\n    setStatesStylesFromModel(polygon, itemModel);\n\n    this._updateLabel(data, idx);\n\n    enableHoverEmphasis(this, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n  };\n\n  FunnelPiece.prototype._updateLabel = function (data, idx) {\n    var polygon = this;\n    var labelLine = this.getTextGuideLine();\n    var labelText = polygon.getTextContent();\n    var seriesModel = data.hostModel;\n    var itemModel = data.getItemModel(idx);\n    var layout = data.getItemLayout(idx);\n    var labelLayout = layout.label;\n    var style = data.getItemVisual(idx, 'style');\n    var visualColor = style.fill;\n    setLabelStyle(labelText, getLabelStatesModels(itemModel), {\n      labelFetcher: data.hostModel,\n      labelDataIndex: idx,\n      defaultOpacity: style.opacity,\n      defaultText: data.getName(idx)\n    }, {\n      normal: {\n        align: labelLayout.textAlign,\n        verticalAlign: labelLayout.verticalAlign\n      }\n    });\n    polygon.setTextConfig({\n      local: true,\n      inside: !!labelLayout.inside,\n      insideStroke: visualColor,\n      outsideFill: visualColor\n    });\n    var linePoints = labelLayout.linePoints;\n    labelLine.setShape({\n      points: linePoints\n    });\n    polygon.textGuideLineConfig = {\n      anchor: linePoints ? new graphic.Point(linePoints[0][0], linePoints[0][1]) : null\n    };\n    graphic.updateProps(labelText, {\n      style: {\n        x: labelLayout.x,\n        y: labelLayout.y\n      }\n    }, seriesModel, idx);\n    labelText.attr({\n      rotation: labelLayout.rotation,\n      originX: labelLayout.x,\n      originY: labelLayout.y,\n      z2: 10\n    });\n    setLabelLineStyle(polygon, getLabelLineStatesModels(itemModel), {\n      stroke: visualColor\n    });\n  };\n\n  return FunnelPiece;\n}(graphic.Polygon);\n\nvar FunnelView = function (_super) {\n  __extends(FunnelView, _super);\n\n  function FunnelView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = FunnelView.type;\n    _this.ignoreLabelLineUpdate = true;\n    return _this;\n  }\n\n  FunnelView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var group = this.group;\n    data.diff(oldData).add(function (idx) {\n      var funnelPiece = new FunnelPiece(data, idx);\n      data.setItemGraphicEl(idx, funnelPiece);\n      group.add(funnelPiece);\n    }).update(function (newIdx, oldIdx) {\n      var piece = oldData.getItemGraphicEl(oldIdx);\n      piece.updateData(data, newIdx);\n      group.add(piece);\n      data.setItemGraphicEl(newIdx, piece);\n    }).remove(function (idx) {\n      var piece = oldData.getItemGraphicEl(idx);\n      graphic.removeElementWithFadeOut(piece, seriesModel, idx);\n    }).execute();\n    this._data = data;\n  };\n\n  FunnelView.prototype.remove = function () {\n    this.group.removeAll();\n    this._data = null;\n  };\n\n  FunnelView.prototype.dispose = function () {};\n\n  FunnelView.type = 'funnel';\n  return FunnelView;\n}(ChartView);\n\nexport default FunnelView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport createListSimply from '../helper/createListSimply';\nimport { defaultEmphasis } from '../../util/model';\nimport { makeSeriesEncodeForNameBased } from '../../data/helper/sourceHelper';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider';\nimport SeriesModel from '../../model/Series';\n\nvar FunnelSeriesModel = function (_super) {\n  __extends(FunnelSeriesModel, _super);\n\n  function FunnelSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = FunnelSeriesModel.type;\n    _this.useColorPaletteOnData = true;\n    return _this;\n  }\n\n  FunnelSeriesModel.prototype.init = function (option) {\n    _super.prototype.init.apply(this, arguments);\n\n    this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));\n\n    this._defaultLabelLine(option);\n  };\n\n  FunnelSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListSimply(this, {\n      coordDimensions: ['value'],\n      encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)\n    });\n  };\n\n  FunnelSeriesModel.prototype._defaultLabelLine = function (option) {\n    defaultEmphasis(option, 'labelLine', ['show']);\n    var labelLineNormalOpt = option.labelLine;\n    var labelLineEmphasisOpt = option.emphasis.labelLine;\n    labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show;\n    labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show;\n  };\n\n  FunnelSeriesModel.prototype.getDataParams = function (dataIndex) {\n    var data = this.getData();\n\n    var params = _super.prototype.getDataParams.call(this, dataIndex);\n\n    var valueDim = data.mapDimension('value');\n    var sum = data.getSum(valueDim);\n    params.percent = !sum ? 0 : +(data.get(valueDim, dataIndex) / sum * 100).toFixed(2);\n    params.$vars.push('percent');\n    return params;\n  };\n\n  FunnelSeriesModel.type = 'series.funnel';\n  FunnelSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    left: 80,\n    top: 60,\n    right: 80,\n    bottom: 60,\n    minSize: '0%',\n    maxSize: '100%',\n    sort: 'descending',\n    orient: 'vertical',\n    gap: 0,\n    funnelAlign: 'center',\n    label: {\n      show: true,\n      position: 'outer'\n    },\n    labelLine: {\n      show: true,\n      length: 20,\n      lineStyle: {\n        width: 1\n      }\n    },\n    itemStyle: {\n      borderColor: '#fff',\n      borderWidth: 1\n    },\n    emphasis: {\n      label: {\n        show: true\n      }\n    },\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    }\n  };\n  return FunnelSeriesModel;\n}(SeriesModel);\n\nexport default FunnelSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as layout from '../../util/layout';\nimport { parsePercent, linearMap } from '../../util/number';\n\nfunction getViewRect(seriesModel, api) {\n  return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n}\n\nfunction getSortedIndices(data, sort) {\n  var valueDim = data.mapDimension('value');\n  var valueArr = data.mapArray(valueDim, function (val) {\n    return val;\n  });\n  var indices = [];\n  var isAscending = sort === 'ascending';\n\n  for (var i = 0, len = data.count(); i < len; i++) {\n    indices[i] = i;\n  }\n\n  if (typeof sort === 'function') {\n    indices.sort(sort);\n  } else if (sort !== 'none') {\n    indices.sort(function (a, b) {\n      return isAscending ? valueArr[a] - valueArr[b] : valueArr[b] - valueArr[a];\n    });\n  }\n\n  return indices;\n}\n\nfunction labelLayout(data) {\n  var seriesModel = data.hostModel;\n  var orient = seriesModel.get('orient');\n  data.each(function (idx) {\n    var itemModel = data.getItemModel(idx);\n    var labelModel = itemModel.getModel('label');\n    var labelPosition = labelModel.get('position');\n    var labelLineModel = itemModel.getModel('labelLine');\n    var layout = data.getItemLayout(idx);\n    var points = layout.points;\n    var isLabelInside = labelPosition === 'inner' || labelPosition === 'inside' || labelPosition === 'center' || labelPosition === 'insideLeft' || labelPosition === 'insideRight';\n    var textAlign;\n    var textX;\n    var textY;\n    var linePoints;\n\n    if (isLabelInside) {\n      if (labelPosition === 'insideLeft') {\n        textX = (points[0][0] + points[3][0]) / 2 + 5;\n        textY = (points[0][1] + points[3][1]) / 2;\n        textAlign = 'left';\n      } else if (labelPosition === 'insideRight') {\n        textX = (points[1][0] + points[2][0]) / 2 - 5;\n        textY = (points[1][1] + points[2][1]) / 2;\n        textAlign = 'right';\n      } else {\n        textX = (points[0][0] + points[1][0] + points[2][0] + points[3][0]) / 4;\n        textY = (points[0][1] + points[1][1] + points[2][1] + points[3][1]) / 4;\n        textAlign = 'center';\n      }\n\n      linePoints = [[textX, textY], [textX, textY]];\n    } else {\n      var x1 = void 0;\n      var y1 = void 0;\n      var x2 = void 0;\n      var y2 = void 0;\n      var labelLineLen = labelLineModel.get('length');\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (orient === 'vertical' && ['top', 'bottom'].indexOf(labelPosition) > -1) {\n          labelPosition = 'left';\n          console.warn('Position error: Funnel chart on vertical orient dose not support top and bottom.');\n        }\n\n        if (orient === 'horizontal' && ['left', 'right'].indexOf(labelPosition) > -1) {\n          labelPosition = 'bottom';\n          console.warn('Position error: Funnel chart on horizontal orient dose not support left and right.');\n        }\n      }\n\n      if (labelPosition === 'left') {\n        x1 = (points[3][0] + points[0][0]) / 2;\n        y1 = (points[3][1] + points[0][1]) / 2;\n        x2 = x1 - labelLineLen;\n        textX = x2 - 5;\n        textAlign = 'right';\n      } else if (labelPosition === 'right') {\n        x1 = (points[1][0] + points[2][0]) / 2;\n        y1 = (points[1][1] + points[2][1]) / 2;\n        x2 = x1 + labelLineLen;\n        textX = x2 + 5;\n        textAlign = 'left';\n      } else if (labelPosition === 'top') {\n        x1 = (points[3][0] + points[0][0]) / 2;\n        y1 = (points[3][1] + points[0][1]) / 2;\n        y2 = y1 - labelLineLen;\n        textY = y2 - 5;\n        textAlign = 'center';\n      } else if (labelPosition === 'bottom') {\n        x1 = (points[1][0] + points[2][0]) / 2;\n        y1 = (points[1][1] + points[2][1]) / 2;\n        y2 = y1 + labelLineLen;\n        textY = y2 + 5;\n        textAlign = 'center';\n      } else if (labelPosition === 'rightTop') {\n        x1 = orient === 'horizontal' ? points[3][0] : points[1][0];\n        y1 = orient === 'horizontal' ? points[3][1] : points[1][1];\n\n        if (orient === 'horizontal') {\n          y2 = y1 - labelLineLen;\n          textY = y2 - 5;\n          textAlign = 'center';\n        } else {\n          x2 = x1 + labelLineLen;\n          textX = x2 + 5;\n          textAlign = 'top';\n        }\n      } else if (labelPosition === 'rightBottom') {\n        x1 = points[2][0];\n        y1 = points[2][1];\n\n        if (orient === 'horizontal') {\n          y2 = y1 + labelLineLen;\n          textY = y2 + 5;\n          textAlign = 'center';\n        } else {\n          x2 = x1 + labelLineLen;\n          textX = x2 + 5;\n          textAlign = 'bottom';\n        }\n      } else if (labelPosition === 'leftTop') {\n        x1 = points[0][0];\n        y1 = orient === 'horizontal' ? points[0][1] : points[1][1];\n\n        if (orient === 'horizontal') {\n          y2 = y1 - labelLineLen;\n          textY = y2 - 5;\n          textAlign = 'center';\n        } else {\n          x2 = x1 - labelLineLen;\n          textX = x2 - 5;\n          textAlign = 'right';\n        }\n      } else if (labelPosition === 'leftBottom') {\n        x1 = orient === 'horizontal' ? points[1][0] : points[3][0];\n        y1 = orient === 'horizontal' ? points[1][1] : points[2][1];\n\n        if (orient === 'horizontal') {\n          y2 = y1 + labelLineLen;\n          textY = y2 + 5;\n          textAlign = 'center';\n        } else {\n          x2 = x1 - labelLineLen;\n          textX = x2 - 5;\n          textAlign = 'right';\n        }\n      } else {\n        x1 = (points[1][0] + points[2][0]) / 2;\n        y1 = (points[1][1] + points[2][1]) / 2;\n\n        if (orient === 'horizontal') {\n          y2 = y1 + labelLineLen;\n          textY = y2 + 5;\n          textAlign = 'center';\n        } else {\n          x2 = x1 + labelLineLen;\n          textX = x2 + 5;\n          textAlign = 'left';\n        }\n      }\n\n      if (orient === 'horizontal') {\n        x2 = x1;\n        textX = x2;\n      } else {\n        y2 = y1;\n        textY = y2;\n      }\n\n      linePoints = [[x1, y1], [x2, y2]];\n    }\n\n    layout.label = {\n      linePoints: linePoints,\n      x: textX,\n      y: textY,\n      verticalAlign: 'middle',\n      textAlign: textAlign,\n      inside: isLabelInside\n    };\n  });\n}\n\nexport default function funnelLayout(ecModel, api) {\n  ecModel.eachSeriesByType('funnel', function (seriesModel) {\n    var data = seriesModel.getData();\n    var valueDim = data.mapDimension('value');\n    var sort = seriesModel.get('sort');\n    var viewRect = getViewRect(seriesModel, api);\n    var orient = seriesModel.get('orient');\n    var viewWidth = viewRect.width;\n    var viewHeight = viewRect.height;\n    var indices = getSortedIndices(data, sort);\n    var x = viewRect.x;\n    var y = viewRect.y;\n    var sizeExtent = orient === 'horizontal' ? [parsePercent(seriesModel.get('minSize'), viewHeight), parsePercent(seriesModel.get('maxSize'), viewHeight)] : [parsePercent(seriesModel.get('minSize'), viewWidth), parsePercent(seriesModel.get('maxSize'), viewWidth)];\n    var dataExtent = data.getDataExtent(valueDim);\n    var min = seriesModel.get('min');\n    var max = seriesModel.get('max');\n\n    if (min == null) {\n      min = Math.min(dataExtent[0], 0);\n    }\n\n    if (max == null) {\n      max = dataExtent[1];\n    }\n\n    var funnelAlign = seriesModel.get('funnelAlign');\n    var gap = seriesModel.get('gap');\n    var viewSize = orient === 'horizontal' ? viewWidth : viewHeight;\n    var itemSize = (viewSize - gap * (data.count() - 1)) / data.count();\n\n    var getLinePoints = function (idx, offset) {\n      if (orient === 'horizontal') {\n        var val_1 = data.get(valueDim, idx) || 0;\n        var itemHeight = linearMap(val_1, [min, max], sizeExtent, true);\n        var y0 = void 0;\n\n        switch (funnelAlign) {\n          case 'top':\n            y0 = y;\n            break;\n\n          case 'center':\n            y0 = y + (viewHeight - itemHeight) / 2;\n            break;\n\n          case 'bottom':\n            y0 = y + (viewHeight - itemHeight);\n            break;\n        }\n\n        return [[offset, y0], [offset, y0 + itemHeight]];\n      }\n\n      var val = data.get(valueDim, idx) || 0;\n      var itemWidth = linearMap(val, [min, max], sizeExtent, true);\n      var x0;\n\n      switch (funnelAlign) {\n        case 'left':\n          x0 = x;\n          break;\n\n        case 'center':\n          x0 = x + (viewWidth - itemWidth) / 2;\n          break;\n\n        case 'right':\n          x0 = x + viewWidth - itemWidth;\n          break;\n      }\n\n      return [[x0, offset], [x0 + itemWidth, offset]];\n    };\n\n    if (sort === 'ascending') {\n      itemSize = -itemSize;\n      gap = -gap;\n\n      if (orient === 'horizontal') {\n        x += viewWidth;\n      } else {\n        y += viewHeight;\n      }\n\n      indices = indices.reverse();\n    }\n\n    for (var i = 0; i < indices.length; i++) {\n      var idx = indices[i];\n      var nextIdx = indices[i + 1];\n      var itemModel = data.getItemModel(idx);\n\n      if (orient === 'horizontal') {\n        var width = itemModel.get(['itemStyle', 'width']);\n\n        if (width == null) {\n          width = itemSize;\n        } else {\n          width = parsePercent(width, viewWidth);\n\n          if (sort === 'ascending') {\n            width = -width;\n          }\n        }\n\n        var start = getLinePoints(idx, x);\n        var end = getLinePoints(nextIdx, x + width);\n        x += width + gap;\n        data.setItemLayout(idx, {\n          points: start.concat(end.slice().reverse())\n        });\n      } else {\n        var height = itemModel.get(['itemStyle', 'height']);\n\n        if (height == null) {\n          height = itemSize;\n        } else {\n          height = parsePercent(height, viewHeight);\n\n          if (sort === 'ascending') {\n            height = -height;\n          }\n        }\n\n        var start = getLinePoints(idx, y);\n        var end = getLinePoints(nextIdx, y + height);\n        y += height + gap;\n        data.setItemLayout(idx, {\n          points: start.concat(end.slice().reverse())\n        });\n      }\n    }\n\n    labelLayout(data);\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport FunnelView from './FunnelView';\nimport FunnelSeriesModel from './FunnelSeries';\nimport funnelLayout from './funnelLayout';\nimport dataFilter from '../../processor/dataFilter';\nexport function install(registers) {\n  registers.registerChartView(FunnelView);\n  registers.registerSeriesModel(FunnelSeriesModel);\n  registers.registerLayout(funnelLayout);\n  registers.registerProcessor(dataFilter('funnel'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport ChartView from '../../view/Chart';\nimport { numericToNumber } from '../../util/number';\nimport { eqNaN } from 'zrender/lib/core/util';\nvar DEFAULT_SMOOTH = 0.3;\n\nvar ParallelView = function (_super) {\n  __extends(ParallelView, _super);\n\n  function ParallelView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ParallelView.type;\n    _this._dataGroup = new graphic.Group();\n    _this._initialized = false;\n    return _this;\n  }\n\n  ParallelView.prototype.init = function () {\n    this.group.add(this._dataGroup);\n  };\n\n  ParallelView.prototype.render = function (seriesModel, ecModel, api, payload) {\n    var dataGroup = this._dataGroup;\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var coordSys = seriesModel.coordinateSystem;\n    var dimensions = coordSys.dimensions;\n    var seriesScope = makeSeriesScope(seriesModel);\n    data.diff(oldData).add(add).update(update).remove(remove).execute();\n\n    function add(newDataIndex) {\n      var line = addEl(data, dataGroup, newDataIndex, dimensions, coordSys);\n      updateElCommon(line, data, newDataIndex, seriesScope);\n    }\n\n    function update(newDataIndex, oldDataIndex) {\n      var line = oldData.getItemGraphicEl(oldDataIndex);\n      var points = createLinePoints(data, newDataIndex, dimensions, coordSys);\n      data.setItemGraphicEl(newDataIndex, line);\n      graphic.updateProps(line, {\n        shape: {\n          points: points\n        }\n      }, seriesModel, newDataIndex);\n      updateElCommon(line, data, newDataIndex, seriesScope);\n    }\n\n    function remove(oldDataIndex) {\n      var line = oldData.getItemGraphicEl(oldDataIndex);\n      dataGroup.remove(line);\n    }\n\n    if (!this._initialized) {\n      this._initialized = true;\n      var clipPath = createGridClipShape(coordSys, seriesModel, function () {\n        setTimeout(function () {\n          dataGroup.removeClipPath();\n        });\n      });\n      dataGroup.setClipPath(clipPath);\n    }\n\n    this._data = data;\n  };\n\n  ParallelView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n    this._initialized = true;\n    this._data = null;\n\n    this._dataGroup.removeAll();\n  };\n\n  ParallelView.prototype.incrementalRender = function (taskParams, seriesModel, ecModel) {\n    var data = seriesModel.getData();\n    var coordSys = seriesModel.coordinateSystem;\n    var dimensions = coordSys.dimensions;\n    var seriesScope = makeSeriesScope(seriesModel);\n\n    for (var dataIndex = taskParams.start; dataIndex < taskParams.end; dataIndex++) {\n      var line = addEl(data, this._dataGroup, dataIndex, dimensions, coordSys);\n      line.incremental = true;\n      updateElCommon(line, data, dataIndex, seriesScope);\n    }\n  };\n\n  ParallelView.prototype.remove = function () {\n    this._dataGroup && this._dataGroup.removeAll();\n    this._data = null;\n  };\n\n  ParallelView.type = 'parallel';\n  return ParallelView;\n}(ChartView);\n\nfunction createGridClipShape(coordSys, seriesModel, cb) {\n  var parallelModel = coordSys.model;\n  var rect = coordSys.getRect();\n  var rectEl = new graphic.Rect({\n    shape: {\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height\n    }\n  });\n  var dim = parallelModel.get('layout') === 'horizontal' ? 'width' : 'height';\n  rectEl.setShape(dim, 0);\n  graphic.initProps(rectEl, {\n    shape: {\n      width: rect.width,\n      height: rect.height\n    }\n  }, seriesModel, cb);\n  return rectEl;\n}\n\nfunction createLinePoints(data, dataIndex, dimensions, coordSys) {\n  var points = [];\n\n  for (var i = 0; i < dimensions.length; i++) {\n    var dimName = dimensions[i];\n    var value = data.get(data.mapDimension(dimName), dataIndex);\n\n    if (!isEmptyValue(value, coordSys.getAxis(dimName).type)) {\n      points.push(coordSys.dataToPoint(value, dimName));\n    }\n  }\n\n  return points;\n}\n\nfunction addEl(data, dataGroup, dataIndex, dimensions, coordSys) {\n  var points = createLinePoints(data, dataIndex, dimensions, coordSys);\n  var line = new graphic.Polyline({\n    shape: {\n      points: points\n    },\n    z2: 10\n  });\n  dataGroup.add(line);\n  data.setItemGraphicEl(dataIndex, line);\n  return line;\n}\n\nfunction makeSeriesScope(seriesModel) {\n  var smooth = seriesModel.get('smooth', true);\n  smooth === true && (smooth = DEFAULT_SMOOTH);\n  smooth = numericToNumber(smooth);\n  eqNaN(smooth) && (smooth = 0);\n  return {\n    smooth: smooth\n  };\n}\n\nfunction updateElCommon(el, data, dataIndex, seriesScope) {\n  el.useStyle(data.getItemVisual(dataIndex, 'style'));\n  el.style.fill = null;\n  el.setShape('smooth', seriesScope.smooth);\n  var itemModel = data.getItemModel(dataIndex);\n  var emphasisModel = itemModel.getModel('emphasis');\n  setStatesStylesFromModel(el, itemModel, 'lineStyle');\n  enableHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n}\n\nfunction isEmptyValue(val, axisType) {\n  return axisType === 'category' ? val == null : val == null || isNaN(val);\n}\n\nexport default ParallelView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { each, bind } from 'zrender/lib/core/util';\nimport SeriesModel from '../../model/Series';\nimport createListFromArray from '../helper/createListFromArray';\n\nvar ParallelSeriesModel = function (_super) {\n  __extends(ParallelSeriesModel, _super);\n\n  function ParallelSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ParallelSeriesModel.type;\n    _this.visualStyleAccessPath = 'lineStyle';\n    _this.visualDrawType = 'stroke';\n    return _this;\n  }\n\n  ParallelSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: bind(makeDefaultEncode, null, this)\n    });\n  };\n\n  ParallelSeriesModel.prototype.getRawIndicesByActiveState = function (activeState) {\n    var coordSys = this.coordinateSystem;\n    var data = this.getData();\n    var indices = [];\n    coordSys.eachActiveState(data, function (theActiveState, dataIndex) {\n      if (activeState === theActiveState) {\n        indices.push(data.getRawIndex(dataIndex));\n      }\n    });\n    return indices;\n  };\n\n  ParallelSeriesModel.type = 'series.parallel';\n  ParallelSeriesModel.dependencies = ['parallel'];\n  ParallelSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'parallel',\n    parallelIndex: 0,\n    label: {\n      show: false\n    },\n    inactiveOpacity: 0.05,\n    activeOpacity: 1,\n    lineStyle: {\n      width: 1,\n      opacity: 0.45,\n      type: 'solid'\n    },\n    emphasis: {\n      label: {\n        show: false\n      }\n    },\n    progressive: 500,\n    smooth: false,\n    animationEasing: 'linear'\n  };\n  return ParallelSeriesModel;\n}(SeriesModel);\n\nfunction makeDefaultEncode(seriesModel) {\n  var parallelModel = seriesModel.ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\n\n  if (!parallelModel) {\n    return;\n  }\n\n  var encodeDefine = {};\n  each(parallelModel.dimensions, function (axisDim) {\n    var dataDimIndex = convertDimNameToNumber(axisDim);\n    encodeDefine[axisDim] = dataDimIndex;\n  });\n  return encodeDefine;\n}\n\nfunction convertDimNameToNumber(dimName) {\n  return +dimName.replace('dim', '');\n}\n\nexport default ParallelSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar opacityAccessPath = ['lineStyle', 'opacity'];\nvar parallelVisual = {\n  seriesType: 'parallel',\n  reset: function (seriesModel, ecModel) {\n    var coordSys = seriesModel.coordinateSystem;\n    var opacityMap = {\n      normal: seriesModel.get(['lineStyle', 'opacity']),\n      active: seriesModel.get('activeOpacity'),\n      inactive: seriesModel.get('inactiveOpacity')\n    };\n    return {\n      progress: function (params, data) {\n        coordSys.eachActiveState(data, function (activeState, dataIndex) {\n          var opacity = opacityMap[activeState];\n\n          if (activeState === 'normal' && data.hasItemOption) {\n            var itemOpacity = data.getItemModel(dataIndex).get(opacityAccessPath, true);\n            itemOpacity != null && (opacity = itemOpacity);\n          }\n\n          var existsStyle = data.ensureUniqueItemVisual(dataIndex, 'style');\n          existsStyle.opacity = opacity;\n        }, params.start, params.end);\n      }\n    };\n  }\n};\nexport default parallelVisual;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nexport default function parallelPreprocessor(option) {\n  createParallelIfNeeded(option);\n  mergeAxisOptionFromParallel(option);\n}\n\nfunction createParallelIfNeeded(option) {\n  if (option.parallel) {\n    return;\n  }\n\n  var hasParallelSeries = false;\n  zrUtil.each(option.series, function (seriesOpt) {\n    if (seriesOpt && seriesOpt.type === 'parallel') {\n      hasParallelSeries = true;\n    }\n  });\n\n  if (hasParallelSeries) {\n    option.parallel = [{}];\n  }\n}\n\nfunction mergeAxisOptionFromParallel(option) {\n  var axes = modelUtil.normalizeToArray(option.parallelAxis);\n  zrUtil.each(axes, function (axisOption) {\n    if (!zrUtil.isObject(axisOption)) {\n      return;\n    }\n\n    var parallelIndex = axisOption.parallelIndex || 0;\n    var parallelOption = modelUtil.normalizeToArray(option.parallel)[parallelIndex];\n\n    if (parallelOption && parallelOption.parallelAxisDefault) {\n      zrUtil.merge(axisOption, parallelOption.parallelAxisDefault, false);\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component';\nimport { each, bind, extend } from 'zrender/lib/core/util';\nimport { createOrUpdate } from '../../util/throttle';\nvar CLICK_THRESHOLD = 5;\n\nvar ParallelView = function (_super) {\n  __extends(ParallelView, _super);\n\n  function ParallelView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ParallelView.type;\n    return _this;\n  }\n\n  ParallelView.prototype.render = function (parallelModel, ecModel, api) {\n    this._model = parallelModel;\n    this._api = api;\n\n    if (!this._handlers) {\n      this._handlers = {};\n      each(handlers, function (handler, eventName) {\n        api.getZr().on(eventName, this._handlers[eventName] = bind(handler, this));\n      }, this);\n    }\n\n    createOrUpdate(this, '_throttledDispatchExpand', parallelModel.get('axisExpandRate'), 'fixRate');\n  };\n\n  ParallelView.prototype.dispose = function (ecModel, api) {\n    each(this._handlers, function (handler, eventName) {\n      api.getZr().off(eventName, handler);\n    });\n    this._handlers = null;\n  };\n\n  ParallelView.prototype._throttledDispatchExpand = function (opt) {\n    this._dispatchExpand(opt);\n  };\n\n  ParallelView.prototype._dispatchExpand = function (opt) {\n    opt && this._api.dispatchAction(extend({\n      type: 'parallelAxisExpand'\n    }, opt));\n  };\n\n  ParallelView.type = 'parallel';\n  return ParallelView;\n}(ComponentView);\n\nvar handlers = {\n  mousedown: function (e) {\n    if (checkTrigger(this, 'click')) {\n      this._mouseDownPoint = [e.offsetX, e.offsetY];\n    }\n  },\n  mouseup: function (e) {\n    var mouseDownPoint = this._mouseDownPoint;\n\n    if (checkTrigger(this, 'click') && mouseDownPoint) {\n      var point = [e.offsetX, e.offsetY];\n      var dist = Math.pow(mouseDownPoint[0] - point[0], 2) + Math.pow(mouseDownPoint[1] - point[1], 2);\n\n      if (dist > CLICK_THRESHOLD) {\n        return;\n      }\n\n      var result = this._model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX, e.offsetY]);\n\n      result.behavior !== 'none' && this._dispatchExpand({\n        axisExpandWindow: result.axisExpandWindow\n      });\n    }\n\n    this._mouseDownPoint = null;\n  },\n  mousemove: function (e) {\n    if (this._mouseDownPoint || !checkTrigger(this, 'mousemove')) {\n      return;\n    }\n\n    var model = this._model;\n    var result = model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX, e.offsetY]);\n    var behavior = result.behavior;\n    behavior === 'jump' && this._throttledDispatchExpand.debounceNextCall(model.get('axisExpandDebounce'));\n\n    this._throttledDispatchExpand(behavior === 'none' ? null : {\n      axisExpandWindow: result.axisExpandWindow,\n      animation: behavior === 'jump' ? null : {\n        duration: 0\n      }\n    });\n  }\n};\n\nfunction checkTrigger(view, triggerOn) {\n  var model = view._model;\n  return model.get('axisExpandable') && model.get('axisExpandTriggerOn') === triggerOn;\n}\n\nexport default ParallelView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\n\nvar ParallelModel = function (_super) {\n  __extends(ParallelModel, _super);\n\n  function ParallelModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ParallelModel.type;\n    return _this;\n  }\n\n  ParallelModel.prototype.init = function () {\n    _super.prototype.init.apply(this, arguments);\n\n    this.mergeOption({});\n  };\n\n  ParallelModel.prototype.mergeOption = function (newOption) {\n    var thisOption = this.option;\n    newOption && zrUtil.merge(thisOption, newOption, true);\n\n    this._initDimensions();\n  };\n\n  ParallelModel.prototype.contains = function (model, ecModel) {\n    var parallelIndex = model.get('parallelIndex');\n    return parallelIndex != null && ecModel.getComponent('parallel', parallelIndex) === this;\n  };\n\n  ParallelModel.prototype.setAxisExpand = function (opt) {\n    zrUtil.each(['axisExpandable', 'axisExpandCenter', 'axisExpandCount', 'axisExpandWidth', 'axisExpandWindow'], function (name) {\n      if (opt.hasOwnProperty(name)) {\n        this.option[name] = opt[name];\n      }\n    }, this);\n  };\n\n  ParallelModel.prototype._initDimensions = function () {\n    var dimensions = this.dimensions = [];\n    var parallelAxisIndex = this.parallelAxisIndex = [];\n    var axisModels = zrUtil.filter(this.ecModel.queryComponents({\n      mainType: 'parallelAxis'\n    }), function (axisModel) {\n      return (axisModel.get('parallelIndex') || 0) === this.componentIndex;\n    }, this);\n    zrUtil.each(axisModels, function (axisModel) {\n      dimensions.push('dim' + axisModel.get('dim'));\n      parallelAxisIndex.push(axisModel.componentIndex);\n    });\n  };\n\n  ParallelModel.type = 'parallel';\n  ParallelModel.dependencies = ['parallelAxis'];\n  ParallelModel.layoutMode = 'box';\n  ParallelModel.defaultOption = {\n    zlevel: 0,\n    z: 0,\n    left: 80,\n    top: 60,\n    right: 80,\n    bottom: 60,\n    layout: 'horizontal',\n    axisExpandable: false,\n    axisExpandCenter: null,\n    axisExpandCount: 0,\n    axisExpandWidth: 50,\n    axisExpandRate: 17,\n    axisExpandDebounce: 50,\n    axisExpandSlideTriggerArea: [-0.15, 0.05, 0.4],\n    axisExpandTriggerOn: 'click',\n    parallelAxisDefault: null\n  };\n  return ParallelModel;\n}(ComponentModel);\n\nexport default ParallelModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis';\n\nvar ParallelAxis = function (_super) {\n  __extends(ParallelAxis, _super);\n\n  function ParallelAxis(dim, scale, coordExtent, axisType, axisIndex) {\n    var _this = _super.call(this, dim, scale, coordExtent) || this;\n\n    _this.type = axisType || 'value';\n    _this.axisIndex = axisIndex;\n    return _this;\n  }\n\n  ParallelAxis.prototype.isHorizontal = function () {\n    return this.coordinateSystem.getModel().get('layout') !== 'horizontal';\n  };\n\n  return ParallelAxis;\n}(Axis);\n\nexport default ParallelAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function sliderMove(delta, handleEnds, extent, handleIndex, minSpan, maxSpan) {\n  delta = delta || 0;\n  var extentSpan = extent[1] - extent[0];\n\n  if (minSpan != null) {\n    minSpan = restrict(minSpan, [0, extentSpan]);\n  }\n\n  if (maxSpan != null) {\n    maxSpan = Math.max(maxSpan, minSpan != null ? minSpan : 0);\n  }\n\n  if (handleIndex === 'all') {\n    var handleSpan = Math.abs(handleEnds[1] - handleEnds[0]);\n    handleSpan = restrict(handleSpan, [0, extentSpan]);\n    minSpan = maxSpan = restrict(handleSpan, [minSpan, maxSpan]);\n    handleIndex = 0;\n  }\n\n  handleEnds[0] = restrict(handleEnds[0], extent);\n  handleEnds[1] = restrict(handleEnds[1], extent);\n  var originalDistSign = getSpanSign(handleEnds, handleIndex);\n  handleEnds[handleIndex] += delta;\n  var extentMinSpan = minSpan || 0;\n  var realExtent = extent.slice();\n  originalDistSign.sign < 0 ? realExtent[0] += extentMinSpan : realExtent[1] -= extentMinSpan;\n  handleEnds[handleIndex] = restrict(handleEnds[handleIndex], realExtent);\n  var currDistSign;\n  currDistSign = getSpanSign(handleEnds, handleIndex);\n\n  if (minSpan != null && (currDistSign.sign !== originalDistSign.sign || currDistSign.span < minSpan)) {\n    handleEnds[1 - handleIndex] = handleEnds[handleIndex] + originalDistSign.sign * minSpan;\n  }\n\n  currDistSign = getSpanSign(handleEnds, handleIndex);\n\n  if (maxSpan != null && currDistSign.span > maxSpan) {\n    handleEnds[1 - handleIndex] = handleEnds[handleIndex] + currDistSign.sign * maxSpan;\n  }\n\n  return handleEnds;\n}\n\nfunction getSpanSign(handleEnds, handleIndex) {\n  var dist = handleEnds[handleIndex] - handleEnds[1 - handleIndex];\n  return {\n    span: Math.abs(dist),\n    sign: dist > 0 ? -1 : dist < 0 ? 1 : handleIndex ? -1 : 1\n  };\n}\n\nfunction restrict(value, extend) {\n  return Math.min(extend[1] != null ? extend[1] : Infinity, Math.max(extend[0] != null ? extend[0] : -Infinity, value));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport * as layoutUtil from '../../util/layout';\nimport * as axisHelper from '../../coord/axisHelper';\nimport ParallelAxis from './ParallelAxis';\nimport * as graphic from '../../util/graphic';\nimport * as numberUtil from '../../util/number';\nimport sliderMove from '../../component/helper/sliderMove';\nvar each = zrUtil.each;\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathFloor = Math.floor;\nvar mathCeil = Math.ceil;\nvar round = numberUtil.round;\nvar PI = Math.PI;\n\nvar Parallel = function () {\n  function Parallel(parallelModel, ecModel, api) {\n    this.type = 'parallel';\n    this._axesMap = zrUtil.createHashMap();\n    this._axesLayout = {};\n    this.dimensions = parallelModel.dimensions;\n    this._model = parallelModel;\n\n    this._init(parallelModel, ecModel, api);\n  }\n\n  Parallel.prototype._init = function (parallelModel, ecModel, api) {\n    var dimensions = parallelModel.dimensions;\n    var parallelAxisIndex = parallelModel.parallelAxisIndex;\n    each(dimensions, function (dim, idx) {\n      var axisIndex = parallelAxisIndex[idx];\n      var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\n\n      var axis = this._axesMap.set(dim, new ParallelAxis(dim, axisHelper.createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisIndex));\n\n      var isCategory = axis.type === 'category';\n      axis.onBand = isCategory && axisModel.get('boundaryGap');\n      axis.inverse = axisModel.get('inverse');\n      axisModel.axis = axis;\n      axis.model = axisModel;\n      axis.coordinateSystem = axisModel.coordinateSystem = this;\n    }, this);\n  };\n\n  Parallel.prototype.update = function (ecModel, api) {\n    this._updateAxesFromSeries(this._model, ecModel);\n  };\n\n  Parallel.prototype.containPoint = function (point) {\n    var layoutInfo = this._makeLayoutInfo();\n\n    var axisBase = layoutInfo.axisBase;\n    var layoutBase = layoutInfo.layoutBase;\n    var pixelDimIndex = layoutInfo.pixelDimIndex;\n    var pAxis = point[1 - pixelDimIndex];\n    var pLayout = point[pixelDimIndex];\n    return pAxis >= axisBase && pAxis <= axisBase + layoutInfo.axisLength && pLayout >= layoutBase && pLayout <= layoutBase + layoutInfo.layoutLength;\n  };\n\n  Parallel.prototype.getModel = function () {\n    return this._model;\n  };\n\n  Parallel.prototype._updateAxesFromSeries = function (parallelModel, ecModel) {\n    ecModel.eachSeries(function (seriesModel) {\n      if (!parallelModel.contains(seriesModel, ecModel)) {\n        return;\n      }\n\n      var data = seriesModel.getData();\n      each(this.dimensions, function (dim) {\n        var axis = this._axesMap.get(dim);\n\n        axis.scale.unionExtentFromData(data, data.mapDimension(dim));\n        axisHelper.niceScaleExtent(axis.scale, axis.model);\n      }, this);\n    }, this);\n  };\n\n  Parallel.prototype.resize = function (parallelModel, api) {\n    this._rect = layoutUtil.getLayoutRect(parallelModel.getBoxLayoutParams(), {\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n\n    this._layoutAxes();\n  };\n\n  Parallel.prototype.getRect = function () {\n    return this._rect;\n  };\n\n  Parallel.prototype._makeLayoutInfo = function () {\n    var parallelModel = this._model;\n    var rect = this._rect;\n    var xy = ['x', 'y'];\n    var wh = ['width', 'height'];\n    var layout = parallelModel.get('layout');\n    var pixelDimIndex = layout === 'horizontal' ? 0 : 1;\n    var layoutLength = rect[wh[pixelDimIndex]];\n    var layoutExtent = [0, layoutLength];\n    var axisCount = this.dimensions.length;\n    var axisExpandWidth = restrict(parallelModel.get('axisExpandWidth'), layoutExtent);\n    var axisExpandCount = restrict(parallelModel.get('axisExpandCount') || 0, [0, axisCount]);\n    var axisExpandable = parallelModel.get('axisExpandable') && axisCount > 3 && axisCount > axisExpandCount && axisExpandCount > 1 && axisExpandWidth > 0 && layoutLength > 0;\n    var axisExpandWindow = parallelModel.get('axisExpandWindow');\n    var winSize;\n\n    if (!axisExpandWindow) {\n      winSize = restrict(axisExpandWidth * (axisExpandCount - 1), layoutExtent);\n      var axisExpandCenter = parallelModel.get('axisExpandCenter') || mathFloor(axisCount / 2);\n      axisExpandWindow = [axisExpandWidth * axisExpandCenter - winSize / 2];\n      axisExpandWindow[1] = axisExpandWindow[0] + winSize;\n    } else {\n      winSize = restrict(axisExpandWindow[1] - axisExpandWindow[0], layoutExtent);\n      axisExpandWindow[1] = axisExpandWindow[0] + winSize;\n    }\n\n    var axisCollapseWidth = (layoutLength - winSize) / (axisCount - axisExpandCount);\n    axisCollapseWidth < 3 && (axisCollapseWidth = 0);\n    var winInnerIndices = [mathFloor(round(axisExpandWindow[0] / axisExpandWidth, 1)) + 1, mathCeil(round(axisExpandWindow[1] / axisExpandWidth, 1)) - 1];\n    var axisExpandWindow0Pos = axisCollapseWidth / axisExpandWidth * axisExpandWindow[0];\n    return {\n      layout: layout,\n      pixelDimIndex: pixelDimIndex,\n      layoutBase: rect[xy[pixelDimIndex]],\n      layoutLength: layoutLength,\n      axisBase: rect[xy[1 - pixelDimIndex]],\n      axisLength: rect[wh[1 - pixelDimIndex]],\n      axisExpandable: axisExpandable,\n      axisExpandWidth: axisExpandWidth,\n      axisCollapseWidth: axisCollapseWidth,\n      axisExpandWindow: axisExpandWindow,\n      axisCount: axisCount,\n      winInnerIndices: winInnerIndices,\n      axisExpandWindow0Pos: axisExpandWindow0Pos\n    };\n  };\n\n  Parallel.prototype._layoutAxes = function () {\n    var rect = this._rect;\n    var axes = this._axesMap;\n    var dimensions = this.dimensions;\n\n    var layoutInfo = this._makeLayoutInfo();\n\n    var layout = layoutInfo.layout;\n    axes.each(function (axis) {\n      var axisExtent = [0, layoutInfo.axisLength];\n      var idx = axis.inverse ? 1 : 0;\n      axis.setExtent(axisExtent[idx], axisExtent[1 - idx]);\n    });\n    each(dimensions, function (dim, idx) {\n      var posInfo = (layoutInfo.axisExpandable ? layoutAxisWithExpand : layoutAxisWithoutExpand)(idx, layoutInfo);\n      var positionTable = {\n        horizontal: {\n          x: posInfo.position,\n          y: layoutInfo.axisLength\n        },\n        vertical: {\n          x: 0,\n          y: posInfo.position\n        }\n      };\n      var rotationTable = {\n        horizontal: PI / 2,\n        vertical: 0\n      };\n      var position = [positionTable[layout].x + rect.x, positionTable[layout].y + rect.y];\n      var rotation = rotationTable[layout];\n      var transform = matrix.create();\n      matrix.rotate(transform, transform, rotation);\n      matrix.translate(transform, transform, position);\n      this._axesLayout[dim] = {\n        position: position,\n        rotation: rotation,\n        transform: transform,\n        axisNameAvailableWidth: posInfo.axisNameAvailableWidth,\n        axisLabelShow: posInfo.axisLabelShow,\n        nameTruncateMaxWidth: posInfo.nameTruncateMaxWidth,\n        tickDirection: 1,\n        labelDirection: 1\n      };\n    }, this);\n  };\n\n  Parallel.prototype.getAxis = function (dim) {\n    return this._axesMap.get(dim);\n  };\n\n  Parallel.prototype.dataToPoint = function (value, dim) {\n    return this.axisCoordToPoint(this._axesMap.get(dim).dataToCoord(value), dim);\n  };\n\n  Parallel.prototype.eachActiveState = function (data, callback, start, end) {\n    start == null && (start = 0);\n    end == null && (end = data.count());\n    var axesMap = this._axesMap;\n    var dimensions = this.dimensions;\n    var dataDimensions = [];\n    var axisModels = [];\n    zrUtil.each(dimensions, function (axisDim) {\n      dataDimensions.push(data.mapDimension(axisDim));\n      axisModels.push(axesMap.get(axisDim).model);\n    });\n    var hasActiveSet = this.hasAxisBrushed();\n\n    for (var dataIndex = start; dataIndex < end; dataIndex++) {\n      var activeState = void 0;\n\n      if (!hasActiveSet) {\n        activeState = 'normal';\n      } else {\n        activeState = 'active';\n        var values = data.getValues(dataDimensions, dataIndex);\n\n        for (var j = 0, lenj = dimensions.length; j < lenj; j++) {\n          var state = axisModels[j].getActiveState(values[j]);\n\n          if (state === 'inactive') {\n            activeState = 'inactive';\n            break;\n          }\n        }\n      }\n\n      callback(activeState, dataIndex);\n    }\n  };\n\n  Parallel.prototype.hasAxisBrushed = function () {\n    var dimensions = this.dimensions;\n    var axesMap = this._axesMap;\n    var hasActiveSet = false;\n\n    for (var j = 0, lenj = dimensions.length; j < lenj; j++) {\n      if (axesMap.get(dimensions[j]).model.getActiveState() !== 'normal') {\n        hasActiveSet = true;\n      }\n    }\n\n    return hasActiveSet;\n  };\n\n  Parallel.prototype.axisCoordToPoint = function (coord, dim) {\n    var axisLayout = this._axesLayout[dim];\n    return graphic.applyTransform([coord, 0], axisLayout.transform);\n  };\n\n  Parallel.prototype.getAxisLayout = function (dim) {\n    return zrUtil.clone(this._axesLayout[dim]);\n  };\n\n  Parallel.prototype.getSlidedAxisExpandWindow = function (point) {\n    var layoutInfo = this._makeLayoutInfo();\n\n    var pixelDimIndex = layoutInfo.pixelDimIndex;\n    var axisExpandWindow = layoutInfo.axisExpandWindow.slice();\n    var winSize = axisExpandWindow[1] - axisExpandWindow[0];\n    var extent = [0, layoutInfo.axisExpandWidth * (layoutInfo.axisCount - 1)];\n\n    if (!this.containPoint(point)) {\n      return {\n        behavior: 'none',\n        axisExpandWindow: axisExpandWindow\n      };\n    }\n\n    var pointCoord = point[pixelDimIndex] - layoutInfo.layoutBase - layoutInfo.axisExpandWindow0Pos;\n    var delta;\n    var behavior = 'slide';\n    var axisCollapseWidth = layoutInfo.axisCollapseWidth;\n\n    var triggerArea = this._model.get('axisExpandSlideTriggerArea');\n\n    var useJump = triggerArea[0] != null;\n\n    if (axisCollapseWidth) {\n      if (useJump && axisCollapseWidth && pointCoord < winSize * triggerArea[0]) {\n        behavior = 'jump';\n        delta = pointCoord - winSize * triggerArea[2];\n      } else if (useJump && axisCollapseWidth && pointCoord > winSize * (1 - triggerArea[0])) {\n        behavior = 'jump';\n        delta = pointCoord - winSize * (1 - triggerArea[2]);\n      } else {\n        (delta = pointCoord - winSize * triggerArea[1]) >= 0 && (delta = pointCoord - winSize * (1 - triggerArea[1])) <= 0 && (delta = 0);\n      }\n\n      delta *= layoutInfo.axisExpandWidth / axisCollapseWidth;\n      delta ? sliderMove(delta, axisExpandWindow, extent, 'all') : behavior = 'none';\n    } else {\n      var winSize2 = axisExpandWindow[1] - axisExpandWindow[0];\n      var pos = extent[1] * pointCoord / winSize2;\n      axisExpandWindow = [mathMax(0, pos - winSize2 / 2)];\n      axisExpandWindow[1] = mathMin(extent[1], axisExpandWindow[0] + winSize2);\n      axisExpandWindow[0] = axisExpandWindow[1] - winSize2;\n    }\n\n    return {\n      axisExpandWindow: axisExpandWindow,\n      behavior: behavior\n    };\n  };\n\n  return Parallel;\n}();\n\nfunction restrict(len, extent) {\n  return mathMin(mathMax(len, extent[0]), extent[1]);\n}\n\nfunction layoutAxisWithoutExpand(axisIndex, layoutInfo) {\n  var step = layoutInfo.layoutLength / (layoutInfo.axisCount - 1);\n  return {\n    position: step * axisIndex,\n    axisNameAvailableWidth: step,\n    axisLabelShow: true\n  };\n}\n\nfunction layoutAxisWithExpand(axisIndex, layoutInfo) {\n  var layoutLength = layoutInfo.layoutLength;\n  var axisExpandWidth = layoutInfo.axisExpandWidth;\n  var axisCount = layoutInfo.axisCount;\n  var axisCollapseWidth = layoutInfo.axisCollapseWidth;\n  var winInnerIndices = layoutInfo.winInnerIndices;\n  var position;\n  var axisNameAvailableWidth = axisCollapseWidth;\n  var axisLabelShow = false;\n  var nameTruncateMaxWidth;\n\n  if (axisIndex < winInnerIndices[0]) {\n    position = axisIndex * axisCollapseWidth;\n    nameTruncateMaxWidth = axisCollapseWidth;\n  } else if (axisIndex <= winInnerIndices[1]) {\n    position = layoutInfo.axisExpandWindow0Pos + axisIndex * axisExpandWidth - layoutInfo.axisExpandWindow[0];\n    axisNameAvailableWidth = axisExpandWidth;\n    axisLabelShow = true;\n  } else {\n    position = layoutLength - (axisCount - 1 - axisIndex) * axisCollapseWidth;\n    nameTruncateMaxWidth = axisCollapseWidth;\n  }\n\n  return {\n    position: position,\n    axisNameAvailableWidth: axisNameAvailableWidth,\n    axisLabelShow: axisLabelShow,\n    nameTruncateMaxWidth: nameTruncateMaxWidth\n  };\n}\n\nexport default Parallel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Parallel from './Parallel';\nimport { SINGLE_REFERRING } from '../../util/model';\n\nfunction createParallelCoordSys(ecModel, api) {\n  var coordSysList = [];\n  ecModel.eachComponent('parallel', function (parallelModel, idx) {\n    var coordSys = new Parallel(parallelModel, ecModel, api);\n    coordSys.name = 'parallel_' + idx;\n    coordSys.resize(parallelModel, api);\n    parallelModel.coordinateSystem = coordSys;\n    coordSys.model = parallelModel;\n    coordSysList.push(coordSys);\n  });\n  ecModel.eachSeries(function (seriesModel) {\n    if (seriesModel.get('coordinateSystem') === 'parallel') {\n      var parallelModel = seriesModel.getReferringComponents('parallel', SINGLE_REFERRING).models[0];\n      seriesModel.coordinateSystem = parallelModel.coordinateSystem;\n    }\n  });\n  return coordSysList;\n}\n\nvar parallelCoordSysCreator = {\n  create: createParallelCoordSys\n};\nexport default parallelCoordSysCreator;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\nimport makeStyleMapper from '../../model/mixin/makeStyleMapper';\nimport * as numberUtil from '../../util/number';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin';\n\nvar ParallelAxisModel = function (_super) {\n  __extends(ParallelAxisModel, _super);\n\n  function ParallelAxisModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ParallelAxisModel.type;\n    _this.activeIntervals = [];\n    return _this;\n  }\n\n  ParallelAxisModel.prototype.getAreaSelectStyle = function () {\n    return makeStyleMapper([['fill', 'color'], ['lineWidth', 'borderWidth'], ['stroke', 'borderColor'], ['width', 'width'], ['opacity', 'opacity']])(this.getModel('areaSelectStyle'));\n  };\n\n  ParallelAxisModel.prototype.setActiveIntervals = function (intervals) {\n    var activeIntervals = this.activeIntervals = zrUtil.clone(intervals);\n\n    if (activeIntervals) {\n      for (var i = activeIntervals.length - 1; i >= 0; i--) {\n        numberUtil.asc(activeIntervals[i]);\n      }\n    }\n  };\n\n  ParallelAxisModel.prototype.getActiveState = function (value) {\n    var activeIntervals = this.activeIntervals;\n\n    if (!activeIntervals.length) {\n      return 'normal';\n    }\n\n    if (value == null || isNaN(+value)) {\n      return 'inactive';\n    }\n\n    if (activeIntervals.length === 1) {\n      var interval = activeIntervals[0];\n\n      if (interval[0] <= value && value <= interval[1]) {\n        return 'active';\n      }\n    } else {\n      for (var i = 0, len = activeIntervals.length; i < len; i++) {\n        if (activeIntervals[i][0] <= value && value <= activeIntervals[i][1]) {\n          return 'active';\n        }\n      }\n    }\n\n    return 'inactive';\n  };\n\n  return ParallelAxisModel;\n}(ComponentModel);\n\nzrUtil.mixin(ParallelAxisModel, AxisModelCommonMixin);\nexport default ParallelAxisModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { curry, each, map, bind, merge, clone, defaults, assert } from 'zrender/lib/core/util';\nimport Eventful from 'zrender/lib/core/Eventful';\nimport * as graphic from '../../util/graphic';\nimport * as interactionMutex from './interactionMutex';\nimport DataDiffer from '../../data/DataDiffer';\nvar BRUSH_PANEL_GLOBAL = true;\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathPow = Math.pow;\nvar COVER_Z = 10000;\nvar UNSELECT_THRESHOLD = 6;\nvar MIN_RESIZE_LINE_WIDTH = 6;\nvar MUTEX_RESOURCE_KEY = 'globalPan';\nvar DIRECTION_MAP = {\n  w: [0, 0],\n  e: [0, 1],\n  n: [1, 0],\n  s: [1, 1]\n};\nvar CURSOR_MAP = {\n  w: 'ew',\n  e: 'ew',\n  n: 'ns',\n  s: 'ns',\n  ne: 'nesw',\n  sw: 'nesw',\n  nw: 'nwse',\n  se: 'nwse'\n};\nvar DEFAULT_BRUSH_OPT = {\n  brushStyle: {\n    lineWidth: 2,\n    stroke: 'rgba(210,219,238,0.3)',\n    fill: '#D2DBEE'\n  },\n  transformable: true,\n  brushMode: 'single',\n  removeOnClick: false\n};\nvar baseUID = 0;\n\nvar BrushController = function (_super) {\n  __extends(BrushController, _super);\n\n  function BrushController(zr) {\n    var _this = _super.call(this) || this;\n\n    _this._track = [];\n    _this._covers = [];\n    _this._handlers = {};\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(zr);\n    }\n\n    _this._zr = zr;\n    _this.group = new graphic.Group();\n    _this._uid = 'brushController_' + baseUID++;\n    each(pointerHandlers, function (handler, eventName) {\n      this._handlers[eventName] = bind(handler, this);\n    }, _this);\n    return _this;\n  }\n\n  BrushController.prototype.enableBrush = function (brushOption) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(this._mounted);\n    }\n\n    this._brushType && this._doDisableBrush();\n    brushOption.brushType && this._doEnableBrush(brushOption);\n    return this;\n  };\n\n  BrushController.prototype._doEnableBrush = function (brushOption) {\n    var zr = this._zr;\n\n    if (!this._enableGlobalPan) {\n      interactionMutex.take(zr, MUTEX_RESOURCE_KEY, this._uid);\n    }\n\n    each(this._handlers, function (handler, eventName) {\n      zr.on(eventName, handler);\n    });\n    this._brushType = brushOption.brushType;\n    this._brushOption = merge(clone(DEFAULT_BRUSH_OPT), brushOption, true);\n  };\n\n  BrushController.prototype._doDisableBrush = function () {\n    var zr = this._zr;\n    interactionMutex.release(zr, MUTEX_RESOURCE_KEY, this._uid);\n    each(this._handlers, function (handler, eventName) {\n      zr.off(eventName, handler);\n    });\n    this._brushType = this._brushOption = null;\n  };\n\n  BrushController.prototype.setPanels = function (panelOpts) {\n    if (panelOpts && panelOpts.length) {\n      var panels_1 = this._panels = {};\n      each(panelOpts, function (panelOpts) {\n        panels_1[panelOpts.panelId] = clone(panelOpts);\n      });\n    } else {\n      this._panels = null;\n    }\n\n    return this;\n  };\n\n  BrushController.prototype.mount = function (opt) {\n    opt = opt || {};\n\n    if (process.env.NODE_ENV !== 'production') {\n      this._mounted = true;\n    }\n\n    this._enableGlobalPan = opt.enableGlobalPan;\n    var thisGroup = this.group;\n\n    this._zr.add(thisGroup);\n\n    thisGroup.attr({\n      x: opt.x || 0,\n      y: opt.y || 0,\n      rotation: opt.rotation || 0,\n      scaleX: opt.scaleX || 1,\n      scaleY: opt.scaleY || 1\n    });\n    this._transform = thisGroup.getLocalTransform();\n    return this;\n  };\n\n  BrushController.prototype.updateCovers = function (coverConfigList) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(this._mounted);\n    }\n\n    coverConfigList = map(coverConfigList, function (coverConfig) {\n      return merge(clone(DEFAULT_BRUSH_OPT), coverConfig, true);\n    });\n    var tmpIdPrefix = '\\0-brush-index-';\n    var oldCovers = this._covers;\n    var newCovers = this._covers = [];\n    var controller = this;\n    var creatingCover = this._creatingCover;\n    new DataDiffer(oldCovers, coverConfigList, oldGetKey, getKey).add(addOrUpdate).update(addOrUpdate).remove(remove).execute();\n    return this;\n\n    function getKey(brushOption, index) {\n      return (brushOption.id != null ? brushOption.id : tmpIdPrefix + index) + '-' + brushOption.brushType;\n    }\n\n    function oldGetKey(cover, index) {\n      return getKey(cover.__brushOption, index);\n    }\n\n    function addOrUpdate(newIndex, oldIndex) {\n      var newBrushInternal = coverConfigList[newIndex];\n\n      if (oldIndex != null && oldCovers[oldIndex] === creatingCover) {\n        newCovers[newIndex] = oldCovers[oldIndex];\n      } else {\n        var cover = newCovers[newIndex] = oldIndex != null ? (oldCovers[oldIndex].__brushOption = newBrushInternal, oldCovers[oldIndex]) : endCreating(controller, createCover(controller, newBrushInternal));\n        updateCoverAfterCreation(controller, cover);\n      }\n    }\n\n    function remove(oldIndex) {\n      if (oldCovers[oldIndex] !== creatingCover) {\n        controller.group.remove(oldCovers[oldIndex]);\n      }\n    }\n  };\n\n  BrushController.prototype.unmount = function () {\n    if (process.env.NODE_ENV !== 'production') {\n      if (!this._mounted) {\n        return;\n      }\n    }\n\n    this.enableBrush(false);\n    clearCovers(this);\n\n    this._zr.remove(this.group);\n\n    if (process.env.NODE_ENV !== 'production') {\n      this._mounted = false;\n    }\n\n    return this;\n  };\n\n  BrushController.prototype.dispose = function () {\n    this.unmount();\n    this.off();\n  };\n\n  return BrushController;\n}(Eventful);\n\nfunction createCover(controller, brushOption) {\n  var cover = coverRenderers[brushOption.brushType].createCover(controller, brushOption);\n  cover.__brushOption = brushOption;\n  updateZ(cover, brushOption);\n  controller.group.add(cover);\n  return cover;\n}\n\nfunction endCreating(controller, creatingCover) {\n  var coverRenderer = getCoverRenderer(creatingCover);\n\n  if (coverRenderer.endCreating) {\n    coverRenderer.endCreating(controller, creatingCover);\n    updateZ(creatingCover, creatingCover.__brushOption);\n  }\n\n  return creatingCover;\n}\n\nfunction updateCoverShape(controller, cover) {\n  var brushOption = cover.__brushOption;\n  getCoverRenderer(cover).updateCoverShape(controller, cover, brushOption.range, brushOption);\n}\n\nfunction updateZ(cover, brushOption) {\n  var z = brushOption.z;\n  z == null && (z = COVER_Z);\n  cover.traverse(function (el) {\n    el.z = z;\n    el.z2 = z;\n  });\n}\n\nfunction updateCoverAfterCreation(controller, cover) {\n  getCoverRenderer(cover).updateCommon(controller, cover);\n  updateCoverShape(controller, cover);\n}\n\nfunction getCoverRenderer(cover) {\n  return coverRenderers[cover.__brushOption.brushType];\n}\n\nfunction getPanelByPoint(controller, e, localCursorPoint) {\n  var panels = controller._panels;\n\n  if (!panels) {\n    return BRUSH_PANEL_GLOBAL;\n  }\n\n  var panel;\n  var transform = controller._transform;\n  each(panels, function (pn) {\n    pn.isTargetByCursor(e, localCursorPoint, transform) && (panel = pn);\n  });\n  return panel;\n}\n\nfunction getPanelByCover(controller, cover) {\n  var panels = controller._panels;\n\n  if (!panels) {\n    return BRUSH_PANEL_GLOBAL;\n  }\n\n  var panelId = cover.__brushOption.panelId;\n  return panelId != null ? panels[panelId] : BRUSH_PANEL_GLOBAL;\n}\n\nfunction clearCovers(controller) {\n  var covers = controller._covers;\n  var originalLength = covers.length;\n  each(covers, function (cover) {\n    controller.group.remove(cover);\n  }, controller);\n  covers.length = 0;\n  return !!originalLength;\n}\n\nfunction trigger(controller, opt) {\n  var areas = map(controller._covers, function (cover) {\n    var brushOption = cover.__brushOption;\n    var range = clone(brushOption.range);\n    return {\n      brushType: brushOption.brushType,\n      panelId: brushOption.panelId,\n      range: range\n    };\n  });\n  controller.trigger('brush', {\n    areas: areas,\n    isEnd: !!opt.isEnd,\n    removeOnClick: !!opt.removeOnClick\n  });\n}\n\nfunction shouldShowCover(controller) {\n  var track = controller._track;\n\n  if (!track.length) {\n    return false;\n  }\n\n  var p2 = track[track.length - 1];\n  var p1 = track[0];\n  var dx = p2[0] - p1[0];\n  var dy = p2[1] - p1[1];\n  var dist = mathPow(dx * dx + dy * dy, 0.5);\n  return dist > UNSELECT_THRESHOLD;\n}\n\nfunction getTrackEnds(track) {\n  var tail = track.length - 1;\n  tail < 0 && (tail = 0);\n  return [track[0], track[tail]];\n}\n\n;\n\nfunction createBaseRectCover(rectRangeConverter, controller, brushOption, edgeNameSequences) {\n  var cover = new graphic.Group();\n  cover.add(new graphic.Rect({\n    name: 'main',\n    style: makeStyle(brushOption),\n    silent: true,\n    draggable: true,\n    cursor: 'move',\n    drift: curry(driftRect, rectRangeConverter, controller, cover, ['n', 's', 'w', 'e']),\n    ondragend: curry(trigger, controller, {\n      isEnd: true\n    })\n  }));\n  each(edgeNameSequences, function (nameSequence) {\n    cover.add(new graphic.Rect({\n      name: nameSequence.join(''),\n      style: {\n        opacity: 0\n      },\n      draggable: true,\n      silent: true,\n      invisible: true,\n      drift: curry(driftRect, rectRangeConverter, controller, cover, nameSequence),\n      ondragend: curry(trigger, controller, {\n        isEnd: true\n      })\n    }));\n  });\n  return cover;\n}\n\nfunction updateBaseRect(controller, cover, localRange, brushOption) {\n  var lineWidth = brushOption.brushStyle.lineWidth || 0;\n  var handleSize = mathMax(lineWidth, MIN_RESIZE_LINE_WIDTH);\n  var x = localRange[0][0];\n  var y = localRange[1][0];\n  var xa = x - lineWidth / 2;\n  var ya = y - lineWidth / 2;\n  var x2 = localRange[0][1];\n  var y2 = localRange[1][1];\n  var x2a = x2 - handleSize + lineWidth / 2;\n  var y2a = y2 - handleSize + lineWidth / 2;\n  var width = x2 - x;\n  var height = y2 - y;\n  var widtha = width + lineWidth;\n  var heighta = height + lineWidth;\n  updateRectShape(controller, cover, 'main', x, y, width, height);\n\n  if (brushOption.transformable) {\n    updateRectShape(controller, cover, 'w', xa, ya, handleSize, heighta);\n    updateRectShape(controller, cover, 'e', x2a, ya, handleSize, heighta);\n    updateRectShape(controller, cover, 'n', xa, ya, widtha, handleSize);\n    updateRectShape(controller, cover, 's', xa, y2a, widtha, handleSize);\n    updateRectShape(controller, cover, 'nw', xa, ya, handleSize, handleSize);\n    updateRectShape(controller, cover, 'ne', x2a, ya, handleSize, handleSize);\n    updateRectShape(controller, cover, 'sw', xa, y2a, handleSize, handleSize);\n    updateRectShape(controller, cover, 'se', x2a, y2a, handleSize, handleSize);\n  }\n}\n\nfunction updateCommon(controller, cover) {\n  var brushOption = cover.__brushOption;\n  var transformable = brushOption.transformable;\n  var mainEl = cover.childAt(0);\n  mainEl.useStyle(makeStyle(brushOption));\n  mainEl.attr({\n    silent: !transformable,\n    cursor: transformable ? 'move' : 'default'\n  });\n  each([['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w']], function (nameSequence) {\n    var el = cover.childOfName(nameSequence.join(''));\n    var globalDir = nameSequence.length === 1 ? getGlobalDirection1(controller, nameSequence[0]) : getGlobalDirection2(controller, nameSequence);\n    el && el.attr({\n      silent: !transformable,\n      invisible: !transformable,\n      cursor: transformable ? CURSOR_MAP[globalDir] + '-resize' : null\n    });\n  });\n}\n\nfunction updateRectShape(controller, cover, name, x, y, w, h) {\n  var el = cover.childOfName(name);\n  el && el.setShape(pointsToRect(clipByPanel(controller, cover, [[x, y], [x + w, y + h]])));\n}\n\nfunction makeStyle(brushOption) {\n  return defaults({\n    strokeNoScale: true\n  }, brushOption.brushStyle);\n}\n\nfunction formatRectRange(x, y, x2, y2) {\n  var min = [mathMin(x, x2), mathMin(y, y2)];\n  var max = [mathMax(x, x2), mathMax(y, y2)];\n  return [[min[0], max[0]], [min[1], max[1]]];\n}\n\nfunction getTransform(controller) {\n  return graphic.getTransform(controller.group);\n}\n\nfunction getGlobalDirection1(controller, localDirName) {\n  var map = {\n    w: 'left',\n    e: 'right',\n    n: 'top',\n    s: 'bottom'\n  };\n  var inverseMap = {\n    left: 'w',\n    right: 'e',\n    top: 'n',\n    bottom: 's'\n  };\n  var dir = graphic.transformDirection(map[localDirName], getTransform(controller));\n  return inverseMap[dir];\n}\n\nfunction getGlobalDirection2(controller, localDirNameSeq) {\n  var globalDir = [getGlobalDirection1(controller, localDirNameSeq[0]), getGlobalDirection1(controller, localDirNameSeq[1])];\n  (globalDir[0] === 'e' || globalDir[0] === 'w') && globalDir.reverse();\n  return globalDir.join('');\n}\n\nfunction driftRect(rectRangeConverter, controller, cover, dirNameSequence, dx, dy) {\n  var brushOption = cover.__brushOption;\n  var rectRange = rectRangeConverter.toRectRange(brushOption.range);\n  var localDelta = toLocalDelta(controller, dx, dy);\n  each(dirNameSequence, function (dirName) {\n    var ind = DIRECTION_MAP[dirName];\n    rectRange[ind[0]][ind[1]] += localDelta[ind[0]];\n  });\n  brushOption.range = rectRangeConverter.fromRectRange(formatRectRange(rectRange[0][0], rectRange[1][0], rectRange[0][1], rectRange[1][1]));\n  updateCoverAfterCreation(controller, cover);\n  trigger(controller, {\n    isEnd: false\n  });\n}\n\nfunction driftPolygon(controller, cover, dx, dy) {\n  var range = cover.__brushOption.range;\n  var localDelta = toLocalDelta(controller, dx, dy);\n  each(range, function (point) {\n    point[0] += localDelta[0];\n    point[1] += localDelta[1];\n  });\n  updateCoverAfterCreation(controller, cover);\n  trigger(controller, {\n    isEnd: false\n  });\n}\n\nfunction toLocalDelta(controller, dx, dy) {\n  var thisGroup = controller.group;\n  var localD = thisGroup.transformCoordToLocal(dx, dy);\n  var localZero = thisGroup.transformCoordToLocal(0, 0);\n  return [localD[0] - localZero[0], localD[1] - localZero[1]];\n}\n\nfunction clipByPanel(controller, cover, data) {\n  var panel = getPanelByCover(controller, cover);\n  return panel && panel !== BRUSH_PANEL_GLOBAL ? panel.clipPath(data, controller._transform) : clone(data);\n}\n\nfunction pointsToRect(points) {\n  var xmin = mathMin(points[0][0], points[1][0]);\n  var ymin = mathMin(points[0][1], points[1][1]);\n  var xmax = mathMax(points[0][0], points[1][0]);\n  var ymax = mathMax(points[0][1], points[1][1]);\n  return {\n    x: xmin,\n    y: ymin,\n    width: xmax - xmin,\n    height: ymax - ymin\n  };\n}\n\nfunction resetCursor(controller, e, localCursorPoint) {\n  if (!controller._brushType || isOutsideZrArea(controller, e.offsetX, e.offsetY)) {\n    return;\n  }\n\n  var zr = controller._zr;\n  var covers = controller._covers;\n  var currPanel = getPanelByPoint(controller, e, localCursorPoint);\n\n  if (!controller._dragging) {\n    for (var i = 0; i < covers.length; i++) {\n      var brushOption = covers[i].__brushOption;\n\n      if (currPanel && (currPanel === BRUSH_PANEL_GLOBAL || brushOption.panelId === currPanel.panelId) && coverRenderers[brushOption.brushType].contain(covers[i], localCursorPoint[0], localCursorPoint[1])) {\n        return;\n      }\n    }\n  }\n\n  currPanel && zr.setCursorStyle('crosshair');\n}\n\nfunction preventDefault(e) {\n  var rawE = e.event;\n  rawE.preventDefault && rawE.preventDefault();\n}\n\nfunction mainShapeContain(cover, x, y) {\n  return cover.childOfName('main').contain(x, y);\n}\n\nfunction updateCoverByMouse(controller, e, localCursorPoint, isEnd) {\n  var creatingCover = controller._creatingCover;\n  var panel = controller._creatingPanel;\n  var thisBrushOption = controller._brushOption;\n  var eventParams;\n\n  controller._track.push(localCursorPoint.slice());\n\n  if (shouldShowCover(controller) || creatingCover) {\n    if (panel && !creatingCover) {\n      thisBrushOption.brushMode === 'single' && clearCovers(controller);\n      var brushOption = clone(thisBrushOption);\n      brushOption.brushType = determineBrushType(brushOption.brushType, panel);\n      brushOption.panelId = panel === BRUSH_PANEL_GLOBAL ? null : panel.panelId;\n      creatingCover = controller._creatingCover = createCover(controller, brushOption);\n\n      controller._covers.push(creatingCover);\n    }\n\n    if (creatingCover) {\n      var coverRenderer = coverRenderers[determineBrushType(controller._brushType, panel)];\n      var coverBrushOption = creatingCover.__brushOption;\n      coverBrushOption.range = coverRenderer.getCreatingRange(clipByPanel(controller, creatingCover, controller._track));\n\n      if (isEnd) {\n        endCreating(controller, creatingCover);\n        coverRenderer.updateCommon(controller, creatingCover);\n      }\n\n      updateCoverShape(controller, creatingCover);\n      eventParams = {\n        isEnd: isEnd\n      };\n    }\n  } else if (isEnd && thisBrushOption.brushMode === 'single' && thisBrushOption.removeOnClick) {\n    if (getPanelByPoint(controller, e, localCursorPoint) && clearCovers(controller)) {\n      eventParams = {\n        isEnd: isEnd,\n        removeOnClick: true\n      };\n    }\n  }\n\n  return eventParams;\n}\n\nfunction determineBrushType(brushType, panel) {\n  if (brushType === 'auto') {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(panel && panel.defaultBrushType, 'MUST have defaultBrushType when brushType is \"atuo\"');\n    }\n\n    return panel.defaultBrushType;\n  }\n\n  return brushType;\n}\n\nvar pointerHandlers = {\n  mousedown: function (e) {\n    if (this._dragging) {\n      handleDragEnd(this, e);\n    } else if (!e.target || !e.target.draggable) {\n      preventDefault(e);\n      var localCursorPoint = this.group.transformCoordToLocal(e.offsetX, e.offsetY);\n      this._creatingCover = null;\n      var panel = this._creatingPanel = getPanelByPoint(this, e, localCursorPoint);\n\n      if (panel) {\n        this._dragging = true;\n        this._track = [localCursorPoint.slice()];\n      }\n    }\n  },\n  mousemove: function (e) {\n    var x = e.offsetX;\n    var y = e.offsetY;\n    var localCursorPoint = this.group.transformCoordToLocal(x, y);\n    resetCursor(this, e, localCursorPoint);\n\n    if (this._dragging) {\n      preventDefault(e);\n      var eventParams = updateCoverByMouse(this, e, localCursorPoint, false);\n      eventParams && trigger(this, eventParams);\n    }\n  },\n  mouseup: function (e) {\n    handleDragEnd(this, e);\n  }\n};\n\nfunction handleDragEnd(controller, e) {\n  if (controller._dragging) {\n    preventDefault(e);\n    var x = e.offsetX;\n    var y = e.offsetY;\n    var localCursorPoint = controller.group.transformCoordToLocal(x, y);\n    var eventParams = updateCoverByMouse(controller, e, localCursorPoint, true);\n    controller._dragging = false;\n    controller._track = [];\n    controller._creatingCover = null;\n    eventParams && trigger(controller, eventParams);\n  }\n}\n\nfunction isOutsideZrArea(controller, x, y) {\n  var zr = controller._zr;\n  return x < 0 || x > zr.getWidth() || y < 0 || y > zr.getHeight();\n}\n\nvar coverRenderers = {\n  lineX: getLineRenderer(0),\n  lineY: getLineRenderer(1),\n  rect: {\n    createCover: function (controller, brushOption) {\n      function returnInput(range) {\n        return range;\n      }\n\n      return createBaseRectCover({\n        toRectRange: returnInput,\n        fromRectRange: returnInput\n      }, controller, brushOption, [['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w']]);\n    },\n    getCreatingRange: function (localTrack) {\n      var ends = getTrackEnds(localTrack);\n      return formatRectRange(ends[1][0], ends[1][1], ends[0][0], ends[0][1]);\n    },\n    updateCoverShape: function (controller, cover, localRange, brushOption) {\n      updateBaseRect(controller, cover, localRange, brushOption);\n    },\n    updateCommon: updateCommon,\n    contain: mainShapeContain\n  },\n  polygon: {\n    createCover: function (controller, brushOption) {\n      var cover = new graphic.Group();\n      cover.add(new graphic.Polyline({\n        name: 'main',\n        style: makeStyle(brushOption),\n        silent: true\n      }));\n      return cover;\n    },\n    getCreatingRange: function (localTrack) {\n      return localTrack;\n    },\n    endCreating: function (controller, cover) {\n      cover.remove(cover.childAt(0));\n      cover.add(new graphic.Polygon({\n        name: 'main',\n        draggable: true,\n        drift: curry(driftPolygon, controller, cover),\n        ondragend: curry(trigger, controller, {\n          isEnd: true\n        })\n      }));\n    },\n    updateCoverShape: function (controller, cover, localRange, brushOption) {\n      cover.childAt(0).setShape({\n        points: clipByPanel(controller, cover, localRange)\n      });\n    },\n    updateCommon: updateCommon,\n    contain: mainShapeContain\n  }\n};\n\nfunction getLineRenderer(xyIndex) {\n  return {\n    createCover: function (controller, brushOption) {\n      return createBaseRectCover({\n        toRectRange: function (range) {\n          var rectRange = [range, [0, 100]];\n          xyIndex && rectRange.reverse();\n          return rectRange;\n        },\n        fromRectRange: function (rectRange) {\n          return rectRange[xyIndex];\n        }\n      }, controller, brushOption, [[['w'], ['e']], [['n'], ['s']]][xyIndex]);\n    },\n    getCreatingRange: function (localTrack) {\n      var ends = getTrackEnds(localTrack);\n      var min = mathMin(ends[0][xyIndex], ends[1][xyIndex]);\n      var max = mathMax(ends[0][xyIndex], ends[1][xyIndex]);\n      return [min, max];\n    },\n    updateCoverShape: function (controller, cover, localRange, brushOption) {\n      var otherExtent;\n      var panel = getPanelByCover(controller, cover);\n\n      if (panel !== BRUSH_PANEL_GLOBAL && panel.getLinearBrushOtherExtent) {\n        otherExtent = panel.getLinearBrushOtherExtent(xyIndex);\n      } else {\n        var zr = controller._zr;\n        otherExtent = [0, [zr.getWidth(), zr.getHeight()][1 - xyIndex]];\n      }\n\n      var rectRange = [localRange, otherExtent];\n      xyIndex && rectRange.reverse();\n      updateBaseRect(controller, cover, rectRange, brushOption);\n    },\n    updateCommon: updateCommon,\n    contain: mainShapeContain\n  };\n}\n\nexport default BrushController;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { onIrrelevantElement } from './cursorHelper';\nimport * as graphicUtil from '../../util/graphic';\nexport function makeRectPanelClipPath(rect) {\n  rect = normalizeRect(rect);\n  return function (localPoints) {\n    return graphicUtil.clipPointsByRect(localPoints, rect);\n  };\n}\nexport function makeLinearBrushOtherExtent(rect, specifiedXYIndex) {\n  rect = normalizeRect(rect);\n  return function (xyIndex) {\n    var idx = specifiedXYIndex != null ? specifiedXYIndex : xyIndex;\n    var brushWidth = idx ? rect.width : rect.height;\n    var base = idx ? rect.x : rect.y;\n    return [base, base + (brushWidth || 0)];\n  };\n}\nexport function makeRectIsTargetByCursor(rect, api, targetModel) {\n  var boundingRect = normalizeRect(rect);\n  return function (e, localCursorPoint) {\n    return boundingRect.contain(localCursorPoint[0], localCursorPoint[1]) && !onIrrelevantElement(e, api, targetModel);\n  };\n}\n\nfunction normalizeRect(rect) {\n  return BoundingRect.create(rect);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport AxisBuilder from './AxisBuilder';\nimport BrushController from '../helper/BrushController';\nimport * as brushHelper from '../helper/brushHelper';\nimport * as graphic from '../../util/graphic';\nimport ComponentView from '../../view/Component';\nvar elementList = ['axisLine', 'axisTickLabel', 'axisName'];\n\nvar ParallelAxisView = function (_super) {\n  __extends(ParallelAxisView, _super);\n\n  function ParallelAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ParallelAxisView.type;\n    return _this;\n  }\n\n  ParallelAxisView.prototype.init = function (ecModel, api) {\n    _super.prototype.init.apply(this, arguments);\n\n    (this._brushController = new BrushController(api.getZr())).on('brush', zrUtil.bind(this._onBrush, this));\n  };\n\n  ParallelAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n    if (fromAxisAreaSelect(axisModel, ecModel, payload)) {\n      return;\n    }\n\n    this.axisModel = axisModel;\n    this.api = api;\n    this.group.removeAll();\n    var oldAxisGroup = this._axisGroup;\n    this._axisGroup = new graphic.Group();\n    this.group.add(this._axisGroup);\n\n    if (!axisModel.get('show')) {\n      return;\n    }\n\n    var coordSysModel = getCoordSysModel(axisModel, ecModel);\n    var coordSys = coordSysModel.coordinateSystem;\n    var areaSelectStyle = axisModel.getAreaSelectStyle();\n    var areaWidth = areaSelectStyle.width;\n    var dim = axisModel.axis.dim;\n    var axisLayout = coordSys.getAxisLayout(dim);\n    var builderOpt = zrUtil.extend({\n      strokeContainThreshold: areaWidth\n    }, axisLayout);\n    var axisBuilder = new AxisBuilder(axisModel, builderOpt);\n    zrUtil.each(elementList, axisBuilder.add, axisBuilder);\n\n    this._axisGroup.add(axisBuilder.getGroup());\n\n    this._refreshBrushController(builderOpt, areaSelectStyle, axisModel, coordSysModel, areaWidth, api);\n\n    graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel);\n  };\n\n  ParallelAxisView.prototype._refreshBrushController = function (builderOpt, areaSelectStyle, axisModel, coordSysModel, areaWidth, api) {\n    var extent = axisModel.axis.getExtent();\n    var extentLen = extent[1] - extent[0];\n    var extra = Math.min(30, Math.abs(extentLen) * 0.1);\n    var rect = graphic.BoundingRect.create({\n      x: extent[0],\n      y: -areaWidth / 2,\n      width: extentLen,\n      height: areaWidth\n    });\n    rect.x -= extra;\n    rect.width += 2 * extra;\n\n    this._brushController.mount({\n      enableGlobalPan: true,\n      rotation: builderOpt.rotation,\n      x: builderOpt.position[0],\n      y: builderOpt.position[1]\n    }).setPanels([{\n      panelId: 'pl',\n      clipPath: brushHelper.makeRectPanelClipPath(rect),\n      isTargetByCursor: brushHelper.makeRectIsTargetByCursor(rect, api, coordSysModel),\n      getLinearBrushOtherExtent: brushHelper.makeLinearBrushOtherExtent(rect, 0)\n    }]).enableBrush({\n      brushType: 'lineX',\n      brushStyle: areaSelectStyle,\n      removeOnClick: true\n    }).updateCovers(getCoverInfoList(axisModel));\n  };\n\n  ParallelAxisView.prototype._onBrush = function (eventParam) {\n    var coverInfoList = eventParam.areas;\n    var axisModel = this.axisModel;\n    var axis = axisModel.axis;\n    var intervals = zrUtil.map(coverInfoList, function (coverInfo) {\n      return [axis.coordToData(coverInfo.range[0], true), axis.coordToData(coverInfo.range[1], true)];\n    });\n\n    if (!axisModel.option.realtime === eventParam.isEnd || eventParam.removeOnClick) {\n      this.api.dispatchAction({\n        type: 'axisAreaSelect',\n        parallelAxisId: axisModel.id,\n        intervals: intervals\n      });\n    }\n  };\n\n  ParallelAxisView.prototype.dispose = function () {\n    this._brushController.dispose();\n  };\n\n  ParallelAxisView.type = 'parallelAxis';\n  return ParallelAxisView;\n}(ComponentView);\n\nfunction fromAxisAreaSelect(axisModel, ecModel, payload) {\n  return payload && payload.type === 'axisAreaSelect' && ecModel.findComponents({\n    mainType: 'parallelAxis',\n    query: payload\n  })[0] === axisModel;\n}\n\nfunction getCoverInfoList(axisModel) {\n  var axis = axisModel.axis;\n  return zrUtil.map(axisModel.activeIntervals, function (interval) {\n    return {\n      brushType: 'lineX',\n      panelId: 'pl',\n      range: [axis.dataToCoord(interval[0], true), axis.dataToCoord(interval[1], true)]\n    };\n  });\n}\n\nfunction getCoordSysModel(axisModel, ecModel) {\n  return ecModel.getComponent('parallel', axisModel.get('parallelIndex'));\n}\n\nexport default ParallelAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar actionInfo = {\n  type: 'axisAreaSelect',\n  event: 'axisAreaSelected'\n};\nexport function installParallelActions(registers) {\n  registers.registerAction(actionInfo, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'parallelAxis',\n      query: payload\n    }, function (parallelAxisModel) {\n      parallelAxisModel.axis.model.setActiveIntervals(payload.intervals);\n    });\n  });\n  registers.registerAction('parallelAxisExpand', function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'parallel',\n      query: payload\n    }, function (parallelModel) {\n      parallelModel.setAxisExpand(payload);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport parallelPreprocessor from '../../coord/parallel/parallelPreprocessor';\nimport ParallelView from './ParallelView';\nimport ParallelModel from '../../coord/parallel/ParallelModel';\nimport parallelCoordSysCreator from '../../coord/parallel/parallelCreator';\nimport axisModelCreator from '../../coord/axisModelCreator';\nimport ParallelAxisModel from '../../coord/parallel/AxisModel';\nimport ParallelAxisView from '../axis/ParallelAxisView';\nimport { installParallelActions } from '../axis/parallelAxisAction';\nvar defaultAxisOption = {\n  type: 'value',\n  areaSelectStyle: {\n    width: 20,\n    borderWidth: 1,\n    borderColor: 'rgba(160,197,232)',\n    color: 'rgba(160,197,232)',\n    opacity: 0.3\n  },\n  realtime: true,\n  z: 10\n};\nexport function install(registers) {\n  registers.registerComponentView(ParallelView);\n  registers.registerComponentModel(ParallelModel);\n  registers.registerCoordinateSystem('parallel', parallelCoordSysCreator);\n  registers.registerPreprocessor(parallelPreprocessor);\n  registers.registerComponentModel(ParallelAxisModel);\n  registers.registerComponentView(ParallelAxisView);\n  axisModelCreator(registers, 'parallel', ParallelAxisModel, defaultAxisOption);\n  installParallelActions(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport ParallelView from './ParallelView';\nimport ParallelSeriesModel from './ParallelSeries';\nimport parallelVisual from './parallelVisual';\nimport { install as installParallelComponent } from '../../component/parallel/install';\nexport function install(registers) {\n  use(installParallelComponent);\n  registers.registerChartView(ParallelView);\n  registers.registerSeriesModel(ParallelSeriesModel);\n  registers.registerVisual(registers.PRIORITY.VISUAL.BRUSH, parallelVisual);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { enterEmphasis, leaveEmphasis, enableHoverEmphasis, setStatesStylesFromModel } from '../../util/states';\nimport ChartView from '../../view/Chart';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { getECData } from '../../util/innerStore';\n\nvar SankeyPathShape = function () {\n  function SankeyPathShape() {\n    this.x1 = 0;\n    this.y1 = 0;\n    this.x2 = 0;\n    this.y2 = 0;\n    this.cpx1 = 0;\n    this.cpy1 = 0;\n    this.cpx2 = 0;\n    this.cpy2 = 0;\n    this.extent = 0;\n  }\n\n  return SankeyPathShape;\n}();\n\nvar SankeyPath = function (_super) {\n  __extends(SankeyPath, _super);\n\n  function SankeyPath(opts) {\n    return _super.call(this, opts) || this;\n  }\n\n  SankeyPath.prototype.getDefaultShape = function () {\n    return new SankeyPathShape();\n  };\n\n  SankeyPath.prototype.buildPath = function (ctx, shape) {\n    var extent = shape.extent;\n    ctx.moveTo(shape.x1, shape.y1);\n    ctx.bezierCurveTo(shape.cpx1, shape.cpy1, shape.cpx2, shape.cpy2, shape.x2, shape.y2);\n\n    if (shape.orient === 'vertical') {\n      ctx.lineTo(shape.x2 + extent, shape.y2);\n      ctx.bezierCurveTo(shape.cpx2 + extent, shape.cpy2, shape.cpx1 + extent, shape.cpy1, shape.x1 + extent, shape.y1);\n    } else {\n      ctx.lineTo(shape.x2, shape.y2 + extent);\n      ctx.bezierCurveTo(shape.cpx2, shape.cpy2 + extent, shape.cpx1, shape.cpy1 + extent, shape.x1, shape.y1 + extent);\n    }\n\n    ctx.closePath();\n  };\n\n  SankeyPath.prototype.highlight = function () {\n    enterEmphasis(this);\n  };\n\n  SankeyPath.prototype.downplay = function () {\n    leaveEmphasis(this);\n  };\n\n  return SankeyPath;\n}(graphic.Path);\n\nvar SankeyView = function (_super) {\n  __extends(SankeyView, _super);\n\n  function SankeyView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SankeyView.type;\n    _this._focusAdjacencyDisabled = false;\n    return _this;\n  }\n\n  SankeyView.prototype.render = function (seriesModel, ecModel, api) {\n    var sankeyView = this;\n    var graph = seriesModel.getGraph();\n    var group = this.group;\n    var layoutInfo = seriesModel.layoutInfo;\n    var width = layoutInfo.width;\n    var height = layoutInfo.height;\n    var nodeData = seriesModel.getData();\n    var edgeData = seriesModel.getData('edge');\n    var orient = seriesModel.get('orient');\n    this._model = seriesModel;\n    group.removeAll();\n    group.x = layoutInfo.x;\n    group.y = layoutInfo.y;\n    graph.eachEdge(function (edge) {\n      var curve = new SankeyPath();\n      var ecData = getECData(curve);\n      ecData.dataIndex = edge.dataIndex;\n      ecData.seriesIndex = seriesModel.seriesIndex;\n      ecData.dataType = 'edge';\n      var edgeModel = edge.getModel();\n      var lineStyleModel = edgeModel.getModel('lineStyle');\n      var curvature = lineStyleModel.get('curveness');\n      var n1Layout = edge.node1.getLayout();\n      var node1Model = edge.node1.getModel();\n      var dragX1 = node1Model.get('localX');\n      var dragY1 = node1Model.get('localY');\n      var n2Layout = edge.node2.getLayout();\n      var node2Model = edge.node2.getModel();\n      var dragX2 = node2Model.get('localX');\n      var dragY2 = node2Model.get('localY');\n      var edgeLayout = edge.getLayout();\n      var x1;\n      var y1;\n      var x2;\n      var y2;\n      var cpx1;\n      var cpy1;\n      var cpx2;\n      var cpy2;\n      curve.shape.extent = Math.max(1, edgeLayout.dy);\n      curve.shape.orient = orient;\n\n      if (orient === 'vertical') {\n        x1 = (dragX1 != null ? dragX1 * width : n1Layout.x) + edgeLayout.sy;\n        y1 = (dragY1 != null ? dragY1 * height : n1Layout.y) + n1Layout.dy;\n        x2 = (dragX2 != null ? dragX2 * width : n2Layout.x) + edgeLayout.ty;\n        y2 = dragY2 != null ? dragY2 * height : n2Layout.y;\n        cpx1 = x1;\n        cpy1 = y1 * (1 - curvature) + y2 * curvature;\n        cpx2 = x2;\n        cpy2 = y1 * curvature + y2 * (1 - curvature);\n      } else {\n        x1 = (dragX1 != null ? dragX1 * width : n1Layout.x) + n1Layout.dx;\n        y1 = (dragY1 != null ? dragY1 * height : n1Layout.y) + edgeLayout.sy;\n        x2 = dragX2 != null ? dragX2 * width : n2Layout.x;\n        y2 = (dragY2 != null ? dragY2 * height : n2Layout.y) + edgeLayout.ty;\n        cpx1 = x1 * (1 - curvature) + x2 * curvature;\n        cpy1 = y1;\n        cpx2 = x1 * curvature + x2 * (1 - curvature);\n        cpy2 = y2;\n      }\n\n      curve.setShape({\n        x1: x1,\n        y1: y1,\n        x2: x2,\n        y2: y2,\n        cpx1: cpx1,\n        cpy1: cpy1,\n        cpx2: cpx2,\n        cpy2: cpy2\n      });\n      curve.useStyle(lineStyleModel.getItemStyle());\n\n      switch (curve.style.fill) {\n        case 'source':\n          curve.style.fill = edge.node1.getVisual('color');\n          curve.style.decal = edge.node1.getVisual('style').decal;\n          break;\n\n        case 'target':\n          curve.style.fill = edge.node2.getVisual('color');\n          curve.style.decal = edge.node2.getVisual('style').decal;\n          break;\n\n        case 'gradient':\n          var sourceColor = edge.node1.getVisual('color');\n          var targetColor = edge.node2.getVisual('color');\n\n          if (typeof sourceColor === 'string' && typeof targetColor === 'string') {\n            curve.style.fill = new graphic.LinearGradient(0, 0, 1, 0, [{\n              color: sourceColor,\n              offset: 0\n            }, {\n              color: targetColor,\n              offset: 1\n            }]);\n          }\n\n      }\n\n      var emphasisModel = edgeModel.getModel('emphasis');\n      setStatesStylesFromModel(curve, edgeModel, 'lineStyle', function (model) {\n        return model.getItemStyle();\n      });\n      group.add(curve);\n      edgeData.setItemGraphicEl(edge.dataIndex, curve);\n      var focus = emphasisModel.get('focus');\n      enableHoverEmphasis(curve, focus === 'adjacency' ? edge.getAdjacentDataIndices() : focus, emphasisModel.get('blurScope'));\n      getECData(curve).dataType = 'edge';\n    });\n    graph.eachNode(function (node) {\n      var layout = node.getLayout();\n      var itemModel = node.getModel();\n      var dragX = itemModel.get('localX');\n      var dragY = itemModel.get('localY');\n      var emphasisModel = itemModel.getModel('emphasis');\n      var rect = new graphic.Rect({\n        shape: {\n          x: dragX != null ? dragX * width : layout.x,\n          y: dragY != null ? dragY * height : layout.y,\n          width: layout.dx,\n          height: layout.dy\n        },\n        style: itemModel.getModel('itemStyle').getItemStyle()\n      });\n      setLabelStyle(rect, getLabelStatesModels(itemModel), {\n        labelFetcher: seriesModel,\n        labelDataIndex: node.dataIndex,\n        defaultText: node.id\n      });\n      rect.disableLabelAnimation = true;\n      rect.setStyle('fill', node.getVisual('color'));\n      rect.setStyle('decal', node.getVisual('style').decal);\n      setStatesStylesFromModel(rect, itemModel);\n      group.add(rect);\n      nodeData.setItemGraphicEl(node.dataIndex, rect);\n      getECData(rect).dataType = 'node';\n      var focus = emphasisModel.get('focus');\n      enableHoverEmphasis(rect, focus === 'adjacency' ? node.getAdjacentDataIndices() : focus, emphasisModel.get('blurScope'));\n    });\n    nodeData.eachItemGraphicEl(function (el, dataIndex) {\n      var itemModel = nodeData.getItemModel(dataIndex);\n\n      if (itemModel.get('draggable')) {\n        el.drift = function (dx, dy) {\n          sankeyView._focusAdjacencyDisabled = true;\n          this.shape.x += dx;\n          this.shape.y += dy;\n          this.dirty();\n          api.dispatchAction({\n            type: 'dragNode',\n            seriesId: seriesModel.id,\n            dataIndex: nodeData.getRawIndex(dataIndex),\n            localX: this.shape.x / width,\n            localY: this.shape.y / height\n          });\n        };\n\n        el.ondragend = function () {\n          sankeyView._focusAdjacencyDisabled = false;\n        };\n\n        el.draggable = true;\n        el.cursor = 'move';\n      }\n    });\n\n    if (!this._data && seriesModel.isAnimationEnabled()) {\n      group.setClipPath(createGridClipShape(group.getBoundingRect(), seriesModel, function () {\n        group.removeClipPath();\n      }));\n    }\n\n    this._data = seriesModel.getData();\n  };\n\n  SankeyView.prototype.dispose = function () {};\n\n  SankeyView.type = 'sankey';\n  return SankeyView;\n}(ChartView);\n\nfunction createGridClipShape(rect, seriesModel, cb) {\n  var rectEl = new graphic.Rect({\n    shape: {\n      x: rect.x - 10,\n      y: rect.y - 10,\n      width: 0,\n      height: rect.height + 20\n    }\n  });\n  graphic.initProps(rectEl, {\n    shape: {\n      width: rect.width + 20\n    }\n  }, seriesModel, cb);\n  return rectEl;\n}\n\nexport default SankeyView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport createGraphFromNodeEdge from '../helper/createGraphFromNodeEdge';\nimport Model from '../../model/Model';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup';\n\nvar SankeySeriesModel = function (_super) {\n  __extends(SankeySeriesModel, _super);\n\n  function SankeySeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SankeySeriesModel.type;\n    return _this;\n  }\n\n  SankeySeriesModel.prototype.getInitialData = function (option, ecModel) {\n    var links = option.edges || option.links;\n    var nodes = option.data || option.nodes;\n    var levels = option.levels;\n    this.levelModels = [];\n    var levelModels = this.levelModels;\n\n    for (var i = 0; i < levels.length; i++) {\n      if (levels[i].depth != null && levels[i].depth >= 0) {\n        levelModels[levels[i].depth] = new Model(levels[i], this, ecModel);\n      } else {\n        if (process.env.NODE_ENV !== 'production') {\n          throw new Error('levels[i].depth is mandatory and should be natural number');\n        }\n      }\n    }\n\n    if (nodes && links) {\n      var graph = createGraphFromNodeEdge(nodes, links, this, true, beforeLink);\n      return graph.data;\n    }\n\n    function beforeLink(nodeData, edgeData) {\n      nodeData.wrapMethod('getItemModel', function (model, idx) {\n        var seriesModel = model.parentModel;\n        var layout = seriesModel.getData().getItemLayout(idx);\n\n        if (layout) {\n          var nodeDepth = layout.depth;\n          var levelModel = seriesModel.levelModels[nodeDepth];\n\n          if (levelModel) {\n            model.parentModel = levelModel;\n          }\n        }\n\n        return model;\n      });\n      edgeData.wrapMethod('getItemModel', function (model, idx) {\n        var seriesModel = model.parentModel;\n        var edge = seriesModel.getGraph().getEdgeByIndex(idx);\n        var layout = edge.node1.getLayout();\n\n        if (layout) {\n          var depth = layout.depth;\n          var levelModel = seriesModel.levelModels[depth];\n\n          if (levelModel) {\n            model.parentModel = levelModel;\n          }\n        }\n\n        return model;\n      });\n    }\n  };\n\n  SankeySeriesModel.prototype.setNodePosition = function (dataIndex, localPosition) {\n    var dataItem = this.option.data[dataIndex];\n    dataItem.localX = localPosition[0];\n    dataItem.localY = localPosition[1];\n  };\n\n  SankeySeriesModel.prototype.getGraph = function () {\n    return this.getData().graph;\n  };\n\n  SankeySeriesModel.prototype.getEdgeData = function () {\n    return this.getGraph().edgeData;\n  };\n\n  SankeySeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    function noValue(val) {\n      return isNaN(val) || val == null;\n    }\n\n    if (dataType === 'edge') {\n      var params = this.getDataParams(dataIndex, dataType);\n      var rawDataOpt = params.data;\n      var edgeValue = params.value;\n      var edgeName = rawDataOpt.source + ' -- ' + rawDataOpt.target;\n      return createTooltipMarkup('nameValue', {\n        name: edgeName,\n        value: edgeValue,\n        noValue: noValue(edgeValue)\n      });\n    } else {\n      var node = this.getGraph().getNodeByIndex(dataIndex);\n      var value = node.getLayout().value;\n      var name_1 = this.getDataParams(dataIndex, dataType).data.name;\n      return createTooltipMarkup('nameValue', {\n        name: name_1 != null ? name_1 + '' : null,\n        value: value,\n        noValue: noValue(value)\n      });\n    }\n  };\n\n  SankeySeriesModel.prototype.optionUpdated = function () {\n    var option = this.option;\n\n    if (option.focusNodeAdjacency === true) {\n      option.focusNodeAdjacency = 'allEdges';\n    }\n  };\n\n  SankeySeriesModel.prototype.getDataParams = function (dataIndex, dataType) {\n    var params = _super.prototype.getDataParams.call(this, dataIndex, dataType);\n\n    if (params.value == null && dataType === 'node') {\n      var node = this.getGraph().getNodeByIndex(dataIndex);\n      var nodeValue = node.getLayout().value;\n      params.value = nodeValue;\n    }\n\n    return params;\n  };\n\n  SankeySeriesModel.type = 'series.sankey';\n  SankeySeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'view',\n    left: '5%',\n    top: '5%',\n    right: '20%',\n    bottom: '5%',\n    orient: 'horizontal',\n    nodeWidth: 20,\n    nodeGap: 8,\n    draggable: true,\n    focusNodeAdjacency: false,\n    layoutIterations: 32,\n    label: {\n      show: true,\n      position: 'right',\n      fontSize: 12\n    },\n    levels: [],\n    nodeAlign: 'justify',\n    lineStyle: {\n      color: '#314656',\n      opacity: 0.2,\n      curveness: 0.5\n    },\n    emphasis: {\n      label: {\n        show: true\n      },\n      lineStyle: {\n        opacity: 0.5\n      }\n    },\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    },\n    animationEasing: 'linear',\n    animationDuration: 1000\n  };\n  return SankeySeriesModel;\n}(SeriesModel);\n\nexport default SankeySeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as layout from '../../util/layout';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { groupData } from '../../util/model';\nexport default function sankeyLayout(ecModel, api) {\n  ecModel.eachSeriesByType('sankey', function (seriesModel) {\n    var nodeWidth = seriesModel.get('nodeWidth');\n    var nodeGap = seriesModel.get('nodeGap');\n    var layoutInfo = getViewRect(seriesModel, api);\n    seriesModel.layoutInfo = layoutInfo;\n    var width = layoutInfo.width;\n    var height = layoutInfo.height;\n    var graph = seriesModel.getGraph();\n    var nodes = graph.nodes;\n    var edges = graph.edges;\n    computeNodeValues(nodes);\n    var filteredNodes = zrUtil.filter(nodes, function (node) {\n      return node.getLayout().value === 0;\n    });\n    var iterations = filteredNodes.length !== 0 ? 0 : seriesModel.get('layoutIterations');\n    var orient = seriesModel.get('orient');\n    var nodeAlign = seriesModel.get('nodeAlign');\n    layoutSankey(nodes, edges, nodeWidth, nodeGap, width, height, iterations, orient, nodeAlign);\n  });\n}\n\nfunction getViewRect(seriesModel, api) {\n  return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n}\n\nfunction layoutSankey(nodes, edges, nodeWidth, nodeGap, width, height, iterations, orient, nodeAlign) {\n  computeNodeBreadths(nodes, edges, nodeWidth, width, height, orient, nodeAlign);\n  computeNodeDepths(nodes, edges, height, width, nodeGap, iterations, orient);\n  computeEdgeDepths(nodes, orient);\n}\n\nfunction computeNodeValues(nodes) {\n  zrUtil.each(nodes, function (node) {\n    var value1 = sum(node.outEdges, getEdgeValue);\n    var value2 = sum(node.inEdges, getEdgeValue);\n    var nodeRawValue = node.getValue() || 0;\n    var value = Math.max(value1, value2, nodeRawValue);\n    node.setLayout({\n      value: value\n    }, true);\n  });\n}\n\nfunction computeNodeBreadths(nodes, edges, nodeWidth, width, height, orient, nodeAlign) {\n  var remainEdges = [];\n  var indegreeArr = [];\n  var zeroIndegrees = [];\n  var nextTargetNode = [];\n  var x = 0;\n\n  for (var i = 0; i < edges.length; i++) {\n    remainEdges[i] = 1;\n  }\n\n  for (var i = 0; i < nodes.length; i++) {\n    indegreeArr[i] = nodes[i].inEdges.length;\n\n    if (indegreeArr[i] === 0) {\n      zeroIndegrees.push(nodes[i]);\n    }\n  }\n\n  var maxNodeDepth = -1;\n\n  while (zeroIndegrees.length) {\n    for (var idx = 0; idx < zeroIndegrees.length; idx++) {\n      var node = zeroIndegrees[idx];\n      var item = node.hostGraph.data.getRawDataItem(node.dataIndex);\n      var isItemDepth = item.depth != null && item.depth >= 0;\n\n      if (isItemDepth && item.depth > maxNodeDepth) {\n        maxNodeDepth = item.depth;\n      }\n\n      node.setLayout({\n        depth: isItemDepth ? item.depth : x\n      }, true);\n      orient === 'vertical' ? node.setLayout({\n        dy: nodeWidth\n      }, true) : node.setLayout({\n        dx: nodeWidth\n      }, true);\n\n      for (var edgeIdx = 0; edgeIdx < node.outEdges.length; edgeIdx++) {\n        var edge = node.outEdges[edgeIdx];\n        var indexEdge = edges.indexOf(edge);\n        remainEdges[indexEdge] = 0;\n        var targetNode = edge.node2;\n        var nodeIndex = nodes.indexOf(targetNode);\n\n        if (--indegreeArr[nodeIndex] === 0 && nextTargetNode.indexOf(targetNode) < 0) {\n          nextTargetNode.push(targetNode);\n        }\n      }\n    }\n\n    ++x;\n    zeroIndegrees = nextTargetNode;\n    nextTargetNode = [];\n  }\n\n  for (var i = 0; i < remainEdges.length; i++) {\n    if (remainEdges[i] === 1) {\n      throw new Error('Sankey is a DAG, the original data has cycle!');\n    }\n  }\n\n  var maxDepth = maxNodeDepth > x - 1 ? maxNodeDepth : x - 1;\n\n  if (nodeAlign && nodeAlign !== 'left') {\n    adjustNodeWithNodeAlign(nodes, nodeAlign, orient, maxDepth);\n  }\n\n  var kx = orient === 'vertical' ? (height - nodeWidth) / maxDepth : (width - nodeWidth) / maxDepth;\n  scaleNodeBreadths(nodes, kx, orient);\n}\n\nfunction isNodeDepth(node) {\n  var item = node.hostGraph.data.getRawDataItem(node.dataIndex);\n  return item.depth != null && item.depth >= 0;\n}\n\nfunction adjustNodeWithNodeAlign(nodes, nodeAlign, orient, maxDepth) {\n  if (nodeAlign === 'right') {\n    var nextSourceNode = [];\n    var remainNodes = nodes;\n    var nodeHeight = 0;\n\n    while (remainNodes.length) {\n      for (var i = 0; i < remainNodes.length; i++) {\n        var node = remainNodes[i];\n        node.setLayout({\n          skNodeHeight: nodeHeight\n        }, true);\n\n        for (var j = 0; j < node.inEdges.length; j++) {\n          var edge = node.inEdges[j];\n\n          if (nextSourceNode.indexOf(edge.node1) < 0) {\n            nextSourceNode.push(edge.node1);\n          }\n        }\n      }\n\n      remainNodes = nextSourceNode;\n      nextSourceNode = [];\n      ++nodeHeight;\n    }\n\n    zrUtil.each(nodes, function (node) {\n      if (!isNodeDepth(node)) {\n        node.setLayout({\n          depth: Math.max(0, maxDepth - node.getLayout().skNodeHeight)\n        }, true);\n      }\n    });\n  } else if (nodeAlign === 'justify') {\n    moveSinksRight(nodes, maxDepth);\n  }\n}\n\nfunction moveSinksRight(nodes, maxDepth) {\n  zrUtil.each(nodes, function (node) {\n    if (!isNodeDepth(node) && !node.outEdges.length) {\n      node.setLayout({\n        depth: maxDepth\n      }, true);\n    }\n  });\n}\n\nfunction scaleNodeBreadths(nodes, kx, orient) {\n  zrUtil.each(nodes, function (node) {\n    var nodeDepth = node.getLayout().depth * kx;\n    orient === 'vertical' ? node.setLayout({\n      y: nodeDepth\n    }, true) : node.setLayout({\n      x: nodeDepth\n    }, true);\n  });\n}\n\nfunction computeNodeDepths(nodes, edges, height, width, nodeGap, iterations, orient) {\n  var nodesByBreadth = prepareNodesByBreadth(nodes, orient);\n  initializeNodeDepth(nodesByBreadth, edges, height, width, nodeGap, orient);\n  resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\n\n  for (var alpha = 1; iterations > 0; iterations--) {\n    alpha *= 0.99;\n    relaxRightToLeft(nodesByBreadth, alpha, orient);\n    resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\n    relaxLeftToRight(nodesByBreadth, alpha, orient);\n    resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\n  }\n}\n\nfunction prepareNodesByBreadth(nodes, orient) {\n  var nodesByBreadth = [];\n  var keyAttr = orient === 'vertical' ? 'y' : 'x';\n  var groupResult = groupData(nodes, function (node) {\n    return node.getLayout()[keyAttr];\n  });\n  groupResult.keys.sort(function (a, b) {\n    return a - b;\n  });\n  zrUtil.each(groupResult.keys, function (key) {\n    nodesByBreadth.push(groupResult.buckets.get(key));\n  });\n  return nodesByBreadth;\n}\n\nfunction initializeNodeDepth(nodesByBreadth, edges, height, width, nodeGap, orient) {\n  var minKy = Infinity;\n  zrUtil.each(nodesByBreadth, function (nodes) {\n    var n = nodes.length;\n    var sum = 0;\n    zrUtil.each(nodes, function (node) {\n      sum += node.getLayout().value;\n    });\n    var ky = orient === 'vertical' ? (width - (n - 1) * nodeGap) / sum : (height - (n - 1) * nodeGap) / sum;\n\n    if (ky < minKy) {\n      minKy = ky;\n    }\n  });\n  zrUtil.each(nodesByBreadth, function (nodes) {\n    zrUtil.each(nodes, function (node, i) {\n      var nodeDy = node.getLayout().value * minKy;\n\n      if (orient === 'vertical') {\n        node.setLayout({\n          x: i\n        }, true);\n        node.setLayout({\n          dx: nodeDy\n        }, true);\n      } else {\n        node.setLayout({\n          y: i\n        }, true);\n        node.setLayout({\n          dy: nodeDy\n        }, true);\n      }\n    });\n  });\n  zrUtil.each(edges, function (edge) {\n    var edgeDy = +edge.getValue() * minKy;\n    edge.setLayout({\n      dy: edgeDy\n    }, true);\n  });\n}\n\nfunction resolveCollisions(nodesByBreadth, nodeGap, height, width, orient) {\n  var keyAttr = orient === 'vertical' ? 'x' : 'y';\n  zrUtil.each(nodesByBreadth, function (nodes) {\n    nodes.sort(function (a, b) {\n      return a.getLayout()[keyAttr] - b.getLayout()[keyAttr];\n    });\n    var nodeX;\n    var node;\n    var dy;\n    var y0 = 0;\n    var n = nodes.length;\n    var nodeDyAttr = orient === 'vertical' ? 'dx' : 'dy';\n\n    for (var i = 0; i < n; i++) {\n      node = nodes[i];\n      dy = y0 - node.getLayout()[keyAttr];\n\n      if (dy > 0) {\n        nodeX = node.getLayout()[keyAttr] + dy;\n        orient === 'vertical' ? node.setLayout({\n          x: nodeX\n        }, true) : node.setLayout({\n          y: nodeX\n        }, true);\n      }\n\n      y0 = node.getLayout()[keyAttr] + node.getLayout()[nodeDyAttr] + nodeGap;\n    }\n\n    var viewWidth = orient === 'vertical' ? width : height;\n    dy = y0 - nodeGap - viewWidth;\n\n    if (dy > 0) {\n      nodeX = node.getLayout()[keyAttr] - dy;\n      orient === 'vertical' ? node.setLayout({\n        x: nodeX\n      }, true) : node.setLayout({\n        y: nodeX\n      }, true);\n      y0 = nodeX;\n\n      for (var i = n - 2; i >= 0; --i) {\n        node = nodes[i];\n        dy = node.getLayout()[keyAttr] + node.getLayout()[nodeDyAttr] + nodeGap - y0;\n\n        if (dy > 0) {\n          nodeX = node.getLayout()[keyAttr] - dy;\n          orient === 'vertical' ? node.setLayout({\n            x: nodeX\n          }, true) : node.setLayout({\n            y: nodeX\n          }, true);\n        }\n\n        y0 = node.getLayout()[keyAttr];\n      }\n    }\n  });\n}\n\nfunction relaxRightToLeft(nodesByBreadth, alpha, orient) {\n  zrUtil.each(nodesByBreadth.slice().reverse(), function (nodes) {\n    zrUtil.each(nodes, function (node) {\n      if (node.outEdges.length) {\n        var y = sum(node.outEdges, weightedTarget, orient) / sum(node.outEdges, getEdgeValue);\n\n        if (isNaN(y)) {\n          var len = node.outEdges.length;\n          y = len ? sum(node.outEdges, centerTarget, orient) / len : 0;\n        }\n\n        if (orient === 'vertical') {\n          var nodeX = node.getLayout().x + (y - center(node, orient)) * alpha;\n          node.setLayout({\n            x: nodeX\n          }, true);\n        } else {\n          var nodeY = node.getLayout().y + (y - center(node, orient)) * alpha;\n          node.setLayout({\n            y: nodeY\n          }, true);\n        }\n      }\n    });\n  });\n}\n\nfunction weightedTarget(edge, orient) {\n  return center(edge.node2, orient) * edge.getValue();\n}\n\nfunction centerTarget(edge, orient) {\n  return center(edge.node2, orient);\n}\n\nfunction weightedSource(edge, orient) {\n  return center(edge.node1, orient) * edge.getValue();\n}\n\nfunction centerSource(edge, orient) {\n  return center(edge.node1, orient);\n}\n\nfunction center(node, orient) {\n  return orient === 'vertical' ? node.getLayout().x + node.getLayout().dx / 2 : node.getLayout().y + node.getLayout().dy / 2;\n}\n\nfunction getEdgeValue(edge) {\n  return edge.getValue();\n}\n\nfunction sum(array, cb, orient) {\n  var sum = 0;\n  var len = array.length;\n  var i = -1;\n\n  while (++i < len) {\n    var value = +cb(array[i], orient);\n\n    if (!isNaN(value)) {\n      sum += value;\n    }\n  }\n\n  return sum;\n}\n\nfunction relaxLeftToRight(nodesByBreadth, alpha, orient) {\n  zrUtil.each(nodesByBreadth, function (nodes) {\n    zrUtil.each(nodes, function (node) {\n      if (node.inEdges.length) {\n        var y = sum(node.inEdges, weightedSource, orient) / sum(node.inEdges, getEdgeValue);\n\n        if (isNaN(y)) {\n          var len = node.inEdges.length;\n          y = len ? sum(node.inEdges, centerSource, orient) / len : 0;\n        }\n\n        if (orient === 'vertical') {\n          var nodeX = node.getLayout().x + (y - center(node, orient)) * alpha;\n          node.setLayout({\n            x: nodeX\n          }, true);\n        } else {\n          var nodeY = node.getLayout().y + (y - center(node, orient)) * alpha;\n          node.setLayout({\n            y: nodeY\n          }, true);\n        }\n      }\n    });\n  });\n}\n\nfunction computeEdgeDepths(nodes, orient) {\n  var keyAttr = orient === 'vertical' ? 'x' : 'y';\n  zrUtil.each(nodes, function (node) {\n    node.outEdges.sort(function (a, b) {\n      return a.node2.getLayout()[keyAttr] - b.node2.getLayout()[keyAttr];\n    });\n    node.inEdges.sort(function (a, b) {\n      return a.node1.getLayout()[keyAttr] - b.node1.getLayout()[keyAttr];\n    });\n  });\n  zrUtil.each(nodes, function (node) {\n    var sy = 0;\n    var ty = 0;\n    zrUtil.each(node.outEdges, function (edge) {\n      edge.setLayout({\n        sy: sy\n      }, true);\n      sy += edge.getLayout().dy;\n    });\n    zrUtil.each(node.inEdges, function (edge) {\n      edge.setLayout({\n        ty: ty\n      }, true);\n      ty += edge.getLayout().dy;\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport VisualMapping from '../../visual/VisualMapping';\nexport default function sankeyVisual(ecModel) {\n  ecModel.eachSeriesByType('sankey', function (seriesModel) {\n    var graph = seriesModel.getGraph();\n    var nodes = graph.nodes;\n\n    if (nodes.length) {\n      var minValue_1 = Infinity;\n      var maxValue_1 = -Infinity;\n      zrUtil.each(nodes, function (node) {\n        var nodeValue = node.getLayout().value;\n\n        if (nodeValue < minValue_1) {\n          minValue_1 = nodeValue;\n        }\n\n        if (nodeValue > maxValue_1) {\n          maxValue_1 = nodeValue;\n        }\n      });\n      zrUtil.each(nodes, function (node) {\n        var mapping = new VisualMapping({\n          type: 'color',\n          mappingMethod: 'linear',\n          dataExtent: [minValue_1, maxValue_1],\n          visual: seriesModel.get('color')\n        });\n        var mapValueToColor = mapping.mapValueToVisual(node.getLayout().value);\n        var customColor = node.getModel().get(['itemStyle', 'color']);\n\n        if (customColor != null) {\n          node.setVisual('color', customColor);\n          node.setVisual('style', {\n            fill: customColor\n          });\n        } else {\n          node.setVisual('color', mapValueToColor);\n          node.setVisual('style', {\n            fill: mapValueToColor\n          });\n        }\n      });\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SankeyView from './SankeyView';\nimport SankeySeriesModel from './SankeySeries';\nimport sankeyLayout from './sankeyLayout';\nimport sankeyVisual from './sankeyVisual';\nexport function install(registers) {\n  registers.registerChartView(SankeyView);\n  registers.registerSeriesModel(SankeySeriesModel);\n  registers.registerLayout(sankeyLayout);\n  registers.registerVisual(sankeyVisual);\n  registers.registerAction({\n    type: 'dragNode',\n    event: 'dragnode',\n    update: 'update'\n  }, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'sankey',\n      query: payload\n    }, function (seriesModel) {\n      seriesModel.setNodePosition(payload.dataIndex, [payload.localX, payload.localY]);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport createListSimply from '../helper/createListSimply';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { getDimensionTypeByAxis } from '../../data/helper/dimensionHelper';\nimport { makeSeriesEncodeForAxisCoordSys } from '../../data/helper/sourceHelper';\n\nvar WhiskerBoxCommonMixin = function () {\n  function WhiskerBoxCommonMixin() {}\n\n  WhiskerBoxCommonMixin.prototype.getInitialData = function (option, ecModel) {\n    var ordinalMeta;\n    var xAxisModel = ecModel.getComponent('xAxis', this.get('xAxisIndex'));\n    var yAxisModel = ecModel.getComponent('yAxis', this.get('yAxisIndex'));\n    var xAxisType = xAxisModel.get('type');\n    var yAxisType = yAxisModel.get('type');\n    var addOrdinal;\n\n    if (xAxisType === 'category') {\n      option.layout = 'horizontal';\n      ordinalMeta = xAxisModel.getOrdinalMeta();\n      addOrdinal = true;\n    } else if (yAxisType === 'category') {\n      option.layout = 'vertical';\n      ordinalMeta = yAxisModel.getOrdinalMeta();\n      addOrdinal = true;\n    } else {\n      option.layout = option.layout || 'horizontal';\n    }\n\n    var coordDims = ['x', 'y'];\n    var baseAxisDimIndex = option.layout === 'horizontal' ? 0 : 1;\n    var baseAxisDim = this._baseAxisDim = coordDims[baseAxisDimIndex];\n    var otherAxisDim = coordDims[1 - baseAxisDimIndex];\n    var axisModels = [xAxisModel, yAxisModel];\n    var baseAxisType = axisModels[baseAxisDimIndex].get('type');\n    var otherAxisType = axisModels[1 - baseAxisDimIndex].get('type');\n    var data = option.data;\n\n    if (data && addOrdinal) {\n      var newOptionData_1 = [];\n      zrUtil.each(data, function (item, index) {\n        var newItem;\n\n        if (zrUtil.isArray(item)) {\n          newItem = item.slice();\n          item.unshift(index);\n        } else if (zrUtil.isArray(item.value)) {\n          newItem = item.value.slice();\n          item.value.unshift(index);\n        } else {\n          newItem = item;\n        }\n\n        newOptionData_1.push(newItem);\n      });\n      option.data = newOptionData_1;\n    }\n\n    var defaultValueDimensions = this.defaultValueDimensions;\n    var coordDimensions = [{\n      name: baseAxisDim,\n      type: getDimensionTypeByAxis(baseAxisType),\n      ordinalMeta: ordinalMeta,\n      otherDims: {\n        tooltip: false,\n        itemName: 0\n      },\n      dimsDef: ['base']\n    }, {\n      name: otherAxisDim,\n      type: getDimensionTypeByAxis(otherAxisType),\n      dimsDef: defaultValueDimensions.slice()\n    }];\n    return createListSimply(this, {\n      coordDimensions: coordDimensions,\n      dimensionsCount: defaultValueDimensions.length + 1,\n      encodeDefaulter: zrUtil.curry(makeSeriesEncodeForAxisCoordSys, coordDimensions, this)\n    });\n  };\n\n  WhiskerBoxCommonMixin.prototype.getBaseAxis = function () {\n    var dim = this._baseAxisDim;\n    return this.ecModel.getComponent(dim + 'Axis', this.get(dim + 'AxisIndex')).axis;\n  };\n\n  return WhiskerBoxCommonMixin;\n}();\n\n;\nexport { WhiskerBoxCommonMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport { WhiskerBoxCommonMixin } from '../helper/whiskerBoxCommon';\nimport { mixin } from 'zrender/lib/core/util';\n\nvar BoxplotSeriesModel = function (_super) {\n  __extends(BoxplotSeriesModel, _super);\n\n  function BoxplotSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BoxplotSeriesModel.type;\n    _this.defaultValueDimensions = [{\n      name: 'min',\n      defaultTooltip: true\n    }, {\n      name: 'Q1',\n      defaultTooltip: true\n    }, {\n      name: 'median',\n      defaultTooltip: true\n    }, {\n      name: 'Q3',\n      defaultTooltip: true\n    }, {\n      name: 'max',\n      defaultTooltip: true\n    }];\n    _this.visualDrawType = 'stroke';\n    return _this;\n  }\n\n  BoxplotSeriesModel.type = 'series.boxplot';\n  BoxplotSeriesModel.dependencies = ['xAxis', 'yAxis', 'grid'];\n  BoxplotSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'cartesian2d',\n    legendHoverLink: true,\n    layout: null,\n    boxWidth: [7, 50],\n    itemStyle: {\n      color: '#fff',\n      borderWidth: 1\n    },\n    emphasis: {\n      scale: true,\n      itemStyle: {\n        borderWidth: 2,\n        shadowBlur: 5,\n        shadowOffsetX: 1,\n        shadowOffsetY: 1,\n        shadowColor: 'rgba(0,0,0,0.2)'\n      }\n    },\n    animationDuration: 800\n  };\n  return BoxplotSeriesModel;\n}(SeriesModel);\n\nmixin(BoxplotSeriesModel, WhiskerBoxCommonMixin, true);\nexport default BoxplotSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ChartView from '../../view/Chart';\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport Path from 'zrender/lib/graphic/Path';\n\nvar BoxplotView = function (_super) {\n  __extends(BoxplotView, _super);\n\n  function BoxplotView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BoxplotView.type;\n    return _this;\n  }\n\n  BoxplotView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    var group = this.group;\n    var oldData = this._data;\n\n    if (!this._data) {\n      group.removeAll();\n    }\n\n    var constDim = seriesModel.get('layout') === 'horizontal' ? 1 : 0;\n    data.diff(oldData).add(function (newIdx) {\n      if (data.hasValue(newIdx)) {\n        var itemLayout = data.getItemLayout(newIdx);\n        var symbolEl = createNormalBox(itemLayout, data, newIdx, constDim, true);\n        data.setItemGraphicEl(newIdx, symbolEl);\n        group.add(symbolEl);\n      }\n    }).update(function (newIdx, oldIdx) {\n      var symbolEl = oldData.getItemGraphicEl(oldIdx);\n\n      if (!data.hasValue(newIdx)) {\n        group.remove(symbolEl);\n        return;\n      }\n\n      var itemLayout = data.getItemLayout(newIdx);\n\n      if (!symbolEl) {\n        symbolEl = createNormalBox(itemLayout, data, newIdx, constDim);\n      } else {\n        updateNormalBoxData(itemLayout, symbolEl, data, newIdx);\n      }\n\n      group.add(symbolEl);\n      data.setItemGraphicEl(newIdx, symbolEl);\n    }).remove(function (oldIdx) {\n      var el = oldData.getItemGraphicEl(oldIdx);\n      el && group.remove(el);\n    }).execute();\n    this._data = data;\n  };\n\n  BoxplotView.prototype.remove = function (ecModel) {\n    var group = this.group;\n    var data = this._data;\n    this._data = null;\n    data && data.eachItemGraphicEl(function (el) {\n      el && group.remove(el);\n    });\n  };\n\n  BoxplotView.type = 'boxplot';\n  return BoxplotView;\n}(ChartView);\n\nvar BoxPathShape = function () {\n  function BoxPathShape() {}\n\n  return BoxPathShape;\n}();\n\nvar BoxPath = function (_super) {\n  __extends(BoxPath, _super);\n\n  function BoxPath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'boxplotBoxPath';\n    return _this;\n  }\n\n  BoxPath.prototype.getDefaultShape = function () {\n    return new BoxPathShape();\n  };\n\n  BoxPath.prototype.buildPath = function (ctx, shape) {\n    var ends = shape.points;\n    var i = 0;\n    ctx.moveTo(ends[i][0], ends[i][1]);\n    i++;\n\n    for (; i < 4; i++) {\n      ctx.lineTo(ends[i][0], ends[i][1]);\n    }\n\n    ctx.closePath();\n\n    for (; i < ends.length; i++) {\n      ctx.moveTo(ends[i][0], ends[i][1]);\n      i++;\n      ctx.lineTo(ends[i][0], ends[i][1]);\n    }\n  };\n\n  return BoxPath;\n}(Path);\n\nfunction createNormalBox(itemLayout, data, dataIndex, constDim, isInit) {\n  var ends = itemLayout.ends;\n  var el = new BoxPath({\n    shape: {\n      points: isInit ? transInit(ends, constDim, itemLayout) : ends\n    }\n  });\n  updateNormalBoxData(itemLayout, el, data, dataIndex, isInit);\n  return el;\n}\n\nfunction updateNormalBoxData(itemLayout, el, data, dataIndex, isInit) {\n  var seriesModel = data.hostModel;\n  var updateMethod = graphic[isInit ? 'initProps' : 'updateProps'];\n  updateMethod(el, {\n    shape: {\n      points: itemLayout.ends\n    }\n  }, seriesModel, dataIndex);\n  el.useStyle(data.getItemVisual(dataIndex, 'style'));\n  el.style.strokeNoScale = true;\n  el.z2 = 100;\n  var itemModel = data.getItemModel(dataIndex);\n  setStatesStylesFromModel(el, itemModel);\n  enableHoverEmphasis(el, itemModel.get(['emphasis', 'focus']), itemModel.get(['emphasis', 'blurScope']));\n}\n\nfunction transInit(points, dim, itemLayout) {\n  return zrUtil.map(points, function (point) {\n    point = point.slice();\n    point[dim] = itemLayout.initBaseline;\n    return point;\n  });\n}\n\nexport default BoxplotView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function boxplotVisual(ecModel, api) {\n  ecModel.eachRawSeriesByType('boxplot', function (seriesModel) {\n    seriesModel.getData().setVisual('legendSymbol', 'roundRect');\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parsePercent } from '../../util/number';\nvar each = zrUtil.each;\nexport default function boxplotLayout(ecModel) {\n  var groupResult = groupSeriesByAxis(ecModel);\n  each(groupResult, function (groupItem) {\n    var seriesModels = groupItem.seriesModels;\n\n    if (!seriesModels.length) {\n      return;\n    }\n\n    calculateBase(groupItem);\n    each(seriesModels, function (seriesModel, idx) {\n      layoutSingleSeries(seriesModel, groupItem.boxOffsetList[idx], groupItem.boxWidthList[idx]);\n    });\n  });\n}\n\nfunction groupSeriesByAxis(ecModel) {\n  var result = [];\n  var axisList = [];\n  ecModel.eachSeriesByType('boxplot', function (seriesModel) {\n    var baseAxis = seriesModel.getBaseAxis();\n    var idx = zrUtil.indexOf(axisList, baseAxis);\n\n    if (idx < 0) {\n      idx = axisList.length;\n      axisList[idx] = baseAxis;\n      result[idx] = {\n        axis: baseAxis,\n        seriesModels: []\n      };\n    }\n\n    result[idx].seriesModels.push(seriesModel);\n  });\n  return result;\n}\n\nfunction calculateBase(groupItem) {\n  var extent;\n  var baseAxis = groupItem.axis;\n  var seriesModels = groupItem.seriesModels;\n  var seriesCount = seriesModels.length;\n  var boxWidthList = groupItem.boxWidthList = [];\n  var boxOffsetList = groupItem.boxOffsetList = [];\n  var boundList = [];\n  var bandWidth;\n\n  if (baseAxis.type === 'category') {\n    bandWidth = baseAxis.getBandWidth();\n  } else {\n    var maxDataCount_1 = 0;\n    each(seriesModels, function (seriesModel) {\n      maxDataCount_1 = Math.max(maxDataCount_1, seriesModel.getData().count());\n    });\n    extent = baseAxis.getExtent(), Math.abs(extent[1] - extent[0]) / maxDataCount_1;\n  }\n\n  each(seriesModels, function (seriesModel) {\n    var boxWidthBound = seriesModel.get('boxWidth');\n\n    if (!zrUtil.isArray(boxWidthBound)) {\n      boxWidthBound = [boxWidthBound, boxWidthBound];\n    }\n\n    boundList.push([parsePercent(boxWidthBound[0], bandWidth) || 0, parsePercent(boxWidthBound[1], bandWidth) || 0]);\n  });\n  var availableWidth = bandWidth * 0.8 - 2;\n  var boxGap = availableWidth / seriesCount * 0.3;\n  var boxWidth = (availableWidth - boxGap * (seriesCount - 1)) / seriesCount;\n  var base = boxWidth / 2 - availableWidth / 2;\n  each(seriesModels, function (seriesModel, idx) {\n    boxOffsetList.push(base);\n    base += boxGap + boxWidth;\n    boxWidthList.push(Math.min(Math.max(boxWidth, boundList[idx][0]), boundList[idx][1]));\n  });\n}\n\nfunction layoutSingleSeries(seriesModel, offset, boxWidth) {\n  var coordSys = seriesModel.coordinateSystem;\n  var data = seriesModel.getData();\n  var halfWidth = boxWidth / 2;\n  var cDimIdx = seriesModel.get('layout') === 'horizontal' ? 0 : 1;\n  var vDimIdx = 1 - cDimIdx;\n  var coordDims = ['x', 'y'];\n  var cDim = data.mapDimension(coordDims[cDimIdx]);\n  var vDims = data.mapDimensionsAll(coordDims[vDimIdx]);\n\n  if (cDim == null || vDims.length < 5) {\n    return;\n  }\n\n  for (var dataIndex = 0; dataIndex < data.count(); dataIndex++) {\n    var axisDimVal = data.get(cDim, dataIndex);\n    var median = getPoint(axisDimVal, vDims[2], dataIndex);\n    var end1 = getPoint(axisDimVal, vDims[0], dataIndex);\n    var end2 = getPoint(axisDimVal, vDims[1], dataIndex);\n    var end4 = getPoint(axisDimVal, vDims[3], dataIndex);\n    var end5 = getPoint(axisDimVal, vDims[4], dataIndex);\n    var ends = [];\n    addBodyEnd(ends, end2, false);\n    addBodyEnd(ends, end4, true);\n    ends.push(end1, end2, end5, end4);\n    layEndLine(ends, end1);\n    layEndLine(ends, end5);\n    layEndLine(ends, median);\n    data.setItemLayout(dataIndex, {\n      initBaseline: median[vDimIdx],\n      ends: ends\n    });\n  }\n\n  function getPoint(axisDimVal, dim, dataIndex) {\n    var val = data.get(dim, dataIndex);\n    var p = [];\n    p[cDimIdx] = axisDimVal;\n    p[vDimIdx] = val;\n    var point;\n\n    if (isNaN(axisDimVal) || isNaN(val)) {\n      point = [NaN, NaN];\n    } else {\n      point = coordSys.dataToPoint(p);\n      point[cDimIdx] += offset;\n    }\n\n    return point;\n  }\n\n  function addBodyEnd(ends, point, start) {\n    var point1 = point.slice();\n    var point2 = point.slice();\n    point1[cDimIdx] += halfWidth;\n    point2[cDimIdx] -= halfWidth;\n    start ? ends.push(point1, point2) : ends.push(point2, point1);\n  }\n\n  function layEndLine(ends, endCenter) {\n    var from = endCenter.slice();\n    var to = endCenter.slice();\n    from[cDimIdx] -= halfWidth;\n    to[cDimIdx] += halfWidth;\n    ends.push(from, to);\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { quantile, asc } from '../../util/number';\nimport { isFunction, isString } from 'zrender/lib/core/util';\nexport default function prepareBoxplotData(rawData, opt) {\n  opt = opt || {};\n  var boxData = [];\n  var outliers = [];\n  var boundIQR = opt.boundIQR;\n  var useExtreme = boundIQR === 'none' || boundIQR === 0;\n\n  for (var i = 0; i < rawData.length; i++) {\n    var ascList = asc(rawData[i].slice());\n    var Q1 = quantile(ascList, 0.25);\n    var Q2 = quantile(ascList, 0.5);\n    var Q3 = quantile(ascList, 0.75);\n    var min = ascList[0];\n    var max = ascList[ascList.length - 1];\n    var bound = (boundIQR == null ? 1.5 : boundIQR) * (Q3 - Q1);\n    var low = useExtreme ? min : Math.max(min, Q1 - bound);\n    var high = useExtreme ? max : Math.min(max, Q3 + bound);\n    var itemNameFormatter = opt.itemNameFormatter;\n    var itemName = isFunction(itemNameFormatter) ? itemNameFormatter({\n      value: i\n    }) : isString(itemNameFormatter) ? itemNameFormatter.replace('{value}', i + '') : i + '';\n    boxData.push([itemName, low, Q1, Q2, Q3, high]);\n\n    for (var j = 0; j < ascList.length; j++) {\n      var dataItem = ascList[j];\n\n      if (dataItem < low || dataItem > high) {\n        var outlier = [itemName, dataItem];\n        outliers.push(outlier);\n      }\n    }\n  }\n\n  return {\n    boxData: boxData,\n    outliers: outliers\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport prepareBoxplotData from './prepareBoxplotData';\nimport { throwError, makePrintable } from '../../util/log';\nimport { SOURCE_FORMAT_ARRAY_ROWS } from '../../util/types';\nexport var boxplotTransform = {\n  type: 'echarts:boxplot',\n  transform: function transform(params) {\n    var upstream = params.upstream;\n\n    if (upstream.sourceFormat !== SOURCE_FORMAT_ARRAY_ROWS) {\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = makePrintable('source data is not applicable for this boxplot transform. Expect number[][].');\n      }\n\n      throwError(errMsg);\n    }\n\n    var result = prepareBoxplotData(upstream.getRawData(), params.config);\n    return [{\n      dimensions: ['ItemName', 'Low', 'Q1', 'Q2', 'Q3', 'High'],\n      data: result.boxData\n    }, {\n      data: result.outliers\n    }];\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport BoxplotSeriesModel from './BoxplotSeries';\nimport BoxplotView from './BoxplotView';\nimport boxplotVisual from './boxplotVisual';\nimport boxplotLayout from './boxplotLayout';\nimport { boxplotTransform } from './boxplotTransform';\nexport function install(registers) {\n  registers.registerSeriesModel(BoxplotSeriesModel);\n  registers.registerChartView(BoxplotView);\n  registers.registerVisual(boxplotVisual);\n  registers.registerLayout(boxplotLayout);\n  registers.registerTransform(boxplotTransform);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ChartView from '../../view/Chart';\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel } from '../../util/states';\nimport Path from 'zrender/lib/graphic/Path';\nimport { createClipPath } from '../helper/createClipPathFromCoordSys';\nvar SKIP_PROPS = ['color', 'borderColor'];\n\nvar CandlestickView = function (_super) {\n  __extends(CandlestickView, _super);\n\n  function CandlestickView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CandlestickView.type;\n    return _this;\n  }\n\n  CandlestickView.prototype.render = function (seriesModel, ecModel, api) {\n    this.group.removeClipPath();\n\n    this._updateDrawMode(seriesModel);\n\n    this._isLargeDraw ? this._renderLarge(seriesModel) : this._renderNormal(seriesModel);\n  };\n\n  CandlestickView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n    this._clear();\n\n    this._updateDrawMode(seriesModel);\n  };\n\n  CandlestickView.prototype.incrementalRender = function (params, seriesModel, ecModel, api) {\n    this._isLargeDraw ? this._incrementalRenderLarge(params, seriesModel) : this._incrementalRenderNormal(params, seriesModel);\n  };\n\n  CandlestickView.prototype._updateDrawMode = function (seriesModel) {\n    var isLargeDraw = seriesModel.pipelineContext.large;\n\n    if (this._isLargeDraw == null || isLargeDraw !== this._isLargeDraw) {\n      this._isLargeDraw = isLargeDraw;\n\n      this._clear();\n    }\n  };\n\n  CandlestickView.prototype._renderNormal = function (seriesModel) {\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var group = this.group;\n    var isSimpleBox = data.getLayout('isSimpleBox');\n    var needsClip = seriesModel.get('clip', true);\n    var coord = seriesModel.coordinateSystem;\n    var clipArea = coord.getArea && coord.getArea();\n\n    if (!this._data) {\n      group.removeAll();\n    }\n\n    data.diff(oldData).add(function (newIdx) {\n      if (data.hasValue(newIdx)) {\n        var itemLayout = data.getItemLayout(newIdx);\n\n        if (needsClip && isNormalBoxClipped(clipArea, itemLayout)) {\n          return;\n        }\n\n        var el = createNormalBox(itemLayout, newIdx, true);\n        graphic.initProps(el, {\n          shape: {\n            points: itemLayout.ends\n          }\n        }, seriesModel, newIdx);\n        setBoxCommon(el, data, newIdx, isSimpleBox);\n        group.add(el);\n        data.setItemGraphicEl(newIdx, el);\n      }\n    }).update(function (newIdx, oldIdx) {\n      var el = oldData.getItemGraphicEl(oldIdx);\n\n      if (!data.hasValue(newIdx)) {\n        group.remove(el);\n        return;\n      }\n\n      var itemLayout = data.getItemLayout(newIdx);\n\n      if (needsClip && isNormalBoxClipped(clipArea, itemLayout)) {\n        group.remove(el);\n        return;\n      }\n\n      if (!el) {\n        el = createNormalBox(itemLayout, newIdx);\n      } else {\n        graphic.updateProps(el, {\n          shape: {\n            points: itemLayout.ends\n          }\n        }, seriesModel, newIdx);\n      }\n\n      setBoxCommon(el, data, newIdx, isSimpleBox);\n      group.add(el);\n      data.setItemGraphicEl(newIdx, el);\n    }).remove(function (oldIdx) {\n      var el = oldData.getItemGraphicEl(oldIdx);\n      el && group.remove(el);\n    }).execute();\n    this._data = data;\n  };\n\n  CandlestickView.prototype._renderLarge = function (seriesModel) {\n    this._clear();\n\n    createLarge(seriesModel, this.group);\n    var clipPath = seriesModel.get('clip', true) ? createClipPath(seriesModel.coordinateSystem, false, seriesModel) : null;\n\n    if (clipPath) {\n      this.group.setClipPath(clipPath);\n    } else {\n      this.group.removeClipPath();\n    }\n  };\n\n  CandlestickView.prototype._incrementalRenderNormal = function (params, seriesModel) {\n    var data = seriesModel.getData();\n    var isSimpleBox = data.getLayout('isSimpleBox');\n    var dataIndex;\n\n    while ((dataIndex = params.next()) != null) {\n      var itemLayout = data.getItemLayout(dataIndex);\n      var el = createNormalBox(itemLayout, dataIndex);\n      setBoxCommon(el, data, dataIndex, isSimpleBox);\n      el.incremental = true;\n      this.group.add(el);\n    }\n  };\n\n  CandlestickView.prototype._incrementalRenderLarge = function (params, seriesModel) {\n    createLarge(seriesModel, this.group, true);\n  };\n\n  CandlestickView.prototype.remove = function (ecModel) {\n    this._clear();\n  };\n\n  CandlestickView.prototype._clear = function () {\n    this.group.removeAll();\n    this._data = null;\n  };\n\n  CandlestickView.type = 'candlestick';\n  return CandlestickView;\n}(ChartView);\n\nvar NormalBoxPathShape = function () {\n  function NormalBoxPathShape() {}\n\n  return NormalBoxPathShape;\n}();\n\nvar NormalBoxPath = function (_super) {\n  __extends(NormalBoxPath, _super);\n\n  function NormalBoxPath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'normalCandlestickBox';\n    return _this;\n  }\n\n  NormalBoxPath.prototype.getDefaultShape = function () {\n    return new NormalBoxPathShape();\n  };\n\n  NormalBoxPath.prototype.buildPath = function (ctx, shape) {\n    var ends = shape.points;\n\n    if (this.__simpleBox) {\n      ctx.moveTo(ends[4][0], ends[4][1]);\n      ctx.lineTo(ends[6][0], ends[6][1]);\n    } else {\n      ctx.moveTo(ends[0][0], ends[0][1]);\n      ctx.lineTo(ends[1][0], ends[1][1]);\n      ctx.lineTo(ends[2][0], ends[2][1]);\n      ctx.lineTo(ends[3][0], ends[3][1]);\n      ctx.closePath();\n      ctx.moveTo(ends[4][0], ends[4][1]);\n      ctx.lineTo(ends[5][0], ends[5][1]);\n      ctx.moveTo(ends[6][0], ends[6][1]);\n      ctx.lineTo(ends[7][0], ends[7][1]);\n    }\n  };\n\n  return NormalBoxPath;\n}(Path);\n\nfunction createNormalBox(itemLayout, dataIndex, isInit) {\n  var ends = itemLayout.ends;\n  return new NormalBoxPath({\n    shape: {\n      points: isInit ? transInit(ends, itemLayout) : ends\n    },\n    z2: 100\n  });\n}\n\nfunction isNormalBoxClipped(clipArea, itemLayout) {\n  var clipped = true;\n\n  for (var i = 0; i < itemLayout.ends.length; i++) {\n    if (clipArea.contain(itemLayout.ends[i][0], itemLayout.ends[i][1])) {\n      clipped = false;\n      break;\n    }\n  }\n\n  return clipped;\n}\n\nfunction setBoxCommon(el, data, dataIndex, isSimpleBox) {\n  var itemModel = data.getItemModel(dataIndex);\n  el.useStyle(data.getItemVisual(dataIndex, 'style'));\n  el.style.strokeNoScale = true;\n  el.__simpleBox = isSimpleBox;\n  setStatesStylesFromModel(el, itemModel);\n}\n\nfunction transInit(points, itemLayout) {\n  return zrUtil.map(points, function (point) {\n    point = point.slice();\n    point[1] = itemLayout.initBaseline;\n    return point;\n  });\n}\n\nvar LargeBoxPathShape = function () {\n  function LargeBoxPathShape() {}\n\n  return LargeBoxPathShape;\n}();\n\nvar LargeBoxPath = function (_super) {\n  __extends(LargeBoxPath, _super);\n\n  function LargeBoxPath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'largeCandlestickBox';\n    return _this;\n  }\n\n  LargeBoxPath.prototype.getDefaultShape = function () {\n    return new LargeBoxPathShape();\n  };\n\n  LargeBoxPath.prototype.buildPath = function (ctx, shape) {\n    var points = shape.points;\n\n    for (var i = 0; i < points.length;) {\n      if (this.__sign === points[i++]) {\n        var x = points[i++];\n        ctx.moveTo(x, points[i++]);\n        ctx.lineTo(x, points[i++]);\n      } else {\n        i += 3;\n      }\n    }\n  };\n\n  return LargeBoxPath;\n}(Path);\n\nfunction createLarge(seriesModel, group, incremental) {\n  var data = seriesModel.getData();\n  var largePoints = data.getLayout('largePoints');\n  var elP = new LargeBoxPath({\n    shape: {\n      points: largePoints\n    },\n    __sign: 1\n  });\n  group.add(elP);\n  var elN = new LargeBoxPath({\n    shape: {\n      points: largePoints\n    },\n    __sign: -1\n  });\n  group.add(elN);\n  setLargeStyle(1, elP, seriesModel, data);\n  setLargeStyle(-1, elN, seriesModel, data);\n\n  if (incremental) {\n    elP.incremental = true;\n    elN.incremental = true;\n  }\n}\n\nfunction setLargeStyle(sign, el, seriesModel, data) {\n  var borderColor = seriesModel.get(['itemStyle', sign > 0 ? 'borderColor' : 'borderColor0']) || seriesModel.get(['itemStyle', sign > 0 ? 'color' : 'color0']);\n  var itemStyle = seriesModel.getModel('itemStyle').getItemStyle(SKIP_PROPS);\n  el.useStyle(itemStyle);\n  el.style.fill = null;\n  el.style.stroke = borderColor;\n}\n\nexport default CandlestickView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport { WhiskerBoxCommonMixin } from '../helper/whiskerBoxCommon';\nimport { mixin } from 'zrender/lib/core/util';\n\nvar CandlestickSeriesModel = function (_super) {\n  __extends(CandlestickSeriesModel, _super);\n\n  function CandlestickSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CandlestickSeriesModel.type;\n    _this.defaultValueDimensions = [{\n      name: 'open',\n      defaultTooltip: true\n    }, {\n      name: 'close',\n      defaultTooltip: true\n    }, {\n      name: 'lowest',\n      defaultTooltip: true\n    }, {\n      name: 'highest',\n      defaultTooltip: true\n    }];\n    return _this;\n  }\n\n  CandlestickSeriesModel.prototype.getShadowDim = function () {\n    return 'open';\n  };\n\n  CandlestickSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n    var itemLayout = data.getItemLayout(dataIndex);\n    return itemLayout && selectors.rect(itemLayout.brushRect);\n  };\n\n  CandlestickSeriesModel.type = 'series.candlestick';\n  CandlestickSeriesModel.dependencies = ['xAxis', 'yAxis', 'grid'];\n  CandlestickSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'cartesian2d',\n    legendHoverLink: true,\n    layout: null,\n    clip: true,\n    itemStyle: {\n      color: '#eb5454',\n      color0: '#47b262',\n      borderColor: '#eb5454',\n      borderColor0: '#47b262',\n      borderWidth: 1\n    },\n    emphasis: {\n      scale: true,\n      itemStyle: {\n        borderWidth: 2\n      }\n    },\n    barMaxWidth: null,\n    barMinWidth: null,\n    barWidth: null,\n    large: true,\n    largeThreshold: 600,\n    progressive: 3e3,\n    progressiveThreshold: 1e4,\n    progressiveChunkMode: 'mod',\n    animationEasing: 'linear',\n    animationDuration: 300\n  };\n  return CandlestickSeriesModel;\n}(SeriesModel);\n\nmixin(CandlestickSeriesModel, WhiskerBoxCommonMixin, true);\nexport default CandlestickSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function candlestickPreprocessor(option) {\n  if (!option || !zrUtil.isArray(option.series)) {\n    return;\n  }\n\n  zrUtil.each(option.series, function (seriesItem) {\n    if (zrUtil.isObject(seriesItem) && seriesItem.type === 'k') {\n      seriesItem.type = 'candlestick';\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport createRenderPlanner from '../helper/createRenderPlanner';\nimport { extend } from 'zrender/lib/core/util';\nvar positiveBorderColorQuery = ['itemStyle', 'borderColor'];\nvar negativeBorderColorQuery = ['itemStyle', 'borderColor0'];\nvar positiveColorQuery = ['itemStyle', 'color'];\nvar negativeColorQuery = ['itemStyle', 'color0'];\nvar candlestickVisual = {\n  seriesType: 'candlestick',\n  plan: createRenderPlanner(),\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    function getColor(sign, model) {\n      return model.get(sign > 0 ? positiveColorQuery : negativeColorQuery);\n    }\n\n    function getBorderColor(sign, model) {\n      return model.get(sign > 0 ? positiveBorderColorQuery : negativeBorderColorQuery);\n    }\n\n    var data = seriesModel.getData();\n    data.setVisual('legendSymbol', 'roundRect');\n\n    if (ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    var isLargeRender = seriesModel.pipelineContext.large;\n    return !isLargeRender && {\n      progress: function (params, data) {\n        var dataIndex;\n\n        while ((dataIndex = params.next()) != null) {\n          var itemModel = data.getItemModel(dataIndex);\n          var sign = data.getItemLayout(dataIndex).sign;\n          var style = itemModel.getItemStyle();\n          style.fill = getColor(sign, itemModel);\n          style.stroke = getBorderColor(sign, itemModel) || style.fill;\n          var existsStyle = data.ensureUniqueItemVisual(dataIndex, 'style');\n          extend(existsStyle, style);\n        }\n      }\n    };\n  }\n};\nexport default candlestickVisual;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { subPixelOptimize } from '../../util/graphic';\nimport createRenderPlanner from '../helper/createRenderPlanner';\nimport { parsePercent } from '../../util/number';\nimport { retrieve2 } from 'zrender/lib/core/util';\nvar LargeArr = typeof Float32Array !== 'undefined' ? Float32Array : Array;\nvar candlestickLayout = {\n  seriesType: 'candlestick',\n  plan: createRenderPlanner(),\n  reset: function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n    var data = seriesModel.getData();\n    var candleWidth = calculateCandleWidth(seriesModel, data);\n    var cDimIdx = 0;\n    var vDimIdx = 1;\n    var coordDims = ['x', 'y'];\n    var cDim = data.mapDimension(coordDims[cDimIdx]);\n    var vDims = data.mapDimensionsAll(coordDims[vDimIdx]);\n    var openDim = vDims[0];\n    var closeDim = vDims[1];\n    var lowestDim = vDims[2];\n    var highestDim = vDims[3];\n    data.setLayout({\n      candleWidth: candleWidth,\n      isSimpleBox: candleWidth <= 1.3\n    });\n\n    if (cDim == null || vDims.length < 4) {\n      return;\n    }\n\n    return {\n      progress: seriesModel.pipelineContext.large ? largeProgress : normalProgress\n    };\n\n    function normalProgress(params, data) {\n      var dataIndex;\n\n      while ((dataIndex = params.next()) != null) {\n        var axisDimVal = data.get(cDim, dataIndex);\n        var openVal = data.get(openDim, dataIndex);\n        var closeVal = data.get(closeDim, dataIndex);\n        var lowestVal = data.get(lowestDim, dataIndex);\n        var highestVal = data.get(highestDim, dataIndex);\n        var ocLow = Math.min(openVal, closeVal);\n        var ocHigh = Math.max(openVal, closeVal);\n        var ocLowPoint = getPoint(ocLow, axisDimVal);\n        var ocHighPoint = getPoint(ocHigh, axisDimVal);\n        var lowestPoint = getPoint(lowestVal, axisDimVal);\n        var highestPoint = getPoint(highestVal, axisDimVal);\n        var ends = [];\n        addBodyEnd(ends, ocHighPoint, 0);\n        addBodyEnd(ends, ocLowPoint, 1);\n        ends.push(subPixelOptimizePoint(highestPoint), subPixelOptimizePoint(ocHighPoint), subPixelOptimizePoint(lowestPoint), subPixelOptimizePoint(ocLowPoint));\n        data.setItemLayout(dataIndex, {\n          sign: getSign(data, dataIndex, openVal, closeVal, closeDim),\n          initBaseline: openVal > closeVal ? ocHighPoint[vDimIdx] : ocLowPoint[vDimIdx],\n          ends: ends,\n          brushRect: makeBrushRect(lowestVal, highestVal, axisDimVal)\n        });\n      }\n\n      function getPoint(val, axisDimVal) {\n        var p = [];\n        p[cDimIdx] = axisDimVal;\n        p[vDimIdx] = val;\n        return isNaN(axisDimVal) || isNaN(val) ? [NaN, NaN] : coordSys.dataToPoint(p);\n      }\n\n      function addBodyEnd(ends, point, start) {\n        var point1 = point.slice();\n        var point2 = point.slice();\n        point1[cDimIdx] = subPixelOptimize(point1[cDimIdx] + candleWidth / 2, 1, false);\n        point2[cDimIdx] = subPixelOptimize(point2[cDimIdx] - candleWidth / 2, 1, true);\n        start ? ends.push(point1, point2) : ends.push(point2, point1);\n      }\n\n      function makeBrushRect(lowestVal, highestVal, axisDimVal) {\n        var pmin = getPoint(lowestVal, axisDimVal);\n        var pmax = getPoint(highestVal, axisDimVal);\n        pmin[cDimIdx] -= candleWidth / 2;\n        pmax[cDimIdx] -= candleWidth / 2;\n        return {\n          x: pmin[0],\n          y: pmin[1],\n          width: vDimIdx ? candleWidth : pmax[0] - pmin[0],\n          height: vDimIdx ? pmax[1] - pmin[1] : candleWidth\n        };\n      }\n\n      function subPixelOptimizePoint(point) {\n        point[cDimIdx] = subPixelOptimize(point[cDimIdx], 1);\n        return point;\n      }\n    }\n\n    function largeProgress(params, data) {\n      var points = new LargeArr(params.count * 4);\n      var offset = 0;\n      var point;\n      var tmpIn = [];\n      var tmpOut = [];\n      var dataIndex;\n\n      while ((dataIndex = params.next()) != null) {\n        var axisDimVal = data.get(cDim, dataIndex);\n        var openVal = data.get(openDim, dataIndex);\n        var closeVal = data.get(closeDim, dataIndex);\n        var lowestVal = data.get(lowestDim, dataIndex);\n        var highestVal = data.get(highestDim, dataIndex);\n\n        if (isNaN(axisDimVal) || isNaN(lowestVal) || isNaN(highestVal)) {\n          points[offset++] = NaN;\n          offset += 3;\n          continue;\n        }\n\n        points[offset++] = getSign(data, dataIndex, openVal, closeVal, closeDim);\n        tmpIn[cDimIdx] = axisDimVal;\n        tmpIn[vDimIdx] = lowestVal;\n        point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n        points[offset++] = point ? point[0] : NaN;\n        points[offset++] = point ? point[1] : NaN;\n        tmpIn[vDimIdx] = highestVal;\n        point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n        points[offset++] = point ? point[1] : NaN;\n      }\n\n      data.setLayout('largePoints', points);\n    }\n  }\n};\n\nfunction getSign(data, dataIndex, openVal, closeVal, closeDim) {\n  var sign;\n\n  if (openVal > closeVal) {\n    sign = -1;\n  } else if (openVal < closeVal) {\n    sign = 1;\n  } else {\n    sign = dataIndex > 0 ? data.get(closeDim, dataIndex - 1) <= closeVal ? 1 : -1 : 1;\n  }\n\n  return sign;\n}\n\nfunction calculateCandleWidth(seriesModel, data) {\n  var baseAxis = seriesModel.getBaseAxis();\n  var extent;\n  var bandWidth = baseAxis.type === 'category' ? baseAxis.getBandWidth() : (extent = baseAxis.getExtent(), Math.abs(extent[1] - extent[0]) / data.count());\n  var barMaxWidth = parsePercent(retrieve2(seriesModel.get('barMaxWidth'), bandWidth), bandWidth);\n  var barMinWidth = parsePercent(retrieve2(seriesModel.get('barMinWidth'), 1), bandWidth);\n  var barWidth = seriesModel.get('barWidth');\n  return barWidth != null ? parsePercent(barWidth, bandWidth) : Math.max(Math.min(bandWidth / 2, barMaxWidth), barMinWidth);\n}\n\nexport default candlestickLayout;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport CandlestickView from './CandlestickView';\nimport CandlestickSeriesModel from './CandlestickSeries';\nimport preprocessor from './preprocessor';\nimport candlestickVisual from './candlestickVisual';\nimport candlestickLayout from './candlestickLayout';\nexport function install(registers) {\n  registers.registerChartView(CandlestickView);\n  registers.registerSeriesModel(CandlestickSeriesModel);\n  registers.registerPreprocessor(preprocessor);\n  registers.registerVisual(candlestickVisual);\n  registers.registerLayout(candlestickLayout);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { createSymbol } from '../../util/symbol';\nimport { Group } from '../../util/graphic';\nimport { enterEmphasis, leaveEmphasis, enableHoverEmphasis } from '../../util/states';\nimport { parsePercent } from '../../util/number';\nimport SymbolClz from './Symbol';\nvar EFFECT_RIPPLE_NUMBER = 3;\n\nfunction normalizeSymbolSize(symbolSize) {\n  if (!zrUtil.isArray(symbolSize)) {\n    symbolSize = [+symbolSize, +symbolSize];\n  }\n\n  return symbolSize;\n}\n\nfunction updateRipplePath(rippleGroup, effectCfg) {\n  var color = effectCfg.rippleEffectColor || effectCfg.color;\n  rippleGroup.eachChild(function (ripplePath) {\n    ripplePath.attr({\n      z: effectCfg.z,\n      zlevel: effectCfg.zlevel,\n      style: {\n        stroke: effectCfg.brushType === 'stroke' ? color : null,\n        fill: effectCfg.brushType === 'fill' ? color : null\n      }\n    });\n  });\n}\n\nvar EffectSymbol = function (_super) {\n  __extends(EffectSymbol, _super);\n\n  function EffectSymbol(data, idx) {\n    var _this = _super.call(this) || this;\n\n    var symbol = new SymbolClz(data, idx);\n    var rippleGroup = new Group();\n\n    _this.add(symbol);\n\n    _this.add(rippleGroup);\n\n    _this.updateData(data, idx);\n\n    return _this;\n  }\n\n  EffectSymbol.prototype.stopEffectAnimation = function () {\n    this.childAt(1).removeAll();\n  };\n\n  EffectSymbol.prototype.startEffectAnimation = function (effectCfg) {\n    var symbolType = effectCfg.symbolType;\n    var color = effectCfg.color;\n    var rippleGroup = this.childAt(1);\n\n    for (var i = 0; i < EFFECT_RIPPLE_NUMBER; i++) {\n      var ripplePath = createSymbol(symbolType, -1, -1, 2, 2, color);\n      ripplePath.attr({\n        style: {\n          strokeNoScale: true\n        },\n        z2: 99,\n        silent: true,\n        scaleX: 0.5,\n        scaleY: 0.5\n      });\n      var delay = -i / EFFECT_RIPPLE_NUMBER * effectCfg.period + effectCfg.effectOffset;\n      ripplePath.animate('', true).when(effectCfg.period, {\n        scale: [effectCfg.rippleScale / 2, effectCfg.rippleScale / 2]\n      }).delay(delay).start();\n      ripplePath.animateStyle(true).when(effectCfg.period, {\n        opacity: 0\n      }).delay(delay).start();\n      rippleGroup.add(ripplePath);\n    }\n\n    updateRipplePath(rippleGroup, effectCfg);\n  };\n\n  EffectSymbol.prototype.updateEffectAnimation = function (effectCfg) {\n    var oldEffectCfg = this._effectCfg;\n    var rippleGroup = this.childAt(1);\n    var DIFFICULT_PROPS = ['symbolType', 'period', 'rippleScale'];\n\n    for (var i = 0; i < DIFFICULT_PROPS.length; i++) {\n      var propName = DIFFICULT_PROPS[i];\n\n      if (oldEffectCfg[propName] !== effectCfg[propName]) {\n        this.stopEffectAnimation();\n        this.startEffectAnimation(effectCfg);\n        return;\n      }\n    }\n\n    updateRipplePath(rippleGroup, effectCfg);\n  };\n\n  EffectSymbol.prototype.highlight = function () {\n    enterEmphasis(this);\n  };\n\n  EffectSymbol.prototype.downplay = function () {\n    leaveEmphasis(this);\n  };\n\n  EffectSymbol.prototype.updateData = function (data, idx) {\n    var _this = this;\n\n    var seriesModel = data.hostModel;\n    this.childAt(0).updateData(data, idx);\n    var rippleGroup = this.childAt(1);\n    var itemModel = data.getItemModel(idx);\n    var symbolType = data.getItemVisual(idx, 'symbol');\n    var symbolSize = normalizeSymbolSize(data.getItemVisual(idx, 'symbolSize'));\n    var symbolStyle = data.getItemVisual(idx, 'style');\n    var color = symbolStyle && symbolStyle.fill;\n    rippleGroup.setScale(symbolSize);\n    rippleGroup.traverse(function (ripplePath) {\n      ripplePath.setStyle('fill', color);\n    });\n    var symbolOffset = itemModel.getShallow('symbolOffset');\n\n    if (symbolOffset) {\n      rippleGroup.x = parsePercent(symbolOffset[0], symbolSize[0]);\n      rippleGroup.y = parsePercent(symbolOffset[1], symbolSize[1]);\n    }\n\n    var symbolRotate = data.getItemVisual(idx, 'symbolRotate');\n    rippleGroup.rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\n    var effectCfg = {};\n    effectCfg.showEffectOn = seriesModel.get('showEffectOn');\n    effectCfg.rippleScale = itemModel.get(['rippleEffect', 'scale']);\n    effectCfg.brushType = itemModel.get(['rippleEffect', 'brushType']);\n    effectCfg.period = itemModel.get(['rippleEffect', 'period']) * 1000;\n    effectCfg.effectOffset = idx / data.count();\n    effectCfg.z = seriesModel.getShallow('z') || 0;\n    effectCfg.zlevel = seriesModel.getShallow('zlevel') || 0;\n    effectCfg.symbolType = symbolType;\n    effectCfg.color = color;\n    effectCfg.rippleEffectColor = itemModel.get(['rippleEffect', 'color']);\n    this.off('mouseover').off('mouseout').off('emphasis').off('normal');\n\n    if (effectCfg.showEffectOn === 'render') {\n      this._effectCfg ? this.updateEffectAnimation(effectCfg) : this.startEffectAnimation(effectCfg);\n      this._effectCfg = effectCfg;\n    } else {\n      this._effectCfg = null;\n      this.stopEffectAnimation();\n\n      this.onHoverStateChange = function (toState) {\n        if (toState === 'emphasis') {\n          if (effectCfg.showEffectOn !== 'render') {\n            _this.startEffectAnimation(effectCfg);\n          }\n        } else if (toState === 'normal') {\n          if (effectCfg.showEffectOn !== 'render') {\n            _this.stopEffectAnimation();\n          }\n        }\n      };\n    }\n\n    this._effectCfg = effectCfg;\n    enableHoverEmphasis(this);\n  };\n\n  ;\n\n  EffectSymbol.prototype.fadeOut = function (cb) {\n    this.off('mouseover').off('mouseout');\n    cb && cb();\n  };\n\n  ;\n  return EffectSymbol;\n}(Group);\n\nzrUtil.inherits(EffectSymbol, Group);\nexport default EffectSymbol;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SymbolDraw from '../helper/SymbolDraw';\nimport EffectSymbol from '../helper/EffectSymbol';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport pointsLayout from '../../layout/points';\nimport ChartView from '../../view/Chart';\n\nvar EffectScatterView = function (_super) {\n  __extends(EffectScatterView, _super);\n\n  function EffectScatterView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = EffectScatterView.type;\n    return _this;\n  }\n\n  EffectScatterView.prototype.init = function () {\n    this._symbolDraw = new SymbolDraw(EffectSymbol);\n  };\n\n  EffectScatterView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    var effectSymbolDraw = this._symbolDraw;\n    effectSymbolDraw.updateData(data);\n    this.group.add(effectSymbolDraw.group);\n  };\n\n  EffectScatterView.prototype.updateTransform = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    this.group.dirty();\n    var res = pointsLayout('').reset(seriesModel, ecModel, api);\n\n    if (res.progress) {\n      res.progress({\n        start: 0,\n        end: data.count(),\n        count: data.count()\n      }, data);\n    }\n\n    this._symbolDraw.updateLayout();\n  };\n\n  EffectScatterView.prototype._updateGroupTransform = function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys && coordSys.getRoamTransform) {\n      this.group.transform = matrix.clone(coordSys.getRoamTransform());\n      this.group.decomposeTransform();\n    }\n  };\n\n  EffectScatterView.prototype.remove = function (ecModel, api) {\n    this._symbolDraw && this._symbolDraw.remove(true);\n  };\n\n  EffectScatterView.type = 'effectScatter';\n  return EffectScatterView;\n}(ChartView);\n\nexport default EffectScatterView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListFromArray from '../helper/createListFromArray';\nimport SeriesModel from '../../model/Series';\n\nvar EffectScatterSeriesModel = function (_super) {\n  __extends(EffectScatterSeriesModel, _super);\n\n  function EffectScatterSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = EffectScatterSeriesModel.type;\n    _this.hasSymbolVisual = true;\n    return _this;\n  }\n\n  EffectScatterSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: true\n    });\n  };\n\n  EffectScatterSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n    return selectors.point(data.getItemLayout(dataIndex));\n  };\n\n  EffectScatterSeriesModel.type = 'series.effectScatter';\n  EffectScatterSeriesModel.dependencies = ['grid', 'polar'];\n  EffectScatterSeriesModel.defaultOption = {\n    coordinateSystem: 'cartesian2d',\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    effectType: 'ripple',\n    progressive: 0,\n    showEffectOn: 'render',\n    rippleEffect: {\n      period: 4,\n      scale: 2.5,\n      brushType: 'fill'\n    },\n    symbolSize: 10\n  };\n  return EffectScatterSeriesModel;\n}(SeriesModel);\n\nexport default EffectScatterSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport EffectScatterView from './EffectScatterView';\nimport EffectScatterSeriesModel from './EffectScatterSeries';\nimport layoutPoints from '../../layout/points';\nexport function install(registers) {\n  registers.registerChartView(EffectScatterView);\n  registers.registerSeriesModel(EffectScatterSeriesModel);\n  registers.registerLayout(layoutPoints('effectScatter'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport Line from './Line';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { createSymbol } from '../../util/symbol';\nimport * as vec2 from 'zrender/lib/core/vector';\nimport * as curveUtil from 'zrender/lib/core/curve';\n\nvar EffectLine = function (_super) {\n  __extends(EffectLine, _super);\n\n  function EffectLine(lineData, idx, seriesScope) {\n    var _this = _super.call(this) || this;\n\n    _this.add(_this.createLine(lineData, idx, seriesScope));\n\n    _this._updateEffectSymbol(lineData, idx);\n\n    return _this;\n  }\n\n  EffectLine.prototype.createLine = function (lineData, idx, seriesScope) {\n    return new Line(lineData, idx, seriesScope);\n  };\n\n  EffectLine.prototype._updateEffectSymbol = function (lineData, idx) {\n    var itemModel = lineData.getItemModel(idx);\n    var effectModel = itemModel.getModel('effect');\n    var size = effectModel.get('symbolSize');\n    var symbolType = effectModel.get('symbol');\n\n    if (!zrUtil.isArray(size)) {\n      size = [size, size];\n    }\n\n    var lineStyle = lineData.getItemVisual(idx, 'style');\n    var color = effectModel.get('color') || lineStyle && lineStyle.stroke;\n    var symbol = this.childAt(1);\n\n    if (this._symbolType !== symbolType) {\n      this.remove(symbol);\n      symbol = createSymbol(symbolType, -0.5, -0.5, 1, 1, color);\n      symbol.z2 = 100;\n      symbol.culling = true;\n      this.add(symbol);\n    }\n\n    if (!symbol) {\n      return;\n    }\n\n    symbol.setStyle('shadowColor', color);\n    symbol.setStyle(effectModel.getItemStyle(['color']));\n    symbol.scaleX = size[0];\n    symbol.scaleY = size[1];\n    symbol.setColor(color);\n    this._symbolType = symbolType;\n    this._symbolScale = size;\n\n    this._updateEffectAnimation(lineData, effectModel, idx);\n  };\n\n  EffectLine.prototype._updateEffectAnimation = function (lineData, effectModel, idx) {\n    var symbol = this.childAt(1);\n\n    if (!symbol) {\n      return;\n    }\n\n    var self = this;\n    var points = lineData.getItemLayout(idx);\n    var period = effectModel.get('period') * 1000;\n    var loop = effectModel.get('loop');\n    var constantSpeed = effectModel.get('constantSpeed');\n    var delayExpr = zrUtil.retrieve(effectModel.get('delay'), function (idx) {\n      return idx / lineData.count() * period / 3;\n    });\n    symbol.ignore = true;\n\n    this._updateAnimationPoints(symbol, points);\n\n    if (constantSpeed > 0) {\n      period = this._getLineLength(symbol) / constantSpeed * 1000;\n    }\n\n    if (period !== this._period || loop !== this._loop) {\n      symbol.stopAnimation();\n\n      if (period > 0) {\n        var delayNum = void 0;\n\n        if (typeof delayExpr === 'function') {\n          delayNum = delayExpr(idx);\n        } else {\n          delayNum = delayExpr;\n        }\n\n        if (symbol.__t > 0) {\n          delayNum = -period * symbol.__t;\n        }\n\n        symbol.__t = 0;\n        var animator = symbol.animate('', loop).when(period, {\n          __t: 1\n        }).delay(delayNum).during(function () {\n          self._updateSymbolPosition(symbol);\n        });\n\n        if (!loop) {\n          animator.done(function () {\n            self.remove(symbol);\n          });\n        }\n\n        animator.start();\n      }\n    }\n\n    this._period = period;\n    this._loop = loop;\n  };\n\n  EffectLine.prototype._getLineLength = function (symbol) {\n    return vec2.dist(symbol.__p1, symbol.__cp1) + vec2.dist(symbol.__cp1, symbol.__p2);\n  };\n\n  EffectLine.prototype._updateAnimationPoints = function (symbol, points) {\n    symbol.__p1 = points[0];\n    symbol.__p2 = points[1];\n    symbol.__cp1 = points[2] || [(points[0][0] + points[1][0]) / 2, (points[0][1] + points[1][1]) / 2];\n  };\n\n  EffectLine.prototype.updateData = function (lineData, idx, seriesScope) {\n    this.childAt(0).updateData(lineData, idx, seriesScope);\n\n    this._updateEffectSymbol(lineData, idx);\n  };\n\n  EffectLine.prototype._updateSymbolPosition = function (symbol) {\n    var p1 = symbol.__p1;\n    var p2 = symbol.__p2;\n    var cp1 = symbol.__cp1;\n    var t = symbol.__t;\n    var pos = [symbol.x, symbol.y];\n    var lastPos = pos.slice();\n    var quadraticAt = curveUtil.quadraticAt;\n    var quadraticDerivativeAt = curveUtil.quadraticDerivativeAt;\n    pos[0] = quadraticAt(p1[0], cp1[0], p2[0], t);\n    pos[1] = quadraticAt(p1[1], cp1[1], p2[1], t);\n    var tx = quadraticDerivativeAt(p1[0], cp1[0], p2[0], t);\n    var ty = quadraticDerivativeAt(p1[1], cp1[1], p2[1], t);\n    symbol.rotation = -Math.atan2(ty, tx) - Math.PI / 2;\n\n    if (this._symbolType === 'line' || this._symbolType === 'rect' || this._symbolType === 'roundRect') {\n      if (symbol.__lastT !== undefined && symbol.__lastT < symbol.__t) {\n        symbol.scaleY = vec2.dist(lastPos, pos) * 1.05;\n\n        if (t === 1) {\n          pos[0] = lastPos[0] + (pos[0] - lastPos[0]) / 2;\n          pos[1] = lastPos[1] + (pos[1] - lastPos[1]) / 2;\n        }\n      } else if (symbol.__lastT === 1) {\n        symbol.scaleY = 2 * vec2.dist(p1, pos);\n      } else {\n        symbol.scaleY = this._symbolScale[1];\n      }\n    }\n\n    symbol.__lastT = symbol.__t;\n    symbol.ignore = false;\n    symbol.x = pos[0];\n    symbol.y = pos[1];\n  };\n\n  EffectLine.prototype.updateLayout = function (lineData, idx) {\n    this.childAt(0).updateLayout(lineData, idx);\n    var effectModel = lineData.getItemModel(idx).getModel('effect');\n\n    this._updateEffectAnimation(lineData, effectModel, idx);\n  };\n\n  return EffectLine;\n}(graphic.Group);\n\nexport default EffectLine;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis } from '../../util/states';\n\nvar Polyline = function (_super) {\n  __extends(Polyline, _super);\n\n  function Polyline(lineData, idx, seriesScope) {\n    var _this = _super.call(this) || this;\n\n    _this._createPolyline(lineData, idx, seriesScope);\n\n    return _this;\n  }\n\n  Polyline.prototype._createPolyline = function (lineData, idx, seriesScope) {\n    var points = lineData.getItemLayout(idx);\n    var line = new graphic.Polyline({\n      shape: {\n        points: points\n      }\n    });\n    this.add(line);\n\n    this._updateCommonStl(lineData, idx, seriesScope);\n  };\n\n  ;\n\n  Polyline.prototype.updateData = function (lineData, idx, seriesScope) {\n    var seriesModel = lineData.hostModel;\n    var line = this.childAt(0);\n    var target = {\n      shape: {\n        points: lineData.getItemLayout(idx)\n      }\n    };\n    graphic.updateProps(line, target, seriesModel, idx);\n\n    this._updateCommonStl(lineData, idx, seriesScope);\n  };\n\n  ;\n\n  Polyline.prototype._updateCommonStl = function (lineData, idx, seriesScope) {\n    var line = this.childAt(0);\n    var itemModel = lineData.getItemModel(idx);\n    var hoverLineStyle = seriesScope && seriesScope.emphasisLineStyle;\n\n    if (!seriesScope || lineData.hasItemOption) {\n      hoverLineStyle = itemModel.getModel(['emphasis', 'lineStyle']).getLineStyle();\n    }\n\n    line.useStyle(lineData.getItemVisual(idx, 'style'));\n    line.style.fill = null;\n    line.style.strokeNoScale = true;\n    var lineEmphasisState = line.ensureState('emphasis');\n    lineEmphasisState.style = hoverLineStyle;\n    enableHoverEmphasis(this);\n  };\n\n  ;\n\n  Polyline.prototype.updateLayout = function (lineData, idx) {\n    var polyline = this.childAt(0);\n    polyline.setShape('points', lineData.getItemLayout(idx));\n  };\n\n  ;\n  return Polyline;\n}(graphic.Group);\n\nexport default Polyline;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Polyline from './Polyline';\nimport EffectLine from './EffectLine';\nimport * as vec2 from 'zrender/lib/core/vector';\n\nvar EffectPolyline = function (_super) {\n  __extends(EffectPolyline, _super);\n\n  function EffectPolyline() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this._lastFrame = 0;\n    _this._lastFramePercent = 0;\n    return _this;\n  }\n\n  EffectPolyline.prototype.createLine = function (lineData, idx, seriesScope) {\n    return new Polyline(lineData, idx, seriesScope);\n  };\n\n  ;\n\n  EffectPolyline.prototype._updateAnimationPoints = function (symbol, points) {\n    this._points = points;\n    var accLenArr = [0];\n    var len = 0;\n\n    for (var i = 1; i < points.length; i++) {\n      var p1 = points[i - 1];\n      var p2 = points[i];\n      len += vec2.dist(p1, p2);\n      accLenArr.push(len);\n    }\n\n    if (len === 0) {\n      this._length = 0;\n      return;\n    }\n\n    for (var i = 0; i < accLenArr.length; i++) {\n      accLenArr[i] /= len;\n    }\n\n    this._offsets = accLenArr;\n    this._length = len;\n  };\n\n  ;\n\n  EffectPolyline.prototype._getLineLength = function () {\n    return this._length;\n  };\n\n  ;\n\n  EffectPolyline.prototype._updateSymbolPosition = function (symbol) {\n    var t = symbol.__t;\n    var points = this._points;\n    var offsets = this._offsets;\n    var len = points.length;\n\n    if (!offsets) {\n      return;\n    }\n\n    var lastFrame = this._lastFrame;\n    var frame;\n\n    if (t < this._lastFramePercent) {\n      var start = Math.min(lastFrame + 1, len - 1);\n\n      for (frame = start; frame >= 0; frame--) {\n        if (offsets[frame] <= t) {\n          break;\n        }\n      }\n\n      frame = Math.min(frame, len - 2);\n    } else {\n      for (frame = lastFrame; frame < len; frame++) {\n        if (offsets[frame] > t) {\n          break;\n        }\n      }\n\n      frame = Math.min(frame - 1, len - 2);\n    }\n\n    var p = (t - offsets[frame]) / (offsets[frame + 1] - offsets[frame]);\n    var p0 = points[frame];\n    var p1 = points[frame + 1];\n    symbol.x = p0[0] * (1 - p) + p * p1[0];\n    symbol.y = p0[1] * (1 - p) + p * p1[1];\n    var tx = p1[0] - p0[0];\n    var ty = p1[1] - p0[1];\n    symbol.rotation = -Math.atan2(ty, tx) - Math.PI / 2;\n    this._lastFrame = frame;\n    this._lastFramePercent = t;\n    symbol.ignore = false;\n  };\n\n  ;\n  return EffectPolyline;\n}(EffectLine);\n\nexport default EffectPolyline;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport IncrementalDisplayable from 'zrender/lib/graphic/IncrementalDisplayable';\nimport * as lineContain from 'zrender/lib/contain/line';\nimport * as quadraticContain from 'zrender/lib/contain/quadratic';\nimport { getECData } from '../../util/innerStore';\n\nvar LargeLinesPathShape = function () {\n  function LargeLinesPathShape() {\n    this.polyline = false;\n    this.curveness = 0;\n    this.segs = [];\n  }\n\n  return LargeLinesPathShape;\n}();\n\nvar LargeLinesPath = function (_super) {\n  __extends(LargeLinesPath, _super);\n\n  function LargeLinesPath(opts) {\n    return _super.call(this, opts) || this;\n  }\n\n  LargeLinesPath.prototype.getDefaultStyle = function () {\n    return {\n      stroke: '#000',\n      fill: null\n    };\n  };\n\n  LargeLinesPath.prototype.getDefaultShape = function () {\n    return new LargeLinesPathShape();\n  };\n\n  LargeLinesPath.prototype.buildPath = function (ctx, shape) {\n    var segs = shape.segs;\n    var curveness = shape.curveness;\n\n    if (shape.polyline) {\n      for (var i = 0; i < segs.length;) {\n        var count = segs[i++];\n\n        if (count > 0) {\n          ctx.moveTo(segs[i++], segs[i++]);\n\n          for (var k = 1; k < count; k++) {\n            ctx.lineTo(segs[i++], segs[i++]);\n          }\n        }\n      }\n    } else {\n      for (var i = 0; i < segs.length;) {\n        var x0 = segs[i++];\n        var y0 = segs[i++];\n        var x1 = segs[i++];\n        var y1 = segs[i++];\n        ctx.moveTo(x0, y0);\n\n        if (curveness > 0) {\n          var x2 = (x0 + x1) / 2 - (y0 - y1) * curveness;\n          var y2 = (y0 + y1) / 2 - (x1 - x0) * curveness;\n          ctx.quadraticCurveTo(x2, y2, x1, y1);\n        } else {\n          ctx.lineTo(x1, y1);\n        }\n      }\n    }\n  };\n\n  LargeLinesPath.prototype.findDataIndex = function (x, y) {\n    var shape = this.shape;\n    var segs = shape.segs;\n    var curveness = shape.curveness;\n    var lineWidth = this.style.lineWidth;\n\n    if (shape.polyline) {\n      var dataIndex = 0;\n\n      for (var i = 0; i < segs.length;) {\n        var count = segs[i++];\n\n        if (count > 0) {\n          var x0 = segs[i++];\n          var y0 = segs[i++];\n\n          for (var k = 1; k < count; k++) {\n            var x1 = segs[i++];\n            var y1 = segs[i++];\n\n            if (lineContain.containStroke(x0, y0, x1, y1, lineWidth, x, y)) {\n              return dataIndex;\n            }\n          }\n        }\n\n        dataIndex++;\n      }\n    } else {\n      var dataIndex = 0;\n\n      for (var i = 0; i < segs.length;) {\n        var x0 = segs[i++];\n        var y0 = segs[i++];\n        var x1 = segs[i++];\n        var y1 = segs[i++];\n\n        if (curveness > 0) {\n          var x2 = (x0 + x1) / 2 - (y0 - y1) * curveness;\n          var y2 = (y0 + y1) / 2 - (x1 - x0) * curveness;\n\n          if (quadraticContain.containStroke(x0, y0, x2, y2, x1, y1, lineWidth, x, y)) {\n            return dataIndex;\n          }\n        } else {\n          if (lineContain.containStroke(x0, y0, x1, y1, lineWidth, x, y)) {\n            return dataIndex;\n          }\n        }\n\n        dataIndex++;\n      }\n    }\n\n    return -1;\n  };\n\n  return LargeLinesPath;\n}(graphic.Path);\n\nvar LargeLineDraw = function () {\n  function LargeLineDraw() {\n    this.group = new graphic.Group();\n  }\n\n  LargeLineDraw.prototype.isPersistent = function () {\n    return !this._incremental;\n  };\n\n  ;\n\n  LargeLineDraw.prototype.updateData = function (data) {\n    this.group.removeAll();\n    var lineEl = new LargeLinesPath({\n      rectHover: true,\n      cursor: 'default'\n    });\n    lineEl.setShape({\n      segs: data.getLayout('linesPoints')\n    });\n\n    this._setCommon(lineEl, data);\n\n    this.group.add(lineEl);\n    this._incremental = null;\n  };\n\n  ;\n\n  LargeLineDraw.prototype.incrementalPrepareUpdate = function (data) {\n    this.group.removeAll();\n\n    this._clearIncremental();\n\n    if (data.count() > 5e5) {\n      if (!this._incremental) {\n        this._incremental = new IncrementalDisplayable({\n          silent: true\n        });\n      }\n\n      this.group.add(this._incremental);\n    } else {\n      this._incremental = null;\n    }\n  };\n\n  ;\n\n  LargeLineDraw.prototype.incrementalUpdate = function (taskParams, data) {\n    var lineEl = new LargeLinesPath();\n    lineEl.setShape({\n      segs: data.getLayout('linesPoints')\n    });\n\n    this._setCommon(lineEl, data, !!this._incremental);\n\n    if (!this._incremental) {\n      lineEl.rectHover = true;\n      lineEl.cursor = 'default';\n      lineEl.__startIndex = taskParams.start;\n      this.group.add(lineEl);\n    } else {\n      this._incremental.addDisplayable(lineEl, true);\n    }\n  };\n\n  ;\n\n  LargeLineDraw.prototype.remove = function () {\n    this._clearIncremental();\n\n    this._incremental = null;\n    this.group.removeAll();\n  };\n\n  ;\n\n  LargeLineDraw.prototype._setCommon = function (lineEl, data, isIncremental) {\n    var hostModel = data.hostModel;\n    lineEl.setShape({\n      polyline: hostModel.get('polyline'),\n      curveness: hostModel.get(['lineStyle', 'curveness'])\n    });\n    lineEl.useStyle(hostModel.getModel('lineStyle').getLineStyle());\n    lineEl.style.strokeNoScale = true;\n    var style = data.getVisual('style');\n\n    if (style && style.stroke) {\n      lineEl.setStyle('stroke', style.stroke);\n    }\n\n    lineEl.setStyle('fill', null);\n\n    if (!isIncremental) {\n      var ecData_1 = getECData(lineEl);\n      ecData_1.seriesIndex = hostModel.seriesIndex;\n      lineEl.on('mousemove', function (e) {\n        ecData_1.dataIndex = null;\n        var dataIndex = lineEl.findDataIndex(e.offsetX, e.offsetY);\n\n        if (dataIndex > 0) {\n          ecData_1.dataIndex = dataIndex + lineEl.__startIndex;\n        }\n      });\n    }\n  };\n\n  ;\n\n  LargeLineDraw.prototype._clearIncremental = function () {\n    var incremental = this._incremental;\n\n    if (incremental) {\n      incremental.clearDisplaybles();\n    }\n  };\n\n  ;\n  return LargeLineDraw;\n}();\n\nexport default LargeLineDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport createRenderPlanner from '../helper/createRenderPlanner';\nvar linesLayout = {\n  seriesType: 'lines',\n  plan: createRenderPlanner(),\n  reset: function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n    var isPolyline = seriesModel.get('polyline');\n    var isLarge = seriesModel.pipelineContext.large;\n    return {\n      progress: function (params, lineData) {\n        var lineCoords = [];\n\n        if (isLarge) {\n          var points = void 0;\n          var segCount = params.end - params.start;\n\n          if (isPolyline) {\n            var totalCoordsCount = 0;\n\n            for (var i = params.start; i < params.end; i++) {\n              totalCoordsCount += seriesModel.getLineCoordsCount(i);\n            }\n\n            points = new Float32Array(segCount + totalCoordsCount * 2);\n          } else {\n            points = new Float32Array(segCount * 4);\n          }\n\n          var offset = 0;\n          var pt = [];\n\n          for (var i = params.start; i < params.end; i++) {\n            var len = seriesModel.getLineCoords(i, lineCoords);\n\n            if (isPolyline) {\n              points[offset++] = len;\n            }\n\n            for (var k = 0; k < len; k++) {\n              pt = coordSys.dataToPoint(lineCoords[k], false, pt);\n              points[offset++] = pt[0];\n              points[offset++] = pt[1];\n            }\n          }\n\n          lineData.setLayout('linesPoints', points);\n        } else {\n          for (var i = params.start; i < params.end; i++) {\n            var itemModel = lineData.getItemModel(i);\n            var len = seriesModel.getLineCoords(i, lineCoords);\n            var pts = [];\n\n            if (isPolyline) {\n              for (var j = 0; j < len; j++) {\n                pts.push(coordSys.dataToPoint(lineCoords[j]));\n              }\n            } else {\n              pts[0] = coordSys.dataToPoint(lineCoords[0]);\n              pts[1] = coordSys.dataToPoint(lineCoords[1]);\n              var curveness = itemModel.get(['lineStyle', 'curveness']);\n\n              if (+curveness) {\n                pts[2] = [(pts[0][0] + pts[1][0]) / 2 - (pts[0][1] - pts[1][1]) * curveness, (pts[0][1] + pts[1][1]) / 2 - (pts[1][0] - pts[0][0]) * curveness];\n              }\n            }\n\n            lineData.setItemLayout(i, pts);\n          }\n        }\n      }\n    };\n  }\n};\nexport default linesLayout;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport LineDraw from '../helper/LineDraw';\nimport EffectLine from '../helper/EffectLine';\nimport Line from '../helper/Line';\nimport Polyline from '../helper/Polyline';\nimport EffectPolyline from '../helper/EffectPolyline';\nimport LargeLineDraw from '../helper/LargeLineDraw';\nimport linesLayout from './linesLayout';\nimport { createClipPath } from '../helper/createClipPathFromCoordSys';\nimport ChartView from '../../view/Chart';\n\nvar LinesView = function (_super) {\n  __extends(LinesView, _super);\n\n  function LinesView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = LinesView.type;\n    return _this;\n  }\n\n  LinesView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n\n    var lineDraw = this._updateLineDraw(data, seriesModel);\n\n    var zlevel = seriesModel.get('zlevel');\n    var trailLength = seriesModel.get(['effect', 'trailLength']);\n    var zr = api.getZr();\n    var isSvg = zr.painter.getType() === 'svg';\n\n    if (!isSvg) {\n      zr.painter.getLayer(zlevel).clear(true);\n    }\n\n    if (this._lastZlevel != null && !isSvg) {\n      zr.configLayer(this._lastZlevel, {\n        motionBlur: false\n      });\n    }\n\n    if (this._showEffect(seriesModel) && trailLength) {\n      if (process.env.NODE_ENV !== 'production') {\n        var notInIndividual_1 = false;\n        ecModel.eachSeries(function (otherSeriesModel) {\n          if (otherSeriesModel !== seriesModel && otherSeriesModel.get('zlevel') === zlevel) {\n            notInIndividual_1 = true;\n          }\n        });\n        notInIndividual_1 && console.warn('Lines with trail effect should have an individual zlevel');\n      }\n\n      if (!isSvg) {\n        zr.configLayer(zlevel, {\n          motionBlur: true,\n          lastFrameAlpha: Math.max(Math.min(trailLength / 10 + 0.9, 1), 0)\n        });\n      }\n    }\n\n    lineDraw.updateData(data);\n    var clipPath = seriesModel.get('clip', true) && createClipPath(seriesModel.coordinateSystem, false, seriesModel);\n\n    if (clipPath) {\n      this.group.setClipPath(clipPath);\n    } else {\n      this.group.removeClipPath();\n    }\n\n    this._lastZlevel = zlevel;\n    this._finished = true;\n  };\n\n  LinesView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n\n    var lineDraw = this._updateLineDraw(data, seriesModel);\n\n    lineDraw.incrementalPrepareUpdate(data);\n\n    this._clearLayer(api);\n\n    this._finished = false;\n  };\n\n  LinesView.prototype.incrementalRender = function (taskParams, seriesModel, ecModel) {\n    this._lineDraw.incrementalUpdate(taskParams, seriesModel.getData());\n\n    this._finished = taskParams.end === seriesModel.getData().count();\n  };\n\n  LinesView.prototype.updateTransform = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    var pipelineContext = seriesModel.pipelineContext;\n\n    if (!this._finished || pipelineContext.large || pipelineContext.progressiveRender) {\n      return {\n        update: true\n      };\n    } else {\n      var res = linesLayout.reset(seriesModel, ecModel, api);\n\n      if (res.progress) {\n        res.progress({\n          start: 0,\n          end: data.count(),\n          count: data.count()\n        }, data);\n      }\n\n      this._lineDraw.updateLayout();\n\n      this._clearLayer(api);\n    }\n  };\n\n  LinesView.prototype._updateLineDraw = function (data, seriesModel) {\n    var lineDraw = this._lineDraw;\n\n    var hasEffect = this._showEffect(seriesModel);\n\n    var isPolyline = !!seriesModel.get('polyline');\n    var pipelineContext = seriesModel.pipelineContext;\n    var isLargeDraw = pipelineContext.large;\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (hasEffect && isLargeDraw) {\n        console.warn('Large lines not support effect');\n      }\n    }\n\n    if (!lineDraw || hasEffect !== this._hasEffet || isPolyline !== this._isPolyline || isLargeDraw !== this._isLargeDraw) {\n      if (lineDraw) {\n        lineDraw.remove();\n      }\n\n      lineDraw = this._lineDraw = isLargeDraw ? new LargeLineDraw() : new LineDraw(isPolyline ? hasEffect ? EffectPolyline : Polyline : hasEffect ? EffectLine : Line);\n      this._hasEffet = hasEffect;\n      this._isPolyline = isPolyline;\n      this._isLargeDraw = isLargeDraw;\n      this.group.removeAll();\n    }\n\n    this.group.add(lineDraw.group);\n    return lineDraw;\n  };\n\n  LinesView.prototype._showEffect = function (seriesModel) {\n    return !!seriesModel.get(['effect', 'show']);\n  };\n\n  LinesView.prototype._clearLayer = function (api) {\n    var zr = api.getZr();\n    var isSvg = zr.painter.getType() === 'svg';\n\n    if (!isSvg && this._lastZlevel != null) {\n      zr.painter.getLayer(this._lastZlevel).clear(true);\n    }\n  };\n\n  LinesView.prototype.remove = function (ecModel, api) {\n    this._lineDraw && this._lineDraw.remove();\n    this._lineDraw = null;\n\n    this._clearLayer(api);\n  };\n\n  LinesView.type = 'lines';\n  return LinesView;\n}(ChartView);\n\nexport default LinesView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport List from '../../data/List';\nimport { concatArray, mergeAll, map } from 'zrender/lib/core/util';\nimport CoordinateSystem from '../../core/CoordinateSystem';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup';\nvar Uint32Arr = typeof Uint32Array === 'undefined' ? Array : Uint32Array;\nvar Float64Arr = typeof Float64Array === 'undefined' ? Array : Float64Array;\n\nfunction compatEc2(seriesOpt) {\n  var data = seriesOpt.data;\n\n  if (data && data[0] && data[0][0] && data[0][0].coord) {\n    if (process.env.NODE_ENV !== 'production') {\n      console.warn('Lines data configuration has been changed to' + ' { coords:[[1,2],[2,3]] }');\n    }\n\n    seriesOpt.data = map(data, function (itemOpt) {\n      var coords = [itemOpt[0].coord, itemOpt[1].coord];\n      var target = {\n        coords: coords\n      };\n\n      if (itemOpt[0].name) {\n        target.fromName = itemOpt[0].name;\n      }\n\n      if (itemOpt[1].name) {\n        target.toName = itemOpt[1].name;\n      }\n\n      return mergeAll([target, itemOpt[0], itemOpt[1]]);\n    });\n  }\n}\n\nvar LinesSeriesModel = function (_super) {\n  __extends(LinesSeriesModel, _super);\n\n  function LinesSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = LinesSeriesModel.type;\n    _this.visualStyleAccessPath = 'lineStyle';\n    _this.visualDrawType = 'stroke';\n    return _this;\n  }\n\n  LinesSeriesModel.prototype.init = function (option) {\n    option.data = option.data || [];\n    compatEc2(option);\n\n    var result = this._processFlatCoordsArray(option.data);\n\n    this._flatCoords = result.flatCoords;\n    this._flatCoordsOffset = result.flatCoordsOffset;\n\n    if (result.flatCoords) {\n      option.data = new Float32Array(result.count);\n    }\n\n    _super.prototype.init.apply(this, arguments);\n  };\n\n  LinesSeriesModel.prototype.mergeOption = function (option) {\n    compatEc2(option);\n\n    if (option.data) {\n      var result = this._processFlatCoordsArray(option.data);\n\n      this._flatCoords = result.flatCoords;\n      this._flatCoordsOffset = result.flatCoordsOffset;\n\n      if (result.flatCoords) {\n        option.data = new Float32Array(result.count);\n      }\n    }\n\n    _super.prototype.mergeOption.apply(this, arguments);\n  };\n\n  LinesSeriesModel.prototype.appendData = function (params) {\n    var result = this._processFlatCoordsArray(params.data);\n\n    if (result.flatCoords) {\n      if (!this._flatCoords) {\n        this._flatCoords = result.flatCoords;\n        this._flatCoordsOffset = result.flatCoordsOffset;\n      } else {\n        this._flatCoords = concatArray(this._flatCoords, result.flatCoords);\n        this._flatCoordsOffset = concatArray(this._flatCoordsOffset, result.flatCoordsOffset);\n      }\n\n      params.data = new Float32Array(result.count);\n    }\n\n    this.getRawData().appendData(params.data);\n  };\n\n  LinesSeriesModel.prototype._getCoordsFromItemModel = function (idx) {\n    var itemModel = this.getData().getItemModel(idx);\n    var coords = itemModel.option instanceof Array ? itemModel.option : itemModel.getShallow('coords');\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!(coords instanceof Array && coords.length > 0 && coords[0] instanceof Array)) {\n        throw new Error('Invalid coords ' + JSON.stringify(coords) + '. Lines must have 2d coords array in data item.');\n      }\n    }\n\n    return coords;\n  };\n\n  LinesSeriesModel.prototype.getLineCoordsCount = function (idx) {\n    if (this._flatCoordsOffset) {\n      return this._flatCoordsOffset[idx * 2 + 1];\n    } else {\n      return this._getCoordsFromItemModel(idx).length;\n    }\n  };\n\n  LinesSeriesModel.prototype.getLineCoords = function (idx, out) {\n    if (this._flatCoordsOffset) {\n      var offset = this._flatCoordsOffset[idx * 2];\n      var len = this._flatCoordsOffset[idx * 2 + 1];\n\n      for (var i = 0; i < len; i++) {\n        out[i] = out[i] || [];\n        out[i][0] = this._flatCoords[offset + i * 2];\n        out[i][1] = this._flatCoords[offset + i * 2 + 1];\n      }\n\n      return len;\n    } else {\n      var coords = this._getCoordsFromItemModel(idx);\n\n      for (var i = 0; i < coords.length; i++) {\n        out[i] = out[i] || [];\n        out[i][0] = coords[i][0];\n        out[i][1] = coords[i][1];\n      }\n\n      return coords.length;\n    }\n  };\n\n  LinesSeriesModel.prototype._processFlatCoordsArray = function (data) {\n    var startOffset = 0;\n\n    if (this._flatCoords) {\n      startOffset = this._flatCoords.length;\n    }\n\n    if (typeof data[0] === 'number') {\n      var len = data.length;\n      var coordsOffsetAndLenStorage = new Uint32Arr(len);\n      var coordsStorage = new Float64Arr(len);\n      var coordsCursor = 0;\n      var offsetCursor = 0;\n      var dataCount = 0;\n\n      for (var i = 0; i < len;) {\n        dataCount++;\n        var count = data[i++];\n        coordsOffsetAndLenStorage[offsetCursor++] = coordsCursor + startOffset;\n        coordsOffsetAndLenStorage[offsetCursor++] = count;\n\n        for (var k = 0; k < count; k++) {\n          var x = data[i++];\n          var y = data[i++];\n          coordsStorage[coordsCursor++] = x;\n          coordsStorage[coordsCursor++] = y;\n\n          if (i > len) {\n            if (process.env.NODE_ENV !== 'production') {\n              throw new Error('Invalid data format.');\n            }\n          }\n        }\n      }\n\n      return {\n        flatCoordsOffset: new Uint32Array(coordsOffsetAndLenStorage.buffer, 0, offsetCursor),\n        flatCoords: coordsStorage,\n        count: dataCount\n      };\n    }\n\n    return {\n      flatCoordsOffset: null,\n      flatCoords: null,\n      count: data.length\n    };\n  };\n\n  LinesSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    if (process.env.NODE_ENV !== 'production') {\n      var CoordSys = CoordinateSystem.get(option.coordinateSystem);\n\n      if (!CoordSys) {\n        throw new Error('Unkown coordinate system ' + option.coordinateSystem);\n      }\n    }\n\n    var lineData = new List(['value'], this);\n    lineData.hasItemOption = false;\n    lineData.initData(option.data, [], function (dataItem, dimName, dataIndex, dimIndex) {\n      if (dataItem instanceof Array) {\n        return NaN;\n      } else {\n        lineData.hasItemOption = true;\n        var value = dataItem.value;\n\n        if (value != null) {\n          return value instanceof Array ? value[dimIndex] : value;\n        }\n      }\n    });\n    return lineData;\n  };\n\n  LinesSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var data = this.getData();\n    var itemModel = data.getItemModel(dataIndex);\n    var name = itemModel.get('name');\n\n    if (name) {\n      return name;\n    }\n\n    var fromName = itemModel.get('fromName');\n    var toName = itemModel.get('toName');\n    var nameArr = [];\n    fromName != null && nameArr.push(fromName);\n    toName != null && nameArr.push(toName);\n    return createTooltipMarkup('nameValue', {\n      name: nameArr.join(' > ')\n    });\n  };\n\n  LinesSeriesModel.prototype.preventIncremental = function () {\n    return !!this.get(['effect', 'show']);\n  };\n\n  LinesSeriesModel.prototype.getProgressive = function () {\n    var progressive = this.option.progressive;\n\n    if (progressive == null) {\n      return this.option.large ? 1e4 : this.get('progressive');\n    }\n\n    return progressive;\n  };\n\n  LinesSeriesModel.prototype.getProgressiveThreshold = function () {\n    var progressiveThreshold = this.option.progressiveThreshold;\n\n    if (progressiveThreshold == null) {\n      return this.option.large ? 2e4 : this.get('progressiveThreshold');\n    }\n\n    return progressiveThreshold;\n  };\n\n  LinesSeriesModel.type = 'series.lines';\n  LinesSeriesModel.dependencies = ['grid', 'polar', 'geo', 'calendar'];\n  LinesSeriesModel.defaultOption = {\n    coordinateSystem: 'geo',\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    xAxisIndex: 0,\n    yAxisIndex: 0,\n    symbol: ['none', 'none'],\n    symbolSize: [10, 10],\n    geoIndex: 0,\n    effect: {\n      show: false,\n      period: 4,\n      constantSpeed: 0,\n      symbol: 'circle',\n      symbolSize: 3,\n      loop: true,\n      trailLength: 0.2\n    },\n    large: false,\n    largeThreshold: 2000,\n    polyline: false,\n    clip: true,\n    label: {\n      show: false,\n      position: 'end'\n    },\n    lineStyle: {\n      opacity: 0.5\n    }\n  };\n  return LinesSeriesModel;\n}(SeriesModel);\n\nexport default LinesSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nfunction normalize(a) {\n  if (!(a instanceof Array)) {\n    a = [a, a];\n  }\n\n  return a;\n}\n\nvar linesVisual = {\n  seriesType: 'lines',\n  reset: function (seriesModel) {\n    var symbolType = normalize(seriesModel.get('symbol'));\n    var symbolSize = normalize(seriesModel.get('symbolSize'));\n    var data = seriesModel.getData();\n    data.setVisual('fromSymbol', symbolType && symbolType[0]);\n    data.setVisual('toSymbol', symbolType && symbolType[1]);\n    data.setVisual('fromSymbolSize', symbolSize && symbolSize[0]);\n    data.setVisual('toSymbolSize', symbolSize && symbolSize[1]);\n\n    function dataEach(data, idx) {\n      var itemModel = data.getItemModel(idx);\n      var symbolType = normalize(itemModel.getShallow('symbol', true));\n      var symbolSize = normalize(itemModel.getShallow('symbolSize', true));\n      symbolType[0] && data.setItemVisual(idx, 'fromSymbol', symbolType[0]);\n      symbolType[1] && data.setItemVisual(idx, 'toSymbol', symbolType[1]);\n      symbolSize[0] && data.setItemVisual(idx, 'fromSymbolSize', symbolSize[0]);\n      symbolSize[1] && data.setItemVisual(idx, 'toSymbolSize', symbolSize[1]);\n    }\n\n    return {\n      dataEach: data.hasItemOption ? dataEach : null\n    };\n  }\n};\nexport default linesVisual;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport LinesView from './LinesView';\nimport LinesSeriesModel from './LinesSeries';\nimport linesLayout from './linesLayout';\nimport linesVisual from './linesVisual';\nexport function install(registers) {\n  registers.registerChartView(LinesView);\n  registers.registerSeriesModel(LinesSeriesModel);\n  registers.registerLayout(linesLayout);\n  registers.registerVisual(linesVisual);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar GRADIENT_LEVELS = 256;\n\nvar HeatmapLayer = function () {\n  function HeatmapLayer() {\n    this.blurSize = 30;\n    this.pointSize = 20;\n    this.maxOpacity = 1;\n    this.minOpacity = 0;\n    this._gradientPixels = {\n      inRange: null,\n      outOfRange: null\n    };\n    var canvas = zrUtil.createCanvas();\n    this.canvas = canvas;\n  }\n\n  HeatmapLayer.prototype.update = function (data, width, height, normalize, colorFunc, isInRange) {\n    var brush = this._getBrush();\n\n    var gradientInRange = this._getGradient(colorFunc, 'inRange');\n\n    var gradientOutOfRange = this._getGradient(colorFunc, 'outOfRange');\n\n    var r = this.pointSize + this.blurSize;\n    var canvas = this.canvas;\n    var ctx = canvas.getContext('2d');\n    var len = data.length;\n    canvas.width = width;\n    canvas.height = height;\n\n    for (var i = 0; i < len; ++i) {\n      var p = data[i];\n      var x = p[0];\n      var y = p[1];\n      var value = p[2];\n      var alpha = normalize(value);\n      ctx.globalAlpha = alpha;\n      ctx.drawImage(brush, x - r, y - r);\n    }\n\n    if (!canvas.width || !canvas.height) {\n      return canvas;\n    }\n\n    var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);\n    var pixels = imageData.data;\n    var offset = 0;\n    var pixelLen = pixels.length;\n    var minOpacity = this.minOpacity;\n    var maxOpacity = this.maxOpacity;\n    var diffOpacity = maxOpacity - minOpacity;\n\n    while (offset < pixelLen) {\n      var alpha = pixels[offset + 3] / 256;\n      var gradientOffset = Math.floor(alpha * (GRADIENT_LEVELS - 1)) * 4;\n\n      if (alpha > 0) {\n        var gradient = isInRange(alpha) ? gradientInRange : gradientOutOfRange;\n        alpha > 0 && (alpha = alpha * diffOpacity + minOpacity);\n        pixels[offset++] = gradient[gradientOffset];\n        pixels[offset++] = gradient[gradientOffset + 1];\n        pixels[offset++] = gradient[gradientOffset + 2];\n        pixels[offset++] = gradient[gradientOffset + 3] * alpha * 256;\n      } else {\n        offset += 4;\n      }\n    }\n\n    ctx.putImageData(imageData, 0, 0);\n    return canvas;\n  };\n\n  HeatmapLayer.prototype._getBrush = function () {\n    var brushCanvas = this._brushCanvas || (this._brushCanvas = zrUtil.createCanvas());\n    var r = this.pointSize + this.blurSize;\n    var d = r * 2;\n    brushCanvas.width = d;\n    brushCanvas.height = d;\n    var ctx = brushCanvas.getContext('2d');\n    ctx.clearRect(0, 0, d, d);\n    ctx.shadowOffsetX = d;\n    ctx.shadowBlur = this.blurSize;\n    ctx.shadowColor = '#000';\n    ctx.beginPath();\n    ctx.arc(-r, r, this.pointSize, 0, Math.PI * 2, true);\n    ctx.closePath();\n    ctx.fill();\n    return brushCanvas;\n  };\n\n  HeatmapLayer.prototype._getGradient = function (colorFunc, state) {\n    var gradientPixels = this._gradientPixels;\n    var pixelsSingleState = gradientPixels[state] || (gradientPixels[state] = new Uint8ClampedArray(256 * 4));\n    var color = [0, 0, 0, 0];\n    var off = 0;\n\n    for (var i = 0; i < 256; i++) {\n      colorFunc[state](i / 255, true, color);\n      pixelsSingleState[off++] = color[0];\n      pixelsSingleState[off++] = color[1];\n      pixelsSingleState[off++] = color[2];\n      pixelsSingleState[off++] = color[3];\n    }\n\n    return pixelsSingleState;\n  };\n\n  return HeatmapLayer;\n}();\n\nexport default HeatmapLayer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis } from '../../util/states';\nimport HeatmapLayer from './HeatmapLayer';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ChartView from '../../view/Chart';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\n\nfunction getIsInPiecewiseRange(dataExtent, pieceList, selected) {\n  var dataSpan = dataExtent[1] - dataExtent[0];\n  pieceList = zrUtil.map(pieceList, function (piece) {\n    return {\n      interval: [(piece.interval[0] - dataExtent[0]) / dataSpan, (piece.interval[1] - dataExtent[0]) / dataSpan]\n    };\n  });\n  var len = pieceList.length;\n  var lastIndex = 0;\n  return function (val) {\n    var i;\n\n    for (i = lastIndex; i < len; i++) {\n      var interval = pieceList[i].interval;\n\n      if (interval[0] <= val && val <= interval[1]) {\n        lastIndex = i;\n        break;\n      }\n    }\n\n    if (i === len) {\n      for (i = lastIndex - 1; i >= 0; i--) {\n        var interval = pieceList[i].interval;\n\n        if (interval[0] <= val && val <= interval[1]) {\n          lastIndex = i;\n          break;\n        }\n      }\n    }\n\n    return i >= 0 && i < len && selected[i];\n  };\n}\n\nfunction getIsInContinuousRange(dataExtent, range) {\n  var dataSpan = dataExtent[1] - dataExtent[0];\n  range = [(range[0] - dataExtent[0]) / dataSpan, (range[1] - dataExtent[0]) / dataSpan];\n  return function (val) {\n    return val >= range[0] && val <= range[1];\n  };\n}\n\nfunction isGeoCoordSys(coordSys) {\n  var dimensions = coordSys.dimensions;\n  return dimensions[0] === 'lng' && dimensions[1] === 'lat';\n}\n\nvar HeatmapView = function (_super) {\n  __extends(HeatmapView, _super);\n\n  function HeatmapView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = HeatmapView.type;\n    return _this;\n  }\n\n  HeatmapView.prototype.render = function (seriesModel, ecModel, api) {\n    var visualMapOfThisSeries;\n    ecModel.eachComponent('visualMap', function (visualMap) {\n      visualMap.eachTargetSeries(function (targetSeries) {\n        if (targetSeries === seriesModel) {\n          visualMapOfThisSeries = visualMap;\n        }\n      });\n    });\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!visualMapOfThisSeries) {\n        throw new Error('Heatmap must use with visualMap');\n      }\n    }\n\n    this.group.removeAll();\n    this._incrementalDisplayable = null;\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys.type === 'cartesian2d' || coordSys.type === 'calendar') {\n      this._renderOnCartesianAndCalendar(seriesModel, api, 0, seriesModel.getData().count());\n    } else if (isGeoCoordSys(coordSys)) {\n      this._renderOnGeo(coordSys, seriesModel, visualMapOfThisSeries, api);\n    }\n  };\n\n  HeatmapView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n    this.group.removeAll();\n  };\n\n  HeatmapView.prototype.incrementalRender = function (params, seriesModel, ecModel, api) {\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys) {\n      if (isGeoCoordSys(coordSys)) {\n        this.render(seriesModel, ecModel, api);\n      } else {\n        this._renderOnCartesianAndCalendar(seriesModel, api, params.start, params.end, true);\n      }\n    }\n  };\n\n  HeatmapView.prototype._renderOnCartesianAndCalendar = function (seriesModel, api, start, end, incremental) {\n    var coordSys = seriesModel.coordinateSystem;\n    var width;\n    var height;\n    var xAxisExtent;\n    var yAxisExtent;\n\n    if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n      var xAxis = coordSys.getAxis('x');\n      var yAxis = coordSys.getAxis('y');\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (!(xAxis.type === 'category' && yAxis.type === 'category')) {\n          throw new Error('Heatmap on cartesian must have two category axes');\n        }\n\n        if (!(xAxis.onBand && yAxis.onBand)) {\n          throw new Error('Heatmap on cartesian must have two axes with boundaryGap true');\n        }\n      }\n\n      width = xAxis.getBandWidth();\n      height = yAxis.getBandWidth();\n      xAxisExtent = xAxis.scale.getExtent();\n      yAxisExtent = yAxis.scale.getExtent();\n    }\n\n    var group = this.group;\n    var data = seriesModel.getData();\n    var emphasisStyle = seriesModel.getModel(['emphasis', 'itemStyle']).getItemStyle();\n    var blurStyle = seriesModel.getModel(['blur', 'itemStyle']).getItemStyle();\n    var selectStyle = seriesModel.getModel(['select', 'itemStyle']).getItemStyle();\n    var labelStatesModels = getLabelStatesModels(seriesModel);\n    var focus = seriesModel.get(['emphasis', 'focus']);\n    var blurScope = seriesModel.get(['emphasis', 'blurScope']);\n    var dataDims = isCoordinateSystemType(coordSys, 'cartesian2d') ? [data.mapDimension('x'), data.mapDimension('y'), data.mapDimension('value')] : [data.mapDimension('time'), data.mapDimension('value')];\n\n    for (var idx = start; idx < end; idx++) {\n      var rect = void 0;\n      var style = data.getItemVisual(idx, 'style');\n\n      if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n        var dataDimX = data.get(dataDims[0], idx);\n        var dataDimY = data.get(dataDims[1], idx);\n\n        if (isNaN(data.get(dataDims[2], idx)) || dataDimX < xAxisExtent[0] || dataDimX > xAxisExtent[1] || dataDimY < yAxisExtent[0] || dataDimY > yAxisExtent[1]) {\n          continue;\n        }\n\n        var point = coordSys.dataToPoint([dataDimX, dataDimY]);\n        rect = new graphic.Rect({\n          shape: {\n            x: Math.floor(Math.round(point[0]) - width / 2),\n            y: Math.floor(Math.round(point[1]) - height / 2),\n            width: Math.ceil(width),\n            height: Math.ceil(height)\n          },\n          style: style\n        });\n      } else {\n        if (isNaN(data.get(dataDims[1], idx))) {\n          continue;\n        }\n\n        rect = new graphic.Rect({\n          z2: 1,\n          shape: coordSys.dataToRect([data.get(dataDims[0], idx)]).contentShape,\n          style: style\n        });\n      }\n\n      var itemModel = data.getItemModel(idx);\n\n      if (data.hasItemOption) {\n        var emphasisModel = itemModel.getModel('emphasis');\n        emphasisStyle = emphasisModel.getModel('itemStyle').getItemStyle();\n        blurStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\n        selectStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\n        focus = emphasisModel.get('focus');\n        blurScope = emphasisModel.get('blurScope');\n        labelStatesModels = getLabelStatesModels(itemModel);\n      }\n\n      var rawValue = seriesModel.getRawValue(idx);\n      var defaultText = '-';\n\n      if (rawValue && rawValue[2] != null) {\n        defaultText = rawValue[2] + '';\n      }\n\n      setLabelStyle(rect, labelStatesModels, {\n        labelFetcher: seriesModel,\n        labelDataIndex: idx,\n        defaultOpacity: style.opacity,\n        defaultText: defaultText\n      });\n      rect.ensureState('emphasis').style = emphasisStyle;\n      rect.ensureState('blur').style = blurStyle;\n      rect.ensureState('select').style = selectStyle;\n      enableHoverEmphasis(rect, focus, blurScope);\n      rect.incremental = incremental;\n\n      if (incremental) {\n        rect.states.emphasis.hoverLayer = true;\n      }\n\n      group.add(rect);\n      data.setItemGraphicEl(idx, rect);\n    }\n  };\n\n  HeatmapView.prototype._renderOnGeo = function (geo, seriesModel, visualMapModel, api) {\n    var inRangeVisuals = visualMapModel.targetVisuals.inRange;\n    var outOfRangeVisuals = visualMapModel.targetVisuals.outOfRange;\n    var data = seriesModel.getData();\n    var hmLayer = this._hmLayer || this._hmLayer || new HeatmapLayer();\n    hmLayer.blurSize = seriesModel.get('blurSize');\n    hmLayer.pointSize = seriesModel.get('pointSize');\n    hmLayer.minOpacity = seriesModel.get('minOpacity');\n    hmLayer.maxOpacity = seriesModel.get('maxOpacity');\n    var rect = geo.getViewRect().clone();\n    var roamTransform = geo.getRoamTransform();\n    rect.applyTransform(roamTransform);\n    var x = Math.max(rect.x, 0);\n    var y = Math.max(rect.y, 0);\n    var x2 = Math.min(rect.width + rect.x, api.getWidth());\n    var y2 = Math.min(rect.height + rect.y, api.getHeight());\n    var width = x2 - x;\n    var height = y2 - y;\n    var dims = [data.mapDimension('lng'), data.mapDimension('lat'), data.mapDimension('value')];\n    var points = data.mapArray(dims, function (lng, lat, value) {\n      var pt = geo.dataToPoint([lng, lat]);\n      pt[0] -= x;\n      pt[1] -= y;\n      pt.push(value);\n      return pt;\n    });\n    var dataExtent = visualMapModel.getExtent();\n    var isInRange = visualMapModel.type === 'visualMap.continuous' ? getIsInContinuousRange(dataExtent, visualMapModel.option.range) : getIsInPiecewiseRange(dataExtent, visualMapModel.getPieceList(), visualMapModel.option.selected);\n    hmLayer.update(points, width, height, inRangeVisuals.color.getNormalizer(), {\n      inRange: inRangeVisuals.color.getColorMapper(),\n      outOfRange: outOfRangeVisuals.color.getColorMapper()\n    }, isInRange);\n    var img = new graphic.Image({\n      style: {\n        width: width,\n        height: height,\n        x: x,\n        y: y,\n        image: hmLayer.canvas\n      },\n      silent: true\n    });\n    this.group.add(img);\n  };\n\n  HeatmapView.type = 'heatmap';\n  return HeatmapView;\n}(ChartView);\n\nexport default HeatmapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport createListFromArray from '../helper/createListFromArray';\nimport CoordinateSystem from '../../core/CoordinateSystem';\n\nvar HeatmapSeriesModel = function (_super) {\n  __extends(HeatmapSeriesModel, _super);\n\n  function HeatmapSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = HeatmapSeriesModel.type;\n    return _this;\n  }\n\n  HeatmapSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListFromArray(this.getSource(), this, {\n      generateCoord: 'value'\n    });\n  };\n\n  HeatmapSeriesModel.prototype.preventIncremental = function () {\n    var coordSysCreator = CoordinateSystem.get(this.get('coordinateSystem'));\n\n    if (coordSysCreator && coordSysCreator.dimensions) {\n      return coordSysCreator.dimensions[0] === 'lng' && coordSysCreator.dimensions[1] === 'lat';\n    }\n  };\n\n  HeatmapSeriesModel.type = 'series.heatmap';\n  HeatmapSeriesModel.dependencies = ['grid', 'geo', 'calendar'];\n  HeatmapSeriesModel.defaultOption = {\n    coordinateSystem: 'cartesian2d',\n    zlevel: 0,\n    z: 2,\n    geoIndex: 0,\n    blurSize: 30,\n    pointSize: 20,\n    maxOpacity: 1,\n    minOpacity: 0,\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    }\n  };\n  return HeatmapSeriesModel;\n}(SeriesModel);\n\nexport default HeatmapSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport HeatmapView from './HeatmapView';\nimport HeatmapSeriesModel from './HeatmapSeries';\nexport function install(registers) {\n  registers.registerChartView(HeatmapView);\n  registers.registerSeriesModel(HeatmapSeriesModel);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis } from '../../util/states';\nimport { createSymbol } from '../../util/symbol';\nimport { parsePercent, isNumeric } from '../../util/number';\nimport ChartView from '../../view/Chart';\nimport { getDefaultLabel } from '../helper/labelHelper';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport ZRImage from 'zrender/lib/graphic/Image';\nimport { getECData } from '../../util/innerStore';\nvar BAR_BORDER_WIDTH_QUERY = ['itemStyle', 'borderWidth'];\nvar LAYOUT_ATTRS = [{\n  xy: 'x',\n  wh: 'width',\n  index: 0,\n  posDesc: ['left', 'right']\n}, {\n  xy: 'y',\n  wh: 'height',\n  index: 1,\n  posDesc: ['top', 'bottom']\n}];\nvar pathForLineWidth = new graphic.Circle();\n\nvar PictorialBarView = function (_super) {\n  __extends(PictorialBarView, _super);\n\n  function PictorialBarView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = PictorialBarView.type;\n    return _this;\n  }\n\n  PictorialBarView.prototype.render = function (seriesModel, ecModel, api) {\n    var group = this.group;\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var cartesian = seriesModel.coordinateSystem;\n    var baseAxis = cartesian.getBaseAxis();\n    var isHorizontal = baseAxis.isHorizontal();\n    var coordSysRect = cartesian.master.getRect();\n    var opt = {\n      ecSize: {\n        width: api.getWidth(),\n        height: api.getHeight()\n      },\n      seriesModel: seriesModel,\n      coordSys: cartesian,\n      coordSysExtent: [[coordSysRect.x, coordSysRect.x + coordSysRect.width], [coordSysRect.y, coordSysRect.y + coordSysRect.height]],\n      isHorizontal: isHorizontal,\n      valueDim: LAYOUT_ATTRS[+isHorizontal],\n      categoryDim: LAYOUT_ATTRS[1 - +isHorizontal]\n    };\n    data.diff(oldData).add(function (dataIndex) {\n      if (!data.hasValue(dataIndex)) {\n        return;\n      }\n\n      var itemModel = getItemModel(data, dataIndex);\n      var symbolMeta = getSymbolMeta(data, dataIndex, itemModel, opt);\n      var bar = createBar(data, opt, symbolMeta);\n      data.setItemGraphicEl(dataIndex, bar);\n      group.add(bar);\n      updateCommon(bar, opt, symbolMeta);\n    }).update(function (newIndex, oldIndex) {\n      var bar = oldData.getItemGraphicEl(oldIndex);\n\n      if (!data.hasValue(newIndex)) {\n        group.remove(bar);\n        return;\n      }\n\n      var itemModel = getItemModel(data, newIndex);\n      var symbolMeta = getSymbolMeta(data, newIndex, itemModel, opt);\n      var pictorialShapeStr = getShapeStr(data, symbolMeta);\n\n      if (bar && pictorialShapeStr !== bar.__pictorialShapeStr) {\n        group.remove(bar);\n        data.setItemGraphicEl(newIndex, null);\n        bar = null;\n      }\n\n      if (bar) {\n        updateBar(bar, opt, symbolMeta);\n      } else {\n        bar = createBar(data, opt, symbolMeta, true);\n      }\n\n      data.setItemGraphicEl(newIndex, bar);\n      bar.__pictorialSymbolMeta = symbolMeta;\n      group.add(bar);\n      updateCommon(bar, opt, symbolMeta);\n    }).remove(function (dataIndex) {\n      var bar = oldData.getItemGraphicEl(dataIndex);\n      bar && removeBar(oldData, dataIndex, bar.__pictorialSymbolMeta.animationModel, bar);\n    }).execute();\n    this._data = data;\n    return this.group;\n  };\n\n  PictorialBarView.prototype.remove = function (ecModel, api) {\n    var group = this.group;\n    var data = this._data;\n\n    if (ecModel.get('animation')) {\n      if (data) {\n        data.eachItemGraphicEl(function (bar) {\n          removeBar(data, getECData(bar).dataIndex, ecModel, bar);\n        });\n      }\n    } else {\n      group.removeAll();\n    }\n  };\n\n  PictorialBarView.type = 'pictorialBar';\n  return PictorialBarView;\n}(ChartView);\n\nfunction getSymbolMeta(data, dataIndex, itemModel, opt) {\n  var layout = data.getItemLayout(dataIndex);\n  var symbolRepeat = itemModel.get('symbolRepeat');\n  var symbolClip = itemModel.get('symbolClip');\n  var symbolPosition = itemModel.get('symbolPosition') || 'start';\n  var symbolRotate = itemModel.get('symbolRotate');\n  var rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\n  var symbolPatternSize = itemModel.get('symbolPatternSize') || 2;\n  var isAnimationEnabled = itemModel.isAnimationEnabled();\n  var symbolMeta = {\n    dataIndex: dataIndex,\n    layout: layout,\n    itemModel: itemModel,\n    symbolType: data.getItemVisual(dataIndex, 'symbol') || 'circle',\n    style: data.getItemVisual(dataIndex, 'style'),\n    symbolClip: symbolClip,\n    symbolRepeat: symbolRepeat,\n    symbolRepeatDirection: itemModel.get('symbolRepeatDirection'),\n    symbolPatternSize: symbolPatternSize,\n    rotation: rotation,\n    animationModel: isAnimationEnabled ? itemModel : null,\n    hoverScale: isAnimationEnabled && itemModel.get(['emphasis', 'scale']),\n    z2: itemModel.getShallow('z', true) || 0\n  };\n  prepareBarLength(itemModel, symbolRepeat, layout, opt, symbolMeta);\n  prepareSymbolSize(data, dataIndex, layout, symbolRepeat, symbolClip, symbolMeta.boundingLength, symbolMeta.pxSign, symbolPatternSize, opt, symbolMeta);\n  prepareLineWidth(itemModel, symbolMeta.symbolScale, rotation, opt, symbolMeta);\n  var symbolSize = symbolMeta.symbolSize;\n  var symbolOffset = itemModel.get('symbolOffset');\n\n  if (zrUtil.isArray(symbolOffset)) {\n    symbolOffset = [parsePercent(symbolOffset[0], symbolSize[0]), parsePercent(symbolOffset[1], symbolSize[1])];\n  }\n\n  prepareLayoutInfo(itemModel, symbolSize, layout, symbolRepeat, symbolClip, symbolOffset, symbolPosition, symbolMeta.valueLineWidth, symbolMeta.boundingLength, symbolMeta.repeatCutLength, opt, symbolMeta);\n  return symbolMeta;\n}\n\nfunction prepareBarLength(itemModel, symbolRepeat, layout, opt, outputSymbolMeta) {\n  var valueDim = opt.valueDim;\n  var symbolBoundingData = itemModel.get('symbolBoundingData');\n  var valueAxis = opt.coordSys.getOtherAxis(opt.coordSys.getBaseAxis());\n  var zeroPx = valueAxis.toGlobalCoord(valueAxis.dataToCoord(0));\n  var pxSignIdx = 1 - +(layout[valueDim.wh] <= 0);\n  var boundingLength;\n\n  if (zrUtil.isArray(symbolBoundingData)) {\n    var symbolBoundingExtent = [convertToCoordOnAxis(valueAxis, symbolBoundingData[0]) - zeroPx, convertToCoordOnAxis(valueAxis, symbolBoundingData[1]) - zeroPx];\n    symbolBoundingExtent[1] < symbolBoundingExtent[0] && symbolBoundingExtent.reverse();\n    boundingLength = symbolBoundingExtent[pxSignIdx];\n  } else if (symbolBoundingData != null) {\n    boundingLength = convertToCoordOnAxis(valueAxis, symbolBoundingData) - zeroPx;\n  } else if (symbolRepeat) {\n    boundingLength = opt.coordSysExtent[valueDim.index][pxSignIdx] - zeroPx;\n  } else {\n    boundingLength = layout[valueDim.wh];\n  }\n\n  outputSymbolMeta.boundingLength = boundingLength;\n\n  if (symbolRepeat) {\n    outputSymbolMeta.repeatCutLength = layout[valueDim.wh];\n  }\n\n  outputSymbolMeta.pxSign = boundingLength > 0 ? 1 : boundingLength < 0 ? -1 : 0;\n}\n\nfunction convertToCoordOnAxis(axis, value) {\n  return axis.toGlobalCoord(axis.dataToCoord(axis.scale.parse(value)));\n}\n\nfunction prepareSymbolSize(data, dataIndex, layout, symbolRepeat, symbolClip, boundingLength, pxSign, symbolPatternSize, opt, outputSymbolMeta) {\n  var valueDim = opt.valueDim;\n  var categoryDim = opt.categoryDim;\n  var categorySize = Math.abs(layout[categoryDim.wh]);\n  var symbolSize = data.getItemVisual(dataIndex, 'symbolSize');\n  var parsedSymbolSize;\n\n  if (zrUtil.isArray(symbolSize)) {\n    parsedSymbolSize = symbolSize.slice();\n  } else {\n    if (symbolSize == null) {\n      parsedSymbolSize = ['100%', '100%'];\n    } else {\n      parsedSymbolSize = [symbolSize, symbolSize];\n    }\n  }\n\n  parsedSymbolSize[categoryDim.index] = parsePercent(parsedSymbolSize[categoryDim.index], categorySize);\n  parsedSymbolSize[valueDim.index] = parsePercent(parsedSymbolSize[valueDim.index], symbolRepeat ? categorySize : Math.abs(boundingLength));\n  outputSymbolMeta.symbolSize = parsedSymbolSize;\n  var symbolScale = outputSymbolMeta.symbolScale = [parsedSymbolSize[0] / symbolPatternSize, parsedSymbolSize[1] / symbolPatternSize];\n  symbolScale[valueDim.index] *= (opt.isHorizontal ? -1 : 1) * pxSign;\n}\n\nfunction prepareLineWidth(itemModel, symbolScale, rotation, opt, outputSymbolMeta) {\n  var valueLineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0;\n\n  if (valueLineWidth) {\n    pathForLineWidth.attr({\n      scaleX: symbolScale[0],\n      scaleY: symbolScale[1],\n      rotation: rotation\n    });\n    pathForLineWidth.updateTransform();\n    valueLineWidth /= pathForLineWidth.getLineScale();\n    valueLineWidth *= symbolScale[opt.valueDim.index];\n  }\n\n  outputSymbolMeta.valueLineWidth = valueLineWidth;\n}\n\nfunction prepareLayoutInfo(itemModel, symbolSize, layout, symbolRepeat, symbolClip, symbolOffset, symbolPosition, valueLineWidth, boundingLength, repeatCutLength, opt, outputSymbolMeta) {\n  var categoryDim = opt.categoryDim;\n  var valueDim = opt.valueDim;\n  var pxSign = outputSymbolMeta.pxSign;\n  var unitLength = Math.max(symbolSize[valueDim.index] + valueLineWidth, 0);\n  var pathLen = unitLength;\n\n  if (symbolRepeat) {\n    var absBoundingLength = Math.abs(boundingLength);\n    var symbolMargin = zrUtil.retrieve(itemModel.get('symbolMargin'), '15%') + '';\n    var hasEndGap = false;\n\n    if (symbolMargin.lastIndexOf('!') === symbolMargin.length - 1) {\n      hasEndGap = true;\n      symbolMargin = symbolMargin.slice(0, symbolMargin.length - 1);\n    }\n\n    var symbolMarginNumeric = parsePercent(symbolMargin, symbolSize[valueDim.index]);\n    var uLenWithMargin = Math.max(unitLength + symbolMarginNumeric * 2, 0);\n    var endFix = hasEndGap ? 0 : symbolMarginNumeric * 2;\n    var repeatSpecified = isNumeric(symbolRepeat);\n    var repeatTimes = repeatSpecified ? symbolRepeat : toIntTimes((absBoundingLength + endFix) / uLenWithMargin);\n    var mDiff = absBoundingLength - repeatTimes * unitLength;\n    symbolMarginNumeric = mDiff / 2 / (hasEndGap ? repeatTimes : repeatTimes - 1);\n    uLenWithMargin = unitLength + symbolMarginNumeric * 2;\n    endFix = hasEndGap ? 0 : symbolMarginNumeric * 2;\n\n    if (!repeatSpecified && symbolRepeat !== 'fixed') {\n      repeatTimes = repeatCutLength ? toIntTimes((Math.abs(repeatCutLength) + endFix) / uLenWithMargin) : 0;\n    }\n\n    pathLen = repeatTimes * uLenWithMargin - endFix;\n    outputSymbolMeta.repeatTimes = repeatTimes;\n    outputSymbolMeta.symbolMargin = symbolMarginNumeric;\n  }\n\n  var sizeFix = pxSign * (pathLen / 2);\n  var pathPosition = outputSymbolMeta.pathPosition = [];\n  pathPosition[categoryDim.index] = layout[categoryDim.wh] / 2;\n  pathPosition[valueDim.index] = symbolPosition === 'start' ? sizeFix : symbolPosition === 'end' ? boundingLength - sizeFix : boundingLength / 2;\n\n  if (symbolOffset) {\n    pathPosition[0] += symbolOffset[0];\n    pathPosition[1] += symbolOffset[1];\n  }\n\n  var bundlePosition = outputSymbolMeta.bundlePosition = [];\n  bundlePosition[categoryDim.index] = layout[categoryDim.xy];\n  bundlePosition[valueDim.index] = layout[valueDim.xy];\n  var barRectShape = outputSymbolMeta.barRectShape = zrUtil.extend({}, layout);\n  barRectShape[valueDim.wh] = pxSign * Math.max(Math.abs(layout[valueDim.wh]), Math.abs(pathPosition[valueDim.index] + sizeFix));\n  barRectShape[categoryDim.wh] = layout[categoryDim.wh];\n  var clipShape = outputSymbolMeta.clipShape = {};\n  clipShape[categoryDim.xy] = -layout[categoryDim.xy];\n  clipShape[categoryDim.wh] = opt.ecSize[categoryDim.wh];\n  clipShape[valueDim.xy] = 0;\n  clipShape[valueDim.wh] = layout[valueDim.wh];\n}\n\nfunction createPath(symbolMeta) {\n  var symbolPatternSize = symbolMeta.symbolPatternSize;\n  var path = createSymbol(symbolMeta.symbolType, -symbolPatternSize / 2, -symbolPatternSize / 2, symbolPatternSize, symbolPatternSize);\n  path.attr({\n    culling: true\n  });\n  path.type !== 'image' && path.setStyle({\n    strokeNoScale: true\n  });\n  return path;\n}\n\nfunction createOrUpdateRepeatSymbols(bar, opt, symbolMeta, isUpdate) {\n  var bundle = bar.__pictorialBundle;\n  var symbolSize = symbolMeta.symbolSize;\n  var valueLineWidth = symbolMeta.valueLineWidth;\n  var pathPosition = symbolMeta.pathPosition;\n  var valueDim = opt.valueDim;\n  var repeatTimes = symbolMeta.repeatTimes || 0;\n  var index = 0;\n  var unit = symbolSize[opt.valueDim.index] + valueLineWidth + symbolMeta.symbolMargin * 2;\n  eachPath(bar, function (path) {\n    path.__pictorialAnimationIndex = index;\n    path.__pictorialRepeatTimes = repeatTimes;\n\n    if (index < repeatTimes) {\n      updateAttr(path, null, makeTarget(index), symbolMeta, isUpdate);\n    } else {\n      updateAttr(path, null, {\n        scaleX: 0,\n        scaleY: 0\n      }, symbolMeta, isUpdate, function () {\n        bundle.remove(path);\n      });\n    }\n\n    index++;\n  });\n\n  for (; index < repeatTimes; index++) {\n    var path = createPath(symbolMeta);\n    path.__pictorialAnimationIndex = index;\n    path.__pictorialRepeatTimes = repeatTimes;\n    bundle.add(path);\n    var target = makeTarget(index);\n    updateAttr(path, {\n      x: target.x,\n      y: target.y,\n      scaleX: 0,\n      scaleY: 0\n    }, {\n      scaleX: target.scaleX,\n      scaleY: target.scaleY,\n      rotation: target.rotation\n    }, symbolMeta, isUpdate);\n  }\n\n  function makeTarget(index) {\n    var position = pathPosition.slice();\n    var pxSign = symbolMeta.pxSign;\n    var i = index;\n\n    if (symbolMeta.symbolRepeatDirection === 'start' ? pxSign > 0 : pxSign < 0) {\n      i = repeatTimes - 1 - index;\n    }\n\n    position[valueDim.index] = unit * (i - repeatTimes / 2 + 0.5) + pathPosition[valueDim.index];\n    return {\n      x: position[0],\n      y: position[1],\n      scaleX: symbolMeta.symbolScale[0],\n      scaleY: symbolMeta.symbolScale[1],\n      rotation: symbolMeta.rotation\n    };\n  }\n}\n\nfunction createOrUpdateSingleSymbol(bar, opt, symbolMeta, isUpdate) {\n  var bundle = bar.__pictorialBundle;\n  var mainPath = bar.__pictorialMainPath;\n\n  if (!mainPath) {\n    mainPath = bar.__pictorialMainPath = createPath(symbolMeta);\n    bundle.add(mainPath);\n    updateAttr(mainPath, {\n      x: symbolMeta.pathPosition[0],\n      y: symbolMeta.pathPosition[1],\n      scaleX: 0,\n      scaleY: 0,\n      rotation: symbolMeta.rotation\n    }, {\n      scaleX: symbolMeta.symbolScale[0],\n      scaleY: symbolMeta.symbolScale[1]\n    }, symbolMeta, isUpdate);\n  } else {\n    updateAttr(mainPath, null, {\n      x: symbolMeta.pathPosition[0],\n      y: symbolMeta.pathPosition[1],\n      scaleX: symbolMeta.symbolScale[0],\n      scaleY: symbolMeta.symbolScale[1],\n      rotation: symbolMeta.rotation\n    }, symbolMeta, isUpdate);\n  }\n}\n\nfunction createOrUpdateBarRect(bar, symbolMeta, isUpdate) {\n  var rectShape = zrUtil.extend({}, symbolMeta.barRectShape);\n  var barRect = bar.__pictorialBarRect;\n\n  if (!barRect) {\n    barRect = bar.__pictorialBarRect = new graphic.Rect({\n      z2: 2,\n      shape: rectShape,\n      silent: true,\n      style: {\n        stroke: 'transparent',\n        fill: 'transparent',\n        lineWidth: 0\n      }\n    });\n    bar.add(barRect);\n  } else {\n    updateAttr(barRect, null, {\n      shape: rectShape\n    }, symbolMeta, isUpdate);\n  }\n}\n\nfunction createOrUpdateClip(bar, opt, symbolMeta, isUpdate) {\n  if (symbolMeta.symbolClip) {\n    var clipPath = bar.__pictorialClipPath;\n    var clipShape = zrUtil.extend({}, symbolMeta.clipShape);\n    var valueDim = opt.valueDim;\n    var animationModel = symbolMeta.animationModel;\n    var dataIndex = symbolMeta.dataIndex;\n\n    if (clipPath) {\n      graphic.updateProps(clipPath, {\n        shape: clipShape\n      }, animationModel, dataIndex);\n    } else {\n      clipShape[valueDim.wh] = 0;\n      clipPath = new graphic.Rect({\n        shape: clipShape\n      });\n\n      bar.__pictorialBundle.setClipPath(clipPath);\n\n      bar.__pictorialClipPath = clipPath;\n      var target = {};\n      target[valueDim.wh] = symbolMeta.clipShape[valueDim.wh];\n      graphic[isUpdate ? 'updateProps' : 'initProps'](clipPath, {\n        shape: target\n      }, animationModel, dataIndex);\n    }\n  }\n}\n\nfunction getItemModel(data, dataIndex) {\n  var itemModel = data.getItemModel(dataIndex);\n  itemModel.getAnimationDelayParams = getAnimationDelayParams;\n  itemModel.isAnimationEnabled = isAnimationEnabled;\n  return itemModel;\n}\n\nfunction getAnimationDelayParams(path) {\n  return {\n    index: path.__pictorialAnimationIndex,\n    count: path.__pictorialRepeatTimes\n  };\n}\n\nfunction isAnimationEnabled() {\n  return this.parentModel.isAnimationEnabled() && !!this.getShallow('animation');\n}\n\nfunction createBar(data, opt, symbolMeta, isUpdate) {\n  var bar = new graphic.Group();\n  var bundle = new graphic.Group();\n  bar.add(bundle);\n  bar.__pictorialBundle = bundle;\n  bundle.x = symbolMeta.bundlePosition[0];\n  bundle.y = symbolMeta.bundlePosition[1];\n\n  if (symbolMeta.symbolRepeat) {\n    createOrUpdateRepeatSymbols(bar, opt, symbolMeta);\n  } else {\n    createOrUpdateSingleSymbol(bar, opt, symbolMeta);\n  }\n\n  createOrUpdateBarRect(bar, symbolMeta, isUpdate);\n  createOrUpdateClip(bar, opt, symbolMeta, isUpdate);\n  bar.__pictorialShapeStr = getShapeStr(data, symbolMeta);\n  bar.__pictorialSymbolMeta = symbolMeta;\n  return bar;\n}\n\nfunction updateBar(bar, opt, symbolMeta) {\n  var animationModel = symbolMeta.animationModel;\n  var dataIndex = symbolMeta.dataIndex;\n  var bundle = bar.__pictorialBundle;\n  graphic.updateProps(bundle, {\n    x: symbolMeta.bundlePosition[0],\n    y: symbolMeta.bundlePosition[1]\n  }, animationModel, dataIndex);\n\n  if (symbolMeta.symbolRepeat) {\n    createOrUpdateRepeatSymbols(bar, opt, symbolMeta, true);\n  } else {\n    createOrUpdateSingleSymbol(bar, opt, symbolMeta, true);\n  }\n\n  createOrUpdateBarRect(bar, symbolMeta, true);\n  createOrUpdateClip(bar, opt, symbolMeta, true);\n}\n\nfunction removeBar(data, dataIndex, animationModel, bar) {\n  var labelRect = bar.__pictorialBarRect;\n  labelRect && labelRect.removeTextContent();\n  var pathes = [];\n  eachPath(bar, function (path) {\n    pathes.push(path);\n  });\n  bar.__pictorialMainPath && pathes.push(bar.__pictorialMainPath);\n  bar.__pictorialClipPath && (animationModel = null);\n  zrUtil.each(pathes, function (path) {\n    graphic.removeElement(path, {\n      scaleX: 0,\n      scaleY: 0\n    }, animationModel, dataIndex, function () {\n      bar.parent && bar.parent.remove(bar);\n    });\n  });\n  data.setItemGraphicEl(dataIndex, null);\n}\n\nfunction getShapeStr(data, symbolMeta) {\n  return [data.getItemVisual(symbolMeta.dataIndex, 'symbol') || 'none', !!symbolMeta.symbolRepeat, !!symbolMeta.symbolClip].join(':');\n}\n\nfunction eachPath(bar, cb, context) {\n  zrUtil.each(bar.__pictorialBundle.children(), function (el) {\n    el !== bar.__pictorialBarRect && cb.call(context, el);\n  });\n}\n\nfunction updateAttr(el, immediateAttrs, animationAttrs, symbolMeta, isUpdate, cb) {\n  immediateAttrs && el.attr(immediateAttrs);\n\n  if (symbolMeta.symbolClip && !isUpdate) {\n    animationAttrs && el.attr(animationAttrs);\n  } else {\n    animationAttrs && graphic[isUpdate ? 'updateProps' : 'initProps'](el, animationAttrs, symbolMeta.animationModel, symbolMeta.dataIndex, cb);\n  }\n}\n\nfunction updateCommon(bar, opt, symbolMeta) {\n  var dataIndex = symbolMeta.dataIndex;\n  var itemModel = symbolMeta.itemModel;\n  var emphasisModel = itemModel.getModel('emphasis');\n  var emphasisStyle = emphasisModel.getModel('itemStyle').getItemStyle();\n  var blurStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\n  var selectStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\n  var cursorStyle = itemModel.getShallow('cursor');\n  var focus = emphasisModel.get('focus');\n  var blurScope = emphasisModel.get('blurScope');\n  var hoverScale = emphasisModel.get('scale');\n  eachPath(bar, function (path) {\n    if (path instanceof ZRImage) {\n      var pathStyle = path.style;\n      path.useStyle(zrUtil.extend({\n        image: pathStyle.image,\n        x: pathStyle.x,\n        y: pathStyle.y,\n        width: pathStyle.width,\n        height: pathStyle.height\n      }, symbolMeta.style));\n    } else {\n      path.useStyle(symbolMeta.style);\n    }\n\n    var emphasisState = path.ensureState('emphasis');\n    emphasisState.style = emphasisStyle;\n\n    if (hoverScale) {\n      emphasisState.scaleX = path.scaleX * 1.1;\n      emphasisState.scaleY = path.scaleY * 1.1;\n    }\n\n    path.ensureState('blur').style = blurStyle;\n    path.ensureState('select').style = selectStyle;\n    cursorStyle && (path.cursor = cursorStyle);\n    path.z2 = symbolMeta.z2;\n  });\n  var barPositionOutside = opt.valueDim.posDesc[+(symbolMeta.boundingLength > 0)];\n  var barRect = bar.__pictorialBarRect;\n  setLabelStyle(barRect, getLabelStatesModels(itemModel), {\n    labelFetcher: opt.seriesModel,\n    labelDataIndex: dataIndex,\n    defaultText: getDefaultLabel(opt.seriesModel.getData(), dataIndex),\n    inheritColor: symbolMeta.style.fill,\n    defaultOpacity: symbolMeta.style.opacity,\n    defaultOutsidePosition: barPositionOutside\n  });\n  enableHoverEmphasis(bar, focus, blurScope);\n}\n\nfunction toIntTimes(times) {\n  var roundedTimes = Math.round(times);\n  return Math.abs(times - roundedTimes) < 1e-4 ? roundedTimes : Math.ceil(times);\n}\n\nexport default PictorialBarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BaseBarSeriesModel from './BaseBarSeries';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar PictorialBarSeriesModel = function (_super) {\n  __extends(PictorialBarSeriesModel, _super);\n\n  function PictorialBarSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = PictorialBarSeriesModel.type;\n    _this.hasSymbolVisual = true;\n    _this.defaultSymbol = 'roundRect';\n    return _this;\n  }\n\n  PictorialBarSeriesModel.prototype.getInitialData = function (option) {\n    option.stack = null;\n    return _super.prototype.getInitialData.apply(this, arguments);\n  };\n\n  PictorialBarSeriesModel.type = 'series.pictorialBar';\n  PictorialBarSeriesModel.dependencies = ['grid'];\n  PictorialBarSeriesModel.defaultOption = inheritDefaultOption(BaseBarSeriesModel.defaultOption, {\n    symbol: 'circle',\n    symbolSize: null,\n    symbolRotate: null,\n    symbolPosition: null,\n    symbolOffset: null,\n    symbolMargin: null,\n    symbolRepeat: false,\n    symbolRepeatDirection: 'end',\n    symbolClip: false,\n    symbolBoundingData: null,\n    symbolPatternSize: 400,\n    barGap: '-100%',\n    progressive: 0,\n    emphasis: {\n      scale: false\n    },\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    }\n  });\n  return PictorialBarSeriesModel;\n}(BaseBarSeriesModel);\n\nexport default PictorialBarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport PictorialBarView from './PictorialBarView';\nimport PictorialBarSeriesModel from './PictorialBarSeries';\nimport { layout } from '../../layout/barGrid';\nimport { curry } from 'zrender/lib/core/util';\nexport function install(registers) {\n  registers.registerChartView(PictorialBarView);\n  registers.registerSeriesModel(PictorialBarSeriesModel);\n  registers.registerLayout(curry(layout, 'pictorialBar'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { ECPolygon } from '../line/poly';\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { bind } from 'zrender/lib/core/util';\nimport DataDiffer from '../../data/DataDiffer';\nimport ChartView from '../../view/Chart';\n\nvar ThemeRiverView = function (_super) {\n  __extends(ThemeRiverView, _super);\n\n  function ThemeRiverView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ThemeRiverView.type;\n    _this._layers = [];\n    return _this;\n  }\n\n  ThemeRiverView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    var self = this;\n    var group = this.group;\n    var layersSeries = seriesModel.getLayerSeries();\n    var layoutInfo = data.getLayout('layoutInfo');\n    var rect = layoutInfo.rect;\n    var boundaryGap = layoutInfo.boundaryGap;\n    group.x = 0;\n    group.y = rect.y + boundaryGap[0];\n\n    function keyGetter(item) {\n      return item.name;\n    }\n\n    var dataDiffer = new DataDiffer(this._layersSeries || [], layersSeries, keyGetter, keyGetter);\n    var newLayersGroups = [];\n    dataDiffer.add(bind(process, this, 'add')).update(bind(process, this, 'update')).remove(bind(process, this, 'remove')).execute();\n\n    function process(status, idx, oldIdx) {\n      var oldLayersGroups = self._layers;\n\n      if (status === 'remove') {\n        group.remove(oldLayersGroups[idx]);\n        return;\n      }\n\n      var points0 = [];\n      var points1 = [];\n      var style;\n      var indices = layersSeries[idx].indices;\n      var j = 0;\n\n      for (; j < indices.length; j++) {\n        var layout = data.getItemLayout(indices[j]);\n        var x = layout.x;\n        var y0 = layout.y0;\n        var y = layout.y;\n        points0.push(x, y0);\n        points1.push(x, y0 + y);\n        style = data.getItemVisual(indices[j], 'style');\n      }\n\n      var polygon;\n      var textLayout = data.getItemLayout(indices[0]);\n      var labelModel = seriesModel.getModel('label');\n      var margin = labelModel.get('margin');\n      var emphasisModel = seriesModel.getModel('emphasis');\n\n      if (status === 'add') {\n        var layerGroup = newLayersGroups[idx] = new graphic.Group();\n        polygon = new ECPolygon({\n          shape: {\n            points: points0,\n            stackedOnPoints: points1,\n            smooth: 0.4,\n            stackedOnSmooth: 0.4,\n            smoothConstraint: false\n          },\n          z2: 0\n        });\n        layerGroup.add(polygon);\n        group.add(layerGroup);\n\n        if (seriesModel.isAnimationEnabled()) {\n          polygon.setClipPath(createGridClipShape(polygon.getBoundingRect(), seriesModel, function () {\n            polygon.removeClipPath();\n          }));\n        }\n      } else {\n        var layerGroup = oldLayersGroups[oldIdx];\n        polygon = layerGroup.childAt(0);\n        group.add(layerGroup);\n        newLayersGroups[idx] = layerGroup;\n        graphic.updateProps(polygon, {\n          shape: {\n            points: points0,\n            stackedOnPoints: points1\n          }\n        }, seriesModel);\n      }\n\n      setLabelStyle(polygon, getLabelStatesModels(seriesModel), {\n        labelDataIndex: indices[j - 1],\n        defaultText: data.getName(indices[j - 1]),\n        inheritColor: style.fill\n      }, {\n        normal: {\n          verticalAlign: 'middle'\n        }\n      });\n      polygon.setTextConfig({\n        position: null,\n        local: true\n      });\n      var labelEl = polygon.getTextContent();\n\n      if (labelEl) {\n        labelEl.x = textLayout.x - margin;\n        labelEl.y = textLayout.y0 + textLayout.y / 2;\n      }\n\n      polygon.useStyle(style);\n      data.setItemGraphicEl(idx, polygon);\n      setStatesStylesFromModel(polygon, seriesModel);\n      enableHoverEmphasis(polygon, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n    }\n\n    this._layersSeries = layersSeries;\n    this._layers = newLayersGroups;\n  };\n\n  ThemeRiverView.type = 'themeRiver';\n  return ThemeRiverView;\n}(ChartView);\n\n;\n\nfunction createGridClipShape(rect, seriesModel, cb) {\n  var rectEl = new graphic.Rect({\n    shape: {\n      x: rect.x - 10,\n      y: rect.y - 10,\n      width: 0,\n      height: rect.height + 20\n    }\n  });\n  graphic.initProps(rectEl, {\n    shape: {\n      x: rect.x - 50,\n      width: rect.width + 100,\n      height: rect.height + 20\n    }\n  }, seriesModel, cb);\n  return rectEl;\n}\n\nexport default ThemeRiverView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport createDimensions from '../../data/helper/createDimensions';\nimport { getDimensionTypeByAxis } from '../../data/helper/dimensionHelper';\nimport List from '../../data/List';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { groupData, SINGLE_REFERRING } from '../../util/model';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup';\nvar DATA_NAME_INDEX = 2;\n\nvar ThemeRiverSeriesModel = function (_super) {\n  __extends(ThemeRiverSeriesModel, _super);\n\n  function ThemeRiverSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ThemeRiverSeriesModel.type;\n    _this.useColorPaletteOnData = true;\n    return _this;\n  }\n\n  ThemeRiverSeriesModel.prototype.init = function (option) {\n    _super.prototype.init.apply(this, arguments);\n\n    this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));\n  };\n\n  ThemeRiverSeriesModel.prototype.fixData = function (data) {\n    var rawDataLength = data.length;\n    var timeValueKeys = {};\n    var groupResult = groupData(data, function (item) {\n      if (!timeValueKeys.hasOwnProperty(item[0] + '')) {\n        timeValueKeys[item[0] + ''] = -1;\n      }\n\n      return item[2];\n    });\n    var layerData = [];\n    groupResult.buckets.each(function (items, key) {\n      layerData.push({\n        name: key,\n        dataList: items\n      });\n    });\n    var layerNum = layerData.length;\n\n    for (var k = 0; k < layerNum; ++k) {\n      var name_1 = layerData[k].name;\n\n      for (var j = 0; j < layerData[k].dataList.length; ++j) {\n        var timeValue = layerData[k].dataList[j][0] + '';\n        timeValueKeys[timeValue] = k;\n      }\n\n      for (var timeValue in timeValueKeys) {\n        if (timeValueKeys.hasOwnProperty(timeValue) && timeValueKeys[timeValue] !== k) {\n          timeValueKeys[timeValue] = k;\n          data[rawDataLength] = [timeValue, 0, name_1];\n          rawDataLength++;\n        }\n      }\n    }\n\n    return data;\n  };\n\n  ThemeRiverSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    var singleAxisModel = this.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\n    var axisType = singleAxisModel.get('type');\n    var filterData = zrUtil.filter(option.data, function (dataItem) {\n      return dataItem[2] !== undefined;\n    });\n    var data = this.fixData(filterData || []);\n    var nameList = [];\n    var nameMap = this.nameMap = zrUtil.createHashMap();\n    var count = 0;\n\n    for (var i = 0; i < data.length; ++i) {\n      nameList.push(data[i][DATA_NAME_INDEX]);\n\n      if (!nameMap.get(data[i][DATA_NAME_INDEX])) {\n        nameMap.set(data[i][DATA_NAME_INDEX], count);\n        count++;\n      }\n    }\n\n    var dimensionsInfo = createDimensions(data, {\n      coordDimensions: ['single'],\n      dimensionsDefine: [{\n        name: 'time',\n        type: getDimensionTypeByAxis(axisType)\n      }, {\n        name: 'value',\n        type: 'float'\n      }, {\n        name: 'name',\n        type: 'ordinal'\n      }],\n      encodeDefine: {\n        single: 0,\n        value: 1,\n        itemName: 2\n      }\n    });\n    var list = new List(dimensionsInfo, this);\n    list.initData(data);\n    return list;\n  };\n\n  ThemeRiverSeriesModel.prototype.getLayerSeries = function () {\n    var data = this.getData();\n    var lenCount = data.count();\n    var indexArr = [];\n\n    for (var i = 0; i < lenCount; ++i) {\n      indexArr[i] = i;\n    }\n\n    var timeDim = data.mapDimension('single');\n    var groupResult = groupData(indexArr, function (index) {\n      return data.get('name', index);\n    });\n    var layerSeries = [];\n    groupResult.buckets.each(function (items, key) {\n      items.sort(function (index1, index2) {\n        return data.get(timeDim, index1) - data.get(timeDim, index2);\n      });\n      layerSeries.push({\n        name: key,\n        indices: items\n      });\n    });\n    return layerSeries;\n  };\n\n  ThemeRiverSeriesModel.prototype.getAxisTooltipData = function (dim, value, baseAxis) {\n    if (!zrUtil.isArray(dim)) {\n      dim = dim ? [dim] : [];\n    }\n\n    var data = this.getData();\n    var layerSeries = this.getLayerSeries();\n    var indices = [];\n    var layerNum = layerSeries.length;\n    var nestestValue;\n\n    for (var i = 0; i < layerNum; ++i) {\n      var minDist = Number.MAX_VALUE;\n      var nearestIdx = -1;\n      var pointNum = layerSeries[i].indices.length;\n\n      for (var j = 0; j < pointNum; ++j) {\n        var theValue = data.get(dim[0], layerSeries[i].indices[j]);\n        var dist = Math.abs(theValue - value);\n\n        if (dist <= minDist) {\n          nestestValue = theValue;\n          minDist = dist;\n          nearestIdx = layerSeries[i].indices[j];\n        }\n      }\n\n      indices.push(nearestIdx);\n    }\n\n    return {\n      dataIndices: indices,\n      nestestValue: nestestValue\n    };\n  };\n\n  ThemeRiverSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var data = this.getData();\n    var name = data.getName(dataIndex);\n    var value = data.get(data.mapDimension('value'), dataIndex);\n    return createTooltipMarkup('nameValue', {\n      name: name,\n      value: value\n    });\n  };\n\n  ThemeRiverSeriesModel.type = 'series.themeRiver';\n  ThemeRiverSeriesModel.dependencies = ['singleAxis'];\n  ThemeRiverSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'singleAxis',\n    boundaryGap: ['10%', '10%'],\n    singleAxisIndex: 0,\n    animationEasing: 'linear',\n    label: {\n      margin: 4,\n      show: true,\n      position: 'left',\n      fontSize: 11\n    },\n    emphasis: {\n      label: {\n        show: true\n      }\n    }\n  };\n  return ThemeRiverSeriesModel;\n}(SeriesModel);\n\nexport default ThemeRiverSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as numberUtil from '../../util/number';\nexport default function themeRiverLayout(ecModel, api) {\n  ecModel.eachSeriesByType('themeRiver', function (seriesModel) {\n    var data = seriesModel.getData();\n    var single = seriesModel.coordinateSystem;\n    var layoutInfo = {};\n    var rect = single.getRect();\n    layoutInfo.rect = rect;\n    var boundaryGap = seriesModel.get('boundaryGap');\n    var axis = single.getAxis();\n    layoutInfo.boundaryGap = boundaryGap;\n\n    if (axis.orient === 'horizontal') {\n      boundaryGap[0] = numberUtil.parsePercent(boundaryGap[0], rect.height);\n      boundaryGap[1] = numberUtil.parsePercent(boundaryGap[1], rect.height);\n      var height = rect.height - boundaryGap[0] - boundaryGap[1];\n      doThemeRiverLayout(data, seriesModel, height);\n    } else {\n      boundaryGap[0] = numberUtil.parsePercent(boundaryGap[0], rect.width);\n      boundaryGap[1] = numberUtil.parsePercent(boundaryGap[1], rect.width);\n      var width = rect.width - boundaryGap[0] - boundaryGap[1];\n      doThemeRiverLayout(data, seriesModel, width);\n    }\n\n    data.setLayout('layoutInfo', layoutInfo);\n  });\n}\n\nfunction doThemeRiverLayout(data, seriesModel, height) {\n  if (!data.count()) {\n    return;\n  }\n\n  var coordSys = seriesModel.coordinateSystem;\n  var layerSeries = seriesModel.getLayerSeries();\n  var timeDim = data.mapDimension('single');\n  var valueDim = data.mapDimension('value');\n  var layerPoints = zrUtil.map(layerSeries, function (singleLayer) {\n    return zrUtil.map(singleLayer.indices, function (idx) {\n      var pt = coordSys.dataToPoint(data.get(timeDim, idx));\n      pt[1] = data.get(valueDim, idx);\n      return pt;\n    });\n  });\n  var base = computeBaseline(layerPoints);\n  var baseLine = base.y0;\n  var ky = height / base.max;\n  var n = layerSeries.length;\n  var m = layerSeries[0].indices.length;\n  var baseY0;\n\n  for (var j = 0; j < m; ++j) {\n    baseY0 = baseLine[j] * ky;\n    data.setItemLayout(layerSeries[0].indices[j], {\n      layerIndex: 0,\n      x: layerPoints[0][j][0],\n      y0: baseY0,\n      y: layerPoints[0][j][1] * ky\n    });\n\n    for (var i = 1; i < n; ++i) {\n      baseY0 += layerPoints[i - 1][j][1] * ky;\n      data.setItemLayout(layerSeries[i].indices[j], {\n        layerIndex: i,\n        x: layerPoints[i][j][0],\n        y0: baseY0,\n        y: layerPoints[i][j][1] * ky\n      });\n    }\n  }\n}\n\nfunction computeBaseline(data) {\n  var layerNum = data.length;\n  var pointNum = data[0].length;\n  var sums = [];\n  var y0 = [];\n  var max = 0;\n\n  for (var i = 0; i < pointNum; ++i) {\n    var temp = 0;\n\n    for (var j = 0; j < layerNum; ++j) {\n      temp += data[j][i][1];\n    }\n\n    if (temp > max) {\n      max = temp;\n    }\n\n    sums.push(temp);\n  }\n\n  for (var k = 0; k < pointNum; ++k) {\n    y0[k] = (max - sums[k]) / 2;\n  }\n\n  max = 0;\n\n  for (var l = 0; l < pointNum; ++l) {\n    var sum = sums[l] + y0[l];\n\n    if (sum > max) {\n      max = sum;\n    }\n  }\n\n  return {\n    y0: y0,\n    max: max\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ThemeRiverView from './ThemeRiverView';\nimport ThemeRiverSeriesModel from './ThemeRiverSeries';\nimport themeRiverLayout from './themeRiverLayout';\nimport dataFilter from '../../processor/dataFilter';\nexport function install(registers) {\n  registers.registerChartView(ThemeRiverView);\n  registers.registerSeriesModel(ThemeRiverSeriesModel);\n  registers.registerLayout(themeRiverLayout);\n  registers.registerProcessor(dataFilter('themeRiver'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis, SPECIAL_STATES, DISPLAY_STATES } from '../../util/states';\nimport { createTextStyle } from '../../label/labelStyle';\nimport { getECData } from '../../util/innerStore';\nimport { getSectorCornerRadius } from '../helper/pieHelper';\nimport { createOrUpdatePatternFromDecal } from '../../util/decal';\nvar DEFAULT_SECTOR_Z = 2;\nvar DEFAULT_TEXT_Z = 4;\n\nvar SunburstPiece = function (_super) {\n  __extends(SunburstPiece, _super);\n\n  function SunburstPiece(node, seriesModel, ecModel, api) {\n    var _this = _super.call(this) || this;\n\n    _this.z2 = DEFAULT_SECTOR_Z;\n    _this.textConfig = {\n      inside: true\n    };\n    getECData(_this).seriesIndex = seriesModel.seriesIndex;\n    var text = new graphic.Text({\n      z2: DEFAULT_TEXT_Z,\n      silent: node.getModel().get(['label', 'silent'])\n    });\n\n    _this.setTextContent(text);\n\n    _this.updateData(true, node, seriesModel, ecModel, api);\n\n    return _this;\n  }\n\n  SunburstPiece.prototype.updateData = function (firstCreate, node, seriesModel, ecModel, api) {\n    this.node = node;\n    node.piece = this;\n    seriesModel = seriesModel || this._seriesModel;\n    ecModel = ecModel || this._ecModel;\n    var sector = this;\n    getECData(sector).dataIndex = node.dataIndex;\n    var itemModel = node.getModel();\n    var emphasisModel = itemModel.getModel('emphasis');\n    var layout = node.getLayout();\n    var sectorShape = zrUtil.extend({}, layout);\n    sectorShape.label = null;\n    var normalStyle = node.getVisual('style');\n    normalStyle.lineJoin = 'bevel';\n    var decal = node.getVisual('decal');\n\n    if (decal) {\n      normalStyle.decal = createOrUpdatePatternFromDecal(decal, api);\n    }\n\n    var cornerRadius = getSectorCornerRadius(itemModel.getModel('itemStyle'), sectorShape);\n    zrUtil.extend(sectorShape, cornerRadius);\n    zrUtil.each(SPECIAL_STATES, function (stateName) {\n      var state = sector.ensureState(stateName);\n      var itemStyleModel = itemModel.getModel([stateName, 'itemStyle']);\n      state.style = itemStyleModel.getItemStyle();\n      var cornerRadius = getSectorCornerRadius(itemStyleModel, sectorShape);\n\n      if (cornerRadius) {\n        state.shape = cornerRadius;\n      }\n    });\n\n    if (firstCreate) {\n      sector.setShape(sectorShape);\n      sector.shape.r = layout.r0;\n      graphic.updateProps(sector, {\n        shape: {\n          r: layout.r\n        }\n      }, seriesModel, node.dataIndex);\n    } else {\n      graphic.updateProps(sector, {\n        shape: sectorShape\n      }, seriesModel);\n    }\n\n    sector.useStyle(normalStyle);\n\n    this._updateLabel(seriesModel);\n\n    var cursorStyle = itemModel.getShallow('cursor');\n    cursorStyle && sector.attr('cursor', cursorStyle);\n    this._seriesModel = seriesModel || this._seriesModel;\n    this._ecModel = ecModel || this._ecModel;\n    var focus = emphasisModel.get('focus');\n    var focusDataIndices = focus === 'ancestor' ? node.getAncestorsIndices() : focus === 'descendant' ? node.getDescendantIndices() : null;\n    enableHoverEmphasis(this, focusDataIndices || focus, emphasisModel.get('blurScope'));\n  };\n\n  SunburstPiece.prototype._updateLabel = function (seriesModel) {\n    var _this = this;\n\n    var itemModel = this.node.getModel();\n    var normalLabelModel = itemModel.getModel('label');\n    var layout = this.node.getLayout();\n    var angle = layout.endAngle - layout.startAngle;\n    var midAngle = (layout.startAngle + layout.endAngle) / 2;\n    var dx = Math.cos(midAngle);\n    var dy = Math.sin(midAngle);\n    var sector = this;\n    var label = sector.getTextContent();\n    var dataIndex = this.node.dataIndex;\n    var labelMinAngle = normalLabelModel.get('minAngle') / 180 * Math.PI;\n    var isNormalShown = normalLabelModel.get('show') && !(labelMinAngle != null && Math.abs(angle) < labelMinAngle);\n    label.ignore = !isNormalShown;\n    zrUtil.each(DISPLAY_STATES, function (stateName) {\n      var labelStateModel = stateName === 'normal' ? itemModel.getModel('label') : itemModel.getModel([stateName, 'label']);\n      var isNormal = stateName === 'normal';\n      var state = isNormal ? label : label.ensureState(stateName);\n      var text = seriesModel.getFormattedLabel(dataIndex, stateName);\n\n      if (isNormal) {\n        text = text || _this.node.name;\n      }\n\n      state.style = createTextStyle(labelStateModel, {}, null, stateName !== 'normal', true);\n\n      if (text) {\n        state.style.text = text;\n      }\n\n      var isShown = labelStateModel.get('show');\n\n      if (isShown != null && !isNormal) {\n        state.ignore = !isShown;\n      }\n\n      var labelPosition = getLabelAttr(labelStateModel, 'position');\n      var sectorState = isNormal ? sector : sector.states[stateName];\n      var labelColor = sectorState.style.fill;\n      sectorState.textConfig = {\n        outsideFill: labelStateModel.get('color') === 'inherit' ? labelColor : null,\n        inside: labelPosition !== 'outside'\n      };\n      var r;\n      var labelPadding = getLabelAttr(labelStateModel, 'distance') || 0;\n      var textAlign = getLabelAttr(labelStateModel, 'align');\n\n      if (labelPosition === 'outside') {\n        r = layout.r + labelPadding;\n        textAlign = midAngle > Math.PI / 2 ? 'right' : 'left';\n      } else {\n        if (!textAlign || textAlign === 'center') {\n          r = (layout.r + layout.r0) / 2;\n          textAlign = 'center';\n        } else if (textAlign === 'left') {\n          r = layout.r0 + labelPadding;\n\n          if (midAngle > Math.PI / 2) {\n            textAlign = 'right';\n          }\n        } else if (textAlign === 'right') {\n          r = layout.r - labelPadding;\n\n          if (midAngle > Math.PI / 2) {\n            textAlign = 'left';\n          }\n        }\n      }\n\n      state.style.align = textAlign;\n      state.style.verticalAlign = getLabelAttr(labelStateModel, 'verticalAlign') || 'middle';\n      state.x = r * dx + layout.cx;\n      state.y = r * dy + layout.cy;\n      var rotateType = getLabelAttr(labelStateModel, 'rotate');\n      var rotate = 0;\n\n      if (rotateType === 'radial') {\n        rotate = -midAngle;\n\n        if (rotate < -Math.PI / 2) {\n          rotate += Math.PI;\n        }\n      } else if (rotateType === 'tangential') {\n        rotate = Math.PI / 2 - midAngle;\n\n        if (rotate > Math.PI / 2) {\n          rotate -= Math.PI;\n        } else if (rotate < -Math.PI / 2) {\n          rotate += Math.PI;\n        }\n      } else if (typeof rotateType === 'number') {\n        rotate = rotateType * Math.PI / 180;\n      }\n\n      state.rotation = rotate;\n    });\n\n    function getLabelAttr(model, name) {\n      var stateAttr = model.get(name);\n\n      if (stateAttr == null) {\n        return normalLabelModel.get(name);\n      }\n\n      return stateAttr;\n    }\n\n    label.dirtyStyle();\n  };\n\n  return SunburstPiece;\n}(graphic.Sector);\n\nexport default SunburstPiece;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { extend } from 'zrender/lib/core/util';\nimport { deprecateReplaceLog } from '../../util/log';\nimport { retrieveTargetInfo, aboveViewRoot } from '../helper/treeHelper';\nexport var ROOT_TO_NODE_ACTION = 'sunburstRootToNode';\nvar HIGHLIGHT_ACTION = 'sunburstHighlight';\nvar UNHIGHLIGHT_ACTION = 'sunburstUnhighlight';\nexport function installSunburstAction(registers) {\n  registers.registerAction({\n    type: ROOT_TO_NODE_ACTION,\n    update: 'updateView'\n  }, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'sunburst',\n      query: payload\n    }, handleRootToNode);\n\n    function handleRootToNode(model, index) {\n      var targetInfo = retrieveTargetInfo(payload, [ROOT_TO_NODE_ACTION], model);\n\n      if (targetInfo) {\n        var originViewRoot = model.getViewRoot();\n\n        if (originViewRoot) {\n          payload.direction = aboveViewRoot(originViewRoot, targetInfo.node) ? 'rollUp' : 'drillDown';\n        }\n\n        model.resetViewRoot(targetInfo.node);\n      }\n    }\n  });\n  registers.registerAction({\n    type: HIGHLIGHT_ACTION,\n    update: 'none'\n  }, function (payload, ecModel, api) {\n    payload = extend({}, payload);\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'sunburst',\n      query: payload\n    }, handleHighlight);\n\n    function handleHighlight(model) {\n      var targetInfo = retrieveTargetInfo(payload, [HIGHLIGHT_ACTION], model);\n\n      if (targetInfo) {\n        payload.dataIndex = targetInfo.node.dataIndex;\n      }\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateReplaceLog('highlight', 'sunburstHighlight');\n    }\n\n    api.dispatchAction(extend(payload, {\n      type: 'highlight'\n    }));\n  });\n  registers.registerAction({\n    type: UNHIGHLIGHT_ACTION,\n    update: 'updateView'\n  }, function (payload, ecModel, api) {\n    payload = extend({}, payload);\n\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateReplaceLog('downplay', 'sunburstUnhighlight');\n    }\n\n    api.dispatchAction(extend(payload, {\n      type: 'downplay'\n    }));\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ChartView from '../../view/Chart';\nimport SunburstPiece from './SunburstPiece';\nimport DataDiffer from '../../data/DataDiffer';\nimport { ROOT_TO_NODE_ACTION } from './sunburstAction';\nimport { windowOpen } from '../../util/format';\n\nvar SunburstView = function (_super) {\n  __extends(SunburstView, _super);\n\n  function SunburstView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SunburstView.type;\n    return _this;\n  }\n\n  SunburstView.prototype.render = function (seriesModel, ecModel, api, payload) {\n    var self = this;\n    this.seriesModel = seriesModel;\n    this.api = api;\n    this.ecModel = ecModel;\n    var data = seriesModel.getData();\n    var virtualRoot = data.tree.root;\n    var newRoot = seriesModel.getViewRoot();\n    var group = this.group;\n    var renderLabelForZeroData = seriesModel.get('renderLabelForZeroData');\n    var newChildren = [];\n    newRoot.eachNode(function (node) {\n      newChildren.push(node);\n    });\n    var oldChildren = this._oldChildren || [];\n    dualTravel(newChildren, oldChildren);\n    renderRollUp(virtualRoot, newRoot);\n\n    this._initEvents();\n\n    this._oldChildren = newChildren;\n\n    function dualTravel(newChildren, oldChildren) {\n      if (newChildren.length === 0 && oldChildren.length === 0) {\n        return;\n      }\n\n      new DataDiffer(oldChildren, newChildren, getKey, getKey).add(processNode).update(processNode).remove(zrUtil.curry(processNode, null)).execute();\n\n      function getKey(node) {\n        return node.getId();\n      }\n\n      function processNode(newIdx, oldIdx) {\n        var newNode = newIdx == null ? null : newChildren[newIdx];\n        var oldNode = oldIdx == null ? null : oldChildren[oldIdx];\n        doRenderNode(newNode, oldNode);\n      }\n    }\n\n    function doRenderNode(newNode, oldNode) {\n      if (!renderLabelForZeroData && newNode && !newNode.getValue()) {\n        newNode = null;\n      }\n\n      if (newNode !== virtualRoot && oldNode !== virtualRoot) {\n        if (oldNode && oldNode.piece) {\n          if (newNode) {\n            oldNode.piece.updateData(false, newNode, seriesModel, ecModel, api);\n            data.setItemGraphicEl(newNode.dataIndex, oldNode.piece);\n          } else {\n            removeNode(oldNode);\n          }\n        } else if (newNode) {\n          var piece = new SunburstPiece(newNode, seriesModel, ecModel, api);\n          group.add(piece);\n          data.setItemGraphicEl(newNode.dataIndex, piece);\n        }\n      }\n    }\n\n    function removeNode(node) {\n      if (!node) {\n        return;\n      }\n\n      if (node.piece) {\n        group.remove(node.piece);\n        node.piece = null;\n      }\n    }\n\n    function renderRollUp(virtualRoot, viewRoot) {\n      if (viewRoot.depth > 0) {\n        if (self.virtualPiece) {\n          self.virtualPiece.updateData(false, virtualRoot, seriesModel, ecModel, api);\n        } else {\n          self.virtualPiece = new SunburstPiece(virtualRoot, seriesModel, ecModel, api);\n          group.add(self.virtualPiece);\n        }\n\n        viewRoot.piece.off('click');\n        self.virtualPiece.on('click', function (e) {\n          self._rootToNode(viewRoot.parentNode);\n        });\n      } else if (self.virtualPiece) {\n        group.remove(self.virtualPiece);\n        self.virtualPiece = null;\n      }\n    }\n  };\n\n  SunburstView.prototype._initEvents = function () {\n    var _this = this;\n\n    this.group.off('click');\n    this.group.on('click', function (e) {\n      var targetFound = false;\n\n      var viewRoot = _this.seriesModel.getViewRoot();\n\n      viewRoot.eachNode(function (node) {\n        if (!targetFound && node.piece && node.piece === e.target) {\n          var nodeClick = node.getModel().get('nodeClick');\n\n          if (nodeClick === 'rootToNode') {\n            _this._rootToNode(node);\n          } else if (nodeClick === 'link') {\n            var itemModel = node.getModel();\n            var link = itemModel.get('link');\n\n            if (link) {\n              var linkTarget = itemModel.get('target', true) || '_blank';\n              windowOpen(link, linkTarget);\n            }\n          }\n\n          targetFound = true;\n        }\n      });\n    });\n  };\n\n  SunburstView.prototype._rootToNode = function (node) {\n    if (node !== this.seriesModel.getViewRoot()) {\n      this.api.dispatchAction({\n        type: ROOT_TO_NODE_ACTION,\n        from: this.uid,\n        seriesId: this.seriesModel.id,\n        targetNode: node\n      });\n    }\n  };\n\n  SunburstView.prototype.containPoint = function (point, seriesModel) {\n    var treeRoot = seriesModel.getData();\n    var itemLayout = treeRoot.getItemLayout(0);\n\n    if (itemLayout) {\n      var dx = point[0] - itemLayout.cx;\n      var dy = point[1] - itemLayout.cy;\n      var radius = Math.sqrt(dx * dx + dy * dy);\n      return radius <= itemLayout.r && radius >= itemLayout.r0;\n    }\n  };\n\n  SunburstView.type = 'sunburst';\n  return SunburstView;\n}(ChartView);\n\nexport default SunburstView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport SeriesModel from '../../model/Series';\nimport Tree from '../../data/Tree';\nimport { wrapTreePathInfo } from '../helper/treeHelper';\nimport Model from '../../model/Model';\nimport enableAriaDecalForTree from '../helper/enableAriaDecalForTree';\n\nvar SunburstSeriesModel = function (_super) {\n  __extends(SunburstSeriesModel, _super);\n\n  function SunburstSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SunburstSeriesModel.type;\n    _this.ignoreStyleOnData = true;\n    return _this;\n  }\n\n  SunburstSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    var root = {\n      name: option.name,\n      children: option.data\n    };\n    completeTreeValue(root);\n    var levelModels = zrUtil.map(option.levels || [], function (levelDefine) {\n      return new Model(levelDefine, this, ecModel);\n    }, this);\n    var tree = Tree.createTree(root, this, beforeLink);\n\n    function beforeLink(nodeData) {\n      nodeData.wrapMethod('getItemModel', function (model, idx) {\n        var node = tree.getNodeByDataIndex(idx);\n        var levelModel = levelModels[node.depth];\n        levelModel && (model.parentModel = levelModel);\n        return model;\n      });\n    }\n\n    return tree.data;\n  };\n\n  SunburstSeriesModel.prototype.optionUpdated = function () {\n    this.resetViewRoot();\n  };\n\n  SunburstSeriesModel.prototype.getDataParams = function (dataIndex) {\n    var params = _super.prototype.getDataParams.apply(this, arguments);\n\n    var node = this.getData().tree.getNodeByDataIndex(dataIndex);\n    params.treePathInfo = wrapTreePathInfo(node, this);\n    return params;\n  };\n\n  SunburstSeriesModel.prototype.getViewRoot = function () {\n    return this._viewRoot;\n  };\n\n  SunburstSeriesModel.prototype.resetViewRoot = function (viewRoot) {\n    viewRoot ? this._viewRoot = viewRoot : viewRoot = this._viewRoot;\n    var root = this.getRawData().tree.root;\n\n    if (!viewRoot || viewRoot !== root && !root.contains(viewRoot)) {\n      this._viewRoot = root;\n    }\n  };\n\n  SunburstSeriesModel.prototype.enableAriaDecal = function () {\n    enableAriaDecalForTree(this);\n  };\n\n  SunburstSeriesModel.type = 'series.sunburst';\n  SunburstSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    center: ['50%', '50%'],\n    radius: [0, '75%'],\n    clockwise: true,\n    startAngle: 90,\n    minAngle: 0,\n    stillShowZeroSum: true,\n    nodeClick: 'rootToNode',\n    renderLabelForZeroData: false,\n    label: {\n      rotate: 'radial',\n      show: true,\n      opacity: 1,\n      align: 'center',\n      position: 'inside',\n      distance: 5,\n      silent: true\n    },\n    itemStyle: {\n      borderWidth: 1,\n      borderColor: 'white',\n      borderType: 'solid',\n      shadowBlur: 0,\n      shadowColor: 'rgba(0, 0, 0, 0.2)',\n      shadowOffsetX: 0,\n      shadowOffsetY: 0,\n      opacity: 1\n    },\n    emphasis: {\n      focus: 'descendant'\n    },\n    blur: {\n      itemStyle: {\n        opacity: 0.2\n      },\n      label: {\n        opacity: 0.1\n      }\n    },\n    animationType: 'expansion',\n    animationDuration: 1000,\n    animationDurationUpdate: 500,\n    data: [],\n    levels: [],\n    sort: 'desc'\n  };\n  return SunburstSeriesModel;\n}(SeriesModel);\n\nfunction completeTreeValue(dataNode) {\n  var sum = 0;\n  zrUtil.each(dataNode.children, function (child) {\n    completeTreeValue(child);\n    var childValue = child.value;\n    zrUtil.isArray(childValue) && (childValue = childValue[0]);\n    sum += childValue;\n  });\n  var thisValue = dataNode.value;\n\n  if (zrUtil.isArray(thisValue)) {\n    thisValue = thisValue[0];\n  }\n\n  if (thisValue == null || isNaN(thisValue)) {\n    thisValue = sum;\n  }\n\n  if (thisValue < 0) {\n    thisValue = 0;\n  }\n\n  zrUtil.isArray(dataNode.value) ? dataNode.value[0] = thisValue : dataNode.value = thisValue;\n}\n\nexport default SunburstSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parsePercent } from '../../util/number';\nimport * as zrUtil from 'zrender/lib/core/util';\nvar RADIAN = Math.PI / 180;\nexport default function sunburstLayout(seriesType, ecModel, api) {\n  ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n    var center = seriesModel.get('center');\n    var radius = seriesModel.get('radius');\n\n    if (!zrUtil.isArray(radius)) {\n      radius = [0, radius];\n    }\n\n    if (!zrUtil.isArray(center)) {\n      center = [center, center];\n    }\n\n    var width = api.getWidth();\n    var height = api.getHeight();\n    var size = Math.min(width, height);\n    var cx = parsePercent(center[0], width);\n    var cy = parsePercent(center[1], height);\n    var r0 = parsePercent(radius[0], size / 2);\n    var r = parsePercent(radius[1], size / 2);\n    var startAngle = -seriesModel.get('startAngle') * RADIAN;\n    var minAngle = seriesModel.get('minAngle') * RADIAN;\n    var virtualRoot = seriesModel.getData().tree.root;\n    var treeRoot = seriesModel.getViewRoot();\n    var rootDepth = treeRoot.depth;\n    var sort = seriesModel.get('sort');\n\n    if (sort != null) {\n      initChildren(treeRoot, sort);\n    }\n\n    var validDataCount = 0;\n    zrUtil.each(treeRoot.children, function (child) {\n      !isNaN(child.getValue()) && validDataCount++;\n    });\n    var sum = treeRoot.getValue();\n    var unitRadian = Math.PI / (sum || validDataCount) * 2;\n    var renderRollupNode = treeRoot.depth > 0;\n    var levels = treeRoot.height - (renderRollupNode ? -1 : 1);\n    var rPerLevel = (r - r0) / (levels || 1);\n    var clockwise = seriesModel.get('clockwise');\n    var stillShowZeroSum = seriesModel.get('stillShowZeroSum');\n    var dir = clockwise ? 1 : -1;\n\n    var renderNode = function (node, startAngle) {\n      if (!node) {\n        return;\n      }\n\n      var endAngle = startAngle;\n\n      if (node !== virtualRoot) {\n        var value = node.getValue();\n        var angle = sum === 0 && stillShowZeroSum ? unitRadian : value * unitRadian;\n\n        if (angle < minAngle) {\n          angle = minAngle;\n        }\n\n        endAngle = startAngle + dir * angle;\n        var depth = node.depth - rootDepth - (renderRollupNode ? -1 : 1);\n        var rStart = r0 + rPerLevel * depth;\n        var rEnd = r0 + rPerLevel * (depth + 1);\n        var itemModel = node.getModel();\n\n        if (itemModel.get('r0') != null) {\n          rStart = parsePercent(itemModel.get('r0'), size / 2);\n        }\n\n        if (itemModel.get('r') != null) {\n          rEnd = parsePercent(itemModel.get('r'), size / 2);\n        }\n\n        node.setLayout({\n          angle: angle,\n          startAngle: startAngle,\n          endAngle: endAngle,\n          clockwise: clockwise,\n          cx: cx,\n          cy: cy,\n          r0: rStart,\n          r: rEnd\n        });\n      }\n\n      if (node.children && node.children.length) {\n        var siblingAngle_1 = 0;\n        zrUtil.each(node.children, function (node) {\n          siblingAngle_1 += renderNode(node, startAngle + siblingAngle_1);\n        });\n      }\n\n      return endAngle - startAngle;\n    };\n\n    if (renderRollupNode) {\n      var rStart = r0;\n      var rEnd = r0 + rPerLevel;\n      var angle = Math.PI * 2;\n      virtualRoot.setLayout({\n        angle: angle,\n        startAngle: startAngle,\n        endAngle: startAngle + angle,\n        clockwise: clockwise,\n        cx: cx,\n        cy: cy,\n        r0: rStart,\n        r: rEnd\n      });\n    }\n\n    renderNode(treeRoot, startAngle);\n  });\n}\n\nfunction initChildren(node, sortOrder) {\n  var children = node.children || [];\n  node.children = sort(children, sortOrder);\n\n  if (children.length) {\n    zrUtil.each(node.children, function (child) {\n      initChildren(child, sortOrder);\n    });\n  }\n}\n\nfunction sort(children, sortOrder) {\n  if (typeof sortOrder === 'function') {\n    var sortTargets = zrUtil.map(children, function (child, idx) {\n      var value = child.getValue();\n      return {\n        params: {\n          depth: child.depth,\n          height: child.height,\n          dataIndex: child.dataIndex,\n          getValue: function () {\n            return value;\n          }\n        },\n        index: idx\n      };\n    });\n    sortTargets.sort(function (a, b) {\n      return sortOrder(a.params, b.params);\n    });\n    return zrUtil.map(sortTargets, function (target) {\n      return children[target.index];\n    });\n  } else {\n    var isAsc_1 = sortOrder === 'asc';\n    return children.sort(function (a, b) {\n      var diff = (a.getValue() - b.getValue()) * (isAsc_1 ? 1 : -1);\n      return diff === 0 ? (a.dataIndex - b.dataIndex) * (isAsc_1 ? -1 : 1) : diff;\n    });\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { extend } from 'zrender/lib/core/util';\nimport { lift } from 'zrender/lib/tool/color';\nexport default function sunburstVisual(ecModel) {\n  var paletteScope = {};\n\n  function pickColor(node, seriesModel, treeHeight) {\n    var current = node;\n\n    while (current && current.depth > 1) {\n      current = current.parentNode;\n    }\n\n    var color = seriesModel.getColorFromPalette(current.name || current.dataIndex + '', paletteScope);\n\n    if (node.depth > 1 && typeof color === 'string') {\n      color = lift(color, (node.depth - 1) / (treeHeight - 1) * 0.5);\n    }\n\n    return color;\n  }\n\n  ecModel.eachSeriesByType('sunburst', function (seriesModel) {\n    var data = seriesModel.getData();\n    var tree = data.tree;\n    tree.eachNode(function (node) {\n      var model = node.getModel();\n      var style = model.getModel('itemStyle').getItemStyle();\n\n      if (!style.fill) {\n        style.fill = pickColor(node, seriesModel, tree.root.height);\n      }\n\n      var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, 'style');\n      extend(existsStyle, style);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SunburstView from './SunburstView';\nimport SunburstSeriesModel from './SunburstSeries';\nimport sunburstLayout from './sunburstLayout';\nimport sunburstVisual from './sunburstVisual';\nimport dataFilter from '../../processor/dataFilter';\nimport { curry } from 'zrender/lib/core/util';\nimport { installSunburstAction } from './sunburstAction';\nexport function install(registers) {\n  registers.registerChartView(SunburstView);\n  registers.registerSeriesModel(SunburstSeriesModel);\n  registers.registerLayout(curry(sunburstLayout, 'sunburst'));\n  registers.registerProcessor(curry(dataFilter, 'sunburst'));\n  registers.registerVisual(sunburstVisual);\n  installSunburstAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nfunction dataToCoordSize(dataSize, dataItem) {\n  dataItem = dataItem || [0, 0];\n  return zrUtil.map(['x', 'y'], function (dim, dimIdx) {\n    var axis = this.getAxis(dim);\n    var val = dataItem[dimIdx];\n    var halfSize = dataSize[dimIdx] / 2;\n    return axis.type === 'category' ? axis.getBandWidth() : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));\n  }, this);\n}\n\nexport default function cartesianPrepareCustom(coordSys) {\n  var rect = coordSys.master.getRect();\n  return {\n    coordSys: {\n      type: 'cartesian2d',\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height\n    },\n    api: {\n      coord: function (data) {\n        return coordSys.dataToPoint(data);\n      },\n      size: zrUtil.bind(dataToCoordSize, coordSys)\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nfunction dataToCoordSize(dataSize, dataItem) {\n  dataItem = dataItem || [0, 0];\n  return zrUtil.map([0, 1], function (dimIdx) {\n    var val = dataItem[dimIdx];\n    var halfSize = dataSize[dimIdx] / 2;\n    var p1 = [];\n    var p2 = [];\n    p1[dimIdx] = val - halfSize;\n    p2[dimIdx] = val + halfSize;\n    p1[1 - dimIdx] = p2[1 - dimIdx] = dataItem[1 - dimIdx];\n    return Math.abs(this.dataToPoint(p1)[dimIdx] - this.dataToPoint(p2)[dimIdx]);\n  }, this);\n}\n\nexport default function geoPrepareCustom(coordSys) {\n  var rect = coordSys.getBoundingRect();\n  return {\n    coordSys: {\n      type: 'geo',\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height,\n      zoom: coordSys.getZoom()\n    },\n    api: {\n      coord: function (data) {\n        return coordSys.dataToPoint(data);\n      },\n      size: zrUtil.bind(dataToCoordSize, coordSys)\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { bind } from 'zrender/lib/core/util';\n\nfunction dataToCoordSize(dataSize, dataItem) {\n  var axis = this.getAxis();\n  var val = dataItem instanceof Array ? dataItem[0] : dataItem;\n  var halfSize = (dataSize instanceof Array ? dataSize[0] : dataSize) / 2;\n  return axis.type === 'category' ? axis.getBandWidth() : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));\n}\n\nexport default function singlePrepareCustom(coordSys) {\n  var rect = coordSys.getRect();\n  return {\n    coordSys: {\n      type: 'singleAxis',\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height\n    },\n    api: {\n      coord: function (val) {\n        return coordSys.dataToPoint(val);\n      },\n      size: bind(dataToCoordSize, coordSys)\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nfunction dataToCoordSize(dataSize, dataItem) {\n  dataItem = dataItem || [0, 0];\n  return zrUtil.map(['Radius', 'Angle'], function (dim, dimIdx) {\n    var getterName = 'get' + dim + 'Axis';\n    var axis = this[getterName]();\n    var val = dataItem[dimIdx];\n    var halfSize = dataSize[dimIdx] / 2;\n    var result = axis.type === 'category' ? axis.getBandWidth() : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));\n\n    if (dim === 'Angle') {\n      result = result * Math.PI / 180;\n    }\n\n    return result;\n  }, this);\n}\n\nexport default function polarPrepareCustom(coordSys) {\n  var radiusAxis = coordSys.getRadiusAxis();\n  var angleAxis = coordSys.getAngleAxis();\n  var radius = radiusAxis.getExtent();\n  radius[0] > radius[1] && radius.reverse();\n  return {\n    coordSys: {\n      type: 'polar',\n      cx: coordSys.cx,\n      cy: coordSys.cy,\n      r: radius[1],\n      r0: radius[0]\n    },\n    api: {\n      coord: function (data) {\n        var radius = radiusAxis.dataToRadius(data[0]);\n        var angle = angleAxis.dataToAngle(data[1]);\n        var coord = coordSys.coordToPoint([radius, angle]);\n        coord.push(radius, angle * Math.PI / 180);\n        return coord;\n      },\n      size: zrUtil.bind(dataToCoordSize, coordSys)\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function calendarPrepareCustom(coordSys) {\n  var rect = coordSys.getRect();\n  var rangeInfo = coordSys.getRangeInfo();\n  return {\n    coordSys: {\n      type: 'calendar',\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height,\n      cellWidth: coordSys.getCellWidth(),\n      cellHeight: coordSys.getCellHeight(),\n      rangeInfo: {\n        start: rangeInfo.start,\n        end: rangeInfo.end,\n        weeks: rangeInfo.weeks,\n        dayCount: rangeInfo.allDay\n      }\n    },\n    api: {\n      coord: function (data, clamp) {\n        return coordSys.dataToPoint(data, clamp);\n      }\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, hasOwn } from 'zrender/lib/core/util';\nvar deprecatedLogs = {};\nexport function isEC4CompatibleStyle(style, elType, hasOwnTextContentOption, hasOwnTextConfig) {\n  return style && (style.legacy || style.legacy !== false && !hasOwnTextContentOption && !hasOwnTextConfig && elType !== 'tspan' && (elType === 'text' || hasOwn(style, 'text')));\n}\nexport function convertFromEC4CompatibleStyle(hostStyle, elType, isNormal) {\n  var srcStyle = hostStyle;\n  var textConfig;\n  var textContent;\n  var textContentStyle;\n\n  if (elType === 'text') {\n    textContentStyle = srcStyle;\n  } else {\n    textContentStyle = {};\n    hasOwn(srcStyle, 'text') && (textContentStyle.text = srcStyle.text);\n    hasOwn(srcStyle, 'rich') && (textContentStyle.rich = srcStyle.rich);\n    hasOwn(srcStyle, 'textFill') && (textContentStyle.fill = srcStyle.textFill);\n    hasOwn(srcStyle, 'textStroke') && (textContentStyle.stroke = srcStyle.textStroke);\n    textContent = {\n      type: 'text',\n      style: textContentStyle,\n      silent: true\n    };\n    textConfig = {};\n    var hasOwnPos = hasOwn(srcStyle, 'textPosition');\n\n    if (isNormal) {\n      textConfig.position = hasOwnPos ? srcStyle.textPosition : 'inside';\n    } else {\n      hasOwnPos && (textConfig.position = srcStyle.textPosition);\n    }\n\n    hasOwn(srcStyle, 'textPosition') && (textConfig.position = srcStyle.textPosition);\n    hasOwn(srcStyle, 'textOffset') && (textConfig.offset = srcStyle.textOffset);\n    hasOwn(srcStyle, 'textRotation') && (textConfig.rotation = srcStyle.textRotation);\n    hasOwn(srcStyle, 'textDistance') && (textConfig.distance = srcStyle.textDistance);\n  }\n\n  convertEC4CompatibleRichItem(textContentStyle, hostStyle);\n  each(textContentStyle.rich, function (richItem) {\n    convertEC4CompatibleRichItem(richItem, richItem);\n  });\n  return {\n    textConfig: textConfig,\n    textContent: textContent\n  };\n}\n\nfunction convertEC4CompatibleRichItem(out, richItem) {\n  if (!richItem) {\n    return;\n  }\n\n  richItem.font = richItem.textFont || richItem.font;\n  hasOwn(richItem, 'textStrokeWidth') && (out.lineWidth = richItem.textStrokeWidth);\n  hasOwn(richItem, 'textAlign') && (out.align = richItem.textAlign);\n  hasOwn(richItem, 'textVerticalAlign') && (out.verticalAlign = richItem.textVerticalAlign);\n  hasOwn(richItem, 'textLineHeight') && (out.lineHeight = richItem.textLineHeight);\n  hasOwn(richItem, 'textWidth') && (out.width = richItem.textWidth);\n  hasOwn(richItem, 'textHeight') && (out.height = richItem.textHeight);\n  hasOwn(richItem, 'textBackgroundColor') && (out.backgroundColor = richItem.textBackgroundColor);\n  hasOwn(richItem, 'textPadding') && (out.padding = richItem.textPadding);\n  hasOwn(richItem, 'textBorderColor') && (out.borderColor = richItem.textBorderColor);\n  hasOwn(richItem, 'textBorderWidth') && (out.borderWidth = richItem.textBorderWidth);\n  hasOwn(richItem, 'textBorderRadius') && (out.borderRadius = richItem.textBorderRadius);\n  hasOwn(richItem, 'textBoxShadowColor') && (out.shadowColor = richItem.textBoxShadowColor);\n  hasOwn(richItem, 'textBoxShadowBlur') && (out.shadowBlur = richItem.textBoxShadowBlur);\n  hasOwn(richItem, 'textBoxShadowOffsetX') && (out.shadowOffsetX = richItem.textBoxShadowOffsetX);\n  hasOwn(richItem, 'textBoxShadowOffsetY') && (out.shadowOffsetY = richItem.textBoxShadowOffsetY);\n}\n\nexport function convertToEC4StyleForCustomSerise(itemStl, txStl, txCfg) {\n  var out = itemStl;\n  out.textPosition = out.textPosition || txCfg.position || 'inside';\n  txCfg.offset != null && (out.textOffset = txCfg.offset);\n  txCfg.rotation != null && (out.textRotation = txCfg.rotation);\n  txCfg.distance != null && (out.textDistance = txCfg.distance);\n  var isInside = out.textPosition.indexOf('inside') >= 0;\n  var hostFill = itemStl.fill || '#000';\n  convertToEC4RichItem(out, txStl);\n  var textFillNotSet = out.textFill == null;\n\n  if (isInside) {\n    if (textFillNotSet) {\n      out.textFill = txCfg.insideFill || '#fff';\n      !out.textStroke && txCfg.insideStroke && (out.textStroke = txCfg.insideStroke);\n      !out.textStroke && (out.textStroke = hostFill);\n      out.textStrokeWidth == null && (out.textStrokeWidth = 2);\n    }\n  } else {\n    if (textFillNotSet) {\n      out.textFill = txCfg.outsideFill || hostFill;\n    }\n\n    !out.textStroke && txCfg.outsideStroke && (out.textStroke = txCfg.outsideStroke);\n  }\n\n  out.text = txStl.text;\n  out.rich = txStl.rich;\n  each(txStl.rich, function (richItem) {\n    convertToEC4RichItem(richItem, richItem);\n  });\n  return out;\n}\n\nfunction convertToEC4RichItem(out, richItem) {\n  if (!richItem) {\n    return;\n  }\n\n  hasOwn(richItem, 'fill') && (out.textFill = richItem.fill);\n  hasOwn(richItem, 'stroke') && (out.textStroke = richItem.fill);\n  hasOwn(richItem, 'lineWidth') && (out.textStrokeWidth = richItem.lineWidth);\n  hasOwn(richItem, 'font') && (out.font = richItem.font);\n  hasOwn(richItem, 'fontStyle') && (out.fontStyle = richItem.fontStyle);\n  hasOwn(richItem, 'fontWeight') && (out.fontWeight = richItem.fontWeight);\n  hasOwn(richItem, 'fontSize') && (out.fontSize = richItem.fontSize);\n  hasOwn(richItem, 'fontFamily') && (out.fontFamily = richItem.fontFamily);\n  hasOwn(richItem, 'align') && (out.textAlign = richItem.align);\n  hasOwn(richItem, 'verticalAlign') && (out.textVerticalAlign = richItem.verticalAlign);\n  hasOwn(richItem, 'lineHeight') && (out.textLineHeight = richItem.lineHeight);\n  hasOwn(richItem, 'width') && (out.textWidth = richItem.width);\n  hasOwn(richItem, 'height') && (out.textHeight = richItem.height);\n  hasOwn(richItem, 'backgroundColor') && (out.textBackgroundColor = richItem.backgroundColor);\n  hasOwn(richItem, 'padding') && (out.textPadding = richItem.padding);\n  hasOwn(richItem, 'borderColor') && (out.textBorderColor = richItem.borderColor);\n  hasOwn(richItem, 'borderWidth') && (out.textBorderWidth = richItem.borderWidth);\n  hasOwn(richItem, 'borderRadius') && (out.textBorderRadius = richItem.borderRadius);\n  hasOwn(richItem, 'shadowColor') && (out.textBoxShadowColor = richItem.shadowColor);\n  hasOwn(richItem, 'shadowBlur') && (out.textBoxShadowBlur = richItem.shadowBlur);\n  hasOwn(richItem, 'shadowOffsetX') && (out.textBoxShadowOffsetX = richItem.shadowOffsetX);\n  hasOwn(richItem, 'shadowOffsetY') && (out.textBoxShadowOffsetY = richItem.shadowOffsetY);\n  hasOwn(richItem, 'textShadowColor') && (out.textShadowColor = richItem.textShadowColor);\n  hasOwn(richItem, 'textShadowBlur') && (out.textShadowBlur = richItem.textShadowBlur);\n  hasOwn(richItem, 'textShadowOffsetX') && (out.textShadowOffsetX = richItem.textShadowOffsetX);\n  hasOwn(richItem, 'textShadowOffsetY') && (out.textShadowOffsetY = richItem.textShadowOffsetY);\n}\n\nexport function warnDeprecated(deprecated, insteadApproach) {\n  if (process.env.NODE_ENV !== 'production') {\n    var key = deprecated + '^_^' + insteadApproach;\n\n    if (!deprecatedLogs[key]) {\n      console.warn(\"[ECharts] DEPRECATED: \\\"\" + deprecated + \"\\\" has been deprecated. \" + insteadApproach);\n      deprecatedLogs[key] = true;\n    }\n  }\n}","import PathProxy from '../core/PathProxy';\nimport { cubicSubdivide } from '../core/curve';\nimport { defaults, assert, noop, clone } from '../core/util';\nimport { lerp } from '../core/vector';\nimport Rect from '../graphic/shape/Rect';\nimport Sector from '../graphic/shape/Sector';\nvar CMD = PathProxy.CMD;\nvar PI2 = Math.PI * 2;\nvar PROP_XY = ['x', 'y'];\nvar PROP_WH = ['width', 'height'];\nvar tmpArr = [];\nfunction aroundEqual(a, b) {\n    return Math.abs(a - b) < 1e-5;\n}\nexport function pathToBezierCurves(path) {\n    var data = path.data;\n    var len = path.len();\n    var bezierArray = [];\n    var currentSubpath;\n    var xi = 0;\n    var yi = 0;\n    var x0 = 0;\n    var y0 = 0;\n    function createNewSubpath(x, y) {\n        if (currentSubpath && currentSubpath.length > 2) {\n            bezierArray.push(currentSubpath);\n        }\n        currentSubpath = [x, y];\n    }\n    function addLine(x0, y0, x1, y1) {\n        if (!(aroundEqual(x0, x1) && aroundEqual(y0, y1))) {\n            currentSubpath.push(x0, y0, x1, y1, x1, y1);\n        }\n    }\n    function addArc(startAngle, endAngle, cx, cy, rx, ry) {\n        var delta = Math.abs(endAngle - startAngle);\n        var len = Math.tan(delta / 4) * 4 / 3;\n        var dir = endAngle < startAngle ? -1 : 1;\n        var c1 = Math.cos(startAngle);\n        var s1 = Math.sin(startAngle);\n        var c2 = Math.cos(endAngle);\n        var s2 = Math.sin(endAngle);\n        var x1 = c1 * rx + cx;\n        var y1 = s1 * ry + cy;\n        var x4 = c2 * rx + cx;\n        var y4 = s2 * ry + cy;\n        var hx = rx * len * dir;\n        var hy = ry * len * dir;\n        currentSubpath.push(x1 - hx * s1, y1 + hy * c1, x4 + hx * s2, y4 - hy * c2, x4, y4);\n    }\n    var x1;\n    var y1;\n    var x2;\n    var y2;\n    for (var i = 0; i < len;) {\n        var cmd = data[i++];\n        var isFirst = i === 1;\n        if (isFirst) {\n            xi = data[i];\n            yi = data[i + 1];\n            x0 = xi;\n            y0 = yi;\n            if (cmd === CMD.L || cmd === CMD.C || cmd === CMD.Q) {\n                currentSubpath = [x0, y0];\n            }\n        }\n        switch (cmd) {\n            case CMD.M:\n                xi = x0 = data[i++];\n                yi = y0 = data[i++];\n                createNewSubpath(x0, y0);\n                break;\n            case CMD.L:\n                x1 = data[i++];\n                y1 = data[i++];\n                addLine(xi, yi, x1, y1);\n                xi = x1;\n                yi = y1;\n                break;\n            case CMD.C:\n                currentSubpath.push(data[i++], data[i++], data[i++], data[i++], xi = data[i++], yi = data[i++]);\n                break;\n            case CMD.Q:\n                x1 = data[i++];\n                y1 = data[i++];\n                x2 = data[i++];\n                y2 = data[i++];\n                currentSubpath.push(xi + 2 / 3 * (x1 - xi), yi + 2 / 3 * (y1 - yi), x2 + 2 / 3 * (x1 - x2), y2 + 2 / 3 * (y1 - y2), x2, y2);\n                xi = x2;\n                yi = y2;\n                break;\n            case CMD.A:\n                var cx = data[i++];\n                var cy = data[i++];\n                var rx = data[i++];\n                var ry = data[i++];\n                var startAngle = data[i++];\n                var endAngle = data[i++] + startAngle;\n                i += 1;\n                var anticlockwise = !data[i++];\n                x1 = Math.cos(startAngle) * rx + cx;\n                y1 = Math.sin(startAngle) * ry + cy;\n                if (isFirst) {\n                    x0 = x1;\n                    y0 = y1;\n                    createNewSubpath(x0, y0);\n                }\n                else {\n                    addLine(xi, yi, x1, y1);\n                }\n                xi = Math.cos(endAngle) * rx + cx;\n                yi = Math.sin(endAngle) * ry + cy;\n                var step = (anticlockwise ? -1 : 1) * Math.PI / 2;\n                for (var angle = startAngle; anticlockwise ? angle > endAngle : angle < endAngle; angle += step) {\n                    var nextAngle = anticlockwise ? Math.max(angle + step, endAngle)\n                        : Math.min(angle + step, endAngle);\n                    addArc(angle, nextAngle, cx, cy, rx, ry);\n                }\n                break;\n            case CMD.R:\n                x0 = xi = data[i++];\n                y0 = yi = data[i++];\n                x1 = x0 + data[i++];\n                y1 = y0 + data[i++];\n                createNewSubpath(x1, y0);\n                addLine(x1, y0, x1, y1);\n                addLine(x1, y1, x0, y1);\n                addLine(x0, y1, x0, y0);\n                addLine(x0, y0, x1, y0);\n                break;\n            case CMD.Z:\n                currentSubpath && addLine(xi, yi, x0, y0);\n                xi = x0;\n                yi = y0;\n                break;\n        }\n    }\n    if (currentSubpath && currentSubpath.length > 2) {\n        bezierArray.push(currentSubpath);\n    }\n    return bezierArray;\n}\nfunction alignSubpath(subpath1, subpath2) {\n    var len1 = subpath1.length;\n    var len2 = subpath2.length;\n    if (len1 === len2) {\n        return [subpath1, subpath2];\n    }\n    var shorterPath = len1 < len2 ? subpath1 : subpath2;\n    var shorterLen = Math.min(len1, len2);\n    var diff = Math.abs(len2 - len1) / 6;\n    var shorterBezierCount = (shorterLen - 2) / 6;\n    var eachCurveSubDivCount = Math.ceil(diff / shorterBezierCount) + 1;\n    var newSubpath = [shorterPath[0], shorterPath[1]];\n    var remained = diff;\n    var tmpSegX = [];\n    var tmpSegY = [];\n    for (var i = 2; i < shorterLen;) {\n        var x0 = shorterPath[i - 2];\n        var y0 = shorterPath[i - 1];\n        var x1 = shorterPath[i++];\n        var y1 = shorterPath[i++];\n        var x2 = shorterPath[i++];\n        var y2 = shorterPath[i++];\n        var x3 = shorterPath[i++];\n        var y3 = shorterPath[i++];\n        if (remained <= 0) {\n            newSubpath.push(x1, y1, x2, y2, x3, y3);\n            continue;\n        }\n        var actualSubDivCount = Math.min(remained, eachCurveSubDivCount - 1) + 1;\n        for (var k = 1; k <= actualSubDivCount; k++) {\n            var p = k / actualSubDivCount;\n            cubicSubdivide(x0, x1, x2, x3, p, tmpSegX);\n            cubicSubdivide(y0, y1, y2, y3, p, tmpSegY);\n            x0 = tmpSegX[3];\n            y0 = tmpSegY[3];\n            newSubpath.push(tmpSegX[1], tmpSegY[1], tmpSegX[2], tmpSegY[2], x0, y0);\n            x1 = tmpSegX[5];\n            y1 = tmpSegY[5];\n            x2 = tmpSegX[6];\n            y2 = tmpSegY[6];\n        }\n        remained -= actualSubDivCount - 1;\n    }\n    return shorterPath === subpath1 ? [newSubpath, subpath2] : [subpath1, newSubpath];\n}\nfunction createSubpath(lastSubpathSubpath, otherSubpath) {\n    var len = lastSubpathSubpath.length;\n    var lastX = lastSubpathSubpath[len - 2];\n    var lastY = lastSubpathSubpath[len - 1];\n    var newSubpath = [];\n    for (var i = 0; i < otherSubpath.length;) {\n        newSubpath[i++] = lastX;\n        newSubpath[i++] = lastY;\n    }\n    return newSubpath;\n}\nexport function alignBezierCurves(array1, array2) {\n    var _a;\n    var lastSubpath1;\n    var lastSubpath2;\n    var newArray1 = [];\n    var newArray2 = [];\n    for (var i = 0; i < Math.max(array1.length, array2.length); i++) {\n        var subpath1 = array1[i];\n        var subpath2 = array2[i];\n        var newSubpath1 = void 0;\n        var newSubpath2 = void 0;\n        if (!subpath1) {\n            newSubpath1 = createSubpath(lastSubpath1 || subpath2, subpath2);\n            newSubpath2 = subpath2;\n        }\n        else if (!subpath2) {\n            newSubpath2 = createSubpath(lastSubpath2 || subpath1, subpath1);\n            newSubpath1 = subpath1;\n        }\n        else {\n            _a = alignSubpath(subpath1, subpath2), newSubpath1 = _a[0], newSubpath2 = _a[1];\n            lastSubpath1 = newSubpath1;\n            lastSubpath2 = newSubpath2;\n        }\n        newArray1.push(newSubpath1);\n        newArray2.push(newSubpath2);\n    }\n    return [newArray1, newArray2];\n}\nexport function centroid(array) {\n    var signedArea = 0;\n    var cx = 0;\n    var cy = 0;\n    var len = array.length;\n    for (var i = 0, j = len - 2; i < len; j = i, i += 2) {\n        var x0 = array[j];\n        var y0 = array[j + 1];\n        var x1 = array[i];\n        var y1 = array[i + 1];\n        var a = x0 * y1 - x1 * y0;\n        signedArea += a;\n        cx += (x0 + x1) * a;\n        cy += (y0 + y1) * a;\n    }\n    if (signedArea === 0) {\n        return [array[0] || 0, array[1] || 0];\n    }\n    return [cx / signedArea / 3, cy / signedArea / 3, signedArea];\n}\nfunction findBestRingOffset(fromSubBeziers, toSubBeziers, fromCp, toCp) {\n    var bezierCount = (fromSubBeziers.length - 2) / 6;\n    var bestScore = Infinity;\n    var bestOffset = 0;\n    var len = fromSubBeziers.length;\n    var len2 = len - 2;\n    for (var offset = 0; offset < bezierCount; offset++) {\n        var cursorOffset = offset * 6;\n        var score = 0;\n        for (var k = 0; k < len; k += 2) {\n            var idx = k === 0 ? cursorOffset : ((cursorOffset + k - 2) % len2 + 2);\n            var x0 = fromSubBeziers[idx] - fromCp[0];\n            var y0 = fromSubBeziers[idx + 1] - fromCp[1];\n            var x1 = toSubBeziers[k] - toCp[0];\n            var y1 = toSubBeziers[k + 1] - toCp[1];\n            var dx = x1 - x0;\n            var dy = y1 - y0;\n            score += dx * dx + dy * dy;\n        }\n        if (score < bestScore) {\n            bestScore = score;\n            bestOffset = offset;\n        }\n    }\n    return bestOffset;\n}\nfunction reverse(array) {\n    var newArr = [];\n    var len = array.length;\n    for (var i = 0; i < len; i += 2) {\n        newArr[i] = array[len - i - 2];\n        newArr[i + 1] = array[len - i - 1];\n    }\n    return newArr;\n}\nfunction findBestMorphingRotation(fromArr, toArr, searchAngleIteration, searchAngleRange) {\n    var result = [];\n    var fromNeedsReverse;\n    for (var i = 0; i < fromArr.length; i++) {\n        var fromSubpathBezier = fromArr[i];\n        var toSubpathBezier = toArr[i];\n        var fromCp = centroid(fromSubpathBezier);\n        var toCp = centroid(toSubpathBezier);\n        if (fromNeedsReverse == null) {\n            fromNeedsReverse = fromCp[2] < 0 !== toCp[2] < 0;\n        }\n        var newFromSubpathBezier = [];\n        var newToSubpathBezier = [];\n        var bestAngle = 0;\n        var bestScore = Infinity;\n        var tmpArr_1 = [];\n        var len = fromSubpathBezier.length;\n        if (fromNeedsReverse) {\n            fromSubpathBezier = reverse(fromSubpathBezier);\n        }\n        var offset = findBestRingOffset(fromSubpathBezier, toSubpathBezier, fromCp, toCp) * 6;\n        var len2 = len - 2;\n        for (var k = 0; k < len2; k += 2) {\n            var idx = (offset + k) % len2 + 2;\n            newFromSubpathBezier[k + 2] = fromSubpathBezier[idx] - fromCp[0];\n            newFromSubpathBezier[k + 3] = fromSubpathBezier[idx + 1] - fromCp[1];\n        }\n        newFromSubpathBezier[0] = fromSubpathBezier[offset] - fromCp[0];\n        newFromSubpathBezier[1] = fromSubpathBezier[offset + 1] - fromCp[1];\n        if (searchAngleIteration > 0) {\n            var step = searchAngleRange / searchAngleIteration;\n            for (var angle = -searchAngleRange / 2; angle <= searchAngleRange / 2; angle += step) {\n                var sa = Math.sin(angle);\n                var ca = Math.cos(angle);\n                var score = 0;\n                for (var k = 0; k < fromSubpathBezier.length; k += 2) {\n                    var x0 = newFromSubpathBezier[k];\n                    var y0 = newFromSubpathBezier[k + 1];\n                    var x1 = toSubpathBezier[k] - toCp[0];\n                    var y1 = toSubpathBezier[k + 1] - toCp[1];\n                    var newX1 = x1 * ca - y1 * sa;\n                    var newY1 = x1 * sa + y1 * ca;\n                    tmpArr_1[k] = newX1;\n                    tmpArr_1[k + 1] = newY1;\n                    var dx = newX1 - x0;\n                    var dy = newY1 - y0;\n                    score += dx * dx + dy * dy;\n                }\n                if (score < bestScore) {\n                    bestScore = score;\n                    bestAngle = angle;\n                    for (var m = 0; m < tmpArr_1.length; m++) {\n                        newToSubpathBezier[m] = tmpArr_1[m];\n                    }\n                }\n            }\n        }\n        else {\n            for (var i_1 = 0; i_1 < len; i_1 += 2) {\n                newToSubpathBezier[i_1] = toSubpathBezier[i_1] - toCp[0];\n                newToSubpathBezier[i_1 + 1] = toSubpathBezier[i_1 + 1] - toCp[1];\n            }\n        }\n        result.push({\n            from: newFromSubpathBezier,\n            to: newToSubpathBezier,\n            fromCp: fromCp,\n            toCp: toCp,\n            rotation: -bestAngle\n        });\n    }\n    return result;\n}\nexport function morphPath(fromPath, toPath, animationOpts) {\n    var fromPathProxy;\n    var toPathProxy;\n    if (!fromPath || !toPath) {\n        return toPath;\n    }\n    !fromPath.path && fromPath.createPathProxy();\n    fromPathProxy = fromPath.path;\n    fromPathProxy.beginPath();\n    fromPath.buildPath(fromPathProxy, fromPath.shape);\n    !toPath.path && toPath.createPathProxy();\n    toPathProxy = toPath.path;\n    toPathProxy === fromPathProxy && (toPathProxy = new PathProxy(false));\n    toPathProxy.beginPath();\n    if (isIndividualMorphingPath(toPath)) {\n        toPath.__oldBuildPath(toPathProxy, toPath.shape);\n    }\n    else {\n        toPath.buildPath(toPathProxy, toPath.shape);\n    }\n    var _a = alignBezierCurves(pathToBezierCurves(fromPathProxy), pathToBezierCurves(toPathProxy)), fromBezierCurves = _a[0], toBezierCurves = _a[1];\n    var morphingData = findBestMorphingRotation(fromBezierCurves, toBezierCurves, 10, Math.PI);\n    becomeIndividualMorphingPath(toPath, morphingData, 0);\n    var oldDone = animationOpts && animationOpts.done;\n    var oldAborted = animationOpts && animationOpts.aborted;\n    var oldDuring = animationOpts && animationOpts.during;\n    toPath.animateTo({\n        __morphT: 1\n    }, defaults({\n        during: function (p) {\n            toPath.dirtyShape();\n            oldDuring && oldDuring(p);\n        },\n        done: function () {\n            restoreIndividualMorphingPath(toPath);\n            toPath.createPathProxy();\n            toPath.dirtyShape();\n            oldDone && oldDone();\n        },\n        aborted: function () {\n            oldAborted && oldAborted();\n        }\n    }, animationOpts));\n    return toPath;\n}\nfunction morphingPathBuildPath(path) {\n    var morphingData = this.__morphingData;\n    var t = this.__morphT;\n    var onet = 1 - t;\n    var newCp = [];\n    for (var i = 0; i < morphingData.length; i++) {\n        var item = morphingData[i];\n        var from = item.from;\n        var to = item.to;\n        var angle = item.rotation * t;\n        var fromCp = item.fromCp;\n        var toCp = item.toCp;\n        var sa = Math.sin(angle);\n        var ca = Math.cos(angle);\n        lerp(newCp, fromCp, toCp, t);\n        for (var m = 0; m < from.length; m += 2) {\n            var x0 = from[m];\n            var y0 = from[m + 1];\n            var x1 = to[m];\n            var y1 = to[m + 1];\n            var x = x0 * onet + x1 * t;\n            var y = y0 * onet + y1 * t;\n            tmpArr[m] = (x * ca - y * sa) + newCp[0];\n            tmpArr[m + 1] = (x * sa + y * ca) + newCp[1];\n        }\n        for (var m = 0; m < from.length;) {\n            if (m === 0) {\n                path.moveTo(tmpArr[m++], tmpArr[m++]);\n            }\n            path.bezierCurveTo(tmpArr[m++], tmpArr[m++], tmpArr[m++], tmpArr[m++], tmpArr[m++], tmpArr[m++]);\n        }\n    }\n}\n;\nfunction becomeIndividualMorphingPath(path, morphingData, morphT) {\n    if (isIndividualMorphingPath(path)) {\n        updateIndividualMorphingPath(path, morphingData, morphT);\n        return;\n    }\n    var morphingPath = path;\n    morphingPath.__oldBuildPath = morphingPath.buildPath;\n    morphingPath.buildPath = morphingPathBuildPath;\n    updateIndividualMorphingPath(morphingPath, morphingData, morphT);\n}\nfunction updateIndividualMorphingPath(morphingPath, morphingData, morphT) {\n    morphingPath.__morphingData = morphingData;\n    morphingPath.__morphT = morphT;\n}\nfunction restoreIndividualMorphingPath(path) {\n    if (isIndividualMorphingPath(path)) {\n        path.buildPath = path.__oldBuildPath;\n        path.__oldBuildPath = path.__morphingData = null;\n    }\n}\nfunction isIndividualMorphingPath(path) {\n    return path.__oldBuildPath != null;\n}\nexport function isCombiningPath(path) {\n    return !!path.__combiningSubList;\n}\nexport function isInAnyMorphing(path) {\n    return isIndividualMorphingPath(path) || isCombiningPath(path);\n}\nexport function combine(fromPathList, toPath, animationOpts, copyPropsIfDivided) {\n    var fromIndividuals = [];\n    var separateCount = 0;\n    for (var i = 0; i < fromPathList.length; i++) {\n        var fromPath = fromPathList[i];\n        if (isCombiningPath(fromPath)) {\n            var fromCombiningSubList = fromPath.__combiningSubList;\n            for (var j = 0; j < fromCombiningSubList.length; j++) {\n                fromIndividuals.push(fromCombiningSubList[j]);\n            }\n            separateCount += fromCombiningSubList.length;\n        }\n        else {\n            fromIndividuals.push(fromPath);\n            separateCount++;\n        }\n    }\n    if (!separateCount) {\n        return;\n    }\n    var dividingMethod = animationOpts ? animationOpts.dividingMethod : null;\n    var toPathSplittedList = divideShape(toPath, separateCount, dividingMethod);\n    assert(toPathSplittedList.length === separateCount);\n    var oldDone = animationOpts && animationOpts.done;\n    var oldAborted = animationOpts && animationOpts.aborted;\n    var oldDuring = animationOpts && animationOpts.during;\n    var doneCount = 0;\n    var abortedCalled = false;\n    var morphAnimationOpts = defaults({\n        during: function (p) {\n            oldDuring && oldDuring(p);\n        },\n        done: function () {\n            doneCount++;\n            if (doneCount === toPathSplittedList.length) {\n                restoreCombiningPath(toPath);\n                oldDone && oldDone();\n            }\n        },\n        aborted: function () {\n            if (!abortedCalled) {\n                abortedCalled = true;\n                oldAborted && oldAborted();\n            }\n        }\n    }, animationOpts);\n    for (var i = 0; i < separateCount; i++) {\n        var from = fromIndividuals[i];\n        var to = toPathSplittedList[i];\n        copyPropsIfDivided && copyPropsIfDivided(toPath, to, true);\n        morphPath(from, to, morphAnimationOpts);\n    }\n    becomeCombiningPath(toPath, toPathSplittedList);\n    return {\n        fromIndividuals: fromIndividuals,\n        toIndividuals: toPathSplittedList,\n        count: separateCount\n    };\n}\nfunction becomeCombiningPath(path, combiningSubList) {\n    if (isCombiningPath(path)) {\n        updateCombiningPathSubList(path, combiningSubList);\n        return;\n    }\n    var combiningPath = path;\n    updateCombiningPathSubList(combiningPath, combiningSubList);\n    combiningPath.__oldAddSelfToZr = path.addSelfToZr;\n    combiningPath.__oldRemoveSelfFromZr = path.removeSelfFromZr;\n    combiningPath.addSelfToZr = combiningAddSelfToZr;\n    combiningPath.removeSelfFromZr = combiningRemoveSelfFromZr;\n    combiningPath.__oldBuildPath = combiningPath.buildPath;\n    combiningPath.buildPath = noop;\n    combiningPath.childrenRef = combiningChildrenRef;\n}\nfunction restoreCombiningPath(path) {\n    if (!isCombiningPath(path)) {\n        return;\n    }\n    var combiningPath = path;\n    updateCombiningPathSubList(combiningPath, null);\n    combiningPath.addSelfToZr = combiningPath.__oldAddSelfToZr;\n    combiningPath.removeSelfFromZr = combiningPath.__oldRemoveSelfFromZr;\n    combiningPath.buildPath = combiningPath.__oldBuildPath;\n    combiningPath.childrenRef =\n        combiningPath.__combiningSubList =\n            combiningPath.__oldAddSelfToZr =\n                combiningPath.__oldRemoveSelfFromZr =\n                    combiningPath.__oldBuildPath = null;\n}\nfunction updateCombiningPathSubList(combiningPath, combiningSubList) {\n    if (combiningPath.__combiningSubList !== combiningSubList) {\n        combiningPathSubListAddRemoveWithZr(combiningPath, 'removeSelfFromZr');\n        combiningPath.__combiningSubList = combiningSubList;\n        if (combiningSubList) {\n            for (var i = 0; i < combiningSubList.length; i++) {\n                combiningSubList[i].parent = combiningPath;\n            }\n        }\n        combiningPathSubListAddRemoveWithZr(combiningPath, 'addSelfToZr');\n    }\n}\nfunction combiningAddSelfToZr(zr) {\n    this.__oldAddSelfToZr(zr);\n    combiningPathSubListAddRemoveWithZr(this, 'addSelfToZr');\n}\nfunction combiningPathSubListAddRemoveWithZr(path, method) {\n    var combiningSubList = path.__combiningSubList;\n    var zr = path.__zr;\n    if (combiningSubList && zr) {\n        for (var i = 0; i < combiningSubList.length; i++) {\n            var child = combiningSubList[i];\n            child[method](zr);\n        }\n    }\n}\nfunction combiningRemoveSelfFromZr(zr) {\n    this.__oldRemoveSelfFromZr(zr);\n    var combiningSubList = this.__combiningSubList;\n    for (var i = 0; i < combiningSubList.length; i++) {\n        var child = combiningSubList[i];\n        child.removeSelfFromZr(zr);\n    }\n}\nfunction combiningChildrenRef() {\n    return this.__combiningSubList;\n}\nexport function separate(fromPath, toPathList, animationOpts, copyPropsIfDivided) {\n    var toPathListLen = toPathList.length;\n    var fromPathList;\n    var dividingMethod = animationOpts ? animationOpts.dividingMethod : null;\n    var copyProps = false;\n    if (isCombiningPath(fromPath)) {\n        var fromCombiningSubList = fromPath.__combiningSubList;\n        if (fromCombiningSubList.length === toPathListLen) {\n            fromPathList = fromCombiningSubList;\n        }\n        else {\n            fromPathList = divideShape(fromPath, toPathListLen, dividingMethod);\n            copyProps = true;\n        }\n    }\n    else {\n        fromPathList = divideShape(fromPath, toPathListLen, dividingMethod);\n        copyProps = true;\n    }\n    assert(fromPathList.length === toPathListLen);\n    for (var i = 0; i < toPathListLen; i++) {\n        if (copyProps && copyPropsIfDivided) {\n            copyPropsIfDivided(fromPath, fromPathList[i], false);\n        }\n        morphPath(fromPathList[i], toPathList[i], animationOpts);\n    }\n    return {\n        fromIndividuals: fromPathList,\n        toIndividuals: toPathList,\n        count: toPathListLen\n    };\n}\nfunction divideShape(path, separateCount, dividingMethod) {\n    return dividingMethod === 'duplicate'\n        ? duplicateShape(path, separateCount)\n        : splitShape(path, separateCount);\n}\nfunction splitShape(path, separateCount) {\n    var resultPaths = [];\n    if (separateCount <= 0) {\n        return resultPaths;\n    }\n    if (separateCount === 1) {\n        return duplicateShape(path, separateCount);\n    }\n    if (path instanceof Rect) {\n        var toPathShape = path.shape;\n        var splitPropIdx = toPathShape.height > toPathShape.width ? 1 : 0;\n        var propWH = PROP_WH[splitPropIdx];\n        var propXY = PROP_XY[splitPropIdx];\n        var subWH = toPathShape[propWH] / separateCount;\n        var xyCurr = toPathShape[propXY];\n        for (var i = 0; i < separateCount; i++, xyCurr += subWH) {\n            var subShape = {\n                x: toPathShape.x,\n                y: toPathShape.y,\n                width: toPathShape.width,\n                height: toPathShape.height\n            };\n            subShape[propXY] = xyCurr;\n            subShape[propWH] = i < separateCount - 1\n                ? subWH\n                : toPathShape[propXY] + toPathShape[propWH] - xyCurr;\n            var splitted = new Rect({ shape: subShape });\n            resultPaths.push(splitted);\n        }\n    }\n    else if (path instanceof Sector) {\n        var toPathShape = path.shape;\n        var clockwise = toPathShape.clockwise;\n        var startAngle = toPathShape.startAngle;\n        var endAngle = toPathShape.endAngle;\n        var endAngleNormalized = normalizeRadian(startAngle, toPathShape.endAngle, clockwise);\n        var step = (endAngleNormalized - startAngle) / separateCount;\n        var angleCurr = startAngle;\n        for (var i = 0; i < separateCount; i++, angleCurr += step) {\n            var splitted = new Sector({\n                shape: {\n                    cx: toPathShape.cx,\n                    cy: toPathShape.cy,\n                    r: toPathShape.r,\n                    r0: toPathShape.r0,\n                    clockwise: clockwise,\n                    startAngle: angleCurr,\n                    endAngle: i === separateCount - 1 ? endAngle : angleCurr + step\n                }\n            });\n            resultPaths.push(splitted);\n        }\n    }\n    else {\n        return duplicateShape(path, separateCount);\n    }\n    return resultPaths;\n}\nfunction duplicateShape(path, separateCount) {\n    var resultPaths = [];\n    if (separateCount <= 0) {\n        return resultPaths;\n    }\n    var ctor = path.constructor;\n    for (var i = 0; i < separateCount; i++) {\n        var sub = new ctor({\n            shape: clone(path.shape)\n        });\n        resultPaths.push(sub);\n    }\n    return resultPaths;\n}\nfunction normalizeRadian(start, end, clockwise) {\n    return end + PI2 * (Math[clockwise ? 'ceil' : 'floor']((start - end) / PI2));\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { hasOwn, assert, isString, retrieve2, retrieve3, defaults, each, keys, isArrayLike, bind, isFunction, eqNaN, indexOf, clone } from 'zrender/lib/core/util';\nimport * as graphicUtil from '../../util/graphic';\nimport { setDefaultStateProxy, enableHoverEmphasis } from '../../util/states';\nimport * as labelStyleHelper from '../../label/labelStyle';\nimport { getDefaultLabel } from '../helper/labelHelper';\nimport createListFromArray from '../helper/createListFromArray';\nimport { getLayoutOnAxis } from '../../layout/barGrid';\nimport DataDiffer from '../../data/DataDiffer';\nimport SeriesModel from '../../model/Series';\nimport ChartView from '../../view/Chart';\nimport { createClipPath } from '../helper/createClipPathFromCoordSys';\nimport prepareCartesian2d from '../../coord/cartesian/prepareCustom';\nimport prepareGeo from '../../coord/geo/prepareCustom';\nimport prepareSingleAxis from '../../coord/single/prepareCustom';\nimport preparePolar from '../../coord/polar/prepareCustom';\nimport prepareCalendar from '../../coord/calendar/prepareCustom';\nimport { makeInner, normalizeToArray } from '../../util/model';\nimport { convertToEC4StyleForCustomSerise, isEC4CompatibleStyle, convertFromEC4CompatibleStyle, warnDeprecated } from '../../util/styleCompat';\nimport Transformable from 'zrender/lib/core/Transformable';\nimport { cloneValue } from 'zrender/lib/animation/Animator';\nimport { warn, throwError } from '../../util/log';\nimport { combine, isInAnyMorphing, morphPath, isCombiningPath, separate } from 'zrender/lib/tool/morphPath';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport { createOrUpdatePatternFromDecal } from '../../util/decal';\nvar inner = makeInner();\nvar TRANSFORM_PROPS = {\n  x: 1,\n  y: 1,\n  scaleX: 1,\n  scaleY: 1,\n  originX: 1,\n  originY: 1,\n  rotation: 1\n};\nvar transformPropNamesStr = keys(TRANSFORM_PROPS).join(', ');\n;\nvar STYLE_VISUAL_TYPE = {\n  color: 'fill',\n  borderColor: 'stroke'\n};\nvar NON_STYLE_VISUAL_PROPS = {\n  symbol: 1,\n  symbolSize: 1,\n  symbolKeepAspect: 1,\n  legendSymbol: 1,\n  visualMeta: 1,\n  liftZ: 1,\n  decal: 1\n};\nvar EMPHASIS = 'emphasis';\nvar NORMAL = 'normal';\nvar BLUR = 'blur';\nvar SELECT = 'select';\nvar STATES = [NORMAL, EMPHASIS, BLUR, SELECT];\nvar PATH_ITEM_STYLE = {\n  normal: ['itemStyle'],\n  emphasis: [EMPHASIS, 'itemStyle'],\n  blur: [BLUR, 'itemStyle'],\n  select: [SELECT, 'itemStyle']\n};\nvar PATH_LABEL = {\n  normal: ['label'],\n  emphasis: [EMPHASIS, 'label'],\n  blur: [BLUR, 'label'],\n  select: [SELECT, 'label']\n};\nvar GROUP_DIFF_PREFIX = 'e\\0\\0';\nvar attachedTxInfoTmp = {\n  normal: {},\n  emphasis: {},\n  blur: {},\n  select: {}\n};\nvar LEGACY_TRANSFORM_PROPS = {\n  position: ['x', 'y'],\n  scale: ['scaleX', 'scaleY'],\n  origin: ['originX', 'originY']\n};\nvar tmpTransformable = new Transformable();\nvar prepareCustoms = {\n  cartesian2d: prepareCartesian2d,\n  geo: prepareGeo,\n  singleAxis: prepareSingleAxis,\n  polar: preparePolar,\n  calendar: prepareCalendar\n};\n\nvar CustomSeriesModel = function (_super) {\n  __extends(CustomSeriesModel, _super);\n\n  function CustomSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CustomSeriesModel.type;\n    return _this;\n  }\n\n  CustomSeriesModel.prototype.optionUpdated = function () {\n    this.currentZLevel = this.get('zlevel', true);\n    this.currentZ = this.get('z', true);\n  };\n\n  CustomSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListFromArray(this.getSource(), this);\n  };\n\n  CustomSeriesModel.prototype.getDataParams = function (dataIndex, dataType, el) {\n    var params = _super.prototype.getDataParams.call(this, dataIndex, dataType);\n\n    el && (params.info = inner(el).info);\n    return params;\n  };\n\n  CustomSeriesModel.type = 'series.custom';\n  CustomSeriesModel.dependencies = ['grid', 'polar', 'geo', 'singleAxis', 'calendar'];\n  CustomSeriesModel.defaultOption = {\n    coordinateSystem: 'cartesian2d',\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    clip: false\n  };\n  return CustomSeriesModel;\n}(SeriesModel);\n\nvar CustomSeriesView = function (_super) {\n  __extends(CustomSeriesView, _super);\n\n  function CustomSeriesView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CustomSeriesView.type;\n    return _this;\n  }\n\n  CustomSeriesView.prototype.render = function (customSeries, ecModel, api, payload) {\n    var oldData = this._data;\n    var data = customSeries.getData();\n    var group = this.group;\n    var renderItem = makeRenderItem(customSeries, data, ecModel, api);\n    var transOpt = customSeries.__transientTransitionOpt;\n\n    if (transOpt && (transOpt.from == null || transOpt.to == null)) {\n      oldData && oldData.each(function (oldIdx) {\n        doRemoveEl(oldData.getItemGraphicEl(oldIdx), customSeries, group);\n      });\n      data.each(function (newIdx) {\n        createOrUpdateItem(api, null, newIdx, renderItem(newIdx, payload), customSeries, group, data, null);\n      });\n    } else {\n      var morphPreparation_1 = new MorphPreparation(customSeries, transOpt);\n      var diffMode = transOpt ? 'multiple' : 'oneToOne';\n      new DataDiffer(oldData ? oldData.getIndices() : [], data.getIndices(), createGetKey(oldData, diffMode, transOpt && transOpt.from), createGetKey(data, diffMode, transOpt && transOpt.to), null, diffMode).add(function (newIdx) {\n        createOrUpdateItem(api, null, newIdx, renderItem(newIdx, payload), customSeries, group, data, null);\n      }).remove(function (oldIdx) {\n        doRemoveEl(oldData.getItemGraphicEl(oldIdx), customSeries, group);\n      }).update(function (newIdx, oldIdx) {\n        morphPreparation_1.reset('oneToOne');\n        var oldEl = oldData.getItemGraphicEl(oldIdx);\n        morphPreparation_1.findAndAddFrom(oldEl);\n\n        if (morphPreparation_1.hasFrom()) {\n          removeElementDirectly(oldEl, group);\n          oldEl = null;\n        }\n\n        createOrUpdateItem(api, oldEl, newIdx, renderItem(newIdx, payload), customSeries, group, data, morphPreparation_1);\n        morphPreparation_1.applyMorphing();\n      }).updateManyToOne(function (newIdx, oldIndices) {\n        morphPreparation_1.reset('manyToOne');\n\n        for (var i = 0; i < oldIndices.length; i++) {\n          var oldEl = oldData.getItemGraphicEl(oldIndices[i]);\n          morphPreparation_1.findAndAddFrom(oldEl);\n          removeElementDirectly(oldEl, group);\n        }\n\n        createOrUpdateItem(api, null, newIdx, renderItem(newIdx, payload), customSeries, group, data, morphPreparation_1);\n        morphPreparation_1.applyMorphing();\n      }).updateOneToMany(function (newIndices, oldIdx) {\n        morphPreparation_1.reset('oneToMany');\n        var newLen = newIndices.length;\n        var oldEl = oldData.getItemGraphicEl(oldIdx);\n        morphPreparation_1.findAndAddFrom(oldEl);\n        removeElementDirectly(oldEl, group);\n\n        for (var i = 0; i < newLen; i++) {\n          createOrUpdateItem(api, null, newIndices[i], renderItem(newIndices[i], payload), customSeries, group, data, morphPreparation_1);\n        }\n\n        morphPreparation_1.applyMorphing();\n      }).execute();\n    }\n\n    var clipPath = customSeries.get('clip', true) ? createClipPath(customSeries.coordinateSystem, false, customSeries) : null;\n\n    if (clipPath) {\n      group.setClipPath(clipPath);\n    } else {\n      group.removeClipPath();\n    }\n\n    this._data = data;\n  };\n\n  CustomSeriesView.prototype.incrementalPrepareRender = function (customSeries, ecModel, api) {\n    this.group.removeAll();\n    this._data = null;\n  };\n\n  CustomSeriesView.prototype.incrementalRender = function (params, customSeries, ecModel, api, payload) {\n    var data = customSeries.getData();\n    var renderItem = makeRenderItem(customSeries, data, ecModel, api);\n\n    function setIncrementalAndHoverLayer(el) {\n      if (!el.isGroup) {\n        el.incremental = true;\n        el.ensureState('emphasis').hoverLayer = true;\n      }\n    }\n\n    for (var idx = params.start; idx < params.end; idx++) {\n      var el = createOrUpdateItem(null, null, idx, renderItem(idx, payload), customSeries, this.group, data, null);\n      el.traverse(setIncrementalAndHoverLayer);\n    }\n  };\n\n  CustomSeriesView.prototype.filterForExposedEvent = function (eventType, query, targetEl, packedEvent) {\n    var elementName = query.element;\n\n    if (elementName == null || targetEl.name === elementName) {\n      return true;\n    }\n\n    while ((targetEl = targetEl.__hostTarget || targetEl.parent) && targetEl !== this.group) {\n      if (targetEl.name === elementName) {\n        return true;\n      }\n    }\n\n    return false;\n  };\n\n  CustomSeriesView.type = 'custom';\n  return CustomSeriesView;\n}(ChartView);\n\nfunction createGetKey(data, diffMode, dimension) {\n  if (!data) {\n    return;\n  }\n\n  if (diffMode === 'oneToOne') {\n    return function (rawIdx, dataIndex) {\n      return data.getId(dataIndex);\n    };\n  }\n\n  var diffByDimName = data.getDimension(dimension);\n  var dimInfo = data.getDimensionInfo(diffByDimName);\n\n  if (!dimInfo) {\n    var errMsg = '';\n\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = dimension + \" is not a valid dimension.\";\n    }\n\n    throwError(errMsg);\n  }\n\n  var ordinalMeta = dimInfo.ordinalMeta;\n  return function (rawIdx, dataIndex) {\n    var key = data.get(diffByDimName, dataIndex);\n\n    if (ordinalMeta) {\n      key = ordinalMeta.categories[key];\n    }\n\n    return key == null || eqNaN(key) ? rawIdx + '' : '_ec_' + key;\n  };\n}\n\nfunction createEl(elOption) {\n  var graphicType = elOption.type;\n  var el;\n\n  if (graphicType === 'path') {\n    var shape = elOption.shape;\n    var pathRect = shape.width != null && shape.height != null ? {\n      x: shape.x || 0,\n      y: shape.y || 0,\n      width: shape.width,\n      height: shape.height\n    } : null;\n    var pathData = getPathData(shape);\n    el = graphicUtil.makePath(pathData, null, pathRect, shape.layout || 'center');\n    inner(el).customPathData = pathData;\n  } else if (graphicType === 'image') {\n    el = new graphicUtil.Image({});\n    inner(el).customImagePath = elOption.style.image;\n  } else if (graphicType === 'text') {\n    el = new graphicUtil.Text({});\n  } else if (graphicType === 'group') {\n    el = new graphicUtil.Group();\n  } else if (graphicType === 'compoundPath') {\n    throw new Error('\"compoundPath\" is not supported yet.');\n  } else {\n    var Clz = graphicUtil.getShapeClass(graphicType);\n\n    if (!Clz) {\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'graphic type \"' + graphicType + '\" can not be found.';\n      }\n\n      throwError(errMsg);\n    }\n\n    el = new Clz();\n  }\n\n  inner(el).customGraphicType = graphicType;\n  el.name = elOption.name;\n  el.z2EmphasisLift = 1;\n  el.z2SelectLift = 1;\n  return el;\n}\n\nfunction updateElNormal(api, el, isMorphTo, dataIndex, elOption, styleOpt, attachedTxInfo, seriesModel, isInit, isTextContent) {\n  var transFromProps = {};\n  var allPropsFinal = {};\n  var elDisplayable = el.isGroup ? null : el;\n  !isMorphTo && prepareShapeOrExtraTransitionFrom('shape', el, null, elOption, transFromProps, isInit);\n  prepareShapeOrExtraAllPropsFinal('shape', elOption, allPropsFinal);\n  !isMorphTo && prepareShapeOrExtraTransitionFrom('extra', el, null, elOption, transFromProps, isInit);\n  prepareShapeOrExtraAllPropsFinal('extra', elOption, allPropsFinal);\n  !isMorphTo && prepareTransformTransitionFrom(el, null, elOption, transFromProps, isInit);\n  prepareTransformAllPropsFinal(elOption, allPropsFinal);\n  var txCfgOpt = attachedTxInfo && attachedTxInfo.normal.cfg;\n\n  if (txCfgOpt) {\n    el.setTextConfig(txCfgOpt);\n  }\n\n  if (el.type === 'text' && styleOpt) {\n    var textOptionStyle = styleOpt;\n    hasOwn(textOptionStyle, 'textFill') && (textOptionStyle.fill = textOptionStyle.textFill);\n    hasOwn(textOptionStyle, 'textStroke') && (textOptionStyle.stroke = textOptionStyle.textStroke);\n  }\n\n  if (styleOpt) {\n    var decalPattern = void 0;\n    var decalObj = isPath(el) ? styleOpt.decal : null;\n\n    if (api && decalObj) {\n      decalObj.dirty = true;\n      decalPattern = createOrUpdatePatternFromDecal(decalObj, api);\n    }\n\n    styleOpt.__decalPattern = decalPattern;\n  }\n\n  !isMorphTo && prepareStyleTransitionFrom(el, null, elOption, styleOpt, transFromProps, isInit);\n\n  if (elDisplayable) {\n    hasOwn(elOption, 'invisible') && (elDisplayable.invisible = elOption.invisible);\n  }\n\n  if (!isMorphTo) {\n    applyPropsFinal(el, allPropsFinal, styleOpt);\n    applyTransitionFrom(el, dataIndex, elOption, seriesModel, transFromProps, isInit);\n  }\n\n  hasOwn(elOption, 'silent') && (el.silent = elOption.silent);\n  hasOwn(elOption, 'ignore') && (el.ignore = elOption.ignore);\n\n  if (!isTextContent) {\n    hasOwn(elOption, 'info') && (inner(el).info = elOption.info);\n  }\n\n  styleOpt ? el.dirty() : el.markRedraw();\n  return isMorphTo ? allPropsFinal : null;\n}\n\nfunction applyPropsFinal(el, allPropsFinal, styleOpt) {\n  var elDisplayable = el.isGroup ? null : el;\n\n  if (elDisplayable && styleOpt) {\n    var decalPattern = styleOpt.__decalPattern;\n    var originalDecalObj = void 0;\n\n    if (decalPattern) {\n      originalDecalObj = styleOpt.decal;\n      styleOpt.decal = decalPattern;\n    }\n\n    elDisplayable.useStyle(styleOpt);\n\n    if (decalPattern) {\n      styleOpt.decal = originalDecalObj;\n    }\n\n    var animators = elDisplayable.animators;\n\n    for (var i = 0; i < animators.length; i++) {\n      var animator = animators[i];\n\n      if (animator.targetName === 'style') {\n        animator.changeTarget(elDisplayable.style);\n      }\n    }\n  }\n\n  allPropsFinal && el.attr(allPropsFinal);\n}\n\nfunction applyTransitionFrom(el, dataIndex, elOption, seriesModel, transFromProps, isInit) {\n  if (transFromProps) {\n    var userDuring = elOption.during;\n    inner(el).userDuring = userDuring;\n    var cfgDuringCall = userDuring ? bind(duringCall, {\n      el: el,\n      userDuring: userDuring\n    }) : null;\n    var cfg = {\n      dataIndex: dataIndex,\n      isFrom: true,\n      during: cfgDuringCall\n    };\n    isInit ? graphicUtil.initProps(el, transFromProps, seriesModel, cfg) : graphicUtil.updateProps(el, transFromProps, seriesModel, cfg);\n  }\n}\n\nfunction prepareShapeOrExtraTransitionFrom(mainAttr, el, morphFromEl, elOption, transFromProps, isInit) {\n  var attrOpt = elOption[mainAttr];\n\n  if (!attrOpt) {\n    return;\n  }\n\n  var elPropsInAttr = el[mainAttr];\n  var transFromPropsInAttr;\n  var enterFrom = attrOpt.enterFrom;\n\n  if (isInit && enterFrom) {\n    !transFromPropsInAttr && (transFromPropsInAttr = transFromProps[mainAttr] = {});\n    var enterFromKeys = keys(enterFrom);\n\n    for (var i = 0; i < enterFromKeys.length; i++) {\n      var key = enterFromKeys[i];\n      transFromPropsInAttr[key] = enterFrom[key];\n    }\n  }\n\n  if (!isInit && elPropsInAttr && !(morphFromEl != null && mainAttr === 'shape')) {\n    if (attrOpt.transition) {\n      !transFromPropsInAttr && (transFromPropsInAttr = transFromProps[mainAttr] = {});\n      var transitionKeys = normalizeToArray(attrOpt.transition);\n\n      for (var i = 0; i < transitionKeys.length; i++) {\n        var key = transitionKeys[i];\n        var elVal = elPropsInAttr[key];\n\n        if (process.env.NODE_ENV !== 'production') {\n          checkNonStyleTansitionRefer(key, attrOpt[key], elVal);\n        }\n\n        transFromPropsInAttr[key] = elVal;\n      }\n    } else if (indexOf(elOption.transition, mainAttr) >= 0) {\n      !transFromPropsInAttr && (transFromPropsInAttr = transFromProps[mainAttr] = {});\n      var elPropsInAttrKeys = keys(elPropsInAttr);\n\n      for (var i = 0; i < elPropsInAttrKeys.length; i++) {\n        var key = elPropsInAttrKeys[i];\n        var elVal = elPropsInAttr[key];\n\n        if (isNonStyleTransitionEnabled(attrOpt[key], elVal)) {\n          transFromPropsInAttr[key] = elVal;\n        }\n      }\n    }\n  }\n\n  var leaveTo = attrOpt.leaveTo;\n\n  if (leaveTo) {\n    var leaveToProps = getOrCreateLeaveToPropsFromEl(el);\n    var leaveToPropsInAttr = leaveToProps[mainAttr] || (leaveToProps[mainAttr] = {});\n    var leaveToKeys = keys(leaveTo);\n\n    for (var i = 0; i < leaveToKeys.length; i++) {\n      var key = leaveToKeys[i];\n      leaveToPropsInAttr[key] = leaveTo[key];\n    }\n  }\n}\n\nfunction prepareShapeOrExtraAllPropsFinal(mainAttr, elOption, allProps) {\n  var attrOpt = elOption[mainAttr];\n\n  if (!attrOpt) {\n    return;\n  }\n\n  var allPropsInAttr = allProps[mainAttr] = {};\n  var keysInAttr = keys(attrOpt);\n\n  for (var i = 0; i < keysInAttr.length; i++) {\n    var key = keysInAttr[i];\n    allPropsInAttr[key] = cloneValue(attrOpt[key]);\n  }\n}\n\nfunction prepareTransformTransitionFrom(el, morphFromEl, elOption, transFromProps, isInit) {\n  var enterFrom = elOption.enterFrom;\n\n  if (isInit && enterFrom) {\n    var enterFromKeys = keys(enterFrom);\n\n    for (var i = 0; i < enterFromKeys.length; i++) {\n      var key = enterFromKeys[i];\n\n      if (process.env.NODE_ENV !== 'production') {\n        checkTransformPropRefer(key, 'el.enterFrom');\n      }\n\n      transFromProps[key] = enterFrom[key];\n    }\n  }\n\n  if (!isInit) {\n    if (morphFromEl) {\n      var fromTransformable = calcOldElLocalTransformBasedOnNewElParent(morphFromEl, el);\n      setTransformPropToTransitionFrom(transFromProps, 'x', fromTransformable);\n      setTransformPropToTransitionFrom(transFromProps, 'y', fromTransformable);\n      setTransformPropToTransitionFrom(transFromProps, 'scaleX', fromTransformable);\n      setTransformPropToTransitionFrom(transFromProps, 'scaleY', fromTransformable);\n      setTransformPropToTransitionFrom(transFromProps, 'originX', fromTransformable);\n      setTransformPropToTransitionFrom(transFromProps, 'originY', fromTransformable);\n      setTransformPropToTransitionFrom(transFromProps, 'rotation', fromTransformable);\n    } else if (elOption.transition) {\n      var transitionKeys = normalizeToArray(elOption.transition);\n\n      for (var i = 0; i < transitionKeys.length; i++) {\n        var key = transitionKeys[i];\n\n        if (key === 'style' || key === 'shape' || key === 'extra') {\n          continue;\n        }\n\n        var elVal = el[key];\n\n        if (process.env.NODE_ENV !== 'production') {\n          checkTransformPropRefer(key, 'el.transition');\n          checkNonStyleTansitionRefer(key, elOption[key], elVal);\n        }\n\n        transFromProps[key] = elVal;\n      }\n    } else {\n      setTransformPropToTransitionFrom(transFromProps, 'x', el);\n      setTransformPropToTransitionFrom(transFromProps, 'y', el);\n    }\n  }\n\n  var leaveTo = elOption.leaveTo;\n\n  if (leaveTo) {\n    var leaveToProps = getOrCreateLeaveToPropsFromEl(el);\n    var leaveToKeys = keys(leaveTo);\n\n    for (var i = 0; i < leaveToKeys.length; i++) {\n      var key = leaveToKeys[i];\n\n      if (process.env.NODE_ENV !== 'production') {\n        checkTransformPropRefer(key, 'el.leaveTo');\n      }\n\n      leaveToProps[key] = leaveTo[key];\n    }\n  }\n}\n\nfunction prepareTransformAllPropsFinal(elOption, allProps) {\n  setLagecyTransformProp(elOption, allProps, 'position');\n  setLagecyTransformProp(elOption, allProps, 'scale');\n  setLagecyTransformProp(elOption, allProps, 'origin');\n  setTransformProp(elOption, allProps, 'x');\n  setTransformProp(elOption, allProps, 'y');\n  setTransformProp(elOption, allProps, 'scaleX');\n  setTransformProp(elOption, allProps, 'scaleY');\n  setTransformProp(elOption, allProps, 'originX');\n  setTransformProp(elOption, allProps, 'originY');\n  setTransformProp(elOption, allProps, 'rotation');\n}\n\nfunction prepareStyleTransitionFrom(el, morphFromEl, elOption, styleOpt, transFromProps, isInit) {\n  if (!styleOpt) {\n    return;\n  }\n\n  var fromEl = morphFromEl || el;\n  var fromElStyle = fromEl.style;\n  var transFromStyleProps;\n  var enterFrom = styleOpt.enterFrom;\n\n  if (isInit && enterFrom) {\n    var enterFromKeys = keys(enterFrom);\n    !transFromStyleProps && (transFromStyleProps = transFromProps.style = {});\n\n    for (var i = 0; i < enterFromKeys.length; i++) {\n      var key = enterFromKeys[i];\n      transFromStyleProps[key] = enterFrom[key];\n    }\n  }\n\n  if (!isInit && fromElStyle) {\n    if (styleOpt.transition) {\n      var transitionKeys = normalizeToArray(styleOpt.transition);\n      !transFromStyleProps && (transFromStyleProps = transFromProps.style = {});\n\n      for (var i = 0; i < transitionKeys.length; i++) {\n        var key = transitionKeys[i];\n        var elVal = fromElStyle[key];\n        transFromStyleProps[key] = elVal;\n      }\n    } else if (el.getAnimationStyleProps && indexOf(elOption.transition, 'style') >= 0) {\n      var animationProps = el.getAnimationStyleProps();\n      var animationStyleProps = animationProps ? animationProps.style : null;\n\n      if (animationStyleProps) {\n        !transFromStyleProps && (transFromStyleProps = transFromProps.style = {});\n        var styleKeys = keys(styleOpt);\n\n        for (var i = 0; i < styleKeys.length; i++) {\n          var key = styleKeys[i];\n\n          if (animationStyleProps[key]) {\n            var elVal = fromElStyle[key];\n            transFromStyleProps[key] = elVal;\n          }\n        }\n      }\n    }\n  }\n\n  var leaveTo = styleOpt.leaveTo;\n\n  if (leaveTo) {\n    var leaveToKeys = keys(leaveTo);\n    var leaveToProps = getOrCreateLeaveToPropsFromEl(el);\n    var leaveToStyleProps = leaveToProps.style || (leaveToProps.style = {});\n\n    for (var i = 0; i < leaveToKeys.length; i++) {\n      var key = leaveToKeys[i];\n      leaveToStyleProps[key] = leaveTo[key];\n    }\n  }\n}\n\nfunction calcOldElLocalTransformBasedOnNewElParent(oldEl, newEl) {\n  if (!oldEl || oldEl === newEl || oldEl.parent === newEl.parent) {\n    return oldEl;\n  }\n\n  var tmpM = tmpTransformable.transform || (tmpTransformable.transform = matrix.identity([]));\n  var oldGlobalTransform = oldEl.getComputedTransform();\n  oldGlobalTransform ? matrix.copy(tmpM, oldGlobalTransform) : matrix.identity(tmpM);\n  var newParent = newEl.parent;\n\n  if (newParent) {\n    newParent.getComputedTransform();\n  }\n\n  tmpTransformable.originX = oldEl.originX;\n  tmpTransformable.originY = oldEl.originY;\n  tmpTransformable.parent = newParent;\n  tmpTransformable.decomposeTransform();\n  return tmpTransformable;\n}\n\nvar checkNonStyleTansitionRefer;\n\nif (process.env.NODE_ENV !== 'production') {\n  checkNonStyleTansitionRefer = function (propName, optVal, elVal) {\n    if (!isArrayLike(optVal)) {\n      assert(optVal != null && isFinite(optVal), 'Prop `' + propName + '` must refer to a finite number or ArrayLike for transition.');\n    } else {\n      assert(optVal !== elVal, 'Prop `' + propName + '` must use different Array object each time for transition.');\n    }\n  };\n}\n\nfunction isNonStyleTransitionEnabled(optVal, elVal) {\n  return !isArrayLike(optVal) ? optVal != null && isFinite(optVal) : optVal !== elVal;\n}\n\nvar checkTransformPropRefer;\n\nif (process.env.NODE_ENV !== 'production') {\n  checkTransformPropRefer = function (key, usedIn) {\n    assert(hasOwn(TRANSFORM_PROPS, key), 'Prop `' + key + '` is not a permitted in `' + usedIn + '`. ' + 'Only `' + keys(TRANSFORM_PROPS).join('`, `') + '` are permitted.');\n  };\n}\n\nfunction getOrCreateLeaveToPropsFromEl(el) {\n  var innerEl = inner(el);\n  return innerEl.leaveToProps || (innerEl.leaveToProps = {});\n}\n\nvar tmpDuringScope = {};\nvar customDuringAPI = {\n  setTransform: function (key, val) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(hasOwn(TRANSFORM_PROPS, key), 'Only ' + transformPropNamesStr + ' available in `setTransform`.');\n    }\n\n    tmpDuringScope.el[key] = val;\n    return this;\n  },\n  getTransform: function (key) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(hasOwn(TRANSFORM_PROPS, key), 'Only ' + transformPropNamesStr + ' available in `getTransform`.');\n    }\n\n    return tmpDuringScope.el[key];\n  },\n  setShape: function (key, val) {\n    if (process.env.NODE_ENV !== 'production') {\n      assertNotReserved(key);\n    }\n\n    var shape = tmpDuringScope.el.shape || (tmpDuringScope.el.shape = {});\n    shape[key] = val;\n    tmpDuringScope.isShapeDirty = true;\n    return this;\n  },\n  getShape: function (key) {\n    if (process.env.NODE_ENV !== 'production') {\n      assertNotReserved(key);\n    }\n\n    var shape = tmpDuringScope.el.shape;\n\n    if (shape) {\n      return shape[key];\n    }\n  },\n  setStyle: function (key, val) {\n    if (process.env.NODE_ENV !== 'production') {\n      assertNotReserved(key);\n    }\n\n    var style = tmpDuringScope.el.style;\n\n    if (style) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (eqNaN(val)) {\n          warn('style.' + key + ' must not be assigned with NaN.');\n        }\n      }\n\n      style[key] = val;\n      tmpDuringScope.isStyleDirty = true;\n    }\n\n    return this;\n  },\n  getStyle: function (key) {\n    if (process.env.NODE_ENV !== 'production') {\n      assertNotReserved(key);\n    }\n\n    var style = tmpDuringScope.el.style;\n\n    if (style) {\n      return style[key];\n    }\n  },\n  setExtra: function (key, val) {\n    if (process.env.NODE_ENV !== 'production') {\n      assertNotReserved(key);\n    }\n\n    var extra = tmpDuringScope.el.extra || (tmpDuringScope.el.extra = {});\n    extra[key] = val;\n    return this;\n  },\n  getExtra: function (key) {\n    if (process.env.NODE_ENV !== 'production') {\n      assertNotReserved(key);\n    }\n\n    var extra = tmpDuringScope.el.extra;\n\n    if (extra) {\n      return extra[key];\n    }\n  }\n};\n\nfunction assertNotReserved(key) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (key === 'transition' || key === 'enterFrom' || key === 'leaveTo') {\n      throw new Error('key must not be \"' + key + '\"');\n    }\n  }\n}\n\nfunction duringCall() {\n  var scope = this;\n  var el = scope.el;\n\n  if (!el) {\n    return;\n  }\n\n  var newstUserDuring = inner(el).userDuring;\n  var scopeUserDuring = scope.userDuring;\n\n  if (newstUserDuring !== scopeUserDuring) {\n    scope.el = scope.userDuring = null;\n    return;\n  }\n\n  tmpDuringScope.el = el;\n  tmpDuringScope.isShapeDirty = false;\n  tmpDuringScope.isStyleDirty = false;\n  scopeUserDuring(customDuringAPI);\n\n  if (tmpDuringScope.isShapeDirty && el.dirtyShape) {\n    el.dirtyShape();\n  }\n\n  if (tmpDuringScope.isStyleDirty && el.dirtyStyle) {\n    el.dirtyStyle();\n  }\n}\n\nfunction updateElOnState(state, el, elStateOpt, styleOpt, attachedTxInfo, isRoot, isTextContent) {\n  var elDisplayable = el.isGroup ? null : el;\n  var txCfgOpt = attachedTxInfo && attachedTxInfo[state].cfg;\n\n  if (elDisplayable) {\n    var stateObj = elDisplayable.ensureState(state);\n\n    if (styleOpt === false) {\n      var existingEmphasisState = elDisplayable.getState(state);\n\n      if (existingEmphasisState) {\n        existingEmphasisState.style = null;\n      }\n    } else {\n      stateObj.style = styleOpt || null;\n    }\n\n    if (txCfgOpt) {\n      stateObj.textConfig = txCfgOpt;\n    }\n\n    setDefaultStateProxy(elDisplayable);\n  }\n}\n\nfunction updateZ(el, elOption, seriesModel, attachedTxInfo) {\n  if (el.isGroup) {\n    return;\n  }\n\n  var elDisplayable = el;\n  var currentZ = seriesModel.currentZ;\n  var currentZLevel = seriesModel.currentZLevel;\n  elDisplayable.z = currentZ;\n  elDisplayable.zlevel = currentZLevel;\n  var optZ2 = elOption.z2;\n  optZ2 != null && (elDisplayable.z2 = optZ2 || 0);\n\n  for (var i = 0; i < STATES.length; i++) {\n    updateZForEachState(elDisplayable, elOption, STATES[i]);\n  }\n}\n\nfunction updateZForEachState(elDisplayable, elOption, state) {\n  var isNormal = state === NORMAL;\n  var elStateOpt = isNormal ? elOption : retrieveStateOption(elOption, state);\n  var optZ2 = elStateOpt ? elStateOpt.z2 : null;\n  var stateObj;\n\n  if (optZ2 != null) {\n    stateObj = isNormal ? elDisplayable : elDisplayable.ensureState(state);\n    stateObj.z2 = optZ2 || 0;\n  }\n}\n\nfunction setLagecyTransformProp(elOption, targetProps, legacyName, fromTransformable) {\n  var legacyArr = elOption[legacyName];\n  var xyName = LEGACY_TRANSFORM_PROPS[legacyName];\n\n  if (legacyArr) {\n    if (fromTransformable) {\n      targetProps[xyName[0]] = fromTransformable[xyName[0]];\n      targetProps[xyName[1]] = fromTransformable[xyName[1]];\n    } else {\n      targetProps[xyName[0]] = legacyArr[0];\n      targetProps[xyName[1]] = legacyArr[1];\n    }\n  }\n}\n\nfunction setTransformProp(elOption, allProps, name, fromTransformable) {\n  if (elOption[name] != null) {\n    allProps[name] = fromTransformable ? fromTransformable[name] : elOption[name];\n  }\n}\n\nfunction setTransformPropToTransitionFrom(transitionFrom, name, fromTransformable) {\n  if (fromTransformable) {\n    transitionFrom[name] = fromTransformable[name];\n  }\n}\n\nfunction makeRenderItem(customSeries, data, ecModel, api) {\n  var renderItem = customSeries.get('renderItem');\n  var coordSys = customSeries.coordinateSystem;\n  var prepareResult = {};\n\n  if (coordSys) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(renderItem, 'series.render is required.');\n      assert(coordSys.prepareCustoms || prepareCustoms[coordSys.type], 'This coordSys does not support custom series.');\n    }\n\n    prepareResult = coordSys.prepareCustoms ? coordSys.prepareCustoms(coordSys) : prepareCustoms[coordSys.type](coordSys);\n  }\n\n  var userAPI = defaults({\n    getWidth: api.getWidth,\n    getHeight: api.getHeight,\n    getZr: api.getZr,\n    getDevicePixelRatio: api.getDevicePixelRatio,\n    value: value,\n    style: style,\n    ordinalRawValue: ordinalRawValue,\n    styleEmphasis: styleEmphasis,\n    visual: visual,\n    barLayout: barLayout,\n    currentSeriesIndices: currentSeriesIndices,\n    font: font\n  }, prepareResult.api || {});\n  var userParams = {\n    context: {},\n    seriesId: customSeries.id,\n    seriesName: customSeries.name,\n    seriesIndex: customSeries.seriesIndex,\n    coordSys: prepareResult.coordSys,\n    dataInsideLength: data.count(),\n    encode: wrapEncodeDef(customSeries.getData())\n  };\n  var currDataIndexInside;\n  var currItemModel;\n  var currItemStyleModels = {};\n  var currLabelModels = {};\n  var seriesItemStyleModels = {};\n  var seriesLabelModels = {};\n\n  for (var i = 0; i < STATES.length; i++) {\n    var stateName = STATES[i];\n    seriesItemStyleModels[stateName] = customSeries.getModel(PATH_ITEM_STYLE[stateName]);\n    seriesLabelModels[stateName] = customSeries.getModel(PATH_LABEL[stateName]);\n  }\n\n  function getItemModel(dataIndexInside) {\n    return dataIndexInside === currDataIndexInside ? currItemModel || (currItemModel = data.getItemModel(dataIndexInside)) : data.getItemModel(dataIndexInside);\n  }\n\n  function getItemStyleModel(dataIndexInside, state) {\n    return !data.hasItemOption ? seriesItemStyleModels[state] : dataIndexInside === currDataIndexInside ? currItemStyleModels[state] || (currItemStyleModels[state] = getItemModel(dataIndexInside).getModel(PATH_ITEM_STYLE[state])) : getItemModel(dataIndexInside).getModel(PATH_ITEM_STYLE[state]);\n  }\n\n  function getLabelModel(dataIndexInside, state) {\n    return !data.hasItemOption ? seriesLabelModels[state] : dataIndexInside === currDataIndexInside ? currLabelModels[state] || (currLabelModels[state] = getItemModel(dataIndexInside).getModel(PATH_LABEL[state])) : getItemModel(dataIndexInside).getModel(PATH_LABEL[state]);\n  }\n\n  return function (dataIndexInside, payload) {\n    currDataIndexInside = dataIndexInside;\n    currItemModel = null;\n    currItemStyleModels = {};\n    currLabelModels = {};\n    return renderItem && renderItem(defaults({\n      dataIndexInside: dataIndexInside,\n      dataIndex: data.getRawIndex(dataIndexInside),\n      actionType: payload ? payload.type : null\n    }, userParams), userAPI);\n  };\n\n  function value(dim, dataIndexInside) {\n    dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n    return data.get(data.getDimension(dim || 0), dataIndexInside);\n  }\n\n  function ordinalRawValue(dim, dataIndexInside) {\n    dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n    var dimInfo = data.getDimensionInfo(dim || 0);\n\n    if (!dimInfo) {\n      return;\n    }\n\n    var val = data.get(dimInfo.name, dataIndexInside);\n    var ordinalMeta = dimInfo && dimInfo.ordinalMeta;\n    return ordinalMeta ? ordinalMeta.categories[val] : val;\n  }\n\n  function style(userProps, dataIndexInside) {\n    if (process.env.NODE_ENV !== 'production') {\n      warnDeprecated('api.style', 'Please write literal style directly instead.');\n    }\n\n    dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n    var style = data.getItemVisual(dataIndexInside, 'style');\n    var visualColor = style && style.fill;\n    var opacity = style && style.opacity;\n    var itemStyle = getItemStyleModel(dataIndexInside, NORMAL).getItemStyle();\n    visualColor != null && (itemStyle.fill = visualColor);\n    opacity != null && (itemStyle.opacity = opacity);\n    var opt = {\n      inheritColor: isString(visualColor) ? visualColor : '#000'\n    };\n    var labelModel = getLabelModel(dataIndexInside, NORMAL);\n    var textStyle = labelStyleHelper.createTextStyle(labelModel, null, opt, false, true);\n    textStyle.text = labelModel.getShallow('show') ? retrieve2(customSeries.getFormattedLabel(dataIndexInside, NORMAL), getDefaultLabel(data, dataIndexInside)) : null;\n    var textConfig = labelStyleHelper.createTextConfig(labelModel, opt, false);\n    preFetchFromExtra(userProps, itemStyle);\n    itemStyle = convertToEC4StyleForCustomSerise(itemStyle, textStyle, textConfig);\n    userProps && applyUserPropsAfter(itemStyle, userProps);\n    itemStyle.legacy = true;\n    return itemStyle;\n  }\n\n  function styleEmphasis(userProps, dataIndexInside) {\n    if (process.env.NODE_ENV !== 'production') {\n      warnDeprecated('api.styleEmphasis', 'Please write literal style directly instead.');\n    }\n\n    dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n    var itemStyle = getItemStyleModel(dataIndexInside, EMPHASIS).getItemStyle();\n    var labelModel = getLabelModel(dataIndexInside, EMPHASIS);\n    var textStyle = labelStyleHelper.createTextStyle(labelModel, null, null, true, true);\n    textStyle.text = labelModel.getShallow('show') ? retrieve3(customSeries.getFormattedLabel(dataIndexInside, EMPHASIS), customSeries.getFormattedLabel(dataIndexInside, NORMAL), getDefaultLabel(data, dataIndexInside)) : null;\n    var textConfig = labelStyleHelper.createTextConfig(labelModel, null, true);\n    preFetchFromExtra(userProps, itemStyle);\n    itemStyle = convertToEC4StyleForCustomSerise(itemStyle, textStyle, textConfig);\n    userProps && applyUserPropsAfter(itemStyle, userProps);\n    itemStyle.legacy = true;\n    return itemStyle;\n  }\n\n  function applyUserPropsAfter(itemStyle, extra) {\n    for (var key in extra) {\n      if (hasOwn(extra, key)) {\n        itemStyle[key] = extra[key];\n      }\n    }\n  }\n\n  function preFetchFromExtra(extra, itemStyle) {\n    if (extra) {\n      extra.textFill && (itemStyle.textFill = extra.textFill);\n      extra.textPosition && (itemStyle.textPosition = extra.textPosition);\n    }\n  }\n\n  function visual(visualType, dataIndexInside) {\n    dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n\n    if (hasOwn(STYLE_VISUAL_TYPE, visualType)) {\n      var style_1 = data.getItemVisual(dataIndexInside, 'style');\n      return style_1 ? style_1[STYLE_VISUAL_TYPE[visualType]] : null;\n    }\n\n    if (hasOwn(NON_STYLE_VISUAL_PROPS, visualType)) {\n      return data.getItemVisual(dataIndexInside, visualType);\n    }\n  }\n\n  function barLayout(opt) {\n    if (coordSys.type === 'cartesian2d') {\n      var baseAxis = coordSys.getBaseAxis();\n      return getLayoutOnAxis(defaults({\n        axis: baseAxis\n      }, opt));\n    }\n  }\n\n  function currentSeriesIndices() {\n    return ecModel.getCurrentSeriesIndices();\n  }\n\n  function font(opt) {\n    return labelStyleHelper.getFont(opt, ecModel);\n  }\n}\n\nfunction wrapEncodeDef(data) {\n  var encodeDef = {};\n  each(data.dimensions, function (dimName, dataDimIndex) {\n    var dimInfo = data.getDimensionInfo(dimName);\n\n    if (!dimInfo.isExtraCoord) {\n      var coordDim = dimInfo.coordDim;\n      var dataDims = encodeDef[coordDim] = encodeDef[coordDim] || [];\n      dataDims[dimInfo.coordDimIndex] = dataDimIndex;\n    }\n  });\n  return encodeDef;\n}\n\nfunction createOrUpdateItem(api, el, dataIndex, elOption, seriesModel, group, data, morphPreparation) {\n  if (!elOption) {\n    removeElementDirectly(el, group);\n    return;\n  }\n\n  el = doCreateOrUpdateEl(api, el, dataIndex, elOption, seriesModel, group, true, morphPreparation);\n  el && data.setItemGraphicEl(dataIndex, el);\n  enableHoverEmphasis(el, elOption.focus, elOption.blurScope);\n  return el;\n}\n\nfunction doCreateOrUpdateEl(api, el, dataIndex, elOption, seriesModel, group, isRoot, morphPreparation) {\n  if (process.env.NODE_ENV !== 'production') {\n    assert(elOption, 'should not have an null/undefined element setting');\n  }\n\n  var toBeReplacedIdx = -1;\n\n  if (el && doesElNeedRecreate(el, elOption)) {\n    toBeReplacedIdx = group.childrenRef().indexOf(el);\n    el = null;\n  }\n\n  var elIsNewCreated = !el;\n\n  if (!el) {\n    el = createEl(elOption);\n  } else {\n    el.clearStates();\n  }\n\n  var canMorph = inner(el).canMorph = elOption.morph && isPath(el);\n  var thisElIsMorphTo = canMorph && morphPreparation && morphPreparation.hasFrom();\n  var isInit = elIsNewCreated && !thisElIsMorphTo;\n  attachedTxInfoTmp.normal.cfg = attachedTxInfoTmp.normal.conOpt = attachedTxInfoTmp.emphasis.cfg = attachedTxInfoTmp.emphasis.conOpt = attachedTxInfoTmp.blur.cfg = attachedTxInfoTmp.blur.conOpt = attachedTxInfoTmp.select.cfg = attachedTxInfoTmp.select.conOpt = null;\n  attachedTxInfoTmp.isLegacy = false;\n  doCreateOrUpdateAttachedTx(el, dataIndex, elOption, seriesModel, isInit, attachedTxInfoTmp);\n  doCreateOrUpdateClipPath(el, dataIndex, elOption, seriesModel, isInit);\n  var pendingAllPropsFinal = updateElNormal(api, el, thisElIsMorphTo, dataIndex, elOption, elOption.style, attachedTxInfoTmp, seriesModel, isInit, false);\n\n  if (thisElIsMorphTo) {\n    morphPreparation.addTo(el, elOption, dataIndex, pendingAllPropsFinal);\n  }\n\n  for (var i = 0; i < STATES.length; i++) {\n    var stateName = STATES[i];\n\n    if (stateName !== NORMAL) {\n      var otherStateOpt = retrieveStateOption(elOption, stateName);\n      var otherStyleOpt = retrieveStyleOptionOnState(elOption, otherStateOpt, stateName);\n      updateElOnState(stateName, el, otherStateOpt, otherStyleOpt, attachedTxInfoTmp, isRoot, false);\n    }\n  }\n\n  updateZ(el, elOption, seriesModel, attachedTxInfoTmp);\n\n  if (elOption.type === 'group') {\n    mergeChildren(api, el, dataIndex, elOption, seriesModel, morphPreparation);\n  }\n\n  if (toBeReplacedIdx >= 0) {\n    group.replaceAt(el, toBeReplacedIdx);\n  } else {\n    group.add(el);\n  }\n\n  return el;\n}\n\nfunction doesElNeedRecreate(el, elOption) {\n  var elInner = inner(el);\n  var elOptionType = elOption.type;\n  var elOptionShape = elOption.shape;\n  var elOptionStyle = elOption.style;\n  return elOptionType != null && elOptionType !== elInner.customGraphicType || elOptionType === 'path' && hasOwnPathData(elOptionShape) && getPathData(elOptionShape) !== elInner.customPathData || elOptionType === 'image' && hasOwn(elOptionStyle, 'image') && elOptionStyle.image !== elInner.customImagePath;\n}\n\nfunction doCreateOrUpdateClipPath(el, dataIndex, elOption, seriesModel, isInit) {\n  var clipPathOpt = elOption.clipPath;\n\n  if (clipPathOpt === false) {\n    if (el && el.getClipPath()) {\n      el.removeClipPath();\n    }\n  } else if (clipPathOpt) {\n    var clipPath = el.getClipPath();\n\n    if (clipPath && doesElNeedRecreate(clipPath, clipPathOpt)) {\n      clipPath = null;\n    }\n\n    if (!clipPath) {\n      clipPath = createEl(clipPathOpt);\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(clipPath instanceof graphicUtil.Path, 'Only any type of `path` can be used in `clipPath`, rather than ' + clipPath.type + '.');\n      }\n\n      el.setClipPath(clipPath);\n    }\n\n    updateElNormal(null, clipPath, null, dataIndex, clipPathOpt, null, null, seriesModel, isInit, false);\n  }\n}\n\nfunction doCreateOrUpdateAttachedTx(el, dataIndex, elOption, seriesModel, isInit, attachedTxInfo) {\n  if (el.isGroup) {\n    return;\n  }\n\n  processTxInfo(elOption, null, attachedTxInfo);\n  processTxInfo(elOption, EMPHASIS, attachedTxInfo);\n  var txConOptNormal = attachedTxInfo.normal.conOpt;\n  var txConOptEmphasis = attachedTxInfo.emphasis.conOpt;\n  var txConOptBlur = attachedTxInfo.blur.conOpt;\n  var txConOptSelect = attachedTxInfo.select.conOpt;\n\n  if (txConOptNormal != null || txConOptEmphasis != null || txConOptSelect != null || txConOptBlur != null) {\n    var textContent = el.getTextContent();\n\n    if (txConOptNormal === false) {\n      textContent && el.removeTextContent();\n    } else {\n      txConOptNormal = attachedTxInfo.normal.conOpt = txConOptNormal || {\n        type: 'text'\n      };\n\n      if (!textContent) {\n        textContent = createEl(txConOptNormal);\n        el.setTextContent(textContent);\n      } else {\n        textContent.clearStates();\n      }\n\n      var txConStlOptNormal = txConOptNormal && txConOptNormal.style;\n      updateElNormal(null, textContent, null, dataIndex, txConOptNormal, txConStlOptNormal, null, seriesModel, isInit, true);\n\n      for (var i = 0; i < STATES.length; i++) {\n        var stateName = STATES[i];\n\n        if (stateName !== NORMAL) {\n          var txConOptOtherState = attachedTxInfo[stateName].conOpt;\n          updateElOnState(stateName, textContent, txConOptOtherState, retrieveStyleOptionOnState(txConOptNormal, txConOptOtherState, stateName), null, false, true);\n        }\n      }\n\n      txConStlOptNormal ? textContent.dirty() : textContent.markRedraw();\n    }\n  }\n}\n\nfunction processTxInfo(elOption, state, attachedTxInfo) {\n  var stateOpt = !state ? elOption : retrieveStateOption(elOption, state);\n  var styleOpt = !state ? elOption.style : retrieveStyleOptionOnState(elOption, stateOpt, EMPHASIS);\n  var elType = elOption.type;\n  var txCfg = stateOpt ? stateOpt.textConfig : null;\n  var txConOptNormal = elOption.textContent;\n  var txConOpt = !txConOptNormal ? null : !state ? txConOptNormal : retrieveStateOption(txConOptNormal, state);\n\n  if (styleOpt && (attachedTxInfo.isLegacy || isEC4CompatibleStyle(styleOpt, elType, !!txCfg, !!txConOpt))) {\n    attachedTxInfo.isLegacy = true;\n    var convertResult = convertFromEC4CompatibleStyle(styleOpt, elType, !state);\n\n    if (!txCfg && convertResult.textConfig) {\n      txCfg = convertResult.textConfig;\n    }\n\n    if (!txConOpt && convertResult.textContent) {\n      txConOpt = convertResult.textContent;\n    }\n  }\n\n  if (!state && txConOpt) {\n    var txConOptNormal_1 = txConOpt;\n    !txConOptNormal_1.type && (txConOptNormal_1.type = 'text');\n\n    if (process.env.NODE_ENV !== 'production') {\n      txConOptNormal_1.type !== 'text' && assert(txConOptNormal_1.type === 'text', 'textContent.type must be \"text\"');\n    }\n  }\n\n  var info = !state ? attachedTxInfo.normal : attachedTxInfo[state];\n  info.cfg = txCfg;\n  info.conOpt = txConOpt;\n}\n\nfunction retrieveStateOption(elOption, state) {\n  return !state ? elOption : elOption ? elOption[state] : null;\n}\n\nfunction retrieveStyleOptionOnState(stateOptionNormal, stateOption, state) {\n  var style = stateOption && stateOption.style;\n\n  if (style == null && state === EMPHASIS && stateOptionNormal) {\n    style = stateOptionNormal.styleEmphasis;\n  }\n\n  return style;\n}\n\nfunction mergeChildren(api, el, dataIndex, elOption, seriesModel, morphPreparation) {\n  var newChildren = elOption.children;\n  var newLen = newChildren ? newChildren.length : 0;\n  var mergeChildren = elOption.$mergeChildren;\n  var byName = mergeChildren === 'byName' || elOption.diffChildrenByName;\n  var notMerge = mergeChildren === false;\n\n  if (!newLen && !byName && !notMerge) {\n    return;\n  }\n\n  if (byName) {\n    diffGroupChildren({\n      api: api,\n      oldChildren: el.children() || [],\n      newChildren: newChildren || [],\n      dataIndex: dataIndex,\n      seriesModel: seriesModel,\n      group: el,\n      morphPreparation: morphPreparation\n    });\n    return;\n  }\n\n  notMerge && el.removeAll();\n  var index = 0;\n\n  for (; index < newLen; index++) {\n    newChildren[index] && doCreateOrUpdateEl(api, el.childAt(index), dataIndex, newChildren[index], seriesModel, el, false, morphPreparation);\n  }\n\n  for (var i = el.childCount() - 1; i >= index; i--) {\n    doRemoveEl(el.childAt(i), seriesModel, el);\n  }\n}\n\nfunction diffGroupChildren(context) {\n  new DataDiffer(context.oldChildren, context.newChildren, getKey, getKey, context).add(processAddUpdate).update(processAddUpdate).remove(processRemove).execute();\n}\n\nfunction getKey(item, idx) {\n  var name = item && item.name;\n  return name != null ? name : GROUP_DIFF_PREFIX + idx;\n}\n\nfunction processAddUpdate(newIndex, oldIndex) {\n  var context = this.context;\n  var childOption = newIndex != null ? context.newChildren[newIndex] : null;\n  var child = oldIndex != null ? context.oldChildren[oldIndex] : null;\n  doCreateOrUpdateEl(context.api, child, context.dataIndex, childOption, context.seriesModel, context.group, false, context.morphPreparation);\n}\n\nfunction processRemove(oldIndex) {\n  var context = this.context;\n  var child = context.oldChildren[oldIndex];\n  doRemoveEl(child, context.seriesModel, context.group);\n}\n\nfunction doRemoveEl(el, seriesModel, group) {\n  if (el) {\n    var leaveToProps = inner(el).leaveToProps;\n    leaveToProps ? graphicUtil.updateProps(el, leaveToProps, seriesModel, {\n      cb: function () {\n        group.remove(el);\n      }\n    }) : group.remove(el);\n  }\n}\n\nfunction getPathData(shape) {\n  return shape && (shape.pathData || shape.d);\n}\n\nfunction hasOwnPathData(shape) {\n  return shape && (hasOwn(shape, 'pathData') || hasOwn(shape, 'd'));\n}\n\nfunction isPath(el) {\n  return el && el instanceof graphicUtil.Path;\n}\n\nfunction removeElementDirectly(el, group) {\n  el && group.remove(el);\n}\n\nvar MorphPreparation = function () {\n  function MorphPreparation(seriesModel, transOpt) {\n    this._fromList = [];\n    this._toList = [];\n    this._toElOptionList = [];\n    this._allPropsFinalList = [];\n    this._toDataIndices = [];\n    this._morphConfigList = [];\n    this._seriesModel = seriesModel;\n    this._transOpt = transOpt;\n  }\n\n  MorphPreparation.prototype.hasFrom = function () {\n    return !!this._fromList.length;\n  };\n\n  MorphPreparation.prototype.findAndAddFrom = function (el) {\n    if (!el) {\n      return;\n    }\n\n    if (inner(el).canMorph) {\n      this._fromList.push(el);\n    }\n\n    if (el.isGroup) {\n      var children = el.childrenRef();\n\n      for (var i = 0; i < children.length; i++) {\n        this.findAndAddFrom(children[i]);\n      }\n    }\n  };\n\n  MorphPreparation.prototype.addTo = function (path, elOption, dataIndex, allPropsFinal) {\n    if (path) {\n      this._toList.push(path);\n\n      this._toElOptionList.push(elOption);\n\n      this._toDataIndices.push(dataIndex);\n\n      this._allPropsFinalList.push(allPropsFinal);\n    }\n  };\n\n  MorphPreparation.prototype.applyMorphing = function () {\n    var type = this._type;\n    var fromList = this._fromList;\n    var toList = this._toList;\n    var toListLen = toList.length;\n    var fromListLen = fromList.length;\n\n    if (!fromListLen || !toListLen) {\n      return;\n    }\n\n    if (type === 'oneToOne') {\n      for (var toIdx = 0; toIdx < toListLen; toIdx++) {\n        this._oneToOneForSingleTo(toIdx, toIdx);\n      }\n    } else if (type === 'manyToOne') {\n      var fromSingleSegLen = Math.max(1, Math.floor(fromListLen / toListLen));\n\n      for (var toIdx = 0, fromIdxStart = 0; toIdx < toListLen; toIdx++, fromIdxStart += fromSingleSegLen) {\n        var fromCount = toIdx + 1 >= toListLen ? fromListLen - fromIdxStart : fromSingleSegLen;\n\n        this._manyToOneForSingleTo(toIdx, fromIdxStart >= fromListLen ? null : fromIdxStart, fromCount);\n      }\n    } else if (type === 'oneToMany') {\n      var toSingleSegLen = Math.max(1, Math.floor(toListLen / fromListLen));\n\n      for (var toIdxStart = 0, fromIdx = 0; toIdxStart < toListLen; toIdxStart += toSingleSegLen, fromIdx++) {\n        var toCount = toIdxStart + toSingleSegLen >= toListLen ? toListLen - toIdxStart : toSingleSegLen;\n\n        this._oneToManyForSingleFrom(toIdxStart, toCount, fromIdx >= fromListLen ? null : fromIdx);\n      }\n    }\n  };\n\n  MorphPreparation.prototype._oneToOneForSingleTo = function (toIdx, fromIdx) {\n    var to = this._toList[toIdx];\n    var toElOption = this._toElOptionList[toIdx];\n    var toDataIndex = this._toDataIndices[toIdx];\n    var allPropsFinal = this._allPropsFinalList[toIdx];\n    var from = this._fromList[fromIdx];\n\n    var elAnimationConfig = this._getOrCreateMorphConfig(toDataIndex);\n\n    var morphDuration = elAnimationConfig.duration;\n\n    if (from && isCombiningPath(from)) {\n      applyPropsFinal(to, allPropsFinal, toElOption.style);\n\n      if (morphDuration) {\n        var combineResult = combine([from], to, elAnimationConfig, copyPropsWhenDivided);\n\n        this._processResultIndividuals(combineResult, toIdx, null);\n      }\n    } else {\n      var morphFrom = morphDuration && from && (from !== to || isInAnyMorphing(from)) ? from : null;\n      var transFromProps = {};\n      prepareShapeOrExtraTransitionFrom('shape', to, morphFrom, toElOption, transFromProps, false);\n      prepareShapeOrExtraTransitionFrom('extra', to, morphFrom, toElOption, transFromProps, false);\n      prepareTransformTransitionFrom(to, morphFrom, toElOption, transFromProps, false);\n      prepareStyleTransitionFrom(to, morphFrom, toElOption, toElOption.style, transFromProps, false);\n      applyPropsFinal(to, allPropsFinal, toElOption.style);\n\n      if (morphFrom) {\n        morphPath(morphFrom, to, elAnimationConfig);\n      }\n\n      applyTransitionFrom(to, toDataIndex, toElOption, this._seriesModel, transFromProps, false);\n    }\n  };\n\n  MorphPreparation.prototype._manyToOneForSingleTo = function (toIdx, fromIdxStart, fromCount) {\n    var to = this._toList[toIdx];\n    var toElOption = this._toElOptionList[toIdx];\n    var allPropsFinal = this._allPropsFinalList[toIdx];\n    applyPropsFinal(to, allPropsFinal, toElOption.style);\n\n    var elAnimationConfig = this._getOrCreateMorphConfig(this._toDataIndices[toIdx]);\n\n    if (elAnimationConfig.duration && fromIdxStart != null) {\n      var combineFromList = [];\n\n      for (var fromIdx = fromIdxStart; fromIdx < fromCount; fromIdx++) {\n        combineFromList.push(this._fromList[fromIdx]);\n      }\n\n      var combineResult = combine(combineFromList, to, elAnimationConfig, copyPropsWhenDivided);\n\n      this._processResultIndividuals(combineResult, toIdx, null);\n    }\n  };\n\n  MorphPreparation.prototype._oneToManyForSingleFrom = function (toIdxStart, toCount, fromIdx) {\n    var from = fromIdx == null ? null : this._fromList[fromIdx];\n    var toList = this._toList;\n    var separateToList = [];\n\n    for (var toIdx = toIdxStart; toIdx < toCount; toIdx++) {\n      var to = toList[toIdx];\n      applyPropsFinal(to, this._allPropsFinalList[toIdx], this._toElOptionList[toIdx].style);\n      separateToList.push(to);\n    }\n\n    var elAnimationConfig = this._getOrCreateMorphConfig(this._toDataIndices[toIdxStart]);\n\n    if (elAnimationConfig.duration && from) {\n      var separateResult = separate(from, separateToList, elAnimationConfig, copyPropsWhenDivided);\n\n      this._processResultIndividuals(separateResult, toIdxStart, toCount);\n    }\n  };\n\n  MorphPreparation.prototype._processResultIndividuals = function (combineSeparateResult, toIdxStart, toCount) {\n    var isSeparate = toCount != null;\n\n    for (var i = 0; i < combineSeparateResult.count; i++) {\n      var fromIndividual = combineSeparateResult.fromIndividuals[i];\n      var toIndividual = combineSeparateResult.toIndividuals[i];\n      var toIdx = toIdxStart + (isSeparate ? i : 0);\n      var toElOption = this._toElOptionList[toIdx];\n      var dataIndex = this._toDataIndices[toIdx];\n      var transFromProps = {};\n      prepareTransformTransitionFrom(toIndividual, fromIndividual, toElOption, transFromProps, false);\n      prepareStyleTransitionFrom(toIndividual, fromIndividual, toElOption, toElOption.style, transFromProps, false);\n      applyTransitionFrom(toIndividual, dataIndex, toElOption, this._seriesModel, transFromProps, false);\n    }\n  };\n\n  MorphPreparation.prototype._getOrCreateMorphConfig = function (dataIndex) {\n    var morphConfigList = this._morphConfigList;\n    var config = morphConfigList[dataIndex];\n\n    if (config) {\n      return config;\n    }\n\n    var duration;\n    var easing;\n    var delay;\n    var seriesModel = this._seriesModel;\n    var transOpt = this._transOpt;\n\n    if (seriesModel.isAnimationEnabled()) {\n      var animationPayload = void 0;\n\n      if (seriesModel && seriesModel.ecModel) {\n        var updatePayload = seriesModel.ecModel.getUpdatePayload();\n        animationPayload = updatePayload && updatePayload.animation;\n      }\n\n      if (animationPayload) {\n        duration = animationPayload.duration || 0;\n        easing = animationPayload.easing || 'cubicOut';\n        delay = animationPayload.delay || 0;\n      } else {\n        easing = seriesModel.get('animationEasingUpdate');\n        var delayOption = seriesModel.get('animationDelayUpdate');\n        delay = isFunction(delayOption) ? delayOption(dataIndex) : delayOption;\n        var durationOption = seriesModel.get('animationDurationUpdate');\n        duration = isFunction(durationOption) ? durationOption(dataIndex) : durationOption;\n      }\n    }\n\n    config = {\n      duration: duration || 0,\n      delay: delay,\n      easing: easing,\n      dividingMethod: transOpt ? transOpt.dividingMethod : null\n    };\n    morphConfigList[dataIndex] = config;\n    return config;\n  };\n\n  MorphPreparation.prototype.reset = function (type) {\n    this._type = type;\n    this._fromList.length = this._toList.length = this._toElOptionList.length = this._allPropsFinalList.length = this._toDataIndices.length = 0;\n  };\n\n  return MorphPreparation;\n}();\n\nfunction copyPropsWhenDivided(srcPath, tarPath, willClone) {\n  tarPath.style = willClone ? clone(srcPath.style) : srcPath.style;\n  tarPath.zlevel = srcPath.zlevel;\n  tarPath.z = srcPath.z;\n  tarPath.z2 = srcPath.z2;\n}\n\nexport function install(registers) {\n  registers.registerChartView(CustomSeriesView);\n  registers.registerSeriesModel(CustomSeriesModel);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport * as axisPointerModelHelper from './modelHelper';\nimport * as eventTool from 'zrender/lib/core/event';\nimport * as throttleUtil from '../../util/throttle';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\nvar clone = zrUtil.clone;\nvar bind = zrUtil.bind;\n\nvar BaseAxisPointer = function () {\n  function BaseAxisPointer() {\n    this._dragging = false;\n    this.animationThreshold = 15;\n  }\n\n  BaseAxisPointer.prototype.render = function (axisModel, axisPointerModel, api, forceRender) {\n    var value = axisPointerModel.get('value');\n    var status = axisPointerModel.get('status');\n    this._axisModel = axisModel;\n    this._axisPointerModel = axisPointerModel;\n    this._api = api;\n\n    if (!forceRender && this._lastValue === value && this._lastStatus === status) {\n      return;\n    }\n\n    this._lastValue = value;\n    this._lastStatus = status;\n    var group = this._group;\n    var handle = this._handle;\n\n    if (!status || status === 'hide') {\n      group && group.hide();\n      handle && handle.hide();\n      return;\n    }\n\n    group && group.show();\n    handle && handle.show();\n    var elOption = {};\n    this.makeElOption(elOption, value, axisModel, axisPointerModel, api);\n    var graphicKey = elOption.graphicKey;\n\n    if (graphicKey !== this._lastGraphicKey) {\n      this.clear(api);\n    }\n\n    this._lastGraphicKey = graphicKey;\n    var moveAnimation = this._moveAnimation = this.determineAnimation(axisModel, axisPointerModel);\n\n    if (!group) {\n      group = this._group = new graphic.Group();\n      this.createPointerEl(group, elOption, axisModel, axisPointerModel);\n      this.createLabelEl(group, elOption, axisModel, axisPointerModel);\n      api.getZr().add(group);\n    } else {\n      var doUpdateProps = zrUtil.curry(updateProps, axisPointerModel, moveAnimation);\n      this.updatePointerEl(group, elOption, doUpdateProps);\n      this.updateLabelEl(group, elOption, doUpdateProps, axisPointerModel);\n    }\n\n    updateMandatoryProps(group, axisPointerModel, true);\n\n    this._renderHandle(value);\n  };\n\n  BaseAxisPointer.prototype.remove = function (api) {\n    this.clear(api);\n  };\n\n  BaseAxisPointer.prototype.dispose = function (api) {\n    this.clear(api);\n  };\n\n  BaseAxisPointer.prototype.determineAnimation = function (axisModel, axisPointerModel) {\n    var animation = axisPointerModel.get('animation');\n    var axis = axisModel.axis;\n    var isCategoryAxis = axis.type === 'category';\n    var useSnap = axisPointerModel.get('snap');\n\n    if (!useSnap && !isCategoryAxis) {\n      return false;\n    }\n\n    if (animation === 'auto' || animation == null) {\n      var animationThreshold = this.animationThreshold;\n\n      if (isCategoryAxis && axis.getBandWidth() > animationThreshold) {\n        return true;\n      }\n\n      if (useSnap) {\n        var seriesDataCount = axisPointerModelHelper.getAxisInfo(axisModel).seriesDataCount;\n        var axisExtent = axis.getExtent();\n        return Math.abs(axisExtent[0] - axisExtent[1]) / seriesDataCount > animationThreshold;\n      }\n\n      return false;\n    }\n\n    return animation === true;\n  };\n\n  BaseAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {};\n\n  BaseAxisPointer.prototype.createPointerEl = function (group, elOption, axisModel, axisPointerModel) {\n    var pointerOption = elOption.pointer;\n\n    if (pointerOption) {\n      var pointerEl = inner(group).pointerEl = new graphic[pointerOption.type](clone(elOption.pointer));\n      group.add(pointerEl);\n    }\n  };\n\n  BaseAxisPointer.prototype.createLabelEl = function (group, elOption, axisModel, axisPointerModel) {\n    if (elOption.label) {\n      var labelEl = inner(group).labelEl = new graphic.Text(clone(elOption.label));\n      group.add(labelEl);\n      updateLabelShowHide(labelEl, axisPointerModel);\n    }\n  };\n\n  BaseAxisPointer.prototype.updatePointerEl = function (group, elOption, updateProps) {\n    var pointerEl = inner(group).pointerEl;\n\n    if (pointerEl && elOption.pointer) {\n      pointerEl.setStyle(elOption.pointer.style);\n      updateProps(pointerEl, {\n        shape: elOption.pointer.shape\n      });\n    }\n  };\n\n  BaseAxisPointer.prototype.updateLabelEl = function (group, elOption, updateProps, axisPointerModel) {\n    var labelEl = inner(group).labelEl;\n\n    if (labelEl) {\n      labelEl.setStyle(elOption.label.style);\n      updateProps(labelEl, {\n        x: elOption.label.x,\n        y: elOption.label.y\n      });\n      updateLabelShowHide(labelEl, axisPointerModel);\n    }\n  };\n\n  BaseAxisPointer.prototype._renderHandle = function (value) {\n    if (this._dragging || !this.updateHandleTransform) {\n      return;\n    }\n\n    var axisPointerModel = this._axisPointerModel;\n\n    var zr = this._api.getZr();\n\n    var handle = this._handle;\n    var handleModel = axisPointerModel.getModel('handle');\n    var status = axisPointerModel.get('status');\n\n    if (!handleModel.get('show') || !status || status === 'hide') {\n      handle && zr.remove(handle);\n      this._handle = null;\n      return;\n    }\n\n    var isInit;\n\n    if (!this._handle) {\n      isInit = true;\n      handle = this._handle = graphic.createIcon(handleModel.get('icon'), {\n        cursor: 'move',\n        draggable: true,\n        onmousemove: function (e) {\n          eventTool.stop(e.event);\n        },\n        onmousedown: bind(this._onHandleDragMove, this, 0, 0),\n        drift: bind(this._onHandleDragMove, this),\n        ondragend: bind(this._onHandleDragEnd, this)\n      });\n      zr.add(handle);\n    }\n\n    updateMandatoryProps(handle, axisPointerModel, false);\n    handle.setStyle(handleModel.getItemStyle(null, ['color', 'borderColor', 'borderWidth', 'opacity', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY']));\n    var handleSize = handleModel.get('size');\n\n    if (!zrUtil.isArray(handleSize)) {\n      handleSize = [handleSize, handleSize];\n    }\n\n    handle.scaleX = handleSize[0] / 2;\n    handle.scaleY = handleSize[1] / 2;\n    throttleUtil.createOrUpdate(this, '_doDispatchAxisPointer', handleModel.get('throttle') || 0, 'fixRate');\n\n    this._moveHandleToValue(value, isInit);\n  };\n\n  BaseAxisPointer.prototype._moveHandleToValue = function (value, isInit) {\n    updateProps(this._axisPointerModel, !isInit && this._moveAnimation, this._handle, getHandleTransProps(this.getHandleTransform(value, this._axisModel, this._axisPointerModel)));\n  };\n\n  BaseAxisPointer.prototype._onHandleDragMove = function (dx, dy) {\n    var handle = this._handle;\n\n    if (!handle) {\n      return;\n    }\n\n    this._dragging = true;\n    var trans = this.updateHandleTransform(getHandleTransProps(handle), [dx, dy], this._axisModel, this._axisPointerModel);\n    this._payloadInfo = trans;\n    handle.stopAnimation();\n    handle.attr(getHandleTransProps(trans));\n    inner(handle).lastProp = null;\n\n    this._doDispatchAxisPointer();\n  };\n\n  BaseAxisPointer.prototype._doDispatchAxisPointer = function () {\n    var handle = this._handle;\n\n    if (!handle) {\n      return;\n    }\n\n    var payloadInfo = this._payloadInfo;\n    var axisModel = this._axisModel;\n\n    this._api.dispatchAction({\n      type: 'updateAxisPointer',\n      x: payloadInfo.cursorPoint[0],\n      y: payloadInfo.cursorPoint[1],\n      tooltipOption: payloadInfo.tooltipOption,\n      axesInfo: [{\n        axisDim: axisModel.axis.dim,\n        axisIndex: axisModel.componentIndex\n      }]\n    });\n  };\n\n  BaseAxisPointer.prototype._onHandleDragEnd = function () {\n    this._dragging = false;\n    var handle = this._handle;\n\n    if (!handle) {\n      return;\n    }\n\n    var value = this._axisPointerModel.get('value');\n\n    this._moveHandleToValue(value);\n\n    this._api.dispatchAction({\n      type: 'hideTip'\n    });\n  };\n\n  BaseAxisPointer.prototype.clear = function (api) {\n    this._lastValue = null;\n    this._lastStatus = null;\n    var zr = api.getZr();\n    var group = this._group;\n    var handle = this._handle;\n\n    if (zr && group) {\n      this._lastGraphicKey = null;\n      group && zr.remove(group);\n      handle && zr.remove(handle);\n      this._group = null;\n      this._handle = null;\n      this._payloadInfo = null;\n    }\n  };\n\n  BaseAxisPointer.prototype.doClear = function () {};\n\n  BaseAxisPointer.prototype.buildLabel = function (xy, wh, xDimIndex) {\n    xDimIndex = xDimIndex || 0;\n    return {\n      x: xy[xDimIndex],\n      y: xy[1 - xDimIndex],\n      width: wh[xDimIndex],\n      height: wh[1 - xDimIndex]\n    };\n  };\n\n  return BaseAxisPointer;\n}();\n\nfunction updateProps(animationModel, moveAnimation, el, props) {\n  if (!propsEqual(inner(el).lastProp, props)) {\n    inner(el).lastProp = props;\n    moveAnimation ? graphic.updateProps(el, props, animationModel) : (el.stopAnimation(), el.attr(props));\n  }\n}\n\nfunction propsEqual(lastProps, newProps) {\n  if (zrUtil.isObject(lastProps) && zrUtil.isObject(newProps)) {\n    var equals_1 = true;\n    zrUtil.each(newProps, function (item, key) {\n      equals_1 = equals_1 && propsEqual(lastProps[key], item);\n    });\n    return !!equals_1;\n  } else {\n    return lastProps === newProps;\n  }\n}\n\nfunction updateLabelShowHide(labelEl, axisPointerModel) {\n  labelEl[axisPointerModel.get(['label', 'show']) ? 'show' : 'hide']();\n}\n\nfunction getHandleTransProps(trans) {\n  return {\n    x: trans.x || 0,\n    y: trans.y || 0,\n    rotation: trans.rotation || 0\n  };\n}\n\nfunction updateMandatoryProps(group, axisPointerModel, silent) {\n  var z = axisPointerModel.get('z');\n  var zlevel = axisPointerModel.get('zlevel');\n  group && group.traverse(function (el) {\n    if (el.type !== 'group') {\n      z != null && (el.z = z);\n      zlevel != null && (el.zlevel = zlevel);\n      el.silent = silent;\n    }\n  });\n}\n\nexport default BaseAxisPointer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport * as textContain from 'zrender/lib/contain/text';\nimport * as formatUtil from '../../util/format';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport * as axisHelper from '../../coord/axisHelper';\nimport AxisBuilder from '../axis/AxisBuilder';\nimport { createTextStyle } from '../../label/labelStyle';\nexport function buildElStyle(axisPointerModel) {\n  var axisPointerType = axisPointerModel.get('type');\n  var styleModel = axisPointerModel.getModel(axisPointerType + 'Style');\n  var style;\n\n  if (axisPointerType === 'line') {\n    style = styleModel.getLineStyle();\n    style.fill = null;\n  } else if (axisPointerType === 'shadow') {\n    style = styleModel.getAreaStyle();\n    style.stroke = null;\n  }\n\n  return style;\n}\nexport function buildLabelElOption(elOption, axisModel, axisPointerModel, api, labelPos) {\n  var value = axisPointerModel.get('value');\n  var text = getValueLabel(value, axisModel.axis, axisModel.ecModel, axisPointerModel.get('seriesDataIndices'), {\n    precision: axisPointerModel.get(['label', 'precision']),\n    formatter: axisPointerModel.get(['label', 'formatter'])\n  });\n  var labelModel = axisPointerModel.getModel('label');\n  var paddings = formatUtil.normalizeCssArray(labelModel.get('padding') || 0);\n  var font = labelModel.getFont();\n  var textRect = textContain.getBoundingRect(text, font);\n  var position = labelPos.position;\n  var width = textRect.width + paddings[1] + paddings[3];\n  var height = textRect.height + paddings[0] + paddings[2];\n  var align = labelPos.align;\n  align === 'right' && (position[0] -= width);\n  align === 'center' && (position[0] -= width / 2);\n  var verticalAlign = labelPos.verticalAlign;\n  verticalAlign === 'bottom' && (position[1] -= height);\n  verticalAlign === 'middle' && (position[1] -= height / 2);\n  confineInContainer(position, width, height, api);\n  var bgColor = labelModel.get('backgroundColor');\n\n  if (!bgColor || bgColor === 'auto') {\n    bgColor = axisModel.get(['axisLine', 'lineStyle', 'color']);\n  }\n\n  elOption.label = {\n    x: position[0],\n    y: position[1],\n    style: createTextStyle(labelModel, {\n      text: text,\n      font: font,\n      fill: labelModel.getTextColor(),\n      padding: paddings,\n      backgroundColor: bgColor\n    }),\n    z2: 10\n  };\n}\n\nfunction confineInContainer(position, width, height, api) {\n  var viewWidth = api.getWidth();\n  var viewHeight = api.getHeight();\n  position[0] = Math.min(position[0] + width, viewWidth) - width;\n  position[1] = Math.min(position[1] + height, viewHeight) - height;\n  position[0] = Math.max(position[0], 0);\n  position[1] = Math.max(position[1], 0);\n}\n\nexport function getValueLabel(value, axis, ecModel, seriesDataIndices, opt) {\n  value = axis.scale.parse(value);\n  var text = axis.scale.getLabel({\n    value: value\n  }, {\n    precision: opt.precision\n  });\n  var formatter = opt.formatter;\n\n  if (formatter) {\n    var params_1 = {\n      value: axisHelper.getAxisRawValue(axis, {\n        value: value\n      }),\n      axisDimension: axis.dim,\n      axisIndex: axis.index,\n      seriesData: []\n    };\n    zrUtil.each(seriesDataIndices, function (idxItem) {\n      var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\n      var dataIndex = idxItem.dataIndexInside;\n      var dataParams = series && series.getDataParams(dataIndex);\n      dataParams && params_1.seriesData.push(dataParams);\n    });\n\n    if (zrUtil.isString(formatter)) {\n      text = formatter.replace('{value}', text);\n    } else if (zrUtil.isFunction(formatter)) {\n      text = formatter(params_1);\n    }\n  }\n\n  return text;\n}\nexport function getTransformedPosition(axis, value, layoutInfo) {\n  var transform = matrix.create();\n  matrix.rotate(transform, transform, layoutInfo.rotation);\n  matrix.translate(transform, transform, layoutInfo.position);\n  return graphic.applyTransform([axis.dataToCoord(value), (layoutInfo.labelOffset || 0) + (layoutInfo.labelDirection || 1) * (layoutInfo.labelMargin || 0)], transform);\n}\nexport function buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api) {\n  var textLayout = AxisBuilder.innerTextLayout(layoutInfo.rotation, 0, layoutInfo.labelDirection);\n  layoutInfo.labelMargin = axisPointerModel.get(['label', 'margin']);\n  buildLabelElOption(elOption, axisModel, axisPointerModel, api, {\n    position: getTransformedPosition(axisModel.axis, value, layoutInfo),\n    align: textLayout.textAlign,\n    verticalAlign: textLayout.textVerticalAlign\n  });\n}\nexport function makeLineShape(p1, p2, xDimIndex) {\n  xDimIndex = xDimIndex || 0;\n  return {\n    x1: p1[xDimIndex],\n    y1: p1[1 - xDimIndex],\n    x2: p2[xDimIndex],\n    y2: p2[1 - xDimIndex]\n  };\n}\nexport function makeRectShape(xy, wh, xDimIndex) {\n  xDimIndex = xDimIndex || 0;\n  return {\n    x: xy[xDimIndex],\n    y: xy[1 - xDimIndex],\n    width: wh[xDimIndex],\n    height: wh[1 - xDimIndex]\n  };\n}\nexport function makeSectorShape(cx, cy, r0, r, startAngle, endAngle) {\n  return {\n    cx: cx,\n    cy: cy,\n    r0: r0,\n    r: r,\n    startAngle: startAngle,\n    endAngle: endAngle,\n    clockwise: true\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BaseAxisPointer from './BaseAxisPointer';\nimport * as viewHelper from './viewHelper';\nimport * as cartesianAxisHelper from '../../coord/cartesian/cartesianAxisHelper';\n\nvar CartesianAxisPointer = function (_super) {\n  __extends(CartesianAxisPointer, _super);\n\n  function CartesianAxisPointer() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  CartesianAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\n    var axis = axisModel.axis;\n    var grid = axis.grid;\n    var axisPointerType = axisPointerModel.get('type');\n    var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent();\n    var pixelValue = axis.toGlobalCoord(axis.dataToCoord(value, true));\n\n    if (axisPointerType && axisPointerType !== 'none') {\n      var elStyle = viewHelper.buildElStyle(axisPointerModel);\n      var pointerOption = pointerShapeBuilder[axisPointerType](axis, pixelValue, otherExtent);\n      pointerOption.style = elStyle;\n      elOption.graphicKey = pointerOption.type;\n      elOption.pointer = pointerOption;\n    }\n\n    var layoutInfo = cartesianAxisHelper.layout(grid.model, axisModel);\n    viewHelper.buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api);\n  };\n\n  CartesianAxisPointer.prototype.getHandleTransform = function (value, axisModel, axisPointerModel) {\n    var layoutInfo = cartesianAxisHelper.layout(axisModel.axis.grid.model, axisModel, {\n      labelInside: false\n    });\n    layoutInfo.labelMargin = axisPointerModel.get(['handle', 'margin']);\n    var pos = viewHelper.getTransformedPosition(axisModel.axis, value, layoutInfo);\n    return {\n      x: pos[0],\n      y: pos[1],\n      rotation: layoutInfo.rotation + (layoutInfo.labelDirection < 0 ? Math.PI : 0)\n    };\n  };\n\n  CartesianAxisPointer.prototype.updateHandleTransform = function (transform, delta, axisModel, axisPointerModel) {\n    var axis = axisModel.axis;\n    var grid = axis.grid;\n    var axisExtent = axis.getGlobalExtent(true);\n    var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent();\n    var dimIndex = axis.dim === 'x' ? 0 : 1;\n    var currPosition = [transform.x, transform.y];\n    currPosition[dimIndex] += delta[dimIndex];\n    currPosition[dimIndex] = Math.min(axisExtent[1], currPosition[dimIndex]);\n    currPosition[dimIndex] = Math.max(axisExtent[0], currPosition[dimIndex]);\n    var cursorOtherValue = (otherExtent[1] + otherExtent[0]) / 2;\n    var cursorPoint = [cursorOtherValue, cursorOtherValue];\n    cursorPoint[dimIndex] = currPosition[dimIndex];\n    var tooltipOptions = [{\n      verticalAlign: 'middle'\n    }, {\n      align: 'center'\n    }];\n    return {\n      x: currPosition[0],\n      y: currPosition[1],\n      rotation: transform.rotation,\n      cursorPoint: cursorPoint,\n      tooltipOption: tooltipOptions[dimIndex]\n    };\n  };\n\n  return CartesianAxisPointer;\n}(BaseAxisPointer);\n\nfunction getCartesian(grid, axis) {\n  var opt = {};\n  opt[axis.dim + 'AxisIndex'] = axis.index;\n  return grid.getCartesian(opt);\n}\n\nvar pointerShapeBuilder = {\n  line: function (axis, pixelValue, otherExtent) {\n    var targetShape = viewHelper.makeLineShape([pixelValue, otherExtent[0]], [pixelValue, otherExtent[1]], getAxisDimIndex(axis));\n    return {\n      type: 'Line',\n      subPixelOptimize: true,\n      shape: targetShape\n    };\n  },\n  shadow: function (axis, pixelValue, otherExtent) {\n    var bandWidth = Math.max(1, axis.getBandWidth());\n    var span = otherExtent[1] - otherExtent[0];\n    return {\n      type: 'Rect',\n      shape: viewHelper.makeRectShape([pixelValue - bandWidth / 2, otherExtent[0]], [bandWidth, span], getAxisDimIndex(axis))\n    };\n  }\n};\n\nfunction getAxisDimIndex(axis) {\n  return axis.dim === 'x' ? 0 : 1;\n}\n\nexport default CartesianAxisPointer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\n\nvar AxisPointerModel = function (_super) {\n  __extends(AxisPointerModel, _super);\n\n  function AxisPointerModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = AxisPointerModel.type;\n    return _this;\n  }\n\n  AxisPointerModel.type = 'axisPointer';\n  AxisPointerModel.defaultOption = {\n    show: 'auto',\n    zlevel: 0,\n    z: 50,\n    type: 'line',\n    snap: false,\n    triggerTooltip: true,\n    value: null,\n    status: null,\n    link: [],\n    animation: null,\n    animationDurationUpdate: 200,\n    lineStyle: {\n      color: '#B9BEC9',\n      width: 1,\n      type: 'dashed'\n    },\n    shadowStyle: {\n      color: 'rgba(210,219,238,0.2)'\n    },\n    label: {\n      show: true,\n      formatter: null,\n      precision: 'auto',\n      margin: 3,\n      color: '#fff',\n      padding: [5, 7, 5, 7],\n      backgroundColor: 'auto',\n      borderColor: null,\n      borderWidth: 0,\n      borderRadius: 3\n    },\n    handle: {\n      show: false,\n      icon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z',\n      size: 45,\n      margin: 50,\n      color: '#333',\n      shadowBlur: 3,\n      shadowColor: '#aaa',\n      shadowOffsetX: 0,\n      shadowOffsetY: 2,\n      throttle: 40\n    }\n  };\n  return AxisPointerModel;\n}(ComponentModel);\n\nexport default AxisPointerModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\nvar each = zrUtil.each;\nexport function register(key, api, handler) {\n  if (env.node) {\n    return;\n  }\n\n  var zr = api.getZr();\n  inner(zr).records || (inner(zr).records = {});\n  initGlobalListeners(zr, api);\n  var record = inner(zr).records[key] || (inner(zr).records[key] = {});\n  record.handler = handler;\n}\n\nfunction initGlobalListeners(zr, api) {\n  if (inner(zr).initialized) {\n    return;\n  }\n\n  inner(zr).initialized = true;\n  useHandler('click', zrUtil.curry(doEnter, 'click'));\n  useHandler('mousemove', zrUtil.curry(doEnter, 'mousemove'));\n  useHandler('globalout', onLeave);\n\n  function useHandler(eventType, cb) {\n    zr.on(eventType, function (e) {\n      var dis = makeDispatchAction(api);\n      each(inner(zr).records, function (record) {\n        record && cb(record, e, dis.dispatchAction);\n      });\n      dispatchTooltipFinally(dis.pendings, api);\n    });\n  }\n}\n\nfunction dispatchTooltipFinally(pendings, api) {\n  var showLen = pendings.showTip.length;\n  var hideLen = pendings.hideTip.length;\n  var actuallyPayload;\n\n  if (showLen) {\n    actuallyPayload = pendings.showTip[showLen - 1];\n  } else if (hideLen) {\n    actuallyPayload = pendings.hideTip[hideLen - 1];\n  }\n\n  if (actuallyPayload) {\n    actuallyPayload.dispatchAction = null;\n    api.dispatchAction(actuallyPayload);\n  }\n}\n\nfunction onLeave(record, e, dispatchAction) {\n  record.handler('leave', null, dispatchAction);\n}\n\nfunction doEnter(currTrigger, record, e, dispatchAction) {\n  record.handler(currTrigger, e, dispatchAction);\n}\n\nfunction makeDispatchAction(api) {\n  var pendings = {\n    showTip: [],\n    hideTip: []\n  };\n\n  var dispatchAction = function (payload) {\n    var pendingList = pendings[payload.type];\n\n    if (pendingList) {\n      pendingList.push(payload);\n    } else {\n      payload.dispatchAction = dispatchAction;\n      api.dispatchAction(payload);\n    }\n  };\n\n  return {\n    dispatchAction: dispatchAction,\n    pendings: pendings\n  };\n}\n\nexport function unregister(key, api) {\n  if (env.node) {\n    return;\n  }\n\n  var zr = api.getZr();\n  var record = (inner(zr).records || {})[key];\n\n  if (record) {\n    inner(zr).records[key] = null;\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as globalListener from './globalListener';\nimport ComponentView from '../../view/Component';\n\nvar AxisPointerView = function (_super) {\n  __extends(AxisPointerView, _super);\n\n  function AxisPointerView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = AxisPointerView.type;\n    return _this;\n  }\n\n  AxisPointerView.prototype.render = function (globalAxisPointerModel, ecModel, api) {\n    var globalTooltipModel = ecModel.getComponent('tooltip');\n    var triggerOn = globalAxisPointerModel.get('triggerOn') || globalTooltipModel && globalTooltipModel.get('triggerOn') || 'mousemove|click';\n    globalListener.register('axisPointer', api, function (currTrigger, e, dispatchAction) {\n      if (triggerOn !== 'none' && (currTrigger === 'leave' || triggerOn.indexOf(currTrigger) >= 0)) {\n        dispatchAction({\n          type: 'updateAxisPointer',\n          currTrigger: currTrigger,\n          x: e && e.offsetX,\n          y: e && e.offsetY\n        });\n      }\n    });\n  };\n\n  AxisPointerView.prototype.remove = function (ecModel, api) {\n    globalListener.unregister('axisPointer', api);\n  };\n\n  AxisPointerView.prototype.dispose = function (ecModel, api) {\n    globalListener.unregister('axisPointer', api);\n  };\n\n  AxisPointerView.type = 'axisPointer';\n  return AxisPointerView;\n}(ComponentView);\n\nexport default AxisPointerView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nexport default function findPointFromSeries(finder, ecModel) {\n  var point = [];\n  var seriesIndex = finder.seriesIndex;\n  var seriesModel;\n\n  if (seriesIndex == null || !(seriesModel = ecModel.getSeriesByIndex(seriesIndex))) {\n    return {\n      point: []\n    };\n  }\n\n  var data = seriesModel.getData();\n  var dataIndex = modelUtil.queryDataIndex(data, finder);\n\n  if (dataIndex == null || dataIndex < 0 || zrUtil.isArray(dataIndex)) {\n    return {\n      point: []\n    };\n  }\n\n  var el = data.getItemGraphicEl(dataIndex);\n  var coordSys = seriesModel.coordinateSystem;\n\n  if (seriesModel.getTooltipPosition) {\n    point = seriesModel.getTooltipPosition(dataIndex) || [];\n  } else if (coordSys && coordSys.dataToPoint) {\n    if (finder.isStacked) {\n      var baseAxis = coordSys.getBaseAxis();\n      var valueAxis = coordSys.getOtherAxis(baseAxis);\n      var valueAxisDim = valueAxis.dim;\n      var baseAxisDim = baseAxis.dim;\n      var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\n      var baseDim = data.mapDimension(baseAxisDim);\n      var stackedData = [];\n      stackedData[baseDataOffset] = data.get(baseDim, dataIndex);\n      stackedData[1 - baseDataOffset] = data.get(data.getCalculationInfo('stackResultDimension'), dataIndex);\n      point = coordSys.dataToPoint(stackedData) || [];\n    } else {\n      point = coordSys.dataToPoint(data.getValues(zrUtil.map(coordSys.dimensions, function (dim) {\n        return data.mapDimension(dim);\n      }), dataIndex)) || [];\n    }\n  } else if (el) {\n    var rect = el.getBoundingRect().clone();\n    rect.applyTransform(el.transform);\n    point = [rect.x + rect.width / 2, rect.y + rect.height / 2];\n  }\n\n  return {\n    point: point,\n    el: el\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner } from '../../util/model';\nimport * as modelHelper from './modelHelper';\nimport findPointFromSeries from './findPointFromSeries';\nimport { each, curry, bind, extend } from 'zrender/lib/core/util';\nvar inner = makeInner();\nexport default function axisTrigger(payload, ecModel, api) {\n  var currTrigger = payload.currTrigger;\n  var point = [payload.x, payload.y];\n  var finder = payload;\n  var dispatchAction = payload.dispatchAction || bind(api.dispatchAction, api);\n  var coordSysAxesInfo = ecModel.getComponent('axisPointer').coordSysAxesInfo;\n\n  if (!coordSysAxesInfo) {\n    return;\n  }\n\n  if (illegalPoint(point)) {\n    point = findPointFromSeries({\n      seriesIndex: finder.seriesIndex,\n      dataIndex: finder.dataIndex\n    }, ecModel).point;\n  }\n\n  var isIllegalPoint = illegalPoint(point);\n  var inputAxesInfo = finder.axesInfo;\n  var axesInfo = coordSysAxesInfo.axesInfo;\n  var shouldHide = currTrigger === 'leave' || illegalPoint(point);\n  var outputPayload = {};\n  var showValueMap = {};\n  var dataByCoordSys = {\n    list: [],\n    map: {}\n  };\n  var updaters = {\n    showPointer: curry(showPointer, showValueMap),\n    showTooltip: curry(showTooltip, dataByCoordSys)\n  };\n  each(coordSysAxesInfo.coordSysMap, function (coordSys, coordSysKey) {\n    var coordSysContainsPoint = isIllegalPoint || coordSys.containPoint(point);\n    each(coordSysAxesInfo.coordSysAxesInfo[coordSysKey], function (axisInfo, key) {\n      var axis = axisInfo.axis;\n      var inputAxisInfo = findInputAxisInfo(inputAxesInfo, axisInfo);\n\n      if (!shouldHide && coordSysContainsPoint && (!inputAxesInfo || inputAxisInfo)) {\n        var val = inputAxisInfo && inputAxisInfo.value;\n\n        if (val == null && !isIllegalPoint) {\n          val = axis.pointToData(point);\n        }\n\n        val != null && processOnAxis(axisInfo, val, updaters, false, outputPayload);\n      }\n    });\n  });\n  var linkTriggers = {};\n  each(axesInfo, function (tarAxisInfo, tarKey) {\n    var linkGroup = tarAxisInfo.linkGroup;\n\n    if (linkGroup && !showValueMap[tarKey]) {\n      each(linkGroup.axesInfo, function (srcAxisInfo, srcKey) {\n        var srcValItem = showValueMap[srcKey];\n\n        if (srcAxisInfo !== tarAxisInfo && srcValItem) {\n          var val = srcValItem.value;\n          linkGroup.mapper && (val = tarAxisInfo.axis.scale.parse(linkGroup.mapper(val, makeMapperParam(srcAxisInfo), makeMapperParam(tarAxisInfo))));\n          linkTriggers[tarAxisInfo.key] = val;\n        }\n      });\n    }\n  });\n  each(linkTriggers, function (val, tarKey) {\n    processOnAxis(axesInfo[tarKey], val, updaters, true, outputPayload);\n  });\n  updateModelActually(showValueMap, axesInfo, outputPayload);\n  dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction);\n  dispatchHighDownActually(axesInfo, dispatchAction, api);\n  return outputPayload;\n}\n\nfunction processOnAxis(axisInfo, newValue, updaters, noSnap, outputFinder) {\n  var axis = axisInfo.axis;\n\n  if (axis.scale.isBlank() || !axis.containData(newValue)) {\n    return;\n  }\n\n  if (!axisInfo.involveSeries) {\n    updaters.showPointer(axisInfo, newValue);\n    return;\n  }\n\n  var payloadInfo = buildPayloadsBySeries(newValue, axisInfo);\n  var payloadBatch = payloadInfo.payloadBatch;\n  var snapToValue = payloadInfo.snapToValue;\n\n  if (payloadBatch[0] && outputFinder.seriesIndex == null) {\n    extend(outputFinder, payloadBatch[0]);\n  }\n\n  if (!noSnap && axisInfo.snap) {\n    if (axis.containData(snapToValue) && snapToValue != null) {\n      newValue = snapToValue;\n    }\n  }\n\n  updaters.showPointer(axisInfo, newValue, payloadBatch);\n  updaters.showTooltip(axisInfo, payloadInfo, snapToValue);\n}\n\nfunction buildPayloadsBySeries(value, axisInfo) {\n  var axis = axisInfo.axis;\n  var dim = axis.dim;\n  var snapToValue = value;\n  var payloadBatch = [];\n  var minDist = Number.MAX_VALUE;\n  var minDiff = -1;\n  each(axisInfo.seriesModels, function (series, idx) {\n    var dataDim = series.getData().mapDimensionsAll(dim);\n    var seriesNestestValue;\n    var dataIndices;\n\n    if (series.getAxisTooltipData) {\n      var result = series.getAxisTooltipData(dataDim, value, axis);\n      dataIndices = result.dataIndices;\n      seriesNestestValue = result.nestestValue;\n    } else {\n      dataIndices = series.getData().indicesOfNearest(dataDim[0], value, axis.type === 'category' ? 0.5 : null);\n\n      if (!dataIndices.length) {\n        return;\n      }\n\n      seriesNestestValue = series.getData().get(dataDim[0], dataIndices[0]);\n    }\n\n    if (seriesNestestValue == null || !isFinite(seriesNestestValue)) {\n      return;\n    }\n\n    var diff = value - seriesNestestValue;\n    var dist = Math.abs(diff);\n\n    if (dist <= minDist) {\n      if (dist < minDist || diff >= 0 && minDiff < 0) {\n        minDist = dist;\n        minDiff = diff;\n        snapToValue = seriesNestestValue;\n        payloadBatch.length = 0;\n      }\n\n      each(dataIndices, function (dataIndex) {\n        payloadBatch.push({\n          seriesIndex: series.seriesIndex,\n          dataIndexInside: dataIndex,\n          dataIndex: series.getData().getRawIndex(dataIndex)\n        });\n      });\n    }\n  });\n  return {\n    payloadBatch: payloadBatch,\n    snapToValue: snapToValue\n  };\n}\n\nfunction showPointer(showValueMap, axisInfo, value, payloadBatch) {\n  showValueMap[axisInfo.key] = {\n    value: value,\n    payloadBatch: payloadBatch\n  };\n}\n\nfunction showTooltip(dataByCoordSys, axisInfo, payloadInfo, value) {\n  var payloadBatch = payloadInfo.payloadBatch;\n  var axis = axisInfo.axis;\n  var axisModel = axis.model;\n  var axisPointerModel = axisInfo.axisPointerModel;\n\n  if (!axisInfo.triggerTooltip || !payloadBatch.length) {\n    return;\n  }\n\n  var coordSysModel = axisInfo.coordSys.model;\n  var coordSysKey = modelHelper.makeKey(coordSysModel);\n  var coordSysItem = dataByCoordSys.map[coordSysKey];\n\n  if (!coordSysItem) {\n    coordSysItem = dataByCoordSys.map[coordSysKey] = {\n      coordSysId: coordSysModel.id,\n      coordSysIndex: coordSysModel.componentIndex,\n      coordSysType: coordSysModel.type,\n      coordSysMainType: coordSysModel.mainType,\n      dataByAxis: []\n    };\n    dataByCoordSys.list.push(coordSysItem);\n  }\n\n  coordSysItem.dataByAxis.push({\n    axisDim: axis.dim,\n    axisIndex: axisModel.componentIndex,\n    axisType: axisModel.type,\n    axisId: axisModel.id,\n    value: value,\n    valueLabelOpt: {\n      precision: axisPointerModel.get(['label', 'precision']),\n      formatter: axisPointerModel.get(['label', 'formatter'])\n    },\n    seriesDataIndices: payloadBatch.slice()\n  });\n}\n\nfunction updateModelActually(showValueMap, axesInfo, outputPayload) {\n  var outputAxesInfo = outputPayload.axesInfo = [];\n  each(axesInfo, function (axisInfo, key) {\n    var option = axisInfo.axisPointerModel.option;\n    var valItem = showValueMap[key];\n\n    if (valItem) {\n      !axisInfo.useHandle && (option.status = 'show');\n      option.value = valItem.value;\n      option.seriesDataIndices = (valItem.payloadBatch || []).slice();\n    } else {\n      !axisInfo.useHandle && (option.status = 'hide');\n    }\n\n    option.status === 'show' && outputAxesInfo.push({\n      axisDim: axisInfo.axis.dim,\n      axisIndex: axisInfo.axis.model.componentIndex,\n      value: option.value\n    });\n  });\n}\n\nfunction dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction) {\n  if (illegalPoint(point) || !dataByCoordSys.list.length) {\n    dispatchAction({\n      type: 'hideTip'\n    });\n    return;\n  }\n\n  var sampleItem = ((dataByCoordSys.list[0].dataByAxis[0] || {}).seriesDataIndices || [])[0] || {};\n  dispatchAction({\n    type: 'showTip',\n    escapeConnect: true,\n    x: point[0],\n    y: point[1],\n    tooltipOption: payload.tooltipOption,\n    position: payload.position,\n    dataIndexInside: sampleItem.dataIndexInside,\n    dataIndex: sampleItem.dataIndex,\n    seriesIndex: sampleItem.seriesIndex,\n    dataByCoordSys: dataByCoordSys.list\n  });\n}\n\nfunction dispatchHighDownActually(axesInfo, dispatchAction, api) {\n  var zr = api.getZr();\n  var highDownKey = 'axisPointerLastHighlights';\n  var lastHighlights = inner(zr)[highDownKey] || {};\n  var newHighlights = inner(zr)[highDownKey] = {};\n  each(axesInfo, function (axisInfo, key) {\n    var option = axisInfo.axisPointerModel.option;\n    option.status === 'show' && each(option.seriesDataIndices, function (batchItem) {\n      var key = batchItem.seriesIndex + ' | ' + batchItem.dataIndex;\n      newHighlights[key] = batchItem;\n    });\n  });\n  var toHighlight = [];\n  var toDownplay = [];\n  each(lastHighlights, function (batchItem, key) {\n    !newHighlights[key] && toDownplay.push(batchItem);\n  });\n  each(newHighlights, function (batchItem, key) {\n    !lastHighlights[key] && toHighlight.push(batchItem);\n  });\n  toDownplay.length && api.dispatchAction({\n    type: 'downplay',\n    escapeConnect: true,\n    notBlur: true,\n    batch: toDownplay\n  });\n  toHighlight.length && api.dispatchAction({\n    type: 'highlight',\n    escapeConnect: true,\n    notBlur: true,\n    batch: toHighlight\n  });\n}\n\nfunction findInputAxisInfo(inputAxesInfo, axisInfo) {\n  for (var i = 0; i < (inputAxesInfo || []).length; i++) {\n    var inputAxisInfo = inputAxesInfo[i];\n\n    if (axisInfo.axis.dim === inputAxisInfo.axisDim && axisInfo.axis.model.componentIndex === inputAxisInfo.axisIndex) {\n      return inputAxisInfo;\n    }\n  }\n}\n\nfunction makeMapperParam(axisInfo) {\n  var axisModel = axisInfo.axis.model;\n  var item = {};\n  var dim = item.axisDim = axisInfo.axis.dim;\n  item.axisIndex = item[dim + 'AxisIndex'] = axisModel.componentIndex;\n  item.axisName = item[dim + 'AxisName'] = axisModel.name;\n  item.axisId = item[dim + 'AxisId'] = axisModel.id;\n  return item;\n}\n\nfunction illegalPoint(point) {\n  return !point || point[0] == null || isNaN(point[0]) || point[1] == null || isNaN(point[1]);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport AxisView from '../axis/AxisView';\nimport CartesianAxisPointer from './CartesianAxisPointer';\nimport AxisPointerModel from './AxisPointerModel';\nimport AxisPointerView from './AxisPointerView';\nimport { isArray } from 'zrender/lib/core/util';\nimport { collect } from './modelHelper';\nimport axisTrigger from './axisTrigger';\nexport function install(registers) {\n  AxisView.registerAxisPointerClass('CartesianAxisPointer', CartesianAxisPointer);\n  registers.registerComponentModel(AxisPointerModel);\n  registers.registerComponentView(AxisPointerView);\n  registers.registerPreprocessor(function (option) {\n    if (option) {\n      (!option.axisPointer || option.axisPointer.length === 0) && (option.axisPointer = {});\n      var link = option.axisPointer.link;\n\n      if (link && !isArray(link)) {\n        option.axisPointer.link = [link];\n      }\n    }\n  });\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, function (ecModel, api) {\n    ecModel.getComponent('axisPointer').coordSysAxesInfo = collect(ecModel, api);\n  });\n  registers.registerAction({\n    type: 'updateAxisPointer',\n    event: 'updateAxisPointer',\n    update: ':updateAxisPointer'\n  }, axisTrigger);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { install as installSimple } from './installSimple';\nimport { install as installAxisPointer } from '../axisPointer/install';\nimport { use } from '../../extension';\nexport function install(registers) {\n  use(installSimple);\n  use(installAxisPointer);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BaseAxisPointer from './BaseAxisPointer';\nimport * as graphic from '../../util/graphic';\nimport * as viewHelper from './viewHelper';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport AxisBuilder from '../axis/AxisBuilder';\n\nvar PolarAxisPointer = function (_super) {\n  __extends(PolarAxisPointer, _super);\n\n  function PolarAxisPointer() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  PolarAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\n    var axis = axisModel.axis;\n\n    if (axis.dim === 'angle') {\n      this.animationThreshold = Math.PI / 18;\n    }\n\n    var polar = axis.polar;\n    var otherAxis = polar.getOtherAxis(axis);\n    var otherExtent = otherAxis.getExtent();\n    var coordValue = axis.dataToCoord(value);\n    var axisPointerType = axisPointerModel.get('type');\n\n    if (axisPointerType && axisPointerType !== 'none') {\n      var elStyle = viewHelper.buildElStyle(axisPointerModel);\n      var pointerOption = pointerShapeBuilder[axisPointerType](axis, polar, coordValue, otherExtent);\n      pointerOption.style = elStyle;\n      elOption.graphicKey = pointerOption.type;\n      elOption.pointer = pointerOption;\n    }\n\n    var labelMargin = axisPointerModel.get(['label', 'margin']);\n    var labelPos = getLabelPosition(value, axisModel, axisPointerModel, polar, labelMargin);\n    viewHelper.buildLabelElOption(elOption, axisModel, axisPointerModel, api, labelPos);\n  };\n\n  return PolarAxisPointer;\n}(BaseAxisPointer);\n\n;\n\nfunction getLabelPosition(value, axisModel, axisPointerModel, polar, labelMargin) {\n  var axis = axisModel.axis;\n  var coord = axis.dataToCoord(value);\n  var axisAngle = polar.getAngleAxis().getExtent()[0];\n  axisAngle = axisAngle / 180 * Math.PI;\n  var radiusExtent = polar.getRadiusAxis().getExtent();\n  var position;\n  var align;\n  var verticalAlign;\n\n  if (axis.dim === 'radius') {\n    var transform = matrix.create();\n    matrix.rotate(transform, transform, axisAngle);\n    matrix.translate(transform, transform, [polar.cx, polar.cy]);\n    position = graphic.applyTransform([coord, -labelMargin], transform);\n    var labelRotation = axisModel.getModel('axisLabel').get('rotate') || 0;\n    var labelLayout = AxisBuilder.innerTextLayout(axisAngle, labelRotation * Math.PI / 180, -1);\n    align = labelLayout.textAlign;\n    verticalAlign = labelLayout.textVerticalAlign;\n  } else {\n    var r = radiusExtent[1];\n    position = polar.coordToPoint([r + labelMargin, coord]);\n    var cx = polar.cx;\n    var cy = polar.cy;\n    align = Math.abs(position[0] - cx) / r < 0.3 ? 'center' : position[0] > cx ? 'left' : 'right';\n    verticalAlign = Math.abs(position[1] - cy) / r < 0.3 ? 'middle' : position[1] > cy ? 'top' : 'bottom';\n  }\n\n  return {\n    position: position,\n    align: align,\n    verticalAlign: verticalAlign\n  };\n}\n\nvar pointerShapeBuilder = {\n  line: function (axis, polar, coordValue, otherExtent) {\n    return axis.dim === 'angle' ? {\n      type: 'Line',\n      shape: viewHelper.makeLineShape(polar.coordToPoint([otherExtent[0], coordValue]), polar.coordToPoint([otherExtent[1], coordValue]))\n    } : {\n      type: 'Circle',\n      shape: {\n        cx: polar.cx,\n        cy: polar.cy,\n        r: coordValue\n      }\n    };\n  },\n  shadow: function (axis, polar, coordValue, otherExtent) {\n    var bandWidth = Math.max(1, axis.getBandWidth());\n    var radian = Math.PI / 180;\n    return axis.dim === 'angle' ? {\n      type: 'Sector',\n      shape: viewHelper.makeSectorShape(polar.cx, polar.cy, otherExtent[0], otherExtent[1], (-coordValue - bandWidth / 2) * radian, (-coordValue + bandWidth / 2) * radian)\n    } : {\n      type: 'Sector',\n      shape: viewHelper.makeSectorShape(polar.cx, polar.cy, coordValue - bandWidth / 2, coordValue + bandWidth / 2, 0, Math.PI * 2)\n    };\n  }\n};\nexport default PolarAxisPointer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\n\nvar PolarModel = function (_super) {\n  __extends(PolarModel, _super);\n\n  function PolarModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = PolarModel.type;\n    return _this;\n  }\n\n  PolarModel.prototype.findAxisModel = function (axisType) {\n    var foundAxisModel;\n    var ecModel = this.ecModel;\n    ecModel.eachComponent(axisType, function (axisModel) {\n      if (axisModel.getCoordSysModel() === this) {\n        foundAxisModel = axisModel;\n      }\n    }, this);\n    return foundAxisModel;\n  };\n\n  PolarModel.type = 'polar';\n  PolarModel.dependencies = ['radiusAxis', 'angleAxis'];\n  PolarModel.defaultOption = {\n    zlevel: 0,\n    z: 0,\n    center: ['50%', '50%'],\n    radius: '80%'\n  };\n  return PolarModel;\n}(ComponentModel);\n\nexport default PolarModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin';\nimport { SINGLE_REFERRING } from '../../util/model';\n\nvar PolarAxisModel = function (_super) {\n  __extends(PolarAxisModel, _super);\n\n  function PolarAxisModel() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  PolarAxisModel.prototype.getCoordSysModel = function () {\n    return this.getReferringComponents('polar', SINGLE_REFERRING).models[0];\n  };\n\n  PolarAxisModel.type = 'polarAxis';\n  return PolarAxisModel;\n}(ComponentModel);\n\nzrUtil.mixin(PolarAxisModel, AxisModelCommonMixin);\nexport { PolarAxisModel };\n\nvar AngleAxisModel = function (_super) {\n  __extends(AngleAxisModel, _super);\n\n  function AngleAxisModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = AngleAxisModel.type;\n    return _this;\n  }\n\n  AngleAxisModel.type = 'angleAxis';\n  return AngleAxisModel;\n}(PolarAxisModel);\n\nexport { AngleAxisModel };\n\nvar RadiusAxisModel = function (_super) {\n  __extends(RadiusAxisModel, _super);\n\n  function RadiusAxisModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = RadiusAxisModel.type;\n    return _this;\n  }\n\n  RadiusAxisModel.type = 'radiusAxis';\n  return RadiusAxisModel;\n}(PolarAxisModel);\n\nexport { RadiusAxisModel };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis';\n\nvar RadiusAxis = function (_super) {\n  __extends(RadiusAxis, _super);\n\n  function RadiusAxis(scale, radiusExtent) {\n    return _super.call(this, 'radius', scale, radiusExtent) || this;\n  }\n\n  RadiusAxis.prototype.pointToData = function (point, clamp) {\n    return this.polar.pointToData(point, clamp)[this.dim === 'radius' ? 0 : 1];\n  };\n\n  return RadiusAxis;\n}(Axis);\n\nRadiusAxis.prototype.dataToRadius = Axis.prototype.dataToCoord;\nRadiusAxis.prototype.radiusToData = Axis.prototype.coordToData;\nexport default RadiusAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as textContain from 'zrender/lib/contain/text';\nimport Axis from '../Axis';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\n\nvar AngleAxis = function (_super) {\n  __extends(AngleAxis, _super);\n\n  function AngleAxis(scale, angleExtent) {\n    return _super.call(this, 'angle', scale, angleExtent || [0, 360]) || this;\n  }\n\n  AngleAxis.prototype.pointToData = function (point, clamp) {\n    return this.polar.pointToData(point, clamp)[this.dim === 'radius' ? 0 : 1];\n  };\n\n  AngleAxis.prototype.calculateCategoryInterval = function () {\n    var axis = this;\n    var labelModel = axis.getLabelModel();\n    var ordinalScale = axis.scale;\n    var ordinalExtent = ordinalScale.getExtent();\n    var tickCount = ordinalScale.count();\n\n    if (ordinalExtent[1] - ordinalExtent[0] < 1) {\n      return 0;\n    }\n\n    var tickValue = ordinalExtent[0];\n    var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue);\n    var unitH = Math.abs(unitSpan);\n    var rect = textContain.getBoundingRect(tickValue == null ? '' : tickValue + '', labelModel.getFont(), 'center', 'top');\n    var maxH = Math.max(rect.height, 7);\n    var dh = maxH / unitH;\n    isNaN(dh) && (dh = Infinity);\n    var interval = Math.max(0, Math.floor(dh));\n    var cache = inner(axis.model);\n    var lastAutoInterval = cache.lastAutoInterval;\n    var lastTickCount = cache.lastTickCount;\n\n    if (lastAutoInterval != null && lastTickCount != null && Math.abs(lastAutoInterval - interval) <= 1 && Math.abs(lastTickCount - tickCount) <= 1 && lastAutoInterval > interval) {\n      interval = lastAutoInterval;\n    } else {\n      cache.lastTickCount = tickCount;\n      cache.lastAutoInterval = interval;\n    }\n\n    return interval;\n  };\n\n  return AngleAxis;\n}(Axis);\n\nAngleAxis.prototype.dataToAngle = Axis.prototype.dataToCoord;\nAngleAxis.prototype.angleToData = Axis.prototype.coordToData;\nexport default AngleAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport RadiusAxis from './RadiusAxis';\nimport AngleAxis from './AngleAxis';\n\nvar Polar = function () {\n  function Polar(name) {\n    this.dimensions = ['radius', 'angle'];\n    this.type = 'polar';\n    this.cx = 0;\n    this.cy = 0;\n    this._radiusAxis = new RadiusAxis();\n    this._angleAxis = new AngleAxis();\n    this.axisPointerEnabled = true;\n    this.name = name || '';\n    this._radiusAxis.polar = this._angleAxis.polar = this;\n  }\n\n  Polar.prototype.containPoint = function (point) {\n    var coord = this.pointToCoord(point);\n    return this._radiusAxis.contain(coord[0]) && this._angleAxis.contain(coord[1]);\n  };\n\n  Polar.prototype.containData = function (data) {\n    return this._radiusAxis.containData(data[0]) && this._angleAxis.containData(data[1]);\n  };\n\n  Polar.prototype.getAxis = function (dim) {\n    var key = '_' + dim + 'Axis';\n    return this[key];\n  };\n\n  Polar.prototype.getAxes = function () {\n    return [this._radiusAxis, this._angleAxis];\n  };\n\n  Polar.prototype.getAxesByScale = function (scaleType) {\n    var axes = [];\n    var angleAxis = this._angleAxis;\n    var radiusAxis = this._radiusAxis;\n    angleAxis.scale.type === scaleType && axes.push(angleAxis);\n    radiusAxis.scale.type === scaleType && axes.push(radiusAxis);\n    return axes;\n  };\n\n  Polar.prototype.getAngleAxis = function () {\n    return this._angleAxis;\n  };\n\n  Polar.prototype.getRadiusAxis = function () {\n    return this._radiusAxis;\n  };\n\n  Polar.prototype.getOtherAxis = function (axis) {\n    var angleAxis = this._angleAxis;\n    return axis === angleAxis ? this._radiusAxis : angleAxis;\n  };\n\n  Polar.prototype.getBaseAxis = function () {\n    return this.getAxesByScale('ordinal')[0] || this.getAxesByScale('time')[0] || this.getAngleAxis();\n  };\n\n  Polar.prototype.getTooltipAxes = function (dim) {\n    var baseAxis = dim != null && dim !== 'auto' ? this.getAxis(dim) : this.getBaseAxis();\n    return {\n      baseAxes: [baseAxis],\n      otherAxes: [this.getOtherAxis(baseAxis)]\n    };\n  };\n\n  Polar.prototype.dataToPoint = function (data, clamp) {\n    return this.coordToPoint([this._radiusAxis.dataToRadius(data[0], clamp), this._angleAxis.dataToAngle(data[1], clamp)]);\n  };\n\n  Polar.prototype.pointToData = function (point, clamp) {\n    var coord = this.pointToCoord(point);\n    return [this._radiusAxis.radiusToData(coord[0], clamp), this._angleAxis.angleToData(coord[1], clamp)];\n  };\n\n  Polar.prototype.pointToCoord = function (point) {\n    var dx = point[0] - this.cx;\n    var dy = point[1] - this.cy;\n    var angleAxis = this.getAngleAxis();\n    var extent = angleAxis.getExtent();\n    var minAngle = Math.min(extent[0], extent[1]);\n    var maxAngle = Math.max(extent[0], extent[1]);\n    angleAxis.inverse ? minAngle = maxAngle - 360 : maxAngle = minAngle + 360;\n    var radius = Math.sqrt(dx * dx + dy * dy);\n    dx /= radius;\n    dy /= radius;\n    var radian = Math.atan2(-dy, dx) / Math.PI * 180;\n    var dir = radian < minAngle ? 1 : -1;\n\n    while (radian < minAngle || radian > maxAngle) {\n      radian += dir * 360;\n    }\n\n    return [radius, radian];\n  };\n\n  Polar.prototype.coordToPoint = function (coord) {\n    var radius = coord[0];\n    var radian = coord[1] / 180 * Math.PI;\n    var x = Math.cos(radian) * radius + this.cx;\n    var y = -Math.sin(radian) * radius + this.cy;\n    return [x, y];\n  };\n\n  Polar.prototype.getArea = function () {\n    var angleAxis = this.getAngleAxis();\n    var radiusAxis = this.getRadiusAxis();\n    var radiusExtent = radiusAxis.getExtent().slice();\n    radiusExtent[0] > radiusExtent[1] && radiusExtent.reverse();\n    var angleExtent = angleAxis.getExtent();\n    var RADIAN = Math.PI / 180;\n    return {\n      cx: this.cx,\n      cy: this.cy,\n      r0: radiusExtent[0],\n      r: radiusExtent[1],\n      startAngle: -angleExtent[0] * RADIAN,\n      endAngle: -angleExtent[1] * RADIAN,\n      clockwise: angleAxis.inverse,\n      contain: function (x, y) {\n        var dx = x - this.cx;\n        var dy = y - this.cy;\n        var d2 = dx * dx + dy * dy;\n        var r = this.r;\n        var r0 = this.r0;\n        return d2 <= r * r && d2 >= r0 * r0;\n      }\n    };\n  };\n\n  Polar.prototype.convertToPixel = function (ecModel, finder, value) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? this.dataToPoint(value) : null;\n  };\n\n  Polar.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? this.pointToData(pixel) : null;\n  };\n\n  return Polar;\n}();\n\nfunction getCoordSys(finder) {\n  var seriesModel = finder.seriesModel;\n  var polarModel = finder.polarModel;\n  return polarModel && polarModel.coordinateSystem || seriesModel && seriesModel.coordinateSystem;\n}\n\nexport default Polar;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Polar from './Polar';\nimport { parsePercent } from '../../util/number';\nimport { createScaleByModel, niceScaleExtent, getDataDimensionsOnAxis } from '../../coord/axisHelper';\nimport { SINGLE_REFERRING } from '../../util/model';\n\nfunction resizePolar(polar, polarModel, api) {\n  var center = polarModel.get('center');\n  var width = api.getWidth();\n  var height = api.getHeight();\n  polar.cx = parsePercent(center[0], width);\n  polar.cy = parsePercent(center[1], height);\n  var radiusAxis = polar.getRadiusAxis();\n  var size = Math.min(width, height) / 2;\n  var radius = polarModel.get('radius');\n\n  if (radius == null) {\n    radius = [0, '100%'];\n  } else if (!zrUtil.isArray(radius)) {\n    radius = [0, radius];\n  }\n\n  var parsedRadius = [parsePercent(radius[0], size), parsePercent(radius[1], size)];\n  radiusAxis.inverse ? radiusAxis.setExtent(parsedRadius[1], parsedRadius[0]) : radiusAxis.setExtent(parsedRadius[0], parsedRadius[1]);\n}\n\nfunction updatePolarScale(ecModel, api) {\n  var polar = this;\n  var angleAxis = polar.getAngleAxis();\n  var radiusAxis = polar.getRadiusAxis();\n  angleAxis.scale.setExtent(Infinity, -Infinity);\n  radiusAxis.scale.setExtent(Infinity, -Infinity);\n  ecModel.eachSeries(function (seriesModel) {\n    if (seriesModel.coordinateSystem === polar) {\n      var data_1 = seriesModel.getData();\n      zrUtil.each(getDataDimensionsOnAxis(data_1, 'radius'), function (dim) {\n        radiusAxis.scale.unionExtentFromData(data_1, dim);\n      });\n      zrUtil.each(getDataDimensionsOnAxis(data_1, 'angle'), function (dim) {\n        angleAxis.scale.unionExtentFromData(data_1, dim);\n      });\n    }\n  });\n  niceScaleExtent(angleAxis.scale, angleAxis.model);\n  niceScaleExtent(radiusAxis.scale, radiusAxis.model);\n\n  if (angleAxis.type === 'category' && !angleAxis.onBand) {\n    var extent = angleAxis.getExtent();\n    var diff = 360 / angleAxis.scale.count();\n    angleAxis.inverse ? extent[1] += diff : extent[1] -= diff;\n    angleAxis.setExtent(extent[0], extent[1]);\n  }\n}\n\nfunction isAngleAxisModel(axisModel) {\n  return axisModel.mainType === 'angleAxis';\n}\n\nfunction setAxis(axis, axisModel) {\n  axis.type = axisModel.get('type');\n  axis.scale = createScaleByModel(axisModel);\n  axis.onBand = axisModel.get('boundaryGap') && axis.type === 'category';\n  axis.inverse = axisModel.get('inverse');\n\n  if (isAngleAxisModel(axisModel)) {\n    axis.inverse = axis.inverse !== axisModel.get('clockwise');\n    var startAngle = axisModel.get('startAngle');\n    axis.setExtent(startAngle, startAngle + (axis.inverse ? -360 : 360));\n  }\n\n  axisModel.axis = axis;\n  axis.model = axisModel;\n}\n\nvar polarCreator = {\n  dimensions: Polar.prototype.dimensions,\n  create: function (ecModel, api) {\n    var polarList = [];\n    ecModel.eachComponent('polar', function (polarModel, idx) {\n      var polar = new Polar(idx + '');\n      polar.update = updatePolarScale;\n      var radiusAxis = polar.getRadiusAxis();\n      var angleAxis = polar.getAngleAxis();\n      var radiusAxisModel = polarModel.findAxisModel('radiusAxis');\n      var angleAxisModel = polarModel.findAxisModel('angleAxis');\n      setAxis(radiusAxis, radiusAxisModel);\n      setAxis(angleAxis, angleAxisModel);\n      resizePolar(polar, polarModel, api);\n      polarList.push(polar);\n      polarModel.coordinateSystem = polar;\n      polar.model = polarModel;\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      if (seriesModel.get('coordinateSystem') === 'polar') {\n        var polarModel = seriesModel.getReferringComponents('polar', SINGLE_REFERRING).models[0];\n\n        if (process.env.NODE_ENV !== 'production') {\n          if (!polarModel) {\n            throw new Error('Polar \"' + zrUtil.retrieve(seriesModel.get('polarIndex'), seriesModel.get('polarId'), 0) + '\" not found');\n          }\n        }\n\n        seriesModel.coordinateSystem = polarModel.coordinateSystem;\n      }\n    });\n    return polarList;\n  }\n};\nexport default polarCreator;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { createTextStyle } from '../../label/labelStyle';\nimport Model from '../../model/Model';\nimport AxisView from './AxisView';\nimport AxisBuilder from './AxisBuilder';\nimport { getECData } from '../../util/innerStore';\nvar elementList = ['axisLine', 'axisLabel', 'axisTick', 'minorTick', 'splitLine', 'minorSplitLine', 'splitArea'];\n\nfunction getAxisLineShape(polar, rExtent, angle) {\n  rExtent[1] > rExtent[0] && (rExtent = rExtent.slice().reverse());\n  var start = polar.coordToPoint([rExtent[0], angle]);\n  var end = polar.coordToPoint([rExtent[1], angle]);\n  return {\n    x1: start[0],\n    y1: start[1],\n    x2: end[0],\n    y2: end[1]\n  };\n}\n\nfunction getRadiusIdx(polar) {\n  var radiusAxis = polar.getRadiusAxis();\n  return radiusAxis.inverse ? 0 : 1;\n}\n\nfunction fixAngleOverlap(list) {\n  var firstItem = list[0];\n  var lastItem = list[list.length - 1];\n\n  if (firstItem && lastItem && Math.abs(Math.abs(firstItem.coord - lastItem.coord) - 360) < 1e-4) {\n    list.pop();\n  }\n}\n\nvar AngleAxisView = function (_super) {\n  __extends(AngleAxisView, _super);\n\n  function AngleAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = AngleAxisView.type;\n    _this.axisPointerClass = 'PolarAxisPointer';\n    return _this;\n  }\n\n  AngleAxisView.prototype.render = function (angleAxisModel, ecModel) {\n    this.group.removeAll();\n\n    if (!angleAxisModel.get('show')) {\n      return;\n    }\n\n    var angleAxis = angleAxisModel.axis;\n    var polar = angleAxis.polar;\n    var radiusExtent = polar.getRadiusAxis().getExtent();\n    var ticksAngles = angleAxis.getTicksCoords();\n    var minorTickAngles = angleAxis.getMinorTicksCoords();\n    var labels = zrUtil.map(angleAxis.getViewLabels(), function (labelItem) {\n      labelItem = zrUtil.clone(labelItem);\n      var scale = angleAxis.scale;\n      var tickValue = scale.type === 'ordinal' ? scale.getRawOrdinalNumber(labelItem.tickValue) : labelItem.tickValue;\n      labelItem.coord = angleAxis.dataToCoord(tickValue);\n      return labelItem;\n    });\n    fixAngleOverlap(labels);\n    fixAngleOverlap(ticksAngles);\n    zrUtil.each(elementList, function (name) {\n      if (angleAxisModel.get([name, 'show']) && (!angleAxis.scale.isBlank() || name === 'axisLine')) {\n        angelAxisElementsBuilders[name](this.group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent, labels);\n      }\n    }, this);\n  };\n\n  AngleAxisView.type = 'angleAxis';\n  return AngleAxisView;\n}(AxisView);\n\nvar angelAxisElementsBuilders = {\n  axisLine: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n    var lineStyleModel = angleAxisModel.getModel(['axisLine', 'lineStyle']);\n    var rId = getRadiusIdx(polar);\n    var r0Id = rId ? 0 : 1;\n    var shape;\n\n    if (radiusExtent[r0Id] === 0) {\n      shape = new graphic.Circle({\n        shape: {\n          cx: polar.cx,\n          cy: polar.cy,\n          r: radiusExtent[rId]\n        },\n        style: lineStyleModel.getLineStyle(),\n        z2: 1,\n        silent: true\n      });\n    } else {\n      shape = new graphic.Ring({\n        shape: {\n          cx: polar.cx,\n          cy: polar.cy,\n          r: radiusExtent[rId],\n          r0: radiusExtent[r0Id]\n        },\n        style: lineStyleModel.getLineStyle(),\n        z2: 1,\n        silent: true\n      });\n    }\n\n    shape.style.fill = null;\n    group.add(shape);\n  },\n  axisTick: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n    var tickModel = angleAxisModel.getModel('axisTick');\n    var tickLen = (tickModel.get('inside') ? -1 : 1) * tickModel.get('length');\n    var radius = radiusExtent[getRadiusIdx(polar)];\n    var lines = zrUtil.map(ticksAngles, function (tickAngleItem) {\n      return new graphic.Line({\n        shape: getAxisLineShape(polar, [radius, radius + tickLen], tickAngleItem.coord)\n      });\n    });\n    group.add(graphic.mergePath(lines, {\n      style: zrUtil.defaults(tickModel.getModel('lineStyle').getLineStyle(), {\n        stroke: angleAxisModel.get(['axisLine', 'lineStyle', 'color'])\n      })\n    }));\n  },\n  minorTick: function (group, angleAxisModel, polar, tickAngles, minorTickAngles, radiusExtent) {\n    if (!minorTickAngles.length) {\n      return;\n    }\n\n    var tickModel = angleAxisModel.getModel('axisTick');\n    var minorTickModel = angleAxisModel.getModel('minorTick');\n    var tickLen = (tickModel.get('inside') ? -1 : 1) * minorTickModel.get('length');\n    var radius = radiusExtent[getRadiusIdx(polar)];\n    var lines = [];\n\n    for (var i = 0; i < minorTickAngles.length; i++) {\n      for (var k = 0; k < minorTickAngles[i].length; k++) {\n        lines.push(new graphic.Line({\n          shape: getAxisLineShape(polar, [radius, radius + tickLen], minorTickAngles[i][k].coord)\n        }));\n      }\n    }\n\n    group.add(graphic.mergePath(lines, {\n      style: zrUtil.defaults(minorTickModel.getModel('lineStyle').getLineStyle(), zrUtil.defaults(tickModel.getLineStyle(), {\n        stroke: angleAxisModel.get(['axisLine', 'lineStyle', 'color'])\n      }))\n    }));\n  },\n  axisLabel: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent, labels) {\n    var rawCategoryData = angleAxisModel.getCategories(true);\n    var commonLabelModel = angleAxisModel.getModel('axisLabel');\n    var labelMargin = commonLabelModel.get('margin');\n    var triggerEvent = angleAxisModel.get('triggerEvent');\n    zrUtil.each(labels, function (labelItem, idx) {\n      var labelModel = commonLabelModel;\n      var tickValue = labelItem.tickValue;\n      var r = radiusExtent[getRadiusIdx(polar)];\n      var p = polar.coordToPoint([r + labelMargin, labelItem.coord]);\n      var cx = polar.cx;\n      var cy = polar.cy;\n      var labelTextAlign = Math.abs(p[0] - cx) / r < 0.3 ? 'center' : p[0] > cx ? 'left' : 'right';\n      var labelTextVerticalAlign = Math.abs(p[1] - cy) / r < 0.3 ? 'middle' : p[1] > cy ? 'top' : 'bottom';\n\n      if (rawCategoryData && rawCategoryData[tickValue]) {\n        var rawCategoryItem = rawCategoryData[tickValue];\n\n        if (zrUtil.isObject(rawCategoryItem) && rawCategoryItem.textStyle) {\n          labelModel = new Model(rawCategoryItem.textStyle, commonLabelModel, commonLabelModel.ecModel);\n        }\n      }\n\n      var textEl = new graphic.Text({\n        silent: AxisBuilder.isLabelSilent(angleAxisModel),\n        style: createTextStyle(labelModel, {\n          x: p[0],\n          y: p[1],\n          fill: labelModel.getTextColor() || angleAxisModel.get(['axisLine', 'lineStyle', 'color']),\n          text: labelItem.formattedLabel,\n          align: labelTextAlign,\n          verticalAlign: labelTextVerticalAlign\n        })\n      });\n      group.add(textEl);\n\n      if (triggerEvent) {\n        var eventData = AxisBuilder.makeAxisEventDataBase(angleAxisModel);\n        eventData.targetType = 'axisLabel';\n        eventData.value = labelItem.rawLabel;\n        getECData(textEl).eventData = eventData;\n      }\n    }, this);\n  },\n  splitLine: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n    var splitLineModel = angleAxisModel.getModel('splitLine');\n    var lineStyleModel = splitLineModel.getModel('lineStyle');\n    var lineColors = lineStyleModel.get('color');\n    var lineCount = 0;\n    lineColors = lineColors instanceof Array ? lineColors : [lineColors];\n    var splitLines = [];\n\n    for (var i = 0; i < ticksAngles.length; i++) {\n      var colorIndex = lineCount++ % lineColors.length;\n      splitLines[colorIndex] = splitLines[colorIndex] || [];\n      splitLines[colorIndex].push(new graphic.Line({\n        shape: getAxisLineShape(polar, radiusExtent, ticksAngles[i].coord)\n      }));\n    }\n\n    for (var i = 0; i < splitLines.length; i++) {\n      group.add(graphic.mergePath(splitLines[i], {\n        style: zrUtil.defaults({\n          stroke: lineColors[i % lineColors.length]\n        }, lineStyleModel.getLineStyle()),\n        silent: true,\n        z: angleAxisModel.get('z')\n      }));\n    }\n  },\n  minorSplitLine: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n    if (!minorTickAngles.length) {\n      return;\n    }\n\n    var minorSplitLineModel = angleAxisModel.getModel('minorSplitLine');\n    var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\n    var lines = [];\n\n    for (var i = 0; i < minorTickAngles.length; i++) {\n      for (var k = 0; k < minorTickAngles[i].length; k++) {\n        lines.push(new graphic.Line({\n          shape: getAxisLineShape(polar, radiusExtent, minorTickAngles[i][k].coord)\n        }));\n      }\n    }\n\n    group.add(graphic.mergePath(lines, {\n      style: lineStyleModel.getLineStyle(),\n      silent: true,\n      z: angleAxisModel.get('z')\n    }));\n  },\n  splitArea: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n    if (!ticksAngles.length) {\n      return;\n    }\n\n    var splitAreaModel = angleAxisModel.getModel('splitArea');\n    var areaStyleModel = splitAreaModel.getModel('areaStyle');\n    var areaColors = areaStyleModel.get('color');\n    var lineCount = 0;\n    areaColors = areaColors instanceof Array ? areaColors : [areaColors];\n    var splitAreas = [];\n    var RADIAN = Math.PI / 180;\n    var prevAngle = -ticksAngles[0].coord * RADIAN;\n    var r0 = Math.min(radiusExtent[0], radiusExtent[1]);\n    var r1 = Math.max(radiusExtent[0], radiusExtent[1]);\n    var clockwise = angleAxisModel.get('clockwise');\n\n    for (var i = 1, len = ticksAngles.length; i <= len; i++) {\n      var coord = i === len ? ticksAngles[0].coord : ticksAngles[i].coord;\n      var colorIndex = lineCount++ % areaColors.length;\n      splitAreas[colorIndex] = splitAreas[colorIndex] || [];\n      splitAreas[colorIndex].push(new graphic.Sector({\n        shape: {\n          cx: polar.cx,\n          cy: polar.cy,\n          r0: r0,\n          r: r1,\n          startAngle: prevAngle,\n          endAngle: -coord * RADIAN,\n          clockwise: clockwise\n        },\n        silent: true\n      }));\n      prevAngle = -coord * RADIAN;\n    }\n\n    for (var i = 0; i < splitAreas.length; i++) {\n      group.add(graphic.mergePath(splitAreas[i], {\n        style: zrUtil.defaults({\n          fill: areaColors[i % areaColors.length]\n        }, areaStyleModel.getAreaStyle()),\n        silent: true\n      }));\n    }\n  }\n};\nexport default AngleAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport AxisBuilder from './AxisBuilder';\nimport AxisView from './AxisView';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitLine', 'splitArea', 'minorSplitLine'];\n\nvar RadiusAxisView = function (_super) {\n  __extends(RadiusAxisView, _super);\n\n  function RadiusAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = RadiusAxisView.type;\n    _this.axisPointerClass = 'PolarAxisPointer';\n    return _this;\n  }\n\n  RadiusAxisView.prototype.render = function (radiusAxisModel, ecModel) {\n    this.group.removeAll();\n\n    if (!radiusAxisModel.get('show')) {\n      return;\n    }\n\n    var oldAxisGroup = this._axisGroup;\n    var newAxisGroup = this._axisGroup = new graphic.Group();\n    this.group.add(newAxisGroup);\n    var radiusAxis = radiusAxisModel.axis;\n    var polar = radiusAxis.polar;\n    var angleAxis = polar.getAngleAxis();\n    var ticksCoords = radiusAxis.getTicksCoords();\n    var minorTicksCoords = radiusAxis.getMinorTicksCoords();\n    var axisAngle = angleAxis.getExtent()[0];\n    var radiusExtent = radiusAxis.getExtent();\n    var layout = layoutAxis(polar, radiusAxisModel, axisAngle);\n    var axisBuilder = new AxisBuilder(radiusAxisModel, layout);\n    zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n    newAxisGroup.add(axisBuilder.getGroup());\n    graphic.groupTransition(oldAxisGroup, newAxisGroup, radiusAxisModel);\n    zrUtil.each(selfBuilderAttrs, function (name) {\n      if (radiusAxisModel.get([name, 'show']) && !radiusAxis.scale.isBlank()) {\n        axisElementBuilders[name](this.group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords, minorTicksCoords);\n      }\n    }, this);\n  };\n\n  RadiusAxisView.type = 'radiusAxis';\n  return RadiusAxisView;\n}(AxisView);\n\nvar axisElementBuilders = {\n  splitLine: function (group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords) {\n    var splitLineModel = radiusAxisModel.getModel('splitLine');\n    var lineStyleModel = splitLineModel.getModel('lineStyle');\n    var lineColors = lineStyleModel.get('color');\n    var lineCount = 0;\n    lineColors = lineColors instanceof Array ? lineColors : [lineColors];\n    var splitLines = [];\n\n    for (var i = 0; i < ticksCoords.length; i++) {\n      var colorIndex = lineCount++ % lineColors.length;\n      splitLines[colorIndex] = splitLines[colorIndex] || [];\n      splitLines[colorIndex].push(new graphic.Circle({\n        shape: {\n          cx: polar.cx,\n          cy: polar.cy,\n          r: ticksCoords[i].coord\n        }\n      }));\n    }\n\n    for (var i = 0; i < splitLines.length; i++) {\n      group.add(graphic.mergePath(splitLines[i], {\n        style: zrUtil.defaults({\n          stroke: lineColors[i % lineColors.length],\n          fill: null\n        }, lineStyleModel.getLineStyle()),\n        silent: true\n      }));\n    }\n  },\n  minorSplitLine: function (group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords, minorTicksCoords) {\n    if (!minorTicksCoords.length) {\n      return;\n    }\n\n    var minorSplitLineModel = radiusAxisModel.getModel('minorSplitLine');\n    var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\n    var lines = [];\n\n    for (var i = 0; i < minorTicksCoords.length; i++) {\n      for (var k = 0; k < minorTicksCoords[i].length; k++) {\n        lines.push(new graphic.Circle({\n          shape: {\n            cx: polar.cx,\n            cy: polar.cy,\n            r: minorTicksCoords[i][k].coord\n          }\n        }));\n      }\n    }\n\n    group.add(graphic.mergePath(lines, {\n      style: zrUtil.defaults({\n        fill: null\n      }, lineStyleModel.getLineStyle()),\n      silent: true\n    }));\n  },\n  splitArea: function (group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords) {\n    if (!ticksCoords.length) {\n      return;\n    }\n\n    var splitAreaModel = radiusAxisModel.getModel('splitArea');\n    var areaStyleModel = splitAreaModel.getModel('areaStyle');\n    var areaColors = areaStyleModel.get('color');\n    var lineCount = 0;\n    areaColors = areaColors instanceof Array ? areaColors : [areaColors];\n    var splitAreas = [];\n    var prevRadius = ticksCoords[0].coord;\n\n    for (var i = 1; i < ticksCoords.length; i++) {\n      var colorIndex = lineCount++ % areaColors.length;\n      splitAreas[colorIndex] = splitAreas[colorIndex] || [];\n      splitAreas[colorIndex].push(new graphic.Sector({\n        shape: {\n          cx: polar.cx,\n          cy: polar.cy,\n          r0: prevRadius,\n          r: ticksCoords[i].coord,\n          startAngle: 0,\n          endAngle: Math.PI * 2\n        },\n        silent: true\n      }));\n      prevRadius = ticksCoords[i].coord;\n    }\n\n    for (var i = 0; i < splitAreas.length; i++) {\n      group.add(graphic.mergePath(splitAreas[i], {\n        style: zrUtil.defaults({\n          fill: areaColors[i % areaColors.length]\n        }, areaStyleModel.getAreaStyle()),\n        silent: true\n      }));\n    }\n  }\n};\n\nfunction layoutAxis(polar, radiusAxisModel, axisAngle) {\n  return {\n    position: [polar.cx, polar.cy],\n    rotation: axisAngle / 180 * Math.PI,\n    labelDirection: -1,\n    tickDirection: -1,\n    nameDirection: 1,\n    labelRotate: radiusAxisModel.getModel('axisLabel').get('rotate'),\n    z2: 1\n  };\n}\n\nexport default RadiusAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parsePercent } from '../util/number';\nimport { isDimensionStacked } from '../data/helper/dataStackHelper';\n\nfunction getSeriesStackId(seriesModel) {\n  return seriesModel.get('stack') || '__ec_stack_' + seriesModel.seriesIndex;\n}\n\nfunction getAxisKey(polar, axis) {\n  return axis.dim + polar.model.componentIndex;\n}\n\nfunction barLayoutPolar(seriesType, ecModel, api) {\n  var lastStackCoords = {};\n  var barWidthAndOffset = calRadialBar(zrUtil.filter(ecModel.getSeriesByType(seriesType), function (seriesModel) {\n    return !ecModel.isSeriesFiltered(seriesModel) && seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'polar';\n  }));\n  ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n    if (seriesModel.coordinateSystem.type !== 'polar') {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var polar = seriesModel.coordinateSystem;\n    var baseAxis = polar.getBaseAxis();\n    var axisKey = getAxisKey(polar, baseAxis);\n    var stackId = getSeriesStackId(seriesModel);\n    var columnLayoutInfo = barWidthAndOffset[axisKey][stackId];\n    var columnOffset = columnLayoutInfo.offset;\n    var columnWidth = columnLayoutInfo.width;\n    var valueAxis = polar.getOtherAxis(baseAxis);\n    var cx = seriesModel.coordinateSystem.cx;\n    var cy = seriesModel.coordinateSystem.cy;\n    var barMinHeight = seriesModel.get('barMinHeight') || 0;\n    var barMinAngle = seriesModel.get('barMinAngle') || 0;\n    lastStackCoords[stackId] = lastStackCoords[stackId] || [];\n    var valueDim = data.mapDimension(valueAxis.dim);\n    var baseDim = data.mapDimension(baseAxis.dim);\n    var stacked = isDimensionStacked(data, valueDim);\n    var clampLayout = baseAxis.dim !== 'radius' || !seriesModel.get('roundCap', true);\n    var valueAxisStart = valueAxis.dataToCoord(0);\n\n    for (var idx = 0, len = data.count(); idx < len; idx++) {\n      var value = data.get(valueDim, idx);\n      var baseValue = data.get(baseDim, idx);\n      var sign = value >= 0 ? 'p' : 'n';\n      var baseCoord = valueAxisStart;\n\n      if (stacked) {\n        if (!lastStackCoords[stackId][baseValue]) {\n          lastStackCoords[stackId][baseValue] = {\n            p: valueAxisStart,\n            n: valueAxisStart\n          };\n        }\n\n        baseCoord = lastStackCoords[stackId][baseValue][sign];\n      }\n\n      var r0 = void 0;\n      var r = void 0;\n      var startAngle = void 0;\n      var endAngle = void 0;\n\n      if (valueAxis.dim === 'radius') {\n        var radiusSpan = valueAxis.dataToCoord(value) - valueAxisStart;\n        var angle = baseAxis.dataToCoord(baseValue);\n\n        if (Math.abs(radiusSpan) < barMinHeight) {\n          radiusSpan = (radiusSpan < 0 ? -1 : 1) * barMinHeight;\n        }\n\n        r0 = baseCoord;\n        r = baseCoord + radiusSpan;\n        startAngle = angle - columnOffset;\n        endAngle = startAngle - columnWidth;\n        stacked && (lastStackCoords[stackId][baseValue][sign] = r);\n      } else {\n        var angleSpan = valueAxis.dataToCoord(value, clampLayout) - valueAxisStart;\n        var radius = baseAxis.dataToCoord(baseValue);\n\n        if (Math.abs(angleSpan) < barMinAngle) {\n          angleSpan = (angleSpan < 0 ? -1 : 1) * barMinAngle;\n        }\n\n        r0 = radius + columnOffset;\n        r = r0 + columnWidth;\n        startAngle = baseCoord;\n        endAngle = baseCoord + angleSpan;\n        stacked && (lastStackCoords[stackId][baseValue][sign] = endAngle);\n      }\n\n      data.setItemLayout(idx, {\n        cx: cx,\n        cy: cy,\n        r0: r0,\n        r: r,\n        startAngle: -startAngle * Math.PI / 180,\n        endAngle: -endAngle * Math.PI / 180\n      });\n    }\n  });\n}\n\nfunction calRadialBar(barSeries) {\n  var columnsMap = {};\n  zrUtil.each(barSeries, function (seriesModel, idx) {\n    var data = seriesModel.getData();\n    var polar = seriesModel.coordinateSystem;\n    var baseAxis = polar.getBaseAxis();\n    var axisKey = getAxisKey(polar, baseAxis);\n    var axisExtent = baseAxis.getExtent();\n    var bandWidth = baseAxis.type === 'category' ? baseAxis.getBandWidth() : Math.abs(axisExtent[1] - axisExtent[0]) / data.count();\n    var columnsOnAxis = columnsMap[axisKey] || {\n      bandWidth: bandWidth,\n      remainedWidth: bandWidth,\n      autoWidthCount: 0,\n      categoryGap: '20%',\n      gap: '30%',\n      stacks: {}\n    };\n    var stacks = columnsOnAxis.stacks;\n    columnsMap[axisKey] = columnsOnAxis;\n    var stackId = getSeriesStackId(seriesModel);\n\n    if (!stacks[stackId]) {\n      columnsOnAxis.autoWidthCount++;\n    }\n\n    stacks[stackId] = stacks[stackId] || {\n      width: 0,\n      maxWidth: 0\n    };\n    var barWidth = parsePercent(seriesModel.get('barWidth'), bandWidth);\n    var barMaxWidth = parsePercent(seriesModel.get('barMaxWidth'), bandWidth);\n    var barGap = seriesModel.get('barGap');\n    var barCategoryGap = seriesModel.get('barCategoryGap');\n\n    if (barWidth && !stacks[stackId].width) {\n      barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\n      stacks[stackId].width = barWidth;\n      columnsOnAxis.remainedWidth -= barWidth;\n    }\n\n    barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\n    barGap != null && (columnsOnAxis.gap = barGap);\n    barCategoryGap != null && (columnsOnAxis.categoryGap = barCategoryGap);\n  });\n  var result = {};\n  zrUtil.each(columnsMap, function (columnsOnAxis, coordSysName) {\n    result[coordSysName] = {};\n    var stacks = columnsOnAxis.stacks;\n    var bandWidth = columnsOnAxis.bandWidth;\n    var categoryGap = parsePercent(columnsOnAxis.categoryGap, bandWidth);\n    var barGapPercent = parsePercent(columnsOnAxis.gap, 1);\n    var remainedWidth = columnsOnAxis.remainedWidth;\n    var autoWidthCount = columnsOnAxis.autoWidthCount;\n    var autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n    autoWidth = Math.max(autoWidth, 0);\n    zrUtil.each(stacks, function (column, stack) {\n      var maxWidth = column.maxWidth;\n\n      if (maxWidth && maxWidth < autoWidth) {\n        maxWidth = Math.min(maxWidth, remainedWidth);\n\n        if (column.width) {\n          maxWidth = Math.min(maxWidth, column.width);\n        }\n\n        remainedWidth -= maxWidth;\n        column.width = maxWidth;\n        autoWidthCount--;\n      }\n    });\n    autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n    autoWidth = Math.max(autoWidth, 0);\n    var widthSum = 0;\n    var lastColumn;\n    zrUtil.each(stacks, function (column, idx) {\n      if (!column.width) {\n        column.width = autoWidth;\n      }\n\n      lastColumn = column;\n      widthSum += column.width * (1 + barGapPercent);\n    });\n\n    if (lastColumn) {\n      widthSum -= lastColumn.width * barGapPercent;\n    }\n\n    var offset = -widthSum / 2;\n    zrUtil.each(stacks, function (column, stackId) {\n      result[coordSysName][stackId] = result[coordSysName][stackId] || {\n        offset: offset,\n        width: column.width\n      };\n      offset += column.width * (1 + barGapPercent);\n    });\n  });\n  return result;\n}\n\nexport default barLayoutPolar;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { use } from '../../extension';\nimport AxisView from '../axis/AxisView';\nimport PolarAxisPointer from '../axisPointer/PolarAxisPointer';\nimport { install as installAxisPointer } from '../axisPointer/install';\nimport PolarModel from '../../coord/polar/PolarModel';\nimport axisModelCreator from '../../coord/axisModelCreator';\nimport { AngleAxisModel, RadiusAxisModel } from '../../coord/polar/AxisModel';\nimport polarCreator from '../../coord/polar/polarCreator';\nimport AngleAxisView from '../axis/AngleAxisView';\nimport RadiusAxisView from '../axis/RadiusAxisView';\nimport ComponentView from '../../view/Component';\nimport { curry } from 'zrender/lib/core/util';\nimport barLayoutPolar from '../../layout/barPolar';\nvar angleAxisExtraOption = {\n  startAngle: 90,\n  clockwise: true,\n  splitNumber: 12,\n  axisLabel: {\n    rotate: 0\n  }\n};\nvar radiusAxisExtraOption = {\n  splitNumber: 5\n};\n\nvar PolarView = function (_super) {\n  __extends(PolarView, _super);\n\n  function PolarView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = PolarView.type;\n    return _this;\n  }\n\n  PolarView.type = 'polar';\n  return PolarView;\n}(ComponentView);\n\nexport function install(registers) {\n  use(installAxisPointer);\n  AxisView.registerAxisPointerClass('PolarAxisPointer', PolarAxisPointer);\n  registers.registerCoordinateSystem('polar', polarCreator);\n  registers.registerComponentModel(PolarModel);\n  registers.registerComponentView(PolarView);\n  axisModelCreator(registers, 'angle', AngleAxisModel, angleAxisExtraOption);\n  axisModelCreator(registers, 'radius', RadiusAxisModel, radiusAxisExtraOption);\n  registers.registerComponentView(AngleAxisView);\n  registers.registerComponentView(RadiusAxisView);\n  registers.registerLayout(curry(barLayoutPolar, 'bar'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport View from '../View';\nimport geoSourceManager from './geoSourceManager';\nimport { SINGLE_REFERRING } from '../../util/model';\n\nvar Geo = function (_super) {\n  __extends(Geo, _super);\n\n  function Geo(name, map, nameMap, invertLongitute) {\n    var _this = _super.call(this, name) || this;\n\n    _this.dimensions = ['lng', 'lat'];\n    _this.type = 'geo';\n    _this.map = map;\n    var source = geoSourceManager.load(map, nameMap);\n    _this._nameCoordMap = source.nameCoordMap;\n    _this._regionsMap = source.regionsMap;\n    _this._invertLongitute = invertLongitute == null ? true : invertLongitute;\n    _this.regions = source.regions;\n    _this._rect = source.boundingRect;\n    return _this;\n  }\n\n  Geo.prototype.containCoord = function (coord) {\n    var regions = this.regions;\n\n    for (var i = 0; i < regions.length; i++) {\n      if (regions[i].contain(coord)) {\n        return true;\n      }\n    }\n\n    return false;\n  };\n\n  Geo.prototype.transformTo = function (x, y, width, height) {\n    var rect = this.getBoundingRect();\n    var invertLongitute = this._invertLongitute;\n    rect = rect.clone();\n\n    if (invertLongitute) {\n      rect.y = -rect.y - rect.height;\n    }\n\n    var rawTransformable = this._rawTransformable;\n    rawTransformable.transform = rect.calculateTransform(new BoundingRect(x, y, width, height));\n    rawTransformable.decomposeTransform();\n\n    if (invertLongitute) {\n      rawTransformable.scaleY = -rawTransformable.scaleY;\n    }\n\n    rawTransformable.updateTransform();\n\n    this._updateTransform();\n  };\n\n  Geo.prototype.getRegion = function (name) {\n    return this._regionsMap.get(name);\n  };\n\n  Geo.prototype.getRegionByCoord = function (coord) {\n    var regions = this.regions;\n\n    for (var i = 0; i < regions.length; i++) {\n      if (regions[i].contain(coord)) {\n        return regions[i];\n      }\n    }\n  };\n\n  Geo.prototype.addGeoCoord = function (name, geoCoord) {\n    this._nameCoordMap.set(name, geoCoord);\n  };\n\n  Geo.prototype.getGeoCoord = function (name) {\n    return this._nameCoordMap.get(name);\n  };\n\n  Geo.prototype.getBoundingRect = function () {\n    return this._rect;\n  };\n\n  Geo.prototype.dataToPoint = function (data, noRoam, out) {\n    if (typeof data === 'string') {\n      data = this.getGeoCoord(data);\n    }\n\n    if (data) {\n      return View.prototype.dataToPoint.call(this, data, noRoam, out);\n    }\n  };\n\n  Geo.prototype.convertToPixel = function (ecModel, finder, value) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? coordSys.dataToPoint(value) : null;\n  };\n\n  Geo.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? coordSys.pointToData(pixel) : null;\n  };\n\n  return Geo;\n}(View);\n\n;\nzrUtil.mixin(Geo, View);\n\nfunction getCoordSys(finder) {\n  var geoModel = finder.geoModel;\n  var seriesModel = finder.seriesModel;\n  return geoModel ? geoModel.coordinateSystem : seriesModel ? seriesModel.coordinateSystem || (seriesModel.getReferringComponents('geo', SINGLE_REFERRING).models[0] || {}).coordinateSystem : null;\n}\n\nexport default Geo;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Geo from './Geo';\nimport * as layout from '../../util/layout';\nimport * as numberUtil from '../../util/number';\nimport geoSourceManager from './geoSourceManager';\nimport mapDataStorage from './mapDataStorage';\n\nfunction resizeGeo(geoModel, api) {\n  var boundingCoords = geoModel.get('boundingCoords');\n\n  if (boundingCoords != null) {\n    var leftTop = boundingCoords[0];\n    var rightBottom = boundingCoords[1];\n\n    if (isNaN(leftTop[0]) || isNaN(leftTop[1]) || isNaN(rightBottom[0]) || isNaN(rightBottom[1])) {\n      if (process.env.NODE_ENV !== 'production') {\n        console.error('Invalid boundingCoords');\n      }\n    } else {\n      this.setBoundingRect(leftTop[0], leftTop[1], rightBottom[0] - leftTop[0], rightBottom[1] - leftTop[1]);\n    }\n  }\n\n  var rect = this.getBoundingRect();\n  var centerOption = geoModel.get('layoutCenter');\n  var sizeOption = geoModel.get('layoutSize');\n  var viewWidth = api.getWidth();\n  var viewHeight = api.getHeight();\n  var aspect = rect.width / rect.height * this.aspectScale;\n  var useCenterAndSize = false;\n  var center;\n  var size;\n\n  if (centerOption && sizeOption) {\n    center = [numberUtil.parsePercent(centerOption[0], viewWidth), numberUtil.parsePercent(centerOption[1], viewHeight)];\n    size = numberUtil.parsePercent(sizeOption, Math.min(viewWidth, viewHeight));\n\n    if (!isNaN(center[0]) && !isNaN(center[1]) && !isNaN(size)) {\n      useCenterAndSize = true;\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn('Given layoutCenter or layoutSize data are invalid. Use left/top/width/height instead.');\n      }\n    }\n  }\n\n  var viewRect;\n\n  if (useCenterAndSize) {\n    viewRect = {};\n\n    if (aspect > 1) {\n      viewRect.width = size;\n      viewRect.height = size / aspect;\n    } else {\n      viewRect.height = size;\n      viewRect.width = size * aspect;\n    }\n\n    viewRect.y = center[1] - viewRect.height / 2;\n    viewRect.x = center[0] - viewRect.width / 2;\n  } else {\n    var boxLayoutOption = geoModel.getBoxLayoutParams();\n    boxLayoutOption.aspect = aspect;\n    viewRect = layout.getLayoutRect(boxLayoutOption, {\n      width: viewWidth,\n      height: viewHeight\n    });\n  }\n\n  this.setViewRect(viewRect.x, viewRect.y, viewRect.width, viewRect.height);\n  this.setCenter(geoModel.get('center'));\n  this.setZoom(geoModel.get('zoom'));\n}\n\nfunction setGeoCoords(geo, model) {\n  zrUtil.each(model.get('geoCoord'), function (geoCoord, name) {\n    geo.addGeoCoord(name, geoCoord);\n  });\n}\n\nvar GeoCreator = function () {\n  function GeoCreator() {\n    this.dimensions = Geo.prototype.dimensions;\n  }\n\n  GeoCreator.prototype.create = function (ecModel, api) {\n    var geoList = [];\n    ecModel.eachComponent('geo', function (geoModel, idx) {\n      var name = geoModel.get('map');\n      var aspectScale = geoModel.get('aspectScale');\n      var invertLongitute = true;\n      var mapRecords = mapDataStorage.retrieveMap(name);\n\n      if (mapRecords && mapRecords[0] && mapRecords[0].type === 'svg') {\n        aspectScale == null && (aspectScale = 1);\n        invertLongitute = false;\n      } else {\n        aspectScale == null && (aspectScale = 0.75);\n      }\n\n      var geo = new Geo(name + idx, name, geoModel.get('nameMap'), invertLongitute);\n      geo.aspectScale = aspectScale;\n      geo.zoomLimit = geoModel.get('scaleLimit');\n      geoList.push(geo);\n      geoModel.coordinateSystem = geo;\n      geo.model = geoModel;\n      geo.resize = resizeGeo;\n      geo.resize(geoModel, api);\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      var coordSys = seriesModel.get('coordinateSystem');\n\n      if (coordSys === 'geo') {\n        var geoIndex = seriesModel.get('geoIndex') || 0;\n        seriesModel.coordinateSystem = geoList[geoIndex];\n      }\n    });\n    var mapModelGroupBySeries = {};\n    ecModel.eachSeriesByType('map', function (seriesModel) {\n      if (!seriesModel.getHostGeoModel()) {\n        var mapType = seriesModel.getMapType();\n        mapModelGroupBySeries[mapType] = mapModelGroupBySeries[mapType] || [];\n        mapModelGroupBySeries[mapType].push(seriesModel);\n      }\n    });\n    zrUtil.each(mapModelGroupBySeries, function (mapSeries, mapType) {\n      var nameMapList = zrUtil.map(mapSeries, function (singleMapSeries) {\n        return singleMapSeries.get('nameMap');\n      });\n      var geo = new Geo(mapType, mapType, zrUtil.mergeAll(nameMapList));\n      geo.zoomLimit = zrUtil.retrieve.apply(null, zrUtil.map(mapSeries, function (singleMapSeries) {\n        return singleMapSeries.get('scaleLimit');\n      }));\n      geoList.push(geo);\n      geo.resize = resizeGeo;\n      geo.aspectScale = mapSeries[0].get('aspectScale');\n      geo.resize(mapSeries[0], api);\n      zrUtil.each(mapSeries, function (singleMapSeries) {\n        singleMapSeries.coordinateSystem = geo;\n        setGeoCoords(geo, singleMapSeries);\n      });\n    });\n    return geoList;\n  };\n\n  GeoCreator.prototype.getFilledRegions = function (originRegionArr, mapName, nameMap) {\n    var regionsArr = (originRegionArr || []).slice();\n    var dataNameMap = zrUtil.createHashMap();\n\n    for (var i = 0; i < regionsArr.length; i++) {\n      dataNameMap.set(regionsArr[i].name, regionsArr[i]);\n    }\n\n    var source = geoSourceManager.load(mapName, nameMap);\n    zrUtil.each(source.regions, function (region) {\n      var name = region.name;\n      !dataNameMap.get(name) && regionsArr.push({\n        name: name\n      });\n    });\n    return regionsArr;\n  };\n\n  return GeoCreator;\n}();\n\nvar geoCreator = new GeoCreator();\nexport default geoCreator;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nimport ComponentModel from '../../model/Component';\nimport Model from '../../model/Model';\nimport geoCreator from './geoCreator';\n;\n;\n\nvar GeoModel = function (_super) {\n  __extends(GeoModel, _super);\n\n  function GeoModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GeoModel.type;\n    return _this;\n  }\n\n  GeoModel.prototype.init = function (option, parentModel, ecModel) {\n    _super.prototype.init.call(this, option, parentModel, ecModel);\n\n    modelUtil.defaultEmphasis(option, 'label', ['show']);\n  };\n\n  GeoModel.prototype.optionUpdated = function () {\n    var option = this.option;\n    var self = this;\n    option.regions = geoCreator.getFilledRegions(option.regions, option.map, option.nameMap);\n    var selectedMap = {};\n    this._optionModelMap = zrUtil.reduce(option.regions || [], function (optionModelMap, regionOpt) {\n      var regionName = regionOpt.name;\n\n      if (regionName) {\n        optionModelMap.set(regionName, new Model(regionOpt, self));\n\n        if (regionOpt.selected) {\n          selectedMap[regionName] = true;\n        }\n      }\n\n      return optionModelMap;\n    }, zrUtil.createHashMap());\n\n    if (!option.selectedMap) {\n      option.selectedMap = selectedMap;\n    }\n  };\n\n  GeoModel.prototype.getRegionModel = function (name) {\n    return this._optionModelMap.get(name) || new Model(null, this, this.ecModel);\n  };\n\n  GeoModel.prototype.getFormattedLabel = function (name, status) {\n    var regionModel = this.getRegionModel(name);\n    var formatter = status === 'normal' ? regionModel.get(['label', 'formatter']) : regionModel.get(['emphasis', 'label', 'formatter']);\n    var params = {\n      name: name\n    };\n\n    if (typeof formatter === 'function') {\n      params.status = status;\n      return formatter(params);\n    } else if (typeof formatter === 'string') {\n      return formatter.replace('{a}', name != null ? name : '');\n    }\n  };\n\n  GeoModel.prototype.setZoom = function (zoom) {\n    this.option.zoom = zoom;\n  };\n\n  GeoModel.prototype.setCenter = function (center) {\n    this.option.center = center;\n  };\n\n  GeoModel.prototype.select = function (name) {\n    var option = this.option;\n    var selectedMode = option.selectedMode;\n\n    if (!selectedMode) {\n      return;\n    }\n\n    if (selectedMode !== 'multiple') {\n      option.selectedMap = null;\n    }\n\n    var selectedMap = option.selectedMap || (option.selectedMap = {});\n    selectedMap[name] = true;\n  };\n\n  GeoModel.prototype.unSelect = function (name) {\n    var selectedMap = this.option.selectedMap;\n\n    if (selectedMap) {\n      selectedMap[name] = false;\n    }\n  };\n\n  GeoModel.prototype.toggleSelected = function (name) {\n    this[this.isSelected(name) ? 'unSelect' : 'select'](name);\n  };\n\n  GeoModel.prototype.isSelected = function (name) {\n    var selectedMap = this.option.selectedMap;\n    return !!(selectedMap && selectedMap[name]);\n  };\n\n  GeoModel.prototype._initSelectedMapFromData = function () {};\n\n  GeoModel.type = 'geo';\n  GeoModel.layoutMode = 'box';\n  GeoModel.defaultOption = {\n    zlevel: 0,\n    z: 0,\n    show: true,\n    left: 'center',\n    top: 'center',\n    aspectScale: null,\n    silent: false,\n    map: '',\n    boundingCoords: null,\n    center: null,\n    zoom: 1,\n    scaleLimit: null,\n    label: {\n      show: false,\n      color: '#000'\n    },\n    itemStyle: {\n      borderWidth: 0.5,\n      borderColor: '#444',\n      color: '#eee'\n    },\n    emphasis: {\n      label: {\n        show: true,\n        color: 'rgb(100,0,0)'\n      },\n      itemStyle: {\n        color: 'rgba(255,215,0,0.8)'\n      }\n    },\n    select: {\n      label: {\n        show: true,\n        color: 'rgb(100,0,0)'\n      },\n      itemStyle: {\n        color: 'rgba(255,215,0,0.8)'\n      }\n    },\n    regions: []\n  };\n  return GeoModel;\n}(ComponentModel);\n\nexport default GeoModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport MapDraw from '../helper/MapDraw';\nimport ComponentView from '../../view/Component';\nimport { getECData } from '../../util/innerStore';\n\nvar GeoView = function (_super) {\n  __extends(GeoView, _super);\n\n  function GeoView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GeoView.type;\n    return _this;\n  }\n\n  GeoView.prototype.init = function (ecModel, api) {\n    var mapDraw = new MapDraw(api);\n    this._mapDraw = mapDraw;\n    this.group.add(mapDraw.group);\n    this._api = api;\n  };\n\n  GeoView.prototype.render = function (geoModel, ecModel, api, payload) {\n    var mapDraw = this._mapDraw;\n\n    if (geoModel.get('show')) {\n      mapDraw.draw(geoModel, ecModel, api, this, payload);\n    } else {\n      this._mapDraw.group.removeAll();\n    }\n\n    mapDraw.group.on('click', this._handleRegionClick, this);\n    mapDraw.group.silent = geoModel.get('silent');\n    this._model = geoModel;\n    this.updateSelectStatus(geoModel, ecModel, api);\n  };\n\n  GeoView.prototype._handleRegionClick = function (e) {\n    var current = e.target;\n    var eventData;\n\n    while (current && (eventData = getECData(current).eventData) == null) {\n      current = current.__hostTarget || current.parent;\n    }\n\n    if (eventData) {\n      this._api.dispatchAction({\n        type: 'geoToggleSelect',\n        geoId: this._model.id,\n        name: eventData.name\n      });\n    }\n  };\n\n  GeoView.prototype.updateSelectStatus = function (model, ecModel, api) {\n    var _this = this;\n\n    this._mapDraw.group.traverse(function (node) {\n      var eventData = getECData(node).eventData;\n\n      if (eventData) {\n        _this._model.isSelected(eventData.name) ? api.enterSelect(node) : api.leaveSelect(node);\n        return true;\n      }\n    });\n  };\n\n  GeoView.prototype.dispose = function () {\n    this._mapDraw && this._mapDraw.remove();\n  };\n\n  GeoView.type = 'geo';\n  return GeoView;\n}(ComponentView);\n\nexport default GeoView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport GeoModel from '../../coord/geo/GeoModel';\nimport geoCreator from '../../coord/geo/geoCreator';\nimport { each } from 'zrender/lib/core/util';\nimport { updateCenterAndZoom } from '../../action/roamHelper';\nimport GeoView from './GeoView';\nexport function install(registers) {\n  registers.registerCoordinateSystem('geo', geoCreator);\n  registers.registerComponentModel(GeoModel);\n  registers.registerComponentView(GeoView);\n\n  function makeAction(method, actionInfo) {\n    actionInfo.update = 'geo:updateSelectStatus';\n    registers.registerAction(actionInfo, function (payload, ecModel) {\n      var selected = {};\n      ecModel.eachComponent({\n        mainType: 'geo',\n        query: payload\n      }, function (geoModel) {\n        geoModel[method](payload.name);\n        var geo = geoModel.coordinateSystem;\n        each(geo.regions, function (region) {\n          selected[region.name] = geoModel.isSelected(region.name) || false;\n        });\n      });\n      return {\n        selected: selected,\n        name: payload.name\n      };\n    });\n  }\n\n  makeAction('toggleSelected', {\n    type: 'geoToggleSelect',\n    event: 'geoselectchanged'\n  });\n  makeAction('select', {\n    type: 'geoSelect',\n    event: 'geoselected'\n  });\n  makeAction('unSelect', {\n    type: 'geoUnSelect',\n    event: 'geounselected'\n  });\n  registers.registerAction({\n    type: 'geoRoam',\n    event: 'geoRoam',\n    update: 'updateTransform'\n  }, function (payload, ecModel) {\n    var componentType = payload.componentType || 'series';\n    ecModel.eachComponent({\n      mainType: componentType,\n      query: payload\n    }, function (componentModel) {\n      var geo = componentModel.coordinateSystem;\n\n      if (geo.type !== 'geo') {\n        return;\n      }\n\n      var res = updateCenterAndZoom(geo, payload, componentModel.get('scaleLimit'));\n      componentModel.setCenter && componentModel.setCenter(res.center);\n      componentModel.setZoom && componentModel.setZoom(res.zoom);\n\n      if (componentType === 'series') {\n        each(componentModel.seriesGroup, function (seriesModel) {\n          seriesModel.setCenter(res.center);\n          seriesModel.setZoom(res.zoom);\n        });\n      }\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport function layout(axisModel, opt) {\n  opt = opt || {};\n  var single = axisModel.coordinateSystem;\n  var axis = axisModel.axis;\n  var layout = {};\n  var axisPosition = axis.position;\n  var orient = axis.orient;\n  var rect = single.getRect();\n  var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height];\n  var positionMap = {\n    horizontal: {\n      top: rectBound[2],\n      bottom: rectBound[3]\n    },\n    vertical: {\n      left: rectBound[0],\n      right: rectBound[1]\n    }\n  };\n  layout.position = [orient === 'vertical' ? positionMap.vertical[axisPosition] : rectBound[0], orient === 'horizontal' ? positionMap.horizontal[axisPosition] : rectBound[3]];\n  var r = {\n    horizontal: 0,\n    vertical: 1\n  };\n  layout.rotation = Math.PI / 2 * r[orient];\n  var directionMap = {\n    top: -1,\n    bottom: 1,\n    right: 1,\n    left: -1\n  };\n  layout.labelDirection = layout.tickDirection = layout.nameDirection = directionMap[axisPosition];\n\n  if (axisModel.get(['axisTick', 'inside'])) {\n    layout.tickDirection = -layout.tickDirection;\n  }\n\n  if (zrUtil.retrieve(opt.labelInside, axisModel.get(['axisLabel', 'inside']))) {\n    layout.labelDirection = -layout.labelDirection;\n  }\n\n  var labelRotation = opt.rotate;\n  labelRotation == null && (labelRotation = axisModel.get(['axisLabel', 'rotate']));\n  layout.labelRotation = axisPosition === 'top' ? -labelRotation : labelRotation;\n  layout.z2 = 1;\n  return layout;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport AxisBuilder from './AxisBuilder';\nimport * as graphic from '../../util/graphic';\nimport * as singleAxisHelper from '../../coord/single/singleAxisHelper';\nimport AxisView from './AxisView';\nimport { rectCoordAxisBuildSplitArea, rectCoordAxisHandleRemove } from './axisSplitHelper';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitArea', 'splitLine'];\n\nvar SingleAxisView = function (_super) {\n  __extends(SingleAxisView, _super);\n\n  function SingleAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SingleAxisView.type;\n    _this.axisPointerClass = 'SingleAxisPointer';\n    return _this;\n  }\n\n  SingleAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n    var group = this.group;\n    group.removeAll();\n    var oldAxisGroup = this._axisGroup;\n    this._axisGroup = new graphic.Group();\n    var layout = singleAxisHelper.layout(axisModel);\n    var axisBuilder = new AxisBuilder(axisModel, layout);\n    zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n    group.add(this._axisGroup);\n    group.add(axisBuilder.getGroup());\n    zrUtil.each(selfBuilderAttrs, function (name) {\n      if (axisModel.get([name, 'show'])) {\n        axisElementBuilders[name](this, this.group, this._axisGroup, axisModel);\n      }\n    }, this);\n    graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel);\n\n    _super.prototype.render.call(this, axisModel, ecModel, api, payload);\n  };\n\n  SingleAxisView.prototype.remove = function () {\n    rectCoordAxisHandleRemove(this);\n  };\n\n  SingleAxisView.type = 'singleAxis';\n  return SingleAxisView;\n}(AxisView);\n\nvar axisElementBuilders = {\n  splitLine: function (axisView, group, axisGroup, axisModel) {\n    var axis = axisModel.axis;\n\n    if (axis.scale.isBlank()) {\n      return;\n    }\n\n    var splitLineModel = axisModel.getModel('splitLine');\n    var lineStyleModel = splitLineModel.getModel('lineStyle');\n    var lineColors = lineStyleModel.get('color');\n    lineColors = lineColors instanceof Array ? lineColors : [lineColors];\n    var gridRect = axisModel.coordinateSystem.getRect();\n    var isHorizontal = axis.isHorizontal();\n    var splitLines = [];\n    var lineCount = 0;\n    var ticksCoords = axis.getTicksCoords({\n      tickModel: splitLineModel\n    });\n    var p1 = [];\n    var p2 = [];\n\n    for (var i = 0; i < ticksCoords.length; ++i) {\n      var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n\n      if (isHorizontal) {\n        p1[0] = tickCoord;\n        p1[1] = gridRect.y;\n        p2[0] = tickCoord;\n        p2[1] = gridRect.y + gridRect.height;\n      } else {\n        p1[0] = gridRect.x;\n        p1[1] = tickCoord;\n        p2[0] = gridRect.x + gridRect.width;\n        p2[1] = tickCoord;\n      }\n\n      var colorIndex = lineCount++ % lineColors.length;\n      splitLines[colorIndex] = splitLines[colorIndex] || [];\n      splitLines[colorIndex].push(new graphic.Line({\n        subPixelOptimize: true,\n        shape: {\n          x1: p1[0],\n          y1: p1[1],\n          x2: p2[0],\n          y2: p2[1]\n        },\n        silent: true\n      }));\n    }\n\n    var lineStyle = lineStyleModel.getLineStyle(['color']);\n\n    for (var i = 0; i < splitLines.length; ++i) {\n      group.add(graphic.mergePath(splitLines[i], {\n        style: zrUtil.defaults({\n          stroke: lineColors[i % lineColors.length]\n        }, lineStyle),\n        silent: true\n      }));\n    }\n  },\n  splitArea: function (axisView, group, axisGroup, axisModel) {\n    rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, axisModel);\n  }\n};\nexport default SingleAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin';\nimport { mixin } from 'zrender/lib/core/util';\n\nvar SingleAxisModel = function (_super) {\n  __extends(SingleAxisModel, _super);\n\n  function SingleAxisModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SingleAxisModel.type;\n    return _this;\n  }\n\n  SingleAxisModel.prototype.getCoordSysModel = function () {\n    return this;\n  };\n\n  SingleAxisModel.type = 'singleAxis';\n  SingleAxisModel.layoutMode = 'box';\n  SingleAxisModel.defaultOption = {\n    left: '5%',\n    top: '5%',\n    right: '5%',\n    bottom: '5%',\n    type: 'value',\n    position: 'bottom',\n    orient: 'horizontal',\n    axisLine: {\n      show: true,\n      lineStyle: {\n        width: 1,\n        type: 'solid'\n      }\n    },\n    tooltip: {\n      show: true\n    },\n    axisTick: {\n      show: true,\n      length: 6,\n      lineStyle: {\n        width: 1\n      }\n    },\n    axisLabel: {\n      show: true,\n      interval: 'auto'\n    },\n    splitLine: {\n      show: true,\n      lineStyle: {\n        type: 'dashed',\n        opacity: 0.2\n      }\n    }\n  };\n  return SingleAxisModel;\n}(ComponentModel);\n\nmixin(SingleAxisModel, AxisModelCommonMixin.prototype);\nexport default SingleAxisModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis';\n\nvar SingleAxis = function (_super) {\n  __extends(SingleAxis, _super);\n\n  function SingleAxis(dim, scale, coordExtent, axisType, position) {\n    var _this = _super.call(this, dim, scale, coordExtent) || this;\n\n    _this.type = axisType || 'value';\n    _this.position = position || 'bottom';\n    return _this;\n  }\n\n  SingleAxis.prototype.isHorizontal = function () {\n    var position = this.position;\n    return position === 'top' || position === 'bottom';\n  };\n\n  SingleAxis.prototype.pointToData = function (point, clamp) {\n    return this.coordinateSystem.pointToData(point)[0];\n  };\n\n  return SingleAxis;\n}(Axis);\n\nexport default SingleAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SingleAxis from './SingleAxis';\nimport * as axisHelper from '../axisHelper';\nimport { getLayoutRect } from '../../util/layout';\nimport { each } from 'zrender/lib/core/util';\n\nvar Single = function () {\n  function Single(axisModel, ecModel, api) {\n    this.type = 'single';\n    this.dimension = 'single';\n    this.dimensions = ['single'];\n    this.axisPointerEnabled = true;\n    this.model = axisModel;\n\n    this._init(axisModel, ecModel, api);\n  }\n\n  Single.prototype._init = function (axisModel, ecModel, api) {\n    var dim = this.dimension;\n    var axis = new SingleAxis(dim, axisHelper.createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisModel.get('position'));\n    var isCategory = axis.type === 'category';\n    axis.onBand = isCategory && axisModel.get('boundaryGap');\n    axis.inverse = axisModel.get('inverse');\n    axis.orient = axisModel.get('orient');\n    axisModel.axis = axis;\n    axis.model = axisModel;\n    axis.coordinateSystem = this;\n    this._axis = axis;\n  };\n\n  Single.prototype.update = function (ecModel, api) {\n    ecModel.eachSeries(function (seriesModel) {\n      if (seriesModel.coordinateSystem === this) {\n        var data_1 = seriesModel.getData();\n        each(data_1.mapDimensionsAll(this.dimension), function (dim) {\n          this._axis.scale.unionExtentFromData(data_1, dim);\n        }, this);\n        axisHelper.niceScaleExtent(this._axis.scale, this._axis.model);\n      }\n    }, this);\n  };\n\n  Single.prototype.resize = function (axisModel, api) {\n    this._rect = getLayoutRect({\n      left: axisModel.get('left'),\n      top: axisModel.get('top'),\n      right: axisModel.get('right'),\n      bottom: axisModel.get('bottom'),\n      width: axisModel.get('width'),\n      height: axisModel.get('height')\n    }, {\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n\n    this._adjustAxis();\n  };\n\n  Single.prototype.getRect = function () {\n    return this._rect;\n  };\n\n  Single.prototype._adjustAxis = function () {\n    var rect = this._rect;\n    var axis = this._axis;\n    var isHorizontal = axis.isHorizontal();\n    var extent = isHorizontal ? [0, rect.width] : [0, rect.height];\n    var idx = axis.reverse ? 1 : 0;\n    axis.setExtent(extent[idx], extent[1 - idx]);\n\n    this._updateAxisTransform(axis, isHorizontal ? rect.x : rect.y);\n  };\n\n  Single.prototype._updateAxisTransform = function (axis, coordBase) {\n    var axisExtent = axis.getExtent();\n    var extentSum = axisExtent[0] + axisExtent[1];\n    var isHorizontal = axis.isHorizontal();\n    axis.toGlobalCoord = isHorizontal ? function (coord) {\n      return coord + coordBase;\n    } : function (coord) {\n      return extentSum - coord + coordBase;\n    };\n    axis.toLocalCoord = isHorizontal ? function (coord) {\n      return coord - coordBase;\n    } : function (coord) {\n      return extentSum - coord + coordBase;\n    };\n  };\n\n  Single.prototype.getAxis = function () {\n    return this._axis;\n  };\n\n  Single.prototype.getBaseAxis = function () {\n    return this._axis;\n  };\n\n  Single.prototype.getAxes = function () {\n    return [this._axis];\n  };\n\n  Single.prototype.getTooltipAxes = function () {\n    return {\n      baseAxes: [this.getAxis()],\n      otherAxes: []\n    };\n  };\n\n  Single.prototype.containPoint = function (point) {\n    var rect = this.getRect();\n    var axis = this.getAxis();\n    var orient = axis.orient;\n\n    if (orient === 'horizontal') {\n      return axis.contain(axis.toLocalCoord(point[0])) && point[1] >= rect.y && point[1] <= rect.y + rect.height;\n    } else {\n      return axis.contain(axis.toLocalCoord(point[1])) && point[0] >= rect.y && point[0] <= rect.y + rect.height;\n    }\n  };\n\n  Single.prototype.pointToData = function (point) {\n    var axis = this.getAxis();\n    return [axis.coordToData(axis.toLocalCoord(point[axis.orient === 'horizontal' ? 0 : 1]))];\n  };\n\n  Single.prototype.dataToPoint = function (val) {\n    var axis = this.getAxis();\n    var rect = this.getRect();\n    var pt = [];\n    var idx = axis.orient === 'horizontal' ? 0 : 1;\n\n    if (val instanceof Array) {\n      val = val[0];\n    }\n\n    pt[idx] = axis.toGlobalCoord(axis.dataToCoord(+val));\n    pt[1 - idx] = idx === 0 ? rect.y + rect.height / 2 : rect.x + rect.width / 2;\n    return pt;\n  };\n\n  Single.prototype.convertToPixel = function (ecModel, finder, value) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? this.dataToPoint(value) : null;\n  };\n\n  Single.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? this.pointToData(pixel) : null;\n  };\n\n  return Single;\n}();\n\nfunction getCoordSys(finder) {\n  var seriesModel = finder.seriesModel;\n  var singleModel = finder.singleAxisModel;\n  return singleModel && singleModel.coordinateSystem || seriesModel && seriesModel.coordinateSystem;\n}\n\nexport default Single;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Single from './Single';\nimport { SINGLE_REFERRING } from '../../util/model';\n\nfunction create(ecModel, api) {\n  var singles = [];\n  ecModel.eachComponent('singleAxis', function (axisModel, idx) {\n    var single = new Single(axisModel, ecModel, api);\n    single.name = 'single_' + idx;\n    single.resize(axisModel, api);\n    axisModel.coordinateSystem = single;\n    singles.push(single);\n  });\n  ecModel.eachSeries(function (seriesModel) {\n    if (seriesModel.get('coordinateSystem') === 'singleAxis') {\n      var singleAxisModel = seriesModel.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\n      seriesModel.coordinateSystem = singleAxisModel && singleAxisModel.coordinateSystem;\n    }\n  });\n  return singles;\n}\n\nvar singleCreator = {\n  create: create,\n  dimensions: Single.prototype.dimensions\n};\nexport default singleCreator;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BaseAxisPointer from './BaseAxisPointer';\nimport * as viewHelper from './viewHelper';\nimport * as singleAxisHelper from '../../coord/single/singleAxisHelper';\nvar XY = ['x', 'y'];\nvar WH = ['width', 'height'];\n\nvar SingleAxisPointer = function (_super) {\n  __extends(SingleAxisPointer, _super);\n\n  function SingleAxisPointer() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  SingleAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\n    var axis = axisModel.axis;\n    var coordSys = axis.coordinateSystem;\n    var otherExtent = getGlobalExtent(coordSys, 1 - getPointDimIndex(axis));\n    var pixelValue = coordSys.dataToPoint(value)[0];\n    var axisPointerType = axisPointerModel.get('type');\n\n    if (axisPointerType && axisPointerType !== 'none') {\n      var elStyle = viewHelper.buildElStyle(axisPointerModel);\n      var pointerOption = pointerShapeBuilder[axisPointerType](axis, pixelValue, otherExtent);\n      pointerOption.style = elStyle;\n      elOption.graphicKey = pointerOption.type;\n      elOption.pointer = pointerOption;\n    }\n\n    var layoutInfo = singleAxisHelper.layout(axisModel);\n    viewHelper.buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api);\n  };\n\n  SingleAxisPointer.prototype.getHandleTransform = function (value, axisModel, axisPointerModel) {\n    var layoutInfo = singleAxisHelper.layout(axisModel, {\n      labelInside: false\n    });\n    layoutInfo.labelMargin = axisPointerModel.get(['handle', 'margin']);\n    var position = viewHelper.getTransformedPosition(axisModel.axis, value, layoutInfo);\n    return {\n      x: position[0],\n      y: position[1],\n      rotation: layoutInfo.rotation + (layoutInfo.labelDirection < 0 ? Math.PI : 0)\n    };\n  };\n\n  SingleAxisPointer.prototype.updateHandleTransform = function (transform, delta, axisModel, axisPointerModel) {\n    var axis = axisModel.axis;\n    var coordSys = axis.coordinateSystem;\n    var dimIndex = getPointDimIndex(axis);\n    var axisExtent = getGlobalExtent(coordSys, dimIndex);\n    var currPosition = [transform.x, transform.y];\n    currPosition[dimIndex] += delta[dimIndex];\n    currPosition[dimIndex] = Math.min(axisExtent[1], currPosition[dimIndex]);\n    currPosition[dimIndex] = Math.max(axisExtent[0], currPosition[dimIndex]);\n    var otherExtent = getGlobalExtent(coordSys, 1 - dimIndex);\n    var cursorOtherValue = (otherExtent[1] + otherExtent[0]) / 2;\n    var cursorPoint = [cursorOtherValue, cursorOtherValue];\n    cursorPoint[dimIndex] = currPosition[dimIndex];\n    return {\n      x: currPosition[0],\n      y: currPosition[1],\n      rotation: transform.rotation,\n      cursorPoint: cursorPoint,\n      tooltipOption: {\n        verticalAlign: 'middle'\n      }\n    };\n  };\n\n  return SingleAxisPointer;\n}(BaseAxisPointer);\n\nvar pointerShapeBuilder = {\n  line: function (axis, pixelValue, otherExtent) {\n    var targetShape = viewHelper.makeLineShape([pixelValue, otherExtent[0]], [pixelValue, otherExtent[1]], getPointDimIndex(axis));\n    return {\n      type: 'Line',\n      subPixelOptimize: true,\n      shape: targetShape\n    };\n  },\n  shadow: function (axis, pixelValue, otherExtent) {\n    var bandWidth = axis.getBandWidth();\n    var span = otherExtent[1] - otherExtent[0];\n    return {\n      type: 'Rect',\n      shape: viewHelper.makeRectShape([pixelValue - bandWidth / 2, otherExtent[0]], [bandWidth, span], getPointDimIndex(axis))\n    };\n  }\n};\n\nfunction getPointDimIndex(axis) {\n  return axis.isHorizontal() ? 0 : 1;\n}\n\nfunction getGlobalExtent(coordSys, dimIndex) {\n  var rect = coordSys.getRect();\n  return [rect[XY[dimIndex]], rect[XY[dimIndex]] + rect[WH[dimIndex]]];\n}\n\nexport default SingleAxisPointer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { use } from '../../extension';\nimport ComponentView from '../../view/Component';\nimport SingleAxisView from '../axis/SingleAxisView';\nimport axisModelCreator from '../../coord/axisModelCreator';\nimport SingleAxisModel from '../../coord/single/AxisModel';\nimport singleCreator from '../../coord/single/singleCreator';\nimport { install as installAxisPointer } from '../axisPointer/install';\nimport AxisView from '../axis/AxisView';\nimport SingleAxisPointer from '../axisPointer/SingleAxisPointer';\n\nvar SingleView = function (_super) {\n  __extends(SingleView, _super);\n\n  function SingleView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SingleView.type;\n    return _this;\n  }\n\n  SingleView.type = 'single';\n  return SingleView;\n}(ComponentView);\n\nexport function install(registers) {\n  use(installAxisPointer);\n  AxisView.registerAxisPointerClass('SingleAxisPointer', SingleAxisPointer);\n  registers.registerComponentView(SingleView);\n  registers.registerComponentView(SingleAxisView);\n  registers.registerComponentModel(SingleAxisModel);\n  axisModelCreator(registers, 'single', SingleAxisModel, SingleAxisModel.defaultOption);\n  registers.registerCoordinateSystem('single', singleCreator);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\nimport { getLayoutParams, sizeCalculable, mergeLayoutParam } from '../../util/layout';\n\nvar CalendarModel = function (_super) {\n  __extends(CalendarModel, _super);\n\n  function CalendarModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CalendarModel.type;\n    return _this;\n  }\n\n  CalendarModel.prototype.init = function (option, parentModel, ecModel) {\n    var inputPositionParams = getLayoutParams(option);\n\n    _super.prototype.init.apply(this, arguments);\n\n    mergeAndNormalizeLayoutParams(option, inputPositionParams);\n  };\n\n  CalendarModel.prototype.mergeOption = function (option) {\n    _super.prototype.mergeOption.apply(this, arguments);\n\n    mergeAndNormalizeLayoutParams(this.option, option);\n  };\n\n  CalendarModel.prototype.getCellSize = function () {\n    return this.option.cellSize;\n  };\n\n  CalendarModel.type = 'calendar';\n  CalendarModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    left: 80,\n    top: 60,\n    cellSize: 20,\n    orient: 'horizontal',\n    splitLine: {\n      show: true,\n      lineStyle: {\n        color: '#000',\n        width: 1,\n        type: 'solid'\n      }\n    },\n    itemStyle: {\n      color: '#fff',\n      borderWidth: 1,\n      borderColor: '#ccc'\n    },\n    dayLabel: {\n      show: true,\n      firstDay: 0,\n      position: 'start',\n      margin: '50%',\n      nameMap: 'en',\n      color: '#000'\n    },\n    monthLabel: {\n      show: true,\n      position: 'start',\n      margin: 5,\n      align: 'center',\n      nameMap: 'en',\n      formatter: null,\n      color: '#000'\n    },\n    yearLabel: {\n      show: true,\n      position: null,\n      margin: 30,\n      formatter: null,\n      color: '#ccc',\n      fontFamily: 'sans-serif',\n      fontWeight: 'bolder',\n      fontSize: 20\n    }\n  };\n  return CalendarModel;\n}(ComponentModel);\n\nfunction mergeAndNormalizeLayoutParams(target, raw) {\n  var cellSize = target.cellSize;\n  var cellSizeArr;\n\n  if (!zrUtil.isArray(cellSize)) {\n    cellSizeArr = target.cellSize = [cellSize, cellSize];\n  } else {\n    cellSizeArr = cellSize;\n  }\n\n  if (cellSizeArr.length === 1) {\n    cellSizeArr[1] = cellSizeArr[0];\n  }\n\n  var ignoreSize = zrUtil.map([0, 1], function (hvIdx) {\n    if (sizeCalculable(raw, hvIdx)) {\n      cellSizeArr[hvIdx] = 'auto';\n    }\n\n    return cellSizeArr[hvIdx] != null && cellSizeArr[hvIdx] !== 'auto';\n  });\n  mergeLayoutParam(target, raw, {\n    type: 'box',\n    ignoreSize: ignoreSize\n  });\n}\n\nexport default CalendarModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { createTextStyle } from '../../label/labelStyle';\nimport * as formatUtil from '../../util/format';\nimport * as numberUtil from '../../util/number';\nimport ComponentView from '../../view/Component';\nvar MONTH_TEXT = {\n  EN: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n  CN: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']\n};\nvar WEEK_TEXT = {\n  EN: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n  CN: ['日', '一', '二', '三', '四', '五', '六']\n};\n\nvar CalendarView = function (_super) {\n  __extends(CalendarView, _super);\n\n  function CalendarView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CalendarView.type;\n    return _this;\n  }\n\n  CalendarView.prototype.render = function (calendarModel, ecModel, api) {\n    var group = this.group;\n    group.removeAll();\n    var coordSys = calendarModel.coordinateSystem;\n    var rangeData = coordSys.getRangeInfo();\n    var orient = coordSys.getOrient();\n\n    this._renderDayRect(calendarModel, rangeData, group);\n\n    this._renderLines(calendarModel, rangeData, orient, group);\n\n    this._renderYearText(calendarModel, rangeData, orient, group);\n\n    this._renderMonthText(calendarModel, orient, group);\n\n    this._renderWeekText(calendarModel, rangeData, orient, group);\n  };\n\n  CalendarView.prototype._renderDayRect = function (calendarModel, rangeData, group) {\n    var coordSys = calendarModel.coordinateSystem;\n    var itemRectStyleModel = calendarModel.getModel('itemStyle').getItemStyle();\n    var sw = coordSys.getCellWidth();\n    var sh = coordSys.getCellHeight();\n\n    for (var i = rangeData.start.time; i <= rangeData.end.time; i = coordSys.getNextNDay(i, 1).time) {\n      var point = coordSys.dataToRect([i], false).tl;\n      var rect = new graphic.Rect({\n        shape: {\n          x: point[0],\n          y: point[1],\n          width: sw,\n          height: sh\n        },\n        cursor: 'default',\n        style: itemRectStyleModel\n      });\n      group.add(rect);\n    }\n  };\n\n  CalendarView.prototype._renderLines = function (calendarModel, rangeData, orient, group) {\n    var self = this;\n    var coordSys = calendarModel.coordinateSystem;\n    var lineStyleModel = calendarModel.getModel(['splitLine', 'lineStyle']).getLineStyle();\n    var show = calendarModel.get(['splitLine', 'show']);\n    var lineWidth = lineStyleModel.lineWidth;\n    this._tlpoints = [];\n    this._blpoints = [];\n    this._firstDayOfMonth = [];\n    this._firstDayPoints = [];\n    var firstDay = rangeData.start;\n\n    for (var i = 0; firstDay.time <= rangeData.end.time; i++) {\n      addPoints(firstDay.formatedDate);\n\n      if (i === 0) {\n        firstDay = coordSys.getDateInfo(rangeData.start.y + '-' + rangeData.start.m);\n      }\n\n      var date = firstDay.date;\n      date.setMonth(date.getMonth() + 1);\n      firstDay = coordSys.getDateInfo(date);\n    }\n\n    addPoints(coordSys.getNextNDay(rangeData.end.time, 1).formatedDate);\n\n    function addPoints(date) {\n      self._firstDayOfMonth.push(coordSys.getDateInfo(date));\n\n      self._firstDayPoints.push(coordSys.dataToRect([date], false).tl);\n\n      var points = self._getLinePointsOfOneWeek(calendarModel, date, orient);\n\n      self._tlpoints.push(points[0]);\n\n      self._blpoints.push(points[points.length - 1]);\n\n      show && self._drawSplitline(points, lineStyleModel, group);\n    }\n\n    show && this._drawSplitline(self._getEdgesPoints(self._tlpoints, lineWidth, orient), lineStyleModel, group);\n    show && this._drawSplitline(self._getEdgesPoints(self._blpoints, lineWidth, orient), lineStyleModel, group);\n  };\n\n  CalendarView.prototype._getEdgesPoints = function (points, lineWidth, orient) {\n    var rs = [points[0].slice(), points[points.length - 1].slice()];\n    var idx = orient === 'horizontal' ? 0 : 1;\n    rs[0][idx] = rs[0][idx] - lineWidth / 2;\n    rs[1][idx] = rs[1][idx] + lineWidth / 2;\n    return rs;\n  };\n\n  CalendarView.prototype._drawSplitline = function (points, lineStyle, group) {\n    var poyline = new graphic.Polyline({\n      z2: 20,\n      shape: {\n        points: points\n      },\n      style: lineStyle\n    });\n    group.add(poyline);\n  };\n\n  CalendarView.prototype._getLinePointsOfOneWeek = function (calendarModel, date, orient) {\n    var coordSys = calendarModel.coordinateSystem;\n    var parsedDate = coordSys.getDateInfo(date);\n    var points = [];\n\n    for (var i = 0; i < 7; i++) {\n      var tmpD = coordSys.getNextNDay(parsedDate.time, i);\n      var point = coordSys.dataToRect([tmpD.time], false);\n      points[2 * tmpD.day] = point.tl;\n      points[2 * tmpD.day + 1] = point[orient === 'horizontal' ? 'bl' : 'tr'];\n    }\n\n    return points;\n  };\n\n  CalendarView.prototype._formatterLabel = function (formatter, params) {\n    if (typeof formatter === 'string' && formatter) {\n      return formatUtil.formatTplSimple(formatter, params);\n    }\n\n    if (typeof formatter === 'function') {\n      return formatter(params);\n    }\n\n    return params.nameMap;\n  };\n\n  CalendarView.prototype._yearTextPositionControl = function (textEl, point, orient, position, margin) {\n    var x = point[0];\n    var y = point[1];\n    var aligns = ['center', 'bottom'];\n\n    if (position === 'bottom') {\n      y += margin;\n      aligns = ['center', 'top'];\n    } else if (position === 'left') {\n      x -= margin;\n    } else if (position === 'right') {\n      x += margin;\n      aligns = ['center', 'top'];\n    } else {\n      y -= margin;\n    }\n\n    var rotate = 0;\n\n    if (position === 'left' || position === 'right') {\n      rotate = Math.PI / 2;\n    }\n\n    return {\n      rotation: rotate,\n      x: x,\n      y: y,\n      style: {\n        align: aligns[0],\n        verticalAlign: aligns[1]\n      }\n    };\n  };\n\n  CalendarView.prototype._renderYearText = function (calendarModel, rangeData, orient, group) {\n    var yearLabel = calendarModel.getModel('yearLabel');\n\n    if (!yearLabel.get('show')) {\n      return;\n    }\n\n    var margin = yearLabel.get('margin');\n    var pos = yearLabel.get('position');\n\n    if (!pos) {\n      pos = orient !== 'horizontal' ? 'top' : 'left';\n    }\n\n    var points = [this._tlpoints[this._tlpoints.length - 1], this._blpoints[0]];\n    var xc = (points[0][0] + points[1][0]) / 2;\n    var yc = (points[0][1] + points[1][1]) / 2;\n    var idx = orient === 'horizontal' ? 0 : 1;\n    var posPoints = {\n      top: [xc, points[idx][1]],\n      bottom: [xc, points[1 - idx][1]],\n      left: [points[1 - idx][0], yc],\n      right: [points[idx][0], yc]\n    };\n    var name = rangeData.start.y;\n\n    if (+rangeData.end.y > +rangeData.start.y) {\n      name = name + '-' + rangeData.end.y;\n    }\n\n    var formatter = yearLabel.get('formatter');\n    var params = {\n      start: rangeData.start.y,\n      end: rangeData.end.y,\n      nameMap: name\n    };\n\n    var content = this._formatterLabel(formatter, params);\n\n    var yearText = new graphic.Text({\n      z2: 30,\n      style: createTextStyle(yearLabel, {\n        text: content\n      })\n    });\n    yearText.attr(this._yearTextPositionControl(yearText, posPoints[pos], orient, pos, margin));\n    group.add(yearText);\n  };\n\n  CalendarView.prototype._monthTextPositionControl = function (point, isCenter, orient, position, margin) {\n    var align = 'left';\n    var vAlign = 'top';\n    var x = point[0];\n    var y = point[1];\n\n    if (orient === 'horizontal') {\n      y = y + margin;\n\n      if (isCenter) {\n        align = 'center';\n      }\n\n      if (position === 'start') {\n        vAlign = 'bottom';\n      }\n    } else {\n      x = x + margin;\n\n      if (isCenter) {\n        vAlign = 'middle';\n      }\n\n      if (position === 'start') {\n        align = 'right';\n      }\n    }\n\n    return {\n      x: x,\n      y: y,\n      align: align,\n      verticalAlign: vAlign\n    };\n  };\n\n  CalendarView.prototype._renderMonthText = function (calendarModel, orient, group) {\n    var monthLabel = calendarModel.getModel('monthLabel');\n\n    if (!monthLabel.get('show')) {\n      return;\n    }\n\n    var nameMap = monthLabel.get('nameMap');\n    var margin = monthLabel.get('margin');\n    var pos = monthLabel.get('position');\n    var align = monthLabel.get('align');\n    var termPoints = [this._tlpoints, this._blpoints];\n\n    if (zrUtil.isString(nameMap)) {\n      nameMap = MONTH_TEXT[nameMap.toUpperCase()] || [];\n    }\n\n    var idx = pos === 'start' ? 0 : 1;\n    var axis = orient === 'horizontal' ? 0 : 1;\n    margin = pos === 'start' ? -margin : margin;\n    var isCenter = align === 'center';\n\n    for (var i = 0; i < termPoints[idx].length - 1; i++) {\n      var tmp = termPoints[idx][i].slice();\n      var firstDay = this._firstDayOfMonth[i];\n\n      if (isCenter) {\n        var firstDayPoints = this._firstDayPoints[i];\n        tmp[axis] = (firstDayPoints[axis] + termPoints[0][i + 1][axis]) / 2;\n      }\n\n      var formatter = monthLabel.get('formatter');\n      var name_1 = nameMap[+firstDay.m - 1];\n      var params = {\n        yyyy: firstDay.y,\n        yy: (firstDay.y + '').slice(2),\n        MM: firstDay.m,\n        M: +firstDay.m,\n        nameMap: name_1\n      };\n\n      var content = this._formatterLabel(formatter, params);\n\n      var monthText = new graphic.Text({\n        z2: 30,\n        style: zrUtil.extend(createTextStyle(monthLabel, {\n          text: content\n        }), this._monthTextPositionControl(tmp, isCenter, orient, pos, margin))\n      });\n      group.add(monthText);\n    }\n  };\n\n  CalendarView.prototype._weekTextPositionControl = function (point, orient, position, margin, cellSize) {\n    var align = 'center';\n    var vAlign = 'middle';\n    var x = point[0];\n    var y = point[1];\n    var isStart = position === 'start';\n\n    if (orient === 'horizontal') {\n      x = x + margin + (isStart ? 1 : -1) * cellSize[0] / 2;\n      align = isStart ? 'right' : 'left';\n    } else {\n      y = y + margin + (isStart ? 1 : -1) * cellSize[1] / 2;\n      vAlign = isStart ? 'bottom' : 'top';\n    }\n\n    return {\n      x: x,\n      y: y,\n      align: align,\n      verticalAlign: vAlign\n    };\n  };\n\n  CalendarView.prototype._renderWeekText = function (calendarModel, rangeData, orient, group) {\n    var dayLabel = calendarModel.getModel('dayLabel');\n\n    if (!dayLabel.get('show')) {\n      return;\n    }\n\n    var coordSys = calendarModel.coordinateSystem;\n    var pos = dayLabel.get('position');\n    var nameMap = dayLabel.get('nameMap');\n    var margin = dayLabel.get('margin');\n    var firstDayOfWeek = coordSys.getFirstDayOfWeek();\n\n    if (zrUtil.isString(nameMap)) {\n      nameMap = WEEK_TEXT[nameMap.toUpperCase()] || [];\n    }\n\n    var start = coordSys.getNextNDay(rangeData.end.time, 7 - rangeData.lweek).time;\n    var cellSize = [coordSys.getCellWidth(), coordSys.getCellHeight()];\n    margin = numberUtil.parsePercent(margin, cellSize[orient === 'horizontal' ? 0 : 1]);\n\n    if (pos === 'start') {\n      start = coordSys.getNextNDay(rangeData.start.time, -(7 + rangeData.fweek)).time;\n      margin = -margin;\n    }\n\n    for (var i = 0; i < 7; i++) {\n      var tmpD = coordSys.getNextNDay(start, i);\n      var point = coordSys.dataToRect([tmpD.time], false).center;\n      var day = i;\n      day = Math.abs((i + firstDayOfWeek) % 7);\n      var weekText = new graphic.Text({\n        z2: 30,\n        style: zrUtil.extend(createTextStyle(dayLabel, {\n          text: nameMap[day]\n        }), this._weekTextPositionControl(point, orient, pos, margin, cellSize))\n      });\n      group.add(weekText);\n    }\n  };\n\n  CalendarView.type = 'calendar';\n  return CalendarView;\n}(ComponentView);\n\nexport default CalendarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as layout from '../../util/layout';\nimport * as numberUtil from '../../util/number';\nvar PROXIMATE_ONE_DAY = 86400000;\n\nvar Calendar = function () {\n  function Calendar(calendarModel, ecModel, api) {\n    this.type = 'calendar';\n    this.dimensions = Calendar.dimensions;\n    this.getDimensionsInfo = Calendar.getDimensionsInfo;\n    this._model = calendarModel;\n  }\n\n  Calendar.getDimensionsInfo = function () {\n    return [{\n      name: 'time',\n      type: 'time'\n    }, 'value'];\n  };\n\n  Calendar.prototype.getRangeInfo = function () {\n    return this._rangeInfo;\n  };\n\n  Calendar.prototype.getModel = function () {\n    return this._model;\n  };\n\n  Calendar.prototype.getRect = function () {\n    return this._rect;\n  };\n\n  Calendar.prototype.getCellWidth = function () {\n    return this._sw;\n  };\n\n  Calendar.prototype.getCellHeight = function () {\n    return this._sh;\n  };\n\n  Calendar.prototype.getOrient = function () {\n    return this._orient;\n  };\n\n  Calendar.prototype.getFirstDayOfWeek = function () {\n    return this._firstDayOfWeek;\n  };\n\n  Calendar.prototype.getDateInfo = function (date) {\n    date = numberUtil.parseDate(date);\n    var y = date.getFullYear();\n    var m = date.getMonth() + 1;\n    var mStr = m < 10 ? '0' + m : '' + m;\n    var d = date.getDate();\n    var dStr = d < 10 ? '0' + d : '' + d;\n    var day = date.getDay();\n    day = Math.abs((day + 7 - this.getFirstDayOfWeek()) % 7);\n    return {\n      y: y + '',\n      m: mStr,\n      d: dStr,\n      day: day,\n      time: date.getTime(),\n      formatedDate: y + '-' + mStr + '-' + dStr,\n      date: date\n    };\n  };\n\n  Calendar.prototype.getNextNDay = function (date, n) {\n    n = n || 0;\n\n    if (n === 0) {\n      return this.getDateInfo(date);\n    }\n\n    date = new Date(this.getDateInfo(date).time);\n    date.setDate(date.getDate() + n);\n    return this.getDateInfo(date);\n  };\n\n  Calendar.prototype.update = function (ecModel, api) {\n    this._firstDayOfWeek = +this._model.getModel('dayLabel').get('firstDay');\n    this._orient = this._model.get('orient');\n    this._lineWidth = this._model.getModel('itemStyle').getItemStyle().lineWidth || 0;\n    this._rangeInfo = this._getRangeInfo(this._initRangeOption());\n    var weeks = this._rangeInfo.weeks || 1;\n    var whNames = ['width', 'height'];\n\n    var cellSize = this._model.getCellSize().slice();\n\n    var layoutParams = this._model.getBoxLayoutParams();\n\n    var cellNumbers = this._orient === 'horizontal' ? [weeks, 7] : [7, weeks];\n    zrUtil.each([0, 1], function (idx) {\n      if (cellSizeSpecified(cellSize, idx)) {\n        layoutParams[whNames[idx]] = cellSize[idx] * cellNumbers[idx];\n      }\n    });\n    var whGlobal = {\n      width: api.getWidth(),\n      height: api.getHeight()\n    };\n    var calendarRect = this._rect = layout.getLayoutRect(layoutParams, whGlobal);\n    zrUtil.each([0, 1], function (idx) {\n      if (!cellSizeSpecified(cellSize, idx)) {\n        cellSize[idx] = calendarRect[whNames[idx]] / cellNumbers[idx];\n      }\n    });\n\n    function cellSizeSpecified(cellSize, idx) {\n      return cellSize[idx] != null && cellSize[idx] !== 'auto';\n    }\n\n    this._sw = cellSize[0];\n    this._sh = cellSize[1];\n  };\n\n  Calendar.prototype.dataToPoint = function (data, clamp) {\n    zrUtil.isArray(data) && (data = data[0]);\n    clamp == null && (clamp = true);\n    var dayInfo = this.getDateInfo(data);\n    var range = this._rangeInfo;\n    var date = dayInfo.formatedDate;\n\n    if (clamp && !(dayInfo.time >= range.start.time && dayInfo.time < range.end.time + PROXIMATE_ONE_DAY)) {\n      return [NaN, NaN];\n    }\n\n    var week = dayInfo.day;\n\n    var nthWeek = this._getRangeInfo([range.start.time, date]).nthWeek;\n\n    if (this._orient === 'vertical') {\n      return [this._rect.x + week * this._sw + this._sw / 2, this._rect.y + nthWeek * this._sh + this._sh / 2];\n    }\n\n    return [this._rect.x + nthWeek * this._sw + this._sw / 2, this._rect.y + week * this._sh + this._sh / 2];\n  };\n\n  Calendar.prototype.pointToData = function (point) {\n    var date = this.pointToDate(point);\n    return date && date.time;\n  };\n\n  Calendar.prototype.dataToRect = function (data, clamp) {\n    var point = this.dataToPoint(data, clamp);\n    return {\n      contentShape: {\n        x: point[0] - (this._sw - this._lineWidth) / 2,\n        y: point[1] - (this._sh - this._lineWidth) / 2,\n        width: this._sw - this._lineWidth,\n        height: this._sh - this._lineWidth\n      },\n      center: point,\n      tl: [point[0] - this._sw / 2, point[1] - this._sh / 2],\n      tr: [point[0] + this._sw / 2, point[1] - this._sh / 2],\n      br: [point[0] + this._sw / 2, point[1] + this._sh / 2],\n      bl: [point[0] - this._sw / 2, point[1] + this._sh / 2]\n    };\n  };\n\n  Calendar.prototype.pointToDate = function (point) {\n    var nthX = Math.floor((point[0] - this._rect.x) / this._sw) + 1;\n    var nthY = Math.floor((point[1] - this._rect.y) / this._sh) + 1;\n    var range = this._rangeInfo.range;\n\n    if (this._orient === 'vertical') {\n      return this._getDateByWeeksAndDay(nthY, nthX - 1, range);\n    }\n\n    return this._getDateByWeeksAndDay(nthX, nthY - 1, range);\n  };\n\n  Calendar.prototype.convertToPixel = function (ecModel, finder, value) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? coordSys.dataToPoint(value) : null;\n  };\n\n  Calendar.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? coordSys.pointToData(pixel) : null;\n  };\n\n  Calendar.prototype.containPoint = function (point) {\n    console.warn('Not implemented.');\n    return false;\n  };\n\n  Calendar.prototype._initRangeOption = function () {\n    var range = this._model.get('range');\n\n    var normalizedRange;\n\n    if (zrUtil.isArray(range) && range.length === 1) {\n      range = range[0];\n    }\n\n    if (!zrUtil.isArray(range)) {\n      var rangeStr = range.toString();\n\n      if (/^\\d{4}$/.test(rangeStr)) {\n        normalizedRange = [rangeStr + '-01-01', rangeStr + '-12-31'];\n      }\n\n      if (/^\\d{4}[\\/|-]\\d{1,2}$/.test(rangeStr)) {\n        var start = this.getDateInfo(rangeStr);\n        var firstDay = start.date;\n        firstDay.setMonth(firstDay.getMonth() + 1);\n        var end = this.getNextNDay(firstDay, -1);\n        normalizedRange = [start.formatedDate, end.formatedDate];\n      }\n\n      if (/^\\d{4}[\\/|-]\\d{1,2}[\\/|-]\\d{1,2}$/.test(rangeStr)) {\n        normalizedRange = [rangeStr, rangeStr];\n      }\n    } else {\n      normalizedRange = range;\n    }\n\n    if (!normalizedRange) {\n      if (process.env.NODE_ENV !== 'production') {\n        zrUtil.logError('Invalid date range.');\n      }\n\n      return range;\n    }\n\n    var tmp = this._getRangeInfo(normalizedRange);\n\n    if (tmp.start.time > tmp.end.time) {\n      normalizedRange.reverse();\n    }\n\n    return normalizedRange;\n  };\n\n  Calendar.prototype._getRangeInfo = function (range) {\n    var parsedRange = [this.getDateInfo(range[0]), this.getDateInfo(range[1])];\n    var reversed;\n\n    if (parsedRange[0].time > parsedRange[1].time) {\n      reversed = true;\n      parsedRange.reverse();\n    }\n\n    var allDay = Math.floor(parsedRange[1].time / PROXIMATE_ONE_DAY) - Math.floor(parsedRange[0].time / PROXIMATE_ONE_DAY) + 1;\n    var date = new Date(parsedRange[0].time);\n    var startDateNum = date.getDate();\n    var endDateNum = parsedRange[1].date.getDate();\n    date.setDate(startDateNum + allDay - 1);\n    var dateNum = date.getDate();\n\n    if (dateNum !== endDateNum) {\n      var sign = date.getTime() - parsedRange[1].time > 0 ? 1 : -1;\n\n      while ((dateNum = date.getDate()) !== endDateNum && (date.getTime() - parsedRange[1].time) * sign > 0) {\n        allDay -= sign;\n        date.setDate(dateNum - sign);\n      }\n    }\n\n    var weeks = Math.floor((allDay + parsedRange[0].day + 6) / 7);\n    var nthWeek = reversed ? -weeks + 1 : weeks - 1;\n    reversed && parsedRange.reverse();\n    return {\n      range: [parsedRange[0].formatedDate, parsedRange[1].formatedDate],\n      start: parsedRange[0],\n      end: parsedRange[1],\n      allDay: allDay,\n      weeks: weeks,\n      nthWeek: nthWeek,\n      fweek: parsedRange[0].day,\n      lweek: parsedRange[1].day\n    };\n  };\n\n  Calendar.prototype._getDateByWeeksAndDay = function (nthWeek, day, range) {\n    var rangeInfo = this._getRangeInfo(range);\n\n    if (nthWeek > rangeInfo.weeks || nthWeek === 0 && day < rangeInfo.fweek || nthWeek === rangeInfo.weeks && day > rangeInfo.lweek) {\n      return null;\n    }\n\n    var nthDay = (nthWeek - 1) * 7 - rangeInfo.fweek + day;\n    var date = new Date(rangeInfo.start.time);\n    date.setDate(+rangeInfo.start.d + nthDay);\n    return this.getDateInfo(date);\n  };\n\n  Calendar.create = function (ecModel, api) {\n    var calendarList = [];\n    ecModel.eachComponent('calendar', function (calendarModel) {\n      var calendar = new Calendar(calendarModel, ecModel, api);\n      calendarList.push(calendar);\n      calendarModel.coordinateSystem = calendar;\n    });\n    ecModel.eachSeries(function (calendarSeries) {\n      if (calendarSeries.get('coordinateSystem') === 'calendar') {\n        calendarSeries.coordinateSystem = calendarList[calendarSeries.get('calendarIndex') || 0];\n      }\n    });\n    return calendarList;\n  };\n\n  Calendar.dimensions = ['time', 'value'];\n  return Calendar;\n}();\n\nfunction getCoordSys(finder) {\n  var calendarModel = finder.calendarModel;\n  var seriesModel = finder.seriesModel;\n  var coordSys = calendarModel ? calendarModel.coordinateSystem : seriesModel ? seriesModel.coordinateSystem : null;\n  return coordSys;\n}\n\nexport default Calendar;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport CalendarModel from '../../coord/calendar/CalendarModel';\nimport CalendarView from './CalendarView';\nimport Calendar from '../../coord/calendar/Calendar';\nexport function install(registers) {\n  registers.registerComponentModel(CalendarModel);\n  registers.registerComponentView(CalendarView);\n  registers.registerCoordinateSystem('calendar', Calendar);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nimport * as graphicUtil from '../../util/graphic';\nimport * as layoutUtil from '../../util/layout';\nimport { parsePercent } from '../../util/number';\nimport ComponentModel from '../../model/Component';\nimport ComponentView from '../../view/Component';\nimport { getECData } from '../../util/innerStore';\nimport { isEC4CompatibleStyle, convertFromEC4CompatibleStyle } from '../../util/styleCompat';\nvar TRANSFORM_PROPS = {\n  x: 1,\n  y: 1,\n  scaleX: 1,\n  scaleY: 1,\n  originX: 1,\n  originY: 1,\n  rotation: 1\n};\n;\nvar inner = modelUtil.makeInner();\nvar _nonShapeGraphicElements = {\n  path: null,\n  compoundPath: null,\n  group: graphicUtil.Group,\n  image: graphicUtil.Image,\n  text: graphicUtil.Text\n};\n\nvar preprocessor = function (option) {\n  var graphicOption = option.graphic;\n\n  if (zrUtil.isArray(graphicOption)) {\n    if (!graphicOption[0] || !graphicOption[0].elements) {\n      option.graphic = [{\n        elements: graphicOption\n      }];\n    } else {\n      option.graphic = [option.graphic[0]];\n    }\n  } else if (graphicOption && !graphicOption.elements) {\n    option.graphic = [{\n      elements: [graphicOption]\n    }];\n  }\n};\n\n;\n\nvar GraphicComponentModel = function (_super) {\n  __extends(GraphicComponentModel, _super);\n\n  function GraphicComponentModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GraphicComponentModel.type;\n    return _this;\n  }\n\n  GraphicComponentModel.prototype.mergeOption = function (option, ecModel) {\n    var elements = this.option.elements;\n    this.option.elements = null;\n\n    _super.prototype.mergeOption.call(this, option, ecModel);\n\n    this.option.elements = elements;\n  };\n\n  GraphicComponentModel.prototype.optionUpdated = function (newOption, isInit) {\n    var thisOption = this.option;\n    var newList = (isInit ? thisOption : newOption).elements;\n    var existList = thisOption.elements = isInit ? [] : thisOption.elements;\n    var flattenedList = [];\n\n    this._flatten(newList, flattenedList, null);\n\n    var mappingResult = modelUtil.mappingToExists(existList, flattenedList, 'normalMerge');\n    var elOptionsToUpdate = this._elOptionsToUpdate = [];\n    zrUtil.each(mappingResult, function (resultItem, index) {\n      var newElOption = resultItem.newOption;\n\n      if (process.env.NODE_ENV !== 'production') {\n        zrUtil.assert(zrUtil.isObject(newElOption) || resultItem.existing, 'Empty graphic option definition');\n      }\n\n      if (!newElOption) {\n        return;\n      }\n\n      elOptionsToUpdate.push(newElOption);\n      setKeyInfoToNewElOption(resultItem, newElOption);\n      mergeNewElOptionToExist(existList, index, newElOption);\n      setLayoutInfoToExist(existList[index], newElOption);\n    }, this);\n\n    for (var i = existList.length - 1; i >= 0; i--) {\n      if (existList[i] == null) {\n        existList.splice(i, 1);\n      } else {\n        delete existList[i].$action;\n      }\n    }\n  };\n\n  GraphicComponentModel.prototype._flatten = function (optionList, result, parentOption) {\n    zrUtil.each(optionList, function (option) {\n      if (!option) {\n        return;\n      }\n\n      if (parentOption) {\n        option.parentOption = parentOption;\n      }\n\n      result.push(option);\n      var children = option.children;\n\n      if (option.type === 'group' && children) {\n        this._flatten(children, result, option);\n      }\n\n      delete option.children;\n    }, this);\n  };\n\n  GraphicComponentModel.prototype.useElOptionsToUpdate = function () {\n    var els = this._elOptionsToUpdate;\n    this._elOptionsToUpdate = null;\n    return els;\n  };\n\n  GraphicComponentModel.type = 'graphic';\n  GraphicComponentModel.defaultOption = {\n    elements: []\n  };\n  return GraphicComponentModel;\n}(ComponentModel);\n\nvar GraphicComponentView = function (_super) {\n  __extends(GraphicComponentView, _super);\n\n  function GraphicComponentView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GraphicComponentView.type;\n    return _this;\n  }\n\n  GraphicComponentView.prototype.init = function () {\n    this._elMap = zrUtil.createHashMap();\n  };\n\n  GraphicComponentView.prototype.render = function (graphicModel, ecModel, api) {\n    if (graphicModel !== this._lastGraphicModel) {\n      this._clear();\n    }\n\n    this._lastGraphicModel = graphicModel;\n\n    this._updateElements(graphicModel);\n\n    this._relocate(graphicModel, api);\n  };\n\n  GraphicComponentView.prototype._updateElements = function (graphicModel) {\n    var elOptionsToUpdate = graphicModel.useElOptionsToUpdate();\n\n    if (!elOptionsToUpdate) {\n      return;\n    }\n\n    var elMap = this._elMap;\n    var rootGroup = this.group;\n    zrUtil.each(elOptionsToUpdate, function (elOption) {\n      var id = modelUtil.convertOptionIdName(elOption.id, null);\n      var elExisting = id != null ? elMap.get(id) : null;\n      var parentId = modelUtil.convertOptionIdName(elOption.parentId, null);\n      var targetElParent = parentId != null ? elMap.get(parentId) : rootGroup;\n      var elType = elOption.type;\n      var elOptionStyle = elOption.style;\n\n      if (elType === 'text' && elOptionStyle) {\n        if (elOption.hv && elOption.hv[1]) {\n          elOptionStyle.textVerticalAlign = elOptionStyle.textBaseline = elOptionStyle.verticalAlign = elOptionStyle.align = null;\n        }\n      }\n\n      var textContentOption = elOption.textContent;\n      var textConfig = elOption.textConfig;\n\n      if (elOptionStyle && isEC4CompatibleStyle(elOptionStyle, elType, !!textConfig, !!textContentOption)) {\n        var convertResult = convertFromEC4CompatibleStyle(elOptionStyle, elType, true);\n\n        if (!textConfig && convertResult.textConfig) {\n          textConfig = elOption.textConfig = convertResult.textConfig;\n        }\n\n        if (!textContentOption && convertResult.textContent) {\n          textContentOption = convertResult.textContent;\n        }\n      }\n\n      var elOptionCleaned = getCleanedElOption(elOption);\n\n      if (process.env.NODE_ENV !== 'production') {\n        elExisting && zrUtil.assert(targetElParent === elExisting.parent, 'Changing parent is not supported.');\n      }\n\n      var $action = elOption.$action || 'merge';\n\n      if ($action === 'merge') {\n        elExisting ? elExisting.attr(elOptionCleaned) : createEl(id, targetElParent, elOptionCleaned, elMap);\n      } else if ($action === 'replace') {\n        removeEl(elExisting, elMap);\n        createEl(id, targetElParent, elOptionCleaned, elMap);\n      } else if ($action === 'remove') {\n        removeEl(elExisting, elMap);\n      }\n\n      var el = elMap.get(id);\n\n      if (el && textContentOption) {\n        if ($action === 'merge') {\n          var textContentExisting = el.getTextContent();\n          textContentExisting ? textContentExisting.attr(textContentOption) : el.setTextContent(new graphicUtil.Text(textContentOption));\n        } else if ($action === 'replace') {\n          el.setTextContent(new graphicUtil.Text(textContentOption));\n        }\n      }\n\n      if (el) {\n        var elInner = inner(el);\n        elInner.__ecGraphicWidthOption = elOption.width;\n        elInner.__ecGraphicHeightOption = elOption.height;\n        setEventData(el, graphicModel, elOption);\n      }\n    });\n  };\n\n  GraphicComponentView.prototype._relocate = function (graphicModel, api) {\n    var elOptions = graphicModel.option.elements;\n    var rootGroup = this.group;\n    var elMap = this._elMap;\n    var apiWidth = api.getWidth();\n    var apiHeight = api.getHeight();\n\n    for (var i = 0; i < elOptions.length; i++) {\n      var elOption = elOptions[i];\n      var id = modelUtil.convertOptionIdName(elOption.id, null);\n      var el = id != null ? elMap.get(id) : null;\n\n      if (!el || !el.isGroup) {\n        continue;\n      }\n\n      var parentEl = el.parent;\n      var isParentRoot = parentEl === rootGroup;\n      var elInner = inner(el);\n      var parentElInner = inner(parentEl);\n      elInner.__ecGraphicWidth = parsePercent(elInner.__ecGraphicWidthOption, isParentRoot ? apiWidth : parentElInner.__ecGraphicWidth) || 0;\n      elInner.__ecGraphicHeight = parsePercent(elInner.__ecGraphicHeightOption, isParentRoot ? apiHeight : parentElInner.__ecGraphicHeight) || 0;\n    }\n\n    for (var i = elOptions.length - 1; i >= 0; i--) {\n      var elOption = elOptions[i];\n      var id = modelUtil.convertOptionIdName(elOption.id, null);\n      var el = id != null ? elMap.get(id) : null;\n\n      if (!el) {\n        continue;\n      }\n\n      var parentEl = el.parent;\n      var parentElInner = inner(parentEl);\n      var containerInfo = parentEl === rootGroup ? {\n        width: apiWidth,\n        height: apiHeight\n      } : {\n        width: parentElInner.__ecGraphicWidth,\n        height: parentElInner.__ecGraphicHeight\n      };\n      layoutUtil.positionElement(el, elOption, containerInfo, null, {\n        hv: elOption.hv,\n        boundingMode: elOption.bounding\n      });\n    }\n  };\n\n  GraphicComponentView.prototype._clear = function () {\n    var elMap = this._elMap;\n    elMap.each(function (el) {\n      removeEl(el, elMap);\n    });\n    this._elMap = zrUtil.createHashMap();\n  };\n\n  GraphicComponentView.prototype.dispose = function () {\n    this._clear();\n  };\n\n  GraphicComponentView.type = 'graphic';\n  return GraphicComponentView;\n}(ComponentView);\n\nfunction createEl(id, targetElParent, elOption, elMap) {\n  var graphicType = elOption.type;\n\n  if (process.env.NODE_ENV !== 'production') {\n    zrUtil.assert(graphicType, 'graphic type MUST be set');\n  }\n\n  var Clz = zrUtil.hasOwn(_nonShapeGraphicElements, graphicType) ? _nonShapeGraphicElements[graphicType] : graphicUtil.getShapeClass(graphicType);\n\n  if (process.env.NODE_ENV !== 'production') {\n    zrUtil.assert(Clz, 'graphic type can not be found');\n  }\n\n  var el = new Clz(elOption);\n  targetElParent.add(el);\n  elMap.set(id, el);\n  inner(el).__ecGraphicId = id;\n}\n\nfunction removeEl(elExisting, elMap) {\n  var existElParent = elExisting && elExisting.parent;\n\n  if (existElParent) {\n    elExisting.type === 'group' && elExisting.traverse(function (el) {\n      removeEl(el, elMap);\n    });\n    elMap.removeKey(inner(elExisting).__ecGraphicId);\n    existElParent.remove(elExisting);\n  }\n}\n\nfunction getCleanedElOption(elOption) {\n  elOption = zrUtil.extend({}, elOption);\n  zrUtil.each(['id', 'parentId', '$action', 'hv', 'bounding', 'textContent'].concat(layoutUtil.LOCATION_PARAMS), function (name) {\n    delete elOption[name];\n  });\n  return elOption;\n}\n\nfunction isSetLoc(obj, props) {\n  var isSet;\n  zrUtil.each(props, function (prop) {\n    obj[prop] != null && obj[prop] !== 'auto' && (isSet = true);\n  });\n  return isSet;\n}\n\nfunction setKeyInfoToNewElOption(resultItem, newElOption) {\n  var existElOption = resultItem.existing;\n  newElOption.id = resultItem.keyInfo.id;\n  !newElOption.type && existElOption && (newElOption.type = existElOption.type);\n\n  if (newElOption.parentId == null) {\n    var newElParentOption = newElOption.parentOption;\n\n    if (newElParentOption) {\n      newElOption.parentId = newElParentOption.id;\n    } else if (existElOption) {\n      newElOption.parentId = existElOption.parentId;\n    }\n  }\n\n  newElOption.parentOption = null;\n}\n\nfunction mergeNewElOptionToExist(existList, index, newElOption) {\n  var newElOptCopy = zrUtil.extend({}, newElOption);\n  var existElOption = existList[index];\n  var $action = newElOption.$action || 'merge';\n\n  if ($action === 'merge') {\n    if (existElOption) {\n      if (process.env.NODE_ENV !== 'production') {\n        var newType = newElOption.type;\n        zrUtil.assert(!newType || existElOption.type === newType, 'Please set $action: \"replace\" to change `type`');\n      }\n\n      zrUtil.merge(existElOption, newElOptCopy, true);\n      layoutUtil.mergeLayoutParam(existElOption, newElOptCopy, {\n        ignoreSize: true\n      });\n      layoutUtil.copyLayoutParams(newElOption, existElOption);\n    } else {\n      existList[index] = newElOptCopy;\n    }\n  } else if ($action === 'replace') {\n    existList[index] = newElOptCopy;\n  } else if ($action === 'remove') {\n    existElOption && (existList[index] = null);\n  }\n}\n\nfunction setLayoutInfoToExist(existItem, newElOption) {\n  if (!existItem) {\n    return;\n  }\n\n  existItem.hv = newElOption.hv = [isSetLoc(newElOption, ['left', 'right']), isSetLoc(newElOption, ['top', 'bottom'])];\n\n  if (existItem.type === 'group') {\n    var existingGroupOpt = existItem;\n    var newGroupOpt = newElOption;\n    existingGroupOpt.width == null && (existingGroupOpt.width = newGroupOpt.width = 0);\n    existingGroupOpt.height == null && (existingGroupOpt.height = newGroupOpt.height = 0);\n  }\n}\n\nfunction setEventData(el, graphicModel, elOption) {\n  var eventData = getECData(el).eventData;\n\n  if (!el.silent && !el.ignore && !eventData) {\n    eventData = getECData(el).eventData = {\n      componentType: 'graphic',\n      componentIndex: graphicModel.componentIndex,\n      name: el.name\n    };\n  }\n\n  if (eventData) {\n    eventData.info = elOption.info;\n  }\n}\n\nexport function install(registers) {\n  registers.registerComponentModel(GraphicComponentModel);\n  registers.registerComponentView(GraphicComponentView);\n  registers.registerPreprocessor(preprocessor);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { indexOf, createHashMap, assert } from 'zrender/lib/core/util';\nexport var DATA_ZOOM_AXIS_DIMENSIONS = ['x', 'y', 'radius', 'angle', 'single'];\nvar SERIES_COORDS = ['cartesian2d', 'polar', 'singleAxis'];\nexport function isCoordSupported(seriesModel) {\n  var coordType = seriesModel.get('coordinateSystem');\n  return indexOf(SERIES_COORDS, coordType) >= 0;\n}\nexport function getAxisMainType(axisDim) {\n  if (process.env.NODE_ENV !== 'production') {\n    assert(axisDim);\n  }\n\n  return axisDim + 'Axis';\n}\nexport function getAxisIndexPropName(axisDim) {\n  if (process.env.NODE_ENV !== 'production') {\n    assert(axisDim);\n  }\n\n  return axisDim + 'AxisIndex';\n}\nexport function getAxisIdPropName(axisDim) {\n  if (process.env.NODE_ENV !== 'production') {\n    assert(axisDim);\n  }\n\n  return axisDim + 'AxisId';\n}\nexport function findEffectedDataZooms(ecModel, payload) {\n  var axisRecords = createHashMap();\n  var effectedModels = [];\n  var effectedModelMap = createHashMap();\n  ecModel.eachComponent({\n    mainType: 'dataZoom',\n    query: payload\n  }, function (dataZoomModel) {\n    if (!effectedModelMap.get(dataZoomModel.uid)) {\n      addToEffected(dataZoomModel);\n    }\n  });\n  var foundNewLink;\n\n  do {\n    foundNewLink = false;\n    ecModel.eachComponent('dataZoom', processSingle);\n  } while (foundNewLink);\n\n  function processSingle(dataZoomModel) {\n    if (!effectedModelMap.get(dataZoomModel.uid) && isLinked(dataZoomModel)) {\n      addToEffected(dataZoomModel);\n      foundNewLink = true;\n    }\n  }\n\n  function addToEffected(dataZoom) {\n    effectedModelMap.set(dataZoom.uid, true);\n    effectedModels.push(dataZoom);\n    markAxisControlled(dataZoom);\n  }\n\n  function isLinked(dataZoomModel) {\n    var isLink = false;\n    dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n      var axisIdxArr = axisRecords.get(axisDim);\n\n      if (axisIdxArr && axisIdxArr[axisIndex]) {\n        isLink = true;\n      }\n    });\n    return isLink;\n  }\n\n  function markAxisControlled(dataZoomModel) {\n    dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n      (axisRecords.get(axisDim) || axisRecords.set(axisDim, []))[axisIndex] = true;\n    });\n  }\n\n  return effectedModels;\n}\nexport function collectReferCoordSysModelInfo(dataZoomModel) {\n  var ecModel = dataZoomModel.ecModel;\n  var coordSysInfoWrap = {\n    infoList: [],\n    infoMap: createHashMap()\n  };\n  dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n    var axisModel = ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n\n    if (!axisModel) {\n      return;\n    }\n\n    var coordSysModel = axisModel.getCoordSysModel();\n\n    if (!coordSysModel) {\n      return;\n    }\n\n    var coordSysUid = coordSysModel.uid;\n    var coordSysInfo = coordSysInfoWrap.infoMap.get(coordSysUid);\n\n    if (!coordSysInfo) {\n      coordSysInfo = {\n        model: coordSysModel,\n        axisModels: []\n      };\n      coordSysInfoWrap.infoList.push(coordSysInfo);\n      coordSysInfoWrap.infoMap.set(coordSysUid, coordSysInfo);\n    }\n\n    coordSysInfo.axisModels.push(axisModel);\n  });\n  return coordSysInfoWrap;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { each, createHashMap, merge, assert } from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\nimport { getAxisMainType, DATA_ZOOM_AXIS_DIMENSIONS } from './helper';\nimport { MULTIPLE_REFERRING, SINGLE_REFERRING } from '../../util/model';\n\nvar DataZoomAxisInfo = function () {\n  function DataZoomAxisInfo() {\n    this.indexList = [];\n    this.indexMap = [];\n  }\n\n  DataZoomAxisInfo.prototype.add = function (axisCmptIdx) {\n    if (!this.indexMap[axisCmptIdx]) {\n      this.indexList.push(axisCmptIdx);\n      this.indexMap[axisCmptIdx] = true;\n    }\n  };\n\n  return DataZoomAxisInfo;\n}();\n\nvar DataZoomModel = function (_super) {\n  __extends(DataZoomModel, _super);\n\n  function DataZoomModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = DataZoomModel.type;\n    _this._autoThrottle = true;\n    _this._noTarget = true;\n    _this._rangePropMode = ['percent', 'percent'];\n    return _this;\n  }\n\n  DataZoomModel.prototype.init = function (option, parentModel, ecModel) {\n    var inputRawOption = retrieveRawOption(option);\n    this.settledOption = inputRawOption;\n    this.mergeDefaultAndTheme(option, ecModel);\n\n    this._doInit(inputRawOption);\n  };\n\n  DataZoomModel.prototype.mergeOption = function (newOption) {\n    var inputRawOption = retrieveRawOption(newOption);\n    merge(this.option, newOption, true);\n    merge(this.settledOption, inputRawOption, true);\n\n    this._doInit(inputRawOption);\n  };\n\n  DataZoomModel.prototype._doInit = function (inputRawOption) {\n    var thisOption = this.option;\n\n    this._setDefaultThrottle(inputRawOption);\n\n    this._updateRangeUse(inputRawOption);\n\n    var settledOption = this.settledOption;\n    each([['start', 'startValue'], ['end', 'endValue']], function (names, index) {\n      if (this._rangePropMode[index] === 'value') {\n        thisOption[names[0]] = settledOption[names[0]] = null;\n      }\n    }, this);\n\n    this._resetTarget();\n  };\n\n  DataZoomModel.prototype._resetTarget = function () {\n    var optionOrient = this.get('orient', true);\n    var targetAxisIndexMap = this._targetAxisInfoMap = createHashMap();\n\n    var hasAxisSpecified = this._fillSpecifiedTargetAxis(targetAxisIndexMap);\n\n    if (hasAxisSpecified) {\n      this._orient = optionOrient || this._makeAutoOrientByTargetAxis();\n    } else {\n      this._orient = optionOrient || 'horizontal';\n\n      this._fillAutoTargetAxisByOrient(targetAxisIndexMap, this._orient);\n    }\n\n    this._noTarget = true;\n    targetAxisIndexMap.each(function (axisInfo) {\n      if (axisInfo.indexList.length) {\n        this._noTarget = false;\n      }\n    }, this);\n  };\n\n  DataZoomModel.prototype._fillSpecifiedTargetAxis = function (targetAxisIndexMap) {\n    var hasAxisSpecified = false;\n    each(DATA_ZOOM_AXIS_DIMENSIONS, function (axisDim) {\n      var refering = this.getReferringComponents(getAxisMainType(axisDim), MULTIPLE_REFERRING);\n\n      if (!refering.specified) {\n        return;\n      }\n\n      hasAxisSpecified = true;\n      var axisInfo = new DataZoomAxisInfo();\n      each(refering.models, function (axisModel) {\n        axisInfo.add(axisModel.componentIndex);\n      });\n      targetAxisIndexMap.set(axisDim, axisInfo);\n    }, this);\n    return hasAxisSpecified;\n  };\n\n  DataZoomModel.prototype._fillAutoTargetAxisByOrient = function (targetAxisIndexMap, orient) {\n    var ecModel = this.ecModel;\n    var needAuto = true;\n\n    if (needAuto) {\n      var axisDim = orient === 'vertical' ? 'y' : 'x';\n      var axisModels = ecModel.findComponents({\n        mainType: axisDim + 'Axis'\n      });\n      setParallelAxis(axisModels, axisDim);\n    }\n\n    if (needAuto) {\n      var axisModels = ecModel.findComponents({\n        mainType: 'singleAxis',\n        filter: function (axisModel) {\n          return axisModel.get('orient', true) === orient;\n        }\n      });\n      setParallelAxis(axisModels, 'single');\n    }\n\n    function setParallelAxis(axisModels, axisDim) {\n      var axisModel = axisModels[0];\n\n      if (!axisModel) {\n        return;\n      }\n\n      var axisInfo = new DataZoomAxisInfo();\n      axisInfo.add(axisModel.componentIndex);\n      targetAxisIndexMap.set(axisDim, axisInfo);\n      needAuto = false;\n\n      if (axisDim === 'x' || axisDim === 'y') {\n        var gridModel_1 = axisModel.getReferringComponents('grid', SINGLE_REFERRING).models[0];\n        gridModel_1 && each(axisModels, function (axModel) {\n          if (axisModel.componentIndex !== axModel.componentIndex && gridModel_1 === axModel.getReferringComponents('grid', SINGLE_REFERRING).models[0]) {\n            axisInfo.add(axModel.componentIndex);\n          }\n        });\n      }\n    }\n\n    if (needAuto) {\n      each(DATA_ZOOM_AXIS_DIMENSIONS, function (axisDim) {\n        if (!needAuto) {\n          return;\n        }\n\n        var axisModels = ecModel.findComponents({\n          mainType: getAxisMainType(axisDim),\n          filter: function (axisModel) {\n            return axisModel.get('type', true) === 'category';\n          }\n        });\n\n        if (axisModels[0]) {\n          var axisInfo = new DataZoomAxisInfo();\n          axisInfo.add(axisModels[0].componentIndex);\n          targetAxisIndexMap.set(axisDim, axisInfo);\n          needAuto = false;\n        }\n      }, this);\n    }\n  };\n\n  DataZoomModel.prototype._makeAutoOrientByTargetAxis = function () {\n    var dim;\n    this.eachTargetAxis(function (axisDim) {\n      !dim && (dim = axisDim);\n    }, this);\n    return dim === 'y' ? 'vertical' : 'horizontal';\n  };\n\n  DataZoomModel.prototype._setDefaultThrottle = function (inputRawOption) {\n    if (inputRawOption.hasOwnProperty('throttle')) {\n      this._autoThrottle = false;\n    }\n\n    if (this._autoThrottle) {\n      var globalOption = this.ecModel.option;\n      this.option.throttle = globalOption.animation && globalOption.animationDurationUpdate > 0 ? 100 : 20;\n    }\n  };\n\n  DataZoomModel.prototype._updateRangeUse = function (inputRawOption) {\n    var rangePropMode = this._rangePropMode;\n    var rangeModeInOption = this.get('rangeMode');\n    each([['start', 'startValue'], ['end', 'endValue']], function (names, index) {\n      var percentSpecified = inputRawOption[names[0]] != null;\n      var valueSpecified = inputRawOption[names[1]] != null;\n\n      if (percentSpecified && !valueSpecified) {\n        rangePropMode[index] = 'percent';\n      } else if (!percentSpecified && valueSpecified) {\n        rangePropMode[index] = 'value';\n      } else if (rangeModeInOption) {\n        rangePropMode[index] = rangeModeInOption[index];\n      } else if (percentSpecified) {\n        rangePropMode[index] = 'percent';\n      }\n    });\n  };\n\n  DataZoomModel.prototype.noTarget = function () {\n    return this._noTarget;\n  };\n\n  DataZoomModel.prototype.getFirstTargetAxisModel = function () {\n    var firstAxisModel;\n    this.eachTargetAxis(function (axisDim, axisIndex) {\n      if (firstAxisModel == null) {\n        firstAxisModel = this.ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n      }\n    }, this);\n    return firstAxisModel;\n  };\n\n  DataZoomModel.prototype.eachTargetAxis = function (callback, context) {\n    this._targetAxisInfoMap.each(function (axisInfo, axisDim) {\n      each(axisInfo.indexList, function (axisIndex) {\n        callback.call(context, axisDim, axisIndex);\n      });\n    });\n  };\n\n  DataZoomModel.prototype.getAxisProxy = function (axisDim, axisIndex) {\n    var axisModel = this.getAxisModel(axisDim, axisIndex);\n\n    if (axisModel) {\n      return axisModel.__dzAxisProxy;\n    }\n  };\n\n  DataZoomModel.prototype.getAxisModel = function (axisDim, axisIndex) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(axisDim && axisIndex != null);\n    }\n\n    var axisInfo = this._targetAxisInfoMap.get(axisDim);\n\n    if (axisInfo && axisInfo.indexMap[axisIndex]) {\n      return this.ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n    }\n  };\n\n  DataZoomModel.prototype.setRawRange = function (opt) {\n    var thisOption = this.option;\n    var settledOption = this.settledOption;\n    each([['start', 'startValue'], ['end', 'endValue']], function (names) {\n      if (opt[names[0]] != null || opt[names[1]] != null) {\n        thisOption[names[0]] = settledOption[names[0]] = opt[names[0]];\n        thisOption[names[1]] = settledOption[names[1]] = opt[names[1]];\n      }\n    }, this);\n\n    this._updateRangeUse(opt);\n  };\n\n  DataZoomModel.prototype.setCalculatedRange = function (opt) {\n    var option = this.option;\n    each(['start', 'startValue', 'end', 'endValue'], function (name) {\n      option[name] = opt[name];\n    });\n  };\n\n  DataZoomModel.prototype.getPercentRange = function () {\n    var axisProxy = this.findRepresentativeAxisProxy();\n\n    if (axisProxy) {\n      return axisProxy.getDataPercentWindow();\n    }\n  };\n\n  DataZoomModel.prototype.getValueRange = function (axisDim, axisIndex) {\n    if (axisDim == null && axisIndex == null) {\n      var axisProxy = this.findRepresentativeAxisProxy();\n\n      if (axisProxy) {\n        return axisProxy.getDataValueWindow();\n      }\n    } else {\n      return this.getAxisProxy(axisDim, axisIndex).getDataValueWindow();\n    }\n  };\n\n  DataZoomModel.prototype.findRepresentativeAxisProxy = function (axisModel) {\n    if (axisModel) {\n      return axisModel.__dzAxisProxy;\n    }\n\n    var firstProxy;\n\n    var axisDimList = this._targetAxisInfoMap.keys();\n\n    for (var i = 0; i < axisDimList.length; i++) {\n      var axisDim = axisDimList[i];\n\n      var axisInfo = this._targetAxisInfoMap.get(axisDim);\n\n      for (var j = 0; j < axisInfo.indexList.length; j++) {\n        var proxy = this.getAxisProxy(axisDim, axisInfo.indexList[j]);\n\n        if (proxy.hostedBy(this)) {\n          return proxy;\n        }\n\n        if (!firstProxy) {\n          firstProxy = proxy;\n        }\n      }\n    }\n\n    return firstProxy;\n  };\n\n  DataZoomModel.prototype.getRangePropMode = function () {\n    return this._rangePropMode.slice();\n  };\n\n  DataZoomModel.prototype.getOrient = function () {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(this._orient);\n    }\n\n    return this._orient;\n  };\n\n  DataZoomModel.type = 'dataZoom';\n  DataZoomModel.dependencies = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'series', 'toolbox'];\n  DataZoomModel.defaultOption = {\n    zlevel: 0,\n    z: 4,\n    filterMode: 'filter',\n    start: 0,\n    end: 100\n  };\n  return DataZoomModel;\n}(ComponentModel);\n\nfunction retrieveRawOption(option) {\n  var ret = {};\n  each(['start', 'end', 'startValue', 'endValue', 'throttle'], function (name) {\n    option.hasOwnProperty(name) && (ret[name] = option[name]);\n  });\n  return ret;\n}\n\nexport default DataZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport DataZoomModel from './DataZoomModel';\n\nvar SelectDataZoomModel = function (_super) {\n  __extends(SelectDataZoomModel, _super);\n\n  function SelectDataZoomModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SelectDataZoomModel.type;\n    return _this;\n  }\n\n  SelectDataZoomModel.type = 'dataZoom.select';\n  return SelectDataZoomModel;\n}(DataZoomModel);\n\nexport default SelectDataZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component';\n\nvar DataZoomView = function (_super) {\n  __extends(DataZoomView, _super);\n\n  function DataZoomView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = DataZoomView.type;\n    return _this;\n  }\n\n  DataZoomView.prototype.render = function (dataZoomModel, ecModel, api, payload) {\n    this.dataZoomModel = dataZoomModel;\n    this.ecModel = ecModel;\n    this.api = api;\n  };\n\n  DataZoomView.type = 'dataZoom';\n  return DataZoomView;\n}(ComponentView);\n\nexport default DataZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport DataZoomView from './DataZoomView';\n\nvar SelectDataZoomView = function (_super) {\n  __extends(SelectDataZoomView, _super);\n\n  function SelectDataZoomView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SelectDataZoomView.type;\n    return _this;\n  }\n\n  SelectDataZoomView.type = 'dataZoom.select';\n  return SelectDataZoomView;\n}(DataZoomView);\n\nexport default SelectDataZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as numberUtil from '../../util/number';\nimport sliderMove from '../helper/sliderMove';\nimport { unionAxisExtentFromData } from '../../coord/axisHelper';\nimport { ensureScaleRawExtentInfo } from '../../coord/scaleRawExtentInfo';\nimport { getAxisMainType, isCoordSupported } from './helper';\nimport { SINGLE_REFERRING } from '../../util/model';\nvar each = zrUtil.each;\nvar asc = numberUtil.asc;\n\nvar AxisProxy = function () {\n  function AxisProxy(dimName, axisIndex, dataZoomModel, ecModel) {\n    this._dimName = dimName;\n    this._axisIndex = axisIndex;\n    this.ecModel = ecModel;\n    this._dataZoomModel = dataZoomModel;\n  }\n\n  AxisProxy.prototype.hostedBy = function (dataZoomModel) {\n    return this._dataZoomModel === dataZoomModel;\n  };\n\n  AxisProxy.prototype.getDataValueWindow = function () {\n    return this._valueWindow.slice();\n  };\n\n  AxisProxy.prototype.getDataPercentWindow = function () {\n    return this._percentWindow.slice();\n  };\n\n  AxisProxy.prototype.getTargetSeriesModels = function () {\n    var seriesModels = [];\n    this.ecModel.eachSeries(function (seriesModel) {\n      if (isCoordSupported(seriesModel)) {\n        var axisMainType = getAxisMainType(this._dimName);\n        var axisModel = seriesModel.getReferringComponents(axisMainType, SINGLE_REFERRING).models[0];\n\n        if (axisModel && this._axisIndex === axisModel.componentIndex) {\n          seriesModels.push(seriesModel);\n        }\n      }\n    }, this);\n    return seriesModels;\n  };\n\n  AxisProxy.prototype.getAxisModel = function () {\n    return this.ecModel.getComponent(this._dimName + 'Axis', this._axisIndex);\n  };\n\n  AxisProxy.prototype.getMinMaxSpan = function () {\n    return zrUtil.clone(this._minMaxSpan);\n  };\n\n  AxisProxy.prototype.calculateDataWindow = function (opt) {\n    var dataExtent = this._dataExtent;\n    var axisModel = this.getAxisModel();\n    var scale = axisModel.axis.scale;\n\n    var rangePropMode = this._dataZoomModel.getRangePropMode();\n\n    var percentExtent = [0, 100];\n    var percentWindow = [];\n    var valueWindow = [];\n    var hasPropModeValue;\n    each(['start', 'end'], function (prop, idx) {\n      var boundPercent = opt[prop];\n      var boundValue = opt[prop + 'Value'];\n\n      if (rangePropMode[idx] === 'percent') {\n        boundPercent == null && (boundPercent = percentExtent[idx]);\n        boundValue = scale.parse(numberUtil.linearMap(boundPercent, percentExtent, dataExtent));\n      } else {\n        hasPropModeValue = true;\n        boundValue = boundValue == null ? dataExtent[idx] : scale.parse(boundValue);\n        boundPercent = numberUtil.linearMap(boundValue, dataExtent, percentExtent);\n      }\n\n      valueWindow[idx] = boundValue;\n      percentWindow[idx] = boundPercent;\n    });\n    asc(valueWindow);\n    asc(percentWindow);\n    var spans = this._minMaxSpan;\n    hasPropModeValue ? restrictSet(valueWindow, percentWindow, dataExtent, percentExtent, false) : restrictSet(percentWindow, valueWindow, percentExtent, dataExtent, true);\n\n    function restrictSet(fromWindow, toWindow, fromExtent, toExtent, toValue) {\n      var suffix = toValue ? 'Span' : 'ValueSpan';\n      sliderMove(0, fromWindow, fromExtent, 'all', spans['min' + suffix], spans['max' + suffix]);\n\n      for (var i = 0; i < 2; i++) {\n        toWindow[i] = numberUtil.linearMap(fromWindow[i], fromExtent, toExtent, true);\n        toValue && (toWindow[i] = scale.parse(toWindow[i]));\n      }\n    }\n\n    return {\n      valueWindow: valueWindow,\n      percentWindow: percentWindow\n    };\n  };\n\n  AxisProxy.prototype.reset = function (dataZoomModel) {\n    if (dataZoomModel !== this._dataZoomModel) {\n      return;\n    }\n\n    var targetSeries = this.getTargetSeriesModels();\n    this._dataExtent = calculateDataExtent(this, this._dimName, targetSeries);\n\n    this._updateMinMaxSpan();\n\n    var dataWindow = this.calculateDataWindow(dataZoomModel.settledOption);\n    this._valueWindow = dataWindow.valueWindow;\n    this._percentWindow = dataWindow.percentWindow;\n\n    this._setAxisModel();\n  };\n\n  AxisProxy.prototype.filterData = function (dataZoomModel, api) {\n    if (dataZoomModel !== this._dataZoomModel) {\n      return;\n    }\n\n    var axisDim = this._dimName;\n    var seriesModels = this.getTargetSeriesModels();\n    var filterMode = dataZoomModel.get('filterMode');\n    var valueWindow = this._valueWindow;\n\n    if (filterMode === 'none') {\n      return;\n    }\n\n    each(seriesModels, function (seriesModel) {\n      var seriesData = seriesModel.getData();\n      var dataDims = seriesData.mapDimensionsAll(axisDim);\n\n      if (!dataDims.length) {\n        return;\n      }\n\n      if (filterMode === 'weakFilter') {\n        seriesData.filterSelf(function (dataIndex) {\n          var leftOut;\n          var rightOut;\n          var hasValue;\n\n          for (var i = 0; i < dataDims.length; i++) {\n            var value = seriesData.get(dataDims[i], dataIndex);\n            var thisHasValue = !isNaN(value);\n            var thisLeftOut = value < valueWindow[0];\n            var thisRightOut = value > valueWindow[1];\n\n            if (thisHasValue && !thisLeftOut && !thisRightOut) {\n              return true;\n            }\n\n            thisHasValue && (hasValue = true);\n            thisLeftOut && (leftOut = true);\n            thisRightOut && (rightOut = true);\n          }\n\n          return hasValue && leftOut && rightOut;\n        });\n      } else {\n        each(dataDims, function (dim) {\n          if (filterMode === 'empty') {\n            seriesModel.setData(seriesData = seriesData.map(dim, function (value) {\n              return !isInWindow(value) ? NaN : value;\n            }));\n          } else {\n            var range = {};\n            range[dim] = valueWindow;\n            seriesData.selectRange(range);\n          }\n        });\n      }\n\n      each(dataDims, function (dim) {\n        seriesData.setApproximateExtent(valueWindow, dim);\n      });\n    });\n\n    function isInWindow(value) {\n      return value >= valueWindow[0] && value <= valueWindow[1];\n    }\n  };\n\n  AxisProxy.prototype._updateMinMaxSpan = function () {\n    var minMaxSpan = this._minMaxSpan = {};\n    var dataZoomModel = this._dataZoomModel;\n    var dataExtent = this._dataExtent;\n    each(['min', 'max'], function (minMax) {\n      var percentSpan = dataZoomModel.get(minMax + 'Span');\n      var valueSpan = dataZoomModel.get(minMax + 'ValueSpan');\n      valueSpan != null && (valueSpan = this.getAxisModel().axis.scale.parse(valueSpan));\n\n      if (valueSpan != null) {\n        percentSpan = numberUtil.linearMap(dataExtent[0] + valueSpan, dataExtent, [0, 100], true);\n      } else if (percentSpan != null) {\n        valueSpan = numberUtil.linearMap(percentSpan, [0, 100], dataExtent, true) - dataExtent[0];\n      }\n\n      minMaxSpan[minMax + 'Span'] = percentSpan;\n      minMaxSpan[minMax + 'ValueSpan'] = valueSpan;\n    }, this);\n  };\n\n  AxisProxy.prototype._setAxisModel = function () {\n    var axisModel = this.getAxisModel();\n    var percentWindow = this._percentWindow;\n    var valueWindow = this._valueWindow;\n\n    if (!percentWindow) {\n      return;\n    }\n\n    var precision = numberUtil.getPixelPrecision(valueWindow, [0, 500]);\n    precision = Math.min(precision, 20);\n    var rawExtentInfo = axisModel.axis.scale.rawExtentInfo;\n\n    if (percentWindow[0] !== 0) {\n      rawExtentInfo.setDeterminedMinMax('min', +valueWindow[0].toFixed(precision));\n    }\n\n    if (percentWindow[1] !== 100) {\n      rawExtentInfo.setDeterminedMinMax('max', +valueWindow[1].toFixed(precision));\n    }\n\n    rawExtentInfo.freeze();\n  };\n\n  return AxisProxy;\n}();\n\nfunction calculateDataExtent(axisProxy, axisDim, seriesModels) {\n  var dataExtent = [Infinity, -Infinity];\n  each(seriesModels, function (seriesModel) {\n    unionAxisExtentFromData(dataExtent, seriesModel.getData(), axisDim);\n  });\n  var axisModel = axisProxy.getAxisModel();\n  var rawExtentResult = ensureScaleRawExtentInfo(axisModel.axis.scale, axisModel, dataExtent).calculate();\n  return [rawExtentResult.min, rawExtentResult.max];\n}\n\nexport default AxisProxy;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, each } from 'zrender/lib/core/util';\nimport { getAxisMainType } from './helper';\nimport AxisProxy from './AxisProxy';\nvar dataZoomProcessor = {\n  getTargetSeries: function (ecModel) {\n    function eachAxisModel(cb) {\n      ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n        dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n          var axisModel = ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n          cb(axisDim, axisIndex, axisModel, dataZoomModel);\n        });\n      });\n    }\n\n    eachAxisModel(function (axisDim, axisIndex, axisModel, dataZoomModel) {\n      axisModel.__dzAxisProxy = null;\n    });\n    var proxyList = [];\n    eachAxisModel(function (axisDim, axisIndex, axisModel, dataZoomModel) {\n      if (!axisModel.__dzAxisProxy) {\n        axisModel.__dzAxisProxy = new AxisProxy(axisDim, axisIndex, dataZoomModel, ecModel);\n        proxyList.push(axisModel.__dzAxisProxy);\n      }\n    });\n    var seriesModelMap = createHashMap();\n    each(proxyList, function (axisProxy) {\n      each(axisProxy.getTargetSeriesModels(), function (seriesModel) {\n        seriesModelMap.set(seriesModel.uid, seriesModel);\n      });\n    });\n    return seriesModelMap;\n  },\n  overallReset: function (ecModel, api) {\n    ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n      dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n        dataZoomModel.getAxisProxy(axisDim, axisIndex).reset(dataZoomModel);\n      });\n      dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n        dataZoomModel.getAxisProxy(axisDim, axisIndex).filterData(dataZoomModel, api);\n      });\n    });\n    ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n      var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\n\n      if (axisProxy) {\n        var percentRange = axisProxy.getDataPercentWindow();\n        var valueRange = axisProxy.getDataValueWindow();\n        dataZoomModel.setCalculatedRange({\n          start: percentRange[0],\n          end: percentRange[1],\n          startValue: valueRange[0],\n          endValue: valueRange[1]\n        });\n      }\n    });\n  }\n};\nexport default dataZoomProcessor;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { findEffectedDataZooms } from './helper';\nimport { each } from 'zrender/lib/core/util';\nexport default function installDataZoomAction(registers) {\n  registers.registerAction('dataZoom', function (payload, ecModel) {\n    var effectedModels = findEffectedDataZooms(ecModel, payload);\n    each(effectedModels, function (dataZoomModel) {\n      dataZoomModel.setRawRange({\n        start: payload.start,\n        end: payload.end,\n        startValue: payload.startValue,\n        endValue: payload.endValue\n      });\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport dataZoomProcessor from './dataZoomProcessor';\nimport installDataZoomAction from './dataZoomAction';\nvar installed = false;\nexport default function installCommon(registers) {\n  if (installed) {\n    return;\n  }\n\n  installed = true;\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.FILTER, dataZoomProcessor);\n  installDataZoomAction(registers);\n  registers.registerSubTypeDefaulter('dataZoom', function () {\n    return 'slider';\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SelectZoomModel from './SelectZoomModel';\nimport SelectZoomView from './SelectZoomView';\nimport installCommon from './installCommon';\nexport function install(registers) {\n  registers.registerComponentModel(SelectZoomModel);\n  registers.registerComponentView(SelectZoomView);\n  installCommon(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar ToolboxFeature = function () {\n  function ToolboxFeature() {}\n\n  return ToolboxFeature;\n}();\n\nexport { ToolboxFeature };\nvar features = {};\nexport function registerFeature(name, ctor) {\n  features[name] = ctor;\n}\nexport function getFeature(name) {\n  return features[name];\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as featureManager from './featureManager';\nimport ComponentModel from '../../model/Component';\n\nvar ToolboxModel = function (_super) {\n  __extends(ToolboxModel, _super);\n\n  function ToolboxModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ToolboxModel.type;\n    return _this;\n  }\n\n  ToolboxModel.prototype.optionUpdated = function () {\n    _super.prototype.optionUpdated.apply(this, arguments);\n\n    var ecModel = this.ecModel;\n    zrUtil.each(this.option.feature, function (featureOpt, featureName) {\n      var Feature = featureManager.getFeature(featureName);\n\n      if (Feature) {\n        if (Feature.getDefaultOption) {\n          Feature.defaultOption = Feature.getDefaultOption(ecModel);\n        }\n\n        zrUtil.merge(featureOpt, Feature.defaultOption);\n      }\n    });\n  };\n\n  ToolboxModel.type = 'toolbox';\n  ToolboxModel.layoutMode = {\n    type: 'box',\n    ignoreSize: true\n  };\n  ToolboxModel.defaultOption = {\n    show: true,\n    z: 6,\n    zlevel: 0,\n    orient: 'horizontal',\n    left: 'right',\n    top: 'top',\n    backgroundColor: 'transparent',\n    borderColor: '#ccc',\n    borderRadius: 0,\n    borderWidth: 0,\n    padding: 5,\n    itemSize: 15,\n    itemGap: 8,\n    showTitle: true,\n    iconStyle: {\n      borderColor: '#666',\n      color: 'none'\n    },\n    emphasis: {\n      iconStyle: {\n        borderColor: '#3E98C5'\n      }\n    },\n    tooltip: {\n      show: false\n    }\n  };\n  return ToolboxModel;\n}(ComponentModel);\n\nexport default ToolboxModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { getLayoutRect, box as layoutBox, positionElement } from '../../util/layout';\nimport * as formatUtil from '../../util/format';\nimport * as graphic from '../../util/graphic';\nexport function layout(group, componentModel, api) {\n  var boxLayoutParams = componentModel.getBoxLayoutParams();\n  var padding = componentModel.get('padding');\n  var viewportSize = {\n    width: api.getWidth(),\n    height: api.getHeight()\n  };\n  var rect = getLayoutRect(boxLayoutParams, viewportSize, padding);\n  layoutBox(componentModel.get('orient'), group, componentModel.get('itemGap'), rect.width, rect.height);\n  positionElement(group, boxLayoutParams, viewportSize, padding);\n}\nexport function makeBackground(rect, componentModel) {\n  var padding = formatUtil.normalizeCssArray(componentModel.get('padding'));\n  var style = componentModel.getItemStyle(['color', 'opacity']);\n  style.fill = componentModel.get('backgroundColor');\n  rect = new graphic.Rect({\n    shape: {\n      x: rect.x - padding[3],\n      y: rect.y - padding[0],\n      width: rect.width + padding[1] + padding[3],\n      height: rect.height + padding[0] + padding[2],\n      r: componentModel.get('borderRadius')\n    },\n    style: style,\n    silent: true,\n    z2: -1\n  });\n  return rect;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as textContain from 'zrender/lib/contain/text';\nimport * as graphic from '../../util/graphic';\nimport { enterEmphasis, leaveEmphasis } from '../../util/states';\nimport Model from '../../model/Model';\nimport DataDiffer from '../../data/DataDiffer';\nimport * as listComponentHelper from '../helper/listComponent';\nimport ComponentView from '../../view/Component';\nimport { ToolboxFeature, getFeature } from './featureManager';\nimport { getUID } from '../../util/component';\nimport ZRText from 'zrender/lib/graphic/Text';\n\nvar ToolboxView = function (_super) {\n  __extends(ToolboxView, _super);\n\n  function ToolboxView() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  ToolboxView.prototype.render = function (toolboxModel, ecModel, api, payload) {\n    var group = this.group;\n    group.removeAll();\n\n    if (!toolboxModel.get('show')) {\n      return;\n    }\n\n    var itemSize = +toolboxModel.get('itemSize');\n    var featureOpts = toolboxModel.get('feature') || {};\n    var features = this._features || (this._features = {});\n    var featureNames = [];\n    zrUtil.each(featureOpts, function (opt, name) {\n      featureNames.push(name);\n    });\n    new DataDiffer(this._featureNames || [], featureNames).add(processFeature).update(processFeature).remove(zrUtil.curry(processFeature, null)).execute();\n    this._featureNames = featureNames;\n\n    function processFeature(newIndex, oldIndex) {\n      var featureName = featureNames[newIndex];\n      var oldName = featureNames[oldIndex];\n      var featureOpt = featureOpts[featureName];\n      var featureModel = new Model(featureOpt, toolboxModel, toolboxModel.ecModel);\n      var feature;\n\n      if (payload && payload.newTitle != null && payload.featureName === featureName) {\n        featureOpt.title = payload.newTitle;\n      }\n\n      if (featureName && !oldName) {\n        if (isUserFeatureName(featureName)) {\n          feature = {\n            onclick: featureModel.option.onclick,\n            featureName: featureName\n          };\n        } else {\n          var Feature = getFeature(featureName);\n\n          if (!Feature) {\n            return;\n          }\n\n          feature = new Feature();\n        }\n\n        features[featureName] = feature;\n      } else {\n        feature = features[oldName];\n\n        if (!feature) {\n          return;\n        }\n      }\n\n      feature.uid = getUID('toolbox-feature');\n      feature.model = featureModel;\n      feature.ecModel = ecModel;\n      feature.api = api;\n\n      if (feature instanceof ToolboxFeature) {\n        if (!featureName && oldName) {\n          feature.dispose && feature.dispose(ecModel, api);\n          return;\n        }\n\n        if (!featureModel.get('show') || feature.unusable) {\n          feature.remove && feature.remove(ecModel, api);\n          return;\n        }\n      }\n\n      createIconPaths(featureModel, feature, featureName);\n\n      featureModel.setIconStatus = function (iconName, status) {\n        var option = this.option;\n        var iconPaths = this.iconPaths;\n        option.iconStatus = option.iconStatus || {};\n        option.iconStatus[iconName] = status;\n\n        if (iconPaths[iconName]) {\n          (status === 'emphasis' ? enterEmphasis : leaveEmphasis)(iconPaths[iconName]);\n        }\n      };\n\n      if (feature instanceof ToolboxFeature) {\n        if (feature.render) {\n          feature.render(featureModel, ecModel, api, payload);\n        }\n      }\n    }\n\n    function createIconPaths(featureModel, feature, featureName) {\n      var iconStyleModel = featureModel.getModel('iconStyle');\n      var iconStyleEmphasisModel = featureModel.getModel(['emphasis', 'iconStyle']);\n      var icons = feature instanceof ToolboxFeature && feature.getIcons ? feature.getIcons() : featureModel.get('icon');\n      var titles = featureModel.get('title') || {};\n      var iconsMap;\n      var titlesMap;\n\n      if (typeof icons === 'string') {\n        iconsMap = {};\n        iconsMap[featureName] = icons;\n      } else {\n        iconsMap = icons;\n      }\n\n      if (typeof titles === 'string') {\n        titlesMap = {};\n        titlesMap[featureName] = titles;\n      } else {\n        titlesMap = titles;\n      }\n\n      var iconPaths = featureModel.iconPaths = {};\n      zrUtil.each(iconsMap, function (iconStr, iconName) {\n        var path = graphic.createIcon(iconStr, {}, {\n          x: -itemSize / 2,\n          y: -itemSize / 2,\n          width: itemSize,\n          height: itemSize\n        });\n        path.setStyle(iconStyleModel.getItemStyle());\n        var pathEmphasisState = path.ensureState('emphasis');\n        pathEmphasisState.style = iconStyleEmphasisModel.getItemStyle();\n        var textContent = new ZRText({\n          style: {\n            text: titlesMap[iconName],\n            align: iconStyleEmphasisModel.get('textAlign'),\n            borderRadius: iconStyleEmphasisModel.get('textBorderRadius'),\n            padding: iconStyleEmphasisModel.get('textPadding'),\n            fill: null\n          },\n          ignore: true\n        });\n        path.setTextContent(textContent);\n        var tooltipModel = toolboxModel.getModel('tooltip');\n\n        if (tooltipModel && tooltipModel.get('show')) {\n          path.tooltip = zrUtil.extend({\n            content: titlesMap[iconName],\n            formatter: tooltipModel.get('formatter', true) || function () {\n              return titlesMap[iconName];\n            },\n            formatterParams: {\n              componentType: 'toolbox',\n              name: iconName,\n              title: titlesMap[iconName],\n              $vars: ['name', 'title']\n            },\n            position: tooltipModel.get('position', true) || 'bottom'\n          }, tooltipModel.option);\n        }\n\n        path.__title = titlesMap[iconName];\n        path.on('mouseover', function () {\n          var hoverStyle = iconStyleEmphasisModel.getItemStyle();\n          var defaultTextPosition = toolboxModel.get('orient') === 'vertical' ? toolboxModel.get('right') == null ? 'right' : 'left' : toolboxModel.get('bottom') == null ? 'bottom' : 'top';\n          textContent.setStyle({\n            fill: iconStyleEmphasisModel.get('textFill') || hoverStyle.fill || hoverStyle.stroke || '#000',\n            backgroundColor: iconStyleEmphasisModel.get('textBackgroundColor')\n          });\n          path.setTextConfig({\n            position: iconStyleEmphasisModel.get('textPosition') || defaultTextPosition\n          });\n          textContent.ignore = !toolboxModel.get('showTitle');\n          enterEmphasis(this);\n        }).on('mouseout', function () {\n          if (featureModel.get(['iconStatus', iconName]) !== 'emphasis') {\n            leaveEmphasis(this);\n          }\n\n          textContent.hide();\n        });\n        (featureModel.get(['iconStatus', iconName]) === 'emphasis' ? enterEmphasis : leaveEmphasis)(path);\n        group.add(path);\n        path.on('click', zrUtil.bind(feature.onclick, feature, ecModel, api, iconName));\n        iconPaths[iconName] = path;\n      });\n    }\n\n    listComponentHelper.layout(group, toolboxModel, api);\n    group.add(listComponentHelper.makeBackground(group.getBoundingRect(), toolboxModel));\n    group.eachChild(function (icon) {\n      var titleText = icon.__title;\n      var emphasisState = icon.ensureState('emphasis');\n      var emphasisTextConfig = emphasisState.textConfig || (emphasisState.textConfig = {});\n      var textContent = icon.getTextContent();\n      var emphasisTextState = textContent && textContent.states.emphasis;\n\n      if (emphasisTextState && !zrUtil.isFunction(emphasisTextState) && titleText) {\n        var emphasisTextStyle = emphasisTextState.style || (emphasisTextState.style = {});\n        var rect = textContain.getBoundingRect(titleText, ZRText.makeFont(emphasisTextStyle));\n        var offsetX = icon.x + group.x;\n        var offsetY = icon.y + group.y + itemSize;\n        var needPutOnTop = false;\n\n        if (offsetY + rect.height > api.getHeight()) {\n          emphasisTextConfig.position = 'top';\n          needPutOnTop = true;\n        }\n\n        var topOffset = needPutOnTop ? -5 - rect.height : itemSize + 8;\n\n        if (offsetX + rect.width / 2 > api.getWidth()) {\n          emphasisTextConfig.position = ['100%', topOffset];\n          emphasisTextStyle.align = 'right';\n        } else if (offsetX - rect.width / 2 < 0) {\n          emphasisTextConfig.position = [0, topOffset];\n          emphasisTextStyle.align = 'left';\n        }\n      }\n    });\n  };\n\n  ToolboxView.prototype.updateView = function (toolboxModel, ecModel, api, payload) {\n    zrUtil.each(this._features, function (feature) {\n      feature instanceof ToolboxFeature && feature.updateView && feature.updateView(feature.model, ecModel, api, payload);\n    });\n  };\n\n  ToolboxView.prototype.remove = function (ecModel, api) {\n    zrUtil.each(this._features, function (feature) {\n      feature instanceof ToolboxFeature && feature.remove && feature.remove(ecModel, api);\n    });\n    this.group.removeAll();\n  };\n\n  ToolboxView.prototype.dispose = function (ecModel, api) {\n    zrUtil.each(this._features, function (feature) {\n      feature instanceof ToolboxFeature && feature.dispose && feature.dispose(ecModel, api);\n    });\n  };\n\n  ToolboxView.type = 'toolbox';\n  return ToolboxView;\n}(ComponentView);\n\nfunction isUserFeatureName(featureName) {\n  return featureName.indexOf('my') === 0;\n}\n\nexport default ToolboxView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport env from 'zrender/lib/core/env';\nimport { ToolboxFeature } from '../featureManager';\n\nvar SaveAsImage = function (_super) {\n  __extends(SaveAsImage, _super);\n\n  function SaveAsImage() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  SaveAsImage.prototype.onclick = function (ecModel, api) {\n    var model = this.model;\n    var title = model.get('name') || ecModel.get('title.0.text') || 'echarts';\n    var isSvg = api.getZr().painter.getType() === 'svg';\n    var type = isSvg ? 'svg' : model.get('type', true) || 'png';\n    var url = api.getConnectedDataURL({\n      type: type,\n      backgroundColor: model.get('backgroundColor', true) || ecModel.get('backgroundColor') || '#fff',\n      connectedBackgroundColor: model.get('connectedBackgroundColor'),\n      excludeComponents: model.get('excludeComponents'),\n      pixelRatio: model.get('pixelRatio')\n    });\n\n    if (typeof MouseEvent === 'function' && (env.browser.newEdge || !env.browser.ie && !env.browser.edge)) {\n      var $a = document.createElement('a');\n      $a.download = title + '.' + type;\n      $a.target = '_blank';\n      $a.href = url;\n      var evt = new MouseEvent('click', {\n        view: document.defaultView,\n        bubbles: true,\n        cancelable: false\n      });\n      $a.dispatchEvent(evt);\n    } else {\n      if (window.navigator.msSaveOrOpenBlob || isSvg) {\n        var parts = url.split(',');\n        var base64Encoded = parts[0].indexOf('base64') > -1;\n        var bstr = isSvg ? decodeURIComponent(parts[1]) : parts[1];\n        base64Encoded && (bstr = atob(bstr));\n        var filename = title + '.' + type;\n\n        if (window.navigator.msSaveOrOpenBlob) {\n          var n = bstr.length;\n          var u8arr = new Uint8Array(n);\n\n          while (n--) {\n            u8arr[n] = bstr.charCodeAt(n);\n          }\n\n          var blob = new Blob([u8arr]);\n          window.navigator.msSaveOrOpenBlob(blob, filename);\n        } else {\n          var frame = document.createElement('iframe');\n          document.body.appendChild(frame);\n          var cw = frame.contentWindow;\n          var doc = cw.document;\n          doc.open('image/svg+xml', 'replace');\n          doc.write(bstr);\n          doc.close();\n          cw.focus();\n          doc.execCommand('SaveAs', true, filename);\n          document.body.removeChild(frame);\n        }\n      } else {\n        var lang = model.get('lang');\n        var html = '' + '<body style=\"margin:0;\">' + '<img src=\"' + url + '\" style=\"max-width:100%;\" title=\"' + (lang && lang[0] || '') + '\" />' + '</body>';\n        var tab = window.open();\n        tab.document.write(html);\n        tab.document.title = title;\n      }\n    }\n  };\n\n  SaveAsImage.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      icon: 'M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0',\n      title: ecModel.getLocale(['toolbox', 'saveAsImage', 'title']),\n      type: 'png',\n      connectedBackgroundColor: '#fff',\n      name: '',\n      excludeComponents: ['toolbox'],\n      pixelRatio: 1,\n      lang: ecModel.getLocale(['toolbox', 'saveAsImage', 'lang'])\n    };\n    return defaultOption;\n  };\n\n  return SaveAsImage;\n}(ToolboxFeature);\n\nSaveAsImage.prototype.unusable = !env.canvasSupported;\nexport default SaveAsImage;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as echarts from '../../../core/echarts';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { ToolboxFeature } from '../featureManager';\nimport { SINGLE_REFERRING } from '../../../util/model';\nvar INNER_STACK_KEYWORD = '__ec_magicType_stack__';\nvar ICON_TYPES = ['line', 'bar', 'stack'];\nvar TITLE_TYPES = ['line', 'bar', 'stack', 'tiled'];\nvar radioTypes = [['line', 'bar'], ['stack']];\n\nvar MagicType = function (_super) {\n  __extends(MagicType, _super);\n\n  function MagicType() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  MagicType.prototype.getIcons = function () {\n    var model = this.model;\n    var availableIcons = model.get('icon');\n    var icons = {};\n    zrUtil.each(model.get('type'), function (type) {\n      if (availableIcons[type]) {\n        icons[type] = availableIcons[type];\n      }\n    });\n    return icons;\n  };\n\n  MagicType.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      type: [],\n      icon: {\n        line: 'M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4',\n        bar: 'M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7',\n        stack: 'M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z'\n      },\n      title: ecModel.getLocale(['toolbox', 'magicType', 'title']),\n      option: {},\n      seriesIndex: {}\n    };\n    return defaultOption;\n  };\n\n  MagicType.prototype.onclick = function (ecModel, api, type) {\n    var model = this.model;\n    var seriesIndex = model.get(['seriesIndex', type]);\n\n    if (!seriesOptGenreator[type]) {\n      return;\n    }\n\n    var newOption = {\n      series: []\n    };\n\n    var generateNewSeriesTypes = function (seriesModel) {\n      var seriesType = seriesModel.subType;\n      var seriesId = seriesModel.id;\n      var newSeriesOpt = seriesOptGenreator[type](seriesType, seriesId, seriesModel, model);\n\n      if (newSeriesOpt) {\n        zrUtil.defaults(newSeriesOpt, seriesModel.option);\n        newOption.series.push(newSeriesOpt);\n      }\n\n      var coordSys = seriesModel.coordinateSystem;\n\n      if (coordSys && coordSys.type === 'cartesian2d' && (type === 'line' || type === 'bar')) {\n        var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\n\n        if (categoryAxis) {\n          var axisDim = categoryAxis.dim;\n          var axisType = axisDim + 'Axis';\n          var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\n          var axisIndex = axisModel.componentIndex;\n          newOption[axisType] = newOption[axisType] || [];\n\n          for (var i = 0; i <= axisIndex; i++) {\n            newOption[axisType][axisIndex] = newOption[axisType][axisIndex] || {};\n          }\n\n          newOption[axisType][axisIndex].boundaryGap = type === 'bar';\n        }\n      }\n    };\n\n    zrUtil.each(radioTypes, function (radio) {\n      if (zrUtil.indexOf(radio, type) >= 0) {\n        zrUtil.each(radio, function (item) {\n          model.setIconStatus(item, 'normal');\n        });\n      }\n    });\n    model.setIconStatus(type, 'emphasis');\n    ecModel.eachComponent({\n      mainType: 'series',\n      query: seriesIndex == null ? null : {\n        seriesIndex: seriesIndex\n      }\n    }, generateNewSeriesTypes);\n    var newTitle;\n\n    if (type === 'stack') {\n      newTitle = zrUtil.merge({\n        stack: model.option.title.tiled,\n        tiled: model.option.title.stack\n      }, model.option.title);\n    }\n\n    api.dispatchAction({\n      type: 'changeMagicType',\n      currentType: type,\n      newOption: newOption,\n      newTitle: newTitle,\n      featureName: 'magicType'\n    });\n  };\n\n  return MagicType;\n}(ToolboxFeature);\n\nvar seriesOptGenreator = {\n  'line': function (seriesType, seriesId, seriesModel, model) {\n    if (seriesType === 'bar') {\n      return zrUtil.merge({\n        id: seriesId,\n        type: 'line',\n        data: seriesModel.get('data'),\n        stack: seriesModel.get('stack'),\n        markPoint: seriesModel.get('markPoint'),\n        markLine: seriesModel.get('markLine')\n      }, model.get(['option', 'line']) || {}, true);\n    }\n  },\n  'bar': function (seriesType, seriesId, seriesModel, model) {\n    if (seriesType === 'line') {\n      return zrUtil.merge({\n        id: seriesId,\n        type: 'bar',\n        data: seriesModel.get('data'),\n        stack: seriesModel.get('stack'),\n        markPoint: seriesModel.get('markPoint'),\n        markLine: seriesModel.get('markLine')\n      }, model.get(['option', 'bar']) || {}, true);\n    }\n  },\n  'stack': function (seriesType, seriesId, seriesModel, model) {\n    var isStack = seriesModel.get('stack') === INNER_STACK_KEYWORD;\n\n    if (seriesType === 'line' || seriesType === 'bar') {\n      model.setIconStatus('stack', isStack ? 'normal' : 'emphasis');\n      return zrUtil.merge({\n        id: seriesId,\n        stack: isStack ? '' : INNER_STACK_KEYWORD\n      }, model.get(['option', 'stack']) || {}, true);\n    }\n  }\n};\necharts.registerAction({\n  type: 'changeMagicType',\n  event: 'magicTypeChanged',\n  update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n  ecModel.mergeOption(payload.newOption);\n});\nexport default MagicType;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as echarts from '../../../core/echarts';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { ToolboxFeature } from '../featureManager';\nimport { addEventListener } from 'zrender/lib/core/event';\nvar BLOCK_SPLITER = new Array(60).join('-');\nvar ITEM_SPLITER = '\\t';\n\nfunction groupSeries(ecModel) {\n  var seriesGroupByCategoryAxis = {};\n  var otherSeries = [];\n  var meta = [];\n  ecModel.eachRawSeries(function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys && (coordSys.type === 'cartesian2d' || coordSys.type === 'polar')) {\n      var baseAxis = coordSys.getBaseAxis();\n\n      if (baseAxis.type === 'category') {\n        var key = baseAxis.dim + '_' + baseAxis.index;\n\n        if (!seriesGroupByCategoryAxis[key]) {\n          seriesGroupByCategoryAxis[key] = {\n            categoryAxis: baseAxis,\n            valueAxis: coordSys.getOtherAxis(baseAxis),\n            series: []\n          };\n          meta.push({\n            axisDim: baseAxis.dim,\n            axisIndex: baseAxis.index\n          });\n        }\n\n        seriesGroupByCategoryAxis[key].series.push(seriesModel);\n      } else {\n        otherSeries.push(seriesModel);\n      }\n    } else {\n      otherSeries.push(seriesModel);\n    }\n  });\n  return {\n    seriesGroupByCategoryAxis: seriesGroupByCategoryAxis,\n    other: otherSeries,\n    meta: meta\n  };\n}\n\nfunction assembleSeriesWithCategoryAxis(groups) {\n  var tables = [];\n  zrUtil.each(groups, function (group, key) {\n    var categoryAxis = group.categoryAxis;\n    var valueAxis = group.valueAxis;\n    var valueAxisDim = valueAxis.dim;\n    var headers = [' '].concat(zrUtil.map(group.series, function (series) {\n      return series.name;\n    }));\n    var columns = [categoryAxis.model.getCategories()];\n    zrUtil.each(group.series, function (series) {\n      var rawData = series.getRawData();\n      columns.push(series.getRawData().mapArray(rawData.mapDimension(valueAxisDim), function (val) {\n        return val;\n      }));\n    });\n    var lines = [headers.join(ITEM_SPLITER)];\n\n    for (var i = 0; i < columns[0].length; i++) {\n      var items = [];\n\n      for (var j = 0; j < columns.length; j++) {\n        items.push(columns[j][i]);\n      }\n\n      lines.push(items.join(ITEM_SPLITER));\n    }\n\n    tables.push(lines.join('\\n'));\n  });\n  return tables.join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\n}\n\nfunction assembleOtherSeries(series) {\n  return zrUtil.map(series, function (series) {\n    var data = series.getRawData();\n    var lines = [series.name];\n    var vals = [];\n    data.each(data.dimensions, function () {\n      var argLen = arguments.length;\n      var dataIndex = arguments[argLen - 1];\n      var name = data.getName(dataIndex);\n\n      for (var i = 0; i < argLen - 1; i++) {\n        vals[i] = arguments[i];\n      }\n\n      lines.push((name ? name + ITEM_SPLITER : '') + vals.join(ITEM_SPLITER));\n    });\n    return lines.join('\\n');\n  }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\n}\n\nfunction getContentFromModel(ecModel) {\n  var result = groupSeries(ecModel);\n  return {\n    value: zrUtil.filter([assembleSeriesWithCategoryAxis(result.seriesGroupByCategoryAxis), assembleOtherSeries(result.other)], function (str) {\n      return !!str.replace(/[\\n\\t\\s]/g, '');\n    }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n'),\n    meta: result.meta\n  };\n}\n\nfunction trim(str) {\n  return str.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n}\n\nfunction isTSVFormat(block) {\n  var firstLine = block.slice(0, block.indexOf('\\n'));\n\n  if (firstLine.indexOf(ITEM_SPLITER) >= 0) {\n    return true;\n  }\n}\n\nvar itemSplitRegex = new RegExp('[' + ITEM_SPLITER + ']+', 'g');\n\nfunction parseTSVContents(tsv) {\n  var tsvLines = tsv.split(/\\n+/g);\n  var headers = trim(tsvLines.shift()).split(itemSplitRegex);\n  var categories = [];\n  var series = zrUtil.map(headers, function (header) {\n    return {\n      name: header,\n      data: []\n    };\n  });\n\n  for (var i = 0; i < tsvLines.length; i++) {\n    var items = trim(tsvLines[i]).split(itemSplitRegex);\n    categories.push(items.shift());\n\n    for (var j = 0; j < items.length; j++) {\n      series[j] && (series[j].data[i] = items[j]);\n    }\n  }\n\n  return {\n    series: series,\n    categories: categories\n  };\n}\n\nfunction parseListContents(str) {\n  var lines = str.split(/\\n+/g);\n  var seriesName = trim(lines.shift());\n  var data = [];\n\n  for (var i = 0; i < lines.length; i++) {\n    var line = trim(lines[i]);\n\n    if (!line) {\n      continue;\n    }\n\n    var items = line.split(itemSplitRegex);\n    var name_1 = '';\n    var value = void 0;\n    var hasName = false;\n\n    if (isNaN(items[0])) {\n      hasName = true;\n      name_1 = items[0];\n      items = items.slice(1);\n      data[i] = {\n        name: name_1,\n        value: []\n      };\n      value = data[i].value;\n    } else {\n      value = data[i] = [];\n    }\n\n    for (var j = 0; j < items.length; j++) {\n      value.push(+items[j]);\n    }\n\n    if (value.length === 1) {\n      hasName ? data[i].value = value[0] : data[i] = value[0];\n    }\n  }\n\n  return {\n    name: seriesName,\n    data: data\n  };\n}\n\nfunction parseContents(str, blockMetaList) {\n  var blocks = str.split(new RegExp('\\n*' + BLOCK_SPLITER + '\\n*', 'g'));\n  var newOption = {\n    series: []\n  };\n  zrUtil.each(blocks, function (block, idx) {\n    if (isTSVFormat(block)) {\n      var result = parseTSVContents(block);\n      var blockMeta = blockMetaList[idx];\n      var axisKey = blockMeta.axisDim + 'Axis';\n\n      if (blockMeta) {\n        newOption[axisKey] = newOption[axisKey] || [];\n        newOption[axisKey][blockMeta.axisIndex] = {\n          data: result.categories\n        };\n        newOption.series = newOption.series.concat(result.series);\n      }\n    } else {\n      var result = parseListContents(block);\n      newOption.series.push(result);\n    }\n  });\n  return newOption;\n}\n\nvar DataView = function (_super) {\n  __extends(DataView, _super);\n\n  function DataView() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  DataView.prototype.onclick = function (ecModel, api) {\n    var container = api.getDom();\n    var model = this.model;\n\n    if (this._dom) {\n      container.removeChild(this._dom);\n    }\n\n    var root = document.createElement('div');\n    root.style.cssText = 'position:absolute;left:5px;top:5px;bottom:5px;right:5px;';\n    root.style.backgroundColor = model.get('backgroundColor') || '#fff';\n    var header = document.createElement('h4');\n    var lang = model.get('lang') || [];\n    header.innerHTML = lang[0] || model.get('title');\n    header.style.cssText = 'margin: 10px 20px;';\n    header.style.color = model.get('textColor');\n    var viewMain = document.createElement('div');\n    var textarea = document.createElement('textarea');\n    viewMain.style.cssText = 'display:block;width:100%;overflow:auto;';\n    var optionToContent = model.get('optionToContent');\n    var contentToOption = model.get('contentToOption');\n    var result = getContentFromModel(ecModel);\n\n    if (typeof optionToContent === 'function') {\n      var htmlOrDom = optionToContent(api.getOption());\n\n      if (typeof htmlOrDom === 'string') {\n        viewMain.innerHTML = htmlOrDom;\n      } else if (zrUtil.isDom(htmlOrDom)) {\n        viewMain.appendChild(htmlOrDom);\n      }\n    } else {\n      viewMain.appendChild(textarea);\n      textarea.readOnly = model.get('readOnly');\n      textarea.style.cssText = 'width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;';\n      textarea.style.color = model.get('textColor');\n      textarea.style.borderColor = model.get('textareaBorderColor');\n      textarea.style.backgroundColor = model.get('textareaColor');\n      textarea.value = result.value;\n    }\n\n    var blockMetaList = result.meta;\n    var buttonContainer = document.createElement('div');\n    buttonContainer.style.cssText = 'position:absolute;bottom:0;left:0;right:0;';\n    var buttonStyle = 'float:right;margin-right:20px;border:none;' + 'cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px';\n    var closeButton = document.createElement('div');\n    var refreshButton = document.createElement('div');\n    buttonStyle += ';background-color:' + model.get('buttonColor');\n    buttonStyle += ';color:' + model.get('buttonTextColor');\n    var self = this;\n\n    function close() {\n      container.removeChild(root);\n      self._dom = null;\n    }\n\n    addEventListener(closeButton, 'click', close);\n    addEventListener(refreshButton, 'click', function () {\n      if (contentToOption == null && optionToContent != null || contentToOption != null && optionToContent == null) {\n        if (process.env.NODE_ENV !== 'production') {\n          console.warn('It seems you have just provided one of `contentToOption` and `optionToContent` functions but missed the other one. Data change is ignored.');\n        }\n\n        close();\n        return;\n      }\n\n      var newOption;\n\n      try {\n        if (typeof contentToOption === 'function') {\n          newOption = contentToOption(viewMain, api.getOption());\n        } else {\n          newOption = parseContents(textarea.value, blockMetaList);\n        }\n      } catch (e) {\n        close();\n        throw new Error('Data view format error ' + e);\n      }\n\n      if (newOption) {\n        api.dispatchAction({\n          type: 'changeDataView',\n          newOption: newOption\n        });\n      }\n\n      close();\n    });\n    closeButton.innerHTML = lang[1];\n    refreshButton.innerHTML = lang[2];\n    refreshButton.style.cssText = buttonStyle;\n    closeButton.style.cssText = buttonStyle;\n    !model.get('readOnly') && buttonContainer.appendChild(refreshButton);\n    buttonContainer.appendChild(closeButton);\n    root.appendChild(header);\n    root.appendChild(viewMain);\n    root.appendChild(buttonContainer);\n    viewMain.style.height = container.clientHeight - 80 + 'px';\n    container.appendChild(root);\n    this._dom = root;\n  };\n\n  DataView.prototype.remove = function (ecModel, api) {\n    this._dom && api.getDom().removeChild(this._dom);\n  };\n\n  DataView.prototype.dispose = function (ecModel, api) {\n    this.remove(ecModel, api);\n  };\n\n  DataView.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      readOnly: false,\n      optionToContent: null,\n      contentToOption: null,\n      icon: 'M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28',\n      title: ecModel.getLocale(['toolbox', 'dataView', 'title']),\n      lang: ecModel.getLocale(['toolbox', 'dataView', 'lang']),\n      backgroundColor: '#fff',\n      textColor: '#000',\n      textareaColor: '#fff',\n      textareaBorderColor: '#333',\n      buttonColor: '#c23531',\n      buttonTextColor: '#fff'\n    };\n    return defaultOption;\n  };\n\n  return DataView;\n}(ToolboxFeature);\n\nfunction tryMergeDataOption(newData, originalData) {\n  return zrUtil.map(newData, function (newVal, idx) {\n    var original = originalData && originalData[idx];\n\n    if (zrUtil.isObject(original) && !zrUtil.isArray(original)) {\n      var newValIsObject = zrUtil.isObject(newVal) && !zrUtil.isArray(newVal);\n\n      if (!newValIsObject) {\n        newVal = {\n          value: newVal\n        };\n      }\n\n      var shouldDeleteName = original.name != null && newVal.name == null;\n      newVal = zrUtil.defaults(newVal, original);\n      shouldDeleteName && delete newVal.name;\n      return newVal;\n    } else {\n      return newVal;\n    }\n  });\n}\n\necharts.registerAction({\n  type: 'changeDataView',\n  event: 'dataViewChanged',\n  update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n  var newSeriesOptList = [];\n  zrUtil.each(payload.newOption.series, function (seriesOpt) {\n    var seriesModel = ecModel.getSeriesByName(seriesOpt.name)[0];\n\n    if (!seriesModel) {\n      newSeriesOptList.push(zrUtil.extend({\n        type: 'scatter'\n      }, seriesOpt));\n    } else {\n      var originalData = seriesModel.get('data');\n      newSeriesOptList.push({\n        name: seriesOpt.name,\n        data: tryMergeDataOption(seriesOpt.data, originalData)\n      });\n    }\n  });\n  ecModel.mergeOption(zrUtil.defaults({\n    series: newSeriesOptList\n  }, payload.newOption));\n});\nexport default DataView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { makeInner } from '../../util/model';\nvar each = zrUtil.each;\nvar inner = makeInner();\nexport function push(ecModel, newSnapshot) {\n  var storedSnapshots = getStoreSnapshots(ecModel);\n  each(newSnapshot, function (batchItem, dataZoomId) {\n    var i = storedSnapshots.length - 1;\n\n    for (; i >= 0; i--) {\n      var snapshot = storedSnapshots[i];\n\n      if (snapshot[dataZoomId]) {\n        break;\n      }\n    }\n\n    if (i < 0) {\n      var dataZoomModel = ecModel.queryComponents({\n        mainType: 'dataZoom',\n        subType: 'select',\n        id: dataZoomId\n      })[0];\n\n      if (dataZoomModel) {\n        var percentRange = dataZoomModel.getPercentRange();\n        storedSnapshots[0][dataZoomId] = {\n          dataZoomId: dataZoomId,\n          start: percentRange[0],\n          end: percentRange[1]\n        };\n      }\n    }\n  });\n  storedSnapshots.push(newSnapshot);\n}\nexport function pop(ecModel) {\n  var storedSnapshots = getStoreSnapshots(ecModel);\n  var head = storedSnapshots[storedSnapshots.length - 1];\n  storedSnapshots.length > 1 && storedSnapshots.pop();\n  var snapshot = {};\n  each(head, function (batchItem, dataZoomId) {\n    for (var i = storedSnapshots.length - 1; i >= 0; i--) {\n      batchItem = storedSnapshots[i][dataZoomId];\n\n      if (batchItem) {\n        snapshot[dataZoomId] = batchItem;\n        break;\n      }\n    }\n  });\n  return snapshot;\n}\nexport function clear(ecModel) {\n  inner(ecModel).snapshots = null;\n}\nexport function count(ecModel) {\n  return getStoreSnapshots(ecModel).length;\n}\n\nfunction getStoreSnapshots(ecModel) {\n  var store = inner(ecModel);\n\n  if (!store.snapshots) {\n    store.snapshots = [{}];\n  }\n\n  return store.snapshots;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as echarts from '../../../core/echarts';\nimport * as history from '../../dataZoom/history';\nimport { ToolboxFeature } from '../featureManager';\n\nvar RestoreOption = function (_super) {\n  __extends(RestoreOption, _super);\n\n  function RestoreOption() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  RestoreOption.prototype.onclick = function (ecModel, api) {\n    history.clear(ecModel);\n    api.dispatchAction({\n      type: 'restore',\n      from: this.uid\n    });\n  };\n\n  RestoreOption.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      icon: 'M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5',\n      title: ecModel.getLocale(['toolbox', 'restore', 'title'])\n    };\n    return defaultOption;\n  };\n\n  return RestoreOption;\n}(ToolboxFeature);\n\necharts.registerAction({\n  type: 'restore',\n  event: 'restore',\n  update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n  ecModel.resetOption('recreate');\n});\nexport default RestoreOption;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, indexOf, curry, assert, map, createHashMap } from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport * as brushHelper from './brushHelper';\nimport { parseFinder as modelUtilParseFinder } from '../../util/model';\nvar COORD_CONVERTS = ['dataToPoint', 'pointToData'];\nvar INCLUDE_FINDER_MAIN_TYPES = ['grid', 'xAxis', 'yAxis', 'geo', 'graph', 'polar', 'radiusAxis', 'angleAxis', 'bmap'];\n\nvar BrushTargetManager = function () {\n  function BrushTargetManager(finder, ecModel, opt) {\n    var _this = this;\n\n    this._targetInfoList = [];\n    var foundCpts = parseFinder(ecModel, finder);\n    each(targetInfoBuilders, function (builder, type) {\n      if (!opt || !opt.include || indexOf(opt.include, type) >= 0) {\n        builder(foundCpts, _this._targetInfoList);\n      }\n    });\n  }\n\n  BrushTargetManager.prototype.setOutputRanges = function (areas, ecModel) {\n    this.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) {\n      (area.coordRanges || (area.coordRanges = [])).push(coordRange);\n\n      if (!area.coordRange) {\n        area.coordRange = coordRange;\n        var result = coordConvert[area.brushType](0, coordSys, coordRange);\n        area.__rangeOffset = {\n          offset: diffProcessor[area.brushType](result.values, area.range, [1, 1]),\n          xyMinMax: result.xyMinMax\n        };\n      }\n    });\n    return areas;\n  };\n\n  BrushTargetManager.prototype.matchOutputRanges = function (areas, ecModel, cb) {\n    each(areas, function (area) {\n      var targetInfo = this.findTargetInfo(area, ecModel);\n\n      if (targetInfo && targetInfo !== true) {\n        each(targetInfo.coordSyses, function (coordSys) {\n          var result = coordConvert[area.brushType](1, coordSys, area.range);\n          cb(area, result.values, coordSys, ecModel);\n        });\n      }\n    }, this);\n  };\n\n  BrushTargetManager.prototype.setInputRanges = function (areas, ecModel) {\n    each(areas, function (area) {\n      var targetInfo = this.findTargetInfo(area, ecModel);\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(!targetInfo || targetInfo === true || area.coordRange, 'coordRange must be specified when coord index specified.');\n        assert(!targetInfo || targetInfo !== true || area.range, 'range must be specified in global brush.');\n      }\n\n      area.range = area.range || [];\n\n      if (targetInfo && targetInfo !== true) {\n        area.panelId = targetInfo.panelId;\n        var result = coordConvert[area.brushType](0, targetInfo.coordSys, area.coordRange);\n        var rangeOffset = area.__rangeOffset;\n        area.range = rangeOffset ? diffProcessor[area.brushType](result.values, rangeOffset.offset, getScales(result.xyMinMax, rangeOffset.xyMinMax)) : result.values;\n      }\n    }, this);\n  };\n\n  BrushTargetManager.prototype.makePanelOpts = function (api, getDefaultBrushType) {\n    return map(this._targetInfoList, function (targetInfo) {\n      var rect = targetInfo.getPanelRect();\n      return {\n        panelId: targetInfo.panelId,\n        defaultBrushType: getDefaultBrushType ? getDefaultBrushType(targetInfo) : null,\n        clipPath: brushHelper.makeRectPanelClipPath(rect),\n        isTargetByCursor: brushHelper.makeRectIsTargetByCursor(rect, api, targetInfo.coordSysModel),\n        getLinearBrushOtherExtent: brushHelper.makeLinearBrushOtherExtent(rect)\n      };\n    });\n  };\n\n  BrushTargetManager.prototype.controlSeries = function (area, seriesModel, ecModel) {\n    var targetInfo = this.findTargetInfo(area, ecModel);\n    return targetInfo === true || targetInfo && indexOf(targetInfo.coordSyses, seriesModel.coordinateSystem) >= 0;\n  };\n\n  BrushTargetManager.prototype.findTargetInfo = function (area, ecModel) {\n    var targetInfoList = this._targetInfoList;\n    var foundCpts = parseFinder(ecModel, area);\n\n    for (var i = 0; i < targetInfoList.length; i++) {\n      var targetInfo = targetInfoList[i];\n      var areaPanelId = area.panelId;\n\n      if (areaPanelId) {\n        if (targetInfo.panelId === areaPanelId) {\n          return targetInfo;\n        }\n      } else {\n        for (var j = 0; j < targetInfoMatchers.length; j++) {\n          if (targetInfoMatchers[j](foundCpts, targetInfo)) {\n            return targetInfo;\n          }\n        }\n      }\n    }\n\n    return true;\n  };\n\n  return BrushTargetManager;\n}();\n\nfunction formatMinMax(minMax) {\n  minMax[0] > minMax[1] && minMax.reverse();\n  return minMax;\n}\n\nfunction parseFinder(ecModel, finder) {\n  return modelUtilParseFinder(ecModel, finder, {\n    includeMainTypes: INCLUDE_FINDER_MAIN_TYPES\n  });\n}\n\nvar targetInfoBuilders = {\n  grid: function (foundCpts, targetInfoList) {\n    var xAxisModels = foundCpts.xAxisModels;\n    var yAxisModels = foundCpts.yAxisModels;\n    var gridModels = foundCpts.gridModels;\n    var gridModelMap = createHashMap();\n    var xAxesHas = {};\n    var yAxesHas = {};\n\n    if (!xAxisModels && !yAxisModels && !gridModels) {\n      return;\n    }\n\n    each(xAxisModels, function (axisModel) {\n      var gridModel = axisModel.axis.grid.model;\n      gridModelMap.set(gridModel.id, gridModel);\n      xAxesHas[gridModel.id] = true;\n    });\n    each(yAxisModels, function (axisModel) {\n      var gridModel = axisModel.axis.grid.model;\n      gridModelMap.set(gridModel.id, gridModel);\n      yAxesHas[gridModel.id] = true;\n    });\n    each(gridModels, function (gridModel) {\n      gridModelMap.set(gridModel.id, gridModel);\n      xAxesHas[gridModel.id] = true;\n      yAxesHas[gridModel.id] = true;\n    });\n    gridModelMap.each(function (gridModel) {\n      var grid = gridModel.coordinateSystem;\n      var cartesians = [];\n      each(grid.getCartesians(), function (cartesian, index) {\n        if (indexOf(xAxisModels, cartesian.getAxis('x').model) >= 0 || indexOf(yAxisModels, cartesian.getAxis('y').model) >= 0) {\n          cartesians.push(cartesian);\n        }\n      });\n      targetInfoList.push({\n        panelId: 'grid--' + gridModel.id,\n        gridModel: gridModel,\n        coordSysModel: gridModel,\n        coordSys: cartesians[0],\n        coordSyses: cartesians,\n        getPanelRect: panelRectBuilders.grid,\n        xAxisDeclared: xAxesHas[gridModel.id],\n        yAxisDeclared: yAxesHas[gridModel.id]\n      });\n    });\n  },\n  geo: function (foundCpts, targetInfoList) {\n    each(foundCpts.geoModels, function (geoModel) {\n      var coordSys = geoModel.coordinateSystem;\n      targetInfoList.push({\n        panelId: 'geo--' + geoModel.id,\n        geoModel: geoModel,\n        coordSysModel: geoModel,\n        coordSys: coordSys,\n        coordSyses: [coordSys],\n        getPanelRect: panelRectBuilders.geo\n      });\n    });\n  }\n};\nvar targetInfoMatchers = [function (foundCpts, targetInfo) {\n  var xAxisModel = foundCpts.xAxisModel;\n  var yAxisModel = foundCpts.yAxisModel;\n  var gridModel = foundCpts.gridModel;\n  !gridModel && xAxisModel && (gridModel = xAxisModel.axis.grid.model);\n  !gridModel && yAxisModel && (gridModel = yAxisModel.axis.grid.model);\n  return gridModel && gridModel === targetInfo.gridModel;\n}, function (foundCpts, targetInfo) {\n  var geoModel = foundCpts.geoModel;\n  return geoModel && geoModel === targetInfo.geoModel;\n}];\nvar panelRectBuilders = {\n  grid: function () {\n    return this.coordSys.master.getRect().clone();\n  },\n  geo: function () {\n    var coordSys = this.coordSys;\n    var rect = coordSys.getBoundingRect().clone();\n    rect.applyTransform(graphic.getTransform(coordSys));\n    return rect;\n  }\n};\nvar coordConvert = {\n  lineX: curry(axisConvert, 0),\n  lineY: curry(axisConvert, 1),\n  rect: function (to, coordSys, rangeOrCoordRange) {\n    var xminymin = coordSys[COORD_CONVERTS[to]]([rangeOrCoordRange[0][0], rangeOrCoordRange[1][0]]);\n    var xmaxymax = coordSys[COORD_CONVERTS[to]]([rangeOrCoordRange[0][1], rangeOrCoordRange[1][1]]);\n    var values = [formatMinMax([xminymin[0], xmaxymax[0]]), formatMinMax([xminymin[1], xmaxymax[1]])];\n    return {\n      values: values,\n      xyMinMax: values\n    };\n  },\n  polygon: function (to, coordSys, rangeOrCoordRange) {\n    var xyMinMax = [[Infinity, -Infinity], [Infinity, -Infinity]];\n    var values = map(rangeOrCoordRange, function (item) {\n      var p = coordSys[COORD_CONVERTS[to]](item);\n      xyMinMax[0][0] = Math.min(xyMinMax[0][0], p[0]);\n      xyMinMax[1][0] = Math.min(xyMinMax[1][0], p[1]);\n      xyMinMax[0][1] = Math.max(xyMinMax[0][1], p[0]);\n      xyMinMax[1][1] = Math.max(xyMinMax[1][1], p[1]);\n      return p;\n    });\n    return {\n      values: values,\n      xyMinMax: xyMinMax\n    };\n  }\n};\n\nfunction axisConvert(axisNameIndex, to, coordSys, rangeOrCoordRange) {\n  if (process.env.NODE_ENV !== 'production') {\n    assert(coordSys.type === 'cartesian2d', 'lineX/lineY brush is available only in cartesian2d.');\n  }\n\n  var axis = coordSys.getAxis(['x', 'y'][axisNameIndex]);\n  var values = formatMinMax(map([0, 1], function (i) {\n    return to ? axis.coordToData(axis.toLocalCoord(rangeOrCoordRange[i])) : axis.toGlobalCoord(axis.dataToCoord(rangeOrCoordRange[i]));\n  }));\n  var xyMinMax = [];\n  xyMinMax[axisNameIndex] = values;\n  xyMinMax[1 - axisNameIndex] = [NaN, NaN];\n  return {\n    values: values,\n    xyMinMax: xyMinMax\n  };\n}\n\nvar diffProcessor = {\n  lineX: curry(axisDiffProcessor, 0),\n  lineY: curry(axisDiffProcessor, 1),\n  rect: function (values, refer, scales) {\n    return [[values[0][0] - scales[0] * refer[0][0], values[0][1] - scales[0] * refer[0][1]], [values[1][0] - scales[1] * refer[1][0], values[1][1] - scales[1] * refer[1][1]]];\n  },\n  polygon: function (values, refer, scales) {\n    return map(values, function (item, idx) {\n      return [item[0] - scales[0] * refer[idx][0], item[1] - scales[1] * refer[idx][1]];\n    });\n  }\n};\n\nfunction axisDiffProcessor(axisNameIndex, values, refer, scales) {\n  return [values[0] - scales[axisNameIndex] * refer[0], values[1] - scales[axisNameIndex] * refer[1]];\n}\n\nfunction getScales(xyMinMaxCurr, xyMinMaxOrigin) {\n  var sizeCurr = getSize(xyMinMaxCurr);\n  var sizeOrigin = getSize(xyMinMaxOrigin);\n  var scales = [sizeCurr[0] / sizeOrigin[0], sizeCurr[1] / sizeOrigin[1]];\n  isNaN(scales[0]) && (scales[0] = 1);\n  isNaN(scales[1]) && (scales[1] = 1);\n  return scales;\n}\n\nfunction getSize(xyMinMax) {\n  return xyMinMax ? [xyMinMax[0][1] - xyMinMax[0][0], xyMinMax[1][1] - xyMinMax[1][0]] : [NaN, NaN];\n}\n\nexport default BrushTargetManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BrushController from '../../helper/BrushController';\nimport BrushTargetManager from '../../helper/BrushTargetManager';\nimport * as history from '../../dataZoom/history';\nimport sliderMove from '../../helper/sliderMove';\nimport { ToolboxFeature } from '../featureManager';\nimport { makeInternalComponentId, parseFinder } from '../../../util/model';\nimport { registerInternalOptionCreator } from '../../../model/internalComponentCreator';\nvar each = zrUtil.each;\nvar DATA_ZOOM_ID_BASE = makeInternalComponentId('toolbox-dataZoom_');\nvar ICON_TYPES = ['zoom', 'back'];\n\nvar DataZoomFeature = function (_super) {\n  __extends(DataZoomFeature, _super);\n\n  function DataZoomFeature() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  DataZoomFeature.prototype.render = function (featureModel, ecModel, api, payload) {\n    if (!this.brushController) {\n      this.brushController = new BrushController(api.getZr());\n      this.brushController.on('brush', zrUtil.bind(this._onBrush, this)).mount();\n    }\n\n    updateZoomBtnStatus(featureModel, ecModel, this, payload, api);\n    updateBackBtnStatus(featureModel, ecModel);\n  };\n\n  DataZoomFeature.prototype.onclick = function (ecModel, api, type) {\n    handlers[type].call(this);\n  };\n\n  DataZoomFeature.prototype.remove = function (ecModel, api) {\n    this.brushController.unmount();\n  };\n\n  DataZoomFeature.prototype.dispose = function (ecModel, api) {\n    this.brushController.dispose();\n  };\n\n  DataZoomFeature.prototype._onBrush = function (eventParam) {\n    var areas = eventParam.areas;\n\n    if (!eventParam.isEnd || !areas.length) {\n      return;\n    }\n\n    var snapshot = {};\n    var ecModel = this.ecModel;\n    this.brushController.updateCovers([]);\n    var brushTargetManager = new BrushTargetManager(makeAxisFinder(this.model), ecModel, {\n      include: ['grid']\n    });\n    brushTargetManager.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) {\n      if (coordSys.type !== 'cartesian2d') {\n        return;\n      }\n\n      var brushType = area.brushType;\n\n      if (brushType === 'rect') {\n        setBatch('x', coordSys, coordRange[0]);\n        setBatch('y', coordSys, coordRange[1]);\n      } else {\n        setBatch({\n          lineX: 'x',\n          lineY: 'y'\n        }[brushType], coordSys, coordRange);\n      }\n    });\n    history.push(ecModel, snapshot);\n\n    this._dispatchZoomAction(snapshot);\n\n    function setBatch(dimName, coordSys, minMax) {\n      var axis = coordSys.getAxis(dimName);\n      var axisModel = axis.model;\n      var dataZoomModel = findDataZoom(dimName, axisModel, ecModel);\n      var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy(axisModel).getMinMaxSpan();\n\n      if (minMaxSpan.minValueSpan != null || minMaxSpan.maxValueSpan != null) {\n        minMax = sliderMove(0, minMax.slice(), axis.scale.getExtent(), 0, minMaxSpan.minValueSpan, minMaxSpan.maxValueSpan);\n      }\n\n      dataZoomModel && (snapshot[dataZoomModel.id] = {\n        dataZoomId: dataZoomModel.id,\n        startValue: minMax[0],\n        endValue: minMax[1]\n      });\n    }\n\n    function findDataZoom(dimName, axisModel, ecModel) {\n      var found;\n      ecModel.eachComponent({\n        mainType: 'dataZoom',\n        subType: 'select'\n      }, function (dzModel) {\n        var has = dzModel.getAxisModel(dimName, axisModel.componentIndex);\n        has && (found = dzModel);\n      });\n      return found;\n    }\n  };\n\n  ;\n\n  DataZoomFeature.prototype._dispatchZoomAction = function (snapshot) {\n    var batch = [];\n    each(snapshot, function (batchItem, dataZoomId) {\n      batch.push(zrUtil.clone(batchItem));\n    });\n    batch.length && this.api.dispatchAction({\n      type: 'dataZoom',\n      from: this.uid,\n      batch: batch\n    });\n  };\n\n  DataZoomFeature.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      filterMode: 'filter',\n      icon: {\n        zoom: 'M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1',\n        back: 'M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26'\n      },\n      title: ecModel.getLocale(['toolbox', 'dataZoom', 'title']),\n      brushStyle: {\n        borderWidth: 0,\n        color: 'rgba(210,219,238,0.2)'\n      }\n    };\n    return defaultOption;\n  };\n\n  return DataZoomFeature;\n}(ToolboxFeature);\n\nvar handlers = {\n  zoom: function () {\n    var nextActive = !this.isZoomActive;\n    this.api.dispatchAction({\n      type: 'takeGlobalCursor',\n      key: 'dataZoomSelect',\n      dataZoomSelectActive: nextActive\n    });\n  },\n  back: function () {\n    this._dispatchZoomAction(history.pop(this.ecModel));\n  }\n};\n\nfunction makeAxisFinder(dzFeatureModel) {\n  var setting = {\n    xAxisIndex: dzFeatureModel.get('xAxisIndex', true),\n    yAxisIndex: dzFeatureModel.get('yAxisIndex', true),\n    xAxisId: dzFeatureModel.get('xAxisId', true),\n    yAxisId: dzFeatureModel.get('yAxisId', true)\n  };\n\n  if (setting.xAxisIndex == null && setting.xAxisId == null) {\n    setting.xAxisIndex = 'all';\n  }\n\n  if (setting.yAxisIndex == null && setting.yAxisId == null) {\n    setting.yAxisIndex = 'all';\n  }\n\n  return setting;\n}\n\nfunction updateBackBtnStatus(featureModel, ecModel) {\n  featureModel.setIconStatus('back', history.count(ecModel) > 1 ? 'emphasis' : 'normal');\n}\n\nfunction updateZoomBtnStatus(featureModel, ecModel, view, payload, api) {\n  var zoomActive = view.isZoomActive;\n\n  if (payload && payload.type === 'takeGlobalCursor') {\n    zoomActive = payload.key === 'dataZoomSelect' ? payload.dataZoomSelectActive : false;\n  }\n\n  view.isZoomActive = zoomActive;\n  featureModel.setIconStatus('zoom', zoomActive ? 'emphasis' : 'normal');\n  var brushTargetManager = new BrushTargetManager(makeAxisFinder(featureModel), ecModel, {\n    include: ['grid']\n  });\n  var panels = brushTargetManager.makePanelOpts(api, function (targetInfo) {\n    return targetInfo.xAxisDeclared && !targetInfo.yAxisDeclared ? 'lineX' : !targetInfo.xAxisDeclared && targetInfo.yAxisDeclared ? 'lineY' : 'rect';\n  });\n  view.brushController.setPanels(panels).enableBrush(zoomActive && panels.length ? {\n    brushType: 'auto',\n    brushStyle: featureModel.getModel('brushStyle').getItemStyle()\n  } : false);\n}\n\nregisterInternalOptionCreator('dataZoom', function (ecModel) {\n  var toolboxModel = ecModel.getComponent('toolbox', 0);\n\n  if (!toolboxModel) {\n    return;\n  }\n\n  var dzFeatureModel = toolboxModel.getModel(['feature', 'dataZoom']);\n  var dzOptions = [];\n  var finder = makeAxisFinder(dzFeatureModel);\n  var finderResult = parseFinder(ecModel, finder);\n  each(finderResult.xAxisModels, function (axisModel) {\n    return buildInternalOptions(axisModel, 'xAxis', 'xAxisIndex');\n  });\n  each(finderResult.yAxisModels, function (axisModel) {\n    return buildInternalOptions(axisModel, 'yAxis', 'yAxisIndex');\n  });\n\n  function buildInternalOptions(axisModel, axisMainType, axisIndexPropName) {\n    var axisIndex = axisModel.componentIndex;\n    var newOpt = {\n      type: 'select',\n      $fromToolbox: true,\n      filterMode: dzFeatureModel.get('filterMode', true) || 'filter',\n      id: DATA_ZOOM_ID_BASE + axisMainType + axisIndex\n    };\n    newOpt[axisIndexPropName] = axisIndex;\n    dzOptions.push(newOpt);\n  }\n\n  return dzOptions;\n});\nexport default DataZoomFeature;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport { install as installDataZoomSelect } from '../../component/dataZoom/installDataZoomSelect';\nimport ToolboxModel from './ToolboxModel';\nimport ToolboxView from './ToolboxView';\nimport { registerFeature } from './featureManager';\nimport SaveAsImage from './feature/SaveAsImage';\nimport MagicType from './feature/MagicType';\nimport DataView from './feature/DataView';\nimport Restore from './feature/Restore';\nimport DataZoom from './feature/DataZoom';\nexport function install(registers) {\n  registers.registerComponentModel(ToolboxModel);\n  registers.registerComponentView(ToolboxView);\n  registerFeature('saveAsImage', SaveAsImage);\n  registerFeature('magicType', MagicType);\n  registerFeature('dataView', DataView);\n  registerFeature('dataZoom', DataZoom);\n  registerFeature('restore', Restore);\n  use(installDataZoomSelect);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\n\nvar TooltipModel = function (_super) {\n  __extends(TooltipModel, _super);\n\n  function TooltipModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TooltipModel.type;\n    return _this;\n  }\n\n  TooltipModel.type = 'tooltip';\n  TooltipModel.dependencies = ['axisPointer'];\n  TooltipModel.defaultOption = {\n    zlevel: 0,\n    z: 60,\n    show: true,\n    showContent: true,\n    trigger: 'item',\n    triggerOn: 'mousemove|click',\n    alwaysShowContent: false,\n    displayMode: 'single',\n    renderMode: 'auto',\n    confine: null,\n    showDelay: 0,\n    hideDelay: 100,\n    transitionDuration: 0.4,\n    enterable: false,\n    backgroundColor: '#fff',\n    shadowBlur: 10,\n    shadowColor: 'rgba(0, 0, 0, .2)',\n    shadowOffsetX: 1,\n    shadowOffsetY: 2,\n    borderRadius: 4,\n    borderWidth: 1,\n    padding: null,\n    extraCssText: '',\n    axisPointer: {\n      type: 'line',\n      axis: 'auto',\n      animation: 'auto',\n      animationDurationUpdate: 200,\n      animationEasingUpdate: 'exponentialOut',\n      crossStyle: {\n        color: '#999',\n        width: 1,\n        type: 'dashed',\n        textStyle: {}\n      }\n    },\n    textStyle: {\n      color: '#666',\n      fontSize: 14\n    }\n  };\n  return TooltipModel;\n}(ComponentModel);\n\nexport default TooltipModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function shouldTooltipConfine(tooltipModel) {\n  var confineOption = tooltipModel.get('confine');\n  return confineOption != null ? !!confineOption : tooltipModel.get('renderMode') === 'richText';\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isString, indexOf, map, each, bind, isArray, isDom } from 'zrender/lib/core/util';\nimport { toHex } from 'zrender/lib/tool/color';\nimport { normalizeEvent } from 'zrender/lib/core/event';\nimport { transformLocalCoord } from 'zrender/lib/core/dom';\nimport env from 'zrender/lib/core/env';\nimport { convertToColorString, toCamelCase, normalizeCssArray } from '../../util/format';\nimport { shouldTooltipConfine } from './helper';\nimport { getPaddingFromTooltipModel } from './tooltipMarkup';\nvar vendors = ['-ms-', '-moz-', '-o-', '-webkit-', ''];\nvar gCssText = 'position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;';\n\nfunction mirrorPos(pos) {\n  pos = pos === 'left' ? 'right' : pos === 'right' ? 'left' : pos === 'top' ? 'bottom' : 'top';\n  return pos;\n}\n\nfunction assembleArrow(backgroundColor, borderColor, arrowPosition) {\n  if (!isString(arrowPosition) || arrowPosition === 'inside') {\n    return '';\n  }\n\n  borderColor = convertToColorString(borderColor);\n  var arrowPos = mirrorPos(arrowPosition);\n  var positionStyle = '';\n  var transformStyle = '';\n\n  if (indexOf(['left', 'right'], arrowPos) > -1) {\n    positionStyle = arrowPos + \":-6px;top:50%;\";\n    transformStyle = \"translateY(-50%) rotate(\" + (arrowPos === 'left' ? -225 : -45) + \"deg)\";\n  } else {\n    positionStyle = arrowPos + \":-6px;left:50%;\";\n    transformStyle = \"translateX(-50%) rotate(\" + (arrowPos === 'top' ? 225 : 45) + \"deg)\";\n  }\n\n  transformStyle = map(vendors, function (vendorPrefix) {\n    return vendorPrefix + 'transform:' + transformStyle;\n  }).join(';');\n  var styleCss = ['position:absolute;width:10px;height:10px;', \"\" + positionStyle + transformStyle + \";\", \"border-bottom: \" + borderColor + \" solid 1px;\", \"border-right: \" + borderColor + \" solid 1px;\", \"background-color: \" + backgroundColor + \";\", 'box-shadow: 8px 8px 16px -3px #000;'];\n  return \"<div style=\\\"\" + styleCss.join('') + \"\\\"></div>\";\n}\n\nfunction assembleTransition(duration, onlyFade) {\n  var transitionCurve = 'cubic-bezier(0.23, 1, 0.32, 1)';\n  var transitionText = 'opacity ' + duration / 2 + 's ' + transitionCurve + ',' + 'visibility ' + duration / 2 + 's ' + transitionCurve;\n\n  if (!onlyFade) {\n    transitionText += ',left ' + duration + 's ' + transitionCurve + ',top ' + duration + 's ' + transitionCurve;\n  }\n\n  return map(vendors, function (vendorPrefix) {\n    return vendorPrefix + 'transition:' + transitionText;\n  }).join(';');\n}\n\nfunction assembleFont(textStyleModel) {\n  var cssText = [];\n  var fontSize = textStyleModel.get('fontSize');\n  var color = textStyleModel.getTextColor();\n  color && cssText.push('color:' + color);\n  cssText.push('font:' + textStyleModel.getFont());\n  fontSize && cssText.push('line-height:' + Math.round(fontSize * 3 / 2) + 'px');\n  var shadowColor = textStyleModel.get('textShadowColor');\n  var shadowBlur = textStyleModel.get('textShadowBlur') || 0;\n  var shadowOffsetX = textStyleModel.get('textShadowOffsetX') || 0;\n  var shadowOffsetY = textStyleModel.get('textShadowOffsetY') || 0;\n  shadowColor && shadowBlur && cssText.push('text-shadow:' + shadowOffsetX + 'px ' + shadowOffsetY + 'px ' + shadowBlur + 'px ' + shadowColor);\n  each(['decoration', 'align'], function (name) {\n    var val = textStyleModel.get(name);\n    val && cssText.push('text-' + name + ':' + val);\n  });\n  return cssText.join(';');\n}\n\nfunction assembleCssText(tooltipModel, enableTransition, onlyFade) {\n  var cssText = [];\n  var transitionDuration = tooltipModel.get('transitionDuration');\n  var backgroundColor = tooltipModel.get('backgroundColor');\n  var shadowBlur = tooltipModel.get('shadowBlur');\n  var shadowColor = tooltipModel.get('shadowColor');\n  var shadowOffsetX = tooltipModel.get('shadowOffsetX');\n  var shadowOffsetY = tooltipModel.get('shadowOffsetY');\n  var textStyleModel = tooltipModel.getModel('textStyle');\n  var padding = getPaddingFromTooltipModel(tooltipModel, 'html');\n  var boxShadow = shadowOffsetX + \"px \" + shadowOffsetY + \"px \" + shadowBlur + \"px \" + shadowColor;\n  cssText.push('box-shadow:' + boxShadow);\n  enableTransition && transitionDuration && cssText.push(assembleTransition(transitionDuration, onlyFade));\n\n  if (backgroundColor) {\n    if (env.canvasSupported) {\n      cssText.push('background-Color:' + backgroundColor);\n    } else {\n      cssText.push('background-Color:#' + toHex(backgroundColor));\n      cssText.push('filter:alpha(opacity=70)');\n    }\n  }\n\n  each(['width', 'color', 'radius'], function (name) {\n    var borderName = 'border-' + name;\n    var camelCase = toCamelCase(borderName);\n    var val = tooltipModel.get(camelCase);\n    val != null && cssText.push(borderName + ':' + val + (name === 'color' ? '' : 'px'));\n  });\n  cssText.push(assembleFont(textStyleModel));\n\n  if (padding != null) {\n    cssText.push('padding:' + normalizeCssArray(padding).join('px ') + 'px');\n  }\n\n  return cssText.join(';') + ';';\n}\n\nfunction makeStyleCoord(out, zr, appendToBody, zrX, zrY) {\n  var zrPainter = zr && zr.painter;\n\n  if (appendToBody) {\n    var zrViewportRoot = zrPainter && zrPainter.getViewportRoot();\n\n    if (zrViewportRoot) {\n      transformLocalCoord(out, zrViewportRoot, document.body, zrX, zrY);\n    }\n  } else {\n    out[0] = zrX;\n    out[1] = zrY;\n    var viewportRootOffset = zrPainter && zrPainter.getViewportRootOffset();\n\n    if (viewportRootOffset) {\n      out[0] += viewportRootOffset.offsetLeft;\n      out[1] += viewportRootOffset.offsetTop;\n    }\n  }\n\n  out[2] = out[0] / zr.getWidth();\n  out[3] = out[1] / zr.getHeight();\n}\n\nvar TooltipHTMLContent = function () {\n  function TooltipHTMLContent(container, api, opt) {\n    this._show = false;\n    this._styleCoord = [0, 0, 0, 0];\n    this._enterable = true;\n    this._firstShow = true;\n    this._longHide = true;\n\n    if (env.wxa) {\n      return null;\n    }\n\n    var el = document.createElement('div');\n    el.domBelongToZr = true;\n    this.el = el;\n    var zr = this._zr = api.getZr();\n    var appendToBody = this._appendToBody = opt && opt.appendToBody;\n    makeStyleCoord(this._styleCoord, zr, appendToBody, api.getWidth() / 2, api.getHeight() / 2);\n\n    if (appendToBody) {\n      document.body.appendChild(el);\n    } else {\n      container.appendChild(el);\n    }\n\n    this._container = container;\n    var self = this;\n\n    el.onmouseenter = function () {\n      if (self._enterable) {\n        clearTimeout(self._hideTimeout);\n        self._show = true;\n      }\n\n      self._inContent = true;\n    };\n\n    el.onmousemove = function (e) {\n      e = e || window.event;\n\n      if (!self._enterable) {\n        var handler = zr.handler;\n        var zrViewportRoot = zr.painter.getViewportRoot();\n        normalizeEvent(zrViewportRoot, e, true);\n        handler.dispatch('mousemove', e);\n      }\n    };\n\n    el.onmouseleave = function () {\n      self._inContent = false;\n\n      if (self._enterable) {\n        if (self._show) {\n          self.hideLater(self._hideDelay);\n        }\n      }\n    };\n  }\n\n  TooltipHTMLContent.prototype.update = function (tooltipModel) {\n    var container = this._container;\n    var stl = container.currentStyle || document.defaultView.getComputedStyle(container);\n    var domStyle = container.style;\n\n    if (domStyle.position !== 'absolute' && stl.position !== 'absolute') {\n      domStyle.position = 'relative';\n    }\n\n    var alwaysShowContent = tooltipModel.get('alwaysShowContent');\n    alwaysShowContent && this._moveIfResized();\n    this.el.className = tooltipModel.get('className') || '';\n  };\n\n  TooltipHTMLContent.prototype.show = function (tooltipModel, nearPointColor) {\n    clearTimeout(this._hideTimeout);\n    clearTimeout(this._longHideTimeout);\n    var el = this.el;\n    var styleCoord = this._styleCoord;\n    var offset = el.offsetHeight / 2;\n    nearPointColor = convertToColorString(nearPointColor);\n    el.style.cssText = gCssText + assembleCssText(tooltipModel, !this._firstShow, this._longHide) + ';left:' + styleCoord[0] + 'px;top:' + (styleCoord[1] - offset) + 'px;' + (\"border-color: \" + nearPointColor + \";\") + (tooltipModel.get('extraCssText') || '');\n    el.style.display = el.innerHTML ? 'block' : 'none';\n    el.style.pointerEvents = this._enterable ? 'auto' : 'none';\n    this._show = true;\n    this._firstShow = false;\n    this._longHide = false;\n  };\n\n  TooltipHTMLContent.prototype.setContent = function (content, markers, tooltipModel, borderColor, arrowPosition) {\n    if (content == null) {\n      return;\n    }\n\n    var el = this.el;\n\n    if (isString(arrowPosition) && tooltipModel.get('trigger') === 'item' && !shouldTooltipConfine(tooltipModel)) {\n      content += assembleArrow(tooltipModel.get('backgroundColor'), borderColor, arrowPosition);\n    }\n\n    if (isString(content)) {\n      el.innerHTML = content;\n    } else if (content) {\n      el.innerHTML = '';\n\n      if (!isArray(content)) {\n        content = [content];\n      }\n\n      for (var i = 0; i < content.length; i++) {\n        if (isDom(content[i]) && content[i].parentNode !== el) {\n          el.appendChild(content[i]);\n        }\n      }\n    }\n  };\n\n  TooltipHTMLContent.prototype.setEnterable = function (enterable) {\n    this._enterable = enterable;\n  };\n\n  TooltipHTMLContent.prototype.getSize = function () {\n    var el = this.el;\n    return [el.clientWidth, el.clientHeight];\n  };\n\n  TooltipHTMLContent.prototype.moveTo = function (zrX, zrY) {\n    var styleCoord = this._styleCoord;\n    makeStyleCoord(styleCoord, this._zr, this._appendToBody, zrX, zrY);\n\n    if (styleCoord[0] != null && styleCoord[1] != null) {\n      var style = this.el.style;\n      style.left = styleCoord[0].toFixed(0) + 'px';\n      style.top = styleCoord[1].toFixed(0) + 'px';\n    }\n  };\n\n  TooltipHTMLContent.prototype._moveIfResized = function () {\n    var ratioX = this._styleCoord[2];\n    var ratioY = this._styleCoord[3];\n    this.moveTo(ratioX * this._zr.getWidth(), ratioY * this._zr.getHeight());\n  };\n\n  TooltipHTMLContent.prototype.hide = function () {\n    var _this = this;\n\n    this.el.style.visibility = 'hidden';\n    this.el.style.opacity = '0';\n    this._show = false;\n    this._longHideTimeout = setTimeout(function () {\n      return _this._longHide = true;\n    }, 500);\n  };\n\n  TooltipHTMLContent.prototype.hideLater = function (time) {\n    if (this._show && !(this._inContent && this._enterable)) {\n      if (time) {\n        this._hideDelay = time;\n        this._show = false;\n        this._hideTimeout = setTimeout(bind(this.hide, this), time);\n      } else {\n        this.hide();\n      }\n    }\n  };\n\n  TooltipHTMLContent.prototype.isShow = function () {\n    return this._show;\n  };\n\n  TooltipHTMLContent.prototype.dispose = function () {\n    this.el.parentNode.removeChild(this.el);\n  };\n\n  TooltipHTMLContent.prototype.getOuterSize = function () {\n    var width = this.el.clientWidth;\n    var height = this.el.clientHeight;\n\n    if (document.defaultView && document.defaultView.getComputedStyle) {\n      var stl = document.defaultView.getComputedStyle(this.el);\n\n      if (stl) {\n        width += parseInt(stl.borderLeftWidth, 10) + parseInt(stl.borderRightWidth, 10);\n        height += parseInt(stl.borderTopWidth, 10) + parseInt(stl.borderBottomWidth, 10);\n      }\n    }\n\n    return {\n      width: width,\n      height: height\n    };\n  };\n\n  return TooltipHTMLContent;\n}();\n\nexport default TooltipHTMLContent;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ZRText from 'zrender/lib/graphic/Text';\nimport { getPaddingFromTooltipModel } from './tooltipMarkup';\nimport { throwError } from '../../util/log';\n\nvar TooltipRichContent = function () {\n  function TooltipRichContent(api) {\n    this._show = false;\n    this._styleCoord = [0, 0, 0, 0];\n    this._enterable = true;\n    this._zr = api.getZr();\n    makeStyleCoord(this._styleCoord, this._zr, api.getWidth() / 2, api.getHeight() / 2);\n  }\n\n  TooltipRichContent.prototype.update = function (tooltipModel) {\n    var alwaysShowContent = tooltipModel.get('alwaysShowContent');\n    alwaysShowContent && this._moveIfResized();\n  };\n\n  TooltipRichContent.prototype.show = function () {\n    if (this._hideTimeout) {\n      clearTimeout(this._hideTimeout);\n    }\n\n    this.el.show();\n    this._show = true;\n  };\n\n  TooltipRichContent.prototype.setContent = function (content, markupStyleCreator, tooltipModel, borderColor, arrowPosition) {\n    if (zrUtil.isObject(content)) {\n      throwError(process.env.NODE_ENV !== 'production' ? 'Passing DOM nodes as content is not supported in richText tooltip!' : '');\n    }\n\n    if (this.el) {\n      this._zr.remove(this.el);\n    }\n\n    var textStyleModel = tooltipModel.getModel('textStyle');\n    this.el = new ZRText({\n      style: {\n        rich: markupStyleCreator.richTextStyles,\n        text: content,\n        lineHeight: 22,\n        backgroundColor: tooltipModel.get('backgroundColor'),\n        borderRadius: tooltipModel.get('borderRadius'),\n        borderWidth: 1,\n        borderColor: borderColor,\n        shadowColor: tooltipModel.get('shadowColor'),\n        shadowBlur: tooltipModel.get('shadowBlur'),\n        shadowOffsetX: tooltipModel.get('shadowOffsetX'),\n        shadowOffsetY: tooltipModel.get('shadowOffsetY'),\n        textShadowColor: textStyleModel.get('textShadowColor'),\n        textShadowBlur: textStyleModel.get('textShadowBlur') || 0,\n        textShadowOffsetX: textStyleModel.get('textShadowOffsetX') || 0,\n        textShadowOffsetY: textStyleModel.get('textShadowOffsetY') || 0,\n        fill: tooltipModel.get(['textStyle', 'color']),\n        padding: getPaddingFromTooltipModel(tooltipModel, 'richText'),\n        verticalAlign: 'top',\n        align: 'left'\n      },\n      z: tooltipModel.get('z')\n    });\n\n    this._zr.add(this.el);\n\n    var self = this;\n    this.el.on('mouseover', function () {\n      if (self._enterable) {\n        clearTimeout(self._hideTimeout);\n        self._show = true;\n      }\n\n      self._inContent = true;\n    });\n    this.el.on('mouseout', function () {\n      if (self._enterable) {\n        if (self._show) {\n          self.hideLater(self._hideDelay);\n        }\n      }\n\n      self._inContent = false;\n    });\n  };\n\n  TooltipRichContent.prototype.setEnterable = function (enterable) {\n    this._enterable = enterable;\n  };\n\n  TooltipRichContent.prototype.getSize = function () {\n    var el = this.el;\n    var bounding = this.el.getBoundingRect();\n    var shadowOuterSize = calcShadowOuterSize(el.style);\n    return [bounding.width + shadowOuterSize.left + shadowOuterSize.right, bounding.height + shadowOuterSize.top + shadowOuterSize.bottom];\n  };\n\n  TooltipRichContent.prototype.moveTo = function (x, y) {\n    var el = this.el;\n\n    if (el) {\n      var styleCoord = this._styleCoord;\n      makeStyleCoord(styleCoord, this._zr, x, y);\n      x = styleCoord[0];\n      y = styleCoord[1];\n      var style = el.style;\n      var borderWidth = mathMaxWith0(style.borderWidth || 0);\n      var shadowOuterSize = calcShadowOuterSize(style);\n      el.x = x + borderWidth + shadowOuterSize.left;\n      el.y = y + borderWidth + shadowOuterSize.top;\n      el.markRedraw();\n    }\n  };\n\n  TooltipRichContent.prototype._moveIfResized = function () {\n    var ratioX = this._styleCoord[2];\n    var ratioY = this._styleCoord[3];\n    this.moveTo(ratioX * this._zr.getWidth(), ratioY * this._zr.getHeight());\n  };\n\n  TooltipRichContent.prototype.hide = function () {\n    if (this.el) {\n      this.el.hide();\n    }\n\n    this._show = false;\n  };\n\n  TooltipRichContent.prototype.hideLater = function (time) {\n    if (this._show && !(this._inContent && this._enterable)) {\n      if (time) {\n        this._hideDelay = time;\n        this._show = false;\n        this._hideTimeout = setTimeout(zrUtil.bind(this.hide, this), time);\n      } else {\n        this.hide();\n      }\n    }\n  };\n\n  TooltipRichContent.prototype.isShow = function () {\n    return this._show;\n  };\n\n  TooltipRichContent.prototype.getOuterSize = function () {\n    var size = this.getSize();\n    return {\n      width: size[0],\n      height: size[1]\n    };\n  };\n\n  TooltipRichContent.prototype.dispose = function () {\n    this._zr.remove(this.el);\n  };\n\n  return TooltipRichContent;\n}();\n\nfunction mathMaxWith0(val) {\n  return Math.max(0, val);\n}\n\nfunction calcShadowOuterSize(style) {\n  var shadowBlur = mathMaxWith0(style.shadowBlur || 0);\n  var shadowOffsetX = mathMaxWith0(style.shadowOffsetX || 0);\n  var shadowOffsetY = mathMaxWith0(style.shadowOffsetY || 0);\n  return {\n    left: mathMaxWith0(shadowBlur - shadowOffsetX),\n    right: mathMaxWith0(shadowBlur + shadowOffsetX),\n    top: mathMaxWith0(shadowBlur - shadowOffsetY),\n    bottom: mathMaxWith0(shadowBlur + shadowOffsetY)\n  };\n}\n\nfunction makeStyleCoord(out, zr, zrX, zrY) {\n  out[0] = zrX;\n  out[1] = zrY;\n  out[2] = out[0] / zr.getWidth();\n  out[3] = out[1] / zr.getHeight();\n}\n\nexport default TooltipRichContent;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport TooltipHTMLContent from './TooltipHTMLContent';\nimport TooltipRichContent from './TooltipRichContent';\nimport * as formatUtil from '../../util/format';\nimport * as numberUtil from '../../util/number';\nimport * as graphic from '../../util/graphic';\nimport findPointFromSeries from '../axisPointer/findPointFromSeries';\nimport * as layoutUtil from '../../util/layout';\nimport Model from '../../model/Model';\nimport * as globalListener from '../axisPointer/globalListener';\nimport * as axisHelper from '../../coord/axisHelper';\nimport * as axisPointerViewHelper from '../axisPointer/viewHelper';\nimport { getTooltipRenderMode } from '../../util/model';\nimport ComponentView from '../../view/Component';\nimport { format as timeFormat } from '../../util/time';\nimport { getECData } from '../../util/innerStore';\nimport { shouldTooltipConfine } from './helper';\nimport { normalizeTooltipFormatResult } from '../../model/mixin/dataFormat';\nimport { createTooltipMarkup, buildTooltipMarkup, TooltipMarkupStyleCreator } from './tooltipMarkup';\nimport { findEventDispatcher } from '../../util/event';\nvar bind = zrUtil.bind;\nvar each = zrUtil.each;\nvar parsePercent = numberUtil.parsePercent;\nvar proxyRect = new graphic.Rect({\n  shape: {\n    x: -1,\n    y: -1,\n    width: 2,\n    height: 2\n  }\n});\n\nvar TooltipView = function (_super) {\n  __extends(TooltipView, _super);\n\n  function TooltipView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TooltipView.type;\n    return _this;\n  }\n\n  TooltipView.prototype.init = function (ecModel, api) {\n    if (env.node) {\n      return;\n    }\n\n    var tooltipModel = ecModel.getComponent('tooltip');\n    var renderMode = tooltipModel.get('renderMode');\n    this._renderMode = getTooltipRenderMode(renderMode);\n    this._tooltipContent = this._renderMode === 'richText' ? new TooltipRichContent(api) : new TooltipHTMLContent(api.getDom(), api, {\n      appendToBody: tooltipModel.get('appendToBody', true)\n    });\n  };\n\n  TooltipView.prototype.render = function (tooltipModel, ecModel, api) {\n    if (env.node) {\n      return;\n    }\n\n    this.group.removeAll();\n    this._tooltipModel = tooltipModel;\n    this._ecModel = ecModel;\n    this._api = api;\n    this._alwaysShowContent = tooltipModel.get('alwaysShowContent');\n    var tooltipContent = this._tooltipContent;\n    tooltipContent.update(tooltipModel);\n    tooltipContent.setEnterable(tooltipModel.get('enterable'));\n\n    this._initGlobalListener();\n\n    this._keepShow();\n  };\n\n  TooltipView.prototype._initGlobalListener = function () {\n    var tooltipModel = this._tooltipModel;\n    var triggerOn = tooltipModel.get('triggerOn');\n    globalListener.register('itemTooltip', this._api, bind(function (currTrigger, e, dispatchAction) {\n      if (triggerOn !== 'none') {\n        if (triggerOn.indexOf(currTrigger) >= 0) {\n          this._tryShow(e, dispatchAction);\n        } else if (currTrigger === 'leave') {\n          this._hide(dispatchAction);\n        }\n      }\n    }, this));\n  };\n\n  TooltipView.prototype._keepShow = function () {\n    var tooltipModel = this._tooltipModel;\n    var ecModel = this._ecModel;\n    var api = this._api;\n\n    if (this._lastX != null && this._lastY != null && tooltipModel.get('triggerOn') !== 'none') {\n      var self_1 = this;\n      clearTimeout(this._refreshUpdateTimeout);\n      this._refreshUpdateTimeout = setTimeout(function () {\n        !api.isDisposed() && self_1.manuallyShowTip(tooltipModel, ecModel, api, {\n          x: self_1._lastX,\n          y: self_1._lastY,\n          dataByCoordSys: self_1._lastDataByCoordSys\n        });\n      });\n    }\n  };\n\n  TooltipView.prototype.manuallyShowTip = function (tooltipModel, ecModel, api, payload) {\n    if (payload.from === this.uid || env.node) {\n      return;\n    }\n\n    var dispatchAction = makeDispatchAction(payload, api);\n    this._ticket = '';\n    var dataByCoordSys = payload.dataByCoordSys;\n\n    if (payload.tooltip && payload.x != null && payload.y != null) {\n      var el = proxyRect;\n      el.x = payload.x;\n      el.y = payload.y;\n      el.update();\n      el.tooltip = payload.tooltip;\n\n      this._tryShow({\n        offsetX: payload.x,\n        offsetY: payload.y,\n        target: el\n      }, dispatchAction);\n    } else if (dataByCoordSys) {\n      this._tryShow({\n        offsetX: payload.x,\n        offsetY: payload.y,\n        position: payload.position,\n        dataByCoordSys: dataByCoordSys,\n        tooltipOption: payload.tooltipOption\n      }, dispatchAction);\n    } else if (payload.seriesIndex != null) {\n      if (this._manuallyAxisShowTip(tooltipModel, ecModel, api, payload)) {\n        return;\n      }\n\n      var pointInfo = findPointFromSeries(payload, ecModel);\n      var cx = pointInfo.point[0];\n      var cy = pointInfo.point[1];\n\n      if (cx != null && cy != null) {\n        this._tryShow({\n          offsetX: cx,\n          offsetY: cy,\n          position: payload.position,\n          target: pointInfo.el\n        }, dispatchAction);\n      }\n    } else if (payload.x != null && payload.y != null) {\n      api.dispatchAction({\n        type: 'updateAxisPointer',\n        x: payload.x,\n        y: payload.y\n      });\n\n      this._tryShow({\n        offsetX: payload.x,\n        offsetY: payload.y,\n        position: payload.position,\n        target: api.getZr().findHover(payload.x, payload.y).target\n      }, dispatchAction);\n    }\n  };\n\n  TooltipView.prototype.manuallyHideTip = function (tooltipModel, ecModel, api, payload) {\n    var tooltipContent = this._tooltipContent;\n\n    if (!this._alwaysShowContent && this._tooltipModel) {\n      tooltipContent.hideLater(this._tooltipModel.get('hideDelay'));\n    }\n\n    this._lastX = this._lastY = this._lastDataByCoordSys = null;\n\n    if (payload.from !== this.uid) {\n      this._hide(makeDispatchAction(payload, api));\n    }\n  };\n\n  TooltipView.prototype._manuallyAxisShowTip = function (tooltipModel, ecModel, api, payload) {\n    var seriesIndex = payload.seriesIndex;\n    var dataIndex = payload.dataIndex;\n    var coordSysAxesInfo = ecModel.getComponent('axisPointer').coordSysAxesInfo;\n\n    if (seriesIndex == null || dataIndex == null || coordSysAxesInfo == null) {\n      return;\n    }\n\n    var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n\n    if (!seriesModel) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var tooltipCascadedModel = buildTooltipModel([data.getItemModel(dataIndex), seriesModel, (seriesModel.coordinateSystem || {}).model, tooltipModel]);\n\n    if (tooltipCascadedModel.get('trigger') !== 'axis') {\n      return;\n    }\n\n    api.dispatchAction({\n      type: 'updateAxisPointer',\n      seriesIndex: seriesIndex,\n      dataIndex: dataIndex,\n      position: payload.position\n    });\n    return true;\n  };\n\n  TooltipView.prototype._tryShow = function (e, dispatchAction) {\n    var el = e.target;\n    var tooltipModel = this._tooltipModel;\n\n    if (!tooltipModel) {\n      return;\n    }\n\n    this._lastX = e.offsetX;\n    this._lastY = e.offsetY;\n    var dataByCoordSys = e.dataByCoordSys;\n\n    if (dataByCoordSys && dataByCoordSys.length) {\n      this._showAxisTooltip(dataByCoordSys, e);\n    } else if (el && findEventDispatcher(el, function (target) {\n      return getECData(target).dataIndex != null;\n    }, true)) {\n      this._lastDataByCoordSys = null;\n\n      this._showSeriesItemTooltip(e, el, dispatchAction);\n    } else if (el && el.tooltip) {\n      this._lastDataByCoordSys = null;\n\n      this._showComponentItemTooltip(e, el, dispatchAction);\n    } else {\n      this._lastDataByCoordSys = null;\n\n      this._hide(dispatchAction);\n    }\n  };\n\n  TooltipView.prototype._showOrMove = function (tooltipModel, cb) {\n    var delay = tooltipModel.get('showDelay');\n    cb = zrUtil.bind(cb, this);\n    clearTimeout(this._showTimout);\n    delay > 0 ? this._showTimout = setTimeout(cb, delay) : cb();\n  };\n\n  TooltipView.prototype._showAxisTooltip = function (dataByCoordSys, e) {\n    var ecModel = this._ecModel;\n    var globalTooltipModel = this._tooltipModel;\n    var point = [e.offsetX, e.offsetY];\n    var singleTooltipModel = buildTooltipModel([e.tooltipOption, globalTooltipModel]);\n    var renderMode = this._renderMode;\n    var cbParamsList = [];\n    var articleMarkup = createTooltipMarkup('section', {\n      blocks: [],\n      noHeader: true\n    });\n    var markupTextArrLegacy = [];\n    var markupStyleCreator = new TooltipMarkupStyleCreator();\n    each(dataByCoordSys, function (itemCoordSys) {\n      each(itemCoordSys.dataByAxis, function (axisItem) {\n        var axisModel = ecModel.getComponent(axisItem.axisDim + 'Axis', axisItem.axisIndex);\n        var axisValue = axisItem.value;\n\n        if (!axisModel || axisValue == null) {\n          return;\n        }\n\n        var axisValueLabel = axisPointerViewHelper.getValueLabel(axisValue, axisModel.axis, ecModel, axisItem.seriesDataIndices, axisItem.valueLabelOpt);\n        var axisSectionMarkup = createTooltipMarkup('section', {\n          header: axisValueLabel,\n          noHeader: !zrUtil.trim(axisValueLabel),\n          sortBlocks: true,\n          blocks: []\n        });\n        articleMarkup.blocks.push(axisSectionMarkup);\n        zrUtil.each(axisItem.seriesDataIndices, function (idxItem) {\n          var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\n          var dataIndex = idxItem.dataIndexInside;\n          var cbParams = series.getDataParams(dataIndex);\n          cbParams.axisDim = axisItem.axisDim;\n          cbParams.axisIndex = axisItem.axisIndex;\n          cbParams.axisType = axisItem.axisType;\n          cbParams.axisId = axisItem.axisId;\n          cbParams.axisValue = axisHelper.getAxisRawValue(axisModel.axis, {\n            value: axisValue\n          });\n          cbParams.axisValueLabel = axisValueLabel;\n          cbParams.marker = markupStyleCreator.makeTooltipMarker('item', formatUtil.convertToColorString(cbParams.color), renderMode);\n          var seriesTooltipResult = normalizeTooltipFormatResult(series.formatTooltip(dataIndex, true, null));\n\n          if (seriesTooltipResult.markupFragment) {\n            axisSectionMarkup.blocks.push(seriesTooltipResult.markupFragment);\n          }\n\n          if (seriesTooltipResult.markupText) {\n            markupTextArrLegacy.push(seriesTooltipResult.markupText);\n          }\n\n          cbParamsList.push(cbParams);\n        });\n      });\n    });\n    articleMarkup.blocks.reverse();\n    markupTextArrLegacy.reverse();\n    var positionExpr = e.position;\n    var orderMode = singleTooltipModel.get('order');\n    var builtMarkupText = buildTooltipMarkup(articleMarkup, markupStyleCreator, renderMode, orderMode, ecModel.get('useUTC'), singleTooltipModel.get('textStyle'));\n    builtMarkupText && markupTextArrLegacy.unshift(builtMarkupText);\n    var blockBreak = renderMode === 'richText' ? '\\n\\n' : '<br/>';\n    var allMarkupText = markupTextArrLegacy.join(blockBreak);\n\n    this._showOrMove(singleTooltipModel, function () {\n      if (this._updateContentNotChangedOnAxis(dataByCoordSys)) {\n        this._updatePosition(singleTooltipModel, positionExpr, point[0], point[1], this._tooltipContent, cbParamsList);\n      } else {\n        this._showTooltipContent(singleTooltipModel, allMarkupText, cbParamsList, Math.random() + '', point[0], point[1], positionExpr, null, markupStyleCreator);\n      }\n    });\n  };\n\n  TooltipView.prototype._showSeriesItemTooltip = function (e, el, dispatchAction) {\n    var dispatcher = findEventDispatcher(el, function (target) {\n      return getECData(target).dataIndex != null;\n    }, true);\n    var ecModel = this._ecModel;\n    var ecData = getECData(dispatcher);\n    var seriesIndex = ecData.seriesIndex;\n    var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n    var dataModel = ecData.dataModel || seriesModel;\n    var dataIndex = ecData.dataIndex;\n    var dataType = ecData.dataType;\n    var data = dataModel.getData(dataType);\n    var renderMode = this._renderMode;\n    var tooltipModel = buildTooltipModel([data.getItemModel(dataIndex), dataModel, seriesModel && (seriesModel.coordinateSystem || {}).model, this._tooltipModel]);\n    var tooltipTrigger = tooltipModel.get('trigger');\n\n    if (tooltipTrigger != null && tooltipTrigger !== 'item') {\n      return;\n    }\n\n    var params = dataModel.getDataParams(dataIndex, dataType);\n    var markupStyleCreator = new TooltipMarkupStyleCreator();\n    params.marker = markupStyleCreator.makeTooltipMarker('item', formatUtil.convertToColorString(params.color), renderMode);\n    var seriesTooltipResult = normalizeTooltipFormatResult(dataModel.formatTooltip(dataIndex, false, dataType));\n    var orderMode = tooltipModel.get('order');\n    var markupText = seriesTooltipResult.markupFragment ? buildTooltipMarkup(seriesTooltipResult.markupFragment, markupStyleCreator, renderMode, orderMode, ecModel.get('useUTC'), tooltipModel.get('textStyle')) : seriesTooltipResult.markupText;\n    var asyncTicket = 'item_' + dataModel.name + '_' + dataIndex;\n\n    this._showOrMove(tooltipModel, function () {\n      this._showTooltipContent(tooltipModel, markupText, params, asyncTicket, e.offsetX, e.offsetY, e.position, e.target, markupStyleCreator);\n    });\n\n    dispatchAction({\n      type: 'showTip',\n      dataIndexInside: dataIndex,\n      dataIndex: data.getRawIndex(dataIndex),\n      seriesIndex: seriesIndex,\n      from: this.uid\n    });\n  };\n\n  TooltipView.prototype._showComponentItemTooltip = function (e, el, dispatchAction) {\n    var tooltipOpt = el.tooltip;\n\n    if (zrUtil.isString(tooltipOpt)) {\n      var content = tooltipOpt;\n      tooltipOpt = {\n        content: content,\n        formatter: content\n      };\n    }\n\n    var subTooltipModel = new Model(tooltipOpt, this._tooltipModel, this._ecModel);\n    var defaultHtml = subTooltipModel.get('content');\n    var asyncTicket = Math.random() + '';\n    var markupStyleCreator = new TooltipMarkupStyleCreator();\n\n    this._showOrMove(subTooltipModel, function () {\n      this._showTooltipContent(subTooltipModel, defaultHtml, subTooltipModel.get('formatterParams') || {}, asyncTicket, e.offsetX, e.offsetY, e.position, el, markupStyleCreator);\n    });\n\n    dispatchAction({\n      type: 'showTip',\n      from: this.uid\n    });\n  };\n\n  TooltipView.prototype._showTooltipContent = function (tooltipModel, defaultHtml, params, asyncTicket, x, y, positionExpr, el, markupStyleCreator) {\n    this._ticket = '';\n\n    if (!tooltipModel.get('showContent') || !tooltipModel.get('show')) {\n      return;\n    }\n\n    var tooltipContent = this._tooltipContent;\n    var formatter = tooltipModel.get('formatter');\n    positionExpr = positionExpr || tooltipModel.get('position');\n    var html = defaultHtml;\n\n    var nearPoint = this._getNearestPoint([x, y], params, tooltipModel.get('trigger'), tooltipModel.get('borderColor'));\n\n    if (formatter && zrUtil.isString(formatter)) {\n      var useUTC = tooltipModel.ecModel.get('useUTC');\n      var params0 = zrUtil.isArray(params) ? params[0] : params;\n      var isTimeAxis = params0 && params0.axisType && params0.axisType.indexOf('time') >= 0;\n      html = formatter;\n\n      if (isTimeAxis) {\n        html = timeFormat(params0.axisValue, html, useUTC);\n      }\n\n      html = formatUtil.formatTpl(html, params, true);\n    } else if (zrUtil.isFunction(formatter)) {\n      var callback = bind(function (cbTicket, html) {\n        if (cbTicket === this._ticket) {\n          tooltipContent.setContent(html, markupStyleCreator, tooltipModel, nearPoint.color, positionExpr);\n\n          this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\n        }\n      }, this);\n      this._ticket = asyncTicket;\n      html = formatter(params, asyncTicket, callback);\n    }\n\n    tooltipContent.setContent(html, markupStyleCreator, tooltipModel, nearPoint.color, positionExpr);\n    tooltipContent.show(tooltipModel, nearPoint.color);\n\n    this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\n  };\n\n  TooltipView.prototype._getNearestPoint = function (point, tooltipDataParams, trigger, borderColor) {\n    if (trigger === 'axis' || zrUtil.isArray(tooltipDataParams)) {\n      return {\n        color: borderColor || (this._renderMode === 'html' ? '#fff' : 'none')\n      };\n    }\n\n    if (!zrUtil.isArray(tooltipDataParams)) {\n      return {\n        color: borderColor || tooltipDataParams.color || tooltipDataParams.borderColor\n      };\n    }\n  };\n\n  TooltipView.prototype._updatePosition = function (tooltipModel, positionExpr, x, y, content, params, el) {\n    var viewWidth = this._api.getWidth();\n\n    var viewHeight = this._api.getHeight();\n\n    positionExpr = positionExpr || tooltipModel.get('position');\n    var contentSize = content.getSize();\n    var align = tooltipModel.get('align');\n    var vAlign = tooltipModel.get('verticalAlign');\n    var rect = el && el.getBoundingRect().clone();\n    el && rect.applyTransform(el.transform);\n\n    if (zrUtil.isFunction(positionExpr)) {\n      positionExpr = positionExpr([x, y], params, content.el, rect, {\n        viewSize: [viewWidth, viewHeight],\n        contentSize: contentSize.slice()\n      });\n    }\n\n    if (zrUtil.isArray(positionExpr)) {\n      x = parsePercent(positionExpr[0], viewWidth);\n      y = parsePercent(positionExpr[1], viewHeight);\n    } else if (zrUtil.isObject(positionExpr)) {\n      var boxLayoutPosition = positionExpr;\n      boxLayoutPosition.width = contentSize[0];\n      boxLayoutPosition.height = contentSize[1];\n      var layoutRect = layoutUtil.getLayoutRect(boxLayoutPosition, {\n        width: viewWidth,\n        height: viewHeight\n      });\n      x = layoutRect.x;\n      y = layoutRect.y;\n      align = null;\n      vAlign = null;\n    } else if (zrUtil.isString(positionExpr) && el) {\n      var pos = calcTooltipPosition(positionExpr, rect, contentSize);\n      x = pos[0];\n      y = pos[1];\n    } else {\n      var pos = refixTooltipPosition(x, y, content, viewWidth, viewHeight, align ? null : 20, vAlign ? null : 20);\n      x = pos[0];\n      y = pos[1];\n    }\n\n    align && (x -= isCenterAlign(align) ? contentSize[0] / 2 : align === 'right' ? contentSize[0] : 0);\n    vAlign && (y -= isCenterAlign(vAlign) ? contentSize[1] / 2 : vAlign === 'bottom' ? contentSize[1] : 0);\n\n    if (shouldTooltipConfine(tooltipModel)) {\n      var pos = confineTooltipPosition(x, y, content, viewWidth, viewHeight);\n      x = pos[0];\n      y = pos[1];\n    }\n\n    content.moveTo(x, y);\n  };\n\n  TooltipView.prototype._updateContentNotChangedOnAxis = function (dataByCoordSys) {\n    var lastCoordSys = this._lastDataByCoordSys;\n    var contentNotChanged = !!lastCoordSys && lastCoordSys.length === dataByCoordSys.length;\n    contentNotChanged && each(lastCoordSys, function (lastItemCoordSys, indexCoordSys) {\n      var lastDataByAxis = lastItemCoordSys.dataByAxis || [];\n      var thisItemCoordSys = dataByCoordSys[indexCoordSys] || {};\n      var thisDataByAxis = thisItemCoordSys.dataByAxis || [];\n      contentNotChanged = contentNotChanged && lastDataByAxis.length === thisDataByAxis.length;\n      contentNotChanged && each(lastDataByAxis, function (lastItem, indexAxis) {\n        var thisItem = thisDataByAxis[indexAxis] || {};\n        var lastIndices = lastItem.seriesDataIndices || [];\n        var newIndices = thisItem.seriesDataIndices || [];\n        contentNotChanged = contentNotChanged && lastItem.value === thisItem.value && lastItem.axisType === thisItem.axisType && lastItem.axisId === thisItem.axisId && lastIndices.length === newIndices.length;\n        contentNotChanged && each(lastIndices, function (lastIdxItem, j) {\n          var newIdxItem = newIndices[j];\n          contentNotChanged = contentNotChanged && lastIdxItem.seriesIndex === newIdxItem.seriesIndex && lastIdxItem.dataIndex === newIdxItem.dataIndex;\n        });\n      });\n    });\n    this._lastDataByCoordSys = dataByCoordSys;\n    return !!contentNotChanged;\n  };\n\n  TooltipView.prototype._hide = function (dispatchAction) {\n    this._lastDataByCoordSys = null;\n    dispatchAction({\n      type: 'hideTip',\n      from: this.uid\n    });\n  };\n\n  TooltipView.prototype.dispose = function (ecModel, api) {\n    if (env.node) {\n      return;\n    }\n\n    this._tooltipContent.dispose();\n\n    globalListener.unregister('itemTooltip', api);\n  };\n\n  TooltipView.type = 'tooltip';\n  return TooltipView;\n}(ComponentView);\n\nfunction buildTooltipModel(modelCascade) {\n  var resultModel = modelCascade.pop();\n\n  while (modelCascade.length) {\n    var tooltipOpt = modelCascade.pop();\n\n    if (tooltipOpt) {\n      if (tooltipOpt instanceof Model) {\n        tooltipOpt = tooltipOpt.get('tooltip', true);\n      }\n\n      if (zrUtil.isString(tooltipOpt)) {\n        tooltipOpt = {\n          formatter: tooltipOpt\n        };\n      }\n\n      resultModel = new Model(tooltipOpt, resultModel, resultModel.ecModel);\n    }\n  }\n\n  return resultModel;\n}\n\nfunction makeDispatchAction(payload, api) {\n  return payload.dispatchAction || zrUtil.bind(api.dispatchAction, api);\n}\n\nfunction refixTooltipPosition(x, y, content, viewWidth, viewHeight, gapH, gapV) {\n  var size = content.getOuterSize();\n  var width = size.width;\n  var height = size.height;\n\n  if (gapH != null) {\n    if (x + width + gapH + 2 > viewWidth) {\n      x -= width + gapH;\n    } else {\n      x += gapH;\n    }\n  }\n\n  if (gapV != null) {\n    if (y + height + gapV > viewHeight) {\n      y -= height + gapV;\n    } else {\n      y += gapV;\n    }\n  }\n\n  return [x, y];\n}\n\nfunction confineTooltipPosition(x, y, content, viewWidth, viewHeight) {\n  var size = content.getOuterSize();\n  var width = size.width;\n  var height = size.height;\n  x = Math.min(x + width, viewWidth) - width;\n  y = Math.min(y + height, viewHeight) - height;\n  x = Math.max(x, 0);\n  y = Math.max(y, 0);\n  return [x, y];\n}\n\nfunction calcTooltipPosition(position, rect, contentSize) {\n  var domWidth = contentSize[0];\n  var domHeight = contentSize[1];\n  var gap = 10;\n  var offset = 5;\n  var x = 0;\n  var y = 0;\n  var rectWidth = rect.width;\n  var rectHeight = rect.height;\n\n  switch (position) {\n    case 'inside':\n      x = rect.x + rectWidth / 2 - domWidth / 2;\n      y = rect.y + rectHeight / 2 - domHeight / 2;\n      break;\n\n    case 'top':\n      x = rect.x + rectWidth / 2 - domWidth / 2;\n      y = rect.y - domHeight - gap;\n      break;\n\n    case 'bottom':\n      x = rect.x + rectWidth / 2 - domWidth / 2;\n      y = rect.y + rectHeight + gap;\n      break;\n\n    case 'left':\n      x = rect.x - domWidth - gap - offset;\n      y = rect.y + rectHeight / 2 - domHeight / 2;\n      break;\n\n    case 'right':\n      x = rect.x + rectWidth + gap + offset;\n      y = rect.y + rectHeight / 2 - domHeight / 2;\n  }\n\n  return [x, y];\n}\n\nfunction isCenterAlign(align) {\n  return align === 'center' || align === 'middle';\n}\n\nexport default TooltipView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { install as installAxisPointer } from '../axisPointer/install';\nimport { use } from '../../extension';\nimport TooltipModel from './TooltipModel';\nimport TooltipView from './TooltipView';\nexport function install(registers) {\n  use(installAxisPointer);\n  registers.registerComponentModel(TooltipModel);\n  registers.registerComponentView(TooltipView);\n  registers.registerAction({\n    type: 'showTip',\n    event: 'showTip',\n    update: 'tooltip:manuallyShowTip'\n  }, function () {});\n  registers.registerAction({\n    type: 'hideTip',\n    event: 'hideTip',\n    update: 'tooltip:manuallyHideTip'\n  }, function () {});\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { normalizeToArray } from '../../util/model';\nvar DEFAULT_TOOLBOX_BTNS = ['rect', 'polygon', 'keep', 'clear'];\nexport default function brushPreprocessor(option, isNew) {\n  var brushComponents = normalizeToArray(option ? option.brush : []);\n\n  if (!brushComponents.length) {\n    return;\n  }\n\n  var brushComponentSpecifiedBtns = [];\n  zrUtil.each(brushComponents, function (brushOpt) {\n    var tbs = brushOpt.hasOwnProperty('toolbox') ? brushOpt.toolbox : [];\n\n    if (tbs instanceof Array) {\n      brushComponentSpecifiedBtns = brushComponentSpecifiedBtns.concat(tbs);\n    }\n  });\n  var toolbox = option && option.toolbox;\n\n  if (zrUtil.isArray(toolbox)) {\n    toolbox = toolbox[0];\n  }\n\n  if (!toolbox) {\n    toolbox = {\n      feature: {}\n    };\n    option.toolbox = [toolbox];\n  }\n\n  var toolboxFeature = toolbox.feature || (toolbox.feature = {});\n  var toolboxBrush = toolboxFeature.brush || (toolboxFeature.brush = {});\n  var brushTypes = toolboxBrush.type || (toolboxBrush.type = []);\n  brushTypes.push.apply(brushTypes, brushComponentSpecifiedBtns);\n  removeDuplicate(brushTypes);\n\n  if (isNew && !brushTypes.length) {\n    brushTypes.push.apply(brushTypes, DEFAULT_TOOLBOX_BTNS);\n  }\n}\n\nfunction removeDuplicate(arr) {\n  var map = {};\n  zrUtil.each(arr, function (val) {\n    map[val] = 1;\n  });\n  arr.length = 0;\n  zrUtil.each(map, function (flag, val) {\n    arr.push(val);\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport VisualMapping from './VisualMapping';\nimport { getItemVisualFromData, setItemVisualFromData } from './helper';\nvar each = zrUtil.each;\n\nfunction hasKeys(obj) {\n  if (obj) {\n    for (var name_1 in obj) {\n      if (obj.hasOwnProperty(name_1)) {\n        return true;\n      }\n    }\n  }\n}\n\nexport function createVisualMappings(option, stateList, supplementVisualOption) {\n  var visualMappings = {};\n  each(stateList, function (state) {\n    var mappings = visualMappings[state] = createMappings();\n    each(option[state], function (visualData, visualType) {\n      if (!VisualMapping.isValidType(visualType)) {\n        return;\n      }\n\n      var mappingOption = {\n        type: visualType,\n        visual: visualData\n      };\n      supplementVisualOption && supplementVisualOption(mappingOption, state);\n      mappings[visualType] = new VisualMapping(mappingOption);\n\n      if (visualType === 'opacity') {\n        mappingOption = zrUtil.clone(mappingOption);\n        mappingOption.type = 'colorAlpha';\n        mappings.__hidden.__alphaForOpacity = new VisualMapping(mappingOption);\n      }\n    });\n  });\n  return visualMappings;\n\n  function createMappings() {\n    var Creater = function () {};\n\n    Creater.prototype.__hidden = Creater.prototype;\n    var obj = new Creater();\n    return obj;\n  }\n}\nexport function replaceVisualOption(thisOption, newOption, keys) {\n  var has;\n  zrUtil.each(keys, function (key) {\n    if (newOption.hasOwnProperty(key) && hasKeys(newOption[key])) {\n      has = true;\n    }\n  });\n  has && zrUtil.each(keys, function (key) {\n    if (newOption.hasOwnProperty(key) && hasKeys(newOption[key])) {\n      thisOption[key] = zrUtil.clone(newOption[key]);\n    } else {\n      delete thisOption[key];\n    }\n  });\n}\nexport function applyVisual(stateList, visualMappings, data, getValueState, scope, dimension) {\n  var visualTypesMap = {};\n  zrUtil.each(stateList, function (state) {\n    var visualTypes = VisualMapping.prepareVisualTypes(visualMappings[state]);\n    visualTypesMap[state] = visualTypes;\n  });\n  var dataIndex;\n\n  function getVisual(key) {\n    return getItemVisualFromData(data, dataIndex, key);\n  }\n\n  function setVisual(key, value) {\n    setItemVisualFromData(data, dataIndex, key, value);\n  }\n\n  if (dimension == null) {\n    data.each(eachItem);\n  } else {\n    data.each([dimension], eachItem);\n  }\n\n  function eachItem(valueOrIndex, index) {\n    dataIndex = dimension == null ? valueOrIndex : index;\n    var rawDataItem = data.getRawDataItem(dataIndex);\n\n    if (rawDataItem && rawDataItem.visualMap === false) {\n      return;\n    }\n\n    var valueState = getValueState.call(scope, valueOrIndex);\n    var mappings = visualMappings[valueState];\n    var visualTypes = visualTypesMap[valueState];\n\n    for (var i = 0, len = visualTypes.length; i < len; i++) {\n      var type = visualTypes[i];\n      mappings[type] && mappings[type].applyVisual(valueOrIndex, getVisual, setVisual);\n    }\n  }\n}\nexport function incrementalApplyVisual(stateList, visualMappings, getValueState, dim) {\n  var visualTypesMap = {};\n  zrUtil.each(stateList, function (state) {\n    var visualTypes = VisualMapping.prepareVisualTypes(visualMappings[state]);\n    visualTypesMap[state] = visualTypes;\n  });\n  return {\n    progress: function progress(params, data) {\n      var dimName;\n\n      if (dim != null) {\n        dimName = data.getDimension(dim);\n      }\n\n      function getVisual(key) {\n        return getItemVisualFromData(data, dataIndex, key);\n      }\n\n      function setVisual(key, value) {\n        setItemVisualFromData(data, dataIndex, key, value);\n      }\n\n      var dataIndex;\n\n      while ((dataIndex = params.next()) != null) {\n        var rawDataItem = data.getRawDataItem(dataIndex);\n\n        if (rawDataItem && rawDataItem.visualMap === false) {\n          continue;\n        }\n\n        var value = dim != null ? data.get(dimName, dataIndex) : dataIndex;\n        var valueState = getValueState(value);\n        var mappings = visualMappings[valueState];\n        var visualTypes = visualTypesMap[valueState];\n\n        for (var i = 0, len = visualTypes.length; i < len; i++) {\n          var type = visualTypes[i];\n          mappings[type] && mappings[type].applyVisual(value, getVisual, setVisual);\n        }\n      }\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as polygonContain from 'zrender/lib/contain/polygon';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { linePolygonIntersect } from '../../util/graphic';\nexport function makeBrushCommonSelectorForSeries(area) {\n  var brushType = area.brushType;\n  var selectors = {\n    point: function (itemLayout) {\n      return selector[brushType].point(itemLayout, selectors, area);\n    },\n    rect: function (itemLayout) {\n      return selector[brushType].rect(itemLayout, selectors, area);\n    }\n  };\n  return selectors;\n}\nvar selector = {\n  lineX: getLineSelectors(0),\n  lineY: getLineSelectors(1),\n  rect: {\n    point: function (itemLayout, selectors, area) {\n      return itemLayout && area.boundingRect.contain(itemLayout[0], itemLayout[1]);\n    },\n    rect: function (itemLayout, selectors, area) {\n      return itemLayout && area.boundingRect.intersect(itemLayout);\n    }\n  },\n  polygon: {\n    point: function (itemLayout, selectors, area) {\n      return itemLayout && area.boundingRect.contain(itemLayout[0], itemLayout[1]) && polygonContain.contain(area.range, itemLayout[0], itemLayout[1]);\n    },\n    rect: function (itemLayout, selectors, area) {\n      var points = area.range;\n\n      if (!itemLayout || points.length <= 1) {\n        return false;\n      }\n\n      var x = itemLayout.x;\n      var y = itemLayout.y;\n      var width = itemLayout.width;\n      var height = itemLayout.height;\n      var p = points[0];\n\n      if (polygonContain.contain(points, x, y) || polygonContain.contain(points, x + width, y) || polygonContain.contain(points, x, y + height) || polygonContain.contain(points, x + width, y + height) || BoundingRect.create(itemLayout).contain(p[0], p[1]) || linePolygonIntersect(x, y, x + width, y, points) || linePolygonIntersect(x, y, x, y + height, points) || linePolygonIntersect(x + width, y, x + width, y + height, points) || linePolygonIntersect(x, y + height, x + width, y + height, points)) {\n        return true;\n      }\n    }\n  }\n};\n\nfunction getLineSelectors(xyIndex) {\n  var xy = ['x', 'y'];\n  var wh = ['width', 'height'];\n  return {\n    point: function (itemLayout, selectors, area) {\n      if (itemLayout) {\n        var range = area.range;\n        var p = itemLayout[xyIndex];\n        return inLineRange(p, range);\n      }\n    },\n    rect: function (itemLayout, selectors, area) {\n      if (itemLayout) {\n        var range = area.range;\n        var layoutRange = [itemLayout[xy[xyIndex]], itemLayout[xy[xyIndex]] + itemLayout[wh[xyIndex]]];\n        layoutRange[1] < layoutRange[0] && layoutRange.reverse();\n        return inLineRange(layoutRange[0], range) || inLineRange(layoutRange[1], range) || inLineRange(range[0], layoutRange) || inLineRange(range[1], layoutRange);\n      }\n    }\n  };\n}\n\nfunction inLineRange(p, range) {\n  return range[0] <= p && p <= range[1];\n}\n\nexport default selector;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport * as visualSolution from '../../visual/visualSolution';\nimport { makeBrushCommonSelectorForSeries } from './selector';\nimport * as throttleUtil from '../../util/throttle';\nimport BrushTargetManager from '../helper/BrushTargetManager';\nvar STATE_LIST = ['inBrush', 'outOfBrush'];\nvar DISPATCH_METHOD = '__ecBrushSelect';\nvar DISPATCH_FLAG = '__ecInBrushSelectEvent';\n;\nexport function layoutCovers(ecModel) {\n  ecModel.eachComponent({\n    mainType: 'brush'\n  }, function (brushModel) {\n    var brushTargetManager = brushModel.brushTargetManager = new BrushTargetManager(brushModel.option, ecModel);\n    brushTargetManager.setInputRanges(brushModel.areas, ecModel);\n  });\n}\nexport default function brushVisual(ecModel, api, payload) {\n  var brushSelected = [];\n  var throttleType;\n  var throttleDelay;\n  ecModel.eachComponent({\n    mainType: 'brush'\n  }, function (brushModel) {\n    payload && payload.type === 'takeGlobalCursor' && brushModel.setBrushOption(payload.key === 'brush' ? payload.brushOption : {\n      brushType: false\n    });\n  });\n  layoutCovers(ecModel);\n  ecModel.eachComponent({\n    mainType: 'brush'\n  }, function (brushModel, brushIndex) {\n    var thisBrushSelected = {\n      brushId: brushModel.id,\n      brushIndex: brushIndex,\n      brushName: brushModel.name,\n      areas: zrUtil.clone(brushModel.areas),\n      selected: []\n    };\n    brushSelected.push(thisBrushSelected);\n    var brushOption = brushModel.option;\n    var brushLink = brushOption.brushLink;\n    var linkedSeriesMap = [];\n    var selectedDataIndexForLink = [];\n    var rangeInfoBySeries = [];\n    var hasBrushExists = false;\n\n    if (!brushIndex) {\n      throttleType = brushOption.throttleType;\n      throttleDelay = brushOption.throttleDelay;\n    }\n\n    var areas = zrUtil.map(brushModel.areas, function (area) {\n      var builder = boundingRectBuilders[area.brushType];\n      var selectableArea = zrUtil.defaults({\n        boundingRect: builder ? builder(area) : void 0\n      }, area);\n      selectableArea.selectors = makeBrushCommonSelectorForSeries(selectableArea);\n      return selectableArea;\n    });\n    var visualMappings = visualSolution.createVisualMappings(brushModel.option, STATE_LIST, function (mappingOption) {\n      mappingOption.mappingMethod = 'fixed';\n    });\n    zrUtil.isArray(brushLink) && zrUtil.each(brushLink, function (seriesIndex) {\n      linkedSeriesMap[seriesIndex] = 1;\n    });\n\n    function linkOthers(seriesIndex) {\n      return brushLink === 'all' || !!linkedSeriesMap[seriesIndex];\n    }\n\n    function brushed(rangeInfoList) {\n      return !!rangeInfoList.length;\n    }\n\n    ecModel.eachSeries(function (seriesModel, seriesIndex) {\n      var rangeInfoList = rangeInfoBySeries[seriesIndex] = [];\n      seriesModel.subType === 'parallel' ? stepAParallel(seriesModel, seriesIndex) : stepAOthers(seriesModel, seriesIndex, rangeInfoList);\n    });\n\n    function stepAParallel(seriesModel, seriesIndex) {\n      var coordSys = seriesModel.coordinateSystem;\n      hasBrushExists = hasBrushExists || coordSys.hasAxisBrushed();\n      linkOthers(seriesIndex) && coordSys.eachActiveState(seriesModel.getData(), function (activeState, dataIndex) {\n        activeState === 'active' && (selectedDataIndexForLink[dataIndex] = 1);\n      });\n    }\n\n    function stepAOthers(seriesModel, seriesIndex, rangeInfoList) {\n      if (!seriesModel.brushSelector || brushModelNotControll(brushModel, seriesIndex)) {\n        return;\n      }\n\n      zrUtil.each(areas, function (area) {\n        if (brushModel.brushTargetManager.controlSeries(area, seriesModel, ecModel)) {\n          rangeInfoList.push(area);\n        }\n\n        hasBrushExists = hasBrushExists || brushed(rangeInfoList);\n      });\n\n      if (linkOthers(seriesIndex) && brushed(rangeInfoList)) {\n        var data_1 = seriesModel.getData();\n        data_1.each(function (dataIndex) {\n          if (checkInRange(seriesModel, rangeInfoList, data_1, dataIndex)) {\n            selectedDataIndexForLink[dataIndex] = 1;\n          }\n        });\n      }\n    }\n\n    ecModel.eachSeries(function (seriesModel, seriesIndex) {\n      var seriesBrushSelected = {\n        seriesId: seriesModel.id,\n        seriesIndex: seriesIndex,\n        seriesName: seriesModel.name,\n        dataIndex: []\n      };\n      thisBrushSelected.selected.push(seriesBrushSelected);\n      var rangeInfoList = rangeInfoBySeries[seriesIndex];\n      var data = seriesModel.getData();\n      var getValueState = linkOthers(seriesIndex) ? function (dataIndex) {\n        return selectedDataIndexForLink[dataIndex] ? (seriesBrushSelected.dataIndex.push(data.getRawIndex(dataIndex)), 'inBrush') : 'outOfBrush';\n      } : function (dataIndex) {\n        return checkInRange(seriesModel, rangeInfoList, data, dataIndex) ? (seriesBrushSelected.dataIndex.push(data.getRawIndex(dataIndex)), 'inBrush') : 'outOfBrush';\n      };\n      (linkOthers(seriesIndex) ? hasBrushExists : brushed(rangeInfoList)) && visualSolution.applyVisual(STATE_LIST, visualMappings, data, getValueState);\n    });\n  });\n  dispatchAction(api, throttleType, throttleDelay, brushSelected, payload);\n}\n;\n\nfunction dispatchAction(api, throttleType, throttleDelay, brushSelected, payload) {\n  if (!payload) {\n    return;\n  }\n\n  var zr = api.getZr();\n\n  if (zr[DISPATCH_FLAG]) {\n    return;\n  }\n\n  if (!zr[DISPATCH_METHOD]) {\n    zr[DISPATCH_METHOD] = doDispatch;\n  }\n\n  var fn = throttleUtil.createOrUpdate(zr, DISPATCH_METHOD, throttleDelay, throttleType);\n  fn(api, brushSelected);\n}\n\nfunction doDispatch(api, brushSelected) {\n  if (!api.isDisposed()) {\n    var zr = api.getZr();\n    zr[DISPATCH_FLAG] = true;\n    api.dispatchAction({\n      type: 'brushSelect',\n      batch: brushSelected\n    });\n    zr[DISPATCH_FLAG] = false;\n  }\n}\n\nfunction checkInRange(seriesModel, rangeInfoList, data, dataIndex) {\n  for (var i = 0, len = rangeInfoList.length; i < len; i++) {\n    var area = rangeInfoList[i];\n\n    if (seriesModel.brushSelector(dataIndex, data, area.selectors, area)) {\n      return true;\n    }\n  }\n}\n\nfunction brushModelNotControll(brushModel, seriesIndex) {\n  var seriesIndices = brushModel.option.seriesIndex;\n  return seriesIndices != null && seriesIndices !== 'all' && (zrUtil.isArray(seriesIndices) ? zrUtil.indexOf(seriesIndices, seriesIndex) < 0 : seriesIndex !== seriesIndices);\n}\n\nvar boundingRectBuilders = {\n  rect: function (area) {\n    return getBoundingRectFromMinMax(area.range);\n  },\n  polygon: function (area) {\n    var minMax;\n    var range = area.range;\n\n    for (var i = 0, len = range.length; i < len; i++) {\n      minMax = minMax || [[Infinity, -Infinity], [Infinity, -Infinity]];\n      var rg = range[i];\n      rg[0] < minMax[0][0] && (minMax[0][0] = rg[0]);\n      rg[0] > minMax[0][1] && (minMax[0][1] = rg[0]);\n      rg[1] < minMax[1][0] && (minMax[1][0] = rg[1]);\n      rg[1] > minMax[1][1] && (minMax[1][1] = rg[1]);\n    }\n\n    return minMax && getBoundingRectFromMinMax(minMax);\n  }\n};\n\nfunction getBoundingRectFromMinMax(minMax) {\n  return new BoundingRect(minMax[0][0], minMax[1][0], minMax[0][1] - minMax[0][0], minMax[1][1] - minMax[1][0]);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BrushController from '../helper/BrushController';\nimport { layoutCovers } from './visualEncoding';\nimport ComponentView from '../../view/Component';\n\nvar BrushView = function (_super) {\n  __extends(BrushView, _super);\n\n  function BrushView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BrushView.type;\n    return _this;\n  }\n\n  BrushView.prototype.init = function (ecModel, api) {\n    this.ecModel = ecModel;\n    this.api = api;\n    this.model;\n    (this._brushController = new BrushController(api.getZr())).on('brush', zrUtil.bind(this._onBrush, this)).mount();\n  };\n\n  BrushView.prototype.render = function (brushModel, ecModel, api, payload) {\n    this.model = brushModel;\n\n    this._updateController(brushModel, ecModel, api, payload);\n  };\n\n  BrushView.prototype.updateTransform = function (brushModel, ecModel, api, payload) {\n    layoutCovers(ecModel);\n\n    this._updateController(brushModel, ecModel, api, payload);\n  };\n\n  BrushView.prototype.updateVisual = function (brushModel, ecModel, api, payload) {\n    this.updateTransform(brushModel, ecModel, api, payload);\n  };\n\n  BrushView.prototype.updateView = function (brushModel, ecModel, api, payload) {\n    this._updateController(brushModel, ecModel, api, payload);\n  };\n\n  BrushView.prototype._updateController = function (brushModel, ecModel, api, payload) {\n    (!payload || payload.$from !== brushModel.id) && this._brushController.setPanels(brushModel.brushTargetManager.makePanelOpts(api)).enableBrush(brushModel.brushOption).updateCovers(brushModel.areas.slice());\n  };\n\n  BrushView.prototype.dispose = function () {\n    this._brushController.dispose();\n  };\n\n  BrushView.prototype._onBrush = function (eventParam) {\n    var modelId = this.model.id;\n    var areas = this.model.brushTargetManager.setOutputRanges(eventParam.areas, this.ecModel);\n    (!eventParam.isEnd || eventParam.removeOnClick) && this.api.dispatchAction({\n      type: 'brush',\n      brushId: modelId,\n      areas: zrUtil.clone(areas),\n      $from: modelId\n    });\n    eventParam.isEnd && this.api.dispatchAction({\n      type: 'brushEnd',\n      brushId: modelId,\n      areas: zrUtil.clone(areas),\n      $from: modelId\n    });\n  };\n\n  BrushView.type = 'brush';\n  return BrushView;\n}(ComponentView);\n\nexport default BrushView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as visualSolution from '../../visual/visualSolution';\nimport Model from '../../model/Model';\nimport ComponentModel from '../../model/Component';\nvar DEFAULT_OUT_OF_BRUSH_COLOR = '#ddd';\n\nvar BrushModel = function (_super) {\n  __extends(BrushModel, _super);\n\n  function BrushModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BrushModel.type;\n    _this.areas = [];\n    _this.brushOption = {};\n    return _this;\n  }\n\n  BrushModel.prototype.optionUpdated = function (newOption, isInit) {\n    var thisOption = this.option;\n    !isInit && visualSolution.replaceVisualOption(thisOption, newOption, ['inBrush', 'outOfBrush']);\n    var inBrush = thisOption.inBrush = thisOption.inBrush || {};\n    thisOption.outOfBrush = thisOption.outOfBrush || {\n      color: DEFAULT_OUT_OF_BRUSH_COLOR\n    };\n\n    if (!inBrush.hasOwnProperty('liftZ')) {\n      inBrush.liftZ = 5;\n    }\n  };\n\n  BrushModel.prototype.setAreas = function (areas) {\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.assert(zrUtil.isArray(areas));\n      zrUtil.each(areas, function (area) {\n        zrUtil.assert(area.brushType, 'Illegal areas');\n      });\n    }\n\n    if (!areas) {\n      return;\n    }\n\n    this.areas = zrUtil.map(areas, function (area) {\n      return generateBrushOption(this.option, area);\n    }, this);\n  };\n\n  BrushModel.prototype.setBrushOption = function (brushOption) {\n    this.brushOption = generateBrushOption(this.option, brushOption);\n    this.brushType = this.brushOption.brushType;\n  };\n\n  BrushModel.type = 'brush';\n  BrushModel.dependencies = ['geo', 'grid', 'xAxis', 'yAxis', 'parallel', 'series'];\n  BrushModel.defaultOption = {\n    seriesIndex: 'all',\n    brushType: 'rect',\n    brushMode: 'single',\n    transformable: true,\n    brushStyle: {\n      borderWidth: 1,\n      color: 'rgba(210,219,238,0.3)',\n      borderColor: '#D2DBEE'\n    },\n    throttleType: 'fixRate',\n    throttleDelay: 0,\n    removeOnClick: true,\n    z: 10000\n  };\n  return BrushModel;\n}(ComponentModel);\n\nfunction generateBrushOption(option, brushOption) {\n  return zrUtil.merge({\n    brushType: option.brushType,\n    brushMode: option.brushMode,\n    transformable: option.transformable,\n    brushStyle: new Model(option.brushStyle).getItemStyle(),\n    removeOnClick: option.removeOnClick,\n    z: option.z\n  }, brushOption, true);\n}\n\nexport default BrushModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { ToolboxFeature } from '../featureManager';\nvar ICON_TYPES = ['rect', 'polygon', 'lineX', 'lineY', 'keep', 'clear'];\n\nvar BrushFeature = function (_super) {\n  __extends(BrushFeature, _super);\n\n  function BrushFeature() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  BrushFeature.prototype.render = function (featureModel, ecModel, api) {\n    var brushType;\n    var brushMode;\n    var isBrushed;\n    ecModel.eachComponent({\n      mainType: 'brush'\n    }, function (brushModel) {\n      brushType = brushModel.brushType;\n      brushMode = brushModel.brushOption.brushMode || 'single';\n      isBrushed = isBrushed || !!brushModel.areas.length;\n    });\n    this._brushType = brushType;\n    this._brushMode = brushMode;\n    zrUtil.each(featureModel.get('type', true), function (type) {\n      featureModel.setIconStatus(type, (type === 'keep' ? brushMode === 'multiple' : type === 'clear' ? isBrushed : type === brushType) ? 'emphasis' : 'normal');\n    });\n  };\n\n  BrushFeature.prototype.updateView = function (featureModel, ecModel, api) {\n    this.render(featureModel, ecModel, api);\n  };\n\n  BrushFeature.prototype.getIcons = function () {\n    var model = this.model;\n    var availableIcons = model.get('icon', true);\n    var icons = {};\n    zrUtil.each(model.get('type', true), function (type) {\n      if (availableIcons[type]) {\n        icons[type] = availableIcons[type];\n      }\n    });\n    return icons;\n  };\n\n  ;\n\n  BrushFeature.prototype.onclick = function (ecModel, api, type) {\n    var brushType = this._brushType;\n    var brushMode = this._brushMode;\n\n    if (type === 'clear') {\n      api.dispatchAction({\n        type: 'axisAreaSelect',\n        intervals: []\n      });\n      api.dispatchAction({\n        type: 'brush',\n        command: 'clear',\n        areas: []\n      });\n    } else {\n      api.dispatchAction({\n        type: 'takeGlobalCursor',\n        key: 'brush',\n        brushOption: {\n          brushType: type === 'keep' ? brushType : brushType === type ? false : type,\n          brushMode: type === 'keep' ? brushMode === 'multiple' ? 'single' : 'multiple' : brushMode\n        }\n      });\n    }\n  };\n\n  ;\n\n  BrushFeature.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      type: ICON_TYPES.slice(),\n      icon: {\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',\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',\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',\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',\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',\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'\n      },\n      title: ecModel.getLocale(['toolbox', 'brush', 'title'])\n    };\n    return defaultOption;\n  };\n\n  return BrushFeature;\n}(ToolboxFeature);\n\nexport default BrushFeature;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport brushPreprocessor from './preprocessor';\nimport BrushView from './BrushView';\nimport BrushModel from './BrushModel';\nimport brushVisual from './visualEncoding';\nimport BrushFeature from '../toolbox/feature/Brush';\nimport { registerFeature } from '../toolbox/featureManager';\nexport function install(registers) {\n  registers.registerComponentView(BrushView);\n  registers.registerComponentModel(BrushModel);\n  registers.registerPreprocessor(brushPreprocessor);\n  registers.registerVisual(registers.PRIORITY.VISUAL.BRUSH, brushVisual);\n  registers.registerAction({\n    type: 'brush',\n    event: 'brush',\n    update: 'updateVisual'\n  }, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'brush',\n      query: payload\n    }, function (brushModel) {\n      brushModel.setAreas(payload.areas);\n    });\n  });\n  registers.registerAction({\n    type: 'brushSelect',\n    event: 'brushSelected',\n    update: 'none'\n  }, function () {});\n  registers.registerAction({\n    type: 'brushEnd',\n    event: 'brushEnd',\n    update: 'none'\n  }, function () {});\n  registerFeature('brush', BrushFeature);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { createTextStyle } from '../../label/labelStyle';\nimport { getLayoutRect } from '../../util/layout';\nimport ComponentModel from '../../model/Component';\nimport ComponentView from '../../view/Component';\nimport { windowOpen } from '../../util/format';\n\nvar TitleModel = function (_super) {\n  __extends(TitleModel, _super);\n\n  function TitleModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TitleModel.type;\n    _this.layoutMode = {\n      type: 'box',\n      ignoreSize: true\n    };\n    return _this;\n  }\n\n  TitleModel.type = 'title';\n  TitleModel.defaultOption = {\n    zlevel: 0,\n    z: 6,\n    show: true,\n    text: '',\n    target: 'blank',\n    subtext: '',\n    subtarget: 'blank',\n    left: 0,\n    top: 0,\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderColor: '#ccc',\n    borderWidth: 0,\n    padding: 5,\n    itemGap: 10,\n    textStyle: {\n      fontSize: 18,\n      fontWeight: 'bold',\n      color: '#464646'\n    },\n    subtextStyle: {\n      fontSize: 12,\n      color: '#6E7079'\n    }\n  };\n  return TitleModel;\n}(ComponentModel);\n\nvar TitleView = function (_super) {\n  __extends(TitleView, _super);\n\n  function TitleView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TitleView.type;\n    return _this;\n  }\n\n  TitleView.prototype.render = function (titleModel, ecModel, api) {\n    this.group.removeAll();\n\n    if (!titleModel.get('show')) {\n      return;\n    }\n\n    var group = this.group;\n    var textStyleModel = titleModel.getModel('textStyle');\n    var subtextStyleModel = titleModel.getModel('subtextStyle');\n    var textAlign = titleModel.get('textAlign');\n    var textVerticalAlign = zrUtil.retrieve2(titleModel.get('textBaseline'), titleModel.get('textVerticalAlign'));\n    var textEl = new graphic.Text({\n      style: createTextStyle(textStyleModel, {\n        text: titleModel.get('text'),\n        fill: textStyleModel.getTextColor()\n      }, {\n        disableBox: true\n      }),\n      z2: 10\n    });\n    var textRect = textEl.getBoundingRect();\n    var subText = titleModel.get('subtext');\n    var subTextEl = new graphic.Text({\n      style: createTextStyle(subtextStyleModel, {\n        text: subText,\n        fill: subtextStyleModel.getTextColor(),\n        y: textRect.height + titleModel.get('itemGap'),\n        verticalAlign: 'top'\n      }, {\n        disableBox: true\n      }),\n      z2: 10\n    });\n    var link = titleModel.get('link');\n    var sublink = titleModel.get('sublink');\n    var triggerEvent = titleModel.get('triggerEvent', true);\n    textEl.silent = !link && !triggerEvent;\n    subTextEl.silent = !sublink && !triggerEvent;\n\n    if (link) {\n      textEl.on('click', function () {\n        windowOpen(link, '_' + titleModel.get('target'));\n      });\n    }\n\n    if (sublink) {\n      subTextEl.on('click', function () {\n        windowOpen(sublink, '_' + titleModel.get('subtarget'));\n      });\n    }\n\n    getECData(textEl).eventData = getECData(subTextEl).eventData = triggerEvent ? {\n      componentType: 'title',\n      componentIndex: titleModel.componentIndex\n    } : null;\n    group.add(textEl);\n    subText && group.add(subTextEl);\n    var groupRect = group.getBoundingRect();\n    var layoutOption = titleModel.getBoxLayoutParams();\n    layoutOption.width = groupRect.width;\n    layoutOption.height = groupRect.height;\n    var layoutRect = getLayoutRect(layoutOption, {\n      width: api.getWidth(),\n      height: api.getHeight()\n    }, titleModel.get('padding'));\n\n    if (!textAlign) {\n      textAlign = titleModel.get('left') || titleModel.get('right');\n\n      if (textAlign === 'middle') {\n        textAlign = 'center';\n      }\n\n      if (textAlign === 'right') {\n        layoutRect.x += layoutRect.width;\n      } else if (textAlign === 'center') {\n        layoutRect.x += layoutRect.width / 2;\n      }\n    }\n\n    if (!textVerticalAlign) {\n      textVerticalAlign = titleModel.get('top') || titleModel.get('bottom');\n\n      if (textVerticalAlign === 'center') {\n        textVerticalAlign = 'middle';\n      }\n\n      if (textVerticalAlign === 'bottom') {\n        layoutRect.y += layoutRect.height;\n      } else if (textVerticalAlign === 'middle') {\n        layoutRect.y += layoutRect.height / 2;\n      }\n\n      textVerticalAlign = textVerticalAlign || 'top';\n    }\n\n    group.x = layoutRect.x;\n    group.y = layoutRect.y;\n    group.markRedraw();\n    var alignStyle = {\n      align: textAlign,\n      verticalAlign: textVerticalAlign\n    };\n    textEl.setStyle(alignStyle);\n    subTextEl.setStyle(alignStyle);\n    groupRect = group.getBoundingRect();\n    var padding = layoutRect.margin;\n    var style = titleModel.getItemStyle(['color', 'opacity']);\n    style.fill = titleModel.get('backgroundColor');\n    var rect = new graphic.Rect({\n      shape: {\n        x: groupRect.x - padding[3],\n        y: groupRect.y - padding[0],\n        width: groupRect.width + padding[1] + padding[3],\n        height: groupRect.height + padding[0] + padding[2],\n        r: titleModel.get('borderRadius')\n      },\n      style: style,\n      subPixelOptimize: true,\n      silent: true\n    });\n    group.add(rect);\n  };\n\n  TitleView.type = 'title';\n  return TitleView;\n}(ComponentView);\n\nexport function install(registers) {\n  registers.registerComponentModel(TitleModel);\n  registers.registerComponentView(TitleView);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\nimport List from '../../data/List';\nimport { each, isObject, clone } from 'zrender/lib/core/util';\nimport { convertOptionIdName, getDataItemValue } from '../../util/model';\n\nvar TimelineModel = function (_super) {\n  __extends(TimelineModel, _super);\n\n  function TimelineModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TimelineModel.type;\n    _this.layoutMode = 'box';\n    return _this;\n  }\n\n  TimelineModel.prototype.init = function (option, parentModel, ecModel) {\n    this.mergeDefaultAndTheme(option, ecModel);\n\n    this._initData();\n  };\n\n  TimelineModel.prototype.mergeOption = function (option) {\n    _super.prototype.mergeOption.apply(this, arguments);\n\n    this._initData();\n  };\n\n  TimelineModel.prototype.setCurrentIndex = function (currentIndex) {\n    if (currentIndex == null) {\n      currentIndex = this.option.currentIndex;\n    }\n\n    var count = this._data.count();\n\n    if (this.option.loop) {\n      currentIndex = (currentIndex % count + count) % count;\n    } else {\n      currentIndex >= count && (currentIndex = count - 1);\n      currentIndex < 0 && (currentIndex = 0);\n    }\n\n    this.option.currentIndex = currentIndex;\n  };\n\n  TimelineModel.prototype.getCurrentIndex = function () {\n    return this.option.currentIndex;\n  };\n\n  TimelineModel.prototype.isIndexMax = function () {\n    return this.getCurrentIndex() >= this._data.count() - 1;\n  };\n\n  TimelineModel.prototype.setPlayState = function (state) {\n    this.option.autoPlay = !!state;\n  };\n\n  TimelineModel.prototype.getPlayState = function () {\n    return !!this.option.autoPlay;\n  };\n\n  TimelineModel.prototype._initData = function () {\n    var thisOption = this.option;\n    var dataArr = thisOption.data || [];\n    var axisType = thisOption.axisType;\n    var names = this._names = [];\n    var processedDataArr;\n\n    if (axisType === 'category') {\n      processedDataArr = [];\n      each(dataArr, function (item, index) {\n        var value = convertOptionIdName(getDataItemValue(item), '');\n        var newItem;\n\n        if (isObject(item)) {\n          newItem = clone(item);\n          newItem.value = index;\n        } else {\n          newItem = index;\n        }\n\n        processedDataArr.push(newItem);\n        names.push(value);\n      });\n    } else {\n      processedDataArr = dataArr;\n    }\n\n    var dimType = {\n      category: 'ordinal',\n      time: 'time',\n      value: 'number'\n    }[axisType] || 'number';\n    var data = this._data = new List([{\n      name: 'value',\n      type: dimType\n    }], this);\n    data.initData(processedDataArr, names);\n  };\n\n  TimelineModel.prototype.getData = function () {\n    return this._data;\n  };\n\n  TimelineModel.prototype.getCategories = function () {\n    if (this.get('axisType') === 'category') {\n      return this._names.slice();\n    }\n  };\n\n  TimelineModel.type = 'timeline';\n  TimelineModel.defaultOption = {\n    zlevel: 0,\n    z: 4,\n    show: true,\n    axisType: 'time',\n    realtime: true,\n    left: '20%',\n    top: null,\n    right: '20%',\n    bottom: 0,\n    width: null,\n    height: 40,\n    padding: 5,\n    controlPosition: 'left',\n    autoPlay: false,\n    rewind: false,\n    loop: true,\n    playInterval: 2000,\n    currentIndex: 0,\n    itemStyle: {},\n    label: {\n      color: '#000'\n    },\n    data: []\n  };\n  return TimelineModel;\n}(ComponentModel);\n\nexport default TimelineModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport TimelineModel from './TimelineModel';\nimport { DataFormatMixin } from '../../model/mixin/dataFormat';\nimport { mixin } from 'zrender/lib/core/util';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar SliderTimelineModel = function (_super) {\n  __extends(SliderTimelineModel, _super);\n\n  function SliderTimelineModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SliderTimelineModel.type;\n    return _this;\n  }\n\n  SliderTimelineModel.type = 'timeline.slider';\n  SliderTimelineModel.defaultOption = inheritDefaultOption(TimelineModel.defaultOption, {\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderColor: '#ccc',\n    borderWidth: 0,\n    orient: 'horizontal',\n    inverse: false,\n    tooltip: {\n      trigger: 'item'\n    },\n    symbol: 'circle',\n    symbolSize: 12,\n    lineStyle: {\n      show: true,\n      width: 2,\n      color: '#DAE1F5'\n    },\n    label: {\n      position: 'auto',\n      show: true,\n      interval: 'auto',\n      rotate: 0,\n      color: '#A4B1D7'\n    },\n    itemStyle: {\n      color: '#A4B1D7',\n      borderWidth: 1\n    },\n    checkpointStyle: {\n      symbol: 'circle',\n      symbolSize: 15,\n      color: '#316bf3',\n      borderColor: '#fff',\n      borderWidth: 2,\n      shadowBlur: 2,\n      shadowOffsetX: 1,\n      shadowOffsetY: 1,\n      shadowColor: 'rgba(0, 0, 0, 0.3)',\n      animation: true,\n      animationDuration: 300,\n      animationEasing: 'quinticInOut'\n    },\n    controlStyle: {\n      show: true,\n      showPlayBtn: true,\n      showPrevBtn: true,\n      showNextBtn: true,\n      itemSize: 24,\n      itemGap: 12,\n      position: 'left',\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',\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',\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',\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',\n      prevBtnSize: 18,\n      nextBtnSize: 18,\n      color: '#A4B1D7',\n      borderColor: '#A4B1D7',\n      borderWidth: 1\n    },\n    emphasis: {\n      label: {\n        show: true,\n        color: '#6f778d'\n      },\n      itemStyle: {\n        color: '#316BF3'\n      },\n      controlStyle: {\n        color: '#316BF3',\n        borderColor: '#316BF3',\n        borderWidth: 2\n      }\n    },\n    progress: {\n      lineStyle: {\n        color: '#316BF3'\n      },\n      itemStyle: {\n        color: '#316BF3'\n      },\n      label: {\n        color: '#6f778d'\n      }\n    },\n    data: []\n  });\n  return SliderTimelineModel;\n}(TimelineModel);\n\nmixin(SliderTimelineModel, DataFormatMixin.prototype);\nexport default SliderTimelineModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component';\n\nvar TimelineView = function (_super) {\n  __extends(TimelineView, _super);\n\n  function TimelineView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TimelineView.type;\n    return _this;\n  }\n\n  TimelineView.type = 'timeline';\n  return TimelineView;\n}(ComponentView);\n\nexport default TimelineView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Axis from '../../coord/Axis';\n\nvar TimelineAxis = function (_super) {\n  __extends(TimelineAxis, _super);\n\n  function TimelineAxis(dim, scale, coordExtent, axisType) {\n    var _this = _super.call(this, dim, scale, coordExtent) || this;\n\n    _this.type = axisType || 'value';\n    return _this;\n  }\n\n  TimelineAxis.prototype.getLabelModel = function () {\n    return this.model.getModel('label');\n  };\n\n  TimelineAxis.prototype.isHorizontal = function () {\n    return this.model.get('orient') === 'horizontal';\n  };\n\n  return TimelineAxis;\n}(Axis);\n\nexport default TimelineAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport * as graphic from '../../util/graphic';\nimport { createTextStyle } from '../../label/labelStyle';\nimport * as layout from '../../util/layout';\nimport TimelineView from './TimelineView';\nimport TimelineAxis from './TimelineAxis';\nimport { createSymbol } from '../../util/symbol';\nimport * as numberUtil from '../../util/number';\nimport { merge, each, extend, isString, bind, defaults, retrieve2 } from 'zrender/lib/core/util';\nimport OrdinalScale from '../../scale/Ordinal';\nimport TimeScale from '../../scale/Time';\nimport IntervalScale from '../../scale/Interval';\nimport { parsePercent } from 'zrender/lib/contain/text';\nimport { makeInner } from '../../util/model';\nimport { getECData } from '../../util/innerStore';\nimport { enableHoverEmphasis } from '../../util/states';\nimport { createTooltipMarkup } from '../tooltip/tooltipMarkup';\nvar PI = Math.PI;\nvar labelDataIndexStore = makeInner();\n\nvar SliderTimelineView = function (_super) {\n  __extends(SliderTimelineView, _super);\n\n  function SliderTimelineView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SliderTimelineView.type;\n    return _this;\n  }\n\n  SliderTimelineView.prototype.init = function (ecModel, api) {\n    this.api = api;\n  };\n\n  SliderTimelineView.prototype.render = function (timelineModel, ecModel, api) {\n    this.model = timelineModel;\n    this.api = api;\n    this.ecModel = ecModel;\n    this.group.removeAll();\n\n    if (timelineModel.get('show', true)) {\n      var layoutInfo_1 = this._layout(timelineModel, api);\n\n      var mainGroup_1 = this._createGroup('_mainGroup');\n\n      var labelGroup = this._createGroup('_labelGroup');\n\n      var axis_1 = this._axis = this._createAxis(layoutInfo_1, timelineModel);\n\n      timelineModel.formatTooltip = function (dataIndex) {\n        var name = axis_1.scale.getLabel({\n          value: dataIndex\n        });\n        return createTooltipMarkup('nameValue', {\n          noName: true,\n          value: name\n        });\n      };\n\n      each(['AxisLine', 'AxisTick', 'Control', 'CurrentPointer'], function (name) {\n        this['_render' + name](layoutInfo_1, mainGroup_1, axis_1, timelineModel);\n      }, this);\n\n      this._renderAxisLabel(layoutInfo_1, labelGroup, axis_1, timelineModel);\n\n      this._position(layoutInfo_1, timelineModel);\n    }\n\n    this._doPlayStop();\n\n    this._updateTicksStatus();\n  };\n\n  SliderTimelineView.prototype.remove = function () {\n    this._clearTimer();\n\n    this.group.removeAll();\n  };\n\n  SliderTimelineView.prototype.dispose = function () {\n    this._clearTimer();\n  };\n\n  SliderTimelineView.prototype._layout = function (timelineModel, api) {\n    var labelPosOpt = timelineModel.get(['label', 'position']);\n    var orient = timelineModel.get('orient');\n    var viewRect = getViewRect(timelineModel, api);\n    var parsedLabelPos;\n\n    if (labelPosOpt == null || labelPosOpt === 'auto') {\n      parsedLabelPos = orient === 'horizontal' ? viewRect.y + viewRect.height / 2 < api.getHeight() / 2 ? '-' : '+' : viewRect.x + viewRect.width / 2 < api.getWidth() / 2 ? '+' : '-';\n    } else if (isString(labelPosOpt)) {\n      parsedLabelPos = {\n        horizontal: {\n          top: '-',\n          bottom: '+'\n        },\n        vertical: {\n          left: '-',\n          right: '+'\n        }\n      }[orient][labelPosOpt];\n    } else {\n      parsedLabelPos = labelPosOpt;\n    }\n\n    var labelAlignMap = {\n      horizontal: 'center',\n      vertical: parsedLabelPos >= 0 || parsedLabelPos === '+' ? 'left' : 'right'\n    };\n    var labelBaselineMap = {\n      horizontal: parsedLabelPos >= 0 || parsedLabelPos === '+' ? 'top' : 'bottom',\n      vertical: 'middle'\n    };\n    var rotationMap = {\n      horizontal: 0,\n      vertical: PI / 2\n    };\n    var mainLength = orient === 'vertical' ? viewRect.height : viewRect.width;\n    var controlModel = timelineModel.getModel('controlStyle');\n    var showControl = controlModel.get('show', true);\n    var controlSize = showControl ? controlModel.get('itemSize') : 0;\n    var controlGap = showControl ? controlModel.get('itemGap') : 0;\n    var sizePlusGap = controlSize + controlGap;\n    var labelRotation = timelineModel.get(['label', 'rotate']) || 0;\n    labelRotation = labelRotation * PI / 180;\n    var playPosition;\n    var prevBtnPosition;\n    var nextBtnPosition;\n    var controlPosition = controlModel.get('position', true);\n    var showPlayBtn = showControl && controlModel.get('showPlayBtn', true);\n    var showPrevBtn = showControl && controlModel.get('showPrevBtn', true);\n    var showNextBtn = showControl && controlModel.get('showNextBtn', true);\n    var xLeft = 0;\n    var xRight = mainLength;\n\n    if (controlPosition === 'left' || controlPosition === 'bottom') {\n      showPlayBtn && (playPosition = [0, 0], xLeft += sizePlusGap);\n      showPrevBtn && (prevBtnPosition = [xLeft, 0], xLeft += sizePlusGap);\n      showNextBtn && (nextBtnPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\n    } else {\n      showPlayBtn && (playPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\n      showPrevBtn && (prevBtnPosition = [0, 0], xLeft += sizePlusGap);\n      showNextBtn && (nextBtnPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\n    }\n\n    var axisExtent = [xLeft, xRight];\n\n    if (timelineModel.get('inverse')) {\n      axisExtent.reverse();\n    }\n\n    return {\n      viewRect: viewRect,\n      mainLength: mainLength,\n      orient: orient,\n      rotation: rotationMap[orient],\n      labelRotation: labelRotation,\n      labelPosOpt: parsedLabelPos,\n      labelAlign: timelineModel.get(['label', 'align']) || labelAlignMap[orient],\n      labelBaseline: timelineModel.get(['label', 'verticalAlign']) || timelineModel.get(['label', 'baseline']) || labelBaselineMap[orient],\n      playPosition: playPosition,\n      prevBtnPosition: prevBtnPosition,\n      nextBtnPosition: nextBtnPosition,\n      axisExtent: axisExtent,\n      controlSize: controlSize,\n      controlGap: controlGap\n    };\n  };\n\n  SliderTimelineView.prototype._position = function (layoutInfo, timelineModel) {\n    var mainGroup = this._mainGroup;\n    var labelGroup = this._labelGroup;\n    var viewRect = layoutInfo.viewRect;\n\n    if (layoutInfo.orient === 'vertical') {\n      var m = matrix.create();\n      var rotateOriginX = viewRect.x;\n      var rotateOriginY = viewRect.y + viewRect.height;\n      matrix.translate(m, m, [-rotateOriginX, -rotateOriginY]);\n      matrix.rotate(m, m, -PI / 2);\n      matrix.translate(m, m, [rotateOriginX, rotateOriginY]);\n      viewRect = viewRect.clone();\n      viewRect.applyTransform(m);\n    }\n\n    var viewBound = getBound(viewRect);\n    var mainBound = getBound(mainGroup.getBoundingRect());\n    var labelBound = getBound(labelGroup.getBoundingRect());\n    var mainPosition = [mainGroup.x, mainGroup.y];\n    var labelsPosition = [labelGroup.x, labelGroup.y];\n    labelsPosition[0] = mainPosition[0] = viewBound[0][0];\n    var labelPosOpt = layoutInfo.labelPosOpt;\n\n    if (labelPosOpt == null || isString(labelPosOpt)) {\n      var mainBoundIdx = labelPosOpt === '+' ? 0 : 1;\n      toBound(mainPosition, mainBound, viewBound, 1, mainBoundIdx);\n      toBound(labelsPosition, labelBound, viewBound, 1, 1 - mainBoundIdx);\n    } else {\n      var mainBoundIdx = labelPosOpt >= 0 ? 0 : 1;\n      toBound(mainPosition, mainBound, viewBound, 1, mainBoundIdx);\n      labelsPosition[1] = mainPosition[1] + labelPosOpt;\n    }\n\n    mainGroup.setPosition(mainPosition);\n    labelGroup.setPosition(labelsPosition);\n    mainGroup.rotation = labelGroup.rotation = layoutInfo.rotation;\n    setOrigin(mainGroup);\n    setOrigin(labelGroup);\n\n    function setOrigin(targetGroup) {\n      targetGroup.originX = viewBound[0][0] - targetGroup.x;\n      targetGroup.originY = viewBound[1][0] - targetGroup.y;\n    }\n\n    function getBound(rect) {\n      return [[rect.x, rect.x + rect.width], [rect.y, rect.y + rect.height]];\n    }\n\n    function toBound(fromPos, from, to, dimIdx, boundIdx) {\n      fromPos[dimIdx] += to[dimIdx][boundIdx] - from[dimIdx][boundIdx];\n    }\n  };\n\n  SliderTimelineView.prototype._createAxis = function (layoutInfo, timelineModel) {\n    var data = timelineModel.getData();\n    var axisType = timelineModel.get('axisType');\n    var scale = createScaleByModel(timelineModel, axisType);\n\n    scale.getTicks = function () {\n      return data.mapArray(['value'], function (value) {\n        return {\n          value: value\n        };\n      });\n    };\n\n    var dataExtent = data.getDataExtent('value');\n    scale.setExtent(dataExtent[0], dataExtent[1]);\n    scale.niceTicks();\n    var axis = new TimelineAxis('value', scale, layoutInfo.axisExtent, axisType);\n    axis.model = timelineModel;\n    return axis;\n  };\n\n  SliderTimelineView.prototype._createGroup = function (key) {\n    var newGroup = this[key] = new graphic.Group();\n    this.group.add(newGroup);\n    return newGroup;\n  };\n\n  SliderTimelineView.prototype._renderAxisLine = function (layoutInfo, group, axis, timelineModel) {\n    var axisExtent = axis.getExtent();\n\n    if (!timelineModel.get(['lineStyle', 'show'])) {\n      return;\n    }\n\n    var line = new graphic.Line({\n      shape: {\n        x1: axisExtent[0],\n        y1: 0,\n        x2: axisExtent[1],\n        y2: 0\n      },\n      style: extend({\n        lineCap: 'round'\n      }, timelineModel.getModel('lineStyle').getLineStyle()),\n      silent: true,\n      z2: 1\n    });\n    group.add(line);\n    var progressLine = this._progressLine = new graphic.Line({\n      shape: {\n        x1: axisExtent[0],\n        x2: this._currentPointer ? this._currentPointer.x : axisExtent[0],\n        y1: 0,\n        y2: 0\n      },\n      style: defaults({\n        lineCap: 'round',\n        lineWidth: line.style.lineWidth\n      }, timelineModel.getModel(['progress', 'lineStyle']).getLineStyle()),\n      silent: true,\n      z2: 1\n    });\n    group.add(progressLine);\n  };\n\n  SliderTimelineView.prototype._renderAxisTick = function (layoutInfo, group, axis, timelineModel) {\n    var _this = this;\n\n    var data = timelineModel.getData();\n    var ticks = axis.scale.getTicks();\n    this._tickSymbols = [];\n    each(ticks, function (tick) {\n      var tickCoord = axis.dataToCoord(tick.value);\n      var itemModel = data.getItemModel(tick.value);\n      var itemStyleModel = itemModel.getModel('itemStyle');\n      var hoverStyleModel = itemModel.getModel(['emphasis', 'itemStyle']);\n      var progressStyleModel = itemModel.getModel(['progress', 'itemStyle']);\n      var symbolOpt = {\n        x: tickCoord,\n        y: 0,\n        onclick: bind(_this._changeTimeline, _this, tick.value)\n      };\n      var el = giveSymbol(itemModel, itemStyleModel, group, symbolOpt);\n      el.ensureState('emphasis').style = hoverStyleModel.getItemStyle();\n      el.ensureState('progress').style = progressStyleModel.getItemStyle();\n      enableHoverEmphasis(el);\n      var ecData = getECData(el);\n\n      if (itemModel.get('tooltip')) {\n        ecData.dataIndex = tick.value;\n        ecData.dataModel = timelineModel;\n      } else {\n        ecData.dataIndex = ecData.dataModel = null;\n      }\n\n      _this._tickSymbols.push(el);\n    });\n  };\n\n  SliderTimelineView.prototype._renderAxisLabel = function (layoutInfo, group, axis, timelineModel) {\n    var _this = this;\n\n    var labelModel = axis.getLabelModel();\n\n    if (!labelModel.get('show')) {\n      return;\n    }\n\n    var data = timelineModel.getData();\n    var labels = axis.getViewLabels();\n    this._tickLabels = [];\n    each(labels, function (labelItem) {\n      var dataIndex = labelItem.tickValue;\n      var itemModel = data.getItemModel(dataIndex);\n      var normalLabelModel = itemModel.getModel('label');\n      var hoverLabelModel = itemModel.getModel(['emphasis', 'label']);\n      var progressLabelModel = itemModel.getModel(['progress', 'label']);\n      var tickCoord = axis.dataToCoord(labelItem.tickValue);\n      var textEl = new graphic.Text({\n        x: tickCoord,\n        y: 0,\n        rotation: layoutInfo.labelRotation - layoutInfo.rotation,\n        onclick: bind(_this._changeTimeline, _this, dataIndex),\n        silent: false,\n        style: createTextStyle(normalLabelModel, {\n          text: labelItem.formattedLabel,\n          align: layoutInfo.labelAlign,\n          verticalAlign: layoutInfo.labelBaseline\n        })\n      });\n      textEl.ensureState('emphasis').style = createTextStyle(hoverLabelModel);\n      textEl.ensureState('progress').style = createTextStyle(progressLabelModel);\n      group.add(textEl);\n      enableHoverEmphasis(textEl);\n      labelDataIndexStore(textEl).dataIndex = dataIndex;\n\n      _this._tickLabels.push(textEl);\n    });\n  };\n\n  SliderTimelineView.prototype._renderControl = function (layoutInfo, group, axis, timelineModel) {\n    var controlSize = layoutInfo.controlSize;\n    var rotation = layoutInfo.rotation;\n    var itemStyle = timelineModel.getModel('controlStyle').getItemStyle();\n    var hoverStyle = timelineModel.getModel(['emphasis', 'controlStyle']).getItemStyle();\n    var playState = timelineModel.getPlayState();\n    var inverse = timelineModel.get('inverse', true);\n    makeBtn(layoutInfo.nextBtnPosition, 'next', bind(this._changeTimeline, this, inverse ? '-' : '+'));\n    makeBtn(layoutInfo.prevBtnPosition, 'prev', bind(this._changeTimeline, this, inverse ? '+' : '-'));\n    makeBtn(layoutInfo.playPosition, playState ? 'stop' : 'play', bind(this._handlePlayClick, this, !playState), true);\n\n    function makeBtn(position, iconName, onclick, willRotate) {\n      if (!position) {\n        return;\n      }\n\n      var iconSize = parsePercent(retrieve2(timelineModel.get(['controlStyle', iconName + 'BtnSize']), controlSize), controlSize);\n      var rect = [0, -iconSize / 2, iconSize, iconSize];\n      var opt = {\n        position: position,\n        origin: [controlSize / 2, 0],\n        rotation: willRotate ? -rotation : 0,\n        rectHover: true,\n        style: itemStyle,\n        onclick: onclick\n      };\n      var btn = makeControlIcon(timelineModel, iconName + 'Icon', rect, opt);\n      btn.ensureState('emphasis').style = hoverStyle;\n      group.add(btn);\n      enableHoverEmphasis(btn);\n    }\n  };\n\n  SliderTimelineView.prototype._renderCurrentPointer = function (layoutInfo, group, axis, timelineModel) {\n    var data = timelineModel.getData();\n    var currentIndex = timelineModel.getCurrentIndex();\n    var pointerModel = data.getItemModel(currentIndex).getModel('checkpointStyle');\n    var me = this;\n    var callback = {\n      onCreate: function (pointer) {\n        pointer.draggable = true;\n        pointer.drift = bind(me._handlePointerDrag, me);\n        pointer.ondragend = bind(me._handlePointerDragend, me);\n        pointerMoveTo(pointer, me._progressLine, currentIndex, axis, timelineModel, true);\n      },\n      onUpdate: function (pointer) {\n        pointerMoveTo(pointer, me._progressLine, currentIndex, axis, timelineModel);\n      }\n    };\n    this._currentPointer = giveSymbol(pointerModel, pointerModel, this._mainGroup, {}, this._currentPointer, callback);\n  };\n\n  SliderTimelineView.prototype._handlePlayClick = function (nextState) {\n    this._clearTimer();\n\n    this.api.dispatchAction({\n      type: 'timelinePlayChange',\n      playState: nextState,\n      from: this.uid\n    });\n  };\n\n  SliderTimelineView.prototype._handlePointerDrag = function (dx, dy, e) {\n    this._clearTimer();\n\n    this._pointerChangeTimeline([e.offsetX, e.offsetY]);\n  };\n\n  SliderTimelineView.prototype._handlePointerDragend = function (e) {\n    this._pointerChangeTimeline([e.offsetX, e.offsetY], true);\n  };\n\n  SliderTimelineView.prototype._pointerChangeTimeline = function (mousePos, trigger) {\n    var toCoord = this._toAxisCoord(mousePos)[0];\n\n    var axis = this._axis;\n    var axisExtent = numberUtil.asc(axis.getExtent().slice());\n    toCoord > axisExtent[1] && (toCoord = axisExtent[1]);\n    toCoord < axisExtent[0] && (toCoord = axisExtent[0]);\n    this._currentPointer.x = toCoord;\n\n    this._currentPointer.markRedraw();\n\n    this._progressLine.shape.x2 = toCoord;\n\n    this._progressLine.dirty();\n\n    var targetDataIndex = this._findNearestTick(toCoord);\n\n    var timelineModel = this.model;\n\n    if (trigger || targetDataIndex !== timelineModel.getCurrentIndex() && timelineModel.get('realtime')) {\n      this._changeTimeline(targetDataIndex);\n    }\n  };\n\n  SliderTimelineView.prototype._doPlayStop = function () {\n    var _this = this;\n\n    this._clearTimer();\n\n    if (this.model.getPlayState()) {\n      this._timer = setTimeout(function () {\n        var timelineModel = _this.model;\n\n        _this._changeTimeline(timelineModel.getCurrentIndex() + (timelineModel.get('rewind', true) ? -1 : 1));\n      }, this.model.get('playInterval'));\n    }\n  };\n\n  SliderTimelineView.prototype._toAxisCoord = function (vertex) {\n    var trans = this._mainGroup.getLocalTransform();\n\n    return graphic.applyTransform(vertex, trans, true);\n  };\n\n  SliderTimelineView.prototype._findNearestTick = function (axisCoord) {\n    var data = this.model.getData();\n    var dist = Infinity;\n    var targetDataIndex;\n    var axis = this._axis;\n    data.each(['value'], function (value, dataIndex) {\n      var coord = axis.dataToCoord(value);\n      var d = Math.abs(coord - axisCoord);\n\n      if (d < dist) {\n        dist = d;\n        targetDataIndex = dataIndex;\n      }\n    });\n    return targetDataIndex;\n  };\n\n  SliderTimelineView.prototype._clearTimer = function () {\n    if (this._timer) {\n      clearTimeout(this._timer);\n      this._timer = null;\n    }\n  };\n\n  SliderTimelineView.prototype._changeTimeline = function (nextIndex) {\n    var currentIndex = this.model.getCurrentIndex();\n\n    if (nextIndex === '+') {\n      nextIndex = currentIndex + 1;\n    } else if (nextIndex === '-') {\n      nextIndex = currentIndex - 1;\n    }\n\n    this.api.dispatchAction({\n      type: 'timelineChange',\n      currentIndex: nextIndex,\n      from: this.uid\n    });\n  };\n\n  SliderTimelineView.prototype._updateTicksStatus = function () {\n    var currentIndex = this.model.getCurrentIndex();\n    var tickSymbols = this._tickSymbols;\n    var tickLabels = this._tickLabels;\n\n    if (tickSymbols) {\n      for (var i = 0; i < tickSymbols.length; i++) {\n        tickSymbols && tickSymbols[i] && tickSymbols[i].toggleState('progress', i < currentIndex);\n      }\n    }\n\n    if (tickLabels) {\n      for (var i = 0; i < tickLabels.length; i++) {\n        tickLabels && tickLabels[i] && tickLabels[i].toggleState('progress', labelDataIndexStore(tickLabels[i]).dataIndex <= currentIndex);\n      }\n    }\n  };\n\n  SliderTimelineView.type = 'timeline.slider';\n  return SliderTimelineView;\n}(TimelineView);\n\nfunction createScaleByModel(model, axisType) {\n  axisType = axisType || model.get('type');\n\n  if (axisType) {\n    switch (axisType) {\n      case 'category':\n        return new OrdinalScale({\n          ordinalMeta: model.getCategories(),\n          extent: [Infinity, -Infinity]\n        });\n\n      case 'time':\n        return new TimeScale({\n          locale: model.ecModel.getLocaleModel(),\n          useUTC: model.ecModel.get('useUTC')\n        });\n\n      default:\n        return new IntervalScale();\n    }\n  }\n}\n\nfunction getViewRect(model, api) {\n  return layout.getLayoutRect(model.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  }, model.get('padding'));\n}\n\nfunction makeControlIcon(timelineModel, objPath, rect, opts) {\n  var style = opts.style;\n  var icon = graphic.createIcon(timelineModel.get(['controlStyle', objPath]), opts || {}, new BoundingRect(rect[0], rect[1], rect[2], rect[3]));\n\n  if (style) {\n    icon.setStyle(style);\n  }\n\n  return icon;\n}\n\nfunction giveSymbol(hostModel, itemStyleModel, group, opt, symbol, callback) {\n  var color = itemStyleModel.get('color');\n\n  if (!symbol) {\n    var symbolType = hostModel.get('symbol');\n    symbol = createSymbol(symbolType, -1, -1, 2, 2, color);\n    symbol.setStyle('strokeNoScale', true);\n    group.add(symbol);\n    callback && callback.onCreate(symbol);\n  } else {\n    symbol.setColor(color);\n    group.add(symbol);\n    callback && callback.onUpdate(symbol);\n  }\n\n  var itemStyle = itemStyleModel.getItemStyle(['color']);\n  symbol.setStyle(itemStyle);\n  opt = merge({\n    rectHover: true,\n    z2: 100\n  }, opt, true);\n  var symbolSize = hostModel.get('symbolSize');\n  symbolSize = symbolSize instanceof Array ? symbolSize.slice() : [+symbolSize, +symbolSize];\n  opt.scaleX = symbolSize[0] / 2;\n  opt.scaleY = symbolSize[1] / 2;\n  var symbolOffset = hostModel.get('symbolOffset');\n\n  if (symbolOffset) {\n    opt.x = opt.x || 0;\n    opt.y = opt.y || 0;\n    opt.x += numberUtil.parsePercent(symbolOffset[0], symbolSize[0]);\n    opt.y += numberUtil.parsePercent(symbolOffset[1], symbolSize[1]);\n  }\n\n  var symbolRotate = hostModel.get('symbolRotate');\n  opt.rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\n  symbol.attr(opt);\n  symbol.updateTransform();\n  return symbol;\n}\n\nfunction pointerMoveTo(pointer, progressLine, dataIndex, axis, timelineModel, noAnimation) {\n  if (pointer.dragging) {\n    return;\n  }\n\n  var pointerModel = timelineModel.getModel('checkpointStyle');\n  var toCoord = axis.dataToCoord(timelineModel.getData().get('value', dataIndex));\n\n  if (noAnimation || !pointerModel.get('animation', true)) {\n    pointer.attr({\n      x: toCoord,\n      y: 0\n    });\n    progressLine && progressLine.attr({\n      shape: {\n        x2: toCoord\n      }\n    });\n  } else {\n    var animationCfg = {\n      duration: pointerModel.get('animationDuration', true),\n      easing: pointerModel.get('animationEasing', true)\n    };\n    pointer.stopAnimation(null, true);\n    pointer.animateTo({\n      x: toCoord,\n      y: 0\n    }, animationCfg);\n    progressLine && progressLine.animateTo({\n      shape: {\n        x2: toCoord\n      }\n    }, animationCfg);\n  }\n}\n\nexport default SliderTimelineView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { defaults } from 'zrender/lib/core/util';\nexport function installTimelineAction(registers) {\n  registers.registerAction({\n    type: 'timelineChange',\n    event: 'timelineChanged',\n    update: 'prepareAndUpdate'\n  }, function (payload, ecModel) {\n    var timelineModel = ecModel.getComponent('timeline');\n\n    if (timelineModel && payload.currentIndex != null) {\n      timelineModel.setCurrentIndex(payload.currentIndex);\n\n      if (!timelineModel.get('loop', true) && timelineModel.isIndexMax()) {\n        timelineModel.setPlayState(false);\n      }\n    }\n\n    ecModel.resetOption('timeline', {\n      replaceMerge: timelineModel.get('replaceMerge', true)\n    });\n    return defaults({\n      currentIndex: timelineModel.option.currentIndex\n    }, payload);\n  });\n  registers.registerAction({\n    type: 'timelinePlayChange',\n    event: 'timelinePlayChanged',\n    update: 'update'\n  }, function (payload, ecModel) {\n    var timelineModel = ecModel.getComponent('timeline');\n\n    if (timelineModel && payload.playState != null) {\n      timelineModel.setPlayState(payload.playState);\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function timelinePreprocessor(option) {\n  var timelineOpt = option && option.timeline;\n\n  if (!zrUtil.isArray(timelineOpt)) {\n    timelineOpt = timelineOpt ? [timelineOpt] : [];\n  }\n\n  zrUtil.each(timelineOpt, function (opt) {\n    if (!opt) {\n      return;\n    }\n\n    compatibleEC2(opt);\n  });\n}\n\nfunction compatibleEC2(opt) {\n  var type = opt.type;\n  var ec2Types = {\n    'number': 'value',\n    'time': 'time'\n  };\n\n  if (ec2Types[type]) {\n    opt.axisType = ec2Types[type];\n    delete opt.type;\n  }\n\n  transferItem(opt);\n\n  if (has(opt, 'controlPosition')) {\n    var controlStyle = opt.controlStyle || (opt.controlStyle = {});\n\n    if (!has(controlStyle, 'position')) {\n      controlStyle.position = opt.controlPosition;\n    }\n\n    if (controlStyle.position === 'none' && !has(controlStyle, 'show')) {\n      controlStyle.show = false;\n      delete controlStyle.position;\n    }\n\n    delete opt.controlPosition;\n  }\n\n  zrUtil.each(opt.data || [], function (dataItem) {\n    if (zrUtil.isObject(dataItem) && !zrUtil.isArray(dataItem)) {\n      if (!has(dataItem, 'value') && has(dataItem, 'name')) {\n        dataItem.value = dataItem.name;\n      }\n\n      transferItem(dataItem);\n    }\n  });\n}\n\nfunction transferItem(opt) {\n  var itemStyle = opt.itemStyle || (opt.itemStyle = {});\n  var itemStyleEmphasis = itemStyle.emphasis || (itemStyle.emphasis = {});\n  var label = opt.label || opt.label || {};\n  var labelNormal = label.normal || (label.normal = {});\n  var excludeLabelAttr = {\n    normal: 1,\n    emphasis: 1\n  };\n  zrUtil.each(label, function (value, name) {\n    if (!excludeLabelAttr[name] && !has(labelNormal, name)) {\n      labelNormal[name] = value;\n    }\n  });\n\n  if (itemStyleEmphasis.label && !has(label, 'emphasis')) {\n    label.emphasis = itemStyleEmphasis.label;\n    delete itemStyleEmphasis.label;\n  }\n}\n\nfunction has(obj, attr) {\n  return obj.hasOwnProperty(attr);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SliderTimelineModel from './SliderTimelineModel';\nimport SliderTimelineView from './SliderTimelineView';\nimport { installTimelineAction } from './timelineAction';\nimport preprocessor from './preprocessor';\nexport function install(registers) {\n  registers.registerComponentModel(SliderTimelineModel);\n  registers.registerComponentView(SliderTimelineView);\n  registers.registerSubTypeDefaulter('timeline', function () {\n    return 'slider';\n  });\n  installTimelineAction(registers);\n  registers.registerPreprocessor(preprocessor);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport { DataFormatMixin } from '../../model/mixin/dataFormat';\nimport ComponentModel from '../../model/Component';\nimport { makeInner, defaultEmphasis } from '../../util/model';\nimport { createTooltipMarkup } from '../tooltip/tooltipMarkup';\n\nfunction fillLabel(opt) {\n  defaultEmphasis(opt, 'label', ['show']);\n}\n\nvar inner = makeInner();\n\nvar MarkerModel = function (_super) {\n  __extends(MarkerModel, _super);\n\n  function MarkerModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkerModel.type;\n    _this.createdBySelf = false;\n    return _this;\n  }\n\n  MarkerModel.prototype.init = function (option, parentModel, ecModel) {\n    if (process.env.NODE_ENV !== 'production') {\n      if (this.type === 'marker') {\n        throw new Error('Marker component is abstract component. Use markLine, markPoint, markArea instead.');\n      }\n    }\n\n    this.mergeDefaultAndTheme(option, ecModel);\n\n    this._mergeOption(option, ecModel, false, true);\n  };\n\n  MarkerModel.prototype.isAnimationEnabled = function () {\n    if (env.node) {\n      return false;\n    }\n\n    var hostSeries = this.__hostSeries;\n    return this.getShallow('animation') && hostSeries && hostSeries.isAnimationEnabled();\n  };\n\n  MarkerModel.prototype.mergeOption = function (newOpt, ecModel) {\n    this._mergeOption(newOpt, ecModel, false, false);\n  };\n\n  MarkerModel.prototype._mergeOption = function (newOpt, ecModel, createdBySelf, isInit) {\n    var componentType = this.mainType;\n\n    if (!createdBySelf) {\n      ecModel.eachSeries(function (seriesModel) {\n        var markerOpt = seriesModel.get(this.mainType, true);\n        var markerModel = inner(seriesModel)[componentType];\n\n        if (!markerOpt || !markerOpt.data) {\n          inner(seriesModel)[componentType] = null;\n          return;\n        }\n\n        if (!markerModel) {\n          if (isInit) {\n            fillLabel(markerOpt);\n          }\n\n          zrUtil.each(markerOpt.data, function (item) {\n            if (item instanceof Array) {\n              fillLabel(item[0]);\n              fillLabel(item[1]);\n            } else {\n              fillLabel(item);\n            }\n          });\n          markerModel = this.createMarkerModelFromSeries(markerOpt, this, ecModel);\n          zrUtil.extend(markerModel, {\n            mainType: this.mainType,\n            seriesIndex: seriesModel.seriesIndex,\n            name: seriesModel.name,\n            createdBySelf: true\n          });\n          markerModel.__hostSeries = seriesModel;\n        } else {\n          markerModel._mergeOption(markerOpt, ecModel, true);\n        }\n\n        inner(seriesModel)[componentType] = markerModel;\n      }, this);\n    }\n  };\n\n  MarkerModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var data = this.getData();\n    var value = this.getRawValue(dataIndex);\n    var itemName = data.getName(dataIndex);\n    return createTooltipMarkup('section', {\n      header: this.name,\n      blocks: [createTooltipMarkup('nameValue', {\n        name: itemName,\n        value: value,\n        noName: !itemName,\n        noValue: value == null\n      })]\n    });\n  };\n\n  MarkerModel.prototype.getData = function () {\n    return this._data;\n  };\n\n  MarkerModel.prototype.setData = function (data) {\n    this._data = data;\n  };\n\n  MarkerModel.getMarkerModelFromSeries = function (seriesModel, componentType) {\n    return inner(seriesModel)[componentType];\n  };\n\n  MarkerModel.type = 'marker';\n  MarkerModel.dependencies = ['series', 'grid', 'polar', 'geo'];\n  return MarkerModel;\n}(ComponentModel);\n\nzrUtil.mixin(MarkerModel, DataFormatMixin.prototype);\nexport default MarkerModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport MarkerModel from './MarkerModel';\n\nvar MarkPointModel = function (_super) {\n  __extends(MarkPointModel, _super);\n\n  function MarkPointModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkPointModel.type;\n    return _this;\n  }\n\n  MarkPointModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\n    return new MarkPointModel(markerOpt, masterMarkerModel, ecModel);\n  };\n\n  MarkPointModel.type = 'markPoint';\n  MarkPointModel.defaultOption = {\n    zlevel: 0,\n    z: 5,\n    symbol: 'pin',\n    symbolSize: 50,\n    tooltip: {\n      trigger: 'item'\n    },\n    label: {\n      show: true,\n      position: 'inside'\n    },\n    itemStyle: {\n      borderWidth: 2\n    },\n    emphasis: {\n      label: {\n        show: true\n      }\n    }\n  };\n  return MarkPointModel;\n}(MarkerModel);\n\nexport default MarkPointModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as numberUtil from '../../util/number';\nimport { isDimensionStacked } from '../../data/helper/dataStackHelper';\nimport { indexOf, curry, clone, isArray } from 'zrender/lib/core/util';\n\nfunction hasXOrY(item) {\n  return !(isNaN(parseFloat(item.x)) && isNaN(parseFloat(item.y)));\n}\n\nfunction hasXAndY(item) {\n  return !isNaN(parseFloat(item.x)) && !isNaN(parseFloat(item.y));\n}\n\nfunction markerTypeCalculatorWithExtent(markerType, data, otherDataDim, targetDataDim, otherCoordIndex, targetCoordIndex) {\n  var coordArr = [];\n  var stacked = isDimensionStacked(data, targetDataDim);\n  var calcDataDim = stacked ? data.getCalculationInfo('stackResultDimension') : targetDataDim;\n  var value = numCalculate(data, calcDataDim, markerType);\n  var dataIndex = data.indicesOfNearest(calcDataDim, value)[0];\n  coordArr[otherCoordIndex] = data.get(otherDataDim, dataIndex);\n  coordArr[targetCoordIndex] = data.get(calcDataDim, dataIndex);\n  var coordArrValue = data.get(targetDataDim, dataIndex);\n  var precision = numberUtil.getPrecision(data.get(targetDataDim, dataIndex));\n  precision = Math.min(precision, 20);\n\n  if (precision >= 0) {\n    coordArr[targetCoordIndex] = +coordArr[targetCoordIndex].toFixed(precision);\n  }\n\n  return [coordArr, coordArrValue];\n}\n\nvar markerTypeCalculator = {\n  min: curry(markerTypeCalculatorWithExtent, 'min'),\n  max: curry(markerTypeCalculatorWithExtent, 'max'),\n  average: curry(markerTypeCalculatorWithExtent, 'average'),\n  median: curry(markerTypeCalculatorWithExtent, 'median')\n};\nexport function dataTransform(seriesModel, item) {\n  var data = seriesModel.getData();\n  var coordSys = seriesModel.coordinateSystem;\n\n  if (item && !hasXAndY(item) && !isArray(item.coord) && coordSys) {\n    var dims = coordSys.dimensions;\n    var axisInfo = getAxisInfo(item, data, coordSys, seriesModel);\n    item = clone(item);\n\n    if (item.type && markerTypeCalculator[item.type] && axisInfo.baseAxis && axisInfo.valueAxis) {\n      var otherCoordIndex = indexOf(dims, axisInfo.baseAxis.dim);\n      var targetCoordIndex = indexOf(dims, axisInfo.valueAxis.dim);\n      var coordInfo = markerTypeCalculator[item.type](data, axisInfo.baseDataDim, axisInfo.valueDataDim, otherCoordIndex, targetCoordIndex);\n      item.coord = coordInfo[0];\n      item.value = coordInfo[1];\n    } else {\n      var coord = [item.xAxis != null ? item.xAxis : item.radiusAxis, item.yAxis != null ? item.yAxis : item.angleAxis];\n\n      for (var i = 0; i < 2; i++) {\n        if (markerTypeCalculator[coord[i]]) {\n          coord[i] = numCalculate(data, data.mapDimension(dims[i]), coord[i]);\n        }\n      }\n\n      item.coord = coord;\n    }\n  }\n\n  return item;\n}\nexport function getAxisInfo(item, data, coordSys, seriesModel) {\n  var ret = {};\n\n  if (item.valueIndex != null || item.valueDim != null) {\n    ret.valueDataDim = item.valueIndex != null ? data.getDimension(item.valueIndex) : item.valueDim;\n    ret.valueAxis = coordSys.getAxis(dataDimToCoordDim(seriesModel, ret.valueDataDim));\n    ret.baseAxis = coordSys.getOtherAxis(ret.valueAxis);\n    ret.baseDataDim = data.mapDimension(ret.baseAxis.dim);\n  } else {\n    ret.baseAxis = seriesModel.getBaseAxis();\n    ret.valueAxis = coordSys.getOtherAxis(ret.baseAxis);\n    ret.baseDataDim = data.mapDimension(ret.baseAxis.dim);\n    ret.valueDataDim = data.mapDimension(ret.valueAxis.dim);\n  }\n\n  return ret;\n}\n\nfunction dataDimToCoordDim(seriesModel, dataDim) {\n  var data = seriesModel.getData();\n  var dimensions = data.dimensions;\n  dataDim = data.getDimension(dataDim);\n\n  for (var i = 0; i < dimensions.length; i++) {\n    var dimItem = data.getDimensionInfo(dimensions[i]);\n\n    if (dimItem.name === dataDim) {\n      return dimItem.coordDim;\n    }\n  }\n}\n\nexport function dataFilter(coordSys, item) {\n  return coordSys && coordSys.containData && item.coord && !hasXOrY(item) ? coordSys.containData(item.coord) : true;\n}\nexport function dimValueGetter(item, dimName, dataIndex, dimIndex) {\n  if (dimIndex < 2) {\n    return item.coord && item.coord[dimIndex];\n  }\n\n  return item.value;\n}\nexport function numCalculate(data, valueDataDim, type) {\n  if (type === 'average') {\n    var sum_1 = 0;\n    var count_1 = 0;\n    data.each(valueDataDim, function (val, idx) {\n      if (!isNaN(val)) {\n        sum_1 += val;\n        count_1++;\n      }\n    });\n    return sum_1 / count_1;\n  } else if (type === 'median') {\n    return data.getMedian(valueDataDim);\n  } else {\n    return data.getDataExtent(valueDataDim)[type === 'max' ? 1 : 0];\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component';\nimport { createHashMap, each } from 'zrender/lib/core/util';\nimport MarkerModel from './MarkerModel';\nimport { makeInner } from '../../util/model';\nimport { enterBlur } from '../../util/states';\nvar inner = makeInner();\n\nvar MarkerView = function (_super) {\n  __extends(MarkerView, _super);\n\n  function MarkerView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkerView.type;\n    return _this;\n  }\n\n  MarkerView.prototype.init = function () {\n    this.markerGroupMap = createHashMap();\n  };\n\n  MarkerView.prototype.render = function (markerModel, ecModel, api) {\n    var _this = this;\n\n    var markerGroupMap = this.markerGroupMap;\n    markerGroupMap.each(function (item) {\n      inner(item).keep = false;\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      var markerModel = MarkerModel.getMarkerModelFromSeries(seriesModel, _this.type);\n      markerModel && _this.renderSeries(seriesModel, markerModel, ecModel, api);\n    });\n    markerGroupMap.each(function (item) {\n      !inner(item).keep && _this.group.remove(item.group);\n    });\n  };\n\n  MarkerView.prototype.markKeep = function (drawGroup) {\n    inner(drawGroup).keep = true;\n  };\n\n  MarkerView.prototype.blurSeries = function (seriesModelList) {\n    var _this = this;\n\n    each(seriesModelList, function (seriesModel) {\n      var markerModel = MarkerModel.getMarkerModelFromSeries(seriesModel, _this.type);\n\n      if (markerModel) {\n        var data = markerModel.getData();\n        data.eachItemGraphicEl(function (el) {\n          if (el) {\n            enterBlur(el);\n          }\n        });\n      }\n    });\n  };\n\n  MarkerView.type = 'marker';\n  return MarkerView;\n}(ComponentView);\n\nexport default MarkerView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SymbolDraw from '../../chart/helper/SymbolDraw';\nimport * as numberUtil from '../../util/number';\nimport List from '../../data/List';\nimport * as markerHelper from './markerHelper';\nimport MarkerView from './MarkerView';\nimport MarkerModel from './MarkerModel';\nimport { isFunction, map, defaults, filter, curry } from 'zrender/lib/core/util';\nimport { getECData } from '../../util/innerStore';\nimport { getVisualFromData } from '../../visual/helper';\n\nfunction updateMarkerLayout(mpData, seriesModel, api) {\n  var coordSys = seriesModel.coordinateSystem;\n  mpData.each(function (idx) {\n    var itemModel = mpData.getItemModel(idx);\n    var point;\n    var xPx = numberUtil.parsePercent(itemModel.get('x'), api.getWidth());\n    var yPx = numberUtil.parsePercent(itemModel.get('y'), api.getHeight());\n\n    if (!isNaN(xPx) && !isNaN(yPx)) {\n      point = [xPx, yPx];\n    } else if (seriesModel.getMarkerPosition) {\n      point = seriesModel.getMarkerPosition(mpData.getValues(mpData.dimensions, idx));\n    } else if (coordSys) {\n      var x = mpData.get(coordSys.dimensions[0], idx);\n      var y = mpData.get(coordSys.dimensions[1], idx);\n      point = coordSys.dataToPoint([x, y]);\n    }\n\n    if (!isNaN(xPx)) {\n      point[0] = xPx;\n    }\n\n    if (!isNaN(yPx)) {\n      point[1] = yPx;\n    }\n\n    mpData.setItemLayout(idx, point);\n  });\n}\n\nvar MarkPointView = function (_super) {\n  __extends(MarkPointView, _super);\n\n  function MarkPointView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkPointView.type;\n    return _this;\n  }\n\n  MarkPointView.prototype.updateTransform = function (markPointModel, ecModel, api) {\n    ecModel.eachSeries(function (seriesModel) {\n      var mpModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markPoint');\n\n      if (mpModel) {\n        updateMarkerLayout(mpModel.getData(), seriesModel, api);\n        this.markerGroupMap.get(seriesModel.id).updateLayout();\n      }\n    }, this);\n  };\n\n  MarkPointView.prototype.renderSeries = function (seriesModel, mpModel, ecModel, api) {\n    var coordSys = seriesModel.coordinateSystem;\n    var seriesId = seriesModel.id;\n    var seriesData = seriesModel.getData();\n    var symbolDrawMap = this.markerGroupMap;\n    var symbolDraw = symbolDrawMap.get(seriesId) || symbolDrawMap.set(seriesId, new SymbolDraw());\n    var mpData = createList(coordSys, seriesModel, mpModel);\n    mpModel.setData(mpData);\n    updateMarkerLayout(mpModel.getData(), seriesModel, api);\n    mpData.each(function (idx) {\n      var itemModel = mpData.getItemModel(idx);\n      var symbol = itemModel.getShallow('symbol');\n      var symbolSize = itemModel.getShallow('symbolSize');\n      var symbolRotate = itemModel.getShallow('symbolRotate');\n\n      if (isFunction(symbol) || isFunction(symbolSize) || isFunction(symbolRotate)) {\n        var rawIdx = mpModel.getRawValue(idx);\n        var dataParams = mpModel.getDataParams(idx);\n\n        if (isFunction(symbol)) {\n          symbol = symbol(rawIdx, dataParams);\n        }\n\n        if (isFunction(symbolSize)) {\n          symbolSize = symbolSize(rawIdx, dataParams);\n        }\n\n        if (isFunction(symbolRotate)) {\n          symbolRotate = symbolRotate(rawIdx, dataParams);\n        }\n      }\n\n      var style = itemModel.getModel('itemStyle').getItemStyle();\n      var color = getVisualFromData(seriesData, 'color');\n\n      if (!style.fill) {\n        style.fill = color;\n      }\n\n      mpData.setItemVisual(idx, {\n        symbol: symbol,\n        symbolSize: symbolSize,\n        symbolRotate: symbolRotate,\n        style: style\n      });\n    });\n    symbolDraw.updateData(mpData);\n    this.group.add(symbolDraw.group);\n    mpData.eachItemGraphicEl(function (el) {\n      el.traverse(function (child) {\n        getECData(child).dataModel = mpModel;\n      });\n    });\n    this.markKeep(symbolDraw);\n    symbolDraw.group.silent = mpModel.get('silent') || seriesModel.get('silent');\n  };\n\n  MarkPointView.type = 'markPoint';\n  return MarkPointView;\n}(MarkerView);\n\nfunction createList(coordSys, seriesModel, mpModel) {\n  var coordDimsInfos;\n\n  if (coordSys) {\n    coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\n      var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {};\n      return defaults({\n        name: coordDim\n      }, info);\n    });\n  } else {\n    coordDimsInfos = [{\n      name: 'value',\n      type: 'float'\n    }];\n  }\n\n  var mpData = new List(coordDimsInfos, mpModel);\n  var dataOpt = map(mpModel.get('data'), curry(markerHelper.dataTransform, seriesModel));\n\n  if (coordSys) {\n    dataOpt = filter(dataOpt, curry(markerHelper.dataFilter, coordSys));\n  }\n\n  mpData.initData(dataOpt, null, coordSys ? markerHelper.dimValueGetter : function (item) {\n    return item.value;\n  });\n  return mpData;\n}\n\nexport default MarkPointView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport MarkPointModel from './MarkPointModel';\nimport MarkPointView from './MarkPointView';\nexport function install(registers) {\n  registers.registerComponentModel(MarkPointModel);\n  registers.registerComponentView(MarkPointView);\n  registers.registerPreprocessor(function (opt) {\n    opt.markPoint = opt.markPoint || {};\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport MarkerModel from './MarkerModel';\n\nvar MarkLineModel = function (_super) {\n  __extends(MarkLineModel, _super);\n\n  function MarkLineModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkLineModel.type;\n    return _this;\n  }\n\n  MarkLineModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\n    return new MarkLineModel(markerOpt, masterMarkerModel, ecModel);\n  };\n\n  MarkLineModel.type = 'markLine';\n  MarkLineModel.defaultOption = {\n    zlevel: 0,\n    z: 5,\n    symbol: ['circle', 'arrow'],\n    symbolSize: [8, 16],\n    precision: 2,\n    tooltip: {\n      trigger: 'item'\n    },\n    label: {\n      show: true,\n      position: 'end',\n      distance: 5\n    },\n    lineStyle: {\n      type: 'dashed'\n    },\n    emphasis: {\n      label: {\n        show: true\n      },\n      lineStyle: {\n        width: 3\n      }\n    },\n    animationEasing: 'linear'\n  };\n  return MarkLineModel;\n}(MarkerModel);\n\nexport default MarkLineModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport List from '../../data/List';\nimport * as numberUtil from '../../util/number';\nimport * as markerHelper from './markerHelper';\nimport LineDraw from '../../chart/helper/LineDraw';\nimport MarkerView from './MarkerView';\nimport { getStackedDimension } from '../../data/helper/dataStackHelper';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport { getECData } from '../../util/innerStore';\nimport MarkerModel from './MarkerModel';\nimport { isArray, retrieve, clone, extend, logError, merge, map, defaults, curry, filter } from 'zrender/lib/core/util';\nimport { makeInner } from '../../util/model';\nimport { getVisualFromData } from '../../visual/helper';\nvar inner = makeInner();\n\nvar markLineTransform = function (seriesModel, coordSys, mlModel, item) {\n  var data = seriesModel.getData();\n  var itemArray;\n\n  if (!isArray(item)) {\n    var mlType = item.type;\n\n    if (mlType === 'min' || mlType === 'max' || mlType === 'average' || mlType === 'median' || item.xAxis != null || item.yAxis != null) {\n      var valueAxis = void 0;\n      var value = void 0;\n\n      if (item.yAxis != null || item.xAxis != null) {\n        valueAxis = coordSys.getAxis(item.yAxis != null ? 'y' : 'x');\n        value = retrieve(item.yAxis, item.xAxis);\n      } else {\n        var axisInfo = markerHelper.getAxisInfo(item, data, coordSys, seriesModel);\n        valueAxis = axisInfo.valueAxis;\n        var valueDataDim = getStackedDimension(data, axisInfo.valueDataDim);\n        value = markerHelper.numCalculate(data, valueDataDim, mlType);\n      }\n\n      var valueIndex = valueAxis.dim === 'x' ? 0 : 1;\n      var baseIndex = 1 - valueIndex;\n      var mlFrom = clone(item);\n      var mlTo = {\n        coord: []\n      };\n      mlFrom.type = null;\n      mlFrom.coord = [];\n      mlFrom.coord[baseIndex] = -Infinity;\n      mlTo.coord[baseIndex] = Infinity;\n      var precision = mlModel.get('precision');\n\n      if (precision >= 0 && typeof value === 'number') {\n        value = +value.toFixed(Math.min(precision, 20));\n      }\n\n      mlFrom.coord[valueIndex] = mlTo.coord[valueIndex] = value;\n      itemArray = [mlFrom, mlTo, {\n        type: mlType,\n        valueIndex: item.valueIndex,\n        value: value\n      }];\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        logError('Invalid markLine data.');\n      }\n\n      itemArray = [];\n    }\n  } else {\n    itemArray = item;\n  }\n\n  var normalizedItem = [markerHelper.dataTransform(seriesModel, itemArray[0]), markerHelper.dataTransform(seriesModel, itemArray[1]), extend({}, itemArray[2])];\n  normalizedItem[2].type = normalizedItem[2].type || null;\n  merge(normalizedItem[2], normalizedItem[0]);\n  merge(normalizedItem[2], normalizedItem[1]);\n  return normalizedItem;\n};\n\nfunction isInifinity(val) {\n  return !isNaN(val) && !isFinite(val);\n}\n\nfunction ifMarkLineHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\n  var otherDimIndex = 1 - dimIndex;\n  var dimName = coordSys.dimensions[dimIndex];\n  return isInifinity(fromCoord[otherDimIndex]) && isInifinity(toCoord[otherDimIndex]) && fromCoord[dimIndex] === toCoord[dimIndex] && coordSys.getAxis(dimName).containData(fromCoord[dimIndex]);\n}\n\nfunction markLineFilter(coordSys, item) {\n  if (coordSys.type === 'cartesian2d') {\n    var fromCoord = item[0].coord;\n    var toCoord = item[1].coord;\n\n    if (fromCoord && toCoord && (ifMarkLineHasOnlyDim(1, fromCoord, toCoord, coordSys) || ifMarkLineHasOnlyDim(0, fromCoord, toCoord, coordSys))) {\n      return true;\n    }\n  }\n\n  return markerHelper.dataFilter(coordSys, item[0]) && markerHelper.dataFilter(coordSys, item[1]);\n}\n\nfunction updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api) {\n  var coordSys = seriesModel.coordinateSystem;\n  var itemModel = data.getItemModel(idx);\n  var point;\n  var xPx = numberUtil.parsePercent(itemModel.get('x'), api.getWidth());\n  var yPx = numberUtil.parsePercent(itemModel.get('y'), api.getHeight());\n\n  if (!isNaN(xPx) && !isNaN(yPx)) {\n    point = [xPx, yPx];\n  } else {\n    if (seriesModel.getMarkerPosition) {\n      point = seriesModel.getMarkerPosition(data.getValues(data.dimensions, idx));\n    } else {\n      var dims = coordSys.dimensions;\n      var x = data.get(dims[0], idx);\n      var y = data.get(dims[1], idx);\n      point = coordSys.dataToPoint([x, y]);\n    }\n\n    if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n      var xAxis = coordSys.getAxis('x');\n      var yAxis = coordSys.getAxis('y');\n      var dims = coordSys.dimensions;\n\n      if (isInifinity(data.get(dims[0], idx))) {\n        point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[isFrom ? 0 : 1]);\n      } else if (isInifinity(data.get(dims[1], idx))) {\n        point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[isFrom ? 0 : 1]);\n      }\n    }\n\n    if (!isNaN(xPx)) {\n      point[0] = xPx;\n    }\n\n    if (!isNaN(yPx)) {\n      point[1] = yPx;\n    }\n  }\n\n  data.setItemLayout(idx, point);\n}\n\nvar MarkLineView = function (_super) {\n  __extends(MarkLineView, _super);\n\n  function MarkLineView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkLineView.type;\n    return _this;\n  }\n\n  MarkLineView.prototype.updateTransform = function (markLineModel, ecModel, api) {\n    ecModel.eachSeries(function (seriesModel) {\n      var mlModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markLine');\n\n      if (mlModel) {\n        var mlData_1 = mlModel.getData();\n        var fromData_1 = inner(mlModel).from;\n        var toData_1 = inner(mlModel).to;\n        fromData_1.each(function (idx) {\n          updateSingleMarkerEndLayout(fromData_1, idx, true, seriesModel, api);\n          updateSingleMarkerEndLayout(toData_1, idx, false, seriesModel, api);\n        });\n        mlData_1.each(function (idx) {\n          mlData_1.setItemLayout(idx, [fromData_1.getItemLayout(idx), toData_1.getItemLayout(idx)]);\n        });\n        this.markerGroupMap.get(seriesModel.id).updateLayout();\n      }\n    }, this);\n  };\n\n  MarkLineView.prototype.renderSeries = function (seriesModel, mlModel, ecModel, api) {\n    var coordSys = seriesModel.coordinateSystem;\n    var seriesId = seriesModel.id;\n    var seriesData = seriesModel.getData();\n    var lineDrawMap = this.markerGroupMap;\n    var lineDraw = lineDrawMap.get(seriesId) || lineDrawMap.set(seriesId, new LineDraw());\n    this.group.add(lineDraw.group);\n    var mlData = createList(coordSys, seriesModel, mlModel);\n    var fromData = mlData.from;\n    var toData = mlData.to;\n    var lineData = mlData.line;\n    inner(mlModel).from = fromData;\n    inner(mlModel).to = toData;\n    mlModel.setData(lineData);\n    var symbolType = mlModel.get('symbol');\n    var symbolSize = mlModel.get('symbolSize');\n\n    if (!isArray(symbolType)) {\n      symbolType = [symbolType, symbolType];\n    }\n\n    if (!isArray(symbolSize)) {\n      symbolSize = [symbolSize, symbolSize];\n    }\n\n    mlData.from.each(function (idx) {\n      updateDataVisualAndLayout(fromData, idx, true);\n      updateDataVisualAndLayout(toData, idx, false);\n    });\n    lineData.each(function (idx) {\n      var lineStyle = lineData.getItemModel(idx).getModel('lineStyle').getLineStyle();\n      lineData.setItemLayout(idx, [fromData.getItemLayout(idx), toData.getItemLayout(idx)]);\n\n      if (lineStyle.stroke == null) {\n        lineStyle.stroke = fromData.getItemVisual(idx, 'style').fill;\n      }\n\n      lineData.setItemVisual(idx, {\n        fromSymbolRotate: fromData.getItemVisual(idx, 'symbolRotate'),\n        fromSymbolSize: fromData.getItemVisual(idx, 'symbolSize'),\n        fromSymbol: fromData.getItemVisual(idx, 'symbol'),\n        toSymbolRotate: toData.getItemVisual(idx, 'symbolRotate'),\n        toSymbolSize: toData.getItemVisual(idx, 'symbolSize'),\n        toSymbol: toData.getItemVisual(idx, 'symbol'),\n        style: lineStyle\n      });\n    });\n    lineDraw.updateData(lineData);\n    mlData.line.eachItemGraphicEl(function (el, idx) {\n      el.traverse(function (child) {\n        getECData(child).dataModel = mlModel;\n      });\n    });\n\n    function updateDataVisualAndLayout(data, idx, isFrom) {\n      var itemModel = data.getItemModel(idx);\n      updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api);\n      var style = itemModel.getModel('itemStyle').getItemStyle();\n\n      if (style.fill == null) {\n        style.fill = getVisualFromData(seriesData, 'color');\n      }\n\n      data.setItemVisual(idx, {\n        symbolRotate: itemModel.get('symbolRotate'),\n        symbolSize: itemModel.get('symbolSize') || symbolSize[isFrom ? 0 : 1],\n        symbol: itemModel.get('symbol', true) || symbolType[isFrom ? 0 : 1],\n        style: style\n      });\n    }\n\n    this.markKeep(lineDraw);\n    lineDraw.group.silent = mlModel.get('silent') || seriesModel.get('silent');\n  };\n\n  MarkLineView.type = 'markLine';\n  return MarkLineView;\n}(MarkerView);\n\nfunction createList(coordSys, seriesModel, mlModel) {\n  var coordDimsInfos;\n\n  if (coordSys) {\n    coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\n      var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {};\n      return defaults({\n        name: coordDim\n      }, info);\n    });\n  } else {\n    coordDimsInfos = [{\n      name: 'value',\n      type: 'float'\n    }];\n  }\n\n  var fromData = new List(coordDimsInfos, mlModel);\n  var toData = new List(coordDimsInfos, mlModel);\n  var lineData = new List([], mlModel);\n  var optData = map(mlModel.get('data'), curry(markLineTransform, seriesModel, coordSys, mlModel));\n\n  if (coordSys) {\n    optData = filter(optData, curry(markLineFilter, coordSys));\n  }\n\n  var dimValueGetter = coordSys ? markerHelper.dimValueGetter : function (item) {\n    return item.value;\n  };\n  fromData.initData(map(optData, function (item) {\n    return item[0];\n  }), null, dimValueGetter);\n  toData.initData(map(optData, function (item) {\n    return item[1];\n  }), null, dimValueGetter);\n  lineData.initData(map(optData, function (item) {\n    return item[2];\n  }));\n  lineData.hasItemOption = true;\n  return {\n    from: fromData,\n    to: toData,\n    line: lineData\n  };\n}\n\nexport default MarkLineView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport MarkLineModel from './MarkLineModel';\nimport MarkLineView from './MarkLineView';\nexport function install(registers) {\n  registers.registerComponentModel(MarkLineModel);\n  registers.registerComponentView(MarkLineView);\n  registers.registerPreprocessor(function (opt) {\n    opt.markLine = opt.markLine || {};\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport MarkerModel from './MarkerModel';\n\nvar MarkAreaModel = function (_super) {\n  __extends(MarkAreaModel, _super);\n\n  function MarkAreaModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkAreaModel.type;\n    return _this;\n  }\n\n  MarkAreaModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\n    return new MarkAreaModel(markerOpt, masterMarkerModel, ecModel);\n  };\n\n  MarkAreaModel.type = 'markArea';\n  MarkAreaModel.defaultOption = {\n    zlevel: 0,\n    z: 1,\n    tooltip: {\n      trigger: 'item'\n    },\n    animation: false,\n    label: {\n      show: true,\n      position: 'top'\n    },\n    itemStyle: {\n      borderWidth: 0\n    },\n    emphasis: {\n      label: {\n        show: true,\n        position: 'top'\n      }\n    }\n  };\n  return MarkAreaModel;\n}(MarkerModel);\n\nexport default MarkAreaModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as colorUtil from 'zrender/lib/tool/color';\nimport List from '../../data/List';\nimport * as numberUtil from '../../util/number';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis, setStatesStylesFromModel } from '../../util/states';\nimport * as markerHelper from './markerHelper';\nimport MarkerView from './MarkerView';\nimport { retrieve, mergeAll, map, defaults, curry, filter, each } from 'zrender/lib/core/util';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport MarkerModel from './MarkerModel';\nimport { makeInner } from '../../util/model';\nimport { getVisualFromData } from '../../visual/helper';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { getECData } from '../../util/innerStore';\nvar inner = makeInner();\n\nvar markAreaTransform = function (seriesModel, coordSys, maModel, item) {\n  var lt = markerHelper.dataTransform(seriesModel, item[0]);\n  var rb = markerHelper.dataTransform(seriesModel, item[1]);\n  var ltCoord = lt.coord;\n  var rbCoord = rb.coord;\n  ltCoord[0] = retrieve(ltCoord[0], -Infinity);\n  ltCoord[1] = retrieve(ltCoord[1], -Infinity);\n  rbCoord[0] = retrieve(rbCoord[0], Infinity);\n  rbCoord[1] = retrieve(rbCoord[1], Infinity);\n  var result = mergeAll([{}, lt, rb]);\n  result.coord = [lt.coord, rb.coord];\n  result.x0 = lt.x;\n  result.y0 = lt.y;\n  result.x1 = rb.x;\n  result.y1 = rb.y;\n  return result;\n};\n\nfunction isInifinity(val) {\n  return !isNaN(val) && !isFinite(val);\n}\n\nfunction ifMarkAreaHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\n  var otherDimIndex = 1 - dimIndex;\n  return isInifinity(fromCoord[otherDimIndex]) && isInifinity(toCoord[otherDimIndex]);\n}\n\nfunction markAreaFilter(coordSys, item) {\n  var fromCoord = item.coord[0];\n  var toCoord = item.coord[1];\n\n  if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n    if (fromCoord && toCoord && (ifMarkAreaHasOnlyDim(1, fromCoord, toCoord, coordSys) || ifMarkAreaHasOnlyDim(0, fromCoord, toCoord, coordSys))) {\n      return true;\n    }\n  }\n\n  return markerHelper.dataFilter(coordSys, {\n    coord: fromCoord,\n    x: item.x0,\n    y: item.y0\n  }) || markerHelper.dataFilter(coordSys, {\n    coord: toCoord,\n    x: item.x1,\n    y: item.y1\n  });\n}\n\nfunction getSingleMarkerEndPoint(data, idx, dims, seriesModel, api) {\n  var coordSys = seriesModel.coordinateSystem;\n  var itemModel = data.getItemModel(idx);\n  var point;\n  var xPx = numberUtil.parsePercent(itemModel.get(dims[0]), api.getWidth());\n  var yPx = numberUtil.parsePercent(itemModel.get(dims[1]), api.getHeight());\n\n  if (!isNaN(xPx) && !isNaN(yPx)) {\n    point = [xPx, yPx];\n  } else {\n    if (seriesModel.getMarkerPosition) {\n      point = seriesModel.getMarkerPosition(data.getValues(dims, idx));\n    } else {\n      var x = data.get(dims[0], idx);\n      var y = data.get(dims[1], idx);\n      var pt = [x, y];\n      coordSys.clampData && coordSys.clampData(pt, pt);\n      point = coordSys.dataToPoint(pt, true);\n    }\n\n    if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n      var xAxis = coordSys.getAxis('x');\n      var yAxis = coordSys.getAxis('y');\n      var x = data.get(dims[0], idx);\n      var y = data.get(dims[1], idx);\n\n      if (isInifinity(x)) {\n        point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[dims[0] === 'x0' ? 0 : 1]);\n      } else if (isInifinity(y)) {\n        point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[dims[1] === 'y0' ? 0 : 1]);\n      }\n    }\n\n    if (!isNaN(xPx)) {\n      point[0] = xPx;\n    }\n\n    if (!isNaN(yPx)) {\n      point[1] = yPx;\n    }\n  }\n\n  return point;\n}\n\nvar dimPermutations = [['x0', 'y0'], ['x1', 'y0'], ['x1', 'y1'], ['x0', 'y1']];\n\nvar MarkAreaView = function (_super) {\n  __extends(MarkAreaView, _super);\n\n  function MarkAreaView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkAreaView.type;\n    return _this;\n  }\n\n  MarkAreaView.prototype.updateTransform = function (markAreaModel, ecModel, api) {\n    ecModel.eachSeries(function (seriesModel) {\n      var maModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markArea');\n\n      if (maModel) {\n        var areaData_1 = maModel.getData();\n        areaData_1.each(function (idx) {\n          var points = map(dimPermutations, function (dim) {\n            return getSingleMarkerEndPoint(areaData_1, idx, dim, seriesModel, api);\n          });\n          areaData_1.setItemLayout(idx, points);\n          var el = areaData_1.getItemGraphicEl(idx);\n          el.setShape('points', points);\n        });\n      }\n    }, this);\n  };\n\n  MarkAreaView.prototype.renderSeries = function (seriesModel, maModel, ecModel, api) {\n    var coordSys = seriesModel.coordinateSystem;\n    var seriesId = seriesModel.id;\n    var seriesData = seriesModel.getData();\n    var areaGroupMap = this.markerGroupMap;\n    var polygonGroup = areaGroupMap.get(seriesId) || areaGroupMap.set(seriesId, {\n      group: new graphic.Group()\n    });\n    this.group.add(polygonGroup.group);\n    this.markKeep(polygonGroup);\n    var areaData = createList(coordSys, seriesModel, maModel);\n    maModel.setData(areaData);\n    areaData.each(function (idx) {\n      var points = map(dimPermutations, function (dim) {\n        return getSingleMarkerEndPoint(areaData, idx, dim, seriesModel, api);\n      });\n      var allClipped = true;\n      each(dimPermutations, function (dim) {\n        if (!allClipped) {\n          return;\n        }\n\n        var xValue = areaData.get(dim[0], idx);\n        var yValue = areaData.get(dim[1], idx);\n\n        if ((isInifinity(xValue) || coordSys.getAxis('x').containData(xValue)) && (isInifinity(yValue) || coordSys.getAxis('y').containData(yValue))) {\n          allClipped = false;\n        }\n      });\n      areaData.setItemLayout(idx, {\n        points: points,\n        allClipped: allClipped\n      });\n      var style = areaData.getItemModel(idx).getModel('itemStyle').getItemStyle();\n      var color = getVisualFromData(seriesData, 'color');\n\n      if (!style.fill) {\n        style.fill = color;\n\n        if (typeof style.fill === 'string') {\n          style.fill = colorUtil.modifyAlpha(style.fill, 0.4);\n        }\n      }\n\n      if (!style.stroke) {\n        style.stroke = color;\n      }\n\n      areaData.setItemVisual(idx, 'style', style);\n    });\n    areaData.diff(inner(polygonGroup).data).add(function (idx) {\n      var layout = areaData.getItemLayout(idx);\n\n      if (!layout.allClipped) {\n        var polygon = new graphic.Polygon({\n          shape: {\n            points: layout.points\n          }\n        });\n        areaData.setItemGraphicEl(idx, polygon);\n        polygonGroup.group.add(polygon);\n      }\n    }).update(function (newIdx, oldIdx) {\n      var polygon = inner(polygonGroup).data.getItemGraphicEl(oldIdx);\n      var layout = areaData.getItemLayout(newIdx);\n\n      if (!layout.allClipped) {\n        if (polygon) {\n          graphic.updateProps(polygon, {\n            shape: {\n              points: layout.points\n            }\n          }, maModel, newIdx);\n        } else {\n          polygon = new graphic.Polygon({\n            shape: {\n              points: layout.points\n            }\n          });\n        }\n\n        areaData.setItemGraphicEl(newIdx, polygon);\n        polygonGroup.group.add(polygon);\n      } else if (polygon) {\n        polygonGroup.group.remove(polygon);\n      }\n    }).remove(function (idx) {\n      var polygon = inner(polygonGroup).data.getItemGraphicEl(idx);\n      polygonGroup.group.remove(polygon);\n    }).execute();\n    areaData.eachItemGraphicEl(function (polygon, idx) {\n      var itemModel = areaData.getItemModel(idx);\n      var style = areaData.getItemVisual(idx, 'style');\n      polygon.useStyle(areaData.getItemVisual(idx, 'style'));\n      setLabelStyle(polygon, getLabelStatesModels(itemModel), {\n        labelFetcher: maModel,\n        labelDataIndex: idx,\n        defaultText: areaData.getName(idx) || '',\n        inheritColor: typeof style.fill === 'string' ? colorUtil.modifyAlpha(style.fill, 1) : '#000'\n      });\n      setStatesStylesFromModel(polygon, itemModel);\n      enableHoverEmphasis(polygon);\n      getECData(polygon).dataModel = maModel;\n    });\n    inner(polygonGroup).data = areaData;\n    polygonGroup.group.silent = maModel.get('silent') || seriesModel.get('silent');\n  };\n\n  MarkAreaView.type = 'markArea';\n  return MarkAreaView;\n}(MarkerView);\n\nfunction createList(coordSys, seriesModel, maModel) {\n  var coordDimsInfos;\n  var areaData;\n  var dims = ['x0', 'y0', 'x1', 'y1'];\n\n  if (coordSys) {\n    coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\n      var data = seriesModel.getData();\n      var info = data.getDimensionInfo(data.mapDimension(coordDim)) || {};\n      return defaults({\n        name: coordDim\n      }, info);\n    });\n    areaData = new List(map(dims, function (dim, idx) {\n      return {\n        name: dim,\n        type: coordDimsInfos[idx % 2].type\n      };\n    }), maModel);\n  } else {\n    coordDimsInfos = [{\n      name: 'value',\n      type: 'float'\n    }];\n    areaData = new List(coordDimsInfos, maModel);\n  }\n\n  var optData = map(maModel.get('data'), curry(markAreaTransform, seriesModel, coordSys, maModel));\n\n  if (coordSys) {\n    optData = filter(optData, curry(markAreaFilter, coordSys));\n  }\n\n  var dimValueGetter = coordSys ? function (item, dimName, dataIndex, dimIndex) {\n    return item.coord[Math.floor(dimIndex / 2)][dimIndex % 2];\n  } : function (item) {\n    return item.value;\n  };\n  areaData.initData(optData, null, dimValueGetter);\n  areaData.hasItemOption = true;\n  return areaData;\n}\n\nexport default MarkAreaView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport MarkAreaModel from './MarkAreaModel';\nimport MarkAreaView from './MarkAreaView';\nexport function install(registers) {\n  registers.registerComponentModel(MarkAreaModel);\n  registers.registerComponentView(MarkAreaView);\n  registers.registerPreprocessor(function (opt) {\n    opt.markArea = opt.markArea || {};\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Model from '../../model/Model';\nimport { isNameSpecified } from '../../util/model';\nimport ComponentModel from '../../model/Component';\n\nvar getDefaultSelectorOptions = function (ecModel, type) {\n  if (type === 'all') {\n    return {\n      type: 'all',\n      title: ecModel.getLocale(['legend', 'selector', 'all'])\n    };\n  } else if (type === 'inverse') {\n    return {\n      type: 'inverse',\n      title: ecModel.getLocale(['legend', 'selector', 'inverse'])\n    };\n  }\n};\n\nvar LegendModel = function (_super) {\n  __extends(LegendModel, _super);\n\n  function LegendModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = LegendModel.type;\n    _this.layoutMode = {\n      type: 'box',\n      ignoreSize: true\n    };\n    return _this;\n  }\n\n  LegendModel.prototype.init = function (option, parentModel, ecModel) {\n    this.mergeDefaultAndTheme(option, ecModel);\n    option.selected = option.selected || {};\n\n    this._updateSelector(option);\n  };\n\n  LegendModel.prototype.mergeOption = function (option, ecModel) {\n    _super.prototype.mergeOption.call(this, option, ecModel);\n\n    this._updateSelector(option);\n  };\n\n  LegendModel.prototype._updateSelector = function (option) {\n    var selector = option.selector;\n    var ecModel = this.ecModel;\n\n    if (selector === true) {\n      selector = option.selector = ['all', 'inverse'];\n    }\n\n    if (zrUtil.isArray(selector)) {\n      zrUtil.each(selector, function (item, index) {\n        zrUtil.isString(item) && (item = {\n          type: item\n        });\n        selector[index] = zrUtil.merge(item, getDefaultSelectorOptions(ecModel, item.type));\n      });\n    }\n  };\n\n  LegendModel.prototype.optionUpdated = function () {\n    this._updateData(this.ecModel);\n\n    var legendData = this._data;\n\n    if (legendData[0] && this.get('selectedMode') === 'single') {\n      var hasSelected = false;\n\n      for (var i = 0; i < legendData.length; i++) {\n        var name_1 = legendData[i].get('name');\n\n        if (this.isSelected(name_1)) {\n          this.select(name_1);\n          hasSelected = true;\n          break;\n        }\n      }\n\n      !hasSelected && this.select(legendData[0].get('name'));\n    }\n  };\n\n  LegendModel.prototype._updateData = function (ecModel) {\n    var potentialData = [];\n    var availableNames = [];\n    ecModel.eachRawSeries(function (seriesModel) {\n      var seriesName = seriesModel.name;\n      availableNames.push(seriesName);\n      var isPotential;\n\n      if (seriesModel.legendVisualProvider) {\n        var provider = seriesModel.legendVisualProvider;\n        var names = provider.getAllNames();\n\n        if (!ecModel.isSeriesFiltered(seriesModel)) {\n          availableNames = availableNames.concat(names);\n        }\n\n        if (names.length) {\n          potentialData = potentialData.concat(names);\n        } else {\n          isPotential = true;\n        }\n      } else {\n        isPotential = true;\n      }\n\n      if (isPotential && isNameSpecified(seriesModel)) {\n        potentialData.push(seriesModel.name);\n      }\n    });\n    this._availableNames = availableNames;\n    var rawData = this.get('data') || potentialData;\n    var legendData = zrUtil.map(rawData, function (dataItem) {\n      if (typeof dataItem === 'string' || typeof dataItem === 'number') {\n        dataItem = {\n          name: dataItem\n        };\n      }\n\n      return new Model(dataItem, this, this.ecModel);\n    }, this);\n    this._data = legendData;\n  };\n\n  LegendModel.prototype.getData = function () {\n    return this._data;\n  };\n\n  LegendModel.prototype.select = function (name) {\n    var selected = this.option.selected;\n    var selectedMode = this.get('selectedMode');\n\n    if (selectedMode === 'single') {\n      var data = this._data;\n      zrUtil.each(data, function (dataItem) {\n        selected[dataItem.get('name')] = false;\n      });\n    }\n\n    selected[name] = true;\n  };\n\n  LegendModel.prototype.unSelect = function (name) {\n    if (this.get('selectedMode') !== 'single') {\n      this.option.selected[name] = false;\n    }\n  };\n\n  LegendModel.prototype.toggleSelected = function (name) {\n    var selected = this.option.selected;\n\n    if (!selected.hasOwnProperty(name)) {\n      selected[name] = true;\n    }\n\n    this[selected[name] ? 'unSelect' : 'select'](name);\n  };\n\n  LegendModel.prototype.allSelect = function () {\n    var data = this._data;\n    var selected = this.option.selected;\n    zrUtil.each(data, function (dataItem) {\n      selected[dataItem.get('name', true)] = true;\n    });\n  };\n\n  LegendModel.prototype.inverseSelect = function () {\n    var data = this._data;\n    var selected = this.option.selected;\n    zrUtil.each(data, function (dataItem) {\n      var name = dataItem.get('name', true);\n\n      if (!selected.hasOwnProperty(name)) {\n        selected[name] = true;\n      }\n\n      selected[name] = !selected[name];\n    });\n  };\n\n  LegendModel.prototype.isSelected = function (name) {\n    var selected = this.option.selected;\n    return !(selected.hasOwnProperty(name) && !selected[name]) && zrUtil.indexOf(this._availableNames, name) >= 0;\n  };\n\n  LegendModel.prototype.getOrient = function () {\n    return this.get('orient') === 'vertical' ? {\n      index: 1,\n      name: 'vertical'\n    } : {\n      index: 0,\n      name: 'horizontal'\n    };\n  };\n\n  LegendModel.type = 'legend.plain';\n  LegendModel.dependencies = ['series'];\n  LegendModel.defaultOption = {\n    zlevel: 0,\n    z: 4,\n    show: true,\n    orient: 'horizontal',\n    left: 'center',\n    top: 0,\n    align: 'auto',\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderColor: '#ccc',\n    borderRadius: 0,\n    borderWidth: 0,\n    padding: 5,\n    itemGap: 10,\n    itemWidth: 25,\n    itemHeight: 14,\n    inactiveColor: '#ccc',\n    inactiveBorderColor: '#ccc',\n    itemStyle: {\n      borderWidth: 0\n    },\n    textStyle: {\n      color: '#333'\n    },\n    selectedMode: true,\n    selector: false,\n    selectorLabel: {\n      show: true,\n      borderRadius: 10,\n      padding: [3, 5, 3, 5],\n      fontSize: 12,\n      fontFamily: ' sans-serif',\n      color: '#666',\n      borderWidth: 1,\n      borderColor: '#666'\n    },\n    emphasis: {\n      selectorLabel: {\n        show: true,\n        color: '#eee',\n        backgroundColor: '#666'\n      }\n    },\n    selectorPosition: 'auto',\n    selectorItemGap: 7,\n    selectorButtonGap: 10,\n    tooltip: {\n      show: false\n    }\n  };\n  return LegendModel;\n}(ComponentModel);\n\nexport default LegendModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { createSymbol } from '../../util/symbol';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis } from '../../util/states';\nimport { setLabelStyle, createTextStyle } from '../../label/labelStyle';\nimport { makeBackground } from '../helper/listComponent';\nimport * as layoutUtil from '../../util/layout';\nimport ComponentView from '../../view/Component';\nimport { parse, stringify } from 'zrender/lib/tool/color';\nvar curry = zrUtil.curry;\nvar each = zrUtil.each;\nvar Group = graphic.Group;\n\nvar LegendView = function (_super) {\n  __extends(LegendView, _super);\n\n  function LegendView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = LegendView.type;\n    _this.newlineDisabled = false;\n    return _this;\n  }\n\n  LegendView.prototype.init = function () {\n    this.group.add(this._contentGroup = new Group());\n    this.group.add(this._selectorGroup = new Group());\n    this._isFirstRender = true;\n  };\n\n  LegendView.prototype.getContentGroup = function () {\n    return this._contentGroup;\n  };\n\n  LegendView.prototype.getSelectorGroup = function () {\n    return this._selectorGroup;\n  };\n\n  LegendView.prototype.render = function (legendModel, ecModel, api) {\n    var isFirstRender = this._isFirstRender;\n    this._isFirstRender = false;\n    this.resetInner();\n\n    if (!legendModel.get('show', true)) {\n      return;\n    }\n\n    var itemAlign = legendModel.get('align');\n    var orient = legendModel.get('orient');\n\n    if (!itemAlign || itemAlign === 'auto') {\n      itemAlign = legendModel.get('left') === 'right' && orient === 'vertical' ? 'right' : 'left';\n    }\n\n    var selector = legendModel.get('selector', true);\n    var selectorPosition = legendModel.get('selectorPosition', true);\n\n    if (selector && (!selectorPosition || selectorPosition === 'auto')) {\n      selectorPosition = orient === 'horizontal' ? 'end' : 'start';\n    }\n\n    this.renderInner(itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\n    var positionInfo = legendModel.getBoxLayoutParams();\n    var viewportSize = {\n      width: api.getWidth(),\n      height: api.getHeight()\n    };\n    var padding = legendModel.get('padding');\n    var maxSize = layoutUtil.getLayoutRect(positionInfo, viewportSize, padding);\n    var mainRect = this.layoutInner(legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition);\n    var layoutRect = layoutUtil.getLayoutRect(zrUtil.defaults({\n      width: mainRect.width,\n      height: mainRect.height\n    }, positionInfo), viewportSize, padding);\n    this.group.x = layoutRect.x - mainRect.x;\n    this.group.y = layoutRect.y - mainRect.y;\n    this.group.markRedraw();\n    this.group.add(this._backgroundEl = makeBackground(mainRect, legendModel));\n  };\n\n  LegendView.prototype.resetInner = function () {\n    this.getContentGroup().removeAll();\n    this._backgroundEl && this.group.remove(this._backgroundEl);\n    this.getSelectorGroup().removeAll();\n  };\n\n  LegendView.prototype.renderInner = function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\n    var contentGroup = this.getContentGroup();\n    var legendDrawnMap = zrUtil.createHashMap();\n    var selectMode = legendModel.get('selectedMode');\n    var excludeSeriesId = [];\n    ecModel.eachRawSeries(function (seriesModel) {\n      !seriesModel.get('legendHoverLink') && excludeSeriesId.push(seriesModel.id);\n    });\n    each(legendModel.getData(), function (itemModel, dataIndex) {\n      var name = itemModel.get('name');\n\n      if (!this.newlineDisabled && (name === '' || name === '\\n')) {\n        var g = new Group();\n        g.newline = true;\n        contentGroup.add(g);\n        return;\n      }\n\n      var seriesModel = ecModel.getSeriesByName(name)[0];\n\n      if (legendDrawnMap.get(name)) {\n        return;\n      }\n\n      if (seriesModel) {\n        var data = seriesModel.getData();\n        var style = data.getVisual('style');\n        var color = style[data.getVisual('drawType')] || style.fill;\n        var borderColor = style.stroke;\n        var decal = style.decal;\n        var legendSymbolType = data.getVisual('legendSymbol') || 'roundRect';\n        var symbolType = data.getVisual('symbol');\n\n        var itemGroup = this._createItem(name, dataIndex, itemModel, legendModel, legendSymbolType, symbolType, itemAlign, color, borderColor, decal, selectMode);\n\n        itemGroup.on('click', curry(dispatchSelectAction, name, null, api, excludeSeriesId)).on('mouseover', curry(dispatchHighlightAction, seriesModel.name, null, api, excludeSeriesId)).on('mouseout', curry(dispatchDownplayAction, seriesModel.name, null, api, excludeSeriesId));\n        legendDrawnMap.set(name, true);\n      } else {\n        ecModel.eachRawSeries(function (seriesModel) {\n          if (legendDrawnMap.get(name)) {\n            return;\n          }\n\n          if (seriesModel.legendVisualProvider) {\n            var provider = seriesModel.legendVisualProvider;\n\n            if (!provider.containName(name)) {\n              return;\n            }\n\n            var idx = provider.indexOfName(name);\n            var style = provider.getItemVisual(idx, 'style');\n            var borderColor = style.stroke;\n            var decal = style.decal;\n            var color = style.fill;\n            var colorArr = parse(style.fill);\n\n            if (colorArr && colorArr[3] === 0) {\n              colorArr[3] = 0.2;\n              color = stringify(colorArr, 'rgba');\n            }\n\n            var legendSymbolType = 'roundRect';\n\n            var itemGroup = this._createItem(name, dataIndex, itemModel, legendModel, legendSymbolType, null, itemAlign, color, borderColor, decal, selectMode);\n\n            itemGroup.on('click', curry(dispatchSelectAction, null, name, api, excludeSeriesId)).on('mouseover', curry(dispatchHighlightAction, null, name, api, excludeSeriesId)).on('mouseout', curry(dispatchDownplayAction, null, name, api, excludeSeriesId));\n            legendDrawnMap.set(name, true);\n          }\n        }, this);\n      }\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (!legendDrawnMap.get(name)) {\n          console.warn(name + ' series not exists. Legend data should be same with series name or data name.');\n        }\n      }\n    }, this);\n\n    if (selector) {\n      this._createSelector(selector, legendModel, api, orient, selectorPosition);\n    }\n  };\n\n  LegendView.prototype._createSelector = function (selector, legendModel, api, orient, selectorPosition) {\n    var selectorGroup = this.getSelectorGroup();\n    each(selector, function createSelectorButton(selectorItem) {\n      var type = selectorItem.type;\n      var labelText = new graphic.Text({\n        style: {\n          x: 0,\n          y: 0,\n          align: 'center',\n          verticalAlign: 'middle'\n        },\n        onclick: function () {\n          api.dispatchAction({\n            type: type === 'all' ? 'legendAllSelect' : 'legendInverseSelect'\n          });\n        }\n      });\n      selectorGroup.add(labelText);\n      var labelModel = legendModel.getModel('selectorLabel');\n      var emphasisLabelModel = legendModel.getModel(['emphasis', 'selectorLabel']);\n      setLabelStyle(labelText, {\n        normal: labelModel,\n        emphasis: emphasisLabelModel\n      }, {\n        defaultText: selectorItem.title\n      });\n      enableHoverEmphasis(labelText);\n    });\n  };\n\n  LegendView.prototype._createItem = function (name, dataIndex, itemModel, legendModel, legendSymbolType, symbolType, itemAlign, color, borderColor, decal, selectMode) {\n    var itemWidth = legendModel.get('itemWidth');\n    var itemHeight = legendModel.get('itemHeight');\n    var inactiveColor = legendModel.get('inactiveColor');\n    var inactiveBorderColor = legendModel.get('inactiveBorderColor');\n    var symbolKeepAspect = legendModel.get('symbolKeepAspect');\n    var legendModelItemStyle = legendModel.getModel('itemStyle');\n    var isSelected = legendModel.isSelected(name);\n    var itemGroup = new Group();\n    var textStyleModel = itemModel.getModel('textStyle');\n    var itemIcon = itemModel.get('icon');\n    var tooltipModel = itemModel.getModel('tooltip');\n    var legendGlobalTooltipModel = tooltipModel.parentModel;\n    legendSymbolType = itemIcon || legendSymbolType;\n    var legendSymbol = createSymbol(legendSymbolType, 0, 0, itemWidth, itemHeight, isSelected ? color : inactiveColor, symbolKeepAspect == null ? true : symbolKeepAspect);\n    itemGroup.add(setSymbolStyle(legendSymbol, legendSymbolType, legendModelItemStyle, borderColor, inactiveBorderColor, decal, isSelected));\n\n    if (!itemIcon && symbolType && (symbolType !== legendSymbolType || symbolType === 'none')) {\n      var size = itemHeight * 0.8;\n\n      if (symbolType === 'none') {\n        symbolType = 'circle';\n      }\n\n      var legendSymbolCenter = createSymbol(symbolType, (itemWidth - size) / 2, (itemHeight - size) / 2, size, size, isSelected ? color : inactiveColor, symbolKeepAspect == null ? true : symbolKeepAspect);\n      itemGroup.add(setSymbolStyle(legendSymbolCenter, symbolType, legendModelItemStyle, borderColor, inactiveBorderColor, decal, isSelected));\n    }\n\n    var textX = itemAlign === 'left' ? itemWidth + 5 : -5;\n    var textAlign = itemAlign;\n    var formatter = legendModel.get('formatter');\n    var content = name;\n\n    if (typeof formatter === 'string' && formatter) {\n      content = formatter.replace('{name}', name != null ? name : '');\n    } else if (typeof formatter === 'function') {\n      content = formatter(name);\n    }\n\n    itemGroup.add(new graphic.Text({\n      style: createTextStyle(textStyleModel, {\n        text: content,\n        x: textX,\n        y: itemHeight / 2,\n        fill: isSelected ? textStyleModel.getTextColor() : inactiveColor,\n        align: textAlign,\n        verticalAlign: 'middle'\n      })\n    }));\n    var hitRect = new graphic.Rect({\n      shape: itemGroup.getBoundingRect(),\n      invisible: true\n    });\n\n    if (tooltipModel.get('show')) {\n      var formatterParams = {\n        componentType: 'legend',\n        legendIndex: legendModel.componentIndex,\n        name: name,\n        $vars: ['name']\n      };\n      hitRect.tooltip = zrUtil.extend({\n        content: name,\n        formatter: legendGlobalTooltipModel.get('formatter', true) || function (params) {\n          return params.name;\n        },\n        formatterParams: formatterParams\n      }, tooltipModel.option);\n    }\n\n    itemGroup.add(hitRect);\n    itemGroup.eachChild(function (child) {\n      child.silent = true;\n    });\n    hitRect.silent = !selectMode;\n    this.getContentGroup().add(itemGroup);\n    enableHoverEmphasis(itemGroup);\n    itemGroup.__legendDataIndex = dataIndex;\n    return itemGroup;\n  };\n\n  LegendView.prototype.layoutInner = function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\n    var contentGroup = this.getContentGroup();\n    var selectorGroup = this.getSelectorGroup();\n    layoutUtil.box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), maxSize.width, maxSize.height);\n    var contentRect = contentGroup.getBoundingRect();\n    var contentPos = [-contentRect.x, -contentRect.y];\n    selectorGroup.markRedraw();\n    contentGroup.markRedraw();\n\n    if (selector) {\n      layoutUtil.box('horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\n      var selectorRect = selectorGroup.getBoundingRect();\n      var selectorPos = [-selectorRect.x, -selectorRect.y];\n      var selectorButtonGap = legendModel.get('selectorButtonGap', true);\n      var orientIdx = legendModel.getOrient().index;\n      var wh = orientIdx === 0 ? 'width' : 'height';\n      var hw = orientIdx === 0 ? 'height' : 'width';\n      var yx = orientIdx === 0 ? 'y' : 'x';\n\n      if (selectorPosition === 'end') {\n        selectorPos[orientIdx] += contentRect[wh] + selectorButtonGap;\n      } else {\n        contentPos[orientIdx] += selectorRect[wh] + selectorButtonGap;\n      }\n\n      selectorPos[1 - orientIdx] += contentRect[hw] / 2 - selectorRect[hw] / 2;\n      selectorGroup.x = selectorPos[0];\n      selectorGroup.y = selectorPos[1];\n      contentGroup.x = contentPos[0];\n      contentGroup.y = contentPos[1];\n      var mainRect = {\n        x: 0,\n        y: 0\n      };\n      mainRect[wh] = contentRect[wh] + selectorButtonGap + selectorRect[wh];\n      mainRect[hw] = Math.max(contentRect[hw], selectorRect[hw]);\n      mainRect[yx] = Math.min(0, selectorRect[yx] + selectorPos[1 - orientIdx]);\n      return mainRect;\n    } else {\n      contentGroup.x = contentPos[0];\n      contentGroup.y = contentPos[1];\n      return this.group.getBoundingRect();\n    }\n  };\n\n  LegendView.prototype.remove = function () {\n    this.getContentGroup().removeAll();\n    this._isFirstRender = true;\n  };\n\n  LegendView.type = 'legend.plain';\n  return LegendView;\n}(ComponentView);\n\nfunction setSymbolStyle(symbol, symbolType, legendModelItemStyle, borderColor, inactiveBorderColor, decal, isSelected) {\n  var itemStyle;\n\n  if (symbolType !== 'line' && symbolType.indexOf('empty') < 0) {\n    itemStyle = legendModelItemStyle.getItemStyle();\n    symbol.style.stroke = borderColor;\n    symbol.style.decal = decal;\n\n    if (!isSelected) {\n      itemStyle.stroke = inactiveBorderColor;\n    }\n  } else {\n    itemStyle = legendModelItemStyle.getItemStyle(['borderWidth', 'borderColor']);\n  }\n\n  symbol.setStyle(itemStyle);\n  return symbol;\n}\n\nfunction dispatchSelectAction(seriesName, dataName, api, excludeSeriesId) {\n  dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId);\n  api.dispatchAction({\n    type: 'legendToggleSelect',\n    name: seriesName != null ? seriesName : dataName\n  });\n  dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId);\n}\n\nfunction isUseHoverLayer(api) {\n  var list = api.getZr().storage.getDisplayList();\n  var emphasisState;\n  var i = 0;\n  var len = list.length;\n\n  while (i < len && !(emphasisState = list[i].states.emphasis)) {\n    i++;\n  }\n\n  return emphasisState && emphasisState.hoverLayer;\n}\n\nfunction dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId) {\n  if (!isUseHoverLayer(api)) {\n    api.dispatchAction({\n      type: 'highlight',\n      seriesName: seriesName,\n      name: dataName,\n      excludeSeriesId: excludeSeriesId\n    });\n  }\n}\n\nfunction dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId) {\n  if (!isUseHoverLayer(api)) {\n    api.dispatchAction({\n      type: 'downplay',\n      seriesName: seriesName,\n      name: dataName,\n      excludeSeriesId: excludeSeriesId\n    });\n  }\n}\n\nexport default LegendView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function legendFilter(ecModel) {\n  var legendModels = ecModel.findComponents({\n    mainType: 'legend'\n  });\n\n  if (legendModels && legendModels.length) {\n    ecModel.filterSeries(function (series) {\n      for (var i = 0; i < legendModels.length; i++) {\n        if (!legendModels[i].isSelected(series.name)) {\n          return false;\n        }\n      }\n\n      return true;\n    });\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { curry, each } from 'zrender/lib/core/util';\n\nfunction legendSelectActionHandler(methodName, payload, ecModel) {\n  var selectedMap = {};\n  var isToggleSelect = methodName === 'toggleSelected';\n  var isSelected;\n  ecModel.eachComponent('legend', function (legendModel) {\n    if (isToggleSelect && isSelected != null) {\n      legendModel[isSelected ? 'select' : 'unSelect'](payload.name);\n    } else if (methodName === 'allSelect' || methodName === 'inverseSelect') {\n      legendModel[methodName]();\n    } else {\n      legendModel[methodName](payload.name);\n      isSelected = legendModel.isSelected(payload.name);\n    }\n\n    var legendData = legendModel.getData();\n    each(legendData, function (model) {\n      var name = model.get('name');\n\n      if (name === '\\n' || name === '') {\n        return;\n      }\n\n      var isItemSelected = legendModel.isSelected(name);\n\n      if (selectedMap.hasOwnProperty(name)) {\n        selectedMap[name] = selectedMap[name] && isItemSelected;\n      } else {\n        selectedMap[name] = isItemSelected;\n      }\n    });\n  });\n  return methodName === 'allSelect' || methodName === 'inverseSelect' ? {\n    selected: selectedMap\n  } : {\n    name: payload.name,\n    selected: selectedMap\n  };\n}\n\nexport function installLegendAction(registers) {\n  registers.registerAction('legendToggleSelect', 'legendselectchanged', curry(legendSelectActionHandler, 'toggleSelected'));\n  registers.registerAction('legendAllSelect', 'legendselectall', curry(legendSelectActionHandler, 'allSelect'));\n  registers.registerAction('legendInverseSelect', 'legendinverseselect', curry(legendSelectActionHandler, 'inverseSelect'));\n  registers.registerAction('legendSelect', 'legendselected', curry(legendSelectActionHandler, 'select'));\n  registers.registerAction('legendUnSelect', 'legendunselected', curry(legendSelectActionHandler, 'unSelect'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport LegendModel from './LegendModel';\nimport LegendView from './LegendView';\nimport legendFilter from './legendFilter';\nimport { installLegendAction } from './legendAction';\nexport function install(registers) {\n  registers.registerComponentModel(LegendModel);\n  registers.registerComponentView(LegendView);\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.SERIES_FILTER, legendFilter);\n  registers.registerSubTypeDefaulter('legend', function () {\n    return 'plain';\n  });\n  installLegendAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport LegendModel from './LegendModel';\nimport { mergeLayoutParam, getLayoutParams } from '../../util/layout';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar ScrollableLegendModel = function (_super) {\n  __extends(ScrollableLegendModel, _super);\n\n  function ScrollableLegendModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ScrollableLegendModel.type;\n    return _this;\n  }\n\n  ScrollableLegendModel.prototype.setScrollDataIndex = function (scrollDataIndex) {\n    this.option.scrollDataIndex = scrollDataIndex;\n  };\n\n  ScrollableLegendModel.prototype.init = function (option, parentModel, ecModel) {\n    var inputPositionParams = getLayoutParams(option);\n\n    _super.prototype.init.call(this, option, parentModel, ecModel);\n\n    mergeAndNormalizeLayoutParams(this, option, inputPositionParams);\n  };\n\n  ScrollableLegendModel.prototype.mergeOption = function (option, ecModel) {\n    _super.prototype.mergeOption.call(this, option, ecModel);\n\n    mergeAndNormalizeLayoutParams(this, this.option, option);\n  };\n\n  ScrollableLegendModel.type = 'legend.scroll';\n  ScrollableLegendModel.defaultOption = inheritDefaultOption(LegendModel.defaultOption, {\n    scrollDataIndex: 0,\n    pageButtonItemGap: 5,\n    pageButtonGap: null,\n    pageButtonPosition: 'end',\n    pageFormatter: '{current}/{total}',\n    pageIcons: {\n      horizontal: ['M0,0L12,-10L12,10z', 'M0,0L-12,-10L-12,10z'],\n      vertical: ['M0,0L20,0L10,-20z', 'M0,0L20,0L10,20z']\n    },\n    pageIconColor: '#2f4554',\n    pageIconInactiveColor: '#aaa',\n    pageIconSize: 15,\n    pageTextStyle: {\n      color: '#333'\n    },\n    animationDurationUpdate: 800\n  });\n  return ScrollableLegendModel;\n}(LegendModel);\n\n;\n\nfunction mergeAndNormalizeLayoutParams(legendModel, target, raw) {\n  var orient = legendModel.getOrient();\n  var ignoreSize = [1, 1];\n  ignoreSize[orient.index] = 0;\n  mergeLayoutParam(target, raw, {\n    type: 'box',\n    ignoreSize: !!ignoreSize\n  });\n}\n\nexport default ScrollableLegendModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport * as layoutUtil from '../../util/layout';\nimport LegendView from './LegendView';\nvar Group = graphic.Group;\nvar WH = ['width', 'height'];\nvar XY = ['x', 'y'];\n\nvar ScrollableLegendView = function (_super) {\n  __extends(ScrollableLegendView, _super);\n\n  function ScrollableLegendView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ScrollableLegendView.type;\n    _this.newlineDisabled = true;\n    _this._currentIndex = 0;\n    return _this;\n  }\n\n  ScrollableLegendView.prototype.init = function () {\n    _super.prototype.init.call(this);\n\n    this.group.add(this._containerGroup = new Group());\n\n    this._containerGroup.add(this.getContentGroup());\n\n    this.group.add(this._controllerGroup = new Group());\n  };\n\n  ScrollableLegendView.prototype.resetInner = function () {\n    _super.prototype.resetInner.call(this);\n\n    this._controllerGroup.removeAll();\n\n    this._containerGroup.removeClipPath();\n\n    this._containerGroup.__rectSize = null;\n  };\n\n  ScrollableLegendView.prototype.renderInner = function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\n    var self = this;\n\n    _super.prototype.renderInner.call(this, itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\n\n    var controllerGroup = this._controllerGroup;\n    var pageIconSize = legendModel.get('pageIconSize', true);\n    var pageIconSizeArr = zrUtil.isArray(pageIconSize) ? pageIconSize : [pageIconSize, pageIconSize];\n    createPageButton('pagePrev', 0);\n    var pageTextStyleModel = legendModel.getModel('pageTextStyle');\n    controllerGroup.add(new graphic.Text({\n      name: 'pageText',\n      style: {\n        text: 'xx/xx',\n        fill: pageTextStyleModel.getTextColor(),\n        font: pageTextStyleModel.getFont(),\n        verticalAlign: 'middle',\n        align: 'center'\n      },\n      silent: true\n    }));\n    createPageButton('pageNext', 1);\n\n    function createPageButton(name, iconIdx) {\n      var pageDataIndexName = name + 'DataIndex';\n      var icon = graphic.createIcon(legendModel.get('pageIcons', true)[legendModel.getOrient().name][iconIdx], {\n        onclick: zrUtil.bind(self._pageGo, self, pageDataIndexName, legendModel, api)\n      }, {\n        x: -pageIconSizeArr[0] / 2,\n        y: -pageIconSizeArr[1] / 2,\n        width: pageIconSizeArr[0],\n        height: pageIconSizeArr[1]\n      });\n      icon.name = name;\n      controllerGroup.add(icon);\n    }\n  };\n\n  ScrollableLegendView.prototype.layoutInner = function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\n    var selectorGroup = this.getSelectorGroup();\n    var orientIdx = legendModel.getOrient().index;\n    var wh = WH[orientIdx];\n    var xy = XY[orientIdx];\n    var hw = WH[1 - orientIdx];\n    var yx = XY[1 - orientIdx];\n    selector && layoutUtil.box('horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\n    var selectorButtonGap = legendModel.get('selectorButtonGap', true);\n    var selectorRect = selectorGroup.getBoundingRect();\n    var selectorPos = [-selectorRect.x, -selectorRect.y];\n    var processMaxSize = zrUtil.clone(maxSize);\n    selector && (processMaxSize[wh] = maxSize[wh] - selectorRect[wh] - selectorButtonGap);\n\n    var mainRect = this._layoutContentAndController(legendModel, isFirstRender, processMaxSize, orientIdx, wh, hw, yx, xy);\n\n    if (selector) {\n      if (selectorPosition === 'end') {\n        selectorPos[orientIdx] += mainRect[wh] + selectorButtonGap;\n      } else {\n        var offset = selectorRect[wh] + selectorButtonGap;\n        selectorPos[orientIdx] -= offset;\n        mainRect[xy] -= offset;\n      }\n\n      mainRect[wh] += selectorRect[wh] + selectorButtonGap;\n      selectorPos[1 - orientIdx] += mainRect[yx] + mainRect[hw] / 2 - selectorRect[hw] / 2;\n      mainRect[hw] = Math.max(mainRect[hw], selectorRect[hw]);\n      mainRect[yx] = Math.min(mainRect[yx], selectorRect[yx] + selectorPos[1 - orientIdx]);\n      selectorGroup.x = selectorPos[0];\n      selectorGroup.y = selectorPos[1];\n      selectorGroup.markRedraw();\n    }\n\n    return mainRect;\n  };\n\n  ScrollableLegendView.prototype._layoutContentAndController = function (legendModel, isFirstRender, maxSize, orientIdx, wh, hw, yx, xy) {\n    var contentGroup = this.getContentGroup();\n    var containerGroup = this._containerGroup;\n    var controllerGroup = this._controllerGroup;\n    layoutUtil.box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), !orientIdx ? null : maxSize.width, orientIdx ? null : maxSize.height);\n    layoutUtil.box('horizontal', controllerGroup, legendModel.get('pageButtonItemGap', true));\n    var contentRect = contentGroup.getBoundingRect();\n    var controllerRect = controllerGroup.getBoundingRect();\n    var showController = this._showController = contentRect[wh] > maxSize[wh];\n    var contentPos = [-contentRect.x, -contentRect.y];\n\n    if (!isFirstRender) {\n      contentPos[orientIdx] = contentGroup[xy];\n    }\n\n    var containerPos = [0, 0];\n    var controllerPos = [-controllerRect.x, -controllerRect.y];\n    var pageButtonGap = zrUtil.retrieve2(legendModel.get('pageButtonGap', true), legendModel.get('itemGap', true));\n\n    if (showController) {\n      var pageButtonPosition = legendModel.get('pageButtonPosition', true);\n\n      if (pageButtonPosition === 'end') {\n        controllerPos[orientIdx] += maxSize[wh] - controllerRect[wh];\n      } else {\n        containerPos[orientIdx] += controllerRect[wh] + pageButtonGap;\n      }\n    }\n\n    controllerPos[1 - orientIdx] += contentRect[hw] / 2 - controllerRect[hw] / 2;\n    contentGroup.setPosition(contentPos);\n    containerGroup.setPosition(containerPos);\n    controllerGroup.setPosition(controllerPos);\n    var mainRect = {\n      x: 0,\n      y: 0\n    };\n    mainRect[wh] = showController ? maxSize[wh] : contentRect[wh];\n    mainRect[hw] = Math.max(contentRect[hw], controllerRect[hw]);\n    mainRect[yx] = Math.min(0, controllerRect[yx] + controllerPos[1 - orientIdx]);\n    containerGroup.__rectSize = maxSize[wh];\n\n    if (showController) {\n      var clipShape = {\n        x: 0,\n        y: 0\n      };\n      clipShape[wh] = Math.max(maxSize[wh] - controllerRect[wh] - pageButtonGap, 0);\n      clipShape[hw] = mainRect[hw];\n      containerGroup.setClipPath(new graphic.Rect({\n        shape: clipShape\n      }));\n      containerGroup.__rectSize = clipShape[wh];\n    } else {\n      controllerGroup.eachChild(function (child) {\n        child.attr({\n          invisible: true,\n          silent: true\n        });\n      });\n    }\n\n    var pageInfo = this._getPageInfo(legendModel);\n\n    pageInfo.pageIndex != null && graphic.updateProps(contentGroup, {\n      x: pageInfo.contentPosition[0],\n      y: pageInfo.contentPosition[1]\n    }, showController ? legendModel : null);\n\n    this._updatePageInfoView(legendModel, pageInfo);\n\n    return mainRect;\n  };\n\n  ScrollableLegendView.prototype._pageGo = function (to, legendModel, api) {\n    var scrollDataIndex = this._getPageInfo(legendModel)[to];\n\n    scrollDataIndex != null && api.dispatchAction({\n      type: 'legendScroll',\n      scrollDataIndex: scrollDataIndex,\n      legendId: legendModel.id\n    });\n  };\n\n  ScrollableLegendView.prototype._updatePageInfoView = function (legendModel, pageInfo) {\n    var controllerGroup = this._controllerGroup;\n    zrUtil.each(['pagePrev', 'pageNext'], function (name) {\n      var key = name + 'DataIndex';\n      var canJump = pageInfo[key] != null;\n      var icon = controllerGroup.childOfName(name);\n\n      if (icon) {\n        icon.setStyle('fill', canJump ? legendModel.get('pageIconColor', true) : legendModel.get('pageIconInactiveColor', true));\n        icon.cursor = canJump ? 'pointer' : 'default';\n      }\n    });\n    var pageText = controllerGroup.childOfName('pageText');\n    var pageFormatter = legendModel.get('pageFormatter');\n    var pageIndex = pageInfo.pageIndex;\n    var current = pageIndex != null ? pageIndex + 1 : 0;\n    var total = pageInfo.pageCount;\n    pageText && pageFormatter && pageText.setStyle('text', zrUtil.isString(pageFormatter) ? pageFormatter.replace('{current}', current == null ? '' : current + '').replace('{total}', total == null ? '' : total + '') : pageFormatter({\n      current: current,\n      total: total\n    }));\n  };\n\n  ScrollableLegendView.prototype._getPageInfo = function (legendModel) {\n    var scrollDataIndex = legendModel.get('scrollDataIndex', true);\n    var contentGroup = this.getContentGroup();\n    var containerRectSize = this._containerGroup.__rectSize;\n    var orientIdx = legendModel.getOrient().index;\n    var wh = WH[orientIdx];\n    var xy = XY[orientIdx];\n\n    var targetItemIndex = this._findTargetItemIndex(scrollDataIndex);\n\n    var children = contentGroup.children();\n    var targetItem = children[targetItemIndex];\n    var itemCount = children.length;\n    var pCount = !itemCount ? 0 : 1;\n    var result = {\n      contentPosition: [contentGroup.x, contentGroup.y],\n      pageCount: pCount,\n      pageIndex: pCount - 1,\n      pagePrevDataIndex: null,\n      pageNextDataIndex: null\n    };\n\n    if (!targetItem) {\n      return result;\n    }\n\n    var targetItemInfo = getItemInfo(targetItem);\n    result.contentPosition[orientIdx] = -targetItemInfo.s;\n\n    for (var i = targetItemIndex + 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i <= itemCount; ++i) {\n      currItemInfo = getItemInfo(children[i]);\n\n      if (!currItemInfo && winEndItemInfo.e > winStartItemInfo.s + containerRectSize || currItemInfo && !intersect(currItemInfo, winStartItemInfo.s)) {\n        if (winEndItemInfo.i > winStartItemInfo.i) {\n          winStartItemInfo = winEndItemInfo;\n        } else {\n          winStartItemInfo = currItemInfo;\n        }\n\n        if (winStartItemInfo) {\n          if (result.pageNextDataIndex == null) {\n            result.pageNextDataIndex = winStartItemInfo.i;\n          }\n\n          ++result.pageCount;\n        }\n      }\n\n      winEndItemInfo = currItemInfo;\n    }\n\n    for (var i = targetItemIndex - 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i >= -1; --i) {\n      currItemInfo = getItemInfo(children[i]);\n\n      if ((!currItemInfo || !intersect(winEndItemInfo, currItemInfo.s)) && winStartItemInfo.i < winEndItemInfo.i) {\n        winEndItemInfo = winStartItemInfo;\n\n        if (result.pagePrevDataIndex == null) {\n          result.pagePrevDataIndex = winStartItemInfo.i;\n        }\n\n        ++result.pageCount;\n        ++result.pageIndex;\n      }\n\n      winStartItemInfo = currItemInfo;\n    }\n\n    return result;\n\n    function getItemInfo(el) {\n      if (el) {\n        var itemRect = el.getBoundingRect();\n        var start = itemRect[xy] + el[xy];\n        return {\n          s: start,\n          e: start + itemRect[wh],\n          i: el.__legendDataIndex\n        };\n      }\n    }\n\n    function intersect(itemInfo, winStart) {\n      return itemInfo.e >= winStart && itemInfo.s <= winStart + containerRectSize;\n    }\n  };\n\n  ScrollableLegendView.prototype._findTargetItemIndex = function (targetDataIndex) {\n    if (!this._showController) {\n      return 0;\n    }\n\n    var index;\n    var contentGroup = this.getContentGroup();\n    var defaultIndex;\n    contentGroup.eachChild(function (child, idx) {\n      var legendDataIdx = child.__legendDataIndex;\n\n      if (defaultIndex == null && legendDataIdx != null) {\n        defaultIndex = idx;\n      }\n\n      if (legendDataIdx === targetDataIndex) {\n        index = idx;\n      }\n    });\n    return index != null ? index : defaultIndex;\n  };\n\n  ScrollableLegendView.type = 'legend.scroll';\n  return ScrollableLegendView;\n}(LegendView);\n\nexport default ScrollableLegendView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function installScrollableLegendAction(registers) {\n  registers.registerAction('legendScroll', 'legendscroll', function (payload, ecModel) {\n    var scrollDataIndex = payload.scrollDataIndex;\n    scrollDataIndex != null && ecModel.eachComponent({\n      mainType: 'legend',\n      subType: 'scroll',\n      query: payload\n    }, function (legendModel) {\n      legendModel.setScrollDataIndex(scrollDataIndex);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport { install as installLegendPlain } from './installLegendPlain';\nimport ScrollableLegendModel from './ScrollableLegendModel';\nimport ScrollableLegendView from './ScrollableLegendView';\nimport installScrollableLegendAction from './scrollableLegendAction';\nexport function install(registers) {\n  use(installLegendPlain);\n  registers.registerComponentModel(ScrollableLegendModel);\n  registers.registerComponentView(ScrollableLegendView);\n  installScrollableLegendAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport { install as installLegendPlain } from './installLegendPlain';\nimport { install as installLegendScroll } from './installLegendScroll';\nexport function install(registers) {\n  use(installLegendPlain);\n  use(installLegendScroll);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport DataZoomModel from './DataZoomModel';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar InsideZoomModel = function (_super) {\n  __extends(InsideZoomModel, _super);\n\n  function InsideZoomModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = InsideZoomModel.type;\n    return _this;\n  }\n\n  InsideZoomModel.type = 'dataZoom.inside';\n  InsideZoomModel.defaultOption = inheritDefaultOption(DataZoomModel.defaultOption, {\n    disabled: false,\n    zoomLock: false,\n    zoomOnMouseWheel: true,\n    moveOnMouseMove: true,\n    moveOnMouseWheel: false,\n    preventDefaultMouseMove: true\n  });\n  return InsideZoomModel;\n}(DataZoomModel);\n\nexport default InsideZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport RoamController from '../../component/helper/RoamController';\nimport * as throttleUtil from '../../util/throttle';\nimport { makeInner } from '../../util/model';\nimport { each, curry, createHashMap } from 'zrender/lib/core/util';\nimport { collectReferCoordSysModelInfo } from './helper';\nvar inner = makeInner();\nexport function setViewInfoToCoordSysRecord(api, dataZoomModel, getRange) {\n  inner(api).coordSysRecordMap.each(function (coordSysRecord) {\n    var dzInfo = coordSysRecord.dataZoomInfoMap.get(dataZoomModel.uid);\n\n    if (dzInfo) {\n      dzInfo.getRange = getRange;\n    }\n  });\n}\nexport function disposeCoordSysRecordIfNeeded(api, dataZoomModel) {\n  var coordSysRecordMap = inner(api).coordSysRecordMap;\n  var coordSysKeyArr = coordSysRecordMap.keys();\n\n  for (var i = 0; i < coordSysKeyArr.length; i++) {\n    var coordSysKey = coordSysKeyArr[i];\n    var coordSysRecord = coordSysRecordMap.get(coordSysKey);\n    var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap;\n\n    if (dataZoomInfoMap) {\n      var dzUid = dataZoomModel.uid;\n      var dzInfo = dataZoomInfoMap.get(dzUid);\n\n      if (dzInfo) {\n        dataZoomInfoMap.removeKey(dzUid);\n\n        if (!dataZoomInfoMap.keys().length) {\n          disposeCoordSysRecord(coordSysRecordMap, coordSysRecord);\n        }\n      }\n    }\n  }\n}\n\nfunction disposeCoordSysRecord(coordSysRecordMap, coordSysRecord) {\n  if (coordSysRecord) {\n    coordSysRecordMap.removeKey(coordSysRecord.model.uid);\n    var controller = coordSysRecord.controller;\n    controller && controller.dispose();\n  }\n}\n\nfunction createCoordSysRecord(api, coordSysModel) {\n  var coordSysRecord = {\n    model: coordSysModel,\n    containsPoint: curry(containsPoint, coordSysModel),\n    dispatchAction: curry(dispatchAction, api),\n    dataZoomInfoMap: null,\n    controller: null\n  };\n  var controller = coordSysRecord.controller = new RoamController(api.getZr());\n  each(['pan', 'zoom', 'scrollMove'], function (eventName) {\n    controller.on(eventName, function (event) {\n      var batch = [];\n      coordSysRecord.dataZoomInfoMap.each(function (dzInfo) {\n        if (!event.isAvailableBehavior(dzInfo.model.option)) {\n          return;\n        }\n\n        var method = (dzInfo.getRange || {})[eventName];\n        var range = method && method(dzInfo.dzReferCoordSysInfo, coordSysRecord.model.mainType, coordSysRecord.controller, event);\n        !dzInfo.model.get('disabled', true) && range && batch.push({\n          dataZoomId: dzInfo.model.id,\n          start: range[0],\n          end: range[1]\n        });\n      });\n      batch.length && coordSysRecord.dispatchAction(batch);\n    });\n  });\n  return coordSysRecord;\n}\n\nfunction dispatchAction(api, batch) {\n  api.dispatchAction({\n    type: 'dataZoom',\n    animation: {\n      easing: 'cubicOut',\n      duration: 100\n    },\n    batch: batch\n  });\n}\n\nfunction containsPoint(coordSysModel, e, x, y) {\n  return coordSysModel.coordinateSystem.containPoint([x, y]);\n}\n\nfunction mergeControllerParams(dataZoomInfoMap) {\n  var controlType;\n  var prefix = 'type_';\n  var typePriority = {\n    'type_true': 2,\n    'type_move': 1,\n    'type_false': 0,\n    'type_undefined': -1\n  };\n  var preventDefaultMouseMove = true;\n  dataZoomInfoMap.each(function (dataZoomInfo) {\n    var dataZoomModel = dataZoomInfo.model;\n    var oneType = dataZoomModel.get('disabled', true) ? false : dataZoomModel.get('zoomLock', true) ? 'move' : true;\n\n    if (typePriority[prefix + oneType] > typePriority[prefix + controlType]) {\n      controlType = oneType;\n    }\n\n    preventDefaultMouseMove = preventDefaultMouseMove && dataZoomModel.get('preventDefaultMouseMove', true);\n  });\n  return {\n    controlType: controlType,\n    opt: {\n      zoomOnMouseWheel: true,\n      moveOnMouseMove: true,\n      moveOnMouseWheel: true,\n      preventDefaultMouseMove: !!preventDefaultMouseMove\n    }\n  };\n}\n\nexport function installDataZoomRoamProcessor(registers) {\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.FILTER, function (ecModel, api) {\n    var apiInner = inner(api);\n    var coordSysRecordMap = apiInner.coordSysRecordMap || (apiInner.coordSysRecordMap = createHashMap());\n    coordSysRecordMap.each(function (coordSysRecord) {\n      coordSysRecord.dataZoomInfoMap = null;\n    });\n    ecModel.eachComponent({\n      mainType: 'dataZoom',\n      subType: 'inside'\n    }, function (dataZoomModel) {\n      var dzReferCoordSysWrap = collectReferCoordSysModelInfo(dataZoomModel);\n      each(dzReferCoordSysWrap.infoList, function (dzCoordSysInfo) {\n        var coordSysUid = dzCoordSysInfo.model.uid;\n        var coordSysRecord = coordSysRecordMap.get(coordSysUid) || coordSysRecordMap.set(coordSysUid, createCoordSysRecord(api, dzCoordSysInfo.model));\n        var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap || (coordSysRecord.dataZoomInfoMap = createHashMap());\n        dataZoomInfoMap.set(dataZoomModel.uid, {\n          dzReferCoordSysInfo: dzCoordSysInfo,\n          model: dataZoomModel,\n          getRange: null\n        });\n      });\n    });\n    coordSysRecordMap.each(function (coordSysRecord) {\n      var controller = coordSysRecord.controller;\n      var firstDzInfo;\n      var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap;\n\n      if (dataZoomInfoMap) {\n        var firstDzKey = dataZoomInfoMap.keys()[0];\n\n        if (firstDzKey != null) {\n          firstDzInfo = dataZoomInfoMap.get(firstDzKey);\n        }\n      }\n\n      if (!firstDzInfo) {\n        disposeCoordSysRecord(coordSysRecordMap, coordSysRecord);\n        return;\n      }\n\n      var controllerParams = mergeControllerParams(dataZoomInfoMap);\n      controller.enable(controllerParams.controlType, controllerParams.opt);\n      controller.setPointerChecker(coordSysRecord.containsPoint);\n      throttleUtil.createOrUpdate(coordSysRecord, 'dispatchAction', firstDzInfo.model.get('throttle', true), 'fixRate');\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport DataZoomView from './DataZoomView';\nimport sliderMove from '../helper/sliderMove';\nimport * as roams from './roams';\nimport { bind } from 'zrender/lib/core/util';\n\nvar InsideZoomView = function (_super) {\n  __extends(InsideZoomView, _super);\n\n  function InsideZoomView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'dataZoom.inside';\n    return _this;\n  }\n\n  InsideZoomView.prototype.render = function (dataZoomModel, ecModel, api) {\n    _super.prototype.render.apply(this, arguments);\n\n    if (dataZoomModel.noTarget()) {\n      this._clear();\n\n      return;\n    }\n\n    this.range = dataZoomModel.getPercentRange();\n    roams.setViewInfoToCoordSysRecord(api, dataZoomModel, {\n      pan: bind(getRangeHandlers.pan, this),\n      zoom: bind(getRangeHandlers.zoom, this),\n      scrollMove: bind(getRangeHandlers.scrollMove, this)\n    });\n  };\n\n  InsideZoomView.prototype.dispose = function () {\n    this._clear();\n\n    _super.prototype.dispose.apply(this, arguments);\n  };\n\n  InsideZoomView.prototype._clear = function () {\n    roams.disposeCoordSysRecordIfNeeded(this.api, this.dataZoomModel);\n    this.range = null;\n  };\n\n  InsideZoomView.type = 'dataZoom.inside';\n  return InsideZoomView;\n}(DataZoomView);\n\nvar getRangeHandlers = {\n  zoom: function (coordSysInfo, coordSysMainType, controller, e) {\n    var lastRange = this.range;\n    var range = lastRange.slice();\n    var axisModel = coordSysInfo.axisModels[0];\n\n    if (!axisModel) {\n      return;\n    }\n\n    var directionInfo = getDirectionInfo[coordSysMainType](null, [e.originX, e.originY], axisModel, controller, coordSysInfo);\n    var percentPoint = (directionInfo.signal > 0 ? directionInfo.pixelStart + directionInfo.pixelLength - directionInfo.pixel : directionInfo.pixel - directionInfo.pixelStart) / directionInfo.pixelLength * (range[1] - range[0]) + range[0];\n    var scale = Math.max(1 / e.scale, 0);\n    range[0] = (range[0] - percentPoint) * scale + percentPoint;\n    range[1] = (range[1] - percentPoint) * scale + percentPoint;\n    var minMaxSpan = this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\n    sliderMove(0, range, [0, 100], 0, minMaxSpan.minSpan, minMaxSpan.maxSpan);\n    this.range = range;\n\n    if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\n      return range;\n    }\n  },\n  pan: makeMover(function (range, axisModel, coordSysInfo, coordSysMainType, controller, e) {\n    var directionInfo = getDirectionInfo[coordSysMainType]([e.oldX, e.oldY], [e.newX, e.newY], axisModel, controller, coordSysInfo);\n    return directionInfo.signal * (range[1] - range[0]) * directionInfo.pixel / directionInfo.pixelLength;\n  }),\n  scrollMove: makeMover(function (range, axisModel, coordSysInfo, coordSysMainType, controller, e) {\n    var directionInfo = getDirectionInfo[coordSysMainType]([0, 0], [e.scrollDelta, e.scrollDelta], axisModel, controller, coordSysInfo);\n    return directionInfo.signal * (range[1] - range[0]) * e.scrollDelta;\n  })\n};\n\nfunction makeMover(getPercentDelta) {\n  return function (coordSysInfo, coordSysMainType, controller, e) {\n    var lastRange = this.range;\n    var range = lastRange.slice();\n    var axisModel = coordSysInfo.axisModels[0];\n\n    if (!axisModel) {\n      return;\n    }\n\n    var percentDelta = getPercentDelta(range, axisModel, coordSysInfo, coordSysMainType, controller, e);\n    sliderMove(percentDelta, range, [0, 100], 'all');\n    this.range = range;\n\n    if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\n      return range;\n    }\n  };\n}\n\nvar getDirectionInfo = {\n  grid: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\n    var axis = axisModel.axis;\n    var ret = {};\n    var rect = coordSysInfo.model.coordinateSystem.getRect();\n    oldPoint = oldPoint || [0, 0];\n\n    if (axis.dim === 'x') {\n      ret.pixel = newPoint[0] - oldPoint[0];\n      ret.pixelLength = rect.width;\n      ret.pixelStart = rect.x;\n      ret.signal = axis.inverse ? 1 : -1;\n    } else {\n      ret.pixel = newPoint[1] - oldPoint[1];\n      ret.pixelLength = rect.height;\n      ret.pixelStart = rect.y;\n      ret.signal = axis.inverse ? -1 : 1;\n    }\n\n    return ret;\n  },\n  polar: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\n    var axis = axisModel.axis;\n    var ret = {};\n    var polar = coordSysInfo.model.coordinateSystem;\n    var radiusExtent = polar.getRadiusAxis().getExtent();\n    var angleExtent = polar.getAngleAxis().getExtent();\n    oldPoint = oldPoint ? polar.pointToCoord(oldPoint) : [0, 0];\n    newPoint = polar.pointToCoord(newPoint);\n\n    if (axisModel.mainType === 'radiusAxis') {\n      ret.pixel = newPoint[0] - oldPoint[0];\n      ret.pixelLength = radiusExtent[1] - radiusExtent[0];\n      ret.pixelStart = radiusExtent[0];\n      ret.signal = axis.inverse ? 1 : -1;\n    } else {\n      ret.pixel = newPoint[1] - oldPoint[1];\n      ret.pixelLength = angleExtent[1] - angleExtent[0];\n      ret.pixelStart = angleExtent[0];\n      ret.signal = axis.inverse ? -1 : 1;\n    }\n\n    return ret;\n  },\n  singleAxis: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\n    var axis = axisModel.axis;\n    var rect = coordSysInfo.model.coordinateSystem.getRect();\n    var ret = {};\n    oldPoint = oldPoint || [0, 0];\n\n    if (axis.orient === 'horizontal') {\n      ret.pixel = newPoint[0] - oldPoint[0];\n      ret.pixelLength = rect.width;\n      ret.pixelStart = rect.x;\n      ret.signal = axis.inverse ? 1 : -1;\n    } else {\n      ret.pixel = newPoint[1] - oldPoint[1];\n      ret.pixelLength = rect.height;\n      ret.pixelStart = rect.y;\n      ret.signal = axis.inverse ? -1 : 1;\n    }\n\n    return ret;\n  }\n};\nexport default InsideZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport InsideZoomModel from './InsideZoomModel';\nimport InsideZoomView from './InsideZoomView';\nimport { installDataZoomRoamProcessor } from './roams';\nimport installCommon from './installCommon';\nexport function install(registers) {\n  installCommon(registers);\n  registers.registerComponentModel(InsideZoomModel);\n  registers.registerComponentView(InsideZoomView);\n  installDataZoomRoamProcessor(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport DataZoomModel from './DataZoomModel';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar SliderZoomModel = function (_super) {\n  __extends(SliderZoomModel, _super);\n\n  function SliderZoomModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SliderZoomModel.type;\n    return _this;\n  }\n\n  SliderZoomModel.type = 'dataZoom.slider';\n  SliderZoomModel.layoutMode = 'box';\n  SliderZoomModel.defaultOption = inheritDefaultOption(DataZoomModel.defaultOption, {\n    show: true,\n    right: 'ph',\n    top: 'ph',\n    width: 'ph',\n    height: 'ph',\n    left: null,\n    bottom: null,\n    borderColor: '#d2dbee',\n    borderRadius: 3,\n    backgroundColor: 'rgba(47,69,84,0)',\n    dataBackground: {\n      lineStyle: {\n        color: '#d2dbee',\n        width: 0.5\n      },\n      areaStyle: {\n        color: '#d2dbee',\n        opacity: 0.2\n      }\n    },\n    selectedDataBackground: {\n      lineStyle: {\n        color: '#8fb0f7',\n        width: 0.5\n      },\n      areaStyle: {\n        color: '#8fb0f7',\n        opacity: 0.2\n      }\n    },\n    fillerColor: 'rgba(135,175,274,0.2)',\n    handleIcon: 'path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z',\n    handleSize: '100%',\n    handleStyle: {\n      color: '#fff',\n      borderColor: '#ACB8D1'\n    },\n    moveHandleSize: 7,\n    moveHandleIcon: 'path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z',\n    moveHandleStyle: {\n      color: '#D2DBEE',\n      opacity: 0.7\n    },\n    showDetail: true,\n    showDataShadow: 'auto',\n    realtime: true,\n    zoomLock: false,\n    textStyle: {\n      color: '#6E7079'\n    },\n    brushSelect: true,\n    brushStyle: {\n      color: 'rgba(135,175,274,0.15)'\n    },\n    emphasis: {\n      handleStyle: {\n        borderColor: '#8FB0F7'\n      },\n      moveHandleStyle: {\n        color: '#8FB0F7'\n      }\n    }\n  });\n  return SliderZoomModel;\n}(DataZoomModel);\n\nexport default SliderZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { bind, each, isFunction, isString, indexOf } from 'zrender/lib/core/util';\nimport * as eventTool from 'zrender/lib/core/event';\nimport * as graphic from '../../util/graphic';\nimport * as throttle from '../../util/throttle';\nimport DataZoomView from './DataZoomView';\nimport { linearMap, asc, parsePercent } from '../../util/number';\nimport * as layout from '../../util/layout';\nimport sliderMove from '../helper/sliderMove';\nimport { getAxisMainType, collectReferCoordSysModelInfo } from './helper';\nimport { enableHoverEmphasis } from '../../util/states';\nimport { createSymbol, symbolBuildProxies } from '../../util/symbol';\nimport { deprecateLog } from '../../util/log';\nvar Rect = graphic.Rect;\nvar DEFAULT_LOCATION_EDGE_GAP = 7;\nvar DEFAULT_FRAME_BORDER_WIDTH = 1;\nvar DEFAULT_FILLER_SIZE = 30;\nvar DEFAULT_MOVE_HANDLE_SIZE = 7;\nvar HORIZONTAL = 'horizontal';\nvar VERTICAL = 'vertical';\nvar LABEL_GAP = 5;\nvar SHOW_DATA_SHADOW_SERIES_TYPE = ['line', 'bar', 'candlestick', 'scatter'];\nvar REALTIME_ANIMATION_CONFIG = {\n  easing: 'cubicOut',\n  duration: 100\n};\n\nvar SliderZoomView = function (_super) {\n  __extends(SliderZoomView, _super);\n\n  function SliderZoomView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SliderZoomView.type;\n    _this._displayables = {};\n    return _this;\n  }\n\n  SliderZoomView.prototype.init = function (ecModel, api) {\n    this.api = api;\n    this._onBrush = bind(this._onBrush, this);\n    this._onBrushEnd = bind(this._onBrushEnd, this);\n  };\n\n  SliderZoomView.prototype.render = function (dataZoomModel, ecModel, api, payload) {\n    _super.prototype.render.apply(this, arguments);\n\n    throttle.createOrUpdate(this, '_dispatchZoomAction', dataZoomModel.get('throttle'), 'fixRate');\n    this._orient = dataZoomModel.getOrient();\n\n    if (dataZoomModel.get('show') === false) {\n      this.group.removeAll();\n      return;\n    }\n\n    if (dataZoomModel.noTarget()) {\n      this._clear();\n\n      this.group.removeAll();\n      return;\n    }\n\n    if (!payload || payload.type !== 'dataZoom' || payload.from !== this.uid) {\n      this._buildView();\n    }\n\n    this._updateView();\n  };\n\n  SliderZoomView.prototype.dispose = function () {\n    this._clear();\n\n    _super.prototype.dispose.apply(this, arguments);\n  };\n\n  SliderZoomView.prototype._clear = function () {\n    throttle.clear(this, '_dispatchZoomAction');\n    var zr = this.api.getZr();\n    zr.off('mousemove', this._onBrush);\n    zr.off('mouseup', this._onBrushEnd);\n  };\n\n  SliderZoomView.prototype._buildView = function () {\n    var thisGroup = this.group;\n    thisGroup.removeAll();\n    this._brushing = false;\n    this._displayables.brushRect = null;\n\n    this._resetLocation();\n\n    this._resetInterval();\n\n    var barGroup = this._displayables.sliderGroup = new graphic.Group();\n\n    this._renderBackground();\n\n    this._renderHandle();\n\n    this._renderDataShadow();\n\n    thisGroup.add(barGroup);\n\n    this._positionGroup();\n  };\n\n  SliderZoomView.prototype._resetLocation = function () {\n    var dataZoomModel = this.dataZoomModel;\n    var api = this.api;\n    var showMoveHandle = dataZoomModel.get('brushSelect');\n    var moveHandleSize = showMoveHandle ? DEFAULT_MOVE_HANDLE_SIZE : 0;\n\n    var coordRect = this._findCoordRect();\n\n    var ecSize = {\n      width: api.getWidth(),\n      height: api.getHeight()\n    };\n    var positionInfo = this._orient === HORIZONTAL ? {\n      right: ecSize.width - coordRect.x - coordRect.width,\n      top: ecSize.height - DEFAULT_FILLER_SIZE - DEFAULT_LOCATION_EDGE_GAP - moveHandleSize,\n      width: coordRect.width,\n      height: DEFAULT_FILLER_SIZE\n    } : {\n      right: DEFAULT_LOCATION_EDGE_GAP,\n      top: coordRect.y,\n      width: DEFAULT_FILLER_SIZE,\n      height: coordRect.height\n    };\n    var layoutParams = layout.getLayoutParams(dataZoomModel.option);\n    each(['right', 'top', 'width', 'height'], function (name) {\n      if (layoutParams[name] === 'ph') {\n        layoutParams[name] = positionInfo[name];\n      }\n    });\n    var layoutRect = layout.getLayoutRect(layoutParams, ecSize);\n    this._location = {\n      x: layoutRect.x,\n      y: layoutRect.y\n    };\n    this._size = [layoutRect.width, layoutRect.height];\n    this._orient === VERTICAL && this._size.reverse();\n  };\n\n  SliderZoomView.prototype._positionGroup = function () {\n    var thisGroup = this.group;\n    var location = this._location;\n    var orient = this._orient;\n    var targetAxisModel = this.dataZoomModel.getFirstTargetAxisModel();\n    var inverse = targetAxisModel && targetAxisModel.get('inverse');\n    var sliderGroup = this._displayables.sliderGroup;\n    var otherAxisInverse = (this._dataShadowInfo || {}).otherAxisInverse;\n    sliderGroup.attr(orient === HORIZONTAL && !inverse ? {\n      scaleY: otherAxisInverse ? 1 : -1,\n      scaleX: 1\n    } : orient === HORIZONTAL && inverse ? {\n      scaleY: otherAxisInverse ? 1 : -1,\n      scaleX: -1\n    } : orient === VERTICAL && !inverse ? {\n      scaleY: otherAxisInverse ? -1 : 1,\n      scaleX: 1,\n      rotation: Math.PI / 2\n    } : {\n      scaleY: otherAxisInverse ? -1 : 1,\n      scaleX: -1,\n      rotation: Math.PI / 2\n    });\n    var rect = thisGroup.getBoundingRect([sliderGroup]);\n    thisGroup.x = location.x - rect.x;\n    thisGroup.y = location.y - rect.y;\n    thisGroup.markRedraw();\n  };\n\n  SliderZoomView.prototype._getViewExtent = function () {\n    return [0, this._size[0]];\n  };\n\n  SliderZoomView.prototype._renderBackground = function () {\n    var dataZoomModel = this.dataZoomModel;\n    var size = this._size;\n    var barGroup = this._displayables.sliderGroup;\n    var brushSelect = dataZoomModel.get('brushSelect');\n    barGroup.add(new Rect({\n      silent: true,\n      shape: {\n        x: 0,\n        y: 0,\n        width: size[0],\n        height: size[1]\n      },\n      style: {\n        fill: dataZoomModel.get('backgroundColor')\n      },\n      z2: -40\n    }));\n    var clickPanel = new Rect({\n      shape: {\n        x: 0,\n        y: 0,\n        width: size[0],\n        height: size[1]\n      },\n      style: {\n        fill: 'transparent'\n      },\n      z2: 0,\n      onclick: bind(this._onClickPanel, this)\n    });\n    var zr = this.api.getZr();\n\n    if (brushSelect) {\n      clickPanel.on('mousedown', this._onBrushStart, this);\n      clickPanel.cursor = 'crosshair';\n      zr.on('mousemove', this._onBrush);\n      zr.on('mouseup', this._onBrushEnd);\n    } else {\n      zr.off('mousemove', this._onBrush);\n      zr.off('mouseup', this._onBrushEnd);\n    }\n\n    barGroup.add(clickPanel);\n  };\n\n  SliderZoomView.prototype._renderDataShadow = function () {\n    var info = this._dataShadowInfo = this._prepareDataShadowInfo();\n\n    this._displayables.dataShadowSegs = [];\n\n    if (!info) {\n      return;\n    }\n\n    var size = this._size;\n    var seriesModel = info.series;\n    var data = seriesModel.getRawData();\n    var otherDim = seriesModel.getShadowDim ? seriesModel.getShadowDim() : info.otherDim;\n\n    if (otherDim == null) {\n      return;\n    }\n\n    var otherDataExtent = data.getDataExtent(otherDim);\n    var otherOffset = (otherDataExtent[1] - otherDataExtent[0]) * 0.3;\n    otherDataExtent = [otherDataExtent[0] - otherOffset, otherDataExtent[1] + otherOffset];\n    var otherShadowExtent = [0, size[1]];\n    var thisShadowExtent = [0, size[0]];\n    var areaPoints = [[size[0], 0], [0, 0]];\n    var linePoints = [];\n    var step = thisShadowExtent[1] / (data.count() - 1);\n    var thisCoord = 0;\n    var stride = Math.round(data.count() / size[0]);\n    var lastIsEmpty;\n    data.each([otherDim], function (value, index) {\n      if (stride > 0 && index % stride) {\n        thisCoord += step;\n        return;\n      }\n\n      var isEmpty = value == null || isNaN(value) || value === '';\n      var otherCoord = isEmpty ? 0 : linearMap(value, otherDataExtent, otherShadowExtent, true);\n\n      if (isEmpty && !lastIsEmpty && index) {\n        areaPoints.push([areaPoints[areaPoints.length - 1][0], 0]);\n        linePoints.push([linePoints[linePoints.length - 1][0], 0]);\n      } else if (!isEmpty && lastIsEmpty) {\n        areaPoints.push([thisCoord, 0]);\n        linePoints.push([thisCoord, 0]);\n      }\n\n      areaPoints.push([thisCoord, otherCoord]);\n      linePoints.push([thisCoord, otherCoord]);\n      thisCoord += step;\n      lastIsEmpty = isEmpty;\n    });\n    var dataZoomModel = this.dataZoomModel;\n\n    function createDataShadowGroup(isSelectedArea) {\n      var model = dataZoomModel.getModel(isSelectedArea ? 'selectedDataBackground' : 'dataBackground');\n      var group = new graphic.Group();\n      var polygon = new graphic.Polygon({\n        shape: {\n          points: areaPoints\n        },\n        segmentIgnoreThreshold: 1,\n        style: model.getModel('areaStyle').getAreaStyle(),\n        silent: true,\n        z2: -20\n      });\n      var polyline = new graphic.Polyline({\n        shape: {\n          points: linePoints\n        },\n        segmentIgnoreThreshold: 1,\n        style: model.getModel('lineStyle').getLineStyle(),\n        silent: true,\n        z2: -19\n      });\n      group.add(polygon);\n      group.add(polyline);\n      return group;\n    }\n\n    for (var i = 0; i < 3; i++) {\n      var group = createDataShadowGroup(i === 1);\n\n      this._displayables.sliderGroup.add(group);\n\n      this._displayables.dataShadowSegs.push(group);\n    }\n  };\n\n  SliderZoomView.prototype._prepareDataShadowInfo = function () {\n    var dataZoomModel = this.dataZoomModel;\n    var showDataShadow = dataZoomModel.get('showDataShadow');\n\n    if (showDataShadow === false) {\n      return;\n    }\n\n    var result;\n    var ecModel = this.ecModel;\n    dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n      var seriesModels = dataZoomModel.getAxisProxy(axisDim, axisIndex).getTargetSeriesModels();\n      each(seriesModels, function (seriesModel) {\n        if (result) {\n          return;\n        }\n\n        if (showDataShadow !== true && indexOf(SHOW_DATA_SHADOW_SERIES_TYPE, seriesModel.get('type')) < 0) {\n          return;\n        }\n\n        var thisAxis = ecModel.getComponent(getAxisMainType(axisDim), axisIndex).axis;\n        var otherDim = getOtherDim(axisDim);\n        var otherAxisInverse;\n        var coordSys = seriesModel.coordinateSystem;\n\n        if (otherDim != null && coordSys.getOtherAxis) {\n          otherAxisInverse = coordSys.getOtherAxis(thisAxis).inverse;\n        }\n\n        otherDim = seriesModel.getData().mapDimension(otherDim);\n        result = {\n          thisAxis: thisAxis,\n          series: seriesModel,\n          thisDim: axisDim,\n          otherDim: otherDim,\n          otherAxisInverse: otherAxisInverse\n        };\n      }, this);\n    }, this);\n    return result;\n  };\n\n  SliderZoomView.prototype._renderHandle = function () {\n    var thisGroup = this.group;\n    var displayables = this._displayables;\n    var handles = displayables.handles = [null, null];\n    var handleLabels = displayables.handleLabels = [null, null];\n    var sliderGroup = this._displayables.sliderGroup;\n    var size = this._size;\n    var dataZoomModel = this.dataZoomModel;\n    var api = this.api;\n    var borderRadius = dataZoomModel.get('borderRadius') || 0;\n    var brushSelect = dataZoomModel.get('brushSelect');\n    var filler = displayables.filler = new Rect({\n      silent: brushSelect,\n      style: {\n        fill: dataZoomModel.get('fillerColor')\n      },\n      textConfig: {\n        position: 'inside'\n      }\n    });\n    sliderGroup.add(filler);\n    sliderGroup.add(new Rect({\n      silent: true,\n      subPixelOptimize: true,\n      shape: {\n        x: 0,\n        y: 0,\n        width: size[0],\n        height: size[1],\n        r: borderRadius\n      },\n      style: {\n        stroke: dataZoomModel.get('dataBackgroundColor') || dataZoomModel.get('borderColor'),\n        lineWidth: DEFAULT_FRAME_BORDER_WIDTH,\n        fill: 'rgba(0,0,0,0)'\n      }\n    }));\n    each([0, 1], function (handleIndex) {\n      var iconStr = dataZoomModel.get('handleIcon');\n\n      if (!symbolBuildProxies[iconStr] && iconStr.indexOf('path://') < 0) {\n        iconStr = 'path://' + iconStr;\n\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateLog('handleIcon now needs \\'path://\\' prefix when using a path string');\n        }\n      }\n\n      var path = createSymbol(iconStr, -1, 0, 2, 2, null, true);\n      path.attr({\n        cursor: getCursor(this._orient),\n        draggable: true,\n        drift: bind(this._onDragMove, this, handleIndex),\n        ondragend: bind(this._onDragEnd, this),\n        onmouseover: bind(this._showDataInfo, this, true),\n        onmouseout: bind(this._showDataInfo, this, false),\n        z2: 5\n      });\n      var bRect = path.getBoundingRect();\n      var handleSize = dataZoomModel.get('handleSize');\n      this._handleHeight = parsePercent(handleSize, this._size[1]);\n      this._handleWidth = bRect.width / bRect.height * this._handleHeight;\n      path.setStyle(dataZoomModel.getModel('handleStyle').getItemStyle());\n      path.style.strokeNoScale = true;\n      path.rectHover = true;\n      path.ensureState('emphasis').style = dataZoomModel.getModel(['emphasis', 'handleStyle']).getItemStyle();\n      enableHoverEmphasis(path);\n      var handleColor = dataZoomModel.get('handleColor');\n\n      if (handleColor != null) {\n        path.style.fill = handleColor;\n      }\n\n      sliderGroup.add(handles[handleIndex] = path);\n      var textStyleModel = dataZoomModel.getModel('textStyle');\n      thisGroup.add(handleLabels[handleIndex] = new graphic.Text({\n        silent: true,\n        invisible: true,\n        style: {\n          x: 0,\n          y: 0,\n          text: '',\n          verticalAlign: 'middle',\n          align: 'center',\n          fill: textStyleModel.getTextColor(),\n          font: textStyleModel.getFont()\n        },\n        z2: 10\n      }));\n    }, this);\n    var actualMoveZone = filler;\n\n    if (brushSelect) {\n      var moveHandleHeight = parsePercent(dataZoomModel.get('moveHandleSize'), size[1]);\n      var moveHandle_1 = displayables.moveHandle = new graphic.Rect({\n        style: dataZoomModel.getModel('moveHandleStyle').getItemStyle(),\n        silent: true,\n        shape: {\n          r: [0, 0, 2, 2],\n          y: size[1] - 0.5,\n          height: moveHandleHeight\n        }\n      });\n      var iconSize = moveHandleHeight * 0.8;\n      var moveHandleIcon = displayables.moveHandleIcon = createSymbol(dataZoomModel.get('moveHandleIcon'), -iconSize / 2, -iconSize / 2, iconSize, iconSize, '#fff', true);\n      moveHandleIcon.silent = true;\n      moveHandleIcon.y = size[1] + moveHandleHeight / 2 - 0.5;\n      moveHandle_1.ensureState('emphasis').style = dataZoomModel.getModel(['emphasis', 'moveHandleStyle']).getItemStyle();\n      var moveZoneExpandSize = Math.min(size[1] / 2, Math.max(moveHandleHeight, 10));\n      actualMoveZone = displayables.moveZone = new graphic.Rect({\n        invisible: true,\n        shape: {\n          y: size[1] - moveZoneExpandSize,\n          height: moveHandleHeight + moveZoneExpandSize\n        }\n      });\n      actualMoveZone.on('mouseover', function () {\n        api.enterEmphasis(moveHandle_1);\n      }).on('mouseout', function () {\n        api.leaveEmphasis(moveHandle_1);\n      });\n      sliderGroup.add(moveHandle_1);\n      sliderGroup.add(moveHandleIcon);\n      sliderGroup.add(actualMoveZone);\n    }\n\n    actualMoveZone.attr({\n      draggable: true,\n      cursor: getCursor(this._orient),\n      drift: bind(this._onDragMove, this, 'all'),\n      ondragstart: bind(this._showDataInfo, this, true),\n      ondragend: bind(this._onDragEnd, this),\n      onmouseover: bind(this._showDataInfo, this, true),\n      onmouseout: bind(this._showDataInfo, this, false)\n    });\n  };\n\n  SliderZoomView.prototype._resetInterval = function () {\n    var range = this._range = this.dataZoomModel.getPercentRange();\n\n    var viewExtent = this._getViewExtent();\n\n    this._handleEnds = [linearMap(range[0], [0, 100], viewExtent, true), linearMap(range[1], [0, 100], viewExtent, true)];\n  };\n\n  SliderZoomView.prototype._updateInterval = function (handleIndex, delta) {\n    var dataZoomModel = this.dataZoomModel;\n    var handleEnds = this._handleEnds;\n\n    var viewExtend = this._getViewExtent();\n\n    var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\n    var percentExtent = [0, 100];\n    sliderMove(delta, handleEnds, viewExtend, dataZoomModel.get('zoomLock') ? 'all' : handleIndex, minMaxSpan.minSpan != null ? linearMap(minMaxSpan.minSpan, percentExtent, viewExtend, true) : null, minMaxSpan.maxSpan != null ? linearMap(minMaxSpan.maxSpan, percentExtent, viewExtend, true) : null);\n    var lastRange = this._range;\n    var range = this._range = asc([linearMap(handleEnds[0], viewExtend, percentExtent, true), linearMap(handleEnds[1], viewExtend, percentExtent, true)]);\n    return !lastRange || lastRange[0] !== range[0] || lastRange[1] !== range[1];\n  };\n\n  SliderZoomView.prototype._updateView = function (nonRealtime) {\n    var displaybles = this._displayables;\n    var handleEnds = this._handleEnds;\n    var handleInterval = asc(handleEnds.slice());\n    var size = this._size;\n    each([0, 1], function (handleIndex) {\n      var handle = displaybles.handles[handleIndex];\n      var handleHeight = this._handleHeight;\n      handle.attr({\n        scaleX: handleHeight / 2,\n        scaleY: handleHeight / 2,\n        x: handleEnds[handleIndex] + (handleIndex ? -1 : 1),\n        y: size[1] / 2 - handleHeight / 2\n      });\n    }, this);\n    displaybles.filler.setShape({\n      x: handleInterval[0],\n      y: 0,\n      width: handleInterval[1] - handleInterval[0],\n      height: size[1]\n    });\n    var viewExtent = {\n      x: handleInterval[0],\n      width: handleInterval[1] - handleInterval[0]\n    };\n\n    if (displaybles.moveHandle) {\n      displaybles.moveHandle.setShape(viewExtent);\n      displaybles.moveZone.setShape(viewExtent);\n      displaybles.moveZone.getBoundingRect();\n      displaybles.moveHandleIcon && displaybles.moveHandleIcon.attr('x', viewExtent.x + viewExtent.width / 2);\n    }\n\n    var dataShadowSegs = displaybles.dataShadowSegs;\n    var segIntervals = [0, handleInterval[0], handleInterval[1], size[0]];\n\n    for (var i = 0; i < dataShadowSegs.length; i++) {\n      var segGroup = dataShadowSegs[i];\n      var clipPath = segGroup.getClipPath();\n\n      if (!clipPath) {\n        clipPath = new graphic.Rect();\n        segGroup.setClipPath(clipPath);\n      }\n\n      clipPath.setShape({\n        x: segIntervals[i],\n        y: 0,\n        width: segIntervals[i + 1] - segIntervals[i],\n        height: size[1]\n      });\n    }\n\n    this._updateDataInfo(nonRealtime);\n  };\n\n  SliderZoomView.prototype._updateDataInfo = function (nonRealtime) {\n    var dataZoomModel = this.dataZoomModel;\n    var displaybles = this._displayables;\n    var handleLabels = displaybles.handleLabels;\n    var orient = this._orient;\n    var labelTexts = ['', ''];\n\n    if (dataZoomModel.get('showDetail')) {\n      var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\n\n      if (axisProxy) {\n        var axis = axisProxy.getAxisModel().axis;\n        var range = this._range;\n        var dataInterval = nonRealtime ? axisProxy.calculateDataWindow({\n          start: range[0],\n          end: range[1]\n        }).valueWindow : axisProxy.getDataValueWindow();\n        labelTexts = [this._formatLabel(dataInterval[0], axis), this._formatLabel(dataInterval[1], axis)];\n      }\n    }\n\n    var orderedHandleEnds = asc(this._handleEnds.slice());\n    setLabel.call(this, 0);\n    setLabel.call(this, 1);\n\n    function setLabel(handleIndex) {\n      var barTransform = graphic.getTransform(displaybles.handles[handleIndex].parent, this.group);\n      var direction = graphic.transformDirection(handleIndex === 0 ? 'right' : 'left', barTransform);\n      var offset = this._handleWidth / 2 + LABEL_GAP;\n      var textPoint = graphic.applyTransform([orderedHandleEnds[handleIndex] + (handleIndex === 0 ? -offset : offset), this._size[1] / 2], barTransform);\n      handleLabels[handleIndex].setStyle({\n        x: textPoint[0],\n        y: textPoint[1],\n        verticalAlign: orient === HORIZONTAL ? 'middle' : direction,\n        align: orient === HORIZONTAL ? direction : 'center',\n        text: labelTexts[handleIndex]\n      });\n    }\n  };\n\n  SliderZoomView.prototype._formatLabel = function (value, axis) {\n    var dataZoomModel = this.dataZoomModel;\n    var labelFormatter = dataZoomModel.get('labelFormatter');\n    var labelPrecision = dataZoomModel.get('labelPrecision');\n\n    if (labelPrecision == null || labelPrecision === 'auto') {\n      labelPrecision = axis.getPixelPrecision();\n    }\n\n    var valueStr = value == null || isNaN(value) ? '' : axis.type === 'category' || axis.type === 'time' ? axis.scale.getLabel({\n      value: Math.round(value)\n    }) : value.toFixed(Math.min(labelPrecision, 20));\n    return isFunction(labelFormatter) ? labelFormatter(value, valueStr) : isString(labelFormatter) ? labelFormatter.replace('{value}', valueStr) : valueStr;\n  };\n\n  SliderZoomView.prototype._showDataInfo = function (showOrHide) {\n    showOrHide = this._dragging || showOrHide;\n    var displayables = this._displayables;\n    var handleLabels = displayables.handleLabels;\n    handleLabels[0].attr('invisible', !showOrHide);\n    handleLabels[1].attr('invisible', !showOrHide);\n    displayables.moveHandle && this.api[showOrHide ? 'enterEmphasis' : 'leaveEmphasis'](displayables.moveHandle, 1);\n  };\n\n  SliderZoomView.prototype._onDragMove = function (handleIndex, dx, dy, event) {\n    this._dragging = true;\n    eventTool.stop(event.event);\n\n    var barTransform = this._displayables.sliderGroup.getLocalTransform();\n\n    var vertex = graphic.applyTransform([dx, dy], barTransform, true);\n\n    var changed = this._updateInterval(handleIndex, vertex[0]);\n\n    var realtime = this.dataZoomModel.get('realtime');\n\n    this._updateView(!realtime);\n\n    changed && realtime && this._dispatchZoomAction(true);\n  };\n\n  SliderZoomView.prototype._onDragEnd = function () {\n    this._dragging = false;\n\n    this._showDataInfo(false);\n\n    var realtime = this.dataZoomModel.get('realtime');\n    !realtime && this._dispatchZoomAction(false);\n  };\n\n  SliderZoomView.prototype._onClickPanel = function (e) {\n    var size = this._size;\n\n    var localPoint = this._displayables.sliderGroup.transformCoordToLocal(e.offsetX, e.offsetY);\n\n    if (localPoint[0] < 0 || localPoint[0] > size[0] || localPoint[1] < 0 || localPoint[1] > size[1]) {\n      return;\n    }\n\n    var handleEnds = this._handleEnds;\n    var center = (handleEnds[0] + handleEnds[1]) / 2;\n\n    var changed = this._updateInterval('all', localPoint[0] - center);\n\n    this._updateView();\n\n    changed && this._dispatchZoomAction(false);\n  };\n\n  SliderZoomView.prototype._onBrushStart = function (e) {\n    var x = e.offsetX;\n    var y = e.offsetY;\n    this._brushStart = new graphic.Point(x, y);\n    this._brushing = true;\n    this._brushStartTime = +new Date();\n  };\n\n  SliderZoomView.prototype._onBrushEnd = function (e) {\n    if (!this._brushing) {\n      return;\n    }\n\n    var brushRect = this._displayables.brushRect;\n    this._brushing = false;\n\n    if (!brushRect) {\n      return;\n    }\n\n    brushRect.attr('ignore', true);\n    var brushShape = brushRect.shape;\n    var brushEndTime = +new Date();\n\n    if (brushEndTime - this._brushStartTime < 200 && Math.abs(brushShape.width) < 5) {\n      return;\n    }\n\n    var viewExtend = this._getViewExtent();\n\n    var percentExtent = [0, 100];\n    this._range = asc([linearMap(brushShape.x, viewExtend, percentExtent, true), linearMap(brushShape.x + brushShape.width, viewExtend, percentExtent, true)]);\n    this._handleEnds = [brushShape.x, brushShape.x + brushShape.width];\n\n    this._updateView();\n\n    this._dispatchZoomAction(false);\n  };\n\n  SliderZoomView.prototype._onBrush = function (e) {\n    if (this._brushing) {\n      eventTool.stop(e.event);\n\n      this._updateBrushRect(e.offsetX, e.offsetY);\n    }\n  };\n\n  SliderZoomView.prototype._updateBrushRect = function (mouseX, mouseY) {\n    var displayables = this._displayables;\n    var dataZoomModel = this.dataZoomModel;\n    var brushRect = displayables.brushRect;\n\n    if (!brushRect) {\n      brushRect = displayables.brushRect = new Rect({\n        silent: true,\n        style: dataZoomModel.getModel('brushStyle').getItemStyle()\n      });\n      displayables.sliderGroup.add(brushRect);\n    }\n\n    brushRect.attr('ignore', false);\n    var brushStart = this._brushStart;\n    var sliderGroup = this._displayables.sliderGroup;\n    var endPoint = sliderGroup.transformCoordToLocal(mouseX, mouseY);\n    var startPoint = sliderGroup.transformCoordToLocal(brushStart.x, brushStart.y);\n    var size = this._size;\n    endPoint[0] = Math.max(Math.min(size[0], endPoint[0]), 0);\n    brushRect.setShape({\n      x: startPoint[0],\n      y: 0,\n      width: endPoint[0] - startPoint[0],\n      height: size[1]\n    });\n  };\n\n  SliderZoomView.prototype._dispatchZoomAction = function (realtime) {\n    var range = this._range;\n    this.api.dispatchAction({\n      type: 'dataZoom',\n      from: this.uid,\n      dataZoomId: this.dataZoomModel.id,\n      animation: realtime ? REALTIME_ANIMATION_CONFIG : null,\n      start: range[0],\n      end: range[1]\n    });\n  };\n\n  SliderZoomView.prototype._findCoordRect = function () {\n    var rect;\n    var coordSysInfoList = collectReferCoordSysModelInfo(this.dataZoomModel).infoList;\n\n    if (!rect && coordSysInfoList.length) {\n      var coordSys = coordSysInfoList[0].model.coordinateSystem;\n      rect = coordSys.getRect && coordSys.getRect();\n    }\n\n    if (!rect) {\n      var width = this.api.getWidth();\n      var height = this.api.getHeight();\n      rect = {\n        x: width * 0.2,\n        y: height * 0.2,\n        width: width * 0.6,\n        height: height * 0.6\n      };\n    }\n\n    return rect;\n  };\n\n  SliderZoomView.type = 'dataZoom.slider';\n  return SliderZoomView;\n}(DataZoomView);\n\nfunction getOtherDim(thisDim) {\n  var map = {\n    x: 'y',\n    y: 'x',\n    radius: 'angle',\n    angle: 'radius'\n  };\n  return map[thisDim];\n}\n\nfunction getCursor(orient) {\n  return orient === 'vertical' ? 'ns-resize' : 'ew-resize';\n}\n\nexport default SliderZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SliderZoomModel from './SliderZoomModel';\nimport SliderZoomView from './SliderZoomView';\nimport installCommon from './installCommon';\nexport function install(registers) {\n  registers.registerComponentModel(SliderZoomModel);\n  registers.registerComponentView(SliderZoomView);\n  installCommon(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport { install as installDataZoomInside } from './installDataZoomInside';\nimport { install as installDataZoomSlider } from './installDataZoomSlider';\nexport function install(registers) {\n  use(installDataZoomInside);\n  use(installDataZoomSlider);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar visualDefault = {\n  get: function (visualType, key, isCategory) {\n    var value = zrUtil.clone((defaultOption[visualType] || {})[key]);\n    return isCategory ? zrUtil.isArray(value) ? value[value.length - 1] : value : value;\n  }\n};\nvar defaultOption = {\n  color: {\n    active: ['#006edd', '#e0ffff'],\n    inactive: ['rgba(0,0,0,0)']\n  },\n  colorHue: {\n    active: [0, 360],\n    inactive: [0, 0]\n  },\n  colorSaturation: {\n    active: [0.3, 1],\n    inactive: [0, 0]\n  },\n  colorLightness: {\n    active: [0.9, 0.5],\n    inactive: [0, 0]\n  },\n  colorAlpha: {\n    active: [0.3, 1],\n    inactive: [0, 0]\n  },\n  opacity: {\n    active: [0.3, 1],\n    inactive: [0, 0]\n  },\n  symbol: {\n    active: ['circle', 'roundRect', 'diamond'],\n    inactive: ['none']\n  },\n  symbolSize: {\n    active: [10, 50],\n    inactive: [0, 0]\n  }\n};\nexport default visualDefault;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport visualDefault from '../../visual/visualDefault';\nimport VisualMapping from '../../visual/VisualMapping';\nimport * as visualSolution from '../../visual/visualSolution';\nimport * as modelUtil from '../../util/model';\nimport * as numberUtil from '../../util/number';\nimport ComponentModel from '../../model/Component';\nvar mapVisual = VisualMapping.mapVisual;\nvar eachVisual = VisualMapping.eachVisual;\nvar isArray = zrUtil.isArray;\nvar each = zrUtil.each;\nvar asc = numberUtil.asc;\nvar linearMap = numberUtil.linearMap;\n\nvar VisualMapModel = function (_super) {\n  __extends(VisualMapModel, _super);\n\n  function VisualMapModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = VisualMapModel.type;\n    _this.stateList = ['inRange', 'outOfRange'];\n    _this.replacableOptionKeys = ['inRange', 'outOfRange', 'target', 'controller', 'color'];\n    _this.layoutMode = {\n      type: 'box',\n      ignoreSize: true\n    };\n    _this.dataBound = [-Infinity, Infinity];\n    _this.targetVisuals = {};\n    _this.controllerVisuals = {};\n    return _this;\n  }\n\n  VisualMapModel.prototype.init = function (option, parentModel, ecModel) {\n    this.mergeDefaultAndTheme(option, ecModel);\n  };\n\n  VisualMapModel.prototype.optionUpdated = function (newOption, isInit) {\n    var thisOption = this.option;\n\n    if (!env.canvasSupported) {\n      thisOption.realtime = false;\n    }\n\n    !isInit && visualSolution.replaceVisualOption(thisOption, newOption, this.replacableOptionKeys);\n    this.textStyleModel = this.getModel('textStyle');\n    this.resetItemSize();\n    this.completeVisualOption();\n  };\n\n  VisualMapModel.prototype.resetVisual = function (supplementVisualOption) {\n    var stateList = this.stateList;\n    supplementVisualOption = zrUtil.bind(supplementVisualOption, this);\n    this.controllerVisuals = visualSolution.createVisualMappings(this.option.controller, stateList, supplementVisualOption);\n    this.targetVisuals = visualSolution.createVisualMappings(this.option.target, stateList, supplementVisualOption);\n  };\n\n  VisualMapModel.prototype.getTargetSeriesIndices = function () {\n    var optionSeriesIndex = this.option.seriesIndex;\n    var seriesIndices = [];\n\n    if (optionSeriesIndex == null || optionSeriesIndex === 'all') {\n      this.ecModel.eachSeries(function (seriesModel, index) {\n        seriesIndices.push(index);\n      });\n    } else {\n      seriesIndices = modelUtil.normalizeToArray(optionSeriesIndex);\n    }\n\n    return seriesIndices;\n  };\n\n  VisualMapModel.prototype.eachTargetSeries = function (callback, context) {\n    zrUtil.each(this.getTargetSeriesIndices(), function (seriesIndex) {\n      var seriesModel = this.ecModel.getSeriesByIndex(seriesIndex);\n\n      if (seriesModel) {\n        callback.call(context, seriesModel);\n      }\n    }, this);\n  };\n\n  VisualMapModel.prototype.isTargetSeries = function (seriesModel) {\n    var is = false;\n    this.eachTargetSeries(function (model) {\n      model === seriesModel && (is = true);\n    });\n    return is;\n  };\n\n  VisualMapModel.prototype.formatValueText = function (value, isCategory, edgeSymbols) {\n    var option = this.option;\n    var precision = option.precision;\n    var dataBound = this.dataBound;\n    var formatter = option.formatter;\n    var isMinMax;\n    edgeSymbols = edgeSymbols || ['<', '>'];\n\n    if (zrUtil.isArray(value)) {\n      value = value.slice();\n      isMinMax = true;\n    }\n\n    var textValue = isCategory ? value : isMinMax ? [toFixed(value[0]), toFixed(value[1])] : toFixed(value);\n\n    if (zrUtil.isString(formatter)) {\n      return formatter.replace('{value}', isMinMax ? textValue[0] : textValue).replace('{value2}', isMinMax ? textValue[1] : textValue);\n    } else if (zrUtil.isFunction(formatter)) {\n      return isMinMax ? formatter(value[0], value[1]) : formatter(value);\n    }\n\n    if (isMinMax) {\n      if (value[0] === dataBound[0]) {\n        return edgeSymbols[0] + ' ' + textValue[1];\n      } else if (value[1] === dataBound[1]) {\n        return edgeSymbols[1] + ' ' + textValue[0];\n      } else {\n        return textValue[0] + ' - ' + textValue[1];\n      }\n    } else {\n      return textValue;\n    }\n\n    function toFixed(val) {\n      return val === dataBound[0] ? 'min' : val === dataBound[1] ? 'max' : (+val).toFixed(Math.min(precision, 20));\n    }\n  };\n\n  VisualMapModel.prototype.resetExtent = function () {\n    var thisOption = this.option;\n    var extent = asc([thisOption.min, thisOption.max]);\n    this._dataExtent = extent;\n  };\n\n  VisualMapModel.prototype.getDataDimension = function (list) {\n    var optDim = this.option.dimension;\n    var listDimensions = list.dimensions;\n\n    if (optDim == null && !listDimensions.length) {\n      return;\n    }\n\n    if (optDim != null) {\n      return list.getDimension(optDim);\n    }\n\n    var dimNames = list.dimensions;\n\n    for (var i = dimNames.length - 1; i >= 0; i--) {\n      var dimName = dimNames[i];\n      var dimInfo = list.getDimensionInfo(dimName);\n\n      if (!dimInfo.isCalculationCoord) {\n        return dimName;\n      }\n    }\n  };\n\n  VisualMapModel.prototype.getExtent = function () {\n    return this._dataExtent.slice();\n  };\n\n  VisualMapModel.prototype.completeVisualOption = function () {\n    var ecModel = this.ecModel;\n    var thisOption = this.option;\n    var base = {\n      inRange: thisOption.inRange,\n      outOfRange: thisOption.outOfRange\n    };\n    var target = thisOption.target || (thisOption.target = {});\n    var controller = thisOption.controller || (thisOption.controller = {});\n    zrUtil.merge(target, base);\n    zrUtil.merge(controller, base);\n    var isCategory = this.isCategory();\n    completeSingle.call(this, target);\n    completeSingle.call(this, controller);\n    completeInactive.call(this, target, 'inRange', 'outOfRange');\n    completeController.call(this, controller);\n\n    function completeSingle(base) {\n      if (isArray(thisOption.color) && !base.inRange) {\n        base.inRange = {\n          color: thisOption.color.slice().reverse()\n        };\n      }\n\n      base.inRange = base.inRange || {\n        color: ecModel.get('gradientColor')\n      };\n    }\n\n    function completeInactive(base, stateExist, stateAbsent) {\n      var optExist = base[stateExist];\n      var optAbsent = base[stateAbsent];\n\n      if (optExist && !optAbsent) {\n        optAbsent = base[stateAbsent] = {};\n        each(optExist, function (visualData, visualType) {\n          if (!VisualMapping.isValidType(visualType)) {\n            return;\n          }\n\n          var defa = visualDefault.get(visualType, 'inactive', isCategory);\n\n          if (defa != null) {\n            optAbsent[visualType] = defa;\n\n            if (visualType === 'color' && !optAbsent.hasOwnProperty('opacity') && !optAbsent.hasOwnProperty('colorAlpha')) {\n              optAbsent.opacity = [0, 0];\n            }\n          }\n        });\n      }\n    }\n\n    function completeController(controller) {\n      var symbolExists = (controller.inRange || {}).symbol || (controller.outOfRange || {}).symbol;\n      var symbolSizeExists = (controller.inRange || {}).symbolSize || (controller.outOfRange || {}).symbolSize;\n      var inactiveColor = this.get('inactiveColor');\n      each(this.stateList, function (state) {\n        var itemSize = this.itemSize;\n        var visuals = controller[state];\n\n        if (!visuals) {\n          visuals = controller[state] = {\n            color: isCategory ? inactiveColor : [inactiveColor]\n          };\n        }\n\n        if (visuals.symbol == null) {\n          visuals.symbol = symbolExists && zrUtil.clone(symbolExists) || (isCategory ? 'roundRect' : ['roundRect']);\n        }\n\n        if (visuals.symbolSize == null) {\n          visuals.symbolSize = symbolSizeExists && zrUtil.clone(symbolSizeExists) || (isCategory ? itemSize[0] : [itemSize[0], itemSize[0]]);\n        }\n\n        visuals.symbol = mapVisual(visuals.symbol, function (symbol) {\n          return symbol === 'none' || symbol === 'square' ? 'roundRect' : symbol;\n        });\n        var symbolSize = visuals.symbolSize;\n\n        if (symbolSize != null) {\n          var max_1 = -Infinity;\n          eachVisual(symbolSize, function (value) {\n            value > max_1 && (max_1 = value);\n          });\n          visuals.symbolSize = mapVisual(symbolSize, function (value) {\n            return linearMap(value, [0, max_1], [0, itemSize[0]], true);\n          });\n        }\n      }, this);\n    }\n  };\n\n  VisualMapModel.prototype.resetItemSize = function () {\n    this.itemSize = [parseFloat(this.get('itemWidth')), parseFloat(this.get('itemHeight'))];\n  };\n\n  VisualMapModel.prototype.isCategory = function () {\n    return !!this.option.categories;\n  };\n\n  VisualMapModel.prototype.setSelected = function (selected) {};\n\n  VisualMapModel.prototype.getSelected = function () {\n    return null;\n  };\n\n  VisualMapModel.prototype.getValueState = function (value) {\n    return null;\n  };\n\n  VisualMapModel.prototype.getVisualMeta = function (getColorVisual) {\n    return null;\n  };\n\n  VisualMapModel.type = 'visualMap';\n  VisualMapModel.dependencies = ['series'];\n  VisualMapModel.defaultOption = {\n    show: true,\n    zlevel: 0,\n    z: 4,\n    seriesIndex: 'all',\n    min: 0,\n    max: 200,\n    left: 0,\n    right: null,\n    top: null,\n    bottom: 0,\n    itemWidth: null,\n    itemHeight: null,\n    inverse: false,\n    orient: 'vertical',\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderColor: '#ccc',\n    contentColor: '#5793f3',\n    inactiveColor: '#aaa',\n    borderWidth: 0,\n    padding: 5,\n    textGap: 10,\n    precision: 0,\n    textStyle: {\n      color: '#333'\n    }\n  };\n  return VisualMapModel;\n}(ComponentModel);\n\nexport default VisualMapModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport VisualMapModel from './VisualMapModel';\nimport * as numberUtil from '../../util/number';\nimport { inheritDefaultOption } from '../../util/component';\nvar DEFAULT_BAR_BOUND = [20, 140];\n\nvar ContinuousModel = function (_super) {\n  __extends(ContinuousModel, _super);\n\n  function ContinuousModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ContinuousModel.type;\n    return _this;\n  }\n\n  ContinuousModel.prototype.optionUpdated = function (newOption, isInit) {\n    _super.prototype.optionUpdated.apply(this, arguments);\n\n    this.resetExtent();\n    this.resetVisual(function (mappingOption) {\n      mappingOption.mappingMethod = 'linear';\n      mappingOption.dataExtent = this.getExtent();\n    });\n\n    this._resetRange();\n  };\n\n  ContinuousModel.prototype.resetItemSize = function () {\n    _super.prototype.resetItemSize.apply(this, arguments);\n\n    var itemSize = this.itemSize;\n    (itemSize[0] == null || isNaN(itemSize[0])) && (itemSize[0] = DEFAULT_BAR_BOUND[0]);\n    (itemSize[1] == null || isNaN(itemSize[1])) && (itemSize[1] = DEFAULT_BAR_BOUND[1]);\n  };\n\n  ContinuousModel.prototype._resetRange = function () {\n    var dataExtent = this.getExtent();\n    var range = this.option.range;\n\n    if (!range || range.auto) {\n      dataExtent.auto = 1;\n      this.option.range = dataExtent;\n    } else if (zrUtil.isArray(range)) {\n      if (range[0] > range[1]) {\n        range.reverse();\n      }\n\n      range[0] = Math.max(range[0], dataExtent[0]);\n      range[1] = Math.min(range[1], dataExtent[1]);\n    }\n  };\n\n  ContinuousModel.prototype.completeVisualOption = function () {\n    _super.prototype.completeVisualOption.apply(this, arguments);\n\n    zrUtil.each(this.stateList, function (state) {\n      var symbolSize = this.option.controller[state].symbolSize;\n\n      if (symbolSize && symbolSize[0] !== symbolSize[1]) {\n        symbolSize[0] = symbolSize[1] / 3;\n      }\n    }, this);\n  };\n\n  ContinuousModel.prototype.setSelected = function (selected) {\n    this.option.range = selected.slice();\n\n    this._resetRange();\n  };\n\n  ContinuousModel.prototype.getSelected = function () {\n    var dataExtent = this.getExtent();\n    var dataInterval = numberUtil.asc((this.get('range') || []).slice());\n    dataInterval[0] > dataExtent[1] && (dataInterval[0] = dataExtent[1]);\n    dataInterval[1] > dataExtent[1] && (dataInterval[1] = dataExtent[1]);\n    dataInterval[0] < dataExtent[0] && (dataInterval[0] = dataExtent[0]);\n    dataInterval[1] < dataExtent[0] && (dataInterval[1] = dataExtent[0]);\n    return dataInterval;\n  };\n\n  ContinuousModel.prototype.getValueState = function (value) {\n    var range = this.option.range;\n    var dataExtent = this.getExtent();\n    return (range[0] <= dataExtent[0] || range[0] <= value) && (range[1] >= dataExtent[1] || value <= range[1]) ? 'inRange' : 'outOfRange';\n  };\n\n  ContinuousModel.prototype.findTargetDataIndices = function (range) {\n    var result = [];\n    this.eachTargetSeries(function (seriesModel) {\n      var dataIndices = [];\n      var data = seriesModel.getData();\n      data.each(this.getDataDimension(data), function (value, dataIndex) {\n        range[0] <= value && value <= range[1] && dataIndices.push(dataIndex);\n      }, this);\n      result.push({\n        seriesId: seriesModel.id,\n        dataIndex: dataIndices\n      });\n    }, this);\n    return result;\n  };\n\n  ContinuousModel.prototype.getVisualMeta = function (getColorVisual) {\n    var oVals = getColorStopValues(this, 'outOfRange', this.getExtent());\n    var iVals = getColorStopValues(this, 'inRange', this.option.range.slice());\n    var stops = [];\n\n    function setStop(value, valueState) {\n      stops.push({\n        value: value,\n        color: getColorVisual(value, valueState)\n      });\n    }\n\n    var iIdx = 0;\n    var oIdx = 0;\n    var iLen = iVals.length;\n    var oLen = oVals.length;\n\n    for (; oIdx < oLen && (!iVals.length || oVals[oIdx] <= iVals[0]); oIdx++) {\n      if (oVals[oIdx] < iVals[iIdx]) {\n        setStop(oVals[oIdx], 'outOfRange');\n      }\n    }\n\n    for (var first = 1; iIdx < iLen; iIdx++, first = 0) {\n      first && stops.length && setStop(iVals[iIdx], 'outOfRange');\n      setStop(iVals[iIdx], 'inRange');\n    }\n\n    for (var first = 1; oIdx < oLen; oIdx++) {\n      if (!iVals.length || iVals[iVals.length - 1] < oVals[oIdx]) {\n        if (first) {\n          stops.length && setStop(stops[stops.length - 1].value, 'outOfRange');\n          first = 0;\n        }\n\n        setStop(oVals[oIdx], 'outOfRange');\n      }\n    }\n\n    var stopsLen = stops.length;\n    return {\n      stops: stops,\n      outerColors: [stopsLen ? stops[0].color : 'transparent', stopsLen ? stops[stopsLen - 1].color : 'transparent']\n    };\n  };\n\n  ContinuousModel.type = 'visualMap.continuous';\n  ContinuousModel.defaultOption = inheritDefaultOption(VisualMapModel.defaultOption, {\n    align: 'auto',\n    calculable: false,\n    hoverLink: true,\n    realtime: true,\n    handleIcon: 'path://M-11.39,9.77h0a3.5,3.5,0,0,1-3.5,3.5h-22a3.5,3.5,0,0,1-3.5-3.5h0a3.5,3.5,0,0,1,3.5-3.5h22A3.5,3.5,0,0,1-11.39,9.77Z',\n    handleSize: '120%',\n    handleStyle: {\n      borderColor: '#fff',\n      borderWidth: 1\n    },\n    indicatorIcon: 'circle',\n    indicatorSize: '50%',\n    indicatorStyle: {\n      borderColor: '#fff',\n      borderWidth: 2,\n      shadowBlur: 2,\n      shadowOffsetX: 1,\n      shadowOffsetY: 1,\n      shadowColor: 'rgba(0,0,0,0.2)'\n    }\n  });\n  return ContinuousModel;\n}(VisualMapModel);\n\nfunction getColorStopValues(visualMapModel, valueState, dataExtent) {\n  if (dataExtent[0] === dataExtent[1]) {\n    return dataExtent.slice();\n  }\n\n  var count = 200;\n  var step = (dataExtent[1] - dataExtent[0]) / count;\n  var value = dataExtent[0];\n  var stopValues = [];\n\n  for (var i = 0; i <= count && value < dataExtent[1]; i++) {\n    stopValues.push(value);\n    value += step;\n  }\n\n  stopValues.push(dataExtent[1]);\n  return stopValues;\n}\n\nexport default ContinuousModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { Rect } from '../../util/graphic';\nimport * as formatUtil from '../../util/format';\nimport * as layout from '../../util/layout';\nimport VisualMapping from '../../visual/VisualMapping';\nimport ComponentView from '../../view/Component';\n\nvar VisualMapView = function (_super) {\n  __extends(VisualMapView, _super);\n\n  function VisualMapView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = VisualMapView.type;\n    _this.autoPositionValues = {\n      left: 1,\n      right: 1,\n      top: 1,\n      bottom: 1\n    };\n    return _this;\n  }\n\n  VisualMapView.prototype.init = function (ecModel, api) {\n    this.ecModel = ecModel;\n    this.api = api;\n  };\n\n  VisualMapView.prototype.render = function (visualMapModel, ecModel, api, payload) {\n    this.visualMapModel = visualMapModel;\n\n    if (visualMapModel.get('show') === false) {\n      this.group.removeAll();\n      return;\n    }\n\n    this.doRender(visualMapModel, ecModel, api, payload);\n  };\n\n  VisualMapView.prototype.renderBackground = function (group) {\n    var visualMapModel = this.visualMapModel;\n    var padding = formatUtil.normalizeCssArray(visualMapModel.get('padding') || 0);\n    var rect = group.getBoundingRect();\n    group.add(new Rect({\n      z2: -1,\n      silent: true,\n      shape: {\n        x: rect.x - padding[3],\n        y: rect.y - padding[0],\n        width: rect.width + padding[3] + padding[1],\n        height: rect.height + padding[0] + padding[2]\n      },\n      style: {\n        fill: visualMapModel.get('backgroundColor'),\n        stroke: visualMapModel.get('borderColor'),\n        lineWidth: visualMapModel.get('borderWidth')\n      }\n    }));\n  };\n\n  VisualMapView.prototype.getControllerVisual = function (targetValue, visualCluster, opts) {\n    opts = opts || {};\n    var forceState = opts.forceState;\n    var visualMapModel = this.visualMapModel;\n    var visualObj = {};\n\n    if (visualCluster === 'symbol') {\n      visualObj.symbol = visualMapModel.get('itemSymbol');\n    }\n\n    if (visualCluster === 'color') {\n      var defaultColor = visualMapModel.get('contentColor');\n      visualObj.color = defaultColor;\n    }\n\n    function getter(key) {\n      return visualObj[key];\n    }\n\n    function setter(key, value) {\n      visualObj[key] = value;\n    }\n\n    var mappings = visualMapModel.controllerVisuals[forceState || visualMapModel.getValueState(targetValue)];\n    var visualTypes = VisualMapping.prepareVisualTypes(mappings);\n    zrUtil.each(visualTypes, function (type) {\n      var visualMapping = mappings[type];\n\n      if (opts.convertOpacityToAlpha && type === 'opacity') {\n        type = 'colorAlpha';\n        visualMapping = mappings.__alphaForOpacity;\n      }\n\n      if (VisualMapping.dependsOn(type, visualCluster)) {\n        visualMapping && visualMapping.applyVisual(targetValue, getter, setter);\n      }\n    });\n    return visualObj[visualCluster];\n  };\n\n  VisualMapView.prototype.positionGroup = function (group) {\n    var model = this.visualMapModel;\n    var api = this.api;\n    layout.positionElement(group, model.getBoxLayoutParams(), {\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n  };\n\n  VisualMapView.prototype.doRender = function (visualMapModel, ecModel, api, payload) {};\n\n  VisualMapView.type = 'visualMap';\n  return VisualMapView;\n}(ComponentView);\n\nexport default VisualMapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { getLayoutRect } from '../../util/layout';\nvar paramsSet = [['left', 'right', 'width'], ['top', 'bottom', 'height']];\nexport function getItemAlign(visualMapModel, api, itemSize) {\n  var modelOption = visualMapModel.option;\n  var itemAlign = modelOption.align;\n\n  if (itemAlign != null && itemAlign !== 'auto') {\n    return itemAlign;\n  }\n\n  var ecSize = {\n    width: api.getWidth(),\n    height: api.getHeight()\n  };\n  var realIndex = modelOption.orient === 'horizontal' ? 1 : 0;\n  var reals = paramsSet[realIndex];\n  var fakeValue = [0, null, 10];\n  var layoutInput = {};\n\n  for (var i = 0; i < 3; i++) {\n    layoutInput[paramsSet[1 - realIndex][i]] = fakeValue[i];\n    layoutInput[reals[i]] = i === 2 ? itemSize[0] : modelOption[reals[i]];\n  }\n\n  var rParam = [['x', 'width', 3], ['y', 'height', 0]][realIndex];\n  var rect = getLayoutRect(layoutInput, ecSize, modelOption.padding);\n  return reals[(rect.margin[rParam[2]] || 0) + rect[rParam[0]] + rect[rParam[1]] * 0.5 < ecSize[rParam[1]] * 0.5 ? 0 : 1];\n}\nexport function makeHighDownBatch(batch, visualMapModel) {\n  zrUtil.each(batch || [], function (batchItem) {\n    if (batchItem.dataIndex != null) {\n      batchItem.dataIndexInside = batchItem.dataIndex;\n      batchItem.dataIndex = null;\n    }\n\n    batchItem.highlightKey = 'visualMap' + (visualMapModel ? visualMapModel.componentIndex : '');\n  });\n  return batch;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport LinearGradient from 'zrender/lib/graphic/LinearGradient';\nimport * as eventTool from 'zrender/lib/core/event';\nimport VisualMapView from './VisualMapView';\nimport * as graphic from '../../util/graphic';\nimport * as numberUtil from '../../util/number';\nimport sliderMove from '../helper/sliderMove';\nimport * as helper from './helper';\nimport * as modelUtil from '../../util/model';\nimport { parsePercent } from 'zrender/lib/contain/text';\nimport { setAsHighDownDispatcher } from '../../util/states';\nimport { createSymbol } from '../../util/symbol';\nimport ZRImage from 'zrender/lib/graphic/Image';\nimport { getECData } from '../../util/innerStore';\nvar linearMap = numberUtil.linearMap;\nvar each = zrUtil.each;\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar HOVER_LINK_SIZE = 12;\nvar HOVER_LINK_OUT = 6;\n\nvar ContinuousView = function (_super) {\n  __extends(ContinuousView, _super);\n\n  function ContinuousView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ContinuousView.type;\n    _this._shapes = {};\n    _this._dataInterval = [];\n    _this._handleEnds = [];\n    _this._hoverLinkDataIndices = [];\n    return _this;\n  }\n\n  ContinuousView.prototype.doRender = function (visualMapModel, ecModel, api, payload) {\n    this._api = api;\n\n    if (!payload || payload.type !== 'selectDataRange' || payload.from !== this.uid) {\n      this._buildView();\n    }\n  };\n\n  ContinuousView.prototype._buildView = function () {\n    this.group.removeAll();\n    var visualMapModel = this.visualMapModel;\n    var thisGroup = this.group;\n    this._orient = visualMapModel.get('orient');\n    this._useHandle = visualMapModel.get('calculable');\n\n    this._resetInterval();\n\n    this._renderBar(thisGroup);\n\n    var dataRangeText = visualMapModel.get('text');\n\n    this._renderEndsText(thisGroup, dataRangeText, 0);\n\n    this._renderEndsText(thisGroup, dataRangeText, 1);\n\n    this._updateView(true);\n\n    this.renderBackground(thisGroup);\n\n    this._updateView();\n\n    this._enableHoverLinkToSeries();\n\n    this._enableHoverLinkFromSeries();\n\n    this.positionGroup(thisGroup);\n  };\n\n  ContinuousView.prototype._renderEndsText = function (group, dataRangeText, endsIndex) {\n    if (!dataRangeText) {\n      return;\n    }\n\n    var text = dataRangeText[1 - endsIndex];\n    text = text != null ? text + '' : '';\n    var visualMapModel = this.visualMapModel;\n    var textGap = visualMapModel.get('textGap');\n    var itemSize = visualMapModel.itemSize;\n    var barGroup = this._shapes.mainGroup;\n\n    var position = this._applyTransform([itemSize[0] / 2, endsIndex === 0 ? -textGap : itemSize[1] + textGap], barGroup);\n\n    var align = this._applyTransform(endsIndex === 0 ? 'bottom' : 'top', barGroup);\n\n    var orient = this._orient;\n    var textStyleModel = this.visualMapModel.textStyleModel;\n    this.group.add(new graphic.Text({\n      style: {\n        x: position[0],\n        y: position[1],\n        verticalAlign: orient === 'horizontal' ? 'middle' : align,\n        align: orient === 'horizontal' ? align : 'center',\n        text: text,\n        font: textStyleModel.getFont(),\n        fill: textStyleModel.getTextColor()\n      }\n    }));\n  };\n\n  ContinuousView.prototype._renderBar = function (targetGroup) {\n    var visualMapModel = this.visualMapModel;\n    var shapes = this._shapes;\n    var itemSize = visualMapModel.itemSize;\n    var orient = this._orient;\n    var useHandle = this._useHandle;\n    var itemAlign = helper.getItemAlign(visualMapModel, this.api, itemSize);\n\n    var mainGroup = shapes.mainGroup = this._createBarGroup(itemAlign);\n\n    var gradientBarGroup = new graphic.Group();\n    mainGroup.add(gradientBarGroup);\n    gradientBarGroup.add(shapes.outOfRange = createPolygon());\n    gradientBarGroup.add(shapes.inRange = createPolygon(null, useHandle ? getCursor(this._orient) : null, zrUtil.bind(this._dragHandle, this, 'all', false), zrUtil.bind(this._dragHandle, this, 'all', true)));\n    gradientBarGroup.setClipPath(new graphic.Rect({\n      shape: {\n        x: 0,\n        y: 0,\n        width: itemSize[0],\n        height: itemSize[1],\n        r: 3\n      }\n    }));\n    var textRect = visualMapModel.textStyleModel.getTextRect('国');\n    var textSize = mathMax(textRect.width, textRect.height);\n\n    if (useHandle) {\n      shapes.handleThumbs = [];\n      shapes.handleLabels = [];\n      shapes.handleLabelPoints = [];\n\n      this._createHandle(visualMapModel, mainGroup, 0, itemSize, textSize, orient);\n\n      this._createHandle(visualMapModel, mainGroup, 1, itemSize, textSize, orient);\n    }\n\n    this._createIndicator(visualMapModel, mainGroup, itemSize, textSize, orient);\n\n    targetGroup.add(mainGroup);\n  };\n\n  ContinuousView.prototype._createHandle = function (visualMapModel, mainGroup, handleIndex, itemSize, textSize, orient) {\n    var onDrift = zrUtil.bind(this._dragHandle, this, handleIndex, false);\n    var onDragEnd = zrUtil.bind(this._dragHandle, this, handleIndex, true);\n    var handleSize = parsePercent(visualMapModel.get('handleSize'), itemSize[0]);\n    var handleThumb = createSymbol(visualMapModel.get('handleIcon'), -handleSize / 2, -handleSize / 2, handleSize, handleSize, null, true);\n    var cursor = getCursor(this._orient);\n    handleThumb.attr({\n      cursor: cursor,\n      draggable: true,\n      drift: onDrift,\n      ondragend: onDragEnd,\n      onmousemove: function (e) {\n        eventTool.stop(e.event);\n      }\n    });\n    handleThumb.x = itemSize[0] / 2;\n    handleThumb.useStyle(visualMapModel.getModel('handleStyle').getItemStyle());\n    handleThumb.setStyle({\n      strokeNoScale: true,\n      strokeFirst: true\n    });\n    handleThumb.style.lineWidth *= 2;\n    handleThumb.ensureState('emphasis').style = visualMapModel.getModel(['emphasis', 'handleStyle']).getItemStyle();\n    setAsHighDownDispatcher(handleThumb, true);\n    mainGroup.add(handleThumb);\n    var textStyleModel = this.visualMapModel.textStyleModel;\n    var handleLabel = new graphic.Text({\n      cursor: cursor,\n      draggable: true,\n      drift: onDrift,\n      onmousemove: function (e) {\n        eventTool.stop(e.event);\n      },\n      ondragend: onDragEnd,\n      style: {\n        x: 0,\n        y: 0,\n        text: '',\n        font: textStyleModel.getFont(),\n        fill: textStyleModel.getTextColor()\n      }\n    });\n    handleLabel.ensureState('blur').style = {\n      opacity: 0.1\n    };\n    handleLabel.stateTransition = {\n      duration: 200\n    };\n    this.group.add(handleLabel);\n    var handleLabelPoint = [handleSize, 0];\n    var shapes = this._shapes;\n    shapes.handleThumbs[handleIndex] = handleThumb;\n    shapes.handleLabelPoints[handleIndex] = handleLabelPoint;\n    shapes.handleLabels[handleIndex] = handleLabel;\n  };\n\n  ContinuousView.prototype._createIndicator = function (visualMapModel, mainGroup, itemSize, textSize, orient) {\n    var scale = parsePercent(visualMapModel.get('indicatorSize'), itemSize[0]);\n    var indicator = createSymbol(visualMapModel.get('indicatorIcon'), -scale / 2, -scale / 2, scale, scale, null, true);\n    indicator.attr({\n      cursor: 'move',\n      invisible: true,\n      silent: true,\n      x: itemSize[0] / 2\n    });\n    var indicatorStyle = visualMapModel.getModel('indicatorStyle').getItemStyle();\n\n    if (indicator instanceof ZRImage) {\n      var pathStyle = indicator.style;\n      indicator.useStyle(zrUtil.extend({\n        image: pathStyle.image,\n        x: pathStyle.x,\n        y: pathStyle.y,\n        width: pathStyle.width,\n        height: pathStyle.height\n      }, indicatorStyle));\n    } else {\n      indicator.useStyle(indicatorStyle);\n    }\n\n    mainGroup.add(indicator);\n    var textStyleModel = this.visualMapModel.textStyleModel;\n    var indicatorLabel = new graphic.Text({\n      silent: true,\n      invisible: true,\n      style: {\n        x: 0,\n        y: 0,\n        text: '',\n        font: textStyleModel.getFont(),\n        fill: textStyleModel.getTextColor()\n      }\n    });\n    this.group.add(indicatorLabel);\n    var indicatorLabelPoint = [(orient === 'horizontal' ? textSize / 2 : HOVER_LINK_OUT) + itemSize[0] / 2, 0];\n    var shapes = this._shapes;\n    shapes.indicator = indicator;\n    shapes.indicatorLabel = indicatorLabel;\n    shapes.indicatorLabelPoint = indicatorLabelPoint;\n    this._firstShowIndicator = true;\n  };\n\n  ContinuousView.prototype._dragHandle = function (handleIndex, isEnd, dx, dy) {\n    if (!this._useHandle) {\n      return;\n    }\n\n    this._dragging = !isEnd;\n\n    if (!isEnd) {\n      var vertex = this._applyTransform([dx, dy], this._shapes.mainGroup, true);\n\n      this._updateInterval(handleIndex, vertex[1]);\n\n      this._hideIndicator();\n\n      this._updateView();\n    }\n\n    if (isEnd === !this.visualMapModel.get('realtime')) {\n      this.api.dispatchAction({\n        type: 'selectDataRange',\n        from: this.uid,\n        visualMapId: this.visualMapModel.id,\n        selected: this._dataInterval.slice()\n      });\n    }\n\n    if (isEnd) {\n      !this._hovering && this._clearHoverLinkToSeries();\n    } else if (useHoverLinkOnHandle(this.visualMapModel)) {\n      this._doHoverLinkToSeries(this._handleEnds[handleIndex], false);\n    }\n  };\n\n  ContinuousView.prototype._resetInterval = function () {\n    var visualMapModel = this.visualMapModel;\n    var dataInterval = this._dataInterval = visualMapModel.getSelected();\n    var dataExtent = visualMapModel.getExtent();\n    var sizeExtent = [0, visualMapModel.itemSize[1]];\n    this._handleEnds = [linearMap(dataInterval[0], dataExtent, sizeExtent, true), linearMap(dataInterval[1], dataExtent, sizeExtent, true)];\n  };\n\n  ContinuousView.prototype._updateInterval = function (handleIndex, delta) {\n    delta = delta || 0;\n    var visualMapModel = this.visualMapModel;\n    var handleEnds = this._handleEnds;\n    var sizeExtent = [0, visualMapModel.itemSize[1]];\n    sliderMove(delta, handleEnds, sizeExtent, handleIndex, 0);\n    var dataExtent = visualMapModel.getExtent();\n    this._dataInterval = [linearMap(handleEnds[0], sizeExtent, dataExtent, true), linearMap(handleEnds[1], sizeExtent, dataExtent, true)];\n  };\n\n  ContinuousView.prototype._updateView = function (forSketch) {\n    var visualMapModel = this.visualMapModel;\n    var dataExtent = visualMapModel.getExtent();\n    var shapes = this._shapes;\n    var outOfRangeHandleEnds = [0, visualMapModel.itemSize[1]];\n    var inRangeHandleEnds = forSketch ? outOfRangeHandleEnds : this._handleEnds;\n\n    var visualInRange = this._createBarVisual(this._dataInterval, dataExtent, inRangeHandleEnds, 'inRange');\n\n    var visualOutOfRange = this._createBarVisual(dataExtent, dataExtent, outOfRangeHandleEnds, 'outOfRange');\n\n    shapes.inRange.setStyle({\n      fill: visualInRange.barColor\n    }).setShape('points', visualInRange.barPoints);\n    shapes.outOfRange.setStyle({\n      fill: visualOutOfRange.barColor\n    }).setShape('points', visualOutOfRange.barPoints);\n\n    this._updateHandle(inRangeHandleEnds, visualInRange);\n  };\n\n  ContinuousView.prototype._createBarVisual = function (dataInterval, dataExtent, handleEnds, forceState) {\n    var opts = {\n      forceState: forceState,\n      convertOpacityToAlpha: true\n    };\n\n    var colorStops = this._makeColorGradient(dataInterval, opts);\n\n    var symbolSizes = [this.getControllerVisual(dataInterval[0], 'symbolSize', opts), this.getControllerVisual(dataInterval[1], 'symbolSize', opts)];\n\n    var barPoints = this._createBarPoints(handleEnds, symbolSizes);\n\n    return {\n      barColor: new LinearGradient(0, 0, 0, 1, colorStops),\n      barPoints: barPoints,\n      handlesColor: [colorStops[0].color, colorStops[colorStops.length - 1].color]\n    };\n  };\n\n  ContinuousView.prototype._makeColorGradient = function (dataInterval, opts) {\n    var sampleNumber = 100;\n    var colorStops = [];\n    var step = (dataInterval[1] - dataInterval[0]) / sampleNumber;\n    colorStops.push({\n      color: this.getControllerVisual(dataInterval[0], 'color', opts),\n      offset: 0\n    });\n\n    for (var i = 1; i < sampleNumber; i++) {\n      var currValue = dataInterval[0] + step * i;\n\n      if (currValue > dataInterval[1]) {\n        break;\n      }\n\n      colorStops.push({\n        color: this.getControllerVisual(currValue, 'color', opts),\n        offset: i / sampleNumber\n      });\n    }\n\n    colorStops.push({\n      color: this.getControllerVisual(dataInterval[1], 'color', opts),\n      offset: 1\n    });\n    return colorStops;\n  };\n\n  ContinuousView.prototype._createBarPoints = function (handleEnds, symbolSizes) {\n    var itemSize = this.visualMapModel.itemSize;\n    return [[itemSize[0] - symbolSizes[0], handleEnds[0]], [itemSize[0], handleEnds[0]], [itemSize[0], handleEnds[1]], [itemSize[0] - symbolSizes[1], handleEnds[1]]];\n  };\n\n  ContinuousView.prototype._createBarGroup = function (itemAlign) {\n    var orient = this._orient;\n    var inverse = this.visualMapModel.get('inverse');\n    return new graphic.Group(orient === 'horizontal' && !inverse ? {\n      scaleX: itemAlign === 'bottom' ? 1 : -1,\n      rotation: Math.PI / 2\n    } : orient === 'horizontal' && inverse ? {\n      scaleX: itemAlign === 'bottom' ? -1 : 1,\n      rotation: -Math.PI / 2\n    } : orient === 'vertical' && !inverse ? {\n      scaleX: itemAlign === 'left' ? 1 : -1,\n      scaleY: -1\n    } : {\n      scaleX: itemAlign === 'left' ? 1 : -1\n    });\n  };\n\n  ContinuousView.prototype._updateHandle = function (handleEnds, visualInRange) {\n    if (!this._useHandle) {\n      return;\n    }\n\n    var shapes = this._shapes;\n    var visualMapModel = this.visualMapModel;\n    var handleThumbs = shapes.handleThumbs;\n    var handleLabels = shapes.handleLabels;\n    var itemSize = visualMapModel.itemSize;\n    var dataExtent = visualMapModel.getExtent();\n    each([0, 1], function (handleIndex) {\n      var handleThumb = handleThumbs[handleIndex];\n      handleThumb.setStyle('fill', visualInRange.handlesColor[handleIndex]);\n      handleThumb.y = handleEnds[handleIndex];\n      var val = linearMap(handleEnds[handleIndex], [0, itemSize[1]], dataExtent, true);\n      var symbolSize = this.getControllerVisual(val, 'symbolSize');\n      handleThumb.scaleX = handleThumb.scaleY = symbolSize / itemSize[0];\n      handleThumb.x = itemSize[0] - symbolSize / 2;\n      var textPoint = graphic.applyTransform(shapes.handleLabelPoints[handleIndex], graphic.getTransform(handleThumb, this.group));\n      handleLabels[handleIndex].setStyle({\n        x: textPoint[0],\n        y: textPoint[1],\n        text: visualMapModel.formatValueText(this._dataInterval[handleIndex]),\n        verticalAlign: 'middle',\n        align: this._orient === 'vertical' ? this._applyTransform('left', shapes.mainGroup) : 'center'\n      });\n    }, this);\n  };\n\n  ContinuousView.prototype._showIndicator = function (cursorValue, textValue, rangeSymbol, halfHoverLinkSize) {\n    var visualMapModel = this.visualMapModel;\n    var dataExtent = visualMapModel.getExtent();\n    var itemSize = visualMapModel.itemSize;\n    var sizeExtent = [0, itemSize[1]];\n    var shapes = this._shapes;\n    var indicator = shapes.indicator;\n\n    if (!indicator) {\n      return;\n    }\n\n    indicator.attr('invisible', false);\n    var opts = {\n      convertOpacityToAlpha: true\n    };\n    var color = this.getControllerVisual(cursorValue, 'color', opts);\n    var symbolSize = this.getControllerVisual(cursorValue, 'symbolSize');\n    var y = linearMap(cursorValue, dataExtent, sizeExtent, true);\n    var x = itemSize[0] - symbolSize / 2;\n    var oldIndicatorPos = {\n      x: indicator.x,\n      y: indicator.y\n    };\n    indicator.y = y;\n    indicator.x = x;\n    var textPoint = graphic.applyTransform(shapes.indicatorLabelPoint, graphic.getTransform(indicator, this.group));\n    var indicatorLabel = shapes.indicatorLabel;\n    indicatorLabel.attr('invisible', false);\n\n    var align = this._applyTransform('left', shapes.mainGroup);\n\n    var orient = this._orient;\n    var isHorizontal = orient === 'horizontal';\n    indicatorLabel.setStyle({\n      text: (rangeSymbol ? rangeSymbol : '') + visualMapModel.formatValueText(textValue),\n      verticalAlign: isHorizontal ? align : 'middle',\n      align: isHorizontal ? 'center' : align\n    });\n    var indicatorNewProps = {\n      x: x,\n      y: y,\n      style: {\n        fill: color\n      }\n    };\n    var labelNewProps = {\n      style: {\n        x: textPoint[0],\n        y: textPoint[1]\n      }\n    };\n\n    if (visualMapModel.ecModel.isAnimationEnabled() && !this._firstShowIndicator) {\n      var animationCfg = {\n        duration: 100,\n        easing: 'cubicInOut',\n        additive: true\n      };\n      indicator.x = oldIndicatorPos.x;\n      indicator.y = oldIndicatorPos.y;\n      indicator.animateTo(indicatorNewProps, animationCfg);\n      indicatorLabel.animateTo(labelNewProps, animationCfg);\n    } else {\n      indicator.attr(indicatorNewProps);\n      indicatorLabel.attr(labelNewProps);\n    }\n\n    this._firstShowIndicator = false;\n    var handleLabels = this._shapes.handleLabels;\n\n    if (handleLabels) {\n      for (var i = 0; i < handleLabels.length; i++) {\n        this._api.enterBlur(handleLabels[i]);\n      }\n    }\n  };\n\n  ContinuousView.prototype._enableHoverLinkToSeries = function () {\n    var self = this;\n\n    this._shapes.mainGroup.on('mousemove', function (e) {\n      self._hovering = true;\n\n      if (!self._dragging) {\n        var itemSize = self.visualMapModel.itemSize;\n\n        var pos = self._applyTransform([e.offsetX, e.offsetY], self._shapes.mainGroup, true, true);\n\n        pos[1] = mathMin(mathMax(0, pos[1]), itemSize[1]);\n\n        self._doHoverLinkToSeries(pos[1], 0 <= pos[0] && pos[0] <= itemSize[0]);\n      }\n    }).on('mouseout', function () {\n      self._hovering = false;\n      !self._dragging && self._clearHoverLinkToSeries();\n    });\n  };\n\n  ContinuousView.prototype._enableHoverLinkFromSeries = function () {\n    var zr = this.api.getZr();\n\n    if (this.visualMapModel.option.hoverLink) {\n      zr.on('mouseover', this._hoverLinkFromSeriesMouseOver, this);\n      zr.on('mouseout', this._hideIndicator, this);\n    } else {\n      this._clearHoverLinkFromSeries();\n    }\n  };\n\n  ContinuousView.prototype._doHoverLinkToSeries = function (cursorPos, hoverOnBar) {\n    var visualMapModel = this.visualMapModel;\n    var itemSize = visualMapModel.itemSize;\n\n    if (!visualMapModel.option.hoverLink) {\n      return;\n    }\n\n    var sizeExtent = [0, itemSize[1]];\n    var dataExtent = visualMapModel.getExtent();\n    cursorPos = mathMin(mathMax(sizeExtent[0], cursorPos), sizeExtent[1]);\n    var halfHoverLinkSize = getHalfHoverLinkSize(visualMapModel, dataExtent, sizeExtent);\n    var hoverRange = [cursorPos - halfHoverLinkSize, cursorPos + halfHoverLinkSize];\n    var cursorValue = linearMap(cursorPos, sizeExtent, dataExtent, true);\n    var valueRange = [linearMap(hoverRange[0], sizeExtent, dataExtent, true), linearMap(hoverRange[1], sizeExtent, dataExtent, true)];\n    hoverRange[0] < sizeExtent[0] && (valueRange[0] = -Infinity);\n    hoverRange[1] > sizeExtent[1] && (valueRange[1] = Infinity);\n\n    if (hoverOnBar) {\n      if (valueRange[0] === -Infinity) {\n        this._showIndicator(cursorValue, valueRange[1], '< ', halfHoverLinkSize);\n      } else if (valueRange[1] === Infinity) {\n        this._showIndicator(cursorValue, valueRange[0], '> ', halfHoverLinkSize);\n      } else {\n        this._showIndicator(cursorValue, cursorValue, '≈ ', halfHoverLinkSize);\n      }\n    }\n\n    var oldBatch = this._hoverLinkDataIndices;\n    var newBatch = [];\n\n    if (hoverOnBar || useHoverLinkOnHandle(visualMapModel)) {\n      newBatch = this._hoverLinkDataIndices = visualMapModel.findTargetDataIndices(valueRange);\n    }\n\n    var resultBatches = modelUtil.compressBatches(oldBatch, newBatch);\n\n    this._dispatchHighDown('downplay', helper.makeHighDownBatch(resultBatches[0], visualMapModel));\n\n    this._dispatchHighDown('highlight', helper.makeHighDownBatch(resultBatches[1], visualMapModel));\n  };\n\n  ContinuousView.prototype._hoverLinkFromSeriesMouseOver = function (e) {\n    var el = e.target;\n    var visualMapModel = this.visualMapModel;\n\n    if (!el || getECData(el).dataIndex == null) {\n      return;\n    }\n\n    var ecData = getECData(el);\n    var dataModel = this.ecModel.getSeriesByIndex(ecData.seriesIndex);\n\n    if (!visualMapModel.isTargetSeries(dataModel)) {\n      return;\n    }\n\n    var data = dataModel.getData(ecData.dataType);\n    var value = data.get(visualMapModel.getDataDimension(data), ecData.dataIndex);\n\n    if (!isNaN(value)) {\n      this._showIndicator(value, value);\n    }\n  };\n\n  ContinuousView.prototype._hideIndicator = function () {\n    var shapes = this._shapes;\n    shapes.indicator && shapes.indicator.attr('invisible', true);\n    shapes.indicatorLabel && shapes.indicatorLabel.attr('invisible', true);\n    var handleLabels = this._shapes.handleLabels;\n\n    if (handleLabels) {\n      for (var i = 0; i < handleLabels.length; i++) {\n        this._api.leaveBlur(handleLabels[i]);\n      }\n    }\n  };\n\n  ContinuousView.prototype._clearHoverLinkToSeries = function () {\n    this._hideIndicator();\n\n    var indices = this._hoverLinkDataIndices;\n\n    this._dispatchHighDown('downplay', helper.makeHighDownBatch(indices, this.visualMapModel));\n\n    indices.length = 0;\n  };\n\n  ContinuousView.prototype._clearHoverLinkFromSeries = function () {\n    this._hideIndicator();\n\n    var zr = this.api.getZr();\n    zr.off('mouseover', this._hoverLinkFromSeriesMouseOver);\n    zr.off('mouseout', this._hideIndicator);\n  };\n\n  ContinuousView.prototype._applyTransform = function (vertex, element, inverse, global) {\n    var transform = graphic.getTransform(element, global ? null : this.group);\n    return zrUtil.isArray(vertex) ? graphic.applyTransform(vertex, transform, inverse) : graphic.transformDirection(vertex, transform, inverse);\n  };\n\n  ContinuousView.prototype._dispatchHighDown = function (type, batch) {\n    batch && batch.length && this.api.dispatchAction({\n      type: type,\n      batch: batch\n    });\n  };\n\n  ContinuousView.prototype.dispose = function () {\n    this._clearHoverLinkFromSeries();\n\n    this._clearHoverLinkToSeries();\n  };\n\n  ContinuousView.prototype.remove = function () {\n    this._clearHoverLinkFromSeries();\n\n    this._clearHoverLinkToSeries();\n  };\n\n  ContinuousView.type = 'visualMap.continuous';\n  return ContinuousView;\n}(VisualMapView);\n\nfunction createPolygon(points, cursor, onDrift, onDragEnd) {\n  return new graphic.Polygon({\n    shape: {\n      points: points\n    },\n    draggable: !!onDrift,\n    cursor: cursor,\n    drift: onDrift,\n    onmousemove: function (e) {\n      eventTool.stop(e.event);\n    },\n    ondragend: onDragEnd\n  });\n}\n\nfunction getHalfHoverLinkSize(visualMapModel, dataExtent, sizeExtent) {\n  var halfHoverLinkSize = HOVER_LINK_SIZE / 2;\n  var hoverLinkDataSize = visualMapModel.get('hoverLinkDataSize');\n\n  if (hoverLinkDataSize) {\n    halfHoverLinkSize = linearMap(hoverLinkDataSize, dataExtent, sizeExtent, true) / 2;\n  }\n\n  return halfHoverLinkSize;\n}\n\nfunction useHoverLinkOnHandle(visualMapModel) {\n  var hoverLinkOnHandle = visualMapModel.get('hoverLinkOnHandle');\n  return !!(hoverLinkOnHandle == null ? visualMapModel.get('realtime') : hoverLinkOnHandle);\n}\n\nfunction getCursor(orient) {\n  return orient === 'vertical' ? 'ns-resize' : 'ew-resize';\n}\n\nexport default ContinuousView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport var visualMapActionInfo = {\n  type: 'selectDataRange',\n  event: 'dataRangeSelected',\n  update: 'update'\n};\nexport var visualMapActionHander = function (payload, ecModel) {\n  ecModel.eachComponent({\n    mainType: 'visualMap',\n    query: payload\n  }, function (model) {\n    model.setSelected(payload.selected);\n  });\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as visualSolution from '../../visual/visualSolution';\nimport VisualMapping from '../../visual/VisualMapping';\nimport { getVisualFromData } from '../../visual/helper';\nexport var visualMapEncodingHandlers = [{\n  createOnAllSeries: true,\n  reset: function (seriesModel, ecModel) {\n    var resetDefines = [];\n    ecModel.eachComponent('visualMap', function (visualMapModel) {\n      var pipelineContext = seriesModel.pipelineContext;\n\n      if (!visualMapModel.isTargetSeries(seriesModel) || pipelineContext && pipelineContext.large) {\n        return;\n      }\n\n      resetDefines.push(visualSolution.incrementalApplyVisual(visualMapModel.stateList, visualMapModel.targetVisuals, zrUtil.bind(visualMapModel.getValueState, visualMapModel), visualMapModel.getDataDimension(seriesModel.getData())));\n    });\n    return resetDefines;\n  }\n}, {\n  createOnAllSeries: true,\n  reset: function (seriesModel, ecModel) {\n    var data = seriesModel.getData();\n    var visualMetaList = [];\n    ecModel.eachComponent('visualMap', function (visualMapModel) {\n      if (visualMapModel.isTargetSeries(seriesModel)) {\n        var visualMeta = visualMapModel.getVisualMeta(zrUtil.bind(getColorVisual, null, seriesModel, visualMapModel)) || {\n          stops: [],\n          outerColors: []\n        };\n        var concreteDim = visualMapModel.getDataDimension(data);\n        var dimInfo = data.getDimensionInfo(concreteDim);\n\n        if (dimInfo != null) {\n          visualMeta.dimension = dimInfo.index;\n          visualMetaList.push(visualMeta);\n        }\n      }\n    });\n    seriesModel.getData().setVisual('visualMeta', visualMetaList);\n  }\n}];\n\nfunction getColorVisual(seriesModel, visualMapModel, value, valueState) {\n  var mappings = visualMapModel.targetVisuals[valueState];\n  var visualTypes = VisualMapping.prepareVisualTypes(mappings);\n  var resultVisual = {\n    color: getVisualFromData(seriesModel.getData(), 'color')\n  };\n\n  for (var i = 0, len = visualTypes.length; i < len; i++) {\n    var type = visualTypes[i];\n    var mapping = mappings[type === 'opacity' ? '__alphaForOpacity' : type];\n    mapping && mapping.applyVisual(value, getVisual, setVisual);\n  }\n\n  return resultVisual.color;\n\n  function getVisual(key) {\n    return resultVisual[key];\n  }\n\n  function setVisual(key, value) {\n    resultVisual[key] = value;\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar each = zrUtil.each;\nexport default function visualMapPreprocessor(option) {\n  var visualMap = option && option.visualMap;\n\n  if (!zrUtil.isArray(visualMap)) {\n    visualMap = visualMap ? [visualMap] : [];\n  }\n\n  each(visualMap, function (opt) {\n    if (!opt) {\n      return;\n    }\n\n    if (has(opt, 'splitList') && !has(opt, 'pieces')) {\n      opt.pieces = opt.splitList;\n      delete opt.splitList;\n    }\n\n    var pieces = opt.pieces;\n\n    if (pieces && zrUtil.isArray(pieces)) {\n      each(pieces, function (piece) {\n        if (zrUtil.isObject(piece)) {\n          if (has(piece, 'start') && !has(piece, 'min')) {\n            piece.min = piece.start;\n          }\n\n          if (has(piece, 'end') && !has(piece, 'max')) {\n            piece.max = piece.end;\n          }\n        }\n      });\n    }\n  });\n}\n\nfunction has(obj, name) {\n  return obj && obj.hasOwnProperty && obj.hasOwnProperty(name);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { visualMapActionInfo, visualMapActionHander } from './visualMapAction';\nimport { visualMapEncodingHandlers } from './visualEncoding';\nimport { each } from 'zrender/lib/core/util';\nimport preprocessor from './preprocessor';\nvar installed = false;\nexport default function installCommon(registers) {\n  if (installed) {\n    return;\n  }\n\n  installed = true;\n  registers.registerSubTypeDefaulter('visualMap', function (option) {\n    return !option.categories && (!(option.pieces ? option.pieces.length > 0 : option.splitNumber > 0) || option.calculable) ? 'continuous' : 'piecewise';\n  });\n  registers.registerAction(visualMapActionInfo, visualMapActionHander);\n  each(visualMapEncodingHandlers, function (handler) {\n    registers.registerVisual(registers.PRIORITY.VISUAL.COMPONENT, handler);\n  });\n  registers.registerPreprocessor(preprocessor);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ContinuousModel from './ContinuousModel';\nimport ContinuousView from './ContinuousView';\nimport installCommon from './installCommon';\nexport function install(registers) {\n  registers.registerComponentModel(ContinuousModel);\n  registers.registerComponentView(ContinuousView);\n  installCommon(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport VisualMapModel from './VisualMapModel';\nimport VisualMapping from '../../visual/VisualMapping';\nimport visualDefault from '../../visual/visualDefault';\nimport { reformIntervals } from '../../util/number';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar PiecewiseModel = function (_super) {\n  __extends(PiecewiseModel, _super);\n\n  function PiecewiseModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = PiecewiseModel.type;\n    _this._pieceList = [];\n    return _this;\n  }\n\n  PiecewiseModel.prototype.optionUpdated = function (newOption, isInit) {\n    _super.prototype.optionUpdated.apply(this, arguments);\n\n    this.resetExtent();\n\n    var mode = this._mode = this._determineMode();\n\n    this._pieceList = [];\n\n    resetMethods[this._mode].call(this, this._pieceList);\n\n    this._resetSelected(newOption, isInit);\n\n    var categories = this.option.categories;\n    this.resetVisual(function (mappingOption, state) {\n      if (mode === 'categories') {\n        mappingOption.mappingMethod = 'category';\n        mappingOption.categories = zrUtil.clone(categories);\n      } else {\n        mappingOption.dataExtent = this.getExtent();\n        mappingOption.mappingMethod = 'piecewise';\n        mappingOption.pieceList = zrUtil.map(this._pieceList, function (piece) {\n          piece = zrUtil.clone(piece);\n\n          if (state !== 'inRange') {\n            piece.visual = null;\n          }\n\n          return piece;\n        });\n      }\n    });\n  };\n\n  PiecewiseModel.prototype.completeVisualOption = function () {\n    var option = this.option;\n    var visualTypesInPieces = {};\n    var visualTypes = VisualMapping.listVisualTypes();\n    var isCategory = this.isCategory();\n    zrUtil.each(option.pieces, function (piece) {\n      zrUtil.each(visualTypes, function (visualType) {\n        if (piece.hasOwnProperty(visualType)) {\n          visualTypesInPieces[visualType] = 1;\n        }\n      });\n    });\n    zrUtil.each(visualTypesInPieces, function (v, visualType) {\n      var exists = false;\n      zrUtil.each(this.stateList, function (state) {\n        exists = exists || has(option, state, visualType) || has(option.target, state, visualType);\n      }, this);\n      !exists && zrUtil.each(this.stateList, function (state) {\n        (option[state] || (option[state] = {}))[visualType] = visualDefault.get(visualType, state === 'inRange' ? 'active' : 'inactive', isCategory);\n      });\n    }, this);\n\n    function has(obj, state, visualType) {\n      return obj && obj[state] && obj[state].hasOwnProperty(visualType);\n    }\n\n    _super.prototype.completeVisualOption.apply(this, arguments);\n  };\n\n  PiecewiseModel.prototype._resetSelected = function (newOption, isInit) {\n    var thisOption = this.option;\n    var pieceList = this._pieceList;\n    var selected = (isInit ? thisOption : newOption).selected || {};\n    thisOption.selected = selected;\n    zrUtil.each(pieceList, function (piece, index) {\n      var key = this.getSelectedMapKey(piece);\n\n      if (!selected.hasOwnProperty(key)) {\n        selected[key] = true;\n      }\n    }, this);\n\n    if (thisOption.selectedMode === 'single') {\n      var hasSel_1 = false;\n      zrUtil.each(pieceList, function (piece, index) {\n        var key = this.getSelectedMapKey(piece);\n\n        if (selected[key]) {\n          hasSel_1 ? selected[key] = false : hasSel_1 = true;\n        }\n      }, this);\n    }\n  };\n\n  PiecewiseModel.prototype.getSelectedMapKey = function (piece) {\n    return this._mode === 'categories' ? piece.value + '' : piece.index + '';\n  };\n\n  PiecewiseModel.prototype.getPieceList = function () {\n    return this._pieceList;\n  };\n\n  PiecewiseModel.prototype._determineMode = function () {\n    var option = this.option;\n    return option.pieces && option.pieces.length > 0 ? 'pieces' : this.option.categories ? 'categories' : 'splitNumber';\n  };\n\n  PiecewiseModel.prototype.setSelected = function (selected) {\n    this.option.selected = zrUtil.clone(selected);\n  };\n\n  PiecewiseModel.prototype.getValueState = function (value) {\n    var index = VisualMapping.findPieceIndex(value, this._pieceList);\n    return index != null ? this.option.selected[this.getSelectedMapKey(this._pieceList[index])] ? 'inRange' : 'outOfRange' : 'outOfRange';\n  };\n\n  PiecewiseModel.prototype.findTargetDataIndices = function (pieceIndex) {\n    var result = [];\n    var pieceList = this._pieceList;\n    this.eachTargetSeries(function (seriesModel) {\n      var dataIndices = [];\n      var data = seriesModel.getData();\n      data.each(this.getDataDimension(data), function (value, dataIndex) {\n        var pIdx = VisualMapping.findPieceIndex(value, pieceList);\n        pIdx === pieceIndex && dataIndices.push(dataIndex);\n      }, this);\n      result.push({\n        seriesId: seriesModel.id,\n        dataIndex: dataIndices\n      });\n    }, this);\n    return result;\n  };\n\n  PiecewiseModel.prototype.getRepresentValue = function (piece) {\n    var representValue;\n\n    if (this.isCategory()) {\n      representValue = piece.value;\n    } else {\n      if (piece.value != null) {\n        representValue = piece.value;\n      } else {\n        var pieceInterval = piece.interval || [];\n        representValue = pieceInterval[0] === -Infinity && pieceInterval[1] === Infinity ? 0 : (pieceInterval[0] + pieceInterval[1]) / 2;\n      }\n    }\n\n    return representValue;\n  };\n\n  PiecewiseModel.prototype.getVisualMeta = function (getColorVisual) {\n    if (this.isCategory()) {\n      return;\n    }\n\n    var stops = [];\n    var outerColors = ['', ''];\n    var visualMapModel = this;\n\n    function setStop(interval, valueState) {\n      var representValue = visualMapModel.getRepresentValue({\n        interval: interval\n      });\n\n      if (!valueState) {\n        valueState = visualMapModel.getValueState(representValue);\n      }\n\n      var color = getColorVisual(representValue, valueState);\n\n      if (interval[0] === -Infinity) {\n        outerColors[0] = color;\n      } else if (interval[1] === Infinity) {\n        outerColors[1] = color;\n      } else {\n        stops.push({\n          value: interval[0],\n          color: color\n        }, {\n          value: interval[1],\n          color: color\n        });\n      }\n    }\n\n    var pieceList = this._pieceList.slice();\n\n    if (!pieceList.length) {\n      pieceList.push({\n        interval: [-Infinity, Infinity]\n      });\n    } else {\n      var edge = pieceList[0].interval[0];\n      edge !== -Infinity && pieceList.unshift({\n        interval: [-Infinity, edge]\n      });\n      edge = pieceList[pieceList.length - 1].interval[1];\n      edge !== Infinity && pieceList.push({\n        interval: [edge, Infinity]\n      });\n    }\n\n    var curr = -Infinity;\n    zrUtil.each(pieceList, function (piece) {\n      var interval = piece.interval;\n\n      if (interval) {\n        interval[0] > curr && setStop([curr, interval[0]], 'outOfRange');\n        setStop(interval.slice());\n        curr = interval[1];\n      }\n    }, this);\n    return {\n      stops: stops,\n      outerColors: outerColors\n    };\n  };\n\n  PiecewiseModel.type = 'visualMap.piecewise';\n  PiecewiseModel.defaultOption = inheritDefaultOption(VisualMapModel.defaultOption, {\n    selected: null,\n    minOpen: false,\n    maxOpen: false,\n    align: 'auto',\n    itemWidth: 20,\n    itemHeight: 14,\n    itemSymbol: 'roundRect',\n    pieces: null,\n    categories: null,\n    splitNumber: 5,\n    selectedMode: 'multiple',\n    itemGap: 10,\n    hoverLink: true\n  });\n  return PiecewiseModel;\n}(VisualMapModel);\n\n;\nvar resetMethods = {\n  splitNumber: function (outPieceList) {\n    var thisOption = this.option;\n    var precision = Math.min(thisOption.precision, 20);\n    var dataExtent = this.getExtent();\n    var splitNumber = thisOption.splitNumber;\n    splitNumber = Math.max(parseInt(splitNumber, 10), 1);\n    thisOption.splitNumber = splitNumber;\n    var splitStep = (dataExtent[1] - dataExtent[0]) / splitNumber;\n\n    while (+splitStep.toFixed(precision) !== splitStep && precision < 5) {\n      precision++;\n    }\n\n    thisOption.precision = precision;\n    splitStep = +splitStep.toFixed(precision);\n\n    if (thisOption.minOpen) {\n      outPieceList.push({\n        interval: [-Infinity, dataExtent[0]],\n        close: [0, 0]\n      });\n    }\n\n    for (var index = 0, curr = dataExtent[0]; index < splitNumber; curr += splitStep, index++) {\n      var max = index === splitNumber - 1 ? dataExtent[1] : curr + splitStep;\n      outPieceList.push({\n        interval: [curr, max],\n        close: [1, 1]\n      });\n    }\n\n    if (thisOption.maxOpen) {\n      outPieceList.push({\n        interval: [dataExtent[1], Infinity],\n        close: [0, 0]\n      });\n    }\n\n    reformIntervals(outPieceList);\n    zrUtil.each(outPieceList, function (piece, index) {\n      piece.index = index;\n      piece.text = this.formatValueText(piece.interval);\n    }, this);\n  },\n  categories: function (outPieceList) {\n    var thisOption = this.option;\n    zrUtil.each(thisOption.categories, function (cate) {\n      outPieceList.push({\n        text: this.formatValueText(cate, true),\n        value: cate\n      });\n    }, this);\n    normalizeReverse(thisOption, outPieceList);\n  },\n  pieces: function (outPieceList) {\n    var thisOption = this.option;\n    zrUtil.each(thisOption.pieces, function (pieceListItem, index) {\n      if (!zrUtil.isObject(pieceListItem)) {\n        pieceListItem = {\n          value: pieceListItem\n        };\n      }\n\n      var item = {\n        text: '',\n        index: index\n      };\n\n      if (pieceListItem.label != null) {\n        item.text = pieceListItem.label;\n      }\n\n      if (pieceListItem.hasOwnProperty('value')) {\n        var value = item.value = pieceListItem.value;\n        item.interval = [value, value];\n        item.close = [1, 1];\n      } else {\n        var interval = item.interval = [];\n        var close_1 = item.close = [0, 0];\n        var closeList = [1, 0, 1];\n        var infinityList = [-Infinity, Infinity];\n        var useMinMax = [];\n\n        for (var lg = 0; lg < 2; lg++) {\n          var names = [['gte', 'gt', 'min'], ['lte', 'lt', 'max']][lg];\n\n          for (var i = 0; i < 3 && interval[lg] == null; i++) {\n            interval[lg] = pieceListItem[names[i]];\n            close_1[lg] = closeList[i];\n            useMinMax[lg] = i === 2;\n          }\n\n          interval[lg] == null && (interval[lg] = infinityList[lg]);\n        }\n\n        useMinMax[0] && interval[1] === Infinity && (close_1[0] = 0);\n        useMinMax[1] && interval[0] === -Infinity && (close_1[1] = 0);\n\n        if (process.env.NODE_ENV !== 'production') {\n          if (interval[0] > interval[1]) {\n            console.warn('Piece ' + index + 'is illegal: ' + interval + ' lower bound should not greater then uppper bound.');\n          }\n        }\n\n        if (interval[0] === interval[1] && close_1[0] && close_1[1]) {\n          item.value = interval[0];\n        }\n      }\n\n      item.visual = VisualMapping.retrieveVisuals(pieceListItem);\n      outPieceList.push(item);\n    }, this);\n    normalizeReverse(thisOption, outPieceList);\n    reformIntervals(outPieceList);\n    zrUtil.each(outPieceList, function (piece) {\n      var close = piece.close;\n      var edgeSymbols = [['<', '≤'][close[1]], ['>', '≥'][close[0]]];\n      piece.text = piece.text || this.formatValueText(piece.value != null ? piece.value : piece.interval, false, edgeSymbols);\n    }, this);\n  }\n};\n\nfunction normalizeReverse(thisOption, pieceList) {\n  var inverse = thisOption.inverse;\n\n  if (thisOption.orient === 'vertical' ? !inverse : inverse) {\n    pieceList.reverse();\n  }\n}\n\nexport default PiecewiseModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport VisualMapView from './VisualMapView';\nimport * as graphic from '../../util/graphic';\nimport { createSymbol } from '../../util/symbol';\nimport * as layout from '../../util/layout';\nimport * as helper from './helper';\n\nvar PiecewiseVisualMapView = function (_super) {\n  __extends(PiecewiseVisualMapView, _super);\n\n  function PiecewiseVisualMapView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = PiecewiseVisualMapView.type;\n    return _this;\n  }\n\n  PiecewiseVisualMapView.prototype.doRender = function () {\n    var thisGroup = this.group;\n    thisGroup.removeAll();\n    var visualMapModel = this.visualMapModel;\n    var textGap = visualMapModel.get('textGap');\n    var textStyleModel = visualMapModel.textStyleModel;\n    var textFont = textStyleModel.getFont();\n    var textFill = textStyleModel.getTextColor();\n\n    var itemAlign = this._getItemAlign();\n\n    var itemSize = visualMapModel.itemSize;\n\n    var viewData = this._getViewData();\n\n    var endsText = viewData.endsText;\n    var showLabel = zrUtil.retrieve(visualMapModel.get('showLabel', true), !endsText);\n    endsText && this._renderEndsText(thisGroup, endsText[0], itemSize, showLabel, itemAlign);\n    zrUtil.each(viewData.viewPieceList, function (item) {\n      var piece = item.piece;\n      var itemGroup = new graphic.Group();\n      itemGroup.onclick = zrUtil.bind(this._onItemClick, this, piece);\n\n      this._enableHoverLink(itemGroup, item.indexInModelPieceList);\n\n      var representValue = visualMapModel.getRepresentValue(piece);\n\n      this._createItemSymbol(itemGroup, representValue, [0, 0, itemSize[0], itemSize[1]]);\n\n      if (showLabel) {\n        var visualState = this.visualMapModel.getValueState(representValue);\n        itemGroup.add(new graphic.Text({\n          style: {\n            x: itemAlign === 'right' ? -textGap : itemSize[0] + textGap,\n            y: itemSize[1] / 2,\n            text: piece.text,\n            verticalAlign: 'middle',\n            align: itemAlign,\n            font: textFont,\n            fill: textFill,\n            opacity: visualState === 'outOfRange' ? 0.5 : 1\n          }\n        }));\n      }\n\n      thisGroup.add(itemGroup);\n    }, this);\n    endsText && this._renderEndsText(thisGroup, endsText[1], itemSize, showLabel, itemAlign);\n    layout.box(visualMapModel.get('orient'), thisGroup, visualMapModel.get('itemGap'));\n    this.renderBackground(thisGroup);\n    this.positionGroup(thisGroup);\n  };\n\n  PiecewiseVisualMapView.prototype._enableHoverLink = function (itemGroup, pieceIndex) {\n    var _this = this;\n\n    itemGroup.on('mouseover', function () {\n      return onHoverLink('highlight');\n    }).on('mouseout', function () {\n      return onHoverLink('downplay');\n    });\n\n    var onHoverLink = function (method) {\n      var visualMapModel = _this.visualMapModel;\n      visualMapModel.option.hoverLink && _this.api.dispatchAction({\n        type: method,\n        batch: helper.makeHighDownBatch(visualMapModel.findTargetDataIndices(pieceIndex), visualMapModel)\n      });\n    };\n  };\n\n  PiecewiseVisualMapView.prototype._getItemAlign = function () {\n    var visualMapModel = this.visualMapModel;\n    var modelOption = visualMapModel.option;\n\n    if (modelOption.orient === 'vertical') {\n      return helper.getItemAlign(visualMapModel, this.api, visualMapModel.itemSize);\n    } else {\n      var align = modelOption.align;\n\n      if (!align || align === 'auto') {\n        align = 'left';\n      }\n\n      return align;\n    }\n  };\n\n  PiecewiseVisualMapView.prototype._renderEndsText = function (group, text, itemSize, showLabel, itemAlign) {\n    if (!text) {\n      return;\n    }\n\n    var itemGroup = new graphic.Group();\n    var textStyleModel = this.visualMapModel.textStyleModel;\n    itemGroup.add(new graphic.Text({\n      style: {\n        x: showLabel ? itemAlign === 'right' ? itemSize[0] : 0 : itemSize[0] / 2,\n        y: itemSize[1] / 2,\n        verticalAlign: 'middle',\n        align: showLabel ? itemAlign : 'center',\n        text: text,\n        font: textStyleModel.getFont(),\n        fill: textStyleModel.getTextColor()\n      }\n    }));\n    group.add(itemGroup);\n  };\n\n  PiecewiseVisualMapView.prototype._getViewData = function () {\n    var visualMapModel = this.visualMapModel;\n    var viewPieceList = zrUtil.map(visualMapModel.getPieceList(), function (piece, index) {\n      return {\n        piece: piece,\n        indexInModelPieceList: index\n      };\n    });\n    var endsText = visualMapModel.get('text');\n    var orient = visualMapModel.get('orient');\n    var inverse = visualMapModel.get('inverse');\n\n    if (orient === 'horizontal' ? inverse : !inverse) {\n      viewPieceList.reverse();\n    } else if (endsText) {\n      endsText = endsText.slice().reverse();\n    }\n\n    return {\n      viewPieceList: viewPieceList,\n      endsText: endsText\n    };\n  };\n\n  PiecewiseVisualMapView.prototype._createItemSymbol = function (group, representValue, shapeParam) {\n    group.add(createSymbol(this.getControllerVisual(representValue, 'symbol'), shapeParam[0], shapeParam[1], shapeParam[2], shapeParam[3], this.getControllerVisual(representValue, 'color')));\n  };\n\n  PiecewiseVisualMapView.prototype._onItemClick = function (piece) {\n    var visualMapModel = this.visualMapModel;\n    var option = visualMapModel.option;\n    var selected = zrUtil.clone(option.selected);\n    var newKey = visualMapModel.getSelectedMapKey(piece);\n\n    if (option.selectedMode === 'single') {\n      selected[newKey] = true;\n      zrUtil.each(selected, function (o, key) {\n        selected[key] = key === newKey;\n      });\n    } else {\n      selected[newKey] = !selected[newKey];\n    }\n\n    this.api.dispatchAction({\n      type: 'selectDataRange',\n      from: this.uid,\n      visualMapId: this.visualMapModel.id,\n      selected: selected\n    });\n  };\n\n  PiecewiseVisualMapView.type = 'visualMap.piecewise';\n  return PiecewiseVisualMapView;\n}(VisualMapView);\n\nexport default PiecewiseVisualMapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport PiecewiseModel from './PiecewiseModel';\nimport PiecewiseView from './PiecewiseView';\nimport installCommon from './installCommon';\nexport function install(registers) {\n  registers.registerComponentModel(PiecewiseModel);\n  registers.registerComponentView(PiecewiseView);\n  installCommon(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport { install as installVisualMapContinuous } from './installVisualMapContinuous';\nimport { install as installVisualMapPiecewise } from './installVisualMapPiecewise';\nexport function install(registers) {\n  use(installVisualMapContinuous);\n  use(installVisualMapPiecewise);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { retrieveRawValue } from '../data/helper/dataProvider';\nimport { makeInner } from '../util/model';\nimport { getDecalFromPalette } from '../model/mixin/palette';\nvar DEFAULT_OPTION = {\n  label: {\n    enabled: true\n  },\n  decal: {\n    show: false\n  }\n};\nvar inner = makeInner();\nvar decalPaletteScope = {};\nexport default function ariaVisual(ecModel, api) {\n  var ariaModel = ecModel.getModel('aria');\n\n  if (!ariaModel.get('enabled')) {\n    return;\n  }\n\n  var defaultOption = zrUtil.clone(DEFAULT_OPTION);\n  zrUtil.merge(defaultOption.label, ecModel.getLocaleModel().get('aria'), false);\n  zrUtil.merge(ariaModel.option, defaultOption, false);\n  setDecal();\n  setLabel();\n\n  function setDecal() {\n    var decalModel = ariaModel.getModel('decal');\n    var useDecal = decalModel.get('show');\n\n    if (useDecal) {\n      var paletteScopeGroupByType_1 = zrUtil.createHashMap();\n      ecModel.eachSeries(function (seriesModel) {\n        if (!seriesModel.useColorPaletteOnData) {\n          return;\n        }\n\n        var decalScope = paletteScopeGroupByType_1.get(seriesModel.type);\n\n        if (!decalScope) {\n          decalScope = {};\n          paletteScopeGroupByType_1.set(seriesModel.type, decalScope);\n        }\n\n        inner(seriesModel).scope = decalScope;\n      });\n      ecModel.eachRawSeries(function (seriesModel) {\n        if (ecModel.isSeriesFiltered(seriesModel)) {\n          return;\n        }\n\n        if (typeof seriesModel.enableAriaDecal === 'function') {\n          seriesModel.enableAriaDecal();\n          return;\n        }\n\n        var data = seriesModel.getData();\n\n        if (seriesModel.useColorPaletteOnData) {\n          var dataAll_1 = seriesModel.getRawData();\n          var idxMap_1 = {};\n          var decalScope_1 = inner(seriesModel).scope;\n          data.each(function (idx) {\n            var rawIdx = data.getRawIndex(idx);\n            idxMap_1[rawIdx] = idx;\n          });\n          var dataCount_1 = dataAll_1.count();\n          dataAll_1.each(function (rawIdx) {\n            var idx = idxMap_1[rawIdx];\n            var name = dataAll_1.getName(rawIdx) || rawIdx + '';\n            var paletteDecal = getDecalFromPalette(seriesModel.ecModel, name, decalScope_1, dataCount_1);\n            var specifiedDecal = data.getItemVisual(idx, 'decal');\n            data.setItemVisual(idx, 'decal', mergeDecal(specifiedDecal, paletteDecal));\n          });\n        } else {\n          var paletteDecal = getDecalFromPalette(seriesModel.ecModel, seriesModel.name, decalPaletteScope, ecModel.getSeriesCount());\n          var specifiedDecal = data.getVisual('decal');\n          data.setVisual('decal', mergeDecal(specifiedDecal, paletteDecal));\n        }\n\n        function mergeDecal(specifiedDecal, paletteDecal) {\n          var resultDecal = specifiedDecal ? zrUtil.extend(zrUtil.extend({}, paletteDecal), specifiedDecal) : paletteDecal;\n          resultDecal.dirty = true;\n          return resultDecal;\n        }\n      });\n    }\n  }\n\n  function setLabel() {\n    var labelLocale = ecModel.getLocaleModel().get('aria');\n    var labelModel = ariaModel.getModel('label');\n    labelModel.option = zrUtil.defaults(labelModel.option, labelLocale);\n\n    if (!labelModel.get('enabled')) {\n      return;\n    }\n\n    var dom = api.getZr().dom;\n\n    if (labelModel.get('description')) {\n      dom.setAttribute('aria-label', labelModel.get('description'));\n      return;\n    }\n\n    var seriesCnt = ecModel.getSeriesCount();\n    var maxDataCnt = labelModel.get(['data', 'maxCount']) || 10;\n    var maxSeriesCnt = labelModel.get(['series', 'maxCount']) || 10;\n    var displaySeriesCnt = Math.min(seriesCnt, maxSeriesCnt);\n    var ariaLabel;\n\n    if (seriesCnt < 1) {\n      return;\n    } else {\n      var title = getTitle();\n\n      if (title) {\n        var withTitle = labelModel.get(['general', 'withTitle']);\n        ariaLabel = replace(withTitle, {\n          title: title\n        });\n      } else {\n        ariaLabel = labelModel.get(['general', 'withoutTitle']);\n      }\n\n      var seriesLabels_1 = [];\n      var prefix = seriesCnt > 1 ? labelModel.get(['series', 'multiple', 'prefix']) : labelModel.get(['series', 'single', 'prefix']);\n      ariaLabel += replace(prefix, {\n        seriesCount: seriesCnt\n      });\n      ecModel.eachSeries(function (seriesModel, idx) {\n        if (idx < displaySeriesCnt) {\n          var seriesLabel = void 0;\n          var seriesName = seriesModel.get('name');\n          var withName = seriesName ? 'withName' : 'withoutName';\n          seriesLabel = seriesCnt > 1 ? labelModel.get(['series', 'multiple', withName]) : labelModel.get(['series', 'single', withName]);\n          seriesLabel = replace(seriesLabel, {\n            seriesId: seriesModel.seriesIndex,\n            seriesName: seriesModel.get('name'),\n            seriesType: getSeriesTypeName(seriesModel.subType)\n          });\n          var data = seriesModel.getData();\n\n          if (data.count() > maxDataCnt) {\n            var partialLabel = labelModel.get(['data', 'partialData']);\n            seriesLabel += replace(partialLabel, {\n              displayCnt: maxDataCnt\n            });\n          } else {\n            seriesLabel += labelModel.get(['data', 'allData']);\n          }\n\n          var dataLabels = [];\n\n          for (var i = 0; i < data.count(); i++) {\n            if (i < maxDataCnt) {\n              var name_1 = data.getName(i);\n              var value = retrieveRawValue(data, i);\n              var dataLabel = labelModel.get(['data', name_1 ? 'withName' : 'withoutName']);\n              dataLabels.push(replace(dataLabel, {\n                name: name_1,\n                value: value\n              }));\n            }\n          }\n\n          var middleSeparator_1 = labelModel.get(['data', 'separator', 'middle']);\n          var endSeparator_1 = labelModel.get(['data', 'separator', 'end']);\n          seriesLabel += dataLabels.join(middleSeparator_1) + endSeparator_1;\n          seriesLabels_1.push(seriesLabel);\n        }\n      });\n      var separatorModel = labelModel.getModel(['series', 'multiple', 'separator']);\n      var middleSeparator = separatorModel.get('middle');\n      var endSeparator = separatorModel.get('end');\n      ariaLabel += seriesLabels_1.join(middleSeparator) + endSeparator;\n      dom.setAttribute('aria-label', ariaLabel);\n    }\n  }\n\n  function replace(str, keyValues) {\n    if (typeof str !== 'string') {\n      return str;\n    }\n\n    var result = str;\n    zrUtil.each(keyValues, function (value, key) {\n      result = result.replace(new RegExp('\\\\{\\\\s*' + key + '\\\\s*\\\\}', 'g'), value);\n    });\n    return result;\n  }\n\n  function getTitle() {\n    var title = ecModel.get('title');\n\n    if (title && title.length) {\n      title = title[0];\n    }\n\n    return title && title.text;\n  }\n\n  function getSeriesTypeName(type) {\n    return ecModel.getLocaleModel().get(['series', 'typeNames'])[type] || '自定义图';\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function ariaPreprocessor(option) {\n  if (!option || !option.aria) {\n    return;\n  }\n\n  var aria = option.aria;\n\n  if (aria.show != null) {\n    aria.enabled = aria.show;\n  }\n\n  aria.label = aria.label || {};\n  zrUtil.each(['description', 'general', 'series', 'data'], function (name) {\n    if (aria[name] != null) {\n      aria.label[name] = aria[name];\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ariaVisual from '../../visual/aria';\nimport ariaPreprocessor from './preprocessor';\nexport function install(registers) {\n  registers.registerPreprocessor(ariaPreprocessor);\n  registers.registerVisual(registers.PRIORITY.VISUAL.ARIA, ariaVisual);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { keys, isArray, map, isObject, isString, isRegExp, isArrayLike, hasOwn } from 'zrender/lib/core/util';\nimport { throwError, makePrintable } from './log';\nimport { getRawValueParser, createFilterComparator } from '../data/helper/dataValueHelper';\n;\nvar RELATIONAL_EXPRESSION_OP_ALIAS_MAP = {\n  value: 'eq',\n  '<': 'lt',\n  '<=': 'lte',\n  '>': 'gt',\n  '>=': 'gte',\n  '=': 'eq',\n  '!=': 'ne',\n  '<>': 'ne'\n};\n\nvar RegExpEvaluator = function () {\n  function RegExpEvaluator(rVal) {\n    var condValue = this._condVal = isString(rVal) ? new RegExp(rVal) : isRegExp(rVal) ? rVal : null;\n\n    if (condValue == null) {\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = makePrintable('Illegal regexp', rVal, 'in');\n      }\n\n      throwError(errMsg);\n    }\n  }\n\n  RegExpEvaluator.prototype.evaluate = function (lVal) {\n    var type = typeof lVal;\n    return type === 'string' ? this._condVal.test(lVal) : type === 'number' ? this._condVal.test(lVal + '') : false;\n  };\n\n  return RegExpEvaluator;\n}();\n\nvar ConstConditionInternal = function () {\n  function ConstConditionInternal() {}\n\n  ConstConditionInternal.prototype.evaluate = function () {\n    return this.value;\n  };\n\n  return ConstConditionInternal;\n}();\n\nvar AndConditionInternal = function () {\n  function AndConditionInternal() {}\n\n  AndConditionInternal.prototype.evaluate = function () {\n    var children = this.children;\n\n    for (var i = 0; i < children.length; i++) {\n      if (!children[i].evaluate()) {\n        return false;\n      }\n    }\n\n    return true;\n  };\n\n  return AndConditionInternal;\n}();\n\nvar OrConditionInternal = function () {\n  function OrConditionInternal() {}\n\n  OrConditionInternal.prototype.evaluate = function () {\n    var children = this.children;\n\n    for (var i = 0; i < children.length; i++) {\n      if (children[i].evaluate()) {\n        return true;\n      }\n    }\n\n    return false;\n  };\n\n  return OrConditionInternal;\n}();\n\nvar NotConditionInternal = function () {\n  function NotConditionInternal() {}\n\n  NotConditionInternal.prototype.evaluate = function () {\n    return !this.child.evaluate();\n  };\n\n  return NotConditionInternal;\n}();\n\nvar RelationalConditionInternal = function () {\n  function RelationalConditionInternal() {}\n\n  RelationalConditionInternal.prototype.evaluate = function () {\n    var needParse = !!this.valueParser;\n    var getValue = this.getValue;\n    var tarValRaw = getValue(this.valueGetterParam);\n    var tarValParsed = needParse ? this.valueParser(tarValRaw) : null;\n\n    for (var i = 0; i < this.subCondList.length; i++) {\n      if (!this.subCondList[i].evaluate(needParse ? tarValParsed : tarValRaw)) {\n        return false;\n      }\n    }\n\n    return true;\n  };\n\n  return RelationalConditionInternal;\n}();\n\nfunction parseOption(exprOption, getters) {\n  if (exprOption === true || exprOption === false) {\n    var cond = new ConstConditionInternal();\n    cond.value = exprOption;\n    return cond;\n  }\n\n  var errMsg = '';\n\n  if (!isObjectNotArray(exprOption)) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = makePrintable('Illegal config. Expect a plain object but actually', exprOption);\n    }\n\n    throwError(errMsg);\n  }\n\n  if (exprOption.and) {\n    return parseAndOrOption('and', exprOption, getters);\n  } else if (exprOption.or) {\n    return parseAndOrOption('or', exprOption, getters);\n  } else if (exprOption.not) {\n    return parseNotOption(exprOption, getters);\n  }\n\n  return parseRelationalOption(exprOption, getters);\n}\n\nfunction parseAndOrOption(op, exprOption, getters) {\n  var subOptionArr = exprOption[op];\n  var errMsg = '';\n\n  if (process.env.NODE_ENV !== 'production') {\n    errMsg = makePrintable('\"and\"/\"or\" condition should only be `' + op + ': [...]` and must not be empty array.', 'Illegal condition:', exprOption);\n  }\n\n  if (!isArray(subOptionArr)) {\n    throwError(errMsg);\n  }\n\n  if (!subOptionArr.length) {\n    throwError(errMsg);\n  }\n\n  var cond = op === 'and' ? new AndConditionInternal() : new OrConditionInternal();\n  cond.children = map(subOptionArr, function (subOption) {\n    return parseOption(subOption, getters);\n  });\n\n  if (!cond.children.length) {\n    throwError(errMsg);\n  }\n\n  return cond;\n}\n\nfunction parseNotOption(exprOption, getters) {\n  var subOption = exprOption.not;\n  var errMsg = '';\n\n  if (process.env.NODE_ENV !== 'production') {\n    errMsg = makePrintable('\"not\" condition should only be `not: {}`.', 'Illegal condition:', exprOption);\n  }\n\n  if (!isObjectNotArray(subOption)) {\n    throwError(errMsg);\n  }\n\n  var cond = new NotConditionInternal();\n  cond.child = parseOption(subOption, getters);\n\n  if (!cond.child) {\n    throwError(errMsg);\n  }\n\n  return cond;\n}\n\nfunction parseRelationalOption(exprOption, getters) {\n  var errMsg = '';\n  var valueGetterParam = getters.prepareGetValue(exprOption);\n  var subCondList = [];\n  var exprKeys = keys(exprOption);\n  var parserName = exprOption.parser;\n  var valueParser = parserName ? getRawValueParser(parserName) : null;\n\n  for (var i = 0; i < exprKeys.length; i++) {\n    var keyRaw = exprKeys[i];\n\n    if (keyRaw === 'parser' || getters.valueGetterAttrMap.get(keyRaw)) {\n      continue;\n    }\n\n    var op = hasOwn(RELATIONAL_EXPRESSION_OP_ALIAS_MAP, keyRaw) ? RELATIONAL_EXPRESSION_OP_ALIAS_MAP[keyRaw] : keyRaw;\n    var condValueRaw = exprOption[keyRaw];\n    var condValueParsed = valueParser ? valueParser(condValueRaw) : condValueRaw;\n    var evaluator = createFilterComparator(op, condValueParsed) || op === 'reg' && new RegExpEvaluator(condValueParsed);\n\n    if (!evaluator) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = makePrintable('Illegal relational operation: \"' + keyRaw + '\" in condition:', exprOption);\n      }\n\n      throwError(errMsg);\n    }\n\n    subCondList.push(evaluator);\n  }\n\n  if (!subCondList.length) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = makePrintable('Relational condition must have at least one operator.', 'Illegal condition:', exprOption);\n    }\n\n    throwError(errMsg);\n  }\n\n  var cond = new RelationalConditionInternal();\n  cond.valueGetterParam = valueGetterParam;\n  cond.valueParser = valueParser;\n  cond.getValue = getters.getValue;\n  cond.subCondList = subCondList;\n  return cond;\n}\n\nfunction isObjectNotArray(val) {\n  return isObject(val) && !isArrayLike(val);\n}\n\nvar ConditionalExpressionParsed = function () {\n  function ConditionalExpressionParsed(exprOption, getters) {\n    this._cond = parseOption(exprOption, getters);\n  }\n\n  ConditionalExpressionParsed.prototype.evaluate = function () {\n    return this._cond.evaluate();\n  };\n\n  return ConditionalExpressionParsed;\n}();\n\n;\nexport function parseConditionalExpression(exprOption, getters) {\n  return new ConditionalExpressionParsed(exprOption, getters);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parseConditionalExpression } from '../../util/conditionalExpression';\nimport { hasOwn, createHashMap } from 'zrender/lib/core/util';\nimport { makePrintable, throwError } from '../../util/log';\nexport var filterTransform = {\n  type: 'echarts:filter',\n  transform: function (params) {\n    var upstream = params.upstream;\n    var rawItem;\n    var condition = parseConditionalExpression(params.config, {\n      valueGetterAttrMap: createHashMap({\n        dimension: true\n      }),\n      prepareGetValue: function (exprOption) {\n        var errMsg = '';\n        var dimLoose = exprOption.dimension;\n\n        if (!hasOwn(exprOption, 'dimension')) {\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg = makePrintable('Relation condition must has prop \"dimension\" specified.', 'Illegal condition:', exprOption);\n          }\n\n          throwError(errMsg);\n        }\n\n        var dimInfo = upstream.getDimensionInfo(dimLoose);\n\n        if (!dimInfo) {\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg = makePrintable('Can not find dimension info via: ' + dimLoose + '.\\n', 'Existing dimensions: ', upstream.cloneAllDimensionInfo(), '.\\n', 'Illegal condition:', exprOption, '.\\n');\n          }\n\n          throwError(errMsg);\n        }\n\n        return {\n          dimIdx: dimInfo.index\n        };\n      },\n      getValue: function (param) {\n        return upstream.retrieveValueFromItem(rawItem, param.dimIdx);\n      }\n    });\n    var resultData = [];\n\n    for (var i = 0, len = upstream.count(); i < len; i++) {\n      rawItem = upstream.getRawDataItem(i);\n\n      if (condition.evaluate()) {\n        resultData.push(rawItem);\n      }\n    }\n\n    return {\n      data: resultData\n    };\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { SOURCE_FORMAT_ARRAY_ROWS, SOURCE_FORMAT_OBJECT_ROWS } from '../../util/types';\nimport { makePrintable, throwError } from '../../util/log';\nimport { each } from 'zrender/lib/core/util';\nimport { normalizeToArray } from '../../util/model';\nimport { getRawValueParser, SortOrderComparator } from '../../data/helper/dataValueHelper';\nvar sampleLog = '';\n\nif (process.env.NODE_ENV !== 'production') {\n  sampleLog = ['Valid config is like:', '{ dimension: \"age\", order: \"asc\" }', 'or [{ dimension: \"age\", order: \"asc\"], { dimension: \"date\", order: \"desc\" }]'].join(' ');\n}\n\nexport var sortTransform = {\n  type: 'echarts:sort',\n  transform: function (params) {\n    var upstream = params.upstream;\n    var config = params.config;\n    var errMsg = '';\n    var orderExprList = normalizeToArray(config);\n\n    if (!orderExprList.length) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'Empty `config` in sort transform.';\n      }\n\n      throwError(errMsg);\n    }\n\n    var orderDefList = [];\n    each(orderExprList, function (orderExpr) {\n      var dimLoose = orderExpr.dimension;\n      var order = orderExpr.order;\n      var parserName = orderExpr.parser;\n      var incomparable = orderExpr.incomparable;\n\n      if (dimLoose == null) {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = 'Sort transform config must has \"dimension\" specified.' + sampleLog;\n        }\n\n        throwError(errMsg);\n      }\n\n      if (order !== 'asc' && order !== 'desc') {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = 'Sort transform config must has \"order\" specified.' + sampleLog;\n        }\n\n        throwError(errMsg);\n      }\n\n      if (incomparable && incomparable !== 'min' && incomparable !== 'max') {\n        var errMsg_1 = '';\n\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg_1 = 'incomparable must be \"min\" or \"max\" rather than \"' + incomparable + '\".';\n        }\n\n        throwError(errMsg_1);\n      }\n\n      if (order !== 'asc' && order !== 'desc') {\n        var errMsg_2 = '';\n\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg_2 = 'order must be \"asc\" or \"desc\" rather than \"' + order + '\".';\n        }\n\n        throwError(errMsg_2);\n      }\n\n      var dimInfo = upstream.getDimensionInfo(dimLoose);\n\n      if (!dimInfo) {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = makePrintable('Can not find dimension info via: ' + dimLoose + '.\\n', 'Existing dimensions: ', upstream.cloneAllDimensionInfo(), '.\\n', 'Illegal config:', orderExpr, '.\\n');\n        }\n\n        throwError(errMsg);\n      }\n\n      var parser = parserName ? getRawValueParser(parserName) : null;\n\n      if (parserName && !parser) {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = makePrintable('Invalid parser name ' + parserName + '.\\n', 'Illegal config:', orderExpr, '.\\n');\n        }\n\n        throwError(errMsg);\n      }\n\n      orderDefList.push({\n        dimIdx: dimInfo.index,\n        parser: parser,\n        comparator: new SortOrderComparator(order, incomparable)\n      });\n    });\n    var sourceFormat = upstream.sourceFormat;\n\n    if (sourceFormat !== SOURCE_FORMAT_ARRAY_ROWS && sourceFormat !== SOURCE_FORMAT_OBJECT_ROWS) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'sourceFormat \"' + sourceFormat + '\" is not supported yet';\n      }\n\n      throwError(errMsg);\n    }\n\n    var resultData = [];\n\n    for (var i = 0, len = upstream.count(); i < len; i++) {\n      resultData.push(upstream.getRawDataItem(i));\n    }\n\n    resultData.sort(function (item0, item1) {\n      for (var i = 0; i < orderDefList.length; i++) {\n        var orderDef = orderDefList[i];\n        var val0 = upstream.retrieveValueFromItem(item0, orderDef.dimIdx);\n        var val1 = upstream.retrieveValueFromItem(item1, orderDef.dimIdx);\n\n        if (orderDef.parser) {\n          val0 = orderDef.parser(val0);\n          val1 = orderDef.parser(val1);\n        }\n\n        var result = orderDef.comparator.evaluate(val0, val1);\n\n        if (result !== 0) {\n          return result;\n        }\n      }\n\n      return 0;\n    });\n    return {\n      data: resultData\n    };\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { filterTransform } from './filterTransform';\nimport { sortTransform } from './sortTransform';\nexport function install(registers) {\n  registers.registerTransform(filterTransform);\n  registers.registerTransform(sortTransform);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\nimport ComponentView from '../../view/Component';\nimport { SERIES_LAYOUT_BY_COLUMN } from '../../util/types';\nimport { disableTransformOptionMerge, SourceManager } from '../../data/helper/sourceManager';\n\nvar DatasetModel = function (_super) {\n  __extends(DatasetModel, _super);\n\n  function DatasetModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'dataset';\n    return _this;\n  }\n\n  DatasetModel.prototype.init = function (option, parentModel, ecModel) {\n    _super.prototype.init.call(this, option, parentModel, ecModel);\n\n    this._sourceManager = new SourceManager(this);\n    disableTransformOptionMerge(this);\n  };\n\n  DatasetModel.prototype.mergeOption = function (newOption, ecModel) {\n    _super.prototype.mergeOption.call(this, newOption, ecModel);\n\n    disableTransformOptionMerge(this);\n  };\n\n  DatasetModel.prototype.optionUpdated = function () {\n    this._sourceManager.dirty();\n  };\n\n  DatasetModel.prototype.getSourceManager = function () {\n    return this._sourceManager;\n  };\n\n  DatasetModel.type = 'dataset';\n  DatasetModel.defaultOption = {\n    seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN\n  };\n  return DatasetModel;\n}(ComponentModel);\n\nexport { DatasetModel };\n\nvar DatasetView = function (_super) {\n  __extends(DatasetView, _super);\n\n  function DatasetView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'dataset';\n    return _this;\n  }\n\n  DatasetView.type = 'dataset';\n  return DatasetView;\n}(ComponentView);\n\nexport function install(registers) {\n  registers.registerComponentModel(DatasetModel);\n  registers.registerComponentView(DatasetView);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from './lib/extension';\nexport * from './lib/export/core';\nimport { SVGRenderer, CanvasRenderer } from './lib/export/renderers';\nimport { LineChart, BarChart, PieChart, ScatterChart, RadarChart, MapChart, TreeChart, TreemapChart, GraphChart, GaugeChart, FunnelChart, ParallelChart, SankeyChart, BoxplotChart, CandlestickChart, EffectScatterChart, LinesChart, HeatmapChart, PictorialBarChart, ThemeRiverChart, SunburstChart, CustomChart } from './lib/export/charts';\nimport { GridComponent, PolarComponent, GeoComponent, SingleAxisComponent, ParallelComponent, CalendarComponent, GraphicComponent, ToolboxComponent, TooltipComponent, AxisPointerComponent, BrushComponent, TitleComponent, TimelineComponent, MarkPointComponent, MarkLineComponent, MarkAreaComponent, LegendComponent, DataZoomComponent, DataZoomInsideComponent, DataZoomSliderComponent, VisualMapComponent, VisualMapContinuousComponent, VisualMapPiecewiseComponent, AriaComponent, DatasetComponent, TransformComponent } from './lib/export/components';\nuse([CanvasRenderer]);\nuse([SVGRenderer]);\nuse([LineChart, BarChart, PieChart, ScatterChart, RadarChart, MapChart, TreeChart, TreemapChart, GraphChart, GaugeChart, FunnelChart, ParallelChart, SankeyChart, BoxplotChart, CandlestickChart, EffectScatterChart, LinesChart, HeatmapChart, PictorialBarChart, ThemeRiverChart, SunburstChart, CustomChart]);\nuse(GridComponent);\nuse(PolarComponent);\nuse(GeoComponent);\nuse(SingleAxisComponent);\nuse(ParallelComponent);\nuse(CalendarComponent);\nuse(GraphicComponent);\nuse(ToolboxComponent);\nuse(TooltipComponent);\nuse(AxisPointerComponent);\nuse(BrushComponent);\nuse(TitleComponent);\nuse(TimelineComponent);\nuse(MarkPointComponent);\nuse(MarkLineComponent);\nuse(MarkAreaComponent);\nuse(LegendComponent);\nuse(DataZoomComponent);\nuse(DataZoomInsideComponent);\nuse(DataZoomSliderComponent);\nuse(VisualMapComponent);\nuse(VisualMapContinuousComponent);\nuse(VisualMapPiecewiseComponent);\nuse(AriaComponent);\nuse(TransformComponent);\nuse(DatasetComponent);"],"names":["clone","_calcOut","eventUtil.clientToLocal","dist","eventTool.stop","util.each","vec2.dist","create","copy","mul","scale","matrix.identity","matrix.create","matrix.mul","matrix.copy","matrix.invert","vector.applyTransform","matrix.rotate","easing","easingFuncs","lerp","color.parse","matrix.translate","matrix.scale","methods","timsort","util.indexOf","requestAnimationFrame","zrUtil.map","zrUtil.noop","zrUtil.each","zrUtil.indexOf","zrUtil.keys","HandlerProxy","zrUtil.guid","parsePercent","zrUtil.reduce","zrUtil.assert","zrUtil.createObject","zrUtil.extend","zrUtil.inherits","imageHelper.findExistImage","imageHelper.isImageReady","PRIMARY_STATES_KEYS","EPSILON","v2Create","isNotAroundZero","v2DistSquare","mathMin","mathMax","vec2.create","cubicExtrema","curve.cubicExtrema","cubicAt","curve.cubicAt","quadraticExtremum","curve.quadraticExtremum","quadraticAt","curve.quadraticAt","min","max","vec2.min","vec2.max","mathCos","mathSin","mathSqrt","PI2","dpr","containStroke","curve.cubicProjectPoint","CMD","curve.cubicRootAt","curve.quadraticRootAt","line.containStroke","cubic.containStroke","quadratic.containStroke","arc.containStroke","pathContain.containStroke","pathContain.contain","round","roundRectHelper.buildPath","color","colorTool.lift","v2ApplyTransform","PI","mathAbs","buildPath","roundSectorHelper.buildPath","distance","v2Distance","v2Min","v2Max","v2Clone","v2Sub","v2Scale","v2Add","polyHelper.buildPath","subPixelOptimizeOutputShape","vec2.normalize","minTv","maxTv","Displayble","pathTool.extendFromString","pathTool.createFromString","mergePath","pathTool.mergePath","subPixelOptimizeLine","subPixelOptimizeUtil.subPixelOptimizeLine","subPixelOptimizeRect","subPixelOptimizeUtil.subPixelOptimizeRect","subPixelOptimize","subPixelOptimizeUtil.subPixelOptimize","applyTransform","invert","zrUtil.merge","numberUtil.parseDate","defaults","zrUtil.defaults","zrUtil.isArray","Text","zrUtil.isString","normalizeCssArray","zrUtil.normalizeCssArray","zrUtil.trim","timeFormat","zrUtil.isStringSafe","zrUtil.isNumber","zrUtil.isObject","each","zrUtil.curry","formatUtil.normalizeCssArray","componentUtil.getUID","layout.fetchLayoutMode","layout.getLayoutParams","layout.mergeLayoutParam","componentUtil.enableSubTypeDefaulter","componentUtil.enableTopologicalTravel","modelUtil.normalizeToArray","modelUtil.mappingToExists","modelUtil.setComponentTypeToKeyInfo","modelUtil.isComponentIdInternal","modelUtil.convertOptionIdName","zrUtil.bind","isObject","modelUtil.TEXT_STYLE_OPTIONS","zrUtil.isTypedArray","set","compatStyle","inner","modelUtil.makeInner","modelUtil.defaultEmphasis","zrUtil.mixin","modelUtil.isNameSpecified","clazzUtil.enableClassExtend","clazzUtil.enableClassManagement","modelUtil.queryDataIndex","graphic.Group","graphic.Rect","graphic.Text","graphic.Arc","vector.dist","vector.lerp","graphic.Path","graphic.Circle","graphic.makeImage","graphic.makePath","assert","isFunction","zrUtil.isFunction","indexOf","version","zrender.init","zrUtil.clone","backwardCompat","zrUtil.setAsPrimitive","instances","zrUtil.createCanvas","graphic.Image","modelUtil.parseFinder","modelUtil.setAttribute","zrUtil.createHashMap","colorTool.parse","colorTool.stringify","graphic.isElementRemoved","init","zrUtil.isDom","dispose","modelUtil.getAttribute","zrUtil.$override","decal","loadingDefault","darkTheme","map","zrUtil.isArrayLike","zrUtil.slice","CoordinateSystem","numberUtil.round","numberUtil.nice","numberUtil.getPrecisionSafe","contain","normalize","scaleHelper.contain","scaleHelper.normalize","scaleHelper.scale","roundNumber","helper.contain","helper.normalize","helper.scale","helper.getIntervalPrecision","formatUtil.addCommas","helper.intervalScaleNiceTicks","getPrecisionSafe","mathFloor","mathPow","numberUtil.quantity","dataStack","axisHelper.createScaleByModel","axisHelper.niceScaleExtent","createTextStyle","innerCreateTextStyle","isAroundEqual","bbox.fromPoints","polygonContain.contain","vec2.applyTransform","zrUtil.filter","textContain.getBoundingRect","isAroundZero","adjustTextY","zrUtil.logError","colorTool.toHex","util.extend","util.logError","util.createCanvas","util.isObject","util.isGradientObject","util.isPatternObject","parseInt10","util.merge","install","graphic.updateProps","graphic.initProps","graphic.removeElement","SymbolClz","graphic.Sector","graphic.LinearGradient","isPointNull","modelUtil.interpolateRawValues","LineSeries","layoutPoints","Sausage","BarSeries","layout.getLayoutRect","RADIAN","graphic.Polyline","graphic.removeElementWithFadeOut","labelLayout","layout","zrUtil.retrieve","zrUtil.retrieve3","graphic.Line","matrixUtil.identity","matrixUtil.rotate","matrixUtil.mul","axisPointerModelHelper.fixValue","axisPointerModelHelper.getAxisPointerModel","cartesianAxisHelper.layout","graphic.groupTransition","installGridSimple","zrUtil.find","createSymbol","symbolUtil.createSymbol","graphic.Polygon","axisBuilderAttrs","RadarView","graphic.Ring","graphic.mergePath","numberUtil.parsePercent","installRadarComponent","echarts.registerAction","eventTool.isMiddleOrRightButtonOnMouseUpDown","interactionMutex.isTaken","points","parseGeoJson","fixTextCoord","fixGeoCoord","getBoundingRect","graphic.CompoundPath","roamHelper.updateViewOnPan","roamHelper.updateViewOnZoom","getViewRect","vector.copy","symbolNeedsDraw","graphic.BezierCurve","separation","sep","noop","helper.retrieveTargetInfo","helper.aboveViewRoot","layout.positionElement","layout.getAvailableSize","Group","Rect","animationUtil.createWrap","zrColor.fastLerp","zrColor.stringify","zrColor.modifyHSL","zrColor.modifyAlpha","zrColor.parse","helper.getPathToRoot","sort","vec2.clone","scaleAndAdd","vec2.scaleAndAdd","vec2.sub","vec2.len","vec2.set","vec2.copy","Line","vector.sub","vector.normalize","LineGroup","makeSeriesScope","curveTool.quadraticAt","vec2.distSquare","quadraticSubdivide","curveTool.quadraticSubdivide","edgeVisual","simpleLayout","circularLayout","forceLayout","createView","graphic.Point","opacityAccessPath","ParallelView","mathCeil","layoutUtil.getLayoutRect","restrict","graphic.applyTransform","numberUtil.asc","interactionMutex.take","interactionMutex.release","trigger","getTransform","graphic.getTransform","graphic.transformDirection","graphicUtil.clipPointsByRect","graphic.BoundingRect","brushHelper.makeRectPanelClipPath","brushHelper.makeRectIsTargetByCursor","brushHelper.makeLinearBrushOtherExtent","actionInfo","installParallelComponent","createGridClipShape","center","createNormalBox","createLarge","transInit","setLargeStyle","LargeArr","preprocessor","normalizeSymbolSize","matrix.clone","curveUtil.quadraticAt","quadraticDerivativeAt","curveUtil.quadraticDerivativeAt","Polyline","lineContain.containStroke","quadraticContain.containStroke","BAR_BORDER_WIDTH_QUERY","updateCommon","completeTreeValue","initChildren","dataToCoordSize","tmpArr","normalizeRadian","prepareCartesian2d","prepareGeo","prepareSingleAxis","preparePolar","prepareCalendar","graphicUtil.makePath","graphicUtil.Image","graphicUtil.Text","graphicUtil.Group","graphicUtil.getShapeClass","isPath","graphicUtil.initProps","graphicUtil.updateProps","updateZ","labelStyleHelper.createTextStyle","labelStyleHelper.createTextConfig","labelStyleHelper.getFont","graphicUtil.Path","bind","updateProps","axisPointerModelHelper.getAxisInfo","graphic.createIcon","throttleUtil.createOrUpdate","axisHelper.getAxisRawValue","viewHelper.buildElStyle","viewHelper.buildCartesianSingleLabelElOption","viewHelper.getTransformedPosition","viewHelper.makeLineShape","viewHelper.makeRectShape","globalListener.register","globalListener.unregister","modelHelper.makeKey","installSimple","installAxisPointer","pointerShapeBuilder","viewHelper.buildLabelElOption","viewHelper.makeSectorShape","getCoordSys","elementList","selfBuilderAttrs","axisElementBuilders","getSeriesStackId","getAxisKey","zrUtil.mergeAll","singleAxisHelper.layout","formatUtil.formatTplSimple","createEl","layoutUtil.positionElement","zrUtil.hasOwn","layoutUtil.LOCATION_PARAMS","layoutUtil.mergeLayoutParam","layoutUtil.copyLayoutParams","asc","numberUtil.linearMap","numberUtil.getPixelPrecision","SelectZoomModel","SelectZoomView","featureManager.getFeature","layoutBox","listComponentHelper.layout","listComponentHelper.makeBackground","trim","clear","history.clear","parseFinder","modelUtilParseFinder","handlers","history.push","history.pop","history.count","DataZoom","Restore","installDataZoomSelect","makeStyleCoord","makeDispatchAction","axisPointerViewHelper.getValueLabel","formatUtil.convertToColorString","formatUtil.formatTpl","visualSolution.createVisualMappings","visualSolution.applyVisual","visualSolution.replaceVisualOption","zrUtil.retrieve2","createScaleByModel","numberUtil.getPrecision","getAxisInfo","dataFilter","createList","markerHelper.dataTransform","markerHelper.dataFilter","markerHelper.dimValueGetter","markerHelper.getAxisInfo","markerHelper.numCalculate","dimValueGetter","isInifinity","colorUtil.modifyAlpha","curry","layoutUtil.box","mergeAndNormalizeLayoutParams","WH","XY","installLegendPlain","installLegendScroll","dispatchAction","roams.setViewInfoToCoordSysRecord","roams.disposeCoordSysRecordIfNeeded","throttle.createOrUpdate","throttle.clear","installDataZoomInside","installDataZoomSlider","defaultOption","mapVisual","isArray","linearMap","helper.getItemAlign","getCursor","modelUtil.compressBatches","helper.makeHighDownBatch","visualSolution.incrementalApplyVisual","has","installed","installCommon","layout.box","PiecewiseView","installVisualMapContinuous","installVisualMapPiecewise","CanvasRenderer","SVGRenderer","LineChart","BarChart","PieChart","ScatterChart","RadarChart","MapChart","TreeChart","TreemapChart","GraphChart","GaugeChart","FunnelChart","ParallelChart","SankeyChart","BoxplotChart","CandlestickChart","EffectScatterChart","LinesChart","HeatmapChart","PictorialBarChart","ThemeRiverChart","SunburstChart","CustomChart","GridComponent","PolarComponent","GeoComponent","SingleAxisComponent","ParallelComponent","CalendarComponent","GraphicComponent","ToolboxComponent","TooltipComponent","AxisPointerComponent","BrushComponent","TitleComponent","TimelineComponent","MarkPointComponent","MarkLineComponent","MarkAreaComponent","LegendComponent","DataZoomComponent","DataZoomInsideComponent","DataZoomSliderComponent","VisualMapComponent","VisualMapContinuousComponent","VisualMapPiecewiseComponent","AriaComponent","TransformComponent","DatasetComponent"],"mappings":"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I,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAA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"}
\ No newline at end of file
diff --git a/dist/echarts.esm.min.js b/dist/echarts.esm.min.js
index 12779fa..f83e4ca 100644
--- a/dist/echarts.esm.min.js
+++ b/dist/echarts.esm.min.js
@@ -32,21 +32,7 @@
 OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
 PERFORMANCE OF THIS SOFTWARE.
 ***************************************************************************** */
-var t=function(e,n){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])})(e,n)};function e(e,n){function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}var n=function(){return(n=Object.assign||function(t){for(var e,n=1,i=arguments.length;n<i;n++)for(var r in e=arguments[n])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)};function i(){for(var t=0,e=0,n=arguments.length;e<n;e++)t+=arguments[e].length;var i=Array(t),r=0;for(e=0;e<n;e++)for(var o=arguments[e],a=0,s=o.length;a<s;a++,r++)i[r]=o[a];return i}var r=function(){this.firefox=!1,this.ie=!1,this.edge=!1,this.newEdge=!1,this.weChat=!1},o=new function(){this.browser=new r,this.node=!1,this.wxa=!1,this.worker=!1,this.canvasSupported=!1,this.svgSupported=!1,this.touchEventsSupported=!1,this.pointerEventsSupported=!1,this.domSupported=!1};"object"==typeof wx&&"function"==typeof wx.getSystemInfoSync?(o.wxa=!0,o.canvasSupported=!0,o.touchEventsSupported=!0):"undefined"==typeof document&&"undefined"!=typeof self?(o.worker=!0,o.canvasSupported=!0):"undefined"==typeof navigator?(o.node=!0,o.canvasSupported=!0,o.svgSupported=!0):function(t,e){var n=e.browser,i=t.match(/Firefox\/([\d.]+)/),r=t.match(/MSIE\s([\d.]+)/)||t.match(/Trident\/.+?rv:(([\d.]+))/),o=t.match(/Edge?\/([\d.]+)/),a=/micromessenger/i.test(t);i&&(n.firefox=!0,n.version=i[1]);r&&(n.ie=!0,n.version=r[1]);o&&(n.edge=!0,n.version=o[1],n.newEdge=+o[1].split(".")[0]>18);a&&(n.weChat=!0);e.canvasSupported=!!document.createElement("canvas").getContext,e.svgSupported="undefined"!=typeof SVGRect,e.touchEventsSupported="ontouchstart"in window&&!n.ie&&!n.edge,e.pointerEventsSupported="onpointerdown"in window&&(n.edge||n.ie&&+n.version>=11),e.domSupported="undefined"!=typeof document}(navigator.userAgent,o);var a={"[object Function]":!0,"[object RegExp]":!0,"[object Date]":!0,"[object Error]":!0,"[object CanvasGradient]":!0,"[object CanvasPattern]":!0,"[object Image]":!0,"[object Canvas]":!0},s={"[object Int8Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Int16Array]":!0,"[object Uint16Array]":!0,"[object Int32Array]":!0,"[object Uint32Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0},l=Object.prototype.toString,u=Array.prototype,h=u.forEach,c=u.filter,p=u.slice,d=u.map,f=function(){}.constructor,g=f?f.prototype:null,y={};function v(t,e){y[t]=e}var m=2311;function _(){return m++}function x(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];"undefined"!=typeof console&&console.error.apply(console,t)}function b(t){if(null==t||"object"!=typeof t)return t;var e=t,n=l.call(t);if("[object Array]"===n){if(!at(t)){e=[];for(var i=0,r=t.length;i<r;i++)e[i]=b(t[i])}}else if(s[n]){if(!at(t)){var o=t.constructor;if(o.from)e=o.from(t);else{e=new o(t.length);for(i=0,r=t.length;i<r;i++)e[i]=b(t[i])}}}else if(!a[n]&&!at(t)&&!Z(t))for(var u in e={},t)t.hasOwnProperty(u)&&(e[u]=b(t[u]));return e}function w(t,e,n){if(!Y(e)||!Y(t))return n?b(e):t;for(var i in e)if(e.hasOwnProperty(i)){var r=t[i],o=e[i];!Y(o)||!Y(r)||V(o)||V(r)||Z(o)||Z(r)||X(o)||X(r)||at(o)||at(r)?!n&&i in t||(t[i]=b(e[i])):w(r,o,n)}return t}function S(t,e){for(var n=t[0],i=1,r=t.length;i<r;i++)n=w(n,t[i],e);return n}function M(t,e){if(Object.assign)Object.assign(t,e);else for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}function I(t,e,n){for(var i=E(e),r=0;r<i.length;r++){var o=i[r];(n?null!=e[o]:null==t[o])&&(t[o]=e[o])}return t}var T=function(){return y.createCanvas()};function C(t,e){if(t){if(t.indexOf)return t.indexOf(e);for(var n=0,i=t.length;n<i;n++)if(t[n]===e)return n}return-1}function A(t,e){var n=t.prototype;function i(){}for(var r in i.prototype=e.prototype,t.prototype=new i,n)n.hasOwnProperty(r)&&(t.prototype[r]=n[r]);t.prototype.constructor=t,t.superClass=e}function D(t,e,n){if(t="prototype"in t?t.prototype:t,e="prototype"in e?e.prototype:e,Object.getOwnPropertyNames)for(var i=Object.getOwnPropertyNames(e),r=0;r<i.length;r++){var o=i[r];"constructor"!==o&&(n?null!=e[o]:null==t[o])&&(t[o]=e[o])}else I(t,e,n)}function L(t){return!!t&&("string"!=typeof t&&"number"==typeof t.length)}function k(t,e,n){if(t&&e)if(t.forEach&&t.forEach===h)t.forEach(e,n);else if(t.length===+t.length)for(var i=0,r=t.length;i<r;i++)e.call(n,t[i],i,t);else for(var o in t)t.hasOwnProperty(o)&&e.call(n,t[o],o,t)}function P(t,e,n){if(!t)return[];if(!e)return et(t);if(t.map&&t.map===d)return t.map(e,n);for(var i=[],r=0,o=t.length;r<o;r++)i.push(e.call(n,t[r],r,t));return i}function O(t,e,n,i){if(t&&e){for(var r=0,o=t.length;r<o;r++)n=e.call(i,n,t[r],r,t);return n}}function R(t,e,n){if(!t)return[];if(!e)return et(t);if(t.filter&&t.filter===c)return t.filter(e,n);for(var i=[],r=0,o=t.length;r<o;r++)e.call(n,t[r],r,t)&&i.push(t[r]);return i}function N(t,e,n){if(t&&e)for(var i=0,r=t.length;i<r;i++)if(e.call(n,t[i],i,t))return t[i]}function E(t){if(!t)return[];if(Object.keys)return Object.keys(t);var e=[];for(var n in t)t.hasOwnProperty(n)&&e.push(n);return e}y.createCanvas=function(){return document.createElement("canvas")};var z=g&&F(g.bind)?g.call.bind(g.bind):function(t,e){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];return function(){return t.apply(e,n.concat(p.call(arguments)))}};function B(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return function(){return t.apply(this,e.concat(p.call(arguments)))}}function V(t){return Array.isArray?Array.isArray(t):"[object Array]"===l.call(t)}function F(t){return"function"==typeof t}function G(t){return"string"==typeof t}function H(t){return"[object String]"===l.call(t)}function W(t){return"number"==typeof t}function Y(t){var e=typeof t;return"function"===e||!!t&&"object"===e}function X(t){return!!a[l.call(t)]}function U(t){return!!s[l.call(t)]}function Z(t){return"object"==typeof t&&"number"==typeof t.nodeType&&"object"==typeof t.ownerDocument}function j(t){return null!=t.colorStops}function q(t){return null!=t.image}function K(t){return"[object RegExp]"===l.call(t)}function $(t){return t!=t}function J(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];for(var n=0,i=t.length;n<i;n++)if(null!=t[n])return t[n]}function Q(t,e){return null!=t?t:e}function tt(t,e,n){return null!=t?t:null!=e?e:n}function et(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return p.apply(t,e)}function nt(t){if("number"==typeof t)return[t,t,t,t];var e=t.length;return 2===e?[t[0],t[1],t[0],t[1]]:3===e?[t[0],t[1],t[2],t[1]]:t}function it(t,e){if(!t)throw new Error(e)}function rt(t){return null==t?null:"function"==typeof t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}function ot(t){t.__ec_primitive__=!0}function at(t){return t.__ec_primitive__}var st=function(){function t(e){this.data={};var n=V(e);this.data={};var i=this;function r(t,e){n?i.set(t,e):i.set(e,t)}e instanceof t?e.each(r):e&&k(e,r)}return t.prototype.get=function(t){return this.data.hasOwnProperty(t)?this.data[t]:null},t.prototype.set=function(t,e){return this.data[t]=e},t.prototype.each=function(t,e){for(var n in this.data)this.data.hasOwnProperty(n)&&t.call(e,this.data[n],n)},t.prototype.keys=function(){return E(this.data)},t.prototype.removeKey=function(t){delete this.data[t]},t}();function lt(t){return new st(t)}function ut(t,e){for(var n=new t.constructor(t.length+e.length),i=0;i<t.length;i++)n[i]=t[i];var r=t.length;for(i=0;i<e.length;i++)n[i+r]=e[i];return n}function ht(t,e){var n;if(Object.create)n=Object.create(t);else{var i=function(){};i.prototype=t,n=new i}return e&&M(n,e),n}function ct(t,e){return t.hasOwnProperty(e)}function pt(){}var dt=Object.freeze({__proto__:null,$override:v,guid:_,logError:x,clone:b,merge:w,mergeAll:S,extend:M,defaults:I,createCanvas:T,indexOf:C,inherits:A,mixin:D,isArrayLike:L,each:k,map:P,reduce:O,filter:R,find:N,keys:E,bind:z,curry:B,isArray:V,isFunction:F,isString:G,isStringSafe:H,isNumber:W,isObject:Y,isBuiltInObject:X,isTypedArray:U,isDom:Z,isGradientObject:j,isPatternObject:q,isRegExp:K,eqNaN:$,retrieve:J,retrieve2:Q,retrieve3:tt,slice:et,normalizeCssArray:nt,assert:it,trim:rt,setAsPrimitive:ot,isPrimitive:at,HashMap:st,createHashMap:lt,concatArray:ut,createObject:ht,hasOwn:ct,noop:pt}),ft=function(t,e){return(ft=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])})(t,e)};
-/*! *****************************************************************************
-Copyright (c) Microsoft Corporation.
-
-Permission to use, copy, modify, and/or distribute this software for any
-purpose with or without fee is hereby granted.
-
-THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-PERFORMANCE OF THIS SOFTWARE.
-***************************************************************************** */function gt(t,e){function n(){this.constructor=t}ft(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}function yt(t,e){return null==t&&(t=0),null==e&&(e=0),[t,e]}function vt(t,e){return t[0]=e[0],t[1]=e[1],t}function mt(t){return[t[0],t[1]]}function _t(t,e,n){return t[0]=e,t[1]=n,t}function xt(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t}function bt(t,e,n,i){return t[0]=e[0]+n[0]*i,t[1]=e[1]+n[1]*i,t}function wt(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t}function St(t){return Math.sqrt(It(t))}var Mt=St;function It(t){return t[0]*t[0]+t[1]*t[1]}var Tt=It;function Ct(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t}function At(t,e){var n=St(e);return 0===n?(t[0]=0,t[1]=0):(t[0]=e[0]/n,t[1]=e[1]/n),t}function Dt(t,e){return Math.sqrt((t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1]))}var Lt=Dt;function kt(t,e){return(t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1])}var Pt=kt;function Ot(t,e,n,i){return t[0]=e[0]+i*(n[0]-e[0]),t[1]=e[1]+i*(n[1]-e[1]),t}function Rt(t,e,n){var i=e[0],r=e[1];return t[0]=n[0]*i+n[2]*r+n[4],t[1]=n[1]*i+n[3]*r+n[5],t}function Nt(t,e,n){return t[0]=Math.min(e[0],n[0]),t[1]=Math.min(e[1],n[1]),t}function Et(t,e,n){return t[0]=Math.max(e[0],n[0]),t[1]=Math.max(e[1],n[1]),t}var zt=Object.freeze({__proto__:null,create:yt,copy:vt,clone:mt,set:_t,add:xt,scaleAndAdd:bt,sub:wt,len:St,length:Mt,lenSquare:It,lengthSquare:Tt,mul:function(t,e,n){return t[0]=e[0]*n[0],t[1]=e[1]*n[1],t},div:function(t,e,n){return t[0]=e[0]/n[0],t[1]=e[1]/n[1],t},dot:function(t,e){return t[0]*e[0]+t[1]*e[1]},scale:Ct,normalize:At,distance:Dt,dist:Lt,distanceSquare:kt,distSquare:Pt,negate:function(t,e){return t[0]=-e[0],t[1]=-e[1],t},lerp:Ot,applyTransform:Rt,min:Nt,max:Et}),Bt=function(t,e){this.target=t,this.topTarget=e&&e.topTarget},Vt=function(){function t(t){this.handler=t,t.on("mousedown",this._dragStart,this),t.on("mousemove",this._drag,this),t.on("mouseup",this._dragEnd,this)}return t.prototype._dragStart=function(t){for(var e=t.target;e&&!e.draggable;)e=e.parent;e&&(this._draggingTarget=e,e.dragging=!0,this._x=t.offsetX,this._y=t.offsetY,this.handler.dispatchToElement(new Bt(e,t),"dragstart",t.event))},t.prototype._drag=function(t){var e=this._draggingTarget;if(e){var n=t.offsetX,i=t.offsetY,r=n-this._x,o=i-this._y;this._x=n,this._y=i,e.drift(r,o,t),this.handler.dispatchToElement(new Bt(e,t),"drag",t.event);var a=this.handler.findHover(n,i,e).target,s=this._dropTarget;this._dropTarget=a,e!==a&&(s&&a!==s&&this.handler.dispatchToElement(new Bt(s,t),"dragleave",t.event),a&&a!==s&&this.handler.dispatchToElement(new Bt(a,t),"dragenter",t.event))}},t.prototype._dragEnd=function(t){var e=this._draggingTarget;e&&(e.dragging=!1),this.handler.dispatchToElement(new Bt(e,t),"dragend",t.event),this._dropTarget&&this.handler.dispatchToElement(new Bt(this._dropTarget,t),"drop",t.event),this._draggingTarget=null,this._dropTarget=null},t}(),Ft=function(){function t(t){t&&(this._$eventProcessor=t)}return t.prototype.on=function(t,e,n,i){this._$handlers||(this._$handlers={});var r=this._$handlers;if("function"==typeof e&&(i=n,n=e,e=null),!n||!t)return this;var o=this._$eventProcessor;null!=e&&o&&o.normalizeQuery&&(e=o.normalizeQuery(e)),r[t]||(r[t]=[]);for(var a=0;a<r[t].length;a++)if(r[t][a].h===n)return this;var s={h:n,query:e,ctx:i||this,callAtLast:n.zrEventfulCallAtLast},l=r[t].length-1,u=r[t][l];return u&&u.callAtLast?r[t].splice(l,0,s):r[t].push(s),this},t.prototype.isSilent=function(t){var e=this._$handlers;return!e||!e[t]||!e[t].length},t.prototype.off=function(t,e){var n=this._$handlers;if(!n)return this;if(!t)return this._$handlers={},this;if(e){if(n[t]){for(var i=[],r=0,o=n[t].length;r<o;r++)n[t][r].h!==e&&i.push(n[t][r]);n[t]=i}n[t]&&0===n[t].length&&delete n[t]}else delete n[t];return this},t.prototype.trigger=function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];if(!this._$handlers)return this;var i=this._$handlers[t],r=this._$eventProcessor;if(i)for(var o=e.length,a=i.length,s=0;s<a;s++){var l=i[s];if(!r||!r.filter||null==l.query||r.filter(t,l.query))switch(o){case 0:l.h.call(l.ctx);break;case 1:l.h.call(l.ctx,e[0]);break;case 2:l.h.call(l.ctx,e[0],e[1]);break;default:l.h.apply(l.ctx,e)}}return r&&r.afterTrigger&&r.afterTrigger(t),this},t.prototype.triggerWithContext=function(t){if(!this._$handlers)return this;var e=this._$handlers[t],n=this._$eventProcessor;if(e)for(var i=arguments,r=i.length,o=i[r-1],a=e.length,s=0;s<a;s++){var l=e[s];if(!n||!n.filter||null==l.query||n.filter(t,l.query))switch(r){case 0:l.h.call(o);break;case 1:l.h.call(o,i[0]);break;case 2:l.h.call(o,i[0],i[1]);break;default:l.h.apply(o,i.slice(1,r-1))}}return n&&n.afterTrigger&&n.afterTrigger(t),this},t}(),Gt=Math.log(2);function Ht(t,e,n,i,r,o){var a=i+"-"+r,s=t.length;if(o.hasOwnProperty(a))return o[a];if(1===e){var l=Math.round(Math.log((1<<s)-1&~r)/Gt);return t[n][l]}for(var u=i|1<<n,h=n+1;i&1<<h;)h++;for(var c=0,p=0,d=0;p<s;p++){var f=1<<p;f&r||(c+=(d%2?-1:1)*t[n][p]*Ht(t,e-1,h,u,r|f,o),d++)}return o[a]=c,c}function Wt(t,e){var n=[[t[0],t[1],1,0,0,0,-e[0]*t[0],-e[0]*t[1]],[0,0,0,t[0],t[1],1,-e[1]*t[0],-e[1]*t[1]],[t[2],t[3],1,0,0,0,-e[2]*t[2],-e[2]*t[3]],[0,0,0,t[2],t[3],1,-e[3]*t[2],-e[3]*t[3]],[t[4],t[5],1,0,0,0,-e[4]*t[4],-e[4]*t[5]],[0,0,0,t[4],t[5],1,-e[5]*t[4],-e[5]*t[5]],[t[6],t[7],1,0,0,0,-e[6]*t[6],-e[6]*t[7]],[0,0,0,t[6],t[7],1,-e[7]*t[6],-e[7]*t[7]]],i={},r=Ht(n,8,0,0,0,i);if(0!==r){for(var o=[],a=0;a<8;a++)for(var s=0;s<8;s++)null==o[s]&&(o[s]=0),o[s]+=((a+s)%2?-1:1)*Ht(n,7,0===a?1:0,1<<a,1<<s,i)/r*e[a];return function(t,e,n){var i=e*o[6]+n*o[7]+1;t[0]=(e*o[0]+n*o[1]+o[2])/i,t[1]=(e*o[3]+n*o[4]+o[5])/i}}}var Yt=[];function Xt(t,e,n,i,r){if(e.getBoundingClientRect&&o.domSupported&&!Ut(e)){var a=e.___zrEVENTSAVED||(e.___zrEVENTSAVED={}),s=function(t,e,n){for(var i=n?"invTrans":"trans",r=e[i],o=e.srcCoords,a=[],s=[],l=!0,u=0;u<4;u++){var h=t[u].getBoundingClientRect(),c=2*u,p=h.left,d=h.top;a.push(p,d),l=l&&o&&p===o[c]&&d===o[c+1],s.push(t[u].offsetLeft,t[u].offsetTop)}return l&&r?r:(e.srcCoords=a,e[i]=n?Wt(s,a):Wt(a,s))}(function(t,e){var n=e.markers;if(n)return n;n=e.markers=[];for(var i=["left","right"],r=["top","bottom"],o=0;o<4;o++){var a=document.createElement("div"),s=o%2,l=(o>>1)%2;a.style.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",i[s]+":0",r[l]+":0",i[1-s]+":auto",r[1-l]+":auto",""].join("!important;"),t.appendChild(a),n.push(a)}return n}(e,a),a,r);if(s)return s(t,n,i),!0}return!1}function Ut(t){return"CANVAS"===t.nodeName.toUpperCase()}var Zt="undefined"!=typeof window&&!!window.addEventListener,jt=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,qt=[];function Kt(t,e,n,i){return n=n||{},i||!o.canvasSupported?$t(t,e,n):o.browser.firefox&&null!=e.layerX&&e.layerX!==e.offsetX?(n.zrX=e.layerX,n.zrY=e.layerY):null!=e.offsetX?(n.zrX=e.offsetX,n.zrY=e.offsetY):$t(t,e,n),n}function $t(t,e,n){if(o.domSupported&&t.getBoundingClientRect){var i=e.clientX,r=e.clientY;if(Ut(t)){var a=t.getBoundingClientRect();return n.zrX=i-a.left,void(n.zrY=r-a.top)}if(Xt(qt,t,i,r))return n.zrX=qt[0],void(n.zrY=qt[1])}n.zrX=n.zrY=0}function Jt(t){return t||window.event}function Qt(t,e,n){if(null!=(e=Jt(e)).zrX)return e;var i=e.type;if(i&&i.indexOf("touch")>=0){var r="touchend"!==i?e.targetTouches[0]:e.changedTouches[0];r&&Kt(t,r,e,n)}else{Kt(t,e,e,n);var o=function(t){var e=t.wheelDelta;if(e)return e;var n=t.deltaX,i=t.deltaY;if(null==n||null==i)return e;return 3*(0!==i?Math.abs(i):Math.abs(n))*(i>0?-1:i<0?1:n>0?-1:1)}(e);e.zrDelta=o?o/120:-(e.detail||0)/3}var a=e.button;return null==e.which&&void 0!==a&&jt.test(e.type)&&(e.which=1&a?1:2&a?3:4&a?2:0),e}function te(t,e,n,i){Zt?t.addEventListener(e,n,i):t.attachEvent("on"+e,n)}var ee=Zt?function(t){t.preventDefault(),t.stopPropagation(),t.cancelBubble=!0}:function(t){t.returnValue=!1,t.cancelBubble=!0};function ne(t){return 2===t.which||3===t.which}var ie=function(){function t(){this._track=[]}return t.prototype.recognize=function(t,e,n){return this._doTrack(t,e,n),this._recognize(t)},t.prototype.clear=function(){return this._track.length=0,this},t.prototype._doTrack=function(t,e,n){var i=t.touches;if(i){for(var r={points:[],touches:[],target:e,event:t},o=0,a=i.length;o<a;o++){var s=i[o],l=Kt(n,s,{});r.points.push([l.zrX,l.zrY]),r.touches.push(s)}this._track.push(r)}},t.prototype._recognize=function(t){for(var e in oe)if(oe.hasOwnProperty(e)){var n=oe[e](this._track,t);if(n)return n}},t}();function re(t){var e=t[1][0]-t[0][0],n=t[1][1]-t[0][1];return Math.sqrt(e*e+n*n)}var oe={pinch:function(t,e){var n=t.length;if(n){var i,r=(t[n-1]||{}).points,o=(t[n-2]||{}).points||r;if(o&&o.length>1&&r&&r.length>1){var a=re(r)/re(o);!isFinite(a)&&(a=1),e.pinchScale=a;var s=[((i=r)[0][0]+i[1][0])/2,(i[0][1]+i[1][1])/2];return e.pinchX=s[0],e.pinchY=s[1],{type:"pinch",target:t[0].target,event:e}}}}};function ae(){ee(this.event)}var se=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.handler=null,e}return gt(e,t),e.prototype.dispose=function(){},e.prototype.setCursor=function(){},e}(Ft),le=function(t,e){this.x=t,this.y=e},ue=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],he=function(t){function e(e,n,i,r){var o=t.call(this)||this;return o._hovered=new le(0,0),o.storage=e,o.painter=n,o.painterRoot=r,i=i||new se,o.proxy=null,o.setHandlerProxy(i),o._draggingMgr=new Vt(o),o}return gt(e,t),e.prototype.setHandlerProxy=function(t){this.proxy&&this.proxy.dispose(),t&&(k(ue,(function(e){t.on&&t.on(e,this[e],this)}),this),t.handler=this),this.proxy=t},e.prototype.mousemove=function(t){var e=t.zrX,n=t.zrY,i=pe(this,e,n),r=this._hovered,o=r.target;o&&!o.__zr&&(o=(r=this.findHover(r.x,r.y)).target);var a=this._hovered=i?new le(e,n):this.findHover(e,n),s=a.target,l=this.proxy;l.setCursor&&l.setCursor(s?s.cursor:"default"),o&&s!==o&&this.dispatchToElement(r,"mouseout",t),this.dispatchToElement(a,"mousemove",t),s&&s!==o&&this.dispatchToElement(a,"mouseover",t)},e.prototype.mouseout=function(t){var e=t.zrEventControl;"only_globalout"!==e&&this.dispatchToElement(this._hovered,"mouseout",t),"no_globalout"!==e&&this.trigger("globalout",{type:"globalout",event:t})},e.prototype.resize=function(){this._hovered=new le(0,0)},e.prototype.dispatch=function(t,e){var n=this[t];n&&n.call(this,e)},e.prototype.dispose=function(){this.proxy.dispose(),this.storage=null,this.proxy=null,this.painter=null},e.prototype.setCursorStyle=function(t){var e=this.proxy;e.setCursor&&e.setCursor(t)},e.prototype.dispatchToElement=function(t,e,n){var i=(t=t||{}).target;if(!i||!i.silent){for(var r="on"+e,o=function(t,e,n){return{type:t,event:n,target:e.target,topTarget:e.topTarget,cancelBubble:!1,offsetX:n.zrX,offsetY:n.zrY,gestureEvent:n.gestureEvent,pinchX:n.pinchX,pinchY:n.pinchY,pinchScale:n.pinchScale,wheelDelta:n.zrDelta,zrByTouch:n.zrByTouch,which:n.which,stop:ae}}(e,t,n);i&&(i[r]&&(o.cancelBubble=!!i[r].call(i,o)),i.trigger(e,o),i=i.__hostTarget?i.__hostTarget:i.parent,!o.cancelBubble););o.cancelBubble||(this.trigger(e,o),this.painter&&this.painter.eachOtherLayer&&this.painter.eachOtherLayer((function(t){"function"==typeof t[r]&&t[r].call(t,o),t.trigger&&t.trigger(e,o)})))}},e.prototype.findHover=function(t,e,n){for(var i=this.storage.getDisplayList(),r=new le(t,e),o=i.length-1;o>=0;o--){var a=void 0;if(i[o]!==n&&!i[o].ignore&&(a=ce(i[o],t,e))&&(!r.topTarget&&(r.topTarget=i[o]),"silent"!==a)){r.target=i[o];break}}return r},e.prototype.processGesture=function(t,e){this._gestureMgr||(this._gestureMgr=new ie);var n=this._gestureMgr;"start"===e&&n.clear();var i=n.recognize(t,this.findHover(t.zrX,t.zrY,null).target,this.proxy.dom);if("end"===e&&n.clear(),i){var r=i.type;t.gestureEvent=r;var o=new le;o.target=i.target,this.dispatchToElement(o,r,i.event)}},e}(Ft);function ce(t,e,n){if(t[t.rectHover?"rectContain":"contain"](e,n)){for(var i=t,r=void 0,o=!1;i;){if(i.ignoreClip&&(o=!0),!o){var a=i.getClipPath();if(a&&!a.contain(e,n))return!1;i.silent&&(r=!0)}var s=i.__hostTarget;i=s||i.parent}return!r||"silent"}return!1}function pe(t,e,n){var i=t.painter;return e<0||e>i.getWidth()||n<0||n>i.getHeight()}function de(){return[1,0,0,1,0,0]}function fe(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t}function ge(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function ye(t,e,n){var i=e[0]*n[0]+e[2]*n[1],r=e[1]*n[0]+e[3]*n[1],o=e[0]*n[2]+e[2]*n[3],a=e[1]*n[2]+e[3]*n[3],s=e[0]*n[4]+e[2]*n[5]+e[4],l=e[1]*n[4]+e[3]*n[5]+e[5];return t[0]=i,t[1]=r,t[2]=o,t[3]=a,t[4]=s,t[5]=l,t}function ve(t,e,n){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4]+n[0],t[5]=e[5]+n[1],t}function me(t,e,n){var i=e[0],r=e[2],o=e[4],a=e[1],s=e[3],l=e[5],u=Math.sin(n),h=Math.cos(n);return t[0]=i*h+a*u,t[1]=-i*u+a*h,t[2]=r*h+s*u,t[3]=-r*u+h*s,t[4]=h*o+u*l,t[5]=h*l-u*o,t}function _e(t,e,n){var i=n[0],r=n[1];return t[0]=e[0]*i,t[1]=e[1]*r,t[2]=e[2]*i,t[3]=e[3]*r,t[4]=e[4]*i,t[5]=e[5]*r,t}function xe(t,e){var n=e[0],i=e[2],r=e[4],o=e[1],a=e[3],s=e[5],l=n*a-o*i;return l?(l=1/l,t[0]=a*l,t[1]=-o*l,t[2]=-i*l,t[3]=n*l,t[4]=(i*s-a*r)*l,t[5]=(o*r-n*s)*l,t):null}function be(t){var e=[1,0,0,1,0,0];return ge(e,t),e}k(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],(function(t){he.prototype[t]=function(e){var n,i,r=e.zrX,o=e.zrY,a=pe(this,r,o);if("mouseup"===t&&a||(i=(n=this.findHover(r,o)).target),"mousedown"===t)this._downEl=i,this._downPoint=[e.zrX,e.zrY],this._upEl=i;else if("mouseup"===t)this._upEl=i;else if("click"===t){if(this._downEl!==this._upEl||!this._downPoint||Lt(this._downPoint,[e.zrX,e.zrY])>4)return;this._downPoint=null}this.dispatchToElement(n,t,e)}}));var we=Object.freeze({__proto__:null,create:de,identity:fe,copy:ge,mul:ye,translate:ve,rotate:me,scale:_e,invert:xe,clone:be}),Se=fe;function Me(t){return t>5e-5||t<-5e-5}var Ie=[],Te=[],Ce=[1,0,0,1,0,0],Ae=Math.abs,De=function(){function t(){}return t.prototype.setPosition=function(t){this.x=t[0],this.y=t[1]},t.prototype.setScale=function(t){this.scaleX=t[0],this.scaleY=t[1]},t.prototype.setOrigin=function(t){this.originX=t[0],this.originY=t[1]},t.prototype.needLocalTransform=function(){return Me(this.rotation)||Me(this.x)||Me(this.y)||Me(this.scaleX-1)||Me(this.scaleY-1)},t.prototype.updateTransform=function(){var t=this.parent,e=t&&t.transform,n=this.needLocalTransform(),i=this.transform;n||e?(i=i||[1,0,0,1,0,0],n?this.getLocalTransform(i):Se(i),e&&(n?ye(i,t.transform,i):ge(i,t.transform)),this.transform=i,this._resolveGlobalScaleRatio(i)):i&&Se(i)},t.prototype._resolveGlobalScaleRatio=function(t){var e=this.globalScaleRatio;if(null!=e&&1!==e){this.getGlobalScale(Ie);var n=Ie[0]<0?-1:1,i=Ie[1]<0?-1:1,r=((Ie[0]-n)*e+n)/Ie[0]||0,o=((Ie[1]-i)*e+i)/Ie[1]||0;t[0]*=r,t[1]*=r,t[2]*=o,t[3]*=o}this.invTransform=this.invTransform||[1,0,0,1,0,0],xe(this.invTransform,t)},t.prototype.getLocalTransform=function(e){return t.getLocalTransform(this,e)},t.prototype.getComputedTransform=function(){for(var t=this,e=[];t;)e.push(t),t=t.parent;for(;t=e.pop();)t.updateTransform();return this.transform},t.prototype.setLocalTransform=function(t){if(t){var e=t[0]*t[0]+t[1]*t[1],n=t[2]*t[2]+t[3]*t[3];Me(e-1)&&(e=Math.sqrt(e)),Me(n-1)&&(n=Math.sqrt(n)),t[0]<0&&(e=-e),t[3]<0&&(n=-n),this.rotation=Math.atan2(-t[1]/n,t[0]/e),e<0&&n<0&&(this.rotation+=Math.PI,e=-e,n=-n),this.x=t[4],this.y=t[5],this.scaleX=e,this.scaleY=n}},t.prototype.decomposeTransform=function(){if(this.transform){var t=this.parent,e=this.transform;t&&t.transform&&(ye(Te,t.invTransform,e),e=Te);var n=this.originX,i=this.originY;(n||i)&&(Ce[4]=n,Ce[5]=i,ye(Te,e,Ce),Te[4]-=n,Te[5]-=i,e=Te),this.setLocalTransform(e)}},t.prototype.getGlobalScale=function(t){var e=this.transform;return t=t||[],e?(t[0]=Math.sqrt(e[0]*e[0]+e[1]*e[1]),t[1]=Math.sqrt(e[2]*e[2]+e[3]*e[3]),e[0]<0&&(t[0]=-t[0]),e[3]<0&&(t[1]=-t[1]),t):(t[0]=1,t[1]=1,t)},t.prototype.transformCoordToLocal=function(t,e){var n=[t,e],i=this.invTransform;return i&&Rt(n,n,i),n},t.prototype.transformCoordToGlobal=function(t,e){var n=[t,e],i=this.transform;return i&&Rt(n,n,i),n},t.prototype.getLineScale=function(){var t=this.transform;return t&&Ae(t[0]-1)>1e-10&&Ae(t[3]-1)>1e-10?Math.sqrt(Ae(t[0]*t[3]-t[2]*t[1])):1},t.getLocalTransform=function(t,e){Se(e=e||[]);var n=t.originX||0,i=t.originY||0,r=t.scaleX,o=t.scaleY,a=t.rotation||0,s=t.x,l=t.y;return e[4]-=n,e[5]-=i,e[0]*=r,e[1]*=o,e[2]*=r,e[3]*=o,e[4]*=r,e[5]*=o,a&&me(e,e,a),e[4]+=n,e[5]+=i,e[4]+=s,e[5]+=l,e},t.initDefaultProps=function(){var e=t.prototype;e.x=0,e.y=0,e.scaleX=1,e.scaleY=1,e.originX=0,e.originY=0,e.rotation=0,e.globalScaleRatio=1}(),t}(),Le={linear:function(t){return t},quadraticIn:function(t){return t*t},quadraticOut:function(t){return t*(2-t)},quadraticInOut:function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)},cubicIn:function(t){return t*t*t},cubicOut:function(t){return--t*t*t+1},cubicInOut:function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},quarticIn:function(t){return t*t*t*t},quarticOut:function(t){return 1- --t*t*t*t},quarticInOut:function(t){return(t*=2)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},quinticIn:function(t){return t*t*t*t*t},quinticOut:function(t){return--t*t*t*t*t+1},quinticInOut:function(t){return(t*=2)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},sinusoidalIn:function(t){return 1-Math.cos(t*Math.PI/2)},sinusoidalOut:function(t){return Math.sin(t*Math.PI/2)},sinusoidalInOut:function(t){return.5*(1-Math.cos(Math.PI*t))},exponentialIn:function(t){return 0===t?0:Math.pow(1024,t-1)},exponentialOut:function(t){return 1===t?1:1-Math.pow(2,-10*t)},exponentialInOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(2-Math.pow(2,-10*(t-1)))},circularIn:function(t){return 1-Math.sqrt(1-t*t)},circularOut:function(t){return Math.sqrt(1- --t*t)},circularInOut:function(t){return(t*=2)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},elasticIn:function(t){var e,n=.1;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=.4*Math.asin(1/n)/(2*Math.PI),-n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/.4))},elasticOut:function(t){var e,n=.1;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=.4*Math.asin(1/n)/(2*Math.PI),n*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/.4)+1)},elasticInOut:function(t){var e,n=.1,i=.4;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=i*Math.asin(1/n)/(2*Math.PI),(t*=2)<1?n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*-.5:n*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*.5+1)},backIn:function(t){var e=1.70158;return t*t*((e+1)*t-e)},backOut:function(t){var e=1.70158;return--t*t*((e+1)*t+e)+1},backInOut:function(t){var e=2.5949095;return(t*=2)<1?t*t*((e+1)*t-e)*.5:.5*((t-=2)*t*((e+1)*t+e)+2)},bounceIn:function(t){return 1-Le.bounceOut(1-t)},bounceOut:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},bounceInOut:function(t){return t<.5?.5*Le.bounceIn(2*t):.5*Le.bounceOut(2*t-1)+.5}},ke=function(){function t(t){this._initialized=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=t.life||1e3,this._delay=t.delay||0,this.loop=null!=t.loop&&t.loop,this.gap=t.gap||0,this.easing=t.easing||"linear",this.onframe=t.onframe,this.ondestroy=t.ondestroy,this.onrestart=t.onrestart}return t.prototype.step=function(t,e){if(this._initialized||(this._startTime=t+this._delay,this._initialized=!0),!this._paused){var n=(t-this._startTime-this._pausedTime)/this._life;n<0&&(n=0),n=Math.min(n,1);var i=this.easing,r="string"==typeof i?Le[i]:i,o="function"==typeof r?r(n):n;if(this.onframe&&this.onframe(o),1===n){if(!this.loop)return!0;this._restart(t),this.onrestart&&this.onrestart()}return!1}this._pausedTime+=e},t.prototype._restart=function(t){var e=(t-this._startTime-this._pausedTime)%this._life;this._startTime=t-e+this.gap,this._pausedTime=0},t.prototype.pause=function(){this._paused=!0},t.prototype.resume=function(){this._paused=!1},t}(),Pe=function(t){this.value=t},Oe=function(){function t(){this._len=0}return t.prototype.insert=function(t){var e=new Pe(t);return this.insertEntry(e),e},t.prototype.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t):this.head=this.tail=t,this._len++},t.prototype.remove=function(t){var e=t.prev,n=t.next;e?e.next=n:this.head=n,n?n.prev=e:this.tail=e,t.next=t.prev=null,this._len--},t.prototype.len=function(){return this._len},t.prototype.clear=function(){this.head=this.tail=null,this._len=0},t}(),Re=function(){function t(t){this._list=new Oe,this._maxSize=10,this._map={},this._maxSize=t}return t.prototype.put=function(t,e){var n=this._list,i=this._map,r=null;if(null==i[t]){var o=n.len(),a=this._lastRemovedEntry;if(o>=this._maxSize&&o>0){var s=n.head;n.remove(s),delete i[s.key],r=s.value,this._lastRemovedEntry=s}a?a.value=e:a=new Pe(e),a.key=t,n.insertEntry(a),i[t]=a}return r},t.prototype.get=function(t){var e=this._map[t],n=this._list;if(null!=e)return e!==n.tail&&(n.remove(e),n.insertEntry(e)),e.value},t.prototype.clear=function(){this._list.clear(),this._map={}},t.prototype.len=function(){return this._list.len()},t}(),Ne={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function Ee(t){return(t=Math.round(t))<0?0:t>255?255:t}function ze(t){return t<0?0:t>1?1:t}function Be(t){var e=t;return e.length&&"%"===e.charAt(e.length-1)?Ee(parseFloat(e)/100*255):Ee(parseInt(e,10))}function Ve(t){var e=t;return e.length&&"%"===e.charAt(e.length-1)?ze(parseFloat(e)/100):ze(parseFloat(e))}function Fe(t,e,n){return n<0?n+=1:n>1&&(n-=1),6*n<1?t+(e-t)*n*6:2*n<1?e:3*n<2?t+(e-t)*(2/3-n)*6:t}function Ge(t,e,n){return t+(e-t)*n}function He(t,e,n,i,r){return t[0]=e,t[1]=n,t[2]=i,t[3]=r,t}function We(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}var Ye=new Re(20),Xe=null;function Ue(t,e){Xe&&We(Xe,e),Xe=Ye.put(t,Xe||e.slice())}function Ze(t,e){if(t){e=e||[];var n=Ye.get(t);if(n)return We(e,n);var i=(t+="").replace(/ /g,"").toLowerCase();if(i in Ne)return We(e,Ne[i]),Ue(t,e),e;var r,o=i.length;if("#"===i.charAt(0))return 4===o||5===o?(r=parseInt(i.slice(1,4),16))>=0&&r<=4095?(He(e,(3840&r)>>4|(3840&r)>>8,240&r|(240&r)>>4,15&r|(15&r)<<4,5===o?parseInt(i.slice(4),16)/15:1),Ue(t,e),e):void He(e,0,0,0,1):7===o||9===o?(r=parseInt(i.slice(1,7),16))>=0&&r<=16777215?(He(e,(16711680&r)>>16,(65280&r)>>8,255&r,9===o?parseInt(i.slice(7),16)/255:1),Ue(t,e),e):void He(e,0,0,0,1):void 0;var a=i.indexOf("("),s=i.indexOf(")");if(-1!==a&&s+1===o){var l=i.substr(0,a),u=i.substr(a+1,s-(a+1)).split(","),h=1;switch(l){case"rgba":if(4!==u.length)return 3===u.length?He(e,+u[0],+u[1],+u[2],1):He(e,0,0,0,1);h=Ve(u.pop());case"rgb":return 3!==u.length?void He(e,0,0,0,1):(He(e,Be(u[0]),Be(u[1]),Be(u[2]),h),Ue(t,e),e);case"hsla":return 4!==u.length?void He(e,0,0,0,1):(u[3]=Ve(u[3]),je(u,e),Ue(t,e),e);case"hsl":return 3!==u.length?void He(e,0,0,0,1):(je(u,e),Ue(t,e),e);default:return}}He(e,0,0,0,1)}}function je(t,e){var n=(parseFloat(t[0])%360+360)%360/360,i=Ve(t[1]),r=Ve(t[2]),o=r<=.5?r*(i+1):r+i-r*i,a=2*r-o;return He(e=e||[],Ee(255*Fe(a,o,n+1/3)),Ee(255*Fe(a,o,n)),Ee(255*Fe(a,o,n-1/3)),1),4===t.length&&(e[3]=t[3]),e}function qe(t,e){var n=Ze(t);if(n){for(var i=0;i<3;i++)n[i]=e<0?n[i]*(1-e)|0:(255-n[i])*e+n[i]|0,n[i]>255?n[i]=255:n[i]<0&&(n[i]=0);return rn(n,4===n.length?"rgba":"rgb")}}function Ke(t){var e=Ze(t);if(e)return((1<<24)+(e[0]<<16)+(e[1]<<8)+ +e[2]).toString(16).slice(1)}function $e(t,e,n){if(e&&e.length&&t>=0&&t<=1){n=n||[];var i=t*(e.length-1),r=Math.floor(i),o=Math.ceil(i),a=e[r],s=e[o],l=i-r;return n[0]=Ee(Ge(a[0],s[0],l)),n[1]=Ee(Ge(a[1],s[1],l)),n[2]=Ee(Ge(a[2],s[2],l)),n[3]=ze(Ge(a[3],s[3],l)),n}}var Je=$e;function Qe(t,e,n){if(e&&e.length&&t>=0&&t<=1){var i=t*(e.length-1),r=Math.floor(i),o=Math.ceil(i),a=Ze(e[r]),s=Ze(e[o]),l=i-r,u=rn([Ee(Ge(a[0],s[0],l)),Ee(Ge(a[1],s[1],l)),Ee(Ge(a[2],s[2],l)),ze(Ge(a[3],s[3],l))],"rgba");return n?{color:u,leftIndex:r,rightIndex:o,value:i}:u}}var tn=Qe;function en(t,e,n,i){var r=Ze(t);if(t)return r=function(t){if(t){var e,n,i=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.min(i,r,o),s=Math.max(i,r,o),l=s-a,u=(s+a)/2;if(0===l)e=0,n=0;else{n=u<.5?l/(s+a):l/(2-s-a);var h=((s-i)/6+l/2)/l,c=((s-r)/6+l/2)/l,p=((s-o)/6+l/2)/l;i===s?e=p-c:r===s?e=1/3+h-p:o===s&&(e=2/3+c-h),e<0&&(e+=1),e>1&&(e-=1)}var d=[360*e,n,u];return null!=t[3]&&d.push(t[3]),d}}(r),null!=e&&(r[0]=function(t){return(t=Math.round(t))<0?0:t>360?360:t}(e)),null!=n&&(r[1]=Ve(n)),null!=i&&(r[2]=Ve(i)),rn(je(r),"rgba")}function nn(t,e){var n=Ze(t);if(n&&null!=e)return n[3]=ze(e),rn(n,"rgba")}function rn(t,e){if(t&&t.length){var n=t[0]+","+t[1]+","+t[2];return"rgba"!==e&&"hsva"!==e&&"hsla"!==e||(n+=","+t[3]),e+"("+n+")"}}function on(t,e){var n=Ze(t);return n?(.299*n[0]+.587*n[1]+.114*n[2])*n[3]/255+(1-n[3])*e:0}var an=Object.freeze({__proto__:null,parse:Ze,lift:qe,toHex:Ke,fastLerp:$e,fastMapToColor:Je,lerp:Qe,mapToColor:tn,modifyHSL:en,modifyAlpha:nn,stringify:rn,lum:on,random:function(){return"rgb("+Math.round(255*Math.random())+","+Math.round(255*Math.random())+","+Math.round(255*Math.random())+")"}}),sn=Array.prototype.slice;function ln(t,e,n){return(e-t)*n+t}function un(t,e,n,i){for(var r=e.length,o=0;o<r;o++)t[o]=ln(e[o],n[o],i)}function hn(t,e,n,i){for(var r=e.length,o=0;o<r;o++)t[o]=e[o]+n[o]*i;return t}function cn(t,e,n,i){for(var r=e.length,o=r&&e[0].length,a=0;a<r;a++){t[a]||(t[a]=[]);for(var s=0;s<o;s++)t[a][s]=e[a][s]+n[a][s]*i}return t}function pn(t,e,n){var i=t,r=e;if(i.push&&r.push){var o=i.length,a=r.length;if(o!==a)if(o>a)i.length=a;else for(var s=o;s<a;s++)i.push(1===n?r[s]:sn.call(r[s]));var l=i[0]&&i[0].length;for(s=0;s<i.length;s++)if(1===n)isNaN(i[s])&&(i[s]=r[s]);else for(var u=0;u<l;u++)isNaN(i[s][u])&&(i[s][u]=r[s][u])}}function dn(t,e){var n=t.length;if(n!==e.length)return!1;for(var i=0;i<n;i++)if(t[i]!==e[i])return!1;return!0}function fn(t,e,n,i,r,o,a){var s=.5*(n-t),l=.5*(i-e);return(2*(e-n)+s+l)*a+(-3*(e-n)-2*s-l)*o+s*r+e}function gn(t,e,n,i,r,o,a,s){for(var l=e.length,u=0;u<l;u++)t[u]=fn(e[u],n[u],i[u],r[u],o,a,s)}function yn(t){if(L(t)){var e=t.length;if(L(t[0])){for(var n=[],i=0;i<e;i++)n.push(sn.call(t[i]));return n}return sn.call(t)}return t}function vn(t){return t[0]=Math.floor(t[0]),t[1]=Math.floor(t[1]),t[2]=Math.floor(t[2]),"rgba("+t.join(",")+")"}var mn,_n,xn=[0,0,0,0],bn=function(){function t(t){this.keyframes=[],this.maxTime=0,this.arrDim=0,this.interpolable=!0,this._needsSort=!1,this._isAllValueEqual=!0,this._lastFrame=0,this._lastFramePercent=0,this.propName=t}return t.prototype.isFinished=function(){return this._finished},t.prototype.setFinished=function(){this._finished=!0,this._additiveTrack&&this._additiveTrack.setFinished()},t.prototype.needsAnimate=function(){return!this._isAllValueEqual&&this.keyframes.length>=2&&this.interpolable},t.prototype.getAdditiveTrack=function(){return this._additiveTrack},t.prototype.addKeyframe=function(t,e){t>=this.maxTime?this.maxTime=t:this._needsSort=!0;var n=this.keyframes,i=n.length;if(this.interpolable)if(L(e)){var r=function(t){return L(t&&t[0])?2:1}(e);if(i>0&&this.arrDim!==r)return void(this.interpolable=!1);if(1===r&&"number"!=typeof e[0]||2===r&&"number"!=typeof e[0][0])return void(this.interpolable=!1);if(i>0){var o=n[i-1];this._isAllValueEqual&&(1===r&&dn(e,o.value)||(this._isAllValueEqual=!1))}this.arrDim=r}else{if(this.arrDim>0)return void(this.interpolable=!1);if("string"==typeof e){var a=Ze(e);a?(e=a,this.isValueColor=!0):this.interpolable=!1}else if("number"!=typeof e)return void(this.interpolable=!1);if(this._isAllValueEqual&&i>0){o=n[i-1];(this.isValueColor&&!dn(o.value,e)||o.value!==e)&&(this._isAllValueEqual=!1)}}var s={time:t,value:e,percent:0};return this.keyframes.push(s),s},t.prototype.prepare=function(t){var e=this.keyframes;this._needsSort&&e.sort((function(t,e){return t.time-e.time}));for(var n=this.arrDim,i=e.length,r=e[i-1],o=0;o<i;o++)e[o].percent=e[o].time/this.maxTime,n>0&&o!==i-1&&pn(e[o].value,r.value,n);if(t&&this.needsAnimate()&&t.needsAnimate()&&n===t.arrDim&&this.isValueColor===t.isValueColor&&!t._finished){this._additiveTrack=t;var a=e[0].value;for(o=0;o<i;o++)0===n?this.isValueColor?e[o].additiveValue=hn([],e[o].value,a,-1):e[o].additiveValue=e[o].value-a:1===n?e[o].additiveValue=hn([],e[o].value,a,-1):2===n&&(e[o].additiveValue=cn([],e[o].value,a,-1))}},t.prototype.step=function(t,e){if(!this._finished){this._additiveTrack&&this._additiveTrack._finished&&(this._additiveTrack=null);var n,i=null!=this._additiveTrack,r=i?"additiveValue":"value",o=this.keyframes,a=this.keyframes.length,s=this.propName,l=this.arrDim,u=this.isValueColor;if(e<0)n=0;else if(e<this._lastFramePercent){for(n=Math.min(this._lastFrame+1,a-1);n>=0&&!(o[n].percent<=e);n--);n=Math.min(n,a-2)}else{for(n=this._lastFrame;n<a&&!(o[n].percent>e);n++);n=Math.min(n-1,a-2)}var h=o[n+1],c=o[n];if(c&&h){this._lastFrame=n,this._lastFramePercent=e;var p=h.percent-c.percent;if(0!==p){var d=(e-c.percent)/p,f=i?this._additiveValue:u?xn:t[s];if((l>0||u)&&!f&&(f=this._additiveValue=[]),this.useSpline){var g=o[n][r],y=o[0===n?n:n-1][r],v=o[n>a-2?a-1:n+1][r],m=o[n>a-3?a-1:n+2][r];if(l>0)1===l?gn(f,y,g,v,m,d,d*d,d*d*d):function(t,e,n,i,r,o,a,s){for(var l=e.length,u=e[0].length,h=0;h<l;h++){t[h]||(t[1]=[]);for(var c=0;c<u;c++)t[h][c]=fn(e[h][c],n[h][c],i[h][c],r[h][c],o,a,s)}}(f,y,g,v,m,d,d*d,d*d*d);else if(u)gn(f,y,g,v,m,d,d*d,d*d*d),i||(t[s]=vn(f));else{var _=void 0;_=this.interpolable?fn(y,g,v,m,d,d*d,d*d*d):v,i?this._additiveValue=_:t[s]=_}}else if(l>0)1===l?un(f,c[r],h[r],d):function(t,e,n,i){for(var r=e.length,o=r&&e[0].length,a=0;a<r;a++){t[a]||(t[a]=[]);for(var s=0;s<o;s++)t[a][s]=ln(e[a][s],n[a][s],i)}}(f,c[r],h[r],d);else if(u)un(f,c[r],h[r],d),i||(t[s]=vn(f));else{_=void 0;_=this.interpolable?ln(c[r],h[r],d):function(t,e,n){return n>.5?e:t}(c[r],h[r],d),i?this._additiveValue=_:t[s]=_}i&&this._addToTarget(t)}}}},t.prototype._addToTarget=function(t){var e=this.arrDim,n=this.propName,i=this._additiveValue;0===e?this.isValueColor?(Ze(t[n],xn),hn(xn,xn,i,1),t[n]=vn(xn)):t[n]=t[n]+i:1===e?hn(t[n],t[n],i,1):2===e&&cn(t[n],t[n],i,1)},t}(),wn=function(){function t(t,e,n){this._tracks={},this._trackKeys=[],this._delay=0,this._maxTime=0,this._paused=!1,this._started=0,this._clip=null,this._target=t,this._loop=e,e&&n?x("Can' use additive animation on looped animation."):this._additiveAnimators=n}return t.prototype.getTarget=function(){return this._target},t.prototype.changeTarget=function(t){this._target=t},t.prototype.when=function(t,e){return this.whenWithKeys(t,e,E(e))},t.prototype.whenWithKeys=function(t,e,n){for(var i=this._tracks,r=0;r<n.length;r++){var o=n[r],a=i[o];if(!a){a=i[o]=new bn(o);var s=void 0,l=this._getAdditiveTrack(o);if(l){var u=l.keyframes[l.keyframes.length-1];s=u&&u.value,l.isValueColor&&s&&(s=vn(s))}else s=this._target[o];if(null==s)continue;0!==t&&a.addKeyframe(0,yn(s)),this._trackKeys.push(o)}a.addKeyframe(t,yn(e[o]))}return this._maxTime=Math.max(this._maxTime,t),this},t.prototype.pause=function(){this._clip.pause(),this._paused=!0},t.prototype.resume=function(){this._clip.resume(),this._paused=!1},t.prototype.isPaused=function(){return!!this._paused},t.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var t=this._doneList;if(t)for(var e=t.length,n=0;n<e;n++)t[n].call(this)},t.prototype._abortedCallback=function(){this._setTracksFinished();var t=this.animation,e=this._abortedList;if(t&&t.removeClip(this._clip),this._clip=null,e)for(var n=0;n<e.length;n++)e[n].call(this)},t.prototype._setTracksFinished=function(){for(var t=this._tracks,e=this._trackKeys,n=0;n<e.length;n++)t[e[n]].setFinished()},t.prototype._getAdditiveTrack=function(t){var e,n=this._additiveAnimators;if(n)for(var i=0;i<n.length;i++){var r=n[i].getTrack(t);r&&(e=r)}return e},t.prototype.start=function(t,e){if(!(this._started>0)){this._started=1;for(var n=this,i=[],r=0;r<this._trackKeys.length;r++){var o=this._trackKeys[r],a=this._tracks[o],s=this._getAdditiveTrack(o),l=a.keyframes;if(a.prepare(s),a.needsAnimate())i.push(a);else if(!a.interpolable){var u=l[l.length-1];u&&(n._target[a.propName]=u.value)}}if(i.length||e){var h=new ke({life:this._maxTime,loop:this._loop,delay:this._delay,onframe:function(t){n._started=2;var e=n._additiveAnimators;if(e){for(var r=!1,o=0;o<e.length;o++)if(e[o]._clip){r=!0;break}r||(n._additiveAnimators=null)}for(o=0;o<i.length;o++)i[o].step(n._target,t);var a=n._onframeList;if(a)for(o=0;o<a.length;o++)a[o](n._target,t)},ondestroy:function(){n._doneCallback()}});this._clip=h,this.animation&&this.animation.addClip(h),t&&"spline"!==t&&(h.easing=t)}else this._doneCallback();return this}},t.prototype.stop=function(t){if(this._clip){var e=this._clip;t&&e.onframe(1),this._abortedCallback()}},t.prototype.delay=function(t){return this._delay=t,this},t.prototype.during=function(t){return t&&(this._onframeList||(this._onframeList=[]),this._onframeList.push(t)),this},t.prototype.done=function(t){return t&&(this._doneList||(this._doneList=[]),this._doneList.push(t)),this},t.prototype.aborted=function(t){return t&&(this._abortedList||(this._abortedList=[]),this._abortedList.push(t)),this},t.prototype.getClip=function(){return this._clip},t.prototype.getTrack=function(t){return this._tracks[t]},t.prototype.stopTracks=function(t,e){if(!t.length||!this._clip)return!0;for(var n=this._tracks,i=this._trackKeys,r=0;r<t.length;r++){var o=n[t[r]];o&&(e?o.step(this._target,1):1===this._started&&o.step(this._target,0),o.setFinished())}var a=!0;for(r=0;r<i.length;r++)if(!n[i[r]].isFinished()){a=!1;break}return a&&this._abortedCallback(),a},t.prototype.saveFinalToTarget=function(t,e){if(t){e=e||this._trackKeys;for(var n=0;n<e.length;n++){var i=e[n],r=this._tracks[i];if(r&&!r.isFinished()){var o=r.keyframes,a=o[o.length-1];if(a){var s=yn(a.value);r.isValueColor&&(s=vn(s)),t[i]=s}}}}},t.prototype.__changeFinalValue=function(t,e){e=e||E(t);for(var n=0;n<e.length;n++){var i=e[n],r=this._tracks[i];if(r){var o=r.keyframes;if(o.length>1){var a=o.pop();r.addKeyframe(a.time,t[i]),r.prepare(r.getAdditiveTrack())}}}},t}(),Sn=function(){function t(t,e){this.x=t||0,this.y=e||0}return t.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this},t.prototype.clone=function(){return new t(this.x,this.y)},t.prototype.set=function(t,e){return this.x=t,this.y=e,this},t.prototype.equal=function(t){return t.x===this.x&&t.y===this.y},t.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this},t.prototype.scale=function(t){this.x*=t,this.y*=t},t.prototype.scaleAndAdd=function(t,e){this.x+=t.x*e,this.y+=t.y*e},t.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this},t.prototype.dot=function(t){return this.x*t.x+this.y*t.y},t.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},t.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},t.prototype.normalize=function(){var t=this.len();return this.x/=t,this.y/=t,this},t.prototype.distance=function(t){var e=this.x-t.x,n=this.y-t.y;return Math.sqrt(e*e+n*n)},t.prototype.distanceSquare=function(t){var e=this.x-t.x,n=this.y-t.y;return e*e+n*n},t.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},t.prototype.transform=function(t){if(t){var e=this.x,n=this.y;return this.x=t[0]*e+t[2]*n+t[4],this.y=t[1]*e+t[3]*n+t[5],this}},t.prototype.toArray=function(t){return t[0]=this.x,t[1]=this.y,t},t.prototype.fromArray=function(t){this.x=t[0],this.y=t[1]},t.set=function(t,e,n){t.x=e,t.y=n},t.copy=function(t,e){t.x=e.x,t.y=e.y},t.len=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)},t.lenSquare=function(t){return t.x*t.x+t.y*t.y},t.dot=function(t,e){return t.x*e.x+t.y*e.y},t.add=function(t,e,n){t.x=e.x+n.x,t.y=e.y+n.y},t.sub=function(t,e,n){t.x=e.x-n.x,t.y=e.y-n.y},t.scale=function(t,e,n){t.x=e.x*n,t.y=e.y*n},t.scaleAndAdd=function(t,e,n,i){t.x=e.x+n.x*i,t.y=e.y+n.y*i},t.lerp=function(t,e,n,i){var r=1-i;t.x=r*e.x+i*n.x,t.y=r*e.y+i*n.y},t}(),Mn=Math.min,In=Math.max,Tn=new Sn,Cn=new Sn,An=new Sn,Dn=new Sn,Ln=new Sn,kn=new Sn,Pn=function(){function t(t,e,n,i){n<0&&isFinite(n)&&(t+=n,n=-n),i<0&&isFinite(i)&&(e+=i,i=-i),this.x=t,this.y=e,this.width=n,this.height=i}return t.prototype.union=function(t){var e=Mn(t.x,this.x),n=Mn(t.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=In(t.x+t.width,this.x+this.width)-e:this.width=t.width,isFinite(this.y)&&isFinite(this.height)?this.height=In(t.y+t.height,this.y+this.height)-n:this.height=t.height,this.x=e,this.y=n},t.prototype.applyTransform=function(e){t.applyTransform(this,this,e)},t.prototype.calculateTransform=function(t){var e=this,n=t.width/e.width,i=t.height/e.height,r=[1,0,0,1,0,0];return ve(r,r,[-e.x,-e.y]),_e(r,r,[n,i]),ve(r,r,[t.x,t.y]),r},t.prototype.intersect=function(e,n){if(!e)return!1;e instanceof t||(e=t.create(e));var i=this,r=i.x,o=i.x+i.width,a=i.y,s=i.y+i.height,l=e.x,u=e.x+e.width,h=e.y,c=e.y+e.height,p=!(o<l||u<r||s<h||c<a);if(n){var d=1/0,f=0,g=Math.abs(o-l),y=Math.abs(u-r),v=Math.abs(s-h),m=Math.abs(c-a),_=Math.min(g,y),x=Math.min(v,m);o<l||u<r?_>f&&(f=_,g<y?Sn.set(kn,-g,0):Sn.set(kn,y,0)):_<d&&(d=_,g<y?Sn.set(Ln,g,0):Sn.set(Ln,-y,0)),s<h||c<a?x>f&&(f=x,v<m?Sn.set(kn,0,-v):Sn.set(kn,0,m)):_<d&&(d=_,v<m?Sn.set(Ln,0,v):Sn.set(Ln,0,-m))}return n&&Sn.copy(n,p?Ln:kn),p},t.prototype.contain=function(t,e){var n=this;return t>=n.x&&t<=n.x+n.width&&e>=n.y&&e<=n.y+n.height},t.prototype.clone=function(){return new t(this.x,this.y,this.width,this.height)},t.prototype.copy=function(e){t.copy(this,e)},t.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},t.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},t.prototype.isZero=function(){return 0===this.width||0===this.height},t.create=function(e){return new t(e.x,e.y,e.width,e.height)},t.copy=function(t,e){t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height},t.applyTransform=function(e,n,i){if(i){if(i[1]<1e-5&&i[1]>-1e-5&&i[2]<1e-5&&i[2]>-1e-5){var r=i[0],o=i[3],a=i[4],s=i[5];return e.x=n.x*r+a,e.y=n.y*o+s,e.width=n.width*r,e.height=n.height*o,e.width<0&&(e.x+=e.width,e.width=-e.width),void(e.height<0&&(e.y+=e.height,e.height=-e.height))}Tn.x=An.x=n.x,Tn.y=Dn.y=n.y,Cn.x=Dn.x=n.x+n.width,Cn.y=An.y=n.y+n.height,Tn.transform(i),Dn.transform(i),Cn.transform(i),An.transform(i),e.x=Mn(Tn.x,Cn.x,An.x,Dn.x),e.y=Mn(Tn.y,Cn.y,An.y,Dn.y);var l=In(Tn.x,Cn.x,An.x,Dn.x),u=In(Tn.y,Cn.y,An.y,Dn.y);e.width=l-e.x,e.height=u-e.y}else e!==n&&t.copy(e,n)},t}(),On={},Rn="12px sans-serif";var Nn={measureText:function(t,e){return mn||(mn=T().getContext("2d")),_n!==e&&(_n=mn.font=e||Rn),mn.measureText(t)}};function En(t,e){var n=On[e=e||Rn];n||(n=On[e]=new Re(500));var i=n.get(t);return null==i&&(i=Nn.measureText(t,e).width,n.put(t,i)),i}function zn(t,e,n,i){var r=En(t,e),o=Gn(e),a=Vn(0,r,n),s=Fn(0,o,i);return new Pn(a,s,r,o)}function Bn(t,e,n,i){var r=((t||"")+"").split("\n");if(1===r.length)return zn(r[0],e,n,i);for(var o=new Pn(0,0,0,0),a=0;a<r.length;a++){var s=zn(r[a],e,n,i);0===a?o.copy(s):o.union(s)}return o}function Vn(t,e,n){return"right"===n?t-=e:"center"===n&&(t-=e/2),t}function Fn(t,e,n){return"middle"===n?t-=e/2:"bottom"===n&&(t-=e),t}function Gn(t){return En("国",t)}function Hn(t,e){return"string"==typeof t?t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t):t}function Wn(t,e,n){var i=e.position||"inside",r=null!=e.distance?e.distance:5,o=n.height,a=n.width,s=o/2,l=n.x,u=n.y,h="left",c="top";if(i instanceof Array)l+=Hn(i[0],n.width),u+=Hn(i[1],n.height),h=null,c=null;else switch(i){case"left":l-=r,u+=s,h="right",c="middle";break;case"right":l+=r+a,u+=s,c="middle";break;case"top":l+=a/2,u-=r,h="center",c="bottom";break;case"bottom":l+=a/2,u+=o+r,h="center";break;case"inside":l+=a/2,u+=s,h="center",c="middle";break;case"insideLeft":l+=r,u+=s,c="middle";break;case"insideRight":l+=a-r,u+=s,h="right",c="middle";break;case"insideTop":l+=a/2,u+=r,h="center";break;case"insideBottom":l+=a/2,u+=o-r,h="center",c="bottom";break;case"insideTopLeft":l+=r,u+=r;break;case"insideTopRight":l+=a-r,u+=r,h="right";break;case"insideBottomLeft":l+=r,u+=o-r,c="bottom";break;case"insideBottomRight":l+=a-r,u+=o-r,h="right",c="bottom"}return(t=t||{}).x=l,t.y=u,t.align=h,t.verticalAlign=c,t}var Yn=1;"undefined"!=typeof window&&(Yn=Math.max(window.devicePixelRatio||window.screen&&window.screen.deviceXDPI/window.screen.logicalXDPI||1,1));var Xn=Yn,Un=["x","y","scaleX","scaleY","originX","originY","rotation","ignore"],Zn={x:!0,y:!0,scaleX:!0,scaleY:!0,originX:!0,originY:!0,rotation:!0,ignore:!1},jn={},qn=new Pn(0,0,0,0),Kn=function(){function t(t){this.id=_(),this.animators=[],this.currentStates=[],this.states={},this._init(t)}return t.prototype._init=function(t){this.attr(t)},t.prototype.drift=function(t,e,n){switch(this.draggable){case"horizontal":e=0;break;case"vertical":t=0}var i=this.transform;i||(i=this.transform=[1,0,0,1,0,0]),i[4]+=t,i[5]+=e,this.decomposeTransform(),this.markRedraw()},t.prototype.beforeUpdate=function(){},t.prototype.afterUpdate=function(){},t.prototype.update=function(){this.updateTransform(),this.__dirty&&this.updateInnerText()},t.prototype.updateInnerText=function(t){var e=this._textContent;if(e&&(!e.ignore||t)){this.textConfig||(this.textConfig={});var n=this.textConfig,i=n.local,r=e.attachedTransform,o=void 0,a=void 0,s=!1;r.parent=i?this:null;var l=!1;if(r.x=e.x,r.y=e.y,r.originX=e.originX,r.originY=e.originY,r.rotation=e.rotation,r.scaleX=e.scaleX,r.scaleY=e.scaleY,null!=n.position){var u=qn;n.layoutRect?u.copy(n.layoutRect):u.copy(this.getBoundingRect()),i||u.applyTransform(this.transform),this.calculateTextPosition?this.calculateTextPosition(jn,n,u):Wn(jn,n,u),r.x=jn.x,r.y=jn.y,o=jn.align,a=jn.verticalAlign;var h=n.origin;if(h&&null!=n.rotation){var c=void 0,p=void 0;"center"===h?(c=.5*u.width,p=.5*u.height):(c=Hn(h[0],u.width),p=Hn(h[1],u.height)),l=!0,r.originX=-r.x+c+(i?0:u.x),r.originY=-r.y+p+(i?0:u.y)}}null!=n.rotation&&(r.rotation=n.rotation);var d=n.offset;d&&(r.x+=d[0],r.y+=d[1],l||(r.originX=-d[0],r.originY=-d[1]));var f=null==n.inside?"string"==typeof n.position&&n.position.indexOf("inside")>=0:n.inside,g=this._innerTextDefaultStyle||(this._innerTextDefaultStyle={}),y=void 0,v=void 0,m=void 0;f&&this.canBeInsideText()?(y=n.insideFill,v=n.insideStroke,null!=y&&"auto"!==y||(y=this.getInsideTextFill()),null!=v&&"auto"!==v||(v=this.getInsideTextStroke(y),m=!0)):(y=n.outsideFill,v=n.outsideStroke,null!=y&&"auto"!==y||(y=this.getOutsideFill()),null!=v&&"auto"!==v||(v=this.getOutsideStroke(y),m=!0)),(y=y||"#000")===g.fill&&v===g.stroke&&m===g.autoStroke&&o===g.align&&a===g.verticalAlign||(s=!0,g.fill=y,g.stroke=v,g.autoStroke=m,g.align=o,g.verticalAlign=a,e.setDefaultTextStyle(g)),s&&e.dirtyStyle(),e.markRedraw()}},t.prototype.canBeInsideText=function(){return!0},t.prototype.getInsideTextFill=function(){return"#fff"},t.prototype.getInsideTextStroke=function(t){return"#000"},t.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?"#ccc":"#333"},t.prototype.getOutsideStroke=function(t){var e=this.__zr&&this.__zr.getBackgroundColor(),n="string"==typeof e&&Ze(e);n||(n=[255,255,255,1]);for(var i=n[3],r=this.__zr.isDarkMode(),o=0;o<3;o++)n[o]=n[o]*i+(r?0:255)*(1-i);return n[3]=1,rn(n,"rgba")},t.prototype.traverse=function(t,e){},t.prototype.attrKV=function(t,e){"textConfig"===t?this.setTextConfig(e):"textContent"===t?this.setTextContent(e):"clipPath"===t?this.setClipPath(e):"extra"===t?(this.extra=this.extra||{},M(this.extra,e)):this[t]=e},t.prototype.hide=function(){this.ignore=!0,this.markRedraw()},t.prototype.show=function(){this.ignore=!1,this.markRedraw()},t.prototype.attr=function(t,e){if("string"==typeof t)this.attrKV(t,e);else if(Y(t))for(var n=E(t),i=0;i<n.length;i++){var r=n[i];this.attrKV(r,t[r])}return this.markRedraw(),this},t.prototype.saveCurrentToNormalState=function(t){this._innerSaveToNormal(t);for(var e=this._normalState,n=0;n<this.animators.length;n++){var i=this.animators[n],r=i.__fromStateTransition;if(!r||"__zr_normal__"===r){var o=i.targetName,a=o?e[o]:e;i.saveFinalToTarget(a)}}},t.prototype._innerSaveToNormal=function(t){var e=this._normalState;e||(e=this._normalState={}),t.textConfig&&!e.textConfig&&(e.textConfig=this.textConfig),this._savePrimaryToNormal(t,e,Un)},t.prototype._savePrimaryToNormal=function(t,e,n){for(var i=0;i<n.length;i++){var r=n[i];null==t[r]||r in e||(e[r]=this[r])}},t.prototype.hasState=function(){return this.currentStates.length>0},t.prototype.getState=function(t){return this.states[t]},t.prototype.ensureState=function(t){var e=this.states;return e[t]||(e[t]={}),e[t]},t.prototype.clearStates=function(t){this.useState("__zr_normal__",!1,t)},t.prototype.useState=function(e,n,i){var r="__zr_normal__"===e;if(this.hasState()||!r){var o=this.currentStates,a=this.stateTransition;if(!(C(o,e)>=0)||!n&&1!==o.length){var s;if(this.stateProxy&&!r&&(s=this.stateProxy(e)),s||(s=this.states&&this.states[e]),s||r){r||this.saveCurrentToNormalState(s);var l=!(!s||!s.hoverLayer);return l&&this._toggleHoverLayerFlag(!0),this._applyStateObj(e,s,this._normalState,n,!i&&!this.__inHover&&a&&a.duration>0,a),this._textContent&&this._textContent.useState(e,n),this._textGuide&&this._textGuide.useState(e,n),r?(this.currentStates=[],this._normalState={}):n?this.currentStates.push(e):this.currentStates=[e],this._updateAnimationTargets(),this.markRedraw(),!l&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~t.REDARAW_BIT),s}x("State "+e+" not exists.")}}},t.prototype.useStates=function(e,n){if(e.length){var i=[],r=this.currentStates,o=e.length,a=o===r.length;if(a)for(var s=0;s<o;s++)if(e[s]!==r[s]){a=!1;break}if(a)return;for(s=0;s<o;s++){var l=e[s],u=void 0;this.stateProxy&&(u=this.stateProxy(l,e)),u||(u=this.states[l]),u&&i.push(u)}var h=!(!i[o-1]||!i[o-1].hoverLayer);h&&this._toggleHoverLayerFlag(!0);var c=this._mergeStates(i),p=this.stateTransition;this.saveCurrentToNormalState(c),this._applyStateObj(e.join(","),c,this._normalState,!1,!n&&!this.__inHover&&p&&p.duration>0,p),this._textContent&&this._textContent.useStates(e),this._textGuide&&this._textGuide.useStates(e),this._updateAnimationTargets(),this.currentStates=e.slice(),this.markRedraw(),!h&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~t.REDARAW_BIT)}else this.clearStates()},t.prototype._updateAnimationTargets=function(){for(var t=0;t<this.animators.length;t++){var e=this.animators[t];e.targetName&&e.changeTarget(this[e.targetName])}},t.prototype.removeState=function(t){var e=C(this.currentStates,t);if(e>=0){var n=this.currentStates.slice();n.splice(e,1),this.useStates(n)}},t.prototype.replaceState=function(t,e,n){var i=this.currentStates.slice(),r=C(i,t),o=C(i,e)>=0;r>=0?o?i.splice(r,1):i[r]=e:n&&!o&&i.push(e),this.useStates(i)},t.prototype.toggleState=function(t,e){e?this.useState(t,!0):this.removeState(t)},t.prototype._mergeStates=function(t){for(var e,n={},i=0;i<t.length;i++){var r=t[i];M(n,r),r.textConfig&&M(e=e||{},r.textConfig)}return e&&(n.textConfig=e),n},t.prototype._applyStateObj=function(t,e,n,i,r,o){var a=!(e&&i);e&&e.textConfig?(this.textConfig=M({},i?this.textConfig:n.textConfig),M(this.textConfig,e.textConfig)):a&&n.textConfig&&(this.textConfig=n.textConfig);for(var s={},l=!1,u=0;u<Un.length;u++){var h=Un[u],c=r&&Zn[h];e&&null!=e[h]?c?(l=!0,s[h]=e[h]):this[h]=e[h]:a&&null!=n[h]&&(c?(l=!0,s[h]=n[h]):this[h]=n[h])}if(!r)for(u=0;u<this.animators.length;u++){var p=this.animators[u],d=p.targetName;p.__changeFinalValue(d?(e||n)[d]:e||n)}l&&this._transitionState(t,s,o)},t.prototype._attachComponent=function(t){if(t.__zr&&!t.__hostTarget)throw new Error("Text element has been added to zrender.");if(t===this)throw new Error("Recursive component attachment.");var e=this.__zr;e&&t.addSelfToZr(e),t.__zr=e,t.__hostTarget=this},t.prototype._detachComponent=function(t){t.__zr&&t.removeSelfFromZr(t.__zr),t.__zr=null,t.__hostTarget=null},t.prototype.getClipPath=function(){return this._clipPath},t.prototype.setClipPath=function(t){this._clipPath&&this._clipPath!==t&&this.removeClipPath(),this._attachComponent(t),this._clipPath=t,this.markRedraw()},t.prototype.removeClipPath=function(){var t=this._clipPath;t&&(this._detachComponent(t),this._clipPath=null,this.markRedraw())},t.prototype.getTextContent=function(){return this._textContent},t.prototype.setTextContent=function(t){var e=this._textContent;if(e!==t){if(e&&e!==t&&this.removeTextContent(),t.__zr&&!t.__hostTarget)throw new Error("Text element has been added to zrender.");t.attachedTransform=new De,this._attachComponent(t),this._textContent=t,this.markRedraw()}},t.prototype.setTextConfig=function(t){this.textConfig||(this.textConfig={}),M(this.textConfig,t),this.markRedraw()},t.prototype.removeTextContent=function(){var t=this._textContent;t&&(t.attachedTransform=null,this._detachComponent(t),this._textContent=null,this._innerTextDefaultStyle=null,this.markRedraw())},t.prototype.getTextGuideLine=function(){return this._textGuide},t.prototype.setTextGuideLine=function(t){this._textGuide&&this._textGuide!==t&&this.removeTextGuideLine(),this._attachComponent(t),this._textGuide=t,this.markRedraw()},t.prototype.removeTextGuideLine=function(){var t=this._textGuide;t&&(this._detachComponent(t),this._textGuide=null,this.markRedraw())},t.prototype.markRedraw=function(){this.__dirty|=t.REDARAW_BIT;var e=this.__zr;e&&(this.__inHover?e.refreshHover():e.refresh()),this.__hostTarget&&this.__hostTarget.markRedraw()},t.prototype.dirty=function(){this.markRedraw()},t.prototype._toggleHoverLayerFlag=function(t){this.__inHover=t;var e=this._textContent,n=this._textGuide;e&&(e.__inHover=t),n&&(n.__inHover=t)},t.prototype.addSelfToZr=function(t){this.__zr=t;var e=this.animators;if(e)for(var n=0;n<e.length;n++)t.animation.addAnimator(e[n]);this._clipPath&&this._clipPath.addSelfToZr(t),this._textContent&&this._textContent.addSelfToZr(t),this._textGuide&&this._textGuide.addSelfToZr(t)},t.prototype.removeSelfFromZr=function(t){this.__zr=null;var e=this.animators;if(e)for(var n=0;n<e.length;n++)t.animation.removeAnimator(e[n]);this._clipPath&&this._clipPath.removeSelfFromZr(t),this._textContent&&this._textContent.removeSelfFromZr(t),this._textGuide&&this._textGuide.removeSelfFromZr(t)},t.prototype.animate=function(t,e){var n=t?this[t]:this;if(n){var i=new wn(n,e);return this.addAnimator(i,t),i}x('Property "'+t+'" is not existed in element '+this.id)},t.prototype.addAnimator=function(t,e){var n=this.__zr,i=this;t.during((function(){i.updateDuringAnimation(e)})).done((function(){var e=i.animators,n=C(e,t);n>=0&&e.splice(n,1)})),this.animators.push(t),n&&n.animation.addAnimator(t),n&&n.wakeUp()},t.prototype.updateDuringAnimation=function(t){this.markRedraw()},t.prototype.stopAnimation=function(t,e){for(var n=this.animators,i=n.length,r=[],o=0;o<i;o++){var a=n[o];t&&t!==a.scope?r.push(a):a.stop(e)}return this.animators=r,this},t.prototype.animateTo=function(t,e,n){$n(this,t,e,n)},t.prototype.animateFrom=function(t,e,n){$n(this,t,e,n,!0)},t.prototype._transitionState=function(t,e,n,i){for(var r=$n(this,e,n,i),o=0;o<r.length;o++)r[o].__fromStateTransition=t},t.prototype.getBoundingRect=function(){return null},t.prototype.getPaintRect=function(){return null},t.REDARAW_BIT=1,t.initDefaultProps=function(){var e=t.prototype;e.type="element",e.name="",e.ignore=!1,e.silent=!1,e.isGroup=!1,e.draggable=!1,e.dragging=!1,e.ignoreClip=!1,e.__inHover=!1,e.__dirty=t.REDARAW_BIT;var n={};function i(t,e,i){n[t+e+i]||(console.warn("DEPRECATED: '"+t+"' has been deprecated. use '"+e+"', '"+i+"' instead"),n[t+e+i]=!0)}function r(t,n,r,o){function a(t,e){Object.defineProperty(e,0,{get:function(){return t[r]},set:function(e){t[r]=e}}),Object.defineProperty(e,1,{get:function(){return t[o]},set:function(e){t[o]=e}})}Object.defineProperty(e,t,{get:function(){(i(t,r,o),this[n])||a(this,this[n]=[]);return this[n]},set:function(e){i(t,r,o),this[r]=e[0],this[o]=e[1],this[n]=e,a(this,e)}})}Object.defineProperty&&(!o.browser.ie||o.browser.version>8)&&(r("position","_legacyPos","x","y"),r("scale","_legacyScale","scaleX","scaleY"),r("origin","_legacyOrigin","originX","originY"))}(),t}();function $n(t,e,n,i,r){var o=[];ti(t,"",t,e,n=n||{},i,o,r);var a=o.length,s=!1,l=n.done,u=n.aborted,h=function(){s=!0,--a<=0&&(s?l&&l():u&&u())},c=function(){--a<=0&&(s?l&&l():u&&u())};a||l&&l(),o.length>0&&n.during&&o[0].during((function(t,e){n.during(e)}));for(var p=0;p<o.length;p++){var d=o[p];h&&d.done(h),c&&d.aborted(c),d.start(n.easing,n.force)}return o}function Jn(t,e,n){for(var i=0;i<n;i++)t[i]=e[i]}function Qn(t,e,n){if(L(e[n]))if(L(t[n])||(t[n]=[]),U(e[n])){var i=e[n].length;t[n].length!==i&&(t[n]=new e[n].constructor(i),Jn(t[n],e[n],i))}else{var r=e[n],o=t[n],a=r.length;if(L(r[0]))for(var s=r[0].length,l=0;l<a;l++)o[l]?Jn(o[l],r[l],s):o[l]=Array.prototype.slice.call(r[l]);else Jn(o,r,a);o.length=r.length}else t[n]=e[n]}function ti(t,e,n,i,r,o,a,s){for(var l=[],u=[],h=E(i),c=r.duration,p=r.delay,d=r.additive,f=r.setToFinal,g=!Y(o),y=0;y<h.length;y++){if(null!=n[I=h[y]]&&null!=i[I]&&(g||o[I]))if(Y(i[I])&&!L(i[I])){if(e){s||(n[I]=i[I],t.updateDuringAnimation(e));continue}ti(t,I,n[I],i[I],r,o&&o[I],a,s)}else l.push(I),u.push(I);else s||(n[I]=i[I],t.updateDuringAnimation(e),u.push(I))}var v=l.length;if(v>0||r.force&&!a.length){for(var m=t.animators,_=[],x=0;x<m.length;x++)m[x].targetName===e&&_.push(m[x]);if(!d&&_.length)for(x=0;x<_.length;x++){if(_[x].stopTracks(u)){var b=C(m,_[x]);m.splice(b,1)}}var w=void 0,S=void 0,M=void 0;if(s){S={},f&&(w={});for(x=0;x<v;x++){S[I=l[x]]=n[I],f?w[I]=i[I]:n[I]=i[I]}}else if(f){M={};for(x=0;x<v;x++){var I;M[I=l[x]]=yn(n[I]),Qn(n,i,I)}}var T=new wn(n,!1,d?_:null);T.targetName=e,r.scope&&(T.scope=r.scope),f&&w&&T.whenWithKeys(0,w,l),M&&T.whenWithKeys(0,M,l),T.whenWithKeys(null==c?500:c,s?S:i,l).delay(p||0),t.addAnimator(T,e),a.push(T)}}D(Kn,Ft),D(Kn,De);function ei(t,e,n,i){var r=e+1;if(r===n)return 1;if(i(t[r++],t[e])<0){for(;r<n&&i(t[r],t[r-1])<0;)r++;!function(t,e,n){n--;for(;e<n;){var i=t[e];t[e++]=t[n],t[n--]=i}}(t,e,r)}else for(;r<n&&i(t[r],t[r-1])>=0;)r++;return r-e}function ni(t,e,n,i,r){for(i===e&&i++;i<n;i++){for(var o,a=t[i],s=e,l=i;s<l;)r(a,t[o=s+l>>>1])<0?l=o:s=o+1;var u=i-s;switch(u){case 3:t[s+3]=t[s+2];case 2:t[s+2]=t[s+1];case 1:t[s+1]=t[s];break;default:for(;u>0;)t[s+u]=t[s+u-1],u--}t[s]=a}}function ii(t,e,n,i,r,o){var a=0,s=0,l=1;if(o(t,e[n+r])>0){for(s=i-r;l<s&&o(t,e[n+r+l])>0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),a+=r,l+=r}else{for(s=r+1;l<s&&o(t,e[n+r-l])<=0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s);var u=a;a=r-l,l=r-u}for(a++;a<l;){var h=a+(l-a>>>1);o(t,e[n+h])>0?a=h+1:l=h}return l}function ri(t,e,n,i,r,o){var a=0,s=0,l=1;if(o(t,e[n+r])<0){for(s=r+1;l<s&&o(t,e[n+r-l])<0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s);var u=a;a=r-l,l=r-u}else{for(s=i-r;l<s&&o(t,e[n+r+l])>=0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),a+=r,l+=r}for(a++;a<l;){var h=a+(l-a>>>1);o(t,e[n+h])<0?l=h:a=h+1}return l}function oi(t,e){var n,i,r=7,o=0;t.length;var a=[];function s(s){var l=n[s],u=i[s],h=n[s+1],c=i[s+1];i[s]=u+c,s===o-3&&(n[s+1]=n[s+2],i[s+1]=i[s+2]),o--;var p=ri(t[h],t,l,u,0,e);l+=p,0!==(u-=p)&&0!==(c=ii(t[l+u-1],t,h,c,c-1,e))&&(u<=c?function(n,i,o,s){var l=0;for(l=0;l<i;l++)a[l]=t[n+l];var u=0,h=o,c=n;if(t[c++]=t[h++],0==--s){for(l=0;l<i;l++)t[c+l]=a[u+l];return}if(1===i){for(l=0;l<s;l++)t[c+l]=t[h+l];return void(t[c+s]=a[u])}var p,d,f,g=r;for(;;){p=0,d=0,f=!1;do{if(e(t[h],a[u])<0){if(t[c++]=t[h++],d++,p=0,0==--s){f=!0;break}}else if(t[c++]=a[u++],p++,d=0,1==--i){f=!0;break}}while((p|d)<g);if(f)break;do{if(0!==(p=ri(t[h],a,u,i,0,e))){for(l=0;l<p;l++)t[c+l]=a[u+l];if(c+=p,u+=p,(i-=p)<=1){f=!0;break}}if(t[c++]=t[h++],0==--s){f=!0;break}if(0!==(d=ii(a[u],t,h,s,0,e))){for(l=0;l<d;l++)t[c+l]=t[h+l];if(c+=d,h+=d,0===(s-=d)){f=!0;break}}if(t[c++]=a[u++],1==--i){f=!0;break}g--}while(p>=7||d>=7);if(f)break;g<0&&(g=0),g+=2}if((r=g)<1&&(r=1),1===i){for(l=0;l<s;l++)t[c+l]=t[h+l];t[c+s]=a[u]}else{if(0===i)throw new Error;for(l=0;l<i;l++)t[c+l]=a[u+l]}}(l,u,h,c):function(n,i,o,s){var l=0;for(l=0;l<s;l++)a[l]=t[o+l];var u=n+i-1,h=s-1,c=o+s-1,p=0,d=0;if(t[c--]=t[u--],0==--i){for(p=c-(s-1),l=0;l<s;l++)t[p+l]=a[l];return}if(1===s){for(d=(c-=i)+1,p=(u-=i)+1,l=i-1;l>=0;l--)t[d+l]=t[p+l];return void(t[c]=a[h])}var f=r;for(;;){var g=0,y=0,v=!1;do{if(e(a[h],t[u])<0){if(t[c--]=t[u--],g++,y=0,0==--i){v=!0;break}}else if(t[c--]=a[h--],y++,g=0,1==--s){v=!0;break}}while((g|y)<f);if(v)break;do{if(0!==(g=i-ri(a[h],t,n,i,i-1,e))){for(i-=g,d=(c-=g)+1,p=(u-=g)+1,l=g-1;l>=0;l--)t[d+l]=t[p+l];if(0===i){v=!0;break}}if(t[c--]=a[h--],1==--s){v=!0;break}if(0!==(y=s-ii(t[u],a,0,s,s-1,e))){for(s-=y,d=(c-=y)+1,p=(h-=y)+1,l=0;l<y;l++)t[d+l]=a[p+l];if(s<=1){v=!0;break}}if(t[c--]=t[u--],0==--i){v=!0;break}f--}while(g>=7||y>=7);if(v)break;f<0&&(f=0),f+=2}(r=f)<1&&(r=1);if(1===s){for(d=(c-=i)+1,p=(u-=i)+1,l=i-1;l>=0;l--)t[d+l]=t[p+l];t[c]=a[h]}else{if(0===s)throw new Error;for(p=c-(s-1),l=0;l<s;l++)t[p+l]=a[l]}}(l,u,h,c))}return n=[],i=[],{mergeRuns:function(){for(;o>1;){var t=o-2;if(t>=1&&i[t-1]<=i[t]+i[t+1]||t>=2&&i[t-2]<=i[t]+i[t-1])i[t-1]<i[t+1]&&t--;else if(i[t]>i[t+1])break;s(t)}},forceMergeRuns:function(){for(;o>1;){var t=o-2;t>0&&i[t-1]<i[t+1]&&t--,s(t)}},pushRun:function(t,e){n[o]=t,i[o]=e,o+=1}}}function ai(t,e,n,i){n||(n=0),i||(i=t.length);var r=i-n;if(!(r<2)){var o=0;if(r<32)ni(t,n,i,n+(o=ei(t,n,i,e)),e);else{var a=oi(t,e),s=function(t){for(var e=0;t>=32;)e|=1&t,t>>=1;return t+e}(r);do{if((o=ei(t,n,i,e))<s){var l=r;l>s&&(l=s),ni(t,n,n+l,n+o,e),o=l}a.pushRun(n,o),a.mergeRuns(),r-=o,n+=o}while(0!==r);a.forceMergeRuns()}}}var si=!1;function li(){si||(si=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function ui(t,e){return t.zlevel===e.zlevel?t.z===e.z?t.z2-e.z2:t.z-e.z:t.zlevel-e.zlevel}var hi,ci,pi=function(){function t(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=ui}return t.prototype.traverse=function(t,e){for(var n=0;n<this._roots.length;n++)this._roots[n].traverse(t,e)},t.prototype.getDisplayList=function(t,e){e=e||!1;var n=this._displayList;return!t&&n.length||this.updateDisplayList(e),n},t.prototype.updateDisplayList=function(t){this._displayListLen=0;for(var e=this._roots,n=this._displayList,i=0,r=e.length;i<r;i++)this._updateAndAddDisplayable(e[i],null,t);n.length=this._displayListLen,o.canvasSupported&&ai(n,ui)},t.prototype._updateAndAddDisplayable=function(t,e,n){if(!t.ignore||n){t.beforeUpdate(),t.update(),t.afterUpdate();var i=t.getClipPath();if(t.ignoreClip)e=null;else if(i){e=e?e.slice():[];for(var r=i,o=t;r;)r.parent=o,r.updateTransform(),e.push(r),o=r,r=r.getClipPath()}if(t.childrenRef){for(var a=t.childrenRef(),s=0;s<a.length;s++){var l=a[s];t.__dirty&&(l.__dirty|=Kn.REDARAW_BIT),this._updateAndAddDisplayable(l,e,n)}t.__dirty=0}else{var u=t;e&&e.length?u.__clipPaths=e:u.__clipPaths&&u.__clipPaths.length>0&&(u.__clipPaths=[]),isNaN(u.z)&&(li(),u.z=0),isNaN(u.z2)&&(li(),u.z2=0),isNaN(u.zlevel)&&(li(),u.zlevel=0),this._displayList[this._displayListLen++]=u}var h=t.getDecalElement&&t.getDecalElement();h&&this._updateAndAddDisplayable(h,e,n);var c=t.getTextGuideLine();c&&this._updateAndAddDisplayable(c,e,n);var p=t.getTextContent();p&&this._updateAndAddDisplayable(p,e,n)}},t.prototype.addRoot=function(t){t.__zr&&t.__zr.storage===this||this._roots.push(t)},t.prototype.delRoot=function(t){if(t instanceof Array)for(var e=0,n=t.length;e<n;e++)this.delRoot(t[e]);else{var i=C(this._roots,t);i>=0&&this._roots.splice(i,1)}},t.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},t.prototype.getRoots=function(){return this._roots},t.prototype.dispose=function(){this._displayList=null,this._roots=null},t}(),di="undefined"!=typeof window&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(t){return setTimeout(t,16)},fi=function(t){function e(e){var n=t.call(this)||this;return n._running=!1,n._time=0,n._pausedTime=0,n._pauseStart=0,n._paused=!1,e=e||{},n.stage=e.stage||{},n.onframe=e.onframe||function(){},n}return gt(e,t),e.prototype.addClip=function(t){t.animation&&this.removeClip(t),this._clipsHead?(this._clipsTail.next=t,t.prev=this._clipsTail,t.next=null,this._clipsTail=t):this._clipsHead=this._clipsTail=t,t.animation=this},e.prototype.addAnimator=function(t){t.animation=this;var e=t.getClip();e&&this.addClip(e)},e.prototype.removeClip=function(t){if(t.animation){var e=t.prev,n=t.next;e?e.next=n:this._clipsHead=n,n?n.prev=e:this._clipsTail=e,t.next=t.prev=t.animation=null}},e.prototype.removeAnimator=function(t){var e=t.getClip();e&&this.removeClip(e),t.animation=null},e.prototype.update=function(t){for(var e=(new Date).getTime()-this._pausedTime,n=e-this._time,i=this._clipsHead;i;){var r=i.next;i.step(e,n)?(i.ondestroy&&i.ondestroy(),this.removeClip(i),i=r):i=r}this._time=e,t||(this.onframe(n),this.trigger("frame",n),this.stage.update&&this.stage.update())},e.prototype._startLoop=function(){var t=this;this._running=!0,di((function e(){t._running&&(di(e),!t._paused&&t.update())}))},e.prototype.start=function(){this._running||(this._time=(new Date).getTime(),this._pausedTime=0,this._startLoop())},e.prototype.stop=function(){this._running=!1},e.prototype.pause=function(){this._paused||(this._pauseStart=(new Date).getTime(),this._paused=!0)},e.prototype.resume=function(){this._paused&&(this._pausedTime+=(new Date).getTime()-this._pauseStart,this._paused=!1)},e.prototype.clear=function(){for(var t=this._clipsHead;t;){var e=t.next;t.prev=t.next=t.animation=null,t=e}this._clipsHead=this._clipsTail=null},e.prototype.isFinished=function(){return null==this._clipsHead},e.prototype.animate=function(t,e){e=e||{},this.start();var n=new wn(t,e.loop);return this.addAnimator(n),n},e}(Ft),gi=o.domSupported,yi=(ci={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},{mouse:hi=["click","dblclick","mousewheel","wheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],touch:["touchstart","touchend","touchmove"],pointer:P(hi,(function(t){var e=t.replace("mouse","pointer");return ci.hasOwnProperty(e)?e:t}))}),vi=["mousemove","mouseup"],mi=["pointermove","pointerup"],_i=!1;function xi(t){var e=t.pointerType;return"pen"===e||"touch"===e}function bi(t){t&&(t.zrByTouch=!0)}function wi(t,e){for(var n=e,i=!1;n&&9!==n.nodeType&&!(i=n.domBelongToZr||n!==e&&n===t.painterRoot);)n=n.parentNode;return i}var Si=function(t,e){this.stopPropagation=pt,this.stopImmediatePropagation=pt,this.preventDefault=pt,this.type=e.type,this.target=this.currentTarget=t.dom,this.pointerType=e.pointerType,this.clientX=e.clientX,this.clientY=e.clientY},Mi={mousedown:function(t){t=Qt(this.dom,t),this.__mayPointerCapture=[t.zrX,t.zrY],this.trigger("mousedown",t)},mousemove:function(t){t=Qt(this.dom,t);var e=this.__mayPointerCapture;!e||t.zrX===e[0]&&t.zrY===e[1]||this.__togglePointerCapture(!0),this.trigger("mousemove",t)},mouseup:function(t){t=Qt(this.dom,t),this.__togglePointerCapture(!1),this.trigger("mouseup",t)},mouseout:function(t){wi(this,(t=Qt(this.dom,t)).toElement||t.relatedTarget)||(this.__pointerCapturing&&(t.zrEventControl="no_globalout"),this.trigger("mouseout",t))},wheel:function(t){_i=!0,t=Qt(this.dom,t),this.trigger("mousewheel",t)},mousewheel:function(t){_i||(t=Qt(this.dom,t),this.trigger("mousewheel",t))},touchstart:function(t){bi(t=Qt(this.dom,t)),this.__lastTouchMoment=new Date,this.handler.processGesture(t,"start"),Mi.mousemove.call(this,t),Mi.mousedown.call(this,t)},touchmove:function(t){bi(t=Qt(this.dom,t)),this.handler.processGesture(t,"change"),Mi.mousemove.call(this,t)},touchend:function(t){bi(t=Qt(this.dom,t)),this.handler.processGesture(t,"end"),Mi.mouseup.call(this,t),+new Date-+this.__lastTouchMoment<300&&Mi.click.call(this,t)},pointerdown:function(t){Mi.mousedown.call(this,t)},pointermove:function(t){xi(t)||Mi.mousemove.call(this,t)},pointerup:function(t){Mi.mouseup.call(this,t)},pointerout:function(t){xi(t)||Mi.mouseout.call(this,t)}};k(["click","dblclick","contextmenu"],(function(t){Mi[t]=function(e){e=Qt(this.dom,e),this.trigger(t,e)}}));var Ii={pointermove:function(t){xi(t)||Ii.mousemove.call(this,t)},pointerup:function(t){Ii.mouseup.call(this,t)},mousemove:function(t){this.trigger("mousemove",t)},mouseup:function(t){var e=this.__pointerCapturing;this.__togglePointerCapture(!1),this.trigger("mouseup",t),e&&(t.zrEventControl="only_globalout",this.trigger("mouseout",t))}};function Ti(t,e){var n=e.domHandlers;o.pointerEventsSupported?k(yi.pointer,(function(i){Ai(e,i,(function(e){n[i].call(t,e)}))})):(o.touchEventsSupported&&k(yi.touch,(function(i){Ai(e,i,(function(r){n[i].call(t,r),function(t){t.touching=!0,null!=t.touchTimer&&(clearTimeout(t.touchTimer),t.touchTimer=null),t.touchTimer=setTimeout((function(){t.touching=!1,t.touchTimer=null}),700)}(e)}))})),k(yi.mouse,(function(i){Ai(e,i,(function(r){r=Jt(r),e.touching||n[i].call(t,r)}))})))}function Ci(t,e){function n(n){Ai(e,n,(function(i){i=Jt(i),wi(t,i.target)||(i=function(t,e){return Qt(t.dom,new Si(t,e),!0)}(t,i),e.domHandlers[n].call(t,i))}),{capture:!0})}o.pointerEventsSupported?k(mi,n):o.touchEventsSupported||k(vi,n)}function Ai(t,e,n,i){t.mounted[e]=n,t.listenerOpts[e]=i,te(t.domTarget,e,n,i)}function Di(t){var e,n,i,r,o=t.mounted;for(var a in o)o.hasOwnProperty(a)&&(e=t.domTarget,n=a,i=o[a],r=t.listenerOpts[a],Zt?e.removeEventListener(n,i,r):e.detachEvent("on"+n,i));t.mounted={}}var Li=function(t,e){this.mounted={},this.listenerOpts={},this.touching=!1,this.domTarget=t,this.domHandlers=e},ki=function(t){function e(e,n){var i=t.call(this)||this;return i.__pointerCapturing=!1,i.dom=e,i.painterRoot=n,i._localHandlerScope=new Li(e,Mi),gi&&(i._globalHandlerScope=new Li(document,Ii)),Ti(i,i._localHandlerScope),i}return gt(e,t),e.prototype.dispose=function(){Di(this._localHandlerScope),gi&&Di(this._globalHandlerScope)},e.prototype.setCursor=function(t){this.dom.style&&(this.dom.style.cursor=t||"default")},e.prototype.__togglePointerCapture=function(t){if(this.__mayPointerCapture=null,gi&&+this.__pointerCapturing^+t){this.__pointerCapturing=t;var e=this._globalHandlerScope;t?Ci(this,e):Di(e)}},e}(Ft),Pi=function(t){function e(e){var n=t.call(this)||this;return n.isGroup=!0,n._children=[],n.attr(e),n}return gt(e,t),e.prototype.childrenRef=function(){return this._children},e.prototype.children=function(){return this._children.slice()},e.prototype.childAt=function(t){return this._children[t]},e.prototype.childOfName=function(t){for(var e=this._children,n=0;n<e.length;n++)if(e[n].name===t)return e[n]},e.prototype.childCount=function(){return this._children.length},e.prototype.add=function(t){if(t&&(t!==this&&t.parent!==this&&(this._children.push(t),this._doAdd(t)),t.__hostTarget))throw"This elemenet has been used as an attachment";return this},e.prototype.addBefore=function(t,e){if(t&&t!==this&&t.parent!==this&&e&&e.parent===this){var n=this._children,i=n.indexOf(e);i>=0&&(n.splice(i,0,t),this._doAdd(t))}return this},e.prototype.replaceAt=function(t,e){var n=this._children,i=n[e];if(t&&t!==this&&t.parent!==this&&t!==i){n[e]=t,i.parent=null;var r=this.__zr;r&&i.removeSelfFromZr(r),this._doAdd(t)}return this},e.prototype._doAdd=function(t){t.parent&&t.parent.remove(t),t.parent=this;var e=this.__zr;e&&e!==t.__zr&&t.addSelfToZr(e),e&&e.refresh()},e.prototype.remove=function(t){var e=this.__zr,n=this._children,i=C(n,t);return i<0||(n.splice(i,1),t.parent=null,e&&t.removeSelfFromZr(e),e&&e.refresh()),this},e.prototype.removeAll=function(){for(var t=this._children,e=this.__zr,n=0;n<t.length;n++){var i=t[n];e&&i.removeSelfFromZr(e),i.parent=null}return t.length=0,this},e.prototype.eachChild=function(t,e){for(var n=this._children,i=0;i<n.length;i++){var r=n[i];t.call(e,r,i)}return this},e.prototype.traverse=function(t,e){for(var n=0;n<this._children.length;n++){var i=this._children[n],r=t.call(e,i);i.isGroup&&!r&&i.traverse(t,e)}return this},e.prototype.addSelfToZr=function(e){t.prototype.addSelfToZr.call(this,e);for(var n=0;n<this._children.length;n++){this._children[n].addSelfToZr(e)}},e.prototype.removeSelfFromZr=function(e){t.prototype.removeSelfFromZr.call(this,e);for(var n=0;n<this._children.length;n++){this._children[n].removeSelfFromZr(e)}},e.prototype.getBoundingRect=function(t){for(var e=new Pn(0,0,0,0),n=t||this._children,i=[],r=null,o=0;o<n.length;o++){var a=n[o];if(!a.ignore&&!a.invisible){var s=a.getBoundingRect(),l=a.getLocalTransform(i);l?(Pn.applyTransform(e,s,l),(r=r||e.clone()).union(e)):(r=r||s.clone()).union(s)}}return r||e},e}(Kn);Pi.prototype.type="group";
+var t=function(e,n){return(t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])})(e,n)};function e(e,n){function i(){this.constructor=e}t(e,n),e.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}var n=function(){return(n=Object.assign||function(t){for(var e,n=1,i=arguments.length;n<i;n++)for(var r in e=arguments[n])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)};function i(){for(var t=0,e=0,n=arguments.length;e<n;e++)t+=arguments[e].length;var i=Array(t),r=0;for(e=0;e<n;e++)for(var o=arguments[e],a=0,s=o.length;a<s;a++,r++)i[r]=o[a];return i}var r=function(){this.firefox=!1,this.ie=!1,this.edge=!1,this.newEdge=!1,this.weChat=!1},o=new function(){this.browser=new r,this.node=!1,this.wxa=!1,this.worker=!1,this.canvasSupported=!1,this.svgSupported=!1,this.touchEventsSupported=!1,this.pointerEventsSupported=!1,this.domSupported=!1};"object"==typeof wx&&"function"==typeof wx.getSystemInfoSync?(o.wxa=!0,o.canvasSupported=!0,o.touchEventsSupported=!0):"undefined"==typeof document&&"undefined"!=typeof self?(o.worker=!0,o.canvasSupported=!0):"undefined"==typeof navigator?(o.node=!0,o.canvasSupported=!0,o.svgSupported=!0):function(t,e){var n=e.browser,i=t.match(/Firefox\/([\d.]+)/),r=t.match(/MSIE\s([\d.]+)/)||t.match(/Trident\/.+?rv:(([\d.]+))/),o=t.match(/Edge?\/([\d.]+)/),a=/micromessenger/i.test(t);i&&(n.firefox=!0,n.version=i[1]);r&&(n.ie=!0,n.version=r[1]);o&&(n.edge=!0,n.version=o[1],n.newEdge=+o[1].split(".")[0]>18);a&&(n.weChat=!0);e.canvasSupported=!!document.createElement("canvas").getContext,e.svgSupported="undefined"!=typeof SVGRect,e.touchEventsSupported="ontouchstart"in window&&!n.ie&&!n.edge,e.pointerEventsSupported="onpointerdown"in window&&(n.edge||n.ie&&+n.version>=11),e.domSupported="undefined"!=typeof document}(navigator.userAgent,o);var a={"[object Function]":!0,"[object RegExp]":!0,"[object Date]":!0,"[object Error]":!0,"[object CanvasGradient]":!0,"[object CanvasPattern]":!0,"[object Image]":!0,"[object Canvas]":!0},s={"[object Int8Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Int16Array]":!0,"[object Uint16Array]":!0,"[object Int32Array]":!0,"[object Uint32Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0},l=Object.prototype.toString,u=Array.prototype,h=u.forEach,c=u.filter,p=u.slice,d=u.map,f=function(){}.constructor,g=f?f.prototype:null,y={};function v(t,e){y[t]=e}var m=2311;function _(){return m++}function x(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];"undefined"!=typeof console&&console.error.apply(console,t)}function b(t){if(null==t||"object"!=typeof t)return t;var e=t,n=l.call(t);if("[object Array]"===n){if(!at(t)){e=[];for(var i=0,r=t.length;i<r;i++)e[i]=b(t[i])}}else if(s[n]){if(!at(t)){var o=t.constructor;if(o.from)e=o.from(t);else{e=new o(t.length);for(i=0,r=t.length;i<r;i++)e[i]=b(t[i])}}}else if(!a[n]&&!at(t)&&!Z(t))for(var u in e={},t)t.hasOwnProperty(u)&&(e[u]=b(t[u]));return e}function w(t,e,n){if(!Y(e)||!Y(t))return n?b(e):t;for(var i in e)if(e.hasOwnProperty(i)){var r=t[i],o=e[i];!Y(o)||!Y(r)||V(o)||V(r)||Z(o)||Z(r)||X(o)||X(r)||at(o)||at(r)?!n&&i in t||(t[i]=b(e[i])):w(r,o,n)}return t}function S(t,e){for(var n=t[0],i=1,r=t.length;i<r;i++)n=w(n,t[i],e);return n}function M(t,e){if(Object.assign)Object.assign(t,e);else for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}function I(t,e,n){for(var i=E(e),r=0;r<i.length;r++){var o=i[r];(n?null!=e[o]:null==t[o])&&(t[o]=e[o])}return t}var T=function(){return y.createCanvas()};function C(t,e){if(t){if(t.indexOf)return t.indexOf(e);for(var n=0,i=t.length;n<i;n++)if(t[n]===e)return n}return-1}function A(t,e){var n=t.prototype;function i(){}for(var r in i.prototype=e.prototype,t.prototype=new i,n)n.hasOwnProperty(r)&&(t.prototype[r]=n[r]);t.prototype.constructor=t,t.superClass=e}function D(t,e,n){if(t="prototype"in t?t.prototype:t,e="prototype"in e?e.prototype:e,Object.getOwnPropertyNames)for(var i=Object.getOwnPropertyNames(e),r=0;r<i.length;r++){var o=i[r];"constructor"!==o&&(n?null!=e[o]:null==t[o])&&(t[o]=e[o])}else I(t,e,n)}function L(t){return!!t&&("string"!=typeof t&&"number"==typeof t.length)}function k(t,e,n){if(t&&e)if(t.forEach&&t.forEach===h)t.forEach(e,n);else if(t.length===+t.length)for(var i=0,r=t.length;i<r;i++)e.call(n,t[i],i,t);else for(var o in t)t.hasOwnProperty(o)&&e.call(n,t[o],o,t)}function P(t,e,n){if(!t)return[];if(!e)return et(t);if(t.map&&t.map===d)return t.map(e,n);for(var i=[],r=0,o=t.length;r<o;r++)i.push(e.call(n,t[r],r,t));return i}function O(t,e,n,i){if(t&&e){for(var r=0,o=t.length;r<o;r++)n=e.call(i,n,t[r],r,t);return n}}function R(t,e,n){if(!t)return[];if(!e)return et(t);if(t.filter&&t.filter===c)return t.filter(e,n);for(var i=[],r=0,o=t.length;r<o;r++)e.call(n,t[r],r,t)&&i.push(t[r]);return i}function N(t,e,n){if(t&&e)for(var i=0,r=t.length;i<r;i++)if(e.call(n,t[i],i,t))return t[i]}function E(t){if(!t)return[];if(Object.keys)return Object.keys(t);var e=[];for(var n in t)t.hasOwnProperty(n)&&e.push(n);return e}y.createCanvas=function(){return document.createElement("canvas")};var z=g&&F(g.bind)?g.call.bind(g.bind):function(t,e){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];return function(){return t.apply(e,n.concat(p.call(arguments)))}};function B(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return function(){return t.apply(this,e.concat(p.call(arguments)))}}function V(t){return Array.isArray?Array.isArray(t):"[object Array]"===l.call(t)}function F(t){return"function"==typeof t}function G(t){return"string"==typeof t}function H(t){return"[object String]"===l.call(t)}function W(t){return"number"==typeof t}function Y(t){var e=typeof t;return"function"===e||!!t&&"object"===e}function X(t){return!!a[l.call(t)]}function U(t){return!!s[l.call(t)]}function Z(t){return"object"==typeof t&&"number"==typeof t.nodeType&&"object"==typeof t.ownerDocument}function j(t){return null!=t.colorStops}function q(t){return null!=t.image}function K(t){return"[object RegExp]"===l.call(t)}function $(t){return t!=t}function J(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];for(var n=0,i=t.length;n<i;n++)if(null!=t[n])return t[n]}function Q(t,e){return null!=t?t:e}function tt(t,e,n){return null!=t?t:null!=e?e:n}function et(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return p.apply(t,e)}function nt(t){if("number"==typeof t)return[t,t,t,t];var e=t.length;return 2===e?[t[0],t[1],t[0],t[1]]:3===e?[t[0],t[1],t[2],t[1]]:t}function it(t,e){if(!t)throw new Error(e)}function rt(t){return null==t?null:"function"==typeof t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}function ot(t){t.__ec_primitive__=!0}function at(t){return t.__ec_primitive__}var st=function(){function t(e){this.data={};var n=V(e);this.data={};var i=this;function r(t,e){n?i.set(t,e):i.set(e,t)}e instanceof t?e.each(r):e&&k(e,r)}return t.prototype.get=function(t){return this.data.hasOwnProperty(t)?this.data[t]:null},t.prototype.set=function(t,e){return this.data[t]=e},t.prototype.each=function(t,e){for(var n in this.data)this.data.hasOwnProperty(n)&&t.call(e,this.data[n],n)},t.prototype.keys=function(){return E(this.data)},t.prototype.removeKey=function(t){delete this.data[t]},t}();function lt(t){return new st(t)}function ut(t,e){for(var n=new t.constructor(t.length+e.length),i=0;i<t.length;i++)n[i]=t[i];var r=t.length;for(i=0;i<e.length;i++)n[i+r]=e[i];return n}function ht(t,e){var n;if(Object.create)n=Object.create(t);else{var i=function(){};i.prototype=t,n=new i}return e&&M(n,e),n}function ct(t,e){return t.hasOwnProperty(e)}function pt(){}var dt=Object.freeze({__proto__:null,$override:v,guid:_,logError:x,clone:b,merge:w,mergeAll:S,extend:M,defaults:I,createCanvas:T,indexOf:C,inherits:A,mixin:D,isArrayLike:L,each:k,map:P,reduce:O,filter:R,find:N,keys:E,bind:z,curry:B,isArray:V,isFunction:F,isString:G,isStringSafe:H,isNumber:W,isObject:Y,isBuiltInObject:X,isTypedArray:U,isDom:Z,isGradientObject:j,isPatternObject:q,isRegExp:K,eqNaN:$,retrieve:J,retrieve2:Q,retrieve3:tt,slice:et,normalizeCssArray:nt,assert:it,trim:rt,setAsPrimitive:ot,isPrimitive:at,HashMap:st,createHashMap:lt,concatArray:ut,createObject:ht,hasOwn:ct,noop:pt});function ft(t,e){return null==t&&(t=0),null==e&&(e=0),[t,e]}function gt(t,e){return t[0]=e[0],t[1]=e[1],t}function yt(t){return[t[0],t[1]]}function vt(t,e,n){return t[0]=e,t[1]=n,t}function mt(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t}function _t(t,e,n,i){return t[0]=e[0]+n[0]*i,t[1]=e[1]+n[1]*i,t}function xt(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t}function bt(t){return Math.sqrt(St(t))}var wt=bt;function St(t){return t[0]*t[0]+t[1]*t[1]}var Mt=St;function It(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t}function Tt(t,e){var n=bt(e);return 0===n?(t[0]=0,t[1]=0):(t[0]=e[0]/n,t[1]=e[1]/n),t}function Ct(t,e){return Math.sqrt((t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1]))}var At=Ct;function Dt(t,e){return(t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1])}var Lt=Dt;function kt(t,e,n,i){return t[0]=e[0]+i*(n[0]-e[0]),t[1]=e[1]+i*(n[1]-e[1]),t}function Pt(t,e,n){var i=e[0],r=e[1];return t[0]=n[0]*i+n[2]*r+n[4],t[1]=n[1]*i+n[3]*r+n[5],t}function Ot(t,e,n){return t[0]=Math.min(e[0],n[0]),t[1]=Math.min(e[1],n[1]),t}function Rt(t,e,n){return t[0]=Math.max(e[0],n[0]),t[1]=Math.max(e[1],n[1]),t}var Nt=Object.freeze({__proto__:null,create:ft,copy:gt,clone:yt,set:vt,add:mt,scaleAndAdd:_t,sub:xt,len:bt,length:wt,lenSquare:St,lengthSquare:Mt,mul:function(t,e,n){return t[0]=e[0]*n[0],t[1]=e[1]*n[1],t},div:function(t,e,n){return t[0]=e[0]/n[0],t[1]=e[1]/n[1],t},dot:function(t,e){return t[0]*e[0]+t[1]*e[1]},scale:It,normalize:Tt,distance:Ct,dist:At,distanceSquare:Dt,distSquare:Lt,negate:function(t,e){return t[0]=-e[0],t[1]=-e[1],t},lerp:kt,applyTransform:Pt,min:Ot,max:Rt}),Et=function(t,e){this.target=t,this.topTarget=e&&e.topTarget},zt=function(){function t(t){this.handler=t,t.on("mousedown",this._dragStart,this),t.on("mousemove",this._drag,this),t.on("mouseup",this._dragEnd,this)}return t.prototype._dragStart=function(t){for(var e=t.target;e&&!e.draggable;)e=e.parent;e&&(this._draggingTarget=e,e.dragging=!0,this._x=t.offsetX,this._y=t.offsetY,this.handler.dispatchToElement(new Et(e,t),"dragstart",t.event))},t.prototype._drag=function(t){var e=this._draggingTarget;if(e){var n=t.offsetX,i=t.offsetY,r=n-this._x,o=i-this._y;this._x=n,this._y=i,e.drift(r,o,t),this.handler.dispatchToElement(new Et(e,t),"drag",t.event);var a=this.handler.findHover(n,i,e).target,s=this._dropTarget;this._dropTarget=a,e!==a&&(s&&a!==s&&this.handler.dispatchToElement(new Et(s,t),"dragleave",t.event),a&&a!==s&&this.handler.dispatchToElement(new Et(a,t),"dragenter",t.event))}},t.prototype._dragEnd=function(t){var e=this._draggingTarget;e&&(e.dragging=!1),this.handler.dispatchToElement(new Et(e,t),"dragend",t.event),this._dropTarget&&this.handler.dispatchToElement(new Et(this._dropTarget,t),"drop",t.event),this._draggingTarget=null,this._dropTarget=null},t}(),Bt=function(){function t(t){t&&(this._$eventProcessor=t)}return t.prototype.on=function(t,e,n,i){this._$handlers||(this._$handlers={});var r=this._$handlers;if("function"==typeof e&&(i=n,n=e,e=null),!n||!t)return this;var o=this._$eventProcessor;null!=e&&o&&o.normalizeQuery&&(e=o.normalizeQuery(e)),r[t]||(r[t]=[]);for(var a=0;a<r[t].length;a++)if(r[t][a].h===n)return this;var s={h:n,query:e,ctx:i||this,callAtLast:n.zrEventfulCallAtLast},l=r[t].length-1,u=r[t][l];return u&&u.callAtLast?r[t].splice(l,0,s):r[t].push(s),this},t.prototype.isSilent=function(t){var e=this._$handlers;return!e||!e[t]||!e[t].length},t.prototype.off=function(t,e){var n=this._$handlers;if(!n)return this;if(!t)return this._$handlers={},this;if(e){if(n[t]){for(var i=[],r=0,o=n[t].length;r<o;r++)n[t][r].h!==e&&i.push(n[t][r]);n[t]=i}n[t]&&0===n[t].length&&delete n[t]}else delete n[t];return this},t.prototype.trigger=function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];if(!this._$handlers)return this;var i=this._$handlers[t],r=this._$eventProcessor;if(i)for(var o=e.length,a=i.length,s=0;s<a;s++){var l=i[s];if(!r||!r.filter||null==l.query||r.filter(t,l.query))switch(o){case 0:l.h.call(l.ctx);break;case 1:l.h.call(l.ctx,e[0]);break;case 2:l.h.call(l.ctx,e[0],e[1]);break;default:l.h.apply(l.ctx,e)}}return r&&r.afterTrigger&&r.afterTrigger(t),this},t.prototype.triggerWithContext=function(t){if(!this._$handlers)return this;var e=this._$handlers[t],n=this._$eventProcessor;if(e)for(var i=arguments,r=i.length,o=i[r-1],a=e.length,s=0;s<a;s++){var l=e[s];if(!n||!n.filter||null==l.query||n.filter(t,l.query))switch(r){case 0:l.h.call(o);break;case 1:l.h.call(o,i[0]);break;case 2:l.h.call(o,i[0],i[1]);break;default:l.h.apply(o,i.slice(1,r-1))}}return n&&n.afterTrigger&&n.afterTrigger(t),this},t}(),Vt=Math.log(2);function Ft(t,e,n,i,r,o){var a=i+"-"+r,s=t.length;if(o.hasOwnProperty(a))return o[a];if(1===e){var l=Math.round(Math.log((1<<s)-1&~r)/Vt);return t[n][l]}for(var u=i|1<<n,h=n+1;i&1<<h;)h++;for(var c=0,p=0,d=0;p<s;p++){var f=1<<p;f&r||(c+=(d%2?-1:1)*t[n][p]*Ft(t,e-1,h,u,r|f,o),d++)}return o[a]=c,c}function Gt(t,e){var n=[[t[0],t[1],1,0,0,0,-e[0]*t[0],-e[0]*t[1]],[0,0,0,t[0],t[1],1,-e[1]*t[0],-e[1]*t[1]],[t[2],t[3],1,0,0,0,-e[2]*t[2],-e[2]*t[3]],[0,0,0,t[2],t[3],1,-e[3]*t[2],-e[3]*t[3]],[t[4],t[5],1,0,0,0,-e[4]*t[4],-e[4]*t[5]],[0,0,0,t[4],t[5],1,-e[5]*t[4],-e[5]*t[5]],[t[6],t[7],1,0,0,0,-e[6]*t[6],-e[6]*t[7]],[0,0,0,t[6],t[7],1,-e[7]*t[6],-e[7]*t[7]]],i={},r=Ft(n,8,0,0,0,i);if(0!==r){for(var o=[],a=0;a<8;a++)for(var s=0;s<8;s++)null==o[s]&&(o[s]=0),o[s]+=((a+s)%2?-1:1)*Ft(n,7,0===a?1:0,1<<a,1<<s,i)/r*e[a];return function(t,e,n){var i=e*o[6]+n*o[7]+1;t[0]=(e*o[0]+n*o[1]+o[2])/i,t[1]=(e*o[3]+n*o[4]+o[5])/i}}}var Ht=[];function Wt(t,e,n,i,r){if(e.getBoundingClientRect&&o.domSupported&&!Yt(e)){var a=e.___zrEVENTSAVED||(e.___zrEVENTSAVED={}),s=function(t,e,n){for(var i=n?"invTrans":"trans",r=e[i],o=e.srcCoords,a=[],s=[],l=!0,u=0;u<4;u++){var h=t[u].getBoundingClientRect(),c=2*u,p=h.left,d=h.top;a.push(p,d),l=l&&o&&p===o[c]&&d===o[c+1],s.push(t[u].offsetLeft,t[u].offsetTop)}return l&&r?r:(e.srcCoords=a,e[i]=n?Gt(s,a):Gt(a,s))}(function(t,e){var n=e.markers;if(n)return n;n=e.markers=[];for(var i=["left","right"],r=["top","bottom"],o=0;o<4;o++){var a=document.createElement("div"),s=o%2,l=(o>>1)%2;a.style.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",i[s]+":0",r[l]+":0",i[1-s]+":auto",r[1-l]+":auto",""].join("!important;"),t.appendChild(a),n.push(a)}return n}(e,a),a,r);if(s)return s(t,n,i),!0}return!1}function Yt(t){return"CANVAS"===t.nodeName.toUpperCase()}var Xt="undefined"!=typeof window&&!!window.addEventListener,Ut=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Zt=[];function jt(t,e,n,i){return n=n||{},i||!o.canvasSupported?qt(t,e,n):o.browser.firefox&&null!=e.layerX&&e.layerX!==e.offsetX?(n.zrX=e.layerX,n.zrY=e.layerY):null!=e.offsetX?(n.zrX=e.offsetX,n.zrY=e.offsetY):qt(t,e,n),n}function qt(t,e,n){if(o.domSupported&&t.getBoundingClientRect){var i=e.clientX,r=e.clientY;if(Yt(t)){var a=t.getBoundingClientRect();return n.zrX=i-a.left,void(n.zrY=r-a.top)}if(Wt(Zt,t,i,r))return n.zrX=Zt[0],void(n.zrY=Zt[1])}n.zrX=n.zrY=0}function Kt(t){return t||window.event}function $t(t,e,n){if(null!=(e=Kt(e)).zrX)return e;var i=e.type;if(i&&i.indexOf("touch")>=0){var r="touchend"!==i?e.targetTouches[0]:e.changedTouches[0];r&&jt(t,r,e,n)}else{jt(t,e,e,n);var o=function(t){var e=t.wheelDelta;if(e)return e;var n=t.deltaX,i=t.deltaY;if(null==n||null==i)return e;return 3*(0!==i?Math.abs(i):Math.abs(n))*(i>0?-1:i<0?1:n>0?-1:1)}(e);e.zrDelta=o?o/120:-(e.detail||0)/3}var a=e.button;return null==e.which&&void 0!==a&&Ut.test(e.type)&&(e.which=1&a?1:2&a?3:4&a?2:0),e}function Jt(t,e,n,i){Xt?t.addEventListener(e,n,i):t.attachEvent("on"+e,n)}var Qt=Xt?function(t){t.preventDefault(),t.stopPropagation(),t.cancelBubble=!0}:function(t){t.returnValue=!1,t.cancelBubble=!0};function te(t){return 2===t.which||3===t.which}var ee=function(){function t(){this._track=[]}return t.prototype.recognize=function(t,e,n){return this._doTrack(t,e,n),this._recognize(t)},t.prototype.clear=function(){return this._track.length=0,this},t.prototype._doTrack=function(t,e,n){var i=t.touches;if(i){for(var r={points:[],touches:[],target:e,event:t},o=0,a=i.length;o<a;o++){var s=i[o],l=jt(n,s,{});r.points.push([l.zrX,l.zrY]),r.touches.push(s)}this._track.push(r)}},t.prototype._recognize=function(t){for(var e in ie)if(ie.hasOwnProperty(e)){var n=ie[e](this._track,t);if(n)return n}},t}();function ne(t){var e=t[1][0]-t[0][0],n=t[1][1]-t[0][1];return Math.sqrt(e*e+n*n)}var ie={pinch:function(t,e){var n=t.length;if(n){var i,r=(t[n-1]||{}).points,o=(t[n-2]||{}).points||r;if(o&&o.length>1&&r&&r.length>1){var a=ne(r)/ne(o);!isFinite(a)&&(a=1),e.pinchScale=a;var s=[((i=r)[0][0]+i[1][0])/2,(i[0][1]+i[1][1])/2];return e.pinchX=s[0],e.pinchY=s[1],{type:"pinch",target:t[0].target,event:e}}}}};function re(){Qt(this.event)}var oe=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.handler=null,e}return e(n,t),n.prototype.dispose=function(){},n.prototype.setCursor=function(){},n}(Bt),ae=function(t,e){this.x=t,this.y=e},se=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],le=function(t){function n(e,n,i,r){var o=t.call(this)||this;return o._hovered=new ae(0,0),o.storage=e,o.painter=n,o.painterRoot=r,i=i||new oe,o.proxy=null,o.setHandlerProxy(i),o._draggingMgr=new zt(o),o}return e(n,t),n.prototype.setHandlerProxy=function(t){this.proxy&&this.proxy.dispose(),t&&(k(se,(function(e){t.on&&t.on(e,this[e],this)}),this),t.handler=this),this.proxy=t},n.prototype.mousemove=function(t){var e=t.zrX,n=t.zrY,i=he(this,e,n),r=this._hovered,o=r.target;o&&!o.__zr&&(o=(r=this.findHover(r.x,r.y)).target);var a=this._hovered=i?new ae(e,n):this.findHover(e,n),s=a.target,l=this.proxy;l.setCursor&&l.setCursor(s?s.cursor:"default"),o&&s!==o&&this.dispatchToElement(r,"mouseout",t),this.dispatchToElement(a,"mousemove",t),s&&s!==o&&this.dispatchToElement(a,"mouseover",t)},n.prototype.mouseout=function(t){var e=t.zrEventControl;"only_globalout"!==e&&this.dispatchToElement(this._hovered,"mouseout",t),"no_globalout"!==e&&this.trigger("globalout",{type:"globalout",event:t})},n.prototype.resize=function(){this._hovered=new ae(0,0)},n.prototype.dispatch=function(t,e){var n=this[t];n&&n.call(this,e)},n.prototype.dispose=function(){this.proxy.dispose(),this.storage=null,this.proxy=null,this.painter=null},n.prototype.setCursorStyle=function(t){var e=this.proxy;e.setCursor&&e.setCursor(t)},n.prototype.dispatchToElement=function(t,e,n){var i=(t=t||{}).target;if(!i||!i.silent){for(var r="on"+e,o=function(t,e,n){return{type:t,event:n,target:e.target,topTarget:e.topTarget,cancelBubble:!1,offsetX:n.zrX,offsetY:n.zrY,gestureEvent:n.gestureEvent,pinchX:n.pinchX,pinchY:n.pinchY,pinchScale:n.pinchScale,wheelDelta:n.zrDelta,zrByTouch:n.zrByTouch,which:n.which,stop:re}}(e,t,n);i&&(i[r]&&(o.cancelBubble=!!i[r].call(i,o)),i.trigger(e,o),i=i.__hostTarget?i.__hostTarget:i.parent,!o.cancelBubble););o.cancelBubble||(this.trigger(e,o),this.painter&&this.painter.eachOtherLayer&&this.painter.eachOtherLayer((function(t){"function"==typeof t[r]&&t[r].call(t,o),t.trigger&&t.trigger(e,o)})))}},n.prototype.findHover=function(t,e,n){for(var i=this.storage.getDisplayList(),r=new ae(t,e),o=i.length-1;o>=0;o--){var a=void 0;if(i[o]!==n&&!i[o].ignore&&(a=ue(i[o],t,e))&&(!r.topTarget&&(r.topTarget=i[o]),"silent"!==a)){r.target=i[o];break}}return r},n.prototype.processGesture=function(t,e){this._gestureMgr||(this._gestureMgr=new ee);var n=this._gestureMgr;"start"===e&&n.clear();var i=n.recognize(t,this.findHover(t.zrX,t.zrY,null).target,this.proxy.dom);if("end"===e&&n.clear(),i){var r=i.type;t.gestureEvent=r;var o=new ae;o.target=i.target,this.dispatchToElement(o,r,i.event)}},n}(Bt);function ue(t,e,n){if(t[t.rectHover?"rectContain":"contain"](e,n)){for(var i=t,r=void 0,o=!1;i;){if(i.ignoreClip&&(o=!0),!o){var a=i.getClipPath();if(a&&!a.contain(e,n))return!1;i.silent&&(r=!0)}var s=i.__hostTarget;i=s||i.parent}return!r||"silent"}return!1}function he(t,e,n){var i=t.painter;return e<0||e>i.getWidth()||n<0||n>i.getHeight()}function ce(){return[1,0,0,1,0,0]}function pe(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t}function de(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function fe(t,e,n){var i=e[0]*n[0]+e[2]*n[1],r=e[1]*n[0]+e[3]*n[1],o=e[0]*n[2]+e[2]*n[3],a=e[1]*n[2]+e[3]*n[3],s=e[0]*n[4]+e[2]*n[5]+e[4],l=e[1]*n[4]+e[3]*n[5]+e[5];return t[0]=i,t[1]=r,t[2]=o,t[3]=a,t[4]=s,t[5]=l,t}function ge(t,e,n){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4]+n[0],t[5]=e[5]+n[1],t}function ye(t,e,n){var i=e[0],r=e[2],o=e[4],a=e[1],s=e[3],l=e[5],u=Math.sin(n),h=Math.cos(n);return t[0]=i*h+a*u,t[1]=-i*u+a*h,t[2]=r*h+s*u,t[3]=-r*u+h*s,t[4]=h*o+u*l,t[5]=h*l-u*o,t}function ve(t,e,n){var i=n[0],r=n[1];return t[0]=e[0]*i,t[1]=e[1]*r,t[2]=e[2]*i,t[3]=e[3]*r,t[4]=e[4]*i,t[5]=e[5]*r,t}function me(t,e){var n=e[0],i=e[2],r=e[4],o=e[1],a=e[3],s=e[5],l=n*a-o*i;return l?(l=1/l,t[0]=a*l,t[1]=-o*l,t[2]=-i*l,t[3]=n*l,t[4]=(i*s-a*r)*l,t[5]=(o*r-n*s)*l,t):null}function _e(t){var e=[1,0,0,1,0,0];return de(e,t),e}k(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],(function(t){le.prototype[t]=function(e){var n,i,r=e.zrX,o=e.zrY,a=he(this,r,o);if("mouseup"===t&&a||(i=(n=this.findHover(r,o)).target),"mousedown"===t)this._downEl=i,this._downPoint=[e.zrX,e.zrY],this._upEl=i;else if("mouseup"===t)this._upEl=i;else if("click"===t){if(this._downEl!==this._upEl||!this._downPoint||At(this._downPoint,[e.zrX,e.zrY])>4)return;this._downPoint=null}this.dispatchToElement(n,t,e)}}));var xe=Object.freeze({__proto__:null,create:ce,identity:pe,copy:de,mul:fe,translate:ge,rotate:ye,scale:ve,invert:me,clone:_e}),be=pe;function we(t){return t>5e-5||t<-5e-5}var Se=[],Me=[],Ie=[1,0,0,1,0,0],Te=Math.abs,Ce=function(){function t(){}return t.prototype.setPosition=function(t){this.x=t[0],this.y=t[1]},t.prototype.setScale=function(t){this.scaleX=t[0],this.scaleY=t[1]},t.prototype.setOrigin=function(t){this.originX=t[0],this.originY=t[1]},t.prototype.needLocalTransform=function(){return we(this.rotation)||we(this.x)||we(this.y)||we(this.scaleX-1)||we(this.scaleY-1)},t.prototype.updateTransform=function(){var t=this.parent,e=t&&t.transform,n=this.needLocalTransform(),i=this.transform;n||e?(i=i||[1,0,0,1,0,0],n?this.getLocalTransform(i):be(i),e&&(n?fe(i,t.transform,i):de(i,t.transform)),this.transform=i,this._resolveGlobalScaleRatio(i)):i&&be(i)},t.prototype._resolveGlobalScaleRatio=function(t){var e=this.globalScaleRatio;if(null!=e&&1!==e){this.getGlobalScale(Se);var n=Se[0]<0?-1:1,i=Se[1]<0?-1:1,r=((Se[0]-n)*e+n)/Se[0]||0,o=((Se[1]-i)*e+i)/Se[1]||0;t[0]*=r,t[1]*=r,t[2]*=o,t[3]*=o}this.invTransform=this.invTransform||[1,0,0,1,0,0],me(this.invTransform,t)},t.prototype.getLocalTransform=function(e){return t.getLocalTransform(this,e)},t.prototype.getComputedTransform=function(){for(var t=this,e=[];t;)e.push(t),t=t.parent;for(;t=e.pop();)t.updateTransform();return this.transform},t.prototype.setLocalTransform=function(t){if(t){var e=t[0]*t[0]+t[1]*t[1],n=t[2]*t[2]+t[3]*t[3];we(e-1)&&(e=Math.sqrt(e)),we(n-1)&&(n=Math.sqrt(n)),t[0]<0&&(e=-e),t[3]<0&&(n=-n),this.rotation=Math.atan2(-t[1]/n,t[0]/e),e<0&&n<0&&(this.rotation+=Math.PI,e=-e,n=-n),this.x=t[4],this.y=t[5],this.scaleX=e,this.scaleY=n}},t.prototype.decomposeTransform=function(){if(this.transform){var t=this.parent,e=this.transform;t&&t.transform&&(fe(Me,t.invTransform,e),e=Me);var n=this.originX,i=this.originY;(n||i)&&(Ie[4]=n,Ie[5]=i,fe(Me,e,Ie),Me[4]-=n,Me[5]-=i,e=Me),this.setLocalTransform(e)}},t.prototype.getGlobalScale=function(t){var e=this.transform;return t=t||[],e?(t[0]=Math.sqrt(e[0]*e[0]+e[1]*e[1]),t[1]=Math.sqrt(e[2]*e[2]+e[3]*e[3]),e[0]<0&&(t[0]=-t[0]),e[3]<0&&(t[1]=-t[1]),t):(t[0]=1,t[1]=1,t)},t.prototype.transformCoordToLocal=function(t,e){var n=[t,e],i=this.invTransform;return i&&Pt(n,n,i),n},t.prototype.transformCoordToGlobal=function(t,e){var n=[t,e],i=this.transform;return i&&Pt(n,n,i),n},t.prototype.getLineScale=function(){var t=this.transform;return t&&Te(t[0]-1)>1e-10&&Te(t[3]-1)>1e-10?Math.sqrt(Te(t[0]*t[3]-t[2]*t[1])):1},t.getLocalTransform=function(t,e){be(e=e||[]);var n=t.originX||0,i=t.originY||0,r=t.scaleX,o=t.scaleY,a=t.rotation||0,s=t.x,l=t.y;return e[4]-=n,e[5]-=i,e[0]*=r,e[1]*=o,e[2]*=r,e[3]*=o,e[4]*=r,e[5]*=o,a&&ye(e,e,a),e[4]+=n,e[5]+=i,e[4]+=s,e[5]+=l,e},t.initDefaultProps=function(){var e=t.prototype;e.x=0,e.y=0,e.scaleX=1,e.scaleY=1,e.originX=0,e.originY=0,e.rotation=0,e.globalScaleRatio=1}(),t}(),Ae={linear:function(t){return t},quadraticIn:function(t){return t*t},quadraticOut:function(t){return t*(2-t)},quadraticInOut:function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)},cubicIn:function(t){return t*t*t},cubicOut:function(t){return--t*t*t+1},cubicInOut:function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},quarticIn:function(t){return t*t*t*t},quarticOut:function(t){return 1- --t*t*t*t},quarticInOut:function(t){return(t*=2)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},quinticIn:function(t){return t*t*t*t*t},quinticOut:function(t){return--t*t*t*t*t+1},quinticInOut:function(t){return(t*=2)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},sinusoidalIn:function(t){return 1-Math.cos(t*Math.PI/2)},sinusoidalOut:function(t){return Math.sin(t*Math.PI/2)},sinusoidalInOut:function(t){return.5*(1-Math.cos(Math.PI*t))},exponentialIn:function(t){return 0===t?0:Math.pow(1024,t-1)},exponentialOut:function(t){return 1===t?1:1-Math.pow(2,-10*t)},exponentialInOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(2-Math.pow(2,-10*(t-1)))},circularIn:function(t){return 1-Math.sqrt(1-t*t)},circularOut:function(t){return Math.sqrt(1- --t*t)},circularInOut:function(t){return(t*=2)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},elasticIn:function(t){var e,n=.1;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=.4*Math.asin(1/n)/(2*Math.PI),-n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/.4))},elasticOut:function(t){var e,n=.1;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=.4*Math.asin(1/n)/(2*Math.PI),n*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/.4)+1)},elasticInOut:function(t){var e,n=.1,i=.4;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=i*Math.asin(1/n)/(2*Math.PI),(t*=2)<1?n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*-.5:n*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*.5+1)},backIn:function(t){var e=1.70158;return t*t*((e+1)*t-e)},backOut:function(t){var e=1.70158;return--t*t*((e+1)*t+e)+1},backInOut:function(t){var e=2.5949095;return(t*=2)<1?t*t*((e+1)*t-e)*.5:.5*((t-=2)*t*((e+1)*t+e)+2)},bounceIn:function(t){return 1-Ae.bounceOut(1-t)},bounceOut:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},bounceInOut:function(t){return t<.5?.5*Ae.bounceIn(2*t):.5*Ae.bounceOut(2*t-1)+.5}},De=function(){function t(t){this._initialized=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=t.life||1e3,this._delay=t.delay||0,this.loop=null!=t.loop&&t.loop,this.gap=t.gap||0,this.easing=t.easing||"linear",this.onframe=t.onframe,this.ondestroy=t.ondestroy,this.onrestart=t.onrestart}return t.prototype.step=function(t,e){if(this._initialized||(this._startTime=t+this._delay,this._initialized=!0),!this._paused){var n=(t-this._startTime-this._pausedTime)/this._life;n<0&&(n=0),n=Math.min(n,1);var i=this.easing,r="string"==typeof i?Ae[i]:i,o="function"==typeof r?r(n):n;if(this.onframe&&this.onframe(o),1===n){if(!this.loop)return!0;this._restart(t),this.onrestart&&this.onrestart()}return!1}this._pausedTime+=e},t.prototype._restart=function(t){var e=(t-this._startTime-this._pausedTime)%this._life;this._startTime=t-e+this.gap,this._pausedTime=0},t.prototype.pause=function(){this._paused=!0},t.prototype.resume=function(){this._paused=!1},t}(),Le=function(t){this.value=t},ke=function(){function t(){this._len=0}return t.prototype.insert=function(t){var e=new Le(t);return this.insertEntry(e),e},t.prototype.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t):this.head=this.tail=t,this._len++},t.prototype.remove=function(t){var e=t.prev,n=t.next;e?e.next=n:this.head=n,n?n.prev=e:this.tail=e,t.next=t.prev=null,this._len--},t.prototype.len=function(){return this._len},t.prototype.clear=function(){this.head=this.tail=null,this._len=0},t}(),Pe=function(){function t(t){this._list=new ke,this._maxSize=10,this._map={},this._maxSize=t}return t.prototype.put=function(t,e){var n=this._list,i=this._map,r=null;if(null==i[t]){var o=n.len(),a=this._lastRemovedEntry;if(o>=this._maxSize&&o>0){var s=n.head;n.remove(s),delete i[s.key],r=s.value,this._lastRemovedEntry=s}a?a.value=e:a=new Le(e),a.key=t,n.insertEntry(a),i[t]=a}return r},t.prototype.get=function(t){var e=this._map[t],n=this._list;if(null!=e)return e!==n.tail&&(n.remove(e),n.insertEntry(e)),e.value},t.prototype.clear=function(){this._list.clear(),this._map={}},t.prototype.len=function(){return this._list.len()},t}(),Oe={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function Re(t){return(t=Math.round(t))<0?0:t>255?255:t}function Ne(t){return t<0?0:t>1?1:t}function Ee(t){var e=t;return e.length&&"%"===e.charAt(e.length-1)?Re(parseFloat(e)/100*255):Re(parseInt(e,10))}function ze(t){var e=t;return e.length&&"%"===e.charAt(e.length-1)?Ne(parseFloat(e)/100):Ne(parseFloat(e))}function Be(t,e,n){return n<0?n+=1:n>1&&(n-=1),6*n<1?t+(e-t)*n*6:2*n<1?e:3*n<2?t+(e-t)*(2/3-n)*6:t}function Ve(t,e,n){return t+(e-t)*n}function Fe(t,e,n,i,r){return t[0]=e,t[1]=n,t[2]=i,t[3]=r,t}function Ge(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}var He=new Pe(20),We=null;function Ye(t,e){We&&Ge(We,e),We=He.put(t,We||e.slice())}function Xe(t,e){if(t){e=e||[];var n=He.get(t);if(n)return Ge(e,n);var i=(t+="").replace(/ /g,"").toLowerCase();if(i in Oe)return Ge(e,Oe[i]),Ye(t,e),e;var r,o=i.length;if("#"===i.charAt(0))return 4===o||5===o?(r=parseInt(i.slice(1,4),16))>=0&&r<=4095?(Fe(e,(3840&r)>>4|(3840&r)>>8,240&r|(240&r)>>4,15&r|(15&r)<<4,5===o?parseInt(i.slice(4),16)/15:1),Ye(t,e),e):void Fe(e,0,0,0,1):7===o||9===o?(r=parseInt(i.slice(1,7),16))>=0&&r<=16777215?(Fe(e,(16711680&r)>>16,(65280&r)>>8,255&r,9===o?parseInt(i.slice(7),16)/255:1),Ye(t,e),e):void Fe(e,0,0,0,1):void 0;var a=i.indexOf("("),s=i.indexOf(")");if(-1!==a&&s+1===o){var l=i.substr(0,a),u=i.substr(a+1,s-(a+1)).split(","),h=1;switch(l){case"rgba":if(4!==u.length)return 3===u.length?Fe(e,+u[0],+u[1],+u[2],1):Fe(e,0,0,0,1);h=ze(u.pop());case"rgb":return 3!==u.length?void Fe(e,0,0,0,1):(Fe(e,Ee(u[0]),Ee(u[1]),Ee(u[2]),h),Ye(t,e),e);case"hsla":return 4!==u.length?void Fe(e,0,0,0,1):(u[3]=ze(u[3]),Ue(u,e),Ye(t,e),e);case"hsl":return 3!==u.length?void Fe(e,0,0,0,1):(Ue(u,e),Ye(t,e),e);default:return}}Fe(e,0,0,0,1)}}function Ue(t,e){var n=(parseFloat(t[0])%360+360)%360/360,i=ze(t[1]),r=ze(t[2]),o=r<=.5?r*(i+1):r+i-r*i,a=2*r-o;return Fe(e=e||[],Re(255*Be(a,o,n+1/3)),Re(255*Be(a,o,n)),Re(255*Be(a,o,n-1/3)),1),4===t.length&&(e[3]=t[3]),e}function Ze(t,e){var n=Xe(t);if(n){for(var i=0;i<3;i++)n[i]=e<0?n[i]*(1-e)|0:(255-n[i])*e+n[i]|0,n[i]>255?n[i]=255:n[i]<0&&(n[i]=0);return en(n,4===n.length?"rgba":"rgb")}}function je(t){var e=Xe(t);if(e)return((1<<24)+(e[0]<<16)+(e[1]<<8)+ +e[2]).toString(16).slice(1)}function qe(t,e,n){if(e&&e.length&&t>=0&&t<=1){n=n||[];var i=t*(e.length-1),r=Math.floor(i),o=Math.ceil(i),a=e[r],s=e[o],l=i-r;return n[0]=Re(Ve(a[0],s[0],l)),n[1]=Re(Ve(a[1],s[1],l)),n[2]=Re(Ve(a[2],s[2],l)),n[3]=Ne(Ve(a[3],s[3],l)),n}}var Ke=qe;function $e(t,e,n){if(e&&e.length&&t>=0&&t<=1){var i=t*(e.length-1),r=Math.floor(i),o=Math.ceil(i),a=Xe(e[r]),s=Xe(e[o]),l=i-r,u=en([Re(Ve(a[0],s[0],l)),Re(Ve(a[1],s[1],l)),Re(Ve(a[2],s[2],l)),Ne(Ve(a[3],s[3],l))],"rgba");return n?{color:u,leftIndex:r,rightIndex:o,value:i}:u}}var Je=$e;function Qe(t,e,n,i){var r=Xe(t);if(t)return r=function(t){if(t){var e,n,i=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.min(i,r,o),s=Math.max(i,r,o),l=s-a,u=(s+a)/2;if(0===l)e=0,n=0;else{n=u<.5?l/(s+a):l/(2-s-a);var h=((s-i)/6+l/2)/l,c=((s-r)/6+l/2)/l,p=((s-o)/6+l/2)/l;i===s?e=p-c:r===s?e=1/3+h-p:o===s&&(e=2/3+c-h),e<0&&(e+=1),e>1&&(e-=1)}var d=[360*e,n,u];return null!=t[3]&&d.push(t[3]),d}}(r),null!=e&&(r[0]=function(t){return(t=Math.round(t))<0?0:t>360?360:t}(e)),null!=n&&(r[1]=ze(n)),null!=i&&(r[2]=ze(i)),en(Ue(r),"rgba")}function tn(t,e){var n=Xe(t);if(n&&null!=e)return n[3]=Ne(e),en(n,"rgba")}function en(t,e){if(t&&t.length){var n=t[0]+","+t[1]+","+t[2];return"rgba"!==e&&"hsva"!==e&&"hsla"!==e||(n+=","+t[3]),e+"("+n+")"}}function nn(t,e){var n=Xe(t);return n?(.299*n[0]+.587*n[1]+.114*n[2])*n[3]/255+(1-n[3])*e:0}var rn=Object.freeze({__proto__:null,parse:Xe,lift:Ze,toHex:je,fastLerp:qe,fastMapToColor:Ke,lerp:$e,mapToColor:Je,modifyHSL:Qe,modifyAlpha:tn,stringify:en,lum:nn,random:function(){return"rgb("+Math.round(255*Math.random())+","+Math.round(255*Math.random())+","+Math.round(255*Math.random())+")"}}),on=Array.prototype.slice;function an(t,e,n){return(e-t)*n+t}function sn(t,e,n,i){for(var r=e.length,o=0;o<r;o++)t[o]=an(e[o],n[o],i)}function ln(t,e,n,i){for(var r=e.length,o=0;o<r;o++)t[o]=e[o]+n[o]*i;return t}function un(t,e,n,i){for(var r=e.length,o=r&&e[0].length,a=0;a<r;a++){t[a]||(t[a]=[]);for(var s=0;s<o;s++)t[a][s]=e[a][s]+n[a][s]*i}return t}function hn(t,e,n){var i=t,r=e;if(i.push&&r.push){var o=i.length,a=r.length;if(o!==a)if(o>a)i.length=a;else for(var s=o;s<a;s++)i.push(1===n?r[s]:on.call(r[s]));var l=i[0]&&i[0].length;for(s=0;s<i.length;s++)if(1===n)isNaN(i[s])&&(i[s]=r[s]);else for(var u=0;u<l;u++)isNaN(i[s][u])&&(i[s][u]=r[s][u])}}function cn(t,e){var n=t.length;if(n!==e.length)return!1;for(var i=0;i<n;i++)if(t[i]!==e[i])return!1;return!0}function pn(t,e,n,i,r,o,a){var s=.5*(n-t),l=.5*(i-e);return(2*(e-n)+s+l)*a+(-3*(e-n)-2*s-l)*o+s*r+e}function dn(t,e,n,i,r,o,a,s){for(var l=e.length,u=0;u<l;u++)t[u]=pn(e[u],n[u],i[u],r[u],o,a,s)}function fn(t){if(L(t)){var e=t.length;if(L(t[0])){for(var n=[],i=0;i<e;i++)n.push(on.call(t[i]));return n}return on.call(t)}return t}function gn(t){return t[0]=Math.floor(t[0]),t[1]=Math.floor(t[1]),t[2]=Math.floor(t[2]),"rgba("+t.join(",")+")"}var yn,vn,mn=[0,0,0,0],_n=function(){function t(t){this.keyframes=[],this.maxTime=0,this.arrDim=0,this.interpolable=!0,this._needsSort=!1,this._isAllValueEqual=!0,this._lastFrame=0,this._lastFramePercent=0,this.propName=t}return t.prototype.isFinished=function(){return this._finished},t.prototype.setFinished=function(){this._finished=!0,this._additiveTrack&&this._additiveTrack.setFinished()},t.prototype.needsAnimate=function(){return!this._isAllValueEqual&&this.keyframes.length>=2&&this.interpolable},t.prototype.getAdditiveTrack=function(){return this._additiveTrack},t.prototype.addKeyframe=function(t,e){t>=this.maxTime?this.maxTime=t:this._needsSort=!0;var n=this.keyframes,i=n.length;if(this.interpolable)if(L(e)){var r=function(t){return L(t&&t[0])?2:1}(e);if(i>0&&this.arrDim!==r)return void(this.interpolable=!1);if(1===r&&"number"!=typeof e[0]||2===r&&"number"!=typeof e[0][0])return void(this.interpolable=!1);if(i>0){var o=n[i-1];this._isAllValueEqual&&(1===r&&cn(e,o.value)||(this._isAllValueEqual=!1))}this.arrDim=r}else{if(this.arrDim>0)return void(this.interpolable=!1);if("string"==typeof e){var a=Xe(e);a?(e=a,this.isValueColor=!0):this.interpolable=!1}else if("number"!=typeof e)return void(this.interpolable=!1);if(this._isAllValueEqual&&i>0){o=n[i-1];(this.isValueColor&&!cn(o.value,e)||o.value!==e)&&(this._isAllValueEqual=!1)}}var s={time:t,value:e,percent:0};return this.keyframes.push(s),s},t.prototype.prepare=function(t){var e=this.keyframes;this._needsSort&&e.sort((function(t,e){return t.time-e.time}));for(var n=this.arrDim,i=e.length,r=e[i-1],o=0;o<i;o++)e[o].percent=e[o].time/this.maxTime,n>0&&o!==i-1&&hn(e[o].value,r.value,n);if(t&&this.needsAnimate()&&t.needsAnimate()&&n===t.arrDim&&this.isValueColor===t.isValueColor&&!t._finished){this._additiveTrack=t;var a=e[0].value;for(o=0;o<i;o++)0===n?this.isValueColor?e[o].additiveValue=ln([],e[o].value,a,-1):e[o].additiveValue=e[o].value-a:1===n?e[o].additiveValue=ln([],e[o].value,a,-1):2===n&&(e[o].additiveValue=un([],e[o].value,a,-1))}},t.prototype.step=function(t,e){if(!this._finished){this._additiveTrack&&this._additiveTrack._finished&&(this._additiveTrack=null);var n,i=null!=this._additiveTrack,r=i?"additiveValue":"value",o=this.keyframes,a=this.keyframes.length,s=this.propName,l=this.arrDim,u=this.isValueColor;if(e<0)n=0;else if(e<this._lastFramePercent){for(n=Math.min(this._lastFrame+1,a-1);n>=0&&!(o[n].percent<=e);n--);n=Math.min(n,a-2)}else{for(n=this._lastFrame;n<a&&!(o[n].percent>e);n++);n=Math.min(n-1,a-2)}var h=o[n+1],c=o[n];if(c&&h){this._lastFrame=n,this._lastFramePercent=e;var p=h.percent-c.percent;if(0!==p){var d=(e-c.percent)/p,f=i?this._additiveValue:u?mn:t[s];if((l>0||u)&&!f&&(f=this._additiveValue=[]),this.useSpline){var g=o[n][r],y=o[0===n?n:n-1][r],v=o[n>a-2?a-1:n+1][r],m=o[n>a-3?a-1:n+2][r];if(l>0)1===l?dn(f,y,g,v,m,d,d*d,d*d*d):function(t,e,n,i,r,o,a,s){for(var l=e.length,u=e[0].length,h=0;h<l;h++){t[h]||(t[1]=[]);for(var c=0;c<u;c++)t[h][c]=pn(e[h][c],n[h][c],i[h][c],r[h][c],o,a,s)}}(f,y,g,v,m,d,d*d,d*d*d);else if(u)dn(f,y,g,v,m,d,d*d,d*d*d),i||(t[s]=gn(f));else{var _=void 0;_=this.interpolable?pn(y,g,v,m,d,d*d,d*d*d):v,i?this._additiveValue=_:t[s]=_}}else if(l>0)1===l?sn(f,c[r],h[r],d):function(t,e,n,i){for(var r=e.length,o=r&&e[0].length,a=0;a<r;a++){t[a]||(t[a]=[]);for(var s=0;s<o;s++)t[a][s]=an(e[a][s],n[a][s],i)}}(f,c[r],h[r],d);else if(u)sn(f,c[r],h[r],d),i||(t[s]=gn(f));else{_=void 0;_=this.interpolable?an(c[r],h[r],d):function(t,e,n){return n>.5?e:t}(c[r],h[r],d),i?this._additiveValue=_:t[s]=_}i&&this._addToTarget(t)}}}},t.prototype._addToTarget=function(t){var e=this.arrDim,n=this.propName,i=this._additiveValue;0===e?this.isValueColor?(Xe(t[n],mn),ln(mn,mn,i,1),t[n]=gn(mn)):t[n]=t[n]+i:1===e?ln(t[n],t[n],i,1):2===e&&un(t[n],t[n],i,1)},t}(),xn=function(){function t(t,e,n){this._tracks={},this._trackKeys=[],this._delay=0,this._maxTime=0,this._paused=!1,this._started=0,this._clip=null,this._target=t,this._loop=e,e&&n?x("Can' use additive animation on looped animation."):this._additiveAnimators=n}return t.prototype.getTarget=function(){return this._target},t.prototype.changeTarget=function(t){this._target=t},t.prototype.when=function(t,e){return this.whenWithKeys(t,e,E(e))},t.prototype.whenWithKeys=function(t,e,n){for(var i=this._tracks,r=0;r<n.length;r++){var o=n[r],a=i[o];if(!a){a=i[o]=new _n(o);var s=void 0,l=this._getAdditiveTrack(o);if(l){var u=l.keyframes[l.keyframes.length-1];s=u&&u.value,l.isValueColor&&s&&(s=gn(s))}else s=this._target[o];if(null==s)continue;0!==t&&a.addKeyframe(0,fn(s)),this._trackKeys.push(o)}a.addKeyframe(t,fn(e[o]))}return this._maxTime=Math.max(this._maxTime,t),this},t.prototype.pause=function(){this._clip.pause(),this._paused=!0},t.prototype.resume=function(){this._clip.resume(),this._paused=!1},t.prototype.isPaused=function(){return!!this._paused},t.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var t=this._doneList;if(t)for(var e=t.length,n=0;n<e;n++)t[n].call(this)},t.prototype._abortedCallback=function(){this._setTracksFinished();var t=this.animation,e=this._abortedList;if(t&&t.removeClip(this._clip),this._clip=null,e)for(var n=0;n<e.length;n++)e[n].call(this)},t.prototype._setTracksFinished=function(){for(var t=this._tracks,e=this._trackKeys,n=0;n<e.length;n++)t[e[n]].setFinished()},t.prototype._getAdditiveTrack=function(t){var e,n=this._additiveAnimators;if(n)for(var i=0;i<n.length;i++){var r=n[i].getTrack(t);r&&(e=r)}return e},t.prototype.start=function(t,e){if(!(this._started>0)){this._started=1;for(var n=this,i=[],r=0;r<this._trackKeys.length;r++){var o=this._trackKeys[r],a=this._tracks[o],s=this._getAdditiveTrack(o),l=a.keyframes;if(a.prepare(s),a.needsAnimate())i.push(a);else if(!a.interpolable){var u=l[l.length-1];u&&(n._target[a.propName]=u.value)}}if(i.length||e){var h=new De({life:this._maxTime,loop:this._loop,delay:this._delay,onframe:function(t){n._started=2;var e=n._additiveAnimators;if(e){for(var r=!1,o=0;o<e.length;o++)if(e[o]._clip){r=!0;break}r||(n._additiveAnimators=null)}for(o=0;o<i.length;o++)i[o].step(n._target,t);var a=n._onframeList;if(a)for(o=0;o<a.length;o++)a[o](n._target,t)},ondestroy:function(){n._doneCallback()}});this._clip=h,this.animation&&this.animation.addClip(h),t&&"spline"!==t&&(h.easing=t)}else this._doneCallback();return this}},t.prototype.stop=function(t){if(this._clip){var e=this._clip;t&&e.onframe(1),this._abortedCallback()}},t.prototype.delay=function(t){return this._delay=t,this},t.prototype.during=function(t){return t&&(this._onframeList||(this._onframeList=[]),this._onframeList.push(t)),this},t.prototype.done=function(t){return t&&(this._doneList||(this._doneList=[]),this._doneList.push(t)),this},t.prototype.aborted=function(t){return t&&(this._abortedList||(this._abortedList=[]),this._abortedList.push(t)),this},t.prototype.getClip=function(){return this._clip},t.prototype.getTrack=function(t){return this._tracks[t]},t.prototype.stopTracks=function(t,e){if(!t.length||!this._clip)return!0;for(var n=this._tracks,i=this._trackKeys,r=0;r<t.length;r++){var o=n[t[r]];o&&(e?o.step(this._target,1):1===this._started&&o.step(this._target,0),o.setFinished())}var a=!0;for(r=0;r<i.length;r++)if(!n[i[r]].isFinished()){a=!1;break}return a&&this._abortedCallback(),a},t.prototype.saveFinalToTarget=function(t,e){if(t){e=e||this._trackKeys;for(var n=0;n<e.length;n++){var i=e[n],r=this._tracks[i];if(r&&!r.isFinished()){var o=r.keyframes,a=o[o.length-1];if(a){var s=fn(a.value);r.isValueColor&&(s=gn(s)),t[i]=s}}}}},t.prototype.__changeFinalValue=function(t,e){e=e||E(t);for(var n=0;n<e.length;n++){var i=e[n],r=this._tracks[i];if(r){var o=r.keyframes;if(o.length>1){var a=o.pop();r.addKeyframe(a.time,t[i]),r.prepare(r.getAdditiveTrack())}}}},t}(),bn=function(){function t(t,e){this.x=t||0,this.y=e||0}return t.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this},t.prototype.clone=function(){return new t(this.x,this.y)},t.prototype.set=function(t,e){return this.x=t,this.y=e,this},t.prototype.equal=function(t){return t.x===this.x&&t.y===this.y},t.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this},t.prototype.scale=function(t){this.x*=t,this.y*=t},t.prototype.scaleAndAdd=function(t,e){this.x+=t.x*e,this.y+=t.y*e},t.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this},t.prototype.dot=function(t){return this.x*t.x+this.y*t.y},t.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},t.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},t.prototype.normalize=function(){var t=this.len();return this.x/=t,this.y/=t,this},t.prototype.distance=function(t){var e=this.x-t.x,n=this.y-t.y;return Math.sqrt(e*e+n*n)},t.prototype.distanceSquare=function(t){var e=this.x-t.x,n=this.y-t.y;return e*e+n*n},t.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},t.prototype.transform=function(t){if(t){var e=this.x,n=this.y;return this.x=t[0]*e+t[2]*n+t[4],this.y=t[1]*e+t[3]*n+t[5],this}},t.prototype.toArray=function(t){return t[0]=this.x,t[1]=this.y,t},t.prototype.fromArray=function(t){this.x=t[0],this.y=t[1]},t.set=function(t,e,n){t.x=e,t.y=n},t.copy=function(t,e){t.x=e.x,t.y=e.y},t.len=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)},t.lenSquare=function(t){return t.x*t.x+t.y*t.y},t.dot=function(t,e){return t.x*e.x+t.y*e.y},t.add=function(t,e,n){t.x=e.x+n.x,t.y=e.y+n.y},t.sub=function(t,e,n){t.x=e.x-n.x,t.y=e.y-n.y},t.scale=function(t,e,n){t.x=e.x*n,t.y=e.y*n},t.scaleAndAdd=function(t,e,n,i){t.x=e.x+n.x*i,t.y=e.y+n.y*i},t.lerp=function(t,e,n,i){var r=1-i;t.x=r*e.x+i*n.x,t.y=r*e.y+i*n.y},t}(),wn=Math.min,Sn=Math.max,Mn=new bn,In=new bn,Tn=new bn,Cn=new bn,An=new bn,Dn=new bn,Ln=function(){function t(t,e,n,i){n<0&&isFinite(n)&&(t+=n,n=-n),i<0&&isFinite(i)&&(e+=i,i=-i),this.x=t,this.y=e,this.width=n,this.height=i}return t.prototype.union=function(t){var e=wn(t.x,this.x),n=wn(t.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=Sn(t.x+t.width,this.x+this.width)-e:this.width=t.width,isFinite(this.y)&&isFinite(this.height)?this.height=Sn(t.y+t.height,this.y+this.height)-n:this.height=t.height,this.x=e,this.y=n},t.prototype.applyTransform=function(e){t.applyTransform(this,this,e)},t.prototype.calculateTransform=function(t){var e=this,n=t.width/e.width,i=t.height/e.height,r=[1,0,0,1,0,0];return ge(r,r,[-e.x,-e.y]),ve(r,r,[n,i]),ge(r,r,[t.x,t.y]),r},t.prototype.intersect=function(e,n){if(!e)return!1;e instanceof t||(e=t.create(e));var i=this,r=i.x,o=i.x+i.width,a=i.y,s=i.y+i.height,l=e.x,u=e.x+e.width,h=e.y,c=e.y+e.height,p=!(o<l||u<r||s<h||c<a);if(n){var d=1/0,f=0,g=Math.abs(o-l),y=Math.abs(u-r),v=Math.abs(s-h),m=Math.abs(c-a),_=Math.min(g,y),x=Math.min(v,m);o<l||u<r?_>f&&(f=_,g<y?bn.set(Dn,-g,0):bn.set(Dn,y,0)):_<d&&(d=_,g<y?bn.set(An,g,0):bn.set(An,-y,0)),s<h||c<a?x>f&&(f=x,v<m?bn.set(Dn,0,-v):bn.set(Dn,0,m)):_<d&&(d=_,v<m?bn.set(An,0,v):bn.set(An,0,-m))}return n&&bn.copy(n,p?An:Dn),p},t.prototype.contain=function(t,e){var n=this;return t>=n.x&&t<=n.x+n.width&&e>=n.y&&e<=n.y+n.height},t.prototype.clone=function(){return new t(this.x,this.y,this.width,this.height)},t.prototype.copy=function(e){t.copy(this,e)},t.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},t.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},t.prototype.isZero=function(){return 0===this.width||0===this.height},t.create=function(e){return new t(e.x,e.y,e.width,e.height)},t.copy=function(t,e){t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height},t.applyTransform=function(e,n,i){if(i){if(i[1]<1e-5&&i[1]>-1e-5&&i[2]<1e-5&&i[2]>-1e-5){var r=i[0],o=i[3],a=i[4],s=i[5];return e.x=n.x*r+a,e.y=n.y*o+s,e.width=n.width*r,e.height=n.height*o,e.width<0&&(e.x+=e.width,e.width=-e.width),void(e.height<0&&(e.y+=e.height,e.height=-e.height))}Mn.x=Tn.x=n.x,Mn.y=Cn.y=n.y,In.x=Cn.x=n.x+n.width,In.y=Tn.y=n.y+n.height,Mn.transform(i),Cn.transform(i),In.transform(i),Tn.transform(i),e.x=wn(Mn.x,In.x,Tn.x,Cn.x),e.y=wn(Mn.y,In.y,Tn.y,Cn.y);var l=Sn(Mn.x,In.x,Tn.x,Cn.x),u=Sn(Mn.y,In.y,Tn.y,Cn.y);e.width=l-e.x,e.height=u-e.y}else e!==n&&t.copy(e,n)},t}(),kn={},Pn="12px sans-serif";var On={measureText:function(t,e){return yn||(yn=T().getContext("2d")),vn!==e&&(vn=yn.font=e||Pn),yn.measureText(t)}};function Rn(t,e){var n=kn[e=e||Pn];n||(n=kn[e]=new Pe(500));var i=n.get(t);return null==i&&(i=On.measureText(t,e).width,n.put(t,i)),i}function Nn(t,e,n,i){var r=Rn(t,e),o=Vn(e),a=zn(0,r,n),s=Bn(0,o,i);return new Ln(a,s,r,o)}function En(t,e,n,i){var r=((t||"")+"").split("\n");if(1===r.length)return Nn(r[0],e,n,i);for(var o=new Ln(0,0,0,0),a=0;a<r.length;a++){var s=Nn(r[a],e,n,i);0===a?o.copy(s):o.union(s)}return o}function zn(t,e,n){return"right"===n?t-=e:"center"===n&&(t-=e/2),t}function Bn(t,e,n){return"middle"===n?t-=e/2:"bottom"===n&&(t-=e),t}function Vn(t){return Rn("国",t)}function Fn(t,e){return"string"==typeof t?t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t):t}function Gn(t,e,n){var i=e.position||"inside",r=null!=e.distance?e.distance:5,o=n.height,a=n.width,s=o/2,l=n.x,u=n.y,h="left",c="top";if(i instanceof Array)l+=Fn(i[0],n.width),u+=Fn(i[1],n.height),h=null,c=null;else switch(i){case"left":l-=r,u+=s,h="right",c="middle";break;case"right":l+=r+a,u+=s,c="middle";break;case"top":l+=a/2,u-=r,h="center",c="bottom";break;case"bottom":l+=a/2,u+=o+r,h="center";break;case"inside":l+=a/2,u+=s,h="center",c="middle";break;case"insideLeft":l+=r,u+=s,c="middle";break;case"insideRight":l+=a-r,u+=s,h="right",c="middle";break;case"insideTop":l+=a/2,u+=r,h="center";break;case"insideBottom":l+=a/2,u+=o-r,h="center",c="bottom";break;case"insideTopLeft":l+=r,u+=r;break;case"insideTopRight":l+=a-r,u+=r,h="right";break;case"insideBottomLeft":l+=r,u+=o-r,c="bottom";break;case"insideBottomRight":l+=a-r,u+=o-r,h="right",c="bottom"}return(t=t||{}).x=l,t.y=u,t.align=h,t.verticalAlign=c,t}var Hn=1;"undefined"!=typeof window&&(Hn=Math.max(window.devicePixelRatio||window.screen&&window.screen.deviceXDPI/window.screen.logicalXDPI||1,1));var Wn=Hn,Yn=["x","y","scaleX","scaleY","originX","originY","rotation","ignore"],Xn={x:!0,y:!0,scaleX:!0,scaleY:!0,originX:!0,originY:!0,rotation:!0,ignore:!1},Un={},Zn=new Ln(0,0,0,0),jn=function(){function t(t){this.id=_(),this.animators=[],this.currentStates=[],this.states={},this._init(t)}return t.prototype._init=function(t){this.attr(t)},t.prototype.drift=function(t,e,n){switch(this.draggable){case"horizontal":e=0;break;case"vertical":t=0}var i=this.transform;i||(i=this.transform=[1,0,0,1,0,0]),i[4]+=t,i[5]+=e,this.decomposeTransform(),this.markRedraw()},t.prototype.beforeUpdate=function(){},t.prototype.afterUpdate=function(){},t.prototype.update=function(){this.updateTransform(),this.__dirty&&this.updateInnerText()},t.prototype.updateInnerText=function(t){var e=this._textContent;if(e&&(!e.ignore||t)){this.textConfig||(this.textConfig={});var n=this.textConfig,i=n.local,r=e.attachedTransform,o=void 0,a=void 0,s=!1;r.parent=i?this:null;var l=!1;if(r.x=e.x,r.y=e.y,r.originX=e.originX,r.originY=e.originY,r.rotation=e.rotation,r.scaleX=e.scaleX,r.scaleY=e.scaleY,null!=n.position){var u=Zn;n.layoutRect?u.copy(n.layoutRect):u.copy(this.getBoundingRect()),i||u.applyTransform(this.transform),this.calculateTextPosition?this.calculateTextPosition(Un,n,u):Gn(Un,n,u),r.x=Un.x,r.y=Un.y,o=Un.align,a=Un.verticalAlign;var h=n.origin;if(h&&null!=n.rotation){var c=void 0,p=void 0;"center"===h?(c=.5*u.width,p=.5*u.height):(c=Fn(h[0],u.width),p=Fn(h[1],u.height)),l=!0,r.originX=-r.x+c+(i?0:u.x),r.originY=-r.y+p+(i?0:u.y)}}null!=n.rotation&&(r.rotation=n.rotation);var d=n.offset;d&&(r.x+=d[0],r.y+=d[1],l||(r.originX=-d[0],r.originY=-d[1]));var f=null==n.inside?"string"==typeof n.position&&n.position.indexOf("inside")>=0:n.inside,g=this._innerTextDefaultStyle||(this._innerTextDefaultStyle={}),y=void 0,v=void 0,m=void 0;f&&this.canBeInsideText()?(y=n.insideFill,v=n.insideStroke,null!=y&&"auto"!==y||(y=this.getInsideTextFill()),null!=v&&"auto"!==v||(v=this.getInsideTextStroke(y),m=!0)):(y=n.outsideFill,v=n.outsideStroke,null!=y&&"auto"!==y||(y=this.getOutsideFill()),null!=v&&"auto"!==v||(v=this.getOutsideStroke(y),m=!0)),(y=y||"#000")===g.fill&&v===g.stroke&&m===g.autoStroke&&o===g.align&&a===g.verticalAlign||(s=!0,g.fill=y,g.stroke=v,g.autoStroke=m,g.align=o,g.verticalAlign=a,e.setDefaultTextStyle(g)),s&&e.dirtyStyle(),e.markRedraw()}},t.prototype.canBeInsideText=function(){return!0},t.prototype.getInsideTextFill=function(){return"#fff"},t.prototype.getInsideTextStroke=function(t){return"#000"},t.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?"#ccc":"#333"},t.prototype.getOutsideStroke=function(t){var e=this.__zr&&this.__zr.getBackgroundColor(),n="string"==typeof e&&Xe(e);n||(n=[255,255,255,1]);for(var i=n[3],r=this.__zr.isDarkMode(),o=0;o<3;o++)n[o]=n[o]*i+(r?0:255)*(1-i);return n[3]=1,en(n,"rgba")},t.prototype.traverse=function(t,e){},t.prototype.attrKV=function(t,e){"textConfig"===t?this.setTextConfig(e):"textContent"===t?this.setTextContent(e):"clipPath"===t?this.setClipPath(e):"extra"===t?(this.extra=this.extra||{},M(this.extra,e)):this[t]=e},t.prototype.hide=function(){this.ignore=!0,this.markRedraw()},t.prototype.show=function(){this.ignore=!1,this.markRedraw()},t.prototype.attr=function(t,e){if("string"==typeof t)this.attrKV(t,e);else if(Y(t))for(var n=E(t),i=0;i<n.length;i++){var r=n[i];this.attrKV(r,t[r])}return this.markRedraw(),this},t.prototype.saveCurrentToNormalState=function(t){this._innerSaveToNormal(t);for(var e=this._normalState,n=0;n<this.animators.length;n++){var i=this.animators[n],r=i.__fromStateTransition;if(!r||"__zr_normal__"===r){var o=i.targetName,a=o?e[o]:e;i.saveFinalToTarget(a)}}},t.prototype._innerSaveToNormal=function(t){var e=this._normalState;e||(e=this._normalState={}),t.textConfig&&!e.textConfig&&(e.textConfig=this.textConfig),this._savePrimaryToNormal(t,e,Yn)},t.prototype._savePrimaryToNormal=function(t,e,n){for(var i=0;i<n.length;i++){var r=n[i];null==t[r]||r in e||(e[r]=this[r])}},t.prototype.hasState=function(){return this.currentStates.length>0},t.prototype.getState=function(t){return this.states[t]},t.prototype.ensureState=function(t){var e=this.states;return e[t]||(e[t]={}),e[t]},t.prototype.clearStates=function(t){this.useState("__zr_normal__",!1,t)},t.prototype.useState=function(e,n,i){var r="__zr_normal__"===e;if(this.hasState()||!r){var o=this.currentStates,a=this.stateTransition;if(!(C(o,e)>=0)||!n&&1!==o.length){var s;if(this.stateProxy&&!r&&(s=this.stateProxy(e)),s||(s=this.states&&this.states[e]),s||r){r||this.saveCurrentToNormalState(s);var l=!(!s||!s.hoverLayer);return l&&this._toggleHoverLayerFlag(!0),this._applyStateObj(e,s,this._normalState,n,!i&&!this.__inHover&&a&&a.duration>0,a),this._textContent&&this._textContent.useState(e,n),this._textGuide&&this._textGuide.useState(e,n),r?(this.currentStates=[],this._normalState={}):n?this.currentStates.push(e):this.currentStates=[e],this._updateAnimationTargets(),this.markRedraw(),!l&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~t.REDARAW_BIT),s}x("State "+e+" not exists.")}}},t.prototype.useStates=function(e,n){if(e.length){var i=[],r=this.currentStates,o=e.length,a=o===r.length;if(a)for(var s=0;s<o;s++)if(e[s]!==r[s]){a=!1;break}if(a)return;for(s=0;s<o;s++){var l=e[s],u=void 0;this.stateProxy&&(u=this.stateProxy(l,e)),u||(u=this.states[l]),u&&i.push(u)}var h=!(!i[o-1]||!i[o-1].hoverLayer);h&&this._toggleHoverLayerFlag(!0);var c=this._mergeStates(i),p=this.stateTransition;this.saveCurrentToNormalState(c),this._applyStateObj(e.join(","),c,this._normalState,!1,!n&&!this.__inHover&&p&&p.duration>0,p),this._textContent&&this._textContent.useStates(e),this._textGuide&&this._textGuide.useStates(e),this._updateAnimationTargets(),this.currentStates=e.slice(),this.markRedraw(),!h&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~t.REDARAW_BIT)}else this.clearStates()},t.prototype._updateAnimationTargets=function(){for(var t=0;t<this.animators.length;t++){var e=this.animators[t];e.targetName&&e.changeTarget(this[e.targetName])}},t.prototype.removeState=function(t){var e=C(this.currentStates,t);if(e>=0){var n=this.currentStates.slice();n.splice(e,1),this.useStates(n)}},t.prototype.replaceState=function(t,e,n){var i=this.currentStates.slice(),r=C(i,t),o=C(i,e)>=0;r>=0?o?i.splice(r,1):i[r]=e:n&&!o&&i.push(e),this.useStates(i)},t.prototype.toggleState=function(t,e){e?this.useState(t,!0):this.removeState(t)},t.prototype._mergeStates=function(t){for(var e,n={},i=0;i<t.length;i++){var r=t[i];M(n,r),r.textConfig&&M(e=e||{},r.textConfig)}return e&&(n.textConfig=e),n},t.prototype._applyStateObj=function(t,e,n,i,r,o){var a=!(e&&i);e&&e.textConfig?(this.textConfig=M({},i?this.textConfig:n.textConfig),M(this.textConfig,e.textConfig)):a&&n.textConfig&&(this.textConfig=n.textConfig);for(var s={},l=!1,u=0;u<Yn.length;u++){var h=Yn[u],c=r&&Xn[h];e&&null!=e[h]?c?(l=!0,s[h]=e[h]):this[h]=e[h]:a&&null!=n[h]&&(c?(l=!0,s[h]=n[h]):this[h]=n[h])}if(!r)for(u=0;u<this.animators.length;u++){var p=this.animators[u],d=p.targetName;p.__changeFinalValue(d?(e||n)[d]:e||n)}l&&this._transitionState(t,s,o)},t.prototype._attachComponent=function(t){if(t.__zr&&!t.__hostTarget)throw new Error("Text element has been added to zrender.");if(t===this)throw new Error("Recursive component attachment.");var e=this.__zr;e&&t.addSelfToZr(e),t.__zr=e,t.__hostTarget=this},t.prototype._detachComponent=function(t){t.__zr&&t.removeSelfFromZr(t.__zr),t.__zr=null,t.__hostTarget=null},t.prototype.getClipPath=function(){return this._clipPath},t.prototype.setClipPath=function(t){this._clipPath&&this._clipPath!==t&&this.removeClipPath(),this._attachComponent(t),this._clipPath=t,this.markRedraw()},t.prototype.removeClipPath=function(){var t=this._clipPath;t&&(this._detachComponent(t),this._clipPath=null,this.markRedraw())},t.prototype.getTextContent=function(){return this._textContent},t.prototype.setTextContent=function(t){var e=this._textContent;if(e!==t){if(e&&e!==t&&this.removeTextContent(),t.__zr&&!t.__hostTarget)throw new Error("Text element has been added to zrender.");t.attachedTransform=new Ce,this._attachComponent(t),this._textContent=t,this.markRedraw()}},t.prototype.setTextConfig=function(t){this.textConfig||(this.textConfig={}),M(this.textConfig,t),this.markRedraw()},t.prototype.removeTextContent=function(){var t=this._textContent;t&&(t.attachedTransform=null,this._detachComponent(t),this._textContent=null,this._innerTextDefaultStyle=null,this.markRedraw())},t.prototype.getTextGuideLine=function(){return this._textGuide},t.prototype.setTextGuideLine=function(t){this._textGuide&&this._textGuide!==t&&this.removeTextGuideLine(),this._attachComponent(t),this._textGuide=t,this.markRedraw()},t.prototype.removeTextGuideLine=function(){var t=this._textGuide;t&&(this._detachComponent(t),this._textGuide=null,this.markRedraw())},t.prototype.markRedraw=function(){this.__dirty|=t.REDARAW_BIT;var e=this.__zr;e&&(this.__inHover?e.refreshHover():e.refresh()),this.__hostTarget&&this.__hostTarget.markRedraw()},t.prototype.dirty=function(){this.markRedraw()},t.prototype._toggleHoverLayerFlag=function(t){this.__inHover=t;var e=this._textContent,n=this._textGuide;e&&(e.__inHover=t),n&&(n.__inHover=t)},t.prototype.addSelfToZr=function(t){this.__zr=t;var e=this.animators;if(e)for(var n=0;n<e.length;n++)t.animation.addAnimator(e[n]);this._clipPath&&this._clipPath.addSelfToZr(t),this._textContent&&this._textContent.addSelfToZr(t),this._textGuide&&this._textGuide.addSelfToZr(t)},t.prototype.removeSelfFromZr=function(t){this.__zr=null;var e=this.animators;if(e)for(var n=0;n<e.length;n++)t.animation.removeAnimator(e[n]);this._clipPath&&this._clipPath.removeSelfFromZr(t),this._textContent&&this._textContent.removeSelfFromZr(t),this._textGuide&&this._textGuide.removeSelfFromZr(t)},t.prototype.animate=function(t,e){var n=t?this[t]:this;if(n){var i=new xn(n,e);return this.addAnimator(i,t),i}x('Property "'+t+'" is not existed in element '+this.id)},t.prototype.addAnimator=function(t,e){var n=this.__zr,i=this;t.during((function(){i.updateDuringAnimation(e)})).done((function(){var e=i.animators,n=C(e,t);n>=0&&e.splice(n,1)})),this.animators.push(t),n&&n.animation.addAnimator(t),n&&n.wakeUp()},t.prototype.updateDuringAnimation=function(t){this.markRedraw()},t.prototype.stopAnimation=function(t,e){for(var n=this.animators,i=n.length,r=[],o=0;o<i;o++){var a=n[o];t&&t!==a.scope?r.push(a):a.stop(e)}return this.animators=r,this},t.prototype.animateTo=function(t,e,n){qn(this,t,e,n)},t.prototype.animateFrom=function(t,e,n){qn(this,t,e,n,!0)},t.prototype._transitionState=function(t,e,n,i){for(var r=qn(this,e,n,i),o=0;o<r.length;o++)r[o].__fromStateTransition=t},t.prototype.getBoundingRect=function(){return null},t.prototype.getPaintRect=function(){return null},t.REDARAW_BIT=1,t.initDefaultProps=function(){var e=t.prototype;e.type="element",e.name="",e.ignore=!1,e.silent=!1,e.isGroup=!1,e.draggable=!1,e.dragging=!1,e.ignoreClip=!1,e.__inHover=!1,e.__dirty=t.REDARAW_BIT;var n={};function i(t,e,i){n[t+e+i]||(console.warn("DEPRECATED: '"+t+"' has been deprecated. use '"+e+"', '"+i+"' instead"),n[t+e+i]=!0)}function r(t,n,r,o){function a(t,e){Object.defineProperty(e,0,{get:function(){return t[r]},set:function(e){t[r]=e}}),Object.defineProperty(e,1,{get:function(){return t[o]},set:function(e){t[o]=e}})}Object.defineProperty(e,t,{get:function(){(i(t,r,o),this[n])||a(this,this[n]=[]);return this[n]},set:function(e){i(t,r,o),this[r]=e[0],this[o]=e[1],this[n]=e,a(this,e)}})}Object.defineProperty&&(!o.browser.ie||o.browser.version>8)&&(r("position","_legacyPos","x","y"),r("scale","_legacyScale","scaleX","scaleY"),r("origin","_legacyOrigin","originX","originY"))}(),t}();function qn(t,e,n,i,r){var o=[];Jn(t,"",t,e,n=n||{},i,o,r);var a=o.length,s=!1,l=n.done,u=n.aborted,h=function(){s=!0,--a<=0&&(s?l&&l():u&&u())},c=function(){--a<=0&&(s?l&&l():u&&u())};a||l&&l(),o.length>0&&n.during&&o[0].during((function(t,e){n.during(e)}));for(var p=0;p<o.length;p++){var d=o[p];h&&d.done(h),c&&d.aborted(c),d.start(n.easing,n.force)}return o}function Kn(t,e,n){for(var i=0;i<n;i++)t[i]=e[i]}function $n(t,e,n){if(L(e[n]))if(L(t[n])||(t[n]=[]),U(e[n])){var i=e[n].length;t[n].length!==i&&(t[n]=new e[n].constructor(i),Kn(t[n],e[n],i))}else{var r=e[n],o=t[n],a=r.length;if(L(r[0]))for(var s=r[0].length,l=0;l<a;l++)o[l]?Kn(o[l],r[l],s):o[l]=Array.prototype.slice.call(r[l]);else Kn(o,r,a);o.length=r.length}else t[n]=e[n]}function Jn(t,e,n,i,r,o,a,s){for(var l=[],u=[],h=E(i),c=r.duration,p=r.delay,d=r.additive,f=r.setToFinal,g=!Y(o),y=0;y<h.length;y++){if(null!=n[I=h[y]]&&null!=i[I]&&(g||o[I]))if(Y(i[I])&&!L(i[I])){if(e){s||(n[I]=i[I],t.updateDuringAnimation(e));continue}Jn(t,I,n[I],i[I],r,o&&o[I],a,s)}else l.push(I),u.push(I);else s||(n[I]=i[I],t.updateDuringAnimation(e),u.push(I))}var v=l.length;if(v>0||r.force&&!a.length){for(var m=t.animators,_=[],x=0;x<m.length;x++)m[x].targetName===e&&_.push(m[x]);if(!d&&_.length)for(x=0;x<_.length;x++){if(_[x].stopTracks(u)){var b=C(m,_[x]);m.splice(b,1)}}var w=void 0,S=void 0,M=void 0;if(s){S={},f&&(w={});for(x=0;x<v;x++){S[I=l[x]]=n[I],f?w[I]=i[I]:n[I]=i[I]}}else if(f){M={};for(x=0;x<v;x++){var I;M[I=l[x]]=fn(n[I]),$n(n,i,I)}}var T=new xn(n,!1,d?_:null);T.targetName=e,r.scope&&(T.scope=r.scope),f&&w&&T.whenWithKeys(0,w,l),M&&T.whenWithKeys(0,M,l),T.whenWithKeys(null==c?500:c,s?S:i,l).delay(p||0),t.addAnimator(T,e),a.push(T)}}D(jn,Bt),D(jn,Ce);function Qn(t,e,n,i){var r=e+1;if(r===n)return 1;if(i(t[r++],t[e])<0){for(;r<n&&i(t[r],t[r-1])<0;)r++;!function(t,e,n){n--;for(;e<n;){var i=t[e];t[e++]=t[n],t[n--]=i}}(t,e,r)}else for(;r<n&&i(t[r],t[r-1])>=0;)r++;return r-e}function ti(t,e,n,i,r){for(i===e&&i++;i<n;i++){for(var o,a=t[i],s=e,l=i;s<l;)r(a,t[o=s+l>>>1])<0?l=o:s=o+1;var u=i-s;switch(u){case 3:t[s+3]=t[s+2];case 2:t[s+2]=t[s+1];case 1:t[s+1]=t[s];break;default:for(;u>0;)t[s+u]=t[s+u-1],u--}t[s]=a}}function ei(t,e,n,i,r,o){var a=0,s=0,l=1;if(o(t,e[n+r])>0){for(s=i-r;l<s&&o(t,e[n+r+l])>0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),a+=r,l+=r}else{for(s=r+1;l<s&&o(t,e[n+r-l])<=0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s);var u=a;a=r-l,l=r-u}for(a++;a<l;){var h=a+(l-a>>>1);o(t,e[n+h])>0?a=h+1:l=h}return l}function ni(t,e,n,i,r,o){var a=0,s=0,l=1;if(o(t,e[n+r])<0){for(s=r+1;l<s&&o(t,e[n+r-l])<0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s);var u=a;a=r-l,l=r-u}else{for(s=i-r;l<s&&o(t,e[n+r+l])>=0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),a+=r,l+=r}for(a++;a<l;){var h=a+(l-a>>>1);o(t,e[n+h])<0?l=h:a=h+1}return l}function ii(t,e){var n,i,r=7,o=0;t.length;var a=[];function s(s){var l=n[s],u=i[s],h=n[s+1],c=i[s+1];i[s]=u+c,s===o-3&&(n[s+1]=n[s+2],i[s+1]=i[s+2]),o--;var p=ni(t[h],t,l,u,0,e);l+=p,0!==(u-=p)&&0!==(c=ei(t[l+u-1],t,h,c,c-1,e))&&(u<=c?function(n,i,o,s){var l=0;for(l=0;l<i;l++)a[l]=t[n+l];var u=0,h=o,c=n;if(t[c++]=t[h++],0==--s){for(l=0;l<i;l++)t[c+l]=a[u+l];return}if(1===i){for(l=0;l<s;l++)t[c+l]=t[h+l];return void(t[c+s]=a[u])}var p,d,f,g=r;for(;;){p=0,d=0,f=!1;do{if(e(t[h],a[u])<0){if(t[c++]=t[h++],d++,p=0,0==--s){f=!0;break}}else if(t[c++]=a[u++],p++,d=0,1==--i){f=!0;break}}while((p|d)<g);if(f)break;do{if(0!==(p=ni(t[h],a,u,i,0,e))){for(l=0;l<p;l++)t[c+l]=a[u+l];if(c+=p,u+=p,(i-=p)<=1){f=!0;break}}if(t[c++]=t[h++],0==--s){f=!0;break}if(0!==(d=ei(a[u],t,h,s,0,e))){for(l=0;l<d;l++)t[c+l]=t[h+l];if(c+=d,h+=d,0===(s-=d)){f=!0;break}}if(t[c++]=a[u++],1==--i){f=!0;break}g--}while(p>=7||d>=7);if(f)break;g<0&&(g=0),g+=2}if((r=g)<1&&(r=1),1===i){for(l=0;l<s;l++)t[c+l]=t[h+l];t[c+s]=a[u]}else{if(0===i)throw new Error;for(l=0;l<i;l++)t[c+l]=a[u+l]}}(l,u,h,c):function(n,i,o,s){var l=0;for(l=0;l<s;l++)a[l]=t[o+l];var u=n+i-1,h=s-1,c=o+s-1,p=0,d=0;if(t[c--]=t[u--],0==--i){for(p=c-(s-1),l=0;l<s;l++)t[p+l]=a[l];return}if(1===s){for(d=(c-=i)+1,p=(u-=i)+1,l=i-1;l>=0;l--)t[d+l]=t[p+l];return void(t[c]=a[h])}var f=r;for(;;){var g=0,y=0,v=!1;do{if(e(a[h],t[u])<0){if(t[c--]=t[u--],g++,y=0,0==--i){v=!0;break}}else if(t[c--]=a[h--],y++,g=0,1==--s){v=!0;break}}while((g|y)<f);if(v)break;do{if(0!==(g=i-ni(a[h],t,n,i,i-1,e))){for(i-=g,d=(c-=g)+1,p=(u-=g)+1,l=g-1;l>=0;l--)t[d+l]=t[p+l];if(0===i){v=!0;break}}if(t[c--]=a[h--],1==--s){v=!0;break}if(0!==(y=s-ei(t[u],a,0,s,s-1,e))){for(s-=y,d=(c-=y)+1,p=(h-=y)+1,l=0;l<y;l++)t[d+l]=a[p+l];if(s<=1){v=!0;break}}if(t[c--]=t[u--],0==--i){v=!0;break}f--}while(g>=7||y>=7);if(v)break;f<0&&(f=0),f+=2}(r=f)<1&&(r=1);if(1===s){for(d=(c-=i)+1,p=(u-=i)+1,l=i-1;l>=0;l--)t[d+l]=t[p+l];t[c]=a[h]}else{if(0===s)throw new Error;for(p=c-(s-1),l=0;l<s;l++)t[p+l]=a[l]}}(l,u,h,c))}return n=[],i=[],{mergeRuns:function(){for(;o>1;){var t=o-2;if(t>=1&&i[t-1]<=i[t]+i[t+1]||t>=2&&i[t-2]<=i[t]+i[t-1])i[t-1]<i[t+1]&&t--;else if(i[t]>i[t+1])break;s(t)}},forceMergeRuns:function(){for(;o>1;){var t=o-2;t>0&&i[t-1]<i[t+1]&&t--,s(t)}},pushRun:function(t,e){n[o]=t,i[o]=e,o+=1}}}function ri(t,e,n,i){n||(n=0),i||(i=t.length);var r=i-n;if(!(r<2)){var o=0;if(r<32)ti(t,n,i,n+(o=Qn(t,n,i,e)),e);else{var a=ii(t,e),s=function(t){for(var e=0;t>=32;)e|=1&t,t>>=1;return t+e}(r);do{if((o=Qn(t,n,i,e))<s){var l=r;l>s&&(l=s),ti(t,n,n+l,n+o,e),o=l}a.pushRun(n,o),a.mergeRuns(),r-=o,n+=o}while(0!==r);a.forceMergeRuns()}}}var oi=!1;function ai(){oi||(oi=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function si(t,e){return t.zlevel===e.zlevel?t.z===e.z?t.z2-e.z2:t.z-e.z:t.zlevel-e.zlevel}var li,ui,hi=function(){function t(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=si}return t.prototype.traverse=function(t,e){for(var n=0;n<this._roots.length;n++)this._roots[n].traverse(t,e)},t.prototype.getDisplayList=function(t,e){e=e||!1;var n=this._displayList;return!t&&n.length||this.updateDisplayList(e),n},t.prototype.updateDisplayList=function(t){this._displayListLen=0;for(var e=this._roots,n=this._displayList,i=0,r=e.length;i<r;i++)this._updateAndAddDisplayable(e[i],null,t);n.length=this._displayListLen,o.canvasSupported&&ri(n,si)},t.prototype._updateAndAddDisplayable=function(t,e,n){if(!t.ignore||n){t.beforeUpdate(),t.update(),t.afterUpdate();var i=t.getClipPath();if(t.ignoreClip)e=null;else if(i){e=e?e.slice():[];for(var r=i,o=t;r;)r.parent=o,r.updateTransform(),e.push(r),o=r,r=r.getClipPath()}if(t.childrenRef){for(var a=t.childrenRef(),s=0;s<a.length;s++){var l=a[s];t.__dirty&&(l.__dirty|=jn.REDARAW_BIT),this._updateAndAddDisplayable(l,e,n)}t.__dirty=0}else{var u=t;e&&e.length?u.__clipPaths=e:u.__clipPaths&&u.__clipPaths.length>0&&(u.__clipPaths=[]),isNaN(u.z)&&(ai(),u.z=0),isNaN(u.z2)&&(ai(),u.z2=0),isNaN(u.zlevel)&&(ai(),u.zlevel=0),this._displayList[this._displayListLen++]=u}var h=t.getDecalElement&&t.getDecalElement();h&&this._updateAndAddDisplayable(h,e,n);var c=t.getTextGuideLine();c&&this._updateAndAddDisplayable(c,e,n);var p=t.getTextContent();p&&this._updateAndAddDisplayable(p,e,n)}},t.prototype.addRoot=function(t){t.__zr&&t.__zr.storage===this||this._roots.push(t)},t.prototype.delRoot=function(t){if(t instanceof Array)for(var e=0,n=t.length;e<n;e++)this.delRoot(t[e]);else{var i=C(this._roots,t);i>=0&&this._roots.splice(i,1)}},t.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},t.prototype.getRoots=function(){return this._roots},t.prototype.dispose=function(){this._displayList=null,this._roots=null},t}(),ci="undefined"!=typeof window&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(t){return setTimeout(t,16)},pi=function(t){function n(e){var n=t.call(this)||this;return n._running=!1,n._time=0,n._pausedTime=0,n._pauseStart=0,n._paused=!1,e=e||{},n.stage=e.stage||{},n.onframe=e.onframe||function(){},n}return e(n,t),n.prototype.addClip=function(t){t.animation&&this.removeClip(t),this._clipsHead?(this._clipsTail.next=t,t.prev=this._clipsTail,t.next=null,this._clipsTail=t):this._clipsHead=this._clipsTail=t,t.animation=this},n.prototype.addAnimator=function(t){t.animation=this;var e=t.getClip();e&&this.addClip(e)},n.prototype.removeClip=function(t){if(t.animation){var e=t.prev,n=t.next;e?e.next=n:this._clipsHead=n,n?n.prev=e:this._clipsTail=e,t.next=t.prev=t.animation=null}},n.prototype.removeAnimator=function(t){var e=t.getClip();e&&this.removeClip(e),t.animation=null},n.prototype.update=function(t){for(var e=(new Date).getTime()-this._pausedTime,n=e-this._time,i=this._clipsHead;i;){var r=i.next;i.step(e,n)?(i.ondestroy&&i.ondestroy(),this.removeClip(i),i=r):i=r}this._time=e,t||(this.onframe(n),this.trigger("frame",n),this.stage.update&&this.stage.update())},n.prototype._startLoop=function(){var t=this;this._running=!0,ci((function e(){t._running&&(ci(e),!t._paused&&t.update())}))},n.prototype.start=function(){this._running||(this._time=(new Date).getTime(),this._pausedTime=0,this._startLoop())},n.prototype.stop=function(){this._running=!1},n.prototype.pause=function(){this._paused||(this._pauseStart=(new Date).getTime(),this._paused=!0)},n.prototype.resume=function(){this._paused&&(this._pausedTime+=(new Date).getTime()-this._pauseStart,this._paused=!1)},n.prototype.clear=function(){for(var t=this._clipsHead;t;){var e=t.next;t.prev=t.next=t.animation=null,t=e}this._clipsHead=this._clipsTail=null},n.prototype.isFinished=function(){return null==this._clipsHead},n.prototype.animate=function(t,e){e=e||{},this.start();var n=new xn(t,e.loop);return this.addAnimator(n),n},n}(Bt),di=o.domSupported,fi=(ui={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},{mouse:li=["click","dblclick","mousewheel","wheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],touch:["touchstart","touchend","touchmove"],pointer:P(li,(function(t){var e=t.replace("mouse","pointer");return ui.hasOwnProperty(e)?e:t}))}),gi=["mousemove","mouseup"],yi=["pointermove","pointerup"],vi=!1;function mi(t){var e=t.pointerType;return"pen"===e||"touch"===e}function _i(t){t&&(t.zrByTouch=!0)}function xi(t,e){for(var n=e,i=!1;n&&9!==n.nodeType&&!(i=n.domBelongToZr||n!==e&&n===t.painterRoot);)n=n.parentNode;return i}var bi=function(t,e){this.stopPropagation=pt,this.stopImmediatePropagation=pt,this.preventDefault=pt,this.type=e.type,this.target=this.currentTarget=t.dom,this.pointerType=e.pointerType,this.clientX=e.clientX,this.clientY=e.clientY},wi={mousedown:function(t){t=$t(this.dom,t),this.__mayPointerCapture=[t.zrX,t.zrY],this.trigger("mousedown",t)},mousemove:function(t){t=$t(this.dom,t);var e=this.__mayPointerCapture;!e||t.zrX===e[0]&&t.zrY===e[1]||this.__togglePointerCapture(!0),this.trigger("mousemove",t)},mouseup:function(t){t=$t(this.dom,t),this.__togglePointerCapture(!1),this.trigger("mouseup",t)},mouseout:function(t){xi(this,(t=$t(this.dom,t)).toElement||t.relatedTarget)||(this.__pointerCapturing&&(t.zrEventControl="no_globalout"),this.trigger("mouseout",t))},wheel:function(t){vi=!0,t=$t(this.dom,t),this.trigger("mousewheel",t)},mousewheel:function(t){vi||(t=$t(this.dom,t),this.trigger("mousewheel",t))},touchstart:function(t){_i(t=$t(this.dom,t)),this.__lastTouchMoment=new Date,this.handler.processGesture(t,"start"),wi.mousemove.call(this,t),wi.mousedown.call(this,t)},touchmove:function(t){_i(t=$t(this.dom,t)),this.handler.processGesture(t,"change"),wi.mousemove.call(this,t)},touchend:function(t){_i(t=$t(this.dom,t)),this.handler.processGesture(t,"end"),wi.mouseup.call(this,t),+new Date-+this.__lastTouchMoment<300&&wi.click.call(this,t)},pointerdown:function(t){wi.mousedown.call(this,t)},pointermove:function(t){mi(t)||wi.mousemove.call(this,t)},pointerup:function(t){wi.mouseup.call(this,t)},pointerout:function(t){mi(t)||wi.mouseout.call(this,t)}};k(["click","dblclick","contextmenu"],(function(t){wi[t]=function(e){e=$t(this.dom,e),this.trigger(t,e)}}));var Si={pointermove:function(t){mi(t)||Si.mousemove.call(this,t)},pointerup:function(t){Si.mouseup.call(this,t)},mousemove:function(t){this.trigger("mousemove",t)},mouseup:function(t){var e=this.__pointerCapturing;this.__togglePointerCapture(!1),this.trigger("mouseup",t),e&&(t.zrEventControl="only_globalout",this.trigger("mouseout",t))}};function Mi(t,e){var n=e.domHandlers;o.pointerEventsSupported?k(fi.pointer,(function(i){Ti(e,i,(function(e){n[i].call(t,e)}))})):(o.touchEventsSupported&&k(fi.touch,(function(i){Ti(e,i,(function(r){n[i].call(t,r),function(t){t.touching=!0,null!=t.touchTimer&&(clearTimeout(t.touchTimer),t.touchTimer=null),t.touchTimer=setTimeout((function(){t.touching=!1,t.touchTimer=null}),700)}(e)}))})),k(fi.mouse,(function(i){Ti(e,i,(function(r){r=Kt(r),e.touching||n[i].call(t,r)}))})))}function Ii(t,e){function n(n){Ti(e,n,(function(i){i=Kt(i),xi(t,i.target)||(i=function(t,e){return $t(t.dom,new bi(t,e),!0)}(t,i),e.domHandlers[n].call(t,i))}),{capture:!0})}o.pointerEventsSupported?k(yi,n):o.touchEventsSupported||k(gi,n)}function Ti(t,e,n,i){t.mounted[e]=n,t.listenerOpts[e]=i,Jt(t.domTarget,e,n,i)}function Ci(t){var e,n,i,r,o=t.mounted;for(var a in o)o.hasOwnProperty(a)&&(e=t.domTarget,n=a,i=o[a],r=t.listenerOpts[a],Xt?e.removeEventListener(n,i,r):e.detachEvent("on"+n,i));t.mounted={}}var Ai=function(t,e){this.mounted={},this.listenerOpts={},this.touching=!1,this.domTarget=t,this.domHandlers=e},Di=function(t){function n(e,n){var i=t.call(this)||this;return i.__pointerCapturing=!1,i.dom=e,i.painterRoot=n,i._localHandlerScope=new Ai(e,wi),di&&(i._globalHandlerScope=new Ai(document,Si)),Mi(i,i._localHandlerScope),i}return e(n,t),n.prototype.dispose=function(){Ci(this._localHandlerScope),di&&Ci(this._globalHandlerScope)},n.prototype.setCursor=function(t){this.dom.style&&(this.dom.style.cursor=t||"default")},n.prototype.__togglePointerCapture=function(t){if(this.__mayPointerCapture=null,di&&+this.__pointerCapturing^+t){this.__pointerCapturing=t;var e=this._globalHandlerScope;t?Ii(this,e):Ci(e)}},n}(Bt),Li=function(t){function n(e){var n=t.call(this)||this;return n.isGroup=!0,n._children=[],n.attr(e),n}return e(n,t),n.prototype.childrenRef=function(){return this._children},n.prototype.children=function(){return this._children.slice()},n.prototype.childAt=function(t){return this._children[t]},n.prototype.childOfName=function(t){for(var e=this._children,n=0;n<e.length;n++)if(e[n].name===t)return e[n]},n.prototype.childCount=function(){return this._children.length},n.prototype.add=function(t){if(t&&(t!==this&&t.parent!==this&&(this._children.push(t),this._doAdd(t)),t.__hostTarget))throw"This elemenet has been used as an attachment";return this},n.prototype.addBefore=function(t,e){if(t&&t!==this&&t.parent!==this&&e&&e.parent===this){var n=this._children,i=n.indexOf(e);i>=0&&(n.splice(i,0,t),this._doAdd(t))}return this},n.prototype.replaceAt=function(t,e){var n=this._children,i=n[e];if(t&&t!==this&&t.parent!==this&&t!==i){n[e]=t,i.parent=null;var r=this.__zr;r&&i.removeSelfFromZr(r),this._doAdd(t)}return this},n.prototype._doAdd=function(t){t.parent&&t.parent.remove(t),t.parent=this;var e=this.__zr;e&&e!==t.__zr&&t.addSelfToZr(e),e&&e.refresh()},n.prototype.remove=function(t){var e=this.__zr,n=this._children,i=C(n,t);return i<0||(n.splice(i,1),t.parent=null,e&&t.removeSelfFromZr(e),e&&e.refresh()),this},n.prototype.removeAll=function(){for(var t=this._children,e=this.__zr,n=0;n<t.length;n++){var i=t[n];e&&i.removeSelfFromZr(e),i.parent=null}return t.length=0,this},n.prototype.eachChild=function(t,e){for(var n=this._children,i=0;i<n.length;i++){var r=n[i];t.call(e,r,i)}return this},n.prototype.traverse=function(t,e){for(var n=0;n<this._children.length;n++){var i=this._children[n],r=t.call(e,i);i.isGroup&&!r&&i.traverse(t,e)}return this},n.prototype.addSelfToZr=function(e){t.prototype.addSelfToZr.call(this,e);for(var n=0;n<this._children.length;n++){this._children[n].addSelfToZr(e)}},n.prototype.removeSelfFromZr=function(e){t.prototype.removeSelfFromZr.call(this,e);for(var n=0;n<this._children.length;n++){this._children[n].removeSelfFromZr(e)}},n.prototype.getBoundingRect=function(t){for(var e=new Ln(0,0,0,0),n=t||this._children,i=[],r=null,o=0;o<n.length;o++){var a=n[o];if(!a.ignore&&!a.invisible){var s=a.getBoundingRect(),l=a.getLocalTransform(i);l?(Ln.applyTransform(e,s,l),(r=r||e.clone()).union(e)):(r=r||s.clone()).union(s)}}return r||e},n}(jn);Li.prototype.type="group";
 /*!
 * ZRender, a high performance 2d drawing library.
 *
@@ -56,4 +42,4 @@
 * LICENSE
 * https://github.com/ecomfe/zrender/blob/master/LICENSE.txt
 */
-var Oi=!o.canvasSupported,Ri={},Ni={};var Ei=function(){function t(t,e,n){var i=this;this._sleepAfterStill=10,this._stillFrameAccum=0,this._needsRefresh=!0,this._needsRefreshHover=!0,this._darkMode=!1,n=n||{},this.dom=e,this.id=t;var r=new pi,a=n.renderer||"canvas";if(Oi)throw new Error("IE8 support has been dropped since 5.0");if(Ri[a]||(a=E(Ri)[0]),!Ri[a])throw new Error("Renderer '"+a+"' is not imported. Please import it first.");n.useDirtyRect=null!=n.useDirtyRect&&n.useDirtyRect;var s=new Ri[a](e,r,n,t);this.storage=r,this.painter=s;var l=o.node||o.worker?null:new ki(s.getViewportRoot(),s.root);this.handler=new he(r,s,l,s.root),this.animation=new fi({stage:{update:function(){return i._flush(!0)}}}),this.animation.start()}return t.prototype.add=function(t){t&&(this.storage.addRoot(t),t.addSelfToZr(this),this.refresh())},t.prototype.remove=function(t){t&&(this.storage.delRoot(t),t.removeSelfFromZr(this),this.refresh())},t.prototype.configLayer=function(t,e){this.painter.configLayer&&this.painter.configLayer(t,e),this.refresh()},t.prototype.setBackgroundColor=function(t){this.painter.setBackgroundColor&&this.painter.setBackgroundColor(t),this.refresh(),this._backgroundColor=t,this._darkMode=function(t){if(!t)return!1;if("string"==typeof t)return on(t,1)<.4;if(t.colorStops){for(var e=t.colorStops,n=0,i=e.length,r=0;r<i;r++)n+=on(e[r].color,1);return(n/=i)<.4}return!1}(t)},t.prototype.getBackgroundColor=function(){return this._backgroundColor},t.prototype.setDarkMode=function(t){this._darkMode=t},t.prototype.isDarkMode=function(){return this._darkMode},t.prototype.refreshImmediately=function(t){t||this.animation.update(!0),this._needsRefresh=!1,this.painter.refresh(),this._needsRefresh=!1},t.prototype.refresh=function(){this._needsRefresh=!0,this.animation.start()},t.prototype.flush=function(){this._flush(!1)},t.prototype._flush=function(t){var e,n=(new Date).getTime();this._needsRefresh&&(e=!0,this.refreshImmediately(t)),this._needsRefreshHover&&(e=!0,this.refreshHoverImmediately());var i=(new Date).getTime();e?(this._stillFrameAccum=0,this.trigger("rendered",{elapsedTime:i-n})):this._sleepAfterStill>0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},t.prototype.setSleepAfterStill=function(t){this._sleepAfterStill=t},t.prototype.wakeUp=function(){this.animation.start(),this._stillFrameAccum=0},t.prototype.addHover=function(t){},t.prototype.removeHover=function(t){},t.prototype.clearHover=function(){},t.prototype.refreshHover=function(){this._needsRefreshHover=!0},t.prototype.refreshHoverImmediately=function(){this._needsRefreshHover=!1,this.painter.refreshHover&&"canvas"===this.painter.getType()&&this.painter.refreshHover()},t.prototype.resize=function(t){t=t||{},this.painter.resize(t.width,t.height),this.handler.resize()},t.prototype.clearAnimation=function(){this.animation.clear()},t.prototype.getWidth=function(){return this.painter.getWidth()},t.prototype.getHeight=function(){return this.painter.getHeight()},t.prototype.pathToImage=function(t,e){if(this.painter.pathToImage)return this.painter.pathToImage(t,e)},t.prototype.setCursorStyle=function(t){this.handler.setCursorStyle(t)},t.prototype.findHover=function(t,e){return this.handler.findHover(t,e)},t.prototype.on=function(t,e,n){return this.handler.on(t,e,n),this},t.prototype.off=function(t,e){this.handler.off(t,e)},t.prototype.trigger=function(t,e){this.handler.trigger(t,e)},t.prototype.clear=function(){for(var t=this.storage.getRoots(),e=0;e<t.length;e++)t[e]instanceof Pi&&t[e].removeSelfFromZr(this);this.storage.delAllRoots(),this.painter.clear()},t.prototype.dispose=function(){var t;this.animation.stop(),this.clear(),this.storage.dispose(),this.painter.dispose(),this.handler.dispose(),this.animation=this.storage=this.painter=this.handler=null,t=this.id,delete Ni[t]},t}();function zi(t,e){var n=new Ei(_(),t,e);return Ni[n.id]=n,n}function Bi(t,e){Ri[t]=e}var Vi=Object.freeze({__proto__:null,init:zi,dispose:function(t){t.dispose()},disposeAll:function(){for(var t in Ni)Ni.hasOwnProperty(t)&&Ni[t].dispose();Ni={}},getInstance:function(t){return Ni[t]},registerPainter:Bi,version:"5.0.1"});function Fi(t,e,n,i){var r=e[1]-e[0],o=n[1]-n[0];if(0===r)return 0===o?n[0]:(n[0]+n[1])/2;if(i)if(r>0){if(t<=e[0])return n[0];if(t>=e[1])return n[1]}else{if(t>=e[0])return n[0];if(t<=e[1])return n[1]}else{if(t===e[0])return n[0];if(t===e[1])return n[1]}return(t-e[0])/r*o+n[0]}function Gi(t,e){switch(t){case"center":case"middle":t="50%";break;case"left":case"top":t="0%";break;case"right":case"bottom":t="100%"}return"string"==typeof t?(n=t,n.replace(/^\s+|\s+$/g,"")).match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?NaN:+t;var n}function Hi(t,e,n){return null==e&&(e=10),e=Math.min(Math.max(0,e),20),t=(+t).toFixed(e),n?t:+t}function Wi(t){return t.sort((function(t,e){return t-e})),t}function Yi(t){if(t=+t,isNaN(t))return 0;for(var e=1,n=0;Math.round(t*e)/e!==t;)e*=10,n++;return n}function Xi(t){var e=t.toString(),n=e.indexOf("e");if(n>0){var i=+e.slice(n+1);return i<0?-i:0}var r=e.indexOf(".");return r<0?0:e.length-1-r}function Ui(t,e){var n=Math.log,i=Math.LN10,r=Math.floor(n(t[1]-t[0])/i),o=Math.round(n(Math.abs(e[1]-e[0]))/i),a=Math.min(Math.max(-r+o,0),20);return isFinite(a)?a:20}function Zi(t,e,n){if(!t[e])return 0;var i=O(t,(function(t,e){return t+(isNaN(e)?0:e)}),0);if(0===i)return 0;for(var r=Math.pow(10,n),o=P(t,(function(t){return(isNaN(t)?0:t)/i*r*100})),a=100*r,s=P(o,(function(t){return Math.floor(t)})),l=O(s,(function(t,e){return t+e}),0),u=P(o,(function(t,e){return t-s[e]}));l<a;){for(var h=Number.NEGATIVE_INFINITY,c=null,p=0,d=u.length;p<d;++p)u[p]>h&&(h=u[p],c=p);++s[c],u[c]=0,++l}return s[e]/r}function ji(t){var e=2*Math.PI;return(t%e+e)%e}function qi(t){return t>-1e-4&&t<1e-4}var Ki=/^(?:(\d{4})(?:[-\/](\d{1,2})(?:[-\/](\d{1,2})(?:[T ](\d{1,2})(?::(\d{1,2})(?::(\d{1,2})(?:[.,](\d+))?)?)?(Z|[\+\-]\d\d:?\d\d)?)?)?)?)?$/;function $i(t){if(t instanceof Date)return t;if("string"==typeof t){var e=Ki.exec(t);if(!e)return new Date(NaN);if(e[8]){var n=+e[4]||0;return"Z"!==e[8].toUpperCase()&&(n-=+e[8].slice(0,3)),new Date(Date.UTC(+e[1],+(e[2]||1)-1,+e[3]||1,n,+(e[5]||0),+e[6]||0,+e[7]||0))}return new Date(+e[1],+(e[2]||1)-1,+e[3]||1,+e[4]||0,+(e[5]||0),+e[6]||0,+e[7]||0)}return null==t?new Date(NaN):new Date(Math.round(t))}function Ji(t){return Math.pow(10,Qi(t))}function Qi(t){if(0===t)return 0;var e=Math.floor(Math.log(t)/Math.LN10);return t/Math.pow(10,e)>=10&&e++,e}function tr(t,e){var n=Qi(t),i=Math.pow(10,n),r=t/i;return t=(e?r<1.5?1:r<2.5?2:r<4?3:r<7?5:10:r<1?1:r<2?2:r<3?3:r<5?5:10)*i,n>=-20?+t.toFixed(n<0?-n:0):t}function er(t,e){var n=(t.length-1)*e+1,i=Math.floor(n),r=+t[i-1],o=n-i;return o?r+o*(t[i]-r):r}function nr(t){t.sort((function(t,e){return s(t,e,0)?-1:1}));for(var e=-1/0,n=1,i=0;i<t.length;){for(var r=t[i].interval,o=t[i].close,a=0;a<2;a++)r[a]<=e&&(r[a]=e,o[a]=a?1:1-n),e=r[a],n=o[a];r[0]===r[1]&&o[0]*o[1]!=1?t.splice(i,1):i++}return t;function s(t,e,n){return t.interval[n]<e.interval[n]||t.interval[n]===e.interval[n]&&(t.close[n]-e.close[n]==(n?-1:1)||!n&&s(t,e,1))}}function ir(t){var e=parseFloat(t);return e==t&&(0!==e||"string"!=typeof t||t.indexOf("x")<=0)?e:NaN}function rr(t){return!isNaN(ir(t))}function or(){return Math.round(9*Math.random())}function ar(t,e){return 0===e?t:ar(e,t%e)}function sr(t,e){return null==t?e:null==e?t:t*e/ar(t,e)}"undefined"!=typeof console&&console.warn&&console.log;function lr(t){0}function ur(t){throw new Error(t)}function hr(t){return t instanceof Array?t:null==t?[]:[t]}function cr(t,e,n){if(t){t[e]=t[e]||{},t.emphasis=t.emphasis||{},t.emphasis[e]=t.emphasis[e]||{};for(var i=0,r=n.length;i<r;i++){var o=n[i];!t.emphasis[e].hasOwnProperty(o)&&t[e].hasOwnProperty(o)&&(t.emphasis[e][o]=t[e][o])}}}var pr=["fontStyle","fontWeight","fontSize","fontFamily","rich","tag","color","textBorderColor","textBorderWidth","width","height","lineHeight","align","verticalAlign","baseline","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","textShadowColor","textShadowBlur","textShadowOffsetX","textShadowOffsetY","backgroundColor","borderColor","borderWidth","borderRadius","padding"];function dr(t){return!Y(t)||V(t)||t instanceof Date?t:t.value}function fr(t,e,n){var i="normalMerge"===n,r="replaceMerge"===n,o="replaceAll"===n;t=t||[],e=(e||[]).slice();var a=lt();k(e,(function(t,n){Y(t)||(e[n]=null)}));var s,l,u=function(t,e,n){var i=[];if("replaceAll"===n)return i;for(var r=0;r<t.length;r++){var o=t[r];o&&null!=o.id&&e.set(o.id,r),i.push({existing:"replaceMerge"===n||_r(o)?null:o,newOption:null,keyInfo:null,brandNew:null})}return i}(t,a,n);return(i||r)&&function(t,e,n,i){k(i,(function(r,o){if(r&&null!=r.id){var a=yr(r.id),s=n.get(a);if(null!=s){var l=t[s];it(!l.newOption,'Duplicated option on id "'+a+'".'),l.newOption=r,l.existing=e[s],i[o]=null}}}))}(u,t,a,e),i&&function(t,e){k(e,(function(n,i){if(n&&null!=n.name)for(var r=0;r<t.length;r++){var o=t[r].existing;if(!t[r].newOption&&o&&(null==o.id||null==n.id)&&!_r(n)&&!_r(o)&&gr("name",o,n))return t[r].newOption=n,void(e[i]=null)}}))}(u,e),i||r?function(t,e,n){k(e,(function(e){if(e){for(var i,r=0;(i=t[r])&&(i.newOption||_r(i.existing)||i.existing&&null!=e.id&&!gr("id",e,i.existing));)r++;i?(i.newOption=e,i.brandNew=n):t.push({newOption:e,brandNew:n,existing:null,keyInfo:null}),r++}}))}(u,e,r):o&&function(t,e){k(e,(function(e){t.push({newOption:e,brandNew:!0,existing:null,keyInfo:null})}))}(u,e),s=u,l=lt(),k(s,(function(t){var e=t.existing;e&&l.set(e.id,t)})),k(s,(function(t){var e=t.newOption;it(!e||null==e.id||!l.get(e.id)||l.get(e.id)===t,"id duplicates: "+(e&&e.id)),e&&null!=e.id&&l.set(e.id,t),!t.keyInfo&&(t.keyInfo={})})),k(s,(function(t,e){var n=t.existing,i=t.newOption,r=t.keyInfo;if(Y(i)){if(r.name=null!=i.name?yr(i.name):n?n.name:"series\0"+e,n)r.id=yr(n.id);else if(null!=i.id)r.id=yr(i.id);else{var o=0;do{r.id="\0"+r.name+"\0"+o++}while(l.get(r.id))}l.set(r.id,t)}})),u}function gr(t,e,n){var i=vr(e[t],null),r=vr(n[t],null);return null!=i&&null!=r&&i===r}function yr(t){return vr(t,"")}function vr(t,e){if(null==t)return e;var n=typeof t;return"string"===n?t:"number"===n||H(t)?t+"":e}function mr(t){var e=t.name;return!(!e||!e.indexOf("series\0"))}function _r(t){return t&&null!=t.id&&0===yr(t.id).indexOf("\0_ec_\0")}function xr(t,e){return null!=e.dataIndexInside?e.dataIndexInside:null!=e.dataIndex?V(e.dataIndex)?P(e.dataIndex,(function(e){return t.indexOfRawIndex(e)})):t.indexOfRawIndex(e.dataIndex):null!=e.name?V(e.name)?P(e.name,(function(e){return t.indexOfName(e)})):t.indexOfName(e.name):void 0}function br(){var t="__ec_inner_"+wr++;return function(e){return e[t]||(e[t]={})}}var wr=or();function Sr(t,e,n){var i;if(G(e)){var r={};r[e+"Index"]=0,i=r}else i=e;var o=lt(),a={},s=!1;k(i,(function(t,e){if("dataIndex"!==e&&"dataIndexInside"!==e){var i=e.match(/^(\w+)(Index|Id|Name)$/)||[],r=i[1],l=(i[2]||"").toLowerCase();if(r&&l&&!(n&&n.includeMainTypes&&C(n.includeMainTypes,r)<0))s=s||!!r,(o.get(r)||o.set(r,{}))[l]=t}else a[e]=t}));var l=n?n.defaultMainType:null;return!s&&l&&o.set(l,{}),o.each((function(e,i){var r=Tr(t,i,e,{useDefault:l===i,enableAll:!n||null==n.enableAll||n.enableAll,enableNone:!n||null==n.enableNone||n.enableNone});a[i+"Models"]=r.models,a[i+"Model"]=r.models[0]})),a}var Mr={useDefault:!0,enableAll:!1,enableNone:!1},Ir={useDefault:!1,enableAll:!0,enableNone:!0};function Tr(t,e,n,i){i=i||Mr;var r=n.index,o=n.id,a=n.name,s={models:null,specified:null!=r||null!=o||null!=a};if(!s.specified){var l=void 0;return s.models=i.useDefault&&(l=t.getComponent(e))?[l]:[],s}return"none"===r||!1===r?(it(i.enableNone,'`"none"` or `false` is not a valid value on index option.'),s.models=[],s):("all"===r&&(it(i.enableAll,'`"all"` is not a valid value on index option.'),r=o=a=null),s.models=t.queryComponents({mainType:e,index:r,id:o,name:a}),s)}function Cr(t,e,n){t.setAttribute?t.setAttribute(e,n):t[e]=n}function Ar(t,e){var n=lt(),i=[];return k(t,(function(t){var r=e(t);(n.get(r)||(i.push(r),n.set(r,[]))).push(t)})),{keys:i,buckets:n}}function Dr(t,e,n,i,r){var o=null==e||"auto"===e;if(null==i)return i;if("number"==typeof i)return Hi(d=ln(n||0,i,r),o?Math.max(Xi(n||0),Xi(i)):e);if("string"==typeof i)return r<1?n:i;for(var a=[],s=n,l=i,u=Math.max(s?s.length:0,l.length),h=0;h<u;++h){if("ordinal"===t.getDimensionInfo(h).type)a[h]=(r<1&&s?s:l)[h];else{var c=s&&s[h]?s[h]:0,p=l[h],d=ln(c,p,r);a[h]=Hi(d,o?Math.max(Xi(c),Xi(p)):e)}}return a}var Lr="___EC__COMPONENT__CONTAINER___";function kr(t){var e={main:"",sub:""};if(t){var n=t.split(".");e.main=n[0]||"",e.sub=n[1]||""}return e}function Pr(t,e){t.$constructor=t,t.extend=function(t){var e=this;function n(){for(var r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];if(t.$constructor)t.$constructor.apply(this,arguments);else{if(Or(e)){var a=ht(n.prototype,new(e.bind.apply(e,i([void 0],r))));return a}e.apply(this,arguments)}}return n.___EC__EXTENDED_CLASS___=!0,M(n.prototype,t),n.extend=this.extend,n.superCall=Er,n.superApply=zr,A(n,this),n.superClass=e,n}}function Or(t){return"function"==typeof t&&/^class\s/.test(Function.prototype.toString.call(t))}function Rr(t,e){t.extend=e.extend}var Nr=Math.round(10*Math.random());function Er(t,e){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];return this.superClass.prototype[e].apply(t,n)}function zr(t,e,n){return this.superClass.prototype[e].apply(t,n)}function Br(t){var e={};t.registerClass=function(t){var n,i=t.type||t.prototype.type;if(i){it(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(n=i),'componentType "'+n+'" illegal'),t.prototype.type=i;var r=kr(i);if(r.sub){if(r.sub!==Lr){(function(t){var n=e[t.main];n&&n[Lr]||((n=e[t.main]={})[Lr]=!0);return n}(r))[r.sub]=t}}else e[r.main]=t}return t},t.getClass=function(t,n,i){var r=e[t];if(r&&r[Lr]&&(r=n?r[n]:null),i&&!r)throw new Error(n?"Component "+t+"."+(n||"")+" not exists. Load it first.":t+".type should be specified.");return r},t.getClassesByMainType=function(t){var n=kr(t),i=[],r=e[n.main];return r&&r[Lr]?k(r,(function(t,e){e!==Lr&&i.push(t)})):i.push(r),i},t.hasClass=function(t){var n=kr(t);return!!e[n.main]},t.getAllClassMainTypes=function(){var t=[];return k(e,(function(e,n){t.push(n)})),t},t.hasSubTypes=function(t){var n=kr(t),i=e[n.main];return i&&i[Lr]}}function Vr(t,e){for(var n=0;n<t.length;n++)t[n][1]||(t[n][1]=t[n][0]);return e=e||!1,function(n,i,r){for(var o={},a=0;a<t.length;a++){var s=t[a][1];if(!(i&&C(i,s)>=0||r&&C(r,s)<0)){var l=n.getShallow(s,e);null!=l&&(o[t[a][0]]=l)}}return o}}var Fr=Vr([["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]]),Gr=function(){function t(){}return t.prototype.getAreaStyle=function(t,e){return Fr(this,t,e)},t}(),Hr=new Re(50);function Wr(t){if("string"==typeof t){var e=Hr.get(t);return e&&e.image}return t}function Yr(t,e,n,i,r){if(t){if("string"==typeof t){if(e&&e.__zrImageSrc===t||!n)return e;var o=Hr.get(t),a={hostEl:n,cb:i,cbPayload:r};return o?!Ur(e=o.image)&&o.pending.push(a):((e=new Image).onload=e.onerror=Xr,Hr.put(t,e.__cachedImgObj={image:e,pending:[a]}),e.src=e.__zrImageSrc=t),e}return t}return e}function Xr(){var t=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var e=0;e<t.pending.length;e++){var n=t.pending[e],i=n.cb;i&&i(this,n.cbPayload),n.hostEl.dirty()}t.pending.length=0}function Ur(t){return t&&t.width&&t.height}var Zr=/\{([a-zA-Z0-9_]+)\|([^}]*)\}/g;function jr(t,e,n,i,r){if(!e)return"";var o=(t+"").split("\n");r=qr(e,n,i,r);for(var a=0,s=o.length;a<s;a++)o[a]=Kr(o[a],r);return o.join("\n")}function qr(t,e,n,i){var r=M({},i=i||{});r.font=e,n=Q(n,"..."),r.maxIterations=Q(i.maxIterations,2);var o=r.minChar=Q(i.minChar,0);r.cnCharWidth=En("国",e);var a=r.ascCharWidth=En("a",e);r.placeholder=Q(i.placeholder,"");for(var s=t=Math.max(0,t-1),l=0;l<o&&s>=a;l++)s-=a;var u=En(n,e);return u>s&&(n="",u=0),s=t-u,r.ellipsis=n,r.ellipsisWidth=u,r.contentWidth=s,r.containerWidth=t,r}function Kr(t,e){var n=e.containerWidth,i=e.font,r=e.contentWidth;if(!n)return"";var o=En(t,i);if(o<=n)return t;for(var a=0;;a++){if(o<=r||a>=e.maxIterations){t+=e.ellipsis;break}var s=0===a?$r(t,r,e.ascCharWidth,e.cnCharWidth):o>0?Math.floor(t.length*r/o):0;o=En(t=t.substr(0,s),i)}return""===t&&(t=e.placeholder),t}function $r(t,e,n,i){for(var r=0,o=0,a=t.length;o<a&&r<e;o++){var s=t.charCodeAt(o);r+=0<=s&&s<=127?n:i}return o}var Jr=function(){},Qr=function(t){this.tokens=[],t&&(this.tokens=t)},to=function(){this.width=0,this.height=0,this.contentWidth=0,this.contentHeight=0,this.outerWidth=0,this.outerHeight=0,this.lines=[]};function eo(t,e,n,i,r){var o,a,s=""===e,l=r&&n.rich[r]||{},u=t.lines,h=l.font||n.font,c=!1;if(i){var p=l.padding,d=p?p[1]+p[3]:0;if(null!=l.width&&"auto"!==l.width){var f=function(t,e){if("string"==typeof t)return t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t);return t}(l.width,i.width)+d;u.length>0&&f+i.accumWidth>i.width&&(o=e.split("\n"),c=!0),i.accumWidth=f}else{var g=ro(e,h,i.width,i.breakAll,i.accumWidth);i.accumWidth=g.accumWidth+d,a=g.linesWidths,o=g.lines}}else o=e.split("\n");for(var y=0;y<o.length;y++){var v=o[y],m=new Jr;if(m.styleName=r,m.text=v,m.isLineHolder=!v&&!s,"number"==typeof l.width?m.width=l.width:m.width=a?a[y]:En(v,h),y||c)u.push(new Qr([m]));else{var _=(u[u.length-1]||(u[0]=new Qr)).tokens,x=_.length;1===x&&_[0].isLineHolder?_[0]=m:(v||!x||s)&&_.push(m)}}}var no=O(",&?/;] ".split(""),(function(t,e){return t[e]=!0,t}),{});function io(t){return!function(t){var e=t.charCodeAt(0);return e>=33&&e<=255}(t)||!!no[t]}function ro(t,e,n,i,r){for(var o=[],a=[],s="",l="",u=0,h=0,c=0;c<t.length;c++){var p=t.charAt(c);if("\n"!==p){var d=En(p,e),f=!i&&!io(p);(o.length?h+d>n:r+h+d>n)?h?(s||l)&&(f?(s||(s=l,l="",h=u=0),o.push(s),a.push(h-u),l+=p,s="",h=u+=d):(l&&(s+=l,h+=u,l="",u=0),o.push(s),a.push(h),s=p,h=d)):f?(o.push(l),a.push(u),l=p,u=d):(o.push(p),a.push(d)):(h+=d,f?(l+=p,u+=d):(l&&(s+=l,l="",u=0),s+=p))}else l&&(s+=l,h+=u),o.push(s),a.push(h),s="",l="",u=0,h=0}return o.length||s||(s=t,l="",u=0),l&&(s+=l),s&&(o.push(s),a.push(h)),1===o.length&&(h+=r),{accumWidth:h,lines:o,linesWidths:a}}var oo="__zr_style_"+Math.round(10*Math.random()),ao={shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:"#000",opacity:1,blend:"source-over"},so={style:{shadowBlur:!0,shadowOffsetX:!0,shadowOffsetY:!0,shadowColor:!0,opacity:!0}};ao[oo]=!0;var lo=["z","z2","invisible"],uo=function(t){function e(e){return t.call(this,e)||this}var n;return gt(e,t),e.prototype._init=function(e){for(var n=E(e),i=0;i<n.length;i++){var r=n[i];"style"===r?this.useStyle(e[r]):t.prototype.attrKV.call(this,r,e[r])}this.style||this.useStyle({})},e.prototype.beforeBrush=function(){},e.prototype.afterBrush=function(){},e.prototype.innerBeforeBrush=function(){},e.prototype.innerAfterBrush=function(){},e.prototype.shouldBePainted=function(t,e,n,i){var r=this.transform;if(this.ignore||this.invisible||0===this.style.opacity||this.culling&&function(t,e,n){ho.copy(t.getBoundingRect()),t.transform&&ho.applyTransform(t.transform);return co.width=e,co.height=n,!ho.intersect(co)}(this,t,e)||r&&!r[0]&&!r[3])return!1;if(n&&this.__clipPaths)for(var o=0;o<this.__clipPaths.length;++o)if(this.__clipPaths[o].isZeroArea())return!1;if(i&&this.parent)for(var a=this.parent;a;){if(a.ignore)return!1;a=a.parent}return!0},e.prototype.contain=function(t,e){return this.rectContain(t,e)},e.prototype.traverse=function(t,e){t.call(e,this)},e.prototype.rectContain=function(t,e){var n=this.transformCoordToLocal(t,e);return this.getBoundingRect().contain(n[0],n[1])},e.prototype.getPaintRect=function(){var t=this._paintRect;if(!this._paintRect||this.__dirty){var e=this.transform,n=this.getBoundingRect(),i=this.style,r=i.shadowBlur||0,o=i.shadowOffsetX||0,a=i.shadowOffsetY||0;t=this._paintRect||(this._paintRect=new Pn(0,0,0,0)),e?Pn.applyTransform(t,n,e):t.copy(n),(r||o||a)&&(t.width+=2*r+Math.abs(o),t.height+=2*r+Math.abs(a),t.x=Math.min(t.x,t.x+o-r),t.y=Math.min(t.y,t.y+a-r));var s=this.dirtyRectTolerance;t.isZero()||(t.x=Math.floor(t.x-s),t.y=Math.floor(t.y-s),t.width=Math.ceil(t.width+1+2*s),t.height=Math.ceil(t.height+1+2*s))}return t},e.prototype.setPrevPaintRect=function(t){t?(this._prevPaintRect=this._prevPaintRect||new Pn(0,0,0,0),this._prevPaintRect.copy(t)):this._prevPaintRect=null},e.prototype.getPrevPaintRect=function(){return this._prevPaintRect},e.prototype.animateStyle=function(t){return this.animate("style",t)},e.prototype.updateDuringAnimation=function(t){"style"===t?this.dirtyStyle():this.markRedraw()},e.prototype.attrKV=function(e,n){"style"!==e?t.prototype.attrKV.call(this,e,n):this.style?this.setStyle(n):this.useStyle(n)},e.prototype.setStyle=function(t,e){return"string"==typeof t?this.style[t]=e:M(this.style,t),this.dirtyStyle(),this},e.prototype.dirtyStyle=function(){this.markRedraw(),this.__dirty|=e.STYLE_CHANGED_BIT,this._rect&&(this._rect=null)},e.prototype.dirty=function(){this.dirtyStyle()},e.prototype.styleChanged=function(){return!!(this.__dirty&e.STYLE_CHANGED_BIT)},e.prototype.styleUpdated=function(){this.__dirty&=~e.STYLE_CHANGED_BIT},e.prototype.createStyle=function(t){return ht(ao,t)},e.prototype.useStyle=function(t){t[oo]||(t=this.createStyle(t)),this.__inHover?this.__hoverStyle=t:this.style=t,this.dirtyStyle()},e.prototype.isStyleObject=function(t){return t[oo]},e.prototype._innerSaveToNormal=function(e){t.prototype._innerSaveToNormal.call(this,e);var n=this._normalState;e.style&&!n.style&&(n.style=this._mergeStyle(this.createStyle(),this.style)),this._savePrimaryToNormal(e,n,lo)},e.prototype._applyStateObj=function(e,n,i,r,o,a){t.prototype._applyStateObj.call(this,e,n,i,r,o,a);var s,l=!(n&&r);if(n&&n.style?o?r?s=n.style:(s=this._mergeStyle(this.createStyle(),i.style),this._mergeStyle(s,n.style)):(s=this._mergeStyle(this.createStyle(),r?this.style:i.style),this._mergeStyle(s,n.style)):l&&(s=i.style),s)if(o){var u=this.style;if(this.style=this.createStyle(l?{}:u),l)for(var h=E(u),c=0;c<h.length;c++){(d=h[c])in s&&(s[d]=s[d],this.style[d]=u[d])}var p=E(s);for(c=0;c<p.length;c++){var d=p[c];this.style[d]=this.style[d]}this._transitionState(e,{style:s},a,this.getAnimationStyleProps())}else this.useStyle(s);for(c=0;c<lo.length;c++){d=lo[c];n&&null!=n[d]?this[d]=n[d]:l&&null!=i[d]&&(this[d]=i[d])}},e.prototype._mergeStates=function(e){for(var n,i=t.prototype._mergeStates.call(this,e),r=0;r<e.length;r++){var o=e[r];o.style&&(n=n||{},this._mergeStyle(n,o.style))}return n&&(i.style=n),i},e.prototype._mergeStyle=function(t,e){return M(t,e),t},e.prototype.getAnimationStyleProps=function(){return so},e.STYLE_CHANGED_BIT=2,e.initDefaultProps=((n=e.prototype).type="displayable",n.invisible=!1,n.z=0,n.z2=0,n.zlevel=0,n.culling=!1,n.cursor="pointer",n.rectHover=!1,n.incremental=!1,n._rect=null,n.dirtyRectTolerance=0,void(n.__dirty=Kn.REDARAW_BIT|e.STYLE_CHANGED_BIT)),e}(Kn),ho=new Pn(0,0,0,0),co=new Pn(0,0,0,0);var po=Math.pow,fo=Math.sqrt,go=fo(3),yo=1/3,vo=yt(),mo=yt(),_o=yt();function xo(t){return t>-1e-8&&t<1e-8}function bo(t){return t>1e-8||t<-1e-8}function wo(t,e,n,i,r){var o=1-r;return o*o*(o*t+3*r*e)+r*r*(r*i+3*o*n)}function So(t,e,n,i,r){var o=1-r;return 3*(((e-t)*o+2*(n-e)*r)*o+(i-n)*r*r)}function Mo(t,e,n,i,r,o){var a=i+3*(e-n)-t,s=3*(n-2*e+t),l=3*(e-t),u=t-r,h=s*s-3*a*l,c=s*l-9*a*u,p=l*l-3*s*u,d=0;if(xo(h)&&xo(c)){if(xo(s))o[0]=0;else(M=-l/s)>=0&&M<=1&&(o[d++]=M)}else{var f=c*c-4*h*p;if(xo(f)){var g=c/h,y=-g/2;(M=-s/a+g)>=0&&M<=1&&(o[d++]=M),y>=0&&y<=1&&(o[d++]=y)}else if(f>0){var v=fo(f),m=h*s+1.5*a*(-c+v),_=h*s+1.5*a*(-c-v);(M=(-s-((m=m<0?-po(-m,yo):po(m,yo))+(_=_<0?-po(-_,yo):po(_,yo))))/(3*a))>=0&&M<=1&&(o[d++]=M)}else{var x=(2*h*s-3*a*c)/(2*fo(h*h*h)),b=Math.acos(x)/3,w=fo(h),S=Math.cos(b),M=(-s-2*w*S)/(3*a),I=(y=(-s+w*(S+go*Math.sin(b)))/(3*a),(-s+w*(S-go*Math.sin(b)))/(3*a));M>=0&&M<=1&&(o[d++]=M),y>=0&&y<=1&&(o[d++]=y),I>=0&&I<=1&&(o[d++]=I)}}return d}function Io(t,e,n,i,r){var o=6*n-12*e+6*t,a=9*e+3*i-3*t-9*n,s=3*e-3*t,l=0;if(xo(a)){if(bo(o))(h=-s/o)>=0&&h<=1&&(r[l++]=h)}else{var u=o*o-4*a*s;if(xo(u))r[0]=-o/(2*a);else if(u>0){var h,c=fo(u),p=(-o-c)/(2*a);(h=(-o+c)/(2*a))>=0&&h<=1&&(r[l++]=h),p>=0&&p<=1&&(r[l++]=p)}}return l}function To(t,e,n,i,r,o){var a=(e-t)*r+t,s=(n-e)*r+e,l=(i-n)*r+n,u=(s-a)*r+a,h=(l-s)*r+s,c=(h-u)*r+u;o[0]=t,o[1]=a,o[2]=u,o[3]=c,o[4]=c,o[5]=h,o[6]=l,o[7]=i}function Co(t,e,n,i,r,o,a,s,l,u,h){var c,p,d,f,g,y=.005,v=1/0;vo[0]=l,vo[1]=u;for(var m=0;m<1;m+=.05)mo[0]=wo(t,n,r,a,m),mo[1]=wo(e,i,o,s,m),(f=Pt(vo,mo))<v&&(c=m,v=f);v=1/0;for(var _=0;_<32&&!(y<1e-4);_++)p=c-y,d=c+y,mo[0]=wo(t,n,r,a,p),mo[1]=wo(e,i,o,s,p),f=Pt(mo,vo),p>=0&&f<v?(c=p,v=f):(_o[0]=wo(t,n,r,a,d),_o[1]=wo(e,i,o,s,d),g=Pt(_o,vo),d<=1&&g<v?(c=d,v=g):y*=.5);return h&&(h[0]=wo(t,n,r,a,c),h[1]=wo(e,i,o,s,c)),fo(v)}function Ao(t,e,n,i,r,o,a,s,l){for(var u=t,h=e,c=0,p=1/l,d=1;d<=l;d++){var f=d*p,g=wo(t,n,r,a,f),y=wo(e,i,o,s,f),v=g-u,m=y-h;c+=Math.sqrt(v*v+m*m),u=g,h=y}return c}function Do(t,e,n,i){var r=1-i;return r*(r*t+2*i*e)+i*i*n}function Lo(t,e,n,i){return 2*((1-i)*(e-t)+i*(n-e))}function ko(t,e,n){var i=t+n-2*e;return 0===i?.5:(t-e)/i}function Po(t,e,n,i,r){var o=(e-t)*i+t,a=(n-e)*i+e,s=(a-o)*i+o;r[0]=t,r[1]=o,r[2]=s,r[3]=s,r[4]=a,r[5]=n}function Oo(t,e,n,i,r,o,a,s,l){var u,h=.005,c=1/0;vo[0]=a,vo[1]=s;for(var p=0;p<1;p+=.05){mo[0]=Do(t,n,r,p),mo[1]=Do(e,i,o,p),(y=Pt(vo,mo))<c&&(u=p,c=y)}c=1/0;for(var d=0;d<32&&!(h<1e-4);d++){var f=u-h,g=u+h;mo[0]=Do(t,n,r,f),mo[1]=Do(e,i,o,f);var y=Pt(mo,vo);if(f>=0&&y<c)u=f,c=y;else{_o[0]=Do(t,n,r,g),_o[1]=Do(e,i,o,g);var v=Pt(_o,vo);g<=1&&v<c?(u=g,c=v):h*=.5}}return l&&(l[0]=Do(t,n,r,u),l[1]=Do(e,i,o,u)),fo(c)}function Ro(t,e,n,i,r,o,a){for(var s=t,l=e,u=0,h=1/a,c=1;c<=a;c++){var p=c*h,d=Do(t,n,r,p),f=Do(e,i,o,p),g=d-s,y=f-l;u+=Math.sqrt(g*g+y*y),s=d,l=f}return u}var No=Math.min,Eo=Math.max,zo=Math.sin,Bo=Math.cos,Vo=2*Math.PI,Fo=yt(),Go=yt(),Ho=yt();function Wo(t,e,n){if(0!==t.length){for(var i=t[0],r=i[0],o=i[0],a=i[1],s=i[1],l=1;l<t.length;l++)i=t[l],r=No(r,i[0]),o=Eo(o,i[0]),a=No(a,i[1]),s=Eo(s,i[1]);e[0]=r,e[1]=a,n[0]=o,n[1]=s}}function Yo(t,e,n,i,r,o){r[0]=No(t,n),r[1]=No(e,i),o[0]=Eo(t,n),o[1]=Eo(e,i)}var Xo=[],Uo=[];function Zo(t,e,n,i,r,o,a,s,l,u){var h=Io,c=wo,p=h(t,n,r,a,Xo);l[0]=1/0,l[1]=1/0,u[0]=-1/0,u[1]=-1/0;for(var d=0;d<p;d++){var f=c(t,n,r,a,Xo[d]);l[0]=No(f,l[0]),u[0]=Eo(f,u[0])}p=h(e,i,o,s,Uo);for(d=0;d<p;d++){var g=c(e,i,o,s,Uo[d]);l[1]=No(g,l[1]),u[1]=Eo(g,u[1])}l[0]=No(t,l[0]),u[0]=Eo(t,u[0]),l[0]=No(a,l[0]),u[0]=Eo(a,u[0]),l[1]=No(e,l[1]),u[1]=Eo(e,u[1]),l[1]=No(s,l[1]),u[1]=Eo(s,u[1])}function jo(t,e,n,i,r,o,a,s){var l=ko,u=Do,h=Eo(No(l(t,n,r),1),0),c=Eo(No(l(e,i,o),1),0),p=u(t,n,r,h),d=u(e,i,o,c);a[0]=No(t,r,p),a[1]=No(e,o,d),s[0]=Eo(t,r,p),s[1]=Eo(e,o,d)}function qo(t,e,n,i,r,o,a,s,l){var u=Nt,h=Et,c=Math.abs(r-o);if(c%Vo<1e-4&&c>1e-4)return s[0]=t-n,s[1]=e-i,l[0]=t+n,void(l[1]=e+i);if(Fo[0]=Bo(r)*n+t,Fo[1]=zo(r)*i+e,Go[0]=Bo(o)*n+t,Go[1]=zo(o)*i+e,u(s,Fo,Go),h(l,Fo,Go),(r%=Vo)<0&&(r+=Vo),(o%=Vo)<0&&(o+=Vo),r>o&&!a?o+=Vo:r<o&&a&&(r+=Vo),a){var p=o;o=r,r=p}for(var d=0;d<o;d+=Math.PI/2)d>r&&(Ho[0]=Bo(d)*n+t,Ho[1]=zo(d)*i+e,u(s,Ho,s),h(l,Ho,l))}var Ko={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},$o=[],Jo=[],Qo=[],ta=[],ea=[],na=[],ia=Math.min,ra=Math.max,oa=Math.cos,aa=Math.sin,sa=Math.sqrt,la=Math.abs,ua=Math.PI,ha=2*ua,ca="undefined"!=typeof Float32Array,pa=[];function da(t){return Math.round(t/ua*1e8)/1e8%2*ua}function fa(t,e){var n=da(t[0]);n<0&&(n+=ha);var i=n-t[0],r=t[1];r+=i,!e&&r-n>=ha?r=n+ha:e&&n-r>=ha?r=n-ha:!e&&n>r?r=n+(ha-da(n-r)):e&&n<r&&(r=n-(ha-da(r-n))),t[0]=n,t[1]=r}var ga=function(){function t(t){this.dpr=1,this._version=0,this._xi=0,this._yi=0,this._x0=0,this._y0=0,this._len=0,t&&(this._saveData=!1),this._saveData&&(this.data=[])}return t.prototype.increaseVersion=function(){this._version++},t.prototype.getVersion=function(){return this._version},t.prototype.setScale=function(t,e,n){(n=n||0)>0&&(this._ux=la(n/Xn/t)||0,this._uy=la(n/Xn/e)||0)},t.prototype.setDPR=function(t){this.dpr=t},t.prototype.setContext=function(t){this._ctx=t},t.prototype.getContext=function(){return this._ctx},t.prototype.beginPath=function(){return this._ctx&&this._ctx.beginPath(),this.reset(),this},t.prototype.reset=function(){this._saveData&&(this._len=0),this._lineDash&&(this._lineDash=null,this._dashOffset=0),this._pathSegLen&&(this._pathSegLen=null,this._pathLen=0),this._version++},t.prototype.moveTo=function(t,e){return this.addData(Ko.M,t,e),this._ctx&&this._ctx.moveTo(t,e),this._x0=t,this._y0=e,this._xi=t,this._yi=e,this},t.prototype.lineTo=function(t,e){var n=la(t-this._xi)>this._ux||la(e-this._yi)>this._uy||this._len<5;return this.addData(Ko.L,t,e),this._ctx&&n&&(this._needsDash?this._dashedLineTo(t,e):this._ctx.lineTo(t,e)),n&&(this._xi=t,this._yi=e),this},t.prototype.bezierCurveTo=function(t,e,n,i,r,o){return this.addData(Ko.C,t,e,n,i,r,o),this._ctx&&(this._needsDash?this._dashedBezierTo(t,e,n,i,r,o):this._ctx.bezierCurveTo(t,e,n,i,r,o)),this._xi=r,this._yi=o,this},t.prototype.quadraticCurveTo=function(t,e,n,i){return this.addData(Ko.Q,t,e,n,i),this._ctx&&(this._needsDash?this._dashedQuadraticTo(t,e,n,i):this._ctx.quadraticCurveTo(t,e,n,i)),this._xi=n,this._yi=i,this},t.prototype.arc=function(t,e,n,i,r,o){pa[0]=i,pa[1]=r,fa(pa,o),i=pa[0];var a=(r=pa[1])-i;return this.addData(Ko.A,t,e,n,n,i,a,0,o?0:1),this._ctx&&this._ctx.arc(t,e,n,i,r,o),this._xi=oa(r)*n+t,this._yi=aa(r)*n+e,this},t.prototype.arcTo=function(t,e,n,i,r){return this._ctx&&this._ctx.arcTo(t,e,n,i,r),this},t.prototype.rect=function(t,e,n,i){return this._ctx&&this._ctx.rect(t,e,n,i),this.addData(Ko.R,t,e,n,i),this},t.prototype.closePath=function(){this.addData(Ko.Z);var t=this._ctx,e=this._x0,n=this._y0;return t&&(this._needsDash&&this._dashedLineTo(e,n),t.closePath()),this._xi=e,this._yi=n,this},t.prototype.fill=function(t){t&&t.fill(),this.toStatic()},t.prototype.stroke=function(t){t&&t.stroke(),this.toStatic()},t.prototype.setLineDash=function(t){if(t instanceof Array){this._lineDash=t,this._dashIdx=0;for(var e=0,n=0;n<t.length;n++)e+=t[n];this._dashSum=e,this._needsDash=!0}else this._lineDash=null,this._needsDash=!1;return this},t.prototype.setLineDashOffset=function(t){return this._dashOffset=t,this},t.prototype.len=function(){return this._len},t.prototype.setData=function(t){var e=t.length;this.data&&this.data.length===e||!ca||(this.data=new Float32Array(e));for(var n=0;n<e;n++)this.data[n]=t[n];this._len=e},t.prototype.appendPath=function(t){t instanceof Array||(t=[t]);for(var e=t.length,n=0,i=this._len,r=0;r<e;r++)n+=t[r].len();ca&&this.data instanceof Float32Array&&(this.data=new Float32Array(i+n));for(r=0;r<e;r++)for(var o=t[r].data,a=0;a<o.length;a++)this.data[i++]=o[a];this._len=i},t.prototype.addData=function(t,e,n,i,r,o,a,s,l){if(this._saveData){var u=this.data;this._len+arguments.length>u.length&&(this._expandData(),u=this.data);for(var h=0;h<arguments.length;h++)u[this._len++]=arguments[h]}},t.prototype._expandData=function(){if(!(this.data instanceof Array)){for(var t=[],e=0;e<this._len;e++)t[e]=this.data[e];this.data=t}},t.prototype._dashedLineTo=function(t,e){var n,i,r=this._dashSum,o=this._lineDash,a=this._ctx,s=this._dashOffset,l=this._xi,u=this._yi,h=t-l,c=e-u,p=sa(h*h+c*c),d=l,f=u,g=o.length;for(s<0&&(s=r+s),d-=(s%=r)*(h/=p),f-=s*(c/=p);h>0&&d<=t||h<0&&d>=t||0===h&&(c>0&&f<=e||c<0&&f>=e);)d+=h*(n=o[i=this._dashIdx]),f+=c*n,this._dashIdx=(i+1)%g,h>0&&d<l||h<0&&d>l||c>0&&f<u||c<0&&f>u||a[i%2?"moveTo":"lineTo"](h>=0?ia(d,t):ra(d,t),c>=0?ia(f,e):ra(f,e));h=d-t,c=f-e,this._dashOffset=-sa(h*h+c*c)},t.prototype._dashedBezierTo=function(t,e,n,i,r,o){var a,s,l,u,h,c=this._ctx,p=this._dashSum,d=this._dashOffset,f=this._lineDash,g=this._xi,y=this._yi,v=0,m=this._dashIdx,_=f.length,x=0;for(d<0&&(d=p+d),d%=p,a=0;a<1;a+=.1)s=wo(g,t,n,r,a+.1)-wo(g,t,n,r,a),l=wo(y,e,i,o,a+.1)-wo(y,e,i,o,a),v+=sa(s*s+l*l);for(;m<_&&!((x+=f[m])>d);m++);for(a=(x-d)/v;a<=1;)u=wo(g,t,n,r,a),h=wo(y,e,i,o,a),m%2?c.moveTo(u,h):c.lineTo(u,h),a+=f[m]/v,m=(m+1)%_;m%2!=0&&c.lineTo(r,o),s=r-u,l=o-h,this._dashOffset=-sa(s*s+l*l)},t.prototype._dashedQuadraticTo=function(t,e,n,i){var r=n,o=i;n=(n+2*t)/3,i=(i+2*e)/3,t=(this._xi+2*t)/3,e=(this._yi+2*e)/3,this._dashedBezierTo(t,e,n,i,r,o)},t.prototype.toStatic=function(){if(this._saveData){var t=this.data;t instanceof Array&&(t.length=this._len,ca&&this._len>11&&(this.data=new Float32Array(t)))}},t.prototype.getBoundingRect=function(){Qo[0]=Qo[1]=ea[0]=ea[1]=Number.MAX_VALUE,ta[0]=ta[1]=na[0]=na[1]=-Number.MAX_VALUE;var t,e=this.data,n=0,i=0,r=0,o=0;for(t=0;t<this._len;){var a=e[t++],s=1===t;switch(s&&(r=n=e[t],o=i=e[t+1]),a){case Ko.M:n=r=e[t++],i=o=e[t++],ea[0]=r,ea[1]=o,na[0]=r,na[1]=o;break;case Ko.L:Yo(n,i,e[t],e[t+1],ea,na),n=e[t++],i=e[t++];break;case Ko.C:Zo(n,i,e[t++],e[t++],e[t++],e[t++],e[t],e[t+1],ea,na),n=e[t++],i=e[t++];break;case Ko.Q:jo(n,i,e[t++],e[t++],e[t],e[t+1],ea,na),n=e[t++],i=e[t++];break;case Ko.A:var l=e[t++],u=e[t++],h=e[t++],c=e[t++],p=e[t++],d=e[t++]+p;t+=1;var f=!e[t++];s&&(r=oa(p)*h+l,o=aa(p)*c+u),qo(l,u,h,c,p,d,f,ea,na),n=oa(d)*h+l,i=aa(d)*c+u;break;case Ko.R:Yo(r=n=e[t++],o=i=e[t++],r+e[t++],o+e[t++],ea,na);break;case Ko.Z:n=r,i=o}Nt(Qo,Qo,ea),Et(ta,ta,na)}return 0===t&&(Qo[0]=Qo[1]=ta[0]=ta[1]=0),new Pn(Qo[0],Qo[1],ta[0]-Qo[0],ta[1]-Qo[1])},t.prototype._calculateLength=function(){var t=this.data,e=this._len,n=this._ux,i=this._uy,r=0,o=0,a=0,s=0;this._pathSegLen||(this._pathSegLen=[]);for(var l=this._pathSegLen,u=0,h=0,c=0;c<e;){var p=t[c++],d=1===c;d&&(a=r=t[c],s=o=t[c+1]);var f=-1;switch(p){case Ko.M:r=a=t[c++],o=s=t[c++];break;case Ko.L:var g=t[c++],y=(_=t[c++])-o;(la(D=g-r)>n||la(y)>i||c===e-1)&&(f=Math.sqrt(D*D+y*y),r=g,o=_);break;case Ko.C:var v=t[c++],m=t[c++],_=(g=t[c++],t[c++]),x=t[c++],b=t[c++];f=Ao(r,o,v,m,g,_,x,b,10),r=x,o=b;break;case Ko.Q:f=Ro(r,o,v=t[c++],m=t[c++],g=t[c++],_=t[c++],10),r=g,o=_;break;case Ko.A:var w=t[c++],S=t[c++],M=t[c++],I=t[c++],T=t[c++],C=t[c++],A=C+T;c+=1;t[c++];d&&(a=oa(T)*M+w,s=aa(T)*I+S),f=ra(M,I)*ia(ha,Math.abs(C)),r=oa(A)*M+w,o=aa(A)*I+S;break;case Ko.R:a=r=t[c++],s=o=t[c++],f=2*t[c++]+2*t[c++];break;case Ko.Z:var D=a-r;y=s-o;f=Math.sqrt(D*D+y*y),r=a,o=s}f>=0&&(l[h++]=f,u+=f)}return this._pathLen=u,u},t.prototype.rebuildPath=function(t,e){var n,i,r,o,a,s,l,u,h=this.data,c=this._ux,p=this._uy,d=this._len,f=e<1,g=0,y=0;if(!f||(this._pathSegLen||this._calculateLength(),l=this._pathSegLen,u=e*this._pathLen))t:for(var v=0;v<d;){var m=h[v++],_=1===v;switch(_&&(n=r=h[v],i=o=h[v+1]),m){case Ko.M:n=r=h[v++],i=o=h[v++],t.moveTo(r,o);break;case Ko.L:if(a=h[v++],s=h[v++],la(a-r)>c||la(s-o)>p||v===d-1){if(f){if(g+(H=l[y++])>u){var x=(u-g)/H;t.lineTo(r*(1-x)+a*x,o*(1-x)+s*x);break t}g+=H}t.lineTo(a,s),r=a,o=s}break;case Ko.C:var b=h[v++],w=h[v++],S=h[v++],M=h[v++],I=h[v++],T=h[v++];if(f){if(g+(H=l[y++])>u){To(r,b,S,I,x=(u-g)/H,$o),To(o,w,M,T,x,Jo),t.bezierCurveTo($o[1],Jo[1],$o[2],Jo[2],$o[3],Jo[3]);break t}g+=H}t.bezierCurveTo(b,w,S,M,I,T),r=I,o=T;break;case Ko.Q:b=h[v++],w=h[v++],S=h[v++],M=h[v++];if(f){if(g+(H=l[y++])>u){Po(r,b,S,x=(u-g)/H,$o),Po(o,w,M,x,Jo),t.quadraticCurveTo($o[1],Jo[1],$o[2],Jo[2]);break t}g+=H}t.quadraticCurveTo(b,w,S,M),r=S,o=M;break;case Ko.A:var C=h[v++],A=h[v++],D=h[v++],L=h[v++],k=h[v++],P=h[v++],O=h[v++],R=!h[v++],N=D>L?D:L,E=la(D-L)>.001,z=k+P,B=!1;if(f)g+(H=l[y++])>u&&(z=k+P*(u-g)/H,B=!0),g+=H;if(E&&t.ellipse?t.ellipse(C,A,D,L,O,k,z,R):t.arc(C,A,N,k,z,R),B)break t;_&&(n=oa(k)*D+C,i=aa(k)*L+A),r=oa(z)*D+C,o=aa(z)*L+A;break;case Ko.R:n=r=h[v],i=o=h[v+1],a=h[v++],s=h[v++];var V=h[v++],F=h[v++];if(f){if(g+(H=l[y++])>u){var G=u-g;t.moveTo(a,s),t.lineTo(a+ia(G,V),s),(G-=V)>0&&t.lineTo(a+V,s+ia(G,F)),(G-=F)>0&&t.lineTo(a+ra(V-G,0),s+F),(G-=V)>0&&t.lineTo(a,s+ra(F-G,0));break t}g+=H}t.rect(a,s,V,F);break;case Ko.Z:if(f){var H;if(g+(H=l[y++])>u){x=(u-g)/H;t.lineTo(r*(1-x)+n*x,o*(1-x)+i*x);break t}g+=H}t.closePath(),r=n,o=i}}},t.CMD=Ko,t.initDefaultProps=function(){var e=t.prototype;e._saveData=!0,e._needsDash=!1,e._dashOffset=0,e._dashIdx=0,e._dashSum=0,e._ux=0,e._uy=0}(),t}();function ya(t,e,n,i,r,o,a){if(0===r)return!1;var s=r,l=0;if(a>e+s&&a>i+s||a<e-s&&a<i-s||o>t+s&&o>n+s||o<t-s&&o<n-s)return!1;if(t===n)return Math.abs(o-t)<=s/2;var u=(l=(e-i)/(t-n))*o-a+(t*i-n*e)/(t-n);return u*u/(l*l+1)<=s/2*s/2}function va(t,e,n,i,r,o,a,s,l,u,h){if(0===l)return!1;var c=l;return!(h>e+c&&h>i+c&&h>o+c&&h>s+c||h<e-c&&h<i-c&&h<o-c&&h<s-c||u>t+c&&u>n+c&&u>r+c&&u>a+c||u<t-c&&u<n-c&&u<r-c&&u<a-c)&&Co(t,e,n,i,r,o,a,s,u,h,null)<=c/2}function ma(t,e,n,i,r,o,a,s,l){if(0===a)return!1;var u=a;return!(l>e+u&&l>i+u&&l>o+u||l<e-u&&l<i-u&&l<o-u||s>t+u&&s>n+u&&s>r+u||s<t-u&&s<n-u&&s<r-u)&&Oo(t,e,n,i,r,o,s,l,null)<=u/2}var _a=2*Math.PI;function xa(t){return(t%=_a)<0&&(t+=_a),t}var ba=2*Math.PI;function wa(t,e,n,i,r,o,a,s,l){if(0===a)return!1;var u=a;s-=t,l-=e;var h=Math.sqrt(s*s+l*l);if(h-u>n||h+u<n)return!1;if(Math.abs(i-r)%ba<1e-4)return!0;if(o){var c=i;i=xa(r),r=xa(c)}else i=xa(i),r=xa(r);i>r&&(r+=ba);var p=Math.atan2(l,s);return p<0&&(p+=ba),p>=i&&p<=r||p+ba>=i&&p+ba<=r}function Sa(t,e,n,i,r,o){if(o>e&&o>i||o<e&&o<i)return 0;if(i===e)return 0;var a=(o-e)/(i-e),s=i<e?1:-1;1!==a&&0!==a||(s=i<e?.5:-.5);var l=a*(n-t)+t;return l===r?1/0:l>r?s:0}var Ma=ga.CMD,Ia=2*Math.PI;var Ta=[-1,-1,-1],Ca=[-1,-1];function Aa(t,e,n,i,r,o,a,s,l,u){if(u>e&&u>i&&u>o&&u>s||u<e&&u<i&&u<o&&u<s)return 0;var h,c=Mo(e,i,o,s,u,Ta);if(0===c)return 0;for(var p=0,d=-1,f=void 0,g=void 0,y=0;y<c;y++){var v=Ta[y],m=0===v||1===v?.5:1;wo(t,n,r,a,v)<l||(d<0&&(d=Io(e,i,o,s,Ca),Ca[1]<Ca[0]&&d>1&&(h=void 0,h=Ca[0],Ca[0]=Ca[1],Ca[1]=h),f=wo(e,i,o,s,Ca[0]),d>1&&(g=wo(e,i,o,s,Ca[1]))),2===d?v<Ca[0]?p+=f<e?m:-m:v<Ca[1]?p+=g<f?m:-m:p+=s<g?m:-m:v<Ca[0]?p+=f<e?m:-m:p+=s<f?m:-m)}return p}function Da(t,e,n,i,r,o,a,s){if(s>e&&s>i&&s>o||s<e&&s<i&&s<o)return 0;var l=function(t,e,n,i,r){var o=t-2*e+n,a=2*(e-t),s=t-i,l=0;if(xo(o))bo(a)&&(h=-s/a)>=0&&h<=1&&(r[l++]=h);else{var u=a*a-4*o*s;if(xo(u))(h=-a/(2*o))>=0&&h<=1&&(r[l++]=h);else if(u>0){var h,c=fo(u),p=(-a-c)/(2*o);(h=(-a+c)/(2*o))>=0&&h<=1&&(r[l++]=h),p>=0&&p<=1&&(r[l++]=p)}}return l}(e,i,o,s,Ta);if(0===l)return 0;var u=ko(e,i,o);if(u>=0&&u<=1){for(var h=0,c=Do(e,i,o,u),p=0;p<l;p++){var d=0===Ta[p]||1===Ta[p]?.5:1;Do(t,n,r,Ta[p])<a||(Ta[p]<u?h+=c<e?d:-d:h+=o<c?d:-d)}return h}d=0===Ta[0]||1===Ta[0]?.5:1;return Do(t,n,r,Ta[0])<a?0:o<e?d:-d}function La(t,e,n,i,r,o,a,s){if((s-=e)>n||s<-n)return 0;var l=Math.sqrt(n*n-s*s);Ta[0]=-l,Ta[1]=l;var u=Math.abs(i-r);if(u<1e-4)return 0;if(u>=Ia-1e-4){i=0,r=Ia;var h=o?1:-1;return a>=Ta[0]+t&&a<=Ta[1]+t?h:0}if(i>r){var c=i;i=r,r=c}i<0&&(i+=Ia,r+=Ia);for(var p=0,d=0;d<2;d++){var f=Ta[d];if(f+t>a){var g=Math.atan2(s,f);h=o?1:-1;g<0&&(g=Ia+g),(g>=i&&g<=r||g+Ia>=i&&g+Ia<=r)&&(g>Math.PI/2&&g<1.5*Math.PI&&(h=-h),p+=h)}}return p}function ka(t,e,n,i,r){for(var o,a,s,l,u=t.data,h=t.len(),c=0,p=0,d=0,f=0,g=0,y=0;y<h;){var v=u[y++],m=1===y;switch(v===Ma.M&&y>1&&(n||(c+=Sa(p,d,f,g,i,r))),m&&(f=p=u[y],g=d=u[y+1]),v){case Ma.M:p=f=u[y++],d=g=u[y++];break;case Ma.L:if(n){if(ya(p,d,u[y],u[y+1],e,i,r))return!0}else c+=Sa(p,d,u[y],u[y+1],i,r)||0;p=u[y++],d=u[y++];break;case Ma.C:if(n){if(va(p,d,u[y++],u[y++],u[y++],u[y++],u[y],u[y+1],e,i,r))return!0}else c+=Aa(p,d,u[y++],u[y++],u[y++],u[y++],u[y],u[y+1],i,r)||0;p=u[y++],d=u[y++];break;case Ma.Q:if(n){if(ma(p,d,u[y++],u[y++],u[y],u[y+1],e,i,r))return!0}else c+=Da(p,d,u[y++],u[y++],u[y],u[y+1],i,r)||0;p=u[y++],d=u[y++];break;case Ma.A:var _=u[y++],x=u[y++],b=u[y++],w=u[y++],S=u[y++],M=u[y++];y+=1;var I=!!(1-u[y++]);o=Math.cos(S)*b+_,a=Math.sin(S)*w+x,m?(f=o,g=a):c+=Sa(p,d,o,a,i,r);var T=(i-_)*w/b+_;if(n){if(wa(_,x,w,S,S+M,I,e,T,r))return!0}else c+=La(_,x,w,S,S+M,I,T,r);p=Math.cos(S+M)*b+_,d=Math.sin(S+M)*w+x;break;case Ma.R:if(f=p=u[y++],g=d=u[y++],o=f+u[y++],a=g+u[y++],n){if(ya(f,g,o,g,e,i,r)||ya(o,g,o,a,e,i,r)||ya(o,a,f,a,e,i,r)||ya(f,a,f,g,e,i,r))return!0}else c+=Sa(o,g,o,a,i,r),c+=Sa(f,a,f,g,i,r);break;case Ma.Z:if(n){if(ya(p,d,f,g,e,i,r))return!0}else c+=Sa(p,d,f,g,i,r);p=f,d=g}}return n||(s=d,l=g,Math.abs(s-l)<1e-4)||(c+=Sa(p,d,f,g,i,r)||0),0!==c}var Pa=I({fill:"#000",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:"butt",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},ao),Oa={style:I({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},so.style)},Ra=["x","y","rotation","scaleX","scaleY","originX","originY","invisible","culling","z","z2","zlevel","parent"],Na=function(t){function e(e){return t.call(this,e)||this}var n;return gt(e,t),e.prototype.update=function(){var n=this;t.prototype.update.call(this);var i=this.style;if(i.decal){var r=this._decalEl=this._decalEl||new e;r.buildPath===e.prototype.buildPath&&(r.buildPath=function(t){n.buildPath(t,n.shape)}),r.silent=!0;var o=r.style;for(var a in i)o[a]!==i[a]&&(o[a]=i[a]);o.fill=i.fill?i.decal:null,o.decal=null,o.shadowColor=null,i.strokeFirst&&(o.stroke=null);for(var s=0;s<Ra.length;++s)r[Ra[s]]=this[Ra[s]];r.__dirty|=Kn.REDARAW_BIT}else this._decalEl&&(this._decalEl=null)},e.prototype.getDecalElement=function(){return this._decalEl},e.prototype._init=function(e){var n=E(e);this.shape=this.getDefaultShape();var i=this.getDefaultStyle();i&&this.useStyle(i);for(var r=0;r<n.length;r++){var o=n[r],a=e[o];"style"===o?this.style?M(this.style,a):this.useStyle(a):"shape"===o?M(this.shape,a):t.prototype.attrKV.call(this,o,a)}this.style||this.useStyle({})},e.prototype.getDefaultStyle=function(){return null},e.prototype.getDefaultShape=function(){return{}},e.prototype.canBeInsideText=function(){return this.hasFill()},e.prototype.getInsideTextFill=function(){var t=this.style.fill;if("none"!==t){if(G(t)){var e=on(t,0);return e>.5?"#333":e>.2?"#eee":"#ccc"}if(t)return"#ccc"}return"#333"},e.prototype.getInsideTextStroke=function(t){var e=this.style.fill;if(G(e)){var n=this.__zr;if(!(!n||!n.isDarkMode())===on(t,0)<.4)return e}},e.prototype.buildPath=function(t,e,n){},e.prototype.pathUpdated=function(){this.__dirty&=~e.SHAPE_CHANGED_BIT},e.prototype.createPathProxy=function(){this.path=new ga(!1)},e.prototype.hasStroke=function(){var t=this.style,e=t.stroke;return!(null==e||"none"===e||!(t.lineWidth>0))},e.prototype.hasFill=function(){var t=this.style.fill;return null!=t&&"none"!==t},e.prototype.getBoundingRect=function(){var t=this._rect,n=this.style,i=!t;if(i){var r=!1;this.path||(r=!0,this.createPathProxy());var o=this.path;(r||this.__dirty&e.SHAPE_CHANGED_BIT)&&(o.beginPath(),this.buildPath(o,this.shape,!1),this.pathUpdated()),t=o.getBoundingRect()}if(this._rect=t,this.hasStroke()&&this.path&&this.path.len()>0){var a=this._rectWithStroke||(this._rectWithStroke=t.clone());if(this.__dirty||i){a.copy(t);var s=n.strokeNoScale?this.getLineScale():1,l=n.lineWidth;if(!this.hasFill()){var u=this.strokeContainThreshold;l=Math.max(l,null==u?4:u)}s>1e-10&&(a.width+=l/s,a.height+=l/s,a.x-=l/s/2,a.y-=l/s/2)}return a}return t},e.prototype.contain=function(t,e){var n=this.transformCoordToLocal(t,e),i=this.getBoundingRect(),r=this.style;if(t=n[0],e=n[1],i.contain(t,e)){var o=this.path;if(this.hasStroke()){var a=r.lineWidth,s=r.strokeNoScale?this.getLineScale():1;if(s>1e-10&&(this.hasFill()||(a=Math.max(a,this.strokeContainThreshold)),function(t,e,n,i){return ka(t,e,!0,n,i)}(o,a/s,t,e)))return!0}if(this.hasFill())return function(t,e,n){return ka(t,0,!1,e,n)}(o,t,e)}return!1},e.prototype.dirtyShape=function(){this.__dirty|=e.SHAPE_CHANGED_BIT,this._rect&&(this._rect=null),this._decalEl&&this._decalEl.dirtyShape(),this.markRedraw()},e.prototype.dirty=function(){this.dirtyStyle(),this.dirtyShape()},e.prototype.animateShape=function(t){return this.animate("shape",t)},e.prototype.updateDuringAnimation=function(t){"style"===t?this.dirtyStyle():"shape"===t?this.dirtyShape():this.markRedraw()},e.prototype.attrKV=function(e,n){"shape"===e?this.setShape(n):t.prototype.attrKV.call(this,e,n)},e.prototype.setShape=function(t,e){var n=this.shape;return n||(n=this.shape={}),"string"==typeof t?n[t]=e:M(n,t),this.dirtyShape(),this},e.prototype.shapeChanged=function(){return!!(this.__dirty&e.SHAPE_CHANGED_BIT)},e.prototype.createStyle=function(t){return ht(Pa,t)},e.prototype._innerSaveToNormal=function(e){t.prototype._innerSaveToNormal.call(this,e);var n=this._normalState;e.shape&&!n.shape&&(n.shape=M({},this.shape))},e.prototype._applyStateObj=function(e,n,i,r,o,a){t.prototype._applyStateObj.call(this,e,n,i,r,o,a);var s,l=!(n&&r);if(n&&n.shape?o?r?s=n.shape:(s=M({},i.shape),M(s,n.shape)):(s=M({},r?this.shape:i.shape),M(s,n.shape)):l&&(s=i.shape),s)if(o){this.shape=M({},this.shape);for(var u={},h=E(s),c=0;c<h.length;c++){var p=h[c];"object"==typeof s[p]?this.shape[p]=s[p]:u[p]=s[p]}this._transitionState(e,{shape:u},a)}else this.shape=s,this.dirtyShape()},e.prototype._mergeStates=function(e){for(var n,i=t.prototype._mergeStates.call(this,e),r=0;r<e.length;r++){var o=e[r];o.shape&&(n=n||{},this._mergeStyle(n,o.shape))}return n&&(i.shape=n),i},e.prototype.getAnimationStyleProps=function(){return Oa},e.prototype.isZeroArea=function(){return!1},e.extend=function(t){var n=function(e){function n(n){var i=e.call(this,n)||this;return t.init&&t.init.call(i,n),i}return gt(n,e),n.prototype.getDefaultStyle=function(){return b(t.style)},n.prototype.getDefaultShape=function(){return b(t.shape)},n}(e);for(var i in t)"function"==typeof t[i]&&(n.prototype[i]=t[i]);return n},e.SHAPE_CHANGED_BIT=4,e.initDefaultProps=((n=e.prototype).type="path",n.strokeContainThreshold=5,n.segmentIgnoreThreshold=0,n.subPixelOptimize=!1,n.autoBatch=!1,void(n.__dirty=Kn.REDARAW_BIT|uo.STYLE_CHANGED_BIT|e.SHAPE_CHANGED_BIT)),e}(uo),Ea=I({strokeFirst:!0,font:Rn,x:0,y:0,textAlign:"left",textBaseline:"top",miterLimit:2},Pa),za=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return gt(e,t),e.prototype.hasStroke=function(){var t=this.style,e=t.stroke;return null!=e&&"none"!==e&&t.lineWidth>0},e.prototype.hasFill=function(){var t=this.style.fill;return null!=t&&"none"!==t},e.prototype.createStyle=function(t){return ht(Ea,t)},e.prototype.setBoundingRect=function(t){this._rect=t},e.prototype.getBoundingRect=function(){var t=this.style;if(!this._rect){var e=t.text;null!=e?e+="":e="";var n=Bn(e,t.font,t.textAlign,t.textBaseline);if(n.x+=t.x||0,n.y+=t.y||0,this.hasStroke()){var i=t.lineWidth;n.x-=i/2,n.y-=i/2,n.width+=i,n.height+=i}this._rect=n}return this._rect},e.initDefaultProps=void(e.prototype.dirtyRectTolerance=10),e}(uo);za.prototype.type="tspan";var Ba=I({x:0,y:0},ao),Va={style:I({x:!0,y:!0,width:!0,height:!0,sx:!0,sy:!0,sWidth:!0,sHeight:!0},so.style)};var Fa=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return gt(e,t),e.prototype.createStyle=function(t){return ht(Ba,t)},e.prototype._getSize=function(t){var e=this.style,n=e[t];if(null!=n)return n;var i,r=(i=e.image)&&"string"!=typeof i&&i.width&&i.height?e.image:this.__image;if(!r)return 0;var o="width"===t?"height":"width",a=e[o];return null==a?r[t]:r[t]/r[o]*a},e.prototype.getWidth=function(){return this._getSize("width")},e.prototype.getHeight=function(){return this._getSize("height")},e.prototype.getAnimationStyleProps=function(){return Va},e.prototype.getBoundingRect=function(){var t=this.style;return this._rect||(this._rect=new Pn(t.x||0,t.y||0,this.getWidth(),this.getHeight())),this._rect},e}(uo);Fa.prototype.type="image";var Ga=Math.round;function Ha(t,e,n){if(e){var i=e.x1,r=e.x2,o=e.y1,a=e.y2;t.x1=i,t.x2=r,t.y1=o,t.y2=a;var s=n&&n.lineWidth;return s?(Ga(2*i)===Ga(2*r)&&(t.x1=t.x2=Ya(i,s,!0)),Ga(2*o)===Ga(2*a)&&(t.y1=t.y2=Ya(o,s,!0)),t):t}}function Wa(t,e,n){if(e){var i=e.x,r=e.y,o=e.width,a=e.height;t.x=i,t.y=r,t.width=o,t.height=a;var s=n&&n.lineWidth;return s?(t.x=Ya(i,s,!0),t.y=Ya(r,s,!0),t.width=Math.max(Ya(i+o,s,!1)-t.x,0===o?0:1),t.height=Math.max(Ya(r+a,s,!1)-t.y,0===a?0:1),t):t}}function Ya(t,e,n){if(!e)return t;var i=Ga(2*t);return(i+Ga(e))%2==0?i/2:(i+(n?1:-1))/2}var Xa=function(){this.x=0,this.y=0,this.width=0,this.height=0},Ua={},Za=function(t){function e(e){return t.call(this,e)||this}return gt(e,t),e.prototype.getDefaultShape=function(){return new Xa},e.prototype.buildPath=function(t,e){var n,i,r,o;if(this.subPixelOptimize){var a=Wa(Ua,e,this.style);n=a.x,i=a.y,r=a.width,o=a.height,a.r=e.r,e=a}else n=e.x,i=e.y,r=e.width,o=e.height;e.r?function(t,e){var n,i,r,o,a,s=e.x,l=e.y,u=e.width,h=e.height,c=e.r;u<0&&(s+=u,u=-u),h<0&&(l+=h,h=-h),"number"==typeof c?n=i=r=o=c:c instanceof Array?1===c.length?n=i=r=o=c[0]:2===c.length?(n=r=c[0],i=o=c[1]):3===c.length?(n=c[0],i=o=c[1],r=c[2]):(n=c[0],i=c[1],r=c[2],o=c[3]):n=i=r=o=0,n+i>u&&(n*=u/(a=n+i),i*=u/a),r+o>u&&(r*=u/(a=r+o),o*=u/a),i+r>h&&(i*=h/(a=i+r),r*=h/a),n+o>h&&(n*=h/(a=n+o),o*=h/a),t.moveTo(s+n,l),t.lineTo(s+u-i,l),0!==i&&t.arc(s+u-i,l+i,i,-Math.PI/2,0),t.lineTo(s+u,l+h-r),0!==r&&t.arc(s+u-r,l+h-r,r,0,Math.PI/2),t.lineTo(s+o,l+h),0!==o&&t.arc(s+o,l+h-o,o,Math.PI/2,Math.PI),t.lineTo(s,l+n),0!==n&&t.arc(s+n,l+n,n,Math.PI,1.5*Math.PI)}(t,e):t.rect(n,i,r,o)},e.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},e}(Na);Za.prototype.type="rect";var ja={fill:"#000"},qa={style:I({fill:!0,stroke:!0,fillOpacity:!0,strokeOpacity:!0,lineWidth:!0,fontSize:!0,lineHeight:!0,width:!0,height:!0,textShadowColor:!0,textShadowBlur:!0,textShadowOffsetX:!0,textShadowOffsetY:!0,backgroundColor:!0,padding:!0,borderColor:!0,borderWidth:!0,borderRadius:!0},so.style)},Ka=function(t){function e(e){var n=t.call(this)||this;return n.type="text",n._children=[],n._defaultStyle=ja,n.attr(e),n}return gt(e,t),e.prototype.childrenRef=function(){return this._children},e.prototype.update=function(){this.styleChanged()&&this._updateSubTexts();for(var e=0;e<this._children.length;e++){var n=this._children[e];n.zlevel=this.zlevel,n.z=this.z,n.z2=this.z2,n.culling=this.culling,n.cursor=this.cursor,n.invisible=this.invisible}var i=this.attachedTransform;if(i){i.updateTransform();var r=i.transform;r?(this.transform=this.transform||[],ge(this.transform,r)):this.transform=null}else t.prototype.update.call(this)},e.prototype.getComputedTransform=function(){return this.__hostTarget&&(this.__hostTarget.getComputedTransform(),this.__hostTarget.updateInnerText(!0)),this.attachedTransform?this.attachedTransform.getComputedTransform():t.prototype.getComputedTransform.call(this)},e.prototype._updateSubTexts=function(){var t;this._childCursor=0,Qa(t=this.style),k(t.rich,Qa),this.style.rich?this._updateRichTexts():this._updatePlainTexts(),this._children.length=this._childCursor,this.styleUpdated()},e.prototype.addSelfToZr=function(e){t.prototype.addSelfToZr.call(this,e);for(var n=0;n<this._children.length;n++)this._children[n].__zr=e},e.prototype.removeSelfFromZr=function(e){t.prototype.removeSelfFromZr.call(this,e);for(var n=0;n<this._children.length;n++)this._children[n].__zr=null},e.prototype.getBoundingRect=function(){if(this.styleChanged()&&this._updateSubTexts(),!this._rect){for(var t=new Pn(0,0,0,0),e=this._children,n=[],i=null,r=0;r<e.length;r++){var o=e[r],a=o.getBoundingRect(),s=o.getLocalTransform(n);s?(t.copy(a),t.applyTransform(s),(i=i||t.clone()).union(t)):(i=i||a.clone()).union(a)}this._rect=i||t}return this._rect},e.prototype.setDefaultTextStyle=function(t){this._defaultStyle=t||ja},e.prototype.setTextContent=function(t){throw new Error("Can't attach text on another text")},e.prototype._mergeStyle=function(t,e){if(!e)return t;var n=e.rich,i=t.rich||n&&{};return M(t,e),n&&i?(this._mergeRich(i,n),t.rich=i):i&&(t.rich=i),t},e.prototype._mergeRich=function(t,e){for(var n=E(e),i=0;i<n.length;i++){var r=n[i];t[r]=t[r]||{},M(t[r],e[r])}},e.prototype.getAnimationStyleProps=function(){return qa},e.prototype._getOrCreateChild=function(t){var e=this._children[this._childCursor];return e&&e instanceof t||(e=new t),this._children[this._childCursor++]=e,e.__zr=this.__zr,e.parent=this,e},e.prototype._updatePlainTexts=function(){var t=this.style,e=t.font||Rn,n=t.padding,i=function(t,e){null!=t&&(t+="");var n,i=e.overflow,r=e.padding,o=e.font,a="truncate"===i,s=Gn(o),l=Q(e.lineHeight,s),u="truncate"===e.lineOverflow,h=e.width,c=(n=null!=h&&"break"===i||"breakAll"===i?t?ro(t,e.font,h,"breakAll"===i,0).lines:[]:t?t.split("\n"):[]).length*l,p=Q(e.height,c);if(c>p&&u){var d=Math.floor(p/l);n=n.slice(0,d)}var f=p,g=h;if(r&&(f+=r[0]+r[2],null!=g&&(g+=r[1]+r[3])),t&&a&&null!=g)for(var y=qr(h,o,e.ellipsis,{minChar:e.truncateMinChar,placeholder:e.placeholder}),v=0;v<n.length;v++)n[v]=Kr(n[v],y);if(null==h){var m=0;for(v=0;v<n.length;v++)m=Math.max(En(n[v],o),m);h=m}return{lines:n,height:p,outerHeight:f,lineHeight:l,calculatedLineHeight:s,contentHeight:c,width:h}}(ns(t),t),r=is(t),o=!!t.backgroundColor,a=i.outerHeight,s=i.lines,l=i.lineHeight,u=this._defaultStyle,h=t.x||0,c=t.y||0,p=t.align||u.align||"left",d=t.verticalAlign||u.verticalAlign||"top",f=h,g=Fn(c,i.contentHeight,d);if(r||n){var y=i.width;n&&(y+=n[1]+n[3]);var v=Vn(h,y,p),m=Fn(c,a,d);r&&this._renderBackground(t,t,v,m,y,a)}g+=l/2,n&&(f=es(h,p,n),"top"===d?g+=n[0]:"bottom"===d&&(g-=n[2]));for(var _,x=0,b=!1,w=(null==(_="fill"in t?t.fill:(b=!0,u.fill))||"none"===_?null:_.image||_.colorStops?"#000":_),S=(ts("stroke"in t?t.stroke:o||u.autoStroke&&!b?null:(x=2,u.stroke))),M=t.textShadowBlur>0,I=null!=t.width&&("truncate"===t.overflow||"break"===t.overflow||"breakAll"===t.overflow),T=i.calculatedLineHeight,C=0;C<s.length;C++){var A=this._getOrCreateChild(za),D=A.createStyle();A.useStyle(D),D.text=s[C],D.x=f,D.y=g,p&&(D.textAlign=p),D.textBaseline="middle",D.opacity=t.opacity,D.strokeFirst=!0,M&&(D.shadowBlur=t.textShadowBlur||0,D.shadowColor=t.textShadowColor||"transparent",D.shadowOffsetX=t.textShadowOffsetX||0,D.shadowOffsetY=t.textShadowOffsetY||0),S&&(D.stroke=S,D.lineWidth=t.lineWidth||x,D.lineDash=t.lineDash,D.lineDashOffset=t.lineDashOffset||0),w&&(D.fill=w),D.font=e,g+=l,I&&A.setBoundingRect(new Pn(Vn(D.x,t.width,D.textAlign),Fn(D.y,T,D.textBaseline),t.width,T))}},e.prototype._updateRichTexts=function(){var t=this.style,e=function(t,e){var n=new to;if(null!=t&&(t+=""),!t)return n;for(var i,r=e.width,o=e.height,a=e.overflow,s="break"!==a&&"breakAll"!==a||null==r?null:{width:r,accumWidth:0,breakAll:"breakAll"===a},l=Zr.lastIndex=0;null!=(i=Zr.exec(t));){var u=i.index;u>l&&eo(n,t.substring(l,u),e,s),eo(n,i[2],e,s,i[1]),l=Zr.lastIndex}l<t.length&&eo(n,t.substring(l,t.length),e,s);var h=[],c=0,p=0,d=e.padding,f="truncate"===a,g="truncate"===e.lineOverflow;function y(t,e,n){t.width=e,t.lineHeight=n,c+=n,p=Math.max(p,e)}t:for(var v=0;v<n.lines.length;v++){for(var m=n.lines[v],_=0,x=0,b=0;b<m.tokens.length;b++){var w=(P=m.tokens[b]).styleName&&e.rich[P.styleName]||{},S=P.textPadding=w.padding,M=S?S[1]+S[3]:0,I=P.font=w.font||e.font;P.contentHeight=Gn(I);var T=Q(w.height,P.contentHeight);if(P.innerHeight=T,S&&(T+=S[0]+S[2]),P.height=T,P.lineHeight=tt(w.lineHeight,e.lineHeight,T),P.align=w&&w.align||e.align,P.verticalAlign=w&&w.verticalAlign||"middle",g&&null!=o&&c+P.lineHeight>o){b>0?(m.tokens=m.tokens.slice(0,b),y(m,x,_),n.lines=n.lines.slice(0,v+1)):n.lines=n.lines.slice(0,v);break t}var C=w.width,A=null==C||"auto"===C;if("string"==typeof C&&"%"===C.charAt(C.length-1))P.percentWidth=C,h.push(P),P.contentWidth=En(P.text,I);else{if(A){var D=w.backgroundColor,L=D&&D.image;L&&Ur(L=Wr(L))&&(P.width=Math.max(P.width,L.width*T/L.height))}var k=f&&null!=r?r-x:null;null!=k&&k<P.width?!A||k<M?(P.text="",P.width=P.contentWidth=0):(P.text=jr(P.text,k-M,I,e.ellipsis,{minChar:e.truncateMinChar}),P.width=P.contentWidth=En(P.text,I)):P.contentWidth=En(P.text,I)}P.width+=M,x+=P.width,w&&(_=Math.max(_,P.lineHeight))}y(m,x,_)}for(n.outerWidth=n.width=Q(r,p),n.outerHeight=n.height=Q(o,c),n.contentHeight=c,n.contentWidth=p,d&&(n.outerWidth+=d[1]+d[3],n.outerHeight+=d[0]+d[2]),v=0;v<h.length;v++){var P,O=(P=h[v]).percentWidth;P.width=parseInt(O,10)/100*n.width}return n}(ns(t),t),n=e.width,i=e.outerWidth,r=e.outerHeight,o=t.padding,a=t.x||0,s=t.y||0,l=this._defaultStyle,u=t.align||l.align,h=t.verticalAlign||l.verticalAlign,c=Vn(a,i,u),p=Fn(s,r,h),d=c,f=p;o&&(d+=o[3],f+=o[0]);var g=d+n;is(t)&&this._renderBackground(t,t,c,p,i,r);for(var y=!!t.backgroundColor,v=0;v<e.lines.length;v++){for(var m=e.lines[v],_=m.tokens,x=_.length,b=m.lineHeight,w=m.width,S=0,M=d,I=g,T=x-1,C=void 0;S<x&&(!(C=_[S]).align||"left"===C.align);)this._placeToken(C,t,b,f,M,"left",y),w-=C.width,M+=C.width,S++;for(;T>=0&&"right"===(C=_[T]).align;)this._placeToken(C,t,b,f,I,"right",y),w-=C.width,I-=C.width,T--;for(M+=(n-(M-d)-(g-I)-w)/2;S<=T;)C=_[S],this._placeToken(C,t,b,f,M+C.width/2,"center",y),M+=C.width,S++;f+=b}},e.prototype._placeToken=function(t,e,n,i,r,o,a){var s=e.rich[t.styleName]||{};s.text=t.text;var l=t.verticalAlign,u=i+n/2;"top"===l?u=i+t.height/2:"bottom"===l&&(u=i+n-t.height/2),!t.isLineHolder&&is(s)&&this._renderBackground(s,e,"right"===o?r-t.width:"center"===o?r-t.width/2:r,u-t.height/2,t.width,t.height);var h=!!s.backgroundColor,c=t.textPadding;c&&(r=es(r,o,c),u-=t.height/2-c[0]-t.innerHeight/2);var p=this._getOrCreateChild(za),d=p.createStyle();p.useStyle(d);var f=this._defaultStyle,g=!1,y=0,v=ts("fill"in s?s.fill:"fill"in e?e.fill:(g=!0,f.fill)),m=ts("stroke"in s?s.stroke:"stroke"in e?e.stroke:h||a||f.autoStroke&&!g?null:(y=2,f.stroke)),_=s.textShadowBlur>0||e.textShadowBlur>0;d.text=t.text,d.x=r,d.y=u,_&&(d.shadowBlur=s.textShadowBlur||e.textShadowBlur||0,d.shadowColor=s.textShadowColor||e.textShadowColor||"transparent",d.shadowOffsetX=s.textShadowOffsetX||e.textShadowOffsetX||0,d.shadowOffsetY=s.textShadowOffsetY||e.textShadowOffsetY||0),d.textAlign=o,d.textBaseline="middle",d.font=t.font||Rn,d.opacity=tt(s.opacity,e.opacity,1),m&&(d.lineWidth=tt(s.lineWidth,e.lineWidth,y),d.lineDash=Q(s.lineDash,e.lineDash),d.lineDashOffset=e.lineDashOffset||0,d.stroke=m),v&&(d.fill=v);var x=t.contentWidth,b=t.contentHeight;p.setBoundingRect(new Pn(Vn(d.x,x,d.textAlign),Fn(d.y,b,d.textBaseline),x,b))},e.prototype._renderBackground=function(t,e,n,i,r,o){var a,s,l,u=t.backgroundColor,h=t.borderWidth,c=t.borderColor,p=G(u),d=t.borderRadius,f=this;if(p||h&&c){(a=this._getOrCreateChild(Za)).useStyle(a.createStyle()),a.style.fill=null;var g=a.shape;g.x=n,g.y=i,g.width=r,g.height=o,g.r=d,a.dirtyShape()}if(p)(l=a.style).fill=u||null,l.fillOpacity=Q(t.fillOpacity,1);else if(u&&u.image){(s=this._getOrCreateChild(Fa)).onload=function(){f.dirtyStyle()};var y=s.style;y.image=u.image,y.x=n,y.y=i,y.width=r,y.height=o}h&&c&&((l=a.style).lineWidth=h,l.stroke=c,l.strokeOpacity=Q(t.strokeOpacity,1),l.lineDash=t.borderDash,l.lineDashOffset=t.borderDashOffset||0,a.strokeContainThreshold=0,a.hasFill()&&a.hasStroke()&&(l.strokeFirst=!0,l.lineWidth*=2));var v=(a||s).style;v.shadowBlur=t.shadowBlur||0,v.shadowColor=t.shadowColor||"transparent",v.shadowOffsetX=t.shadowOffsetX||0,v.shadowOffsetY=t.shadowOffsetY||0,v.opacity=tt(t.opacity,e.opacity,1)},e.makeFont=function(t){var e="";if(t.fontSize||t.fontFamily||t.fontWeight){var n="";n="string"!=typeof t.fontSize||-1===t.fontSize.indexOf("px")&&-1===t.fontSize.indexOf("rem")&&-1===t.fontSize.indexOf("em")?isNaN(+t.fontSize)?"12px":t.fontSize+"px":t.fontSize,e=[t.fontStyle,t.fontWeight,n,t.fontFamily||"sans-serif"].join(" ")}return e&&rt(e)||t.textFont||t.font},e}(uo),$a={left:!0,right:1,center:1},Ja={top:1,bottom:1,middle:1};function Qa(t){if(t){t.font=Ka.makeFont(t);var e=t.align;"middle"===e&&(e="center"),t.align=null==e||$a[e]?e:"left";var n=t.verticalAlign;"center"===n&&(n="middle"),t.verticalAlign=null==n||Ja[n]?n:"top",t.padding&&(t.padding=nt(t.padding))}}function ts(t,e){return null==t||e<=0||"transparent"===t||"none"===t?null:t.image||t.colorStops?"#000":t}function es(t,e,n){return"right"===e?t-n[1]:"center"===e?t+n[3]/2-n[1]/2:t+n[3]}function ns(t){var e=t.text;return null!=e&&(e+=""),e}function is(t){return!!(t.backgroundColor||t.borderWidth&&t.borderColor)}var rs=br(),os=1,as={},ss=br(),ls=["emphasis","blur","select"],us=["normal","emphasis","blur","select"];function hs(t){return null!=t&&"none"!==t}var cs=new Re(100);function ps(t){if("string"!=typeof t)return t;var e=cs.get(t);return e||(e=qe(t,-.1),cs.put(t,e)),e}function ds(t,e,n){t.onHoverStateChange&&(t.hoverState||0)!==n&&t.onHoverStateChange(e),t.hoverState=n}function fs(t){ds(t,"emphasis",2)}function gs(t){2===t.hoverState&&ds(t,"normal",0)}function ys(t){ds(t,"blur",1)}function vs(t){1===t.hoverState&&ds(t,"normal",0)}function ms(t){t.selected=!0}function _s(t){t.selected=!1}function xs(t,e,n){e(t,n)}function bs(t,e,n){xs(t,e,n),t.isGroup&&t.traverse((function(t){xs(t,e,n)}))}function ws(t,e){switch(e){case"emphasis":t.hoverState=2;break;case"normal":t.hoverState=0;break;case"blur":t.hoverState=1;break;case"select":t.selected=!0}}function Ss(t,e){var n=this.states[t];if(this.style){if("emphasis"===t)return function(t,e,n,i){var r=n&&C(n,"select")>=0,o=!1;if(t instanceof Na){var a=ss(t),s=r&&a.selectFill||a.normalFill,l=r&&a.selectStroke||a.normalStroke;if(hs(s)||hs(l)){var u=(i=i||{}).style||{};!hs(u.fill)&&hs(s)?(o=!0,i=M({},i),(u=M({},u)).fill=ps(s)):!hs(u.stroke)&&hs(l)&&(o||(i=M({},i),u=M({},u)),u.stroke=ps(l)),i.style=u}}if(i&&null==i.z2){o||(i=M({},i));var h=t.z2EmphasisLift;i.z2=t.z2+(null!=h?h:10)}return i}(this,0,e,n);if("blur"===t)return function(t,e,n){var i=C(t.currentStates,e)>=0,r=t.style.opacity,o=i?null:function(t,e,n,i){for(var r=t.style,o={},a=0;a<e.length;a++){var s=e[a],l=r[s];o[s]=null==l?i&&i[s]:l}for(a=0;a<t.animators.length;a++){var u=t.animators[a];u.__fromStateTransition&&u.__fromStateTransition.indexOf(n)<0&&"style"===u.targetName&&u.saveFinalToTarget(o,e)}return o}(t,["opacity"],e,{opacity:1}),a=(n=n||{}).style||{};return null==a.opacity&&(n=M({},n),a=M({opacity:i?r:.1*o.opacity},a),n.style=a),n}(this,t,n);if("select"===t)return function(t,e,n){if(n&&null==n.z2){n=M({},n);var i=t.z2SelectLift;n.z2=t.z2+(null!=i?i:9)}return n}(this,0,n)}return n}function Ms(t){t.stateProxy=Ss;var e=t.getTextContent(),n=t.getTextGuideLine();e&&(e.stateProxy=Ss),n&&(n.stateProxy=Ss)}function Is(t,e){t.__highByOuter|=1<<(e||0),bs(t,fs)}function Ts(t,e){!(t.__highByOuter&=~(1<<(e||0)))&&bs(t,gs)}function Cs(t){bs(t,ys)}function As(t){bs(t,vs)}function Ds(t){bs(t,ms)}function Ls(t){bs(t,_s)}function ks(t,e){return t.__highDownSilentOnTouch&&e.zrByTouch}function Ps(t,e,n,i,r){var o=i.getModel();function a(t,e){for(var n=0;n<e.length;n++){var i=t.getItemGraphicEl(e[n]);i&&As(i)}}if(n=n||"coordinateSystem",r){if(null!=t&&e&&"none"!==e){var s=o.getSeriesByIndex(t),l=s.coordinateSystem;l&&l.master&&(l=l.master);var u=[];o.eachSeries((function(t){var r=s===t,o=t.coordinateSystem;if(o&&o.master&&(o=o.master),!("series"===n&&!r||"coordinateSystem"===n&&!(o&&l?o===l:r)||"series"===e&&r)){if(i.getViewOfSeriesModel(t).group.traverse((function(t){ys(t)})),L(e))a(t.getData(),e);else if(Y(e))for(var h=E(e),c=0;c<h.length;c++)a(t.getData(h[c]),e[h[c]]);u.push(t)}})),o.eachComponent((function(t,e){if("series"!==t){var n=i.getViewOfComponentModel(e);n&&n.blurSeries&&n.blurSeries(u,o)}}))}}else!function(t){t.getModel().eachComponent((function(e,n){("series"===e?t.getViewOfSeriesModel(n):t.getViewOfComponentModel(n)).group.traverse((function(t){vs(t)}))}))}(i)}function Os(t){k(t.getAllData(),(function(e){var n=e.data,i=e.type;n.eachItemGraphicEl((function(e,n){t.isSelected(n,i)?Ds(e):Ls(e)}))}))}function Rs(t){var e=[];return t.eachSeries((function(t){k(t.getAllData(),(function(n){n.data;var i=n.type,r=t.getSelectedDataIndices();if(r.length>0){var o={dataIndex:r,seriesIndex:t.seriesIndex};null!=i&&(o.dataType=i),e.push(o)}}))})),e}function Ns(t,e,n){Fs(t,!0),bs(t,Ms),Es(t,e,n)}function Es(t,e,n){var i=rs(t);null!=e?(i.focus=e,i.blurScope=n):i.focus&&(i.focus=null)}var zs=["emphasis","blur","select"],Bs={itemStyle:"getItemStyle",lineStyle:"getLineStyle",areaStyle:"getAreaStyle"};function Vs(t,e,n,i){n=n||"itemStyle";for(var r=0;r<zs.length;r++){var o=zs[r],a=e.getModel([o,n]);t.ensureState(o).style=i?i(a):a[Bs[n]]()}}function Fs(t,e){var n=!1===e,i=t;t.highDownSilentOnTouch&&(i.__highDownSilentOnTouch=t.highDownSilentOnTouch),n&&!i.__highDownDispatcher||(i.__highByOuter=i.__highByOuter||0,i.__highDownDispatcher=!n)}function Gs(t){return!(!t||!t.__highDownDispatcher)}function Hs(t){var e=t.type;return"select"===e||"unselect"===e||"toggleSelect"===e}function Ws(t){var e=t.type;return"highlight"===e||"downplay"===e}var Ys=ga.CMD,Xs=[[],[],[]],Us=Math.sqrt,Zs=Math.atan2;var js=Math.sqrt,qs=Math.sin,Ks=Math.cos,$s=Math.PI;function Js(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function Qs(t,e){return(t[0]*e[0]+t[1]*e[1])/(Js(t)*Js(e))}function tl(t,e){return(t[0]*e[1]<t[1]*e[0]?-1:1)*Math.acos(Qs(t,e))}function el(t,e,n,i,r,o,a,s,l,u,h){var c=l*($s/180),p=Ks(c)*(t-n)/2+qs(c)*(e-i)/2,d=-1*qs(c)*(t-n)/2+Ks(c)*(e-i)/2,f=p*p/(a*a)+d*d/(s*s);f>1&&(a*=js(f),s*=js(f));var g=(r===o?-1:1)*js((a*a*(s*s)-a*a*(d*d)-s*s*(p*p))/(a*a*(d*d)+s*s*(p*p)))||0,y=g*a*d/s,v=g*-s*p/a,m=(t+n)/2+Ks(c)*y-qs(c)*v,_=(e+i)/2+qs(c)*y+Ks(c)*v,x=tl([1,0],[(p-y)/a,(d-v)/s]),b=[(p-y)/a,(d-v)/s],w=[(-1*p-y)/a,(-1*d-v)/s],S=tl(b,w);if(Qs(b,w)<=-1&&(S=$s),Qs(b,w)>=1&&(S=0),S<0){var M=Math.round(S/$s*1e6)/1e6;S=2*$s+M%2*$s}h.addData(u,m,_,a,s,x,S,c,o)}var nl=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/gi,il=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;var rl=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return gt(e,t),e.prototype.applyTransform=function(t){},e}(Na);function ol(t){return null!=t.setData}function al(t,e){var n=function(t){var e=new ga;if(!t)return e;var n,i=0,r=0,o=i,a=r,s=ga.CMD,l=t.match(nl);if(!l)return e;for(var u=0;u<l.length;u++){for(var h=l[u],c=h.charAt(0),p=void 0,d=h.match(il)||[],f=d.length,g=0;g<f;g++)d[g]=parseFloat(d[g]);for(var y=0;y<f;){var v=void 0,m=void 0,_=void 0,x=void 0,b=void 0,w=void 0,S=void 0,M=i,I=r,T=void 0,C=void 0;switch(c){case"l":i+=d[y++],r+=d[y++],p=s.L,e.addData(p,i,r);break;case"L":i=d[y++],r=d[y++],p=s.L,e.addData(p,i,r);break;case"m":i+=d[y++],r+=d[y++],p=s.M,e.addData(p,i,r),o=i,a=r,c="l";break;case"M":i=d[y++],r=d[y++],p=s.M,e.addData(p,i,r),o=i,a=r,c="L";break;case"h":i+=d[y++],p=s.L,e.addData(p,i,r);break;case"H":i=d[y++],p=s.L,e.addData(p,i,r);break;case"v":r+=d[y++],p=s.L,e.addData(p,i,r);break;case"V":r=d[y++],p=s.L,e.addData(p,i,r);break;case"C":p=s.C,e.addData(p,d[y++],d[y++],d[y++],d[y++],d[y++],d[y++]),i=d[y-2],r=d[y-1];break;case"c":p=s.C,e.addData(p,d[y++]+i,d[y++]+r,d[y++]+i,d[y++]+r,d[y++]+i,d[y++]+r),i+=d[y-2],r+=d[y-1];break;case"S":v=i,m=r,T=e.len(),C=e.data,n===s.C&&(v+=i-C[T-4],m+=r-C[T-3]),p=s.C,M=d[y++],I=d[y++],i=d[y++],r=d[y++],e.addData(p,v,m,M,I,i,r);break;case"s":v=i,m=r,T=e.len(),C=e.data,n===s.C&&(v+=i-C[T-4],m+=r-C[T-3]),p=s.C,M=i+d[y++],I=r+d[y++],i+=d[y++],r+=d[y++],e.addData(p,v,m,M,I,i,r);break;case"Q":M=d[y++],I=d[y++],i=d[y++],r=d[y++],p=s.Q,e.addData(p,M,I,i,r);break;case"q":M=d[y++]+i,I=d[y++]+r,i+=d[y++],r+=d[y++],p=s.Q,e.addData(p,M,I,i,r);break;case"T":v=i,m=r,T=e.len(),C=e.data,n===s.Q&&(v+=i-C[T-4],m+=r-C[T-3]),i=d[y++],r=d[y++],p=s.Q,e.addData(p,v,m,i,r);break;case"t":v=i,m=r,T=e.len(),C=e.data,n===s.Q&&(v+=i-C[T-4],m+=r-C[T-3]),i+=d[y++],r+=d[y++],p=s.Q,e.addData(p,v,m,i,r);break;case"A":_=d[y++],x=d[y++],b=d[y++],w=d[y++],S=d[y++],el(M=i,I=r,i=d[y++],r=d[y++],w,S,_,x,b,p=s.A,e);break;case"a":_=d[y++],x=d[y++],b=d[y++],w=d[y++],S=d[y++],el(M=i,I=r,i+=d[y++],r+=d[y++],w,S,_,x,b,p=s.A,e)}}"z"!==c&&"Z"!==c||(p=s.Z,e.addData(p),i=o,r=a),n=p}return e.toStatic(),e}(t),i=M({},e);return i.buildPath=function(t){if(ol(t)){t.setData(n.data),(e=t.getContext())&&t.rebuildPath(e,1)}else{var e=t;n.rebuildPath(e,1)}},i.applyTransform=function(t){!function(t,e){var n,i,r,o,a,s,l=t.data,u=t.len(),h=Ys.M,c=Ys.C,p=Ys.L,d=Ys.R,f=Ys.A,g=Ys.Q;for(r=0,o=0;r<u;){switch(n=l[r++],o=r,i=0,n){case h:case p:i=1;break;case c:i=3;break;case g:i=2;break;case f:var y=e[4],v=e[5],m=Us(e[0]*e[0]+e[1]*e[1]),_=Us(e[2]*e[2]+e[3]*e[3]),x=Zs(-e[1]/_,e[0]/m);l[r]*=m,l[r++]+=y,l[r]*=_,l[r++]+=v,l[r++]*=m,l[r++]*=_,l[r++]+=x,l[r++]+=x,o=r+=2;break;case d:s[0]=l[r++],s[1]=l[r++],Rt(s,s,e),l[o++]=s[0],l[o++]=s[1],s[0]+=l[r++],s[1]+=l[r++],Rt(s,s,e),l[o++]=s[0],l[o++]=s[1]}for(a=0;a<i;a++){var b=Xs[a];b[0]=l[r++],b[1]=l[r++],Rt(b,b,e),l[o++]=b[0],l[o++]=b[1]}}t.increaseVersion()}(n,t),this.dirtyShape()},i}function sl(t,e){return new rl(al(t,e))}var ll=function(){this.cx=0,this.cy=0,this.r=0},ul=function(t){function e(e){return t.call(this,e)||this}return gt(e,t),e.prototype.getDefaultShape=function(){return new ll},e.prototype.buildPath=function(t,e,n){n&&t.moveTo(e.cx+e.r,e.cy),t.arc(e.cx,e.cy,e.r,0,2*Math.PI)},e}(Na);ul.prototype.type="circle";var hl=function(){this.cx=0,this.cy=0,this.rx=0,this.ry=0},cl=function(t){function e(e){return t.call(this,e)||this}return gt(e,t),e.prototype.getDefaultShape=function(){return new hl},e.prototype.buildPath=function(t,e){var n=.5522848,i=e.cx,r=e.cy,o=e.rx,a=e.ry,s=o*n,l=a*n;t.moveTo(i-o,r),t.bezierCurveTo(i-o,r-l,i-s,r-a,i,r-a),t.bezierCurveTo(i+s,r-a,i+o,r-l,i+o,r),t.bezierCurveTo(i+o,r+l,i+s,r+a,i,r+a),t.bezierCurveTo(i-s,r+a,i-o,r+l,i-o,r),t.closePath()},e}(Na);cl.prototype.type="ellipse";var pl=Math.PI,dl=2*pl,fl=Math.sin,gl=Math.cos,yl=Math.acos,vl=Math.atan2,ml=Math.abs,_l=Math.sqrt,xl=Math.max,bl=Math.min,wl=1e-4;function Sl(t,e,n,i,r,o,a){var s=t-n,l=e-i,u=(a?o:-o)/_l(s*s+l*l),h=u*l,c=-u*s,p=t+h,d=e+c,f=n+h,g=i+c,y=(p+f)/2,v=(d+g)/2,m=f-p,_=g-d,x=m*m+_*_,b=r-o,w=p*g-f*d,S=(_<0?-1:1)*_l(xl(0,b*b*x-w*w)),M=(w*_-m*S)/x,I=(-w*m-_*S)/x,T=(w*_+m*S)/x,C=(-w*m+_*S)/x,A=M-y,D=I-v,L=T-y,k=C-v;return A*A+D*D>L*L+k*k&&(M=T,I=C),{cx:M,cy:I,x01:-h,y01:-c,x11:M*(r/b-1),y11:I*(r/b-1)}}function Ml(t,e){var n=xl(e.r,0),i=xl(e.r0||0,0),r=n>0;if(r||i>0){if(r||(n=i,i=0),i>n){var o=n;n=i,i=o}var a=!!e.clockwise,s=e.startAngle,l=e.endAngle,u=[s,l];fa(u,!a);var h=ml(u[0]-u[1]),c=e.cx,p=e.cy,d=e.cornerRadius||0,f=e.innerCornerRadius||0;if(n>wl)if(h>dl-wl)t.moveTo(c+n*gl(s),p+n*fl(s)),t.arc(c,p,n,s,l,!a),i>wl&&(t.moveTo(c+i*gl(l),p+i*fl(l)),t.arc(c,p,i,l,s,a));else{var g=ml(n-i)/2,y=bl(g,d),v=bl(g,f),m=v,_=y,x=n*gl(s),b=n*fl(s),w=i*gl(l),S=i*fl(l),M=void 0,I=void 0,T=void 0,C=void 0;if((y>wl||v>wl)&&(M=n*gl(l),I=n*fl(l),T=i*gl(s),C=i*fl(s),h<pl)){var A=function(t,e,n,i,r,o,a,s){var l=n-t,u=i-e,h=a-r,c=s-o,p=c*l-h*u;if(!(p*p<wl))return[t+(p=(h*(e-o)-c*(t-r))/p)*l,e+p*u]}(x,b,T,C,M,I,w,S);if(A){var D=x-A[0],L=b-A[1],k=M-A[0],P=I-A[1],O=1/fl(yl((D*k+L*P)/(_l(D*D+L*L)*_l(k*k+P*P)))/2),R=_l(A[0]*A[0]+A[1]*A[1]);m=bl(v,(i-R)/(O-1)),_=bl(y,(n-R)/(O+1))}}if(h>wl)if(_>wl){var N=Sl(T,C,x,b,n,_,a),E=Sl(M,I,w,S,n,_,a);t.moveTo(c+N.cx+N.x01,p+N.cy+N.y01),_<y?t.arc(c+N.cx,p+N.cy,_,vl(N.y01,N.x01),vl(E.y01,E.x01),!a):(t.arc(c+N.cx,p+N.cy,_,vl(N.y01,N.x01),vl(N.y11,N.x11),!a),t.arc(c,p,n,vl(N.cy+N.y11,N.cx+N.x11),vl(E.cy+E.y11,E.cx+E.x11),!a),t.arc(c+E.cx,p+E.cy,_,vl(E.y11,E.x11),vl(E.y01,E.x01),!a))}else t.moveTo(c+x,p+b),t.arc(c,p,n,s,l,!a);else t.moveTo(c+x,p+b);if(i>wl&&h>wl)if(m>wl){N=Sl(w,S,M,I,i,-m,a),E=Sl(x,b,T,C,i,-m,a);t.lineTo(c+N.cx+N.x01,p+N.cy+N.y01),m<v?t.arc(c+N.cx,p+N.cy,m,vl(N.y01,N.x01),vl(E.y01,E.x01),!a):(t.arc(c+N.cx,p+N.cy,m,vl(N.y01,N.x01),vl(N.y11,N.x11),!a),t.arc(c,p,i,vl(N.cy+N.y11,N.cx+N.x11),vl(E.cy+E.y11,E.cx+E.x11),a),t.arc(c+E.cx,p+E.cy,m,vl(E.y11,E.x11),vl(E.y01,E.x01),!a))}else t.lineTo(c+w,p+S),t.arc(c,p,i,l,s,a);else t.lineTo(c+w,p+S)}else t.moveTo(c,p);t.closePath()}}var Il=function(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0,this.cornerRadius=0,this.innerCornerRadius=0},Tl=function(t){function e(e){return t.call(this,e)||this}return gt(e,t),e.prototype.getDefaultShape=function(){return new Il},e.prototype.buildPath=function(t,e){Ml(t,e)},e.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},e}(Na);Tl.prototype.type="sector";var Cl=function(){this.cx=0,this.cy=0,this.r=0,this.r0=0},Al=function(t){function e(e){return t.call(this,e)||this}return gt(e,t),e.prototype.getDefaultShape=function(){return new Cl},e.prototype.buildPath=function(t,e){var n=e.cx,i=e.cy,r=2*Math.PI;t.moveTo(n+e.r,i),t.arc(n,i,e.r,0,r,!1),t.moveTo(n+e.r0,i),t.arc(n,i,e.r0,0,r,!0)},e}(Na);function Dl(t,e,n,i,r,o,a){var s=.5*(n-t),l=.5*(i-e);return(2*(e-n)+s+l)*a+(-3*(e-n)-2*s-l)*o+s*r+e}function Ll(t,e,n){var i=e.smooth,r=e.points;if(r&&r.length>=2){if(i&&"spline"!==i){var o=function(t,e,n,i){var r,o,a,s,l=[],u=[],h=[],c=[];if(i){a=[1/0,1/0],s=[-1/0,-1/0];for(var p=0,d=t.length;p<d;p++)Nt(a,a,t[p]),Et(s,s,t[p]);Nt(a,a,i[0]),Et(s,s,i[1])}for(p=0,d=t.length;p<d;p++){var f=t[p];if(n)r=t[p?p-1:d-1],o=t[(p+1)%d];else{if(0===p||p===d-1){l.push(mt(t[p]));continue}r=t[p-1],o=t[p+1]}wt(u,o,r),Ct(u,u,e);var g=Dt(f,r),y=Dt(f,o),v=g+y;0!==v&&(g/=v,y/=v),Ct(h,u,-g),Ct(c,u,y);var m=xt([],f,h),_=xt([],f,c);i&&(Et(m,m,a),Nt(m,m,s),Et(_,_,a),Nt(_,_,s)),l.push(m),l.push(_)}return n&&l.push(l.shift()),l}(r,i,n,e.smoothConstraint);t.moveTo(r[0][0],r[0][1]);for(var a=r.length,s=0;s<(n?a:a-1);s++){var l=o[2*s],u=o[2*s+1],h=r[(s+1)%a];t.bezierCurveTo(l[0],l[1],u[0],u[1],h[0],h[1])}}else{"spline"===i&&(r=function(t,e){for(var n=t.length,i=[],r=0,o=1;o<n;o++)r+=Dt(t[o-1],t[o]);var a=r/2;for(a=a<n?n:a,o=0;o<a;o++){var s=o/(a-1)*(e?n:n-1),l=Math.floor(s),u=s-l,h=void 0,c=t[l%n],p=void 0,d=void 0;e?(h=t[(l-1+n)%n],p=t[(l+1)%n],d=t[(l+2)%n]):(h=t[0===l?l:l-1],p=t[l>n-2?n-1:l+1],d=t[l>n-3?n-1:l+2]);var f=u*u,g=u*f;i.push([Dl(h[0],c[0],p[0],d[0],u,f,g),Dl(h[1],c[1],p[1],d[1],u,f,g)])}return i}(r,n)),t.moveTo(r[0][0],r[0][1]);s=1;for(var c=r.length;s<c;s++)t.lineTo(r[s][0],r[s][1])}n&&t.closePath()}}Al.prototype.type="ring";var kl=function(){this.points=null,this.smooth=0,this.smoothConstraint=null},Pl=function(t){function e(e){return t.call(this,e)||this}return gt(e,t),e.prototype.getDefaultShape=function(){return new kl},e.prototype.buildPath=function(t,e){Ll(t,e,!0)},e}(Na);Pl.prototype.type="polygon";var Ol=function(){this.points=null,this.percent=1,this.smooth=0,this.smoothConstraint=null},Rl=function(t){function e(e){return t.call(this,e)||this}return gt(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new Ol},e.prototype.buildPath=function(t,e){Ll(t,e,!1)},e}(Na);Rl.prototype.type="polyline";var Nl={},El=function(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.percent=1},zl=function(t){function e(e){return t.call(this,e)||this}return gt(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new El},e.prototype.buildPath=function(t,e){var n,i,r,o;if(this.subPixelOptimize){var a=Ha(Nl,e,this.style);n=a.x1,i=a.y1,r=a.x2,o=a.y2}else n=e.x1,i=e.y1,r=e.x2,o=e.y2;var s=e.percent;0!==s&&(t.moveTo(n,i),s<1&&(r=n*(1-s)+r*s,o=i*(1-s)+o*s),t.lineTo(r,o))},e.prototype.pointAt=function(t){var e=this.shape;return[e.x1*(1-t)+e.x2*t,e.y1*(1-t)+e.y2*t]},e}(Na);zl.prototype.type="line";var Bl=[],Vl=function(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.cpx1=0,this.cpy1=0,this.percent=1};function Fl(t,e,n){var i=t.cpx2,r=t.cpy2;return null===i||null===r?[(n?So:wo)(t.x1,t.cpx1,t.cpx2,t.x2,e),(n?So:wo)(t.y1,t.cpy1,t.cpy2,t.y2,e)]:[(n?Lo:Do)(t.x1,t.cpx1,t.x2,e),(n?Lo:Do)(t.y1,t.cpy1,t.y2,e)]}var Gl=function(t){function e(e){return t.call(this,e)||this}return gt(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new Vl},e.prototype.buildPath=function(t,e){var n=e.x1,i=e.y1,r=e.x2,o=e.y2,a=e.cpx1,s=e.cpy1,l=e.cpx2,u=e.cpy2,h=e.percent;0!==h&&(t.moveTo(n,i),null==l||null==u?(h<1&&(Po(n,a,r,h,Bl),a=Bl[1],r=Bl[2],Po(i,s,o,h,Bl),s=Bl[1],o=Bl[2]),t.quadraticCurveTo(a,s,r,o)):(h<1&&(To(n,a,l,r,h,Bl),a=Bl[1],l=Bl[2],r=Bl[3],To(i,s,u,o,h,Bl),s=Bl[1],u=Bl[2],o=Bl[3]),t.bezierCurveTo(a,s,l,u,r,o)))},e.prototype.pointAt=function(t){return Fl(this.shape,t,!1)},e.prototype.tangentAt=function(t){var e=Fl(this.shape,t,!0);return At(e,e)},e}(Na);Gl.prototype.type="bezier-curve";var Hl=function(){this.cx=0,this.cy=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0},Wl=function(t){function e(e){return t.call(this,e)||this}return gt(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new Hl},e.prototype.buildPath=function(t,e){var n=e.cx,i=e.cy,r=Math.max(e.r,0),o=e.startAngle,a=e.endAngle,s=e.clockwise,l=Math.cos(o),u=Math.sin(o);t.moveTo(l*r+n,u*r+i),t.arc(n,i,r,o,a,!s)},e}(Na);Wl.prototype.type="arc";var Yl=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="compound",e}return gt(e,t),e.prototype._updatePathDirty=function(){for(var t=this.shape.paths,e=this.shapeChanged(),n=0;n<t.length;n++)e=e||t[n].shapeChanged();e&&this.dirtyShape()},e.prototype.beforeBrush=function(){this._updatePathDirty();for(var t=this.shape.paths||[],e=this.getGlobalScale(),n=0;n<t.length;n++)t[n].path||t[n].createPathProxy(),t[n].path.setScale(e[0],e[1],t[n].segmentIgnoreThreshold)},e.prototype.buildPath=function(t,e){for(var n=e.paths||[],i=0;i<n.length;i++)n[i].buildPath(t,n[i].shape,!0)},e.prototype.afterBrush=function(){for(var t=this.shape.paths||[],e=0;e<t.length;e++)t[e].pathUpdated()},e.prototype.getBoundingRect=function(){return this._updatePathDirty.call(this),Na.prototype.getBoundingRect.call(this)},e}(Na),Xl=function(){function t(t){this.colorStops=t||[]}return t.prototype.addColorStop=function(t,e){this.colorStops.push({offset:t,color:e})},t}(),Ul=function(t){function e(e,n,i,r,o,a){var s=t.call(this,o)||this;return s.x=null==e?0:e,s.y=null==n?0:n,s.x2=null==i?1:i,s.y2=null==r?0:r,s.type="linear",s.global=a||!1,s}return gt(e,t),e}(Xl),Zl=function(t){function e(e,n,i,r,o){var a=t.call(this,r)||this;return a.x=null==e?.5:e,a.y=null==n?.5:n,a.r=null==i?.5:i,a.type="radial",a.global=o||!1,a}return gt(e,t),e}(Xl),jl=[0,0],ql=[0,0],Kl=new Sn,$l=new Sn,Jl=function(){function t(t,e){this._corners=[],this._axes=[],this._origin=[0,0];for(var n=0;n<4;n++)this._corners[n]=new Sn;for(n=0;n<2;n++)this._axes[n]=new Sn;t&&this.fromBoundingRect(t,e)}return t.prototype.fromBoundingRect=function(t,e){var n=this._corners,i=this._axes,r=t.x,o=t.y,a=r+t.width,s=o+t.height;if(n[0].set(r,o),n[1].set(a,o),n[2].set(a,s),n[3].set(r,s),e)for(var l=0;l<4;l++)n[l].transform(e);Sn.sub(i[0],n[1],n[0]),Sn.sub(i[1],n[3],n[0]),i[0].normalize(),i[1].normalize();for(l=0;l<2;l++)this._origin[l]=i[l].dot(n[0])},t.prototype.intersect=function(t,e){var n=!0,i=!e;return Kl.set(1/0,1/0),$l.set(0,0),!this._intersectCheckOneSide(this,t,Kl,$l,i,1)&&(n=!1,i)||!this._intersectCheckOneSide(t,this,Kl,$l,i,-1)&&(n=!1,i)||i||Sn.copy(e,n?Kl:$l),n},t.prototype._intersectCheckOneSide=function(t,e,n,i,r,o){for(var a=!0,s=0;s<2;s++){var l=this._axes[s];if(this._getProjMinMaxOnAxis(s,t._corners,jl),this._getProjMinMaxOnAxis(s,e._corners,ql),jl[1]<ql[0]||jl[0]>ql[1]){if(a=!1,r)return a;var u=Math.abs(ql[0]-jl[1]),h=Math.abs(jl[0]-ql[1]);Math.min(u,h)>i.len()&&(u<h?Sn.scale(i,l,-u*o):Sn.scale(i,l,h*o))}else if(n){u=Math.abs(ql[0]-jl[1]),h=Math.abs(jl[0]-ql[1]);Math.min(u,h)<n.len()&&(u<h?Sn.scale(n,l,u*o):Sn.scale(n,l,-h*o))}}return a},t.prototype._getProjMinMaxOnAxis=function(t,e,n){for(var i=this._axes[t],r=this._origin,o=e[0].dot(i)+r[t],a=o,s=o,l=1;l<e.length;l++){var u=e[l].dot(i)+r[t];a=Math.min(u,a),s=Math.max(u,s)}n[0]=a,n[1]=s},t}(),Ql=[],tu=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.notClear=!0,e.incremental=!0,e._displayables=[],e._temporaryDisplayables=[],e._cursor=0,e}return gt(e,t),e.prototype.traverse=function(t,e){t.call(e,this)},e.prototype.useStyle=function(){this.style={}},e.prototype.getCursor=function(){return this._cursor},e.prototype.innerAfterBrush=function(){this._cursor=this._displayables.length},e.prototype.clearDisplaybles=function(){this._displayables=[],this._temporaryDisplayables=[],this._cursor=0,this.markRedraw(),this.notClear=!1},e.prototype.clearTemporalDisplayables=function(){this._temporaryDisplayables=[]},e.prototype.addDisplayable=function(t,e){e?this._temporaryDisplayables.push(t):this._displayables.push(t),this.markRedraw()},e.prototype.addDisplayables=function(t,e){e=e||!1;for(var n=0;n<t.length;n++)this.addDisplayable(t[n],e)},e.prototype.getDisplayables=function(){return this._displayables},e.prototype.getTemporalDisplayables=function(){return this._temporaryDisplayables},e.prototype.eachPendingDisplayable=function(t){for(var e=this._cursor;e<this._displayables.length;e++)t&&t(this._displayables[e]);for(e=0;e<this._temporaryDisplayables.length;e++)t&&t(this._temporaryDisplayables[e])},e.prototype.update=function(){this.updateTransform();for(var t=this._cursor;t<this._displayables.length;t++){(e=this._displayables[t]).parent=this,e.update(),e.parent=null}for(t=0;t<this._temporaryDisplayables.length;t++){var e;(e=this._temporaryDisplayables[t]).parent=this,e.update(),e.parent=null}},e.prototype.getBoundingRect=function(){if(!this._rect){for(var t=new Pn(1/0,1/0,-1/0,-1/0),e=0;e<this._displayables.length;e++){var n=this._displayables[e],i=n.getBoundingRect().clone();n.needLocalTransform()&&i.applyTransform(n.getLocalTransform(Ql)),t.union(i)}this._rect=t}return this._rect},e.prototype.contain=function(t,e){var n=this.transformCoordToLocal(t,e);if(this.getBoundingRect().contain(n[0],n[1]))for(var i=0;i<this._displayables.length;i++){if(this._displayables[i].contain(t,e))return!0}return!1},e}(uo),eu=Math.max,nu=Math.min,iu={};function ru(t){return Na.extend(t)}var ou=function(t,e){var n=al(t,e);return function(t){function e(e){var i=t.call(this,e)||this;return i.applyTransform=n.applyTransform,i.buildPath=n.buildPath,i}return gt(e,t),e}(rl)};function au(t,e){return ou(t,e)}function su(t,e){iu[t]=e}function lu(t){if(iu.hasOwnProperty(t))return iu[t]}function uu(t,e,n,i){var r=sl(t,e);return n&&("center"===i&&(n=cu(n,r.getBoundingRect())),du(r,n)),r}function hu(t,e,n){var i=new Fa({style:{image:t,x:e.x,y:e.y,width:e.width,height:e.height},onload:function(t){if("center"===n){var r={width:t.width,height:t.height};i.setStyle(cu(e,r))}}});return i}function cu(t,e){var n,i=e.width/e.height,r=t.height*i;return n=r<=t.width?t.height:(r=t.width)/i,{x:t.x+t.width/2-r/2,y:t.y+t.height/2-n/2,width:r,height:n}}var pu=function(t,e){for(var n=[],i=t.length,r=0;r<i;r++){var o=t[r];o.path||o.createPathProxy(),o.shapeChanged()&&o.buildPath(o.path,o.shape,!0),n.push(o.path)}var a=new Na(e);return a.createPathProxy(),a.buildPath=function(t){if(ol(t)){t.appendPath(n);var e=t.getContext();e&&t.rebuildPath(e,1)}},a};function du(t,e){if(t.applyTransform){var n=t.getBoundingRect().calculateTransform(e);t.applyTransform(n)}}var fu=Ya;function gu(t,e,n,i,r,o,a){var s,l=!1;"function"==typeof r?(a=o,o=r,r=null):Y(r)&&(o=r.cb,a=r.during,l=r.isFrom,s=r.removeOpt,r=r.dataIndex);var u,h="update"===t,c="remove"===t;if(i&&i.ecModel){var p=i.ecModel.getUpdatePayload();u=p&&p.animation}var d=i&&i.isAnimationEnabled();if(c||e.stopAnimation("remove"),d){var f=void 0,g=void 0,y=void 0;u?(f=u.duration||0,g=u.easing||"cubicOut",y=u.delay||0):c?(f=Q((s=s||{}).duration,200),g=Q(s.easing,"cubicOut"),y=0):(f=i.getShallow(h?"animationDurationUpdate":"animationDuration"),g=i.getShallow(h?"animationEasingUpdate":"animationEasing"),y=i.getShallow(h?"animationDelayUpdate":"animationDelay")),"function"==typeof y&&(y=y(r,i.getAnimationDelayParams?i.getAnimationDelayParams(e,r):null)),"function"==typeof f&&(f=f(r)),f>0?l?e.animateFrom(n,{duration:f,delay:y||0,easing:g,done:o,force:!!o||!!a,scope:t,during:a}):e.animateTo(n,{duration:f,delay:y||0,easing:g,done:o,force:!!o||!!a,setToFinal:!0,scope:t,during:a}):(e.stopAnimation(),!l&&e.attr(n),o&&o())}else e.stopAnimation(),!l&&e.attr(n),a&&a(1),o&&o()}function yu(t,e,n,i,r,o){gu("update",t,e,n,i,r,o)}function vu(t,e,n,i,r,o){gu("init",t,e,n,i,r,o)}function mu(t,e,n,i,r,o){bu(t)||gu("remove",t,e,n,i,r,o)}function _u(t,e,n,i){t.removeTextContent(),t.removeTextGuideLine(),mu(t,{style:{opacity:0}},e,n,i)}function xu(t,e,n){function i(){t.parent&&t.parent.remove(t)}t.isGroup?t.traverse((function(t){t.isGroup||_u(t,e,n,i)})):_u(t,e,n,i)}function bu(t){if(!t.__zr)return!0;for(var e=0;e<t.animators.length;e++){if("remove"===t.animators[e].scope)return!0}return!1}function wu(t,e){for(var n=fe([]);t&&t!==e;)ye(n,t.getLocalTransform(),n),t=t.parent;return n}function Su(t,e,n){return e&&!L(e)&&(e=De.getLocalTransform(e)),n&&(e=xe([],e)),Rt([],t,e)}function Mu(t,e,n){var i=0===e[4]||0===e[5]||0===e[0]?1:Math.abs(2*e[4]/e[0]),r=0===e[4]||0===e[5]||0===e[2]?1:Math.abs(2*e[4]/e[2]),o=["left"===t?-i:"right"===t?i:0,"top"===t?-r:"bottom"===t?r:0];return o=Su(o,e,n),Math.abs(o[0])>Math.abs(o[1])?o[0]>0?"right":"left":o[1]>0?"bottom":"top"}function Iu(t){return!t.isGroup}function Tu(t,e,n){if(t&&e){var i,r=(i={},t.traverse((function(t){Iu(t)&&t.anid&&(i[t.anid]=t)})),i);e.traverse((function(t){if(Iu(t)&&t.anid){var e=r[t.anid];if(e){var i=o(t);t.attr(o(e)),yu(t,i,n,rs(t).dataIndex)}}}))}function o(t){var e={x:t.x,y:t.y,rotation:t.rotation};return function(t){return null!=t.shape}(t)&&(e.shape=M({},t.shape)),e}}function Cu(t,e){return P(t,(function(t){var n=t[0];n=eu(n,e.x),n=nu(n,e.x+e.width);var i=t[1];return i=eu(i,e.y),[n,i=nu(i,e.y+e.height)]}))}function Au(t,e){var n=eu(t.x,e.x),i=nu(t.x+t.width,e.x+e.width),r=eu(t.y,e.y),o=nu(t.y+t.height,e.y+e.height);if(i>=n&&o>=r)return{x:n,y:r,width:i-n,height:o-r}}function Du(t,e,n){var i=M({rectHover:!0},e),r=i.style={strokeNoScale:!0};if(n=n||{x:-1,y:-1,width:2,height:2},t)return 0===t.indexOf("image://")?(r.image=t.slice(8),I(r,n),new Fa(i)):uu(t.replace("path://",""),i,n,"center")}function Lu(t,e,n,i,r){for(var o=0,a=r[r.length-1];o<r.length;o++){var s=r[o];if(ku(t,e,n,i,s[0],s[1],a[0],a[1]))return!0;a=s}}function ku(t,e,n,i,r,o,a,s){var l,u=n-t,h=i-e,c=a-r,p=s-o,d=Pu(c,p,u,h);if((l=d)<=1e-6&&l>=-1e-6)return!1;var f=t-r,g=e-o,y=Pu(f,g,u,h)/d;if(y<0||y>1)return!1;var v=Pu(f,g,c,p)/d;return!(v<0||v>1)}function Pu(t,e,n,i){return t*i-n*e}su("circle",ul),su("ellipse",cl),su("sector",Tl),su("ring",Al),su("polygon",Pl),su("polyline",Rl),su("rect",Za),su("line",zl),su("bezierCurve",Gl),su("arc",Wl);var Ou=Object.freeze({__proto__:null,extendShape:ru,extendPath:au,registerShape:su,getShapeClass:lu,makePath:uu,makeImage:hu,mergePath:pu,resizePath:du,subPixelOptimizeLine:function(t){return Ha(t.shape,t.shape,t.style),t},subPixelOptimizeRect:function(t){return Wa(t.shape,t.shape,t.style),t},subPixelOptimize:fu,updateProps:yu,initProps:vu,removeElement:mu,removeElementWithFadeOut:xu,isElementRemoved:bu,getTransform:wu,applyTransform:Su,transformDirection:Mu,groupTransition:Tu,clipPointsByRect:Cu,clipRectByRect:Au,createIcon:Du,linePolygonIntersect:Lu,lineLineIntersect:ku,Group:Pi,Image:Fa,Text:Ka,Circle:ul,Ellipse:cl,Sector:Tl,Ring:Al,Polygon:Pl,Polyline:Rl,Rect:Za,Line:zl,BezierCurve:Gl,Arc:Wl,IncrementalDisplayable:tu,CompoundPath:Yl,LinearGradient:Ul,RadialGradient:Zl,BoundingRect:Pn,OrientedBoundingRect:Jl,Point:Sn,Path:Na}),Ru={};function Nu(t,e){for(var n=0;n<ls.length;n++){var i=ls[n],r=e[i],o=t.ensureState(i);o.style=o.style||{},o.style.text=r}var a=t.currentStates.slice();t.clearStates(!0),t.setStyle({text:e.normal}),t.useStates(a,!0)}function Eu(t,e,n){var i,r=t.labelFetcher,o=t.labelDataIndex,a=t.labelDimIndex,s=e.normal;r&&(i=r.getFormattedLabel(o,"normal",null,a,s&&s.get("formatter"),null!=n?{interpolatedValue:n}:null)),null==i&&(i=F(t.defaultText)?t.defaultText(o,t,n):t.defaultText);for(var l={normal:i},u=0;u<ls.length;u++){var h=ls[u],c=e[h];l[h]=Q(r?r.getFormattedLabel(o,h,null,a,c&&c.get("formatter")):null,i)}return l}function zu(t,e,n,i){n=n||Ru;for(var r=t instanceof Ka,o=!1,a=0;a<us.length;a++){if((p=e[us[a]])&&p.getShallow("show")){o=!0;break}}var s=r?t:t.getTextContent();if(o){r||(s||(s=new Ka,t.setTextContent(s)),t.stateProxy&&(s.stateProxy=t.stateProxy));var l=Eu(n,e),u=e.normal,h=!!u.getShallow("show"),c=Vu(u,i&&i.normal,n,!1,!r);c.text=l.normal,r||t.setTextConfig(Fu(u,n,!1));for(a=0;a<ls.length;a++){var p,d=ls[a];if(p=e[d]){var f=s.ensureState(d),g=!!Q(p.getShallow("show"),h);if(g!==h&&(f.ignore=!g),f.style=Vu(p,i&&i[d],n,!0,!r),f.style.text=l[d],!r)t.ensureState(d).textConfig=Fu(p,n,!0)}}s.silent=!!u.getShallow("silent"),null!=s.style.x&&(c.x=s.style.x),null!=s.style.y&&(c.y=s.style.y),s.ignore=!h,s.useStyle(c),s.dirty(),n.enableTextSetter&&(Uu(s).setLabelText=function(t){var i=Eu(n,e,t);Nu(s,i)})}else s&&(s.ignore=!0);t.dirty()}function Bu(t,e){e=e||"label";for(var n={normal:t.getModel(e)},i=0;i<ls.length;i++){var r=ls[i];n[r]=t.getModel([r,e])}return n}function Vu(t,e,n,i,r){var o={};return function(t,e,n,i,r){n=n||Ru;var o,a=e.ecModel,s=a&&a.option.textStyle,l=function(t){var e;for(;t&&t!==t.ecModel;){var n=(t.option||Ru).rich;if(n){e=e||{};for(var i=E(n),r=0;r<i.length;r++){e[i[r]]=1}}t=t.parentModel}return e}(e);if(l)for(var u in o={},l)if(l.hasOwnProperty(u)){var h=e.getModel(["rich",u]);Yu(o[u]={},h,s,n,i,r,!1,!0)}o&&(t.rich=o);var c=e.get("overflow");c&&(t.overflow=c);var p=e.get("minMargin");null!=p&&(t.margin=p);Yu(t,e,s,n,i,r,!0,!1)}(o,t,n,i,r),e&&M(o,e),o}function Fu(t,e,n){e=e||{};var i,r={},o=t.getShallow("rotate"),a=Q(t.getShallow("distance"),n?null:5),s=t.getShallow("offset");return"outside"===(i=t.getShallow("position")||(n?null:"inside"))&&(i=e.defaultOutsidePosition||"top"),null!=i&&(r.position=i),null!=s&&(r.offset=s),null!=o&&(o*=Math.PI/180,r.rotation=o),null!=a&&(r.distance=a),r.outsideFill="inherit"===t.get("color")?e.inheritColor||null:"auto",r}var Gu=["fontStyle","fontWeight","fontSize","fontFamily","textShadowColor","textShadowBlur","textShadowOffsetX","textShadowOffsetY"],Hu=["align","lineHeight","width","height","tag","verticalAlign"],Wu=["padding","borderWidth","borderRadius","borderDashOffset","backgroundColor","borderColor","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"];function Yu(t,e,n,i,r,o,a,s){n=!r&&n||Ru;var l=i&&i.inheritColor,u=e.getShallow("color"),h=e.getShallow("textBorderColor"),c=Q(e.getShallow("opacity"),n.opacity);"inherit"!==u&&"auto"!==u||(u=l||null),"inherit"!==h&&"auto"!==h||(h=l||null),o||(u=u||n.color,h=h||n.textBorderColor),null!=u&&(t.fill=u),null!=h&&(t.stroke=h);var p=Q(e.getShallow("textBorderWidth"),n.textBorderWidth);null!=p&&(t.lineWidth=p);var d=Q(e.getShallow("textBorderType"),n.textBorderType);null!=d&&(t.lineDash=d);var f=Q(e.getShallow("textBorderDashOffset"),n.textBorderDashOffset);null!=f&&(t.lineDashOffset=f),r||null!=c||s||(c=i&&i.defaultOpacity),null!=c&&(t.opacity=c),r||o||null==t.fill&&i.inheritColor&&(t.fill=i.inheritColor);for(var g=0;g<Gu.length;g++){var y=Gu[g];null!=(m=Q(e.getShallow(y),n[y]))&&(t[y]=m)}for(g=0;g<Hu.length;g++){y=Hu[g];null!=(m=e.getShallow(y))&&(t[y]=m)}if(null==t.verticalAlign){var v=e.getShallow("baseline");null!=v&&(t.verticalAlign=v)}if(!a||!i.disableBox){for(g=0;g<Wu.length;g++){var m;y=Wu[g];null!=(m=e.getShallow(y))&&(t[y]=m)}var _=e.getShallow("borderType");null!=_&&(t.borderDash=_),"auto"!==t.backgroundColor&&"inherit"!==t.backgroundColor||!l||(t.backgroundColor=l),"auto"!==t.borderColor&&"inherit"!==t.borderColor||!l||(t.borderColor=l)}}function Xu(t,e){var n=e&&e.getModel("textStyle");return rt([t.fontStyle||n&&n.getShallow("fontStyle")||"",t.fontWeight||n&&n.getShallow("fontWeight")||"",(t.fontSize||n&&n.getShallow("fontSize")||12)+"px",t.fontFamily||n&&n.getShallow("fontFamily")||"sans-serif"].join(" "))}var Uu=br();function Zu(t,e,n,i){if(t){var r=Uu(t);r.prevValue=r.value,r.value=n;var o=e.normal;r.valueAnimation=o.get("valueAnimation"),r.valueAnimation&&(r.precision=o.get("precision"),r.defaultInterpolatedText=i,r.statesModels=e)}}function ju(t,e,n,i,r){var o=Uu(t);if(o.valueAnimation){var a=o.defaultInterpolatedText,s=Q(o.interpolatedValue,o.prevValue),l=o.value;(null==s?vu:yu)(t,{},i,e,null,(function(i){var u=Dr(n,o.precision,s,l,i);o.interpolatedValue=1===i?null:u;var h=Eu({labelDataIndex:e,labelFetcher:r,defaultText:a?a(u):u+""},o.statesModels,u);Nu(t,h)}))}}var qu,Ku,$u=["textStyle","color"],Ju=new Ka,Qu=function(){function t(){}return t.prototype.getTextColor=function(t){var e=this.ecModel;return this.getShallow("color")||(!t&&e?e.get($u):null)},t.prototype.getFont=function(){return Xu({fontStyle:this.getShallow("fontStyle"),fontWeight:this.getShallow("fontWeight"),fontSize:this.getShallow("fontSize"),fontFamily:this.getShallow("fontFamily")},this.ecModel)},t.prototype.getTextRect=function(t){return Ju.useStyle({text:t,fontStyle:this.getShallow("fontStyle"),fontWeight:this.getShallow("fontWeight"),fontSize:this.getShallow("fontSize"),fontFamily:this.getShallow("fontFamily"),verticalAlign:this.getShallow("verticalAlign")||this.getShallow("baseline"),padding:this.getShallow("padding"),lineHeight:this.getShallow("lineHeight"),rich:this.getShallow("rich")}),Ju.update(),Ju.getBoundingRect()},t}(),th=[["lineWidth","width"],["stroke","color"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"],["lineDash","type"],["lineDashOffset","dashOffset"],["lineCap","cap"],["lineJoin","join"],["miterLimit"]],eh=Vr(th),nh=function(){function t(){}return t.prototype.getLineStyle=function(t){return eh(this,t)},t}(),ih=[["fill","color"],["stroke","borderColor"],["lineWidth","borderWidth"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"],["lineDash","borderType"],["lineDashOffset","borderDashOffset"],["lineCap","borderCap"],["lineJoin","borderJoin"],["miterLimit","borderMiterLimit"]],rh=Vr(ih),oh=function(){function t(){}return t.prototype.getItemStyle=function(t,e){return rh(this,t,e)},t}(),ah=function(){function t(t,e,n){this.parentModel=e,this.ecModel=n,this.option=t}return t.prototype.init=function(t,e,n){for(var i=[],r=3;r<arguments.length;r++)i[r-3]=arguments[r]},t.prototype.mergeOption=function(t,e){w(this.option,t,!0)},t.prototype.get=function(t,e){return null==t?this.option:this._doGet(this.parsePath(t),!e&&this.parentModel)},t.prototype.getShallow=function(t,e){var n=this.option,i=null==n?n:n[t];if(null==i&&!e){var r=this.parentModel;r&&(i=r.getShallow(t))}return i},t.prototype.getModel=function(e,n){var i=null!=e,r=i?this.parsePath(e):null;return new t(i?this._doGet(r):this.option,n=n||this.parentModel&&this.parentModel.getModel(this.resolveParentPath(r)),this.ecModel)},t.prototype.isEmpty=function(){return null==this.option},t.prototype.restoreData=function(){},t.prototype.clone=function(){return new(0,this.constructor)(b(this.option))},t.prototype.parsePath=function(t){return"string"==typeof t?t.split("."):t},t.prototype.resolveParentPath=function(t){return t},t.prototype.isAnimationEnabled=function(){if(!o.node&&this.option){if(null!=this.option.animation)return!!this.option.animation;if(this.parentModel)return this.parentModel.isAnimationEnabled()}},t.prototype._doGet=function(t,e){var n=this.option;if(!t)return n;for(var i=0;i<t.length&&(!t[i]||null!=(n=n&&"object"==typeof n?n[t[i]]:null));i++);return null==n&&e&&(n=e._doGet(this.resolveParentPath(t),e.parentModel)),n},t}();Pr(ah),qu=ah,Ku=["__\0is_clz",Nr++].join("_"),qu.prototype[Ku]=!0,qu.isInstance=function(t){return!(!t||!t[Ku])},D(ah,nh),D(ah,oh),D(ah,Gr),D(ah,Qu);var sh=Math.round(10*Math.random());function lh(t){return[t||"",sh++].join("_")}function uh(t,e){return w(w({},t,!0),e,!0)}var hh={},ch={},ph=o.domSupported&&(document.documentElement.lang||navigator.language||navigator.browserLanguage).toUpperCase().indexOf("ZH")>-1?"ZH":"EN";function dh(t,e){t=t.toUpperCase(),ch[t]=new ah(e),hh[t]=e}dh("EN",{time:{month:["January","February","March","April","May","June","July","August","September","October","November","December"],monthAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayOfWeekAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},legend:{selector:{all:"All",inverse:"Inv"}},toolbox:{brush:{title:{rect:"Box Select",polygon:"Lasso Select",lineX:"Horizontally Select",lineY:"Vertically Select",keep:"Keep Selections",clear:"Clear Selections"}},dataView:{title:"Data View",lang:["Data View","Close","Refresh"]},dataZoom:{title:{zoom:"Zoom",back:"Zoom Reset"}},magicType:{title:{line:"Switch to Line Chart",bar:"Switch to Bar Chart",stack:"Stack",tiled:"Tile"}},restore:{title:"Restore"},saveAsImage:{title:"Save as Image",lang:["Right Click to Save Image"]}},series:{typeNames:{pie:"Pie chart",bar:"Bar chart",line:"Line chart",scatter:"Scatter plot",effectScatter:"Ripple scatter plot",radar:"Radar chart",tree:"Tree",treemap:"Treemap",boxplot:"Boxplot",candlestick:"Candlestick",k:"K line chart",heatmap:"Heat map",map:"Map",parallel:"Parallel coordinate map",lines:"Line graph",graph:"Relationship graph",sankey:"Sankey diagram",funnel:"Funnel chart",gauge:"Guage",pictorialBar:"Pictorial bar",themeRiver:"Theme River Map",sunburst:"Sunburst"}},aria:{general:{withTitle:'This is a chart about "{title}"',withoutTitle:"This is a chart"},series:{single:{prefix:"",withName:" with type {seriesType} named {seriesName}.",withoutName:" with type {seriesType}."},multiple:{prefix:". It consists of {seriesCount} series count.",withName:" The {seriesId} series is a {seriesType} representing {seriesName}.",withoutName:" The {seriesId} series is a {seriesType}.",separator:{middle:"",end:""}}},data:{allData:"The data is as follows: ",partialData:"The first {displayCnt} items are: ",withName:"the data for {name} is {value}",withoutName:"{value}",separator:{middle:", ",end:". "}}}}),dh("ZH",{time:{month:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthAbbr:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayOfWeekAbbr:["日","一","二","三","四","五","六"]},legend:{selector:{all:"全选",inverse:"反选"}},toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}});var fh={year:"{yyyy}",month:"{MMM}",day:"{d}",hour:"{HH}:{mm}",minute:"{HH}:{mm}",second:"{HH}:{mm}:{ss}",millisecond:"{hh}:{mm}:{ss} {SSS}",none:"{yyyy}-{MM}-{dd} {hh}:{mm}:{ss} {SSS}"},gh={year:"{yyyy}",month:"{yyyy}-{MM}",day:"{yyyy}-{MM}-{dd}",hour:"{yyyy}-{MM}-{dd} "+fh.hour,minute:"{yyyy}-{MM}-{dd} "+fh.minute,second:"{yyyy}-{MM}-{dd} "+fh.second,millisecond:fh.none},yh=["year","month","day","hour","minute","second","millisecond"],vh=["year","half-year","quarter","month","week","half-week","day","half-day","quarter-day","hour","minute","second","millisecond"];function mh(t,e){return"0000".substr(0,e-(t+="").length)+t}function _h(t){switch(t){case"half-year":case"quarter":return"month";case"week":case"half-week":return"day";case"half-day":case"quarter-day":return"hour";default:return t}}function xh(t){return t===_h(t)}function bh(t,e,n,i){var r=$i(t),o=r[Mh(n)](),a=r[Ih(n)]()+1,s=Math.floor((a-1)/4)+1,l=r[Th(n)](),u=r["get"+(n?"UTC":"")+"Day"](),h=r[Ch(n)](),c=(h-1)%12+1,p=r[Ah(n)](),d=r[Dh(n)](),f=r[Lh(n)](),g=(i instanceof ah?i:function(t){return ch[t]}(i||ph)||ch.EN).getModel("time"),y=g.get("month"),v=g.get("monthAbbr"),m=g.get("dayOfWeek"),_=g.get("dayOfWeekAbbr");return(e||"").replace(/{yyyy}/g,o+"").replace(/{yy}/g,o%100+"").replace(/{Q}/g,s+"").replace(/{MMMM}/g,y[a-1]).replace(/{MMM}/g,v[a-1]).replace(/{MM}/g,mh(a,2)).replace(/{M}/g,a+"").replace(/{dd}/g,mh(l,2)).replace(/{d}/g,l+"").replace(/{eeee}/g,m[u]).replace(/{ee}/g,_[u]).replace(/{e}/g,u+"").replace(/{HH}/g,mh(h,2)).replace(/{H}/g,h+"").replace(/{hh}/g,mh(c+"",2)).replace(/{h}/g,c+"").replace(/{mm}/g,mh(p,2)).replace(/{m}/g,p+"").replace(/{ss}/g,mh(d,2)).replace(/{s}/g,d+"").replace(/{SSS}/g,mh(f,3)).replace(/{S}/g,f+"")}function wh(t,e){var n=$i(t),i=n[Ih(e)]()+1,r=n[Th(e)](),o=n[Ch(e)](),a=n[Ah(e)](),s=n[Dh(e)](),l=0===n[Lh(e)](),u=l&&0===s,h=u&&0===a,c=h&&0===o,p=c&&1===r;return p&&1===i?"year":p?"month":c?"day":h?"hour":u?"minute":l?"second":"millisecond"}function Sh(t,e,n){var i="number"==typeof t?$i(t):t;switch(e=e||wh(t,n)){case"year":return i[Mh(n)]();case"half-year":return i[Ih(n)]()>=6?1:0;case"quarter":return Math.floor((i[Ih(n)]()+1)/4);case"month":return i[Ih(n)]();case"day":return i[Th(n)]();case"half-day":return i[Ch(n)]()/24;case"hour":return i[Ch(n)]();case"minute":return i[Ah(n)]();case"second":return i[Dh(n)]();case"millisecond":return i[Lh(n)]()}}function Mh(t){return t?"getUTCFullYear":"getFullYear"}function Ih(t){return t?"getUTCMonth":"getMonth"}function Th(t){return t?"getUTCDate":"getDate"}function Ch(t){return t?"getUTCHours":"getHours"}function Ah(t){return t?"getUTCMinutes":"getMinutes"}function Dh(t){return t?"getUTCSeconds":"getSeconds"}function Lh(t){return t?"getUTCSeconds":"getSeconds"}function kh(t){return t?"setUTCFullYear":"setFullYear"}function Ph(t){return t?"setUTCMonth":"setMonth"}function Oh(t){return t?"setUTCDate":"setDate"}function Rh(t){return t?"setUTCHours":"setHours"}function Nh(t){return t?"setUTCMinutes":"setMinutes"}function Eh(t){return t?"setUTCSeconds":"setSeconds"}function zh(t){return t?"setUTCSeconds":"setSeconds"}function Bh(t){if(!rr(t))return G(t)?t:"-";var e=(t+"").split(".");return e[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(e.length>1?"."+e[1]:"")}function Vh(t,e){return t=(t||"").toLowerCase().replace(/-(.)/g,(function(t,e){return e.toUpperCase()})),e&&t&&(t=t.charAt(0).toUpperCase()+t.slice(1)),t}var Fh=nt,Gh=/([&<>"'])/g,Hh={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function Wh(t){return null==t?"":(t+"").replace(Gh,(function(t,e){return Hh[e]}))}function Yh(t,e,n){function i(t){return t&&rt(t)?t:"-"}function r(t){return!(null==t||isNaN(t)||!isFinite(t))}var o="time"===e,a=t instanceof Date;if(o||a){var s=o?$i(t):t;if(!isNaN(+s))return bh(s,"yyyy-MM-dd hh:mm:ss",n);if(a)return"-"}if("ordinal"===e)return H(t)?i(t):W(t)&&r(t)?t+"":"-";var l=ir(t);return r(l)?Bh(l):H(t)?i(t):"-"}var Xh=["a","b","c","d","e","f","g"],Uh=function(t,e){return"{"+t+(null==e?"":e)+"}"};function Zh(t,e,n){V(e)||(e=[e]);var i=e.length;if(!i)return"";for(var r=e[0].$vars||[],o=0;o<r.length;o++){var a=Xh[o];t=t.replace(Uh(a),Uh(a,0))}for(var s=0;s<i;s++)for(var l=0;l<r.length;l++){var u=e[s][r[l]];t=t.replace(Uh(Xh[l],s),n?Wh(u):u)}return t}function jh(t,e){var n=G(t)?{color:t,extraCssText:e}:t||{},i=n.color,r=n.type;e=n.extraCssText;var o=n.renderMode||"html";return i?"html"===o?"subItem"===r?'<span style="display:inline-block;vertical-align:middle;margin-right:8px;margin-left:3px;border-radius:4px;width:4px;height:4px;background-color:'+Wh(i)+";"+(e||"")+'"></span>':'<span style="display:inline-block;margin-right:4px;border-radius:10px;width:10px;height:10px;background-color:'+Wh(i)+";"+(e||"")+'"></span>':{renderMode:o,content:"{"+(n.markerId||"markerX")+"|}  ",style:"subItem"===r?{width:4,height:4,borderRadius:2,backgroundColor:i}:{width:10,height:10,borderRadius:5,backgroundColor:i}}:""}function qh(t,e){return e=e||"transparent",G(t)?t:Y(t)&&t.colorStops&&(t.colorStops[0]||{}).color||e}function Kh(t,e){if("_blank"===e||"blank"===e){var n=window.open();n.opener=null,n.location.href=t}else window.open(t,e)}var $h=k,Jh=["left","right","top","bottom","width","height"],Qh=[["width","left","right"],["height","top","bottom"]];function tc(t,e,n,i,r){var o=0,a=0;null==i&&(i=1/0),null==r&&(r=1/0);var s=0;e.eachChild((function(l,u){var h,c,p=l.getBoundingRect(),d=e.childAt(u+1),f=d&&d.getBoundingRect();if("horizontal"===t){var g=p.width+(f?-f.x+p.x:0);(h=o+g)>i||l.newline?(o=0,h=g,a+=s+n,s=p.height):s=Math.max(s,p.height)}else{var y=p.height+(f?-f.y+p.y:0);(c=a+y)>r||l.newline?(o+=s+n,a=0,c=y,s=p.width):s=Math.max(s,p.width)}l.newline||(l.x=o,l.y=a,l.markRedraw(),"horizontal"===t?o=h+n:a=c+n)}))}var ec=tc;B(tc,"vertical"),B(tc,"horizontal");function nc(t,e,n){n=Fh(n||0);var i=e.width,r=e.height,o=Gi(t.left,i),a=Gi(t.top,r),s=Gi(t.right,i),l=Gi(t.bottom,r),u=Gi(t.width,i),h=Gi(t.height,r),c=n[2]+n[0],p=n[1]+n[3],d=t.aspect;switch(isNaN(u)&&(u=i-s-p-o),isNaN(h)&&(h=r-l-c-a),null!=d&&(isNaN(u)&&isNaN(h)&&(d>i/r?u=.8*i:h=.8*r),isNaN(u)&&(u=d*h),isNaN(h)&&(h=u/d)),isNaN(o)&&(o=i-s-u-p),isNaN(a)&&(a=r-l-h-c),t.left||t.right){case"center":o=i/2-u/2-n[3];break;case"right":o=i-u-p}switch(t.top||t.bottom){case"middle":case"center":a=r/2-h/2-n[0];break;case"bottom":a=r-h-c}o=o||0,a=a||0,isNaN(u)&&(u=i-p-o-(s||0)),isNaN(h)&&(h=r-c-a-(l||0));var f=new Pn(o+n[3],a+n[0],u,h);return f.margin=n,f}function ic(t,e,n,i,r){var o=!r||!r.hv||r.hv[0],a=!r||!r.hv||r.hv[1],s=r&&r.boundingMode||"all";if(o||a){var l;if("raw"===s)l="group"===t.type?new Pn(0,0,+e.width||0,+e.height||0):t.getBoundingRect();else if(l=t.getBoundingRect(),t.needLocalTransform()){var u=t.getLocalTransform();(l=l.clone()).applyTransform(u)}var h=nc(I({width:l.width,height:l.height},e),n,i),c=o?h.x-l.x:0,p=a?h.y-l.y:0;"raw"===s?(t.x=c,t.y=p):(t.x+=c,t.y+=p),t.markRedraw()}}function rc(t){var e=t.layoutMode||t.constructor.layoutMode;return Y(e)?e:e?{type:e}:null}function oc(t,e,n){var i=n&&n.ignoreSize;!V(i)&&(i=[i,i]);var r=a(Qh[0],0),o=a(Qh[1],1);function a(n,r){var o={},a=0,u={},h=0;if($h(n,(function(e){u[e]=t[e]})),$h(n,(function(t){s(e,t)&&(o[t]=u[t]=e[t]),l(o,t)&&a++,l(u,t)&&h++})),i[r])return l(e,n[1])?u[n[2]]=null:l(e,n[2])&&(u[n[1]]=null),u;if(2!==h&&a){if(a>=2)return o;for(var c=0;c<n.length;c++){var p=n[c];if(!s(o,p)&&s(t,p)){o[p]=t[p];break}}return o}return u}function s(t,e){return t.hasOwnProperty(e)}function l(t,e){return null!=t[e]&&"auto"!==t[e]}function u(t,e,n){$h(t,(function(t){e[t]=n[t]}))}u(Qh[0],t,r),u(Qh[1],t,o)}function ac(t){return sc({},t)}function sc(t,e){return e&&t&&$h(Jh,(function(n){e.hasOwnProperty(n)&&(t[n]=e[n])})),t}var lc=br(),uc=function(t){function n(e,n,i){var r=t.call(this,e,n,i)||this;return r.uid=lh("ec_cpt_model"),r}return e(n,t),n.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n)},n.prototype.mergeDefaultAndTheme=function(t,e){var n=rc(this),i=n?ac(t):{};w(t,e.getTheme().get(this.mainType)),w(t,this.getDefaultOption()),n&&oc(t,i,n)},n.prototype.mergeOption=function(t,e){w(this.option,t,!0);var n=rc(this);n&&oc(this.option,t,n)},n.prototype.optionUpdated=function(t,e){},n.prototype.getDefaultOption=function(){var t=this.constructor;if(!function(t){return!(!t||!t.___EC__EXTENDED_CLASS___)}(t))return t.defaultOption;var e=lc(this);if(!e.defaultOption){for(var n=[],i=t;i;){var r=i.prototype.defaultOption;r&&n.push(r),i=i.superClass}for(var o={},a=n.length-1;a>=0;a--)o=w(o,n[a],!0);e.defaultOption=o}return e.defaultOption},n.prototype.getReferringComponents=function(t,e){var n=t+"Index",i=t+"Id";return Tr(this.ecModel,t,{index:this.get(n,!0),id:this.get(i,!0)},e)},n.prototype.getBoxLayoutParams=function(){var t=this;return{left:t.get("left"),top:t.get("top"),right:t.get("right"),bottom:t.get("bottom"),width:t.get("width"),height:t.get("height")}},n.protoInitialize=function(){var t=n.prototype;t.type="component",t.id="",t.name="",t.mainType="",t.subType="",t.componentIndex=0}(),n}(ah);Rr(uc,ah),Br(uc),function(t){var e={};t.registerSubTypeDefaulter=function(t,n){var i=kr(t);e[i.main]=n},t.determineSubType=function(n,i){var r=i.type;if(!r){var o=kr(n).main;t.hasSubTypes(n)&&e[o]&&(r=e[o](i))}return r}}(uc),function(t,e){function n(t,e){return t[e]||(t[e]={predecessor:[],successor:[]}),t[e]}t.topologicalTravel=function(t,i,r,o){if(t.length){var a=function(t){var i={},r=[];return k(t,(function(o){var a=n(i,o),s=function(t,e){var n=[];return k(t,(function(t){C(e,t)>=0&&n.push(t)})),n}(a.originalDeps=e(o),t);a.entryCount=s.length,0===a.entryCount&&r.push(o),k(s,(function(t){C(a.predecessor,t)<0&&a.predecessor.push(t);var e=n(i,t);C(e.successor,t)<0&&e.successor.push(o)}))})),{graph:i,noEntryList:r}}(i),s=a.graph,l=a.noEntryList,u={};for(k(t,(function(t){u[t]=!0}));l.length;){var h=l.pop(),c=s[h],p=!!u[h];p&&(r.call(o,h,c.originalDeps.slice()),delete u[h]),k(c.successor,p?f:d)}k(u,(function(){var t="";throw new Error(t)}))}function d(t){s[t].entryCount--,0===s[t].entryCount&&l.push(t)}function f(t){u[t]=!0,d(t)}}}(uc,(function(t){var e=[];k(uc.getClassesByMainType(t),(function(t){e=e.concat(t.dependencies||t.prototype.dependencies||[])})),e=P(e,(function(t){return kr(t).main})),"dataset"!==t&&C(e,"dataset")<=0&&e.unshift("dataset");return e}));var hc="";"undefined"!=typeof navigator&&(hc=navigator.platform||"");var cc="rgba(0, 0, 0, 0.2)",pc={darkMode:"auto",color:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],gradientColor:["#f6efa6","#d88273","#bf444c"],aria:{decal:{decals:[{color:cc,dashArrayX:[1,0],dashArrayY:[2,5],symbolSize:1,rotation:Math.PI/6},{color:cc,symbol:"circle",dashArrayX:[[8,8],[0,8,8,0]],dashArrayY:[6,0],symbolSize:.8},{color:cc,dashArrayX:[1,0],dashArrayY:[4,3],rotation:-Math.PI/4},{color:cc,dashArrayX:[[6,6],[0,6,6,0]],dashArrayY:[6,0]},{color:cc,dashArrayX:[[1,0],[1,6]],dashArrayY:[1,0,6,0],rotation:Math.PI/4},{color:cc,symbol:"triangle",dashArrayX:[[9,9],[0,9,9,0]],dashArrayY:[7,2],symbolSize:.75}]}},textStyle:{fontFamily:hc.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,stateAnimation:{duration:300,easing:"cubicOut"},animation:"auto",animationDuration:1e3,animationDurationUpdate:500,animationEasing:"cubicInOut",animationEasingUpdate:"cubicInOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1},dc=lt(["tooltip","label","itemName","itemId","seriesName"]),fc=1,gc=2,yc=3,vc=br();function mc(t,e,n){var i={},r=xc(e);if(!r||!t)return i;var o,a,s=[],l=[],u=e.ecModel,h=vc(u).datasetMap,c=r.uid+"_"+n.seriesLayoutBy;k(t=t.slice(),(function(e,n){var r=Y(e)?e:t[n]={name:e};"ordinal"===r.type&&null==o&&(o=n,a=f(r)),i[r.name]=[]}));var p=h.get(c)||h.set(c,{categoryWayDim:a,valueWayDim:0});function d(t,e,n){for(var i=0;i<n;i++)t.push(e+i)}function f(t){var e=t.dimsDef;return e?e.length:1}return k(t,(function(t,e){var n=t.name,r=f(t);if(null==o){var a=p.valueWayDim;d(i[n],a,r),d(l,a,r),p.valueWayDim+=r}else if(o===e)d(i[n],0,r),d(s,0,r);else{a=p.categoryWayDim;d(i[n],a,r),d(l,a,r),p.categoryWayDim+=r}})),s.length&&(i.itemName=s),l.length&&(i.seriesName=l),i}function _c(t,e,n){var i={};if(!xc(t))return i;var r,o=e.sourceFormat,a=e.dimensionsDefine;"objectRows"!==o&&"keyedColumns"!==o||k(a,(function(t,e){"name"===(Y(t)?t.name:t)&&(r=e)}));var s=function(){for(var t={},i={},s=[],l=0,u=Math.min(5,n);l<u;l++){var h=wc(e.data,o,e.seriesLayoutBy,a,e.startIndex,l);s.push(h);var c=h===yc;if(c&&null==t.v&&l!==r&&(t.v=l),(null==t.n||t.n===t.v||!c&&s[t.n]===yc)&&(t.n=l),p(t)&&s[t.n]!==yc)return t;c||(h===gc&&null==i.v&&l!==r&&(i.v=l),null!=i.n&&i.n!==i.v||(i.n=l))}function p(t){return null!=t.v&&null!=t.n}return p(t)?t:p(i)?i:null}();if(s){i.value=[s.v];var l=null!=r?r:s.n;i.itemName=[l],i.seriesName=[l]}return i}function xc(t){if(!t.get("data",!0))return Tr(t.ecModel,"dataset",{index:t.get("datasetIndex",!0),id:t.get("datasetId",!0)},Mr).models[0]}function bc(t,e){return wc(t.data,t.sourceFormat,t.seriesLayoutBy,t.dimensionsDefine,t.startIndex,e)}function wc(t,e,n,i,r,o){var a,s,l;if(U(t))return yc;if(i){var u=i[o];Y(u)?(s=u.name,l=u.type):G(u)&&(s=u)}if(null!=l)return"ordinal"===l?fc:yc;if("arrayRows"===e){var h=t;if("row"===n){for(var c=h[o],p=0;p<(c||[]).length&&p<5;p++)if(null!=(a=m(c[r+p])))return a}else for(p=0;p<h.length&&p<5;p++){var d=h[r+p];if(d&&null!=(a=m(d[o])))return a}}else if("objectRows"===e){var f=t;if(!s)return yc;for(p=0;p<f.length&&p<5;p++){if((y=f[p])&&null!=(a=m(y[s])))return a}}else if("keyedColumns"===e){if(!s)return yc;if(!(c=t[s])||U(c))return yc;for(p=0;p<c.length&&p<5;p++)if(null!=(a=m(c[p])))return a}else if("original"===e){var g=t;for(p=0;p<g.length&&p<5;p++){var y,v=dr(y=g[p]);if(!V(v))return yc;if(null!=(a=m(v[o])))return a}}function m(t){var e=G(t);return null!=t&&isFinite(t)&&""!==t?e?gc:yc:e&&"-"!==t?fc:void 0}return yc}var Sc=lt();var Mc,Ic,Tc,Cc=br(),Ac=br(),Dc=function(){function t(){}return t.prototype.getColorFromPalette=function(t,e,n){var i=hr(this.get("color",!0)),r=this.get("colorLayer",!0);return kc(this,Cc,i,r,t,e,n)},t.prototype.clearColorPalette=function(){!function(t,e){e(t).paletteIdx=0,e(t).paletteNameMap={}}(this,Cc)},t}();function Lc(t,e,n,i){var r=hr(t.get(["aria","decal","decals"]));return kc(t,Ac,r,null,e,n,i)}function kc(t,e,n,i,r,o,a){var s=e(o=o||t),l=s.paletteIdx||0,u=s.paletteNameMap=s.paletteNameMap||{};if(u.hasOwnProperty(r))return u[r];var h=null!=a&&i?function(t,e){for(var n=t.length,i=0;i<n;i++)if(t[i].length>e)return t[i];return t[n-1]}(i,a):n;if((h=h||n)&&h.length){var c=h[l];return r&&(u[r]=c),s.paletteIdx=(l+1)%h.length,c}}var Pc=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.init=function(t,e,n,i,r,o){i=i||{},this.option=null,this._theme=new ah(i),this._locale=new ah(r),this._optionManager=o},n.prototype.setOption=function(t,e,n){var i=Nc(e);this._optionManager.setOption(t,n,i),this._resetOption(null,i)},n.prototype.resetOption=function(t,e){return this._resetOption(t,Nc(e))},n.prototype._resetOption=function(t,e){var n=!1,i=this._optionManager;if(!t||"recreate"===t){var r=i.mountOption("recreate"===t);this.option&&"recreate"!==t?(this.restoreData(),this._mergeOption(r,e)):Tc(this,r),n=!0}if("timeline"!==t&&"media"!==t||this.restoreData(),!t||"recreate"===t||"timeline"===t){var o=i.getTimelineOption(this);o&&(n=!0,this._mergeOption(o,e))}if(!t||"recreate"===t||"media"===t){var a=i.getMediaOption(this);a.length&&k(a,(function(t){n=!0,this._mergeOption(t,e)}),this)}return n},n.prototype.mergeOption=function(t){this._mergeOption(t,null)},n.prototype._mergeOption=function(t,e){var n=this.option,i=this._componentsMap,r=this._componentsCount,o=[],a=lt(),s=e&&e.replaceMergeMainTypeMap;vc(this).datasetMap=lt(),k(t,(function(t,e){null!=t&&(uc.hasClass(e)?e&&(o.push(e),a.set(e,!0)):n[e]=null==n[e]?b(t):w(n[e],t,!0))})),s&&s.each((function(t,e){uc.hasClass(e)&&!a.get(e)&&(o.push(e),a.set(e,!0))})),uc.topologicalTravel(o,uc.getAllClassMainTypes(),(function(e){var o=function(t,e,n){var i=Sc.get(e);if(!i)return n;var r=i(t);return r?n.concat(r):n}(this,e,hr(t[e])),a=i.get(e),l=a?s&&s.get(e)?"replaceMerge":"normalMerge":"replaceAll",u=fr(a,o,l);(function(t,e,n){k(t,(function(t){var i=t.newOption;Y(i)&&(t.keyInfo.mainType=e,t.keyInfo.subType=function(t,e,n,i){return e.type?e.type:n?n.subType:i.determineSubType(t,e)}(e,i,t.existing,n))}))})(u,e,uc),n[e]=null,i.set(e,null),r.set(e,0);var h=[],c=[],p=0;k(u,(function(t,n){var i=t.existing,r=t.newOption;if(r){var o=uc.getClass(e,t.keyInfo.subType,!0);if(i&&i.constructor===o)i.name=t.keyInfo.name,i.mergeOption(r,this),i.optionUpdated(r,!1);else{var a=M({componentIndex:n},t.keyInfo);M(i=new o(r,this,this,a),a),t.brandNew&&(i.__requireNewView=!0),i.init(r,this,this),i.optionUpdated(null,!0)}}else i&&(i.mergeOption({},this),i.optionUpdated({},!1));i?(h.push(i.option),c.push(i),p++):(h.push(void 0),c.push(void 0))}),this),n[e]=h,i.set(e,c),r.set(e,p),"series"===e&&Mc(this)}),this),this._seriesIndices||Mc(this)},n.prototype.getOption=function(){var t=b(this.option);return k(t,(function(e,n){if(uc.hasClass(n)){for(var i=hr(e),r=i.length,o=!1,a=r-1;a>=0;a--)i[a]&&!_r(i[a])?o=!0:(i[a]=null,!o&&r--);i.length=r,t[n]=i}})),delete t["\0_ec_inner"],t},n.prototype.getTheme=function(){return this._theme},n.prototype.getLocaleModel=function(){return this._locale},n.prototype.getLocale=function(t){return this.getLocaleModel().get(t)},n.prototype.setUpdatePayload=function(t){this._payload=t},n.prototype.getUpdatePayload=function(){return this._payload},n.prototype.getComponent=function(t,e){var n=this._componentsMap.get(t);if(n){var i=n[e||0];if(i)return i;if(null==e)for(var r=0;r<n.length;r++)if(n[r])return n[r]}},n.prototype.queryComponents=function(t){var e=t.mainType;if(!e)return[];var n,i=t.index,r=t.id,o=t.name,a=this._componentsMap.get(e);return a&&a.length?(null!=i?(n=[],k(hr(i),(function(t){a[t]&&n.push(a[t])}))):n=null!=r?Oc("id",r,a):null!=o?Oc("name",o,a):R(a,(function(t){return!!t})),Rc(n,t)):[]},n.prototype.findComponents=function(t){var e,n,i,r,o,a=t.query,s=t.mainType,l=(n=s+"Index",i=s+"Id",r=s+"Name",!(e=a)||null==e[n]&&null==e[i]&&null==e[r]?null:{mainType:s,index:e[n],id:e[i],name:e[r]}),u=l?this.queryComponents(l):R(this._componentsMap.get(s),(function(t){return!!t}));return o=Rc(u,t),t.filter?R(o,t.filter):o},n.prototype.eachComponent=function(t,e,n){var i=this._componentsMap;if(F(t)){var r=e,o=t;i.each((function(t,e){for(var n=0;t&&n<t.length;n++){var i=t[n];i&&o.call(r,e,i,i.componentIndex)}}))}else for(var a=G(t)?i.get(t):Y(t)?this.findComponents(t):null,s=0;a&&s<a.length;s++){var l=a[s];l&&e.call(n,l,l.componentIndex)}},n.prototype.getSeriesByName=function(t){var e=vr(t,null);return R(this._componentsMap.get("series"),(function(t){return!!t&&null!=e&&t.name===e}))},n.prototype.getSeriesByIndex=function(t){return this._componentsMap.get("series")[t]},n.prototype.getSeriesByType=function(t){return R(this._componentsMap.get("series"),(function(e){return!!e&&e.subType===t}))},n.prototype.getSeries=function(){return R(this._componentsMap.get("series").slice(),(function(t){return!!t}))},n.prototype.getSeriesCount=function(){return this._componentsCount.get("series")},n.prototype.eachSeries=function(t,e){Ic(this),k(this._seriesIndices,(function(n){var i=this._componentsMap.get("series")[n];t.call(e,i,n)}),this)},n.prototype.eachRawSeries=function(t,e){k(this._componentsMap.get("series"),(function(n){n&&t.call(e,n,n.componentIndex)}))},n.prototype.eachSeriesByType=function(t,e,n){Ic(this),k(this._seriesIndices,(function(i){var r=this._componentsMap.get("series")[i];r.subType===t&&e.call(n,r,i)}),this)},n.prototype.eachRawSeriesByType=function(t,e,n){return k(this.getSeriesByType(t),e,n)},n.prototype.isSeriesFiltered=function(t){return Ic(this),null==this._seriesIndicesMap.get(t.componentIndex)},n.prototype.getCurrentSeriesIndices=function(){return(this._seriesIndices||[]).slice()},n.prototype.filterSeries=function(t,e){Ic(this);var n=[];k(this._seriesIndices,(function(i){var r=this._componentsMap.get("series")[i];t.call(e,r,i)&&n.push(i)}),this),this._seriesIndices=n,this._seriesIndicesMap=lt(n)},n.prototype.restoreData=function(t){Mc(this);var e=this._componentsMap,n=[];e.each((function(t,e){uc.hasClass(e)&&n.push(e)})),uc.topologicalTravel(n,uc.getAllClassMainTypes(),(function(n){k(e.get(n),(function(e){!e||"series"===n&&function(t,e){if(e){var n=e.seriesIndex,i=e.seriesId,r=e.seriesName;return null!=n&&t.componentIndex!==n||null!=i&&t.id!==i||null!=r&&t.name!==r}}(e,t)||e.restoreData()}))}))},n.internalField=(Mc=function(t){var e=t._seriesIndices=[];k(t._componentsMap.get("series"),(function(t){t&&e.push(t.componentIndex)})),t._seriesIndicesMap=lt(e)},Ic=function(t){},void(Tc=function(t,e){t.option={},t.option["\0_ec_inner"]=1,t._componentsMap=lt({series:[]}),t._componentsCount=lt();var n=e.aria;Y(n)&&null==n.enabled&&(n.enabled=!0),function(t,e){var n=t.color&&!t.colorLayer;k(e,(function(e,i){"colorLayer"===i&&n||uc.hasClass(i)||("object"==typeof e?t[i]=t[i]?w(t[i],e,!1):b(e):null==t[i]&&(t[i]=e))}))}(e,t._theme.option),w(e,pc,!1),t._mergeOption(e,null)})),n}(ah);function Oc(t,e,n){if(V(e)){var i=lt();return k(e,(function(t){null!=t&&(null!=vr(t,null)&&i.set(t,!0))})),R(n,(function(e){return e&&i.get(e[t])}))}var r=vr(e,null);return R(n,(function(e){return e&&null!=r&&e[t]===r}))}function Rc(t,e){return e.hasOwnProperty("subType")?R(t,(function(t){return t&&t.subType===e.subType})):t}function Nc(t){var e=lt();return t&&k(hr(t.replaceMerge),(function(t){e.set(t,!0)})),{replaceMergeMainTypeMap:e}}D(Pc,Dc);var Ec=["getDom","getZr","getWidth","getHeight","getDevicePixelRatio","dispatchAction","isDisposed","on","off","getDataURL","getConnectedDataURL","getOption","getId","updateLabelLayout"],zc=function(t){k(Ec,(function(e){this[e]=z(t[e],t)}),this)},Bc={},Vc=function(){function t(){this._coordinateSystems=[]}return t.prototype.create=function(t,e){var n=[];k(Bc,(function(i,r){var o=i.create(t,e);n=n.concat(o||[])})),this._coordinateSystems=n},t.prototype.update=function(t,e){k(this._coordinateSystems,(function(n){n.update&&n.update(t,e)}))},t.prototype.getCoordinateSystems=function(){return this._coordinateSystems.slice()},t.register=function(t,e){Bc[t]=e},t.get=function(t){return Bc[t]},t}(),Fc=/^(min|max)?(.+)$/,Gc=function(){function t(t){this._timelineOptions=[],this._mediaList=[],this._currentMediaIndices=[],this._api=t}return t.prototype.setOption=function(t,e,n){t&&(k(hr(t.series),(function(t){t&&t.data&&U(t.data)&&ot(t.data)})),k(hr(t.dataset),(function(t){t&&t.source&&U(t.source)&&ot(t.source)}))),t=b(t);var i=this._optionBackup,r=function(t,e,n){var i,r,o=[],a=t.baseOption,s=t.timeline,l=t.options,u=t.media,h=!!t.media,c=!!(l||s||a&&a.timeline);a?(r=a).timeline||(r.timeline=s):((c||h)&&(t.options=t.media=null),r=t);h&&V(u)&&k(u,(function(t){t&&t.option&&(t.query?o.push(t):i||(i=t))}));function p(t){k(e,(function(e){e(t,n)}))}return p(r),k(l,(function(t){return p(t)})),k(o,(function(t){return p(t.option)})),{baseOption:r,timelineOptions:l||[],mediaDefault:i,mediaList:o}}(t,e,!i);this._newBaseOption=r.baseOption,i?(r.timelineOptions.length&&(i.timelineOptions=r.timelineOptions),r.mediaList.length&&(i.mediaList=r.mediaList),r.mediaDefault&&(i.mediaDefault=r.mediaDefault)):this._optionBackup=r},t.prototype.mountOption=function(t){var e=this._optionBackup;return this._timelineOptions=e.timelineOptions,this._mediaList=e.mediaList,this._mediaDefault=e.mediaDefault,this._currentMediaIndices=[],b(t?e.baseOption:this._newBaseOption)},t.prototype.getTimelineOption=function(t){var e,n=this._timelineOptions;if(n.length){var i=t.getComponent("timeline");i&&(e=b(n[i.getCurrentIndex()]))}return e},t.prototype.getMediaOption=function(t){var e,n,i=this._api.getWidth(),r=this._api.getHeight(),o=this._mediaList,a=this._mediaDefault,s=[],l=[];if(!o.length&&!a)return l;for(var u=0,h=o.length;u<h;u++)Hc(o[u].query,i,r)&&s.push(u);return!s.length&&a&&(s=[-1]),s.length&&(e=s,n=this._currentMediaIndices,e.join(",")!==n.join(","))&&(l=P(s,(function(t){return b(-1===t?a.option:o[t].option)}))),this._currentMediaIndices=s,l},t}();function Hc(t,e,n){var i={width:e,height:n,aspectratio:e/n},r=!0;return k(t,(function(t,e){var n=e.match(Fc);if(n&&n[1]&&n[2]){var o=n[1],a=n[2].toLowerCase();(function(t,e,n){return"min"===n?t>=e:"max"===n?t<=e:t===e})(i[a],t,o)||(r=!1)}})),r}var Wc=k,Yc=Y,Xc=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function Uc(t){var e=t&&t.itemStyle;if(e)for(var n=0,i=Xc.length;n<i;n++){var r=Xc[n],o=e.normal,a=e.emphasis;o&&o[r]&&(t[r]=t[r]||{},t[r].normal?w(t[r].normal,o[r]):t[r].normal=o[r],o[r]=null),a&&a[r]&&(t[r]=t[r]||{},t[r].emphasis?w(t[r].emphasis,a[r]):t[r].emphasis=a[r],a[r]=null)}}function Zc(t,e,n){if(t&&t[e]&&(t[e].normal||t[e].emphasis)){var i=t[e].normal,r=t[e].emphasis;i&&(n?(t[e].normal=t[e].emphasis=null,I(t[e],i)):t[e]=i),r&&(t.emphasis=t.emphasis||{},t.emphasis[e]=r,r.focus&&(t.emphasis.focus=r.focus),r.blurScope&&(t.emphasis.blurScope=r.blurScope))}}function jc(t){Zc(t,"itemStyle"),Zc(t,"lineStyle"),Zc(t,"areaStyle"),Zc(t,"label"),Zc(t,"labelLine"),Zc(t,"upperLabel"),Zc(t,"edgeLabel")}function qc(t,e){var n=Yc(t)&&t[e],i=Yc(n)&&n.textStyle;if(i){0;for(var r=0,o=pr.length;r<o;r++){var a=pr[r];i.hasOwnProperty(a)&&(n[a]=i[a])}}}function Kc(t){t&&(jc(t),qc(t,"label"),t.emphasis&&qc(t.emphasis,"label"))}function $c(t){return V(t)?t:t?[t]:[]}function Jc(t){return(V(t)?t[0]:t)||{}}function Qc(t,e){Wc($c(t.series),(function(t){Yc(t)&&function(t){if(Yc(t)){Uc(t),jc(t),qc(t,"label"),qc(t,"upperLabel"),qc(t,"edgeLabel"),t.emphasis&&(qc(t.emphasis,"label"),qc(t.emphasis,"upperLabel"),qc(t.emphasis,"edgeLabel"));var e=t.markPoint;e&&(Uc(e),Kc(e));var n=t.markLine;n&&(Uc(n),Kc(n));var i=t.markArea;i&&Kc(i);var r=t.data;if("graph"===t.type){r=r||t.nodes;var o=t.links||t.edges;if(o&&!U(o))for(var a=0;a<o.length;a++)Kc(o[a]);k(t.categories,(function(t){jc(t)}))}if(r&&!U(r))for(a=0;a<r.length;a++)Kc(r[a]);if((e=t.markPoint)&&e.data){var s=e.data;for(a=0;a<s.length;a++)Kc(s[a])}if((n=t.markLine)&&n.data){var l=n.data;for(a=0;a<l.length;a++)V(l[a])?(Kc(l[a][0]),Kc(l[a][1])):Kc(l[a])}"gauge"===t.type?(qc(t,"axisLabel"),qc(t,"title"),qc(t,"detail")):"treemap"===t.type?(Zc(t.breadcrumb,"itemStyle"),k(t.levels,(function(t){jc(t)}))):"tree"===t.type&&jc(t.leaves)}}(t)}));var n=["xAxis","yAxis","radiusAxis","angleAxis","singleAxis","parallelAxis","radar"];e&&n.push("valueAxis","categoryAxis","logAxis","timeAxis"),Wc(n,(function(e){Wc($c(t[e]),(function(t){t&&(qc(t,"axisLabel"),qc(t.axisPointer,"label"))}))})),Wc($c(t.parallel),(function(t){var e=t&&t.parallelAxisDefault;qc(e,"axisLabel"),qc(e&&e.axisPointer,"label")})),Wc($c(t.calendar),(function(t){Zc(t,"itemStyle"),qc(t,"dayLabel"),qc(t,"monthLabel"),qc(t,"yearLabel")})),Wc($c(t.radar),(function(t){qc(t,"name"),t.name&&null==t.axisName&&(t.axisName=t.name,delete t.name),null!=t.nameGap&&null==t.axisNameGap&&(t.axisNameGap=t.nameGap,delete t.nameGap)})),Wc($c(t.geo),(function(t){Yc(t)&&(Kc(t),Wc($c(t.regions),(function(t){Kc(t)})))})),Wc($c(t.timeline),(function(t){Kc(t),Zc(t,"label"),Zc(t,"itemStyle"),Zc(t,"controlStyle",!0);var e=t.data;V(e)&&k(e,(function(t){Y(t)&&(Zc(t,"label"),Zc(t,"itemStyle"))}))})),Wc($c(t.toolbox),(function(t){Zc(t,"iconStyle"),Wc(t.feature,(function(t){Zc(t,"iconStyle")}))})),qc(Jc(t.axisPointer),"label"),qc(Jc(t.tooltip).axisPointer,"label")}function tp(t){t&&k(ep,(function(e){e[0]in t&&!(e[1]in t)&&(t[e[1]]=t[e[0]])}))}var ep=[["x","left"],["y","top"],["x2","right"],["y2","bottom"]],np=["grid","geo","parallel","legend","toolbox","title","visualMap","dataZoom","timeline"],ip=[["borderRadius","barBorderRadius"],["borderColor","barBorderColor"],["borderWidth","barBorderWidth"]];function rp(t){var e=t&&t.itemStyle;if(e)for(var n=0;n<ip.length;n++){var i=ip[n][1],r=ip[n][0];null!=e[i]&&(e[r]=e[i])}}function op(t){t&&"edge"===t.alignTo&&null!=t.margin&&null==t.edgeDistance&&(t.edgeDistance=t.margin)}function ap(t){t&&t.downplay&&!t.blur&&(t.blur=t.downplay)}function sp(t,e){if(t)for(var n=0;n<t.length;n++)e(t[n]),t[n]&&sp(t[n].children,e)}function lp(t,e){Qc(t,e),t.series=hr(t.series),k(t.series,(function(t){if(Y(t)){var e=t.type;if("line"===e)null!=t.clipOverflow&&(t.clip=t.clipOverflow);else if("pie"===e||"gauge"===e){if(null!=t.clockWise&&(t.clockwise=t.clockWise),op(t.label),(r=t.data)&&!U(r))for(var n=0;n<r.length;n++)op(r[n]);null!=t.hoverOffset&&(t.emphasis=t.emphasis||{},(t.emphasis.scaleSize=null)&&(t.emphasis.scaleSize=t.hoverOffset))}else if("gauge"===e){var i=function(t,e){for(var n=e.split(","),i=t,r=0;r<n.length&&null!=(i=i&&i[n[r]]);r++);return i}(t,"pointer.color");null!=i&&function(t,e,n,i){for(var r,o=e.split(","),a=t,s=0;s<o.length-1;s++)null==a[r=o[s]]&&(a[r]={}),a=a[r];(i||null==a[o[s]])&&(a[o[s]]=n)}(t,"itemStyle.color",i)}else if("bar"===e){var r;if(rp(t),rp(t.backgroundStyle),rp(t.emphasis),(r=t.data)&&!U(r))for(n=0;n<r.length;n++)"object"==typeof r[n]&&(rp(r[n]),rp(r[n]&&r[n].emphasis))}else if("sunburst"===e){var o=t.highlightPolicy;o&&(t.emphasis=t.emphasis||{},t.emphasis.focus||(t.emphasis.focus=o)),ap(t),sp(t.data,ap)}else"graph"===e||"sankey"===e?function(t){t&&null!=t.focusNodeAdjacency&&(t.emphasis=t.emphasis||{},null==t.emphasis.focus&&(t.emphasis.focus="adjacency"))}(t):"map"===e&&(t.mapType&&!t.map&&(t.map=t.mapType),t.mapLocation&&I(t,t.mapLocation));null!=t.hoverAnimation&&(t.emphasis=t.emphasis||{},t.emphasis&&null==t.emphasis.scale&&(t.emphasis.scale=t.hoverAnimation)),tp(t)}})),t.dataRange&&(t.visualMap=t.dataRange),k(np,(function(e){var n=t[e];n&&(V(n)||(n=[n]),k(n,(function(t){tp(t)})))}))}function up(t){k(t,(function(e,n){var i=[],r=[NaN,NaN],o=[e.stackResultDimension,e.stackedOverDimension],a=e.data,s=e.isStackedByIndex,l=a.map(o,(function(o,l,u){var h,c,p=a.get(e.stackedDimension,u);if(isNaN(p))return r;s?c=a.getRawIndex(u):h=a.get(e.stackedByDimension,u);for(var d=NaN,f=n-1;f>=0;f--){var g=t[f];if(s||(c=g.data.rawIndexOf(g.stackedByDimension,h)),c>=0){var y=g.data.getByRawIndex(g.stackResultDimension,c);if(p>=0&&y>0||p<=0&&y<0){p+=y,d=y;break}}}return i[0]=p,i[1]=d,i}));a.hostModel.setData(l),e.data=l}))}var hp,cp,pp,dp,fp,gp=function(t){this.data=t.data||("keyedColumns"===t.sourceFormat?{}:[]),this.sourceFormat=t.sourceFormat||"unknown",this.seriesLayoutBy=t.seriesLayoutBy||"column",this.startIndex=t.startIndex||0,this.dimensionsDefine=t.dimensionsDefine,this.dimensionsDetectedCount=t.dimensionsDetectedCount,this.encodeDefine=t.encodeDefine,this.metaRawOption=t.metaRawOption};function yp(t){return t instanceof gp}function vp(t,e,n,i){n=n||xp(t);var r=e.seriesLayoutBy,o=function(t,e,n,i,r){var o,a;if(!t)return{dimensionsDefine:bp(r),startIndex:a,dimensionsDetectedCount:o};if("arrayRows"===e){var s=t;"auto"===i||null==i?wp((function(t){null!=t&&"-"!==t&&(G(t)?null==a&&(a=1):a=0)}),n,s,10):a=W(i)?i:i?1:0,r||1!==a||(r=[],wp((function(t,e){r[e]=null!=t?t+"":""}),n,s,1/0)),o=r?r.length:"row"===n?s.length:s[0]?s[0].length:null}else if("objectRows"===e)r||(r=function(t){var e,n=0;for(;n<t.length&&!(e=t[n++]););if(e){var i=[];return k(e,(function(t,e){i.push(e)})),i}}(t));else if("keyedColumns"===e)r||(r=[],k(t,(function(t,e){r.push(e)})));else if("original"===e){var l=dr(t[0]);o=V(l)&&l.length||1}return{startIndex:a,dimensionsDefine:bp(r),dimensionsDetectedCount:o}}(t,n,r,e.sourceHeader,e.dimensions);return new gp({data:t,sourceFormat:n,seriesLayoutBy:r,dimensionsDefine:o.dimensionsDefine,startIndex:o.startIndex,dimensionsDetectedCount:o.dimensionsDetectedCount,encodeDefine:_p(i),metaRawOption:b(e)})}function mp(t){return new gp({data:t,sourceFormat:U(t)?"typedArray":"original"})}function _p(t){return t?lt(t):null}function xp(t){var e="unknown";if(U(t))e="typedArray";else if(V(t)){0===t.length&&(e="arrayRows");for(var n=0,i=t.length;n<i;n++){var r=t[n];if(null!=r){if(V(r)){e="arrayRows";break}if(Y(r)){e="objectRows";break}}}}else if(Y(t))for(var o in t)if(ct(t,o)&&L(t[o])){e="keyedColumns";break}return e}function bp(t){if(t){var e=lt();return P(t,(function(t,n){var i={name:(t=Y(t)?t:{name:t}).name,displayName:t.displayName,type:t.type};if(null==i.name)return i;i.name+="",null==i.displayName&&(i.displayName=i.name);var r=e.get(i.name);return r?i.name+="-"+r.count++:e.set(i.name,{count:1}),i}))}}function wp(t,e,n,i){if("row"===e)for(var r=0;r<n.length&&r<i;r++)t(n[r]?n[r][0]:null,r);else{var o=n[0]||[];for(r=0;r<o.length&&r<i;r++)t(o[r],r)}}var Sp=function(){function t(t,e){var n=yp(t)?t:mp(t);this._source=n;var i=this._data=n.data;"typedArray"===n.sourceFormat&&(this._offset=0,this._dimSize=e,this._data=i),fp(this,i,n)}return t.prototype.getSource=function(){return this._source},t.prototype.count=function(){return 0},t.prototype.getItem=function(t,e){},t.prototype.appendData=function(t){},t.prototype.clean=function(){},t.protoInitialize=function(){var e=t.prototype;e.pure=!1,e.persistent=!0}(),t.internalField=function(){var t;fp=function(t,r,o){var a=o.sourceFormat,s=o.seriesLayoutBy,l=o.startIndex,u=o.dimensionsDefine,h=dp[Op(a,s)];if(M(t,h),"typedArray"===a)t.getItem=e,t.count=i,t.fillStorage=n;else{var c=Tp(a,s);t.getItem=z(c,null,r,l,u);var p=Dp(a,s);t.count=z(p,null,r,l,u)}};var e=function(t,e){t-=this._offset,e=e||[];for(var n=this._data,i=this._dimSize,r=i*t,o=0;o<i;o++)e[o]=n[r+o];return e},n=function(t,e,n,i){for(var r=this._data,o=this._dimSize,a=0;a<o;a++){for(var s=i[a],l=null==s[0]?1/0:s[0],u=null==s[1]?-1/0:s[1],h=e-t,c=n[a],p=0;p<h;p++){var d=r[p*o+a];c[t+p]=d,d<l&&(l=d),d>u&&(u=d)}s[0]=l,s[1]=u}},i=function(){return this._data?this._data.length/this._dimSize:0};function r(t){for(var e=0;e<t.length;e++)this._data.push(t[e])}(t={}).arrayRows_column={pure:!0,appendData:r},t.arrayRows_row={pure:!0,appendData:function(){throw new Error('Do not support appendData when set seriesLayoutBy: "row".')}},t.objectRows={pure:!0,appendData:r},t.keyedColumns={pure:!0,appendData:function(t){var e=this._data;k(t,(function(t,n){for(var i=e[n]||(e[n]=[]),r=0;r<(t||[]).length;r++)i.push(t[r])}))}},t.original={appendData:r},t.typedArray={persistent:!1,pure:!0,appendData:function(t){this._data=t},clean:function(){this._offset+=this.count(),this._data=null}},dp=t}(),t}(),Mp=function(t,e,n,i){return t[i]},Ip=((hp={}).arrayRows_column=function(t,e,n,i){return t[i+e]},hp.arrayRows_row=function(t,e,n,i){i+=e;for(var r=[],o=t,a=0;a<o.length;a++){var s=o[a];r.push(s?s[i]:null)}return r},hp.objectRows=Mp,hp.keyedColumns=function(t,e,n,i){for(var r=[],o=0;o<n.length;o++){var a=n[o].name;0;var s=t[a];r.push(s?s[i]:null)}return r},hp.original=Mp,hp);function Tp(t,e){var n=Ip[Op(t,e)];return n}var Cp=function(t,e,n){return t.length},Ap=((cp={}).arrayRows_column=function(t,e,n){return Math.max(0,t.length-e)},cp.arrayRows_row=function(t,e,n){var i=t[0];return i?Math.max(0,i.length-e):0},cp.objectRows=Cp,cp.keyedColumns=function(t,e,n){var i=n[0].name;var r=t[i];return r?r.length:0},cp.original=Cp,cp);function Dp(t,e){var n=Ap[Op(t,e)];return n}var Lp=function(t,e,n){return null!=e?t[e]:t},kp=((pp={}).arrayRows=Lp,pp.objectRows=function(t,e,n){return null!=e?t[n]:t},pp.keyedColumns=Lp,pp.original=function(t,e,n){var i=dr(t);return null!=e&&i instanceof Array?i[e]:i},pp.typedArray=Lp,pp);function Pp(t){var e=kp[t];return e}function Op(t,e){return"arrayRows"===t?t+"_"+e:t}function Rp(t,e,n){if(t){var i=t.getRawDataItem(e);if(null!=i){var r,o,a=t.getProvider().getSource().sourceFormat,s=t.getDimensionInfo(n);return s&&(r=s.name,o=s.index),Pp(a)(i,o,r)}}}var Np=/\{@(.+?)\}/g,Ep=function(){function t(){}return t.prototype.getDataParams=function(t,e){var n=this.getData(e),i=this.getRawValue(t,e),r=n.getRawIndex(t),o=n.getName(t),a=n.getRawDataItem(t),s=n.getItemVisual(t,"style"),l=s&&s[n.getItemVisual(t,"drawType")||"fill"],u=s&&s.stroke,h=this.mainType,c="series"===h,p=n.userOutput;return{componentType:h,componentSubType:this.subType,componentIndex:this.componentIndex,seriesType:c?this.subType:null,seriesIndex:this.seriesIndex,seriesId:c?this.id:null,seriesName:c?this.name:null,name:o,dataIndex:r,data:a,dataType:e,value:i,color:l,borderColor:u,dimensionNames:p?p.dimensionNames:null,encode:p?p.encode:null,$vars:["seriesName","name","value"]}},t.prototype.getFormattedLabel=function(t,e,n,i,r,o){e=e||"normal";var a=this.getData(n),s=this.getDataParams(t,n);(o&&(s.value=o.interpolatedValue),null!=i&&V(s.value)&&(s.value=s.value[i]),r)||(r=a.getItemModel(t).get("normal"===e?["label","formatter"]:[e,"label","formatter"]));return"function"==typeof r?(s.status=e,s.dimensionIndex=i,r(s)):"string"==typeof r?Zh(r,s).replace(Np,(function(e,n){var i=n.length,r="["===n.charAt(0)&&"]"===n.charAt(i-1)?+n.slice(1,i-1):n,s=Rp(a,t,r);if(o&&V(o.interpolatedValue)){var l=a.getDimensionInfo(r);l&&(s=o.interpolatedValue[l.index])}return null!=s?s+"":""})):void 0},t.prototype.getRawValue=function(t,e){return Rp(this.getData(e),t)},t.prototype.formatTooltip=function(t,e,n){},t}();function zp(t){var e,n;return Y(t)?t.type&&(n=t):e=t,{markupText:e,markupFragment:n}}function Bp(t){return new Vp(t)}var Vp=function(){function t(t){t=t||{},this._reset=t.reset,this._plan=t.plan,this._count=t.count,this._onDirty=t.onDirty,this._dirty=!0}return t.prototype.perform=function(t){var e,n=this._upstream,i=t&&t.skip;if(this._dirty&&n){var r=this.context;r.data=r.outputData=n.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this),this._plan&&!i&&(e=this._plan(this.context));var o,a=h(this._modBy),s=this._modDataCount||0,l=h(t&&t.modBy),u=t&&t.modDataCount||0;function h(t){return!(t>=1)&&(t=1),t}a===l&&s===u||(e="reset"),(this._dirty||"reset"===e)&&(this._dirty=!1,o=this._doReset(i)),this._modBy=l,this._modDataCount=u;var c=t&&t.step;if(this._dueEnd=n?n._outputDueEnd:this._count?this._count(this.context):1/0,this._progress){var p=this._dueIndex,d=Math.min(null!=c?this._dueIndex+c:1/0,this._dueEnd);if(!i&&(o||p<d)){var f=this._progress;if(V(f))for(var g=0;g<f.length;g++)this._doProgress(f[g],p,d,l,u);else this._doProgress(f,p,d,l,u)}this._dueIndex=d;var y=null!=this._settedOutputEnd?this._settedOutputEnd:d;0,this._outputDueEnd=y}else this._dueIndex=this._outputDueEnd=null!=this._settedOutputEnd?this._settedOutputEnd:this._dueEnd;return this.unfinished()},t.prototype.dirty=function(){this._dirty=!0,this._onDirty&&this._onDirty(this.context)},t.prototype._doProgress=function(t,e,n,i,r){Fp.reset(e,n,i,r),this._callingProgress=t,this._callingProgress({start:e,end:n,count:n-e,next:Fp.next},this.context)},t.prototype._doReset=function(t){var e,n;this._dueIndex=this._outputDueEnd=this._dueEnd=0,this._settedOutputEnd=null,!t&&this._reset&&((e=this._reset(this.context))&&e.progress&&(n=e.forceFirstProgress,e=e.progress),V(e)&&!e.length&&(e=null)),this._progress=e,this._modBy=this._modDataCount=null;var i=this._downstream;return i&&i.dirty(),n},t.prototype.unfinished=function(){return this._progress&&this._dueIndex<this._dueEnd},t.prototype.pipe=function(t){(this._downstream!==t||this._dirty)&&(this._downstream=t,t._upstream=this,t.dirty())},t.prototype.dispose=function(){this._disposed||(this._upstream&&(this._upstream._downstream=null),this._downstream&&(this._downstream._upstream=null),this._dirty=!1,this._disposed=!0)},t.prototype.getUpstream=function(){return this._upstream},t.prototype.getDownstream=function(){return this._downstream},t.prototype.setOutputEnd=function(t){this._outputDueEnd=this._settedOutputEnd=t},t}(),Fp=function(){var t,e,n,i,r,o={reset:function(l,u,h,c){e=l,t=u,n=h,i=c,r=Math.ceil(i/n),o.next=n>1&&i>0?s:a}};return o;function a(){return e<t?e++:null}function s(){var o=e%r*n+Math.ceil(e/r),a=e>=t?null:o<i?o:e;return e++,a}}();function Gp(t,e){var n=e&&e.type;if("ordinal"===n){var i=e&&e.ordinalMeta;return i?i.parseAndCollect(t):t}return"time"===n&&"number"!=typeof t&&null!=t&&"-"!==t&&(t=+$i(t)),null==t||""===t?NaN:+t}var Hp=lt({number:function(t){return parseFloat(t)},time:function(t){return+$i(t)},trim:function(t){return"string"==typeof t?rt(t):t}});function Wp(t){return Hp.get(t)}var Yp={lt:function(t,e){return t<e},lte:function(t,e){return t<=e},gt:function(t,e){return t>e},gte:function(t,e){return t>=e}},Xp=function(){function t(t,e){if("number"!=typeof e){var n="";0,ur(n)}this._opFn=Yp[t],this._rvalFloat=ir(e)}return t.prototype.evaluate=function(t){return"number"==typeof t?this._opFn(t,this._rvalFloat):this._opFn(ir(t),this._rvalFloat)},t}(),Up=function(){function t(t,e){var n="desc"===t;this._resultLT=n?1:-1,null==e&&(e=n?"min":"max"),this._incomparable="min"===e?-1/0:1/0}return t.prototype.evaluate=function(t,e){var n=typeof t,i=typeof e,r="number"===n?t:ir(t),o="number"===i?e:ir(e),a=isNaN(r),s=isNaN(o);if(a&&(r=this._incomparable),s&&(o=this._incomparable),a&&s){var l="string"===n,u="string"===i;l&&(r=u?t:0),u&&(o=l?e:0)}return r<o?this._resultLT:r>o?-this._resultLT:0},t}(),Zp=function(){function t(t,e){this._rval=e,this._isEQ=t,this._rvalTypeof=typeof e,this._rvalFloat=ir(e)}return t.prototype.evaluate=function(t){var e=t===this._rval;if(!e){var n=typeof t;n===this._rvalTypeof||"number"!==n&&"number"!==this._rvalTypeof||(e=ir(t)===this._rvalFloat)}return this._isEQ?e:!e},t}();function jp(t,e){return"eq"===t||"ne"===t?new Zp("eq"===t,e):ct(Yp,t)?new Xp(t,e):null}var qp=function(){function t(){}return t.prototype.getRawData=function(){throw new Error("not supported")},t.prototype.getRawDataItem=function(t){throw new Error("not supported")},t.prototype.cloneRawData=function(){},t.prototype.getDimensionInfo=function(t){},t.prototype.cloneAllDimensionInfo=function(){},t.prototype.count=function(){},t.prototype.retrieveValue=function(t,e){},t.prototype.retrieveValueFromItem=function(t,e){},t.prototype.convertValue=function(t,e){return Gp(t,e)},t}();function Kp(t){var e=t.sourceFormat;if(!nd(e)){var n="";0,ur(n)}return t.data}function $p(t){var e=t.sourceFormat,n=t.data;if(!nd(e)){var i="";0,ur(i)}if("arrayRows"===e){for(var r=[],o=0,a=n.length;o<a;o++)r.push(n[o].slice());return r}if("objectRows"===e){for(r=[],o=0,a=n.length;o<a;o++)r.push(M({},n[o]));return r}}function Jp(t,e,n){if(null!=n)return"number"==typeof n||!isNaN(n)&&!ct(e,n)?t[n]:ct(e,n)?e[n]:void 0}function Qp(t){return b(t)}var td=lt();function ed(t,e,n,i){var r="";e.length||ur(r),Y(t)||ur(r);var o=t.type,a=td.get(o);a||ur(r);var s=P(e,(function(t){return function(t,e){var n=new qp,i=t.data,r=n.sourceFormat=t.sourceFormat,o=t.startIndex,a="";"column"!==t.seriesLayoutBy&&ur(a);var s=[],l={},u=t.dimensionsDefine;if(u)k(u,(function(t,e){var n=t.name,i={index:e,name:n,displayName:t.displayName};if(s.push(i),null!=n){var r="";ct(l,n)&&ur(r),l[n]=i}}));else for(var h=0;h<t.dimensionsDetectedCount;h++)s.push({index:h});var c=Tp(r,"column");e.__isBuiltIn&&(n.getRawDataItem=function(t){return c(i,o,s,t)},n.getRawData=z(Kp,null,t)),n.cloneRawData=z($p,null,t);var p=Dp(r,"column");n.count=z(p,null,i,o,s);var d=Pp(r);n.retrieveValue=function(t,e){var n=c(i,o,s,t);return f(n,e)};var f=n.retrieveValueFromItem=function(t,e){if(null!=t){var n=s[e];return n?d(t,e,n.name):void 0}};return n.getDimensionInfo=z(Jp,null,s,l),n.cloneAllDimensionInfo=z(Qp,null,s),n}(t,a)})),l=hr(a.transform({upstream:s[0],upstreamList:s,config:b(t.config)}));return P(l,(function(t,n){var i,r="";Y(t)||ur(r),t.data||ur(r),nd(xp(t.data))||ur(r);var o=e[0];if(o&&0===n&&!t.dimensions){var a=o.startIndex;a&&(t.data=o.data.slice(0,a).concat(t.data)),i={seriesLayoutBy:"column",sourceHeader:a,dimensions:o.metaRawOption.dimensions}}else i={seriesLayoutBy:"column",sourceHeader:0,dimensions:t.dimensions};return vp(t.data,i,null,null)}))}function nd(t){return"arrayRows"===t||"objectRows"===t}var id=function(){function t(t){this._sourceList=[],this._upstreamSignList=[],this._versionSignBase=0,this._sourceHost=t}return t.prototype.dirty=function(){this._setLocalSource([],[])},t.prototype._setLocalSource=function(t,e){this._sourceList=t,this._upstreamSignList=e,this._versionSignBase++,this._versionSignBase>9e10&&(this._versionSignBase=0)},t.prototype._getVersionSign=function(){return this._sourceHost.uid+"_"+this._versionSignBase},t.prototype.prepareSource=function(){this._isDirty()&&this._createSource()},t.prototype._createSource=function(){this._setLocalSource([],[]);var t,e,n=this._sourceHost,i=this._getUpstreamSourceManagers(),r=!!i.length;if(od(n)){var o=n,a=void 0,s=void 0,l=void 0;if(r){var u=i[0];u.prepareSource(),a=(l=u.getSource()).data,s=l.sourceFormat,e=[u._getVersionSign()]}else s=U(a=o.get("data",!0))?"typedArray":"original",e=[];var h=this._getSourceMetaRawOption(),c=l?l.metaRawOption:null;t=[vp(a,{seriesLayoutBy:Q(h.seriesLayoutBy,c?c.seriesLayoutBy:null),sourceHeader:Q(h.sourceHeader,c?c.sourceHeader:null),dimensions:Q(h.dimensions,c?c.dimensions:null)},s,o.get("encode",!0))]}else{var p=n;if(r){var d=this._applyTransform(i);t=d.sourceList,e=d.upstreamSignList}else{t=[vp(p.get("source",!0),this._getSourceMetaRawOption(),null,null)],e=[]}}this._setLocalSource(t,e)},t.prototype._applyTransform=function(t){var e,n=this._sourceHost,i=n.get("transform",!0),r=n.get("fromTransformResult",!0);if(null!=r){var o="";1!==t.length&&ad(o)}var a,s=[],l=[];return k(t,(function(t){t.prepareSource();var e=t.getSource(r||0),n="";null==r||e||ad(n),s.push(e),l.push(t._getVersionSign())})),i?e=function(t,e,n){var i=hr(t),r=i.length,o="";r||ur(o);for(var a=0,s=r;a<s;a++)e=ed(i[a],e),a!==s-1&&(e.length=Math.max(e.length,1));return e}(i,s,n.componentIndex):null!=r&&(e=[(a=s[0],new gp({data:a.data,sourceFormat:a.sourceFormat,seriesLayoutBy:a.seriesLayoutBy,dimensionsDefine:b(a.dimensionsDefine),startIndex:a.startIndex,dimensionsDetectedCount:a.dimensionsDetectedCount,encodeDefine:_p(a.encodeDefine)}))]),{sourceList:e,upstreamSignList:l}},t.prototype._isDirty=function(){if(!this._sourceList.length)return!0;for(var t=this._getUpstreamSourceManagers(),e=0;e<t.length;e++){var n=t[e];if(n._isDirty()||this._upstreamSignList[e]!==n._getVersionSign())return!0}},t.prototype.getSource=function(t){return this._sourceList[t||0]},t.prototype._getUpstreamSourceManagers=function(){var t=this._sourceHost;if(od(t)){var e=xc(t);return e?[e.getSourceManager()]:[]}return P(function(t){return t.get("transform",!0)||t.get("fromTransformResult",!0)?Tr(t.ecModel,"dataset",{index:t.get("fromDatasetIndex",!0),id:t.get("fromDatasetId",!0)},Mr).models:[]}(t),(function(t){return t.getSourceManager()}))},t.prototype._getSourceMetaRawOption=function(){var t,e,n,i=this._sourceHost;if(od(i))t=i.get("seriesLayoutBy",!0),e=i.get("sourceHeader",!0),n=i.get("dimensions",!0);else if(!this._getUpstreamSourceManagers().length){var r=i;t=r.get("seriesLayoutBy",!0),e=r.get("sourceHeader",!0),n=r.get("dimensions",!0)}return{seriesLayoutBy:t,sourceHeader:e,dimensions:n}},t}();function rd(t){t.option.transform&&ot(t.option.transform)}function od(t){return"series"===t.mainType}function ad(t){throw new Error(t)}function sd(t,e){var n=t.color||"#6e7079",i=t.fontSize||12,r=t.fontWeight||"400",o=t.color||"#464646",a=t.fontSize||14,s=t.fontWeight||"900";return"html"===e?{nameStyle:"font-size:"+i+"px;color:"+n+";font-weight:"+r,valueStyle:"font-size:"+a+"px;color:"+o+";font-weight:"+s}:{nameStyle:{fontSize:i,fill:n,fontWeight:r},valueStyle:{fontSize:a,fill:o,fontWeight:s}}}var ld=[0,10,20,30],ud=["","\n","\n\n","\n\n\n"];function hd(t,e){return e.type=t,e}function cd(t){return ct(pd,t.type)&&pd[t.type]}var pd={section:{planLayout:function(t){var e=t.blocks.length,n=e>1||e>0&&!t.noHeader,i=0;k(t.blocks,(function(t){cd(t).planLayout(t);var e=t.__gapLevelBetweenSubBlocks;e>=i&&(i=e+(!n||e&&("section"!==t.type||t.noHeader)?0:1))})),t.__gapLevelBetweenSubBlocks=i},build:function(t,e,n,i){var r=e.noHeader,o=fd(e),a=function(t,e,n,i){var r=[],o=e.blocks||[];it(!o||V(o)),o=o||[];var a=t.orderMode;if(e.sortBlocks&&a){o=o.slice();var s={valueAsc:"asc",valueDesc:"desc"};if(ct(s,a)){var l=new Up(s[a],null);o.sort((function(t,e){return l.evaluate(t.sortParam,e.sortParam)}))}else"seriesDesc"===a&&o.reverse()}var u=fd(e);if(k(o,(function(e,n){var o=cd(e).build(t,e,n>0?u.html:0,i);null!=o&&r.push(o)})),!r.length)return;return"richText"===t.renderMode?r.join(u.richText):gd(r.join(""),n)}(t,e,r?n:o.html,i);if(r)return a;var s=Yh(e.header,"ordinal",t.useUTC),l=sd(i,t.renderMode).nameStyle;return"richText"===t.renderMode?yd(t,s,l)+o.richText+a:gd('<div style="'+l+';line-height:1;">'+Wh(s)+"</div>"+a,n)}},nameValue:{planLayout:function(t){t.__gapLevelBetweenSubBlocks=0},build:function(t,e,n,i){var r=t.renderMode,o=e.noName,a=e.noValue,s=!e.markerType,l=e.name,u=e.value,h=t.useUTC;if(!o||!a){var c=s?"":t.markupStyleCreator.makeTooltipMarker(e.markerType,e.markerColor||"#333",r),p=o?"":Yh(l,"ordinal",h),d=e.valueType,f=a?[]:V(u)?P(u,(function(t,e){return Yh(t,V(d)?d[e]:d,h)})):[Yh(u,V(d)?d[0]:d,h)],g=!s||!o,y=!s&&o,v=sd(i,r),m=v.nameStyle,_=v.valueStyle;return"richText"===r?(s?"":c)+(o?"":yd(t,p,m))+(a?"":function(t,e,n,i,r){var o=[r],a=i?10:20;return n&&o.push({padding:[0,0,0,a],align:"right"}),t.markupStyleCreator.wrapRichTextStyle(e.join("  "),o)}(t,f,g,y,_)):gd((s?"":c)+(o?"":function(t,e,n){return'<span style="'+n+";"+(e?"margin-left:2px":"")+'">'+Wh(t)+"</span>"}(p,!s,m))+(a?"":function(t,e,n,i){var r=n?"10px":"20px";return'<span style="'+(e?"float:right;margin-left:"+r:"")+";"+i+'">'+P(t,(function(t){return Wh(t)})).join("&nbsp;&nbsp;")+"</span>"}(f,g,y,_)),n)}}}};function dd(t,e,n,i,r,o){if(t){var a=cd(t);a.planLayout(t);var s={useUTC:r,renderMode:n,orderMode:i,markupStyleCreator:e};return a.build(s,t,0,o)}}function fd(t){var e=t.__gapLevelBetweenSubBlocks;return{html:ld[e],richText:ud[e]}}function gd(t,e){return'<div style="'+("margin: "+e+"px 0 0")+';line-height:1;">'+t+'<div style="clear:both"></div></div>'}function yd(t,e,n){return t.markupStyleCreator.wrapRichTextStyle(e,n)}function vd(t,e){return qh(t.getData().getItemVisual(e,"style")[t.visualDrawType])}function md(t,e){var n=t.get("padding");return null!=n?n:"richText"===e?[8,10]:10}var _d=function(){function t(){this.richTextStyles={},this._nextStyleNameId=or()}return t.prototype._generateStyleName=function(){return"__EC_aUTo_"+this._nextStyleNameId++},t.prototype.makeTooltipMarker=function(t,e,n){var i="richText"===n?this._generateStyleName():null,r=jh({color:e,type:t,renderMode:n,markerId:i});return G(r)?r:(this.richTextStyles[i]=r.style,r.content)},t.prototype.wrapRichTextStyle=function(t,e){var n={};V(e)?k(e,(function(t){return M(n,t)})):M(n,e);var i=this._generateStyleName();return this.richTextStyles[i]=n,"{"+i+"|"+t+"}"},t}();function xd(t){var e,n,i,r,o=t.series,a=t.dataIndex,s=t.multipleSeries,l=o.getData(),u=l.mapDimensionsAll("defaultedTooltip"),h=u.length,c=o.getRawValue(a),p=V(c),d=vd(o,a);if(h>1||p&&!h){var f=function(t,e,n,i,r){var o=e.getData(),a=O(t,(function(t,e,n){var i=o.getDimensionInfo(n);return t||i&&!1!==i.tooltip&&null!=i.displayName}),!1),s=[],l=[],u=[];function h(t,e){var n=o.getDimensionInfo(e);n&&!1!==n.otherDims.tooltip&&(a?u.push(hd("nameValue",{markerType:"subItem",markerColor:r,name:n.displayName,value:t,valueType:n.type})):(s.push(t),l.push(n.type)))}return i.length?k(i,(function(t){h(Rp(o,n,t),t)})):k(t,h),{inlineValues:s,inlineValueTypes:l,blocks:u}}(c,o,a,u,d);e=f.inlineValues,n=f.inlineValueTypes,i=f.blocks,r=f.inlineValues[0]}else if(h){var g=l.getDimensionInfo(u[0]);r=e=Rp(l,a,u[0]),n=g.type}else r=e=p?c[0]:c;var y=mr(o),v=y&&o.name||"",m=l.getName(a),_=s?v:m;return hd("section",{header:v,noHeader:s||!y,sortParam:r,blocks:[hd("nameValue",{markerType:"item",markerColor:d,name:_,noName:!rt(_),value:e,valueType:n})].concat(i||[])})}var bd=br();function wd(t,e){return t.getName(e)||t.getId(e)}var Sd=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e._selectedDataIndicesMap={},e}return e(n,t),n.prototype.init=function(t,e,n){this.seriesIndex=this.componentIndex,this.dataTask=Bp({count:Id,reset:Td}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(t,n),(bd(this).sourceManager=new id(this)).prepareSource();var i=this.getInitialData(t,n);Ad(i,this),this.dataTask.context.data=i,bd(this).dataBeforeProcessed=i,Md(this),this._initSelectedMapFromData(i)},n.prototype.mergeDefaultAndTheme=function(t,e){var n=rc(this),i=n?ac(t):{},r=this.subType;uc.hasClass(r)&&(r+="Series"),w(t,e.getTheme().get(this.subType)),w(t,this.getDefaultOption()),cr(t,"label",["show"]),this.fillDataTextStyle(t.data),n&&oc(t,i,n)},n.prototype.mergeOption=function(t,e){t=w(this.option,t,!0),this.fillDataTextStyle(t.data);var n=rc(this);n&&oc(this.option,t,n);var i=bd(this).sourceManager;i.dirty(),i.prepareSource();var r=this.getInitialData(t,e);Ad(r,this),this.dataTask.dirty(),this.dataTask.context.data=r,bd(this).dataBeforeProcessed=r,Md(this),this._initSelectedMapFromData(r)},n.prototype.fillDataTextStyle=function(t){if(t&&!U(t))for(var e=["show"],n=0;n<t.length;n++)t[n]&&t[n].label&&cr(t[n],"label",e)},n.prototype.getInitialData=function(t,e){},n.prototype.appendData=function(t){this.getRawData().appendData(t.data)},n.prototype.getData=function(t){var e=Ld(this);if(e){var n=e.context.data;return null==t?n:n.getLinkedData(t)}return bd(this).data},n.prototype.getAllData=function(){var t=this.getData();return t&&t.getLinkedDataAll?t.getLinkedDataAll():[{data:t}]},n.prototype.setData=function(t){var e=Ld(this);if(e){var n=e.context;n.outputData=t,e!==this.dataTask&&(n.data=t)}bd(this).data=t},n.prototype.getSource=function(){return bd(this).sourceManager.getSource()},n.prototype.getRawData=function(){return bd(this).dataBeforeProcessed},n.prototype.getBaseAxis=function(){var t=this.coordinateSystem;return t&&t.getBaseAxis&&t.getBaseAxis()},n.prototype.formatTooltip=function(t,e,n){return xd({series:this,dataIndex:t,multipleSeries:e})},n.prototype.isAnimationEnabled=function(){if(o.node)return!1;var t=this.getShallow("animation");return t&&this.getData().count()>this.getShallow("animationThreshold")&&(t=!1),!!t},n.prototype.restoreData=function(){this.dataTask.dirty()},n.prototype.getColorFromPalette=function(t,e,n){var i=this.ecModel,r=Dc.prototype.getColorFromPalette.call(this,t,e,n);return r||(r=i.getColorFromPalette(t,e,n)),r},n.prototype.coordDimToDataDim=function(t){return this.getRawData().mapDimensionsAll(t)},n.prototype.getProgressive=function(){return this.get("progressive")},n.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},n.prototype.select=function(t,e){this._innerSelect(this.getData(e),t)},n.prototype.unselect=function(t,e){var n=this.option.selectedMap;if(n)for(var i=this.getData(e),r=0;r<t.length;r++){var o=wd(i,t[r]);n[o]=!1,this._selectedDataIndicesMap[o]=-1}},n.prototype.toggleSelect=function(t,e){for(var n=[],i=0;i<t.length;i++)n[0]=t[i],this.isSelected(t[i],e)?this.unselect(n,e):this.select(n,e)},n.prototype.getSelectedDataIndices=function(){for(var t=this._selectedDataIndicesMap,e=E(t),n=[],i=0;i<e.length;i++){var r=t[e[i]];r>=0&&n.push(r)}return n},n.prototype.isSelected=function(t,e){var n=this.option.selectedMap;return n&&n[wd(this.getData(e),t)]||!1},n.prototype._innerSelect=function(t,e){var n,i,r=this.option.selectedMode,o=e.length;if(r&&o)if("multiple"===r)for(var a=this.option.selectedMap||(this.option.selectedMap={}),s=0;s<o;s++){var l=e[s];a[h=wd(t,l)]=!0,this._selectedDataIndicesMap[h]=t.getRawIndex(l)}else if("single"===r||!0===r){var u=e[o-1],h=wd(t,u);this.option.selectedMap=((n={})[h]=!0,n),this._selectedDataIndicesMap=((i={})[h]=t.getRawIndex(u),i)}},n.prototype._initSelectedMapFromData=function(t){if(!this.option.selectedMap){var e=[];t.hasItemOption&&t.each((function(n){var i=t.getRawDataItem(n);"object"==typeof i&&i.selected&&e.push(n)})),e.length>0&&this._innerSelect(t,e)}},n.registerClass=function(t){return uc.registerClass(t)},n.protoInitialize=function(){var t=n.prototype;t.type="series.__base__",t.seriesIndex=0,t.useColorPaletteOnData=!1,t.ignoreStyleOnData=!1,t.hasSymbolVisual=!1,t.defaultSymbol="circle",t.visualStyleAccessPath="itemStyle",t.visualDrawType="fill"}(),n}(uc);function Md(t){var e=t.name;mr(t)||(t.name=function(t){var e=t.getRawData(),n=e.mapDimensionsAll("seriesName"),i=[];return k(n,(function(t){var n=e.getDimensionInfo(t);n.displayName&&i.push(n.displayName)})),i.join(" ")}(t)||e)}function Id(t){return t.model.getRawData().count()}function Td(t){var e=t.model;return e.setData(e.getRawData().cloneShallow()),Cd}function Cd(t,e){e.outputData&&t.end>e.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function Ad(t,e){k(i(t.CHANGABLE_METHODS,t.DOWNSAMPLE_METHODS),(function(n){t.wrapMethod(n,B(Dd,e))}))}function Dd(t,e){var n=Ld(t);return n&&n.setOutputEnd((e||this).count()),e}function Ld(t){var e=(t.ecModel||{}).scheduler,n=e&&e.getPipeline(t.uid);if(n){var i=n.currentTask;if(i){var r=i.agentStubMap;r&&(i=r.get(t.uid))}return i}}D(Sd,Ep),D(Sd,Dc),Rr(Sd,uc);var kd=function(){function t(){this.group=new Pi,this.uid=lh("viewComponent")}return t.prototype.init=function(t,e){},t.prototype.render=function(t,e,n,i){},t.prototype.dispose=function(t,e){},t.prototype.updateView=function(t,e,n,i){},t.prototype.updateLayout=function(t,e,n,i){},t.prototype.updateVisual=function(t,e,n,i){},t.prototype.blurSeries=function(t,e){},t}();function Pd(){var t=br();return function(e){var n=t(e),i=e.pipelineContext,r=!!n.large,o=!!n.progressiveRender,a=n.large=!(!i||!i.large),s=n.progressiveRender=!(!i||!i.progressiveRender);return!(r===a&&o===s)&&"reset"}}Pr(kd),Br(kd);var Od=br(),Rd=Pd(),Nd=function(){function t(){this.group=new Pi,this.uid=lh("viewChart"),this.renderTask=Bp({plan:Bd,reset:Vd}),this.renderTask.context={view:this}}return t.prototype.init=function(t,e){},t.prototype.render=function(t,e,n,i){},t.prototype.highlight=function(t,e,n,i){zd(t.getData(),i,"emphasis")},t.prototype.downplay=function(t,e,n,i){zd(t.getData(),i,"normal")},t.prototype.remove=function(t,e){this.group.removeAll()},t.prototype.dispose=function(t,e){},t.prototype.updateView=function(t,e,n,i){this.render(t,e,n,i)},t.prototype.updateLayout=function(t,e,n,i){this.render(t,e,n,i)},t.prototype.updateVisual=function(t,e,n,i){this.render(t,e,n,i)},t.markUpdateMethod=function(t,e){Od(t).updateMethod=e},t.protoInitialize=void(t.prototype.type="chart"),t}();function Ed(t,e,n){t&&("emphasis"===e?Is:Ts)(t,n)}function zd(t,e,n){var i=xr(t,e),r=e&&null!=e.highlightKey?function(t){var e=as[t];return null==e&&os<=32&&(e=as[t]=os++),e}(e.highlightKey):null;null!=i?k(hr(i),(function(e){Ed(t.getItemGraphicEl(e),n,r)})):t.eachItemGraphicEl((function(t){Ed(t,n,r)}))}function Bd(t){return Rd(t.model)}function Vd(t){var e=t.model,n=t.ecModel,i=t.api,r=t.payload,o=e.pipelineContext.progressiveRender,a=t.view,s=r&&Od(r).updateMethod,l=o?"incrementalPrepareRender":s&&a[s]?s:"render";return"render"!==l&&a[l](e,n,i,r),Fd[l]}Pr(Nd),Br(Nd);var Fd={incrementalPrepareRender:{progress:function(t,e){e.view.incrementalRender(t,e.model,e.ecModel,e.api,e.payload)}},render:{forceFirstProgress:!0,progress:function(t,e){e.view.render(e.model,e.ecModel,e.api,e.payload)}}},Gd="\0__throttleOriginMethod",Hd="\0__throttleRate";function Wd(t,e,n){var i,r,o,a,s,l=0,u=0,h=null;function c(){u=(new Date).getTime(),h=null,t.apply(o,a||[])}e=e||0;var p=function(){for(var t=[],p=0;p<arguments.length;p++)t[p]=arguments[p];i=(new Date).getTime(),o=this,a=t;var d=s||e,f=s||n;s=null,r=i-(f?l:u)-d,clearTimeout(h),f?h=setTimeout(c,d):r>=0?c():h=setTimeout(c,-r),l=i};return p.clear=function(){h&&(clearTimeout(h),h=null)},p.debounceNextCall=function(t){s=t},p}function Yd(t,e,n,i){var r=t[e];if(r){var o=r[Gd]||r,a=r["\0__throttleType"];if(r[Hd]!==n||a!==i){if(null==n||!i)return t[e]=o;(r=t[e]=Wd(o,n,"debounce"===i))[Gd]=o,r["\0__throttleType"]=i,r[Hd]=n}return r}}var Xd=br(),Ud={itemStyle:Vr(ih,!0),lineStyle:Vr(th,!0)},Zd={lineStyle:"stroke",itemStyle:"fill"};function jd(t,e){var n=t.visualStyleMapper||Ud[e];return n||(console.warn("Unkown style type '"+e+"'."),Ud.itemStyle)}function qd(t,e){var n=t.visualDrawType||Zd[e];return n||(console.warn("Unkown style type '"+e+"'."),"fill")}var Kd={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var n=t.getData(),i=t.visualStyleAccessPath||"itemStyle",r=t.getModel(i),o=jd(t,i)(r),a=r.getShallow("decal");a&&(n.setVisual("decal",a),a.dirty=!0);var s=qd(t,i),l=o[s],u=F(l)?l:null;if(o[s]&&!u||(o[s]=t.getColorFromPalette(t.name,null,e.getSeriesCount()),n.setVisual("colorFromPalette",!0)),n.setVisual("style",o),n.setVisual("drawType",s),!e.isSeriesFiltered(t)&&u)return n.setVisual("colorFromPalette",!1),{dataEach:function(e,n){var i=t.getDataParams(n),r=M({},o);r[s]=u(i),e.setItemVisual(n,"style",r)}}}},$d=new ah,Jd={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){if(!t.ignoreStyleOnData&&!e.isSeriesFiltered(t)){var n=t.getData(),i=t.visualStyleAccessPath||"itemStyle",r=jd(t,i),o=n.getVisual("drawType");return{dataEach:n.hasItemOption?function(t,e){var n=t.getRawDataItem(e);if(n&&n[i]){$d.option=n[i];var a=r($d);M(t.ensureUniqueItemVisual(e,"style"),a),$d.option.decal&&(t.setItemVisual(e,"decal",$d.option.decal),$d.option.decal.dirty=!0),o in a&&t.setItemVisual(e,"colorFromPalette",!1)}}:null}}}},Qd={performRawSeries:!0,overallReset:function(t){var e=lt();t.eachSeries((function(t){if(t.useColorPaletteOnData){var n=e.get(t.type);n||(n={},e.set(t.type,n)),Xd(t).scope=n}})),t.eachSeries((function(e){if(e.useColorPaletteOnData&&!t.isSeriesFiltered(e)){var n=e.getRawData(),i={},r=e.getData(),o=Xd(e).scope,a=e.visualStyleAccessPath||"itemStyle",s=qd(e,a);r.each((function(t){var e=r.getRawIndex(t);i[e]=t})),n.each((function(t){var a=i[t];if(r.getItemVisual(a,"colorFromPalette")){var l=r.ensureUniqueItemVisual(a,"style"),u=n.getName(t)||t+"",h=n.count();l[s]=e.getColorFromPalette(u,o,h)}}))}}))}},tf=Math.PI;var ef=function(){function t(t,e,n,i){this._stageTaskMap=lt(),this.ecInstance=t,this.api=e,n=this._dataProcessorHandlers=n.slice(),i=this._visualHandlers=i.slice(),this._allHandlers=n.concat(i)}return t.prototype.restoreData=function(t,e){t.restoreData(e),this._stageTaskMap.each((function(t){var e=t.overallTask;e&&e.dirty()}))},t.prototype.getPerformArgs=function(t,e){if(t.__pipeline){var n=this._pipelineMap.get(t.__pipeline.id),i=n.context,r=!e&&n.progressiveEnabled&&(!i||i.progressiveRender)&&t.__idxInPipeline>n.blockIndex?n.step:null,o=i&&i.modDataCount;return{step:r,modBy:null!=o?Math.ceil(o/r):null,modDataCount:o}}},t.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},t.prototype.updateStreamModes=function(t,e){var n=this._pipelineMap.get(t.uid),i=t.getData().count(),r=n.progressiveEnabled&&e.incrementalPrepareRender&&i>=n.threshold,o=t.get("large")&&i>=t.get("largeThreshold"),a="mod"===t.get("progressiveChunkMode")?i:null;t.pipelineContext=n.context={progressiveRender:r,modDataCount:a,large:o}},t.prototype.restorePipelines=function(t){var e=this,n=e._pipelineMap=lt();t.eachSeries((function(t){var i=t.getProgressive(),r=t.uid;n.set(r,{id:r,head:null,tail:null,threshold:t.getProgressiveThreshold(),progressiveEnabled:i&&!(t.preventIncremental&&t.preventIncremental()),blockIndex:-1,step:Math.round(i||700),count:0}),e._pipe(t,t.dataTask)}))},t.prototype.prepareStageTasks=function(){var t=this._stageTaskMap,e=this.api.getModel(),n=this.api;k(this._allHandlers,(function(i){var r=t.get(i.uid)||t.set(i.uid,{}),o="";it(!(i.reset&&i.overallReset),o),i.reset&&this._createSeriesStageTask(i,r,e,n),i.overallReset&&this._createOverallStageTask(i,r,e,n)}),this)},t.prototype.prepareView=function(t,e,n,i){var r=t.renderTask,o=r.context;o.model=e,o.ecModel=n,o.api=i,r.__block=!t.incrementalPrepareRender,this._pipe(e,r)},t.prototype.performDataProcessorTasks=function(t,e){this._performStageTasks(this._dataProcessorHandlers,t,e,{block:!0})},t.prototype.performVisualTasks=function(t,e,n){this._performStageTasks(this._visualHandlers,t,e,n)},t.prototype._performStageTasks=function(t,e,n,i){i=i||{};var r=!1,o=this;function a(t,e){return t.setDirty&&(!t.dirtyMap||t.dirtyMap.get(e.__pipeline.id))}k(t,(function(t,s){if(!i.visualType||i.visualType===t.visualType){var l=o._stageTaskMap.get(t.uid),u=l.seriesTaskMap,h=l.overallTask;if(h){var c,p=h.agentStubMap;p.each((function(t){a(i,t)&&(t.dirty(),c=!0)})),c&&h.dirty(),o.updatePayload(h,n);var d=o.getPerformArgs(h,i.block);p.each((function(t){t.perform(d)})),h.perform(d)&&(r=!0)}else u&&u.each((function(s,l){a(i,s)&&s.dirty();var u=o.getPerformArgs(s,i.block);u.skip=!t.performRawSeries&&e.isSeriesFiltered(s.context.model),o.updatePayload(s,n),s.perform(u)&&(r=!0)}))}})),this.unfinished=r||this.unfinished},t.prototype.performSeriesTasks=function(t){var e;t.eachSeries((function(t){e=t.dataTask.perform()||e})),this.unfinished=e||this.unfinished},t.prototype.plan=function(){this._pipelineMap.each((function(t){var e=t.tail;do{if(e.__block){t.blockIndex=e.__idxInPipeline;break}e=e.getUpstream()}while(e)}))},t.prototype.updatePayload=function(t,e){"remain"!==e&&(t.context.payload=e)},t.prototype._createSeriesStageTask=function(t,e,n,i){var r=this,o=e.seriesTaskMap,a=e.seriesTaskMap=lt(),s=t.seriesType,l=t.getTargetSeries;function u(e){var s=e.uid,l=a.set(s,o&&o.get(s)||Bp({plan:sf,reset:lf,count:cf}));l.context={model:e,ecModel:n,api:i,useClearVisual:t.isVisual&&!t.isLayout,plan:t.plan,reset:t.reset,scheduler:r},r._pipe(e,l)}t.createOnAllSeries?n.eachRawSeries(u):s?n.eachRawSeriesByType(s,u):l&&l(n,i).each(u)},t.prototype._createOverallStageTask=function(t,e,n,i){var r=this,o=e.overallTask=e.overallTask||Bp({reset:nf});o.context={ecModel:n,api:i,overallReset:t.overallReset,scheduler:r};var a=o.agentStubMap,s=o.agentStubMap=lt(),l=t.seriesType,u=t.getTargetSeries,h=!0,c=!1,p="";function d(t){var e=t.uid,n=s.set(e,a&&a.get(e)||(c=!0,Bp({reset:rf,onDirty:af})));n.context={model:t,overallProgress:h},n.agent=o,n.__block=h,r._pipe(t,n)}it(!t.createOnAllSeries,p),l?n.eachRawSeriesByType(l,d):u?u(n,i).each(d):(h=!1,k(n.getSeries(),d)),c&&o.dirty()},t.prototype._pipe=function(t,e){var n=t.uid,i=this._pipelineMap.get(n);!i.head&&(i.head=e),i.tail&&i.tail.pipe(e),i.tail=e,e.__idxInPipeline=i.count++,e.__pipeline=i},t.wrapStageHandler=function(t,e){return F(t)&&(t={overallReset:t,seriesType:pf(t)}),t.uid=lh("stageHandler"),e&&(t.visualType=e),t},t}();function nf(t){t.overallReset(t.ecModel,t.api,t.payload)}function rf(t){return t.overallProgress&&of}function of(){this.agent.dirty(),this.getDownstream().dirty()}function af(){this.agent&&this.agent.dirty()}function sf(t){return t.plan?t.plan(t.model,t.ecModel,t.api,t.payload):null}function lf(t){t.useClearVisual&&t.data.clearAllVisual();var e=t.resetDefines=hr(t.reset(t.model,t.ecModel,t.api,t.payload));return e.length>1?P(e,(function(t,e){return hf(e)})):uf}var uf=hf(0);function hf(t){return function(e,n){var i=n.data,r=n.resetDefines[t];if(r&&r.dataEach)for(var o=e.start;o<e.end;o++)r.dataEach(i,o);else r&&r.progress&&r.progress(e,i)}}function cf(t){return t.data.count()}function pf(t){df=null;try{t(ff,gf)}catch(t){}return df}var df,ff={},gf={};function yf(t,e){for(var n in e.prototype)t[n]=pt}yf(ff,Pc),yf(gf,zc),ff.eachSeriesByType=ff.eachRawSeriesByType=function(t){df=t},ff.eachComponent=function(t){"series"===t.mainType&&t.subType&&(df=t.subType)};var vf=["#37A2DA","#32C5E9","#67E0E3","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#E062AE","#E690D1","#e7bcf3","#9d96f5","#8378EA","#96BFFF"],mf={color:vf,colorLayer:[["#37A2DA","#ffd85c","#fd7b5f"],["#37A2DA","#67E0E3","#FFDB5C","#ff9f7f","#E062AE","#9d96f5"],["#37A2DA","#32C5E9","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#e7bcf3","#8378EA","#96BFFF"],vf]},_f=["#4992ff","#7cffb2","#fddd60","#ff6e76","#58d9f9","#05c091","#ff8a45","#8d48e3","#dd79ff"],xf={darkMode:!0,color:_f,backgroundColor:"#100C2A",axisPointer:{lineStyle:{color:"#817f91"},crossStyle:{color:"#817f91"},label:{color:"#fff"}},legend:{textStyle:{color:"#B9B8CE"}},textStyle:{color:"#B9B8CE"},title:{textStyle:{color:"#EEF1FA"},subtextStyle:{color:"#B9B8CE"}},toolbox:{iconStyle:{borderColor:"#B9B8CE"}},dataZoom:{borderColor:"#71708A",textStyle:{color:"#B9B8CE"},brushStyle:{color:"rgba(135,163,206,0.3)"},handleStyle:{color:"#353450",borderColor:"#C5CBE3"},moveHandleStyle:{color:"#B0B6C3",opacity:.3},fillerColor:"rgba(135,163,206,0.2)",emphasis:{handleStyle:{borderColor:"#91B7F2",color:"#4D587D"},moveHandleStyle:{color:"#636D9A",opacity:.7}},dataBackground:{lineStyle:{color:"#71708A",width:1},areaStyle:{color:"#71708A"}},selectedDataBackground:{lineStyle:{color:"#87A3CE"},areaStyle:{color:"#87A3CE"}}},visualMap:{textStyle:{color:"#B9B8CE"}},timeline:{lineStyle:{color:"#B9B8CE"},label:{color:"#B9B8CE"},controlStyle:{color:"#B9B8CE",borderColor:"#B9B8CE"}},calendar:{itemStyle:{color:"#100C2A"},dayLabel:{color:"#B9B8CE"},monthLabel:{color:"#B9B8CE"},yearLabel:{color:"#B9B8CE"}},timeAxis:{axisLine:{lineStyle:{color:"#B9B8CE"}},splitLine:{lineStyle:{color:"#484753"}},splitArea:{areaStyle:{color:["rgba(255,255,255,0.02)","rgba(255,255,255,0.05)"]}},minorSplitLine:{lineStyle:{color:"#20203B"}}},logAxis:{axisLine:{lineStyle:{color:"#B9B8CE"}},splitLine:{lineStyle:{color:"#484753"}},splitArea:{areaStyle:{color:["rgba(255,255,255,0.02)","rgba(255,255,255,0.05)"]}},minorSplitLine:{lineStyle:{color:"#20203B"}}},valueAxis:{axisLine:{lineStyle:{color:"#B9B8CE"}},splitLine:{lineStyle:{color:"#484753"}},splitArea:{areaStyle:{color:["rgba(255,255,255,0.02)","rgba(255,255,255,0.05)"]}},minorSplitLine:{lineStyle:{color:"#20203B"}}},categoryAxis:{axisLine:{lineStyle:{color:"#B9B8CE"}},splitLine:{lineStyle:{color:"#484753"}},splitArea:{areaStyle:{color:["rgba(255,255,255,0.02)","rgba(255,255,255,0.05)"]}},minorSplitLine:{lineStyle:{color:"#20203B"}}},line:{symbol:"circle"},graph:{color:_f},gauge:{title:{color:"#B9B8CE"},axisLine:{lineStyle:{color:[[1,"rgba(207,212,219,0.2)"]]}},axisLabel:{color:"#B9B8CE"},detail:{color:"#EEF1FA"}},candlestick:{itemStyle:{color:"#f64e56",color0:"#54ea92",borderColor:"#f64e56",borderColor0:"#54ea92"}}};function bf(t){G(t)&&(t=(new DOMParser).parseFromString(t,"text/xml"));var e=t;for(9===e.nodeType&&(e=e.firstChild);"svg"!==e.nodeName.toLowerCase()||1!==e.nodeType;)e=e.nextSibling;return e}xf.categoryAxis.splitLine.show=!1;var wf=lt(),Sf=function(t,e,n){var i;if(V(e))i=e;else if(e.svg)i=[{type:"svg",source:e.svg,specialAreas:e.specialAreas}];else{var r=e.geoJson||e.geoJSON;r&&!e.features&&(n=e.specialAreas,e=r),i=[{type:"geoJSON",source:e,specialAreas:n}]}return k(i,(function(t){var e=t.type;"geoJson"===e&&(e=t.type="geoJSON");var n=If[e];n(t)})),wf.set(t,i)},Mf=function(t){return wf.get(t)},If={geoJSON:function(t){var e=t.source;t.geoJSON=G(e)?"undefined"!=typeof JSON&&JSON.parse?JSON.parse(e):new Function("return ("+e+");")():e},svg:function(t){t.svgXML=bf(t.source)}},Tf=function(){function t(){}return t.prototype.normalizeQuery=function(t){var e={},n={},i={};if(G(t)){var r=kr(t);e.mainType=r.main||null,e.subType=r.sub||null}else{var o=["Index","Name","Id"],a={name:1,dataIndex:1,dataType:1};k(t,(function(t,r){for(var s=!1,l=0;l<o.length;l++){var u=o[l],h=r.lastIndexOf(u);if(h>0&&h===r.length-u.length){var c=r.slice(0,h);"data"!==c&&(e.mainType=c,e[u.toLowerCase()]=t,s=!0)}}a.hasOwnProperty(r)&&(n[r]=t,s=!0),s||(i[r]=t)}))}return{cptQuery:e,dataQuery:n,otherQuery:i}},t.prototype.filter=function(t,e){var n=this.eventInfo;if(!n)return!0;var i=n.targetEl,r=n.packedEvent,o=n.model,a=n.view;if(!o||!a)return!0;var s=e.cptQuery,l=e.dataQuery;return u(s,o,"mainType")&&u(s,o,"subType")&&u(s,o,"index","componentIndex")&&u(s,o,"name")&&u(s,o,"id")&&u(l,r,"name")&&u(l,r,"dataIndex")&&u(l,r,"dataType")&&(!a.filterForExposedEvent||a.filterForExposedEvent(t,e.otherQuery,i,r));function u(t,e,n,i){return null==t[n]||e[i||n]===t[n]}},t.prototype.afterTrigger=function(){this.eventInfo=null},t}(),Cf={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var n=t.getData();if(t.legendSymbol&&n.setVisual("legendSymbol",t.legendSymbol),t.hasSymbolVisual){var i=t.get("symbol"),r=t.get("symbolSize"),o=t.get("symbolKeepAspect"),a=t.get("symbolRotate"),s=F(i),l=F(r),u=F(a),h=s||l||u,c=!s&&i?i:t.defaultSymbol,p=l?null:r,d=u?null:a;if(n.setVisual({legendSymbol:t.legendSymbol||c,symbol:c,symbolSize:p,symbolKeepAspect:o,symbolRotate:d}),!e.isSeriesFiltered(t))return{dataEach:h?function(e,n){var o=t.getRawValue(n),h=t.getDataParams(n);s&&e.setItemVisual(n,"symbol",i(o,h)),l&&e.setItemVisual(n,"symbolSize",r(o,h)),u&&e.setItemVisual(n,"symbolRotate",a(o,h))}:null}}}};function Af(t,e,n){switch(n){case"color":return t.getItemVisual(e,"style")[t.getVisual("drawType")];case"opacity":return t.getItemVisual(e,"style").opacity;case"symbol":case"symbolSize":case"liftZ":return t.getItemVisual(e,n);default:0}}function Df(t,e){switch(e){case"color":return t.getVisual("style")[t.getVisual("drawType")];case"opacity":return t.getVisual("style").opacity;case"symbol":case"symbolSize":case"liftZ":return t.getVisual(e);default:0}}function Lf(t,e,n,i){switch(n){case"color":t.ensureUniqueItemVisual(e,"style")[t.getVisual("drawType")]=i,t.setItemVisual(e,"colorFromPalette",!1);break;case"opacity":t.ensureUniqueItemVisual(e,"style").opacity=i;break;case"symbol":case"symbolSize":case"liftZ":t.setItemVisual(e,n,i);break;default:0}}var kf=2*Math.PI,Pf=ga.CMD,Of=["top","right","bottom","left"];function Rf(t,e,n,i,r){var o=n.width,a=n.height;switch(t){case"top":i.set(n.x+o/2,n.y-e),r.set(0,-1);break;case"bottom":i.set(n.x+o/2,n.y+a+e),r.set(0,1);break;case"left":i.set(n.x-e,n.y+a/2),r.set(-1,0);break;case"right":i.set(n.x+o+e,n.y+a/2),r.set(1,0)}}function Nf(t,e,n,i,r,o,a,s,l){a-=t,s-=e;var u=Math.sqrt(a*a+s*s),h=(a/=u)*n+t,c=(s/=u)*n+e;if(Math.abs(i-r)%kf<1e-4)return l[0]=h,l[1]=c,u-n;if(o){var p=i;i=xa(r),r=xa(p)}else i=xa(i),r=xa(r);i>r&&(r+=kf);var d=Math.atan2(s,a);if(d<0&&(d+=kf),d>=i&&d<=r||d+kf>=i&&d+kf<=r)return l[0]=h,l[1]=c,u-n;var f=n*Math.cos(i)+t,g=n*Math.sin(i)+e,y=n*Math.cos(r)+t,v=n*Math.sin(r)+e,m=(f-a)*(f-a)+(g-s)*(g-s),_=(y-a)*(y-a)+(v-s)*(v-s);return m<_?(l[0]=f,l[1]=g,Math.sqrt(m)):(l[0]=y,l[1]=v,Math.sqrt(_))}function Ef(t,e,n,i,r,o,a,s){var l=r-t,u=o-e,h=n-t,c=i-e,p=Math.sqrt(h*h+c*c),d=(l*(h/=p)+u*(c/=p))/p;s&&(d=Math.min(Math.max(d,0),1)),d*=p;var f=a[0]=t+d*h,g=a[1]=e+d*c;return Math.sqrt((f-r)*(f-r)+(g-o)*(g-o))}function zf(t,e,n,i,r,o,a){n<0&&(t+=n,n=-n),i<0&&(e+=i,i=-i);var s=t+n,l=e+i,u=a[0]=Math.min(Math.max(r,t),s),h=a[1]=Math.min(Math.max(o,e),l);return Math.sqrt((u-r)*(u-r)+(h-o)*(h-o))}var Bf=[];function Vf(t,e,n){var i=zf(e.x,e.y,e.width,e.height,t.x,t.y,Bf);return n.set(Bf[0],Bf[1]),i}function Ff(t,e,n){for(var i,r,o=0,a=0,s=0,l=0,u=1/0,h=e.data,c=t.x,p=t.y,d=0;d<h.length;){var f=h[d++];1===d&&(s=o=h[d],l=a=h[d+1]);var g=u;switch(f){case Pf.M:o=s=h[d++],a=l=h[d++];break;case Pf.L:g=Ef(o,a,h[d],h[d+1],c,p,Bf,!0),o=h[d++],a=h[d++];break;case Pf.C:g=Co(o,a,h[d++],h[d++],h[d++],h[d++],h[d],h[d+1],c,p,Bf),o=h[d++],a=h[d++];break;case Pf.Q:g=Oo(o,a,h[d++],h[d++],h[d],h[d+1],c,p,Bf),o=h[d++],a=h[d++];break;case Pf.A:var y=h[d++],v=h[d++],m=h[d++],_=h[d++],x=h[d++],b=h[d++];d+=1;var w=!!(1-h[d++]);i=Math.cos(x)*m+y,r=Math.sin(x)*_+v,d<=1&&(s=i,l=r),g=Nf(y,v,_,x,x+b,w,(c-y)*_/m+y,p,Bf),o=Math.cos(x+b)*m+y,a=Math.sin(x+b)*_+v;break;case Pf.R:g=zf(s=o=h[d++],l=a=h[d++],h[d++],h[d++],c,p,Bf);break;case Pf.Z:g=Ef(o,a,s,l,c,p,Bf,!0),o=s,a=l}g<u&&(u=g,n.set(Bf[0],Bf[1]))}return u}var Gf=new Sn,Hf=new Sn,Wf=new Sn,Yf=new Sn,Xf=new Sn;function Uf(t,e){if(t){var n=t.getTextGuideLine(),i=t.getTextContent();if(i&&n){var r=t.textGuideLineConfig||{},o=[[0,0],[0,0],[0,0]],a=r.candidates||Of,s=i.getBoundingRect().clone();s.applyTransform(i.getComputedTransform());var l=1/0,u=r.anchor,h=t.getComputedTransform(),c=h&&xe([],h),p=e.get("length2")||0;u&&Wf.copy(u);for(var d=0;d<a.length;d++){Rf(a[d],0,s,Gf,Yf),Sn.scaleAndAdd(Hf,Gf,Yf,p),Hf.transform(c);var f=t.getBoundingRect(),g=u?u.distance(Hf):t instanceof Na?Ff(Hf,t.path,Wf):Vf(Hf,f,Wf);g<l&&(l=g,Hf.transform(h),Wf.transform(h),Wf.toArray(o[0]),Hf.toArray(o[1]),Gf.toArray(o[2]))}qf(o,e.get("minTurnAngle")),n.setShape({points:o})}}}var Zf=[],jf=new Sn;function qf(t,e){if(e<=180&&e>0){e=e/180*Math.PI,Gf.fromArray(t[0]),Hf.fromArray(t[1]),Wf.fromArray(t[2]),Sn.sub(Yf,Gf,Hf),Sn.sub(Xf,Wf,Hf);var n=Yf.len(),i=Xf.len();if(!(n<.001||i<.001)){Yf.scale(1/n),Xf.scale(1/i);var r=Yf.dot(Xf);if(Math.cos(e)<r){var o=Ef(Hf.x,Hf.y,Wf.x,Wf.y,Gf.x,Gf.y,Zf,!1);jf.fromArray(Zf),jf.scaleAndAdd(Xf,o/Math.tan(Math.PI-e));var a=Wf.x!==Hf.x?(jf.x-Hf.x)/(Wf.x-Hf.x):(jf.y-Hf.y)/(Wf.y-Hf.y);if(isNaN(a))return;a<0?Sn.copy(jf,Hf):a>1&&Sn.copy(jf,Wf),jf.toArray(t[1])}}}}function Kf(t,e,n){if(n<=180&&n>0){n=n/180*Math.PI,Gf.fromArray(t[0]),Hf.fromArray(t[1]),Wf.fromArray(t[2]),Sn.sub(Yf,Hf,Gf),Sn.sub(Xf,Wf,Hf);var i=Yf.len(),r=Xf.len();if(!(i<.001||r<.001))if(Yf.scale(1/i),Xf.scale(1/r),Yf.dot(e)<Math.cos(n)){var o=Ef(Hf.x,Hf.y,Wf.x,Wf.y,Gf.x,Gf.y,Zf,!1);jf.fromArray(Zf);var a=Math.PI/2,s=a+Math.acos(Xf.dot(e))-n;if(s>=a)Sn.copy(jf,Wf);else{jf.scaleAndAdd(Xf,o/Math.tan(Math.PI/2-s));var l=Wf.x!==Hf.x?(jf.x-Hf.x)/(Wf.x-Hf.x):(jf.y-Hf.y)/(Wf.y-Hf.y);if(isNaN(l))return;l<0?Sn.copy(jf,Hf):l>1&&Sn.copy(jf,Wf)}jf.toArray(t[1])}}}function $f(t,e,n,i){var r="normal"===n,o=r?t:t.ensureState(n);o.ignore=e;var a=i.get("smooth");a&&!0===a&&(a=.3),o.shape=o.shape||{},a>0&&(o.shape.smooth=a);var s=i.getModel("lineStyle").getLineStyle();r?t.useStyle(s):o.style=s}function Jf(t,e){var n=e.smooth,i=e.points;if(i)if(t.moveTo(i[0][0],i[0][1]),n>0&&i.length>=3){var r=Lt(i[0],i[1]),o=Lt(i[1],i[2]);if(!r||!o)return t.lineTo(i[1][0],i[1][1]),void t.lineTo(i[2][0],i[2][1]);var a=Math.min(r,o)*n,s=Ot([],i[1],i[0],a/r),l=Ot([],i[1],i[2],a/o),u=Ot([],s,l,.5);t.bezierCurveTo(s[0],s[1],s[0],s[1],u[0],u[1]),t.bezierCurveTo(l[0],l[1],l[0],l[1],i[2][0],i[2][1])}else for(var h=1;h<i.length;h++)t.lineTo(i[h][0],i[h][1])}function Qf(t,e,n){var i=t.getTextGuideLine(),r=t.getTextContent();if(r){for(var o=e.normal,a=o.get("show"),s=r.ignore,l=0;l<us.length;l++){var u=us[l],h=e[u],c="normal"===u;if(h){var p=h.get("show");if((c?s:Q(r.states[u]&&r.states[u].ignore,s))||!Q(p,a)){var d=c?i:i&&i.states.normal;d&&(d.ignore=!0);continue}i||(i=new Rl,t.setTextGuideLine(i),c||!s&&a||$f(i,!0,"normal",e.normal),t.stateProxy&&(i.stateProxy=t.stateProxy)),$f(i,!1,u,h)}}if(i){I(i.style,n),i.style.fill=null;var f=o.get("showAbove");(t.textGuideLineConfig=t.textGuideLineConfig||{}).showAbove=f||!1,i.buildPath=Jf}}else i&&t.removeTextGuideLine()}function tg(t,e){e=e||"labelLine";for(var n={normal:t.getModel(e)},i=0;i<ls.length;i++){var r=ls[i];n[r]=t.getModel([r,e])}return n}function eg(t,e,n,i,r,o){var a=t.length;if(!(a<2)){t.sort((function(t,n){return t.rect[e]-n.rect[e]}));for(var s,l=0,u=!1,h=0,c=0;c<a;c++){var p=t[c],d=p.rect;(s=d[e]-l)<0&&(d[e]-=s,p.label[e]-=s,u=!0),h+=Math.max(-s,0),l=d[e]+d[n]}h>0&&o&&x(-h/a,0,a);var f,g,y=t[0],v=t[a-1];return m(),f<0&&b(-f,.8),g<0&&b(g,.8),m(),_(f,g,1),_(g,f,-1),m(),f<0&&w(-f),g<0&&w(g),u}function m(){f=y.rect[e]-i,g=r-v.rect[e]-v.rect[n]}function _(t,e,n){if(t<0){var i=Math.min(e,-t);if(i>0){x(i*n,0,a);var r=i+t;r<0&&b(-r*n,1)}else b(-t*n,1)}}function x(n,i,r){0!==n&&(u=!0);for(var o=i;o<r;o++){var a=t[o];a.rect[e]+=n,a.label[e]+=n}}function b(i,r){for(var o=[],s=0,l=1;l<a;l++){var u=t[l-1].rect,h=Math.max(t[l].rect[e]-u[e]-u[n],0);o.push(h),s+=h}if(s){var c=Math.min(Math.abs(i)/s,r);if(i>0)for(l=0;l<a-1;l++){x(o[l]*c,0,l+1)}else for(l=a-1;l>0;l--){x(-(o[l-1]*c),l,a)}}}function w(t){var e=t<0?-1:1;t=Math.abs(t);for(var n=Math.ceil(t/(a-1)),i=0;i<a-1;i++)if(e>0?x(n,0,i+1):x(-n,a-i-1,a),(t-=n)<=0)return}}function ng(t,e,n,i){return eg(t,"y","height",e,n,i)}function ig(t){if(t){for(var e=[],n=0;n<t.length;n++)e.push(t[n].slice());return e}}function rg(t,e){var n=t.label,i=e&&e.getTextGuideLine();return{dataIndex:t.dataIndex,dataType:t.dataType,seriesIndex:t.seriesModel.seriesIndex,text:t.label.style.text,rect:t.hostRect,labelRect:t.rect,align:n.style.align,verticalAlign:n.style.verticalAlign,labelLinePoints:ig(i&&i.shape.points)}}var og=["align","verticalAlign","width","height","fontSize"],ag=new De,sg=br(),lg=br();function ug(t,e,n){for(var i=0;i<n.length;i++){var r=n[i];null!=e[r]&&(t[r]=e[r])}}var hg=["x","y","rotation"],cg=function(){function t(){this._labelList=[],this._chartViewList=[]}return t.prototype.clearLabels=function(){this._labelList=[],this._chartViewList=[]},t.prototype._addLabel=function(t,e,n,i,r){var o=i.style,a=i.__hostTarget.textConfig||{},s=i.getComputedTransform(),l=i.getBoundingRect().plain();Pn.applyTransform(l,l,s),s?ag.setLocalTransform(s):(ag.x=ag.y=ag.rotation=ag.originX=ag.originY=0,ag.scaleX=ag.scaleY=1);var u,h=i.__hostTarget;if(h){u=h.getBoundingRect().plain();var c=h.getComputedTransform();Pn.applyTransform(u,u,c)}var p=u&&h.getTextGuideLine();this._labelList.push({label:i,labelLine:p,seriesModel:n,dataIndex:t,dataType:e,layoutOption:r,computedLayoutOption:null,rect:l,hostRect:u,priority:u?u.width*u.height:0,defaultAttr:{ignore:i.ignore,labelGuideIgnore:p&&p.ignore,x:ag.x,y:ag.y,rotation:ag.rotation,style:{x:o.x,y:o.y,align:o.align,verticalAlign:o.verticalAlign,width:o.width,height:o.height,fontSize:o.fontSize},cursor:i.cursor,attachedPos:a.position,attachedRot:a.rotation}})},t.prototype.addLabelsOfSeries=function(t){var e=this;this._chartViewList.push(t);var n=t.__model,i=n.get("labelLayout");(F(i)||E(i).length)&&t.group.traverse((function(t){if(t.ignore)return!0;var r=t.getTextContent(),o=rs(t);r&&!r.disableLabelLayout&&e._addLabel(o.dataIndex,o.dataType,n,r,i)}))},t.prototype.updateLayoutConfig=function(t){var e=t.getWidth(),n=t.getHeight();function i(t,e){return function(){Uf(t,e)}}for(var r=0;r<this._labelList.length;r++){var o=this._labelList[r],a=o.label,s=a.__hostTarget,l=o.defaultAttr,u=void 0;u=(u="function"==typeof o.layoutOption?o.layoutOption(rg(o,s)):o.layoutOption)||{},o.computedLayoutOption=u;var h=Math.PI/180;s&&s.setTextConfig({local:!1,position:null!=u.x||null!=u.y?null:l.attachedPos,rotation:null!=u.rotate?u.rotate*h:l.attachedRot,offset:[u.dx||0,u.dy||0]});var c=!1;if(null!=u.x?(a.x=Gi(u.x,e),a.setStyle("x",0),c=!0):(a.x=l.x,a.setStyle("x",l.style.x)),null!=u.y?(a.y=Gi(u.y,n),a.setStyle("y",0),c=!0):(a.y=l.y,a.setStyle("y",l.style.y)),u.labelLinePoints){var p=s.getTextGuideLine();p&&(p.setShape({points:u.labelLinePoints}),c=!1)}sg(a).needsUpdateLabelLine=c,a.rotation=null!=u.rotate?u.rotate*h:l.rotation;for(var d=0;d<og.length;d++){var f=og[d];a.setStyle(f,null!=u[f]?u[f]:l.style[f])}if(u.draggable){if(a.draggable=!0,a.cursor="move",s){var g=o.seriesModel;if(null!=o.dataIndex)g=o.seriesModel.getData(o.dataType).getItemModel(o.dataIndex);a.on("drag",i(s,g.getModel("labelLine")))}}else a.off("drag"),a.cursor=l.cursor}},t.prototype.layout=function(t){var e,n=t.getWidth(),i=t.getHeight(),r=function(t){for(var e=[],n=0;n<t.length;n++){var i=t[n];if(!i.defaultAttr.ignore){var r=i.label,o=r.getComputedTransform(),a=r.getBoundingRect(),s=!o||o[1]<1e-5&&o[2]<1e-5,l=r.style.margin||0,u=a.clone();u.applyTransform(o),u.x-=l/2,u.y-=l/2,u.width+=l,u.height+=l;var h=s?new Jl(a,o):null;e.push({label:r,labelLine:i.labelLine,rect:u,localRect:a,obb:h,priority:i.priority,defaultAttr:i.defaultAttr,layoutOption:i.computedLayoutOption,axisAligned:s,transform:o})}}return e}(this._labelList),o=R(r,(function(t){return"shiftX"===t.layoutOption.moveOverlap})),a=R(r,(function(t){return"shiftY"===t.layoutOption.moveOverlap}));eg(o,"x","width",0,n,e),ng(a,0,i),function(t){var e=[];t.sort((function(t,e){return e.priority-t.priority}));var n=new Pn(0,0,0,0);function i(t){if(!t.ignore){var e=t.ensureState("emphasis");null==e.ignore&&(e.ignore=!1)}t.ignore=!0}for(var r=0;r<t.length;r++){var o=t[r],a=o.axisAligned,s=o.localRect,l=o.transform,u=o.label,h=o.labelLine;n.copy(o.rect),n.width-=.1,n.height-=.1,n.x+=.05,n.y+=.05;for(var c=o.obb,p=!1,d=0;d<e.length;d++){var f=e[d];if(n.intersect(f.rect)){if(a&&f.axisAligned){p=!0;break}if(f.obb||(f.obb=new Jl(f.localRect,f.transform)),c||(c=new Jl(s,l)),c.intersect(f.obb)){p=!0;break}}}p?(i(u),h&&i(h)):(u.attr("ignore",o.defaultAttr.ignore),h&&h.attr("ignore",o.defaultAttr.labelGuideIgnore),e.push(o))}}(R(r,(function(t){return t.layoutOption.hideOverlap})))},t.prototype.processLabelsOverall=function(){var t=this;k(this._chartViewList,(function(e){var n=e.__model,i=e.ignoreLabelLineUpdate,r=n.isAnimationEnabled();e.group.traverse((function(e){if(e.ignore)return!0;var o=!i,a=e.getTextContent();!o&&a&&(o=sg(a).needsUpdateLabelLine),o&&t._updateLabelLine(e,n),r&&t._animateLabels(e,n)}))}))},t.prototype._updateLabelLine=function(t,e){var n=t.getTextContent(),i=rs(t),r=i.dataIndex;if(n&&null!=r){var o=e.getData(i.dataType),a=o.getItemModel(r),s={},l=o.getItemVisual(r,"style"),u=o.getVisual("drawType");s.stroke=l[u];var h=a.getModel("labelLine");Qf(t,tg(a),s),Uf(t,h)}},t.prototype._animateLabels=function(t,e){var n=t.getTextContent(),i=t.getTextGuideLine();if(n&&!n.ignore&&!n.invisible&&!t.disableLabelAnimation&&!bu(t)){var r=(d=sg(n)).oldLayout,o=rs(t),a=o.dataIndex,s={x:n.x,y:n.y,rotation:n.rotation},l=e.getData(o.dataType);if(r){n.attr(r);var u=t.prevStates;u&&(C(u,"select")>=0&&n.attr(d.oldLayoutSelect),C(u,"emphasis")>=0&&n.attr(d.oldLayoutEmphasis)),yu(n,s,e,a)}else if(n.attr(s),!Uu(n).valueAnimation){var h=Q(n.style.opacity,1);n.style.opacity=0,vu(n,{style:{opacity:h}},e,a)}if(d.oldLayout=s,n.states.select){var c=d.oldLayoutSelect={};ug(c,s,hg),ug(c,n.states.select,hg)}if(n.states.emphasis){var p=d.oldLayoutEmphasis={};ug(p,s,hg),ug(p,n.states.emphasis,hg)}ju(n,a,l,e,e)}if(i&&!i.ignore&&!i.invisible){r=(d=lg(i)).oldLayout;var d,f={points:i.shape.points};r?(i.attr({shape:r}),yu(i,{shape:f},e)):(i.setShape(f),i.style.strokePercent=0,vu(i,{style:{strokePercent:1}},e)),d.oldLayout=f}},t}();function pg(t,e){function n(e,n){var i=[];return e.eachComponent({mainType:"series",subType:t,query:n},(function(t){i.push(t.seriesIndex)})),i}k([[t+"ToggleSelect","toggleSelect"],[t+"Select","select"],[t+"UnSelect","unselect"]],(function(t){e(t[0],(function(e,i,r){e=M({},e),r.dispatchAction(M(e,{type:t[1],seriesIndex:n(i,e)}))}))}))}function dg(t,e,n,i,r){var o=t+e;n.isSilent(o)||i.eachComponent({mainType:"series",subType:"pie"},(function(t){for(var e=t.seriesIndex,i=r.selected,a=0;a<i.length;a++)if(i[a].seriesIndex===e){var s=t.getData(),l=xr(s,r.fromActionPayload);n.trigger(o,{type:o,seriesId:t.id,name:V(l)?s.getName(l[0]):s.getName(l),selected:M({},t.option.selectedMap)})}}))}function fg(t,e,n){for(var i;t&&(!e(t)||(i=t,!n));)t=t.__hostTarget||t.parent;return i}var gg=Math.round(9*Math.random()),yg=function(){function t(){this._id="__ec_inner_"+gg++}return t.prototype.get=function(t){return this._guard(t)[this._id]},t.prototype.set=function(t,e){var n=this._guard(t);return"function"==typeof Object.defineProperty?Object.defineProperty(n,this._id,{value:e,enumerable:!1,configurable:!0}):n[this._id]=e,this},t.prototype.delete=function(t){return!!this.has(t)&&(delete this._guard(t)[this._id],!0)},t.prototype.has=function(t){return!!this._guard(t)[this._id]},t.prototype._guard=function(t){if(t!==Object(t))throw TypeError("Value of WeakMap is not a non-null object.");return t},t}(),vg=Na.extend({type:"triangle",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var n=e.cx,i=e.cy,r=e.width/2,o=e.height/2;t.moveTo(n,i-o),t.lineTo(n+r,i+o),t.lineTo(n-r,i+o),t.closePath()}}),mg=Na.extend({type:"diamond",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var n=e.cx,i=e.cy,r=e.width/2,o=e.height/2;t.moveTo(n,i-o),t.lineTo(n+r,i),t.lineTo(n,i+o),t.lineTo(n-r,i),t.closePath()}}),_g=Na.extend({type:"pin",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var n=e.x,i=e.y,r=e.width/5*3,o=Math.max(r,e.height),a=r/2,s=a*a/(o-a),l=i-o+a+s,u=Math.asin(s/a),h=Math.cos(u)*a,c=Math.sin(u),p=Math.cos(u),d=.6*a,f=.7*a;t.moveTo(n-h,l+s),t.arc(n,l,a,Math.PI-u,2*Math.PI+u),t.bezierCurveTo(n+h-c*d,l+s+p*d,n,i-f,n,i),t.bezierCurveTo(n,i-f,n-h+c*d,l+s+p*d,n-h,l+s),t.closePath()}}),xg=Na.extend({type:"arrow",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var n=e.height,i=e.width,r=e.x,o=e.y,a=i/3*2;t.moveTo(r,o),t.lineTo(r+a,o+n),t.lineTo(r,o+n/4*3),t.lineTo(r-a,o+n),t.lineTo(r,o),t.closePath()}}),bg={line:function(t,e,n,i,r){r.x=t,r.y=e+i/2-1,r.width=n,r.height=2},rect:function(t,e,n,i,r){r.x=t,r.y=e,r.width=n,r.height=i},roundRect:function(t,e,n,i,r){r.x=t,r.y=e,r.width=n,r.height=i,r.r=Math.min(n,i)/4},square:function(t,e,n,i,r){var o=Math.min(n,i);r.x=t,r.y=e,r.width=o,r.height=o},circle:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.r=Math.min(n,i)/2},diamond:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.width=n,r.height=i},pin:function(t,e,n,i,r){r.x=t+n/2,r.y=e+i/2,r.width=n,r.height=i},arrow:function(t,e,n,i,r){r.x=t+n/2,r.y=e+i/2,r.width=n,r.height=i},triangle:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.width=n,r.height=i}},wg={};k({line:Za,rect:Za,roundRect:Za,square:Za,circle:ul,diamond:mg,pin:_g,arrow:xg,triangle:vg},(function(t,e){wg[e]=new t}));var Sg=Na.extend({type:"symbol",shape:{symbolType:"",x:0,y:0,width:0,height:0},calculateTextPosition:function(t,e,n){var i=Wn(t,e,n),r=this.shape;return r&&"pin"===r.symbolType&&"inside"===e.position&&(i.y=n.y+.4*n.height),i},buildPath:function(t,e,n){var i=e.symbolType;if("none"!==i){var r=wg[i];r||(r=wg[i="rect"]),bg[i](e.x,e.y,e.width,e.height,r.shape),r.buildPath(t,r.shape,n)}}});function Mg(t,e){if("image"!==this.type){var n=this.style;this.__isEmptyBrush?(n.stroke=t,n.fill=e||"#fff",n.lineWidth=2):n.fill=t,this.markRedraw()}}function Ig(t,e,n,i,r,o,a){var s,l=0===t.indexOf("empty");return l&&(t=t.substr(5,1).toLowerCase()+t.substr(6)),(s=0===t.indexOf("image://")?hu(t.slice(8),new Pn(e,n,i,r),a?"center":"cover"):0===t.indexOf("path://")?uu(t.slice(7),{},new Pn(e,n,i,r),a?"center":"cover"):new Sg({shape:{symbolType:t,x:e,y:n,width:i,height:r}})).__isEmptyBrush=l,s.setColor=Mg,o&&s.setColor(o),s}function Tg(t,e,n){for(var i="radial"===e.type?function(t,e,n){var i=n.width,r=n.height,o=Math.min(i,r),a=null==e.x?.5:e.x,s=null==e.y?.5:e.y,l=null==e.r?.5:e.r;return e.global||(a=a*i+n.x,s=s*r+n.y,l*=o),t.createRadialGradient(a,s,0,a,s,l)}(t,e,n):function(t,e,n){var i=null==e.x?0:e.x,r=null==e.x2?1:e.x2,o=null==e.y?0:e.y,a=null==e.y2?0:e.y2;return e.global||(i=i*n.width+n.x,r=r*n.width+n.x,o=o*n.height+n.y,a=a*n.height+n.y),i=isNaN(i)?0:i,r=isNaN(r)?1:r,o=isNaN(o)?0:o,a=isNaN(a)?0:a,t.createLinearGradient(i,o,r,a)}(t,e,n),r=e.colorStops,o=0;o<r.length;o++)i.addColorStop(r[o].offset,r[o].color);return i}function Cg(t,e){if(t===e||!t&&!e)return!1;if(!t||!e||t.length!==e.length)return!0;for(var n=0;n<t.length;n++)if(t[n]!==e[n])return!0;return!1}function Ag(t,e){return t&&"solid"!==t&&e>0?(e=e||1,"dashed"===t?[4*e,2*e]:"dotted"===t?[e]:W(t)?[t]:V(t)?t:null):null}var Dg=new ga(!0);function Lg(t){var e=t.stroke;return!(null==e||"none"===e||!(t.lineWidth>0))}function kg(t){var e=t.fill;return null!=e&&"none"!==e}function Pg(t,e){if(null!=e.fillOpacity&&1!==e.fillOpacity){var n=t.globalAlpha;t.globalAlpha=e.fillOpacity*e.opacity,t.fill(),t.globalAlpha=n}else t.fill()}function Og(t,e){if(null!=e.strokeOpacity&&1!==e.strokeOpacity){var n=t.globalAlpha;t.globalAlpha=e.strokeOpacity*e.opacity,t.stroke(),t.globalAlpha=n}else t.stroke()}function Rg(t,e,n){var i=Yr(e.image,e.__image,n);if(Ur(i)){var r=t.createPattern(i,e.repeat||"repeat");if("function"==typeof DOMMatrix){var o=new DOMMatrix;o.rotateSelf(0,0,(e.rotation||0)/Math.PI*180),o.scaleSelf(e.scaleX||1,e.scaleY||1),o.translateSelf(e.x||0,e.y||0),r.setTransform(o)}return r}}var Ng=["shadowBlur","shadowOffsetX","shadowOffsetY"],Eg=[["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]];function zg(t,e,n,i,r){var o=!1;if(!i&&e===(n=n||{}))return!1;(i||e.opacity!==n.opacity)&&(o||(Fg(t,r),o=!0),t.globalAlpha=null==e.opacity?ao.opacity:e.opacity),(i||e.blend!==n.blend)&&(o||(Fg(t,r),o=!0),t.globalCompositeOperation=e.blend||ao.blend);for(var a=0;a<Ng.length;a++){var s=Ng[a];(i||e[s]!==n[s])&&(o||(Fg(t,r),o=!0),t[s]=t.dpr*(e[s]||0))}return(i||e.shadowColor!==n.shadowColor)&&(o||(Fg(t,r),o=!0),t.shadowColor=e.shadowColor||ao.shadowColor),o}function Bg(t,e,n,i,r){var o=Gg(e,r.inHover),a=i?null:n&&Gg(n,r.inHover)||{};if(o===a)return!1;var s=zg(t,o,a,i,r);if((i||o.fill!==a.fill)&&(s||(Fg(t,r),s=!0),t.fillStyle=o.fill),(i||o.stroke!==a.stroke)&&(s||(Fg(t,r),s=!0),t.strokeStyle=o.stroke),(i||o.opacity!==a.opacity)&&(s||(Fg(t,r),s=!0),t.globalAlpha=null==o.opacity?1:o.opacity),e.hasStroke()){var l=o.lineWidth/(o.strokeNoScale&&e&&e.getLineScale?e.getLineScale():1);t.lineWidth!==l&&(s||(Fg(t,r),s=!0),t.lineWidth=l)}for(var u=0;u<Eg.length;u++){var h=Eg[u],c=h[0];(i||o[c]!==a[c])&&(s||(Fg(t,r),s=!0),t[c]=o[c]||h[1])}return s}function Vg(t,e){var n=e.transform,i=t.dpr||1;n?t.setTransform(i*n[0],i*n[1],i*n[2],i*n[3],i*n[4],i*n[5]):t.setTransform(i,0,0,i,0,0)}function Fg(t,e){e.batchFill&&t.fill(),e.batchStroke&&t.stroke(),e.batchFill="",e.batchStroke=""}function Gg(t,e){return e&&t.__hoverStyle||t.style}function Hg(t,e){Wg(t,e,{inHover:!1,viewWidth:0,viewHeight:0},!0)}function Wg(t,e,n,i){var r=e.transform;if(!e.shouldBePainted(n.viewWidth,n.viewHeight,!1,!1))return e.__dirty&=~Kn.REDARAW_BIT,void(e.__isRendered=!1);var o=e.__clipPaths,a=n.prevElClipPaths,s=!1,l=!1;if(a&&!Cg(o,a)||(a&&a.length&&(Fg(t,n),t.restore(),l=s=!0,n.prevElClipPaths=null,n.allClipped=!1,n.prevEl=null),o&&o.length&&(Fg(t,n),t.save(),function(t,e,n){for(var i=!1,r=0;r<t.length;r++){var o=t[r];i=i||o.isZeroArea(),Vg(e,o),e.beginPath(),o.buildPath(e,o.shape),e.clip()}n.allClipped=i}(o,t,n),s=!0),n.prevElClipPaths=o),n.allClipped)e.__isRendered=!1;else{e.beforeBrush&&e.beforeBrush(),e.innerBeforeBrush();var u=n.prevEl;u||(l=s=!0);var h,c,p=e instanceof Na&&e.autoBatch&&function(t){var e=kg(t),n=Lg(t);return!(t.lineDash||!(+e^+n)||e&&"string"!=typeof t.fill||n&&"string"!=typeof t.stroke||t.strokePercent<1||t.strokeOpacity<1||t.fillOpacity<1)}(e.style);s||(h=r,c=u.transform,h&&c?h[0]!==c[0]||h[1]!==c[1]||h[2]!==c[2]||h[3]!==c[3]||h[4]!==c[4]||h[5]!==c[5]:h||c)?(Fg(t,n),Vg(t,e)):p||Fg(t,n);var d=Gg(e,n.inHover);e instanceof Na?(1!==n.lastDrawType&&(l=!0,n.lastDrawType=1),Bg(t,e,u,l,n),p&&(n.batchFill||n.batchStroke)||t.beginPath(),function(t,e,n,i){var r=Lg(n),o=kg(n),a=n.strokePercent,s=a<1,l=!e.path;e.silent&&!s||!l||e.createPathProxy();var u=e.path||Dg;if(!i){var h=n.fill,c=n.stroke,p=o&&!!h.colorStops,d=r&&!!c.colorStops,f=o&&!!h.image,g=r&&!!c.image,y=void 0,v=void 0,m=void 0,_=void 0,x=void 0;(p||d)&&(x=e.getBoundingRect()),p&&(y=e.__dirty?Tg(t,h,x):e.__canvasFillGradient,e.__canvasFillGradient=y),d&&(v=e.__dirty?Tg(t,c,x):e.__canvasStrokeGradient,e.__canvasStrokeGradient=v),f&&(m=e.__dirty||!e.__canvasFillPattern?Rg(t,h,e):e.__canvasFillPattern,e.__canvasFillPattern=m),g&&(_=e.__dirty||!e.__canvasStrokePattern?Rg(t,c,e):e.__canvasStrokePattern,e.__canvasStrokePattern=m),p?t.fillStyle=y:f&&(m?t.fillStyle=m:o=!1),d?t.strokeStyle=v:g&&(_?t.strokeStyle=_:r=!1)}var b=n.lineDash&&n.lineWidth>0&&Ag(n.lineDash,n.lineWidth),w=n.lineDashOffset,S=!!t.setLineDash,M=e.getGlobalScale();if(u.setScale(M[0],M[1],e.segmentIgnoreThreshold),b){var I=n.strokeNoScale&&e.getLineScale?e.getLineScale():1;I&&1!==I&&(b=P(b,(function(t){return t/I})),w/=I)}var T=!0;(l||e.__dirty&Na.SHAPE_CHANGED_BIT||b&&!S&&r)&&(u.setDPR(t.dpr),s?u.setContext(null):(u.setContext(t),T=!1),u.reset(),b&&!S&&(u.setLineDash(b),u.setLineDashOffset(w)),e.buildPath(u,e.shape,i),u.toStatic(),e.pathUpdated()),T&&u.rebuildPath(t,s?a:1),b&&S&&(t.setLineDash(b),t.lineDashOffset=w),i||(n.strokeFirst?(r&&Og(t,n),o&&Pg(t,n)):(o&&Pg(t,n),r&&Og(t,n))),b&&S&&t.setLineDash([])}(t,e,d,p),p&&(n.batchFill=d.fill||"",n.batchStroke=d.stroke||"")):e instanceof za?(3!==n.lastDrawType&&(l=!0,n.lastDrawType=3),Bg(t,e,u,l,n),function(t,e,n){var i=n.text;if(null!=i&&(i+=""),i){t.font=n.font||Rn,t.textAlign=n.textAlign,t.textBaseline=n.textBaseline;var r=void 0;if(t.setLineDash){var o=n.lineDash&&n.lineWidth>0&&Ag(n.lineDash,n.lineWidth),a=n.lineDashOffset;if(o){var s=n.strokeNoScale&&e.getLineScale?e.getLineScale():1;s&&1!==s&&(o=P(o,(function(t){return t/s})),a/=s),t.setLineDash(o),t.lineDashOffset=a,r=!0}}n.strokeFirst?(Lg(n)&&t.strokeText(i,n.x,n.y),kg(n)&&t.fillText(i,n.x,n.y)):(kg(n)&&t.fillText(i,n.x,n.y),Lg(n)&&t.strokeText(i,n.x,n.y)),r&&t.setLineDash([])}}(t,e,d)):e instanceof Fa?(2!==n.lastDrawType&&(l=!0,n.lastDrawType=2),function(t,e,n,i,r){zg(t,Gg(e,r.inHover),n&&Gg(n,r.inHover),i,r)}(t,e,u,l,n),function(t,e,n){var i=e.__image=Yr(n.image,e.__image,e,e.onload);if(i&&Ur(i)){var r=n.x||0,o=n.y||0,a=e.getWidth(),s=e.getHeight(),l=i.width/i.height;if(null==a&&null!=s?a=s*l:null==s&&null!=a?s=a/l:null==a&&null==s&&(a=i.width,s=i.height),n.sWidth&&n.sHeight){var u=n.sx||0,h=n.sy||0;t.drawImage(i,u,h,n.sWidth,n.sHeight,r,o,a,s)}else if(n.sx&&n.sy){var c=a-(u=n.sx),p=s-(h=n.sy);t.drawImage(i,u,h,c,p,r,o,a,s)}else t.drawImage(i,r,o,a,s)}}(t,e,d)):e instanceof tu&&(4!==n.lastDrawType&&(l=!0,n.lastDrawType=4),function(t,e,n){var i=e.getDisplayables(),r=e.getTemporalDisplayables();t.save();var o,a,s={prevElClipPaths:null,prevEl:null,allClipped:!1,viewWidth:n.viewWidth,viewHeight:n.viewHeight,inHover:n.inHover};for(o=e.getCursor(),a=i.length;o<a;o++){(h=i[o]).beforeBrush&&h.beforeBrush(),h.innerBeforeBrush(),Wg(t,h,s,o===a-1),h.innerAfterBrush(),h.afterBrush&&h.afterBrush(),s.prevEl=h}for(var l=0,u=r.length;l<u;l++){var h;(h=r[l]).beforeBrush&&h.beforeBrush(),h.innerBeforeBrush(),Wg(t,h,s,l===u-1),h.innerAfterBrush(),h.afterBrush&&h.afterBrush(),s.prevEl=h}e.clearTemporalDisplayables(),e.notClear=!0,t.restore()}(t,e,n)),p&&i&&Fg(t,n),e.innerAfterBrush(),e.afterBrush&&e.afterBrush(),n.prevEl=e,e.__dirty=0,e.__isRendered=!0}}var Yg=new yg,Xg=new Re(100),Ug=["symbol","symbolSize","symbolKeepAspect","color","backgroundColor","dashArrayX","dashArrayY","maxTileWidth","maxTileHeight"];function Zg(t,e){if("none"===t)return null;var n=e.getDevicePixelRatio(),i=e.getZr(),r="svg"===i.painter.type;t.dirty&&Yg.delete(t);var o=Yg.get(t);if(o)return o;var a=I(t,{symbol:"rect",symbolSize:1,symbolKeepAspect:!0,color:"rgba(0, 0, 0, 0.2)",backgroundColor:null,dashArrayX:5,dashArrayY:5,rotation:0,maxTileWidth:512,maxTileHeight:512});"none"===a.backgroundColor&&(a.backgroundColor=null);var s={repeat:"repeat"};return function(t){for(var e,o=[n],s=!0,l=0;l<Ug.length;++l){var u=a[Ug[l]],h=typeof u;if(null!=u&&!V(u)&&"string"!==h&&"number"!==h&&"boolean"!==h){s=!1;break}o.push(u)}if(s){e=o.join(",")+(r?"-svg":"");var c=Xg.get(e);c&&(r?t.svgElement=c:t.image=c)}var p,d=qg(a.dashArrayX),f=function(t){if(!t||"object"==typeof t&&0===t.length)return[0,0];if("number"==typeof t){var e=Math.ceil(t);return[e,e]}var n=P(t,(function(t){return Math.ceil(t)}));return t.length%2?n.concat(n):n}(a.dashArrayY),g=jg(a.symbol),y=(b=d,P(b,(function(t){return Kg(t)}))),v=Kg(f),m=!r&&T(),_=r&&i.painter.createSVGElement("g"),x=function(){for(var t=1,e=0,n=y.length;e<n;++e)t=sr(t,y[e]);var i=1;for(e=0,n=g.length;e<n;++e)i=sr(i,g[e].length);t*=i;var r=v*y.length*g.length;return{width:Math.max(1,Math.min(t,a.maxTileWidth)),height:Math.max(1,Math.min(r,a.maxTileHeight))}}();var b;m&&(m.width=x.width*n,m.height=x.height*n,p=m.getContext("2d"));(function(){p&&(p.clearRect(0,0,m.width,m.height),a.backgroundColor&&(p.fillStyle=a.backgroundColor,p.fillRect(0,0,m.width,m.height)));for(var t=0,e=0;e<f.length;++e)t+=f[e];if(t<=0)return;var o=-v,s=0,l=0,u=0;for(;o<x.height;){if(s%2==0){for(var h=l/2%g.length,c=0,y=0,b=0;c<2*x.width;){var w=0;for(e=0;e<d[u].length;++e)w+=d[u][e];if(w<=0)break;if(y%2==0){var S=.5*(1-a.symbolSize),M=c+d[u][y]*S,I=o+f[s]*S,T=d[u][y]*a.symbolSize,C=f[s]*a.symbolSize,A=b/2%g[h].length;D(M,I,T,C,g[h][A])}c+=d[u][y],++b,++y===d[u].length&&(y=0)}++u===d.length&&(u=0)}o+=f[s],++l,++s===f.length&&(s=0)}function D(t,e,o,s,l){var u=r?1:n,h=Ig(l,t*u,e*u,o*u,s*u,a.color,a.symbolKeepAspect);r?_.appendChild(i.painter.paintOne(h)):Hg(p,h)}})(),s&&Xg.put(e,m||_);t.image=m,t.svgElement=_,t.svgWidth=x.width,t.svgHeight=x.height}(s),s.rotation=a.rotation,s.scaleX=s.scaleY=r?1:1/n,Yg.set(t,s),t.dirty=!1,s}function jg(t){if(!t||0===t.length)return[["rect"]];if("string"==typeof t)return[[t]];for(var e=!0,n=0;n<t.length;++n)if("string"!=typeof t[n]){e=!1;break}if(e)return jg([t]);var i=[];for(n=0;n<t.length;++n)"string"==typeof t[n]?i.push([t[n]]):i.push(t[n]);return i}function qg(t){if(!t||0===t.length)return[[0,0]];if("number"==typeof t)return[[r=Math.ceil(t),r]];for(var e=!0,n=0;n<t.length;++n)if("number"!=typeof t[n]){e=!1;break}if(e)return qg([t]);var i=[];for(n=0;n<t.length;++n)if("number"==typeof t[n]){var r=Math.ceil(t[n]);i.push([r,r])}else{(r=P(t[n],(function(t){return Math.ceil(t)}))).length%2==1?i.push(r.concat(r)):i.push(r)}return i}function Kg(t){for(var e=0,n=0;n<t.length;++n)e+=t[n];return t.length%2==1?2*e:e}var $g=it,Jg=k,Qg=F,ty=Y,ey=C,ny="undefined"!=typeof window,iy="5.0.1",ry={zrender:"5.0.2"},oy={PROCESSOR:{FILTER:1e3,SERIES_FILTER:800,STATISTIC:5e3},VISUAL:{LAYOUT:1e3,PROGRESSIVE_LAYOUT:1100,GLOBAL:2e3,CHART:3e3,POST_CHART_LAYOUT:4600,COMPONENT:4e3,BRUSH:5e3,CHART_ITEM:4500,ARIA:6e3,DECAL:7e3}},ay=/^[a-zA-Z0-9_]+$/;function sy(t){return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];if(!this.isDisposed())return uy(this,t,e);Ey(this.id)}}function ly(t){return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return uy(this,t,e)}}function uy(t,e,n){return n[0]=n[0]&&n[0].toLowerCase(),Ft.prototype[e].apply(t,n)}var hy,cy,py,dy,fy,gy,yy,vy,my,_y,xy,by,wy,Sy,My,Iy,Ty,Cy,Ay,Dy,Ly,ky=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n}(Ft),Py=ky.prototype;Py.on=ly("on"),Py.off=ly("off");var Oy=function(t){function n(e,n,i){var r=t.call(this,new Tf)||this;r._chartsViews=[],r._chartsMap={},r._componentsViews=[],r._componentsMap={},r._pendingActions=[],i=i||{},"string"==typeof n&&(n=Yy[n]),r._dom=e;var o="canvas",a=!1,s=r._zr=zi(e,{renderer:i.renderer||o,devicePixelRatio:i.devicePixelRatio,width:i.width,height:i.height,useDirtyRect:null==i.useDirtyRect?a:i.useDirtyRect});r._throttledZrFlush=Wd(z(s.flush,s),17),(n=b(n))&&lp(n,!0),r._theme=n,r._locale=function(t){if(G(t)){var e=hh[t.toUpperCase()]||{};return"ZH"===t||"EN"===t?b(e):w(b(e),b(hh.EN),!1)}return w(b(t),b(hh.EN),!1)}(i.locale||ph),r._coordSysMgr=new Vc;var l=r._api=Ty(r);function u(t,e){return t.__prio-e.__prio}return ai(Wy,u),ai(Vy,u),r._scheduler=new ef(r,l,Vy,Wy),r._messageCenter=new ky,r._labelManager=new cg,r._initEvents(),r.resize=z(r.resize,r),s.animation.on("frame",r._onframe,r),_y(s,r),xy(s,r),ot(r),r}return e(n,t),n.prototype._onframe=function(){if(!this._disposed){Ly(this);var t=this._scheduler;if(this.__optionUpdated){var e=this.__optionUpdated.silent;this.__flagInMainProcess=!0,hy(this),dy.update.call(this),this._zr.flush(),this.__flagInMainProcess=!1,this.__optionUpdated=!1,vy.call(this,e),my.call(this,e)}else if(t.unfinished){var n=1,i=this._model,r=this._api;t.unfinished=!1;do{var o=+new Date;t.performSeriesTasks(i),t.performDataProcessorTasks(i),gy(this,i),t.performVisualTasks(i),My(this,this._model,r,"remain"),n-=+new Date-o}while(n>0&&t.unfinished);t.unfinished||this._zr.flush()}}},n.prototype.getDom=function(){return this._dom},n.prototype.getId=function(){return this.id},n.prototype.getZr=function(){return this._zr},n.prototype.setOption=function(t,e,n){if(this._disposed)Ey(this.id);else{var i,r,o;if(ty(e)&&(n=e.lazyUpdate,i=e.silent,r=e.replaceMerge,o=e.transition,e=e.notMerge),this.__flagInMainProcess=!0,!this._model||e){var a=new Gc(this._api),s=this._theme,l=this._model=new Pc;l.scheduler=this._scheduler,l.init(null,null,null,s,this._locale,a)}this._model.setOption(t,{replaceMerge:r},Fy),Ay(this,o),n?(this.__optionUpdated={silent:i},this.__flagInMainProcess=!1,this.getZr().wakeUp()):(hy(this),dy.update.call(this),this._zr.flush(),this.__optionUpdated=!1,this.__flagInMainProcess=!1,vy.call(this,i),my.call(this,i))}},n.prototype.setTheme=function(){console.error("ECharts#setTheme() is DEPRECATED in ECharts 3.0")},n.prototype.getModel=function(){return this._model},n.prototype.getOption=function(){return this._model&&this._model.getOption()},n.prototype.getWidth=function(){return this._zr.getWidth()},n.prototype.getHeight=function(){return this._zr.getHeight()},n.prototype.getDevicePixelRatio=function(){return this._zr.painter.dpr||ny&&window.devicePixelRatio||1},n.prototype.getRenderedCanvas=function(t){if(o.canvasSupported)return(t=M({},t||{})).pixelRatio=t.pixelRatio||1,t.backgroundColor=t.backgroundColor||this._model.get("backgroundColor"),this._zr.painter.getRenderedCanvas(t)},n.prototype.getSvgDataURL=function(){if(o.svgSupported){var t=this._zr;return k(t.storage.getDisplayList(),(function(t){t.stopAnimation(null,!0)})),t.painter.toDataURL()}},n.prototype.getDataURL=function(t){if(!this._disposed){var e=(t=t||{}).excludeComponents,n=this._model,i=[],r=this;Jg(e,(function(t){n.eachComponent({mainType:t},(function(t){var e=r._componentsMap[t.__viewId];e.group.ignore||(i.push(e),e.group.ignore=!0)}))}));var o="svg"===this._zr.painter.getType()?this.getSvgDataURL():this.getRenderedCanvas(t).toDataURL("image/"+(t&&t.type||"png"));return Jg(i,(function(t){t.group.ignore=!1})),o}Ey(this.id)},n.prototype.getConnectedDataURL=function(t){if(this._disposed)Ey(this.id);else if(o.canvasSupported){var e="svg"===t.type,n=this.group,i=Math.min,r=Math.max,a=1/0;if(Zy[n]){var s=a,l=a,u=-1/0,h=-1/0,c=[],p=t&&t.pixelRatio||1;k(Uy,(function(o,a){if(o.group===n){var p=e?o.getZr().painter.getSvgDom().innerHTML:o.getRenderedCanvas(b(t)),d=o.getDom().getBoundingClientRect();s=i(d.left,s),l=i(d.top,l),u=r(d.right,u),h=r(d.bottom,h),c.push({dom:p,left:d.left,top:d.top})}}));var d=(u*=p)-(s*=p),f=(h*=p)-(l*=p),g=T(),y=zi(g,{renderer:e?"svg":"canvas"});if(y.resize({width:d,height:f}),e){var v="";return Jg(c,(function(t){var e=t.left-s,n=t.top-l;v+='<g transform="translate('+e+","+n+')">'+t.dom+"</g>"})),y.painter.getSvgRoot().innerHTML=v,t.connectedBackgroundColor&&y.painter.setBackgroundColor(t.connectedBackgroundColor),y.refreshImmediately(),y.painter.toDataURL()}return t.connectedBackgroundColor&&y.add(new Za({shape:{x:0,y:0,width:d,height:f},style:{fill:t.connectedBackgroundColor}})),Jg(c,(function(t){var e=new Fa({style:{x:t.left*p-s,y:t.top*p-l,image:t.dom}});y.add(e)})),y.refreshImmediately(),g.toDataURL("image/"+(t&&t.type||"png"))}return this.getDataURL(t)}},n.prototype.convertToPixel=function(t,e){return fy(this,"convertToPixel",t,e)},n.prototype.convertFromPixel=function(t,e){return fy(this,"convertFromPixel",t,e)},n.prototype.containPixel=function(t,e){var n;if(!this._disposed)return k(Sr(this._model,t),(function(t,i){i.indexOf("Models")>=0&&k(t,(function(t){var r=t.coordinateSystem;if(r&&r.containPoint)n=n||!!r.containPoint(e);else if("seriesModels"===i){var o=this._chartsMap[t.__viewId];o&&o.containPoint&&(n=n||o.containPoint(e,t))}else 0}),this)}),this),!!n;Ey(this.id)},n.prototype.getVisual=function(t,e){var n=Sr(this._model,t,{defaultMainType:"series"}),i=n.seriesModel;var r=i.getData(),o=n.hasOwnProperty("dataIndexInside")?n.dataIndexInside:n.hasOwnProperty("dataIndex")?r.indexOfRawIndex(n.dataIndex):null;return null!=o?Af(r,o,e):Df(r,e)},n.prototype.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},n.prototype.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]},n.prototype._initEvents=function(){var t,e,n,i=this;Jg(Ny,(function(t){var e=function(e){var n,r=i.getModel(),o=e.target,a="globalout"===t;if(a?n={}:o&&fg(o,(function(t){var e=rs(t);if(e&&null!=e.dataIndex){var i=e.dataModel||r.getSeriesByIndex(e.seriesIndex);return n=i&&i.getDataParams(e.dataIndex,e.dataType)||{},!0}if(e.eventData)return n=M({},e.eventData),!0}),!0),n){var s=n.componentType,l=n.componentIndex;"markLine"!==s&&"markPoint"!==s&&"markArea"!==s||(s="series",l=n.seriesIndex);var u=s&&null!=l&&r.getComponent(s,l),h=u&&i["series"===u.mainType?"_chartsMap":"_componentsMap"][u.__viewId];0,n.event=e,n.type=t,i._$eventProcessor.eventInfo={targetEl:o,packedEvent:n,model:u,view:h},i.trigger(t,n)}};e.zrEventfulCallAtLast=!0,i._zr.on(t,e,i)})),Jg(By,(function(t,e){i._messageCenter.on(e,(function(t){this.trigger(e,t)}),i)})),Jg(["selectchanged"],(function(t){i._messageCenter.on(t,(function(e){this.trigger(t,e)}),i)})),t=this._messageCenter,e=this,n=this._api,t.on("selectchanged",(function(t){var i=n.getModel();t.isFromClick?(dg("map","selectchanged",e,i,t),dg("pie","selectchanged",e,i,t)):"select"===t.fromAction?(dg("map","selected",e,i,t),dg("pie","selected",e,i,t)):"unselect"===t.fromAction&&(dg("map","unselected",e,i,t),dg("pie","unselected",e,i,t))}))},n.prototype.isDisposed=function(){return this._disposed},n.prototype.clear=function(){this._disposed?Ey(this.id):this.setOption({series:[]},!0)},n.prototype.dispose=function(){if(this._disposed)Ey(this.id);else{this._disposed=!0,Cr(this.getDom(),Ky,"");var t=this._api,e=this._model;Jg(this._componentsViews,(function(n){n.dispose(e,t)})),Jg(this._chartsViews,(function(n){n.dispose(e,t)})),this._zr.dispose(),delete Uy[this.id]}},n.prototype.resize=function(t){if(this._disposed)Ey(this.id);else{this._zr.resize(t);var e=this._model;if(this._loadingFX&&this._loadingFX.resize(),e){var n=e.resetOption("media"),i=t&&t.silent;this.__flagInMainProcess=!0,n&&hy(this),dy.update.call(this,{type:"resize",animation:{duration:0}}),this.__flagInMainProcess=!1,vy.call(this,i),my.call(this,i)}}},n.prototype.showLoading=function(t,e){if(this._disposed)Ey(this.id);else if(ty(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),Xy[t]){var n=Xy[t](this._api,e),i=this._zr;this._loadingFX=n,i.add(n)}},n.prototype.hideLoading=function(){this._disposed?Ey(this.id):(this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null)},n.prototype.makeActionFromEvent=function(t){var e=M({},t);return e.type=By[t.type],e},n.prototype.dispatchAction=function(t,e){if(this._disposed)Ey(this.id);else if(ty(e)||(e={silent:!!e}),zy[t.type]&&this._model)if(this.__flagInMainProcess)this._pendingActions.push(t);else{var n=e.silent;yy.call(this,t,n);var i=e.flush;i?this._zr.flush():!1!==i&&o.browser.weChat&&this._throttledZrFlush(),vy.call(this,n),my.call(this,n)}},n.prototype.updateLabelLayout=function(){var t=this._labelManager;t.updateLayoutConfig(this._api),t.layout(this._api),t.processLabelsOverall()},n.prototype.appendData=function(t){if(this._disposed)Ey(this.id);else{var e=t.seriesIndex,n=this.getModel().getSeriesByIndex(e);0,n.appendData(t),this._scheduler.unfinished=!0,this.getZr().wakeUp()}},n.internalField=function(){function t(t){for(var e=[],n=t.currentStates,i=0;i<n.length;i++){var r=n[i];"emphasis"!==r&&"blur"!==r&&"select"!==r&&e.push(r)}t.selected&&t.states.select&&e.push("select"),2===t.hoverState&&t.states.emphasis?e.push("emphasis"):1===t.hoverState&&t.states.blur&&e.push("blur"),t.useStates(e)}function n(t,e){if(!t.preventAutoZ){var n=t.get("z"),i=t.get("zlevel");e.group.traverse((function(t){if(!t.isGroup){null!=n&&(t.z=n),null!=i&&(t.zlevel=i);var e=t.getTextContent(),r=t.getTextGuideLine();if(e&&(e.z=t.z,e.zlevel=t.zlevel,e.z2=t.z2+2),r){var o=t.textGuideLineConfig&&t.textGuideLineConfig.showAbove;r.z=t.z,r.zlevel=t.zlevel,r.z2=t.z2+(o?1:-1)}}}))}}function i(t,e){e.group.traverse((function(t){if(!bu(t)){var e=t.getTextContent(),n=t.getTextGuideLine();t.stateTransition&&(t.stateTransition=null),e&&e.stateTransition&&(e.stateTransition=null),n&&n.stateTransition&&(n.stateTransition=null),t.hasState()?(t.prevStates=t.currentStates,t.clearStates()):t.prevStates&&(t.prevStates=null)}}))}function r(e,n){var i=e.getModel("stateAnimation"),r=e.isAnimationEnabled(),o=i.get("duration"),a=o>0?{duration:o,delay:i.get("delay"),easing:i.get("easing")}:null;n.group.traverse((function(e){if(e.states&&e.states.emphasis){if(bu(e))return;if(e instanceof Na&&function(t){var e=ss(t);e.normalFill=t.style.fill,e.normalStroke=t.style.stroke;var n=t.states.select||{};e.selectFill=n.style&&n.style.fill||null,e.selectStroke=n.style&&n.style.stroke||null}(e),e.__dirty){var n=e.prevStates;n&&e.useStates(n)}if(r){e.stateTransition=a;var i=e.getTextContent(),o=e.getTextGuideLine();i&&(i.stateTransition=a),o&&(o.stateTransition=a)}e.__dirty&&t(e)}}))}hy=function(t){var e=t._scheduler;e.restorePipelines(t._model),e.prepareStageTasks(),cy(t,!0),cy(t,!1),e.plan()},cy=function(t,e){for(var n=t._model,i=t._scheduler,r=e?t._componentsViews:t._chartsViews,o=e?t._componentsMap:t._chartsMap,a=t._zr,s=t._api,l=0;l<r.length;l++)r[l].__alive=!1;function u(t){var l=t.__requireNewView;t.__requireNewView=!1;var u="_ec_"+t.id+"_"+t.type,h=!l&&o[u];if(!h){var c=kr(t.type),p=e?kd.getClass(c.main,c.sub):Nd.getClass(c.sub);0,(h=new p).init(n,s),o[u]=h,r.push(h),a.add(h.group)}t.__viewId=h.__id=u,h.__alive=!0,h.__model=t,h.group.__ecComponentInfo={mainType:t.mainType,index:t.componentIndex},!e&&i.prepareView(h,t,n,s)}e?n.eachComponent((function(t,e){"series"!==t&&u(e)})):n.eachSeries(u);for(l=0;l<r.length;){var h=r[l];h.__alive?l++:(!e&&h.renderTask.dispose(),a.remove(h.group),h.dispose(n,s),r.splice(l,1),o[h.__id]===h&&delete o[h.__id],h.__id=h.group.__ecComponentInfo=null)}},py=function(t,e,n,i,r){var o=t._model;if(o.setUpdatePayload(n),i){var a={};a[i+"Id"]=n[i+"Id"],a[i+"Index"]=n[i+"Index"],a[i+"Name"]=n[i+"Name"];var s={mainType:i,query:a};r&&(s.subType=r);var l,u=n.excludeSeriesId;null!=u&&(l=lt(),Jg(hr(u),(function(t){var e=vr(t,null);null!=e&&l.set(e,!0)}))),o&&o.eachComponent(s,(function(e){l&&null!=l.get(e.id)||(Ws(n)&&!n.notBlur?e instanceof Sd&&function(t,e,n){if(Ws(e)){var i="highlight"===e.type,r=t.seriesIndex,o=t.getData(e.dataType),a=xr(o,e);a=(V(a)?a[0]:a)||0;var s=o.getItemGraphicEl(a);if(!s)for(var l=o.count(),u=0;!s&&u<l;)s=o.getItemGraphicEl(u++);if(s){var h=rs(s);Ps(r,h.focus,h.blurScope,n,i)}else{var c=t.get(["emphasis","focus"]),p=t.get(["emphasis","blurScope"]);null!=c&&Ps(r,c,p,n,i)}}}(e,n,t._api):Hs(n)&&e instanceof Sd&&(!function(t,e,n){if(Hs(e)){var i=e.dataType,r=xr(t.getData(i),e);V(r)||(r=[r]),t["toggleSelect"===e.type?"toggleSelect":"select"===e.type?"select":"unselect"](r,i)}}(e,n,t._api),Os(e),Dy(t)),h(t["series"===i?"_chartsMap":"_componentsMap"][e.__viewId]))}),t)}else Jg([].concat(t._componentsViews).concat(t._chartsViews),h);function h(i){i&&i.__alive&&i[e]&&i[e](i.__model,o,t._api,n)}},dy={prepareAndUpdate:function(t){hy(this),dy.update.call(this,t)},update:function(t){var e=this._model,n=this._api,i=this._zr,r=this._coordSysMgr,a=this._scheduler;if(e){e.setUpdatePayload(t),a.restoreData(e,t),a.performSeriesTasks(e),r.create(e,n),a.performDataProcessorTasks(e,t),gy(this,e),r.update(e,n),by(e),a.performVisualTasks(e,t),wy(this,e,n,t);var s=e.get("backgroundColor")||"transparent",l=e.get("darkMode");if(o.canvasSupported)i.setBackgroundColor(s),null!=l&&"auto"!==l&&i.setDarkMode(l);else{var u=Ze(s);s=rn(u,"rgb"),0===u[3]&&(s="transparent")}Iy(e,n)}},updateTransform:function(t){var e=this,n=this._model,i=this._api;if(n){n.setUpdatePayload(t);var r=[];n.eachComponent((function(o,a){if("series"!==o){var s=e.getViewOfComponentModel(a);if(s&&s.__alive)if(s.updateTransform){var l=s.updateTransform(a,n,i,t);l&&l.update&&r.push(s)}else r.push(s)}}));var o=lt();n.eachSeries((function(r){var a=e._chartsMap[r.__viewId];if(a.updateTransform){var s=a.updateTransform(r,n,i,t);s&&s.update&&o.set(r.uid,1)}else o.set(r.uid,1)})),by(n),this._scheduler.performVisualTasks(n,t,{setDirty:!0,dirtyMap:o}),My(this,n,i,t,o),Iy(n,this._api)}},updateView:function(t){var e=this._model;e&&(e.setUpdatePayload(t),Nd.markUpdateMethod(t,"updateView"),by(e),this._scheduler.performVisualTasks(e,t,{setDirty:!0}),wy(this,this._model,this._api,t),Iy(e,this._api))},updateVisual:function(t){var e=this,n=this._model;n&&(n.setUpdatePayload(t),n.eachSeries((function(t){t.getData().clearAllVisual()})),Nd.markUpdateMethod(t,"updateVisual"),by(n),this._scheduler.performVisualTasks(n,t,{visualType:"visual",setDirty:!0}),n.eachComponent((function(i,r){if("series"!==i){var o=e.getViewOfComponentModel(r);o&&o.__alive&&o.updateVisual(r,n,e._api,t)}})),n.eachSeries((function(i){e._chartsMap[i.__viewId].updateVisual(i,n,e._api,t)})),Iy(n,this._api))},updateLayout:function(t){dy.update.call(this,t)}},fy=function(t,e,n,i){if(t._disposed)Ey(t.id);else{for(var r,o=t._model,a=t._coordSysMgr.getCoordinateSystems(),s=Sr(o,n),l=0;l<a.length;l++){var u=a[l];if(u[e]&&null!=(r=u[e](o,s,i)))return r}0}},gy=function(t,e){var n=t._chartsMap,i=t._scheduler;e.eachSeries((function(t){i.updateStreamModes(t,n[t.__viewId])}))},yy=function(t,e){var n=this,i=this.getModel(),r=t.type,o=t.escapeConnect,a=zy[r],s=a.actionInfo,l=(s.update||"update").split(":"),u=l.pop(),h=null!=l[0]&&kr(l[0]);this.__flagInMainProcess=!0;var c=[t],p=!1;t.batch&&(p=!0,c=P(t.batch,(function(e){return(e=I(M({},e),t)).batch=null,e})));var d,f=[],g=Hs(t),y=Ws(t)||g;if(Jg(c,(function(t){(d=(d=a.action(t,n._model,n._api))||M({},t)).type=s.event||d.type,f.push(d),y?(py(n,u,t,"series"),Dy(n)):h&&py(n,u,t,h.main,h.sub)})),"none"===u||y||h||(this.__optionUpdated?(hy(this),dy.update.call(this,t),this.__optionUpdated=!1):dy[u].call(this,t)),d=p?{type:s.event||r,escapeConnect:o,batch:f}:f[0],this.__flagInMainProcess=!1,!e){var v=this._messageCenter;if(v.trigger(d.type,d),g){var m={type:"selectchanged",escapeConnect:o,selected:Rs(i),isFromClick:t.isFromClick||!1,fromAction:t.type,fromActionPayload:t};v.trigger(m.type,m)}}},vy=function(t){for(var e=this._pendingActions;e.length;){var n=e.shift();yy.call(this,n,t)}},my=function(t){!t&&this.trigger("updated")},_y=function(t,e){t.on("rendered",(function(n){e.trigger("rendered",n),!t.animation.isFinished()||e.__optionUpdated||e._scheduler.unfinished||e._pendingActions.length||e.trigger("finished")}))},xy=function(t,e){t.on("mouseover",(function(t){var n=fg(t.target,Gs);if(n){var i=rs(n);Ps(i.seriesIndex,i.focus,i.blurScope,e._api,!0),function(t,e){!ks(t,e)&&!t.__highByOuter&&bs(t,fs)}(n,t),Dy(e)}})).on("mouseout",(function(t){var n=fg(t.target,Gs);if(n){var i=rs(n);Ps(i.seriesIndex,i.focus,i.blurScope,e._api,!1),function(t,e){!ks(t,e)&&!t.__highByOuter&&bs(t,gs)}(n,t),Dy(e)}})).on("click",(function(t){var n=fg(t.target,(function(t){return null!=rs(t).dataIndex}),!0);if(n){var i=n.selected?"unselect":"select",r=rs(n);e._api.dispatchAction({type:i,dataType:r.dataType,dataIndexInside:r.dataIndex,seriesIndex:r.seriesIndex,isFromClick:!0})}}))},by=function(t){t.clearColorPalette(),t.eachSeries((function(t){t.clearColorPalette()}))},wy=function(t,e,n,i){Sy(t,e,n,i),Jg(t._chartsViews,(function(t){t.__alive=!1})),My(t,e,n,i),Jg(t._chartsViews,(function(t){t.__alive||t.remove(e,n)}))},Sy=function(t,e,o,a,s){Jg(s||t._componentsViews,(function(t){var s=t.__model;i(s,t),t.render(s,e,o,a),n(s,t),r(s,t)}))},My=function(t,e,a,s,l){var u=t._scheduler,h=t._labelManager;h.clearLabels();var c=!1;e.eachSeries((function(e){var n=t._chartsMap[e.__viewId];n.__alive=!0;var r=n.renderTask;u.updatePayload(r,s),i(e,n),l&&l.get(e.uid)&&r.dirty(),r.perform(u.getPerformArgs(r))&&(c=!0),e.__transientTransitionOpt=null,n.group.silent=!!e.get("silent"),function(t,e){var n=t.get("blendMode")||null;0;e.group.traverse((function(t){t.isGroup||(t.style.blend=n),t.eachPendingDisplayable&&t.eachPendingDisplayable((function(t){t.style.blend=n}))}))}(e,n),Os(e),h.addLabelsOfSeries(n)})),u.unfinished=c||u.unfinished,h.updateLayoutConfig(a),h.layout(a),h.processLabelsOverall(),e.eachSeries((function(e){var i=t._chartsMap[e.__viewId];n(e,i),r(e,i)})),function(t,e){var n=t._zr.storage,i=0;n.traverse((function(t){t.isGroup||i++})),i>e.get("hoverLayerThreshold")&&!o.node&&!o.worker&&e.eachSeries((function(e){if(!e.preventUsingHoverLayer){var n=t._chartsMap[e.__viewId];n.__alive&&n.group.traverse((function(t){t.states.emphasis&&(t.states.emphasis.hoverLayer=!0)}))}}))}(t,e)},Iy=function(t,e){Jg(Hy,(function(n){n(t,e)}))},Dy=function(t){t.__needsUpdateStatus=!0,t.getZr().wakeUp()},Ly=function(e){e.__needsUpdateStatus&&(e.getZr().storage.traverse((function(e){bu(e)||t(e)})),e.__needsUpdateStatus=!1)},Ty=function(t){return new(function(n){function i(){return null!==n&&n.apply(this,arguments)||this}return e(i,n),i.prototype.getCoordinateSystems=function(){return t._coordSysMgr.getCoordinateSystems()},i.prototype.getComponentByElement=function(e){for(;e;){var n=e.__ecComponentInfo;if(null!=n)return t._model.getComponent(n.mainType,n.index);e=e.parent}},i.prototype.enterEmphasis=function(e,n){Is(e,n),Dy(t)},i.prototype.leaveEmphasis=function(e,n){Ts(e,n),Dy(t)},i.prototype.enterBlur=function(e){Cs(e),Dy(t)},i.prototype.leaveBlur=function(e){As(e),Dy(t)},i.prototype.enterSelect=function(e){Ds(e),Dy(t)},i.prototype.leaveSelect=function(e){Ls(e),Dy(t)},i.prototype.getModel=function(){return t.getModel()},i.prototype.getViewOfComponentModel=function(e){return t.getViewOfComponentModel(e)},i.prototype.getViewOfSeriesModel=function(e){return t.getViewOfSeriesModel(e)},i}(zc))(t)},Cy=function(t){function e(t,e){for(var n=0;n<t.length;n++){t[n].__connectUpdateStatus=e}}Jg(By,(function(n,i){t._messageCenter.on(i,(function(n){if(Zy[t.group]&&0!==t.__connectUpdateStatus){if(n&&n.escapeConnect)return;var i=t.makeActionFromEvent(n),r=[];Jg(Uy,(function(e){e!==t&&e.group===t.group&&r.push(e)})),e(r,0),Jg(r,(function(t){1!==t.__connectUpdateStatus&&t.dispatchAction(i)})),e(r,2)}}))}))},Ay=function(t,e){var n=t._model;k(hr(e),(function(t){var e,i=t.from,r=t.to;null==r&&ur(e);var o={includeMainTypes:["series"],enableAll:!1,enableNone:!1},a=i?Sr(n,i,o):null,s=Sr(n,r,o).seriesModel;null==s&&(e=""),a&&a.seriesModel!==s&&(e=""),null!=e&&ur(e),s.__transientTransitionOpt={from:i?i.dimension:null,to:r.dimension,dividingMethod:t.dividingMethod}}))}}(),n}(Ft),Ry=Oy.prototype;Ry.on=sy("on"),Ry.off=sy("off"),Ry.one=function(t,e,n){var i=this;lr(),this.on.call(this,t,(function n(){for(var r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];e&&e.apply&&e.apply(this,r),i.off(t,n)}),n)};var Ny=["click","dblclick","mouseover","mouseout","mousemove","mousedown","mouseup","globalout","contextmenu"];function Ey(t){0}var zy={},By={},Vy=[],Fy=[],Gy=[],Hy=[],Wy=[],Yy={},Xy={},Uy={},Zy={},jy=+new Date-0,qy=+new Date-0,Ky="_echarts_instance_";function $y(t,e,n){var i=nv(t);if(i)return i;var r=new Oy(t,e,n);return r.id="ec_"+jy++,Uy[r.id]=r,Cr(t,Ky,r.id),Cy(r),Jg(Gy,(function(t){t(r)})),r}function Jy(t){if(V(t)){var e=t;t=null,Jg(e,(function(e){null!=e.group&&(t=e.group)})),t=t||"g_"+qy++,Jg(e,(function(e){e.group=t}))}return Zy[t]=!0,t}function Qy(t){Zy[t]=!1}var tv=Qy;function ev(t){"string"==typeof t?t=Uy[t]:t instanceof Oy||(t=nv(t)),t instanceof Oy&&!t.isDisposed()&&t.dispose()}function nv(t){return Uy[function(t,e){return t.getAttribute?t.getAttribute(e):t[e]}(t,Ky)]}function iv(t){return Uy[t]}function rv(t,e){Yy[t]=e}function ov(t){ey(Fy,t)<0&&Fy.push(t)}function av(t,e){gv(Vy,t,e,2e3)}function sv(t){ey(Gy,t)<0&&t&&Gy.push(t)}function lv(t){ey(Hy,t)<0&&t&&Hy.push(t)}function uv(t,e,n){"function"==typeof e&&(n=e,e="");var i=ty(t)?t.type:[t,t={event:e}][0];t.event=(t.event||i).toLowerCase(),e=t.event,By[e]||($g(ay.test(i)&&ay.test(e)),zy[i]||(zy[i]={action:n,actionInfo:t}),By[e]=i)}function hv(t,e){Vc.register(t,e)}function cv(t){var e=Vc.get(t);if(e)return e.getDimensionsInfo?e.getDimensionsInfo():e.dimensions.slice()}function pv(t,e){gv(Wy,t,e,1e3,"layout")}function dv(t,e){gv(Wy,t,e,3e3,"visual")}var fv=[];function gv(t,e,n,i,r){if((Qg(e)||ty(e))&&(n=e,e=i),!(ey(fv,n)>=0)){fv.push(n);var o=ef.wrapStageHandler(n,r);o.__prio=e,o.__raw=n,t.push(o)}}function yv(t,e){Xy[t]=e}function vv(t){v("createCanvas",t)}function mv(t,e,n){Sf(t,e,n)}function _v(t){var e=Mf(t);return e&&e[0]&&{geoJson:e[0].geoJSON,specialAreas:e[0].specialAreas}}var xv=function(t){var e=(t=b(t)).type,n="";e||ur(n);var i=e.split(":");2!==i.length&&ur(n);var r=!1;"echarts"===i[0]&&(e=i[1],r=!0),t.__isBuiltIn=r,td.set(e,t)};dv(2e3,Kd),dv(4500,Jd),dv(4500,Qd),dv(2e3,Cf),dv(4500,{createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){if(t.hasSymbolVisual&&!e.isSeriesFiltered(t))return{dataEach:t.getData().hasItemOption?function(t,e){var n=t.getItemModel(e),i=n.getShallow("symbol",!0),r=n.getShallow("symbolSize",!0),o=n.getShallow("symbolRotate",!0),a=n.getShallow("symbolKeepAspect",!0);null!=i&&t.setItemVisual(e,"symbol",i),null!=r&&t.setItemVisual(e,"symbolSize",r),null!=o&&t.setItemVisual(e,"symbolRotate",o),null!=a&&t.setItemVisual(e,"symbolKeepAspect",a)}:null}}}),dv(7e3,(function(t,e){t.eachRawSeries((function(n){if(!t.isSeriesFiltered(n)){var i=n.getData();i.hasItemVisual()&&i.each((function(t){var n=i.getItemVisual(t,"decal");n&&(i.ensureUniqueItemVisual(t,"style").decal=Zg(n,e))}));var r=i.getVisual("decal");if(r)i.getVisual("style").decal=Zg(r,e)}}))})),ov(lp),av(900,(function(t){var e=lt();t.eachSeries((function(t){var n=t.get("stack");if(n){var i=e.get(n)||e.set(n,[]),r=t.getData(),o={stackResultDimension:r.getCalculationInfo("stackResultDimension"),stackedOverDimension:r.getCalculationInfo("stackedOverDimension"),stackedDimension:r.getCalculationInfo("stackedDimension"),stackedByDimension:r.getCalculationInfo("stackedByDimension"),isStackedByIndex:r.getCalculationInfo("isStackedByIndex"),data:r,seriesModel:t};if(!o.stackedDimension||!o.isStackedByIndex&&!o.stackedByDimension)return;i.length&&r.setCalculationInfo("stackedOnSeries",i[i.length-1].seriesModel),i.push(o)}})),e.each(up)})),yv("default",(function(t,e){I(e=e||{},{text:"loading",textColor:"#000",fontSize:12,fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",maskColor:"rgba(255, 255, 255, 0.8)",showSpinner:!0,color:"#5470c6",spinnerRadius:10,lineWidth:5,zlevel:0});var n=new Pi,i=new Za({style:{fill:e.maskColor},zlevel:e.zlevel,z:1e4});n.add(i);var r,o=new Ka({style:{text:e.text,fill:e.textColor,fontSize:e.fontSize,fontWeight:e.fontWeight,fontStyle:e.fontStyle,fontFamily:e.fontFamily}}),a=new Za({style:{fill:"none"},textContent:o,textConfig:{position:"right",distance:10},zlevel:e.zlevel,z:10001});return n.add(a),e.showSpinner&&((r=new Wl({shape:{startAngle:-tf/2,endAngle:-tf/2+.1,r:e.spinnerRadius},style:{stroke:e.color,lineCap:"round",lineWidth:e.lineWidth},zlevel:e.zlevel,z:10001})).animateShape(!0).when(1e3,{endAngle:3*tf/2}).start("circularInOut"),r.animateShape(!0).when(1e3,{startAngle:3*tf/2}).delay(300).start("circularInOut"),n.add(r)),n.resize=function(){var n=o.getBoundingRect().width,s=e.showSpinner?e.spinnerRadius:0,l=(t.getWidth()-2*s-(e.showSpinner&&n?10:0)-n)/2-(e.showSpinner&&n?0:5+n/2)+(e.showSpinner?0:n/2)+(n?0:s),u=t.getHeight()/2;e.showSpinner&&r.setShape({cx:l,cy:u}),a.setShape({x:l-s,y:u-s,width:2*s,height:2*s}),i.setShape({x:0,y:0,width:t.getWidth(),height:t.getHeight()})},n.resize(),n})),uv({type:"highlight",event:"highlight",update:"highlight"},pt),uv({type:"downplay",event:"downplay",update:"downplay"},pt),uv({type:"select",event:"select",update:"select"},pt),uv({type:"unselect",event:"unselect",update:"unselect"},pt),uv({type:"toggleSelect",event:"toggleSelect",update:"toggleSelect"},pt),rv("light",mf),rv("dark",xf);var bv={},wv=[],Sv={registerPreprocessor:ov,registerProcessor:av,registerPostInit:sv,registerPostUpdate:lv,registerAction:uv,registerCoordinateSystem:hv,registerLayout:pv,registerVisual:dv,registerTransform:xv,registerLoading:yv,registerMap:mv,PRIORITY:oy,ComponentModel:uc,ComponentView:kd,SeriesModel:Sd,ChartView:Nd,registerComponentModel:function(t){uc.registerClass(t)},registerComponentView:function(t){kd.registerClass(t)},registerSeriesModel:function(t){Sd.registerClass(t)},registerChartView:function(t){Nd.registerClass(t)},registerSubTypeDefaulter:function(t,e){uc.registerSubTypeDefaulter(t,e)},registerPainter:function(t,e){Bi(t,e)}};function Mv(t){V(t)?k(t,(function(t){Mv(t)})):C(wv,t)>=0||(wv.push(t),F(t)&&(t={install:t}),t.install(Sv))}function Iv(t){return null==t?0:t.length||1}function Tv(t){return t}var Cv=function(){function t(t,e,n,i,r,o){this._old=t,this._new=e,this._oldKeyGetter=n||Tv,this._newKeyGetter=i||Tv,this.context=r,this._diffModeMultiple="multiple"===o}return t.prototype.add=function(t){return this._add=t,this},t.prototype.update=function(t){return this._update=t,this},t.prototype.updateManyToOne=function(t){return this._updateManyToOne=t,this},t.prototype.updateOneToMany=function(t){return this._updateOneToMany=t,this},t.prototype.remove=function(t){return this._remove=t,this},t.prototype.execute=function(){this[this._diffModeMultiple?"_executeMultiple":"_executeOneToOne"]()},t.prototype._executeOneToOne=function(){var t=this._old,e=this._new,n={},i=new Array(t.length),r=new Array(e.length);this._initIndexMap(t,null,i,"_oldKeyGetter"),this._initIndexMap(e,n,r,"_newKeyGetter");for(var o=0;o<t.length;o++){var a=i[o],s=n[a],l=Iv(s);if(l>1){var u=s.shift();1===s.length&&(n[a]=s[0]),this._update&&this._update(u,o)}else 1===l?(n[a]=null,this._update&&this._update(s,o)):this._remove&&this._remove(o)}this._performRestAdd(r,n)},t.prototype._executeMultiple=function(){var t=this._old,e=this._new,n={},i={},r=[],o=[];this._initIndexMap(t,n,r,"_oldKeyGetter"),this._initIndexMap(e,i,o,"_newKeyGetter");for(var a=0;a<r.length;a++){var s=r[a],l=n[s],u=i[s],h=Iv(l),c=Iv(u);if(h>1&&1===c)this._updateManyToOne&&this._updateManyToOne(u,l),i[s]=null;else if(1===h&&c>1)this._updateOneToMany&&this._updateOneToMany(u,l),i[s]=null;else if(1===h&&1===c)this._update&&this._update(u,l),i[s]=null;else if(h>1)for(var p=0;p<h;p++)this._remove&&this._remove(l[p]);else this._remove&&this._remove(l)}this._performRestAdd(o,i)},t.prototype._performRestAdd=function(t,e){for(var n=0;n<t.length;n++){var i=t[n],r=e[i],o=Iv(r);if(o>1)for(var a=0;a<o;a++)this._add&&this._add(r[a]);else 1===o&&this._add&&this._add(r);e[i]=null}},t.prototype._initIndexMap=function(t,e,n,i){for(var r=this._diffModeMultiple,o=0;o<t.length;o++){var a="_ec_"+this[i](t[o],o);if(r||(n[o]=a),e){var s=e[a],l=Iv(s);0===l?(e[a]=o,r&&n.push(a)):1===l?e[a]=[s,o]:s.push(o)}}},t}();function Av(t,e){return t.hasOwnProperty(e)||(t[e]=[]),t[e]}function Dv(t){return"category"===t?"ordinal":"time"===t?"time":"float"}var Lv,kv,Pv,Ov,Rv,Nv,Ev,zv,Bv,Vv,Fv,Gv,Hv,Wv,Yv=function(t){this.otherDims={},null!=t&&M(this,t)},Xv=Math.floor,Uv=Y,Zv=P,jv={float:"undefined"==typeof Float64Array?Array:Float64Array,int:"undefined"==typeof Int32Array?Array:Int32Array,ordinal:Array,number:Array,time:Array},qv="undefined"==typeof Uint32Array?Array:Uint32Array,Kv="undefined"==typeof Int32Array?Array:Int32Array,$v="undefined"==typeof Uint16Array?Array:Uint16Array,Jv=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_rawData","_dimValueGetter","_count","_rawCount","_nameDimIdx","_idDimIdx","_nameRepeatCount"],Qv=["_extent","_approximateExtent","_rawExtent"],tm=function(){function t(t,e){this.type="list",this._count=0,this._rawCount=0,this._storage={},this._storageArr=[],this._nameList=[],this._idList=[],this._visual={},this._layout={},this._itemVisuals=[],this._itemLayouts=[],this._graphicEls=[],this._rawExtent={},this._extent={},this._approximateExtent={},this._calculationInfo={},this.hasItemOption=!0,this.TRANSFERABLE_METHODS=["cloneShallow","downSample","lttbDownSample","map"],this.CHANGABLE_METHODS=["filterSelf","selectRange"],this.DOWNSAMPLE_METHODS=["downSample","lttbDownSample"],this.getRawIndex=Rv,t=t||["x","y"];for(var n={},i=[],r={},o=0;o<t.length;o++){var a=t[o],s=G(a)?new Yv({name:a}):a instanceof Yv?a:new Yv(a),l=s.name;s.type=s.type||"float",s.coordDim||(s.coordDim=l,s.coordDimIndex=0);var u=s.otherDims=s.otherDims||{};i.push(l),n[l]=s,s.index=o,s.createInvertedIndices&&(r[l]=[]),0===u.itemName&&(this._nameDimIdx=o,this._nameOrdinalMeta=s.ordinalMeta),0===u.itemId&&(this._idDimIdx=o,this._idOrdinalMeta=s.ordinalMeta)}this.dimensions=i,this._dimensionInfos=n,this.hostModel=e,this._dimensionsSummary=function(t){var e={},n=e.encode={},i=lt(),r=[],o=[],a=e.userOutput={dimensionNames:t.dimensions.slice(),encode:{}};k(t.dimensions,(function(e){var s,l=t.getDimensionInfo(e),u=l.coordDim;if(u){var h=l.coordDimIndex;Av(n,u)[h]=e,l.isExtraCoord||(i.set(u,1),"ordinal"!==(s=l.type)&&"time"!==s&&(r[0]=e),Av(a.encode,u)[h]=l.index),l.defaultTooltip&&o.push(e)}dc.each((function(t,e){var i=Av(n,e),r=l.otherDims[e];null!=r&&!1!==r&&(i[r]=l.name)}))}));var s=[],l={};i.each((function(t,e){var i=n[e];l[e]=i[0],s=s.concat(i)})),e.dataDimsOnCoord=s,e.encodeFirstDimNotExtra=l;var u=n.label;u&&u.length&&(r=u.slice());var h=n.tooltip;return h&&h.length?o=h.slice():o.length||(o=r.slice()),n.defaultedLabel=r,n.defaultedTooltip=o,e}(this),this._invertedIndicesMap=r,this.userOutput=this._dimensionsSummary.userOutput}return t.prototype.getDimension=function(t){return"number"!=typeof t&&(isNaN(t)||this._dimensionInfos.hasOwnProperty(t))||(t=this.dimensions[t]),t},t.prototype.getDimensionInfo=function(t){return this._dimensionInfos[this.getDimension(t)]},t.prototype.getDimensionsOnCoord=function(){return this._dimensionsSummary.dataDimsOnCoord.slice()},t.prototype.mapDimension=function(t,e){var n=this._dimensionsSummary;if(null==e)return n.encodeFirstDimNotExtra[t];var i=n.encode[t];return i?i[e]:null},t.prototype.mapDimensionsAll=function(t){return(this._dimensionsSummary.encode[t]||[]).slice()},t.prototype.initData=function(t,e,n){var i=yp(t)||L(t),r=i?new Sp(t,this.dimensions.length):t;this._rawData=r;var o=r.getSource().sourceFormat;this._storage={},this._indices=null,this._dontMakeIdFromName=null!=this._idDimIdx||"typedArray"===o||!!r.fillStorage,this._nameList=(e||[]).slice(),this._idList=[],this._nameRepeatCount={},n||(this.hasItemOption=!1),this.defaultDimValueGetter=Lv[o],this._dimValueGetter=n=n||this.defaultDimValueGetter,this._dimValueGetterArrayRows=Lv.arrayRows,this._rawExtent={},this._initDataFromProvider(0,r.count()),r.pure&&(this.hasItemOption=!1)},t.prototype.getProvider=function(){return this._rawData},t.prototype.appendData=function(t){var e=this._rawData,n=this.count();e.appendData(t);var i=e.count();e.persistent||(i+=n),this._initDataFromProvider(n,i,!0)},t.prototype.appendValues=function(t,e){for(var n=this._storage,i=this.dimensions,r=i.length,o=this._rawExtent,a=this.count(),s=a+Math.max(t.length,e?e.length:0),l=0;l<r;l++){var u=i[l];o[u]||(o[u]=Gv()),Ov(n,this._dimensionInfos[u],s,!0)}for(var h=Zv(i,(function(t){return o[t]})),c=this._storageArr=Zv(i,(function(t){return n[t]})),p=[],d=a;d<s;d++){for(var f=d-a,g=0;g<r;g++){u=i[g];var y=this._dimValueGetterArrayRows(t[f]||p,u,f,g);c[g][d]=y;var v=h[g];y<v[0]&&(v[0]=y),y>v[1]&&(v[1]=y)}e&&(this._nameList[d]=e[f],this._dontMakeIdFromName||Bv(this,d))}this._rawCount=this._count=s,this._extent={},kv(this)},t.prototype._initDataFromProvider=function(t,e,n){if(!(t>=e)){for(var i=this._rawData,r=this._storage,o=this.dimensions,a=o.length,s=this._dimensionInfos,l=this._nameList,u=this._idList,h=this._rawExtent,c="original"===i.getSource().sourceFormat,p=0;p<a;p++){var d=o[p];h[d]||(h[d]=Gv()),Ov(r,s[d],e,n)}var f=this._storageArr=Zv(o,(function(t){return r[t]})),g=Zv(o,(function(t){return h[t]}));if(i.fillStorage)i.fillStorage(t,e,f,g);else for(var y=[],v=t;v<e;v++){y=i.getItem(v,y);for(var m=0;m<a;m++){d=o[m];var _=f[m],x=this._dimValueGetter(y,d,v,m);_[v]=x;var b=g[m];x<b[0]&&(b[0]=x),x>b[1]&&(b[1]=x)}if(c&&!i.pure&&y){var w=y.name;null==l[v]&&null!=w&&(l[v]=vr(w,null));var S=y.id;null==u[v]&&null!=S&&(u[v]=vr(S,null))}this._dontMakeIdFromName||Bv(this,v)}!i.persistent&&i.clean&&i.clean(),this._rawCount=this._count=e,this._extent={},kv(this)}},t.prototype.count=function(){return this._count},t.prototype.getIndices=function(){var t,e=this._indices;if(e){var n=e.constructor,i=this._count;if(n===Array){t=new n(i);for(var r=0;r<i;r++)t[r]=e[r]}else t=new n(e.buffer,0,i)}else{t=new(n=Pv(this))(this.count());for(r=0;r<t.length;r++)t[r]=r}return t},t.prototype.getByDimIdx=function(t,e){if(!(e>=0&&e<this._count))return NaN;var n=this._storageArr[t];return n?n[this.getRawIndex(e)]:NaN},t.prototype.get=function(t,e){if(!(e>=0&&e<this._count))return NaN;var n=this._storage[t];return n?n[this.getRawIndex(e)]:NaN},t.prototype.getByRawIndex=function(t,e){if(!(e>=0&&e<this._rawCount))return NaN;var n=this._storage[t];return n?n[e]:NaN},t.prototype.getValues=function(t,e){var n=[];V(t)||(e=t,t=this.dimensions);for(var i=0,r=t.length;i<r;i++)n.push(this.get(t[i],e));return n},t.prototype.hasValue=function(t){for(var e=this._dimensionsSummary.dataDimsOnCoord,n=0,i=e.length;n<i;n++)if(isNaN(this.get(e[n],t)))return!1;return!0},t.prototype.getDataExtent=function(t){t=this.getDimension(t);var e=this._storage[t],n=Gv();if(!e)return n;var i,r=this.count();if(!this._indices)return this._rawExtent[t].slice();if(i=this._extent[t])return i.slice();for(var o=(i=n)[0],a=i[1],s=0;s<r;s++){var l=e[this.getRawIndex(s)];l<o&&(o=l),l>a&&(a=l)}return i=[o,a],this._extent[t]=i,i},t.prototype.getApproximateExtent=function(t){return t=this.getDimension(t),this._approximateExtent[t]||this.getDataExtent(t)},t.prototype.setApproximateExtent=function(t,e){e=this.getDimension(e),this._approximateExtent[e]=t.slice()},t.prototype.getCalculationInfo=function(t){return this._calculationInfo[t]},t.prototype.setCalculationInfo=function(t,e){Uv(t)?M(this._calculationInfo,t):this._calculationInfo[t]=e},t.prototype.getSum=function(t){var e=0;if(this._storage[t])for(var n=0,i=this.count();n<i;n++){var r=this.get(t,n);isNaN(r)||(e+=r)}return e},t.prototype.getMedian=function(t){var e=[];this.each(t,(function(t){isNaN(t)||e.push(t)}));var n=e.sort((function(t,e){return t-e})),i=this.count();return 0===i?0:i%2==1?n[(i-1)/2]:(n[i/2]+n[i/2-1])/2},t.prototype.rawIndexOf=function(t,e){var n=t&&this._invertedIndicesMap[t];var i=n[e];return null==i||isNaN(i)?-1:i},t.prototype.indexOfName=function(t){for(var e=0,n=this.count();e<n;e++)if(this.getName(e)===t)return e;return-1},t.prototype.indexOfRawIndex=function(t){if(t>=this._rawCount||t<0)return-1;if(!this._indices)return t;var e=this._indices,n=e[t];if(null!=n&&n<this._count&&n===t)return t;for(var i=0,r=this._count-1;i<=r;){var o=(i+r)/2|0;if(e[o]<t)i=o+1;else{if(!(e[o]>t))return o;r=o-1}}return-1},t.prototype.indicesOfNearest=function(t,e,n){var i=this._storage[t],r=[];if(!i)return r;null==n&&(n=1/0);for(var o=1/0,a=-1,s=0,l=0,u=this.count();l<u;l++){var h=e-i[this.getRawIndex(l)],c=Math.abs(h);c<=n&&((c<o||c===o&&h>=0&&a<0)&&(o=c,a=h,s=0),h===a&&(r[s++]=l))}return r.length=s,r},t.prototype.getRawDataItem=function(t){if(this._rawData.persistent)return this._rawData.getItem(this.getRawIndex(t));for(var e=[],n=0;n<this.dimensions.length;n++){var i=this.dimensions[n];e.push(this.get(i,t))}return e},t.prototype.getName=function(t){var e=this.getRawIndex(t),n=this._nameList[e];return null==n&&null!=this._nameDimIdx&&(n=zv(this,this._nameDimIdx,this._nameOrdinalMeta,e)),null==n&&(n=""),n},t.prototype.getId=function(t){return Ev(this,this.getRawIndex(t))},t.prototype.each=function(t,e,n,i){var r=this;if(this._count){"function"==typeof t&&(i=n,n=e,e=t,t=[]);var o=n||i||this,a=Zv(Vv(t),this.getDimension,this);0;for(var s=a.length,l=Zv(a,(function(t){return r._dimensionInfos[t].index})),u=this._storageArr,h=0,c=this.count();h<c;h++){var p=this.getRawIndex(h);switch(s){case 0:e.call(o,h);break;case 1:e.call(o,u[l[0]][p],h);break;case 2:e.call(o,u[l[0]][p],u[l[1]][p],h);break;default:for(var d=0,f=[];d<s;d++)f[d]=u[l[d]][p];f[d]=h,e.apply(o,f)}}}},t.prototype.filterSelf=function(t,e,n,i){var r=this;if(this._count){"function"==typeof t&&(i=n,n=e,e=t,t=[]);var o=n||i||this,a=Zv(Vv(t),this.getDimension,this);0;for(var s=this.count(),l=new(Pv(this))(s),u=[],h=a.length,c=0,p=Zv(a,(function(t){return r._dimensionInfos[t].index})),d=p[0],f=this._storageArr,g=0;g<s;g++){var y=void 0,v=this.getRawIndex(g);if(0===h)y=e.call(o,g);else if(1===h){var m=f[d][v];y=e.call(o,m,g)}else{for(var _=0;_<h;_++)u[_]=f[p[_]][v];u[_]=g,y=e.apply(o,u)}y&&(l[c++]=v)}return c<s&&(this._indices=l),this._count=c,this._extent={},this.getRawIndex=this._indices?Nv:Rv,this}},t.prototype.selectRange=function(t){var e=this,n=this._count;if(n){var i=[];for(var r in t)t.hasOwnProperty(r)&&i.push(r);0;var o=i.length;if(o){var a=this.count(),s=new(Pv(this))(a),l=0,u=i[0],h=Zv(i,(function(t){return e._dimensionInfos[t].index})),c=t[u][0],p=t[u][1],d=this._storageArr,f=!1;if(!this._indices){var g=0;if(1===o){for(var y=d[h[0]],v=0;v<n;v++){((b=y[v])>=c&&b<=p||isNaN(b))&&(s[l++]=g),g++}f=!0}else if(2===o){y=d[h[0]];var m=d[h[1]],_=t[i[1]][0],x=t[i[1]][1];for(v=0;v<n;v++){var b=y[v],w=m[v];(b>=c&&b<=p||isNaN(b))&&(w>=_&&w<=x||isNaN(w))&&(s[l++]=g),g++}f=!0}}if(!f)if(1===o)for(v=0;v<a;v++){var S=this.getRawIndex(v);((b=d[h[0]][S])>=c&&b<=p||isNaN(b))&&(s[l++]=S)}else for(v=0;v<a;v++){for(var M=!0,I=(S=this.getRawIndex(v),0);I<o;I++){var T=i[I];((b=d[h[I]][S])<t[T][0]||b>t[T][1])&&(M=!1)}M&&(s[l++]=this.getRawIndex(v))}return l<a&&(this._indices=s),this._count=l,this._extent={},this.getRawIndex=this._indices?Nv:Rv,this}}},t.prototype.mapArray=function(t,e,n,i){"function"==typeof t&&(i=n,n=e,e=t,t=[]),n=n||i||this;var r=[];return this.each(t,(function(){r.push(e&&e.apply(this,arguments))}),n),r},t.prototype.map=function(t,e,n,i){var r=n||i||this,o=Zv(Vv(t),this.getDimension,this);var a=Fv(this,o),s=a._storage;a._indices=this._indices,a.getRawIndex=a._indices?Nv:Rv;for(var l=[],u=o.length,h=this.count(),c=[],p=a._rawExtent,d=0;d<h;d++){for(var f=0;f<u;f++)c[f]=this.get(o[f],d);c[u]=d;var g=e&&e.apply(r,c);if(null!=g){"object"!=typeof g&&(l[0]=g,g=l);for(var y=this.getRawIndex(d),v=0;v<g.length;v++){var m=o[v],_=g[v],x=p[m],b=s[m];b&&(b[y]=_),_<x[0]&&(x[0]=_),_>x[1]&&(x[1]=_)}}}return a},t.prototype.downSample=function(t,e,n,i){for(var r=Fv(this,[t]),o=r._storage,a=[],s=Xv(1/e),l=o[t],u=this.count(),h=r._rawExtent[t],c=new(Pv(this))(u),p=0,d=0;d<u;d+=s){s>u-d&&(s=u-d,a.length=s);for(var f=0;f<s;f++){var g=this.getRawIndex(d+f);a[f]=l[g]}var y=n(a),v=this.getRawIndex(Math.min(d+i(a,y)||0,u-1));l[v]=y,y<h[0]&&(h[0]=y),y>h[1]&&(h[1]=y),c[p++]=v}return r._count=p,r._indices=c,r.getRawIndex=Nv,r},t.prototype.lttbDownSample=function(t,e){var n,i,r,o=Fv(this,[]),a=o._storage[t],s=this.count(),l=new(Pv(this))(s),u=0,h=Xv(1/e),c=this.getRawIndex(0);l[u++]=c;for(var p=1;p<s-1;p+=h){for(var d=Math.min(p+h,s-1),f=Math.min(p+2*h,s),g=(f+d)/2,y=0,v=d;v<f;v++){var m=a[S=this.getRawIndex(v)];isNaN(m)||(y+=m)}y/=f-d;var _=p,x=Math.min(p+h,s),b=p-1,w=a[c];n=-1,r=_;for(v=_;v<x;v++){var S;m=a[S=this.getRawIndex(v)];isNaN(m)||(i=Math.abs((b-g)*(m-w)-(b-v)*(y-w)))>n&&(n=i,r=S)}l[u++]=r,c=r}return l[u++]=this.getRawIndex(s-1),o._count=u,o._indices=l,o.getRawIndex=Nv,o},t.prototype.getItemModel=function(t){var e=this.hostModel,n=this.getRawDataItem(t);return new ah(n,e,e&&e.ecModel)},t.prototype.diff=function(t){var e=this;return new Cv(t?t.getIndices():[],this.getIndices(),(function(e){return Ev(t,e)}),(function(t){return Ev(e,t)}))},t.prototype.getVisual=function(t){var e=this._visual;return e&&e[t]},t.prototype.setVisual=function(t,e){this._visual=this._visual||{},Uv(t)?M(this._visual,t):this._visual[t]=e},t.prototype.getItemVisual=function(t,e){var n=this._itemVisuals[t],i=n&&n[e];return null==i?this.getVisual(e):i},t.prototype.hasItemVisual=function(){return this._itemVisuals.length>0},t.prototype.ensureUniqueItemVisual=function(t,e){var n=this._itemVisuals,i=n[t];i||(i=n[t]={});var r=i[e];return null==r&&(V(r=this.getVisual(e))?r=r.slice():Uv(r)&&(r=M({},r)),i[e]=r),r},t.prototype.setItemVisual=function(t,e,n){var i=this._itemVisuals[t]||{};this._itemVisuals[t]=i,Uv(e)?M(i,e):i[e]=n},t.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},t.prototype.setLayout=function(t,e){if(Uv(t))for(var n in t)t.hasOwnProperty(n)&&this.setLayout(n,t[n]);else this._layout[t]=e},t.prototype.getLayout=function(t){return this._layout[t]},t.prototype.getItemLayout=function(t){return this._itemLayouts[t]},t.prototype.setItemLayout=function(t,e,n){this._itemLayouts[t]=n?M(this._itemLayouts[t]||{},e):e},t.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},t.prototype.setItemGraphicEl=function(t,e){var n=this.hostModel;if(e){var i=rs(e);i.dataIndex=t,i.dataType=this.dataType,i.seriesIndex=n&&n.seriesIndex,"group"===e.type&&e.traverse(Hv,e)}this._graphicEls[t]=e},t.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},t.prototype.eachItemGraphicEl=function(t,e){k(this._graphicEls,(function(n,i){n&&t&&t.call(e,n,i)}))},t.prototype.cloneShallow=function(e){e||(e=new t(Zv(this.dimensions,this.getDimensionInfo,this),this.hostModel));if(e._storage=this._storage,e._storageArr=this._storageArr,Wv(e,this),this._indices){var n=this._indices.constructor;if(n===Array){var i=this._indices.length;e._indices=new n(i);for(var r=0;r<i;r++)e._indices[r]=this._indices[r]}else e._indices=new n(this._indices)}else e._indices=null;return e.getRawIndex=e._indices?Nv:Rv,e},t.prototype.wrapMethod=function(t,e){var n=this[t];"function"==typeof n&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var t=n.apply(this,arguments);return e.apply(this,[t].concat(et(arguments)))})},t.internalField=function(){function e(t,e,n,i){return Gp(t[i],this._dimensionInfos[e])}Lv={arrayRows:e,objectRows:function(t,e,n,i){return Gp(t[e],this._dimensionInfos[e])},keyedColumns:e,original:function(t,e,n,i){var r=t&&(null==t.value?t:t.value);return!this._rawData.pure&&function(t){return Y(t)&&!(t instanceof Array)}(t)&&(this.hasItemOption=!0),Gp(r instanceof Array?r[i]:r,this._dimensionInfos[e])},typedArray:function(t,e,n,i){return t[i]}},kv=function(t){var e=t._invertedIndicesMap;k(e,(function(n,i){var r=t._dimensionInfos[i].ordinalMeta;if(r){n=e[i]=new Kv(r.categories.length);for(var o=0;o<n.length;o++)n[o]=-1;for(o=0;o<t._count;o++)n[t.get(i,o)]=o}}))},zv=function(t,e,n,i){var r,o=t._storageArr[e];return o&&(r=o[i],n&&n.categories.length&&(r=n.categories[r])),vr(r,null)},Pv=function(t){return t._rawCount>65535?qv:$v},Ov=function(t,e,n,i){var r=jv[e.type],o=e.name;if(i){var a=t[o],s=a&&a.length;if(s!==n){for(var l=new r(n),u=0;u<s;u++)l[u]=a[u];t[o]=l}}else t[o]=new r(n)},Rv=function(t){return t},Nv=function(t){return t<this._count&&t>=0?this._indices[t]:-1},Ev=function(t,e){var n=t._idList[e];return null==n&&null!=t._idDimIdx&&(n=zv(t,t._idDimIdx,t._idOrdinalMeta,e)),null==n&&(n="e\0\0"+e),n},Vv=function(t){return V(t)||(t=null!=t?[t]:[]),t},function(t,e){for(var n=0;n<e.length;n++)t._dimensionInfos[e[n]]||console.error("Unkown dimension "+e[n])},Fv=function(e,n){var i=e.dimensions,r=new t(Zv(i,e.getDimensionInfo,e),e.hostModel);Wv(r,e);for(var o,a,s=r._storage={},l=e._storage,u=r._storageArr=[],h=0;h<i.length;h++){var c=i[h];l[c]&&(C(n,c)>=0?(s[c]=(o=l[c],a=void 0,(a=o.constructor)===Array?o.slice():new a(o)),r._rawExtent[c]=Gv(),r._extent[c]=null):s[c]=l[c],u.push(s[c]))}return r},Gv=function(){return[1/0,-1/0]},Hv=function(t){var e=rs(t),n=rs(this);e.seriesIndex=n.seriesIndex,e.dataIndex=n.dataIndex,e.dataType=n.dataType},Wv=function(t,e){k(Jv.concat(e.__wrappedMethods||[]),(function(n){e.hasOwnProperty(n)&&(t[n]=e[n])})),t.__wrappedMethods=e.__wrappedMethods,k(Qv,(function(n){t[n]=b(e[n])})),t._calculationInfo=M({},e._calculationInfo)},Bv=function(t,e){var n=t._nameList,i=t._idList,r=t._nameDimIdx,o=t._idDimIdx,a=n[e],s=i[e];if(null==a&&null!=r&&(n[e]=a=zv(t,r,t._nameOrdinalMeta,e)),null==s&&null!=o&&(i[e]=s=zv(t,o,t._idOrdinalMeta,e)),null==s&&null!=a){var l=t._nameRepeatCount,u=l[a]=(l[a]||0)+1;s=a,u>1&&(s+="__ec__"+u),i[e]=s}}}(),t}();function em(t,e,n){yp(e)||(e=mp(e)),n=n||{},t=(t||[]).slice();for(var i=(n.dimsDef||[]).slice(),r=lt(),o=lt(),a=[],s=function(t,e,n,i){var r=Math.max(t.dimensionsDetectedCount||1,e.length,n.length,i||0);return k(e,(function(t){var e;Y(t)&&(e=t.dimsDef)&&(r=Math.max(r,e.length))})),r}(e,t,i,n.dimCount),l=0;l<s;l++){var u=i[l],h=i[l]=M({},Y(u)?u:{name:u}),c=h.name,p=a[l]=new Yv;null!=c&&null==r.get(c)&&(p.name=p.displayName=c,r.set(c,l)),null!=h.type&&(p.type=h.type),null!=h.displayName&&(p.displayName=h.displayName)}var d=n.encodeDef;!d&&n.encodeDefaulter&&(d=n.encodeDefaulter(e,s));var f=lt(d);f.each((function(t,e){var n=hr(t).slice();if(1===n.length&&!G(n[0])&&n[0]<0)f.set(e,!1);else{var i=f.set(e,[]);k(n,(function(t,n){var o=G(t)?r.get(t):t;null!=o&&o<s&&(i[n]=o,y(a[o],e,n))}))}}));var g=0;function y(t,e,n){null!=dc.get(e)?t.otherDims[e]=n:(t.coordDim=e,t.coordDimIndex=n,o.set(e,!0))}k(t,(function(t){var e,n,i,r;if(G(t))e=t,r={};else{e=(r=t).name;var o=r.ordinalMeta;r.ordinalMeta=null,(r=b(r)).ordinalMeta=o,n=r.dimsDef,i=r.otherDims,r.name=r.coordDim=r.coordDimIndex=r.dimsDef=r.otherDims=null}var s=f.get(e);if(!1!==s){if(!(s=hr(s)).length)for(var l=0;l<(n&&n.length||1);l++){for(;g<a.length&&null!=a[g].coordDim;)g++;g<a.length&&s.push(g++)}k(s,(function(t,o){var s=a[t];if(y(I(s,r),e,o),null==s.name&&n){var l=n[o];!Y(l)&&(l={name:l}),s.name=s.displayName=l.name,s.defaultTooltip=l.defaultTooltip}i&&I(s.otherDims,i)}))}}));var v=n.generateCoord,m=n.generateCoordCount,_=null!=m;m=v?m||1:0;for(var x=v||"value",w=0;w<s;w++){null==(p=a[w]=a[w]||new Yv).coordDim&&(p.coordDim=nm(x,o,_),p.coordDimIndex=0,(!v||m<=0)&&(p.isExtraCoord=!0),m--),null==p.name&&(p.name=nm(p.coordDim,r,!1)),null!=p.type||bc(e,w)!==fc&&(!p.isExtraCoord||null==p.otherDims.itemName&&null==p.otherDims.seriesName)||(p.type="ordinal")}return a}function nm(t,e,n){if(n||null!=e.get(t)){for(var i=0;null!=e.get(t+i);)i++;t+=i}return e.set(t,!0),t}function im(t,e){return em((e=e||{}).coordDimensions||[],t,{dimsDef:e.dimensionsDefine||t.dimensionsDefine,encodeDef:e.encodeDefine||t.encodeDefine,dimCount:e.dimensionsCount,encodeDefaulter:e.encodeDefaulter,generateCoord:e.generateCoord,generateCoordCount:e.generateCoordCount})}var rm=function(t){this.coordSysDims=[],this.axisMap=lt(),this.categoryAxisMap=lt(),this.coordSysName=t};var om={cartesian2d:function(t,e,n,i){var r=t.getReferringComponents("xAxis",Mr).models[0],o=t.getReferringComponents("yAxis",Mr).models[0];e.coordSysDims=["x","y"],n.set("x",r),n.set("y",o),am(r)&&(i.set("x",r),e.firstCategoryDimIndex=0),am(o)&&(i.set("y",o),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=1))},singleAxis:function(t,e,n,i){var r=t.getReferringComponents("singleAxis",Mr).models[0];e.coordSysDims=["single"],n.set("single",r),am(r)&&(i.set("single",r),e.firstCategoryDimIndex=0)},polar:function(t,e,n,i){var r=t.getReferringComponents("polar",Mr).models[0],o=r.findAxisModel("radiusAxis"),a=r.findAxisModel("angleAxis");e.coordSysDims=["radius","angle"],n.set("radius",o),n.set("angle",a),am(o)&&(i.set("radius",o),e.firstCategoryDimIndex=0),am(a)&&(i.set("angle",a),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=1))},geo:function(t,e,n,i){e.coordSysDims=["lng","lat"]},parallel:function(t,e,n,i){var r=t.ecModel,o=r.getComponent("parallel",t.get("parallelIndex")),a=e.coordSysDims=o.dimensions.slice();k(o.parallelAxisIndex,(function(t,o){var s=r.getComponent("parallelAxis",t),l=a[o];n.set(l,s),am(s)&&(i.set(l,s),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=o))}))}};function am(t){return"category"===t.get("type")}function sm(t,e,n){var i,r,o,a,s=(n=n||{}).byIndex,l=n.stackedCoordDimension,u=!(!t||!t.get("stack"));if(k(e,(function(t,n){G(t)&&(e[n]=t={name:t}),u&&!t.isExtraCoord&&(s||i||!t.ordinalMeta||(i=t),r||"ordinal"===t.type||"time"===t.type||l&&l!==t.coordDim||(r=t))})),!r||s||i||(s=!0),r){o="__\0ecstackresult",a="__\0ecstackedover",i&&(i.createInvertedIndices=!0);var h=r.coordDim,c=r.type,p=0;k(e,(function(t){t.coordDim===h&&p++})),e.push({name:o,coordDim:h,coordDimIndex:p,type:c,isExtraCoord:!0,isCalculationCoord:!0}),p++,e.push({name:a,coordDim:a,coordDimIndex:p,type:c,isExtraCoord:!0,isCalculationCoord:!0})}return{stackedDimension:r&&r.name,stackedByDimension:i&&i.name,isStackedByIndex:s,stackedOverDimension:a,stackResultDimension:o}}function lm(t,e){return!!e&&e===t.getCalculationInfo("stackedDimension")}function um(t,e){return lm(t,e)?t.getCalculationInfo("stackResultDimension"):e}function hm(t,e,n){n=n||{},yp(t)||(t=mp(t));var i,r=e.get("coordinateSystem"),o=Vc.get(r),a=function(t){var e=t.get("coordinateSystem"),n=new rm(e),i=om[e];if(i)return i(t,n,n.axisMap,n.categoryAxisMap),n}(e);a&&a.coordSysDims&&(i=P(a.coordSysDims,(function(t){var e={name:t},n=a.axisMap.get(t);if(n){var i=n.get("type");e.type=Dv(i)}return e}))),i||(i=o&&(o.getDimensionsInfo?o.getDimensionsInfo():o.dimensions.slice())||["x","y"]);var s,l,u=n.useEncodeDefaulter,h=im(t,{coordDimensions:i,generateCoord:n.generateCoord,encodeDefaulter:F(u)?u:u?B(mc,i,e):null});a&&k(h,(function(t,e){var i=t.coordDim,r=a.categoryAxisMap.get(i);r&&(null==s&&(s=e),t.ordinalMeta=r.getOrdinalMeta(),n.createInvertedIndices&&(t.createInvertedIndices=!0)),null!=t.otherDims.itemName&&(l=!0)})),l||null==s||(h[s].otherDims.itemName=0);var c=sm(e,h),p=new tm(h,e);p.setCalculationInfo(c);var d=null!=s&&function(t){if("original"===t.sourceFormat){var e=function(t){var e=0;for(;e<t.length&&null==t[e];)e++;return t[e]}(t.data||[]);return null!=e&&!V(dr(e))}}(t)?function(t,e,n,i){return i===s?n:this.defaultDimValueGetter(t,e,n,i)}:null;return p.hasItemOption=!1,p.initData(t,null,d),p}var cm=function(){function t(t){this._setting=t||{},this._extent=[1/0,-1/0]}return t.prototype.getSetting=function(t){return this._setting[t]},t.prototype.unionExtent=function(t){var e=this._extent;t[0]<e[0]&&(e[0]=t[0]),t[1]>e[1]&&(e[1]=t[1])},t.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},t.prototype.getExtent=function(){return this._extent.slice()},t.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(e)||(n[1]=e)},t.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},t.prototype.isBlank=function(){return this._isBlank},t.prototype.setBlank=function(t){this._isBlank=t},t}();Br(cm);var pm=function(){function t(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication}return t.createByAxisModel=function(e){var n=e.option,i=n.data,r=i&&P(i,dm);return new t({categories:r,needCollect:!r,deduplication:!1!==n.dedplication})},t.prototype.getOrdinal=function(t){return this._getOrCreateMap().get(t)},t.prototype.parseAndCollect=function(t){var e,n=this._needCollect;if("string"!=typeof t&&!n)return t;if(n&&!this._deduplication)return e=this.categories.length,this.categories[e]=t,e;var i=this._getOrCreateMap();return null==(e=i.get(t))&&(n?(e=this.categories.length,this.categories[e]=t,i.set(t,e)):e=NaN),e},t.prototype._getOrCreateMap=function(){return this._map||(this._map=lt(this.categories))},t}();function dm(t){return Y(t)&&null!=t.value?t.value:t+""}var fm=Hi;function gm(t,e,n,i){var r={},o=t[1]-t[0],a=r.interval=tr(o/e,!0);null!=n&&a<n&&(a=r.interval=n),null!=i&&a>i&&(a=r.interval=i);var s=r.intervalPrecision=ym(a);return function(t,e){!isFinite(t[0])&&(t[0]=e[0]),!isFinite(t[1])&&(t[1]=e[1]),vm(t,0,e),vm(t,1,e),t[0]>t[1]&&(t[0]=t[1])}(r.niceTickExtent=[fm(Math.ceil(t[0]/a)*a,s),fm(Math.floor(t[1]/a)*a,s)],t),r}function ym(t){return Xi(t)+2}function vm(t,e,n){t[e]=Math.max(Math.min(t[e],n[1]),n[0])}function mm(t,e){return t>=e[0]&&t<=e[1]}function _m(t,e){return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])}function xm(t,e){return t*(e[1]-e[0])+e[0]}var bm=function(t){function n(e){var n=t.call(this,e)||this;n.type="ordinal";var i=n.getSetting("ordinalMeta");return i||(i=new pm({})),V(i)&&(i=new pm({categories:P(i,(function(t){return Y(t)?t.value:t}))})),n._ordinalMeta=i,n._extent=n.getSetting("extent")||[0,i.categories.length-1],n}return e(n,t),n.prototype.parse=function(t){return"string"==typeof t?this._ordinalMeta.getOrdinal(t):Math.round(t)},n.prototype.contain=function(t){return mm(t=this.parse(t),this._extent)&&null!=this._ordinalMeta.categories[t]},n.prototype.normalize=function(t){return _m(t=this._getTickNumber(this.parse(t)),this._extent)},n.prototype.scale=function(t){return t=Math.round(xm(t,this._extent)),this.getRawOrdinalNumber(t)},n.prototype.getTicks=function(){for(var t=[],e=this._extent,n=e[0];n<=e[1];)t.push({value:n}),n++;return t},n.prototype.getMinorTicks=function(t){},n.prototype.setSortInfo=function(t){if(null!=t){for(var e=t.ordinalNumbers,n=this._ordinalNumbersByTick=[],i=this._ticksByOrdinalNumber=[],r=0,o=this._ordinalMeta.categories.length,a=Math.min(o,e.length);r<a;++r){var s=e[r];n[r]=s,i[s]=r}for(var l=0;r<o;++r){for(;null!=i[l];)l++;n.push(l),i[l]=r}}else this._ordinalNumbersByTick=this._ticksByOrdinalNumber=null},n.prototype._getTickNumber=function(t){var e=this._ticksByOrdinalNumber;return e&&t>=0&&t<e.length?e[t]:t},n.prototype.getRawOrdinalNumber=function(t){var e=this._ordinalNumbersByTick;return e&&t>=0&&t<e.length?e[t]:t},n.prototype.getLabel=function(t){if(!this.isBlank()){var e=this.getRawOrdinalNumber(t.value),n=this._ordinalMeta.categories[e];return null==n?"":n+""}},n.prototype.count=function(){return this._extent[1]-this._extent[0]+1},n.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},n.prototype.isInExtentRange=function(t){return t=this._getTickNumber(t),this._extent[0]<=t&&this._extent[1]>=t},n.prototype.getOrdinalMeta=function(){return this._ordinalMeta},n.prototype.niceTicks=function(){},n.prototype.niceExtent=function(){},n.type="ordinal",n}(cm);cm.registerClass(bm);var wm=Hi,Sm=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="interval",e._interval=0,e._intervalPrecision=2,e}return e(n,t),n.prototype.parse=function(t){return t},n.prototype.contain=function(t){return mm(t,this._extent)},n.prototype.normalize=function(t){return _m(t,this._extent)},n.prototype.scale=function(t){return xm(t,this._extent)},n.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=parseFloat(t)),isNaN(e)||(n[1]=parseFloat(e))},n.prototype.unionExtent=function(t){var e=this._extent;t[0]<e[0]&&(e[0]=t[0]),t[1]>e[1]&&(e[1]=t[1]),this.setExtent(e[0],e[1])},n.prototype.getInterval=function(){return this._interval},n.prototype.setInterval=function(t){this._interval=t,this._niceExtent=this._extent.slice(),this._intervalPrecision=ym(t)},n.prototype.getTicks=function(t){var e=this._interval,n=this._extent,i=this._niceExtent,r=this._intervalPrecision,o=[];if(!e)return o;n[0]<i[0]&&(t?o.push({value:wm(i[0]-e,r)}):o.push({value:n[0]}));for(var a=i[0];a<=i[1]&&(o.push({value:a}),(a=wm(a+e,r))!==o[o.length-1].value);)if(o.length>1e4)return[];var s=o.length?o[o.length-1].value:i[1];return n[1]>s&&(t?o.push({value:wm(s+e,r)}):o.push({value:n[1]})),o},n.prototype.getMinorTicks=function(t){for(var e=this.getTicks(!0),n=[],i=this.getExtent(),r=1;r<e.length;r++){for(var o=e[r],a=e[r-1],s=0,l=[],u=(o.value-a.value)/t;s<t-1;){var h=wm(a.value+(s+1)*u);h>i[0]&&h<i[1]&&l.push(h),s++}n.push(l)}return n},n.prototype.getLabel=function(t,e){if(null==t)return"";var n=e&&e.precision;return null==n?n=Xi(t.value)||0:"auto"===n&&(n=this._intervalPrecision),Bh(wm(t.value,n,!0))},n.prototype.niceTicks=function(t,e,n){t=t||5;var i=this._extent,r=i[1]-i[0];if(isFinite(r)){r<0&&(r=-r,i.reverse());var o=gm(i,t,e,n);this._intervalPrecision=o.intervalPrecision,this._interval=o.interval,this._niceExtent=o.niceTickExtent}},n.prototype.niceExtent=function(t){var e=this._extent;if(e[0]===e[1])if(0!==e[0]){var n=e[0];t.fixMax||(e[1]+=n/2),e[0]-=n/2}else e[1]=1;var i=e[1]-e[0];isFinite(i)||(e[0]=0,e[1]=1),this.niceTicks(t.splitNumber,t.minInterval,t.maxInterval);var r=this._interval;t.fixMin||(e[0]=wm(Math.floor(e[0]/r)*r)),t.fixMax||(e[1]=wm(Math.ceil(e[1]/r)*r))},n.type="interval",n}(cm);cm.registerClass(Sm);var Mm="undefined"!=typeof Float32Array?Float32Array:Array;function Im(t){return t.get("stack")||"__ec_stack_"+t.seriesIndex}function Tm(t){return t.dim+t.index}function Cm(t,e){var n=[];return e.eachSeriesByType(t,(function(t){Om(t)&&!Rm(t)&&n.push(t)})),n}function Am(t){var e=function(t){var e={};k(t,(function(t){var n=t.coordinateSystem.getBaseAxis();if("time"===n.type||"value"===n.type)for(var i=t.getData(),r=n.dim+"_"+n.index,o=i.mapDimension(n.dim),a=0,s=i.count();a<s;++a){var l=i.get(o,a);e[r]?e[r].push(l):e[r]=[l]}}));var n={};for(var i in e)if(e.hasOwnProperty(i)){var r=e[i];if(r){r.sort((function(t,e){return t-e}));for(var o=null,a=1;a<r.length;++a){var s=r[a]-r[a-1];s>0&&(o=null===o?s:Math.min(o,s))}n[i]=o}}return n}(t),n=[];return k(t,(function(t){var i,r=t.coordinateSystem.getBaseAxis(),o=r.getExtent();if("category"===r.type)i=r.getBandWidth();else if("value"===r.type||"time"===r.type){var a=r.dim+"_"+r.index,s=e[a],l=Math.abs(o[1]-o[0]),u=r.scale.getExtent(),h=Math.abs(u[1]-u[0]);i=s?l/h*s:l}else{var c=t.getData();i=Math.abs(o[1]-o[0])/c.count()}var p=Gi(t.get("barWidth"),i),d=Gi(t.get("barMaxWidth"),i),f=Gi(t.get("barMinWidth")||1,i),g=t.get("barGap"),y=t.get("barCategoryGap");n.push({bandWidth:i,barWidth:p,barMaxWidth:d,barMinWidth:f,barGap:g,barCategoryGap:y,axisKey:Tm(r),stackId:Im(t)})})),Dm(n)}function Dm(t){var e={};k(t,(function(t,n){var i=t.axisKey,r=t.bandWidth,o=e[i]||{bandWidth:r,remainedWidth:r,autoWidthCount:0,categoryGap:null,gap:"20%",stacks:{}},a=o.stacks;e[i]=o;var s=t.stackId;a[s]||o.autoWidthCount++,a[s]=a[s]||{width:0,maxWidth:0};var l=t.barWidth;l&&!a[s].width&&(a[s].width=l,l=Math.min(o.remainedWidth,l),o.remainedWidth-=l);var u=t.barMaxWidth;u&&(a[s].maxWidth=u);var h=t.barMinWidth;h&&(a[s].minWidth=h);var c=t.barGap;null!=c&&(o.gap=c);var p=t.barCategoryGap;null!=p&&(o.categoryGap=p)}));var n={};return k(e,(function(t,e){n[e]={};var i=t.stacks,r=t.bandWidth,o=t.categoryGap;if(null==o){var a=E(i).length;o=Math.max(35-4*a,15)+"%"}var s=Gi(o,r),l=Gi(t.gap,1),u=t.remainedWidth,h=t.autoWidthCount,c=(u-s)/(h+(h-1)*l);c=Math.max(c,0),k(i,(function(t){var e=t.maxWidth,n=t.minWidth;if(t.width){i=t.width;e&&(i=Math.min(i,e)),n&&(i=Math.max(i,n)),t.width=i,u-=i+l*i,h--}else{var i=c;e&&e<i&&(i=Math.min(e,u)),n&&n>i&&(i=n),i!==c&&(t.width=i,u-=i+l*i,h--)}})),c=(u-s)/(h+(h-1)*l),c=Math.max(c,0);var p,d=0;k(i,(function(t,e){t.width||(t.width=c),p=t,d+=t.width*(1+l)})),p&&(d-=p.width*l);var f=-d/2;k(i,(function(t,i){n[e][i]=n[e][i]||{bandWidth:r,offset:f,width:t.width},f+=t.width*(1+l)}))})),n}function Lm(t,e,n){if(t&&e){var i=t[Tm(e)];return null!=i&&null!=n?i[Im(n)]:i}}function km(t,e){var n=Cm(t,e),i=Am(n),r={};k(n,(function(t){var e=t.getData(),n=t.coordinateSystem,o=n.getBaseAxis(),a=Im(t),s=i[Tm(o)][a],l=s.offset,u=s.width,h=n.getOtherAxis(o),c=t.get("barMinHeight")||0;r[a]=r[a]||[],e.setLayout({bandWidth:s.bandWidth,offset:l,size:u});for(var p=e.mapDimension(h.dim),d=e.mapDimension(o.dim),f=lm(e,p),g=h.isHorizontal(),y=Nm(o,h),v=0,m=e.count();v<m;v++){var _=e.get(p,v),x=e.get(d,v),b=_>=0?"p":"n",w=y;f&&(r[a][x]||(r[a][x]={p:y,n:y}),w=r[a][x][b]);var S,M=void 0,I=void 0,T=void 0,C=void 0;if(g)M=w,I=(S=n.dataToPoint([_,x]))[1]+l,T=S[0]-y,C=u,Math.abs(T)<c&&(T=(T<0?-1:1)*c),isNaN(T)||f&&(r[a][x][b]+=T);else M=(S=n.dataToPoint([x,_]))[0]+l,I=w,T=u,C=S[1]-y,Math.abs(C)<c&&(C=(C<=0?-1:1)*c),isNaN(C)||f&&(r[a][x][b]+=C);e.setItemLayout(v,{x:M,y:I,width:T,height:C})}}))}var Pm={seriesType:"bar",plan:Pd(),reset:function(t){if(Om(t)&&Rm(t)){var e=t.getData(),n=t.coordinateSystem,i=n.master.getRect(),r=n.getBaseAxis(),o=n.getOtherAxis(r),a=e.mapDimension(o.dim),s=e.mapDimension(r.dim),l=o.isHorizontal(),u=l?0:1,h=Lm(Am([t]),r,t).width;return h>.5||(h=.5),{progress:function(t,e){for(var c,p=t.count,d=new Mm(2*p),f=new Mm(2*p),g=new Mm(p),y=[],v=[],m=0,_=0;null!=(c=t.next());)v[u]=e.get(a,c),v[1-u]=e.get(s,c),y=n.dataToPoint(v,null,y),f[m]=l?i.x+i.width:y[0],d[m++]=y[0],f[m]=l?y[1]:i.y+i.height,d[m++]=y[1],g[_++]=c;e.setLayout({largePoints:d,largeDataIndices:g,largeBackgroundPoints:f,barWidth:h,valueAxisStart:Nm(r,o),backgroundStart:l?i.x:i.y,valueAxisHorizontal:l})}}}}};function Om(t){return t.coordinateSystem&&"cartesian2d"===t.coordinateSystem.type}function Rm(t){return t.pipelineContext&&t.pipelineContext.large}function Nm(t,e,n){return e.toGlobalCoord(e.dataToCoord("log"===e.type?1:0))}var Em=function(t){function n(e){var n=t.call(this,e)||this;return n.type="time",n}return e(n,t),n.prototype.getLabel=function(t){var e=this.getSetting("useUTC");return bh(t.value,gh[function(t){switch(t){case"year":case"month":return"day";case"millisecond":return"millisecond";default:return"second"}}(_h(this._minLevelUnit))]||gh.second,e,this.getSetting("locale"))},n.prototype.getFormattedLabel=function(t,e,n){var i=this.getSetting("useUTC");return function(t,e,n,i,r){var o=null;if("string"==typeof n)o=n;else if("function"==typeof n)o=n(t.value,e,{level:t.level});else{var a=M({},fh);if(t.level>0)for(var s=0;s<yh.length;++s)a[yh[s]]="{primary|"+a[yh[s]]+"}";var l=n?!1===n.inherit?n:I(n,a):a,u=wh(t.value,r);if(l[u])o=l[u];else if(l.inherit){for(s=vh.indexOf(u)-1;s>=0;--s)if(l[u]){o=l[u];break}o=o||a.none}if(V(o)){var h=null==t.level?0:t.level>=0?t.level:o.length+t.level;o=o[h=Math.min(h,o.length-1)]}}return bh(new Date(t.value),o,r,i)}(t,e,n,this.getSetting("locale"),i)},n.prototype.getTicks=function(t){var e=this._interval,n=this._extent,i=[];if(!e)return i;i.push({value:n[0],level:0});var r=this.getSetting("useUTC"),o=function(t,e,n,i){var r=1e4,o=vh,a=0;function s(t,e,n,r,o,a,s){for(var l=new Date(e),u=e,h=l[r]();u<n&&u<=i[1];)s.push({value:u}),h+=t,l[o](h),u=l.getTime();s.push({value:u,notAdd:!0})}function l(t,r,o){var a=[],l=!r.length;if(!function(t,e,n,i){var r=$i(e),o=$i(n),a=function(t){return Sh(r,t,i)===Sh(o,t,i)},s=function(){return a("year")},l=function(){return s()&&a("month")},u=function(){return l()&&a("day")},h=function(){return u()&&a("hour")},c=function(){return h()&&a("minute")},p=function(){return c()&&a("second")},d=function(){return p()&&a("millisecond")};switch(t){case"year":return s();case"month":return l();case"day":return u();case"hour":return h();case"minute":return c();case"second":return p();case"millisecond":return d()}}(_h(t),i[0],i[1],n)){l&&(r=[{value:Wm(new Date(i[0]),t,n)},{value:i[1]}]);for(var u=0;u<r.length-1;u++){var h=r[u].value,c=r[u+1].value;if(h!==c){var p=void 0,d=void 0,f=void 0,g=!1;switch(t){case"year":p=Math.max(1,Math.round(e/864e5/365)),d=Mh(n),f=kh(n);break;case"half-year":case"quarter":case"month":p=Vm(e),d=Ih(n),f=Ph(n);break;case"week":case"half-week":case"day":p=Bm(e),d=Th(n),f=Oh(n),g=!0;break;case"half-day":case"quarter-day":case"hour":p=Fm(e),d=Ch(n),f=Rh(n);break;case"minute":p=Gm(e,!0),d=Ah(n),f=Nh(n);break;case"second":p=Gm(e,!1),d=Dh(n),f=Eh(n);break;case"millisecond":p=Hm(e),d=Lh(n),f=zh(n)}s(p,h,c,d,f,g,a),"year"===t&&o.length>1&&0===u&&o.unshift({value:o[0].value-p})}}for(u=0;u<a.length;u++)o.push(a[u]);return a}}for(var u=[],h=[],c=0,p=0,d=0;d<o.length&&a++<r;++d){var f=_h(o[d]);if(xh(o[d]))if(l(o[d],u[u.length-1]||[],h),f!==(o[d+1]?_h(o[d+1]):null)){if(h.length){p=c,h.sort((function(t,e){return t.value-e.value}));for(var g=[],y=0;y<h.length;++y){var v=h[y].value;0!==y&&h[y-1].value===v||(g.push(h[y]),v>=i[0]&&v<=i[1]&&c++)}var m=(i[1]-i[0])/e;if(c>1.5*m&&p>m/1.5)break;if(u.push(g),c>m||t===o[d])break}h=[]}}0;var _=R(P(u,(function(t){return R(t,(function(t){return t.value>=i[0]&&t.value<=i[1]&&!t.notAdd}))})),(function(t){return t.length>0})),x=[],b=_.length-1;for(d=0;d<_.length;++d)for(var w=_[d],S=0;S<w.length;++S)x.push({value:w[S].value,level:b-d});x.sort((function(t,e){return t.value-e.value}));var M=[];for(d=0;d<x.length;++d)0!==d&&x[d].value===x[d-1].value||M.push(x[d]);return M}(this._minLevelUnit,this._approxInterval,r,n);return(i=i.concat(o)).push({value:n[1],level:0}),i},n.prototype.niceExtent=function(t){var e=this._extent;if(e[0]===e[1]&&(e[0]-=864e5,e[1]+=864e5),e[1]===-1/0&&e[0]===1/0){var n=new Date;e[1]=+new Date(n.getFullYear(),n.getMonth(),n.getDate()),e[0]=e[1]-864e5}this.niceTicks(t.splitNumber,t.minInterval,t.maxInterval)},n.prototype.niceTicks=function(t,e,n){t=t||10;var i=this._extent,r=i[1]-i[0];this._approxInterval=r/t,null!=e&&this._approxInterval<e&&(this._approxInterval=e),null!=n&&this._approxInterval>n&&(this._approxInterval=n);var o=zm.length,a=Math.min(function(t,e,n,i){for(;n<i;){var r=n+i>>>1;t[r][1]<e?n=r+1:i=r}return n}(zm,this._approxInterval,0,o),o-1);this._interval=zm[a][1],this._minLevelUnit=zm[Math.max(a-1,0)][0]},n.prototype.parse=function(t){return"number"==typeof t?t:+$i(t)},n.prototype.contain=function(t){return mm(this.parse(t),this._extent)},n.prototype.normalize=function(t){return _m(this.parse(t),this._extent)},n.prototype.scale=function(t){return xm(t,this._extent)},n.type="time",n}(Sm),zm=[["second",1e3],["minute",6e4],["hour",36e5],["quarter-day",216e5],["half-day",432e5],["day",10368e4],["half-week",3024e5],["week",6048e5],["month",26784e5],["quarter",8208e6],["half-year",15768e6],["year",31536e6]];function Bm(t,e){return(t/=864e5)>16?16:t>7.5?7:t>3.5?4:t>1.5?2:1}function Vm(t){return(t/=2592e6)>6?6:t>3?3:t>2?2:1}function Fm(t){return(t/=36e5)>12?12:t>6?6:t>3.5?4:t>2?2:1}function Gm(t,e){return(t/=e?6e4:1e3)>30?30:t>20?20:t>15?15:t>10?10:t>5?5:t>2?2:1}function Hm(t){return tr(t,!0)}function Wm(t,e,n){var i=new Date(t);switch(_h(e)){case"year":case"month":i[Ph(n)](0);case"day":i[Oh(n)](1);case"hour":i[Rh(n)](0);case"minute":i[Nh(n)](0);case"second":i[Eh(n)](0),i[zh(n)](0)}return i.getTime()}cm.registerClass(Em);var Ym=cm.prototype,Xm=Sm.prototype,Um=Xi,Zm=Hi,jm=Math.floor,qm=Math.ceil,Km=Math.pow,$m=Math.log,Jm=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="log",e.base=10,e._originalScale=new Sm,e._interval=0,e}return e(n,t),n.prototype.getTicks=function(t){var e=this._originalScale,n=this._extent,i=e.getExtent();return P(Xm.getTicks.call(this,t),(function(t){var e=t.value,r=Hi(Km(this.base,e));return r=e===n[0]&&this._fixMin?t_(r,i[0]):r,{value:r=e===n[1]&&this._fixMax?t_(r,i[1]):r}}),this)},n.prototype.setExtent=function(t,e){var n=this.base;t=$m(t)/$m(n),e=$m(e)/$m(n),Xm.setExtent.call(this,t,e)},n.prototype.getExtent=function(){var t=this.base,e=Ym.getExtent.call(this);e[0]=Km(t,e[0]),e[1]=Km(t,e[1]);var n=this._originalScale.getExtent();return this._fixMin&&(e[0]=t_(e[0],n[0])),this._fixMax&&(e[1]=t_(e[1],n[1])),e},n.prototype.unionExtent=function(t){this._originalScale.unionExtent(t);var e=this.base;t[0]=$m(t[0])/$m(e),t[1]=$m(t[1])/$m(e),Ym.unionExtent.call(this,t)},n.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},n.prototype.niceTicks=function(t){t=t||10;var e=this._extent,n=e[1]-e[0];if(!(n===1/0||n<=0)){var i=Ji(n);for(t/n*i<=.5&&(i*=10);!isNaN(i)&&Math.abs(i)<1&&Math.abs(i)>0;)i*=10;var r=[Hi(qm(e[0]/i)*i),Hi(jm(e[1]/i)*i)];this._interval=i,this._niceExtent=r}},n.prototype.niceExtent=function(t){Xm.niceExtent.call(this,t),this._fixMin=t.fixMin,this._fixMax=t.fixMax},n.prototype.parse=function(t){return t},n.prototype.contain=function(t){return mm(t=$m(t)/$m(this.base),this._extent)},n.prototype.normalize=function(t){return _m(t=$m(t)/$m(this.base),this._extent)},n.prototype.scale=function(t){return t=xm(t,this._extent),Km(this.base,t)},n.type="log",n}(cm),Qm=Jm.prototype;function t_(t,e){return Zm(t,Um(e))}Qm.getMinorTicks=Xm.getMinorTicks,Qm.getLabel=Xm.getLabel,cm.registerClass(Jm);var e_=function(){function t(t,e,n){this._prepareParams(t,e,n)}return t.prototype._prepareParams=function(t,e,n){n[1]<n[0]&&(n=[NaN,NaN]),this._dataMin=n[0],this._dataMax=n[1];var i=this._isOrdinal="ordinal"===t.type;this._needCrossZero=e.getNeedCrossZero&&e.getNeedCrossZero();var r=this._modelMinRaw=e.get("min",!0);F(r)?this._modelMinNum=o_(t,r({min:n[0],max:n[1]})):"dataMin"!==r&&(this._modelMinNum=o_(t,r));var o=this._modelMaxRaw=e.get("max",!0);if(F(o)?this._modelMaxNum=o_(t,o({min:n[0],max:n[1]})):"dataMax"!==o&&(this._modelMaxNum=o_(t,o)),i)this._axisDataLen=e.getCategories().length;else{var a=e.get("boundaryGap"),s=V(a)?a:[a||0,a||0];"boolean"==typeof s[0]||"boolean"==typeof s[1]?this._boundaryGapInner=[0,0]:this._boundaryGapInner=[Hn(s[0],1),Hn(s[1],1)]}},t.prototype.calculate=function(){var t=this._isOrdinal,e=this._dataMin,n=this._dataMax,i=this._axisDataLen,r=this._boundaryGapInner,o=t?null:n-e||Math.abs(e),a="dataMin"===this._modelMinRaw?e:this._modelMinNum,s="dataMax"===this._modelMaxRaw?n:this._modelMaxNum,l=null!=a,u=null!=s;null==a&&(a=t?i?0:NaN:e-r[0]*o),null==s&&(s=t?i?i-1:NaN:n+r[1]*o),(null==a||!isFinite(a))&&(a=NaN),(null==s||!isFinite(s))&&(s=NaN),a>s&&(a=NaN,s=NaN);var h=$(a)||$(s)||t&&!i;this._needCrossZero&&(a>0&&s>0&&!l&&(a=0),a<0&&s<0&&!u&&(s=0));var c=this._determinedMin,p=this._determinedMax;return null!=c&&(a=c,l=!0),null!=p&&(s=p,u=!0),{min:a,max:s,minFixed:l,maxFixed:u,isBlank:h}},t.prototype.modifyDataMinMax=function(t,e){this[i_[t]]=e},t.prototype.setDeterminedMinMax=function(t,e){var n=n_[t];this[n]=e},t.prototype.freeze=function(){this.frozen=!0},t}(),n_={min:"_determinedMin",max:"_determinedMax"},i_={min:"_dataMin",max:"_dataMax"};function r_(t,e,n){var i=t.rawExtentInfo;return i||(i=new e_(t,e,n),t.rawExtentInfo=i,i)}function o_(t,e){return null==e?null:$(e)?NaN:t.parse(e)}function a_(t,e){var n=t.type,i=r_(t,e,t.getExtent()).calculate();t.setBlank(i.isBlank);var r=i.min,o=i.max,a=e.ecModel;if(a&&"time"===n){var s=Cm("bar",a),l=!1;if(k(s,(function(t){l=l||t.getBaseAxis()===e.axis})),l){var u=Am(s),h=function(t,e,n,i){var r=n.axis.getExtent(),o=r[1]-r[0],a=Lm(i,n.axis);if(void 0===a)return{min:t,max:e};var s=1/0;k(a,(function(t){s=Math.min(t.offset,s)}));var l=-1/0;k(a,(function(t){l=Math.max(t.offset+t.width,l)})),s=Math.abs(s),l=Math.abs(l);var u=s+l,h=e-t,c=h/(1-(s+l)/o)-h;return{min:t-=c*(s/u),max:e+=c*(l/u)}}(r,o,e,u);r=h.min,o=h.max}}return{extent:[r,o],fixMin:i.minFixed,fixMax:i.maxFixed}}function s_(t,e){var n=a_(t,e),i=n.extent,r=e.get("splitNumber");t instanceof Jm&&(t.base=e.get("logBase"));var o=t.type;t.setExtent(i[0],i[1]),t.niceExtent({splitNumber:r,fixMin:n.fixMin,fixMax:n.fixMax,minInterval:"interval"===o||"time"===o?e.get("minInterval"):null,maxInterval:"interval"===o||"time"===o?e.get("maxInterval"):null});var a=e.get("interval");null!=a&&t.setInterval&&t.setInterval(a)}function l_(t,e){if(e=e||t.get("type"))switch(e){case"category":return new bm({ordinalMeta:t.getOrdinalMeta?t.getOrdinalMeta():t.getCategories(),extent:[1/0,-1/0]});case"time":return new Em({locale:t.ecModel.getLocaleModel(),useUTC:t.ecModel.get("useUTC")});default:return new(cm.getClass(e)||Sm)}}function u_(t){var e,n,i=t.getLabelModel().get("formatter"),r="category"===t.type?t.scale.getExtent()[0]:null;return"time"===t.scale.type?(n=i,function(e,i){return t.scale.getFormattedLabel(e,i,n)}):"string"==typeof i?function(e){return function(n){var i=t.scale.getLabel(n);return e.replace("{value}",null!=i?i:"")}}(i):"function"==typeof i?(e=i,function(n,i){return null!=r&&(i=n.value-r),e(h_(t,n),i,null!=n.level?{level:n.level}:null)}):function(e){return t.scale.getLabel(e)}}function h_(t,e){return"category"===t.type?t.scale.getLabel(e):e.value}function c_(t,e){var n=e*Math.PI/180,i=t.width,r=t.height,o=i*Math.abs(Math.cos(n))+Math.abs(r*Math.sin(n)),a=i*Math.abs(Math.sin(n))+Math.abs(r*Math.cos(n));return new Pn(t.x,t.y,o,a)}function p_(t){var e=t.get("interval");return null==e?"auto":e}function d_(t){return"category"===t.type&&0===p_(t.getLabelModel())}function f_(t,e){var n={};return k(t.mapDimensionsAll(e),(function(e){n[um(t,e)]=!0})),E(n)}var g_=function(){function t(){}return t.prototype.getNeedCrossZero=function(){return!this.option.scale},t.prototype.getCoordSysModel=function(){},t}();var y_={isDimensionStacked:lm,enableDataStack:sm,getStackedDimension:um};var v_=Object.freeze({__proto__:null,createList:function(t){return hm(t.getSource(),t)},getLayoutRect:nc,dataStack:y_,createScale:function(t,e){var n=e;e instanceof ah||(n=new ah(e));var i=l_(n);return i.setExtent(t[0],t[1]),s_(i,n),i},mixinAxisModelCommonMethods:function(t){D(t,g_)},getECData:rs,createTextStyle:function(t,e){return Vu(t,null,null,"normal"!==(e=e||{}).state)},createDimensions:im,createSymbol:Ig,enableHoverEmphasis:Ns});function m_(t,e){return Math.abs(t-e)<1e-8}function __(t,e,n){var i=0,r=t[0];if(!r)return!1;for(var o=1;o<t.length;o++){var a=t[o];i+=Sa(r[0],r[1],a[0],a[1],e,n),r=a}var s=t[0];return m_(r[0],s[0])&&m_(r[1],s[1])||(i+=Sa(r[0],r[1],s[0],s[1],e,n)),0!==i}var x_=function(){function t(t,e,n){if(this.name=t,this.geometries=e,n)n=[n[0],n[1]];else{var i=this.getBoundingRect();n=[i.x+i.width/2,i.y+i.height/2]}this.center=n}return t.prototype.getBoundingRect=function(){var t=this._rect;if(t)return t;for(var e=Number.MAX_VALUE,n=[e,e],i=[-e,-e],r=[],o=[],a=this.geometries,s=0;s<a.length;s++){if("polygon"===a[s].type)Wo(a[s].exterior,r,o),Nt(n,n,r),Et(i,i,o)}return 0===s&&(n[0]=n[1]=i[0]=i[1]=0),this._rect=new Pn(n[0],n[1],i[0]-n[0],i[1]-n[1])},t.prototype.contain=function(t){var e=this.getBoundingRect(),n=this.geometries;if(!e.contain(t[0],t[1]))return!1;t:for(var i=0,r=n.length;i<r;i++)if("polygon"===n[i].type){var o=n[i].exterior,a=n[i].interiors;if(__(o,t[0],t[1])){for(var s=0;s<(a?a.length:0);s++)if(__(a[s],t[0],t[1]))continue t;return!0}}return!1},t.prototype.transformTo=function(t,e,n,i){var r=this.getBoundingRect(),o=r.width/r.height;n?i||(i=n/o):n=o*i;for(var a=new Pn(t,e,n,i),s=r.calculateTransform(a),l=this.geometries,u=0;u<l.length;u++)if("polygon"===l[u].type){for(var h=l[u].exterior,c=l[u].interiors,p=0;p<h.length;p++)Rt(h[p],h[p],s);for(var d=0;d<(c?c.length:0);d++)for(p=0;p<c[d].length;p++)Rt(c[d][p],c[d][p],s)}(r=this._rect).copy(a),this.center=[r.x+r.width/2,r.y+r.height/2]},t.prototype.cloneShallow=function(e){null==e&&(e=this.name);var n=new t(e,this.geometries,this.center);return n._rect=this._rect,n.transformTo=null,n},t}();function b_(t,e,n){for(var i=[],r=e[0],o=e[1],a=0;a<t.length;a+=2){var s=t.charCodeAt(a)-64,l=t.charCodeAt(a+1)-64;s=s>>1^-(1&s),l=l>>1^-(1&l),r=s+=r,o=l+=o,i.push([s/n,l/n])}return i}function w_(t,e){return P(R((t=function(t){if(!t.UTF8Encoding)return t;var e=t,n=e.UTF8Scale;null==n&&(n=1024);for(var i=e.features,r=0;r<i.length;r++){var o=i[r].geometry;if("Polygon"===o.type)for(var a=o.coordinates,s=0;s<a.length;s++)a[s]=b_(a[s],o.encodeOffsets[s],n);else if("MultiPolygon"===o.type)for(a=o.coordinates,s=0;s<a.length;s++)for(var l=a[s],u=0;u<l.length;u++)l[u]=b_(l[u],o.encodeOffsets[s][u],n)}return e.UTF8Encoding=!1,e}(t)).features,(function(t){return t.geometry&&t.properties&&t.geometry.coordinates.length>0})),(function(t){var n=t.properties,i=t.geometry,r=[];if("Polygon"===i.type){var o=i.coordinates;r.push({type:"polygon",exterior:o[0],interiors:o.slice(1)})}"MultiPolygon"===i.type&&k(o=i.coordinates,(function(t){t[0]&&r.push({type:"polygon",exterior:t[0],interiors:t.slice(1)})}));var a=new x_(n[e||"name"],r,n.cp);return a.properties=n,a}))}var S_=Object.freeze({__proto__:null,linearMap:Fi,round:Hi,asc:Wi,getPrecision:Yi,getPrecisionSafe:Xi,getPixelPrecision:Ui,getPercentWithPrecision:Zi,MAX_SAFE_INTEGER:9007199254740991,remRadian:ji,isRadianAroundZero:qi,parseDate:$i,quantity:Ji,quantityExponent:Qi,nice:tr,quantile:er,reformIntervals:nr,isNumeric:rr,numericToNumber:ir}),M_=Object.freeze({__proto__:null,parse:$i,format:bh}),I_=Object.freeze({__proto__:null,extendShape:ru,extendPath:au,makePath:uu,makeImage:hu,mergePath:pu,resizePath:du,createIcon:Du,updateProps:yu,initProps:vu,getTransform:wu,clipPointsByRect:Cu,clipRectByRect:Au,registerShape:su,getShapeClass:lu,Group:Pi,Image:Fa,Text:Ka,Circle:ul,Ellipse:cl,Sector:Tl,Ring:Al,Polygon:Pl,Polyline:Rl,Rect:Za,Line:zl,BezierCurve:Gl,Arc:Wl,IncrementalDisplayable:tu,CompoundPath:Yl,LinearGradient:Ul,RadialGradient:Zl,BoundingRect:Pn}),T_=Object.freeze({__proto__:null,addCommas:Bh,toCamelCase:Vh,normalizeCssArray:Fh,encodeHTML:Wh,formatTpl:Zh,getTooltipMarker:jh,formatTime:function(t,e,n){"week"!==t&&"month"!==t&&"quarter"!==t&&"half-year"!==t&&"year"!==t||(t="MM-dd\nyyyy");var i=$i(e),r=n?"UTC":"",o=i["get"+r+"FullYear"](),a=i["get"+r+"Month"]()+1,s=i["get"+r+"Date"](),l=i["get"+r+"Hours"](),u=i["get"+r+"Minutes"](),h=i["get"+r+"Seconds"](),c=i["get"+r+"Milliseconds"]();return t=t.replace("MM",mh(a,2)).replace("M",a).replace("yyyy",o).replace("yy",o%100+"").replace("dd",mh(s,2)).replace("d",s).replace("hh",mh(l,2)).replace("h",l).replace("mm",mh(u,2)).replace("m",u).replace("ss",mh(h,2)).replace("s",h).replace("SSS",mh(c,3))},capitalFirst:function(t){return t?t.charAt(0).toUpperCase()+t.substr(1):t},truncateText:jr,getTextRect:function(t,e,n,i,r,o,a,s){return lr(),new Ka({style:{text:t,font:e,align:n,verticalAlign:i,padding:r,rich:o,overflow:a?"truncate":null,lineHeight:s}}).getBoundingRect()}}),C_=Object.freeze({__proto__:null,map:P,each:k,indexOf:C,inherits:A,reduce:O,filter:R,bind:z,curry:B,isArray:V,isString:G,isObject:Y,isFunction:F,extend:M,defaults:I,clone:b,merge:w}),A_=br();function D_(t){return"category"===t.type?function(t){var e=t.getLabelModel(),n=k_(t,e);return!e.get("show")||t.scale.isBlank()?{labels:[],labelCategoryInterval:n.labelCategoryInterval}:n}(t):function(t){var e=t.scale.getTicks(),n=u_(t);return{labels:P(e,(function(e,i){return{formattedLabel:n(e,i),rawLabel:t.scale.getLabel(e),tickValue:e.value}}))}}(t)}function L_(t,e){return"category"===t.type?function(t,e){var n,i,r=P_(t,"ticks"),o=p_(e),a=O_(r,o);if(a)return a;e.get("show")&&!t.scale.isBlank()||(n=[]);if(F(o))n=E_(t,o,!0);else if("auto"===o){var s=k_(t,t.getLabelModel());i=s.labelCategoryInterval,n=P(s.labels,(function(t){return t.tickValue}))}else n=N_(t,i=o,!0);return R_(r,o,{ticks:n,tickCategoryInterval:i})}(t,e):{ticks:P(t.scale.getTicks(),(function(t){return t.value}))}}function k_(t,e){var n,i,r=P_(t,"labels"),o=p_(e),a=O_(r,o);return a||(F(o)?n=E_(t,o):(i="auto"===o?function(t){var e=A_(t).autoInterval;return null!=e?e:A_(t).autoInterval=t.calculateCategoryInterval()}(t):o,n=N_(t,i)),R_(r,o,{labels:n,labelCategoryInterval:i}))}function P_(t,e){return A_(t)[e]||(A_(t)[e]=[])}function O_(t,e){for(var n=0;n<t.length;n++)if(t[n].key===e)return t[n].value}function R_(t,e,n){return t.push({key:e,value:n}),n}function N_(t,e,n){var i=u_(t),r=t.scale,o=r.getExtent(),a=t.getLabelModel(),s=[],l=Math.max((e||0)+1,1),u=o[0],h=r.count();0!==u&&l>1&&h/l>2&&(u=Math.round(Math.ceil(u/l)*l));var c=d_(t),p=a.get("showMinLabel")||c,d=a.get("showMaxLabel")||c;p&&u!==o[0]&&g(o[0]);for(var f=u;f<=o[1];f+=l)g(f);function g(t){var e={value:t};s.push(n?t:{formattedLabel:i(e),rawLabel:r.getLabel(e),tickValue:t})}return d&&f-l!==o[1]&&g(o[1]),s}function E_(t,e,n){var i=t.scale,r=u_(t),o=[];return k(i.getTicks(),(function(t){var a=i.getLabel(t),s=t.value;e(t.value,a)&&o.push(n?s:{formattedLabel:r(t),rawLabel:a,tickValue:s})})),o}var z_=[0,1],B_=function(){function t(t,e,n){this.onBand=!1,this.inverse=!1,this.dim=t,this.scale=e,this._extent=n||[0,0]}return t.prototype.contain=function(t){var e=this._extent,n=Math.min(e[0],e[1]),i=Math.max(e[0],e[1]);return t>=n&&t<=i},t.prototype.containData=function(t){return this.scale.contain(t)},t.prototype.getExtent=function(){return this._extent.slice()},t.prototype.getPixelPrecision=function(t){return Ui(t||this.scale.getExtent(),this._extent)},t.prototype.setExtent=function(t,e){var n=this._extent;n[0]=t,n[1]=e},t.prototype.dataToCoord=function(t,e){var n=this._extent,i=this.scale;return t=i.normalize(t),this.onBand&&"ordinal"===i.type&&V_(n=n.slice(),i.count()),Fi(t,z_,n,e)},t.prototype.coordToData=function(t,e){var n=this._extent,i=this.scale;this.onBand&&"ordinal"===i.type&&V_(n=n.slice(),i.count());var r=Fi(t,n,z_,e);return this.scale.scale(r)},t.prototype.pointToData=function(t,e){},t.prototype.getTicksCoords=function(t){var e=(t=t||{}).tickModel||this.getTickModel(),n=P(L_(this,e).ticks,(function(t){return{coord:this.dataToCoord("ordinal"===this.scale.type?this.scale.getRawOrdinalNumber(t):t),tickValue:t}}),this);return function(t,e,n,i){var r=e.length;if(!t.onBand||n||!r)return;var o,a,s=t.getExtent();if(1===r)e[0].coord=s[0],o=e[1]={coord:s[0]};else{var l=e[r-1].tickValue-e[0].tickValue,u=(e[r-1].coord-e[0].coord)/l;k(e,(function(t){t.coord-=u/2})),a=1+t.scale.getExtent()[1]-e[r-1].tickValue,o={coord:e[r-1].coord+u*a},e.push(o)}var h=s[0]>s[1];c(e[0].coord,s[0])&&(i?e[0].coord=s[0]:e.shift());i&&c(s[0],e[0].coord)&&e.unshift({coord:s[0]});c(s[1],o.coord)&&(i?o.coord=s[1]:e.pop());i&&c(o.coord,s[1])&&e.push({coord:s[1]});function c(t,e){return t=Hi(t),e=Hi(e),h?t>e:t<e}}(this,n,e.get("alignWithLabel"),t.clamp),n},t.prototype.getMinorTicksCoords=function(){if("ordinal"===this.scale.type)return[];var t=this.model.getModel("minorTick").get("splitNumber");return t>0&&t<100||(t=5),P(this.scale.getMinorTicks(t),(function(t){return P(t,(function(t){return{coord:this.dataToCoord(t),tickValue:t}}),this)}),this)},t.prototype.getViewLabels=function(){return D_(this).labels},t.prototype.getLabelModel=function(){return this.model.getModel("axisLabel")},t.prototype.getTickModel=function(){return this.model.getModel("axisTick")},t.prototype.getBandWidth=function(){var t=this._extent,e=this.scale.getExtent(),n=e[1]-e[0]+(this.onBand?1:0);0===n&&(n=1);var i=Math.abs(t[1]-t[0]);return Math.abs(i)/n},t.prototype.calculateCategoryInterval=function(){return function(t){var e=function(t){var e=t.getLabelModel();return{axisRotate:t.getRotate?t.getRotate():t.isHorizontal&&!t.isHorizontal()?90:0,labelRotate:e.get("rotate")||0,font:e.getFont()}}(t),n=u_(t),i=(e.axisRotate-e.labelRotate)/180*Math.PI,r=t.scale,o=r.getExtent(),a=r.count();if(o[1]-o[0]<1)return 0;var s=1;a>40&&(s=Math.max(1,Math.floor(a/40)));for(var l=o[0],u=t.dataToCoord(l+1)-t.dataToCoord(l),h=Math.abs(u*Math.cos(i)),c=Math.abs(u*Math.sin(i)),p=0,d=0;l<=o[1];l+=s){var f,g,y=Bn(n({value:l}),e.font,"center","top");f=1.3*y.width,g=1.3*y.height,p=Math.max(p,f,7),d=Math.max(d,g,7)}var v=p/h,m=d/c;isNaN(v)&&(v=1/0),isNaN(m)&&(m=1/0);var _=Math.max(0,Math.floor(Math.min(v,m))),x=A_(t.model),b=t.getExtent(),w=x.lastAutoInterval,S=x.lastTickCount;return null!=w&&null!=S&&Math.abs(w-_)<=1&&Math.abs(S-a)<=1&&w>_&&x.axisExtent0===b[0]&&x.axisExtent1===b[1]?_=w:(x.lastTickCount=a,x.lastAutoInterval=_,x.axisExtent0=b[0],x.axisExtent1=b[1]),_}(this)},t}();function V_(t,e){var n=(t[1]-t[0])/e/2;t[0]+=n,t[1]-=n}function F_(t){var e=uc.extend(t);return uc.registerClass(e),e}function G_(t){var e=kd.extend(t);return kd.registerClass(e),e}function H_(t){var e=Sd.extend(t);return Sd.registerClass(e),e}function W_(t){var e=Nd.extend(t);return Nd.registerClass(e),e}function Y_(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}function X_(t,e,n,i,r){for(var o=e.length,a=n.length,s=t.newPos,l=s-i,u=0;s+1<o&&l+1<a&&r(e[s+1],n[l+1]);)s++,l++,u++;return u&&t.components.push({count:u,added:!1,removed:!1,indices:[]}),t.newPos=s,l}function U_(t,e,n){var i=t[t.length-1];i&&i.added===e&&i.removed===n?t[t.length-1]={count:i.count+1,added:e,removed:n,indices:[]}:t.push({count:1,added:e,removed:n,indices:[]})}function Z_(t){for(var e=0,n=t.length,i=0,r=0;e<n;e++){var o=t[e];if(o.removed){for(s=r;s<r+o.count;s++)o.indices.push(s);r+=o.count}else{for(var a=[],s=i;s<i+o.count;s++)a.push(s);o.indices=a,i+=o.count,o.added||(r+=o.count)}}return t}function j_(t,e,n){return function(t,e,n){n||(n=function(t,e){return t===e}),t=t.slice();var i=(e=e.slice()).length,r=t.length,o=1,a=i+r,s=[{newPos:-1,components:[]}],l=X_(s[0],e,t,0,n);if(s[0].newPos+1>=i&&l+1>=r){for(var u=[],h=0;h<e.length;h++)u.push(h);return[{indices:u,count:e.length,added:!1,removed:!1}]}function c(){for(var a=-1*o;a<=o;a+=2){var l,u=s[a-1],h=s[a+1],c=(h?h.newPos:0)-a;u&&(s[a-1]=void 0);var p=u&&u.newPos+1<i,d=h&&0<=c&&c<r;if(p||d){if(!p||d&&u.newPos<h.newPos?U_((l={newPos:(f=h).newPos,components:f.components.slice(0)}).components,!1,!0):((l=u).newPos++,U_(l.components,!0,!1)),c=X_(l,e,t,a,n),l.newPos+1>=i&&c+1>=r)return Z_(l.components);s[a]=l}else s[a]=void 0}var f;o++}for(;o<=a;){var p=c();if(p)return p}}(t,e,n)}var q_=Math.round,K_=Math.sin,$_=Math.cos,J_=Math.PI,Q_=2*Math.PI,tx=180/J_;function ex(t){return q_(1e3*t)/1e3}function nx(t){return q_(1e4*t)/1e4}function ix(t){return t<1e-4&&t>-1e-4}function rx(t,e){e&&ox(t,"transform","matrix("+ex(e[0])+","+ex(e[1])+","+ex(e[2])+","+ex(e[3])+","+nx(e[4])+","+nx(e[5])+")")}function ox(t,e,n){(!n||"linear"!==n.type&&"radial"!==n.type)&&t.setAttribute(e,n)}function ax(t,e,n){var i=null==e.opacity?1:e.opacity;if(n instanceof Fa)t.style.opacity=i+"";else{if(function(t){var e=t.fill;return null!=e&&"none"!==e}(e)){var r=e.fill;ox(t,"fill",r="transparent"===r?"none":r),ox(t,"fill-opacity",(null!=e.fillOpacity?e.fillOpacity*i:i)+"")}else ox(t,"fill","none");if(function(t){var e=t.stroke;return null!=e&&"none"!==e}(e)){var o=e.stroke;ox(t,"stroke",o="transparent"===o?"none":o);var a=e.lineWidth,s=e.strokeNoScale?n.getLineScale():1;ox(t,"stroke-width",(s?a/s:0)+""),ox(t,"paint-order",e.strokeFirst?"stroke":"fill"),ox(t,"stroke-opacity",(null!=e.strokeOpacity?e.strokeOpacity*i:i)+"");var l=e.lineDash&&a>0&&Ag(e.lineDash,a);if(l){var u=e.lineDashOffset;s&&1!==s&&(l=P(l,(function(t){return t/s})),u&&(u=q_(u/=s))),ox(t,"stroke-dasharray",l.join(",")),ox(t,"stroke-dashoffset",(u||0)+"")}else ox(t,"stroke-dasharray","");e.lineCap&&ox(t,"stroke-linecap",e.lineCap),e.lineJoin&&ox(t,"stroke-linejoin",e.lineJoin),e.miterLimit&&ox(t,"stroke-miterlimit",e.miterLimit+"")}else ox(t,"stroke","none")}}var sx=function(){function t(){}return t.prototype.reset=function(){this._d=[],this._str=""},t.prototype.moveTo=function(t,e){this._add("M",t,e)},t.prototype.lineTo=function(t,e){this._add("L",t,e)},t.prototype.bezierCurveTo=function(t,e,n,i,r,o){this._add("C",t,e,n,i,r,o)},t.prototype.quadraticCurveTo=function(t,e,n,i){this._add("Q",t,e,n,i)},t.prototype.arc=function(t,e,n,i,r,o){this.ellipse(t,e,n,n,0,i,r,o)},t.prototype.ellipse=function(t,e,n,i,r,o,a,s){var l=0===this._d.length,u=a-o,h=!s,c=Math.abs(u),p=ix(c-Q_)||(h?u>=Q_:-u>=Q_),d=u>0?u%Q_:u%Q_+Q_,f=!1;f=!!p||!ix(c)&&d>=J_==!!h;var g=nx(t+n*$_(o)),y=nx(e+i*K_(o));p&&(u=h?Q_-1e-4:1e-4-Q_,f=!0,l&&this._d.push("M",g,y));var v=nx(t+n*$_(o+u)),m=nx(e+i*K_(o+u));if(isNaN(g)||isNaN(y)||isNaN(n)||isNaN(i)||isNaN(r)||isNaN(tx)||isNaN(v)||isNaN(m))return"";this._d.push("A",nx(n),nx(i),q_(r*tx),+f,+h,v,m)},t.prototype.rect=function(t,e,n,i){this._add("M",t,e),this._add("L",t+n,e),this._add("L",t+n,e+i),this._add("L",t,e+i),this._add("L",t,e)},t.prototype.closePath=function(){this._d.length>0&&this._add("Z")},t.prototype._add=function(t,e,n,i,r,o,a,s,l){this._d.push(t);for(var u=1;u<arguments.length;u++){var h=arguments[u];if(isNaN(h))return void(this._invalid=!0);this._d.push(nx(h))}},t.prototype.generateStr=function(){this._str=this._invalid?"":this._d.join(" "),this._d=[]},t.prototype.getStr=function(){return this._str},t}(),lx={brush:function(t){var e=t.style,n=t.__svgEl;n||(n=Y_("path"),t.__svgEl=n),t.path||t.createPathProxy();var i=t.path;t.shapeChanged()&&(i.beginPath(),t.buildPath(i,t.shape),t.pathUpdated());var r=i.getVersion(),o=t,a=o.__svgPathBuilder;(o.__svgPathVersion!==r||!a||t.style.strokePercent<1)&&(a||(a=o.__svgPathBuilder=new sx),a.reset(),i.rebuildPath(a,t.style.strokePercent),a.generateStr(),o.__svgPathVersion=r),ox(n,"d",a.getStr()),ax(n,e,t),rx(n,t.transform)}},ux={brush:function(t){var e=t.style,n=e.image;if(n instanceof HTMLImageElement?n=n.src:n instanceof HTMLCanvasElement&&(n=n.toDataURL()),n){var i=e.x||0,r=e.y||0,o=e.width,a=e.height,s=t.__svgEl;s||(s=Y_("image"),t.__svgEl=s),n!==t.__imageSrc&&(!function(t,e,n){t.setAttributeNS("http://www.w3.org/1999/xlink",e,n)}(s,"href",n),t.__imageSrc=n),ox(s,"width",o+""),ox(s,"height",a+""),ox(s,"x",i+""),ox(s,"y",r+""),ax(s,e,t),rx(s,t.transform)}}},hx={left:"start",right:"end",center:"middle",middle:"middle"};var cx={brush:function(t){var e=t.style,n=e.text;if(null!=n&&(n+=""),n&&!isNaN(e.x)&&!isNaN(e.y)){var i=t.__svgEl;i||(function(t,e,n){t.setAttributeNS("http://www.w3.org/XML/1998/namespace",e,n)}(i=Y_("text"),"xml:space","preserve"),t.__svgEl=i);var r=e.font||Rn;i.style.font=r,i.textContent=n,ax(i,e,t),rx(i,t.transform);var o=e.x||0,a=function(t,e,n){return"top"===n?t+=e/2:"bottom"===n&&(t-=e/2),t}(e.y||0,Gn(r),e.textBaseline),s=hx[e.textAlign]||e.textAlign;ox(i,"dominant-baseline","central"),ox(i,"text-anchor",s),ox(i,"x",o+""),ox(i,"y",a+"")}}},px=function(){function t(t,e,n,i,r){this.nextId=0,this._domName="_dom",this.createElement=Y_,this._zrId=t,this._svgRoot=e,this._tagNames="string"==typeof n?[n]:n,this._markLabel=i,r&&(this._domName=r)}return t.prototype.getDefs=function(t){var e=this._svgRoot,n=this._svgRoot.getElementsByTagName("defs");if(0===n.length){if(t){var i=e.insertBefore(this.createElement("defs"),e.firstChild);return i.contains||(i.contains=function(t){var e=i.children;if(!e)return!1;for(var n=e.length-1;n>=0;--n)if(e[n]===t)return!0;return!1}),i}return null}return n[0]},t.prototype.doUpdate=function(t,e){if(t){var n=this.getDefs(!1);if(t[this._domName]&&n.contains(t[this._domName]))"function"==typeof e&&e(t);else{var i=this.add(t);i&&(t[this._domName]=i)}}},t.prototype.add=function(t){return null},t.prototype.addDom=function(t){var e=this.getDefs(!0);t.parentNode!==e&&e.appendChild(t)},t.prototype.removeDom=function(t){var e=this.getDefs(!1);e&&t[this._domName]&&(e.removeChild(t[this._domName]),t[this._domName]=null)},t.prototype.getDoms=function(){var t=this.getDefs(!1);if(!t)return[];var e=[];return k(this._tagNames,(function(n){for(var i=t.getElementsByTagName(n),r=0;r<i.length;r++)e.push(i[r])})),e},t.prototype.markAllUnused=function(){var t=this.getDoms(),e=this;k(t,(function(t){t[e._markLabel]="0"}))},t.prototype.markDomUsed=function(t){t&&(t[this._markLabel]="1")},t.prototype.markDomUnused=function(t){t&&(t[this._markLabel]="0")},t.prototype.isDomUnused=function(t){return t&&"1"!==t[this._markLabel]},t.prototype.removeUnused=function(){var t=this,e=this.getDefs(!1);e&&k(this.getDoms(),(function(n){t.isDomUnused(n)&&e.removeChild(n)}))},t.prototype.getSvgProxy=function(t){return t instanceof Na?lx:t instanceof Fa?ux:t instanceof za?cx:lx},t.prototype.getSvgElement=function(t){return t.__svgEl},t}();function dx(t){return"linear"===t.type}function fx(t){return"radial"===t.type}function gx(t){return t&&("linear"===t.type||"radial"===t.type)}var yx=function(t){function e(e,n){return t.call(this,e,n,["linearGradient","radialGradient"],"__gradient_in_use__")||this}return gt(e,t),e.prototype.addWithoutUpdate=function(t,e){if(e&&e.style){var n=this;k(["fill","stroke"],(function(i){var r=e.style[i];if(gx(r)){var o=r,a=n.getDefs(!0),s=void 0;o.__dom?(s=o.__dom,a.contains(o.__dom)||n.addDom(s)):s=n.add(o),n.markUsed(e);var l=s.getAttribute("id");t.setAttribute(i,"url(#"+l+")")}}))}},e.prototype.add=function(t){var e;if(dx(t))e=this.createElement("linearGradient");else{if(!fx(t))return x("Illegal gradient type."),null;e=this.createElement("radialGradient")}return t.id=t.id||this.nextId++,e.setAttribute("id","zr"+this._zrId+"-gradient-"+t.id),this.updateDom(t,e),this.addDom(e),e},e.prototype.update=function(t){if(gx(t)){var e=this;this.doUpdate(t,(function(){var n=t.__dom;if(n){var i=n.tagName,r=t.type;"linear"===r&&"linearGradient"===i||"radial"===r&&"radialGradient"===i?e.updateDom(t,t.__dom):(e.removeDom(t),e.add(t))}}))}},e.prototype.updateDom=function(t,e){if(dx(t))e.setAttribute("x1",t.x+""),e.setAttribute("y1",t.y+""),e.setAttribute("x2",t.x2+""),e.setAttribute("y2",t.y2+"");else{if(!fx(t))return void x("Illegal gradient type.");e.setAttribute("cx",t.x+""),e.setAttribute("cy",t.y+""),e.setAttribute("r",t.r+"")}t.global?e.setAttribute("gradientUnits","userSpaceOnUse"):e.setAttribute("gradientUnits","objectBoundingBox"),e.innerHTML="";for(var n=t.colorStops,i=0,r=n.length;i<r;++i){var o=this.createElement("stop");o.setAttribute("offset",100*n[i].offset+"%");var a=n[i].color;if(a.indexOf("rgba")>-1){var s=Ze(a)[3],l=Ke(a);o.setAttribute("stop-color","#"+l),o.setAttribute("stop-opacity",s+"")}else o.setAttribute("stop-color",n[i].color);e.appendChild(o)}t.__dom=e},e.prototype.markUsed=function(e){if(e.style){var n=e.style.fill;n&&n.__dom&&t.prototype.markDomUsed.call(this,n.__dom),(n=e.style.stroke)&&n.__dom&&t.prototype.markDomUsed.call(this,n.__dom)}},e}(px);function vx(t){return t&&(!!t.image||!!t.svgElement)}var mx=new yg,_x=function(t){function e(e,n){return t.call(this,e,n,["pattern"],"__pattern_in_use__")||this}return gt(e,t),e.prototype.addWithoutUpdate=function(t,e){if(e&&e.style){var n=this;k(["fill","stroke"],(function(i){var r=e.style[i];if(vx(r)){var o=n.getDefs(!0),a=mx.get(r);a?o.contains(a)||n.addDom(a):a=n.add(r),n.markUsed(e);var s=a.getAttribute("id");t.setAttribute(i,"url(#"+s+")")}}))}},e.prototype.add=function(t){if(vx(t)){var e=this.createElement("pattern");return t.id=null==t.id?this.nextId++:t.id,e.setAttribute("id","zr"+this._zrId+"-pattern-"+t.id),e.setAttribute("x","0"),e.setAttribute("y","0"),e.setAttribute("patternUnits","userSpaceOnUse"),this.updateDom(t,e),this.addDom(e),e}},e.prototype.update=function(t){if(vx(t)){var e=this;this.doUpdate(t,(function(){var n=mx.get(t);e.updateDom(t,n)}))}},e.prototype.updateDom=function(t,e){var n=t.svgElement;if(n instanceof SVGElement)n.parentNode!==e&&(e.innerHTML="",e.appendChild(n),e.setAttribute("width",t.svgWidth+""),e.setAttribute("height",t.svgHeight+""));else{var i=void 0,r=e.getElementsByTagName("image");if(r.length){if(!t.image)return void e.removeChild(r[0]);i=r[0]}else t.image&&(i=this.createElement("image"));if(i){var o=void 0;if("string"==typeof t.image?o=t.image:t.image instanceof HTMLImageElement?o=t.image.src:t.image instanceof HTMLCanvasElement&&(o=t.image.toDataURL()),o){i.setAttribute("href",o),i.setAttribute("x","0"),i.setAttribute("y","0");var a=Yr(o,i,{dirty:function(){}},(function(t){e.setAttribute("width",t.width+""),e.setAttribute("height",t.height+"")}));a&&a.width&&a.height&&(e.setAttribute("width",a.width+""),e.setAttribute("height",a.height+"")),e.appendChild(i)}}}var s="translate("+(t.x||0)+", "+(t.y||0)+") rotate("+(t.rotation||0)/Math.PI*180+") scale("+(t.scaleX||1)+", "+(t.scaleY||1)+")";e.setAttribute("patternTransform",s),mx.set(t,e)},e.prototype.markUsed=function(e){e.style&&(vx(e.style.fill)&&t.prototype.markDomUsed.call(this,mx.get(e.style.fill)),vx(e.style.stroke)&&t.prototype.markDomUsed.call(this,mx.get(e.style.stroke)))},e}(px);function xx(t){var e=t.__clipPaths;return e&&e.length>0}var bx=function(t){function e(e,n){var i=t.call(this,e,n,"clipPath","__clippath_in_use__")||this;return i._refGroups={},i._keyDuplicateCount={},i}return gt(e,t),e.prototype.markAllUnused=function(){for(var e in t.prototype.markAllUnused.call(this),this._refGroups)this.markDomUnused(this._refGroups[e]);this._keyDuplicateCount={}},e.prototype._getClipPathGroup=function(t,e){if(xx(t)){var n=t.__clipPaths,i=this._keyDuplicateCount,r=function(t){var e=[];if(t)for(var n=0;n<t.length;n++){var i=t[n];e.push(i.id)}return e.join(",")}(n);return Cg(n,e&&e.__clipPaths)&&(i[r]=i[r]||0,i[r]&&(r+="-"+i[r]),i[r]++),this._refGroups[r]||(this._refGroups[r]=this.createElement("g"))}},e.prototype.update=function(t,e){var n=this._getClipPathGroup(t,e);return n&&(this.markDomUsed(n),this.updateDom(n,t.__clipPaths)),n},e.prototype.updateDom=function(t,e){if(e&&e.length>0){var n=this.getDefs(!0),i=e[0],r=void 0,o=void 0;i._dom?(o=i._dom.getAttribute("id"),r=i._dom,n.contains(r)||n.appendChild(r)):(o="zr"+this._zrId+"-clip-"+this.nextId,++this.nextId,(r=this.createElement("clipPath")).setAttribute("id",o),n.appendChild(r),i._dom=r),this.getSvgProxy(i).brush(i);var a=this.getSvgElement(i);r.innerHTML="",r.appendChild(a),t.setAttribute("clip-path","url(#"+o+")"),e.length>1&&this.updateDom(r,e.slice(1))}else t&&t.setAttribute("clip-path","none")},e.prototype.markUsed=function(e){var n=this;e.__clipPaths&&k(e.__clipPaths,(function(e){e._dom&&t.prototype.markDomUsed.call(n,e._dom)}))},e.prototype.removeUnused=function(){t.prototype.removeUnused.call(this);var e={};for(var n in this._refGroups){var i=this._refGroups[n];this.isDomUnused(i)?i.parentNode&&i.parentNode.removeChild(i):e[n]=i}this._refGroups=e},e}(px),Sx=function(t){function e(e,n){var i=t.call(this,e,n,["filter"],"__filter_in_use__","_shadowDom")||this;return i._shadowDomMap={},i._shadowDomPool=[],i}return gt(e,t),e.prototype._getFromPool=function(){var t=this._shadowDomPool.pop();if(!t){(t=this.createElement("filter")).setAttribute("id","zr"+this._zrId+"-shadow-"+this.nextId++);var e=this.createElement("feDropShadow");t.appendChild(e),this.addDom(t)}return t},e.prototype.update=function(t,e){if(function(t){return t&&(t.shadowBlur||t.shadowOffsetX||t.shadowOffsetY)}(e.style)){var n=function(t){var e=t.style,n=t.getGlobalScale();return[e.shadowColor,(e.shadowBlur||0).toFixed(2),(e.shadowOffsetX||0).toFixed(2),(e.shadowOffsetY||0).toFixed(2),n[0],n[1]].join(",")}(e),i=e._shadowDom=this._shadowDomMap[n];i||(i=this._getFromPool(),this._shadowDomMap[n]=i),this.updateDom(t,e,i)}else this.remove(t,e)},e.prototype.remove=function(t,e){null!=e._shadowDom&&(e._shadowDom=null,t.style.filter="")},e.prototype.updateDom=function(t,e,n){var i=n.children[0],r=e.style,o=e.getGlobalScale(),a=o[0],s=o[1];if(a&&s){var l=r.shadowOffsetX||0,u=r.shadowOffsetY||0,h=r.shadowBlur,c=r.shadowColor;i.setAttribute("dx",l/a+""),i.setAttribute("dy",u/s+""),i.setAttribute("flood-color",c);var p=h/2/a+" "+h/2/s;i.setAttribute("stdDeviation",p),n.setAttribute("x","-100%"),n.setAttribute("y","-100%"),n.setAttribute("width","300%"),n.setAttribute("height","300%"),e._shadowDom=n;var d=n.getAttribute("id");t.style.filter="url(#"+d+")"}},e.prototype.removeUnused=function(){if(this.getDefs(!1)){var t=this._shadowDomPool;for(var e in this._shadowDomMap){var n=this._shadowDomMap[e];t.push(n)}this._shadowDomMap={}}},e}(px);function Mx(t){return parseInt(t,10)}function Ix(t){return t instanceof Na?lx:t instanceof Fa?ux:t instanceof za?cx:lx}function Tx(t,e){return e&&t&&e.parentNode!==t}function Cx(t,e,n){if(Tx(t,e)&&n){var i=n.nextSibling;i?t.insertBefore(e,i):t.appendChild(e)}}function Ax(t,e){if(Tx(t,e)){var n=t.firstChild;n?t.insertBefore(e,n):t.appendChild(e)}}function Dx(t,e){e&&t&&e.parentNode===t&&t.removeChild(e)}function Lx(t){return t.__svgEl}var kx=function(){function t(t,e,n,i){this.type="svg",this.refreshHover=Px("refreshHover"),this.pathToImage=Px("pathToImage"),this.configLayer=Px("configLayer"),this.root=t,this.storage=e,this._opts=n=M({},n||{});var r=Y_("svg");r.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns","http://www.w3.org/2000/svg"),r.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink","http://www.w3.org/1999/xlink"),r.setAttribute("version","1.1"),r.setAttribute("baseProfile","full"),r.style.cssText="user-select:none;position:absolute;left:0;top:0;";var o=Y_("g");r.appendChild(o);var a=Y_("g");r.appendChild(a),this._gradientManager=new yx(i,a),this._patternManager=new _x(i,a),this._clipPathManager=new bx(i,a),this._shadowManager=new Sx(i,a);var s=document.createElement("div");s.style.cssText="overflow:hidden;position:relative",this._svgDom=r,this._svgRoot=a,this._backgroundRoot=o,this._viewport=s,t.appendChild(s),s.appendChild(r),this.resize(n.width,n.height),this._visibleList=[]}return t.prototype.getType=function(){return"svg"},t.prototype.getViewportRoot=function(){return this._viewport},t.prototype.getSvgDom=function(){return this._svgDom},t.prototype.getSvgRoot=function(){return this._svgRoot},t.prototype.getViewportRootOffset=function(){var t=this.getViewportRoot();if(t)return{offsetLeft:t.offsetLeft||0,offsetTop:t.offsetTop||0}},t.prototype.refresh=function(){var t=this.storage.getDisplayList(!0);this._paintList(t)},t.prototype.setBackgroundColor=function(t){this._backgroundRoot&&this._backgroundNode&&this._backgroundRoot.removeChild(this._backgroundNode);var e=Y_("rect");e.setAttribute("width",this.getWidth()),e.setAttribute("height",this.getHeight()),e.setAttribute("x",0),e.setAttribute("y",0),e.setAttribute("id",0),e.style.fill=t,this._backgroundRoot.appendChild(e),this._backgroundNode=e},t.prototype.createSVGElement=function(t){return Y_(t)},t.prototype.paintOne=function(t){var e=Ix(t);return e&&e.brush(t),Lx(t)},t.prototype._paintList=function(t){var e=this._gradientManager,n=this._patternManager,i=this._clipPathManager,r=this._shadowManager;e.markAllUnused(),n.markAllUnused(),i.markAllUnused(),r.markAllUnused();for(var o=this._svgRoot,a=this._visibleList,s=t.length,l=[],u=0;u<s;u++){var h=Ix(x=t[u]),c=Lx(x);x.invisible||(!x.__dirty&&c||(h&&h.brush(x),(c=Lx(x))&&x.style&&(e.update(x.style.fill),e.update(x.style.stroke),n.update(x.style.fill),n.update(x.style.stroke),r.update(c,x)),x.__dirty=0),c&&l.push(x))}var p,d,f,g,y,v=j_(a,l);for(u=0;u<v.length;u++){if((_=v[u]).removed)for(var m=0;m<_.count;m++){c=Lx(x=a[_.indices[m]]);xx(x)?(f=c)&&f.parentNode&&f.parentNode.removeChild(f):Dx(o,c)}}for(u=0;u<v.length;u++){var _;(_=v[u]).added;if(!_.removed)for(m=0;m<_.count;m++){var x=l[_.indices[m]],b=i.update(x,g);b!==y&&(p=d,b&&(p?Cx(o,b,p):Ax(o,b),d=b,p=null),y=b);c=Lx(x);p?Cx(y||o,c,p):Ax(y||o,c),p=c||p,y||(d=p),e.markUsed(x),e.addWithoutUpdate(c,x),n.markUsed(x),n.addWithoutUpdate(c,x),i.markUsed(x),g=x}}e.removeUnused(),n.removeUnused(),i.removeUnused(),r.removeUnused(),this._visibleList=l},t.prototype._getDefs=function(t){var e=this._svgDom,n=e.getElementsByTagName("defs");if(0===n.length){if(t){var i=e.insertBefore(Y_("defs"),e.firstChild);return i.contains||(i.contains=function(t){var e=i.children;if(!e)return!1;for(var n=e.length-1;n>=0;--n)if(e[n]===t)return!0;return!1}),i}return null}return n[0]},t.prototype.resize=function(t,e){var n=this._viewport;n.style.display="none";var i=this._opts;if(null!=t&&(i.width=t),null!=e&&(i.height=e),t=this._getSize(0),e=this._getSize(1),n.style.display="",this._width!==t||this._height!==e){this._width=t,this._height=e;var r=n.style;r.width=t+"px",r.height=e+"px";var o=this._svgDom;o.setAttribute("width",t+""),o.setAttribute("height",e+"")}this._backgroundNode&&(this._backgroundNode.setAttribute("width",t),this._backgroundNode.setAttribute("height",e))},t.prototype.getWidth=function(){return this._width},t.prototype.getHeight=function(){return this._height},t.prototype._getSize=function(t){var e=this._opts,n=["width","height"][t],i=["clientWidth","clientHeight"][t],r=["paddingLeft","paddingTop"][t],o=["paddingRight","paddingBottom"][t];if(null!=e[n]&&"auto"!==e[n])return parseFloat(e[n]);var a=this.root,s=document.defaultView.getComputedStyle(a);return(a[i]||Mx(s[n])||Mx(a.style[n]))-(Mx(s[r])||0)-(Mx(s[o])||0)|0},t.prototype.dispose=function(){this.root.innerHTML="",this._svgRoot=this._backgroundRoot=this._svgDom=this._backgroundNode=this._viewport=this.storage=null},t.prototype.clear=function(){var t=this._viewport;t&&t.parentNode&&t.parentNode.removeChild(t)},t.prototype.toDataURL=function(){this.refresh();var t=this._svgDom,e=t.outerHTML||(t.parentNode&&t.parentNode).innerHTML;return"data:image/svg+xml;charset=UTF-8,"+encodeURIComponent(e.replace(/></g,">\n\r<"))},t}();function Px(t){return function(){x('In SVG mode painter not support method "'+t+'"')}}function Ox(){return!1}function Rx(t,e,n){var i=T(),r=e.getWidth(),o=e.getHeight(),a=i.style;return a&&(a.position="absolute",a.left="0",a.top="0",a.width=r+"px",a.height=o+"px",i.setAttribute("data-zr-dom-id",t)),i.width=r*n,i.height=o*n,i}var Nx=function(t){function e(e,n,i){var r,o=t.call(this)||this;o.motionBlur=!1,o.lastFrameAlpha=.7,o.dpr=1,o.virtual=!1,o.config={},o.incremental=!1,o.zlevel=0,o.maxRepaintRectCount=5,o.__dirty=!0,o.__firstTimePaint=!0,o.__used=!1,o.__drawIndex=0,o.__startIndex=0,o.__endIndex=0,o.__prevStartIndex=null,o.__prevEndIndex=null,i=i||Xn,"string"==typeof e?r=Rx(e,n,i):Y(e)&&(e=(r=e).id),o.id=e,o.dom=r;var a=r.style;return a&&(r.onselectstart=Ox,a.webkitUserSelect="none",a.userSelect="none",a.webkitTapHighlightColor="rgba(0,0,0,0)",a["-webkit-touch-callout"]="none",a.padding="0",a.margin="0",a.borderWidth="0"),o.domBack=null,o.ctxBack=null,o.painter=n,o.config=null,o.dpr=i,o}return gt(e,t),e.prototype.getElementCount=function(){return this.__endIndex-this.__startIndex},e.prototype.afterBrush=function(){this.__prevStartIndex=this.__startIndex,this.__prevEndIndex=this.__endIndex},e.prototype.initContext=function(){this.ctx=this.dom.getContext("2d"),this.ctx.dpr=this.dpr},e.prototype.setUnpainted=function(){this.__firstTimePaint=!0},e.prototype.createBackBuffer=function(){var t=this.dpr;this.domBack=Rx("back-"+this.id,this.painter,t),this.ctxBack=this.domBack.getContext("2d"),1!==t&&this.ctxBack.scale(t,t)},e.prototype.createRepaintRects=function(t,e,n,i){if(this.__firstTimePaint)return this.__firstTimePaint=!1,null;var r,o=[],a=this.maxRepaintRectCount,s=!1,l=new Pn(0,0,0,0);function u(t){if(t.isFinite()&&!t.isZero())if(0===o.length){(e=new Pn(0,0,0,0)).copy(t),o.push(e)}else{for(var e,n=!1,i=1/0,r=0,u=0;u<o.length;++u){var h=o[u];if(h.intersect(t)){var c=new Pn(0,0,0,0);c.copy(h),c.union(t),o[u]=c,n=!0;break}if(s){l.copy(t),l.union(h);var p=t.width*t.height,d=h.width*h.height,f=l.width*l.height-p-d;f<i&&(i=f,r=u)}}if(s&&(o[r].union(t),n=!0),!n)(e=new Pn(0,0,0,0)).copy(t),o.push(e);s||(s=o.length>=a)}}for(var h=this.__startIndex;h<this.__endIndex;++h){if(d=t[h]){var c=d.shouldBePainted(n,i,!0,!0);(f=d.__isRendered&&(d.__dirty&Kn.REDARAW_BIT||!c)?d.getPrevPaintRect():null)&&u(f);var p=c&&(d.__dirty&Kn.REDARAW_BIT||!d.__isRendered)?d.getPaintRect():null;p&&u(p)}}for(h=this.__prevStartIndex;h<this.__prevEndIndex;++h){var d,f;c=(d=e[h]).shouldBePainted(n,i,!0,!0);if(d&&(!c||!d.__zr)&&d.__isRendered)(f=d.getPrevPaintRect())&&u(f)}do{r=!1;for(h=0;h<o.length;)if(o[h].isZero())o.splice(h,1);else{for(var g=h+1;g<o.length;)o[h].intersect(o[g])?(r=!0,o[h].union(o[g]),o.splice(g,1)):g++;h++}}while(r);return this._paintRects=o,o},e.prototype.debugGetPaintRects=function(){return(this._paintRects||[]).slice()},e.prototype.resize=function(t,e){var n=this.dpr,i=this.dom,r=i.style,o=this.domBack;r&&(r.width=t+"px",r.height=e+"px"),i.width=t*n,i.height=e*n,o&&(o.width=t*n,o.height=e*n,1!==n&&this.ctxBack.scale(n,n))},e.prototype.clear=function(t,e,n){var i=this.dom,r=this.ctx,o=i.width,a=i.height;e=e||this.clearColor;var s=this.motionBlur&&!t,l=this.lastFrameAlpha,u=this.dpr,h=this;s&&(this.domBack||this.createBackBuffer(),this.ctxBack.globalCompositeOperation="copy",this.ctxBack.drawImage(i,0,0,o/u,a/u));var c=this.domBack;function p(t,n,i,o){if(r.clearRect(t,n,i,o),e&&"transparent"!==e){var a=void 0;j(e)?(a=e.__canvasGradient||Tg(r,e,{x:0,y:0,width:i,height:o}),e.__canvasGradient=a):q(e)&&(a=Rg(r,e,{dirty:function(){h.setUnpainted(),h.__painter.refresh()}})),r.save(),r.fillStyle=a||e,r.fillRect(t,n,i,o),r.restore()}s&&(r.save(),r.globalAlpha=l,r.drawImage(c,t,n,i,o),r.restore())}!n||s?p(0,0,o,a):n.length&&k(n,(function(t){p(t.x*u,t.y*u,t.width*u,t.height*u)}))},e}(Ft);function Ex(t){return parseInt(t,10)}var zx=function(){function t(t,e,n,i){this.type="canvas",this._zlevelList=[],this._prevDisplayList=[],this._layers={},this._layerConfig={},this._needsManuallyCompositing=!1,this.type="canvas";var r=!t.nodeName||"CANVAS"===t.nodeName.toUpperCase();this._opts=n=M({},n||{}),this.dpr=n.devicePixelRatio||Xn,this._singleCanvas=r,this.root=t;var o=t.style;o&&(o.webkitTapHighlightColor="transparent",o.webkitUserSelect="none",o.userSelect="none",o["-webkit-touch-callout"]="none",t.innerHTML=""),this.storage=e;var a=this._zlevelList;this._prevDisplayList=[];var s=this._layers;if(r){var l=t,u=l.width,h=l.height;null!=n.width&&(u=n.width),null!=n.height&&(h=n.height),this.dpr=n.devicePixelRatio||1,l.width=u*this.dpr,l.height=h*this.dpr,this._width=u,this._height=h;var c=new Nx(l,this,this.dpr);c.__builtin__=!0,c.initContext(),s[314159]=c,c.zlevel=314159,a.push(314159),this._domRoot=t}else{this._width=this._getSize(0),this._height=this._getSize(1);var p=this._domRoot=function(t,e){var n=document.createElement("div");return n.style.cssText=["position:relative","width:"+t+"px","height:"+e+"px","padding:0","margin:0","border-width:0"].join(";")+";",n}(this._width,this._height);t.appendChild(p)}}return t.prototype.getType=function(){return"canvas"},t.prototype.isSingleCanvas=function(){return this._singleCanvas},t.prototype.getViewportRoot=function(){return this._domRoot},t.prototype.getViewportRootOffset=function(){var t=this.getViewportRoot();if(t)return{offsetLeft:t.offsetLeft||0,offsetTop:t.offsetTop||0}},t.prototype.refresh=function(t){var e=this.storage.getDisplayList(!0),n=this._prevDisplayList,i=this._zlevelList;this._redrawId=Math.random(),this._paintList(e,n,t,this._redrawId);for(var r=0;r<i.length;r++){var o=i[r],a=this._layers[o];if(!a.__builtin__&&a.refresh){var s=0===r?this._backgroundColor:null;a.refresh(s)}}return this._opts.useDirtyRect&&(this._prevDisplayList=e.slice()),this},t.prototype.refreshHover=function(){this._paintHoverList(this.storage.getDisplayList(!1))},t.prototype._paintHoverList=function(t){var e=t.length,n=this._hoverlayer;if(n&&n.clear(),e){for(var i,r={inHover:!0,viewWidth:this._width,viewHeight:this._height},o=0;o<e;o++){var a=t[o];a.__inHover&&(n||(n=this._hoverlayer=this.getLayer(1e5)),i||(i=n.ctx).save(),Wg(i,a,r,o===e-1))}i&&i.restore()}},t.prototype.getHoverLayer=function(){return this.getLayer(1e5)},t.prototype.paintOne=function(t,e){Hg(t,e)},t.prototype._paintList=function(t,e,n,i){if(this._redrawId===i){n=n||!1,this._updateLayerStatus(t);var r=this._doPaintList(t,e,n),o=r.finished,a=r.needsRefreshHover;if(this._needsManuallyCompositing&&this._compositeManually(),a&&this._paintHoverList(t),o)this.eachLayer((function(t){t.afterBrush&&t.afterBrush()}));else{var s=this;di((function(){s._paintList(t,e,n,i)}))}}},t.prototype._compositeManually=function(){var t=this.getLayer(314159).ctx,e=this._domRoot.width,n=this._domRoot.height;t.clearRect(0,0,e,n),this.eachBuiltinLayer((function(i){i.virtual&&t.drawImage(i.dom,0,0,e,n)}))},t.prototype._doPaintList=function(t,e,n){for(var i=this,r=[],a=this._opts.useDirtyRect,s=0;s<this._zlevelList.length;s++){var l=this._zlevelList[s],u=this._layers[l];u.__builtin__&&u!==this._hoverlayer&&(u.__dirty||n)&&r.push(u)}for(var h=!0,c=!1,p=function(o){var s=r[o],l=s.ctx,u=a&&s.createRepaintRects(t,e,d._width,d._height);l.save();var p,f=n?s.__startIndex:s.__drawIndex,g=!n&&s.incremental&&Date.now,y=g&&Date.now(),v=s.zlevel===d._zlevelList[0]?d._backgroundColor:null;if(s.__startIndex===s.__endIndex)s.clear(!1,v,u);else if(f===s.__startIndex){var m=t[f];m.incremental&&m.notClear&&!n||s.clear(!1,v,u)}-1===f&&(console.error("For some unknown reason. drawIndex is -1"),f=s.__startIndex);var _=function(e){var n={inHover:!1,allClipped:!1,prevEl:null,viewWidth:i._width,viewHeight:i._height};for(p=f;p<s.__endIndex;p++){var r=t[p];if(r.__inHover&&(c=!0),i._doPaintEl(r,s,a,e,n,p===s.__endIndex-1),g)if(Date.now()-y>15)break}n.prevElClipPaths&&l.restore()};if(u)if(0===u.length)p=s.__endIndex;else for(var x=d.dpr,b=0;b<u.length;++b){var w=u[b];l.save(),l.beginPath(),l.rect(w.x*x,w.y*x,w.width*x,w.height*x),l.clip(),_(w),l.restore()}else l.save(),_(),l.restore();s.__drawIndex=p,s.__drawIndex<s.__endIndex&&(h=!1)},d=this,f=0;f<r.length;f++)p(f);return o.wxa&&k(this._layers,(function(t){t&&t.ctx&&t.ctx.draw&&t.ctx.draw()})),{finished:h,needsRefreshHover:c}},t.prototype._doPaintEl=function(t,e,n,i,r,o){var a=e.ctx;if(n){var s=t.getPaintRect();(!i||s&&s.intersect(i))&&(Wg(a,t,r,o),t.setPrevPaintRect(s))}else Wg(a,t,r,o)},t.prototype.getLayer=function(t,e){this._singleCanvas&&!this._needsManuallyCompositing&&(t=314159);var n=this._layers[t];return n||((n=new Nx("zr_"+t,this,this.dpr)).zlevel=t,n.__builtin__=!0,this._layerConfig[t]?w(n,this._layerConfig[t],!0):this._layerConfig[t-.01]&&w(n,this._layerConfig[t-.01],!0),e&&(n.virtual=e),this.insertLayer(t,n),n.initContext()),n},t.prototype.insertLayer=function(t,e){var n=this._layers,i=this._zlevelList,r=i.length,o=this._domRoot,a=null,s=-1;if(n[t])x("ZLevel "+t+" has been used already");else if(function(t){return!!t&&(!!t.__builtin__||"function"==typeof t.resize&&"function"==typeof t.refresh)}(e)){if(r>0&&t>i[0]){for(s=0;s<r-1&&!(i[s]<t&&i[s+1]>t);s++);a=n[i[s]]}if(i.splice(s+1,0,t),n[t]=e,!e.virtual)if(a){var l=a.dom;l.nextSibling?o.insertBefore(e.dom,l.nextSibling):o.appendChild(e.dom)}else o.firstChild?o.insertBefore(e.dom,o.firstChild):o.appendChild(e.dom);e.__painter=this}else x("Layer of zlevel "+t+" is not valid")},t.prototype.eachLayer=function(t,e){for(var n=this._zlevelList,i=0;i<n.length;i++){var r=n[i];t.call(e,this._layers[r],r)}},t.prototype.eachBuiltinLayer=function(t,e){for(var n=this._zlevelList,i=0;i<n.length;i++){var r=n[i],o=this._layers[r];o.__builtin__&&t.call(e,o,r)}},t.prototype.eachOtherLayer=function(t,e){for(var n=this._zlevelList,i=0;i<n.length;i++){var r=n[i],o=this._layers[r];o.__builtin__||t.call(e,o,r)}},t.prototype.getLayers=function(){return this._layers},t.prototype._updateLayerStatus=function(t){function e(t){o&&(o.__endIndex!==t&&(o.__dirty=!0),o.__endIndex=t)}if(this.eachBuiltinLayer((function(t,e){t.__dirty=t.__used=!1})),this._singleCanvas)for(var n=1;n<t.length;n++){if((s=t[n]).zlevel!==t[n-1].zlevel||s.incremental){this._needsManuallyCompositing=!0;break}}var i,r,o=null,a=0;for(r=0;r<t.length;r++){var s,l=(s=t[r]).zlevel,u=void 0;i!==l&&(i=l,a=0),s.incremental?((u=this.getLayer(l+.001,this._needsManuallyCompositing)).incremental=!0,a=1):u=this.getLayer(l+(a>0?.01:0),this._needsManuallyCompositing),u.__builtin__||x("ZLevel "+l+" has been used by unkown layer "+u.id),u!==o&&(u.__used=!0,u.__startIndex!==r&&(u.__dirty=!0),u.__startIndex=r,u.incremental?u.__drawIndex=-1:u.__drawIndex=r,e(r),o=u),s.__dirty&Kn.REDARAW_BIT&&!s.__inHover&&(u.__dirty=!0,u.incremental&&u.__drawIndex<0&&(u.__drawIndex=r))}e(r),this.eachBuiltinLayer((function(t,e){!t.__used&&t.getElementCount()>0&&(t.__dirty=!0,t.__startIndex=t.__endIndex=t.__drawIndex=0),t.__dirty&&t.__drawIndex<0&&(t.__drawIndex=t.__startIndex)}))},t.prototype.clear=function(){return this.eachBuiltinLayer(this._clearLayer),this},t.prototype._clearLayer=function(t){t.clear()},t.prototype.setBackgroundColor=function(t){this._backgroundColor=t,k(this._layers,(function(t){t.setUnpainted()}))},t.prototype.configLayer=function(t,e){if(e){var n=this._layerConfig;n[t]?w(n[t],e,!0):n[t]=e;for(var i=0;i<this._zlevelList.length;i++){var r=this._zlevelList[i];if(r===t||r===t+.01)w(this._layers[r],n[t],!0)}}},t.prototype.delLayer=function(t){var e=this._layers,n=this._zlevelList,i=e[t];i&&(i.dom.parentNode.removeChild(i.dom),delete e[t],n.splice(C(n,t),1))},t.prototype.resize=function(t,e){if(this._domRoot.style){var n=this._domRoot;n.style.display="none";var i=this._opts;if(null!=t&&(i.width=t),null!=e&&(i.height=e),t=this._getSize(0),e=this._getSize(1),n.style.display="",this._width!==t||e!==this._height){for(var r in n.style.width=t+"px",n.style.height=e+"px",this._layers)this._layers.hasOwnProperty(r)&&this._layers[r].resize(t,e);this.refresh(!0)}this._width=t,this._height=e}else{if(null==t||null==e)return;this._width=t,this._height=e,this.getLayer(314159).resize(t,e)}return this},t.prototype.clearLayer=function(t){var e=this._layers[t];e&&e.clear()},t.prototype.dispose=function(){this.root.innerHTML="",this.root=this.storage=this._domRoot=this._layers=null},t.prototype.getRenderedCanvas=function(t){if(t=t||{},this._singleCanvas&&!this._compositeManually)return this._layers[314159].dom;var e=new Nx("image",this,t.pixelRatio||this.dpr),n=e.ctx;if(e.initContext(),e.clear(!1,t.backgroundColor||this._backgroundColor),t.pixelRatio<=this.dpr){this.refresh();var i=e.dom.width,r=e.dom.height,o=e.ctx;this.eachLayer((function(t){t.__builtin__?o.drawImage(t.dom,0,0,i,r):t.renderToCanvas&&(e.ctx.save(),t.renderToCanvas(e.ctx),e.ctx.restore())}))}else for(var a={inHover:!1,viewWidth:this._width,viewHeight:this._height},s=this.storage.getDisplayList(!0),l=0,u=s.length;l<u;l++){Wg(n,s[l],a,l===u-1)}return e.dom},t.prototype.getWidth=function(){return this._width},t.prototype.getHeight=function(){return this._height},t.prototype._getSize=function(t){var e=this._opts,n=["width","height"][t],i=["clientWidth","clientHeight"][t],r=["paddingLeft","paddingTop"][t],o=["paddingRight","paddingBottom"][t];if(null!=e[n]&&"auto"!==e[n])return parseFloat(e[n]);var a=this.root,s=document.defaultView.getComputedStyle(a);return(a[i]||Ex(s[n])||Ex(a.style[n]))-(Ex(s[r])||0)-(Ex(s[o])||0)|0},t.prototype.pathToImage=function(t,e){e=e||this.dpr;var n=document.createElement("canvas"),i=n.getContext("2d"),r=t.getBoundingRect(),o=t.style,a=o.shadowBlur*e,s=o.shadowOffsetX*e,l=o.shadowOffsetY*e,u=t.hasStroke()?o.lineWidth:0,h=Math.max(u/2,-s+a),c=Math.max(u/2,s+a),p=Math.max(u/2,-l+a),d=Math.max(u/2,l+a),f=r.width+h+c,g=r.height+p+d;n.width=f*e,n.height=g*e,i.scale(e,e),i.clearRect(0,0,f,g),i.dpr=e;var y={x:t.x,y:t.y,scaleX:t.scaleX,scaleY:t.scaleY,rotation:t.rotation,originX:t.originX,originY:t.originY};t.x=h-r.x,t.y=p-r.y,t.rotation=0,t.scaleX=1,t.scaleY=1,t.updateTransform(),t&&Wg(i,t,{inHover:!1,viewWidth:this._width,viewHeight:this._height},!0);var v=new Fa({style:{x:0,y:0,image:n}});return M(t,y),v},t}();var Bx=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.hasSymbolVisual=!0,e.legendSymbol="line",e}return e(n,t),n.prototype.getInitialData=function(t){return hm(this.getSource(),this,{useEncodeDefaulter:!0})},n.type="series.line",n.dependencies=["grid","polar"],n.defaultOption={zlevel:0,z:3,coordinateSystem:"cartesian2d",legendHoverLink:!0,clip:!0,label:{position:"top"},endLabel:{show:!1,valueAnimation:!0,distance:8},lineStyle:{width:2,type:"solid"},emphasis:{scale:!0,lineStyle:{width:"bolder"}},step:!1,smooth:!1,smoothMonotone:null,symbol:"emptyCircle",symbolSize:4,symbolRotate:null,showSymbol:!0,showAllSymbol:"auto",connectNulls:!1,sampling:"none",animationEasing:"linear",progressive:0,hoverLayerThreshold:1/0},n}(Sd);function Vx(t,e){var n=t.mapDimensionsAll("defaultedLabel"),i=n.length;if(1===i){var r=Rp(t,e,n[0]);return null!=r?r+"":null}if(i){for(var o=[],a=0;a<n.length;a++)o.push(Rp(t,e,n[a]));return o.join(" ")}}function Fx(t,e){var n=t.mapDimensionsAll("defaultedLabel");if(!V(e))return e+"";for(var i=[],r=0;r<n.length;r++){var o=t.getDimensionInfo(n[r]);o&&i.push(e[o.index])}return i.join(" ")}var Gx=function(t){function n(e,n,i,r){var o=t.call(this)||this;return o.updateData(e,n,i,r),o}return e(n,t),n.prototype._createSymbol=function(t,e,n,i,r){this.removeAll();var o=Ig(t,-1,-1,2,2,null,r);o.attr({z2:100,culling:!0,scaleX:i[0]/2,scaleY:i[1]/2}),o.drift=Hx,this._symbolType=t,this.add(o)},n.prototype.stopSymbolAnimation=function(t){this.childAt(0).stopAnimation(null,t)},n.prototype.getSymbolPath=function(){return this.childAt(0)},n.prototype.highlight=function(){Is(this.childAt(0))},n.prototype.downplay=function(){Ts(this.childAt(0))},n.prototype.setZ=function(t,e){var n=this.childAt(0);n.zlevel=t,n.z=e},n.prototype.setDraggable=function(t){var e=this.childAt(0);e.draggable=t,e.cursor=t?"move":e.cursor},n.prototype.updateData=function(t,e,i,r){this.silent=!1;var o=t.getItemVisual(e,"symbol")||"circle",a=t.hostModel,s=n.getSymbolSize(t,e),l=o!==this._symbolType,u=r&&r.disableAnimation;if(l){var h=t.getItemVisual(e,"symbolKeepAspect");this._createSymbol(o,t,e,s,h)}else{(p=this.childAt(0)).silent=!1;var c={scaleX:s[0]/2,scaleY:s[1]/2};u?p.attr(c):yu(p,c,a,e)}if(this._updateCommon(t,e,s,i,r),l){var p=this.childAt(0);if(!u){c={scaleX:this._sizeX,scaleY:this._sizeY,style:{opacity:p.style.opacity}};p.scaleX=p.scaleY=0,p.style.opacity=0,vu(p,c,a,e)}}u&&this.childAt(0).stopAnimation("remove"),this._seriesModel=a},n.prototype._updateCommon=function(t,e,n,i,r){var o,a,s,l,u,h,c,p,d,f=this.childAt(0),g=t.hostModel;if(i&&(o=i.emphasisItemStyle,a=i.blurItemStyle,s=i.selectItemStyle,l=i.focus,u=i.blurScope,h=i.symbolOffset,c=i.labelStatesModels,p=i.hoverScale,d=i.cursorStyle),!i||t.hasItemOption){var y=i&&i.itemModel?i.itemModel:t.getItemModel(e),v=y.getModel("emphasis");o=v.getModel("itemStyle").getItemStyle(),s=y.getModel(["select","itemStyle"]).getItemStyle(),a=y.getModel(["blur","itemStyle"]).getItemStyle(),l=v.get("focus"),u=v.get("blurScope"),h=y.getShallow("symbolOffset"),c=Bu(y),p=v.getShallow("scale"),d=y.getShallow("cursor")}var m=t.getItemVisual(e,"symbolRotate");f.attr("rotation",(m||0)*Math.PI/180||0),h&&(f.x=Gi(h[0],n[0]),f.y=Gi(h[1],n[1])),d&&f.attr("cursor",d);var _=t.getItemVisual(e,"style"),x=_.fill;if(f instanceof Fa){var b=f.style;f.useStyle(M({image:b.image,x:b.x,y:b.y,width:b.width,height:b.height},_))}else f.__isEmptyBrush?f.useStyle(M({},_)):f.useStyle(_),f.style.decal=null,f.setColor(x,r&&r.symbolInnerColor),f.style.strokeNoScale=!0;var w=t.getItemVisual(e,"liftZ"),S=this._z2;null!=w?null==S&&(this._z2=f.z2,f.z2+=w):null!=S&&(f.z2=S,this._z2=null);var I=r&&r.useNameLabel;zu(f,c,{labelFetcher:g,labelDataIndex:e,defaultText:function(e){return I?t.getName(e):Vx(t,e)},inheritColor:x,defaultOpacity:_.opacity}),this._sizeX=n[0]/2,this._sizeY=n[1]/2;var T=f.ensureState("emphasis");if(T.style=o,f.ensureState("select").style=s,f.ensureState("blur").style=a,p){var C=Math.max(1.1,3/this._sizeY);T.scaleX=this._sizeX*C,T.scaleY=this._sizeY*C}this.setSymbolScale(1),Ns(this,l,u)},n.prototype.setSymbolScale=function(t){this.scaleX=this.scaleY=t},n.prototype.fadeOut=function(t,e){var n=this.childAt(0),i=this._seriesModel,r=rs(this).dataIndex,o=e&&e.animation;if(this.silent=n.silent=!0,e&&e.fadeLabel){var a=n.getTextContent();a&&mu(a,{style:{opacity:0}},i,{dataIndex:r,removeOpt:o,cb:function(){n.removeTextContent()}})}else n.removeTextContent();mu(n,{style:{opacity:0},scaleX:0,scaleY:0},i,{dataIndex:r,cb:t,removeOpt:o})},n.getSymbolSize=function(t,e){var n=t.getItemVisual(e,"symbolSize");return n instanceof Array?n.slice():[+n,+n]},n}(Pi);function Hx(t,e){this.parent.drift(t,e)}function Wx(t,e,n,i){return e&&!isNaN(e[0])&&!isNaN(e[1])&&!(i.isIgnore&&i.isIgnore(n))&&!(i.clipShape&&!i.clipShape.contain(e[0],e[1]))&&"none"!==t.getItemVisual(n,"symbol")}function Yx(t){return null==t||Y(t)||(t={isIgnore:t}),t||{}}function Xx(t){var e=t.hostModel,n=e.getModel("emphasis");return{emphasisItemStyle:n.getModel("itemStyle").getItemStyle(),blurItemStyle:e.getModel(["blur","itemStyle"]).getItemStyle(),selectItemStyle:e.getModel(["select","itemStyle"]).getItemStyle(),focus:n.get("focus"),blurScope:n.get("blurScope"),symbolRotate:e.get("symbolRotate"),symbolOffset:e.get("symbolOffset"),hoverScale:n.get("scale"),labelStatesModels:Bu(e),cursorStyle:e.get("cursor")}}var Ux=function(){function t(t){this.group=new Pi,this._SymbolCtor=t||Gx}return t.prototype.updateData=function(t,e){e=Yx(e);var n=this.group,i=t.hostModel,r=this._data,o=this._SymbolCtor,a=e.disableAnimation,s=Xx(t),l={disableAnimation:a},u=e.getSymbolPoint||function(e){return t.getItemLayout(e)};r||n.removeAll(),t.diff(r).add((function(i){var r=u(i);if(Wx(t,r,i,e)){var a=new o(t,i,s,l);a.setPosition(r),t.setItemGraphicEl(i,a),n.add(a)}})).update((function(h,c){var p=r.getItemGraphicEl(c),d=u(h);if(Wx(t,d,h,e)){if(p){p.updateData(t,h,s,l);var f={x:d[0],y:d[1]};a?p.attr(f):yu(p,f,i)}else(p=new o(t,h)).setPosition(d);n.add(p),t.setItemGraphicEl(h,p)}else n.remove(p)})).remove((function(t){var e=r.getItemGraphicEl(t);e&&e.fadeOut((function(){n.remove(e)}))})).execute(),this._getSymbolPoint=u,this._data=t},t.prototype.isPersistent=function(){return!0},t.prototype.updateLayout=function(){var t=this,e=this._data;e&&e.eachItemGraphicEl((function(e,n){var i=t._getSymbolPoint(n);e.setPosition(i),e.markRedraw()}))},t.prototype.incrementalPrepareUpdate=function(t){this._seriesScope=Xx(t),this._data=null,this.group.removeAll()},t.prototype.incrementalUpdate=function(t,e,n){function i(t){t.isGroup||(t.incremental=!0,t.ensureState("emphasis").hoverLayer=!0)}n=Yx(n);for(var r=t.start;r<t.end;r++){var o=e.getItemLayout(r);if(Wx(e,o,r,n)){var a=new this._SymbolCtor(e,r,this._seriesScope);a.traverse(i),a.setPosition(o),this.group.add(a),e.setItemGraphicEl(r,a)}}},t.prototype.remove=function(t){var e=this.group,n=this._data;n&&t?n.eachItemGraphicEl((function(t){t.fadeOut((function(){e.remove(t)}))})):e.removeAll()},t}();function Zx(t,e,n){var i=t.getBaseAxis(),r=t.getOtherAxis(i),o=function(t,e){var n=0,i=t.scale.getExtent();"start"===e?n=i[0]:"end"===e?n=i[1]:i[0]>0?n=i[0]:i[1]<0&&(n=i[1]);return n}(r,n),a=i.dim,s=r.dim,l=e.mapDimension(s),u=e.mapDimension(a),h="x"===s||"radius"===s?1:0,c=P(t.dimensions,(function(t){return e.mapDimension(t)})),p=!1,d=e.getCalculationInfo("stackResultDimension");return lm(e,c[0])&&(p=!0,c[0]=d),lm(e,c[1])&&(p=!0,c[1]=d),{dataDimsForPoint:c,valueStart:o,valueAxisDim:s,baseAxisDim:a,stacked:!!p,valueDim:l,baseDim:u,baseDataOffset:h,stackedOverDimension:e.getCalculationInfo("stackedOverDimension")}}function jx(t,e,n,i){var r=NaN;t.stacked&&(r=n.get(n.getCalculationInfo("stackedOverDimension"),i)),isNaN(r)&&(r=t.valueStart);var o=t.baseDataOffset,a=[];return a[o]=n.get(t.baseDim,i),a[1-o]=r,e.dataToPoint(a)}var qx="undefined"!=typeof Float32Array,Kx=qx?Float32Array:Array;function $x(t){return V(t)?qx?new Float32Array(t):t:new Kx(t)}var Jx=Math.min,Qx=Math.max;function tb(t,e){return isNaN(t)||isNaN(e)}function eb(t,e,n,i,r,o,a,s,l){for(var u,h,c,p,d,f,g=n,y=0;y<i;y++){var v=e[2*g],m=e[2*g+1];if(g>=r||g<0)break;if(tb(v,m)){if(l){g+=o;continue}break}if(g===n)t[o>0?"moveTo":"lineTo"](v,m),c=v,p=m;else{var _=v-u,x=m-h;if(_*_+x*x<.5){g+=o;continue}if(a>0){var b=g+o,w=e[2*b],S=e[2*b+1],M=y+1;if(l)for(;tb(w,S)&&M<i;)M++,w=e[2*(b+=o)],S=e[2*b+1];var I=.5,T=0,C=0,A=void 0,D=void 0;if(M>=i||tb(w,S))d=v,f=m;else{T=w-u,C=S-h;var L=v-u,k=w-v,P=m-h,O=S-m,R=void 0,N=void 0;"x"===s?(R=Math.abs(L),N=Math.abs(k),d=v-R*a,f=m,A=v+R*a,D=m):"y"===s?(R=Math.abs(P),N=Math.abs(O),d=v,f=m-R*a,A=v,D=m+R*a):(R=Math.sqrt(L*L+P*P),d=v-T*a*(1-(I=(N=Math.sqrt(k*k+O*O))/(N+R))),f=m-C*a*(1-I),D=m+C*a*I,A=Jx(A=v+T*a*I,Qx(w,v)),D=Jx(D,Qx(S,m)),A=Qx(A,Jx(w,v)),f=m-(C=(D=Qx(D,Jx(S,m)))-m)*R/N,d=Jx(d=v-(T=A-v)*R/N,Qx(u,v)),f=Jx(f,Qx(h,m)),A=v+(T=v-(d=Qx(d,Jx(u,v))))*N/R,D=m+(C=m-(f=Qx(f,Jx(h,m))))*N/R)}t.bezierCurveTo(c,p,d,f,v,m),c=A,p=D}else t.lineTo(v,m)}u=v,h=m,g+=o}return y}var nb=function(){this.smooth=0,this.smoothConstraint=!0},ib=function(t){function n(e){var n=t.call(this,e)||this;return n.type="ec-polyline",n}return e(n,t),n.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},n.prototype.getDefaultShape=function(){return new nb},n.prototype.buildPath=function(t,e){var n=e.points,i=0,r=n.length/2;if(e.connectNulls){for(;r>0&&tb(n[2*r-2],n[2*r-1]);r--);for(;i<r&&tb(n[2*i],n[2*i+1]);i++);}for(;i<r;)i+=eb(t,n,i,r,r,1,e.smooth,e.smoothMonotone,e.connectNulls)+1},n.prototype.getPointOn=function(t,e){this.path||(this.createPathProxy(),this.buildPath(this.path,this.shape));for(var n,i,r=this.path.data,o=ga.CMD,a="x"===e,s=[],l=0;l<r.length;){var u=void 0,h=void 0,c=void 0,p=void 0,d=void 0,f=void 0,g=void 0;switch(r[l++]){case o.M:n=r[l++],i=r[l++];break;case o.L:if(u=r[l++],h=r[l++],(g=a?(t-n)/(u-n):(t-i)/(h-i))<=1&&g>=0){var y=a?(h-i)*g+i:(u-n)*g+n;return a?[t,y]:[y,t]}n=u,i=h;break;case o.C:u=r[l++],h=r[l++],c=r[l++],p=r[l++],d=r[l++],f=r[l++];var v=a?Mo(n,u,c,d,t,s):Mo(i,h,p,f,t,s);if(v>0)for(var m=0;m<v;m++){var _=s[m];if(_<=1&&_>=0){y=a?wo(i,h,p,f,_):wo(n,u,c,d,_);return a?[t,y]:[y,t]}}n=d,i=f}}},n}(Na),rb=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n}(nb),ob=function(t){function n(e){var n=t.call(this,e)||this;return n.type="ec-polygon",n}return e(n,t),n.prototype.getDefaultShape=function(){return new rb},n.prototype.buildPath=function(t,e){var n=e.points,i=e.stackedOnPoints,r=0,o=n.length/2,a=e.smoothMonotone;if(e.connectNulls){for(;o>0&&tb(n[2*o-2],n[2*o-1]);o--);for(;r<o&&tb(n[2*r],n[2*r+1]);r++);}for(;r<o;){var s=eb(t,n,r,o,o,1,e.smooth,a,e.connectNulls);eb(t,i,r+s-1,s,o,-1,e.stackedOnSmooth,a,e.connectNulls),r+=s+1,t.closePath()}},n}(Na);function ab(t,e,n,i,r){var o=t.getArea(),a=o.x,s=o.y,l=o.width,u=o.height,h=n.get(["lineStyle","width"])||2;a-=h/2,s-=h/2,l+=h,u+=h,a=Math.floor(a),l=Math.round(l);var c=new Za({shape:{x:a,y:s,width:l,height:u}});if(e){var p=t.getBaseAxis(),d=p.isHorizontal(),f=p.inverse;d?(f&&(c.shape.x+=l),c.shape.width=0):(f||(c.shape.y+=u),c.shape.height=0),vu(c,{shape:{width:l,height:u,x:a,y:s}},n,null,i,"function"==typeof r?function(t){r(t,c)}:null)}return c}function sb(t,e,n){var i=t.getArea(),r=Hi(i.r0,1),o=Hi(i.r,1),a=new Tl({shape:{cx:Hi(t.cx,1),cy:Hi(t.cy,1),r0:r,r:o,startAngle:i.startAngle,endAngle:i.endAngle,clockwise:i.clockwise}});e&&("angle"===t.getBaseAxis().dim?a.shape.endAngle=i.startAngle:a.shape.r=r,vu(a,{shape:{endAngle:i.endAngle,r:o}},n));return a}function lb(t,e,n,i,r){return t?"polar"===t.type?sb(t,e,n):"cartesian2d"===t.type?ab(t,e,n,i,r):null:null}function ub(t,e){return t.type===e}function hb(t,e){if(t.length===e.length){for(var n=0;n<t.length;n++)if(t[n]!==e[n])return;return!0}}function cb(t){for(var e=1/0,n=1/0,i=-1/0,r=-1/0,o=0;o<t.length;){var a=t[o++],s=t[o++];isNaN(a)||(e=Math.min(a,e),i=Math.max(a,i)),isNaN(s)||(n=Math.min(s,n),r=Math.max(s,r))}return[[e,n],[i,r]]}function pb(t,e){var n=cb(t),i=n[0],r=n[1],o=cb(e),a=o[0],s=o[1];return Math.max(Math.abs(i[0]-a[0]),Math.abs(i[1]-a[1]),Math.abs(r[0]-s[0]),Math.abs(r[1]-s[1]))}function db(t){return"number"==typeof t?t:t?.5:0}function fb(t,e,n){for(var i=e.getBaseAxis(),r="x"===i.dim||"radius"===i.dim?0:1,o=[],a=0,s=[],l=[],u=[];a<t.length-2;a+=2)switch(u[0]=t[a+2],u[1]=t[a+3],l[0]=t[a],l[1]=t[a+1],o.push(l[0],l[1]),n){case"end":s[r]=u[r],s[1-r]=l[1-r],o.push(s[0],s[1]);break;case"middle":var h=(l[r]+u[r])/2,c=[];s[r]=c[r]=h,s[1-r]=l[1-r],c[1-r]=u[1-r],o.push(s[0],s[1]),o.push(c[0],c[1]);break;default:s[r]=l[r],s[1-r]=u[1-r],o.push(s[0],s[1])}return o.push(t[a++],t[a++]),o}function gb(t,e,n){var i=t.get("showAllSymbol"),r="auto"===i;if(!i||r){var o=n.getAxesByScale("ordinal")[0];if(o&&(!r||!function(t,e){var n=t.getExtent(),i=Math.abs(n[1]-n[0])/t.scale.count();isNaN(i)&&(i=0);for(var r=e.count(),o=Math.max(1,Math.round(r/5)),a=0;a<r;a+=o)if(1.5*Gx.getSymbolSize(e,a)[t.isHorizontal()?1:0]>i)return!1;return!0}(o,e))){var a=e.mapDimension(o.dim),s={};return k(o.getViewLabels(),(function(t){var e=o.scale.getRawOrdinalNumber(t.tickValue);s[e]=1})),function(t){return!s.hasOwnProperty(e.get(a,t))}}}}function yb(t,e){return[t[2*e],t[2*e+1]]}function vb(t,e,n,i){if(ub(e,"cartesian2d")){var r=i.getModel("endLabel"),o=r.get("show"),a=r.get("valueAnimation"),s=i.getData(),l={lastFrameIndex:0},u=o?function(n,i){t._endLabelOnDuring(n,i,s,l,a,r,e)}:null,h=e.getBaseAxis().isHorizontal(),c=ab(e,n,i,(function(){var e=t._endLabel;e&&n&&null!=l.originalX&&e.attr({x:l.originalX,y:l.originalY})}),u);if(!i.get("clip",!0)){var p=c.shape,d=Math.max(p.width,p.height);h?(p.y-=d,p.height+=2*d):(p.x-=d,p.width+=2*d)}return u&&u(1,c),c}return sb(e,n,i)}var mb=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.init=function(){var t=new Pi,e=new Ux;this.group.add(e.group),this._symbolDraw=e,this._lineGroup=t},n.prototype.render=function(t,e,n){var i=this,r=t.coordinateSystem,o=this.group,a=t.getData(),s=t.getModel("lineStyle"),l=t.getModel("areaStyle"),u=a.getLayout("points")||[],h="polar"===r.type,c=this._coordSys,p=this._symbolDraw,d=this._polyline,f=this._polygon,g=this._lineGroup,y=t.get("animation"),v=!l.isEmpty(),m=l.get("origin"),_=Zx(r,a,m),x=v&&function(t,e,n){if(!n.valueDim)return[];for(var i=e.count(),r=$x(2*i),o=0;o<i;o++){var a=jx(n,t,e,o);r[2*o]=a[0],r[2*o+1]=a[1]}return r}(r,a,_),b=t.get("showSymbol"),w=b&&!h&&gb(t,a,r),S=this._data;S&&S.eachItemGraphicEl((function(t,e){t.__temp&&(o.remove(t),S.setItemGraphicEl(e,null))})),b||p.remove(),o.add(g);var M,T=!h&&t.get("step");r&&r.getArea&&t.get("clip",!0)&&(null!=(M=r.getArea()).width?(M.x-=.1,M.y-=.1,M.width+=.2,M.height+=.2):M.r0&&(M.r0-=.5,M.r+=.5)),this._clipShapeForSymbol=M,d&&c.type===r.type&&T===this._step?(v&&!f?f=this._newPolygon(u,x):f&&!v&&(g.remove(f),f=this._polygon=null),h||this._initOrUpdateEndLabel(t,r),g.setClipPath(vb(this,r,!1,t)),b&&p.updateData(a,{isIgnore:w,clipShape:M,disableAnimation:!0,getSymbolPoint:function(t){return[u[2*t],u[2*t+1]]}}),hb(this._stackedOnPoints,x)&&hb(this._points,u)||(y?this._doUpdateAnimation(a,x,r,n,T,m):(T&&(u=fb(u,r,T),x&&(x=fb(x,r,T))),d.setShape({points:u}),f&&f.setShape({points:u,stackedOnPoints:x})))):(b&&p.updateData(a,{isIgnore:w,clipShape:M,disableAnimation:!0,getSymbolPoint:function(t){return[u[2*t],u[2*t+1]]}}),y&&this._initSymbolLabelAnimation(a,r,M),T&&(u=fb(u,r,T),x&&(x=fb(x,r,T))),d=this._newPolyline(u),v&&(f=this._newPolygon(u,x)),h||this._initOrUpdateEndLabel(t,r),g.setClipPath(vb(this,r,!0,t)));var C=function(t,e){var n=t.getVisual("visualMeta");if(n&&n.length&&t.count()&&"cartesian2d"===e.type){for(var i,r,o=n.length-1;o>=0;o--){var a=n[o].dimension,s=t.dimensions[a],l=t.getDimensionInfo(s);if("x"===(i=l&&l.coordDim)||"y"===i){r=n[o];break}}if(r){var u=e.getAxis(i),h=P(r.stops,(function(t){return{offset:0,coord:u.toGlobalCoord(u.dataToCoord(t.value)),color:t.color}})),c=h.length,p=r.outerColors.slice();c&&h[0].coord>h[c-1].coord&&(h.reverse(),p.reverse());var d=h[0].coord-10,f=h[c-1].coord+10,g=f-d;if(g<.001)return"transparent";k(h,(function(t){t.offset=(t.coord-d)/g})),h.push({offset:c?h[c-1].offset:.5,color:p[1]||"transparent"}),h.unshift({offset:c?h[0].offset:.5,color:p[0]||"transparent"});var y=new Ul(0,0,0,0,h,!0);return y[i]=d,y[i+"2"]=f,y}}}(a,r)||a.getVisual("style")[a.getVisual("drawType")],A=t.get(["emphasis","focus"]),D=t.get(["emphasis","blurScope"]);(d.useStyle(I(s.getLineStyle(),{fill:"none",stroke:C,lineJoin:"bevel"})),Vs(d,t,"lineStyle"),d.style.lineWidth>0&&"bolder"===t.get(["emphasis","lineStyle","width"]))&&(d.getState("emphasis").style.lineWidth=d.style.lineWidth+1);rs(d).seriesIndex=t.seriesIndex,Ns(d,A,D);var L=db(t.get("smooth")),O=t.get("smoothMonotone"),R=t.get("connectNulls");if(d.setShape({smooth:L,smoothMonotone:O,connectNulls:R}),f){var N=a.getCalculationInfo("stackedOnSeries"),E=0;f.useStyle(I(l.getAreaStyle(),{fill:C,opacity:.7,lineJoin:"bevel",decal:a.getVisual("style").decal})),N&&(E=db(N.get("smooth"))),f.setShape({smooth:L,stackedOnSmooth:E,smoothMonotone:O,connectNulls:R}),Vs(f,t,"areaStyle"),rs(f).seriesIndex=t.seriesIndex,Ns(f,A,D)}var z=function(t){i._changePolyState(t)};a.eachItemGraphicEl((function(t){t&&(t.onHoverStateChange=z)})),this._polyline.onHoverStateChange=z,this._data=a,this._coordSys=r,this._stackedOnPoints=x,this._points=u,this._step=T,this._valueOrigin=m},n.prototype.dispose=function(){},n.prototype.highlight=function(t,e,n,i){var r=t.getData(),o=xr(r,i);if(this._changePolyState("emphasis"),!(o instanceof Array)&&null!=o&&o>=0){var a=r.getLayout("points"),s=r.getItemGraphicEl(o);if(!s){var l=a[2*o],u=a[2*o+1];if(isNaN(l)||isNaN(u))return;if(this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(l,u))return;(s=new Gx(r,o)).x=l,s.y=u,s.setZ(t.get("zlevel"),t.get("z")),s.__temp=!0,r.setItemGraphicEl(o,s),s.stopSymbolAnimation(!0),this.group.add(s)}s.highlight()}else Nd.prototype.highlight.call(this,t,e,n,i)},n.prototype.downplay=function(t,e,n,i){var r=t.getData(),o=xr(r,i);if(this._changePolyState("normal"),null!=o&&o>=0){var a=r.getItemGraphicEl(o);a&&(a.__temp?(r.setItemGraphicEl(o,null),this.group.remove(a)):a.downplay())}else Nd.prototype.downplay.call(this,t,e,n,i)},n.prototype._changePolyState=function(t){var e=this._polygon;ws(this._polyline,t),e&&ws(e,t)},n.prototype._newPolyline=function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new ib({shape:{points:t},segmentIgnoreThreshold:2,z2:10}),this._lineGroup.add(e),this._polyline=e,e},n.prototype._newPolygon=function(t,e){var n=this._polygon;return n&&this._lineGroup.remove(n),n=new ob({shape:{points:t,stackedOnPoints:e},segmentIgnoreThreshold:2}),this._lineGroup.add(n),this._polygon=n,n},n.prototype._initSymbolLabelAnimation=function(t,e,n){var i,r,o=e.getBaseAxis(),a=o.inverse;"cartesian2d"===e.type?(i=o.isHorizontal(),r=!1):"polar"===e.type&&(i="angle"===o.dim,r=!0);var s=t.hostModel,l=s.get("animationDuration");"function"==typeof l&&(l=l(null));var u=s.get("animationDelay")||0,h="function"==typeof u?u(null):u;t.eachItemGraphicEl((function(t,o){var s=t;if(s){var c=[t.x,t.y],p=void 0,d=void 0,f=void 0;if(r){var g=n,y=e.pointToCoord(c);i?(p=g.startAngle,d=g.endAngle,f=-y[1]/180*Math.PI):(p=g.r0,d=g.r,f=y[0])}else{var v=n;i?(p=v.x,d=v.x+v.width,f=t.x):(p=v.y+v.height,d=v.y,f=t.y)}var m=d===p?0:(f-p)/(d-p);a&&(m=1-m);var _="function"==typeof u?u(o):l*m+h,x=s.getSymbolPath(),b=x.getTextContent();s.attr({scaleX:0,scaleY:0}),s.animateTo({scaleX:1,scaleY:1},{duration:200,delay:_}),b&&b.animateFrom({style:{opacity:0}},{duration:300,delay:_}),x.disableLabelAnimation=!0}}))},n.prototype._initOrUpdateEndLabel=function(t,e){var n=t.getModel("endLabel");if(n.get("show")){var i=t.getData(),r=this._polyline,o=this._endLabel;o||((o=this._endLabel=new Ka({z2:200})).ignoreClip=!0,r.setTextContent(this._endLabel),r.disableLabelAnimation=!0);var a=function(t){for(var e,n,i=t.length/2;i>0&&(e=t[2*i-2],n=t[2*i-1],isNaN(e)||isNaN(n));i--);return i-1}(i.getLayout("points"));a>=0&&(zu(r,Bu(t,"endLabel"),{labelFetcher:t,labelDataIndex:a,defaultText:function(t,e,n){return null!=n?Fx(i,n):Vx(i,t)},enableTextSetter:!0},function(t,e){var n=e.getBaseAxis(),i=n.isHorizontal(),r=n.inverse,o=i?r?"right":"left":"center",a=i?"middle":r?"top":"bottom";return{normal:{align:t.get("align")||o,verticalAlign:t.get("verticalAlign")||a}}}(n,e)),r.textConfig.position=null)}else this._endLabel&&(this._polyline.removeTextContent(),this._endLabel=null)},n.prototype._endLabelOnDuring=function(t,e,n,i,r,o,a){var s=this._endLabel,l=this._polyline;if(s){t<1&&null==i.originalX&&(i.originalX=s.x,i.originalY=s.y);var u=n.getLayout("points"),h=n.hostModel,c=h.get("connectNulls"),p=o.get("precision"),d=o.get("distance")||0,f=a.getBaseAxis(),g=f.isHorizontal(),y=f.inverse,v=e.shape,m=y?g?v.x:v.y+v.height:g?v.x+v.width:v.y,_=(g?d:0)*(y?-1:1),x=(g?0:-d)*(y?-1:1),b=g?"x":"y",w=function(t,e,n){for(var i,r,o=t.length/2,a="x"===n?0:1,s=0,l=-1,u=0;u<o;u++)if(r=t[2*u+a],!isNaN(r)&&!isNaN(t[2*u+1-a]))if(0!==u){if(i<=e&&r>=e||i>=e&&r<=e){l=u;break}s=u,i=r}else i=r;return{range:[s,l],t:(e-i)/(r-i)}}(u,m,b),S=w.range,M=S[1]-S[0],I=void 0;if(M>=1){if(M>1&&!c){var T=yb(u,S[0]);s.attr({x:T[0]+_,y:T[1]+x}),r&&(I=h.getRawValue(S[0]))}else{(T=l.getPointOn(m,b))&&s.attr({x:T[0]+_,y:T[1]+x});var C=h.getRawValue(S[0]),A=h.getRawValue(S[1]);r&&(I=Dr(n,p,C,A,w.t))}i.lastFrameIndex=S[0]}else{var D=1===t||i.lastFrameIndex>0?S[0]:0;T=yb(u,D);r&&(I=h.getRawValue(D)),s.attr({x:T[0]+_,y:T[1]+x})}r&&Uu(s).setLabelText(I)}},n.prototype._doUpdateAnimation=function(t,e,n,i,r,o){var a=this._polyline,s=this._polygon,l=t.hostModel,u=function(t,e,n,i,r,o,a,s){for(var l=function(t,e){var n=[];return e.diff(t).add((function(t){n.push({cmd:"+",idx:t})})).update((function(t,e){n.push({cmd:"=",idx:e,idx1:t})})).remove((function(t){n.push({cmd:"-",idx:t})})).execute(),n}(t,e),u=[],h=[],c=[],p=[],d=[],f=[],g=[],y=Zx(r,e,a),v=Zx(o,t,s),m=t.getLayout("points")||[],_=e.getLayout("points")||[],x=0;x<l.length;x++){var b=l[x],w=!0,S=void 0,M=void 0;switch(b.cmd){case"=":S=2*b.idx,M=2*b.idx1;var I=m[S],T=m[S+1],C=_[M],A=_[M+1];(isNaN(I)||isNaN(T))&&(I=C,T=A),u.push(I,T),h.push(C,A),c.push(n[S],n[S+1]),p.push(i[M],i[M+1]),g.push(e.getRawIndex(b.idx1));break;case"+":var D=b.idx,L=y.dataDimsForPoint,k=r.dataToPoint([e.get(L[0],D),e.get(L[1],D)]);M=2*D,u.push(k[0],k[1]),h.push(_[M],_[M+1]);var P=jx(y,r,e,D);c.push(P[0],P[1]),p.push(i[M],i[M+1]),g.push(e.getRawIndex(D));break;case"-":var O=b.idx,R=t.getRawIndex(O),N=v.dataDimsForPoint;if(S=2*O,R!==O){var E=o.dataToPoint([t.get(N[0],O),t.get(N[1],O)]),z=jx(v,o,t,O);u.push(m[S],m[S+1]),h.push(E[0],E[1]),c.push(n[S],n[S+1]),p.push(z[0],z[1]),g.push(R)}else w=!1}w&&(d.push(b),f.push(f.length))}f.sort((function(t,e){return g[t]-g[e]}));var B=u.length,V=$x(B),F=$x(B),G=$x(B),H=$x(B),W=[];for(x=0;x<f.length;x++){var Y=f[x],X=2*x,U=2*Y;V[X]=u[U],V[X+1]=u[U+1],F[X]=h[U],F[X+1]=h[U+1],G[X]=c[U],G[X+1]=c[U+1],H[X]=p[U],H[X+1]=p[U+1],W[x]=d[Y]}return{current:V,next:F,stackedOnCurrent:G,stackedOnNext:H,status:W}}(this._data,t,this._stackedOnPoints,e,this._coordSys,n,this._valueOrigin,o),h=u.current,c=u.stackedOnCurrent,p=u.next,d=u.stackedOnNext;if(r&&(h=fb(u.current,n,r),c=fb(u.stackedOnCurrent,n,r),p=fb(u.next,n,r),d=fb(u.stackedOnNext,n,r)),pb(h,p)>3e3||s&&pb(c,d)>3e3)return a.setShape({points:p}),void(s&&s.setShape({points:p,stackedOnPoints:d}));a.shape.__points=u.current,a.shape.points=h;var f={shape:{points:p}};u.current!==h&&(f.shape.__points=u.next),a.stopAnimation(),yu(a,f,l),s&&(s.setShape({points:h,stackedOnPoints:c}),s.stopAnimation(),yu(s,{shape:{stackedOnPoints:d}},l),a.shape.points!==s.shape.points&&(s.shape.points=a.shape.points));for(var g=[],y=u.status,v=0;v<y.length;v++){if("="===y[v].cmd){var m=t.getItemGraphicEl(y[v].idx1);m&&g.push({el:m,ptIdx:v})}}a.animators&&a.animators.length&&a.animators[0].during((function(){s&&s.dirtyShape();for(var t=a.shape.__points,e=0;e<g.length;e++){var n=g[e].el,i=2*g[e].ptIdx;n.x=t[i],n.y=t[i+1],n.markRedraw()}}))},n.prototype.remove=function(t){var e=this.group,n=this._data;this._lineGroup.removeAll(),this._symbolDraw.remove(!0),n&&n.eachItemGraphicEl((function(t,i){t.__temp&&(e.remove(t),n.setItemGraphicEl(i,null))})),this._polyline=this._polygon=this._coordSys=this._points=this._stackedOnPoints=this._endLabel=this._data=null},n.type="line",n}(Nd);function _b(t,e){return{seriesType:t,plan:Pd(),reset:function(t){var n=t.getData(),i=t.coordinateSystem,r=t.pipelineContext,o=e||r.large;if(i){var a=P(i.dimensions,(function(t){return n.mapDimension(t)})).slice(0,2),s=a.length,l=n.getCalculationInfo("stackResultDimension");lm(n,a[0])&&(a[0]=l),lm(n,a[1])&&(a[1]=l);var u=n.getDimensionInfo(a[0]),h=n.getDimensionInfo(a[1]),c=u&&u.index,p=h&&h.index;return s&&{progress:function(t,e){for(var n=t.end-t.start,r=o&&$x(n*s),a=[],l=[],u=t.start,h=0;u<t.end;u++){var d=void 0;if(1===s){var f=e.getByDimIdx(c,u);d=i.dataToPoint(f,null,l)}else a[0]=e.getByDimIdx(c,u),a[1]=e.getByDimIdx(p,u),d=i.dataToPoint(a,null,l);o?(r[h++]=d[0],r[h++]=d[1]):e.setItemLayout(u,d.slice())}o&&e.setLayout("points",r)}}}}}}var xb={average:function(t){for(var e=0,n=0,i=0;i<t.length;i++)isNaN(t[i])||(e+=t[i],n++);return 0===n?NaN:e/n},sum:function(t){for(var e=0,n=0;n<t.length;n++)e+=t[n]||0;return e},max:function(t){for(var e=-1/0,n=0;n<t.length;n++)t[n]>e&&(e=t[n]);return isFinite(e)?e:NaN},min:function(t){for(var e=1/0,n=0;n<t.length;n++)t[n]<e&&(e=t[n]);return isFinite(e)?e:NaN},nearest:function(t){return t[0]}},bb=function(t){return Math.round(t.length/2)};function wb(t){return{seriesType:t,reset:function(t,e,n){var i=t.getData(),r=t.get("sampling"),o=t.coordinateSystem,a=i.count();if(a>10&&"cartesian2d"===o.type&&r){var s=o.getBaseAxis(),l=o.getOtherAxis(s),u=s.getExtent(),h=n.getDevicePixelRatio(),c=Math.abs(u[1]-u[0])*(h||1),p=Math.round(a/c);if(p>1){"lttb"===r&&t.setData(i.lttbDownSample(i.mapDimension(l.dim),1/p));var d=void 0;"string"==typeof r?d=xb[r]:"function"==typeof r&&(d=r),d&&t.setData(i.downSample(i.mapDimension(l.dim),1/p,d,bb))}}}}}var Sb=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.getInitialData=function(t,e){return hm(this.getSource(),this,{useEncodeDefaulter:!0})},n.prototype.getMarkerPosition=function(t){var e=this.coordinateSystem;if(e){var n=e.dataToPoint(e.clampData(t)),i=this.getData(),r=i.getLayout("offset"),o=i.getLayout("size");return n[e.getBaseAxis().isHorizontal()?0:1]+=r+o/2,n}return[NaN,NaN]},n.type="series.__base_bar__",n.defaultOption={zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:3e3,progressiveChunkMode:"mod"},n}(Sd);Sd.registerClass(Sb);var Mb=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.getInitialData=function(){return hm(this.getSource(),this,{useEncodeDefaulter:!0,createInvertedIndices:!!this.get("realtimeSort",!0)||null})},n.prototype.getProgressive=function(){return!!this.get("large")&&this.get("progressive")},n.prototype.getProgressiveThreshold=function(){var t=this.get("progressiveThreshold"),e=this.get("largeThreshold");return e>t&&(t=e),t},n.prototype.brushSelector=function(t,e,n){return n.rect(e.getItemLayout(t))},n.type="series.bar",n.dependencies=["grid","polar"],n.defaultOption=uh(Sb.defaultOption,{clip:!0,roundCap:!1,showBackground:!1,backgroundStyle:{color:"rgba(180, 180, 180, 0.2)",borderColor:null,borderWidth:0,borderType:"solid",borderRadius:0,shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0,opacity:1},select:{itemStyle:{borderColor:"#212121"}},realtimeSort:!1}),n}(Sb),Ib=function(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0},Tb=function(t){function n(e){var n=t.call(this,e)||this;return n.type="sausage",n}return e(n,t),n.prototype.getDefaultShape=function(){return new Ib},n.prototype.buildPath=function(t,e){var n=e.cx,i=e.cy,r=Math.max(e.r0||0,0),o=Math.max(e.r,0),a=.5*(o-r),s=r+a,l=e.startAngle,u=e.endAngle,h=e.clockwise,c=Math.cos(l),p=Math.sin(l),d=Math.cos(u),f=Math.sin(u);(h?u-l<2*Math.PI:l-u<2*Math.PI)&&(t.moveTo(c*r+n,p*r+i),t.arc(c*s+n,p*s+i,a,-Math.PI+l,l,!h)),t.arc(n,i,o,l,u,!h),t.moveTo(d*o+n,f*o+i),t.arc(d*s+n,f*s+i,a,u-2*Math.PI,u-Math.PI,!h),0!==r&&(t.arc(n,i,r,u,l,h),t.moveTo(c*r+n,f*r+i)),t.closePath()},n}(Na),Cb=["itemStyle","borderWidth"],Ab=["itemStyle","borderRadius"],Db=[0,0],Lb=Math.max,kb=Math.min;var Pb=function(t){function n(){var e=t.call(this)||this;return e.type=n.type,e._isFirstFrame=!0,e}return e(n,t),n.prototype.render=function(t,e,n,i){this._model=t,this._removeOnRenderedListener(n),this._updateDrawMode(t);var r=t.get("coordinateSystem");("cartesian2d"===r||"polar"===r)&&(this._isLargeDraw?this._renderLarge(t,e,n):this._renderNormal(t,e,n,i))},n.prototype.incrementalPrepareRender=function(t){this._clear(),this._updateDrawMode(t),this._updateLargeClip(t)},n.prototype.incrementalRender=function(t,e){this._incrementalRenderLarge(t,e)},n.prototype._updateDrawMode=function(t){var e=t.pipelineContext.large;null!=this._isLargeDraw&&e===this._isLargeDraw||(this._isLargeDraw=e,this._clear())},n.prototype._renderNormal=function(t,e,n,i){var r,o=this.group,a=t.getData(),s=this._data,l=t.coordinateSystem,u=l.getBaseAxis();"cartesian2d"===l.type?r=u.isHorizontal():"polar"===l.type&&(r="angle"===u.dim);var h=t.isAnimationEnabled()?t:null,c=function(t,e){var n=t.get("realtimeSort",!0),i=e.getBaseAxis();0;if(n&&"category"===i.type&&"cartesian2d"===e.type)return{baseAxis:i,otherAxis:e.getOtherAxis(i)}}(t,l);c&&this._enableRealtimeSort(c,a,n);var p=t.get("clip",!0)||c,d=function(t,e){var n=t.getArea&&t.getArea();if(ub(t,"cartesian2d")){var i=t.getBaseAxis();if("category"!==i.type||!i.onBand){var r=e.getLayout("bandWidth");i.isHorizontal()?(n.x-=r,n.width+=2*r):(n.y-=r,n.height+=2*r)}}return n}(l,a);o.removeClipPath();var f=t.get("roundCap",!0),g=t.get("showBackground",!0),y=t.getModel("backgroundStyle"),v=y.get("borderRadius")||0,m=[],_=this._backgroundEls,x=i&&i.isInitSort,b=i&&"changeAxisOrder"===i.type;function w(t){var e=Eb[l.type](a,t),n=function(t,e,n){return new("polar"===t.type?Tl:Za)({shape:Hb(e,n,t),silent:!0,z2:0})}(l,r,e);return n.useStyle(y.getItemStyle()),"cartesian2d"===l.type&&n.setShape("r",v),m[t]=n,n}a.diff(s).add((function(e){var n=a.getItemModel(e),i=Eb[l.type](a,e,n);if(g&&w(e),a.hasValue(e)){var s=!1;p&&(s=Ob[l.type](d,i));var y=Rb[l.type](t,a,e,i,r,h,u.model,!1,f);zb(y,a,e,n,i,t,r,"polar"===l.type),x?y.attr({shape:i}):c?Nb(c,h,y,i,e,r,!1,!1):vu(y,{shape:i},t,e),a.setItemGraphicEl(e,y),o.add(y),y.ignore=s}})).update((function(e,n){var i=a.getItemModel(e),S=Eb[l.type](a,e,i);if(g){var M=void 0;0===_.length?M=w(n):((M=_[n]).useStyle(y.getItemStyle()),"cartesian2d"===l.type&&M.setShape("r",v),m[e]=M);var I=Eb[l.type](a,e);yu(M,{shape:Hb(r,I,l)},h,e)}var T=s.getItemGraphicEl(n);if(!a.hasValue(e))return o.remove(T),void(T=null);var C=!1;p&&(C=Ob[l.type](d,S))&&o.remove(T),T||(T=Rb[l.type](t,a,e,S,r,h,u.model,!!T,f)),b||zb(T,a,e,i,S,t,r,"polar"===l.type),x?T.attr({shape:S}):c?Nb(c,h,T,S,e,r,!0,b):yu(T,{shape:S},t,e,null),a.setItemGraphicEl(e,T),T.ignore=C,o.add(T)})).remove((function(e){var n=s.getItemGraphicEl(e);n&&xu(n,t,e)})).execute();var S=this._backgroundGroup||(this._backgroundGroup=new Pi);S.removeAll();for(var M=0;M<m.length;++M)S.add(m[M]);o.add(S),this._backgroundEls=m,this._data=a},n.prototype._renderLarge=function(t,e,n){this._clear(),Fb(t,this.group),this._updateLargeClip(t)},n.prototype._incrementalRenderLarge=function(t,e){this._removeBackground(),Fb(e,this.group,!0)},n.prototype._updateLargeClip=function(t){var e=t.get("clip",!0)?lb(t.coordinateSystem,!1,t):null;e?this.group.setClipPath(e):this.group.removeClipPath()},n.prototype._enableRealtimeSort=function(t,e,n){var i=this;if(e.count()){var r=t.baseAxis;if(this._isFirstFrame)this._dispatchInitSort(e,t,n),this._isFirstFrame=!1;else{var o=function(t){var n=e.getItemGraphicEl(t);if(n){var i=n.shape;return(r.isHorizontal()?Math.abs(i.height):Math.abs(i.width))||0}return 0};this._onRendered=function(){i._updateSortWithinSameData(e,o,r,n)},n.getZr().on("rendered",this._onRendered)}}},n.prototype._dataSort=function(t,e,n){var i=[];return t.each(t.mapDimension(e.dim),(function(t,e){var r=n(e);r=null==r?NaN:r,i.push({dataIndex:e,mappedValue:r,ordinalNumber:t})})),i.sort((function(t,e){return e.mappedValue-t.mappedValue})),{ordinalNumbers:P(i,(function(t){return t.ordinalNumber}))}},n.prototype._isOrderChangedWithinSameData=function(t,e,n){for(var i=n.scale,r=t.mapDimension(n.dim),o=Number.MAX_VALUE,a=0,s=i.getOrdinalMeta().categories.length;a<s;++a){var l=t.rawIndexOf(r,i.getRawOrdinalNumber(a)),u=l<0?Number.MIN_VALUE:e(t.indexOfRawIndex(l));if(u>o)return!0;o=u}return!1},n.prototype._isOrderDifferentInView=function(t,e){for(var n=e.scale,i=n.getExtent(),r=Math.max(0,i[0]),o=Math.min(i[1],n.getOrdinalMeta().categories.length-1);r<=o;++r)if(t.ordinalNumbers[r]!==n.getRawOrdinalNumber(r))return!0},n.prototype._updateSortWithinSameData=function(t,e,n,i){if(this._isOrderChangedWithinSameData(t,e,n)){var r=this._dataSort(t,n,e);this._isOrderDifferentInView(r,n)&&(this._removeOnRenderedListener(i),i.dispatchAction({type:"changeAxisOrder",componentType:n.dim+"Axis",axisId:n.index,sortInfo:r}))}},n.prototype._dispatchInitSort=function(t,e,n){var i=e.baseAxis,r=this._dataSort(t,i,(function(n){return t.get(t.mapDimension(e.otherAxis.dim),n)}));n.dispatchAction({type:"changeAxisOrder",componentType:i.dim+"Axis",isInitSort:!0,axisId:i.index,sortInfo:r,animation:{duration:0}})},n.prototype.remove=function(t,e){this._clear(this._model),this._removeOnRenderedListener(e)},n.prototype.dispose=function(t,e){this._removeOnRenderedListener(e)},n.prototype._removeOnRenderedListener=function(t){this._onRendered&&(t.getZr().off("rendered",this._onRendered),this._onRendered=null)},n.prototype._clear=function(t){var e=this.group,n=this._data;t&&t.isAnimationEnabled()&&n&&!this._isLargeDraw?(this._removeBackground(),this._backgroundEls=[],n.eachItemGraphicEl((function(e){xu(e,t,rs(e).dataIndex)}))):e.removeAll(),this._data=null,this._isFirstFrame=!0},n.prototype._removeBackground=function(){this.group.remove(this._backgroundGroup),this._backgroundGroup=null},n.type="bar",n}(Nd),Ob={cartesian2d:function(t,e){var n=e.width<0?-1:1,i=e.height<0?-1:1;n<0&&(e.x+=e.width,e.width=-e.width),i<0&&(e.y+=e.height,e.height=-e.height);var r=t.x+t.width,o=t.y+t.height,a=Lb(e.x,t.x),s=kb(e.x+e.width,r),l=Lb(e.y,t.y),u=kb(e.y+e.height,o),h=s<a,c=u<l;return e.x=h&&a>r?s:a,e.y=c&&l>o?u:l,e.width=h?0:s-a,e.height=c?0:u-l,n<0&&(e.x+=e.width,e.width=-e.width),i<0&&(e.y+=e.height,e.height=-e.height),h||c},polar:function(t,e){var n=e.r0<=e.r?1:-1;if(n<0){var i=e.r;e.r=e.r0,e.r0=i}var r=kb(e.r,t.r),o=Lb(e.r0,t.r0);e.r=r,e.r0=o;var a=r-o<0;if(n<0){i=e.r;e.r=e.r0,e.r0=i}return a}},Rb={cartesian2d:function(t,e,n,i,r,o,a,s,l){var u=new Za({shape:M({},i),z2:1});(u.__dataIndex=n,u.name="item",o)&&(u.shape[r?"height":"width"]=0);return u},polar:function(t,e,n,i,r,o,a,s,l){var u=i.startAngle<i.endAngle,h=new(!r&&l?Tb:Tl)({shape:I({clockwise:u},i),z2:1});if(h.name="item",o){var c=r?"r":"endAngle",p={};h.shape[c]=r?0:i.startAngle,p[c]=i[c],(s?yu:vu)(h,{shape:p},o)}return h}};function Nb(t,e,n,i,r,o,a,s){var l,u;o?(u={x:i.x,width:i.width},l={y:i.y,height:i.height}):(u={y:i.y,height:i.height},l={x:i.x,width:i.width}),s||(a?yu:vu)(n,{shape:l},e,r,null),(a?yu:vu)(n,{shape:u},e?t.baseAxis.model:null,r)}var Eb={cartesian2d:function(t,e,n){var i=t.getItemLayout(e),r=n?function(t,e){var n=t.get(Cb)||0,i=isNaN(e.width)?Number.MAX_VALUE:Math.abs(e.width),r=isNaN(e.height)?Number.MAX_VALUE:Math.abs(e.height);return Math.min(n,i,r)}(n,i):0,o=i.width>0?1:-1,a=i.height>0?1:-1;return{x:i.x+o*r/2,y:i.y+a*r/2,width:i.width-o*r,height:i.height-a*r}},polar:function(t,e,n){var i=t.getItemLayout(e);return{cx:i.cx,cy:i.cy,r0:i.r0,r:i.r,startAngle:i.startAngle,endAngle:i.endAngle}}};function zb(t,e,n,i,r,o,a,s){var l=e.getItemVisual(n,"style");s||t.setShape("r",i.get(Ab)||0),t.useStyle(l);var u=i.getShallow("cursor");if(u&&t.attr("cursor",u),!s){var h=a?r.height>0?"bottom":"top":r.width>0?"left":"right",c=Bu(i);zu(t,c,{labelFetcher:o,labelDataIndex:n,defaultText:Vx(o.getData(),n),inheritColor:l.fill,defaultOpacity:l.opacity,defaultOutsidePosition:h}),Zu(t.getTextContent(),c,o.getRawValue(n),(function(t){return Fx(e,t)}))}var p=i.getModel(["emphasis"]);Ns(t,p.get("focus"),p.get("blurScope")),Vs(t,i),function(t){return null!=t.startAngle&&null!=t.endAngle&&t.startAngle===t.endAngle}(r)&&(t.style.fill="none",t.style.stroke="none",k(t.states,(function(t){t.style&&(t.style.fill=t.style.stroke="none")})))}var Bb=function(){},Vb=function(t){function n(e){var n=t.call(this,e)||this;return n.type="largeBar",n}return e(n,t),n.prototype.getDefaultShape=function(){return new Bb},n.prototype.buildPath=function(t,e){for(var n=e.points,i=this.__startPoint,r=this.__baseDimIdx,o=0;o<n.length;o+=2)i[r]=n[o+r],t.moveTo(i[0],i[1]),t.lineTo(n[o],n[o+1])},n}(Na);function Fb(t,e,n){var i=t.getData(),r=[],o=i.getLayout("valueAxisHorizontal")?1:0;r[1-o]=i.getLayout("valueAxisStart");var a=i.getLayout("largeDataIndices"),s=i.getLayout("barWidth"),l=t.getModel("backgroundStyle");if(t.get("showBackground",!0)){var u=i.getLayout("largeBackgroundPoints"),h=[];h[1-o]=i.getLayout("backgroundStart");var c=new Vb({shape:{points:u},incremental:!!n,silent:!0,z2:0});c.__startPoint=h,c.__baseDimIdx=o,c.__largeDataIndices=a,c.__barWidth=s,function(t,e,n){var i=e.get("borderColor")||e.get("color"),r=e.getItemStyle();t.useStyle(r),t.style.fill=null,t.style.stroke=i,t.style.lineWidth=n.getLayout("barWidth")}(c,l,i),e.add(c)}var p=new Vb({shape:{points:i.getLayout("largePoints")},incremental:!!n});p.__startPoint=r,p.__baseDimIdx=o,p.__largeDataIndices=a,p.__barWidth=s,e.add(p),function(t,e,n){var i=n.getVisual("style");t.useStyle(M({},i)),t.style.fill=null,t.style.stroke=i.fill,t.style.lineWidth=n.getLayout("barWidth")}(p,0,i),rs(p).seriesIndex=t.seriesIndex,t.get("silent")||(p.on("mousedown",Gb),p.on("mousemove",Gb))}var Gb=Wd((function(t){var e=function(t,e,n){var i=t.__baseDimIdx,r=1-i,o=t.shape.points,a=t.__largeDataIndices,s=Math.abs(t.__barWidth/2),l=t.__startPoint[r];Db[0]=e,Db[1]=n;for(var u=Db[i],h=Db[1-i],c=u-s,p=u+s,d=0,f=o.length/2;d<f;d++){var g=2*d,y=o[g+i],v=o[g+r];if(y>=c&&y<=p&&(l<=v?h>=l&&h<=v:h>=v&&h<=l))return a[d]}return-1}(this,t.offsetX,t.offsetY);rs(this).dataIndex=e>=0?e:null}),30,!1);function Hb(t,e,n){if(ub(n,"cartesian2d")){var i=e,r=n.getArea();return{x:t?i.x:r.x,y:t?r.y:i.y,width:t?i.width:r.width,height:t?r.height:i.height}}var o=e;return{cx:(r=n.getArea()).cx,cy:r.cy,r0:t?r.r0:o.r0,r:t?r.r:o.r,startAngle:t?o.startAngle:0,endAngle:t?o.endAngle:2*Math.PI}}var Wb=2*Math.PI,Yb=Math.PI/180;function Xb(t,e,n){e.eachSeriesByType(t,(function(t){var e=t.getData(),i=e.mapDimension("value"),r=function(t,e){return nc(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}(t,n),o=t.get("center"),a=t.get("radius");V(a)||(a=[0,a]),V(o)||(o=[o,o]);var s=Gi(r.width,n.getWidth()),l=Gi(r.height,n.getHeight()),u=Math.min(s,l),h=Gi(o[0],s)+r.x,c=Gi(o[1],l)+r.y,p=Gi(a[0],u/2),d=Gi(a[1],u/2),f=-t.get("startAngle")*Yb,g=t.get("minAngle")*Yb,y=0;e.each(i,(function(t){!isNaN(t)&&y++}));var v=e.getSum(i),m=Math.PI/(v||y)*2,_=t.get("clockwise"),x=t.get("roseType"),b=t.get("stillShowZeroSum"),w=e.getDataExtent(i);w[0]=0;var S=Wb,M=0,I=f,T=_?1:-1;if(e.setLayout({viewRect:r,r:d}),e.each(i,(function(t,n){var i;if(isNaN(t))e.setItemLayout(n,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:_,cx:h,cy:c,r0:p,r:x?NaN:d});else{(i="area"!==x?0===v&&b?m:t*m:Wb/y)<g?(i=g,S-=g):M+=t;var r=I+T*i;e.setItemLayout(n,{angle:i,startAngle:I,endAngle:r,clockwise:_,cx:h,cy:c,r0:p,r:x?Fi(t,w,[p,d]):d}),I=r}})),S<Wb&&y)if(S<=.001){var C=Wb/y;e.each(i,(function(t,n){if(!isNaN(t)){var i=e.getItemLayout(n);i.angle=C,i.startAngle=f+T*n*C,i.endAngle=f+T*(n+1)*C}}))}else m=S/M,I=f,e.each(i,(function(t,n){if(!isNaN(t)){var i=e.getItemLayout(n),r=i.angle===g?g:t*m;i.startAngle=I,i.endAngle=I+T*r,I+=T*r}}))}))}function Ub(t){return{seriesType:t,reset:function(t,e){var n=e.findComponents({mainType:"legend"});if(n&&n.length){var i=t.getData();i.filterSelf((function(t){for(var e=i.getName(t),r=0;r<n.length;r++)if(!n[r].isSelected(e))return!1;return!0}))}}}}var Zb=Math.PI/180;function jb(t,e,n,i,r,o,a,s,l,u){if(!(t.length<2)){for(var h=t.length,c=0;c<h;c++)if("outer"===t[c].position&&"labelLine"===t[c].labelAlignTo){var p=t[c].label.x-u;t[c].linePoints[1][0]+=p,t[c].label.x=u}ng(t,l,l+a)&&function(t){for(var o={list:[],maxY:0},a={list:[],maxY:0},s=0;s<t.length;s++)if("none"===t[s].labelAlignTo){var l=t[s],u=l.label.y>n?a:o,h=Math.abs(l.label.y-n);if(h>u.maxY){var c=l.label.x-e-l.len2*r,p=i+l.len,f=c<p?Math.sqrt(h*h/(1-c*c/p/p)):p;u.rB=f,u.maxY=h}u.list.push(l)}d(o),d(a)}(t)}function d(t){for(var o=t.rB,a=o*o,s=0;s<t.list.length;s++){var l=t.list[s],u=Math.abs(l.label.y-n),h=i+l.len,c=h*h,p=Math.sqrt((1-Math.abs(u*u/a))*c);l.label.x=e+(p+l.len2)*r}}}function qb(t){return"center"===t.position}function Kb(t){var e,n,i=t.getData(),r=[],o=!1,a=(t.get("minShowLabelAngle")||0)*Zb,s=i.getLayout("viewRect"),l=i.getLayout("r"),u=s.width,h=s.x,c=s.y,p=s.height;function d(t){t.ignore=!0}i.each((function(t){var s=i.getItemGraphicEl(t),c=s.shape,p=s.getTextContent(),f=s.getTextGuideLine(),g=i.getItemModel(t),y=g.getModel("label"),v=y.get("position")||g.get(["emphasis","label","position"]),m=y.get("distanceToLabelLine"),_=y.get("alignTo"),x=Gi(y.get("edgeDistance"),u),b=y.get("bleedMargin"),w=g.getModel("labelLine"),S=w.get("length");S=Gi(S,u);var M=w.get("length2");if(M=Gi(M,u),Math.abs(c.endAngle-c.startAngle)<a)return k(p.states,d),void(p.ignore=!0);if(function(t){if(!t.ignore)return!0;for(var e in t.states)if(!1===t.states[e].ignore)return!0;return!1}(p)){var I,T,C,A,D=(c.startAngle+c.endAngle)/2,L=Math.cos(D),P=Math.sin(D);e=c.cx,n=c.cy;var O,R="inside"===v||"inner"===v;if("center"===v)I=c.cx,T=c.cy,A="center";else{var N=(R?(c.r+c.r0)/2*L:c.r*L)+e,E=(R?(c.r+c.r0)/2*P:c.r*P)+n;if(I=N+3*L,T=E+3*P,!R){var z=N+L*(S+l-c.r),B=E+P*(S+l-c.r),V=z+(L<0?-1:1)*M;I="edge"===_?L<0?h+x:h+u-x:V+(L<0?-m:m),T=B,C=[[N,E],[z,B],[V,B]]}A=R?"center":"edge"===_?L>0?"right":"left":L>0?"left":"right"}var F=y.get("rotate");if(O="number"==typeof F?F*(Math.PI/180):F?L<0?-D+Math.PI:-D:0,o=!!O,p.x=I,p.y=T,p.rotation=O,p.setStyle({verticalAlign:"middle"}),R){p.setStyle({align:A});var G=p.states.select;G&&(G.x+=p.x,G.y+=p.y)}else{var H=p.getBoundingRect().clone();H.applyTransform(p.getComputedTransform());var W=(p.style.margin||0)+2.1;H.y-=W/2,H.height+=W,r.push({label:p,labelLine:f,position:v,len:S,len2:M,minTurnAngle:w.get("minTurnAngle"),maxSurfaceAngle:w.get("maxSurfaceAngle"),surfaceNormal:new Sn(L,P),linePoints:C,textAlign:A,labelDistance:m,labelAlignTo:_,edgeDistance:x,bleedMargin:b,rect:H})}s.setTextConfig({inside:R})}})),!o&&t.get("avoidLabelOverlap")&&function(t,e,n,i,r,o,a,s){for(var l=[],u=[],h=Number.MAX_VALUE,c=-Number.MAX_VALUE,p=0;p<t.length;p++){var d=t[p].label;qb(t[p])||(d.x<e?(h=Math.min(h,d.x),l.push(t[p])):(c=Math.max(c,d.x),u.push(t[p])))}for(jb(u,e,n,i,1,0,o,0,s,c),jb(l,e,n,i,-1,0,o,0,s,h),p=0;p<t.length;p++){var f=t[p];if(d=f.label,!qb(f)){var g=f.linePoints;if(g){var y="edge"===f.labelAlignTo,v=f.rect.width,m=void 0;(m=y?d.x<e?g[2][0]-f.labelDistance-a-f.edgeDistance:a+r-f.edgeDistance-g[2][0]-f.labelDistance:d.x<e?d.x-a-f.bleedMargin:a+r-d.x-f.bleedMargin)<f.rect.width&&(f.label.style.width=m,"edge"===f.labelAlignTo&&(v=m));var _=g[1][0]-g[2][0];y?d.x<e?g[2][0]=a+f.edgeDistance+v+f.labelDistance:g[2][0]=a+r-f.edgeDistance-v-f.labelDistance:(d.x<e?g[2][0]=d.x+f.labelDistance:g[2][0]=d.x-f.labelDistance,g[1][0]=g[2][0]+_),g[1][1]=g[2][1]=d.y}}}}(r,e,n,l,u,p,h,c);for(var f=0;f<r.length;f++){var g=r[f],y=g.label,v=g.labelLine,m=isNaN(y.x)||isNaN(y.y);if(y){y.setStyle({align:g.textAlign}),m&&(k(y.states,d),y.ignore=!0);var _=y.states.select;_&&(_.x+=y.x,_.y+=y.y)}if(v){var x=g.linePoints;m||!x?(k(v.states,d),v.ignore=!0):(qf(x,g.minTurnAngle),Kf(x,g.surfaceNormal,g.maxSurfaceAngle),v.setShape({points:x}),y.__hostTarget.textGuideLineConfig={anchor:new Sn(x[0][0],x[0][1])})}}}function $b(t,e){var n=t.get("borderRadius");return null==n?null:(V(n)||(n=[n,n]),{innerCornerRadius:Hn(n[0],e.r0),cornerRadius:Hn(n[1],e.r)})}var Jb=function(t){function i(e,n,i){var r=t.call(this)||this;r.z2=2;var o=new Rl,a=new Ka;return r.setTextGuideLine(o),r.setTextContent(a),r.updateData(e,n,i,!0),r}return e(i,t),i.prototype.updateData=function(t,e,i,r){var o=this,a=t.hostModel,s=t.getItemModel(e),l=s.getModel("emphasis"),u=t.getItemLayout(e),h=M($b(s.getModel("itemStyle"),u)||{},u);r?(o.setShape(h),"scale"===a.getShallow("animationType")?(o.shape.r=u.r0,vu(o,{shape:{r:u.r}},a,e)):null!=i?(o.setShape({startAngle:i,endAngle:i}),vu(o,{shape:{startAngle:u.startAngle,endAngle:u.endAngle}},a,e)):(o.shape.endAngle=u.startAngle,yu(o,{shape:{endAngle:u.endAngle}},a,e))):yu(o,{shape:h},a,e);o.useStyle(t.getItemVisual(e,"style")),Vs(o,s);var c=(u.startAngle+u.endAngle)/2,p=a.get("selectedOffset"),d=Math.cos(c)*p,f=Math.sin(c)*p,g=s.getShallow("cursor");g&&o.attr("cursor",g),this._updateLabel(a,t,e),o.ensureState("emphasis").shape=n({r:u.r+(l.get("scale")&&l.get("scaleSize")||0)},$b(l.getModel("itemStyle"),u)),M(o.ensureState("select"),{x:d,y:f,shape:$b(s.getModel(["select","itemStyle"]),u)}),M(o.ensureState("blur"),{shape:$b(s.getModel(["blur","itemStyle"]),u)});var y=o.getTextGuideLine(),v=o.getTextContent();M(y.ensureState("select"),{x:d,y:f}),M(v.ensureState("select"),{x:d,y:f}),Ns(this,l.get("focus"),l.get("blurScope"))},i.prototype._updateLabel=function(t,e,n){var i=this,r=e.getItemModel(n),o=r.getModel("labelLine"),a=e.getItemVisual(n,"style"),s=a&&a.fill,l=a&&a.opacity;zu(i,Bu(r),{labelFetcher:e.hostModel,labelDataIndex:n,inheritColor:s,defaultOpacity:l,defaultText:t.getFormattedLabel(n,"normal")||e.getName(n)});var u=i.getTextContent();i.setTextConfig({position:null,rotation:null}),u.attr({z2:10}),Qf(this,tg(r),{stroke:s,opacity:tt(o.get(["lineStyle","opacity"]),l,1)})},i}(Tl),Qb=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.ignoreLabelLineUpdate=!0,e}return e(n,t),n.prototype.init=function(){var t=new Pi;this._sectorGroup=t},n.prototype.render=function(t,e,n,i){var r,o=t.getData(),a=this._data,s=this.group;if(!a&&o.count()>0){for(var l=o.getItemLayout(0),u=1;isNaN(l&&l.startAngle)&&u<o.count();++u)l=o.getItemLayout(u);l&&(r=l.startAngle)}o.diff(a).add((function(t){var e=new Jb(o,t,r);o.setItemGraphicEl(t,e),s.add(e)})).update((function(t,e){var n=a.getItemGraphicEl(e);n.updateData(o,t,r),n.off("click"),s.add(n),o.setItemGraphicEl(t,n)})).remove((function(e){xu(a.getItemGraphicEl(e),t,e)})).execute(),Kb(t),"expansion"!==t.get("animationTypeUpdate")&&(this._data=o)},n.prototype.dispose=function(){},n.prototype.containPoint=function(t,e){var n=e.getData().getItemLayout(0);if(n){var i=t[0]-n.cx,r=t[1]-n.cy,o=Math.sqrt(i*i+r*r);return o<=n.r&&o>=n.r0}},n.type="pie",n}(Nd);function tw(t,e,n){e=V(e)&&{coordDimensions:e}||M({},e);var i=t.getSource(),r=im(i,e),o=new tm(r,t);return o.initData(i,n),o}var ew=function(){function t(t,e){this._getDataWithEncodedVisual=t,this._getRawData=e}return t.prototype.getAllNames=function(){var t=this._getRawData();return t.mapArray(t.getName)},t.prototype.containName=function(t){return this._getRawData().indexOfName(t)>=0},t.prototype.indexOfName=function(t){return this._getDataWithEncodedVisual().indexOfName(t)},t.prototype.getItemVisual=function(t,e){return this._getDataWithEncodedVisual().getItemVisual(t,e)},t}(),nw=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.useColorPaletteOnData=!0,e}return e(n,t),n.prototype.init=function(e){t.prototype.init.apply(this,arguments),this.legendVisualProvider=new ew(z(this.getData,this),z(this.getRawData,this)),this._defaultLabelLine(e)},n.prototype.mergeOption=function(){t.prototype.mergeOption.apply(this,arguments)},n.prototype.getInitialData=function(){return tw(this,{coordDimensions:["value"],encodeDefaulter:B(_c,this)})},n.prototype.getDataParams=function(e){var n=this.getData(),i=t.prototype.getDataParams.call(this,e),r=[];return n.each(n.mapDimension("value"),(function(t){r.push(t)})),i.percent=Zi(r,e,n.hostModel.get("percentPrecision")),i.$vars.push("percent"),i},n.prototype._defaultLabelLine=function(t){cr(t,"labelLine",["show"]);var e=t.labelLine,n=t.emphasis.labelLine;e.show=e.show&&t.label.show,n.show=n.show&&t.emphasis.label.show},n.type="series.pie",n.defaultOption={zlevel:0,z:2,legendHoverLink:!0,center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,minShowLabelAngle:0,selectedOffset:10,percentPrecision:2,stillShowZeroSum:!0,left:0,top:0,right:0,bottom:0,width:null,height:null,label:{rotate:0,show:!0,overflow:"truncate",position:"outer",alignTo:"none",edgeDistance:"25%",bleedMargin:10,distanceToLabelLine:5},labelLine:{show:!0,length:15,length2:15,smooth:!1,minTurnAngle:90,maxSurfaceAngle:90,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1},labelLayout:{hideOverlap:!0},emphasis:{scale:!0,scaleSize:5},avoidLabelOverlap:!0,animationType:"expansion",animationDuration:1e3,animationTypeUpdate:"transition",animationEasingUpdate:"cubicInOut",animationDurationUpdate:500,animationEasing:"cubicInOut"},n}(Sd);var iw=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.hasSymbolVisual=!0,e}return e(n,t),n.prototype.getInitialData=function(t,e){return hm(this.getSource(),this,{useEncodeDefaulter:!0})},n.prototype.getProgressive=function(){var t=this.option.progressive;return null==t?this.option.large?5e3:this.get("progressive"):t},n.prototype.getProgressiveThreshold=function(){var t=this.option.progressiveThreshold;return null==t?this.option.large?1e4:this.get("progressiveThreshold"):t},n.prototype.brushSelector=function(t,e,n){return n.point(e.getItemLayout(t))},n.type="series.scatter",n.dependencies=["grid","polar","geo","singleAxis","calendar"],n.defaultOption={coordinateSystem:"cartesian2d",zlevel:0,z:2,legendHoverLink:!0,symbolSize:10,large:!1,largeThreshold:2e3,itemStyle:{opacity:.8},emphasis:{scale:!0},clip:!0,select:{itemStyle:{borderColor:"#212121"}}},n}(Sd),rw=function(){},ow=function(t){function n(e){return t.call(this,e)||this}return e(n,t),n.prototype.getDefaultShape=function(){return new rw},n.prototype.buildPath=function(t,e){var n=e.points,i=e.size,r=this.symbolProxy,o=r.shape,a=t.getContext?t.getContext():t;if(a&&i[0]<4)this._ctx=a;else{this._ctx=null;for(var s=0;s<n.length;){var l=n[s++],u=n[s++];isNaN(l)||isNaN(u)||(this.softClipShape&&!this.softClipShape.contain(l,u)||(o.x=l-i[0]/2,o.y=u-i[1]/2,o.width=i[0],o.height=i[1],r.buildPath(t,o,!0)))}}},n.prototype.afterBrush=function(){var t=this.shape,e=t.points,n=t.size,i=this._ctx;if(i)for(var r=0;r<e.length;){var o=e[r++],a=e[r++];isNaN(o)||isNaN(a)||(this.softClipShape&&!this.softClipShape.contain(o,a)||i.fillRect(o-n[0]/2,a-n[1]/2,n[0],n[1]))}},n.prototype.findDataIndex=function(t,e){for(var n=this.shape,i=n.points,r=n.size,o=Math.max(r[0],4),a=Math.max(r[1],4),s=i.length/2-1;s>=0;s--){var l=2*s,u=i[l]-o/2,h=i[l+1]-a/2;if(t>=u&&e>=h&&t<=u+o&&e<=h+a)return s}return-1},n}(Na),aw=function(){function t(){this.group=new Pi}return t.prototype.isPersistent=function(){return!this._incremental},t.prototype.updateData=function(t,e){this.group.removeAll();var n=new ow({rectHover:!0,cursor:"default"});n.setShape({points:t.getLayout("points")}),this._setCommon(n,t,!1,e),this.group.add(n),this._incremental=null},t.prototype.updateLayout=function(t){if(!this._incremental){var e=t.getLayout("points");this.group.eachChild((function(t){if(null!=t.startIndex){var n=2*(t.endIndex-t.startIndex),i=4*t.startIndex*2;e=new Float32Array(e.buffer,i,n)}t.setShape("points",e)}))}},t.prototype.incrementalPrepareUpdate=function(t){this.group.removeAll(),this._clearIncremental(),t.count()>2e6?(this._incremental||(this._incremental=new tu({silent:!0})),this.group.add(this._incremental)):this._incremental=null},t.prototype.incrementalUpdate=function(t,e,n){var i;this._incremental?(i=new ow,this._incremental.addDisplayable(i,!0)):((i=new ow({rectHover:!0,cursor:"default",startIndex:t.start,endIndex:t.end})).incremental=!0,this.group.add(i)),i.setShape({points:e.getLayout("points")}),this._setCommon(i,e,!!this._incremental,n)},t.prototype._setCommon=function(t,e,n,i){var r=e.hostModel;i=i||{};var o=e.getVisual("symbolSize");t.setShape("size",o instanceof Array?o:[o,o]),t.softClipShape=i.clipShape||null,t.symbolProxy=Ig(e.getVisual("symbol"),0,0,0,0),t.setColor=t.symbolProxy.setColor;var a=t.shape.size[0]<4;t.useStyle(r.getModel("itemStyle").getItemStyle(a?["color","shadowBlur","shadowColor"]:["color"]));var s=e.getVisual("style"),l=s&&s.fill;if(l&&t.setColor(l),!n){var u=rs(t);u.seriesIndex=r.seriesIndex,t.on("mousemove",(function(e){u.dataIndex=null;var n=t.findDataIndex(e.offsetX,e.offsetY);n>=0&&(u.dataIndex=n+(t.startIndex||0))}))}},t.prototype.remove=function(){this._clearIncremental(),this._incremental=null,this.group.removeAll()},t.prototype._clearIncremental=function(){var t=this._incremental;t&&t.clearDisplaybles()},t}(),sw=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n){var i=t.getData();this._updateSymbolDraw(i,t).updateData(i,{clipShape:this._getClipShape(t)}),this._finished=!0},n.prototype.incrementalPrepareRender=function(t,e,n){var i=t.getData();this._updateSymbolDraw(i,t).incrementalPrepareUpdate(i),this._finished=!1},n.prototype.incrementalRender=function(t,e,n){this._symbolDraw.incrementalUpdate(t,e.getData(),{clipShape:this._getClipShape(e)}),this._finished=t.end===e.getData().count()},n.prototype.updateTransform=function(t,e,n){var i=t.getData();if(this.group.dirty(),!this._finished||i.count()>1e4||!this._symbolDraw.isPersistent())return{update:!0};var r=_b("").reset(t,e,n);r.progress&&r.progress({start:0,end:i.count(),count:i.count()},i),this._symbolDraw.updateLayout(i)},n.prototype._getClipShape=function(t){var e=t.coordinateSystem,n=e&&e.getArea&&e.getArea();return t.get("clip",!0)?n:null},n.prototype._updateSymbolDraw=function(t,e){var n=this._symbolDraw,i=e.pipelineContext.large;return n&&i===this._isLargeDraw||(n&&n.remove(),n=this._symbolDraw=i?new aw:new Ux,this._isLargeDraw=i,this.group.removeAll()),this.group.add(n.group),n},n.prototype.remove=function(t,e){this._symbolDraw&&this._symbolDraw.remove(!0),this._symbolDraw=null},n.prototype.dispose=function(){},n.type="scatter",n}(Nd),lw=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.type="grid",n.dependencies=["xAxis","yAxis"],n.layoutMode="box",n.defaultOption={show:!1,zlevel:0,z:0,left:"10%",top:60,right:"10%",bottom:70,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"},n}(uc),uw=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.getCoordSysModel=function(){return this.getReferringComponents("grid",Mr).models[0]},n.type="cartesian2dAxis",n}(uc);D(uw,g_);var hw={show:!0,zlevel:0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#6E7079",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,lineStyle:{color:["#E0E6F1"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}}},cw=w({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},hw),pw=w({boundaryGap:[0,0],axisLine:{show:"auto"},axisTick:{show:"auto"},splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:"#F4F7FD",width:1}}},hw),dw={category:cw,value:pw,time:w({scale:!0,splitNumber:6,axisLabel:{showMinLabel:!1,showMaxLabel:!1,rich:{primary:{fontWeight:"bold"}}},splitLine:{show:!1}},pw),log:I({scale:!0,logBase:10},pw)},fw={value:1,category:1,time:1,log:1};function gw(t,n,i,r){k(fw,(function(o,a){var s=w(w({},dw[a],!0),r,!0),l=function(t){function i(){for(var e=[],i=0;i<arguments.length;i++)e[i]=arguments[i];var r=t.apply(this,e)||this;return r.type=n+"Axis."+a,r}return e(i,t),i.prototype.mergeDefaultAndTheme=function(t,e){var n=rc(this),i=n?ac(t):{};w(t,e.getTheme().get(a+"Axis")),w(t,this.getDefaultOption()),t.type=yw(t),n&&oc(t,i,n)},i.prototype.optionUpdated=function(){"category"===this.option.type&&(this.__ordinalMeta=pm.createByAxisModel(this))},i.prototype.getCategories=function(t){var e=this.option;if("category"===e.type)return t?e.data:this.__ordinalMeta.categories},i.prototype.getOrdinalMeta=function(){return this.__ordinalMeta},i.type=n+"Axis."+a,i.defaultOption=s,i}(i);t.registerComponentModel(l)})),t.registerSubTypeDefaulter(n+"Axis",yw)}function yw(t){return t.type||(t.data?"category":"value")}var vw=function(){function t(t){this.type="cartesian",this._dimList=[],this._axes={},this.name=t||""}return t.prototype.getAxis=function(t){return this._axes[t]},t.prototype.getAxes=function(){return P(this._dimList,(function(t){return this._axes[t]}),this)},t.prototype.getAxesByScale=function(t){return t=t.toLowerCase(),R(this.getAxes(),(function(e){return e.scale.type===t}))},t.prototype.addAxis=function(t){var e=t.dim;this._axes[e]=t,this._dimList.push(e)},t}(),mw=["x","y"];function _w(t){return"interval"===t.type||"time"===t.type}var xw=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="cartesian2d",e.dimensions=mw,e}return e(n,t),n.prototype.calcAffineTransform=function(){this._transform=this._invTransform=null;var t=this.getAxis("x").scale,e=this.getAxis("y").scale;if(_w(t)&&_w(e)){var n=t.getExtent(),i=e.getExtent(),r=this.dataToPoint([n[0],i[0]]),o=this.dataToPoint([n[1],i[1]]),a=n[1]-n[0],s=i[1]-i[0];if(a&&s){var l=(o[0]-r[0])/a,u=(o[1]-r[1])/s,h=r[0]-n[0]*l,c=r[1]-i[0]*u,p=this._transform=[l,0,0,u,h,c];this._invTransform=xe([],p)}}},n.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAxis("x")},n.prototype.containPoint=function(t){var e=this.getAxis("x"),n=this.getAxis("y");return e.contain(e.toLocalCoord(t[0]))&&n.contain(n.toLocalCoord(t[1]))},n.prototype.containData=function(t){return this.getAxis("x").containData(t[0])&&this.getAxis("y").containData(t[1])},n.prototype.dataToPoint=function(t,e,n){n=n||[];var i=t[0],r=t[1];if(this._transform&&null!=i&&isFinite(i)&&null!=r&&isFinite(r))return Rt(n,t,this._transform);var o=this.getAxis("x"),a=this.getAxis("y");return n[0]=o.toGlobalCoord(o.dataToCoord(i)),n[1]=a.toGlobalCoord(a.dataToCoord(r)),n},n.prototype.clampData=function(t,e){var n=this.getAxis("x").scale,i=this.getAxis("y").scale,r=n.getExtent(),o=i.getExtent(),a=n.parse(t[0]),s=i.parse(t[1]);return(e=e||[])[0]=Math.min(Math.max(Math.min(r[0],r[1]),a),Math.max(r[0],r[1])),e[1]=Math.min(Math.max(Math.min(o[0],o[1]),s),Math.max(o[0],o[1])),e},n.prototype.pointToData=function(t,e){if(e=e||[],this._invTransform)return Rt(e,t,this._invTransform);var n=this.getAxis("x"),i=this.getAxis("y");return e[0]=n.coordToData(n.toLocalCoord(t[0])),e[1]=i.coordToData(i.toLocalCoord(t[1])),e},n.prototype.getOtherAxis=function(t){return this.getAxis("x"===t.dim?"y":"x")},n.prototype.getArea=function(){var t=this.getAxis("x").getGlobalExtent(),e=this.getAxis("y").getGlobalExtent(),n=Math.min(t[0],t[1]),i=Math.min(e[0],e[1]),r=Math.max(t[0],t[1])-n,o=Math.max(e[0],e[1])-i;return new Pn(n,i,r,o)},n}(vw),bw=function(t){function n(e,n,i,r,o){var a=t.call(this,e,n,i)||this;return a.index=0,a.type=r||"value",a.position=o||"bottom",a}return e(n,t),n.prototype.isHorizontal=function(){var t=this.position;return"top"===t||"bottom"===t},n.prototype.getGlobalExtent=function(t){var e=this.getExtent();return e[0]=this.toGlobalCoord(e[0]),e[1]=this.toGlobalCoord(e[1]),t&&e[0]>e[1]&&e.reverse(),e},n.prototype.pointToData=function(t,e){return this.coordToData(this.toLocalCoord(t["x"===this.dim?0:1]),e)},n.prototype.setCategorySortInfo=function(t){if("category"!==this.type)return!1;this.model.option.categorySortInfo=t,this.scale.setSortInfo(t)},n}(B_);function ww(t,e,n){n=n||{};var i=t.coordinateSystem,r=e.axis,o={},a=r.getAxesOnZeroOf()[0],s=r.position,l=a?"onZero":s,u=r.dim,h=i.getRect(),c=[h.x,h.x+h.width,h.y,h.y+h.height],p={left:0,right:1,top:0,bottom:1,onZero:2},d=e.get("offset")||0,f="x"===u?[c[2]-d,c[3]+d]:[c[0]-d,c[1]+d];if(a){var g=a.toGlobalCoord(a.dataToCoord(0));f[p.onZero]=Math.max(Math.min(g,f[1]),f[0])}o.position=["y"===u?f[p[l]]:c[0],"x"===u?f[p[l]]:c[3]],o.rotation=Math.PI/2*("x"===u?0:1);o.labelDirection=o.tickDirection=o.nameDirection={top:-1,bottom:1,left:-1,right:1}[s],o.labelOffset=a?f[p[s]]-f[p.onZero]:0,e.get(["axisTick","inside"])&&(o.tickDirection=-o.tickDirection),J(n.labelInside,e.get(["axisLabel","inside"]))&&(o.labelDirection=-o.labelDirection);var y=e.get(["axisLabel","rotate"]);return o.labelRotate="top"===l?-y:y,o.z2=1,o}function Sw(t){return"cartesian2d"===t.get("coordinateSystem")}function Mw(t){var e={xAxisModel:null,yAxisModel:null};return k(e,(function(n,i){var r=i.replace(/Model$/,""),o=t.getReferringComponents(r,Mr).models[0];e[i]=o})),e}var Iw=function(){function t(t,e,n){this.type="grid",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=mw,this._initCartesian(t,e,n),this.model=t}return t.prototype.getRect=function(){return this._rect},t.prototype.update=function(t,e){var n=this._axesMap;this._updateScale(t,this.model),k(n.x,(function(t){s_(t.scale,t.model)})),k(n.y,(function(t){s_(t.scale,t.model)}));var i={};k(n.x,(function(t){Cw(n,"y",t,i)})),k(n.y,(function(t){Cw(n,"x",t,i)})),this.resize(this.model,e)},t.prototype.resize=function(t,e,n){var i=t.getBoxLayoutParams(),r=!n&&t.get("containLabel"),o=nc(i,{width:e.getWidth(),height:e.getHeight()});this._rect=o;var a=this._axesList;function s(){k(a,(function(t){var e=t.isHorizontal(),n=e?[0,o.width]:[0,o.height],i=t.inverse?1:0;t.setExtent(n[i],n[1-i]),function(t,e){var n=t.getExtent(),i=n[0]+n[1];t.toGlobalCoord="x"===t.dim?function(t){return t+e}:function(t){return i-t+e},t.toLocalCoord="x"===t.dim?function(t){return t-e}:function(t){return i-t+e}}(t,e?o.x:o.y)}))}s(),r&&(k(a,(function(t){if(!t.model.get(["axisLabel","inside"])){var e=function(t){var e=t.model,n=t.scale;if(e.get(["axisLabel","show"])&&!n.isBlank()){var i,r,o=n.getExtent();r=n instanceof bm?n.count():(i=n.getTicks()).length;var a,s=t.getLabelModel(),l=u_(t),u=1;r>40&&(u=Math.ceil(r/40));for(var h=0;h<r;h+=u){var c=l(i?i[h]:{value:o[0]+h},h),p=c_(s.getTextRect(c),s.get("rotate")||0);a?a.union(p):a=p}return a}}(t);if(e){var n=t.isHorizontal()?"height":"width",i=t.model.get(["axisLabel","margin"]);o[n]-=e[n]+i,"top"===t.position?o.y+=e.height+i:"left"===t.position&&(o.x+=e.width+i)}}})),s()),k(this._coordsList,(function(t){t.calcAffineTransform()}))},t.prototype.getAxis=function(t,e){var n=this._axesMap[t];if(null!=n)return n[e||0]},t.prototype.getAxes=function(){return this._axesList.slice()},t.prototype.getCartesian=function(t,e){if(null!=t&&null!=e){var n="x"+t+"y"+e;return this._coordsMap[n]}Y(t)&&(e=t.yAxisIndex,t=t.xAxisIndex);for(var i=0,r=this._coordsList;i<r.length;i++)if(r[i].getAxis("x").index===t||r[i].getAxis("y").index===e)return r[i]},t.prototype.getCartesians=function(){return this._coordsList.slice()},t.prototype.convertToPixel=function(t,e,n){var i=this._findConvertTarget(e);return i.cartesian?i.cartesian.dataToPoint(n):i.axis?i.axis.toGlobalCoord(i.axis.dataToCoord(n)):null},t.prototype.convertFromPixel=function(t,e,n){var i=this._findConvertTarget(e);return i.cartesian?i.cartesian.pointToData(n):i.axis?i.axis.coordToData(i.axis.toLocalCoord(n)):null},t.prototype._findConvertTarget=function(t){var e,n,i=t.seriesModel,r=t.xAxisModel||i&&i.getReferringComponents("xAxis",Mr).models[0],o=t.yAxisModel||i&&i.getReferringComponents("yAxis",Mr).models[0],a=t.gridModel,s=this._coordsList;if(i)C(s,e=i.coordinateSystem)<0&&(e=null);else if(r&&o)e=this.getCartesian(r.componentIndex,o.componentIndex);else if(r)n=this.getAxis("x",r.componentIndex);else if(o)n=this.getAxis("y",o.componentIndex);else if(a){a.coordinateSystem===this&&(e=this._coordsList[0])}return{cartesian:e,axis:n}},t.prototype.containPoint=function(t){var e=this._coordsList[0];if(e)return e.containPoint(t)},t.prototype._initCartesian=function(t,e,n){var i=this,r=this,o={left:!1,right:!1,top:!1,bottom:!1},a={x:{},y:{}},s={x:0,y:0};if(e.eachComponent("xAxis",l("x"),this),e.eachComponent("yAxis",l("y"),this),!s.x||!s.y)return this._axesMap={},void(this._axesList=[]);function l(e){return function(n,i){if(Tw(n,t)){var l=n.get("position");"x"===e?"top"!==l&&"bottom"!==l&&(l=o.bottom?"top":"bottom"):"left"!==l&&"right"!==l&&(l=o.left?"right":"left"),o[l]=!0;var u=new bw(e,l_(n),[0,0],n.get("type"),l),h="category"===u.type;u.onBand=h&&n.get("boundaryGap"),u.inverse=n.get("inverse"),n.axis=u,u.model=n,u.grid=r,u.index=i,r._axesList.push(u),a[e][i]=u,s[e]++}}}this._axesMap=a,k(a.x,(function(e,n){k(a.y,(function(r,o){var a="x"+n+"y"+o,s=new xw(a);s.master=i,s.model=t,i._coordsMap[a]=s,i._coordsList.push(s),s.addAxis(e),s.addAxis(r)}))}))},t.prototype._updateScale=function(t,e){function n(t,e){k(f_(t,e.dim),(function(n){e.scale.unionExtentFromData(t,n)}))}k(this._axesList,(function(t){if(t.scale.setExtent(1/0,-1/0),"category"===t.type){var e=t.model.get("categorySortInfo");t.scale.setSortInfo(e)}})),t.eachSeries((function(t){if(Sw(t)){var i=Mw(t),r=i.xAxisModel,o=i.yAxisModel;if(!Tw(r,e)||!Tw(o,e))return;var a=this.getCartesian(r.componentIndex,o.componentIndex),s=t.getData(),l=a.getAxis("x"),u=a.getAxis("y");"list"===s.type&&(n(s,l),n(s,u))}}),this)},t.prototype.getTooltipAxes=function(t){var e=[],n=[];return k(this.getCartesians(),(function(i){var r=null!=t&&"auto"!==t?i.getAxis(t):i.getBaseAxis(),o=i.getOtherAxis(r);C(e,r)<0&&e.push(r),C(n,o)<0&&n.push(o)})),{baseAxes:e,otherAxes:n}},t.create=function(e,n){var i=[];return e.eachComponent("grid",(function(r,o){var a=new t(r,e,n);a.name="grid_"+o,a.resize(r,n,!0),r.coordinateSystem=a,i.push(a)})),e.eachSeries((function(t){if(Sw(t)){var e=Mw(t),n=e.xAxisModel,i=e.yAxisModel,r=n.getCoordSysModel();0;var o=r.coordinateSystem;t.coordinateSystem=o.getCartesian(n.componentIndex,i.componentIndex)}})),i},t.dimensions=mw,t}();function Tw(t,e){return t.getCoordSysModel()===e}function Cw(t,e,n,i){n.getAxesOnZeroOf=function(){return r?[r]:[]};var r,o=t[e],a=n.model,s=a.get(["axisLine","onZero"]),l=a.get(["axisLine","onZeroAxisIndex"]);if(s){if(null!=l)Aw(o[l])&&(r=o[l]);else for(var u in o)if(o.hasOwnProperty(u)&&Aw(o[u])&&!i[h(o[u])]){r=o[u];break}r&&(i[h(r)]=!0)}function h(t){return t.dim+"_"+t.index}}function Aw(t){return t&&"category"!==t.type&&"time"!==t.type&&function(t){var e=t.scale.getExtent(),n=e[0],i=e[1];return!(n>0&&i>0||n<0&&i<0)}(t)}var Dw=Math.PI,Lw=function(){function t(t,e){this.group=new Pi,this.opt=e,this.axisModel=t,I(e,{labelOffset:0,nameDirection:1,tickDirection:1,labelDirection:1,silent:!0,handleAutoShown:function(){return!0}});var n=new Pi({x:e.position[0],y:e.position[1],rotation:e.rotation});n.updateTransform(),this._transformGroup=n}return t.prototype.hasBuilder=function(t){return!!kw[t]},t.prototype.add=function(t){kw[t](this.opt,this.axisModel,this.group,this._transformGroup)},t.prototype.getGroup=function(){return this.group},t.innerTextLayout=function(t,e,n){var i,r,o=ji(e-t);return qi(o)?(r=n>0?"top":"bottom",i="center"):qi(o-Dw)?(r=n>0?"bottom":"top",i="center"):(r="middle",i=o>0&&o<Dw?n>0?"right":"left":n>0?"left":"right"),{rotation:o,textAlign:i,textVerticalAlign:r}},t.makeAxisEventDataBase=function(t){var e={componentType:t.mainType,componentIndex:t.componentIndex};return e[t.mainType+"Index"]=t.componentIndex,e},t.isLabelSilent=function(t){var e=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||e&&e.show)},t}(),kw={axisLine:function(t,e,n,i){var r=e.get(["axisLine","show"]);if("auto"===r&&t.handleAutoShown&&(r=t.handleAutoShown("axisLine")),r){var o=e.axis.getExtent(),a=i.transform,s=[o[0],0],l=[o[1],0];a&&(Rt(s,s,a),Rt(l,l,a));var u=M({lineCap:"round"},e.getModel(["axisLine","lineStyle"]).getLineStyle()),h=new zl({subPixelOptimize:!0,shape:{x1:s[0],y1:s[1],x2:l[0],y2:l[1]},style:u,strokeContainThreshold:t.strokeContainThreshold||5,silent:!0,z2:1});h.anid="line",n.add(h);var c=e.get(["axisLine","symbol"]),p=e.get(["axisLine","symbolSize"]),d=e.get(["axisLine","symbolOffset"])||0;if("number"==typeof d&&(d=[d,d]),null!=c){"string"==typeof c&&(c=[c,c]),"string"!=typeof p&&"number"!=typeof p||(p=[p,p]);var f=p[0],g=p[1];k([{rotate:t.rotation+Math.PI/2,offset:d[0],r:0},{rotate:t.rotation-Math.PI/2,offset:d[1],r:Math.sqrt((s[0]-l[0])*(s[0]-l[0])+(s[1]-l[1])*(s[1]-l[1]))}],(function(e,i){if("none"!==c[i]&&null!=c[i]){var r=Ig(c[i],-f/2,-g/2,f,g,u.stroke,!0),o=e.r+e.offset;r.attr({rotation:e.rotate,x:s[0]+o*Math.cos(t.rotation),y:s[1]-o*Math.sin(t.rotation),silent:!0,z2:11}),n.add(r)}}))}}},axisTickLabel:function(t,e,n,i){var r=function(t,e,n,i){var r=n.axis,o=n.getModel("axisTick"),a=o.get("show");"auto"===a&&i.handleAutoShown&&(a=i.handleAutoShown("axisTick"));if(!a||r.scale.isBlank())return;for(var s=o.getModel("lineStyle"),l=i.tickDirection*o.get("length"),u=Nw(r.getTicksCoords(),e.transform,l,I(s.getLineStyle(),{stroke:n.get(["axisLine","lineStyle","color"])}),"ticks"),h=0;h<u.length;h++)t.add(u[h]);return u}(n,i,e,t),o=function(t,e,n,i){var r=n.axis;if(!J(i.axisLabelShow,n.get(["axisLabel","show"]))||r.scale.isBlank())return;var o=n.getModel("axisLabel"),a=o.get("margin"),s=r.getViewLabels(),l=(J(i.labelRotate,o.get("rotate"))||0)*Dw/180,u=Lw.innerTextLayout(i.rotation,l,i.labelDirection),h=n.getCategories&&n.getCategories(!0),c=[],p=Lw.isLabelSilent(n),d=n.get("triggerEvent");return k(s,(function(s,l){var f="ordinal"===r.scale.type?r.scale.getRawOrdinalNumber(s.tickValue):s.tickValue,g=s.formattedLabel,y=s.rawLabel,v=o;if(h&&h[f]){var m=h[f];Y(m)&&m.textStyle&&(v=new ah(m.textStyle,o,n.ecModel))}var _=v.getTextColor()||n.get(["axisLine","lineStyle","color"]),x=r.dataToCoord(f),b=new Ka({x:x,y:i.labelOffset+i.labelDirection*a,rotation:u.rotation,silent:p,z2:10,style:Vu(v,{text:g,align:v.getShallow("align",!0)||u.textAlign,verticalAlign:v.getShallow("verticalAlign",!0)||v.getShallow("baseline",!0)||u.textVerticalAlign,fill:"function"==typeof _?_("category"===r.type?y:"value"===r.type?f+"":f,l):_})});if(b.anid="label_"+f,d){var w=Lw.makeAxisEventDataBase(n);w.targetType="axisLabel",w.value=y,rs(b).eventData=w}e.add(b),b.updateTransform(),c.push(b),t.add(b),b.decomposeTransform()})),c}(n,i,e,t);!function(t,e,n){if(d_(t.axis))return;var i=t.get(["axisLabel","showMinLabel"]),r=t.get(["axisLabel","showMaxLabel"]);n=n||[];var o=(e=e||[])[0],a=e[1],s=e[e.length-1],l=e[e.length-2],u=n[0],h=n[1],c=n[n.length-1],p=n[n.length-2];!1===i?(Pw(o),Pw(u)):Ow(o,a)&&(i?(Pw(a),Pw(h)):(Pw(o),Pw(u)));!1===r?(Pw(s),Pw(c)):Ow(l,s)&&(r?(Pw(l),Pw(p)):(Pw(s),Pw(c)))}(e,o,r),function(t,e,n,i){var r=n.axis,o=n.getModel("minorTick");if(!o.get("show")||r.scale.isBlank())return;var a=r.getMinorTicksCoords();if(!a.length)return;for(var s=o.getModel("lineStyle"),l=i*o.get("length"),u=I(s.getLineStyle(),I(n.getModel("axisTick").getLineStyle(),{stroke:n.get(["axisLine","lineStyle","color"])})),h=0;h<a.length;h++)for(var c=Nw(a[h],e.transform,l,u,"minorticks_"+h),p=0;p<c.length;p++)t.add(c[p])}(n,i,e,t.tickDirection)},axisName:function(t,e,n,i){var r=J(t.axisName,e.get("name"));if(r){var o,a,s=e.get("nameLocation"),l=t.nameDirection,u=e.getModel("nameTextStyle"),h=e.get("nameGap")||0,c=e.axis.getExtent(),p=c[0]>c[1]?-1:1,d=["start"===s?c[0]-p*h:"end"===s?c[1]+p*h:(c[0]+c[1])/2,Rw(s)?t.labelOffset+l*h:0],f=e.get("nameRotate");null!=f&&(f=f*Dw/180),Rw(s)?o=Lw.innerTextLayout(t.rotation,null!=f?f:t.rotation,l):(o=function(t,e,n,i){var r,o,a=ji(n-t),s=i[0]>i[1],l="start"===e&&!s||"start"!==e&&s;qi(a-Dw/2)?(o=l?"bottom":"top",r="center"):qi(a-1.5*Dw)?(o=l?"top":"bottom",r="center"):(o="middle",r=a<1.5*Dw&&a>Dw/2?l?"left":"right":l?"right":"left");return{rotation:a,textAlign:r,textVerticalAlign:o}}(t.rotation,s,f||0,c),null!=(a=t.axisNameAvailableWidth)&&(a=Math.abs(a/Math.sin(o.rotation)),!isFinite(a)&&(a=null)));var g=u.getFont(),y=e.get("nameTruncate",!0)||{},v=y.ellipsis,m=J(t.nameTruncateMaxWidth,y.maxWidth,a),_=e.get("tooltip",!0),x=e.mainType,b={componentType:x,name:r,$vars:["name"]};b[x+"Index"]=e.componentIndex;var w=new Ka({x:d[0],y:d[1],rotation:o.rotation,silent:Lw.isLabelSilent(e),style:Vu(u,{text:r,font:g,overflow:"truncate",width:m,ellipsis:v,fill:u.getTextColor()||e.get(["axisLine","lineStyle","color"]),align:u.get("align")||o.textAlign,verticalAlign:u.get("verticalAlign")||o.textVerticalAlign}),z2:1});if(w.tooltip=_&&_.show?M({content:r,formatter:function(){return r},formatterParams:b},_):null,w.__fullText=r,w.anid="name",e.get("triggerEvent")){var S=Lw.makeAxisEventDataBase(e);S.targetType="axisName",S.name=r,rs(w).eventData=S}i.add(w),w.updateTransform(),n.add(w),w.decomposeTransform()}}};function Pw(t){t&&(t.ignore=!0)}function Ow(t,e){var n=t&&t.getBoundingRect().clone(),i=e&&e.getBoundingRect().clone();if(n&&i){var r=fe([]);return me(r,r,-t.rotation),n.applyTransform(ye([],r,t.getLocalTransform())),i.applyTransform(ye([],r,e.getLocalTransform())),n.intersect(i)}}function Rw(t){return"middle"===t||"center"===t}function Nw(t,e,n,i,r){for(var o=[],a=[],s=[],l=0;l<t.length;l++){var u=t[l].coord;a[0]=u,a[1]=0,s[0]=u,s[1]=n,e&&(Rt(a,a,e),Rt(s,s,e));var h=new zl({subPixelOptimize:!0,shape:{x1:a[0],y1:a[1],x2:s[0],y2:s[1]},style:i,z2:2,autoBatch:!0,silent:!0});h.anid=r+"_"+t[l].tickValue,o.push(h)}return o}function Ew(t,e){var n={axesInfo:{},seriesInvolved:!1,coordSysAxesInfo:{},coordSysMap:{}};return function(t,e,n){var i=e.getComponent("tooltip"),r=e.getComponent("axisPointer"),o=r.get("link",!0)||[],a=[];k(n.getCoordinateSystems(),(function(n){if(n.axisPointerEnabled){var s=Gw(n.model),l=t.coordSysAxesInfo[s]={};t.coordSysMap[s]=n;var u=n.model.getModel("tooltip",i);if(k(n.getAxes(),B(d,!1,null)),n.getTooltipAxes&&i&&u.get("show")){var h="axis"===u.get("trigger"),c="cross"===u.get(["axisPointer","type"]),p=n.getTooltipAxes(u.get(["axisPointer","axis"]));(h||c)&&k(p.baseAxes,B(d,!c||"cross",h)),c&&k(p.otherAxes,B(d,"cross",!1))}}function d(i,s,h){var c=h.model.getModel("axisPointer",r),p=c.get("show");if(p&&("auto"!==p||i||Fw(c))){null==s&&(s=c.get("triggerTooltip"));var d=(c=i?function(t,e,n,i,r,o){var a=e.getModel("axisPointer"),s={};k(["type","snap","lineStyle","shadowStyle","label","animation","animationDurationUpdate","animationEasingUpdate","z"],(function(t){s[t]=b(a.get(t))})),s.snap="category"!==t.type&&!!o,"cross"===a.get("type")&&(s.type="line");var l=s.label||(s.label={});if(null==l.show&&(l.show=!1),"cross"===r){var u=a.get(["label","show"]);if(l.show=null==u||u,!o){var h=s.lineStyle=a.get("crossStyle");h&&I(l,h.textStyle)}}return t.model.getModel("axisPointer",new ah(s,n,i))}(h,u,r,e,i,s):c).get("snap"),f=Gw(h.model),g=s||d||"category"===h.type,y=t.axesInfo[f]={key:f,axis:h,coordSys:n,axisPointerModel:c,triggerTooltip:s,involveSeries:g,snap:d,useHandle:Fw(c),seriesModels:[],linkGroup:null};l[f]=y,t.seriesInvolved=t.seriesInvolved||g;var v=function(t,e){for(var n=e.model,i=e.dim,r=0;r<t.length;r++){var o=t[r]||{};if(zw(o[i+"AxisId"],n.id)||zw(o[i+"AxisIndex"],n.componentIndex)||zw(o[i+"AxisName"],n.name))return r}}(o,h);if(null!=v){var m=a[v]||(a[v]={axesInfo:{}});m.axesInfo[f]=y,m.mapper=o[v].mapper,y.linkGroup=m}}}}))}(n,t,e),n.seriesInvolved&&function(t,e){e.eachSeries((function(e){var n=e.coordinateSystem,i=e.get(["tooltip","trigger"],!0),r=e.get(["tooltip","show"],!0);n&&"none"!==i&&!1!==i&&"item"!==i&&!1!==r&&!1!==e.get(["axisPointer","show"],!0)&&k(t.coordSysAxesInfo[Gw(n.model)],(function(t){var i=t.axis;n.getAxis(i.dim)===i&&(t.seriesModels.push(e),null==t.seriesDataCount&&(t.seriesDataCount=0),t.seriesDataCount+=e.getData().count())}))}))}(n,t),n}function zw(t,e){return"all"===t||V(t)&&C(t,e)>=0||t===e}function Bw(t){var e=Vw(t);if(e){var n=e.axisPointerModel,i=e.axis.scale,r=n.option,o=n.get("status"),a=n.get("value");null!=a&&(a=i.parse(a));var s=Fw(n);null==o&&(r.status=s?"show":"hide");var l=i.getExtent().slice();l[0]>l[1]&&l.reverse(),(null==a||a>l[1])&&(a=l[1]),a<l[0]&&(a=l[0]),r.value=a,s&&(r.status=e.axis.scale.isBlank()?"hide":"show")}}function Vw(t){var e=(t.ecModel.getComponent("axisPointer")||{}).coordSysAxesInfo;return e&&e.axesInfo[Gw(t)]}function Fw(t){return!!t.get(["handle","show"])}function Gw(t){return t.type+"||"+t.id}var Hw={},Ww=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(e,n,i,r){this.axisPointerClass&&Bw(e),t.prototype.render.apply(this,arguments),this._doUpdateAxisPointerClass(e,i,!0)},n.prototype.updateAxisPointer=function(t,e,n,i){this._doUpdateAxisPointerClass(t,n,!1)},n.prototype.remove=function(t,e){var n=this._axisPointer;n&&n.remove(e)},n.prototype.dispose=function(e,n){this._disposeAxisPointer(n),t.prototype.dispose.apply(this,arguments)},n.prototype._doUpdateAxisPointerClass=function(t,e,i){var r=n.getAxisPointerClass(this.axisPointerClass);if(r){var o=function(t){var e=Vw(t);return e&&e.axisPointerModel}(t);o?(this._axisPointer||(this._axisPointer=new r)).render(t,o,e,i):this._disposeAxisPointer(e)}},n.prototype._disposeAxisPointer=function(t){this._axisPointer&&this._axisPointer.dispose(t),this._axisPointer=null},n.registerAxisPointerClass=function(t,e){Hw[t]=e},n.getAxisPointerClass=function(t){return t&&Hw[t]},n.type="axis",n}(kd),Yw=br();function Xw(t,e,n,i){var r=n.axis;if(!r.scale.isBlank()){var o=n.getModel("splitArea"),a=o.getModel("areaStyle"),s=a.get("color"),l=i.coordinateSystem.getRect(),u=r.getTicksCoords({tickModel:o,clamp:!0});if(u.length){var h=s.length,c=Yw(t).splitAreaColors,p=lt(),d=0;if(c)for(var f=0;f<u.length;f++){var g=c.get(u[f].tickValue);if(null!=g){d=(g+(h-1)*f)%h;break}}var y=r.toGlobalCoord(u[0].coord),v=a.getAreaStyle();s=V(s)?s:[s];for(f=1;f<u.length;f++){var m=r.toGlobalCoord(u[f].coord),_=void 0,x=void 0,b=void 0,w=void 0;r.isHorizontal()?(_=y,x=l.y,b=m-_,w=l.height,y=_+b):(_=l.x,x=y,b=l.width,y=x+(w=m-x));var S=u[f-1].tickValue;null!=S&&p.set(S,d),e.add(new Za({anid:null!=S?"area_"+S:null,shape:{x:_,y:x,width:b,height:w},style:I({fill:s[d]},v),autoBatch:!0,silent:!0})),d=(d+1)%h}Yw(t).splitAreaColors=p}}}function Uw(t){Yw(t).splitAreaColors=null}var Zw=["axisLine","axisTickLabel","axisName"],jw=["splitArea","splitLine","minorSplitLine"],qw=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.axisPointerClass="CartesianAxisPointer",e}return e(n,t),n.prototype.render=function(e,n,i,r){this.group.removeAll();var o=this._axisGroup;if(this._axisGroup=new Pi,this.group.add(this._axisGroup),e.get("show")){var a=e.getCoordSysModel(),s=ww(a,e),l=new Lw(e,M({handleAutoShown:function(t){for(var n=a.coordinateSystem.getCartesians(),i=0;i<n.length;i++){var r=n[i].getOtherAxis(e.axis).type;if("value"===r||"log"===r)return!0}return!1}},s));k(Zw,l.add,l),this._axisGroup.add(l.getGroup()),k(jw,(function(t){e.get([t,"show"])&&Kw[t](this,this._axisGroup,e,a)}),this),Tu(o,this._axisGroup,e),t.prototype.render.call(this,e,n,i,r)}},n.prototype.remove=function(){Uw(this)},n.type="cartesianAxis",n}(Ww),Kw={splitLine:function(t,e,n,i){var r=n.axis;if(!r.scale.isBlank()){var o=n.getModel("splitLine"),a=o.getModel("lineStyle"),s=a.get("color");s=V(s)?s:[s];for(var l=i.coordinateSystem.getRect(),u=r.isHorizontal(),h=0,c=r.getTicksCoords({tickModel:o}),p=[],d=[],f=a.getLineStyle(),g=0;g<c.length;g++){var y=r.toGlobalCoord(c[g].coord);u?(p[0]=y,p[1]=l.y,d[0]=y,d[1]=l.y+l.height):(p[0]=l.x,p[1]=y,d[0]=l.x+l.width,d[1]=y);var v=h++%s.length,m=c[g].tickValue;e.add(new zl({anid:null!=m?"line_"+c[g].tickValue:null,subPixelOptimize:!0,autoBatch:!0,shape:{x1:p[0],y1:p[1],x2:d[0],y2:d[1]},style:I({stroke:s[v]},f),silent:!0}))}}},minorSplitLine:function(t,e,n,i){var r=n.axis,o=n.getModel("minorSplitLine").getModel("lineStyle"),a=i.coordinateSystem.getRect(),s=r.isHorizontal(),l=r.getMinorTicksCoords();if(l.length)for(var u=[],h=[],c=o.getLineStyle(),p=0;p<l.length;p++)for(var d=0;d<l[p].length;d++){var f=r.toGlobalCoord(l[p][d].coord);s?(u[0]=f,u[1]=a.y,h[0]=f,h[1]=a.y+a.height):(u[0]=a.x,u[1]=f,h[0]=a.x+a.width,h[1]=f),e.add(new zl({anid:"minor_line_"+l[p][d].tickValue,subPixelOptimize:!0,autoBatch:!0,shape:{x1:u[0],y1:u[1],x2:h[0],y2:h[1]},style:c,silent:!0}))}},splitArea:function(t,e,n,i){Xw(t,e,n,i)}},$w=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.type="xAxis",n}(qw),Jw=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=$w.type,e}return e(n,t),n.type="yAxis",n}(qw),Qw=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="grid",e}return e(n,t),n.prototype.render=function(t,e){this.group.removeAll(),t.get("show")&&this.group.add(new Za({shape:t.coordinateSystem.getRect(),style:I({fill:t.get("backgroundColor")},t.getItemStyle()),silent:!0,z2:-1}))},n.type="grid",n}(kd),tS={offset:0};function eS(t){t.registerComponentView(Qw),t.registerComponentModel(lw),t.registerCoordinateSystem("cartesian2d",Iw),gw(t,"x",uw,tS),gw(t,"y",uw,tS),t.registerComponentView($w),t.registerComponentView(Jw),t.registerPreprocessor((function(t){t.xAxis&&t.yAxis&&!t.grid&&(t.grid={})}))}function nS(t){t.eachSeriesByType("radar",(function(t){var e=t.getData(),n=[],i=t.coordinateSystem;if(i){var r=i.getIndicatorAxes();k(r,(function(t,o){e.each(e.mapDimension(r[o].dim),(function(t,e){n[e]=n[e]||[];var r=i.dataToPoint(t,o);n[e][o]=iS(r)?r:rS(i)}))})),e.each((function(t){var r=N(n[t],(function(t){return iS(t)}))||rS(i);n[t].push(r.slice()),e.setItemLayout(t,n[t])}))}}))}function iS(t){return!isNaN(t[0])&&!isNaN(t[1])}function rS(t){return[t.cx,t.cy]}function oS(t){var e=t.polar;if(e){V(e)||(e=[e]);var n=[];k(e,(function(e,i){e.indicator?(e.type&&!e.shape&&(e.shape=e.type),t.radar=t.radar||[],V(t.radar)||(t.radar=[t.radar]),t.radar.push(e)):n.push(e)})),t.polar=n}k(t.series,(function(t){t&&"radar"===t.type&&t.polarIndex&&(t.radarIndex=t.polarIndex)}))}var aS=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n){var i=t.coordinateSystem,r=this.group,o=t.getData(),a=this._data;function s(t,e){var n=t.getItemVisual(e,"symbol")||"circle";if("none"!==n){var i=function(t){return V(t)||(t=[+t,+t]),t}(t.getItemVisual(e,"symbolSize")),r=Ig(n,-1,-1,2,2),o=t.getItemVisual(e,"symbolRotate")||0;return r.attr({style:{strokeNoScale:!0},z2:100,scaleX:i[0]/2,scaleY:i[1]/2,rotation:o*Math.PI/180||0}),r}}function l(e,n,i,r,o,a){i.removeAll();for(var l=0;l<n.length-1;l++){var u=s(r,o);u&&(u.__dimIdx=l,e[l]?(u.setPosition(e[l]),Ou[a?"initProps":"updateProps"](u,{x:n[l][0],y:n[l][1]},t,o)):u.setPosition(n[l]),i.add(u))}}function u(t){return P(t,(function(t){return[i.cx,i.cy]}))}o.diff(a).add((function(e){var n=o.getItemLayout(e);if(n){var i=new Pl,r=new Rl,a={shape:{points:n}};i.shape.points=u(n),r.shape.points=u(n),vu(i,a,t,e),vu(r,a,t,e);var s=new Pi,h=new Pi;s.add(r),s.add(i),s.add(h),l(r.shape.points,n,h,o,e,!0),o.setItemGraphicEl(e,s)}})).update((function(e,n){var i=a.getItemGraphicEl(n),r=i.childAt(0),s=i.childAt(1),u=i.childAt(2),h={shape:{points:o.getItemLayout(e)}};h.shape.points&&(l(r.shape.points,h.shape.points,u,o,e,!1),yu(r,h,t),yu(s,h,t),o.setItemGraphicEl(e,i))})).remove((function(t){r.remove(a.getItemGraphicEl(t))})).execute(),o.eachItemGraphicEl((function(t,e){var n=o.getItemModel(e),i=t.childAt(0),a=t.childAt(1),s=t.childAt(2),l=o.getItemVisual(e,"style"),u=l.fill;r.add(t),i.useStyle(I(n.getModel("lineStyle").getLineStyle(),{fill:"none",stroke:u})),Vs(i,n,"lineStyle"),Vs(a,n,"areaStyle");var h=n.getModel("areaStyle"),c=h.isEmpty()&&h.parentModel.isEmpty();a.ignore=c,k(["emphasis","select","blur"],(function(t){var e=n.getModel([t,"areaStyle"]),i=e.isEmpty()&&e.parentModel.isEmpty();a.ensureState(t).ignore=i&&c})),a.useStyle(I(h.getAreaStyle(),{fill:u,opacity:.7,decal:l.decal}));var p=n.getModel("emphasis"),d=p.getModel("itemStyle").getItemStyle();s.eachChild((function(t){if(t instanceof Fa){var i=t.style;t.useStyle(M({image:i.image,x:i.x,y:i.y,width:i.width,height:i.height},l))}else t.useStyle(l),t.setColor(u);t.ensureState("emphasis").style=b(d);var r=o.get(o.dimensions[t.__dimIdx],e);(null==r||isNaN(r))&&(r=""),zu(t,Bu(n),{labelFetcher:o.hostModel,labelDataIndex:e,labelDimIndex:t.__dimIdx,defaultText:r,inheritColor:u,defaultOpacity:l.opacity})})),Ns(t,p.get("focus"),p.get("blurScope"))})),this._data=o},n.prototype.remove=function(){this.group.removeAll(),this._data=null},n.type="radar",n}(Nd),sS=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.useColorPaletteOnData=!0,e.hasSymbolVisual=!0,e}return e(n,t),n.prototype.init=function(e){t.prototype.init.apply(this,arguments),this.legendVisualProvider=new ew(z(this.getData,this),z(this.getRawData,this))},n.prototype.getInitialData=function(t,e){return tw(this,{generateCoord:"indicator_",generateCoordCount:1/0})},n.prototype.formatTooltip=function(t,e,n){var i=this.getData(),r=this.coordinateSystem.getIndicatorAxes(),o=this.getData().getName(t),a=""===o?this.name:o,s=vd(this,t);return hd("section",{header:a,sortBlocks:!0,blocks:P(r,(function(e){var n=i.get(i.mapDimension(e.dim),t);return hd("nameValue",{markerType:"subItem",markerColor:s,name:e.name,value:n,sortParam:n})}))})},n.prototype.getTooltipPosition=function(t){if(null!=t)for(var e=this.getData(),n=this.coordinateSystem,i=e.getValues(P(n.dimensions,(function(t){return e.mapDimension(t)})),t),r=0,o=i.length;r<o;r++)if(!isNaN(i[r])){var a=n.getIndicatorAxes();return n.coordToPoint(a[r].dataToCoord(i[r]),r)}},n.type="series.radar",n.dependencies=["radar"],n.defaultOption={zlevel:0,z:2,coordinateSystem:"radar",legendHoverLink:!0,radarIndex:0,lineStyle:{width:2,type:"solid"},label:{position:"top"},symbol:"emptyCircle",symbolSize:4},n}(Sd),lS=dw.value;function uS(t,e){return I({show:e},t)}var hS=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.optionUpdated=function(){var t=this.get("boundaryGap"),e=this.get("splitNumber"),n=this.get("scale"),i=this.get("axisLine"),r=this.get("axisTick"),o=this.get("axisLabel"),a=this.get("axisName"),s=this.get(["axisName","show"]),l=this.get(["axisName","formatter"]),u=this.get("axisNameGap"),h=this.get("triggerEvent"),c=P(this.get("indicator")||[],(function(c){null!=c.max&&c.max>0&&!c.min?c.min=0:null!=c.min&&c.min<0&&!c.max&&(c.max=0);var p=a;null!=c.color&&(p=I({color:c.color},a));var d=w(b(c),{boundaryGap:t,splitNumber:e,scale:n,axisLine:i,axisTick:r,axisLabel:o,name:c.text,nameLocation:"end",nameGap:u,nameTextStyle:p,triggerEvent:h},!1);if(s||(d.name=""),"string"==typeof l){var f=d.name;d.name=l.replace("{value}",null!=f?f:"")}else"function"==typeof l&&(d.name=l(d.name,d));var g=new ah(d,null,this.ecModel);return D(g,g_.prototype),g.mainType="radar",g.componentIndex=this.componentIndex,g}),this);this._indicatorModels=c},n.prototype.getIndicatorModels=function(){return this._indicatorModels},n.type="radar",n.defaultOption={zlevel:0,z:0,center:["50%","50%"],radius:"75%",startAngle:90,axisName:{show:!0},boundaryGap:[0,0],splitNumber:5,axisNameGap:15,scale:!1,shape:"polygon",axisLine:w({lineStyle:{color:"#bbb"}},lS.axisLine),axisLabel:uS(lS.axisLabel,!1),axisTick:uS(lS.axisTick,!1),splitLine:uS(lS.splitLine,!0),splitArea:uS(lS.splitArea,!0),indicator:[]},n}(uc),cS=["axisLine","axisTickLabel","axisName"],pS=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n){this.group.removeAll(),this._buildAxes(t),this._buildSplitLineAndArea(t)},n.prototype._buildAxes=function(t){var e=t.coordinateSystem;k(P(e.getIndicatorAxes(),(function(t){return new Lw(t.model,{position:[e.cx,e.cy],rotation:t.angle,labelDirection:-1,tickDirection:-1,nameDirection:1})})),(function(t){k(cS,t.add,t),this.group.add(t.getGroup())}),this)},n.prototype._buildSplitLineAndArea=function(t){var e=t.coordinateSystem,n=e.getIndicatorAxes();if(n.length){var i=t.get("shape"),r=t.getModel("splitLine"),o=t.getModel("splitArea"),a=r.getModel("lineStyle"),s=o.getModel("areaStyle"),l=r.get("show"),u=o.get("show"),h=a.get("color"),c=s.get("color"),p=V(h)?h:[h],d=V(c)?c:[c],f=[],g=[];if("circle"===i)for(var y=n[0].getTicksCoords(),v=e.cx,m=e.cy,_=0;_<y.length;_++){if(l)f[A(f,p,_)].push(new ul({shape:{cx:v,cy:m,r:y[_].coord}}));if(u&&_<y.length-1)g[A(g,d,_)].push(new Al({shape:{cx:v,cy:m,r0:y[_].coord,r:y[_+1].coord}}))}else{var x,b=P(n,(function(t,n){var i=t.getTicksCoords();return x=null==x?i.length-1:Math.min(i.length-1,x),P(i,(function(t){return e.coordToPoint(t.coord,n)}))})),w=[];for(_=0;_<=x;_++){for(var S=[],M=0;M<n.length;M++)S.push(b[M][_]);if(S[0]&&S.push(S[0].slice()),l)f[A(f,p,_)].push(new Rl({shape:{points:S}}));if(u&&w)g[A(g,d,_-1)].push(new Pl({shape:{points:S.concat(w)}}));w=S.slice().reverse()}}var T=a.getLineStyle(),C=s.getAreaStyle();k(g,(function(t,e){this.group.add(pu(t,{style:I({stroke:"none",fill:d[e%d.length]},C),silent:!0}))}),this),k(f,(function(t,e){this.group.add(pu(t,{style:I({fill:"none",stroke:p[e%p.length]},T),silent:!0}))}),this)}function A(t,e,n){var i=n%e.length;return t[i]=t[i]||[],i}},n.type="radar",n}(kd),dS=function(t){function n(e,n,i){var r=t.call(this,e,n,i)||this;return r.type="value",r.angle=0,r.name="",r}return e(n,t),n}(B_),fS=function(){function t(t,e,n){this.dimensions=[],this._model=t,this._indicatorAxes=P(t.getIndicatorModels(),(function(t,e){var n="indicator_"+e,i=new dS(n,new Sm);return i.name=t.get("name"),i.model=t,t.axis=i,this.dimensions.push(n),i}),this),this.resize(t,n)}return t.prototype.getIndicatorAxes=function(){return this._indicatorAxes},t.prototype.dataToPoint=function(t,e){var n=this._indicatorAxes[e];return this.coordToPoint(n.dataToCoord(t),e)},t.prototype.coordToPoint=function(t,e){var n=this._indicatorAxes[e].angle;return[this.cx+t*Math.cos(n),this.cy-t*Math.sin(n)]},t.prototype.pointToData=function(t){var e=t[0]-this.cx,n=t[1]-this.cy,i=Math.sqrt(e*e+n*n);e/=i,n/=i;for(var r,o=Math.atan2(-n,e),a=1/0,s=-1,l=0;l<this._indicatorAxes.length;l++){var u=this._indicatorAxes[l],h=Math.abs(o-u.angle);h<a&&(r=u,s=l,a=h)}return[s,+(r&&r.coordToData(i))]},t.prototype.resize=function(t,e){var n=t.get("center"),i=e.getWidth(),r=e.getHeight(),o=Math.min(i,r)/2;this.cx=Gi(n[0],i),this.cy=Gi(n[1],r),this.startAngle=t.get("startAngle")*Math.PI/180;var a=t.get("radius");"string"!=typeof a&&"number"!=typeof a||(a=[0,a]),this.r0=Gi(a[0],o),this.r=Gi(a[1],o),k(this._indicatorAxes,(function(t,e){t.setExtent(this.r0,this.r);var n=this.startAngle+e*Math.PI*2/this._indicatorAxes.length;n=Math.atan2(Math.sin(n),Math.cos(n)),t.angle=n}),this)},t.prototype.update=function(t,e){var n=this._indicatorAxes,i=this._model;k(n,(function(t){t.scale.setExtent(1/0,-1/0)})),t.eachSeriesByType("radar",(function(e,r){if("radar"===e.get("coordinateSystem")&&t.getComponent("radar",e.get("radarIndex"))===i){var o=e.getData();k(n,(function(t){t.scale.unionExtentFromData(o,o.mapDimension(t.dim))}))}}),this);var r=i.get("splitNumber");function o(t){var e=Math.pow(10,Math.floor(Math.log(t)/Math.LN10)),n=t/e;return 2===n?n=5:n*=2,n*e}k(n,(function(t,e){var n=a_(t.scale,t.model).extent;s_(t.scale,t.model);var i=t.model,a=t.scale,s=o_(a,i.get("min",!0)),l=o_(a,i.get("max",!0)),u=a.getInterval();if(null!=s&&null!=l)a.setExtent(+s,+l),a.setInterval((l-s)/r);else if(null!=s){var h=void 0;do{h=s+u*r,a.setExtent(+s,h),a.setInterval(u),u=o(u)}while(h<n[1]&&isFinite(h)&&isFinite(n[1]))}else if(null!=l){var c=void 0;do{c=l-u*r,a.setExtent(c,+l),a.setInterval(u),u=o(u)}while(c>n[0]&&isFinite(c)&&isFinite(n[0]))}else{a.getTicks().length-1>r&&(u=o(u));c=Hi((h=Math.ceil(n[1]/u)*u)-u*r);a.setExtent(c,h),a.setInterval(u)}}))},t.prototype.convertToPixel=function(t,e,n){return console.warn("Not implemented."),null},t.prototype.convertFromPixel=function(t,e,n){return console.warn("Not implemented."),null},t.prototype.containPoint=function(t){return console.warn("Not implemented."),!1},t.create=function(e,n){var i=[];return e.eachComponent("radar",(function(r){var o=new t(r,e,n);i.push(o),r.coordinateSystem=o})),e.eachSeriesByType("radar",(function(t){"radar"===t.get("coordinateSystem")&&(t.coordinateSystem=i[t.get("radarIndex")||0])})),i},t.dimensions=[],t}();function gS(t){t.registerCoordinateSystem("radar",fS),t.registerComponentModel(hS),t.registerComponentView(pS)}var yS="\0_ec_interaction_mutex";function vS(t,e){return!!mS(t)[e]}function mS(t){return t[yS]||(t[yS]={})}uv({type:"takeGlobalCursor",event:"globalCursorTaken",update:"update"},(function(){}));var _S=function(t){function n(e){var n=t.call(this)||this;n._zr=e;var i=z(n._mousedownHandler,n),r=z(n._mousemoveHandler,n),o=z(n._mouseupHandler,n),a=z(n._mousewheelHandler,n),s=z(n._pinchHandler,n);return n.enable=function(t,n){this.disable(),this._opt=I(b(n)||{},{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),null==t&&(t=!0),!0!==t&&"move"!==t&&"pan"!==t||(e.on("mousedown",i),e.on("mousemove",r),e.on("mouseup",o)),!0!==t&&"scale"!==t&&"zoom"!==t||(e.on("mousewheel",a),e.on("pinch",s))},n.disable=function(){e.off("mousedown",i),e.off("mousemove",r),e.off("mouseup",o),e.off("mousewheel",a),e.off("pinch",s)},n}return e(n,t),n.prototype.isDragging=function(){return this._dragging},n.prototype.isPinching=function(){return this._pinching},n.prototype.setPointerChecker=function(t){this.pointerChecker=t},n.prototype.dispose=function(){this.disable()},n.prototype._mousedownHandler=function(t){if(!(ne(t)||t.target&&t.target.draggable)){var e=t.offsetX,n=t.offsetY;this.pointerChecker&&this.pointerChecker(t,e,n)&&(this._x=e,this._y=n,this._dragging=!0)}},n.prototype._mousemoveHandler=function(t){if(this._dragging&&wS("moveOnMouseMove",t,this._opt)&&"pinch"!==t.gestureEvent&&!vS(this._zr,"globalPan")){var e=t.offsetX,n=t.offsetY,i=this._x,r=this._y,o=e-i,a=n-r;this._x=e,this._y=n,this._opt.preventDefaultMouseMove&&ee(t.event),bS(this,"pan","moveOnMouseMove",t,{dx:o,dy:a,oldX:i,oldY:r,newX:e,newY:n,isAvailableBehavior:null})}},n.prototype._mouseupHandler=function(t){ne(t)||(this._dragging=!1)},n.prototype._mousewheelHandler=function(t){var e=wS("zoomOnMouseWheel",t,this._opt),n=wS("moveOnMouseWheel",t,this._opt),i=t.wheelDelta,r=Math.abs(i),o=t.offsetX,a=t.offsetY;if(0!==i&&(e||n)){if(e){var s=r>3?1.4:r>1?1.2:1.1;xS(this,"zoom","zoomOnMouseWheel",t,{scale:i>0?s:1/s,originX:o,originY:a,isAvailableBehavior:null})}if(n){var l=Math.abs(i);xS(this,"scrollMove","moveOnMouseWheel",t,{scrollDelta:(i>0?1:-1)*(l>3?.4:l>1?.15:.05),originX:o,originY:a,isAvailableBehavior:null})}}},n.prototype._pinchHandler=function(t){vS(this._zr,"globalPan")||xS(this,"zoom",null,t,{scale:t.pinchScale>1?1.1:1/1.1,originX:t.pinchX,originY:t.pinchY,isAvailableBehavior:null})},n}(Ft);function xS(t,e,n,i,r){t.pointerChecker&&t.pointerChecker(i,r.originX,r.originY)&&(ee(i.event),bS(t,e,n,i,r))}function bS(t,e,n,i,r){r.isAvailableBehavior=z(wS,null,n,i),t.trigger(e,r)}function wS(t,e,n){var i=n[t];return!t||i&&(!G(i)||e.event[i+"Key"])}function SS(t,e,n){var i=t.target;i.x+=e,i.y+=n,i.dirty()}function MS(t,e,n,i){var r=t.target,o=t.zoomLimit,a=t.zoom=t.zoom||1;if(a*=e,o){var s=o.min||0,l=o.max||1/0;a=Math.max(Math.min(l,a),s)}var u=a/t.zoom;t.zoom=a,r.x-=(n-r.x)*(u-1),r.y-=(i-r.y)*(u-1),r.scaleX*=u,r.scaleY*=u,r.dirty()}var IS={axisPointer:1,tooltip:1,brush:1};function TS(t,e,n){var i=e.getComponentByElement(t.topTarget),r=i&&i.coordinateSystem;return i&&i!==n&&!IS.hasOwnProperty(i.mainType)&&r&&r.model!==n}for(var CS=[126,25],AS=[[[0,3.5],[7,11.2],[15,11.9],[30,7],[42,.7],[52,.7],[56,7.7],[59,.7],[64,.7],[64,0],[5,0],[0,3.5]],[[13,16.1],[19,14.7],[16,21.7],[11,23.1],[13,16.1]],[[12,32.2],[14,38.5],[15,38.5],[13,32.2],[12,32.2]],[[16,47.6],[12,53.2],[13,53.2],[18,47.6],[16,47.6]],[[6,64.4],[8,70],[9,70],[8,64.4],[6,64.4]],[[23,82.6],[29,79.8],[30,79.8],[25,82.6],[23,82.6]],[[37,70.7],[43,62.3],[44,62.3],[39,70.7],[37,70.7]],[[48,51.1],[51,45.5],[53,45.5],[50,51.1],[48,51.1]],[[51,35],[51,28.7],[53,28.7],[53,35],[51,35]],[[52,22.4],[55,17.5],[56,17.5],[53,22.4],[52,22.4]],[[58,12.6],[62,7],[63,7],[60,12.6],[58,12.6]],[[0,3.5],[0,93.1],[64,93.1],[64,0],[63,0],[63,92.4],[1,92.4],[1,3.5],[0,3.5]]],DS=0;DS<AS.length;DS++)for(var LS=0;LS<AS[DS].length;LS++)AS[DS][LS][0]/=10.5,AS[DS][LS][1]/=-14,AS[DS][LS][0]+=CS[0],AS[DS][LS][1]+=CS[1];var kS={"南海诸岛":[32,80],"广东":[0,-10],"香港":[10,5],"澳门":[-10,10],"天津":[5,5]};var PS={Russia:[100,60],"United States":[-99,38],"United States of America":[-99,38]};var OS=[[[123.45165252685547,25.73527164402261],[123.49731445312499,25.73527164402261],[123.49731445312499,25.750734064600884],[123.45165252685547,25.750734064600884],[123.45165252685547,25.73527164402261]]];var RS=br(),NS={load:function(t,e,n){var i=RS(e).parsed;if(i)return i;var r,o=e.specialAreas||{},a=e.geoJSON;try{r=a?w_(a,n):[]}catch(t){throw new Error("Invalid geoJson format\n"+t.message)}return function(t,e){"china"===t&&e.push(new x_("南海诸岛",P(AS,(function(t){return{type:"polygon",exterior:t}})),CS))}(t,r),k(r,(function(e){var n=e.name;!function(t,e){if("china"===t){var n=kS[e.name];if(n){var i=e.center;i[0]+=n[0]/10.5,i[1]+=-n[1]/14}}}(t,e),function(t,e){if("world"===t){var n=PS[e.name];if(n){var i=e.center;i[0]=n[0],i[1]=n[1]}}}(t,e),function(t,e){"china"===t&&"台湾"===e.name&&e.geometries.push({type:"polygon",exterior:OS[0]})}(t,e);var i=o[n];i&&e.transformTo(i.left,i.top,i.width,i.height)})),RS(e).parsed={regions:r,boundingRect:ES(r)}}};function ES(t){for(var e,n=0;n<t.length;n++){var i=t[n].getBoundingRect();(e=e||i.clone()).union(i)}return e}var zS,BS=/[\s,]+/,VS=function(){function t(){this._defs={},this._root=null,this._isDefine=!1,this._isText=!1}return t.prototype.parse=function(t,e){e=e||{};var n=bf(t);if(!n)throw new Error("Illegal svg");var i=new Pi;this._root=i;var r=n.getAttribute("viewBox")||"",o=parseFloat(n.getAttribute("width")||e.width),a=parseFloat(n.getAttribute("height")||e.height);isNaN(o)&&(o=null),isNaN(a)&&(a=null),YS(n,i,null,!0);for(var s,l,u=n.firstChild;u;)this._parseNode(u,i),u=u.nextSibling;if(r){var h=rt(r).split(BS);h.length>=4&&(s={x:parseFloat(h[0]||0),y:parseFloat(h[1]||0),width:parseFloat(h[2]),height:parseFloat(h[3])})}if(s&&null!=o&&null!=a&&(l=qS(s,o,a),!e.ignoreViewBox)){var c=i;(i=new Pi).add(c),c.scaleX=c.scaleY=l.scale,c.x=l.x,c.y=l.y}return e.ignoreRootClip||null==o||null==a||i.setClipPath(new Za({shape:{x:0,y:0,width:o,height:a}})),{root:i,width:o,height:a,viewBoxRect:s,viewBoxTransform:l}},t.prototype._parseNode=function(t,e){var n,i,r=t.nodeName.toLowerCase();if("defs"===r?this._isDefine=!0:"text"===r&&(this._isText=!0),this._isDefine){if(i=FS[r]){var o=i.call(this,t),a=t.getAttribute("id");a&&(this._defs[a]=o)}}else(i=zS[r])&&(n=i.call(this,t,e),e.add(n));if(n)for(var s=t.firstChild;s;)1===s.nodeType&&this._parseNode(s,n),3===s.nodeType&&this._isText&&this._parseText(s,n),s=s.nextSibling;"defs"===r?this._isDefine=!1:"text"===r&&(this._isText=!1)},t.prototype._parseText=function(t,e){if(1===t.nodeType){var n=t.getAttribute("dx")||0,i=t.getAttribute("dy")||0;this._textX+=parseFloat(n),this._textY+=parseFloat(i)}var r=new za({style:{text:t.textContent},x:this._textX||0,y:this._textY||0});GS(e,r),YS(t,r,this._defs);var o=r.style,a=o.fontSize;a&&a<9&&(o.fontSize=9,r.scaleX*=a/9,r.scaleY*=a/9);var s=(o.fontSize||o.fontFamily)&&[o.fontStyle,o.fontWeight,(o.fontSize||12)+"px",o.fontFamily||"sans-serif"].join(" ");o.font=s;var l=r.getBoundingRect();return this._textX+=l.width,e.add(r),r},t.internalField=void(zS={g:function(t,e){var n=new Pi;return GS(e,n),YS(t,n,this._defs),n},rect:function(t,e){var n=new Za;return GS(e,n),YS(t,n,this._defs),n.setShape({x:parseFloat(t.getAttribute("x")||"0"),y:parseFloat(t.getAttribute("y")||"0"),width:parseFloat(t.getAttribute("width")||"0"),height:parseFloat(t.getAttribute("height")||"0")}),n},circle:function(t,e){var n=new ul;return GS(e,n),YS(t,n,this._defs),n.setShape({cx:parseFloat(t.getAttribute("cx")||"0"),cy:parseFloat(t.getAttribute("cy")||"0"),r:parseFloat(t.getAttribute("r")||"0")}),n},line:function(t,e){var n=new zl;return GS(e,n),YS(t,n,this._defs),n.setShape({x1:parseFloat(t.getAttribute("x1")||"0"),y1:parseFloat(t.getAttribute("y1")||"0"),x2:parseFloat(t.getAttribute("x2")||"0"),y2:parseFloat(t.getAttribute("y2")||"0")}),n},ellipse:function(t,e){var n=new cl;return GS(e,n),YS(t,n,this._defs),n.setShape({cx:parseFloat(t.getAttribute("cx")||"0"),cy:parseFloat(t.getAttribute("cy")||"0"),rx:parseFloat(t.getAttribute("rx")||"0"),ry:parseFloat(t.getAttribute("ry")||"0")}),n},polygon:function(t,e){var n,i=t.getAttribute("points");i&&(n=HS(i));var r=new Pl({shape:{points:n||[]}});return GS(e,r),YS(t,r,this._defs),r},polyline:function(t,e){var n=new Na;GS(e,n),YS(t,n,this._defs);var i,r=t.getAttribute("points");return r&&(i=HS(r)),new Rl({shape:{points:i||[]}})},image:function(t,e){var n=new Fa;return GS(e,n),YS(t,n,this._defs),n.setStyle({image:t.getAttribute("xlink:href"),x:+t.getAttribute("x"),y:+t.getAttribute("y"),width:+t.getAttribute("width"),height:+t.getAttribute("height")}),n},text:function(t,e){var n=t.getAttribute("x")||"0",i=t.getAttribute("y")||"0",r=t.getAttribute("dx")||"0",o=t.getAttribute("dy")||"0";this._textX=parseFloat(n)+parseFloat(r),this._textY=parseFloat(i)+parseFloat(o);var a=new Pi;return GS(e,a),YS(t,a,this._defs),a},tspan:function(t,e){var n=t.getAttribute("x"),i=t.getAttribute("y");null!=n&&(this._textX=parseFloat(n)),null!=i&&(this._textY=parseFloat(i));var r=t.getAttribute("dx")||0,o=t.getAttribute("dy")||0,a=new Pi;return GS(e,a),YS(t,a,this._defs),this._textX+=r,this._textY+=o,a},path:function(t,e){var n=sl(t.getAttribute("d")||"");return GS(e,n),YS(t,n,this._defs),n}}),t}(),FS={lineargradient:function(t){var e=parseInt(t.getAttribute("x1")||"0",10),n=parseInt(t.getAttribute("y1")||"0",10),i=parseInt(t.getAttribute("x2")||"10",10),r=parseInt(t.getAttribute("y2")||"0",10),o=new Ul(e,n,i,r);return function(t,e){var n=t.firstChild;for(;n;){if(1===n.nodeType){var i=n.getAttribute("offset"),r=void 0;r=i.indexOf("%")>0?parseInt(i,10)/100:i?parseFloat(i):0;var o=n.getAttribute("stop-color")||"#000000";e.colorStops.push({offset:r,color:o})}n=n.nextSibling}}(t,o),o}};function GS(t,e){t&&t.__inheritedStyle&&(e.__inheritedStyle||(e.__inheritedStyle={}),I(e.__inheritedStyle,t.__inheritedStyle))}function HS(t){for(var e=rt(t).split(BS),n=[],i=0;i<e.length;i+=2){var r=parseFloat(e[i]),o=parseFloat(e[i+1]);n.push([r,o])}return n}var WS={fill:"fill",stroke:"stroke","stroke-width":"lineWidth",opacity:"opacity","fill-opacity":"fillOpacity","stroke-opacity":"strokeOpacity","stroke-dasharray":"lineDash","stroke-dashoffset":"lineDashOffset","stroke-linecap":"lineCap","stroke-linejoin":"lineJoin","stroke-miterlimit":"miterLimit","font-family":"fontFamily","font-size":"fontSize","font-style":"fontStyle","font-weight":"fontWeight","text-align":"textAlign","alignment-baseline":"textBaseline"};function YS(t,e,n,i){var r=e,o=r.__inheritedStyle||{};if(1===t.nodeType&&(function(t,e){var n=t.getAttribute("transform");if(n){n=n.replace(/,/g," ");var i=[],r=null;n.replace(ZS,(function(t,e,n){return i.push(e,n),""}));for(var o=i.length-1;o>0;o-=2){var a=i[o],s=void 0;switch(r=r||[1,0,0,1,0,0],i[o-1]){case"translate":s=rt(a).split(BS),ve(r,r,[parseFloat(s[0]),parseFloat(s[1]||"0")]);break;case"scale":s=rt(a).split(BS),_e(r,r,[parseFloat(s[0]),parseFloat(s[1]||s[0])]);break;case"rotate":s=rt(a).split(BS),me(r,r,parseFloat(s[0]));break;case"skew":s=rt(a).split(BS),console.warn("Skew transform is not supported yet");break;case"matrix":s=rt(a).split(BS),r[0]=parseFloat(s[0]),r[1]=parseFloat(s[1]),r[2]=parseFloat(s[2]),r[3]=parseFloat(s[3]),r[4]=parseFloat(s[4]),r[5]=parseFloat(s[5])}}e.setLocalTransform(r)}}(t,e),M(o,function(t){var e=t.getAttribute("style"),n={};if(!e)return n;var i,r={};jS.lastIndex=0;for(;null!=(i=jS.exec(e));)r[i[1]]=i[2];for(var o in WS)WS.hasOwnProperty(o)&&null!=r[o]&&(n[WS[o]]=r[o]);return n}(t)),!i))for(var a in WS)if(WS.hasOwnProperty(a)){var s=t.getAttribute(a);null!=s&&(o[WS[a]]=s)}r.style=r.style||{},null!=o.fill&&(r.style.fill=US(o.fill,n)),null!=o.stroke&&(r.style.stroke=US(o.stroke,n)),k(["lineWidth","opacity","fillOpacity","strokeOpacity","miterLimit","fontSize"],(function(t){null!=o[t]&&(r.style[t]=parseFloat(o[t]))})),o.textBaseline&&"auto"!==o.textBaseline||(o.textBaseline="alphabetic"),"alphabetic"===o.textBaseline&&(o.textBaseline="bottom"),"start"===o.textAlign&&(o.textAlign="left"),"end"===o.textAlign&&(o.textAlign="right"),k(["lineDashOffset","lineCap","lineJoin","fontWeight","fontFamily","fontStyle","textAlign","textBaseline"],(function(t){null!=o[t]&&(r.style[t]=o[t])})),o.lineDash&&(r.style.lineDash=P(rt(o.lineDash).split(BS),(function(t){return parseFloat(t)}))),r.__inheritedStyle=o}var XS=/url\(\s*#(.*?)\)/;function US(t,e){var n=e&&t&&t.match(XS);return n?e[rt(n[1])]:t}var ZS=/(translate|scale|rotate|skewX|skewY|matrix)\(([\-\s0-9\.e,]*)\)/g;var jS=/([^\s:;]+)\s*:\s*([^:;]+)/g;function qS(t,e,n){var i=e/t.width,r=n/t.height,o=Math.min(i,r);return{scale:o,x:-(t.x+t.width/2)*o+e/2,y:-(t.y+t.height/2)*o+n/2}}var KS=br();function $S(t,e){var n,i,r,o,a=t.svgXML;try{it(null!=(i=(n=a&&(r=a,o={ignoreViewBox:!0,ignoreRootClip:!0},(new VS).parse(r,o))||{}).root))}catch(t){throw new Error("Invalid svg format\n"+t.message)}var s=n.width,l=n.height,u=n.viewBoxRect;if(e||(e=null==s||null==l?i.getBoundingRect():new Pn(0,0,0,0),null!=s&&(e.width=s),null!=l&&(e.height=l)),u){var h=qS(u,e.width,e.height),c=i;(i=new Pi).add(c),c.scaleX=c.scaleY=h.scale,c.x=h.x,c.y=h.y}return i.setClipPath(new Za({shape:e.plain()})),{root:i,boundingRect:e}}var JS={geoJSON:NS,svg:{load:function(t,e){var n=KS(e).originRoot;if(n)return{root:n,boundingRect:KS(e).boundingRect};var i=$S(e);return KS(e).originRoot=i.root,KS(e).boundingRect=i.boundingRect,i},makeGraphic:function(t,e,n){var i=KS(e),r=i.rootMap||(i.rootMap=lt()),o=r.get(n);if(o)return o;var a=i.originRoot,s=i.boundingRect;return i.originRootHostKey?o=$S(e,s).root:(i.originRootHostKey=n,o=a),r.set(n,o)},removeGraphic:function(t,e,n){var i=KS(e),r=i.rootMap;r&&r.removeKey(n),n===i.originRootHostKey&&(i.originRootHostKey=null)}}},QS=function(t,e,n){var i,r=[],o=lt(),a=lt();return k(nM(t),(function(s){var l=JS[s.type].load(t,s,n);k(l.regions,(function(t){var n=t.name;e&&e.hasOwnProperty(n)&&(t=t.cloneShallow(n=e[n])),r.push(t),o.set(n,t),a.set(n,t.center)}));var u=l.boundingRect;u&&(i?i.union(u):i=u.clone())})),{regions:r,regionsMap:o,nameCoordMap:a,boundingRect:i||new Pn(0,0,0,0)}},tM=function(t,e){var n=nM(t),i=[];return k(n,(function(n){var r=JS[n.type].makeGraphic;r&&i.push(r(t,n,e))})),i},eM=function(t,e){k(nM(t),(function(n){var i=JS[n.type].makeGraphic;i&&i(t,n,e)}))};function nM(t){var e=Mf(t)||[];return e}function iM(t){var e=t.getItemStyle(),n=t.get("areaColor");return null!=n&&(e.fill=n),e}var rM=function(){function t(t){var e=new Pi;this.uid=lh("ec_map_draw"),this._controller=new _S(t.getZr()),this._controllerHost={target:e},this.group=e,e.add(this._regionsGroup=new Pi),e.add(this._backgroundGroup=new Pi)}return t.prototype.draw=function(t,e,n,i,r){var o="geo"===t.mainType,a=t.getData&&t.getData();o&&e.eachComponent({mainType:"series",subType:"map"},(function(e){a||e.getHostGeoModel()!==t||(a=e.getData())}));var s=t.coordinateSystem;this._updateBackground(s);var l,u,h=this._regionsGroup,c=this.group,p=s.getTransformInfo(),d=!h.childAt(0)||r;if(d)c.transform=p.roamTransform,c.decomposeTransform(),c.dirty();else{var f=new De;f.transform=p.roamTransform,f.decomposeTransform();var g={scaleX:f.scaleX,scaleY:f.scaleY,x:f.x,y:f.y};l=f.scaleX,u=f.scaleY,yu(c,g,t)}h.removeAll();var y=lt(),v=a&&a.getVisual("visualMeta")&&a.getVisual("visualMeta").length>0;k(s.regions,(function(e){var i=y.get(e.name)||y.set(e.name,new Pi),r=new Yl({segmentIgnoreThreshold:1,shape:{paths:[]}});i.add(r);var s,f=t.getRegionModel(e.name)||t,g=f.getModel("itemStyle"),m=f.getModel("emphasis"),_=m.getModel("itemStyle"),x=f.getModel(["blur","itemStyle"]),b=f.getModel(["select","itemStyle"]),w=iM(g),S=iM(_),M=iM(x),I=iM(b);if(a){s=a.indexOfName(e.name);var T=a.getItemVisual(s,"style"),C=a.getItemVisual(s,"decal");v&&T.fill&&(w.fill=T.fill),C&&(w.decal=Zg(C,n))}var A=p.rawScaleX,D=p.rawScaleY,L=p.rawX,P=p.rawY,O=function(t){return[t[0]*A+L,t[1]*D+P]};k(e.geometries,(function(t){if("polygon"===t.type){for(var e=[],n=0;n<t.exterior.length;++n)e.push(O(t.exterior[n]));r.shape.paths.push(new Pl({segmentIgnoreThreshold:1,shape:{points:e}}));for(n=0;n<(t.interiors?t.interiors.length:0);++n){for(var i=t.interiors[n],o=[],a=0;a<i.length;++a)o.push(O(i[a]));r.shape.paths.push(new Pl({segmentIgnoreThreshold:1,shape:{points:o}}))}}})),r.setStyle(w),r.style.strokeNoScale=!0,r.culling=!0,r.ensureState("emphasis").style=S,r.ensureState("blur").style=M,r.ensureState("select").style=I;for(var R=!1,N=0;N<us.length;N++){var E=us[N];if(f.get("normal"===E?["label","show"]:[E,"label","show"])){R=!0;break}}var z=a&&isNaN(a.get(a.mapDimension("value"),s)),B=a&&a.getItemLayout(s);if(o||z&&R||B&&B.showLabel){var V=o?e.name:s,F=void 0;(!a||s>=0)&&(F=t);var G=O(e.center),H=new Ka({x:G[0],y:G[1],scaleX:1/c.scaleX,scaleY:1/c.scaleY,z2:10,silent:!0});zu(H,Bu(f),{labelFetcher:F,labelDataIndex:V,defaultText:e.name},{normal:{align:"center",verticalAlign:"middle"}}),r.setTextContent(H),r.setTextConfig({local:!0}),r.disableLabelAnimation=!0,d||yu(H,{scaleX:1/l,scaleY:1/u},t)}if(a)a.setItemGraphicEl(s,i);else{var W=t.getRegionModel(e.name);rs(r).eventData={componentType:"geo",componentIndex:t.componentIndex,geoIndex:t.componentIndex,name:e.name,region:W&&W.option||{}}}(i.__regions||(i.__regions=[])).push(e),i.highDownSilentOnTouch=!!t.get("selectedMode"),Ns(i,m.get("focus"),m.get("blurScope")),h.add(i)})),this._updateController(t,e,n),this._updateMapSelectHandler(t,h,n,i)},t.prototype.remove=function(){this._regionsGroup.removeAll(),this._backgroundGroup.removeAll(),this._controller.dispose(),this._mapName&&eM(this._mapName,this.uid),this._mapName=null,this._controllerHost=null},t.prototype._updateBackground=function(t){var e=t.map;this._mapName!==e&&k(tM(e,this.uid),(function(t){this._backgroundGroup.add(t)}),this),this._mapName=e},t.prototype._updateController=function(t,e,n){var i=t.coordinateSystem,r=this._controller,o=this._controllerHost;o.zoomLimit=t.get("scaleLimit"),o.zoom=i.getZoom(),r.enable(t.get("roam")||!1);var a=t.mainType;function s(){var e={type:"geoRoam",componentType:a};return e[a+"Id"]=t.id,e}r.off("pan").on("pan",(function(t){this._mouseDownFlag=!1,SS(o,t.dx,t.dy),n.dispatchAction(M(s(),{dx:t.dx,dy:t.dy}))}),this),r.off("zoom").on("zoom",(function(t){this._mouseDownFlag=!1,MS(o,t.scale,t.originX,t.originY),n.dispatchAction(M(s(),{zoom:t.scale,originX:t.originX,originY:t.originY}));var e=this.group;this._regionsGroup.traverse((function(t){var n=t.getTextContent();n&&(n.scaleX=1/e.scaleX,n.scaleY=1/e.scaleY,n.markRedraw())}))}),this),r.setPointerChecker((function(e,r,o){return i.getViewRectAfterRoam().contain(r,o)&&!TS(e,n,t)}))},t.prototype._updateMapSelectHandler=function(t,e,n,i){var r=this;e.off("mousedown"),t.get("selectedMode")&&(e.on("mousedown",(function(){r._mouseDownFlag=!0})),e.on("click",(function(t){r._mouseDownFlag&&(r._mouseDownFlag=!1)})))},t}(),oM=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n,i){if(!i||"mapToggleSelect"!==i.type||i.from!==this.uid){var r=this.group;if(r.removeAll(),!t.getHostGeoModel()){if(i&&"geoRoam"===i.type&&"series"===i.componentType&&i.seriesId===t.id)(o=this._mapDraw)&&r.add(o.group);else if(t.needsDrawMap){var o=this._mapDraw||new rM(n);r.add(o.group),o.draw(t,e,n,this,i),this._mapDraw=o}else this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null;t.get("showLegendSymbol")&&e.getComponent("legend")&&this._renderSymbols(t,e,n)}}},n.prototype.remove=function(){this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null,this.group.removeAll()},n.prototype.dispose=function(){this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null},n.prototype._renderSymbols=function(t,e,n){var i=t.originalData,r=this.group;i.each(i.mapDimension("value"),(function(e,n){if(!isNaN(e)){var o=i.getItemLayout(n);if(o&&o.point){var a=o.point,s=o.offset,l=new ul({style:{fill:t.getData().getVisual("style").fill},shape:{cx:a[0]+9*s,cy:a[1],r:3},silent:!0,z2:8+(s?0:11)});if(!s){var u=t.mainSeries.getData(),h=i.getName(n),c=u.indexOfName(h),p=i.getItemModel(n),d=p.getModel("label"),f=u.getItemGraphicEl(c);zu(l,Bu(p),{labelFetcher:{getFormattedLabel:function(e,n){return t.getFormattedLabel(c,n)}}}),l.disableLabelAnimation=!0,d.get("position")||l.setTextConfig({position:"bottom"}),f.onHoverStateChange=function(t){l.useState(t)}}r.add(l)}}}))},n.type="map",n}(Nd),aM=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.needsDrawMap=!1,e.seriesGroup=[],e.getTooltipPosition=function(t){if(null!=t){var e=this.getData().getName(t),n=this.coordinateSystem,i=n.getRegion(e);return i&&n.dataToPoint(i.center)}},e}return e(n,t),n.prototype.getInitialData=function(t){for(var e=tw(this,{coordDimensions:["value"],encodeDefaulter:B(_c,this)}),n=lt(),i=[],r=0,o=e.count();r<o;r++){var a=e.getName(r);n.set(a,!0)}return k(QS(this.getMapType(),this.option.nameMap,this.option.nameProperty).regions,(function(t){var e=t.name;n.get(e)||i.push(e)})),e.appendValues([],i),e},n.prototype.getHostGeoModel=function(){var t=this.option.geoIndex;return null!=t?this.ecModel.getComponent("geo",t):null},n.prototype.getMapType=function(){return(this.getHostGeoModel()||this).option.map},n.prototype.getRawValue=function(t){var e=this.getData();return e.get(e.mapDimension("value"),t)},n.prototype.getRegionModel=function(t){var e=this.getData();return e.getItemModel(e.indexOfName(t))},n.prototype.formatTooltip=function(t,e,n){for(var i=this.getData(),r=this.getRawValue(t),o=i.getName(t),a=this.seriesGroup,s=[],l=0;l<a.length;l++){var u=a[l].originalData.indexOfName(o),h=i.mapDimension("value");isNaN(a[l].originalData.get(h,u))||s.push(a[l].name)}return hd("section",{header:s.join(", "),noHeader:!s.length,blocks:[hd("nameValue",{name:o,value:r})]})},n.prototype.setZoom=function(t){this.option.zoom=t},n.prototype.setCenter=function(t){this.option.center=t},n.type="series.map",n.dependencies=["geo"],n.layoutMode="box",n.defaultOption={zlevel:0,z:2,coordinateSystem:"geo",map:"",left:"center",top:"center",aspectScale:.75,showLegendSymbol:!0,boundingCoords:null,center:null,zoom:1,scaleLimit:null,selectedMode:!0,label:{show:!1,color:"#000"},itemStyle:{borderWidth:.5,borderColor:"#444",areaColor:"#eee"},emphasis:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{areaColor:"rgba(255,215,0,0.8)"}},select:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{color:"rgba(255,215,0,0.8)"}},nameProperty:"name"},n}(Sd);function sM(t){var e={};t.eachSeriesByType("map",(function(t){var n=t.getHostGeoModel(),i=n?"o"+n.id:"i"+t.getMapType();(e[i]=e[i]||[]).push(t)})),k(e,(function(t,e){for(var n,i,r,o=(n=P(t,(function(t){return t.getData()})),i=t[0].get("mapValueCalculation"),r={},k(n,(function(t){t.each(t.mapDimension("value"),(function(e,n){var i="ec-"+t.getName(n);r[i]=r[i]||[],isNaN(e)||r[i].push(e)}))})),n[0].map(n[0].mapDimension("value"),(function(t,e){for(var o="ec-"+n[0].getName(e),a=0,s=1/0,l=-1/0,u=r[o].length,h=0;h<u;h++)s=Math.min(s,r[o][h]),l=Math.max(l,r[o][h]),a+=r[o][h];return 0===u?NaN:"min"===i?s:"max"===i?l:"average"===i?a/u:a}))),a=0;a<t.length;a++)t[a].originalData=t[a].getData();for(a=0;a<t.length;a++)t[a].seriesGroup=t,t[a].needsDrawMap=0===a&&!t[a].getHostGeoModel(),t[a].setData(o.cloneShallow()),t[a].mainSeries=t[0]}))}function lM(t){var e={};t.eachSeriesByType("map",(function(n){var i=n.getMapType();if(!n.getHostGeoModel()&&!e[i]){var r={};k(n.seriesGroup,(function(e){var n=e.coordinateSystem,i=e.originalData;e.get("showLegendSymbol")&&t.getComponent("legend")&&i.each(i.mapDimension("value"),(function(t,e){var o=i.getName(e),a=n.getRegion(o);if(a&&!isNaN(t)){var s=r[o]||0,l=n.dataToPoint(a.center);r[o]=s+1,i.setItemLayout(e,{point:l,offset:s})}}))}));var o=n.getData();o.each((function(t){var e=o.getName(t),n=o.getItemLayout(t)||{};n.showLabel=!r[e],o.setItemLayout(t,n)})),e[i]=!0}}))}function uM(t,e){var n=t.isExpand?t.children:[],i=t.parentNode.children,r=t.hierNode.i?i[t.hierNode.i-1]:null;if(n.length){!function(t){var e=t.children,n=e.length,i=0,r=0;for(;--n>=0;){var o=e[n];o.hierNode.prelim+=i,o.hierNode.modifier+=i,r+=o.hierNode.change,i+=o.hierNode.shift+r}}(t);var o=(n[0].hierNode.prelim+n[n.length-1].hierNode.prelim)/2;r?(t.hierNode.prelim=r.hierNode.prelim+e(t,r),t.hierNode.modifier=t.hierNode.prelim-o):t.hierNode.prelim=o}else r&&(t.hierNode.prelim=r.hierNode.prelim+e(t,r));t.parentNode.hierNode.defaultAncestor=function(t,e,n,i){if(e){for(var r=t,o=t,a=o.parentNode.children[0],s=e,l=r.hierNode.modifier,u=o.hierNode.modifier,h=a.hierNode.modifier,c=s.hierNode.modifier;s=dM(s),o=fM(o),s&&o;){r=dM(r),a=fM(a),r.hierNode.ancestor=t;var p=s.hierNode.prelim+c-o.hierNode.prelim-u+i(s,o);p>0&&(yM(gM(s,t,n),t,p),u+=p,l+=p),c+=s.hierNode.modifier,u+=o.hierNode.modifier,l+=r.hierNode.modifier,h+=a.hierNode.modifier}s&&!dM(r)&&(r.hierNode.thread=s,r.hierNode.modifier+=c-l),o&&!fM(a)&&(a.hierNode.thread=o,a.hierNode.modifier+=u-h,n=t)}return n}(t,r,t.parentNode.hierNode.defaultAncestor||i[0],e)}function hM(t){var e=t.hierNode.prelim+t.parentNode.hierNode.modifier;t.setLayout({x:e},!0),t.hierNode.modifier+=t.parentNode.hierNode.modifier}function cM(t){return arguments.length?t:vM}function pM(t,e){return t-=Math.PI/2,{x:e*Math.cos(t),y:e*Math.sin(t)}}function dM(t){var e=t.children;return e.length&&t.isExpand?e[e.length-1]:t.hierNode.thread}function fM(t){var e=t.children;return e.length&&t.isExpand?e[0]:t.hierNode.thread}function gM(t,e,n){return t.hierNode.ancestor.parentNode===e.parentNode?t.hierNode.ancestor:n}function yM(t,e,n){var i=n/(e.hierNode.i-t.hierNode.i);e.hierNode.change-=i,e.hierNode.shift+=n,e.hierNode.modifier+=n,e.hierNode.prelim+=n,t.hierNode.change+=i}function vM(t,e){return t.parentNode===e.parentNode?1:2}var mM=Rt,_M=function(t){function n(e){var n=t.call(this)||this;return n.type="view",n.dimensions=["x","y"],n._roamTransformable=new De,n._rawTransformable=new De,n.name=e,n}return e(n,t),n.prototype.setBoundingRect=function(t,e,n,i){return this._rect=new Pn(t,e,n,i),this._rect},n.prototype.getBoundingRect=function(){return this._rect},n.prototype.setViewRect=function(t,e,n,i){this.transformTo(t,e,n,i),this._viewRect=new Pn(t,e,n,i)},n.prototype.transformTo=function(t,e,n,i){var r=this.getBoundingRect(),o=this._rawTransformable;o.transform=r.calculateTransform(new Pn(t,e,n,i)),o.decomposeTransform(),this._updateTransform()},n.prototype.setCenter=function(t){t&&(this._center=t,this._updateCenterAndZoom())},n.prototype.setZoom=function(t){t=t||1;var e=this.zoomLimit;e&&(null!=e.max&&(t=Math.min(e.max,t)),null!=e.min&&(t=Math.max(e.min,t))),this._zoom=t,this._updateCenterAndZoom()},n.prototype.getDefaultCenter=function(){var t=this.getBoundingRect();return[t.x+t.width/2,t.y+t.height/2]},n.prototype.getCenter=function(){return this._center||this.getDefaultCenter()},n.prototype.getZoom=function(){return this._zoom||1},n.prototype.getRoamTransform=function(){return this._roamTransformable.getLocalTransform()},n.prototype._updateCenterAndZoom=function(){var t=this._rawTransformable.getLocalTransform(),e=this._roamTransformable,n=this.getDefaultCenter(),i=this.getCenter(),r=this.getZoom();i=Rt([],i,t),n=Rt([],n,t),e.originX=i[0],e.originY=i[1],e.x=n[0]-i[0],e.y=n[1]-i[1],e.scaleX=e.scaleY=r,this._updateTransform()},n.prototype._updateTransform=function(){var t=this._roamTransformable,e=this._rawTransformable;e.parent=t,t.updateTransform(),e.updateTransform(),ge(this.transform||(this.transform=[]),e.transform||[1,0,0,1,0,0]),this._rawTransform=e.getLocalTransform(),this.invTransform=this.invTransform||[],xe(this.invTransform,this.transform),this.decomposeTransform()},n.prototype.getTransformInfo=function(){var t=this._roamTransformable.transform,e=this._rawTransformable;return{roamTransform:t?et(t):[1,0,0,1,0,0],rawScaleX:e.scaleX,rawScaleY:e.scaleY,rawX:e.x,rawY:e.y}},n.prototype.getViewRect=function(){return this._viewRect},n.prototype.getViewRectAfterRoam=function(){var t=this.getBoundingRect().clone();return t.applyTransform(this.transform),t},n.prototype.dataToPoint=function(t,e,n){var i=e?this._rawTransform:this.transform;return n=n||[],i?mM(n,t,i):vt(n,t)},n.prototype.pointToData=function(t){var e=this.invTransform;return e?mM([],t,e):[t[0],t[1]]},n.prototype.convertToPixel=function(t,e,n){var i=xM(e);return i===this?i.dataToPoint(n):null},n.prototype.convertFromPixel=function(t,e,n){var i=xM(e);return i===this?i.pointToData(n):null},n.prototype.containPoint=function(t){return this.getViewRectAfterRoam().contain(t[0],t[1])},n.dimensions=["x","y"],n}(De);function xM(t){var e=t.seriesModel;return e?e.coordinateSystem:null}var bM=function(){this.parentPoint=[],this.childPoints=[]},wM=function(t){function n(e){return t.call(this,e)||this}return e(n,t),n.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},n.prototype.getDefaultShape=function(){return new bM},n.prototype.buildPath=function(t,e){var n=e.childPoints,i=n.length,r=e.parentPoint,o=n[0],a=n[i-1];if(1===i)return t.moveTo(r[0],r[1]),void t.lineTo(o[0],o[1]);var s=e.orient,l="TB"===s||"BT"===s?0:1,u=1-l,h=Gi(e.forkPosition,1),c=[];c[l]=r[l],c[u]=r[u]+(a[u]-r[u])*h,t.moveTo(r[0],r[1]),t.lineTo(c[0],c[1]),t.moveTo(o[0],o[1]),c[l]=o[l],t.lineTo(c[0],c[1]),c[l]=a[l],t.lineTo(c[0],c[1]),t.lineTo(a[0],a[1]);for(var p=1;p<i-1;p++){var d=n[p];t.moveTo(d[0],d[1]),c[l]=d[l],t.lineTo(c[0],c[1])}},n}(Na),SM=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e._mainGroup=new Pi,e}return e(n,t),n.prototype.init=function(t,e){this._controller=new _S(e.getZr()),this._controllerHost={target:this.group},this.group.add(this._mainGroup)},n.prototype.render=function(t,e,n){var i=t.getData(),r=t.layoutInfo,o=this._mainGroup;"radial"===t.get("layout")?(o.x=r.x+r.width/2,o.y=r.y+r.height/2):(o.x=r.x,o.y=r.y),this._updateViewCoordSys(t),this._updateController(t,e,n);var a=this._data;i.diff(a).add((function(e){MM(i,e)&&IM(i,e,null,o,t)})).update((function(e,n){var r=a.getItemGraphicEl(n);MM(i,e)?IM(i,e,r,o,t):r&&TM(a,n,r,o,t)})).remove((function(e){var n=a.getItemGraphicEl(e);n&&TM(a,e,n,o,t)})).execute(),this._nodeScaleRatio=t.get("nodeScaleRatio"),this._updateNodeAndLinkScale(t),!0===t.get("expandAndCollapse")&&i.eachItemGraphicEl((function(e,i){e.off("click").on("click",(function(){n.dispatchAction({type:"treeExpandAndCollapse",seriesId:t.id,dataIndex:i})}))})),this._data=i},n.prototype._updateViewCoordSys=function(t){var e=t.getData(),n=[];e.each((function(t){var i=e.getItemLayout(t);!i||isNaN(i.x)||isNaN(i.y)||n.push([+i.x,+i.y])}));var i=[],r=[];Wo(n,i,r);var o=this._min,a=this._max;r[0]-i[0]==0&&(i[0]=o?o[0]:i[0]-1,r[0]=a?a[0]:r[0]+1),r[1]-i[1]==0&&(i[1]=o?o[1]:i[1]-1,r[1]=a?a[1]:r[1]+1);var s=t.coordinateSystem=new _M;s.zoomLimit=t.get("scaleLimit"),s.setBoundingRect(i[0],i[1],r[0]-i[0],r[1]-i[1]),s.setCenter(t.get("center")),s.setZoom(t.get("zoom")),this.group.attr({x:s.x,y:s.y,scaleX:s.scaleX,scaleY:s.scaleY}),this._min=i,this._max=r},n.prototype._updateController=function(t,e,n){var i=this,r=this._controller,o=this._controllerHost,a=this.group;r.setPointerChecker((function(e,i,r){var o=a.getBoundingRect();return o.applyTransform(a.transform),o.contain(i,r)&&!TS(e,n,t)})),r.enable(t.get("roam")),o.zoomLimit=t.get("scaleLimit"),o.zoom=t.coordinateSystem.getZoom(),r.off("pan").off("zoom").on("pan",(function(e){SS(o,e.dx,e.dy),n.dispatchAction({seriesId:t.id,type:"treeRoam",dx:e.dx,dy:e.dy})})).on("zoom",(function(e){MS(o,e.scale,e.originX,e.originY),n.dispatchAction({seriesId:t.id,type:"treeRoam",zoom:e.scale,originX:e.originX,originY:e.originY}),i._updateNodeAndLinkScale(t),n.updateLabelLayout()}))},n.prototype._updateNodeAndLinkScale=function(t){var e=t.getData(),n=this._getNodeGlobalScale(t);e.eachItemGraphicEl((function(t,e){t.setSymbolScale(n)}))},n.prototype._getNodeGlobalScale=function(t){var e=t.coordinateSystem;if("view"!==e.type)return 1;var n=this._nodeScaleRatio,i=e.scaleX||1;return((e.getZoom()-1)*n+1)/i},n.prototype.dispose=function(){this._controller&&this._controller.dispose(),this._controllerHost=null},n.prototype.remove=function(){this._mainGroup.removeAll(),this._data=null},n.type="tree",n}(Nd);function MM(t,e){var n=t.getItemLayout(e);return n&&!isNaN(n.x)&&!isNaN(n.y)}function IM(t,e,n,i,r){var o=!n,a=t.tree.getNodeByDataIndex(e),s=a.getModel(),l=a.getVisual("style").fill,u=!1===a.isExpand&&0!==a.children.length?l:"#fff",h=t.tree.root,c=a.parentNode===h?a:a.parentNode||a,p=t.getItemGraphicEl(c.dataIndex),d=c.getLayout(),f=p?{x:p.__oldX,y:p.__oldY,rawX:p.__radialOldRawX,rawY:p.__radialOldRawY}:d,g=a.getLayout();o?((n=new Gx(t,e,null,{symbolInnerColor:u,useNameLabel:!0})).x=f.x,n.y=f.y):n.updateData(t,e,null,{symbolInnerColor:u,useNameLabel:!0}),n.__radialOldRawX=n.__radialRawX,n.__radialOldRawY=n.__radialRawY,n.__radialRawX=g.rawX,n.__radialRawY=g.rawY,i.add(n),t.setItemGraphicEl(e,n),n.__oldX=n.x,n.__oldY=n.y,yu(n,{x:g.x,y:g.y},r);var y=n.getSymbolPath();if("radial"===r.get("layout")){var v=h.children[0],m=v.getLayout(),_=v.children.length,x=void 0,b=void 0;if(g.x===m.x&&!0===a.isExpand){var w={x:(v.children[0].getLayout().x+v.children[_-1].getLayout().x)/2,y:(v.children[0].getLayout().y+v.children[_-1].getLayout().y)/2};(x=Math.atan2(w.y-m.y,w.x-m.x))<0&&(x=2*Math.PI+x),(b=w.x<m.x)&&(x-=Math.PI)}else(x=Math.atan2(g.y-m.y,g.x-m.x))<0&&(x=2*Math.PI+x),0===a.children.length||0!==a.children.length&&!1===a.isExpand?(b=g.x<m.x)&&(x-=Math.PI):(b=g.x>m.x)||(x-=Math.PI);var S=b?"left":"right",M=s.getModel("label"),T=M.get("rotate"),C=T*(Math.PI/180),A=y.getTextContent();A&&(y.setTextConfig({position:M.get("position")||S,rotation:null==T?-x:C,origin:"center"}),A.setStyle("verticalAlign","middle"))}var D=s.get(["emphasis","focus"]),L="ancestor"===D?a.getAncestorsIndices():"descendant"===D?a.getDescendantIndices():null;L&&(rs(n).focus=L),function(t,e,n,i,r,o,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&&(g||(g=i.__edge=new Gl({shape:CM(h,c,p,r,r)})),yu(g,{shape:CM(h,c,p,o,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,v=[],m=0;m<y.length;m++){var _=y[m].getLayout();v.push([_.x,_.y])}g||(g=i.__edge=new wM({shape:{parentPoint:[a.x,a.y],childPoints:[[a.x,a.y]],orient:c,forkPosition:d}})),yu(g,{shape:{parentPoint:[a.x,a.y],childPoints:v}},t)}}else 0;g&&(g.useStyle(I({strokeNoScale:!0,fill:null},f)),Vs(g,l,"lineStyle"),Ms(g),s.add(g))}(r,a,h,n,f,d,g,i),n.__edge&&(n.onHoverStateChange=function(e){if("blur"!==e){var i=a.parentNode&&t.getItemGraphicEl(a.parentNode.dataIndex);i&&1===i.hoverState||ws(n.__edge,e)}})}function TM(t,e,n,i,r){for(var o,a=t.tree.getNodeByDataIndex(e),s=t.tree.root,l=a.parentNode===s?a:a.parentNode||a;null==(o=l.getLayout());)l=l.parentNode===s?l:l.parentNode||l;var u={duration:r.get("animationDurationUpdate"),easing:r.get("animationEasingUpdate")};mu(n,{x:o.x+1,y:o.y+1},r,{cb:function(){i.remove(n),t.setItemGraphicEl(e,null)},removeOpt:u}),n.fadeOut(null,{fadeLabel:!0,animation:u});var h=t.getItemGraphicEl(l.dataIndex).__edge,c=n.__edge||(!1===l.isExpand||1===l.children.length?h:void 0),p=r.get("edgeShape"),d=r.get("layout"),f=r.get("orient"),g=r.get(["lineStyle","curveness"]);c&&("curve"===p?mu(c,{shape:CM(d,f,g,o,o),style:{opacity:0}},r,{cb:function(){i.remove(c)},removeOpt:u}):"polyline"===p&&"orthogonal"===r.get("layout")&&mu(c,{shape:{parentPoint:[o.x,o.y],childPoints:[[o.x,o.y]]},style:{opacity:0}},r,{cb:function(){i.remove(c)},removeOpt:u}))}function CM(t,e,n,i,r){var o,a,s,l,u,h,c,p;if("radial"===t){u=i.rawX,c=i.rawY,h=r.rawX,p=r.rawY;var d=pM(u,c),f=pM(u,c+(p-c)*n),g=pM(h,p+(c-p)*n),y=pM(h,p);return{x1:d.x||0,y1:d.y||0,x2:y.x||0,y2:y.y||0,cpx1:f.x||0,cpy1:f.y||0,cpx2:g.x||0,cpy2:g.y||0}}return u=i.x,c=i.y,h=r.x,p=r.y,"LR"!==e&&"RL"!==e||(o=u+(h-u)*n,a=c,s=h+(u-h)*n,l=p),"TB"!==e&&"BT"!==e||(o=u,a=c+(p-c)*n,s=h,l=p+(c-p)*n),{x1:u,y1:c,x2:h,y2:p,cpx1:o,cpy1:a,cpx2:s,cpy2:l}}var AM=br();function DM(t){var e=t.mainData,n=t.datas;n||(n={main:e},t.datasAttr={main:"data"}),t.datas=t.mainData=null,NM(e,n,t),k(n,(function(n){k(e.TRANSFERABLE_METHODS,(function(e){n.wrapMethod(e,B(LM,t))}))})),e.wrapMethod("cloneShallow",B(PM,t)),k(e.CHANGABLE_METHODS,(function(n){e.wrapMethod(n,B(kM,t))})),it(n[e.dataType]===e)}function LM(t,e){if(AM(i=this).mainData===i){var n=M({},AM(this).datas);n[this.dataType]=e,NM(e,n,t)}else EM(e,this.dataType,AM(this).mainData,t);var i;return e}function kM(t,e){return t.struct&&t.struct.update(),e}function PM(t,e){return k(AM(e).datas,(function(n,i){n!==e&&EM(n.cloneShallow(),i,e,t)})),e}function OM(t){var e=AM(this).mainData;return null==t||null==e?e:AM(e).datas[t]}function RM(){var t=AM(this).mainData;return null==t?[{data:t}]:P(E(AM(t).datas),(function(e){return{type:e,data:AM(t).datas[e]}}))}function NM(t,e,n){AM(t).datas={},k(e,(function(e,i){EM(e,i,t,n)}))}function EM(t,e,n,i){AM(n).datas[e]=t,AM(t).mainData=n,t.dataType=e,i.struct&&(t[i.structAttr]=i.struct,i.struct[i.datasAttr[e]]=t),t.getLinkedData=OM,t.getLinkedDataAll=RM}var zM=function(){function t(t,e){this.depth=0,this.height=0,this.dataIndex=-1,this.children=[],this.viewChildren=[],this.isExpand=!1,this.name=t||"",this.hostTree=e}return t.prototype.isRemoved=function(){return this.dataIndex<0},t.prototype.eachNode=function(t,e,n){"function"==typeof t&&(n=e,e=t,t=null),G(t=t||{})&&(t={order:t});var i,r=t.order||"preorder",o=this[t.attr||"children"];"preorder"===r&&(i=e.call(n,this));for(var a=0;!i&&a<o.length;a++)o[a].eachNode(t,e,n);"postorder"===r&&e.call(n,this)},t.prototype.updateDepthAndHeight=function(t){var e=0;this.depth=t;for(var n=0;n<this.children.length;n++){var i=this.children[n];i.updateDepthAndHeight(t+1),i.height>e&&(e=i.height)}this.height=e+1},t.prototype.getNodeById=function(t){if(this.getId()===t)return this;for(var e=0,n=this.children,i=n.length;e<i;e++){var r=n[e].getNodeById(t);if(r)return r}},t.prototype.contains=function(t){if(t===this)return!0;for(var e=0,n=this.children,i=n.length;e<i;e++){var r=n[e].contains(t);if(r)return r}},t.prototype.getAncestors=function(t){for(var e=[],n=t?this:this.parentNode;n;)e.push(n),n=n.parentNode;return e.reverse(),e},t.prototype.getAncestorsIndices=function(){for(var t=[],e=this;e;)t.push(e.dataIndex),e=e.parentNode;return t.reverse(),t},t.prototype.getDescendantIndices=function(){var t=[];return this.eachNode((function(e){t.push(e.dataIndex)})),t},t.prototype.getValue=function(t){var e=this.hostTree.data;return e.get(e.getDimension(t||"value"),this.dataIndex)},t.prototype.setLayout=function(t,e){this.dataIndex>=0&&this.hostTree.data.setItemLayout(this.dataIndex,t,e)},t.prototype.getLayout=function(){return this.hostTree.data.getItemLayout(this.dataIndex)},t.prototype.getModel=function(t){if(!(this.dataIndex<0))return this.hostTree.data.getItemModel(this.dataIndex).getModel(t)},t.prototype.getLevelModel=function(){return(this.hostTree.levelModels||[])[this.depth]},t.prototype.setVisual=function(t,e){this.dataIndex>=0&&this.hostTree.data.setItemVisual(this.dataIndex,t,e)},t.prototype.getVisual=function(t){return this.hostTree.data.getItemVisual(this.dataIndex,t)},t.prototype.getRawIndex=function(){return this.hostTree.data.getRawIndex(this.dataIndex)},t.prototype.getId=function(){return this.hostTree.data.getId(this.dataIndex)},t.prototype.isAncestorOf=function(t){for(var e=t.parentNode;e;){if(e===this)return!0;e=e.parentNode}return!1},t.prototype.isDescendantOf=function(t){return t!==this&&t.isAncestorOf(this)},t}(),BM=function(){function t(t){this.type="tree",this._nodes=[],this.hostModel=t}return t.prototype.eachNode=function(t,e,n){this.root.eachNode(t,e,n)},t.prototype.getNodeByDataIndex=function(t){var e=this.data.getRawIndex(t);return this._nodes[e]},t.prototype.getNodeById=function(t){return this.root.getNodeById(t)},t.prototype.update=function(){for(var t=this.data,e=this._nodes,n=0,i=e.length;n<i;n++)e[n].dataIndex=-1;for(n=0,i=t.count();n<i;n++)e[t.getRawIndex(n)].dataIndex=n},t.prototype.clearLayouts=function(){this.data.clearItemLayouts()},t.createTree=function(e,n,i){var r=new t(n),o=[],a=1;!function t(e,n){var i=e.value;a=Math.max(a,V(i)?i.length:1),o.push(e);var s=new zM(vr(e.name,""),r);n?function(t,e){var n=e.children;if(t.parentNode===e)return;n.push(t),t.parentNode=e}(s,n):r.root=s,r._nodes.push(s);var l=e.children;if(l)for(var u=0;u<l.length;u++)t(l[u],s)}(e),r.root.updateDepthAndHeight(0);var s=im(o,{coordDimensions:["value"],dimensionsCount:a}),l=new tm(s,n);return l.initData(o),i&&i(l),DM({mainData:l,struct:r,structAttr:"tree"}),r.update(),r},t}();var VM=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.hasSymbolVisual=!0,e.ignoreStyleOnData=!0,e}return e(n,t),n.prototype.getInitialData=function(t){var e={name:t.name,children:t.data},n=t.leaves||{},i=new ah(n,this,this.ecModel),r=BM.createTree(e,this,(function(t){t.wrapMethod("getItemModel",(function(t,e){var n=r.getNodeByDataIndex(e);return n.children.length&&n.isExpand||(t.parentModel=i),t}))}));var o=0;r.eachNode("preorder",(function(t){t.depth>o&&(o=t.depth)}));var a=t.expandAndCollapse&&t.initialTreeDepth>=0?t.initialTreeDepth:o;return r.root.eachNode("preorder",(function(t){var e=t.hostTree.data.getRawDataItem(t.dataIndex);t.isExpand=e&&null!=e.collapsed?!e.collapsed:t.depth<=a})),r.data},n.prototype.getOrient=function(){var t=this.get("orient");return"horizontal"===t?t="LR":"vertical"===t&&(t="TB"),t},n.prototype.setZoom=function(t){this.option.zoom=t},n.prototype.setCenter=function(t){this.option.center=t},n.prototype.formatTooltip=function(t,e,n){for(var i=this.getData().tree,r=i.root.children[0],o=i.getNodeByDataIndex(t),a=o.getValue(),s=o.name;o&&o!==r;)s=o.parentNode.name+"."+s,o=o.parentNode;return hd("nameValue",{name:s,value:a,noValue:isNaN(a)||null==a})},n.type="series.tree",n.layoutMode="box",n.defaultOption={zlevel:0,z:2,coordinateSystem:"view",left:"12%",top:"12%",right:"12%",bottom:"12%",layout:"orthogonal",edgeShape:"curve",edgeForkPosition:"50%",roam:!1,nodeScaleRatio:.4,center:null,zoom:1,orient:"LR",symbol:"emptyCircle",symbolSize:7,expandAndCollapse:!0,initialTreeDepth:2,lineStyle:{color:"#ccc",width:1.5,curveness:.5},itemStyle:{color:"lightsteelblue",borderColor:"#c23531",borderWidth:1.5},label:{show:!0},animationEasing:"linear",animationDuration:700,animationDurationUpdate:500},n}(Sd);function FM(t,e){for(var n,i=[t];n=i.pop();)if(e(n),n.isExpand){var r=n.children;if(r.length)for(var o=r.length-1;o>=0;o--)i.push(r[o])}}function GM(t,e){t.eachSeriesByType("tree",(function(t){!function(t,e){var n=function(t,e){return nc(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}(t,e);t.layoutInfo=n;var i=t.get("layout"),r=0,o=0,a=null;"radial"===i?(r=2*Math.PI,o=Math.min(n.height,n.width)/2,a=cM((function(t,e){return(t.parentNode===e.parentNode?1:2)/t.depth}))):(r=n.width,o=n.height,a=cM());var s=t.getData().tree.root,l=s.children[0];if(l){!function(t){var e=t;e.hierNode={defaultAncestor:null,ancestor:e,prelim:0,modifier:0,change:0,shift:0,i:0,thread:null};for(var n,i,r=[e];n=r.pop();)if(i=n.children,n.isExpand&&i.length)for(var o=i.length-1;o>=0;o--){var a=i[o];a.hierNode={defaultAncestor:null,ancestor:a,prelim:0,modifier:0,change:0,shift:0,i:o,thread:null},r.push(a)}}(s),function(t,e,n){for(var i,r=[t],o=[];i=r.pop();)if(o.push(i),i.isExpand){var a=i.children;if(a.length)for(var s=0;s<a.length;s++)r.push(a[s])}for(;i=o.pop();)e(i,n)}(l,uM,a),s.hierNode.modifier=-l.hierNode.prelim,FM(l,hM);var u=l,h=l,c=l;FM(l,(function(t){var e=t.getLayout().x;e<u.getLayout().x&&(u=t),e>h.getLayout().x&&(h=t),t.depth>c.depth&&(c=t)}));var p=u===h?1:a(u,h)/2,d=p-u.getLayout().x,f=0,g=0,y=0,v=0;if("radial"===i)f=r/(h.getLayout().x+p+d),g=o/(c.depth-1||1),FM(l,(function(t){y=(t.getLayout().x+d)*f,v=(t.depth-1)*g;var e=pM(y,v);t.setLayout({x:e.x,y:e.y,rawX:y,rawY:v},!0)}));else{var m=t.getOrient();"RL"===m||"LR"===m?(g=o/(h.getLayout().x+p+d),f=r/(c.depth-1||1),FM(l,(function(t){v=(t.getLayout().x+d)*g,y="LR"===m?(t.depth-1)*f:r-(t.depth-1)*f,t.setLayout({x:y,y:v},!0)}))):"TB"!==m&&"BT"!==m||(f=r/(h.getLayout().x+p+d),g=o/(c.depth-1||1),FM(l,(function(t){y=(t.getLayout().x+d)*f,v="TB"===m?(t.depth-1)*g:o-(t.depth-1)*g,t.setLayout({x:y,y:v},!0)})))}}}(t,e)}))}function HM(t){t.eachSeriesByType("tree",(function(t){var e=t.getData();e.tree.eachNode((function(t){var n=t.getModel().getModel("itemStyle").getItemStyle();M(e.ensureUniqueItemVisual(t.dataIndex,"style"),n)}))}))}function WM(t,e,n){var i=t.getZoom(),r=t.getCenter(),o=e.zoom,a=t.dataToPoint(r);if(null!=e.dx&&null!=e.dy&&(a[0]-=e.dx,a[1]-=e.dy,t.setCenter(t.pointToData(a))),null!=o){if(n){var s=n.min||0,l=n.max||1/0;o=Math.max(Math.min(i*o,l),s)/i}t.scaleX*=o,t.scaleY*=o;var u=(e.originX-t.x)*(o-1),h=(e.originY-t.y)*(o-1);t.x-=u,t.y-=h,t.updateTransform(),t.setCenter(t.pointToData(a)),t.setZoom(o*i)}return{center:t.getCenter(),zoom:t.getZoom()}}function YM(t,e,n){if(t&&C(e,t.type)>=0){var i=n.getData().tree.root,r=t.targetNode;if("string"==typeof r&&(r=i.getNodeById(r)),r&&i.contains(r))return{node:r};var o=t.targetNodeId;if(null!=o&&(r=i.getNodeById(o)))return{node:r}}}function XM(t){for(var e=[];t;)(t=t.parentNode)&&e.push(t);return e.reverse()}function UM(t,e){return C(XM(t),e)>=0}function ZM(t,e){for(var n=[];t;){var i=t.dataIndex;n.push({name:t.name,dataIndex:i,value:e.getRawValue(i)}),t=t.parentNode}return n.reverse(),n}var jM=function(){},qM=["treemapZoomToNode","treemapRender","treemapMove"];function KM(t){var e=t.getData().tree,n={};e.eachNode((function(e){for(var i=e;i&&i.depth>1;)i=i.parentNode;var r=Lc(t.ecModel,i.name||i.dataIndex+"",n);e.setVisual("decal",r)}))}var $M=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.preventUsingHoverLayer=!0,e}return e(n,t),n.prototype.getInitialData=function(t,e){var n={name:t.name,children:t.data};JM(n);var i=t.levels||[],r=this.designatedVisualItemStyle={},o=new ah({itemStyle:r},this,e),a=P((i=t.levels=function(t,e){var n,i,r=hr(e.get("color")),o=hr(e.get(["aria","decal","decals"]));if(!r)return;k(t=t||[],(function(t){var e=new ah(t),r=e.get("color"),o=e.get("decal");(e.get(["itemStyle","color"])||r&&"none"!==r)&&(n=!0),(e.get(["itemStyle","decal"])||o&&"none"!==o)&&(i=!0)}));var a=t[0]||(t[0]={});n||(a.color=r.slice());!i&&o&&(a.decal=o.slice());return t}(i,e))||[],(function(t){return new ah(t,o,e)}),this),s=BM.createTree(n,this,(function(t){t.wrapMethod("getItemModel",(function(t,e){var n=s.getNodeByDataIndex(e),i=a[n.depth];return t.parentModel=i||o,t}))}));return s.data},n.prototype.optionUpdated=function(){this.resetViewRoot()},n.prototype.formatTooltip=function(t,e,n){var i=this.getData(),r=this.getRawValue(t);return hd("nameValue",{name:i.getName(t),value:r})},n.prototype.getDataParams=function(e){var n=t.prototype.getDataParams.apply(this,arguments),i=this.getData().tree.getNodeByDataIndex(e);return n.treePathInfo=ZM(i,this),n},n.prototype.setLayoutInfo=function(t){this.layoutInfo=this.layoutInfo||{},M(this.layoutInfo,t)},n.prototype.mapIdToIndex=function(t){var e=this._idIndexMap;e||(e=this._idIndexMap=lt(),this._idIndexMapCount=0);var n=e.get(t);return null==n&&e.set(t,n=this._idIndexMapCount++),n},n.prototype.getViewRoot=function(){return this._viewRoot},n.prototype.resetViewRoot=function(t){t?this._viewRoot=t:t=this._viewRoot;var e=this.getRawData().tree.root;t&&(t===e||e.contains(t))||(this._viewRoot=e)},n.prototype.enableAriaDecal=function(){KM(this)},n.type="series.treemap",n.layoutMode="box",n.defaultOption={progressive:0,left:"center",top:"middle",width:"80%",height:"80%",sort:!0,clipWindow:"origin",squareRatio:.5*(1+Math.sqrt(5)),leafDepth:null,drillDownIcon:"▶",zoomToNodeRatio:.1024,roam:!0,nodeClick:"zoomToNode",animation:!0,animationDurationUpdate:900,animationEasing:"quinticInOut",breadcrumb:{show:!0,height:22,left:"center",top:"bottom",emptyItemWidth:25,itemStyle:{color:"rgba(0,0,0,0.7)",textStyle:{color:"#fff"}}},label:{show:!0,distance:0,padding:5,position:"inside",color:"#fff",overflow:"truncate"},upperLabel:{show:!1,position:[0,"50%"],height:20,overflow:"truncate",verticalAlign:"middle"},itemStyle:{color:null,colorAlpha:null,colorSaturation:null,borderWidth:0,gapWidth:0,borderColor:"#fff",borderColorSaturation:null},emphasis:{upperLabel:{show:!0,position:[0,"50%"],ellipsis:!0,verticalAlign:"middle"}},visualDimension:0,visualMin:null,visualMax:null,color:[],colorAlpha:null,colorSaturation:null,colorMappingBy:"index",visibleMin:10,childrenVisibleMin:null,levels:[]},n}(Sd);function JM(t){var e=0;k(t.children,(function(t){JM(t);var n=t.value;V(n)&&(n=n[0]),e+=n}));var n=t.value;V(n)&&(n=n[0]),(null==n||isNaN(n))&&(n=e),n<0&&(n=0),V(t.value)?t.value[0]=n:t.value=n}var QM=function(){function t(t){this.group=new Pi,t.add(this.group)}return t.prototype.render=function(t,e,n,i){var r=t.getModel("breadcrumb"),o=this.group;if(o.removeAll(),r.get("show")&&n){var a=r.getModel("itemStyle"),s=a.getModel("textStyle"),l={pos:{left:r.get("left"),right:r.get("right"),top:r.get("top"),bottom:r.get("bottom")},box:{width:e.getWidth(),height:e.getHeight()},emptyItemWidth:r.get("emptyItemWidth"),totalWidth:0,renderList:[]};this._prepare(n,l,s),this._renderContent(t,l,a,s,i),ic(o,l.pos,l.box)}},t.prototype._prepare=function(t,e,n){for(var i=t;i;i=i.parentNode){var r=vr(i.getModel().get("name"),""),o=n.getTextRect(r),a=Math.max(o.width+16,e.emptyItemWidth);e.totalWidth+=a+8,e.renderList.push({node:i,text:r,width:a})}},t.prototype._renderContent=function(t,e,n,i,r){for(var o,a,s,l,u,h,c,p,d,f=0,g=e.emptyItemWidth,y=t.get(["breadcrumb","height"]),v=(o=e.pos,a=e.box,l=a.width,u=a.height,h=Gi(o.left,l),c=Gi(o.top,u),p=Gi(o.right,l),d=Gi(o.bottom,u),(isNaN(h)||isNaN(parseFloat(o.left)))&&(h=0),(isNaN(p)||isNaN(parseFloat(o.right)))&&(p=l),(isNaN(c)||isNaN(parseFloat(o.top)))&&(c=0),(isNaN(d)||isNaN(parseFloat(o.bottom)))&&(d=u),s=Fh(s||0),{width:Math.max(p-h-s[1]-s[3],0),height:Math.max(d-c-s[0]-s[2],0)}),m=e.totalWidth,_=e.renderList,x=_.length-1;x>=0;x--){var b=_[x],w=b.node,S=b.width,M=b.text;m>v.width&&(m-=S-g,S=g,M=null);var T=new Pl({shape:{points:tI(f,0,S,y,x===_.length-1,0===x)},style:I(n.getItemStyle(),{lineJoin:"bevel"}),textContent:new Ka({style:{text:M,fill:i.getTextColor(),font:i.getFont()}}),textConfig:{position:"inside"},z:10,onclick:B(r,w)});T.disableLabelAnimation=!0,this.group.add(T),eI(T,t,w),f+=S+8}},t.prototype.remove=function(){this.group.removeAll()},t}();function tI(t,e,n,i,r,o){var a=[[r?t:t-5,e],[t+n,e],[t+n,e+i],[r?t:t-5,e+i]];return!o&&a.splice(2,0,[t+n+5,e+i/2]),!r&&a.push([t,e+i/2]),a}function eI(t,e,n){rs(t).eventData={componentType:"series",componentSubType:"treemap",componentIndex:e.componentIndex,seriesIndex:e.componentIndex,seriesName:e.name,seriesType:"treemap",selfType:"breadcrumb",nodeData:{dataIndex:n&&n.dataIndex,name:n&&n.name},treePathInfo:n&&ZM(n,e)}}var nI=function(){function t(){this._storage=[],this._elExistsMap={}}return t.prototype.add=function(t,e,n,i,r){return!this._elExistsMap[t.id]&&(this._elExistsMap[t.id]=!0,this._storage.push({el:t,target:e,duration:n,delay:i,easing:r}),!0)},t.prototype.finished=function(t){return this._finishedCallback=t,this},t.prototype.start=function(){for(var t=this,e=this._storage.length,n=function(){--e<=0&&(t._storage.length=0,t._elExistsMap={},t._finishedCallback&&t._finishedCallback())},i=0,r=this._storage.length;i<r;i++){var o=this._storage[i];o.el.animateTo(o.target,{duration:o.duration,delay:o.delay,easing:o.easing,setToFinal:!0,done:n,aborted:n})}return this},t}();var iI=Pi,rI=Za,oI=Vr([["fill","color"],["stroke","strokeColor"],["lineWidth","strokeWidth"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]),aI=function(t){var e=oI(t);return e.stroke=e.fill=e.lineWidth=null,e},sI=br(),lI=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e._state="ready",e._storage={nodeGroup:[],background:[],content:[]},e}return e(n,t),n.prototype.render=function(t,e,n,i){if(!(C(e.findComponents({mainType:"series",subType:"treemap",query:i}),t)<0)){this.seriesModel=t,this.api=n,this.ecModel=e;var r=YM(i,["treemapZoomToNode","treemapRootToNode"],t),o=i&&i.type,a=t.layoutInfo,s=!this._oldTree,l=this._storage,u="treemapRootToNode"===o&&r&&l?{rootNodeGroup:l.nodeGroup[r.node.getRawIndex()],direction:i.direction}:null,h=this._giveContainerGroup(a),c=this._doRender(h,t,u);s||o&&"treemapZoomToNode"!==o&&"treemapRootToNode"!==o?c.renderFinally():this._doAnimation(h,c,t,u),this._resetController(n),this._renderBreadcrumb(t,n,r)}},n.prototype._giveContainerGroup=function(t){var e=this._containerGroup;return e||(e=this._containerGroup=new iI,this._initEvents(e),this.group.add(e)),e.x=t.x,e.y=t.y,e},n.prototype._doRender=function(t,e,n){var i=e.getData().tree,r=this._oldTree,o={nodeGroup:[],background:[],content:[]},a={nodeGroup:[],background:[],content:[]},s=this._storage,l=[];function u(t,i,r,u){return function(t,e,n,i,r,o,a,s,l,u){if(!a)return;var h=a.getLayout(),c=t.getData(),p=a.getModel();if(c.setItemGraphicEl(a.dataIndex,null),!h||!h.isInView)return;var d=h.width,f=h.height,g=h.borderWidth,y=h.invisible,v=a.getRawIndex(),m=s&&s.getRawIndex(),_=a.viewChildren,x=h.upperHeight,b=_&&_.length,w=p.getModel("itemStyle"),S=p.getModel(["emphasis","itemStyle"]),I=p.getModel(["blur","itemStyle"]),T=p.getModel(["select","itemStyle"]),C=w.get("borderRadius")||0,A=V("nodeGroup",iI);if(!A)return;if(l.add(A),A.x=h.x||0,A.y=h.y||0,A.markRedraw(),sI(A).nodeWidth=d,sI(A).nodeHeight=f,h.isAboveViewRoot)return A;var D=V("background",rI,u,1);D&&R(A,D,b&&h.upperLabelHeight);var L=p.get(["emphasis","focus"]),k=p.get(["emphasis","blurScope"]),P="ancestor"===L?a.getAncestorsIndices():"descendant"===L?a.getDescendantIndices():null;if(b)Gs(A)&&Fs(A,!1),D&&(Fs(D,!0),c.setItemGraphicEl(a.dataIndex,D),Es(D,P||L,k));else{var O=V("content",rI,u,2);O&&N(A,O),D&&Gs(D)&&Fs(D,!1),Fs(A,!0),c.setItemGraphicEl(a.dataIndex,A),Es(A,P||L,k)}return A;function R(e,n,i){var r=rs(n);if(r.dataIndex=a.dataIndex,r.seriesIndex=t.seriesIndex,n.setShape({x:0,y:0,width:d,height:f,r:C}),y)E(n);else{n.invisible=!1;var o=a.getVisual("style"),s=o.stroke,l=aI(w);l.fill=s;var u=oI(S);u.fill=S.get("borderColor");var h=oI(I);h.fill=I.get("borderColor");var c=oI(T);if(c.fill=T.get("borderColor"),i){var p=d-2*g;z(n,s,p,x,o.opacity,{x:g,y:0,width:p,height:x})}else n.removeTextContent();n.setStyle(l),n.ensureState("emphasis").style=u,n.ensureState("blur").style=h,n.ensureState("select").style=c,Ms(n)}e.add(n)}function N(e,n){var i=rs(n);i.dataIndex=a.dataIndex,i.seriesIndex=t.seriesIndex;var r=Math.max(d-2*g,0),o=Math.max(f-2*g,0);if(n.culling=!0,n.setShape({x:g,y:g,width:r,height:o,r:C}),y)E(n);else{n.invisible=!1;var s=a.getVisual("style"),l=s.fill,u=aI(w);u.fill=l,u.decal=s.decal;var h=oI(S),c=oI(I),p=oI(T);z(n,l,r,s.opacity),n.setStyle(u),n.ensureState("emphasis").style=h,n.ensureState("blur").style=c,n.ensureState("select").style=p,Ms(n)}e.add(n)}function E(t){!t.invisible&&o.push(t)}function z(e,n,i,r,o,s){var l=p.getModel(s?"upperLabel":"label"),u=J(t.getFormattedLabel(a.dataIndex,"normal",null,null,l.get("formatter")),vr(p.get("name"),null));if(!s&&h.isLeafRoot){var c=t.get("drillDownIcon",!0);u=c?c+" "+u:u}var d=l.getShallow("show");zu(e,Bu(p,s?"upperLabel":"label"),{defaultText:d?u:null,inheritColor:n,defaultOpacity:i,labelFetcher:t,labelDataIndex:a.dataIndex});var f=e.getTextContent(),g=f.style,y=nt(g.padding||0);s&&(e.setTextConfig({layoutRect:s}),f.disableLabelLayout=!0),f.beforeUpdate=function(){var t=Math.max((s?s.width:e.shape.width)-y[1]-y[3],0),n=Math.max((s?s.height:e.shape.height)-y[0]-y[2],0);g.width===t&&g.height===n||f.setStyle({width:t,height:n})},g.truncateMinChar=2,g.lineOverflow="truncate",B(g,s,h);var v=f.getState("emphasis");B(v?v.style:null,s,h)}function B(e,n,i){var r=e?e.text:null;if(!n&&i.isLeafRoot&&null!=r){var o=t.get("drillDownIcon",!0);e.text=o?o+" "+r:r}}function V(t,i,o,a){var s=null!=m&&n[t][m],l=r[t];return s?(n[t][m]=null,F(l,s)):y||((s=new i)instanceof uo&&(s.z=function(t,e){var n=10*t+e;return(n-1)/n}(o,a)),G(l,s)),e[t][v]=s}function F(t,e){var n=t[v]={};e instanceof iI?(n.oldX=e.x,n.oldY=e.y):n.oldShape=M({},e.shape)}function G(t,e){var n=t[v]={},o=a.parentNode,s=e instanceof Pi;if(o&&(!i||"drillDown"===i.direction)){var l=0,u=0,h=r.background[o.getRawIndex()];!i&&h&&h.oldShape&&(l=h.oldShape.width,u=h.oldShape.height),s?(n.oldX=0,n.oldY=u):n.oldShape={x:l,y:u,width:0,height:0}}n.fadein=!s}}(e,a,s,n,o,l,t,i,r,u)}!function t(e,n,i,r,o){r?(n=e,k(e,(function(t,e){!t.isRemoved()&&s(e,e)}))):new Cv(n,e,a,a).add(s).update(s).remove(B(s,null)).execute();function a(t){return t.getId()}function s(a,s){var l=null!=a?e[a]:null,h=null!=s?n[s]:null,c=u(l,h,i,o);c&&t(l&&l.viewChildren||[],h&&h.viewChildren||[],c,r,o+1)}}(i.root?[i.root]:[],r&&r.root?[r.root]:[],t,i===r||!r,0);var h=function(t){var e={nodeGroup:[],background:[],content:[]};return t&&k(t,(function(t,n){var i=e[n];k(t,(function(t){t&&(i.push(t),sI(t).willDelete=!0)}))})),e}(s);return this._oldTree=i,this._storage=a,{lastsForAnimation:o,willDeleteEls:h,renderFinally:function(){k(h,(function(t){k(t,(function(t){t.parent&&t.parent.remove(t)}))})),k(l,(function(t){t.invisible=!0,t.dirty()}))}}},n.prototype._doAnimation=function(t,e,n,i){if(n.get("animation")){var r=n.get("animationDurationUpdate"),o=n.get("animationEasing"),a=(F(r)?0:r)||0,s=(F(o)?null:o)||"cubicOut",l=new nI;k(e.willDeleteEls,(function(t,e){k(t,(function(t,n){if(!t.invisible){var r,o=t.parent,u=sI(o);if(i&&"drillDown"===i.direction)r=o===i.rootNodeGroup?{shape:{x:0,y:0,width:u.nodeWidth,height:u.nodeHeight},style:{opacity:0}}:{style:{opacity:0}};else{var h=0,c=0;u.willDelete||(h=u.nodeWidth/2,c=u.nodeHeight/2),r="nodeGroup"===e?{x:h,y:c,style:{opacity:0}}:{shape:{x:h,y:c,width:0,height:0},style:{opacity:0}}}r&&l.add(t,r,a,0,s)}}))})),k(this._storage,(function(t,n){k(t,(function(t,i){var r=e.lastsForAnimation[n][i],o={};r&&(t instanceof Pi?null!=r.oldX&&(o.x=t.x,o.y=t.y,t.x=r.oldX,t.y=r.oldY):(r.oldShape&&(o.shape=M({},t.shape),t.setShape(r.oldShape)),r.fadein?(t.setStyle("opacity",0),o.style={opacity:1}):1!==t.style.opacity&&(o.style={opacity:1})),l.add(t,o,a,0,s))}))}),this),this._state="animating",l.finished(z((function(){this._state="ready",e.renderFinally()}),this)).start()}},n.prototype._resetController=function(t){var e=this._controller;e||((e=this._controller=new _S(t.getZr())).enable(this.seriesModel.get("roam")),e.on("pan",z(this._onPan,this)),e.on("zoom",z(this._onZoom,this)));var n=new Pn(0,0,t.getWidth(),t.getHeight());e.setPointerChecker((function(t,e,i){return n.contain(e,i)}))},n.prototype._clearController=function(){var t=this._controller;t&&(t.dispose(),t=null)},n.prototype._onPan=function(t){if("animating"!==this._state&&(Math.abs(t.dx)>3||Math.abs(t.dy)>3)){var e=this.seriesModel.getData().tree.root;if(!e)return;var n=e.getLayout();if(!n)return;this.api.dispatchAction({type:"treemapMove",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:n.x+t.dx,y:n.y+t.dy,width:n.width,height:n.height}})}},n.prototype._onZoom=function(t){var e=t.originX,n=t.originY;if("animating"!==this._state){var i=this.seriesModel.getData().tree.root;if(!i)return;var r=i.getLayout();if(!r)return;var o=new Pn(r.x,r.y,r.width,r.height),a=this.seriesModel.layoutInfo,s=[1,0,0,1,0,0];ve(s,s,[-(e-=a.x),-(n-=a.y)]),_e(s,s,[t.scale,t.scale]),ve(s,s,[e,n]),o.applyTransform(s),this.api.dispatchAction({type:"treemapRender",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:o.x,y:o.y,width:o.width,height:o.height}})}},n.prototype._initEvents=function(t){var e=this;t.on("click",(function(t){if("ready"===e._state){var n=e.seriesModel.get("nodeClick",!0);if(n){var i=e.findTarget(t.offsetX,t.offsetY);if(i){var r=i.node;if(r.getLayout().isLeafRoot)e._rootToNode(i);else if("zoomToNode"===n)e._zoomToNode(i);else if("link"===n){var o=r.hostTree.data.getItemModel(r.dataIndex),a=o.get("link",!0),s=o.get("target",!0)||"blank";a&&Kh(a,s)}}}}}),this)},n.prototype._renderBreadcrumb=function(t,e,n){var i=this;n||(n=null!=t.get("leafDepth",!0)?{node:t.getViewRoot()}:this.findTarget(e.getWidth()/2,e.getHeight()/2))||(n={node:t.getData().tree.root}),(this._breadcrumb||(this._breadcrumb=new QM(this.group))).render(t,e,n.node,(function(e){"animating"!==i._state&&(UM(t.getViewRoot(),e)?i._rootToNode({node:e}):i._zoomToNode({node:e}))}))},n.prototype.remove=function(){this._clearController(),this._containerGroup&&this._containerGroup.removeAll(),this._storage={nodeGroup:[],background:[],content:[]},this._state="ready",this._breadcrumb&&this._breadcrumb.remove()},n.prototype.dispose=function(){this._clearController()},n.prototype._zoomToNode=function(t){this.api.dispatchAction({type:"treemapZoomToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:t.node})},n.prototype._rootToNode=function(t){this.api.dispatchAction({type:"treemapRootToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:t.node})},n.prototype.findTarget=function(t,e){var n;return this.seriesModel.getViewRoot().eachNode({attr:"viewChildren",order:"preorder"},(function(i){var r=this._storage.background[i.getRawIndex()];if(r){var o=r.transformCoordToLocal(t,e),a=r.shape;if(!(a.x<=o[0]&&o[0]<=a.x+a.width&&a.y<=o[1]&&o[1]<=a.y+a.height))return!1;n={node:i,offsetX:o[0],offsetY:o[1]}}}),this),n},n.type="treemap",n}(Nd);var uI=k,hI=Y,cI=function(){function t(e){var n=e.mappingMethod,i=e.type,r=this.option=b(e);this.type=i,this.mappingMethod=n,this._normalizeData=bI[n];var o=t.visualHandlers[i];this.applyVisual=o.applyVisual,this.getColorMapper=o.getColorMapper,this._normalizedToVisual=o._normalizedToVisual[n],"piecewise"===n?(pI(r),function(t){var e=t.pieceList;t.hasSpecialVisual=!1,k(e,(function(e,n){e.originIndex=n,null!=e.visual&&(t.hasSpecialVisual=!0)}))}(r)):"category"===n?r.categories?function(t){var e=t.categories,n=t.categoryMap={},i=t.visual;if(uI(e,(function(t,e){n[t]=e})),!V(i)){var r=[];Y(i)?uI(i,(function(t,e){var i=n[e];r[null!=i?i:-1]=t})):r[-1]=i,i=xI(t,r)}for(var o=e.length-1;o>=0;o--)null==i[o]&&(delete n[e[o]],e.pop())}(r):pI(r,!0):(it("linear"!==n||r.dataExtent),pI(r))}return t.prototype.mapValueToVisual=function(t){var e=this._normalizeData(t);return this._normalizedToVisual(e,t)},t.prototype.getNormalizer=function(){return z(this._normalizeData,this)},t.listVisualTypes=function(){return E(t.visualHandlers)},t.isValidType=function(e){return t.visualHandlers.hasOwnProperty(e)},t.eachVisual=function(t,e,n){Y(t)?k(t,e,n):e.call(n,t)},t.mapVisual=function(e,n,i){var r,o=V(e)?[]:Y(e)?{}:(r=!0,null);return t.eachVisual(e,(function(t,e){var a=n.call(i,t,e);r?o=a:o[e]=a})),o},t.retrieveVisuals=function(e){var n,i={};return e&&uI(t.visualHandlers,(function(t,r){e.hasOwnProperty(r)&&(i[r]=e[r],n=!0)})),n?i:null},t.prepareVisualTypes=function(t){if(V(t))t=t.slice();else{if(!hI(t))return[];var e=[];uI(t,(function(t,n){e.push(n)})),t=e}return t.sort((function(t,e){return"color"===e&&"color"!==t&&0===t.indexOf("color")?1:-1})),t},t.dependsOn=function(t,e){return"color"===e?!(!t||0!==t.indexOf(e)):t===e},t.findPieceIndex=function(t,e,n){for(var i,r=1/0,o=0,a=e.length;o<a;o++){var s=e[o].value;if(null!=s){if(s===t||"string"==typeof s&&s===t+"")return o;n&&c(s,o)}}for(o=0,a=e.length;o<a;o++){var l=e[o],u=l.interval,h=l.close;if(u){if(u[0]===-1/0){if(wI(h[1],t,u[1]))return o}else if(u[1]===1/0){if(wI(h[0],u[0],t))return o}else if(wI(h[0],u[0],t)&&wI(h[1],t,u[1]))return o;n&&c(u[0],o),n&&c(u[1],o)}}if(n)return t===1/0?e.length-1:t===-1/0?0:i;function c(e,n){var o=Math.abs(e-t);o<r&&(r=o,i=n)}},t.visualHandlers={color:{applyVisual:gI("color"),getColorMapper:function(){var t=this.option;return z("category"===t.mappingMethod?function(t,e){return!e&&(t=this._normalizeData(t)),yI.call(this,t)}:function(e,n,i){var r=!!i;return!n&&(e=this._normalizeData(e)),i=$e(e,t.parsedVisual,i),r?i:rn(i,"rgba")},this)},_normalizedToVisual:{linear:function(t){return rn($e(t,this.option.parsedVisual),"rgba")},category:yI,piecewise:function(t,e){var n=_I.call(this,e);return null==n&&(n=rn($e(t,this.option.parsedVisual),"rgba")),n},fixed:vI}},colorHue:dI((function(t,e){return en(t,e)})),colorSaturation:dI((function(t,e){return en(t,null,e)})),colorLightness:dI((function(t,e){return en(t,null,null,e)})),colorAlpha:dI((function(t,e){return nn(t,e)})),decal:{applyVisual:gI("decal"),_normalizedToVisual:{linear:null,category:yI,piecewise:null,fixed:null}},opacity:{applyVisual:gI("opacity"),_normalizedToVisual:mI([0,1])},liftZ:{applyVisual:gI("liftZ"),_normalizedToVisual:{linear:vI,category:vI,piecewise:vI,fixed:vI}},symbol:{applyVisual:function(t,e,n){n("symbol",this.mapValueToVisual(t))},_normalizedToVisual:{linear:fI,category:yI,piecewise:function(t,e){var n=_I.call(this,e);return null==n&&(n=fI.call(this,t)),n},fixed:vI}},symbolSize:{applyVisual:gI("symbolSize"),_normalizedToVisual:mI([0,1])}},t}();function pI(t,e){var n=t.visual,i=[];Y(n)?uI(n,(function(t){i.push(t)})):null!=n&&i.push(n);e||1!==i.length||{color:1,symbol:1}.hasOwnProperty(t.type)||(i[1]=i[0]),xI(t,i)}function dI(t){return{applyVisual:function(e,n,i){var r=this.mapValueToVisual(e);i("color",t(n("color"),r))},_normalizedToVisual:mI([0,1])}}function fI(t){var e=this.option.visual;return e[Math.round(Fi(t,[0,1],[0,e.length-1],!0))]||{}}function gI(t){return function(e,n,i){i(t,this.mapValueToVisual(e))}}function yI(t){var e=this.option.visual;return e[this.option.loop&&-1!==t?t%e.length:t]}function vI(){return this.option.visual[0]}function mI(t){return{linear:function(e){return Fi(e,t,this.option.visual,!0)},category:yI,piecewise:function(e,n){var i=_I.call(this,n);return null==i&&(i=Fi(e,t,this.option.visual,!0)),i},fixed:vI}}function _I(t){var e=this.option,n=e.pieceList;if(e.hasSpecialVisual){var i=n[cI.findPieceIndex(t,n)];if(i&&i.visual)return i.visual[this.type]}}function xI(t,e){return t.visual=e,"color"===t.type&&(t.parsedVisual=P(e,(function(t){return Ze(t)}))),e}var bI={linear:function(t){return Fi(t,this.option.dataExtent,[0,1],!0)},piecewise:function(t){var e=this.option.pieceList,n=cI.findPieceIndex(t,e,!0);if(null!=n)return Fi(n,[0,e.length-1],[0,1],!0)},category:function(t){var e=this.option.categories?this.option.categoryMap[t]:t;return null==e?-1:e},fixed:pt};function wI(t,e,n){return t?e<=n:e<n}var SI=br(),MI={seriesType:"treemap",reset:function(t){var e=t.getData().tree.root;e.isRemoved()||II(e,{},t.getViewRoot().getAncestors(),t)}};function II(t,e,n,i){var r=t.getModel(),o=t.getLayout(),a=t.hostTree.data;if(o&&!o.invisible&&o.isInView){var s,l=r.getModel("itemStyle"),u=function(t,e,n){var i=M({},e),r=n.designatedVisualItemStyle;return k(["color","colorAlpha","colorSaturation"],(function(n){r[n]=e[n];var o=t.get(n);r[n]=null,null!=o&&(i[n]=o)})),i}(l,e,i),h=a.ensureUniqueItemVisual(t.dataIndex,"style"),c=l.get("borderColor"),p=l.get("borderColorSaturation");null!=p&&(c=function(t,e){return null!=e?en(e,null,null,t):null}(p,s=TI(u))),h.stroke=c;var d=t.viewChildren;if(d&&d.length){var f=function(t,e,n,i,r,o){if(!o||!o.length)return;var a=AI(e,"color")||null!=r.color&&"none"!==r.color&&(AI(e,"colorAlpha")||AI(e,"colorSaturation"));if(!a)return;var s=e.get("visualMin"),l=e.get("visualMax"),u=n.dataExtent.slice();null!=s&&s<u[0]&&(u[0]=s),null!=l&&l>u[1]&&(u[1]=l);var h=e.get("colorMappingBy"),c={type:a.name,dataExtent:u,visual:a.range};"color"!==c.type||"index"!==h&&"id"!==h?c.mappingMethod="linear":(c.mappingMethod="category",c.loop=!0);var p=new cI(c);return SI(p).drColorMappingBy=h,p}(0,r,o,0,u,d);k(d,(function(t,e){if(t.depth>=n.length||t===n[t.depth]){var o=function(t,e,n,i,r,o){var a=M({},e);if(r){var s=r.type,l="color"===s&&SI(r).drColorMappingBy,u="index"===l?i:"id"===l?o.mapIdToIndex(n.getId()):n.getValue(t.get("visualDimension"));a[s]=r.mapValueToVisual(u)}return a}(r,u,t,e,f,i);II(t,o,n,i)}}))}else s=TI(u),h.fill=s}}function TI(t){var e=CI(t,"color");if(e){var n=CI(t,"colorAlpha"),i=CI(t,"colorSaturation");return i&&(e=en(e,null,null,i)),n&&(e=nn(e,n)),e}}function CI(t,e){var n=t[e];if(null!=n&&"none"!==n)return n}function AI(t,e){var n=t.get(e);return V(n)&&n.length?{name:e,range:n}:null}var DI=Math.max,LI=Math.min,kI=J,PI=k,OI=["itemStyle","borderWidth"],RI=["itemStyle","gapWidth"],NI=["upperLabel","show"],EI=["upperLabel","height"],zI={seriesType:"treemap",reset:function(t,e,n,i){var r=n.getWidth(),o=n.getHeight(),a=t.option,s=nc(t.getBoxLayoutParams(),{width:n.getWidth(),height:n.getHeight()}),l=a.size||[],u=Gi(kI(s.width,l[0]),r),h=Gi(kI(s.height,l[1]),o),c=i&&i.type,p=YM(i,["treemapZoomToNode","treemapRootToNode"],t),d="treemapRender"===c||"treemapMove"===c?i.rootRect:null,f=t.getViewRoot(),g=XM(f);if("treemapMove"!==c){var y="treemapZoomToNode"===c?function(t,e,n,i,r){var o,a=(e||{}).node,s=[i,r];if(!a||a===n)return s;var l=i*r,u=l*t.option.zoomToNodeRatio;for(;o=a.parentNode;){for(var h=0,c=o.children,p=0,d=c.length;p<d;p++)h+=c[p].getValue();var f=a.getValue();if(0===f)return s;u*=h/f;var g=o.getModel(),y=g.get(OI);(u+=4*y*y+(3*y+Math.max(y,HI(g)))*Math.pow(u,.5))>9007199254740991&&(u=9007199254740991),a=o}u<l&&(u=l);var v=Math.pow(u/l,.5);return[i*v,r*v]}(t,p,f,u,h):d?[d.width,d.height]:[u,h],v=a.sort;v&&"asc"!==v&&"desc"!==v&&(v="desc");var m={squareRatio:a.squareRatio,sort:v,leafDepth:a.leafDepth};f.hostTree.clearLayouts();var _={x:0,y:0,width:y[0],height:y[1],area:y[0]*y[1]};f.setLayout(_),BI(f,m,!1,0),_=f.getLayout(),PI(g,(function(t,e){var n=(g[e+1]||f).getValue();t.setLayout(M({dataExtent:[n,n],borderWidth:0,upperHeight:0},_))}))}var x=t.getData().tree.root;x.setLayout(function(t,e,n){if(e)return{x:e.x,y:e.y};var i={x:0,y:0};if(!n)return i;var r=n.node,o=r.getLayout();if(!o)return i;var a=[o.width/2,o.height/2],s=r;for(;s;){var l=s.getLayout();a[0]+=l.x,a[1]+=l.y,s=s.parentNode}return{x:t.width/2-a[0],y:t.height/2-a[1]}}(s,d,p),!0),t.setLayoutInfo(s),GI(x,new Pn(-s.x,-s.y,r,o),g,f,0)}};function BI(t,e,n,i){var r,o;if(!t.isRemoved()){var a=t.getLayout();r=a.width,o=a.height;var s=t.getModel(),l=s.get(OI),u=s.get(RI)/2,h=HI(s),c=Math.max(l,h),p=l-u,d=c-u;t.setLayout({borderWidth:l,upperHeight:c,upperLabelHeight:h},!0);var f=(r=DI(r-2*p,0))*(o=DI(o-p-d,0)),g=function(t,e,n,i,r,o){var a=t.children||[],s=i.sort;"asc"!==s&&"desc"!==s&&(s=null);var l=null!=i.leafDepth&&i.leafDepth<=o;if(r&&!l)return t.viewChildren=[];!function(t,e){e&&t.sort((function(t,n){var i="asc"===e?t.getValue()-n.getValue():n.getValue()-t.getValue();return 0===i?"asc"===e?t.dataIndex-n.dataIndex:n.dataIndex-t.dataIndex:i}))}(a=R(a,(function(t){return!t.isRemoved()})),s);var u=function(t,e,n){for(var i=0,r=0,o=e.length;r<o;r++)i+=e[r].getValue();var a,s=t.get("visualDimension");e&&e.length?"value"===s&&n?(a=[e[e.length-1].getValue(),e[0].getValue()],"asc"===n&&a.reverse()):(a=[1/0,-1/0],PI(e,(function(t){var e=t.getValue(s);e<a[0]&&(a[0]=e),e>a[1]&&(a[1]=e)}))):a=[NaN,NaN];return{sum:i,dataExtent:a}}(e,a,s);if(0===u.sum)return t.viewChildren=[];if(u.sum=function(t,e,n,i,r){if(!i)return n;for(var o=t.get("visibleMin"),a=r.length,s=a,l=a-1;l>=0;l--){var u=r["asc"===i?a-l-1:l].getValue();u/n*e<o&&(s=l,n-=u)}return"asc"===i?r.splice(0,a-s):r.splice(s,a-s),n}(e,n,u.sum,s,a),0===u.sum)return t.viewChildren=[];for(var h=0,c=a.length;h<c;h++){var p=a[h].getValue()/u.sum*n;a[h].setLayout({area:p})}l&&(a.length&&t.setLayout({isLeafRoot:!0},!0),a.length=0);return t.viewChildren=a,t.setLayout({dataExtent:u.dataExtent},!0),a}(t,s,f,e,n,i);if(g.length){var y={x:p,y:d,width:r,height:o},v=LI(r,o),m=1/0,_=[];_.area=0;for(var x=0,b=g.length;x<b;){var w=g[x];_.push(w),_.area+=w.getLayout().area;var S=VI(_,v,e.squareRatio);S<=m?(x++,m=S):(_.area-=_.pop().getLayout().area,FI(_,v,y,u,!1),v=LI(y.width,y.height),_.length=_.area=0,m=1/0)}if(_.length&&FI(_,v,y,u,!0),!n){var M=s.get("childrenVisibleMin");null!=M&&f<M&&(n=!0)}for(x=0,b=g.length;x<b;x++)BI(g[x],e,n,i+1)}}}function VI(t,e,n){for(var i=0,r=1/0,o=0,a=void 0,s=t.length;o<s;o++)(a=t[o].getLayout().area)&&(a<r&&(r=a),a>i&&(i=a));var l=t.area*t.area,u=e*e*n;return l?DI(u*i/l,l/(u*r)):1/0}function FI(t,e,n,i,r){var o=e===n.width?0:1,a=1-o,s=["x","y"],l=["width","height"],u=n[s[o]],h=e?t.area/e:0;(r||h>n[l[a]])&&(h=n[l[a]]);for(var c=0,p=t.length;c<p;c++){var d=t[c],f={},g=h?d.getLayout().area/h:0,y=f[l[a]]=DI(h-2*i,0),v=n[s[o]]+n[l[o]]-u,m=c===p-1||v<g?v:g,_=f[l[o]]=DI(m-2*i,0);f[s[a]]=n[s[a]]+LI(i,y/2),f[s[o]]=u+LI(i,_/2),u+=m,d.setLayout(f,!0)}n[s[a]]+=h,n[l[a]]-=h}function GI(t,e,n,i,r){var o=t.getLayout(),a=n[r],s=a&&a===t;if(!(a&&!s||r===n.length&&t!==i)){t.setLayout({isInView:!0,invisible:!s&&!e.intersect(o),isAboveViewRoot:s},!0);var l=new Pn(e.x-o.x,e.y-o.y,e.width,e.height);PI(t.viewChildren||[],(function(t){GI(t,l,n,i,r+1)}))}}function HI(t){return t.get(NI)?t.get(EI):0}function WI(t){var e=t.findComponents({mainType:"legend"});e&&e.length&&t.eachSeriesByType("graph",(function(t){var n=t.getCategoriesData(),i=t.getGraph().data,r=n.mapArray(n.getName);i.filterSelf((function(t){var n=i.getItemModel(t).getShallow("category");if(null!=n){"number"==typeof n&&(n=r[n]);for(var o=0;o<e.length;o++)if(!e[o].isSelected(n))return!1}return!0}))}))}function YI(t){var e={};t.eachSeriesByType("graph",(function(t){var n=t.getCategoriesData(),i=t.getData(),r={};n.each((function(i){var o=n.getName(i);r["ec-"+o]=i;var a=n.getItemModel(i),s=a.getModel("itemStyle").getItemStyle();s.fill||(s.fill=t.getColorFromPalette(o,e)),n.setItemVisual(i,"style",s);for(var l=["symbol","symbolSize","symbolKeepAspect"],u=0;u<l.length;u++){var h=a.getShallow(l[u],!0);null!=h&&n.setItemVisual(i,l[u],h)}})),n.count()&&i.each((function(t){var e=i.getItemModel(t).getShallow("category");if(null!=e){"string"==typeof e&&(e=r["ec-"+e]);var o=n.getItemVisual(e,"style");M(i.ensureUniqueItemVisual(t,"style"),o);for(var a=["symbol","symbolSize","symbolKeepAspect"],s=0;s<a.length;s++)i.setItemVisual(t,a[s],n.getItemVisual(e,a[s]))}}))}))}function XI(t){return t instanceof Array||(t=[t,t]),t}function UI(t){t.eachSeriesByType("graph",(function(t){var e=t.getGraph(),n=t.getEdgeData(),i=XI(t.get("edgeSymbol")),r=XI(t.get("edgeSymbolSize"));n.setVisual("fromSymbol",i&&i[0]),n.setVisual("toSymbol",i&&i[1]),n.setVisual("fromSymbolSize",r&&r[0]),n.setVisual("toSymbolSize",r&&r[1]),n.setVisual("style",t.getModel("lineStyle").getLineStyle()),n.each((function(t){var i=n.getItemModel(t),r=e.getEdgeByIndex(t),o=XI(i.getShallow("symbol",!0)),a=XI(i.getShallow("symbolSize",!0)),s=i.getModel("lineStyle").getLineStyle(),l=n.ensureUniqueItemVisual(t,"style");switch(M(l,s),l.stroke){case"source":var u=r.node1.getVisual("style");l.stroke=u&&u.fill;break;case"target":u=r.node2.getVisual("style");l.stroke=u&&u.fill}o[0]&&r.setVisual("fromSymbol",o[0]),o[1]&&r.setVisual("toSymbol",o[1]),a[0]&&r.setVisual("fromSymbolSize",a[0]),a[1]&&r.setVisual("toSymbolSize",a[1])}))}))}var ZI=function(t){return t.get("autoCurveness")||null},jI=function(t,e){var n=ZI(t),i=20,r=[];if("number"==typeof n)i=n;else if(V(n))return void(t.__curvenessList=n);e>i&&(i=e);var o=i%2?i+2:i+3;r=[];for(var a=0;a<o;a++)r.push((a%2?a+1:a)/10*(a%2?-1:1));t.__curvenessList=r},qI=function(t,e,n){var i=[t.id,t.dataIndex].join("."),r=[e.id,e.dataIndex].join(".");return[n.uid,i,r].join("--\x3e")},KI=function(t){var e=t.split("--\x3e");return[e[0],e[2],e[1]].join("--\x3e")},$I=function(t,e){var n=e.__edgeMap;return n[t]?n[t].length:0};function JI(t,e,n,i){var r=ZI(e),o=V(r);if(!r)return null;var a=function(t,e){var n=qI(t.node1,t.node2,e);return e.__edgeMap[n]}(t,e);if(!a)return null;for(var s=-1,l=0;l<a.length;l++)if(a[l]===n){s=l;break}var u=function(t,e){return $I(qI(t.node1,t.node2,e),e)+$I(qI(t.node2,t.node1,e),e)}(t,e);jI(e,u),t.lineStyle=t.lineStyle||{};var h=qI(t.node1,t.node2,e),c=e.__curvenessList,p=o||u%2?0:1;if(a.isForward)return c[p+s];var d=KI(h),f=$I(d,e),g=c[s+f+p];return i?o?r&&0===r[0]?(f+p)%2?g:-g:((f%2?0:1)+p)%2?g:-g:(f+p)%2?g:-g:c[s+f+p]}function QI(t){var e=t.coordinateSystem;if(!e||"view"===e.type){var n=t.getGraph();n.eachNode((function(t){var e=t.getModel();t.setLayout([+e.get("x"),+e.get("y")])})),tT(n,t)}}function tT(t,e){t.eachEdge((function(t,n){var i=tt(t.getModel().get(["lineStyle","curveness"]),-JI(t,e,n,!0),0),r=mt(t.node1.getLayout()),o=mt(t.node2.getLayout()),a=[r,o];+i&&a.push([(r[0]+o[0])/2-(r[1]-o[1])*i,(r[1]+o[1])/2-(o[0]-r[0])*i]),t.setLayout(a)}))}function eT(t,e){t.eachSeriesByType("graph",(function(t){var e=t.get("layout"),n=t.coordinateSystem;if(n&&"view"!==n.type){var i=t.getData(),r=[];k(n.dimensions,(function(t){r=r.concat(i.mapDimensionsAll(t))}));for(var o=0;o<i.count();o++){for(var a=[],s=!1,l=0;l<r.length;l++){var u=i.get(r[l],o);isNaN(u)||(s=!0),a.push(u)}s?i.setItemLayout(o,n.dataToPoint(a)):i.setItemLayout(o,[NaN,NaN])}tT(i.graph,t)}else e&&"none"!==e||QI(t)}))}function nT(t){var e=t.coordinateSystem;if("view"!==e.type)return 1;var n=t.option.nodeScaleRatio,i=e.scaleX;return((e.getZoom()-1)*n+1)/i}function iT(t){var e=t.getVisual("symbolSize");return e instanceof Array&&(e=(e[0]+e[1])/2),+e}var rT=Math.PI,oT=[];function aT(t,e){var n=t.coordinateSystem;if(!n||"view"===n.type){var i=n.getBoundingRect(),r=t.getData(),o=r.graph,a=i.width/2+i.x,s=i.height/2+i.y,l=Math.min(i.width,i.height)/2,u=r.count();r.setLayout({cx:a,cy:s}),u&&(sT[e](t,o,r,l,a,s,u),o.eachEdge((function(e,n){var i,r=tt(e.getModel().get(["lineStyle","curveness"]),JI(e,t,n),0),o=mt(e.node1.getLayout()),l=mt(e.node2.getLayout()),u=(o[0]+l[0])/2,h=(o[1]+l[1])/2;+r&&(i=[a*(r*=3)+u*(1-r),s*r+h*(1-r)]),e.setLayout([o,l,i])})))}}var sT={value:function(t,e,n,i,r,o,a){var s=0,l=n.getSum("value"),u=2*Math.PI/(l||a);e.eachNode((function(t){var e=t.getValue("value"),n=u*(l?e:1)/2;s+=n,t.setLayout([i*Math.cos(s)+r,i*Math.sin(s)+o]),s+=n}))},symbolSize:function(t,e,n,i,r,o,a){var s=0;oT.length=a;var l=nT(t);e.eachNode((function(t){var e=iT(t);isNaN(e)&&(e=2),e<0&&(e=0),e*=l;var n=Math.asin(e/2/i);isNaN(n)&&(n=rT/2),oT[t.dataIndex]=n,s+=2*n}));var u=(2*rT-s)/a/2,h=0;e.eachNode((function(t){var e=u+oT[t.dataIndex];h+=e,t.setLayout([i*Math.cos(h)+r,i*Math.sin(h)+o]),h+=e}))}};function lT(t){t.eachSeriesByType("graph",(function(t){"circular"===t.get("layout")&&aT(t,"symbolSize")}))}var uT=bt;function hT(t){t.eachSeriesByType("graph",(function(t){var e=t.coordinateSystem;if(!e||"view"===e.type)if("force"===t.get("layout")){var n=t.preservedPoints||{},i=t.getGraph(),r=i.data,o=i.edgeData,a=t.getModel("force"),s=a.get("initLayout");t.preservedPoints?r.each((function(t){var e=r.getId(t);r.setItemLayout(t,n[e]||[NaN,NaN])})):s&&"none"!==s?"circular"===s&&aT(t,"value"):QI(t);var l=r.getDataExtent("value"),u=o.getDataExtent("value"),h=a.get("repulsion"),c=a.get("edgeLength"),p=V(h)?h:[h,h],d=V(c)?c:[c,c];d=[d[1],d[0]];var f=r.mapArray("value",(function(t,e){var n=r.getItemLayout(e),i=Fi(t,l,p);return isNaN(i)&&(i=(p[0]+p[1])/2),{w:i,rep:i,fixed:r.getItemModel(e).get("fixed"),p:!n||isNaN(n[0])||isNaN(n[1])?null:n}})),g=o.mapArray("value",(function(e,n){var r=i.getEdgeByIndex(n),o=Fi(e,u,d);isNaN(o)&&(o=(d[0]+d[1])/2);var a=r.getModel(),s=tt(r.getModel().get(["lineStyle","curveness"]),-JI(r,t,n,!0),0);return{n1:f[r.node1.dataIndex],n2:f[r.node2.dataIndex],d:o,curveness:s,ignoreForceLayout:a.get("ignoreForceLayout")}})),y=e.getBoundingRect(),v=function(t,e,n){for(var i=t,r=e,o=n.rect,a=o.width,s=o.height,l=[o.x+a/2,o.y+s/2],u=null==n.gravity?.1:n.gravity,h=0;h<i.length;h++){var c=i[h];c.p||(c.p=yt(a*(Math.random()-.5)+l[0],s*(Math.random()-.5)+l[1])),c.pp=mt(c.p),c.edges=null}var p,d,f=null==n.friction?.6:n.friction,g=f;return{warmUp:function(){g=.8*f},setFixed:function(t){i[t].fixed=!0},setUnfixed:function(t){i[t].fixed=!1},beforeStep:function(t){p=t},afterStep:function(t){d=t},step:function(t){p&&p(i,r);for(var e=[],n=i.length,o=0;o<r.length;o++){var a=r[o];if(!a.ignoreForceLayout){var s=a.n1;wt(e,(y=a.n2).p,s.p);var h=St(e)-a.d,c=y.w/(s.w+y.w);isNaN(c)&&(c=0),At(e,e),!s.fixed&&uT(s.p,s.p,e,c*h*g),!y.fixed&&uT(y.p,y.p,e,-(1-c)*h*g)}}for(o=0;o<n;o++)(_=i[o]).fixed||(wt(e,l,_.p),uT(_.p,_.p,e,u*g));for(o=0;o<n;o++){s=i[o];for(var f=o+1;f<n;f++){var y;wt(e,(y=i[f]).p,s.p),0===(h=St(e))&&(_t(e,Math.random()-.5,Math.random()-.5),h=1);var v=(s.rep+y.rep)/h/h;!s.fixed&&uT(s.pp,s.pp,e,v),!y.fixed&&uT(y.pp,y.pp,e,-v)}}var m=[];for(o=0;o<n;o++){var _;(_=i[o]).fixed||(wt(m,_.p,_.pp),uT(_.p,_.p,m,g),vt(_.pp,_.p))}var x=(g*=.992)<.01;d&&d(i,r,x),t&&t(x)}}}(f,g,{rect:y,gravity:a.get("gravity"),friction:a.get("friction")});v.beforeStep((function(t,e){for(var n=0,r=t.length;n<r;n++)t[n].fixed&&vt(t[n].p,i.getNodeByIndex(n).getLayout())})),v.afterStep((function(t,e,o){for(var a=0,s=t.length;a<s;a++)t[a].fixed||i.getNodeByIndex(a).setLayout(t[a].p),n[r.getId(a)]=t[a].p;for(a=0,s=e.length;a<s;a++){var l=e[a],u=i.getEdgeByIndex(a),h=l.n1.p,c=l.n2.p,p=u.getLayout();(p=p?p.slice():[])[0]=p[0]||[],p[1]=p[1]||[],vt(p[0],h),vt(p[1],c),+l.curveness&&(p[2]=[(h[0]+c[0])/2-(h[1]-c[1])*l.curveness,(h[1]+c[1])/2-(c[0]-h[0])*l.curveness]),u.setLayout(p)}})),t.forceLayout=v,t.preservedPoints=n,v.step()}else t.forceLayout=null}))}function cT(t,e){var n=[];return t.eachSeriesByType("graph",(function(t){var i=t.get("coordinateSystem");if(!i||"view"===i){var r=t.getData(),o=[],a=[];Wo(r.mapArray((function(t){var e=r.getItemModel(t);return[+e.get("x"),+e.get("y")]})),o,a),a[0]-o[0]==0&&(a[0]+=1,o[0]-=1),a[1]-o[1]==0&&(a[1]+=1,o[1]-=1);var s=(a[0]-o[0])/(a[1]-o[1]),l=function(t,e,n){return nc(M(t.getBoxLayoutParams(),{aspect:n}),{width:e.getWidth(),height:e.getHeight()})}(t,e,s);isNaN(s)&&(o=[l.x,l.y],a=[l.x+l.width,l.y+l.height]);var u=a[0]-o[0],h=a[1]-o[1],c=l.width,p=l.height,d=t.coordinateSystem=new _M;d.zoomLimit=t.get("scaleLimit"),d.setBoundingRect(o[0],o[1],u,h),d.setViewRect(l.x,l.y,c,p),d.setCenter(t.get("center")),d.setZoom(t.get("zoom")),n.push(d)}})),n}var pT=zl.prototype,dT=Gl.prototype,fT=function(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.percent=1};!function(t){function n(){return null!==t&&t.apply(this,arguments)||this}e(n,t)}(fT);function gT(t){return isNaN(+t.cpx1)||isNaN(+t.cpy1)}var yT=function(t){function n(e){var n=t.call(this,e)||this;return n.type="ec-line",n}return e(n,t),n.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},n.prototype.getDefaultShape=function(){return new fT},n.prototype.buildPath=function(t,e){gT(e)?pT.buildPath.call(this,t,e):dT.buildPath.call(this,t,e)},n.prototype.pointAt=function(t){return gT(this.shape)?pT.pointAt.call(this,t):dT.pointAt.call(this,t)},n.prototype.tangentAt=function(t){var e=this.shape,n=gT(e)?[e.x2-e.x1,e.y2-e.y1]:dT.tangentAt.call(this,t);return At(n,n)},n}(Na),vT=["fromSymbol","toSymbol"];function mT(t){return"_"+t+"Type"}function _T(t,e,n){var i=e.getItemVisual(n,t);if(i&&"none"!==i){var r=e.getItemVisual(n,t+"Size"),o=e.getItemVisual(n,t+"Rotate"),a=V(r)?r:[r,r],s=Ig(i,-a[0]/2,-a[1]/2,a[0],a[1]);return s.__specifiedRotation=null==o||isNaN(o)?void 0:+o*Math.PI/180||0,s.name=t,s}}function xT(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 bT=function(t){function n(e,n,i){var r=t.call(this)||this;return r._createLine(e,n,i),r}return e(n,t),n.prototype._createLine=function(t,e,n){var i=t.hostModel,r=function(t){var e=new yT({name:"line",subPixelOptimize:!0});return xT(e.shape,t),e}(t.getItemLayout(e));r.shape.percent=0,vu(r,{shape:{percent:1}},i,e),this.add(r),k(vT,(function(n){var i=_T(n,t,e);this.add(i),this[mT(n)]=t.getItemVisual(e,n)}),this),this._updateCommonStl(t,e,n)},n.prototype.updateData=function(t,e,n){var i=t.hostModel,r=this.childOfName("line"),o=t.getItemLayout(e),a={shape:{}};xT(a.shape,o),yu(r,a,i,e),k(vT,(function(n){var i=t.getItemVisual(e,n),r=mT(n);if(this[r]!==i){this.remove(this.childOfName(n));var o=_T(n,t,e);this.add(o)}this[r]=i}),this),this._updateCommonStl(t,e,n)},n.prototype.getLinePath=function(){return this.childAt(0)},n.prototype._updateCommonStl=function(t,e,n){var i=t.hostModel,r=this.childOfName("line"),o=n&&n.emphasisLineStyle,a=n&&n.blurLineStyle,s=n&&n.selectLineStyle,l=n&&n.labelStatesModels;if(!n||t.hasItemOption){var u=t.getItemModel(e);o=u.getModel(["emphasis","lineStyle"]).getLineStyle(),a=u.getModel(["blur","lineStyle"]).getLineStyle(),s=u.getModel(["select","lineStyle"]).getLineStyle(),l=Bu(u)}var h=t.getItemVisual(e,"style"),c=h.stroke;r.useStyle(h),r.style.fill=null,r.style.strokeNoScale=!0,r.ensureState("emphasis").style=o,r.ensureState("blur").style=a,r.ensureState("select").style=s,k(vT,(function(t){var e=this.childOfName(t);if(e){e.setColor(c),e.style.opacity=h.opacity;for(var n=0;n<ls.length;n++){var i=ls[n],o=r.getState(i);if(o){var a=o.style||{},s=e.ensureState(i),l=s.style||(s.style={});null!=a.stroke&&(l[e.__isEmptyBrush?"stroke":"fill"]=a.stroke),null!=a.opacity&&(l.opacity=a.opacity)}}e.markRedraw()}}),this);var p=i.getRawValue(e);zu(this,l,{labelDataIndex:e,labelFetcher:{getFormattedLabel:function(e,n){return i.getFormattedLabel(e,n,t.dataType)}},inheritColor:c||"#000",defaultOpacity:h.opacity,defaultText:(null==p?t.getName(e):isFinite(p)?Hi(p):p)+""});var d=this.getTextContent();if(d){var f=l.normal;d.__align=d.style.align,d.__verticalAlign=d.style.verticalAlign,d.__position=f.get("position")||"middle";var g=f.get("distance");V(g)||(g=[g,g]),d.__labelDistance=g}this.setTextConfig({position:null,local:!0,inside:!1}),Ns(this)},n.prototype.highlight=function(){Is(this)},n.prototype.downplay=function(){Ts(this)},n.prototype.updateLayout=function(t,e){this.setLinePoints(t.getItemLayout(e))},n.prototype.setLinePoints=function(t){var e=this.childOfName("line");xT(e.shape,t),e.dirty()},n.prototype.beforeUpdate=function(){var t=this,e=t.childOfName("fromSymbol"),n=t.childOfName("toSymbol"),i=t.getTextContent();if(e||n||i&&!i.ignore){for(var r=1,o=this.parent;o;)o.scaleX&&(r/=o.scaleX),o=o.parent;var a=t.childOfName("line");if(this.__dirty||a.__dirty){var s=a.shape.percent,l=a.pointAt(0),u=a.pointAt(s),h=wt([],u,l);if(At(h,h),e&&(e.setPosition(l),S(e,0),e.scaleX=e.scaleY=r*s,e.markRedraw()),n&&(n.setPosition(u),S(n,1),n.scaleX=n.scaleY=r*s,n.markRedraw()),i&&!i.ignore){i.x=i.y=0,i.originX=i.originY=0;var c=void 0,p=void 0,d=i.__labelDistance,f=d[0]*r,g=d[1]*r,y=s/2,v=a.tangentAt(y),m=[v[1],-v[0]],_=a.pointAt(y);m[1]>0&&(m[0]=-m[0],m[1]=-m[1]);var x=v[0]<0?-1:1;if("start"!==i.__position&&"end"!==i.__position){var b=-Math.atan2(v[1],v[0]);u[0]<l[0]&&(b=Math.PI+b),i.rotation=b}var w=void 0;switch(i.__position){case"insideStartTop":case"insideMiddleTop":case"insideEndTop":case"middle":w=-g,p="bottom";break;case"insideStartBottom":case"insideMiddleBottom":case"insideEndBottom":w=g,p="top";break;default:w=0,p="middle"}switch(i.__position){case"end":i.x=h[0]*f+u[0],i.y=h[1]*g+u[1],c=h[0]>.8?"left":h[0]<-.8?"right":"center",p=h[1]>.8?"top":h[1]<-.8?"bottom":"middle";break;case"start":i.x=-h[0]*f+l[0],i.y=-h[1]*g+l[1],c=h[0]>.8?"right":h[0]<-.8?"left":"center",p=h[1]>.8?"bottom":h[1]<-.8?"top":"middle";break;case"insideStartTop":case"insideStart":case"insideStartBottom":i.x=f*x+l[0],i.y=l[1]+w,c=v[0]<0?"right":"left",i.originX=-f*x,i.originY=-w;break;case"insideMiddleTop":case"insideMiddle":case"insideMiddleBottom":case"middle":i.x=_[0],i.y=_[1]+w,c="center",i.originY=-w;break;case"insideEndTop":case"insideEnd":case"insideEndBottom":i.x=-f*x+u[0],i.y=u[1]+w,c=v[0]>=0?"right":"left",i.originX=f*x,i.originY=-w}i.scaleX=i.scaleY=r,i.setStyle({verticalAlign:i.__verticalAlign||p,align:i.__align||c})}}}function S(t,e){var n=t.__specifiedRotation;if(null==n){var i=a.tangentAt(e);t.attr("rotation",(1===e?-1:1)*Math.PI/2-Math.atan2(i[1],i[0]))}else t.attr("rotation",n)}},n}(Pi),wT=function(){function t(t){this.group=new Pi,this._LineCtor=t||bT}return t.prototype.isPersistent=function(){return!0},t.prototype.updateData=function(t){var e=this,n=this,i=n.group,r=n._lineData;n._lineData=t,r||i.removeAll();var o=ST(t);t.diff(r).add((function(n){e._doAdd(t,n,o)})).update((function(n,i){e._doUpdate(r,t,i,n,o)})).remove((function(t){i.remove(r.getItemGraphicEl(t))})).execute()},t.prototype.updateLayout=function(){var t=this._lineData;t&&t.eachItemGraphicEl((function(e,n){e.updateLayout(t,n)}),this)},t.prototype.incrementalPrepareUpdate=function(t){this._seriesScope=ST(t),this._lineData=null,this.group.removeAll()},t.prototype.incrementalUpdate=function(t,e){function n(t){t.isGroup||function(t){return t.animators&&t.animators.length>0}(t)||(t.incremental=!0,t.ensureState("emphasis").hoverLayer=!0)}for(var i=t.start;i<t.end;i++){if(IT(e.getItemLayout(i))){var r=new this._LineCtor(e,i,this._seriesScope);r.traverse(n),this.group.add(r),e.setItemGraphicEl(i,r)}}},t.prototype.remove=function(){this.group.removeAll()},t.prototype._doAdd=function(t,e,n){if(IT(t.getItemLayout(e))){var i=new this._LineCtor(t,e,n);t.setItemGraphicEl(e,i),this.group.add(i)}},t.prototype._doUpdate=function(t,e,n,i,r){var o=t.getItemGraphicEl(n);IT(e.getItemLayout(i))?(o?o.updateData(e,i,r):o=new this._LineCtor(e,i,r),e.setItemGraphicEl(i,o),this.group.add(o)):this.group.remove(o)},t}();function ST(t){var e=t.hostModel;return{lineStyle:e.getModel("lineStyle").getLineStyle(),emphasisLineStyle:e.getModel(["emphasis","lineStyle"]).getLineStyle(),blurLineStyle:e.getModel(["blur","lineStyle"]).getLineStyle(),selectLineStyle:e.getModel(["select","lineStyle"]).getLineStyle(),labelStatesModels:Bu(e)}}function MT(t){return isNaN(t[0])||isNaN(t[1])}function IT(t){return!MT(t[0])&&!MT(t[1])}var TT=[],CT=[],AT=[],DT=Do,LT=Pt,kT=Math.abs;function PT(t,e,n){for(var i,r=t[0],o=t[1],a=t[2],s=1/0,l=n*n,u=.1,h=.1;h<=.9;h+=.1){TT[0]=DT(r[0],o[0],a[0],h),TT[1]=DT(r[1],o[1],a[1],h),(d=kT(LT(TT,e)-l))<s&&(s=d,i=h)}for(var c=0;c<32;c++){var p=i+u;CT[0]=DT(r[0],o[0],a[0],i),CT[1]=DT(r[1],o[1],a[1],i),AT[0]=DT(r[0],o[0],a[0],p),AT[1]=DT(r[1],o[1],a[1],p);var d=LT(CT,e)-l;if(kT(d)<.01)break;var f=LT(AT,e)-l;u/=2,d<0?f>=0?i+=u:i-=u:f>=0?i-=u:i+=u}return i}function OT(t,e){var n=[],i=Po,r=[[],[],[]],o=[[],[]],a=[];e/=2,t.eachEdge((function(t,s){var l=t.getLayout(),u=t.getVisual("fromSymbol"),h=t.getVisual("toSymbol");l.__original||(l.__original=[mt(l[0]),mt(l[1])],l[2]&&l.__original.push(mt(l[2])));var c=l.__original;if(null!=l[2]){if(vt(r[0],c[0]),vt(r[1],c[2]),vt(r[2],c[1]),u&&"none"!==u){var p=iT(t.node1),d=PT(r,c[0],p*e);i(r[0][0],r[1][0],r[2][0],d,n),r[0][0]=n[3],r[1][0]=n[4],i(r[0][1],r[1][1],r[2][1],d,n),r[0][1]=n[3],r[1][1]=n[4]}if(h&&"none"!==h){p=iT(t.node2),d=PT(r,c[1],p*e);i(r[0][0],r[1][0],r[2][0],d,n),r[1][0]=n[1],r[2][0]=n[2],i(r[0][1],r[1][1],r[2][1],d,n),r[1][1]=n[1],r[2][1]=n[2]}vt(l[0],r[0]),vt(l[1],r[2]),vt(l[2],r[1])}else{if(vt(o[0],c[0]),vt(o[1],c[1]),wt(a,o[1],o[0]),At(a,a),u&&"none"!==u){p=iT(t.node1);bt(o[0],o[0],a,p*e)}if(h&&"none"!==h){p=iT(t.node2);bt(o[1],o[1],a,-p*e)}vt(l[0],o[0]),vt(l[1],o[1])}}))}function RT(t){return"view"===t.type}var NT=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.init=function(t,e){var n=new Ux,i=new wT,r=this.group;this._controller=new _S(e.getZr()),this._controllerHost={target:r},r.add(n.group),r.add(i.group),this._symbolDraw=n,this._lineDraw=i,this._firstRender=!0},n.prototype.render=function(t,e,n){var i=this,r=t.coordinateSystem;this._model=t;var o=this._symbolDraw,a=this._lineDraw,s=this.group;if(RT(r)){var l={x:r.x,y:r.y,scaleX:r.scaleX,scaleY:r.scaleY};this._firstRender?s.attr(l):yu(s,l,t)}OT(t.getGraph(),nT(t));var u=t.getData();o.updateData(u);var h=t.getEdgeData();a.updateData(h),this._updateNodeAndLinkScale(),this._updateController(t,e,n),clearTimeout(this._layoutTimeout);var c=t.forceLayout,p=t.get(["force","layoutAnimation"]);c&&this._startForceLayoutIteration(c,p),u.graph.eachNode((function(t){var e=t.dataIndex,n=t.getGraphicEl(),r=t.getModel();n.off("drag").off("dragend");var o=r.get("draggable");o&&n.on("drag",(function(){c&&(c.warmUp(),!i._layouting&&i._startForceLayoutIteration(c,p),c.setFixed(e),u.setItemLayout(e,[n.x,n.y]))})).on("dragend",(function(){c&&c.setUnfixed(e)})),n.setDraggable(o&&!!c),"adjacency"===r.get(["emphasis","focus"])&&(rs(n).focus=t.getAdjacentDataIndices())})),u.graph.eachEdge((function(t){var e=t.getGraphicEl();"adjacency"===t.getModel().get(["emphasis","focus"])&&(rs(e).focus={edge:[t.dataIndex],node:[t.node1.dataIndex,t.node2.dataIndex]})}));var d="circular"===t.get("layout")&&t.get(["circular","rotateLabel"]),f=u.getLayout("cx"),g=u.getLayout("cy");u.eachItemGraphicEl((function(t,e){var n=u.getItemModel(e).get(["label","rotate"])||0,i=t.getSymbolPath();if(d){var r=u.getItemLayout(e),o=Math.atan2(r[1]-g,r[0]-f);o<0&&(o=2*Math.PI+o);var a=r[0]<f;a&&(o-=Math.PI);var s=a?"left":"right";i.setTextConfig({rotation:-o,position:s,origin:"center"});var l=i.ensureState("emphasis");M(l.textConfig||(l.textConfig={}),{position:s})}else i.setTextConfig({rotation:n*=Math.PI/180})})),this._firstRender=!1},n.prototype.dispose=function(){this._controller&&this._controller.dispose(),this._controllerHost=null},n.prototype._startForceLayoutIteration=function(t,e){var n=this;!function i(){t.step((function(t){n.updateLayout(n._model),(n._layouting=!t)&&(e?n._layoutTimeout=setTimeout(i,16):i())}))}()},n.prototype._updateController=function(t,e,n){var i=this,r=this._controller,o=this._controllerHost,a=this.group;r.setPointerChecker((function(e,i,r){var o=a.getBoundingRect();return o.applyTransform(a.transform),o.contain(i,r)&&!TS(e,n,t)})),RT(t.coordinateSystem)?(r.enable(t.get("roam")),o.zoomLimit=t.get("scaleLimit"),o.zoom=t.coordinateSystem.getZoom(),r.off("pan").off("zoom").on("pan",(function(e){SS(o,e.dx,e.dy),n.dispatchAction({seriesId:t.id,type:"graphRoam",dx:e.dx,dy:e.dy})})).on("zoom",(function(e){MS(o,e.scale,e.originX,e.originY),n.dispatchAction({seriesId:t.id,type:"graphRoam",zoom:e.scale,originX:e.originX,originY:e.originY}),i._updateNodeAndLinkScale(),OT(t.getGraph(),nT(t)),i._lineDraw.updateLayout(),n.updateLabelLayout()}))):r.disable()},n.prototype._updateNodeAndLinkScale=function(){var t=this._model,e=t.getData(),n=nT(t);e.eachItemGraphicEl((function(t,e){t.setSymbolScale(n)}))},n.prototype.updateLayout=function(t){OT(t.getGraph(),nT(t)),this._symbolDraw.updateLayout(),this._lineDraw.updateLayout()},n.prototype.remove=function(t,e){this._symbolDraw&&this._symbolDraw.remove(),this._lineDraw&&this._lineDraw.remove()},n.type="graph",n}(Nd);function ET(t){return"_EC_"+t}var zT=function(){function t(t){this.type="graph",this.nodes=[],this.edges=[],this._nodesMap={},this._edgesMap={},this._directed=t||!1}return t.prototype.isDirected=function(){return this._directed},t.prototype.addNode=function(t,e){t=null==t?""+e:""+t;var n=this._nodesMap;if(!n[ET(t)]){var i=new BT(t,e);return i.hostGraph=this,this.nodes.push(i),n[ET(t)]=i,i}},t.prototype.getNodeByIndex=function(t){var e=this.data.getRawIndex(t);return this.nodes[e]},t.prototype.getNodeById=function(t){return this._nodesMap[ET(t)]},t.prototype.addEdge=function(t,e,n){var i=this._nodesMap,r=this._edgesMap;if("number"==typeof t&&(t=this.nodes[t]),"number"==typeof e&&(e=this.nodes[e]),t instanceof BT||(t=i[ET(t)]),e instanceof BT||(e=i[ET(e)]),t&&e){var o=t.id+"-"+e.id,a=new VT(t,e,n);return a.hostGraph=this,this._directed&&(t.outEdges.push(a),e.inEdges.push(a)),t.edges.push(a),t!==e&&e.edges.push(a),this.edges.push(a),r[o]=a,a}},t.prototype.getEdgeByIndex=function(t){var e=this.edgeData.getRawIndex(t);return this.edges[e]},t.prototype.getEdge=function(t,e){t instanceof BT&&(t=t.id),e instanceof BT&&(e=e.id);var n=this._edgesMap;return this._directed?n[t+"-"+e]:n[t+"-"+e]||n[e+"-"+t]},t.prototype.eachNode=function(t,e){for(var n=this.nodes,i=n.length,r=0;r<i;r++)n[r].dataIndex>=0&&t.call(e,n[r],r)},t.prototype.eachEdge=function(t,e){for(var n=this.edges,i=n.length,r=0;r<i;r++)n[r].dataIndex>=0&&n[r].node1.dataIndex>=0&&n[r].node2.dataIndex>=0&&t.call(e,n[r],r)},t.prototype.breadthFirstTraverse=function(t,e,n,i){if(e instanceof BT||(e=this._nodesMap[ET(e)]),e){for(var r="out"===n?"outEdges":"in"===n?"inEdges":"edges",o=0;o<this.nodes.length;o++)this.nodes[o].__visited=!1;if(!t.call(i,e,null))for(var a=[e];a.length;){var s=a.shift(),l=s[r];for(o=0;o<l.length;o++){var u=l[o],h=u.node1===s?u.node2:u.node1;if(!h.__visited){if(t.call(i,h,s))return;a.push(h),h.__visited=!0}}}}},t.prototype.update=function(){for(var t=this.data,e=this.edgeData,n=this.nodes,i=this.edges,r=0,o=n.length;r<o;r++)n[r].dataIndex=-1;for(r=0,o=t.count();r<o;r++)n[t.getRawIndex(r)].dataIndex=r;e.filterSelf((function(t){var n=i[e.getRawIndex(t)];return n.node1.dataIndex>=0&&n.node2.dataIndex>=0}));for(r=0,o=i.length;r<o;r++)i[r].dataIndex=-1;for(r=0,o=e.count();r<o;r++)i[e.getRawIndex(r)].dataIndex=r},t.prototype.clone=function(){for(var e=new t(this._directed),n=this.nodes,i=this.edges,r=0;r<n.length;r++)e.addNode(n[r].id,n[r].dataIndex);for(r=0;r<i.length;r++){var o=i[r];e.addEdge(o.node1.id,o.node2.id,o.dataIndex)}return e},t}(),BT=function(){function t(t,e){this.inEdges=[],this.outEdges=[],this.edges=[],this.dataIndex=-1,this.id=null==t?"":t,this.dataIndex=null==e?-1:e}return t.prototype.degree=function(){return this.edges.length},t.prototype.inDegree=function(){return this.inEdges.length},t.prototype.outDegree=function(){return this.outEdges.length},t.prototype.getModel=function(t){if(!(this.dataIndex<0))return this.hostGraph.data.getItemModel(this.dataIndex).getModel(t)},t.prototype.getAdjacentDataIndices=function(){for(var t={edge:[],node:[]},e=0;e<this.edges.length;e++){var n=this.edges[e];n.dataIndex<0||(t.edge.push(n.dataIndex),t.node.push(n.node1.dataIndex,n.node2.dataIndex))}return t},t}(),VT=function(){function t(t,e,n){this.dataIndex=-1,this.node1=t,this.node2=e,this.dataIndex=null==n?-1:n}return t.prototype.getModel=function(t){if(!(this.dataIndex<0))return this.hostGraph.edgeData.getItemModel(this.dataIndex).getModel(t)},t.prototype.getAdjacentDataIndices=function(){return{edge:[this.dataIndex],node:[this.node1.dataIndex,this.node2.dataIndex]}},t}();function FT(t,e){return{getValue:function(n){var i=this[t][e];return i.get(i.getDimension(n||"value"),this.dataIndex)},setVisual:function(n,i){this.dataIndex>=0&&this[t][e].setItemVisual(this.dataIndex,n,i)},getVisual:function(n){return this[t][e].getItemVisual(this.dataIndex,n)},setLayout:function(n,i){this.dataIndex>=0&&this[t][e].setItemLayout(this.dataIndex,n,i)},getLayout:function(){return this[t][e].getItemLayout(this.dataIndex)},getGraphicEl:function(){return this[t][e].getItemGraphicEl(this.dataIndex)},getRawIndex:function(){return this[t][e].getRawIndex(this.dataIndex)}}}function GT(t,e,n,i,r){for(var o=new zT(i),a=0;a<t.length;a++)o.addNode(J(t[a].id,t[a].name,a),a);var s=[],l=[],u=0;for(a=0;a<e.length;a++){var h=e[a],c=h.source,p=h.target;o.addEdge(c,p,u)&&(l.push(h),s.push(J(vr(h.id,null),c+" > "+p)),u++)}var d,f=n.get("coordinateSystem");if("cartesian2d"===f||"polar"===f)d=hm(t,n);else{var g=Vc.get(f),y=g&&g.dimensions||[];C(y,"value")<0&&y.concat(["value"]);var v=im(t,{coordDimensions:y});(d=new tm(v,n)).initData(t)}var m=new tm(["value"],n);return m.initData(l,s),r&&r(d,m),DM({mainData:d,struct:o,structAttr:"graph",datas:{node:d,edge:m},datasAttr:{node:"data",edge:"edgeData"}}),o.update(),o}D(BT,FT("hostGraph","data")),D(VT,FT("hostGraph","edgeData"));var HT=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.hasSymbolVisual=!0,e}return e(n,t),n.prototype.init=function(e){t.prototype.init.apply(this,arguments);var n=this;function i(){return n._categoriesData}this.legendVisualProvider=new ew(i,i),this.fillDataTextStyle(e.edges||e.links),this._updateCategoriesData()},n.prototype.mergeOption=function(e){t.prototype.mergeOption.apply(this,arguments),this.fillDataTextStyle(e.edges||e.links),this._updateCategoriesData()},n.prototype.mergeDefaultAndTheme=function(e){t.prototype.mergeDefaultAndTheme.apply(this,arguments),cr(e,"edgeLabel",["show"])},n.prototype.getInitialData=function(t,e){var n,i=t.edges||t.links||[],r=t.data||t.nodes||[],o=this;if(r&&i){ZI(n=this)&&(n.__curvenessList=[],n.__edgeMap={},jI(n));var a=GT(r,i,this,!0,(function(t,e){t.wrapMethod("getItemModel",(function(t){var e=o._categoriesModels[t.getShallow("category")];return e&&(e.parentModel=t.parentModel,t.parentModel=e),t}));var n=ah.prototype.getModel;function i(t,e){var i=n.call(this,t,e);return i.resolveParentPath=r,i}function r(t){if(t&&("label"===t[0]||"label"===t[1])){var e=t.slice();return"label"===t[0]?e[0]="edgeLabel":"label"===t[1]&&(e[1]="edgeLabel"),e}return t}e.wrapMethod("getItemModel",(function(t){return t.resolveParentPath=r,t.getModel=i,t}))}));return k(a.edges,(function(t){!function(t,e,n,i){if(ZI(n)){var r=qI(t,e,n),o=n.__edgeMap,a=o[KI(r)];o[r]&&!a?o[r].isForward=!0:a&&o[r]&&(a.isForward=!0,o[r].isForward=!1),o[r]=o[r]||[],o[r].push(i)}}(t.node1,t.node2,this,t.dataIndex)}),this),a.data}},n.prototype.getGraph=function(){return this.getData().graph},n.prototype.getEdgeData=function(){return this.getGraph().edgeData},n.prototype.getCategoriesData=function(){return this._categoriesData},n.prototype.formatTooltip=function(t,e,n){if("edge"===n){var i=this.getData(),r=this.getDataParams(t,n),o=i.graph.getEdgeByIndex(t),a=i.getName(o.node1.dataIndex),s=i.getName(o.node2.dataIndex),l=[];return null!=a&&l.push(a),null!=s&&l.push(s),hd("nameValue",{name:l.join(" > "),value:r.value,noValue:null==r.value})}return xd({series:this,dataIndex:t,multipleSeries:e})},n.prototype._updateCategoriesData=function(){var t=P(this.option.categories||[],(function(t){return null!=t.value?t:M({value:0},t)})),e=new tm(["value"],this);e.initData(t),this._categoriesData=e,this._categoriesModels=e.mapArray((function(t){return e.getItemModel(t)}))},n.prototype.setZoom=function(t){this.option.zoom=t},n.prototype.setCenter=function(t){this.option.center=t},n.prototype.isAnimationEnabled=function(){return t.prototype.isAnimationEnabled.call(this)&&!("force"===this.get("layout")&&this.get(["force","layoutAnimation"]))},n.type="series.graph",n.dependencies=["grid","polar","geo","singleAxis","calendar"],n.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,opacity:.5},emphasis:{scale:!0,label:{show:!0}},select:{itemStyle:{borderColor:"#212121"}}},n}(Sd),WT={type:"graphRoam",event:"graphRoam",update:"none"};var YT=function(){this.angle=0,this.width=10,this.r=10,this.x=0,this.y=0},XT=function(t){function n(e){var n=t.call(this,e)||this;return n.type="pointer",n}return e(n,t),n.prototype.getDefaultShape=function(){return new YT},n.prototype.buildPath=function(t,e){var n=Math.cos,i=Math.sin,r=e.r,o=e.width,a=e.angle,s=e.x-n(a)*o*(o>=r/3?1:2),l=e.y-i(a)*o*(o>=r/3?1:2);a=e.angle-Math.PI/2,t.moveTo(s,l),t.lineTo(e.x+n(a)*o,e.y+i(a)*o),t.lineTo(e.x+n(e.angle)*r,e.y+i(e.angle)*r),t.lineTo(e.x-n(a)*o,e.y-i(a)*o),t.lineTo(s,l)},n}(Na);function UT(t,e){var n=null==t?"":t+"";return e&&("string"==typeof e?n=e.replace("{value}",n):"function"==typeof e&&(n=e(t))),n}var ZT=2*Math.PI,jT=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n){this.group.removeAll();var i=t.get(["axisLine","lineStyle","color"]),r=function(t,e){var n=t.get("center"),i=e.getWidth(),r=e.getHeight(),o=Math.min(i,r);return{cx:Gi(n[0],e.getWidth()),cy:Gi(n[1],e.getHeight()),r:Gi(t.get("radius"),o/2)}}(t,n);this._renderMain(t,e,n,i,r),this._data=t.getData()},n.prototype.dispose=function(){},n.prototype._renderMain=function(t,e,n,i,r){for(var o=this.group,a=t.get("clockwise"),s=-t.get("startAngle")/180*Math.PI,l=-t.get("endAngle")/180*Math.PI,u=t.getModel("axisLine"),h=u.get("roundCap")?Tb:Tl,c=u.get("show"),p=u.getModel("lineStyle"),d=p.get("width"),f=(l-s)%ZT||l===s?(l-s)%ZT:ZT,g=s,y=0;c&&y<i.length;y++){var v=new h({shape:{startAngle:g,endAngle:l=s+f*Math.min(Math.max(i[y][0],0),1),cx:r.cx,cy:r.cy,clockwise:a,r0:r.r-d,r:r.r},silent:!0});v.setStyle({fill:i[y][1]}),v.setStyle(p.getLineStyle(["color","width"])),o.add(v),g=l}var m=function(t){if(t<=0)return i[0][1];var e;for(e=0;e<i.length;e++)if(i[e][0]>=t&&(0===e?0:i[e-1][0])<t)return i[e][1];return i[e-1][1]};if(!a){var _=s;s=l,l=_}this._renderTicks(t,e,n,m,r,s,l,a,d),this._renderTitleAndDetail(t,e,n,m,r),this._renderAnchor(t,r),this._renderPointer(t,e,n,m,r,s,l,a,d)},n.prototype._renderTicks=function(t,e,n,i,r,o,a,s,l){for(var u,h,c=this.group,p=r.cx,d=r.cy,f=r.r,g=+t.get("min"),y=+t.get("max"),v=t.getModel("splitLine"),m=t.getModel("axisTick"),_=t.getModel("axisLabel"),x=t.get("splitNumber"),b=m.get("splitNumber"),w=Gi(v.get("length"),f),S=Gi(m.get("length"),f),M=o,I=(a-o)/x,T=I/b,C=v.getModel("lineStyle").getLineStyle(),A=m.getModel("lineStyle").getLineStyle(),D=v.get("distance"),L=0;L<=x;L++){if(u=Math.cos(M),h=Math.sin(M),v.get("show")){var k=new zl({shape:{x1:u*(f-(P=D?D+l:l))+p,y1:h*(f-P)+d,x2:u*(f-w-P)+p,y2:h*(f-w-P)+d},style:C,silent:!0});"auto"===C.stroke&&k.setStyle({stroke:i(L/x)}),c.add(k)}if(_.get("show")){var P=_.get("distance")+D,O=UT(Hi(L/x*(y-g)+g),_.get("formatter")),R=i(L/x);c.add(new Ka({style:Vu(_,{text:O,x:u*(f-w-P)+p,y:h*(f-w-P)+d,verticalAlign:h<-.8?"top":h>.8?"bottom":"middle",align:u<-.4?"left":u>.4?"right":"center"},{inheritColor:R}),silent:!0}))}if(m.get("show")&&L!==x){P=(P=m.get("distance"))?P+l:l;for(var N=0;N<=b;N++){u=Math.cos(M),h=Math.sin(M);var E=new zl({shape:{x1:u*(f-P)+p,y1:h*(f-P)+d,x2:u*(f-S-P)+p,y2:h*(f-S-P)+d},silent:!0,style:A});"auto"===A.stroke&&E.setStyle({stroke:i((L+N/b)/x)}),c.add(E),M+=T}M-=T}else M+=I}},n.prototype._renderPointer=function(t,e,n,i,r,o,a,s,l){var u=this.group,h=this._data,c=this._progressEls,p=[],d=t.get(["pointer","show"]),f=t.getModel("progress"),g=f.get("show"),y=t.getData(),v=y.mapDimension("value"),m=+t.get("min"),_=+t.get("max"),x=[m,_],b=[o,a];function w(e,n){var i,o=y.getItemModel(e).getModel("pointer"),a=Gi(o.get("width"),r.r),s=Gi(o.get("length"),r.r),l=t.get(["pointer","icon"]),u=o.get("offsetCenter"),h=Gi(u[0],r.r),c=Gi(u[1],r.r),p=o.get("keepAspect");return(i=l?Ig(l,h-a/2,c-s,a,s,null,p):new XT({shape:{angle:-Math.PI/2,width:a,r:s,x:h,y:c}})).rotation=-(n+Math.PI/2),i.x=r.cx,i.y=r.cy,i}function S(t,e){var n=f.get("roundCap")?Tb:Tl,i=f.get("overlap"),a=i?f.get("width"):l/y.count(),u=i?r.r-a:r.r-(t+1)*a,h=i?r.r:r.r-t*a,c=new n({shape:{startAngle:o,endAngle:e,cx:r.cx,cy:r.cy,clockwise:s,r0:u,r:h}});return i&&(c.z2=_-y.get(v,t)%_),c}(g||d)&&(y.diff(h).add((function(e){if(d){var n=w(e,o);vu(n,{rotation:-(Fi(y.get(v,e),x,b,!0)+Math.PI/2)},t),u.add(n),y.setItemGraphicEl(e,n)}if(g){var i=S(e,o),r=f.get("clip");vu(i,{shape:{endAngle:Fi(y.get(v,e),x,b,r)}},t),u.add(i),p[e]=i}})).update((function(e,n){if(d){var i=h.getItemGraphicEl(n),r=i?i.rotation:o,a=w(e,r);a.rotation=r,yu(a,{rotation:-(Fi(y.get(v,e),x,b,!0)+Math.PI/2)},t),u.add(a),y.setItemGraphicEl(e,a)}if(g){var s=c[n],l=S(e,s?s.shape.endAngle:o),m=f.get("clip");yu(l,{shape:{endAngle:Fi(y.get(v,e),x,b,m)}},t),u.add(l),p[e]=l}})).execute(),y.each((function(t){var e=y.getItemModel(t),n=e.getModel("emphasis");if(d){var r=y.getItemGraphicEl(t);r.useStyle(y.getItemVisual(t,"style")),r.setStyle(e.getModel(["pointer","itemStyle"]).getItemStyle()),"auto"===r.style.fill&&r.setStyle("fill",i(Fi(y.get(v,t),x,[0,1],!0))),r.z2EmphasisLift=0,Vs(r,e),Ns(r,n.get("focus"),n.get("blurScope"))}if(g){var o=p[t];o.useStyle(y.getItemVisual(t,"style")),o.setStyle(e.getModel(["progress","itemStyle"]).getItemStyle()),o.z2EmphasisLift=0,Vs(o,e),Ns(o,n.get("focus"),n.get("blurScope"))}})),this._progressEls=p)},n.prototype._renderAnchor=function(t,e){var n=t.getModel("anchor");if(n.get("show")){var i=n.get("size"),r=n.get("icon"),o=n.get("offsetCenter"),a=n.get("keepAspect"),s=Ig(r,e.cx-i/2+Gi(o[0],e.r),e.cy-i/2+Gi(o[1],e.r),i,i,null,a);s.z2=n.get("showAbove")?1:0,s.setStyle(n.getModel("itemStyle").getItemStyle()),this.group.add(s)}},n.prototype._renderTitleAndDetail=function(t,e,n,i,r){var o=this,a=t.getData(),s=a.mapDimension("value"),l=+t.get("min"),u=+t.get("max"),h=new Pi,c=[],p=[],d=t.isAnimationEnabled();a.diff(this._data).add((function(t){c[t]=new Ka({silent:!0}),p[t]=new Ka({silent:!0})})).update((function(t,e){c[t]=o._titleEls[e],p[t]=o._detailEls[e]})).execute(),a.each((function(e){var n=a.getItemModel(e),o=a.get(s,e),f=new Pi,g=i(Fi(o,[l,u],[0,1],!0)),y=n.getModel("title");if(y.get("show")){var v=y.get("offsetCenter"),m=r.cx+Gi(v[0],r.r),_=r.cy+Gi(v[1],r.r);(C=c[e]).attr({style:Vu(y,{x:m,y:_,text:a.getName(e),align:"center",verticalAlign:"middle"},{inheritColor:g})}),f.add(C)}var x=n.getModel("detail");if(x.get("show")){var b=x.get("offsetCenter"),w=r.cx+Gi(b[0],r.r),S=r.cy+Gi(b[1],r.r),M=Gi(x.get("width"),r.r),I=Gi(x.get("height"),r.r),T=t.get(["progress","show"])?a.getItemVisual(e,"style").fill:g,C=p[e],A=x.get("formatter");C.attr({style:Vu(x,{x:w,y:S,text:UT(o,A),width:isNaN(M)?null:M,height:isNaN(I)?null:I,align:"center",verticalAlign:"middle"},{inheritColor:T})}),Zu(C,{normal:x},o,(function(t){return UT(t,A)})),d&&ju(C,e,a,t,{getFormattedLabel:function(t,e,n,i,r,a){return UT(a?a.interpolatedValue:o,A)}}),f.add(C)}h.add(f)})),this.group.add(h),this._titleEls=c,this._detailEls=p},n.type="gauge",n}(Nd),qT=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.visualStyleAccessPath="itemStyle",e.useColorPaletteOnData=!0,e}return e(n,t),n.prototype.getInitialData=function(t,e){return tw(this,["value"])},n.type="series.gauge",n.defaultOption={zlevel:0,z:2,center:["50%","50%"],legendHoverLink:!0,radius:"75%",startAngle:225,endAngle:-45,clockwise:!0,min:0,max:100,splitNumber:10,axisLine:{show:!0,roundCap:!1,lineStyle:{color:[[1,"#E6EBF8"]],width:10}},progress:{show:!1,overlap:!0,width:10,roundCap:!1,clip:!0},splitLine:{show:!0,length:10,distance:10,lineStyle:{color:"#63677A",width:3,type:"solid"}},axisTick:{show:!0,splitNumber:5,length:6,distance:10,lineStyle:{color:"#63677A",width:1,type:"solid"}},axisLabel:{show:!0,distance:15,color:"#464646",fontSize:12},pointer:{icon:null,offsetCenter:[0,0],show:!0,length:"60%",width:6,keepAspect:!1},anchor:{show:!1,showAbove:!1,size:6,icon:"circle",offsetCenter:[0,0],keepAspect:!1,itemStyle:{color:"#fff",borderWidth:0,borderColor:"#5470c6"}},title:{show:!0,offsetCenter:[0,"20%"],color:"#464646",fontSize:16,valueAnimation:!1},detail:{show:!0,backgroundColor:"rgba(0,0,0,0)",borderWidth:0,borderColor:"#ccc",width:100,height:null,padding:[5,10],offsetCenter:[0,"40%"],color:"#464646",fontSize:30,fontWeight:"bold",lineHeight:30,valueAnimation:!1}},n}(Sd);var KT=["itemStyle","opacity"],$T=function(t){function n(e,n){var i=t.call(this)||this,r=i,o=new Rl,a=new Ka;return r.setTextContent(a),i.setTextGuideLine(o),i.updateData(e,n,!0),i}return e(n,t),n.prototype.updateData=function(t,e,n){var i=this,r=t.hostModel,o=t.getItemModel(e),a=t.getItemLayout(e),s=o.getModel("emphasis"),l=o.get(KT);l=null==l?1:l,i.useStyle(t.getItemVisual(e,"style")),i.style.lineJoin="round",n?(i.setShape({points:a.points}),i.style.opacity=0,vu(i,{style:{opacity:l}},r,e)):yu(i,{style:{opacity:l},shape:{points:a.points}},r,e),Vs(i,o),this._updateLabel(t,e),Ns(this,s.get("focus"),s.get("blurScope"))},n.prototype._updateLabel=function(t,e){var n=this,i=this.getTextGuideLine(),r=n.getTextContent(),o=t.hostModel,a=t.getItemModel(e),s=t.getItemLayout(e).label,l=t.getItemVisual(e,"style"),u=l.fill;zu(r,Bu(a),{labelFetcher:t.hostModel,labelDataIndex:e,defaultOpacity:l.opacity,defaultText:t.getName(e)},{normal:{align:s.textAlign,verticalAlign:s.verticalAlign}}),n.setTextConfig({local:!0,inside:!!s.inside,insideStroke:u,outsideFill:u});var h=s.linePoints;i.setShape({points:h}),n.textGuideLineConfig={anchor:h?new Sn(h[0][0],h[0][1]):null},yu(r,{style:{x:s.x,y:s.y}},o,e),r.attr({rotation:s.rotation,originX:s.x,originY:s.y,z2:10}),Qf(n,tg(a),{stroke:u})},n}(Pl),JT=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.ignoreLabelLineUpdate=!0,e}return e(n,t),n.prototype.render=function(t,e,n){var i=t.getData(),r=this._data,o=this.group;i.diff(r).add((function(t){var e=new $T(i,t);i.setItemGraphicEl(t,e),o.add(e)})).update((function(t,e){var n=r.getItemGraphicEl(e);n.updateData(i,t),o.add(n),i.setItemGraphicEl(t,n)})).remove((function(e){xu(r.getItemGraphicEl(e),t,e)})).execute(),this._data=i},n.prototype.remove=function(){this.group.removeAll(),this._data=null},n.prototype.dispose=function(){},n.type="funnel",n}(Nd),QT=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.useColorPaletteOnData=!0,e}return e(n,t),n.prototype.init=function(e){t.prototype.init.apply(this,arguments),this.legendVisualProvider=new ew(z(this.getData,this),z(this.getRawData,this)),this._defaultLabelLine(e)},n.prototype.getInitialData=function(t,e){return tw(this,{coordDimensions:["value"],encodeDefaulter:B(_c,this)})},n.prototype._defaultLabelLine=function(t){cr(t,"labelLine",["show"]);var e=t.labelLine,n=t.emphasis.labelLine;e.show=e.show&&t.label.show,n.show=n.show&&t.emphasis.label.show},n.prototype.getDataParams=function(e){var n=this.getData(),i=t.prototype.getDataParams.call(this,e),r=n.mapDimension("value"),o=n.getSum(r);return i.percent=o?+(n.get(r,e)/o*100).toFixed(2):0,i.$vars.push("percent"),i},n.type="series.funnel",n.defaultOption={zlevel:0,z:2,legendHoverLink:!0,left:80,top:60,right:80,bottom:60,minSize:"0%",maxSize:"100%",sort:"descending",orient:"vertical",gap:0,funnelAlign:"center",label:{show:!0,position:"outer"},labelLine:{show:!0,length:20,lineStyle:{width:1}},itemStyle:{borderColor:"#fff",borderWidth:1},emphasis:{label:{show:!0}},select:{itemStyle:{borderColor:"#212121"}}},n}(Sd);function tC(t,e){t.eachSeriesByType("funnel",(function(t){var n=t.getData(),i=n.mapDimension("value"),r=t.get("sort"),o=function(t,e){return nc(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}(t,e),a=t.get("orient"),s=o.width,l=o.height,u=function(t,e){for(var n=t.mapDimension("value"),i=t.mapArray(n,(function(t){return t})),r=[],o="ascending"===e,a=0,s=t.count();a<s;a++)r[a]=a;return"function"==typeof e?r.sort(e):"none"!==e&&r.sort((function(t,e){return o?i[t]-i[e]:i[e]-i[t]})),r}(n,r),h=o.x,c=o.y,p="horizontal"===a?[Gi(t.get("minSize"),l),Gi(t.get("maxSize"),l)]:[Gi(t.get("minSize"),s),Gi(t.get("maxSize"),s)],d=n.getDataExtent(i),f=t.get("min"),g=t.get("max");null==f&&(f=Math.min(d[0],0)),null==g&&(g=d[1]);var y=t.get("funnelAlign"),v=t.get("gap"),m=(("horizontal"===a?s:l)-v*(n.count()-1))/n.count(),_=function(t,e){if("horizontal"===a){var r=Fi(n.get(i,t)||0,[f,g],p,!0),o=void 0;switch(y){case"top":o=c;break;case"center":o=c+(l-r)/2;break;case"bottom":o=c+(l-r)}return[[e,o],[e,o+r]]}var u,d=Fi(n.get(i,t)||0,[f,g],p,!0);switch(y){case"left":u=h;break;case"center":u=h+(s-d)/2;break;case"right":u=h+s-d}return[[u,e],[u+d,e]]};"ascending"===r&&(m=-m,v=-v,"horizontal"===a?h+=s:c+=l,u=u.reverse());for(var x=0;x<u.length;x++){var b=u[x],w=u[x+1],S=n.getItemModel(b);if("horizontal"===a){var M=S.get(["itemStyle","width"]);null==M?M=m:(M=Gi(M,s),"ascending"===r&&(M=-M));var I=_(b,h),T=_(w,h+M);h+=M+v,n.setItemLayout(b,{points:I.concat(T.slice().reverse())})}else{var C=S.get(["itemStyle","height"]);null==C?C=m:(C=Gi(C,l),"ascending"===r&&(C=-C));I=_(b,c),T=_(w,c+C);c+=C+v,n.setItemLayout(b,{points:I.concat(T.slice().reverse())})}}!function(t){var e=t.hostModel.get("orient");t.each((function(n){var i,r,o,a,s=t.getItemModel(n),l=s.getModel("label").get("position"),u=s.getModel("labelLine"),h=t.getItemLayout(n),c=h.points,p="inner"===l||"inside"===l||"center"===l||"insideLeft"===l||"insideRight"===l;if(p)"insideLeft"===l?(r=(c[0][0]+c[3][0])/2+5,o=(c[0][1]+c[3][1])/2,i="left"):"insideRight"===l?(r=(c[1][0]+c[2][0])/2-5,o=(c[1][1]+c[2][1])/2,i="right"):(r=(c[0][0]+c[1][0]+c[2][0]+c[3][0])/4,o=(c[0][1]+c[1][1]+c[2][1]+c[3][1])/4,i="center"),a=[[r,o],[r,o]];else{var d=void 0,f=void 0,g=void 0,y=void 0,v=u.get("length");"left"===l?(d=(c[3][0]+c[0][0])/2,f=(c[3][1]+c[0][1])/2,r=(g=d-v)-5,i="right"):"right"===l?(d=(c[1][0]+c[2][0])/2,f=(c[1][1]+c[2][1])/2,r=(g=d+v)+5,i="left"):"top"===l?(d=(c[3][0]+c[0][0])/2,o=(y=(f=(c[3][1]+c[0][1])/2)-v)-5,i="center"):"bottom"===l?(d=(c[1][0]+c[2][0])/2,o=(y=(f=(c[1][1]+c[2][1])/2)+v)+5,i="center"):"rightTop"===l?(d="horizontal"===e?c[3][0]:c[1][0],f="horizontal"===e?c[3][1]:c[1][1],"horizontal"===e?(o=(y=f-v)-5,i="center"):(r=(g=d+v)+5,i="top")):"rightBottom"===l?(d=c[2][0],f=c[2][1],"horizontal"===e?(o=(y=f+v)+5,i="center"):(r=(g=d+v)+5,i="bottom")):"leftTop"===l?(d=c[0][0],f="horizontal"===e?c[0][1]:c[1][1],"horizontal"===e?(o=(y=f-v)-5,i="center"):(r=(g=d-v)-5,i="right")):"leftBottom"===l?(d="horizontal"===e?c[1][0]:c[3][0],f="horizontal"===e?c[1][1]:c[2][1],"horizontal"===e?(o=(y=f+v)+5,i="center"):(r=(g=d-v)-5,i="right")):(d=(c[1][0]+c[2][0])/2,f=(c[1][1]+c[2][1])/2,"horizontal"===e?(o=(y=f+v)+5,i="center"):(r=(g=d+v)+5,i="left")),"horizontal"===e?r=g=d:o=y=f,a=[[d,f],[g,y]]}h.label={linePoints:a,x:r,y:o,verticalAlign:"middle",textAlign:i,inside:p}}))}(n)}))}var eC=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e._dataGroup=new Pi,e._initialized=!1,e}return e(n,t),n.prototype.init=function(){this.group.add(this._dataGroup)},n.prototype.render=function(t,e,n,i){var r=this._dataGroup,o=t.getData(),a=this._data,s=t.coordinateSystem,l=s.dimensions,u=rC(t);if(o.diff(a).add((function(t){oC(iC(o,r,t,l,s),o,t,u)})).update((function(e,n){var i=a.getItemGraphicEl(n),r=nC(o,e,l,s);o.setItemGraphicEl(e,i),yu(i,{shape:{points:r}},t,e),oC(i,o,e,u)})).remove((function(t){var e=a.getItemGraphicEl(t);r.remove(e)})).execute(),!this._initialized){this._initialized=!0;var h=function(t,e,n){var i=t.model,r=t.getRect(),o=new Za({shape:{x:r.x,y:r.y,width:r.width,height:r.height}}),a="horizontal"===i.get("layout")?"width":"height";return o.setShape(a,0),vu(o,{shape:{width:r.width,height:r.height}},e,n),o}(s,t,(function(){setTimeout((function(){r.removeClipPath()}))}));r.setClipPath(h)}this._data=o},n.prototype.incrementalPrepareRender=function(t,e,n){this._initialized=!0,this._data=null,this._dataGroup.removeAll()},n.prototype.incrementalRender=function(t,e,n){for(var i=e.getData(),r=e.coordinateSystem,o=r.dimensions,a=rC(e),s=t.start;s<t.end;s++){var l=iC(i,this._dataGroup,s,o,r);l.incremental=!0,oC(l,i,s,a)}},n.prototype.remove=function(){this._dataGroup&&this._dataGroup.removeAll(),this._data=null},n.type="parallel",n}(Nd);function nC(t,e,n,i){for(var r,o=[],a=0;a<n.length;a++){var s=n[a],l=t.get(t.mapDimension(s),e);r=l,("category"===i.getAxis(s).type?null==r:null==r||isNaN(r))||o.push(i.dataToPoint(l,s))}return o}function iC(t,e,n,i,r){var o=nC(t,n,i,r),a=new Rl({shape:{points:o},z2:10});return e.add(a),t.setItemGraphicEl(n,a),a}function rC(t){var e=t.get("smooth",!0);return!0===e&&(e=.3),$(e=ir(e))&&(e=0),{smooth:e}}function oC(t,e,n,i){t.useStyle(e.getItemVisual(n,"style")),t.style.fill=null,t.setShape("smooth",i.smooth);var r=e.getItemModel(n),o=r.getModel("emphasis");Vs(t,r,"lineStyle"),Ns(t,o.get("focus"),o.get("blurScope"))}var aC=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.visualStyleAccessPath="lineStyle",e.visualDrawType="stroke",e}return e(n,t),n.prototype.getInitialData=function(t,e){return hm(this.getSource(),this,{useEncodeDefaulter:z(sC,null,this)})},n.prototype.getRawIndicesByActiveState=function(t){var e=this.coordinateSystem,n=this.getData(),i=[];return e.eachActiveState(n,(function(e,r){t===e&&i.push(n.getRawIndex(r))})),i},n.type="series.parallel",n.dependencies=["parallel"],n.defaultOption={zlevel:0,z:2,coordinateSystem:"parallel",parallelIndex:0,label:{show:!1},inactiveOpacity:.05,activeOpacity:1,lineStyle:{width:1,opacity:.45,type:"solid"},emphasis:{label:{show:!1}},progressive:500,smooth:!1,animationEasing:"linear"},n}(Sd);function sC(t){var e=t.ecModel.getComponent("parallel",t.get("parallelIndex"));if(e){var n={};return k(e.dimensions,(function(t){var e=+t.replace("dim","");n[t]=e})),n}}var lC=["lineStyle","opacity"],uC={seriesType:"parallel",reset:function(t,e){var n=t.coordinateSystem,i={normal:t.get(["lineStyle","opacity"]),active:t.get("activeOpacity"),inactive:t.get("inactiveOpacity")};return{progress:function(t,e){n.eachActiveState(e,(function(t,n){var r=i[t];if("normal"===t&&e.hasItemOption){var o=e.getItemModel(n).get(lC,!0);null!=o&&(r=o)}e.ensureUniqueItemVisual(n,"style").opacity=r}),t.start,t.end)}}}};function hC(t){!function(t){if(t.parallel)return;var e=!1;k(t.series,(function(t){t&&"parallel"===t.type&&(e=!0)})),e&&(t.parallel=[{}])}(t),function(t){k(hr(t.parallelAxis),(function(e){if(Y(e)){var n=e.parallelIndex||0,i=hr(t.parallel)[n];i&&i.parallelAxisDefault&&w(e,i.parallelAxisDefault,!1)}}))}(t)}var cC=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n){this._model=t,this._api=n,this._handlers||(this._handlers={},k(pC,(function(t,e){n.getZr().on(e,this._handlers[e]=z(t,this))}),this)),Yd(this,"_throttledDispatchExpand",t.get("axisExpandRate"),"fixRate")},n.prototype.dispose=function(t,e){k(this._handlers,(function(t,n){e.getZr().off(n,t)})),this._handlers=null},n.prototype._throttledDispatchExpand=function(t){this._dispatchExpand(t)},n.prototype._dispatchExpand=function(t){t&&this._api.dispatchAction(M({type:"parallelAxisExpand"},t))},n.type="parallel",n}(kd),pC={mousedown:function(t){dC(this,"click")&&(this._mouseDownPoint=[t.offsetX,t.offsetY])},mouseup:function(t){var e=this._mouseDownPoint;if(dC(this,"click")&&e){var n=[t.offsetX,t.offsetY];if(Math.pow(e[0]-n[0],2)+Math.pow(e[1]-n[1],2)>5)return;var i=this._model.coordinateSystem.getSlidedAxisExpandWindow([t.offsetX,t.offsetY]);"none"!==i.behavior&&this._dispatchExpand({axisExpandWindow:i.axisExpandWindow})}this._mouseDownPoint=null},mousemove:function(t){if(!this._mouseDownPoint&&dC(this,"mousemove")){var e=this._model,n=e.coordinateSystem.getSlidedAxisExpandWindow([t.offsetX,t.offsetY]),i=n.behavior;"jump"===i&&this._throttledDispatchExpand.debounceNextCall(e.get("axisExpandDebounce")),this._throttledDispatchExpand("none"===i?null:{axisExpandWindow:n.axisExpandWindow,animation:"jump"===i?null:{duration:0}})}}};function dC(t,e){var n=t._model;return n.get("axisExpandable")&&n.get("axisExpandTriggerOn")===e}var fC=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.init=function(){t.prototype.init.apply(this,arguments),this.mergeOption({})},n.prototype.mergeOption=function(t){var e=this.option;t&&w(e,t,!0),this._initDimensions()},n.prototype.contains=function(t,e){var n=t.get("parallelIndex");return null!=n&&e.getComponent("parallel",n)===this},n.prototype.setAxisExpand=function(t){k(["axisExpandable","axisExpandCenter","axisExpandCount","axisExpandWidth","axisExpandWindow"],(function(e){t.hasOwnProperty(e)&&(this.option[e]=t[e])}),this)},n.prototype._initDimensions=function(){var t=this.dimensions=[],e=this.parallelAxisIndex=[];k(R(this.ecModel.queryComponents({mainType:"parallelAxis"}),(function(t){return(t.get("parallelIndex")||0)===this.componentIndex}),this),(function(n){t.push("dim"+n.get("dim")),e.push(n.componentIndex)}))},n.type="parallel",n.dependencies=["parallelAxis"],n.layoutMode="box",n.defaultOption={zlevel:0,z:0,left:80,top:60,right:80,bottom:60,layout:"horizontal",axisExpandable:!1,axisExpandCenter:null,axisExpandCount:0,axisExpandWidth:50,axisExpandRate:17,axisExpandDebounce:50,axisExpandSlideTriggerArea:[-.15,.05,.4],axisExpandTriggerOn:"click",parallelAxisDefault:null},n}(uc),gC=function(t){function n(e,n,i,r,o){var a=t.call(this,e,n,i)||this;return a.type=r||"value",a.axisIndex=o,a}return e(n,t),n.prototype.isHorizontal=function(){return"horizontal"!==this.coordinateSystem.getModel().get("layout")},n}(B_);function yC(t,e,n,i,r,o){t=t||0;var a=n[1]-n[0];if(null!=r&&(r=mC(r,[0,a])),null!=o&&(o=Math.max(o,null!=r?r:0)),"all"===i){var s=Math.abs(e[1]-e[0]);s=mC(s,[0,a]),r=o=mC(s,[r,o]),i=0}e[0]=mC(e[0],n),e[1]=mC(e[1],n);var l=vC(e,i);e[i]+=t;var u,h=r||0,c=n.slice();return l.sign<0?c[0]+=h:c[1]-=h,e[i]=mC(e[i],c),u=vC(e,i),null!=r&&(u.sign!==l.sign||u.span<r)&&(e[1-i]=e[i]+l.sign*r),u=vC(e,i),null!=o&&u.span>o&&(e[1-i]=e[i]+u.sign*o),e}function vC(t,e){var n=t[e]-t[1-e];return{span:Math.abs(n),sign:n>0?-1:n<0?1:e?-1:1}}function mC(t,e){return Math.min(null!=e[1]?e[1]:1/0,Math.max(null!=e[0]?e[0]:-1/0,t))}var _C=k,xC=Math.min,bC=Math.max,wC=Math.floor,SC=Math.ceil,MC=Hi,IC=Math.PI,TC=function(){function t(t,e,n){this.type="parallel",this._axesMap=lt(),this._axesLayout={},this.dimensions=t.dimensions,this._model=t,this._init(t,e,n)}return t.prototype._init=function(t,e,n){var i=t.dimensions,r=t.parallelAxisIndex;_C(i,(function(t,n){var i=r[n],o=e.getComponent("parallelAxis",i),a=this._axesMap.set(t,new gC(t,l_(o),[0,0],o.get("type"),i)),s="category"===a.type;a.onBand=s&&o.get("boundaryGap"),a.inverse=o.get("inverse"),o.axis=a,a.model=o,a.coordinateSystem=o.coordinateSystem=this}),this)},t.prototype.update=function(t,e){this._updateAxesFromSeries(this._model,t)},t.prototype.containPoint=function(t){var e=this._makeLayoutInfo(),n=e.axisBase,i=e.layoutBase,r=e.pixelDimIndex,o=t[1-r],a=t[r];return o>=n&&o<=n+e.axisLength&&a>=i&&a<=i+e.layoutLength},t.prototype.getModel=function(){return this._model},t.prototype._updateAxesFromSeries=function(t,e){e.eachSeries((function(n){if(t.contains(n,e)){var i=n.getData();_C(this.dimensions,(function(t){var e=this._axesMap.get(t);e.scale.unionExtentFromData(i,i.mapDimension(t)),s_(e.scale,e.model)}),this)}}),this)},t.prototype.resize=function(t,e){this._rect=nc(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()}),this._layoutAxes()},t.prototype.getRect=function(){return this._rect},t.prototype._makeLayoutInfo=function(){var t,e=this._model,n=this._rect,i=["x","y"],r=["width","height"],o=e.get("layout"),a="horizontal"===o?0:1,s=n[r[a]],l=[0,s],u=this.dimensions.length,h=CC(e.get("axisExpandWidth"),l),c=CC(e.get("axisExpandCount")||0,[0,u]),p=e.get("axisExpandable")&&u>3&&u>c&&c>1&&h>0&&s>0,d=e.get("axisExpandWindow");d?(t=CC(d[1]-d[0],l),d[1]=d[0]+t):(t=CC(h*(c-1),l),(d=[h*(e.get("axisExpandCenter")||wC(u/2))-t/2])[1]=d[0]+t);var f=(s-t)/(u-c);f<3&&(f=0);var g=[wC(MC(d[0]/h,1))+1,SC(MC(d[1]/h,1))-1],y=f/h*d[0];return{layout:o,pixelDimIndex:a,layoutBase:n[i[a]],layoutLength:s,axisBase:n[i[1-a]],axisLength:n[r[1-a]],axisExpandable:p,axisExpandWidth:h,axisCollapseWidth:f,axisExpandWindow:d,axisCount:u,winInnerIndices:g,axisExpandWindow0Pos:y}},t.prototype._layoutAxes=function(){var t=this._rect,e=this._axesMap,n=this.dimensions,i=this._makeLayoutInfo(),r=i.layout;e.each((function(t){var e=[0,i.axisLength],n=t.inverse?1:0;t.setExtent(e[n],e[1-n])})),_C(n,(function(e,n){var o=(i.axisExpandable?DC:AC)(n,i),a={horizontal:{x:o.position,y:i.axisLength},vertical:{x:0,y:o.position}},s={horizontal:IC/2,vertical:0},l=[a[r].x+t.x,a[r].y+t.y],u=s[r],h=[1,0,0,1,0,0];me(h,h,u),ve(h,h,l),this._axesLayout[e]={position:l,rotation:u,transform:h,axisNameAvailableWidth:o.axisNameAvailableWidth,axisLabelShow:o.axisLabelShow,nameTruncateMaxWidth:o.nameTruncateMaxWidth,tickDirection:1,labelDirection:1}}),this)},t.prototype.getAxis=function(t){return this._axesMap.get(t)},t.prototype.dataToPoint=function(t,e){return this.axisCoordToPoint(this._axesMap.get(e).dataToCoord(t),e)},t.prototype.eachActiveState=function(t,e,n,i){null==n&&(n=0),null==i&&(i=t.count());var r=this._axesMap,o=this.dimensions,a=[],s=[];k(o,(function(e){a.push(t.mapDimension(e)),s.push(r.get(e).model)}));for(var l=this.hasAxisBrushed(),u=n;u<i;u++){var h=void 0;if(l){h="active";for(var c=t.getValues(a,u),p=0,d=o.length;p<d;p++){if("inactive"===s[p].getActiveState(c[p])){h="inactive";break}}}else h="normal";e(h,u)}},t.prototype.hasAxisBrushed=function(){for(var t=this.dimensions,e=this._axesMap,n=!1,i=0,r=t.length;i<r;i++)"normal"!==e.get(t[i]).model.getActiveState()&&(n=!0);return n},t.prototype.axisCoordToPoint=function(t,e){return Su([t,0],this._axesLayout[e].transform)},t.prototype.getAxisLayout=function(t){return b(this._axesLayout[t])},t.prototype.getSlidedAxisExpandWindow=function(t){var e=this._makeLayoutInfo(),n=e.pixelDimIndex,i=e.axisExpandWindow.slice(),r=i[1]-i[0],o=[0,e.axisExpandWidth*(e.axisCount-1)];if(!this.containPoint(t))return{behavior:"none",axisExpandWindow:i};var a,s=t[n]-e.layoutBase-e.axisExpandWindow0Pos,l="slide",u=e.axisCollapseWidth,h=this._model.get("axisExpandSlideTriggerArea"),c=null!=h[0];if(u)c&&u&&s<r*h[0]?(l="jump",a=s-r*h[2]):c&&u&&s>r*(1-h[0])?(l="jump",a=s-r*(1-h[2])):(a=s-r*h[1])>=0&&(a=s-r*(1-h[1]))<=0&&(a=0),(a*=e.axisExpandWidth/u)?yC(a,i,o,"all"):l="none";else{var p=i[1]-i[0];(i=[bC(0,o[1]*s/p-p/2)])[1]=xC(o[1],i[0]+p),i[0]=i[1]-p}return{axisExpandWindow:i,behavior:l}},t}();function CC(t,e){return xC(bC(t,e[0]),e[1])}function AC(t,e){var n=e.layoutLength/(e.axisCount-1);return{position:n*t,axisNameAvailableWidth:n,axisLabelShow:!0}}function DC(t,e){var n,i,r=e.layoutLength,o=e.axisExpandWidth,a=e.axisCount,s=e.axisCollapseWidth,l=e.winInnerIndices,u=s,h=!1;return t<l[0]?(n=t*s,i=s):t<=l[1]?(n=e.axisExpandWindow0Pos+t*o-e.axisExpandWindow[0],u=o,h=!0):(n=r-(a-1-t)*s,i=s),{position:n,axisNameAvailableWidth:u,axisLabelShow:h,nameTruncateMaxWidth:i}}var LC={create:function(t,e){var n=[];return t.eachComponent("parallel",(function(i,r){var o=new TC(i,t,e);o.name="parallel_"+r,o.resize(i,e),i.coordinateSystem=o,o.model=i,n.push(o)})),t.eachSeries((function(t){if("parallel"===t.get("coordinateSystem")){var e=t.getReferringComponents("parallel",Mr).models[0];t.coordinateSystem=e.coordinateSystem}})),n}},kC=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.activeIntervals=[],e}return e(n,t),n.prototype.getAreaSelectStyle=function(){return Vr([["fill","color"],["lineWidth","borderWidth"],["stroke","borderColor"],["width","width"],["opacity","opacity"]])(this.getModel("areaSelectStyle"))},n.prototype.setActiveIntervals=function(t){var e=this.activeIntervals=b(t);if(e)for(var n=e.length-1;n>=0;n--)Wi(e[n])},n.prototype.getActiveState=function(t){var e=this.activeIntervals;if(!e.length)return"normal";if(null==t||isNaN(+t))return"inactive";if(1===e.length){var n=e[0];if(n[0]<=t&&t<=n[1])return"active"}else for(var i=0,r=e.length;i<r;i++)if(e[i][0]<=t&&t<=e[i][1])return"active";return"inactive"},n}(uc);D(kC,g_);var PC=Math.min,OC=Math.max,RC=Math.pow,NC={w:[0,0],e:[0,1],n:[1,0],s:[1,1]},EC={w:"ew",e:"ew",n:"ns",s:"ns",ne:"nesw",sw:"nesw",nw:"nwse",se:"nwse"},zC={brushStyle:{lineWidth:2,stroke:"rgba(210,219,238,0.3)",fill:"#D2DBEE"},transformable:!0,brushMode:"single",removeOnClick:!1},BC=0,VC=function(t){function n(e){var n=t.call(this)||this;return n._track=[],n._covers=[],n._handlers={},n._zr=e,n.group=new Pi,n._uid="brushController_"+BC++,k(pA,(function(t,e){this._handlers[e]=z(t,this)}),n),n}return e(n,t),n.prototype.enableBrush=function(t){return this._brushType&&this._doDisableBrush(),t.brushType&&this._doEnableBrush(t),this},n.prototype._doEnableBrush=function(t){var e=this._zr;this._enableGlobalPan||function(t,e,n){mS(t)[e]=n}(e,"globalPan",this._uid),k(this._handlers,(function(t,n){e.on(n,t)})),this._brushType=t.brushType,this._brushOption=w(b(zC),t,!0)},n.prototype._doDisableBrush=function(){var t=this._zr;!function(t,e,n){var i=mS(t);i[e]===n&&(i[e]=null)}(t,"globalPan",this._uid),k(this._handlers,(function(e,n){t.off(n,e)})),this._brushType=this._brushOption=null},n.prototype.setPanels=function(t){if(t&&t.length){var e=this._panels={};k(t,(function(t){e[t.panelId]=b(t)}))}else this._panels=null;return this},n.prototype.mount=function(t){t=t||{},this._enableGlobalPan=t.enableGlobalPan;var e=this.group;return this._zr.add(e),e.attr({x:t.x||0,y:t.y||0,rotation:t.rotation||0,scaleX:t.scaleX||1,scaleY:t.scaleY||1}),this._transform=e.getLocalTransform(),this},n.prototype.updateCovers=function(t){t=P(t,(function(t){return w(b(zC),t,!0)}));var e=this._covers,n=this._covers=[],i=this,r=this._creatingCover;return new Cv(e,t,(function(t,e){return o(t.__brushOption,e)}),o).add(a).update(a).remove((function(t){e[t]!==r&&i.group.remove(e[t])})).execute(),this;function o(t,e){return(null!=t.id?t.id:"\0-brush-index-"+e)+"-"+t.brushType}function a(o,a){var s=t[o];if(null!=a&&e[a]===r)n[o]=e[a];else{var l=n[o]=null!=a?(e[a].__brushOption=s,e[a]):GC(i,FC(i,s));YC(i,l)}}},n.prototype.unmount=function(){return this.enableBrush(!1),jC(this),this._zr.remove(this.group),this},n.prototype.dispose=function(){this.unmount(),this.off()},n}(Ft);function FC(t,e){var n=fA[e.brushType].createCover(t,e);return n.__brushOption=e,WC(n,e),t.group.add(n),n}function GC(t,e){var n=XC(e);return n.endCreating&&(n.endCreating(t,e),WC(e,e.__brushOption)),e}function HC(t,e){var n=e.__brushOption;XC(e).updateCoverShape(t,e,n.range,n)}function WC(t,e){var n=e.z;null==n&&(n=1e4),t.traverse((function(t){t.z=n,t.z2=n}))}function YC(t,e){XC(e).updateCommon(t,e),HC(t,e)}function XC(t){return fA[t.__brushOption.brushType]}function UC(t,e,n){var i,r=t._panels;if(!r)return true;var o=t._transform;return k(r,(function(t){t.isTargetByCursor(e,n,o)&&(i=t)})),i}function ZC(t,e){var n=t._panels;if(!n)return true;var i=e.__brushOption.panelId;return null==i||n[i]}function jC(t){var e=t._covers,n=e.length;return k(e,(function(e){t.group.remove(e)}),t),e.length=0,!!n}function qC(t,e){var n=P(t._covers,(function(t){var e=t.__brushOption,n=b(e.range);return{brushType:e.brushType,panelId:e.panelId,range:n}}));t.trigger("brush",{areas:n,isEnd:!!e.isEnd,removeOnClick:!!e.removeOnClick})}function KC(t){var e=t.length-1;return e<0&&(e=0),[t[0],t[e]]}function $C(t,e,n,i){var r=new Pi;return r.add(new Za({name:"main",style:eA(n),silent:!0,draggable:!0,cursor:"move",drift:B(rA,t,e,r,["n","s","w","e"]),ondragend:B(qC,e,{isEnd:!0})})),k(i,(function(n){r.add(new Za({name:n.join(""),style:{opacity:0},draggable:!0,silent:!0,invisible:!0,drift:B(rA,t,e,r,n),ondragend:B(qC,e,{isEnd:!0})}))})),r}function JC(t,e,n,i){var r=i.brushStyle.lineWidth||0,o=OC(r,6),a=n[0][0],s=n[1][0],l=a-r/2,u=s-r/2,h=n[0][1],c=n[1][1],p=h-o+r/2,d=c-o+r/2,f=h-a,g=c-s,y=f+r,v=g+r;tA(t,e,"main",a,s,f,g),i.transformable&&(tA(t,e,"w",l,u,o,v),tA(t,e,"e",p,u,o,v),tA(t,e,"n",l,u,y,o),tA(t,e,"s",l,d,y,o),tA(t,e,"nw",l,u,o,o),tA(t,e,"ne",p,u,o,o),tA(t,e,"sw",l,d,o,o),tA(t,e,"se",p,d,o,o))}function QC(t,e){var n=e.__brushOption,i=n.transformable,r=e.childAt(0);r.useStyle(eA(n)),r.attr({silent:!i,cursor:i?"move":"default"}),k([["w"],["e"],["n"],["s"],["s","e"],["s","w"],["n","e"],["n","w"]],(function(n){var r=e.childOfName(n.join("")),o=1===n.length?iA(t,n[0]):function(t,e){var n=[iA(t,e[0]),iA(t,e[1])];return("e"===n[0]||"w"===n[0])&&n.reverse(),n.join("")}(t,n);r&&r.attr({silent:!i,invisible:!i,cursor:i?EC[o]+"-resize":null})}))}function tA(t,e,n,i,r,o,a){var s=e.childOfName(n);s&&s.setShape(function(t){var e=PC(t[0][0],t[1][0]),n=PC(t[0][1],t[1][1]),i=OC(t[0][0],t[1][0]),r=OC(t[0][1],t[1][1]);return{x:e,y:n,width:i-e,height:r-n}}(sA(t,e,[[i,r],[i+o,r+a]])))}function eA(t){return I({strokeNoScale:!0},t.brushStyle)}function nA(t,e,n,i){var r=[PC(t,n),PC(e,i)],o=[OC(t,n),OC(e,i)];return[[r[0],o[0]],[r[1],o[1]]]}function iA(t,e){return{left:"w",right:"e",top:"n",bottom:"s"}[Mu({w:"left",e:"right",n:"top",s:"bottom"}[e],function(t){return wu(t.group)}(t))]}function rA(t,e,n,i,r,o){var a=n.__brushOption,s=t.toRectRange(a.range),l=aA(e,r,o);k(i,(function(t){var e=NC[t];s[e[0]][e[1]]+=l[e[0]]})),a.range=t.fromRectRange(nA(s[0][0],s[1][0],s[0][1],s[1][1])),YC(e,n),qC(e,{isEnd:!1})}function oA(t,e,n,i){var r=e.__brushOption.range,o=aA(t,n,i);k(r,(function(t){t[0]+=o[0],t[1]+=o[1]})),YC(t,e),qC(t,{isEnd:!1})}function aA(t,e,n){var i=t.group,r=i.transformCoordToLocal(e,n),o=i.transformCoordToLocal(0,0);return[r[0]-o[0],r[1]-o[1]]}function sA(t,e,n){var i=ZC(t,e);return i&&true!==i?i.clipPath(n,t._transform):b(n)}function lA(t){var e=t.event;e.preventDefault&&e.preventDefault()}function uA(t,e,n){return t.childOfName("main").contain(e,n)}function hA(t,e,n,i){var r,o=t._creatingCover,a=t._creatingPanel,s=t._brushOption;if(t._track.push(n.slice()),function(t){var e=t._track;if(!e.length)return!1;var n=e[e.length-1],i=e[0],r=n[0]-i[0],o=n[1]-i[1];return RC(r*r+o*o,.5)>6}(t)||o){if(a&&!o){"single"===s.brushMode&&jC(t);var l=b(s);l.brushType=cA(l.brushType,a),l.panelId=true===a?null:a.panelId,o=t._creatingCover=FC(t,l),t._covers.push(o)}if(o){var u=fA[cA(t._brushType,a)];o.__brushOption.range=u.getCreatingRange(sA(t,o,t._track)),i&&(GC(t,o),u.updateCommon(t,o)),HC(t,o),r={isEnd:i}}}else i&&"single"===s.brushMode&&s.removeOnClick&&UC(t,e,n)&&jC(t)&&(r={isEnd:i,removeOnClick:!0});return r}function cA(t,e){return"auto"===t?e.defaultBrushType:t}var pA={mousedown:function(t){if(this._dragging)dA(this,t);else if(!t.target||!t.target.draggable){lA(t);var e=this.group.transformCoordToLocal(t.offsetX,t.offsetY);this._creatingCover=null,(this._creatingPanel=UC(this,t,e))&&(this._dragging=!0,this._track=[e.slice()])}},mousemove:function(t){var e=t.offsetX,n=t.offsetY,i=this.group.transformCoordToLocal(e,n);if(function(t,e,n){if(t._brushType&&!function(t,e,n){var i=t._zr;return e<0||e>i.getWidth()||n<0||n>i.getHeight()}(t,e.offsetX,e.offsetY)){var i=t._zr,r=t._covers,o=UC(t,e,n);if(!t._dragging)for(var a=0;a<r.length;a++){var s=r[a].__brushOption;if(o&&(!0===o||s.panelId===o.panelId)&&fA[s.brushType].contain(r[a],n[0],n[1]))return}o&&i.setCursorStyle("crosshair")}}(this,t,i),this._dragging){lA(t);var r=hA(this,t,i,!1);r&&qC(this,r)}},mouseup:function(t){dA(this,t)}};function dA(t,e){if(t._dragging){lA(e);var n=e.offsetX,i=e.offsetY,r=t.group.transformCoordToLocal(n,i),o=hA(t,e,r,!0);t._dragging=!1,t._track=[],t._creatingCover=null,o&&qC(t,o)}}var fA={lineX:gA(0),lineY:gA(1),rect:{createCover:function(t,e){function n(t){return t}return $C({toRectRange:n,fromRectRange:n},t,e,[["w"],["e"],["n"],["s"],["s","e"],["s","w"],["n","e"],["n","w"]])},getCreatingRange:function(t){var e=KC(t);return nA(e[1][0],e[1][1],e[0][0],e[0][1])},updateCoverShape:function(t,e,n,i){JC(t,e,n,i)},updateCommon:QC,contain:uA},polygon:{createCover:function(t,e){var n=new Pi;return n.add(new Rl({name:"main",style:eA(e),silent:!0})),n},getCreatingRange:function(t){return t},endCreating:function(t,e){e.remove(e.childAt(0)),e.add(new Pl({name:"main",draggable:!0,drift:B(oA,t,e),ondragend:B(qC,t,{isEnd:!0})}))},updateCoverShape:function(t,e,n,i){e.childAt(0).setShape({points:sA(t,e,n)})},updateCommon:QC,contain:uA}};function gA(t){return{createCover:function(e,n){return $C({toRectRange:function(e){var n=[e,[0,100]];return t&&n.reverse(),n},fromRectRange:function(e){return e[t]}},e,n,[[["w"],["e"]],[["n"],["s"]]][t])},getCreatingRange:function(e){var n=KC(e);return[PC(n[0][t],n[1][t]),OC(n[0][t],n[1][t])]},updateCoverShape:function(e,n,i,r){var o,a=ZC(e,n);if(true!==a&&a.getLinearBrushOtherExtent)o=a.getLinearBrushOtherExtent(t);else{var s=e._zr;o=[0,[s.getWidth(),s.getHeight()][1-t]]}var l=[i,o];t&&l.reverse(),JC(e,n,l,r)},updateCommon:QC,contain:uA}}function yA(t){return t=_A(t),function(e){return Cu(e,t)}}function vA(t,e){return t=_A(t),function(n){var i=null!=e?e:n,r=i?t.width:t.height,o=i?t.x:t.y;return[o,o+(r||0)]}}function mA(t,e,n){var i=_A(t);return function(t,r){return i.contain(r[0],r[1])&&!TS(t,e,n)}}function _A(t){return Pn.create(t)}var xA=["axisLine","axisTickLabel","axisName"],bA=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.init=function(e,n){t.prototype.init.apply(this,arguments),(this._brushController=new VC(n.getZr())).on("brush",z(this._onBrush,this))},n.prototype.render=function(t,e,n,i){if(!function(t,e,n){return n&&"axisAreaSelect"===n.type&&e.findComponents({mainType:"parallelAxis",query:n})[0]===t}(t,e,i)){this.axisModel=t,this.api=n,this.group.removeAll();var r=this._axisGroup;if(this._axisGroup=new Pi,this.group.add(this._axisGroup),t.get("show")){var o=function(t,e){return e.getComponent("parallel",t.get("parallelIndex"))}(t,e),a=o.coordinateSystem,s=t.getAreaSelectStyle(),l=s.width,u=t.axis.dim,h=M({strokeContainThreshold:l},a.getAxisLayout(u)),c=new Lw(t,h);k(xA,c.add,c),this._axisGroup.add(c.getGroup()),this._refreshBrushController(h,s,t,o,l,n),Tu(r,this._axisGroup,t)}}},n.prototype._refreshBrushController=function(t,e,n,i,r,o){var a=n.axis.getExtent(),s=a[1]-a[0],l=Math.min(30,.1*Math.abs(s)),u=Pn.create({x:a[0],y:-r/2,width:s,height:r});u.x-=l,u.width+=2*l,this._brushController.mount({enableGlobalPan:!0,rotation:t.rotation,x:t.position[0],y:t.position[1]}).setPanels([{panelId:"pl",clipPath:yA(u),isTargetByCursor:mA(u,o,i),getLinearBrushOtherExtent:vA(u,0)}]).enableBrush({brushType:"lineX",brushStyle:e,removeOnClick:!0}).updateCovers(function(t){var e=t.axis;return P(t.activeIntervals,(function(t){return{brushType:"lineX",panelId:"pl",range:[e.dataToCoord(t[0],!0),e.dataToCoord(t[1],!0)]}}))}(n))},n.prototype._onBrush=function(t){var e=t.areas,n=this.axisModel,i=n.axis,r=P(e,(function(t){return[i.coordToData(t.range[0],!0),i.coordToData(t.range[1],!0)]}));(!n.option.realtime===t.isEnd||t.removeOnClick)&&this.api.dispatchAction({type:"axisAreaSelect",parallelAxisId:n.id,intervals:r})},n.prototype.dispose=function(){this._brushController.dispose()},n.type="parallelAxis",n}(kd);var wA={type:"axisAreaSelect",event:"axisAreaSelected"};var SA={type:"value",areaSelectStyle:{width:20,borderWidth:1,borderColor:"rgba(160,197,232)",color:"rgba(160,197,232)",opacity:.3},realtime:!0,z:10};function MA(t){t.registerComponentView(cC),t.registerComponentModel(fC),t.registerCoordinateSystem("parallel",LC),t.registerPreprocessor(hC),t.registerComponentModel(kC),t.registerComponentView(bA),gw(t,"parallel",kC,SA),function(t){t.registerAction(wA,(function(t,e){e.eachComponent({mainType:"parallelAxis",query:t},(function(e){e.axis.model.setActiveIntervals(t.intervals)}))})),t.registerAction("parallelAxisExpand",(function(t,e){e.eachComponent({mainType:"parallel",query:t},(function(e){e.setAxisExpand(t)}))}))}(t)}var IA=function(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.cpx1=0,this.cpy1=0,this.cpx2=0,this.cpy2=0,this.extent=0},TA=function(t){function n(e){return t.call(this,e)||this}return e(n,t),n.prototype.getDefaultShape=function(){return new IA},n.prototype.buildPath=function(t,e){var n=e.extent;t.moveTo(e.x1,e.y1),t.bezierCurveTo(e.cpx1,e.cpy1,e.cpx2,e.cpy2,e.x2,e.y2),"vertical"===e.orient?(t.lineTo(e.x2+n,e.y2),t.bezierCurveTo(e.cpx2+n,e.cpy2,e.cpx1+n,e.cpy1,e.x1+n,e.y1)):(t.lineTo(e.x2,e.y2+n),t.bezierCurveTo(e.cpx2,e.cpy2+n,e.cpx1,e.cpy1+n,e.x1,e.y1+n)),t.closePath()},n.prototype.highlight=function(){Is(this)},n.prototype.downplay=function(){Ts(this)},n}(Na),CA=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e._focusAdjacencyDisabled=!1,e}return e(n,t),n.prototype.render=function(t,e,n){var i=this,r=t.getGraph(),o=this.group,a=t.layoutInfo,s=a.width,l=a.height,u=t.getData(),h=t.getData("edge"),c=t.get("orient");this._model=t,o.removeAll(),o.x=a.x,o.y=a.y,r.eachEdge((function(e){var n=new TA,i=rs(n);i.dataIndex=e.dataIndex,i.seriesIndex=t.seriesIndex,i.dataType="edge";var r,a,u,p,d,f,g,y,v=e.getModel(),m=v.getModel("lineStyle"),_=m.get("curveness"),x=e.node1.getLayout(),b=e.node1.getModel(),w=b.get("localX"),S=b.get("localY"),M=e.node2.getLayout(),I=e.node2.getModel(),T=I.get("localX"),C=I.get("localY"),A=e.getLayout();switch(n.shape.extent=Math.max(1,A.dy),n.shape.orient=c,"vertical"===c?(r=(null!=w?w*s:x.x)+A.sy,a=(null!=S?S*l:x.y)+x.dy,u=(null!=T?T*s:M.x)+A.ty,d=r,f=a*(1-_)+(p=null!=C?C*l:M.y)*_,g=u,y=a*_+p*(1-_)):(r=(null!=w?w*s:x.x)+x.dx,a=(null!=S?S*l:x.y)+A.sy,d=r*(1-_)+(u=null!=T?T*s:M.x)*_,f=a,g=r*_+u*(1-_),y=p=(null!=C?C*l:M.y)+A.ty),n.setShape({x1:r,y1:a,x2:u,y2:p,cpx1:d,cpy1:f,cpx2:g,cpy2:y}),n.useStyle(m.getItemStyle()),n.style.fill){case"source":n.style.fill=e.node1.getVisual("color"),n.style.decal=e.node1.getVisual("style").decal;break;case"target":n.style.fill=e.node2.getVisual("color"),n.style.decal=e.node2.getVisual("style").decal;break;case"gradient":var D=e.node1.getVisual("color"),L=e.node2.getVisual("color");"string"==typeof D&&"string"==typeof L&&(n.style.fill=new Ul(0,0,1,0,[{color:D,offset:0},{color:L,offset:1}]))}var k=v.getModel("emphasis");Vs(n,v,"lineStyle",(function(t){return t.getItemStyle()})),o.add(n),h.setItemGraphicEl(e.dataIndex,n);var P=k.get("focus");Ns(n,"adjacency"===P?e.getAdjacentDataIndices():P,k.get("blurScope")),rs(n).dataType="edge"})),r.eachNode((function(e){var n=e.getLayout(),i=e.getModel(),r=i.get("localX"),a=i.get("localY"),h=i.getModel("emphasis"),c=new Za({shape:{x:null!=r?r*s:n.x,y:null!=a?a*l:n.y,width:n.dx,height:n.dy},style:i.getModel("itemStyle").getItemStyle()});zu(c,Bu(i),{labelFetcher:t,labelDataIndex:e.dataIndex,defaultText:e.id}),c.disableLabelAnimation=!0,c.setStyle("fill",e.getVisual("color")),c.setStyle("decal",e.getVisual("style").decal),Vs(c,i),o.add(c),u.setItemGraphicEl(e.dataIndex,c),rs(c).dataType="node";var p=h.get("focus");Ns(c,"adjacency"===p?e.getAdjacentDataIndices():p,h.get("blurScope"))})),u.eachItemGraphicEl((function(e,r){u.getItemModel(r).get("draggable")&&(e.drift=function(e,o){i._focusAdjacencyDisabled=!0,this.shape.x+=e,this.shape.y+=o,this.dirty(),n.dispatchAction({type:"dragNode",seriesId:t.id,dataIndex:u.getRawIndex(r),localX:this.shape.x/s,localY:this.shape.y/l})},e.ondragend=function(){i._focusAdjacencyDisabled=!1},e.draggable=!0,e.cursor="move")})),!this._data&&t.isAnimationEnabled()&&o.setClipPath(function(t,e,n){var i=new Za({shape:{x:t.x-10,y:t.y-10,width:0,height:t.height+20}});return vu(i,{shape:{width:t.width+20}},e,n),i}(o.getBoundingRect(),t,(function(){o.removeClipPath()}))),this._data=t.getData()},n.prototype.dispose=function(){},n.type="sankey",n}(Nd);var AA=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.getInitialData=function(t,e){var n=t.edges||t.links,i=t.data||t.nodes,r=t.levels;this.levelModels=[];for(var o=this.levelModels,a=0;a<r.length;a++)null!=r[a].depth&&r[a].depth>=0&&(o[r[a].depth]=new ah(r[a],this,e));if(i&&n)return GT(i,n,this,!0,(function(t,e){t.wrapMethod("getItemModel",(function(t,e){var n=t.parentModel,i=n.getData().getItemLayout(e);if(i){var r=i.depth,o=n.levelModels[r];o&&(t.parentModel=o)}return t})),e.wrapMethod("getItemModel",(function(t,e){var n=t.parentModel,i=n.getGraph().getEdgeByIndex(e).node1.getLayout();if(i){var r=i.depth,o=n.levelModels[r];o&&(t.parentModel=o)}return t}))})).data},n.prototype.setNodePosition=function(t,e){var n=this.option.data[t];n.localX=e[0],n.localY=e[1]},n.prototype.getGraph=function(){return this.getData().graph},n.prototype.getEdgeData=function(){return this.getGraph().edgeData},n.prototype.formatTooltip=function(t,e,n){function i(t){return isNaN(t)||null==t}if("edge"===n){var r=this.getDataParams(t,n),o=r.data,a=r.value;return hd("nameValue",{name:o.source+" -- "+o.target,value:a,noValue:i(a)})}var s=this.getGraph().getNodeByIndex(t).getLayout().value,l=this.getDataParams(t,n).data.name;return hd("nameValue",{name:null!=l?l+"":null,value:s,noValue:i(s)})},n.prototype.optionUpdated=function(){var t=this.option;!0===t.focusNodeAdjacency&&(t.focusNodeAdjacency="allEdges")},n.prototype.getDataParams=function(e,n){var i=t.prototype.getDataParams.call(this,e,n);if(null==i.value&&"node"===n){var r=this.getGraph().getNodeByIndex(e).getLayout().value;i.value=r}return i},n.type="series.sankey",n.defaultOption={zlevel:0,z:2,coordinateSystem:"view",left:"5%",top:"5%",right:"20%",bottom:"5%",orient:"horizontal",nodeWidth:20,nodeGap:8,draggable:!0,focusNodeAdjacency:!1,layoutIterations:32,label:{show:!0,position:"right",fontSize:12},levels:[],nodeAlign:"justify",lineStyle:{color:"#314656",opacity:.2,curveness:.5},emphasis:{label:{show:!0},lineStyle:{opacity:.5}},select:{itemStyle:{borderColor:"#212121"}},animationEasing:"linear",animationDuration:1e3},n}(Sd);function DA(t,e){t.eachSeriesByType("sankey",(function(t){var n=t.get("nodeWidth"),i=t.get("nodeGap"),r=function(t,e){return nc(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}(t,e);t.layoutInfo=r;var o=r.width,a=r.height,s=t.getGraph(),l=s.nodes,u=s.edges;!function(t){k(t,(function(t){var e=VA(t.outEdges,BA),n=VA(t.inEdges,BA),i=t.getValue()||0,r=Math.max(e,n,i);t.setLayout({value:r},!0)}))}(l),function(t,e,n,i,r,o,a,s,l){(function(t,e,n,i,r,o,a){for(var s=[],l=[],u=[],h=[],c=0,p=0;p<e.length;p++)s[p]=1;for(p=0;p<t.length;p++)l[p]=t[p].inEdges.length,0===l[p]&&u.push(t[p]);var d=-1;for(;u.length;){for(var f=0;f<u.length;f++){var g=u[f],y=g.hostGraph.data.getRawDataItem(g.dataIndex),v=null!=y.depth&&y.depth>=0;v&&y.depth>d&&(d=y.depth),g.setLayout({depth:v?y.depth:c},!0),"vertical"===o?g.setLayout({dy:n},!0):g.setLayout({dx:n},!0);for(var m=0;m<g.outEdges.length;m++){var _=g.outEdges[m];s[e.indexOf(_)]=0;var x=_.node2;0==--l[t.indexOf(x)]&&h.indexOf(x)<0&&h.push(x)}}++c,u=h,h=[]}for(p=0;p<s.length;p++)if(1===s[p])throw new Error("Sankey is a DAG, the original data has cycle!");var b=d>c-1?d:c-1;a&&"left"!==a&&function(t,e,n,i){if("right"===e){for(var r=[],o=t,a=0;o.length;){for(var s=0;s<o.length;s++){var l=o[s];l.setLayout({skNodeHeight:a},!0);for(var u=0;u<l.inEdges.length;u++){var h=l.inEdges[u];r.indexOf(h.node1)<0&&r.push(h.node1)}}o=r,r=[],++a}k(t,(function(t){LA(t)||t.setLayout({depth:Math.max(0,i-t.getLayout().skNodeHeight)},!0)}))}else"justify"===e&&function(t,e){k(t,(function(t){LA(t)||t.outEdges.length||t.setLayout({depth:e},!0)}))}(t,i)}(t,a,0,b);!function(t,e,n){k(t,(function(t){var i=t.getLayout().depth*e;"vertical"===n?t.setLayout({y:i},!0):t.setLayout({x:i},!0)}))}(t,"vertical"===o?(r-n)/b:(i-n)/b,o)})(t,e,n,r,o,s,l),function(t,e,n,i,r,o,a){var s=function(t,e){var n=[],i="vertical"===e?"y":"x",r=Ar(t,(function(t){return t.getLayout()[i]}));return r.keys.sort((function(t,e){return t-e})),k(r.keys,(function(t){n.push(r.buckets.get(t))})),n}(t,a);(function(t,e,n,i,r,o){var a=1/0;k(t,(function(t){var e=t.length,s=0;k(t,(function(t){s+=t.getLayout().value}));var l="vertical"===o?(i-(e-1)*r)/s:(n-(e-1)*r)/s;l<a&&(a=l)})),k(t,(function(t){k(t,(function(t,e){var n=t.getLayout().value*a;"vertical"===o?(t.setLayout({x:e},!0),t.setLayout({dx:n},!0)):(t.setLayout({y:e},!0),t.setLayout({dy:n},!0))}))})),k(e,(function(t){var e=+t.getValue()*a;t.setLayout({dy:e},!0)}))})(s,e,n,i,r,a),kA(s,r,n,i,a);for(var l=1;o>0;o--)PA(s,l*=.99,a),kA(s,r,n,i,a),FA(s,l,a),kA(s,r,n,i,a)}(t,e,o,r,i,a,s),function(t,e){var n="vertical"===e?"x":"y";k(t,(function(t){t.outEdges.sort((function(t,e){return t.node2.getLayout()[n]-e.node2.getLayout()[n]})),t.inEdges.sort((function(t,e){return t.node1.getLayout()[n]-e.node1.getLayout()[n]}))})),k(t,(function(t){var e=0,n=0;k(t.outEdges,(function(t){t.setLayout({sy:e},!0),e+=t.getLayout().dy})),k(t.inEdges,(function(t){t.setLayout({ty:n},!0),n+=t.getLayout().dy}))}))}(t,s)}(l,u,n,i,o,a,0!==R(l,(function(t){return 0===t.getLayout().value})).length?0:t.get("layoutIterations"),t.get("orient"),t.get("nodeAlign"))}))}function LA(t){var e=t.hostGraph.data.getRawDataItem(t.dataIndex);return null!=e.depth&&e.depth>=0}function kA(t,e,n,i,r){var o="vertical"===r?"x":"y";k(t,(function(t){var a,s,l;t.sort((function(t,e){return t.getLayout()[o]-e.getLayout()[o]}));for(var u=0,h=t.length,c="vertical"===r?"dx":"dy",p=0;p<h;p++)(l=u-(s=t[p]).getLayout()[o])>0&&(a=s.getLayout()[o]+l,"vertical"===r?s.setLayout({x:a},!0):s.setLayout({y:a},!0)),u=s.getLayout()[o]+s.getLayout()[c]+e;if((l=u-e-("vertical"===r?i:n))>0){a=s.getLayout()[o]-l,"vertical"===r?s.setLayout({x:a},!0):s.setLayout({y:a},!0),u=a;for(p=h-2;p>=0;--p)(l=(s=t[p]).getLayout()[o]+s.getLayout()[c]+e-u)>0&&(a=s.getLayout()[o]-l,"vertical"===r?s.setLayout({x:a},!0):s.setLayout({y:a},!0)),u=s.getLayout()[o]}}))}function PA(t,e,n){k(t.slice().reverse(),(function(t){k(t,(function(t){if(t.outEdges.length){var i=VA(t.outEdges,OA,n)/VA(t.outEdges,BA);if(isNaN(i)){var r=t.outEdges.length;i=r?VA(t.outEdges,RA,n)/r:0}if("vertical"===n){var o=t.getLayout().x+(i-zA(t,n))*e;t.setLayout({x:o},!0)}else{var a=t.getLayout().y+(i-zA(t,n))*e;t.setLayout({y:a},!0)}}}))}))}function OA(t,e){return zA(t.node2,e)*t.getValue()}function RA(t,e){return zA(t.node2,e)}function NA(t,e){return zA(t.node1,e)*t.getValue()}function EA(t,e){return zA(t.node1,e)}function zA(t,e){return"vertical"===e?t.getLayout().x+t.getLayout().dx/2:t.getLayout().y+t.getLayout().dy/2}function BA(t){return t.getValue()}function VA(t,e,n){for(var i=0,r=t.length,o=-1;++o<r;){var a=+e(t[o],n);isNaN(a)||(i+=a)}return i}function FA(t,e,n){k(t,(function(t){k(t,(function(t){if(t.inEdges.length){var i=VA(t.inEdges,NA,n)/VA(t.inEdges,BA);if(isNaN(i)){var r=t.inEdges.length;i=r?VA(t.inEdges,EA,n)/r:0}if("vertical"===n){var o=t.getLayout().x+(i-zA(t,n))*e;t.setLayout({x:o},!0)}else{var a=t.getLayout().y+(i-zA(t,n))*e;t.setLayout({y:a},!0)}}}))}))}function GA(t){t.eachSeriesByType("sankey",(function(t){var e=t.getGraph().nodes;if(e.length){var n=1/0,i=-1/0;k(e,(function(t){var e=t.getLayout().value;e<n&&(n=e),e>i&&(i=e)})),k(e,(function(e){var r=new cI({type:"color",mappingMethod:"linear",dataExtent:[n,i],visual:t.get("color")}).mapValueToVisual(e.getLayout().value),o=e.getModel().get(["itemStyle","color"]);null!=o?(e.setVisual("color",o),e.setVisual("style",{fill:o})):(e.setVisual("color",r),e.setVisual("style",{fill:r}))}))}}))}var HA=function(){function t(){}return t.prototype.getInitialData=function(t,e){var n,i,r=e.getComponent("xAxis",this.get("xAxisIndex")),o=e.getComponent("yAxis",this.get("yAxisIndex")),a=r.get("type"),s=o.get("type");"category"===a?(t.layout="horizontal",n=r.getOrdinalMeta(),i=!0):"category"===s?(t.layout="vertical",n=o.getOrdinalMeta(),i=!0):t.layout=t.layout||"horizontal";var l=["x","y"],u="horizontal"===t.layout?0:1,h=this._baseAxisDim=l[u],c=l[1-u],p=[r,o],d=p[u].get("type"),f=p[1-u].get("type"),g=t.data;if(g&&i){var y=[];k(g,(function(t,e){var n;V(t)?(n=t.slice(),t.unshift(e)):V(t.value)?(n=t.value.slice(),t.value.unshift(e)):n=t,y.push(n)})),t.data=y}var v=this.defaultValueDimensions,m=[{name:h,type:Dv(d),ordinalMeta:n,otherDims:{tooltip:!1,itemName:0},dimsDef:["base"]},{name:c,type:Dv(f),dimsDef:v.slice()}];return tw(this,{coordDimensions:m,dimensionsCount:v.length+1,encodeDefaulter:B(mc,m,this)})},t.prototype.getBaseAxis=function(){var t=this._baseAxisDim;return this.ecModel.getComponent(t+"Axis",this.get(t+"AxisIndex")).axis},t}(),WA=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.defaultValueDimensions=[{name:"min",defaultTooltip:!0},{name:"Q1",defaultTooltip:!0},{name:"median",defaultTooltip:!0},{name:"Q3",defaultTooltip:!0},{name:"max",defaultTooltip:!0}],e.visualDrawType="stroke",e}return e(n,t),n.type="series.boxplot",n.dependencies=["xAxis","yAxis","grid"],n.defaultOption={zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,layout:null,boxWidth:[7,50],itemStyle:{color:"#fff",borderWidth:1},emphasis:{scale:!0,itemStyle:{borderWidth:2,shadowBlur:5,shadowOffsetX:1,shadowOffsetY:1,shadowColor:"rgba(0,0,0,0.2)"}},animationDuration:800},n}(Sd);D(WA,HA,!0);var YA=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n){var i=t.getData(),r=this.group,o=this._data;this._data||r.removeAll();var a="horizontal"===t.get("layout")?1:0;i.diff(o).add((function(t){if(i.hasValue(t)){var e=ZA(i.getItemLayout(t),i,t,a,!0);i.setItemGraphicEl(t,e),r.add(e)}})).update((function(t,e){var n=o.getItemGraphicEl(e);if(i.hasValue(t)){var s=i.getItemLayout(t);n?jA(s,n,i,t):n=ZA(s,i,t,a),r.add(n),i.setItemGraphicEl(t,n)}else r.remove(n)})).remove((function(t){var e=o.getItemGraphicEl(t);e&&r.remove(e)})).execute(),this._data=i},n.prototype.remove=function(t){var e=this.group,n=this._data;this._data=null,n&&n.eachItemGraphicEl((function(t){t&&e.remove(t)}))},n.type="boxplot",n}(Nd),XA=function(){},UA=function(t){function n(e){var n=t.call(this,e)||this;return n.type="boxplotBoxPath",n}return e(n,t),n.prototype.getDefaultShape=function(){return new XA},n.prototype.buildPath=function(t,e){var n=e.points,i=0;for(t.moveTo(n[i][0],n[i][1]),i++;i<4;i++)t.lineTo(n[i][0],n[i][1]);for(t.closePath();i<n.length;i++)t.moveTo(n[i][0],n[i][1]),i++,t.lineTo(n[i][0],n[i][1])},n}(Na);function ZA(t,e,n,i,r){var o=t.ends,a=new UA({shape:{points:r?qA(o,i,t):o}});return jA(t,a,e,n,r),a}function jA(t,e,n,i,r){var o=n.hostModel;(0,Ou[r?"initProps":"updateProps"])(e,{shape:{points:t.ends}},o,i),e.useStyle(n.getItemVisual(i,"style")),e.style.strokeNoScale=!0,e.z2=100;var a=n.getItemModel(i);Vs(e,a),Ns(e,a.get(["emphasis","focus"]),a.get(["emphasis","blurScope"]))}function qA(t,e,n){return P(t,(function(t){return(t=t.slice())[e]=n.initBaseline,t}))}function KA(t,e){t.eachRawSeriesByType("boxplot",(function(t){t.getData().setVisual("legendSymbol","roundRect")}))}var $A=k;function JA(t){var e=function(t){var e=[],n=[];return t.eachSeriesByType("boxplot",(function(t){var i=t.getBaseAxis(),r=C(n,i);r<0&&(r=n.length,n[r]=i,e[r]={axis:i,seriesModels:[]}),e[r].seriesModels.push(t)})),e}(t);$A(e,(function(t){var e=t.seriesModels;e.length&&(!function(t){var e,n,i=t.axis,r=t.seriesModels,o=r.length,a=t.boxWidthList=[],s=t.boxOffsetList=[],l=[];if("category"===i.type)n=i.getBandWidth();else{var u=0;$A(r,(function(t){u=Math.max(u,t.getData().count())})),e=i.getExtent(),Math.abs(e[1]-e[0])}$A(r,(function(t){var e=t.get("boxWidth");V(e)||(e=[e,e]),l.push([Gi(e[0],n)||0,Gi(e[1],n)||0])}));var h=.8*n-2,c=h/o*.3,p=(h-c*(o-1))/o,d=p/2-h/2;$A(r,(function(t,e){s.push(d),d+=c+p,a.push(Math.min(Math.max(p,l[e][0]),l[e][1]))}))}(t),$A(e,(function(e,n){!function(t,e,n){var i=t.coordinateSystem,r=t.getData(),o=n/2,a="horizontal"===t.get("layout")?0:1,s=1-a,l=["x","y"],u=r.mapDimension(l[a]),h=r.mapDimensionsAll(l[s]);if(null==u||h.length<5)return;for(var c=0;c<r.count();c++){var p=r.get(u,c),d=_(p,h[2],c),f=_(p,h[0],c),g=_(p,h[1],c),y=_(p,h[3],c),v=_(p,h[4],c),m=[];x(m,g,!1),x(m,y,!0),m.push(f,g,v,y),b(m,f),b(m,v),b(m,d),r.setItemLayout(c,{initBaseline:d[s],ends:m})}function _(t,n,o){var l,u=r.get(n,o),h=[];return h[a]=t,h[s]=u,isNaN(t)||isNaN(u)?l=[NaN,NaN]:(l=i.dataToPoint(h))[a]+=e,l}function x(t,e,n){var i=e.slice(),r=e.slice();i[a]+=o,r[a]-=o,n?t.push(i,r):t.push(r,i)}function b(t,e){var n=e.slice(),i=e.slice();n[a]-=o,i[a]+=o,t.push(n,i)}}(e,t.boxOffsetList[n],t.boxWidthList[n])})))}))}var QA={type:"echarts:boxplot",transform:function(t){var e=t.upstream;if("arrayRows"!==e.sourceFormat){var n="";0,ur(n)}var i=function(t,e){for(var n=[],i=[],r=(e=e||{}).boundIQR,o="none"===r||0===r,a=0;a<t.length;a++){var s=Wi(t[a].slice()),l=er(s,.25),u=er(s,.5),h=er(s,.75),c=s[0],p=s[s.length-1],d=(null==r?1.5:r)*(h-l),f=o?c:Math.max(c,l-d),g=o?p:Math.min(p,h+d),y=e.itemNameFormatter,v=F(y)?y({value:a}):G(y)?y.replace("{value}",a+""):a+"";n.push([v,f,l,u,h,g]);for(var m=0;m<s.length;m++){var _=s[m];if(_<f||_>g){var x=[v,_];i.push(x)}}}return{boxData:n,outliers:i}}(e.getRawData(),t.config);return[{dimensions:["ItemName","Low","Q1","Q2","Q3","High"],data:i.boxData},{data:i.outliers}]}};var tD=["color","borderColor"],eD=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n){this.group.removeClipPath(),this._updateDrawMode(t),this._isLargeDraw?this._renderLarge(t):this._renderNormal(t)},n.prototype.incrementalPrepareRender=function(t,e,n){this._clear(),this._updateDrawMode(t)},n.prototype.incrementalRender=function(t,e,n,i){this._isLargeDraw?this._incrementalRenderLarge(t,e):this._incrementalRenderNormal(t,e)},n.prototype._updateDrawMode=function(t){var e=t.pipelineContext.large;null!=this._isLargeDraw&&e===this._isLargeDraw||(this._isLargeDraw=e,this._clear())},n.prototype._renderNormal=function(t){var e=t.getData(),n=this._data,i=this.group,r=e.getLayout("isSimpleBox"),o=t.get("clip",!0),a=t.coordinateSystem,s=a.getArea&&a.getArea();this._data||i.removeAll(),e.diff(n).add((function(n){if(e.hasValue(n)){var a=e.getItemLayout(n);if(o&&oD(s,a))return;var l=rD(a,n,!0);vu(l,{shape:{points:a.ends}},t,n),aD(l,e,n,r),i.add(l),e.setItemGraphicEl(n,l)}})).update((function(a,l){var u=n.getItemGraphicEl(l);if(e.hasValue(a)){var h=e.getItemLayout(a);o&&oD(s,h)?i.remove(u):(u?yu(u,{shape:{points:h.ends}},t,a):u=rD(h),aD(u,e,a,r),i.add(u),e.setItemGraphicEl(a,u))}else i.remove(u)})).remove((function(t){var e=n.getItemGraphicEl(t);e&&i.remove(e)})).execute(),this._data=e},n.prototype._renderLarge=function(t){this._clear(),hD(t,this.group);var e=t.get("clip",!0)?lb(t.coordinateSystem,!1,t):null;e?this.group.setClipPath(e):this.group.removeClipPath()},n.prototype._incrementalRenderNormal=function(t,e){for(var n,i=e.getData(),r=i.getLayout("isSimpleBox");null!=(n=t.next());){var o=rD(i.getItemLayout(n));aD(o,i,n,r),o.incremental=!0,this.group.add(o)}},n.prototype._incrementalRenderLarge=function(t,e){hD(e,this.group,!0)},n.prototype.remove=function(t){this._clear()},n.prototype._clear=function(){this.group.removeAll(),this._data=null},n.type="candlestick",n}(Nd),nD=function(){},iD=function(t){function n(e){var n=t.call(this,e)||this;return n.type="normalCandlestickBox",n}return e(n,t),n.prototype.getDefaultShape=function(){return new nD},n.prototype.buildPath=function(t,e){var n=e.points;this.__simpleBox?(t.moveTo(n[4][0],n[4][1]),t.lineTo(n[6][0],n[6][1])):(t.moveTo(n[0][0],n[0][1]),t.lineTo(n[1][0],n[1][1]),t.lineTo(n[2][0],n[2][1]),t.lineTo(n[3][0],n[3][1]),t.closePath(),t.moveTo(n[4][0],n[4][1]),t.lineTo(n[5][0],n[5][1]),t.moveTo(n[6][0],n[6][1]),t.lineTo(n[7][0],n[7][1]))},n}(Na);function rD(t,e,n){var i=t.ends;return new iD({shape:{points:n?sD(i,t):i},z2:100})}function oD(t,e){for(var n=!0,i=0;i<e.ends.length;i++)if(t.contain(e.ends[i][0],e.ends[i][1])){n=!1;break}return n}function aD(t,e,n,i){var r=e.getItemModel(n);t.useStyle(e.getItemVisual(n,"style")),t.style.strokeNoScale=!0,t.__simpleBox=i,Vs(t,r)}function sD(t,e){return P(t,(function(t){return(t=t.slice())[1]=e.initBaseline,t}))}var lD=function(){},uD=function(t){function n(e){var n=t.call(this,e)||this;return n.type="largeCandlestickBox",n}return e(n,t),n.prototype.getDefaultShape=function(){return new lD},n.prototype.buildPath=function(t,e){for(var n=e.points,i=0;i<n.length;)if(this.__sign===n[i++]){var r=n[i++];t.moveTo(r,n[i++]),t.lineTo(r,n[i++])}else i+=3},n}(Na);function hD(t,e,n){var i=t.getData().getLayout("largePoints"),r=new uD({shape:{points:i},__sign:1});e.add(r);var o=new uD({shape:{points:i},__sign:-1});e.add(o),cD(1,r,t),cD(-1,o,t),n&&(r.incremental=!0,o.incremental=!0)}function cD(t,e,n,i){var r=n.get(["itemStyle",t>0?"borderColor":"borderColor0"])||n.get(["itemStyle",t>0?"color":"color0"]),o=n.getModel("itemStyle").getItemStyle(tD);e.useStyle(o),e.style.fill=null,e.style.stroke=r}var pD=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.defaultValueDimensions=[{name:"open",defaultTooltip:!0},{name:"close",defaultTooltip:!0},{name:"lowest",defaultTooltip:!0},{name:"highest",defaultTooltip:!0}],e}return e(n,t),n.prototype.getShadowDim=function(){return"open"},n.prototype.brushSelector=function(t,e,n){var i=e.getItemLayout(t);return i&&n.rect(i.brushRect)},n.type="series.candlestick",n.dependencies=["xAxis","yAxis","grid"],n.defaultOption={zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,layout:null,clip:!0,itemStyle:{color:"#eb5454",color0:"#47b262",borderColor:"#eb5454",borderColor0:"#47b262",borderWidth:1},emphasis:{scale:!0,itemStyle:{borderWidth:2}},barMaxWidth:null,barMinWidth:null,barWidth:null,large:!0,largeThreshold:600,progressive:3e3,progressiveThreshold:1e4,progressiveChunkMode:"mod",animationEasing:"linear",animationDuration:300},n}(Sd);function dD(t){t&&V(t.series)&&k(t.series,(function(t){Y(t)&&"k"===t.type&&(t.type="candlestick")}))}D(pD,HA,!0);var fD=["itemStyle","borderColor"],gD=["itemStyle","borderColor0"],yD=["itemStyle","color"],vD=["itemStyle","color0"],mD={seriesType:"candlestick",plan:Pd(),performRawSeries:!0,reset:function(t,e){function n(t,e){return e.get(t>0?yD:vD)}function i(t,e){return e.get(t>0?fD:gD)}if(t.getData().setVisual("legendSymbol","roundRect"),!e.isSeriesFiltered(t))return!t.pipelineContext.large&&{progress:function(t,e){for(var r;null!=(r=t.next());){var o=e.getItemModel(r),a=e.getItemLayout(r).sign,s=o.getItemStyle();s.fill=n(a,o),s.stroke=i(a,o)||s.fill,M(e.ensureUniqueItemVisual(r,"style"),s)}}}}},_D="undefined"!=typeof Float32Array?Float32Array:Array,xD={seriesType:"candlestick",plan:Pd(),reset:function(t){var e=t.coordinateSystem,n=t.getData(),i=function(t,e){var n,i=t.getBaseAxis(),r="category"===i.type?i.getBandWidth():(n=i.getExtent(),Math.abs(n[1]-n[0])/e.count()),o=Gi(Q(t.get("barMaxWidth"),r),r),a=Gi(Q(t.get("barMinWidth"),1),r),s=t.get("barWidth");return null!=s?Gi(s,r):Math.max(Math.min(r/2,o),a)}(t,n),r=["x","y"],o=n.mapDimension(r[0]),a=n.mapDimensionsAll(r[1]),s=a[0],l=a[1],u=a[2],h=a[3];if(n.setLayout({candleWidth:i,isSimpleBox:i<=1.3}),!(null==o||a.length<4))return{progress:t.pipelineContext.large?function(t,n){var i,r,a=new _D(4*t.count),c=0,p=[],d=[];for(;null!=(r=t.next());){var f=n.get(o,r),g=n.get(s,r),y=n.get(l,r),v=n.get(u,r),m=n.get(h,r);isNaN(f)||isNaN(v)||isNaN(m)?(a[c++]=NaN,c+=3):(a[c++]=bD(n,r,g,y,l),p[0]=f,p[1]=v,i=e.dataToPoint(p,null,d),a[c++]=i?i[0]:NaN,a[c++]=i?i[1]:NaN,p[1]=m,i=e.dataToPoint(p,null,d),a[c++]=i?i[1]:NaN)}n.setLayout("largePoints",a)}:function(t,n){var r;for(;null!=(r=t.next());){var a=n.get(o,r),c=n.get(s,r),p=n.get(l,r),d=n.get(u,r),f=n.get(h,r),g=Math.min(c,p),y=Math.max(c,p),v=w(g,a),m=w(y,a),_=w(d,a),x=w(f,a),b=[];S(b,m,0),S(b,v,1),b.push(I(x),I(m),I(_),I(v)),n.setItemLayout(r,{sign:bD(n,r,c,p,l),initBaseline:c>p?m[1]:v[1],ends:b,brushRect:M(d,f,a)})}function w(t,n){var i=[];return i[0]=n,i[1]=t,isNaN(n)||isNaN(t)?[NaN,NaN]:e.dataToPoint(i)}function S(t,e,n){var r=e.slice(),o=e.slice();r[0]=fu(r[0]+i/2,1,!1),o[0]=fu(o[0]-i/2,1,!0),n?t.push(r,o):t.push(o,r)}function M(t,e,n){var r=w(t,n),o=w(e,n);return r[0]-=i/2,o[0]-=i/2,{x:r[0],y:r[1],width:i,height:o[1]-r[1]}}function I(t){return t[0]=fu(t[0],1),t}}}}};function bD(t,e,n,i,r){return n>i?-1:n<i?1:e>0?t.get(r,e-1)<=i?1:-1:1}function wD(t,e){var n=e.rippleEffectColor||e.color;t.eachChild((function(t){t.attr({z:e.z,zlevel:e.zlevel,style:{stroke:"stroke"===e.brushType?n:null,fill:"fill"===e.brushType?n:null}})}))}var SD=function(t){function n(e,n){var i=t.call(this)||this,r=new Gx(e,n),o=new Pi;return i.add(r),i.add(o),i.updateData(e,n),i}return e(n,t),n.prototype.stopEffectAnimation=function(){this.childAt(1).removeAll()},n.prototype.startEffectAnimation=function(t){for(var e=t.symbolType,n=t.color,i=this.childAt(1),r=0;r<3;r++){var o=Ig(e,-1,-1,2,2,n);o.attr({style:{strokeNoScale:!0},z2:99,silent:!0,scaleX:.5,scaleY:.5});var a=-r/3*t.period+t.effectOffset;o.animate("",!0).when(t.period,{scale:[t.rippleScale/2,t.rippleScale/2]}).delay(a).start(),o.animateStyle(!0).when(t.period,{opacity:0}).delay(a).start(),i.add(o)}wD(i,t)},n.prototype.updateEffectAnimation=function(t){for(var e=this._effectCfg,n=this.childAt(1),i=["symbolType","period","rippleScale"],r=0;r<i.length;r++){var o=i[r];if(e[o]!==t[o])return this.stopEffectAnimation(),void this.startEffectAnimation(t)}wD(n,t)},n.prototype.highlight=function(){Is(this)},n.prototype.downplay=function(){Ts(this)},n.prototype.updateData=function(t,e){var n=this,i=t.hostModel;this.childAt(0).updateData(t,e);var r=this.childAt(1),o=t.getItemModel(e),a=t.getItemVisual(e,"symbol"),s=function(t){return V(t)||(t=[+t,+t]),t}(t.getItemVisual(e,"symbolSize")),l=t.getItemVisual(e,"style"),u=l&&l.fill;r.setScale(s),r.traverse((function(t){t.setStyle("fill",u)}));var h=o.getShallow("symbolOffset");h&&(r.x=Gi(h[0],s[0]),r.y=Gi(h[1],s[1]));var c=t.getItemVisual(e,"symbolRotate");r.rotation=(c||0)*Math.PI/180||0;var p={};p.showEffectOn=i.get("showEffectOn"),p.rippleScale=o.get(["rippleEffect","scale"]),p.brushType=o.get(["rippleEffect","brushType"]),p.period=1e3*o.get(["rippleEffect","period"]),p.effectOffset=e/t.count(),p.z=i.getShallow("z")||0,p.zlevel=i.getShallow("zlevel")||0,p.symbolType=a,p.color=u,p.rippleEffectColor=o.get(["rippleEffect","color"]),this.off("mouseover").off("mouseout").off("emphasis").off("normal"),"render"===p.showEffectOn?(this._effectCfg?this.updateEffectAnimation(p):this.startEffectAnimation(p),this._effectCfg=p):(this._effectCfg=null,this.stopEffectAnimation(),this.onHoverStateChange=function(t){"emphasis"===t?"render"!==p.showEffectOn&&n.startEffectAnimation(p):"normal"===t&&"render"!==p.showEffectOn&&n.stopEffectAnimation()}),this._effectCfg=p,Ns(this)},n.prototype.fadeOut=function(t){this.off("mouseover").off("mouseout"),t&&t()},n}(Pi);A(SD,Pi);var MD=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.init=function(){this._symbolDraw=new Ux(SD)},n.prototype.render=function(t,e,n){var i=t.getData(),r=this._symbolDraw;r.updateData(i),this.group.add(r.group)},n.prototype.updateTransform=function(t,e,n){var i=t.getData();this.group.dirty();var r=_b("").reset(t,e,n);r.progress&&r.progress({start:0,end:i.count(),count:i.count()},i),this._symbolDraw.updateLayout()},n.prototype._updateGroupTransform=function(t){var e=t.coordinateSystem;e&&e.getRoamTransform&&(this.group.transform=be(e.getRoamTransform()),this.group.decomposeTransform())},n.prototype.remove=function(t,e){this._symbolDraw&&this._symbolDraw.remove(!0)},n.type="effectScatter",n}(Nd),ID=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.hasSymbolVisual=!0,e}return e(n,t),n.prototype.getInitialData=function(t,e){return hm(this.getSource(),this,{useEncodeDefaulter:!0})},n.prototype.brushSelector=function(t,e,n){return n.point(e.getItemLayout(t))},n.type="series.effectScatter",n.dependencies=["grid","polar"],n.defaultOption={coordinateSystem:"cartesian2d",zlevel:0,z:2,legendHoverLink:!0,effectType:"ripple",progressive:0,showEffectOn:"render",rippleEffect:{period:4,scale:2.5,brushType:"fill"},symbolSize:10},n}(Sd);var TD=function(t){function n(e,n,i){var r=t.call(this)||this;return r.add(r.createLine(e,n,i)),r._updateEffectSymbol(e,n),r}return e(n,t),n.prototype.createLine=function(t,e,n){return new bT(t,e,n)},n.prototype._updateEffectSymbol=function(t,e){var n=t.getItemModel(e).getModel("effect"),i=n.get("symbolSize"),r=n.get("symbol");V(i)||(i=[i,i]);var o=t.getItemVisual(e,"style"),a=n.get("color")||o&&o.stroke,s=this.childAt(1);this._symbolType!==r&&(this.remove(s),(s=Ig(r,-.5,-.5,1,1,a)).z2=100,s.culling=!0,this.add(s)),s&&(s.setStyle("shadowColor",a),s.setStyle(n.getItemStyle(["color"])),s.scaleX=i[0],s.scaleY=i[1],s.setColor(a),this._symbolType=r,this._symbolScale=i,this._updateEffectAnimation(t,n,e))},n.prototype._updateEffectAnimation=function(t,e,n){var i=this.childAt(1);if(i){var r=this,o=t.getItemLayout(n),a=1e3*e.get("period"),s=e.get("loop"),l=e.get("constantSpeed"),u=J(e.get("delay"),(function(e){return e/t.count()*a/3}));if(i.ignore=!0,this._updateAnimationPoints(i,o),l>0&&(a=this._getLineLength(i)/l*1e3),(a!==this._period||s!==this._loop)&&(i.stopAnimation(),a>0)){var h=void 0;h="function"==typeof u?u(n):u,i.__t>0&&(h=-a*i.__t),i.__t=0;var c=i.animate("",s).when(a,{__t:1}).delay(h).during((function(){r._updateSymbolPosition(i)}));s||c.done((function(){r.remove(i)})),c.start()}this._period=a,this._loop=s}},n.prototype._getLineLength=function(t){return Lt(t.__p1,t.__cp1)+Lt(t.__cp1,t.__p2)},n.prototype._updateAnimationPoints=function(t,e){t.__p1=e[0],t.__p2=e[1],t.__cp1=e[2]||[(e[0][0]+e[1][0])/2,(e[0][1]+e[1][1])/2]},n.prototype.updateData=function(t,e,n){this.childAt(0).updateData(t,e,n),this._updateEffectSymbol(t,e)},n.prototype._updateSymbolPosition=function(t){var e=t.__p1,n=t.__p2,i=t.__cp1,r=t.__t,o=[t.x,t.y],a=o.slice(),s=Do,l=Lo;o[0]=s(e[0],i[0],n[0],r),o[1]=s(e[1],i[1],n[1],r);var u=l(e[0],i[0],n[0],r),h=l(e[1],i[1],n[1],r);t.rotation=-Math.atan2(h,u)-Math.PI/2,"line"!==this._symbolType&&"rect"!==this._symbolType&&"roundRect"!==this._symbolType||(void 0!==t.__lastT&&t.__lastT<t.__t?(t.scaleY=1.05*Lt(a,o),1===r&&(o[0]=a[0]+(o[0]-a[0])/2,o[1]=a[1]+(o[1]-a[1])/2)):1===t.__lastT?t.scaleY=2*Lt(e,o):t.scaleY=this._symbolScale[1]),t.__lastT=t.__t,t.ignore=!1,t.x=o[0],t.y=o[1]},n.prototype.updateLayout=function(t,e){this.childAt(0).updateLayout(t,e);var n=t.getItemModel(e).getModel("effect");this._updateEffectAnimation(t,n,e)},n}(Pi),CD=function(t){function n(e,n,i){var r=t.call(this)||this;return r._createPolyline(e,n,i),r}return e(n,t),n.prototype._createPolyline=function(t,e,n){var i=t.getItemLayout(e),r=new Rl({shape:{points:i}});this.add(r),this._updateCommonStl(t,e,n)},n.prototype.updateData=function(t,e,n){var i=t.hostModel;yu(this.childAt(0),{shape:{points:t.getItemLayout(e)}},i,e),this._updateCommonStl(t,e,n)},n.prototype._updateCommonStl=function(t,e,n){var i=this.childAt(0),r=t.getItemModel(e),o=n&&n.emphasisLineStyle;n&&!t.hasItemOption||(o=r.getModel(["emphasis","lineStyle"]).getLineStyle()),i.useStyle(t.getItemVisual(e,"style")),i.style.fill=null,i.style.strokeNoScale=!0,i.ensureState("emphasis").style=o,Ns(this)},n.prototype.updateLayout=function(t,e){this.childAt(0).setShape("points",t.getItemLayout(e))},n}(Pi),AD=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e._lastFrame=0,e._lastFramePercent=0,e}return e(n,t),n.prototype.createLine=function(t,e,n){return new CD(t,e,n)},n.prototype._updateAnimationPoints=function(t,e){this._points=e;for(var n=[0],i=0,r=1;r<e.length;r++){var o=e[r-1],a=e[r];i+=Lt(o,a),n.push(i)}if(0!==i){for(r=0;r<n.length;r++)n[r]/=i;this._offsets=n,this._length=i}else this._length=0},n.prototype._getLineLength=function(){return this._length},n.prototype._updateSymbolPosition=function(t){var e=t.__t,n=this._points,i=this._offsets,r=n.length;if(i){var o,a=this._lastFrame;if(e<this._lastFramePercent){for(o=Math.min(a+1,r-1);o>=0&&!(i[o]<=e);o--);o=Math.min(o,r-2)}else{for(o=a;o<r&&!(i[o]>e);o++);o=Math.min(o-1,r-2)}var s=(e-i[o])/(i[o+1]-i[o]),l=n[o],u=n[o+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=o,this._lastFramePercent=e,t.ignore=!1}},n}(TD),DD=function(){this.polyline=!1,this.curveness=0,this.segs=[]},LD=function(t){function n(e){return t.call(this,e)||this}return e(n,t),n.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},n.prototype.getDefaultShape=function(){return new DD},n.prototype.buildPath=function(t,e){var n=e.segs,i=e.curveness;if(e.polyline)for(var r=0;r<n.length;){var o=n[r++];if(o>0){t.moveTo(n[r++],n[r++]);for(var a=1;a<o;a++)t.lineTo(n[r++],n[r++])}}else for(r=0;r<n.length;){var s=n[r++],l=n[r++],u=n[r++],h=n[r++];if(t.moveTo(s,l),i>0){var c=(s+u)/2-(l-h)*i,p=(l+h)/2-(u-s)*i;t.quadraticCurveTo(c,p,u,h)}else t.lineTo(u,h)}},n.prototype.findDataIndex=function(t,e){var n=this.shape,i=n.segs,r=n.curveness,o=this.style.lineWidth;if(n.polyline)for(var a=0,s=0;s<i.length;){var l=i[s++];if(l>0)for(var u=i[s++],h=i[s++],c=1;c<l;c++){if(ya(u,h,p=i[s++],d=i[s++],o,t,e))return a}a++}else for(a=0,s=0;s<i.length;){u=i[s++],h=i[s++];var p=i[s++],d=i[s++];if(r>0){if(ma(u,h,(u+p)/2-(h-d)*r,(h+d)/2-(p-u)*r,p,d,o,t,e))return a}else if(ya(u,h,p,d,o,t,e))return a;a++}return-1},n}(Na),kD=function(){function t(){this.group=new Pi}return t.prototype.isPersistent=function(){return!this._incremental},t.prototype.updateData=function(t){this.group.removeAll();var e=new LD({rectHover:!0,cursor:"default"});e.setShape({segs:t.getLayout("linesPoints")}),this._setCommon(e,t),this.group.add(e),this._incremental=null},t.prototype.incrementalPrepareUpdate=function(t){this.group.removeAll(),this._clearIncremental(),t.count()>5e5?(this._incremental||(this._incremental=new tu({silent:!0})),this.group.add(this._incremental)):this._incremental=null},t.prototype.incrementalUpdate=function(t,e){var n=new LD;n.setShape({segs:e.getLayout("linesPoints")}),this._setCommon(n,e,!!this._incremental),this._incremental?this._incremental.addDisplayable(n,!0):(n.rectHover=!0,n.cursor="default",n.__startIndex=t.start,this.group.add(n))},t.prototype.remove=function(){this._clearIncremental(),this._incremental=null,this.group.removeAll()},t.prototype._setCommon=function(t,e,n){var i=e.hostModel;t.setShape({polyline:i.get("polyline"),curveness:i.get(["lineStyle","curveness"])}),t.useStyle(i.getModel("lineStyle").getLineStyle()),t.style.strokeNoScale=!0;var r=e.getVisual("style");if(r&&r.stroke&&t.setStyle("stroke",r.stroke),t.setStyle("fill",null),!n){var o=rs(t);o.seriesIndex=i.seriesIndex,t.on("mousemove",(function(e){o.dataIndex=null;var n=t.findDataIndex(e.offsetX,e.offsetY);n>0&&(o.dataIndex=n+t.__startIndex)}))}},t.prototype._clearIncremental=function(){var t=this._incremental;t&&t.clearDisplaybles()},t}(),PD={seriesType:"lines",plan:Pd(),reset:function(t){var e=t.coordinateSystem,n=t.get("polyline"),i=t.pipelineContext.large;return{progress:function(r,o){var a=[];if(i){var s=void 0,l=r.end-r.start;if(n){for(var u=0,h=r.start;h<r.end;h++)u+=t.getLineCoordsCount(h);s=new Float32Array(l+2*u)}else s=new Float32Array(4*l);var c=0,p=[];for(h=r.start;h<r.end;h++){var d=t.getLineCoords(h,a);n&&(s[c++]=d);for(var f=0;f<d;f++)p=e.dataToPoint(a[f],!1,p),s[c++]=p[0],s[c++]=p[1]}o.setLayout("linesPoints",s)}else for(h=r.start;h<r.end;h++){var g=o.getItemModel(h),y=(d=t.getLineCoords(h,a),[]);if(n)for(var v=0;v<d;v++)y.push(e.dataToPoint(a[v]));else{y[0]=e.dataToPoint(a[0]),y[1]=e.dataToPoint(a[1]);var m=g.get(["lineStyle","curveness"]);+m&&(y[2]=[(y[0][0]+y[1][0])/2-(y[0][1]-y[1][1])*m,(y[0][1]+y[1][1])/2-(y[1][0]-y[0][0])*m])}o.setItemLayout(h,y)}}}}},OD=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n){var i=t.getData(),r=this._updateLineDraw(i,t),o=t.get("zlevel"),a=t.get(["effect","trailLength"]),s=n.getZr(),l="svg"===s.painter.getType();(l||s.painter.getLayer(o).clear(!0),null==this._lastZlevel||l||s.configLayer(this._lastZlevel,{motionBlur:!1}),this._showEffect(t)&&a)&&(l||s.configLayer(o,{motionBlur:!0,lastFrameAlpha:Math.max(Math.min(a/10+.9,1),0)}));r.updateData(i);var u=t.get("clip",!0)&&lb(t.coordinateSystem,!1,t);u?this.group.setClipPath(u):this.group.removeClipPath(),this._lastZlevel=o,this._finished=!0},n.prototype.incrementalPrepareRender=function(t,e,n){var i=t.getData();this._updateLineDraw(i,t).incrementalPrepareUpdate(i),this._clearLayer(n),this._finished=!1},n.prototype.incrementalRender=function(t,e,n){this._lineDraw.incrementalUpdate(t,e.getData()),this._finished=t.end===e.getData().count()},n.prototype.updateTransform=function(t,e,n){var i=t.getData(),r=t.pipelineContext;if(!this._finished||r.large||r.progressiveRender)return{update:!0};var o=PD.reset(t,e,n);o.progress&&o.progress({start:0,end:i.count(),count:i.count()},i),this._lineDraw.updateLayout(),this._clearLayer(n)},n.prototype._updateLineDraw=function(t,e){var n=this._lineDraw,i=this._showEffect(e),r=!!e.get("polyline"),o=e.pipelineContext.large;return n&&i===this._hasEffet&&r===this._isPolyline&&o===this._isLargeDraw||(n&&n.remove(),n=this._lineDraw=o?new kD:new wT(r?i?AD:CD:i?TD:bT),this._hasEffet=i,this._isPolyline=r,this._isLargeDraw=o,this.group.removeAll()),this.group.add(n.group),n},n.prototype._showEffect=function(t){return!!t.get(["effect","show"])},n.prototype._clearLayer=function(t){var e=t.getZr();"svg"===e.painter.getType()||null==this._lastZlevel||e.painter.getLayer(this._lastZlevel).clear(!0)},n.prototype.remove=function(t,e){this._lineDraw&&this._lineDraw.remove(),this._lineDraw=null,this._clearLayer(e)},n.type="lines",n}(Nd),RD="undefined"==typeof Uint32Array?Array:Uint32Array,ND="undefined"==typeof Float64Array?Array:Float64Array;function ED(t){var e=t.data;e&&e[0]&&e[0][0]&&e[0][0].coord&&(t.data=P(e,(function(t){var e={coords:[t[0].coord,t[1].coord]};return t[0].name&&(e.fromName=t[0].name),t[1].name&&(e.toName=t[1].name),S([e,t[0],t[1]])})))}var zD=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.visualStyleAccessPath="lineStyle",e.visualDrawType="stroke",e}return e(n,t),n.prototype.init=function(e){e.data=e.data||[],ED(e);var n=this._processFlatCoordsArray(e.data);this._flatCoords=n.flatCoords,this._flatCoordsOffset=n.flatCoordsOffset,n.flatCoords&&(e.data=new Float32Array(n.count)),t.prototype.init.apply(this,arguments)},n.prototype.mergeOption=function(e){if(ED(e),e.data){var n=this._processFlatCoordsArray(e.data);this._flatCoords=n.flatCoords,this._flatCoordsOffset=n.flatCoordsOffset,n.flatCoords&&(e.data=new Float32Array(n.count))}t.prototype.mergeOption.apply(this,arguments)},n.prototype.appendData=function(t){var e=this._processFlatCoordsArray(t.data);e.flatCoords&&(this._flatCoords?(this._flatCoords=ut(this._flatCoords,e.flatCoords),this._flatCoordsOffset=ut(this._flatCoordsOffset,e.flatCoordsOffset)):(this._flatCoords=e.flatCoords,this._flatCoordsOffset=e.flatCoordsOffset),t.data=new Float32Array(e.count)),this.getRawData().appendData(t.data)},n.prototype._getCoordsFromItemModel=function(t){var e=this.getData().getItemModel(t),n=e.option instanceof Array?e.option:e.getShallow("coords");return n},n.prototype.getLineCoordsCount=function(t){return this._flatCoordsOffset?this._flatCoordsOffset[2*t+1]:this._getCoordsFromItemModel(t).length},n.prototype.getLineCoords=function(t,e){if(this._flatCoordsOffset){for(var n=this._flatCoordsOffset[2*t],i=this._flatCoordsOffset[2*t+1],r=0;r<i;r++)e[r]=e[r]||[],e[r][0]=this._flatCoords[n+2*r],e[r][1]=this._flatCoords[n+2*r+1];return i}var o=this._getCoordsFromItemModel(t);for(r=0;r<o.length;r++)e[r]=e[r]||[],e[r][0]=o[r][0],e[r][1]=o[r][1];return o.length},n.prototype._processFlatCoordsArray=function(t){var e=0;if(this._flatCoords&&(e=this._flatCoords.length),"number"==typeof t[0]){for(var n=t.length,i=new RD(n),r=new ND(n),o=0,a=0,s=0,l=0;l<n;){s++;var u=t[l++];i[a++]=o+e,i[a++]=u;for(var h=0;h<u;h++){var c=t[l++],p=t[l++];r[o++]=c,r[o++]=p}}return{flatCoordsOffset:new Uint32Array(i.buffer,0,a),flatCoords:r,count:s}}return{flatCoordsOffset:null,flatCoords:null,count:t.length}},n.prototype.getInitialData=function(t,e){var n=new tm(["value"],this);return n.hasItemOption=!1,n.initData(t.data,[],(function(t,e,i,r){if(t instanceof Array)return NaN;n.hasItemOption=!0;var o=t.value;return null!=o?o instanceof Array?o[r]:o:void 0})),n},n.prototype.formatTooltip=function(t,e,n){var i=this.getData().getItemModel(t),r=i.get("name");if(r)return r;var o=i.get("fromName"),a=i.get("toName"),s=[];return null!=o&&s.push(o),null!=a&&s.push(a),hd("nameValue",{name:s.join(" > ")})},n.prototype.preventIncremental=function(){return!!this.get(["effect","show"])},n.prototype.getProgressive=function(){var t=this.option.progressive;return null==t?this.option.large?1e4:this.get("progressive"):t},n.prototype.getProgressiveThreshold=function(){var t=this.option.progressiveThreshold;return null==t?this.option.large?2e4:this.get("progressiveThreshold"):t},n.type="series.lines",n.dependencies=["grid","polar","geo","calendar"],n.defaultOption={coordinateSystem:"geo",zlevel:0,z:2,legendHoverLink:!0,xAxisIndex:0,yAxisIndex:0,symbol:["none","none"],symbolSize:[10,10],geoIndex:0,effect:{show:!1,period:4,constantSpeed:0,symbol:"circle",symbolSize:3,loop:!0,trailLength:.2},large:!1,largeThreshold:2e3,polyline:!1,clip:!0,label:{show:!1,position:"end"},lineStyle:{opacity:.5}},n}(Sd);function BD(t){return t instanceof Array||(t=[t,t]),t}var VD={seriesType:"lines",reset:function(t){var e=BD(t.get("symbol")),n=BD(t.get("symbolSize")),i=t.getData();return i.setVisual("fromSymbol",e&&e[0]),i.setVisual("toSymbol",e&&e[1]),i.setVisual("fromSymbolSize",n&&n[0]),i.setVisual("toSymbolSize",n&&n[1]),{dataEach:i.hasItemOption?function(t,e){var n=t.getItemModel(e),i=BD(n.getShallow("symbol",!0)),r=BD(n.getShallow("symbolSize",!0));i[0]&&t.setItemVisual(e,"fromSymbol",i[0]),i[1]&&t.setItemVisual(e,"toSymbol",i[1]),r[0]&&t.setItemVisual(e,"fromSymbolSize",r[0]),r[1]&&t.setItemVisual(e,"toSymbolSize",r[1])}:null}}};var FD=function(){function t(){this.blurSize=30,this.pointSize=20,this.maxOpacity=1,this.minOpacity=0,this._gradientPixels={inRange:null,outOfRange:null};var t=T();this.canvas=t}return t.prototype.update=function(t,e,n,i,r,o){var a=this._getBrush(),s=this._getGradient(r,"inRange"),l=this._getGradient(r,"outOfRange"),u=this.pointSize+this.blurSize,h=this.canvas,c=h.getContext("2d"),p=t.length;h.width=e,h.height=n;for(var d=0;d<p;++d){var f=t[d],g=f[0],y=f[1],v=i(f[2]);c.globalAlpha=v,c.drawImage(a,g-u,y-u)}if(!h.width||!h.height)return h;for(var m=c.getImageData(0,0,h.width,h.height),_=m.data,x=0,b=_.length,w=this.minOpacity,S=this.maxOpacity-w;x<b;){v=_[x+3]/256;var M=4*Math.floor(255*v);if(v>0){var I=o(v)?s:l;v>0&&(v=v*S+w),_[x++]=I[M],_[x++]=I[M+1],_[x++]=I[M+2],_[x++]=I[M+3]*v*256}else x+=4}return c.putImageData(m,0,0),h},t.prototype._getBrush=function(){var t=this._brushCanvas||(this._brushCanvas=T()),e=this.pointSize+this.blurSize,n=2*e;t.width=n,t.height=n;var i=t.getContext("2d");return i.clearRect(0,0,n,n),i.shadowOffsetX=n,i.shadowBlur=this.blurSize,i.shadowColor="#000",i.beginPath(),i.arc(-e,e,this.pointSize,0,2*Math.PI,!0),i.closePath(),i.fill(),t},t.prototype._getGradient=function(t,e){for(var n=this._gradientPixels,i=n[e]||(n[e]=new Uint8ClampedArray(1024)),r=[0,0,0,0],o=0,a=0;a<256;a++)t[e](a/255,!0,r),i[o++]=r[0],i[o++]=r[1],i[o++]=r[2],i[o++]=r[3];return i},t}();function GD(t){var e=t.dimensions;return"lng"===e[0]&&"lat"===e[1]}var HD=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n){var i;e.eachComponent("visualMap",(function(e){e.eachTargetSeries((function(n){n===t&&(i=e)}))})),this.group.removeAll(),this._incrementalDisplayable=null;var r=t.coordinateSystem;"cartesian2d"===r.type||"calendar"===r.type?this._renderOnCartesianAndCalendar(t,n,0,t.getData().count()):GD(r)&&this._renderOnGeo(r,t,i,n)},n.prototype.incrementalPrepareRender=function(t,e,n){this.group.removeAll()},n.prototype.incrementalRender=function(t,e,n,i){var r=e.coordinateSystem;r&&(GD(r)?this.render(e,n,i):this._renderOnCartesianAndCalendar(e,i,t.start,t.end,!0))},n.prototype._renderOnCartesianAndCalendar=function(t,e,n,i,r){var o,a,s,l,u=t.coordinateSystem;if(ub(u,"cartesian2d")){var h=u.getAxis("x"),c=u.getAxis("y");0,o=h.getBandWidth(),a=c.getBandWidth(),s=h.scale.getExtent(),l=c.scale.getExtent()}for(var p=this.group,d=t.getData(),f=t.getModel(["emphasis","itemStyle"]).getItemStyle(),g=t.getModel(["blur","itemStyle"]).getItemStyle(),y=t.getModel(["select","itemStyle"]).getItemStyle(),v=Bu(t),m=t.get(["emphasis","focus"]),_=t.get(["emphasis","blurScope"]),x=ub(u,"cartesian2d")?[d.mapDimension("x"),d.mapDimension("y"),d.mapDimension("value")]:[d.mapDimension("time"),d.mapDimension("value")],b=n;b<i;b++){var w=void 0,S=d.getItemVisual(b,"style");if(ub(u,"cartesian2d")){var M=d.get(x[0],b),I=d.get(x[1],b);if(isNaN(d.get(x[2],b))||M<s[0]||M>s[1]||I<l[0]||I>l[1])continue;var T=u.dataToPoint([M,I]);w=new Za({shape:{x:Math.floor(Math.round(T[0])-o/2),y:Math.floor(Math.round(T[1])-a/2),width:Math.ceil(o),height:Math.ceil(a)},style:S})}else{if(isNaN(d.get(x[1],b)))continue;w=new Za({z2:1,shape:u.dataToRect([d.get(x[0],b)]).contentShape,style:S})}var C=d.getItemModel(b);if(d.hasItemOption){var A=C.getModel("emphasis");f=A.getModel("itemStyle").getItemStyle(),g=C.getModel(["blur","itemStyle"]).getItemStyle(),y=C.getModel(["select","itemStyle"]).getItemStyle(),m=A.get("focus"),_=A.get("blurScope"),v=Bu(C)}var D=t.getRawValue(b),L="-";D&&null!=D[2]&&(L=D[2]+""),zu(w,v,{labelFetcher:t,labelDataIndex:b,defaultOpacity:S.opacity,defaultText:L}),w.ensureState("emphasis").style=f,w.ensureState("blur").style=g,w.ensureState("select").style=y,Ns(w,m,_),w.incremental=r,r&&(w.states.emphasis.hoverLayer=!0),p.add(w),d.setItemGraphicEl(b,w)}},n.prototype._renderOnGeo=function(t,e,n,i){var r=n.targetVisuals.inRange,o=n.targetVisuals.outOfRange,a=e.getData(),s=this._hmLayer||this._hmLayer||new FD;s.blurSize=e.get("blurSize"),s.pointSize=e.get("pointSize"),s.minOpacity=e.get("minOpacity"),s.maxOpacity=e.get("maxOpacity");var l=t.getViewRect().clone(),u=t.getRoamTransform();l.applyTransform(u);var h=Math.max(l.x,0),c=Math.max(l.y,0),p=Math.min(l.width+l.x,i.getWidth()),d=Math.min(l.height+l.y,i.getHeight()),f=p-h,g=d-c,y=[a.mapDimension("lng"),a.mapDimension("lat"),a.mapDimension("value")],v=a.mapArray(y,(function(e,n,i){var r=t.dataToPoint([e,n]);return r[0]-=h,r[1]-=c,r.push(i),r})),m=n.getExtent(),_="visualMap.continuous"===n.type?function(t,e){var n=t[1]-t[0];return e=[(e[0]-t[0])/n,(e[1]-t[0])/n],function(t){return t>=e[0]&&t<=e[1]}}(m,n.option.range):function(t,e,n){var i=t[1]-t[0],r=(e=P(e,(function(e){return{interval:[(e.interval[0]-t[0])/i,(e.interval[1]-t[0])/i]}}))).length,o=0;return function(t){var i;for(i=o;i<r;i++)if((a=e[i].interval)[0]<=t&&t<=a[1]){o=i;break}if(i===r)for(i=o-1;i>=0;i--){var a;if((a=e[i].interval)[0]<=t&&t<=a[1]){o=i;break}}return i>=0&&i<r&&n[i]}}(m,n.getPieceList(),n.option.selected);s.update(v,f,g,r.color.getNormalizer(),{inRange:r.color.getColorMapper(),outOfRange:o.color.getColorMapper()},_);var x=new Fa({style:{width:f,height:g,x:h,y:c,image:s.canvas},silent:!0});this.group.add(x)},n.type="heatmap",n}(Nd),WD=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.getInitialData=function(t,e){return hm(this.getSource(),this,{generateCoord:"value"})},n.prototype.preventIncremental=function(){var t=Vc.get(this.get("coordinateSystem"));if(t&&t.dimensions)return"lng"===t.dimensions[0]&&"lat"===t.dimensions[1]},n.type="series.heatmap",n.dependencies=["grid","geo","calendar"],n.defaultOption={coordinateSystem:"cartesian2d",zlevel:0,z:2,geoIndex:0,blurSize:30,pointSize:20,maxOpacity:1,minOpacity:0,select:{itemStyle:{borderColor:"#212121"}}},n}(Sd);var YD=["itemStyle","borderWidth"],XD=[{xy:"x",wh:"width",index:0,posDesc:["left","right"]},{xy:"y",wh:"height",index:1,posDesc:["top","bottom"]}],UD=new ul,ZD=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n){var i=this.group,r=t.getData(),o=this._data,a=t.coordinateSystem,s=a.getBaseAxis().isHorizontal(),l=a.master.getRect(),u={ecSize:{width:n.getWidth(),height:n.getHeight()},seriesModel:t,coordSys:a,coordSysExtent:[[l.x,l.x+l.width],[l.y,l.y+l.height]],isHorizontal:s,valueDim:XD[+s],categoryDim:XD[1-+s]};return r.diff(o).add((function(t){if(r.hasValue(t)){var e=eL(r,t),n=jD(r,t,e,u),o=rL(r,u,n);r.setItemGraphicEl(t,o),i.add(o),uL(o,u,n)}})).update((function(t,e){var n=o.getItemGraphicEl(e);if(r.hasValue(t)){var a=eL(r,t),s=jD(r,t,a,u),l=aL(r,s);n&&l!==n.__pictorialShapeStr&&(i.remove(n),r.setItemGraphicEl(t,null),n=null),n?function(t,e,n){var i=n.animationModel,r=n.dataIndex;yu(t.__pictorialBundle,{x:n.bundlePosition[0],y:n.bundlePosition[1]},i,r),n.symbolRepeat?$D(t,e,n,!0):JD(t,e,n,!0);QD(t,n,!0),tL(t,e,n,!0)}(n,u,s):n=rL(r,u,s,!0),r.setItemGraphicEl(t,n),n.__pictorialSymbolMeta=s,i.add(n),uL(n,u,s)}else i.remove(n)})).remove((function(t){var e=o.getItemGraphicEl(t);e&&oL(o,t,e.__pictorialSymbolMeta.animationModel,e)})).execute(),this._data=r,this.group},n.prototype.remove=function(t,e){var n=this.group,i=this._data;t.get("animation")?i&&i.eachItemGraphicEl((function(e){oL(i,rs(e).dataIndex,t,e)})):n.removeAll()},n.type="pictorialBar",n}(Nd);function jD(t,e,n,i){var r=t.getItemLayout(e),o=n.get("symbolRepeat"),a=n.get("symbolClip"),s=n.get("symbolPosition")||"start",l=(n.get("symbolRotate")||0)*Math.PI/180||0,u=n.get("symbolPatternSize")||2,h=n.isAnimationEnabled(),c={dataIndex:e,layout:r,itemModel:n,symbolType:t.getItemVisual(e,"symbol")||"circle",style:t.getItemVisual(e,"style"),symbolClip:a,symbolRepeat:o,symbolRepeatDirection:n.get("symbolRepeatDirection"),symbolPatternSize:u,rotation:l,animationModel:h?n:null,hoverScale:h&&n.get(["emphasis","scale"]),z2:n.getShallow("z",!0)||0};!function(t,e,n,i,r){var o,a=i.valueDim,s=t.get("symbolBoundingData"),l=i.coordSys.getOtherAxis(i.coordSys.getBaseAxis()),u=l.toGlobalCoord(l.dataToCoord(0)),h=1-+(n[a.wh]<=0);if(V(s)){var c=[qD(l,s[0])-u,qD(l,s[1])-u];c[1]<c[0]&&c.reverse(),o=c[h]}else o=null!=s?qD(l,s)-u:e?i.coordSysExtent[a.index][h]-u:n[a.wh];r.boundingLength=o,e&&(r.repeatCutLength=n[a.wh]);r.pxSign=o>0?1:o<0?-1:0}(n,o,r,i,c),function(t,e,n,i,r,o,a,s,l,u){var h,c=l.valueDim,p=l.categoryDim,d=Math.abs(n[p.wh]),f=t.getItemVisual(e,"symbolSize");h=V(f)?f.slice():null==f?["100%","100%"]:[f,f];h[p.index]=Gi(h[p.index],d),h[c.index]=Gi(h[c.index],i?d:Math.abs(o)),u.symbolSize=h,(u.symbolScale=[h[0]/s,h[1]/s])[c.index]*=(l.isHorizontal?-1:1)*a}(t,e,r,o,0,c.boundingLength,c.pxSign,u,i,c),function(t,e,n,i,r){var o=t.get(YD)||0;o&&(UD.attr({scaleX:e[0],scaleY:e[1],rotation:n}),UD.updateTransform(),o/=UD.getLineScale(),o*=e[i.valueDim.index]);r.valueLineWidth=o}(n,c.symbolScale,l,i,c);var p=c.symbolSize,d=n.get("symbolOffset");return V(d)&&(d=[Gi(d[0],p[0]),Gi(d[1],p[1])]),function(t,e,n,i,r,o,a,s,l,u,h,c){var p=h.categoryDim,d=h.valueDim,f=c.pxSign,g=Math.max(e[d.index]+s,0),y=g;if(i){var v=Math.abs(l),m=J(t.get("symbolMargin"),"15%")+"",_=!1;m.lastIndexOf("!")===m.length-1&&(_=!0,m=m.slice(0,m.length-1));var x=Gi(m,e[d.index]),b=Math.max(g+2*x,0),w=_?0:2*x,S=rr(i),I=S?i:hL((v+w)/b);b=g+2*(x=(v-I*g)/2/(_?I:I-1)),w=_?0:2*x,S||"fixed"===i||(I=u?hL((Math.abs(u)+w)/b):0),y=I*b-w,c.repeatTimes=I,c.symbolMargin=x}var T=f*(y/2),C=c.pathPosition=[];C[p.index]=n[p.wh]/2,C[d.index]="start"===a?T:"end"===a?l-T:l/2,o&&(C[0]+=o[0],C[1]+=o[1]);var A=c.bundlePosition=[];A[p.index]=n[p.xy],A[d.index]=n[d.xy];var D=c.barRectShape=M({},n);D[d.wh]=f*Math.max(Math.abs(n[d.wh]),Math.abs(C[d.index]+T)),D[p.wh]=n[p.wh];var L=c.clipShape={};L[p.xy]=-n[p.xy],L[p.wh]=h.ecSize[p.wh],L[d.xy]=0,L[d.wh]=n[d.wh]}(n,p,r,o,0,d,s,c.valueLineWidth,c.boundingLength,c.repeatCutLength,i,c),c}function qD(t,e){return t.toGlobalCoord(t.dataToCoord(t.scale.parse(e)))}function KD(t){var e=t.symbolPatternSize,n=Ig(t.symbolType,-e/2,-e/2,e,e);return n.attr({culling:!0}),"image"!==n.type&&n.setStyle({strokeNoScale:!0}),n}function $D(t,e,n,i){var r=t.__pictorialBundle,o=n.symbolSize,a=n.valueLineWidth,s=n.pathPosition,l=e.valueDim,u=n.repeatTimes||0,h=0,c=o[e.valueDim.index]+a+2*n.symbolMargin;for(sL(t,(function(t){t.__pictorialAnimationIndex=h,t.__pictorialRepeatTimes=u,h<u?lL(t,null,f(h),n,i):lL(t,null,{scaleX:0,scaleY:0},n,i,(function(){r.remove(t)})),h++}));h<u;h++){var p=KD(n);p.__pictorialAnimationIndex=h,p.__pictorialRepeatTimes=u,r.add(p);var d=f(h);lL(p,{x:d.x,y:d.y,scaleX:0,scaleY:0},{scaleX:d.scaleX,scaleY:d.scaleY,rotation:d.rotation},n,i)}function f(t){var e=s.slice(),i=n.pxSign,r=t;return("start"===n.symbolRepeatDirection?i>0:i<0)&&(r=u-1-t),e[l.index]=c*(r-u/2+.5)+s[l.index],{x:e[0],y:e[1],scaleX:n.symbolScale[0],scaleY:n.symbolScale[1],rotation:n.rotation}}}function JD(t,e,n,i){var r=t.__pictorialBundle,o=t.__pictorialMainPath;o?lL(o,null,{x:n.pathPosition[0],y:n.pathPosition[1],scaleX:n.symbolScale[0],scaleY:n.symbolScale[1],rotation:n.rotation},n,i):(o=t.__pictorialMainPath=KD(n),r.add(o),lL(o,{x:n.pathPosition[0],y:n.pathPosition[1],scaleX:0,scaleY:0,rotation:n.rotation},{scaleX:n.symbolScale[0],scaleY:n.symbolScale[1]},n,i))}function QD(t,e,n){var i=M({},e.barRectShape),r=t.__pictorialBarRect;r?lL(r,null,{shape:i},e,n):(r=t.__pictorialBarRect=new Za({z2:2,shape:i,silent:!0,style:{stroke:"transparent",fill:"transparent",lineWidth:0}}),t.add(r))}function tL(t,e,n,i){if(n.symbolClip){var r=t.__pictorialClipPath,o=M({},n.clipShape),a=e.valueDim,s=n.animationModel,l=n.dataIndex;if(r)yu(r,{shape:o},s,l);else{o[a.wh]=0,r=new Za({shape:o}),t.__pictorialBundle.setClipPath(r),t.__pictorialClipPath=r;var u={};u[a.wh]=n.clipShape[a.wh],Ou[i?"updateProps":"initProps"](r,{shape:u},s,l)}}}function eL(t,e){var n=t.getItemModel(e);return n.getAnimationDelayParams=nL,n.isAnimationEnabled=iL,n}function nL(t){return{index:t.__pictorialAnimationIndex,count:t.__pictorialRepeatTimes}}function iL(){return this.parentModel.isAnimationEnabled()&&!!this.getShallow("animation")}function rL(t,e,n,i){var r=new Pi,o=new Pi;return r.add(o),r.__pictorialBundle=o,o.x=n.bundlePosition[0],o.y=n.bundlePosition[1],n.symbolRepeat?$D(r,e,n):JD(r,0,n),QD(r,n,i),tL(r,e,n,i),r.__pictorialShapeStr=aL(t,n),r.__pictorialSymbolMeta=n,r}function oL(t,e,n,i){var r=i.__pictorialBarRect;r&&r.removeTextContent();var o=[];sL(i,(function(t){o.push(t)})),i.__pictorialMainPath&&o.push(i.__pictorialMainPath),i.__pictorialClipPath&&(n=null),k(o,(function(t){mu(t,{scaleX:0,scaleY:0},n,e,(function(){i.parent&&i.parent.remove(i)}))})),t.setItemGraphicEl(e,null)}function aL(t,e){return[t.getItemVisual(e.dataIndex,"symbol")||"none",!!e.symbolRepeat,!!e.symbolClip].join(":")}function sL(t,e,n){k(t.__pictorialBundle.children(),(function(i){i!==t.__pictorialBarRect&&e.call(n,i)}))}function lL(t,e,n,i,r,o){e&&t.attr(e),i.symbolClip&&!r?n&&t.attr(n):n&&Ou[r?"updateProps":"initProps"](t,n,i.animationModel,i.dataIndex,o)}function uL(t,e,n){var i=n.dataIndex,r=n.itemModel,o=r.getModel("emphasis"),a=o.getModel("itemStyle").getItemStyle(),s=r.getModel(["blur","itemStyle"]).getItemStyle(),l=r.getModel(["select","itemStyle"]).getItemStyle(),u=r.getShallow("cursor"),h=o.get("focus"),c=o.get("blurScope"),p=o.get("scale");sL(t,(function(t){if(t instanceof Fa){var e=t.style;t.useStyle(M({image:e.image,x:e.x,y:e.y,width:e.width,height:e.height},n.style))}else t.useStyle(n.style);var i=t.ensureState("emphasis");i.style=a,p&&(i.scaleX=1.1*t.scaleX,i.scaleY=1.1*t.scaleY),t.ensureState("blur").style=s,t.ensureState("select").style=l,u&&(t.cursor=u),t.z2=n.z2}));var d=e.valueDim.posDesc[+(n.boundingLength>0)];zu(t.__pictorialBarRect,Bu(r),{labelFetcher:e.seriesModel,labelDataIndex:i,defaultText:Vx(e.seriesModel.getData(),i),inheritColor:n.style.fill,defaultOpacity:n.style.opacity,defaultOutsidePosition:d}),Ns(t,h,c)}function hL(t){var e=Math.round(t);return Math.abs(t-e)<1e-4?e:Math.ceil(t)}var cL=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.hasSymbolVisual=!0,e.defaultSymbol="roundRect",e}return e(n,t),n.prototype.getInitialData=function(e){return e.stack=null,t.prototype.getInitialData.apply(this,arguments)},n.type="series.pictorialBar",n.dependencies=["grid"],n.defaultOption=uh(Sb.defaultOption,{symbol:"circle",symbolSize:null,symbolRotate:null,symbolPosition:null,symbolOffset:null,symbolMargin:null,symbolRepeat:!1,symbolRepeatDirection:"end",symbolClip:!1,symbolBoundingData:null,symbolPatternSize:400,barGap:"-100%",progressive:0,emphasis:{scale:!1},select:{itemStyle:{borderColor:"#212121"}}}),n}(Sb);var pL=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e._layers=[],e}return e(n,t),n.prototype.render=function(t,e,n){var i=t.getData(),r=this,o=this.group,a=t.getLayerSeries(),s=i.getLayout("layoutInfo"),l=s.rect,u=s.boundaryGap;function h(t){return t.name}o.x=0,o.y=l.y+u[0];var c=new Cv(this._layersSeries||[],a,h,h),p=[];function d(e,n,s){var l=r._layers;if("remove"!==e){for(var u,h,c=[],d=[],f=a[n].indices,g=0;g<f.length;g++){var y=i.getItemLayout(f[g]),v=y.x,m=y.y0,_=y.y;c.push(v,m),d.push(v,m+_),u=i.getItemVisual(f[g],"style")}var x=i.getItemLayout(f[0]),b=t.getModel("label").get("margin"),w=t.getModel("emphasis");if("add"===e){var S=p[n]=new Pi;h=new ob({shape:{points:c,stackedOnPoints:d,smooth:.4,stackedOnSmooth:.4,smoothConstraint:!1},z2:0}),S.add(h),o.add(S),t.isAnimationEnabled()&&h.setClipPath(function(t,e,n){var i=new Za({shape:{x:t.x-10,y:t.y-10,width:0,height:t.height+20}});return vu(i,{shape:{x:t.x-50,width:t.width+100,height:t.height+20}},e,n),i}(h.getBoundingRect(),t,(function(){h.removeClipPath()})))}else{S=l[s];h=S.childAt(0),o.add(S),p[n]=S,yu(h,{shape:{points:c,stackedOnPoints:d}},t)}zu(h,Bu(t),{labelDataIndex:f[g-1],defaultText:i.getName(f[g-1]),inheritColor:u.fill},{normal:{verticalAlign:"middle"}}),h.setTextConfig({position:null,local:!0});var M=h.getTextContent();M&&(M.x=x.x-b,M.y=x.y0+x.y/2),h.useStyle(u),i.setItemGraphicEl(n,h),Vs(h,t),Ns(h,w.get("focus"),w.get("blurScope"))}else o.remove(l[n])}c.add(z(d,this,"add")).update(z(d,this,"update")).remove(z(d,this,"remove")).execute(),this._layersSeries=a,this._layers=p},n.type="themeRiver",n}(Nd);var dL=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.useColorPaletteOnData=!0,e}return e(n,t),n.prototype.init=function(e){t.prototype.init.apply(this,arguments),this.legendVisualProvider=new ew(z(this.getData,this),z(this.getRawData,this))},n.prototype.fixData=function(t){var e=t.length,n={},i=Ar(t,(function(t){return n.hasOwnProperty(t[0]+"")||(n[t[0]+""]=-1),t[2]})),r=[];i.buckets.each((function(t,e){r.push({name:e,dataList:t})}));for(var o=r.length,a=0;a<o;++a){for(var s=r[a].name,l=0;l<r[a].dataList.length;++l){var u=r[a].dataList[l][0]+"";n[u]=a}for(var u in n)n.hasOwnProperty(u)&&n[u]!==a&&(n[u]=a,t[e]=[u,0,s],e++)}return t},n.prototype.getInitialData=function(t,e){for(var n=this.getReferringComponents("singleAxis",Mr).models[0].get("type"),i=R(t.data,(function(t){return void 0!==t[2]})),r=this.fixData(i||[]),o=[],a=this.nameMap=lt(),s=0,l=0;l<r.length;++l)o.push(r[l][2]),a.get(r[l][2])||(a.set(r[l][2],s),s++);var u=im(r,{coordDimensions:["single"],dimensionsDefine:[{name:"time",type:Dv(n)},{name:"value",type:"float"},{name:"name",type:"ordinal"}],encodeDefine:{single:0,value:1,itemName:2}}),h=new tm(u,this);return h.initData(r),h},n.prototype.getLayerSeries=function(){for(var t=this.getData(),e=t.count(),n=[],i=0;i<e;++i)n[i]=i;var r=t.mapDimension("single"),o=Ar(n,(function(e){return t.get("name",e)})),a=[];return o.buckets.each((function(e,n){e.sort((function(e,n){return t.get(r,e)-t.get(r,n)})),a.push({name:n,indices:e})})),a},n.prototype.getAxisTooltipData=function(t,e,n){V(t)||(t=t?[t]:[]);for(var i,r=this.getData(),o=this.getLayerSeries(),a=[],s=o.length,l=0;l<s;++l){for(var u=Number.MAX_VALUE,h=-1,c=o[l].indices.length,p=0;p<c;++p){var d=r.get(t[0],o[l].indices[p]),f=Math.abs(d-e);f<=u&&(i=d,u=f,h=o[l].indices[p])}a.push(h)}return{dataIndices:a,nestestValue:i}},n.prototype.formatTooltip=function(t,e,n){var i=this.getData();return hd("nameValue",{name:i.getName(t),value:i.get(i.mapDimension("value"),t)})},n.type="series.themeRiver",n.dependencies=["singleAxis"],n.defaultOption={zlevel:0,z:2,coordinateSystem:"singleAxis",boundaryGap:["10%","10%"],singleAxisIndex:0,animationEasing:"linear",label:{margin:4,show:!0,position:"left",fontSize:11},emphasis:{label:{show:!0}}},n}(Sd);function fL(t,e){t.eachSeriesByType("themeRiver",(function(t){var e=t.getData(),n=t.coordinateSystem,i={},r=n.getRect();i.rect=r;var o=t.get("boundaryGap"),a=n.getAxis();(i.boundaryGap=o,"horizontal"===a.orient)?(o[0]=Gi(o[0],r.height),o[1]=Gi(o[1],r.height),gL(e,t,r.height-o[0]-o[1])):(o[0]=Gi(o[0],r.width),o[1]=Gi(o[1],r.width),gL(e,t,r.width-o[0]-o[1]));e.setLayout("layoutInfo",i)}))}function gL(t,e,n){if(t.count())for(var i,r=e.coordinateSystem,o=e.getLayerSeries(),a=t.mapDimension("single"),s=t.mapDimension("value"),l=P(o,(function(e){return P(e.indices,(function(e){var n=r.dataToPoint(t.get(a,e));return n[1]=t.get(s,e),n}))})),u=function(t){for(var e=t.length,n=t[0].length,i=[],r=[],o=0,a=0;a<n;++a){for(var s=0,l=0;l<e;++l)s+=t[l][a][1];s>o&&(o=s),i.push(s)}for(var u=0;u<n;++u)r[u]=(o-i[u])/2;o=0;for(var h=0;h<n;++h){var c=i[h]+r[h];c>o&&(o=c)}return{y0:r,max:o}}(l),h=u.y0,c=n/u.max,p=o.length,d=o[0].indices.length,f=0;f<d;++f){i=h[f]*c,t.setItemLayout(o[0].indices[f],{layerIndex:0,x:l[0][f][0],y0:i,y:l[0][f][1]*c});for(var g=1;g<p;++g)i+=l[g-1][f][1]*c,t.setItemLayout(o[g].indices[f],{layerIndex:g,x:l[g][f][0],y0:i,y:l[g][f][1]*c})}}var yL=function(t){function n(e,n,i,r){var o=t.call(this)||this;o.z2=2,o.textConfig={inside:!0},rs(o).seriesIndex=n.seriesIndex;var a=new Ka({z2:4,silent:e.getModel().get(["label","silent"])});return o.setTextContent(a),o.updateData(!0,e,n,i,r),o}return e(n,t),n.prototype.updateData=function(t,e,n,i,r){this.node=e,e.piece=this,n=n||this._seriesModel,i=i||this._ecModel;var o=this;rs(o).dataIndex=e.dataIndex;var a=e.getModel(),s=a.getModel("emphasis"),l=e.getLayout(),u=M({},l);u.label=null;var h=e.getVisual("style");h.lineJoin="bevel";var c=e.getVisual("decal");c&&(h.decal=Zg(c,r));var p=$b(a.getModel("itemStyle"),u);M(u,p),k(ls,(function(t){var e=o.ensureState(t),n=a.getModel([t,"itemStyle"]);e.style=n.getItemStyle();var i=$b(n,u);i&&(e.shape=i)})),t?(o.setShape(u),o.shape.r=l.r0,yu(o,{shape:{r:l.r}},n,e.dataIndex)):yu(o,{shape:u},n),o.useStyle(h),this._updateLabel(n);var d=a.getShallow("cursor");d&&o.attr("cursor",d),this._seriesModel=n||this._seriesModel,this._ecModel=i||this._ecModel;var f=s.get("focus");Ns(this,("ancestor"===f?e.getAncestorsIndices():"descendant"===f?e.getDescendantIndices():null)||f,s.get("blurScope"))},n.prototype._updateLabel=function(t){var e=this,n=this.node.getModel(),i=n.getModel("label"),r=this.node.getLayout(),o=r.endAngle-r.startAngle,a=(r.startAngle+r.endAngle)/2,s=Math.cos(a),l=Math.sin(a),u=this,h=u.getTextContent(),c=this.node.dataIndex,p=i.get("minAngle")/180*Math.PI,d=i.get("show")&&!(null!=p&&Math.abs(o)<p);function f(t,e){var n=t.get(e);return null==n?i.get(e):n}h.ignore=!d,k(us,(function(i){var o="normal"===i?n.getModel("label"):n.getModel([i,"label"]),p="normal"===i,d=p?h:h.ensureState(i),g=t.getFormattedLabel(c,i);p&&(g=g||e.node.name),d.style=Vu(o,{},null,"normal"!==i,!0),g&&(d.style.text=g);var y=o.get("show");null==y||p||(d.ignore=!y);var v,m=f(o,"position"),_=p?u:u.states[i],x=_.style.fill;_.textConfig={outsideFill:"inherit"===o.get("color")?x:null,inside:"outside"!==m};var b=f(o,"distance")||0,w=f(o,"align");"outside"===m?(v=r.r+b,w=a>Math.PI/2?"right":"left"):w&&"center"!==w?"left"===w?(v=r.r0+b,a>Math.PI/2&&(w="right")):"right"===w&&(v=r.r-b,a>Math.PI/2&&(w="left")):(v=(r.r+r.r0)/2,w="center"),d.style.align=w,d.style.verticalAlign=f(o,"verticalAlign")||"middle",d.x=v*s+r.cx,d.y=v*l+r.cy;var S=f(o,"rotate"),M=0;"radial"===S?(M=-a)<-Math.PI/2&&(M+=Math.PI):"tangential"===S?(M=Math.PI/2-a)>Math.PI/2?M-=Math.PI:M<-Math.PI/2&&(M+=Math.PI):"number"==typeof S&&(M=S*Math.PI/180),d.rotation=M})),h.dirtyStyle()},n}(Tl);var vL=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n,i){var r=this;this.seriesModel=t,this.api=n,this.ecModel=e;var o=t.getData(),a=o.tree.root,s=t.getViewRoot(),l=this.group,u=t.get("renderLabelForZeroData"),h=[];s.eachNode((function(t){h.push(t)}));var c=this._oldChildren||[];!function(i,r){if(0===i.length&&0===r.length)return;function s(t){return t.getId()}function h(s,h){!function(i,r){u||!i||i.getValue()||(i=null);if(i!==a&&r!==a)if(r&&r.piece)i?(r.piece.updateData(!1,i,t,e,n),o.setItemGraphicEl(i.dataIndex,r.piece)):function(t){if(!t)return;t.piece&&(l.remove(t.piece),t.piece=null)}(r);else if(i){var s=new yL(i,t,e,n);l.add(s),o.setItemGraphicEl(i.dataIndex,s)}}(null==s?null:i[s],null==h?null:r[h])}new Cv(r,i,s,s).add(h).update(h).remove(B(h,null)).execute()}(h,c),function(i,o){o.depth>0?(r.virtualPiece?r.virtualPiece.updateData(!1,i,t,e,n):(r.virtualPiece=new yL(i,t,e,n),l.add(r.virtualPiece)),o.piece.off("click"),r.virtualPiece.on("click",(function(t){r._rootToNode(o.parentNode)}))):r.virtualPiece&&(l.remove(r.virtualPiece),r.virtualPiece=null)}(a,s),this._initEvents(),this._oldChildren=h},n.prototype._initEvents=function(){var t=this;this.group.off("click"),this.group.on("click",(function(e){var n=!1;t.seriesModel.getViewRoot().eachNode((function(i){if(!n&&i.piece&&i.piece===e.target){var r=i.getModel().get("nodeClick");if("rootToNode"===r)t._rootToNode(i);else if("link"===r){var o=i.getModel(),a=o.get("link");if(a)Kh(a,o.get("target",!0)||"_blank")}n=!0}}))}))},n.prototype._rootToNode=function(t){t!==this.seriesModel.getViewRoot()&&this.api.dispatchAction({type:"sunburstRootToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:t})},n.prototype.containPoint=function(t,e){var n=e.getData().getItemLayout(0);if(n){var i=t[0]-n.cx,r=t[1]-n.cy,o=Math.sqrt(i*i+r*r);return o<=n.r&&o>=n.r0}},n.type="sunburst",n}(Nd),mL=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.ignoreStyleOnData=!0,e}return e(n,t),n.prototype.getInitialData=function(t,e){var n={name:t.name,children:t.data};_L(n);var i=P(t.levels||[],(function(t){return new ah(t,this,e)}),this),r=BM.createTree(n,this,(function(t){t.wrapMethod("getItemModel",(function(t,e){var n=r.getNodeByDataIndex(e),o=i[n.depth];return o&&(t.parentModel=o),t}))}));return r.data},n.prototype.optionUpdated=function(){this.resetViewRoot()},n.prototype.getDataParams=function(e){var n=t.prototype.getDataParams.apply(this,arguments),i=this.getData().tree.getNodeByDataIndex(e);return n.treePathInfo=ZM(i,this),n},n.prototype.getViewRoot=function(){return this._viewRoot},n.prototype.resetViewRoot=function(t){t?this._viewRoot=t:t=this._viewRoot;var e=this.getRawData().tree.root;t&&(t===e||e.contains(t))||(this._viewRoot=e)},n.prototype.enableAriaDecal=function(){KM(this)},n.type="series.sunburst",n.defaultOption={zlevel:0,z:2,center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,stillShowZeroSum:!0,nodeClick:"rootToNode",renderLabelForZeroData:!1,label:{rotate:"radial",show:!0,opacity:1,align:"center",position:"inside",distance:5,silent:!0},itemStyle:{borderWidth:1,borderColor:"white",borderType:"solid",shadowBlur:0,shadowColor:"rgba(0, 0, 0, 0.2)",shadowOffsetX:0,shadowOffsetY:0,opacity:1},emphasis:{focus:"descendant"},blur:{itemStyle:{opacity:.2},label:{opacity:.1}},animationType:"expansion",animationDuration:1e3,animationDurationUpdate:500,data:[],levels:[],sort:"desc"},n}(Sd);function _L(t){var e=0;k(t.children,(function(t){_L(t);var n=t.value;V(n)&&(n=n[0]),e+=n}));var n=t.value;V(n)&&(n=n[0]),(null==n||isNaN(n))&&(n=e),n<0&&(n=0),V(t.value)?t.value[0]=n:t.value=n}var xL=Math.PI/180;function bL(t,e,n){e.eachSeriesByType(t,(function(t){var e=t.get("center"),i=t.get("radius");V(i)||(i=[0,i]),V(e)||(e=[e,e]);var r=n.getWidth(),o=n.getHeight(),a=Math.min(r,o),s=Gi(e[0],r),l=Gi(e[1],o),u=Gi(i[0],a/2),h=Gi(i[1],a/2),c=-t.get("startAngle")*xL,p=t.get("minAngle")*xL,d=t.getData().tree.root,f=t.getViewRoot(),g=f.depth,y=t.get("sort");null!=y&&wL(f,y);var v=0;k(f.children,(function(t){!isNaN(t.getValue())&&v++}));var m=f.getValue(),_=Math.PI/(m||v)*2,x=f.depth>0,b=f.height-(x?-1:1),w=(h-u)/(b||1),S=t.get("clockwise"),M=t.get("stillShowZeroSum"),I=S?1:-1,T=function(t,e){if(t){var n=e;if(t!==d){var i=t.getValue(),r=0===m&&M?_:i*_;r<p&&(r=p),n=e+I*r;var o=t.depth-g-(x?-1:1),h=u+w*o,c=u+w*(o+1),f=t.getModel();null!=f.get("r0")&&(h=Gi(f.get("r0"),a/2)),null!=f.get("r")&&(c=Gi(f.get("r"),a/2)),t.setLayout({angle:r,startAngle:e,endAngle:n,clockwise:S,cx:s,cy:l,r0:h,r:c})}if(t.children&&t.children.length){var y=0;k(t.children,(function(t){y+=T(t,e+y)}))}return n-e}};if(x){var C=u,A=u+w,D=2*Math.PI;d.setLayout({angle:D,startAngle:c,endAngle:c+D,clockwise:S,cx:s,cy:l,r0:C,r:A})}T(f,c)}))}function wL(t,e){var n=t.children||[];t.children=function(t,e){if("function"==typeof e){var n=P(t,(function(t,e){var n=t.getValue();return{params:{depth:t.depth,height:t.height,dataIndex:t.dataIndex,getValue:function(){return n}},index:e}}));return n.sort((function(t,n){return e(t.params,n.params)})),P(n,(function(e){return t[e.index]}))}var i="asc"===e;return t.sort((function(t,e){var n=(t.getValue()-e.getValue())*(i?1:-1);return 0===n?(t.dataIndex-e.dataIndex)*(i?-1:1):n}))}(n,e),n.length&&k(t.children,(function(t){wL(t,e)}))}function SL(t){var e={};t.eachSeriesByType("sunburst",(function(t){var n=t.getData(),i=n.tree;i.eachNode((function(r){var o=r.getModel().getModel("itemStyle").getItemStyle();o.fill||(o.fill=function(t,n,i){for(var r=t;r&&r.depth>1;)r=r.parentNode;var o=n.getColorFromPalette(r.name||r.dataIndex+"",e);return t.depth>1&&"string"==typeof o&&(o=qe(o,(t.depth-1)/(i-1)*.5)),o}(r,t,i.root.height)),M(n.ensureUniqueItemVisual(r.dataIndex,"style"),o)}))}))}function ML(t,e){return e=e||[0,0],P(["x","y"],(function(n,i){var r=this.getAxis(n),o=e[i],a=t[i]/2;return"category"===r.type?r.getBandWidth():Math.abs(r.dataToCoord(o-a)-r.dataToCoord(o+a))}),this)}function IL(t,e){return e=e||[0,0],P([0,1],(function(n){var i=e[n],r=t[n]/2,o=[],a=[];return o[n]=i-r,a[n]=i+r,o[1-n]=a[1-n]=e[1-n],Math.abs(this.dataToPoint(o)[n]-this.dataToPoint(a)[n])}),this)}function TL(t,e){var n=this.getAxis(),i=e instanceof Array?e[0]:e,r=(t instanceof Array?t[0]:t)/2;return"category"===n.type?n.getBandWidth():Math.abs(n.dataToCoord(i-r)-n.dataToCoord(i+r))}function CL(t,e){return e=e||[0,0],P(["Radius","Angle"],(function(n,i){var r=this["get"+n+"Axis"](),o=e[i],a=t[i]/2,s="category"===r.type?r.getBandWidth():Math.abs(r.dataToCoord(o-a)-r.dataToCoord(o+a));return"Angle"===n&&(s=s*Math.PI/180),s}),this)}function AL(t,e,n,i){return t&&(t.legacy||!1!==t.legacy&&!n&&!i&&"tspan"!==e&&("text"===e||ct(t,"text")))}function DL(t,e,n){var i,r,o,a=t;if("text"===e)o=a;else{o={},ct(a,"text")&&(o.text=a.text),ct(a,"rich")&&(o.rich=a.rich),ct(a,"textFill")&&(o.fill=a.textFill),ct(a,"textStroke")&&(o.stroke=a.textStroke),r={type:"text",style:o,silent:!0},i={};var s=ct(a,"textPosition");n?i.position=s?a.textPosition:"inside":s&&(i.position=a.textPosition),ct(a,"textPosition")&&(i.position=a.textPosition),ct(a,"textOffset")&&(i.offset=a.textOffset),ct(a,"textRotation")&&(i.rotation=a.textRotation),ct(a,"textDistance")&&(i.distance=a.textDistance)}return LL(o,t),k(o.rich,(function(t){LL(t,t)})),{textConfig:i,textContent:r}}function LL(t,e){e&&(e.font=e.textFont||e.font,ct(e,"textStrokeWidth")&&(t.lineWidth=e.textStrokeWidth),ct(e,"textAlign")&&(t.align=e.textAlign),ct(e,"textVerticalAlign")&&(t.verticalAlign=e.textVerticalAlign),ct(e,"textLineHeight")&&(t.lineHeight=e.textLineHeight),ct(e,"textWidth")&&(t.width=e.textWidth),ct(e,"textHeight")&&(t.height=e.textHeight),ct(e,"textBackgroundColor")&&(t.backgroundColor=e.textBackgroundColor),ct(e,"textPadding")&&(t.padding=e.textPadding),ct(e,"textBorderColor")&&(t.borderColor=e.textBorderColor),ct(e,"textBorderWidth")&&(t.borderWidth=e.textBorderWidth),ct(e,"textBorderRadius")&&(t.borderRadius=e.textBorderRadius),ct(e,"textBoxShadowColor")&&(t.shadowColor=e.textBoxShadowColor),ct(e,"textBoxShadowBlur")&&(t.shadowBlur=e.textBoxShadowBlur),ct(e,"textBoxShadowOffsetX")&&(t.shadowOffsetX=e.textBoxShadowOffsetX),ct(e,"textBoxShadowOffsetY")&&(t.shadowOffsetY=e.textBoxShadowOffsetY))}function kL(t,e,n){var i=t;i.textPosition=i.textPosition||n.position||"inside",null!=n.offset&&(i.textOffset=n.offset),null!=n.rotation&&(i.textRotation=n.rotation),null!=n.distance&&(i.textDistance=n.distance);var r=i.textPosition.indexOf("inside")>=0,o=t.fill||"#000";PL(i,e);var a=null==i.textFill;return r?a&&(i.textFill=n.insideFill||"#fff",!i.textStroke&&n.insideStroke&&(i.textStroke=n.insideStroke),!i.textStroke&&(i.textStroke=o),null==i.textStrokeWidth&&(i.textStrokeWidth=2)):(a&&(i.textFill=n.outsideFill||o),!i.textStroke&&n.outsideStroke&&(i.textStroke=n.outsideStroke)),i.text=e.text,i.rich=e.rich,k(e.rich,(function(t){PL(t,t)})),i}function PL(t,e){e&&(ct(e,"fill")&&(t.textFill=e.fill),ct(e,"stroke")&&(t.textStroke=e.fill),ct(e,"lineWidth")&&(t.textStrokeWidth=e.lineWidth),ct(e,"font")&&(t.font=e.font),ct(e,"fontStyle")&&(t.fontStyle=e.fontStyle),ct(e,"fontWeight")&&(t.fontWeight=e.fontWeight),ct(e,"fontSize")&&(t.fontSize=e.fontSize),ct(e,"fontFamily")&&(t.fontFamily=e.fontFamily),ct(e,"align")&&(t.textAlign=e.align),ct(e,"verticalAlign")&&(t.textVerticalAlign=e.verticalAlign),ct(e,"lineHeight")&&(t.textLineHeight=e.lineHeight),ct(e,"width")&&(t.textWidth=e.width),ct(e,"height")&&(t.textHeight=e.height),ct(e,"backgroundColor")&&(t.textBackgroundColor=e.backgroundColor),ct(e,"padding")&&(t.textPadding=e.padding),ct(e,"borderColor")&&(t.textBorderColor=e.borderColor),ct(e,"borderWidth")&&(t.textBorderWidth=e.borderWidth),ct(e,"borderRadius")&&(t.textBorderRadius=e.borderRadius),ct(e,"shadowColor")&&(t.textBoxShadowColor=e.shadowColor),ct(e,"shadowBlur")&&(t.textBoxShadowBlur=e.shadowBlur),ct(e,"shadowOffsetX")&&(t.textBoxShadowOffsetX=e.shadowOffsetX),ct(e,"shadowOffsetY")&&(t.textBoxShadowOffsetY=e.shadowOffsetY),ct(e,"textShadowColor")&&(t.textShadowColor=e.textShadowColor),ct(e,"textShadowBlur")&&(t.textShadowBlur=e.textShadowBlur),ct(e,"textShadowOffsetX")&&(t.textShadowOffsetX=e.textShadowOffsetX),ct(e,"textShadowOffsetY")&&(t.textShadowOffsetY=e.textShadowOffsetY))}var OL=ga.CMD,RL=2*Math.PI,NL=["x","y"],EL=["width","height"],zL=[];function BL(t,e){return Math.abs(t-e)<1e-5}function VL(t){var e,n,i,r,o,a=t.data,s=t.len(),l=[],u=0,h=0,c=0,p=0;function d(t,n){e&&e.length>2&&l.push(e),e=[t,n]}function f(t,n,i,r){BL(t,i)&&BL(n,r)||e.push(t,n,i,r,i,r)}function g(t,n,i,r,o,a){var s=Math.abs(n-t),l=4*Math.tan(s/4)/3,u=n<t?-1:1,h=Math.cos(t),c=Math.sin(t),p=Math.cos(n),d=Math.sin(n),f=h*o+i,g=c*a+r,y=p*o+i,v=d*a+r,m=o*l*u,_=a*l*u;e.push(f-m*c,g+_*h,y+m*d,v-_*p,y,v)}for(var y=0;y<s;){var v=a[y++],m=1===y;switch(m&&(c=u=a[y],p=h=a[y+1],v!==OL.L&&v!==OL.C&&v!==OL.Q||(e=[c,p])),v){case OL.M:u=c=a[y++],h=p=a[y++],d(c,p);break;case OL.L:f(u,h,n=a[y++],i=a[y++]),u=n,h=i;break;case OL.C:e.push(a[y++],a[y++],a[y++],a[y++],u=a[y++],h=a[y++]);break;case OL.Q:n=a[y++],i=a[y++],r=a[y++],o=a[y++],e.push(u+2/3*(n-u),h+2/3*(i-h),r+2/3*(n-r),o+2/3*(i-o),r,o),u=r,h=o;break;case OL.A:var _=a[y++],x=a[y++],b=a[y++],w=a[y++],S=a[y++],M=a[y++]+S;y+=1;var I=!a[y++];n=Math.cos(S)*b+_,i=Math.sin(S)*w+x,m?d(c=n,p=i):f(u,h,n,i),u=Math.cos(M)*b+_,h=Math.sin(M)*w+x;for(var T=(I?-1:1)*Math.PI/2,C=S;I?C>M:C<M;C+=T){g(C,I?Math.max(C+T,M):Math.min(C+T,M),_,x,b,w)}break;case OL.R:c=u=a[y++],p=h=a[y++],n=c+a[y++],i=p+a[y++],d(n,p),f(n,p,n,i),f(n,i,c,i),f(c,i,c,p),f(c,p,n,p);break;case OL.Z:e&&f(u,h,c,p),u=c,h=p}}return e&&e.length>2&&l.push(e),l}function FL(t,e){var n=t.length,i=e.length;if(n===i)return[t,e];for(var r=n<i?t:e,o=Math.min(n,i),a=Math.abs(i-n)/6,s=(o-2)/6,l=Math.ceil(a/s)+1,u=[r[0],r[1]],h=a,c=[],p=[],d=2;d<o;){var f=r[d-2],g=r[d-1],y=r[d++],v=r[d++],m=r[d++],_=r[d++],x=r[d++],b=r[d++];if(h<=0)u.push(y,v,m,_,x,b);else{for(var w=Math.min(h,l-1)+1,S=1;S<=w;S++){var M=S/w;To(f,y,m,x,M,c),To(g,v,_,b,M,p),f=c[3],g=p[3],u.push(c[1],p[1],c[2],p[2],f,g),y=c[5],v=p[5],m=c[6],_=p[6]}h-=w-1}}return r===t?[u,e]:[t,u]}function GL(t,e){for(var n=t.length,i=t[n-2],r=t[n-1],o=[],a=0;a<e.length;)o[a++]=i,o[a++]=r;return o}function HL(t){for(var e=0,n=0,i=0,r=t.length,o=0,a=r-2;o<r;a=o,o+=2){var s=t[a],l=t[a+1],u=t[o],h=t[o+1],c=s*h-u*l;e+=c,n+=(s+u)*c,i+=(l+h)*c}return 0===e?[t[0]||0,t[1]||0]:[n/e/3,i/e/3,e]}function WL(t,e,n,i){for(var r=(t.length-2)/6,o=1/0,a=0,s=t.length,l=s-2,u=0;u<r;u++){for(var h=6*u,c=0,p=0;p<s;p+=2){var d=0===p?h:(h+p-2)%l+2,f=t[d]-n[0],g=t[d+1]-n[1],y=e[p]-i[0]-f,v=e[p+1]-i[1]-g;c+=y*y+v*v}c<o&&(o=c,a=u)}return a}function YL(t){for(var e=[],n=t.length,i=0;i<n;i+=2)e[i]=t[n-i-2],e[i+1]=t[n-i-1];return e}function XL(t,e,n){var i,r;if(!t||!e)return e;!t.path&&t.createPathProxy(),(i=t.path).beginPath(),t.buildPath(i,t.shape),!e.path&&e.createPathProxy(),(r=e.path)===i&&(r=new ga(!1)),r.beginPath(),jL(e)?e.__oldBuildPath(r,e.shape):e.buildPath(r,e.shape);var o=function(t,e){for(var n,i,r,o=[],a=[],s=0;s<Math.max(t.length,e.length);s++){var l=t[s],u=e[s],h=void 0,c=void 0;l?u?(i=h=(n=FL(l,u))[0],r=c=n[1]):(c=GL(r||l,l),h=l):(h=GL(i||u,u),c=u),o.push(h),a.push(c)}return[o,a]}(VL(i),VL(r)),a=function(t,e,n,i){for(var r,o=[],a=0;a<t.length;a++){var s=t[a],l=e[a],u=HL(s),h=HL(l);null==r&&(r=u[2]<0!=h[2]<0);var c=[],p=[],d=0,f=1/0,g=[],y=s.length;r&&(s=YL(s));for(var v=6*WL(s,l,u,h),m=y-2,_=0;_<m;_+=2){var x=(v+_)%m+2;c[_+2]=s[x]-u[0],c[_+3]=s[x+1]-u[1]}if(c[0]=s[v]-u[0],c[1]=s[v+1]-u[1],n>0)for(var b=i/n,w=-i/2;w<=i/2;w+=b){var S=Math.sin(w),M=Math.cos(w),I=0;for(_=0;_<s.length;_+=2){var T=c[_],C=c[_+1],A=l[_]-h[0],D=l[_+1]-h[1],L=A*M-D*S,k=A*S+D*M;g[_]=L,g[_+1]=k;var P=L-T,O=k-C;I+=P*P+O*O}if(I<f){f=I,d=w;for(var R=0;R<g.length;R++)p[R]=g[R]}}else for(var N=0;N<y;N+=2)p[N]=l[N]-h[0],p[N+1]=l[N+1]-h[1];o.push({from:c,to:p,fromCp:u,toCp:h,rotation:-d})}return o}(o[0],o[1],10,Math.PI);!function(t,e,n){if(jL(t))return void ZL(t,e,n);var i=t;i.__oldBuildPath=i.buildPath,i.buildPath=UL,ZL(i,e,n)}(e,a,0);var s=n&&n.done,l=n&&n.aborted,u=n&&n.during;return e.animateTo({__morphT:1},I({during:function(t){e.dirtyShape(),u&&u(t)},done:function(){var t;jL(t=e)&&(t.buildPath=t.__oldBuildPath,t.__oldBuildPath=t.__morphingData=null),e.createPathProxy(),e.dirtyShape(),s&&s()},aborted:function(){l&&l()}},n)),e}function UL(t){for(var e=this.__morphingData,n=this.__morphT,i=1-n,r=[],o=0;o<e.length;o++){var a=e[o],s=a.from,l=a.to,u=a.rotation*n,h=a.fromCp,c=a.toCp,p=Math.sin(u),d=Math.cos(u);Ot(r,h,c,n);for(var f=0;f<s.length;f+=2){var g=s[f],y=s[f+1],v=g*i+l[f]*n,m=y*i+l[f+1]*n;zL[f]=v*d-m*p+r[0],zL[f+1]=v*p+m*d+r[1]}for(f=0;f<s.length;)0===f&&t.moveTo(zL[f++],zL[f++]),t.bezierCurveTo(zL[f++],zL[f++],zL[f++],zL[f++],zL[f++],zL[f++])}}function ZL(t,e,n){t.__morphingData=e,t.__morphT=n}function jL(t){return null!=t.__oldBuildPath}function qL(t){return!!t.__combiningSubList}function KL(t,e,n,i){for(var r=[],o=0,a=0;a<t.length;a++){var s=t[a];if(qL(s)){for(var l=s.__combiningSubList,u=0;u<l.length;u++)r.push(l[u]);o+=l.length}else r.push(s),o++}if(o){var h=n?n.dividingMethod:null,c=nk(e,o,h);it(c.length===o);var p=n&&n.done,d=n&&n.aborted,f=n&&n.during,g=0,y=!1,v=I({during:function(t){f&&f(t)},done:function(){++g===c.length&&(!function(t){if(!qL(t))return;var e=t;$L(e,null),e.addSelfToZr=e.__oldAddSelfToZr,e.removeSelfFromZr=e.__oldRemoveSelfFromZr,e.buildPath=e.__oldBuildPath,e.childrenRef=e.__combiningSubList=e.__oldAddSelfToZr=e.__oldRemoveSelfFromZr=e.__oldBuildPath=null}(e),p&&p())},aborted:function(){y||(y=!0,d&&d())}},n);for(a=0;a<o;a++){var m=r[a],_=c[a];i&&i(e,_,!0),XL(m,_,v)}return function(t,e){if(qL(t))return void $L(t,e);var n=t;$L(n,e),n.__oldAddSelfToZr=t.addSelfToZr,n.__oldRemoveSelfFromZr=t.removeSelfFromZr,n.addSelfToZr=JL,n.removeSelfFromZr=tk,n.__oldBuildPath=n.buildPath,n.buildPath=pt,n.childrenRef=ek}(e,c),{fromIndividuals:r,toIndividuals:c,count:o}}}function $L(t,e){if(t.__combiningSubList!==e){if(QL(t,"removeSelfFromZr"),t.__combiningSubList=e,e)for(var n=0;n<e.length;n++)e[n].parent=t;QL(t,"addSelfToZr")}}function JL(t){this.__oldAddSelfToZr(t),QL(this,"addSelfToZr")}function QL(t,e){var n=t.__combiningSubList,i=t.__zr;if(n&&i)for(var r=0;r<n.length;r++){n[r][e](i)}}function tk(t){this.__oldRemoveSelfFromZr(t);for(var e=this.__combiningSubList,n=0;n<e.length;n++){e[n].removeSelfFromZr(t)}}function ek(){return this.__combiningSubList}function nk(t,e,n){return"duplicate"===n?ik(t,e):function(t,e){var n=[];if(e<=0)return n;if(1===e)return ik(t,e);if(t instanceof Za)for(var i=(c=t.shape).height>c.width?1:0,r=EL[i],o=NL[i],a=c[r]/e,s=c[o],l=0;l<e;l++,s+=a){var u={x:c.x,y:c.y,width:c.width,height:c.height};u[o]=s,u[r]=l<e-1?a:c[o]+c[r]-s;var h=new Za({shape:u});n.push(h)}else{if(!(t instanceof Tl))return ik(t,e);var c,p=(c=t.shape).clockwise,d=c.startAngle,f=c.endAngle,g=(function(t,e,n){return e+RL*Math[n?"ceil":"floor"]((t-e)/RL)}(d,c.endAngle,p)-d)/e,y=d;for(l=0;l<e;l++,y+=g){h=new Tl({shape:{cx:c.cx,cy:c.cy,r:c.r,r0:c.r0,clockwise:p,startAngle:y,endAngle:l===e-1?f:y+g}});n.push(h)}}return n}(t,e)}function ik(t,e){var n=[];if(e<=0)return n;for(var i=t.constructor,r=0;r<e;r++){var o=new i({shape:b(t.shape)});n.push(o)}return n}var rk=br(),ok={x:1,y:1,scaleX:1,scaleY:1,originX:1,originY:1,rotation:1},ak=(E(ok).join(", "),{color:"fill",borderColor:"stroke"}),sk={symbol:1,symbolSize:1,symbolKeepAspect:1,legendSymbol:1,visualMeta:1,liftZ:1,decal:1},lk="normal",uk=["normal","emphasis","blur","select"],hk={normal:["itemStyle"],emphasis:["emphasis","itemStyle"],blur:["blur","itemStyle"],select:["select","itemStyle"]},ck={normal:["label"],emphasis:["emphasis","label"],blur:["blur","label"],select:["select","label"]},pk={normal:{},emphasis:{},blur:{},select:{}},dk={position:["x","y"],scale:["scaleX","scaleY"],origin:["originX","originY"]},fk=new De,gk={cartesian2d:function(t){var e=t.master.getRect();return{coordSys:{type:"cartesian2d",x:e.x,y:e.y,width:e.width,height:e.height},api:{coord:function(e){return t.dataToPoint(e)},size:z(ML,t)}}},geo:function(t){var e=t.getBoundingRect();return{coordSys:{type:"geo",x:e.x,y:e.y,width:e.width,height:e.height,zoom:t.getZoom()},api:{coord:function(e){return t.dataToPoint(e)},size:z(IL,t)}}},singleAxis:function(t){var e=t.getRect();return{coordSys:{type:"singleAxis",x:e.x,y:e.y,width:e.width,height:e.height},api:{coord:function(e){return t.dataToPoint(e)},size:z(TL,t)}}},polar:function(t){var e=t.getRadiusAxis(),n=t.getAngleAxis(),i=e.getExtent();return i[0]>i[1]&&i.reverse(),{coordSys:{type:"polar",cx:t.cx,cy:t.cy,r:i[1],r0:i[0]},api:{coord:function(i){var r=e.dataToRadius(i[0]),o=n.dataToAngle(i[1]),a=t.coordToPoint([r,o]);return a.push(r,o*Math.PI/180),a},size:z(CL,t)}}},calendar:function(t){var e=t.getRect(),n=t.getRangeInfo();return{coordSys:{type:"calendar",x:e.x,y:e.y,width:e.width,height:e.height,cellWidth:t.getCellWidth(),cellHeight:t.getCellHeight(),rangeInfo:{start:n.start,end:n.end,weeks:n.weeks,dayCount:n.allDay}},api:{coord:function(e,n){return t.dataToPoint(e,n)}}}}},yk=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.optionUpdated=function(){this.currentZLevel=this.get("zlevel",!0),this.currentZ=this.get("z",!0)},n.prototype.getInitialData=function(t,e){return hm(this.getSource(),this)},n.prototype.getDataParams=function(e,n,i){var r=t.prototype.getDataParams.call(this,e,n);return i&&(r.info=rk(i).info),r},n.type="series.custom",n.dependencies=["grid","polar","geo","singleAxis","calendar"],n.defaultOption={coordinateSystem:"cartesian2d",zlevel:0,z:2,legendHoverLink:!0,clip:!1},n}(Sd),vk=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n,i){var r=this._data,o=t.getData(),a=this.group,s=zk(t,o,e,n),l=t.__transientTransitionOpt;if(!l||null!=l.from&&null!=l.to){var u=new Jk(t,l),h=l?"multiple":"oneToOne";new Cv(r?r.getIndices():[],o.getIndices(),mk(r,h,l&&l.from),mk(o,h,l&&l.to),null,h).add((function(e){Vk(n,null,e,s(e,i),t,a,o,null)})).remove((function(e){jk(r.getItemGraphicEl(e),t,a)})).update((function(e,l){u.reset("oneToOne");var h=r.getItemGraphicEl(l);u.findAndAddFrom(h),u.hasFrom()&&($k(h,a),h=null),Vk(n,h,e,s(e,i),t,a,o,u),u.applyMorphing()})).updateManyToOne((function(e,l){u.reset("manyToOne");for(var h=0;h<l.length;h++){var c=r.getItemGraphicEl(l[h]);u.findAndAddFrom(c),$k(c,a)}Vk(n,null,e,s(e,i),t,a,o,u),u.applyMorphing()})).updateOneToMany((function(e,l){u.reset("oneToMany");var h=e.length,c=r.getItemGraphicEl(l);u.findAndAddFrom(c),$k(c,a);for(var p=0;p<h;p++)Vk(n,null,e[p],s(e[p],i),t,a,o,u);u.applyMorphing()})).execute()}else r&&r.each((function(e){jk(r.getItemGraphicEl(e),t,a)})),o.each((function(e){Vk(n,null,e,s(e,i),t,a,o,null)}));var c=t.get("clip",!0)?lb(t.coordinateSystem,!1,t):null;c?a.setClipPath(c):a.removeClipPath(),this._data=o},n.prototype.incrementalPrepareRender=function(t,e,n){this.group.removeAll(),this._data=null},n.prototype.incrementalRender=function(t,e,n,i,r){var o=e.getData(),a=zk(e,o,n,i);function s(t){t.isGroup||(t.incremental=!0,t.ensureState("emphasis").hoverLayer=!0)}for(var l=t.start;l<t.end;l++){Vk(null,null,l,a(l,r),e,this.group,o,null).traverse(s)}},n.prototype.filterForExposedEvent=function(t,e,n,i){var r=e.element;if(null==r||n.name===r)return!0;for(;(n=n.__hostTarget||n.parent)&&n!==this.group;)if(n.name===r)return!0;return!1},n.type="custom",n}(Nd);function mk(t,e,n){if(t){if("oneToOne"===e)return function(e,n){return t.getId(n)};var i=t.getDimension(n),r=t.getDimensionInfo(i);if(!r){var o="";0,ur(o)}var a=r.ordinalMeta;return function(e,n){var r=t.get(i,n);return a&&(r=a.categories[r]),null==r||$(r)?e+"":"_ec_"+r}}}function _k(t){var e,n=t.type;if("path"===n){var i=t.shape,r=null!=i.width&&null!=i.height?{x:i.x||0,y:i.y||0,width:i.width,height:i.height}:null,o=qk(i);e=uu(o,null,r,i.layout||"center"),rk(e).customPathData=o}else if("image"===n)e=new Fa({}),rk(e).customImagePath=t.style.image;else if("text"===n)e=new Ka({});else if("group"===n)e=new Pi;else{if("compoundPath"===n)throw new Error('"compoundPath" is not supported yet.');var a=lu(n);if(!a){var s="";0,ur(s)}e=new a}return rk(e).customGraphicType=n,e.name=t.name,e.z2EmphasisLift=1,e.z2SelectLift=1,e}function xk(t,e,n,i,r,o,a,s,l,u){var h={},c={},p=e.isGroup?null:e;!n&&Sk("shape",e,null,r,h,l),Mk("shape",r,c),!n&&Sk("extra",e,null,r,h,l),Mk("extra",r,c),!n&&Ik(e,null,r,h,l),function(t,e){Rk(t,e,"position"),Rk(t,e,"scale"),Rk(t,e,"origin"),Nk(t,e,"x"),Nk(t,e,"y"),Nk(t,e,"scaleX"),Nk(t,e,"scaleY"),Nk(t,e,"originX"),Nk(t,e,"originY"),Nk(t,e,"rotation")}(r,c);var d=a&&a.normal.cfg;if(d&&e.setTextConfig(d),"text"===e.type&&o){var f=o;ct(f,"textFill")&&(f.fill=f.textFill),ct(f,"textStroke")&&(f.stroke=f.textStroke)}if(o){var g=void 0,y=Kk(e)?o.decal:null;t&&y&&(y.dirty=!0,g=Zg(y,t)),o.__decalPattern=g}return!n&&Tk(e,null,r,o,h,l),p&&ct(r,"invisible")&&(p.invisible=r.invisible),n||(bk(e,c,o),wk(e,i,r,s,h,l)),ct(r,"silent")&&(e.silent=r.silent),ct(r,"ignore")&&(e.ignore=r.ignore),u||ct(r,"info")&&(rk(e).info=r.info),o?e.dirty():e.markRedraw(),n?c:null}function bk(t,e,n){var i=t.isGroup?null:t;if(i&&n){var r=n.__decalPattern,o=void 0;r&&(o=n.decal,n.decal=r),i.useStyle(n),r&&(n.decal=o);for(var a=i.animators,s=0;s<a.length;s++){var l=a[s];"style"===l.targetName&&l.changeTarget(i.style)}}e&&t.attr(e)}function wk(t,e,n,i,r,o){if(r){var a=n.during;rk(t).userDuring=a;var s={dataIndex:e,isFrom:!0,during:a?z(kk,{el:t,userDuring:a}):null};o?vu(t,r,i,s):yu(t,r,i,s)}}function Sk(t,e,n,i,r,o){var a=i[t];if(a){var s,l=e[t],u=a.enterFrom;if(o&&u){!s&&(s=r[t]={});for(var h=E(u),c=0;c<h.length;c++){s[_=h[c]]=u[_]}}if(!o&&l&&(null==n||"shape"!==t))if(a.transition){!s&&(s=r[t]={});var p=hr(a.transition);for(c=0;c<p.length;c++){var d=l[_=p[c]];0,s[_]=d}}else if(C(i.transition,t)>=0){!s&&(s=r[t]={});var f=E(l);for(c=0;c<f.length;c++){d=l[_=f[c]];Ck(a[_],d)&&(s[_]=d)}}var g=a.leaveTo;if(g){var y=Ak(e),v=y[t]||(y[t]={}),m=E(g);for(c=0;c<m.length;c++){var _;v[_=m[c]]=g[_]}}}}function Mk(t,e,n){var i=e[t];if(i)for(var r=n[t]={},o=E(i),a=0;a<o.length;a++){var s=o[a];r[s]=yn(i[s])}}function Ik(t,e,n,i,r){var o=n.enterFrom;if(r&&o)for(var a=E(o),s=0;s<a.length;s++){0,i[f=a[s]]=o[f]}if(!r)if(e){var l=function(t,e){if(!t||t===e||t.parent===e.parent)return t;var n=fk.transform||(fk.transform=fe([])),i=t.getComputedTransform();i?ge(n,i):fe(n);var r=e.parent;r&&r.getComputedTransform();return fk.originX=t.originX,fk.originY=t.originY,fk.parent=r,fk.decomposeTransform(),fk}(e,t);Ek(i,"x",l),Ek(i,"y",l),Ek(i,"scaleX",l),Ek(i,"scaleY",l),Ek(i,"originX",l),Ek(i,"originY",l),Ek(i,"rotation",l)}else if(n.transition){var u=hr(n.transition);for(s=0;s<u.length;s++){if("style"!==(f=u[s])&&"shape"!==f&&"extra"!==f){var h=t[f];0,i[f]=h}}}else Ek(i,"x",t),Ek(i,"y",t);var c=n.leaveTo;if(c){var p=Ak(t),d=E(c);for(s=0;s<d.length;s++){var f;0,p[f=d[s]]=c[f]}}}function Tk(t,e,n,i,r,o){if(i){var a,s=(e||t).style,l=i.enterFrom;if(o&&l){var u=E(l);!a&&(a=r.style={});for(var h=0;h<u.length;h++){a[x=u[h]]=l[x]}}if(!o&&s)if(i.transition){var c=hr(i.transition);!a&&(a=r.style={});for(h=0;h<c.length;h++){var p=s[x=c[h]];a[x]=p}}else if(t.getAnimationStyleProps&&C(n.transition,"style")>=0){var d=t.getAnimationStyleProps(),f=d?d.style:null;if(f){!a&&(a=r.style={});var g=E(i);for(h=0;h<g.length;h++){if(f[x=g[h]]){p=s[x];a[x]=p}}}}var y=i.leaveTo;if(y){var v=E(y),m=Ak(t),_=m.style||(m.style={});for(h=0;h<v.length;h++){var x;_[x=v[h]]=y[x]}}}}function Ck(t,e){return L(t)?t!==e:null!=t&&isFinite(t)}function Ak(t){var e=rk(t);return e.leaveToProps||(e.leaveToProps={})}var Dk={},Lk={setTransform:function(t,e){return Dk.el[t]=e,this},getTransform:function(t){return Dk.el[t]},setShape:function(t,e){return(Dk.el.shape||(Dk.el.shape={}))[t]=e,Dk.isShapeDirty=!0,this},getShape:function(t){var e=Dk.el.shape;if(e)return e[t]},setStyle:function(t,e){var n=Dk.el.style;return n&&(n[t]=e,Dk.isStyleDirty=!0),this},getStyle:function(t){var e=Dk.el.style;if(e)return e[t]},setExtra:function(t,e){return(Dk.el.extra||(Dk.el.extra={}))[t]=e,this},getExtra:function(t){var e=Dk.el.extra;if(e)return e[t]}};function kk(){var t=this,e=t.el;if(e){var n=rk(e).userDuring,i=t.userDuring;n===i?(Dk.el=e,Dk.isShapeDirty=!1,Dk.isStyleDirty=!1,i(Lk),Dk.isShapeDirty&&e.dirtyShape&&e.dirtyShape(),Dk.isStyleDirty&&e.dirtyStyle&&e.dirtyStyle()):t.el=t.userDuring=null}}function Pk(t,e,n,i,r,o,a){var s=e.isGroup?null:e,l=r&&r[t].cfg;if(s){var u=s.ensureState(t);if(!1===i){var h=s.getState(t);h&&(h.style=null)}else u.style=i||null;l&&(u.textConfig=l),Ms(s)}}function Ok(t,e,n){var i="normal"===n,r=i?e:Wk(e,n),o=r?r.z2:null;null!=o&&((i?t:t.ensureState(n)).z2=o||0)}function Rk(t,e,n,i){var r=t[n],o=dk[n];r&&(i?(e[o[0]]=i[o[0]],e[o[1]]=i[o[1]]):(e[o[0]]=r[0],e[o[1]]=r[1]))}function Nk(t,e,n,i){null!=t[n]&&(e[n]=i?i[n]:t[n])}function Ek(t,e,n){n&&(t[e]=n[e])}function zk(t,e,n,i){var r=t.get("renderItem"),o=t.coordinateSystem,a={};o&&(a=o.prepareCustoms?o.prepareCustoms(o):gk[o.type](o));for(var s,l,u=I({getWidth:i.getWidth,getHeight:i.getHeight,getZr:i.getZr,getDevicePixelRatio:i.getDevicePixelRatio,value:function(t,n){return null==n&&(n=s),e.get(e.getDimension(t||0),n)},style:function(n,i){0;null==i&&(i=s);var r=e.getItemVisual(i,"style"),o=r&&r.fill,a=r&&r.opacity,l=m(i,"normal").getItemStyle();null!=o&&(l.fill=o),null!=a&&(l.opacity=a);var u={inheritColor:G(o)?o:"#000"},h=_(i,"normal"),c=Vu(h,null,u,!1,!0);c.text=h.getShallow("show")?Q(t.getFormattedLabel(i,"normal"),Vx(e,i)):null;var p=Fu(h,u,!1);return b(n,l),l=kL(l,c,p),n&&x(l,n),l.legacy=!0,l},ordinalRawValue:function(t,n){null==n&&(n=s);var i=e.getDimensionInfo(t||0);if(!i)return;var r=e.get(i.name,n),o=i&&i.ordinalMeta;return o?o.categories[r]:r},styleEmphasis:function(n,i){0;null==i&&(i=s);var r=m(i,"emphasis").getItemStyle(),o=_(i,"emphasis"),a=Vu(o,null,null,!0,!0);a.text=o.getShallow("show")?tt(t.getFormattedLabel(i,"emphasis"),t.getFormattedLabel(i,"normal"),Vx(e,i)):null;var l=Fu(o,null,!0);return b(n,r),r=kL(r,a,l),n&&x(r,n),r.legacy=!0,r},visual:function(t,n){if(null==n&&(n=s),ct(ak,t)){var i=e.getItemVisual(n,"style");return i?i[ak[t]]:null}if(ct(sk,t))return e.getItemVisual(n,t)},barLayout:function(t){if("cartesian2d"===o.type){return function(t){var e=[],n=t.axis,i="axis0";if("category"===n.type){for(var r=n.getBandWidth(),o=0;o<t.count;o++)e.push(I({bandWidth:r,axisKey:i,stackId:"__ec_stack_"+o},t));var a=Dm(e),s=[];for(o=0;o<t.count;o++){var l=a.axis0["__ec_stack_"+o];l.offsetCenter=l.offset+l.width/2,s.push(l)}return s}}(I({axis:o.getBaseAxis()},t))}},currentSeriesIndices:function(){return n.getCurrentSeriesIndices()},font:function(t){return Xu(t,n)}},a.api||{}),h={context:{},seriesId:t.id,seriesName:t.name,seriesIndex:t.seriesIndex,coordSys:a.coordSys,dataInsideLength:e.count(),encode:Bk(t.getData())},c={},p={},d={},f={},g=0;g<uk.length;g++){var y=uk[g];d[y]=t.getModel(hk[y]),f[y]=t.getModel(ck[y])}function v(t){return t===s?l||(l=e.getItemModel(t)):e.getItemModel(t)}function m(t,n){return e.hasItemOption?t===s?c[n]||(c[n]=v(t).getModel(hk[n])):v(t).getModel(hk[n]):d[n]}function _(t,n){return e.hasItemOption?t===s?p[n]||(p[n]=v(t).getModel(ck[n])):v(t).getModel(ck[n]):f[n]}return function(t,n){return s=t,l=null,c={},p={},r&&r(I({dataIndexInside:t,dataIndex:e.getRawIndex(t),actionType:n?n.type:null},h),u)};function x(t,e){for(var n in e)ct(e,n)&&(t[n]=e[n])}function b(t,e){t&&(t.textFill&&(e.textFill=t.textFill),t.textPosition&&(e.textPosition=t.textPosition))}}function Bk(t){var e={};return k(t.dimensions,(function(n,i){var r=t.getDimensionInfo(n);if(!r.isExtraCoord){var o=r.coordDim;(e[o]=e[o]||[])[r.coordDimIndex]=i}})),e}function Vk(t,e,n,i,r,o,a,s){if(i)return(e=Fk(t,e,n,i,r,o,!0,s))&&a.setItemGraphicEl(n,e),Ns(e,i.focus,i.blurScope),e;$k(e,o)}function Fk(t,e,n,i,r,o,a,s){var l=-1;e&&Gk(e,i)&&(l=o.childrenRef().indexOf(e),e=null);var u=!e;e?e.clearStates():e=_k(i);var h=(rk(e).canMorph=i.morph&&Kk(e))&&s&&s.hasFrom(),c=u&&!h;pk.normal.cfg=pk.normal.conOpt=pk.emphasis.cfg=pk.emphasis.conOpt=pk.blur.cfg=pk.blur.conOpt=pk.select.cfg=pk.select.conOpt=null,pk.isLegacy=!1,function(t,e,n,i,r,o){if(t.isGroup)return;Hk(n,null,o),Hk(n,"emphasis",o);var a=o.normal.conOpt,s=o.emphasis.conOpt,l=o.blur.conOpt,u=o.select.conOpt;if(null!=a||null!=s||null!=u||null!=l){var h=t.getTextContent();if(!1===a)h&&t.removeTextContent();else{a=o.normal.conOpt=a||{type:"text"},h?h.clearStates():(h=_k(a),t.setTextContent(h));var c=a&&a.style;xk(null,h,null,e,a,c,null,i,r,!0);for(var p=0;p<uk.length;p++){var d=uk[p];if(d!==lk){var f=o[d].conOpt;Pk(d,h,0,Yk(a,f,d),null)}}c?h.dirty():h.markRedraw()}}}(e,n,i,r,c,pk),function(t,e,n,i,r){var o=n.clipPath;if(!1===o)t&&t.getClipPath()&&t.removeClipPath();else if(o){var a=t.getClipPath();a&&Gk(a,o)&&(a=null),a||(a=_k(o),t.setClipPath(a)),xk(null,a,null,e,o,null,null,i,r,!1)}}(e,n,i,r,c);var p=xk(t,e,h,n,i,i.style,pk,r,c,!1);h&&s.addTo(e,i,n,p);for(var d=0;d<uk.length;d++){var f=uk[d];if(f!==lk){var g=Wk(i,f);Pk(f,e,0,Yk(i,g,f),pk)}}return function(t,e,n,i){if(!t.isGroup){var r=t,o=n.currentZ,a=n.currentZLevel;r.z=o,r.zlevel=a;var s=e.z2;null!=s&&(r.z2=s||0);for(var l=0;l<uk.length;l++)Ok(r,e,uk[l])}}(e,i,r),"group"===i.type&&function(t,e,n,i,r,o){var a=i.children,s=a?a.length:0,l=i.$mergeChildren,u="byName"===l||i.diffChildrenByName,h=!1===l;if(!s&&!u&&!h)return;if(u)return c={api:t,oldChildren:e.children()||[],newChildren:a||[],dataIndex:n,seriesModel:r,group:e,morphPreparation:o},void new Cv(c.oldChildren,c.newChildren,Xk,Xk,c).add(Uk).update(Uk).remove(Zk).execute();var c;h&&e.removeAll();for(var p=0;p<s;p++)a[p]&&Fk(t,e.childAt(p),n,a[p],r,e,!1,o);for(var d=e.childCount()-1;d>=p;d--)jk(e.childAt(d),r,e)}(t,e,n,i,r,s),l>=0?o.replaceAt(e,l):o.add(e),e}function Gk(t,e){var n,i=rk(t),r=e.type,o=e.shape,a=e.style;return null!=r&&r!==i.customGraphicType||"path"===r&&((n=o)&&(ct(n,"pathData")||ct(n,"d")))&&qk(o)!==i.customPathData||"image"===r&&ct(a,"image")&&a.image!==i.customImagePath}function Hk(t,e,n){var i=e?Wk(t,e):t,r=e?Yk(t,i,"emphasis"):t.style,o=t.type,a=i?i.textConfig:null,s=t.textContent,l=s?e?Wk(s,e):s:null;if(r&&(n.isLegacy||AL(r,o,!!a,!!l))){n.isLegacy=!0;var u=DL(r,o,!e);!a&&u.textConfig&&(a=u.textConfig),!l&&u.textContent&&(l=u.textContent)}if(!e&&l){var h=l;!h.type&&(h.type="text")}var c=e?n[e]:n.normal;c.cfg=a,c.conOpt=l}function Wk(t,e){return e?t?t[e]:null:t}function Yk(t,e,n){var i=e&&e.style;return null==i&&"emphasis"===n&&t&&(i=t.styleEmphasis),i}function Xk(t,e){var n=t&&t.name;return null!=n?n:"e\0\0"+e}function Uk(t,e){var n=this.context,i=null!=t?n.newChildren[t]:null,r=null!=e?n.oldChildren[e]:null;Fk(n.api,r,n.dataIndex,i,n.seriesModel,n.group,0,n.morphPreparation)}function Zk(t){var e=this.context;jk(e.oldChildren[t],e.seriesModel,e.group)}function jk(t,e,n){if(t){var i=rk(t).leaveToProps;i?yu(t,i,e,{cb:function(){n.remove(t)}}):n.remove(t)}}function qk(t){return t&&(t.pathData||t.d)}function Kk(t){return t&&t instanceof Na}function $k(t,e){t&&e.remove(t)}var Jk=function(){function t(t,e){this._fromList=[],this._toList=[],this._toElOptionList=[],this._allPropsFinalList=[],this._toDataIndices=[],this._morphConfigList=[],this._seriesModel=t,this._transOpt=e}return t.prototype.hasFrom=function(){return!!this._fromList.length},t.prototype.findAndAddFrom=function(t){if(t&&(rk(t).canMorph&&this._fromList.push(t),t.isGroup))for(var e=t.childrenRef(),n=0;n<e.length;n++)this.findAndAddFrom(e[n])},t.prototype.addTo=function(t,e,n,i){t&&(this._toList.push(t),this._toElOptionList.push(e),this._toDataIndices.push(n),this._allPropsFinalList.push(i))},t.prototype.applyMorphing=function(){var t=this._type,e=this._fromList,n=this._toList.length,i=e.length;if(i&&n)if("oneToOne"===t)for(var r=0;r<n;r++)this._oneToOneForSingleTo(r,r);else if("manyToOne"===t)for(var o=Math.max(1,Math.floor(i/n)),a=(r=0,0);r<n;r++,a+=o){var s=r+1>=n?i-a:o;this._manyToOneForSingleTo(r,a>=i?null:a,s)}else if("oneToMany"===t)for(var l=Math.max(1,Math.floor(n/i)),u=0,h=0;u<n;u+=l,h++){var c=u+l>=n?n-u:l;this._oneToManyForSingleFrom(u,c,h>=i?null:h)}},t.prototype._oneToOneForSingleTo=function(t,e){var n,i=this._toList[t],r=this._toElOptionList[t],o=this._toDataIndices[t],a=this._allPropsFinalList[t],s=this._fromList[e],l=this._getOrCreateMorphConfig(o),u=l.duration;if(s&&qL(s)){if(bk(i,a,r.style),u){var h=KL([s],i,l,Qk);this._processResultIndividuals(h,t,null)}}else{var c=u&&s&&(s!==i||(jL(n=s)||qL(n)))?s:null,p={};Sk("shape",i,c,r,p,!1),Sk("extra",i,c,r,p,!1),Ik(i,c,r,p,!1),Tk(i,c,r,r.style,p,!1),bk(i,a,r.style),c&&XL(c,i,l),wk(i,o,r,this._seriesModel,p,!1)}},t.prototype._manyToOneForSingleTo=function(t,e,n){var i=this._toList[t],r=this._toElOptionList[t];bk(i,this._allPropsFinalList[t],r.style);var o=this._getOrCreateMorphConfig(this._toDataIndices[t]);if(o.duration&&null!=e){for(var a=[],s=e;s<n;s++)a.push(this._fromList[s]);var l=KL(a,i,o,Qk);this._processResultIndividuals(l,t,null)}},t.prototype._oneToManyForSingleFrom=function(t,e,n){for(var i=null==n?null:this._fromList[n],r=this._toList,o=[],a=t;a<e;a++){var s=r[a];bk(s,this._allPropsFinalList[a],this._toElOptionList[a].style),o.push(s)}var l=this._getOrCreateMorphConfig(this._toDataIndices[t]);if(l.duration&&i){var u=function(t,e,n,i){var r,o=e.length,a=n?n.dividingMethod:null,s=!1;if(qL(t)){var l=t.__combiningSubList;l.length===o?r=l:(r=nk(t,o,a),s=!0)}else r=nk(t,o,a),s=!0;it(r.length===o);for(var u=0;u<o;u++)s&&i&&i(t,r[u],!1),XL(r[u],e[u],n);return{fromIndividuals:r,toIndividuals:e,count:o}}(i,o,l,Qk);this._processResultIndividuals(u,t,e)}},t.prototype._processResultIndividuals=function(t,e,n){for(var i=null!=n,r=0;r<t.count;r++){var o=t.fromIndividuals[r],a=t.toIndividuals[r],s=e+(i?r:0),l=this._toElOptionList[s],u=this._toDataIndices[s],h={};Ik(a,o,l,h,!1),Tk(a,o,l,l.style,h,!1),wk(a,u,l,this._seriesModel,h,!1)}},t.prototype._getOrCreateMorphConfig=function(t){var e,n,i,r=this._morphConfigList,o=r[t];if(o)return o;var a=this._seriesModel,s=this._transOpt;if(a.isAnimationEnabled()){var l=void 0;if(a&&a.ecModel){var u=a.ecModel.getUpdatePayload();l=u&&u.animation}if(l)e=l.duration||0,n=l.easing||"cubicOut",i=l.delay||0;else{n=a.get("animationEasingUpdate");var h=a.get("animationDelayUpdate");i=F(h)?h(t):h;var c=a.get("animationDurationUpdate");e=F(c)?c(t):c}}return o={duration:e||0,delay:i,easing:n,dividingMethod:s?s.dividingMethod:null},r[t]=o,o},t.prototype.reset=function(t){this._type=t,this._fromList.length=this._toList.length=this._toElOptionList.length=this._allPropsFinalList.length=this._toDataIndices.length=0},t}();function Qk(t,e,n){e.style=n?b(t.style):t.style,e.zlevel=t.zlevel,e.z=t.z,e.z2=t.z2}var tP=br(),eP=b,nP=z,iP=function(){function t(){this._dragging=!1,this.animationThreshold=15}return t.prototype.render=function(t,e,n,i){var r=e.get("value"),o=e.get("status");if(this._axisModel=t,this._axisPointerModel=e,this._api=n,i||this._lastValue!==r||this._lastStatus!==o){this._lastValue=r,this._lastStatus=o;var a=this._group,s=this._handle;if(!o||"hide"===o)return a&&a.hide(),void(s&&s.hide());a&&a.show(),s&&s.show();var l={};this.makeElOption(l,r,t,e,n);var u=l.graphicKey;u!==this._lastGraphicKey&&this.clear(n),this._lastGraphicKey=u;var h=this._moveAnimation=this.determineAnimation(t,e);if(a){var c=B(rP,e,h);this.updatePointerEl(a,l,c),this.updateLabelEl(a,l,c,e)}else a=this._group=new Pi,this.createPointerEl(a,l,t,e),this.createLabelEl(a,l,t,e),n.getZr().add(a);lP(a,e,!0),this._renderHandle(r)}},t.prototype.remove=function(t){this.clear(t)},t.prototype.dispose=function(t){this.clear(t)},t.prototype.determineAnimation=function(t,e){var n=e.get("animation"),i=t.axis,r="category"===i.type,o=e.get("snap");if(!o&&!r)return!1;if("auto"===n||null==n){var a=this.animationThreshold;if(r&&i.getBandWidth()>a)return!0;if(o){var s=Vw(t).seriesDataCount,l=i.getExtent();return Math.abs(l[0]-l[1])/s>a}return!1}return!0===n},t.prototype.makeElOption=function(t,e,n,i,r){},t.prototype.createPointerEl=function(t,e,n,i){var r=e.pointer;if(r){var o=tP(t).pointerEl=new Ou[r.type](eP(e.pointer));t.add(o)}},t.prototype.createLabelEl=function(t,e,n,i){if(e.label){var r=tP(t).labelEl=new Ka(eP(e.label));t.add(r),aP(r,i)}},t.prototype.updatePointerEl=function(t,e,n){var i=tP(t).pointerEl;i&&e.pointer&&(i.setStyle(e.pointer.style),n(i,{shape:e.pointer.shape}))},t.prototype.updateLabelEl=function(t,e,n,i){var r=tP(t).labelEl;r&&(r.setStyle(e.label.style),n(r,{x:e.label.x,y:e.label.y}),aP(r,i))},t.prototype._renderHandle=function(t){if(!this._dragging&&this.updateHandleTransform){var e,n=this._axisPointerModel,i=this._api.getZr(),r=this._handle,o=n.getModel("handle"),a=n.get("status");if(!o.get("show")||!a||"hide"===a)return r&&i.remove(r),void(this._handle=null);this._handle||(e=!0,r=this._handle=Du(o.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(t){ee(t.event)},onmousedown:nP(this._onHandleDragMove,this,0,0),drift:nP(this._onHandleDragMove,this),ondragend:nP(this._onHandleDragEnd,this)}),i.add(r)),lP(r,n,!1),r.setStyle(o.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var s=o.get("size");V(s)||(s=[s,s]),r.scaleX=s[0]/2,r.scaleY=s[1]/2,Yd(this,"_doDispatchAxisPointer",o.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,e)}},t.prototype._moveHandleToValue=function(t,e){rP(this._axisPointerModel,!e&&this._moveAnimation,this._handle,sP(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},t.prototype._onHandleDragMove=function(t,e){var n=this._handle;if(n){this._dragging=!0;var i=this.updateHandleTransform(sP(n),[t,e],this._axisModel,this._axisPointerModel);this._payloadInfo=i,n.stopAnimation(),n.attr(sP(i)),tP(n).lastProp=null,this._doDispatchAxisPointer()}},t.prototype._doDispatchAxisPointer=function(){if(this._handle){var t=this._payloadInfo,e=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:t.cursorPoint[0],y:t.cursorPoint[1],tooltipOption:t.tooltipOption,axesInfo:[{axisDim:e.axis.dim,axisIndex:e.componentIndex}]})}},t.prototype._onHandleDragEnd=function(){if(this._dragging=!1,this._handle){var t=this._axisPointerModel.get("value");this._moveHandleToValue(t),this._api.dispatchAction({type:"hideTip"})}},t.prototype.clear=function(t){this._lastValue=null,this._lastStatus=null;var e=t.getZr(),n=this._group,i=this._handle;e&&n&&(this._lastGraphicKey=null,n&&e.remove(n),i&&e.remove(i),this._group=null,this._handle=null,this._payloadInfo=null)},t.prototype.doClear=function(){},t.prototype.buildLabel=function(t,e,n){return{x:t[n=n||0],y:t[1-n],width:e[n],height:e[1-n]}},t}();function rP(t,e,n,i){oP(tP(n).lastProp,i)||(tP(n).lastProp=i,e?yu(n,i,t):(n.stopAnimation(),n.attr(i)))}function oP(t,e){if(Y(t)&&Y(e)){var n=!0;return k(e,(function(e,i){n=n&&oP(t[i],e)})),!!n}return t===e}function aP(t,e){t[e.get(["label","show"])?"show":"hide"]()}function sP(t){return{x:t.x||0,y:t.y||0,rotation:t.rotation||0}}function lP(t,e,n){var i=e.get("z"),r=e.get("zlevel");t&&t.traverse((function(t){"group"!==t.type&&(null!=i&&(t.z=i),null!=r&&(t.zlevel=r),t.silent=n)}))}function uP(t){var e,n=t.get("type"),i=t.getModel(n+"Style");return"line"===n?(e=i.getLineStyle()).fill=null:"shadow"===n&&((e=i.getAreaStyle()).stroke=null),e}function hP(t,e,n,i,r){var o=cP(n.get("value"),e.axis,e.ecModel,n.get("seriesDataIndices"),{precision:n.get(["label","precision"]),formatter:n.get(["label","formatter"])}),a=n.getModel("label"),s=Fh(a.get("padding")||0),l=a.getFont(),u=Bn(o,l),h=r.position,c=u.width+s[1]+s[3],p=u.height+s[0]+s[2],d=r.align;"right"===d&&(h[0]-=c),"center"===d&&(h[0]-=c/2);var f=r.verticalAlign;"bottom"===f&&(h[1]-=p),"middle"===f&&(h[1]-=p/2),function(t,e,n,i){var r=i.getWidth(),o=i.getHeight();t[0]=Math.min(t[0]+e,r)-e,t[1]=Math.min(t[1]+n,o)-n,t[0]=Math.max(t[0],0),t[1]=Math.max(t[1],0)}(h,c,p,i);var g=a.get("backgroundColor");g&&"auto"!==g||(g=e.get(["axisLine","lineStyle","color"])),t.label={x:h[0],y:h[1],style:Vu(a,{text:o,font:l,fill:a.getTextColor(),padding:s,backgroundColor:g}),z2:10}}function cP(t,e,n,i,r){t=e.scale.parse(t);var o=e.scale.getLabel({value:t},{precision:r.precision}),a=r.formatter;if(a){var s={value:h_(e,{value:t}),axisDimension:e.dim,axisIndex:e.index,seriesData:[]};k(i,(function(t){var e=n.getSeriesByIndex(t.seriesIndex),i=t.dataIndexInside,r=e&&e.getDataParams(i);r&&s.seriesData.push(r)})),G(a)?o=a.replace("{value}",o):F(a)&&(o=a(s))}return o}function pP(t,e,n){var i=[1,0,0,1,0,0];return me(i,i,n.rotation),ve(i,i,n.position),Su([t.dataToCoord(e),(n.labelOffset||0)+(n.labelDirection||1)*(n.labelMargin||0)],i)}function dP(t,e,n,i,r,o){var a=Lw.innerTextLayout(n.rotation,0,n.labelDirection);n.labelMargin=r.get(["label","margin"]),hP(e,i,r,o,{position:pP(i.axis,t,n),align:a.textAlign,verticalAlign:a.textVerticalAlign})}function fP(t,e,n){return{x1:t[n=n||0],y1:t[1-n],x2:e[n],y2:e[1-n]}}function gP(t,e,n){return{x:t[n=n||0],y:t[1-n],width:e[n],height:e[1-n]}}function yP(t,e,n,i,r,o){return{cx:t,cy:e,r0:n,r:i,startAngle:r,endAngle:o,clockwise:!0}}var vP=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.makeElOption=function(t,e,n,i,r){var o=n.axis,a=o.grid,s=i.get("type"),l=mP(a,o).getOtherAxis(o).getGlobalExtent(),u=o.toGlobalCoord(o.dataToCoord(e,!0));if(s&&"none"!==s){var h=uP(i),c=_P[s](o,u,l);c.style=h,t.graphicKey=c.type,t.pointer=c}dP(e,t,ww(a.model,n),n,i,r)},n.prototype.getHandleTransform=function(t,e,n){var i=ww(e.axis.grid.model,e,{labelInside:!1});i.labelMargin=n.get(["handle","margin"]);var r=pP(e.axis,t,i);return{x:r[0],y:r[1],rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},n.prototype.updateHandleTransform=function(t,e,n,i){var r=n.axis,o=r.grid,a=r.getGlobalExtent(!0),s=mP(o,r).getOtherAxis(r).getGlobalExtent(),l="x"===r.dim?0:1,u=[t.x,t.y];u[l]+=e[l],u[l]=Math.min(a[1],u[l]),u[l]=Math.max(a[0],u[l]);var h=(s[1]+s[0])/2,c=[h,h];c[l]=u[l];return{x:u[0],y:u[1],rotation:t.rotation,cursorPoint:c,tooltipOption:[{verticalAlign:"middle"},{align:"center"}][l]}},n}(iP);function mP(t,e){var n={};return n[e.dim+"AxisIndex"]=e.index,t.getCartesian(n)}var _P={line:function(t,e,n){return{type:"Line",subPixelOptimize:!0,shape:fP([e,n[0]],[e,n[1]],xP(t))}},shadow:function(t,e,n){var i=Math.max(1,t.getBandWidth()),r=n[1]-n[0];return{type:"Rect",shape:gP([e-i/2,n[0]],[i,r],xP(t))}}};function xP(t){return"x"===t.dim?0:1}var bP=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.type="axisPointer",n.defaultOption={show:"auto",zlevel:0,z:50,type:"line",snap:!1,triggerTooltip:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#B9BEC9",width:1,type:"dashed"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}},n}(uc),wP=br(),SP=k;function MP(t,e,n){if(!o.node){var i=e.getZr();wP(i).records||(wP(i).records={}),function(t,e){if(wP(t).initialized)return;function n(n,i){t.on(n,(function(n){var r=function(t){var e={showTip:[],hideTip:[]},n=function(i){var r=e[i.type];r?r.push(i):(i.dispatchAction=n,t.dispatchAction(i))};return{dispatchAction:n,pendings:e}}(e);SP(wP(t).records,(function(t){t&&i(t,n,r.dispatchAction)})),function(t,e){var n,i=t.showTip.length,r=t.hideTip.length;i?n=t.showTip[i-1]:r&&(n=t.hideTip[r-1]);n&&(n.dispatchAction=null,e.dispatchAction(n))}(r.pendings,e)}))}wP(t).initialized=!0,n("click",B(TP,"click")),n("mousemove",B(TP,"mousemove")),n("globalout",IP)}(i,e),(wP(i).records[t]||(wP(i).records[t]={})).handler=n}}function IP(t,e,n){t.handler("leave",null,n)}function TP(t,e,n,i){e.handler(t,n,i)}function CP(t,e){if(!o.node){var n=e.getZr();(wP(n).records||{})[t]&&(wP(n).records[t]=null)}}var AP=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n){var i=e.getComponent("tooltip"),r=t.get("triggerOn")||i&&i.get("triggerOn")||"mousemove|click";MP("axisPointer",n,(function(t,e,n){"none"!==r&&("leave"===t||r.indexOf(t)>=0)&&n({type:"updateAxisPointer",currTrigger:t,x:e&&e.offsetX,y:e&&e.offsetY})}))},n.prototype.remove=function(t,e){CP("axisPointer",e)},n.prototype.dispose=function(t,e){CP("axisPointer",e)},n.type="axisPointer",n}(kd);function DP(t,e){var n,i=[],r=t.seriesIndex;if(null==r||!(n=e.getSeriesByIndex(r)))return{point:[]};var o=n.getData(),a=xr(o,t);if(null==a||a<0||V(a))return{point:[]};var s=o.getItemGraphicEl(a),l=n.coordinateSystem;if(n.getTooltipPosition)i=n.getTooltipPosition(a)||[];else if(l&&l.dataToPoint)if(t.isStacked){var u=l.getBaseAxis(),h=l.getOtherAxis(u).dim,c=u.dim,p="x"===h||"radius"===h?1:0,d=o.mapDimension(c),f=[];f[p]=o.get(d,a),f[1-p]=o.get(o.getCalculationInfo("stackResultDimension"),a),i=l.dataToPoint(f)||[]}else i=l.dataToPoint(o.getValues(P(l.dimensions,(function(t){return o.mapDimension(t)})),a))||[];else if(s){var g=s.getBoundingRect().clone();g.applyTransform(s.transform),i=[g.x+g.width/2,g.y+g.height/2]}return{point:i,el:s}}var LP=br();function kP(t,e,n){var i=t.currTrigger,r=[t.x,t.y],o=t,a=t.dispatchAction||z(n.dispatchAction,n),s=e.getComponent("axisPointer").coordSysAxesInfo;if(s){EP(r)&&(r=DP({seriesIndex:o.seriesIndex,dataIndex:o.dataIndex},e).point);var l=EP(r),u=o.axesInfo,h=s.axesInfo,c="leave"===i||EP(r),p={},d={},f={list:[],map:{}},g={showPointer:B(OP,d),showTooltip:B(RP,f)};k(s.coordSysMap,(function(t,e){var n=l||t.containPoint(r);k(s.coordSysAxesInfo[e],(function(t,e){var i=t.axis,o=function(t,e){for(var n=0;n<(t||[]).length;n++){var i=t[n];if(e.axis.dim===i.axisDim&&e.axis.model.componentIndex===i.axisIndex)return i}}(u,t);if(!c&&n&&(!u||o)){var a=o&&o.value;null!=a||l||(a=i.pointToData(r)),null!=a&&PP(t,a,g,!1,p)}}))}));var y={};return k(h,(function(t,e){var n=t.linkGroup;n&&!d[e]&&k(n.axesInfo,(function(e,i){var r=d[i];if(e!==t&&r){var o=r.value;n.mapper&&(o=t.axis.scale.parse(n.mapper(o,NP(e),NP(t)))),y[t.key]=o}}))})),k(y,(function(t,e){PP(h[e],t,g,!0,p)})),function(t,e,n){var i=n.axesInfo=[];k(e,(function(e,n){var r=e.axisPointerModel.option,o=t[n];o?(!e.useHandle&&(r.status="show"),r.value=o.value,r.seriesDataIndices=(o.payloadBatch||[]).slice()):!e.useHandle&&(r.status="hide"),"show"===r.status&&i.push({axisDim:e.axis.dim,axisIndex:e.axis.model.componentIndex,value:r.value})}))}(d,h,p),function(t,e,n,i){if(EP(e)||!t.list.length)return void i({type:"hideTip"});var r=((t.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};i({type:"showTip",escapeConnect:!0,x:e[0],y:e[1],tooltipOption:n.tooltipOption,position:n.position,dataIndexInside:r.dataIndexInside,dataIndex:r.dataIndex,seriesIndex:r.seriesIndex,dataByCoordSys:t.list})}(f,r,t,a),function(t,e,n){var i=n.getZr(),r="axisPointerLastHighlights",o=LP(i)[r]||{},a=LP(i)[r]={};k(t,(function(t,e){var n=t.axisPointerModel.option;"show"===n.status&&k(n.seriesDataIndices,(function(t){var e=t.seriesIndex+" | "+t.dataIndex;a[e]=t}))}));var s=[],l=[];k(o,(function(t,e){!a[e]&&l.push(t)})),k(a,(function(t,e){!o[e]&&s.push(t)})),l.length&&n.dispatchAction({type:"downplay",escapeConnect:!0,notBlur:!0,batch:l}),s.length&&n.dispatchAction({type:"highlight",escapeConnect:!0,notBlur:!0,batch:s})}(h,0,n),p}}function PP(t,e,n,i,r){var o=t.axis;if(!o.scale.isBlank()&&o.containData(e))if(t.involveSeries){var a=function(t,e){var n=e.axis,i=n.dim,r=t,o=[],a=Number.MAX_VALUE,s=-1;return k(e.seriesModels,(function(e,l){var u,h,c=e.getData().mapDimensionsAll(i);if(e.getAxisTooltipData){var p=e.getAxisTooltipData(c,t,n);h=p.dataIndices,u=p.nestestValue}else{if(!(h=e.getData().indicesOfNearest(c[0],t,"category"===n.type?.5:null)).length)return;u=e.getData().get(c[0],h[0])}if(null!=u&&isFinite(u)){var d=t-u,f=Math.abs(d);f<=a&&((f<a||d>=0&&s<0)&&(a=f,s=d,r=u,o.length=0),k(h,(function(t){o.push({seriesIndex:e.seriesIndex,dataIndexInside:t,dataIndex:e.getData().getRawIndex(t)})})))}})),{payloadBatch:o,snapToValue:r}}(e,t),s=a.payloadBatch,l=a.snapToValue;s[0]&&null==r.seriesIndex&&M(r,s[0]),!i&&t.snap&&o.containData(l)&&null!=l&&(e=l),n.showPointer(t,e,s),n.showTooltip(t,a,l)}else n.showPointer(t,e)}function OP(t,e,n,i){t[e.key]={value:n,payloadBatch:i}}function RP(t,e,n,i){var r=n.payloadBatch,o=e.axis,a=o.model,s=e.axisPointerModel;if(e.triggerTooltip&&r.length){var l=e.coordSys.model,u=Gw(l),h=t.map[u];h||(h=t.map[u]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},t.list.push(h)),h.dataByAxis.push({axisDim:o.dim,axisIndex:a.componentIndex,axisType:a.type,axisId:a.id,value:i,valueLabelOpt:{precision:s.get(["label","precision"]),formatter:s.get(["label","formatter"])},seriesDataIndices:r.slice()})}}function NP(t){var e=t.axis.model,n={},i=n.axisDim=t.axis.dim;return n.axisIndex=n[i+"AxisIndex"]=e.componentIndex,n.axisName=n[i+"AxisName"]=e.name,n.axisId=n[i+"AxisId"]=e.id,n}function EP(t){return!t||null==t[0]||isNaN(t[0])||null==t[1]||isNaN(t[1])}function zP(t){Ww.registerAxisPointerClass("CartesianAxisPointer",vP),t.registerComponentModel(bP),t.registerComponentView(AP),t.registerPreprocessor((function(t){if(t){(!t.axisPointer||0===t.axisPointer.length)&&(t.axisPointer={});var e=t.axisPointer.link;e&&!V(e)&&(t.axisPointer.link=[e])}})),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,(function(t,e){t.getComponent("axisPointer").coordSysAxesInfo=Ew(t,e)})),t.registerAction({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},kP)}var BP=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.makeElOption=function(t,e,n,i,r){var o=n.axis;"angle"===o.dim&&(this.animationThreshold=Math.PI/18);var a=o.polar,s=a.getOtherAxis(o).getExtent(),l=o.dataToCoord(e),u=i.get("type");if(u&&"none"!==u){var h=uP(i),c=VP[u](o,a,l,s);c.style=h,t.graphicKey=c.type,t.pointer=c}var p=function(t,e,n,i,r){var o=e.axis,a=o.dataToCoord(t),s=i.getAngleAxis().getExtent()[0];s=s/180*Math.PI;var l,u,h,c=i.getRadiusAxis().getExtent();if("radius"===o.dim){var p=[1,0,0,1,0,0];me(p,p,s),ve(p,p,[i.cx,i.cy]),l=Su([a,-r],p);var d=e.getModel("axisLabel").get("rotate")||0,f=Lw.innerTextLayout(s,d*Math.PI/180,-1);u=f.textAlign,h=f.textVerticalAlign}else{var g=c[1];l=i.coordToPoint([g+r,a]);var y=i.cx,v=i.cy;u=Math.abs(l[0]-y)/g<.3?"center":l[0]>y?"left":"right",h=Math.abs(l[1]-v)/g<.3?"middle":l[1]>v?"top":"bottom"}return{position:l,align:u,verticalAlign:h}}(e,n,0,a,i.get(["label","margin"]));hP(t,n,i,r,p)},n}(iP);var VP={line:function(t,e,n,i){return"angle"===t.dim?{type:"Line",shape:fP(e.coordToPoint([i[0],n]),e.coordToPoint([i[1],n]))}:{type:"Circle",shape:{cx:e.cx,cy:e.cy,r:n}}},shadow:function(t,e,n,i){var r=Math.max(1,t.getBandWidth()),o=Math.PI/180;return"angle"===t.dim?{type:"Sector",shape:yP(e.cx,e.cy,i[0],i[1],(-n-r/2)*o,(r/2-n)*o)}:{type:"Sector",shape:yP(e.cx,e.cy,n-r/2,n+r/2,0,2*Math.PI)}}},FP=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.findAxisModel=function(t){var e;return this.ecModel.eachComponent(t,(function(t){t.getCoordSysModel()===this&&(e=t)}),this),e},n.type="polar",n.dependencies=["radiusAxis","angleAxis"],n.defaultOption={zlevel:0,z:0,center:["50%","50%"],radius:"80%"},n}(uc),GP=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.getCoordSysModel=function(){return this.getReferringComponents("polar",Mr).models[0]},n.type="polarAxis",n}(uc);D(GP,g_);var HP=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.type="angleAxis",n}(GP),WP=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.type="radiusAxis",n}(GP),YP=function(t){function n(e,n){return t.call(this,"radius",e,n)||this}return e(n,t),n.prototype.pointToData=function(t,e){return this.polar.pointToData(t,e)["radius"===this.dim?0:1]},n}(B_);YP.prototype.dataToRadius=B_.prototype.dataToCoord,YP.prototype.radiusToData=B_.prototype.coordToData;var XP=br(),UP=function(t){function n(e,n){return t.call(this,"angle",e,n||[0,360])||this}return e(n,t),n.prototype.pointToData=function(t,e){return this.polar.pointToData(t,e)["radius"===this.dim?0:1]},n.prototype.calculateCategoryInterval=function(){var t=this,e=t.getLabelModel(),n=t.scale,i=n.getExtent(),r=n.count();if(i[1]-i[0]<1)return 0;var o=i[0],a=t.dataToCoord(o+1)-t.dataToCoord(o),s=Math.abs(a),l=Bn(null==o?"":o+"",e.getFont(),"center","top"),u=Math.max(l.height,7)/s;isNaN(u)&&(u=1/0);var h=Math.max(0,Math.floor(u)),c=XP(t.model),p=c.lastAutoInterval,d=c.lastTickCount;return null!=p&&null!=d&&Math.abs(p-h)<=1&&Math.abs(d-r)<=1&&p>h?h=p:(c.lastTickCount=r,c.lastAutoInterval=h),h},n}(B_);UP.prototype.dataToAngle=B_.prototype.dataToCoord,UP.prototype.angleToData=B_.prototype.coordToData;var ZP=function(){function t(t){this.dimensions=["radius","angle"],this.type="polar",this.cx=0,this.cy=0,this._radiusAxis=new YP,this._angleAxis=new UP,this.axisPointerEnabled=!0,this.name=t||"",this._radiusAxis.polar=this._angleAxis.polar=this}return t.prototype.containPoint=function(t){var e=this.pointToCoord(t);return this._radiusAxis.contain(e[0])&&this._angleAxis.contain(e[1])},t.prototype.containData=function(t){return this._radiusAxis.containData(t[0])&&this._angleAxis.containData(t[1])},t.prototype.getAxis=function(t){return this["_"+t+"Axis"]},t.prototype.getAxes=function(){return[this._radiusAxis,this._angleAxis]},t.prototype.getAxesByScale=function(t){var e=[],n=this._angleAxis,i=this._radiusAxis;return n.scale.type===t&&e.push(n),i.scale.type===t&&e.push(i),e},t.prototype.getAngleAxis=function(){return this._angleAxis},t.prototype.getRadiusAxis=function(){return this._radiusAxis},t.prototype.getOtherAxis=function(t){var e=this._angleAxis;return t===e?this._radiusAxis:e},t.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAngleAxis()},t.prototype.getTooltipAxes=function(t){var e=null!=t&&"auto"!==t?this.getAxis(t):this.getBaseAxis();return{baseAxes:[e],otherAxes:[this.getOtherAxis(e)]}},t.prototype.dataToPoint=function(t,e){return this.coordToPoint([this._radiusAxis.dataToRadius(t[0],e),this._angleAxis.dataToAngle(t[1],e)])},t.prototype.pointToData=function(t,e){var n=this.pointToCoord(t);return[this._radiusAxis.radiusToData(n[0],e),this._angleAxis.angleToData(n[1],e)]},t.prototype.pointToCoord=function(t){var e=t[0]-this.cx,n=t[1]-this.cy,i=this.getAngleAxis(),r=i.getExtent(),o=Math.min(r[0],r[1]),a=Math.max(r[0],r[1]);i.inverse?o=a-360:a=o+360;var s=Math.sqrt(e*e+n*n);e/=s,n/=s;for(var l=Math.atan2(-n,e)/Math.PI*180,u=l<o?1:-1;l<o||l>a;)l+=360*u;return[s,l]},t.prototype.coordToPoint=function(t){var e=t[0],n=t[1]/180*Math.PI;return[Math.cos(n)*e+this.cx,-Math.sin(n)*e+this.cy]},t.prototype.getArea=function(){var t=this.getAngleAxis(),e=this.getRadiusAxis().getExtent().slice();e[0]>e[1]&&e.reverse();var n=t.getExtent(),i=Math.PI/180;return{cx:this.cx,cy:this.cy,r0:e[0],r:e[1],startAngle:-n[0]*i,endAngle:-n[1]*i,clockwise:t.inverse,contain:function(t,e){var n=t-this.cx,i=e-this.cy,r=n*n+i*i,o=this.r,a=this.r0;return r<=o*o&&r>=a*a}}},t.prototype.convertToPixel=function(t,e,n){return jP(e)===this?this.dataToPoint(n):null},t.prototype.convertFromPixel=function(t,e,n){return jP(e)===this?this.pointToData(n):null},t}();function jP(t){var e=t.seriesModel,n=t.polarModel;return n&&n.coordinateSystem||e&&e.coordinateSystem}function qP(t,e){var n=this,i=n.getAngleAxis(),r=n.getRadiusAxis();if(i.scale.setExtent(1/0,-1/0),r.scale.setExtent(1/0,-1/0),t.eachSeries((function(t){if(t.coordinateSystem===n){var e=t.getData();k(f_(e,"radius"),(function(t){r.scale.unionExtentFromData(e,t)})),k(f_(e,"angle"),(function(t){i.scale.unionExtentFromData(e,t)}))}})),s_(i.scale,i.model),s_(r.scale,r.model),"category"===i.type&&!i.onBand){var o=i.getExtent(),a=360/i.scale.count();i.inverse?o[1]+=a:o[1]-=a,i.setExtent(o[0],o[1])}}function KP(t,e){if(t.type=e.get("type"),t.scale=l_(e),t.onBand=e.get("boundaryGap")&&"category"===t.type,t.inverse=e.get("inverse"),function(t){return"angleAxis"===t.mainType}(e)){t.inverse=t.inverse!==e.get("clockwise");var n=e.get("startAngle");t.setExtent(n,n+(t.inverse?-360:360))}e.axis=t,t.model=e}var $P={dimensions:ZP.prototype.dimensions,create:function(t,e){var n=[];return t.eachComponent("polar",(function(t,i){var r=new ZP(i+"");r.update=qP;var o=r.getRadiusAxis(),a=r.getAngleAxis(),s=t.findAxisModel("radiusAxis"),l=t.findAxisModel("angleAxis");KP(o,s),KP(a,l),function(t,e,n){var i=e.get("center"),r=n.getWidth(),o=n.getHeight();t.cx=Gi(i[0],r),t.cy=Gi(i[1],o);var a=t.getRadiusAxis(),s=Math.min(r,o)/2,l=e.get("radius");null==l?l=[0,"100%"]:V(l)||(l=[0,l]);var u=[Gi(l[0],s),Gi(l[1],s)];a.inverse?a.setExtent(u[1],u[0]):a.setExtent(u[0],u[1])}(r,t,e),n.push(r),t.coordinateSystem=r,r.model=t})),t.eachSeries((function(t){if("polar"===t.get("coordinateSystem")){var e=t.getReferringComponents("polar",Mr).models[0];0,t.coordinateSystem=e.coordinateSystem}})),n}},JP=["axisLine","axisLabel","axisTick","minorTick","splitLine","minorSplitLine","splitArea"];function QP(t,e,n){e[1]>e[0]&&(e=e.slice().reverse());var i=t.coordToPoint([e[0],n]),r=t.coordToPoint([e[1],n]);return{x1:i[0],y1:i[1],x2:r[0],y2:r[1]}}function tO(t){return t.getRadiusAxis().inverse?0:1}function eO(t){var e=t[0],n=t[t.length-1];e&&n&&Math.abs(Math.abs(e.coord-n.coord)-360)<1e-4&&t.pop()}var nO=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.axisPointerClass="PolarAxisPointer",e}return e(n,t),n.prototype.render=function(t,e){if(this.group.removeAll(),t.get("show")){var n=t.axis,i=n.polar,r=i.getRadiusAxis().getExtent(),o=n.getTicksCoords(),a=n.getMinorTicksCoords(),s=P(n.getViewLabels(),(function(t){t=b(t);var e=n.scale,i="ordinal"===e.type?e.getRawOrdinalNumber(t.tickValue):t.tickValue;return t.coord=n.dataToCoord(i),t}));eO(s),eO(o),k(JP,(function(e){!t.get([e,"show"])||n.scale.isBlank()&&"axisLine"!==e||iO[e](this.group,t,i,o,a,r,s)}),this)}},n.type="angleAxis",n}(Ww),iO={axisLine:function(t,e,n,i,r,o){var a,s=e.getModel(["axisLine","lineStyle"]),l=tO(n),u=l?0:1;(a=0===o[u]?new ul({shape:{cx:n.cx,cy:n.cy,r:o[l]},style:s.getLineStyle(),z2:1,silent:!0}):new Al({shape:{cx:n.cx,cy:n.cy,r:o[l],r0:o[u]},style:s.getLineStyle(),z2:1,silent:!0})).style.fill=null,t.add(a)},axisTick:function(t,e,n,i,r,o){var a=e.getModel("axisTick"),s=(a.get("inside")?-1:1)*a.get("length"),l=o[tO(n)],u=P(i,(function(t){return new zl({shape:QP(n,[l,l+s],t.coord)})}));t.add(pu(u,{style:I(a.getModel("lineStyle").getLineStyle(),{stroke:e.get(["axisLine","lineStyle","color"])})}))},minorTick:function(t,e,n,i,r,o){if(r.length){for(var a=e.getModel("axisTick"),s=e.getModel("minorTick"),l=(a.get("inside")?-1:1)*s.get("length"),u=o[tO(n)],h=[],c=0;c<r.length;c++)for(var p=0;p<r[c].length;p++)h.push(new zl({shape:QP(n,[u,u+l],r[c][p].coord)}));t.add(pu(h,{style:I(s.getModel("lineStyle").getLineStyle(),I(a.getLineStyle(),{stroke:e.get(["axisLine","lineStyle","color"])}))}))}},axisLabel:function(t,e,n,i,r,o,a){var s=e.getCategories(!0),l=e.getModel("axisLabel"),u=l.get("margin"),h=e.get("triggerEvent");k(a,(function(i,r){var a=l,c=i.tickValue,p=o[tO(n)],d=n.coordToPoint([p+u,i.coord]),f=n.cx,g=n.cy,y=Math.abs(d[0]-f)/p<.3?"center":d[0]>f?"left":"right",v=Math.abs(d[1]-g)/p<.3?"middle":d[1]>g?"top":"bottom";if(s&&s[c]){var m=s[c];Y(m)&&m.textStyle&&(a=new ah(m.textStyle,l,l.ecModel))}var _=new Ka({silent:Lw.isLabelSilent(e),style:Vu(a,{x:d[0],y:d[1],fill:a.getTextColor()||e.get(["axisLine","lineStyle","color"]),text:i.formattedLabel,align:y,verticalAlign:v})});if(t.add(_),h){var x=Lw.makeAxisEventDataBase(e);x.targetType="axisLabel",x.value=i.rawLabel,rs(_).eventData=x}}),this)},splitLine:function(t,e,n,i,r,o){var a=e.getModel("splitLine").getModel("lineStyle"),s=a.get("color"),l=0;s=s instanceof Array?s:[s];for(var u=[],h=0;h<i.length;h++){var c=l++%s.length;u[c]=u[c]||[],u[c].push(new zl({shape:QP(n,o,i[h].coord)}))}for(h=0;h<u.length;h++)t.add(pu(u[h],{style:I({stroke:s[h%s.length]},a.getLineStyle()),silent:!0,z:e.get("z")}))},minorSplitLine:function(t,e,n,i,r,o){if(r.length){for(var a=e.getModel("minorSplitLine").getModel("lineStyle"),s=[],l=0;l<r.length;l++)for(var u=0;u<r[l].length;u++)s.push(new zl({shape:QP(n,o,r[l][u].coord)}));t.add(pu(s,{style:a.getLineStyle(),silent:!0,z:e.get("z")}))}},splitArea:function(t,e,n,i,r,o){if(i.length){var a=e.getModel("splitArea").getModel("areaStyle"),s=a.get("color"),l=0;s=s instanceof Array?s:[s];for(var u=[],h=Math.PI/180,c=-i[0].coord*h,p=Math.min(o[0],o[1]),d=Math.max(o[0],o[1]),f=e.get("clockwise"),g=1,y=i.length;g<=y;g++){var v=g===y?i[0].coord:i[g].coord,m=l++%s.length;u[m]=u[m]||[],u[m].push(new Tl({shape:{cx:n.cx,cy:n.cy,r0:p,r:d,startAngle:c,endAngle:-v*h,clockwise:f},silent:!0})),c=-v*h}for(g=0;g<u.length;g++)t.add(pu(u[g],{style:I({fill:s[g%s.length]},a.getAreaStyle()),silent:!0}))}}},rO=["axisLine","axisTickLabel","axisName"],oO=["splitLine","splitArea","minorSplitLine"],aO=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.axisPointerClass="PolarAxisPointer",e}return e(n,t),n.prototype.render=function(t,e){if(this.group.removeAll(),t.get("show")){var n=this._axisGroup,i=this._axisGroup=new Pi;this.group.add(i);var r=t.axis,o=r.polar,a=o.getAngleAxis(),s=r.getTicksCoords(),l=r.getMinorTicksCoords(),u=a.getExtent()[0],h=r.getExtent(),c=function(t,e,n){return{position:[t.cx,t.cy],rotation:n/180*Math.PI,labelDirection:-1,tickDirection:-1,nameDirection:1,labelRotate:e.getModel("axisLabel").get("rotate"),z2:1}}(o,t,u),p=new Lw(t,c);k(rO,p.add,p),i.add(p.getGroup()),Tu(n,i,t),k(oO,(function(e){t.get([e,"show"])&&!r.scale.isBlank()&&sO[e](this.group,t,o,u,h,s,l)}),this)}},n.type="radiusAxis",n}(Ww),sO={splitLine:function(t,e,n,i,r,o){var a=e.getModel("splitLine").getModel("lineStyle"),s=a.get("color"),l=0;s=s instanceof Array?s:[s];for(var u=[],h=0;h<o.length;h++){var c=l++%s.length;u[c]=u[c]||[],u[c].push(new ul({shape:{cx:n.cx,cy:n.cy,r:o[h].coord}}))}for(h=0;h<u.length;h++)t.add(pu(u[h],{style:I({stroke:s[h%s.length],fill:null},a.getLineStyle()),silent:!0}))},minorSplitLine:function(t,e,n,i,r,o,a){if(a.length){for(var s=e.getModel("minorSplitLine").getModel("lineStyle"),l=[],u=0;u<a.length;u++)for(var h=0;h<a[u].length;h++)l.push(new ul({shape:{cx:n.cx,cy:n.cy,r:a[u][h].coord}}));t.add(pu(l,{style:I({fill:null},s.getLineStyle()),silent:!0}))}},splitArea:function(t,e,n,i,r,o){if(o.length){var a=e.getModel("splitArea").getModel("areaStyle"),s=a.get("color"),l=0;s=s instanceof Array?s:[s];for(var u=[],h=o[0].coord,c=1;c<o.length;c++){var p=l++%s.length;u[p]=u[p]||[],u[p].push(new Tl({shape:{cx:n.cx,cy:n.cy,r0:h,r:o[c].coord,startAngle:0,endAngle:2*Math.PI},silent:!0})),h=o[c].coord}for(c=0;c<u.length;c++)t.add(pu(u[c],{style:I({fill:s[c%s.length]},a.getAreaStyle()),silent:!0}))}}};function lO(t){return t.get("stack")||"__ec_stack_"+t.seriesIndex}function uO(t,e){return e.dim+t.model.componentIndex}function hO(t,e,n){var i={},r=function(t){var e={};k(t,(function(t,n){var i=t.getData(),r=t.coordinateSystem,o=r.getBaseAxis(),a=uO(r,o),s=o.getExtent(),l="category"===o.type?o.getBandWidth():Math.abs(s[1]-s[0])/i.count(),u=e[a]||{bandWidth:l,remainedWidth:l,autoWidthCount:0,categoryGap:"20%",gap:"30%",stacks:{}},h=u.stacks;e[a]=u;var c=lO(t);h[c]||u.autoWidthCount++,h[c]=h[c]||{width:0,maxWidth:0};var p=Gi(t.get("barWidth"),l),d=Gi(t.get("barMaxWidth"),l),f=t.get("barGap"),g=t.get("barCategoryGap");p&&!h[c].width&&(p=Math.min(u.remainedWidth,p),h[c].width=p,u.remainedWidth-=p),d&&(h[c].maxWidth=d),null!=f&&(u.gap=f),null!=g&&(u.categoryGap=g)}));var n={};return k(e,(function(t,e){n[e]={};var i=t.stacks,r=t.bandWidth,o=Gi(t.categoryGap,r),a=Gi(t.gap,1),s=t.remainedWidth,l=t.autoWidthCount,u=(s-o)/(l+(l-1)*a);u=Math.max(u,0),k(i,(function(t,e){var n=t.maxWidth;n&&n<u&&(n=Math.min(n,s),t.width&&(n=Math.min(n,t.width)),s-=n,t.width=n,l--)})),u=(s-o)/(l+(l-1)*a),u=Math.max(u,0);var h,c=0;k(i,(function(t,e){t.width||(t.width=u),h=t,c+=t.width*(1+a)})),h&&(c-=h.width*a);var p=-c/2;k(i,(function(t,i){n[e][i]=n[e][i]||{offset:p,width:t.width},p+=t.width*(1+a)}))})),n}(R(e.getSeriesByType(t),(function(t){return!e.isSeriesFiltered(t)&&t.coordinateSystem&&"polar"===t.coordinateSystem.type})));e.eachSeriesByType(t,(function(t){if("polar"===t.coordinateSystem.type){var e=t.getData(),n=t.coordinateSystem,o=n.getBaseAxis(),a=uO(n,o),s=lO(t),l=r[a][s],u=l.offset,h=l.width,c=n.getOtherAxis(o),p=t.coordinateSystem.cx,d=t.coordinateSystem.cy,f=t.get("barMinHeight")||0,g=t.get("barMinAngle")||0;i[s]=i[s]||[];for(var y=e.mapDimension(c.dim),v=e.mapDimension(o.dim),m=lm(e,y),_="radius"!==o.dim||!t.get("roundCap",!0),x=c.dataToCoord(0),b=0,w=e.count();b<w;b++){var S=e.get(y,b),M=e.get(v,b),I=S>=0?"p":"n",T=x;m&&(i[s][M]||(i[s][M]={p:x,n:x}),T=i[s][M][I]);var C=void 0,A=void 0,D=void 0,L=void 0;if("radius"===c.dim){var k=c.dataToCoord(S)-x,P=o.dataToCoord(M);Math.abs(k)<f&&(k=(k<0?-1:1)*f),C=T,A=T+k,L=(D=P-u)-h,m&&(i[s][M][I]=A)}else{var O=c.dataToCoord(S,_)-x,R=o.dataToCoord(M);Math.abs(O)<g&&(O=(O<0?-1:1)*g),A=(C=R+u)+h,D=T,L=T+O,m&&(i[s][M][I]=L)}e.setItemLayout(b,{cx:p,cy:d,r0:C,r:A,startAngle:-D*Math.PI/180,endAngle:-L*Math.PI/180})}}}))}var cO={startAngle:90,clockwise:!0,splitNumber:12,axisLabel:{rotate:0}},pO={splitNumber:5},dO=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.type="polar",n}(kd);var fO=function(t){function n(e,n,i,r){var o=t.call(this,e)||this;o.dimensions=["lng","lat"],o.type="geo",o.map=n;var a=QS(n,i);return o._nameCoordMap=a.nameCoordMap,o._regionsMap=a.regionsMap,o._invertLongitute=null==r||r,o.regions=a.regions,o._rect=a.boundingRect,o}return e(n,t),n.prototype.containCoord=function(t){for(var e=this.regions,n=0;n<e.length;n++)if(e[n].contain(t))return!0;return!1},n.prototype.transformTo=function(t,e,n,i){var r=this.getBoundingRect(),o=this._invertLongitute;r=r.clone(),o&&(r.y=-r.y-r.height);var a=this._rawTransformable;a.transform=r.calculateTransform(new Pn(t,e,n,i)),a.decomposeTransform(),o&&(a.scaleY=-a.scaleY),a.updateTransform(),this._updateTransform()},n.prototype.getRegion=function(t){return this._regionsMap.get(t)},n.prototype.getRegionByCoord=function(t){for(var e=this.regions,n=0;n<e.length;n++)if(e[n].contain(t))return e[n]},n.prototype.addGeoCoord=function(t,e){this._nameCoordMap.set(t,e)},n.prototype.getGeoCoord=function(t){return this._nameCoordMap.get(t)},n.prototype.getBoundingRect=function(){return this._rect},n.prototype.dataToPoint=function(t,e,n){if("string"==typeof t&&(t=this.getGeoCoord(t)),t)return _M.prototype.dataToPoint.call(this,t,e,n)},n.prototype.convertToPixel=function(t,e,n){var i=gO(e);return i===this?i.dataToPoint(n):null},n.prototype.convertFromPixel=function(t,e,n){var i=gO(e);return i===this?i.pointToData(n):null},n}(_M);function gO(t){var e=t.geoModel,n=t.seriesModel;return e?e.coordinateSystem:n?n.coordinateSystem||(n.getReferringComponents("geo",Mr).models[0]||{}).coordinateSystem:null}function yO(t,e){var n=t.get("boundingCoords");if(null!=n){var i=n[0],r=n[1];isNaN(i[0])||isNaN(i[1])||isNaN(r[0])||isNaN(r[1])||this.setBoundingRect(i[0],i[1],r[0]-i[0],r[1]-i[1])}var o,a,s,l=this.getBoundingRect(),u=t.get("layoutCenter"),h=t.get("layoutSize"),c=e.getWidth(),p=e.getHeight(),d=l.width/l.height*this.aspectScale,f=!1;if(u&&h&&(o=[Gi(u[0],c),Gi(u[1],p)],a=Gi(h,Math.min(c,p)),isNaN(o[0])||isNaN(o[1])||isNaN(a)||(f=!0)),f)s={},d>1?(s.width=a,s.height=a/d):(s.height=a,s.width=a*d),s.y=o[1]-s.height/2,s.x=o[0]-s.width/2;else{var g=t.getBoxLayoutParams();g.aspect=d,s=nc(g,{width:c,height:p})}this.setViewRect(s.x,s.y,s.width,s.height),this.setCenter(t.get("center")),this.setZoom(t.get("zoom"))}D(fO,_M);var vO=new(function(){function t(){this.dimensions=fO.prototype.dimensions}return t.prototype.create=function(t,e){var n=[];t.eachComponent("geo",(function(t,i){var r=t.get("map"),o=t.get("aspectScale"),a=!0,s=Mf(r);s&&s[0]&&"svg"===s[0].type?(null==o&&(o=1),a=!1):null==o&&(o=.75);var l=new fO(r+i,r,t.get("nameMap"),a);l.aspectScale=o,l.zoomLimit=t.get("scaleLimit"),n.push(l),t.coordinateSystem=l,l.model=t,l.resize=yO,l.resize(t,e)})),t.eachSeries((function(t){if("geo"===t.get("coordinateSystem")){var e=t.get("geoIndex")||0;t.coordinateSystem=n[e]}}));var i={};return t.eachSeriesByType("map",(function(t){if(!t.getHostGeoModel()){var e=t.getMapType();i[e]=i[e]||[],i[e].push(t)}})),k(i,(function(t,i){var r=P(t,(function(t){return t.get("nameMap")})),o=new fO(i,i,S(r));o.zoomLimit=J.apply(null,P(t,(function(t){return t.get("scaleLimit")}))),n.push(o),o.resize=yO,o.aspectScale=t[0].get("aspectScale"),o.resize(t[0],e),k(t,(function(t){t.coordinateSystem=o,function(t,e){k(e.get("geoCoord"),(function(e,n){t.addGeoCoord(n,e)}))}(o,t)}))})),n},t.prototype.getFilledRegions=function(t,e,n){for(var i=(t||[]).slice(),r=lt(),o=0;o<i.length;o++)r.set(i[o].name,i[o]);return k(QS(e,n).regions,(function(t){var e=t.name;!r.get(e)&&i.push({name:e})})),i},t}()),mO=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.init=function(e,n,i){t.prototype.init.call(this,e,n,i),cr(e,"label",["show"])},n.prototype.optionUpdated=function(){var t=this.option,e=this;t.regions=vO.getFilledRegions(t.regions,t.map,t.nameMap);var n={};this._optionModelMap=O(t.regions||[],(function(t,i){var r=i.name;return r&&(t.set(r,new ah(i,e)),i.selected&&(n[r]=!0)),t}),lt()),t.selectedMap||(t.selectedMap=n)},n.prototype.getRegionModel=function(t){return this._optionModelMap.get(t)||new ah(null,this,this.ecModel)},n.prototype.getFormattedLabel=function(t,e){var n=this.getRegionModel(t),i="normal"===e?n.get(["label","formatter"]):n.get(["emphasis","label","formatter"]),r={name:t};return"function"==typeof i?(r.status=e,i(r)):"string"==typeof i?i.replace("{a}",null!=t?t:""):void 0},n.prototype.setZoom=function(t){this.option.zoom=t},n.prototype.setCenter=function(t){this.option.center=t},n.prototype.select=function(t){var e=this.option,n=e.selectedMode;n&&("multiple"!==n&&(e.selectedMap=null),(e.selectedMap||(e.selectedMap={}))[t]=!0)},n.prototype.unSelect=function(t){var e=this.option.selectedMap;e&&(e[t]=!1)},n.prototype.toggleSelected=function(t){this[this.isSelected(t)?"unSelect":"select"](t)},n.prototype.isSelected=function(t){var e=this.option.selectedMap;return!(!e||!e[t])},n.prototype._initSelectedMapFromData=function(){},n.type="geo",n.layoutMode="box",n.defaultOption={zlevel:0,z:0,show:!0,left:"center",top:"center",aspectScale:null,silent:!1,map:"",boundingCoords:null,center:null,zoom:1,scaleLimit:null,label:{show:!1,color:"#000"},itemStyle:{borderWidth:.5,borderColor:"#444",color:"#eee"},emphasis:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{color:"rgba(255,215,0,0.8)"}},select:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{color:"rgba(255,215,0,0.8)"}},regions:[]},n}(uc),_O=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.init=function(t,e){var n=new rM(e);this._mapDraw=n,this.group.add(n.group),this._api=e},n.prototype.render=function(t,e,n,i){var r=this._mapDraw;t.get("show")?r.draw(t,e,n,this,i):this._mapDraw.group.removeAll(),r.group.on("click",this._handleRegionClick,this),r.group.silent=t.get("silent"),this._model=t,this.updateSelectStatus(t,e,n)},n.prototype._handleRegionClick=function(t){for(var e,n=t.target;n&&null==(e=rs(n).eventData);)n=n.__hostTarget||n.parent;e&&this._api.dispatchAction({type:"geoToggleSelect",geoId:this._model.id,name:e.name})},n.prototype.updateSelectStatus=function(t,e,n){var i=this;this._mapDraw.group.traverse((function(t){var e=rs(t).eventData;if(e)return i._model.isSelected(e.name)?n.enterSelect(t):n.leaveSelect(t),!0}))},n.prototype.dispose=function(){this._mapDraw&&this._mapDraw.remove()},n.type="geo",n}(kd);function xO(t,e){e=e||{};var n=t.coordinateSystem,i=t.axis,r={},o=i.position,a=i.orient,s=n.getRect(),l=[s.x,s.x+s.width,s.y,s.y+s.height],u={horizontal:{top:l[2],bottom:l[3]},vertical:{left:l[0],right:l[1]}};r.position=["vertical"===a?u.vertical[o]:l[0],"horizontal"===a?u.horizontal[o]:l[3]];r.rotation=Math.PI/2*{horizontal:0,vertical:1}[a];r.labelDirection=r.tickDirection=r.nameDirection={top:-1,bottom:1,right:1,left:-1}[o],t.get(["axisTick","inside"])&&(r.tickDirection=-r.tickDirection),J(e.labelInside,t.get(["axisLabel","inside"]))&&(r.labelDirection=-r.labelDirection);var h=e.rotate;return null==h&&(h=t.get(["axisLabel","rotate"])),r.labelRotation="top"===o?-h:h,r.z2=1,r}var bO=["axisLine","axisTickLabel","axisName"],wO=["splitArea","splitLine"],SO=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.axisPointerClass="SingleAxisPointer",e}return e(n,t),n.prototype.render=function(e,n,i,r){var o=this.group;o.removeAll();var a=this._axisGroup;this._axisGroup=new Pi;var s=xO(e),l=new Lw(e,s);k(bO,l.add,l),o.add(this._axisGroup),o.add(l.getGroup()),k(wO,(function(t){e.get([t,"show"])&&MO[t](this,this.group,this._axisGroup,e)}),this),Tu(a,this._axisGroup,e),t.prototype.render.call(this,e,n,i,r)},n.prototype.remove=function(){Uw(this)},n.type="singleAxis",n}(Ww),MO={splitLine:function(t,e,n,i){var r=i.axis;if(!r.scale.isBlank()){var o=i.getModel("splitLine"),a=o.getModel("lineStyle"),s=a.get("color");s=s instanceof Array?s:[s];for(var l=i.coordinateSystem.getRect(),u=r.isHorizontal(),h=[],c=0,p=r.getTicksCoords({tickModel:o}),d=[],f=[],g=0;g<p.length;++g){var y=r.toGlobalCoord(p[g].coord);u?(d[0]=y,d[1]=l.y,f[0]=y,f[1]=l.y+l.height):(d[0]=l.x,d[1]=y,f[0]=l.x+l.width,f[1]=y);var v=c++%s.length;h[v]=h[v]||[],h[v].push(new zl({subPixelOptimize:!0,shape:{x1:d[0],y1:d[1],x2:f[0],y2:f[1]},silent:!0}))}var m=a.getLineStyle(["color"]);for(g=0;g<h.length;++g)e.add(pu(h[g],{style:I({stroke:s[g%s.length]},m),silent:!0}))}},splitArea:function(t,e,n,i){Xw(t,n,i,i)}},IO=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.getCoordSysModel=function(){return this},n.type="singleAxis",n.layoutMode="box",n.defaultOption={left:"5%",top:"5%",right:"5%",bottom:"5%",type:"value",position:"bottom",orient:"horizontal",axisLine:{show:!0,lineStyle:{width:1,type:"solid"}},tooltip:{show:!0},axisTick:{show:!0,length:6,lineStyle:{width:1}},axisLabel:{show:!0,interval:"auto"},splitLine:{show:!0,lineStyle:{type:"dashed",opacity:.2}}},n}(uc);D(IO,g_.prototype);var TO=function(t){function n(e,n,i,r,o){var a=t.call(this,e,n,i)||this;return a.type=r||"value",a.position=o||"bottom",a}return e(n,t),n.prototype.isHorizontal=function(){var t=this.position;return"top"===t||"bottom"===t},n.prototype.pointToData=function(t,e){return this.coordinateSystem.pointToData(t)[0]},n}(B_),CO=function(){function t(t,e,n){this.type="single",this.dimension="single",this.dimensions=["single"],this.axisPointerEnabled=!0,this.model=t,this._init(t,e,n)}return t.prototype._init=function(t,e,n){var i=this.dimension,r=new TO(i,l_(t),[0,0],t.get("type"),t.get("position")),o="category"===r.type;r.onBand=o&&t.get("boundaryGap"),r.inverse=t.get("inverse"),r.orient=t.get("orient"),t.axis=r,r.model=t,r.coordinateSystem=this,this._axis=r},t.prototype.update=function(t,e){t.eachSeries((function(t){if(t.coordinateSystem===this){var e=t.getData();k(e.mapDimensionsAll(this.dimension),(function(t){this._axis.scale.unionExtentFromData(e,t)}),this),s_(this._axis.scale,this._axis.model)}}),this)},t.prototype.resize=function(t,e){this._rect=nc({left:t.get("left"),top:t.get("top"),right:t.get("right"),bottom:t.get("bottom"),width:t.get("width"),height:t.get("height")},{width:e.getWidth(),height:e.getHeight()}),this._adjustAxis()},t.prototype.getRect=function(){return this._rect},t.prototype._adjustAxis=function(){var t=this._rect,e=this._axis,n=e.isHorizontal(),i=n?[0,t.width]:[0,t.height],r=e.reverse?1:0;e.setExtent(i[r],i[1-r]),this._updateAxisTransform(e,n?t.x:t.y)},t.prototype._updateAxisTransform=function(t,e){var n=t.getExtent(),i=n[0]+n[1],r=t.isHorizontal();t.toGlobalCoord=r?function(t){return t+e}:function(t){return i-t+e},t.toLocalCoord=r?function(t){return t-e}:function(t){return i-t+e}},t.prototype.getAxis=function(){return this._axis},t.prototype.getBaseAxis=function(){return this._axis},t.prototype.getAxes=function(){return[this._axis]},t.prototype.getTooltipAxes=function(){return{baseAxes:[this.getAxis()],otherAxes:[]}},t.prototype.containPoint=function(t){var e=this.getRect(),n=this.getAxis();return"horizontal"===n.orient?n.contain(n.toLocalCoord(t[0]))&&t[1]>=e.y&&t[1]<=e.y+e.height:n.contain(n.toLocalCoord(t[1]))&&t[0]>=e.y&&t[0]<=e.y+e.height},t.prototype.pointToData=function(t){var e=this.getAxis();return[e.coordToData(e.toLocalCoord(t["horizontal"===e.orient?0:1]))]},t.prototype.dataToPoint=function(t){var e=this.getAxis(),n=this.getRect(),i=[],r="horizontal"===e.orient?0:1;return t instanceof Array&&(t=t[0]),i[r]=e.toGlobalCoord(e.dataToCoord(+t)),i[1-r]=0===r?n.y+n.height/2:n.x+n.width/2,i},t.prototype.convertToPixel=function(t,e,n){return AO(e)===this?this.dataToPoint(n):null},t.prototype.convertFromPixel=function(t,e,n){return AO(e)===this?this.pointToData(n):null},t}();function AO(t){var e=t.seriesModel,n=t.singleAxisModel;return n&&n.coordinateSystem||e&&e.coordinateSystem}var DO={create:function(t,e){var n=[];return t.eachComponent("singleAxis",(function(i,r){var o=new CO(i,t,e);o.name="single_"+r,o.resize(i,e),i.coordinateSystem=o,n.push(o)})),t.eachSeries((function(t){if("singleAxis"===t.get("coordinateSystem")){var e=t.getReferringComponents("singleAxis",Mr).models[0];t.coordinateSystem=e&&e.coordinateSystem}})),n},dimensions:CO.prototype.dimensions},LO=["x","y"],kO=["width","height"],PO=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.makeElOption=function(t,e,n,i,r){var o=n.axis,a=o.coordinateSystem,s=NO(a,1-RO(o)),l=a.dataToPoint(e)[0],u=i.get("type");if(u&&"none"!==u){var h=uP(i),c=OO[u](o,l,s);c.style=h,t.graphicKey=c.type,t.pointer=c}dP(e,t,xO(n),n,i,r)},n.prototype.getHandleTransform=function(t,e,n){var i=xO(e,{labelInside:!1});i.labelMargin=n.get(["handle","margin"]);var r=pP(e.axis,t,i);return{x:r[0],y:r[1],rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},n.prototype.updateHandleTransform=function(t,e,n,i){var r=n.axis,o=r.coordinateSystem,a=RO(r),s=NO(o,a),l=[t.x,t.y];l[a]+=e[a],l[a]=Math.min(s[1],l[a]),l[a]=Math.max(s[0],l[a]);var u=NO(o,1-a),h=(u[1]+u[0])/2,c=[h,h];return c[a]=l[a],{x:l[0],y:l[1],rotation:t.rotation,cursorPoint:c,tooltipOption:{verticalAlign:"middle"}}},n}(iP),OO={line:function(t,e,n){return{type:"Line",subPixelOptimize:!0,shape:fP([e,n[0]],[e,n[1]],RO(t))}},shadow:function(t,e,n){var i=t.getBandWidth(),r=n[1]-n[0];return{type:"Rect",shape:gP([e-i/2,n[0]],[i,r],RO(t))}}};function RO(t){return t.isHorizontal()?0:1}function NO(t,e){var n=t.getRect();return[n[LO[e]],n[LO[e]]+n[kO[e]]]}var EO=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.type="single",n}(kd);var zO=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.init=function(e,n,i){var r=ac(e);t.prototype.init.apply(this,arguments),BO(e,r)},n.prototype.mergeOption=function(e){t.prototype.mergeOption.apply(this,arguments),BO(this.option,e)},n.prototype.getCellSize=function(){return this.option.cellSize},n.type="calendar",n.defaultOption={zlevel:0,z:2,left:80,top:60,cellSize:20,orient:"horizontal",splitLine:{show:!0,lineStyle:{color:"#000",width:1,type:"solid"}},itemStyle:{color:"#fff",borderWidth:1,borderColor:"#ccc"},dayLabel:{show:!0,firstDay:0,position:"start",margin:"50%",nameMap:"en",color:"#000"},monthLabel:{show:!0,position:"start",margin:5,align:"center",nameMap:"en",formatter:null,color:"#000"},yearLabel:{show:!0,position:null,margin:30,formatter:null,color:"#ccc",fontFamily:"sans-serif",fontWeight:"bolder",fontSize:20}},n}(uc);function BO(t,e){var n,i=t.cellSize;1===(n=V(i)?i:t.cellSize=[i,i]).length&&(n[1]=n[0]);var r=P([0,1],(function(t){return function(t,e){return null!=t[Qh[e][0]]||null!=t[Qh[e][1]]&&null!=t[Qh[e][2]]}(e,t)&&(n[t]="auto"),null!=n[t]&&"auto"!==n[t]}));oc(t,e,{type:"box",ignoreSize:r})}var VO={EN:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],CN:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},FO={EN:["S","M","T","W","T","F","S"],CN:["日","一","二","三","四","五","六"]},GO=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n){var i=this.group;i.removeAll();var r=t.coordinateSystem,o=r.getRangeInfo(),a=r.getOrient();this._renderDayRect(t,o,i),this._renderLines(t,o,a,i),this._renderYearText(t,o,a,i),this._renderMonthText(t,a,i),this._renderWeekText(t,o,a,i)},n.prototype._renderDayRect=function(t,e,n){for(var i=t.coordinateSystem,r=t.getModel("itemStyle").getItemStyle(),o=i.getCellWidth(),a=i.getCellHeight(),s=e.start.time;s<=e.end.time;s=i.getNextNDay(s,1).time){var l=i.dataToRect([s],!1).tl,u=new Za({shape:{x:l[0],y:l[1],width:o,height:a},cursor:"default",style:r});n.add(u)}},n.prototype._renderLines=function(t,e,n,i){var r=this,o=t.coordinateSystem,a=t.getModel(["splitLine","lineStyle"]).getLineStyle(),s=t.get(["splitLine","show"]),l=a.lineWidth;this._tlpoints=[],this._blpoints=[],this._firstDayOfMonth=[],this._firstDayPoints=[];for(var u=e.start,h=0;u.time<=e.end.time;h++){p(u.formatedDate),0===h&&(u=o.getDateInfo(e.start.y+"-"+e.start.m));var c=u.date;c.setMonth(c.getMonth()+1),u=o.getDateInfo(c)}function p(e){r._firstDayOfMonth.push(o.getDateInfo(e)),r._firstDayPoints.push(o.dataToRect([e],!1).tl);var l=r._getLinePointsOfOneWeek(t,e,n);r._tlpoints.push(l[0]),r._blpoints.push(l[l.length-1]),s&&r._drawSplitline(l,a,i)}p(o.getNextNDay(e.end.time,1).formatedDate),s&&this._drawSplitline(r._getEdgesPoints(r._tlpoints,l,n),a,i),s&&this._drawSplitline(r._getEdgesPoints(r._blpoints,l,n),a,i)},n.prototype._getEdgesPoints=function(t,e,n){var i=[t[0].slice(),t[t.length-1].slice()],r="horizontal"===n?0:1;return i[0][r]=i[0][r]-e/2,i[1][r]=i[1][r]+e/2,i},n.prototype._drawSplitline=function(t,e,n){var i=new Rl({z2:20,shape:{points:t},style:e});n.add(i)},n.prototype._getLinePointsOfOneWeek=function(t,e,n){for(var i=t.coordinateSystem,r=i.getDateInfo(e),o=[],a=0;a<7;a++){var s=i.getNextNDay(r.time,a),l=i.dataToRect([s.time],!1);o[2*s.day]=l.tl,o[2*s.day+1]=l["horizontal"===n?"bl":"tr"]}return o},n.prototype._formatterLabel=function(t,e){return"string"==typeof t&&t?(n=t,k(e,(function(t,e){n=n.replace("{"+e+"}",i?Wh(t):t)})),n):"function"==typeof t?t(e):e.nameMap;var n,i},n.prototype._yearTextPositionControl=function(t,e,n,i,r){var o=e[0],a=e[1],s=["center","bottom"];"bottom"===i?(a+=r,s=["center","top"]):"left"===i?o-=r:"right"===i?(o+=r,s=["center","top"]):a-=r;var l=0;return"left"!==i&&"right"!==i||(l=Math.PI/2),{rotation:l,x:o,y:a,style:{align:s[0],verticalAlign:s[1]}}},n.prototype._renderYearText=function(t,e,n,i){var r=t.getModel("yearLabel");if(r.get("show")){var o=r.get("margin"),a=r.get("position");a||(a="horizontal"!==n?"top":"left");var s=[this._tlpoints[this._tlpoints.length-1],this._blpoints[0]],l=(s[0][0]+s[1][0])/2,u=(s[0][1]+s[1][1])/2,h="horizontal"===n?0:1,c={top:[l,s[h][1]],bottom:[l,s[1-h][1]],left:[s[1-h][0],u],right:[s[h][0],u]},p=e.start.y;+e.end.y>+e.start.y&&(p=p+"-"+e.end.y);var d=r.get("formatter"),f={start:e.start.y,end:e.end.y,nameMap:p},g=this._formatterLabel(d,f),y=new Ka({z2:30,style:Vu(r,{text:g})});y.attr(this._yearTextPositionControl(y,c[a],n,a,o)),i.add(y)}},n.prototype._monthTextPositionControl=function(t,e,n,i,r){var o="left",a="top",s=t[0],l=t[1];return"horizontal"===n?(l+=r,e&&(o="center"),"start"===i&&(a="bottom")):(s+=r,e&&(a="middle"),"start"===i&&(o="right")),{x:s,y:l,align:o,verticalAlign:a}},n.prototype._renderMonthText=function(t,e,n){var i=t.getModel("monthLabel");if(i.get("show")){var r=i.get("nameMap"),o=i.get("margin"),a=i.get("position"),s=i.get("align"),l=[this._tlpoints,this._blpoints];G(r)&&(r=VO[r.toUpperCase()]||[]);var u="start"===a?0:1,h="horizontal"===e?0:1;o="start"===a?-o:o;for(var c="center"===s,p=0;p<l[u].length-1;p++){var d=l[u][p].slice(),f=this._firstDayOfMonth[p];if(c){var g=this._firstDayPoints[p];d[h]=(g[h]+l[0][p+1][h])/2}var y=i.get("formatter"),v=r[+f.m-1],m={yyyy:f.y,yy:(f.y+"").slice(2),MM:f.m,M:+f.m,nameMap:v},_=this._formatterLabel(y,m),x=new Ka({z2:30,style:M(Vu(i,{text:_}),this._monthTextPositionControl(d,c,e,a,o))});n.add(x)}}},n.prototype._weekTextPositionControl=function(t,e,n,i,r){var o="center",a="middle",s=t[0],l=t[1],u="start"===n;return"horizontal"===e?(s=s+i+(u?1:-1)*r[0]/2,o=u?"right":"left"):(l=l+i+(u?1:-1)*r[1]/2,a=u?"bottom":"top"),{x:s,y:l,align:o,verticalAlign:a}},n.prototype._renderWeekText=function(t,e,n,i){var r=t.getModel("dayLabel");if(r.get("show")){var o=t.coordinateSystem,a=r.get("position"),s=r.get("nameMap"),l=r.get("margin"),u=o.getFirstDayOfWeek();G(s)&&(s=FO[s.toUpperCase()]||[]);var h=o.getNextNDay(e.end.time,7-e.lweek).time,c=[o.getCellWidth(),o.getCellHeight()];l=Gi(l,c["horizontal"===n?0:1]),"start"===a&&(h=o.getNextNDay(e.start.time,-(7+e.fweek)).time,l=-l);for(var p=0;p<7;p++){var d,f=o.getNextNDay(h,p),g=o.dataToRect([f.time],!1).center;d=Math.abs((p+u)%7);var y=new Ka({z2:30,style:M(Vu(r,{text:s[d]}),this._weekTextPositionControl(g,n,a,l,c))});i.add(y)}}},n.type="calendar",n}(kd),HO=function(){function t(e,n,i){this.type="calendar",this.dimensions=t.dimensions,this.getDimensionsInfo=t.getDimensionsInfo,this._model=e}return t.getDimensionsInfo=function(){return[{name:"time",type:"time"},"value"]},t.prototype.getRangeInfo=function(){return this._rangeInfo},t.prototype.getModel=function(){return this._model},t.prototype.getRect=function(){return this._rect},t.prototype.getCellWidth=function(){return this._sw},t.prototype.getCellHeight=function(){return this._sh},t.prototype.getOrient=function(){return this._orient},t.prototype.getFirstDayOfWeek=function(){return this._firstDayOfWeek},t.prototype.getDateInfo=function(t){var e=(t=$i(t)).getFullYear(),n=t.getMonth()+1,i=n<10?"0"+n:""+n,r=t.getDate(),o=r<10?"0"+r:""+r,a=t.getDay();return{y:e+"",m:i,d:o,day:a=Math.abs((a+7-this.getFirstDayOfWeek())%7),time:t.getTime(),formatedDate:e+"-"+i+"-"+o,date:t}},t.prototype.getNextNDay=function(t,e){return 0===(e=e||0)||(t=new Date(this.getDateInfo(t).time)).setDate(t.getDate()+e),this.getDateInfo(t)},t.prototype.update=function(t,e){this._firstDayOfWeek=+this._model.getModel("dayLabel").get("firstDay"),this._orient=this._model.get("orient"),this._lineWidth=this._model.getModel("itemStyle").getItemStyle().lineWidth||0,this._rangeInfo=this._getRangeInfo(this._initRangeOption());var n=this._rangeInfo.weeks||1,i=["width","height"],r=this._model.getCellSize().slice(),o=this._model.getBoxLayoutParams(),a="horizontal"===this._orient?[n,7]:[7,n];k([0,1],(function(t){u(r,t)&&(o[i[t]]=r[t]*a[t])}));var s={width:e.getWidth(),height:e.getHeight()},l=this._rect=nc(o,s);function u(t,e){return null!=t[e]&&"auto"!==t[e]}k([0,1],(function(t){u(r,t)||(r[t]=l[i[t]]/a[t])})),this._sw=r[0],this._sh=r[1]},t.prototype.dataToPoint=function(t,e){V(t)&&(t=t[0]),null==e&&(e=!0);var n=this.getDateInfo(t),i=this._rangeInfo,r=n.formatedDate;if(e&&!(n.time>=i.start.time&&n.time<i.end.time+864e5))return[NaN,NaN];var o=n.day,a=this._getRangeInfo([i.start.time,r]).nthWeek;return"vertical"===this._orient?[this._rect.x+o*this._sw+this._sw/2,this._rect.y+a*this._sh+this._sh/2]:[this._rect.x+a*this._sw+this._sw/2,this._rect.y+o*this._sh+this._sh/2]},t.prototype.pointToData=function(t){var e=this.pointToDate(t);return e&&e.time},t.prototype.dataToRect=function(t,e){var n=this.dataToPoint(t,e);return{contentShape:{x:n[0]-(this._sw-this._lineWidth)/2,y:n[1]-(this._sh-this._lineWidth)/2,width:this._sw-this._lineWidth,height:this._sh-this._lineWidth},center:n,tl:[n[0]-this._sw/2,n[1]-this._sh/2],tr:[n[0]+this._sw/2,n[1]-this._sh/2],br:[n[0]+this._sw/2,n[1]+this._sh/2],bl:[n[0]-this._sw/2,n[1]+this._sh/2]}},t.prototype.pointToDate=function(t){var e=Math.floor((t[0]-this._rect.x)/this._sw)+1,n=Math.floor((t[1]-this._rect.y)/this._sh)+1,i=this._rangeInfo.range;return"vertical"===this._orient?this._getDateByWeeksAndDay(n,e-1,i):this._getDateByWeeksAndDay(e,n-1,i)},t.prototype.convertToPixel=function(t,e,n){var i=WO(e);return i===this?i.dataToPoint(n):null},t.prototype.convertFromPixel=function(t,e,n){var i=WO(e);return i===this?i.pointToData(n):null},t.prototype.containPoint=function(t){return console.warn("Not implemented."),!1},t.prototype._initRangeOption=function(){var t,e=this._model.get("range");if(V(e)&&1===e.length&&(e=e[0]),V(e))t=e;else{var n=e.toString();if(/^\d{4}$/.test(n)&&(t=[n+"-01-01",n+"-12-31"]),/^\d{4}[\/|-]\d{1,2}$/.test(n)){var i=this.getDateInfo(n),r=i.date;r.setMonth(r.getMonth()+1);var o=this.getNextNDay(r,-1);t=[i.formatedDate,o.formatedDate]}/^\d{4}[\/|-]\d{1,2}[\/|-]\d{1,2}$/.test(n)&&(t=[n,n])}if(!t)return e;var a=this._getRangeInfo(t);return a.start.time>a.end.time&&t.reverse(),t},t.prototype._getRangeInfo=function(t){var e,n=[this.getDateInfo(t[0]),this.getDateInfo(t[1])];n[0].time>n[1].time&&(e=!0,n.reverse());var i=Math.floor(n[1].time/864e5)-Math.floor(n[0].time/864e5)+1,r=new Date(n[0].time),o=r.getDate(),a=n[1].date.getDate();r.setDate(o+i-1);var s=r.getDate();if(s!==a)for(var l=r.getTime()-n[1].time>0?1:-1;(s=r.getDate())!==a&&(r.getTime()-n[1].time)*l>0;)i-=l,r.setDate(s-l);var u=Math.floor((i+n[0].day+6)/7),h=e?1-u:u-1;return e&&n.reverse(),{range:[n[0].formatedDate,n[1].formatedDate],start:n[0],end:n[1],allDay:i,weeks:u,nthWeek:h,fweek:n[0].day,lweek:n[1].day}},t.prototype._getDateByWeeksAndDay=function(t,e,n){var i=this._getRangeInfo(n);if(t>i.weeks||0===t&&e<i.fweek||t===i.weeks&&e>i.lweek)return null;var r=7*(t-1)-i.fweek+e,o=new Date(i.start.time);return o.setDate(+i.start.d+r),this.getDateInfo(o)},t.create=function(e,n){var i=[];return e.eachComponent("calendar",(function(r){var o=new t(r,e,n);i.push(o),r.coordinateSystem=o})),e.eachSeries((function(t){"calendar"===t.get("coordinateSystem")&&(t.coordinateSystem=i[t.get("calendarIndex")||0])})),i},t.dimensions=["time","value"],t}();function WO(t){var e=t.calendarModel,n=t.seriesModel;return e?e.coordinateSystem:n?n.coordinateSystem:null}var YO=br(),XO={path:null,compoundPath:null,group:Pi,image:Fa,text:Ka},UO=function(t){var e=t.graphic;V(e)?e[0]&&e[0].elements?t.graphic=[t.graphic[0]]:t.graphic=[{elements:e}]:e&&!e.elements&&(t.graphic=[{elements:[e]}])},ZO=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.mergeOption=function(e,n){var i=this.option.elements;this.option.elements=null,t.prototype.mergeOption.call(this,e,n),this.option.elements=i},n.prototype.optionUpdated=function(t,e){var n=this.option,i=(e?n:t).elements,r=n.elements=e?[]:n.elements,o=[];this._flatten(i,o,null);var a=fr(r,o,"normalMerge"),s=this._elOptionsToUpdate=[];k(a,(function(t,e){var n=t.newOption;n&&(s.push(n),function(t,e){var n=t.existing;if(e.id=t.keyInfo.id,!e.type&&n&&(e.type=n.type),null==e.parentId){var i=e.parentOption;i?e.parentId=i.id:n&&(e.parentId=n.parentId)}e.parentOption=null}(t,n),function(t,e,n){var i=M({},n),r=t[e],o=n.$action||"merge";if("merge"===o){if(r)w(r,i,!0),oc(r,i,{ignoreSize:!0}),sc(n,r);else t[e]=i}else"replace"===o?t[e]=i:"remove"===o&&r&&(t[e]=null)}(r,e,n),function(t,e){if(!t)return;if(t.hv=e.hv=[$O(e,["left","right"]),$O(e,["top","bottom"])],"group"===t.type){var n=t,i=e;null==n.width&&(n.width=i.width=0),null==n.height&&(n.height=i.height=0)}}(r[e],n))}),this);for(var l=r.length-1;l>=0;l--)null==r[l]?r.splice(l,1):delete r[l].$action},n.prototype._flatten=function(t,e,n){k(t,(function(t){if(t){n&&(t.parentOption=n),e.push(t);var i=t.children;"group"===t.type&&i&&this._flatten(i,e,t),delete t.children}}),this)},n.prototype.useElOptionsToUpdate=function(){var t=this._elOptionsToUpdate;return this._elOptionsToUpdate=null,t},n.type="graphic",n.defaultOption={elements:[]},n}(uc),jO=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.init=function(){this._elMap=lt()},n.prototype.render=function(t,e,n){t!==this._lastGraphicModel&&this._clear(),this._lastGraphicModel=t,this._updateElements(t),this._relocate(t,n)},n.prototype._updateElements=function(t){var e=t.useElOptionsToUpdate();if(e){var n=this._elMap,i=this.group;k(e,(function(e){var r=vr(e.id,null),o=null!=r?n.get(r):null,a=vr(e.parentId,null),s=null!=a?n.get(a):i,l=e.type,u=e.style;"text"===l&&u&&e.hv&&e.hv[1]&&(u.textVerticalAlign=u.textBaseline=u.verticalAlign=u.align=null);var h=e.textContent,c=e.textConfig;if(u&&AL(u,l,!!c,!!h)){var p=DL(u,l,!0);!c&&p.textConfig&&(c=e.textConfig=p.textConfig),!h&&p.textContent&&(h=p.textContent)}var d=function(t){return t=M({},t),k(["id","parentId","$action","hv","bounding","textContent"].concat(Jh),(function(e){delete t[e]})),t}(e);var f=e.$action||"merge";"merge"===f?o?o.attr(d):qO(r,s,d,n):"replace"===f?(KO(o,n),qO(r,s,d,n)):"remove"===f&&KO(o,n);var g=n.get(r);if(g&&h)if("merge"===f){var y=g.getTextContent();y?y.attr(h):g.setTextContent(new Ka(h))}else"replace"===f&&g.setTextContent(new Ka(h));if(g){var v=YO(g);v.__ecGraphicWidthOption=e.width,v.__ecGraphicHeightOption=e.height,function(t,e,n){var i=rs(t).eventData;t.silent||t.ignore||i||(i=rs(t).eventData={componentType:"graphic",componentIndex:e.componentIndex,name:t.name});i&&(i.info=n.info)}(g,t,e)}}))}},n.prototype._relocate=function(t,e){for(var n=t.option.elements,i=this.group,r=this._elMap,o=e.getWidth(),a=e.getHeight(),s=0;s<n.length;s++){if((d=null!=(p=vr((c=n[s]).id,null))?r.get(p):null)&&d.isGroup){var l=(f=d.parent)===i,u=YO(d),h=YO(f);u.__ecGraphicWidth=Gi(u.__ecGraphicWidthOption,l?o:h.__ecGraphicWidth)||0,u.__ecGraphicHeight=Gi(u.__ecGraphicHeightOption,l?a:h.__ecGraphicHeight)||0}}for(s=n.length-1;s>=0;s--){var c,p,d;if(d=null!=(p=vr((c=n[s]).id,null))?r.get(p):null){var f=d.parent;h=YO(f);ic(d,c,f===i?{width:o,height:a}:{width:h.__ecGraphicWidth,height:h.__ecGraphicHeight},null,{hv:c.hv,boundingMode:c.bounding})}}},n.prototype._clear=function(){var t=this._elMap;t.each((function(e){KO(e,t)})),this._elMap=lt()},n.prototype.dispose=function(){this._clear()},n.type="graphic",n}(kd);function qO(t,e,n,i){var r=n.type;var o=ct(XO,r)?XO[r]:lu(r);var a=new o(n);e.add(a),i.set(t,a),YO(a).__ecGraphicId=t}function KO(t,e){var n=t&&t.parent;n&&("group"===t.type&&t.traverse((function(t){KO(t,e)})),e.removeKey(YO(t).__ecGraphicId),n.remove(t))}function $O(t,e){var n;return k(e,(function(e){null!=t[e]&&"auto"!==t[e]&&(n=!0)})),n}var JO=["x","y","radius","angle","single"],QO=["cartesian2d","polar","singleAxis"];function tR(t){return t+"Axis"}function eR(t,e){var n,i=lt(),r=[],o=lt();t.eachComponent({mainType:"dataZoom",query:e},(function(t){o.get(t.uid)||s(t)}));do{n=!1,t.eachComponent("dataZoom",a)}while(n);function a(t){!o.get(t.uid)&&function(t){var e=!1;return t.eachTargetAxis((function(t,n){var r=i.get(t);r&&r[n]&&(e=!0)})),e}(t)&&(s(t),n=!0)}function s(t){o.set(t.uid,!0),r.push(t),t.eachTargetAxis((function(t,e){(i.get(t)||i.set(t,[]))[e]=!0}))}return r}function nR(t){var e=t.ecModel,n={infoList:[],infoMap:lt()};return t.eachTargetAxis((function(t,i){var r=e.getComponent(tR(t),i);if(r){var o=r.getCoordSysModel();if(o){var a=o.uid,s=n.infoMap.get(a);s||(s={model:o,axisModels:[]},n.infoList.push(s),n.infoMap.set(a,s)),s.axisModels.push(r)}}})),n}var iR=function(){function t(){this.indexList=[],this.indexMap=[]}return t.prototype.add=function(t){this.indexMap[t]||(this.indexList.push(t),this.indexMap[t]=!0)},t}(),rR=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e._autoThrottle=!0,e._noTarget=!0,e._rangePropMode=["percent","percent"],e}return e(n,t),n.prototype.init=function(t,e,n){var i=oR(t);this.settledOption=i,this.mergeDefaultAndTheme(t,n),this._doInit(i)},n.prototype.mergeOption=function(t){var e=oR(t);w(this.option,t,!0),w(this.settledOption,e,!0),this._doInit(e)},n.prototype._doInit=function(t){var e=this.option;this._setDefaultThrottle(t),this._updateRangeUse(t);var n=this.settledOption;k([["start","startValue"],["end","endValue"]],(function(t,i){"value"===this._rangePropMode[i]&&(e[t[0]]=n[t[0]]=null)}),this),this._resetTarget()},n.prototype._resetTarget=function(){var t=this.get("orient",!0),e=this._targetAxisInfoMap=lt();this._fillSpecifiedTargetAxis(e)?this._orient=t||this._makeAutoOrientByTargetAxis():(this._orient=t||"horizontal",this._fillAutoTargetAxisByOrient(e,this._orient)),this._noTarget=!0,e.each((function(t){t.indexList.length&&(this._noTarget=!1)}),this)},n.prototype._fillSpecifiedTargetAxis=function(t){var e=!1;return k(JO,(function(n){var i=this.getReferringComponents(tR(n),Ir);if(i.specified){e=!0;var r=new iR;k(i.models,(function(t){r.add(t.componentIndex)})),t.set(n,r)}}),this),e},n.prototype._fillAutoTargetAxisByOrient=function(t,e){var n=this.ecModel,i=!0;if(i){var r="vertical"===e?"y":"x";o(n.findComponents({mainType:r+"Axis"}),r)}i&&o(n.findComponents({mainType:"singleAxis",filter:function(t){return t.get("orient",!0)===e}}),"single");function o(e,n){var r=e[0];if(r){var o=new iR;if(o.add(r.componentIndex),t.set(n,o),i=!1,"x"===n||"y"===n){var a=r.getReferringComponents("grid",Mr).models[0];a&&k(e,(function(t){r.componentIndex!==t.componentIndex&&a===t.getReferringComponents("grid",Mr).models[0]&&o.add(t.componentIndex)}))}}}i&&k(JO,(function(e){if(i){var r=n.findComponents({mainType:tR(e),filter:function(t){return"category"===t.get("type",!0)}});if(r[0]){var o=new iR;o.add(r[0].componentIndex),t.set(e,o),i=!1}}}),this)},n.prototype._makeAutoOrientByTargetAxis=function(){var t;return this.eachTargetAxis((function(e){!t&&(t=e)}),this),"y"===t?"vertical":"horizontal"},n.prototype._setDefaultThrottle=function(t){if(t.hasOwnProperty("throttle")&&(this._autoThrottle=!1),this._autoThrottle){var e=this.ecModel.option;this.option.throttle=e.animation&&e.animationDurationUpdate>0?100:20}},n.prototype._updateRangeUse=function(t){var e=this._rangePropMode,n=this.get("rangeMode");k([["start","startValue"],["end","endValue"]],(function(i,r){var o=null!=t[i[0]],a=null!=t[i[1]];o&&!a?e[r]="percent":!o&&a?e[r]="value":n?e[r]=n[r]:o&&(e[r]="percent")}))},n.prototype.noTarget=function(){return this._noTarget},n.prototype.getFirstTargetAxisModel=function(){var t;return this.eachTargetAxis((function(e,n){null==t&&(t=this.ecModel.getComponent(tR(e),n))}),this),t},n.prototype.eachTargetAxis=function(t,e){this._targetAxisInfoMap.each((function(n,i){k(n.indexList,(function(n){t.call(e,i,n)}))}))},n.prototype.getAxisProxy=function(t,e){var n=this.getAxisModel(t,e);if(n)return n.__dzAxisProxy},n.prototype.getAxisModel=function(t,e){var n=this._targetAxisInfoMap.get(t);if(n&&n.indexMap[e])return this.ecModel.getComponent(tR(t),e)},n.prototype.setRawRange=function(t){var e=this.option,n=this.settledOption;k([["start","startValue"],["end","endValue"]],(function(i){null==t[i[0]]&&null==t[i[1]]||(e[i[0]]=n[i[0]]=t[i[0]],e[i[1]]=n[i[1]]=t[i[1]])}),this),this._updateRangeUse(t)},n.prototype.setCalculatedRange=function(t){var e=this.option;k(["start","startValue","end","endValue"],(function(n){e[n]=t[n]}))},n.prototype.getPercentRange=function(){var t=this.findRepresentativeAxisProxy();if(t)return t.getDataPercentWindow()},n.prototype.getValueRange=function(t,e){if(null!=t||null!=e)return this.getAxisProxy(t,e).getDataValueWindow();var n=this.findRepresentativeAxisProxy();return n?n.getDataValueWindow():void 0},n.prototype.findRepresentativeAxisProxy=function(t){if(t)return t.__dzAxisProxy;for(var e,n=this._targetAxisInfoMap.keys(),i=0;i<n.length;i++)for(var r=n[i],o=this._targetAxisInfoMap.get(r),a=0;a<o.indexList.length;a++){var s=this.getAxisProxy(r,o.indexList[a]);if(s.hostedBy(this))return s;e||(e=s)}return e},n.prototype.getRangePropMode=function(){return this._rangePropMode.slice()},n.prototype.getOrient=function(){return this._orient},n.type="dataZoom",n.dependencies=["xAxis","yAxis","radiusAxis","angleAxis","singleAxis","series","toolbox"],n.defaultOption={zlevel:0,z:4,filterMode:"filter",start:0,end:100},n}(uc);function oR(t){var e={};return k(["start","end","startValue","endValue","throttle"],(function(n){t.hasOwnProperty(n)&&(e[n]=t[n])})),e}var aR=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.type="dataZoom.select",n}(rR),sR=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n,i){this.dataZoomModel=t,this.ecModel=e,this.api=n},n.type="dataZoom",n}(kd),lR=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.type="dataZoom.select",n}(sR),uR=k,hR=Wi,cR=function(){function t(t,e,n,i){this._dimName=t,this._axisIndex=e,this.ecModel=i,this._dataZoomModel=n}return t.prototype.hostedBy=function(t){return this._dataZoomModel===t},t.prototype.getDataValueWindow=function(){return this._valueWindow.slice()},t.prototype.getDataPercentWindow=function(){return this._percentWindow.slice()},t.prototype.getTargetSeriesModels=function(){var t=[];return this.ecModel.eachSeries((function(e){if(function(t){var e=t.get("coordinateSystem");return C(QO,e)>=0}(e)){var n=tR(this._dimName),i=e.getReferringComponents(n,Mr).models[0];i&&this._axisIndex===i.componentIndex&&t.push(e)}}),this),t},t.prototype.getAxisModel=function(){return this.ecModel.getComponent(this._dimName+"Axis",this._axisIndex)},t.prototype.getMinMaxSpan=function(){return b(this._minMaxSpan)},t.prototype.calculateDataWindow=function(t){var e,n=this._dataExtent,i=this.getAxisModel().axis.scale,r=this._dataZoomModel.getRangePropMode(),o=[0,100],a=[],s=[];uR(["start","end"],(function(l,u){var h=t[l],c=t[l+"Value"];"percent"===r[u]?(null==h&&(h=o[u]),c=i.parse(Fi(h,o,n))):(e=!0,h=Fi(c=null==c?n[u]:i.parse(c),n,o)),s[u]=c,a[u]=h})),hR(s),hR(a);var l=this._minMaxSpan;function u(t,e,n,r,o){var a=o?"Span":"ValueSpan";yC(0,t,n,"all",l["min"+a],l["max"+a]);for(var s=0;s<2;s++)e[s]=Fi(t[s],n,r,!0),o&&(e[s]=i.parse(e[s]))}return e?u(s,a,n,o,!1):u(a,s,o,n,!0),{valueWindow:s,percentWindow:a}},t.prototype.reset=function(t){if(t===this._dataZoomModel){var e=this.getTargetSeriesModels();this._dataExtent=function(t,e,n){var i=[1/0,-1/0];uR(n,(function(t){!function(t,e,n){e&&k(f_(e,n),(function(n){var i=e.getApproximateExtent(n);i[0]<t[0]&&(t[0]=i[0]),i[1]>t[1]&&(t[1]=i[1])}))}(i,t.getData(),e)}));var r=t.getAxisModel(),o=r_(r.axis.scale,r,i).calculate();return[o.min,o.max]}(this,this._dimName,e),this._updateMinMaxSpan();var n=this.calculateDataWindow(t.settledOption);this._valueWindow=n.valueWindow,this._percentWindow=n.percentWindow,this._setAxisModel()}},t.prototype.filterData=function(t,e){if(t===this._dataZoomModel){var n=this._dimName,i=this.getTargetSeriesModels(),r=t.get("filterMode"),o=this._valueWindow;"none"!==r&&uR(i,(function(t){var e=t.getData(),i=e.mapDimensionsAll(n);i.length&&("weakFilter"===r?e.filterSelf((function(t){for(var n,r,a,s=0;s<i.length;s++){var l=e.get(i[s],t),u=!isNaN(l),h=l<o[0],c=l>o[1];if(u&&!h&&!c)return!0;u&&(a=!0),h&&(n=!0),c&&(r=!0)}return a&&n&&r})):uR(i,(function(n){if("empty"===r)t.setData(e=e.map(n,(function(t){return function(t){return t>=o[0]&&t<=o[1]}(t)?t:NaN})));else{var i={};i[n]=o,e.selectRange(i)}})),uR(i,(function(t){e.setApproximateExtent(o,t)})))}))}},t.prototype._updateMinMaxSpan=function(){var t=this._minMaxSpan={},e=this._dataZoomModel,n=this._dataExtent;uR(["min","max"],(function(i){var r=e.get(i+"Span"),o=e.get(i+"ValueSpan");null!=o&&(o=this.getAxisModel().axis.scale.parse(o)),null!=o?r=Fi(n[0]+o,n,[0,100],!0):null!=r&&(o=Fi(r,[0,100],n,!0)-n[0]),t[i+"Span"]=r,t[i+"ValueSpan"]=o}),this)},t.prototype._setAxisModel=function(){var t=this.getAxisModel(),e=this._percentWindow,n=this._valueWindow;if(e){var i=Ui(n,[0,500]);i=Math.min(i,20);var r=t.axis.scale.rawExtentInfo;0!==e[0]&&r.setDeterminedMinMax("min",+n[0].toFixed(i)),100!==e[1]&&r.setDeterminedMinMax("max",+n[1].toFixed(i)),r.freeze()}},t}();var pR={getTargetSeries:function(t){function e(e){t.eachComponent("dataZoom",(function(n){n.eachTargetAxis((function(i,r){var o=t.getComponent(tR(i),r);e(i,r,o,n)}))}))}e((function(t,e,n,i){n.__dzAxisProxy=null}));var n=[];e((function(e,i,r,o){r.__dzAxisProxy||(r.__dzAxisProxy=new cR(e,i,o,t),n.push(r.__dzAxisProxy))}));var i=lt();return k(n,(function(t){k(t.getTargetSeriesModels(),(function(t){i.set(t.uid,t)}))})),i},overallReset:function(t,e){t.eachComponent("dataZoom",(function(t){t.eachTargetAxis((function(e,n){t.getAxisProxy(e,n).reset(t)})),t.eachTargetAxis((function(n,i){t.getAxisProxy(n,i).filterData(t,e)}))})),t.eachComponent("dataZoom",(function(t){var e=t.findRepresentativeAxisProxy();if(e){var n=e.getDataPercentWindow(),i=e.getDataValueWindow();t.setCalculatedRange({start:n[0],end:n[1],startValue:i[0],endValue:i[1]})}}))}};var dR=!1;function fR(t){dR||(dR=!0,t.registerProcessor(t.PRIORITY.PROCESSOR.FILTER,pR),function(t){t.registerAction("dataZoom",(function(t,e){k(eR(e,t),(function(e){e.setRawRange({start:t.start,end:t.end,startValue:t.startValue,endValue:t.endValue})}))}))}(t),t.registerSubTypeDefaulter("dataZoom",(function(){return"slider"})))}function gR(t){t.registerComponentModel(aR),t.registerComponentView(lR),fR(t)}var yR=function(){},vR={};function mR(t,e){vR[t]=e}function _R(t){return vR[t]}var xR=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.optionUpdated=function(){t.prototype.optionUpdated.apply(this,arguments);var e=this.ecModel;k(this.option.feature,(function(t,n){var i=_R(n);i&&(i.getDefaultOption&&(i.defaultOption=i.getDefaultOption(e)),w(t,i.defaultOption))}))},n.type="toolbox",n.layoutMode={type:"box",ignoreSize:!0},n.defaultOption={show:!0,z:6,zlevel:0,orient:"horizontal",left:"right",top:"top",backgroundColor:"transparent",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemSize:15,itemGap:8,showTitle:!0,iconStyle:{borderColor:"#666",color:"none"},emphasis:{iconStyle:{borderColor:"#3E98C5"}},tooltip:{show:!1}},n}(uc);function bR(t,e){var n=Fh(e.get("padding")),i=e.getItemStyle(["color","opacity"]);return i.fill=e.get("backgroundColor"),t=new Za({shape:{x:t.x-n[3],y:t.y-n[0],width:t.width+n[1]+n[3],height:t.height+n[0]+n[2],r:e.get("borderRadius")},style:i,silent:!0,z2:-1})}var wR=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.render=function(t,e,n,i){var r=this.group;if(r.removeAll(),t.get("show")){var o=+t.get("itemSize"),a=t.get("feature")||{},s=this._features||(this._features={}),l=[];k(a,(function(t,e){l.push(e)})),new Cv(this._featureNames||[],l).add(u).update(u).remove(B(u,null)).execute(),this._featureNames=l,function(t,e,n){var i=e.getBoxLayoutParams(),r=e.get("padding"),o={width:n.getWidth(),height:n.getHeight()},a=nc(i,o,r);ec(e.get("orient"),t,e.get("itemGap"),a.width,a.height),ic(t,i,o,r)}(r,t,n),r.add(bR(r.getBoundingRect(),t)),r.eachChild((function(t){var e=t.__title,i=t.ensureState("emphasis"),a=i.textConfig||(i.textConfig={}),s=t.getTextContent(),l=s&&s.states.emphasis;if(l&&!F(l)&&e){var u=l.style||(l.style={}),h=Bn(e,Ka.makeFont(u)),c=t.x+r.x,p=!1;t.y+r.y+o+h.height>n.getHeight()&&(a.position="top",p=!0);var d=p?-5-h.height:o+8;c+h.width/2>n.getWidth()?(a.position=["100%",d],u.align="right"):c-h.width/2<0&&(a.position=[0,d],u.align="left")}}))}function u(u,h){var c,p=l[u],d=l[h],f=a[p],g=new ah(f,t,t.ecModel);if(i&&null!=i.newTitle&&i.featureName===p&&(f.title=i.newTitle),p&&!d){if(function(t){return 0===t.indexOf("my")}(p))c={onclick:g.option.onclick,featureName:p};else{var y=_R(p);if(!y)return;c=new y}s[p]=c}else if(!(c=s[d]))return;if(c.uid=lh("toolbox-feature"),c.model=g,c.ecModel=e,c.api=n,c instanceof yR){if(!p&&d)return void(c.dispose&&c.dispose(e,n));if(!g.get("show")||c.unusable)return void(c.remove&&c.remove(e,n))}!function(i,a,s){var l,u,h=i.getModel("iconStyle"),c=i.getModel(["emphasis","iconStyle"]),p=a instanceof yR&&a.getIcons?a.getIcons():i.get("icon"),d=i.get("title")||{};"string"==typeof p?(l={})[s]=p:l=p;"string"==typeof d?(u={})[s]=d:u=d;var f=i.iconPaths={};k(l,(function(s,l){var p=Du(s,{},{x:-o/2,y:-o/2,width:o,height:o});p.setStyle(h.getItemStyle()),p.ensureState("emphasis").style=c.getItemStyle();var d=new Ka({style:{text:u[l],align:c.get("textAlign"),borderRadius:c.get("textBorderRadius"),padding:c.get("textPadding"),fill:null},ignore:!0});p.setTextContent(d);var g=t.getModel("tooltip");g&&g.get("show")&&(p.tooltip=M({content:u[l],formatter:g.get("formatter",!0)||function(){return u[l]},formatterParams:{componentType:"toolbox",name:l,title:u[l],$vars:["name","title"]},position:g.get("position",!0)||"bottom"},g.option)),p.__title=u[l],p.on("mouseover",(function(){var e=c.getItemStyle(),n="vertical"===t.get("orient")?null==t.get("right")?"right":"left":null==t.get("bottom")?"bottom":"top";d.setStyle({fill:c.get("textFill")||e.fill||e.stroke||"#000",backgroundColor:c.get("textBackgroundColor")}),p.setTextConfig({position:c.get("textPosition")||n}),d.ignore=!t.get("showTitle"),Is(this)})).on("mouseout",(function(){"emphasis"!==i.get(["iconStatus",l])&&Ts(this),d.hide()})),("emphasis"===i.get(["iconStatus",l])?Is:Ts)(p),r.add(p),p.on("click",z(a.onclick,a,e,n,l)),f[l]=p}))}(g,c,p),g.setIconStatus=function(t,e){var n=this.option,i=this.iconPaths;n.iconStatus=n.iconStatus||{},n.iconStatus[t]=e,i[t]&&("emphasis"===e?Is:Ts)(i[t])},c instanceof yR&&c.render&&c.render(g,e,n,i)}},n.prototype.updateView=function(t,e,n,i){k(this._features,(function(t){t instanceof yR&&t.updateView&&t.updateView(t.model,e,n,i)}))},n.prototype.remove=function(t,e){k(this._features,(function(n){n instanceof yR&&n.remove&&n.remove(t,e)})),this.group.removeAll()},n.prototype.dispose=function(t,e){k(this._features,(function(n){n instanceof yR&&n.dispose&&n.dispose(t,e)}))},n.type="toolbox",n}(kd);var SR=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.onclick=function(t,e){var n=this.model,i=n.get("name")||t.get("title.0.text")||"echarts",r="svg"===e.getZr().painter.getType(),a=r?"svg":n.get("type",!0)||"png",s=e.getConnectedDataURL({type:a,backgroundColor:n.get("backgroundColor",!0)||t.get("backgroundColor")||"#fff",connectedBackgroundColor:n.get("connectedBackgroundColor"),excludeComponents:n.get("excludeComponents"),pixelRatio:n.get("pixelRatio")});if("function"!=typeof MouseEvent||!o.browser.newEdge&&(o.browser.ie||o.browser.edge))if(window.navigator.msSaveOrOpenBlob||r){var l=s.split(","),u=l[0].indexOf("base64")>-1,h=r?decodeURIComponent(l[1]):l[1];u&&(h=atob(h));var c=i+"."+a;if(window.navigator.msSaveOrOpenBlob){for(var p=h.length,d=new Uint8Array(p);p--;)d[p]=h.charCodeAt(p);var f=new Blob([d]);window.navigator.msSaveOrOpenBlob(f,c)}else{var g=document.createElement("iframe");document.body.appendChild(g);var y=g.contentWindow,v=y.document;v.open("image/svg+xml","replace"),v.write(h),v.close(),y.focus(),v.execCommand("SaveAs",!0,c),document.body.removeChild(g)}}else{var m=n.get("lang"),_='<body style="margin:0;"><img src="'+s+'" style="max-width:100%;" title="'+(m&&m[0]||"")+'" /></body>',x=window.open();x.document.write(_),x.document.title=i}else{var b=document.createElement("a");b.download=i+"."+a,b.target="_blank",b.href=s;var w=new MouseEvent("click",{view:document.defaultView,bubbles:!0,cancelable:!1});b.dispatchEvent(w)}},n.getDefaultOption=function(t){return{show:!0,icon:"M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0",title:t.getLocale(["toolbox","saveAsImage","title"]),type:"png",connectedBackgroundColor:"#fff",name:"",excludeComponents:["toolbox"],pixelRatio:1,lang:t.getLocale(["toolbox","saveAsImage","lang"])}},n}(yR);SR.prototype.unusable=!o.canvasSupported;var MR=[["line","bar"],["stack"]],IR=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.getIcons=function(){var t=this.model,e=t.get("icon"),n={};return k(t.get("type"),(function(t){e[t]&&(n[t]=e[t])})),n},n.getDefaultOption=function(t){return{show:!0,type:[],icon:{line:"M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4",bar:"M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7",stack:"M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z"},title:t.getLocale(["toolbox","magicType","title"]),option:{},seriesIndex:{}}},n.prototype.onclick=function(t,e,n){var i=this.model,r=i.get(["seriesIndex",n]);if(TR[n]){var o,a={series:[]};k(MR,(function(t){C(t,n)>=0&&k(t,(function(t){i.setIconStatus(t,"normal")}))})),i.setIconStatus(n,"emphasis"),t.eachComponent({mainType:"series",query:null==r?null:{seriesIndex:r}},(function(t){var e=t.subType,r=t.id,o=TR[n](e,r,t,i);o&&(I(o,t.option),a.series.push(o));var s=t.coordinateSystem;if(s&&"cartesian2d"===s.type&&("line"===n||"bar"===n)){var l=s.getAxesByScale("ordinal")[0];if(l){var u=l.dim+"Axis",h=t.getReferringComponents(u,Mr).models[0].componentIndex;a[u]=a[u]||[];for(var c=0;c<=h;c++)a[u][h]=a[u][h]||{};a[u][h].boundaryGap="bar"===n}}})),"stack"===n&&(o=w({stack:i.option.title.tiled,tiled:i.option.title.stack},i.option.title)),e.dispatchAction({type:"changeMagicType",currentType:n,newOption:a,newTitle:o,featureName:"magicType"})}},n}(yR),TR={line:function(t,e,n,i){if("bar"===t)return w({id:e,type:"line",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},i.get(["option","line"])||{},!0)},bar:function(t,e,n,i){if("line"===t)return w({id:e,type:"bar",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},i.get(["option","bar"])||{},!0)},stack:function(t,e,n,i){var r="__ec_magicType_stack__"===n.get("stack");if("line"===t||"bar"===t)return i.setIconStatus("stack",r?"normal":"emphasis"),w({id:e,stack:r?"":"__ec_magicType_stack__"},i.get(["option","stack"])||{},!0)}};uv({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},(function(t,e){e.mergeOption(t.newOption)}));var CR=new Array(60).join("-");function AR(t){return t.replace(/^\s\s*/,"").replace(/\s\s*$/,"")}var DR=new RegExp("[\t]+","g");function LR(t,e){var n=t.split(new RegExp("\n*"+CR+"\n*","g")),i={series:[]};return k(n,(function(t,n){if(function(t){if(t.slice(0,t.indexOf("\n")).indexOf("\t")>=0)return!0}(t)){var r=function(t){for(var e=t.split(/\n+/g),n=[],i=P(AR(e.shift()).split(DR),(function(t){return{name:t,data:[]}})),r=0;r<e.length;r++){var o=AR(e[r]).split(DR);n.push(o.shift());for(var a=0;a<o.length;a++)i[a]&&(i[a].data[r]=o[a])}return{series:i,categories:n}}(t),o=e[n],a=o.axisDim+"Axis";o&&(i[a]=i[a]||[],i[a][o.axisIndex]={data:r.categories},i.series=i.series.concat(r.series))}else{r=function(t){for(var e=t.split(/\n+/g),n=AR(e.shift()),i=[],r=0;r<e.length;r++){var o=AR(e[r]);if(o){var a=o.split(DR),s="",l=void 0,u=!1;isNaN(a[0])?(u=!0,s=a[0],a=a.slice(1),i[r]={name:s,value:[]},l=i[r].value):l=i[r]=[];for(var h=0;h<a.length;h++)l.push(+a[h]);1===l.length&&(u?i[r].value=l[0]:i[r]=l[0])}}return{name:n,data:i}}(t);i.series.push(r)}})),i}var kR=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.onclick=function(t,e){var n=e.getDom(),i=this.model;this._dom&&n.removeChild(this._dom);var r=document.createElement("div");r.style.cssText="position:absolute;left:5px;top:5px;bottom:5px;right:5px;",r.style.backgroundColor=i.get("backgroundColor")||"#fff";var o=document.createElement("h4"),a=i.get("lang")||[];o.innerHTML=a[0]||i.get("title"),o.style.cssText="margin: 10px 20px;",o.style.color=i.get("textColor");var s=document.createElement("div"),l=document.createElement("textarea");s.style.cssText="display:block;width:100%;overflow:auto;";var u=i.get("optionToContent"),h=i.get("contentToOption"),c=function(t){var e,n,i,r=function(t){var e={},n=[],i=[];return t.eachRawSeries((function(t){var r=t.coordinateSystem;if(!r||"cartesian2d"!==r.type&&"polar"!==r.type)n.push(t);else{var o=r.getBaseAxis();if("category"===o.type){var a=o.dim+"_"+o.index;e[a]||(e[a]={categoryAxis:o,valueAxis:r.getOtherAxis(o),series:[]},i.push({axisDim:o.dim,axisIndex:o.index})),e[a].series.push(t)}else n.push(t)}})),{seriesGroupByCategoryAxis:e,other:n,meta:i}}(t);return{value:R([(n=r.seriesGroupByCategoryAxis,i=[],k(n,(function(t,e){var n=t.categoryAxis,r=t.valueAxis.dim,o=[" "].concat(P(t.series,(function(t){return t.name}))),a=[n.model.getCategories()];k(t.series,(function(t){var e=t.getRawData();a.push(t.getRawData().mapArray(e.mapDimension(r),(function(t){return t})))}));for(var s=[o.join("\t")],l=0;l<a[0].length;l++){for(var u=[],h=0;h<a.length;h++)u.push(a[h][l]);s.push(u.join("\t"))}i.push(s.join("\n"))})),i.join("\n\n"+CR+"\n\n")),(e=r.other,P(e,(function(t){var e=t.getRawData(),n=[t.name],i=[];return e.each(e.dimensions,(function(){for(var t=arguments.length,r=arguments[t-1],o=e.getName(r),a=0;a<t-1;a++)i[a]=arguments[a];n.push((o?o+"\t":"")+i.join("\t"))})),n.join("\n")})).join("\n\n"+CR+"\n\n"))],(function(t){return!!t.replace(/[\n\t\s]/g,"")})).join("\n\n"+CR+"\n\n"),meta:r.meta}}(t);if("function"==typeof u){var p=u(e.getOption());"string"==typeof p?s.innerHTML=p:Z(p)&&s.appendChild(p)}else s.appendChild(l),l.readOnly=i.get("readOnly"),l.style.cssText="width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;",l.style.color=i.get("textColor"),l.style.borderColor=i.get("textareaBorderColor"),l.style.backgroundColor=i.get("textareaColor"),l.value=c.value;var d=c.meta,f=document.createElement("div");f.style.cssText="position:absolute;bottom:0;left:0;right:0;";var g="float:right;margin-right:20px;border:none;cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px",y=document.createElement("div"),v=document.createElement("div");g+=";background-color:"+i.get("buttonColor"),g+=";color:"+i.get("buttonTextColor");var m=this;function _(){n.removeChild(r),m._dom=null}te(y,"click",_),te(v,"click",(function(){if(null==h&&null!=u||null!=h&&null==u)_();else{var t;try{t="function"==typeof h?h(s,e.getOption()):LR(l.value,d)}catch(t){throw _(),new Error("Data view format error "+t)}t&&e.dispatchAction({type:"changeDataView",newOption:t}),_()}})),y.innerHTML=a[1],v.innerHTML=a[2],v.style.cssText=g,y.style.cssText=g,!i.get("readOnly")&&f.appendChild(v),f.appendChild(y),r.appendChild(o),r.appendChild(s),r.appendChild(f),s.style.height=n.clientHeight-80+"px",n.appendChild(r),this._dom=r},n.prototype.remove=function(t,e){this._dom&&e.getDom().removeChild(this._dom)},n.prototype.dispose=function(t,e){this.remove(t,e)},n.getDefaultOption=function(t){return{show:!0,readOnly:!1,optionToContent:null,contentToOption:null,icon:"M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28",title:t.getLocale(["toolbox","dataView","title"]),lang:t.getLocale(["toolbox","dataView","lang"]),backgroundColor:"#fff",textColor:"#000",textareaColor:"#fff",textareaBorderColor:"#333",buttonColor:"#c23531",buttonTextColor:"#fff"}},n}(yR);function PR(t,e){return P(t,(function(t,n){var i=e&&e[n];if(Y(i)&&!V(i)){Y(t)&&!V(t)||(t={value:t});var r=null!=i.name&&null==t.name;return t=I(t,i),r&&delete t.name,t}return t}))}uv({type:"changeDataView",event:"dataViewChanged",update:"prepareAndUpdate"},(function(t,e){var n=[];k(t.newOption.series,(function(t){var i=e.getSeriesByName(t.name)[0];if(i){var r=i.get("data");n.push({name:t.name,data:PR(t.data,r)})}else n.push(M({type:"scatter"},t))})),e.mergeOption(I({series:n},t.newOption))}));var OR=k,RR=br();function NR(t){var e=RR(t);return e.snapshots||(e.snapshots=[{}]),e.snapshots}var ER=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.onclick=function(t,e){!function(t){RR(t).snapshots=null}(t),e.dispatchAction({type:"restore",from:this.uid})},n.getDefaultOption=function(t){return{show:!0,icon:"M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5",title:t.getLocale(["toolbox","restore","title"])}},n}(yR);uv({type:"restore",event:"restore",update:"prepareAndUpdate"},(function(t,e){e.resetOption("recreate")}));var zR=["dataToPoint","pointToData"],BR=["grid","xAxis","yAxis","geo","graph","polar","radiusAxis","angleAxis","bmap"],VR=function(){function t(t,e,n){var i=this;this._targetInfoList=[];var r=GR(e,t);k(HR,(function(t,e){(!n||!n.include||C(n.include,e)>=0)&&t(r,i._targetInfoList)}))}return t.prototype.setOutputRanges=function(t,e){return this.matchOutputRanges(t,e,(function(t,e,n){if((t.coordRanges||(t.coordRanges=[])).push(e),!t.coordRange){t.coordRange=e;var i=XR[t.brushType](0,n,e);t.__rangeOffset={offset:ZR[t.brushType](i.values,t.range,[1,1]),xyMinMax:i.xyMinMax}}})),t},t.prototype.matchOutputRanges=function(t,e,n){k(t,(function(t){var i=this.findTargetInfo(t,e);i&&!0!==i&&k(i.coordSyses,(function(i){var r=XR[t.brushType](1,i,t.range);n(t,r.values,i,e)}))}),this)},t.prototype.setInputRanges=function(t,e){k(t,(function(t){var n,i,r,o,a,s=this.findTargetInfo(t,e);if(t.range=t.range||[],s&&!0!==s){t.panelId=s.panelId;var l=XR[t.brushType](0,s.coordSys,t.coordRange),u=t.__rangeOffset;t.range=u?ZR[t.brushType](l.values,u.offset,(n=l.xyMinMax,i=u.xyMinMax,r=qR(n),o=qR(i),a=[r[0]/o[0],r[1]/o[1]],isNaN(a[0])&&(a[0]=1),isNaN(a[1])&&(a[1]=1),a)):l.values}}),this)},t.prototype.makePanelOpts=function(t,e){return P(this._targetInfoList,(function(n){var i=n.getPanelRect();return{panelId:n.panelId,defaultBrushType:e?e(n):null,clipPath:yA(i),isTargetByCursor:mA(i,t,n.coordSysModel),getLinearBrushOtherExtent:vA(i)}}))},t.prototype.controlSeries=function(t,e,n){var i=this.findTargetInfo(t,n);return!0===i||i&&C(i.coordSyses,e.coordinateSystem)>=0},t.prototype.findTargetInfo=function(t,e){for(var n=this._targetInfoList,i=GR(e,t),r=0;r<n.length;r++){var o=n[r],a=t.panelId;if(a){if(o.panelId===a)return o}else for(var s=0;s<WR.length;s++)if(WR[s](i,o))return o}return!0},t}();function FR(t){return t[0]>t[1]&&t.reverse(),t}function GR(t,e){return Sr(t,e,{includeMainTypes:BR})}var HR={grid:function(t,e){var n=t.xAxisModels,i=t.yAxisModels,r=t.gridModels,o=lt(),a={},s={};(n||i||r)&&(k(n,(function(t){var e=t.axis.grid.model;o.set(e.id,e),a[e.id]=!0})),k(i,(function(t){var e=t.axis.grid.model;o.set(e.id,e),s[e.id]=!0})),k(r,(function(t){o.set(t.id,t),a[t.id]=!0,s[t.id]=!0})),o.each((function(t){var r=t.coordinateSystem,o=[];k(r.getCartesians(),(function(t,e){(C(n,t.getAxis("x").model)>=0||C(i,t.getAxis("y").model)>=0)&&o.push(t)})),e.push({panelId:"grid--"+t.id,gridModel:t,coordSysModel:t,coordSys:o[0],coordSyses:o,getPanelRect:YR.grid,xAxisDeclared:a[t.id],yAxisDeclared:s[t.id]})})))},geo:function(t,e){k(t.geoModels,(function(t){var n=t.coordinateSystem;e.push({panelId:"geo--"+t.id,geoModel:t,coordSysModel:t,coordSys:n,coordSyses:[n],getPanelRect:YR.geo})}))}},WR=[function(t,e){var n=t.xAxisModel,i=t.yAxisModel,r=t.gridModel;return!r&&n&&(r=n.axis.grid.model),!r&&i&&(r=i.axis.grid.model),r&&r===e.gridModel},function(t,e){var n=t.geoModel;return n&&n===e.geoModel}],YR={grid:function(){return this.coordSys.master.getRect().clone()},geo:function(){var t=this.coordSys,e=t.getBoundingRect().clone();return e.applyTransform(wu(t)),e}},XR={lineX:B(UR,0),lineY:B(UR,1),rect:function(t,e,n){var i=e[zR[t]]([n[0][0],n[1][0]]),r=e[zR[t]]([n[0][1],n[1][1]]),o=[FR([i[0],r[0]]),FR([i[1],r[1]])];return{values:o,xyMinMax:o}},polygon:function(t,e,n){var i=[[1/0,-1/0],[1/0,-1/0]];return{values:P(n,(function(n){var r=e[zR[t]](n);return i[0][0]=Math.min(i[0][0],r[0]),i[1][0]=Math.min(i[1][0],r[1]),i[0][1]=Math.max(i[0][1],r[0]),i[1][1]=Math.max(i[1][1],r[1]),r})),xyMinMax:i}}};function UR(t,e,n,i){var r=n.getAxis(["x","y"][t]),o=FR(P([0,1],(function(t){return e?r.coordToData(r.toLocalCoord(i[t])):r.toGlobalCoord(r.dataToCoord(i[t]))}))),a=[];return a[t]=o,a[1-t]=[NaN,NaN],{values:o,xyMinMax:a}}var ZR={lineX:B(jR,0),lineY:B(jR,1),rect:function(t,e,n){return[[t[0][0]-n[0]*e[0][0],t[0][1]-n[0]*e[0][1]],[t[1][0]-n[1]*e[1][0],t[1][1]-n[1]*e[1][1]]]},polygon:function(t,e,n){return P(t,(function(t,i){return[t[0]-n[0]*e[i][0],t[1]-n[1]*e[i][1]]}))}};function jR(t,e,n,i){return[e[0]-i[t]*n[0],e[1]-i[t]*n[1]]}function qR(t){return t?[t[0][1]-t[0][0],t[1][1]-t[1][0]]:[NaN,NaN]}var KR,$R,JR=k,QR="\0_ec_\0"+"toolbox-dataZoom_",tN=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.render=function(t,e,n,i){this.brushController||(this.brushController=new VC(n.getZr()),this.brushController.on("brush",z(this._onBrush,this)).mount()),function(t,e,n,i,r){var o=n.isZoomActive;i&&"takeGlobalCursor"===i.type&&(o="dataZoomSelect"===i.key&&i.dataZoomSelectActive);n.isZoomActive=o,t.setIconStatus("zoom",o?"emphasis":"normal");var a=new VR(nN(t),e,{include:["grid"]}).makePanelOpts(r,(function(t){return t.xAxisDeclared&&!t.yAxisDeclared?"lineX":!t.xAxisDeclared&&t.yAxisDeclared?"lineY":"rect"}));n.brushController.setPanels(a).enableBrush(!(!o||!a.length)&&{brushType:"auto",brushStyle:t.getModel("brushStyle").getItemStyle()})}(t,e,this,i,n),function(t,e){t.setIconStatus("back",function(t){return NR(t).length}(e)>1?"emphasis":"normal")}(t,e)},n.prototype.onclick=function(t,e,n){eN[n].call(this)},n.prototype.remove=function(t,e){this.brushController.unmount()},n.prototype.dispose=function(t,e){this.brushController.dispose()},n.prototype._onBrush=function(t){var e=t.areas;if(t.isEnd&&e.length){var n={},i=this.ecModel;this.brushController.updateCovers([]),new VR(nN(this.model),i,{include:["grid"]}).matchOutputRanges(e,i,(function(t,e,n){if("cartesian2d"===n.type){var i=t.brushType;"rect"===i?(r("x",n,e[0]),r("y",n,e[1])):r({lineX:"x",lineY:"y"}[i],n,e)}})),function(t,e){var n=NR(t);OR(e,(function(e,i){for(var r=n.length-1;r>=0&&!n[r][i];r--);if(r<0){var o=t.queryComponents({mainType:"dataZoom",subType:"select",id:i})[0];if(o){var a=o.getPercentRange();n[0][i]={dataZoomId:i,start:a[0],end:a[1]}}}})),n.push(e)}(i,n),this._dispatchZoomAction(n)}function r(t,e,r){var o=e.getAxis(t),a=o.model,s=function(t,e,n){var i;return n.eachComponent({mainType:"dataZoom",subType:"select"},(function(n){n.getAxisModel(t,e.componentIndex)&&(i=n)})),i}(t,a,i),l=s.findRepresentativeAxisProxy(a).getMinMaxSpan();null==l.minValueSpan&&null==l.maxValueSpan||(r=yC(0,r.slice(),o.scale.getExtent(),0,l.minValueSpan,l.maxValueSpan)),s&&(n[s.id]={dataZoomId:s.id,startValue:r[0],endValue:r[1]})}},n.prototype._dispatchZoomAction=function(t){var e=[];JR(t,(function(t,n){e.push(b(t))})),e.length&&this.api.dispatchAction({type:"dataZoom",from:this.uid,batch:e})},n.getDefaultOption=function(t){return{show:!0,filterMode:"filter",icon:{zoom:"M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1",back:"M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26"},title:t.getLocale(["toolbox","dataZoom","title"]),brushStyle:{borderWidth:0,color:"rgba(210,219,238,0.2)"}}},n}(yR),eN={zoom:function(){var t=!this.isZoomActive;this.api.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:t})},back:function(){this._dispatchZoomAction(function(t){var e=NR(t),n=e[e.length-1];e.length>1&&e.pop();var i={};return OR(n,(function(t,n){for(var r=e.length-1;r>=0;r--)if(t=e[r][n]){i[n]=t;break}})),i}(this.ecModel))}};function nN(t){var e={xAxisIndex:t.get("xAxisIndex",!0),yAxisIndex:t.get("yAxisIndex",!0),xAxisId:t.get("xAxisId",!0),yAxisId:t.get("yAxisId",!0)};return null==e.xAxisIndex&&null==e.xAxisId&&(e.xAxisIndex="all"),null==e.yAxisIndex&&null==e.yAxisId&&(e.yAxisIndex="all"),e}KR="dataZoom",$R=function(t){var e=t.getComponent("toolbox",0);if(e){var n=e.getModel(["feature","dataZoom"]),i=[],r=Sr(t,nN(n));return JR(r.xAxisModels,(function(t){return o(t,"xAxis","xAxisIndex")})),JR(r.yAxisModels,(function(t){return o(t,"yAxis","yAxisIndex")})),i}function o(t,e,r){var o=t.componentIndex,a={type:"select",$fromToolbox:!0,filterMode:n.get("filterMode",!0)||"filter",id:QR+e+o};a[r]=o,i.push(a)}},it(null==Sc.get(KR)&&$R),Sc.set(KR,$R);var iN=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.type="tooltip",n.dependencies=["axisPointer"],n.defaultOption={zlevel:0,z:60,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",renderMode:"auto",confine:null,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"#fff",shadowBlur:10,shadowColor:"rgba(0, 0, 0, .2)",shadowOffsetX:1,shadowOffsetY:2,borderRadius:4,borderWidth:1,padding:null,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#666",fontSize:14}},n}(uc);function rN(t){var e=t.get("confine");return null!=e?!!e:"richText"===t.get("renderMode")}var oN=["-ms-","-moz-","-o-","-webkit-",""];function aN(t,e,n){var i=[],r=t.get("transitionDuration"),a=t.get("backgroundColor"),s=t.get("shadowBlur"),l=t.get("shadowColor"),u=t.get("shadowOffsetX"),h=t.get("shadowOffsetY"),c=t.getModel("textStyle"),p=md(t,"html"),d=u+"px "+h+"px "+s+"px "+l;return i.push("box-shadow:"+d),e&&r&&i.push(function(t,e){var n="cubic-bezier(0.23, 1, 0.32, 1)",i="opacity "+t/2+"s "+n+",visibility "+t/2+"s "+n;return e||(i+=",left "+t+"s "+n+",top "+t+"s "+n),P(oN,(function(t){return t+"transition:"+i})).join(";")}(r,n)),a&&(o.canvasSupported?i.push("background-Color:"+a):(i.push("background-Color:#"+Ke(a)),i.push("filter:alpha(opacity=70)"))),k(["width","color","radius"],(function(e){var n="border-"+e,r=Vh(n),o=t.get(r);null!=o&&i.push(n+":"+o+("color"===e?"":"px"))})),i.push(function(t){var e=[],n=t.get("fontSize"),i=t.getTextColor();i&&e.push("color:"+i),e.push("font:"+t.getFont()),n&&e.push("line-height:"+Math.round(3*n/2)+"px");var r=t.get("textShadowColor"),o=t.get("textShadowBlur")||0,a=t.get("textShadowOffsetX")||0,s=t.get("textShadowOffsetY")||0;return r&&o&&e.push("text-shadow:"+a+"px "+s+"px "+o+"px "+r),k(["decoration","align"],(function(n){var i=t.get(n);i&&e.push("text-"+n+":"+i)})),e.join(";")}(c)),null!=p&&i.push("padding:"+Fh(p).join("px ")+"px"),i.join(";")+";"}function sN(t,e,n,i,r){var o=e&&e.painter;if(n){var a=o&&o.getViewportRoot();a&&function(t,e,n,i,r){Xt(Yt,e,i,r,!0)&&Xt(t,n,Yt[0],Yt[1])}(t,a,document.body,i,r)}else{t[0]=i,t[1]=r;var s=o&&o.getViewportRootOffset();s&&(t[0]+=s.offsetLeft,t[1]+=s.offsetTop)}t[2]=t[0]/e.getWidth(),t[3]=t[1]/e.getHeight()}var lN=function(){function t(t,e,n){if(this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._firstShow=!0,this._longHide=!0,o.wxa)return null;var i=document.createElement("div");i.domBelongToZr=!0,this.el=i;var r=this._zr=e.getZr(),a=this._appendToBody=n&&n.appendToBody;sN(this._styleCoord,r,a,e.getWidth()/2,e.getHeight()/2),a?document.body.appendChild(i):t.appendChild(i),this._container=t;var s=this;i.onmouseenter=function(){s._enterable&&(clearTimeout(s._hideTimeout),s._show=!0),s._inContent=!0},i.onmousemove=function(t){if(t=t||window.event,!s._enterable){var e=r.handler;Qt(r.painter.getViewportRoot(),t,!0),e.dispatch("mousemove",t)}},i.onmouseleave=function(){s._inContent=!1,s._enterable&&s._show&&s.hideLater(s._hideDelay)}}return t.prototype.update=function(t){var e=this._container,n=e.currentStyle||document.defaultView.getComputedStyle(e),i=e.style;"absolute"!==i.position&&"absolute"!==n.position&&(i.position="relative"),t.get("alwaysShowContent")&&this._moveIfResized(),this.el.className=t.get("className")||""},t.prototype.show=function(t,e){clearTimeout(this._hideTimeout),clearTimeout(this._longHideTimeout);var n=this.el,i=this._styleCoord,r=n.offsetHeight/2;e=qh(e),n.style.cssText="position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;"+aN(t,!this._firstShow,this._longHide)+";left:"+i[0]+"px;top:"+(i[1]-r)+"px;border-color: "+e+";"+(t.get("extraCssText")||""),n.style.display=n.innerHTML?"block":"none",n.style.pointerEvents=this._enterable?"auto":"none",this._show=!0,this._firstShow=!1,this._longHide=!1},t.prototype.setContent=function(t,e,n,i,r){if(null!=t){var o=this.el;if(G(r)&&"item"===n.get("trigger")&&!rN(n)&&(t+=function(t,e,n){if(!G(n)||"inside"===n)return"";e=qh(e);var i,r="left"===(i=n)?"right":"right"===i?"left":"top"===i?"bottom":"top",o="",a="";return C(["left","right"],r)>-1?(o=r+":-6px;top:50%;",a="translateY(-50%) rotate("+("left"===r?-225:-45)+"deg)"):(o=r+":-6px;left:50%;",a="translateX(-50%) rotate("+("top"===r?225:45)+"deg)"),'<div style="'+["position:absolute;width:10px;height:10px;",""+o+(a=P(oN,(function(t){return t+"transform:"+a})).join(";"))+";","border-bottom: "+e+" solid 1px;","border-right: "+e+" solid 1px;","background-color: "+t+";","box-shadow: 8px 8px 16px -3px #000;"].join("")+'"></div>'}(n.get("backgroundColor"),i,r)),G(t))o.innerHTML=t;else if(t){o.innerHTML="",V(t)||(t=[t]);for(var a=0;a<t.length;a++)Z(t[a])&&t[a].parentNode!==o&&o.appendChild(t[a])}}},t.prototype.setEnterable=function(t){this._enterable=t},t.prototype.getSize=function(){var t=this.el;return[t.clientWidth,t.clientHeight]},t.prototype.moveTo=function(t,e){var n=this._styleCoord;if(sN(n,this._zr,this._appendToBody,t,e),null!=n[0]&&null!=n[1]){var i=this.el.style;i.left=n[0].toFixed(0)+"px",i.top=n[1].toFixed(0)+"px"}},t.prototype._moveIfResized=function(){var t=this._styleCoord[2],e=this._styleCoord[3];this.moveTo(t*this._zr.getWidth(),e*this._zr.getHeight())},t.prototype.hide=function(){var t=this;this.el.style.visibility="hidden",this.el.style.opacity="0",this._show=!1,this._longHideTimeout=setTimeout((function(){return t._longHide=!0}),500)},t.prototype.hideLater=function(t){!this._show||this._inContent&&this._enterable||(t?(this._hideDelay=t,this._show=!1,this._hideTimeout=setTimeout(z(this.hide,this),t)):this.hide())},t.prototype.isShow=function(){return this._show},t.prototype.dispose=function(){this.el.parentNode.removeChild(this.el)},t.prototype.getOuterSize=function(){var t=this.el.clientWidth,e=this.el.clientHeight;if(document.defaultView&&document.defaultView.getComputedStyle){var n=document.defaultView.getComputedStyle(this.el);n&&(t+=parseInt(n.borderLeftWidth,10)+parseInt(n.borderRightWidth,10),e+=parseInt(n.borderTopWidth,10)+parseInt(n.borderBottomWidth,10))}return{width:t,height:e}},t}(),uN=function(){function t(t){this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._zr=t.getZr(),pN(this._styleCoord,this._zr,t.getWidth()/2,t.getHeight()/2)}return t.prototype.update=function(t){t.get("alwaysShowContent")&&this._moveIfResized()},t.prototype.show=function(){this._hideTimeout&&clearTimeout(this._hideTimeout),this.el.show(),this._show=!0},t.prototype.setContent=function(t,e,n,i,r){Y(t)&&ur(""),this.el&&this._zr.remove(this.el);var o=n.getModel("textStyle");this.el=new Ka({style:{rich:e.richTextStyles,text:t,lineHeight:22,backgroundColor:n.get("backgroundColor"),borderRadius:n.get("borderRadius"),borderWidth:1,borderColor:i,shadowColor:n.get("shadowColor"),shadowBlur:n.get("shadowBlur"),shadowOffsetX:n.get("shadowOffsetX"),shadowOffsetY:n.get("shadowOffsetY"),textShadowColor:o.get("textShadowColor"),textShadowBlur:o.get("textShadowBlur")||0,textShadowOffsetX:o.get("textShadowOffsetX")||0,textShadowOffsetY:o.get("textShadowOffsetY")||0,fill:n.get(["textStyle","color"]),padding:md(n,"richText"),verticalAlign:"top",align:"left"},z:n.get("z")}),this._zr.add(this.el);var a=this;this.el.on("mouseover",(function(){a._enterable&&(clearTimeout(a._hideTimeout),a._show=!0),a._inContent=!0})),this.el.on("mouseout",(function(){a._enterable&&a._show&&a.hideLater(a._hideDelay),a._inContent=!1}))},t.prototype.setEnterable=function(t){this._enterable=t},t.prototype.getSize=function(){var t=this.el,e=this.el.getBoundingRect(),n=cN(t.style);return[e.width+n.left+n.right,e.height+n.top+n.bottom]},t.prototype.moveTo=function(t,e){var n=this.el;if(n){var i=this._styleCoord;pN(i,this._zr,t,e),t=i[0],e=i[1];var r=n.style,o=hN(r.borderWidth||0),a=cN(r);n.x=t+o+a.left,n.y=e+o+a.top,n.markRedraw()}},t.prototype._moveIfResized=function(){var t=this._styleCoord[2],e=this._styleCoord[3];this.moveTo(t*this._zr.getWidth(),e*this._zr.getHeight())},t.prototype.hide=function(){this.el&&this.el.hide(),this._show=!1},t.prototype.hideLater=function(t){!this._show||this._inContent&&this._enterable||(t?(this._hideDelay=t,this._show=!1,this._hideTimeout=setTimeout(z(this.hide,this),t)):this.hide())},t.prototype.isShow=function(){return this._show},t.prototype.getOuterSize=function(){var t=this.getSize();return{width:t[0],height:t[1]}},t.prototype.dispose=function(){this._zr.remove(this.el)},t}();function hN(t){return Math.max(0,t)}function cN(t){var e=hN(t.shadowBlur||0),n=hN(t.shadowOffsetX||0),i=hN(t.shadowOffsetY||0);return{left:hN(e-n),right:hN(e+n),top:hN(e-i),bottom:hN(e+i)}}function pN(t,e,n,i){t[0]=n,t[1]=i,t[2]=t[0]/e.getWidth(),t[3]=t[1]/e.getHeight()}var dN=z,fN=k,gN=Gi,yN=new Za({shape:{x:-1,y:-1,width:2,height:2}}),vN=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.init=function(t,e){if(!o.node){var n,i=t.getComponent("tooltip"),r=i.get("renderMode");this._renderMode="auto"===(n=r)?o.domSupported?"html":"richText":n||"html",this._tooltipContent="richText"===this._renderMode?new uN(e):new lN(e.getDom(),e,{appendToBody:i.get("appendToBody",!0)})}},n.prototype.render=function(t,e,n){if(!o.node){this.group.removeAll(),this._tooltipModel=t,this._ecModel=e,this._api=n,this._alwaysShowContent=t.get("alwaysShowContent");var i=this._tooltipContent;i.update(t),i.setEnterable(t.get("enterable")),this._initGlobalListener(),this._keepShow()}},n.prototype._initGlobalListener=function(){var t=this._tooltipModel.get("triggerOn");MP("itemTooltip",this._api,dN((function(e,n,i){"none"!==t&&(t.indexOf(e)>=0?this._tryShow(n,i):"leave"===e&&this._hide(i))}),this))},n.prototype._keepShow=function(){var t=this._tooltipModel,e=this._ecModel,n=this._api;if(null!=this._lastX&&null!=this._lastY&&"none"!==t.get("triggerOn")){var i=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout((function(){!n.isDisposed()&&i.manuallyShowTip(t,e,n,{x:i._lastX,y:i._lastY,dataByCoordSys:i._lastDataByCoordSys})}))}},n.prototype.manuallyShowTip=function(t,e,n,i){if(i.from!==this.uid&&!o.node){var r=_N(i,n);this._ticket="";var a=i.dataByCoordSys;if(i.tooltip&&null!=i.x&&null!=i.y){var s=yN;s.x=i.x,s.y=i.y,s.update(),s.tooltip=i.tooltip,this._tryShow({offsetX:i.x,offsetY:i.y,target:s},r)}else if(a)this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,dataByCoordSys:a,tooltipOption:i.tooltipOption},r);else if(null!=i.seriesIndex){if(this._manuallyAxisShowTip(t,e,n,i))return;var l=DP(i,e),u=l.point[0],h=l.point[1];null!=u&&null!=h&&this._tryShow({offsetX:u,offsetY:h,position:i.position,target:l.el},r)}else null!=i.x&&null!=i.y&&(n.dispatchAction({type:"updateAxisPointer",x:i.x,y:i.y}),this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,target:n.getZr().findHover(i.x,i.y).target},r))}},n.prototype.manuallyHideTip=function(t,e,n,i){var r=this._tooltipContent;!this._alwaysShowContent&&this._tooltipModel&&r.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=this._lastDataByCoordSys=null,i.from!==this.uid&&this._hide(_N(i,n))},n.prototype._manuallyAxisShowTip=function(t,e,n,i){var r=i.seriesIndex,o=i.dataIndex,a=e.getComponent("axisPointer").coordSysAxesInfo;if(null!=r&&null!=o&&null!=a){var s=e.getSeriesByIndex(r);if(s)if("axis"===mN([s.getData().getItemModel(o),s,(s.coordinateSystem||{}).model,t]).get("trigger"))return n.dispatchAction({type:"updateAxisPointer",seriesIndex:r,dataIndex:o,position:i.position}),!0}},n.prototype._tryShow=function(t,e){var n=t.target;if(this._tooltipModel){this._lastX=t.offsetX,this._lastY=t.offsetY;var i=t.dataByCoordSys;i&&i.length?this._showAxisTooltip(i,t):n&&fg(n,(function(t){return null!=rs(t).dataIndex}),!0)?(this._lastDataByCoordSys=null,this._showSeriesItemTooltip(t,n,e)):n&&n.tooltip?(this._lastDataByCoordSys=null,this._showComponentItemTooltip(t,n,e)):(this._lastDataByCoordSys=null,this._hide(e))}},n.prototype._showOrMove=function(t,e){var n=t.get("showDelay");e=z(e,this),clearTimeout(this._showTimout),n>0?this._showTimout=setTimeout(e,n):e()},n.prototype._showAxisTooltip=function(t,e){var n=this._ecModel,i=this._tooltipModel,r=[e.offsetX,e.offsetY],o=mN([e.tooltipOption,i]),a=this._renderMode,s=[],l=hd("section",{blocks:[],noHeader:!0}),u=[],h=new _d;fN(t,(function(t){fN(t.dataByAxis,(function(t){var e=n.getComponent(t.axisDim+"Axis",t.axisIndex),i=t.value;if(e&&null!=i){var r=cP(i,e.axis,n,t.seriesDataIndices,t.valueLabelOpt),o=hd("section",{header:r,noHeader:!rt(r),sortBlocks:!0,blocks:[]});l.blocks.push(o),k(t.seriesDataIndices,(function(l){var c=n.getSeriesByIndex(l.seriesIndex),p=l.dataIndexInside,d=c.getDataParams(p);d.axisDim=t.axisDim,d.axisIndex=t.axisIndex,d.axisType=t.axisType,d.axisId=t.axisId,d.axisValue=h_(e.axis,{value:i}),d.axisValueLabel=r,d.marker=h.makeTooltipMarker("item",qh(d.color),a);var f=zp(c.formatTooltip(p,!0,null));f.markupFragment&&o.blocks.push(f.markupFragment),f.markupText&&u.push(f.markupText),s.push(d)}))}}))})),l.blocks.reverse(),u.reverse();var c=e.position,p=o.get("order"),d=dd(l,h,a,p,n.get("useUTC"),o.get("textStyle"));d&&u.unshift(d);var f="richText"===a?"\n\n":"<br/>",g=u.join(f);this._showOrMove(o,(function(){this._updateContentNotChangedOnAxis(t)?this._updatePosition(o,c,r[0],r[1],this._tooltipContent,s):this._showTooltipContent(o,g,s,Math.random()+"",r[0],r[1],c,null,h)}))},n.prototype._showSeriesItemTooltip=function(t,e,n){var i=fg(e,(function(t){return null!=rs(t).dataIndex}),!0),r=this._ecModel,o=rs(i),a=o.seriesIndex,s=r.getSeriesByIndex(a),l=o.dataModel||s,u=o.dataIndex,h=o.dataType,c=l.getData(h),p=this._renderMode,d=mN([c.getItemModel(u),l,s&&(s.coordinateSystem||{}).model,this._tooltipModel]),f=d.get("trigger");if(null==f||"item"===f){var g=l.getDataParams(u,h),y=new _d;g.marker=y.makeTooltipMarker("item",qh(g.color),p);var v=zp(l.formatTooltip(u,!1,h)),m=d.get("order"),_=v.markupFragment?dd(v.markupFragment,y,p,m,r.get("useUTC"),d.get("textStyle")):v.markupText,x="item_"+l.name+"_"+u;this._showOrMove(d,(function(){this._showTooltipContent(d,_,g,x,t.offsetX,t.offsetY,t.position,t.target,y)})),n({type:"showTip",dataIndexInside:u,dataIndex:c.getRawIndex(u),seriesIndex:a,from:this.uid})}},n.prototype._showComponentItemTooltip=function(t,e,n){var i=e.tooltip;if(G(i)){i={content:i,formatter:i}}var r=new ah(i,this._tooltipModel,this._ecModel),o=r.get("content"),a=Math.random()+"",s=new _d;this._showOrMove(r,(function(){this._showTooltipContent(r,o,r.get("formatterParams")||{},a,t.offsetX,t.offsetY,t.position,e,s)})),n({type:"showTip",from:this.uid})},n.prototype._showTooltipContent=function(t,e,n,i,r,o,a,s,l){if(this._ticket="",t.get("showContent")&&t.get("show")){var u=this._tooltipContent,h=t.get("formatter");a=a||t.get("position");var c=e,p=this._getNearestPoint([r,o],n,t.get("trigger"),t.get("borderColor"));if(h&&G(h)){var d=t.ecModel.get("useUTC"),f=V(n)?n[0]:n;c=h,f&&f.axisType&&f.axisType.indexOf("time")>=0&&(c=bh(f.axisValue,c,d)),c=Zh(c,n,!0)}else if(F(h)){var g=dN((function(e,i){e===this._ticket&&(u.setContent(i,l,t,p.color,a),this._updatePosition(t,a,r,o,u,n,s))}),this);this._ticket=i,c=h(n,i,g)}u.setContent(c,l,t,p.color,a),u.show(t,p.color),this._updatePosition(t,a,r,o,u,n,s)}},n.prototype._getNearestPoint=function(t,e,n,i){return"axis"===n||V(e)?{color:i||("html"===this._renderMode?"#fff":"none")}:V(e)?void 0:{color:i||e.color||e.borderColor}},n.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=r.getSize(),h=t.get("align"),c=t.get("verticalAlign"),p=a&&a.getBoundingRect().clone();if(a&&p.applyTransform(a.transform),F(e)&&(e=e([n,i],o,r.el,p,{viewSize:[s,l],contentSize:u.slice()})),V(e))n=gN(e[0],s),i=gN(e[1],l);else if(Y(e)){var d=e;d.width=u[0],d.height=u[1];var f=nc(d,{width:s,height:l});n=f.x,i=f.y,h=null,c=null}else if(G(e)&&a){var g=function(t,e,n){var i=n[0],r=n[1],o=10,a=5,s=0,l=0,u=e.width,h=e.height;switch(t){case"inside":s=e.x+u/2-i/2,l=e.y+h/2-r/2;break;case"top":s=e.x+u/2-i/2,l=e.y-r-o;break;case"bottom":s=e.x+u/2-i/2,l=e.y+h+o;break;case"left":s=e.x-i-o-a,l=e.y+h/2-r/2;break;case"right":s=e.x+u+o+a,l=e.y+h/2-r/2}return[s,l]}(e,p,u);n=g[0],i=g[1]}else{g=function(t,e,n,i,r,o,a){var s=n.getOuterSize(),l=s.width,u=s.height;null!=o&&(t+l+o+2>i?t-=l+o:t+=o);null!=a&&(e+u+a>r?e-=u+a:e+=a);return[t,e]}(n,i,r,s,l,h?null:20,c?null:20);n=g[0],i=g[1]}if(h&&(n-=xN(h)?u[0]/2:"right"===h?u[0]:0),c&&(i-=xN(c)?u[1]/2:"bottom"===c?u[1]:0),rN(t)){g=function(t,e,n,i,r){var o=n.getOuterSize(),a=o.width,s=o.height;return t=Math.min(t+a,i)-a,e=Math.min(e+s,r)-s,t=Math.max(t,0),e=Math.max(e,0),[t,e]}(n,i,r,s,l);n=g[0],i=g[1]}r.moveTo(n,i)},n.prototype._updateContentNotChangedOnAxis=function(t){var e=this._lastDataByCoordSys,n=!!e&&e.length===t.length;return n&&fN(e,(function(e,i){var r=e.dataByAxis||[],o=(t[i]||{}).dataByAxis||[];(n=n&&r.length===o.length)&&fN(r,(function(t,e){var i=o[e]||{},r=t.seriesDataIndices||[],a=i.seriesDataIndices||[];(n=n&&t.value===i.value&&t.axisType===i.axisType&&t.axisId===i.axisId&&r.length===a.length)&&fN(r,(function(t,e){var i=a[e];n=n&&t.seriesIndex===i.seriesIndex&&t.dataIndex===i.dataIndex}))}))})),this._lastDataByCoordSys=t,!!n},n.prototype._hide=function(t){this._lastDataByCoordSys=null,t({type:"hideTip",from:this.uid})},n.prototype.dispose=function(t,e){o.node||(this._tooltipContent.dispose(),CP("itemTooltip",e))},n.type="tooltip",n}(kd);function mN(t){for(var e=t.pop();t.length;){var n=t.pop();n&&(n instanceof ah&&(n=n.get("tooltip",!0)),G(n)&&(n={formatter:n}),e=new ah(n,e,e.ecModel))}return e}function _N(t,e){return t.dispatchAction||z(e.dispatchAction,e)}function xN(t){return"center"===t||"middle"===t}var bN=["rect","polygon","keep","clear"];function wN(t,e){var n=hr(t?t.brush:[]);if(n.length){var i=[];k(n,(function(t){var e=t.hasOwnProperty("toolbox")?t.toolbox:[];e instanceof Array&&(i=i.concat(e))}));var r=t&&t.toolbox;V(r)&&(r=r[0]),r||(r={feature:{}},t.toolbox=[r]);var o=r.feature||(r.feature={}),a=o.brush||(o.brush={}),s=a.type||(a.type=[]);s.push.apply(s,i),function(t){var e={};k(t,(function(t){e[t]=1})),t.length=0,k(e,(function(e,n){t.push(n)}))}(s),e&&!s.length&&s.push.apply(s,bN)}}var SN=k;function MN(t){if(t)for(var e in t)if(t.hasOwnProperty(e))return!0}function IN(t,e,n){var i={};return SN(e,(function(e){var r,o=i[e]=((r=function(){}).prototype.__hidden=r.prototype,new r);SN(t[e],(function(t,i){if(cI.isValidType(i)){var r={type:i,visual:t};n&&n(r,e),o[i]=new cI(r),"opacity"===i&&((r=b(r)).type="colorAlpha",o.__hidden.__alphaForOpacity=new cI(r))}}))})),i}function TN(t,e,n){var i;k(n,(function(t){e.hasOwnProperty(t)&&MN(e[t])&&(i=!0)})),i&&k(n,(function(n){e.hasOwnProperty(n)&&MN(e[n])?t[n]=b(e[n]):delete t[n]}))}var CN={lineX:AN(0),lineY:AN(1),rect:{point:function(t,e,n){return t&&n.boundingRect.contain(t[0],t[1])},rect:function(t,e,n){return t&&n.boundingRect.intersect(t)}},polygon:{point:function(t,e,n){return t&&n.boundingRect.contain(t[0],t[1])&&__(n.range,t[0],t[1])},rect:function(t,e,n){var i=n.range;if(!t||i.length<=1)return!1;var r=t.x,o=t.y,a=t.width,s=t.height,l=i[0];return!!(__(i,r,o)||__(i,r+a,o)||__(i,r,o+s)||__(i,r+a,o+s)||Pn.create(t).contain(l[0],l[1])||Lu(r,o,r+a,o,i)||Lu(r,o,r,o+s,i)||Lu(r+a,o,r+a,o+s,i)||Lu(r,o+s,r+a,o+s,i))||void 0}}};function AN(t){var e=["x","y"],n=["width","height"];return{point:function(e,n,i){if(e){var r=i.range;return DN(e[t],r)}},rect:function(i,r,o){if(i){var a=o.range,s=[i[e[t]],i[e[t]]+i[n[t]]];return s[1]<s[0]&&s.reverse(),DN(s[0],a)||DN(s[1],a)||DN(a[0],s)||DN(a[1],s)}}}}function DN(t,e){return e[0]<=t&&t<=e[1]}var LN=["inBrush","outOfBrush"],kN="__ecInBrushSelectEvent";function PN(t){t.eachComponent({mainType:"brush"},(function(e){(e.brushTargetManager=new VR(e.option,t)).setInputRanges(e.areas,t)}))}function ON(t,e,n){var i,r,o=[];t.eachComponent({mainType:"brush"},(function(t){n&&"takeGlobalCursor"===n.type&&t.setBrushOption("brush"===n.key?n.brushOption:{brushType:!1})})),PN(t),t.eachComponent({mainType:"brush"},(function(e,n){var a={brushId:e.id,brushIndex:n,brushName:e.name,areas:b(e.areas),selected:[]};o.push(a);var s=e.option,l=s.brushLink,u=[],h=[],c=[],p=!1;n||(i=s.throttleType,r=s.throttleDelay);var d=P(e.areas,(function(t){var e=EN[t.brushType],n=I({boundingRect:e?e(t):void 0},t);return n.selectors=function(t){var e=t.brushType,n={point:function(i){return CN[e].point(i,n,t)},rect:function(i){return CN[e].rect(i,n,t)}};return n}(n),n})),f=IN(e.option,LN,(function(t){t.mappingMethod="fixed"}));function g(t){return"all"===l||!!u[t]}function y(t){return!!t.length}V(l)&&k(l,(function(t){u[t]=1})),t.eachSeries((function(n,i){var r=c[i]=[];"parallel"===n.subType?function(t,e){var n=t.coordinateSystem;p=p||n.hasAxisBrushed(),g(e)&&n.eachActiveState(t.getData(),(function(t,e){"active"===t&&(h[e]=1)}))}(n,i):function(n,i,r){if(!n.brushSelector||function(t,e){var n=t.option.seriesIndex;return null!=n&&"all"!==n&&(V(n)?C(n,e)<0:e!==n)}(e,i))return;if(k(d,(function(i){e.brushTargetManager.controlSeries(i,n,t)&&r.push(i),p=p||y(r)})),g(i)&&y(r)){var o=n.getData();o.each((function(t){NN(n,r,o,t)&&(h[t]=1)}))}}(n,i,r)})),t.eachSeries((function(t,e){var n={seriesId:t.id,seriesIndex:e,seriesName:t.name,dataIndex:[]};a.selected.push(n);var i=c[e],r=t.getData(),o=g(e)?function(t){return h[t]?(n.dataIndex.push(r.getRawIndex(t)),"inBrush"):"outOfBrush"}:function(e){return NN(t,i,r,e)?(n.dataIndex.push(r.getRawIndex(e)),"inBrush"):"outOfBrush"};(g(e)?p:y(i))&&function(t,e,n,i,r,o){var a,s={};function l(t){return Af(n,a,t)}function u(t,e){Lf(n,a,t,e)}function h(t,h){a=null==o?t:h;var c=n.getRawDataItem(a);if(!c||!1!==c.visualMap)for(var p=i.call(r,t),d=e[p],f=s[p],g=0,y=f.length;g<y;g++){var v=f[g];d[v]&&d[v].applyVisual(t,l,u)}}k(t,(function(t){var n=cI.prepareVisualTypes(e[t]);s[t]=n})),null==o?n.each(h):n.each([o],h)}(LN,f,r,o)}))})),function(t,e,n,i,r){if(!r)return;var o=t.getZr();if(o[kN])return;o.__ecBrushSelect||(o.__ecBrushSelect=RN);Yd(o,"__ecBrushSelect",n,e)(t,i)}(e,i,r,o,n)}function RN(t,e){if(!t.isDisposed()){var n=t.getZr();n[kN]=!0,t.dispatchAction({type:"brushSelect",batch:e}),n[kN]=!1}}function NN(t,e,n,i){for(var r=0,o=e.length;r<o;r++){var a=e[r];if(t.brushSelector(i,n,a.selectors,a))return!0}}var EN={rect:function(t){return zN(t.range)},polygon:function(t){for(var e,n=t.range,i=0,r=n.length;i<r;i++){e=e||[[1/0,-1/0],[1/0,-1/0]];var o=n[i];o[0]<e[0][0]&&(e[0][0]=o[0]),o[0]>e[0][1]&&(e[0][1]=o[0]),o[1]<e[1][0]&&(e[1][0]=o[1]),o[1]>e[1][1]&&(e[1][1]=o[1])}return e&&zN(e)}};function zN(t){return new Pn(t[0][0],t[1][0],t[0][1]-t[0][0],t[1][1]-t[1][0])}var BN=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.init=function(t,e){this.ecModel=t,this.api=e,this.model,(this._brushController=new VC(e.getZr())).on("brush",z(this._onBrush,this)).mount()},n.prototype.render=function(t,e,n,i){this.model=t,this._updateController(t,e,n,i)},n.prototype.updateTransform=function(t,e,n,i){PN(e),this._updateController(t,e,n,i)},n.prototype.updateVisual=function(t,e,n,i){this.updateTransform(t,e,n,i)},n.prototype.updateView=function(t,e,n,i){this._updateController(t,e,n,i)},n.prototype._updateController=function(t,e,n,i){(!i||i.$from!==t.id)&&this._brushController.setPanels(t.brushTargetManager.makePanelOpts(n)).enableBrush(t.brushOption).updateCovers(t.areas.slice())},n.prototype.dispose=function(){this._brushController.dispose()},n.prototype._onBrush=function(t){var e=this.model.id,n=this.model.brushTargetManager.setOutputRanges(t.areas,this.ecModel);(!t.isEnd||t.removeOnClick)&&this.api.dispatchAction({type:"brush",brushId:e,areas:b(n),$from:e}),t.isEnd&&this.api.dispatchAction({type:"brushEnd",brushId:e,areas:b(n),$from:e})},n.type="brush",n}(kd),VN=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.areas=[],e.brushOption={},e}return e(n,t),n.prototype.optionUpdated=function(t,e){var n=this.option;!e&&TN(n,t,["inBrush","outOfBrush"]);var i=n.inBrush=n.inBrush||{};n.outOfBrush=n.outOfBrush||{color:"#ddd"},i.hasOwnProperty("liftZ")||(i.liftZ=5)},n.prototype.setAreas=function(t){t&&(this.areas=P(t,(function(t){return FN(this.option,t)}),this))},n.prototype.setBrushOption=function(t){this.brushOption=FN(this.option,t),this.brushType=this.brushOption.brushType},n.type="brush",n.dependencies=["geo","grid","xAxis","yAxis","parallel","series"],n.defaultOption={seriesIndex:"all",brushType:"rect",brushMode:"single",transformable:!0,brushStyle:{borderWidth:1,color:"rgba(210,219,238,0.3)",borderColor:"#D2DBEE"},throttleType:"fixRate",throttleDelay:0,removeOnClick:!0,z:1e4},n}(uc);function FN(t,e){return w({brushType:t.brushType,brushMode:t.brushMode,transformable:t.transformable,brushStyle:new ah(t.brushStyle).getItemStyle(),removeOnClick:t.removeOnClick,z:t.z},e,!0)}var GN=["rect","polygon","lineX","lineY","keep","clear"],HN=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.render=function(t,e,n){var i,r,o;e.eachComponent({mainType:"brush"},(function(t){i=t.brushType,r=t.brushOption.brushMode||"single",o=o||!!t.areas.length})),this._brushType=i,this._brushMode=r,k(t.get("type",!0),(function(e){t.setIconStatus(e,("keep"===e?"multiple"===r:"clear"===e?o:e===i)?"emphasis":"normal")}))},n.prototype.updateView=function(t,e,n){this.render(t,e,n)},n.prototype.getIcons=function(){var t=this.model,e=t.get("icon",!0),n={};return k(t.get("type",!0),(function(t){e[t]&&(n[t]=e[t])})),n},n.prototype.onclick=function(t,e,n){var i=this._brushType,r=this._brushMode;"clear"===n?(e.dispatchAction({type:"axisAreaSelect",intervals:[]}),e.dispatchAction({type:"brush",command:"clear",areas:[]})):e.dispatchAction({type:"takeGlobalCursor",key:"brush",brushOption:{brushType:"keep"===n?i:i!==n&&n,brushMode:"keep"===n?"multiple"===r?"single":"multiple":r}})},n.getDefaultOption=function(t){return{show:!0,type:GN.slice(),icon:{rect:"M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13",polygon:"M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2",lineX:"M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4",lineY:"M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4",keep:"M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z",clear:"M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2"},title:t.getLocale(["toolbox","brush","title"])}},n}(yR);var WN=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.layoutMode={type:"box",ignoreSize:!0},e}return e(n,t),n.type="title",n.defaultOption={zlevel:0,z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bold",color:"#464646"},subtextStyle:{fontSize:12,color:"#6E7079"}},n}(uc),YN=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n){if(this.group.removeAll(),t.get("show")){var i=this.group,r=t.getModel("textStyle"),o=t.getModel("subtextStyle"),a=t.get("textAlign"),s=Q(t.get("textBaseline"),t.get("textVerticalAlign")),l=new Ka({style:Vu(r,{text:t.get("text"),fill:r.getTextColor()},{disableBox:!0}),z2:10}),u=l.getBoundingRect(),h=t.get("subtext"),c=new Ka({style:Vu(o,{text:h,fill:o.getTextColor(),y:u.height+t.get("itemGap"),verticalAlign:"top"},{disableBox:!0}),z2:10}),p=t.get("link"),d=t.get("sublink"),f=t.get("triggerEvent",!0);l.silent=!p&&!f,c.silent=!d&&!f,p&&l.on("click",(function(){Kh(p,"_"+t.get("target"))})),d&&c.on("click",(function(){Kh(d,"_"+t.get("subtarget"))})),rs(l).eventData=rs(c).eventData=f?{componentType:"title",componentIndex:t.componentIndex}:null,i.add(l),h&&i.add(c);var g=i.getBoundingRect(),y=t.getBoxLayoutParams();y.width=g.width,y.height=g.height;var v=nc(y,{width:n.getWidth(),height:n.getHeight()},t.get("padding"));a||("middle"===(a=t.get("left")||t.get("right"))&&(a="center"),"right"===a?v.x+=v.width:"center"===a&&(v.x+=v.width/2)),s||("center"===(s=t.get("top")||t.get("bottom"))&&(s="middle"),"bottom"===s?v.y+=v.height:"middle"===s&&(v.y+=v.height/2),s=s||"top"),i.x=v.x,i.y=v.y,i.markRedraw();var m={align:a,verticalAlign:s};l.setStyle(m),c.setStyle(m),g=i.getBoundingRect();var _=v.margin,x=t.getItemStyle(["color","opacity"]);x.fill=t.get("backgroundColor");var b=new Za({shape:{x:g.x-_[3],y:g.y-_[0],width:g.width+_[1]+_[3],height:g.height+_[0]+_[2],r:t.get("borderRadius")},style:x,subPixelOptimize:!0,silent:!0});i.add(b)}},n.type="title",n}(kd);var XN=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.layoutMode="box",e}return e(n,t),n.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n),this._initData()},n.prototype.mergeOption=function(e){t.prototype.mergeOption.apply(this,arguments),this._initData()},n.prototype.setCurrentIndex=function(t){null==t&&(t=this.option.currentIndex);var e=this._data.count();this.option.loop?t=(t%e+e)%e:(t>=e&&(t=e-1),t<0&&(t=0)),this.option.currentIndex=t},n.prototype.getCurrentIndex=function(){return this.option.currentIndex},n.prototype.isIndexMax=function(){return this.getCurrentIndex()>=this._data.count()-1},n.prototype.setPlayState=function(t){this.option.autoPlay=!!t},n.prototype.getPlayState=function(){return!!this.option.autoPlay},n.prototype._initData=function(){var t,e=this.option,n=e.data||[],i=e.axisType,r=this._names=[];"category"===i?(t=[],k(n,(function(e,n){var i,o=vr(dr(e),"");Y(e)?(i=b(e)).value=n:i=n,t.push(i),r.push(o)}))):t=n;var o={category:"ordinal",time:"time",value:"number"}[i]||"number";(this._data=new tm([{name:"value",type:o}],this)).initData(t,r)},n.prototype.getData=function(){return this._data},n.prototype.getCategories=function(){if("category"===this.get("axisType"))return this._names.slice()},n.type="timeline",n.defaultOption={zlevel:0,z:4,show:!0,axisType:"time",realtime:!0,left:"20%",top:null,right:"20%",bottom:0,width:null,height:40,padding:5,controlPosition:"left",autoPlay:!1,rewind:!1,loop:!0,playInterval:2e3,currentIndex:0,itemStyle:{},label:{color:"#000"},data:[]},n}(uc),UN=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.type="timeline.slider",n.defaultOption=uh(XN.defaultOption,{backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,orient:"horizontal",inverse:!1,tooltip:{trigger:"item"},symbol:"circle",symbolSize:12,lineStyle:{show:!0,width:2,color:"#DAE1F5"},label:{position:"auto",show:!0,interval:"auto",rotate:0,color:"#A4B1D7"},itemStyle:{color:"#A4B1D7",borderWidth:1},checkpointStyle:{symbol:"circle",symbolSize:15,color:"#316bf3",borderColor:"#fff",borderWidth:2,shadowBlur:2,shadowOffsetX:1,shadowOffsetY:1,shadowColor:"rgba(0, 0, 0, 0.3)",animation:!0,animationDuration:300,animationEasing:"quinticInOut"},controlStyle:{show:!0,showPlayBtn:!0,showPrevBtn:!0,showNextBtn:!0,itemSize:24,itemGap:12,position:"left",playIcon:"path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z",stopIcon:"path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z",nextIcon:"M2,18.5A1.52,1.52,0,0,1,.92,18a1.49,1.49,0,0,1,0-2.12L7.81,9.36,1,3.11A1.5,1.5,0,1,1,3,.89l8,7.34a1.48,1.48,0,0,1,.49,1.09,1.51,1.51,0,0,1-.46,1.1L3,18.08A1.5,1.5,0,0,1,2,18.5Z",prevIcon:"M10,.5A1.52,1.52,0,0,1,11.08,1a1.49,1.49,0,0,1,0,2.12L4.19,9.64,11,15.89a1.5,1.5,0,1,1-2,2.22L1,10.77A1.48,1.48,0,0,1,.5,9.68,1.51,1.51,0,0,1,1,8.58L9,.92A1.5,1.5,0,0,1,10,.5Z",prevBtnSize:18,nextBtnSize:18,color:"#A4B1D7",borderColor:"#A4B1D7",borderWidth:1},emphasis:{label:{show:!0,color:"#6f778d"},itemStyle:{color:"#316BF3"},controlStyle:{color:"#316BF3",borderColor:"#316BF3",borderWidth:2}},progress:{lineStyle:{color:"#316BF3"},itemStyle:{color:"#316BF3"},label:{color:"#6f778d"}},data:[]}),n}(XN);D(UN,Ep.prototype);var ZN=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.type="timeline",n}(kd),jN=function(t){function n(e,n,i,r){var o=t.call(this,e,n,i)||this;return o.type=r||"value",o}return e(n,t),n.prototype.getLabelModel=function(){return this.model.getModel("label")},n.prototype.isHorizontal=function(){return"horizontal"===this.model.get("orient")},n}(B_),qN=Math.PI,KN=br(),$N=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.init=function(t,e){this.api=e},n.prototype.render=function(t,e,n){if(this.model=t,this.api=n,this.ecModel=e,this.group.removeAll(),t.get("show",!0)){var i=this._layout(t,n),r=this._createGroup("_mainGroup"),o=this._createGroup("_labelGroup"),a=this._axis=this._createAxis(i,t);t.formatTooltip=function(t){return hd("nameValue",{noName:!0,value:a.scale.getLabel({value:t})})},k(["AxisLine","AxisTick","Control","CurrentPointer"],(function(e){this["_render"+e](i,r,a,t)}),this),this._renderAxisLabel(i,o,a,t),this._position(i,t)}this._doPlayStop(),this._updateTicksStatus()},n.prototype.remove=function(){this._clearTimer(),this.group.removeAll()},n.prototype.dispose=function(){this._clearTimer()},n.prototype._layout=function(t,e){var n,i,r,o,a=t.get(["label","position"]),s=t.get("orient"),l=function(t,e){return nc(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()},t.get("padding"))}(t,e),u={horizontal:"center",vertical:(n=null==a||"auto"===a?"horizontal"===s?l.y+l.height/2<e.getHeight()/2?"-":"+":l.x+l.width/2<e.getWidth()/2?"+":"-":G(a)?{horizontal:{top:"-",bottom:"+"},vertical:{left:"-",right:"+"}}[s][a]:a)>=0||"+"===n?"left":"right"},h={horizontal:n>=0||"+"===n?"top":"bottom",vertical:"middle"},c={horizontal:0,vertical:qN/2},p="vertical"===s?l.height:l.width,d=t.getModel("controlStyle"),f=d.get("show",!0),g=f?d.get("itemSize"):0,y=f?d.get("itemGap"):0,v=g+y,m=t.get(["label","rotate"])||0;m=m*qN/180;var _=d.get("position",!0),x=f&&d.get("showPlayBtn",!0),b=f&&d.get("showPrevBtn",!0),w=f&&d.get("showNextBtn",!0),S=0,M=p;"left"===_||"bottom"===_?(x&&(i=[0,0],S+=v),b&&(r=[S,0],S+=v),w&&(o=[M-g,0],M-=v)):(x&&(i=[M-g,0],M-=v),b&&(r=[0,0],S+=v),w&&(o=[M-g,0],M-=v));var I=[S,M];return t.get("inverse")&&I.reverse(),{viewRect:l,mainLength:p,orient:s,rotation:c[s],labelRotation:m,labelPosOpt:n,labelAlign:t.get(["label","align"])||u[s],labelBaseline:t.get(["label","verticalAlign"])||t.get(["label","baseline"])||h[s],playPosition:i,prevBtnPosition:r,nextBtnPosition:o,axisExtent:I,controlSize:g,controlGap:y}},n.prototype._position=function(t,e){var n=this._mainGroup,i=this._labelGroup,r=t.viewRect;if("vertical"===t.orient){var o=[1,0,0,1,0,0],a=r.x,s=r.y+r.height;ve(o,o,[-a,-s]),me(o,o,-qN/2),ve(o,o,[a,s]),(r=r.clone()).applyTransform(o)}var l=y(r),u=y(n.getBoundingRect()),h=y(i.getBoundingRect()),c=[n.x,n.y],p=[i.x,i.y];p[0]=c[0]=l[0][0];var d,f=t.labelPosOpt;null==f||G(f)?(v(c,u,l,1,d="+"===f?0:1),v(p,h,l,1,1-d)):(v(c,u,l,1,d=f>=0?0:1),p[1]=c[1]+f);function g(t){t.originX=l[0][0]-t.x,t.originY=l[1][0]-t.y}function y(t){return[[t.x,t.x+t.width],[t.y,t.y+t.height]]}function v(t,e,n,i,r){t[i]+=n[i][r]-e[i][r]}n.setPosition(c),i.setPosition(p),n.rotation=i.rotation=t.rotation,g(n),g(i)},n.prototype._createAxis=function(t,e){var n=e.getData(),i=e.get("axisType"),r=function(t,e){if(e=e||t.get("type"))switch(e){case"category":return new bm({ordinalMeta:t.getCategories(),extent:[1/0,-1/0]});case"time":return new Em({locale:t.ecModel.getLocaleModel(),useUTC:t.ecModel.get("useUTC")});default:return new Sm}}(e,i);r.getTicks=function(){return n.mapArray(["value"],(function(t){return{value:t}}))};var o=n.getDataExtent("value");r.setExtent(o[0],o[1]),r.niceTicks();var a=new jN("value",r,t.axisExtent,i);return a.model=e,a},n.prototype._createGroup=function(t){var e=this[t]=new Pi;return this.group.add(e),e},n.prototype._renderAxisLine=function(t,e,n,i){var r=n.getExtent();if(i.get(["lineStyle","show"])){var o=new zl({shape:{x1:r[0],y1:0,x2:r[1],y2:0},style:M({lineCap:"round"},i.getModel("lineStyle").getLineStyle()),silent:!0,z2:1});e.add(o);var a=this._progressLine=new zl({shape:{x1:r[0],x2:this._currentPointer?this._currentPointer.x:r[0],y1:0,y2:0},style:I({lineCap:"round",lineWidth:o.style.lineWidth},i.getModel(["progress","lineStyle"]).getLineStyle()),silent:!0,z2:1});e.add(a)}},n.prototype._renderAxisTick=function(t,e,n,i){var r=this,o=i.getData(),a=n.scale.getTicks();this._tickSymbols=[],k(a,(function(t){var a=n.dataToCoord(t.value),s=o.getItemModel(t.value),l=s.getModel("itemStyle"),u=s.getModel(["emphasis","itemStyle"]),h=s.getModel(["progress","itemStyle"]),c={x:a,y:0,onclick:z(r._changeTimeline,r,t.value)},p=JN(s,l,e,c);p.ensureState("emphasis").style=u.getItemStyle(),p.ensureState("progress").style=h.getItemStyle(),Ns(p);var d=rs(p);s.get("tooltip")?(d.dataIndex=t.value,d.dataModel=i):d.dataIndex=d.dataModel=null,r._tickSymbols.push(p)}))},n.prototype._renderAxisLabel=function(t,e,n,i){var r=this;if(n.getLabelModel().get("show")){var o=i.getData(),a=n.getViewLabels();this._tickLabels=[],k(a,(function(i){var a=i.tickValue,s=o.getItemModel(a),l=s.getModel("label"),u=s.getModel(["emphasis","label"]),h=s.getModel(["progress","label"]),c=n.dataToCoord(i.tickValue),p=new Ka({x:c,y:0,rotation:t.labelRotation-t.rotation,onclick:z(r._changeTimeline,r,a),silent:!1,style:Vu(l,{text:i.formattedLabel,align:t.labelAlign,verticalAlign:t.labelBaseline})});p.ensureState("emphasis").style=Vu(u),p.ensureState("progress").style=Vu(h),e.add(p),Ns(p),KN(p).dataIndex=a,r._tickLabels.push(p)}))}},n.prototype._renderControl=function(t,e,n,i){var r=t.controlSize,o=t.rotation,a=i.getModel("controlStyle").getItemStyle(),s=i.getModel(["emphasis","controlStyle"]).getItemStyle(),l=i.getPlayState(),u=i.get("inverse",!0);function h(t,n,l,u){if(t){var h=Hn(Q(i.get(["controlStyle",n+"BtnSize"]),r),r),c=function(t,e,n,i){var r=i.style,o=Du(t.get(["controlStyle",e]),i||{},new Pn(n[0],n[1],n[2],n[3]));r&&o.setStyle(r);return o}(i,n+"Icon",[0,-h/2,h,h],{position:t,origin:[r/2,0],rotation:u?-o:0,rectHover:!0,style:a,onclick:l});c.ensureState("emphasis").style=s,e.add(c),Ns(c)}}h(t.nextBtnPosition,"next",z(this._changeTimeline,this,u?"-":"+")),h(t.prevBtnPosition,"prev",z(this._changeTimeline,this,u?"+":"-")),h(t.playPosition,l?"stop":"play",z(this._handlePlayClick,this,!l),!0)},n.prototype._renderCurrentPointer=function(t,e,n,i){var r=i.getData(),o=i.getCurrentIndex(),a=r.getItemModel(o).getModel("checkpointStyle"),s=this,l={onCreate:function(t){t.draggable=!0,t.drift=z(s._handlePointerDrag,s),t.ondragend=z(s._handlePointerDragend,s),QN(t,s._progressLine,o,n,i,!0)},onUpdate:function(t){QN(t,s._progressLine,o,n,i)}};this._currentPointer=JN(a,a,this._mainGroup,{},this._currentPointer,l)},n.prototype._handlePlayClick=function(t){this._clearTimer(),this.api.dispatchAction({type:"timelinePlayChange",playState:t,from:this.uid})},n.prototype._handlePointerDrag=function(t,e,n){this._clearTimer(),this._pointerChangeTimeline([n.offsetX,n.offsetY])},n.prototype._handlePointerDragend=function(t){this._pointerChangeTimeline([t.offsetX,t.offsetY],!0)},n.prototype._pointerChangeTimeline=function(t,e){var n=this._toAxisCoord(t)[0],i=Wi(this._axis.getExtent().slice());n>i[1]&&(n=i[1]),n<i[0]&&(n=i[0]),this._currentPointer.x=n,this._currentPointer.markRedraw(),this._progressLine.shape.x2=n,this._progressLine.dirty();var r=this._findNearestTick(n),o=this.model;(e||r!==o.getCurrentIndex()&&o.get("realtime"))&&this._changeTimeline(r)},n.prototype._doPlayStop=function(){var t=this;this._clearTimer(),this.model.getPlayState()&&(this._timer=setTimeout((function(){var e=t.model;t._changeTimeline(e.getCurrentIndex()+(e.get("rewind",!0)?-1:1))}),this.model.get("playInterval")))},n.prototype._toAxisCoord=function(t){return Su(t,this._mainGroup.getLocalTransform(),!0)},n.prototype._findNearestTick=function(t){var e,n=this.model.getData(),i=1/0,r=this._axis;return n.each(["value"],(function(n,o){var a=r.dataToCoord(n),s=Math.abs(a-t);s<i&&(i=s,e=o)})),e},n.prototype._clearTimer=function(){this._timer&&(clearTimeout(this._timer),this._timer=null)},n.prototype._changeTimeline=function(t){var e=this.model.getCurrentIndex();"+"===t?t=e+1:"-"===t&&(t=e-1),this.api.dispatchAction({type:"timelineChange",currentIndex:t,from:this.uid})},n.prototype._updateTicksStatus=function(){var t=this.model.getCurrentIndex(),e=this._tickSymbols,n=this._tickLabels;if(e)for(var i=0;i<e.length;i++)e&&e[i]&&e[i].toggleState("progress",i<t);if(n)for(i=0;i<n.length;i++)n&&n[i]&&n[i].toggleState("progress",KN(n[i]).dataIndex<=t)},n.type="timeline.slider",n}(ZN);function JN(t,e,n,i,r,o){var a=e.get("color");r?(r.setColor(a),n.add(r),o&&o.onUpdate(r)):((r=Ig(t.get("symbol"),-1,-1,2,2,a)).setStyle("strokeNoScale",!0),n.add(r),o&&o.onCreate(r));var s=e.getItemStyle(["color"]);r.setStyle(s),i=w({rectHover:!0,z2:100},i,!0);var l=t.get("symbolSize");l=l instanceof Array?l.slice():[+l,+l],i.scaleX=l[0]/2,i.scaleY=l[1]/2;var u=t.get("symbolOffset");u&&(i.x=i.x||0,i.y=i.y||0,i.x+=Gi(u[0],l[0]),i.y+=Gi(u[1],l[1]));var h=t.get("symbolRotate");return i.rotation=(h||0)*Math.PI/180||0,r.attr(i),r.updateTransform(),r}function QN(t,e,n,i,r,o){if(!t.dragging){var a=r.getModel("checkpointStyle"),s=i.dataToCoord(r.getData().get("value",n));if(o||!a.get("animation",!0))t.attr({x:s,y:0}),e&&e.attr({shape:{x2:s}});else{var l={duration:a.get("animationDuration",!0),easing:a.get("animationEasing",!0)};t.stopAnimation(null,!0),t.animateTo({x:s,y:0},l),e&&e.animateTo({shape:{x2:s}},l)}}}function tE(t){var e=t&&t.timeline;V(e)||(e=e?[e]:[]),k(e,(function(t){t&&function(t){var e=t.type,n={number:"value",time:"time"};n[e]&&(t.axisType=n[e],delete t.type);if(eE(t),nE(t,"controlPosition")){var i=t.controlStyle||(t.controlStyle={});nE(i,"position")||(i.position=t.controlPosition),"none"!==i.position||nE(i,"show")||(i.show=!1,delete i.position),delete t.controlPosition}k(t.data||[],(function(t){Y(t)&&!V(t)&&(!nE(t,"value")&&nE(t,"name")&&(t.value=t.name),eE(t))}))}(t)}))}function eE(t){var e=t.itemStyle||(t.itemStyle={}),n=e.emphasis||(e.emphasis={}),i=t.label||t.label||{},r=i.normal||(i.normal={}),o={normal:1,emphasis:1};k(i,(function(t,e){o[e]||nE(r,e)||(r[e]=t)})),n.label&&!nE(i,"emphasis")&&(i.emphasis=n.label,delete n.label)}function nE(t,e){return t.hasOwnProperty(e)}function iE(t){cr(t,"label",["show"])}var rE=br(),oE=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.createdBySelf=!1,e}return e(n,t),n.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n),this._mergeOption(t,n,!1,!0)},n.prototype.isAnimationEnabled=function(){if(o.node)return!1;var t=this.__hostSeries;return this.getShallow("animation")&&t&&t.isAnimationEnabled()},n.prototype.mergeOption=function(t,e){this._mergeOption(t,e,!1,!1)},n.prototype._mergeOption=function(t,e,n,i){var r=this.mainType;n||e.eachSeries((function(t){var n=t.get(this.mainType,!0),o=rE(t)[r];n&&n.data?(o?o._mergeOption(n,e,!0):(i&&iE(n),k(n.data,(function(t){t instanceof Array?(iE(t[0]),iE(t[1])):iE(t)})),M(o=this.createMarkerModelFromSeries(n,this,e),{mainType:this.mainType,seriesIndex:t.seriesIndex,name:t.name,createdBySelf:!0}),o.__hostSeries=t),rE(t)[r]=o):rE(t)[r]=null}),this)},n.prototype.formatTooltip=function(t,e,n){var i=this.getData(),r=this.getRawValue(t),o=i.getName(t);return hd("section",{header:this.name,blocks:[hd("nameValue",{name:o,value:r,noName:!o,noValue:null==r})]})},n.prototype.getData=function(){return this._data},n.prototype.setData=function(t){this._data=t},n.getMarkerModelFromSeries=function(t,e){return rE(t)[e]},n.type="marker",n.dependencies=["series","grid","polar","geo"],n}(uc);D(oE,Ep.prototype);var aE=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.createMarkerModelFromSeries=function(t,e,i){return new n(t,e,i)},n.type="markPoint",n.defaultOption={zlevel:0,z:5,symbol:"pin",symbolSize:50,tooltip:{trigger:"item"},label:{show:!0,position:"inside"},itemStyle:{borderWidth:2},emphasis:{label:{show:!0}}},n}(oE);function sE(t,e,n,i,r,o){var a=[],s=lm(e,i)?e.getCalculationInfo("stackResultDimension"):i,l=dE(e,s,t),u=e.indicesOfNearest(s,l)[0];a[r]=e.get(n,u),a[o]=e.get(s,u);var h=e.get(i,u),c=Yi(e.get(i,u));return(c=Math.min(c,20))>=0&&(a[o]=+a[o].toFixed(c)),[a,h]}var lE={min:B(sE,"min"),max:B(sE,"max"),average:B(sE,"average"),median:B(sE,"median")};function uE(t,e){var n=t.getData(),i=t.coordinateSystem;if(e&&!function(t){return!isNaN(parseFloat(t.x))&&!isNaN(parseFloat(t.y))}(e)&&!V(e.coord)&&i){var r=i.dimensions,o=hE(e,n,i,t);if((e=b(e)).type&&lE[e.type]&&o.baseAxis&&o.valueAxis){var a=C(r,o.baseAxis.dim),s=C(r,o.valueAxis.dim),l=lE[e.type](n,o.baseDataDim,o.valueDataDim,a,s);e.coord=l[0],e.value=l[1]}else{for(var u=[null!=e.xAxis?e.xAxis:e.radiusAxis,null!=e.yAxis?e.yAxis:e.angleAxis],h=0;h<2;h++)lE[u[h]]&&(u[h]=dE(n,n.mapDimension(r[h]),u[h]));e.coord=u}}return e}function hE(t,e,n,i){var r={};return null!=t.valueIndex||null!=t.valueDim?(r.valueDataDim=null!=t.valueIndex?e.getDimension(t.valueIndex):t.valueDim,r.valueAxis=n.getAxis(function(t,e){var n=t.getData(),i=n.dimensions;e=n.getDimension(e);for(var r=0;r<i.length;r++){var o=n.getDimensionInfo(i[r]);if(o.name===e)return o.coordDim}}(i,r.valueDataDim)),r.baseAxis=n.getOtherAxis(r.valueAxis),r.baseDataDim=e.mapDimension(r.baseAxis.dim)):(r.baseAxis=i.getBaseAxis(),r.valueAxis=n.getOtherAxis(r.baseAxis),r.baseDataDim=e.mapDimension(r.baseAxis.dim),r.valueDataDim=e.mapDimension(r.valueAxis.dim)),r}function cE(t,e){return!(t&&t.containData&&e.coord&&!function(t){return!(isNaN(parseFloat(t.x))&&isNaN(parseFloat(t.y)))}(e))||t.containData(e.coord)}function pE(t,e,n,i){return i<2?t.coord&&t.coord[i]:t.value}function dE(t,e,n){if("average"===n){var i=0,r=0;return t.each(e,(function(t,e){isNaN(t)||(i+=t,r++)})),i/r}return"median"===n?t.getMedian(e):t.getDataExtent(e)["max"===n?1:0]}var fE=br(),gE=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.init=function(){this.markerGroupMap=lt()},n.prototype.render=function(t,e,n){var i=this,r=this.markerGroupMap;r.each((function(t){fE(t).keep=!1})),e.eachSeries((function(t){var r=oE.getMarkerModelFromSeries(t,i.type);r&&i.renderSeries(t,r,e,n)})),r.each((function(t){!fE(t).keep&&i.group.remove(t.group)}))},n.prototype.markKeep=function(t){fE(t).keep=!0},n.prototype.blurSeries=function(t){var e=this;k(t,(function(t){var n=oE.getMarkerModelFromSeries(t,e.type);n&&n.getData().eachItemGraphicEl((function(t){t&&Cs(t)}))}))},n.type="marker",n}(kd);function yE(t,e,n){var i=e.coordinateSystem;t.each((function(r){var o,a=t.getItemModel(r),s=Gi(a.get("x"),n.getWidth()),l=Gi(a.get("y"),n.getHeight());if(isNaN(s)||isNaN(l)){if(e.getMarkerPosition)o=e.getMarkerPosition(t.getValues(t.dimensions,r));else if(i){var u=t.get(i.dimensions[0],r),h=t.get(i.dimensions[1],r);o=i.dataToPoint([u,h])}}else o=[s,l];isNaN(s)||(o[0]=s),isNaN(l)||(o[1]=l),t.setItemLayout(r,o)}))}var vE=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.updateTransform=function(t,e,n){e.eachSeries((function(t){var e=oE.getMarkerModelFromSeries(t,"markPoint");e&&(yE(e.getData(),t,n),this.markerGroupMap.get(t.id).updateLayout())}),this)},n.prototype.renderSeries=function(t,e,n,i){var r=t.coordinateSystem,o=t.id,a=t.getData(),s=this.markerGroupMap,l=s.get(o)||s.set(o,new Ux),u=function(t,e,n){var i;i=t?P(t&&t.dimensions,(function(t){return I({name:t},e.getData().getDimensionInfo(e.getData().mapDimension(t))||{})})):[{name:"value",type:"float"}];var r=new tm(i,n),o=P(n.get("data"),B(uE,e));t&&(o=R(o,B(cE,t)));return r.initData(o,null,t?pE:function(t){return t.value}),r}(r,t,e);e.setData(u),yE(e.getData(),t,i),u.each((function(t){var n=u.getItemModel(t),i=n.getShallow("symbol"),r=n.getShallow("symbolSize"),o=n.getShallow("symbolRotate");if(F(i)||F(r)||F(o)){var s=e.getRawValue(t),l=e.getDataParams(t);F(i)&&(i=i(s,l)),F(r)&&(r=r(s,l)),F(o)&&(o=o(s,l))}var h=n.getModel("itemStyle").getItemStyle(),c=Df(a,"color");h.fill||(h.fill=c),u.setItemVisual(t,{symbol:i,symbolSize:r,symbolRotate:o,style:h})})),l.updateData(u),this.group.add(l.group),u.eachItemGraphicEl((function(t){t.traverse((function(t){rs(t).dataModel=e}))})),this.markKeep(l),l.group.silent=e.get("silent")||t.get("silent")},n.type="markPoint",n}(gE);var mE=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.createMarkerModelFromSeries=function(t,e,i){return new n(t,e,i)},n.type="markLine",n.defaultOption={zlevel:0,z:5,symbol:["circle","arrow"],symbolSize:[8,16],precision:2,tooltip:{trigger:"item"},label:{show:!0,position:"end",distance:5},lineStyle:{type:"dashed"},emphasis:{label:{show:!0},lineStyle:{width:3}},animationEasing:"linear"},n}(oE),_E=br(),xE=function(t,e,n,i){var r,o=t.getData();if(V(i))r=i;else{var a=i.type;if("min"===a||"max"===a||"average"===a||"median"===a||null!=i.xAxis||null!=i.yAxis){var s=void 0,l=void 0;if(null!=i.yAxis||null!=i.xAxis)s=e.getAxis(null!=i.yAxis?"y":"x"),l=J(i.yAxis,i.xAxis);else{var u=hE(i,o,e,t);s=u.valueAxis,l=dE(o,um(o,u.valueDataDim),a)}var h="x"===s.dim?0:1,c=1-h,p=b(i),d={coord:[]};p.type=null,p.coord=[],p.coord[c]=-1/0,d.coord[c]=1/0;var f=n.get("precision");f>=0&&"number"==typeof l&&(l=+l.toFixed(Math.min(f,20))),p.coord[h]=d.coord[h]=l,r=[p,d,{type:a,valueIndex:i.valueIndex,value:l}]}else r=[]}var g=[uE(t,r[0]),uE(t,r[1]),M({},r[2])];return g[2].type=g[2].type||null,w(g[2],g[0]),w(g[2],g[1]),g};function bE(t){return!isNaN(t)&&!isFinite(t)}function wE(t,e,n,i){var r=1-t,o=i.dimensions[t];return bE(e[r])&&bE(n[r])&&e[t]===n[t]&&i.getAxis(o).containData(e[t])}function SE(t,e){if("cartesian2d"===t.type){var n=e[0].coord,i=e[1].coord;if(n&&i&&(wE(1,n,i,t)||wE(0,n,i,t)))return!0}return cE(t,e[0])&&cE(t,e[1])}function ME(t,e,n,i,r){var o,a=i.coordinateSystem,s=t.getItemModel(e),l=Gi(s.get("x"),r.getWidth()),u=Gi(s.get("y"),r.getHeight());if(isNaN(l)||isNaN(u)){if(i.getMarkerPosition)o=i.getMarkerPosition(t.getValues(t.dimensions,e));else{var h=a.dimensions,c=t.get(h[0],e),p=t.get(h[1],e);o=a.dataToPoint([c,p])}if(ub(a,"cartesian2d")){var d=a.getAxis("x"),f=a.getAxis("y");h=a.dimensions;bE(t.get(h[0],e))?o[0]=d.toGlobalCoord(d.getExtent()[n?0:1]):bE(t.get(h[1],e))&&(o[1]=f.toGlobalCoord(f.getExtent()[n?0:1]))}isNaN(l)||(o[0]=l),isNaN(u)||(o[1]=u)}else o=[l,u];t.setItemLayout(e,o)}var IE=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.updateTransform=function(t,e,n){e.eachSeries((function(t){var e=oE.getMarkerModelFromSeries(t,"markLine");if(e){var i=e.getData(),r=_E(e).from,o=_E(e).to;r.each((function(e){ME(r,e,!0,t,n),ME(o,e,!1,t,n)})),i.each((function(t){i.setItemLayout(t,[r.getItemLayout(t),o.getItemLayout(t)])})),this.markerGroupMap.get(t.id).updateLayout()}}),this)},n.prototype.renderSeries=function(t,e,n,i){var r=t.coordinateSystem,o=t.id,a=t.getData(),s=this.markerGroupMap,l=s.get(o)||s.set(o,new wT);this.group.add(l.group);var u=function(t,e,n){var i;i=t?P(t&&t.dimensions,(function(t){return I({name:t},e.getData().getDimensionInfo(e.getData().mapDimension(t))||{})})):[{name:"value",type:"float"}];var r=new tm(i,n),o=new tm(i,n),a=new tm([],n),s=P(n.get("data"),B(xE,e,t,n));t&&(s=R(s,B(SE,t)));var l=t?pE:function(t){return t.value};return r.initData(P(s,(function(t){return t[0]})),null,l),o.initData(P(s,(function(t){return t[1]})),null,l),a.initData(P(s,(function(t){return t[2]}))),a.hasItemOption=!0,{from:r,to:o,line:a}}(r,t,e),h=u.from,c=u.to,p=u.line;_E(e).from=h,_E(e).to=c,e.setData(p);var d=e.get("symbol"),f=e.get("symbolSize");function g(e,n,r){var o=e.getItemModel(n);ME(e,n,r,t,i);var s=o.getModel("itemStyle").getItemStyle();null==s.fill&&(s.fill=Df(a,"color")),e.setItemVisual(n,{symbolRotate:o.get("symbolRotate"),symbolSize:o.get("symbolSize")||f[r?0:1],symbol:o.get("symbol",!0)||d[r?0:1],style:s})}V(d)||(d=[d,d]),V(f)||(f=[f,f]),u.from.each((function(t){g(h,t,!0),g(c,t,!1)})),p.each((function(t){var e=p.getItemModel(t).getModel("lineStyle").getLineStyle();p.setItemLayout(t,[h.getItemLayout(t),c.getItemLayout(t)]),null==e.stroke&&(e.stroke=h.getItemVisual(t,"style").fill),p.setItemVisual(t,{fromSymbolRotate:h.getItemVisual(t,"symbolRotate"),fromSymbolSize:h.getItemVisual(t,"symbolSize"),fromSymbol:h.getItemVisual(t,"symbol"),toSymbolRotate:c.getItemVisual(t,"symbolRotate"),toSymbolSize:c.getItemVisual(t,"symbolSize"),toSymbol:c.getItemVisual(t,"symbol"),style:e})})),l.updateData(p),u.line.eachItemGraphicEl((function(t,n){t.traverse((function(t){rs(t).dataModel=e}))})),this.markKeep(l),l.group.silent=e.get("silent")||t.get("silent")},n.type="markLine",n}(gE);var TE=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.createMarkerModelFromSeries=function(t,e,i){return new n(t,e,i)},n.type="markArea",n.defaultOption={zlevel:0,z:1,tooltip:{trigger:"item"},animation:!1,label:{show:!0,position:"top"},itemStyle:{borderWidth:0},emphasis:{label:{show:!0,position:"top"}}},n}(oE),CE=br(),AE=function(t,e,n,i){var r=uE(t,i[0]),o=uE(t,i[1]),a=r.coord,s=o.coord;a[0]=J(a[0],-1/0),a[1]=J(a[1],-1/0),s[0]=J(s[0],1/0),s[1]=J(s[1],1/0);var l=S([{},r,o]);return l.coord=[r.coord,o.coord],l.x0=r.x,l.y0=r.y,l.x1=o.x,l.y1=o.y,l};function DE(t){return!isNaN(t)&&!isFinite(t)}function LE(t,e,n,i){var r=1-t;return DE(e[r])&&DE(n[r])}function kE(t,e){var n=e.coord[0],i=e.coord[1];return!!(ub(t,"cartesian2d")&&n&&i&&(LE(1,n,i)||LE(0,n,i)))||(cE(t,{coord:n,x:e.x0,y:e.y0})||cE(t,{coord:i,x:e.x1,y:e.y1}))}function PE(t,e,n,i,r){var o,a=i.coordinateSystem,s=t.getItemModel(e),l=Gi(s.get(n[0]),r.getWidth()),u=Gi(s.get(n[1]),r.getHeight());if(isNaN(l)||isNaN(u)){if(i.getMarkerPosition)o=i.getMarkerPosition(t.getValues(n,e));else{var h=[d=t.get(n[0],e),f=t.get(n[1],e)];a.clampData&&a.clampData(h,h),o=a.dataToPoint(h,!0)}if(ub(a,"cartesian2d")){var c=a.getAxis("x"),p=a.getAxis("y"),d=t.get(n[0],e),f=t.get(n[1],e);DE(d)?o[0]=c.toGlobalCoord(c.getExtent()["x0"===n[0]?0:1]):DE(f)&&(o[1]=p.toGlobalCoord(p.getExtent()["y0"===n[1]?0:1]))}isNaN(l)||(o[0]=l),isNaN(u)||(o[1]=u)}else o=[l,u];return o}var OE=[["x0","y0"],["x1","y0"],["x1","y1"],["x0","y1"]],RE=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.updateTransform=function(t,e,n){e.eachSeries((function(t){var e=oE.getMarkerModelFromSeries(t,"markArea");if(e){var i=e.getData();i.each((function(e){var r=P(OE,(function(r){return PE(i,e,r,t,n)}));i.setItemLayout(e,r),i.getItemGraphicEl(e).setShape("points",r)}))}}),this)},n.prototype.renderSeries=function(t,e,n,i){var r=t.coordinateSystem,o=t.id,a=t.getData(),s=this.markerGroupMap,l=s.get(o)||s.set(o,{group:new Pi});this.group.add(l.group),this.markKeep(l);var u=function(t,e,n){var i,r,o=["x0","y0","x1","y1"];t?(i=P(t&&t.dimensions,(function(t){var n=e.getData();return I({name:t},n.getDimensionInfo(n.mapDimension(t))||{})})),r=new tm(P(o,(function(t,e){return{name:t,type:i[e%2].type}})),n)):r=new tm(i=[{name:"value",type:"float"}],n);var a=P(n.get("data"),B(AE,e,t,n));t&&(a=R(a,B(kE,t)));var s=t?function(t,e,n,i){return t.coord[Math.floor(i/2)][i%2]}:function(t){return t.value};return r.initData(a,null,s),r.hasItemOption=!0,r}(r,t,e);e.setData(u),u.each((function(e){var n=P(OE,(function(n){return PE(u,e,n,t,i)})),o=!0;k(OE,(function(t){if(o){var n=u.get(t[0],e),i=u.get(t[1],e);(DE(n)||r.getAxis("x").containData(n))&&(DE(i)||r.getAxis("y").containData(i))&&(o=!1)}})),u.setItemLayout(e,{points:n,allClipped:o});var s=u.getItemModel(e).getModel("itemStyle").getItemStyle(),l=Df(a,"color");s.fill||(s.fill=l,"string"==typeof s.fill&&(s.fill=nn(s.fill,.4))),s.stroke||(s.stroke=l),u.setItemVisual(e,"style",s)})),u.diff(CE(l).data).add((function(t){var e=u.getItemLayout(t);if(!e.allClipped){var n=new Pl({shape:{points:e.points}});u.setItemGraphicEl(t,n),l.group.add(n)}})).update((function(t,n){var i=CE(l).data.getItemGraphicEl(n),r=u.getItemLayout(t);r.allClipped?i&&l.group.remove(i):(i?yu(i,{shape:{points:r.points}},e,t):i=new Pl({shape:{points:r.points}}),u.setItemGraphicEl(t,i),l.group.add(i))})).remove((function(t){var e=CE(l).data.getItemGraphicEl(t);l.group.remove(e)})).execute(),u.eachItemGraphicEl((function(t,n){var i=u.getItemModel(n),r=u.getItemVisual(n,"style");t.useStyle(u.getItemVisual(n,"style")),zu(t,Bu(i),{labelFetcher:e,labelDataIndex:n,defaultText:u.getName(n)||"",inheritColor:"string"==typeof r.fill?nn(r.fill,1):"#000"}),Vs(t,i),Ns(t),rs(t).dataModel=e})),CE(l).data=u,l.group.silent=e.get("silent")||t.get("silent")},n.type="markArea",n}(gE);var NE=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.layoutMode={type:"box",ignoreSize:!0},e}return e(n,t),n.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n),t.selected=t.selected||{},this._updateSelector(t)},n.prototype.mergeOption=function(e,n){t.prototype.mergeOption.call(this,e,n),this._updateSelector(e)},n.prototype._updateSelector=function(t){var e=t.selector,n=this.ecModel;!0===e&&(e=t.selector=["all","inverse"]),V(e)&&k(e,(function(t,i){G(t)&&(t={type:t}),e[i]=w(t,function(t,e){return"all"===e?{type:"all",title:t.getLocale(["legend","selector","all"])}:"inverse"===e?{type:"inverse",title:t.getLocale(["legend","selector","inverse"])}:void 0}(n,t.type))}))},n.prototype.optionUpdated=function(){this._updateData(this.ecModel);var t=this._data;if(t[0]&&"single"===this.get("selectedMode")){for(var e=!1,n=0;n<t.length;n++){var i=t[n].get("name");if(this.isSelected(i)){this.select(i),e=!0;break}}!e&&this.select(t[0].get("name"))}},n.prototype._updateData=function(t){var e=[],n=[];t.eachRawSeries((function(i){var r,o=i.name;if(n.push(o),i.legendVisualProvider){var a=i.legendVisualProvider.getAllNames();t.isSeriesFiltered(i)||(n=n.concat(a)),a.length?e=e.concat(a):r=!0}else r=!0;r&&mr(i)&&e.push(i.name)})),this._availableNames=n;var i=P(this.get("data")||e,(function(t){return"string"!=typeof t&&"number"!=typeof t||(t={name:t}),new ah(t,this,this.ecModel)}),this);this._data=i},n.prototype.getData=function(){return this._data},n.prototype.select=function(t){var e=this.option.selected;"single"===this.get("selectedMode")&&k(this._data,(function(t){e[t.get("name")]=!1}));e[t]=!0},n.prototype.unSelect=function(t){"single"!==this.get("selectedMode")&&(this.option.selected[t]=!1)},n.prototype.toggleSelected=function(t){var e=this.option.selected;e.hasOwnProperty(t)||(e[t]=!0),this[e[t]?"unSelect":"select"](t)},n.prototype.allSelect=function(){var t=this._data,e=this.option.selected;k(t,(function(t){e[t.get("name",!0)]=!0}))},n.prototype.inverseSelect=function(){var t=this._data,e=this.option.selected;k(t,(function(t){var n=t.get("name",!0);e.hasOwnProperty(n)||(e[n]=!0),e[n]=!e[n]}))},n.prototype.isSelected=function(t){var e=this.option.selected;return!(e.hasOwnProperty(t)&&!e[t])&&C(this._availableNames,t)>=0},n.prototype.getOrient=function(){return"vertical"===this.get("orient")?{index:1,name:"vertical"}:{index:0,name:"horizontal"}},n.type="legend.plain",n.dependencies=["series"],n.defaultOption={zlevel:0,z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,inactiveColor:"#ccc",inactiveBorderColor:"#ccc",itemStyle:{borderWidth:0},textStyle:{color:"#333"},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:" sans-serif",color:"#666",borderWidth:1,borderColor:"#666"},emphasis:{selectorLabel:{show:!0,color:"#eee",backgroundColor:"#666"}},selectorPosition:"auto",selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1}},n}(uc),EE=B,zE=k,BE=Pi,VE=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.newlineDisabled=!1,e}return e(n,t),n.prototype.init=function(){this.group.add(this._contentGroup=new BE),this.group.add(this._selectorGroup=new BE),this._isFirstRender=!0},n.prototype.getContentGroup=function(){return this._contentGroup},n.prototype.getSelectorGroup=function(){return this._selectorGroup},n.prototype.render=function(t,e,n){var i=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),t.get("show",!0)){var r=t.get("align"),o=t.get("orient");r&&"auto"!==r||(r="right"===t.get("left")&&"vertical"===o?"right":"left");var a=t.get("selector",!0),s=t.get("selectorPosition",!0);!a||s&&"auto"!==s||(s="horizontal"===o?"end":"start"),this.renderInner(r,t,e,n,a,o,s);var l=t.getBoxLayoutParams(),u={width:n.getWidth(),height:n.getHeight()},h=t.get("padding"),c=nc(l,u,h),p=this.layoutInner(t,r,c,i,a,s),d=nc(I({width:p.width,height:p.height},l),u,h);this.group.x=d.x-p.x,this.group.y=d.y-p.y,this.group.markRedraw(),this.group.add(this._backgroundEl=bR(p,t))}},n.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},n.prototype.renderInner=function(t,e,n,i,r,o,a){var s=this.getContentGroup(),l=lt(),u=e.get("selectedMode"),h=[];n.eachRawSeries((function(t){!t.get("legendHoverLink")&&h.push(t.id)})),zE(e.getData(),(function(r,o){var a=r.get("name");if(!this.newlineDisabled&&(""===a||"\n"===a)){var c=new BE;return c.newline=!0,void s.add(c)}var p=n.getSeriesByName(a)[0];if(!l.get(a)){if(p){var d=p.getData(),f=d.getVisual("style"),g=f[d.getVisual("drawType")]||f.fill,y=f.stroke,v=f.decal,m=d.getVisual("legendSymbol")||"roundRect",_=d.getVisual("symbol");this._createItem(a,o,r,e,m,_,t,g,y,v,u).on("click",EE(GE,a,null,i,h)).on("mouseover",EE(WE,p.name,null,i,h)).on("mouseout",EE(YE,p.name,null,i,h)),l.set(a,!0)}else n.eachRawSeries((function(n){if(!l.get(a)&&n.legendVisualProvider){var s=n.legendVisualProvider;if(!s.containName(a))return;var c=s.indexOfName(a),p=s.getItemVisual(c,"style"),d=p.stroke,f=p.decal,g=p.fill,y=Ze(p.fill);y&&0===y[3]&&(y[3]=.2,g=rn(y,"rgba"));this._createItem(a,o,r,e,"roundRect",null,t,g,d,f,u).on("click",EE(GE,null,a,i,h)).on("mouseover",EE(WE,null,a,i,h)).on("mouseout",EE(YE,null,a,i,h)),l.set(a,!0)}}),this);0}}),this),r&&this._createSelector(r,e,i,o,a)},n.prototype._createSelector=function(t,e,n,i,r){var o=this.getSelectorGroup();zE(t,(function(t){var i=t.type,r=new Ka({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){n.dispatchAction({type:"all"===i?"legendAllSelect":"legendInverseSelect"})}});o.add(r),zu(r,{normal:e.getModel("selectorLabel"),emphasis:e.getModel(["emphasis","selectorLabel"])},{defaultText:t.title}),Ns(r)}))},n.prototype._createItem=function(t,e,n,i,r,o,a,s,l,u,h){var c=i.get("itemWidth"),p=i.get("itemHeight"),d=i.get("inactiveColor"),f=i.get("inactiveBorderColor"),g=i.get("symbolKeepAspect"),y=i.getModel("itemStyle"),v=i.isSelected(t),m=new BE,_=n.getModel("textStyle"),x=n.get("icon"),b=n.getModel("tooltip"),w=b.parentModel,S=Ig(r=x||r,0,0,c,p,v?s:d,null==g||g);if(m.add(FE(S,r,y,l,f,u,v)),!x&&o&&(o!==r||"none"===o)){var I=.8*p;"none"===o&&(o="circle");var T=Ig(o,(c-I)/2,(p-I)/2,I,I,v?s:d,null==g||g);m.add(FE(T,o,y,l,f,u,v))}var C="left"===a?c+5:-5,A=a,D=i.get("formatter"),L=t;"string"==typeof D&&D?L=D.replace("{name}",null!=t?t:""):"function"==typeof D&&(L=D(t)),m.add(new Ka({style:Vu(_,{text:L,x:C,y:p/2,fill:v?_.getTextColor():d,align:A,verticalAlign:"middle"})}));var k=new Za({shape:m.getBoundingRect(),invisible:!0});if(b.get("show")){var P={componentType:"legend",legendIndex:i.componentIndex,name:t,$vars:["name"]};k.tooltip=M({content:t,formatter:w.get("formatter",!0)||function(t){return t.name},formatterParams:P},b.option)}return m.add(k),m.eachChild((function(t){t.silent=!0})),k.silent=!h,this.getContentGroup().add(m),Ns(m),m.__legendDataIndex=e,m},n.prototype.layoutInner=function(t,e,n,i,r,o){var a=this.getContentGroup(),s=this.getSelectorGroup();ec(t.get("orient"),a,t.get("itemGap"),n.width,n.height);var l=a.getBoundingRect(),u=[-l.x,-l.y];if(s.markRedraw(),a.markRedraw(),r){ec("horizontal",s,t.get("selectorItemGap",!0));var h=s.getBoundingRect(),c=[-h.x,-h.y],p=t.get("selectorButtonGap",!0),d=t.getOrient().index,f=0===d?"width":"height",g=0===d?"height":"width",y=0===d?"y":"x";"end"===o?c[d]+=l[f]+p:u[d]+=h[f]+p,c[1-d]+=l[g]/2-h[g]/2,s.x=c[0],s.y=c[1],a.x=u[0],a.y=u[1];var v={x:0,y:0};return v[f]=l[f]+p+h[f],v[g]=Math.max(l[g],h[g]),v[y]=Math.min(0,h[y]+c[1-d]),v}return a.x=u[0],a.y=u[1],this.group.getBoundingRect()},n.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},n.type="legend.plain",n}(kd);function FE(t,e,n,i,r,o,a){var s;return"line"!==e&&e.indexOf("empty")<0?(s=n.getItemStyle(),t.style.stroke=i,t.style.decal=o,a||(s.stroke=r)):s=n.getItemStyle(["borderWidth","borderColor"]),t.setStyle(s),t}function GE(t,e,n,i){YE(t,e,n,i),n.dispatchAction({type:"legendToggleSelect",name:null!=t?t:e}),WE(t,e,n,i)}function HE(t){for(var e,n=t.getZr().storage.getDisplayList(),i=0,r=n.length;i<r&&!(e=n[i].states.emphasis);)i++;return e&&e.hoverLayer}function WE(t,e,n,i){HE(n)||n.dispatchAction({type:"highlight",seriesName:t,name:e,excludeSeriesId:i})}function YE(t,e,n,i){HE(n)||n.dispatchAction({type:"downplay",seriesName:t,name:e,excludeSeriesId:i})}function XE(t){var e=t.findComponents({mainType:"legend"});e&&e.length&&t.filterSeries((function(t){for(var n=0;n<e.length;n++)if(!e[n].isSelected(t.name))return!1;return!0}))}function UE(t,e,n){var i,r={},o="toggleSelected"===t;return n.eachComponent("legend",(function(n){o&&null!=i?n[i?"select":"unSelect"](e.name):"allSelect"===t||"inverseSelect"===t?n[t]():(n[t](e.name),i=n.isSelected(e.name)),k(n.getData(),(function(t){var e=t.get("name");if("\n"!==e&&""!==e){var i=n.isSelected(e);r.hasOwnProperty(e)?r[e]=r[e]&&i:r[e]=i}}))})),"allSelect"===t||"inverseSelect"===t?{selected:r}:{name:e.name,selected:r}}function ZE(t){t.registerComponentModel(NE),t.registerComponentView(VE),t.registerProcessor(t.PRIORITY.PROCESSOR.SERIES_FILTER,XE),t.registerSubTypeDefaulter("legend",(function(){return"plain"})),function(t){t.registerAction("legendToggleSelect","legendselectchanged",B(UE,"toggleSelected")),t.registerAction("legendAllSelect","legendselectall",B(UE,"allSelect")),t.registerAction("legendInverseSelect","legendinverseselect",B(UE,"inverseSelect")),t.registerAction("legendSelect","legendselected",B(UE,"select")),t.registerAction("legendUnSelect","legendunselected",B(UE,"unSelect"))}(t)}var jE=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.setScrollDataIndex=function(t){this.option.scrollDataIndex=t},n.prototype.init=function(e,n,i){var r=ac(e);t.prototype.init.call(this,e,n,i),qE(this,e,r)},n.prototype.mergeOption=function(e,n){t.prototype.mergeOption.call(this,e,n),qE(this,this.option,e)},n.type="legend.scroll",n.defaultOption=uh(NE.defaultOption,{scrollDataIndex:0,pageButtonItemGap:5,pageButtonGap:null,pageButtonPosition:"end",pageFormatter:"{current}/{total}",pageIcons:{horizontal:["M0,0L12,-10L12,10z","M0,0L-12,-10L-12,10z"],vertical:["M0,0L20,0L10,-20z","M0,0L20,0L10,20z"]},pageIconColor:"#2f4554",pageIconInactiveColor:"#aaa",pageIconSize:15,pageTextStyle:{color:"#333"},animationDurationUpdate:800}),n}(NE);function qE(t,e,n){var i=[1,1];i[t.getOrient().index]=0,oc(e,n,{type:"box",ignoreSize:!!i})}var KE=Pi,$E=["width","height"],JE=["x","y"],QE=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.newlineDisabled=!0,e._currentIndex=0,e}return e(n,t),n.prototype.init=function(){t.prototype.init.call(this),this.group.add(this._containerGroup=new KE),this._containerGroup.add(this.getContentGroup()),this.group.add(this._controllerGroup=new KE)},n.prototype.resetInner=function(){t.prototype.resetInner.call(this),this._controllerGroup.removeAll(),this._containerGroup.removeClipPath(),this._containerGroup.__rectSize=null},n.prototype.renderInner=function(e,n,i,r,o,a,s){var l=this;t.prototype.renderInner.call(this,e,n,i,r,o,a,s);var u=this._controllerGroup,h=n.get("pageIconSize",!0),c=V(h)?h:[h,h];d("pagePrev",0);var p=n.getModel("pageTextStyle");function d(t,e){var i=t+"DataIndex",o=Du(n.get("pageIcons",!0)[n.getOrient().name][e],{onclick:z(l._pageGo,l,i,n,r)},{x:-c[0]/2,y:-c[1]/2,width:c[0],height:c[1]});o.name=t,u.add(o)}u.add(new Ka({name:"pageText",style:{text:"xx/xx",fill:p.getTextColor(),font:p.getFont(),verticalAlign:"middle",align:"center"},silent:!0})),d("pageNext",1)},n.prototype.layoutInner=function(t,e,n,i,r,o){var a=this.getSelectorGroup(),s=t.getOrient().index,l=$E[s],u=JE[s],h=$E[1-s],c=JE[1-s];r&&ec("horizontal",a,t.get("selectorItemGap",!0));var p=t.get("selectorButtonGap",!0),d=a.getBoundingRect(),f=[-d.x,-d.y],g=b(n);r&&(g[l]=n[l]-d[l]-p);var y=this._layoutContentAndController(t,i,g,s,l,h,c,u);if(r){if("end"===o)f[s]+=y[l]+p;else{var v=d[l]+p;f[s]-=v,y[u]-=v}y[l]+=d[l]+p,f[1-s]+=y[c]+y[h]/2-d[h]/2,y[h]=Math.max(y[h],d[h]),y[c]=Math.min(y[c],d[c]+f[1-s]),a.x=f[0],a.y=f[1],a.markRedraw()}return y},n.prototype._layoutContentAndController=function(t,e,n,i,r,o,a,s){var l=this.getContentGroup(),u=this._containerGroup,h=this._controllerGroup;ec(t.get("orient"),l,t.get("itemGap"),i?n.width:null,i?null:n.height),ec("horizontal",h,t.get("pageButtonItemGap",!0));var c=l.getBoundingRect(),p=h.getBoundingRect(),d=this._showController=c[r]>n[r],f=[-c.x,-c.y];e||(f[i]=l[s]);var g=[0,0],y=[-p.x,-p.y],v=Q(t.get("pageButtonGap",!0),t.get("itemGap",!0));d&&("end"===t.get("pageButtonPosition",!0)?y[i]+=n[r]-p[r]:g[i]+=p[r]+v);y[1-i]+=c[o]/2-p[o]/2,l.setPosition(f),u.setPosition(g),h.setPosition(y);var m={x:0,y:0};if(m[r]=d?n[r]:c[r],m[o]=Math.max(c[o],p[o]),m[a]=Math.min(0,p[a]+y[1-i]),u.__rectSize=n[r],d){var _={x:0,y:0};_[r]=Math.max(n[r]-p[r]-v,0),_[o]=m[o],u.setClipPath(new Za({shape:_})),u.__rectSize=_[r]}else h.eachChild((function(t){t.attr({invisible:!0,silent:!0})}));var x=this._getPageInfo(t);return null!=x.pageIndex&&yu(l,{x:x.contentPosition[0],y:x.contentPosition[1]},d?t:null),this._updatePageInfoView(t,x),m},n.prototype._pageGo=function(t,e,n){var i=this._getPageInfo(e)[t];null!=i&&n.dispatchAction({type:"legendScroll",scrollDataIndex:i,legendId:e.id})},n.prototype._updatePageInfoView=function(t,e){var n=this._controllerGroup;k(["pagePrev","pageNext"],(function(i){var r=null!=e[i+"DataIndex"],o=n.childOfName(i);o&&(o.setStyle("fill",r?t.get("pageIconColor",!0):t.get("pageIconInactiveColor",!0)),o.cursor=r?"pointer":"default")}));var i=n.childOfName("pageText"),r=t.get("pageFormatter"),o=e.pageIndex,a=null!=o?o+1:0,s=e.pageCount;i&&r&&i.setStyle("text",G(r)?r.replace("{current}",null==a?"":a+"").replace("{total}",null==s?"":s+""):r({current:a,total:s}))},n.prototype._getPageInfo=function(t){var e=t.get("scrollDataIndex",!0),n=this.getContentGroup(),i=this._containerGroup.__rectSize,r=t.getOrient().index,o=$E[r],a=JE[r],s=this._findTargetItemIndex(e),l=n.children(),u=l[s],h=l.length,c=h?1:0,p={contentPosition:[n.x,n.y],pageCount:c,pageIndex:c-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!u)return p;var d=m(u);p.contentPosition[r]=-d.s;for(var f=s+1,g=d,y=d,v=null;f<=h;++f)(!(v=m(l[f]))&&y.e>g.s+i||v&&!_(v,g.s))&&(g=y.i>g.i?y:v)&&(null==p.pageNextDataIndex&&(p.pageNextDataIndex=g.i),++p.pageCount),y=v;for(f=s-1,g=d,y=d,v=null;f>=-1;--f)(v=m(l[f]))&&_(y,v.s)||!(g.i<y.i)||(y=g,null==p.pagePrevDataIndex&&(p.pagePrevDataIndex=g.i),++p.pageCount,++p.pageIndex),g=v;return p;function m(t){if(t){var e=t.getBoundingRect(),n=e[a]+t[a];return{s:n,e:n+e[o],i:t.__legendDataIndex}}}function _(t,e){return t.e>=e&&t.s<=e+i}},n.prototype._findTargetItemIndex=function(t){return this._showController?(this.getContentGroup().eachChild((function(i,r){var o=i.__legendDataIndex;null==n&&null!=o&&(n=r),o===t&&(e=r)})),null!=e?e:n):0;var e,n},n.type="legend.scroll",n}(VE);function tz(t){Mv(ZE),t.registerComponentModel(jE),t.registerComponentView(QE),function(t){t.registerAction("legendScroll","legendscroll",(function(t,e){var n=t.scrollDataIndex;null!=n&&e.eachComponent({mainType:"legend",subType:"scroll",query:t},(function(t){t.setScrollDataIndex(n)}))}))}(t)}var ez=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.type="dataZoom.inside",n.defaultOption=uh(rR.defaultOption,{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),n}(rR),nz=br();function iz(t,e,n){nz(t).coordSysRecordMap.each((function(t){var i=t.dataZoomInfoMap.get(e.uid);i&&(i.getRange=n)}))}function rz(t,e){if(e){t.removeKey(e.model.uid);var n=e.controller;n&&n.dispose()}}function oz(t,e){t.dispatchAction({type:"dataZoom",animation:{easing:"cubicOut",duration:100},batch:e})}function az(t,e,n,i){return t.coordinateSystem.containPoint([n,i])}function sz(t){t.registerProcessor(t.PRIORITY.PROCESSOR.FILTER,(function(t,e){var n=nz(e),i=n.coordSysRecordMap||(n.coordSysRecordMap=lt());i.each((function(t){t.dataZoomInfoMap=null})),t.eachComponent({mainType:"dataZoom",subType:"inside"},(function(t){k(nR(t).infoList,(function(n){var r=n.model.uid,o=i.get(r)||i.set(r,function(t,e){var n={model:e,containsPoint:B(az,e),dispatchAction:B(oz,t),dataZoomInfoMap:null,controller:null},i=n.controller=new _S(t.getZr());return k(["pan","zoom","scrollMove"],(function(t){i.on(t,(function(e){var i=[];n.dataZoomInfoMap.each((function(r){if(e.isAvailableBehavior(r.model.option)){var o=(r.getRange||{})[t],a=o&&o(r.dzReferCoordSysInfo,n.model.mainType,n.controller,e);!r.model.get("disabled",!0)&&a&&i.push({dataZoomId:r.model.id,start:a[0],end:a[1]})}})),i.length&&n.dispatchAction(i)}))})),n}(e,n.model));(o.dataZoomInfoMap||(o.dataZoomInfoMap=lt())).set(t.uid,{dzReferCoordSysInfo:n,model:t,getRange:null})}))})),i.each((function(t){var e,n=t.controller,r=t.dataZoomInfoMap;if(r){var o=r.keys()[0];null!=o&&(e=r.get(o))}if(e){var a=function(t){var e,n="type_",i={type_true:2,type_move:1,type_false:0,type_undefined:-1},r=!0;return t.each((function(t){var o=t.model,a=!o.get("disabled",!0)&&(!o.get("zoomLock",!0)||"move");i[n+a]>i[n+e]&&(e=a),r=r&&o.get("preventDefaultMouseMove",!0)})),{controlType:e,opt:{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!0,preventDefaultMouseMove:!!r}}}(r);n.enable(a.controlType,a.opt),n.setPointerChecker(t.containsPoint),Yd(t,"dispatchAction",e.model.get("throttle",!0),"fixRate")}else rz(i,t)}))}))}var lz=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="dataZoom.inside",e}return e(n,t),n.prototype.render=function(e,n,i){t.prototype.render.apply(this,arguments),e.noTarget()?this._clear():(this.range=e.getPercentRange(),iz(i,e,{pan:z(uz.pan,this),zoom:z(uz.zoom,this),scrollMove:z(uz.scrollMove,this)}))},n.prototype.dispose=function(){this._clear(),t.prototype.dispose.apply(this,arguments)},n.prototype._clear=function(){!function(t,e){for(var n=nz(t).coordSysRecordMap,i=n.keys(),r=0;r<i.length;r++){var o=i[r],a=n.get(o),s=a.dataZoomInfoMap;if(s){var l=e.uid;s.get(l)&&(s.removeKey(l),s.keys().length||rz(n,a))}}}(this.api,this.dataZoomModel),this.range=null},n.type="dataZoom.inside",n}(sR),uz={zoom:function(t,e,n,i){var r=this.range,o=r.slice(),a=t.axisModels[0];if(a){var s=cz[e](null,[i.originX,i.originY],a,n,t),l=(s.signal>0?s.pixelStart+s.pixelLength-s.pixel:s.pixel-s.pixelStart)/s.pixelLength*(o[1]-o[0])+o[0],u=Math.max(1/i.scale,0);o[0]=(o[0]-l)*u+l,o[1]=(o[1]-l)*u+l;var h=this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();return yC(0,o,[0,100],0,h.minSpan,h.maxSpan),this.range=o,r[0]!==o[0]||r[1]!==o[1]?o:void 0}},pan:hz((function(t,e,n,i,r,o){var a=cz[i]([o.oldX,o.oldY],[o.newX,o.newY],e,r,n);return a.signal*(t[1]-t[0])*a.pixel/a.pixelLength})),scrollMove:hz((function(t,e,n,i,r,o){return cz[i]([0,0],[o.scrollDelta,o.scrollDelta],e,r,n).signal*(t[1]-t[0])*o.scrollDelta}))};function hz(t){return function(e,n,i,r){var o=this.range,a=o.slice(),s=e.axisModels[0];if(s)return yC(t(a,s,e,n,i,r),a,[0,100],"all"),this.range=a,o[0]!==a[0]||o[1]!==a[1]?a:void 0}}var cz={grid:function(t,e,n,i,r){var o=n.axis,a={},s=r.model.coordinateSystem.getRect();return t=t||[0,0],"x"===o.dim?(a.pixel=e[0]-t[0],a.pixelLength=s.width,a.pixelStart=s.x,a.signal=o.inverse?1:-1):(a.pixel=e[1]-t[1],a.pixelLength=s.height,a.pixelStart=s.y,a.signal=o.inverse?-1:1),a},polar:function(t,e,n,i,r){var o=n.axis,a={},s=r.model.coordinateSystem,l=s.getRadiusAxis().getExtent(),u=s.getAngleAxis().getExtent();return t=t?s.pointToCoord(t):[0,0],e=s.pointToCoord(e),"radiusAxis"===n.mainType?(a.pixel=e[0]-t[0],a.pixelLength=l[1]-l[0],a.pixelStart=l[0],a.signal=o.inverse?1:-1):(a.pixel=e[1]-t[1],a.pixelLength=u[1]-u[0],a.pixelStart=u[0],a.signal=o.inverse?-1:1),a},singleAxis:function(t,e,n,i,r){var o=n.axis,a=r.model.coordinateSystem.getRect(),s={};return t=t||[0,0],"horizontal"===o.orient?(s.pixel=e[0]-t[0],s.pixelLength=a.width,s.pixelStart=a.x,s.signal=o.inverse?1:-1):(s.pixel=e[1]-t[1],s.pixelLength=a.height,s.pixelStart=a.y,s.signal=o.inverse?-1:1),s}};function pz(t){fR(t),t.registerComponentModel(ez),t.registerComponentView(lz),sz(t)}var dz=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.type="dataZoom.slider",n.layoutMode="box",n.defaultOption=uh(rR.defaultOption,{show:!0,right:"ph",top:"ph",width:"ph",height:"ph",left:null,bottom:null,borderColor:"#d2dbee",borderRadius:3,backgroundColor:"rgba(47,69,84,0)",dataBackground:{lineStyle:{color:"#d2dbee",width:.5},areaStyle:{color:"#d2dbee",opacity:.2}},selectedDataBackground:{lineStyle:{color:"#8fb0f7",width:.5},areaStyle:{color:"#8fb0f7",opacity:.2}},fillerColor:"rgba(135,175,274,0.2)",handleIcon:"path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z",handleSize:"100%",handleStyle:{color:"#fff",borderColor:"#ACB8D1"},moveHandleSize:7,moveHandleIcon:"path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z",moveHandleStyle:{color:"#D2DBEE",opacity:.7},showDetail:!0,showDataShadow:"auto",realtime:!0,zoomLock:!1,textStyle:{color:"#6E7079"},brushSelect:!0,brushStyle:{color:"rgba(135,175,274,0.15)"},emphasis:{handleStyle:{borderColor:"#8FB0F7"},moveHandleStyle:{color:"#8FB0F7"}}}),n}(rR),fz=Za,gz=["line","bar","candlestick","scatter"],yz={easing:"cubicOut",duration:100},vz=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e._displayables={},e}return e(n,t),n.prototype.init=function(t,e){this.api=e,this._onBrush=z(this._onBrush,this),this._onBrushEnd=z(this._onBrushEnd,this)},n.prototype.render=function(e,n,i,r){if(t.prototype.render.apply(this,arguments),Yd(this,"_dispatchZoomAction",e.get("throttle"),"fixRate"),this._orient=e.getOrient(),!1!==e.get("show")){if(e.noTarget())return this._clear(),void this.group.removeAll();r&&"dataZoom"===r.type&&r.from===this.uid||this._buildView(),this._updateView()}else this.group.removeAll()},n.prototype.dispose=function(){this._clear(),t.prototype.dispose.apply(this,arguments)},n.prototype._clear=function(){var t,e,n;(n=(t=this)[e="_dispatchZoomAction"])&&n[Gd]&&(t[e]=n[Gd]);var i=this.api.getZr();i.off("mousemove",this._onBrush),i.off("mouseup",this._onBrushEnd)},n.prototype._buildView=function(){var t=this.group;t.removeAll(),this._brushing=!1,this._displayables.brushRect=null,this._resetLocation(),this._resetInterval();var e=this._displayables.sliderGroup=new Pi;this._renderBackground(),this._renderHandle(),this._renderDataShadow(),t.add(e),this._positionGroup()},n.prototype._resetLocation=function(){var t=this.dataZoomModel,e=this.api,n=t.get("brushSelect")?7:0,i=this._findCoordRect(),r={width:e.getWidth(),height:e.getHeight()},o="horizontal"===this._orient?{right:r.width-i.x-i.width,top:r.height-30-7-n,width:i.width,height:30}:{right:7,top:i.y,width:30,height:i.height},a=ac(t.option);k(["right","top","width","height"],(function(t){"ph"===a[t]&&(a[t]=o[t])}));var s=nc(a,r);this._location={x:s.x,y:s.y},this._size=[s.width,s.height],"vertical"===this._orient&&this._size.reverse()},n.prototype._positionGroup=function(){var t=this.group,e=this._location,n=this._orient,i=this.dataZoomModel.getFirstTargetAxisModel(),r=i&&i.get("inverse"),o=this._displayables.sliderGroup,a=(this._dataShadowInfo||{}).otherAxisInverse;o.attr("horizontal"!==n||r?"horizontal"===n&&r?{scaleY:a?1:-1,scaleX:-1}:"vertical"!==n||r?{scaleY:a?-1:1,scaleX:-1,rotation:Math.PI/2}:{scaleY:a?-1:1,scaleX:1,rotation:Math.PI/2}:{scaleY:a?1:-1,scaleX:1});var s=t.getBoundingRect([o]);t.x=e.x-s.x,t.y=e.y-s.y,t.markRedraw()},n.prototype._getViewExtent=function(){return[0,this._size[0]]},n.prototype._renderBackground=function(){var t=this.dataZoomModel,e=this._size,n=this._displayables.sliderGroup,i=t.get("brushSelect");n.add(new fz({silent:!0,shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:t.get("backgroundColor")},z2:-40}));var r=new fz({shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:"transparent"},z2:0,onclick:z(this._onClickPanel,this)}),o=this.api.getZr();i?(r.on("mousedown",this._onBrushStart,this),r.cursor="crosshair",o.on("mousemove",this._onBrush),o.on("mouseup",this._onBrushEnd)):(o.off("mousemove",this._onBrush),o.off("mouseup",this._onBrushEnd)),n.add(r)},n.prototype._renderDataShadow=function(){var t=this._dataShadowInfo=this._prepareDataShadowInfo();if(this._displayables.dataShadowSegs=[],t){var e=this._size,n=t.series,i=n.getRawData(),r=n.getShadowDim?n.getShadowDim():t.otherDim;if(null!=r){var o=i.getDataExtent(r),a=.3*(o[1]-o[0]);o=[o[0]-a,o[1]+a];var s,l=[0,e[1]],u=[0,e[0]],h=[[e[0],0],[0,0]],c=[],p=u[1]/(i.count()-1),d=0,f=Math.round(i.count()/e[0]);i.each([r],(function(t,e){if(f>0&&e%f)d+=p;else{var n=null==t||isNaN(t)||""===t,i=n?0:Fi(t,o,l,!0);n&&!s&&e?(h.push([h[h.length-1][0],0]),c.push([c[c.length-1][0],0])):!n&&s&&(h.push([d,0]),c.push([d,0])),h.push([d,i]),c.push([d,i]),d+=p,s=n}}));for(var g=this.dataZoomModel,y=0;y<3;y++){var v=m(1===y);this._displayables.sliderGroup.add(v),this._displayables.dataShadowSegs.push(v)}}}function m(t){var e=g.getModel(t?"selectedDataBackground":"dataBackground"),n=new Pi,i=new Pl({shape:{points:h},segmentIgnoreThreshold:1,style:e.getModel("areaStyle").getAreaStyle(),silent:!0,z2:-20}),r=new Rl({shape:{points:c},segmentIgnoreThreshold:1,style:e.getModel("lineStyle").getLineStyle(),silent:!0,z2:-19});return n.add(i),n.add(r),n}},n.prototype._prepareDataShadowInfo=function(){var t=this.dataZoomModel,e=t.get("showDataShadow");if(!1!==e){var n,i=this.ecModel;return t.eachTargetAxis((function(r,o){k(t.getAxisProxy(r,o).getTargetSeriesModels(),(function(t){if(!(n||!0!==e&&C(gz,t.get("type"))<0)){var a,s=i.getComponent(tR(r),o).axis,l={x:"y",y:"x",radius:"angle",angle:"radius"}[r],u=t.coordinateSystem;null!=l&&u.getOtherAxis&&(a=u.getOtherAxis(s).inverse),l=t.getData().mapDimension(l),n={thisAxis:s,series:t,thisDim:r,otherDim:l,otherAxisInverse:a}}}),this)}),this),n}},n.prototype._renderHandle=function(){var t=this.group,e=this._displayables,n=e.handles=[null,null],i=e.handleLabels=[null,null],r=this._displayables.sliderGroup,o=this._size,a=this.dataZoomModel,s=this.api,l=a.get("borderRadius")||0,u=a.get("brushSelect"),h=e.filler=new fz({silent:u,style:{fill:a.get("fillerColor")},textConfig:{position:"inside"}});r.add(h),r.add(new fz({silent:!0,subPixelOptimize:!0,shape:{x:0,y:0,width:o[0],height:o[1],r:l},style:{stroke:a.get("dataBackgroundColor")||a.get("borderColor"),lineWidth:1,fill:"rgba(0,0,0,0)"}})),k([0,1],(function(e){var o=a.get("handleIcon");!wg[o]&&o.indexOf("path://")<0&&(o="path://"+o);var s=Ig(o,-1,0,2,2,null,!0);s.attr({cursor:mz(this._orient),draggable:!0,drift:z(this._onDragMove,this,e),ondragend:z(this._onDragEnd,this),onmouseover:z(this._showDataInfo,this,!0),onmouseout:z(this._showDataInfo,this,!1),z2:5});var l=s.getBoundingRect(),u=a.get("handleSize");this._handleHeight=Gi(u,this._size[1]),this._handleWidth=l.width/l.height*this._handleHeight,s.setStyle(a.getModel("handleStyle").getItemStyle()),s.style.strokeNoScale=!0,s.rectHover=!0,s.ensureState("emphasis").style=a.getModel(["emphasis","handleStyle"]).getItemStyle(),Ns(s);var h=a.get("handleColor");null!=h&&(s.style.fill=h),r.add(n[e]=s);var c=a.getModel("textStyle");t.add(i[e]=new Ka({silent:!0,invisible:!0,style:{x:0,y:0,text:"",verticalAlign:"middle",align:"center",fill:c.getTextColor(),font:c.getFont()},z2:10}))}),this);var c=h;if(u){var p=Gi(a.get("moveHandleSize"),o[1]),d=e.moveHandle=new Za({style:a.getModel("moveHandleStyle").getItemStyle(),silent:!0,shape:{r:[0,0,2,2],y:o[1]-.5,height:p}}),f=.8*p,g=e.moveHandleIcon=Ig(a.get("moveHandleIcon"),-f/2,-f/2,f,f,"#fff",!0);g.silent=!0,g.y=o[1]+p/2-.5,d.ensureState("emphasis").style=a.getModel(["emphasis","moveHandleStyle"]).getItemStyle();var y=Math.min(o[1]/2,Math.max(p,10));(c=e.moveZone=new Za({invisible:!0,shape:{y:o[1]-y,height:p+y}})).on("mouseover",(function(){s.enterEmphasis(d)})).on("mouseout",(function(){s.leaveEmphasis(d)})),r.add(d),r.add(g),r.add(c)}c.attr({draggable:!0,cursor:mz(this._orient),drift:z(this._onDragMove,this,"all"),ondragstart:z(this._showDataInfo,this,!0),ondragend:z(this._onDragEnd,this),onmouseover:z(this._showDataInfo,this,!0),onmouseout:z(this._showDataInfo,this,!1)})},n.prototype._resetInterval=function(){var t=this._range=this.dataZoomModel.getPercentRange(),e=this._getViewExtent();this._handleEnds=[Fi(t[0],[0,100],e,!0),Fi(t[1],[0,100],e,!0)]},n.prototype._updateInterval=function(t,e){var n=this.dataZoomModel,i=this._handleEnds,r=this._getViewExtent(),o=n.findRepresentativeAxisProxy().getMinMaxSpan(),a=[0,100];yC(e,i,r,n.get("zoomLock")?"all":t,null!=o.minSpan?Fi(o.minSpan,a,r,!0):null,null!=o.maxSpan?Fi(o.maxSpan,a,r,!0):null);var s=this._range,l=this._range=Wi([Fi(i[0],r,a,!0),Fi(i[1],r,a,!0)]);return!s||s[0]!==l[0]||s[1]!==l[1]},n.prototype._updateView=function(t){var e=this._displayables,n=this._handleEnds,i=Wi(n.slice()),r=this._size;k([0,1],(function(t){var i=e.handles[t],o=this._handleHeight;i.attr({scaleX:o/2,scaleY:o/2,x:n[t]+(t?-1:1),y:r[1]/2-o/2})}),this),e.filler.setShape({x:i[0],y:0,width:i[1]-i[0],height:r[1]});var o={x:i[0],width:i[1]-i[0]};e.moveHandle&&(e.moveHandle.setShape(o),e.moveZone.setShape(o),e.moveZone.getBoundingRect(),e.moveHandleIcon&&e.moveHandleIcon.attr("x",o.x+o.width/2));for(var a=e.dataShadowSegs,s=[0,i[0],i[1],r[0]],l=0;l<a.length;l++){var u=a[l],h=u.getClipPath();h||(h=new Za,u.setClipPath(h)),h.setShape({x:s[l],y:0,width:s[l+1]-s[l],height:r[1]})}this._updateDataInfo(t)},n.prototype._updateDataInfo=function(t){var e=this.dataZoomModel,n=this._displayables,i=n.handleLabels,r=this._orient,o=["",""];if(e.get("showDetail")){var a=e.findRepresentativeAxisProxy();if(a){var s=a.getAxisModel().axis,l=this._range,u=t?a.calculateDataWindow({start:l[0],end:l[1]}).valueWindow:a.getDataValueWindow();o=[this._formatLabel(u[0],s),this._formatLabel(u[1],s)]}}var h=Wi(this._handleEnds.slice());function c(t){var e=wu(n.handles[t].parent,this.group),a=Mu(0===t?"right":"left",e),s=this._handleWidth/2+5,l=Su([h[t]+(0===t?-s:s),this._size[1]/2],e);i[t].setStyle({x:l[0],y:l[1],verticalAlign:"horizontal"===r?"middle":a,align:"horizontal"===r?a:"center",text:o[t]})}c.call(this,0),c.call(this,1)},n.prototype._formatLabel=function(t,e){var n=this.dataZoomModel,i=n.get("labelFormatter"),r=n.get("labelPrecision");null!=r&&"auto"!==r||(r=e.getPixelPrecision());var o=null==t||isNaN(t)?"":"category"===e.type||"time"===e.type?e.scale.getLabel({value:Math.round(t)}):t.toFixed(Math.min(r,20));return F(i)?i(t,o):G(i)?i.replace("{value}",o):o},n.prototype._showDataInfo=function(t){t=this._dragging||t;var e=this._displayables,n=e.handleLabels;n[0].attr("invisible",!t),n[1].attr("invisible",!t),e.moveHandle&&this.api[t?"enterEmphasis":"leaveEmphasis"](e.moveHandle,1)},n.prototype._onDragMove=function(t,e,n,i){this._dragging=!0,ee(i.event);var r=Su([e,n],this._displayables.sliderGroup.getLocalTransform(),!0),o=this._updateInterval(t,r[0]),a=this.dataZoomModel.get("realtime");this._updateView(!a),o&&a&&this._dispatchZoomAction(!0)},n.prototype._onDragEnd=function(){this._dragging=!1,this._showDataInfo(!1),!this.dataZoomModel.get("realtime")&&this._dispatchZoomAction(!1)},n.prototype._onClickPanel=function(t){var e=this._size,n=this._displayables.sliderGroup.transformCoordToLocal(t.offsetX,t.offsetY);if(!(n[0]<0||n[0]>e[0]||n[1]<0||n[1]>e[1])){var i=this._handleEnds,r=(i[0]+i[1])/2,o=this._updateInterval("all",n[0]-r);this._updateView(),o&&this._dispatchZoomAction(!1)}},n.prototype._onBrushStart=function(t){var e=t.offsetX,n=t.offsetY;this._brushStart=new Sn(e,n),this._brushing=!0,this._brushStartTime=+new Date},n.prototype._onBrushEnd=function(t){if(this._brushing){var e=this._displayables.brushRect;if(this._brushing=!1,e){e.attr("ignore",!0);var n=e.shape;if(!(+new Date-this._brushStartTime<200&&Math.abs(n.width)<5)){var i=this._getViewExtent(),r=[0,100];this._range=Wi([Fi(n.x,i,r,!0),Fi(n.x+n.width,i,r,!0)]),this._handleEnds=[n.x,n.x+n.width],this._updateView(),this._dispatchZoomAction(!1)}}}},n.prototype._onBrush=function(t){this._brushing&&(ee(t.event),this._updateBrushRect(t.offsetX,t.offsetY))},n.prototype._updateBrushRect=function(t,e){var n=this._displayables,i=this.dataZoomModel,r=n.brushRect;r||(r=n.brushRect=new fz({silent:!0,style:i.getModel("brushStyle").getItemStyle()}),n.sliderGroup.add(r)),r.attr("ignore",!1);var o=this._brushStart,a=this._displayables.sliderGroup,s=a.transformCoordToLocal(t,e),l=a.transformCoordToLocal(o.x,o.y),u=this._size;s[0]=Math.max(Math.min(u[0],s[0]),0),r.setShape({x:l[0],y:0,width:s[0]-l[0],height:u[1]})},n.prototype._dispatchZoomAction=function(t){var e=this._range;this.api.dispatchAction({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,animation:t?yz:null,start:e[0],end:e[1]})},n.prototype._findCoordRect=function(){var t,e=nR(this.dataZoomModel).infoList;if(!t&&e.length){var n=e[0].model.coordinateSystem;t=n.getRect&&n.getRect()}if(!t){var i=this.api.getWidth(),r=this.api.getHeight();t={x:.2*i,y:.2*r,width:.6*i,height:.6*r}}return t},n.type="dataZoom.slider",n}(sR);function mz(t){return"vertical"===t?"ns-resize":"ew-resize"}function _z(t){t.registerComponentModel(dz),t.registerComponentView(vz),fR(t)}var xz=function(t,e,n){var i=b((bz[t]||{})[e]);return n&&V(i)?i[i.length-1]:i},bz={color:{active:["#006edd","#e0ffff"],inactive:["rgba(0,0,0,0)"]},colorHue:{active:[0,360],inactive:[0,0]},colorSaturation:{active:[.3,1],inactive:[0,0]},colorLightness:{active:[.9,.5],inactive:[0,0]},colorAlpha:{active:[.3,1],inactive:[0,0]},opacity:{active:[.3,1],inactive:[0,0]},symbol:{active:["circle","roundRect","diamond"],inactive:["none"]},symbolSize:{active:[10,50],inactive:[0,0]}},wz=cI.mapVisual,Sz=cI.eachVisual,Mz=V,Iz=k,Tz=Wi,Cz=Fi,Az=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.stateList=["inRange","outOfRange"],e.replacableOptionKeys=["inRange","outOfRange","target","controller","color"],e.layoutMode={type:"box",ignoreSize:!0},e.dataBound=[-1/0,1/0],e.targetVisuals={},e.controllerVisuals={},e}return e(n,t),n.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n)},n.prototype.optionUpdated=function(t,e){var n=this.option;o.canvasSupported||(n.realtime=!1),!e&&TN(n,t,this.replacableOptionKeys),this.textStyleModel=this.getModel("textStyle"),this.resetItemSize(),this.completeVisualOption()},n.prototype.resetVisual=function(t){var e=this.stateList;t=z(t,this),this.controllerVisuals=IN(this.option.controller,e,t),this.targetVisuals=IN(this.option.target,e,t)},n.prototype.getTargetSeriesIndices=function(){var t=this.option.seriesIndex,e=[];return null==t||"all"===t?this.ecModel.eachSeries((function(t,n){e.push(n)})):e=hr(t),e},n.prototype.eachTargetSeries=function(t,e){k(this.getTargetSeriesIndices(),(function(n){var i=this.ecModel.getSeriesByIndex(n);i&&t.call(e,i)}),this)},n.prototype.isTargetSeries=function(t){var e=!1;return this.eachTargetSeries((function(n){n===t&&(e=!0)})),e},n.prototype.formatValueText=function(t,e,n){var i,r=this.option,o=r.precision,a=this.dataBound,s=r.formatter;n=n||["<",">"],V(t)&&(t=t.slice(),i=!0);var l=e?t:i?[u(t[0]),u(t[1])]:u(t);return G(s)?s.replace("{value}",i?l[0]:l).replace("{value2}",i?l[1]:l):F(s)?i?s(t[0],t[1]):s(t):i?t[0]===a[0]?n[0]+" "+l[1]:t[1]===a[1]?n[1]+" "+l[0]:l[0]+" - "+l[1]:l;function u(t){return t===a[0]?"min":t===a[1]?"max":(+t).toFixed(Math.min(o,20))}},n.prototype.resetExtent=function(){var t=this.option,e=Tz([t.min,t.max]);this._dataExtent=e},n.prototype.getDataDimension=function(t){var e=this.option.dimension,n=t.dimensions;if(null!=e||n.length){if(null!=e)return t.getDimension(e);for(var i=t.dimensions,r=i.length-1;r>=0;r--){var o=i[r];if(!t.getDimensionInfo(o).isCalculationCoord)return o}}},n.prototype.getExtent=function(){return this._dataExtent.slice()},n.prototype.completeVisualOption=function(){var t=this.ecModel,e=this.option,n={inRange:e.inRange,outOfRange:e.outOfRange},i=e.target||(e.target={}),r=e.controller||(e.controller={});w(i,n),w(r,n);var o=this.isCategory();function a(n){Mz(e.color)&&!n.inRange&&(n.inRange={color:e.color.slice().reverse()}),n.inRange=n.inRange||{color:t.get("gradientColor")}}a.call(this,i),a.call(this,r),function(t,e,n){var i=t[e],r=t[n];i&&!r&&(r=t[n]={},Iz(i,(function(t,e){if(cI.isValidType(e)){var n=xz(e,"inactive",o);null!=n&&(r[e]=n,"color"!==e||r.hasOwnProperty("opacity")||r.hasOwnProperty("colorAlpha")||(r.opacity=[0,0]))}})))}.call(this,i,"inRange","outOfRange"),function(t){var e=(t.inRange||{}).symbol||(t.outOfRange||{}).symbol,n=(t.inRange||{}).symbolSize||(t.outOfRange||{}).symbolSize,i=this.get("inactiveColor");Iz(this.stateList,(function(r){var a=this.itemSize,s=t[r];s||(s=t[r]={color:o?i:[i]}),null==s.symbol&&(s.symbol=e&&b(e)||(o?"roundRect":["roundRect"])),null==s.symbolSize&&(s.symbolSize=n&&b(n)||(o?a[0]:[a[0],a[0]])),s.symbol=wz(s.symbol,(function(t){return"none"===t||"square"===t?"roundRect":t}));var l=s.symbolSize;if(null!=l){var u=-1/0;Sz(l,(function(t){t>u&&(u=t)})),s.symbolSize=wz(l,(function(t){return Cz(t,[0,u],[0,a[0]],!0)}))}}),this)}.call(this,r)},n.prototype.resetItemSize=function(){this.itemSize=[parseFloat(this.get("itemWidth")),parseFloat(this.get("itemHeight"))]},n.prototype.isCategory=function(){return!!this.option.categories},n.prototype.setSelected=function(t){},n.prototype.getSelected=function(){return null},n.prototype.getValueState=function(t){return null},n.prototype.getVisualMeta=function(t){return null},n.type="visualMap",n.dependencies=["series"],n.defaultOption={show:!0,zlevel:0,z:4,seriesIndex:"all",min:0,max:200,left:0,right:null,top:null,bottom:0,itemWidth:null,itemHeight:null,inverse:!1,orient:"vertical",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",contentColor:"#5793f3",inactiveColor:"#aaa",borderWidth:0,padding:5,textGap:10,precision:0,textStyle:{color:"#333"}},n}(uc),Dz=[20,140],Lz=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.optionUpdated=function(e,n){t.prototype.optionUpdated.apply(this,arguments),this.resetExtent(),this.resetVisual((function(t){t.mappingMethod="linear",t.dataExtent=this.getExtent()})),this._resetRange()},n.prototype.resetItemSize=function(){t.prototype.resetItemSize.apply(this,arguments);var e=this.itemSize;(null==e[0]||isNaN(e[0]))&&(e[0]=Dz[0]),(null==e[1]||isNaN(e[1]))&&(e[1]=Dz[1])},n.prototype._resetRange=function(){var t=this.getExtent(),e=this.option.range;!e||e.auto?(t.auto=1,this.option.range=t):V(e)&&(e[0]>e[1]&&e.reverse(),e[0]=Math.max(e[0],t[0]),e[1]=Math.min(e[1],t[1]))},n.prototype.completeVisualOption=function(){t.prototype.completeVisualOption.apply(this,arguments),k(this.stateList,(function(t){var e=this.option.controller[t].symbolSize;e&&e[0]!==e[1]&&(e[0]=e[1]/3)}),this)},n.prototype.setSelected=function(t){this.option.range=t.slice(),this._resetRange()},n.prototype.getSelected=function(){var t=this.getExtent(),e=Wi((this.get("range")||[]).slice());return e[0]>t[1]&&(e[0]=t[1]),e[1]>t[1]&&(e[1]=t[1]),e[0]<t[0]&&(e[0]=t[0]),e[1]<t[0]&&(e[1]=t[0]),e},n.prototype.getValueState=function(t){var e=this.option.range,n=this.getExtent();return(e[0]<=n[0]||e[0]<=t)&&(e[1]>=n[1]||t<=e[1])?"inRange":"outOfRange"},n.prototype.findTargetDataIndices=function(t){var e=[];return this.eachTargetSeries((function(n){var i=[],r=n.getData();r.each(this.getDataDimension(r),(function(e,n){t[0]<=e&&e<=t[1]&&i.push(n)}),this),e.push({seriesId:n.id,dataIndex:i})}),this),e},n.prototype.getVisualMeta=function(t){var e=kz(this,"outOfRange",this.getExtent()),n=kz(this,"inRange",this.option.range.slice()),i=[];function r(e,n){i.push({value:e,color:t(e,n)})}for(var o=0,a=0,s=n.length,l=e.length;a<l&&(!n.length||e[a]<=n[0]);a++)e[a]<n[o]&&r(e[a],"outOfRange");for(var u=1;o<s;o++,u=0)u&&i.length&&r(n[o],"outOfRange"),r(n[o],"inRange");for(u=1;a<l;a++)(!n.length||n[n.length-1]<e[a])&&(u&&(i.length&&r(i[i.length-1].value,"outOfRange"),u=0),r(e[a],"outOfRange"));var h=i.length;return{stops:i,outerColors:[h?i[0].color:"transparent",h?i[h-1].color:"transparent"]}},n.type="visualMap.continuous",n.defaultOption=uh(Az.defaultOption,{align:"auto",calculable:!1,hoverLink:!0,realtime:!0,handleIcon:"path://M-11.39,9.77h0a3.5,3.5,0,0,1-3.5,3.5h-22a3.5,3.5,0,0,1-3.5-3.5h0a3.5,3.5,0,0,1,3.5-3.5h22A3.5,3.5,0,0,1-11.39,9.77Z",handleSize:"120%",handleStyle:{borderColor:"#fff",borderWidth:1},indicatorIcon:"circle",indicatorSize:"50%",indicatorStyle:{borderColor:"#fff",borderWidth:2,shadowBlur:2,shadowOffsetX:1,shadowOffsetY:1,shadowColor:"rgba(0,0,0,0.2)"}}),n}(Az);function kz(t,e,n){if(n[0]===n[1])return n.slice();for(var i=(n[1]-n[0])/200,r=n[0],o=[],a=0;a<=200&&r<n[1];a++)o.push(r),r+=i;return o.push(n[1]),o}var Pz=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.autoPositionValues={left:1,right:1,top:1,bottom:1},e}return e(n,t),n.prototype.init=function(t,e){this.ecModel=t,this.api=e},n.prototype.render=function(t,e,n,i){this.visualMapModel=t,!1!==t.get("show")?this.doRender(t,e,n,i):this.group.removeAll()},n.prototype.renderBackground=function(t){var e=this.visualMapModel,n=Fh(e.get("padding")||0),i=t.getBoundingRect();t.add(new Za({z2:-1,silent:!0,shape:{x:i.x-n[3],y:i.y-n[0],width:i.width+n[3]+n[1],height:i.height+n[0]+n[2]},style:{fill:e.get("backgroundColor"),stroke:e.get("borderColor"),lineWidth:e.get("borderWidth")}}))},n.prototype.getControllerVisual=function(t,e,n){var i=(n=n||{}).forceState,r=this.visualMapModel,o={};if("symbol"===e&&(o.symbol=r.get("itemSymbol")),"color"===e){var a=r.get("contentColor");o.color=a}function s(t){return o[t]}function l(t,e){o[t]=e}var u=r.controllerVisuals[i||r.getValueState(t)];return k(cI.prepareVisualTypes(u),(function(i){var r=u[i];n.convertOpacityToAlpha&&"opacity"===i&&(i="colorAlpha",r=u.__alphaForOpacity),cI.dependsOn(i,e)&&r&&r.applyVisual(t,s,l)})),o[e]},n.prototype.positionGroup=function(t){var e=this.visualMapModel,n=this.api;ic(t,e.getBoxLayoutParams(),{width:n.getWidth(),height:n.getHeight()})},n.prototype.doRender=function(t,e,n,i){},n.type="visualMap",n}(kd),Oz=[["left","right","width"],["top","bottom","height"]];function Rz(t,e,n){var i=t.option,r=i.align;if(null!=r&&"auto"!==r)return r;for(var o={width:e.getWidth(),height:e.getHeight()},a="horizontal"===i.orient?1:0,s=Oz[a],l=[0,null,10],u={},h=0;h<3;h++)u[Oz[1-a][h]]=l[h],u[s[h]]=2===h?n[0]:i[s[h]];var c=[["x","width",3],["y","height",0]][a],p=nc(u,o,i.padding);return s[(p.margin[c[2]]||0)+p[c[0]]+.5*p[c[1]]<.5*o[c[1]]?0:1]}function Nz(t,e){return k(t||[],(function(t){null!=t.dataIndex&&(t.dataIndexInside=t.dataIndex,t.dataIndex=null),t.highlightKey="visualMap"+(e?e.componentIndex:"")})),t}var Ez=Fi,zz=k,Bz=Math.min,Vz=Math.max,Fz=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e._shapes={},e._dataInterval=[],e._handleEnds=[],e._hoverLinkDataIndices=[],e}return e(n,t),n.prototype.doRender=function(t,e,n,i){this._api=n,i&&"selectDataRange"===i.type&&i.from===this.uid||this._buildView()},n.prototype._buildView=function(){this.group.removeAll();var t=this.visualMapModel,e=this.group;this._orient=t.get("orient"),this._useHandle=t.get("calculable"),this._resetInterval(),this._renderBar(e);var n=t.get("text");this._renderEndsText(e,n,0),this._renderEndsText(e,n,1),this._updateView(!0),this.renderBackground(e),this._updateView(),this._enableHoverLinkToSeries(),this._enableHoverLinkFromSeries(),this.positionGroup(e)},n.prototype._renderEndsText=function(t,e,n){if(e){var i=e[1-n];i=null!=i?i+"":"";var r=this.visualMapModel,o=r.get("textGap"),a=r.itemSize,s=this._shapes.mainGroup,l=this._applyTransform([a[0]/2,0===n?-o:a[1]+o],s),u=this._applyTransform(0===n?"bottom":"top",s),h=this._orient,c=this.visualMapModel.textStyleModel;this.group.add(new Ka({style:{x:l[0],y:l[1],verticalAlign:"horizontal"===h?"middle":u,align:"horizontal"===h?u:"center",text:i,font:c.getFont(),fill:c.getTextColor()}}))}},n.prototype._renderBar=function(t){var e=this.visualMapModel,n=this._shapes,i=e.itemSize,r=this._orient,o=this._useHandle,a=Rz(e,this.api,i),s=n.mainGroup=this._createBarGroup(a),l=new Pi;s.add(l),l.add(n.outOfRange=Gz()),l.add(n.inRange=Gz(null,o?Wz(this._orient):null,z(this._dragHandle,this,"all",!1),z(this._dragHandle,this,"all",!0))),l.setClipPath(new Za({shape:{x:0,y:0,width:i[0],height:i[1],r:3}}));var u=e.textStyleModel.getTextRect("国"),h=Vz(u.width,u.height);o&&(n.handleThumbs=[],n.handleLabels=[],n.handleLabelPoints=[],this._createHandle(e,s,0,i,h,r),this._createHandle(e,s,1,i,h,r)),this._createIndicator(e,s,i,h,r),t.add(s)},n.prototype._createHandle=function(t,e,n,i,r,o){var a=z(this._dragHandle,this,n,!1),s=z(this._dragHandle,this,n,!0),l=Hn(t.get("handleSize"),i[0]),u=Ig(t.get("handleIcon"),-l/2,-l/2,l,l,null,!0),h=Wz(this._orient);u.attr({cursor:h,draggable:!0,drift:a,ondragend:s,onmousemove:function(t){ee(t.event)}}),u.x=i[0]/2,u.useStyle(t.getModel("handleStyle").getItemStyle()),u.setStyle({strokeNoScale:!0,strokeFirst:!0}),u.style.lineWidth*=2,u.ensureState("emphasis").style=t.getModel(["emphasis","handleStyle"]).getItemStyle(),Fs(u,!0),e.add(u);var c=this.visualMapModel.textStyleModel,p=new Ka({cursor:h,draggable:!0,drift:a,onmousemove:function(t){ee(t.event)},ondragend:s,style:{x:0,y:0,text:"",font:c.getFont(),fill:c.getTextColor()}});p.ensureState("blur").style={opacity:.1},p.stateTransition={duration:200},this.group.add(p);var d=[l,0],f=this._shapes;f.handleThumbs[n]=u,f.handleLabelPoints[n]=d,f.handleLabels[n]=p},n.prototype._createIndicator=function(t,e,n,i,r){var o=Hn(t.get("indicatorSize"),n[0]),a=Ig(t.get("indicatorIcon"),-o/2,-o/2,o,o,null,!0);a.attr({cursor:"move",invisible:!0,silent:!0,x:n[0]/2});var s=t.getModel("indicatorStyle").getItemStyle();if(a instanceof Fa){var l=a.style;a.useStyle(M({image:l.image,x:l.x,y:l.y,width:l.width,height:l.height},s))}else a.useStyle(s);e.add(a);var u=this.visualMapModel.textStyleModel,h=new Ka({silent:!0,invisible:!0,style:{x:0,y:0,text:"",font:u.getFont(),fill:u.getTextColor()}});this.group.add(h);var c=[("horizontal"===r?i/2:6)+n[0]/2,0],p=this._shapes;p.indicator=a,p.indicatorLabel=h,p.indicatorLabelPoint=c,this._firstShowIndicator=!0},n.prototype._dragHandle=function(t,e,n,i){if(this._useHandle){if(this._dragging=!e,!e){var r=this._applyTransform([n,i],this._shapes.mainGroup,!0);this._updateInterval(t,r[1]),this._hideIndicator(),this._updateView()}e===!this.visualMapModel.get("realtime")&&this.api.dispatchAction({type:"selectDataRange",from:this.uid,visualMapId:this.visualMapModel.id,selected:this._dataInterval.slice()}),e?!this._hovering&&this._clearHoverLinkToSeries():Hz(this.visualMapModel)&&this._doHoverLinkToSeries(this._handleEnds[t],!1)}},n.prototype._resetInterval=function(){var t=this.visualMapModel,e=this._dataInterval=t.getSelected(),n=t.getExtent(),i=[0,t.itemSize[1]];this._handleEnds=[Ez(e[0],n,i,!0),Ez(e[1],n,i,!0)]},n.prototype._updateInterval=function(t,e){e=e||0;var n=this.visualMapModel,i=this._handleEnds,r=[0,n.itemSize[1]];yC(e,i,r,t,0);var o=n.getExtent();this._dataInterval=[Ez(i[0],r,o,!0),Ez(i[1],r,o,!0)]},n.prototype._updateView=function(t){var e=this.visualMapModel,n=e.getExtent(),i=this._shapes,r=[0,e.itemSize[1]],o=t?r:this._handleEnds,a=this._createBarVisual(this._dataInterval,n,o,"inRange"),s=this._createBarVisual(n,n,r,"outOfRange");i.inRange.setStyle({fill:a.barColor}).setShape("points",a.barPoints),i.outOfRange.setStyle({fill:s.barColor}).setShape("points",s.barPoints),this._updateHandle(o,a)},n.prototype._createBarVisual=function(t,e,n,i){var r={forceState:i,convertOpacityToAlpha:!0},o=this._makeColorGradient(t,r),a=[this.getControllerVisual(t[0],"symbolSize",r),this.getControllerVisual(t[1],"symbolSize",r)],s=this._createBarPoints(n,a);return{barColor:new Ul(0,0,0,1,o),barPoints:s,handlesColor:[o[0].color,o[o.length-1].color]}},n.prototype._makeColorGradient=function(t,e){var n=[],i=(t[1]-t[0])/100;n.push({color:this.getControllerVisual(t[0],"color",e),offset:0});for(var r=1;r<100;r++){var o=t[0]+i*r;if(o>t[1])break;n.push({color:this.getControllerVisual(o,"color",e),offset:r/100})}return n.push({color:this.getControllerVisual(t[1],"color",e),offset:1}),n},n.prototype._createBarPoints=function(t,e){var n=this.visualMapModel.itemSize;return[[n[0]-e[0],t[0]],[n[0],t[0]],[n[0],t[1]],[n[0]-e[1],t[1]]]},n.prototype._createBarGroup=function(t){var e=this._orient,n=this.visualMapModel.get("inverse");return new Pi("horizontal"!==e||n?"horizontal"===e&&n?{scaleX:"bottom"===t?-1:1,rotation:-Math.PI/2}:"vertical"!==e||n?{scaleX:"left"===t?1:-1}:{scaleX:"left"===t?1:-1,scaleY:-1}:{scaleX:"bottom"===t?1:-1,rotation:Math.PI/2})},n.prototype._updateHandle=function(t,e){if(this._useHandle){var n=this._shapes,i=this.visualMapModel,r=n.handleThumbs,o=n.handleLabels,a=i.itemSize,s=i.getExtent();zz([0,1],(function(l){var u=r[l];u.setStyle("fill",e.handlesColor[l]),u.y=t[l];var h=Ez(t[l],[0,a[1]],s,!0),c=this.getControllerVisual(h,"symbolSize");u.scaleX=u.scaleY=c/a[0],u.x=a[0]-c/2;var p=Su(n.handleLabelPoints[l],wu(u,this.group));o[l].setStyle({x:p[0],y:p[1],text:i.formatValueText(this._dataInterval[l]),verticalAlign:"middle",align:"vertical"===this._orient?this._applyTransform("left",n.mainGroup):"center"})}),this)}},n.prototype._showIndicator=function(t,e,n,i){var r=this.visualMapModel,o=r.getExtent(),a=r.itemSize,s=[0,a[1]],l=this._shapes,u=l.indicator;if(u){u.attr("invisible",!1);var h=this.getControllerVisual(t,"color",{convertOpacityToAlpha:!0}),c=this.getControllerVisual(t,"symbolSize"),p=Ez(t,o,s,!0),d=a[0]-c/2,f={x:u.x,y:u.y};u.y=p,u.x=d;var g=Su(l.indicatorLabelPoint,wu(u,this.group)),y=l.indicatorLabel;y.attr("invisible",!1);var v=this._applyTransform("left",l.mainGroup),m="horizontal"===this._orient;y.setStyle({text:(n||"")+r.formatValueText(e),verticalAlign:m?v:"middle",align:m?"center":v});var _={x:d,y:p,style:{fill:h}},x={style:{x:g[0],y:g[1]}};if(r.ecModel.isAnimationEnabled()&&!this._firstShowIndicator){var b={duration:100,easing:"cubicInOut",additive:!0};u.x=f.x,u.y=f.y,u.animateTo(_,b),y.animateTo(x,b)}else u.attr(_),y.attr(x);this._firstShowIndicator=!1;var w=this._shapes.handleLabels;if(w)for(var S=0;S<w.length;S++)this._api.enterBlur(w[S])}},n.prototype._enableHoverLinkToSeries=function(){var t=this;this._shapes.mainGroup.on("mousemove",(function(e){if(t._hovering=!0,!t._dragging){var n=t.visualMapModel.itemSize,i=t._applyTransform([e.offsetX,e.offsetY],t._shapes.mainGroup,!0,!0);i[1]=Bz(Vz(0,i[1]),n[1]),t._doHoverLinkToSeries(i[1],0<=i[0]&&i[0]<=n[0])}})).on("mouseout",(function(){t._hovering=!1,!t._dragging&&t._clearHoverLinkToSeries()}))},n.prototype._enableHoverLinkFromSeries=function(){var t=this.api.getZr();this.visualMapModel.option.hoverLink?(t.on("mouseover",this._hoverLinkFromSeriesMouseOver,this),t.on("mouseout",this._hideIndicator,this)):this._clearHoverLinkFromSeries()},n.prototype._doHoverLinkToSeries=function(t,e){var n=this.visualMapModel,i=n.itemSize;if(n.option.hoverLink){var r=[0,i[1]],o=n.getExtent();t=Bz(Vz(r[0],t),r[1]);var a=function(t,e,n){var i=6,r=t.get("hoverLinkDataSize");r&&(i=Ez(r,e,n,!0)/2);return i}(n,o,r),s=[t-a,t+a],l=Ez(t,r,o,!0),u=[Ez(s[0],r,o,!0),Ez(s[1],r,o,!0)];s[0]<r[0]&&(u[0]=-1/0),s[1]>r[1]&&(u[1]=1/0),e&&(u[0]===-1/0?this._showIndicator(l,u[1],"< ",a):u[1]===1/0?this._showIndicator(l,u[0],"> ",a):this._showIndicator(l,l,"≈ ",a));var h=this._hoverLinkDataIndices,c=[];(e||Hz(n))&&(c=this._hoverLinkDataIndices=n.findTargetDataIndices(u));var p=function(t,e){var n={},i={};return r(t||[],n),r(e||[],i,n),[o(n),o(i)];function r(t,e,n){for(var i=0,r=t.length;i<r;i++){var o=vr(t[i].seriesId,null);if(null==o)return;for(var a=hr(t[i].dataIndex),s=n&&n[o],l=0,u=a.length;l<u;l++){var h=a[l];s&&s[h]?s[h]=null:(e[o]||(e[o]={}))[h]=1}}}function o(t,e){var n=[];for(var i in t)if(t.hasOwnProperty(i)&&null!=t[i])if(e)n.push(+i);else{var r=o(t[i],!0);r.length&&n.push({seriesId:i,dataIndex:r})}return n}}(h,c);this._dispatchHighDown("downplay",Nz(p[0],n)),this._dispatchHighDown("highlight",Nz(p[1],n))}},n.prototype._hoverLinkFromSeriesMouseOver=function(t){var e=t.target,n=this.visualMapModel;if(e&&null!=rs(e).dataIndex){var i=rs(e),r=this.ecModel.getSeriesByIndex(i.seriesIndex);if(n.isTargetSeries(r)){var o=r.getData(i.dataType),a=o.get(n.getDataDimension(o),i.dataIndex);isNaN(a)||this._showIndicator(a,a)}}},n.prototype._hideIndicator=function(){var t=this._shapes;t.indicator&&t.indicator.attr("invisible",!0),t.indicatorLabel&&t.indicatorLabel.attr("invisible",!0);var e=this._shapes.handleLabels;if(e)for(var n=0;n<e.length;n++)this._api.leaveBlur(e[n])},n.prototype._clearHoverLinkToSeries=function(){this._hideIndicator();var t=this._hoverLinkDataIndices;this._dispatchHighDown("downplay",Nz(t,this.visualMapModel)),t.length=0},n.prototype._clearHoverLinkFromSeries=function(){this._hideIndicator();var t=this.api.getZr();t.off("mouseover",this._hoverLinkFromSeriesMouseOver),t.off("mouseout",this._hideIndicator)},n.prototype._applyTransform=function(t,e,n,i){var r=wu(e,i?null:this.group);return V(t)?Su(t,r,n):Mu(t,r,n)},n.prototype._dispatchHighDown=function(t,e){e&&e.length&&this.api.dispatchAction({type:t,batch:e})},n.prototype.dispose=function(){this._clearHoverLinkFromSeries(),this._clearHoverLinkToSeries()},n.prototype.remove=function(){this._clearHoverLinkFromSeries(),this._clearHoverLinkToSeries()},n.type="visualMap.continuous",n}(Pz);function Gz(t,e,n,i){return new Pl({shape:{points:t},draggable:!!n,cursor:e,drift:n,onmousemove:function(t){ee(t.event)},ondragend:i})}function Hz(t){var e=t.get("hoverLinkOnHandle");return!!(null==e?t.get("realtime"):e)}function Wz(t){return"vertical"===t?"ns-resize":"ew-resize"}var Yz={type:"selectDataRange",event:"dataRangeSelected",update:"update"},Xz=function(t,e){e.eachComponent({mainType:"visualMap",query:t},(function(e){e.setSelected(t.selected)}))},Uz=[{createOnAllSeries:!0,reset:function(t,e){var n=[];return e.eachComponent("visualMap",(function(e){var i,r,o,a,s,l=t.pipelineContext;!e.isTargetSeries(t)||l&&l.large||n.push((i=e.stateList,r=e.targetVisuals,o=z(e.getValueState,e),a=e.getDataDimension(t.getData()),s={},k(i,(function(t){var e=cI.prepareVisualTypes(r[t]);s[t]=e})),{progress:function(t,e){var n,i;function l(t){return Af(e,i,t)}function u(t,n){Lf(e,i,t,n)}for(null!=a&&(n=e.getDimension(a));null!=(i=t.next());){var h=e.getRawDataItem(i);if(!h||!1!==h.visualMap)for(var c=null!=a?e.get(n,i):i,p=o(c),d=r[p],f=s[p],g=0,y=f.length;g<y;g++){var v=f[g];d[v]&&d[v].applyVisual(c,l,u)}}}}))})),n}},{createOnAllSeries:!0,reset:function(t,e){var n=t.getData(),i=[];e.eachComponent("visualMap",(function(e){if(e.isTargetSeries(t)){var r=e.getVisualMeta(z(Zz,null,t,e))||{stops:[],outerColors:[]},o=e.getDataDimension(n),a=n.getDimensionInfo(o);null!=a&&(r.dimension=a.index,i.push(r))}})),t.getData().setVisual("visualMeta",i)}}];function Zz(t,e,n,i){for(var r=e.targetVisuals[i],o=cI.prepareVisualTypes(r),a={color:Df(t.getData(),"color")},s=0,l=o.length;s<l;s++){var u=o[s],h=r["opacity"===u?"__alphaForOpacity":u];h&&h.applyVisual(n,c,p)}return a.color;function c(t){return a[t]}function p(t,e){a[t]=e}}var jz=k;function qz(t){var e=t&&t.visualMap;V(e)||(e=e?[e]:[]),jz(e,(function(t){if(t){Kz(t,"splitList")&&!Kz(t,"pieces")&&(t.pieces=t.splitList,delete t.splitList);var e=t.pieces;e&&V(e)&&jz(e,(function(t){Y(t)&&(Kz(t,"start")&&!Kz(t,"min")&&(t.min=t.start),Kz(t,"end")&&!Kz(t,"max")&&(t.max=t.end))}))}}))}function Kz(t,e){return t&&t.hasOwnProperty&&t.hasOwnProperty(e)}var $z=!1;function Jz(t){$z||($z=!0,t.registerSubTypeDefaulter("visualMap",(function(t){return t.categories||(t.pieces?t.pieces.length>0:t.splitNumber>0)&&!t.calculable?"piecewise":"continuous"})),t.registerAction(Yz,Xz),k(Uz,(function(e){t.registerVisual(t.PRIORITY.VISUAL.COMPONENT,e)})),t.registerPreprocessor(qz))}function Qz(t){t.registerComponentModel(Lz),t.registerComponentView(Fz),Jz(t)}var tB=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e._pieceList=[],e}return e(n,t),n.prototype.optionUpdated=function(e,n){t.prototype.optionUpdated.apply(this,arguments),this.resetExtent();var i=this._mode=this._determineMode();this._pieceList=[],eB[this._mode].call(this,this._pieceList),this._resetSelected(e,n);var r=this.option.categories;this.resetVisual((function(t,e){"categories"===i?(t.mappingMethod="category",t.categories=b(r)):(t.dataExtent=this.getExtent(),t.mappingMethod="piecewise",t.pieceList=P(this._pieceList,(function(t){return t=b(t),"inRange"!==e&&(t.visual=null),t})))}))},n.prototype.completeVisualOption=function(){var e=this.option,n={},i=cI.listVisualTypes(),r=this.isCategory();function o(t,e,n){return t&&t[e]&&t[e].hasOwnProperty(n)}k(e.pieces,(function(t){k(i,(function(e){t.hasOwnProperty(e)&&(n[e]=1)}))})),k(n,(function(t,n){var i=!1;k(this.stateList,(function(t){i=i||o(e,t,n)||o(e.target,t,n)}),this),!i&&k(this.stateList,(function(t){(e[t]||(e[t]={}))[n]=xz(n,"inRange"===t?"active":"inactive",r)}))}),this),t.prototype.completeVisualOption.apply(this,arguments)},n.prototype._resetSelected=function(t,e){var n=this.option,i=this._pieceList,r=(e?n:t).selected||{};if(n.selected=r,k(i,(function(t,e){var n=this.getSelectedMapKey(t);r.hasOwnProperty(n)||(r[n]=!0)}),this),"single"===n.selectedMode){var o=!1;k(i,(function(t,e){var n=this.getSelectedMapKey(t);r[n]&&(o?r[n]=!1:o=!0)}),this)}},n.prototype.getSelectedMapKey=function(t){return"categories"===this._mode?t.value+"":t.index+""},n.prototype.getPieceList=function(){return this._pieceList},n.prototype._determineMode=function(){var t=this.option;return t.pieces&&t.pieces.length>0?"pieces":this.option.categories?"categories":"splitNumber"},n.prototype.setSelected=function(t){this.option.selected=b(t)},n.prototype.getValueState=function(t){var e=cI.findPieceIndex(t,this._pieceList);return null!=e&&this.option.selected[this.getSelectedMapKey(this._pieceList[e])]?"inRange":"outOfRange"},n.prototype.findTargetDataIndices=function(t){var e=[],n=this._pieceList;return this.eachTargetSeries((function(i){var r=[],o=i.getData();o.each(this.getDataDimension(o),(function(e,i){cI.findPieceIndex(e,n)===t&&r.push(i)}),this),e.push({seriesId:i.id,dataIndex:r})}),this),e},n.prototype.getRepresentValue=function(t){var e;if(this.isCategory())e=t.value;else if(null!=t.value)e=t.value;else{var n=t.interval||[];e=n[0]===-1/0&&n[1]===1/0?0:(n[0]+n[1])/2}return e},n.prototype.getVisualMeta=function(t){if(!this.isCategory()){var e=[],n=["",""],i=this,r=this._pieceList.slice();if(r.length){var o=r[0].interval[0];o!==-1/0&&r.unshift({interval:[-1/0,o]}),(o=r[r.length-1].interval[1])!==1/0&&r.push({interval:[o,1/0]})}else r.push({interval:[-1/0,1/0]});var a=-1/0;return k(r,(function(t){var e=t.interval;e&&(e[0]>a&&s([a,e[0]],"outOfRange"),s(e.slice()),a=e[1])}),this),{stops:e,outerColors:n}}function s(r,o){var a=i.getRepresentValue({interval:r});o||(o=i.getValueState(a));var s=t(a,o);r[0]===-1/0?n[0]=s:r[1]===1/0?n[1]=s:e.push({value:r[0],color:s},{value:r[1],color:s})}},n.type="visualMap.piecewise",n.defaultOption=uh(Az.defaultOption,{selected:null,minOpen:!1,maxOpen:!1,align:"auto",itemWidth:20,itemHeight:14,itemSymbol:"roundRect",pieces:null,categories:null,splitNumber:5,selectedMode:"multiple",itemGap:10,hoverLink:!0}),n}(Az),eB={splitNumber:function(t){var e=this.option,n=Math.min(e.precision,20),i=this.getExtent(),r=e.splitNumber;r=Math.max(parseInt(r,10),1),e.splitNumber=r;for(var o=(i[1]-i[0])/r;+o.toFixed(n)!==o&&n<5;)n++;e.precision=n,o=+o.toFixed(n),e.minOpen&&t.push({interval:[-1/0,i[0]],close:[0,0]});for(var a=0,s=i[0];a<r;s+=o,a++){var l=a===r-1?i[1]:s+o;t.push({interval:[s,l],close:[1,1]})}e.maxOpen&&t.push({interval:[i[1],1/0],close:[0,0]}),nr(t),k(t,(function(t,e){t.index=e,t.text=this.formatValueText(t.interval)}),this)},categories:function(t){var e=this.option;k(e.categories,(function(e){t.push({text:this.formatValueText(e,!0),value:e})}),this),nB(e,t)},pieces:function(t){var e=this.option;k(e.pieces,(function(e,n){Y(e)||(e={value:e});var i={text:"",index:n};if(null!=e.label&&(i.text=e.label),e.hasOwnProperty("value")){var r=i.value=e.value;i.interval=[r,r],i.close=[1,1]}else{for(var o=i.interval=[],a=i.close=[0,0],s=[1,0,1],l=[-1/0,1/0],u=[],h=0;h<2;h++){for(var c=[["gte","gt","min"],["lte","lt","max"]][h],p=0;p<3&&null==o[h];p++)o[h]=e[c[p]],a[h]=s[p],u[h]=2===p;null==o[h]&&(o[h]=l[h])}u[0]&&o[1]===1/0&&(a[0]=0),u[1]&&o[0]===-1/0&&(a[1]=0),o[0]===o[1]&&a[0]&&a[1]&&(i.value=o[0])}i.visual=cI.retrieveVisuals(e),t.push(i)}),this),nB(e,t),nr(t),k(t,(function(t){var e=t.close,n=[["<","≤"][e[1]],[">","≥"][e[0]]];t.text=t.text||this.formatValueText(null!=t.value?t.value:t.interval,!1,n)}),this)}};function nB(t,e){var n=t.inverse;("vertical"===t.orient?!n:n)&&e.reverse()}var iB=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.doRender=function(){var t=this.group;t.removeAll();var e=this.visualMapModel,n=e.get("textGap"),i=e.textStyleModel,r=i.getFont(),o=i.getTextColor(),a=this._getItemAlign(),s=e.itemSize,l=this._getViewData(),u=l.endsText,h=J(e.get("showLabel",!0),!u);u&&this._renderEndsText(t,u[0],s,h,a),k(l.viewPieceList,(function(i){var l=i.piece,u=new Pi;u.onclick=z(this._onItemClick,this,l),this._enableHoverLink(u,i.indexInModelPieceList);var c=e.getRepresentValue(l);if(this._createItemSymbol(u,c,[0,0,s[0],s[1]]),h){var p=this.visualMapModel.getValueState(c);u.add(new Ka({style:{x:"right"===a?-n:s[0]+n,y:s[1]/2,text:l.text,verticalAlign:"middle",align:a,font:r,fill:o,opacity:"outOfRange"===p?.5:1}}))}t.add(u)}),this),u&&this._renderEndsText(t,u[1],s,h,a),ec(e.get("orient"),t,e.get("itemGap")),this.renderBackground(t),this.positionGroup(t)},n.prototype._enableHoverLink=function(t,e){var n=this;t.on("mouseover",(function(){return i("highlight")})).on("mouseout",(function(){return i("downplay")}));var i=function(t){var i=n.visualMapModel;i.option.hoverLink&&n.api.dispatchAction({type:t,batch:Nz(i.findTargetDataIndices(e),i)})}},n.prototype._getItemAlign=function(){var t=this.visualMapModel,e=t.option;if("vertical"===e.orient)return Rz(t,this.api,t.itemSize);var n=e.align;return n&&"auto"!==n||(n="left"),n},n.prototype._renderEndsText=function(t,e,n,i,r){if(e){var o=new Pi,a=this.visualMapModel.textStyleModel;o.add(new Ka({style:{x:i?"right"===r?n[0]:0:n[0]/2,y:n[1]/2,verticalAlign:"middle",align:i?r:"center",text:e,font:a.getFont(),fill:a.getTextColor()}})),t.add(o)}},n.prototype._getViewData=function(){var t=this.visualMapModel,e=P(t.getPieceList(),(function(t,e){return{piece:t,indexInModelPieceList:e}})),n=t.get("text"),i=t.get("orient"),r=t.get("inverse");return("horizontal"===i?r:!r)?e.reverse():n&&(n=n.slice().reverse()),{viewPieceList:e,endsText:n}},n.prototype._createItemSymbol=function(t,e,n){t.add(Ig(this.getControllerVisual(e,"symbol"),n[0],n[1],n[2],n[3],this.getControllerVisual(e,"color")))},n.prototype._onItemClick=function(t){var e=this.visualMapModel,n=e.option,i=b(n.selected),r=e.getSelectedMapKey(t);"single"===n.selectedMode?(i[r]=!0,k(i,(function(t,e){i[e]=e===r}))):i[r]=!i[r],this.api.dispatchAction({type:"selectDataRange",from:this.uid,visualMapId:this.visualMapModel.id,selected:i})},n.type="visualMap.piecewise",n}(Pz);function rB(t){t.registerComponentModel(tB),t.registerComponentView(iB),Jz(t)}var oB={label:{enabled:!0},decal:{show:!1}},aB=br(),sB={};function lB(t,e){var n=t.getModel("aria");if(n.get("enabled")){var i=b(oB);w(i.label,t.getLocaleModel().get("aria"),!1),w(n.option,i,!1),function(){if(n.getModel("decal").get("show")){var e=lt();t.eachSeries((function(t){if(t.useColorPaletteOnData){var n=e.get(t.type);n||(n={},e.set(t.type,n)),aB(t).scope=n}})),t.eachRawSeries((function(e){if(!t.isSeriesFiltered(e))if("function"!=typeof e.enableAriaDecal){var n=e.getData();if(e.useColorPaletteOnData){var i=e.getRawData(),r={},o=aB(e).scope;n.each((function(t){var e=n.getRawIndex(t);r[e]=t}));var a=i.count();i.each((function(t){var s=r[t],l=i.getName(t)||t+"",h=Lc(e.ecModel,l,o,a),c=n.getItemVisual(s,"decal");n.setItemVisual(s,"decal",u(c,h))}))}else{var s=Lc(e.ecModel,e.name,sB,t.getSeriesCount()),l=n.getVisual("decal");n.setVisual("decal",u(l,s))}}else e.enableAriaDecal();function u(t,e){var n=t?M(M({},e),t):e;return n.dirty=!0,n}}))}}(),function(){var i=t.getLocaleModel().get("aria"),o=n.getModel("label");if(o.option=I(o.option,i),!o.get("enabled"))return;var a=e.getZr().dom;if(o.get("description"))return void a.setAttribute("aria-label",o.get("description"));var s,l=t.getSeriesCount(),u=o.get(["data","maxCount"])||10,h=o.get(["series","maxCount"])||10,c=Math.min(l,h);if(l<1)return;var p=function(){var e=t.get("title");e&&e.length&&(e=e[0]);return e&&e.text}();if(p){var d=o.get(["general","withTitle"]);s=r(d,{title:p})}else s=o.get(["general","withoutTitle"]);var f=[],g=l>1?o.get(["series","multiple","prefix"]):o.get(["series","single","prefix"]);s+=r(g,{seriesCount:l}),t.eachSeries((function(e,n){if(n<c){var i=void 0,a=e.get("name")?"withName":"withoutName";i=r(i=l>1?o.get(["series","multiple",a]):o.get(["series","single",a]),{seriesId:e.seriesIndex,seriesName:e.get("name"),seriesType:(_=e.subType,t.getLocaleModel().get(["series","typeNames"])[_]||"自定义图")});var s=e.getData();if(s.count()>u)i+=r(o.get(["data","partialData"]),{displayCnt:u});else i+=o.get(["data","allData"]);for(var h=[],p=0;p<s.count();p++)if(p<u){var d=s.getName(p),g=Rp(s,p),y=o.get(["data",d?"withName":"withoutName"]);h.push(r(y,{name:d,value:g}))}var v=o.get(["data","separator","middle"]),m=o.get(["data","separator","end"]);i+=h.join(v)+m,f.push(i)}var _}));var y=o.getModel(["series","multiple","separator"]),v=y.get("middle"),m=y.get("end");s+=f.join(v)+m,a.setAttribute("aria-label",s)}()}function r(t,e){if("string"!=typeof t)return t;var n=t;return k(e,(function(t,e){n=n.replace(new RegExp("\\{\\s*"+e+"\\s*\\}","g"),t)})),n}}function uB(t){if(t&&t.aria){var e=t.aria;null!=e.show&&(e.enabled=e.show),e.label=e.label||{},k(["description","general","series","data"],(function(t){null!=e[t]&&(e.label[t]=e[t])}))}}var hB={value:"eq","<":"lt","<=":"lte",">":"gt",">=":"gte","=":"eq","!=":"ne","<>":"ne"},cB=function(){function t(t){if(null==(this._condVal=G(t)?new RegExp(t):K(t)?t:null)){var e="";0,ur(e)}}return t.prototype.evaluate=function(t){var e=typeof t;return"string"===e?this._condVal.test(t):"number"===e&&this._condVal.test(t+"")},t}(),pB=function(){function t(){}return t.prototype.evaluate=function(){return this.value},t}(),dB=function(){function t(){}return t.prototype.evaluate=function(){for(var t=this.children,e=0;e<t.length;e++)if(!t[e].evaluate())return!1;return!0},t}(),fB=function(){function t(){}return t.prototype.evaluate=function(){for(var t=this.children,e=0;e<t.length;e++)if(t[e].evaluate())return!0;return!1},t}(),gB=function(){function t(){}return t.prototype.evaluate=function(){return!this.child.evaluate()},t}(),yB=function(){function t(){}return t.prototype.evaluate=function(){for(var t=!!this.valueParser,e=(0,this.getValue)(this.valueGetterParam),n=t?this.valueParser(e):null,i=0;i<this.subCondList.length;i++)if(!this.subCondList[i].evaluate(t?n:e))return!1;return!0},t}();function vB(t,e){if(!0===t||!1===t){var n=new pB;return n.value=t,n}var i="";return _B(t)||ur(i),t.and?mB("and",t,e):t.or?mB("or",t,e):t.not?function(t,e){var n=t.not,i="";0;_B(n)||ur(i);var r=new gB;r.child=vB(n,e),r.child||ur(i);return r}(t,e):function(t,e){for(var n="",i=e.prepareGetValue(t),r=[],o=E(t),a=t.parser,s=a?Wp(a):null,l=0;l<o.length;l++){var u=o[l];if("parser"!==u&&!e.valueGetterAttrMap.get(u)){var h=ct(hB,u)?hB[u]:u,c=t[u],p=s?s(c):c,d=jp(h,p)||"reg"===h&&new cB(p);d||ur(n),r.push(d)}}r.length||ur(n);var f=new yB;return f.valueGetterParam=i,f.valueParser=s,f.getValue=e.getValue,f.subCondList=r,f}(t,e)}function mB(t,e,n){var i=e[t],r="";V(i)||ur(r),i.length||ur(r);var o="and"===t?new dB:new fB;return o.children=P(i,(function(t){return vB(t,n)})),o.children.length||ur(r),o}function _B(t){return Y(t)&&!L(t)}var xB=function(){function t(t,e){this._cond=vB(t,e)}return t.prototype.evaluate=function(){return this._cond.evaluate()},t}();var bB={type:"echarts:filter",transform:function(t){for(var e,n,i,r=t.upstream,o=(n=t.config,i={valueGetterAttrMap:lt({dimension:!0}),prepareGetValue:function(t){var e="",n=t.dimension;ct(t,"dimension")||ur(e);var i=r.getDimensionInfo(n);return i||ur(e),{dimIdx:i.index}},getValue:function(t){return r.retrieveValueFromItem(e,t.dimIdx)}},new xB(n,i)),a=[],s=0,l=r.count();s<l;s++)e=r.getRawDataItem(s),o.evaluate()&&a.push(e);return{data:a}}};var wB={type:"echarts:sort",transform:function(t){var e=t.upstream,n=t.config,i="",r=hr(n);r.length||ur(i);var o=[];k(r,(function(t){var n=t.dimension,r=t.order,a=t.parser,s=t.incomparable;if(null==n&&ur(i),"asc"!==r&&"desc"!==r&&ur(i),s&&"min"!==s&&"max"!==s){var l="";0,ur(l)}if("asc"!==r&&"desc"!==r){var u="";0,ur(u)}var h=e.getDimensionInfo(n);h||ur(i);var c=a?Wp(a):null;a&&!c&&ur(i),o.push({dimIdx:h.index,parser:c,comparator:new Up(r,s)})}));var a=e.sourceFormat;"arrayRows"!==a&&"objectRows"!==a&&ur(i);for(var s=[],l=0,u=e.count();l<u;l++)s.push(e.getRawDataItem(l));return s.sort((function(t,n){for(var i=0;i<o.length;i++){var r=o[i],a=e.retrieveValueFromItem(t,r.dimIdx),s=e.retrieveValueFromItem(n,r.dimIdx);r.parser&&(a=r.parser(a),s=r.parser(s));var l=r.comparator.evaluate(a,s);if(0!==l)return l}return 0})),{data:s}}};var SB=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="dataset",e}return e(n,t),n.prototype.init=function(e,n,i){t.prototype.init.call(this,e,n,i),this._sourceManager=new id(this),rd(this)},n.prototype.mergeOption=function(e,n){t.prototype.mergeOption.call(this,e,n),rd(this)},n.prototype.optionUpdated=function(){this._sourceManager.dirty()},n.prototype.getSourceManager=function(){return this._sourceManager},n.type="dataset",n.defaultOption={seriesLayoutBy:"column"},n}(uc),MB=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="dataset",e}return e(n,t),n.type="dataset",n}(kd);Mv([function(t){t.registerPainter("canvas",zx)}]),Mv([function(t){t.registerPainter("svg",kx)}]),Mv([function(t){t.registerChartView(mb),t.registerSeriesModel(Bx),t.registerLayout(_b("line",!0)),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,wb("line"))},function(t){t.registerChartView(Pb),t.registerSeriesModel(Mb),t.registerLayout(t.PRIORITY.VISUAL.LAYOUT,B(km,"bar")),t.registerLayout(t.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,Pm),t.registerVisual({seriesType:"bar",reset:function(t){t.getData().setVisual("legendSymbol","roundRect")}}),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,wb("bar")),t.registerAction({type:"changeAxisOrder",event:"changeAxisOrder",update:"update"},(function(t,e){var n=t.componentType||"series";e.eachComponent({mainType:n,query:t},(function(e){t.sortInfo&&e.axis.setCategorySortInfo(t.sortInfo)}))}))},function(t){t.registerChartView(Qb),t.registerSeriesModel(nw),pg("pie",t.registerAction),t.registerLayout(B(Xb,"pie")),t.registerProcessor(Ub("pie"))},function(t){Mv(eS),t.registerSeriesModel(iw),t.registerChartView(sw),t.registerLayout(_b("scatter"))},function(t){Mv(gS),t.registerChartView(aS),t.registerSeriesModel(sS),t.registerLayout(nS),t.registerProcessor(Ub("radar")),t.registerPreprocessor(oS)},function(t){t.registerChartView(oM),t.registerSeriesModel(aM),t.registerLayout(lM),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,sM),pg("map",t.registerAction)},function(t){t.registerChartView(SM),t.registerSeriesModel(VM),t.registerLayout(GM),t.registerVisual(HM),function(t){t.registerAction({type:"treeExpandAndCollapse",event:"treeExpandAndCollapse",update:"update"},(function(t,e){e.eachComponent({mainType:"series",subType:"tree",query:t},(function(e){var n=t.dataIndex,i=e.getData().tree.getNodeByDataIndex(n);i.isExpand=!i.isExpand}))})),t.registerAction({type:"treeRoam",event:"treeRoam",update:"none"},(function(t,e){e.eachComponent({mainType:"series",subType:"tree",query:t},(function(e){var n=WM(e.coordinateSystem,t);e.setCenter&&e.setCenter(n.center),e.setZoom&&e.setZoom(n.zoom)}))}))}(t)},function(t){t.registerSeriesModel($M),t.registerChartView(lI),t.registerVisual(MI),t.registerLayout(zI),function(t){for(var e=0;e<qM.length;e++)t.registerAction({type:qM[e],update:"updateView"},jM);t.registerAction({type:"treemapRootToNode",update:"updateView"},(function(t,e){e.eachComponent({mainType:"series",subType:"treemap",query:t},(function(e,n){var i=YM(t,["treemapZoomToNode","treemapRootToNode"],e);if(i){var r=e.getViewRoot();r&&(t.direction=UM(r,i.node)?"rollUp":"drillDown"),e.resetViewRoot(i.node)}}))}))}(t)},function(t){t.registerChartView(NT),t.registerSeriesModel(HT),t.registerProcessor(WI),t.registerVisual(YI),t.registerVisual(UI),t.registerLayout(eT),t.registerLayout(t.PRIORITY.VISUAL.POST_CHART_LAYOUT,lT),t.registerLayout(hT),t.registerCoordinateSystem("graphView",{dimensions:_M.dimensions,create:cT}),t.registerAction({type:"focusNodeAdjacency",event:"focusNodeAdjacency",update:"series:focusNodeAdjacency"},(function(){})),t.registerAction({type:"unfocusNodeAdjacency",event:"unfocusNodeAdjacency",update:"series:unfocusNodeAdjacency"},(function(){})),t.registerAction(WT,(function(t,e){e.eachComponent({mainType:"series",query:t},(function(e){var n=WM(e.coordinateSystem,t);e.setCenter&&e.setCenter(n.center),e.setZoom&&e.setZoom(n.zoom)}))}))},function(t){t.registerChartView(jT),t.registerSeriesModel(qT)},function(t){t.registerChartView(JT),t.registerSeriesModel(QT),t.registerLayout(tC),t.registerProcessor(Ub("funnel"))},function(t){Mv(MA),t.registerChartView(eC),t.registerSeriesModel(aC),t.registerVisual(t.PRIORITY.VISUAL.BRUSH,uC)},function(t){t.registerChartView(CA),t.registerSeriesModel(AA),t.registerLayout(DA),t.registerVisual(GA),t.registerAction({type:"dragNode",event:"dragnode",update:"update"},(function(t,e){e.eachComponent({mainType:"series",subType:"sankey",query:t},(function(e){e.setNodePosition(t.dataIndex,[t.localX,t.localY])}))}))},function(t){t.registerSeriesModel(WA),t.registerChartView(YA),t.registerVisual(KA),t.registerLayout(JA),t.registerTransform(QA)},function(t){t.registerChartView(eD),t.registerSeriesModel(pD),t.registerPreprocessor(dD),t.registerVisual(mD),t.registerLayout(xD)},function(t){t.registerChartView(MD),t.registerSeriesModel(ID),t.registerLayout(_b("effectScatter"))},function(t){t.registerChartView(OD),t.registerSeriesModel(zD),t.registerLayout(PD),t.registerVisual(VD)},function(t){t.registerChartView(HD),t.registerSeriesModel(WD)},function(t){t.registerChartView(ZD),t.registerSeriesModel(cL),t.registerLayout(B(km,"pictorialBar"))},function(t){t.registerChartView(pL),t.registerSeriesModel(dL),t.registerLayout(fL),t.registerProcessor(Ub("themeRiver"))},function(t){t.registerChartView(vL),t.registerSeriesModel(mL),t.registerLayout(B(bL,"sunburst")),t.registerProcessor(B(Ub,"sunburst")),t.registerVisual(SL),function(t){t.registerAction({type:"sunburstRootToNode",update:"updateView"},(function(t,e){e.eachComponent({mainType:"series",subType:"sunburst",query:t},(function(e,n){var i=YM(t,["sunburstRootToNode"],e);if(i){var r=e.getViewRoot();r&&(t.direction=UM(r,i.node)?"rollUp":"drillDown"),e.resetViewRoot(i.node)}}))})),t.registerAction({type:"sunburstHighlight",update:"none"},(function(t,e,n){t=M({},t),e.eachComponent({mainType:"series",subType:"sunburst",query:t},(function(e){var n=YM(t,["sunburstHighlight"],e);n&&(t.dataIndex=n.node.dataIndex)})),n.dispatchAction(M(t,{type:"highlight"}))})),t.registerAction({type:"sunburstUnhighlight",update:"updateView"},(function(t,e,n){t=M({},t),n.dispatchAction(M(t,{type:"downplay"}))}))}(t)},function(t){t.registerChartView(vk),t.registerSeriesModel(yk)}]),Mv((function(t){Mv(eS),Mv(zP)})),Mv((function(t){Mv(zP),Ww.registerAxisPointerClass("PolarAxisPointer",BP),t.registerCoordinateSystem("polar",$P),t.registerComponentModel(FP),t.registerComponentView(dO),gw(t,"angle",HP,cO),gw(t,"radius",WP,pO),t.registerComponentView(nO),t.registerComponentView(aO),t.registerLayout(B(hO,"bar"))})),Mv((function(t){function e(e,n){n.update="geo:updateSelectStatus",t.registerAction(n,(function(t,n){var i={};return n.eachComponent({mainType:"geo",query:t},(function(n){n[e](t.name),k(n.coordinateSystem.regions,(function(t){i[t.name]=n.isSelected(t.name)||!1}))})),{selected:i,name:t.name}}))}t.registerCoordinateSystem("geo",vO),t.registerComponentModel(mO),t.registerComponentView(_O),e("toggleSelected",{type:"geoToggleSelect",event:"geoselectchanged"}),e("select",{type:"geoSelect",event:"geoselected"}),e("unSelect",{type:"geoUnSelect",event:"geounselected"}),t.registerAction({type:"geoRoam",event:"geoRoam",update:"updateTransform"},(function(t,e){var n=t.componentType||"series";e.eachComponent({mainType:n,query:t},(function(e){var i=e.coordinateSystem;if("geo"===i.type){var r=WM(i,t,e.get("scaleLimit"));e.setCenter&&e.setCenter(r.center),e.setZoom&&e.setZoom(r.zoom),"series"===n&&k(e.seriesGroup,(function(t){t.setCenter(r.center),t.setZoom(r.zoom)}))}}))}))})),Mv((function(t){Mv(zP),Ww.registerAxisPointerClass("SingleAxisPointer",PO),t.registerComponentView(EO),t.registerComponentView(SO),t.registerComponentModel(IO),gw(t,"single",IO,IO.defaultOption),t.registerCoordinateSystem("single",DO)})),Mv(MA),Mv((function(t){t.registerComponentModel(zO),t.registerComponentView(GO),t.registerCoordinateSystem("calendar",HO)})),Mv((function(t){t.registerComponentModel(ZO),t.registerComponentView(jO),t.registerPreprocessor(UO)})),Mv((function(t){t.registerComponentModel(xR),t.registerComponentView(wR),mR("saveAsImage",SR),mR("magicType",IR),mR("dataView",kR),mR("dataZoom",tN),mR("restore",ER),Mv(gR)})),Mv((function(t){Mv(zP),t.registerComponentModel(iN),t.registerComponentView(vN),t.registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},(function(){})),t.registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},(function(){}))})),Mv(zP),Mv((function(t){t.registerComponentView(BN),t.registerComponentModel(VN),t.registerPreprocessor(wN),t.registerVisual(t.PRIORITY.VISUAL.BRUSH,ON),t.registerAction({type:"brush",event:"brush",update:"updateVisual"},(function(t,e){e.eachComponent({mainType:"brush",query:t},(function(e){e.setAreas(t.areas)}))})),t.registerAction({type:"brushSelect",event:"brushSelected",update:"none"},(function(){})),t.registerAction({type:"brushEnd",event:"brushEnd",update:"none"},(function(){})),mR("brush",HN)})),Mv((function(t){t.registerComponentModel(WN),t.registerComponentView(YN)})),Mv((function(t){t.registerComponentModel(UN),t.registerComponentView($N),t.registerSubTypeDefaulter("timeline",(function(){return"slider"})),function(t){t.registerAction({type:"timelineChange",event:"timelineChanged",update:"prepareAndUpdate"},(function(t,e){var n=e.getComponent("timeline");return n&&null!=t.currentIndex&&(n.setCurrentIndex(t.currentIndex),!n.get("loop",!0)&&n.isIndexMax()&&n.setPlayState(!1)),e.resetOption("timeline",{replaceMerge:n.get("replaceMerge",!0)}),I({currentIndex:n.option.currentIndex},t)})),t.registerAction({type:"timelinePlayChange",event:"timelinePlayChanged",update:"update"},(function(t,e){var n=e.getComponent("timeline");n&&null!=t.playState&&n.setPlayState(t.playState)}))}(t),t.registerPreprocessor(tE)})),Mv((function(t){t.registerComponentModel(aE),t.registerComponentView(vE),t.registerPreprocessor((function(t){t.markPoint=t.markPoint||{}}))})),Mv((function(t){t.registerComponentModel(mE),t.registerComponentView(IE),t.registerPreprocessor((function(t){t.markLine=t.markLine||{}}))})),Mv((function(t){t.registerComponentModel(TE),t.registerComponentView(RE),t.registerPreprocessor((function(t){t.markArea=t.markArea||{}}))})),Mv((function(t){Mv(ZE),Mv(tz)})),Mv((function(t){Mv(pz),Mv(_z)})),Mv(pz),Mv(_z),Mv((function(t){Mv(Qz),Mv(rB)})),Mv(Qz),Mv(rB),Mv((function(t){t.registerPreprocessor(uB),t.registerVisual(t.PRIORITY.VISUAL.ARIA,lB)})),Mv((function(t){t.registerTransform(bB),t.registerTransform(wB)})),Mv((function(t){t.registerComponentModel(SB),t.registerComponentView(MB)}));export{B_ as Axis,Nd as ChartView,uc as ComponentModel,kd as ComponentView,tm as List,ah as Model,oy as PRIORITY,Sd as SeriesModel,an as color,Jy as connect,bv as dataTool,ry as dependencies,Qy as disConnect,tv as disconnect,ev as dispose,o as env,W_ as extendChartView,F_ as extendComponentModel,G_ as extendComponentView,H_ as extendSeriesModel,T_ as format,cv as getCoordinateSystemDimensions,nv as getInstanceByDom,iv as getInstanceById,_v as getMap,I_ as graphic,v_ as helper,$y as init,Hg as innerDrawElementOnCanvas,we as matrix,S_ as number,w_ as parseGeoJSON,w_ as parseGeoJson,uv as registerAction,hv as registerCoordinateSystem,pv as registerLayout,yv as registerLoading,dh as registerLocale,mv as registerMap,sv as registerPostInit,lv as registerPostUpdate,ov as registerPreprocessor,av as registerProcessor,rv as registerTheme,xv as registerTransform,dv as registerVisual,vv as setCanvasCreator,Wd as throttle,M_ as time,Mv as use,C_ as util,zt as vector,iy as version,dt as zrUtil,Vi as zrender};
+var ki=!o.canvasSupported,Pi={},Oi={};var Ri=function(){function t(t,e,n){var i=this;this._sleepAfterStill=10,this._stillFrameAccum=0,this._needsRefresh=!0,this._needsRefreshHover=!0,this._darkMode=!1,n=n||{},this.dom=e,this.id=t;var r=new hi,a=n.renderer||"canvas";if(ki)throw new Error("IE8 support has been dropped since 5.0");if(Pi[a]||(a=E(Pi)[0]),!Pi[a])throw new Error("Renderer '"+a+"' is not imported. Please import it first.");n.useDirtyRect=null!=n.useDirtyRect&&n.useDirtyRect;var s=new Pi[a](e,r,n,t);this.storage=r,this.painter=s;var l=o.node||o.worker?null:new Di(s.getViewportRoot(),s.root);this.handler=new le(r,s,l,s.root),this.animation=new pi({stage:{update:function(){return i._flush(!0)}}}),this.animation.start()}return t.prototype.add=function(t){t&&(this.storage.addRoot(t),t.addSelfToZr(this),this.refresh())},t.prototype.remove=function(t){t&&(this.storage.delRoot(t),t.removeSelfFromZr(this),this.refresh())},t.prototype.configLayer=function(t,e){this.painter.configLayer&&this.painter.configLayer(t,e),this.refresh()},t.prototype.setBackgroundColor=function(t){this.painter.setBackgroundColor&&this.painter.setBackgroundColor(t),this.refresh(),this._backgroundColor=t,this._darkMode=function(t){if(!t)return!1;if("string"==typeof t)return nn(t,1)<.4;if(t.colorStops){for(var e=t.colorStops,n=0,i=e.length,r=0;r<i;r++)n+=nn(e[r].color,1);return(n/=i)<.4}return!1}(t)},t.prototype.getBackgroundColor=function(){return this._backgroundColor},t.prototype.setDarkMode=function(t){this._darkMode=t},t.prototype.isDarkMode=function(){return this._darkMode},t.prototype.refreshImmediately=function(t){t||this.animation.update(!0),this._needsRefresh=!1,this.painter.refresh(),this._needsRefresh=!1},t.prototype.refresh=function(){this._needsRefresh=!0,this.animation.start()},t.prototype.flush=function(){this._flush(!1)},t.prototype._flush=function(t){var e,n=(new Date).getTime();this._needsRefresh&&(e=!0,this.refreshImmediately(t)),this._needsRefreshHover&&(e=!0,this.refreshHoverImmediately());var i=(new Date).getTime();e?(this._stillFrameAccum=0,this.trigger("rendered",{elapsedTime:i-n})):this._sleepAfterStill>0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},t.prototype.setSleepAfterStill=function(t){this._sleepAfterStill=t},t.prototype.wakeUp=function(){this.animation.start(),this._stillFrameAccum=0},t.prototype.addHover=function(t){},t.prototype.removeHover=function(t){},t.prototype.clearHover=function(){},t.prototype.refreshHover=function(){this._needsRefreshHover=!0},t.prototype.refreshHoverImmediately=function(){this._needsRefreshHover=!1,this.painter.refreshHover&&"canvas"===this.painter.getType()&&this.painter.refreshHover()},t.prototype.resize=function(t){t=t||{},this.painter.resize(t.width,t.height),this.handler.resize()},t.prototype.clearAnimation=function(){this.animation.clear()},t.prototype.getWidth=function(){return this.painter.getWidth()},t.prototype.getHeight=function(){return this.painter.getHeight()},t.prototype.pathToImage=function(t,e){if(this.painter.pathToImage)return this.painter.pathToImage(t,e)},t.prototype.setCursorStyle=function(t){this.handler.setCursorStyle(t)},t.prototype.findHover=function(t,e){return this.handler.findHover(t,e)},t.prototype.on=function(t,e,n){return this.handler.on(t,e,n),this},t.prototype.off=function(t,e){this.handler.off(t,e)},t.prototype.trigger=function(t,e){this.handler.trigger(t,e)},t.prototype.clear=function(){for(var t=this.storage.getRoots(),e=0;e<t.length;e++)t[e]instanceof Li&&t[e].removeSelfFromZr(this);this.storage.delAllRoots(),this.painter.clear()},t.prototype.dispose=function(){var t;this.animation.stop(),this.clear(),this.storage.dispose(),this.painter.dispose(),this.handler.dispose(),this.animation=this.storage=this.painter=this.handler=null,t=this.id,delete Oi[t]},t}();function Ni(t,e){var n=new Ri(_(),t,e);return Oi[n.id]=n,n}function Ei(t,e){Pi[t]=e}var zi=Object.freeze({__proto__:null,init:Ni,dispose:function(t){t.dispose()},disposeAll:function(){for(var t in Oi)Oi.hasOwnProperty(t)&&Oi[t].dispose();Oi={}},getInstance:function(t){return Oi[t]},registerPainter:Ei,version:"5.0.3"});function Bi(t,e,n,i){var r=e[1]-e[0],o=n[1]-n[0];if(0===r)return 0===o?n[0]:(n[0]+n[1])/2;if(i)if(r>0){if(t<=e[0])return n[0];if(t>=e[1])return n[1]}else{if(t>=e[0])return n[0];if(t<=e[1])return n[1]}else{if(t===e[0])return n[0];if(t===e[1])return n[1]}return(t-e[0])/r*o+n[0]}function Vi(t,e){switch(t){case"center":case"middle":t="50%";break;case"left":case"top":t="0%";break;case"right":case"bottom":t="100%"}return"string"==typeof t?(n=t,n.replace(/^\s+|\s+$/g,"")).match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?NaN:+t;var n}function Fi(t,e,n){return null==e&&(e=10),e=Math.min(Math.max(0,e),20),t=(+t).toFixed(e),n?t:+t}function Gi(t){return t.sort((function(t,e){return t-e})),t}function Hi(t){if(t=+t,isNaN(t))return 0;for(var e=1,n=0;Math.round(t*e)/e!==t;)e*=10,n++;return n}function Wi(t){var e=t.toString(),n=e.indexOf("e");if(n>0){var i=+e.slice(n+1);return i<0?-i:0}var r=e.indexOf(".");return r<0?0:e.length-1-r}function Yi(t,e){var n=Math.log,i=Math.LN10,r=Math.floor(n(t[1]-t[0])/i),o=Math.round(n(Math.abs(e[1]-e[0]))/i),a=Math.min(Math.max(-r+o,0),20);return isFinite(a)?a:20}function Xi(t,e,n){if(!t[e])return 0;var i=O(t,(function(t,e){return t+(isNaN(e)?0:e)}),0);if(0===i)return 0;for(var r=Math.pow(10,n),o=P(t,(function(t){return(isNaN(t)?0:t)/i*r*100})),a=100*r,s=P(o,(function(t){return Math.floor(t)})),l=O(s,(function(t,e){return t+e}),0),u=P(o,(function(t,e){return t-s[e]}));l<a;){for(var h=Number.NEGATIVE_INFINITY,c=null,p=0,d=u.length;p<d;++p)u[p]>h&&(h=u[p],c=p);++s[c],u[c]=0,++l}return s[e]/r}function Ui(t){var e=2*Math.PI;return(t%e+e)%e}function Zi(t){return t>-1e-4&&t<1e-4}var ji=/^(?:(\d{4})(?:[-\/](\d{1,2})(?:[-\/](\d{1,2})(?:[T ](\d{1,2})(?::(\d{1,2})(?::(\d{1,2})(?:[.,](\d+))?)?)?(Z|[\+\-]\d\d:?\d\d)?)?)?)?)?$/;function qi(t){if(t instanceof Date)return t;if("string"==typeof t){var e=ji.exec(t);if(!e)return new Date(NaN);if(e[8]){var n=+e[4]||0;return"Z"!==e[8].toUpperCase()&&(n-=+e[8].slice(0,3)),new Date(Date.UTC(+e[1],+(e[2]||1)-1,+e[3]||1,n,+(e[5]||0),+e[6]||0,+e[7]||0))}return new Date(+e[1],+(e[2]||1)-1,+e[3]||1,+e[4]||0,+(e[5]||0),+e[6]||0,+e[7]||0)}return null==t?new Date(NaN):new Date(Math.round(t))}function Ki(t){return Math.pow(10,$i(t))}function $i(t){if(0===t)return 0;var e=Math.floor(Math.log(t)/Math.LN10);return t/Math.pow(10,e)>=10&&e++,e}function Ji(t,e){var n=$i(t),i=Math.pow(10,n),r=t/i;return t=(e?r<1.5?1:r<2.5?2:r<4?3:r<7?5:10:r<1?1:r<2?2:r<3?3:r<5?5:10)*i,n>=-20?+t.toFixed(n<0?-n:0):t}function Qi(t,e){var n=(t.length-1)*e+1,i=Math.floor(n),r=+t[i-1],o=n-i;return o?r+o*(t[i]-r):r}function tr(t){t.sort((function(t,e){return s(t,e,0)?-1:1}));for(var e=-1/0,n=1,i=0;i<t.length;){for(var r=t[i].interval,o=t[i].close,a=0;a<2;a++)r[a]<=e&&(r[a]=e,o[a]=a?1:1-n),e=r[a],n=o[a];r[0]===r[1]&&o[0]*o[1]!=1?t.splice(i,1):i++}return t;function s(t,e,n){return t.interval[n]<e.interval[n]||t.interval[n]===e.interval[n]&&(t.close[n]-e.close[n]==(n?-1:1)||!n&&s(t,e,1))}}function er(t){var e=parseFloat(t);return e==t&&(0!==e||"string"!=typeof t||t.indexOf("x")<=0)?e:NaN}function nr(t){return!isNaN(er(t))}function ir(){return Math.round(9*Math.random())}function rr(t,e){return 0===e?t:rr(e,t%e)}function or(t,e){return null==t?e:null==e?t:t*e/rr(t,e)}"undefined"!=typeof console&&console.warn&&console.log;function ar(t){0}function sr(t){throw new Error(t)}function lr(t){return t instanceof Array?t:null==t?[]:[t]}function ur(t,e,n){if(t){t[e]=t[e]||{},t.emphasis=t.emphasis||{},t.emphasis[e]=t.emphasis[e]||{};for(var i=0,r=n.length;i<r;i++){var o=n[i];!t.emphasis[e].hasOwnProperty(o)&&t[e].hasOwnProperty(o)&&(t.emphasis[e][o]=t[e][o])}}}var hr=["fontStyle","fontWeight","fontSize","fontFamily","rich","tag","color","textBorderColor","textBorderWidth","width","height","lineHeight","align","verticalAlign","baseline","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","textShadowColor","textShadowBlur","textShadowOffsetX","textShadowOffsetY","backgroundColor","borderColor","borderWidth","borderRadius","padding"];function cr(t){return!Y(t)||V(t)||t instanceof Date?t:t.value}function pr(t,e,n){var i="normalMerge"===n,r="replaceMerge"===n,o="replaceAll"===n;t=t||[],e=(e||[]).slice();var a=lt();k(e,(function(t,n){Y(t)||(e[n]=null)}));var s,l,u=function(t,e,n){var i=[];if("replaceAll"===n)return i;for(var r=0;r<t.length;r++){var o=t[r];o&&null!=o.id&&e.set(o.id,r),i.push({existing:"replaceMerge"===n||vr(o)?null:o,newOption:null,keyInfo:null,brandNew:null})}return i}(t,a,n);return(i||r)&&function(t,e,n,i){k(i,(function(r,o){if(r&&null!=r.id){var a=fr(r.id),s=n.get(a);if(null!=s){var l=t[s];it(!l.newOption,'Duplicated option on id "'+a+'".'),l.newOption=r,l.existing=e[s],i[o]=null}}}))}(u,t,a,e),i&&function(t,e){k(e,(function(n,i){if(n&&null!=n.name)for(var r=0;r<t.length;r++){var o=t[r].existing;if(!t[r].newOption&&o&&(null==o.id||null==n.id)&&!vr(n)&&!vr(o)&&dr("name",o,n))return t[r].newOption=n,void(e[i]=null)}}))}(u,e),i||r?function(t,e,n){k(e,(function(e){if(e){for(var i,r=0;(i=t[r])&&(i.newOption||vr(i.existing)||i.existing&&null!=e.id&&!dr("id",e,i.existing));)r++;i?(i.newOption=e,i.brandNew=n):t.push({newOption:e,brandNew:n,existing:null,keyInfo:null}),r++}}))}(u,e,r):o&&function(t,e){k(e,(function(e){t.push({newOption:e,brandNew:!0,existing:null,keyInfo:null})}))}(u,e),s=u,l=lt(),k(s,(function(t){var e=t.existing;e&&l.set(e.id,t)})),k(s,(function(t){var e=t.newOption;it(!e||null==e.id||!l.get(e.id)||l.get(e.id)===t,"id duplicates: "+(e&&e.id)),e&&null!=e.id&&l.set(e.id,t),!t.keyInfo&&(t.keyInfo={})})),k(s,(function(t,e){var n=t.existing,i=t.newOption,r=t.keyInfo;if(Y(i)){if(r.name=null!=i.name?fr(i.name):n?n.name:"series\0"+e,n)r.id=fr(n.id);else if(null!=i.id)r.id=fr(i.id);else{var o=0;do{r.id="\0"+r.name+"\0"+o++}while(l.get(r.id))}l.set(r.id,t)}})),u}function dr(t,e,n){var i=gr(e[t],null),r=gr(n[t],null);return null!=i&&null!=r&&i===r}function fr(t){return gr(t,"")}function gr(t,e){if(null==t)return e;var n=typeof t;return"string"===n?t:"number"===n||H(t)?t+"":e}function yr(t){var e=t.name;return!(!e||!e.indexOf("series\0"))}function vr(t){return t&&null!=t.id&&0===fr(t.id).indexOf("\0_ec_\0")}function mr(t,e){return null!=e.dataIndexInside?e.dataIndexInside:null!=e.dataIndex?V(e.dataIndex)?P(e.dataIndex,(function(e){return t.indexOfRawIndex(e)})):t.indexOfRawIndex(e.dataIndex):null!=e.name?V(e.name)?P(e.name,(function(e){return t.indexOfName(e)})):t.indexOfName(e.name):void 0}function _r(){var t="__ec_inner_"+xr++;return function(e){return e[t]||(e[t]={})}}var xr=ir();function br(t,e,n){var i;if(G(e)){var r={};r[e+"Index"]=0,i=r}else i=e;var o=lt(),a={},s=!1;k(i,(function(t,e){if("dataIndex"!==e&&"dataIndexInside"!==e){var i=e.match(/^(\w+)(Index|Id|Name)$/)||[],r=i[1],l=(i[2]||"").toLowerCase();if(r&&l&&!(n&&n.includeMainTypes&&C(n.includeMainTypes,r)<0))s=s||!!r,(o.get(r)||o.set(r,{}))[l]=t}else a[e]=t}));var l=n?n.defaultMainType:null;return!s&&l&&o.set(l,{}),o.each((function(e,i){var r=Mr(t,i,e,{useDefault:l===i,enableAll:!n||null==n.enableAll||n.enableAll,enableNone:!n||null==n.enableNone||n.enableNone});a[i+"Models"]=r.models,a[i+"Model"]=r.models[0]})),a}var wr={useDefault:!0,enableAll:!1,enableNone:!1},Sr={useDefault:!1,enableAll:!0,enableNone:!0};function Mr(t,e,n,i){i=i||wr;var r=n.index,o=n.id,a=n.name,s={models:null,specified:null!=r||null!=o||null!=a};if(!s.specified){var l=void 0;return s.models=i.useDefault&&(l=t.getComponent(e))?[l]:[],s}return"none"===r||!1===r?(it(i.enableNone,'`"none"` or `false` is not a valid value on index option.'),s.models=[],s):("all"===r&&(it(i.enableAll,'`"all"` is not a valid value on index option.'),r=o=a=null),s.models=t.queryComponents({mainType:e,index:r,id:o,name:a}),s)}function Ir(t,e,n){t.setAttribute?t.setAttribute(e,n):t[e]=n}function Tr(t,e){var n=lt(),i=[];return k(t,(function(t){var r=e(t);(n.get(r)||(i.push(r),n.set(r,[]))).push(t)})),{keys:i,buckets:n}}function Cr(t,e,n,i,r){var o=null==e||"auto"===e;if(null==i)return i;if("number"==typeof i)return Fi(d=an(n||0,i,r),o?Math.max(Wi(n||0),Wi(i)):e);if("string"==typeof i)return r<1?n:i;for(var a=[],s=n,l=i,u=Math.max(s?s.length:0,l.length),h=0;h<u;++h){if("ordinal"===t.getDimensionInfo(h).type)a[h]=(r<1&&s?s:l)[h];else{var c=s&&s[h]?s[h]:0,p=l[h],d=an(c,p,r);a[h]=Fi(d,o?Math.max(Wi(c),Wi(p)):e)}}return a}var Ar="___EC__COMPONENT__CONTAINER___";function Dr(t){var e={main:"",sub:""};if(t){var n=t.split(".");e.main=n[0]||"",e.sub=n[1]||""}return e}function Lr(t,e){t.$constructor=t,t.extend=function(t){var e=this;function n(){for(var r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];if(t.$constructor)t.$constructor.apply(this,arguments);else{if(kr(e)){var a=ht(n.prototype,new(e.bind.apply(e,i([void 0],r))));return a}e.apply(this,arguments)}}return n.___EC__EXTENDED_CLASS___=!0,M(n.prototype,t),n.extend=this.extend,n.superCall=Rr,n.superApply=Nr,A(n,this),n.superClass=e,n}}function kr(t){return"function"==typeof t&&/^class\s/.test(Function.prototype.toString.call(t))}function Pr(t,e){t.extend=e.extend}var Or=Math.round(10*Math.random());function Rr(t,e){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];return this.superClass.prototype[e].apply(t,n)}function Nr(t,e,n){return this.superClass.prototype[e].apply(t,n)}function Er(t){var e={};t.registerClass=function(t){var n,i=t.type||t.prototype.type;if(i){it(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(n=i),'componentType "'+n+'" illegal'),t.prototype.type=i;var r=Dr(i);if(r.sub){if(r.sub!==Ar){(function(t){var n=e[t.main];n&&n[Ar]||((n=e[t.main]={})[Ar]=!0);return n}(r))[r.sub]=t}}else e[r.main]=t}return t},t.getClass=function(t,n,i){var r=e[t];if(r&&r[Ar]&&(r=n?r[n]:null),i&&!r)throw new Error(n?"Component "+t+"."+(n||"")+" not exists. Load it first.":t+".type should be specified.");return r},t.getClassesByMainType=function(t){var n=Dr(t),i=[],r=e[n.main];return r&&r[Ar]?k(r,(function(t,e){e!==Ar&&i.push(t)})):i.push(r),i},t.hasClass=function(t){var n=Dr(t);return!!e[n.main]},t.getAllClassMainTypes=function(){var t=[];return k(e,(function(e,n){t.push(n)})),t},t.hasSubTypes=function(t){var n=Dr(t),i=e[n.main];return i&&i[Ar]}}function zr(t,e){for(var n=0;n<t.length;n++)t[n][1]||(t[n][1]=t[n][0]);return e=e||!1,function(n,i,r){for(var o={},a=0;a<t.length;a++){var s=t[a][1];if(!(i&&C(i,s)>=0||r&&C(r,s)<0)){var l=n.getShallow(s,e);null!=l&&(o[t[a][0]]=l)}}return o}}var Br=zr([["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]]),Vr=function(){function t(){}return t.prototype.getAreaStyle=function(t,e){return Br(this,t,e)},t}(),Fr=new Pe(50);function Gr(t){if("string"==typeof t){var e=Fr.get(t);return e&&e.image}return t}function Hr(t,e,n,i,r){if(t){if("string"==typeof t){if(e&&e.__zrImageSrc===t||!n)return e;var o=Fr.get(t),a={hostEl:n,cb:i,cbPayload:r};return o?!Yr(e=o.image)&&o.pending.push(a):((e=new Image).onload=e.onerror=Wr,Fr.put(t,e.__cachedImgObj={image:e,pending:[a]}),e.src=e.__zrImageSrc=t),e}return t}return e}function Wr(){var t=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var e=0;e<t.pending.length;e++){var n=t.pending[e],i=n.cb;i&&i(this,n.cbPayload),n.hostEl.dirty()}t.pending.length=0}function Yr(t){return t&&t.width&&t.height}var Xr=/\{([a-zA-Z0-9_]+)\|([^}]*)\}/g;function Ur(t,e,n,i,r){if(!e)return"";var o=(t+"").split("\n");r=Zr(e,n,i,r);for(var a=0,s=o.length;a<s;a++)o[a]=jr(o[a],r);return o.join("\n")}function Zr(t,e,n,i){var r=M({},i=i||{});r.font=e,n=Q(n,"..."),r.maxIterations=Q(i.maxIterations,2);var o=r.minChar=Q(i.minChar,0);r.cnCharWidth=Rn("国",e);var a=r.ascCharWidth=Rn("a",e);r.placeholder=Q(i.placeholder,"");for(var s=t=Math.max(0,t-1),l=0;l<o&&s>=a;l++)s-=a;var u=Rn(n,e);return u>s&&(n="",u=0),s=t-u,r.ellipsis=n,r.ellipsisWidth=u,r.contentWidth=s,r.containerWidth=t,r}function jr(t,e){var n=e.containerWidth,i=e.font,r=e.contentWidth;if(!n)return"";var o=Rn(t,i);if(o<=n)return t;for(var a=0;;a++){if(o<=r||a>=e.maxIterations){t+=e.ellipsis;break}var s=0===a?qr(t,r,e.ascCharWidth,e.cnCharWidth):o>0?Math.floor(t.length*r/o):0;o=Rn(t=t.substr(0,s),i)}return""===t&&(t=e.placeholder),t}function qr(t,e,n,i){for(var r=0,o=0,a=t.length;o<a&&r<e;o++){var s=t.charCodeAt(o);r+=0<=s&&s<=127?n:i}return o}var Kr=function(){},$r=function(t){this.tokens=[],t&&(this.tokens=t)},Jr=function(){this.width=0,this.height=0,this.contentWidth=0,this.contentHeight=0,this.outerWidth=0,this.outerHeight=0,this.lines=[]};function Qr(t,e,n,i,r){var o,a,s=""===e,l=r&&n.rich[r]||{},u=t.lines,h=l.font||n.font,c=!1;if(i){var p=l.padding,d=p?p[1]+p[3]:0;if(null!=l.width&&"auto"!==l.width){var f=function(t,e){if("string"==typeof t)return t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t);return t}(l.width,i.width)+d;u.length>0&&f+i.accumWidth>i.width&&(o=e.split("\n"),c=!0),i.accumWidth=f}else{var g=no(e,h,i.width,i.breakAll,i.accumWidth);i.accumWidth=g.accumWidth+d,a=g.linesWidths,o=g.lines}}else o=e.split("\n");for(var y=0;y<o.length;y++){var v=o[y],m=new Kr;if(m.styleName=r,m.text=v,m.isLineHolder=!v&&!s,"number"==typeof l.width?m.width=l.width:m.width=a?a[y]:Rn(v,h),y||c)u.push(new $r([m]));else{var _=(u[u.length-1]||(u[0]=new $r)).tokens,x=_.length;1===x&&_[0].isLineHolder?_[0]=m:(v||!x||s)&&_.push(m)}}}var to=O(",&?/;] ".split(""),(function(t,e){return t[e]=!0,t}),{});function eo(t){return!function(t){var e=t.charCodeAt(0);return e>=33&&e<=255}(t)||!!to[t]}function no(t,e,n,i,r){for(var o=[],a=[],s="",l="",u=0,h=0,c=0;c<t.length;c++){var p=t.charAt(c);if("\n"!==p){var d=Rn(p,e),f=!i&&!eo(p);(o.length?h+d>n:r+h+d>n)?h?(s||l)&&(f?(s||(s=l,l="",h=u=0),o.push(s),a.push(h-u),l+=p,s="",h=u+=d):(l&&(s+=l,h+=u,l="",u=0),o.push(s),a.push(h),s=p,h=d)):f?(o.push(l),a.push(u),l=p,u=d):(o.push(p),a.push(d)):(h+=d,f?(l+=p,u+=d):(l&&(s+=l,l="",u=0),s+=p))}else l&&(s+=l,h+=u),o.push(s),a.push(h),s="",l="",u=0,h=0}return o.length||s||(s=t,l="",u=0),l&&(s+=l),s&&(o.push(s),a.push(h)),1===o.length&&(h+=r),{accumWidth:h,lines:o,linesWidths:a}}var io="__zr_style_"+Math.round(10*Math.random()),ro={shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:"#000",opacity:1,blend:"source-over"},oo={style:{shadowBlur:!0,shadowOffsetX:!0,shadowOffsetY:!0,shadowColor:!0,opacity:!0}};ro[io]=!0;var ao=["z","z2","invisible"],so=function(t){function n(e){return t.call(this,e)||this}var i;return e(n,t),n.prototype._init=function(e){for(var n=E(e),i=0;i<n.length;i++){var r=n[i];"style"===r?this.useStyle(e[r]):t.prototype.attrKV.call(this,r,e[r])}this.style||this.useStyle({})},n.prototype.beforeBrush=function(){},n.prototype.afterBrush=function(){},n.prototype.innerBeforeBrush=function(){},n.prototype.innerAfterBrush=function(){},n.prototype.shouldBePainted=function(t,e,n,i){var r=this.transform;if(this.ignore||this.invisible||0===this.style.opacity||this.culling&&function(t,e,n){lo.copy(t.getBoundingRect()),t.transform&&lo.applyTransform(t.transform);return uo.width=e,uo.height=n,!lo.intersect(uo)}(this,t,e)||r&&!r[0]&&!r[3])return!1;if(n&&this.__clipPaths)for(var o=0;o<this.__clipPaths.length;++o)if(this.__clipPaths[o].isZeroArea())return!1;if(i&&this.parent)for(var a=this.parent;a;){if(a.ignore)return!1;a=a.parent}return!0},n.prototype.contain=function(t,e){return this.rectContain(t,e)},n.prototype.traverse=function(t,e){t.call(e,this)},n.prototype.rectContain=function(t,e){var n=this.transformCoordToLocal(t,e);return this.getBoundingRect().contain(n[0],n[1])},n.prototype.getPaintRect=function(){var t=this._paintRect;if(!this._paintRect||this.__dirty){var e=this.transform,n=this.getBoundingRect(),i=this.style,r=i.shadowBlur||0,o=i.shadowOffsetX||0,a=i.shadowOffsetY||0;t=this._paintRect||(this._paintRect=new Ln(0,0,0,0)),e?Ln.applyTransform(t,n,e):t.copy(n),(r||o||a)&&(t.width+=2*r+Math.abs(o),t.height+=2*r+Math.abs(a),t.x=Math.min(t.x,t.x+o-r),t.y=Math.min(t.y,t.y+a-r));var s=this.dirtyRectTolerance;t.isZero()||(t.x=Math.floor(t.x-s),t.y=Math.floor(t.y-s),t.width=Math.ceil(t.width+1+2*s),t.height=Math.ceil(t.height+1+2*s))}return t},n.prototype.setPrevPaintRect=function(t){t?(this._prevPaintRect=this._prevPaintRect||new Ln(0,0,0,0),this._prevPaintRect.copy(t)):this._prevPaintRect=null},n.prototype.getPrevPaintRect=function(){return this._prevPaintRect},n.prototype.animateStyle=function(t){return this.animate("style",t)},n.prototype.updateDuringAnimation=function(t){"style"===t?this.dirtyStyle():this.markRedraw()},n.prototype.attrKV=function(e,n){"style"!==e?t.prototype.attrKV.call(this,e,n):this.style?this.setStyle(n):this.useStyle(n)},n.prototype.setStyle=function(t,e){return"string"==typeof t?this.style[t]=e:M(this.style,t),this.dirtyStyle(),this},n.prototype.dirtyStyle=function(){this.markRedraw(),this.__dirty|=n.STYLE_CHANGED_BIT,this._rect&&(this._rect=null)},n.prototype.dirty=function(){this.dirtyStyle()},n.prototype.styleChanged=function(){return!!(this.__dirty&n.STYLE_CHANGED_BIT)},n.prototype.styleUpdated=function(){this.__dirty&=~n.STYLE_CHANGED_BIT},n.prototype.createStyle=function(t){return ht(ro,t)},n.prototype.useStyle=function(t){t[io]||(t=this.createStyle(t)),this.__inHover?this.__hoverStyle=t:this.style=t,this.dirtyStyle()},n.prototype.isStyleObject=function(t){return t[io]},n.prototype._innerSaveToNormal=function(e){t.prototype._innerSaveToNormal.call(this,e);var n=this._normalState;e.style&&!n.style&&(n.style=this._mergeStyle(this.createStyle(),this.style)),this._savePrimaryToNormal(e,n,ao)},n.prototype._applyStateObj=function(e,n,i,r,o,a){t.prototype._applyStateObj.call(this,e,n,i,r,o,a);var s,l=!(n&&r);if(n&&n.style?o?r?s=n.style:(s=this._mergeStyle(this.createStyle(),i.style),this._mergeStyle(s,n.style)):(s=this._mergeStyle(this.createStyle(),r?this.style:i.style),this._mergeStyle(s,n.style)):l&&(s=i.style),s)if(o){var u=this.style;if(this.style=this.createStyle(l?{}:u),l)for(var h=E(u),c=0;c<h.length;c++){(d=h[c])in s&&(s[d]=s[d],this.style[d]=u[d])}var p=E(s);for(c=0;c<p.length;c++){var d=p[c];this.style[d]=this.style[d]}this._transitionState(e,{style:s},a,this.getAnimationStyleProps())}else this.useStyle(s);for(c=0;c<ao.length;c++){d=ao[c];n&&null!=n[d]?this[d]=n[d]:l&&null!=i[d]&&(this[d]=i[d])}},n.prototype._mergeStates=function(e){for(var n,i=t.prototype._mergeStates.call(this,e),r=0;r<e.length;r++){var o=e[r];o.style&&(n=n||{},this._mergeStyle(n,o.style))}return n&&(i.style=n),i},n.prototype._mergeStyle=function(t,e){return M(t,e),t},n.prototype.getAnimationStyleProps=function(){return oo},n.STYLE_CHANGED_BIT=2,n.initDefaultProps=((i=n.prototype).type="displayable",i.invisible=!1,i.z=0,i.z2=0,i.zlevel=0,i.culling=!1,i.cursor="pointer",i.rectHover=!1,i.incremental=!1,i._rect=null,i.dirtyRectTolerance=0,void(i.__dirty=jn.REDARAW_BIT|n.STYLE_CHANGED_BIT)),n}(jn),lo=new Ln(0,0,0,0),uo=new Ln(0,0,0,0);var ho=Math.pow,co=Math.sqrt,po=co(3),fo=1/3,go=ft(),yo=ft(),vo=ft();function mo(t){return t>-1e-8&&t<1e-8}function _o(t){return t>1e-8||t<-1e-8}function xo(t,e,n,i,r){var o=1-r;return o*o*(o*t+3*r*e)+r*r*(r*i+3*o*n)}function bo(t,e,n,i,r){var o=1-r;return 3*(((e-t)*o+2*(n-e)*r)*o+(i-n)*r*r)}function wo(t,e,n,i,r,o){var a=i+3*(e-n)-t,s=3*(n-2*e+t),l=3*(e-t),u=t-r,h=s*s-3*a*l,c=s*l-9*a*u,p=l*l-3*s*u,d=0;if(mo(h)&&mo(c)){if(mo(s))o[0]=0;else(M=-l/s)>=0&&M<=1&&(o[d++]=M)}else{var f=c*c-4*h*p;if(mo(f)){var g=c/h,y=-g/2;(M=-s/a+g)>=0&&M<=1&&(o[d++]=M),y>=0&&y<=1&&(o[d++]=y)}else if(f>0){var v=co(f),m=h*s+1.5*a*(-c+v),_=h*s+1.5*a*(-c-v);(M=(-s-((m=m<0?-ho(-m,fo):ho(m,fo))+(_=_<0?-ho(-_,fo):ho(_,fo))))/(3*a))>=0&&M<=1&&(o[d++]=M)}else{var x=(2*h*s-3*a*c)/(2*co(h*h*h)),b=Math.acos(x)/3,w=co(h),S=Math.cos(b),M=(-s-2*w*S)/(3*a),I=(y=(-s+w*(S+po*Math.sin(b)))/(3*a),(-s+w*(S-po*Math.sin(b)))/(3*a));M>=0&&M<=1&&(o[d++]=M),y>=0&&y<=1&&(o[d++]=y),I>=0&&I<=1&&(o[d++]=I)}}return d}function So(t,e,n,i,r){var o=6*n-12*e+6*t,a=9*e+3*i-3*t-9*n,s=3*e-3*t,l=0;if(mo(a)){if(_o(o))(h=-s/o)>=0&&h<=1&&(r[l++]=h)}else{var u=o*o-4*a*s;if(mo(u))r[0]=-o/(2*a);else if(u>0){var h,c=co(u),p=(-o-c)/(2*a);(h=(-o+c)/(2*a))>=0&&h<=1&&(r[l++]=h),p>=0&&p<=1&&(r[l++]=p)}}return l}function Mo(t,e,n,i,r,o){var a=(e-t)*r+t,s=(n-e)*r+e,l=(i-n)*r+n,u=(s-a)*r+a,h=(l-s)*r+s,c=(h-u)*r+u;o[0]=t,o[1]=a,o[2]=u,o[3]=c,o[4]=c,o[5]=h,o[6]=l,o[7]=i}function Io(t,e,n,i,r,o,a,s,l,u,h){var c,p,d,f,g,y=.005,v=1/0;go[0]=l,go[1]=u;for(var m=0;m<1;m+=.05)yo[0]=xo(t,n,r,a,m),yo[1]=xo(e,i,o,s,m),(f=Lt(go,yo))<v&&(c=m,v=f);v=1/0;for(var _=0;_<32&&!(y<1e-4);_++)p=c-y,d=c+y,yo[0]=xo(t,n,r,a,p),yo[1]=xo(e,i,o,s,p),f=Lt(yo,go),p>=0&&f<v?(c=p,v=f):(vo[0]=xo(t,n,r,a,d),vo[1]=xo(e,i,o,s,d),g=Lt(vo,go),d<=1&&g<v?(c=d,v=g):y*=.5);return h&&(h[0]=xo(t,n,r,a,c),h[1]=xo(e,i,o,s,c)),co(v)}function To(t,e,n,i,r,o,a,s,l){for(var u=t,h=e,c=0,p=1/l,d=1;d<=l;d++){var f=d*p,g=xo(t,n,r,a,f),y=xo(e,i,o,s,f),v=g-u,m=y-h;c+=Math.sqrt(v*v+m*m),u=g,h=y}return c}function Co(t,e,n,i){var r=1-i;return r*(r*t+2*i*e)+i*i*n}function Ao(t,e,n,i){return 2*((1-i)*(e-t)+i*(n-e))}function Do(t,e,n){var i=t+n-2*e;return 0===i?.5:(t-e)/i}function Lo(t,e,n,i,r){var o=(e-t)*i+t,a=(n-e)*i+e,s=(a-o)*i+o;r[0]=t,r[1]=o,r[2]=s,r[3]=s,r[4]=a,r[5]=n}function ko(t,e,n,i,r,o,a,s,l){var u,h=.005,c=1/0;go[0]=a,go[1]=s;for(var p=0;p<1;p+=.05){yo[0]=Co(t,n,r,p),yo[1]=Co(e,i,o,p),(y=Lt(go,yo))<c&&(u=p,c=y)}c=1/0;for(var d=0;d<32&&!(h<1e-4);d++){var f=u-h,g=u+h;yo[0]=Co(t,n,r,f),yo[1]=Co(e,i,o,f);var y=Lt(yo,go);if(f>=0&&y<c)u=f,c=y;else{vo[0]=Co(t,n,r,g),vo[1]=Co(e,i,o,g);var v=Lt(vo,go);g<=1&&v<c?(u=g,c=v):h*=.5}}return l&&(l[0]=Co(t,n,r,u),l[1]=Co(e,i,o,u)),co(c)}function Po(t,e,n,i,r,o,a){for(var s=t,l=e,u=0,h=1/a,c=1;c<=a;c++){var p=c*h,d=Co(t,n,r,p),f=Co(e,i,o,p),g=d-s,y=f-l;u+=Math.sqrt(g*g+y*y),s=d,l=f}return u}var Oo=Math.min,Ro=Math.max,No=Math.sin,Eo=Math.cos,zo=2*Math.PI,Bo=ft(),Vo=ft(),Fo=ft();function Go(t,e,n){if(0!==t.length){for(var i=t[0],r=i[0],o=i[0],a=i[1],s=i[1],l=1;l<t.length;l++)i=t[l],r=Oo(r,i[0]),o=Ro(o,i[0]),a=Oo(a,i[1]),s=Ro(s,i[1]);e[0]=r,e[1]=a,n[0]=o,n[1]=s}}function Ho(t,e,n,i,r,o){r[0]=Oo(t,n),r[1]=Oo(e,i),o[0]=Ro(t,n),o[1]=Ro(e,i)}var Wo=[],Yo=[];function Xo(t,e,n,i,r,o,a,s,l,u){var h=So,c=xo,p=h(t,n,r,a,Wo);l[0]=1/0,l[1]=1/0,u[0]=-1/0,u[1]=-1/0;for(var d=0;d<p;d++){var f=c(t,n,r,a,Wo[d]);l[0]=Oo(f,l[0]),u[0]=Ro(f,u[0])}p=h(e,i,o,s,Yo);for(d=0;d<p;d++){var g=c(e,i,o,s,Yo[d]);l[1]=Oo(g,l[1]),u[1]=Ro(g,u[1])}l[0]=Oo(t,l[0]),u[0]=Ro(t,u[0]),l[0]=Oo(a,l[0]),u[0]=Ro(a,u[0]),l[1]=Oo(e,l[1]),u[1]=Ro(e,u[1]),l[1]=Oo(s,l[1]),u[1]=Ro(s,u[1])}function Uo(t,e,n,i,r,o,a,s){var l=Do,u=Co,h=Ro(Oo(l(t,n,r),1),0),c=Ro(Oo(l(e,i,o),1),0),p=u(t,n,r,h),d=u(e,i,o,c);a[0]=Oo(t,r,p),a[1]=Oo(e,o,d),s[0]=Ro(t,r,p),s[1]=Ro(e,o,d)}function Zo(t,e,n,i,r,o,a,s,l){var u=Ot,h=Rt,c=Math.abs(r-o);if(c%zo<1e-4&&c>1e-4)return s[0]=t-n,s[1]=e-i,l[0]=t+n,void(l[1]=e+i);if(Bo[0]=Eo(r)*n+t,Bo[1]=No(r)*i+e,Vo[0]=Eo(o)*n+t,Vo[1]=No(o)*i+e,u(s,Bo,Vo),h(l,Bo,Vo),(r%=zo)<0&&(r+=zo),(o%=zo)<0&&(o+=zo),r>o&&!a?o+=zo:r<o&&a&&(r+=zo),a){var p=o;o=r,r=p}for(var d=0;d<o;d+=Math.PI/2)d>r&&(Fo[0]=Eo(d)*n+t,Fo[1]=No(d)*i+e,u(s,Fo,s),h(l,Fo,l))}var jo={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},qo=[],Ko=[],$o=[],Jo=[],Qo=[],ta=[],ea=Math.min,na=Math.max,ia=Math.cos,ra=Math.sin,oa=Math.sqrt,aa=Math.abs,sa=Math.PI,la=2*sa,ua="undefined"!=typeof Float32Array,ha=[];function ca(t){return Math.round(t/sa*1e8)/1e8%2*sa}function pa(t,e){var n=ca(t[0]);n<0&&(n+=la);var i=n-t[0],r=t[1];r+=i,!e&&r-n>=la?r=n+la:e&&n-r>=la?r=n-la:!e&&n>r?r=n+(la-ca(n-r)):e&&n<r&&(r=n-(la-ca(r-n))),t[0]=n,t[1]=r}var da=function(){function t(t){this.dpr=1,this._version=0,this._xi=0,this._yi=0,this._x0=0,this._y0=0,this._len=0,t&&(this._saveData=!1),this._saveData&&(this.data=[])}return t.prototype.increaseVersion=function(){this._version++},t.prototype.getVersion=function(){return this._version},t.prototype.setScale=function(t,e,n){(n=n||0)>0&&(this._ux=aa(n/Wn/t)||0,this._uy=aa(n/Wn/e)||0)},t.prototype.setDPR=function(t){this.dpr=t},t.prototype.setContext=function(t){this._ctx=t},t.prototype.getContext=function(){return this._ctx},t.prototype.beginPath=function(){return this._ctx&&this._ctx.beginPath(),this.reset(),this},t.prototype.reset=function(){this._saveData&&(this._len=0),this._lineDash&&(this._lineDash=null,this._dashOffset=0),this._pathSegLen&&(this._pathSegLen=null,this._pathLen=0),this._version++},t.prototype.moveTo=function(t,e){return this.addData(jo.M,t,e),this._ctx&&this._ctx.moveTo(t,e),this._x0=t,this._y0=e,this._xi=t,this._yi=e,this},t.prototype.lineTo=function(t,e){var n=aa(t-this._xi)>this._ux||aa(e-this._yi)>this._uy||this._len<5;return this.addData(jo.L,t,e),this._ctx&&n&&(this._needsDash?this._dashedLineTo(t,e):this._ctx.lineTo(t,e)),n&&(this._xi=t,this._yi=e),this},t.prototype.bezierCurveTo=function(t,e,n,i,r,o){return this.addData(jo.C,t,e,n,i,r,o),this._ctx&&(this._needsDash?this._dashedBezierTo(t,e,n,i,r,o):this._ctx.bezierCurveTo(t,e,n,i,r,o)),this._xi=r,this._yi=o,this},t.prototype.quadraticCurveTo=function(t,e,n,i){return this.addData(jo.Q,t,e,n,i),this._ctx&&(this._needsDash?this._dashedQuadraticTo(t,e,n,i):this._ctx.quadraticCurveTo(t,e,n,i)),this._xi=n,this._yi=i,this},t.prototype.arc=function(t,e,n,i,r,o){ha[0]=i,ha[1]=r,pa(ha,o),i=ha[0];var a=(r=ha[1])-i;return this.addData(jo.A,t,e,n,n,i,a,0,o?0:1),this._ctx&&this._ctx.arc(t,e,n,i,r,o),this._xi=ia(r)*n+t,this._yi=ra(r)*n+e,this},t.prototype.arcTo=function(t,e,n,i,r){return this._ctx&&this._ctx.arcTo(t,e,n,i,r),this},t.prototype.rect=function(t,e,n,i){return this._ctx&&this._ctx.rect(t,e,n,i),this.addData(jo.R,t,e,n,i),this},t.prototype.closePath=function(){this.addData(jo.Z);var t=this._ctx,e=this._x0,n=this._y0;return t&&(this._needsDash&&this._dashedLineTo(e,n),t.closePath()),this._xi=e,this._yi=n,this},t.prototype.fill=function(t){t&&t.fill(),this.toStatic()},t.prototype.stroke=function(t){t&&t.stroke(),this.toStatic()},t.prototype.setLineDash=function(t){if(t instanceof Array){this._lineDash=t,this._dashIdx=0;for(var e=0,n=0;n<t.length;n++)e+=t[n];this._dashSum=e,this._needsDash=!0}else this._lineDash=null,this._needsDash=!1;return this},t.prototype.setLineDashOffset=function(t){return this._dashOffset=t,this},t.prototype.len=function(){return this._len},t.prototype.setData=function(t){var e=t.length;this.data&&this.data.length===e||!ua||(this.data=new Float32Array(e));for(var n=0;n<e;n++)this.data[n]=t[n];this._len=e},t.prototype.appendPath=function(t){t instanceof Array||(t=[t]);for(var e=t.length,n=0,i=this._len,r=0;r<e;r++)n+=t[r].len();ua&&this.data instanceof Float32Array&&(this.data=new Float32Array(i+n));for(r=0;r<e;r++)for(var o=t[r].data,a=0;a<o.length;a++)this.data[i++]=o[a];this._len=i},t.prototype.addData=function(t,e,n,i,r,o,a,s,l){if(this._saveData){var u=this.data;this._len+arguments.length>u.length&&(this._expandData(),u=this.data);for(var h=0;h<arguments.length;h++)u[this._len++]=arguments[h]}},t.prototype._expandData=function(){if(!(this.data instanceof Array)){for(var t=[],e=0;e<this._len;e++)t[e]=this.data[e];this.data=t}},t.prototype._dashedLineTo=function(t,e){var n,i,r=this._dashSum,o=this._lineDash,a=this._ctx,s=this._dashOffset,l=this._xi,u=this._yi,h=t-l,c=e-u,p=oa(h*h+c*c),d=l,f=u,g=o.length;for(s<0&&(s=r+s),d-=(s%=r)*(h/=p),f-=s*(c/=p);h>0&&d<=t||h<0&&d>=t||0===h&&(c>0&&f<=e||c<0&&f>=e);)d+=h*(n=o[i=this._dashIdx]),f+=c*n,this._dashIdx=(i+1)%g,h>0&&d<l||h<0&&d>l||c>0&&f<u||c<0&&f>u||a[i%2?"moveTo":"lineTo"](h>=0?ea(d,t):na(d,t),c>=0?ea(f,e):na(f,e));h=d-t,c=f-e,this._dashOffset=-oa(h*h+c*c)},t.prototype._dashedBezierTo=function(t,e,n,i,r,o){var a,s,l,u,h,c=this._ctx,p=this._dashSum,d=this._dashOffset,f=this._lineDash,g=this._xi,y=this._yi,v=0,m=this._dashIdx,_=f.length,x=0;for(d<0&&(d=p+d),d%=p,a=0;a<1;a+=.1)s=xo(g,t,n,r,a+.1)-xo(g,t,n,r,a),l=xo(y,e,i,o,a+.1)-xo(y,e,i,o,a),v+=oa(s*s+l*l);for(;m<_&&!((x+=f[m])>d);m++);for(a=(x-d)/v;a<=1;)u=xo(g,t,n,r,a),h=xo(y,e,i,o,a),m%2?c.moveTo(u,h):c.lineTo(u,h),a+=f[m]/v,m=(m+1)%_;m%2!=0&&c.lineTo(r,o),s=r-u,l=o-h,this._dashOffset=-oa(s*s+l*l)},t.prototype._dashedQuadraticTo=function(t,e,n,i){var r=n,o=i;n=(n+2*t)/3,i=(i+2*e)/3,t=(this._xi+2*t)/3,e=(this._yi+2*e)/3,this._dashedBezierTo(t,e,n,i,r,o)},t.prototype.toStatic=function(){if(this._saveData){var t=this.data;t instanceof Array&&(t.length=this._len,ua&&this._len>11&&(this.data=new Float32Array(t)))}},t.prototype.getBoundingRect=function(){$o[0]=$o[1]=Qo[0]=Qo[1]=Number.MAX_VALUE,Jo[0]=Jo[1]=ta[0]=ta[1]=-Number.MAX_VALUE;var t,e=this.data,n=0,i=0,r=0,o=0;for(t=0;t<this._len;){var a=e[t++],s=1===t;switch(s&&(r=n=e[t],o=i=e[t+1]),a){case jo.M:n=r=e[t++],i=o=e[t++],Qo[0]=r,Qo[1]=o,ta[0]=r,ta[1]=o;break;case jo.L:Ho(n,i,e[t],e[t+1],Qo,ta),n=e[t++],i=e[t++];break;case jo.C:Xo(n,i,e[t++],e[t++],e[t++],e[t++],e[t],e[t+1],Qo,ta),n=e[t++],i=e[t++];break;case jo.Q:Uo(n,i,e[t++],e[t++],e[t],e[t+1],Qo,ta),n=e[t++],i=e[t++];break;case jo.A:var l=e[t++],u=e[t++],h=e[t++],c=e[t++],p=e[t++],d=e[t++]+p;t+=1;var f=!e[t++];s&&(r=ia(p)*h+l,o=ra(p)*c+u),Zo(l,u,h,c,p,d,f,Qo,ta),n=ia(d)*h+l,i=ra(d)*c+u;break;case jo.R:Ho(r=n=e[t++],o=i=e[t++],r+e[t++],o+e[t++],Qo,ta);break;case jo.Z:n=r,i=o}Ot($o,$o,Qo),Rt(Jo,Jo,ta)}return 0===t&&($o[0]=$o[1]=Jo[0]=Jo[1]=0),new Ln($o[0],$o[1],Jo[0]-$o[0],Jo[1]-$o[1])},t.prototype._calculateLength=function(){var t=this.data,e=this._len,n=this._ux,i=this._uy,r=0,o=0,a=0,s=0;this._pathSegLen||(this._pathSegLen=[]);for(var l=this._pathSegLen,u=0,h=0,c=0;c<e;){var p=t[c++],d=1===c;d&&(a=r=t[c],s=o=t[c+1]);var f=-1;switch(p){case jo.M:r=a=t[c++],o=s=t[c++];break;case jo.L:var g=t[c++],y=(_=t[c++])-o;(aa(D=g-r)>n||aa(y)>i||c===e-1)&&(f=Math.sqrt(D*D+y*y),r=g,o=_);break;case jo.C:var v=t[c++],m=t[c++],_=(g=t[c++],t[c++]),x=t[c++],b=t[c++];f=To(r,o,v,m,g,_,x,b,10),r=x,o=b;break;case jo.Q:f=Po(r,o,v=t[c++],m=t[c++],g=t[c++],_=t[c++],10),r=g,o=_;break;case jo.A:var w=t[c++],S=t[c++],M=t[c++],I=t[c++],T=t[c++],C=t[c++],A=C+T;c+=1;t[c++];d&&(a=ia(T)*M+w,s=ra(T)*I+S),f=na(M,I)*ea(la,Math.abs(C)),r=ia(A)*M+w,o=ra(A)*I+S;break;case jo.R:a=r=t[c++],s=o=t[c++],f=2*t[c++]+2*t[c++];break;case jo.Z:var D=a-r;y=s-o;f=Math.sqrt(D*D+y*y),r=a,o=s}f>=0&&(l[h++]=f,u+=f)}return this._pathLen=u,u},t.prototype.rebuildPath=function(t,e){var n,i,r,o,a,s,l,u,h=this.data,c=this._ux,p=this._uy,d=this._len,f=e<1,g=0,y=0;if(!f||(this._pathSegLen||this._calculateLength(),l=this._pathSegLen,u=e*this._pathLen))t:for(var v=0;v<d;){var m=h[v++],_=1===v;switch(_&&(n=r=h[v],i=o=h[v+1]),m){case jo.M:n=r=h[v++],i=o=h[v++],t.moveTo(r,o);break;case jo.L:if(a=h[v++],s=h[v++],aa(a-r)>c||aa(s-o)>p||v===d-1){if(f){if(g+(H=l[y++])>u){var x=(u-g)/H;t.lineTo(r*(1-x)+a*x,o*(1-x)+s*x);break t}g+=H}t.lineTo(a,s),r=a,o=s}break;case jo.C:var b=h[v++],w=h[v++],S=h[v++],M=h[v++],I=h[v++],T=h[v++];if(f){if(g+(H=l[y++])>u){Mo(r,b,S,I,x=(u-g)/H,qo),Mo(o,w,M,T,x,Ko),t.bezierCurveTo(qo[1],Ko[1],qo[2],Ko[2],qo[3],Ko[3]);break t}g+=H}t.bezierCurveTo(b,w,S,M,I,T),r=I,o=T;break;case jo.Q:b=h[v++],w=h[v++],S=h[v++],M=h[v++];if(f){if(g+(H=l[y++])>u){Lo(r,b,S,x=(u-g)/H,qo),Lo(o,w,M,x,Ko),t.quadraticCurveTo(qo[1],Ko[1],qo[2],Ko[2]);break t}g+=H}t.quadraticCurveTo(b,w,S,M),r=S,o=M;break;case jo.A:var C=h[v++],A=h[v++],D=h[v++],L=h[v++],k=h[v++],P=h[v++],O=h[v++],R=!h[v++],N=D>L?D:L,E=aa(D-L)>.001,z=k+P,B=!1;if(f)g+(H=l[y++])>u&&(z=k+P*(u-g)/H,B=!0),g+=H;if(E&&t.ellipse?t.ellipse(C,A,D,L,O,k,z,R):t.arc(C,A,N,k,z,R),B)break t;_&&(n=ia(k)*D+C,i=ra(k)*L+A),r=ia(z)*D+C,o=ra(z)*L+A;break;case jo.R:n=r=h[v],i=o=h[v+1],a=h[v++],s=h[v++];var V=h[v++],F=h[v++];if(f){if(g+(H=l[y++])>u){var G=u-g;t.moveTo(a,s),t.lineTo(a+ea(G,V),s),(G-=V)>0&&t.lineTo(a+V,s+ea(G,F)),(G-=F)>0&&t.lineTo(a+na(V-G,0),s+F),(G-=V)>0&&t.lineTo(a,s+na(F-G,0));break t}g+=H}t.rect(a,s,V,F);break;case jo.Z:if(f){var H;if(g+(H=l[y++])>u){x=(u-g)/H;t.lineTo(r*(1-x)+n*x,o*(1-x)+i*x);break t}g+=H}t.closePath(),r=n,o=i}}},t.CMD=jo,t.initDefaultProps=function(){var e=t.prototype;e._saveData=!0,e._needsDash=!1,e._dashOffset=0,e._dashIdx=0,e._dashSum=0,e._ux=0,e._uy=0}(),t}();function fa(t,e,n,i,r,o,a){if(0===r)return!1;var s=r,l=0;if(a>e+s&&a>i+s||a<e-s&&a<i-s||o>t+s&&o>n+s||o<t-s&&o<n-s)return!1;if(t===n)return Math.abs(o-t)<=s/2;var u=(l=(e-i)/(t-n))*o-a+(t*i-n*e)/(t-n);return u*u/(l*l+1)<=s/2*s/2}function ga(t,e,n,i,r,o,a,s,l,u,h){if(0===l)return!1;var c=l;return!(h>e+c&&h>i+c&&h>o+c&&h>s+c||h<e-c&&h<i-c&&h<o-c&&h<s-c||u>t+c&&u>n+c&&u>r+c&&u>a+c||u<t-c&&u<n-c&&u<r-c&&u<a-c)&&Io(t,e,n,i,r,o,a,s,u,h,null)<=c/2}function ya(t,e,n,i,r,o,a,s,l){if(0===a)return!1;var u=a;return!(l>e+u&&l>i+u&&l>o+u||l<e-u&&l<i-u&&l<o-u||s>t+u&&s>n+u&&s>r+u||s<t-u&&s<n-u&&s<r-u)&&ko(t,e,n,i,r,o,s,l,null)<=u/2}var va=2*Math.PI;function ma(t){return(t%=va)<0&&(t+=va),t}var _a=2*Math.PI;function xa(t,e,n,i,r,o,a,s,l){if(0===a)return!1;var u=a;s-=t,l-=e;var h=Math.sqrt(s*s+l*l);if(h-u>n||h+u<n)return!1;if(Math.abs(i-r)%_a<1e-4)return!0;if(o){var c=i;i=ma(r),r=ma(c)}else i=ma(i),r=ma(r);i>r&&(r+=_a);var p=Math.atan2(l,s);return p<0&&(p+=_a),p>=i&&p<=r||p+_a>=i&&p+_a<=r}function ba(t,e,n,i,r,o){if(o>e&&o>i||o<e&&o<i)return 0;if(i===e)return 0;var a=(o-e)/(i-e),s=i<e?1:-1;1!==a&&0!==a||(s=i<e?.5:-.5);var l=a*(n-t)+t;return l===r?1/0:l>r?s:0}var wa=da.CMD,Sa=2*Math.PI;var Ma=[-1,-1,-1],Ia=[-1,-1];function Ta(t,e,n,i,r,o,a,s,l,u){if(u>e&&u>i&&u>o&&u>s||u<e&&u<i&&u<o&&u<s)return 0;var h,c=wo(e,i,o,s,u,Ma);if(0===c)return 0;for(var p=0,d=-1,f=void 0,g=void 0,y=0;y<c;y++){var v=Ma[y],m=0===v||1===v?.5:1;xo(t,n,r,a,v)<l||(d<0&&(d=So(e,i,o,s,Ia),Ia[1]<Ia[0]&&d>1&&(h=void 0,h=Ia[0],Ia[0]=Ia[1],Ia[1]=h),f=xo(e,i,o,s,Ia[0]),d>1&&(g=xo(e,i,o,s,Ia[1]))),2===d?v<Ia[0]?p+=f<e?m:-m:v<Ia[1]?p+=g<f?m:-m:p+=s<g?m:-m:v<Ia[0]?p+=f<e?m:-m:p+=s<f?m:-m)}return p}function Ca(t,e,n,i,r,o,a,s){if(s>e&&s>i&&s>o||s<e&&s<i&&s<o)return 0;var l=function(t,e,n,i,r){var o=t-2*e+n,a=2*(e-t),s=t-i,l=0;if(mo(o))_o(a)&&(h=-s/a)>=0&&h<=1&&(r[l++]=h);else{var u=a*a-4*o*s;if(mo(u))(h=-a/(2*o))>=0&&h<=1&&(r[l++]=h);else if(u>0){var h,c=co(u),p=(-a-c)/(2*o);(h=(-a+c)/(2*o))>=0&&h<=1&&(r[l++]=h),p>=0&&p<=1&&(r[l++]=p)}}return l}(e,i,o,s,Ma);if(0===l)return 0;var u=Do(e,i,o);if(u>=0&&u<=1){for(var h=0,c=Co(e,i,o,u),p=0;p<l;p++){var d=0===Ma[p]||1===Ma[p]?.5:1;Co(t,n,r,Ma[p])<a||(Ma[p]<u?h+=c<e?d:-d:h+=o<c?d:-d)}return h}d=0===Ma[0]||1===Ma[0]?.5:1;return Co(t,n,r,Ma[0])<a?0:o<e?d:-d}function Aa(t,e,n,i,r,o,a,s){if((s-=e)>n||s<-n)return 0;var l=Math.sqrt(n*n-s*s);Ma[0]=-l,Ma[1]=l;var u=Math.abs(i-r);if(u<1e-4)return 0;if(u>=Sa-1e-4){i=0,r=Sa;var h=o?1:-1;return a>=Ma[0]+t&&a<=Ma[1]+t?h:0}if(i>r){var c=i;i=r,r=c}i<0&&(i+=Sa,r+=Sa);for(var p=0,d=0;d<2;d++){var f=Ma[d];if(f+t>a){var g=Math.atan2(s,f);h=o?1:-1;g<0&&(g=Sa+g),(g>=i&&g<=r||g+Sa>=i&&g+Sa<=r)&&(g>Math.PI/2&&g<1.5*Math.PI&&(h=-h),p+=h)}}return p}function Da(t,e,n,i,r){for(var o,a,s,l,u=t.data,h=t.len(),c=0,p=0,d=0,f=0,g=0,y=0;y<h;){var v=u[y++],m=1===y;switch(v===wa.M&&y>1&&(n||(c+=ba(p,d,f,g,i,r))),m&&(f=p=u[y],g=d=u[y+1]),v){case wa.M:p=f=u[y++],d=g=u[y++];break;case wa.L:if(n){if(fa(p,d,u[y],u[y+1],e,i,r))return!0}else c+=ba(p,d,u[y],u[y+1],i,r)||0;p=u[y++],d=u[y++];break;case wa.C:if(n){if(ga(p,d,u[y++],u[y++],u[y++],u[y++],u[y],u[y+1],e,i,r))return!0}else c+=Ta(p,d,u[y++],u[y++],u[y++],u[y++],u[y],u[y+1],i,r)||0;p=u[y++],d=u[y++];break;case wa.Q:if(n){if(ya(p,d,u[y++],u[y++],u[y],u[y+1],e,i,r))return!0}else c+=Ca(p,d,u[y++],u[y++],u[y],u[y+1],i,r)||0;p=u[y++],d=u[y++];break;case wa.A:var _=u[y++],x=u[y++],b=u[y++],w=u[y++],S=u[y++],M=u[y++];y+=1;var I=!!(1-u[y++]);o=Math.cos(S)*b+_,a=Math.sin(S)*w+x,m?(f=o,g=a):c+=ba(p,d,o,a,i,r);var T=(i-_)*w/b+_;if(n){if(xa(_,x,w,S,S+M,I,e,T,r))return!0}else c+=Aa(_,x,w,S,S+M,I,T,r);p=Math.cos(S+M)*b+_,d=Math.sin(S+M)*w+x;break;case wa.R:if(f=p=u[y++],g=d=u[y++],o=f+u[y++],a=g+u[y++],n){if(fa(f,g,o,g,e,i,r)||fa(o,g,o,a,e,i,r)||fa(o,a,f,a,e,i,r)||fa(f,a,f,g,e,i,r))return!0}else c+=ba(o,g,o,a,i,r),c+=ba(f,a,f,g,i,r);break;case wa.Z:if(n){if(fa(p,d,f,g,e,i,r))return!0}else c+=ba(p,d,f,g,i,r);p=f,d=g}}return n||(s=d,l=g,Math.abs(s-l)<1e-4)||(c+=ba(p,d,f,g,i,r)||0),0!==c}var La=I({fill:"#000",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:"butt",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},ro),ka={style:I({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},oo.style)},Pa=["x","y","rotation","scaleX","scaleY","originX","originY","invisible","culling","z","z2","zlevel","parent"],Oa=function(t){function n(e){return t.call(this,e)||this}var i;return e(n,t),n.prototype.update=function(){var e=this;t.prototype.update.call(this);var i=this.style;if(i.decal){var r=this._decalEl=this._decalEl||new n;r.buildPath===n.prototype.buildPath&&(r.buildPath=function(t){e.buildPath(t,e.shape)}),r.silent=!0;var o=r.style;for(var a in i)o[a]!==i[a]&&(o[a]=i[a]);o.fill=i.fill?i.decal:null,o.decal=null,o.shadowColor=null,i.strokeFirst&&(o.stroke=null);for(var s=0;s<Pa.length;++s)r[Pa[s]]=this[Pa[s]];r.__dirty|=jn.REDARAW_BIT}else this._decalEl&&(this._decalEl=null)},n.prototype.getDecalElement=function(){return this._decalEl},n.prototype._init=function(e){var n=E(e);this.shape=this.getDefaultShape();var i=this.getDefaultStyle();i&&this.useStyle(i);for(var r=0;r<n.length;r++){var o=n[r],a=e[o];"style"===o?this.style?M(this.style,a):this.useStyle(a):"shape"===o?M(this.shape,a):t.prototype.attrKV.call(this,o,a)}this.style||this.useStyle({})},n.prototype.getDefaultStyle=function(){return null},n.prototype.getDefaultShape=function(){return{}},n.prototype.canBeInsideText=function(){return this.hasFill()},n.prototype.getInsideTextFill=function(){var t=this.style.fill;if("none"!==t){if(G(t)){var e=nn(t,0);return e>.5?"#333":e>.2?"#eee":"#ccc"}if(t)return"#ccc"}return"#333"},n.prototype.getInsideTextStroke=function(t){var e=this.style.fill;if(G(e)){var n=this.__zr;if(!(!n||!n.isDarkMode())===nn(t,0)<.4)return e}},n.prototype.buildPath=function(t,e,n){},n.prototype.pathUpdated=function(){this.__dirty&=~n.SHAPE_CHANGED_BIT},n.prototype.createPathProxy=function(){this.path=new da(!1)},n.prototype.hasStroke=function(){var t=this.style,e=t.stroke;return!(null==e||"none"===e||!(t.lineWidth>0))},n.prototype.hasFill=function(){var t=this.style.fill;return null!=t&&"none"!==t},n.prototype.getBoundingRect=function(){var t=this._rect,e=this.style,i=!t;if(i){var r=!1;this.path||(r=!0,this.createPathProxy());var o=this.path;(r||this.__dirty&n.SHAPE_CHANGED_BIT)&&(o.beginPath(),this.buildPath(o,this.shape,!1),this.pathUpdated()),t=o.getBoundingRect()}if(this._rect=t,this.hasStroke()&&this.path&&this.path.len()>0){var a=this._rectWithStroke||(this._rectWithStroke=t.clone());if(this.__dirty||i){a.copy(t);var s=e.strokeNoScale?this.getLineScale():1,l=e.lineWidth;if(!this.hasFill()){var u=this.strokeContainThreshold;l=Math.max(l,null==u?4:u)}s>1e-10&&(a.width+=l/s,a.height+=l/s,a.x-=l/s/2,a.y-=l/s/2)}return a}return t},n.prototype.contain=function(t,e){var n=this.transformCoordToLocal(t,e),i=this.getBoundingRect(),r=this.style;if(t=n[0],e=n[1],i.contain(t,e)){var o=this.path;if(this.hasStroke()){var a=r.lineWidth,s=r.strokeNoScale?this.getLineScale():1;if(s>1e-10&&(this.hasFill()||(a=Math.max(a,this.strokeContainThreshold)),function(t,e,n,i){return Da(t,e,!0,n,i)}(o,a/s,t,e)))return!0}if(this.hasFill())return function(t,e,n){return Da(t,0,!1,e,n)}(o,t,e)}return!1},n.prototype.dirtyShape=function(){this.__dirty|=n.SHAPE_CHANGED_BIT,this._rect&&(this._rect=null),this._decalEl&&this._decalEl.dirtyShape(),this.markRedraw()},n.prototype.dirty=function(){this.dirtyStyle(),this.dirtyShape()},n.prototype.animateShape=function(t){return this.animate("shape",t)},n.prototype.updateDuringAnimation=function(t){"style"===t?this.dirtyStyle():"shape"===t?this.dirtyShape():this.markRedraw()},n.prototype.attrKV=function(e,n){"shape"===e?this.setShape(n):t.prototype.attrKV.call(this,e,n)},n.prototype.setShape=function(t,e){var n=this.shape;return n||(n=this.shape={}),"string"==typeof t?n[t]=e:M(n,t),this.dirtyShape(),this},n.prototype.shapeChanged=function(){return!!(this.__dirty&n.SHAPE_CHANGED_BIT)},n.prototype.createStyle=function(t){return ht(La,t)},n.prototype._innerSaveToNormal=function(e){t.prototype._innerSaveToNormal.call(this,e);var n=this._normalState;e.shape&&!n.shape&&(n.shape=M({},this.shape))},n.prototype._applyStateObj=function(e,n,i,r,o,a){t.prototype._applyStateObj.call(this,e,n,i,r,o,a);var s,l=!(n&&r);if(n&&n.shape?o?r?s=n.shape:(s=M({},i.shape),M(s,n.shape)):(s=M({},r?this.shape:i.shape),M(s,n.shape)):l&&(s=i.shape),s)if(o){this.shape=M({},this.shape);for(var u={},h=E(s),c=0;c<h.length;c++){var p=h[c];"object"==typeof s[p]?this.shape[p]=s[p]:u[p]=s[p]}this._transitionState(e,{shape:u},a)}else this.shape=s,this.dirtyShape()},n.prototype._mergeStates=function(e){for(var n,i=t.prototype._mergeStates.call(this,e),r=0;r<e.length;r++){var o=e[r];o.shape&&(n=n||{},this._mergeStyle(n,o.shape))}return n&&(i.shape=n),i},n.prototype.getAnimationStyleProps=function(){return ka},n.prototype.isZeroArea=function(){return!1},n.extend=function(t){var i=function(n){function i(e){var i=n.call(this,e)||this;return t.init&&t.init.call(i,e),i}return e(i,n),i.prototype.getDefaultStyle=function(){return b(t.style)},i.prototype.getDefaultShape=function(){return b(t.shape)},i}(n);for(var r in t)"function"==typeof t[r]&&(i.prototype[r]=t[r]);return i},n.SHAPE_CHANGED_BIT=4,n.initDefaultProps=((i=n.prototype).type="path",i.strokeContainThreshold=5,i.segmentIgnoreThreshold=0,i.subPixelOptimize=!1,i.autoBatch=!1,void(i.__dirty=jn.REDARAW_BIT|so.STYLE_CHANGED_BIT|n.SHAPE_CHANGED_BIT)),n}(so),Ra=I({strokeFirst:!0,font:Pn,x:0,y:0,textAlign:"left",textBaseline:"top",miterLimit:2},La),Na=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.hasStroke=function(){var t=this.style,e=t.stroke;return null!=e&&"none"!==e&&t.lineWidth>0},n.prototype.hasFill=function(){var t=this.style.fill;return null!=t&&"none"!==t},n.prototype.createStyle=function(t){return ht(Ra,t)},n.prototype.setBoundingRect=function(t){this._rect=t},n.prototype.getBoundingRect=function(){var t=this.style;if(!this._rect){var e=t.text;null!=e?e+="":e="";var n=En(e,t.font,t.textAlign,t.textBaseline);if(n.x+=t.x||0,n.y+=t.y||0,this.hasStroke()){var i=t.lineWidth;n.x-=i/2,n.y-=i/2,n.width+=i,n.height+=i}this._rect=n}return this._rect},n.initDefaultProps=void(n.prototype.dirtyRectTolerance=10),n}(so);Na.prototype.type="tspan";var Ea=I({x:0,y:0},ro),za={style:I({x:!0,y:!0,width:!0,height:!0,sx:!0,sy:!0,sWidth:!0,sHeight:!0},oo.style)};var Ba=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.createStyle=function(t){return ht(Ea,t)},n.prototype._getSize=function(t){var e=this.style,n=e[t];if(null!=n)return n;var i,r=(i=e.image)&&"string"!=typeof i&&i.width&&i.height?e.image:this.__image;if(!r)return 0;var o="width"===t?"height":"width",a=e[o];return null==a?r[t]:r[t]/r[o]*a},n.prototype.getWidth=function(){return this._getSize("width")},n.prototype.getHeight=function(){return this._getSize("height")},n.prototype.getAnimationStyleProps=function(){return za},n.prototype.getBoundingRect=function(){var t=this.style;return this._rect||(this._rect=new Ln(t.x||0,t.y||0,this.getWidth(),this.getHeight())),this._rect},n}(so);Ba.prototype.type="image";var Va=Math.round;function Fa(t,e,n){if(e){var i=e.x1,r=e.x2,o=e.y1,a=e.y2;t.x1=i,t.x2=r,t.y1=o,t.y2=a;var s=n&&n.lineWidth;return s?(Va(2*i)===Va(2*r)&&(t.x1=t.x2=Ha(i,s,!0)),Va(2*o)===Va(2*a)&&(t.y1=t.y2=Ha(o,s,!0)),t):t}}function Ga(t,e,n){if(e){var i=e.x,r=e.y,o=e.width,a=e.height;t.x=i,t.y=r,t.width=o,t.height=a;var s=n&&n.lineWidth;return s?(t.x=Ha(i,s,!0),t.y=Ha(r,s,!0),t.width=Math.max(Ha(i+o,s,!1)-t.x,0===o?0:1),t.height=Math.max(Ha(r+a,s,!1)-t.y,0===a?0:1),t):t}}function Ha(t,e,n){if(!e)return t;var i=Va(2*t);return(i+Va(e))%2==0?i/2:(i+(n?1:-1))/2}var Wa=function(){this.x=0,this.y=0,this.width=0,this.height=0},Ya={},Xa=function(t){function n(e){return t.call(this,e)||this}return e(n,t),n.prototype.getDefaultShape=function(){return new Wa},n.prototype.buildPath=function(t,e){var n,i,r,o;if(this.subPixelOptimize){var a=Ga(Ya,e,this.style);n=a.x,i=a.y,r=a.width,o=a.height,a.r=e.r,e=a}else n=e.x,i=e.y,r=e.width,o=e.height;e.r?function(t,e){var n,i,r,o,a,s=e.x,l=e.y,u=e.width,h=e.height,c=e.r;u<0&&(s+=u,u=-u),h<0&&(l+=h,h=-h),"number"==typeof c?n=i=r=o=c:c instanceof Array?1===c.length?n=i=r=o=c[0]:2===c.length?(n=r=c[0],i=o=c[1]):3===c.length?(n=c[0],i=o=c[1],r=c[2]):(n=c[0],i=c[1],r=c[2],o=c[3]):n=i=r=o=0,n+i>u&&(n*=u/(a=n+i),i*=u/a),r+o>u&&(r*=u/(a=r+o),o*=u/a),i+r>h&&(i*=h/(a=i+r),r*=h/a),n+o>h&&(n*=h/(a=n+o),o*=h/a),t.moveTo(s+n,l),t.lineTo(s+u-i,l),0!==i&&t.arc(s+u-i,l+i,i,-Math.PI/2,0),t.lineTo(s+u,l+h-r),0!==r&&t.arc(s+u-r,l+h-r,r,0,Math.PI/2),t.lineTo(s+o,l+h),0!==o&&t.arc(s+o,l+h-o,o,Math.PI/2,Math.PI),t.lineTo(s,l+n),0!==n&&t.arc(s+n,l+n,n,Math.PI,1.5*Math.PI)}(t,e):t.rect(n,i,r,o)},n.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},n}(Oa);Xa.prototype.type="rect";var Ua={fill:"#000"},Za={style:I({fill:!0,stroke:!0,fillOpacity:!0,strokeOpacity:!0,lineWidth:!0,fontSize:!0,lineHeight:!0,width:!0,height:!0,textShadowColor:!0,textShadowBlur:!0,textShadowOffsetX:!0,textShadowOffsetY:!0,backgroundColor:!0,padding:!0,borderColor:!0,borderWidth:!0,borderRadius:!0},oo.style)},ja=function(t){function n(e){var n=t.call(this)||this;return n.type="text",n._children=[],n._defaultStyle=Ua,n.attr(e),n}return e(n,t),n.prototype.childrenRef=function(){return this._children},n.prototype.update=function(){this.styleChanged()&&this._updateSubTexts();for(var e=0;e<this._children.length;e++){var n=this._children[e];n.zlevel=this.zlevel,n.z=this.z,n.z2=this.z2,n.culling=this.culling,n.cursor=this.cursor,n.invisible=this.invisible}var i=this.attachedTransform;if(i){i.updateTransform();var r=i.transform;r?(this.transform=this.transform||[],de(this.transform,r)):this.transform=null}else t.prototype.update.call(this)},n.prototype.getComputedTransform=function(){return this.__hostTarget&&(this.__hostTarget.getComputedTransform(),this.__hostTarget.updateInnerText(!0)),this.attachedTransform?this.attachedTransform.getComputedTransform():t.prototype.getComputedTransform.call(this)},n.prototype._updateSubTexts=function(){var t;this._childCursor=0,$a(t=this.style),k(t.rich,$a),this.style.rich?this._updateRichTexts():this._updatePlainTexts(),this._children.length=this._childCursor,this.styleUpdated()},n.prototype.addSelfToZr=function(e){t.prototype.addSelfToZr.call(this,e);for(var n=0;n<this._children.length;n++)this._children[n].__zr=e},n.prototype.removeSelfFromZr=function(e){t.prototype.removeSelfFromZr.call(this,e);for(var n=0;n<this._children.length;n++)this._children[n].__zr=null},n.prototype.getBoundingRect=function(){if(this.styleChanged()&&this._updateSubTexts(),!this._rect){for(var t=new Ln(0,0,0,0),e=this._children,n=[],i=null,r=0;r<e.length;r++){var o=e[r],a=o.getBoundingRect(),s=o.getLocalTransform(n);s?(t.copy(a),t.applyTransform(s),(i=i||t.clone()).union(t)):(i=i||a.clone()).union(a)}this._rect=i||t}return this._rect},n.prototype.setDefaultTextStyle=function(t){this._defaultStyle=t||Ua},n.prototype.setTextContent=function(t){throw new Error("Can't attach text on another text")},n.prototype._mergeStyle=function(t,e){if(!e)return t;var n=e.rich,i=t.rich||n&&{};return M(t,e),n&&i?(this._mergeRich(i,n),t.rich=i):i&&(t.rich=i),t},n.prototype._mergeRich=function(t,e){for(var n=E(e),i=0;i<n.length;i++){var r=n[i];t[r]=t[r]||{},M(t[r],e[r])}},n.prototype.getAnimationStyleProps=function(){return Za},n.prototype._getOrCreateChild=function(t){var e=this._children[this._childCursor];return e&&e instanceof t||(e=new t),this._children[this._childCursor++]=e,e.__zr=this.__zr,e.parent=this,e},n.prototype._updatePlainTexts=function(){var t=this.style,e=t.font||Pn,n=t.padding,i=function(t,e){null!=t&&(t+="");var n,i=e.overflow,r=e.padding,o=e.font,a="truncate"===i,s=Vn(o),l=Q(e.lineHeight,s),u="truncate"===e.lineOverflow,h=e.width,c=(n=null!=h&&"break"===i||"breakAll"===i?t?no(t,e.font,h,"breakAll"===i,0).lines:[]:t?t.split("\n"):[]).length*l,p=Q(e.height,c);if(c>p&&u){var d=Math.floor(p/l);n=n.slice(0,d)}var f=p,g=h;if(r&&(f+=r[0]+r[2],null!=g&&(g+=r[1]+r[3])),t&&a&&null!=g)for(var y=Zr(h,o,e.ellipsis,{minChar:e.truncateMinChar,placeholder:e.placeholder}),v=0;v<n.length;v++)n[v]=jr(n[v],y);if(null==h){var m=0;for(v=0;v<n.length;v++)m=Math.max(Rn(n[v],o),m);h=m}return{lines:n,height:p,outerHeight:f,lineHeight:l,calculatedLineHeight:s,contentHeight:c,width:h}}(ts(t),t),r=es(t),o=!!t.backgroundColor,a=i.outerHeight,s=i.lines,l=i.lineHeight,u=this._defaultStyle,h=t.x||0,c=t.y||0,p=t.align||u.align||"left",d=t.verticalAlign||u.verticalAlign||"top",f=h,g=Bn(c,i.contentHeight,d);if(r||n){var y=i.width;n&&(y+=n[1]+n[3]);var v=zn(h,y,p),m=Bn(c,a,d);r&&this._renderBackground(t,t,v,m,y,a)}g+=l/2,n&&(f=Qa(h,p,n),"top"===d?g+=n[0]:"bottom"===d&&(g-=n[2]));for(var _,x=0,b=!1,w=(null==(_="fill"in t?t.fill:(b=!0,u.fill))||"none"===_?null:_.image||_.colorStops?"#000":_),S=(Ja("stroke"in t?t.stroke:o||u.autoStroke&&!b?null:(x=2,u.stroke))),M=t.textShadowBlur>0,I=null!=t.width&&("truncate"===t.overflow||"break"===t.overflow||"breakAll"===t.overflow),T=i.calculatedLineHeight,C=0;C<s.length;C++){var A=this._getOrCreateChild(Na),D=A.createStyle();A.useStyle(D),D.text=s[C],D.x=f,D.y=g,p&&(D.textAlign=p),D.textBaseline="middle",D.opacity=t.opacity,D.strokeFirst=!0,M&&(D.shadowBlur=t.textShadowBlur||0,D.shadowColor=t.textShadowColor||"transparent",D.shadowOffsetX=t.textShadowOffsetX||0,D.shadowOffsetY=t.textShadowOffsetY||0),S&&(D.stroke=S,D.lineWidth=t.lineWidth||x,D.lineDash=t.lineDash,D.lineDashOffset=t.lineDashOffset||0),w&&(D.fill=w),D.font=e,g+=l,I&&A.setBoundingRect(new Ln(zn(D.x,t.width,D.textAlign),Bn(D.y,T,D.textBaseline),t.width,T))}},n.prototype._updateRichTexts=function(){var t=this.style,e=function(t,e){var n=new Jr;if(null!=t&&(t+=""),!t)return n;for(var i,r=e.width,o=e.height,a=e.overflow,s="break"!==a&&"breakAll"!==a||null==r?null:{width:r,accumWidth:0,breakAll:"breakAll"===a},l=Xr.lastIndex=0;null!=(i=Xr.exec(t));){var u=i.index;u>l&&Qr(n,t.substring(l,u),e,s),Qr(n,i[2],e,s,i[1]),l=Xr.lastIndex}l<t.length&&Qr(n,t.substring(l,t.length),e,s);var h=[],c=0,p=0,d=e.padding,f="truncate"===a,g="truncate"===e.lineOverflow;function y(t,e,n){t.width=e,t.lineHeight=n,c+=n,p=Math.max(p,e)}t:for(var v=0;v<n.lines.length;v++){for(var m=n.lines[v],_=0,x=0,b=0;b<m.tokens.length;b++){var w=(P=m.tokens[b]).styleName&&e.rich[P.styleName]||{},S=P.textPadding=w.padding,M=S?S[1]+S[3]:0,I=P.font=w.font||e.font;P.contentHeight=Vn(I);var T=Q(w.height,P.contentHeight);if(P.innerHeight=T,S&&(T+=S[0]+S[2]),P.height=T,P.lineHeight=tt(w.lineHeight,e.lineHeight,T),P.align=w&&w.align||e.align,P.verticalAlign=w&&w.verticalAlign||"middle",g&&null!=o&&c+P.lineHeight>o){b>0?(m.tokens=m.tokens.slice(0,b),y(m,x,_),n.lines=n.lines.slice(0,v+1)):n.lines=n.lines.slice(0,v);break t}var C=w.width,A=null==C||"auto"===C;if("string"==typeof C&&"%"===C.charAt(C.length-1))P.percentWidth=C,h.push(P),P.contentWidth=Rn(P.text,I);else{if(A){var D=w.backgroundColor,L=D&&D.image;L&&Yr(L=Gr(L))&&(P.width=Math.max(P.width,L.width*T/L.height))}var k=f&&null!=r?r-x:null;null!=k&&k<P.width?!A||k<M?(P.text="",P.width=P.contentWidth=0):(P.text=Ur(P.text,k-M,I,e.ellipsis,{minChar:e.truncateMinChar}),P.width=P.contentWidth=Rn(P.text,I)):P.contentWidth=Rn(P.text,I)}P.width+=M,x+=P.width,w&&(_=Math.max(_,P.lineHeight))}y(m,x,_)}for(n.outerWidth=n.width=Q(r,p),n.outerHeight=n.height=Q(o,c),n.contentHeight=c,n.contentWidth=p,d&&(n.outerWidth+=d[1]+d[3],n.outerHeight+=d[0]+d[2]),v=0;v<h.length;v++){var P,O=(P=h[v]).percentWidth;P.width=parseInt(O,10)/100*n.width}return n}(ts(t),t),n=e.width,i=e.outerWidth,r=e.outerHeight,o=t.padding,a=t.x||0,s=t.y||0,l=this._defaultStyle,u=t.align||l.align,h=t.verticalAlign||l.verticalAlign,c=zn(a,i,u),p=Bn(s,r,h),d=c,f=p;o&&(d+=o[3],f+=o[0]);var g=d+n;es(t)&&this._renderBackground(t,t,c,p,i,r);for(var y=!!t.backgroundColor,v=0;v<e.lines.length;v++){for(var m=e.lines[v],_=m.tokens,x=_.length,b=m.lineHeight,w=m.width,S=0,M=d,I=g,T=x-1,C=void 0;S<x&&(!(C=_[S]).align||"left"===C.align);)this._placeToken(C,t,b,f,M,"left",y),w-=C.width,M+=C.width,S++;for(;T>=0&&"right"===(C=_[T]).align;)this._placeToken(C,t,b,f,I,"right",y),w-=C.width,I-=C.width,T--;for(M+=(n-(M-d)-(g-I)-w)/2;S<=T;)C=_[S],this._placeToken(C,t,b,f,M+C.width/2,"center",y),M+=C.width,S++;f+=b}},n.prototype._placeToken=function(t,e,n,i,r,o,a){var s=e.rich[t.styleName]||{};s.text=t.text;var l=t.verticalAlign,u=i+n/2;"top"===l?u=i+t.height/2:"bottom"===l&&(u=i+n-t.height/2),!t.isLineHolder&&es(s)&&this._renderBackground(s,e,"right"===o?r-t.width:"center"===o?r-t.width/2:r,u-t.height/2,t.width,t.height);var h=!!s.backgroundColor,c=t.textPadding;c&&(r=Qa(r,o,c),u-=t.height/2-c[0]-t.innerHeight/2);var p=this._getOrCreateChild(Na),d=p.createStyle();p.useStyle(d);var f=this._defaultStyle,g=!1,y=0,v=Ja("fill"in s?s.fill:"fill"in e?e.fill:(g=!0,f.fill)),m=Ja("stroke"in s?s.stroke:"stroke"in e?e.stroke:h||a||f.autoStroke&&!g?null:(y=2,f.stroke)),_=s.textShadowBlur>0||e.textShadowBlur>0;d.text=t.text,d.x=r,d.y=u,_&&(d.shadowBlur=s.textShadowBlur||e.textShadowBlur||0,d.shadowColor=s.textShadowColor||e.textShadowColor||"transparent",d.shadowOffsetX=s.textShadowOffsetX||e.textShadowOffsetX||0,d.shadowOffsetY=s.textShadowOffsetY||e.textShadowOffsetY||0),d.textAlign=o,d.textBaseline="middle",d.font=t.font||Pn,d.opacity=tt(s.opacity,e.opacity,1),m&&(d.lineWidth=tt(s.lineWidth,e.lineWidth,y),d.lineDash=Q(s.lineDash,e.lineDash),d.lineDashOffset=e.lineDashOffset||0,d.stroke=m),v&&(d.fill=v);var x=t.contentWidth,b=t.contentHeight;p.setBoundingRect(new Ln(zn(d.x,x,d.textAlign),Bn(d.y,b,d.textBaseline),x,b))},n.prototype._renderBackground=function(t,e,n,i,r,o){var a,s,l,u=t.backgroundColor,h=t.borderWidth,c=t.borderColor,p=G(u),d=t.borderRadius,f=this;if(p||h&&c){(a=this._getOrCreateChild(Xa)).useStyle(a.createStyle()),a.style.fill=null;var g=a.shape;g.x=n,g.y=i,g.width=r,g.height=o,g.r=d,a.dirtyShape()}if(p)(l=a.style).fill=u||null,l.fillOpacity=Q(t.fillOpacity,1);else if(u&&u.image){(s=this._getOrCreateChild(Ba)).onload=function(){f.dirtyStyle()};var y=s.style;y.image=u.image,y.x=n,y.y=i,y.width=r,y.height=o}h&&c&&((l=a.style).lineWidth=h,l.stroke=c,l.strokeOpacity=Q(t.strokeOpacity,1),l.lineDash=t.borderDash,l.lineDashOffset=t.borderDashOffset||0,a.strokeContainThreshold=0,a.hasFill()&&a.hasStroke()&&(l.strokeFirst=!0,l.lineWidth*=2));var v=(a||s).style;v.shadowBlur=t.shadowBlur||0,v.shadowColor=t.shadowColor||"transparent",v.shadowOffsetX=t.shadowOffsetX||0,v.shadowOffsetY=t.shadowOffsetY||0,v.opacity=tt(t.opacity,e.opacity,1)},n.makeFont=function(t){var e="";if(t.fontSize||t.fontFamily||t.fontWeight){var n="";n="string"!=typeof t.fontSize||-1===t.fontSize.indexOf("px")&&-1===t.fontSize.indexOf("rem")&&-1===t.fontSize.indexOf("em")?isNaN(+t.fontSize)?"12px":t.fontSize+"px":t.fontSize,e=[t.fontStyle,t.fontWeight,n,t.fontFamily||"sans-serif"].join(" ")}return e&&rt(e)||t.textFont||t.font},n}(so),qa={left:!0,right:1,center:1},Ka={top:1,bottom:1,middle:1};function $a(t){if(t){t.font=ja.makeFont(t);var e=t.align;"middle"===e&&(e="center"),t.align=null==e||qa[e]?e:"left";var n=t.verticalAlign;"center"===n&&(n="middle"),t.verticalAlign=null==n||Ka[n]?n:"top",t.padding&&(t.padding=nt(t.padding))}}function Ja(t,e){return null==t||e<=0||"transparent"===t||"none"===t?null:t.image||t.colorStops?"#000":t}function Qa(t,e,n){return"right"===e?t-n[1]:"center"===e?t+n[3]/2-n[1]/2:t+n[3]}function ts(t){var e=t.text;return null!=e&&(e+=""),e}function es(t){return!!(t.backgroundColor||t.borderWidth&&t.borderColor)}var ns=_r(),is=1,rs={},os=_r(),as=["emphasis","blur","select"],ss=["normal","emphasis","blur","select"];function ls(t){return null!=t&&"none"!==t}var us=new Pe(100);function hs(t){if("string"!=typeof t)return t;var e=us.get(t);return e||(e=Ze(t,-.1),us.put(t,e)),e}function cs(t,e,n){t.onHoverStateChange&&(t.hoverState||0)!==n&&t.onHoverStateChange(e),t.hoverState=n}function ps(t){cs(t,"emphasis",2)}function ds(t){2===t.hoverState&&cs(t,"normal",0)}function fs(t){cs(t,"blur",1)}function gs(t){1===t.hoverState&&cs(t,"normal",0)}function ys(t){t.selected=!0}function vs(t){t.selected=!1}function ms(t,e,n){e(t,n)}function _s(t,e,n){ms(t,e,n),t.isGroup&&t.traverse((function(t){ms(t,e,n)}))}function xs(t,e){switch(e){case"emphasis":t.hoverState=2;break;case"normal":t.hoverState=0;break;case"blur":t.hoverState=1;break;case"select":t.selected=!0}}function bs(t,e){var n=this.states[t];if(this.style){if("emphasis"===t)return function(t,e,n,i){var r=n&&C(n,"select")>=0,o=!1;if(t instanceof Oa){var a=os(t),s=r&&a.selectFill||a.normalFill,l=r&&a.selectStroke||a.normalStroke;if(ls(s)||ls(l)){var u=(i=i||{}).style||{};!ls(u.fill)&&ls(s)?(o=!0,i=M({},i),(u=M({},u)).fill=hs(s)):!ls(u.stroke)&&ls(l)&&(o||(i=M({},i),u=M({},u)),u.stroke=hs(l)),i.style=u}}if(i&&null==i.z2){o||(i=M({},i));var h=t.z2EmphasisLift;i.z2=t.z2+(null!=h?h:10)}return i}(this,0,e,n);if("blur"===t)return function(t,e,n){var i=C(t.currentStates,e)>=0,r=t.style.opacity,o=i?null:function(t,e,n,i){for(var r=t.style,o={},a=0;a<e.length;a++){var s=e[a],l=r[s];o[s]=null==l?i&&i[s]:l}for(a=0;a<t.animators.length;a++){var u=t.animators[a];u.__fromStateTransition&&u.__fromStateTransition.indexOf(n)<0&&"style"===u.targetName&&u.saveFinalToTarget(o,e)}return o}(t,["opacity"],e,{opacity:1}),a=(n=n||{}).style||{};return null==a.opacity&&(n=M({},n),a=M({opacity:i?r:.1*o.opacity},a),n.style=a),n}(this,t,n);if("select"===t)return function(t,e,n){if(n&&null==n.z2){n=M({},n);var i=t.z2SelectLift;n.z2=t.z2+(null!=i?i:9)}return n}(this,0,n)}return n}function ws(t){t.stateProxy=bs;var e=t.getTextContent(),n=t.getTextGuideLine();e&&(e.stateProxy=bs),n&&(n.stateProxy=bs)}function Ss(t,e){t.__highByOuter|=1<<(e||0),_s(t,ps)}function Ms(t,e){!(t.__highByOuter&=~(1<<(e||0)))&&_s(t,ds)}function Is(t){_s(t,fs)}function Ts(t){_s(t,gs)}function Cs(t){_s(t,ys)}function As(t){_s(t,vs)}function Ds(t,e){return t.__highDownSilentOnTouch&&e.zrByTouch}function Ls(t,e,n,i,r){var o=i.getModel();function a(t,e){for(var n=0;n<e.length;n++){var i=t.getItemGraphicEl(e[n]);i&&Ts(i)}}if(n=n||"coordinateSystem",r){if(null!=t&&e&&"none"!==e){var s=o.getSeriesByIndex(t),l=s.coordinateSystem;l&&l.master&&(l=l.master);var u=[];o.eachSeries((function(t){var r=s===t,o=t.coordinateSystem;if(o&&o.master&&(o=o.master),!("series"===n&&!r||"coordinateSystem"===n&&!(o&&l?o===l:r)||"series"===e&&r)){if(i.getViewOfSeriesModel(t).group.traverse((function(t){fs(t)})),L(e))a(t.getData(),e);else if(Y(e))for(var h=E(e),c=0;c<h.length;c++)a(t.getData(h[c]),e[h[c]]);u.push(t)}})),o.eachComponent((function(t,e){if("series"!==t){var n=i.getViewOfComponentModel(e);n&&n.blurSeries&&n.blurSeries(u,o)}}))}}else!function(t){t.getModel().eachComponent((function(e,n){("series"===e?t.getViewOfSeriesModel(n):t.getViewOfComponentModel(n)).group.traverse((function(t){gs(t)}))}))}(i)}function ks(t){k(t.getAllData(),(function(e){var n=e.data,i=e.type;n.eachItemGraphicEl((function(e,n){t.isSelected(n,i)?Cs(e):As(e)}))}))}function Ps(t){var e=[];return t.eachSeries((function(t){k(t.getAllData(),(function(n){n.data;var i=n.type,r=t.getSelectedDataIndices();if(r.length>0){var o={dataIndex:r,seriesIndex:t.seriesIndex};null!=i&&(o.dataType=i),e.push(o)}}))})),e}function Os(t,e,n){Bs(t,!0),_s(t,ws),Rs(t,e,n)}function Rs(t,e,n){var i=ns(t);null!=e?(i.focus=e,i.blurScope=n):i.focus&&(i.focus=null)}var Ns=["emphasis","blur","select"],Es={itemStyle:"getItemStyle",lineStyle:"getLineStyle",areaStyle:"getAreaStyle"};function zs(t,e,n,i){n=n||"itemStyle";for(var r=0;r<Ns.length;r++){var o=Ns[r],a=e.getModel([o,n]);t.ensureState(o).style=i?i(a):a[Es[n]]()}}function Bs(t,e){var n=!1===e,i=t;t.highDownSilentOnTouch&&(i.__highDownSilentOnTouch=t.highDownSilentOnTouch),n&&!i.__highDownDispatcher||(i.__highByOuter=i.__highByOuter||0,i.__highDownDispatcher=!n)}function Vs(t){return!(!t||!t.__highDownDispatcher)}function Fs(t){var e=t.type;return"select"===e||"unselect"===e||"toggleSelect"===e}function Gs(t){var e=t.type;return"highlight"===e||"downplay"===e}var Hs=da.CMD,Ws=[[],[],[]],Ys=Math.sqrt,Xs=Math.atan2;var Us=Math.sqrt,Zs=Math.sin,js=Math.cos,qs=Math.PI;function Ks(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function $s(t,e){return(t[0]*e[0]+t[1]*e[1])/(Ks(t)*Ks(e))}function Js(t,e){return(t[0]*e[1]<t[1]*e[0]?-1:1)*Math.acos($s(t,e))}function Qs(t,e,n,i,r,o,a,s,l,u,h){var c=l*(qs/180),p=js(c)*(t-n)/2+Zs(c)*(e-i)/2,d=-1*Zs(c)*(t-n)/2+js(c)*(e-i)/2,f=p*p/(a*a)+d*d/(s*s);f>1&&(a*=Us(f),s*=Us(f));var g=(r===o?-1:1)*Us((a*a*(s*s)-a*a*(d*d)-s*s*(p*p))/(a*a*(d*d)+s*s*(p*p)))||0,y=g*a*d/s,v=g*-s*p/a,m=(t+n)/2+js(c)*y-Zs(c)*v,_=(e+i)/2+Zs(c)*y+js(c)*v,x=Js([1,0],[(p-y)/a,(d-v)/s]),b=[(p-y)/a,(d-v)/s],w=[(-1*p-y)/a,(-1*d-v)/s],S=Js(b,w);if($s(b,w)<=-1&&(S=qs),$s(b,w)>=1&&(S=0),S<0){var M=Math.round(S/qs*1e6)/1e6;S=2*qs+M%2*qs}h.addData(u,m,_,a,s,x,S,c,o)}var tl=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/gi,el=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;var nl=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.applyTransform=function(t){},n}(Oa);function il(t){return null!=t.setData}function rl(t,e){var n=function(t){var e=new da;if(!t)return e;var n,i=0,r=0,o=i,a=r,s=da.CMD,l=t.match(tl);if(!l)return e;for(var u=0;u<l.length;u++){for(var h=l[u],c=h.charAt(0),p=void 0,d=h.match(el)||[],f=d.length,g=0;g<f;g++)d[g]=parseFloat(d[g]);for(var y=0;y<f;){var v=void 0,m=void 0,_=void 0,x=void 0,b=void 0,w=void 0,S=void 0,M=i,I=r,T=void 0,C=void 0;switch(c){case"l":i+=d[y++],r+=d[y++],p=s.L,e.addData(p,i,r);break;case"L":i=d[y++],r=d[y++],p=s.L,e.addData(p,i,r);break;case"m":i+=d[y++],r+=d[y++],p=s.M,e.addData(p,i,r),o=i,a=r,c="l";break;case"M":i=d[y++],r=d[y++],p=s.M,e.addData(p,i,r),o=i,a=r,c="L";break;case"h":i+=d[y++],p=s.L,e.addData(p,i,r);break;case"H":i=d[y++],p=s.L,e.addData(p,i,r);break;case"v":r+=d[y++],p=s.L,e.addData(p,i,r);break;case"V":r=d[y++],p=s.L,e.addData(p,i,r);break;case"C":p=s.C,e.addData(p,d[y++],d[y++],d[y++],d[y++],d[y++],d[y++]),i=d[y-2],r=d[y-1];break;case"c":p=s.C,e.addData(p,d[y++]+i,d[y++]+r,d[y++]+i,d[y++]+r,d[y++]+i,d[y++]+r),i+=d[y-2],r+=d[y-1];break;case"S":v=i,m=r,T=e.len(),C=e.data,n===s.C&&(v+=i-C[T-4],m+=r-C[T-3]),p=s.C,M=d[y++],I=d[y++],i=d[y++],r=d[y++],e.addData(p,v,m,M,I,i,r);break;case"s":v=i,m=r,T=e.len(),C=e.data,n===s.C&&(v+=i-C[T-4],m+=r-C[T-3]),p=s.C,M=i+d[y++],I=r+d[y++],i+=d[y++],r+=d[y++],e.addData(p,v,m,M,I,i,r);break;case"Q":M=d[y++],I=d[y++],i=d[y++],r=d[y++],p=s.Q,e.addData(p,M,I,i,r);break;case"q":M=d[y++]+i,I=d[y++]+r,i+=d[y++],r+=d[y++],p=s.Q,e.addData(p,M,I,i,r);break;case"T":v=i,m=r,T=e.len(),C=e.data,n===s.Q&&(v+=i-C[T-4],m+=r-C[T-3]),i=d[y++],r=d[y++],p=s.Q,e.addData(p,v,m,i,r);break;case"t":v=i,m=r,T=e.len(),C=e.data,n===s.Q&&(v+=i-C[T-4],m+=r-C[T-3]),i+=d[y++],r+=d[y++],p=s.Q,e.addData(p,v,m,i,r);break;case"A":_=d[y++],x=d[y++],b=d[y++],w=d[y++],S=d[y++],Qs(M=i,I=r,i=d[y++],r=d[y++],w,S,_,x,b,p=s.A,e);break;case"a":_=d[y++],x=d[y++],b=d[y++],w=d[y++],S=d[y++],Qs(M=i,I=r,i+=d[y++],r+=d[y++],w,S,_,x,b,p=s.A,e)}}"z"!==c&&"Z"!==c||(p=s.Z,e.addData(p),i=o,r=a),n=p}return e.toStatic(),e}(t),i=M({},e);return i.buildPath=function(t){if(il(t)){t.setData(n.data),(e=t.getContext())&&t.rebuildPath(e,1)}else{var e=t;n.rebuildPath(e,1)}},i.applyTransform=function(t){!function(t,e){var n,i,r,o,a,s,l=t.data,u=t.len(),h=Hs.M,c=Hs.C,p=Hs.L,d=Hs.R,f=Hs.A,g=Hs.Q;for(r=0,o=0;r<u;){switch(n=l[r++],o=r,i=0,n){case h:case p:i=1;break;case c:i=3;break;case g:i=2;break;case f:var y=e[4],v=e[5],m=Ys(e[0]*e[0]+e[1]*e[1]),_=Ys(e[2]*e[2]+e[3]*e[3]),x=Xs(-e[1]/_,e[0]/m);l[r]*=m,l[r++]+=y,l[r]*=_,l[r++]+=v,l[r++]*=m,l[r++]*=_,l[r++]+=x,l[r++]+=x,o=r+=2;break;case d:s[0]=l[r++],s[1]=l[r++],Pt(s,s,e),l[o++]=s[0],l[o++]=s[1],s[0]+=l[r++],s[1]+=l[r++],Pt(s,s,e),l[o++]=s[0],l[o++]=s[1]}for(a=0;a<i;a++){var b=Ws[a];b[0]=l[r++],b[1]=l[r++],Pt(b,b,e),l[o++]=b[0],l[o++]=b[1]}}t.increaseVersion()}(n,t),this.dirtyShape()},i}function ol(t,e){return new nl(rl(t,e))}var al=function(){this.cx=0,this.cy=0,this.r=0},sl=function(t){function n(e){return t.call(this,e)||this}return e(n,t),n.prototype.getDefaultShape=function(){return new al},n.prototype.buildPath=function(t,e,n){n&&t.moveTo(e.cx+e.r,e.cy),t.arc(e.cx,e.cy,e.r,0,2*Math.PI)},n}(Oa);sl.prototype.type="circle";var ll=function(){this.cx=0,this.cy=0,this.rx=0,this.ry=0},ul=function(t){function n(e){return t.call(this,e)||this}return e(n,t),n.prototype.getDefaultShape=function(){return new ll},n.prototype.buildPath=function(t,e){var n=.5522848,i=e.cx,r=e.cy,o=e.rx,a=e.ry,s=o*n,l=a*n;t.moveTo(i-o,r),t.bezierCurveTo(i-o,r-l,i-s,r-a,i,r-a),t.bezierCurveTo(i+s,r-a,i+o,r-l,i+o,r),t.bezierCurveTo(i+o,r+l,i+s,r+a,i,r+a),t.bezierCurveTo(i-s,r+a,i-o,r+l,i-o,r),t.closePath()},n}(Oa);ul.prototype.type="ellipse";var hl=Math.PI,cl=2*hl,pl=Math.sin,dl=Math.cos,fl=Math.acos,gl=Math.atan2,yl=Math.abs,vl=Math.sqrt,ml=Math.max,_l=Math.min,xl=1e-4;function bl(t,e,n,i,r,o,a){var s=t-n,l=e-i,u=(a?o:-o)/vl(s*s+l*l),h=u*l,c=-u*s,p=t+h,d=e+c,f=n+h,g=i+c,y=(p+f)/2,v=(d+g)/2,m=f-p,_=g-d,x=m*m+_*_,b=r-o,w=p*g-f*d,S=(_<0?-1:1)*vl(ml(0,b*b*x-w*w)),M=(w*_-m*S)/x,I=(-w*m-_*S)/x,T=(w*_+m*S)/x,C=(-w*m+_*S)/x,A=M-y,D=I-v,L=T-y,k=C-v;return A*A+D*D>L*L+k*k&&(M=T,I=C),{cx:M,cy:I,x01:-h,y01:-c,x11:M*(r/b-1),y11:I*(r/b-1)}}function wl(t,e){var n=ml(e.r,0),i=ml(e.r0||0,0),r=n>0;if(r||i>0){if(r||(n=i,i=0),i>n){var o=n;n=i,i=o}var a=!!e.clockwise,s=e.startAngle,l=e.endAngle,u=[s,l];pa(u,!a);var h=yl(u[0]-u[1]),c=e.cx,p=e.cy,d=e.cornerRadius||0,f=e.innerCornerRadius||0;if(n>xl)if(h>cl-xl)t.moveTo(c+n*dl(s),p+n*pl(s)),t.arc(c,p,n,s,l,!a),i>xl&&(t.moveTo(c+i*dl(l),p+i*pl(l)),t.arc(c,p,i,l,s,a));else{var g=yl(n-i)/2,y=_l(g,d),v=_l(g,f),m=v,_=y,x=n*dl(s),b=n*pl(s),w=i*dl(l),S=i*pl(l),M=void 0,I=void 0,T=void 0,C=void 0;if((y>xl||v>xl)&&(M=n*dl(l),I=n*pl(l),T=i*dl(s),C=i*pl(s),h<hl)){var A=function(t,e,n,i,r,o,a,s){var l=n-t,u=i-e,h=a-r,c=s-o,p=c*l-h*u;if(!(p*p<xl))return[t+(p=(h*(e-o)-c*(t-r))/p)*l,e+p*u]}(x,b,T,C,M,I,w,S);if(A){var D=x-A[0],L=b-A[1],k=M-A[0],P=I-A[1],O=1/pl(fl((D*k+L*P)/(vl(D*D+L*L)*vl(k*k+P*P)))/2),R=vl(A[0]*A[0]+A[1]*A[1]);m=_l(v,(i-R)/(O-1)),_=_l(y,(n-R)/(O+1))}}if(h>xl)if(_>xl){var N=bl(T,C,x,b,n,_,a),E=bl(M,I,w,S,n,_,a);t.moveTo(c+N.cx+N.x01,p+N.cy+N.y01),_<y?t.arc(c+N.cx,p+N.cy,_,gl(N.y01,N.x01),gl(E.y01,E.x01),!a):(t.arc(c+N.cx,p+N.cy,_,gl(N.y01,N.x01),gl(N.y11,N.x11),!a),t.arc(c,p,n,gl(N.cy+N.y11,N.cx+N.x11),gl(E.cy+E.y11,E.cx+E.x11),!a),t.arc(c+E.cx,p+E.cy,_,gl(E.y11,E.x11),gl(E.y01,E.x01),!a))}else t.moveTo(c+x,p+b),t.arc(c,p,n,s,l,!a);else t.moveTo(c+x,p+b);if(i>xl&&h>xl)if(m>xl){N=bl(w,S,M,I,i,-m,a),E=bl(x,b,T,C,i,-m,a);t.lineTo(c+N.cx+N.x01,p+N.cy+N.y01),m<v?t.arc(c+N.cx,p+N.cy,m,gl(N.y01,N.x01),gl(E.y01,E.x01),!a):(t.arc(c+N.cx,p+N.cy,m,gl(N.y01,N.x01),gl(N.y11,N.x11),!a),t.arc(c,p,i,gl(N.cy+N.y11,N.cx+N.x11),gl(E.cy+E.y11,E.cx+E.x11),a),t.arc(c+E.cx,p+E.cy,m,gl(E.y11,E.x11),gl(E.y01,E.x01),!a))}else t.lineTo(c+w,p+S),t.arc(c,p,i,l,s,a);else t.lineTo(c+w,p+S)}else t.moveTo(c,p);t.closePath()}}var Sl=function(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0,this.cornerRadius=0,this.innerCornerRadius=0},Ml=function(t){function n(e){return t.call(this,e)||this}return e(n,t),n.prototype.getDefaultShape=function(){return new Sl},n.prototype.buildPath=function(t,e){wl(t,e)},n.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},n}(Oa);Ml.prototype.type="sector";var Il=function(){this.cx=0,this.cy=0,this.r=0,this.r0=0},Tl=function(t){function n(e){return t.call(this,e)||this}return e(n,t),n.prototype.getDefaultShape=function(){return new Il},n.prototype.buildPath=function(t,e){var n=e.cx,i=e.cy,r=2*Math.PI;t.moveTo(n+e.r,i),t.arc(n,i,e.r,0,r,!1),t.moveTo(n+e.r0,i),t.arc(n,i,e.r0,0,r,!0)},n}(Oa);function Cl(t,e,n,i,r,o,a){var s=.5*(n-t),l=.5*(i-e);return(2*(e-n)+s+l)*a+(-3*(e-n)-2*s-l)*o+s*r+e}function Al(t,e,n){var i=e.smooth,r=e.points;if(r&&r.length>=2){if(i&&"spline"!==i){var o=function(t,e,n,i){var r,o,a,s,l=[],u=[],h=[],c=[];if(i){a=[1/0,1/0],s=[-1/0,-1/0];for(var p=0,d=t.length;p<d;p++)Ot(a,a,t[p]),Rt(s,s,t[p]);Ot(a,a,i[0]),Rt(s,s,i[1])}for(p=0,d=t.length;p<d;p++){var f=t[p];if(n)r=t[p?p-1:d-1],o=t[(p+1)%d];else{if(0===p||p===d-1){l.push(yt(t[p]));continue}r=t[p-1],o=t[p+1]}xt(u,o,r),It(u,u,e);var g=Ct(f,r),y=Ct(f,o),v=g+y;0!==v&&(g/=v,y/=v),It(h,u,-g),It(c,u,y);var m=mt([],f,h),_=mt([],f,c);i&&(Rt(m,m,a),Ot(m,m,s),Rt(_,_,a),Ot(_,_,s)),l.push(m),l.push(_)}return n&&l.push(l.shift()),l}(r,i,n,e.smoothConstraint);t.moveTo(r[0][0],r[0][1]);for(var a=r.length,s=0;s<(n?a:a-1);s++){var l=o[2*s],u=o[2*s+1],h=r[(s+1)%a];t.bezierCurveTo(l[0],l[1],u[0],u[1],h[0],h[1])}}else{"spline"===i&&(r=function(t,e){for(var n=t.length,i=[],r=0,o=1;o<n;o++)r+=Ct(t[o-1],t[o]);var a=r/2;for(a=a<n?n:a,o=0;o<a;o++){var s=o/(a-1)*(e?n:n-1),l=Math.floor(s),u=s-l,h=void 0,c=t[l%n],p=void 0,d=void 0;e?(h=t[(l-1+n)%n],p=t[(l+1)%n],d=t[(l+2)%n]):(h=t[0===l?l:l-1],p=t[l>n-2?n-1:l+1],d=t[l>n-3?n-1:l+2]);var f=u*u,g=u*f;i.push([Cl(h[0],c[0],p[0],d[0],u,f,g),Cl(h[1],c[1],p[1],d[1],u,f,g)])}return i}(r,n)),t.moveTo(r[0][0],r[0][1]);s=1;for(var c=r.length;s<c;s++)t.lineTo(r[s][0],r[s][1])}n&&t.closePath()}}Tl.prototype.type="ring";var Dl=function(){this.points=null,this.smooth=0,this.smoothConstraint=null},Ll=function(t){function n(e){return t.call(this,e)||this}return e(n,t),n.prototype.getDefaultShape=function(){return new Dl},n.prototype.buildPath=function(t,e){Al(t,e,!0)},n}(Oa);Ll.prototype.type="polygon";var kl=function(){this.points=null,this.percent=1,this.smooth=0,this.smoothConstraint=null},Pl=function(t){function n(e){return t.call(this,e)||this}return e(n,t),n.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},n.prototype.getDefaultShape=function(){return new kl},n.prototype.buildPath=function(t,e){Al(t,e,!1)},n}(Oa);Pl.prototype.type="polyline";var Ol={},Rl=function(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.percent=1},Nl=function(t){function n(e){return t.call(this,e)||this}return e(n,t),n.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},n.prototype.getDefaultShape=function(){return new Rl},n.prototype.buildPath=function(t,e){var n,i,r,o;if(this.subPixelOptimize){var a=Fa(Ol,e,this.style);n=a.x1,i=a.y1,r=a.x2,o=a.y2}else n=e.x1,i=e.y1,r=e.x2,o=e.y2;var s=e.percent;0!==s&&(t.moveTo(n,i),s<1&&(r=n*(1-s)+r*s,o=i*(1-s)+o*s),t.lineTo(r,o))},n.prototype.pointAt=function(t){var e=this.shape;return[e.x1*(1-t)+e.x2*t,e.y1*(1-t)+e.y2*t]},n}(Oa);Nl.prototype.type="line";var El=[],zl=function(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.cpx1=0,this.cpy1=0,this.percent=1};function Bl(t,e,n){var i=t.cpx2,r=t.cpy2;return null===i||null===r?[(n?bo:xo)(t.x1,t.cpx1,t.cpx2,t.x2,e),(n?bo:xo)(t.y1,t.cpy1,t.cpy2,t.y2,e)]:[(n?Ao:Co)(t.x1,t.cpx1,t.x2,e),(n?Ao:Co)(t.y1,t.cpy1,t.y2,e)]}var Vl=function(t){function n(e){return t.call(this,e)||this}return e(n,t),n.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},n.prototype.getDefaultShape=function(){return new zl},n.prototype.buildPath=function(t,e){var n=e.x1,i=e.y1,r=e.x2,o=e.y2,a=e.cpx1,s=e.cpy1,l=e.cpx2,u=e.cpy2,h=e.percent;0!==h&&(t.moveTo(n,i),null==l||null==u?(h<1&&(Lo(n,a,r,h,El),a=El[1],r=El[2],Lo(i,s,o,h,El),s=El[1],o=El[2]),t.quadraticCurveTo(a,s,r,o)):(h<1&&(Mo(n,a,l,r,h,El),a=El[1],l=El[2],r=El[3],Mo(i,s,u,o,h,El),s=El[1],u=El[2],o=El[3]),t.bezierCurveTo(a,s,l,u,r,o)))},n.prototype.pointAt=function(t){return Bl(this.shape,t,!1)},n.prototype.tangentAt=function(t){var e=Bl(this.shape,t,!0);return Tt(e,e)},n}(Oa);Vl.prototype.type="bezier-curve";var Fl=function(){this.cx=0,this.cy=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0},Gl=function(t){function n(e){return t.call(this,e)||this}return e(n,t),n.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},n.prototype.getDefaultShape=function(){return new Fl},n.prototype.buildPath=function(t,e){var n=e.cx,i=e.cy,r=Math.max(e.r,0),o=e.startAngle,a=e.endAngle,s=e.clockwise,l=Math.cos(o),u=Math.sin(o);t.moveTo(l*r+n,u*r+i),t.arc(n,i,r,o,a,!s)},n}(Oa);Gl.prototype.type="arc";var Hl=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="compound",e}return e(n,t),n.prototype._updatePathDirty=function(){for(var t=this.shape.paths,e=this.shapeChanged(),n=0;n<t.length;n++)e=e||t[n].shapeChanged();e&&this.dirtyShape()},n.prototype.beforeBrush=function(){this._updatePathDirty();for(var t=this.shape.paths||[],e=this.getGlobalScale(),n=0;n<t.length;n++)t[n].path||t[n].createPathProxy(),t[n].path.setScale(e[0],e[1],t[n].segmentIgnoreThreshold)},n.prototype.buildPath=function(t,e){for(var n=e.paths||[],i=0;i<n.length;i++)n[i].buildPath(t,n[i].shape,!0)},n.prototype.afterBrush=function(){for(var t=this.shape.paths||[],e=0;e<t.length;e++)t[e].pathUpdated()},n.prototype.getBoundingRect=function(){return this._updatePathDirty.call(this),Oa.prototype.getBoundingRect.call(this)},n}(Oa),Wl=function(){function t(t){this.colorStops=t||[]}return t.prototype.addColorStop=function(t,e){this.colorStops.push({offset:t,color:e})},t}(),Yl=function(t){function n(e,n,i,r,o,a){var s=t.call(this,o)||this;return s.x=null==e?0:e,s.y=null==n?0:n,s.x2=null==i?1:i,s.y2=null==r?0:r,s.type="linear",s.global=a||!1,s}return e(n,t),n}(Wl),Xl=function(t){function n(e,n,i,r,o){var a=t.call(this,r)||this;return a.x=null==e?.5:e,a.y=null==n?.5:n,a.r=null==i?.5:i,a.type="radial",a.global=o||!1,a}return e(n,t),n}(Wl),Ul=[0,0],Zl=[0,0],jl=new bn,ql=new bn,Kl=function(){function t(t,e){this._corners=[],this._axes=[],this._origin=[0,0];for(var n=0;n<4;n++)this._corners[n]=new bn;for(n=0;n<2;n++)this._axes[n]=new bn;t&&this.fromBoundingRect(t,e)}return t.prototype.fromBoundingRect=function(t,e){var n=this._corners,i=this._axes,r=t.x,o=t.y,a=r+t.width,s=o+t.height;if(n[0].set(r,o),n[1].set(a,o),n[2].set(a,s),n[3].set(r,s),e)for(var l=0;l<4;l++)n[l].transform(e);bn.sub(i[0],n[1],n[0]),bn.sub(i[1],n[3],n[0]),i[0].normalize(),i[1].normalize();for(l=0;l<2;l++)this._origin[l]=i[l].dot(n[0])},t.prototype.intersect=function(t,e){var n=!0,i=!e;return jl.set(1/0,1/0),ql.set(0,0),!this._intersectCheckOneSide(this,t,jl,ql,i,1)&&(n=!1,i)||!this._intersectCheckOneSide(t,this,jl,ql,i,-1)&&(n=!1,i)||i||bn.copy(e,n?jl:ql),n},t.prototype._intersectCheckOneSide=function(t,e,n,i,r,o){for(var a=!0,s=0;s<2;s++){var l=this._axes[s];if(this._getProjMinMaxOnAxis(s,t._corners,Ul),this._getProjMinMaxOnAxis(s,e._corners,Zl),Ul[1]<Zl[0]||Ul[0]>Zl[1]){if(a=!1,r)return a;var u=Math.abs(Zl[0]-Ul[1]),h=Math.abs(Ul[0]-Zl[1]);Math.min(u,h)>i.len()&&(u<h?bn.scale(i,l,-u*o):bn.scale(i,l,h*o))}else if(n){u=Math.abs(Zl[0]-Ul[1]),h=Math.abs(Ul[0]-Zl[1]);Math.min(u,h)<n.len()&&(u<h?bn.scale(n,l,u*o):bn.scale(n,l,-h*o))}}return a},t.prototype._getProjMinMaxOnAxis=function(t,e,n){for(var i=this._axes[t],r=this._origin,o=e[0].dot(i)+r[t],a=o,s=o,l=1;l<e.length;l++){var u=e[l].dot(i)+r[t];a=Math.min(u,a),s=Math.max(u,s)}n[0]=a,n[1]=s},t}(),$l=[],Jl=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.notClear=!0,e.incremental=!0,e._displayables=[],e._temporaryDisplayables=[],e._cursor=0,e}return e(n,t),n.prototype.traverse=function(t,e){t.call(e,this)},n.prototype.useStyle=function(){this.style={}},n.prototype.getCursor=function(){return this._cursor},n.prototype.innerAfterBrush=function(){this._cursor=this._displayables.length},n.prototype.clearDisplaybles=function(){this._displayables=[],this._temporaryDisplayables=[],this._cursor=0,this.markRedraw(),this.notClear=!1},n.prototype.clearTemporalDisplayables=function(){this._temporaryDisplayables=[]},n.prototype.addDisplayable=function(t,e){e?this._temporaryDisplayables.push(t):this._displayables.push(t),this.markRedraw()},n.prototype.addDisplayables=function(t,e){e=e||!1;for(var n=0;n<t.length;n++)this.addDisplayable(t[n],e)},n.prototype.getDisplayables=function(){return this._displayables},n.prototype.getTemporalDisplayables=function(){return this._temporaryDisplayables},n.prototype.eachPendingDisplayable=function(t){for(var e=this._cursor;e<this._displayables.length;e++)t&&t(this._displayables[e]);for(e=0;e<this._temporaryDisplayables.length;e++)t&&t(this._temporaryDisplayables[e])},n.prototype.update=function(){this.updateTransform();for(var t=this._cursor;t<this._displayables.length;t++){(e=this._displayables[t]).parent=this,e.update(),e.parent=null}for(t=0;t<this._temporaryDisplayables.length;t++){var e;(e=this._temporaryDisplayables[t]).parent=this,e.update(),e.parent=null}},n.prototype.getBoundingRect=function(){if(!this._rect){for(var t=new Ln(1/0,1/0,-1/0,-1/0),e=0;e<this._displayables.length;e++){var n=this._displayables[e],i=n.getBoundingRect().clone();n.needLocalTransform()&&i.applyTransform(n.getLocalTransform($l)),t.union(i)}this._rect=t}return this._rect},n.prototype.contain=function(t,e){var n=this.transformCoordToLocal(t,e);if(this.getBoundingRect().contain(n[0],n[1]))for(var i=0;i<this._displayables.length;i++){if(this._displayables[i].contain(t,e))return!0}return!1},n}(so),Ql=Math.max,tu=Math.min,eu={};function nu(t){return Oa.extend(t)}var iu=function(t,n){var i=rl(t,n);return function(t){function n(e){var n=t.call(this,e)||this;return n.applyTransform=i.applyTransform,n.buildPath=i.buildPath,n}return e(n,t),n}(nl)};function ru(t,e){return iu(t,e)}function ou(t,e){eu[t]=e}function au(t){if(eu.hasOwnProperty(t))return eu[t]}function su(t,e,n,i){var r=ol(t,e);return n&&("center"===i&&(n=uu(n,r.getBoundingRect())),cu(r,n)),r}function lu(t,e,n){var i=new Ba({style:{image:t,x:e.x,y:e.y,width:e.width,height:e.height},onload:function(t){if("center"===n){var r={width:t.width,height:t.height};i.setStyle(uu(e,r))}}});return i}function uu(t,e){var n,i=e.width/e.height,r=t.height*i;return n=r<=t.width?t.height:(r=t.width)/i,{x:t.x+t.width/2-r/2,y:t.y+t.height/2-n/2,width:r,height:n}}var hu=function(t,e){for(var n=[],i=t.length,r=0;r<i;r++){var o=t[r];o.path||o.createPathProxy(),o.shapeChanged()&&o.buildPath(o.path,o.shape,!0),n.push(o.path)}var a=new Oa(e);return a.createPathProxy(),a.buildPath=function(t){if(il(t)){t.appendPath(n);var e=t.getContext();e&&t.rebuildPath(e,1)}},a};function cu(t,e){if(t.applyTransform){var n=t.getBoundingRect().calculateTransform(e);t.applyTransform(n)}}var pu=Ha;function du(t,e,n,i,r,o,a){var s,l=!1;"function"==typeof r?(a=o,o=r,r=null):Y(r)&&(o=r.cb,a=r.during,l=r.isFrom,s=r.removeOpt,r=r.dataIndex);var u,h="update"===t,c="remove"===t;if(i&&i.ecModel){var p=i.ecModel.getUpdatePayload();u=p&&p.animation}var d=i&&i.isAnimationEnabled();if(c||e.stopAnimation("remove"),d){var f=void 0,g=void 0,y=void 0;u?(f=u.duration||0,g=u.easing||"cubicOut",y=u.delay||0):c?(f=Q((s=s||{}).duration,200),g=Q(s.easing,"cubicOut"),y=0):(f=i.getShallow(h?"animationDurationUpdate":"animationDuration"),g=i.getShallow(h?"animationEasingUpdate":"animationEasing"),y=i.getShallow(h?"animationDelayUpdate":"animationDelay")),"function"==typeof y&&(y=y(r,i.getAnimationDelayParams?i.getAnimationDelayParams(e,r):null)),"function"==typeof f&&(f=f(r)),f>0?l?e.animateFrom(n,{duration:f,delay:y||0,easing:g,done:o,force:!!o||!!a,scope:t,during:a}):e.animateTo(n,{duration:f,delay:y||0,easing:g,done:o,force:!!o||!!a,setToFinal:!0,scope:t,during:a}):(e.stopAnimation(),!l&&e.attr(n),o&&o())}else e.stopAnimation(),!l&&e.attr(n),a&&a(1),o&&o()}function fu(t,e,n,i,r,o){du("update",t,e,n,i,r,o)}function gu(t,e,n,i,r,o){du("init",t,e,n,i,r,o)}function yu(t,e,n,i,r,o){_u(t)||du("remove",t,e,n,i,r,o)}function vu(t,e,n,i){t.removeTextContent(),t.removeTextGuideLine(),yu(t,{style:{opacity:0}},e,n,i)}function mu(t,e,n){function i(){t.parent&&t.parent.remove(t)}t.isGroup?t.traverse((function(t){t.isGroup||vu(t,e,n,i)})):vu(t,e,n,i)}function _u(t){if(!t.__zr)return!0;for(var e=0;e<t.animators.length;e++){if("remove"===t.animators[e].scope)return!0}return!1}function xu(t,e){for(var n=pe([]);t&&t!==e;)fe(n,t.getLocalTransform(),n),t=t.parent;return n}function bu(t,e,n){return e&&!L(e)&&(e=Ce.getLocalTransform(e)),n&&(e=me([],e)),Pt([],t,e)}function wu(t,e,n){var i=0===e[4]||0===e[5]||0===e[0]?1:Math.abs(2*e[4]/e[0]),r=0===e[4]||0===e[5]||0===e[2]?1:Math.abs(2*e[4]/e[2]),o=["left"===t?-i:"right"===t?i:0,"top"===t?-r:"bottom"===t?r:0];return o=bu(o,e,n),Math.abs(o[0])>Math.abs(o[1])?o[0]>0?"right":"left":o[1]>0?"bottom":"top"}function Su(t){return!t.isGroup}function Mu(t,e,n){if(t&&e){var i,r=(i={},t.traverse((function(t){Su(t)&&t.anid&&(i[t.anid]=t)})),i);e.traverse((function(t){if(Su(t)&&t.anid){var e=r[t.anid];if(e){var i=o(t);t.attr(o(e)),fu(t,i,n,ns(t).dataIndex)}}}))}function o(t){var e={x:t.x,y:t.y,rotation:t.rotation};return function(t){return null!=t.shape}(t)&&(e.shape=M({},t.shape)),e}}function Iu(t,e){return P(t,(function(t){var n=t[0];n=Ql(n,e.x),n=tu(n,e.x+e.width);var i=t[1];return i=Ql(i,e.y),[n,i=tu(i,e.y+e.height)]}))}function Tu(t,e){var n=Ql(t.x,e.x),i=tu(t.x+t.width,e.x+e.width),r=Ql(t.y,e.y),o=tu(t.y+t.height,e.y+e.height);if(i>=n&&o>=r)return{x:n,y:r,width:i-n,height:o-r}}function Cu(t,e,n){var i=M({rectHover:!0},e),r=i.style={strokeNoScale:!0};if(n=n||{x:-1,y:-1,width:2,height:2},t)return 0===t.indexOf("image://")?(r.image=t.slice(8),I(r,n),new Ba(i)):su(t.replace("path://",""),i,n,"center")}function Au(t,e,n,i,r){for(var o=0,a=r[r.length-1];o<r.length;o++){var s=r[o];if(Du(t,e,n,i,s[0],s[1],a[0],a[1]))return!0;a=s}}function Du(t,e,n,i,r,o,a,s){var l,u=n-t,h=i-e,c=a-r,p=s-o,d=Lu(c,p,u,h);if((l=d)<=1e-6&&l>=-1e-6)return!1;var f=t-r,g=e-o,y=Lu(f,g,u,h)/d;if(y<0||y>1)return!1;var v=Lu(f,g,c,p)/d;return!(v<0||v>1)}function Lu(t,e,n,i){return t*i-n*e}ou("circle",sl),ou("ellipse",ul),ou("sector",Ml),ou("ring",Tl),ou("polygon",Ll),ou("polyline",Pl),ou("rect",Xa),ou("line",Nl),ou("bezierCurve",Vl),ou("arc",Gl);var ku=Object.freeze({__proto__:null,extendShape:nu,extendPath:ru,registerShape:ou,getShapeClass:au,makePath:su,makeImage:lu,mergePath:hu,resizePath:cu,subPixelOptimizeLine:function(t){return Fa(t.shape,t.shape,t.style),t},subPixelOptimizeRect:function(t){return Ga(t.shape,t.shape,t.style),t},subPixelOptimize:pu,updateProps:fu,initProps:gu,removeElement:yu,removeElementWithFadeOut:mu,isElementRemoved:_u,getTransform:xu,applyTransform:bu,transformDirection:wu,groupTransition:Mu,clipPointsByRect:Iu,clipRectByRect:Tu,createIcon:Cu,linePolygonIntersect:Au,lineLineIntersect:Du,Group:Li,Image:Ba,Text:ja,Circle:sl,Ellipse:ul,Sector:Ml,Ring:Tl,Polygon:Ll,Polyline:Pl,Rect:Xa,Line:Nl,BezierCurve:Vl,Arc:Gl,IncrementalDisplayable:Jl,CompoundPath:Hl,LinearGradient:Yl,RadialGradient:Xl,BoundingRect:Ln,OrientedBoundingRect:Kl,Point:bn,Path:Oa}),Pu={};function Ou(t,e){for(var n=0;n<as.length;n++){var i=as[n],r=e[i],o=t.ensureState(i);o.style=o.style||{},o.style.text=r}var a=t.currentStates.slice();t.clearStates(!0),t.setStyle({text:e.normal}),t.useStates(a,!0)}function Ru(t,e,n){var i,r=t.labelFetcher,o=t.labelDataIndex,a=t.labelDimIndex,s=e.normal;r&&(i=r.getFormattedLabel(o,"normal",null,a,s&&s.get("formatter"),null!=n?{interpolatedValue:n}:null)),null==i&&(i=F(t.defaultText)?t.defaultText(o,t,n):t.defaultText);for(var l={normal:i},u=0;u<as.length;u++){var h=as[u],c=e[h];l[h]=Q(r?r.getFormattedLabel(o,h,null,a,c&&c.get("formatter")):null,i)}return l}function Nu(t,e,n,i){n=n||Pu;for(var r=t instanceof ja,o=!1,a=0;a<ss.length;a++){if((p=e[ss[a]])&&p.getShallow("show")){o=!0;break}}var s=r?t:t.getTextContent();if(o){r||(s||(s=new ja,t.setTextContent(s)),t.stateProxy&&(s.stateProxy=t.stateProxy));var l=Ru(n,e),u=e.normal,h=!!u.getShallow("show"),c=zu(u,i&&i.normal,n,!1,!r);c.text=l.normal,r||t.setTextConfig(Bu(u,n,!1));for(a=0;a<as.length;a++){var p,d=as[a];if(p=e[d]){var f=s.ensureState(d),g=!!Q(p.getShallow("show"),h);if(g!==h&&(f.ignore=!g),f.style=zu(p,i&&i[d],n,!0,!r),f.style.text=l[d],!r)t.ensureState(d).textConfig=Bu(p,n,!0)}}s.silent=!!u.getShallow("silent"),null!=s.style.x&&(c.x=s.style.x),null!=s.style.y&&(c.y=s.style.y),s.ignore=!h,s.useStyle(c),s.dirty(),n.enableTextSetter&&(Yu(s).setLabelText=function(t){var i=Ru(n,e,t);Ou(s,i)})}else s&&(s.ignore=!0);t.dirty()}function Eu(t,e){e=e||"label";for(var n={normal:t.getModel(e)},i=0;i<as.length;i++){var r=as[i];n[r]=t.getModel([r,e])}return n}function zu(t,e,n,i,r){var o={};return function(t,e,n,i,r){n=n||Pu;var o,a=e.ecModel,s=a&&a.option.textStyle,l=function(t){var e;for(;t&&t!==t.ecModel;){var n=(t.option||Pu).rich;if(n){e=e||{};for(var i=E(n),r=0;r<i.length;r++){e[i[r]]=1}}t=t.parentModel}return e}(e);if(l)for(var u in o={},l)if(l.hasOwnProperty(u)){var h=e.getModel(["rich",u]);Hu(o[u]={},h,s,n,i,r,!1,!0)}o&&(t.rich=o);var c=e.get("overflow");c&&(t.overflow=c);var p=e.get("minMargin");null!=p&&(t.margin=p);Hu(t,e,s,n,i,r,!0,!1)}(o,t,n,i,r),e&&M(o,e),o}function Bu(t,e,n){e=e||{};var i,r={},o=t.getShallow("rotate"),a=Q(t.getShallow("distance"),n?null:5),s=t.getShallow("offset");return"outside"===(i=t.getShallow("position")||(n?null:"inside"))&&(i=e.defaultOutsidePosition||"top"),null!=i&&(r.position=i),null!=s&&(r.offset=s),null!=o&&(o*=Math.PI/180,r.rotation=o),null!=a&&(r.distance=a),r.outsideFill="inherit"===t.get("color")?e.inheritColor||null:"auto",r}var Vu=["fontStyle","fontWeight","fontSize","fontFamily","textShadowColor","textShadowBlur","textShadowOffsetX","textShadowOffsetY"],Fu=["align","lineHeight","width","height","tag","verticalAlign"],Gu=["padding","borderWidth","borderRadius","borderDashOffset","backgroundColor","borderColor","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"];function Hu(t,e,n,i,r,o,a,s){n=!r&&n||Pu;var l=i&&i.inheritColor,u=e.getShallow("color"),h=e.getShallow("textBorderColor"),c=Q(e.getShallow("opacity"),n.opacity);"inherit"!==u&&"auto"!==u||(u=l||null),"inherit"!==h&&"auto"!==h||(h=l||null),o||(u=u||n.color,h=h||n.textBorderColor),null!=u&&(t.fill=u),null!=h&&(t.stroke=h);var p=Q(e.getShallow("textBorderWidth"),n.textBorderWidth);null!=p&&(t.lineWidth=p);var d=Q(e.getShallow("textBorderType"),n.textBorderType);null!=d&&(t.lineDash=d);var f=Q(e.getShallow("textBorderDashOffset"),n.textBorderDashOffset);null!=f&&(t.lineDashOffset=f),r||null!=c||s||(c=i&&i.defaultOpacity),null!=c&&(t.opacity=c),r||o||null==t.fill&&i.inheritColor&&(t.fill=i.inheritColor);for(var g=0;g<Vu.length;g++){var y=Vu[g];null!=(m=Q(e.getShallow(y),n[y]))&&(t[y]=m)}for(g=0;g<Fu.length;g++){y=Fu[g];null!=(m=e.getShallow(y))&&(t[y]=m)}if(null==t.verticalAlign){var v=e.getShallow("baseline");null!=v&&(t.verticalAlign=v)}if(!a||!i.disableBox){for(g=0;g<Gu.length;g++){var m;y=Gu[g];null!=(m=e.getShallow(y))&&(t[y]=m)}var _=e.getShallow("borderType");null!=_&&(t.borderDash=_),"auto"!==t.backgroundColor&&"inherit"!==t.backgroundColor||!l||(t.backgroundColor=l),"auto"!==t.borderColor&&"inherit"!==t.borderColor||!l||(t.borderColor=l)}}function Wu(t,e){var n=e&&e.getModel("textStyle");return rt([t.fontStyle||n&&n.getShallow("fontStyle")||"",t.fontWeight||n&&n.getShallow("fontWeight")||"",(t.fontSize||n&&n.getShallow("fontSize")||12)+"px",t.fontFamily||n&&n.getShallow("fontFamily")||"sans-serif"].join(" "))}var Yu=_r();function Xu(t,e,n,i){if(t){var r=Yu(t);r.prevValue=r.value,r.value=n;var o=e.normal;r.valueAnimation=o.get("valueAnimation"),r.valueAnimation&&(r.precision=o.get("precision"),r.defaultInterpolatedText=i,r.statesModels=e)}}function Uu(t,e,n,i,r){var o=Yu(t);if(o.valueAnimation){var a=o.defaultInterpolatedText,s=Q(o.interpolatedValue,o.prevValue),l=o.value;(null==s?gu:fu)(t,{},i,e,null,(function(i){var u=Cr(n,o.precision,s,l,i);o.interpolatedValue=1===i?null:u;var h=Ru({labelDataIndex:e,labelFetcher:r,defaultText:a?a(u):u+""},o.statesModels,u);Ou(t,h)}))}}var Zu,ju,qu=["textStyle","color"],Ku=new ja,$u=function(){function t(){}return t.prototype.getTextColor=function(t){var e=this.ecModel;return this.getShallow("color")||(!t&&e?e.get(qu):null)},t.prototype.getFont=function(){return Wu({fontStyle:this.getShallow("fontStyle"),fontWeight:this.getShallow("fontWeight"),fontSize:this.getShallow("fontSize"),fontFamily:this.getShallow("fontFamily")},this.ecModel)},t.prototype.getTextRect=function(t){return Ku.useStyle({text:t,fontStyle:this.getShallow("fontStyle"),fontWeight:this.getShallow("fontWeight"),fontSize:this.getShallow("fontSize"),fontFamily:this.getShallow("fontFamily"),verticalAlign:this.getShallow("verticalAlign")||this.getShallow("baseline"),padding:this.getShallow("padding"),lineHeight:this.getShallow("lineHeight"),rich:this.getShallow("rich")}),Ku.update(),Ku.getBoundingRect()},t}(),Ju=[["lineWidth","width"],["stroke","color"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"],["lineDash","type"],["lineDashOffset","dashOffset"],["lineCap","cap"],["lineJoin","join"],["miterLimit"]],Qu=zr(Ju),th=function(){function t(){}return t.prototype.getLineStyle=function(t){return Qu(this,t)},t}(),eh=[["fill","color"],["stroke","borderColor"],["lineWidth","borderWidth"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"],["lineDash","borderType"],["lineDashOffset","borderDashOffset"],["lineCap","borderCap"],["lineJoin","borderJoin"],["miterLimit","borderMiterLimit"]],nh=zr(eh),ih=function(){function t(){}return t.prototype.getItemStyle=function(t,e){return nh(this,t,e)},t}(),rh=function(){function t(t,e,n){this.parentModel=e,this.ecModel=n,this.option=t}return t.prototype.init=function(t,e,n){for(var i=[],r=3;r<arguments.length;r++)i[r-3]=arguments[r]},t.prototype.mergeOption=function(t,e){w(this.option,t,!0)},t.prototype.get=function(t,e){return null==t?this.option:this._doGet(this.parsePath(t),!e&&this.parentModel)},t.prototype.getShallow=function(t,e){var n=this.option,i=null==n?n:n[t];if(null==i&&!e){var r=this.parentModel;r&&(i=r.getShallow(t))}return i},t.prototype.getModel=function(e,n){var i=null!=e,r=i?this.parsePath(e):null;return new t(i?this._doGet(r):this.option,n=n||this.parentModel&&this.parentModel.getModel(this.resolveParentPath(r)),this.ecModel)},t.prototype.isEmpty=function(){return null==this.option},t.prototype.restoreData=function(){},t.prototype.clone=function(){return new(0,this.constructor)(b(this.option))},t.prototype.parsePath=function(t){return"string"==typeof t?t.split("."):t},t.prototype.resolveParentPath=function(t){return t},t.prototype.isAnimationEnabled=function(){if(!o.node&&this.option){if(null!=this.option.animation)return!!this.option.animation;if(this.parentModel)return this.parentModel.isAnimationEnabled()}},t.prototype._doGet=function(t,e){var n=this.option;if(!t)return n;for(var i=0;i<t.length&&(!t[i]||null!=(n=n&&"object"==typeof n?n[t[i]]:null));i++);return null==n&&e&&(n=e._doGet(this.resolveParentPath(t),e.parentModel)),n},t}();Lr(rh),Zu=rh,ju=["__\0is_clz",Or++].join("_"),Zu.prototype[ju]=!0,Zu.isInstance=function(t){return!(!t||!t[ju])},D(rh,th),D(rh,ih),D(rh,Vr),D(rh,$u);var oh=Math.round(10*Math.random());function ah(t){return[t||"",oh++].join("_")}function sh(t,e){return w(w({},t,!0),e,!0)}var lh={},uh={},hh=o.domSupported&&(document.documentElement.lang||navigator.language||navigator.browserLanguage).toUpperCase().indexOf("ZH")>-1?"ZH":"EN";function ch(t,e){t=t.toUpperCase(),uh[t]=new rh(e),lh[t]=e}ch("EN",{time:{month:["January","February","March","April","May","June","July","August","September","October","November","December"],monthAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayOfWeekAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},legend:{selector:{all:"All",inverse:"Inv"}},toolbox:{brush:{title:{rect:"Box Select",polygon:"Lasso Select",lineX:"Horizontally Select",lineY:"Vertically Select",keep:"Keep Selections",clear:"Clear Selections"}},dataView:{title:"Data View",lang:["Data View","Close","Refresh"]},dataZoom:{title:{zoom:"Zoom",back:"Zoom Reset"}},magicType:{title:{line:"Switch to Line Chart",bar:"Switch to Bar Chart",stack:"Stack",tiled:"Tile"}},restore:{title:"Restore"},saveAsImage:{title:"Save as Image",lang:["Right Click to Save Image"]}},series:{typeNames:{pie:"Pie chart",bar:"Bar chart",line:"Line chart",scatter:"Scatter plot",effectScatter:"Ripple scatter plot",radar:"Radar chart",tree:"Tree",treemap:"Treemap",boxplot:"Boxplot",candlestick:"Candlestick",k:"K line chart",heatmap:"Heat map",map:"Map",parallel:"Parallel coordinate map",lines:"Line graph",graph:"Relationship graph",sankey:"Sankey diagram",funnel:"Funnel chart",gauge:"Guage",pictorialBar:"Pictorial bar",themeRiver:"Theme River Map",sunburst:"Sunburst"}},aria:{general:{withTitle:'This is a chart about "{title}"',withoutTitle:"This is a chart"},series:{single:{prefix:"",withName:" with type {seriesType} named {seriesName}.",withoutName:" with type {seriesType}."},multiple:{prefix:". It consists of {seriesCount} series count.",withName:" The {seriesId} series is a {seriesType} representing {seriesName}.",withoutName:" The {seriesId} series is a {seriesType}.",separator:{middle:"",end:""}}},data:{allData:"The data is as follows: ",partialData:"The first {displayCnt} items are: ",withName:"the data for {name} is {value}",withoutName:"{value}",separator:{middle:", ",end:". "}}}}),ch("ZH",{time:{month:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthAbbr:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayOfWeekAbbr:["日","一","二","三","四","五","六"]},legend:{selector:{all:"全选",inverse:"反选"}},toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}});var ph={year:"{yyyy}",month:"{MMM}",day:"{d}",hour:"{HH}:{mm}",minute:"{HH}:{mm}",second:"{HH}:{mm}:{ss}",millisecond:"{hh}:{mm}:{ss} {SSS}",none:"{yyyy}-{MM}-{dd} {hh}:{mm}:{ss} {SSS}"},dh={year:"{yyyy}",month:"{yyyy}-{MM}",day:"{yyyy}-{MM}-{dd}",hour:"{yyyy}-{MM}-{dd} "+ph.hour,minute:"{yyyy}-{MM}-{dd} "+ph.minute,second:"{yyyy}-{MM}-{dd} "+ph.second,millisecond:ph.none},fh=["year","month","day","hour","minute","second","millisecond"],gh=["year","half-year","quarter","month","week","half-week","day","half-day","quarter-day","hour","minute","second","millisecond"];function yh(t,e){return"0000".substr(0,e-(t+="").length)+t}function vh(t){switch(t){case"half-year":case"quarter":return"month";case"week":case"half-week":return"day";case"half-day":case"quarter-day":return"hour";default:return t}}function mh(t){return t===vh(t)}function _h(t,e,n,i){var r=qi(t),o=r[wh(n)](),a=r[Sh(n)]()+1,s=Math.floor((a-1)/4)+1,l=r[Mh(n)](),u=r["get"+(n?"UTC":"")+"Day"](),h=r[Ih(n)](),c=(h-1)%12+1,p=r[Th(n)](),d=r[Ch(n)](),f=r[Ah(n)](),g=(i instanceof rh?i:function(t){return uh[t]}(i||hh)||uh.EN).getModel("time"),y=g.get("month"),v=g.get("monthAbbr"),m=g.get("dayOfWeek"),_=g.get("dayOfWeekAbbr");return(e||"").replace(/{yyyy}/g,o+"").replace(/{yy}/g,o%100+"").replace(/{Q}/g,s+"").replace(/{MMMM}/g,y[a-1]).replace(/{MMM}/g,v[a-1]).replace(/{MM}/g,yh(a,2)).replace(/{M}/g,a+"").replace(/{dd}/g,yh(l,2)).replace(/{d}/g,l+"").replace(/{eeee}/g,m[u]).replace(/{ee}/g,_[u]).replace(/{e}/g,u+"").replace(/{HH}/g,yh(h,2)).replace(/{H}/g,h+"").replace(/{hh}/g,yh(c+"",2)).replace(/{h}/g,c+"").replace(/{mm}/g,yh(p,2)).replace(/{m}/g,p+"").replace(/{ss}/g,yh(d,2)).replace(/{s}/g,d+"").replace(/{SSS}/g,yh(f,3)).replace(/{S}/g,f+"")}function xh(t,e){var n=qi(t),i=n[Sh(e)]()+1,r=n[Mh(e)](),o=n[Ih(e)](),a=n[Th(e)](),s=n[Ch(e)](),l=0===n[Ah(e)](),u=l&&0===s,h=u&&0===a,c=h&&0===o,p=c&&1===r;return p&&1===i?"year":p?"month":c?"day":h?"hour":u?"minute":l?"second":"millisecond"}function bh(t,e,n){var i="number"==typeof t?qi(t):t;switch(e=e||xh(t,n)){case"year":return i[wh(n)]();case"half-year":return i[Sh(n)]()>=6?1:0;case"quarter":return Math.floor((i[Sh(n)]()+1)/4);case"month":return i[Sh(n)]();case"day":return i[Mh(n)]();case"half-day":return i[Ih(n)]()/24;case"hour":return i[Ih(n)]();case"minute":return i[Th(n)]();case"second":return i[Ch(n)]();case"millisecond":return i[Ah(n)]()}}function wh(t){return t?"getUTCFullYear":"getFullYear"}function Sh(t){return t?"getUTCMonth":"getMonth"}function Mh(t){return t?"getUTCDate":"getDate"}function Ih(t){return t?"getUTCHours":"getHours"}function Th(t){return t?"getUTCMinutes":"getMinutes"}function Ch(t){return t?"getUTCSeconds":"getSeconds"}function Ah(t){return t?"getUTCSeconds":"getSeconds"}function Dh(t){return t?"setUTCFullYear":"setFullYear"}function Lh(t){return t?"setUTCMonth":"setMonth"}function kh(t){return t?"setUTCDate":"setDate"}function Ph(t){return t?"setUTCHours":"setHours"}function Oh(t){return t?"setUTCMinutes":"setMinutes"}function Rh(t){return t?"setUTCSeconds":"setSeconds"}function Nh(t){return t?"setUTCSeconds":"setSeconds"}function Eh(t){if(!nr(t))return G(t)?t:"-";var e=(t+"").split(".");return e[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(e.length>1?"."+e[1]:"")}function zh(t,e){return t=(t||"").toLowerCase().replace(/-(.)/g,(function(t,e){return e.toUpperCase()})),e&&t&&(t=t.charAt(0).toUpperCase()+t.slice(1)),t}var Bh=nt,Vh=/([&<>"'])/g,Fh={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function Gh(t){return null==t?"":(t+"").replace(Vh,(function(t,e){return Fh[e]}))}function Hh(t,e,n){function i(t){return t&&rt(t)?t:"-"}function r(t){return!(null==t||isNaN(t)||!isFinite(t))}var o="time"===e,a=t instanceof Date;if(o||a){var s=o?qi(t):t;if(!isNaN(+s))return _h(s,"yyyy-MM-dd hh:mm:ss",n);if(a)return"-"}if("ordinal"===e)return H(t)?i(t):W(t)&&r(t)?t+"":"-";var l=er(t);return r(l)?Eh(l):H(t)?i(t):"-"}var Wh=["a","b","c","d","e","f","g"],Yh=function(t,e){return"{"+t+(null==e?"":e)+"}"};function Xh(t,e,n){V(e)||(e=[e]);var i=e.length;if(!i)return"";for(var r=e[0].$vars||[],o=0;o<r.length;o++){var a=Wh[o];t=t.replace(Yh(a),Yh(a,0))}for(var s=0;s<i;s++)for(var l=0;l<r.length;l++){var u=e[s][r[l]];t=t.replace(Yh(Wh[l],s),n?Gh(u):u)}return t}function Uh(t,e){var n=G(t)?{color:t,extraCssText:e}:t||{},i=n.color,r=n.type;e=n.extraCssText;var o=n.renderMode||"html";return i?"html"===o?"subItem"===r?'<span style="display:inline-block;vertical-align:middle;margin-right:8px;margin-left:3px;border-radius:4px;width:4px;height:4px;background-color:'+Gh(i)+";"+(e||"")+'"></span>':'<span style="display:inline-block;margin-right:4px;border-radius:10px;width:10px;height:10px;background-color:'+Gh(i)+";"+(e||"")+'"></span>':{renderMode:o,content:"{"+(n.markerId||"markerX")+"|}  ",style:"subItem"===r?{width:4,height:4,borderRadius:2,backgroundColor:i}:{width:10,height:10,borderRadius:5,backgroundColor:i}}:""}function Zh(t,e){return e=e||"transparent",G(t)?t:Y(t)&&t.colorStops&&(t.colorStops[0]||{}).color||e}function jh(t,e){if("_blank"===e||"blank"===e){var n=window.open();n.opener=null,n.location.href=t}else window.open(t,e)}var qh=k,Kh=["left","right","top","bottom","width","height"],$h=[["width","left","right"],["height","top","bottom"]];function Jh(t,e,n,i,r){var o=0,a=0;null==i&&(i=1/0),null==r&&(r=1/0);var s=0;e.eachChild((function(l,u){var h,c,p=l.getBoundingRect(),d=e.childAt(u+1),f=d&&d.getBoundingRect();if("horizontal"===t){var g=p.width+(f?-f.x+p.x:0);(h=o+g)>i||l.newline?(o=0,h=g,a+=s+n,s=p.height):s=Math.max(s,p.height)}else{var y=p.height+(f?-f.y+p.y:0);(c=a+y)>r||l.newline?(o+=s+n,a=0,c=y,s=p.width):s=Math.max(s,p.width)}l.newline||(l.x=o,l.y=a,l.markRedraw(),"horizontal"===t?o=h+n:a=c+n)}))}var Qh=Jh;B(Jh,"vertical"),B(Jh,"horizontal");function tc(t,e,n){n=Bh(n||0);var i=e.width,r=e.height,o=Vi(t.left,i),a=Vi(t.top,r),s=Vi(t.right,i),l=Vi(t.bottom,r),u=Vi(t.width,i),h=Vi(t.height,r),c=n[2]+n[0],p=n[1]+n[3],d=t.aspect;switch(isNaN(u)&&(u=i-s-p-o),isNaN(h)&&(h=r-l-c-a),null!=d&&(isNaN(u)&&isNaN(h)&&(d>i/r?u=.8*i:h=.8*r),isNaN(u)&&(u=d*h),isNaN(h)&&(h=u/d)),isNaN(o)&&(o=i-s-u-p),isNaN(a)&&(a=r-l-h-c),t.left||t.right){case"center":o=i/2-u/2-n[3];break;case"right":o=i-u-p}switch(t.top||t.bottom){case"middle":case"center":a=r/2-h/2-n[0];break;case"bottom":a=r-h-c}o=o||0,a=a||0,isNaN(u)&&(u=i-p-o-(s||0)),isNaN(h)&&(h=r-c-a-(l||0));var f=new Ln(o+n[3],a+n[0],u,h);return f.margin=n,f}function ec(t,e,n,i,r){var o=!r||!r.hv||r.hv[0],a=!r||!r.hv||r.hv[1],s=r&&r.boundingMode||"all";if(o||a){var l;if("raw"===s)l="group"===t.type?new Ln(0,0,+e.width||0,+e.height||0):t.getBoundingRect();else if(l=t.getBoundingRect(),t.needLocalTransform()){var u=t.getLocalTransform();(l=l.clone()).applyTransform(u)}var h=tc(I({width:l.width,height:l.height},e),n,i),c=o?h.x-l.x:0,p=a?h.y-l.y:0;"raw"===s?(t.x=c,t.y=p):(t.x+=c,t.y+=p),t.markRedraw()}}function nc(t){var e=t.layoutMode||t.constructor.layoutMode;return Y(e)?e:e?{type:e}:null}function ic(t,e,n){var i=n&&n.ignoreSize;!V(i)&&(i=[i,i]);var r=a($h[0],0),o=a($h[1],1);function a(n,r){var o={},a=0,u={},h=0;if(qh(n,(function(e){u[e]=t[e]})),qh(n,(function(t){s(e,t)&&(o[t]=u[t]=e[t]),l(o,t)&&a++,l(u,t)&&h++})),i[r])return l(e,n[1])?u[n[2]]=null:l(e,n[2])&&(u[n[1]]=null),u;if(2!==h&&a){if(a>=2)return o;for(var c=0;c<n.length;c++){var p=n[c];if(!s(o,p)&&s(t,p)){o[p]=t[p];break}}return o}return u}function s(t,e){return t.hasOwnProperty(e)}function l(t,e){return null!=t[e]&&"auto"!==t[e]}function u(t,e,n){qh(t,(function(t){e[t]=n[t]}))}u($h[0],t,r),u($h[1],t,o)}function rc(t){return oc({},t)}function oc(t,e){return e&&t&&qh(Kh,(function(n){e.hasOwnProperty(n)&&(t[n]=e[n])})),t}var ac=_r(),sc=function(t){function n(e,n,i){var r=t.call(this,e,n,i)||this;return r.uid=ah("ec_cpt_model"),r}return e(n,t),n.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n)},n.prototype.mergeDefaultAndTheme=function(t,e){var n=nc(this),i=n?rc(t):{};w(t,e.getTheme().get(this.mainType)),w(t,this.getDefaultOption()),n&&ic(t,i,n)},n.prototype.mergeOption=function(t,e){w(this.option,t,!0);var n=nc(this);n&&ic(this.option,t,n)},n.prototype.optionUpdated=function(t,e){},n.prototype.getDefaultOption=function(){var t=this.constructor;if(!function(t){return!(!t||!t.___EC__EXTENDED_CLASS___)}(t))return t.defaultOption;var e=ac(this);if(!e.defaultOption){for(var n=[],i=t;i;){var r=i.prototype.defaultOption;r&&n.push(r),i=i.superClass}for(var o={},a=n.length-1;a>=0;a--)o=w(o,n[a],!0);e.defaultOption=o}return e.defaultOption},n.prototype.getReferringComponents=function(t,e){var n=t+"Index",i=t+"Id";return Mr(this.ecModel,t,{index:this.get(n,!0),id:this.get(i,!0)},e)},n.prototype.getBoxLayoutParams=function(){var t=this;return{left:t.get("left"),top:t.get("top"),right:t.get("right"),bottom:t.get("bottom"),width:t.get("width"),height:t.get("height")}},n.protoInitialize=function(){var t=n.prototype;t.type="component",t.id="",t.name="",t.mainType="",t.subType="",t.componentIndex=0}(),n}(rh);Pr(sc,rh),Er(sc),function(t){var e={};t.registerSubTypeDefaulter=function(t,n){var i=Dr(t);e[i.main]=n},t.determineSubType=function(n,i){var r=i.type;if(!r){var o=Dr(n).main;t.hasSubTypes(n)&&e[o]&&(r=e[o](i))}return r}}(sc),function(t,e){function n(t,e){return t[e]||(t[e]={predecessor:[],successor:[]}),t[e]}t.topologicalTravel=function(t,i,r,o){if(t.length){var a=function(t){var i={},r=[];return k(t,(function(o){var a=n(i,o),s=function(t,e){var n=[];return k(t,(function(t){C(e,t)>=0&&n.push(t)})),n}(a.originalDeps=e(o),t);a.entryCount=s.length,0===a.entryCount&&r.push(o),k(s,(function(t){C(a.predecessor,t)<0&&a.predecessor.push(t);var e=n(i,t);C(e.successor,t)<0&&e.successor.push(o)}))})),{graph:i,noEntryList:r}}(i),s=a.graph,l=a.noEntryList,u={};for(k(t,(function(t){u[t]=!0}));l.length;){var h=l.pop(),c=s[h],p=!!u[h];p&&(r.call(o,h,c.originalDeps.slice()),delete u[h]),k(c.successor,p?f:d)}k(u,(function(){var t="";throw new Error(t)}))}function d(t){s[t].entryCount--,0===s[t].entryCount&&l.push(t)}function f(t){u[t]=!0,d(t)}}}(sc,(function(t){var e=[];k(sc.getClassesByMainType(t),(function(t){e=e.concat(t.dependencies||t.prototype.dependencies||[])})),e=P(e,(function(t){return Dr(t).main})),"dataset"!==t&&C(e,"dataset")<=0&&e.unshift("dataset");return e}));var lc="";"undefined"!=typeof navigator&&(lc=navigator.platform||"");var uc="rgba(0, 0, 0, 0.2)",hc={darkMode:"auto",color:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],gradientColor:["#f6efa6","#d88273","#bf444c"],aria:{decal:{decals:[{color:uc,dashArrayX:[1,0],dashArrayY:[2,5],symbolSize:1,rotation:Math.PI/6},{color:uc,symbol:"circle",dashArrayX:[[8,8],[0,8,8,0]],dashArrayY:[6,0],symbolSize:.8},{color:uc,dashArrayX:[1,0],dashArrayY:[4,3],rotation:-Math.PI/4},{color:uc,dashArrayX:[[6,6],[0,6,6,0]],dashArrayY:[6,0]},{color:uc,dashArrayX:[[1,0],[1,6]],dashArrayY:[1,0,6,0],rotation:Math.PI/4},{color:uc,symbol:"triangle",dashArrayX:[[9,9],[0,9,9,0]],dashArrayY:[7,2],symbolSize:.75}]}},textStyle:{fontFamily:lc.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,stateAnimation:{duration:300,easing:"cubicOut"},animation:"auto",animationDuration:1e3,animationDurationUpdate:500,animationEasing:"cubicInOut",animationEasingUpdate:"cubicInOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1},cc=lt(["tooltip","label","itemName","itemId","seriesName"]),pc=1,dc=2,fc=3,gc=_r();function yc(t,e,n){var i={},r=mc(e);if(!r||!t)return i;var o,a,s=[],l=[],u=e.ecModel,h=gc(u).datasetMap,c=r.uid+"_"+n.seriesLayoutBy;k(t=t.slice(),(function(e,n){var r=Y(e)?e:t[n]={name:e};"ordinal"===r.type&&null==o&&(o=n,a=f(r)),i[r.name]=[]}));var p=h.get(c)||h.set(c,{categoryWayDim:a,valueWayDim:0});function d(t,e,n){for(var i=0;i<n;i++)t.push(e+i)}function f(t){var e=t.dimsDef;return e?e.length:1}return k(t,(function(t,e){var n=t.name,r=f(t);if(null==o){var a=p.valueWayDim;d(i[n],a,r),d(l,a,r),p.valueWayDim+=r}else if(o===e)d(i[n],0,r),d(s,0,r);else{a=p.categoryWayDim;d(i[n],a,r),d(l,a,r),p.categoryWayDim+=r}})),s.length&&(i.itemName=s),l.length&&(i.seriesName=l),i}function vc(t,e,n){var i={};if(!mc(t))return i;var r,o=e.sourceFormat,a=e.dimensionsDefine;"objectRows"!==o&&"keyedColumns"!==o||k(a,(function(t,e){"name"===(Y(t)?t.name:t)&&(r=e)}));var s=function(){for(var t={},i={},s=[],l=0,u=Math.min(5,n);l<u;l++){var h=xc(e.data,o,e.seriesLayoutBy,a,e.startIndex,l);s.push(h);var c=h===fc;if(c&&null==t.v&&l!==r&&(t.v=l),(null==t.n||t.n===t.v||!c&&s[t.n]===fc)&&(t.n=l),p(t)&&s[t.n]!==fc)return t;c||(h===dc&&null==i.v&&l!==r&&(i.v=l),null!=i.n&&i.n!==i.v||(i.n=l))}function p(t){return null!=t.v&&null!=t.n}return p(t)?t:p(i)?i:null}();if(s){i.value=[s.v];var l=null!=r?r:s.n;i.itemName=[l],i.seriesName=[l]}return i}function mc(t){if(!t.get("data",!0))return Mr(t.ecModel,"dataset",{index:t.get("datasetIndex",!0),id:t.get("datasetId",!0)},wr).models[0]}function _c(t,e){return xc(t.data,t.sourceFormat,t.seriesLayoutBy,t.dimensionsDefine,t.startIndex,e)}function xc(t,e,n,i,r,o){var a,s,l;if(U(t))return fc;if(i){var u=i[o];Y(u)?(s=u.name,l=u.type):G(u)&&(s=u)}if(null!=l)return"ordinal"===l?pc:fc;if("arrayRows"===e){var h=t;if("row"===n){for(var c=h[o],p=0;p<(c||[]).length&&p<5;p++)if(null!=(a=m(c[r+p])))return a}else for(p=0;p<h.length&&p<5;p++){var d=h[r+p];if(d&&null!=(a=m(d[o])))return a}}else if("objectRows"===e){var f=t;if(!s)return fc;for(p=0;p<f.length&&p<5;p++){if((y=f[p])&&null!=(a=m(y[s])))return a}}else if("keyedColumns"===e){if(!s)return fc;if(!(c=t[s])||U(c))return fc;for(p=0;p<c.length&&p<5;p++)if(null!=(a=m(c[p])))return a}else if("original"===e){var g=t;for(p=0;p<g.length&&p<5;p++){var y,v=cr(y=g[p]);if(!V(v))return fc;if(null!=(a=m(v[o])))return a}}function m(t){var e=G(t);return null!=t&&isFinite(t)&&""!==t?e?dc:fc:e&&"-"!==t?pc:void 0}return fc}var bc=lt();var wc,Sc,Mc,Ic=_r(),Tc=_r(),Cc=function(){function t(){}return t.prototype.getColorFromPalette=function(t,e,n){var i=lr(this.get("color",!0)),r=this.get("colorLayer",!0);return Dc(this,Ic,i,r,t,e,n)},t.prototype.clearColorPalette=function(){!function(t,e){e(t).paletteIdx=0,e(t).paletteNameMap={}}(this,Ic)},t}();function Ac(t,e,n,i){var r=lr(t.get(["aria","decal","decals"]));return Dc(t,Tc,r,null,e,n,i)}function Dc(t,e,n,i,r,o,a){var s=e(o=o||t),l=s.paletteIdx||0,u=s.paletteNameMap=s.paletteNameMap||{};if(u.hasOwnProperty(r))return u[r];var h=null!=a&&i?function(t,e){for(var n=t.length,i=0;i<n;i++)if(t[i].length>e)return t[i];return t[n-1]}(i,a):n;if((h=h||n)&&h.length){var c=h[l];return r&&(u[r]=c),s.paletteIdx=(l+1)%h.length,c}}var Lc=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.init=function(t,e,n,i,r,o){i=i||{},this.option=null,this._theme=new rh(i),this._locale=new rh(r),this._optionManager=o},n.prototype.setOption=function(t,e,n){var i=Oc(e);this._optionManager.setOption(t,n,i),this._resetOption(null,i)},n.prototype.resetOption=function(t,e){return this._resetOption(t,Oc(e))},n.prototype._resetOption=function(t,e){var n=!1,i=this._optionManager;if(!t||"recreate"===t){var r=i.mountOption("recreate"===t);this.option&&"recreate"!==t?(this.restoreData(),this._mergeOption(r,e)):Mc(this,r),n=!0}if("timeline"!==t&&"media"!==t||this.restoreData(),!t||"recreate"===t||"timeline"===t){var o=i.getTimelineOption(this);o&&(n=!0,this._mergeOption(o,e))}if(!t||"recreate"===t||"media"===t){var a=i.getMediaOption(this);a.length&&k(a,(function(t){n=!0,this._mergeOption(t,e)}),this)}return n},n.prototype.mergeOption=function(t){this._mergeOption(t,null)},n.prototype._mergeOption=function(t,e){var n=this.option,i=this._componentsMap,r=this._componentsCount,o=[],a=lt(),s=e&&e.replaceMergeMainTypeMap;gc(this).datasetMap=lt(),k(t,(function(t,e){null!=t&&(sc.hasClass(e)?e&&(o.push(e),a.set(e,!0)):n[e]=null==n[e]?b(t):w(n[e],t,!0))})),s&&s.each((function(t,e){sc.hasClass(e)&&!a.get(e)&&(o.push(e),a.set(e,!0))})),sc.topologicalTravel(o,sc.getAllClassMainTypes(),(function(e){var o=function(t,e,n){var i=bc.get(e);if(!i)return n;var r=i(t);return r?n.concat(r):n}(this,e,lr(t[e])),a=i.get(e),l=a?s&&s.get(e)?"replaceMerge":"normalMerge":"replaceAll",u=pr(a,o,l);(function(t,e,n){k(t,(function(t){var i=t.newOption;Y(i)&&(t.keyInfo.mainType=e,t.keyInfo.subType=function(t,e,n,i){return e.type?e.type:n?n.subType:i.determineSubType(t,e)}(e,i,t.existing,n))}))})(u,e,sc),n[e]=null,i.set(e,null),r.set(e,0);var h=[],c=[],p=0;k(u,(function(t,n){var i=t.existing,r=t.newOption;if(r){var o=sc.getClass(e,t.keyInfo.subType,!0);if(i&&i.constructor===o)i.name=t.keyInfo.name,i.mergeOption(r,this),i.optionUpdated(r,!1);else{var a=M({componentIndex:n},t.keyInfo);M(i=new o(r,this,this,a),a),t.brandNew&&(i.__requireNewView=!0),i.init(r,this,this),i.optionUpdated(null,!0)}}else i&&(i.mergeOption({},this),i.optionUpdated({},!1));i?(h.push(i.option),c.push(i),p++):(h.push(void 0),c.push(void 0))}),this),n[e]=h,i.set(e,c),r.set(e,p),"series"===e&&wc(this)}),this),this._seriesIndices||wc(this)},n.prototype.getOption=function(){var t=b(this.option);return k(t,(function(e,n){if(sc.hasClass(n)){for(var i=lr(e),r=i.length,o=!1,a=r-1;a>=0;a--)i[a]&&!vr(i[a])?o=!0:(i[a]=null,!o&&r--);i.length=r,t[n]=i}})),delete t["\0_ec_inner"],t},n.prototype.getTheme=function(){return this._theme},n.prototype.getLocaleModel=function(){return this._locale},n.prototype.getLocale=function(t){return this.getLocaleModel().get(t)},n.prototype.setUpdatePayload=function(t){this._payload=t},n.prototype.getUpdatePayload=function(){return this._payload},n.prototype.getComponent=function(t,e){var n=this._componentsMap.get(t);if(n){var i=n[e||0];if(i)return i;if(null==e)for(var r=0;r<n.length;r++)if(n[r])return n[r]}},n.prototype.queryComponents=function(t){var e=t.mainType;if(!e)return[];var n,i=t.index,r=t.id,o=t.name,a=this._componentsMap.get(e);return a&&a.length?(null!=i?(n=[],k(lr(i),(function(t){a[t]&&n.push(a[t])}))):n=null!=r?kc("id",r,a):null!=o?kc("name",o,a):R(a,(function(t){return!!t})),Pc(n,t)):[]},n.prototype.findComponents=function(t){var e,n,i,r,o,a=t.query,s=t.mainType,l=(n=s+"Index",i=s+"Id",r=s+"Name",!(e=a)||null==e[n]&&null==e[i]&&null==e[r]?null:{mainType:s,index:e[n],id:e[i],name:e[r]}),u=l?this.queryComponents(l):R(this._componentsMap.get(s),(function(t){return!!t}));return o=Pc(u,t),t.filter?R(o,t.filter):o},n.prototype.eachComponent=function(t,e,n){var i=this._componentsMap;if(F(t)){var r=e,o=t;i.each((function(t,e){for(var n=0;t&&n<t.length;n++){var i=t[n];i&&o.call(r,e,i,i.componentIndex)}}))}else for(var a=G(t)?i.get(t):Y(t)?this.findComponents(t):null,s=0;a&&s<a.length;s++){var l=a[s];l&&e.call(n,l,l.componentIndex)}},n.prototype.getSeriesByName=function(t){var e=gr(t,null);return R(this._componentsMap.get("series"),(function(t){return!!t&&null!=e&&t.name===e}))},n.prototype.getSeriesByIndex=function(t){return this._componentsMap.get("series")[t]},n.prototype.getSeriesByType=function(t){return R(this._componentsMap.get("series"),(function(e){return!!e&&e.subType===t}))},n.prototype.getSeries=function(){return R(this._componentsMap.get("series").slice(),(function(t){return!!t}))},n.prototype.getSeriesCount=function(){return this._componentsCount.get("series")},n.prototype.eachSeries=function(t,e){Sc(this),k(this._seriesIndices,(function(n){var i=this._componentsMap.get("series")[n];t.call(e,i,n)}),this)},n.prototype.eachRawSeries=function(t,e){k(this._componentsMap.get("series"),(function(n){n&&t.call(e,n,n.componentIndex)}))},n.prototype.eachSeriesByType=function(t,e,n){Sc(this),k(this._seriesIndices,(function(i){var r=this._componentsMap.get("series")[i];r.subType===t&&e.call(n,r,i)}),this)},n.prototype.eachRawSeriesByType=function(t,e,n){return k(this.getSeriesByType(t),e,n)},n.prototype.isSeriesFiltered=function(t){return Sc(this),null==this._seriesIndicesMap.get(t.componentIndex)},n.prototype.getCurrentSeriesIndices=function(){return(this._seriesIndices||[]).slice()},n.prototype.filterSeries=function(t,e){Sc(this);var n=[];k(this._seriesIndices,(function(i){var r=this._componentsMap.get("series")[i];t.call(e,r,i)&&n.push(i)}),this),this._seriesIndices=n,this._seriesIndicesMap=lt(n)},n.prototype.restoreData=function(t){wc(this);var e=this._componentsMap,n=[];e.each((function(t,e){sc.hasClass(e)&&n.push(e)})),sc.topologicalTravel(n,sc.getAllClassMainTypes(),(function(n){k(e.get(n),(function(e){!e||"series"===n&&function(t,e){if(e){var n=e.seriesIndex,i=e.seriesId,r=e.seriesName;return null!=n&&t.componentIndex!==n||null!=i&&t.id!==i||null!=r&&t.name!==r}}(e,t)||e.restoreData()}))}))},n.internalField=(wc=function(t){var e=t._seriesIndices=[];k(t._componentsMap.get("series"),(function(t){t&&e.push(t.componentIndex)})),t._seriesIndicesMap=lt(e)},Sc=function(t){},void(Mc=function(t,e){t.option={},t.option["\0_ec_inner"]=1,t._componentsMap=lt({series:[]}),t._componentsCount=lt();var n=e.aria;Y(n)&&null==n.enabled&&(n.enabled=!0),function(t,e){var n=t.color&&!t.colorLayer;k(e,(function(e,i){"colorLayer"===i&&n||sc.hasClass(i)||("object"==typeof e?t[i]=t[i]?w(t[i],e,!1):b(e):null==t[i]&&(t[i]=e))}))}(e,t._theme.option),w(e,hc,!1),t._mergeOption(e,null)})),n}(rh);function kc(t,e,n){if(V(e)){var i=lt();return k(e,(function(t){null!=t&&(null!=gr(t,null)&&i.set(t,!0))})),R(n,(function(e){return e&&i.get(e[t])}))}var r=gr(e,null);return R(n,(function(e){return e&&null!=r&&e[t]===r}))}function Pc(t,e){return e.hasOwnProperty("subType")?R(t,(function(t){return t&&t.subType===e.subType})):t}function Oc(t){var e=lt();return t&&k(lr(t.replaceMerge),(function(t){e.set(t,!0)})),{replaceMergeMainTypeMap:e}}D(Lc,Cc);var Rc=["getDom","getZr","getWidth","getHeight","getDevicePixelRatio","dispatchAction","isDisposed","on","off","getDataURL","getConnectedDataURL","getOption","getId","updateLabelLayout"],Nc=function(t){k(Rc,(function(e){this[e]=z(t[e],t)}),this)},Ec={},zc=function(){function t(){this._coordinateSystems=[]}return t.prototype.create=function(t,e){var n=[];k(Ec,(function(i,r){var o=i.create(t,e);n=n.concat(o||[])})),this._coordinateSystems=n},t.prototype.update=function(t,e){k(this._coordinateSystems,(function(n){n.update&&n.update(t,e)}))},t.prototype.getCoordinateSystems=function(){return this._coordinateSystems.slice()},t.register=function(t,e){Ec[t]=e},t.get=function(t){return Ec[t]},t}(),Bc=/^(min|max)?(.+)$/,Vc=function(){function t(t){this._timelineOptions=[],this._mediaList=[],this._currentMediaIndices=[],this._api=t}return t.prototype.setOption=function(t,e,n){t&&(k(lr(t.series),(function(t){t&&t.data&&U(t.data)&&ot(t.data)})),k(lr(t.dataset),(function(t){t&&t.source&&U(t.source)&&ot(t.source)}))),t=b(t);var i=this._optionBackup,r=function(t,e,n){var i,r,o=[],a=t.baseOption,s=t.timeline,l=t.options,u=t.media,h=!!t.media,c=!!(l||s||a&&a.timeline);a?(r=a).timeline||(r.timeline=s):((c||h)&&(t.options=t.media=null),r=t);h&&V(u)&&k(u,(function(t){t&&t.option&&(t.query?o.push(t):i||(i=t))}));function p(t){k(e,(function(e){e(t,n)}))}return p(r),k(l,(function(t){return p(t)})),k(o,(function(t){return p(t.option)})),{baseOption:r,timelineOptions:l||[],mediaDefault:i,mediaList:o}}(t,e,!i);this._newBaseOption=r.baseOption,i?(r.timelineOptions.length&&(i.timelineOptions=r.timelineOptions),r.mediaList.length&&(i.mediaList=r.mediaList),r.mediaDefault&&(i.mediaDefault=r.mediaDefault)):this._optionBackup=r},t.prototype.mountOption=function(t){var e=this._optionBackup;return this._timelineOptions=e.timelineOptions,this._mediaList=e.mediaList,this._mediaDefault=e.mediaDefault,this._currentMediaIndices=[],b(t?e.baseOption:this._newBaseOption)},t.prototype.getTimelineOption=function(t){var e,n=this._timelineOptions;if(n.length){var i=t.getComponent("timeline");i&&(e=b(n[i.getCurrentIndex()]))}return e},t.prototype.getMediaOption=function(t){var e,n,i=this._api.getWidth(),r=this._api.getHeight(),o=this._mediaList,a=this._mediaDefault,s=[],l=[];if(!o.length&&!a)return l;for(var u=0,h=o.length;u<h;u++)Fc(o[u].query,i,r)&&s.push(u);return!s.length&&a&&(s=[-1]),s.length&&(e=s,n=this._currentMediaIndices,e.join(",")!==n.join(","))&&(l=P(s,(function(t){return b(-1===t?a.option:o[t].option)}))),this._currentMediaIndices=s,l},t}();function Fc(t,e,n){var i={width:e,height:n,aspectratio:e/n},r=!0;return k(t,(function(t,e){var n=e.match(Bc);if(n&&n[1]&&n[2]){var o=n[1],a=n[2].toLowerCase();(function(t,e,n){return"min"===n?t>=e:"max"===n?t<=e:t===e})(i[a],t,o)||(r=!1)}})),r}var Gc=k,Hc=Y,Wc=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function Yc(t){var e=t&&t.itemStyle;if(e)for(var n=0,i=Wc.length;n<i;n++){var r=Wc[n],o=e.normal,a=e.emphasis;o&&o[r]&&(t[r]=t[r]||{},t[r].normal?w(t[r].normal,o[r]):t[r].normal=o[r],o[r]=null),a&&a[r]&&(t[r]=t[r]||{},t[r].emphasis?w(t[r].emphasis,a[r]):t[r].emphasis=a[r],a[r]=null)}}function Xc(t,e,n){if(t&&t[e]&&(t[e].normal||t[e].emphasis)){var i=t[e].normal,r=t[e].emphasis;i&&(n?(t[e].normal=t[e].emphasis=null,I(t[e],i)):t[e]=i),r&&(t.emphasis=t.emphasis||{},t.emphasis[e]=r,r.focus&&(t.emphasis.focus=r.focus),r.blurScope&&(t.emphasis.blurScope=r.blurScope))}}function Uc(t){Xc(t,"itemStyle"),Xc(t,"lineStyle"),Xc(t,"areaStyle"),Xc(t,"label"),Xc(t,"labelLine"),Xc(t,"upperLabel"),Xc(t,"edgeLabel")}function Zc(t,e){var n=Hc(t)&&t[e],i=Hc(n)&&n.textStyle;if(i){0;for(var r=0,o=hr.length;r<o;r++){var a=hr[r];i.hasOwnProperty(a)&&(n[a]=i[a])}}}function jc(t){t&&(Uc(t),Zc(t,"label"),t.emphasis&&Zc(t.emphasis,"label"))}function qc(t){return V(t)?t:t?[t]:[]}function Kc(t){return(V(t)?t[0]:t)||{}}function $c(t,e){Gc(qc(t.series),(function(t){Hc(t)&&function(t){if(Hc(t)){Yc(t),Uc(t),Zc(t,"label"),Zc(t,"upperLabel"),Zc(t,"edgeLabel"),t.emphasis&&(Zc(t.emphasis,"label"),Zc(t.emphasis,"upperLabel"),Zc(t.emphasis,"edgeLabel"));var e=t.markPoint;e&&(Yc(e),jc(e));var n=t.markLine;n&&(Yc(n),jc(n));var i=t.markArea;i&&jc(i);var r=t.data;if("graph"===t.type){r=r||t.nodes;var o=t.links||t.edges;if(o&&!U(o))for(var a=0;a<o.length;a++)jc(o[a]);k(t.categories,(function(t){Uc(t)}))}if(r&&!U(r))for(a=0;a<r.length;a++)jc(r[a]);if((e=t.markPoint)&&e.data){var s=e.data;for(a=0;a<s.length;a++)jc(s[a])}if((n=t.markLine)&&n.data){var l=n.data;for(a=0;a<l.length;a++)V(l[a])?(jc(l[a][0]),jc(l[a][1])):jc(l[a])}"gauge"===t.type?(Zc(t,"axisLabel"),Zc(t,"title"),Zc(t,"detail")):"treemap"===t.type?(Xc(t.breadcrumb,"itemStyle"),k(t.levels,(function(t){Uc(t)}))):"tree"===t.type&&Uc(t.leaves)}}(t)}));var n=["xAxis","yAxis","radiusAxis","angleAxis","singleAxis","parallelAxis","radar"];e&&n.push("valueAxis","categoryAxis","logAxis","timeAxis"),Gc(n,(function(e){Gc(qc(t[e]),(function(t){t&&(Zc(t,"axisLabel"),Zc(t.axisPointer,"label"))}))})),Gc(qc(t.parallel),(function(t){var e=t&&t.parallelAxisDefault;Zc(e,"axisLabel"),Zc(e&&e.axisPointer,"label")})),Gc(qc(t.calendar),(function(t){Xc(t,"itemStyle"),Zc(t,"dayLabel"),Zc(t,"monthLabel"),Zc(t,"yearLabel")})),Gc(qc(t.radar),(function(t){Zc(t,"name"),t.name&&null==t.axisName&&(t.axisName=t.name,delete t.name),null!=t.nameGap&&null==t.axisNameGap&&(t.axisNameGap=t.nameGap,delete t.nameGap)})),Gc(qc(t.geo),(function(t){Hc(t)&&(jc(t),Gc(qc(t.regions),(function(t){jc(t)})))})),Gc(qc(t.timeline),(function(t){jc(t),Xc(t,"label"),Xc(t,"itemStyle"),Xc(t,"controlStyle",!0);var e=t.data;V(e)&&k(e,(function(t){Y(t)&&(Xc(t,"label"),Xc(t,"itemStyle"))}))})),Gc(qc(t.toolbox),(function(t){Xc(t,"iconStyle"),Gc(t.feature,(function(t){Xc(t,"iconStyle")}))})),Zc(Kc(t.axisPointer),"label"),Zc(Kc(t.tooltip).axisPointer,"label")}function Jc(t){t&&k(Qc,(function(e){e[0]in t&&!(e[1]in t)&&(t[e[1]]=t[e[0]])}))}var Qc=[["x","left"],["y","top"],["x2","right"],["y2","bottom"]],tp=["grid","geo","parallel","legend","toolbox","title","visualMap","dataZoom","timeline"],ep=[["borderRadius","barBorderRadius"],["borderColor","barBorderColor"],["borderWidth","barBorderWidth"]];function np(t){var e=t&&t.itemStyle;if(e)for(var n=0;n<ep.length;n++){var i=ep[n][1],r=ep[n][0];null!=e[i]&&(e[r]=e[i])}}function ip(t){t&&"edge"===t.alignTo&&null!=t.margin&&null==t.edgeDistance&&(t.edgeDistance=t.margin)}function rp(t){t&&t.downplay&&!t.blur&&(t.blur=t.downplay)}function op(t,e){if(t)for(var n=0;n<t.length;n++)e(t[n]),t[n]&&op(t[n].children,e)}function ap(t,e){$c(t,e),t.series=lr(t.series),k(t.series,(function(t){if(Y(t)){var e=t.type;if("line"===e)null!=t.clipOverflow&&(t.clip=t.clipOverflow);else if("pie"===e||"gauge"===e){if(null!=t.clockWise&&(t.clockwise=t.clockWise),ip(t.label),(r=t.data)&&!U(r))for(var n=0;n<r.length;n++)ip(r[n]);null!=t.hoverOffset&&(t.emphasis=t.emphasis||{},(t.emphasis.scaleSize=null)&&(t.emphasis.scaleSize=t.hoverOffset))}else if("gauge"===e){var i=function(t,e){for(var n=e.split(","),i=t,r=0;r<n.length&&null!=(i=i&&i[n[r]]);r++);return i}(t,"pointer.color");null!=i&&function(t,e,n,i){for(var r,o=e.split(","),a=t,s=0;s<o.length-1;s++)null==a[r=o[s]]&&(a[r]={}),a=a[r];(i||null==a[o[s]])&&(a[o[s]]=n)}(t,"itemStyle.color",i)}else if("bar"===e){var r;if(np(t),np(t.backgroundStyle),np(t.emphasis),(r=t.data)&&!U(r))for(n=0;n<r.length;n++)"object"==typeof r[n]&&(np(r[n]),np(r[n]&&r[n].emphasis))}else if("sunburst"===e){var o=t.highlightPolicy;o&&(t.emphasis=t.emphasis||{},t.emphasis.focus||(t.emphasis.focus=o)),rp(t),op(t.data,rp)}else"graph"===e||"sankey"===e?function(t){t&&null!=t.focusNodeAdjacency&&(t.emphasis=t.emphasis||{},null==t.emphasis.focus&&(t.emphasis.focus="adjacency"))}(t):"map"===e&&(t.mapType&&!t.map&&(t.map=t.mapType),t.mapLocation&&I(t,t.mapLocation));null!=t.hoverAnimation&&(t.emphasis=t.emphasis||{},t.emphasis&&null==t.emphasis.scale&&(t.emphasis.scale=t.hoverAnimation)),Jc(t)}})),t.dataRange&&(t.visualMap=t.dataRange),k(tp,(function(e){var n=t[e];n&&(V(n)||(n=[n]),k(n,(function(t){Jc(t)})))}))}function sp(t){k(t,(function(e,n){var i=[],r=[NaN,NaN],o=[e.stackResultDimension,e.stackedOverDimension],a=e.data,s=e.isStackedByIndex,l=a.map(o,(function(o,l,u){var h,c,p=a.get(e.stackedDimension,u);if(isNaN(p))return r;s?c=a.getRawIndex(u):h=a.get(e.stackedByDimension,u);for(var d=NaN,f=n-1;f>=0;f--){var g=t[f];if(s||(c=g.data.rawIndexOf(g.stackedByDimension,h)),c>=0){var y=g.data.getByRawIndex(g.stackResultDimension,c);if(p>=0&&y>0||p<=0&&y<0){p+=y,d=y;break}}}return i[0]=p,i[1]=d,i}));a.hostModel.setData(l),e.data=l}))}var lp,up,hp,cp,pp,dp=function(t){this.data=t.data||("keyedColumns"===t.sourceFormat?{}:[]),this.sourceFormat=t.sourceFormat||"unknown",this.seriesLayoutBy=t.seriesLayoutBy||"column",this.startIndex=t.startIndex||0,this.dimensionsDefine=t.dimensionsDefine,this.dimensionsDetectedCount=t.dimensionsDetectedCount,this.encodeDefine=t.encodeDefine,this.metaRawOption=t.metaRawOption};function fp(t){return t instanceof dp}function gp(t,e,n,i){n=n||mp(t);var r=e.seriesLayoutBy,o=function(t,e,n,i,r){var o,a;if(!t)return{dimensionsDefine:_p(r),startIndex:a,dimensionsDetectedCount:o};if("arrayRows"===e){var s=t;"auto"===i||null==i?xp((function(t){null!=t&&"-"!==t&&(G(t)?null==a&&(a=1):a=0)}),n,s,10):a=W(i)?i:i?1:0,r||1!==a||(r=[],xp((function(t,e){r[e]=null!=t?t+"":""}),n,s,1/0)),o=r?r.length:"row"===n?s.length:s[0]?s[0].length:null}else if("objectRows"===e)r||(r=function(t){var e,n=0;for(;n<t.length&&!(e=t[n++]););if(e){var i=[];return k(e,(function(t,e){i.push(e)})),i}}(t));else if("keyedColumns"===e)r||(r=[],k(t,(function(t,e){r.push(e)})));else if("original"===e){var l=cr(t[0]);o=V(l)&&l.length||1}return{startIndex:a,dimensionsDefine:_p(r),dimensionsDetectedCount:o}}(t,n,r,e.sourceHeader,e.dimensions);return new dp({data:t,sourceFormat:n,seriesLayoutBy:r,dimensionsDefine:o.dimensionsDefine,startIndex:o.startIndex,dimensionsDetectedCount:o.dimensionsDetectedCount,encodeDefine:vp(i),metaRawOption:b(e)})}function yp(t){return new dp({data:t,sourceFormat:U(t)?"typedArray":"original"})}function vp(t){return t?lt(t):null}function mp(t){var e="unknown";if(U(t))e="typedArray";else if(V(t)){0===t.length&&(e="arrayRows");for(var n=0,i=t.length;n<i;n++){var r=t[n];if(null!=r){if(V(r)){e="arrayRows";break}if(Y(r)){e="objectRows";break}}}}else if(Y(t))for(var o in t)if(ct(t,o)&&L(t[o])){e="keyedColumns";break}return e}function _p(t){if(t){var e=lt();return P(t,(function(t,n){var i={name:(t=Y(t)?t:{name:t}).name,displayName:t.displayName,type:t.type};if(null==i.name)return i;i.name+="",null==i.displayName&&(i.displayName=i.name);var r=e.get(i.name);return r?i.name+="-"+r.count++:e.set(i.name,{count:1}),i}))}}function xp(t,e,n,i){if("row"===e)for(var r=0;r<n.length&&r<i;r++)t(n[r]?n[r][0]:null,r);else{var o=n[0]||[];for(r=0;r<o.length&&r<i;r++)t(o[r],r)}}var bp=function(){function t(t,e){var n=fp(t)?t:yp(t);this._source=n;var i=this._data=n.data;"typedArray"===n.sourceFormat&&(this._offset=0,this._dimSize=e,this._data=i),pp(this,i,n)}return t.prototype.getSource=function(){return this._source},t.prototype.count=function(){return 0},t.prototype.getItem=function(t,e){},t.prototype.appendData=function(t){},t.prototype.clean=function(){},t.protoInitialize=function(){var e=t.prototype;e.pure=!1,e.persistent=!0}(),t.internalField=function(){var t;pp=function(t,r,o){var a=o.sourceFormat,s=o.seriesLayoutBy,l=o.startIndex,u=o.dimensionsDefine,h=cp[kp(a,s)];if(M(t,h),"typedArray"===a)t.getItem=e,t.count=i,t.fillStorage=n;else{var c=Mp(a,s);t.getItem=z(c,null,r,l,u);var p=Cp(a,s);t.count=z(p,null,r,l,u)}};var e=function(t,e){t-=this._offset,e=e||[];for(var n=this._data,i=this._dimSize,r=i*t,o=0;o<i;o++)e[o]=n[r+o];return e},n=function(t,e,n,i){for(var r=this._data,o=this._dimSize,a=0;a<o;a++){for(var s=i[a],l=null==s[0]?1/0:s[0],u=null==s[1]?-1/0:s[1],h=e-t,c=n[a],p=0;p<h;p++){var d=r[p*o+a];c[t+p]=d,d<l&&(l=d),d>u&&(u=d)}s[0]=l,s[1]=u}},i=function(){return this._data?this._data.length/this._dimSize:0};function r(t){for(var e=0;e<t.length;e++)this._data.push(t[e])}(t={}).arrayRows_column={pure:!0,appendData:r},t.arrayRows_row={pure:!0,appendData:function(){throw new Error('Do not support appendData when set seriesLayoutBy: "row".')}},t.objectRows={pure:!0,appendData:r},t.keyedColumns={pure:!0,appendData:function(t){var e=this._data;k(t,(function(t,n){for(var i=e[n]||(e[n]=[]),r=0;r<(t||[]).length;r++)i.push(t[r])}))}},t.original={appendData:r},t.typedArray={persistent:!1,pure:!0,appendData:function(t){this._data=t},clean:function(){this._offset+=this.count(),this._data=null}},cp=t}(),t}(),wp=function(t,e,n,i){return t[i]},Sp=((lp={}).arrayRows_column=function(t,e,n,i){return t[i+e]},lp.arrayRows_row=function(t,e,n,i){i+=e;for(var r=[],o=t,a=0;a<o.length;a++){var s=o[a];r.push(s?s[i]:null)}return r},lp.objectRows=wp,lp.keyedColumns=function(t,e,n,i){for(var r=[],o=0;o<n.length;o++){var a=n[o].name;0;var s=t[a];r.push(s?s[i]:null)}return r},lp.original=wp,lp);function Mp(t,e){var n=Sp[kp(t,e)];return n}var Ip=function(t,e,n){return t.length},Tp=((up={}).arrayRows_column=function(t,e,n){return Math.max(0,t.length-e)},up.arrayRows_row=function(t,e,n){var i=t[0];return i?Math.max(0,i.length-e):0},up.objectRows=Ip,up.keyedColumns=function(t,e,n){var i=n[0].name;var r=t[i];return r?r.length:0},up.original=Ip,up);function Cp(t,e){var n=Tp[kp(t,e)];return n}var Ap=function(t,e,n){return null!=e?t[e]:t},Dp=((hp={}).arrayRows=Ap,hp.objectRows=function(t,e,n){return null!=e?t[n]:t},hp.keyedColumns=Ap,hp.original=function(t,e,n){var i=cr(t);return null!=e&&i instanceof Array?i[e]:i},hp.typedArray=Ap,hp);function Lp(t){var e=Dp[t];return e}function kp(t,e){return"arrayRows"===t?t+"_"+e:t}function Pp(t,e,n){if(t){var i=t.getRawDataItem(e);if(null!=i){var r,o,a=t.getProvider().getSource().sourceFormat,s=t.getDimensionInfo(n);return s&&(r=s.name,o=s.index),Lp(a)(i,o,r)}}}var Op=/\{@(.+?)\}/g,Rp=function(){function t(){}return t.prototype.getDataParams=function(t,e){var n=this.getData(e),i=this.getRawValue(t,e),r=n.getRawIndex(t),o=n.getName(t),a=n.getRawDataItem(t),s=n.getItemVisual(t,"style"),l=s&&s[n.getItemVisual(t,"drawType")||"fill"],u=s&&s.stroke,h=this.mainType,c="series"===h,p=n.userOutput;return{componentType:h,componentSubType:this.subType,componentIndex:this.componentIndex,seriesType:c?this.subType:null,seriesIndex:this.seriesIndex,seriesId:c?this.id:null,seriesName:c?this.name:null,name:o,dataIndex:r,data:a,dataType:e,value:i,color:l,borderColor:u,dimensionNames:p?p.dimensionNames:null,encode:p?p.encode:null,$vars:["seriesName","name","value"]}},t.prototype.getFormattedLabel=function(t,e,n,i,r,o){e=e||"normal";var a=this.getData(n),s=this.getDataParams(t,n);(o&&(s.value=o.interpolatedValue),null!=i&&V(s.value)&&(s.value=s.value[i]),r)||(r=a.getItemModel(t).get("normal"===e?["label","formatter"]:[e,"label","formatter"]));return"function"==typeof r?(s.status=e,s.dimensionIndex=i,r(s)):"string"==typeof r?Xh(r,s).replace(Op,(function(e,n){var i=n.length,r="["===n.charAt(0)&&"]"===n.charAt(i-1)?+n.slice(1,i-1):n,s=Pp(a,t,r);if(o&&V(o.interpolatedValue)){var l=a.getDimensionInfo(r);l&&(s=o.interpolatedValue[l.index])}return null!=s?s+"":""})):void 0},t.prototype.getRawValue=function(t,e){return Pp(this.getData(e),t)},t.prototype.formatTooltip=function(t,e,n){},t}();function Np(t){var e,n;return Y(t)?t.type&&(n=t):e=t,{markupText:e,markupFragment:n}}function Ep(t){return new zp(t)}var zp=function(){function t(t){t=t||{},this._reset=t.reset,this._plan=t.plan,this._count=t.count,this._onDirty=t.onDirty,this._dirty=!0}return t.prototype.perform=function(t){var e,n=this._upstream,i=t&&t.skip;if(this._dirty&&n){var r=this.context;r.data=r.outputData=n.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this),this._plan&&!i&&(e=this._plan(this.context));var o,a=h(this._modBy),s=this._modDataCount||0,l=h(t&&t.modBy),u=t&&t.modDataCount||0;function h(t){return!(t>=1)&&(t=1),t}a===l&&s===u||(e="reset"),(this._dirty||"reset"===e)&&(this._dirty=!1,o=this._doReset(i)),this._modBy=l,this._modDataCount=u;var c=t&&t.step;if(this._dueEnd=n?n._outputDueEnd:this._count?this._count(this.context):1/0,this._progress){var p=this._dueIndex,d=Math.min(null!=c?this._dueIndex+c:1/0,this._dueEnd);if(!i&&(o||p<d)){var f=this._progress;if(V(f))for(var g=0;g<f.length;g++)this._doProgress(f[g],p,d,l,u);else this._doProgress(f,p,d,l,u)}this._dueIndex=d;var y=null!=this._settedOutputEnd?this._settedOutputEnd:d;0,this._outputDueEnd=y}else this._dueIndex=this._outputDueEnd=null!=this._settedOutputEnd?this._settedOutputEnd:this._dueEnd;return this.unfinished()},t.prototype.dirty=function(){this._dirty=!0,this._onDirty&&this._onDirty(this.context)},t.prototype._doProgress=function(t,e,n,i,r){Bp.reset(e,n,i,r),this._callingProgress=t,this._callingProgress({start:e,end:n,count:n-e,next:Bp.next},this.context)},t.prototype._doReset=function(t){var e,n;this._dueIndex=this._outputDueEnd=this._dueEnd=0,this._settedOutputEnd=null,!t&&this._reset&&((e=this._reset(this.context))&&e.progress&&(n=e.forceFirstProgress,e=e.progress),V(e)&&!e.length&&(e=null)),this._progress=e,this._modBy=this._modDataCount=null;var i=this._downstream;return i&&i.dirty(),n},t.prototype.unfinished=function(){return this._progress&&this._dueIndex<this._dueEnd},t.prototype.pipe=function(t){(this._downstream!==t||this._dirty)&&(this._downstream=t,t._upstream=this,t.dirty())},t.prototype.dispose=function(){this._disposed||(this._upstream&&(this._upstream._downstream=null),this._downstream&&(this._downstream._upstream=null),this._dirty=!1,this._disposed=!0)},t.prototype.getUpstream=function(){return this._upstream},t.prototype.getDownstream=function(){return this._downstream},t.prototype.setOutputEnd=function(t){this._outputDueEnd=this._settedOutputEnd=t},t}(),Bp=function(){var t,e,n,i,r,o={reset:function(l,u,h,c){e=l,t=u,n=h,i=c,r=Math.ceil(i/n),o.next=n>1&&i>0?s:a}};return o;function a(){return e<t?e++:null}function s(){var o=e%r*n+Math.ceil(e/r),a=e>=t?null:o<i?o:e;return e++,a}}();function Vp(t,e){var n=e&&e.type;if("ordinal"===n){var i=e&&e.ordinalMeta;return i?i.parseAndCollect(t):t}return"time"===n&&"number"!=typeof t&&null!=t&&"-"!==t&&(t=+qi(t)),null==t||""===t?NaN:+t}var Fp=lt({number:function(t){return parseFloat(t)},time:function(t){return+qi(t)},trim:function(t){return"string"==typeof t?rt(t):t}});function Gp(t){return Fp.get(t)}var Hp={lt:function(t,e){return t<e},lte:function(t,e){return t<=e},gt:function(t,e){return t>e},gte:function(t,e){return t>=e}},Wp=function(){function t(t,e){if("number"!=typeof e){var n="";0,sr(n)}this._opFn=Hp[t],this._rvalFloat=er(e)}return t.prototype.evaluate=function(t){return"number"==typeof t?this._opFn(t,this._rvalFloat):this._opFn(er(t),this._rvalFloat)},t}(),Yp=function(){function t(t,e){var n="desc"===t;this._resultLT=n?1:-1,null==e&&(e=n?"min":"max"),this._incomparable="min"===e?-1/0:1/0}return t.prototype.evaluate=function(t,e){var n=typeof t,i=typeof e,r="number"===n?t:er(t),o="number"===i?e:er(e),a=isNaN(r),s=isNaN(o);if(a&&(r=this._incomparable),s&&(o=this._incomparable),a&&s){var l="string"===n,u="string"===i;l&&(r=u?t:0),u&&(o=l?e:0)}return r<o?this._resultLT:r>o?-this._resultLT:0},t}(),Xp=function(){function t(t,e){this._rval=e,this._isEQ=t,this._rvalTypeof=typeof e,this._rvalFloat=er(e)}return t.prototype.evaluate=function(t){var e=t===this._rval;if(!e){var n=typeof t;n===this._rvalTypeof||"number"!==n&&"number"!==this._rvalTypeof||(e=er(t)===this._rvalFloat)}return this._isEQ?e:!e},t}();function Up(t,e){return"eq"===t||"ne"===t?new Xp("eq"===t,e):ct(Hp,t)?new Wp(t,e):null}var Zp=function(){function t(){}return t.prototype.getRawData=function(){throw new Error("not supported")},t.prototype.getRawDataItem=function(t){throw new Error("not supported")},t.prototype.cloneRawData=function(){},t.prototype.getDimensionInfo=function(t){},t.prototype.cloneAllDimensionInfo=function(){},t.prototype.count=function(){},t.prototype.retrieveValue=function(t,e){},t.prototype.retrieveValueFromItem=function(t,e){},t.prototype.convertValue=function(t,e){return Vp(t,e)},t}();function jp(t){var e=t.sourceFormat;if(!td(e)){var n="";0,sr(n)}return t.data}function qp(t){var e=t.sourceFormat,n=t.data;if(!td(e)){var i="";0,sr(i)}if("arrayRows"===e){for(var r=[],o=0,a=n.length;o<a;o++)r.push(n[o].slice());return r}if("objectRows"===e){for(r=[],o=0,a=n.length;o<a;o++)r.push(M({},n[o]));return r}}function Kp(t,e,n){if(null!=n)return"number"==typeof n||!isNaN(n)&&!ct(e,n)?t[n]:ct(e,n)?e[n]:void 0}function $p(t){return b(t)}var Jp=lt();function Qp(t,e,n,i){var r="";e.length||sr(r),Y(t)||sr(r);var o=t.type,a=Jp.get(o);a||sr(r);var s=P(e,(function(t){return function(t,e){var n=new Zp,i=t.data,r=n.sourceFormat=t.sourceFormat,o=t.startIndex,a="";"column"!==t.seriesLayoutBy&&sr(a);var s=[],l={},u=t.dimensionsDefine;if(u)k(u,(function(t,e){var n=t.name,i={index:e,name:n,displayName:t.displayName};if(s.push(i),null!=n){var r="";ct(l,n)&&sr(r),l[n]=i}}));else for(var h=0;h<t.dimensionsDetectedCount;h++)s.push({index:h});var c=Mp(r,"column");e.__isBuiltIn&&(n.getRawDataItem=function(t){return c(i,o,s,t)},n.getRawData=z(jp,null,t)),n.cloneRawData=z(qp,null,t);var p=Cp(r,"column");n.count=z(p,null,i,o,s);var d=Lp(r);n.retrieveValue=function(t,e){var n=c(i,o,s,t);return f(n,e)};var f=n.retrieveValueFromItem=function(t,e){if(null!=t){var n=s[e];return n?d(t,e,n.name):void 0}};return n.getDimensionInfo=z(Kp,null,s,l),n.cloneAllDimensionInfo=z($p,null,s),n}(t,a)})),l=lr(a.transform({upstream:s[0],upstreamList:s,config:b(t.config)}));return P(l,(function(t,n){var i,r="";Y(t)||sr(r),t.data||sr(r),td(mp(t.data))||sr(r);var o=e[0];if(o&&0===n&&!t.dimensions){var a=o.startIndex;a&&(t.data=o.data.slice(0,a).concat(t.data)),i={seriesLayoutBy:"column",sourceHeader:a,dimensions:o.metaRawOption.dimensions}}else i={seriesLayoutBy:"column",sourceHeader:0,dimensions:t.dimensions};return gp(t.data,i,null,null)}))}function td(t){return"arrayRows"===t||"objectRows"===t}var ed=function(){function t(t){this._sourceList=[],this._upstreamSignList=[],this._versionSignBase=0,this._sourceHost=t}return t.prototype.dirty=function(){this._setLocalSource([],[])},t.prototype._setLocalSource=function(t,e){this._sourceList=t,this._upstreamSignList=e,this._versionSignBase++,this._versionSignBase>9e10&&(this._versionSignBase=0)},t.prototype._getVersionSign=function(){return this._sourceHost.uid+"_"+this._versionSignBase},t.prototype.prepareSource=function(){this._isDirty()&&this._createSource()},t.prototype._createSource=function(){this._setLocalSource([],[]);var t,e,n=this._sourceHost,i=this._getUpstreamSourceManagers(),r=!!i.length;if(id(n)){var o=n,a=void 0,s=void 0,l=void 0;if(r){var u=i[0];u.prepareSource(),a=(l=u.getSource()).data,s=l.sourceFormat,e=[u._getVersionSign()]}else s=U(a=o.get("data",!0))?"typedArray":"original",e=[];var h=this._getSourceMetaRawOption(),c=l?l.metaRawOption:null;t=[gp(a,{seriesLayoutBy:Q(h.seriesLayoutBy,c?c.seriesLayoutBy:null),sourceHeader:Q(h.sourceHeader,c?c.sourceHeader:null),dimensions:Q(h.dimensions,c?c.dimensions:null)},s,o.get("encode",!0))]}else{var p=n;if(r){var d=this._applyTransform(i);t=d.sourceList,e=d.upstreamSignList}else{t=[gp(p.get("source",!0),this._getSourceMetaRawOption(),null,null)],e=[]}}this._setLocalSource(t,e)},t.prototype._applyTransform=function(t){var e,n=this._sourceHost,i=n.get("transform",!0),r=n.get("fromTransformResult",!0);if(null!=r){var o="";1!==t.length&&rd(o)}var a,s=[],l=[];return k(t,(function(t){t.prepareSource();var e=t.getSource(r||0),n="";null==r||e||rd(n),s.push(e),l.push(t._getVersionSign())})),i?e=function(t,e,n){var i=lr(t),r=i.length,o="";r||sr(o);for(var a=0,s=r;a<s;a++)e=Qp(i[a],e),a!==s-1&&(e.length=Math.max(e.length,1));return e}(i,s,n.componentIndex):null!=r&&(e=[(a=s[0],new dp({data:a.data,sourceFormat:a.sourceFormat,seriesLayoutBy:a.seriesLayoutBy,dimensionsDefine:b(a.dimensionsDefine),startIndex:a.startIndex,dimensionsDetectedCount:a.dimensionsDetectedCount,encodeDefine:vp(a.encodeDefine)}))]),{sourceList:e,upstreamSignList:l}},t.prototype._isDirty=function(){if(!this._sourceList.length)return!0;for(var t=this._getUpstreamSourceManagers(),e=0;e<t.length;e++){var n=t[e];if(n._isDirty()||this._upstreamSignList[e]!==n._getVersionSign())return!0}},t.prototype.getSource=function(t){return this._sourceList[t||0]},t.prototype._getUpstreamSourceManagers=function(){var t=this._sourceHost;if(id(t)){var e=mc(t);return e?[e.getSourceManager()]:[]}return P(function(t){return t.get("transform",!0)||t.get("fromTransformResult",!0)?Mr(t.ecModel,"dataset",{index:t.get("fromDatasetIndex",!0),id:t.get("fromDatasetId",!0)},wr).models:[]}(t),(function(t){return t.getSourceManager()}))},t.prototype._getSourceMetaRawOption=function(){var t,e,n,i=this._sourceHost;if(id(i))t=i.get("seriesLayoutBy",!0),e=i.get("sourceHeader",!0),n=i.get("dimensions",!0);else if(!this._getUpstreamSourceManagers().length){var r=i;t=r.get("seriesLayoutBy",!0),e=r.get("sourceHeader",!0),n=r.get("dimensions",!0)}return{seriesLayoutBy:t,sourceHeader:e,dimensions:n}},t}();function nd(t){t.option.transform&&ot(t.option.transform)}function id(t){return"series"===t.mainType}function rd(t){throw new Error(t)}function od(t,e){var n=t.color||"#6e7079",i=t.fontSize||12,r=t.fontWeight||"400",o=t.color||"#464646",a=t.fontSize||14,s=t.fontWeight||"900";return"html"===e?{nameStyle:"font-size:"+i+"px;color:"+n+";font-weight:"+r,valueStyle:"font-size:"+a+"px;color:"+o+";font-weight:"+s}:{nameStyle:{fontSize:i,fill:n,fontWeight:r},valueStyle:{fontSize:a,fill:o,fontWeight:s}}}var ad=[0,10,20,30],sd=["","\n","\n\n","\n\n\n"];function ld(t,e){return e.type=t,e}function ud(t){return ct(hd,t.type)&&hd[t.type]}var hd={section:{planLayout:function(t){var e=t.blocks.length,n=e>1||e>0&&!t.noHeader,i=0;k(t.blocks,(function(t){ud(t).planLayout(t);var e=t.__gapLevelBetweenSubBlocks;e>=i&&(i=e+(!n||e&&("section"!==t.type||t.noHeader)?0:1))})),t.__gapLevelBetweenSubBlocks=i},build:function(t,e,n,i){var r=e.noHeader,o=pd(e),a=function(t,e,n,i){var r=[],o=e.blocks||[];it(!o||V(o)),o=o||[];var a=t.orderMode;if(e.sortBlocks&&a){o=o.slice();var s={valueAsc:"asc",valueDesc:"desc"};if(ct(s,a)){var l=new Yp(s[a],null);o.sort((function(t,e){return l.evaluate(t.sortParam,e.sortParam)}))}else"seriesDesc"===a&&o.reverse()}var u=pd(e);if(k(o,(function(e,n){var o=ud(e).build(t,e,n>0?u.html:0,i);null!=o&&r.push(o)})),!r.length)return;return"richText"===t.renderMode?r.join(u.richText):dd(r.join(""),n)}(t,e,r?n:o.html,i);if(r)return a;var s=Hh(e.header,"ordinal",t.useUTC),l=od(i,t.renderMode).nameStyle;return"richText"===t.renderMode?fd(t,s,l)+o.richText+a:dd('<div style="'+l+';line-height:1;">'+Gh(s)+"</div>"+a,n)}},nameValue:{planLayout:function(t){t.__gapLevelBetweenSubBlocks=0},build:function(t,e,n,i){var r=t.renderMode,o=e.noName,a=e.noValue,s=!e.markerType,l=e.name,u=e.value,h=t.useUTC;if(!o||!a){var c=s?"":t.markupStyleCreator.makeTooltipMarker(e.markerType,e.markerColor||"#333",r),p=o?"":Hh(l,"ordinal",h),d=e.valueType,f=a?[]:V(u)?P(u,(function(t,e){return Hh(t,V(d)?d[e]:d,h)})):[Hh(u,V(d)?d[0]:d,h)],g=!s||!o,y=!s&&o,v=od(i,r),m=v.nameStyle,_=v.valueStyle;return"richText"===r?(s?"":c)+(o?"":fd(t,p,m))+(a?"":function(t,e,n,i,r){var o=[r],a=i?10:20;return n&&o.push({padding:[0,0,0,a],align:"right"}),t.markupStyleCreator.wrapRichTextStyle(e.join("  "),o)}(t,f,g,y,_)):dd((s?"":c)+(o?"":function(t,e,n){return'<span style="'+n+";"+(e?"margin-left:2px":"")+'">'+Gh(t)+"</span>"}(p,!s,m))+(a?"":function(t,e,n,i){var r=n?"10px":"20px";return'<span style="'+(e?"float:right;margin-left:"+r:"")+";"+i+'">'+P(t,(function(t){return Gh(t)})).join("&nbsp;&nbsp;")+"</span>"}(f,g,y,_)),n)}}}};function cd(t,e,n,i,r,o){if(t){var a=ud(t);a.planLayout(t);var s={useUTC:r,renderMode:n,orderMode:i,markupStyleCreator:e};return a.build(s,t,0,o)}}function pd(t){var e=t.__gapLevelBetweenSubBlocks;return{html:ad[e],richText:sd[e]}}function dd(t,e){return'<div style="'+("margin: "+e+"px 0 0")+';line-height:1;">'+t+'<div style="clear:both"></div></div>'}function fd(t,e,n){return t.markupStyleCreator.wrapRichTextStyle(e,n)}function gd(t,e){return Zh(t.getData().getItemVisual(e,"style")[t.visualDrawType])}function yd(t,e){var n=t.get("padding");return null!=n?n:"richText"===e?[8,10]:10}var vd=function(){function t(){this.richTextStyles={},this._nextStyleNameId=ir()}return t.prototype._generateStyleName=function(){return"__EC_aUTo_"+this._nextStyleNameId++},t.prototype.makeTooltipMarker=function(t,e,n){var i="richText"===n?this._generateStyleName():null,r=Uh({color:e,type:t,renderMode:n,markerId:i});return G(r)?r:(this.richTextStyles[i]=r.style,r.content)},t.prototype.wrapRichTextStyle=function(t,e){var n={};V(e)?k(e,(function(t){return M(n,t)})):M(n,e);var i=this._generateStyleName();return this.richTextStyles[i]=n,"{"+i+"|"+t+"}"},t}();function md(t){var e,n,i,r,o=t.series,a=t.dataIndex,s=t.multipleSeries,l=o.getData(),u=l.mapDimensionsAll("defaultedTooltip"),h=u.length,c=o.getRawValue(a),p=V(c),d=gd(o,a);if(h>1||p&&!h){var f=function(t,e,n,i,r){var o=e.getData(),a=O(t,(function(t,e,n){var i=o.getDimensionInfo(n);return t||i&&!1!==i.tooltip&&null!=i.displayName}),!1),s=[],l=[],u=[];function h(t,e){var n=o.getDimensionInfo(e);n&&!1!==n.otherDims.tooltip&&(a?u.push(ld("nameValue",{markerType:"subItem",markerColor:r,name:n.displayName,value:t,valueType:n.type})):(s.push(t),l.push(n.type)))}return i.length?k(i,(function(t){h(Pp(o,n,t),t)})):k(t,h),{inlineValues:s,inlineValueTypes:l,blocks:u}}(c,o,a,u,d);e=f.inlineValues,n=f.inlineValueTypes,i=f.blocks,r=f.inlineValues[0]}else if(h){var g=l.getDimensionInfo(u[0]);r=e=Pp(l,a,u[0]),n=g.type}else r=e=p?c[0]:c;var y=yr(o),v=y&&o.name||"",m=l.getName(a),_=s?v:m;return ld("section",{header:v,noHeader:s||!y,sortParam:r,blocks:[ld("nameValue",{markerType:"item",markerColor:d,name:_,noName:!rt(_),value:e,valueType:n})].concat(i||[])})}var _d=_r();function xd(t,e){return t.getName(e)||t.getId(e)}var bd=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e._selectedDataIndicesMap={},e}return e(n,t),n.prototype.init=function(t,e,n){this.seriesIndex=this.componentIndex,this.dataTask=Ep({count:Sd,reset:Md}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(t,n),(_d(this).sourceManager=new ed(this)).prepareSource();var i=this.getInitialData(t,n);Td(i,this),this.dataTask.context.data=i,_d(this).dataBeforeProcessed=i,wd(this),this._initSelectedMapFromData(i)},n.prototype.mergeDefaultAndTheme=function(t,e){var n=nc(this),i=n?rc(t):{},r=this.subType;sc.hasClass(r)&&(r+="Series"),w(t,e.getTheme().get(this.subType)),w(t,this.getDefaultOption()),ur(t,"label",["show"]),this.fillDataTextStyle(t.data),n&&ic(t,i,n)},n.prototype.mergeOption=function(t,e){t=w(this.option,t,!0),this.fillDataTextStyle(t.data);var n=nc(this);n&&ic(this.option,t,n);var i=_d(this).sourceManager;i.dirty(),i.prepareSource();var r=this.getInitialData(t,e);Td(r,this),this.dataTask.dirty(),this.dataTask.context.data=r,_d(this).dataBeforeProcessed=r,wd(this),this._initSelectedMapFromData(r)},n.prototype.fillDataTextStyle=function(t){if(t&&!U(t))for(var e=["show"],n=0;n<t.length;n++)t[n]&&t[n].label&&ur(t[n],"label",e)},n.prototype.getInitialData=function(t,e){},n.prototype.appendData=function(t){this.getRawData().appendData(t.data)},n.prototype.getData=function(t){var e=Ad(this);if(e){var n=e.context.data;return null==t?n:n.getLinkedData(t)}return _d(this).data},n.prototype.getAllData=function(){var t=this.getData();return t&&t.getLinkedDataAll?t.getLinkedDataAll():[{data:t}]},n.prototype.setData=function(t){var e=Ad(this);if(e){var n=e.context;n.outputData=t,e!==this.dataTask&&(n.data=t)}_d(this).data=t},n.prototype.getSource=function(){return _d(this).sourceManager.getSource()},n.prototype.getRawData=function(){return _d(this).dataBeforeProcessed},n.prototype.getBaseAxis=function(){var t=this.coordinateSystem;return t&&t.getBaseAxis&&t.getBaseAxis()},n.prototype.formatTooltip=function(t,e,n){return md({series:this,dataIndex:t,multipleSeries:e})},n.prototype.isAnimationEnabled=function(){if(o.node)return!1;var t=this.getShallow("animation");return t&&this.getData().count()>this.getShallow("animationThreshold")&&(t=!1),!!t},n.prototype.restoreData=function(){this.dataTask.dirty()},n.prototype.getColorFromPalette=function(t,e,n){var i=this.ecModel,r=Cc.prototype.getColorFromPalette.call(this,t,e,n);return r||(r=i.getColorFromPalette(t,e,n)),r},n.prototype.coordDimToDataDim=function(t){return this.getRawData().mapDimensionsAll(t)},n.prototype.getProgressive=function(){return this.get("progressive")},n.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},n.prototype.select=function(t,e){this._innerSelect(this.getData(e),t)},n.prototype.unselect=function(t,e){var n=this.option.selectedMap;if(n)for(var i=this.getData(e),r=0;r<t.length;r++){var o=xd(i,t[r]);n[o]=!1,this._selectedDataIndicesMap[o]=-1}},n.prototype.toggleSelect=function(t,e){for(var n=[],i=0;i<t.length;i++)n[0]=t[i],this.isSelected(t[i],e)?this.unselect(n,e):this.select(n,e)},n.prototype.getSelectedDataIndices=function(){for(var t=this._selectedDataIndicesMap,e=E(t),n=[],i=0;i<e.length;i++){var r=t[e[i]];r>=0&&n.push(r)}return n},n.prototype.isSelected=function(t,e){var n=this.option.selectedMap;return n&&n[xd(this.getData(e),t)]||!1},n.prototype._innerSelect=function(t,e){var n,i,r=this.option.selectedMode,o=e.length;if(r&&o)if("multiple"===r)for(var a=this.option.selectedMap||(this.option.selectedMap={}),s=0;s<o;s++){var l=e[s];a[h=xd(t,l)]=!0,this._selectedDataIndicesMap[h]=t.getRawIndex(l)}else if("single"===r||!0===r){var u=e[o-1],h=xd(t,u);this.option.selectedMap=((n={})[h]=!0,n),this._selectedDataIndicesMap=((i={})[h]=t.getRawIndex(u),i)}},n.prototype._initSelectedMapFromData=function(t){if(!this.option.selectedMap){var e=[];t.hasItemOption&&t.each((function(n){var i=t.getRawDataItem(n);"object"==typeof i&&i.selected&&e.push(n)})),e.length>0&&this._innerSelect(t,e)}},n.registerClass=function(t){return sc.registerClass(t)},n.protoInitialize=function(){var t=n.prototype;t.type="series.__base__",t.seriesIndex=0,t.useColorPaletteOnData=!1,t.ignoreStyleOnData=!1,t.hasSymbolVisual=!1,t.defaultSymbol="circle",t.visualStyleAccessPath="itemStyle",t.visualDrawType="fill"}(),n}(sc);function wd(t){var e=t.name;yr(t)||(t.name=function(t){var e=t.getRawData(),n=e.mapDimensionsAll("seriesName"),i=[];return k(n,(function(t){var n=e.getDimensionInfo(t);n.displayName&&i.push(n.displayName)})),i.join(" ")}(t)||e)}function Sd(t){return t.model.getRawData().count()}function Md(t){var e=t.model;return e.setData(e.getRawData().cloneShallow()),Id}function Id(t,e){e.outputData&&t.end>e.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function Td(t,e){k(i(t.CHANGABLE_METHODS,t.DOWNSAMPLE_METHODS),(function(n){t.wrapMethod(n,B(Cd,e))}))}function Cd(t,e){var n=Ad(t);return n&&n.setOutputEnd((e||this).count()),e}function Ad(t){var e=(t.ecModel||{}).scheduler,n=e&&e.getPipeline(t.uid);if(n){var i=n.currentTask;if(i){var r=i.agentStubMap;r&&(i=r.get(t.uid))}return i}}D(bd,Rp),D(bd,Cc),Pr(bd,sc);var Dd=function(){function t(){this.group=new Li,this.uid=ah("viewComponent")}return t.prototype.init=function(t,e){},t.prototype.render=function(t,e,n,i){},t.prototype.dispose=function(t,e){},t.prototype.updateView=function(t,e,n,i){},t.prototype.updateLayout=function(t,e,n,i){},t.prototype.updateVisual=function(t,e,n,i){},t.prototype.blurSeries=function(t,e){},t}();function Ld(){var t=_r();return function(e){var n=t(e),i=e.pipelineContext,r=!!n.large,o=!!n.progressiveRender,a=n.large=!(!i||!i.large),s=n.progressiveRender=!(!i||!i.progressiveRender);return!(r===a&&o===s)&&"reset"}}Lr(Dd),Er(Dd);var kd=_r(),Pd=Ld(),Od=function(){function t(){this.group=new Li,this.uid=ah("viewChart"),this.renderTask=Ep({plan:Ed,reset:zd}),this.renderTask.context={view:this}}return t.prototype.init=function(t,e){},t.prototype.render=function(t,e,n,i){},t.prototype.highlight=function(t,e,n,i){Nd(t.getData(),i,"emphasis")},t.prototype.downplay=function(t,e,n,i){Nd(t.getData(),i,"normal")},t.prototype.remove=function(t,e){this.group.removeAll()},t.prototype.dispose=function(t,e){},t.prototype.updateView=function(t,e,n,i){this.render(t,e,n,i)},t.prototype.updateLayout=function(t,e,n,i){this.render(t,e,n,i)},t.prototype.updateVisual=function(t,e,n,i){this.render(t,e,n,i)},t.markUpdateMethod=function(t,e){kd(t).updateMethod=e},t.protoInitialize=void(t.prototype.type="chart"),t}();function Rd(t,e,n){t&&("emphasis"===e?Ss:Ms)(t,n)}function Nd(t,e,n){var i=mr(t,e),r=e&&null!=e.highlightKey?function(t){var e=rs[t];return null==e&&is<=32&&(e=rs[t]=is++),e}(e.highlightKey):null;null!=i?k(lr(i),(function(e){Rd(t.getItemGraphicEl(e),n,r)})):t.eachItemGraphicEl((function(t){Rd(t,n,r)}))}function Ed(t){return Pd(t.model)}function zd(t){var e=t.model,n=t.ecModel,i=t.api,r=t.payload,o=e.pipelineContext.progressiveRender,a=t.view,s=r&&kd(r).updateMethod,l=o?"incrementalPrepareRender":s&&a[s]?s:"render";return"render"!==l&&a[l](e,n,i,r),Bd[l]}Lr(Od),Er(Od);var Bd={incrementalPrepareRender:{progress:function(t,e){e.view.incrementalRender(t,e.model,e.ecModel,e.api,e.payload)}},render:{forceFirstProgress:!0,progress:function(t,e){e.view.render(e.model,e.ecModel,e.api,e.payload)}}},Vd="\0__throttleOriginMethod",Fd="\0__throttleRate";function Gd(t,e,n){var i,r,o,a,s,l=0,u=0,h=null;function c(){u=(new Date).getTime(),h=null,t.apply(o,a||[])}e=e||0;var p=function(){for(var t=[],p=0;p<arguments.length;p++)t[p]=arguments[p];i=(new Date).getTime(),o=this,a=t;var d=s||e,f=s||n;s=null,r=i-(f?l:u)-d,clearTimeout(h),f?h=setTimeout(c,d):r>=0?c():h=setTimeout(c,-r),l=i};return p.clear=function(){h&&(clearTimeout(h),h=null)},p.debounceNextCall=function(t){s=t},p}function Hd(t,e,n,i){var r=t[e];if(r){var o=r[Vd]||r,a=r["\0__throttleType"];if(r[Fd]!==n||a!==i){if(null==n||!i)return t[e]=o;(r=t[e]=Gd(o,n,"debounce"===i))[Vd]=o,r["\0__throttleType"]=i,r[Fd]=n}return r}}var Wd=_r(),Yd={itemStyle:zr(eh,!0),lineStyle:zr(Ju,!0)},Xd={lineStyle:"stroke",itemStyle:"fill"};function Ud(t,e){var n=t.visualStyleMapper||Yd[e];return n||(console.warn("Unkown style type '"+e+"'."),Yd.itemStyle)}function Zd(t,e){var n=t.visualDrawType||Xd[e];return n||(console.warn("Unkown style type '"+e+"'."),"fill")}var jd={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var n=t.getData(),i=t.visualStyleAccessPath||"itemStyle",r=t.getModel(i),o=Ud(t,i)(r),a=r.getShallow("decal");a&&(n.setVisual("decal",a),a.dirty=!0);var s=Zd(t,i),l=o[s],u=F(l)?l:null;if(o[s]&&!u||(o[s]=t.getColorFromPalette(t.name,null,e.getSeriesCount()),n.setVisual("colorFromPalette",!0)),n.setVisual("style",o),n.setVisual("drawType",s),!e.isSeriesFiltered(t)&&u)return n.setVisual("colorFromPalette",!1),{dataEach:function(e,n){var i=t.getDataParams(n),r=M({},o);r[s]=u(i),e.setItemVisual(n,"style",r)}}}},qd=new rh,Kd={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){if(!t.ignoreStyleOnData&&!e.isSeriesFiltered(t)){var n=t.getData(),i=t.visualStyleAccessPath||"itemStyle",r=Ud(t,i),o=n.getVisual("drawType");return{dataEach:n.hasItemOption?function(t,e){var n=t.getRawDataItem(e);if(n&&n[i]){qd.option=n[i];var a=r(qd);M(t.ensureUniqueItemVisual(e,"style"),a),qd.option.decal&&(t.setItemVisual(e,"decal",qd.option.decal),qd.option.decal.dirty=!0),o in a&&t.setItemVisual(e,"colorFromPalette",!1)}}:null}}}},$d={performRawSeries:!0,overallReset:function(t){var e=lt();t.eachSeries((function(t){if(t.useColorPaletteOnData){var n=e.get(t.type);n||(n={},e.set(t.type,n)),Wd(t).scope=n}})),t.eachSeries((function(e){if(e.useColorPaletteOnData&&!t.isSeriesFiltered(e)){var n=e.getRawData(),i={},r=e.getData(),o=Wd(e).scope,a=e.visualStyleAccessPath||"itemStyle",s=Zd(e,a);r.each((function(t){var e=r.getRawIndex(t);i[e]=t})),n.each((function(t){var a=i[t];if(r.getItemVisual(a,"colorFromPalette")){var l=r.ensureUniqueItemVisual(a,"style"),u=n.getName(t)||t+"",h=n.count();l[s]=e.getColorFromPalette(u,o,h)}}))}}))}},Jd=Math.PI;var Qd=function(){function t(t,e,n,i){this._stageTaskMap=lt(),this.ecInstance=t,this.api=e,n=this._dataProcessorHandlers=n.slice(),i=this._visualHandlers=i.slice(),this._allHandlers=n.concat(i)}return t.prototype.restoreData=function(t,e){t.restoreData(e),this._stageTaskMap.each((function(t){var e=t.overallTask;e&&e.dirty()}))},t.prototype.getPerformArgs=function(t,e){if(t.__pipeline){var n=this._pipelineMap.get(t.__pipeline.id),i=n.context,r=!e&&n.progressiveEnabled&&(!i||i.progressiveRender)&&t.__idxInPipeline>n.blockIndex?n.step:null,o=i&&i.modDataCount;return{step:r,modBy:null!=o?Math.ceil(o/r):null,modDataCount:o}}},t.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},t.prototype.updateStreamModes=function(t,e){var n=this._pipelineMap.get(t.uid),i=t.getData().count(),r=n.progressiveEnabled&&e.incrementalPrepareRender&&i>=n.threshold,o=t.get("large")&&i>=t.get("largeThreshold"),a="mod"===t.get("progressiveChunkMode")?i:null;t.pipelineContext=n.context={progressiveRender:r,modDataCount:a,large:o}},t.prototype.restorePipelines=function(t){var e=this,n=e._pipelineMap=lt();t.eachSeries((function(t){var i=t.getProgressive(),r=t.uid;n.set(r,{id:r,head:null,tail:null,threshold:t.getProgressiveThreshold(),progressiveEnabled:i&&!(t.preventIncremental&&t.preventIncremental()),blockIndex:-1,step:Math.round(i||700),count:0}),e._pipe(t,t.dataTask)}))},t.prototype.prepareStageTasks=function(){var t=this._stageTaskMap,e=this.api.getModel(),n=this.api;k(this._allHandlers,(function(i){var r=t.get(i.uid)||t.set(i.uid,{}),o="";it(!(i.reset&&i.overallReset),o),i.reset&&this._createSeriesStageTask(i,r,e,n),i.overallReset&&this._createOverallStageTask(i,r,e,n)}),this)},t.prototype.prepareView=function(t,e,n,i){var r=t.renderTask,o=r.context;o.model=e,o.ecModel=n,o.api=i,r.__block=!t.incrementalPrepareRender,this._pipe(e,r)},t.prototype.performDataProcessorTasks=function(t,e){this._performStageTasks(this._dataProcessorHandlers,t,e,{block:!0})},t.prototype.performVisualTasks=function(t,e,n){this._performStageTasks(this._visualHandlers,t,e,n)},t.prototype._performStageTasks=function(t,e,n,i){i=i||{};var r=!1,o=this;function a(t,e){return t.setDirty&&(!t.dirtyMap||t.dirtyMap.get(e.__pipeline.id))}k(t,(function(t,s){if(!i.visualType||i.visualType===t.visualType){var l=o._stageTaskMap.get(t.uid),u=l.seriesTaskMap,h=l.overallTask;if(h){var c,p=h.agentStubMap;p.each((function(t){a(i,t)&&(t.dirty(),c=!0)})),c&&h.dirty(),o.updatePayload(h,n);var d=o.getPerformArgs(h,i.block);p.each((function(t){t.perform(d)})),h.perform(d)&&(r=!0)}else u&&u.each((function(s,l){a(i,s)&&s.dirty();var u=o.getPerformArgs(s,i.block);u.skip=!t.performRawSeries&&e.isSeriesFiltered(s.context.model),o.updatePayload(s,n),s.perform(u)&&(r=!0)}))}})),this.unfinished=r||this.unfinished},t.prototype.performSeriesTasks=function(t){var e;t.eachSeries((function(t){e=t.dataTask.perform()||e})),this.unfinished=e||this.unfinished},t.prototype.plan=function(){this._pipelineMap.each((function(t){var e=t.tail;do{if(e.__block){t.blockIndex=e.__idxInPipeline;break}e=e.getUpstream()}while(e)}))},t.prototype.updatePayload=function(t,e){"remain"!==e&&(t.context.payload=e)},t.prototype._createSeriesStageTask=function(t,e,n,i){var r=this,o=e.seriesTaskMap,a=e.seriesTaskMap=lt(),s=t.seriesType,l=t.getTargetSeries;function u(e){var s=e.uid,l=a.set(s,o&&o.get(s)||Ep({plan:of,reset:af,count:uf}));l.context={model:e,ecModel:n,api:i,useClearVisual:t.isVisual&&!t.isLayout,plan:t.plan,reset:t.reset,scheduler:r},r._pipe(e,l)}t.createOnAllSeries?n.eachRawSeries(u):s?n.eachRawSeriesByType(s,u):l&&l(n,i).each(u)},t.prototype._createOverallStageTask=function(t,e,n,i){var r=this,o=e.overallTask=e.overallTask||Ep({reset:tf});o.context={ecModel:n,api:i,overallReset:t.overallReset,scheduler:r};var a=o.agentStubMap,s=o.agentStubMap=lt(),l=t.seriesType,u=t.getTargetSeries,h=!0,c=!1,p="";function d(t){var e=t.uid,n=s.set(e,a&&a.get(e)||(c=!0,Ep({reset:ef,onDirty:rf})));n.context={model:t,overallProgress:h},n.agent=o,n.__block=h,r._pipe(t,n)}it(!t.createOnAllSeries,p),l?n.eachRawSeriesByType(l,d):u?u(n,i).each(d):(h=!1,k(n.getSeries(),d)),c&&o.dirty()},t.prototype._pipe=function(t,e){var n=t.uid,i=this._pipelineMap.get(n);!i.head&&(i.head=e),i.tail&&i.tail.pipe(e),i.tail=e,e.__idxInPipeline=i.count++,e.__pipeline=i},t.wrapStageHandler=function(t,e){return F(t)&&(t={overallReset:t,seriesType:hf(t)}),t.uid=ah("stageHandler"),e&&(t.visualType=e),t},t}();function tf(t){t.overallReset(t.ecModel,t.api,t.payload)}function ef(t){return t.overallProgress&&nf}function nf(){this.agent.dirty(),this.getDownstream().dirty()}function rf(){this.agent&&this.agent.dirty()}function of(t){return t.plan?t.plan(t.model,t.ecModel,t.api,t.payload):null}function af(t){t.useClearVisual&&t.data.clearAllVisual();var e=t.resetDefines=lr(t.reset(t.model,t.ecModel,t.api,t.payload));return e.length>1?P(e,(function(t,e){return lf(e)})):sf}var sf=lf(0);function lf(t){return function(e,n){var i=n.data,r=n.resetDefines[t];if(r&&r.dataEach)for(var o=e.start;o<e.end;o++)r.dataEach(i,o);else r&&r.progress&&r.progress(e,i)}}function uf(t){return t.data.count()}function hf(t){cf=null;try{t(pf,df)}catch(t){}return cf}var cf,pf={},df={};function ff(t,e){for(var n in e.prototype)t[n]=pt}ff(pf,Lc),ff(df,Nc),pf.eachSeriesByType=pf.eachRawSeriesByType=function(t){cf=t},pf.eachComponent=function(t){"series"===t.mainType&&t.subType&&(cf=t.subType)};var gf=["#37A2DA","#32C5E9","#67E0E3","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#E062AE","#E690D1","#e7bcf3","#9d96f5","#8378EA","#96BFFF"],yf={color:gf,colorLayer:[["#37A2DA","#ffd85c","#fd7b5f"],["#37A2DA","#67E0E3","#FFDB5C","#ff9f7f","#E062AE","#9d96f5"],["#37A2DA","#32C5E9","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#e7bcf3","#8378EA","#96BFFF"],gf]},vf=["#4992ff","#7cffb2","#fddd60","#ff6e76","#58d9f9","#05c091","#ff8a45","#8d48e3","#dd79ff"],mf={darkMode:!0,color:vf,backgroundColor:"#100C2A",axisPointer:{lineStyle:{color:"#817f91"},crossStyle:{color:"#817f91"},label:{color:"#fff"}},legend:{textStyle:{color:"#B9B8CE"}},textStyle:{color:"#B9B8CE"},title:{textStyle:{color:"#EEF1FA"},subtextStyle:{color:"#B9B8CE"}},toolbox:{iconStyle:{borderColor:"#B9B8CE"}},dataZoom:{borderColor:"#71708A",textStyle:{color:"#B9B8CE"},brushStyle:{color:"rgba(135,163,206,0.3)"},handleStyle:{color:"#353450",borderColor:"#C5CBE3"},moveHandleStyle:{color:"#B0B6C3",opacity:.3},fillerColor:"rgba(135,163,206,0.2)",emphasis:{handleStyle:{borderColor:"#91B7F2",color:"#4D587D"},moveHandleStyle:{color:"#636D9A",opacity:.7}},dataBackground:{lineStyle:{color:"#71708A",width:1},areaStyle:{color:"#71708A"}},selectedDataBackground:{lineStyle:{color:"#87A3CE"},areaStyle:{color:"#87A3CE"}}},visualMap:{textStyle:{color:"#B9B8CE"}},timeline:{lineStyle:{color:"#B9B8CE"},label:{color:"#B9B8CE"},controlStyle:{color:"#B9B8CE",borderColor:"#B9B8CE"}},calendar:{itemStyle:{color:"#100C2A"},dayLabel:{color:"#B9B8CE"},monthLabel:{color:"#B9B8CE"},yearLabel:{color:"#B9B8CE"}},timeAxis:{axisLine:{lineStyle:{color:"#B9B8CE"}},splitLine:{lineStyle:{color:"#484753"}},splitArea:{areaStyle:{color:["rgba(255,255,255,0.02)","rgba(255,255,255,0.05)"]}},minorSplitLine:{lineStyle:{color:"#20203B"}}},logAxis:{axisLine:{lineStyle:{color:"#B9B8CE"}},splitLine:{lineStyle:{color:"#484753"}},splitArea:{areaStyle:{color:["rgba(255,255,255,0.02)","rgba(255,255,255,0.05)"]}},minorSplitLine:{lineStyle:{color:"#20203B"}}},valueAxis:{axisLine:{lineStyle:{color:"#B9B8CE"}},splitLine:{lineStyle:{color:"#484753"}},splitArea:{areaStyle:{color:["rgba(255,255,255,0.02)","rgba(255,255,255,0.05)"]}},minorSplitLine:{lineStyle:{color:"#20203B"}}},categoryAxis:{axisLine:{lineStyle:{color:"#B9B8CE"}},splitLine:{lineStyle:{color:"#484753"}},splitArea:{areaStyle:{color:["rgba(255,255,255,0.02)","rgba(255,255,255,0.05)"]}},minorSplitLine:{lineStyle:{color:"#20203B"}}},line:{symbol:"circle"},graph:{color:vf},gauge:{title:{color:"#B9B8CE"},axisLine:{lineStyle:{color:[[1,"rgba(207,212,219,0.2)"]]}},axisLabel:{color:"#B9B8CE"},detail:{color:"#EEF1FA"}},candlestick:{itemStyle:{color:"#f64e56",color0:"#54ea92",borderColor:"#f64e56",borderColor0:"#54ea92"}}};function _f(t){G(t)&&(t=(new DOMParser).parseFromString(t,"text/xml"));var e=t;for(9===e.nodeType&&(e=e.firstChild);"svg"!==e.nodeName.toLowerCase()||1!==e.nodeType;)e=e.nextSibling;return e}mf.categoryAxis.splitLine.show=!1;var xf=lt(),bf=function(t,e,n){var i;if(V(e))i=e;else if(e.svg)i=[{type:"svg",source:e.svg,specialAreas:e.specialAreas}];else{var r=e.geoJson||e.geoJSON;r&&!e.features&&(n=e.specialAreas,e=r),i=[{type:"geoJSON",source:e,specialAreas:n}]}return k(i,(function(t){var e=t.type;"geoJson"===e&&(e=t.type="geoJSON");var n=Sf[e];n(t)})),xf.set(t,i)},wf=function(t){return xf.get(t)},Sf={geoJSON:function(t){var e=t.source;t.geoJSON=G(e)?"undefined"!=typeof JSON&&JSON.parse?JSON.parse(e):new Function("return ("+e+");")():e},svg:function(t){t.svgXML=_f(t.source)}},Mf=function(){function t(){}return t.prototype.normalizeQuery=function(t){var e={},n={},i={};if(G(t)){var r=Dr(t);e.mainType=r.main||null,e.subType=r.sub||null}else{var o=["Index","Name","Id"],a={name:1,dataIndex:1,dataType:1};k(t,(function(t,r){for(var s=!1,l=0;l<o.length;l++){var u=o[l],h=r.lastIndexOf(u);if(h>0&&h===r.length-u.length){var c=r.slice(0,h);"data"!==c&&(e.mainType=c,e[u.toLowerCase()]=t,s=!0)}}a.hasOwnProperty(r)&&(n[r]=t,s=!0),s||(i[r]=t)}))}return{cptQuery:e,dataQuery:n,otherQuery:i}},t.prototype.filter=function(t,e){var n=this.eventInfo;if(!n)return!0;var i=n.targetEl,r=n.packedEvent,o=n.model,a=n.view;if(!o||!a)return!0;var s=e.cptQuery,l=e.dataQuery;return u(s,o,"mainType")&&u(s,o,"subType")&&u(s,o,"index","componentIndex")&&u(s,o,"name")&&u(s,o,"id")&&u(l,r,"name")&&u(l,r,"dataIndex")&&u(l,r,"dataType")&&(!a.filterForExposedEvent||a.filterForExposedEvent(t,e.otherQuery,i,r));function u(t,e,n,i){return null==t[n]||e[i||n]===t[n]}},t.prototype.afterTrigger=function(){this.eventInfo=null},t}(),If={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var n=t.getData();if(t.legendSymbol&&n.setVisual("legendSymbol",t.legendSymbol),t.hasSymbolVisual){var i=t.get("symbol"),r=t.get("symbolSize"),o=t.get("symbolKeepAspect"),a=t.get("symbolRotate"),s=F(i),l=F(r),u=F(a),h=s||l||u,c=!s&&i?i:t.defaultSymbol,p=l?null:r,d=u?null:a;if(n.setVisual({legendSymbol:t.legendSymbol||c,symbol:c,symbolSize:p,symbolKeepAspect:o,symbolRotate:d}),!e.isSeriesFiltered(t))return{dataEach:h?function(e,n){var o=t.getRawValue(n),h=t.getDataParams(n);s&&e.setItemVisual(n,"symbol",i(o,h)),l&&e.setItemVisual(n,"symbolSize",r(o,h)),u&&e.setItemVisual(n,"symbolRotate",a(o,h))}:null}}}};function Tf(t,e,n){switch(n){case"color":return t.getItemVisual(e,"style")[t.getVisual("drawType")];case"opacity":return t.getItemVisual(e,"style").opacity;case"symbol":case"symbolSize":case"liftZ":return t.getItemVisual(e,n);default:0}}function Cf(t,e){switch(e){case"color":return t.getVisual("style")[t.getVisual("drawType")];case"opacity":return t.getVisual("style").opacity;case"symbol":case"symbolSize":case"liftZ":return t.getVisual(e);default:0}}function Af(t,e,n,i){switch(n){case"color":t.ensureUniqueItemVisual(e,"style")[t.getVisual("drawType")]=i,t.setItemVisual(e,"colorFromPalette",!1);break;case"opacity":t.ensureUniqueItemVisual(e,"style").opacity=i;break;case"symbol":case"symbolSize":case"liftZ":t.setItemVisual(e,n,i);break;default:0}}var Df=2*Math.PI,Lf=da.CMD,kf=["top","right","bottom","left"];function Pf(t,e,n,i,r){var o=n.width,a=n.height;switch(t){case"top":i.set(n.x+o/2,n.y-e),r.set(0,-1);break;case"bottom":i.set(n.x+o/2,n.y+a+e),r.set(0,1);break;case"left":i.set(n.x-e,n.y+a/2),r.set(-1,0);break;case"right":i.set(n.x+o+e,n.y+a/2),r.set(1,0)}}function Of(t,e,n,i,r,o,a,s,l){a-=t,s-=e;var u=Math.sqrt(a*a+s*s),h=(a/=u)*n+t,c=(s/=u)*n+e;if(Math.abs(i-r)%Df<1e-4)return l[0]=h,l[1]=c,u-n;if(o){var p=i;i=ma(r),r=ma(p)}else i=ma(i),r=ma(r);i>r&&(r+=Df);var d=Math.atan2(s,a);if(d<0&&(d+=Df),d>=i&&d<=r||d+Df>=i&&d+Df<=r)return l[0]=h,l[1]=c,u-n;var f=n*Math.cos(i)+t,g=n*Math.sin(i)+e,y=n*Math.cos(r)+t,v=n*Math.sin(r)+e,m=(f-a)*(f-a)+(g-s)*(g-s),_=(y-a)*(y-a)+(v-s)*(v-s);return m<_?(l[0]=f,l[1]=g,Math.sqrt(m)):(l[0]=y,l[1]=v,Math.sqrt(_))}function Rf(t,e,n,i,r,o,a,s){var l=r-t,u=o-e,h=n-t,c=i-e,p=Math.sqrt(h*h+c*c),d=(l*(h/=p)+u*(c/=p))/p;s&&(d=Math.min(Math.max(d,0),1)),d*=p;var f=a[0]=t+d*h,g=a[1]=e+d*c;return Math.sqrt((f-r)*(f-r)+(g-o)*(g-o))}function Nf(t,e,n,i,r,o,a){n<0&&(t+=n,n=-n),i<0&&(e+=i,i=-i);var s=t+n,l=e+i,u=a[0]=Math.min(Math.max(r,t),s),h=a[1]=Math.min(Math.max(o,e),l);return Math.sqrt((u-r)*(u-r)+(h-o)*(h-o))}var Ef=[];function zf(t,e,n){var i=Nf(e.x,e.y,e.width,e.height,t.x,t.y,Ef);return n.set(Ef[0],Ef[1]),i}function Bf(t,e,n){for(var i,r,o=0,a=0,s=0,l=0,u=1/0,h=e.data,c=t.x,p=t.y,d=0;d<h.length;){var f=h[d++];1===d&&(s=o=h[d],l=a=h[d+1]);var g=u;switch(f){case Lf.M:o=s=h[d++],a=l=h[d++];break;case Lf.L:g=Rf(o,a,h[d],h[d+1],c,p,Ef,!0),o=h[d++],a=h[d++];break;case Lf.C:g=Io(o,a,h[d++],h[d++],h[d++],h[d++],h[d],h[d+1],c,p,Ef),o=h[d++],a=h[d++];break;case Lf.Q:g=ko(o,a,h[d++],h[d++],h[d],h[d+1],c,p,Ef),o=h[d++],a=h[d++];break;case Lf.A:var y=h[d++],v=h[d++],m=h[d++],_=h[d++],x=h[d++],b=h[d++];d+=1;var w=!!(1-h[d++]);i=Math.cos(x)*m+y,r=Math.sin(x)*_+v,d<=1&&(s=i,l=r),g=Of(y,v,_,x,x+b,w,(c-y)*_/m+y,p,Ef),o=Math.cos(x+b)*m+y,a=Math.sin(x+b)*_+v;break;case Lf.R:g=Nf(s=o=h[d++],l=a=h[d++],h[d++],h[d++],c,p,Ef);break;case Lf.Z:g=Rf(o,a,s,l,c,p,Ef,!0),o=s,a=l}g<u&&(u=g,n.set(Ef[0],Ef[1]))}return u}var Vf=new bn,Ff=new bn,Gf=new bn,Hf=new bn,Wf=new bn;function Yf(t,e){if(t){var n=t.getTextGuideLine(),i=t.getTextContent();if(i&&n){var r=t.textGuideLineConfig||{},o=[[0,0],[0,0],[0,0]],a=r.candidates||kf,s=i.getBoundingRect().clone();s.applyTransform(i.getComputedTransform());var l=1/0,u=r.anchor,h=t.getComputedTransform(),c=h&&me([],h),p=e.get("length2")||0;u&&Gf.copy(u);for(var d=0;d<a.length;d++){Pf(a[d],0,s,Vf,Hf),bn.scaleAndAdd(Ff,Vf,Hf,p),Ff.transform(c);var f=t.getBoundingRect(),g=u?u.distance(Ff):t instanceof Oa?Bf(Ff,t.path,Gf):zf(Ff,f,Gf);g<l&&(l=g,Ff.transform(h),Gf.transform(h),Gf.toArray(o[0]),Ff.toArray(o[1]),Vf.toArray(o[2]))}Zf(o,e.get("minTurnAngle")),n.setShape({points:o})}}}var Xf=[],Uf=new bn;function Zf(t,e){if(e<=180&&e>0){e=e/180*Math.PI,Vf.fromArray(t[0]),Ff.fromArray(t[1]),Gf.fromArray(t[2]),bn.sub(Hf,Vf,Ff),bn.sub(Wf,Gf,Ff);var n=Hf.len(),i=Wf.len();if(!(n<.001||i<.001)){Hf.scale(1/n),Wf.scale(1/i);var r=Hf.dot(Wf);if(Math.cos(e)<r){var o=Rf(Ff.x,Ff.y,Gf.x,Gf.y,Vf.x,Vf.y,Xf,!1);Uf.fromArray(Xf),Uf.scaleAndAdd(Wf,o/Math.tan(Math.PI-e));var a=Gf.x!==Ff.x?(Uf.x-Ff.x)/(Gf.x-Ff.x):(Uf.y-Ff.y)/(Gf.y-Ff.y);if(isNaN(a))return;a<0?bn.copy(Uf,Ff):a>1&&bn.copy(Uf,Gf),Uf.toArray(t[1])}}}}function jf(t,e,n){if(n<=180&&n>0){n=n/180*Math.PI,Vf.fromArray(t[0]),Ff.fromArray(t[1]),Gf.fromArray(t[2]),bn.sub(Hf,Ff,Vf),bn.sub(Wf,Gf,Ff);var i=Hf.len(),r=Wf.len();if(!(i<.001||r<.001))if(Hf.scale(1/i),Wf.scale(1/r),Hf.dot(e)<Math.cos(n)){var o=Rf(Ff.x,Ff.y,Gf.x,Gf.y,Vf.x,Vf.y,Xf,!1);Uf.fromArray(Xf);var a=Math.PI/2,s=a+Math.acos(Wf.dot(e))-n;if(s>=a)bn.copy(Uf,Gf);else{Uf.scaleAndAdd(Wf,o/Math.tan(Math.PI/2-s));var l=Gf.x!==Ff.x?(Uf.x-Ff.x)/(Gf.x-Ff.x):(Uf.y-Ff.y)/(Gf.y-Ff.y);if(isNaN(l))return;l<0?bn.copy(Uf,Ff):l>1&&bn.copy(Uf,Gf)}Uf.toArray(t[1])}}}function qf(t,e,n,i){var r="normal"===n,o=r?t:t.ensureState(n);o.ignore=e;var a=i.get("smooth");a&&!0===a&&(a=.3),o.shape=o.shape||{},a>0&&(o.shape.smooth=a);var s=i.getModel("lineStyle").getLineStyle();r?t.useStyle(s):o.style=s}function Kf(t,e){var n=e.smooth,i=e.points;if(i)if(t.moveTo(i[0][0],i[0][1]),n>0&&i.length>=3){var r=At(i[0],i[1]),o=At(i[1],i[2]);if(!r||!o)return t.lineTo(i[1][0],i[1][1]),void t.lineTo(i[2][0],i[2][1]);var a=Math.min(r,o)*n,s=kt([],i[1],i[0],a/r),l=kt([],i[1],i[2],a/o),u=kt([],s,l,.5);t.bezierCurveTo(s[0],s[1],s[0],s[1],u[0],u[1]),t.bezierCurveTo(l[0],l[1],l[0],l[1],i[2][0],i[2][1])}else for(var h=1;h<i.length;h++)t.lineTo(i[h][0],i[h][1])}function $f(t,e,n){var i=t.getTextGuideLine(),r=t.getTextContent();if(r){for(var o=e.normal,a=o.get("show"),s=r.ignore,l=0;l<ss.length;l++){var u=ss[l],h=e[u],c="normal"===u;if(h){var p=h.get("show");if((c?s:Q(r.states[u]&&r.states[u].ignore,s))||!Q(p,a)){var d=c?i:i&&i.states.normal;d&&(d.ignore=!0);continue}i||(i=new Pl,t.setTextGuideLine(i),c||!s&&a||qf(i,!0,"normal",e.normal),t.stateProxy&&(i.stateProxy=t.stateProxy)),qf(i,!1,u,h)}}if(i){I(i.style,n),i.style.fill=null;var f=o.get("showAbove");(t.textGuideLineConfig=t.textGuideLineConfig||{}).showAbove=f||!1,i.buildPath=Kf}}else i&&t.removeTextGuideLine()}function Jf(t,e){e=e||"labelLine";for(var n={normal:t.getModel(e)},i=0;i<as.length;i++){var r=as[i];n[r]=t.getModel([r,e])}return n}function Qf(t,e,n,i,r,o){var a=t.length;if(!(a<2)){t.sort((function(t,n){return t.rect[e]-n.rect[e]}));for(var s,l=0,u=!1,h=0,c=0;c<a;c++){var p=t[c],d=p.rect;(s=d[e]-l)<0&&(d[e]-=s,p.label[e]-=s,u=!0),h+=Math.max(-s,0),l=d[e]+d[n]}h>0&&o&&x(-h/a,0,a);var f,g,y=t[0],v=t[a-1];return m(),f<0&&b(-f,.8),g<0&&b(g,.8),m(),_(f,g,1),_(g,f,-1),m(),f<0&&w(-f),g<0&&w(g),u}function m(){f=y.rect[e]-i,g=r-v.rect[e]-v.rect[n]}function _(t,e,n){if(t<0){var i=Math.min(e,-t);if(i>0){x(i*n,0,a);var r=i+t;r<0&&b(-r*n,1)}else b(-t*n,1)}}function x(n,i,r){0!==n&&(u=!0);for(var o=i;o<r;o++){var a=t[o];a.rect[e]+=n,a.label[e]+=n}}function b(i,r){for(var o=[],s=0,l=1;l<a;l++){var u=t[l-1].rect,h=Math.max(t[l].rect[e]-u[e]-u[n],0);o.push(h),s+=h}if(s){var c=Math.min(Math.abs(i)/s,r);if(i>0)for(l=0;l<a-1;l++){x(o[l]*c,0,l+1)}else for(l=a-1;l>0;l--){x(-(o[l-1]*c),l,a)}}}function w(t){var e=t<0?-1:1;t=Math.abs(t);for(var n=Math.ceil(t/(a-1)),i=0;i<a-1;i++)if(e>0?x(n,0,i+1):x(-n,a-i-1,a),(t-=n)<=0)return}}function tg(t,e,n,i){return Qf(t,"y","height",e,n,i)}function eg(t){if(t){for(var e=[],n=0;n<t.length;n++)e.push(t[n].slice());return e}}function ng(t,e){var n=t.label,i=e&&e.getTextGuideLine();return{dataIndex:t.dataIndex,dataType:t.dataType,seriesIndex:t.seriesModel.seriesIndex,text:t.label.style.text,rect:t.hostRect,labelRect:t.rect,align:n.style.align,verticalAlign:n.style.verticalAlign,labelLinePoints:eg(i&&i.shape.points)}}var ig=["align","verticalAlign","width","height","fontSize"],rg=new Ce,og=_r(),ag=_r();function sg(t,e,n){for(var i=0;i<n.length;i++){var r=n[i];null!=e[r]&&(t[r]=e[r])}}var lg=["x","y","rotation"],ug=function(){function t(){this._labelList=[],this._chartViewList=[]}return t.prototype.clearLabels=function(){this._labelList=[],this._chartViewList=[]},t.prototype._addLabel=function(t,e,n,i,r){var o=i.style,a=i.__hostTarget.textConfig||{},s=i.getComputedTransform(),l=i.getBoundingRect().plain();Ln.applyTransform(l,l,s),s?rg.setLocalTransform(s):(rg.x=rg.y=rg.rotation=rg.originX=rg.originY=0,rg.scaleX=rg.scaleY=1);var u,h=i.__hostTarget;if(h){u=h.getBoundingRect().plain();var c=h.getComputedTransform();Ln.applyTransform(u,u,c)}var p=u&&h.getTextGuideLine();this._labelList.push({label:i,labelLine:p,seriesModel:n,dataIndex:t,dataType:e,layoutOption:r,computedLayoutOption:null,rect:l,hostRect:u,priority:u?u.width*u.height:0,defaultAttr:{ignore:i.ignore,labelGuideIgnore:p&&p.ignore,x:rg.x,y:rg.y,rotation:rg.rotation,style:{x:o.x,y:o.y,align:o.align,verticalAlign:o.verticalAlign,width:o.width,height:o.height,fontSize:o.fontSize},cursor:i.cursor,attachedPos:a.position,attachedRot:a.rotation}})},t.prototype.addLabelsOfSeries=function(t){var e=this;this._chartViewList.push(t);var n=t.__model,i=n.get("labelLayout");(F(i)||E(i).length)&&t.group.traverse((function(t){if(t.ignore)return!0;var r=t.getTextContent(),o=ns(t);r&&!r.disableLabelLayout&&e._addLabel(o.dataIndex,o.dataType,n,r,i)}))},t.prototype.updateLayoutConfig=function(t){var e=t.getWidth(),n=t.getHeight();function i(t,e){return function(){Yf(t,e)}}for(var r=0;r<this._labelList.length;r++){var o=this._labelList[r],a=o.label,s=a.__hostTarget,l=o.defaultAttr,u=void 0;u=(u="function"==typeof o.layoutOption?o.layoutOption(ng(o,s)):o.layoutOption)||{},o.computedLayoutOption=u;var h=Math.PI/180;s&&s.setTextConfig({local:!1,position:null!=u.x||null!=u.y?null:l.attachedPos,rotation:null!=u.rotate?u.rotate*h:l.attachedRot,offset:[u.dx||0,u.dy||0]});var c=!1;if(null!=u.x?(a.x=Vi(u.x,e),a.setStyle("x",0),c=!0):(a.x=l.x,a.setStyle("x",l.style.x)),null!=u.y?(a.y=Vi(u.y,n),a.setStyle("y",0),c=!0):(a.y=l.y,a.setStyle("y",l.style.y)),u.labelLinePoints){var p=s.getTextGuideLine();p&&(p.setShape({points:u.labelLinePoints}),c=!1)}og(a).needsUpdateLabelLine=c,a.rotation=null!=u.rotate?u.rotate*h:l.rotation;for(var d=0;d<ig.length;d++){var f=ig[d];a.setStyle(f,null!=u[f]?u[f]:l.style[f])}if(u.draggable){if(a.draggable=!0,a.cursor="move",s){var g=o.seriesModel;if(null!=o.dataIndex)g=o.seriesModel.getData(o.dataType).getItemModel(o.dataIndex);a.on("drag",i(s,g.getModel("labelLine")))}}else a.off("drag"),a.cursor=l.cursor}},t.prototype.layout=function(t){var e,n=t.getWidth(),i=t.getHeight(),r=function(t){for(var e=[],n=0;n<t.length;n++){var i=t[n];if(!i.defaultAttr.ignore){var r=i.label,o=r.getComputedTransform(),a=r.getBoundingRect(),s=!o||o[1]<1e-5&&o[2]<1e-5,l=r.style.margin||0,u=a.clone();u.applyTransform(o),u.x-=l/2,u.y-=l/2,u.width+=l,u.height+=l;var h=s?new Kl(a,o):null;e.push({label:r,labelLine:i.labelLine,rect:u,localRect:a,obb:h,priority:i.priority,defaultAttr:i.defaultAttr,layoutOption:i.computedLayoutOption,axisAligned:s,transform:o})}}return e}(this._labelList),o=R(r,(function(t){return"shiftX"===t.layoutOption.moveOverlap})),a=R(r,(function(t){return"shiftY"===t.layoutOption.moveOverlap}));Qf(o,"x","width",0,n,e),tg(a,0,i),function(t){var e=[];t.sort((function(t,e){return e.priority-t.priority}));var n=new Ln(0,0,0,0);function i(t){if(!t.ignore){var e=t.ensureState("emphasis");null==e.ignore&&(e.ignore=!1)}t.ignore=!0}for(var r=0;r<t.length;r++){var o=t[r],a=o.axisAligned,s=o.localRect,l=o.transform,u=o.label,h=o.labelLine;n.copy(o.rect),n.width-=.1,n.height-=.1,n.x+=.05,n.y+=.05;for(var c=o.obb,p=!1,d=0;d<e.length;d++){var f=e[d];if(n.intersect(f.rect)){if(a&&f.axisAligned){p=!0;break}if(f.obb||(f.obb=new Kl(f.localRect,f.transform)),c||(c=new Kl(s,l)),c.intersect(f.obb)){p=!0;break}}}p?(i(u),h&&i(h)):(u.attr("ignore",o.defaultAttr.ignore),h&&h.attr("ignore",o.defaultAttr.labelGuideIgnore),e.push(o))}}(R(r,(function(t){return t.layoutOption.hideOverlap})))},t.prototype.processLabelsOverall=function(){var t=this;k(this._chartViewList,(function(e){var n=e.__model,i=e.ignoreLabelLineUpdate,r=n.isAnimationEnabled();e.group.traverse((function(e){if(e.ignore)return!0;var o=!i,a=e.getTextContent();!o&&a&&(o=og(a).needsUpdateLabelLine),o&&t._updateLabelLine(e,n),r&&t._animateLabels(e,n)}))}))},t.prototype._updateLabelLine=function(t,e){var n=t.getTextContent(),i=ns(t),r=i.dataIndex;if(n&&null!=r){var o=e.getData(i.dataType),a=o.getItemModel(r),s={},l=o.getItemVisual(r,"style"),u=o.getVisual("drawType");s.stroke=l[u];var h=a.getModel("labelLine");$f(t,Jf(a),s),Yf(t,h)}},t.prototype._animateLabels=function(t,e){var n=t.getTextContent(),i=t.getTextGuideLine();if(n&&!n.ignore&&!n.invisible&&!t.disableLabelAnimation&&!_u(t)){var r=(d=og(n)).oldLayout,o=ns(t),a=o.dataIndex,s={x:n.x,y:n.y,rotation:n.rotation},l=e.getData(o.dataType);if(r){n.attr(r);var u=t.prevStates;u&&(C(u,"select")>=0&&n.attr(d.oldLayoutSelect),C(u,"emphasis")>=0&&n.attr(d.oldLayoutEmphasis)),fu(n,s,e,a)}else if(n.attr(s),!Yu(n).valueAnimation){var h=Q(n.style.opacity,1);n.style.opacity=0,gu(n,{style:{opacity:h}},e,a)}if(d.oldLayout=s,n.states.select){var c=d.oldLayoutSelect={};sg(c,s,lg),sg(c,n.states.select,lg)}if(n.states.emphasis){var p=d.oldLayoutEmphasis={};sg(p,s,lg),sg(p,n.states.emphasis,lg)}Uu(n,a,l,e,e)}if(i&&!i.ignore&&!i.invisible){r=(d=ag(i)).oldLayout;var d,f={points:i.shape.points};r?(i.attr({shape:r}),fu(i,{shape:f},e)):(i.setShape(f),i.style.strokePercent=0,gu(i,{style:{strokePercent:1}},e)),d.oldLayout=f}},t}();function hg(t,e){function n(e,n){var i=[];return e.eachComponent({mainType:"series",subType:t,query:n},(function(t){i.push(t.seriesIndex)})),i}k([[t+"ToggleSelect","toggleSelect"],[t+"Select","select"],[t+"UnSelect","unselect"]],(function(t){e(t[0],(function(e,i,r){e=M({},e),r.dispatchAction(M(e,{type:t[1],seriesIndex:n(i,e)}))}))}))}function cg(t,e,n,i,r){var o=t+e;n.isSilent(o)||i.eachComponent({mainType:"series",subType:"pie"},(function(t){for(var e=t.seriesIndex,i=r.selected,a=0;a<i.length;a++)if(i[a].seriesIndex===e){var s=t.getData(),l=mr(s,r.fromActionPayload);n.trigger(o,{type:o,seriesId:t.id,name:V(l)?s.getName(l[0]):s.getName(l),selected:M({},t.option.selectedMap)})}}))}function pg(t,e,n){for(var i;t&&(!e(t)||(i=t,!n));)t=t.__hostTarget||t.parent;return i}var dg=Math.round(9*Math.random()),fg=function(){function t(){this._id="__ec_inner_"+dg++}return t.prototype.get=function(t){return this._guard(t)[this._id]},t.prototype.set=function(t,e){var n=this._guard(t);return"function"==typeof Object.defineProperty?Object.defineProperty(n,this._id,{value:e,enumerable:!1,configurable:!0}):n[this._id]=e,this},t.prototype.delete=function(t){return!!this.has(t)&&(delete this._guard(t)[this._id],!0)},t.prototype.has=function(t){return!!this._guard(t)[this._id]},t.prototype._guard=function(t){if(t!==Object(t))throw TypeError("Value of WeakMap is not a non-null object.");return t},t}(),gg=Oa.extend({type:"triangle",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var n=e.cx,i=e.cy,r=e.width/2,o=e.height/2;t.moveTo(n,i-o),t.lineTo(n+r,i+o),t.lineTo(n-r,i+o),t.closePath()}}),yg=Oa.extend({type:"diamond",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var n=e.cx,i=e.cy,r=e.width/2,o=e.height/2;t.moveTo(n,i-o),t.lineTo(n+r,i),t.lineTo(n,i+o),t.lineTo(n-r,i),t.closePath()}}),vg=Oa.extend({type:"pin",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var n=e.x,i=e.y,r=e.width/5*3,o=Math.max(r,e.height),a=r/2,s=a*a/(o-a),l=i-o+a+s,u=Math.asin(s/a),h=Math.cos(u)*a,c=Math.sin(u),p=Math.cos(u),d=.6*a,f=.7*a;t.moveTo(n-h,l+s),t.arc(n,l,a,Math.PI-u,2*Math.PI+u),t.bezierCurveTo(n+h-c*d,l+s+p*d,n,i-f,n,i),t.bezierCurveTo(n,i-f,n-h+c*d,l+s+p*d,n-h,l+s),t.closePath()}}),mg=Oa.extend({type:"arrow",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var n=e.height,i=e.width,r=e.x,o=e.y,a=i/3*2;t.moveTo(r,o),t.lineTo(r+a,o+n),t.lineTo(r,o+n/4*3),t.lineTo(r-a,o+n),t.lineTo(r,o),t.closePath()}}),_g={line:function(t,e,n,i,r){r.x=t,r.y=e+i/2-1,r.width=n,r.height=2},rect:function(t,e,n,i,r){r.x=t,r.y=e,r.width=n,r.height=i},roundRect:function(t,e,n,i,r){r.x=t,r.y=e,r.width=n,r.height=i,r.r=Math.min(n,i)/4},square:function(t,e,n,i,r){var o=Math.min(n,i);r.x=t,r.y=e,r.width=o,r.height=o},circle:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.r=Math.min(n,i)/2},diamond:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.width=n,r.height=i},pin:function(t,e,n,i,r){r.x=t+n/2,r.y=e+i/2,r.width=n,r.height=i},arrow:function(t,e,n,i,r){r.x=t+n/2,r.y=e+i/2,r.width=n,r.height=i},triangle:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.width=n,r.height=i}},xg={};k({line:Xa,rect:Xa,roundRect:Xa,square:Xa,circle:sl,diamond:yg,pin:vg,arrow:mg,triangle:gg},(function(t,e){xg[e]=new t}));var bg=Oa.extend({type:"symbol",shape:{symbolType:"",x:0,y:0,width:0,height:0},calculateTextPosition:function(t,e,n){var i=Gn(t,e,n),r=this.shape;return r&&"pin"===r.symbolType&&"inside"===e.position&&(i.y=n.y+.4*n.height),i},buildPath:function(t,e,n){var i=e.symbolType;if("none"!==i){var r=xg[i];r||(r=xg[i="rect"]),_g[i](e.x,e.y,e.width,e.height,r.shape),r.buildPath(t,r.shape,n)}}});function wg(t,e){if("image"!==this.type){var n=this.style;this.__isEmptyBrush?(n.stroke=t,n.fill=e||"#fff",n.lineWidth=2):n.fill=t,this.markRedraw()}}function Sg(t,e,n,i,r,o,a){var s,l=0===t.indexOf("empty");return l&&(t=t.substr(5,1).toLowerCase()+t.substr(6)),(s=0===t.indexOf("image://")?lu(t.slice(8),new Ln(e,n,i,r),a?"center":"cover"):0===t.indexOf("path://")?su(t.slice(7),{},new Ln(e,n,i,r),a?"center":"cover"):new bg({shape:{symbolType:t,x:e,y:n,width:i,height:r}})).__isEmptyBrush=l,s.setColor=wg,o&&s.setColor(o),s}function Mg(t,e,n){for(var i="radial"===e.type?function(t,e,n){var i=n.width,r=n.height,o=Math.min(i,r),a=null==e.x?.5:e.x,s=null==e.y?.5:e.y,l=null==e.r?.5:e.r;return e.global||(a=a*i+n.x,s=s*r+n.y,l*=o),t.createRadialGradient(a,s,0,a,s,l)}(t,e,n):function(t,e,n){var i=null==e.x?0:e.x,r=null==e.x2?1:e.x2,o=null==e.y?0:e.y,a=null==e.y2?0:e.y2;return e.global||(i=i*n.width+n.x,r=r*n.width+n.x,o=o*n.height+n.y,a=a*n.height+n.y),i=isNaN(i)?0:i,r=isNaN(r)?1:r,o=isNaN(o)?0:o,a=isNaN(a)?0:a,t.createLinearGradient(i,o,r,a)}(t,e,n),r=e.colorStops,o=0;o<r.length;o++)i.addColorStop(r[o].offset,r[o].color);return i}function Ig(t,e){if(t===e||!t&&!e)return!1;if(!t||!e||t.length!==e.length)return!0;for(var n=0;n<t.length;n++)if(t[n]!==e[n])return!0;return!1}function Tg(t,e){return t&&"solid"!==t&&e>0?(e=e||1,"dashed"===t?[4*e,2*e]:"dotted"===t?[e]:W(t)?[t]:V(t)?t:null):null}var Cg=new da(!0);function Ag(t){var e=t.stroke;return!(null==e||"none"===e||!(t.lineWidth>0))}function Dg(t){var e=t.fill;return null!=e&&"none"!==e}function Lg(t,e){if(null!=e.fillOpacity&&1!==e.fillOpacity){var n=t.globalAlpha;t.globalAlpha=e.fillOpacity*e.opacity,t.fill(),t.globalAlpha=n}else t.fill()}function kg(t,e){if(null!=e.strokeOpacity&&1!==e.strokeOpacity){var n=t.globalAlpha;t.globalAlpha=e.strokeOpacity*e.opacity,t.stroke(),t.globalAlpha=n}else t.stroke()}function Pg(t,e,n){var i=Hr(e.image,e.__image,n);if(Yr(i)){var r=t.createPattern(i,e.repeat||"repeat");if("function"==typeof DOMMatrix){var o=new DOMMatrix;o.rotateSelf(0,0,(e.rotation||0)/Math.PI*180),o.scaleSelf(e.scaleX||1,e.scaleY||1),o.translateSelf(e.x||0,e.y||0),r.setTransform(o)}return r}}var Og=["shadowBlur","shadowOffsetX","shadowOffsetY"],Rg=[["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]];function Ng(t,e,n,i,r){var o=!1;if(!i&&e===(n=n||{}))return!1;(i||e.opacity!==n.opacity)&&(o||(Bg(t,r),o=!0),t.globalAlpha=null==e.opacity?ro.opacity:e.opacity),(i||e.blend!==n.blend)&&(o||(Bg(t,r),o=!0),t.globalCompositeOperation=e.blend||ro.blend);for(var a=0;a<Og.length;a++){var s=Og[a];(i||e[s]!==n[s])&&(o||(Bg(t,r),o=!0),t[s]=t.dpr*(e[s]||0))}return(i||e.shadowColor!==n.shadowColor)&&(o||(Bg(t,r),o=!0),t.shadowColor=e.shadowColor||ro.shadowColor),o}function Eg(t,e,n,i,r){var o=Vg(e,r.inHover),a=i?null:n&&Vg(n,r.inHover)||{};if(o===a)return!1;var s=Ng(t,o,a,i,r);if((i||o.fill!==a.fill)&&(s||(Bg(t,r),s=!0),t.fillStyle=o.fill),(i||o.stroke!==a.stroke)&&(s||(Bg(t,r),s=!0),t.strokeStyle=o.stroke),(i||o.opacity!==a.opacity)&&(s||(Bg(t,r),s=!0),t.globalAlpha=null==o.opacity?1:o.opacity),e.hasStroke()){var l=o.lineWidth/(o.strokeNoScale&&e&&e.getLineScale?e.getLineScale():1);t.lineWidth!==l&&(s||(Bg(t,r),s=!0),t.lineWidth=l)}for(var u=0;u<Rg.length;u++){var h=Rg[u],c=h[0];(i||o[c]!==a[c])&&(s||(Bg(t,r),s=!0),t[c]=o[c]||h[1])}return s}function zg(t,e){var n=e.transform,i=t.dpr||1;n?t.setTransform(i*n[0],i*n[1],i*n[2],i*n[3],i*n[4],i*n[5]):t.setTransform(i,0,0,i,0,0)}function Bg(t,e){e.batchFill&&t.fill(),e.batchStroke&&t.stroke(),e.batchFill="",e.batchStroke=""}function Vg(t,e){return e&&t.__hoverStyle||t.style}function Fg(t,e){Gg(t,e,{inHover:!1,viewWidth:0,viewHeight:0},!0)}function Gg(t,e,n,i){var r=e.transform;if(!e.shouldBePainted(n.viewWidth,n.viewHeight,!1,!1))return e.__dirty&=~jn.REDARAW_BIT,void(e.__isRendered=!1);var o=e.__clipPaths,a=n.prevElClipPaths,s=!1,l=!1;if(a&&!Ig(o,a)||(a&&a.length&&(Bg(t,n),t.restore(),l=s=!0,n.prevElClipPaths=null,n.allClipped=!1,n.prevEl=null),o&&o.length&&(Bg(t,n),t.save(),function(t,e,n){for(var i=!1,r=0;r<t.length;r++){var o=t[r];i=i||o.isZeroArea(),zg(e,o),e.beginPath(),o.buildPath(e,o.shape),e.clip()}n.allClipped=i}(o,t,n),s=!0),n.prevElClipPaths=o),n.allClipped)e.__isRendered=!1;else{e.beforeBrush&&e.beforeBrush(),e.innerBeforeBrush();var u=n.prevEl;u||(l=s=!0);var h,c,p=e instanceof Oa&&e.autoBatch&&function(t){var e=Dg(t),n=Ag(t);return!(t.lineDash||!(+e^+n)||e&&"string"!=typeof t.fill||n&&"string"!=typeof t.stroke||t.strokePercent<1||t.strokeOpacity<1||t.fillOpacity<1)}(e.style);s||(h=r,c=u.transform,h&&c?h[0]!==c[0]||h[1]!==c[1]||h[2]!==c[2]||h[3]!==c[3]||h[4]!==c[4]||h[5]!==c[5]:h||c)?(Bg(t,n),zg(t,e)):p||Bg(t,n);var d=Vg(e,n.inHover);e instanceof Oa?(1!==n.lastDrawType&&(l=!0,n.lastDrawType=1),Eg(t,e,u,l,n),p&&(n.batchFill||n.batchStroke)||t.beginPath(),function(t,e,n,i){var r=Ag(n),o=Dg(n),a=n.strokePercent,s=a<1,l=!e.path;e.silent&&!s||!l||e.createPathProxy();var u=e.path||Cg;if(!i){var h=n.fill,c=n.stroke,p=o&&!!h.colorStops,d=r&&!!c.colorStops,f=o&&!!h.image,g=r&&!!c.image,y=void 0,v=void 0,m=void 0,_=void 0,x=void 0;(p||d)&&(x=e.getBoundingRect()),p&&(y=e.__dirty?Mg(t,h,x):e.__canvasFillGradient,e.__canvasFillGradient=y),d&&(v=e.__dirty?Mg(t,c,x):e.__canvasStrokeGradient,e.__canvasStrokeGradient=v),f&&(m=e.__dirty||!e.__canvasFillPattern?Pg(t,h,e):e.__canvasFillPattern,e.__canvasFillPattern=m),g&&(_=e.__dirty||!e.__canvasStrokePattern?Pg(t,c,e):e.__canvasStrokePattern,e.__canvasStrokePattern=m),p?t.fillStyle=y:f&&(m?t.fillStyle=m:o=!1),d?t.strokeStyle=v:g&&(_?t.strokeStyle=_:r=!1)}var b=n.lineDash&&n.lineWidth>0&&Tg(n.lineDash,n.lineWidth),w=n.lineDashOffset,S=!!t.setLineDash,M=e.getGlobalScale();if(u.setScale(M[0],M[1],e.segmentIgnoreThreshold),b){var I=n.strokeNoScale&&e.getLineScale?e.getLineScale():1;I&&1!==I&&(b=P(b,(function(t){return t/I})),w/=I)}var T=!0;(l||e.__dirty&Oa.SHAPE_CHANGED_BIT||b&&!S&&r)&&(u.setDPR(t.dpr),s?u.setContext(null):(u.setContext(t),T=!1),u.reset(),b&&!S&&(u.setLineDash(b),u.setLineDashOffset(w)),e.buildPath(u,e.shape,i),u.toStatic(),e.pathUpdated()),T&&u.rebuildPath(t,s?a:1),b&&S&&(t.setLineDash(b),t.lineDashOffset=w),i||(n.strokeFirst?(r&&kg(t,n),o&&Lg(t,n)):(o&&Lg(t,n),r&&kg(t,n))),b&&S&&t.setLineDash([])}(t,e,d,p),p&&(n.batchFill=d.fill||"",n.batchStroke=d.stroke||"")):e instanceof Na?(3!==n.lastDrawType&&(l=!0,n.lastDrawType=3),Eg(t,e,u,l,n),function(t,e,n){var i=n.text;if(null!=i&&(i+=""),i){t.font=n.font||Pn,t.textAlign=n.textAlign,t.textBaseline=n.textBaseline;var r=void 0;if(t.setLineDash){var o=n.lineDash&&n.lineWidth>0&&Tg(n.lineDash,n.lineWidth),a=n.lineDashOffset;if(o){var s=n.strokeNoScale&&e.getLineScale?e.getLineScale():1;s&&1!==s&&(o=P(o,(function(t){return t/s})),a/=s),t.setLineDash(o),t.lineDashOffset=a,r=!0}}n.strokeFirst?(Ag(n)&&t.strokeText(i,n.x,n.y),Dg(n)&&t.fillText(i,n.x,n.y)):(Dg(n)&&t.fillText(i,n.x,n.y),Ag(n)&&t.strokeText(i,n.x,n.y)),r&&t.setLineDash([])}}(t,e,d)):e instanceof Ba?(2!==n.lastDrawType&&(l=!0,n.lastDrawType=2),function(t,e,n,i,r){Ng(t,Vg(e,r.inHover),n&&Vg(n,r.inHover),i,r)}(t,e,u,l,n),function(t,e,n){var i=e.__image=Hr(n.image,e.__image,e,e.onload);if(i&&Yr(i)){var r=n.x||0,o=n.y||0,a=e.getWidth(),s=e.getHeight(),l=i.width/i.height;if(null==a&&null!=s?a=s*l:null==s&&null!=a?s=a/l:null==a&&null==s&&(a=i.width,s=i.height),n.sWidth&&n.sHeight){var u=n.sx||0,h=n.sy||0;t.drawImage(i,u,h,n.sWidth,n.sHeight,r,o,a,s)}else if(n.sx&&n.sy){var c=a-(u=n.sx),p=s-(h=n.sy);t.drawImage(i,u,h,c,p,r,o,a,s)}else t.drawImage(i,r,o,a,s)}}(t,e,d)):e instanceof Jl&&(4!==n.lastDrawType&&(l=!0,n.lastDrawType=4),function(t,e,n){var i=e.getDisplayables(),r=e.getTemporalDisplayables();t.save();var o,a,s={prevElClipPaths:null,prevEl:null,allClipped:!1,viewWidth:n.viewWidth,viewHeight:n.viewHeight,inHover:n.inHover};for(o=e.getCursor(),a=i.length;o<a;o++){(h=i[o]).beforeBrush&&h.beforeBrush(),h.innerBeforeBrush(),Gg(t,h,s,o===a-1),h.innerAfterBrush(),h.afterBrush&&h.afterBrush(),s.prevEl=h}for(var l=0,u=r.length;l<u;l++){var h;(h=r[l]).beforeBrush&&h.beforeBrush(),h.innerBeforeBrush(),Gg(t,h,s,l===u-1),h.innerAfterBrush(),h.afterBrush&&h.afterBrush(),s.prevEl=h}e.clearTemporalDisplayables(),e.notClear=!0,t.restore()}(t,e,n)),p&&i&&Bg(t,n),e.innerAfterBrush(),e.afterBrush&&e.afterBrush(),n.prevEl=e,e.__dirty=0,e.__isRendered=!0}}var Hg=new fg,Wg=new Pe(100),Yg=["symbol","symbolSize","symbolKeepAspect","color","backgroundColor","dashArrayX","dashArrayY","maxTileWidth","maxTileHeight"];function Xg(t,e){if("none"===t)return null;var n=e.getDevicePixelRatio(),i=e.getZr(),r="svg"===i.painter.type;t.dirty&&Hg.delete(t);var o=Hg.get(t);if(o)return o;var a=I(t,{symbol:"rect",symbolSize:1,symbolKeepAspect:!0,color:"rgba(0, 0, 0, 0.2)",backgroundColor:null,dashArrayX:5,dashArrayY:5,rotation:0,maxTileWidth:512,maxTileHeight:512});"none"===a.backgroundColor&&(a.backgroundColor=null);var s={repeat:"repeat"};return function(t){for(var e,o=[n],s=!0,l=0;l<Yg.length;++l){var u=a[Yg[l]],h=typeof u;if(null!=u&&!V(u)&&"string"!==h&&"number"!==h&&"boolean"!==h){s=!1;break}o.push(u)}if(s){e=o.join(",")+(r?"-svg":"");var c=Wg.get(e);c&&(r?t.svgElement=c:t.image=c)}var p,d=Zg(a.dashArrayX),f=function(t){if(!t||"object"==typeof t&&0===t.length)return[0,0];if("number"==typeof t){var e=Math.ceil(t);return[e,e]}var n=P(t,(function(t){return Math.ceil(t)}));return t.length%2?n.concat(n):n}(a.dashArrayY),g=Ug(a.symbol),y=(b=d,P(b,(function(t){return jg(t)}))),v=jg(f),m=!r&&T(),_=r&&i.painter.createSVGElement("g"),x=function(){for(var t=1,e=0,n=y.length;e<n;++e)t=or(t,y[e]);var i=1;for(e=0,n=g.length;e<n;++e)i=or(i,g[e].length);t*=i;var r=v*y.length*g.length;return{width:Math.max(1,Math.min(t,a.maxTileWidth)),height:Math.max(1,Math.min(r,a.maxTileHeight))}}();var b;m&&(m.width=x.width*n,m.height=x.height*n,p=m.getContext("2d"));(function(){p&&(p.clearRect(0,0,m.width,m.height),a.backgroundColor&&(p.fillStyle=a.backgroundColor,p.fillRect(0,0,m.width,m.height)));for(var t=0,e=0;e<f.length;++e)t+=f[e];if(t<=0)return;var o=-v,s=0,l=0,u=0;for(;o<x.height;){if(s%2==0){for(var h=l/2%g.length,c=0,y=0,b=0;c<2*x.width;){var w=0;for(e=0;e<d[u].length;++e)w+=d[u][e];if(w<=0)break;if(y%2==0){var S=.5*(1-a.symbolSize),M=c+d[u][y]*S,I=o+f[s]*S,T=d[u][y]*a.symbolSize,C=f[s]*a.symbolSize,A=b/2%g[h].length;D(M,I,T,C,g[h][A])}c+=d[u][y],++b,++y===d[u].length&&(y=0)}++u===d.length&&(u=0)}o+=f[s],++l,++s===f.length&&(s=0)}function D(t,e,o,s,l){var u=r?1:n,h=Sg(l,t*u,e*u,o*u,s*u,a.color,a.symbolKeepAspect);r?_.appendChild(i.painter.paintOne(h)):Fg(p,h)}})(),s&&Wg.put(e,m||_);t.image=m,t.svgElement=_,t.svgWidth=x.width,t.svgHeight=x.height}(s),s.rotation=a.rotation,s.scaleX=s.scaleY=r?1:1/n,Hg.set(t,s),t.dirty=!1,s}function Ug(t){if(!t||0===t.length)return[["rect"]];if("string"==typeof t)return[[t]];for(var e=!0,n=0;n<t.length;++n)if("string"!=typeof t[n]){e=!1;break}if(e)return Ug([t]);var i=[];for(n=0;n<t.length;++n)"string"==typeof t[n]?i.push([t[n]]):i.push(t[n]);return i}function Zg(t){if(!t||0===t.length)return[[0,0]];if("number"==typeof t)return[[r=Math.ceil(t),r]];for(var e=!0,n=0;n<t.length;++n)if("number"!=typeof t[n]){e=!1;break}if(e)return Zg([t]);var i=[];for(n=0;n<t.length;++n)if("number"==typeof t[n]){var r=Math.ceil(t[n]);i.push([r,r])}else{(r=P(t[n],(function(t){return Math.ceil(t)}))).length%2==1?i.push(r.concat(r)):i.push(r)}return i}function jg(t){for(var e=0,n=0;n<t.length;++n)e+=t[n];return t.length%2==1?2*e:e}var qg=it,Kg=k,$g=F,Jg=Y,Qg=C,ty="undefined"!=typeof window,ey="5.0.1",ny={zrender:"5.0.3"},iy={PROCESSOR:{FILTER:1e3,SERIES_FILTER:800,STATISTIC:5e3},VISUAL:{LAYOUT:1e3,PROGRESSIVE_LAYOUT:1100,GLOBAL:2e3,CHART:3e3,POST_CHART_LAYOUT:4600,COMPONENT:4e3,BRUSH:5e3,CHART_ITEM:4500,ARIA:6e3,DECAL:7e3}},ry=/^[a-zA-Z0-9_]+$/;function oy(t){return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];if(!this.isDisposed())return sy(this,t,e);Ry(this.id)}}function ay(t){return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return sy(this,t,e)}}function sy(t,e,n){return n[0]=n[0]&&n[0].toLowerCase(),Bt.prototype[e].apply(t,n)}var ly,uy,hy,cy,py,dy,fy,gy,yy,vy,my,_y,xy,by,wy,Sy,My,Iy,Ty,Cy,Ay,Dy=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n}(Bt),Ly=Dy.prototype;Ly.on=ay("on"),Ly.off=ay("off");var ky=function(t){function n(e,n,i){var r=t.call(this,new Mf)||this;r._chartsViews=[],r._chartsMap={},r._componentsViews=[],r._componentsMap={},r._pendingActions=[],i=i||{},"string"==typeof n&&(n=Hy[n]),r._dom=e;var o="canvas",a=!1,s=r._zr=Ni(e,{renderer:i.renderer||o,devicePixelRatio:i.devicePixelRatio,width:i.width,height:i.height,useDirtyRect:null==i.useDirtyRect?a:i.useDirtyRect});r._throttledZrFlush=Gd(z(s.flush,s),17),(n=b(n))&&ap(n,!0),r._theme=n,r._locale=function(t){if(G(t)){var e=lh[t.toUpperCase()]||{};return"ZH"===t||"EN"===t?b(e):w(b(e),b(lh.EN),!1)}return w(b(t),b(lh.EN),!1)}(i.locale||hh),r._coordSysMgr=new zc;var l=r._api=My(r);function u(t,e){return t.__prio-e.__prio}return ri(Gy,u),ri(zy,u),r._scheduler=new Qd(r,l,zy,Gy),r._messageCenter=new Dy,r._labelManager=new ug,r._initEvents(),r.resize=z(r.resize,r),s.animation.on("frame",r._onframe,r),vy(s,r),my(s,r),ot(r),r}return e(n,t),n.prototype._onframe=function(){if(!this._disposed){Ay(this);var t=this._scheduler;if(this.__optionUpdated){var e=this.__optionUpdated.silent;this.__flagInMainProcess=!0,ly(this),cy.update.call(this),this._zr.flush(),this.__flagInMainProcess=!1,this.__optionUpdated=!1,gy.call(this,e),yy.call(this,e)}else if(t.unfinished){var n=1,i=this._model,r=this._api;t.unfinished=!1;do{var o=+new Date;t.performSeriesTasks(i),t.performDataProcessorTasks(i),dy(this,i),t.performVisualTasks(i),wy(this,this._model,r,"remain"),n-=+new Date-o}while(n>0&&t.unfinished);t.unfinished||this._zr.flush()}}},n.prototype.getDom=function(){return this._dom},n.prototype.getId=function(){return this.id},n.prototype.getZr=function(){return this._zr},n.prototype.setOption=function(t,e,n){if(this._disposed)Ry(this.id);else{var i,r,o;if(Jg(e)&&(n=e.lazyUpdate,i=e.silent,r=e.replaceMerge,o=e.transition,e=e.notMerge),this.__flagInMainProcess=!0,!this._model||e){var a=new Vc(this._api),s=this._theme,l=this._model=new Lc;l.scheduler=this._scheduler,l.init(null,null,null,s,this._locale,a)}this._model.setOption(t,{replaceMerge:r},By),Ty(this,o),n?(this.__optionUpdated={silent:i},this.__flagInMainProcess=!1,this.getZr().wakeUp()):(ly(this),cy.update.call(this),this._zr.flush(),this.__optionUpdated=!1,this.__flagInMainProcess=!1,gy.call(this,i),yy.call(this,i))}},n.prototype.setTheme=function(){console.error("ECharts#setTheme() is DEPRECATED in ECharts 3.0")},n.prototype.getModel=function(){return this._model},n.prototype.getOption=function(){return this._model&&this._model.getOption()},n.prototype.getWidth=function(){return this._zr.getWidth()},n.prototype.getHeight=function(){return this._zr.getHeight()},n.prototype.getDevicePixelRatio=function(){return this._zr.painter.dpr||ty&&window.devicePixelRatio||1},n.prototype.getRenderedCanvas=function(t){if(o.canvasSupported)return(t=M({},t||{})).pixelRatio=t.pixelRatio||1,t.backgroundColor=t.backgroundColor||this._model.get("backgroundColor"),this._zr.painter.getRenderedCanvas(t)},n.prototype.getSvgDataURL=function(){if(o.svgSupported){var t=this._zr;return k(t.storage.getDisplayList(),(function(t){t.stopAnimation(null,!0)})),t.painter.toDataURL()}},n.prototype.getDataURL=function(t){if(!this._disposed){var e=(t=t||{}).excludeComponents,n=this._model,i=[],r=this;Kg(e,(function(t){n.eachComponent({mainType:t},(function(t){var e=r._componentsMap[t.__viewId];e.group.ignore||(i.push(e),e.group.ignore=!0)}))}));var o="svg"===this._zr.painter.getType()?this.getSvgDataURL():this.getRenderedCanvas(t).toDataURL("image/"+(t&&t.type||"png"));return Kg(i,(function(t){t.group.ignore=!1})),o}Ry(this.id)},n.prototype.getConnectedDataURL=function(t){if(this._disposed)Ry(this.id);else if(o.canvasSupported){var e="svg"===t.type,n=this.group,i=Math.min,r=Math.max,a=1/0;if(Xy[n]){var s=a,l=a,u=-1/0,h=-1/0,c=[],p=t&&t.pixelRatio||1;k(Yy,(function(o,a){if(o.group===n){var p=e?o.getZr().painter.getSvgDom().innerHTML:o.getRenderedCanvas(b(t)),d=o.getDom().getBoundingClientRect();s=i(d.left,s),l=i(d.top,l),u=r(d.right,u),h=r(d.bottom,h),c.push({dom:p,left:d.left,top:d.top})}}));var d=(u*=p)-(s*=p),f=(h*=p)-(l*=p),g=T(),y=Ni(g,{renderer:e?"svg":"canvas"});if(y.resize({width:d,height:f}),e){var v="";return Kg(c,(function(t){var e=t.left-s,n=t.top-l;v+='<g transform="translate('+e+","+n+')">'+t.dom+"</g>"})),y.painter.getSvgRoot().innerHTML=v,t.connectedBackgroundColor&&y.painter.setBackgroundColor(t.connectedBackgroundColor),y.refreshImmediately(),y.painter.toDataURL()}return t.connectedBackgroundColor&&y.add(new Xa({shape:{x:0,y:0,width:d,height:f},style:{fill:t.connectedBackgroundColor}})),Kg(c,(function(t){var e=new Ba({style:{x:t.left*p-s,y:t.top*p-l,image:t.dom}});y.add(e)})),y.refreshImmediately(),g.toDataURL("image/"+(t&&t.type||"png"))}return this.getDataURL(t)}},n.prototype.convertToPixel=function(t,e){return py(this,"convertToPixel",t,e)},n.prototype.convertFromPixel=function(t,e){return py(this,"convertFromPixel",t,e)},n.prototype.containPixel=function(t,e){var n;if(!this._disposed)return k(br(this._model,t),(function(t,i){i.indexOf("Models")>=0&&k(t,(function(t){var r=t.coordinateSystem;if(r&&r.containPoint)n=n||!!r.containPoint(e);else if("seriesModels"===i){var o=this._chartsMap[t.__viewId];o&&o.containPoint&&(n=n||o.containPoint(e,t))}else 0}),this)}),this),!!n;Ry(this.id)},n.prototype.getVisual=function(t,e){var n=br(this._model,t,{defaultMainType:"series"}),i=n.seriesModel;var r=i.getData(),o=n.hasOwnProperty("dataIndexInside")?n.dataIndexInside:n.hasOwnProperty("dataIndex")?r.indexOfRawIndex(n.dataIndex):null;return null!=o?Tf(r,o,e):Cf(r,e)},n.prototype.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},n.prototype.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]},n.prototype._initEvents=function(){var t,e,n,i=this;Kg(Oy,(function(t){var e=function(e){var n,r=i.getModel(),o=e.target,a="globalout"===t;if(a?n={}:o&&pg(o,(function(t){var e=ns(t);if(e&&null!=e.dataIndex){var i=e.dataModel||r.getSeriesByIndex(e.seriesIndex);return n=i&&i.getDataParams(e.dataIndex,e.dataType)||{},!0}if(e.eventData)return n=M({},e.eventData),!0}),!0),n){var s=n.componentType,l=n.componentIndex;"markLine"!==s&&"markPoint"!==s&&"markArea"!==s||(s="series",l=n.seriesIndex);var u=s&&null!=l&&r.getComponent(s,l),h=u&&i["series"===u.mainType?"_chartsMap":"_componentsMap"][u.__viewId];0,n.event=e,n.type=t,i._$eventProcessor.eventInfo={targetEl:o,packedEvent:n,model:u,view:h},i.trigger(t,n)}};e.zrEventfulCallAtLast=!0,i._zr.on(t,e,i)})),Kg(Ey,(function(t,e){i._messageCenter.on(e,(function(t){this.trigger(e,t)}),i)})),Kg(["selectchanged"],(function(t){i._messageCenter.on(t,(function(e){this.trigger(t,e)}),i)})),t=this._messageCenter,e=this,n=this._api,t.on("selectchanged",(function(t){var i=n.getModel();t.isFromClick?(cg("map","selectchanged",e,i,t),cg("pie","selectchanged",e,i,t)):"select"===t.fromAction?(cg("map","selected",e,i,t),cg("pie","selected",e,i,t)):"unselect"===t.fromAction&&(cg("map","unselected",e,i,t),cg("pie","unselected",e,i,t))}))},n.prototype.isDisposed=function(){return this._disposed},n.prototype.clear=function(){this._disposed?Ry(this.id):this.setOption({series:[]},!0)},n.prototype.dispose=function(){if(this._disposed)Ry(this.id);else{this._disposed=!0,Ir(this.getDom(),jy,"");var t=this._api,e=this._model;Kg(this._componentsViews,(function(n){n.dispose(e,t)})),Kg(this._chartsViews,(function(n){n.dispose(e,t)})),this._zr.dispose(),delete Yy[this.id]}},n.prototype.resize=function(t){if(this._disposed)Ry(this.id);else{this._zr.resize(t);var e=this._model;if(this._loadingFX&&this._loadingFX.resize(),e){var n=e.resetOption("media"),i=t&&t.silent;this.__flagInMainProcess=!0,n&&ly(this),cy.update.call(this,{type:"resize",animation:{duration:0}}),this.__flagInMainProcess=!1,gy.call(this,i),yy.call(this,i)}}},n.prototype.showLoading=function(t,e){if(this._disposed)Ry(this.id);else if(Jg(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),Wy[t]){var n=Wy[t](this._api,e),i=this._zr;this._loadingFX=n,i.add(n)}},n.prototype.hideLoading=function(){this._disposed?Ry(this.id):(this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null)},n.prototype.makeActionFromEvent=function(t){var e=M({},t);return e.type=Ey[t.type],e},n.prototype.dispatchAction=function(t,e){if(this._disposed)Ry(this.id);else if(Jg(e)||(e={silent:!!e}),Ny[t.type]&&this._model)if(this.__flagInMainProcess)this._pendingActions.push(t);else{var n=e.silent;fy.call(this,t,n);var i=e.flush;i?this._zr.flush():!1!==i&&o.browser.weChat&&this._throttledZrFlush(),gy.call(this,n),yy.call(this,n)}},n.prototype.updateLabelLayout=function(){var t=this._labelManager;t.updateLayoutConfig(this._api),t.layout(this._api),t.processLabelsOverall()},n.prototype.appendData=function(t){if(this._disposed)Ry(this.id);else{var e=t.seriesIndex,n=this.getModel().getSeriesByIndex(e);0,n.appendData(t),this._scheduler.unfinished=!0,this.getZr().wakeUp()}},n.internalField=function(){function t(t){for(var e=[],n=t.currentStates,i=0;i<n.length;i++){var r=n[i];"emphasis"!==r&&"blur"!==r&&"select"!==r&&e.push(r)}t.selected&&t.states.select&&e.push("select"),2===t.hoverState&&t.states.emphasis?e.push("emphasis"):1===t.hoverState&&t.states.blur&&e.push("blur"),t.useStates(e)}function n(t,e){if(!t.preventAutoZ){var n=t.get("z"),i=t.get("zlevel");e.group.traverse((function(t){if(!t.isGroup){null!=n&&(t.z=n),null!=i&&(t.zlevel=i);var e=t.getTextContent(),r=t.getTextGuideLine();if(e&&(e.z=t.z,e.zlevel=t.zlevel,e.z2=t.z2+2),r){var o=t.textGuideLineConfig&&t.textGuideLineConfig.showAbove;r.z=t.z,r.zlevel=t.zlevel,r.z2=t.z2+(o?1:-1)}}}))}}function i(t,e){e.group.traverse((function(t){if(!_u(t)){var e=t.getTextContent(),n=t.getTextGuideLine();t.stateTransition&&(t.stateTransition=null),e&&e.stateTransition&&(e.stateTransition=null),n&&n.stateTransition&&(n.stateTransition=null),t.hasState()?(t.prevStates=t.currentStates,t.clearStates()):t.prevStates&&(t.prevStates=null)}}))}function r(e,n){var i=e.getModel("stateAnimation"),r=e.isAnimationEnabled(),o=i.get("duration"),a=o>0?{duration:o,delay:i.get("delay"),easing:i.get("easing")}:null;n.group.traverse((function(e){if(e.states&&e.states.emphasis){if(_u(e))return;if(e instanceof Oa&&function(t){var e=os(t);e.normalFill=t.style.fill,e.normalStroke=t.style.stroke;var n=t.states.select||{};e.selectFill=n.style&&n.style.fill||null,e.selectStroke=n.style&&n.style.stroke||null}(e),e.__dirty){var n=e.prevStates;n&&e.useStates(n)}if(r){e.stateTransition=a;var i=e.getTextContent(),o=e.getTextGuideLine();i&&(i.stateTransition=a),o&&(o.stateTransition=a)}e.__dirty&&t(e)}}))}ly=function(t){var e=t._scheduler;e.restorePipelines(t._model),e.prepareStageTasks(),uy(t,!0),uy(t,!1),e.plan()},uy=function(t,e){for(var n=t._model,i=t._scheduler,r=e?t._componentsViews:t._chartsViews,o=e?t._componentsMap:t._chartsMap,a=t._zr,s=t._api,l=0;l<r.length;l++)r[l].__alive=!1;function u(t){var l=t.__requireNewView;t.__requireNewView=!1;var u="_ec_"+t.id+"_"+t.type,h=!l&&o[u];if(!h){var c=Dr(t.type),p=e?Dd.getClass(c.main,c.sub):Od.getClass(c.sub);0,(h=new p).init(n,s),o[u]=h,r.push(h),a.add(h.group)}t.__viewId=h.__id=u,h.__alive=!0,h.__model=t,h.group.__ecComponentInfo={mainType:t.mainType,index:t.componentIndex},!e&&i.prepareView(h,t,n,s)}e?n.eachComponent((function(t,e){"series"!==t&&u(e)})):n.eachSeries(u);for(l=0;l<r.length;){var h=r[l];h.__alive?l++:(!e&&h.renderTask.dispose(),a.remove(h.group),h.dispose(n,s),r.splice(l,1),o[h.__id]===h&&delete o[h.__id],h.__id=h.group.__ecComponentInfo=null)}},hy=function(t,e,n,i,r){var o=t._model;if(o.setUpdatePayload(n),i){var a={};a[i+"Id"]=n[i+"Id"],a[i+"Index"]=n[i+"Index"],a[i+"Name"]=n[i+"Name"];var s={mainType:i,query:a};r&&(s.subType=r);var l,u=n.excludeSeriesId;null!=u&&(l=lt(),Kg(lr(u),(function(t){var e=gr(t,null);null!=e&&l.set(e,!0)}))),o&&o.eachComponent(s,(function(e){l&&null!=l.get(e.id)||(Gs(n)&&!n.notBlur?e instanceof bd&&function(t,e,n){if(Gs(e)){var i="highlight"===e.type,r=t.seriesIndex,o=t.getData(e.dataType),a=mr(o,e);a=(V(a)?a[0]:a)||0;var s=o.getItemGraphicEl(a);if(!s)for(var l=o.count(),u=0;!s&&u<l;)s=o.getItemGraphicEl(u++);if(s){var h=ns(s);Ls(r,h.focus,h.blurScope,n,i)}else{var c=t.get(["emphasis","focus"]),p=t.get(["emphasis","blurScope"]);null!=c&&Ls(r,c,p,n,i)}}}(e,n,t._api):Fs(n)&&e instanceof bd&&(!function(t,e,n){if(Fs(e)){var i=e.dataType,r=mr(t.getData(i),e);V(r)||(r=[r]),t["toggleSelect"===e.type?"toggleSelect":"select"===e.type?"select":"unselect"](r,i)}}(e,n,t._api),ks(e),Cy(t)),h(t["series"===i?"_chartsMap":"_componentsMap"][e.__viewId]))}),t)}else Kg([].concat(t._componentsViews).concat(t._chartsViews),h);function h(i){i&&i.__alive&&i[e]&&i[e](i.__model,o,t._api,n)}},cy={prepareAndUpdate:function(t){ly(this),cy.update.call(this,t)},update:function(t){var e=this._model,n=this._api,i=this._zr,r=this._coordSysMgr,a=this._scheduler;if(e){e.setUpdatePayload(t),a.restoreData(e,t),a.performSeriesTasks(e),r.create(e,n),a.performDataProcessorTasks(e,t),dy(this,e),r.update(e,n),_y(e),a.performVisualTasks(e,t),xy(this,e,n,t);var s=e.get("backgroundColor")||"transparent",l=e.get("darkMode");if(o.canvasSupported)i.setBackgroundColor(s),null!=l&&"auto"!==l&&i.setDarkMode(l);else{var u=Xe(s);s=en(u,"rgb"),0===u[3]&&(s="transparent")}Sy(e,n)}},updateTransform:function(t){var e=this,n=this._model,i=this._api;if(n){n.setUpdatePayload(t);var r=[];n.eachComponent((function(o,a){if("series"!==o){var s=e.getViewOfComponentModel(a);if(s&&s.__alive)if(s.updateTransform){var l=s.updateTransform(a,n,i,t);l&&l.update&&r.push(s)}else r.push(s)}}));var o=lt();n.eachSeries((function(r){var a=e._chartsMap[r.__viewId];if(a.updateTransform){var s=a.updateTransform(r,n,i,t);s&&s.update&&o.set(r.uid,1)}else o.set(r.uid,1)})),_y(n),this._scheduler.performVisualTasks(n,t,{setDirty:!0,dirtyMap:o}),wy(this,n,i,t,o),Sy(n,this._api)}},updateView:function(t){var e=this._model;e&&(e.setUpdatePayload(t),Od.markUpdateMethod(t,"updateView"),_y(e),this._scheduler.performVisualTasks(e,t,{setDirty:!0}),xy(this,this._model,this._api,t),Sy(e,this._api))},updateVisual:function(t){var e=this,n=this._model;n&&(n.setUpdatePayload(t),n.eachSeries((function(t){t.getData().clearAllVisual()})),Od.markUpdateMethod(t,"updateVisual"),_y(n),this._scheduler.performVisualTasks(n,t,{visualType:"visual",setDirty:!0}),n.eachComponent((function(i,r){if("series"!==i){var o=e.getViewOfComponentModel(r);o&&o.__alive&&o.updateVisual(r,n,e._api,t)}})),n.eachSeries((function(i){e._chartsMap[i.__viewId].updateVisual(i,n,e._api,t)})),Sy(n,this._api))},updateLayout:function(t){cy.update.call(this,t)}},py=function(t,e,n,i){if(t._disposed)Ry(t.id);else{for(var r,o=t._model,a=t._coordSysMgr.getCoordinateSystems(),s=br(o,n),l=0;l<a.length;l++){var u=a[l];if(u[e]&&null!=(r=u[e](o,s,i)))return r}0}},dy=function(t,e){var n=t._chartsMap,i=t._scheduler;e.eachSeries((function(t){i.updateStreamModes(t,n[t.__viewId])}))},fy=function(t,e){var n=this,i=this.getModel(),r=t.type,o=t.escapeConnect,a=Ny[r],s=a.actionInfo,l=(s.update||"update").split(":"),u=l.pop(),h=null!=l[0]&&Dr(l[0]);this.__flagInMainProcess=!0;var c=[t],p=!1;t.batch&&(p=!0,c=P(t.batch,(function(e){return(e=I(M({},e),t)).batch=null,e})));var d,f=[],g=Fs(t),y=Gs(t)||g;if(Kg(c,(function(t){(d=(d=a.action(t,n._model,n._api))||M({},t)).type=s.event||d.type,f.push(d),y?(hy(n,u,t,"series"),Cy(n)):h&&hy(n,u,t,h.main,h.sub)})),"none"===u||y||h||(this.__optionUpdated?(ly(this),cy.update.call(this,t),this.__optionUpdated=!1):cy[u].call(this,t)),d=p?{type:s.event||r,escapeConnect:o,batch:f}:f[0],this.__flagInMainProcess=!1,!e){var v=this._messageCenter;if(v.trigger(d.type,d),g){var m={type:"selectchanged",escapeConnect:o,selected:Ps(i),isFromClick:t.isFromClick||!1,fromAction:t.type,fromActionPayload:t};v.trigger(m.type,m)}}},gy=function(t){for(var e=this._pendingActions;e.length;){var n=e.shift();fy.call(this,n,t)}},yy=function(t){!t&&this.trigger("updated")},vy=function(t,e){t.on("rendered",(function(n){e.trigger("rendered",n),!t.animation.isFinished()||e.__optionUpdated||e._scheduler.unfinished||e._pendingActions.length||e.trigger("finished")}))},my=function(t,e){t.on("mouseover",(function(t){var n=pg(t.target,Vs);if(n){var i=ns(n);Ls(i.seriesIndex,i.focus,i.blurScope,e._api,!0),function(t,e){!Ds(t,e)&&!t.__highByOuter&&_s(t,ps)}(n,t),Cy(e)}})).on("mouseout",(function(t){var n=pg(t.target,Vs);if(n){var i=ns(n);Ls(i.seriesIndex,i.focus,i.blurScope,e._api,!1),function(t,e){!Ds(t,e)&&!t.__highByOuter&&_s(t,ds)}(n,t),Cy(e)}})).on("click",(function(t){var n=pg(t.target,(function(t){return null!=ns(t).dataIndex}),!0);if(n){var i=n.selected?"unselect":"select",r=ns(n);e._api.dispatchAction({type:i,dataType:r.dataType,dataIndexInside:r.dataIndex,seriesIndex:r.seriesIndex,isFromClick:!0})}}))},_y=function(t){t.clearColorPalette(),t.eachSeries((function(t){t.clearColorPalette()}))},xy=function(t,e,n,i){by(t,e,n,i),Kg(t._chartsViews,(function(t){t.__alive=!1})),wy(t,e,n,i),Kg(t._chartsViews,(function(t){t.__alive||t.remove(e,n)}))},by=function(t,e,o,a,s){Kg(s||t._componentsViews,(function(t){var s=t.__model;i(s,t),t.render(s,e,o,a),n(s,t),r(s,t)}))},wy=function(t,e,a,s,l){var u=t._scheduler,h=t._labelManager;h.clearLabels();var c=!1;e.eachSeries((function(e){var n=t._chartsMap[e.__viewId];n.__alive=!0;var r=n.renderTask;u.updatePayload(r,s),i(e,n),l&&l.get(e.uid)&&r.dirty(),r.perform(u.getPerformArgs(r))&&(c=!0),e.__transientTransitionOpt=null,n.group.silent=!!e.get("silent"),function(t,e){var n=t.get("blendMode")||null;0;e.group.traverse((function(t){t.isGroup||(t.style.blend=n),t.eachPendingDisplayable&&t.eachPendingDisplayable((function(t){t.style.blend=n}))}))}(e,n),ks(e),h.addLabelsOfSeries(n)})),u.unfinished=c||u.unfinished,h.updateLayoutConfig(a),h.layout(a),h.processLabelsOverall(),e.eachSeries((function(e){var i=t._chartsMap[e.__viewId];n(e,i),r(e,i)})),function(t,e){var n=t._zr.storage,i=0;n.traverse((function(t){t.isGroup||i++})),i>e.get("hoverLayerThreshold")&&!o.node&&!o.worker&&e.eachSeries((function(e){if(!e.preventUsingHoverLayer){var n=t._chartsMap[e.__viewId];n.__alive&&n.group.traverse((function(t){t.states.emphasis&&(t.states.emphasis.hoverLayer=!0)}))}}))}(t,e)},Sy=function(t,e){Kg(Fy,(function(n){n(t,e)}))},Cy=function(t){t.__needsUpdateStatus=!0,t.getZr().wakeUp()},Ay=function(e){e.__needsUpdateStatus&&(e.getZr().storage.traverse((function(e){_u(e)||t(e)})),e.__needsUpdateStatus=!1)},My=function(t){return new(function(n){function i(){return null!==n&&n.apply(this,arguments)||this}return e(i,n),i.prototype.getCoordinateSystems=function(){return t._coordSysMgr.getCoordinateSystems()},i.prototype.getComponentByElement=function(e){for(;e;){var n=e.__ecComponentInfo;if(null!=n)return t._model.getComponent(n.mainType,n.index);e=e.parent}},i.prototype.enterEmphasis=function(e,n){Ss(e,n),Cy(t)},i.prototype.leaveEmphasis=function(e,n){Ms(e,n),Cy(t)},i.prototype.enterBlur=function(e){Is(e),Cy(t)},i.prototype.leaveBlur=function(e){Ts(e),Cy(t)},i.prototype.enterSelect=function(e){Cs(e),Cy(t)},i.prototype.leaveSelect=function(e){As(e),Cy(t)},i.prototype.getModel=function(){return t.getModel()},i.prototype.getViewOfComponentModel=function(e){return t.getViewOfComponentModel(e)},i.prototype.getViewOfSeriesModel=function(e){return t.getViewOfSeriesModel(e)},i}(Nc))(t)},Iy=function(t){function e(t,e){for(var n=0;n<t.length;n++){t[n].__connectUpdateStatus=e}}Kg(Ey,(function(n,i){t._messageCenter.on(i,(function(n){if(Xy[t.group]&&0!==t.__connectUpdateStatus){if(n&&n.escapeConnect)return;var i=t.makeActionFromEvent(n),r=[];Kg(Yy,(function(e){e!==t&&e.group===t.group&&r.push(e)})),e(r,0),Kg(r,(function(t){1!==t.__connectUpdateStatus&&t.dispatchAction(i)})),e(r,2)}}))}))},Ty=function(t,e){var n=t._model;k(lr(e),(function(t){var e,i=t.from,r=t.to;null==r&&sr(e);var o={includeMainTypes:["series"],enableAll:!1,enableNone:!1},a=i?br(n,i,o):null,s=br(n,r,o).seriesModel;null==s&&(e=""),a&&a.seriesModel!==s&&(e=""),null!=e&&sr(e),s.__transientTransitionOpt={from:i?i.dimension:null,to:r.dimension,dividingMethod:t.dividingMethod}}))}}(),n}(Bt),Py=ky.prototype;Py.on=oy("on"),Py.off=oy("off"),Py.one=function(t,e,n){var i=this;ar(),this.on.call(this,t,(function n(){for(var r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];e&&e.apply&&e.apply(this,r),i.off(t,n)}),n)};var Oy=["click","dblclick","mouseover","mouseout","mousemove","mousedown","mouseup","globalout","contextmenu"];function Ry(t){0}var Ny={},Ey={},zy=[],By=[],Vy=[],Fy=[],Gy=[],Hy={},Wy={},Yy={},Xy={},Uy=+new Date-0,Zy=+new Date-0,jy="_echarts_instance_";function qy(t,e,n){var i=tv(t);if(i)return i;var r=new ky(t,e,n);return r.id="ec_"+Uy++,Yy[r.id]=r,Ir(t,jy,r.id),Iy(r),Kg(Vy,(function(t){t(r)})),r}function Ky(t){if(V(t)){var e=t;t=null,Kg(e,(function(e){null!=e.group&&(t=e.group)})),t=t||"g_"+Zy++,Kg(e,(function(e){e.group=t}))}return Xy[t]=!0,t}function $y(t){Xy[t]=!1}var Jy=$y;function Qy(t){"string"==typeof t?t=Yy[t]:t instanceof ky||(t=tv(t)),t instanceof ky&&!t.isDisposed()&&t.dispose()}function tv(t){return Yy[function(t,e){return t.getAttribute?t.getAttribute(e):t[e]}(t,jy)]}function ev(t){return Yy[t]}function nv(t,e){Hy[t]=e}function iv(t){Qg(By,t)<0&&By.push(t)}function rv(t,e){dv(zy,t,e,2e3)}function ov(t){Qg(Vy,t)<0&&t&&Vy.push(t)}function av(t){Qg(Fy,t)<0&&t&&Fy.push(t)}function sv(t,e,n){"function"==typeof e&&(n=e,e="");var i=Jg(t)?t.type:[t,t={event:e}][0];t.event=(t.event||i).toLowerCase(),e=t.event,Ey[e]||(qg(ry.test(i)&&ry.test(e)),Ny[i]||(Ny[i]={action:n,actionInfo:t}),Ey[e]=i)}function lv(t,e){zc.register(t,e)}function uv(t){var e=zc.get(t);if(e)return e.getDimensionsInfo?e.getDimensionsInfo():e.dimensions.slice()}function hv(t,e){dv(Gy,t,e,1e3,"layout")}function cv(t,e){dv(Gy,t,e,3e3,"visual")}var pv=[];function dv(t,e,n,i,r){if(($g(e)||Jg(e))&&(n=e,e=i),!(Qg(pv,n)>=0)){pv.push(n);var o=Qd.wrapStageHandler(n,r);o.__prio=e,o.__raw=n,t.push(o)}}function fv(t,e){Wy[t]=e}function gv(t){v("createCanvas",t)}function yv(t,e,n){bf(t,e,n)}function vv(t){var e=wf(t);return e&&e[0]&&{geoJson:e[0].geoJSON,specialAreas:e[0].specialAreas}}var mv=function(t){var e=(t=b(t)).type,n="";e||sr(n);var i=e.split(":");2!==i.length&&sr(n);var r=!1;"echarts"===i[0]&&(e=i[1],r=!0),t.__isBuiltIn=r,Jp.set(e,t)};cv(2e3,jd),cv(4500,Kd),cv(4500,$d),cv(2e3,If),cv(4500,{createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){if(t.hasSymbolVisual&&!e.isSeriesFiltered(t))return{dataEach:t.getData().hasItemOption?function(t,e){var n=t.getItemModel(e),i=n.getShallow("symbol",!0),r=n.getShallow("symbolSize",!0),o=n.getShallow("symbolRotate",!0),a=n.getShallow("symbolKeepAspect",!0);null!=i&&t.setItemVisual(e,"symbol",i),null!=r&&t.setItemVisual(e,"symbolSize",r),null!=o&&t.setItemVisual(e,"symbolRotate",o),null!=a&&t.setItemVisual(e,"symbolKeepAspect",a)}:null}}}),cv(7e3,(function(t,e){t.eachRawSeries((function(n){if(!t.isSeriesFiltered(n)){var i=n.getData();i.hasItemVisual()&&i.each((function(t){var n=i.getItemVisual(t,"decal");n&&(i.ensureUniqueItemVisual(t,"style").decal=Xg(n,e))}));var r=i.getVisual("decal");if(r)i.getVisual("style").decal=Xg(r,e)}}))})),iv(ap),rv(900,(function(t){var e=lt();t.eachSeries((function(t){var n=t.get("stack");if(n){var i=e.get(n)||e.set(n,[]),r=t.getData(),o={stackResultDimension:r.getCalculationInfo("stackResultDimension"),stackedOverDimension:r.getCalculationInfo("stackedOverDimension"),stackedDimension:r.getCalculationInfo("stackedDimension"),stackedByDimension:r.getCalculationInfo("stackedByDimension"),isStackedByIndex:r.getCalculationInfo("isStackedByIndex"),data:r,seriesModel:t};if(!o.stackedDimension||!o.isStackedByIndex&&!o.stackedByDimension)return;i.length&&r.setCalculationInfo("stackedOnSeries",i[i.length-1].seriesModel),i.push(o)}})),e.each(sp)})),fv("default",(function(t,e){I(e=e||{},{text:"loading",textColor:"#000",fontSize:12,fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",maskColor:"rgba(255, 255, 255, 0.8)",showSpinner:!0,color:"#5470c6",spinnerRadius:10,lineWidth:5,zlevel:0});var n=new Li,i=new Xa({style:{fill:e.maskColor},zlevel:e.zlevel,z:1e4});n.add(i);var r,o=new ja({style:{text:e.text,fill:e.textColor,fontSize:e.fontSize,fontWeight:e.fontWeight,fontStyle:e.fontStyle,fontFamily:e.fontFamily}}),a=new Xa({style:{fill:"none"},textContent:o,textConfig:{position:"right",distance:10},zlevel:e.zlevel,z:10001});return n.add(a),e.showSpinner&&((r=new Gl({shape:{startAngle:-Jd/2,endAngle:-Jd/2+.1,r:e.spinnerRadius},style:{stroke:e.color,lineCap:"round",lineWidth:e.lineWidth},zlevel:e.zlevel,z:10001})).animateShape(!0).when(1e3,{endAngle:3*Jd/2}).start("circularInOut"),r.animateShape(!0).when(1e3,{startAngle:3*Jd/2}).delay(300).start("circularInOut"),n.add(r)),n.resize=function(){var n=o.getBoundingRect().width,s=e.showSpinner?e.spinnerRadius:0,l=(t.getWidth()-2*s-(e.showSpinner&&n?10:0)-n)/2-(e.showSpinner&&n?0:5+n/2)+(e.showSpinner?0:n/2)+(n?0:s),u=t.getHeight()/2;e.showSpinner&&r.setShape({cx:l,cy:u}),a.setShape({x:l-s,y:u-s,width:2*s,height:2*s}),i.setShape({x:0,y:0,width:t.getWidth(),height:t.getHeight()})},n.resize(),n})),sv({type:"highlight",event:"highlight",update:"highlight"},pt),sv({type:"downplay",event:"downplay",update:"downplay"},pt),sv({type:"select",event:"select",update:"select"},pt),sv({type:"unselect",event:"unselect",update:"unselect"},pt),sv({type:"toggleSelect",event:"toggleSelect",update:"toggleSelect"},pt),nv("light",yf),nv("dark",mf);var _v={},xv=[],bv={registerPreprocessor:iv,registerProcessor:rv,registerPostInit:ov,registerPostUpdate:av,registerAction:sv,registerCoordinateSystem:lv,registerLayout:hv,registerVisual:cv,registerTransform:mv,registerLoading:fv,registerMap:yv,PRIORITY:iy,ComponentModel:sc,ComponentView:Dd,SeriesModel:bd,ChartView:Od,registerComponentModel:function(t){sc.registerClass(t)},registerComponentView:function(t){Dd.registerClass(t)},registerSeriesModel:function(t){bd.registerClass(t)},registerChartView:function(t){Od.registerClass(t)},registerSubTypeDefaulter:function(t,e){sc.registerSubTypeDefaulter(t,e)},registerPainter:function(t,e){Ei(t,e)}};function wv(t){V(t)?k(t,(function(t){wv(t)})):C(xv,t)>=0||(xv.push(t),F(t)&&(t={install:t}),t.install(bv))}function Sv(t){return null==t?0:t.length||1}function Mv(t){return t}var Iv=function(){function t(t,e,n,i,r,o){this._old=t,this._new=e,this._oldKeyGetter=n||Mv,this._newKeyGetter=i||Mv,this.context=r,this._diffModeMultiple="multiple"===o}return t.prototype.add=function(t){return this._add=t,this},t.prototype.update=function(t){return this._update=t,this},t.prototype.updateManyToOne=function(t){return this._updateManyToOne=t,this},t.prototype.updateOneToMany=function(t){return this._updateOneToMany=t,this},t.prototype.remove=function(t){return this._remove=t,this},t.prototype.execute=function(){this[this._diffModeMultiple?"_executeMultiple":"_executeOneToOne"]()},t.prototype._executeOneToOne=function(){var t=this._old,e=this._new,n={},i=new Array(t.length),r=new Array(e.length);this._initIndexMap(t,null,i,"_oldKeyGetter"),this._initIndexMap(e,n,r,"_newKeyGetter");for(var o=0;o<t.length;o++){var a=i[o],s=n[a],l=Sv(s);if(l>1){var u=s.shift();1===s.length&&(n[a]=s[0]),this._update&&this._update(u,o)}else 1===l?(n[a]=null,this._update&&this._update(s,o)):this._remove&&this._remove(o)}this._performRestAdd(r,n)},t.prototype._executeMultiple=function(){var t=this._old,e=this._new,n={},i={},r=[],o=[];this._initIndexMap(t,n,r,"_oldKeyGetter"),this._initIndexMap(e,i,o,"_newKeyGetter");for(var a=0;a<r.length;a++){var s=r[a],l=n[s],u=i[s],h=Sv(l),c=Sv(u);if(h>1&&1===c)this._updateManyToOne&&this._updateManyToOne(u,l),i[s]=null;else if(1===h&&c>1)this._updateOneToMany&&this._updateOneToMany(u,l),i[s]=null;else if(1===h&&1===c)this._update&&this._update(u,l),i[s]=null;else if(h>1)for(var p=0;p<h;p++)this._remove&&this._remove(l[p]);else this._remove&&this._remove(l)}this._performRestAdd(o,i)},t.prototype._performRestAdd=function(t,e){for(var n=0;n<t.length;n++){var i=t[n],r=e[i],o=Sv(r);if(o>1)for(var a=0;a<o;a++)this._add&&this._add(r[a]);else 1===o&&this._add&&this._add(r);e[i]=null}},t.prototype._initIndexMap=function(t,e,n,i){for(var r=this._diffModeMultiple,o=0;o<t.length;o++){var a="_ec_"+this[i](t[o],o);if(r||(n[o]=a),e){var s=e[a],l=Sv(s);0===l?(e[a]=o,r&&n.push(a)):1===l?e[a]=[s,o]:s.push(o)}}},t}();function Tv(t,e){return t.hasOwnProperty(e)||(t[e]=[]),t[e]}function Cv(t){return"category"===t?"ordinal":"time"===t?"time":"float"}var Av,Dv,Lv,kv,Pv,Ov,Rv,Nv,Ev,zv,Bv,Vv,Fv,Gv,Hv=function(t){this.otherDims={},null!=t&&M(this,t)},Wv=Math.floor,Yv=Y,Xv=P,Uv={float:"undefined"==typeof Float64Array?Array:Float64Array,int:"undefined"==typeof Int32Array?Array:Int32Array,ordinal:Array,number:Array,time:Array},Zv="undefined"==typeof Uint32Array?Array:Uint32Array,jv="undefined"==typeof Int32Array?Array:Int32Array,qv="undefined"==typeof Uint16Array?Array:Uint16Array,Kv=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_rawData","_dimValueGetter","_count","_rawCount","_nameDimIdx","_idDimIdx","_nameRepeatCount"],$v=["_extent","_approximateExtent","_rawExtent"],Jv=function(){function t(t,e){this.type="list",this._count=0,this._rawCount=0,this._storage={},this._storageArr=[],this._nameList=[],this._idList=[],this._visual={},this._layout={},this._itemVisuals=[],this._itemLayouts=[],this._graphicEls=[],this._rawExtent={},this._extent={},this._approximateExtent={},this._calculationInfo={},this.hasItemOption=!0,this.TRANSFERABLE_METHODS=["cloneShallow","downSample","lttbDownSample","map"],this.CHANGABLE_METHODS=["filterSelf","selectRange"],this.DOWNSAMPLE_METHODS=["downSample","lttbDownSample"],this.getRawIndex=Pv,t=t||["x","y"];for(var n={},i=[],r={},o=0;o<t.length;o++){var a=t[o],s=G(a)?new Hv({name:a}):a instanceof Hv?a:new Hv(a),l=s.name;s.type=s.type||"float",s.coordDim||(s.coordDim=l,s.coordDimIndex=0);var u=s.otherDims=s.otherDims||{};i.push(l),n[l]=s,s.index=o,s.createInvertedIndices&&(r[l]=[]),0===u.itemName&&(this._nameDimIdx=o,this._nameOrdinalMeta=s.ordinalMeta),0===u.itemId&&(this._idDimIdx=o,this._idOrdinalMeta=s.ordinalMeta)}this.dimensions=i,this._dimensionInfos=n,this.hostModel=e,this._dimensionsSummary=function(t){var e={},n=e.encode={},i=lt(),r=[],o=[],a=e.userOutput={dimensionNames:t.dimensions.slice(),encode:{}};k(t.dimensions,(function(e){var s,l=t.getDimensionInfo(e),u=l.coordDim;if(u){var h=l.coordDimIndex;Tv(n,u)[h]=e,l.isExtraCoord||(i.set(u,1),"ordinal"!==(s=l.type)&&"time"!==s&&(r[0]=e),Tv(a.encode,u)[h]=l.index),l.defaultTooltip&&o.push(e)}cc.each((function(t,e){var i=Tv(n,e),r=l.otherDims[e];null!=r&&!1!==r&&(i[r]=l.name)}))}));var s=[],l={};i.each((function(t,e){var i=n[e];l[e]=i[0],s=s.concat(i)})),e.dataDimsOnCoord=s,e.encodeFirstDimNotExtra=l;var u=n.label;u&&u.length&&(r=u.slice());var h=n.tooltip;return h&&h.length?o=h.slice():o.length||(o=r.slice()),n.defaultedLabel=r,n.defaultedTooltip=o,e}(this),this._invertedIndicesMap=r,this.userOutput=this._dimensionsSummary.userOutput}return t.prototype.getDimension=function(t){return"number"!=typeof t&&(isNaN(t)||this._dimensionInfos.hasOwnProperty(t))||(t=this.dimensions[t]),t},t.prototype.getDimensionInfo=function(t){return this._dimensionInfos[this.getDimension(t)]},t.prototype.getDimensionsOnCoord=function(){return this._dimensionsSummary.dataDimsOnCoord.slice()},t.prototype.mapDimension=function(t,e){var n=this._dimensionsSummary;if(null==e)return n.encodeFirstDimNotExtra[t];var i=n.encode[t];return i?i[e]:null},t.prototype.mapDimensionsAll=function(t){return(this._dimensionsSummary.encode[t]||[]).slice()},t.prototype.initData=function(t,e,n){var i=fp(t)||L(t),r=i?new bp(t,this.dimensions.length):t;this._rawData=r;var o=r.getSource().sourceFormat;this._storage={},this._indices=null,this._dontMakeIdFromName=null!=this._idDimIdx||"typedArray"===o||!!r.fillStorage,this._nameList=(e||[]).slice(),this._idList=[],this._nameRepeatCount={},n||(this.hasItemOption=!1),this.defaultDimValueGetter=Av[o],this._dimValueGetter=n=n||this.defaultDimValueGetter,this._dimValueGetterArrayRows=Av.arrayRows,this._rawExtent={},this._initDataFromProvider(0,r.count()),r.pure&&(this.hasItemOption=!1)},t.prototype.getProvider=function(){return this._rawData},t.prototype.appendData=function(t){var e=this._rawData,n=this.count();e.appendData(t);var i=e.count();e.persistent||(i+=n),this._initDataFromProvider(n,i,!0)},t.prototype.appendValues=function(t,e){for(var n=this._storage,i=this.dimensions,r=i.length,o=this._rawExtent,a=this.count(),s=a+Math.max(t.length,e?e.length:0),l=0;l<r;l++){var u=i[l];o[u]||(o[u]=Vv()),kv(n,this._dimensionInfos[u],s,!0)}for(var h=Xv(i,(function(t){return o[t]})),c=this._storageArr=Xv(i,(function(t){return n[t]})),p=[],d=a;d<s;d++){for(var f=d-a,g=0;g<r;g++){u=i[g];var y=this._dimValueGetterArrayRows(t[f]||p,u,f,g);c[g][d]=y;var v=h[g];y<v[0]&&(v[0]=y),y>v[1]&&(v[1]=y)}e&&(this._nameList[d]=e[f],this._dontMakeIdFromName||Ev(this,d))}this._rawCount=this._count=s,this._extent={},Dv(this)},t.prototype._initDataFromProvider=function(t,e,n){if(!(t>=e)){for(var i=this._rawData,r=this._storage,o=this.dimensions,a=o.length,s=this._dimensionInfos,l=this._nameList,u=this._idList,h=this._rawExtent,c="original"===i.getSource().sourceFormat,p=0;p<a;p++){var d=o[p];h[d]||(h[d]=Vv()),kv(r,s[d],e,n)}var f=this._storageArr=Xv(o,(function(t){return r[t]})),g=Xv(o,(function(t){return h[t]}));if(i.fillStorage)i.fillStorage(t,e,f,g);else for(var y=[],v=t;v<e;v++){y=i.getItem(v,y);for(var m=0;m<a;m++){d=o[m];var _=f[m],x=this._dimValueGetter(y,d,v,m);_[v]=x;var b=g[m];x<b[0]&&(b[0]=x),x>b[1]&&(b[1]=x)}if(c&&!i.pure&&y){var w=y.name;null==l[v]&&null!=w&&(l[v]=gr(w,null));var S=y.id;null==u[v]&&null!=S&&(u[v]=gr(S,null))}this._dontMakeIdFromName||Ev(this,v)}!i.persistent&&i.clean&&i.clean(),this._rawCount=this._count=e,this._extent={},Dv(this)}},t.prototype.count=function(){return this._count},t.prototype.getIndices=function(){var t,e=this._indices;if(e){var n=e.constructor,i=this._count;if(n===Array){t=new n(i);for(var r=0;r<i;r++)t[r]=e[r]}else t=new n(e.buffer,0,i)}else{t=new(n=Lv(this))(this.count());for(r=0;r<t.length;r++)t[r]=r}return t},t.prototype.getByDimIdx=function(t,e){if(!(e>=0&&e<this._count))return NaN;var n=this._storageArr[t];return n?n[this.getRawIndex(e)]:NaN},t.prototype.get=function(t,e){if(!(e>=0&&e<this._count))return NaN;var n=this._storage[t];return n?n[this.getRawIndex(e)]:NaN},t.prototype.getByRawIndex=function(t,e){if(!(e>=0&&e<this._rawCount))return NaN;var n=this._storage[t];return n?n[e]:NaN},t.prototype.getValues=function(t,e){var n=[];V(t)||(e=t,t=this.dimensions);for(var i=0,r=t.length;i<r;i++)n.push(this.get(t[i],e));return n},t.prototype.hasValue=function(t){for(var e=this._dimensionsSummary.dataDimsOnCoord,n=0,i=e.length;n<i;n++)if(isNaN(this.get(e[n],t)))return!1;return!0},t.prototype.getDataExtent=function(t){t=this.getDimension(t);var e=this._storage[t],n=Vv();if(!e)return n;var i,r=this.count();if(!this._indices)return this._rawExtent[t].slice();if(i=this._extent[t])return i.slice();for(var o=(i=n)[0],a=i[1],s=0;s<r;s++){var l=e[this.getRawIndex(s)];l<o&&(o=l),l>a&&(a=l)}return i=[o,a],this._extent[t]=i,i},t.prototype.getApproximateExtent=function(t){return t=this.getDimension(t),this._approximateExtent[t]||this.getDataExtent(t)},t.prototype.setApproximateExtent=function(t,e){e=this.getDimension(e),this._approximateExtent[e]=t.slice()},t.prototype.getCalculationInfo=function(t){return this._calculationInfo[t]},t.prototype.setCalculationInfo=function(t,e){Yv(t)?M(this._calculationInfo,t):this._calculationInfo[t]=e},t.prototype.getSum=function(t){var e=0;if(this._storage[t])for(var n=0,i=this.count();n<i;n++){var r=this.get(t,n);isNaN(r)||(e+=r)}return e},t.prototype.getMedian=function(t){var e=[];this.each(t,(function(t){isNaN(t)||e.push(t)}));var n=e.sort((function(t,e){return t-e})),i=this.count();return 0===i?0:i%2==1?n[(i-1)/2]:(n[i/2]+n[i/2-1])/2},t.prototype.rawIndexOf=function(t,e){var n=t&&this._invertedIndicesMap[t];var i=n[e];return null==i||isNaN(i)?-1:i},t.prototype.indexOfName=function(t){for(var e=0,n=this.count();e<n;e++)if(this.getName(e)===t)return e;return-1},t.prototype.indexOfRawIndex=function(t){if(t>=this._rawCount||t<0)return-1;if(!this._indices)return t;var e=this._indices,n=e[t];if(null!=n&&n<this._count&&n===t)return t;for(var i=0,r=this._count-1;i<=r;){var o=(i+r)/2|0;if(e[o]<t)i=o+1;else{if(!(e[o]>t))return o;r=o-1}}return-1},t.prototype.indicesOfNearest=function(t,e,n){var i=this._storage[t],r=[];if(!i)return r;null==n&&(n=1/0);for(var o=1/0,a=-1,s=0,l=0,u=this.count();l<u;l++){var h=e-i[this.getRawIndex(l)],c=Math.abs(h);c<=n&&((c<o||c===o&&h>=0&&a<0)&&(o=c,a=h,s=0),h===a&&(r[s++]=l))}return r.length=s,r},t.prototype.getRawDataItem=function(t){if(this._rawData.persistent)return this._rawData.getItem(this.getRawIndex(t));for(var e=[],n=0;n<this.dimensions.length;n++){var i=this.dimensions[n];e.push(this.get(i,t))}return e},t.prototype.getName=function(t){var e=this.getRawIndex(t),n=this._nameList[e];return null==n&&null!=this._nameDimIdx&&(n=Nv(this,this._nameDimIdx,this._nameOrdinalMeta,e)),null==n&&(n=""),n},t.prototype.getId=function(t){return Rv(this,this.getRawIndex(t))},t.prototype.each=function(t,e,n,i){var r=this;if(this._count){"function"==typeof t&&(i=n,n=e,e=t,t=[]);var o=n||i||this,a=Xv(zv(t),this.getDimension,this);0;for(var s=a.length,l=Xv(a,(function(t){return r._dimensionInfos[t].index})),u=this._storageArr,h=0,c=this.count();h<c;h++){var p=this.getRawIndex(h);switch(s){case 0:e.call(o,h);break;case 1:e.call(o,u[l[0]][p],h);break;case 2:e.call(o,u[l[0]][p],u[l[1]][p],h);break;default:for(var d=0,f=[];d<s;d++)f[d]=u[l[d]][p];f[d]=h,e.apply(o,f)}}}},t.prototype.filterSelf=function(t,e,n,i){var r=this;if(this._count){"function"==typeof t&&(i=n,n=e,e=t,t=[]);var o=n||i||this,a=Xv(zv(t),this.getDimension,this);0;for(var s=this.count(),l=new(Lv(this))(s),u=[],h=a.length,c=0,p=Xv(a,(function(t){return r._dimensionInfos[t].index})),d=p[0],f=this._storageArr,g=0;g<s;g++){var y=void 0,v=this.getRawIndex(g);if(0===h)y=e.call(o,g);else if(1===h){var m=f[d][v];y=e.call(o,m,g)}else{for(var _=0;_<h;_++)u[_]=f[p[_]][v];u[_]=g,y=e.apply(o,u)}y&&(l[c++]=v)}return c<s&&(this._indices=l),this._count=c,this._extent={},this.getRawIndex=this._indices?Ov:Pv,this}},t.prototype.selectRange=function(t){var e=this,n=this._count;if(n){var i=[];for(var r in t)t.hasOwnProperty(r)&&i.push(r);0;var o=i.length;if(o){var a=this.count(),s=new(Lv(this))(a),l=0,u=i[0],h=Xv(i,(function(t){return e._dimensionInfos[t].index})),c=t[u][0],p=t[u][1],d=this._storageArr,f=!1;if(!this._indices){var g=0;if(1===o){for(var y=d[h[0]],v=0;v<n;v++){((b=y[v])>=c&&b<=p||isNaN(b))&&(s[l++]=g),g++}f=!0}else if(2===o){y=d[h[0]];var m=d[h[1]],_=t[i[1]][0],x=t[i[1]][1];for(v=0;v<n;v++){var b=y[v],w=m[v];(b>=c&&b<=p||isNaN(b))&&(w>=_&&w<=x||isNaN(w))&&(s[l++]=g),g++}f=!0}}if(!f)if(1===o)for(v=0;v<a;v++){var S=this.getRawIndex(v);((b=d[h[0]][S])>=c&&b<=p||isNaN(b))&&(s[l++]=S)}else for(v=0;v<a;v++){for(var M=!0,I=(S=this.getRawIndex(v),0);I<o;I++){var T=i[I];((b=d[h[I]][S])<t[T][0]||b>t[T][1])&&(M=!1)}M&&(s[l++]=this.getRawIndex(v))}return l<a&&(this._indices=s),this._count=l,this._extent={},this.getRawIndex=this._indices?Ov:Pv,this}}},t.prototype.mapArray=function(t,e,n,i){"function"==typeof t&&(i=n,n=e,e=t,t=[]),n=n||i||this;var r=[];return this.each(t,(function(){r.push(e&&e.apply(this,arguments))}),n),r},t.prototype.map=function(t,e,n,i){var r=n||i||this,o=Xv(zv(t),this.getDimension,this);var a=Bv(this,o),s=a._storage;a._indices=this._indices,a.getRawIndex=a._indices?Ov:Pv;for(var l=[],u=o.length,h=this.count(),c=[],p=a._rawExtent,d=0;d<h;d++){for(var f=0;f<u;f++)c[f]=this.get(o[f],d);c[u]=d;var g=e&&e.apply(r,c);if(null!=g){"object"!=typeof g&&(l[0]=g,g=l);for(var y=this.getRawIndex(d),v=0;v<g.length;v++){var m=o[v],_=g[v],x=p[m],b=s[m];b&&(b[y]=_),_<x[0]&&(x[0]=_),_>x[1]&&(x[1]=_)}}}return a},t.prototype.downSample=function(t,e,n,i){for(var r=Bv(this,[t]),o=r._storage,a=[],s=Wv(1/e),l=o[t],u=this.count(),h=r._rawExtent[t],c=new(Lv(this))(u),p=0,d=0;d<u;d+=s){s>u-d&&(s=u-d,a.length=s);for(var f=0;f<s;f++){var g=this.getRawIndex(d+f);a[f]=l[g]}var y=n(a),v=this.getRawIndex(Math.min(d+i(a,y)||0,u-1));l[v]=y,y<h[0]&&(h[0]=y),y>h[1]&&(h[1]=y),c[p++]=v}return r._count=p,r._indices=c,r.getRawIndex=Ov,r},t.prototype.lttbDownSample=function(t,e){var n,i,r,o=Bv(this,[]),a=o._storage[t],s=this.count(),l=new(Lv(this))(s),u=0,h=Wv(1/e),c=this.getRawIndex(0);l[u++]=c;for(var p=1;p<s-1;p+=h){for(var d=Math.min(p+h,s-1),f=Math.min(p+2*h,s),g=(f+d)/2,y=0,v=d;v<f;v++){var m=a[S=this.getRawIndex(v)];isNaN(m)||(y+=m)}y/=f-d;var _=p,x=Math.min(p+h,s),b=p-1,w=a[c];n=-1,r=_;for(v=_;v<x;v++){var S;m=a[S=this.getRawIndex(v)];isNaN(m)||(i=Math.abs((b-g)*(m-w)-(b-v)*(y-w)))>n&&(n=i,r=S)}l[u++]=r,c=r}return l[u++]=this.getRawIndex(s-1),o._count=u,o._indices=l,o.getRawIndex=Ov,o},t.prototype.getItemModel=function(t){var e=this.hostModel,n=this.getRawDataItem(t);return new rh(n,e,e&&e.ecModel)},t.prototype.diff=function(t){var e=this;return new Iv(t?t.getIndices():[],this.getIndices(),(function(e){return Rv(t,e)}),(function(t){return Rv(e,t)}))},t.prototype.getVisual=function(t){var e=this._visual;return e&&e[t]},t.prototype.setVisual=function(t,e){this._visual=this._visual||{},Yv(t)?M(this._visual,t):this._visual[t]=e},t.prototype.getItemVisual=function(t,e){var n=this._itemVisuals[t],i=n&&n[e];return null==i?this.getVisual(e):i},t.prototype.hasItemVisual=function(){return this._itemVisuals.length>0},t.prototype.ensureUniqueItemVisual=function(t,e){var n=this._itemVisuals,i=n[t];i||(i=n[t]={});var r=i[e];return null==r&&(V(r=this.getVisual(e))?r=r.slice():Yv(r)&&(r=M({},r)),i[e]=r),r},t.prototype.setItemVisual=function(t,e,n){var i=this._itemVisuals[t]||{};this._itemVisuals[t]=i,Yv(e)?M(i,e):i[e]=n},t.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},t.prototype.setLayout=function(t,e){if(Yv(t))for(var n in t)t.hasOwnProperty(n)&&this.setLayout(n,t[n]);else this._layout[t]=e},t.prototype.getLayout=function(t){return this._layout[t]},t.prototype.getItemLayout=function(t){return this._itemLayouts[t]},t.prototype.setItemLayout=function(t,e,n){this._itemLayouts[t]=n?M(this._itemLayouts[t]||{},e):e},t.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},t.prototype.setItemGraphicEl=function(t,e){var n=this.hostModel;if(e){var i=ns(e);i.dataIndex=t,i.dataType=this.dataType,i.seriesIndex=n&&n.seriesIndex,"group"===e.type&&e.traverse(Fv,e)}this._graphicEls[t]=e},t.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},t.prototype.eachItemGraphicEl=function(t,e){k(this._graphicEls,(function(n,i){n&&t&&t.call(e,n,i)}))},t.prototype.cloneShallow=function(e){e||(e=new t(Xv(this.dimensions,this.getDimensionInfo,this),this.hostModel));if(e._storage=this._storage,e._storageArr=this._storageArr,Gv(e,this),this._indices){var n=this._indices.constructor;if(n===Array){var i=this._indices.length;e._indices=new n(i);for(var r=0;r<i;r++)e._indices[r]=this._indices[r]}else e._indices=new n(this._indices)}else e._indices=null;return e.getRawIndex=e._indices?Ov:Pv,e},t.prototype.wrapMethod=function(t,e){var n=this[t];"function"==typeof n&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var t=n.apply(this,arguments);return e.apply(this,[t].concat(et(arguments)))})},t.internalField=function(){function e(t,e,n,i){return Vp(t[i],this._dimensionInfos[e])}Av={arrayRows:e,objectRows:function(t,e,n,i){return Vp(t[e],this._dimensionInfos[e])},keyedColumns:e,original:function(t,e,n,i){var r=t&&(null==t.value?t:t.value);return!this._rawData.pure&&function(t){return Y(t)&&!(t instanceof Array)}(t)&&(this.hasItemOption=!0),Vp(r instanceof Array?r[i]:r,this._dimensionInfos[e])},typedArray:function(t,e,n,i){return t[i]}},Dv=function(t){var e=t._invertedIndicesMap;k(e,(function(n,i){var r=t._dimensionInfos[i].ordinalMeta;if(r){n=e[i]=new jv(r.categories.length);for(var o=0;o<n.length;o++)n[o]=-1;for(o=0;o<t._count;o++)n[t.get(i,o)]=o}}))},Nv=function(t,e,n,i){var r,o=t._storageArr[e];return o&&(r=o[i],n&&n.categories.length&&(r=n.categories[r])),gr(r,null)},Lv=function(t){return t._rawCount>65535?Zv:qv},kv=function(t,e,n,i){var r=Uv[e.type],o=e.name;if(i){var a=t[o],s=a&&a.length;if(s!==n){for(var l=new r(n),u=0;u<s;u++)l[u]=a[u];t[o]=l}}else t[o]=new r(n)},Pv=function(t){return t},Ov=function(t){return t<this._count&&t>=0?this._indices[t]:-1},Rv=function(t,e){var n=t._idList[e];return null==n&&null!=t._idDimIdx&&(n=Nv(t,t._idDimIdx,t._idOrdinalMeta,e)),null==n&&(n="e\0\0"+e),n},zv=function(t){return V(t)||(t=null!=t?[t]:[]),t},function(t,e){for(var n=0;n<e.length;n++)t._dimensionInfos[e[n]]||console.error("Unkown dimension "+e[n])},Bv=function(e,n){var i=e.dimensions,r=new t(Xv(i,e.getDimensionInfo,e),e.hostModel);Gv(r,e);for(var o,a,s=r._storage={},l=e._storage,u=r._storageArr=[],h=0;h<i.length;h++){var c=i[h];l[c]&&(C(n,c)>=0?(s[c]=(o=l[c],a=void 0,(a=o.constructor)===Array?o.slice():new a(o)),r._rawExtent[c]=Vv(),r._extent[c]=null):s[c]=l[c],u.push(s[c]))}return r},Vv=function(){return[1/0,-1/0]},Fv=function(t){var e=ns(t),n=ns(this);e.seriesIndex=n.seriesIndex,e.dataIndex=n.dataIndex,e.dataType=n.dataType},Gv=function(t,e){k(Kv.concat(e.__wrappedMethods||[]),(function(n){e.hasOwnProperty(n)&&(t[n]=e[n])})),t.__wrappedMethods=e.__wrappedMethods,k($v,(function(n){t[n]=b(e[n])})),t._calculationInfo=M({},e._calculationInfo)},Ev=function(t,e){var n=t._nameList,i=t._idList,r=t._nameDimIdx,o=t._idDimIdx,a=n[e],s=i[e];if(null==a&&null!=r&&(n[e]=a=Nv(t,r,t._nameOrdinalMeta,e)),null==s&&null!=o&&(i[e]=s=Nv(t,o,t._idOrdinalMeta,e)),null==s&&null!=a){var l=t._nameRepeatCount,u=l[a]=(l[a]||0)+1;s=a,u>1&&(s+="__ec__"+u),i[e]=s}}}(),t}();function Qv(t,e,n){fp(e)||(e=yp(e)),n=n||{},t=(t||[]).slice();for(var i=(n.dimsDef||[]).slice(),r=lt(),o=lt(),a=[],s=function(t,e,n,i){var r=Math.max(t.dimensionsDetectedCount||1,e.length,n.length,i||0);return k(e,(function(t){var e;Y(t)&&(e=t.dimsDef)&&(r=Math.max(r,e.length))})),r}(e,t,i,n.dimCount),l=0;l<s;l++){var u=i[l],h=i[l]=M({},Y(u)?u:{name:u}),c=h.name,p=a[l]=new Hv;null!=c&&null==r.get(c)&&(p.name=p.displayName=c,r.set(c,l)),null!=h.type&&(p.type=h.type),null!=h.displayName&&(p.displayName=h.displayName)}var d=n.encodeDef;!d&&n.encodeDefaulter&&(d=n.encodeDefaulter(e,s));var f=lt(d);f.each((function(t,e){var n=lr(t).slice();if(1===n.length&&!G(n[0])&&n[0]<0)f.set(e,!1);else{var i=f.set(e,[]);k(n,(function(t,n){var o=G(t)?r.get(t):t;null!=o&&o<s&&(i[n]=o,y(a[o],e,n))}))}}));var g=0;function y(t,e,n){null!=cc.get(e)?t.otherDims[e]=n:(t.coordDim=e,t.coordDimIndex=n,o.set(e,!0))}k(t,(function(t){var e,n,i,r;if(G(t))e=t,r={};else{e=(r=t).name;var o=r.ordinalMeta;r.ordinalMeta=null,(r=b(r)).ordinalMeta=o,n=r.dimsDef,i=r.otherDims,r.name=r.coordDim=r.coordDimIndex=r.dimsDef=r.otherDims=null}var s=f.get(e);if(!1!==s){if(!(s=lr(s)).length)for(var l=0;l<(n&&n.length||1);l++){for(;g<a.length&&null!=a[g].coordDim;)g++;g<a.length&&s.push(g++)}k(s,(function(t,o){var s=a[t];if(y(I(s,r),e,o),null==s.name&&n){var l=n[o];!Y(l)&&(l={name:l}),s.name=s.displayName=l.name,s.defaultTooltip=l.defaultTooltip}i&&I(s.otherDims,i)}))}}));var v=n.generateCoord,m=n.generateCoordCount,_=null!=m;m=v?m||1:0;for(var x=v||"value",w=0;w<s;w++){null==(p=a[w]=a[w]||new Hv).coordDim&&(p.coordDim=tm(x,o,_),p.coordDimIndex=0,(!v||m<=0)&&(p.isExtraCoord=!0),m--),null==p.name&&(p.name=tm(p.coordDim,r,!1)),null!=p.type||_c(e,w)!==pc&&(!p.isExtraCoord||null==p.otherDims.itemName&&null==p.otherDims.seriesName)||(p.type="ordinal")}return a}function tm(t,e,n){if(n||null!=e.get(t)){for(var i=0;null!=e.get(t+i);)i++;t+=i}return e.set(t,!0),t}function em(t,e){return Qv((e=e||{}).coordDimensions||[],t,{dimsDef:e.dimensionsDefine||t.dimensionsDefine,encodeDef:e.encodeDefine||t.encodeDefine,dimCount:e.dimensionsCount,encodeDefaulter:e.encodeDefaulter,generateCoord:e.generateCoord,generateCoordCount:e.generateCoordCount})}var nm=function(t){this.coordSysDims=[],this.axisMap=lt(),this.categoryAxisMap=lt(),this.coordSysName=t};var im={cartesian2d:function(t,e,n,i){var r=t.getReferringComponents("xAxis",wr).models[0],o=t.getReferringComponents("yAxis",wr).models[0];e.coordSysDims=["x","y"],n.set("x",r),n.set("y",o),rm(r)&&(i.set("x",r),e.firstCategoryDimIndex=0),rm(o)&&(i.set("y",o),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=1))},singleAxis:function(t,e,n,i){var r=t.getReferringComponents("singleAxis",wr).models[0];e.coordSysDims=["single"],n.set("single",r),rm(r)&&(i.set("single",r),e.firstCategoryDimIndex=0)},polar:function(t,e,n,i){var r=t.getReferringComponents("polar",wr).models[0],o=r.findAxisModel("radiusAxis"),a=r.findAxisModel("angleAxis");e.coordSysDims=["radius","angle"],n.set("radius",o),n.set("angle",a),rm(o)&&(i.set("radius",o),e.firstCategoryDimIndex=0),rm(a)&&(i.set("angle",a),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=1))},geo:function(t,e,n,i){e.coordSysDims=["lng","lat"]},parallel:function(t,e,n,i){var r=t.ecModel,o=r.getComponent("parallel",t.get("parallelIndex")),a=e.coordSysDims=o.dimensions.slice();k(o.parallelAxisIndex,(function(t,o){var s=r.getComponent("parallelAxis",t),l=a[o];n.set(l,s),rm(s)&&(i.set(l,s),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=o))}))}};function rm(t){return"category"===t.get("type")}function om(t,e,n){var i,r,o,a,s=(n=n||{}).byIndex,l=n.stackedCoordDimension,u=!(!t||!t.get("stack"));if(k(e,(function(t,n){G(t)&&(e[n]=t={name:t}),u&&!t.isExtraCoord&&(s||i||!t.ordinalMeta||(i=t),r||"ordinal"===t.type||"time"===t.type||l&&l!==t.coordDim||(r=t))})),!r||s||i||(s=!0),r){o="__\0ecstackresult",a="__\0ecstackedover",i&&(i.createInvertedIndices=!0);var h=r.coordDim,c=r.type,p=0;k(e,(function(t){t.coordDim===h&&p++})),e.push({name:o,coordDim:h,coordDimIndex:p,type:c,isExtraCoord:!0,isCalculationCoord:!0}),p++,e.push({name:a,coordDim:a,coordDimIndex:p,type:c,isExtraCoord:!0,isCalculationCoord:!0})}return{stackedDimension:r&&r.name,stackedByDimension:i&&i.name,isStackedByIndex:s,stackedOverDimension:a,stackResultDimension:o}}function am(t,e){return!!e&&e===t.getCalculationInfo("stackedDimension")}function sm(t,e){return am(t,e)?t.getCalculationInfo("stackResultDimension"):e}function lm(t,e,n){n=n||{},fp(t)||(t=yp(t));var i,r=e.get("coordinateSystem"),o=zc.get(r),a=function(t){var e=t.get("coordinateSystem"),n=new nm(e),i=im[e];if(i)return i(t,n,n.axisMap,n.categoryAxisMap),n}(e);a&&a.coordSysDims&&(i=P(a.coordSysDims,(function(t){var e={name:t},n=a.axisMap.get(t);if(n){var i=n.get("type");e.type=Cv(i)}return e}))),i||(i=o&&(o.getDimensionsInfo?o.getDimensionsInfo():o.dimensions.slice())||["x","y"]);var s,l,u=n.useEncodeDefaulter,h=em(t,{coordDimensions:i,generateCoord:n.generateCoord,encodeDefaulter:F(u)?u:u?B(yc,i,e):null});a&&k(h,(function(t,e){var i=t.coordDim,r=a.categoryAxisMap.get(i);r&&(null==s&&(s=e),t.ordinalMeta=r.getOrdinalMeta(),n.createInvertedIndices&&(t.createInvertedIndices=!0)),null!=t.otherDims.itemName&&(l=!0)})),l||null==s||(h[s].otherDims.itemName=0);var c=om(e,h),p=new Jv(h,e);p.setCalculationInfo(c);var d=null!=s&&function(t){if("original"===t.sourceFormat){var e=function(t){var e=0;for(;e<t.length&&null==t[e];)e++;return t[e]}(t.data||[]);return null!=e&&!V(cr(e))}}(t)?function(t,e,n,i){return i===s?n:this.defaultDimValueGetter(t,e,n,i)}:null;return p.hasItemOption=!1,p.initData(t,null,d),p}var um=function(){function t(t){this._setting=t||{},this._extent=[1/0,-1/0]}return t.prototype.getSetting=function(t){return this._setting[t]},t.prototype.unionExtent=function(t){var e=this._extent;t[0]<e[0]&&(e[0]=t[0]),t[1]>e[1]&&(e[1]=t[1])},t.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},t.prototype.getExtent=function(){return this._extent.slice()},t.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(e)||(n[1]=e)},t.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},t.prototype.isBlank=function(){return this._isBlank},t.prototype.setBlank=function(t){this._isBlank=t},t}();Er(um);var hm=function(){function t(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication}return t.createByAxisModel=function(e){var n=e.option,i=n.data,r=i&&P(i,cm);return new t({categories:r,needCollect:!r,deduplication:!1!==n.dedplication})},t.prototype.getOrdinal=function(t){return this._getOrCreateMap().get(t)},t.prototype.parseAndCollect=function(t){var e,n=this._needCollect;if("string"!=typeof t&&!n)return t;if(n&&!this._deduplication)return e=this.categories.length,this.categories[e]=t,e;var i=this._getOrCreateMap();return null==(e=i.get(t))&&(n?(e=this.categories.length,this.categories[e]=t,i.set(t,e)):e=NaN),e},t.prototype._getOrCreateMap=function(){return this._map||(this._map=lt(this.categories))},t}();function cm(t){return Y(t)&&null!=t.value?t.value:t+""}var pm=Fi;function dm(t,e,n,i){var r={},o=t[1]-t[0],a=r.interval=Ji(o/e,!0);null!=n&&a<n&&(a=r.interval=n),null!=i&&a>i&&(a=r.interval=i);var s=r.intervalPrecision=fm(a);return function(t,e){!isFinite(t[0])&&(t[0]=e[0]),!isFinite(t[1])&&(t[1]=e[1]),gm(t,0,e),gm(t,1,e),t[0]>t[1]&&(t[0]=t[1])}(r.niceTickExtent=[pm(Math.ceil(t[0]/a)*a,s),pm(Math.floor(t[1]/a)*a,s)],t),r}function fm(t){return Wi(t)+2}function gm(t,e,n){t[e]=Math.max(Math.min(t[e],n[1]),n[0])}function ym(t,e){return t>=e[0]&&t<=e[1]}function vm(t,e){return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])}function mm(t,e){return t*(e[1]-e[0])+e[0]}var _m=function(t){function n(e){var n=t.call(this,e)||this;n.type="ordinal";var i=n.getSetting("ordinalMeta");return i||(i=new hm({})),V(i)&&(i=new hm({categories:P(i,(function(t){return Y(t)?t.value:t}))})),n._ordinalMeta=i,n._extent=n.getSetting("extent")||[0,i.categories.length-1],n}return e(n,t),n.prototype.parse=function(t){return"string"==typeof t?this._ordinalMeta.getOrdinal(t):Math.round(t)},n.prototype.contain=function(t){return ym(t=this.parse(t),this._extent)&&null!=this._ordinalMeta.categories[t]},n.prototype.normalize=function(t){return vm(t=this._getTickNumber(this.parse(t)),this._extent)},n.prototype.scale=function(t){return t=Math.round(mm(t,this._extent)),this.getRawOrdinalNumber(t)},n.prototype.getTicks=function(){for(var t=[],e=this._extent,n=e[0];n<=e[1];)t.push({value:n}),n++;return t},n.prototype.getMinorTicks=function(t){},n.prototype.setSortInfo=function(t){if(null!=t){for(var e=t.ordinalNumbers,n=this._ordinalNumbersByTick=[],i=this._ticksByOrdinalNumber=[],r=0,o=this._ordinalMeta.categories.length,a=Math.min(o,e.length);r<a;++r){var s=e[r];n[r]=s,i[s]=r}for(var l=0;r<o;++r){for(;null!=i[l];)l++;n.push(l),i[l]=r}}else this._ordinalNumbersByTick=this._ticksByOrdinalNumber=null},n.prototype._getTickNumber=function(t){var e=this._ticksByOrdinalNumber;return e&&t>=0&&t<e.length?e[t]:t},n.prototype.getRawOrdinalNumber=function(t){var e=this._ordinalNumbersByTick;return e&&t>=0&&t<e.length?e[t]:t},n.prototype.getLabel=function(t){if(!this.isBlank()){var e=this.getRawOrdinalNumber(t.value),n=this._ordinalMeta.categories[e];return null==n?"":n+""}},n.prototype.count=function(){return this._extent[1]-this._extent[0]+1},n.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},n.prototype.isInExtentRange=function(t){return t=this._getTickNumber(t),this._extent[0]<=t&&this._extent[1]>=t},n.prototype.getOrdinalMeta=function(){return this._ordinalMeta},n.prototype.niceTicks=function(){},n.prototype.niceExtent=function(){},n.type="ordinal",n}(um);um.registerClass(_m);var xm=Fi,bm=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="interval",e._interval=0,e._intervalPrecision=2,e}return e(n,t),n.prototype.parse=function(t){return t},n.prototype.contain=function(t){return ym(t,this._extent)},n.prototype.normalize=function(t){return vm(t,this._extent)},n.prototype.scale=function(t){return mm(t,this._extent)},n.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=parseFloat(t)),isNaN(e)||(n[1]=parseFloat(e))},n.prototype.unionExtent=function(t){var e=this._extent;t[0]<e[0]&&(e[0]=t[0]),t[1]>e[1]&&(e[1]=t[1]),this.setExtent(e[0],e[1])},n.prototype.getInterval=function(){return this._interval},n.prototype.setInterval=function(t){this._interval=t,this._niceExtent=this._extent.slice(),this._intervalPrecision=fm(t)},n.prototype.getTicks=function(t){var e=this._interval,n=this._extent,i=this._niceExtent,r=this._intervalPrecision,o=[];if(!e)return o;n[0]<i[0]&&(t?o.push({value:xm(i[0]-e,r)}):o.push({value:n[0]}));for(var a=i[0];a<=i[1]&&(o.push({value:a}),(a=xm(a+e,r))!==o[o.length-1].value);)if(o.length>1e4)return[];var s=o.length?o[o.length-1].value:i[1];return n[1]>s&&(t?o.push({value:xm(s+e,r)}):o.push({value:n[1]})),o},n.prototype.getMinorTicks=function(t){for(var e=this.getTicks(!0),n=[],i=this.getExtent(),r=1;r<e.length;r++){for(var o=e[r],a=e[r-1],s=0,l=[],u=(o.value-a.value)/t;s<t-1;){var h=xm(a.value+(s+1)*u);h>i[0]&&h<i[1]&&l.push(h),s++}n.push(l)}return n},n.prototype.getLabel=function(t,e){if(null==t)return"";var n=e&&e.precision;return null==n?n=Wi(t.value)||0:"auto"===n&&(n=this._intervalPrecision),Eh(xm(t.value,n,!0))},n.prototype.niceTicks=function(t,e,n){t=t||5;var i=this._extent,r=i[1]-i[0];if(isFinite(r)){r<0&&(r=-r,i.reverse());var o=dm(i,t,e,n);this._intervalPrecision=o.intervalPrecision,this._interval=o.interval,this._niceExtent=o.niceTickExtent}},n.prototype.niceExtent=function(t){var e=this._extent;if(e[0]===e[1])if(0!==e[0]){var n=e[0];t.fixMax||(e[1]+=n/2),e[0]-=n/2}else e[1]=1;var i=e[1]-e[0];isFinite(i)||(e[0]=0,e[1]=1),this.niceTicks(t.splitNumber,t.minInterval,t.maxInterval);var r=this._interval;t.fixMin||(e[0]=xm(Math.floor(e[0]/r)*r)),t.fixMax||(e[1]=xm(Math.ceil(e[1]/r)*r))},n.type="interval",n}(um);um.registerClass(bm);var wm="undefined"!=typeof Float32Array?Float32Array:Array;function Sm(t){return t.get("stack")||"__ec_stack_"+t.seriesIndex}function Mm(t){return t.dim+t.index}function Im(t,e){var n=[];return e.eachSeriesByType(t,(function(t){km(t)&&!Pm(t)&&n.push(t)})),n}function Tm(t){var e=function(t){var e={};k(t,(function(t){var n=t.coordinateSystem.getBaseAxis();if("time"===n.type||"value"===n.type)for(var i=t.getData(),r=n.dim+"_"+n.index,o=i.mapDimension(n.dim),a=0,s=i.count();a<s;++a){var l=i.get(o,a);e[r]?e[r].push(l):e[r]=[l]}}));var n={};for(var i in e)if(e.hasOwnProperty(i)){var r=e[i];if(r){r.sort((function(t,e){return t-e}));for(var o=null,a=1;a<r.length;++a){var s=r[a]-r[a-1];s>0&&(o=null===o?s:Math.min(o,s))}n[i]=o}}return n}(t),n=[];return k(t,(function(t){var i,r=t.coordinateSystem.getBaseAxis(),o=r.getExtent();if("category"===r.type)i=r.getBandWidth();else if("value"===r.type||"time"===r.type){var a=r.dim+"_"+r.index,s=e[a],l=Math.abs(o[1]-o[0]),u=r.scale.getExtent(),h=Math.abs(u[1]-u[0]);i=s?l/h*s:l}else{var c=t.getData();i=Math.abs(o[1]-o[0])/c.count()}var p=Vi(t.get("barWidth"),i),d=Vi(t.get("barMaxWidth"),i),f=Vi(t.get("barMinWidth")||1,i),g=t.get("barGap"),y=t.get("barCategoryGap");n.push({bandWidth:i,barWidth:p,barMaxWidth:d,barMinWidth:f,barGap:g,barCategoryGap:y,axisKey:Mm(r),stackId:Sm(t)})})),Cm(n)}function Cm(t){var e={};k(t,(function(t,n){var i=t.axisKey,r=t.bandWidth,o=e[i]||{bandWidth:r,remainedWidth:r,autoWidthCount:0,categoryGap:null,gap:"20%",stacks:{}},a=o.stacks;e[i]=o;var s=t.stackId;a[s]||o.autoWidthCount++,a[s]=a[s]||{width:0,maxWidth:0};var l=t.barWidth;l&&!a[s].width&&(a[s].width=l,l=Math.min(o.remainedWidth,l),o.remainedWidth-=l);var u=t.barMaxWidth;u&&(a[s].maxWidth=u);var h=t.barMinWidth;h&&(a[s].minWidth=h);var c=t.barGap;null!=c&&(o.gap=c);var p=t.barCategoryGap;null!=p&&(o.categoryGap=p)}));var n={};return k(e,(function(t,e){n[e]={};var i=t.stacks,r=t.bandWidth,o=t.categoryGap;if(null==o){var a=E(i).length;o=Math.max(35-4*a,15)+"%"}var s=Vi(o,r),l=Vi(t.gap,1),u=t.remainedWidth,h=t.autoWidthCount,c=(u-s)/(h+(h-1)*l);c=Math.max(c,0),k(i,(function(t){var e=t.maxWidth,n=t.minWidth;if(t.width){i=t.width;e&&(i=Math.min(i,e)),n&&(i=Math.max(i,n)),t.width=i,u-=i+l*i,h--}else{var i=c;e&&e<i&&(i=Math.min(e,u)),n&&n>i&&(i=n),i!==c&&(t.width=i,u-=i+l*i,h--)}})),c=(u-s)/(h+(h-1)*l),c=Math.max(c,0);var p,d=0;k(i,(function(t,e){t.width||(t.width=c),p=t,d+=t.width*(1+l)})),p&&(d-=p.width*l);var f=-d/2;k(i,(function(t,i){n[e][i]=n[e][i]||{bandWidth:r,offset:f,width:t.width},f+=t.width*(1+l)}))})),n}function Am(t,e,n){if(t&&e){var i=t[Mm(e)];return null!=i&&null!=n?i[Sm(n)]:i}}function Dm(t,e){var n=Im(t,e),i=Tm(n),r={};k(n,(function(t){var e=t.getData(),n=t.coordinateSystem,o=n.getBaseAxis(),a=Sm(t),s=i[Mm(o)][a],l=s.offset,u=s.width,h=n.getOtherAxis(o),c=t.get("barMinHeight")||0;r[a]=r[a]||[],e.setLayout({bandWidth:s.bandWidth,offset:l,size:u});for(var p=e.mapDimension(h.dim),d=e.mapDimension(o.dim),f=am(e,p),g=h.isHorizontal(),y=Om(o,h),v=0,m=e.count();v<m;v++){var _=e.get(p,v),x=e.get(d,v),b=_>=0?"p":"n",w=y;f&&(r[a][x]||(r[a][x]={p:y,n:y}),w=r[a][x][b]);var S,M=void 0,I=void 0,T=void 0,C=void 0;if(g)M=w,I=(S=n.dataToPoint([_,x]))[1]+l,T=S[0]-y,C=u,Math.abs(T)<c&&(T=(T<0?-1:1)*c),isNaN(T)||f&&(r[a][x][b]+=T);else M=(S=n.dataToPoint([x,_]))[0]+l,I=w,T=u,C=S[1]-y,Math.abs(C)<c&&(C=(C<=0?-1:1)*c),isNaN(C)||f&&(r[a][x][b]+=C);e.setItemLayout(v,{x:M,y:I,width:T,height:C})}}))}var Lm={seriesType:"bar",plan:Ld(),reset:function(t){if(km(t)&&Pm(t)){var e=t.getData(),n=t.coordinateSystem,i=n.master.getRect(),r=n.getBaseAxis(),o=n.getOtherAxis(r),a=e.mapDimension(o.dim),s=e.mapDimension(r.dim),l=o.isHorizontal(),u=l?0:1,h=Am(Tm([t]),r,t).width;return h>.5||(h=.5),{progress:function(t,e){for(var c,p=t.count,d=new wm(2*p),f=new wm(2*p),g=new wm(p),y=[],v=[],m=0,_=0;null!=(c=t.next());)v[u]=e.get(a,c),v[1-u]=e.get(s,c),y=n.dataToPoint(v,null,y),f[m]=l?i.x+i.width:y[0],d[m++]=y[0],f[m]=l?y[1]:i.y+i.height,d[m++]=y[1],g[_++]=c;e.setLayout({largePoints:d,largeDataIndices:g,largeBackgroundPoints:f,barWidth:h,valueAxisStart:Om(r,o),backgroundStart:l?i.x:i.y,valueAxisHorizontal:l})}}}}};function km(t){return t.coordinateSystem&&"cartesian2d"===t.coordinateSystem.type}function Pm(t){return t.pipelineContext&&t.pipelineContext.large}function Om(t,e,n){return e.toGlobalCoord(e.dataToCoord("log"===e.type?1:0))}var Rm=function(t){function n(e){var n=t.call(this,e)||this;return n.type="time",n}return e(n,t),n.prototype.getLabel=function(t){var e=this.getSetting("useUTC");return _h(t.value,dh[function(t){switch(t){case"year":case"month":return"day";case"millisecond":return"millisecond";default:return"second"}}(vh(this._minLevelUnit))]||dh.second,e,this.getSetting("locale"))},n.prototype.getFormattedLabel=function(t,e,n){var i=this.getSetting("useUTC");return function(t,e,n,i,r){var o=null;if("string"==typeof n)o=n;else if("function"==typeof n)o=n(t.value,e,{level:t.level});else{var a=M({},ph);if(t.level>0)for(var s=0;s<fh.length;++s)a[fh[s]]="{primary|"+a[fh[s]]+"}";var l=n?!1===n.inherit?n:I(n,a):a,u=xh(t.value,r);if(l[u])o=l[u];else if(l.inherit){for(s=gh.indexOf(u)-1;s>=0;--s)if(l[u]){o=l[u];break}o=o||a.none}if(V(o)){var h=null==t.level?0:t.level>=0?t.level:o.length+t.level;o=o[h=Math.min(h,o.length-1)]}}return _h(new Date(t.value),o,r,i)}(t,e,n,this.getSetting("locale"),i)},n.prototype.getTicks=function(t){var e=this._interval,n=this._extent,i=[];if(!e)return i;i.push({value:n[0],level:0});var r=this.getSetting("useUTC"),o=function(t,e,n,i){var r=1e4,o=gh,a=0;function s(t,e,n,r,o,a,s){for(var l=new Date(e),u=e,h=l[r]();u<n&&u<=i[1];)s.push({value:u}),h+=t,l[o](h),u=l.getTime();s.push({value:u,notAdd:!0})}function l(t,r,o){var a=[],l=!r.length;if(!function(t,e,n,i){var r=qi(e),o=qi(n),a=function(t){return bh(r,t,i)===bh(o,t,i)},s=function(){return a("year")},l=function(){return s()&&a("month")},u=function(){return l()&&a("day")},h=function(){return u()&&a("hour")},c=function(){return h()&&a("minute")},p=function(){return c()&&a("second")},d=function(){return p()&&a("millisecond")};switch(t){case"year":return s();case"month":return l();case"day":return u();case"hour":return h();case"minute":return c();case"second":return p();case"millisecond":return d()}}(vh(t),i[0],i[1],n)){l&&(r=[{value:Gm(new Date(i[0]),t,n)},{value:i[1]}]);for(var u=0;u<r.length-1;u++){var h=r[u].value,c=r[u+1].value;if(h!==c){var p=void 0,d=void 0,f=void 0,g=!1;switch(t){case"year":p=Math.max(1,Math.round(e/864e5/365)),d=wh(n),f=Dh(n);break;case"half-year":case"quarter":case"month":p=zm(e),d=Sh(n),f=Lh(n);break;case"week":case"half-week":case"day":p=Em(e),d=Mh(n),f=kh(n),g=!0;break;case"half-day":case"quarter-day":case"hour":p=Bm(e),d=Ih(n),f=Ph(n);break;case"minute":p=Vm(e,!0),d=Th(n),f=Oh(n);break;case"second":p=Vm(e,!1),d=Ch(n),f=Rh(n);break;case"millisecond":p=Fm(e),d=Ah(n),f=Nh(n)}s(p,h,c,d,f,g,a),"year"===t&&o.length>1&&0===u&&o.unshift({value:o[0].value-p})}}for(u=0;u<a.length;u++)o.push(a[u]);return a}}for(var u=[],h=[],c=0,p=0,d=0;d<o.length&&a++<r;++d){var f=vh(o[d]);if(mh(o[d]))if(l(o[d],u[u.length-1]||[],h),f!==(o[d+1]?vh(o[d+1]):null)){if(h.length){p=c,h.sort((function(t,e){return t.value-e.value}));for(var g=[],y=0;y<h.length;++y){var v=h[y].value;0!==y&&h[y-1].value===v||(g.push(h[y]),v>=i[0]&&v<=i[1]&&c++)}var m=(i[1]-i[0])/e;if(c>1.5*m&&p>m/1.5)break;if(u.push(g),c>m||t===o[d])break}h=[]}}0;var _=R(P(u,(function(t){return R(t,(function(t){return t.value>=i[0]&&t.value<=i[1]&&!t.notAdd}))})),(function(t){return t.length>0})),x=[],b=_.length-1;for(d=0;d<_.length;++d)for(var w=_[d],S=0;S<w.length;++S)x.push({value:w[S].value,level:b-d});x.sort((function(t,e){return t.value-e.value}));var M=[];for(d=0;d<x.length;++d)0!==d&&x[d].value===x[d-1].value||M.push(x[d]);return M}(this._minLevelUnit,this._approxInterval,r,n);return(i=i.concat(o)).push({value:n[1],level:0}),i},n.prototype.niceExtent=function(t){var e=this._extent;if(e[0]===e[1]&&(e[0]-=864e5,e[1]+=864e5),e[1]===-1/0&&e[0]===1/0){var n=new Date;e[1]=+new Date(n.getFullYear(),n.getMonth(),n.getDate()),e[0]=e[1]-864e5}this.niceTicks(t.splitNumber,t.minInterval,t.maxInterval)},n.prototype.niceTicks=function(t,e,n){t=t||10;var i=this._extent,r=i[1]-i[0];this._approxInterval=r/t,null!=e&&this._approxInterval<e&&(this._approxInterval=e),null!=n&&this._approxInterval>n&&(this._approxInterval=n);var o=Nm.length,a=Math.min(function(t,e,n,i){for(;n<i;){var r=n+i>>>1;t[r][1]<e?n=r+1:i=r}return n}(Nm,this._approxInterval,0,o),o-1);this._interval=Nm[a][1],this._minLevelUnit=Nm[Math.max(a-1,0)][0]},n.prototype.parse=function(t){return"number"==typeof t?t:+qi(t)},n.prototype.contain=function(t){return ym(this.parse(t),this._extent)},n.prototype.normalize=function(t){return vm(this.parse(t),this._extent)},n.prototype.scale=function(t){return mm(t,this._extent)},n.type="time",n}(bm),Nm=[["second",1e3],["minute",6e4],["hour",36e5],["quarter-day",216e5],["half-day",432e5],["day",10368e4],["half-week",3024e5],["week",6048e5],["month",26784e5],["quarter",8208e6],["half-year",15768e6],["year",31536e6]];function Em(t,e){return(t/=864e5)>16?16:t>7.5?7:t>3.5?4:t>1.5?2:1}function zm(t){return(t/=2592e6)>6?6:t>3?3:t>2?2:1}function Bm(t){return(t/=36e5)>12?12:t>6?6:t>3.5?4:t>2?2:1}function Vm(t,e){return(t/=e?6e4:1e3)>30?30:t>20?20:t>15?15:t>10?10:t>5?5:t>2?2:1}function Fm(t){return Ji(t,!0)}function Gm(t,e,n){var i=new Date(t);switch(vh(e)){case"year":case"month":i[Lh(n)](0);case"day":i[kh(n)](1);case"hour":i[Ph(n)](0);case"minute":i[Oh(n)](0);case"second":i[Rh(n)](0),i[Nh(n)](0)}return i.getTime()}um.registerClass(Rm);var Hm=um.prototype,Wm=bm.prototype,Ym=Wi,Xm=Fi,Um=Math.floor,Zm=Math.ceil,jm=Math.pow,qm=Math.log,Km=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="log",e.base=10,e._originalScale=new bm,e._interval=0,e}return e(n,t),n.prototype.getTicks=function(t){var e=this._originalScale,n=this._extent,i=e.getExtent();return P(Wm.getTicks.call(this,t),(function(t){var e=t.value,r=Fi(jm(this.base,e));return r=e===n[0]&&this._fixMin?Jm(r,i[0]):r,{value:r=e===n[1]&&this._fixMax?Jm(r,i[1]):r}}),this)},n.prototype.setExtent=function(t,e){var n=this.base;t=qm(t)/qm(n),e=qm(e)/qm(n),Wm.setExtent.call(this,t,e)},n.prototype.getExtent=function(){var t=this.base,e=Hm.getExtent.call(this);e[0]=jm(t,e[0]),e[1]=jm(t,e[1]);var n=this._originalScale.getExtent();return this._fixMin&&(e[0]=Jm(e[0],n[0])),this._fixMax&&(e[1]=Jm(e[1],n[1])),e},n.prototype.unionExtent=function(t){this._originalScale.unionExtent(t);var e=this.base;t[0]=qm(t[0])/qm(e),t[1]=qm(t[1])/qm(e),Hm.unionExtent.call(this,t)},n.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},n.prototype.niceTicks=function(t){t=t||10;var e=this._extent,n=e[1]-e[0];if(!(n===1/0||n<=0)){var i=Ki(n);for(t/n*i<=.5&&(i*=10);!isNaN(i)&&Math.abs(i)<1&&Math.abs(i)>0;)i*=10;var r=[Fi(Zm(e[0]/i)*i),Fi(Um(e[1]/i)*i)];this._interval=i,this._niceExtent=r}},n.prototype.niceExtent=function(t){Wm.niceExtent.call(this,t),this._fixMin=t.fixMin,this._fixMax=t.fixMax},n.prototype.parse=function(t){return t},n.prototype.contain=function(t){return ym(t=qm(t)/qm(this.base),this._extent)},n.prototype.normalize=function(t){return vm(t=qm(t)/qm(this.base),this._extent)},n.prototype.scale=function(t){return t=mm(t,this._extent),jm(this.base,t)},n.type="log",n}(um),$m=Km.prototype;function Jm(t,e){return Xm(t,Ym(e))}$m.getMinorTicks=Wm.getMinorTicks,$m.getLabel=Wm.getLabel,um.registerClass(Km);var Qm=function(){function t(t,e,n){this._prepareParams(t,e,n)}return t.prototype._prepareParams=function(t,e,n){n[1]<n[0]&&(n=[NaN,NaN]),this._dataMin=n[0],this._dataMax=n[1];var i=this._isOrdinal="ordinal"===t.type;this._needCrossZero=e.getNeedCrossZero&&e.getNeedCrossZero();var r=this._modelMinRaw=e.get("min",!0);F(r)?this._modelMinNum=i_(t,r({min:n[0],max:n[1]})):"dataMin"!==r&&(this._modelMinNum=i_(t,r));var o=this._modelMaxRaw=e.get("max",!0);if(F(o)?this._modelMaxNum=i_(t,o({min:n[0],max:n[1]})):"dataMax"!==o&&(this._modelMaxNum=i_(t,o)),i)this._axisDataLen=e.getCategories().length;else{var a=e.get("boundaryGap"),s=V(a)?a:[a||0,a||0];"boolean"==typeof s[0]||"boolean"==typeof s[1]?this._boundaryGapInner=[0,0]:this._boundaryGapInner=[Fn(s[0],1),Fn(s[1],1)]}},t.prototype.calculate=function(){var t=this._isOrdinal,e=this._dataMin,n=this._dataMax,i=this._axisDataLen,r=this._boundaryGapInner,o=t?null:n-e||Math.abs(e),a="dataMin"===this._modelMinRaw?e:this._modelMinNum,s="dataMax"===this._modelMaxRaw?n:this._modelMaxNum,l=null!=a,u=null!=s;null==a&&(a=t?i?0:NaN:e-r[0]*o),null==s&&(s=t?i?i-1:NaN:n+r[1]*o),(null==a||!isFinite(a))&&(a=NaN),(null==s||!isFinite(s))&&(s=NaN),a>s&&(a=NaN,s=NaN);var h=$(a)||$(s)||t&&!i;this._needCrossZero&&(a>0&&s>0&&!l&&(a=0),a<0&&s<0&&!u&&(s=0));var c=this._determinedMin,p=this._determinedMax;return null!=c&&(a=c,l=!0),null!=p&&(s=p,u=!0),{min:a,max:s,minFixed:l,maxFixed:u,isBlank:h}},t.prototype.modifyDataMinMax=function(t,e){this[e_[t]]=e},t.prototype.setDeterminedMinMax=function(t,e){var n=t_[t];this[n]=e},t.prototype.freeze=function(){this.frozen=!0},t}(),t_={min:"_determinedMin",max:"_determinedMax"},e_={min:"_dataMin",max:"_dataMax"};function n_(t,e,n){var i=t.rawExtentInfo;return i||(i=new Qm(t,e,n),t.rawExtentInfo=i,i)}function i_(t,e){return null==e?null:$(e)?NaN:t.parse(e)}function r_(t,e){var n=t.type,i=n_(t,e,t.getExtent()).calculate();t.setBlank(i.isBlank);var r=i.min,o=i.max,a=e.ecModel;if(a&&"time"===n){var s=Im("bar",a),l=!1;if(k(s,(function(t){l=l||t.getBaseAxis()===e.axis})),l){var u=Tm(s),h=function(t,e,n,i){var r=n.axis.getExtent(),o=r[1]-r[0],a=Am(i,n.axis);if(void 0===a)return{min:t,max:e};var s=1/0;k(a,(function(t){s=Math.min(t.offset,s)}));var l=-1/0;k(a,(function(t){l=Math.max(t.offset+t.width,l)})),s=Math.abs(s),l=Math.abs(l);var u=s+l,h=e-t,c=h/(1-(s+l)/o)-h;return{min:t-=c*(s/u),max:e+=c*(l/u)}}(r,o,e,u);r=h.min,o=h.max}}return{extent:[r,o],fixMin:i.minFixed,fixMax:i.maxFixed}}function o_(t,e){var n=r_(t,e),i=n.extent,r=e.get("splitNumber");t instanceof Km&&(t.base=e.get("logBase"));var o=t.type;t.setExtent(i[0],i[1]),t.niceExtent({splitNumber:r,fixMin:n.fixMin,fixMax:n.fixMax,minInterval:"interval"===o||"time"===o?e.get("minInterval"):null,maxInterval:"interval"===o||"time"===o?e.get("maxInterval"):null});var a=e.get("interval");null!=a&&t.setInterval&&t.setInterval(a)}function a_(t,e){if(e=e||t.get("type"))switch(e){case"category":return new _m({ordinalMeta:t.getOrdinalMeta?t.getOrdinalMeta():t.getCategories(),extent:[1/0,-1/0]});case"time":return new Rm({locale:t.ecModel.getLocaleModel(),useUTC:t.ecModel.get("useUTC")});default:return new(um.getClass(e)||bm)}}function s_(t){var e,n,i=t.getLabelModel().get("formatter"),r="category"===t.type?t.scale.getExtent()[0]:null;return"time"===t.scale.type?(n=i,function(e,i){return t.scale.getFormattedLabel(e,i,n)}):"string"==typeof i?function(e){return function(n){var i=t.scale.getLabel(n);return e.replace("{value}",null!=i?i:"")}}(i):"function"==typeof i?(e=i,function(n,i){return null!=r&&(i=n.value-r),e(l_(t,n),i,null!=n.level?{level:n.level}:null)}):function(e){return t.scale.getLabel(e)}}function l_(t,e){return"category"===t.type?t.scale.getLabel(e):e.value}function u_(t,e){var n=e*Math.PI/180,i=t.width,r=t.height,o=i*Math.abs(Math.cos(n))+Math.abs(r*Math.sin(n)),a=i*Math.abs(Math.sin(n))+Math.abs(r*Math.cos(n));return new Ln(t.x,t.y,o,a)}function h_(t){var e=t.get("interval");return null==e?"auto":e}function c_(t){return"category"===t.type&&0===h_(t.getLabelModel())}function p_(t,e){var n={};return k(t.mapDimensionsAll(e),(function(e){n[sm(t,e)]=!0})),E(n)}var d_=function(){function t(){}return t.prototype.getNeedCrossZero=function(){return!this.option.scale},t.prototype.getCoordSysModel=function(){},t}();var f_={isDimensionStacked:am,enableDataStack:om,getStackedDimension:sm};var g_=Object.freeze({__proto__:null,createList:function(t){return lm(t.getSource(),t)},getLayoutRect:tc,dataStack:f_,createScale:function(t,e){var n=e;e instanceof rh||(n=new rh(e));var i=a_(n);return i.setExtent(t[0],t[1]),o_(i,n),i},mixinAxisModelCommonMethods:function(t){D(t,d_)},getECData:ns,createTextStyle:function(t,e){return zu(t,null,null,"normal"!==(e=e||{}).state)},createDimensions:em,createSymbol:Sg,enableHoverEmphasis:Os});function y_(t,e){return Math.abs(t-e)<1e-8}function v_(t,e,n){var i=0,r=t[0];if(!r)return!1;for(var o=1;o<t.length;o++){var a=t[o];i+=ba(r[0],r[1],a[0],a[1],e,n),r=a}var s=t[0];return y_(r[0],s[0])&&y_(r[1],s[1])||(i+=ba(r[0],r[1],s[0],s[1],e,n)),0!==i}var m_=function(){function t(t,e,n){if(this.name=t,this.geometries=e,n)n=[n[0],n[1]];else{var i=this.getBoundingRect();n=[i.x+i.width/2,i.y+i.height/2]}this.center=n}return t.prototype.getBoundingRect=function(){var t=this._rect;if(t)return t;for(var e=Number.MAX_VALUE,n=[e,e],i=[-e,-e],r=[],o=[],a=this.geometries,s=0;s<a.length;s++){if("polygon"===a[s].type)Go(a[s].exterior,r,o),Ot(n,n,r),Rt(i,i,o)}return 0===s&&(n[0]=n[1]=i[0]=i[1]=0),this._rect=new Ln(n[0],n[1],i[0]-n[0],i[1]-n[1])},t.prototype.contain=function(t){var e=this.getBoundingRect(),n=this.geometries;if(!e.contain(t[0],t[1]))return!1;t:for(var i=0,r=n.length;i<r;i++)if("polygon"===n[i].type){var o=n[i].exterior,a=n[i].interiors;if(v_(o,t[0],t[1])){for(var s=0;s<(a?a.length:0);s++)if(v_(a[s],t[0],t[1]))continue t;return!0}}return!1},t.prototype.transformTo=function(t,e,n,i){var r=this.getBoundingRect(),o=r.width/r.height;n?i||(i=n/o):n=o*i;for(var a=new Ln(t,e,n,i),s=r.calculateTransform(a),l=this.geometries,u=0;u<l.length;u++)if("polygon"===l[u].type){for(var h=l[u].exterior,c=l[u].interiors,p=0;p<h.length;p++)Pt(h[p],h[p],s);for(var d=0;d<(c?c.length:0);d++)for(p=0;p<c[d].length;p++)Pt(c[d][p],c[d][p],s)}(r=this._rect).copy(a),this.center=[r.x+r.width/2,r.y+r.height/2]},t.prototype.cloneShallow=function(e){null==e&&(e=this.name);var n=new t(e,this.geometries,this.center);return n._rect=this._rect,n.transformTo=null,n},t}();function __(t,e,n){for(var i=[],r=e[0],o=e[1],a=0;a<t.length;a+=2){var s=t.charCodeAt(a)-64,l=t.charCodeAt(a+1)-64;s=s>>1^-(1&s),l=l>>1^-(1&l),r=s+=r,o=l+=o,i.push([s/n,l/n])}return i}function x_(t,e){return P(R((t=function(t){if(!t.UTF8Encoding)return t;var e=t,n=e.UTF8Scale;null==n&&(n=1024);for(var i=e.features,r=0;r<i.length;r++){var o=i[r].geometry;if("Polygon"===o.type)for(var a=o.coordinates,s=0;s<a.length;s++)a[s]=__(a[s],o.encodeOffsets[s],n);else if("MultiPolygon"===o.type)for(a=o.coordinates,s=0;s<a.length;s++)for(var l=a[s],u=0;u<l.length;u++)l[u]=__(l[u],o.encodeOffsets[s][u],n)}return e.UTF8Encoding=!1,e}(t)).features,(function(t){return t.geometry&&t.properties&&t.geometry.coordinates.length>0})),(function(t){var n=t.properties,i=t.geometry,r=[];if("Polygon"===i.type){var o=i.coordinates;r.push({type:"polygon",exterior:o[0],interiors:o.slice(1)})}"MultiPolygon"===i.type&&k(o=i.coordinates,(function(t){t[0]&&r.push({type:"polygon",exterior:t[0],interiors:t.slice(1)})}));var a=new m_(n[e||"name"],r,n.cp);return a.properties=n,a}))}var b_=Object.freeze({__proto__:null,linearMap:Bi,round:Fi,asc:Gi,getPrecision:Hi,getPrecisionSafe:Wi,getPixelPrecision:Yi,getPercentWithPrecision:Xi,MAX_SAFE_INTEGER:9007199254740991,remRadian:Ui,isRadianAroundZero:Zi,parseDate:qi,quantity:Ki,quantityExponent:$i,nice:Ji,quantile:Qi,reformIntervals:tr,isNumeric:nr,numericToNumber:er}),w_=Object.freeze({__proto__:null,parse:qi,format:_h}),S_=Object.freeze({__proto__:null,extendShape:nu,extendPath:ru,makePath:su,makeImage:lu,mergePath:hu,resizePath:cu,createIcon:Cu,updateProps:fu,initProps:gu,getTransform:xu,clipPointsByRect:Iu,clipRectByRect:Tu,registerShape:ou,getShapeClass:au,Group:Li,Image:Ba,Text:ja,Circle:sl,Ellipse:ul,Sector:Ml,Ring:Tl,Polygon:Ll,Polyline:Pl,Rect:Xa,Line:Nl,BezierCurve:Vl,Arc:Gl,IncrementalDisplayable:Jl,CompoundPath:Hl,LinearGradient:Yl,RadialGradient:Xl,BoundingRect:Ln}),M_=Object.freeze({__proto__:null,addCommas:Eh,toCamelCase:zh,normalizeCssArray:Bh,encodeHTML:Gh,formatTpl:Xh,getTooltipMarker:Uh,formatTime:function(t,e,n){"week"!==t&&"month"!==t&&"quarter"!==t&&"half-year"!==t&&"year"!==t||(t="MM-dd\nyyyy");var i=qi(e),r=n?"UTC":"",o=i["get"+r+"FullYear"](),a=i["get"+r+"Month"]()+1,s=i["get"+r+"Date"](),l=i["get"+r+"Hours"](),u=i["get"+r+"Minutes"](),h=i["get"+r+"Seconds"](),c=i["get"+r+"Milliseconds"]();return t=t.replace("MM",yh(a,2)).replace("M",a).replace("yyyy",o).replace("yy",o%100+"").replace("dd",yh(s,2)).replace("d",s).replace("hh",yh(l,2)).replace("h",l).replace("mm",yh(u,2)).replace("m",u).replace("ss",yh(h,2)).replace("s",h).replace("SSS",yh(c,3))},capitalFirst:function(t){return t?t.charAt(0).toUpperCase()+t.substr(1):t},truncateText:Ur,getTextRect:function(t,e,n,i,r,o,a,s){return ar(),new ja({style:{text:t,font:e,align:n,verticalAlign:i,padding:r,rich:o,overflow:a?"truncate":null,lineHeight:s}}).getBoundingRect()}}),I_=Object.freeze({__proto__:null,map:P,each:k,indexOf:C,inherits:A,reduce:O,filter:R,bind:z,curry:B,isArray:V,isString:G,isObject:Y,isFunction:F,extend:M,defaults:I,clone:b,merge:w}),T_=_r();function C_(t){return"category"===t.type?function(t){var e=t.getLabelModel(),n=D_(t,e);return!e.get("show")||t.scale.isBlank()?{labels:[],labelCategoryInterval:n.labelCategoryInterval}:n}(t):function(t){var e=t.scale.getTicks(),n=s_(t);return{labels:P(e,(function(e,i){return{formattedLabel:n(e,i),rawLabel:t.scale.getLabel(e),tickValue:e.value}}))}}(t)}function A_(t,e){return"category"===t.type?function(t,e){var n,i,r=L_(t,"ticks"),o=h_(e),a=k_(r,o);if(a)return a;e.get("show")&&!t.scale.isBlank()||(n=[]);if(F(o))n=R_(t,o,!0);else if("auto"===o){var s=D_(t,t.getLabelModel());i=s.labelCategoryInterval,n=P(s.labels,(function(t){return t.tickValue}))}else n=O_(t,i=o,!0);return P_(r,o,{ticks:n,tickCategoryInterval:i})}(t,e):{ticks:P(t.scale.getTicks(),(function(t){return t.value}))}}function D_(t,e){var n,i,r=L_(t,"labels"),o=h_(e),a=k_(r,o);return a||(F(o)?n=R_(t,o):(i="auto"===o?function(t){var e=T_(t).autoInterval;return null!=e?e:T_(t).autoInterval=t.calculateCategoryInterval()}(t):o,n=O_(t,i)),P_(r,o,{labels:n,labelCategoryInterval:i}))}function L_(t,e){return T_(t)[e]||(T_(t)[e]=[])}function k_(t,e){for(var n=0;n<t.length;n++)if(t[n].key===e)return t[n].value}function P_(t,e,n){return t.push({key:e,value:n}),n}function O_(t,e,n){var i=s_(t),r=t.scale,o=r.getExtent(),a=t.getLabelModel(),s=[],l=Math.max((e||0)+1,1),u=o[0],h=r.count();0!==u&&l>1&&h/l>2&&(u=Math.round(Math.ceil(u/l)*l));var c=c_(t),p=a.get("showMinLabel")||c,d=a.get("showMaxLabel")||c;p&&u!==o[0]&&g(o[0]);for(var f=u;f<=o[1];f+=l)g(f);function g(t){var e={value:t};s.push(n?t:{formattedLabel:i(e),rawLabel:r.getLabel(e),tickValue:t})}return d&&f-l!==o[1]&&g(o[1]),s}function R_(t,e,n){var i=t.scale,r=s_(t),o=[];return k(i.getTicks(),(function(t){var a=i.getLabel(t),s=t.value;e(t.value,a)&&o.push(n?s:{formattedLabel:r(t),rawLabel:a,tickValue:s})})),o}var N_=[0,1],E_=function(){function t(t,e,n){this.onBand=!1,this.inverse=!1,this.dim=t,this.scale=e,this._extent=n||[0,0]}return t.prototype.contain=function(t){var e=this._extent,n=Math.min(e[0],e[1]),i=Math.max(e[0],e[1]);return t>=n&&t<=i},t.prototype.containData=function(t){return this.scale.contain(t)},t.prototype.getExtent=function(){return this._extent.slice()},t.prototype.getPixelPrecision=function(t){return Yi(t||this.scale.getExtent(),this._extent)},t.prototype.setExtent=function(t,e){var n=this._extent;n[0]=t,n[1]=e},t.prototype.dataToCoord=function(t,e){var n=this._extent,i=this.scale;return t=i.normalize(t),this.onBand&&"ordinal"===i.type&&z_(n=n.slice(),i.count()),Bi(t,N_,n,e)},t.prototype.coordToData=function(t,e){var n=this._extent,i=this.scale;this.onBand&&"ordinal"===i.type&&z_(n=n.slice(),i.count());var r=Bi(t,n,N_,e);return this.scale.scale(r)},t.prototype.pointToData=function(t,e){},t.prototype.getTicksCoords=function(t){var e=(t=t||{}).tickModel||this.getTickModel(),n=P(A_(this,e).ticks,(function(t){return{coord:this.dataToCoord("ordinal"===this.scale.type?this.scale.getRawOrdinalNumber(t):t),tickValue:t}}),this);return function(t,e,n,i){var r=e.length;if(!t.onBand||n||!r)return;var o,a,s=t.getExtent();if(1===r)e[0].coord=s[0],o=e[1]={coord:s[0]};else{var l=e[r-1].tickValue-e[0].tickValue,u=(e[r-1].coord-e[0].coord)/l;k(e,(function(t){t.coord-=u/2})),a=1+t.scale.getExtent()[1]-e[r-1].tickValue,o={coord:e[r-1].coord+u*a},e.push(o)}var h=s[0]>s[1];c(e[0].coord,s[0])&&(i?e[0].coord=s[0]:e.shift());i&&c(s[0],e[0].coord)&&e.unshift({coord:s[0]});c(s[1],o.coord)&&(i?o.coord=s[1]:e.pop());i&&c(o.coord,s[1])&&e.push({coord:s[1]});function c(t,e){return t=Fi(t),e=Fi(e),h?t>e:t<e}}(this,n,e.get("alignWithLabel"),t.clamp),n},t.prototype.getMinorTicksCoords=function(){if("ordinal"===this.scale.type)return[];var t=this.model.getModel("minorTick").get("splitNumber");return t>0&&t<100||(t=5),P(this.scale.getMinorTicks(t),(function(t){return P(t,(function(t){return{coord:this.dataToCoord(t),tickValue:t}}),this)}),this)},t.prototype.getViewLabels=function(){return C_(this).labels},t.prototype.getLabelModel=function(){return this.model.getModel("axisLabel")},t.prototype.getTickModel=function(){return this.model.getModel("axisTick")},t.prototype.getBandWidth=function(){var t=this._extent,e=this.scale.getExtent(),n=e[1]-e[0]+(this.onBand?1:0);0===n&&(n=1);var i=Math.abs(t[1]-t[0]);return Math.abs(i)/n},t.prototype.calculateCategoryInterval=function(){return function(t){var e=function(t){var e=t.getLabelModel();return{axisRotate:t.getRotate?t.getRotate():t.isHorizontal&&!t.isHorizontal()?90:0,labelRotate:e.get("rotate")||0,font:e.getFont()}}(t),n=s_(t),i=(e.axisRotate-e.labelRotate)/180*Math.PI,r=t.scale,o=r.getExtent(),a=r.count();if(o[1]-o[0]<1)return 0;var s=1;a>40&&(s=Math.max(1,Math.floor(a/40)));for(var l=o[0],u=t.dataToCoord(l+1)-t.dataToCoord(l),h=Math.abs(u*Math.cos(i)),c=Math.abs(u*Math.sin(i)),p=0,d=0;l<=o[1];l+=s){var f,g,y=En(n({value:l}),e.font,"center","top");f=1.3*y.width,g=1.3*y.height,p=Math.max(p,f,7),d=Math.max(d,g,7)}var v=p/h,m=d/c;isNaN(v)&&(v=1/0),isNaN(m)&&(m=1/0);var _=Math.max(0,Math.floor(Math.min(v,m))),x=T_(t.model),b=t.getExtent(),w=x.lastAutoInterval,S=x.lastTickCount;return null!=w&&null!=S&&Math.abs(w-_)<=1&&Math.abs(S-a)<=1&&w>_&&x.axisExtent0===b[0]&&x.axisExtent1===b[1]?_=w:(x.lastTickCount=a,x.lastAutoInterval=_,x.axisExtent0=b[0],x.axisExtent1=b[1]),_}(this)},t}();function z_(t,e){var n=(t[1]-t[0])/e/2;t[0]+=n,t[1]-=n}function B_(t){var e=sc.extend(t);return sc.registerClass(e),e}function V_(t){var e=Dd.extend(t);return Dd.registerClass(e),e}function F_(t){var e=bd.extend(t);return bd.registerClass(e),e}function G_(t){var e=Od.extend(t);return Od.registerClass(e),e}function H_(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}function W_(t,e,n,i,r){for(var o=e.length,a=n.length,s=t.newPos,l=s-i,u=0;s+1<o&&l+1<a&&r(e[s+1],n[l+1]);)s++,l++,u++;return u&&t.components.push({count:u,added:!1,removed:!1,indices:[]}),t.newPos=s,l}function Y_(t,e,n){var i=t[t.length-1];i&&i.added===e&&i.removed===n?t[t.length-1]={count:i.count+1,added:e,removed:n,indices:[]}:t.push({count:1,added:e,removed:n,indices:[]})}function X_(t){for(var e=0,n=t.length,i=0,r=0;e<n;e++){var o=t[e];if(o.removed){for(s=r;s<r+o.count;s++)o.indices.push(s);r+=o.count}else{for(var a=[],s=i;s<i+o.count;s++)a.push(s);o.indices=a,i+=o.count,o.added||(r+=o.count)}}return t}function U_(t,e,n){return function(t,e,n){n||(n=function(t,e){return t===e}),t=t.slice();var i=(e=e.slice()).length,r=t.length,o=1,a=i+r,s=[{newPos:-1,components:[]}],l=W_(s[0],e,t,0,n);if(s[0].newPos+1>=i&&l+1>=r){for(var u=[],h=0;h<e.length;h++)u.push(h);return[{indices:u,count:e.length,added:!1,removed:!1}]}function c(){for(var a=-1*o;a<=o;a+=2){var l,u=s[a-1],h=s[a+1],c=(h?h.newPos:0)-a;u&&(s[a-1]=void 0);var p=u&&u.newPos+1<i,d=h&&0<=c&&c<r;if(p||d){if(!p||d&&u.newPos<h.newPos?Y_((l={newPos:(f=h).newPos,components:f.components.slice(0)}).components,!1,!0):((l=u).newPos++,Y_(l.components,!0,!1)),c=W_(l,e,t,a,n),l.newPos+1>=i&&c+1>=r)return X_(l.components);s[a]=l}else s[a]=void 0}var f;o++}for(;o<=a;){var p=c();if(p)return p}}(t,e,n)}var Z_=Math.round,j_=Math.sin,q_=Math.cos,K_=Math.PI,$_=2*Math.PI,J_=180/K_;function Q_(t){return Z_(1e3*t)/1e3}function tx(t){return Z_(1e4*t)/1e4}function ex(t){return t<1e-4&&t>-1e-4}function nx(t,e){e&&ix(t,"transform","matrix("+Q_(e[0])+","+Q_(e[1])+","+Q_(e[2])+","+Q_(e[3])+","+tx(e[4])+","+tx(e[5])+")")}function ix(t,e,n){(!n||"linear"!==n.type&&"radial"!==n.type)&&t.setAttribute(e,n)}function rx(t,e,n){var i=null==e.opacity?1:e.opacity;if(n instanceof Ba)t.style.opacity=i+"";else{if(function(t){var e=t.fill;return null!=e&&"none"!==e}(e)){var r=e.fill;ix(t,"fill",r="transparent"===r?"none":r),ix(t,"fill-opacity",(null!=e.fillOpacity?e.fillOpacity*i:i)+"")}else ix(t,"fill","none");if(function(t){var e=t.stroke;return null!=e&&"none"!==e}(e)){var o=e.stroke;ix(t,"stroke",o="transparent"===o?"none":o);var a=e.lineWidth,s=e.strokeNoScale?n.getLineScale():1;ix(t,"stroke-width",(s?a/s:0)+""),ix(t,"paint-order",e.strokeFirst?"stroke":"fill"),ix(t,"stroke-opacity",(null!=e.strokeOpacity?e.strokeOpacity*i:i)+"");var l=e.lineDash&&a>0&&Tg(e.lineDash,a);if(l){var u=e.lineDashOffset;s&&1!==s&&(l=P(l,(function(t){return t/s})),u&&(u=Z_(u/=s))),ix(t,"stroke-dasharray",l.join(",")),ix(t,"stroke-dashoffset",(u||0)+"")}else ix(t,"stroke-dasharray","");e.lineCap&&ix(t,"stroke-linecap",e.lineCap),e.lineJoin&&ix(t,"stroke-linejoin",e.lineJoin),e.miterLimit&&ix(t,"stroke-miterlimit",e.miterLimit+"")}else ix(t,"stroke","none")}}var ox=function(){function t(){}return t.prototype.reset=function(){this._d=[],this._str=""},t.prototype.moveTo=function(t,e){this._add("M",t,e)},t.prototype.lineTo=function(t,e){this._add("L",t,e)},t.prototype.bezierCurveTo=function(t,e,n,i,r,o){this._add("C",t,e,n,i,r,o)},t.prototype.quadraticCurveTo=function(t,e,n,i){this._add("Q",t,e,n,i)},t.prototype.arc=function(t,e,n,i,r,o){this.ellipse(t,e,n,n,0,i,r,o)},t.prototype.ellipse=function(t,e,n,i,r,o,a,s){var l=0===this._d.length,u=a-o,h=!s,c=Math.abs(u),p=ex(c-$_)||(h?u>=$_:-u>=$_),d=u>0?u%$_:u%$_+$_,f=!1;f=!!p||!ex(c)&&d>=K_==!!h;var g=tx(t+n*q_(o)),y=tx(e+i*j_(o));p&&(u=h?$_-1e-4:1e-4-$_,f=!0,l&&this._d.push("M",g,y));var v=tx(t+n*q_(o+u)),m=tx(e+i*j_(o+u));if(isNaN(g)||isNaN(y)||isNaN(n)||isNaN(i)||isNaN(r)||isNaN(J_)||isNaN(v)||isNaN(m))return"";this._d.push("A",tx(n),tx(i),Z_(r*J_),+f,+h,v,m)},t.prototype.rect=function(t,e,n,i){this._add("M",t,e),this._add("L",t+n,e),this._add("L",t+n,e+i),this._add("L",t,e+i),this._add("L",t,e)},t.prototype.closePath=function(){this._d.length>0&&this._add("Z")},t.prototype._add=function(t,e,n,i,r,o,a,s,l){this._d.push(t);for(var u=1;u<arguments.length;u++){var h=arguments[u];if(isNaN(h))return void(this._invalid=!0);this._d.push(tx(h))}},t.prototype.generateStr=function(){this._str=this._invalid?"":this._d.join(" "),this._d=[]},t.prototype.getStr=function(){return this._str},t}(),ax={brush:function(t){var e=t.style,n=t.__svgEl;n||(n=H_("path"),t.__svgEl=n),t.path||t.createPathProxy();var i=t.path;t.shapeChanged()&&(i.beginPath(),t.buildPath(i,t.shape),t.pathUpdated());var r=i.getVersion(),o=t,a=o.__svgPathBuilder;(o.__svgPathVersion!==r||!a||t.style.strokePercent<1)&&(a||(a=o.__svgPathBuilder=new ox),a.reset(),i.rebuildPath(a,t.style.strokePercent),a.generateStr(),o.__svgPathVersion=r),ix(n,"d",a.getStr()),rx(n,e,t),nx(n,t.transform)}},sx={brush:function(t){var e=t.style,n=e.image;if(n instanceof HTMLImageElement?n=n.src:n instanceof HTMLCanvasElement&&(n=n.toDataURL()),n){var i=e.x||0,r=e.y||0,o=e.width,a=e.height,s=t.__svgEl;s||(s=H_("image"),t.__svgEl=s),n!==t.__imageSrc&&(!function(t,e,n){t.setAttributeNS("http://www.w3.org/1999/xlink",e,n)}(s,"href",n),t.__imageSrc=n),ix(s,"width",o+""),ix(s,"height",a+""),ix(s,"x",i+""),ix(s,"y",r+""),rx(s,e,t),nx(s,t.transform)}}},lx={left:"start",right:"end",center:"middle",middle:"middle"};var ux={brush:function(t){var e=t.style,n=e.text;if(null!=n&&(n+=""),n&&!isNaN(e.x)&&!isNaN(e.y)){var i=t.__svgEl;i||(function(t,e,n){t.setAttributeNS("http://www.w3.org/XML/1998/namespace",e,n)}(i=H_("text"),"xml:space","preserve"),t.__svgEl=i);var r=e.font||Pn;i.style.font=r,i.textContent=n,rx(i,e,t),nx(i,t.transform);var o=e.x||0,a=function(t,e,n){return"top"===n?t+=e/2:"bottom"===n&&(t-=e/2),t}(e.y||0,Vn(r),e.textBaseline),s=lx[e.textAlign]||e.textAlign;ix(i,"dominant-baseline","central"),ix(i,"text-anchor",s),ix(i,"x",o+""),ix(i,"y",a+"")}}},hx=function(){function t(t,e,n,i,r){this.nextId=0,this._domName="_dom",this.createElement=H_,this._zrId=t,this._svgRoot=e,this._tagNames="string"==typeof n?[n]:n,this._markLabel=i,r&&(this._domName=r)}return t.prototype.getDefs=function(t){var e=this._svgRoot,n=this._svgRoot.getElementsByTagName("defs");if(0===n.length){if(t){var i=e.insertBefore(this.createElement("defs"),e.firstChild);return i.contains||(i.contains=function(t){var e=i.children;if(!e)return!1;for(var n=e.length-1;n>=0;--n)if(e[n]===t)return!0;return!1}),i}return null}return n[0]},t.prototype.doUpdate=function(t,e){if(t){var n=this.getDefs(!1);if(t[this._domName]&&n.contains(t[this._domName]))"function"==typeof e&&e(t);else{var i=this.add(t);i&&(t[this._domName]=i)}}},t.prototype.add=function(t){return null},t.prototype.addDom=function(t){var e=this.getDefs(!0);t.parentNode!==e&&e.appendChild(t)},t.prototype.removeDom=function(t){var e=this.getDefs(!1);e&&t[this._domName]&&(e.removeChild(t[this._domName]),t[this._domName]=null)},t.prototype.getDoms=function(){var t=this.getDefs(!1);if(!t)return[];var e=[];return k(this._tagNames,(function(n){for(var i=t.getElementsByTagName(n),r=0;r<i.length;r++)e.push(i[r])})),e},t.prototype.markAllUnused=function(){var t=this.getDoms(),e=this;k(t,(function(t){t[e._markLabel]="0"}))},t.prototype.markDomUsed=function(t){t&&(t[this._markLabel]="1")},t.prototype.markDomUnused=function(t){t&&(t[this._markLabel]="0")},t.prototype.isDomUnused=function(t){return t&&"1"!==t[this._markLabel]},t.prototype.removeUnused=function(){var t=this,e=this.getDefs(!1);e&&k(this.getDoms(),(function(n){t.isDomUnused(n)&&e.removeChild(n)}))},t.prototype.getSvgProxy=function(t){return t instanceof Oa?ax:t instanceof Ba?sx:t instanceof Na?ux:ax},t.prototype.getSvgElement=function(t){return t.__svgEl},t}();function cx(t){return"linear"===t.type}function px(t){return"radial"===t.type}function dx(t){return t&&("linear"===t.type||"radial"===t.type)}var fx=function(t){function n(e,n){return t.call(this,e,n,["linearGradient","radialGradient"],"__gradient_in_use__")||this}return e(n,t),n.prototype.addWithoutUpdate=function(t,e){if(e&&e.style){var n=this;k(["fill","stroke"],(function(i){var r=e.style[i];if(dx(r)){var o=r,a=n.getDefs(!0),s=void 0;o.__dom?(s=o.__dom,a.contains(o.__dom)||n.addDom(s)):s=n.add(o),n.markUsed(e);var l=s.getAttribute("id");t.setAttribute(i,"url(#"+l+")")}}))}},n.prototype.add=function(t){var e;if(cx(t))e=this.createElement("linearGradient");else{if(!px(t))return x("Illegal gradient type."),null;e=this.createElement("radialGradient")}return t.id=t.id||this.nextId++,e.setAttribute("id","zr"+this._zrId+"-gradient-"+t.id),this.updateDom(t,e),this.addDom(e),e},n.prototype.update=function(t){if(dx(t)){var e=this;this.doUpdate(t,(function(){var n=t.__dom;if(n){var i=n.tagName,r=t.type;"linear"===r&&"linearGradient"===i||"radial"===r&&"radialGradient"===i?e.updateDom(t,t.__dom):(e.removeDom(t),e.add(t))}}))}},n.prototype.updateDom=function(t,e){if(cx(t))e.setAttribute("x1",t.x+""),e.setAttribute("y1",t.y+""),e.setAttribute("x2",t.x2+""),e.setAttribute("y2",t.y2+"");else{if(!px(t))return void x("Illegal gradient type.");e.setAttribute("cx",t.x+""),e.setAttribute("cy",t.y+""),e.setAttribute("r",t.r+"")}t.global?e.setAttribute("gradientUnits","userSpaceOnUse"):e.setAttribute("gradientUnits","objectBoundingBox"),e.innerHTML="";for(var n=t.colorStops,i=0,r=n.length;i<r;++i){var o=this.createElement("stop");o.setAttribute("offset",100*n[i].offset+"%");var a=n[i].color;if(a.indexOf("rgba")>-1){var s=Xe(a)[3],l=je(a);o.setAttribute("stop-color","#"+l),o.setAttribute("stop-opacity",s+"")}else o.setAttribute("stop-color",n[i].color);e.appendChild(o)}t.__dom=e},n.prototype.markUsed=function(e){if(e.style){var n=e.style.fill;n&&n.__dom&&t.prototype.markDomUsed.call(this,n.__dom),(n=e.style.stroke)&&n.__dom&&t.prototype.markDomUsed.call(this,n.__dom)}},n}(hx);function gx(t){return t&&(!!t.image||!!t.svgElement)}var yx=new fg,vx=function(t){function n(e,n){return t.call(this,e,n,["pattern"],"__pattern_in_use__")||this}return e(n,t),n.prototype.addWithoutUpdate=function(t,e){if(e&&e.style){var n=this;k(["fill","stroke"],(function(i){var r=e.style[i];if(gx(r)){var o=n.getDefs(!0),a=yx.get(r);a?o.contains(a)||n.addDom(a):a=n.add(r),n.markUsed(e);var s=a.getAttribute("id");t.setAttribute(i,"url(#"+s+")")}}))}},n.prototype.add=function(t){if(gx(t)){var e=this.createElement("pattern");return t.id=null==t.id?this.nextId++:t.id,e.setAttribute("id","zr"+this._zrId+"-pattern-"+t.id),e.setAttribute("x","0"),e.setAttribute("y","0"),e.setAttribute("patternUnits","userSpaceOnUse"),this.updateDom(t,e),this.addDom(e),e}},n.prototype.update=function(t){if(gx(t)){var e=this;this.doUpdate(t,(function(){var n=yx.get(t);e.updateDom(t,n)}))}},n.prototype.updateDom=function(t,e){var n=t.svgElement;if(n instanceof SVGElement)n.parentNode!==e&&(e.innerHTML="",e.appendChild(n),e.setAttribute("width",t.svgWidth+""),e.setAttribute("height",t.svgHeight+""));else{var i=void 0,r=e.getElementsByTagName("image");if(r.length){if(!t.image)return void e.removeChild(r[0]);i=r[0]}else t.image&&(i=this.createElement("image"));if(i){var o=void 0;if("string"==typeof t.image?o=t.image:t.image instanceof HTMLImageElement?o=t.image.src:t.image instanceof HTMLCanvasElement&&(o=t.image.toDataURL()),o){i.setAttribute("href",o),i.setAttribute("x","0"),i.setAttribute("y","0");var a=Hr(o,i,{dirty:function(){}},(function(t){e.setAttribute("width",t.width+""),e.setAttribute("height",t.height+"")}));a&&a.width&&a.height&&(e.setAttribute("width",a.width+""),e.setAttribute("height",a.height+"")),e.appendChild(i)}}}var s="translate("+(t.x||0)+", "+(t.y||0)+") rotate("+(t.rotation||0)/Math.PI*180+") scale("+(t.scaleX||1)+", "+(t.scaleY||1)+")";e.setAttribute("patternTransform",s),yx.set(t,e)},n.prototype.markUsed=function(e){e.style&&(gx(e.style.fill)&&t.prototype.markDomUsed.call(this,yx.get(e.style.fill)),gx(e.style.stroke)&&t.prototype.markDomUsed.call(this,yx.get(e.style.stroke)))},n}(hx);function mx(t){var e=t.__clipPaths;return e&&e.length>0}var _x=function(t){function n(e,n){var i=t.call(this,e,n,"clipPath","__clippath_in_use__")||this;return i._refGroups={},i._keyDuplicateCount={},i}return e(n,t),n.prototype.markAllUnused=function(){for(var e in t.prototype.markAllUnused.call(this),this._refGroups)this.markDomUnused(this._refGroups[e]);this._keyDuplicateCount={}},n.prototype._getClipPathGroup=function(t,e){if(mx(t)){var n=t.__clipPaths,i=this._keyDuplicateCount,r=function(t){var e=[];if(t)for(var n=0;n<t.length;n++){var i=t[n];e.push(i.id)}return e.join(",")}(n);return Ig(n,e&&e.__clipPaths)&&(i[r]=i[r]||0,i[r]&&(r+="-"+i[r]),i[r]++),this._refGroups[r]||(this._refGroups[r]=this.createElement("g"))}},n.prototype.update=function(t,e){var n=this._getClipPathGroup(t,e);return n&&(this.markDomUsed(n),this.updateDom(n,t.__clipPaths)),n},n.prototype.updateDom=function(t,e){if(e&&e.length>0){var n=this.getDefs(!0),i=e[0],r=void 0,o=void 0;i._dom?(o=i._dom.getAttribute("id"),r=i._dom,n.contains(r)||n.appendChild(r)):(o="zr"+this._zrId+"-clip-"+this.nextId,++this.nextId,(r=this.createElement("clipPath")).setAttribute("id",o),n.appendChild(r),i._dom=r),this.getSvgProxy(i).brush(i);var a=this.getSvgElement(i);r.innerHTML="",r.appendChild(a),t.setAttribute("clip-path","url(#"+o+")"),e.length>1&&this.updateDom(r,e.slice(1))}else t&&t.setAttribute("clip-path","none")},n.prototype.markUsed=function(e){var n=this;e.__clipPaths&&k(e.__clipPaths,(function(e){e._dom&&t.prototype.markDomUsed.call(n,e._dom)}))},n.prototype.removeUnused=function(){t.prototype.removeUnused.call(this);var e={};for(var n in this._refGroups){var i=this._refGroups[n];this.isDomUnused(i)?i.parentNode&&i.parentNode.removeChild(i):e[n]=i}this._refGroups=e},n}(hx),xx=function(t){function n(e,n){var i=t.call(this,e,n,["filter"],"__filter_in_use__","_shadowDom")||this;return i._shadowDomMap={},i._shadowDomPool=[],i}return e(n,t),n.prototype._getFromPool=function(){var t=this._shadowDomPool.pop();if(!t){(t=this.createElement("filter")).setAttribute("id","zr"+this._zrId+"-shadow-"+this.nextId++);var e=this.createElement("feDropShadow");t.appendChild(e),this.addDom(t)}return t},n.prototype.update=function(t,e){if(function(t){return t&&(t.shadowBlur||t.shadowOffsetX||t.shadowOffsetY)}(e.style)){var n=function(t){var e=t.style,n=t.getGlobalScale();return[e.shadowColor,(e.shadowBlur||0).toFixed(2),(e.shadowOffsetX||0).toFixed(2),(e.shadowOffsetY||0).toFixed(2),n[0],n[1]].join(",")}(e),i=e._shadowDom=this._shadowDomMap[n];i||(i=this._getFromPool(),this._shadowDomMap[n]=i),this.updateDom(t,e,i)}else this.remove(t,e)},n.prototype.remove=function(t,e){null!=e._shadowDom&&(e._shadowDom=null,t.style.filter="")},n.prototype.updateDom=function(t,e,n){var i=n.children[0],r=e.style,o=e.getGlobalScale(),a=o[0],s=o[1];if(a&&s){var l=r.shadowOffsetX||0,u=r.shadowOffsetY||0,h=r.shadowBlur,c=r.shadowColor;i.setAttribute("dx",l/a+""),i.setAttribute("dy",u/s+""),i.setAttribute("flood-color",c);var p=h/2/a+" "+h/2/s;i.setAttribute("stdDeviation",p),n.setAttribute("x","-100%"),n.setAttribute("y","-100%"),n.setAttribute("width","300%"),n.setAttribute("height","300%"),e._shadowDom=n;var d=n.getAttribute("id");t.style.filter="url(#"+d+")"}},n.prototype.removeUnused=function(){if(this.getDefs(!1)){var t=this._shadowDomPool;for(var e in this._shadowDomMap){var n=this._shadowDomMap[e];t.push(n)}this._shadowDomMap={}}},n}(hx);function bx(t){return parseInt(t,10)}function Sx(t){return t instanceof Oa?ax:t instanceof Ba?sx:t instanceof Na?ux:ax}function Mx(t,e){return e&&t&&e.parentNode!==t}function Ix(t,e,n){if(Mx(t,e)&&n){var i=n.nextSibling;i?t.insertBefore(e,i):t.appendChild(e)}}function Tx(t,e){if(Mx(t,e)){var n=t.firstChild;n?t.insertBefore(e,n):t.appendChild(e)}}function Cx(t,e){e&&t&&e.parentNode===t&&t.removeChild(e)}function Ax(t){return t.__svgEl}var Dx=function(){function t(t,e,n,i){this.type="svg",this.refreshHover=Lx("refreshHover"),this.pathToImage=Lx("pathToImage"),this.configLayer=Lx("configLayer"),this.root=t,this.storage=e,this._opts=n=M({},n||{});var r=H_("svg");r.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns","http://www.w3.org/2000/svg"),r.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink","http://www.w3.org/1999/xlink"),r.setAttribute("version","1.1"),r.setAttribute("baseProfile","full"),r.style.cssText="user-select:none;position:absolute;left:0;top:0;";var o=H_("g");r.appendChild(o);var a=H_("g");r.appendChild(a),this._gradientManager=new fx(i,a),this._patternManager=new vx(i,a),this._clipPathManager=new _x(i,a),this._shadowManager=new xx(i,a);var s=document.createElement("div");s.style.cssText="overflow:hidden;position:relative",this._svgDom=r,this._svgRoot=a,this._backgroundRoot=o,this._viewport=s,t.appendChild(s),s.appendChild(r),this.resize(n.width,n.height),this._visibleList=[]}return t.prototype.getType=function(){return"svg"},t.prototype.getViewportRoot=function(){return this._viewport},t.prototype.getSvgDom=function(){return this._svgDom},t.prototype.getSvgRoot=function(){return this._svgRoot},t.prototype.getViewportRootOffset=function(){var t=this.getViewportRoot();if(t)return{offsetLeft:t.offsetLeft||0,offsetTop:t.offsetTop||0}},t.prototype.refresh=function(){var t=this.storage.getDisplayList(!0);this._paintList(t)},t.prototype.setBackgroundColor=function(t){this._backgroundRoot&&this._backgroundNode&&this._backgroundRoot.removeChild(this._backgroundNode);var e=H_("rect");e.setAttribute("width",this.getWidth()),e.setAttribute("height",this.getHeight()),e.setAttribute("x",0),e.setAttribute("y",0),e.setAttribute("id",0),e.style.fill=t,this._backgroundRoot.appendChild(e),this._backgroundNode=e},t.prototype.createSVGElement=function(t){return H_(t)},t.prototype.paintOne=function(t){var e=Sx(t);return e&&e.brush(t),Ax(t)},t.prototype._paintList=function(t){var e=this._gradientManager,n=this._patternManager,i=this._clipPathManager,r=this._shadowManager;e.markAllUnused(),n.markAllUnused(),i.markAllUnused(),r.markAllUnused();for(var o=this._svgRoot,a=this._visibleList,s=t.length,l=[],u=0;u<s;u++){var h=Sx(x=t[u]),c=Ax(x);x.invisible||(!x.__dirty&&c||(h&&h.brush(x),(c=Ax(x))&&x.style&&(e.update(x.style.fill),e.update(x.style.stroke),n.update(x.style.fill),n.update(x.style.stroke),r.update(c,x)),x.__dirty=0),c&&l.push(x))}var p,d,f,g,y,v=U_(a,l);for(u=0;u<v.length;u++){if((_=v[u]).removed)for(var m=0;m<_.count;m++){c=Ax(x=a[_.indices[m]]);mx(x)?(f=c)&&f.parentNode&&f.parentNode.removeChild(f):Cx(o,c)}}for(u=0;u<v.length;u++){var _;(_=v[u]).added;if(!_.removed)for(m=0;m<_.count;m++){var x=l[_.indices[m]],b=i.update(x,g);b!==y&&(p=d,b&&(p?Ix(o,b,p):Tx(o,b),d=b,p=null),y=b);c=Ax(x);p?Ix(y||o,c,p):Tx(y||o,c),p=c||p,y||(d=p),e.markUsed(x),e.addWithoutUpdate(c,x),n.markUsed(x),n.addWithoutUpdate(c,x),i.markUsed(x),g=x}}e.removeUnused(),n.removeUnused(),i.removeUnused(),r.removeUnused(),this._visibleList=l},t.prototype._getDefs=function(t){var e=this._svgDom,n=e.getElementsByTagName("defs");if(0===n.length){if(t){var i=e.insertBefore(H_("defs"),e.firstChild);return i.contains||(i.contains=function(t){var e=i.children;if(!e)return!1;for(var n=e.length-1;n>=0;--n)if(e[n]===t)return!0;return!1}),i}return null}return n[0]},t.prototype.resize=function(t,e){var n=this._viewport;n.style.display="none";var i=this._opts;if(null!=t&&(i.width=t),null!=e&&(i.height=e),t=this._getSize(0),e=this._getSize(1),n.style.display="",this._width!==t||this._height!==e){this._width=t,this._height=e;var r=n.style;r.width=t+"px",r.height=e+"px";var o=this._svgDom;o.setAttribute("width",t+""),o.setAttribute("height",e+"")}this._backgroundNode&&(this._backgroundNode.setAttribute("width",t),this._backgroundNode.setAttribute("height",e))},t.prototype.getWidth=function(){return this._width},t.prototype.getHeight=function(){return this._height},t.prototype._getSize=function(t){var e=this._opts,n=["width","height"][t],i=["clientWidth","clientHeight"][t],r=["paddingLeft","paddingTop"][t],o=["paddingRight","paddingBottom"][t];if(null!=e[n]&&"auto"!==e[n])return parseFloat(e[n]);var a=this.root,s=document.defaultView.getComputedStyle(a);return(a[i]||bx(s[n])||bx(a.style[n]))-(bx(s[r])||0)-(bx(s[o])||0)|0},t.prototype.dispose=function(){this.root.innerHTML="",this._svgRoot=this._backgroundRoot=this._svgDom=this._backgroundNode=this._viewport=this.storage=null},t.prototype.clear=function(){var t=this._viewport;t&&t.parentNode&&t.parentNode.removeChild(t)},t.prototype.toDataURL=function(){this.refresh();var t=this._svgDom,e=t.outerHTML||(t.parentNode&&t.parentNode).innerHTML;return"data:image/svg+xml;charset=UTF-8,"+encodeURIComponent(e.replace(/></g,">\n\r<"))},t}();function Lx(t){return function(){x('In SVG mode painter not support method "'+t+'"')}}function kx(){return!1}function Px(t,e,n){var i=T(),r=e.getWidth(),o=e.getHeight(),a=i.style;return a&&(a.position="absolute",a.left="0",a.top="0",a.width=r+"px",a.height=o+"px",i.setAttribute("data-zr-dom-id",t)),i.width=r*n,i.height=o*n,i}var Ox=function(t){function n(e,n,i){var r,o=t.call(this)||this;o.motionBlur=!1,o.lastFrameAlpha=.7,o.dpr=1,o.virtual=!1,o.config={},o.incremental=!1,o.zlevel=0,o.maxRepaintRectCount=5,o.__dirty=!0,o.__firstTimePaint=!0,o.__used=!1,o.__drawIndex=0,o.__startIndex=0,o.__endIndex=0,o.__prevStartIndex=null,o.__prevEndIndex=null,i=i||Wn,"string"==typeof e?r=Px(e,n,i):Y(e)&&(e=(r=e).id),o.id=e,o.dom=r;var a=r.style;return a&&(r.onselectstart=kx,a.webkitUserSelect="none",a.userSelect="none",a.webkitTapHighlightColor="rgba(0,0,0,0)",a["-webkit-touch-callout"]="none",a.padding="0",a.margin="0",a.borderWidth="0"),o.domBack=null,o.ctxBack=null,o.painter=n,o.config=null,o.dpr=i,o}return e(n,t),n.prototype.getElementCount=function(){return this.__endIndex-this.__startIndex},n.prototype.afterBrush=function(){this.__prevStartIndex=this.__startIndex,this.__prevEndIndex=this.__endIndex},n.prototype.initContext=function(){this.ctx=this.dom.getContext("2d"),this.ctx.dpr=this.dpr},n.prototype.setUnpainted=function(){this.__firstTimePaint=!0},n.prototype.createBackBuffer=function(){var t=this.dpr;this.domBack=Px("back-"+this.id,this.painter,t),this.ctxBack=this.domBack.getContext("2d"),1!==t&&this.ctxBack.scale(t,t)},n.prototype.createRepaintRects=function(t,e,n,i){if(this.__firstTimePaint)return this.__firstTimePaint=!1,null;var r,o=[],a=this.maxRepaintRectCount,s=!1,l=new Ln(0,0,0,0);function u(t){if(t.isFinite()&&!t.isZero())if(0===o.length){(e=new Ln(0,0,0,0)).copy(t),o.push(e)}else{for(var e,n=!1,i=1/0,r=0,u=0;u<o.length;++u){var h=o[u];if(h.intersect(t)){var c=new Ln(0,0,0,0);c.copy(h),c.union(t),o[u]=c,n=!0;break}if(s){l.copy(t),l.union(h);var p=t.width*t.height,d=h.width*h.height,f=l.width*l.height-p-d;f<i&&(i=f,r=u)}}if(s&&(o[r].union(t),n=!0),!n)(e=new Ln(0,0,0,0)).copy(t),o.push(e);s||(s=o.length>=a)}}for(var h=this.__startIndex;h<this.__endIndex;++h){if(d=t[h]){var c=d.shouldBePainted(n,i,!0,!0);(f=d.__isRendered&&(d.__dirty&jn.REDARAW_BIT||!c)?d.getPrevPaintRect():null)&&u(f);var p=c&&(d.__dirty&jn.REDARAW_BIT||!d.__isRendered)?d.getPaintRect():null;p&&u(p)}}for(h=this.__prevStartIndex;h<this.__prevEndIndex;++h){var d,f;c=(d=e[h]).shouldBePainted(n,i,!0,!0);if(d&&(!c||!d.__zr)&&d.__isRendered)(f=d.getPrevPaintRect())&&u(f)}do{r=!1;for(h=0;h<o.length;)if(o[h].isZero())o.splice(h,1);else{for(var g=h+1;g<o.length;)o[h].intersect(o[g])?(r=!0,o[h].union(o[g]),o.splice(g,1)):g++;h++}}while(r);return this._paintRects=o,o},n.prototype.debugGetPaintRects=function(){return(this._paintRects||[]).slice()},n.prototype.resize=function(t,e){var n=this.dpr,i=this.dom,r=i.style,o=this.domBack;r&&(r.width=t+"px",r.height=e+"px"),i.width=t*n,i.height=e*n,o&&(o.width=t*n,o.height=e*n,1!==n&&this.ctxBack.scale(n,n))},n.prototype.clear=function(t,e,n){var i=this.dom,r=this.ctx,o=i.width,a=i.height;e=e||this.clearColor;var s=this.motionBlur&&!t,l=this.lastFrameAlpha,u=this.dpr,h=this;s&&(this.domBack||this.createBackBuffer(),this.ctxBack.globalCompositeOperation="copy",this.ctxBack.drawImage(i,0,0,o/u,a/u));var c=this.domBack;function p(t,n,i,o){if(r.clearRect(t,n,i,o),e&&"transparent"!==e){var a=void 0;j(e)?(a=e.__canvasGradient||Mg(r,e,{x:0,y:0,width:i,height:o}),e.__canvasGradient=a):q(e)&&(a=Pg(r,e,{dirty:function(){h.setUnpainted(),h.__painter.refresh()}})),r.save(),r.fillStyle=a||e,r.fillRect(t,n,i,o),r.restore()}s&&(r.save(),r.globalAlpha=l,r.drawImage(c,t,n,i,o),r.restore())}!n||s?p(0,0,o,a):n.length&&k(n,(function(t){p(t.x*u,t.y*u,t.width*u,t.height*u)}))},n}(Bt);function Rx(t){return parseInt(t,10)}var Nx=function(){function t(t,e,n,i){this.type="canvas",this._zlevelList=[],this._prevDisplayList=[],this._layers={},this._layerConfig={},this._needsManuallyCompositing=!1,this.type="canvas";var r=!t.nodeName||"CANVAS"===t.nodeName.toUpperCase();this._opts=n=M({},n||{}),this.dpr=n.devicePixelRatio||Wn,this._singleCanvas=r,this.root=t;var o=t.style;o&&(o.webkitTapHighlightColor="transparent",o.webkitUserSelect="none",o.userSelect="none",o["-webkit-touch-callout"]="none",t.innerHTML=""),this.storage=e;var a=this._zlevelList;this._prevDisplayList=[];var s=this._layers;if(r){var l=t,u=l.width,h=l.height;null!=n.width&&(u=n.width),null!=n.height&&(h=n.height),this.dpr=n.devicePixelRatio||1,l.width=u*this.dpr,l.height=h*this.dpr,this._width=u,this._height=h;var c=new Ox(l,this,this.dpr);c.__builtin__=!0,c.initContext(),s[314159]=c,c.zlevel=314159,a.push(314159),this._domRoot=t}else{this._width=this._getSize(0),this._height=this._getSize(1);var p=this._domRoot=function(t,e){var n=document.createElement("div");return n.style.cssText=["position:relative","width:"+t+"px","height:"+e+"px","padding:0","margin:0","border-width:0"].join(";")+";",n}(this._width,this._height);t.appendChild(p)}}return t.prototype.getType=function(){return"canvas"},t.prototype.isSingleCanvas=function(){return this._singleCanvas},t.prototype.getViewportRoot=function(){return this._domRoot},t.prototype.getViewportRootOffset=function(){var t=this.getViewportRoot();if(t)return{offsetLeft:t.offsetLeft||0,offsetTop:t.offsetTop||0}},t.prototype.refresh=function(t){var e=this.storage.getDisplayList(!0),n=this._prevDisplayList,i=this._zlevelList;this._redrawId=Math.random(),this._paintList(e,n,t,this._redrawId);for(var r=0;r<i.length;r++){var o=i[r],a=this._layers[o];if(!a.__builtin__&&a.refresh){var s=0===r?this._backgroundColor:null;a.refresh(s)}}return this._opts.useDirtyRect&&(this._prevDisplayList=e.slice()),this},t.prototype.refreshHover=function(){this._paintHoverList(this.storage.getDisplayList(!1))},t.prototype._paintHoverList=function(t){var e=t.length,n=this._hoverlayer;if(n&&n.clear(),e){for(var i,r={inHover:!0,viewWidth:this._width,viewHeight:this._height},o=0;o<e;o++){var a=t[o];a.__inHover&&(n||(n=this._hoverlayer=this.getLayer(1e5)),i||(i=n.ctx).save(),Gg(i,a,r,o===e-1))}i&&i.restore()}},t.prototype.getHoverLayer=function(){return this.getLayer(1e5)},t.prototype.paintOne=function(t,e){Fg(t,e)},t.prototype._paintList=function(t,e,n,i){if(this._redrawId===i){n=n||!1,this._updateLayerStatus(t);var r=this._doPaintList(t,e,n),o=r.finished,a=r.needsRefreshHover;if(this._needsManuallyCompositing&&this._compositeManually(),a&&this._paintHoverList(t),o)this.eachLayer((function(t){t.afterBrush&&t.afterBrush()}));else{var s=this;ci((function(){s._paintList(t,e,n,i)}))}}},t.prototype._compositeManually=function(){var t=this.getLayer(314159).ctx,e=this._domRoot.width,n=this._domRoot.height;t.clearRect(0,0,e,n),this.eachBuiltinLayer((function(i){i.virtual&&t.drawImage(i.dom,0,0,e,n)}))},t.prototype._doPaintList=function(t,e,n){for(var i=this,r=[],a=this._opts.useDirtyRect,s=0;s<this._zlevelList.length;s++){var l=this._zlevelList[s],u=this._layers[l];u.__builtin__&&u!==this._hoverlayer&&(u.__dirty||n)&&r.push(u)}for(var h=!0,c=!1,p=function(o){var s=r[o],l=s.ctx,u=a&&s.createRepaintRects(t,e,d._width,d._height);l.save();var p,f=n?s.__startIndex:s.__drawIndex,g=!n&&s.incremental&&Date.now,y=g&&Date.now(),v=s.zlevel===d._zlevelList[0]?d._backgroundColor:null;if(s.__startIndex===s.__endIndex)s.clear(!1,v,u);else if(f===s.__startIndex){var m=t[f];m.incremental&&m.notClear&&!n||s.clear(!1,v,u)}-1===f&&(console.error("For some unknown reason. drawIndex is -1"),f=s.__startIndex);var _=function(e){var n={inHover:!1,allClipped:!1,prevEl:null,viewWidth:i._width,viewHeight:i._height};for(p=f;p<s.__endIndex;p++){var r=t[p];if(r.__inHover&&(c=!0),i._doPaintEl(r,s,a,e,n,p===s.__endIndex-1),g)if(Date.now()-y>15)break}n.prevElClipPaths&&l.restore()};if(u)if(0===u.length)p=s.__endIndex;else for(var x=d.dpr,b=0;b<u.length;++b){var w=u[b];l.save(),l.beginPath(),l.rect(w.x*x,w.y*x,w.width*x,w.height*x),l.clip(),_(w),l.restore()}else l.save(),_(),l.restore();s.__drawIndex=p,s.__drawIndex<s.__endIndex&&(h=!1)},d=this,f=0;f<r.length;f++)p(f);return o.wxa&&k(this._layers,(function(t){t&&t.ctx&&t.ctx.draw&&t.ctx.draw()})),{finished:h,needsRefreshHover:c}},t.prototype._doPaintEl=function(t,e,n,i,r,o){var a=e.ctx;if(n){var s=t.getPaintRect();(!i||s&&s.intersect(i))&&(Gg(a,t,r,o),t.setPrevPaintRect(s))}else Gg(a,t,r,o)},t.prototype.getLayer=function(t,e){this._singleCanvas&&!this._needsManuallyCompositing&&(t=314159);var n=this._layers[t];return n||((n=new Ox("zr_"+t,this,this.dpr)).zlevel=t,n.__builtin__=!0,this._layerConfig[t]?w(n,this._layerConfig[t],!0):this._layerConfig[t-.01]&&w(n,this._layerConfig[t-.01],!0),e&&(n.virtual=e),this.insertLayer(t,n),n.initContext()),n},t.prototype.insertLayer=function(t,e){var n=this._layers,i=this._zlevelList,r=i.length,o=this._domRoot,a=null,s=-1;if(n[t])x("ZLevel "+t+" has been used already");else if(function(t){return!!t&&(!!t.__builtin__||"function"==typeof t.resize&&"function"==typeof t.refresh)}(e)){if(r>0&&t>i[0]){for(s=0;s<r-1&&!(i[s]<t&&i[s+1]>t);s++);a=n[i[s]]}if(i.splice(s+1,0,t),n[t]=e,!e.virtual)if(a){var l=a.dom;l.nextSibling?o.insertBefore(e.dom,l.nextSibling):o.appendChild(e.dom)}else o.firstChild?o.insertBefore(e.dom,o.firstChild):o.appendChild(e.dom);e.__painter=this}else x("Layer of zlevel "+t+" is not valid")},t.prototype.eachLayer=function(t,e){for(var n=this._zlevelList,i=0;i<n.length;i++){var r=n[i];t.call(e,this._layers[r],r)}},t.prototype.eachBuiltinLayer=function(t,e){for(var n=this._zlevelList,i=0;i<n.length;i++){var r=n[i],o=this._layers[r];o.__builtin__&&t.call(e,o,r)}},t.prototype.eachOtherLayer=function(t,e){for(var n=this._zlevelList,i=0;i<n.length;i++){var r=n[i],o=this._layers[r];o.__builtin__||t.call(e,o,r)}},t.prototype.getLayers=function(){return this._layers},t.prototype._updateLayerStatus=function(t){function e(t){o&&(o.__endIndex!==t&&(o.__dirty=!0),o.__endIndex=t)}if(this.eachBuiltinLayer((function(t,e){t.__dirty=t.__used=!1})),this._singleCanvas)for(var n=1;n<t.length;n++){if((s=t[n]).zlevel!==t[n-1].zlevel||s.incremental){this._needsManuallyCompositing=!0;break}}var i,r,o=null,a=0;for(r=0;r<t.length;r++){var s,l=(s=t[r]).zlevel,u=void 0;i!==l&&(i=l,a=0),s.incremental?((u=this.getLayer(l+.001,this._needsManuallyCompositing)).incremental=!0,a=1):u=this.getLayer(l+(a>0?.01:0),this._needsManuallyCompositing),u.__builtin__||x("ZLevel "+l+" has been used by unkown layer "+u.id),u!==o&&(u.__used=!0,u.__startIndex!==r&&(u.__dirty=!0),u.__startIndex=r,u.incremental?u.__drawIndex=-1:u.__drawIndex=r,e(r),o=u),s.__dirty&jn.REDARAW_BIT&&!s.__inHover&&(u.__dirty=!0,u.incremental&&u.__drawIndex<0&&(u.__drawIndex=r))}e(r),this.eachBuiltinLayer((function(t,e){!t.__used&&t.getElementCount()>0&&(t.__dirty=!0,t.__startIndex=t.__endIndex=t.__drawIndex=0),t.__dirty&&t.__drawIndex<0&&(t.__drawIndex=t.__startIndex)}))},t.prototype.clear=function(){return this.eachBuiltinLayer(this._clearLayer),this},t.prototype._clearLayer=function(t){t.clear()},t.prototype.setBackgroundColor=function(t){this._backgroundColor=t,k(this._layers,(function(t){t.setUnpainted()}))},t.prototype.configLayer=function(t,e){if(e){var n=this._layerConfig;n[t]?w(n[t],e,!0):n[t]=e;for(var i=0;i<this._zlevelList.length;i++){var r=this._zlevelList[i];if(r===t||r===t+.01)w(this._layers[r],n[t],!0)}}},t.prototype.delLayer=function(t){var e=this._layers,n=this._zlevelList,i=e[t];i&&(i.dom.parentNode.removeChild(i.dom),delete e[t],n.splice(C(n,t),1))},t.prototype.resize=function(t,e){if(this._domRoot.style){var n=this._domRoot;n.style.display="none";var i=this._opts;if(null!=t&&(i.width=t),null!=e&&(i.height=e),t=this._getSize(0),e=this._getSize(1),n.style.display="",this._width!==t||e!==this._height){for(var r in n.style.width=t+"px",n.style.height=e+"px",this._layers)this._layers.hasOwnProperty(r)&&this._layers[r].resize(t,e);this.refresh(!0)}this._width=t,this._height=e}else{if(null==t||null==e)return;this._width=t,this._height=e,this.getLayer(314159).resize(t,e)}return this},t.prototype.clearLayer=function(t){var e=this._layers[t];e&&e.clear()},t.prototype.dispose=function(){this.root.innerHTML="",this.root=this.storage=this._domRoot=this._layers=null},t.prototype.getRenderedCanvas=function(t){if(t=t||{},this._singleCanvas&&!this._compositeManually)return this._layers[314159].dom;var e=new Ox("image",this,t.pixelRatio||this.dpr),n=e.ctx;if(e.initContext(),e.clear(!1,t.backgroundColor||this._backgroundColor),t.pixelRatio<=this.dpr){this.refresh();var i=e.dom.width,r=e.dom.height,o=e.ctx;this.eachLayer((function(t){t.__builtin__?o.drawImage(t.dom,0,0,i,r):t.renderToCanvas&&(e.ctx.save(),t.renderToCanvas(e.ctx),e.ctx.restore())}))}else for(var a={inHover:!1,viewWidth:this._width,viewHeight:this._height},s=this.storage.getDisplayList(!0),l=0,u=s.length;l<u;l++){Gg(n,s[l],a,l===u-1)}return e.dom},t.prototype.getWidth=function(){return this._width},t.prototype.getHeight=function(){return this._height},t.prototype._getSize=function(t){var e=this._opts,n=["width","height"][t],i=["clientWidth","clientHeight"][t],r=["paddingLeft","paddingTop"][t],o=["paddingRight","paddingBottom"][t];if(null!=e[n]&&"auto"!==e[n])return parseFloat(e[n]);var a=this.root,s=document.defaultView.getComputedStyle(a);return(a[i]||Rx(s[n])||Rx(a.style[n]))-(Rx(s[r])||0)-(Rx(s[o])||0)|0},t.prototype.pathToImage=function(t,e){e=e||this.dpr;var n=document.createElement("canvas"),i=n.getContext("2d"),r=t.getBoundingRect(),o=t.style,a=o.shadowBlur*e,s=o.shadowOffsetX*e,l=o.shadowOffsetY*e,u=t.hasStroke()?o.lineWidth:0,h=Math.max(u/2,-s+a),c=Math.max(u/2,s+a),p=Math.max(u/2,-l+a),d=Math.max(u/2,l+a),f=r.width+h+c,g=r.height+p+d;n.width=f*e,n.height=g*e,i.scale(e,e),i.clearRect(0,0,f,g),i.dpr=e;var y={x:t.x,y:t.y,scaleX:t.scaleX,scaleY:t.scaleY,rotation:t.rotation,originX:t.originX,originY:t.originY};t.x=h-r.x,t.y=p-r.y,t.rotation=0,t.scaleX=1,t.scaleY=1,t.updateTransform(),t&&Gg(i,t,{inHover:!1,viewWidth:this._width,viewHeight:this._height},!0);var v=new Ba({style:{x:0,y:0,image:n}});return M(t,y),v},t}();var Ex=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.hasSymbolVisual=!0,e.legendSymbol="line",e}return e(n,t),n.prototype.getInitialData=function(t){return lm(this.getSource(),this,{useEncodeDefaulter:!0})},n.type="series.line",n.dependencies=["grid","polar"],n.defaultOption={zlevel:0,z:3,coordinateSystem:"cartesian2d",legendHoverLink:!0,clip:!0,label:{position:"top"},endLabel:{show:!1,valueAnimation:!0,distance:8},lineStyle:{width:2,type:"solid"},emphasis:{scale:!0,lineStyle:{width:"bolder"}},step:!1,smooth:!1,smoothMonotone:null,symbol:"emptyCircle",symbolSize:4,symbolRotate:null,showSymbol:!0,showAllSymbol:"auto",connectNulls:!1,sampling:"none",animationEasing:"linear",progressive:0,hoverLayerThreshold:1/0},n}(bd);function zx(t,e){var n=t.mapDimensionsAll("defaultedLabel"),i=n.length;if(1===i){var r=Pp(t,e,n[0]);return null!=r?r+"":null}if(i){for(var o=[],a=0;a<n.length;a++)o.push(Pp(t,e,n[a]));return o.join(" ")}}function Bx(t,e){var n=t.mapDimensionsAll("defaultedLabel");if(!V(e))return e+"";for(var i=[],r=0;r<n.length;r++){var o=t.getDimensionInfo(n[r]);o&&i.push(e[o.index])}return i.join(" ")}var Vx=function(t){function n(e,n,i,r){var o=t.call(this)||this;return o.updateData(e,n,i,r),o}return e(n,t),n.prototype._createSymbol=function(t,e,n,i,r){this.removeAll();var o=Sg(t,-1,-1,2,2,null,r);o.attr({z2:100,culling:!0,scaleX:i[0]/2,scaleY:i[1]/2}),o.drift=Fx,this._symbolType=t,this.add(o)},n.prototype.stopSymbolAnimation=function(t){this.childAt(0).stopAnimation(null,t)},n.prototype.getSymbolPath=function(){return this.childAt(0)},n.prototype.highlight=function(){Ss(this.childAt(0))},n.prototype.downplay=function(){Ms(this.childAt(0))},n.prototype.setZ=function(t,e){var n=this.childAt(0);n.zlevel=t,n.z=e},n.prototype.setDraggable=function(t){var e=this.childAt(0);e.draggable=t,e.cursor=t?"move":e.cursor},n.prototype.updateData=function(t,e,i,r){this.silent=!1;var o=t.getItemVisual(e,"symbol")||"circle",a=t.hostModel,s=n.getSymbolSize(t,e),l=o!==this._symbolType,u=r&&r.disableAnimation;if(l){var h=t.getItemVisual(e,"symbolKeepAspect");this._createSymbol(o,t,e,s,h)}else{(p=this.childAt(0)).silent=!1;var c={scaleX:s[0]/2,scaleY:s[1]/2};u?p.attr(c):fu(p,c,a,e)}if(this._updateCommon(t,e,s,i,r),l){var p=this.childAt(0);if(!u){c={scaleX:this._sizeX,scaleY:this._sizeY,style:{opacity:p.style.opacity}};p.scaleX=p.scaleY=0,p.style.opacity=0,gu(p,c,a,e)}}u&&this.childAt(0).stopAnimation("remove"),this._seriesModel=a},n.prototype._updateCommon=function(t,e,n,i,r){var o,a,s,l,u,h,c,p,d,f=this.childAt(0),g=t.hostModel;if(i&&(o=i.emphasisItemStyle,a=i.blurItemStyle,s=i.selectItemStyle,l=i.focus,u=i.blurScope,h=i.symbolOffset,c=i.labelStatesModels,p=i.hoverScale,d=i.cursorStyle),!i||t.hasItemOption){var y=i&&i.itemModel?i.itemModel:t.getItemModel(e),v=y.getModel("emphasis");o=v.getModel("itemStyle").getItemStyle(),s=y.getModel(["select","itemStyle"]).getItemStyle(),a=y.getModel(["blur","itemStyle"]).getItemStyle(),l=v.get("focus"),u=v.get("blurScope"),h=y.getShallow("symbolOffset"),c=Eu(y),p=v.getShallow("scale"),d=y.getShallow("cursor")}var m=t.getItemVisual(e,"symbolRotate");f.attr("rotation",(m||0)*Math.PI/180||0),h&&(f.x=Vi(h[0],n[0]),f.y=Vi(h[1],n[1])),d&&f.attr("cursor",d);var _=t.getItemVisual(e,"style"),x=_.fill;if(f instanceof Ba){var b=f.style;f.useStyle(M({image:b.image,x:b.x,y:b.y,width:b.width,height:b.height},_))}else f.__isEmptyBrush?f.useStyle(M({},_)):f.useStyle(_),f.style.decal=null,f.setColor(x,r&&r.symbolInnerColor),f.style.strokeNoScale=!0;var w=t.getItemVisual(e,"liftZ"),S=this._z2;null!=w?null==S&&(this._z2=f.z2,f.z2+=w):null!=S&&(f.z2=S,this._z2=null);var I=r&&r.useNameLabel;Nu(f,c,{labelFetcher:g,labelDataIndex:e,defaultText:function(e){return I?t.getName(e):zx(t,e)},inheritColor:x,defaultOpacity:_.opacity}),this._sizeX=n[0]/2,this._sizeY=n[1]/2;var T=f.ensureState("emphasis");if(T.style=o,f.ensureState("select").style=s,f.ensureState("blur").style=a,p){var C=Math.max(1.1,3/this._sizeY);T.scaleX=this._sizeX*C,T.scaleY=this._sizeY*C}this.setSymbolScale(1),Os(this,l,u)},n.prototype.setSymbolScale=function(t){this.scaleX=this.scaleY=t},n.prototype.fadeOut=function(t,e){var n=this.childAt(0),i=this._seriesModel,r=ns(this).dataIndex,o=e&&e.animation;if(this.silent=n.silent=!0,e&&e.fadeLabel){var a=n.getTextContent();a&&yu(a,{style:{opacity:0}},i,{dataIndex:r,removeOpt:o,cb:function(){n.removeTextContent()}})}else n.removeTextContent();yu(n,{style:{opacity:0},scaleX:0,scaleY:0},i,{dataIndex:r,cb:t,removeOpt:o})},n.getSymbolSize=function(t,e){var n=t.getItemVisual(e,"symbolSize");return n instanceof Array?n.slice():[+n,+n]},n}(Li);function Fx(t,e){this.parent.drift(t,e)}function Gx(t,e,n,i){return e&&!isNaN(e[0])&&!isNaN(e[1])&&!(i.isIgnore&&i.isIgnore(n))&&!(i.clipShape&&!i.clipShape.contain(e[0],e[1]))&&"none"!==t.getItemVisual(n,"symbol")}function Hx(t){return null==t||Y(t)||(t={isIgnore:t}),t||{}}function Wx(t){var e=t.hostModel,n=e.getModel("emphasis");return{emphasisItemStyle:n.getModel("itemStyle").getItemStyle(),blurItemStyle:e.getModel(["blur","itemStyle"]).getItemStyle(),selectItemStyle:e.getModel(["select","itemStyle"]).getItemStyle(),focus:n.get("focus"),blurScope:n.get("blurScope"),symbolRotate:e.get("symbolRotate"),symbolOffset:e.get("symbolOffset"),hoverScale:n.get("scale"),labelStatesModels:Eu(e),cursorStyle:e.get("cursor")}}var Yx=function(){function t(t){this.group=new Li,this._SymbolCtor=t||Vx}return t.prototype.updateData=function(t,e){e=Hx(e);var n=this.group,i=t.hostModel,r=this._data,o=this._SymbolCtor,a=e.disableAnimation,s=Wx(t),l={disableAnimation:a},u=e.getSymbolPoint||function(e){return t.getItemLayout(e)};r||n.removeAll(),t.diff(r).add((function(i){var r=u(i);if(Gx(t,r,i,e)){var a=new o(t,i,s,l);a.setPosition(r),t.setItemGraphicEl(i,a),n.add(a)}})).update((function(h,c){var p=r.getItemGraphicEl(c),d=u(h);if(Gx(t,d,h,e)){if(p){p.updateData(t,h,s,l);var f={x:d[0],y:d[1]};a?p.attr(f):fu(p,f,i)}else(p=new o(t,h)).setPosition(d);n.add(p),t.setItemGraphicEl(h,p)}else n.remove(p)})).remove((function(t){var e=r.getItemGraphicEl(t);e&&e.fadeOut((function(){n.remove(e)}))})).execute(),this._getSymbolPoint=u,this._data=t},t.prototype.isPersistent=function(){return!0},t.prototype.updateLayout=function(){var t=this,e=this._data;e&&e.eachItemGraphicEl((function(e,n){var i=t._getSymbolPoint(n);e.setPosition(i),e.markRedraw()}))},t.prototype.incrementalPrepareUpdate=function(t){this._seriesScope=Wx(t),this._data=null,this.group.removeAll()},t.prototype.incrementalUpdate=function(t,e,n){function i(t){t.isGroup||(t.incremental=!0,t.ensureState("emphasis").hoverLayer=!0)}n=Hx(n);for(var r=t.start;r<t.end;r++){var o=e.getItemLayout(r);if(Gx(e,o,r,n)){var a=new this._SymbolCtor(e,r,this._seriesScope);a.traverse(i),a.setPosition(o),this.group.add(a),e.setItemGraphicEl(r,a)}}},t.prototype.remove=function(t){var e=this.group,n=this._data;n&&t?n.eachItemGraphicEl((function(t){t.fadeOut((function(){e.remove(t)}))})):e.removeAll()},t}();function Xx(t,e,n){var i=t.getBaseAxis(),r=t.getOtherAxis(i),o=function(t,e){var n=0,i=t.scale.getExtent();"start"===e?n=i[0]:"end"===e?n=i[1]:i[0]>0?n=i[0]:i[1]<0&&(n=i[1]);return n}(r,n),a=i.dim,s=r.dim,l=e.mapDimension(s),u=e.mapDimension(a),h="x"===s||"radius"===s?1:0,c=P(t.dimensions,(function(t){return e.mapDimension(t)})),p=!1,d=e.getCalculationInfo("stackResultDimension");return am(e,c[0])&&(p=!0,c[0]=d),am(e,c[1])&&(p=!0,c[1]=d),{dataDimsForPoint:c,valueStart:o,valueAxisDim:s,baseAxisDim:a,stacked:!!p,valueDim:l,baseDim:u,baseDataOffset:h,stackedOverDimension:e.getCalculationInfo("stackedOverDimension")}}function Ux(t,e,n,i){var r=NaN;t.stacked&&(r=n.get(n.getCalculationInfo("stackedOverDimension"),i)),isNaN(r)&&(r=t.valueStart);var o=t.baseDataOffset,a=[];return a[o]=n.get(t.baseDim,i),a[1-o]=r,e.dataToPoint(a)}var Zx="undefined"!=typeof Float32Array,jx=Zx?Float32Array:Array;function qx(t){return V(t)?Zx?new Float32Array(t):t:new jx(t)}var Kx=Math.min,$x=Math.max;function Jx(t,e){return isNaN(t)||isNaN(e)}function Qx(t,e,n,i,r,o,a,s,l){for(var u,h,c,p,d,f,g=n,y=0;y<i;y++){var v=e[2*g],m=e[2*g+1];if(g>=r||g<0)break;if(Jx(v,m)){if(l){g+=o;continue}break}if(g===n)t[o>0?"moveTo":"lineTo"](v,m),c=v,p=m;else{var _=v-u,x=m-h;if(_*_+x*x<.5){g+=o;continue}if(a>0){var b=g+o,w=e[2*b],S=e[2*b+1],M=y+1;if(l)for(;Jx(w,S)&&M<i;)M++,w=e[2*(b+=o)],S=e[2*b+1];var I=.5,T=0,C=0,A=void 0,D=void 0;if(M>=i||Jx(w,S))d=v,f=m;else{T=w-u,C=S-h;var L=v-u,k=w-v,P=m-h,O=S-m,R=void 0,N=void 0;"x"===s?(R=Math.abs(L),N=Math.abs(k),d=v-R*a,f=m,A=v+R*a,D=m):"y"===s?(R=Math.abs(P),N=Math.abs(O),d=v,f=m-R*a,A=v,D=m+R*a):(R=Math.sqrt(L*L+P*P),d=v-T*a*(1-(I=(N=Math.sqrt(k*k+O*O))/(N+R))),f=m-C*a*(1-I),D=m+C*a*I,A=Kx(A=v+T*a*I,$x(w,v)),D=Kx(D,$x(S,m)),A=$x(A,Kx(w,v)),f=m-(C=(D=$x(D,Kx(S,m)))-m)*R/N,d=Kx(d=v-(T=A-v)*R/N,$x(u,v)),f=Kx(f,$x(h,m)),A=v+(T=v-(d=$x(d,Kx(u,v))))*N/R,D=m+(C=m-(f=$x(f,Kx(h,m))))*N/R)}t.bezierCurveTo(c,p,d,f,v,m),c=A,p=D}else t.lineTo(v,m)}u=v,h=m,g+=o}return y}var tb=function(){this.smooth=0,this.smoothConstraint=!0},eb=function(t){function n(e){var n=t.call(this,e)||this;return n.type="ec-polyline",n}return e(n,t),n.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},n.prototype.getDefaultShape=function(){return new tb},n.prototype.buildPath=function(t,e){var n=e.points,i=0,r=n.length/2;if(e.connectNulls){for(;r>0&&Jx(n[2*r-2],n[2*r-1]);r--);for(;i<r&&Jx(n[2*i],n[2*i+1]);i++);}for(;i<r;)i+=Qx(t,n,i,r,r,1,e.smooth,e.smoothMonotone,e.connectNulls)+1},n.prototype.getPointOn=function(t,e){this.path||(this.createPathProxy(),this.buildPath(this.path,this.shape));for(var n,i,r=this.path.data,o=da.CMD,a="x"===e,s=[],l=0;l<r.length;){var u=void 0,h=void 0,c=void 0,p=void 0,d=void 0,f=void 0,g=void 0;switch(r[l++]){case o.M:n=r[l++],i=r[l++];break;case o.L:if(u=r[l++],h=r[l++],(g=a?(t-n)/(u-n):(t-i)/(h-i))<=1&&g>=0){var y=a?(h-i)*g+i:(u-n)*g+n;return a?[t,y]:[y,t]}n=u,i=h;break;case o.C:u=r[l++],h=r[l++],c=r[l++],p=r[l++],d=r[l++],f=r[l++];var v=a?wo(n,u,c,d,t,s):wo(i,h,p,f,t,s);if(v>0)for(var m=0;m<v;m++){var _=s[m];if(_<=1&&_>=0){y=a?xo(i,h,p,f,_):xo(n,u,c,d,_);return a?[t,y]:[y,t]}}n=d,i=f}}},n}(Oa),nb=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n}(tb),ib=function(t){function n(e){var n=t.call(this,e)||this;return n.type="ec-polygon",n}return e(n,t),n.prototype.getDefaultShape=function(){return new nb},n.prototype.buildPath=function(t,e){var n=e.points,i=e.stackedOnPoints,r=0,o=n.length/2,a=e.smoothMonotone;if(e.connectNulls){for(;o>0&&Jx(n[2*o-2],n[2*o-1]);o--);for(;r<o&&Jx(n[2*r],n[2*r+1]);r++);}for(;r<o;){var s=Qx(t,n,r,o,o,1,e.smooth,a,e.connectNulls);Qx(t,i,r+s-1,s,o,-1,e.stackedOnSmooth,a,e.connectNulls),r+=s+1,t.closePath()}},n}(Oa);function rb(t,e,n,i,r){var o=t.getArea(),a=o.x,s=o.y,l=o.width,u=o.height,h=n.get(["lineStyle","width"])||2;a-=h/2,s-=h/2,l+=h,u+=h,a=Math.floor(a),l=Math.round(l);var c=new Xa({shape:{x:a,y:s,width:l,height:u}});if(e){var p=t.getBaseAxis(),d=p.isHorizontal(),f=p.inverse;d?(f&&(c.shape.x+=l),c.shape.width=0):(f||(c.shape.y+=u),c.shape.height=0),gu(c,{shape:{width:l,height:u,x:a,y:s}},n,null,i,"function"==typeof r?function(t){r(t,c)}:null)}return c}function ob(t,e,n){var i=t.getArea(),r=Fi(i.r0,1),o=Fi(i.r,1),a=new Ml({shape:{cx:Fi(t.cx,1),cy:Fi(t.cy,1),r0:r,r:o,startAngle:i.startAngle,endAngle:i.endAngle,clockwise:i.clockwise}});e&&("angle"===t.getBaseAxis().dim?a.shape.endAngle=i.startAngle:a.shape.r=r,gu(a,{shape:{endAngle:i.endAngle,r:o}},n));return a}function ab(t,e,n,i,r){return t?"polar"===t.type?ob(t,e,n):"cartesian2d"===t.type?rb(t,e,n,i,r):null:null}function sb(t,e){return t.type===e}function lb(t,e){if(t.length===e.length){for(var n=0;n<t.length;n++)if(t[n]!==e[n])return;return!0}}function ub(t){for(var e=1/0,n=1/0,i=-1/0,r=-1/0,o=0;o<t.length;){var a=t[o++],s=t[o++];isNaN(a)||(e=Math.min(a,e),i=Math.max(a,i)),isNaN(s)||(n=Math.min(s,n),r=Math.max(s,r))}return[[e,n],[i,r]]}function hb(t,e){var n=ub(t),i=n[0],r=n[1],o=ub(e),a=o[0],s=o[1];return Math.max(Math.abs(i[0]-a[0]),Math.abs(i[1]-a[1]),Math.abs(r[0]-s[0]),Math.abs(r[1]-s[1]))}function cb(t){return"number"==typeof t?t:t?.5:0}function pb(t,e,n){for(var i=e.getBaseAxis(),r="x"===i.dim||"radius"===i.dim?0:1,o=[],a=0,s=[],l=[],u=[];a<t.length-2;a+=2)switch(u[0]=t[a+2],u[1]=t[a+3],l[0]=t[a],l[1]=t[a+1],o.push(l[0],l[1]),n){case"end":s[r]=u[r],s[1-r]=l[1-r],o.push(s[0],s[1]);break;case"middle":var h=(l[r]+u[r])/2,c=[];s[r]=c[r]=h,s[1-r]=l[1-r],c[1-r]=u[1-r],o.push(s[0],s[1]),o.push(c[0],c[1]);break;default:s[r]=l[r],s[1-r]=u[1-r],o.push(s[0],s[1])}return o.push(t[a++],t[a++]),o}function db(t,e,n){var i=t.get("showAllSymbol"),r="auto"===i;if(!i||r){var o=n.getAxesByScale("ordinal")[0];if(o&&(!r||!function(t,e){var n=t.getExtent(),i=Math.abs(n[1]-n[0])/t.scale.count();isNaN(i)&&(i=0);for(var r=e.count(),o=Math.max(1,Math.round(r/5)),a=0;a<r;a+=o)if(1.5*Vx.getSymbolSize(e,a)[t.isHorizontal()?1:0]>i)return!1;return!0}(o,e))){var a=e.mapDimension(o.dim),s={};return k(o.getViewLabels(),(function(t){var e=o.scale.getRawOrdinalNumber(t.tickValue);s[e]=1})),function(t){return!s.hasOwnProperty(e.get(a,t))}}}}function fb(t,e){return[t[2*e],t[2*e+1]]}function gb(t,e,n,i){if(sb(e,"cartesian2d")){var r=i.getModel("endLabel"),o=r.get("show"),a=r.get("valueAnimation"),s=i.getData(),l={lastFrameIndex:0},u=o?function(n,i){t._endLabelOnDuring(n,i,s,l,a,r,e)}:null,h=e.getBaseAxis().isHorizontal(),c=rb(e,n,i,(function(){var e=t._endLabel;e&&n&&null!=l.originalX&&e.attr({x:l.originalX,y:l.originalY})}),u);if(!i.get("clip",!0)){var p=c.shape,d=Math.max(p.width,p.height);h?(p.y-=d,p.height+=2*d):(p.x-=d,p.width+=2*d)}return u&&u(1,c),c}return ob(e,n,i)}var yb=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.init=function(){var t=new Li,e=new Yx;this.group.add(e.group),this._symbolDraw=e,this._lineGroup=t},n.prototype.render=function(t,e,n){var i=this,r=t.coordinateSystem,o=this.group,a=t.getData(),s=t.getModel("lineStyle"),l=t.getModel("areaStyle"),u=a.getLayout("points")||[],h="polar"===r.type,c=this._coordSys,p=this._symbolDraw,d=this._polyline,f=this._polygon,g=this._lineGroup,y=t.get("animation"),v=!l.isEmpty(),m=l.get("origin"),_=Xx(r,a,m),x=v&&function(t,e,n){if(!n.valueDim)return[];for(var i=e.count(),r=qx(2*i),o=0;o<i;o++){var a=Ux(n,t,e,o);r[2*o]=a[0],r[2*o+1]=a[1]}return r}(r,a,_),b=t.get("showSymbol"),w=b&&!h&&db(t,a,r),S=this._data;S&&S.eachItemGraphicEl((function(t,e){t.__temp&&(o.remove(t),S.setItemGraphicEl(e,null))})),b||p.remove(),o.add(g);var M,T=!h&&t.get("step");r&&r.getArea&&t.get("clip",!0)&&(null!=(M=r.getArea()).width?(M.x-=.1,M.y-=.1,M.width+=.2,M.height+=.2):M.r0&&(M.r0-=.5,M.r+=.5)),this._clipShapeForSymbol=M,d&&c.type===r.type&&T===this._step?(v&&!f?f=this._newPolygon(u,x):f&&!v&&(g.remove(f),f=this._polygon=null),h||this._initOrUpdateEndLabel(t,r),g.setClipPath(gb(this,r,!1,t)),b&&p.updateData(a,{isIgnore:w,clipShape:M,disableAnimation:!0,getSymbolPoint:function(t){return[u[2*t],u[2*t+1]]}}),lb(this._stackedOnPoints,x)&&lb(this._points,u)||(y?this._doUpdateAnimation(a,x,r,n,T,m):(T&&(u=pb(u,r,T),x&&(x=pb(x,r,T))),d.setShape({points:u}),f&&f.setShape({points:u,stackedOnPoints:x})))):(b&&p.updateData(a,{isIgnore:w,clipShape:M,disableAnimation:!0,getSymbolPoint:function(t){return[u[2*t],u[2*t+1]]}}),y&&this._initSymbolLabelAnimation(a,r,M),T&&(u=pb(u,r,T),x&&(x=pb(x,r,T))),d=this._newPolyline(u),v&&(f=this._newPolygon(u,x)),h||this._initOrUpdateEndLabel(t,r),g.setClipPath(gb(this,r,!0,t)));var C=function(t,e){var n=t.getVisual("visualMeta");if(n&&n.length&&t.count()&&"cartesian2d"===e.type){for(var i,r,o=n.length-1;o>=0;o--){var a=n[o].dimension,s=t.dimensions[a],l=t.getDimensionInfo(s);if("x"===(i=l&&l.coordDim)||"y"===i){r=n[o];break}}if(r){var u=e.getAxis(i),h=P(r.stops,(function(t){return{offset:0,coord:u.toGlobalCoord(u.dataToCoord(t.value)),color:t.color}})),c=h.length,p=r.outerColors.slice();c&&h[0].coord>h[c-1].coord&&(h.reverse(),p.reverse());var d=h[0].coord-10,f=h[c-1].coord+10,g=f-d;if(g<.001)return"transparent";k(h,(function(t){t.offset=(t.coord-d)/g})),h.push({offset:c?h[c-1].offset:.5,color:p[1]||"transparent"}),h.unshift({offset:c?h[0].offset:.5,color:p[0]||"transparent"});var y=new Yl(0,0,0,0,h,!0);return y[i]=d,y[i+"2"]=f,y}}}(a,r)||a.getVisual("style")[a.getVisual("drawType")],A=t.get(["emphasis","focus"]),D=t.get(["emphasis","blurScope"]);(d.useStyle(I(s.getLineStyle(),{fill:"none",stroke:C,lineJoin:"bevel"})),zs(d,t,"lineStyle"),d.style.lineWidth>0&&"bolder"===t.get(["emphasis","lineStyle","width"]))&&(d.getState("emphasis").style.lineWidth=d.style.lineWidth+1);ns(d).seriesIndex=t.seriesIndex,Os(d,A,D);var L=cb(t.get("smooth")),O=t.get("smoothMonotone"),R=t.get("connectNulls");if(d.setShape({smooth:L,smoothMonotone:O,connectNulls:R}),f){var N=a.getCalculationInfo("stackedOnSeries"),E=0;f.useStyle(I(l.getAreaStyle(),{fill:C,opacity:.7,lineJoin:"bevel",decal:a.getVisual("style").decal})),N&&(E=cb(N.get("smooth"))),f.setShape({smooth:L,stackedOnSmooth:E,smoothMonotone:O,connectNulls:R}),zs(f,t,"areaStyle"),ns(f).seriesIndex=t.seriesIndex,Os(f,A,D)}var z=function(t){i._changePolyState(t)};a.eachItemGraphicEl((function(t){t&&(t.onHoverStateChange=z)})),this._polyline.onHoverStateChange=z,this._data=a,this._coordSys=r,this._stackedOnPoints=x,this._points=u,this._step=T,this._valueOrigin=m},n.prototype.dispose=function(){},n.prototype.highlight=function(t,e,n,i){var r=t.getData(),o=mr(r,i);if(this._changePolyState("emphasis"),!(o instanceof Array)&&null!=o&&o>=0){var a=r.getLayout("points"),s=r.getItemGraphicEl(o);if(!s){var l=a[2*o],u=a[2*o+1];if(isNaN(l)||isNaN(u))return;if(this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(l,u))return;(s=new Vx(r,o)).x=l,s.y=u,s.setZ(t.get("zlevel"),t.get("z")),s.__temp=!0,r.setItemGraphicEl(o,s),s.stopSymbolAnimation(!0),this.group.add(s)}s.highlight()}else Od.prototype.highlight.call(this,t,e,n,i)},n.prototype.downplay=function(t,e,n,i){var r=t.getData(),o=mr(r,i);if(this._changePolyState("normal"),null!=o&&o>=0){var a=r.getItemGraphicEl(o);a&&(a.__temp?(r.setItemGraphicEl(o,null),this.group.remove(a)):a.downplay())}else Od.prototype.downplay.call(this,t,e,n,i)},n.prototype._changePolyState=function(t){var e=this._polygon;xs(this._polyline,t),e&&xs(e,t)},n.prototype._newPolyline=function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new eb({shape:{points:t},segmentIgnoreThreshold:2,z2:10}),this._lineGroup.add(e),this._polyline=e,e},n.prototype._newPolygon=function(t,e){var n=this._polygon;return n&&this._lineGroup.remove(n),n=new ib({shape:{points:t,stackedOnPoints:e},segmentIgnoreThreshold:2}),this._lineGroup.add(n),this._polygon=n,n},n.prototype._initSymbolLabelAnimation=function(t,e,n){var i,r,o=e.getBaseAxis(),a=o.inverse;"cartesian2d"===e.type?(i=o.isHorizontal(),r=!1):"polar"===e.type&&(i="angle"===o.dim,r=!0);var s=t.hostModel,l=s.get("animationDuration");"function"==typeof l&&(l=l(null));var u=s.get("animationDelay")||0,h="function"==typeof u?u(null):u;t.eachItemGraphicEl((function(t,o){var s=t;if(s){var c=[t.x,t.y],p=void 0,d=void 0,f=void 0;if(r){var g=n,y=e.pointToCoord(c);i?(p=g.startAngle,d=g.endAngle,f=-y[1]/180*Math.PI):(p=g.r0,d=g.r,f=y[0])}else{var v=n;i?(p=v.x,d=v.x+v.width,f=t.x):(p=v.y+v.height,d=v.y,f=t.y)}var m=d===p?0:(f-p)/(d-p);a&&(m=1-m);var _="function"==typeof u?u(o):l*m+h,x=s.getSymbolPath(),b=x.getTextContent();s.attr({scaleX:0,scaleY:0}),s.animateTo({scaleX:1,scaleY:1},{duration:200,delay:_}),b&&b.animateFrom({style:{opacity:0}},{duration:300,delay:_}),x.disableLabelAnimation=!0}}))},n.prototype._initOrUpdateEndLabel=function(t,e){var n=t.getModel("endLabel");if(n.get("show")){var i=t.getData(),r=this._polyline,o=this._endLabel;o||((o=this._endLabel=new ja({z2:200})).ignoreClip=!0,r.setTextContent(this._endLabel),r.disableLabelAnimation=!0);var a=function(t){for(var e,n,i=t.length/2;i>0&&(e=t[2*i-2],n=t[2*i-1],isNaN(e)||isNaN(n));i--);return i-1}(i.getLayout("points"));a>=0&&(Nu(r,Eu(t,"endLabel"),{labelFetcher:t,labelDataIndex:a,defaultText:function(t,e,n){return null!=n?Bx(i,n):zx(i,t)},enableTextSetter:!0},function(t,e){var n=e.getBaseAxis(),i=n.isHorizontal(),r=n.inverse,o=i?r?"right":"left":"center",a=i?"middle":r?"top":"bottom";return{normal:{align:t.get("align")||o,verticalAlign:t.get("verticalAlign")||a}}}(n,e)),r.textConfig.position=null)}else this._endLabel&&(this._polyline.removeTextContent(),this._endLabel=null)},n.prototype._endLabelOnDuring=function(t,e,n,i,r,o,a){var s=this._endLabel,l=this._polyline;if(s){t<1&&null==i.originalX&&(i.originalX=s.x,i.originalY=s.y);var u=n.getLayout("points"),h=n.hostModel,c=h.get("connectNulls"),p=o.get("precision"),d=o.get("distance")||0,f=a.getBaseAxis(),g=f.isHorizontal(),y=f.inverse,v=e.shape,m=y?g?v.x:v.y+v.height:g?v.x+v.width:v.y,_=(g?d:0)*(y?-1:1),x=(g?0:-d)*(y?-1:1),b=g?"x":"y",w=function(t,e,n){for(var i,r,o=t.length/2,a="x"===n?0:1,s=0,l=-1,u=0;u<o;u++)if(r=t[2*u+a],!isNaN(r)&&!isNaN(t[2*u+1-a]))if(0!==u){if(i<=e&&r>=e||i>=e&&r<=e){l=u;break}s=u,i=r}else i=r;return{range:[s,l],t:(e-i)/(r-i)}}(u,m,b),S=w.range,M=S[1]-S[0],I=void 0;if(M>=1){if(M>1&&!c){var T=fb(u,S[0]);s.attr({x:T[0]+_,y:T[1]+x}),r&&(I=h.getRawValue(S[0]))}else{(T=l.getPointOn(m,b))&&s.attr({x:T[0]+_,y:T[1]+x});var C=h.getRawValue(S[0]),A=h.getRawValue(S[1]);r&&(I=Cr(n,p,C,A,w.t))}i.lastFrameIndex=S[0]}else{var D=1===t||i.lastFrameIndex>0?S[0]:0;T=fb(u,D);r&&(I=h.getRawValue(D)),s.attr({x:T[0]+_,y:T[1]+x})}r&&Yu(s).setLabelText(I)}},n.prototype._doUpdateAnimation=function(t,e,n,i,r,o){var a=this._polyline,s=this._polygon,l=t.hostModel,u=function(t,e,n,i,r,o,a,s){for(var l=function(t,e){var n=[];return e.diff(t).add((function(t){n.push({cmd:"+",idx:t})})).update((function(t,e){n.push({cmd:"=",idx:e,idx1:t})})).remove((function(t){n.push({cmd:"-",idx:t})})).execute(),n}(t,e),u=[],h=[],c=[],p=[],d=[],f=[],g=[],y=Xx(r,e,a),v=Xx(o,t,s),m=t.getLayout("points")||[],_=e.getLayout("points")||[],x=0;x<l.length;x++){var b=l[x],w=!0,S=void 0,M=void 0;switch(b.cmd){case"=":S=2*b.idx,M=2*b.idx1;var I=m[S],T=m[S+1],C=_[M],A=_[M+1];(isNaN(I)||isNaN(T))&&(I=C,T=A),u.push(I,T),h.push(C,A),c.push(n[S],n[S+1]),p.push(i[M],i[M+1]),g.push(e.getRawIndex(b.idx1));break;case"+":var D=b.idx,L=y.dataDimsForPoint,k=r.dataToPoint([e.get(L[0],D),e.get(L[1],D)]);M=2*D,u.push(k[0],k[1]),h.push(_[M],_[M+1]);var P=Ux(y,r,e,D);c.push(P[0],P[1]),p.push(i[M],i[M+1]),g.push(e.getRawIndex(D));break;case"-":var O=b.idx,R=t.getRawIndex(O),N=v.dataDimsForPoint;if(S=2*O,R!==O){var E=o.dataToPoint([t.get(N[0],O),t.get(N[1],O)]),z=Ux(v,o,t,O);u.push(m[S],m[S+1]),h.push(E[0],E[1]),c.push(n[S],n[S+1]),p.push(z[0],z[1]),g.push(R)}else w=!1}w&&(d.push(b),f.push(f.length))}f.sort((function(t,e){return g[t]-g[e]}));var B=u.length,V=qx(B),F=qx(B),G=qx(B),H=qx(B),W=[];for(x=0;x<f.length;x++){var Y=f[x],X=2*x,U=2*Y;V[X]=u[U],V[X+1]=u[U+1],F[X]=h[U],F[X+1]=h[U+1],G[X]=c[U],G[X+1]=c[U+1],H[X]=p[U],H[X+1]=p[U+1],W[x]=d[Y]}return{current:V,next:F,stackedOnCurrent:G,stackedOnNext:H,status:W}}(this._data,t,this._stackedOnPoints,e,this._coordSys,n,this._valueOrigin,o),h=u.current,c=u.stackedOnCurrent,p=u.next,d=u.stackedOnNext;if(r&&(h=pb(u.current,n,r),c=pb(u.stackedOnCurrent,n,r),p=pb(u.next,n,r),d=pb(u.stackedOnNext,n,r)),hb(h,p)>3e3||s&&hb(c,d)>3e3)return a.setShape({points:p}),void(s&&s.setShape({points:p,stackedOnPoints:d}));a.shape.__points=u.current,a.shape.points=h;var f={shape:{points:p}};u.current!==h&&(f.shape.__points=u.next),a.stopAnimation(),fu(a,f,l),s&&(s.setShape({points:h,stackedOnPoints:c}),s.stopAnimation(),fu(s,{shape:{stackedOnPoints:d}},l),a.shape.points!==s.shape.points&&(s.shape.points=a.shape.points));for(var g=[],y=u.status,v=0;v<y.length;v++){if("="===y[v].cmd){var m=t.getItemGraphicEl(y[v].idx1);m&&g.push({el:m,ptIdx:v})}}a.animators&&a.animators.length&&a.animators[0].during((function(){s&&s.dirtyShape();for(var t=a.shape.__points,e=0;e<g.length;e++){var n=g[e].el,i=2*g[e].ptIdx;n.x=t[i],n.y=t[i+1],n.markRedraw()}}))},n.prototype.remove=function(t){var e=this.group,n=this._data;this._lineGroup.removeAll(),this._symbolDraw.remove(!0),n&&n.eachItemGraphicEl((function(t,i){t.__temp&&(e.remove(t),n.setItemGraphicEl(i,null))})),this._polyline=this._polygon=this._coordSys=this._points=this._stackedOnPoints=this._endLabel=this._data=null},n.type="line",n}(Od);function vb(t,e){return{seriesType:t,plan:Ld(),reset:function(t){var n=t.getData(),i=t.coordinateSystem,r=t.pipelineContext,o=e||r.large;if(i){var a=P(i.dimensions,(function(t){return n.mapDimension(t)})).slice(0,2),s=a.length,l=n.getCalculationInfo("stackResultDimension");am(n,a[0])&&(a[0]=l),am(n,a[1])&&(a[1]=l);var u=n.getDimensionInfo(a[0]),h=n.getDimensionInfo(a[1]),c=u&&u.index,p=h&&h.index;return s&&{progress:function(t,e){for(var n=t.end-t.start,r=o&&qx(n*s),a=[],l=[],u=t.start,h=0;u<t.end;u++){var d=void 0;if(1===s){var f=e.getByDimIdx(c,u);d=i.dataToPoint(f,null,l)}else a[0]=e.getByDimIdx(c,u),a[1]=e.getByDimIdx(p,u),d=i.dataToPoint(a,null,l);o?(r[h++]=d[0],r[h++]=d[1]):e.setItemLayout(u,d.slice())}o&&e.setLayout("points",r)}}}}}}var mb={average:function(t){for(var e=0,n=0,i=0;i<t.length;i++)isNaN(t[i])||(e+=t[i],n++);return 0===n?NaN:e/n},sum:function(t){for(var e=0,n=0;n<t.length;n++)e+=t[n]||0;return e},max:function(t){for(var e=-1/0,n=0;n<t.length;n++)t[n]>e&&(e=t[n]);return isFinite(e)?e:NaN},min:function(t){for(var e=1/0,n=0;n<t.length;n++)t[n]<e&&(e=t[n]);return isFinite(e)?e:NaN},nearest:function(t){return t[0]}},_b=function(t){return Math.round(t.length/2)};function xb(t){return{seriesType:t,reset:function(t,e,n){var i=t.getData(),r=t.get("sampling"),o=t.coordinateSystem,a=i.count();if(a>10&&"cartesian2d"===o.type&&r){var s=o.getBaseAxis(),l=o.getOtherAxis(s),u=s.getExtent(),h=n.getDevicePixelRatio(),c=Math.abs(u[1]-u[0])*(h||1),p=Math.round(a/c);if(p>1){"lttb"===r&&t.setData(i.lttbDownSample(i.mapDimension(l.dim),1/p));var d=void 0;"string"==typeof r?d=mb[r]:"function"==typeof r&&(d=r),d&&t.setData(i.downSample(i.mapDimension(l.dim),1/p,d,_b))}}}}}var bb=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.getInitialData=function(t,e){return lm(this.getSource(),this,{useEncodeDefaulter:!0})},n.prototype.getMarkerPosition=function(t){var e=this.coordinateSystem;if(e){var n=e.dataToPoint(e.clampData(t)),i=this.getData(),r=i.getLayout("offset"),o=i.getLayout("size");return n[e.getBaseAxis().isHorizontal()?0:1]+=r+o/2,n}return[NaN,NaN]},n.type="series.__base_bar__",n.defaultOption={zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:3e3,progressiveChunkMode:"mod"},n}(bd);bd.registerClass(bb);var wb=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.getInitialData=function(){return lm(this.getSource(),this,{useEncodeDefaulter:!0,createInvertedIndices:!!this.get("realtimeSort",!0)||null})},n.prototype.getProgressive=function(){return!!this.get("large")&&this.get("progressive")},n.prototype.getProgressiveThreshold=function(){var t=this.get("progressiveThreshold"),e=this.get("largeThreshold");return e>t&&(t=e),t},n.prototype.brushSelector=function(t,e,n){return n.rect(e.getItemLayout(t))},n.type="series.bar",n.dependencies=["grid","polar"],n.defaultOption=sh(bb.defaultOption,{clip:!0,roundCap:!1,showBackground:!1,backgroundStyle:{color:"rgba(180, 180, 180, 0.2)",borderColor:null,borderWidth:0,borderType:"solid",borderRadius:0,shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0,opacity:1},select:{itemStyle:{borderColor:"#212121"}},realtimeSort:!1}),n}(bb),Sb=function(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0},Mb=function(t){function n(e){var n=t.call(this,e)||this;return n.type="sausage",n}return e(n,t),n.prototype.getDefaultShape=function(){return new Sb},n.prototype.buildPath=function(t,e){var n=e.cx,i=e.cy,r=Math.max(e.r0||0,0),o=Math.max(e.r,0),a=.5*(o-r),s=r+a,l=e.startAngle,u=e.endAngle,h=e.clockwise,c=Math.cos(l),p=Math.sin(l),d=Math.cos(u),f=Math.sin(u);(h?u-l<2*Math.PI:l-u<2*Math.PI)&&(t.moveTo(c*r+n,p*r+i),t.arc(c*s+n,p*s+i,a,-Math.PI+l,l,!h)),t.arc(n,i,o,l,u,!h),t.moveTo(d*o+n,f*o+i),t.arc(d*s+n,f*s+i,a,u-2*Math.PI,u-Math.PI,!h),0!==r&&(t.arc(n,i,r,u,l,h),t.moveTo(c*r+n,f*r+i)),t.closePath()},n}(Oa),Ib=["itemStyle","borderWidth"],Tb=["itemStyle","borderRadius"],Cb=[0,0],Ab=Math.max,Db=Math.min;var Lb=function(t){function n(){var e=t.call(this)||this;return e.type=n.type,e._isFirstFrame=!0,e}return e(n,t),n.prototype.render=function(t,e,n,i){this._model=t,this._removeOnRenderedListener(n),this._updateDrawMode(t);var r=t.get("coordinateSystem");("cartesian2d"===r||"polar"===r)&&(this._isLargeDraw?this._renderLarge(t,e,n):this._renderNormal(t,e,n,i))},n.prototype.incrementalPrepareRender=function(t){this._clear(),this._updateDrawMode(t),this._updateLargeClip(t)},n.prototype.incrementalRender=function(t,e){this._incrementalRenderLarge(t,e)},n.prototype._updateDrawMode=function(t){var e=t.pipelineContext.large;null!=this._isLargeDraw&&e===this._isLargeDraw||(this._isLargeDraw=e,this._clear())},n.prototype._renderNormal=function(t,e,n,i){var r,o=this.group,a=t.getData(),s=this._data,l=t.coordinateSystem,u=l.getBaseAxis();"cartesian2d"===l.type?r=u.isHorizontal():"polar"===l.type&&(r="angle"===u.dim);var h=t.isAnimationEnabled()?t:null,c=function(t,e){var n=t.get("realtimeSort",!0),i=e.getBaseAxis();0;if(n&&"category"===i.type&&"cartesian2d"===e.type)return{baseAxis:i,otherAxis:e.getOtherAxis(i)}}(t,l);c&&this._enableRealtimeSort(c,a,n);var p=t.get("clip",!0)||c,d=function(t,e){var n=t.getArea&&t.getArea();if(sb(t,"cartesian2d")){var i=t.getBaseAxis();if("category"!==i.type||!i.onBand){var r=e.getLayout("bandWidth");i.isHorizontal()?(n.x-=r,n.width+=2*r):(n.y-=r,n.height+=2*r)}}return n}(l,a);o.removeClipPath();var f=t.get("roundCap",!0),g=t.get("showBackground",!0),y=t.getModel("backgroundStyle"),v=y.get("borderRadius")||0,m=[],_=this._backgroundEls,x=i&&i.isInitSort,b=i&&"changeAxisOrder"===i.type;function w(t){var e=Rb[l.type](a,t),n=function(t,e,n){return new("polar"===t.type?Ml:Xa)({shape:Fb(e,n,t),silent:!0,z2:0})}(l,r,e);return n.useStyle(y.getItemStyle()),"cartesian2d"===l.type&&n.setShape("r",v),m[t]=n,n}a.diff(s).add((function(e){var n=a.getItemModel(e),i=Rb[l.type](a,e,n);if(g&&w(e),a.hasValue(e)){var s=!1;p&&(s=kb[l.type](d,i));var y=Pb[l.type](t,a,e,i,r,h,u.model,!1,f);Nb(y,a,e,n,i,t,r,"polar"===l.type),x?y.attr({shape:i}):c?Ob(c,h,y,i,e,r,!1,!1):gu(y,{shape:i},t,e),a.setItemGraphicEl(e,y),o.add(y),y.ignore=s}})).update((function(e,n){var i=a.getItemModel(e),S=Rb[l.type](a,e,i);if(g){var M=void 0;0===_.length?M=w(n):((M=_[n]).useStyle(y.getItemStyle()),"cartesian2d"===l.type&&M.setShape("r",v),m[e]=M);var I=Rb[l.type](a,e);fu(M,{shape:Fb(r,I,l)},h,e)}var T=s.getItemGraphicEl(n);if(!a.hasValue(e))return o.remove(T),void(T=null);var C=!1;p&&(C=kb[l.type](d,S))&&o.remove(T),T||(T=Pb[l.type](t,a,e,S,r,h,u.model,!!T,f)),b||Nb(T,a,e,i,S,t,r,"polar"===l.type),x?T.attr({shape:S}):c?Ob(c,h,T,S,e,r,!0,b):fu(T,{shape:S},t,e,null),a.setItemGraphicEl(e,T),T.ignore=C,o.add(T)})).remove((function(e){var n=s.getItemGraphicEl(e);n&&mu(n,t,e)})).execute();var S=this._backgroundGroup||(this._backgroundGroup=new Li);S.removeAll();for(var M=0;M<m.length;++M)S.add(m[M]);o.add(S),this._backgroundEls=m,this._data=a},n.prototype._renderLarge=function(t,e,n){this._clear(),Bb(t,this.group),this._updateLargeClip(t)},n.prototype._incrementalRenderLarge=function(t,e){this._removeBackground(),Bb(e,this.group,!0)},n.prototype._updateLargeClip=function(t){var e=t.get("clip",!0)?ab(t.coordinateSystem,!1,t):null;e?this.group.setClipPath(e):this.group.removeClipPath()},n.prototype._enableRealtimeSort=function(t,e,n){var i=this;if(e.count()){var r=t.baseAxis;if(this._isFirstFrame)this._dispatchInitSort(e,t,n),this._isFirstFrame=!1;else{var o=function(t){var n=e.getItemGraphicEl(t);if(n){var i=n.shape;return(r.isHorizontal()?Math.abs(i.height):Math.abs(i.width))||0}return 0};this._onRendered=function(){i._updateSortWithinSameData(e,o,r,n)},n.getZr().on("rendered",this._onRendered)}}},n.prototype._dataSort=function(t,e,n){var i=[];return t.each(t.mapDimension(e.dim),(function(t,e){var r=n(e);r=null==r?NaN:r,i.push({dataIndex:e,mappedValue:r,ordinalNumber:t})})),i.sort((function(t,e){return e.mappedValue-t.mappedValue})),{ordinalNumbers:P(i,(function(t){return t.ordinalNumber}))}},n.prototype._isOrderChangedWithinSameData=function(t,e,n){for(var i=n.scale,r=t.mapDimension(n.dim),o=Number.MAX_VALUE,a=0,s=i.getOrdinalMeta().categories.length;a<s;++a){var l=t.rawIndexOf(r,i.getRawOrdinalNumber(a)),u=l<0?Number.MIN_VALUE:e(t.indexOfRawIndex(l));if(u>o)return!0;o=u}return!1},n.prototype._isOrderDifferentInView=function(t,e){for(var n=e.scale,i=n.getExtent(),r=Math.max(0,i[0]),o=Math.min(i[1],n.getOrdinalMeta().categories.length-1);r<=o;++r)if(t.ordinalNumbers[r]!==n.getRawOrdinalNumber(r))return!0},n.prototype._updateSortWithinSameData=function(t,e,n,i){if(this._isOrderChangedWithinSameData(t,e,n)){var r=this._dataSort(t,n,e);this._isOrderDifferentInView(r,n)&&(this._removeOnRenderedListener(i),i.dispatchAction({type:"changeAxisOrder",componentType:n.dim+"Axis",axisId:n.index,sortInfo:r}))}},n.prototype._dispatchInitSort=function(t,e,n){var i=e.baseAxis,r=this._dataSort(t,i,(function(n){return t.get(t.mapDimension(e.otherAxis.dim),n)}));n.dispatchAction({type:"changeAxisOrder",componentType:i.dim+"Axis",isInitSort:!0,axisId:i.index,sortInfo:r,animation:{duration:0}})},n.prototype.remove=function(t,e){this._clear(this._model),this._removeOnRenderedListener(e)},n.prototype.dispose=function(t,e){this._removeOnRenderedListener(e)},n.prototype._removeOnRenderedListener=function(t){this._onRendered&&(t.getZr().off("rendered",this._onRendered),this._onRendered=null)},n.prototype._clear=function(t){var e=this.group,n=this._data;t&&t.isAnimationEnabled()&&n&&!this._isLargeDraw?(this._removeBackground(),this._backgroundEls=[],n.eachItemGraphicEl((function(e){mu(e,t,ns(e).dataIndex)}))):e.removeAll(),this._data=null,this._isFirstFrame=!0},n.prototype._removeBackground=function(){this.group.remove(this._backgroundGroup),this._backgroundGroup=null},n.type="bar",n}(Od),kb={cartesian2d:function(t,e){var n=e.width<0?-1:1,i=e.height<0?-1:1;n<0&&(e.x+=e.width,e.width=-e.width),i<0&&(e.y+=e.height,e.height=-e.height);var r=t.x+t.width,o=t.y+t.height,a=Ab(e.x,t.x),s=Db(e.x+e.width,r),l=Ab(e.y,t.y),u=Db(e.y+e.height,o),h=s<a,c=u<l;return e.x=h&&a>r?s:a,e.y=c&&l>o?u:l,e.width=h?0:s-a,e.height=c?0:u-l,n<0&&(e.x+=e.width,e.width=-e.width),i<0&&(e.y+=e.height,e.height=-e.height),h||c},polar:function(t,e){var n=e.r0<=e.r?1:-1;if(n<0){var i=e.r;e.r=e.r0,e.r0=i}var r=Db(e.r,t.r),o=Ab(e.r0,t.r0);e.r=r,e.r0=o;var a=r-o<0;if(n<0){i=e.r;e.r=e.r0,e.r0=i}return a}},Pb={cartesian2d:function(t,e,n,i,r,o,a,s,l){var u=new Xa({shape:M({},i),z2:1});(u.__dataIndex=n,u.name="item",o)&&(u.shape[r?"height":"width"]=0);return u},polar:function(t,e,n,i,r,o,a,s,l){var u=i.startAngle<i.endAngle,h=new(!r&&l?Mb:Ml)({shape:I({clockwise:u},i),z2:1});if(h.name="item",o){var c=r?"r":"endAngle",p={};h.shape[c]=r?0:i.startAngle,p[c]=i[c],(s?fu:gu)(h,{shape:p},o)}return h}};function Ob(t,e,n,i,r,o,a,s){var l,u;o?(u={x:i.x,width:i.width},l={y:i.y,height:i.height}):(u={y:i.y,height:i.height},l={x:i.x,width:i.width}),s||(a?fu:gu)(n,{shape:l},e,r,null),(a?fu:gu)(n,{shape:u},e?t.baseAxis.model:null,r)}var Rb={cartesian2d:function(t,e,n){var i=t.getItemLayout(e),r=n?function(t,e){var n=t.get(Ib)||0,i=isNaN(e.width)?Number.MAX_VALUE:Math.abs(e.width),r=isNaN(e.height)?Number.MAX_VALUE:Math.abs(e.height);return Math.min(n,i,r)}(n,i):0,o=i.width>0?1:-1,a=i.height>0?1:-1;return{x:i.x+o*r/2,y:i.y+a*r/2,width:i.width-o*r,height:i.height-a*r}},polar:function(t,e,n){var i=t.getItemLayout(e);return{cx:i.cx,cy:i.cy,r0:i.r0,r:i.r,startAngle:i.startAngle,endAngle:i.endAngle}}};function Nb(t,e,n,i,r,o,a,s){var l=e.getItemVisual(n,"style");s||t.setShape("r",i.get(Tb)||0),t.useStyle(l);var u=i.getShallow("cursor");if(u&&t.attr("cursor",u),!s){var h=a?r.height>0?"bottom":"top":r.width>0?"left":"right",c=Eu(i);Nu(t,c,{labelFetcher:o,labelDataIndex:n,defaultText:zx(o.getData(),n),inheritColor:l.fill,defaultOpacity:l.opacity,defaultOutsidePosition:h}),Xu(t.getTextContent(),c,o.getRawValue(n),(function(t){return Bx(e,t)}))}var p=i.getModel(["emphasis"]);Os(t,p.get("focus"),p.get("blurScope")),zs(t,i),function(t){return null!=t.startAngle&&null!=t.endAngle&&t.startAngle===t.endAngle}(r)&&(t.style.fill="none",t.style.stroke="none",k(t.states,(function(t){t.style&&(t.style.fill=t.style.stroke="none")})))}var Eb=function(){},zb=function(t){function n(e){var n=t.call(this,e)||this;return n.type="largeBar",n}return e(n,t),n.prototype.getDefaultShape=function(){return new Eb},n.prototype.buildPath=function(t,e){for(var n=e.points,i=this.__startPoint,r=this.__baseDimIdx,o=0;o<n.length;o+=2)i[r]=n[o+r],t.moveTo(i[0],i[1]),t.lineTo(n[o],n[o+1])},n}(Oa);function Bb(t,e,n){var i=t.getData(),r=[],o=i.getLayout("valueAxisHorizontal")?1:0;r[1-o]=i.getLayout("valueAxisStart");var a=i.getLayout("largeDataIndices"),s=i.getLayout("barWidth"),l=t.getModel("backgroundStyle");if(t.get("showBackground",!0)){var u=i.getLayout("largeBackgroundPoints"),h=[];h[1-o]=i.getLayout("backgroundStart");var c=new zb({shape:{points:u},incremental:!!n,silent:!0,z2:0});c.__startPoint=h,c.__baseDimIdx=o,c.__largeDataIndices=a,c.__barWidth=s,function(t,e,n){var i=e.get("borderColor")||e.get("color"),r=e.getItemStyle();t.useStyle(r),t.style.fill=null,t.style.stroke=i,t.style.lineWidth=n.getLayout("barWidth")}(c,l,i),e.add(c)}var p=new zb({shape:{points:i.getLayout("largePoints")},incremental:!!n});p.__startPoint=r,p.__baseDimIdx=o,p.__largeDataIndices=a,p.__barWidth=s,e.add(p),function(t,e,n){var i=n.getVisual("style");t.useStyle(M({},i)),t.style.fill=null,t.style.stroke=i.fill,t.style.lineWidth=n.getLayout("barWidth")}(p,0,i),ns(p).seriesIndex=t.seriesIndex,t.get("silent")||(p.on("mousedown",Vb),p.on("mousemove",Vb))}var Vb=Gd((function(t){var e=function(t,e,n){var i=t.__baseDimIdx,r=1-i,o=t.shape.points,a=t.__largeDataIndices,s=Math.abs(t.__barWidth/2),l=t.__startPoint[r];Cb[0]=e,Cb[1]=n;for(var u=Cb[i],h=Cb[1-i],c=u-s,p=u+s,d=0,f=o.length/2;d<f;d++){var g=2*d,y=o[g+i],v=o[g+r];if(y>=c&&y<=p&&(l<=v?h>=l&&h<=v:h>=v&&h<=l))return a[d]}return-1}(this,t.offsetX,t.offsetY);ns(this).dataIndex=e>=0?e:null}),30,!1);function Fb(t,e,n){if(sb(n,"cartesian2d")){var i=e,r=n.getArea();return{x:t?i.x:r.x,y:t?r.y:i.y,width:t?i.width:r.width,height:t?r.height:i.height}}var o=e;return{cx:(r=n.getArea()).cx,cy:r.cy,r0:t?r.r0:o.r0,r:t?r.r:o.r,startAngle:t?o.startAngle:0,endAngle:t?o.endAngle:2*Math.PI}}var Gb=2*Math.PI,Hb=Math.PI/180;function Wb(t,e,n){e.eachSeriesByType(t,(function(t){var e=t.getData(),i=e.mapDimension("value"),r=function(t,e){return tc(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}(t,n),o=t.get("center"),a=t.get("radius");V(a)||(a=[0,a]),V(o)||(o=[o,o]);var s=Vi(r.width,n.getWidth()),l=Vi(r.height,n.getHeight()),u=Math.min(s,l),h=Vi(o[0],s)+r.x,c=Vi(o[1],l)+r.y,p=Vi(a[0],u/2),d=Vi(a[1],u/2),f=-t.get("startAngle")*Hb,g=t.get("minAngle")*Hb,y=0;e.each(i,(function(t){!isNaN(t)&&y++}));var v=e.getSum(i),m=Math.PI/(v||y)*2,_=t.get("clockwise"),x=t.get("roseType"),b=t.get("stillShowZeroSum"),w=e.getDataExtent(i);w[0]=0;var S=Gb,M=0,I=f,T=_?1:-1;if(e.setLayout({viewRect:r,r:d}),e.each(i,(function(t,n){var i;if(isNaN(t))e.setItemLayout(n,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:_,cx:h,cy:c,r0:p,r:x?NaN:d});else{(i="area"!==x?0===v&&b?m:t*m:Gb/y)<g?(i=g,S-=g):M+=t;var r=I+T*i;e.setItemLayout(n,{angle:i,startAngle:I,endAngle:r,clockwise:_,cx:h,cy:c,r0:p,r:x?Bi(t,w,[p,d]):d}),I=r}})),S<Gb&&y)if(S<=.001){var C=Gb/y;e.each(i,(function(t,n){if(!isNaN(t)){var i=e.getItemLayout(n);i.angle=C,i.startAngle=f+T*n*C,i.endAngle=f+T*(n+1)*C}}))}else m=S/M,I=f,e.each(i,(function(t,n){if(!isNaN(t)){var i=e.getItemLayout(n),r=i.angle===g?g:t*m;i.startAngle=I,i.endAngle=I+T*r,I+=T*r}}))}))}function Yb(t){return{seriesType:t,reset:function(t,e){var n=e.findComponents({mainType:"legend"});if(n&&n.length){var i=t.getData();i.filterSelf((function(t){for(var e=i.getName(t),r=0;r<n.length;r++)if(!n[r].isSelected(e))return!1;return!0}))}}}}var Xb=Math.PI/180;function Ub(t,e,n,i,r,o,a,s,l,u){if(!(t.length<2)){for(var h=t.length,c=0;c<h;c++)if("outer"===t[c].position&&"labelLine"===t[c].labelAlignTo){var p=t[c].label.x-u;t[c].linePoints[1][0]+=p,t[c].label.x=u}tg(t,l,l+a)&&function(t){for(var o={list:[],maxY:0},a={list:[],maxY:0},s=0;s<t.length;s++)if("none"===t[s].labelAlignTo){var l=t[s],u=l.label.y>n?a:o,h=Math.abs(l.label.y-n);if(h>u.maxY){var c=l.label.x-e-l.len2*r,p=i+l.len,f=c<p?Math.sqrt(h*h/(1-c*c/p/p)):p;u.rB=f,u.maxY=h}u.list.push(l)}d(o),d(a)}(t)}function d(t){for(var o=t.rB,a=o*o,s=0;s<t.list.length;s++){var l=t.list[s],u=Math.abs(l.label.y-n),h=i+l.len,c=h*h,p=Math.sqrt((1-Math.abs(u*u/a))*c);l.label.x=e+(p+l.len2)*r}}}function Zb(t){return"center"===t.position}function jb(t){var e,n,i=t.getData(),r=[],o=!1,a=(t.get("minShowLabelAngle")||0)*Xb,s=i.getLayout("viewRect"),l=i.getLayout("r"),u=s.width,h=s.x,c=s.y,p=s.height;function d(t){t.ignore=!0}i.each((function(t){var s=i.getItemGraphicEl(t),c=s.shape,p=s.getTextContent(),f=s.getTextGuideLine(),g=i.getItemModel(t),y=g.getModel("label"),v=y.get("position")||g.get(["emphasis","label","position"]),m=y.get("distanceToLabelLine"),_=y.get("alignTo"),x=Vi(y.get("edgeDistance"),u),b=y.get("bleedMargin"),w=g.getModel("labelLine"),S=w.get("length");S=Vi(S,u);var M=w.get("length2");if(M=Vi(M,u),Math.abs(c.endAngle-c.startAngle)<a)return k(p.states,d),void(p.ignore=!0);if(function(t){if(!t.ignore)return!0;for(var e in t.states)if(!1===t.states[e].ignore)return!0;return!1}(p)){var I,T,C,A,D=(c.startAngle+c.endAngle)/2,L=Math.cos(D),P=Math.sin(D);e=c.cx,n=c.cy;var O,R="inside"===v||"inner"===v;if("center"===v)I=c.cx,T=c.cy,A="center";else{var N=(R?(c.r+c.r0)/2*L:c.r*L)+e,E=(R?(c.r+c.r0)/2*P:c.r*P)+n;if(I=N+3*L,T=E+3*P,!R){var z=N+L*(S+l-c.r),B=E+P*(S+l-c.r),V=z+(L<0?-1:1)*M;I="edge"===_?L<0?h+x:h+u-x:V+(L<0?-m:m),T=B,C=[[N,E],[z,B],[V,B]]}A=R?"center":"edge"===_?L>0?"right":"left":L>0?"left":"right"}var F=y.get("rotate");if(O="number"==typeof F?F*(Math.PI/180):F?L<0?-D+Math.PI:-D:0,o=!!O,p.x=I,p.y=T,p.rotation=O,p.setStyle({verticalAlign:"middle"}),R){p.setStyle({align:A});var G=p.states.select;G&&(G.x+=p.x,G.y+=p.y)}else{var H=p.getBoundingRect().clone();H.applyTransform(p.getComputedTransform());var W=(p.style.margin||0)+2.1;H.y-=W/2,H.height+=W,r.push({label:p,labelLine:f,position:v,len:S,len2:M,minTurnAngle:w.get("minTurnAngle"),maxSurfaceAngle:w.get("maxSurfaceAngle"),surfaceNormal:new bn(L,P),linePoints:C,textAlign:A,labelDistance:m,labelAlignTo:_,edgeDistance:x,bleedMargin:b,rect:H})}s.setTextConfig({inside:R})}})),!o&&t.get("avoidLabelOverlap")&&function(t,e,n,i,r,o,a,s){for(var l=[],u=[],h=Number.MAX_VALUE,c=-Number.MAX_VALUE,p=0;p<t.length;p++){var d=t[p].label;Zb(t[p])||(d.x<e?(h=Math.min(h,d.x),l.push(t[p])):(c=Math.max(c,d.x),u.push(t[p])))}for(Ub(u,e,n,i,1,0,o,0,s,c),Ub(l,e,n,i,-1,0,o,0,s,h),p=0;p<t.length;p++){var f=t[p];if(d=f.label,!Zb(f)){var g=f.linePoints;if(g){var y="edge"===f.labelAlignTo,v=f.rect.width,m=void 0;(m=y?d.x<e?g[2][0]-f.labelDistance-a-f.edgeDistance:a+r-f.edgeDistance-g[2][0]-f.labelDistance:d.x<e?d.x-a-f.bleedMargin:a+r-d.x-f.bleedMargin)<f.rect.width&&(f.label.style.width=m,"edge"===f.labelAlignTo&&(v=m));var _=g[1][0]-g[2][0];y?d.x<e?g[2][0]=a+f.edgeDistance+v+f.labelDistance:g[2][0]=a+r-f.edgeDistance-v-f.labelDistance:(d.x<e?g[2][0]=d.x+f.labelDistance:g[2][0]=d.x-f.labelDistance,g[1][0]=g[2][0]+_),g[1][1]=g[2][1]=d.y}}}}(r,e,n,l,u,p,h,c);for(var f=0;f<r.length;f++){var g=r[f],y=g.label,v=g.labelLine,m=isNaN(y.x)||isNaN(y.y);if(y){y.setStyle({align:g.textAlign}),m&&(k(y.states,d),y.ignore=!0);var _=y.states.select;_&&(_.x+=y.x,_.y+=y.y)}if(v){var x=g.linePoints;m||!x?(k(v.states,d),v.ignore=!0):(Zf(x,g.minTurnAngle),jf(x,g.surfaceNormal,g.maxSurfaceAngle),v.setShape({points:x}),y.__hostTarget.textGuideLineConfig={anchor:new bn(x[0][0],x[0][1])})}}}function qb(t,e){var n=t.get("borderRadius");return null==n?null:(V(n)||(n=[n,n]),{innerCornerRadius:Fn(n[0],e.r0),cornerRadius:Fn(n[1],e.r)})}var Kb=function(t){function i(e,n,i){var r=t.call(this)||this;r.z2=2;var o=new Pl,a=new ja;return r.setTextGuideLine(o),r.setTextContent(a),r.updateData(e,n,i,!0),r}return e(i,t),i.prototype.updateData=function(t,e,i,r){var o=this,a=t.hostModel,s=t.getItemModel(e),l=s.getModel("emphasis"),u=t.getItemLayout(e),h=M(qb(s.getModel("itemStyle"),u)||{},u);r?(o.setShape(h),"scale"===a.getShallow("animationType")?(o.shape.r=u.r0,gu(o,{shape:{r:u.r}},a,e)):null!=i?(o.setShape({startAngle:i,endAngle:i}),gu(o,{shape:{startAngle:u.startAngle,endAngle:u.endAngle}},a,e)):(o.shape.endAngle=u.startAngle,fu(o,{shape:{endAngle:u.endAngle}},a,e))):fu(o,{shape:h},a,e);o.useStyle(t.getItemVisual(e,"style")),zs(o,s);var c=(u.startAngle+u.endAngle)/2,p=a.get("selectedOffset"),d=Math.cos(c)*p,f=Math.sin(c)*p,g=s.getShallow("cursor");g&&o.attr("cursor",g),this._updateLabel(a,t,e),o.ensureState("emphasis").shape=n({r:u.r+(l.get("scale")&&l.get("scaleSize")||0)},qb(l.getModel("itemStyle"),u)),M(o.ensureState("select"),{x:d,y:f,shape:qb(s.getModel(["select","itemStyle"]),u)}),M(o.ensureState("blur"),{shape:qb(s.getModel(["blur","itemStyle"]),u)});var y=o.getTextGuideLine(),v=o.getTextContent();M(y.ensureState("select"),{x:d,y:f}),M(v.ensureState("select"),{x:d,y:f}),Os(this,l.get("focus"),l.get("blurScope"))},i.prototype._updateLabel=function(t,e,n){var i=this,r=e.getItemModel(n),o=r.getModel("labelLine"),a=e.getItemVisual(n,"style"),s=a&&a.fill,l=a&&a.opacity;Nu(i,Eu(r),{labelFetcher:e.hostModel,labelDataIndex:n,inheritColor:s,defaultOpacity:l,defaultText:t.getFormattedLabel(n,"normal")||e.getName(n)});var u=i.getTextContent();i.setTextConfig({position:null,rotation:null}),u.attr({z2:10}),$f(this,Jf(r),{stroke:s,opacity:tt(o.get(["lineStyle","opacity"]),l,1)})},i}(Ml),$b=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.ignoreLabelLineUpdate=!0,e}return e(n,t),n.prototype.init=function(){var t=new Li;this._sectorGroup=t},n.prototype.render=function(t,e,n,i){var r,o=t.getData(),a=this._data,s=this.group;if(!a&&o.count()>0){for(var l=o.getItemLayout(0),u=1;isNaN(l&&l.startAngle)&&u<o.count();++u)l=o.getItemLayout(u);l&&(r=l.startAngle)}o.diff(a).add((function(t){var e=new Kb(o,t,r);o.setItemGraphicEl(t,e),s.add(e)})).update((function(t,e){var n=a.getItemGraphicEl(e);n.updateData(o,t,r),n.off("click"),s.add(n),o.setItemGraphicEl(t,n)})).remove((function(e){mu(a.getItemGraphicEl(e),t,e)})).execute(),jb(t),"expansion"!==t.get("animationTypeUpdate")&&(this._data=o)},n.prototype.dispose=function(){},n.prototype.containPoint=function(t,e){var n=e.getData().getItemLayout(0);if(n){var i=t[0]-n.cx,r=t[1]-n.cy,o=Math.sqrt(i*i+r*r);return o<=n.r&&o>=n.r0}},n.type="pie",n}(Od);function Jb(t,e,n){e=V(e)&&{coordDimensions:e}||M({},e);var i=t.getSource(),r=em(i,e),o=new Jv(r,t);return o.initData(i,n),o}var Qb=function(){function t(t,e){this._getDataWithEncodedVisual=t,this._getRawData=e}return t.prototype.getAllNames=function(){var t=this._getRawData();return t.mapArray(t.getName)},t.prototype.containName=function(t){return this._getRawData().indexOfName(t)>=0},t.prototype.indexOfName=function(t){return this._getDataWithEncodedVisual().indexOfName(t)},t.prototype.getItemVisual=function(t,e){return this._getDataWithEncodedVisual().getItemVisual(t,e)},t}(),tw=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.useColorPaletteOnData=!0,e}return e(n,t),n.prototype.init=function(e){t.prototype.init.apply(this,arguments),this.legendVisualProvider=new Qb(z(this.getData,this),z(this.getRawData,this)),this._defaultLabelLine(e)},n.prototype.mergeOption=function(){t.prototype.mergeOption.apply(this,arguments)},n.prototype.getInitialData=function(){return Jb(this,{coordDimensions:["value"],encodeDefaulter:B(vc,this)})},n.prototype.getDataParams=function(e){var n=this.getData(),i=t.prototype.getDataParams.call(this,e),r=[];return n.each(n.mapDimension("value"),(function(t){r.push(t)})),i.percent=Xi(r,e,n.hostModel.get("percentPrecision")),i.$vars.push("percent"),i},n.prototype._defaultLabelLine=function(t){ur(t,"labelLine",["show"]);var e=t.labelLine,n=t.emphasis.labelLine;e.show=e.show&&t.label.show,n.show=n.show&&t.emphasis.label.show},n.type="series.pie",n.defaultOption={zlevel:0,z:2,legendHoverLink:!0,center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,minShowLabelAngle:0,selectedOffset:10,percentPrecision:2,stillShowZeroSum:!0,left:0,top:0,right:0,bottom:0,width:null,height:null,label:{rotate:0,show:!0,overflow:"truncate",position:"outer",alignTo:"none",edgeDistance:"25%",bleedMargin:10,distanceToLabelLine:5},labelLine:{show:!0,length:15,length2:15,smooth:!1,minTurnAngle:90,maxSurfaceAngle:90,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1},labelLayout:{hideOverlap:!0},emphasis:{scale:!0,scaleSize:5},avoidLabelOverlap:!0,animationType:"expansion",animationDuration:1e3,animationTypeUpdate:"transition",animationEasingUpdate:"cubicInOut",animationDurationUpdate:500,animationEasing:"cubicInOut"},n}(bd);var ew=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.hasSymbolVisual=!0,e}return e(n,t),n.prototype.getInitialData=function(t,e){return lm(this.getSource(),this,{useEncodeDefaulter:!0})},n.prototype.getProgressive=function(){var t=this.option.progressive;return null==t?this.option.large?5e3:this.get("progressive"):t},n.prototype.getProgressiveThreshold=function(){var t=this.option.progressiveThreshold;return null==t?this.option.large?1e4:this.get("progressiveThreshold"):t},n.prototype.brushSelector=function(t,e,n){return n.point(e.getItemLayout(t))},n.type="series.scatter",n.dependencies=["grid","polar","geo","singleAxis","calendar"],n.defaultOption={coordinateSystem:"cartesian2d",zlevel:0,z:2,legendHoverLink:!0,symbolSize:10,large:!1,largeThreshold:2e3,itemStyle:{opacity:.8},emphasis:{scale:!0},clip:!0,select:{itemStyle:{borderColor:"#212121"}}},n}(bd),nw=function(){},iw=function(t){function n(e){return t.call(this,e)||this}return e(n,t),n.prototype.getDefaultShape=function(){return new nw},n.prototype.buildPath=function(t,e){var n=e.points,i=e.size,r=this.symbolProxy,o=r.shape,a=t.getContext?t.getContext():t;if(a&&i[0]<4)this._ctx=a;else{this._ctx=null;for(var s=0;s<n.length;){var l=n[s++],u=n[s++];isNaN(l)||isNaN(u)||(this.softClipShape&&!this.softClipShape.contain(l,u)||(o.x=l-i[0]/2,o.y=u-i[1]/2,o.width=i[0],o.height=i[1],r.buildPath(t,o,!0)))}}},n.prototype.afterBrush=function(){var t=this.shape,e=t.points,n=t.size,i=this._ctx;if(i)for(var r=0;r<e.length;){var o=e[r++],a=e[r++];isNaN(o)||isNaN(a)||(this.softClipShape&&!this.softClipShape.contain(o,a)||i.fillRect(o-n[0]/2,a-n[1]/2,n[0],n[1]))}},n.prototype.findDataIndex=function(t,e){for(var n=this.shape,i=n.points,r=n.size,o=Math.max(r[0],4),a=Math.max(r[1],4),s=i.length/2-1;s>=0;s--){var l=2*s,u=i[l]-o/2,h=i[l+1]-a/2;if(t>=u&&e>=h&&t<=u+o&&e<=h+a)return s}return-1},n}(Oa),rw=function(){function t(){this.group=new Li}return t.prototype.isPersistent=function(){return!this._incremental},t.prototype.updateData=function(t,e){this.group.removeAll();var n=new iw({rectHover:!0,cursor:"default"});n.setShape({points:t.getLayout("points")}),this._setCommon(n,t,!1,e),this.group.add(n),this._incremental=null},t.prototype.updateLayout=function(t){if(!this._incremental){var e=t.getLayout("points");this.group.eachChild((function(t){if(null!=t.startIndex){var n=2*(t.endIndex-t.startIndex),i=4*t.startIndex*2;e=new Float32Array(e.buffer,i,n)}t.setShape("points",e)}))}},t.prototype.incrementalPrepareUpdate=function(t){this.group.removeAll(),this._clearIncremental(),t.count()>2e6?(this._incremental||(this._incremental=new Jl({silent:!0})),this.group.add(this._incremental)):this._incremental=null},t.prototype.incrementalUpdate=function(t,e,n){var i;this._incremental?(i=new iw,this._incremental.addDisplayable(i,!0)):((i=new iw({rectHover:!0,cursor:"default",startIndex:t.start,endIndex:t.end})).incremental=!0,this.group.add(i)),i.setShape({points:e.getLayout("points")}),this._setCommon(i,e,!!this._incremental,n)},t.prototype._setCommon=function(t,e,n,i){var r=e.hostModel;i=i||{};var o=e.getVisual("symbolSize");t.setShape("size",o instanceof Array?o:[o,o]),t.softClipShape=i.clipShape||null,t.symbolProxy=Sg(e.getVisual("symbol"),0,0,0,0),t.setColor=t.symbolProxy.setColor;var a=t.shape.size[0]<4;t.useStyle(r.getModel("itemStyle").getItemStyle(a?["color","shadowBlur","shadowColor"]:["color"]));var s=e.getVisual("style"),l=s&&s.fill;if(l&&t.setColor(l),!n){var u=ns(t);u.seriesIndex=r.seriesIndex,t.on("mousemove",(function(e){u.dataIndex=null;var n=t.findDataIndex(e.offsetX,e.offsetY);n>=0&&(u.dataIndex=n+(t.startIndex||0))}))}},t.prototype.remove=function(){this._clearIncremental(),this._incremental=null,this.group.removeAll()},t.prototype._clearIncremental=function(){var t=this._incremental;t&&t.clearDisplaybles()},t}(),ow=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n){var i=t.getData();this._updateSymbolDraw(i,t).updateData(i,{clipShape:this._getClipShape(t)}),this._finished=!0},n.prototype.incrementalPrepareRender=function(t,e,n){var i=t.getData();this._updateSymbolDraw(i,t).incrementalPrepareUpdate(i),this._finished=!1},n.prototype.incrementalRender=function(t,e,n){this._symbolDraw.incrementalUpdate(t,e.getData(),{clipShape:this._getClipShape(e)}),this._finished=t.end===e.getData().count()},n.prototype.updateTransform=function(t,e,n){var i=t.getData();if(this.group.dirty(),!this._finished||i.count()>1e4||!this._symbolDraw.isPersistent())return{update:!0};var r=vb("").reset(t,e,n);r.progress&&r.progress({start:0,end:i.count(),count:i.count()},i),this._symbolDraw.updateLayout(i)},n.prototype._getClipShape=function(t){var e=t.coordinateSystem,n=e&&e.getArea&&e.getArea();return t.get("clip",!0)?n:null},n.prototype._updateSymbolDraw=function(t,e){var n=this._symbolDraw,i=e.pipelineContext.large;return n&&i===this._isLargeDraw||(n&&n.remove(),n=this._symbolDraw=i?new rw:new Yx,this._isLargeDraw=i,this.group.removeAll()),this.group.add(n.group),n},n.prototype.remove=function(t,e){this._symbolDraw&&this._symbolDraw.remove(!0),this._symbolDraw=null},n.prototype.dispose=function(){},n.type="scatter",n}(Od),aw=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.type="grid",n.dependencies=["xAxis","yAxis"],n.layoutMode="box",n.defaultOption={show:!1,zlevel:0,z:0,left:"10%",top:60,right:"10%",bottom:70,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"},n}(sc),sw=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.getCoordSysModel=function(){return this.getReferringComponents("grid",wr).models[0]},n.type="cartesian2dAxis",n}(sc);D(sw,d_);var lw={show:!0,zlevel:0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#6E7079",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,lineStyle:{color:["#E0E6F1"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}}},uw=w({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},lw),hw=w({boundaryGap:[0,0],axisLine:{show:"auto"},axisTick:{show:"auto"},splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:"#F4F7FD",width:1}}},lw),cw={category:uw,value:hw,time:w({scale:!0,splitNumber:6,axisLabel:{showMinLabel:!1,showMaxLabel:!1,rich:{primary:{fontWeight:"bold"}}},splitLine:{show:!1}},hw),log:I({scale:!0,logBase:10},hw)},pw={value:1,category:1,time:1,log:1};function dw(t,n,i,r){k(pw,(function(o,a){var s=w(w({},cw[a],!0),r,!0),l=function(t){function i(){for(var e=[],i=0;i<arguments.length;i++)e[i]=arguments[i];var r=t.apply(this,e)||this;return r.type=n+"Axis."+a,r}return e(i,t),i.prototype.mergeDefaultAndTheme=function(t,e){var n=nc(this),i=n?rc(t):{};w(t,e.getTheme().get(a+"Axis")),w(t,this.getDefaultOption()),t.type=fw(t),n&&ic(t,i,n)},i.prototype.optionUpdated=function(){"category"===this.option.type&&(this.__ordinalMeta=hm.createByAxisModel(this))},i.prototype.getCategories=function(t){var e=this.option;if("category"===e.type)return t?e.data:this.__ordinalMeta.categories},i.prototype.getOrdinalMeta=function(){return this.__ordinalMeta},i.type=n+"Axis."+a,i.defaultOption=s,i}(i);t.registerComponentModel(l)})),t.registerSubTypeDefaulter(n+"Axis",fw)}function fw(t){return t.type||(t.data?"category":"value")}var gw=function(){function t(t){this.type="cartesian",this._dimList=[],this._axes={},this.name=t||""}return t.prototype.getAxis=function(t){return this._axes[t]},t.prototype.getAxes=function(){return P(this._dimList,(function(t){return this._axes[t]}),this)},t.prototype.getAxesByScale=function(t){return t=t.toLowerCase(),R(this.getAxes(),(function(e){return e.scale.type===t}))},t.prototype.addAxis=function(t){var e=t.dim;this._axes[e]=t,this._dimList.push(e)},t}(),yw=["x","y"];function vw(t){return"interval"===t.type||"time"===t.type}var mw=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="cartesian2d",e.dimensions=yw,e}return e(n,t),n.prototype.calcAffineTransform=function(){this._transform=this._invTransform=null;var t=this.getAxis("x").scale,e=this.getAxis("y").scale;if(vw(t)&&vw(e)){var n=t.getExtent(),i=e.getExtent(),r=this.dataToPoint([n[0],i[0]]),o=this.dataToPoint([n[1],i[1]]),a=n[1]-n[0],s=i[1]-i[0];if(a&&s){var l=(o[0]-r[0])/a,u=(o[1]-r[1])/s,h=r[0]-n[0]*l,c=r[1]-i[0]*u,p=this._transform=[l,0,0,u,h,c];this._invTransform=me([],p)}}},n.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAxis("x")},n.prototype.containPoint=function(t){var e=this.getAxis("x"),n=this.getAxis("y");return e.contain(e.toLocalCoord(t[0]))&&n.contain(n.toLocalCoord(t[1]))},n.prototype.containData=function(t){return this.getAxis("x").containData(t[0])&&this.getAxis("y").containData(t[1])},n.prototype.dataToPoint=function(t,e,n){n=n||[];var i=t[0],r=t[1];if(this._transform&&null!=i&&isFinite(i)&&null!=r&&isFinite(r))return Pt(n,t,this._transform);var o=this.getAxis("x"),a=this.getAxis("y");return n[0]=o.toGlobalCoord(o.dataToCoord(i)),n[1]=a.toGlobalCoord(a.dataToCoord(r)),n},n.prototype.clampData=function(t,e){var n=this.getAxis("x").scale,i=this.getAxis("y").scale,r=n.getExtent(),o=i.getExtent(),a=n.parse(t[0]),s=i.parse(t[1]);return(e=e||[])[0]=Math.min(Math.max(Math.min(r[0],r[1]),a),Math.max(r[0],r[1])),e[1]=Math.min(Math.max(Math.min(o[0],o[1]),s),Math.max(o[0],o[1])),e},n.prototype.pointToData=function(t,e){if(e=e||[],this._invTransform)return Pt(e,t,this._invTransform);var n=this.getAxis("x"),i=this.getAxis("y");return e[0]=n.coordToData(n.toLocalCoord(t[0])),e[1]=i.coordToData(i.toLocalCoord(t[1])),e},n.prototype.getOtherAxis=function(t){return this.getAxis("x"===t.dim?"y":"x")},n.prototype.getArea=function(){var t=this.getAxis("x").getGlobalExtent(),e=this.getAxis("y").getGlobalExtent(),n=Math.min(t[0],t[1]),i=Math.min(e[0],e[1]),r=Math.max(t[0],t[1])-n,o=Math.max(e[0],e[1])-i;return new Ln(n,i,r,o)},n}(gw),_w=function(t){function n(e,n,i,r,o){var a=t.call(this,e,n,i)||this;return a.index=0,a.type=r||"value",a.position=o||"bottom",a}return e(n,t),n.prototype.isHorizontal=function(){var t=this.position;return"top"===t||"bottom"===t},n.prototype.getGlobalExtent=function(t){var e=this.getExtent();return e[0]=this.toGlobalCoord(e[0]),e[1]=this.toGlobalCoord(e[1]),t&&e[0]>e[1]&&e.reverse(),e},n.prototype.pointToData=function(t,e){return this.coordToData(this.toLocalCoord(t["x"===this.dim?0:1]),e)},n.prototype.setCategorySortInfo=function(t){if("category"!==this.type)return!1;this.model.option.categorySortInfo=t,this.scale.setSortInfo(t)},n}(E_);function xw(t,e,n){n=n||{};var i=t.coordinateSystem,r=e.axis,o={},a=r.getAxesOnZeroOf()[0],s=r.position,l=a?"onZero":s,u=r.dim,h=i.getRect(),c=[h.x,h.x+h.width,h.y,h.y+h.height],p={left:0,right:1,top:0,bottom:1,onZero:2},d=e.get("offset")||0,f="x"===u?[c[2]-d,c[3]+d]:[c[0]-d,c[1]+d];if(a){var g=a.toGlobalCoord(a.dataToCoord(0));f[p.onZero]=Math.max(Math.min(g,f[1]),f[0])}o.position=["y"===u?f[p[l]]:c[0],"x"===u?f[p[l]]:c[3]],o.rotation=Math.PI/2*("x"===u?0:1);o.labelDirection=o.tickDirection=o.nameDirection={top:-1,bottom:1,left:-1,right:1}[s],o.labelOffset=a?f[p[s]]-f[p.onZero]:0,e.get(["axisTick","inside"])&&(o.tickDirection=-o.tickDirection),J(n.labelInside,e.get(["axisLabel","inside"]))&&(o.labelDirection=-o.labelDirection);var y=e.get(["axisLabel","rotate"]);return o.labelRotate="top"===l?-y:y,o.z2=1,o}function bw(t){return"cartesian2d"===t.get("coordinateSystem")}function ww(t){var e={xAxisModel:null,yAxisModel:null};return k(e,(function(n,i){var r=i.replace(/Model$/,""),o=t.getReferringComponents(r,wr).models[0];e[i]=o})),e}var Sw=function(){function t(t,e,n){this.type="grid",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=yw,this._initCartesian(t,e,n),this.model=t}return t.prototype.getRect=function(){return this._rect},t.prototype.update=function(t,e){var n=this._axesMap;this._updateScale(t,this.model),k(n.x,(function(t){o_(t.scale,t.model)})),k(n.y,(function(t){o_(t.scale,t.model)}));var i={};k(n.x,(function(t){Iw(n,"y",t,i)})),k(n.y,(function(t){Iw(n,"x",t,i)})),this.resize(this.model,e)},t.prototype.resize=function(t,e,n){var i=t.getBoxLayoutParams(),r=!n&&t.get("containLabel"),o=tc(i,{width:e.getWidth(),height:e.getHeight()});this._rect=o;var a=this._axesList;function s(){k(a,(function(t){var e=t.isHorizontal(),n=e?[0,o.width]:[0,o.height],i=t.inverse?1:0;t.setExtent(n[i],n[1-i]),function(t,e){var n=t.getExtent(),i=n[0]+n[1];t.toGlobalCoord="x"===t.dim?function(t){return t+e}:function(t){return i-t+e},t.toLocalCoord="x"===t.dim?function(t){return t-e}:function(t){return i-t+e}}(t,e?o.x:o.y)}))}s(),r&&(k(a,(function(t){if(!t.model.get(["axisLabel","inside"])){var e=function(t){var e=t.model,n=t.scale;if(e.get(["axisLabel","show"])&&!n.isBlank()){var i,r,o=n.getExtent();r=n instanceof _m?n.count():(i=n.getTicks()).length;var a,s=t.getLabelModel(),l=s_(t),u=1;r>40&&(u=Math.ceil(r/40));for(var h=0;h<r;h+=u){var c=l(i?i[h]:{value:o[0]+h},h),p=u_(s.getTextRect(c),s.get("rotate")||0);a?a.union(p):a=p}return a}}(t);if(e){var n=t.isHorizontal()?"height":"width",i=t.model.get(["axisLabel","margin"]);o[n]-=e[n]+i,"top"===t.position?o.y+=e.height+i:"left"===t.position&&(o.x+=e.width+i)}}})),s()),k(this._coordsList,(function(t){t.calcAffineTransform()}))},t.prototype.getAxis=function(t,e){var n=this._axesMap[t];if(null!=n)return n[e||0]},t.prototype.getAxes=function(){return this._axesList.slice()},t.prototype.getCartesian=function(t,e){if(null!=t&&null!=e){var n="x"+t+"y"+e;return this._coordsMap[n]}Y(t)&&(e=t.yAxisIndex,t=t.xAxisIndex);for(var i=0,r=this._coordsList;i<r.length;i++)if(r[i].getAxis("x").index===t||r[i].getAxis("y").index===e)return r[i]},t.prototype.getCartesians=function(){return this._coordsList.slice()},t.prototype.convertToPixel=function(t,e,n){var i=this._findConvertTarget(e);return i.cartesian?i.cartesian.dataToPoint(n):i.axis?i.axis.toGlobalCoord(i.axis.dataToCoord(n)):null},t.prototype.convertFromPixel=function(t,e,n){var i=this._findConvertTarget(e);return i.cartesian?i.cartesian.pointToData(n):i.axis?i.axis.coordToData(i.axis.toLocalCoord(n)):null},t.prototype._findConvertTarget=function(t){var e,n,i=t.seriesModel,r=t.xAxisModel||i&&i.getReferringComponents("xAxis",wr).models[0],o=t.yAxisModel||i&&i.getReferringComponents("yAxis",wr).models[0],a=t.gridModel,s=this._coordsList;if(i)C(s,e=i.coordinateSystem)<0&&(e=null);else if(r&&o)e=this.getCartesian(r.componentIndex,o.componentIndex);else if(r)n=this.getAxis("x",r.componentIndex);else if(o)n=this.getAxis("y",o.componentIndex);else if(a){a.coordinateSystem===this&&(e=this._coordsList[0])}return{cartesian:e,axis:n}},t.prototype.containPoint=function(t){var e=this._coordsList[0];if(e)return e.containPoint(t)},t.prototype._initCartesian=function(t,e,n){var i=this,r=this,o={left:!1,right:!1,top:!1,bottom:!1},a={x:{},y:{}},s={x:0,y:0};if(e.eachComponent("xAxis",l("x"),this),e.eachComponent("yAxis",l("y"),this),!s.x||!s.y)return this._axesMap={},void(this._axesList=[]);function l(e){return function(n,i){if(Mw(n,t)){var l=n.get("position");"x"===e?"top"!==l&&"bottom"!==l&&(l=o.bottom?"top":"bottom"):"left"!==l&&"right"!==l&&(l=o.left?"right":"left"),o[l]=!0;var u=new _w(e,a_(n),[0,0],n.get("type"),l),h="category"===u.type;u.onBand=h&&n.get("boundaryGap"),u.inverse=n.get("inverse"),n.axis=u,u.model=n,u.grid=r,u.index=i,r._axesList.push(u),a[e][i]=u,s[e]++}}}this._axesMap=a,k(a.x,(function(e,n){k(a.y,(function(r,o){var a="x"+n+"y"+o,s=new mw(a);s.master=i,s.model=t,i._coordsMap[a]=s,i._coordsList.push(s),s.addAxis(e),s.addAxis(r)}))}))},t.prototype._updateScale=function(t,e){function n(t,e){k(p_(t,e.dim),(function(n){e.scale.unionExtentFromData(t,n)}))}k(this._axesList,(function(t){if(t.scale.setExtent(1/0,-1/0),"category"===t.type){var e=t.model.get("categorySortInfo");t.scale.setSortInfo(e)}})),t.eachSeries((function(t){if(bw(t)){var i=ww(t),r=i.xAxisModel,o=i.yAxisModel;if(!Mw(r,e)||!Mw(o,e))return;var a=this.getCartesian(r.componentIndex,o.componentIndex),s=t.getData(),l=a.getAxis("x"),u=a.getAxis("y");"list"===s.type&&(n(s,l),n(s,u))}}),this)},t.prototype.getTooltipAxes=function(t){var e=[],n=[];return k(this.getCartesians(),(function(i){var r=null!=t&&"auto"!==t?i.getAxis(t):i.getBaseAxis(),o=i.getOtherAxis(r);C(e,r)<0&&e.push(r),C(n,o)<0&&n.push(o)})),{baseAxes:e,otherAxes:n}},t.create=function(e,n){var i=[];return e.eachComponent("grid",(function(r,o){var a=new t(r,e,n);a.name="grid_"+o,a.resize(r,n,!0),r.coordinateSystem=a,i.push(a)})),e.eachSeries((function(t){if(bw(t)){var e=ww(t),n=e.xAxisModel,i=e.yAxisModel,r=n.getCoordSysModel();0;var o=r.coordinateSystem;t.coordinateSystem=o.getCartesian(n.componentIndex,i.componentIndex)}})),i},t.dimensions=yw,t}();function Mw(t,e){return t.getCoordSysModel()===e}function Iw(t,e,n,i){n.getAxesOnZeroOf=function(){return r?[r]:[]};var r,o=t[e],a=n.model,s=a.get(["axisLine","onZero"]),l=a.get(["axisLine","onZeroAxisIndex"]);if(s){if(null!=l)Tw(o[l])&&(r=o[l]);else for(var u in o)if(o.hasOwnProperty(u)&&Tw(o[u])&&!i[h(o[u])]){r=o[u];break}r&&(i[h(r)]=!0)}function h(t){return t.dim+"_"+t.index}}function Tw(t){return t&&"category"!==t.type&&"time"!==t.type&&function(t){var e=t.scale.getExtent(),n=e[0],i=e[1];return!(n>0&&i>0||n<0&&i<0)}(t)}var Cw=Math.PI,Aw=function(){function t(t,e){this.group=new Li,this.opt=e,this.axisModel=t,I(e,{labelOffset:0,nameDirection:1,tickDirection:1,labelDirection:1,silent:!0,handleAutoShown:function(){return!0}});var n=new Li({x:e.position[0],y:e.position[1],rotation:e.rotation});n.updateTransform(),this._transformGroup=n}return t.prototype.hasBuilder=function(t){return!!Dw[t]},t.prototype.add=function(t){Dw[t](this.opt,this.axisModel,this.group,this._transformGroup)},t.prototype.getGroup=function(){return this.group},t.innerTextLayout=function(t,e,n){var i,r,o=Ui(e-t);return Zi(o)?(r=n>0?"top":"bottom",i="center"):Zi(o-Cw)?(r=n>0?"bottom":"top",i="center"):(r="middle",i=o>0&&o<Cw?n>0?"right":"left":n>0?"left":"right"),{rotation:o,textAlign:i,textVerticalAlign:r}},t.makeAxisEventDataBase=function(t){var e={componentType:t.mainType,componentIndex:t.componentIndex};return e[t.mainType+"Index"]=t.componentIndex,e},t.isLabelSilent=function(t){var e=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||e&&e.show)},t}(),Dw={axisLine:function(t,e,n,i){var r=e.get(["axisLine","show"]);if("auto"===r&&t.handleAutoShown&&(r=t.handleAutoShown("axisLine")),r){var o=e.axis.getExtent(),a=i.transform,s=[o[0],0],l=[o[1],0];a&&(Pt(s,s,a),Pt(l,l,a));var u=M({lineCap:"round"},e.getModel(["axisLine","lineStyle"]).getLineStyle()),h=new Nl({subPixelOptimize:!0,shape:{x1:s[0],y1:s[1],x2:l[0],y2:l[1]},style:u,strokeContainThreshold:t.strokeContainThreshold||5,silent:!0,z2:1});h.anid="line",n.add(h);var c=e.get(["axisLine","symbol"]),p=e.get(["axisLine","symbolSize"]),d=e.get(["axisLine","symbolOffset"])||0;if("number"==typeof d&&(d=[d,d]),null!=c){"string"==typeof c&&(c=[c,c]),"string"!=typeof p&&"number"!=typeof p||(p=[p,p]);var f=p[0],g=p[1];k([{rotate:t.rotation+Math.PI/2,offset:d[0],r:0},{rotate:t.rotation-Math.PI/2,offset:d[1],r:Math.sqrt((s[0]-l[0])*(s[0]-l[0])+(s[1]-l[1])*(s[1]-l[1]))}],(function(e,i){if("none"!==c[i]&&null!=c[i]){var r=Sg(c[i],-f/2,-g/2,f,g,u.stroke,!0),o=e.r+e.offset;r.attr({rotation:e.rotate,x:s[0]+o*Math.cos(t.rotation),y:s[1]-o*Math.sin(t.rotation),silent:!0,z2:11}),n.add(r)}}))}}},axisTickLabel:function(t,e,n,i){var r=function(t,e,n,i){var r=n.axis,o=n.getModel("axisTick"),a=o.get("show");"auto"===a&&i.handleAutoShown&&(a=i.handleAutoShown("axisTick"));if(!a||r.scale.isBlank())return;for(var s=o.getModel("lineStyle"),l=i.tickDirection*o.get("length"),u=Ow(r.getTicksCoords(),e.transform,l,I(s.getLineStyle(),{stroke:n.get(["axisLine","lineStyle","color"])}),"ticks"),h=0;h<u.length;h++)t.add(u[h]);return u}(n,i,e,t),o=function(t,e,n,i){var r=n.axis;if(!J(i.axisLabelShow,n.get(["axisLabel","show"]))||r.scale.isBlank())return;var o=n.getModel("axisLabel"),a=o.get("margin"),s=r.getViewLabels(),l=(J(i.labelRotate,o.get("rotate"))||0)*Cw/180,u=Aw.innerTextLayout(i.rotation,l,i.labelDirection),h=n.getCategories&&n.getCategories(!0),c=[],p=Aw.isLabelSilent(n),d=n.get("triggerEvent");return k(s,(function(s,l){var f="ordinal"===r.scale.type?r.scale.getRawOrdinalNumber(s.tickValue):s.tickValue,g=s.formattedLabel,y=s.rawLabel,v=o;if(h&&h[f]){var m=h[f];Y(m)&&m.textStyle&&(v=new rh(m.textStyle,o,n.ecModel))}var _=v.getTextColor()||n.get(["axisLine","lineStyle","color"]),x=r.dataToCoord(f),b=new ja({x:x,y:i.labelOffset+i.labelDirection*a,rotation:u.rotation,silent:p,z2:10,style:zu(v,{text:g,align:v.getShallow("align",!0)||u.textAlign,verticalAlign:v.getShallow("verticalAlign",!0)||v.getShallow("baseline",!0)||u.textVerticalAlign,fill:"function"==typeof _?_("category"===r.type?y:"value"===r.type?f+"":f,l):_})});if(b.anid="label_"+f,d){var w=Aw.makeAxisEventDataBase(n);w.targetType="axisLabel",w.value=y,ns(b).eventData=w}e.add(b),b.updateTransform(),c.push(b),t.add(b),b.decomposeTransform()})),c}(n,i,e,t);!function(t,e,n){if(c_(t.axis))return;var i=t.get(["axisLabel","showMinLabel"]),r=t.get(["axisLabel","showMaxLabel"]);n=n||[];var o=(e=e||[])[0],a=e[1],s=e[e.length-1],l=e[e.length-2],u=n[0],h=n[1],c=n[n.length-1],p=n[n.length-2];!1===i?(Lw(o),Lw(u)):kw(o,a)&&(i?(Lw(a),Lw(h)):(Lw(o),Lw(u)));!1===r?(Lw(s),Lw(c)):kw(l,s)&&(r?(Lw(l),Lw(p)):(Lw(s),Lw(c)))}(e,o,r),function(t,e,n,i){var r=n.axis,o=n.getModel("minorTick");if(!o.get("show")||r.scale.isBlank())return;var a=r.getMinorTicksCoords();if(!a.length)return;for(var s=o.getModel("lineStyle"),l=i*o.get("length"),u=I(s.getLineStyle(),I(n.getModel("axisTick").getLineStyle(),{stroke:n.get(["axisLine","lineStyle","color"])})),h=0;h<a.length;h++)for(var c=Ow(a[h],e.transform,l,u,"minorticks_"+h),p=0;p<c.length;p++)t.add(c[p])}(n,i,e,t.tickDirection)},axisName:function(t,e,n,i){var r=J(t.axisName,e.get("name"));if(r){var o,a,s=e.get("nameLocation"),l=t.nameDirection,u=e.getModel("nameTextStyle"),h=e.get("nameGap")||0,c=e.axis.getExtent(),p=c[0]>c[1]?-1:1,d=["start"===s?c[0]-p*h:"end"===s?c[1]+p*h:(c[0]+c[1])/2,Pw(s)?t.labelOffset+l*h:0],f=e.get("nameRotate");null!=f&&(f=f*Cw/180),Pw(s)?o=Aw.innerTextLayout(t.rotation,null!=f?f:t.rotation,l):(o=function(t,e,n,i){var r,o,a=Ui(n-t),s=i[0]>i[1],l="start"===e&&!s||"start"!==e&&s;Zi(a-Cw/2)?(o=l?"bottom":"top",r="center"):Zi(a-1.5*Cw)?(o=l?"top":"bottom",r="center"):(o="middle",r=a<1.5*Cw&&a>Cw/2?l?"left":"right":l?"right":"left");return{rotation:a,textAlign:r,textVerticalAlign:o}}(t.rotation,s,f||0,c),null!=(a=t.axisNameAvailableWidth)&&(a=Math.abs(a/Math.sin(o.rotation)),!isFinite(a)&&(a=null)));var g=u.getFont(),y=e.get("nameTruncate",!0)||{},v=y.ellipsis,m=J(t.nameTruncateMaxWidth,y.maxWidth,a),_=e.get("tooltip",!0),x=e.mainType,b={componentType:x,name:r,$vars:["name"]};b[x+"Index"]=e.componentIndex;var w=new ja({x:d[0],y:d[1],rotation:o.rotation,silent:Aw.isLabelSilent(e),style:zu(u,{text:r,font:g,overflow:"truncate",width:m,ellipsis:v,fill:u.getTextColor()||e.get(["axisLine","lineStyle","color"]),align:u.get("align")||o.textAlign,verticalAlign:u.get("verticalAlign")||o.textVerticalAlign}),z2:1});if(w.tooltip=_&&_.show?M({content:r,formatter:function(){return r},formatterParams:b},_):null,w.__fullText=r,w.anid="name",e.get("triggerEvent")){var S=Aw.makeAxisEventDataBase(e);S.targetType="axisName",S.name=r,ns(w).eventData=S}i.add(w),w.updateTransform(),n.add(w),w.decomposeTransform()}}};function Lw(t){t&&(t.ignore=!0)}function kw(t,e){var n=t&&t.getBoundingRect().clone(),i=e&&e.getBoundingRect().clone();if(n&&i){var r=pe([]);return ye(r,r,-t.rotation),n.applyTransform(fe([],r,t.getLocalTransform())),i.applyTransform(fe([],r,e.getLocalTransform())),n.intersect(i)}}function Pw(t){return"middle"===t||"center"===t}function Ow(t,e,n,i,r){for(var o=[],a=[],s=[],l=0;l<t.length;l++){var u=t[l].coord;a[0]=u,a[1]=0,s[0]=u,s[1]=n,e&&(Pt(a,a,e),Pt(s,s,e));var h=new Nl({subPixelOptimize:!0,shape:{x1:a[0],y1:a[1],x2:s[0],y2:s[1]},style:i,z2:2,autoBatch:!0,silent:!0});h.anid=r+"_"+t[l].tickValue,o.push(h)}return o}function Rw(t,e){var n={axesInfo:{},seriesInvolved:!1,coordSysAxesInfo:{},coordSysMap:{}};return function(t,e,n){var i=e.getComponent("tooltip"),r=e.getComponent("axisPointer"),o=r.get("link",!0)||[],a=[];k(n.getCoordinateSystems(),(function(n){if(n.axisPointerEnabled){var s=Vw(n.model),l=t.coordSysAxesInfo[s]={};t.coordSysMap[s]=n;var u=n.model.getModel("tooltip",i);if(k(n.getAxes(),B(d,!1,null)),n.getTooltipAxes&&i&&u.get("show")){var h="axis"===u.get("trigger"),c="cross"===u.get(["axisPointer","type"]),p=n.getTooltipAxes(u.get(["axisPointer","axis"]));(h||c)&&k(p.baseAxes,B(d,!c||"cross",h)),c&&k(p.otherAxes,B(d,"cross",!1))}}function d(i,s,h){var c=h.model.getModel("axisPointer",r),p=c.get("show");if(p&&("auto"!==p||i||Bw(c))){null==s&&(s=c.get("triggerTooltip"));var d=(c=i?function(t,e,n,i,r,o){var a=e.getModel("axisPointer"),s={};k(["type","snap","lineStyle","shadowStyle","label","animation","animationDurationUpdate","animationEasingUpdate","z"],(function(t){s[t]=b(a.get(t))})),s.snap="category"!==t.type&&!!o,"cross"===a.get("type")&&(s.type="line");var l=s.label||(s.label={});if(null==l.show&&(l.show=!1),"cross"===r){var u=a.get(["label","show"]);if(l.show=null==u||u,!o){var h=s.lineStyle=a.get("crossStyle");h&&I(l,h.textStyle)}}return t.model.getModel("axisPointer",new rh(s,n,i))}(h,u,r,e,i,s):c).get("snap"),f=Vw(h.model),g=s||d||"category"===h.type,y=t.axesInfo[f]={key:f,axis:h,coordSys:n,axisPointerModel:c,triggerTooltip:s,involveSeries:g,snap:d,useHandle:Bw(c),seriesModels:[],linkGroup:null};l[f]=y,t.seriesInvolved=t.seriesInvolved||g;var v=function(t,e){for(var n=e.model,i=e.dim,r=0;r<t.length;r++){var o=t[r]||{};if(Nw(o[i+"AxisId"],n.id)||Nw(o[i+"AxisIndex"],n.componentIndex)||Nw(o[i+"AxisName"],n.name))return r}}(o,h);if(null!=v){var m=a[v]||(a[v]={axesInfo:{}});m.axesInfo[f]=y,m.mapper=o[v].mapper,y.linkGroup=m}}}}))}(n,t,e),n.seriesInvolved&&function(t,e){e.eachSeries((function(e){var n=e.coordinateSystem,i=e.get(["tooltip","trigger"],!0),r=e.get(["tooltip","show"],!0);n&&"none"!==i&&!1!==i&&"item"!==i&&!1!==r&&!1!==e.get(["axisPointer","show"],!0)&&k(t.coordSysAxesInfo[Vw(n.model)],(function(t){var i=t.axis;n.getAxis(i.dim)===i&&(t.seriesModels.push(e),null==t.seriesDataCount&&(t.seriesDataCount=0),t.seriesDataCount+=e.getData().count())}))}))}(n,t),n}function Nw(t,e){return"all"===t||V(t)&&C(t,e)>=0||t===e}function Ew(t){var e=zw(t);if(e){var n=e.axisPointerModel,i=e.axis.scale,r=n.option,o=n.get("status"),a=n.get("value");null!=a&&(a=i.parse(a));var s=Bw(n);null==o&&(r.status=s?"show":"hide");var l=i.getExtent().slice();l[0]>l[1]&&l.reverse(),(null==a||a>l[1])&&(a=l[1]),a<l[0]&&(a=l[0]),r.value=a,s&&(r.status=e.axis.scale.isBlank()?"hide":"show")}}function zw(t){var e=(t.ecModel.getComponent("axisPointer")||{}).coordSysAxesInfo;return e&&e.axesInfo[Vw(t)]}function Bw(t){return!!t.get(["handle","show"])}function Vw(t){return t.type+"||"+t.id}var Fw={},Gw=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(e,n,i,r){this.axisPointerClass&&Ew(e),t.prototype.render.apply(this,arguments),this._doUpdateAxisPointerClass(e,i,!0)},n.prototype.updateAxisPointer=function(t,e,n,i){this._doUpdateAxisPointerClass(t,n,!1)},n.prototype.remove=function(t,e){var n=this._axisPointer;n&&n.remove(e)},n.prototype.dispose=function(e,n){this._disposeAxisPointer(n),t.prototype.dispose.apply(this,arguments)},n.prototype._doUpdateAxisPointerClass=function(t,e,i){var r=n.getAxisPointerClass(this.axisPointerClass);if(r){var o=function(t){var e=zw(t);return e&&e.axisPointerModel}(t);o?(this._axisPointer||(this._axisPointer=new r)).render(t,o,e,i):this._disposeAxisPointer(e)}},n.prototype._disposeAxisPointer=function(t){this._axisPointer&&this._axisPointer.dispose(t),this._axisPointer=null},n.registerAxisPointerClass=function(t,e){Fw[t]=e},n.getAxisPointerClass=function(t){return t&&Fw[t]},n.type="axis",n}(Dd),Hw=_r();function Ww(t,e,n,i){var r=n.axis;if(!r.scale.isBlank()){var o=n.getModel("splitArea"),a=o.getModel("areaStyle"),s=a.get("color"),l=i.coordinateSystem.getRect(),u=r.getTicksCoords({tickModel:o,clamp:!0});if(u.length){var h=s.length,c=Hw(t).splitAreaColors,p=lt(),d=0;if(c)for(var f=0;f<u.length;f++){var g=c.get(u[f].tickValue);if(null!=g){d=(g+(h-1)*f)%h;break}}var y=r.toGlobalCoord(u[0].coord),v=a.getAreaStyle();s=V(s)?s:[s];for(f=1;f<u.length;f++){var m=r.toGlobalCoord(u[f].coord),_=void 0,x=void 0,b=void 0,w=void 0;r.isHorizontal()?(_=y,x=l.y,b=m-_,w=l.height,y=_+b):(_=l.x,x=y,b=l.width,y=x+(w=m-x));var S=u[f-1].tickValue;null!=S&&p.set(S,d),e.add(new Xa({anid:null!=S?"area_"+S:null,shape:{x:_,y:x,width:b,height:w},style:I({fill:s[d]},v),autoBatch:!0,silent:!0})),d=(d+1)%h}Hw(t).splitAreaColors=p}}}function Yw(t){Hw(t).splitAreaColors=null}var Xw=["axisLine","axisTickLabel","axisName"],Uw=["splitArea","splitLine","minorSplitLine"],Zw=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.axisPointerClass="CartesianAxisPointer",e}return e(n,t),n.prototype.render=function(e,n,i,r){this.group.removeAll();var o=this._axisGroup;if(this._axisGroup=new Li,this.group.add(this._axisGroup),e.get("show")){var a=e.getCoordSysModel(),s=xw(a,e),l=new Aw(e,M({handleAutoShown:function(t){for(var n=a.coordinateSystem.getCartesians(),i=0;i<n.length;i++){var r=n[i].getOtherAxis(e.axis).type;if("value"===r||"log"===r)return!0}return!1}},s));k(Xw,l.add,l),this._axisGroup.add(l.getGroup()),k(Uw,(function(t){e.get([t,"show"])&&jw[t](this,this._axisGroup,e,a)}),this),Mu(o,this._axisGroup,e),t.prototype.render.call(this,e,n,i,r)}},n.prototype.remove=function(){Yw(this)},n.type="cartesianAxis",n}(Gw),jw={splitLine:function(t,e,n,i){var r=n.axis;if(!r.scale.isBlank()){var o=n.getModel("splitLine"),a=o.getModel("lineStyle"),s=a.get("color");s=V(s)?s:[s];for(var l=i.coordinateSystem.getRect(),u=r.isHorizontal(),h=0,c=r.getTicksCoords({tickModel:o}),p=[],d=[],f=a.getLineStyle(),g=0;g<c.length;g++){var y=r.toGlobalCoord(c[g].coord);u?(p[0]=y,p[1]=l.y,d[0]=y,d[1]=l.y+l.height):(p[0]=l.x,p[1]=y,d[0]=l.x+l.width,d[1]=y);var v=h++%s.length,m=c[g].tickValue;e.add(new Nl({anid:null!=m?"line_"+c[g].tickValue:null,subPixelOptimize:!0,autoBatch:!0,shape:{x1:p[0],y1:p[1],x2:d[0],y2:d[1]},style:I({stroke:s[v]},f),silent:!0}))}}},minorSplitLine:function(t,e,n,i){var r=n.axis,o=n.getModel("minorSplitLine").getModel("lineStyle"),a=i.coordinateSystem.getRect(),s=r.isHorizontal(),l=r.getMinorTicksCoords();if(l.length)for(var u=[],h=[],c=o.getLineStyle(),p=0;p<l.length;p++)for(var d=0;d<l[p].length;d++){var f=r.toGlobalCoord(l[p][d].coord);s?(u[0]=f,u[1]=a.y,h[0]=f,h[1]=a.y+a.height):(u[0]=a.x,u[1]=f,h[0]=a.x+a.width,h[1]=f),e.add(new Nl({anid:"minor_line_"+l[p][d].tickValue,subPixelOptimize:!0,autoBatch:!0,shape:{x1:u[0],y1:u[1],x2:h[0],y2:h[1]},style:c,silent:!0}))}},splitArea:function(t,e,n,i){Ww(t,e,n,i)}},qw=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.type="xAxis",n}(Zw),Kw=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=qw.type,e}return e(n,t),n.type="yAxis",n}(Zw),$w=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="grid",e}return e(n,t),n.prototype.render=function(t,e){this.group.removeAll(),t.get("show")&&this.group.add(new Xa({shape:t.coordinateSystem.getRect(),style:I({fill:t.get("backgroundColor")},t.getItemStyle()),silent:!0,z2:-1}))},n.type="grid",n}(Dd),Jw={offset:0};function Qw(t){t.registerComponentView($w),t.registerComponentModel(aw),t.registerCoordinateSystem("cartesian2d",Sw),dw(t,"x",sw,Jw),dw(t,"y",sw,Jw),t.registerComponentView(qw),t.registerComponentView(Kw),t.registerPreprocessor((function(t){t.xAxis&&t.yAxis&&!t.grid&&(t.grid={})}))}function tS(t){t.eachSeriesByType("radar",(function(t){var e=t.getData(),n=[],i=t.coordinateSystem;if(i){var r=i.getIndicatorAxes();k(r,(function(t,o){e.each(e.mapDimension(r[o].dim),(function(t,e){n[e]=n[e]||[];var r=i.dataToPoint(t,o);n[e][o]=eS(r)?r:nS(i)}))})),e.each((function(t){var r=N(n[t],(function(t){return eS(t)}))||nS(i);n[t].push(r.slice()),e.setItemLayout(t,n[t])}))}}))}function eS(t){return!isNaN(t[0])&&!isNaN(t[1])}function nS(t){return[t.cx,t.cy]}function iS(t){var e=t.polar;if(e){V(e)||(e=[e]);var n=[];k(e,(function(e,i){e.indicator?(e.type&&!e.shape&&(e.shape=e.type),t.radar=t.radar||[],V(t.radar)||(t.radar=[t.radar]),t.radar.push(e)):n.push(e)})),t.polar=n}k(t.series,(function(t){t&&"radar"===t.type&&t.polarIndex&&(t.radarIndex=t.polarIndex)}))}var rS=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n){var i=t.coordinateSystem,r=this.group,o=t.getData(),a=this._data;function s(t,e){var n=t.getItemVisual(e,"symbol")||"circle";if("none"!==n){var i=function(t){return V(t)||(t=[+t,+t]),t}(t.getItemVisual(e,"symbolSize")),r=Sg(n,-1,-1,2,2),o=t.getItemVisual(e,"symbolRotate")||0;return r.attr({style:{strokeNoScale:!0},z2:100,scaleX:i[0]/2,scaleY:i[1]/2,rotation:o*Math.PI/180||0}),r}}function l(e,n,i,r,o,a){i.removeAll();for(var l=0;l<n.length-1;l++){var u=s(r,o);u&&(u.__dimIdx=l,e[l]?(u.setPosition(e[l]),ku[a?"initProps":"updateProps"](u,{x:n[l][0],y:n[l][1]},t,o)):u.setPosition(n[l]),i.add(u))}}function u(t){return P(t,(function(t){return[i.cx,i.cy]}))}o.diff(a).add((function(e){var n=o.getItemLayout(e);if(n){var i=new Ll,r=new Pl,a={shape:{points:n}};i.shape.points=u(n),r.shape.points=u(n),gu(i,a,t,e),gu(r,a,t,e);var s=new Li,h=new Li;s.add(r),s.add(i),s.add(h),l(r.shape.points,n,h,o,e,!0),o.setItemGraphicEl(e,s)}})).update((function(e,n){var i=a.getItemGraphicEl(n),r=i.childAt(0),s=i.childAt(1),u=i.childAt(2),h={shape:{points:o.getItemLayout(e)}};h.shape.points&&(l(r.shape.points,h.shape.points,u,o,e,!1),fu(r,h,t),fu(s,h,t),o.setItemGraphicEl(e,i))})).remove((function(t){r.remove(a.getItemGraphicEl(t))})).execute(),o.eachItemGraphicEl((function(t,e){var n=o.getItemModel(e),i=t.childAt(0),a=t.childAt(1),s=t.childAt(2),l=o.getItemVisual(e,"style"),u=l.fill;r.add(t),i.useStyle(I(n.getModel("lineStyle").getLineStyle(),{fill:"none",stroke:u})),zs(i,n,"lineStyle"),zs(a,n,"areaStyle");var h=n.getModel("areaStyle"),c=h.isEmpty()&&h.parentModel.isEmpty();a.ignore=c,k(["emphasis","select","blur"],(function(t){var e=n.getModel([t,"areaStyle"]),i=e.isEmpty()&&e.parentModel.isEmpty();a.ensureState(t).ignore=i&&c})),a.useStyle(I(h.getAreaStyle(),{fill:u,opacity:.7,decal:l.decal}));var p=n.getModel("emphasis"),d=p.getModel("itemStyle").getItemStyle();s.eachChild((function(t){if(t instanceof Ba){var i=t.style;t.useStyle(M({image:i.image,x:i.x,y:i.y,width:i.width,height:i.height},l))}else t.useStyle(l),t.setColor(u);t.ensureState("emphasis").style=b(d);var r=o.get(o.dimensions[t.__dimIdx],e);(null==r||isNaN(r))&&(r=""),Nu(t,Eu(n),{labelFetcher:o.hostModel,labelDataIndex:e,labelDimIndex:t.__dimIdx,defaultText:r,inheritColor:u,defaultOpacity:l.opacity})})),Os(t,p.get("focus"),p.get("blurScope"))})),this._data=o},n.prototype.remove=function(){this.group.removeAll(),this._data=null},n.type="radar",n}(Od),oS=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.useColorPaletteOnData=!0,e.hasSymbolVisual=!0,e}return e(n,t),n.prototype.init=function(e){t.prototype.init.apply(this,arguments),this.legendVisualProvider=new Qb(z(this.getData,this),z(this.getRawData,this))},n.prototype.getInitialData=function(t,e){return Jb(this,{generateCoord:"indicator_",generateCoordCount:1/0})},n.prototype.formatTooltip=function(t,e,n){var i=this.getData(),r=this.coordinateSystem.getIndicatorAxes(),o=this.getData().getName(t),a=""===o?this.name:o,s=gd(this,t);return ld("section",{header:a,sortBlocks:!0,blocks:P(r,(function(e){var n=i.get(i.mapDimension(e.dim),t);return ld("nameValue",{markerType:"subItem",markerColor:s,name:e.name,value:n,sortParam:n})}))})},n.prototype.getTooltipPosition=function(t){if(null!=t)for(var e=this.getData(),n=this.coordinateSystem,i=e.getValues(P(n.dimensions,(function(t){return e.mapDimension(t)})),t),r=0,o=i.length;r<o;r++)if(!isNaN(i[r])){var a=n.getIndicatorAxes();return n.coordToPoint(a[r].dataToCoord(i[r]),r)}},n.type="series.radar",n.dependencies=["radar"],n.defaultOption={zlevel:0,z:2,coordinateSystem:"radar",legendHoverLink:!0,radarIndex:0,lineStyle:{width:2,type:"solid"},label:{position:"top"},symbol:"emptyCircle",symbolSize:4},n}(bd),aS=cw.value;function sS(t,e){return I({show:e},t)}var lS=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.optionUpdated=function(){var t=this.get("boundaryGap"),e=this.get("splitNumber"),n=this.get("scale"),i=this.get("axisLine"),r=this.get("axisTick"),o=this.get("axisLabel"),a=this.get("axisName"),s=this.get(["axisName","show"]),l=this.get(["axisName","formatter"]),u=this.get("axisNameGap"),h=this.get("triggerEvent"),c=P(this.get("indicator")||[],(function(c){null!=c.max&&c.max>0&&!c.min?c.min=0:null!=c.min&&c.min<0&&!c.max&&(c.max=0);var p=a;null!=c.color&&(p=I({color:c.color},a));var d=w(b(c),{boundaryGap:t,splitNumber:e,scale:n,axisLine:i,axisTick:r,axisLabel:o,name:c.text,nameLocation:"end",nameGap:u,nameTextStyle:p,triggerEvent:h},!1);if(s||(d.name=""),"string"==typeof l){var f=d.name;d.name=l.replace("{value}",null!=f?f:"")}else"function"==typeof l&&(d.name=l(d.name,d));var g=new rh(d,null,this.ecModel);return D(g,d_.prototype),g.mainType="radar",g.componentIndex=this.componentIndex,g}),this);this._indicatorModels=c},n.prototype.getIndicatorModels=function(){return this._indicatorModels},n.type="radar",n.defaultOption={zlevel:0,z:0,center:["50%","50%"],radius:"75%",startAngle:90,axisName:{show:!0},boundaryGap:[0,0],splitNumber:5,axisNameGap:15,scale:!1,shape:"polygon",axisLine:w({lineStyle:{color:"#bbb"}},aS.axisLine),axisLabel:sS(aS.axisLabel,!1),axisTick:sS(aS.axisTick,!1),splitLine:sS(aS.splitLine,!0),splitArea:sS(aS.splitArea,!0),indicator:[]},n}(sc),uS=["axisLine","axisTickLabel","axisName"],hS=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n){this.group.removeAll(),this._buildAxes(t),this._buildSplitLineAndArea(t)},n.prototype._buildAxes=function(t){var e=t.coordinateSystem;k(P(e.getIndicatorAxes(),(function(t){return new Aw(t.model,{position:[e.cx,e.cy],rotation:t.angle,labelDirection:-1,tickDirection:-1,nameDirection:1})})),(function(t){k(uS,t.add,t),this.group.add(t.getGroup())}),this)},n.prototype._buildSplitLineAndArea=function(t){var e=t.coordinateSystem,n=e.getIndicatorAxes();if(n.length){var i=t.get("shape"),r=t.getModel("splitLine"),o=t.getModel("splitArea"),a=r.getModel("lineStyle"),s=o.getModel("areaStyle"),l=r.get("show"),u=o.get("show"),h=a.get("color"),c=s.get("color"),p=V(h)?h:[h],d=V(c)?c:[c],f=[],g=[];if("circle"===i)for(var y=n[0].getTicksCoords(),v=e.cx,m=e.cy,_=0;_<y.length;_++){if(l)f[A(f,p,_)].push(new sl({shape:{cx:v,cy:m,r:y[_].coord}}));if(u&&_<y.length-1)g[A(g,d,_)].push(new Tl({shape:{cx:v,cy:m,r0:y[_].coord,r:y[_+1].coord}}))}else{var x,b=P(n,(function(t,n){var i=t.getTicksCoords();return x=null==x?i.length-1:Math.min(i.length-1,x),P(i,(function(t){return e.coordToPoint(t.coord,n)}))})),w=[];for(_=0;_<=x;_++){for(var S=[],M=0;M<n.length;M++)S.push(b[M][_]);if(S[0]&&S.push(S[0].slice()),l)f[A(f,p,_)].push(new Pl({shape:{points:S}}));if(u&&w)g[A(g,d,_-1)].push(new Ll({shape:{points:S.concat(w)}}));w=S.slice().reverse()}}var T=a.getLineStyle(),C=s.getAreaStyle();k(g,(function(t,e){this.group.add(hu(t,{style:I({stroke:"none",fill:d[e%d.length]},C),silent:!0}))}),this),k(f,(function(t,e){this.group.add(hu(t,{style:I({fill:"none",stroke:p[e%p.length]},T),silent:!0}))}),this)}function A(t,e,n){var i=n%e.length;return t[i]=t[i]||[],i}},n.type="radar",n}(Dd),cS=function(t){function n(e,n,i){var r=t.call(this,e,n,i)||this;return r.type="value",r.angle=0,r.name="",r}return e(n,t),n}(E_),pS=function(){function t(t,e,n){this.dimensions=[],this._model=t,this._indicatorAxes=P(t.getIndicatorModels(),(function(t,e){var n="indicator_"+e,i=new cS(n,new bm);return i.name=t.get("name"),i.model=t,t.axis=i,this.dimensions.push(n),i}),this),this.resize(t,n)}return t.prototype.getIndicatorAxes=function(){return this._indicatorAxes},t.prototype.dataToPoint=function(t,e){var n=this._indicatorAxes[e];return this.coordToPoint(n.dataToCoord(t),e)},t.prototype.coordToPoint=function(t,e){var n=this._indicatorAxes[e].angle;return[this.cx+t*Math.cos(n),this.cy-t*Math.sin(n)]},t.prototype.pointToData=function(t){var e=t[0]-this.cx,n=t[1]-this.cy,i=Math.sqrt(e*e+n*n);e/=i,n/=i;for(var r,o=Math.atan2(-n,e),a=1/0,s=-1,l=0;l<this._indicatorAxes.length;l++){var u=this._indicatorAxes[l],h=Math.abs(o-u.angle);h<a&&(r=u,s=l,a=h)}return[s,+(r&&r.coordToData(i))]},t.prototype.resize=function(t,e){var n=t.get("center"),i=e.getWidth(),r=e.getHeight(),o=Math.min(i,r)/2;this.cx=Vi(n[0],i),this.cy=Vi(n[1],r),this.startAngle=t.get("startAngle")*Math.PI/180;var a=t.get("radius");"string"!=typeof a&&"number"!=typeof a||(a=[0,a]),this.r0=Vi(a[0],o),this.r=Vi(a[1],o),k(this._indicatorAxes,(function(t,e){t.setExtent(this.r0,this.r);var n=this.startAngle+e*Math.PI*2/this._indicatorAxes.length;n=Math.atan2(Math.sin(n),Math.cos(n)),t.angle=n}),this)},t.prototype.update=function(t,e){var n=this._indicatorAxes,i=this._model;k(n,(function(t){t.scale.setExtent(1/0,-1/0)})),t.eachSeriesByType("radar",(function(e,r){if("radar"===e.get("coordinateSystem")&&t.getComponent("radar",e.get("radarIndex"))===i){var o=e.getData();k(n,(function(t){t.scale.unionExtentFromData(o,o.mapDimension(t.dim))}))}}),this);var r=i.get("splitNumber");function o(t){var e=Math.pow(10,Math.floor(Math.log(t)/Math.LN10)),n=t/e;return 2===n?n=5:n*=2,n*e}k(n,(function(t,e){var n=r_(t.scale,t.model).extent;o_(t.scale,t.model);var i=t.model,a=t.scale,s=i_(a,i.get("min",!0)),l=i_(a,i.get("max",!0)),u=a.getInterval();if(null!=s&&null!=l)a.setExtent(+s,+l),a.setInterval((l-s)/r);else if(null!=s){var h=void 0;do{h=s+u*r,a.setExtent(+s,h),a.setInterval(u),u=o(u)}while(h<n[1]&&isFinite(h)&&isFinite(n[1]))}else if(null!=l){var c=void 0;do{c=l-u*r,a.setExtent(c,+l),a.setInterval(u),u=o(u)}while(c>n[0]&&isFinite(c)&&isFinite(n[0]))}else{a.getTicks().length-1>r&&(u=o(u));c=Fi((h=Math.ceil(n[1]/u)*u)-u*r);a.setExtent(c,h),a.setInterval(u)}}))},t.prototype.convertToPixel=function(t,e,n){return console.warn("Not implemented."),null},t.prototype.convertFromPixel=function(t,e,n){return console.warn("Not implemented."),null},t.prototype.containPoint=function(t){return console.warn("Not implemented."),!1},t.create=function(e,n){var i=[];return e.eachComponent("radar",(function(r){var o=new t(r,e,n);i.push(o),r.coordinateSystem=o})),e.eachSeriesByType("radar",(function(t){"radar"===t.get("coordinateSystem")&&(t.coordinateSystem=i[t.get("radarIndex")||0])})),i},t.dimensions=[],t}();function dS(t){t.registerCoordinateSystem("radar",pS),t.registerComponentModel(lS),t.registerComponentView(hS)}var fS="\0_ec_interaction_mutex";function gS(t,e){return!!yS(t)[e]}function yS(t){return t[fS]||(t[fS]={})}sv({type:"takeGlobalCursor",event:"globalCursorTaken",update:"update"},(function(){}));var vS=function(t){function n(e){var n=t.call(this)||this;n._zr=e;var i=z(n._mousedownHandler,n),r=z(n._mousemoveHandler,n),o=z(n._mouseupHandler,n),a=z(n._mousewheelHandler,n),s=z(n._pinchHandler,n);return n.enable=function(t,n){this.disable(),this._opt=I(b(n)||{},{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),null==t&&(t=!0),!0!==t&&"move"!==t&&"pan"!==t||(e.on("mousedown",i),e.on("mousemove",r),e.on("mouseup",o)),!0!==t&&"scale"!==t&&"zoom"!==t||(e.on("mousewheel",a),e.on("pinch",s))},n.disable=function(){e.off("mousedown",i),e.off("mousemove",r),e.off("mouseup",o),e.off("mousewheel",a),e.off("pinch",s)},n}return e(n,t),n.prototype.isDragging=function(){return this._dragging},n.prototype.isPinching=function(){return this._pinching},n.prototype.setPointerChecker=function(t){this.pointerChecker=t},n.prototype.dispose=function(){this.disable()},n.prototype._mousedownHandler=function(t){if(!(te(t)||t.target&&t.target.draggable)){var e=t.offsetX,n=t.offsetY;this.pointerChecker&&this.pointerChecker(t,e,n)&&(this._x=e,this._y=n,this._dragging=!0)}},n.prototype._mousemoveHandler=function(t){if(this._dragging&&xS("moveOnMouseMove",t,this._opt)&&"pinch"!==t.gestureEvent&&!gS(this._zr,"globalPan")){var e=t.offsetX,n=t.offsetY,i=this._x,r=this._y,o=e-i,a=n-r;this._x=e,this._y=n,this._opt.preventDefaultMouseMove&&Qt(t.event),_S(this,"pan","moveOnMouseMove",t,{dx:o,dy:a,oldX:i,oldY:r,newX:e,newY:n,isAvailableBehavior:null})}},n.prototype._mouseupHandler=function(t){te(t)||(this._dragging=!1)},n.prototype._mousewheelHandler=function(t){var e=xS("zoomOnMouseWheel",t,this._opt),n=xS("moveOnMouseWheel",t,this._opt),i=t.wheelDelta,r=Math.abs(i),o=t.offsetX,a=t.offsetY;if(0!==i&&(e||n)){if(e){var s=r>3?1.4:r>1?1.2:1.1;mS(this,"zoom","zoomOnMouseWheel",t,{scale:i>0?s:1/s,originX:o,originY:a,isAvailableBehavior:null})}if(n){var l=Math.abs(i);mS(this,"scrollMove","moveOnMouseWheel",t,{scrollDelta:(i>0?1:-1)*(l>3?.4:l>1?.15:.05),originX:o,originY:a,isAvailableBehavior:null})}}},n.prototype._pinchHandler=function(t){gS(this._zr,"globalPan")||mS(this,"zoom",null,t,{scale:t.pinchScale>1?1.1:1/1.1,originX:t.pinchX,originY:t.pinchY,isAvailableBehavior:null})},n}(Bt);function mS(t,e,n,i,r){t.pointerChecker&&t.pointerChecker(i,r.originX,r.originY)&&(Qt(i.event),_S(t,e,n,i,r))}function _S(t,e,n,i,r){r.isAvailableBehavior=z(xS,null,n,i),t.trigger(e,r)}function xS(t,e,n){var i=n[t];return!t||i&&(!G(i)||e.event[i+"Key"])}function bS(t,e,n){var i=t.target;i.x+=e,i.y+=n,i.dirty()}function wS(t,e,n,i){var r=t.target,o=t.zoomLimit,a=t.zoom=t.zoom||1;if(a*=e,o){var s=o.min||0,l=o.max||1/0;a=Math.max(Math.min(l,a),s)}var u=a/t.zoom;t.zoom=a,r.x-=(n-r.x)*(u-1),r.y-=(i-r.y)*(u-1),r.scaleX*=u,r.scaleY*=u,r.dirty()}var SS={axisPointer:1,tooltip:1,brush:1};function MS(t,e,n){var i=e.getComponentByElement(t.topTarget),r=i&&i.coordinateSystem;return i&&i!==n&&!SS.hasOwnProperty(i.mainType)&&r&&r.model!==n}for(var IS=[126,25],TS=[[[0,3.5],[7,11.2],[15,11.9],[30,7],[42,.7],[52,.7],[56,7.7],[59,.7],[64,.7],[64,0],[5,0],[0,3.5]],[[13,16.1],[19,14.7],[16,21.7],[11,23.1],[13,16.1]],[[12,32.2],[14,38.5],[15,38.5],[13,32.2],[12,32.2]],[[16,47.6],[12,53.2],[13,53.2],[18,47.6],[16,47.6]],[[6,64.4],[8,70],[9,70],[8,64.4],[6,64.4]],[[23,82.6],[29,79.8],[30,79.8],[25,82.6],[23,82.6]],[[37,70.7],[43,62.3],[44,62.3],[39,70.7],[37,70.7]],[[48,51.1],[51,45.5],[53,45.5],[50,51.1],[48,51.1]],[[51,35],[51,28.7],[53,28.7],[53,35],[51,35]],[[52,22.4],[55,17.5],[56,17.5],[53,22.4],[52,22.4]],[[58,12.6],[62,7],[63,7],[60,12.6],[58,12.6]],[[0,3.5],[0,93.1],[64,93.1],[64,0],[63,0],[63,92.4],[1,92.4],[1,3.5],[0,3.5]]],CS=0;CS<TS.length;CS++)for(var AS=0;AS<TS[CS].length;AS++)TS[CS][AS][0]/=10.5,TS[CS][AS][1]/=-14,TS[CS][AS][0]+=IS[0],TS[CS][AS][1]+=IS[1];var DS={"南海诸岛":[32,80],"广东":[0,-10],"香港":[10,5],"澳门":[-10,10],"天津":[5,5]};var LS={Russia:[100,60],"United States":[-99,38],"United States of America":[-99,38]};var kS=[[[123.45165252685547,25.73527164402261],[123.49731445312499,25.73527164402261],[123.49731445312499,25.750734064600884],[123.45165252685547,25.750734064600884],[123.45165252685547,25.73527164402261]]];var PS=_r(),OS={load:function(t,e,n){var i=PS(e).parsed;if(i)return i;var r,o=e.specialAreas||{},a=e.geoJSON;try{r=a?x_(a,n):[]}catch(t){throw new Error("Invalid geoJson format\n"+t.message)}return function(t,e){"china"===t&&e.push(new m_("南海诸岛",P(TS,(function(t){return{type:"polygon",exterior:t}})),IS))}(t,r),k(r,(function(e){var n=e.name;!function(t,e){if("china"===t){var n=DS[e.name];if(n){var i=e.center;i[0]+=n[0]/10.5,i[1]+=-n[1]/14}}}(t,e),function(t,e){if("world"===t){var n=LS[e.name];if(n){var i=e.center;i[0]=n[0],i[1]=n[1]}}}(t,e),function(t,e){"china"===t&&"台湾"===e.name&&e.geometries.push({type:"polygon",exterior:kS[0]})}(t,e);var i=o[n];i&&e.transformTo(i.left,i.top,i.width,i.height)})),PS(e).parsed={regions:r,boundingRect:RS(r)}}};function RS(t){for(var e,n=0;n<t.length;n++){var i=t[n].getBoundingRect();(e=e||i.clone()).union(i)}return e}var NS,ES=/[\s,]+/,zS=function(){function t(){this._defs={},this._root=null,this._isDefine=!1,this._isText=!1}return t.prototype.parse=function(t,e){e=e||{};var n=_f(t);if(!n)throw new Error("Illegal svg");var i=new Li;this._root=i;var r=n.getAttribute("viewBox")||"",o=parseFloat(n.getAttribute("width")||e.width),a=parseFloat(n.getAttribute("height")||e.height);isNaN(o)&&(o=null),isNaN(a)&&(a=null),HS(n,i,null,!0);for(var s,l,u=n.firstChild;u;)this._parseNode(u,i),u=u.nextSibling;if(r){var h=rt(r).split(ES);h.length>=4&&(s={x:parseFloat(h[0]||0),y:parseFloat(h[1]||0),width:parseFloat(h[2]),height:parseFloat(h[3])})}if(s&&null!=o&&null!=a&&(l=ZS(s,o,a),!e.ignoreViewBox)){var c=i;(i=new Li).add(c),c.scaleX=c.scaleY=l.scale,c.x=l.x,c.y=l.y}return e.ignoreRootClip||null==o||null==a||i.setClipPath(new Xa({shape:{x:0,y:0,width:o,height:a}})),{root:i,width:o,height:a,viewBoxRect:s,viewBoxTransform:l}},t.prototype._parseNode=function(t,e){var n,i,r=t.nodeName.toLowerCase();if("defs"===r?this._isDefine=!0:"text"===r&&(this._isText=!0),this._isDefine){if(i=BS[r]){var o=i.call(this,t),a=t.getAttribute("id");a&&(this._defs[a]=o)}}else(i=NS[r])&&(n=i.call(this,t,e),e.add(n));if(n)for(var s=t.firstChild;s;)1===s.nodeType&&this._parseNode(s,n),3===s.nodeType&&this._isText&&this._parseText(s,n),s=s.nextSibling;"defs"===r?this._isDefine=!1:"text"===r&&(this._isText=!1)},t.prototype._parseText=function(t,e){if(1===t.nodeType){var n=t.getAttribute("dx")||0,i=t.getAttribute("dy")||0;this._textX+=parseFloat(n),this._textY+=parseFloat(i)}var r=new Na({style:{text:t.textContent},x:this._textX||0,y:this._textY||0});VS(e,r),HS(t,r,this._defs);var o=r.style,a=o.fontSize;a&&a<9&&(o.fontSize=9,r.scaleX*=a/9,r.scaleY*=a/9);var s=(o.fontSize||o.fontFamily)&&[o.fontStyle,o.fontWeight,(o.fontSize||12)+"px",o.fontFamily||"sans-serif"].join(" ");o.font=s;var l=r.getBoundingRect();return this._textX+=l.width,e.add(r),r},t.internalField=void(NS={g:function(t,e){var n=new Li;return VS(e,n),HS(t,n,this._defs),n},rect:function(t,e){var n=new Xa;return VS(e,n),HS(t,n,this._defs),n.setShape({x:parseFloat(t.getAttribute("x")||"0"),y:parseFloat(t.getAttribute("y")||"0"),width:parseFloat(t.getAttribute("width")||"0"),height:parseFloat(t.getAttribute("height")||"0")}),n},circle:function(t,e){var n=new sl;return VS(e,n),HS(t,n,this._defs),n.setShape({cx:parseFloat(t.getAttribute("cx")||"0"),cy:parseFloat(t.getAttribute("cy")||"0"),r:parseFloat(t.getAttribute("r")||"0")}),n},line:function(t,e){var n=new Nl;return VS(e,n),HS(t,n,this._defs),n.setShape({x1:parseFloat(t.getAttribute("x1")||"0"),y1:parseFloat(t.getAttribute("y1")||"0"),x2:parseFloat(t.getAttribute("x2")||"0"),y2:parseFloat(t.getAttribute("y2")||"0")}),n},ellipse:function(t,e){var n=new ul;return VS(e,n),HS(t,n,this._defs),n.setShape({cx:parseFloat(t.getAttribute("cx")||"0"),cy:parseFloat(t.getAttribute("cy")||"0"),rx:parseFloat(t.getAttribute("rx")||"0"),ry:parseFloat(t.getAttribute("ry")||"0")}),n},polygon:function(t,e){var n,i=t.getAttribute("points");i&&(n=FS(i));var r=new Ll({shape:{points:n||[]}});return VS(e,r),HS(t,r,this._defs),r},polyline:function(t,e){var n=new Oa;VS(e,n),HS(t,n,this._defs);var i,r=t.getAttribute("points");return r&&(i=FS(r)),new Pl({shape:{points:i||[]}})},image:function(t,e){var n=new Ba;return VS(e,n),HS(t,n,this._defs),n.setStyle({image:t.getAttribute("xlink:href"),x:+t.getAttribute("x"),y:+t.getAttribute("y"),width:+t.getAttribute("width"),height:+t.getAttribute("height")}),n},text:function(t,e){var n=t.getAttribute("x")||"0",i=t.getAttribute("y")||"0",r=t.getAttribute("dx")||"0",o=t.getAttribute("dy")||"0";this._textX=parseFloat(n)+parseFloat(r),this._textY=parseFloat(i)+parseFloat(o);var a=new Li;return VS(e,a),HS(t,a,this._defs),a},tspan:function(t,e){var n=t.getAttribute("x"),i=t.getAttribute("y");null!=n&&(this._textX=parseFloat(n)),null!=i&&(this._textY=parseFloat(i));var r=t.getAttribute("dx")||0,o=t.getAttribute("dy")||0,a=new Li;return VS(e,a),HS(t,a,this._defs),this._textX+=r,this._textY+=o,a},path:function(t,e){var n=ol(t.getAttribute("d")||"");return VS(e,n),HS(t,n,this._defs),n}}),t}(),BS={lineargradient:function(t){var e=parseInt(t.getAttribute("x1")||"0",10),n=parseInt(t.getAttribute("y1")||"0",10),i=parseInt(t.getAttribute("x2")||"10",10),r=parseInt(t.getAttribute("y2")||"0",10),o=new Yl(e,n,i,r);return function(t,e){var n=t.firstChild;for(;n;){if(1===n.nodeType){var i=n.getAttribute("offset"),r=void 0;r=i.indexOf("%")>0?parseInt(i,10)/100:i?parseFloat(i):0;var o=n.getAttribute("stop-color")||"#000000";e.colorStops.push({offset:r,color:o})}n=n.nextSibling}}(t,o),o}};function VS(t,e){t&&t.__inheritedStyle&&(e.__inheritedStyle||(e.__inheritedStyle={}),I(e.__inheritedStyle,t.__inheritedStyle))}function FS(t){for(var e=rt(t).split(ES),n=[],i=0;i<e.length;i+=2){var r=parseFloat(e[i]),o=parseFloat(e[i+1]);n.push([r,o])}return n}var GS={fill:"fill",stroke:"stroke","stroke-width":"lineWidth",opacity:"opacity","fill-opacity":"fillOpacity","stroke-opacity":"strokeOpacity","stroke-dasharray":"lineDash","stroke-dashoffset":"lineDashOffset","stroke-linecap":"lineCap","stroke-linejoin":"lineJoin","stroke-miterlimit":"miterLimit","font-family":"fontFamily","font-size":"fontSize","font-style":"fontStyle","font-weight":"fontWeight","text-align":"textAlign","alignment-baseline":"textBaseline"};function HS(t,e,n,i){var r=e,o=r.__inheritedStyle||{};if(1===t.nodeType&&(function(t,e){var n=t.getAttribute("transform");if(n){n=n.replace(/,/g," ");var i=[],r=null;n.replace(XS,(function(t,e,n){return i.push(e,n),""}));for(var o=i.length-1;o>0;o-=2){var a=i[o],s=void 0;switch(r=r||[1,0,0,1,0,0],i[o-1]){case"translate":s=rt(a).split(ES),ge(r,r,[parseFloat(s[0]),parseFloat(s[1]||"0")]);break;case"scale":s=rt(a).split(ES),ve(r,r,[parseFloat(s[0]),parseFloat(s[1]||s[0])]);break;case"rotate":s=rt(a).split(ES),ye(r,r,parseFloat(s[0]));break;case"skew":s=rt(a).split(ES),console.warn("Skew transform is not supported yet");break;case"matrix":s=rt(a).split(ES),r[0]=parseFloat(s[0]),r[1]=parseFloat(s[1]),r[2]=parseFloat(s[2]),r[3]=parseFloat(s[3]),r[4]=parseFloat(s[4]),r[5]=parseFloat(s[5])}}e.setLocalTransform(r)}}(t,e),M(o,function(t){var e=t.getAttribute("style"),n={};if(!e)return n;var i,r={};US.lastIndex=0;for(;null!=(i=US.exec(e));)r[i[1]]=i[2];for(var o in GS)GS.hasOwnProperty(o)&&null!=r[o]&&(n[GS[o]]=r[o]);return n}(t)),!i))for(var a in GS)if(GS.hasOwnProperty(a)){var s=t.getAttribute(a);null!=s&&(o[GS[a]]=s)}r.style=r.style||{},null!=o.fill&&(r.style.fill=YS(o.fill,n)),null!=o.stroke&&(r.style.stroke=YS(o.stroke,n)),k(["lineWidth","opacity","fillOpacity","strokeOpacity","miterLimit","fontSize"],(function(t){null!=o[t]&&(r.style[t]=parseFloat(o[t]))})),o.textBaseline&&"auto"!==o.textBaseline||(o.textBaseline="alphabetic"),"alphabetic"===o.textBaseline&&(o.textBaseline="bottom"),"start"===o.textAlign&&(o.textAlign="left"),"end"===o.textAlign&&(o.textAlign="right"),k(["lineDashOffset","lineCap","lineJoin","fontWeight","fontFamily","fontStyle","textAlign","textBaseline"],(function(t){null!=o[t]&&(r.style[t]=o[t])})),o.lineDash&&(r.style.lineDash=P(rt(o.lineDash).split(ES),(function(t){return parseFloat(t)}))),r.__inheritedStyle=o}var WS=/url\(\s*#(.*?)\)/;function YS(t,e){var n=e&&t&&t.match(WS);return n?e[rt(n[1])]:t}var XS=/(translate|scale|rotate|skewX|skewY|matrix)\(([\-\s0-9\.e,]*)\)/g;var US=/([^\s:;]+)\s*:\s*([^:;]+)/g;function ZS(t,e,n){var i=e/t.width,r=n/t.height,o=Math.min(i,r);return{scale:o,x:-(t.x+t.width/2)*o+e/2,y:-(t.y+t.height/2)*o+n/2}}var jS=_r();function qS(t,e){var n,i,r,o,a=t.svgXML;try{it(null!=(i=(n=a&&(r=a,o={ignoreViewBox:!0,ignoreRootClip:!0},(new zS).parse(r,o))||{}).root))}catch(t){throw new Error("Invalid svg format\n"+t.message)}var s=n.width,l=n.height,u=n.viewBoxRect;if(e||(e=null==s||null==l?i.getBoundingRect():new Ln(0,0,0,0),null!=s&&(e.width=s),null!=l&&(e.height=l)),u){var h=ZS(u,e.width,e.height),c=i;(i=new Li).add(c),c.scaleX=c.scaleY=h.scale,c.x=h.x,c.y=h.y}return i.setClipPath(new Xa({shape:e.plain()})),{root:i,boundingRect:e}}var KS={geoJSON:OS,svg:{load:function(t,e){var n=jS(e).originRoot;if(n)return{root:n,boundingRect:jS(e).boundingRect};var i=qS(e);return jS(e).originRoot=i.root,jS(e).boundingRect=i.boundingRect,i},makeGraphic:function(t,e,n){var i=jS(e),r=i.rootMap||(i.rootMap=lt()),o=r.get(n);if(o)return o;var a=i.originRoot,s=i.boundingRect;return i.originRootHostKey?o=qS(e,s).root:(i.originRootHostKey=n,o=a),r.set(n,o)},removeGraphic:function(t,e,n){var i=jS(e),r=i.rootMap;r&&r.removeKey(n),n===i.originRootHostKey&&(i.originRootHostKey=null)}}},$S=function(t,e,n){var i,r=[],o=lt(),a=lt();return k(tM(t),(function(s){var l=KS[s.type].load(t,s,n);k(l.regions,(function(t){var n=t.name;e&&e.hasOwnProperty(n)&&(t=t.cloneShallow(n=e[n])),r.push(t),o.set(n,t),a.set(n,t.center)}));var u=l.boundingRect;u&&(i?i.union(u):i=u.clone())})),{regions:r,regionsMap:o,nameCoordMap:a,boundingRect:i||new Ln(0,0,0,0)}},JS=function(t,e){var n=tM(t),i=[];return k(n,(function(n){var r=KS[n.type].makeGraphic;r&&i.push(r(t,n,e))})),i},QS=function(t,e){k(tM(t),(function(n){var i=KS[n.type].makeGraphic;i&&i(t,n,e)}))};function tM(t){var e=wf(t)||[];return e}function eM(t){var e=t.getItemStyle(),n=t.get("areaColor");return null!=n&&(e.fill=n),e}var nM=function(){function t(t){var e=new Li;this.uid=ah("ec_map_draw"),this._controller=new vS(t.getZr()),this._controllerHost={target:e},this.group=e,e.add(this._regionsGroup=new Li),e.add(this._backgroundGroup=new Li)}return t.prototype.draw=function(t,e,n,i,r){var o="geo"===t.mainType,a=t.getData&&t.getData();o&&e.eachComponent({mainType:"series",subType:"map"},(function(e){a||e.getHostGeoModel()!==t||(a=e.getData())}));var s=t.coordinateSystem;this._updateBackground(s);var l,u,h=this._regionsGroup,c=this.group,p=s.getTransformInfo(),d=!h.childAt(0)||r;if(d)c.transform=p.roamTransform,c.decomposeTransform(),c.dirty();else{var f=new Ce;f.transform=p.roamTransform,f.decomposeTransform();var g={scaleX:f.scaleX,scaleY:f.scaleY,x:f.x,y:f.y};l=f.scaleX,u=f.scaleY,fu(c,g,t)}h.removeAll();var y=lt(),v=a&&a.getVisual("visualMeta")&&a.getVisual("visualMeta").length>0;k(s.regions,(function(e){var i=y.get(e.name)||y.set(e.name,new Li),r=new Hl({segmentIgnoreThreshold:1,shape:{paths:[]}});i.add(r);var s,f=t.getRegionModel(e.name)||t,g=f.getModel("itemStyle"),m=f.getModel("emphasis"),_=m.getModel("itemStyle"),x=f.getModel(["blur","itemStyle"]),b=f.getModel(["select","itemStyle"]),w=eM(g),S=eM(_),M=eM(x),I=eM(b);if(a){s=a.indexOfName(e.name);var T=a.getItemVisual(s,"style"),C=a.getItemVisual(s,"decal");v&&T.fill&&(w.fill=T.fill),C&&(w.decal=Xg(C,n))}var A=p.rawScaleX,D=p.rawScaleY,L=p.rawX,P=p.rawY,O=function(t){return[t[0]*A+L,t[1]*D+P]};k(e.geometries,(function(t){if("polygon"===t.type){for(var e=[],n=0;n<t.exterior.length;++n)e.push(O(t.exterior[n]));r.shape.paths.push(new Ll({segmentIgnoreThreshold:1,shape:{points:e}}));for(n=0;n<(t.interiors?t.interiors.length:0);++n){for(var i=t.interiors[n],o=[],a=0;a<i.length;++a)o.push(O(i[a]));r.shape.paths.push(new Ll({segmentIgnoreThreshold:1,shape:{points:o}}))}}})),r.setStyle(w),r.style.strokeNoScale=!0,r.culling=!0,r.ensureState("emphasis").style=S,r.ensureState("blur").style=M,r.ensureState("select").style=I;for(var R=!1,N=0;N<ss.length;N++){var E=ss[N];if(f.get("normal"===E?["label","show"]:[E,"label","show"])){R=!0;break}}var z=a&&isNaN(a.get(a.mapDimension("value"),s)),B=a&&a.getItemLayout(s);if(o||z&&R||B&&B.showLabel){var V=o?e.name:s,F=void 0;(!a||s>=0)&&(F=t);var G=O(e.center),H=new ja({x:G[0],y:G[1],scaleX:1/c.scaleX,scaleY:1/c.scaleY,z2:10,silent:!0});Nu(H,Eu(f),{labelFetcher:F,labelDataIndex:V,defaultText:e.name},{normal:{align:"center",verticalAlign:"middle"}}),r.setTextContent(H),r.setTextConfig({local:!0}),r.disableLabelAnimation=!0,d||fu(H,{scaleX:1/l,scaleY:1/u},t)}if(a)a.setItemGraphicEl(s,i);else{var W=t.getRegionModel(e.name);ns(r).eventData={componentType:"geo",componentIndex:t.componentIndex,geoIndex:t.componentIndex,name:e.name,region:W&&W.option||{}}}(i.__regions||(i.__regions=[])).push(e),i.highDownSilentOnTouch=!!t.get("selectedMode"),Os(i,m.get("focus"),m.get("blurScope")),h.add(i)})),this._updateController(t,e,n),this._updateMapSelectHandler(t,h,n,i)},t.prototype.remove=function(){this._regionsGroup.removeAll(),this._backgroundGroup.removeAll(),this._controller.dispose(),this._mapName&&QS(this._mapName,this.uid),this._mapName=null,this._controllerHost=null},t.prototype._updateBackground=function(t){var e=t.map;this._mapName!==e&&k(JS(e,this.uid),(function(t){this._backgroundGroup.add(t)}),this),this._mapName=e},t.prototype._updateController=function(t,e,n){var i=t.coordinateSystem,r=this._controller,o=this._controllerHost;o.zoomLimit=t.get("scaleLimit"),o.zoom=i.getZoom(),r.enable(t.get("roam")||!1);var a=t.mainType;function s(){var e={type:"geoRoam",componentType:a};return e[a+"Id"]=t.id,e}r.off("pan").on("pan",(function(t){this._mouseDownFlag=!1,bS(o,t.dx,t.dy),n.dispatchAction(M(s(),{dx:t.dx,dy:t.dy}))}),this),r.off("zoom").on("zoom",(function(t){this._mouseDownFlag=!1,wS(o,t.scale,t.originX,t.originY),n.dispatchAction(M(s(),{zoom:t.scale,originX:t.originX,originY:t.originY}));var e=this.group;this._regionsGroup.traverse((function(t){var n=t.getTextContent();n&&(n.scaleX=1/e.scaleX,n.scaleY=1/e.scaleY,n.markRedraw())}))}),this),r.setPointerChecker((function(e,r,o){return i.getViewRectAfterRoam().contain(r,o)&&!MS(e,n,t)}))},t.prototype._updateMapSelectHandler=function(t,e,n,i){var r=this;e.off("mousedown"),t.get("selectedMode")&&(e.on("mousedown",(function(){r._mouseDownFlag=!0})),e.on("click",(function(t){r._mouseDownFlag&&(r._mouseDownFlag=!1)})))},t}(),iM=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n,i){if(!i||"mapToggleSelect"!==i.type||i.from!==this.uid){var r=this.group;if(r.removeAll(),!t.getHostGeoModel()){if(i&&"geoRoam"===i.type&&"series"===i.componentType&&i.seriesId===t.id)(o=this._mapDraw)&&r.add(o.group);else if(t.needsDrawMap){var o=this._mapDraw||new nM(n);r.add(o.group),o.draw(t,e,n,this,i),this._mapDraw=o}else this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null;t.get("showLegendSymbol")&&e.getComponent("legend")&&this._renderSymbols(t,e,n)}}},n.prototype.remove=function(){this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null,this.group.removeAll()},n.prototype.dispose=function(){this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null},n.prototype._renderSymbols=function(t,e,n){var i=t.originalData,r=this.group;i.each(i.mapDimension("value"),(function(e,n){if(!isNaN(e)){var o=i.getItemLayout(n);if(o&&o.point){var a=o.point,s=o.offset,l=new sl({style:{fill:t.getData().getVisual("style").fill},shape:{cx:a[0]+9*s,cy:a[1],r:3},silent:!0,z2:8+(s?0:11)});if(!s){var u=t.mainSeries.getData(),h=i.getName(n),c=u.indexOfName(h),p=i.getItemModel(n),d=p.getModel("label"),f=u.getItemGraphicEl(c);Nu(l,Eu(p),{labelFetcher:{getFormattedLabel:function(e,n){return t.getFormattedLabel(c,n)}}}),l.disableLabelAnimation=!0,d.get("position")||l.setTextConfig({position:"bottom"}),f.onHoverStateChange=function(t){l.useState(t)}}r.add(l)}}}))},n.type="map",n}(Od),rM=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.needsDrawMap=!1,e.seriesGroup=[],e.getTooltipPosition=function(t){if(null!=t){var e=this.getData().getName(t),n=this.coordinateSystem,i=n.getRegion(e);return i&&n.dataToPoint(i.center)}},e}return e(n,t),n.prototype.getInitialData=function(t){for(var e=Jb(this,{coordDimensions:["value"],encodeDefaulter:B(vc,this)}),n=lt(),i=[],r=0,o=e.count();r<o;r++){var a=e.getName(r);n.set(a,!0)}return k($S(this.getMapType(),this.option.nameMap,this.option.nameProperty).regions,(function(t){var e=t.name;n.get(e)||i.push(e)})),e.appendValues([],i),e},n.prototype.getHostGeoModel=function(){var t=this.option.geoIndex;return null!=t?this.ecModel.getComponent("geo",t):null},n.prototype.getMapType=function(){return(this.getHostGeoModel()||this).option.map},n.prototype.getRawValue=function(t){var e=this.getData();return e.get(e.mapDimension("value"),t)},n.prototype.getRegionModel=function(t){var e=this.getData();return e.getItemModel(e.indexOfName(t))},n.prototype.formatTooltip=function(t,e,n){for(var i=this.getData(),r=this.getRawValue(t),o=i.getName(t),a=this.seriesGroup,s=[],l=0;l<a.length;l++){var u=a[l].originalData.indexOfName(o),h=i.mapDimension("value");isNaN(a[l].originalData.get(h,u))||s.push(a[l].name)}return ld("section",{header:s.join(", "),noHeader:!s.length,blocks:[ld("nameValue",{name:o,value:r})]})},n.prototype.setZoom=function(t){this.option.zoom=t},n.prototype.setCenter=function(t){this.option.center=t},n.type="series.map",n.dependencies=["geo"],n.layoutMode="box",n.defaultOption={zlevel:0,z:2,coordinateSystem:"geo",map:"",left:"center",top:"center",aspectScale:.75,showLegendSymbol:!0,boundingCoords:null,center:null,zoom:1,scaleLimit:null,selectedMode:!0,label:{show:!1,color:"#000"},itemStyle:{borderWidth:.5,borderColor:"#444",areaColor:"#eee"},emphasis:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{areaColor:"rgba(255,215,0,0.8)"}},select:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{color:"rgba(255,215,0,0.8)"}},nameProperty:"name"},n}(bd);function oM(t){var e={};t.eachSeriesByType("map",(function(t){var n=t.getHostGeoModel(),i=n?"o"+n.id:"i"+t.getMapType();(e[i]=e[i]||[]).push(t)})),k(e,(function(t,e){for(var n,i,r,o=(n=P(t,(function(t){return t.getData()})),i=t[0].get("mapValueCalculation"),r={},k(n,(function(t){t.each(t.mapDimension("value"),(function(e,n){var i="ec-"+t.getName(n);r[i]=r[i]||[],isNaN(e)||r[i].push(e)}))})),n[0].map(n[0].mapDimension("value"),(function(t,e){for(var o="ec-"+n[0].getName(e),a=0,s=1/0,l=-1/0,u=r[o].length,h=0;h<u;h++)s=Math.min(s,r[o][h]),l=Math.max(l,r[o][h]),a+=r[o][h];return 0===u?NaN:"min"===i?s:"max"===i?l:"average"===i?a/u:a}))),a=0;a<t.length;a++)t[a].originalData=t[a].getData();for(a=0;a<t.length;a++)t[a].seriesGroup=t,t[a].needsDrawMap=0===a&&!t[a].getHostGeoModel(),t[a].setData(o.cloneShallow()),t[a].mainSeries=t[0]}))}function aM(t){var e={};t.eachSeriesByType("map",(function(n){var i=n.getMapType();if(!n.getHostGeoModel()&&!e[i]){var r={};k(n.seriesGroup,(function(e){var n=e.coordinateSystem,i=e.originalData;e.get("showLegendSymbol")&&t.getComponent("legend")&&i.each(i.mapDimension("value"),(function(t,e){var o=i.getName(e),a=n.getRegion(o);if(a&&!isNaN(t)){var s=r[o]||0,l=n.dataToPoint(a.center);r[o]=s+1,i.setItemLayout(e,{point:l,offset:s})}}))}));var o=n.getData();o.each((function(t){var e=o.getName(t),n=o.getItemLayout(t)||{};n.showLabel=!r[e],o.setItemLayout(t,n)})),e[i]=!0}}))}function sM(t,e){var n=t.isExpand?t.children:[],i=t.parentNode.children,r=t.hierNode.i?i[t.hierNode.i-1]:null;if(n.length){!function(t){var e=t.children,n=e.length,i=0,r=0;for(;--n>=0;){var o=e[n];o.hierNode.prelim+=i,o.hierNode.modifier+=i,r+=o.hierNode.change,i+=o.hierNode.shift+r}}(t);var o=(n[0].hierNode.prelim+n[n.length-1].hierNode.prelim)/2;r?(t.hierNode.prelim=r.hierNode.prelim+e(t,r),t.hierNode.modifier=t.hierNode.prelim-o):t.hierNode.prelim=o}else r&&(t.hierNode.prelim=r.hierNode.prelim+e(t,r));t.parentNode.hierNode.defaultAncestor=function(t,e,n,i){if(e){for(var r=t,o=t,a=o.parentNode.children[0],s=e,l=r.hierNode.modifier,u=o.hierNode.modifier,h=a.hierNode.modifier,c=s.hierNode.modifier;s=cM(s),o=pM(o),s&&o;){r=cM(r),a=pM(a),r.hierNode.ancestor=t;var p=s.hierNode.prelim+c-o.hierNode.prelim-u+i(s,o);p>0&&(fM(dM(s,t,n),t,p),u+=p,l+=p),c+=s.hierNode.modifier,u+=o.hierNode.modifier,l+=r.hierNode.modifier,h+=a.hierNode.modifier}s&&!cM(r)&&(r.hierNode.thread=s,r.hierNode.modifier+=c-l),o&&!pM(a)&&(a.hierNode.thread=o,a.hierNode.modifier+=u-h,n=t)}return n}(t,r,t.parentNode.hierNode.defaultAncestor||i[0],e)}function lM(t){var e=t.hierNode.prelim+t.parentNode.hierNode.modifier;t.setLayout({x:e},!0),t.hierNode.modifier+=t.parentNode.hierNode.modifier}function uM(t){return arguments.length?t:gM}function hM(t,e){return t-=Math.PI/2,{x:e*Math.cos(t),y:e*Math.sin(t)}}function cM(t){var e=t.children;return e.length&&t.isExpand?e[e.length-1]:t.hierNode.thread}function pM(t){var e=t.children;return e.length&&t.isExpand?e[0]:t.hierNode.thread}function dM(t,e,n){return t.hierNode.ancestor.parentNode===e.parentNode?t.hierNode.ancestor:n}function fM(t,e,n){var i=n/(e.hierNode.i-t.hierNode.i);e.hierNode.change-=i,e.hierNode.shift+=n,e.hierNode.modifier+=n,e.hierNode.prelim+=n,t.hierNode.change+=i}function gM(t,e){return t.parentNode===e.parentNode?1:2}var yM=Pt,vM=function(t){function n(e){var n=t.call(this)||this;return n.type="view",n.dimensions=["x","y"],n._roamTransformable=new Ce,n._rawTransformable=new Ce,n.name=e,n}return e(n,t),n.prototype.setBoundingRect=function(t,e,n,i){return this._rect=new Ln(t,e,n,i),this._rect},n.prototype.getBoundingRect=function(){return this._rect},n.prototype.setViewRect=function(t,e,n,i){this.transformTo(t,e,n,i),this._viewRect=new Ln(t,e,n,i)},n.prototype.transformTo=function(t,e,n,i){var r=this.getBoundingRect(),o=this._rawTransformable;o.transform=r.calculateTransform(new Ln(t,e,n,i)),o.decomposeTransform(),this._updateTransform()},n.prototype.setCenter=function(t){t&&(this._center=t,this._updateCenterAndZoom())},n.prototype.setZoom=function(t){t=t||1;var e=this.zoomLimit;e&&(null!=e.max&&(t=Math.min(e.max,t)),null!=e.min&&(t=Math.max(e.min,t))),this._zoom=t,this._updateCenterAndZoom()},n.prototype.getDefaultCenter=function(){var t=this.getBoundingRect();return[t.x+t.width/2,t.y+t.height/2]},n.prototype.getCenter=function(){return this._center||this.getDefaultCenter()},n.prototype.getZoom=function(){return this._zoom||1},n.prototype.getRoamTransform=function(){return this._roamTransformable.getLocalTransform()},n.prototype._updateCenterAndZoom=function(){var t=this._rawTransformable.getLocalTransform(),e=this._roamTransformable,n=this.getDefaultCenter(),i=this.getCenter(),r=this.getZoom();i=Pt([],i,t),n=Pt([],n,t),e.originX=i[0],e.originY=i[1],e.x=n[0]-i[0],e.y=n[1]-i[1],e.scaleX=e.scaleY=r,this._updateTransform()},n.prototype._updateTransform=function(){var t=this._roamTransformable,e=this._rawTransformable;e.parent=t,t.updateTransform(),e.updateTransform(),de(this.transform||(this.transform=[]),e.transform||[1,0,0,1,0,0]),this._rawTransform=e.getLocalTransform(),this.invTransform=this.invTransform||[],me(this.invTransform,this.transform),this.decomposeTransform()},n.prototype.getTransformInfo=function(){var t=this._roamTransformable.transform,e=this._rawTransformable;return{roamTransform:t?et(t):[1,0,0,1,0,0],rawScaleX:e.scaleX,rawScaleY:e.scaleY,rawX:e.x,rawY:e.y}},n.prototype.getViewRect=function(){return this._viewRect},n.prototype.getViewRectAfterRoam=function(){var t=this.getBoundingRect().clone();return t.applyTransform(this.transform),t},n.prototype.dataToPoint=function(t,e,n){var i=e?this._rawTransform:this.transform;return n=n||[],i?yM(n,t,i):gt(n,t)},n.prototype.pointToData=function(t){var e=this.invTransform;return e?yM([],t,e):[t[0],t[1]]},n.prototype.convertToPixel=function(t,e,n){var i=mM(e);return i===this?i.dataToPoint(n):null},n.prototype.convertFromPixel=function(t,e,n){var i=mM(e);return i===this?i.pointToData(n):null},n.prototype.containPoint=function(t){return this.getViewRectAfterRoam().contain(t[0],t[1])},n.dimensions=["x","y"],n}(Ce);function mM(t){var e=t.seriesModel;return e?e.coordinateSystem:null}var _M=function(){this.parentPoint=[],this.childPoints=[]},xM=function(t){function n(e){return t.call(this,e)||this}return e(n,t),n.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},n.prototype.getDefaultShape=function(){return new _M},n.prototype.buildPath=function(t,e){var n=e.childPoints,i=n.length,r=e.parentPoint,o=n[0],a=n[i-1];if(1===i)return t.moveTo(r[0],r[1]),void t.lineTo(o[0],o[1]);var s=e.orient,l="TB"===s||"BT"===s?0:1,u=1-l,h=Vi(e.forkPosition,1),c=[];c[l]=r[l],c[u]=r[u]+(a[u]-r[u])*h,t.moveTo(r[0],r[1]),t.lineTo(c[0],c[1]),t.moveTo(o[0],o[1]),c[l]=o[l],t.lineTo(c[0],c[1]),c[l]=a[l],t.lineTo(c[0],c[1]),t.lineTo(a[0],a[1]);for(var p=1;p<i-1;p++){var d=n[p];t.moveTo(d[0],d[1]),c[l]=d[l],t.lineTo(c[0],c[1])}},n}(Oa),bM=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e._mainGroup=new Li,e}return e(n,t),n.prototype.init=function(t,e){this._controller=new vS(e.getZr()),this._controllerHost={target:this.group},this.group.add(this._mainGroup)},n.prototype.render=function(t,e,n){var i=t.getData(),r=t.layoutInfo,o=this._mainGroup;"radial"===t.get("layout")?(o.x=r.x+r.width/2,o.y=r.y+r.height/2):(o.x=r.x,o.y=r.y),this._updateViewCoordSys(t),this._updateController(t,e,n);var a=this._data;i.diff(a).add((function(e){wM(i,e)&&SM(i,e,null,o,t)})).update((function(e,n){var r=a.getItemGraphicEl(n);wM(i,e)?SM(i,e,r,o,t):r&&MM(a,n,r,o,t)})).remove((function(e){var n=a.getItemGraphicEl(e);n&&MM(a,e,n,o,t)})).execute(),this._nodeScaleRatio=t.get("nodeScaleRatio"),this._updateNodeAndLinkScale(t),!0===t.get("expandAndCollapse")&&i.eachItemGraphicEl((function(e,i){e.off("click").on("click",(function(){n.dispatchAction({type:"treeExpandAndCollapse",seriesId:t.id,dataIndex:i})}))})),this._data=i},n.prototype._updateViewCoordSys=function(t){var e=t.getData(),n=[];e.each((function(t){var i=e.getItemLayout(t);!i||isNaN(i.x)||isNaN(i.y)||n.push([+i.x,+i.y])}));var i=[],r=[];Go(n,i,r);var o=this._min,a=this._max;r[0]-i[0]==0&&(i[0]=o?o[0]:i[0]-1,r[0]=a?a[0]:r[0]+1),r[1]-i[1]==0&&(i[1]=o?o[1]:i[1]-1,r[1]=a?a[1]:r[1]+1);var s=t.coordinateSystem=new vM;s.zoomLimit=t.get("scaleLimit"),s.setBoundingRect(i[0],i[1],r[0]-i[0],r[1]-i[1]),s.setCenter(t.get("center")),s.setZoom(t.get("zoom")),this.group.attr({x:s.x,y:s.y,scaleX:s.scaleX,scaleY:s.scaleY}),this._min=i,this._max=r},n.prototype._updateController=function(t,e,n){var i=this,r=this._controller,o=this._controllerHost,a=this.group;r.setPointerChecker((function(e,i,r){var o=a.getBoundingRect();return o.applyTransform(a.transform),o.contain(i,r)&&!MS(e,n,t)})),r.enable(t.get("roam")),o.zoomLimit=t.get("scaleLimit"),o.zoom=t.coordinateSystem.getZoom(),r.off("pan").off("zoom").on("pan",(function(e){bS(o,e.dx,e.dy),n.dispatchAction({seriesId:t.id,type:"treeRoam",dx:e.dx,dy:e.dy})})).on("zoom",(function(e){wS(o,e.scale,e.originX,e.originY),n.dispatchAction({seriesId:t.id,type:"treeRoam",zoom:e.scale,originX:e.originX,originY:e.originY}),i._updateNodeAndLinkScale(t),n.updateLabelLayout()}))},n.prototype._updateNodeAndLinkScale=function(t){var e=t.getData(),n=this._getNodeGlobalScale(t);e.eachItemGraphicEl((function(t,e){t.setSymbolScale(n)}))},n.prototype._getNodeGlobalScale=function(t){var e=t.coordinateSystem;if("view"!==e.type)return 1;var n=this._nodeScaleRatio,i=e.scaleX||1;return((e.getZoom()-1)*n+1)/i},n.prototype.dispose=function(){this._controller&&this._controller.dispose(),this._controllerHost=null},n.prototype.remove=function(){this._mainGroup.removeAll(),this._data=null},n.type="tree",n}(Od);function wM(t,e){var n=t.getItemLayout(e);return n&&!isNaN(n.x)&&!isNaN(n.y)}function SM(t,e,n,i,r){var o=!n,a=t.tree.getNodeByDataIndex(e),s=a.getModel(),l=a.getVisual("style").fill,u=!1===a.isExpand&&0!==a.children.length?l:"#fff",h=t.tree.root,c=a.parentNode===h?a:a.parentNode||a,p=t.getItemGraphicEl(c.dataIndex),d=c.getLayout(),f=p?{x:p.__oldX,y:p.__oldY,rawX:p.__radialOldRawX,rawY:p.__radialOldRawY}:d,g=a.getLayout();o?((n=new Vx(t,e,null,{symbolInnerColor:u,useNameLabel:!0})).x=f.x,n.y=f.y):n.updateData(t,e,null,{symbolInnerColor:u,useNameLabel:!0}),n.__radialOldRawX=n.__radialRawX,n.__radialOldRawY=n.__radialRawY,n.__radialRawX=g.rawX,n.__radialRawY=g.rawY,i.add(n),t.setItemGraphicEl(e,n),n.__oldX=n.x,n.__oldY=n.y,fu(n,{x:g.x,y:g.y},r);var y=n.getSymbolPath();if("radial"===r.get("layout")){var v=h.children[0],m=v.getLayout(),_=v.children.length,x=void 0,b=void 0;if(g.x===m.x&&!0===a.isExpand){var w={x:(v.children[0].getLayout().x+v.children[_-1].getLayout().x)/2,y:(v.children[0].getLayout().y+v.children[_-1].getLayout().y)/2};(x=Math.atan2(w.y-m.y,w.x-m.x))<0&&(x=2*Math.PI+x),(b=w.x<m.x)&&(x-=Math.PI)}else(x=Math.atan2(g.y-m.y,g.x-m.x))<0&&(x=2*Math.PI+x),0===a.children.length||0!==a.children.length&&!1===a.isExpand?(b=g.x<m.x)&&(x-=Math.PI):(b=g.x>m.x)||(x-=Math.PI);var S=b?"left":"right",M=s.getModel("label"),T=M.get("rotate"),C=T*(Math.PI/180),A=y.getTextContent();A&&(y.setTextConfig({position:M.get("position")||S,rotation:null==T?-x:C,origin:"center"}),A.setStyle("verticalAlign","middle"))}var D=s.get(["emphasis","focus"]),L="ancestor"===D?a.getAncestorsIndices():"descendant"===D?a.getDescendantIndices():null;L&&(ns(n).focus=L),function(t,e,n,i,r,o,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&&(g||(g=i.__edge=new Vl({shape:IM(h,c,p,r,r)})),fu(g,{shape:IM(h,c,p,o,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,v=[],m=0;m<y.length;m++){var _=y[m].getLayout();v.push([_.x,_.y])}g||(g=i.__edge=new xM({shape:{parentPoint:[a.x,a.y],childPoints:[[a.x,a.y]],orient:c,forkPosition:d}})),fu(g,{shape:{parentPoint:[a.x,a.y],childPoints:v}},t)}}else 0;g&&(g.useStyle(I({strokeNoScale:!0,fill:null},f)),zs(g,l,"lineStyle"),ws(g),s.add(g))}(r,a,h,n,f,d,g,i),n.__edge&&(n.onHoverStateChange=function(e){if("blur"!==e){var i=a.parentNode&&t.getItemGraphicEl(a.parentNode.dataIndex);i&&1===i.hoverState||xs(n.__edge,e)}})}function MM(t,e,n,i,r){for(var o,a=t.tree.getNodeByDataIndex(e),s=t.tree.root,l=a.parentNode===s?a:a.parentNode||a;null==(o=l.getLayout());)l=l.parentNode===s?l:l.parentNode||l;var u={duration:r.get("animationDurationUpdate"),easing:r.get("animationEasingUpdate")};yu(n,{x:o.x+1,y:o.y+1},r,{cb:function(){i.remove(n),t.setItemGraphicEl(e,null)},removeOpt:u}),n.fadeOut(null,{fadeLabel:!0,animation:u});var h=t.getItemGraphicEl(l.dataIndex).__edge,c=n.__edge||(!1===l.isExpand||1===l.children.length?h:void 0),p=r.get("edgeShape"),d=r.get("layout"),f=r.get("orient"),g=r.get(["lineStyle","curveness"]);c&&("curve"===p?yu(c,{shape:IM(d,f,g,o,o),style:{opacity:0}},r,{cb:function(){i.remove(c)},removeOpt:u}):"polyline"===p&&"orthogonal"===r.get("layout")&&yu(c,{shape:{parentPoint:[o.x,o.y],childPoints:[[o.x,o.y]]},style:{opacity:0}},r,{cb:function(){i.remove(c)},removeOpt:u}))}function IM(t,e,n,i,r){var o,a,s,l,u,h,c,p;if("radial"===t){u=i.rawX,c=i.rawY,h=r.rawX,p=r.rawY;var d=hM(u,c),f=hM(u,c+(p-c)*n),g=hM(h,p+(c-p)*n),y=hM(h,p);return{x1:d.x||0,y1:d.y||0,x2:y.x||0,y2:y.y||0,cpx1:f.x||0,cpy1:f.y||0,cpx2:g.x||0,cpy2:g.y||0}}return u=i.x,c=i.y,h=r.x,p=r.y,"LR"!==e&&"RL"!==e||(o=u+(h-u)*n,a=c,s=h+(u-h)*n,l=p),"TB"!==e&&"BT"!==e||(o=u,a=c+(p-c)*n,s=h,l=p+(c-p)*n),{x1:u,y1:c,x2:h,y2:p,cpx1:o,cpy1:a,cpx2:s,cpy2:l}}var TM=_r();function CM(t){var e=t.mainData,n=t.datas;n||(n={main:e},t.datasAttr={main:"data"}),t.datas=t.mainData=null,OM(e,n,t),k(n,(function(n){k(e.TRANSFERABLE_METHODS,(function(e){n.wrapMethod(e,B(AM,t))}))})),e.wrapMethod("cloneShallow",B(LM,t)),k(e.CHANGABLE_METHODS,(function(n){e.wrapMethod(n,B(DM,t))})),it(n[e.dataType]===e)}function AM(t,e){if(TM(i=this).mainData===i){var n=M({},TM(this).datas);n[this.dataType]=e,OM(e,n,t)}else RM(e,this.dataType,TM(this).mainData,t);var i;return e}function DM(t,e){return t.struct&&t.struct.update(),e}function LM(t,e){return k(TM(e).datas,(function(n,i){n!==e&&RM(n.cloneShallow(),i,e,t)})),e}function kM(t){var e=TM(this).mainData;return null==t||null==e?e:TM(e).datas[t]}function PM(){var t=TM(this).mainData;return null==t?[{data:t}]:P(E(TM(t).datas),(function(e){return{type:e,data:TM(t).datas[e]}}))}function OM(t,e,n){TM(t).datas={},k(e,(function(e,i){RM(e,i,t,n)}))}function RM(t,e,n,i){TM(n).datas[e]=t,TM(t).mainData=n,t.dataType=e,i.struct&&(t[i.structAttr]=i.struct,i.struct[i.datasAttr[e]]=t),t.getLinkedData=kM,t.getLinkedDataAll=PM}var NM=function(){function t(t,e){this.depth=0,this.height=0,this.dataIndex=-1,this.children=[],this.viewChildren=[],this.isExpand=!1,this.name=t||"",this.hostTree=e}return t.prototype.isRemoved=function(){return this.dataIndex<0},t.prototype.eachNode=function(t,e,n){"function"==typeof t&&(n=e,e=t,t=null),G(t=t||{})&&(t={order:t});var i,r=t.order||"preorder",o=this[t.attr||"children"];"preorder"===r&&(i=e.call(n,this));for(var a=0;!i&&a<o.length;a++)o[a].eachNode(t,e,n);"postorder"===r&&e.call(n,this)},t.prototype.updateDepthAndHeight=function(t){var e=0;this.depth=t;for(var n=0;n<this.children.length;n++){var i=this.children[n];i.updateDepthAndHeight(t+1),i.height>e&&(e=i.height)}this.height=e+1},t.prototype.getNodeById=function(t){if(this.getId()===t)return this;for(var e=0,n=this.children,i=n.length;e<i;e++){var r=n[e].getNodeById(t);if(r)return r}},t.prototype.contains=function(t){if(t===this)return!0;for(var e=0,n=this.children,i=n.length;e<i;e++){var r=n[e].contains(t);if(r)return r}},t.prototype.getAncestors=function(t){for(var e=[],n=t?this:this.parentNode;n;)e.push(n),n=n.parentNode;return e.reverse(),e},t.prototype.getAncestorsIndices=function(){for(var t=[],e=this;e;)t.push(e.dataIndex),e=e.parentNode;return t.reverse(),t},t.prototype.getDescendantIndices=function(){var t=[];return this.eachNode((function(e){t.push(e.dataIndex)})),t},t.prototype.getValue=function(t){var e=this.hostTree.data;return e.get(e.getDimension(t||"value"),this.dataIndex)},t.prototype.setLayout=function(t,e){this.dataIndex>=0&&this.hostTree.data.setItemLayout(this.dataIndex,t,e)},t.prototype.getLayout=function(){return this.hostTree.data.getItemLayout(this.dataIndex)},t.prototype.getModel=function(t){if(!(this.dataIndex<0))return this.hostTree.data.getItemModel(this.dataIndex).getModel(t)},t.prototype.getLevelModel=function(){return(this.hostTree.levelModels||[])[this.depth]},t.prototype.setVisual=function(t,e){this.dataIndex>=0&&this.hostTree.data.setItemVisual(this.dataIndex,t,e)},t.prototype.getVisual=function(t){return this.hostTree.data.getItemVisual(this.dataIndex,t)},t.prototype.getRawIndex=function(){return this.hostTree.data.getRawIndex(this.dataIndex)},t.prototype.getId=function(){return this.hostTree.data.getId(this.dataIndex)},t.prototype.isAncestorOf=function(t){for(var e=t.parentNode;e;){if(e===this)return!0;e=e.parentNode}return!1},t.prototype.isDescendantOf=function(t){return t!==this&&t.isAncestorOf(this)},t}(),EM=function(){function t(t){this.type="tree",this._nodes=[],this.hostModel=t}return t.prototype.eachNode=function(t,e,n){this.root.eachNode(t,e,n)},t.prototype.getNodeByDataIndex=function(t){var e=this.data.getRawIndex(t);return this._nodes[e]},t.prototype.getNodeById=function(t){return this.root.getNodeById(t)},t.prototype.update=function(){for(var t=this.data,e=this._nodes,n=0,i=e.length;n<i;n++)e[n].dataIndex=-1;for(n=0,i=t.count();n<i;n++)e[t.getRawIndex(n)].dataIndex=n},t.prototype.clearLayouts=function(){this.data.clearItemLayouts()},t.createTree=function(e,n,i){var r=new t(n),o=[],a=1;!function t(e,n){var i=e.value;a=Math.max(a,V(i)?i.length:1),o.push(e);var s=new NM(gr(e.name,""),r);n?function(t,e){var n=e.children;if(t.parentNode===e)return;n.push(t),t.parentNode=e}(s,n):r.root=s,r._nodes.push(s);var l=e.children;if(l)for(var u=0;u<l.length;u++)t(l[u],s)}(e),r.root.updateDepthAndHeight(0);var s=em(o,{coordDimensions:["value"],dimensionsCount:a}),l=new Jv(s,n);return l.initData(o),i&&i(l),CM({mainData:l,struct:r,structAttr:"tree"}),r.update(),r},t}();var zM=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.hasSymbolVisual=!0,e.ignoreStyleOnData=!0,e}return e(n,t),n.prototype.getInitialData=function(t){var e={name:t.name,children:t.data},n=t.leaves||{},i=new rh(n,this,this.ecModel),r=EM.createTree(e,this,(function(t){t.wrapMethod("getItemModel",(function(t,e){var n=r.getNodeByDataIndex(e);return n.children.length&&n.isExpand||(t.parentModel=i),t}))}));var o=0;r.eachNode("preorder",(function(t){t.depth>o&&(o=t.depth)}));var a=t.expandAndCollapse&&t.initialTreeDepth>=0?t.initialTreeDepth:o;return r.root.eachNode("preorder",(function(t){var e=t.hostTree.data.getRawDataItem(t.dataIndex);t.isExpand=e&&null!=e.collapsed?!e.collapsed:t.depth<=a})),r.data},n.prototype.getOrient=function(){var t=this.get("orient");return"horizontal"===t?t="LR":"vertical"===t&&(t="TB"),t},n.prototype.setZoom=function(t){this.option.zoom=t},n.prototype.setCenter=function(t){this.option.center=t},n.prototype.formatTooltip=function(t,e,n){for(var i=this.getData().tree,r=i.root.children[0],o=i.getNodeByDataIndex(t),a=o.getValue(),s=o.name;o&&o!==r;)s=o.parentNode.name+"."+s,o=o.parentNode;return ld("nameValue",{name:s,value:a,noValue:isNaN(a)||null==a})},n.type="series.tree",n.layoutMode="box",n.defaultOption={zlevel:0,z:2,coordinateSystem:"view",left:"12%",top:"12%",right:"12%",bottom:"12%",layout:"orthogonal",edgeShape:"curve",edgeForkPosition:"50%",roam:!1,nodeScaleRatio:.4,center:null,zoom:1,orient:"LR",symbol:"emptyCircle",symbolSize:7,expandAndCollapse:!0,initialTreeDepth:2,lineStyle:{color:"#ccc",width:1.5,curveness:.5},itemStyle:{color:"lightsteelblue",borderColor:"#c23531",borderWidth:1.5},label:{show:!0},animationEasing:"linear",animationDuration:700,animationDurationUpdate:500},n}(bd);function BM(t,e){for(var n,i=[t];n=i.pop();)if(e(n),n.isExpand){var r=n.children;if(r.length)for(var o=r.length-1;o>=0;o--)i.push(r[o])}}function VM(t,e){t.eachSeriesByType("tree",(function(t){!function(t,e){var n=function(t,e){return tc(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}(t,e);t.layoutInfo=n;var i=t.get("layout"),r=0,o=0,a=null;"radial"===i?(r=2*Math.PI,o=Math.min(n.height,n.width)/2,a=uM((function(t,e){return(t.parentNode===e.parentNode?1:2)/t.depth}))):(r=n.width,o=n.height,a=uM());var s=t.getData().tree.root,l=s.children[0];if(l){!function(t){var e=t;e.hierNode={defaultAncestor:null,ancestor:e,prelim:0,modifier:0,change:0,shift:0,i:0,thread:null};for(var n,i,r=[e];n=r.pop();)if(i=n.children,n.isExpand&&i.length)for(var o=i.length-1;o>=0;o--){var a=i[o];a.hierNode={defaultAncestor:null,ancestor:a,prelim:0,modifier:0,change:0,shift:0,i:o,thread:null},r.push(a)}}(s),function(t,e,n){for(var i,r=[t],o=[];i=r.pop();)if(o.push(i),i.isExpand){var a=i.children;if(a.length)for(var s=0;s<a.length;s++)r.push(a[s])}for(;i=o.pop();)e(i,n)}(l,sM,a),s.hierNode.modifier=-l.hierNode.prelim,BM(l,lM);var u=l,h=l,c=l;BM(l,(function(t){var e=t.getLayout().x;e<u.getLayout().x&&(u=t),e>h.getLayout().x&&(h=t),t.depth>c.depth&&(c=t)}));var p=u===h?1:a(u,h)/2,d=p-u.getLayout().x,f=0,g=0,y=0,v=0;if("radial"===i)f=r/(h.getLayout().x+p+d),g=o/(c.depth-1||1),BM(l,(function(t){y=(t.getLayout().x+d)*f,v=(t.depth-1)*g;var e=hM(y,v);t.setLayout({x:e.x,y:e.y,rawX:y,rawY:v},!0)}));else{var m=t.getOrient();"RL"===m||"LR"===m?(g=o/(h.getLayout().x+p+d),f=r/(c.depth-1||1),BM(l,(function(t){v=(t.getLayout().x+d)*g,y="LR"===m?(t.depth-1)*f:r-(t.depth-1)*f,t.setLayout({x:y,y:v},!0)}))):"TB"!==m&&"BT"!==m||(f=r/(h.getLayout().x+p+d),g=o/(c.depth-1||1),BM(l,(function(t){y=(t.getLayout().x+d)*f,v="TB"===m?(t.depth-1)*g:o-(t.depth-1)*g,t.setLayout({x:y,y:v},!0)})))}}}(t,e)}))}function FM(t){t.eachSeriesByType("tree",(function(t){var e=t.getData();e.tree.eachNode((function(t){var n=t.getModel().getModel("itemStyle").getItemStyle();M(e.ensureUniqueItemVisual(t.dataIndex,"style"),n)}))}))}function GM(t,e,n){var i=t.getZoom(),r=t.getCenter(),o=e.zoom,a=t.dataToPoint(r);if(null!=e.dx&&null!=e.dy&&(a[0]-=e.dx,a[1]-=e.dy,t.setCenter(t.pointToData(a))),null!=o){if(n){var s=n.min||0,l=n.max||1/0;o=Math.max(Math.min(i*o,l),s)/i}t.scaleX*=o,t.scaleY*=o;var u=(e.originX-t.x)*(o-1),h=(e.originY-t.y)*(o-1);t.x-=u,t.y-=h,t.updateTransform(),t.setCenter(t.pointToData(a)),t.setZoom(o*i)}return{center:t.getCenter(),zoom:t.getZoom()}}function HM(t,e,n){if(t&&C(e,t.type)>=0){var i=n.getData().tree.root,r=t.targetNode;if("string"==typeof r&&(r=i.getNodeById(r)),r&&i.contains(r))return{node:r};var o=t.targetNodeId;if(null!=o&&(r=i.getNodeById(o)))return{node:r}}}function WM(t){for(var e=[];t;)(t=t.parentNode)&&e.push(t);return e.reverse()}function YM(t,e){return C(WM(t),e)>=0}function XM(t,e){for(var n=[];t;){var i=t.dataIndex;n.push({name:t.name,dataIndex:i,value:e.getRawValue(i)}),t=t.parentNode}return n.reverse(),n}var UM=function(){},ZM=["treemapZoomToNode","treemapRender","treemapMove"];function jM(t){var e=t.getData().tree,n={};e.eachNode((function(e){for(var i=e;i&&i.depth>1;)i=i.parentNode;var r=Ac(t.ecModel,i.name||i.dataIndex+"",n);e.setVisual("decal",r)}))}var qM=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.preventUsingHoverLayer=!0,e}return e(n,t),n.prototype.getInitialData=function(t,e){var n={name:t.name,children:t.data};KM(n);var i=t.levels||[],r=this.designatedVisualItemStyle={},o=new rh({itemStyle:r},this,e),a=P((i=t.levels=function(t,e){var n,i,r=lr(e.get("color")),o=lr(e.get(["aria","decal","decals"]));if(!r)return;k(t=t||[],(function(t){var e=new rh(t),r=e.get("color"),o=e.get("decal");(e.get(["itemStyle","color"])||r&&"none"!==r)&&(n=!0),(e.get(["itemStyle","decal"])||o&&"none"!==o)&&(i=!0)}));var a=t[0]||(t[0]={});n||(a.color=r.slice());!i&&o&&(a.decal=o.slice());return t}(i,e))||[],(function(t){return new rh(t,o,e)}),this),s=EM.createTree(n,this,(function(t){t.wrapMethod("getItemModel",(function(t,e){var n=s.getNodeByDataIndex(e),i=a[n.depth];return t.parentModel=i||o,t}))}));return s.data},n.prototype.optionUpdated=function(){this.resetViewRoot()},n.prototype.formatTooltip=function(t,e,n){var i=this.getData(),r=this.getRawValue(t);return ld("nameValue",{name:i.getName(t),value:r})},n.prototype.getDataParams=function(e){var n=t.prototype.getDataParams.apply(this,arguments),i=this.getData().tree.getNodeByDataIndex(e);return n.treePathInfo=XM(i,this),n},n.prototype.setLayoutInfo=function(t){this.layoutInfo=this.layoutInfo||{},M(this.layoutInfo,t)},n.prototype.mapIdToIndex=function(t){var e=this._idIndexMap;e||(e=this._idIndexMap=lt(),this._idIndexMapCount=0);var n=e.get(t);return null==n&&e.set(t,n=this._idIndexMapCount++),n},n.prototype.getViewRoot=function(){return this._viewRoot},n.prototype.resetViewRoot=function(t){t?this._viewRoot=t:t=this._viewRoot;var e=this.getRawData().tree.root;t&&(t===e||e.contains(t))||(this._viewRoot=e)},n.prototype.enableAriaDecal=function(){jM(this)},n.type="series.treemap",n.layoutMode="box",n.defaultOption={progressive:0,left:"center",top:"middle",width:"80%",height:"80%",sort:!0,clipWindow:"origin",squareRatio:.5*(1+Math.sqrt(5)),leafDepth:null,drillDownIcon:"▶",zoomToNodeRatio:.1024,roam:!0,nodeClick:"zoomToNode",animation:!0,animationDurationUpdate:900,animationEasing:"quinticInOut",breadcrumb:{show:!0,height:22,left:"center",top:"bottom",emptyItemWidth:25,itemStyle:{color:"rgba(0,0,0,0.7)",textStyle:{color:"#fff"}}},label:{show:!0,distance:0,padding:5,position:"inside",color:"#fff",overflow:"truncate"},upperLabel:{show:!1,position:[0,"50%"],height:20,overflow:"truncate",verticalAlign:"middle"},itemStyle:{color:null,colorAlpha:null,colorSaturation:null,borderWidth:0,gapWidth:0,borderColor:"#fff",borderColorSaturation:null},emphasis:{upperLabel:{show:!0,position:[0,"50%"],ellipsis:!0,verticalAlign:"middle"}},visualDimension:0,visualMin:null,visualMax:null,color:[],colorAlpha:null,colorSaturation:null,colorMappingBy:"index",visibleMin:10,childrenVisibleMin:null,levels:[]},n}(bd);function KM(t){var e=0;k(t.children,(function(t){KM(t);var n=t.value;V(n)&&(n=n[0]),e+=n}));var n=t.value;V(n)&&(n=n[0]),(null==n||isNaN(n))&&(n=e),n<0&&(n=0),V(t.value)?t.value[0]=n:t.value=n}var $M=function(){function t(t){this.group=new Li,t.add(this.group)}return t.prototype.render=function(t,e,n,i){var r=t.getModel("breadcrumb"),o=this.group;if(o.removeAll(),r.get("show")&&n){var a=r.getModel("itemStyle"),s=a.getModel("textStyle"),l={pos:{left:r.get("left"),right:r.get("right"),top:r.get("top"),bottom:r.get("bottom")},box:{width:e.getWidth(),height:e.getHeight()},emptyItemWidth:r.get("emptyItemWidth"),totalWidth:0,renderList:[]};this._prepare(n,l,s),this._renderContent(t,l,a,s,i),ec(o,l.pos,l.box)}},t.prototype._prepare=function(t,e,n){for(var i=t;i;i=i.parentNode){var r=gr(i.getModel().get("name"),""),o=n.getTextRect(r),a=Math.max(o.width+16,e.emptyItemWidth);e.totalWidth+=a+8,e.renderList.push({node:i,text:r,width:a})}},t.prototype._renderContent=function(t,e,n,i,r){for(var o,a,s,l,u,h,c,p,d,f=0,g=e.emptyItemWidth,y=t.get(["breadcrumb","height"]),v=(o=e.pos,a=e.box,l=a.width,u=a.height,h=Vi(o.left,l),c=Vi(o.top,u),p=Vi(o.right,l),d=Vi(o.bottom,u),(isNaN(h)||isNaN(parseFloat(o.left)))&&(h=0),(isNaN(p)||isNaN(parseFloat(o.right)))&&(p=l),(isNaN(c)||isNaN(parseFloat(o.top)))&&(c=0),(isNaN(d)||isNaN(parseFloat(o.bottom)))&&(d=u),s=Bh(s||0),{width:Math.max(p-h-s[1]-s[3],0),height:Math.max(d-c-s[0]-s[2],0)}),m=e.totalWidth,_=e.renderList,x=_.length-1;x>=0;x--){var b=_[x],w=b.node,S=b.width,M=b.text;m>v.width&&(m-=S-g,S=g,M=null);var T=new Ll({shape:{points:JM(f,0,S,y,x===_.length-1,0===x)},style:I(n.getItemStyle(),{lineJoin:"bevel"}),textContent:new ja({style:{text:M,fill:i.getTextColor(),font:i.getFont()}}),textConfig:{position:"inside"},z:10,onclick:B(r,w)});T.disableLabelAnimation=!0,this.group.add(T),QM(T,t,w),f+=S+8}},t.prototype.remove=function(){this.group.removeAll()},t}();function JM(t,e,n,i,r,o){var a=[[r?t:t-5,e],[t+n,e],[t+n,e+i],[r?t:t-5,e+i]];return!o&&a.splice(2,0,[t+n+5,e+i/2]),!r&&a.push([t,e+i/2]),a}function QM(t,e,n){ns(t).eventData={componentType:"series",componentSubType:"treemap",componentIndex:e.componentIndex,seriesIndex:e.componentIndex,seriesName:e.name,seriesType:"treemap",selfType:"breadcrumb",nodeData:{dataIndex:n&&n.dataIndex,name:n&&n.name},treePathInfo:n&&XM(n,e)}}var tI=function(){function t(){this._storage=[],this._elExistsMap={}}return t.prototype.add=function(t,e,n,i,r){return!this._elExistsMap[t.id]&&(this._elExistsMap[t.id]=!0,this._storage.push({el:t,target:e,duration:n,delay:i,easing:r}),!0)},t.prototype.finished=function(t){return this._finishedCallback=t,this},t.prototype.start=function(){for(var t=this,e=this._storage.length,n=function(){--e<=0&&(t._storage.length=0,t._elExistsMap={},t._finishedCallback&&t._finishedCallback())},i=0,r=this._storage.length;i<r;i++){var o=this._storage[i];o.el.animateTo(o.target,{duration:o.duration,delay:o.delay,easing:o.easing,setToFinal:!0,done:n,aborted:n})}return this},t}();var eI=Li,nI=Xa,iI=zr([["fill","color"],["stroke","strokeColor"],["lineWidth","strokeWidth"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]),rI=function(t){var e=iI(t);return e.stroke=e.fill=e.lineWidth=null,e},oI=_r(),aI=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e._state="ready",e._storage={nodeGroup:[],background:[],content:[]},e}return e(n,t),n.prototype.render=function(t,e,n,i){if(!(C(e.findComponents({mainType:"series",subType:"treemap",query:i}),t)<0)){this.seriesModel=t,this.api=n,this.ecModel=e;var r=HM(i,["treemapZoomToNode","treemapRootToNode"],t),o=i&&i.type,a=t.layoutInfo,s=!this._oldTree,l=this._storage,u="treemapRootToNode"===o&&r&&l?{rootNodeGroup:l.nodeGroup[r.node.getRawIndex()],direction:i.direction}:null,h=this._giveContainerGroup(a),c=this._doRender(h,t,u);s||o&&"treemapZoomToNode"!==o&&"treemapRootToNode"!==o?c.renderFinally():this._doAnimation(h,c,t,u),this._resetController(n),this._renderBreadcrumb(t,n,r)}},n.prototype._giveContainerGroup=function(t){var e=this._containerGroup;return e||(e=this._containerGroup=new eI,this._initEvents(e),this.group.add(e)),e.x=t.x,e.y=t.y,e},n.prototype._doRender=function(t,e,n){var i=e.getData().tree,r=this._oldTree,o={nodeGroup:[],background:[],content:[]},a={nodeGroup:[],background:[],content:[]},s=this._storage,l=[];function u(t,i,r,u){return function(t,e,n,i,r,o,a,s,l,u){if(!a)return;var h=a.getLayout(),c=t.getData(),p=a.getModel();if(c.setItemGraphicEl(a.dataIndex,null),!h||!h.isInView)return;var d=h.width,f=h.height,g=h.borderWidth,y=h.invisible,v=a.getRawIndex(),m=s&&s.getRawIndex(),_=a.viewChildren,x=h.upperHeight,b=_&&_.length,w=p.getModel("itemStyle"),S=p.getModel(["emphasis","itemStyle"]),I=p.getModel(["blur","itemStyle"]),T=p.getModel(["select","itemStyle"]),C=w.get("borderRadius")||0,A=V("nodeGroup",eI);if(!A)return;if(l.add(A),A.x=h.x||0,A.y=h.y||0,A.markRedraw(),oI(A).nodeWidth=d,oI(A).nodeHeight=f,h.isAboveViewRoot)return A;var D=V("background",nI,u,1);D&&R(A,D,b&&h.upperLabelHeight);var L=p.get(["emphasis","focus"]),k=p.get(["emphasis","blurScope"]),P="ancestor"===L?a.getAncestorsIndices():"descendant"===L?a.getDescendantIndices():null;if(b)Vs(A)&&Bs(A,!1),D&&(Bs(D,!0),c.setItemGraphicEl(a.dataIndex,D),Rs(D,P||L,k));else{var O=V("content",nI,u,2);O&&N(A,O),D&&Vs(D)&&Bs(D,!1),Bs(A,!0),c.setItemGraphicEl(a.dataIndex,A),Rs(A,P||L,k)}return A;function R(e,n,i){var r=ns(n);if(r.dataIndex=a.dataIndex,r.seriesIndex=t.seriesIndex,n.setShape({x:0,y:0,width:d,height:f,r:C}),y)E(n);else{n.invisible=!1;var o=a.getVisual("style"),s=o.stroke,l=rI(w);l.fill=s;var u=iI(S);u.fill=S.get("borderColor");var h=iI(I);h.fill=I.get("borderColor");var c=iI(T);if(c.fill=T.get("borderColor"),i){var p=d-2*g;z(n,s,p,x,o.opacity,{x:g,y:0,width:p,height:x})}else n.removeTextContent();n.setStyle(l),n.ensureState("emphasis").style=u,n.ensureState("blur").style=h,n.ensureState("select").style=c,ws(n)}e.add(n)}function N(e,n){var i=ns(n);i.dataIndex=a.dataIndex,i.seriesIndex=t.seriesIndex;var r=Math.max(d-2*g,0),o=Math.max(f-2*g,0);if(n.culling=!0,n.setShape({x:g,y:g,width:r,height:o,r:C}),y)E(n);else{n.invisible=!1;var s=a.getVisual("style"),l=s.fill,u=rI(w);u.fill=l,u.decal=s.decal;var h=iI(S),c=iI(I),p=iI(T);z(n,l,r,s.opacity),n.setStyle(u),n.ensureState("emphasis").style=h,n.ensureState("blur").style=c,n.ensureState("select").style=p,ws(n)}e.add(n)}function E(t){!t.invisible&&o.push(t)}function z(e,n,i,r,o,s){var l=p.getModel(s?"upperLabel":"label"),u=J(t.getFormattedLabel(a.dataIndex,"normal",null,null,l.get("formatter")),gr(p.get("name"),null));if(!s&&h.isLeafRoot){var c=t.get("drillDownIcon",!0);u=c?c+" "+u:u}var d=l.getShallow("show");Nu(e,Eu(p,s?"upperLabel":"label"),{defaultText:d?u:null,inheritColor:n,defaultOpacity:i,labelFetcher:t,labelDataIndex:a.dataIndex});var f=e.getTextContent(),g=f.style,y=nt(g.padding||0);s&&(e.setTextConfig({layoutRect:s}),f.disableLabelLayout=!0),f.beforeUpdate=function(){var t=Math.max((s?s.width:e.shape.width)-y[1]-y[3],0),n=Math.max((s?s.height:e.shape.height)-y[0]-y[2],0);g.width===t&&g.height===n||f.setStyle({width:t,height:n})},g.truncateMinChar=2,g.lineOverflow="truncate",B(g,s,h);var v=f.getState("emphasis");B(v?v.style:null,s,h)}function B(e,n,i){var r=e?e.text:null;if(!n&&i.isLeafRoot&&null!=r){var o=t.get("drillDownIcon",!0);e.text=o?o+" "+r:r}}function V(t,i,o,a){var s=null!=m&&n[t][m],l=r[t];return s?(n[t][m]=null,F(l,s)):y||((s=new i)instanceof so&&(s.z=function(t,e){var n=10*t+e;return(n-1)/n}(o,a)),G(l,s)),e[t][v]=s}function F(t,e){var n=t[v]={};e instanceof eI?(n.oldX=e.x,n.oldY=e.y):n.oldShape=M({},e.shape)}function G(t,e){var n=t[v]={},o=a.parentNode,s=e instanceof Li;if(o&&(!i||"drillDown"===i.direction)){var l=0,u=0,h=r.background[o.getRawIndex()];!i&&h&&h.oldShape&&(l=h.oldShape.width,u=h.oldShape.height),s?(n.oldX=0,n.oldY=u):n.oldShape={x:l,y:u,width:0,height:0}}n.fadein=!s}}(e,a,s,n,o,l,t,i,r,u)}!function t(e,n,i,r,o){r?(n=e,k(e,(function(t,e){!t.isRemoved()&&s(e,e)}))):new Iv(n,e,a,a).add(s).update(s).remove(B(s,null)).execute();function a(t){return t.getId()}function s(a,s){var l=null!=a?e[a]:null,h=null!=s?n[s]:null,c=u(l,h,i,o);c&&t(l&&l.viewChildren||[],h&&h.viewChildren||[],c,r,o+1)}}(i.root?[i.root]:[],r&&r.root?[r.root]:[],t,i===r||!r,0);var h=function(t){var e={nodeGroup:[],background:[],content:[]};return t&&k(t,(function(t,n){var i=e[n];k(t,(function(t){t&&(i.push(t),oI(t).willDelete=!0)}))})),e}(s);return this._oldTree=i,this._storage=a,{lastsForAnimation:o,willDeleteEls:h,renderFinally:function(){k(h,(function(t){k(t,(function(t){t.parent&&t.parent.remove(t)}))})),k(l,(function(t){t.invisible=!0,t.dirty()}))}}},n.prototype._doAnimation=function(t,e,n,i){if(n.get("animation")){var r=n.get("animationDurationUpdate"),o=n.get("animationEasing"),a=(F(r)?0:r)||0,s=(F(o)?null:o)||"cubicOut",l=new tI;k(e.willDeleteEls,(function(t,e){k(t,(function(t,n){if(!t.invisible){var r,o=t.parent,u=oI(o);if(i&&"drillDown"===i.direction)r=o===i.rootNodeGroup?{shape:{x:0,y:0,width:u.nodeWidth,height:u.nodeHeight},style:{opacity:0}}:{style:{opacity:0}};else{var h=0,c=0;u.willDelete||(h=u.nodeWidth/2,c=u.nodeHeight/2),r="nodeGroup"===e?{x:h,y:c,style:{opacity:0}}:{shape:{x:h,y:c,width:0,height:0},style:{opacity:0}}}r&&l.add(t,r,a,0,s)}}))})),k(this._storage,(function(t,n){k(t,(function(t,i){var r=e.lastsForAnimation[n][i],o={};r&&(t instanceof Li?null!=r.oldX&&(o.x=t.x,o.y=t.y,t.x=r.oldX,t.y=r.oldY):(r.oldShape&&(o.shape=M({},t.shape),t.setShape(r.oldShape)),r.fadein?(t.setStyle("opacity",0),o.style={opacity:1}):1!==t.style.opacity&&(o.style={opacity:1})),l.add(t,o,a,0,s))}))}),this),this._state="animating",l.finished(z((function(){this._state="ready",e.renderFinally()}),this)).start()}},n.prototype._resetController=function(t){var e=this._controller;e||((e=this._controller=new vS(t.getZr())).enable(this.seriesModel.get("roam")),e.on("pan",z(this._onPan,this)),e.on("zoom",z(this._onZoom,this)));var n=new Ln(0,0,t.getWidth(),t.getHeight());e.setPointerChecker((function(t,e,i){return n.contain(e,i)}))},n.prototype._clearController=function(){var t=this._controller;t&&(t.dispose(),t=null)},n.prototype._onPan=function(t){if("animating"!==this._state&&(Math.abs(t.dx)>3||Math.abs(t.dy)>3)){var e=this.seriesModel.getData().tree.root;if(!e)return;var n=e.getLayout();if(!n)return;this.api.dispatchAction({type:"treemapMove",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:n.x+t.dx,y:n.y+t.dy,width:n.width,height:n.height}})}},n.prototype._onZoom=function(t){var e=t.originX,n=t.originY;if("animating"!==this._state){var i=this.seriesModel.getData().tree.root;if(!i)return;var r=i.getLayout();if(!r)return;var o=new Ln(r.x,r.y,r.width,r.height),a=this.seriesModel.layoutInfo,s=[1,0,0,1,0,0];ge(s,s,[-(e-=a.x),-(n-=a.y)]),ve(s,s,[t.scale,t.scale]),ge(s,s,[e,n]),o.applyTransform(s),this.api.dispatchAction({type:"treemapRender",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:o.x,y:o.y,width:o.width,height:o.height}})}},n.prototype._initEvents=function(t){var e=this;t.on("click",(function(t){if("ready"===e._state){var n=e.seriesModel.get("nodeClick",!0);if(n){var i=e.findTarget(t.offsetX,t.offsetY);if(i){var r=i.node;if(r.getLayout().isLeafRoot)e._rootToNode(i);else if("zoomToNode"===n)e._zoomToNode(i);else if("link"===n){var o=r.hostTree.data.getItemModel(r.dataIndex),a=o.get("link",!0),s=o.get("target",!0)||"blank";a&&jh(a,s)}}}}}),this)},n.prototype._renderBreadcrumb=function(t,e,n){var i=this;n||(n=null!=t.get("leafDepth",!0)?{node:t.getViewRoot()}:this.findTarget(e.getWidth()/2,e.getHeight()/2))||(n={node:t.getData().tree.root}),(this._breadcrumb||(this._breadcrumb=new $M(this.group))).render(t,e,n.node,(function(e){"animating"!==i._state&&(YM(t.getViewRoot(),e)?i._rootToNode({node:e}):i._zoomToNode({node:e}))}))},n.prototype.remove=function(){this._clearController(),this._containerGroup&&this._containerGroup.removeAll(),this._storage={nodeGroup:[],background:[],content:[]},this._state="ready",this._breadcrumb&&this._breadcrumb.remove()},n.prototype.dispose=function(){this._clearController()},n.prototype._zoomToNode=function(t){this.api.dispatchAction({type:"treemapZoomToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:t.node})},n.prototype._rootToNode=function(t){this.api.dispatchAction({type:"treemapRootToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:t.node})},n.prototype.findTarget=function(t,e){var n;return this.seriesModel.getViewRoot().eachNode({attr:"viewChildren",order:"preorder"},(function(i){var r=this._storage.background[i.getRawIndex()];if(r){var o=r.transformCoordToLocal(t,e),a=r.shape;if(!(a.x<=o[0]&&o[0]<=a.x+a.width&&a.y<=o[1]&&o[1]<=a.y+a.height))return!1;n={node:i,offsetX:o[0],offsetY:o[1]}}}),this),n},n.type="treemap",n}(Od);var sI=k,lI=Y,uI=function(){function t(e){var n=e.mappingMethod,i=e.type,r=this.option=b(e);this.type=i,this.mappingMethod=n,this._normalizeData=_I[n];var o=t.visualHandlers[i];this.applyVisual=o.applyVisual,this.getColorMapper=o.getColorMapper,this._normalizedToVisual=o._normalizedToVisual[n],"piecewise"===n?(hI(r),function(t){var e=t.pieceList;t.hasSpecialVisual=!1,k(e,(function(e,n){e.originIndex=n,null!=e.visual&&(t.hasSpecialVisual=!0)}))}(r)):"category"===n?r.categories?function(t){var e=t.categories,n=t.categoryMap={},i=t.visual;if(sI(e,(function(t,e){n[t]=e})),!V(i)){var r=[];Y(i)?sI(i,(function(t,e){var i=n[e];r[null!=i?i:-1]=t})):r[-1]=i,i=mI(t,r)}for(var o=e.length-1;o>=0;o--)null==i[o]&&(delete n[e[o]],e.pop())}(r):hI(r,!0):(it("linear"!==n||r.dataExtent),hI(r))}return t.prototype.mapValueToVisual=function(t){var e=this._normalizeData(t);return this._normalizedToVisual(e,t)},t.prototype.getNormalizer=function(){return z(this._normalizeData,this)},t.listVisualTypes=function(){return E(t.visualHandlers)},t.isValidType=function(e){return t.visualHandlers.hasOwnProperty(e)},t.eachVisual=function(t,e,n){Y(t)?k(t,e,n):e.call(n,t)},t.mapVisual=function(e,n,i){var r,o=V(e)?[]:Y(e)?{}:(r=!0,null);return t.eachVisual(e,(function(t,e){var a=n.call(i,t,e);r?o=a:o[e]=a})),o},t.retrieveVisuals=function(e){var n,i={};return e&&sI(t.visualHandlers,(function(t,r){e.hasOwnProperty(r)&&(i[r]=e[r],n=!0)})),n?i:null},t.prepareVisualTypes=function(t){if(V(t))t=t.slice();else{if(!lI(t))return[];var e=[];sI(t,(function(t,n){e.push(n)})),t=e}return t.sort((function(t,e){return"color"===e&&"color"!==t&&0===t.indexOf("color")?1:-1})),t},t.dependsOn=function(t,e){return"color"===e?!(!t||0!==t.indexOf(e)):t===e},t.findPieceIndex=function(t,e,n){for(var i,r=1/0,o=0,a=e.length;o<a;o++){var s=e[o].value;if(null!=s){if(s===t||"string"==typeof s&&s===t+"")return o;n&&c(s,o)}}for(o=0,a=e.length;o<a;o++){var l=e[o],u=l.interval,h=l.close;if(u){if(u[0]===-1/0){if(xI(h[1],t,u[1]))return o}else if(u[1]===1/0){if(xI(h[0],u[0],t))return o}else if(xI(h[0],u[0],t)&&xI(h[1],t,u[1]))return o;n&&c(u[0],o),n&&c(u[1],o)}}if(n)return t===1/0?e.length-1:t===-1/0?0:i;function c(e,n){var o=Math.abs(e-t);o<r&&(r=o,i=n)}},t.visualHandlers={color:{applyVisual:dI("color"),getColorMapper:function(){var t=this.option;return z("category"===t.mappingMethod?function(t,e){return!e&&(t=this._normalizeData(t)),fI.call(this,t)}:function(e,n,i){var r=!!i;return!n&&(e=this._normalizeData(e)),i=qe(e,t.parsedVisual,i),r?i:en(i,"rgba")},this)},_normalizedToVisual:{linear:function(t){return en(qe(t,this.option.parsedVisual),"rgba")},category:fI,piecewise:function(t,e){var n=vI.call(this,e);return null==n&&(n=en(qe(t,this.option.parsedVisual),"rgba")),n},fixed:gI}},colorHue:cI((function(t,e){return Qe(t,e)})),colorSaturation:cI((function(t,e){return Qe(t,null,e)})),colorLightness:cI((function(t,e){return Qe(t,null,null,e)})),colorAlpha:cI((function(t,e){return tn(t,e)})),decal:{applyVisual:dI("decal"),_normalizedToVisual:{linear:null,category:fI,piecewise:null,fixed:null}},opacity:{applyVisual:dI("opacity"),_normalizedToVisual:yI([0,1])},liftZ:{applyVisual:dI("liftZ"),_normalizedToVisual:{linear:gI,category:gI,piecewise:gI,fixed:gI}},symbol:{applyVisual:function(t,e,n){n("symbol",this.mapValueToVisual(t))},_normalizedToVisual:{linear:pI,category:fI,piecewise:function(t,e){var n=vI.call(this,e);return null==n&&(n=pI.call(this,t)),n},fixed:gI}},symbolSize:{applyVisual:dI("symbolSize"),_normalizedToVisual:yI([0,1])}},t}();function hI(t,e){var n=t.visual,i=[];Y(n)?sI(n,(function(t){i.push(t)})):null!=n&&i.push(n);e||1!==i.length||{color:1,symbol:1}.hasOwnProperty(t.type)||(i[1]=i[0]),mI(t,i)}function cI(t){return{applyVisual:function(e,n,i){var r=this.mapValueToVisual(e);i("color",t(n("color"),r))},_normalizedToVisual:yI([0,1])}}function pI(t){var e=this.option.visual;return e[Math.round(Bi(t,[0,1],[0,e.length-1],!0))]||{}}function dI(t){return function(e,n,i){i(t,this.mapValueToVisual(e))}}function fI(t){var e=this.option.visual;return e[this.option.loop&&-1!==t?t%e.length:t]}function gI(){return this.option.visual[0]}function yI(t){return{linear:function(e){return Bi(e,t,this.option.visual,!0)},category:fI,piecewise:function(e,n){var i=vI.call(this,n);return null==i&&(i=Bi(e,t,this.option.visual,!0)),i},fixed:gI}}function vI(t){var e=this.option,n=e.pieceList;if(e.hasSpecialVisual){var i=n[uI.findPieceIndex(t,n)];if(i&&i.visual)return i.visual[this.type]}}function mI(t,e){return t.visual=e,"color"===t.type&&(t.parsedVisual=P(e,(function(t){return Xe(t)}))),e}var _I={linear:function(t){return Bi(t,this.option.dataExtent,[0,1],!0)},piecewise:function(t){var e=this.option.pieceList,n=uI.findPieceIndex(t,e,!0);if(null!=n)return Bi(n,[0,e.length-1],[0,1],!0)},category:function(t){var e=this.option.categories?this.option.categoryMap[t]:t;return null==e?-1:e},fixed:pt};function xI(t,e,n){return t?e<=n:e<n}var bI=_r(),wI={seriesType:"treemap",reset:function(t){var e=t.getData().tree.root;e.isRemoved()||SI(e,{},t.getViewRoot().getAncestors(),t)}};function SI(t,e,n,i){var r=t.getModel(),o=t.getLayout(),a=t.hostTree.data;if(o&&!o.invisible&&o.isInView){var s,l=r.getModel("itemStyle"),u=function(t,e,n){var i=M({},e),r=n.designatedVisualItemStyle;return k(["color","colorAlpha","colorSaturation"],(function(n){r[n]=e[n];var o=t.get(n);r[n]=null,null!=o&&(i[n]=o)})),i}(l,e,i),h=a.ensureUniqueItemVisual(t.dataIndex,"style"),c=l.get("borderColor"),p=l.get("borderColorSaturation");null!=p&&(c=function(t,e){return null!=e?Qe(e,null,null,t):null}(p,s=MI(u))),h.stroke=c;var d=t.viewChildren;if(d&&d.length){var f=function(t,e,n,i,r,o){if(!o||!o.length)return;var a=TI(e,"color")||null!=r.color&&"none"!==r.color&&(TI(e,"colorAlpha")||TI(e,"colorSaturation"));if(!a)return;var s=e.get("visualMin"),l=e.get("visualMax"),u=n.dataExtent.slice();null!=s&&s<u[0]&&(u[0]=s),null!=l&&l>u[1]&&(u[1]=l);var h=e.get("colorMappingBy"),c={type:a.name,dataExtent:u,visual:a.range};"color"!==c.type||"index"!==h&&"id"!==h?c.mappingMethod="linear":(c.mappingMethod="category",c.loop=!0);var p=new uI(c);return bI(p).drColorMappingBy=h,p}(0,r,o,0,u,d);k(d,(function(t,e){if(t.depth>=n.length||t===n[t.depth]){var o=function(t,e,n,i,r,o){var a=M({},e);if(r){var s=r.type,l="color"===s&&bI(r).drColorMappingBy,u="index"===l?i:"id"===l?o.mapIdToIndex(n.getId()):n.getValue(t.get("visualDimension"));a[s]=r.mapValueToVisual(u)}return a}(r,u,t,e,f,i);SI(t,o,n,i)}}))}else s=MI(u),h.fill=s}}function MI(t){var e=II(t,"color");if(e){var n=II(t,"colorAlpha"),i=II(t,"colorSaturation");return i&&(e=Qe(e,null,null,i)),n&&(e=tn(e,n)),e}}function II(t,e){var n=t[e];if(null!=n&&"none"!==n)return n}function TI(t,e){var n=t.get(e);return V(n)&&n.length?{name:e,range:n}:null}var CI=Math.max,AI=Math.min,DI=J,LI=k,kI=["itemStyle","borderWidth"],PI=["itemStyle","gapWidth"],OI=["upperLabel","show"],RI=["upperLabel","height"],NI={seriesType:"treemap",reset:function(t,e,n,i){var r=n.getWidth(),o=n.getHeight(),a=t.option,s=tc(t.getBoxLayoutParams(),{width:n.getWidth(),height:n.getHeight()}),l=a.size||[],u=Vi(DI(s.width,l[0]),r),h=Vi(DI(s.height,l[1]),o),c=i&&i.type,p=HM(i,["treemapZoomToNode","treemapRootToNode"],t),d="treemapRender"===c||"treemapMove"===c?i.rootRect:null,f=t.getViewRoot(),g=WM(f);if("treemapMove"!==c){var y="treemapZoomToNode"===c?function(t,e,n,i,r){var o,a=(e||{}).node,s=[i,r];if(!a||a===n)return s;var l=i*r,u=l*t.option.zoomToNodeRatio;for(;o=a.parentNode;){for(var h=0,c=o.children,p=0,d=c.length;p<d;p++)h+=c[p].getValue();var f=a.getValue();if(0===f)return s;u*=h/f;var g=o.getModel(),y=g.get(kI);(u+=4*y*y+(3*y+Math.max(y,FI(g)))*Math.pow(u,.5))>9007199254740991&&(u=9007199254740991),a=o}u<l&&(u=l);var v=Math.pow(u/l,.5);return[i*v,r*v]}(t,p,f,u,h):d?[d.width,d.height]:[u,h],v=a.sort;v&&"asc"!==v&&"desc"!==v&&(v="desc");var m={squareRatio:a.squareRatio,sort:v,leafDepth:a.leafDepth};f.hostTree.clearLayouts();var _={x:0,y:0,width:y[0],height:y[1],area:y[0]*y[1]};f.setLayout(_),EI(f,m,!1,0),_=f.getLayout(),LI(g,(function(t,e){var n=(g[e+1]||f).getValue();t.setLayout(M({dataExtent:[n,n],borderWidth:0,upperHeight:0},_))}))}var x=t.getData().tree.root;x.setLayout(function(t,e,n){if(e)return{x:e.x,y:e.y};var i={x:0,y:0};if(!n)return i;var r=n.node,o=r.getLayout();if(!o)return i;var a=[o.width/2,o.height/2],s=r;for(;s;){var l=s.getLayout();a[0]+=l.x,a[1]+=l.y,s=s.parentNode}return{x:t.width/2-a[0],y:t.height/2-a[1]}}(s,d,p),!0),t.setLayoutInfo(s),VI(x,new Ln(-s.x,-s.y,r,o),g,f,0)}};function EI(t,e,n,i){var r,o;if(!t.isRemoved()){var a=t.getLayout();r=a.width,o=a.height;var s=t.getModel(),l=s.get(kI),u=s.get(PI)/2,h=FI(s),c=Math.max(l,h),p=l-u,d=c-u;t.setLayout({borderWidth:l,upperHeight:c,upperLabelHeight:h},!0);var f=(r=CI(r-2*p,0))*(o=CI(o-p-d,0)),g=function(t,e,n,i,r,o){var a=t.children||[],s=i.sort;"asc"!==s&&"desc"!==s&&(s=null);var l=null!=i.leafDepth&&i.leafDepth<=o;if(r&&!l)return t.viewChildren=[];!function(t,e){e&&t.sort((function(t,n){var i="asc"===e?t.getValue()-n.getValue():n.getValue()-t.getValue();return 0===i?"asc"===e?t.dataIndex-n.dataIndex:n.dataIndex-t.dataIndex:i}))}(a=R(a,(function(t){return!t.isRemoved()})),s);var u=function(t,e,n){for(var i=0,r=0,o=e.length;r<o;r++)i+=e[r].getValue();var a,s=t.get("visualDimension");e&&e.length?"value"===s&&n?(a=[e[e.length-1].getValue(),e[0].getValue()],"asc"===n&&a.reverse()):(a=[1/0,-1/0],LI(e,(function(t){var e=t.getValue(s);e<a[0]&&(a[0]=e),e>a[1]&&(a[1]=e)}))):a=[NaN,NaN];return{sum:i,dataExtent:a}}(e,a,s);if(0===u.sum)return t.viewChildren=[];if(u.sum=function(t,e,n,i,r){if(!i)return n;for(var o=t.get("visibleMin"),a=r.length,s=a,l=a-1;l>=0;l--){var u=r["asc"===i?a-l-1:l].getValue();u/n*e<o&&(s=l,n-=u)}return"asc"===i?r.splice(0,a-s):r.splice(s,a-s),n}(e,n,u.sum,s,a),0===u.sum)return t.viewChildren=[];for(var h=0,c=a.length;h<c;h++){var p=a[h].getValue()/u.sum*n;a[h].setLayout({area:p})}l&&(a.length&&t.setLayout({isLeafRoot:!0},!0),a.length=0);return t.viewChildren=a,t.setLayout({dataExtent:u.dataExtent},!0),a}(t,s,f,e,n,i);if(g.length){var y={x:p,y:d,width:r,height:o},v=AI(r,o),m=1/0,_=[];_.area=0;for(var x=0,b=g.length;x<b;){var w=g[x];_.push(w),_.area+=w.getLayout().area;var S=zI(_,v,e.squareRatio);S<=m?(x++,m=S):(_.area-=_.pop().getLayout().area,BI(_,v,y,u,!1),v=AI(y.width,y.height),_.length=_.area=0,m=1/0)}if(_.length&&BI(_,v,y,u,!0),!n){var M=s.get("childrenVisibleMin");null!=M&&f<M&&(n=!0)}for(x=0,b=g.length;x<b;x++)EI(g[x],e,n,i+1)}}}function zI(t,e,n){for(var i=0,r=1/0,o=0,a=void 0,s=t.length;o<s;o++)(a=t[o].getLayout().area)&&(a<r&&(r=a),a>i&&(i=a));var l=t.area*t.area,u=e*e*n;return l?CI(u*i/l,l/(u*r)):1/0}function BI(t,e,n,i,r){var o=e===n.width?0:1,a=1-o,s=["x","y"],l=["width","height"],u=n[s[o]],h=e?t.area/e:0;(r||h>n[l[a]])&&(h=n[l[a]]);for(var c=0,p=t.length;c<p;c++){var d=t[c],f={},g=h?d.getLayout().area/h:0,y=f[l[a]]=CI(h-2*i,0),v=n[s[o]]+n[l[o]]-u,m=c===p-1||v<g?v:g,_=f[l[o]]=CI(m-2*i,0);f[s[a]]=n[s[a]]+AI(i,y/2),f[s[o]]=u+AI(i,_/2),u+=m,d.setLayout(f,!0)}n[s[a]]+=h,n[l[a]]-=h}function VI(t,e,n,i,r){var o=t.getLayout(),a=n[r],s=a&&a===t;if(!(a&&!s||r===n.length&&t!==i)){t.setLayout({isInView:!0,invisible:!s&&!e.intersect(o),isAboveViewRoot:s},!0);var l=new Ln(e.x-o.x,e.y-o.y,e.width,e.height);LI(t.viewChildren||[],(function(t){VI(t,l,n,i,r+1)}))}}function FI(t){return t.get(OI)?t.get(RI):0}function GI(t){var e=t.findComponents({mainType:"legend"});e&&e.length&&t.eachSeriesByType("graph",(function(t){var n=t.getCategoriesData(),i=t.getGraph().data,r=n.mapArray(n.getName);i.filterSelf((function(t){var n=i.getItemModel(t).getShallow("category");if(null!=n){"number"==typeof n&&(n=r[n]);for(var o=0;o<e.length;o++)if(!e[o].isSelected(n))return!1}return!0}))}))}function HI(t){var e={};t.eachSeriesByType("graph",(function(t){var n=t.getCategoriesData(),i=t.getData(),r={};n.each((function(i){var o=n.getName(i);r["ec-"+o]=i;var a=n.getItemModel(i),s=a.getModel("itemStyle").getItemStyle();s.fill||(s.fill=t.getColorFromPalette(o,e)),n.setItemVisual(i,"style",s);for(var l=["symbol","symbolSize","symbolKeepAspect"],u=0;u<l.length;u++){var h=a.getShallow(l[u],!0);null!=h&&n.setItemVisual(i,l[u],h)}})),n.count()&&i.each((function(t){var e=i.getItemModel(t).getShallow("category");if(null!=e){"string"==typeof e&&(e=r["ec-"+e]);var o=n.getItemVisual(e,"style");M(i.ensureUniqueItemVisual(t,"style"),o);for(var a=["symbol","symbolSize","symbolKeepAspect"],s=0;s<a.length;s++)i.setItemVisual(t,a[s],n.getItemVisual(e,a[s]))}}))}))}function WI(t){return t instanceof Array||(t=[t,t]),t}function YI(t){t.eachSeriesByType("graph",(function(t){var e=t.getGraph(),n=t.getEdgeData(),i=WI(t.get("edgeSymbol")),r=WI(t.get("edgeSymbolSize"));n.setVisual("fromSymbol",i&&i[0]),n.setVisual("toSymbol",i&&i[1]),n.setVisual("fromSymbolSize",r&&r[0]),n.setVisual("toSymbolSize",r&&r[1]),n.setVisual("style",t.getModel("lineStyle").getLineStyle()),n.each((function(t){var i=n.getItemModel(t),r=e.getEdgeByIndex(t),o=WI(i.getShallow("symbol",!0)),a=WI(i.getShallow("symbolSize",!0)),s=i.getModel("lineStyle").getLineStyle(),l=n.ensureUniqueItemVisual(t,"style");switch(M(l,s),l.stroke){case"source":var u=r.node1.getVisual("style");l.stroke=u&&u.fill;break;case"target":u=r.node2.getVisual("style");l.stroke=u&&u.fill}o[0]&&r.setVisual("fromSymbol",o[0]),o[1]&&r.setVisual("toSymbol",o[1]),a[0]&&r.setVisual("fromSymbolSize",a[0]),a[1]&&r.setVisual("toSymbolSize",a[1])}))}))}var XI=function(t){return t.get("autoCurveness")||null},UI=function(t,e){var n=XI(t),i=20,r=[];if("number"==typeof n)i=n;else if(V(n))return void(t.__curvenessList=n);e>i&&(i=e);var o=i%2?i+2:i+3;r=[];for(var a=0;a<o;a++)r.push((a%2?a+1:a)/10*(a%2?-1:1));t.__curvenessList=r},ZI=function(t,e,n){var i=[t.id,t.dataIndex].join("."),r=[e.id,e.dataIndex].join(".");return[n.uid,i,r].join("--\x3e")},jI=function(t){var e=t.split("--\x3e");return[e[0],e[2],e[1]].join("--\x3e")},qI=function(t,e){var n=e.__edgeMap;return n[t]?n[t].length:0};function KI(t,e,n,i){var r=XI(e),o=V(r);if(!r)return null;var a=function(t,e){var n=ZI(t.node1,t.node2,e);return e.__edgeMap[n]}(t,e);if(!a)return null;for(var s=-1,l=0;l<a.length;l++)if(a[l]===n){s=l;break}var u=function(t,e){return qI(ZI(t.node1,t.node2,e),e)+qI(ZI(t.node2,t.node1,e),e)}(t,e);UI(e,u),t.lineStyle=t.lineStyle||{};var h=ZI(t.node1,t.node2,e),c=e.__curvenessList,p=o||u%2?0:1;if(a.isForward)return c[p+s];var d=jI(h),f=qI(d,e),g=c[s+f+p];return i?o?r&&0===r[0]?(f+p)%2?g:-g:((f%2?0:1)+p)%2?g:-g:(f+p)%2?g:-g:c[s+f+p]}function $I(t){var e=t.coordinateSystem;if(!e||"view"===e.type){var n=t.getGraph();n.eachNode((function(t){var e=t.getModel();t.setLayout([+e.get("x"),+e.get("y")])})),JI(n,t)}}function JI(t,e){t.eachEdge((function(t,n){var i=tt(t.getModel().get(["lineStyle","curveness"]),-KI(t,e,n,!0),0),r=yt(t.node1.getLayout()),o=yt(t.node2.getLayout()),a=[r,o];+i&&a.push([(r[0]+o[0])/2-(r[1]-o[1])*i,(r[1]+o[1])/2-(o[0]-r[0])*i]),t.setLayout(a)}))}function QI(t,e){t.eachSeriesByType("graph",(function(t){var e=t.get("layout"),n=t.coordinateSystem;if(n&&"view"!==n.type){var i=t.getData(),r=[];k(n.dimensions,(function(t){r=r.concat(i.mapDimensionsAll(t))}));for(var o=0;o<i.count();o++){for(var a=[],s=!1,l=0;l<r.length;l++){var u=i.get(r[l],o);isNaN(u)||(s=!0),a.push(u)}s?i.setItemLayout(o,n.dataToPoint(a)):i.setItemLayout(o,[NaN,NaN])}JI(i.graph,t)}else e&&"none"!==e||$I(t)}))}function tT(t){var e=t.coordinateSystem;if("view"!==e.type)return 1;var n=t.option.nodeScaleRatio,i=e.scaleX;return((e.getZoom()-1)*n+1)/i}function eT(t){var e=t.getVisual("symbolSize");return e instanceof Array&&(e=(e[0]+e[1])/2),+e}var nT=Math.PI,iT=[];function rT(t,e){var n=t.coordinateSystem;if(!n||"view"===n.type){var i=n.getBoundingRect(),r=t.getData(),o=r.graph,a=i.width/2+i.x,s=i.height/2+i.y,l=Math.min(i.width,i.height)/2,u=r.count();r.setLayout({cx:a,cy:s}),u&&(oT[e](t,o,r,l,a,s,u),o.eachEdge((function(e,n){var i,r=tt(e.getModel().get(["lineStyle","curveness"]),KI(e,t,n),0),o=yt(e.node1.getLayout()),l=yt(e.node2.getLayout()),u=(o[0]+l[0])/2,h=(o[1]+l[1])/2;+r&&(i=[a*(r*=3)+u*(1-r),s*r+h*(1-r)]),e.setLayout([o,l,i])})))}}var oT={value:function(t,e,n,i,r,o,a){var s=0,l=n.getSum("value"),u=2*Math.PI/(l||a);e.eachNode((function(t){var e=t.getValue("value"),n=u*(l?e:1)/2;s+=n,t.setLayout([i*Math.cos(s)+r,i*Math.sin(s)+o]),s+=n}))},symbolSize:function(t,e,n,i,r,o,a){var s=0;iT.length=a;var l=tT(t);e.eachNode((function(t){var e=eT(t);isNaN(e)&&(e=2),e<0&&(e=0),e*=l;var n=Math.asin(e/2/i);isNaN(n)&&(n=nT/2),iT[t.dataIndex]=n,s+=2*n}));var u=(2*nT-s)/a/2,h=0;e.eachNode((function(t){var e=u+iT[t.dataIndex];h+=e,t.setLayout([i*Math.cos(h)+r,i*Math.sin(h)+o]),h+=e}))}};function aT(t){t.eachSeriesByType("graph",(function(t){"circular"===t.get("layout")&&rT(t,"symbolSize")}))}var sT=_t;function lT(t){t.eachSeriesByType("graph",(function(t){var e=t.coordinateSystem;if(!e||"view"===e.type)if("force"===t.get("layout")){var n=t.preservedPoints||{},i=t.getGraph(),r=i.data,o=i.edgeData,a=t.getModel("force"),s=a.get("initLayout");t.preservedPoints?r.each((function(t){var e=r.getId(t);r.setItemLayout(t,n[e]||[NaN,NaN])})):s&&"none"!==s?"circular"===s&&rT(t,"value"):$I(t);var l=r.getDataExtent("value"),u=o.getDataExtent("value"),h=a.get("repulsion"),c=a.get("edgeLength"),p=V(h)?h:[h,h],d=V(c)?c:[c,c];d=[d[1],d[0]];var f=r.mapArray("value",(function(t,e){var n=r.getItemLayout(e),i=Bi(t,l,p);return isNaN(i)&&(i=(p[0]+p[1])/2),{w:i,rep:i,fixed:r.getItemModel(e).get("fixed"),p:!n||isNaN(n[0])||isNaN(n[1])?null:n}})),g=o.mapArray("value",(function(e,n){var r=i.getEdgeByIndex(n),o=Bi(e,u,d);isNaN(o)&&(o=(d[0]+d[1])/2);var a=r.getModel(),s=tt(r.getModel().get(["lineStyle","curveness"]),-KI(r,t,n,!0),0);return{n1:f[r.node1.dataIndex],n2:f[r.node2.dataIndex],d:o,curveness:s,ignoreForceLayout:a.get("ignoreForceLayout")}})),y=e.getBoundingRect(),v=function(t,e,n){for(var i=t,r=e,o=n.rect,a=o.width,s=o.height,l=[o.x+a/2,o.y+s/2],u=null==n.gravity?.1:n.gravity,h=0;h<i.length;h++){var c=i[h];c.p||(c.p=ft(a*(Math.random()-.5)+l[0],s*(Math.random()-.5)+l[1])),c.pp=yt(c.p),c.edges=null}var p,d,f=null==n.friction?.6:n.friction,g=f;return{warmUp:function(){g=.8*f},setFixed:function(t){i[t].fixed=!0},setUnfixed:function(t){i[t].fixed=!1},beforeStep:function(t){p=t},afterStep:function(t){d=t},step:function(t){p&&p(i,r);for(var e=[],n=i.length,o=0;o<r.length;o++){var a=r[o];if(!a.ignoreForceLayout){var s=a.n1;xt(e,(y=a.n2).p,s.p);var h=bt(e)-a.d,c=y.w/(s.w+y.w);isNaN(c)&&(c=0),Tt(e,e),!s.fixed&&sT(s.p,s.p,e,c*h*g),!y.fixed&&sT(y.p,y.p,e,-(1-c)*h*g)}}for(o=0;o<n;o++)(_=i[o]).fixed||(xt(e,l,_.p),sT(_.p,_.p,e,u*g));for(o=0;o<n;o++){s=i[o];for(var f=o+1;f<n;f++){var y;xt(e,(y=i[f]).p,s.p),0===(h=bt(e))&&(vt(e,Math.random()-.5,Math.random()-.5),h=1);var v=(s.rep+y.rep)/h/h;!s.fixed&&sT(s.pp,s.pp,e,v),!y.fixed&&sT(y.pp,y.pp,e,-v)}}var m=[];for(o=0;o<n;o++){var _;(_=i[o]).fixed||(xt(m,_.p,_.pp),sT(_.p,_.p,m,g),gt(_.pp,_.p))}var x=(g*=.992)<.01;d&&d(i,r,x),t&&t(x)}}}(f,g,{rect:y,gravity:a.get("gravity"),friction:a.get("friction")});v.beforeStep((function(t,e){for(var n=0,r=t.length;n<r;n++)t[n].fixed&&gt(t[n].p,i.getNodeByIndex(n).getLayout())})),v.afterStep((function(t,e,o){for(var a=0,s=t.length;a<s;a++)t[a].fixed||i.getNodeByIndex(a).setLayout(t[a].p),n[r.getId(a)]=t[a].p;for(a=0,s=e.length;a<s;a++){var l=e[a],u=i.getEdgeByIndex(a),h=l.n1.p,c=l.n2.p,p=u.getLayout();(p=p?p.slice():[])[0]=p[0]||[],p[1]=p[1]||[],gt(p[0],h),gt(p[1],c),+l.curveness&&(p[2]=[(h[0]+c[0])/2-(h[1]-c[1])*l.curveness,(h[1]+c[1])/2-(c[0]-h[0])*l.curveness]),u.setLayout(p)}})),t.forceLayout=v,t.preservedPoints=n,v.step()}else t.forceLayout=null}))}function uT(t,e){var n=[];return t.eachSeriesByType("graph",(function(t){var i=t.get("coordinateSystem");if(!i||"view"===i){var r=t.getData(),o=[],a=[];Go(r.mapArray((function(t){var e=r.getItemModel(t);return[+e.get("x"),+e.get("y")]})),o,a),a[0]-o[0]==0&&(a[0]+=1,o[0]-=1),a[1]-o[1]==0&&(a[1]+=1,o[1]-=1);var s=(a[0]-o[0])/(a[1]-o[1]),l=function(t,e,n){return tc(M(t.getBoxLayoutParams(),{aspect:n}),{width:e.getWidth(),height:e.getHeight()})}(t,e,s);isNaN(s)&&(o=[l.x,l.y],a=[l.x+l.width,l.y+l.height]);var u=a[0]-o[0],h=a[1]-o[1],c=l.width,p=l.height,d=t.coordinateSystem=new vM;d.zoomLimit=t.get("scaleLimit"),d.setBoundingRect(o[0],o[1],u,h),d.setViewRect(l.x,l.y,c,p),d.setCenter(t.get("center")),d.setZoom(t.get("zoom")),n.push(d)}})),n}var hT=Nl.prototype,cT=Vl.prototype,pT=function(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.percent=1};!function(t){function n(){return null!==t&&t.apply(this,arguments)||this}e(n,t)}(pT);function dT(t){return isNaN(+t.cpx1)||isNaN(+t.cpy1)}var fT=function(t){function n(e){var n=t.call(this,e)||this;return n.type="ec-line",n}return e(n,t),n.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},n.prototype.getDefaultShape=function(){return new pT},n.prototype.buildPath=function(t,e){dT(e)?hT.buildPath.call(this,t,e):cT.buildPath.call(this,t,e)},n.prototype.pointAt=function(t){return dT(this.shape)?hT.pointAt.call(this,t):cT.pointAt.call(this,t)},n.prototype.tangentAt=function(t){var e=this.shape,n=dT(e)?[e.x2-e.x1,e.y2-e.y1]:cT.tangentAt.call(this,t);return Tt(n,n)},n}(Oa),gT=["fromSymbol","toSymbol"];function yT(t){return"_"+t+"Type"}function vT(t,e,n){var i=e.getItemVisual(n,t);if(i&&"none"!==i){var r=e.getItemVisual(n,t+"Size"),o=e.getItemVisual(n,t+"Rotate"),a=V(r)?r:[r,r],s=Sg(i,-a[0]/2,-a[1]/2,a[0],a[1]);return s.__specifiedRotation=null==o||isNaN(o)?void 0:+o*Math.PI/180||0,s.name=t,s}}function mT(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 _T=function(t){function n(e,n,i){var r=t.call(this)||this;return r._createLine(e,n,i),r}return e(n,t),n.prototype._createLine=function(t,e,n){var i=t.hostModel,r=function(t){var e=new fT({name:"line",subPixelOptimize:!0});return mT(e.shape,t),e}(t.getItemLayout(e));r.shape.percent=0,gu(r,{shape:{percent:1}},i,e),this.add(r),k(gT,(function(n){var i=vT(n,t,e);this.add(i),this[yT(n)]=t.getItemVisual(e,n)}),this),this._updateCommonStl(t,e,n)},n.prototype.updateData=function(t,e,n){var i=t.hostModel,r=this.childOfName("line"),o=t.getItemLayout(e),a={shape:{}};mT(a.shape,o),fu(r,a,i,e),k(gT,(function(n){var i=t.getItemVisual(e,n),r=yT(n);if(this[r]!==i){this.remove(this.childOfName(n));var o=vT(n,t,e);this.add(o)}this[r]=i}),this),this._updateCommonStl(t,e,n)},n.prototype.getLinePath=function(){return this.childAt(0)},n.prototype._updateCommonStl=function(t,e,n){var i=t.hostModel,r=this.childOfName("line"),o=n&&n.emphasisLineStyle,a=n&&n.blurLineStyle,s=n&&n.selectLineStyle,l=n&&n.labelStatesModels;if(!n||t.hasItemOption){var u=t.getItemModel(e);o=u.getModel(["emphasis","lineStyle"]).getLineStyle(),a=u.getModel(["blur","lineStyle"]).getLineStyle(),s=u.getModel(["select","lineStyle"]).getLineStyle(),l=Eu(u)}var h=t.getItemVisual(e,"style"),c=h.stroke;r.useStyle(h),r.style.fill=null,r.style.strokeNoScale=!0,r.ensureState("emphasis").style=o,r.ensureState("blur").style=a,r.ensureState("select").style=s,k(gT,(function(t){var e=this.childOfName(t);if(e){e.setColor(c),e.style.opacity=h.opacity;for(var n=0;n<as.length;n++){var i=as[n],o=r.getState(i);if(o){var a=o.style||{},s=e.ensureState(i),l=s.style||(s.style={});null!=a.stroke&&(l[e.__isEmptyBrush?"stroke":"fill"]=a.stroke),null!=a.opacity&&(l.opacity=a.opacity)}}e.markRedraw()}}),this);var p=i.getRawValue(e);Nu(this,l,{labelDataIndex:e,labelFetcher:{getFormattedLabel:function(e,n){return i.getFormattedLabel(e,n,t.dataType)}},inheritColor:c||"#000",defaultOpacity:h.opacity,defaultText:(null==p?t.getName(e):isFinite(p)?Fi(p):p)+""});var d=this.getTextContent();if(d){var f=l.normal;d.__align=d.style.align,d.__verticalAlign=d.style.verticalAlign,d.__position=f.get("position")||"middle";var g=f.get("distance");V(g)||(g=[g,g]),d.__labelDistance=g}this.setTextConfig({position:null,local:!0,inside:!1}),Os(this)},n.prototype.highlight=function(){Ss(this)},n.prototype.downplay=function(){Ms(this)},n.prototype.updateLayout=function(t,e){this.setLinePoints(t.getItemLayout(e))},n.prototype.setLinePoints=function(t){var e=this.childOfName("line");mT(e.shape,t),e.dirty()},n.prototype.beforeUpdate=function(){var t=this,e=t.childOfName("fromSymbol"),n=t.childOfName("toSymbol"),i=t.getTextContent();if(e||n||i&&!i.ignore){for(var r=1,o=this.parent;o;)o.scaleX&&(r/=o.scaleX),o=o.parent;var a=t.childOfName("line");if(this.__dirty||a.__dirty){var s=a.shape.percent,l=a.pointAt(0),u=a.pointAt(s),h=xt([],u,l);if(Tt(h,h),e&&(e.setPosition(l),S(e,0),e.scaleX=e.scaleY=r*s,e.markRedraw()),n&&(n.setPosition(u),S(n,1),n.scaleX=n.scaleY=r*s,n.markRedraw()),i&&!i.ignore){i.x=i.y=0,i.originX=i.originY=0;var c=void 0,p=void 0,d=i.__labelDistance,f=d[0]*r,g=d[1]*r,y=s/2,v=a.tangentAt(y),m=[v[1],-v[0]],_=a.pointAt(y);m[1]>0&&(m[0]=-m[0],m[1]=-m[1]);var x=v[0]<0?-1:1;if("start"!==i.__position&&"end"!==i.__position){var b=-Math.atan2(v[1],v[0]);u[0]<l[0]&&(b=Math.PI+b),i.rotation=b}var w=void 0;switch(i.__position){case"insideStartTop":case"insideMiddleTop":case"insideEndTop":case"middle":w=-g,p="bottom";break;case"insideStartBottom":case"insideMiddleBottom":case"insideEndBottom":w=g,p="top";break;default:w=0,p="middle"}switch(i.__position){case"end":i.x=h[0]*f+u[0],i.y=h[1]*g+u[1],c=h[0]>.8?"left":h[0]<-.8?"right":"center",p=h[1]>.8?"top":h[1]<-.8?"bottom":"middle";break;case"start":i.x=-h[0]*f+l[0],i.y=-h[1]*g+l[1],c=h[0]>.8?"right":h[0]<-.8?"left":"center",p=h[1]>.8?"bottom":h[1]<-.8?"top":"middle";break;case"insideStartTop":case"insideStart":case"insideStartBottom":i.x=f*x+l[0],i.y=l[1]+w,c=v[0]<0?"right":"left",i.originX=-f*x,i.originY=-w;break;case"insideMiddleTop":case"insideMiddle":case"insideMiddleBottom":case"middle":i.x=_[0],i.y=_[1]+w,c="center",i.originY=-w;break;case"insideEndTop":case"insideEnd":case"insideEndBottom":i.x=-f*x+u[0],i.y=u[1]+w,c=v[0]>=0?"right":"left",i.originX=f*x,i.originY=-w}i.scaleX=i.scaleY=r,i.setStyle({verticalAlign:i.__verticalAlign||p,align:i.__align||c})}}}function S(t,e){var n=t.__specifiedRotation;if(null==n){var i=a.tangentAt(e);t.attr("rotation",(1===e?-1:1)*Math.PI/2-Math.atan2(i[1],i[0]))}else t.attr("rotation",n)}},n}(Li),xT=function(){function t(t){this.group=new Li,this._LineCtor=t||_T}return t.prototype.isPersistent=function(){return!0},t.prototype.updateData=function(t){var e=this,n=this,i=n.group,r=n._lineData;n._lineData=t,r||i.removeAll();var o=bT(t);t.diff(r).add((function(n){e._doAdd(t,n,o)})).update((function(n,i){e._doUpdate(r,t,i,n,o)})).remove((function(t){i.remove(r.getItemGraphicEl(t))})).execute()},t.prototype.updateLayout=function(){var t=this._lineData;t&&t.eachItemGraphicEl((function(e,n){e.updateLayout(t,n)}),this)},t.prototype.incrementalPrepareUpdate=function(t){this._seriesScope=bT(t),this._lineData=null,this.group.removeAll()},t.prototype.incrementalUpdate=function(t,e){function n(t){t.isGroup||function(t){return t.animators&&t.animators.length>0}(t)||(t.incremental=!0,t.ensureState("emphasis").hoverLayer=!0)}for(var i=t.start;i<t.end;i++){if(ST(e.getItemLayout(i))){var r=new this._LineCtor(e,i,this._seriesScope);r.traverse(n),this.group.add(r),e.setItemGraphicEl(i,r)}}},t.prototype.remove=function(){this.group.removeAll()},t.prototype._doAdd=function(t,e,n){if(ST(t.getItemLayout(e))){var i=new this._LineCtor(t,e,n);t.setItemGraphicEl(e,i),this.group.add(i)}},t.prototype._doUpdate=function(t,e,n,i,r){var o=t.getItemGraphicEl(n);ST(e.getItemLayout(i))?(o?o.updateData(e,i,r):o=new this._LineCtor(e,i,r),e.setItemGraphicEl(i,o),this.group.add(o)):this.group.remove(o)},t}();function bT(t){var e=t.hostModel;return{lineStyle:e.getModel("lineStyle").getLineStyle(),emphasisLineStyle:e.getModel(["emphasis","lineStyle"]).getLineStyle(),blurLineStyle:e.getModel(["blur","lineStyle"]).getLineStyle(),selectLineStyle:e.getModel(["select","lineStyle"]).getLineStyle(),labelStatesModels:Eu(e)}}function wT(t){return isNaN(t[0])||isNaN(t[1])}function ST(t){return!wT(t[0])&&!wT(t[1])}var MT=[],IT=[],TT=[],CT=Co,AT=Lt,DT=Math.abs;function LT(t,e,n){for(var i,r=t[0],o=t[1],a=t[2],s=1/0,l=n*n,u=.1,h=.1;h<=.9;h+=.1){MT[0]=CT(r[0],o[0],a[0],h),MT[1]=CT(r[1],o[1],a[1],h),(d=DT(AT(MT,e)-l))<s&&(s=d,i=h)}for(var c=0;c<32;c++){var p=i+u;IT[0]=CT(r[0],o[0],a[0],i),IT[1]=CT(r[1],o[1],a[1],i),TT[0]=CT(r[0],o[0],a[0],p),TT[1]=CT(r[1],o[1],a[1],p);var d=AT(IT,e)-l;if(DT(d)<.01)break;var f=AT(TT,e)-l;u/=2,d<0?f>=0?i+=u:i-=u:f>=0?i-=u:i+=u}return i}function kT(t,e){var n=[],i=Lo,r=[[],[],[]],o=[[],[]],a=[];e/=2,t.eachEdge((function(t,s){var l=t.getLayout(),u=t.getVisual("fromSymbol"),h=t.getVisual("toSymbol");l.__original||(l.__original=[yt(l[0]),yt(l[1])],l[2]&&l.__original.push(yt(l[2])));var c=l.__original;if(null!=l[2]){if(gt(r[0],c[0]),gt(r[1],c[2]),gt(r[2],c[1]),u&&"none"!==u){var p=eT(t.node1),d=LT(r,c[0],p*e);i(r[0][0],r[1][0],r[2][0],d,n),r[0][0]=n[3],r[1][0]=n[4],i(r[0][1],r[1][1],r[2][1],d,n),r[0][1]=n[3],r[1][1]=n[4]}if(h&&"none"!==h){p=eT(t.node2),d=LT(r,c[1],p*e);i(r[0][0],r[1][0],r[2][0],d,n),r[1][0]=n[1],r[2][0]=n[2],i(r[0][1],r[1][1],r[2][1],d,n),r[1][1]=n[1],r[2][1]=n[2]}gt(l[0],r[0]),gt(l[1],r[2]),gt(l[2],r[1])}else{if(gt(o[0],c[0]),gt(o[1],c[1]),xt(a,o[1],o[0]),Tt(a,a),u&&"none"!==u){p=eT(t.node1);_t(o[0],o[0],a,p*e)}if(h&&"none"!==h){p=eT(t.node2);_t(o[1],o[1],a,-p*e)}gt(l[0],o[0]),gt(l[1],o[1])}}))}function PT(t){return"view"===t.type}var OT=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.init=function(t,e){var n=new Yx,i=new xT,r=this.group;this._controller=new vS(e.getZr()),this._controllerHost={target:r},r.add(n.group),r.add(i.group),this._symbolDraw=n,this._lineDraw=i,this._firstRender=!0},n.prototype.render=function(t,e,n){var i=this,r=t.coordinateSystem;this._model=t;var o=this._symbolDraw,a=this._lineDraw,s=this.group;if(PT(r)){var l={x:r.x,y:r.y,scaleX:r.scaleX,scaleY:r.scaleY};this._firstRender?s.attr(l):fu(s,l,t)}kT(t.getGraph(),tT(t));var u=t.getData();o.updateData(u);var h=t.getEdgeData();a.updateData(h),this._updateNodeAndLinkScale(),this._updateController(t,e,n),clearTimeout(this._layoutTimeout);var c=t.forceLayout,p=t.get(["force","layoutAnimation"]);c&&this._startForceLayoutIteration(c,p),u.graph.eachNode((function(t){var e=t.dataIndex,n=t.getGraphicEl(),r=t.getModel();n.off("drag").off("dragend");var o=r.get("draggable");o&&n.on("drag",(function(){c&&(c.warmUp(),!i._layouting&&i._startForceLayoutIteration(c,p),c.setFixed(e),u.setItemLayout(e,[n.x,n.y]))})).on("dragend",(function(){c&&c.setUnfixed(e)})),n.setDraggable(o&&!!c),"adjacency"===r.get(["emphasis","focus"])&&(ns(n).focus=t.getAdjacentDataIndices())})),u.graph.eachEdge((function(t){var e=t.getGraphicEl();"adjacency"===t.getModel().get(["emphasis","focus"])&&(ns(e).focus={edge:[t.dataIndex],node:[t.node1.dataIndex,t.node2.dataIndex]})}));var d="circular"===t.get("layout")&&t.get(["circular","rotateLabel"]),f=u.getLayout("cx"),g=u.getLayout("cy");u.eachItemGraphicEl((function(t,e){var n=u.getItemModel(e).get(["label","rotate"])||0,i=t.getSymbolPath();if(d){var r=u.getItemLayout(e),o=Math.atan2(r[1]-g,r[0]-f);o<0&&(o=2*Math.PI+o);var a=r[0]<f;a&&(o-=Math.PI);var s=a?"left":"right";i.setTextConfig({rotation:-o,position:s,origin:"center"});var l=i.ensureState("emphasis");M(l.textConfig||(l.textConfig={}),{position:s})}else i.setTextConfig({rotation:n*=Math.PI/180})})),this._firstRender=!1},n.prototype.dispose=function(){this._controller&&this._controller.dispose(),this._controllerHost=null},n.prototype._startForceLayoutIteration=function(t,e){var n=this;!function i(){t.step((function(t){n.updateLayout(n._model),(n._layouting=!t)&&(e?n._layoutTimeout=setTimeout(i,16):i())}))}()},n.prototype._updateController=function(t,e,n){var i=this,r=this._controller,o=this._controllerHost,a=this.group;r.setPointerChecker((function(e,i,r){var o=a.getBoundingRect();return o.applyTransform(a.transform),o.contain(i,r)&&!MS(e,n,t)})),PT(t.coordinateSystem)?(r.enable(t.get("roam")),o.zoomLimit=t.get("scaleLimit"),o.zoom=t.coordinateSystem.getZoom(),r.off("pan").off("zoom").on("pan",(function(e){bS(o,e.dx,e.dy),n.dispatchAction({seriesId:t.id,type:"graphRoam",dx:e.dx,dy:e.dy})})).on("zoom",(function(e){wS(o,e.scale,e.originX,e.originY),n.dispatchAction({seriesId:t.id,type:"graphRoam",zoom:e.scale,originX:e.originX,originY:e.originY}),i._updateNodeAndLinkScale(),kT(t.getGraph(),tT(t)),i._lineDraw.updateLayout(),n.updateLabelLayout()}))):r.disable()},n.prototype._updateNodeAndLinkScale=function(){var t=this._model,e=t.getData(),n=tT(t);e.eachItemGraphicEl((function(t,e){t.setSymbolScale(n)}))},n.prototype.updateLayout=function(t){kT(t.getGraph(),tT(t)),this._symbolDraw.updateLayout(),this._lineDraw.updateLayout()},n.prototype.remove=function(t,e){this._symbolDraw&&this._symbolDraw.remove(),this._lineDraw&&this._lineDraw.remove()},n.type="graph",n}(Od);function RT(t){return"_EC_"+t}var NT=function(){function t(t){this.type="graph",this.nodes=[],this.edges=[],this._nodesMap={},this._edgesMap={},this._directed=t||!1}return t.prototype.isDirected=function(){return this._directed},t.prototype.addNode=function(t,e){t=null==t?""+e:""+t;var n=this._nodesMap;if(!n[RT(t)]){var i=new ET(t,e);return i.hostGraph=this,this.nodes.push(i),n[RT(t)]=i,i}},t.prototype.getNodeByIndex=function(t){var e=this.data.getRawIndex(t);return this.nodes[e]},t.prototype.getNodeById=function(t){return this._nodesMap[RT(t)]},t.prototype.addEdge=function(t,e,n){var i=this._nodesMap,r=this._edgesMap;if("number"==typeof t&&(t=this.nodes[t]),"number"==typeof e&&(e=this.nodes[e]),t instanceof ET||(t=i[RT(t)]),e instanceof ET||(e=i[RT(e)]),t&&e){var o=t.id+"-"+e.id,a=new zT(t,e,n);return a.hostGraph=this,this._directed&&(t.outEdges.push(a),e.inEdges.push(a)),t.edges.push(a),t!==e&&e.edges.push(a),this.edges.push(a),r[o]=a,a}},t.prototype.getEdgeByIndex=function(t){var e=this.edgeData.getRawIndex(t);return this.edges[e]},t.prototype.getEdge=function(t,e){t instanceof ET&&(t=t.id),e instanceof ET&&(e=e.id);var n=this._edgesMap;return this._directed?n[t+"-"+e]:n[t+"-"+e]||n[e+"-"+t]},t.prototype.eachNode=function(t,e){for(var n=this.nodes,i=n.length,r=0;r<i;r++)n[r].dataIndex>=0&&t.call(e,n[r],r)},t.prototype.eachEdge=function(t,e){for(var n=this.edges,i=n.length,r=0;r<i;r++)n[r].dataIndex>=0&&n[r].node1.dataIndex>=0&&n[r].node2.dataIndex>=0&&t.call(e,n[r],r)},t.prototype.breadthFirstTraverse=function(t,e,n,i){if(e instanceof ET||(e=this._nodesMap[RT(e)]),e){for(var r="out"===n?"outEdges":"in"===n?"inEdges":"edges",o=0;o<this.nodes.length;o++)this.nodes[o].__visited=!1;if(!t.call(i,e,null))for(var a=[e];a.length;){var s=a.shift(),l=s[r];for(o=0;o<l.length;o++){var u=l[o],h=u.node1===s?u.node2:u.node1;if(!h.__visited){if(t.call(i,h,s))return;a.push(h),h.__visited=!0}}}}},t.prototype.update=function(){for(var t=this.data,e=this.edgeData,n=this.nodes,i=this.edges,r=0,o=n.length;r<o;r++)n[r].dataIndex=-1;for(r=0,o=t.count();r<o;r++)n[t.getRawIndex(r)].dataIndex=r;e.filterSelf((function(t){var n=i[e.getRawIndex(t)];return n.node1.dataIndex>=0&&n.node2.dataIndex>=0}));for(r=0,o=i.length;r<o;r++)i[r].dataIndex=-1;for(r=0,o=e.count();r<o;r++)i[e.getRawIndex(r)].dataIndex=r},t.prototype.clone=function(){for(var e=new t(this._directed),n=this.nodes,i=this.edges,r=0;r<n.length;r++)e.addNode(n[r].id,n[r].dataIndex);for(r=0;r<i.length;r++){var o=i[r];e.addEdge(o.node1.id,o.node2.id,o.dataIndex)}return e},t}(),ET=function(){function t(t,e){this.inEdges=[],this.outEdges=[],this.edges=[],this.dataIndex=-1,this.id=null==t?"":t,this.dataIndex=null==e?-1:e}return t.prototype.degree=function(){return this.edges.length},t.prototype.inDegree=function(){return this.inEdges.length},t.prototype.outDegree=function(){return this.outEdges.length},t.prototype.getModel=function(t){if(!(this.dataIndex<0))return this.hostGraph.data.getItemModel(this.dataIndex).getModel(t)},t.prototype.getAdjacentDataIndices=function(){for(var t={edge:[],node:[]},e=0;e<this.edges.length;e++){var n=this.edges[e];n.dataIndex<0||(t.edge.push(n.dataIndex),t.node.push(n.node1.dataIndex,n.node2.dataIndex))}return t},t}(),zT=function(){function t(t,e,n){this.dataIndex=-1,this.node1=t,this.node2=e,this.dataIndex=null==n?-1:n}return t.prototype.getModel=function(t){if(!(this.dataIndex<0))return this.hostGraph.edgeData.getItemModel(this.dataIndex).getModel(t)},t.prototype.getAdjacentDataIndices=function(){return{edge:[this.dataIndex],node:[this.node1.dataIndex,this.node2.dataIndex]}},t}();function BT(t,e){return{getValue:function(n){var i=this[t][e];return i.get(i.getDimension(n||"value"),this.dataIndex)},setVisual:function(n,i){this.dataIndex>=0&&this[t][e].setItemVisual(this.dataIndex,n,i)},getVisual:function(n){return this[t][e].getItemVisual(this.dataIndex,n)},setLayout:function(n,i){this.dataIndex>=0&&this[t][e].setItemLayout(this.dataIndex,n,i)},getLayout:function(){return this[t][e].getItemLayout(this.dataIndex)},getGraphicEl:function(){return this[t][e].getItemGraphicEl(this.dataIndex)},getRawIndex:function(){return this[t][e].getRawIndex(this.dataIndex)}}}function VT(t,e,n,i,r){for(var o=new NT(i),a=0;a<t.length;a++)o.addNode(J(t[a].id,t[a].name,a),a);var s=[],l=[],u=0;for(a=0;a<e.length;a++){var h=e[a],c=h.source,p=h.target;o.addEdge(c,p,u)&&(l.push(h),s.push(J(gr(h.id,null),c+" > "+p)),u++)}var d,f=n.get("coordinateSystem");if("cartesian2d"===f||"polar"===f)d=lm(t,n);else{var g=zc.get(f),y=g&&g.dimensions||[];C(y,"value")<0&&y.concat(["value"]);var v=em(t,{coordDimensions:y});(d=new Jv(v,n)).initData(t)}var m=new Jv(["value"],n);return m.initData(l,s),r&&r(d,m),CM({mainData:d,struct:o,structAttr:"graph",datas:{node:d,edge:m},datasAttr:{node:"data",edge:"edgeData"}}),o.update(),o}D(ET,BT("hostGraph","data")),D(zT,BT("hostGraph","edgeData"));var FT=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.hasSymbolVisual=!0,e}return e(n,t),n.prototype.init=function(e){t.prototype.init.apply(this,arguments);var n=this;function i(){return n._categoriesData}this.legendVisualProvider=new Qb(i,i),this.fillDataTextStyle(e.edges||e.links),this._updateCategoriesData()},n.prototype.mergeOption=function(e){t.prototype.mergeOption.apply(this,arguments),this.fillDataTextStyle(e.edges||e.links),this._updateCategoriesData()},n.prototype.mergeDefaultAndTheme=function(e){t.prototype.mergeDefaultAndTheme.apply(this,arguments),ur(e,"edgeLabel",["show"])},n.prototype.getInitialData=function(t,e){var n,i=t.edges||t.links||[],r=t.data||t.nodes||[],o=this;if(r&&i){XI(n=this)&&(n.__curvenessList=[],n.__edgeMap={},UI(n));var a=VT(r,i,this,!0,(function(t,e){t.wrapMethod("getItemModel",(function(t){var e=o._categoriesModels[t.getShallow("category")];return e&&(e.parentModel=t.parentModel,t.parentModel=e),t}));var n=rh.prototype.getModel;function i(t,e){var i=n.call(this,t,e);return i.resolveParentPath=r,i}function r(t){if(t&&("label"===t[0]||"label"===t[1])){var e=t.slice();return"label"===t[0]?e[0]="edgeLabel":"label"===t[1]&&(e[1]="edgeLabel"),e}return t}e.wrapMethod("getItemModel",(function(t){return t.resolveParentPath=r,t.getModel=i,t}))}));return k(a.edges,(function(t){!function(t,e,n,i){if(XI(n)){var r=ZI(t,e,n),o=n.__edgeMap,a=o[jI(r)];o[r]&&!a?o[r].isForward=!0:a&&o[r]&&(a.isForward=!0,o[r].isForward=!1),o[r]=o[r]||[],o[r].push(i)}}(t.node1,t.node2,this,t.dataIndex)}),this),a.data}},n.prototype.getGraph=function(){return this.getData().graph},n.prototype.getEdgeData=function(){return this.getGraph().edgeData},n.prototype.getCategoriesData=function(){return this._categoriesData},n.prototype.formatTooltip=function(t,e,n){if("edge"===n){var i=this.getData(),r=this.getDataParams(t,n),o=i.graph.getEdgeByIndex(t),a=i.getName(o.node1.dataIndex),s=i.getName(o.node2.dataIndex),l=[];return null!=a&&l.push(a),null!=s&&l.push(s),ld("nameValue",{name:l.join(" > "),value:r.value,noValue:null==r.value})}return md({series:this,dataIndex:t,multipleSeries:e})},n.prototype._updateCategoriesData=function(){var t=P(this.option.categories||[],(function(t){return null!=t.value?t:M({value:0},t)})),e=new Jv(["value"],this);e.initData(t),this._categoriesData=e,this._categoriesModels=e.mapArray((function(t){return e.getItemModel(t)}))},n.prototype.setZoom=function(t){this.option.zoom=t},n.prototype.setCenter=function(t){this.option.center=t},n.prototype.isAnimationEnabled=function(){return t.prototype.isAnimationEnabled.call(this)&&!("force"===this.get("layout")&&this.get(["force","layoutAnimation"]))},n.type="series.graph",n.dependencies=["grid","polar","geo","singleAxis","calendar"],n.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,opacity:.5},emphasis:{scale:!0,label:{show:!0}},select:{itemStyle:{borderColor:"#212121"}}},n}(bd),GT={type:"graphRoam",event:"graphRoam",update:"none"};var HT=function(){this.angle=0,this.width=10,this.r=10,this.x=0,this.y=0},WT=function(t){function n(e){var n=t.call(this,e)||this;return n.type="pointer",n}return e(n,t),n.prototype.getDefaultShape=function(){return new HT},n.prototype.buildPath=function(t,e){var n=Math.cos,i=Math.sin,r=e.r,o=e.width,a=e.angle,s=e.x-n(a)*o*(o>=r/3?1:2),l=e.y-i(a)*o*(o>=r/3?1:2);a=e.angle-Math.PI/2,t.moveTo(s,l),t.lineTo(e.x+n(a)*o,e.y+i(a)*o),t.lineTo(e.x+n(e.angle)*r,e.y+i(e.angle)*r),t.lineTo(e.x-n(a)*o,e.y-i(a)*o),t.lineTo(s,l)},n}(Oa);function YT(t,e){var n=null==t?"":t+"";return e&&("string"==typeof e?n=e.replace("{value}",n):"function"==typeof e&&(n=e(t))),n}var XT=2*Math.PI,UT=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n){this.group.removeAll();var i=t.get(["axisLine","lineStyle","color"]),r=function(t,e){var n=t.get("center"),i=e.getWidth(),r=e.getHeight(),o=Math.min(i,r);return{cx:Vi(n[0],e.getWidth()),cy:Vi(n[1],e.getHeight()),r:Vi(t.get("radius"),o/2)}}(t,n);this._renderMain(t,e,n,i,r),this._data=t.getData()},n.prototype.dispose=function(){},n.prototype._renderMain=function(t,e,n,i,r){for(var o=this.group,a=t.get("clockwise"),s=-t.get("startAngle")/180*Math.PI,l=-t.get("endAngle")/180*Math.PI,u=t.getModel("axisLine"),h=u.get("roundCap")?Mb:Ml,c=u.get("show"),p=u.getModel("lineStyle"),d=p.get("width"),f=(l-s)%XT||l===s?(l-s)%XT:XT,g=s,y=0;c&&y<i.length;y++){var v=new h({shape:{startAngle:g,endAngle:l=s+f*Math.min(Math.max(i[y][0],0),1),cx:r.cx,cy:r.cy,clockwise:a,r0:r.r-d,r:r.r},silent:!0});v.setStyle({fill:i[y][1]}),v.setStyle(p.getLineStyle(["color","width"])),o.add(v),g=l}var m=function(t){if(t<=0)return i[0][1];var e;for(e=0;e<i.length;e++)if(i[e][0]>=t&&(0===e?0:i[e-1][0])<t)return i[e][1];return i[e-1][1]};if(!a){var _=s;s=l,l=_}this._renderTicks(t,e,n,m,r,s,l,a,d),this._renderTitleAndDetail(t,e,n,m,r),this._renderAnchor(t,r),this._renderPointer(t,e,n,m,r,s,l,a,d)},n.prototype._renderTicks=function(t,e,n,i,r,o,a,s,l){for(var u,h,c=this.group,p=r.cx,d=r.cy,f=r.r,g=+t.get("min"),y=+t.get("max"),v=t.getModel("splitLine"),m=t.getModel("axisTick"),_=t.getModel("axisLabel"),x=t.get("splitNumber"),b=m.get("splitNumber"),w=Vi(v.get("length"),f),S=Vi(m.get("length"),f),M=o,I=(a-o)/x,T=I/b,C=v.getModel("lineStyle").getLineStyle(),A=m.getModel("lineStyle").getLineStyle(),D=v.get("distance"),L=0;L<=x;L++){if(u=Math.cos(M),h=Math.sin(M),v.get("show")){var k=new Nl({shape:{x1:u*(f-(P=D?D+l:l))+p,y1:h*(f-P)+d,x2:u*(f-w-P)+p,y2:h*(f-w-P)+d},style:C,silent:!0});"auto"===C.stroke&&k.setStyle({stroke:i(L/x)}),c.add(k)}if(_.get("show")){var P=_.get("distance")+D,O=YT(Fi(L/x*(y-g)+g),_.get("formatter")),R=i(L/x);c.add(new ja({style:zu(_,{text:O,x:u*(f-w-P)+p,y:h*(f-w-P)+d,verticalAlign:h<-.8?"top":h>.8?"bottom":"middle",align:u<-.4?"left":u>.4?"right":"center"},{inheritColor:R}),silent:!0}))}if(m.get("show")&&L!==x){P=(P=m.get("distance"))?P+l:l;for(var N=0;N<=b;N++){u=Math.cos(M),h=Math.sin(M);var E=new Nl({shape:{x1:u*(f-P)+p,y1:h*(f-P)+d,x2:u*(f-S-P)+p,y2:h*(f-S-P)+d},silent:!0,style:A});"auto"===A.stroke&&E.setStyle({stroke:i((L+N/b)/x)}),c.add(E),M+=T}M-=T}else M+=I}},n.prototype._renderPointer=function(t,e,n,i,r,o,a,s,l){var u=this.group,h=this._data,c=this._progressEls,p=[],d=t.get(["pointer","show"]),f=t.getModel("progress"),g=f.get("show"),y=t.getData(),v=y.mapDimension("value"),m=+t.get("min"),_=+t.get("max"),x=[m,_],b=[o,a];function w(e,n){var i,o=y.getItemModel(e).getModel("pointer"),a=Vi(o.get("width"),r.r),s=Vi(o.get("length"),r.r),l=t.get(["pointer","icon"]),u=o.get("offsetCenter"),h=Vi(u[0],r.r),c=Vi(u[1],r.r),p=o.get("keepAspect");return(i=l?Sg(l,h-a/2,c-s,a,s,null,p):new WT({shape:{angle:-Math.PI/2,width:a,r:s,x:h,y:c}})).rotation=-(n+Math.PI/2),i.x=r.cx,i.y=r.cy,i}function S(t,e){var n=f.get("roundCap")?Mb:Ml,i=f.get("overlap"),a=i?f.get("width"):l/y.count(),u=i?r.r-a:r.r-(t+1)*a,h=i?r.r:r.r-t*a,c=new n({shape:{startAngle:o,endAngle:e,cx:r.cx,cy:r.cy,clockwise:s,r0:u,r:h}});return i&&(c.z2=_-y.get(v,t)%_),c}(g||d)&&(y.diff(h).add((function(e){if(d){var n=w(e,o);gu(n,{rotation:-(Bi(y.get(v,e),x,b,!0)+Math.PI/2)},t),u.add(n),y.setItemGraphicEl(e,n)}if(g){var i=S(e,o),r=f.get("clip");gu(i,{shape:{endAngle:Bi(y.get(v,e),x,b,r)}},t),u.add(i),p[e]=i}})).update((function(e,n){if(d){var i=h.getItemGraphicEl(n),r=i?i.rotation:o,a=w(e,r);a.rotation=r,fu(a,{rotation:-(Bi(y.get(v,e),x,b,!0)+Math.PI/2)},t),u.add(a),y.setItemGraphicEl(e,a)}if(g){var s=c[n],l=S(e,s?s.shape.endAngle:o),m=f.get("clip");fu(l,{shape:{endAngle:Bi(y.get(v,e),x,b,m)}},t),u.add(l),p[e]=l}})).execute(),y.each((function(t){var e=y.getItemModel(t),n=e.getModel("emphasis");if(d){var r=y.getItemGraphicEl(t);r.useStyle(y.getItemVisual(t,"style")),r.setStyle(e.getModel(["pointer","itemStyle"]).getItemStyle()),"auto"===r.style.fill&&r.setStyle("fill",i(Bi(y.get(v,t),x,[0,1],!0))),r.z2EmphasisLift=0,zs(r,e),Os(r,n.get("focus"),n.get("blurScope"))}if(g){var o=p[t];o.useStyle(y.getItemVisual(t,"style")),o.setStyle(e.getModel(["progress","itemStyle"]).getItemStyle()),o.z2EmphasisLift=0,zs(o,e),Os(o,n.get("focus"),n.get("blurScope"))}})),this._progressEls=p)},n.prototype._renderAnchor=function(t,e){var n=t.getModel("anchor");if(n.get("show")){var i=n.get("size"),r=n.get("icon"),o=n.get("offsetCenter"),a=n.get("keepAspect"),s=Sg(r,e.cx-i/2+Vi(o[0],e.r),e.cy-i/2+Vi(o[1],e.r),i,i,null,a);s.z2=n.get("showAbove")?1:0,s.setStyle(n.getModel("itemStyle").getItemStyle()),this.group.add(s)}},n.prototype._renderTitleAndDetail=function(t,e,n,i,r){var o=this,a=t.getData(),s=a.mapDimension("value"),l=+t.get("min"),u=+t.get("max"),h=new Li,c=[],p=[],d=t.isAnimationEnabled();a.diff(this._data).add((function(t){c[t]=new ja({silent:!0}),p[t]=new ja({silent:!0})})).update((function(t,e){c[t]=o._titleEls[e],p[t]=o._detailEls[e]})).execute(),a.each((function(e){var n=a.getItemModel(e),o=a.get(s,e),f=new Li,g=i(Bi(o,[l,u],[0,1],!0)),y=n.getModel("title");if(y.get("show")){var v=y.get("offsetCenter"),m=r.cx+Vi(v[0],r.r),_=r.cy+Vi(v[1],r.r);(C=c[e]).attr({style:zu(y,{x:m,y:_,text:a.getName(e),align:"center",verticalAlign:"middle"},{inheritColor:g})}),f.add(C)}var x=n.getModel("detail");if(x.get("show")){var b=x.get("offsetCenter"),w=r.cx+Vi(b[0],r.r),S=r.cy+Vi(b[1],r.r),M=Vi(x.get("width"),r.r),I=Vi(x.get("height"),r.r),T=t.get(["progress","show"])?a.getItemVisual(e,"style").fill:g,C=p[e],A=x.get("formatter");C.attr({style:zu(x,{x:w,y:S,text:YT(o,A),width:isNaN(M)?null:M,height:isNaN(I)?null:I,align:"center",verticalAlign:"middle"},{inheritColor:T})}),Xu(C,{normal:x},o,(function(t){return YT(t,A)})),d&&Uu(C,e,a,t,{getFormattedLabel:function(t,e,n,i,r,a){return YT(a?a.interpolatedValue:o,A)}}),f.add(C)}h.add(f)})),this.group.add(h),this._titleEls=c,this._detailEls=p},n.type="gauge",n}(Od),ZT=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.visualStyleAccessPath="itemStyle",e.useColorPaletteOnData=!0,e}return e(n,t),n.prototype.getInitialData=function(t,e){return Jb(this,["value"])},n.type="series.gauge",n.defaultOption={zlevel:0,z:2,center:["50%","50%"],legendHoverLink:!0,radius:"75%",startAngle:225,endAngle:-45,clockwise:!0,min:0,max:100,splitNumber:10,axisLine:{show:!0,roundCap:!1,lineStyle:{color:[[1,"#E6EBF8"]],width:10}},progress:{show:!1,overlap:!0,width:10,roundCap:!1,clip:!0},splitLine:{show:!0,length:10,distance:10,lineStyle:{color:"#63677A",width:3,type:"solid"}},axisTick:{show:!0,splitNumber:5,length:6,distance:10,lineStyle:{color:"#63677A",width:1,type:"solid"}},axisLabel:{show:!0,distance:15,color:"#464646",fontSize:12},pointer:{icon:null,offsetCenter:[0,0],show:!0,length:"60%",width:6,keepAspect:!1},anchor:{show:!1,showAbove:!1,size:6,icon:"circle",offsetCenter:[0,0],keepAspect:!1,itemStyle:{color:"#fff",borderWidth:0,borderColor:"#5470c6"}},title:{show:!0,offsetCenter:[0,"20%"],color:"#464646",fontSize:16,valueAnimation:!1},detail:{show:!0,backgroundColor:"rgba(0,0,0,0)",borderWidth:0,borderColor:"#ccc",width:100,height:null,padding:[5,10],offsetCenter:[0,"40%"],color:"#464646",fontSize:30,fontWeight:"bold",lineHeight:30,valueAnimation:!1}},n}(bd);var jT=["itemStyle","opacity"],qT=function(t){function n(e,n){var i=t.call(this)||this,r=i,o=new Pl,a=new ja;return r.setTextContent(a),i.setTextGuideLine(o),i.updateData(e,n,!0),i}return e(n,t),n.prototype.updateData=function(t,e,n){var i=this,r=t.hostModel,o=t.getItemModel(e),a=t.getItemLayout(e),s=o.getModel("emphasis"),l=o.get(jT);l=null==l?1:l,i.useStyle(t.getItemVisual(e,"style")),i.style.lineJoin="round",n?(i.setShape({points:a.points}),i.style.opacity=0,gu(i,{style:{opacity:l}},r,e)):fu(i,{style:{opacity:l},shape:{points:a.points}},r,e),zs(i,o),this._updateLabel(t,e),Os(this,s.get("focus"),s.get("blurScope"))},n.prototype._updateLabel=function(t,e){var n=this,i=this.getTextGuideLine(),r=n.getTextContent(),o=t.hostModel,a=t.getItemModel(e),s=t.getItemLayout(e).label,l=t.getItemVisual(e,"style"),u=l.fill;Nu(r,Eu(a),{labelFetcher:t.hostModel,labelDataIndex:e,defaultOpacity:l.opacity,defaultText:t.getName(e)},{normal:{align:s.textAlign,verticalAlign:s.verticalAlign}}),n.setTextConfig({local:!0,inside:!!s.inside,insideStroke:u,outsideFill:u});var h=s.linePoints;i.setShape({points:h}),n.textGuideLineConfig={anchor:h?new bn(h[0][0],h[0][1]):null},fu(r,{style:{x:s.x,y:s.y}},o,e),r.attr({rotation:s.rotation,originX:s.x,originY:s.y,z2:10}),$f(n,Jf(a),{stroke:u})},n}(Ll),KT=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.ignoreLabelLineUpdate=!0,e}return e(n,t),n.prototype.render=function(t,e,n){var i=t.getData(),r=this._data,o=this.group;i.diff(r).add((function(t){var e=new qT(i,t);i.setItemGraphicEl(t,e),o.add(e)})).update((function(t,e){var n=r.getItemGraphicEl(e);n.updateData(i,t),o.add(n),i.setItemGraphicEl(t,n)})).remove((function(e){mu(r.getItemGraphicEl(e),t,e)})).execute(),this._data=i},n.prototype.remove=function(){this.group.removeAll(),this._data=null},n.prototype.dispose=function(){},n.type="funnel",n}(Od),$T=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.useColorPaletteOnData=!0,e}return e(n,t),n.prototype.init=function(e){t.prototype.init.apply(this,arguments),this.legendVisualProvider=new Qb(z(this.getData,this),z(this.getRawData,this)),this._defaultLabelLine(e)},n.prototype.getInitialData=function(t,e){return Jb(this,{coordDimensions:["value"],encodeDefaulter:B(vc,this)})},n.prototype._defaultLabelLine=function(t){ur(t,"labelLine",["show"]);var e=t.labelLine,n=t.emphasis.labelLine;e.show=e.show&&t.label.show,n.show=n.show&&t.emphasis.label.show},n.prototype.getDataParams=function(e){var n=this.getData(),i=t.prototype.getDataParams.call(this,e),r=n.mapDimension("value"),o=n.getSum(r);return i.percent=o?+(n.get(r,e)/o*100).toFixed(2):0,i.$vars.push("percent"),i},n.type="series.funnel",n.defaultOption={zlevel:0,z:2,legendHoverLink:!0,left:80,top:60,right:80,bottom:60,minSize:"0%",maxSize:"100%",sort:"descending",orient:"vertical",gap:0,funnelAlign:"center",label:{show:!0,position:"outer"},labelLine:{show:!0,length:20,lineStyle:{width:1}},itemStyle:{borderColor:"#fff",borderWidth:1},emphasis:{label:{show:!0}},select:{itemStyle:{borderColor:"#212121"}}},n}(bd);function JT(t,e){t.eachSeriesByType("funnel",(function(t){var n=t.getData(),i=n.mapDimension("value"),r=t.get("sort"),o=function(t,e){return tc(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}(t,e),a=t.get("orient"),s=o.width,l=o.height,u=function(t,e){for(var n=t.mapDimension("value"),i=t.mapArray(n,(function(t){return t})),r=[],o="ascending"===e,a=0,s=t.count();a<s;a++)r[a]=a;return"function"==typeof e?r.sort(e):"none"!==e&&r.sort((function(t,e){return o?i[t]-i[e]:i[e]-i[t]})),r}(n,r),h=o.x,c=o.y,p="horizontal"===a?[Vi(t.get("minSize"),l),Vi(t.get("maxSize"),l)]:[Vi(t.get("minSize"),s),Vi(t.get("maxSize"),s)],d=n.getDataExtent(i),f=t.get("min"),g=t.get("max");null==f&&(f=Math.min(d[0],0)),null==g&&(g=d[1]);var y=t.get("funnelAlign"),v=t.get("gap"),m=(("horizontal"===a?s:l)-v*(n.count()-1))/n.count(),_=function(t,e){if("horizontal"===a){var r=Bi(n.get(i,t)||0,[f,g],p,!0),o=void 0;switch(y){case"top":o=c;break;case"center":o=c+(l-r)/2;break;case"bottom":o=c+(l-r)}return[[e,o],[e,o+r]]}var u,d=Bi(n.get(i,t)||0,[f,g],p,!0);switch(y){case"left":u=h;break;case"center":u=h+(s-d)/2;break;case"right":u=h+s-d}return[[u,e],[u+d,e]]};"ascending"===r&&(m=-m,v=-v,"horizontal"===a?h+=s:c+=l,u=u.reverse());for(var x=0;x<u.length;x++){var b=u[x],w=u[x+1],S=n.getItemModel(b);if("horizontal"===a){var M=S.get(["itemStyle","width"]);null==M?M=m:(M=Vi(M,s),"ascending"===r&&(M=-M));var I=_(b,h),T=_(w,h+M);h+=M+v,n.setItemLayout(b,{points:I.concat(T.slice().reverse())})}else{var C=S.get(["itemStyle","height"]);null==C?C=m:(C=Vi(C,l),"ascending"===r&&(C=-C));I=_(b,c),T=_(w,c+C);c+=C+v,n.setItemLayout(b,{points:I.concat(T.slice().reverse())})}}!function(t){var e=t.hostModel.get("orient");t.each((function(n){var i,r,o,a,s=t.getItemModel(n),l=s.getModel("label").get("position"),u=s.getModel("labelLine"),h=t.getItemLayout(n),c=h.points,p="inner"===l||"inside"===l||"center"===l||"insideLeft"===l||"insideRight"===l;if(p)"insideLeft"===l?(r=(c[0][0]+c[3][0])/2+5,o=(c[0][1]+c[3][1])/2,i="left"):"insideRight"===l?(r=(c[1][0]+c[2][0])/2-5,o=(c[1][1]+c[2][1])/2,i="right"):(r=(c[0][0]+c[1][0]+c[2][0]+c[3][0])/4,o=(c[0][1]+c[1][1]+c[2][1]+c[3][1])/4,i="center"),a=[[r,o],[r,o]];else{var d=void 0,f=void 0,g=void 0,y=void 0,v=u.get("length");"left"===l?(d=(c[3][0]+c[0][0])/2,f=(c[3][1]+c[0][1])/2,r=(g=d-v)-5,i="right"):"right"===l?(d=(c[1][0]+c[2][0])/2,f=(c[1][1]+c[2][1])/2,r=(g=d+v)+5,i="left"):"top"===l?(d=(c[3][0]+c[0][0])/2,o=(y=(f=(c[3][1]+c[0][1])/2)-v)-5,i="center"):"bottom"===l?(d=(c[1][0]+c[2][0])/2,o=(y=(f=(c[1][1]+c[2][1])/2)+v)+5,i="center"):"rightTop"===l?(d="horizontal"===e?c[3][0]:c[1][0],f="horizontal"===e?c[3][1]:c[1][1],"horizontal"===e?(o=(y=f-v)-5,i="center"):(r=(g=d+v)+5,i="top")):"rightBottom"===l?(d=c[2][0],f=c[2][1],"horizontal"===e?(o=(y=f+v)+5,i="center"):(r=(g=d+v)+5,i="bottom")):"leftTop"===l?(d=c[0][0],f="horizontal"===e?c[0][1]:c[1][1],"horizontal"===e?(o=(y=f-v)-5,i="center"):(r=(g=d-v)-5,i="right")):"leftBottom"===l?(d="horizontal"===e?c[1][0]:c[3][0],f="horizontal"===e?c[1][1]:c[2][1],"horizontal"===e?(o=(y=f+v)+5,i="center"):(r=(g=d-v)-5,i="right")):(d=(c[1][0]+c[2][0])/2,f=(c[1][1]+c[2][1])/2,"horizontal"===e?(o=(y=f+v)+5,i="center"):(r=(g=d+v)+5,i="left")),"horizontal"===e?r=g=d:o=y=f,a=[[d,f],[g,y]]}h.label={linePoints:a,x:r,y:o,verticalAlign:"middle",textAlign:i,inside:p}}))}(n)}))}var QT=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e._dataGroup=new Li,e._initialized=!1,e}return e(n,t),n.prototype.init=function(){this.group.add(this._dataGroup)},n.prototype.render=function(t,e,n,i){var r=this._dataGroup,o=t.getData(),a=this._data,s=t.coordinateSystem,l=s.dimensions,u=nC(t);if(o.diff(a).add((function(t){iC(eC(o,r,t,l,s),o,t,u)})).update((function(e,n){var i=a.getItemGraphicEl(n),r=tC(o,e,l,s);o.setItemGraphicEl(e,i),fu(i,{shape:{points:r}},t,e),iC(i,o,e,u)})).remove((function(t){var e=a.getItemGraphicEl(t);r.remove(e)})).execute(),!this._initialized){this._initialized=!0;var h=function(t,e,n){var i=t.model,r=t.getRect(),o=new Xa({shape:{x:r.x,y:r.y,width:r.width,height:r.height}}),a="horizontal"===i.get("layout")?"width":"height";return o.setShape(a,0),gu(o,{shape:{width:r.width,height:r.height}},e,n),o}(s,t,(function(){setTimeout((function(){r.removeClipPath()}))}));r.setClipPath(h)}this._data=o},n.prototype.incrementalPrepareRender=function(t,e,n){this._initialized=!0,this._data=null,this._dataGroup.removeAll()},n.prototype.incrementalRender=function(t,e,n){for(var i=e.getData(),r=e.coordinateSystem,o=r.dimensions,a=nC(e),s=t.start;s<t.end;s++){var l=eC(i,this._dataGroup,s,o,r);l.incremental=!0,iC(l,i,s,a)}},n.prototype.remove=function(){this._dataGroup&&this._dataGroup.removeAll(),this._data=null},n.type="parallel",n}(Od);function tC(t,e,n,i){for(var r,o=[],a=0;a<n.length;a++){var s=n[a],l=t.get(t.mapDimension(s),e);r=l,("category"===i.getAxis(s).type?null==r:null==r||isNaN(r))||o.push(i.dataToPoint(l,s))}return o}function eC(t,e,n,i,r){var o=tC(t,n,i,r),a=new Pl({shape:{points:o},z2:10});return e.add(a),t.setItemGraphicEl(n,a),a}function nC(t){var e=t.get("smooth",!0);return!0===e&&(e=.3),$(e=er(e))&&(e=0),{smooth:e}}function iC(t,e,n,i){t.useStyle(e.getItemVisual(n,"style")),t.style.fill=null,t.setShape("smooth",i.smooth);var r=e.getItemModel(n),o=r.getModel("emphasis");zs(t,r,"lineStyle"),Os(t,o.get("focus"),o.get("blurScope"))}var rC=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.visualStyleAccessPath="lineStyle",e.visualDrawType="stroke",e}return e(n,t),n.prototype.getInitialData=function(t,e){return lm(this.getSource(),this,{useEncodeDefaulter:z(oC,null,this)})},n.prototype.getRawIndicesByActiveState=function(t){var e=this.coordinateSystem,n=this.getData(),i=[];return e.eachActiveState(n,(function(e,r){t===e&&i.push(n.getRawIndex(r))})),i},n.type="series.parallel",n.dependencies=["parallel"],n.defaultOption={zlevel:0,z:2,coordinateSystem:"parallel",parallelIndex:0,label:{show:!1},inactiveOpacity:.05,activeOpacity:1,lineStyle:{width:1,opacity:.45,type:"solid"},emphasis:{label:{show:!1}},progressive:500,smooth:!1,animationEasing:"linear"},n}(bd);function oC(t){var e=t.ecModel.getComponent("parallel",t.get("parallelIndex"));if(e){var n={};return k(e.dimensions,(function(t){var e=+t.replace("dim","");n[t]=e})),n}}var aC=["lineStyle","opacity"],sC={seriesType:"parallel",reset:function(t,e){var n=t.coordinateSystem,i={normal:t.get(["lineStyle","opacity"]),active:t.get("activeOpacity"),inactive:t.get("inactiveOpacity")};return{progress:function(t,e){n.eachActiveState(e,(function(t,n){var r=i[t];if("normal"===t&&e.hasItemOption){var o=e.getItemModel(n).get(aC,!0);null!=o&&(r=o)}e.ensureUniqueItemVisual(n,"style").opacity=r}),t.start,t.end)}}}};function lC(t){!function(t){if(t.parallel)return;var e=!1;k(t.series,(function(t){t&&"parallel"===t.type&&(e=!0)})),e&&(t.parallel=[{}])}(t),function(t){k(lr(t.parallelAxis),(function(e){if(Y(e)){var n=e.parallelIndex||0,i=lr(t.parallel)[n];i&&i.parallelAxisDefault&&w(e,i.parallelAxisDefault,!1)}}))}(t)}var uC=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n){this._model=t,this._api=n,this._handlers||(this._handlers={},k(hC,(function(t,e){n.getZr().on(e,this._handlers[e]=z(t,this))}),this)),Hd(this,"_throttledDispatchExpand",t.get("axisExpandRate"),"fixRate")},n.prototype.dispose=function(t,e){k(this._handlers,(function(t,n){e.getZr().off(n,t)})),this._handlers=null},n.prototype._throttledDispatchExpand=function(t){this._dispatchExpand(t)},n.prototype._dispatchExpand=function(t){t&&this._api.dispatchAction(M({type:"parallelAxisExpand"},t))},n.type="parallel",n}(Dd),hC={mousedown:function(t){cC(this,"click")&&(this._mouseDownPoint=[t.offsetX,t.offsetY])},mouseup:function(t){var e=this._mouseDownPoint;if(cC(this,"click")&&e){var n=[t.offsetX,t.offsetY];if(Math.pow(e[0]-n[0],2)+Math.pow(e[1]-n[1],2)>5)return;var i=this._model.coordinateSystem.getSlidedAxisExpandWindow([t.offsetX,t.offsetY]);"none"!==i.behavior&&this._dispatchExpand({axisExpandWindow:i.axisExpandWindow})}this._mouseDownPoint=null},mousemove:function(t){if(!this._mouseDownPoint&&cC(this,"mousemove")){var e=this._model,n=e.coordinateSystem.getSlidedAxisExpandWindow([t.offsetX,t.offsetY]),i=n.behavior;"jump"===i&&this._throttledDispatchExpand.debounceNextCall(e.get("axisExpandDebounce")),this._throttledDispatchExpand("none"===i?null:{axisExpandWindow:n.axisExpandWindow,animation:"jump"===i?null:{duration:0}})}}};function cC(t,e){var n=t._model;return n.get("axisExpandable")&&n.get("axisExpandTriggerOn")===e}var pC=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.init=function(){t.prototype.init.apply(this,arguments),this.mergeOption({})},n.prototype.mergeOption=function(t){var e=this.option;t&&w(e,t,!0),this._initDimensions()},n.prototype.contains=function(t,e){var n=t.get("parallelIndex");return null!=n&&e.getComponent("parallel",n)===this},n.prototype.setAxisExpand=function(t){k(["axisExpandable","axisExpandCenter","axisExpandCount","axisExpandWidth","axisExpandWindow"],(function(e){t.hasOwnProperty(e)&&(this.option[e]=t[e])}),this)},n.prototype._initDimensions=function(){var t=this.dimensions=[],e=this.parallelAxisIndex=[];k(R(this.ecModel.queryComponents({mainType:"parallelAxis"}),(function(t){return(t.get("parallelIndex")||0)===this.componentIndex}),this),(function(n){t.push("dim"+n.get("dim")),e.push(n.componentIndex)}))},n.type="parallel",n.dependencies=["parallelAxis"],n.layoutMode="box",n.defaultOption={zlevel:0,z:0,left:80,top:60,right:80,bottom:60,layout:"horizontal",axisExpandable:!1,axisExpandCenter:null,axisExpandCount:0,axisExpandWidth:50,axisExpandRate:17,axisExpandDebounce:50,axisExpandSlideTriggerArea:[-.15,.05,.4],axisExpandTriggerOn:"click",parallelAxisDefault:null},n}(sc),dC=function(t){function n(e,n,i,r,o){var a=t.call(this,e,n,i)||this;return a.type=r||"value",a.axisIndex=o,a}return e(n,t),n.prototype.isHorizontal=function(){return"horizontal"!==this.coordinateSystem.getModel().get("layout")},n}(E_);function fC(t,e,n,i,r,o){t=t||0;var a=n[1]-n[0];if(null!=r&&(r=yC(r,[0,a])),null!=o&&(o=Math.max(o,null!=r?r:0)),"all"===i){var s=Math.abs(e[1]-e[0]);s=yC(s,[0,a]),r=o=yC(s,[r,o]),i=0}e[0]=yC(e[0],n),e[1]=yC(e[1],n);var l=gC(e,i);e[i]+=t;var u,h=r||0,c=n.slice();return l.sign<0?c[0]+=h:c[1]-=h,e[i]=yC(e[i],c),u=gC(e,i),null!=r&&(u.sign!==l.sign||u.span<r)&&(e[1-i]=e[i]+l.sign*r),u=gC(e,i),null!=o&&u.span>o&&(e[1-i]=e[i]+u.sign*o),e}function gC(t,e){var n=t[e]-t[1-e];return{span:Math.abs(n),sign:n>0?-1:n<0?1:e?-1:1}}function yC(t,e){return Math.min(null!=e[1]?e[1]:1/0,Math.max(null!=e[0]?e[0]:-1/0,t))}var vC=k,mC=Math.min,_C=Math.max,xC=Math.floor,bC=Math.ceil,wC=Fi,SC=Math.PI,MC=function(){function t(t,e,n){this.type="parallel",this._axesMap=lt(),this._axesLayout={},this.dimensions=t.dimensions,this._model=t,this._init(t,e,n)}return t.prototype._init=function(t,e,n){var i=t.dimensions,r=t.parallelAxisIndex;vC(i,(function(t,n){var i=r[n],o=e.getComponent("parallelAxis",i),a=this._axesMap.set(t,new dC(t,a_(o),[0,0],o.get("type"),i)),s="category"===a.type;a.onBand=s&&o.get("boundaryGap"),a.inverse=o.get("inverse"),o.axis=a,a.model=o,a.coordinateSystem=o.coordinateSystem=this}),this)},t.prototype.update=function(t,e){this._updateAxesFromSeries(this._model,t)},t.prototype.containPoint=function(t){var e=this._makeLayoutInfo(),n=e.axisBase,i=e.layoutBase,r=e.pixelDimIndex,o=t[1-r],a=t[r];return o>=n&&o<=n+e.axisLength&&a>=i&&a<=i+e.layoutLength},t.prototype.getModel=function(){return this._model},t.prototype._updateAxesFromSeries=function(t,e){e.eachSeries((function(n){if(t.contains(n,e)){var i=n.getData();vC(this.dimensions,(function(t){var e=this._axesMap.get(t);e.scale.unionExtentFromData(i,i.mapDimension(t)),o_(e.scale,e.model)}),this)}}),this)},t.prototype.resize=function(t,e){this._rect=tc(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()}),this._layoutAxes()},t.prototype.getRect=function(){return this._rect},t.prototype._makeLayoutInfo=function(){var t,e=this._model,n=this._rect,i=["x","y"],r=["width","height"],o=e.get("layout"),a="horizontal"===o?0:1,s=n[r[a]],l=[0,s],u=this.dimensions.length,h=IC(e.get("axisExpandWidth"),l),c=IC(e.get("axisExpandCount")||0,[0,u]),p=e.get("axisExpandable")&&u>3&&u>c&&c>1&&h>0&&s>0,d=e.get("axisExpandWindow");d?(t=IC(d[1]-d[0],l),d[1]=d[0]+t):(t=IC(h*(c-1),l),(d=[h*(e.get("axisExpandCenter")||xC(u/2))-t/2])[1]=d[0]+t);var f=(s-t)/(u-c);f<3&&(f=0);var g=[xC(wC(d[0]/h,1))+1,bC(wC(d[1]/h,1))-1],y=f/h*d[0];return{layout:o,pixelDimIndex:a,layoutBase:n[i[a]],layoutLength:s,axisBase:n[i[1-a]],axisLength:n[r[1-a]],axisExpandable:p,axisExpandWidth:h,axisCollapseWidth:f,axisExpandWindow:d,axisCount:u,winInnerIndices:g,axisExpandWindow0Pos:y}},t.prototype._layoutAxes=function(){var t=this._rect,e=this._axesMap,n=this.dimensions,i=this._makeLayoutInfo(),r=i.layout;e.each((function(t){var e=[0,i.axisLength],n=t.inverse?1:0;t.setExtent(e[n],e[1-n])})),vC(n,(function(e,n){var o=(i.axisExpandable?CC:TC)(n,i),a={horizontal:{x:o.position,y:i.axisLength},vertical:{x:0,y:o.position}},s={horizontal:SC/2,vertical:0},l=[a[r].x+t.x,a[r].y+t.y],u=s[r],h=[1,0,0,1,0,0];ye(h,h,u),ge(h,h,l),this._axesLayout[e]={position:l,rotation:u,transform:h,axisNameAvailableWidth:o.axisNameAvailableWidth,axisLabelShow:o.axisLabelShow,nameTruncateMaxWidth:o.nameTruncateMaxWidth,tickDirection:1,labelDirection:1}}),this)},t.prototype.getAxis=function(t){return this._axesMap.get(t)},t.prototype.dataToPoint=function(t,e){return this.axisCoordToPoint(this._axesMap.get(e).dataToCoord(t),e)},t.prototype.eachActiveState=function(t,e,n,i){null==n&&(n=0),null==i&&(i=t.count());var r=this._axesMap,o=this.dimensions,a=[],s=[];k(o,(function(e){a.push(t.mapDimension(e)),s.push(r.get(e).model)}));for(var l=this.hasAxisBrushed(),u=n;u<i;u++){var h=void 0;if(l){h="active";for(var c=t.getValues(a,u),p=0,d=o.length;p<d;p++){if("inactive"===s[p].getActiveState(c[p])){h="inactive";break}}}else h="normal";e(h,u)}},t.prototype.hasAxisBrushed=function(){for(var t=this.dimensions,e=this._axesMap,n=!1,i=0,r=t.length;i<r;i++)"normal"!==e.get(t[i]).model.getActiveState()&&(n=!0);return n},t.prototype.axisCoordToPoint=function(t,e){return bu([t,0],this._axesLayout[e].transform)},t.prototype.getAxisLayout=function(t){return b(this._axesLayout[t])},t.prototype.getSlidedAxisExpandWindow=function(t){var e=this._makeLayoutInfo(),n=e.pixelDimIndex,i=e.axisExpandWindow.slice(),r=i[1]-i[0],o=[0,e.axisExpandWidth*(e.axisCount-1)];if(!this.containPoint(t))return{behavior:"none",axisExpandWindow:i};var a,s=t[n]-e.layoutBase-e.axisExpandWindow0Pos,l="slide",u=e.axisCollapseWidth,h=this._model.get("axisExpandSlideTriggerArea"),c=null!=h[0];if(u)c&&u&&s<r*h[0]?(l="jump",a=s-r*h[2]):c&&u&&s>r*(1-h[0])?(l="jump",a=s-r*(1-h[2])):(a=s-r*h[1])>=0&&(a=s-r*(1-h[1]))<=0&&(a=0),(a*=e.axisExpandWidth/u)?fC(a,i,o,"all"):l="none";else{var p=i[1]-i[0];(i=[_C(0,o[1]*s/p-p/2)])[1]=mC(o[1],i[0]+p),i[0]=i[1]-p}return{axisExpandWindow:i,behavior:l}},t}();function IC(t,e){return mC(_C(t,e[0]),e[1])}function TC(t,e){var n=e.layoutLength/(e.axisCount-1);return{position:n*t,axisNameAvailableWidth:n,axisLabelShow:!0}}function CC(t,e){var n,i,r=e.layoutLength,o=e.axisExpandWidth,a=e.axisCount,s=e.axisCollapseWidth,l=e.winInnerIndices,u=s,h=!1;return t<l[0]?(n=t*s,i=s):t<=l[1]?(n=e.axisExpandWindow0Pos+t*o-e.axisExpandWindow[0],u=o,h=!0):(n=r-(a-1-t)*s,i=s),{position:n,axisNameAvailableWidth:u,axisLabelShow:h,nameTruncateMaxWidth:i}}var AC={create:function(t,e){var n=[];return t.eachComponent("parallel",(function(i,r){var o=new MC(i,t,e);o.name="parallel_"+r,o.resize(i,e),i.coordinateSystem=o,o.model=i,n.push(o)})),t.eachSeries((function(t){if("parallel"===t.get("coordinateSystem")){var e=t.getReferringComponents("parallel",wr).models[0];t.coordinateSystem=e.coordinateSystem}})),n}},DC=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.activeIntervals=[],e}return e(n,t),n.prototype.getAreaSelectStyle=function(){return zr([["fill","color"],["lineWidth","borderWidth"],["stroke","borderColor"],["width","width"],["opacity","opacity"]])(this.getModel("areaSelectStyle"))},n.prototype.setActiveIntervals=function(t){var e=this.activeIntervals=b(t);if(e)for(var n=e.length-1;n>=0;n--)Gi(e[n])},n.prototype.getActiveState=function(t){var e=this.activeIntervals;if(!e.length)return"normal";if(null==t||isNaN(+t))return"inactive";if(1===e.length){var n=e[0];if(n[0]<=t&&t<=n[1])return"active"}else for(var i=0,r=e.length;i<r;i++)if(e[i][0]<=t&&t<=e[i][1])return"active";return"inactive"},n}(sc);D(DC,d_);var LC=Math.min,kC=Math.max,PC=Math.pow,OC={w:[0,0],e:[0,1],n:[1,0],s:[1,1]},RC={w:"ew",e:"ew",n:"ns",s:"ns",ne:"nesw",sw:"nesw",nw:"nwse",se:"nwse"},NC={brushStyle:{lineWidth:2,stroke:"rgba(210,219,238,0.3)",fill:"#D2DBEE"},transformable:!0,brushMode:"single",removeOnClick:!1},EC=0,zC=function(t){function n(e){var n=t.call(this)||this;return n._track=[],n._covers=[],n._handlers={},n._zr=e,n.group=new Li,n._uid="brushController_"+EC++,k(hA,(function(t,e){this._handlers[e]=z(t,this)}),n),n}return e(n,t),n.prototype.enableBrush=function(t){return this._brushType&&this._doDisableBrush(),t.brushType&&this._doEnableBrush(t),this},n.prototype._doEnableBrush=function(t){var e=this._zr;this._enableGlobalPan||function(t,e,n){yS(t)[e]=n}(e,"globalPan",this._uid),k(this._handlers,(function(t,n){e.on(n,t)})),this._brushType=t.brushType,this._brushOption=w(b(NC),t,!0)},n.prototype._doDisableBrush=function(){var t=this._zr;!function(t,e,n){var i=yS(t);i[e]===n&&(i[e]=null)}(t,"globalPan",this._uid),k(this._handlers,(function(e,n){t.off(n,e)})),this._brushType=this._brushOption=null},n.prototype.setPanels=function(t){if(t&&t.length){var e=this._panels={};k(t,(function(t){e[t.panelId]=b(t)}))}else this._panels=null;return this},n.prototype.mount=function(t){t=t||{},this._enableGlobalPan=t.enableGlobalPan;var e=this.group;return this._zr.add(e),e.attr({x:t.x||0,y:t.y||0,rotation:t.rotation||0,scaleX:t.scaleX||1,scaleY:t.scaleY||1}),this._transform=e.getLocalTransform(),this},n.prototype.updateCovers=function(t){t=P(t,(function(t){return w(b(NC),t,!0)}));var e=this._covers,n=this._covers=[],i=this,r=this._creatingCover;return new Iv(e,t,(function(t,e){return o(t.__brushOption,e)}),o).add(a).update(a).remove((function(t){e[t]!==r&&i.group.remove(e[t])})).execute(),this;function o(t,e){return(null!=t.id?t.id:"\0-brush-index-"+e)+"-"+t.brushType}function a(o,a){var s=t[o];if(null!=a&&e[a]===r)n[o]=e[a];else{var l=n[o]=null!=a?(e[a].__brushOption=s,e[a]):VC(i,BC(i,s));HC(i,l)}}},n.prototype.unmount=function(){return this.enableBrush(!1),UC(this),this._zr.remove(this.group),this},n.prototype.dispose=function(){this.unmount(),this.off()},n}(Bt);function BC(t,e){var n=pA[e.brushType].createCover(t,e);return n.__brushOption=e,GC(n,e),t.group.add(n),n}function VC(t,e){var n=WC(e);return n.endCreating&&(n.endCreating(t,e),GC(e,e.__brushOption)),e}function FC(t,e){var n=e.__brushOption;WC(e).updateCoverShape(t,e,n.range,n)}function GC(t,e){var n=e.z;null==n&&(n=1e4),t.traverse((function(t){t.z=n,t.z2=n}))}function HC(t,e){WC(e).updateCommon(t,e),FC(t,e)}function WC(t){return pA[t.__brushOption.brushType]}function YC(t,e,n){var i,r=t._panels;if(!r)return true;var o=t._transform;return k(r,(function(t){t.isTargetByCursor(e,n,o)&&(i=t)})),i}function XC(t,e){var n=t._panels;if(!n)return true;var i=e.__brushOption.panelId;return null==i||n[i]}function UC(t){var e=t._covers,n=e.length;return k(e,(function(e){t.group.remove(e)}),t),e.length=0,!!n}function ZC(t,e){var n=P(t._covers,(function(t){var e=t.__brushOption,n=b(e.range);return{brushType:e.brushType,panelId:e.panelId,range:n}}));t.trigger("brush",{areas:n,isEnd:!!e.isEnd,removeOnClick:!!e.removeOnClick})}function jC(t){var e=t.length-1;return e<0&&(e=0),[t[0],t[e]]}function qC(t,e,n,i){var r=new Li;return r.add(new Xa({name:"main",style:QC(n),silent:!0,draggable:!0,cursor:"move",drift:B(nA,t,e,r,["n","s","w","e"]),ondragend:B(ZC,e,{isEnd:!0})})),k(i,(function(n){r.add(new Xa({name:n.join(""),style:{opacity:0},draggable:!0,silent:!0,invisible:!0,drift:B(nA,t,e,r,n),ondragend:B(ZC,e,{isEnd:!0})}))})),r}function KC(t,e,n,i){var r=i.brushStyle.lineWidth||0,o=kC(r,6),a=n[0][0],s=n[1][0],l=a-r/2,u=s-r/2,h=n[0][1],c=n[1][1],p=h-o+r/2,d=c-o+r/2,f=h-a,g=c-s,y=f+r,v=g+r;JC(t,e,"main",a,s,f,g),i.transformable&&(JC(t,e,"w",l,u,o,v),JC(t,e,"e",p,u,o,v),JC(t,e,"n",l,u,y,o),JC(t,e,"s",l,d,y,o),JC(t,e,"nw",l,u,o,o),JC(t,e,"ne",p,u,o,o),JC(t,e,"sw",l,d,o,o),JC(t,e,"se",p,d,o,o))}function $C(t,e){var n=e.__brushOption,i=n.transformable,r=e.childAt(0);r.useStyle(QC(n)),r.attr({silent:!i,cursor:i?"move":"default"}),k([["w"],["e"],["n"],["s"],["s","e"],["s","w"],["n","e"],["n","w"]],(function(n){var r=e.childOfName(n.join("")),o=1===n.length?eA(t,n[0]):function(t,e){var n=[eA(t,e[0]),eA(t,e[1])];return("e"===n[0]||"w"===n[0])&&n.reverse(),n.join("")}(t,n);r&&r.attr({silent:!i,invisible:!i,cursor:i?RC[o]+"-resize":null})}))}function JC(t,e,n,i,r,o,a){var s=e.childOfName(n);s&&s.setShape(function(t){var e=LC(t[0][0],t[1][0]),n=LC(t[0][1],t[1][1]),i=kC(t[0][0],t[1][0]),r=kC(t[0][1],t[1][1]);return{x:e,y:n,width:i-e,height:r-n}}(oA(t,e,[[i,r],[i+o,r+a]])))}function QC(t){return I({strokeNoScale:!0},t.brushStyle)}function tA(t,e,n,i){var r=[LC(t,n),LC(e,i)],o=[kC(t,n),kC(e,i)];return[[r[0],o[0]],[r[1],o[1]]]}function eA(t,e){return{left:"w",right:"e",top:"n",bottom:"s"}[wu({w:"left",e:"right",n:"top",s:"bottom"}[e],function(t){return xu(t.group)}(t))]}function nA(t,e,n,i,r,o){var a=n.__brushOption,s=t.toRectRange(a.range),l=rA(e,r,o);k(i,(function(t){var e=OC[t];s[e[0]][e[1]]+=l[e[0]]})),a.range=t.fromRectRange(tA(s[0][0],s[1][0],s[0][1],s[1][1])),HC(e,n),ZC(e,{isEnd:!1})}function iA(t,e,n,i){var r=e.__brushOption.range,o=rA(t,n,i);k(r,(function(t){t[0]+=o[0],t[1]+=o[1]})),HC(t,e),ZC(t,{isEnd:!1})}function rA(t,e,n){var i=t.group,r=i.transformCoordToLocal(e,n),o=i.transformCoordToLocal(0,0);return[r[0]-o[0],r[1]-o[1]]}function oA(t,e,n){var i=XC(t,e);return i&&true!==i?i.clipPath(n,t._transform):b(n)}function aA(t){var e=t.event;e.preventDefault&&e.preventDefault()}function sA(t,e,n){return t.childOfName("main").contain(e,n)}function lA(t,e,n,i){var r,o=t._creatingCover,a=t._creatingPanel,s=t._brushOption;if(t._track.push(n.slice()),function(t){var e=t._track;if(!e.length)return!1;var n=e[e.length-1],i=e[0],r=n[0]-i[0],o=n[1]-i[1];return PC(r*r+o*o,.5)>6}(t)||o){if(a&&!o){"single"===s.brushMode&&UC(t);var l=b(s);l.brushType=uA(l.brushType,a),l.panelId=true===a?null:a.panelId,o=t._creatingCover=BC(t,l),t._covers.push(o)}if(o){var u=pA[uA(t._brushType,a)];o.__brushOption.range=u.getCreatingRange(oA(t,o,t._track)),i&&(VC(t,o),u.updateCommon(t,o)),FC(t,o),r={isEnd:i}}}else i&&"single"===s.brushMode&&s.removeOnClick&&YC(t,e,n)&&UC(t)&&(r={isEnd:i,removeOnClick:!0});return r}function uA(t,e){return"auto"===t?e.defaultBrushType:t}var hA={mousedown:function(t){if(this._dragging)cA(this,t);else if(!t.target||!t.target.draggable){aA(t);var e=this.group.transformCoordToLocal(t.offsetX,t.offsetY);this._creatingCover=null,(this._creatingPanel=YC(this,t,e))&&(this._dragging=!0,this._track=[e.slice()])}},mousemove:function(t){var e=t.offsetX,n=t.offsetY,i=this.group.transformCoordToLocal(e,n);if(function(t,e,n){if(t._brushType&&!function(t,e,n){var i=t._zr;return e<0||e>i.getWidth()||n<0||n>i.getHeight()}(t,e.offsetX,e.offsetY)){var i=t._zr,r=t._covers,o=YC(t,e,n);if(!t._dragging)for(var a=0;a<r.length;a++){var s=r[a].__brushOption;if(o&&(!0===o||s.panelId===o.panelId)&&pA[s.brushType].contain(r[a],n[0],n[1]))return}o&&i.setCursorStyle("crosshair")}}(this,t,i),this._dragging){aA(t);var r=lA(this,t,i,!1);r&&ZC(this,r)}},mouseup:function(t){cA(this,t)}};function cA(t,e){if(t._dragging){aA(e);var n=e.offsetX,i=e.offsetY,r=t.group.transformCoordToLocal(n,i),o=lA(t,e,r,!0);t._dragging=!1,t._track=[],t._creatingCover=null,o&&ZC(t,o)}}var pA={lineX:dA(0),lineY:dA(1),rect:{createCover:function(t,e){function n(t){return t}return qC({toRectRange:n,fromRectRange:n},t,e,[["w"],["e"],["n"],["s"],["s","e"],["s","w"],["n","e"],["n","w"]])},getCreatingRange:function(t){var e=jC(t);return tA(e[1][0],e[1][1],e[0][0],e[0][1])},updateCoverShape:function(t,e,n,i){KC(t,e,n,i)},updateCommon:$C,contain:sA},polygon:{createCover:function(t,e){var n=new Li;return n.add(new Pl({name:"main",style:QC(e),silent:!0})),n},getCreatingRange:function(t){return t},endCreating:function(t,e){e.remove(e.childAt(0)),e.add(new Ll({name:"main",draggable:!0,drift:B(iA,t,e),ondragend:B(ZC,t,{isEnd:!0})}))},updateCoverShape:function(t,e,n,i){e.childAt(0).setShape({points:oA(t,e,n)})},updateCommon:$C,contain:sA}};function dA(t){return{createCover:function(e,n){return qC({toRectRange:function(e){var n=[e,[0,100]];return t&&n.reverse(),n},fromRectRange:function(e){return e[t]}},e,n,[[["w"],["e"]],[["n"],["s"]]][t])},getCreatingRange:function(e){var n=jC(e);return[LC(n[0][t],n[1][t]),kC(n[0][t],n[1][t])]},updateCoverShape:function(e,n,i,r){var o,a=XC(e,n);if(true!==a&&a.getLinearBrushOtherExtent)o=a.getLinearBrushOtherExtent(t);else{var s=e._zr;o=[0,[s.getWidth(),s.getHeight()][1-t]]}var l=[i,o];t&&l.reverse(),KC(e,n,l,r)},updateCommon:$C,contain:sA}}function fA(t){return t=vA(t),function(e){return Iu(e,t)}}function gA(t,e){return t=vA(t),function(n){var i=null!=e?e:n,r=i?t.width:t.height,o=i?t.x:t.y;return[o,o+(r||0)]}}function yA(t,e,n){var i=vA(t);return function(t,r){return i.contain(r[0],r[1])&&!MS(t,e,n)}}function vA(t){return Ln.create(t)}var mA=["axisLine","axisTickLabel","axisName"],_A=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.init=function(e,n){t.prototype.init.apply(this,arguments),(this._brushController=new zC(n.getZr())).on("brush",z(this._onBrush,this))},n.prototype.render=function(t,e,n,i){if(!function(t,e,n){return n&&"axisAreaSelect"===n.type&&e.findComponents({mainType:"parallelAxis",query:n})[0]===t}(t,e,i)){this.axisModel=t,this.api=n,this.group.removeAll();var r=this._axisGroup;if(this._axisGroup=new Li,this.group.add(this._axisGroup),t.get("show")){var o=function(t,e){return e.getComponent("parallel",t.get("parallelIndex"))}(t,e),a=o.coordinateSystem,s=t.getAreaSelectStyle(),l=s.width,u=t.axis.dim,h=M({strokeContainThreshold:l},a.getAxisLayout(u)),c=new Aw(t,h);k(mA,c.add,c),this._axisGroup.add(c.getGroup()),this._refreshBrushController(h,s,t,o,l,n),Mu(r,this._axisGroup,t)}}},n.prototype._refreshBrushController=function(t,e,n,i,r,o){var a=n.axis.getExtent(),s=a[1]-a[0],l=Math.min(30,.1*Math.abs(s)),u=Ln.create({x:a[0],y:-r/2,width:s,height:r});u.x-=l,u.width+=2*l,this._brushController.mount({enableGlobalPan:!0,rotation:t.rotation,x:t.position[0],y:t.position[1]}).setPanels([{panelId:"pl",clipPath:fA(u),isTargetByCursor:yA(u,o,i),getLinearBrushOtherExtent:gA(u,0)}]).enableBrush({brushType:"lineX",brushStyle:e,removeOnClick:!0}).updateCovers(function(t){var e=t.axis;return P(t.activeIntervals,(function(t){return{brushType:"lineX",panelId:"pl",range:[e.dataToCoord(t[0],!0),e.dataToCoord(t[1],!0)]}}))}(n))},n.prototype._onBrush=function(t){var e=t.areas,n=this.axisModel,i=n.axis,r=P(e,(function(t){return[i.coordToData(t.range[0],!0),i.coordToData(t.range[1],!0)]}));(!n.option.realtime===t.isEnd||t.removeOnClick)&&this.api.dispatchAction({type:"axisAreaSelect",parallelAxisId:n.id,intervals:r})},n.prototype.dispose=function(){this._brushController.dispose()},n.type="parallelAxis",n}(Dd);var xA={type:"axisAreaSelect",event:"axisAreaSelected"};var bA={type:"value",areaSelectStyle:{width:20,borderWidth:1,borderColor:"rgba(160,197,232)",color:"rgba(160,197,232)",opacity:.3},realtime:!0,z:10};function wA(t){t.registerComponentView(uC),t.registerComponentModel(pC),t.registerCoordinateSystem("parallel",AC),t.registerPreprocessor(lC),t.registerComponentModel(DC),t.registerComponentView(_A),dw(t,"parallel",DC,bA),function(t){t.registerAction(xA,(function(t,e){e.eachComponent({mainType:"parallelAxis",query:t},(function(e){e.axis.model.setActiveIntervals(t.intervals)}))})),t.registerAction("parallelAxisExpand",(function(t,e){e.eachComponent({mainType:"parallel",query:t},(function(e){e.setAxisExpand(t)}))}))}(t)}var SA=function(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.cpx1=0,this.cpy1=0,this.cpx2=0,this.cpy2=0,this.extent=0},MA=function(t){function n(e){return t.call(this,e)||this}return e(n,t),n.prototype.getDefaultShape=function(){return new SA},n.prototype.buildPath=function(t,e){var n=e.extent;t.moveTo(e.x1,e.y1),t.bezierCurveTo(e.cpx1,e.cpy1,e.cpx2,e.cpy2,e.x2,e.y2),"vertical"===e.orient?(t.lineTo(e.x2+n,e.y2),t.bezierCurveTo(e.cpx2+n,e.cpy2,e.cpx1+n,e.cpy1,e.x1+n,e.y1)):(t.lineTo(e.x2,e.y2+n),t.bezierCurveTo(e.cpx2,e.cpy2+n,e.cpx1,e.cpy1+n,e.x1,e.y1+n)),t.closePath()},n.prototype.highlight=function(){Ss(this)},n.prototype.downplay=function(){Ms(this)},n}(Oa),IA=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e._focusAdjacencyDisabled=!1,e}return e(n,t),n.prototype.render=function(t,e,n){var i=this,r=t.getGraph(),o=this.group,a=t.layoutInfo,s=a.width,l=a.height,u=t.getData(),h=t.getData("edge"),c=t.get("orient");this._model=t,o.removeAll(),o.x=a.x,o.y=a.y,r.eachEdge((function(e){var n=new MA,i=ns(n);i.dataIndex=e.dataIndex,i.seriesIndex=t.seriesIndex,i.dataType="edge";var r,a,u,p,d,f,g,y,v=e.getModel(),m=v.getModel("lineStyle"),_=m.get("curveness"),x=e.node1.getLayout(),b=e.node1.getModel(),w=b.get("localX"),S=b.get("localY"),M=e.node2.getLayout(),I=e.node2.getModel(),T=I.get("localX"),C=I.get("localY"),A=e.getLayout();switch(n.shape.extent=Math.max(1,A.dy),n.shape.orient=c,"vertical"===c?(r=(null!=w?w*s:x.x)+A.sy,a=(null!=S?S*l:x.y)+x.dy,u=(null!=T?T*s:M.x)+A.ty,d=r,f=a*(1-_)+(p=null!=C?C*l:M.y)*_,g=u,y=a*_+p*(1-_)):(r=(null!=w?w*s:x.x)+x.dx,a=(null!=S?S*l:x.y)+A.sy,d=r*(1-_)+(u=null!=T?T*s:M.x)*_,f=a,g=r*_+u*(1-_),y=p=(null!=C?C*l:M.y)+A.ty),n.setShape({x1:r,y1:a,x2:u,y2:p,cpx1:d,cpy1:f,cpx2:g,cpy2:y}),n.useStyle(m.getItemStyle()),n.style.fill){case"source":n.style.fill=e.node1.getVisual("color"),n.style.decal=e.node1.getVisual("style").decal;break;case"target":n.style.fill=e.node2.getVisual("color"),n.style.decal=e.node2.getVisual("style").decal;break;case"gradient":var D=e.node1.getVisual("color"),L=e.node2.getVisual("color");"string"==typeof D&&"string"==typeof L&&(n.style.fill=new Yl(0,0,1,0,[{color:D,offset:0},{color:L,offset:1}]))}var k=v.getModel("emphasis");zs(n,v,"lineStyle",(function(t){return t.getItemStyle()})),o.add(n),h.setItemGraphicEl(e.dataIndex,n);var P=k.get("focus");Os(n,"adjacency"===P?e.getAdjacentDataIndices():P,k.get("blurScope")),ns(n).dataType="edge"})),r.eachNode((function(e){var n=e.getLayout(),i=e.getModel(),r=i.get("localX"),a=i.get("localY"),h=i.getModel("emphasis"),c=new Xa({shape:{x:null!=r?r*s:n.x,y:null!=a?a*l:n.y,width:n.dx,height:n.dy},style:i.getModel("itemStyle").getItemStyle()});Nu(c,Eu(i),{labelFetcher:t,labelDataIndex:e.dataIndex,defaultText:e.id}),c.disableLabelAnimation=!0,c.setStyle("fill",e.getVisual("color")),c.setStyle("decal",e.getVisual("style").decal),zs(c,i),o.add(c),u.setItemGraphicEl(e.dataIndex,c),ns(c).dataType="node";var p=h.get("focus");Os(c,"adjacency"===p?e.getAdjacentDataIndices():p,h.get("blurScope"))})),u.eachItemGraphicEl((function(e,r){u.getItemModel(r).get("draggable")&&(e.drift=function(e,o){i._focusAdjacencyDisabled=!0,this.shape.x+=e,this.shape.y+=o,this.dirty(),n.dispatchAction({type:"dragNode",seriesId:t.id,dataIndex:u.getRawIndex(r),localX:this.shape.x/s,localY:this.shape.y/l})},e.ondragend=function(){i._focusAdjacencyDisabled=!1},e.draggable=!0,e.cursor="move")})),!this._data&&t.isAnimationEnabled()&&o.setClipPath(function(t,e,n){var i=new Xa({shape:{x:t.x-10,y:t.y-10,width:0,height:t.height+20}});return gu(i,{shape:{width:t.width+20}},e,n),i}(o.getBoundingRect(),t,(function(){o.removeClipPath()}))),this._data=t.getData()},n.prototype.dispose=function(){},n.type="sankey",n}(Od);var TA=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.getInitialData=function(t,e){var n=t.edges||t.links,i=t.data||t.nodes,r=t.levels;this.levelModels=[];for(var o=this.levelModels,a=0;a<r.length;a++)null!=r[a].depth&&r[a].depth>=0&&(o[r[a].depth]=new rh(r[a],this,e));if(i&&n)return VT(i,n,this,!0,(function(t,e){t.wrapMethod("getItemModel",(function(t,e){var n=t.parentModel,i=n.getData().getItemLayout(e);if(i){var r=i.depth,o=n.levelModels[r];o&&(t.parentModel=o)}return t})),e.wrapMethod("getItemModel",(function(t,e){var n=t.parentModel,i=n.getGraph().getEdgeByIndex(e).node1.getLayout();if(i){var r=i.depth,o=n.levelModels[r];o&&(t.parentModel=o)}return t}))})).data},n.prototype.setNodePosition=function(t,e){var n=this.option.data[t];n.localX=e[0],n.localY=e[1]},n.prototype.getGraph=function(){return this.getData().graph},n.prototype.getEdgeData=function(){return this.getGraph().edgeData},n.prototype.formatTooltip=function(t,e,n){function i(t){return isNaN(t)||null==t}if("edge"===n){var r=this.getDataParams(t,n),o=r.data,a=r.value;return ld("nameValue",{name:o.source+" -- "+o.target,value:a,noValue:i(a)})}var s=this.getGraph().getNodeByIndex(t).getLayout().value,l=this.getDataParams(t,n).data.name;return ld("nameValue",{name:null!=l?l+"":null,value:s,noValue:i(s)})},n.prototype.optionUpdated=function(){var t=this.option;!0===t.focusNodeAdjacency&&(t.focusNodeAdjacency="allEdges")},n.prototype.getDataParams=function(e,n){var i=t.prototype.getDataParams.call(this,e,n);if(null==i.value&&"node"===n){var r=this.getGraph().getNodeByIndex(e).getLayout().value;i.value=r}return i},n.type="series.sankey",n.defaultOption={zlevel:0,z:2,coordinateSystem:"view",left:"5%",top:"5%",right:"20%",bottom:"5%",orient:"horizontal",nodeWidth:20,nodeGap:8,draggable:!0,focusNodeAdjacency:!1,layoutIterations:32,label:{show:!0,position:"right",fontSize:12},levels:[],nodeAlign:"justify",lineStyle:{color:"#314656",opacity:.2,curveness:.5},emphasis:{label:{show:!0},lineStyle:{opacity:.5}},select:{itemStyle:{borderColor:"#212121"}},animationEasing:"linear",animationDuration:1e3},n}(bd);function CA(t,e){t.eachSeriesByType("sankey",(function(t){var n=t.get("nodeWidth"),i=t.get("nodeGap"),r=function(t,e){return tc(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}(t,e);t.layoutInfo=r;var o=r.width,a=r.height,s=t.getGraph(),l=s.nodes,u=s.edges;!function(t){k(t,(function(t){var e=zA(t.outEdges,EA),n=zA(t.inEdges,EA),i=t.getValue()||0,r=Math.max(e,n,i);t.setLayout({value:r},!0)}))}(l),function(t,e,n,i,r,o,a,s,l){(function(t,e,n,i,r,o,a){for(var s=[],l=[],u=[],h=[],c=0,p=0;p<e.length;p++)s[p]=1;for(p=0;p<t.length;p++)l[p]=t[p].inEdges.length,0===l[p]&&u.push(t[p]);var d=-1;for(;u.length;){for(var f=0;f<u.length;f++){var g=u[f],y=g.hostGraph.data.getRawDataItem(g.dataIndex),v=null!=y.depth&&y.depth>=0;v&&y.depth>d&&(d=y.depth),g.setLayout({depth:v?y.depth:c},!0),"vertical"===o?g.setLayout({dy:n},!0):g.setLayout({dx:n},!0);for(var m=0;m<g.outEdges.length;m++){var _=g.outEdges[m];s[e.indexOf(_)]=0;var x=_.node2;0==--l[t.indexOf(x)]&&h.indexOf(x)<0&&h.push(x)}}++c,u=h,h=[]}for(p=0;p<s.length;p++)if(1===s[p])throw new Error("Sankey is a DAG, the original data has cycle!");var b=d>c-1?d:c-1;a&&"left"!==a&&function(t,e,n,i){if("right"===e){for(var r=[],o=t,a=0;o.length;){for(var s=0;s<o.length;s++){var l=o[s];l.setLayout({skNodeHeight:a},!0);for(var u=0;u<l.inEdges.length;u++){var h=l.inEdges[u];r.indexOf(h.node1)<0&&r.push(h.node1)}}o=r,r=[],++a}k(t,(function(t){AA(t)||t.setLayout({depth:Math.max(0,i-t.getLayout().skNodeHeight)},!0)}))}else"justify"===e&&function(t,e){k(t,(function(t){AA(t)||t.outEdges.length||t.setLayout({depth:e},!0)}))}(t,i)}(t,a,0,b);!function(t,e,n){k(t,(function(t){var i=t.getLayout().depth*e;"vertical"===n?t.setLayout({y:i},!0):t.setLayout({x:i},!0)}))}(t,"vertical"===o?(r-n)/b:(i-n)/b,o)})(t,e,n,r,o,s,l),function(t,e,n,i,r,o,a){var s=function(t,e){var n=[],i="vertical"===e?"y":"x",r=Tr(t,(function(t){return t.getLayout()[i]}));return r.keys.sort((function(t,e){return t-e})),k(r.keys,(function(t){n.push(r.buckets.get(t))})),n}(t,a);(function(t,e,n,i,r,o){var a=1/0;k(t,(function(t){var e=t.length,s=0;k(t,(function(t){s+=t.getLayout().value}));var l="vertical"===o?(i-(e-1)*r)/s:(n-(e-1)*r)/s;l<a&&(a=l)})),k(t,(function(t){k(t,(function(t,e){var n=t.getLayout().value*a;"vertical"===o?(t.setLayout({x:e},!0),t.setLayout({dx:n},!0)):(t.setLayout({y:e},!0),t.setLayout({dy:n},!0))}))})),k(e,(function(t){var e=+t.getValue()*a;t.setLayout({dy:e},!0)}))})(s,e,n,i,r,a),DA(s,r,n,i,a);for(var l=1;o>0;o--)LA(s,l*=.99,a),DA(s,r,n,i,a),BA(s,l,a),DA(s,r,n,i,a)}(t,e,o,r,i,a,s),function(t,e){var n="vertical"===e?"x":"y";k(t,(function(t){t.outEdges.sort((function(t,e){return t.node2.getLayout()[n]-e.node2.getLayout()[n]})),t.inEdges.sort((function(t,e){return t.node1.getLayout()[n]-e.node1.getLayout()[n]}))})),k(t,(function(t){var e=0,n=0;k(t.outEdges,(function(t){t.setLayout({sy:e},!0),e+=t.getLayout().dy})),k(t.inEdges,(function(t){t.setLayout({ty:n},!0),n+=t.getLayout().dy}))}))}(t,s)}(l,u,n,i,o,a,0!==R(l,(function(t){return 0===t.getLayout().value})).length?0:t.get("layoutIterations"),t.get("orient"),t.get("nodeAlign"))}))}function AA(t){var e=t.hostGraph.data.getRawDataItem(t.dataIndex);return null!=e.depth&&e.depth>=0}function DA(t,e,n,i,r){var o="vertical"===r?"x":"y";k(t,(function(t){var a,s,l;t.sort((function(t,e){return t.getLayout()[o]-e.getLayout()[o]}));for(var u=0,h=t.length,c="vertical"===r?"dx":"dy",p=0;p<h;p++)(l=u-(s=t[p]).getLayout()[o])>0&&(a=s.getLayout()[o]+l,"vertical"===r?s.setLayout({x:a},!0):s.setLayout({y:a},!0)),u=s.getLayout()[o]+s.getLayout()[c]+e;if((l=u-e-("vertical"===r?i:n))>0){a=s.getLayout()[o]-l,"vertical"===r?s.setLayout({x:a},!0):s.setLayout({y:a},!0),u=a;for(p=h-2;p>=0;--p)(l=(s=t[p]).getLayout()[o]+s.getLayout()[c]+e-u)>0&&(a=s.getLayout()[o]-l,"vertical"===r?s.setLayout({x:a},!0):s.setLayout({y:a},!0)),u=s.getLayout()[o]}}))}function LA(t,e,n){k(t.slice().reverse(),(function(t){k(t,(function(t){if(t.outEdges.length){var i=zA(t.outEdges,kA,n)/zA(t.outEdges,EA);if(isNaN(i)){var r=t.outEdges.length;i=r?zA(t.outEdges,PA,n)/r:0}if("vertical"===n){var o=t.getLayout().x+(i-NA(t,n))*e;t.setLayout({x:o},!0)}else{var a=t.getLayout().y+(i-NA(t,n))*e;t.setLayout({y:a},!0)}}}))}))}function kA(t,e){return NA(t.node2,e)*t.getValue()}function PA(t,e){return NA(t.node2,e)}function OA(t,e){return NA(t.node1,e)*t.getValue()}function RA(t,e){return NA(t.node1,e)}function NA(t,e){return"vertical"===e?t.getLayout().x+t.getLayout().dx/2:t.getLayout().y+t.getLayout().dy/2}function EA(t){return t.getValue()}function zA(t,e,n){for(var i=0,r=t.length,o=-1;++o<r;){var a=+e(t[o],n);isNaN(a)||(i+=a)}return i}function BA(t,e,n){k(t,(function(t){k(t,(function(t){if(t.inEdges.length){var i=zA(t.inEdges,OA,n)/zA(t.inEdges,EA);if(isNaN(i)){var r=t.inEdges.length;i=r?zA(t.inEdges,RA,n)/r:0}if("vertical"===n){var o=t.getLayout().x+(i-NA(t,n))*e;t.setLayout({x:o},!0)}else{var a=t.getLayout().y+(i-NA(t,n))*e;t.setLayout({y:a},!0)}}}))}))}function VA(t){t.eachSeriesByType("sankey",(function(t){var e=t.getGraph().nodes;if(e.length){var n=1/0,i=-1/0;k(e,(function(t){var e=t.getLayout().value;e<n&&(n=e),e>i&&(i=e)})),k(e,(function(e){var r=new uI({type:"color",mappingMethod:"linear",dataExtent:[n,i],visual:t.get("color")}).mapValueToVisual(e.getLayout().value),o=e.getModel().get(["itemStyle","color"]);null!=o?(e.setVisual("color",o),e.setVisual("style",{fill:o})):(e.setVisual("color",r),e.setVisual("style",{fill:r}))}))}}))}var FA=function(){function t(){}return t.prototype.getInitialData=function(t,e){var n,i,r=e.getComponent("xAxis",this.get("xAxisIndex")),o=e.getComponent("yAxis",this.get("yAxisIndex")),a=r.get("type"),s=o.get("type");"category"===a?(t.layout="horizontal",n=r.getOrdinalMeta(),i=!0):"category"===s?(t.layout="vertical",n=o.getOrdinalMeta(),i=!0):t.layout=t.layout||"horizontal";var l=["x","y"],u="horizontal"===t.layout?0:1,h=this._baseAxisDim=l[u],c=l[1-u],p=[r,o],d=p[u].get("type"),f=p[1-u].get("type"),g=t.data;if(g&&i){var y=[];k(g,(function(t,e){var n;V(t)?(n=t.slice(),t.unshift(e)):V(t.value)?(n=t.value.slice(),t.value.unshift(e)):n=t,y.push(n)})),t.data=y}var v=this.defaultValueDimensions,m=[{name:h,type:Cv(d),ordinalMeta:n,otherDims:{tooltip:!1,itemName:0},dimsDef:["base"]},{name:c,type:Cv(f),dimsDef:v.slice()}];return Jb(this,{coordDimensions:m,dimensionsCount:v.length+1,encodeDefaulter:B(yc,m,this)})},t.prototype.getBaseAxis=function(){var t=this._baseAxisDim;return this.ecModel.getComponent(t+"Axis",this.get(t+"AxisIndex")).axis},t}(),GA=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.defaultValueDimensions=[{name:"min",defaultTooltip:!0},{name:"Q1",defaultTooltip:!0},{name:"median",defaultTooltip:!0},{name:"Q3",defaultTooltip:!0},{name:"max",defaultTooltip:!0}],e.visualDrawType="stroke",e}return e(n,t),n.type="series.boxplot",n.dependencies=["xAxis","yAxis","grid"],n.defaultOption={zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,layout:null,boxWidth:[7,50],itemStyle:{color:"#fff",borderWidth:1},emphasis:{scale:!0,itemStyle:{borderWidth:2,shadowBlur:5,shadowOffsetX:1,shadowOffsetY:1,shadowColor:"rgba(0,0,0,0.2)"}},animationDuration:800},n}(bd);D(GA,FA,!0);var HA=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n){var i=t.getData(),r=this.group,o=this._data;this._data||r.removeAll();var a="horizontal"===t.get("layout")?1:0;i.diff(o).add((function(t){if(i.hasValue(t)){var e=XA(i.getItemLayout(t),i,t,a,!0);i.setItemGraphicEl(t,e),r.add(e)}})).update((function(t,e){var n=o.getItemGraphicEl(e);if(i.hasValue(t)){var s=i.getItemLayout(t);n?UA(s,n,i,t):n=XA(s,i,t,a),r.add(n),i.setItemGraphicEl(t,n)}else r.remove(n)})).remove((function(t){var e=o.getItemGraphicEl(t);e&&r.remove(e)})).execute(),this._data=i},n.prototype.remove=function(t){var e=this.group,n=this._data;this._data=null,n&&n.eachItemGraphicEl((function(t){t&&e.remove(t)}))},n.type="boxplot",n}(Od),WA=function(){},YA=function(t){function n(e){var n=t.call(this,e)||this;return n.type="boxplotBoxPath",n}return e(n,t),n.prototype.getDefaultShape=function(){return new WA},n.prototype.buildPath=function(t,e){var n=e.points,i=0;for(t.moveTo(n[i][0],n[i][1]),i++;i<4;i++)t.lineTo(n[i][0],n[i][1]);for(t.closePath();i<n.length;i++)t.moveTo(n[i][0],n[i][1]),i++,t.lineTo(n[i][0],n[i][1])},n}(Oa);function XA(t,e,n,i,r){var o=t.ends,a=new YA({shape:{points:r?ZA(o,i,t):o}});return UA(t,a,e,n,r),a}function UA(t,e,n,i,r){var o=n.hostModel;(0,ku[r?"initProps":"updateProps"])(e,{shape:{points:t.ends}},o,i),e.useStyle(n.getItemVisual(i,"style")),e.style.strokeNoScale=!0,e.z2=100;var a=n.getItemModel(i);zs(e,a),Os(e,a.get(["emphasis","focus"]),a.get(["emphasis","blurScope"]))}function ZA(t,e,n){return P(t,(function(t){return(t=t.slice())[e]=n.initBaseline,t}))}function jA(t,e){t.eachRawSeriesByType("boxplot",(function(t){t.getData().setVisual("legendSymbol","roundRect")}))}var qA=k;function KA(t){var e=function(t){var e=[],n=[];return t.eachSeriesByType("boxplot",(function(t){var i=t.getBaseAxis(),r=C(n,i);r<0&&(r=n.length,n[r]=i,e[r]={axis:i,seriesModels:[]}),e[r].seriesModels.push(t)})),e}(t);qA(e,(function(t){var e=t.seriesModels;e.length&&(!function(t){var e,n,i=t.axis,r=t.seriesModels,o=r.length,a=t.boxWidthList=[],s=t.boxOffsetList=[],l=[];if("category"===i.type)n=i.getBandWidth();else{var u=0;qA(r,(function(t){u=Math.max(u,t.getData().count())})),e=i.getExtent(),Math.abs(e[1]-e[0])}qA(r,(function(t){var e=t.get("boxWidth");V(e)||(e=[e,e]),l.push([Vi(e[0],n)||0,Vi(e[1],n)||0])}));var h=.8*n-2,c=h/o*.3,p=(h-c*(o-1))/o,d=p/2-h/2;qA(r,(function(t,e){s.push(d),d+=c+p,a.push(Math.min(Math.max(p,l[e][0]),l[e][1]))}))}(t),qA(e,(function(e,n){!function(t,e,n){var i=t.coordinateSystem,r=t.getData(),o=n/2,a="horizontal"===t.get("layout")?0:1,s=1-a,l=["x","y"],u=r.mapDimension(l[a]),h=r.mapDimensionsAll(l[s]);if(null==u||h.length<5)return;for(var c=0;c<r.count();c++){var p=r.get(u,c),d=_(p,h[2],c),f=_(p,h[0],c),g=_(p,h[1],c),y=_(p,h[3],c),v=_(p,h[4],c),m=[];x(m,g,!1),x(m,y,!0),m.push(f,g,v,y),b(m,f),b(m,v),b(m,d),r.setItemLayout(c,{initBaseline:d[s],ends:m})}function _(t,n,o){var l,u=r.get(n,o),h=[];return h[a]=t,h[s]=u,isNaN(t)||isNaN(u)?l=[NaN,NaN]:(l=i.dataToPoint(h))[a]+=e,l}function x(t,e,n){var i=e.slice(),r=e.slice();i[a]+=o,r[a]-=o,n?t.push(i,r):t.push(r,i)}function b(t,e){var n=e.slice(),i=e.slice();n[a]-=o,i[a]+=o,t.push(n,i)}}(e,t.boxOffsetList[n],t.boxWidthList[n])})))}))}var $A={type:"echarts:boxplot",transform:function(t){var e=t.upstream;if("arrayRows"!==e.sourceFormat){var n="";0,sr(n)}var i=function(t,e){for(var n=[],i=[],r=(e=e||{}).boundIQR,o="none"===r||0===r,a=0;a<t.length;a++){var s=Gi(t[a].slice()),l=Qi(s,.25),u=Qi(s,.5),h=Qi(s,.75),c=s[0],p=s[s.length-1],d=(null==r?1.5:r)*(h-l),f=o?c:Math.max(c,l-d),g=o?p:Math.min(p,h+d),y=e.itemNameFormatter,v=F(y)?y({value:a}):G(y)?y.replace("{value}",a+""):a+"";n.push([v,f,l,u,h,g]);for(var m=0;m<s.length;m++){var _=s[m];if(_<f||_>g){var x=[v,_];i.push(x)}}}return{boxData:n,outliers:i}}(e.getRawData(),t.config);return[{dimensions:["ItemName","Low","Q1","Q2","Q3","High"],data:i.boxData},{data:i.outliers}]}};var JA=["color","borderColor"],QA=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n){this.group.removeClipPath(),this._updateDrawMode(t),this._isLargeDraw?this._renderLarge(t):this._renderNormal(t)},n.prototype.incrementalPrepareRender=function(t,e,n){this._clear(),this._updateDrawMode(t)},n.prototype.incrementalRender=function(t,e,n,i){this._isLargeDraw?this._incrementalRenderLarge(t,e):this._incrementalRenderNormal(t,e)},n.prototype._updateDrawMode=function(t){var e=t.pipelineContext.large;null!=this._isLargeDraw&&e===this._isLargeDraw||(this._isLargeDraw=e,this._clear())},n.prototype._renderNormal=function(t){var e=t.getData(),n=this._data,i=this.group,r=e.getLayout("isSimpleBox"),o=t.get("clip",!0),a=t.coordinateSystem,s=a.getArea&&a.getArea();this._data||i.removeAll(),e.diff(n).add((function(n){if(e.hasValue(n)){var a=e.getItemLayout(n);if(o&&iD(s,a))return;var l=nD(a,n,!0);gu(l,{shape:{points:a.ends}},t,n),rD(l,e,n,r),i.add(l),e.setItemGraphicEl(n,l)}})).update((function(a,l){var u=n.getItemGraphicEl(l);if(e.hasValue(a)){var h=e.getItemLayout(a);o&&iD(s,h)?i.remove(u):(u?fu(u,{shape:{points:h.ends}},t,a):u=nD(h),rD(u,e,a,r),i.add(u),e.setItemGraphicEl(a,u))}else i.remove(u)})).remove((function(t){var e=n.getItemGraphicEl(t);e&&i.remove(e)})).execute(),this._data=e},n.prototype._renderLarge=function(t){this._clear(),lD(t,this.group);var e=t.get("clip",!0)?ab(t.coordinateSystem,!1,t):null;e?this.group.setClipPath(e):this.group.removeClipPath()},n.prototype._incrementalRenderNormal=function(t,e){for(var n,i=e.getData(),r=i.getLayout("isSimpleBox");null!=(n=t.next());){var o=nD(i.getItemLayout(n));rD(o,i,n,r),o.incremental=!0,this.group.add(o)}},n.prototype._incrementalRenderLarge=function(t,e){lD(e,this.group,!0)},n.prototype.remove=function(t){this._clear()},n.prototype._clear=function(){this.group.removeAll(),this._data=null},n.type="candlestick",n}(Od),tD=function(){},eD=function(t){function n(e){var n=t.call(this,e)||this;return n.type="normalCandlestickBox",n}return e(n,t),n.prototype.getDefaultShape=function(){return new tD},n.prototype.buildPath=function(t,e){var n=e.points;this.__simpleBox?(t.moveTo(n[4][0],n[4][1]),t.lineTo(n[6][0],n[6][1])):(t.moveTo(n[0][0],n[0][1]),t.lineTo(n[1][0],n[1][1]),t.lineTo(n[2][0],n[2][1]),t.lineTo(n[3][0],n[3][1]),t.closePath(),t.moveTo(n[4][0],n[4][1]),t.lineTo(n[5][0],n[5][1]),t.moveTo(n[6][0],n[6][1]),t.lineTo(n[7][0],n[7][1]))},n}(Oa);function nD(t,e,n){var i=t.ends;return new eD({shape:{points:n?oD(i,t):i},z2:100})}function iD(t,e){for(var n=!0,i=0;i<e.ends.length;i++)if(t.contain(e.ends[i][0],e.ends[i][1])){n=!1;break}return n}function rD(t,e,n,i){var r=e.getItemModel(n);t.useStyle(e.getItemVisual(n,"style")),t.style.strokeNoScale=!0,t.__simpleBox=i,zs(t,r)}function oD(t,e){return P(t,(function(t){return(t=t.slice())[1]=e.initBaseline,t}))}var aD=function(){},sD=function(t){function n(e){var n=t.call(this,e)||this;return n.type="largeCandlestickBox",n}return e(n,t),n.prototype.getDefaultShape=function(){return new aD},n.prototype.buildPath=function(t,e){for(var n=e.points,i=0;i<n.length;)if(this.__sign===n[i++]){var r=n[i++];t.moveTo(r,n[i++]),t.lineTo(r,n[i++])}else i+=3},n}(Oa);function lD(t,e,n){var i=t.getData().getLayout("largePoints"),r=new sD({shape:{points:i},__sign:1});e.add(r);var o=new sD({shape:{points:i},__sign:-1});e.add(o),uD(1,r,t),uD(-1,o,t),n&&(r.incremental=!0,o.incremental=!0)}function uD(t,e,n,i){var r=n.get(["itemStyle",t>0?"borderColor":"borderColor0"])||n.get(["itemStyle",t>0?"color":"color0"]),o=n.getModel("itemStyle").getItemStyle(JA);e.useStyle(o),e.style.fill=null,e.style.stroke=r}var hD=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.defaultValueDimensions=[{name:"open",defaultTooltip:!0},{name:"close",defaultTooltip:!0},{name:"lowest",defaultTooltip:!0},{name:"highest",defaultTooltip:!0}],e}return e(n,t),n.prototype.getShadowDim=function(){return"open"},n.prototype.brushSelector=function(t,e,n){var i=e.getItemLayout(t);return i&&n.rect(i.brushRect)},n.type="series.candlestick",n.dependencies=["xAxis","yAxis","grid"],n.defaultOption={zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,layout:null,clip:!0,itemStyle:{color:"#eb5454",color0:"#47b262",borderColor:"#eb5454",borderColor0:"#47b262",borderWidth:1},emphasis:{scale:!0,itemStyle:{borderWidth:2}},barMaxWidth:null,barMinWidth:null,barWidth:null,large:!0,largeThreshold:600,progressive:3e3,progressiveThreshold:1e4,progressiveChunkMode:"mod",animationEasing:"linear",animationDuration:300},n}(bd);function cD(t){t&&V(t.series)&&k(t.series,(function(t){Y(t)&&"k"===t.type&&(t.type="candlestick")}))}D(hD,FA,!0);var pD=["itemStyle","borderColor"],dD=["itemStyle","borderColor0"],fD=["itemStyle","color"],gD=["itemStyle","color0"],yD={seriesType:"candlestick",plan:Ld(),performRawSeries:!0,reset:function(t,e){function n(t,e){return e.get(t>0?fD:gD)}function i(t,e){return e.get(t>0?pD:dD)}if(t.getData().setVisual("legendSymbol","roundRect"),!e.isSeriesFiltered(t))return!t.pipelineContext.large&&{progress:function(t,e){for(var r;null!=(r=t.next());){var o=e.getItemModel(r),a=e.getItemLayout(r).sign,s=o.getItemStyle();s.fill=n(a,o),s.stroke=i(a,o)||s.fill,M(e.ensureUniqueItemVisual(r,"style"),s)}}}}},vD="undefined"!=typeof Float32Array?Float32Array:Array,mD={seriesType:"candlestick",plan:Ld(),reset:function(t){var e=t.coordinateSystem,n=t.getData(),i=function(t,e){var n,i=t.getBaseAxis(),r="category"===i.type?i.getBandWidth():(n=i.getExtent(),Math.abs(n[1]-n[0])/e.count()),o=Vi(Q(t.get("barMaxWidth"),r),r),a=Vi(Q(t.get("barMinWidth"),1),r),s=t.get("barWidth");return null!=s?Vi(s,r):Math.max(Math.min(r/2,o),a)}(t,n),r=["x","y"],o=n.mapDimension(r[0]),a=n.mapDimensionsAll(r[1]),s=a[0],l=a[1],u=a[2],h=a[3];if(n.setLayout({candleWidth:i,isSimpleBox:i<=1.3}),!(null==o||a.length<4))return{progress:t.pipelineContext.large?function(t,n){var i,r,a=new vD(4*t.count),c=0,p=[],d=[];for(;null!=(r=t.next());){var f=n.get(o,r),g=n.get(s,r),y=n.get(l,r),v=n.get(u,r),m=n.get(h,r);isNaN(f)||isNaN(v)||isNaN(m)?(a[c++]=NaN,c+=3):(a[c++]=_D(n,r,g,y,l),p[0]=f,p[1]=v,i=e.dataToPoint(p,null,d),a[c++]=i?i[0]:NaN,a[c++]=i?i[1]:NaN,p[1]=m,i=e.dataToPoint(p,null,d),a[c++]=i?i[1]:NaN)}n.setLayout("largePoints",a)}:function(t,n){var r;for(;null!=(r=t.next());){var a=n.get(o,r),c=n.get(s,r),p=n.get(l,r),d=n.get(u,r),f=n.get(h,r),g=Math.min(c,p),y=Math.max(c,p),v=w(g,a),m=w(y,a),_=w(d,a),x=w(f,a),b=[];S(b,m,0),S(b,v,1),b.push(I(x),I(m),I(_),I(v)),n.setItemLayout(r,{sign:_D(n,r,c,p,l),initBaseline:c>p?m[1]:v[1],ends:b,brushRect:M(d,f,a)})}function w(t,n){var i=[];return i[0]=n,i[1]=t,isNaN(n)||isNaN(t)?[NaN,NaN]:e.dataToPoint(i)}function S(t,e,n){var r=e.slice(),o=e.slice();r[0]=pu(r[0]+i/2,1,!1),o[0]=pu(o[0]-i/2,1,!0),n?t.push(r,o):t.push(o,r)}function M(t,e,n){var r=w(t,n),o=w(e,n);return r[0]-=i/2,o[0]-=i/2,{x:r[0],y:r[1],width:i,height:o[1]-r[1]}}function I(t){return t[0]=pu(t[0],1),t}}}}};function _D(t,e,n,i,r){return n>i?-1:n<i?1:e>0?t.get(r,e-1)<=i?1:-1:1}function xD(t,e){var n=e.rippleEffectColor||e.color;t.eachChild((function(t){t.attr({z:e.z,zlevel:e.zlevel,style:{stroke:"stroke"===e.brushType?n:null,fill:"fill"===e.brushType?n:null}})}))}var bD=function(t){function n(e,n){var i=t.call(this)||this,r=new Vx(e,n),o=new Li;return i.add(r),i.add(o),i.updateData(e,n),i}return e(n,t),n.prototype.stopEffectAnimation=function(){this.childAt(1).removeAll()},n.prototype.startEffectAnimation=function(t){for(var e=t.symbolType,n=t.color,i=this.childAt(1),r=0;r<3;r++){var o=Sg(e,-1,-1,2,2,n);o.attr({style:{strokeNoScale:!0},z2:99,silent:!0,scaleX:.5,scaleY:.5});var a=-r/3*t.period+t.effectOffset;o.animate("",!0).when(t.period,{scale:[t.rippleScale/2,t.rippleScale/2]}).delay(a).start(),o.animateStyle(!0).when(t.period,{opacity:0}).delay(a).start(),i.add(o)}xD(i,t)},n.prototype.updateEffectAnimation=function(t){for(var e=this._effectCfg,n=this.childAt(1),i=["symbolType","period","rippleScale"],r=0;r<i.length;r++){var o=i[r];if(e[o]!==t[o])return this.stopEffectAnimation(),void this.startEffectAnimation(t)}xD(n,t)},n.prototype.highlight=function(){Ss(this)},n.prototype.downplay=function(){Ms(this)},n.prototype.updateData=function(t,e){var n=this,i=t.hostModel;this.childAt(0).updateData(t,e);var r=this.childAt(1),o=t.getItemModel(e),a=t.getItemVisual(e,"symbol"),s=function(t){return V(t)||(t=[+t,+t]),t}(t.getItemVisual(e,"symbolSize")),l=t.getItemVisual(e,"style"),u=l&&l.fill;r.setScale(s),r.traverse((function(t){t.setStyle("fill",u)}));var h=o.getShallow("symbolOffset");h&&(r.x=Vi(h[0],s[0]),r.y=Vi(h[1],s[1]));var c=t.getItemVisual(e,"symbolRotate");r.rotation=(c||0)*Math.PI/180||0;var p={};p.showEffectOn=i.get("showEffectOn"),p.rippleScale=o.get(["rippleEffect","scale"]),p.brushType=o.get(["rippleEffect","brushType"]),p.period=1e3*o.get(["rippleEffect","period"]),p.effectOffset=e/t.count(),p.z=i.getShallow("z")||0,p.zlevel=i.getShallow("zlevel")||0,p.symbolType=a,p.color=u,p.rippleEffectColor=o.get(["rippleEffect","color"]),this.off("mouseover").off("mouseout").off("emphasis").off("normal"),"render"===p.showEffectOn?(this._effectCfg?this.updateEffectAnimation(p):this.startEffectAnimation(p),this._effectCfg=p):(this._effectCfg=null,this.stopEffectAnimation(),this.onHoverStateChange=function(t){"emphasis"===t?"render"!==p.showEffectOn&&n.startEffectAnimation(p):"normal"===t&&"render"!==p.showEffectOn&&n.stopEffectAnimation()}),this._effectCfg=p,Os(this)},n.prototype.fadeOut=function(t){this.off("mouseover").off("mouseout"),t&&t()},n}(Li);A(bD,Li);var wD=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.init=function(){this._symbolDraw=new Yx(bD)},n.prototype.render=function(t,e,n){var i=t.getData(),r=this._symbolDraw;r.updateData(i),this.group.add(r.group)},n.prototype.updateTransform=function(t,e,n){var i=t.getData();this.group.dirty();var r=vb("").reset(t,e,n);r.progress&&r.progress({start:0,end:i.count(),count:i.count()},i),this._symbolDraw.updateLayout()},n.prototype._updateGroupTransform=function(t){var e=t.coordinateSystem;e&&e.getRoamTransform&&(this.group.transform=_e(e.getRoamTransform()),this.group.decomposeTransform())},n.prototype.remove=function(t,e){this._symbolDraw&&this._symbolDraw.remove(!0)},n.type="effectScatter",n}(Od),SD=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.hasSymbolVisual=!0,e}return e(n,t),n.prototype.getInitialData=function(t,e){return lm(this.getSource(),this,{useEncodeDefaulter:!0})},n.prototype.brushSelector=function(t,e,n){return n.point(e.getItemLayout(t))},n.type="series.effectScatter",n.dependencies=["grid","polar"],n.defaultOption={coordinateSystem:"cartesian2d",zlevel:0,z:2,legendHoverLink:!0,effectType:"ripple",progressive:0,showEffectOn:"render",rippleEffect:{period:4,scale:2.5,brushType:"fill"},symbolSize:10},n}(bd);var MD=function(t){function n(e,n,i){var r=t.call(this)||this;return r.add(r.createLine(e,n,i)),r._updateEffectSymbol(e,n),r}return e(n,t),n.prototype.createLine=function(t,e,n){return new _T(t,e,n)},n.prototype._updateEffectSymbol=function(t,e){var n=t.getItemModel(e).getModel("effect"),i=n.get("symbolSize"),r=n.get("symbol");V(i)||(i=[i,i]);var o=t.getItemVisual(e,"style"),a=n.get("color")||o&&o.stroke,s=this.childAt(1);this._symbolType!==r&&(this.remove(s),(s=Sg(r,-.5,-.5,1,1,a)).z2=100,s.culling=!0,this.add(s)),s&&(s.setStyle("shadowColor",a),s.setStyle(n.getItemStyle(["color"])),s.scaleX=i[0],s.scaleY=i[1],s.setColor(a),this._symbolType=r,this._symbolScale=i,this._updateEffectAnimation(t,n,e))},n.prototype._updateEffectAnimation=function(t,e,n){var i=this.childAt(1);if(i){var r=this,o=t.getItemLayout(n),a=1e3*e.get("period"),s=e.get("loop"),l=e.get("constantSpeed"),u=J(e.get("delay"),(function(e){return e/t.count()*a/3}));if(i.ignore=!0,this._updateAnimationPoints(i,o),l>0&&(a=this._getLineLength(i)/l*1e3),(a!==this._period||s!==this._loop)&&(i.stopAnimation(),a>0)){var h=void 0;h="function"==typeof u?u(n):u,i.__t>0&&(h=-a*i.__t),i.__t=0;var c=i.animate("",s).when(a,{__t:1}).delay(h).during((function(){r._updateSymbolPosition(i)}));s||c.done((function(){r.remove(i)})),c.start()}this._period=a,this._loop=s}},n.prototype._getLineLength=function(t){return At(t.__p1,t.__cp1)+At(t.__cp1,t.__p2)},n.prototype._updateAnimationPoints=function(t,e){t.__p1=e[0],t.__p2=e[1],t.__cp1=e[2]||[(e[0][0]+e[1][0])/2,(e[0][1]+e[1][1])/2]},n.prototype.updateData=function(t,e,n){this.childAt(0).updateData(t,e,n),this._updateEffectSymbol(t,e)},n.prototype._updateSymbolPosition=function(t){var e=t.__p1,n=t.__p2,i=t.__cp1,r=t.__t,o=[t.x,t.y],a=o.slice(),s=Co,l=Ao;o[0]=s(e[0],i[0],n[0],r),o[1]=s(e[1],i[1],n[1],r);var u=l(e[0],i[0],n[0],r),h=l(e[1],i[1],n[1],r);t.rotation=-Math.atan2(h,u)-Math.PI/2,"line"!==this._symbolType&&"rect"!==this._symbolType&&"roundRect"!==this._symbolType||(void 0!==t.__lastT&&t.__lastT<t.__t?(t.scaleY=1.05*At(a,o),1===r&&(o[0]=a[0]+(o[0]-a[0])/2,o[1]=a[1]+(o[1]-a[1])/2)):1===t.__lastT?t.scaleY=2*At(e,o):t.scaleY=this._symbolScale[1]),t.__lastT=t.__t,t.ignore=!1,t.x=o[0],t.y=o[1]},n.prototype.updateLayout=function(t,e){this.childAt(0).updateLayout(t,e);var n=t.getItemModel(e).getModel("effect");this._updateEffectAnimation(t,n,e)},n}(Li),ID=function(t){function n(e,n,i){var r=t.call(this)||this;return r._createPolyline(e,n,i),r}return e(n,t),n.prototype._createPolyline=function(t,e,n){var i=t.getItemLayout(e),r=new Pl({shape:{points:i}});this.add(r),this._updateCommonStl(t,e,n)},n.prototype.updateData=function(t,e,n){var i=t.hostModel;fu(this.childAt(0),{shape:{points:t.getItemLayout(e)}},i,e),this._updateCommonStl(t,e,n)},n.prototype._updateCommonStl=function(t,e,n){var i=this.childAt(0),r=t.getItemModel(e),o=n&&n.emphasisLineStyle;n&&!t.hasItemOption||(o=r.getModel(["emphasis","lineStyle"]).getLineStyle()),i.useStyle(t.getItemVisual(e,"style")),i.style.fill=null,i.style.strokeNoScale=!0,i.ensureState("emphasis").style=o,Os(this)},n.prototype.updateLayout=function(t,e){this.childAt(0).setShape("points",t.getItemLayout(e))},n}(Li),TD=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e._lastFrame=0,e._lastFramePercent=0,e}return e(n,t),n.prototype.createLine=function(t,e,n){return new ID(t,e,n)},n.prototype._updateAnimationPoints=function(t,e){this._points=e;for(var n=[0],i=0,r=1;r<e.length;r++){var o=e[r-1],a=e[r];i+=At(o,a),n.push(i)}if(0!==i){for(r=0;r<n.length;r++)n[r]/=i;this._offsets=n,this._length=i}else this._length=0},n.prototype._getLineLength=function(){return this._length},n.prototype._updateSymbolPosition=function(t){var e=t.__t,n=this._points,i=this._offsets,r=n.length;if(i){var o,a=this._lastFrame;if(e<this._lastFramePercent){for(o=Math.min(a+1,r-1);o>=0&&!(i[o]<=e);o--);o=Math.min(o,r-2)}else{for(o=a;o<r&&!(i[o]>e);o++);o=Math.min(o-1,r-2)}var s=(e-i[o])/(i[o+1]-i[o]),l=n[o],u=n[o+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=o,this._lastFramePercent=e,t.ignore=!1}},n}(MD),CD=function(){this.polyline=!1,this.curveness=0,this.segs=[]},AD=function(t){function n(e){return t.call(this,e)||this}return e(n,t),n.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},n.prototype.getDefaultShape=function(){return new CD},n.prototype.buildPath=function(t,e){var n=e.segs,i=e.curveness;if(e.polyline)for(var r=0;r<n.length;){var o=n[r++];if(o>0){t.moveTo(n[r++],n[r++]);for(var a=1;a<o;a++)t.lineTo(n[r++],n[r++])}}else for(r=0;r<n.length;){var s=n[r++],l=n[r++],u=n[r++],h=n[r++];if(t.moveTo(s,l),i>0){var c=(s+u)/2-(l-h)*i,p=(l+h)/2-(u-s)*i;t.quadraticCurveTo(c,p,u,h)}else t.lineTo(u,h)}},n.prototype.findDataIndex=function(t,e){var n=this.shape,i=n.segs,r=n.curveness,o=this.style.lineWidth;if(n.polyline)for(var a=0,s=0;s<i.length;){var l=i[s++];if(l>0)for(var u=i[s++],h=i[s++],c=1;c<l;c++){if(fa(u,h,p=i[s++],d=i[s++],o,t,e))return a}a++}else for(a=0,s=0;s<i.length;){u=i[s++],h=i[s++];var p=i[s++],d=i[s++];if(r>0){if(ya(u,h,(u+p)/2-(h-d)*r,(h+d)/2-(p-u)*r,p,d,o,t,e))return a}else if(fa(u,h,p,d,o,t,e))return a;a++}return-1},n}(Oa),DD=function(){function t(){this.group=new Li}return t.prototype.isPersistent=function(){return!this._incremental},t.prototype.updateData=function(t){this.group.removeAll();var e=new AD({rectHover:!0,cursor:"default"});e.setShape({segs:t.getLayout("linesPoints")}),this._setCommon(e,t),this.group.add(e),this._incremental=null},t.prototype.incrementalPrepareUpdate=function(t){this.group.removeAll(),this._clearIncremental(),t.count()>5e5?(this._incremental||(this._incremental=new Jl({silent:!0})),this.group.add(this._incremental)):this._incremental=null},t.prototype.incrementalUpdate=function(t,e){var n=new AD;n.setShape({segs:e.getLayout("linesPoints")}),this._setCommon(n,e,!!this._incremental),this._incremental?this._incremental.addDisplayable(n,!0):(n.rectHover=!0,n.cursor="default",n.__startIndex=t.start,this.group.add(n))},t.prototype.remove=function(){this._clearIncremental(),this._incremental=null,this.group.removeAll()},t.prototype._setCommon=function(t,e,n){var i=e.hostModel;t.setShape({polyline:i.get("polyline"),curveness:i.get(["lineStyle","curveness"])}),t.useStyle(i.getModel("lineStyle").getLineStyle()),t.style.strokeNoScale=!0;var r=e.getVisual("style");if(r&&r.stroke&&t.setStyle("stroke",r.stroke),t.setStyle("fill",null),!n){var o=ns(t);o.seriesIndex=i.seriesIndex,t.on("mousemove",(function(e){o.dataIndex=null;var n=t.findDataIndex(e.offsetX,e.offsetY);n>0&&(o.dataIndex=n+t.__startIndex)}))}},t.prototype._clearIncremental=function(){var t=this._incremental;t&&t.clearDisplaybles()},t}(),LD={seriesType:"lines",plan:Ld(),reset:function(t){var e=t.coordinateSystem,n=t.get("polyline"),i=t.pipelineContext.large;return{progress:function(r,o){var a=[];if(i){var s=void 0,l=r.end-r.start;if(n){for(var u=0,h=r.start;h<r.end;h++)u+=t.getLineCoordsCount(h);s=new Float32Array(l+2*u)}else s=new Float32Array(4*l);var c=0,p=[];for(h=r.start;h<r.end;h++){var d=t.getLineCoords(h,a);n&&(s[c++]=d);for(var f=0;f<d;f++)p=e.dataToPoint(a[f],!1,p),s[c++]=p[0],s[c++]=p[1]}o.setLayout("linesPoints",s)}else for(h=r.start;h<r.end;h++){var g=o.getItemModel(h),y=(d=t.getLineCoords(h,a),[]);if(n)for(var v=0;v<d;v++)y.push(e.dataToPoint(a[v]));else{y[0]=e.dataToPoint(a[0]),y[1]=e.dataToPoint(a[1]);var m=g.get(["lineStyle","curveness"]);+m&&(y[2]=[(y[0][0]+y[1][0])/2-(y[0][1]-y[1][1])*m,(y[0][1]+y[1][1])/2-(y[1][0]-y[0][0])*m])}o.setItemLayout(h,y)}}}}},kD=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n){var i=t.getData(),r=this._updateLineDraw(i,t),o=t.get("zlevel"),a=t.get(["effect","trailLength"]),s=n.getZr(),l="svg"===s.painter.getType();(l||s.painter.getLayer(o).clear(!0),null==this._lastZlevel||l||s.configLayer(this._lastZlevel,{motionBlur:!1}),this._showEffect(t)&&a)&&(l||s.configLayer(o,{motionBlur:!0,lastFrameAlpha:Math.max(Math.min(a/10+.9,1),0)}));r.updateData(i);var u=t.get("clip",!0)&&ab(t.coordinateSystem,!1,t);u?this.group.setClipPath(u):this.group.removeClipPath(),this._lastZlevel=o,this._finished=!0},n.prototype.incrementalPrepareRender=function(t,e,n){var i=t.getData();this._updateLineDraw(i,t).incrementalPrepareUpdate(i),this._clearLayer(n),this._finished=!1},n.prototype.incrementalRender=function(t,e,n){this._lineDraw.incrementalUpdate(t,e.getData()),this._finished=t.end===e.getData().count()},n.prototype.updateTransform=function(t,e,n){var i=t.getData(),r=t.pipelineContext;if(!this._finished||r.large||r.progressiveRender)return{update:!0};var o=LD.reset(t,e,n);o.progress&&o.progress({start:0,end:i.count(),count:i.count()},i),this._lineDraw.updateLayout(),this._clearLayer(n)},n.prototype._updateLineDraw=function(t,e){var n=this._lineDraw,i=this._showEffect(e),r=!!e.get("polyline"),o=e.pipelineContext.large;return n&&i===this._hasEffet&&r===this._isPolyline&&o===this._isLargeDraw||(n&&n.remove(),n=this._lineDraw=o?new DD:new xT(r?i?TD:ID:i?MD:_T),this._hasEffet=i,this._isPolyline=r,this._isLargeDraw=o,this.group.removeAll()),this.group.add(n.group),n},n.prototype._showEffect=function(t){return!!t.get(["effect","show"])},n.prototype._clearLayer=function(t){var e=t.getZr();"svg"===e.painter.getType()||null==this._lastZlevel||e.painter.getLayer(this._lastZlevel).clear(!0)},n.prototype.remove=function(t,e){this._lineDraw&&this._lineDraw.remove(),this._lineDraw=null,this._clearLayer(e)},n.type="lines",n}(Od),PD="undefined"==typeof Uint32Array?Array:Uint32Array,OD="undefined"==typeof Float64Array?Array:Float64Array;function RD(t){var e=t.data;e&&e[0]&&e[0][0]&&e[0][0].coord&&(t.data=P(e,(function(t){var e={coords:[t[0].coord,t[1].coord]};return t[0].name&&(e.fromName=t[0].name),t[1].name&&(e.toName=t[1].name),S([e,t[0],t[1]])})))}var ND=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.visualStyleAccessPath="lineStyle",e.visualDrawType="stroke",e}return e(n,t),n.prototype.init=function(e){e.data=e.data||[],RD(e);var n=this._processFlatCoordsArray(e.data);this._flatCoords=n.flatCoords,this._flatCoordsOffset=n.flatCoordsOffset,n.flatCoords&&(e.data=new Float32Array(n.count)),t.prototype.init.apply(this,arguments)},n.prototype.mergeOption=function(e){if(RD(e),e.data){var n=this._processFlatCoordsArray(e.data);this._flatCoords=n.flatCoords,this._flatCoordsOffset=n.flatCoordsOffset,n.flatCoords&&(e.data=new Float32Array(n.count))}t.prototype.mergeOption.apply(this,arguments)},n.prototype.appendData=function(t){var e=this._processFlatCoordsArray(t.data);e.flatCoords&&(this._flatCoords?(this._flatCoords=ut(this._flatCoords,e.flatCoords),this._flatCoordsOffset=ut(this._flatCoordsOffset,e.flatCoordsOffset)):(this._flatCoords=e.flatCoords,this._flatCoordsOffset=e.flatCoordsOffset),t.data=new Float32Array(e.count)),this.getRawData().appendData(t.data)},n.prototype._getCoordsFromItemModel=function(t){var e=this.getData().getItemModel(t),n=e.option instanceof Array?e.option:e.getShallow("coords");return n},n.prototype.getLineCoordsCount=function(t){return this._flatCoordsOffset?this._flatCoordsOffset[2*t+1]:this._getCoordsFromItemModel(t).length},n.prototype.getLineCoords=function(t,e){if(this._flatCoordsOffset){for(var n=this._flatCoordsOffset[2*t],i=this._flatCoordsOffset[2*t+1],r=0;r<i;r++)e[r]=e[r]||[],e[r][0]=this._flatCoords[n+2*r],e[r][1]=this._flatCoords[n+2*r+1];return i}var o=this._getCoordsFromItemModel(t);for(r=0;r<o.length;r++)e[r]=e[r]||[],e[r][0]=o[r][0],e[r][1]=o[r][1];return o.length},n.prototype._processFlatCoordsArray=function(t){var e=0;if(this._flatCoords&&(e=this._flatCoords.length),"number"==typeof t[0]){for(var n=t.length,i=new PD(n),r=new OD(n),o=0,a=0,s=0,l=0;l<n;){s++;var u=t[l++];i[a++]=o+e,i[a++]=u;for(var h=0;h<u;h++){var c=t[l++],p=t[l++];r[o++]=c,r[o++]=p}}return{flatCoordsOffset:new Uint32Array(i.buffer,0,a),flatCoords:r,count:s}}return{flatCoordsOffset:null,flatCoords:null,count:t.length}},n.prototype.getInitialData=function(t,e){var n=new Jv(["value"],this);return n.hasItemOption=!1,n.initData(t.data,[],(function(t,e,i,r){if(t instanceof Array)return NaN;n.hasItemOption=!0;var o=t.value;return null!=o?o instanceof Array?o[r]:o:void 0})),n},n.prototype.formatTooltip=function(t,e,n){var i=this.getData().getItemModel(t),r=i.get("name");if(r)return r;var o=i.get("fromName"),a=i.get("toName"),s=[];return null!=o&&s.push(o),null!=a&&s.push(a),ld("nameValue",{name:s.join(" > ")})},n.prototype.preventIncremental=function(){return!!this.get(["effect","show"])},n.prototype.getProgressive=function(){var t=this.option.progressive;return null==t?this.option.large?1e4:this.get("progressive"):t},n.prototype.getProgressiveThreshold=function(){var t=this.option.progressiveThreshold;return null==t?this.option.large?2e4:this.get("progressiveThreshold"):t},n.type="series.lines",n.dependencies=["grid","polar","geo","calendar"],n.defaultOption={coordinateSystem:"geo",zlevel:0,z:2,legendHoverLink:!0,xAxisIndex:0,yAxisIndex:0,symbol:["none","none"],symbolSize:[10,10],geoIndex:0,effect:{show:!1,period:4,constantSpeed:0,symbol:"circle",symbolSize:3,loop:!0,trailLength:.2},large:!1,largeThreshold:2e3,polyline:!1,clip:!0,label:{show:!1,position:"end"},lineStyle:{opacity:.5}},n}(bd);function ED(t){return t instanceof Array||(t=[t,t]),t}var zD={seriesType:"lines",reset:function(t){var e=ED(t.get("symbol")),n=ED(t.get("symbolSize")),i=t.getData();return i.setVisual("fromSymbol",e&&e[0]),i.setVisual("toSymbol",e&&e[1]),i.setVisual("fromSymbolSize",n&&n[0]),i.setVisual("toSymbolSize",n&&n[1]),{dataEach:i.hasItemOption?function(t,e){var n=t.getItemModel(e),i=ED(n.getShallow("symbol",!0)),r=ED(n.getShallow("symbolSize",!0));i[0]&&t.setItemVisual(e,"fromSymbol",i[0]),i[1]&&t.setItemVisual(e,"toSymbol",i[1]),r[0]&&t.setItemVisual(e,"fromSymbolSize",r[0]),r[1]&&t.setItemVisual(e,"toSymbolSize",r[1])}:null}}};var BD=function(){function t(){this.blurSize=30,this.pointSize=20,this.maxOpacity=1,this.minOpacity=0,this._gradientPixels={inRange:null,outOfRange:null};var t=T();this.canvas=t}return t.prototype.update=function(t,e,n,i,r,o){var a=this._getBrush(),s=this._getGradient(r,"inRange"),l=this._getGradient(r,"outOfRange"),u=this.pointSize+this.blurSize,h=this.canvas,c=h.getContext("2d"),p=t.length;h.width=e,h.height=n;for(var d=0;d<p;++d){var f=t[d],g=f[0],y=f[1],v=i(f[2]);c.globalAlpha=v,c.drawImage(a,g-u,y-u)}if(!h.width||!h.height)return h;for(var m=c.getImageData(0,0,h.width,h.height),_=m.data,x=0,b=_.length,w=this.minOpacity,S=this.maxOpacity-w;x<b;){v=_[x+3]/256;var M=4*Math.floor(255*v);if(v>0){var I=o(v)?s:l;v>0&&(v=v*S+w),_[x++]=I[M],_[x++]=I[M+1],_[x++]=I[M+2],_[x++]=I[M+3]*v*256}else x+=4}return c.putImageData(m,0,0),h},t.prototype._getBrush=function(){var t=this._brushCanvas||(this._brushCanvas=T()),e=this.pointSize+this.blurSize,n=2*e;t.width=n,t.height=n;var i=t.getContext("2d");return i.clearRect(0,0,n,n),i.shadowOffsetX=n,i.shadowBlur=this.blurSize,i.shadowColor="#000",i.beginPath(),i.arc(-e,e,this.pointSize,0,2*Math.PI,!0),i.closePath(),i.fill(),t},t.prototype._getGradient=function(t,e){for(var n=this._gradientPixels,i=n[e]||(n[e]=new Uint8ClampedArray(1024)),r=[0,0,0,0],o=0,a=0;a<256;a++)t[e](a/255,!0,r),i[o++]=r[0],i[o++]=r[1],i[o++]=r[2],i[o++]=r[3];return i},t}();function VD(t){var e=t.dimensions;return"lng"===e[0]&&"lat"===e[1]}var FD=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n){var i;e.eachComponent("visualMap",(function(e){e.eachTargetSeries((function(n){n===t&&(i=e)}))})),this.group.removeAll(),this._incrementalDisplayable=null;var r=t.coordinateSystem;"cartesian2d"===r.type||"calendar"===r.type?this._renderOnCartesianAndCalendar(t,n,0,t.getData().count()):VD(r)&&this._renderOnGeo(r,t,i,n)},n.prototype.incrementalPrepareRender=function(t,e,n){this.group.removeAll()},n.prototype.incrementalRender=function(t,e,n,i){var r=e.coordinateSystem;r&&(VD(r)?this.render(e,n,i):this._renderOnCartesianAndCalendar(e,i,t.start,t.end,!0))},n.prototype._renderOnCartesianAndCalendar=function(t,e,n,i,r){var o,a,s,l,u=t.coordinateSystem;if(sb(u,"cartesian2d")){var h=u.getAxis("x"),c=u.getAxis("y");0,o=h.getBandWidth(),a=c.getBandWidth(),s=h.scale.getExtent(),l=c.scale.getExtent()}for(var p=this.group,d=t.getData(),f=t.getModel(["emphasis","itemStyle"]).getItemStyle(),g=t.getModel(["blur","itemStyle"]).getItemStyle(),y=t.getModel(["select","itemStyle"]).getItemStyle(),v=Eu(t),m=t.get(["emphasis","focus"]),_=t.get(["emphasis","blurScope"]),x=sb(u,"cartesian2d")?[d.mapDimension("x"),d.mapDimension("y"),d.mapDimension("value")]:[d.mapDimension("time"),d.mapDimension("value")],b=n;b<i;b++){var w=void 0,S=d.getItemVisual(b,"style");if(sb(u,"cartesian2d")){var M=d.get(x[0],b),I=d.get(x[1],b);if(isNaN(d.get(x[2],b))||M<s[0]||M>s[1]||I<l[0]||I>l[1])continue;var T=u.dataToPoint([M,I]);w=new Xa({shape:{x:Math.floor(Math.round(T[0])-o/2),y:Math.floor(Math.round(T[1])-a/2),width:Math.ceil(o),height:Math.ceil(a)},style:S})}else{if(isNaN(d.get(x[1],b)))continue;w=new Xa({z2:1,shape:u.dataToRect([d.get(x[0],b)]).contentShape,style:S})}var C=d.getItemModel(b);if(d.hasItemOption){var A=C.getModel("emphasis");f=A.getModel("itemStyle").getItemStyle(),g=C.getModel(["blur","itemStyle"]).getItemStyle(),y=C.getModel(["select","itemStyle"]).getItemStyle(),m=A.get("focus"),_=A.get("blurScope"),v=Eu(C)}var D=t.getRawValue(b),L="-";D&&null!=D[2]&&(L=D[2]+""),Nu(w,v,{labelFetcher:t,labelDataIndex:b,defaultOpacity:S.opacity,defaultText:L}),w.ensureState("emphasis").style=f,w.ensureState("blur").style=g,w.ensureState("select").style=y,Os(w,m,_),w.incremental=r,r&&(w.states.emphasis.hoverLayer=!0),p.add(w),d.setItemGraphicEl(b,w)}},n.prototype._renderOnGeo=function(t,e,n,i){var r=n.targetVisuals.inRange,o=n.targetVisuals.outOfRange,a=e.getData(),s=this._hmLayer||this._hmLayer||new BD;s.blurSize=e.get("blurSize"),s.pointSize=e.get("pointSize"),s.minOpacity=e.get("minOpacity"),s.maxOpacity=e.get("maxOpacity");var l=t.getViewRect().clone(),u=t.getRoamTransform();l.applyTransform(u);var h=Math.max(l.x,0),c=Math.max(l.y,0),p=Math.min(l.width+l.x,i.getWidth()),d=Math.min(l.height+l.y,i.getHeight()),f=p-h,g=d-c,y=[a.mapDimension("lng"),a.mapDimension("lat"),a.mapDimension("value")],v=a.mapArray(y,(function(e,n,i){var r=t.dataToPoint([e,n]);return r[0]-=h,r[1]-=c,r.push(i),r})),m=n.getExtent(),_="visualMap.continuous"===n.type?function(t,e){var n=t[1]-t[0];return e=[(e[0]-t[0])/n,(e[1]-t[0])/n],function(t){return t>=e[0]&&t<=e[1]}}(m,n.option.range):function(t,e,n){var i=t[1]-t[0],r=(e=P(e,(function(e){return{interval:[(e.interval[0]-t[0])/i,(e.interval[1]-t[0])/i]}}))).length,o=0;return function(t){var i;for(i=o;i<r;i++)if((a=e[i].interval)[0]<=t&&t<=a[1]){o=i;break}if(i===r)for(i=o-1;i>=0;i--){var a;if((a=e[i].interval)[0]<=t&&t<=a[1]){o=i;break}}return i>=0&&i<r&&n[i]}}(m,n.getPieceList(),n.option.selected);s.update(v,f,g,r.color.getNormalizer(),{inRange:r.color.getColorMapper(),outOfRange:o.color.getColorMapper()},_);var x=new Ba({style:{width:f,height:g,x:h,y:c,image:s.canvas},silent:!0});this.group.add(x)},n.type="heatmap",n}(Od),GD=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.getInitialData=function(t,e){return lm(this.getSource(),this,{generateCoord:"value"})},n.prototype.preventIncremental=function(){var t=zc.get(this.get("coordinateSystem"));if(t&&t.dimensions)return"lng"===t.dimensions[0]&&"lat"===t.dimensions[1]},n.type="series.heatmap",n.dependencies=["grid","geo","calendar"],n.defaultOption={coordinateSystem:"cartesian2d",zlevel:0,z:2,geoIndex:0,blurSize:30,pointSize:20,maxOpacity:1,minOpacity:0,select:{itemStyle:{borderColor:"#212121"}}},n}(bd);var HD=["itemStyle","borderWidth"],WD=[{xy:"x",wh:"width",index:0,posDesc:["left","right"]},{xy:"y",wh:"height",index:1,posDesc:["top","bottom"]}],YD=new sl,XD=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n){var i=this.group,r=t.getData(),o=this._data,a=t.coordinateSystem,s=a.getBaseAxis().isHorizontal(),l=a.master.getRect(),u={ecSize:{width:n.getWidth(),height:n.getHeight()},seriesModel:t,coordSys:a,coordSysExtent:[[l.x,l.x+l.width],[l.y,l.y+l.height]],isHorizontal:s,valueDim:WD[+s],categoryDim:WD[1-+s]};return r.diff(o).add((function(t){if(r.hasValue(t)){var e=QD(r,t),n=UD(r,t,e,u),o=nL(r,u,n);r.setItemGraphicEl(t,o),i.add(o),sL(o,u,n)}})).update((function(t,e){var n=o.getItemGraphicEl(e);if(r.hasValue(t)){var a=QD(r,t),s=UD(r,t,a,u),l=rL(r,s);n&&l!==n.__pictorialShapeStr&&(i.remove(n),r.setItemGraphicEl(t,null),n=null),n?function(t,e,n){var i=n.animationModel,r=n.dataIndex;fu(t.__pictorialBundle,{x:n.bundlePosition[0],y:n.bundlePosition[1]},i,r),n.symbolRepeat?qD(t,e,n,!0):KD(t,e,n,!0);$D(t,n,!0),JD(t,e,n,!0)}(n,u,s):n=nL(r,u,s,!0),r.setItemGraphicEl(t,n),n.__pictorialSymbolMeta=s,i.add(n),sL(n,u,s)}else i.remove(n)})).remove((function(t){var e=o.getItemGraphicEl(t);e&&iL(o,t,e.__pictorialSymbolMeta.animationModel,e)})).execute(),this._data=r,this.group},n.prototype.remove=function(t,e){var n=this.group,i=this._data;t.get("animation")?i&&i.eachItemGraphicEl((function(e){iL(i,ns(e).dataIndex,t,e)})):n.removeAll()},n.type="pictorialBar",n}(Od);function UD(t,e,n,i){var r=t.getItemLayout(e),o=n.get("symbolRepeat"),a=n.get("symbolClip"),s=n.get("symbolPosition")||"start",l=(n.get("symbolRotate")||0)*Math.PI/180||0,u=n.get("symbolPatternSize")||2,h=n.isAnimationEnabled(),c={dataIndex:e,layout:r,itemModel:n,symbolType:t.getItemVisual(e,"symbol")||"circle",style:t.getItemVisual(e,"style"),symbolClip:a,symbolRepeat:o,symbolRepeatDirection:n.get("symbolRepeatDirection"),symbolPatternSize:u,rotation:l,animationModel:h?n:null,hoverScale:h&&n.get(["emphasis","scale"]),z2:n.getShallow("z",!0)||0};!function(t,e,n,i,r){var o,a=i.valueDim,s=t.get("symbolBoundingData"),l=i.coordSys.getOtherAxis(i.coordSys.getBaseAxis()),u=l.toGlobalCoord(l.dataToCoord(0)),h=1-+(n[a.wh]<=0);if(V(s)){var c=[ZD(l,s[0])-u,ZD(l,s[1])-u];c[1]<c[0]&&c.reverse(),o=c[h]}else o=null!=s?ZD(l,s)-u:e?i.coordSysExtent[a.index][h]-u:n[a.wh];r.boundingLength=o,e&&(r.repeatCutLength=n[a.wh]);r.pxSign=o>0?1:o<0?-1:0}(n,o,r,i,c),function(t,e,n,i,r,o,a,s,l,u){var h,c=l.valueDim,p=l.categoryDim,d=Math.abs(n[p.wh]),f=t.getItemVisual(e,"symbolSize");h=V(f)?f.slice():null==f?["100%","100%"]:[f,f];h[p.index]=Vi(h[p.index],d),h[c.index]=Vi(h[c.index],i?d:Math.abs(o)),u.symbolSize=h,(u.symbolScale=[h[0]/s,h[1]/s])[c.index]*=(l.isHorizontal?-1:1)*a}(t,e,r,o,0,c.boundingLength,c.pxSign,u,i,c),function(t,e,n,i,r){var o=t.get(HD)||0;o&&(YD.attr({scaleX:e[0],scaleY:e[1],rotation:n}),YD.updateTransform(),o/=YD.getLineScale(),o*=e[i.valueDim.index]);r.valueLineWidth=o}(n,c.symbolScale,l,i,c);var p=c.symbolSize,d=n.get("symbolOffset");return V(d)&&(d=[Vi(d[0],p[0]),Vi(d[1],p[1])]),function(t,e,n,i,r,o,a,s,l,u,h,c){var p=h.categoryDim,d=h.valueDim,f=c.pxSign,g=Math.max(e[d.index]+s,0),y=g;if(i){var v=Math.abs(l),m=J(t.get("symbolMargin"),"15%")+"",_=!1;m.lastIndexOf("!")===m.length-1&&(_=!0,m=m.slice(0,m.length-1));var x=Vi(m,e[d.index]),b=Math.max(g+2*x,0),w=_?0:2*x,S=nr(i),I=S?i:lL((v+w)/b);b=g+2*(x=(v-I*g)/2/(_?I:I-1)),w=_?0:2*x,S||"fixed"===i||(I=u?lL((Math.abs(u)+w)/b):0),y=I*b-w,c.repeatTimes=I,c.symbolMargin=x}var T=f*(y/2),C=c.pathPosition=[];C[p.index]=n[p.wh]/2,C[d.index]="start"===a?T:"end"===a?l-T:l/2,o&&(C[0]+=o[0],C[1]+=o[1]);var A=c.bundlePosition=[];A[p.index]=n[p.xy],A[d.index]=n[d.xy];var D=c.barRectShape=M({},n);D[d.wh]=f*Math.max(Math.abs(n[d.wh]),Math.abs(C[d.index]+T)),D[p.wh]=n[p.wh];var L=c.clipShape={};L[p.xy]=-n[p.xy],L[p.wh]=h.ecSize[p.wh],L[d.xy]=0,L[d.wh]=n[d.wh]}(n,p,r,o,0,d,s,c.valueLineWidth,c.boundingLength,c.repeatCutLength,i,c),c}function ZD(t,e){return t.toGlobalCoord(t.dataToCoord(t.scale.parse(e)))}function jD(t){var e=t.symbolPatternSize,n=Sg(t.symbolType,-e/2,-e/2,e,e);return n.attr({culling:!0}),"image"!==n.type&&n.setStyle({strokeNoScale:!0}),n}function qD(t,e,n,i){var r=t.__pictorialBundle,o=n.symbolSize,a=n.valueLineWidth,s=n.pathPosition,l=e.valueDim,u=n.repeatTimes||0,h=0,c=o[e.valueDim.index]+a+2*n.symbolMargin;for(oL(t,(function(t){t.__pictorialAnimationIndex=h,t.__pictorialRepeatTimes=u,h<u?aL(t,null,f(h),n,i):aL(t,null,{scaleX:0,scaleY:0},n,i,(function(){r.remove(t)})),h++}));h<u;h++){var p=jD(n);p.__pictorialAnimationIndex=h,p.__pictorialRepeatTimes=u,r.add(p);var d=f(h);aL(p,{x:d.x,y:d.y,scaleX:0,scaleY:0},{scaleX:d.scaleX,scaleY:d.scaleY,rotation:d.rotation},n,i)}function f(t){var e=s.slice(),i=n.pxSign,r=t;return("start"===n.symbolRepeatDirection?i>0:i<0)&&(r=u-1-t),e[l.index]=c*(r-u/2+.5)+s[l.index],{x:e[0],y:e[1],scaleX:n.symbolScale[0],scaleY:n.symbolScale[1],rotation:n.rotation}}}function KD(t,e,n,i){var r=t.__pictorialBundle,o=t.__pictorialMainPath;o?aL(o,null,{x:n.pathPosition[0],y:n.pathPosition[1],scaleX:n.symbolScale[0],scaleY:n.symbolScale[1],rotation:n.rotation},n,i):(o=t.__pictorialMainPath=jD(n),r.add(o),aL(o,{x:n.pathPosition[0],y:n.pathPosition[1],scaleX:0,scaleY:0,rotation:n.rotation},{scaleX:n.symbolScale[0],scaleY:n.symbolScale[1]},n,i))}function $D(t,e,n){var i=M({},e.barRectShape),r=t.__pictorialBarRect;r?aL(r,null,{shape:i},e,n):(r=t.__pictorialBarRect=new Xa({z2:2,shape:i,silent:!0,style:{stroke:"transparent",fill:"transparent",lineWidth:0}}),t.add(r))}function JD(t,e,n,i){if(n.symbolClip){var r=t.__pictorialClipPath,o=M({},n.clipShape),a=e.valueDim,s=n.animationModel,l=n.dataIndex;if(r)fu(r,{shape:o},s,l);else{o[a.wh]=0,r=new Xa({shape:o}),t.__pictorialBundle.setClipPath(r),t.__pictorialClipPath=r;var u={};u[a.wh]=n.clipShape[a.wh],ku[i?"updateProps":"initProps"](r,{shape:u},s,l)}}}function QD(t,e){var n=t.getItemModel(e);return n.getAnimationDelayParams=tL,n.isAnimationEnabled=eL,n}function tL(t){return{index:t.__pictorialAnimationIndex,count:t.__pictorialRepeatTimes}}function eL(){return this.parentModel.isAnimationEnabled()&&!!this.getShallow("animation")}function nL(t,e,n,i){var r=new Li,o=new Li;return r.add(o),r.__pictorialBundle=o,o.x=n.bundlePosition[0],o.y=n.bundlePosition[1],n.symbolRepeat?qD(r,e,n):KD(r,0,n),$D(r,n,i),JD(r,e,n,i),r.__pictorialShapeStr=rL(t,n),r.__pictorialSymbolMeta=n,r}function iL(t,e,n,i){var r=i.__pictorialBarRect;r&&r.removeTextContent();var o=[];oL(i,(function(t){o.push(t)})),i.__pictorialMainPath&&o.push(i.__pictorialMainPath),i.__pictorialClipPath&&(n=null),k(o,(function(t){yu(t,{scaleX:0,scaleY:0},n,e,(function(){i.parent&&i.parent.remove(i)}))})),t.setItemGraphicEl(e,null)}function rL(t,e){return[t.getItemVisual(e.dataIndex,"symbol")||"none",!!e.symbolRepeat,!!e.symbolClip].join(":")}function oL(t,e,n){k(t.__pictorialBundle.children(),(function(i){i!==t.__pictorialBarRect&&e.call(n,i)}))}function aL(t,e,n,i,r,o){e&&t.attr(e),i.symbolClip&&!r?n&&t.attr(n):n&&ku[r?"updateProps":"initProps"](t,n,i.animationModel,i.dataIndex,o)}function sL(t,e,n){var i=n.dataIndex,r=n.itemModel,o=r.getModel("emphasis"),a=o.getModel("itemStyle").getItemStyle(),s=r.getModel(["blur","itemStyle"]).getItemStyle(),l=r.getModel(["select","itemStyle"]).getItemStyle(),u=r.getShallow("cursor"),h=o.get("focus"),c=o.get("blurScope"),p=o.get("scale");oL(t,(function(t){if(t instanceof Ba){var e=t.style;t.useStyle(M({image:e.image,x:e.x,y:e.y,width:e.width,height:e.height},n.style))}else t.useStyle(n.style);var i=t.ensureState("emphasis");i.style=a,p&&(i.scaleX=1.1*t.scaleX,i.scaleY=1.1*t.scaleY),t.ensureState("blur").style=s,t.ensureState("select").style=l,u&&(t.cursor=u),t.z2=n.z2}));var d=e.valueDim.posDesc[+(n.boundingLength>0)];Nu(t.__pictorialBarRect,Eu(r),{labelFetcher:e.seriesModel,labelDataIndex:i,defaultText:zx(e.seriesModel.getData(),i),inheritColor:n.style.fill,defaultOpacity:n.style.opacity,defaultOutsidePosition:d}),Os(t,h,c)}function lL(t){var e=Math.round(t);return Math.abs(t-e)<1e-4?e:Math.ceil(t)}var uL=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.hasSymbolVisual=!0,e.defaultSymbol="roundRect",e}return e(n,t),n.prototype.getInitialData=function(e){return e.stack=null,t.prototype.getInitialData.apply(this,arguments)},n.type="series.pictorialBar",n.dependencies=["grid"],n.defaultOption=sh(bb.defaultOption,{symbol:"circle",symbolSize:null,symbolRotate:null,symbolPosition:null,symbolOffset:null,symbolMargin:null,symbolRepeat:!1,symbolRepeatDirection:"end",symbolClip:!1,symbolBoundingData:null,symbolPatternSize:400,barGap:"-100%",progressive:0,emphasis:{scale:!1},select:{itemStyle:{borderColor:"#212121"}}}),n}(bb);var hL=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e._layers=[],e}return e(n,t),n.prototype.render=function(t,e,n){var i=t.getData(),r=this,o=this.group,a=t.getLayerSeries(),s=i.getLayout("layoutInfo"),l=s.rect,u=s.boundaryGap;function h(t){return t.name}o.x=0,o.y=l.y+u[0];var c=new Iv(this._layersSeries||[],a,h,h),p=[];function d(e,n,s){var l=r._layers;if("remove"!==e){for(var u,h,c=[],d=[],f=a[n].indices,g=0;g<f.length;g++){var y=i.getItemLayout(f[g]),v=y.x,m=y.y0,_=y.y;c.push(v,m),d.push(v,m+_),u=i.getItemVisual(f[g],"style")}var x=i.getItemLayout(f[0]),b=t.getModel("label").get("margin"),w=t.getModel("emphasis");if("add"===e){var S=p[n]=new Li;h=new ib({shape:{points:c,stackedOnPoints:d,smooth:.4,stackedOnSmooth:.4,smoothConstraint:!1},z2:0}),S.add(h),o.add(S),t.isAnimationEnabled()&&h.setClipPath(function(t,e,n){var i=new Xa({shape:{x:t.x-10,y:t.y-10,width:0,height:t.height+20}});return gu(i,{shape:{x:t.x-50,width:t.width+100,height:t.height+20}},e,n),i}(h.getBoundingRect(),t,(function(){h.removeClipPath()})))}else{S=l[s];h=S.childAt(0),o.add(S),p[n]=S,fu(h,{shape:{points:c,stackedOnPoints:d}},t)}Nu(h,Eu(t),{labelDataIndex:f[g-1],defaultText:i.getName(f[g-1]),inheritColor:u.fill},{normal:{verticalAlign:"middle"}}),h.setTextConfig({position:null,local:!0});var M=h.getTextContent();M&&(M.x=x.x-b,M.y=x.y0+x.y/2),h.useStyle(u),i.setItemGraphicEl(n,h),zs(h,t),Os(h,w.get("focus"),w.get("blurScope"))}else o.remove(l[n])}c.add(z(d,this,"add")).update(z(d,this,"update")).remove(z(d,this,"remove")).execute(),this._layersSeries=a,this._layers=p},n.type="themeRiver",n}(Od);var cL=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.useColorPaletteOnData=!0,e}return e(n,t),n.prototype.init=function(e){t.prototype.init.apply(this,arguments),this.legendVisualProvider=new Qb(z(this.getData,this),z(this.getRawData,this))},n.prototype.fixData=function(t){var e=t.length,n={},i=Tr(t,(function(t){return n.hasOwnProperty(t[0]+"")||(n[t[0]+""]=-1),t[2]})),r=[];i.buckets.each((function(t,e){r.push({name:e,dataList:t})}));for(var o=r.length,a=0;a<o;++a){for(var s=r[a].name,l=0;l<r[a].dataList.length;++l){var u=r[a].dataList[l][0]+"";n[u]=a}for(var u in n)n.hasOwnProperty(u)&&n[u]!==a&&(n[u]=a,t[e]=[u,0,s],e++)}return t},n.prototype.getInitialData=function(t,e){for(var n=this.getReferringComponents("singleAxis",wr).models[0].get("type"),i=R(t.data,(function(t){return void 0!==t[2]})),r=this.fixData(i||[]),o=[],a=this.nameMap=lt(),s=0,l=0;l<r.length;++l)o.push(r[l][2]),a.get(r[l][2])||(a.set(r[l][2],s),s++);var u=em(r,{coordDimensions:["single"],dimensionsDefine:[{name:"time",type:Cv(n)},{name:"value",type:"float"},{name:"name",type:"ordinal"}],encodeDefine:{single:0,value:1,itemName:2}}),h=new Jv(u,this);return h.initData(r),h},n.prototype.getLayerSeries=function(){for(var t=this.getData(),e=t.count(),n=[],i=0;i<e;++i)n[i]=i;var r=t.mapDimension("single"),o=Tr(n,(function(e){return t.get("name",e)})),a=[];return o.buckets.each((function(e,n){e.sort((function(e,n){return t.get(r,e)-t.get(r,n)})),a.push({name:n,indices:e})})),a},n.prototype.getAxisTooltipData=function(t,e,n){V(t)||(t=t?[t]:[]);for(var i,r=this.getData(),o=this.getLayerSeries(),a=[],s=o.length,l=0;l<s;++l){for(var u=Number.MAX_VALUE,h=-1,c=o[l].indices.length,p=0;p<c;++p){var d=r.get(t[0],o[l].indices[p]),f=Math.abs(d-e);f<=u&&(i=d,u=f,h=o[l].indices[p])}a.push(h)}return{dataIndices:a,nestestValue:i}},n.prototype.formatTooltip=function(t,e,n){var i=this.getData();return ld("nameValue",{name:i.getName(t),value:i.get(i.mapDimension("value"),t)})},n.type="series.themeRiver",n.dependencies=["singleAxis"],n.defaultOption={zlevel:0,z:2,coordinateSystem:"singleAxis",boundaryGap:["10%","10%"],singleAxisIndex:0,animationEasing:"linear",label:{margin:4,show:!0,position:"left",fontSize:11},emphasis:{label:{show:!0}}},n}(bd);function pL(t,e){t.eachSeriesByType("themeRiver",(function(t){var e=t.getData(),n=t.coordinateSystem,i={},r=n.getRect();i.rect=r;var o=t.get("boundaryGap"),a=n.getAxis();(i.boundaryGap=o,"horizontal"===a.orient)?(o[0]=Vi(o[0],r.height),o[1]=Vi(o[1],r.height),dL(e,t,r.height-o[0]-o[1])):(o[0]=Vi(o[0],r.width),o[1]=Vi(o[1],r.width),dL(e,t,r.width-o[0]-o[1]));e.setLayout("layoutInfo",i)}))}function dL(t,e,n){if(t.count())for(var i,r=e.coordinateSystem,o=e.getLayerSeries(),a=t.mapDimension("single"),s=t.mapDimension("value"),l=P(o,(function(e){return P(e.indices,(function(e){var n=r.dataToPoint(t.get(a,e));return n[1]=t.get(s,e),n}))})),u=function(t){for(var e=t.length,n=t[0].length,i=[],r=[],o=0,a=0;a<n;++a){for(var s=0,l=0;l<e;++l)s+=t[l][a][1];s>o&&(o=s),i.push(s)}for(var u=0;u<n;++u)r[u]=(o-i[u])/2;o=0;for(var h=0;h<n;++h){var c=i[h]+r[h];c>o&&(o=c)}return{y0:r,max:o}}(l),h=u.y0,c=n/u.max,p=o.length,d=o[0].indices.length,f=0;f<d;++f){i=h[f]*c,t.setItemLayout(o[0].indices[f],{layerIndex:0,x:l[0][f][0],y0:i,y:l[0][f][1]*c});for(var g=1;g<p;++g)i+=l[g-1][f][1]*c,t.setItemLayout(o[g].indices[f],{layerIndex:g,x:l[g][f][0],y0:i,y:l[g][f][1]*c})}}var fL=function(t){function n(e,n,i,r){var o=t.call(this)||this;o.z2=2,o.textConfig={inside:!0},ns(o).seriesIndex=n.seriesIndex;var a=new ja({z2:4,silent:e.getModel().get(["label","silent"])});return o.setTextContent(a),o.updateData(!0,e,n,i,r),o}return e(n,t),n.prototype.updateData=function(t,e,n,i,r){this.node=e,e.piece=this,n=n||this._seriesModel,i=i||this._ecModel;var o=this;ns(o).dataIndex=e.dataIndex;var a=e.getModel(),s=a.getModel("emphasis"),l=e.getLayout(),u=M({},l);u.label=null;var h=e.getVisual("style");h.lineJoin="bevel";var c=e.getVisual("decal");c&&(h.decal=Xg(c,r));var p=qb(a.getModel("itemStyle"),u);M(u,p),k(as,(function(t){var e=o.ensureState(t),n=a.getModel([t,"itemStyle"]);e.style=n.getItemStyle();var i=qb(n,u);i&&(e.shape=i)})),t?(o.setShape(u),o.shape.r=l.r0,fu(o,{shape:{r:l.r}},n,e.dataIndex)):fu(o,{shape:u},n),o.useStyle(h),this._updateLabel(n);var d=a.getShallow("cursor");d&&o.attr("cursor",d),this._seriesModel=n||this._seriesModel,this._ecModel=i||this._ecModel;var f=s.get("focus");Os(this,("ancestor"===f?e.getAncestorsIndices():"descendant"===f?e.getDescendantIndices():null)||f,s.get("blurScope"))},n.prototype._updateLabel=function(t){var e=this,n=this.node.getModel(),i=n.getModel("label"),r=this.node.getLayout(),o=r.endAngle-r.startAngle,a=(r.startAngle+r.endAngle)/2,s=Math.cos(a),l=Math.sin(a),u=this,h=u.getTextContent(),c=this.node.dataIndex,p=i.get("minAngle")/180*Math.PI,d=i.get("show")&&!(null!=p&&Math.abs(o)<p);function f(t,e){var n=t.get(e);return null==n?i.get(e):n}h.ignore=!d,k(ss,(function(i){var o="normal"===i?n.getModel("label"):n.getModel([i,"label"]),p="normal"===i,d=p?h:h.ensureState(i),g=t.getFormattedLabel(c,i);p&&(g=g||e.node.name),d.style=zu(o,{},null,"normal"!==i,!0),g&&(d.style.text=g);var y=o.get("show");null==y||p||(d.ignore=!y);var v,m=f(o,"position"),_=p?u:u.states[i],x=_.style.fill;_.textConfig={outsideFill:"inherit"===o.get("color")?x:null,inside:"outside"!==m};var b=f(o,"distance")||0,w=f(o,"align");"outside"===m?(v=r.r+b,w=a>Math.PI/2?"right":"left"):w&&"center"!==w?"left"===w?(v=r.r0+b,a>Math.PI/2&&(w="right")):"right"===w&&(v=r.r-b,a>Math.PI/2&&(w="left")):(v=(r.r+r.r0)/2,w="center"),d.style.align=w,d.style.verticalAlign=f(o,"verticalAlign")||"middle",d.x=v*s+r.cx,d.y=v*l+r.cy;var S=f(o,"rotate"),M=0;"radial"===S?(M=-a)<-Math.PI/2&&(M+=Math.PI):"tangential"===S?(M=Math.PI/2-a)>Math.PI/2?M-=Math.PI:M<-Math.PI/2&&(M+=Math.PI):"number"==typeof S&&(M=S*Math.PI/180),d.rotation=M})),h.dirtyStyle()},n}(Ml);var gL=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n,i){var r=this;this.seriesModel=t,this.api=n,this.ecModel=e;var o=t.getData(),a=o.tree.root,s=t.getViewRoot(),l=this.group,u=t.get("renderLabelForZeroData"),h=[];s.eachNode((function(t){h.push(t)}));var c=this._oldChildren||[];!function(i,r){if(0===i.length&&0===r.length)return;function s(t){return t.getId()}function h(s,h){!function(i,r){u||!i||i.getValue()||(i=null);if(i!==a&&r!==a)if(r&&r.piece)i?(r.piece.updateData(!1,i,t,e,n),o.setItemGraphicEl(i.dataIndex,r.piece)):function(t){if(!t)return;t.piece&&(l.remove(t.piece),t.piece=null)}(r);else if(i){var s=new fL(i,t,e,n);l.add(s),o.setItemGraphicEl(i.dataIndex,s)}}(null==s?null:i[s],null==h?null:r[h])}new Iv(r,i,s,s).add(h).update(h).remove(B(h,null)).execute()}(h,c),function(i,o){o.depth>0?(r.virtualPiece?r.virtualPiece.updateData(!1,i,t,e,n):(r.virtualPiece=new fL(i,t,e,n),l.add(r.virtualPiece)),o.piece.off("click"),r.virtualPiece.on("click",(function(t){r._rootToNode(o.parentNode)}))):r.virtualPiece&&(l.remove(r.virtualPiece),r.virtualPiece=null)}(a,s),this._initEvents(),this._oldChildren=h},n.prototype._initEvents=function(){var t=this;this.group.off("click"),this.group.on("click",(function(e){var n=!1;t.seriesModel.getViewRoot().eachNode((function(i){if(!n&&i.piece&&i.piece===e.target){var r=i.getModel().get("nodeClick");if("rootToNode"===r)t._rootToNode(i);else if("link"===r){var o=i.getModel(),a=o.get("link");if(a)jh(a,o.get("target",!0)||"_blank")}n=!0}}))}))},n.prototype._rootToNode=function(t){t!==this.seriesModel.getViewRoot()&&this.api.dispatchAction({type:"sunburstRootToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:t})},n.prototype.containPoint=function(t,e){var n=e.getData().getItemLayout(0);if(n){var i=t[0]-n.cx,r=t[1]-n.cy,o=Math.sqrt(i*i+r*r);return o<=n.r&&o>=n.r0}},n.type="sunburst",n}(Od),yL=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.ignoreStyleOnData=!0,e}return e(n,t),n.prototype.getInitialData=function(t,e){var n={name:t.name,children:t.data};vL(n);var i=P(t.levels||[],(function(t){return new rh(t,this,e)}),this),r=EM.createTree(n,this,(function(t){t.wrapMethod("getItemModel",(function(t,e){var n=r.getNodeByDataIndex(e),o=i[n.depth];return o&&(t.parentModel=o),t}))}));return r.data},n.prototype.optionUpdated=function(){this.resetViewRoot()},n.prototype.getDataParams=function(e){var n=t.prototype.getDataParams.apply(this,arguments),i=this.getData().tree.getNodeByDataIndex(e);return n.treePathInfo=XM(i,this),n},n.prototype.getViewRoot=function(){return this._viewRoot},n.prototype.resetViewRoot=function(t){t?this._viewRoot=t:t=this._viewRoot;var e=this.getRawData().tree.root;t&&(t===e||e.contains(t))||(this._viewRoot=e)},n.prototype.enableAriaDecal=function(){jM(this)},n.type="series.sunburst",n.defaultOption={zlevel:0,z:2,center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,stillShowZeroSum:!0,nodeClick:"rootToNode",renderLabelForZeroData:!1,label:{rotate:"radial",show:!0,opacity:1,align:"center",position:"inside",distance:5,silent:!0},itemStyle:{borderWidth:1,borderColor:"white",borderType:"solid",shadowBlur:0,shadowColor:"rgba(0, 0, 0, 0.2)",shadowOffsetX:0,shadowOffsetY:0,opacity:1},emphasis:{focus:"descendant"},blur:{itemStyle:{opacity:.2},label:{opacity:.1}},animationType:"expansion",animationDuration:1e3,animationDurationUpdate:500,data:[],levels:[],sort:"desc"},n}(bd);function vL(t){var e=0;k(t.children,(function(t){vL(t);var n=t.value;V(n)&&(n=n[0]),e+=n}));var n=t.value;V(n)&&(n=n[0]),(null==n||isNaN(n))&&(n=e),n<0&&(n=0),V(t.value)?t.value[0]=n:t.value=n}var mL=Math.PI/180;function _L(t,e,n){e.eachSeriesByType(t,(function(t){var e=t.get("center"),i=t.get("radius");V(i)||(i=[0,i]),V(e)||(e=[e,e]);var r=n.getWidth(),o=n.getHeight(),a=Math.min(r,o),s=Vi(e[0],r),l=Vi(e[1],o),u=Vi(i[0],a/2),h=Vi(i[1],a/2),c=-t.get("startAngle")*mL,p=t.get("minAngle")*mL,d=t.getData().tree.root,f=t.getViewRoot(),g=f.depth,y=t.get("sort");null!=y&&xL(f,y);var v=0;k(f.children,(function(t){!isNaN(t.getValue())&&v++}));var m=f.getValue(),_=Math.PI/(m||v)*2,x=f.depth>0,b=f.height-(x?-1:1),w=(h-u)/(b||1),S=t.get("clockwise"),M=t.get("stillShowZeroSum"),I=S?1:-1,T=function(t,e){if(t){var n=e;if(t!==d){var i=t.getValue(),r=0===m&&M?_:i*_;r<p&&(r=p),n=e+I*r;var o=t.depth-g-(x?-1:1),h=u+w*o,c=u+w*(o+1),f=t.getModel();null!=f.get("r0")&&(h=Vi(f.get("r0"),a/2)),null!=f.get("r")&&(c=Vi(f.get("r"),a/2)),t.setLayout({angle:r,startAngle:e,endAngle:n,clockwise:S,cx:s,cy:l,r0:h,r:c})}if(t.children&&t.children.length){var y=0;k(t.children,(function(t){y+=T(t,e+y)}))}return n-e}};if(x){var C=u,A=u+w,D=2*Math.PI;d.setLayout({angle:D,startAngle:c,endAngle:c+D,clockwise:S,cx:s,cy:l,r0:C,r:A})}T(f,c)}))}function xL(t,e){var n=t.children||[];t.children=function(t,e){if("function"==typeof e){var n=P(t,(function(t,e){var n=t.getValue();return{params:{depth:t.depth,height:t.height,dataIndex:t.dataIndex,getValue:function(){return n}},index:e}}));return n.sort((function(t,n){return e(t.params,n.params)})),P(n,(function(e){return t[e.index]}))}var i="asc"===e;return t.sort((function(t,e){var n=(t.getValue()-e.getValue())*(i?1:-1);return 0===n?(t.dataIndex-e.dataIndex)*(i?-1:1):n}))}(n,e),n.length&&k(t.children,(function(t){xL(t,e)}))}function bL(t){var e={};t.eachSeriesByType("sunburst",(function(t){var n=t.getData(),i=n.tree;i.eachNode((function(r){var o=r.getModel().getModel("itemStyle").getItemStyle();o.fill||(o.fill=function(t,n,i){for(var r=t;r&&r.depth>1;)r=r.parentNode;var o=n.getColorFromPalette(r.name||r.dataIndex+"",e);return t.depth>1&&"string"==typeof o&&(o=Ze(o,(t.depth-1)/(i-1)*.5)),o}(r,t,i.root.height)),M(n.ensureUniqueItemVisual(r.dataIndex,"style"),o)}))}))}function wL(t,e){return e=e||[0,0],P(["x","y"],(function(n,i){var r=this.getAxis(n),o=e[i],a=t[i]/2;return"category"===r.type?r.getBandWidth():Math.abs(r.dataToCoord(o-a)-r.dataToCoord(o+a))}),this)}function SL(t,e){return e=e||[0,0],P([0,1],(function(n){var i=e[n],r=t[n]/2,o=[],a=[];return o[n]=i-r,a[n]=i+r,o[1-n]=a[1-n]=e[1-n],Math.abs(this.dataToPoint(o)[n]-this.dataToPoint(a)[n])}),this)}function ML(t,e){var n=this.getAxis(),i=e instanceof Array?e[0]:e,r=(t instanceof Array?t[0]:t)/2;return"category"===n.type?n.getBandWidth():Math.abs(n.dataToCoord(i-r)-n.dataToCoord(i+r))}function IL(t,e){return e=e||[0,0],P(["Radius","Angle"],(function(n,i){var r=this["get"+n+"Axis"](),o=e[i],a=t[i]/2,s="category"===r.type?r.getBandWidth():Math.abs(r.dataToCoord(o-a)-r.dataToCoord(o+a));return"Angle"===n&&(s=s*Math.PI/180),s}),this)}function TL(t,e,n,i){return t&&(t.legacy||!1!==t.legacy&&!n&&!i&&"tspan"!==e&&("text"===e||ct(t,"text")))}function CL(t,e,n){var i,r,o,a=t;if("text"===e)o=a;else{o={},ct(a,"text")&&(o.text=a.text),ct(a,"rich")&&(o.rich=a.rich),ct(a,"textFill")&&(o.fill=a.textFill),ct(a,"textStroke")&&(o.stroke=a.textStroke),r={type:"text",style:o,silent:!0},i={};var s=ct(a,"textPosition");n?i.position=s?a.textPosition:"inside":s&&(i.position=a.textPosition),ct(a,"textPosition")&&(i.position=a.textPosition),ct(a,"textOffset")&&(i.offset=a.textOffset),ct(a,"textRotation")&&(i.rotation=a.textRotation),ct(a,"textDistance")&&(i.distance=a.textDistance)}return AL(o,t),k(o.rich,(function(t){AL(t,t)})),{textConfig:i,textContent:r}}function AL(t,e){e&&(e.font=e.textFont||e.font,ct(e,"textStrokeWidth")&&(t.lineWidth=e.textStrokeWidth),ct(e,"textAlign")&&(t.align=e.textAlign),ct(e,"textVerticalAlign")&&(t.verticalAlign=e.textVerticalAlign),ct(e,"textLineHeight")&&(t.lineHeight=e.textLineHeight),ct(e,"textWidth")&&(t.width=e.textWidth),ct(e,"textHeight")&&(t.height=e.textHeight),ct(e,"textBackgroundColor")&&(t.backgroundColor=e.textBackgroundColor),ct(e,"textPadding")&&(t.padding=e.textPadding),ct(e,"textBorderColor")&&(t.borderColor=e.textBorderColor),ct(e,"textBorderWidth")&&(t.borderWidth=e.textBorderWidth),ct(e,"textBorderRadius")&&(t.borderRadius=e.textBorderRadius),ct(e,"textBoxShadowColor")&&(t.shadowColor=e.textBoxShadowColor),ct(e,"textBoxShadowBlur")&&(t.shadowBlur=e.textBoxShadowBlur),ct(e,"textBoxShadowOffsetX")&&(t.shadowOffsetX=e.textBoxShadowOffsetX),ct(e,"textBoxShadowOffsetY")&&(t.shadowOffsetY=e.textBoxShadowOffsetY))}function DL(t,e,n){var i=t;i.textPosition=i.textPosition||n.position||"inside",null!=n.offset&&(i.textOffset=n.offset),null!=n.rotation&&(i.textRotation=n.rotation),null!=n.distance&&(i.textDistance=n.distance);var r=i.textPosition.indexOf("inside")>=0,o=t.fill||"#000";LL(i,e);var a=null==i.textFill;return r?a&&(i.textFill=n.insideFill||"#fff",!i.textStroke&&n.insideStroke&&(i.textStroke=n.insideStroke),!i.textStroke&&(i.textStroke=o),null==i.textStrokeWidth&&(i.textStrokeWidth=2)):(a&&(i.textFill=n.outsideFill||o),!i.textStroke&&n.outsideStroke&&(i.textStroke=n.outsideStroke)),i.text=e.text,i.rich=e.rich,k(e.rich,(function(t){LL(t,t)})),i}function LL(t,e){e&&(ct(e,"fill")&&(t.textFill=e.fill),ct(e,"stroke")&&(t.textStroke=e.fill),ct(e,"lineWidth")&&(t.textStrokeWidth=e.lineWidth),ct(e,"font")&&(t.font=e.font),ct(e,"fontStyle")&&(t.fontStyle=e.fontStyle),ct(e,"fontWeight")&&(t.fontWeight=e.fontWeight),ct(e,"fontSize")&&(t.fontSize=e.fontSize),ct(e,"fontFamily")&&(t.fontFamily=e.fontFamily),ct(e,"align")&&(t.textAlign=e.align),ct(e,"verticalAlign")&&(t.textVerticalAlign=e.verticalAlign),ct(e,"lineHeight")&&(t.textLineHeight=e.lineHeight),ct(e,"width")&&(t.textWidth=e.width),ct(e,"height")&&(t.textHeight=e.height),ct(e,"backgroundColor")&&(t.textBackgroundColor=e.backgroundColor),ct(e,"padding")&&(t.textPadding=e.padding),ct(e,"borderColor")&&(t.textBorderColor=e.borderColor),ct(e,"borderWidth")&&(t.textBorderWidth=e.borderWidth),ct(e,"borderRadius")&&(t.textBorderRadius=e.borderRadius),ct(e,"shadowColor")&&(t.textBoxShadowColor=e.shadowColor),ct(e,"shadowBlur")&&(t.textBoxShadowBlur=e.shadowBlur),ct(e,"shadowOffsetX")&&(t.textBoxShadowOffsetX=e.shadowOffsetX),ct(e,"shadowOffsetY")&&(t.textBoxShadowOffsetY=e.shadowOffsetY),ct(e,"textShadowColor")&&(t.textShadowColor=e.textShadowColor),ct(e,"textShadowBlur")&&(t.textShadowBlur=e.textShadowBlur),ct(e,"textShadowOffsetX")&&(t.textShadowOffsetX=e.textShadowOffsetX),ct(e,"textShadowOffsetY")&&(t.textShadowOffsetY=e.textShadowOffsetY))}var kL=da.CMD,PL=2*Math.PI,OL=["x","y"],RL=["width","height"],NL=[];function EL(t,e){return Math.abs(t-e)<1e-5}function zL(t){var e,n,i,r,o,a=t.data,s=t.len(),l=[],u=0,h=0,c=0,p=0;function d(t,n){e&&e.length>2&&l.push(e),e=[t,n]}function f(t,n,i,r){EL(t,i)&&EL(n,r)||e.push(t,n,i,r,i,r)}function g(t,n,i,r,o,a){var s=Math.abs(n-t),l=4*Math.tan(s/4)/3,u=n<t?-1:1,h=Math.cos(t),c=Math.sin(t),p=Math.cos(n),d=Math.sin(n),f=h*o+i,g=c*a+r,y=p*o+i,v=d*a+r,m=o*l*u,_=a*l*u;e.push(f-m*c,g+_*h,y+m*d,v-_*p,y,v)}for(var y=0;y<s;){var v=a[y++],m=1===y;switch(m&&(c=u=a[y],p=h=a[y+1],v!==kL.L&&v!==kL.C&&v!==kL.Q||(e=[c,p])),v){case kL.M:u=c=a[y++],h=p=a[y++],d(c,p);break;case kL.L:f(u,h,n=a[y++],i=a[y++]),u=n,h=i;break;case kL.C:e.push(a[y++],a[y++],a[y++],a[y++],u=a[y++],h=a[y++]);break;case kL.Q:n=a[y++],i=a[y++],r=a[y++],o=a[y++],e.push(u+2/3*(n-u),h+2/3*(i-h),r+2/3*(n-r),o+2/3*(i-o),r,o),u=r,h=o;break;case kL.A:var _=a[y++],x=a[y++],b=a[y++],w=a[y++],S=a[y++],M=a[y++]+S;y+=1;var I=!a[y++];n=Math.cos(S)*b+_,i=Math.sin(S)*w+x,m?d(c=n,p=i):f(u,h,n,i),u=Math.cos(M)*b+_,h=Math.sin(M)*w+x;for(var T=(I?-1:1)*Math.PI/2,C=S;I?C>M:C<M;C+=T){g(C,I?Math.max(C+T,M):Math.min(C+T,M),_,x,b,w)}break;case kL.R:c=u=a[y++],p=h=a[y++],n=c+a[y++],i=p+a[y++],d(n,p),f(n,p,n,i),f(n,i,c,i),f(c,i,c,p),f(c,p,n,p);break;case kL.Z:e&&f(u,h,c,p),u=c,h=p}}return e&&e.length>2&&l.push(e),l}function BL(t,e){var n=t.length,i=e.length;if(n===i)return[t,e];for(var r=n<i?t:e,o=Math.min(n,i),a=Math.abs(i-n)/6,s=(o-2)/6,l=Math.ceil(a/s)+1,u=[r[0],r[1]],h=a,c=[],p=[],d=2;d<o;){var f=r[d-2],g=r[d-1],y=r[d++],v=r[d++],m=r[d++],_=r[d++],x=r[d++],b=r[d++];if(h<=0)u.push(y,v,m,_,x,b);else{for(var w=Math.min(h,l-1)+1,S=1;S<=w;S++){var M=S/w;Mo(f,y,m,x,M,c),Mo(g,v,_,b,M,p),f=c[3],g=p[3],u.push(c[1],p[1],c[2],p[2],f,g),y=c[5],v=p[5],m=c[6],_=p[6]}h-=w-1}}return r===t?[u,e]:[t,u]}function VL(t,e){for(var n=t.length,i=t[n-2],r=t[n-1],o=[],a=0;a<e.length;)o[a++]=i,o[a++]=r;return o}function FL(t){for(var e=0,n=0,i=0,r=t.length,o=0,a=r-2;o<r;a=o,o+=2){var s=t[a],l=t[a+1],u=t[o],h=t[o+1],c=s*h-u*l;e+=c,n+=(s+u)*c,i+=(l+h)*c}return 0===e?[t[0]||0,t[1]||0]:[n/e/3,i/e/3,e]}function GL(t,e,n,i){for(var r=(t.length-2)/6,o=1/0,a=0,s=t.length,l=s-2,u=0;u<r;u++){for(var h=6*u,c=0,p=0;p<s;p+=2){var d=0===p?h:(h+p-2)%l+2,f=t[d]-n[0],g=t[d+1]-n[1],y=e[p]-i[0]-f,v=e[p+1]-i[1]-g;c+=y*y+v*v}c<o&&(o=c,a=u)}return a}function HL(t){for(var e=[],n=t.length,i=0;i<n;i+=2)e[i]=t[n-i-2],e[i+1]=t[n-i-1];return e}function WL(t,e,n){var i,r;if(!t||!e)return e;!t.path&&t.createPathProxy(),(i=t.path).beginPath(),t.buildPath(i,t.shape),!e.path&&e.createPathProxy(),(r=e.path)===i&&(r=new da(!1)),r.beginPath(),UL(e)?e.__oldBuildPath(r,e.shape):e.buildPath(r,e.shape);var o=function(t,e){for(var n,i,r,o=[],a=[],s=0;s<Math.max(t.length,e.length);s++){var l=t[s],u=e[s],h=void 0,c=void 0;l?u?(i=h=(n=BL(l,u))[0],r=c=n[1]):(c=VL(r||l,l),h=l):(h=VL(i||u,u),c=u),o.push(h),a.push(c)}return[o,a]}(zL(i),zL(r)),a=function(t,e,n,i){for(var r,o=[],a=0;a<t.length;a++){var s=t[a],l=e[a],u=FL(s),h=FL(l);null==r&&(r=u[2]<0!=h[2]<0);var c=[],p=[],d=0,f=1/0,g=[],y=s.length;r&&(s=HL(s));for(var v=6*GL(s,l,u,h),m=y-2,_=0;_<m;_+=2){var x=(v+_)%m+2;c[_+2]=s[x]-u[0],c[_+3]=s[x+1]-u[1]}if(c[0]=s[v]-u[0],c[1]=s[v+1]-u[1],n>0)for(var b=i/n,w=-i/2;w<=i/2;w+=b){var S=Math.sin(w),M=Math.cos(w),I=0;for(_=0;_<s.length;_+=2){var T=c[_],C=c[_+1],A=l[_]-h[0],D=l[_+1]-h[1],L=A*M-D*S,k=A*S+D*M;g[_]=L,g[_+1]=k;var P=L-T,O=k-C;I+=P*P+O*O}if(I<f){f=I,d=w;for(var R=0;R<g.length;R++)p[R]=g[R]}}else for(var N=0;N<y;N+=2)p[N]=l[N]-h[0],p[N+1]=l[N+1]-h[1];o.push({from:c,to:p,fromCp:u,toCp:h,rotation:-d})}return o}(o[0],o[1],10,Math.PI);!function(t,e,n){if(UL(t))return void XL(t,e,n);var i=t;i.__oldBuildPath=i.buildPath,i.buildPath=YL,XL(i,e,n)}(e,a,0);var s=n&&n.done,l=n&&n.aborted,u=n&&n.during;return e.animateTo({__morphT:1},I({during:function(t){e.dirtyShape(),u&&u(t)},done:function(){var t;UL(t=e)&&(t.buildPath=t.__oldBuildPath,t.__oldBuildPath=t.__morphingData=null),e.createPathProxy(),e.dirtyShape(),s&&s()},aborted:function(){l&&l()}},n)),e}function YL(t){for(var e=this.__morphingData,n=this.__morphT,i=1-n,r=[],o=0;o<e.length;o++){var a=e[o],s=a.from,l=a.to,u=a.rotation*n,h=a.fromCp,c=a.toCp,p=Math.sin(u),d=Math.cos(u);kt(r,h,c,n);for(var f=0;f<s.length;f+=2){var g=s[f],y=s[f+1],v=g*i+l[f]*n,m=y*i+l[f+1]*n;NL[f]=v*d-m*p+r[0],NL[f+1]=v*p+m*d+r[1]}for(f=0;f<s.length;)0===f&&t.moveTo(NL[f++],NL[f++]),t.bezierCurveTo(NL[f++],NL[f++],NL[f++],NL[f++],NL[f++],NL[f++])}}function XL(t,e,n){t.__morphingData=e,t.__morphT=n}function UL(t){return null!=t.__oldBuildPath}function ZL(t){return!!t.__combiningSubList}function jL(t,e,n,i){for(var r=[],o=0,a=0;a<t.length;a++){var s=t[a];if(ZL(s)){for(var l=s.__combiningSubList,u=0;u<l.length;u++)r.push(l[u]);o+=l.length}else r.push(s),o++}if(o){var h=n?n.dividingMethod:null,c=tk(e,o,h);it(c.length===o);var p=n&&n.done,d=n&&n.aborted,f=n&&n.during,g=0,y=!1,v=I({during:function(t){f&&f(t)},done:function(){++g===c.length&&(!function(t){if(!ZL(t))return;var e=t;qL(e,null),e.addSelfToZr=e.__oldAddSelfToZr,e.removeSelfFromZr=e.__oldRemoveSelfFromZr,e.buildPath=e.__oldBuildPath,e.childrenRef=e.__combiningSubList=e.__oldAddSelfToZr=e.__oldRemoveSelfFromZr=e.__oldBuildPath=null}(e),p&&p())},aborted:function(){y||(y=!0,d&&d())}},n);for(a=0;a<o;a++){var m=r[a],_=c[a];i&&i(e,_,!0),WL(m,_,v)}return function(t,e){if(ZL(t))return void qL(t,e);var n=t;qL(n,e),n.__oldAddSelfToZr=t.addSelfToZr,n.__oldRemoveSelfFromZr=t.removeSelfFromZr,n.addSelfToZr=KL,n.removeSelfFromZr=JL,n.__oldBuildPath=n.buildPath,n.buildPath=pt,n.childrenRef=QL}(e,c),{fromIndividuals:r,toIndividuals:c,count:o}}}function qL(t,e){if(t.__combiningSubList!==e){if($L(t,"removeSelfFromZr"),t.__combiningSubList=e,e)for(var n=0;n<e.length;n++)e[n].parent=t;$L(t,"addSelfToZr")}}function KL(t){this.__oldAddSelfToZr(t),$L(this,"addSelfToZr")}function $L(t,e){var n=t.__combiningSubList,i=t.__zr;if(n&&i)for(var r=0;r<n.length;r++){n[r][e](i)}}function JL(t){this.__oldRemoveSelfFromZr(t);for(var e=this.__combiningSubList,n=0;n<e.length;n++){e[n].removeSelfFromZr(t)}}function QL(){return this.__combiningSubList}function tk(t,e,n){return"duplicate"===n?ek(t,e):function(t,e){var n=[];if(e<=0)return n;if(1===e)return ek(t,e);if(t instanceof Xa)for(var i=(c=t.shape).height>c.width?1:0,r=RL[i],o=OL[i],a=c[r]/e,s=c[o],l=0;l<e;l++,s+=a){var u={x:c.x,y:c.y,width:c.width,height:c.height};u[o]=s,u[r]=l<e-1?a:c[o]+c[r]-s;var h=new Xa({shape:u});n.push(h)}else{if(!(t instanceof Ml))return ek(t,e);var c,p=(c=t.shape).clockwise,d=c.startAngle,f=c.endAngle,g=(function(t,e,n){return e+PL*Math[n?"ceil":"floor"]((t-e)/PL)}(d,c.endAngle,p)-d)/e,y=d;for(l=0;l<e;l++,y+=g){h=new Ml({shape:{cx:c.cx,cy:c.cy,r:c.r,r0:c.r0,clockwise:p,startAngle:y,endAngle:l===e-1?f:y+g}});n.push(h)}}return n}(t,e)}function ek(t,e){var n=[];if(e<=0)return n;for(var i=t.constructor,r=0;r<e;r++){var o=new i({shape:b(t.shape)});n.push(o)}return n}var nk=_r(),ik={x:1,y:1,scaleX:1,scaleY:1,originX:1,originY:1,rotation:1},rk=(E(ik).join(", "),{color:"fill",borderColor:"stroke"}),ok={symbol:1,symbolSize:1,symbolKeepAspect:1,legendSymbol:1,visualMeta:1,liftZ:1,decal:1},ak="normal",sk=["normal","emphasis","blur","select"],lk={normal:["itemStyle"],emphasis:["emphasis","itemStyle"],blur:["blur","itemStyle"],select:["select","itemStyle"]},uk={normal:["label"],emphasis:["emphasis","label"],blur:["blur","label"],select:["select","label"]},hk={normal:{},emphasis:{},blur:{},select:{}},ck={position:["x","y"],scale:["scaleX","scaleY"],origin:["originX","originY"]},pk=new Ce,dk={cartesian2d:function(t){var e=t.master.getRect();return{coordSys:{type:"cartesian2d",x:e.x,y:e.y,width:e.width,height:e.height},api:{coord:function(e){return t.dataToPoint(e)},size:z(wL,t)}}},geo:function(t){var e=t.getBoundingRect();return{coordSys:{type:"geo",x:e.x,y:e.y,width:e.width,height:e.height,zoom:t.getZoom()},api:{coord:function(e){return t.dataToPoint(e)},size:z(SL,t)}}},singleAxis:function(t){var e=t.getRect();return{coordSys:{type:"singleAxis",x:e.x,y:e.y,width:e.width,height:e.height},api:{coord:function(e){return t.dataToPoint(e)},size:z(ML,t)}}},polar:function(t){var e=t.getRadiusAxis(),n=t.getAngleAxis(),i=e.getExtent();return i[0]>i[1]&&i.reverse(),{coordSys:{type:"polar",cx:t.cx,cy:t.cy,r:i[1],r0:i[0]},api:{coord:function(i){var r=e.dataToRadius(i[0]),o=n.dataToAngle(i[1]),a=t.coordToPoint([r,o]);return a.push(r,o*Math.PI/180),a},size:z(IL,t)}}},calendar:function(t){var e=t.getRect(),n=t.getRangeInfo();return{coordSys:{type:"calendar",x:e.x,y:e.y,width:e.width,height:e.height,cellWidth:t.getCellWidth(),cellHeight:t.getCellHeight(),rangeInfo:{start:n.start,end:n.end,weeks:n.weeks,dayCount:n.allDay}},api:{coord:function(e,n){return t.dataToPoint(e,n)}}}}},fk=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.optionUpdated=function(){this.currentZLevel=this.get("zlevel",!0),this.currentZ=this.get("z",!0)},n.prototype.getInitialData=function(t,e){return lm(this.getSource(),this)},n.prototype.getDataParams=function(e,n,i){var r=t.prototype.getDataParams.call(this,e,n);return i&&(r.info=nk(i).info),r},n.type="series.custom",n.dependencies=["grid","polar","geo","singleAxis","calendar"],n.defaultOption={coordinateSystem:"cartesian2d",zlevel:0,z:2,legendHoverLink:!0,clip:!1},n}(bd),gk=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n,i){var r=this._data,o=t.getData(),a=this.group,s=Nk(t,o,e,n),l=t.__transientTransitionOpt;if(!l||null!=l.from&&null!=l.to){var u=new Kk(t,l),h=l?"multiple":"oneToOne";new Iv(r?r.getIndices():[],o.getIndices(),yk(r,h,l&&l.from),yk(o,h,l&&l.to),null,h).add((function(e){zk(n,null,e,s(e,i),t,a,o,null)})).remove((function(e){Uk(r.getItemGraphicEl(e),t,a)})).update((function(e,l){u.reset("oneToOne");var h=r.getItemGraphicEl(l);u.findAndAddFrom(h),u.hasFrom()&&(qk(h,a),h=null),zk(n,h,e,s(e,i),t,a,o,u),u.applyMorphing()})).updateManyToOne((function(e,l){u.reset("manyToOne");for(var h=0;h<l.length;h++){var c=r.getItemGraphicEl(l[h]);u.findAndAddFrom(c),qk(c,a)}zk(n,null,e,s(e,i),t,a,o,u),u.applyMorphing()})).updateOneToMany((function(e,l){u.reset("oneToMany");var h=e.length,c=r.getItemGraphicEl(l);u.findAndAddFrom(c),qk(c,a);for(var p=0;p<h;p++)zk(n,null,e[p],s(e[p],i),t,a,o,u);u.applyMorphing()})).execute()}else r&&r.each((function(e){Uk(r.getItemGraphicEl(e),t,a)})),o.each((function(e){zk(n,null,e,s(e,i),t,a,o,null)}));var c=t.get("clip",!0)?ab(t.coordinateSystem,!1,t):null;c?a.setClipPath(c):a.removeClipPath(),this._data=o},n.prototype.incrementalPrepareRender=function(t,e,n){this.group.removeAll(),this._data=null},n.prototype.incrementalRender=function(t,e,n,i,r){var o=e.getData(),a=Nk(e,o,n,i);function s(t){t.isGroup||(t.incremental=!0,t.ensureState("emphasis").hoverLayer=!0)}for(var l=t.start;l<t.end;l++){zk(null,null,l,a(l,r),e,this.group,o,null).traverse(s)}},n.prototype.filterForExposedEvent=function(t,e,n,i){var r=e.element;if(null==r||n.name===r)return!0;for(;(n=n.__hostTarget||n.parent)&&n!==this.group;)if(n.name===r)return!0;return!1},n.type="custom",n}(Od);function yk(t,e,n){if(t){if("oneToOne"===e)return function(e,n){return t.getId(n)};var i=t.getDimension(n),r=t.getDimensionInfo(i);if(!r){var o="";0,sr(o)}var a=r.ordinalMeta;return function(e,n){var r=t.get(i,n);return a&&(r=a.categories[r]),null==r||$(r)?e+"":"_ec_"+r}}}function vk(t){var e,n=t.type;if("path"===n){var i=t.shape,r=null!=i.width&&null!=i.height?{x:i.x||0,y:i.y||0,width:i.width,height:i.height}:null,o=Zk(i);e=su(o,null,r,i.layout||"center"),nk(e).customPathData=o}else if("image"===n)e=new Ba({}),nk(e).customImagePath=t.style.image;else if("text"===n)e=new ja({});else if("group"===n)e=new Li;else{if("compoundPath"===n)throw new Error('"compoundPath" is not supported yet.');var a=au(n);if(!a){var s="";0,sr(s)}e=new a}return nk(e).customGraphicType=n,e.name=t.name,e.z2EmphasisLift=1,e.z2SelectLift=1,e}function mk(t,e,n,i,r,o,a,s,l,u){var h={},c={},p=e.isGroup?null:e;!n&&bk("shape",e,null,r,h,l),wk("shape",r,c),!n&&bk("extra",e,null,r,h,l),wk("extra",r,c),!n&&Sk(e,null,r,h,l),function(t,e){Pk(t,e,"position"),Pk(t,e,"scale"),Pk(t,e,"origin"),Ok(t,e,"x"),Ok(t,e,"y"),Ok(t,e,"scaleX"),Ok(t,e,"scaleY"),Ok(t,e,"originX"),Ok(t,e,"originY"),Ok(t,e,"rotation")}(r,c);var d=a&&a.normal.cfg;if(d&&e.setTextConfig(d),"text"===e.type&&o){var f=o;ct(f,"textFill")&&(f.fill=f.textFill),ct(f,"textStroke")&&(f.stroke=f.textStroke)}if(o){var g=void 0,y=jk(e)?o.decal:null;t&&y&&(y.dirty=!0,g=Xg(y,t)),o.__decalPattern=g}return!n&&Mk(e,null,r,o,h,l),p&&ct(r,"invisible")&&(p.invisible=r.invisible),n||(_k(e,c,o),xk(e,i,r,s,h,l)),ct(r,"silent")&&(e.silent=r.silent),ct(r,"ignore")&&(e.ignore=r.ignore),u||ct(r,"info")&&(nk(e).info=r.info),o?e.dirty():e.markRedraw(),n?c:null}function _k(t,e,n){var i=t.isGroup?null:t;if(i&&n){var r=n.__decalPattern,o=void 0;r&&(o=n.decal,n.decal=r),i.useStyle(n),r&&(n.decal=o);for(var a=i.animators,s=0;s<a.length;s++){var l=a[s];"style"===l.targetName&&l.changeTarget(i.style)}}e&&t.attr(e)}function xk(t,e,n,i,r,o){if(r){var a=n.during;nk(t).userDuring=a;var s={dataIndex:e,isFrom:!0,during:a?z(Dk,{el:t,userDuring:a}):null};o?gu(t,r,i,s):fu(t,r,i,s)}}function bk(t,e,n,i,r,o){var a=i[t];if(a){var s,l=e[t],u=a.enterFrom;if(o&&u){!s&&(s=r[t]={});for(var h=E(u),c=0;c<h.length;c++){s[_=h[c]]=u[_]}}if(!o&&l&&(null==n||"shape"!==t))if(a.transition){!s&&(s=r[t]={});var p=lr(a.transition);for(c=0;c<p.length;c++){var d=l[_=p[c]];0,s[_]=d}}else if(C(i.transition,t)>=0){!s&&(s=r[t]={});var f=E(l);for(c=0;c<f.length;c++){d=l[_=f[c]];Ik(a[_],d)&&(s[_]=d)}}var g=a.leaveTo;if(g){var y=Tk(e),v=y[t]||(y[t]={}),m=E(g);for(c=0;c<m.length;c++){var _;v[_=m[c]]=g[_]}}}}function wk(t,e,n){var i=e[t];if(i)for(var r=n[t]={},o=E(i),a=0;a<o.length;a++){var s=o[a];r[s]=fn(i[s])}}function Sk(t,e,n,i,r){var o=n.enterFrom;if(r&&o)for(var a=E(o),s=0;s<a.length;s++){0,i[f=a[s]]=o[f]}if(!r)if(e){var l=function(t,e){if(!t||t===e||t.parent===e.parent)return t;var n=pk.transform||(pk.transform=pe([])),i=t.getComputedTransform();i?de(n,i):pe(n);var r=e.parent;r&&r.getComputedTransform();return pk.originX=t.originX,pk.originY=t.originY,pk.parent=r,pk.decomposeTransform(),pk}(e,t);Rk(i,"x",l),Rk(i,"y",l),Rk(i,"scaleX",l),Rk(i,"scaleY",l),Rk(i,"originX",l),Rk(i,"originY",l),Rk(i,"rotation",l)}else if(n.transition){var u=lr(n.transition);for(s=0;s<u.length;s++){if("style"!==(f=u[s])&&"shape"!==f&&"extra"!==f){var h=t[f];0,i[f]=h}}}else Rk(i,"x",t),Rk(i,"y",t);var c=n.leaveTo;if(c){var p=Tk(t),d=E(c);for(s=0;s<d.length;s++){var f;0,p[f=d[s]]=c[f]}}}function Mk(t,e,n,i,r,o){if(i){var a,s=(e||t).style,l=i.enterFrom;if(o&&l){var u=E(l);!a&&(a=r.style={});for(var h=0;h<u.length;h++){a[x=u[h]]=l[x]}}if(!o&&s)if(i.transition){var c=lr(i.transition);!a&&(a=r.style={});for(h=0;h<c.length;h++){var p=s[x=c[h]];a[x]=p}}else if(t.getAnimationStyleProps&&C(n.transition,"style")>=0){var d=t.getAnimationStyleProps(),f=d?d.style:null;if(f){!a&&(a=r.style={});var g=E(i);for(h=0;h<g.length;h++){if(f[x=g[h]]){p=s[x];a[x]=p}}}}var y=i.leaveTo;if(y){var v=E(y),m=Tk(t),_=m.style||(m.style={});for(h=0;h<v.length;h++){var x;_[x=v[h]]=y[x]}}}}function Ik(t,e){return L(t)?t!==e:null!=t&&isFinite(t)}function Tk(t){var e=nk(t);return e.leaveToProps||(e.leaveToProps={})}var Ck={},Ak={setTransform:function(t,e){return Ck.el[t]=e,this},getTransform:function(t){return Ck.el[t]},setShape:function(t,e){return(Ck.el.shape||(Ck.el.shape={}))[t]=e,Ck.isShapeDirty=!0,this},getShape:function(t){var e=Ck.el.shape;if(e)return e[t]},setStyle:function(t,e){var n=Ck.el.style;return n&&(n[t]=e,Ck.isStyleDirty=!0),this},getStyle:function(t){var e=Ck.el.style;if(e)return e[t]},setExtra:function(t,e){return(Ck.el.extra||(Ck.el.extra={}))[t]=e,this},getExtra:function(t){var e=Ck.el.extra;if(e)return e[t]}};function Dk(){var t=this,e=t.el;if(e){var n=nk(e).userDuring,i=t.userDuring;n===i?(Ck.el=e,Ck.isShapeDirty=!1,Ck.isStyleDirty=!1,i(Ak),Ck.isShapeDirty&&e.dirtyShape&&e.dirtyShape(),Ck.isStyleDirty&&e.dirtyStyle&&e.dirtyStyle()):t.el=t.userDuring=null}}function Lk(t,e,n,i,r,o,a){var s=e.isGroup?null:e,l=r&&r[t].cfg;if(s){var u=s.ensureState(t);if(!1===i){var h=s.getState(t);h&&(h.style=null)}else u.style=i||null;l&&(u.textConfig=l),ws(s)}}function kk(t,e,n){var i="normal"===n,r=i?e:Gk(e,n),o=r?r.z2:null;null!=o&&((i?t:t.ensureState(n)).z2=o||0)}function Pk(t,e,n,i){var r=t[n],o=ck[n];r&&(i?(e[o[0]]=i[o[0]],e[o[1]]=i[o[1]]):(e[o[0]]=r[0],e[o[1]]=r[1]))}function Ok(t,e,n,i){null!=t[n]&&(e[n]=i?i[n]:t[n])}function Rk(t,e,n){n&&(t[e]=n[e])}function Nk(t,e,n,i){var r=t.get("renderItem"),o=t.coordinateSystem,a={};o&&(a=o.prepareCustoms?o.prepareCustoms(o):dk[o.type](o));for(var s,l,u=I({getWidth:i.getWidth,getHeight:i.getHeight,getZr:i.getZr,getDevicePixelRatio:i.getDevicePixelRatio,value:function(t,n){return null==n&&(n=s),e.get(e.getDimension(t||0),n)},style:function(n,i){0;null==i&&(i=s);var r=e.getItemVisual(i,"style"),o=r&&r.fill,a=r&&r.opacity,l=m(i,"normal").getItemStyle();null!=o&&(l.fill=o),null!=a&&(l.opacity=a);var u={inheritColor:G(o)?o:"#000"},h=_(i,"normal"),c=zu(h,null,u,!1,!0);c.text=h.getShallow("show")?Q(t.getFormattedLabel(i,"normal"),zx(e,i)):null;var p=Bu(h,u,!1);return b(n,l),l=DL(l,c,p),n&&x(l,n),l.legacy=!0,l},ordinalRawValue:function(t,n){null==n&&(n=s);var i=e.getDimensionInfo(t||0);if(!i)return;var r=e.get(i.name,n),o=i&&i.ordinalMeta;return o?o.categories[r]:r},styleEmphasis:function(n,i){0;null==i&&(i=s);var r=m(i,"emphasis").getItemStyle(),o=_(i,"emphasis"),a=zu(o,null,null,!0,!0);a.text=o.getShallow("show")?tt(t.getFormattedLabel(i,"emphasis"),t.getFormattedLabel(i,"normal"),zx(e,i)):null;var l=Bu(o,null,!0);return b(n,r),r=DL(r,a,l),n&&x(r,n),r.legacy=!0,r},visual:function(t,n){if(null==n&&(n=s),ct(rk,t)){var i=e.getItemVisual(n,"style");return i?i[rk[t]]:null}if(ct(ok,t))return e.getItemVisual(n,t)},barLayout:function(t){if("cartesian2d"===o.type){return function(t){var e=[],n=t.axis,i="axis0";if("category"===n.type){for(var r=n.getBandWidth(),o=0;o<t.count;o++)e.push(I({bandWidth:r,axisKey:i,stackId:"__ec_stack_"+o},t));var a=Cm(e),s=[];for(o=0;o<t.count;o++){var l=a.axis0["__ec_stack_"+o];l.offsetCenter=l.offset+l.width/2,s.push(l)}return s}}(I({axis:o.getBaseAxis()},t))}},currentSeriesIndices:function(){return n.getCurrentSeriesIndices()},font:function(t){return Wu(t,n)}},a.api||{}),h={context:{},seriesId:t.id,seriesName:t.name,seriesIndex:t.seriesIndex,coordSys:a.coordSys,dataInsideLength:e.count(),encode:Ek(t.getData())},c={},p={},d={},f={},g=0;g<sk.length;g++){var y=sk[g];d[y]=t.getModel(lk[y]),f[y]=t.getModel(uk[y])}function v(t){return t===s?l||(l=e.getItemModel(t)):e.getItemModel(t)}function m(t,n){return e.hasItemOption?t===s?c[n]||(c[n]=v(t).getModel(lk[n])):v(t).getModel(lk[n]):d[n]}function _(t,n){return e.hasItemOption?t===s?p[n]||(p[n]=v(t).getModel(uk[n])):v(t).getModel(uk[n]):f[n]}return function(t,n){return s=t,l=null,c={},p={},r&&r(I({dataIndexInside:t,dataIndex:e.getRawIndex(t),actionType:n?n.type:null},h),u)};function x(t,e){for(var n in e)ct(e,n)&&(t[n]=e[n])}function b(t,e){t&&(t.textFill&&(e.textFill=t.textFill),t.textPosition&&(e.textPosition=t.textPosition))}}function Ek(t){var e={};return k(t.dimensions,(function(n,i){var r=t.getDimensionInfo(n);if(!r.isExtraCoord){var o=r.coordDim;(e[o]=e[o]||[])[r.coordDimIndex]=i}})),e}function zk(t,e,n,i,r,o,a,s){if(i)return(e=Bk(t,e,n,i,r,o,!0,s))&&a.setItemGraphicEl(n,e),Os(e,i.focus,i.blurScope),e;qk(e,o)}function Bk(t,e,n,i,r,o,a,s){var l=-1;e&&Vk(e,i)&&(l=o.childrenRef().indexOf(e),e=null);var u=!e;e?e.clearStates():e=vk(i);var h=(nk(e).canMorph=i.morph&&jk(e))&&s&&s.hasFrom(),c=u&&!h;hk.normal.cfg=hk.normal.conOpt=hk.emphasis.cfg=hk.emphasis.conOpt=hk.blur.cfg=hk.blur.conOpt=hk.select.cfg=hk.select.conOpt=null,hk.isLegacy=!1,function(t,e,n,i,r,o){if(t.isGroup)return;Fk(n,null,o),Fk(n,"emphasis",o);var a=o.normal.conOpt,s=o.emphasis.conOpt,l=o.blur.conOpt,u=o.select.conOpt;if(null!=a||null!=s||null!=u||null!=l){var h=t.getTextContent();if(!1===a)h&&t.removeTextContent();else{a=o.normal.conOpt=a||{type:"text"},h?h.clearStates():(h=vk(a),t.setTextContent(h));var c=a&&a.style;mk(null,h,null,e,a,c,null,i,r,!0);for(var p=0;p<sk.length;p++){var d=sk[p];if(d!==ak){var f=o[d].conOpt;Lk(d,h,0,Hk(a,f,d),null)}}c?h.dirty():h.markRedraw()}}}(e,n,i,r,c,hk),function(t,e,n,i,r){var o=n.clipPath;if(!1===o)t&&t.getClipPath()&&t.removeClipPath();else if(o){var a=t.getClipPath();a&&Vk(a,o)&&(a=null),a||(a=vk(o),t.setClipPath(a)),mk(null,a,null,e,o,null,null,i,r,!1)}}(e,n,i,r,c);var p=mk(t,e,h,n,i,i.style,hk,r,c,!1);h&&s.addTo(e,i,n,p);for(var d=0;d<sk.length;d++){var f=sk[d];if(f!==ak){var g=Gk(i,f);Lk(f,e,0,Hk(i,g,f),hk)}}return function(t,e,n,i){if(!t.isGroup){var r=t,o=n.currentZ,a=n.currentZLevel;r.z=o,r.zlevel=a;var s=e.z2;null!=s&&(r.z2=s||0);for(var l=0;l<sk.length;l++)kk(r,e,sk[l])}}(e,i,r),"group"===i.type&&function(t,e,n,i,r,o){var a=i.children,s=a?a.length:0,l=i.$mergeChildren,u="byName"===l||i.diffChildrenByName,h=!1===l;if(!s&&!u&&!h)return;if(u)return c={api:t,oldChildren:e.children()||[],newChildren:a||[],dataIndex:n,seriesModel:r,group:e,morphPreparation:o},void new Iv(c.oldChildren,c.newChildren,Wk,Wk,c).add(Yk).update(Yk).remove(Xk).execute();var c;h&&e.removeAll();for(var p=0;p<s;p++)a[p]&&Bk(t,e.childAt(p),n,a[p],r,e,!1,o);for(var d=e.childCount()-1;d>=p;d--)Uk(e.childAt(d),r,e)}(t,e,n,i,r,s),l>=0?o.replaceAt(e,l):o.add(e),e}function Vk(t,e){var n,i=nk(t),r=e.type,o=e.shape,a=e.style;return null!=r&&r!==i.customGraphicType||"path"===r&&((n=o)&&(ct(n,"pathData")||ct(n,"d")))&&Zk(o)!==i.customPathData||"image"===r&&ct(a,"image")&&a.image!==i.customImagePath}function Fk(t,e,n){var i=e?Gk(t,e):t,r=e?Hk(t,i,"emphasis"):t.style,o=t.type,a=i?i.textConfig:null,s=t.textContent,l=s?e?Gk(s,e):s:null;if(r&&(n.isLegacy||TL(r,o,!!a,!!l))){n.isLegacy=!0;var u=CL(r,o,!e);!a&&u.textConfig&&(a=u.textConfig),!l&&u.textContent&&(l=u.textContent)}if(!e&&l){var h=l;!h.type&&(h.type="text")}var c=e?n[e]:n.normal;c.cfg=a,c.conOpt=l}function Gk(t,e){return e?t?t[e]:null:t}function Hk(t,e,n){var i=e&&e.style;return null==i&&"emphasis"===n&&t&&(i=t.styleEmphasis),i}function Wk(t,e){var n=t&&t.name;return null!=n?n:"e\0\0"+e}function Yk(t,e){var n=this.context,i=null!=t?n.newChildren[t]:null,r=null!=e?n.oldChildren[e]:null;Bk(n.api,r,n.dataIndex,i,n.seriesModel,n.group,0,n.morphPreparation)}function Xk(t){var e=this.context;Uk(e.oldChildren[t],e.seriesModel,e.group)}function Uk(t,e,n){if(t){var i=nk(t).leaveToProps;i?fu(t,i,e,{cb:function(){n.remove(t)}}):n.remove(t)}}function Zk(t){return t&&(t.pathData||t.d)}function jk(t){return t&&t instanceof Oa}function qk(t,e){t&&e.remove(t)}var Kk=function(){function t(t,e){this._fromList=[],this._toList=[],this._toElOptionList=[],this._allPropsFinalList=[],this._toDataIndices=[],this._morphConfigList=[],this._seriesModel=t,this._transOpt=e}return t.prototype.hasFrom=function(){return!!this._fromList.length},t.prototype.findAndAddFrom=function(t){if(t&&(nk(t).canMorph&&this._fromList.push(t),t.isGroup))for(var e=t.childrenRef(),n=0;n<e.length;n++)this.findAndAddFrom(e[n])},t.prototype.addTo=function(t,e,n,i){t&&(this._toList.push(t),this._toElOptionList.push(e),this._toDataIndices.push(n),this._allPropsFinalList.push(i))},t.prototype.applyMorphing=function(){var t=this._type,e=this._fromList,n=this._toList.length,i=e.length;if(i&&n)if("oneToOne"===t)for(var r=0;r<n;r++)this._oneToOneForSingleTo(r,r);else if("manyToOne"===t)for(var o=Math.max(1,Math.floor(i/n)),a=(r=0,0);r<n;r++,a+=o){var s=r+1>=n?i-a:o;this._manyToOneForSingleTo(r,a>=i?null:a,s)}else if("oneToMany"===t)for(var l=Math.max(1,Math.floor(n/i)),u=0,h=0;u<n;u+=l,h++){var c=u+l>=n?n-u:l;this._oneToManyForSingleFrom(u,c,h>=i?null:h)}},t.prototype._oneToOneForSingleTo=function(t,e){var n,i=this._toList[t],r=this._toElOptionList[t],o=this._toDataIndices[t],a=this._allPropsFinalList[t],s=this._fromList[e],l=this._getOrCreateMorphConfig(o),u=l.duration;if(s&&ZL(s)){if(_k(i,a,r.style),u){var h=jL([s],i,l,$k);this._processResultIndividuals(h,t,null)}}else{var c=u&&s&&(s!==i||(UL(n=s)||ZL(n)))?s:null,p={};bk("shape",i,c,r,p,!1),bk("extra",i,c,r,p,!1),Sk(i,c,r,p,!1),Mk(i,c,r,r.style,p,!1),_k(i,a,r.style),c&&WL(c,i,l),xk(i,o,r,this._seriesModel,p,!1)}},t.prototype._manyToOneForSingleTo=function(t,e,n){var i=this._toList[t],r=this._toElOptionList[t];_k(i,this._allPropsFinalList[t],r.style);var o=this._getOrCreateMorphConfig(this._toDataIndices[t]);if(o.duration&&null!=e){for(var a=[],s=e;s<n;s++)a.push(this._fromList[s]);var l=jL(a,i,o,$k);this._processResultIndividuals(l,t,null)}},t.prototype._oneToManyForSingleFrom=function(t,e,n){for(var i=null==n?null:this._fromList[n],r=this._toList,o=[],a=t;a<e;a++){var s=r[a];_k(s,this._allPropsFinalList[a],this._toElOptionList[a].style),o.push(s)}var l=this._getOrCreateMorphConfig(this._toDataIndices[t]);if(l.duration&&i){var u=function(t,e,n,i){var r,o=e.length,a=n?n.dividingMethod:null,s=!1;if(ZL(t)){var l=t.__combiningSubList;l.length===o?r=l:(r=tk(t,o,a),s=!0)}else r=tk(t,o,a),s=!0;it(r.length===o);for(var u=0;u<o;u++)s&&i&&i(t,r[u],!1),WL(r[u],e[u],n);return{fromIndividuals:r,toIndividuals:e,count:o}}(i,o,l,$k);this._processResultIndividuals(u,t,e)}},t.prototype._processResultIndividuals=function(t,e,n){for(var i=null!=n,r=0;r<t.count;r++){var o=t.fromIndividuals[r],a=t.toIndividuals[r],s=e+(i?r:0),l=this._toElOptionList[s],u=this._toDataIndices[s],h={};Sk(a,o,l,h,!1),Mk(a,o,l,l.style,h,!1),xk(a,u,l,this._seriesModel,h,!1)}},t.prototype._getOrCreateMorphConfig=function(t){var e,n,i,r=this._morphConfigList,o=r[t];if(o)return o;var a=this._seriesModel,s=this._transOpt;if(a.isAnimationEnabled()){var l=void 0;if(a&&a.ecModel){var u=a.ecModel.getUpdatePayload();l=u&&u.animation}if(l)e=l.duration||0,n=l.easing||"cubicOut",i=l.delay||0;else{n=a.get("animationEasingUpdate");var h=a.get("animationDelayUpdate");i=F(h)?h(t):h;var c=a.get("animationDurationUpdate");e=F(c)?c(t):c}}return o={duration:e||0,delay:i,easing:n,dividingMethod:s?s.dividingMethod:null},r[t]=o,o},t.prototype.reset=function(t){this._type=t,this._fromList.length=this._toList.length=this._toElOptionList.length=this._allPropsFinalList.length=this._toDataIndices.length=0},t}();function $k(t,e,n){e.style=n?b(t.style):t.style,e.zlevel=t.zlevel,e.z=t.z,e.z2=t.z2}var Jk=_r(),Qk=b,tP=z,eP=function(){function t(){this._dragging=!1,this.animationThreshold=15}return t.prototype.render=function(t,e,n,i){var r=e.get("value"),o=e.get("status");if(this._axisModel=t,this._axisPointerModel=e,this._api=n,i||this._lastValue!==r||this._lastStatus!==o){this._lastValue=r,this._lastStatus=o;var a=this._group,s=this._handle;if(!o||"hide"===o)return a&&a.hide(),void(s&&s.hide());a&&a.show(),s&&s.show();var l={};this.makeElOption(l,r,t,e,n);var u=l.graphicKey;u!==this._lastGraphicKey&&this.clear(n),this._lastGraphicKey=u;var h=this._moveAnimation=this.determineAnimation(t,e);if(a){var c=B(nP,e,h);this.updatePointerEl(a,l,c),this.updateLabelEl(a,l,c,e)}else a=this._group=new Li,this.createPointerEl(a,l,t,e),this.createLabelEl(a,l,t,e),n.getZr().add(a);aP(a,e,!0),this._renderHandle(r)}},t.prototype.remove=function(t){this.clear(t)},t.prototype.dispose=function(t){this.clear(t)},t.prototype.determineAnimation=function(t,e){var n=e.get("animation"),i=t.axis,r="category"===i.type,o=e.get("snap");if(!o&&!r)return!1;if("auto"===n||null==n){var a=this.animationThreshold;if(r&&i.getBandWidth()>a)return!0;if(o){var s=zw(t).seriesDataCount,l=i.getExtent();return Math.abs(l[0]-l[1])/s>a}return!1}return!0===n},t.prototype.makeElOption=function(t,e,n,i,r){},t.prototype.createPointerEl=function(t,e,n,i){var r=e.pointer;if(r){var o=Jk(t).pointerEl=new ku[r.type](Qk(e.pointer));t.add(o)}},t.prototype.createLabelEl=function(t,e,n,i){if(e.label){var r=Jk(t).labelEl=new ja(Qk(e.label));t.add(r),rP(r,i)}},t.prototype.updatePointerEl=function(t,e,n){var i=Jk(t).pointerEl;i&&e.pointer&&(i.setStyle(e.pointer.style),n(i,{shape:e.pointer.shape}))},t.prototype.updateLabelEl=function(t,e,n,i){var r=Jk(t).labelEl;r&&(r.setStyle(e.label.style),n(r,{x:e.label.x,y:e.label.y}),rP(r,i))},t.prototype._renderHandle=function(t){if(!this._dragging&&this.updateHandleTransform){var e,n=this._axisPointerModel,i=this._api.getZr(),r=this._handle,o=n.getModel("handle"),a=n.get("status");if(!o.get("show")||!a||"hide"===a)return r&&i.remove(r),void(this._handle=null);this._handle||(e=!0,r=this._handle=Cu(o.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(t){Qt(t.event)},onmousedown:tP(this._onHandleDragMove,this,0,0),drift:tP(this._onHandleDragMove,this),ondragend:tP(this._onHandleDragEnd,this)}),i.add(r)),aP(r,n,!1),r.setStyle(o.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var s=o.get("size");V(s)||(s=[s,s]),r.scaleX=s[0]/2,r.scaleY=s[1]/2,Hd(this,"_doDispatchAxisPointer",o.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,e)}},t.prototype._moveHandleToValue=function(t,e){nP(this._axisPointerModel,!e&&this._moveAnimation,this._handle,oP(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},t.prototype._onHandleDragMove=function(t,e){var n=this._handle;if(n){this._dragging=!0;var i=this.updateHandleTransform(oP(n),[t,e],this._axisModel,this._axisPointerModel);this._payloadInfo=i,n.stopAnimation(),n.attr(oP(i)),Jk(n).lastProp=null,this._doDispatchAxisPointer()}},t.prototype._doDispatchAxisPointer=function(){if(this._handle){var t=this._payloadInfo,e=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:t.cursorPoint[0],y:t.cursorPoint[1],tooltipOption:t.tooltipOption,axesInfo:[{axisDim:e.axis.dim,axisIndex:e.componentIndex}]})}},t.prototype._onHandleDragEnd=function(){if(this._dragging=!1,this._handle){var t=this._axisPointerModel.get("value");this._moveHandleToValue(t),this._api.dispatchAction({type:"hideTip"})}},t.prototype.clear=function(t){this._lastValue=null,this._lastStatus=null;var e=t.getZr(),n=this._group,i=this._handle;e&&n&&(this._lastGraphicKey=null,n&&e.remove(n),i&&e.remove(i),this._group=null,this._handle=null,this._payloadInfo=null)},t.prototype.doClear=function(){},t.prototype.buildLabel=function(t,e,n){return{x:t[n=n||0],y:t[1-n],width:e[n],height:e[1-n]}},t}();function nP(t,e,n,i){iP(Jk(n).lastProp,i)||(Jk(n).lastProp=i,e?fu(n,i,t):(n.stopAnimation(),n.attr(i)))}function iP(t,e){if(Y(t)&&Y(e)){var n=!0;return k(e,(function(e,i){n=n&&iP(t[i],e)})),!!n}return t===e}function rP(t,e){t[e.get(["label","show"])?"show":"hide"]()}function oP(t){return{x:t.x||0,y:t.y||0,rotation:t.rotation||0}}function aP(t,e,n){var i=e.get("z"),r=e.get("zlevel");t&&t.traverse((function(t){"group"!==t.type&&(null!=i&&(t.z=i),null!=r&&(t.zlevel=r),t.silent=n)}))}function sP(t){var e,n=t.get("type"),i=t.getModel(n+"Style");return"line"===n?(e=i.getLineStyle()).fill=null:"shadow"===n&&((e=i.getAreaStyle()).stroke=null),e}function lP(t,e,n,i,r){var o=uP(n.get("value"),e.axis,e.ecModel,n.get("seriesDataIndices"),{precision:n.get(["label","precision"]),formatter:n.get(["label","formatter"])}),a=n.getModel("label"),s=Bh(a.get("padding")||0),l=a.getFont(),u=En(o,l),h=r.position,c=u.width+s[1]+s[3],p=u.height+s[0]+s[2],d=r.align;"right"===d&&(h[0]-=c),"center"===d&&(h[0]-=c/2);var f=r.verticalAlign;"bottom"===f&&(h[1]-=p),"middle"===f&&(h[1]-=p/2),function(t,e,n,i){var r=i.getWidth(),o=i.getHeight();t[0]=Math.min(t[0]+e,r)-e,t[1]=Math.min(t[1]+n,o)-n,t[0]=Math.max(t[0],0),t[1]=Math.max(t[1],0)}(h,c,p,i);var g=a.get("backgroundColor");g&&"auto"!==g||(g=e.get(["axisLine","lineStyle","color"])),t.label={x:h[0],y:h[1],style:zu(a,{text:o,font:l,fill:a.getTextColor(),padding:s,backgroundColor:g}),z2:10}}function uP(t,e,n,i,r){t=e.scale.parse(t);var o=e.scale.getLabel({value:t},{precision:r.precision}),a=r.formatter;if(a){var s={value:l_(e,{value:t}),axisDimension:e.dim,axisIndex:e.index,seriesData:[]};k(i,(function(t){var e=n.getSeriesByIndex(t.seriesIndex),i=t.dataIndexInside,r=e&&e.getDataParams(i);r&&s.seriesData.push(r)})),G(a)?o=a.replace("{value}",o):F(a)&&(o=a(s))}return o}function hP(t,e,n){var i=[1,0,0,1,0,0];return ye(i,i,n.rotation),ge(i,i,n.position),bu([t.dataToCoord(e),(n.labelOffset||0)+(n.labelDirection||1)*(n.labelMargin||0)],i)}function cP(t,e,n,i,r,o){var a=Aw.innerTextLayout(n.rotation,0,n.labelDirection);n.labelMargin=r.get(["label","margin"]),lP(e,i,r,o,{position:hP(i.axis,t,n),align:a.textAlign,verticalAlign:a.textVerticalAlign})}function pP(t,e,n){return{x1:t[n=n||0],y1:t[1-n],x2:e[n],y2:e[1-n]}}function dP(t,e,n){return{x:t[n=n||0],y:t[1-n],width:e[n],height:e[1-n]}}function fP(t,e,n,i,r,o){return{cx:t,cy:e,r0:n,r:i,startAngle:r,endAngle:o,clockwise:!0}}var gP=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.makeElOption=function(t,e,n,i,r){var o=n.axis,a=o.grid,s=i.get("type"),l=yP(a,o).getOtherAxis(o).getGlobalExtent(),u=o.toGlobalCoord(o.dataToCoord(e,!0));if(s&&"none"!==s){var h=sP(i),c=vP[s](o,u,l);c.style=h,t.graphicKey=c.type,t.pointer=c}cP(e,t,xw(a.model,n),n,i,r)},n.prototype.getHandleTransform=function(t,e,n){var i=xw(e.axis.grid.model,e,{labelInside:!1});i.labelMargin=n.get(["handle","margin"]);var r=hP(e.axis,t,i);return{x:r[0],y:r[1],rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},n.prototype.updateHandleTransform=function(t,e,n,i){var r=n.axis,o=r.grid,a=r.getGlobalExtent(!0),s=yP(o,r).getOtherAxis(r).getGlobalExtent(),l="x"===r.dim?0:1,u=[t.x,t.y];u[l]+=e[l],u[l]=Math.min(a[1],u[l]),u[l]=Math.max(a[0],u[l]);var h=(s[1]+s[0])/2,c=[h,h];c[l]=u[l];return{x:u[0],y:u[1],rotation:t.rotation,cursorPoint:c,tooltipOption:[{verticalAlign:"middle"},{align:"center"}][l]}},n}(eP);function yP(t,e){var n={};return n[e.dim+"AxisIndex"]=e.index,t.getCartesian(n)}var vP={line:function(t,e,n){return{type:"Line",subPixelOptimize:!0,shape:pP([e,n[0]],[e,n[1]],mP(t))}},shadow:function(t,e,n){var i=Math.max(1,t.getBandWidth()),r=n[1]-n[0];return{type:"Rect",shape:dP([e-i/2,n[0]],[i,r],mP(t))}}};function mP(t){return"x"===t.dim?0:1}var _P=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.type="axisPointer",n.defaultOption={show:"auto",zlevel:0,z:50,type:"line",snap:!1,triggerTooltip:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#B9BEC9",width:1,type:"dashed"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}},n}(sc),xP=_r(),bP=k;function wP(t,e,n){if(!o.node){var i=e.getZr();xP(i).records||(xP(i).records={}),function(t,e){if(xP(t).initialized)return;function n(n,i){t.on(n,(function(n){var r=function(t){var e={showTip:[],hideTip:[]},n=function(i){var r=e[i.type];r?r.push(i):(i.dispatchAction=n,t.dispatchAction(i))};return{dispatchAction:n,pendings:e}}(e);bP(xP(t).records,(function(t){t&&i(t,n,r.dispatchAction)})),function(t,e){var n,i=t.showTip.length,r=t.hideTip.length;i?n=t.showTip[i-1]:r&&(n=t.hideTip[r-1]);n&&(n.dispatchAction=null,e.dispatchAction(n))}(r.pendings,e)}))}xP(t).initialized=!0,n("click",B(MP,"click")),n("mousemove",B(MP,"mousemove")),n("globalout",SP)}(i,e),(xP(i).records[t]||(xP(i).records[t]={})).handler=n}}function SP(t,e,n){t.handler("leave",null,n)}function MP(t,e,n,i){e.handler(t,n,i)}function IP(t,e){if(!o.node){var n=e.getZr();(xP(n).records||{})[t]&&(xP(n).records[t]=null)}}var TP=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n){var i=e.getComponent("tooltip"),r=t.get("triggerOn")||i&&i.get("triggerOn")||"mousemove|click";wP("axisPointer",n,(function(t,e,n){"none"!==r&&("leave"===t||r.indexOf(t)>=0)&&n({type:"updateAxisPointer",currTrigger:t,x:e&&e.offsetX,y:e&&e.offsetY})}))},n.prototype.remove=function(t,e){IP("axisPointer",e)},n.prototype.dispose=function(t,e){IP("axisPointer",e)},n.type="axisPointer",n}(Dd);function CP(t,e){var n,i=[],r=t.seriesIndex;if(null==r||!(n=e.getSeriesByIndex(r)))return{point:[]};var o=n.getData(),a=mr(o,t);if(null==a||a<0||V(a))return{point:[]};var s=o.getItemGraphicEl(a),l=n.coordinateSystem;if(n.getTooltipPosition)i=n.getTooltipPosition(a)||[];else if(l&&l.dataToPoint)if(t.isStacked){var u=l.getBaseAxis(),h=l.getOtherAxis(u).dim,c=u.dim,p="x"===h||"radius"===h?1:0,d=o.mapDimension(c),f=[];f[p]=o.get(d,a),f[1-p]=o.get(o.getCalculationInfo("stackResultDimension"),a),i=l.dataToPoint(f)||[]}else i=l.dataToPoint(o.getValues(P(l.dimensions,(function(t){return o.mapDimension(t)})),a))||[];else if(s){var g=s.getBoundingRect().clone();g.applyTransform(s.transform),i=[g.x+g.width/2,g.y+g.height/2]}return{point:i,el:s}}var AP=_r();function DP(t,e,n){var i=t.currTrigger,r=[t.x,t.y],o=t,a=t.dispatchAction||z(n.dispatchAction,n),s=e.getComponent("axisPointer").coordSysAxesInfo;if(s){RP(r)&&(r=CP({seriesIndex:o.seriesIndex,dataIndex:o.dataIndex},e).point);var l=RP(r),u=o.axesInfo,h=s.axesInfo,c="leave"===i||RP(r),p={},d={},f={list:[],map:{}},g={showPointer:B(kP,d),showTooltip:B(PP,f)};k(s.coordSysMap,(function(t,e){var n=l||t.containPoint(r);k(s.coordSysAxesInfo[e],(function(t,e){var i=t.axis,o=function(t,e){for(var n=0;n<(t||[]).length;n++){var i=t[n];if(e.axis.dim===i.axisDim&&e.axis.model.componentIndex===i.axisIndex)return i}}(u,t);if(!c&&n&&(!u||o)){var a=o&&o.value;null!=a||l||(a=i.pointToData(r)),null!=a&&LP(t,a,g,!1,p)}}))}));var y={};return k(h,(function(t,e){var n=t.linkGroup;n&&!d[e]&&k(n.axesInfo,(function(e,i){var r=d[i];if(e!==t&&r){var o=r.value;n.mapper&&(o=t.axis.scale.parse(n.mapper(o,OP(e),OP(t)))),y[t.key]=o}}))})),k(y,(function(t,e){LP(h[e],t,g,!0,p)})),function(t,e,n){var i=n.axesInfo=[];k(e,(function(e,n){var r=e.axisPointerModel.option,o=t[n];o?(!e.useHandle&&(r.status="show"),r.value=o.value,r.seriesDataIndices=(o.payloadBatch||[]).slice()):!e.useHandle&&(r.status="hide"),"show"===r.status&&i.push({axisDim:e.axis.dim,axisIndex:e.axis.model.componentIndex,value:r.value})}))}(d,h,p),function(t,e,n,i){if(RP(e)||!t.list.length)return void i({type:"hideTip"});var r=((t.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};i({type:"showTip",escapeConnect:!0,x:e[0],y:e[1],tooltipOption:n.tooltipOption,position:n.position,dataIndexInside:r.dataIndexInside,dataIndex:r.dataIndex,seriesIndex:r.seriesIndex,dataByCoordSys:t.list})}(f,r,t,a),function(t,e,n){var i=n.getZr(),r="axisPointerLastHighlights",o=AP(i)[r]||{},a=AP(i)[r]={};k(t,(function(t,e){var n=t.axisPointerModel.option;"show"===n.status&&k(n.seriesDataIndices,(function(t){var e=t.seriesIndex+" | "+t.dataIndex;a[e]=t}))}));var s=[],l=[];k(o,(function(t,e){!a[e]&&l.push(t)})),k(a,(function(t,e){!o[e]&&s.push(t)})),l.length&&n.dispatchAction({type:"downplay",escapeConnect:!0,notBlur:!0,batch:l}),s.length&&n.dispatchAction({type:"highlight",escapeConnect:!0,notBlur:!0,batch:s})}(h,0,n),p}}function LP(t,e,n,i,r){var o=t.axis;if(!o.scale.isBlank()&&o.containData(e))if(t.involveSeries){var a=function(t,e){var n=e.axis,i=n.dim,r=t,o=[],a=Number.MAX_VALUE,s=-1;return k(e.seriesModels,(function(e,l){var u,h,c=e.getData().mapDimensionsAll(i);if(e.getAxisTooltipData){var p=e.getAxisTooltipData(c,t,n);h=p.dataIndices,u=p.nestestValue}else{if(!(h=e.getData().indicesOfNearest(c[0],t,"category"===n.type?.5:null)).length)return;u=e.getData().get(c[0],h[0])}if(null!=u&&isFinite(u)){var d=t-u,f=Math.abs(d);f<=a&&((f<a||d>=0&&s<0)&&(a=f,s=d,r=u,o.length=0),k(h,(function(t){o.push({seriesIndex:e.seriesIndex,dataIndexInside:t,dataIndex:e.getData().getRawIndex(t)})})))}})),{payloadBatch:o,snapToValue:r}}(e,t),s=a.payloadBatch,l=a.snapToValue;s[0]&&null==r.seriesIndex&&M(r,s[0]),!i&&t.snap&&o.containData(l)&&null!=l&&(e=l),n.showPointer(t,e,s),n.showTooltip(t,a,l)}else n.showPointer(t,e)}function kP(t,e,n,i){t[e.key]={value:n,payloadBatch:i}}function PP(t,e,n,i){var r=n.payloadBatch,o=e.axis,a=o.model,s=e.axisPointerModel;if(e.triggerTooltip&&r.length){var l=e.coordSys.model,u=Vw(l),h=t.map[u];h||(h=t.map[u]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},t.list.push(h)),h.dataByAxis.push({axisDim:o.dim,axisIndex:a.componentIndex,axisType:a.type,axisId:a.id,value:i,valueLabelOpt:{precision:s.get(["label","precision"]),formatter:s.get(["label","formatter"])},seriesDataIndices:r.slice()})}}function OP(t){var e=t.axis.model,n={},i=n.axisDim=t.axis.dim;return n.axisIndex=n[i+"AxisIndex"]=e.componentIndex,n.axisName=n[i+"AxisName"]=e.name,n.axisId=n[i+"AxisId"]=e.id,n}function RP(t){return!t||null==t[0]||isNaN(t[0])||null==t[1]||isNaN(t[1])}function NP(t){Gw.registerAxisPointerClass("CartesianAxisPointer",gP),t.registerComponentModel(_P),t.registerComponentView(TP),t.registerPreprocessor((function(t){if(t){(!t.axisPointer||0===t.axisPointer.length)&&(t.axisPointer={});var e=t.axisPointer.link;e&&!V(e)&&(t.axisPointer.link=[e])}})),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,(function(t,e){t.getComponent("axisPointer").coordSysAxesInfo=Rw(t,e)})),t.registerAction({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},DP)}var EP=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.makeElOption=function(t,e,n,i,r){var o=n.axis;"angle"===o.dim&&(this.animationThreshold=Math.PI/18);var a=o.polar,s=a.getOtherAxis(o).getExtent(),l=o.dataToCoord(e),u=i.get("type");if(u&&"none"!==u){var h=sP(i),c=zP[u](o,a,l,s);c.style=h,t.graphicKey=c.type,t.pointer=c}var p=function(t,e,n,i,r){var o=e.axis,a=o.dataToCoord(t),s=i.getAngleAxis().getExtent()[0];s=s/180*Math.PI;var l,u,h,c=i.getRadiusAxis().getExtent();if("radius"===o.dim){var p=[1,0,0,1,0,0];ye(p,p,s),ge(p,p,[i.cx,i.cy]),l=bu([a,-r],p);var d=e.getModel("axisLabel").get("rotate")||0,f=Aw.innerTextLayout(s,d*Math.PI/180,-1);u=f.textAlign,h=f.textVerticalAlign}else{var g=c[1];l=i.coordToPoint([g+r,a]);var y=i.cx,v=i.cy;u=Math.abs(l[0]-y)/g<.3?"center":l[0]>y?"left":"right",h=Math.abs(l[1]-v)/g<.3?"middle":l[1]>v?"top":"bottom"}return{position:l,align:u,verticalAlign:h}}(e,n,0,a,i.get(["label","margin"]));lP(t,n,i,r,p)},n}(eP);var zP={line:function(t,e,n,i){return"angle"===t.dim?{type:"Line",shape:pP(e.coordToPoint([i[0],n]),e.coordToPoint([i[1],n]))}:{type:"Circle",shape:{cx:e.cx,cy:e.cy,r:n}}},shadow:function(t,e,n,i){var r=Math.max(1,t.getBandWidth()),o=Math.PI/180;return"angle"===t.dim?{type:"Sector",shape:fP(e.cx,e.cy,i[0],i[1],(-n-r/2)*o,(r/2-n)*o)}:{type:"Sector",shape:fP(e.cx,e.cy,n-r/2,n+r/2,0,2*Math.PI)}}},BP=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.findAxisModel=function(t){var e;return this.ecModel.eachComponent(t,(function(t){t.getCoordSysModel()===this&&(e=t)}),this),e},n.type="polar",n.dependencies=["radiusAxis","angleAxis"],n.defaultOption={zlevel:0,z:0,center:["50%","50%"],radius:"80%"},n}(sc),VP=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.getCoordSysModel=function(){return this.getReferringComponents("polar",wr).models[0]},n.type="polarAxis",n}(sc);D(VP,d_);var FP=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.type="angleAxis",n}(VP),GP=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.type="radiusAxis",n}(VP),HP=function(t){function n(e,n){return t.call(this,"radius",e,n)||this}return e(n,t),n.prototype.pointToData=function(t,e){return this.polar.pointToData(t,e)["radius"===this.dim?0:1]},n}(E_);HP.prototype.dataToRadius=E_.prototype.dataToCoord,HP.prototype.radiusToData=E_.prototype.coordToData;var WP=_r(),YP=function(t){function n(e,n){return t.call(this,"angle",e,n||[0,360])||this}return e(n,t),n.prototype.pointToData=function(t,e){return this.polar.pointToData(t,e)["radius"===this.dim?0:1]},n.prototype.calculateCategoryInterval=function(){var t=this,e=t.getLabelModel(),n=t.scale,i=n.getExtent(),r=n.count();if(i[1]-i[0]<1)return 0;var o=i[0],a=t.dataToCoord(o+1)-t.dataToCoord(o),s=Math.abs(a),l=En(null==o?"":o+"",e.getFont(),"center","top"),u=Math.max(l.height,7)/s;isNaN(u)&&(u=1/0);var h=Math.max(0,Math.floor(u)),c=WP(t.model),p=c.lastAutoInterval,d=c.lastTickCount;return null!=p&&null!=d&&Math.abs(p-h)<=1&&Math.abs(d-r)<=1&&p>h?h=p:(c.lastTickCount=r,c.lastAutoInterval=h),h},n}(E_);YP.prototype.dataToAngle=E_.prototype.dataToCoord,YP.prototype.angleToData=E_.prototype.coordToData;var XP=function(){function t(t){this.dimensions=["radius","angle"],this.type="polar",this.cx=0,this.cy=0,this._radiusAxis=new HP,this._angleAxis=new YP,this.axisPointerEnabled=!0,this.name=t||"",this._radiusAxis.polar=this._angleAxis.polar=this}return t.prototype.containPoint=function(t){var e=this.pointToCoord(t);return this._radiusAxis.contain(e[0])&&this._angleAxis.contain(e[1])},t.prototype.containData=function(t){return this._radiusAxis.containData(t[0])&&this._angleAxis.containData(t[1])},t.prototype.getAxis=function(t){return this["_"+t+"Axis"]},t.prototype.getAxes=function(){return[this._radiusAxis,this._angleAxis]},t.prototype.getAxesByScale=function(t){var e=[],n=this._angleAxis,i=this._radiusAxis;return n.scale.type===t&&e.push(n),i.scale.type===t&&e.push(i),e},t.prototype.getAngleAxis=function(){return this._angleAxis},t.prototype.getRadiusAxis=function(){return this._radiusAxis},t.prototype.getOtherAxis=function(t){var e=this._angleAxis;return t===e?this._radiusAxis:e},t.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAngleAxis()},t.prototype.getTooltipAxes=function(t){var e=null!=t&&"auto"!==t?this.getAxis(t):this.getBaseAxis();return{baseAxes:[e],otherAxes:[this.getOtherAxis(e)]}},t.prototype.dataToPoint=function(t,e){return this.coordToPoint([this._radiusAxis.dataToRadius(t[0],e),this._angleAxis.dataToAngle(t[1],e)])},t.prototype.pointToData=function(t,e){var n=this.pointToCoord(t);return[this._radiusAxis.radiusToData(n[0],e),this._angleAxis.angleToData(n[1],e)]},t.prototype.pointToCoord=function(t){var e=t[0]-this.cx,n=t[1]-this.cy,i=this.getAngleAxis(),r=i.getExtent(),o=Math.min(r[0],r[1]),a=Math.max(r[0],r[1]);i.inverse?o=a-360:a=o+360;var s=Math.sqrt(e*e+n*n);e/=s,n/=s;for(var l=Math.atan2(-n,e)/Math.PI*180,u=l<o?1:-1;l<o||l>a;)l+=360*u;return[s,l]},t.prototype.coordToPoint=function(t){var e=t[0],n=t[1]/180*Math.PI;return[Math.cos(n)*e+this.cx,-Math.sin(n)*e+this.cy]},t.prototype.getArea=function(){var t=this.getAngleAxis(),e=this.getRadiusAxis().getExtent().slice();e[0]>e[1]&&e.reverse();var n=t.getExtent(),i=Math.PI/180;return{cx:this.cx,cy:this.cy,r0:e[0],r:e[1],startAngle:-n[0]*i,endAngle:-n[1]*i,clockwise:t.inverse,contain:function(t,e){var n=t-this.cx,i=e-this.cy,r=n*n+i*i,o=this.r,a=this.r0;return r<=o*o&&r>=a*a}}},t.prototype.convertToPixel=function(t,e,n){return UP(e)===this?this.dataToPoint(n):null},t.prototype.convertFromPixel=function(t,e,n){return UP(e)===this?this.pointToData(n):null},t}();function UP(t){var e=t.seriesModel,n=t.polarModel;return n&&n.coordinateSystem||e&&e.coordinateSystem}function ZP(t,e){var n=this,i=n.getAngleAxis(),r=n.getRadiusAxis();if(i.scale.setExtent(1/0,-1/0),r.scale.setExtent(1/0,-1/0),t.eachSeries((function(t){if(t.coordinateSystem===n){var e=t.getData();k(p_(e,"radius"),(function(t){r.scale.unionExtentFromData(e,t)})),k(p_(e,"angle"),(function(t){i.scale.unionExtentFromData(e,t)}))}})),o_(i.scale,i.model),o_(r.scale,r.model),"category"===i.type&&!i.onBand){var o=i.getExtent(),a=360/i.scale.count();i.inverse?o[1]+=a:o[1]-=a,i.setExtent(o[0],o[1])}}function jP(t,e){if(t.type=e.get("type"),t.scale=a_(e),t.onBand=e.get("boundaryGap")&&"category"===t.type,t.inverse=e.get("inverse"),function(t){return"angleAxis"===t.mainType}(e)){t.inverse=t.inverse!==e.get("clockwise");var n=e.get("startAngle");t.setExtent(n,n+(t.inverse?-360:360))}e.axis=t,t.model=e}var qP={dimensions:XP.prototype.dimensions,create:function(t,e){var n=[];return t.eachComponent("polar",(function(t,i){var r=new XP(i+"");r.update=ZP;var o=r.getRadiusAxis(),a=r.getAngleAxis(),s=t.findAxisModel("radiusAxis"),l=t.findAxisModel("angleAxis");jP(o,s),jP(a,l),function(t,e,n){var i=e.get("center"),r=n.getWidth(),o=n.getHeight();t.cx=Vi(i[0],r),t.cy=Vi(i[1],o);var a=t.getRadiusAxis(),s=Math.min(r,o)/2,l=e.get("radius");null==l?l=[0,"100%"]:V(l)||(l=[0,l]);var u=[Vi(l[0],s),Vi(l[1],s)];a.inverse?a.setExtent(u[1],u[0]):a.setExtent(u[0],u[1])}(r,t,e),n.push(r),t.coordinateSystem=r,r.model=t})),t.eachSeries((function(t){if("polar"===t.get("coordinateSystem")){var e=t.getReferringComponents("polar",wr).models[0];0,t.coordinateSystem=e.coordinateSystem}})),n}},KP=["axisLine","axisLabel","axisTick","minorTick","splitLine","minorSplitLine","splitArea"];function $P(t,e,n){e[1]>e[0]&&(e=e.slice().reverse());var i=t.coordToPoint([e[0],n]),r=t.coordToPoint([e[1],n]);return{x1:i[0],y1:i[1],x2:r[0],y2:r[1]}}function JP(t){return t.getRadiusAxis().inverse?0:1}function QP(t){var e=t[0],n=t[t.length-1];e&&n&&Math.abs(Math.abs(e.coord-n.coord)-360)<1e-4&&t.pop()}var tO=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.axisPointerClass="PolarAxisPointer",e}return e(n,t),n.prototype.render=function(t,e){if(this.group.removeAll(),t.get("show")){var n=t.axis,i=n.polar,r=i.getRadiusAxis().getExtent(),o=n.getTicksCoords(),a=n.getMinorTicksCoords(),s=P(n.getViewLabels(),(function(t){t=b(t);var e=n.scale,i="ordinal"===e.type?e.getRawOrdinalNumber(t.tickValue):t.tickValue;return t.coord=n.dataToCoord(i),t}));QP(s),QP(o),k(KP,(function(e){!t.get([e,"show"])||n.scale.isBlank()&&"axisLine"!==e||eO[e](this.group,t,i,o,a,r,s)}),this)}},n.type="angleAxis",n}(Gw),eO={axisLine:function(t,e,n,i,r,o){var a,s=e.getModel(["axisLine","lineStyle"]),l=JP(n),u=l?0:1;(a=0===o[u]?new sl({shape:{cx:n.cx,cy:n.cy,r:o[l]},style:s.getLineStyle(),z2:1,silent:!0}):new Tl({shape:{cx:n.cx,cy:n.cy,r:o[l],r0:o[u]},style:s.getLineStyle(),z2:1,silent:!0})).style.fill=null,t.add(a)},axisTick:function(t,e,n,i,r,o){var a=e.getModel("axisTick"),s=(a.get("inside")?-1:1)*a.get("length"),l=o[JP(n)],u=P(i,(function(t){return new Nl({shape:$P(n,[l,l+s],t.coord)})}));t.add(hu(u,{style:I(a.getModel("lineStyle").getLineStyle(),{stroke:e.get(["axisLine","lineStyle","color"])})}))},minorTick:function(t,e,n,i,r,o){if(r.length){for(var a=e.getModel("axisTick"),s=e.getModel("minorTick"),l=(a.get("inside")?-1:1)*s.get("length"),u=o[JP(n)],h=[],c=0;c<r.length;c++)for(var p=0;p<r[c].length;p++)h.push(new Nl({shape:$P(n,[u,u+l],r[c][p].coord)}));t.add(hu(h,{style:I(s.getModel("lineStyle").getLineStyle(),I(a.getLineStyle(),{stroke:e.get(["axisLine","lineStyle","color"])}))}))}},axisLabel:function(t,e,n,i,r,o,a){var s=e.getCategories(!0),l=e.getModel("axisLabel"),u=l.get("margin"),h=e.get("triggerEvent");k(a,(function(i,r){var a=l,c=i.tickValue,p=o[JP(n)],d=n.coordToPoint([p+u,i.coord]),f=n.cx,g=n.cy,y=Math.abs(d[0]-f)/p<.3?"center":d[0]>f?"left":"right",v=Math.abs(d[1]-g)/p<.3?"middle":d[1]>g?"top":"bottom";if(s&&s[c]){var m=s[c];Y(m)&&m.textStyle&&(a=new rh(m.textStyle,l,l.ecModel))}var _=new ja({silent:Aw.isLabelSilent(e),style:zu(a,{x:d[0],y:d[1],fill:a.getTextColor()||e.get(["axisLine","lineStyle","color"]),text:i.formattedLabel,align:y,verticalAlign:v})});if(t.add(_),h){var x=Aw.makeAxisEventDataBase(e);x.targetType="axisLabel",x.value=i.rawLabel,ns(_).eventData=x}}),this)},splitLine:function(t,e,n,i,r,o){var a=e.getModel("splitLine").getModel("lineStyle"),s=a.get("color"),l=0;s=s instanceof Array?s:[s];for(var u=[],h=0;h<i.length;h++){var c=l++%s.length;u[c]=u[c]||[],u[c].push(new Nl({shape:$P(n,o,i[h].coord)}))}for(h=0;h<u.length;h++)t.add(hu(u[h],{style:I({stroke:s[h%s.length]},a.getLineStyle()),silent:!0,z:e.get("z")}))},minorSplitLine:function(t,e,n,i,r,o){if(r.length){for(var a=e.getModel("minorSplitLine").getModel("lineStyle"),s=[],l=0;l<r.length;l++)for(var u=0;u<r[l].length;u++)s.push(new Nl({shape:$P(n,o,r[l][u].coord)}));t.add(hu(s,{style:a.getLineStyle(),silent:!0,z:e.get("z")}))}},splitArea:function(t,e,n,i,r,o){if(i.length){var a=e.getModel("splitArea").getModel("areaStyle"),s=a.get("color"),l=0;s=s instanceof Array?s:[s];for(var u=[],h=Math.PI/180,c=-i[0].coord*h,p=Math.min(o[0],o[1]),d=Math.max(o[0],o[1]),f=e.get("clockwise"),g=1,y=i.length;g<=y;g++){var v=g===y?i[0].coord:i[g].coord,m=l++%s.length;u[m]=u[m]||[],u[m].push(new Ml({shape:{cx:n.cx,cy:n.cy,r0:p,r:d,startAngle:c,endAngle:-v*h,clockwise:f},silent:!0})),c=-v*h}for(g=0;g<u.length;g++)t.add(hu(u[g],{style:I({fill:s[g%s.length]},a.getAreaStyle()),silent:!0}))}}},nO=["axisLine","axisTickLabel","axisName"],iO=["splitLine","splitArea","minorSplitLine"],rO=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.axisPointerClass="PolarAxisPointer",e}return e(n,t),n.prototype.render=function(t,e){if(this.group.removeAll(),t.get("show")){var n=this._axisGroup,i=this._axisGroup=new Li;this.group.add(i);var r=t.axis,o=r.polar,a=o.getAngleAxis(),s=r.getTicksCoords(),l=r.getMinorTicksCoords(),u=a.getExtent()[0],h=r.getExtent(),c=function(t,e,n){return{position:[t.cx,t.cy],rotation:n/180*Math.PI,labelDirection:-1,tickDirection:-1,nameDirection:1,labelRotate:e.getModel("axisLabel").get("rotate"),z2:1}}(o,t,u),p=new Aw(t,c);k(nO,p.add,p),i.add(p.getGroup()),Mu(n,i,t),k(iO,(function(e){t.get([e,"show"])&&!r.scale.isBlank()&&oO[e](this.group,t,o,u,h,s,l)}),this)}},n.type="radiusAxis",n}(Gw),oO={splitLine:function(t,e,n,i,r,o){var a=e.getModel("splitLine").getModel("lineStyle"),s=a.get("color"),l=0;s=s instanceof Array?s:[s];for(var u=[],h=0;h<o.length;h++){var c=l++%s.length;u[c]=u[c]||[],u[c].push(new sl({shape:{cx:n.cx,cy:n.cy,r:o[h].coord}}))}for(h=0;h<u.length;h++)t.add(hu(u[h],{style:I({stroke:s[h%s.length],fill:null},a.getLineStyle()),silent:!0}))},minorSplitLine:function(t,e,n,i,r,o,a){if(a.length){for(var s=e.getModel("minorSplitLine").getModel("lineStyle"),l=[],u=0;u<a.length;u++)for(var h=0;h<a[u].length;h++)l.push(new sl({shape:{cx:n.cx,cy:n.cy,r:a[u][h].coord}}));t.add(hu(l,{style:I({fill:null},s.getLineStyle()),silent:!0}))}},splitArea:function(t,e,n,i,r,o){if(o.length){var a=e.getModel("splitArea").getModel("areaStyle"),s=a.get("color"),l=0;s=s instanceof Array?s:[s];for(var u=[],h=o[0].coord,c=1;c<o.length;c++){var p=l++%s.length;u[p]=u[p]||[],u[p].push(new Ml({shape:{cx:n.cx,cy:n.cy,r0:h,r:o[c].coord,startAngle:0,endAngle:2*Math.PI},silent:!0})),h=o[c].coord}for(c=0;c<u.length;c++)t.add(hu(u[c],{style:I({fill:s[c%s.length]},a.getAreaStyle()),silent:!0}))}}};function aO(t){return t.get("stack")||"__ec_stack_"+t.seriesIndex}function sO(t,e){return e.dim+t.model.componentIndex}function lO(t,e,n){var i={},r=function(t){var e={};k(t,(function(t,n){var i=t.getData(),r=t.coordinateSystem,o=r.getBaseAxis(),a=sO(r,o),s=o.getExtent(),l="category"===o.type?o.getBandWidth():Math.abs(s[1]-s[0])/i.count(),u=e[a]||{bandWidth:l,remainedWidth:l,autoWidthCount:0,categoryGap:"20%",gap:"30%",stacks:{}},h=u.stacks;e[a]=u;var c=aO(t);h[c]||u.autoWidthCount++,h[c]=h[c]||{width:0,maxWidth:0};var p=Vi(t.get("barWidth"),l),d=Vi(t.get("barMaxWidth"),l),f=t.get("barGap"),g=t.get("barCategoryGap");p&&!h[c].width&&(p=Math.min(u.remainedWidth,p),h[c].width=p,u.remainedWidth-=p),d&&(h[c].maxWidth=d),null!=f&&(u.gap=f),null!=g&&(u.categoryGap=g)}));var n={};return k(e,(function(t,e){n[e]={};var i=t.stacks,r=t.bandWidth,o=Vi(t.categoryGap,r),a=Vi(t.gap,1),s=t.remainedWidth,l=t.autoWidthCount,u=(s-o)/(l+(l-1)*a);u=Math.max(u,0),k(i,(function(t,e){var n=t.maxWidth;n&&n<u&&(n=Math.min(n,s),t.width&&(n=Math.min(n,t.width)),s-=n,t.width=n,l--)})),u=(s-o)/(l+(l-1)*a),u=Math.max(u,0);var h,c=0;k(i,(function(t,e){t.width||(t.width=u),h=t,c+=t.width*(1+a)})),h&&(c-=h.width*a);var p=-c/2;k(i,(function(t,i){n[e][i]=n[e][i]||{offset:p,width:t.width},p+=t.width*(1+a)}))})),n}(R(e.getSeriesByType(t),(function(t){return!e.isSeriesFiltered(t)&&t.coordinateSystem&&"polar"===t.coordinateSystem.type})));e.eachSeriesByType(t,(function(t){if("polar"===t.coordinateSystem.type){var e=t.getData(),n=t.coordinateSystem,o=n.getBaseAxis(),a=sO(n,o),s=aO(t),l=r[a][s],u=l.offset,h=l.width,c=n.getOtherAxis(o),p=t.coordinateSystem.cx,d=t.coordinateSystem.cy,f=t.get("barMinHeight")||0,g=t.get("barMinAngle")||0;i[s]=i[s]||[];for(var y=e.mapDimension(c.dim),v=e.mapDimension(o.dim),m=am(e,y),_="radius"!==o.dim||!t.get("roundCap",!0),x=c.dataToCoord(0),b=0,w=e.count();b<w;b++){var S=e.get(y,b),M=e.get(v,b),I=S>=0?"p":"n",T=x;m&&(i[s][M]||(i[s][M]={p:x,n:x}),T=i[s][M][I]);var C=void 0,A=void 0,D=void 0,L=void 0;if("radius"===c.dim){var k=c.dataToCoord(S)-x,P=o.dataToCoord(M);Math.abs(k)<f&&(k=(k<0?-1:1)*f),C=T,A=T+k,L=(D=P-u)-h,m&&(i[s][M][I]=A)}else{var O=c.dataToCoord(S,_)-x,R=o.dataToCoord(M);Math.abs(O)<g&&(O=(O<0?-1:1)*g),A=(C=R+u)+h,D=T,L=T+O,m&&(i[s][M][I]=L)}e.setItemLayout(b,{cx:p,cy:d,r0:C,r:A,startAngle:-D*Math.PI/180,endAngle:-L*Math.PI/180})}}}))}var uO={startAngle:90,clockwise:!0,splitNumber:12,axisLabel:{rotate:0}},hO={splitNumber:5},cO=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.type="polar",n}(Dd);var pO=function(t){function n(e,n,i,r){var o=t.call(this,e)||this;o.dimensions=["lng","lat"],o.type="geo",o.map=n;var a=$S(n,i);return o._nameCoordMap=a.nameCoordMap,o._regionsMap=a.regionsMap,o._invertLongitute=null==r||r,o.regions=a.regions,o._rect=a.boundingRect,o}return e(n,t),n.prototype.containCoord=function(t){for(var e=this.regions,n=0;n<e.length;n++)if(e[n].contain(t))return!0;return!1},n.prototype.transformTo=function(t,e,n,i){var r=this.getBoundingRect(),o=this._invertLongitute;r=r.clone(),o&&(r.y=-r.y-r.height);var a=this._rawTransformable;a.transform=r.calculateTransform(new Ln(t,e,n,i)),a.decomposeTransform(),o&&(a.scaleY=-a.scaleY),a.updateTransform(),this._updateTransform()},n.prototype.getRegion=function(t){return this._regionsMap.get(t)},n.prototype.getRegionByCoord=function(t){for(var e=this.regions,n=0;n<e.length;n++)if(e[n].contain(t))return e[n]},n.prototype.addGeoCoord=function(t,e){this._nameCoordMap.set(t,e)},n.prototype.getGeoCoord=function(t){return this._nameCoordMap.get(t)},n.prototype.getBoundingRect=function(){return this._rect},n.prototype.dataToPoint=function(t,e,n){if("string"==typeof t&&(t=this.getGeoCoord(t)),t)return vM.prototype.dataToPoint.call(this,t,e,n)},n.prototype.convertToPixel=function(t,e,n){var i=dO(e);return i===this?i.dataToPoint(n):null},n.prototype.convertFromPixel=function(t,e,n){var i=dO(e);return i===this?i.pointToData(n):null},n}(vM);function dO(t){var e=t.geoModel,n=t.seriesModel;return e?e.coordinateSystem:n?n.coordinateSystem||(n.getReferringComponents("geo",wr).models[0]||{}).coordinateSystem:null}function fO(t,e){var n=t.get("boundingCoords");if(null!=n){var i=n[0],r=n[1];isNaN(i[0])||isNaN(i[1])||isNaN(r[0])||isNaN(r[1])||this.setBoundingRect(i[0],i[1],r[0]-i[0],r[1]-i[1])}var o,a,s,l=this.getBoundingRect(),u=t.get("layoutCenter"),h=t.get("layoutSize"),c=e.getWidth(),p=e.getHeight(),d=l.width/l.height*this.aspectScale,f=!1;if(u&&h&&(o=[Vi(u[0],c),Vi(u[1],p)],a=Vi(h,Math.min(c,p)),isNaN(o[0])||isNaN(o[1])||isNaN(a)||(f=!0)),f)s={},d>1?(s.width=a,s.height=a/d):(s.height=a,s.width=a*d),s.y=o[1]-s.height/2,s.x=o[0]-s.width/2;else{var g=t.getBoxLayoutParams();g.aspect=d,s=tc(g,{width:c,height:p})}this.setViewRect(s.x,s.y,s.width,s.height),this.setCenter(t.get("center")),this.setZoom(t.get("zoom"))}D(pO,vM);var gO=new(function(){function t(){this.dimensions=pO.prototype.dimensions}return t.prototype.create=function(t,e){var n=[];t.eachComponent("geo",(function(t,i){var r=t.get("map"),o=t.get("aspectScale"),a=!0,s=wf(r);s&&s[0]&&"svg"===s[0].type?(null==o&&(o=1),a=!1):null==o&&(o=.75);var l=new pO(r+i,r,t.get("nameMap"),a);l.aspectScale=o,l.zoomLimit=t.get("scaleLimit"),n.push(l),t.coordinateSystem=l,l.model=t,l.resize=fO,l.resize(t,e)})),t.eachSeries((function(t){if("geo"===t.get("coordinateSystem")){var e=t.get("geoIndex")||0;t.coordinateSystem=n[e]}}));var i={};return t.eachSeriesByType("map",(function(t){if(!t.getHostGeoModel()){var e=t.getMapType();i[e]=i[e]||[],i[e].push(t)}})),k(i,(function(t,i){var r=P(t,(function(t){return t.get("nameMap")})),o=new pO(i,i,S(r));o.zoomLimit=J.apply(null,P(t,(function(t){return t.get("scaleLimit")}))),n.push(o),o.resize=fO,o.aspectScale=t[0].get("aspectScale"),o.resize(t[0],e),k(t,(function(t){t.coordinateSystem=o,function(t,e){k(e.get("geoCoord"),(function(e,n){t.addGeoCoord(n,e)}))}(o,t)}))})),n},t.prototype.getFilledRegions=function(t,e,n){for(var i=(t||[]).slice(),r=lt(),o=0;o<i.length;o++)r.set(i[o].name,i[o]);return k($S(e,n).regions,(function(t){var e=t.name;!r.get(e)&&i.push({name:e})})),i},t}()),yO=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.init=function(e,n,i){t.prototype.init.call(this,e,n,i),ur(e,"label",["show"])},n.prototype.optionUpdated=function(){var t=this.option,e=this;t.regions=gO.getFilledRegions(t.regions,t.map,t.nameMap);var n={};this._optionModelMap=O(t.regions||[],(function(t,i){var r=i.name;return r&&(t.set(r,new rh(i,e)),i.selected&&(n[r]=!0)),t}),lt()),t.selectedMap||(t.selectedMap=n)},n.prototype.getRegionModel=function(t){return this._optionModelMap.get(t)||new rh(null,this,this.ecModel)},n.prototype.getFormattedLabel=function(t,e){var n=this.getRegionModel(t),i="normal"===e?n.get(["label","formatter"]):n.get(["emphasis","label","formatter"]),r={name:t};return"function"==typeof i?(r.status=e,i(r)):"string"==typeof i?i.replace("{a}",null!=t?t:""):void 0},n.prototype.setZoom=function(t){this.option.zoom=t},n.prototype.setCenter=function(t){this.option.center=t},n.prototype.select=function(t){var e=this.option,n=e.selectedMode;n&&("multiple"!==n&&(e.selectedMap=null),(e.selectedMap||(e.selectedMap={}))[t]=!0)},n.prototype.unSelect=function(t){var e=this.option.selectedMap;e&&(e[t]=!1)},n.prototype.toggleSelected=function(t){this[this.isSelected(t)?"unSelect":"select"](t)},n.prototype.isSelected=function(t){var e=this.option.selectedMap;return!(!e||!e[t])},n.prototype._initSelectedMapFromData=function(){},n.type="geo",n.layoutMode="box",n.defaultOption={zlevel:0,z:0,show:!0,left:"center",top:"center",aspectScale:null,silent:!1,map:"",boundingCoords:null,center:null,zoom:1,scaleLimit:null,label:{show:!1,color:"#000"},itemStyle:{borderWidth:.5,borderColor:"#444",color:"#eee"},emphasis:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{color:"rgba(255,215,0,0.8)"}},select:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{color:"rgba(255,215,0,0.8)"}},regions:[]},n}(sc),vO=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.init=function(t,e){var n=new nM(e);this._mapDraw=n,this.group.add(n.group),this._api=e},n.prototype.render=function(t,e,n,i){var r=this._mapDraw;t.get("show")?r.draw(t,e,n,this,i):this._mapDraw.group.removeAll(),r.group.on("click",this._handleRegionClick,this),r.group.silent=t.get("silent"),this._model=t,this.updateSelectStatus(t,e,n)},n.prototype._handleRegionClick=function(t){for(var e,n=t.target;n&&null==(e=ns(n).eventData);)n=n.__hostTarget||n.parent;e&&this._api.dispatchAction({type:"geoToggleSelect",geoId:this._model.id,name:e.name})},n.prototype.updateSelectStatus=function(t,e,n){var i=this;this._mapDraw.group.traverse((function(t){var e=ns(t).eventData;if(e)return i._model.isSelected(e.name)?n.enterSelect(t):n.leaveSelect(t),!0}))},n.prototype.dispose=function(){this._mapDraw&&this._mapDraw.remove()},n.type="geo",n}(Dd);function mO(t,e){e=e||{};var n=t.coordinateSystem,i=t.axis,r={},o=i.position,a=i.orient,s=n.getRect(),l=[s.x,s.x+s.width,s.y,s.y+s.height],u={horizontal:{top:l[2],bottom:l[3]},vertical:{left:l[0],right:l[1]}};r.position=["vertical"===a?u.vertical[o]:l[0],"horizontal"===a?u.horizontal[o]:l[3]];r.rotation=Math.PI/2*{horizontal:0,vertical:1}[a];r.labelDirection=r.tickDirection=r.nameDirection={top:-1,bottom:1,right:1,left:-1}[o],t.get(["axisTick","inside"])&&(r.tickDirection=-r.tickDirection),J(e.labelInside,t.get(["axisLabel","inside"]))&&(r.labelDirection=-r.labelDirection);var h=e.rotate;return null==h&&(h=t.get(["axisLabel","rotate"])),r.labelRotation="top"===o?-h:h,r.z2=1,r}var _O=["axisLine","axisTickLabel","axisName"],xO=["splitArea","splitLine"],bO=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.axisPointerClass="SingleAxisPointer",e}return e(n,t),n.prototype.render=function(e,n,i,r){var o=this.group;o.removeAll();var a=this._axisGroup;this._axisGroup=new Li;var s=mO(e),l=new Aw(e,s);k(_O,l.add,l),o.add(this._axisGroup),o.add(l.getGroup()),k(xO,(function(t){e.get([t,"show"])&&wO[t](this,this.group,this._axisGroup,e)}),this),Mu(a,this._axisGroup,e),t.prototype.render.call(this,e,n,i,r)},n.prototype.remove=function(){Yw(this)},n.type="singleAxis",n}(Gw),wO={splitLine:function(t,e,n,i){var r=i.axis;if(!r.scale.isBlank()){var o=i.getModel("splitLine"),a=o.getModel("lineStyle"),s=a.get("color");s=s instanceof Array?s:[s];for(var l=i.coordinateSystem.getRect(),u=r.isHorizontal(),h=[],c=0,p=r.getTicksCoords({tickModel:o}),d=[],f=[],g=0;g<p.length;++g){var y=r.toGlobalCoord(p[g].coord);u?(d[0]=y,d[1]=l.y,f[0]=y,f[1]=l.y+l.height):(d[0]=l.x,d[1]=y,f[0]=l.x+l.width,f[1]=y);var v=c++%s.length;h[v]=h[v]||[],h[v].push(new Nl({subPixelOptimize:!0,shape:{x1:d[0],y1:d[1],x2:f[0],y2:f[1]},silent:!0}))}var m=a.getLineStyle(["color"]);for(g=0;g<h.length;++g)e.add(hu(h[g],{style:I({stroke:s[g%s.length]},m),silent:!0}))}},splitArea:function(t,e,n,i){Ww(t,n,i,i)}},SO=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.getCoordSysModel=function(){return this},n.type="singleAxis",n.layoutMode="box",n.defaultOption={left:"5%",top:"5%",right:"5%",bottom:"5%",type:"value",position:"bottom",orient:"horizontal",axisLine:{show:!0,lineStyle:{width:1,type:"solid"}},tooltip:{show:!0},axisTick:{show:!0,length:6,lineStyle:{width:1}},axisLabel:{show:!0,interval:"auto"},splitLine:{show:!0,lineStyle:{type:"dashed",opacity:.2}}},n}(sc);D(SO,d_.prototype);var MO=function(t){function n(e,n,i,r,o){var a=t.call(this,e,n,i)||this;return a.type=r||"value",a.position=o||"bottom",a}return e(n,t),n.prototype.isHorizontal=function(){var t=this.position;return"top"===t||"bottom"===t},n.prototype.pointToData=function(t,e){return this.coordinateSystem.pointToData(t)[0]},n}(E_),IO=function(){function t(t,e,n){this.type="single",this.dimension="single",this.dimensions=["single"],this.axisPointerEnabled=!0,this.model=t,this._init(t,e,n)}return t.prototype._init=function(t,e,n){var i=this.dimension,r=new MO(i,a_(t),[0,0],t.get("type"),t.get("position")),o="category"===r.type;r.onBand=o&&t.get("boundaryGap"),r.inverse=t.get("inverse"),r.orient=t.get("orient"),t.axis=r,r.model=t,r.coordinateSystem=this,this._axis=r},t.prototype.update=function(t,e){t.eachSeries((function(t){if(t.coordinateSystem===this){var e=t.getData();k(e.mapDimensionsAll(this.dimension),(function(t){this._axis.scale.unionExtentFromData(e,t)}),this),o_(this._axis.scale,this._axis.model)}}),this)},t.prototype.resize=function(t,e){this._rect=tc({left:t.get("left"),top:t.get("top"),right:t.get("right"),bottom:t.get("bottom"),width:t.get("width"),height:t.get("height")},{width:e.getWidth(),height:e.getHeight()}),this._adjustAxis()},t.prototype.getRect=function(){return this._rect},t.prototype._adjustAxis=function(){var t=this._rect,e=this._axis,n=e.isHorizontal(),i=n?[0,t.width]:[0,t.height],r=e.reverse?1:0;e.setExtent(i[r],i[1-r]),this._updateAxisTransform(e,n?t.x:t.y)},t.prototype._updateAxisTransform=function(t,e){var n=t.getExtent(),i=n[0]+n[1],r=t.isHorizontal();t.toGlobalCoord=r?function(t){return t+e}:function(t){return i-t+e},t.toLocalCoord=r?function(t){return t-e}:function(t){return i-t+e}},t.prototype.getAxis=function(){return this._axis},t.prototype.getBaseAxis=function(){return this._axis},t.prototype.getAxes=function(){return[this._axis]},t.prototype.getTooltipAxes=function(){return{baseAxes:[this.getAxis()],otherAxes:[]}},t.prototype.containPoint=function(t){var e=this.getRect(),n=this.getAxis();return"horizontal"===n.orient?n.contain(n.toLocalCoord(t[0]))&&t[1]>=e.y&&t[1]<=e.y+e.height:n.contain(n.toLocalCoord(t[1]))&&t[0]>=e.y&&t[0]<=e.y+e.height},t.prototype.pointToData=function(t){var e=this.getAxis();return[e.coordToData(e.toLocalCoord(t["horizontal"===e.orient?0:1]))]},t.prototype.dataToPoint=function(t){var e=this.getAxis(),n=this.getRect(),i=[],r="horizontal"===e.orient?0:1;return t instanceof Array&&(t=t[0]),i[r]=e.toGlobalCoord(e.dataToCoord(+t)),i[1-r]=0===r?n.y+n.height/2:n.x+n.width/2,i},t.prototype.convertToPixel=function(t,e,n){return TO(e)===this?this.dataToPoint(n):null},t.prototype.convertFromPixel=function(t,e,n){return TO(e)===this?this.pointToData(n):null},t}();function TO(t){var e=t.seriesModel,n=t.singleAxisModel;return n&&n.coordinateSystem||e&&e.coordinateSystem}var CO={create:function(t,e){var n=[];return t.eachComponent("singleAxis",(function(i,r){var o=new IO(i,t,e);o.name="single_"+r,o.resize(i,e),i.coordinateSystem=o,n.push(o)})),t.eachSeries((function(t){if("singleAxis"===t.get("coordinateSystem")){var e=t.getReferringComponents("singleAxis",wr).models[0];t.coordinateSystem=e&&e.coordinateSystem}})),n},dimensions:IO.prototype.dimensions},AO=["x","y"],DO=["width","height"],LO=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.makeElOption=function(t,e,n,i,r){var o=n.axis,a=o.coordinateSystem,s=OO(a,1-PO(o)),l=a.dataToPoint(e)[0],u=i.get("type");if(u&&"none"!==u){var h=sP(i),c=kO[u](o,l,s);c.style=h,t.graphicKey=c.type,t.pointer=c}cP(e,t,mO(n),n,i,r)},n.prototype.getHandleTransform=function(t,e,n){var i=mO(e,{labelInside:!1});i.labelMargin=n.get(["handle","margin"]);var r=hP(e.axis,t,i);return{x:r[0],y:r[1],rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},n.prototype.updateHandleTransform=function(t,e,n,i){var r=n.axis,o=r.coordinateSystem,a=PO(r),s=OO(o,a),l=[t.x,t.y];l[a]+=e[a],l[a]=Math.min(s[1],l[a]),l[a]=Math.max(s[0],l[a]);var u=OO(o,1-a),h=(u[1]+u[0])/2,c=[h,h];return c[a]=l[a],{x:l[0],y:l[1],rotation:t.rotation,cursorPoint:c,tooltipOption:{verticalAlign:"middle"}}},n}(eP),kO={line:function(t,e,n){return{type:"Line",subPixelOptimize:!0,shape:pP([e,n[0]],[e,n[1]],PO(t))}},shadow:function(t,e,n){var i=t.getBandWidth(),r=n[1]-n[0];return{type:"Rect",shape:dP([e-i/2,n[0]],[i,r],PO(t))}}};function PO(t){return t.isHorizontal()?0:1}function OO(t,e){var n=t.getRect();return[n[AO[e]],n[AO[e]]+n[DO[e]]]}var RO=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.type="single",n}(Dd);var NO=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.init=function(e,n,i){var r=rc(e);t.prototype.init.apply(this,arguments),EO(e,r)},n.prototype.mergeOption=function(e){t.prototype.mergeOption.apply(this,arguments),EO(this.option,e)},n.prototype.getCellSize=function(){return this.option.cellSize},n.type="calendar",n.defaultOption={zlevel:0,z:2,left:80,top:60,cellSize:20,orient:"horizontal",splitLine:{show:!0,lineStyle:{color:"#000",width:1,type:"solid"}},itemStyle:{color:"#fff",borderWidth:1,borderColor:"#ccc"},dayLabel:{show:!0,firstDay:0,position:"start",margin:"50%",nameMap:"en",color:"#000"},monthLabel:{show:!0,position:"start",margin:5,align:"center",nameMap:"en",formatter:null,color:"#000"},yearLabel:{show:!0,position:null,margin:30,formatter:null,color:"#ccc",fontFamily:"sans-serif",fontWeight:"bolder",fontSize:20}},n}(sc);function EO(t,e){var n,i=t.cellSize;1===(n=V(i)?i:t.cellSize=[i,i]).length&&(n[1]=n[0]);var r=P([0,1],(function(t){return function(t,e){return null!=t[$h[e][0]]||null!=t[$h[e][1]]&&null!=t[$h[e][2]]}(e,t)&&(n[t]="auto"),null!=n[t]&&"auto"!==n[t]}));ic(t,e,{type:"box",ignoreSize:r})}var zO={EN:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],CN:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},BO={EN:["S","M","T","W","T","F","S"],CN:["日","一","二","三","四","五","六"]},VO=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n){var i=this.group;i.removeAll();var r=t.coordinateSystem,o=r.getRangeInfo(),a=r.getOrient();this._renderDayRect(t,o,i),this._renderLines(t,o,a,i),this._renderYearText(t,o,a,i),this._renderMonthText(t,a,i),this._renderWeekText(t,o,a,i)},n.prototype._renderDayRect=function(t,e,n){for(var i=t.coordinateSystem,r=t.getModel("itemStyle").getItemStyle(),o=i.getCellWidth(),a=i.getCellHeight(),s=e.start.time;s<=e.end.time;s=i.getNextNDay(s,1).time){var l=i.dataToRect([s],!1).tl,u=new Xa({shape:{x:l[0],y:l[1],width:o,height:a},cursor:"default",style:r});n.add(u)}},n.prototype._renderLines=function(t,e,n,i){var r=this,o=t.coordinateSystem,a=t.getModel(["splitLine","lineStyle"]).getLineStyle(),s=t.get(["splitLine","show"]),l=a.lineWidth;this._tlpoints=[],this._blpoints=[],this._firstDayOfMonth=[],this._firstDayPoints=[];for(var u=e.start,h=0;u.time<=e.end.time;h++){p(u.formatedDate),0===h&&(u=o.getDateInfo(e.start.y+"-"+e.start.m));var c=u.date;c.setMonth(c.getMonth()+1),u=o.getDateInfo(c)}function p(e){r._firstDayOfMonth.push(o.getDateInfo(e)),r._firstDayPoints.push(o.dataToRect([e],!1).tl);var l=r._getLinePointsOfOneWeek(t,e,n);r._tlpoints.push(l[0]),r._blpoints.push(l[l.length-1]),s&&r._drawSplitline(l,a,i)}p(o.getNextNDay(e.end.time,1).formatedDate),s&&this._drawSplitline(r._getEdgesPoints(r._tlpoints,l,n),a,i),s&&this._drawSplitline(r._getEdgesPoints(r._blpoints,l,n),a,i)},n.prototype._getEdgesPoints=function(t,e,n){var i=[t[0].slice(),t[t.length-1].slice()],r="horizontal"===n?0:1;return i[0][r]=i[0][r]-e/2,i[1][r]=i[1][r]+e/2,i},n.prototype._drawSplitline=function(t,e,n){var i=new Pl({z2:20,shape:{points:t},style:e});n.add(i)},n.prototype._getLinePointsOfOneWeek=function(t,e,n){for(var i=t.coordinateSystem,r=i.getDateInfo(e),o=[],a=0;a<7;a++){var s=i.getNextNDay(r.time,a),l=i.dataToRect([s.time],!1);o[2*s.day]=l.tl,o[2*s.day+1]=l["horizontal"===n?"bl":"tr"]}return o},n.prototype._formatterLabel=function(t,e){return"string"==typeof t&&t?(n=t,k(e,(function(t,e){n=n.replace("{"+e+"}",i?Gh(t):t)})),n):"function"==typeof t?t(e):e.nameMap;var n,i},n.prototype._yearTextPositionControl=function(t,e,n,i,r){var o=e[0],a=e[1],s=["center","bottom"];"bottom"===i?(a+=r,s=["center","top"]):"left"===i?o-=r:"right"===i?(o+=r,s=["center","top"]):a-=r;var l=0;return"left"!==i&&"right"!==i||(l=Math.PI/2),{rotation:l,x:o,y:a,style:{align:s[0],verticalAlign:s[1]}}},n.prototype._renderYearText=function(t,e,n,i){var r=t.getModel("yearLabel");if(r.get("show")){var o=r.get("margin"),a=r.get("position");a||(a="horizontal"!==n?"top":"left");var s=[this._tlpoints[this._tlpoints.length-1],this._blpoints[0]],l=(s[0][0]+s[1][0])/2,u=(s[0][1]+s[1][1])/2,h="horizontal"===n?0:1,c={top:[l,s[h][1]],bottom:[l,s[1-h][1]],left:[s[1-h][0],u],right:[s[h][0],u]},p=e.start.y;+e.end.y>+e.start.y&&(p=p+"-"+e.end.y);var d=r.get("formatter"),f={start:e.start.y,end:e.end.y,nameMap:p},g=this._formatterLabel(d,f),y=new ja({z2:30,style:zu(r,{text:g})});y.attr(this._yearTextPositionControl(y,c[a],n,a,o)),i.add(y)}},n.prototype._monthTextPositionControl=function(t,e,n,i,r){var o="left",a="top",s=t[0],l=t[1];return"horizontal"===n?(l+=r,e&&(o="center"),"start"===i&&(a="bottom")):(s+=r,e&&(a="middle"),"start"===i&&(o="right")),{x:s,y:l,align:o,verticalAlign:a}},n.prototype._renderMonthText=function(t,e,n){var i=t.getModel("monthLabel");if(i.get("show")){var r=i.get("nameMap"),o=i.get("margin"),a=i.get("position"),s=i.get("align"),l=[this._tlpoints,this._blpoints];G(r)&&(r=zO[r.toUpperCase()]||[]);var u="start"===a?0:1,h="horizontal"===e?0:1;o="start"===a?-o:o;for(var c="center"===s,p=0;p<l[u].length-1;p++){var d=l[u][p].slice(),f=this._firstDayOfMonth[p];if(c){var g=this._firstDayPoints[p];d[h]=(g[h]+l[0][p+1][h])/2}var y=i.get("formatter"),v=r[+f.m-1],m={yyyy:f.y,yy:(f.y+"").slice(2),MM:f.m,M:+f.m,nameMap:v},_=this._formatterLabel(y,m),x=new ja({z2:30,style:M(zu(i,{text:_}),this._monthTextPositionControl(d,c,e,a,o))});n.add(x)}}},n.prototype._weekTextPositionControl=function(t,e,n,i,r){var o="center",a="middle",s=t[0],l=t[1],u="start"===n;return"horizontal"===e?(s=s+i+(u?1:-1)*r[0]/2,o=u?"right":"left"):(l=l+i+(u?1:-1)*r[1]/2,a=u?"bottom":"top"),{x:s,y:l,align:o,verticalAlign:a}},n.prototype._renderWeekText=function(t,e,n,i){var r=t.getModel("dayLabel");if(r.get("show")){var o=t.coordinateSystem,a=r.get("position"),s=r.get("nameMap"),l=r.get("margin"),u=o.getFirstDayOfWeek();G(s)&&(s=BO[s.toUpperCase()]||[]);var h=o.getNextNDay(e.end.time,7-e.lweek).time,c=[o.getCellWidth(),o.getCellHeight()];l=Vi(l,c["horizontal"===n?0:1]),"start"===a&&(h=o.getNextNDay(e.start.time,-(7+e.fweek)).time,l=-l);for(var p=0;p<7;p++){var d,f=o.getNextNDay(h,p),g=o.dataToRect([f.time],!1).center;d=Math.abs((p+u)%7);var y=new ja({z2:30,style:M(zu(r,{text:s[d]}),this._weekTextPositionControl(g,n,a,l,c))});i.add(y)}}},n.type="calendar",n}(Dd),FO=function(){function t(e,n,i){this.type="calendar",this.dimensions=t.dimensions,this.getDimensionsInfo=t.getDimensionsInfo,this._model=e}return t.getDimensionsInfo=function(){return[{name:"time",type:"time"},"value"]},t.prototype.getRangeInfo=function(){return this._rangeInfo},t.prototype.getModel=function(){return this._model},t.prototype.getRect=function(){return this._rect},t.prototype.getCellWidth=function(){return this._sw},t.prototype.getCellHeight=function(){return this._sh},t.prototype.getOrient=function(){return this._orient},t.prototype.getFirstDayOfWeek=function(){return this._firstDayOfWeek},t.prototype.getDateInfo=function(t){var e=(t=qi(t)).getFullYear(),n=t.getMonth()+1,i=n<10?"0"+n:""+n,r=t.getDate(),o=r<10?"0"+r:""+r,a=t.getDay();return{y:e+"",m:i,d:o,day:a=Math.abs((a+7-this.getFirstDayOfWeek())%7),time:t.getTime(),formatedDate:e+"-"+i+"-"+o,date:t}},t.prototype.getNextNDay=function(t,e){return 0===(e=e||0)||(t=new Date(this.getDateInfo(t).time)).setDate(t.getDate()+e),this.getDateInfo(t)},t.prototype.update=function(t,e){this._firstDayOfWeek=+this._model.getModel("dayLabel").get("firstDay"),this._orient=this._model.get("orient"),this._lineWidth=this._model.getModel("itemStyle").getItemStyle().lineWidth||0,this._rangeInfo=this._getRangeInfo(this._initRangeOption());var n=this._rangeInfo.weeks||1,i=["width","height"],r=this._model.getCellSize().slice(),o=this._model.getBoxLayoutParams(),a="horizontal"===this._orient?[n,7]:[7,n];k([0,1],(function(t){u(r,t)&&(o[i[t]]=r[t]*a[t])}));var s={width:e.getWidth(),height:e.getHeight()},l=this._rect=tc(o,s);function u(t,e){return null!=t[e]&&"auto"!==t[e]}k([0,1],(function(t){u(r,t)||(r[t]=l[i[t]]/a[t])})),this._sw=r[0],this._sh=r[1]},t.prototype.dataToPoint=function(t,e){V(t)&&(t=t[0]),null==e&&(e=!0);var n=this.getDateInfo(t),i=this._rangeInfo,r=n.formatedDate;if(e&&!(n.time>=i.start.time&&n.time<i.end.time+864e5))return[NaN,NaN];var o=n.day,a=this._getRangeInfo([i.start.time,r]).nthWeek;return"vertical"===this._orient?[this._rect.x+o*this._sw+this._sw/2,this._rect.y+a*this._sh+this._sh/2]:[this._rect.x+a*this._sw+this._sw/2,this._rect.y+o*this._sh+this._sh/2]},t.prototype.pointToData=function(t){var e=this.pointToDate(t);return e&&e.time},t.prototype.dataToRect=function(t,e){var n=this.dataToPoint(t,e);return{contentShape:{x:n[0]-(this._sw-this._lineWidth)/2,y:n[1]-(this._sh-this._lineWidth)/2,width:this._sw-this._lineWidth,height:this._sh-this._lineWidth},center:n,tl:[n[0]-this._sw/2,n[1]-this._sh/2],tr:[n[0]+this._sw/2,n[1]-this._sh/2],br:[n[0]+this._sw/2,n[1]+this._sh/2],bl:[n[0]-this._sw/2,n[1]+this._sh/2]}},t.prototype.pointToDate=function(t){var e=Math.floor((t[0]-this._rect.x)/this._sw)+1,n=Math.floor((t[1]-this._rect.y)/this._sh)+1,i=this._rangeInfo.range;return"vertical"===this._orient?this._getDateByWeeksAndDay(n,e-1,i):this._getDateByWeeksAndDay(e,n-1,i)},t.prototype.convertToPixel=function(t,e,n){var i=GO(e);return i===this?i.dataToPoint(n):null},t.prototype.convertFromPixel=function(t,e,n){var i=GO(e);return i===this?i.pointToData(n):null},t.prototype.containPoint=function(t){return console.warn("Not implemented."),!1},t.prototype._initRangeOption=function(){var t,e=this._model.get("range");if(V(e)&&1===e.length&&(e=e[0]),V(e))t=e;else{var n=e.toString();if(/^\d{4}$/.test(n)&&(t=[n+"-01-01",n+"-12-31"]),/^\d{4}[\/|-]\d{1,2}$/.test(n)){var i=this.getDateInfo(n),r=i.date;r.setMonth(r.getMonth()+1);var o=this.getNextNDay(r,-1);t=[i.formatedDate,o.formatedDate]}/^\d{4}[\/|-]\d{1,2}[\/|-]\d{1,2}$/.test(n)&&(t=[n,n])}if(!t)return e;var a=this._getRangeInfo(t);return a.start.time>a.end.time&&t.reverse(),t},t.prototype._getRangeInfo=function(t){var e,n=[this.getDateInfo(t[0]),this.getDateInfo(t[1])];n[0].time>n[1].time&&(e=!0,n.reverse());var i=Math.floor(n[1].time/864e5)-Math.floor(n[0].time/864e5)+1,r=new Date(n[0].time),o=r.getDate(),a=n[1].date.getDate();r.setDate(o+i-1);var s=r.getDate();if(s!==a)for(var l=r.getTime()-n[1].time>0?1:-1;(s=r.getDate())!==a&&(r.getTime()-n[1].time)*l>0;)i-=l,r.setDate(s-l);var u=Math.floor((i+n[0].day+6)/7),h=e?1-u:u-1;return e&&n.reverse(),{range:[n[0].formatedDate,n[1].formatedDate],start:n[0],end:n[1],allDay:i,weeks:u,nthWeek:h,fweek:n[0].day,lweek:n[1].day}},t.prototype._getDateByWeeksAndDay=function(t,e,n){var i=this._getRangeInfo(n);if(t>i.weeks||0===t&&e<i.fweek||t===i.weeks&&e>i.lweek)return null;var r=7*(t-1)-i.fweek+e,o=new Date(i.start.time);return o.setDate(+i.start.d+r),this.getDateInfo(o)},t.create=function(e,n){var i=[];return e.eachComponent("calendar",(function(r){var o=new t(r,e,n);i.push(o),r.coordinateSystem=o})),e.eachSeries((function(t){"calendar"===t.get("coordinateSystem")&&(t.coordinateSystem=i[t.get("calendarIndex")||0])})),i},t.dimensions=["time","value"],t}();function GO(t){var e=t.calendarModel,n=t.seriesModel;return e?e.coordinateSystem:n?n.coordinateSystem:null}var HO=_r(),WO={path:null,compoundPath:null,group:Li,image:Ba,text:ja},YO=function(t){var e=t.graphic;V(e)?e[0]&&e[0].elements?t.graphic=[t.graphic[0]]:t.graphic=[{elements:e}]:e&&!e.elements&&(t.graphic=[{elements:[e]}])},XO=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.mergeOption=function(e,n){var i=this.option.elements;this.option.elements=null,t.prototype.mergeOption.call(this,e,n),this.option.elements=i},n.prototype.optionUpdated=function(t,e){var n=this.option,i=(e?n:t).elements,r=n.elements=e?[]:n.elements,o=[];this._flatten(i,o,null);var a=pr(r,o,"normalMerge"),s=this._elOptionsToUpdate=[];k(a,(function(t,e){var n=t.newOption;n&&(s.push(n),function(t,e){var n=t.existing;if(e.id=t.keyInfo.id,!e.type&&n&&(e.type=n.type),null==e.parentId){var i=e.parentOption;i?e.parentId=i.id:n&&(e.parentId=n.parentId)}e.parentOption=null}(t,n),function(t,e,n){var i=M({},n),r=t[e],o=n.$action||"merge";if("merge"===o){if(r)w(r,i,!0),ic(r,i,{ignoreSize:!0}),oc(n,r);else t[e]=i}else"replace"===o?t[e]=i:"remove"===o&&r&&(t[e]=null)}(r,e,n),function(t,e){if(!t)return;if(t.hv=e.hv=[qO(e,["left","right"]),qO(e,["top","bottom"])],"group"===t.type){var n=t,i=e;null==n.width&&(n.width=i.width=0),null==n.height&&(n.height=i.height=0)}}(r[e],n))}),this);for(var l=r.length-1;l>=0;l--)null==r[l]?r.splice(l,1):delete r[l].$action},n.prototype._flatten=function(t,e,n){k(t,(function(t){if(t){n&&(t.parentOption=n),e.push(t);var i=t.children;"group"===t.type&&i&&this._flatten(i,e,t),delete t.children}}),this)},n.prototype.useElOptionsToUpdate=function(){var t=this._elOptionsToUpdate;return this._elOptionsToUpdate=null,t},n.type="graphic",n.defaultOption={elements:[]},n}(sc),UO=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.init=function(){this._elMap=lt()},n.prototype.render=function(t,e,n){t!==this._lastGraphicModel&&this._clear(),this._lastGraphicModel=t,this._updateElements(t),this._relocate(t,n)},n.prototype._updateElements=function(t){var e=t.useElOptionsToUpdate();if(e){var n=this._elMap,i=this.group;k(e,(function(e){var r=gr(e.id,null),o=null!=r?n.get(r):null,a=gr(e.parentId,null),s=null!=a?n.get(a):i,l=e.type,u=e.style;"text"===l&&u&&e.hv&&e.hv[1]&&(u.textVerticalAlign=u.textBaseline=u.verticalAlign=u.align=null);var h=e.textContent,c=e.textConfig;if(u&&TL(u,l,!!c,!!h)){var p=CL(u,l,!0);!c&&p.textConfig&&(c=e.textConfig=p.textConfig),!h&&p.textContent&&(h=p.textContent)}var d=function(t){return t=M({},t),k(["id","parentId","$action","hv","bounding","textContent"].concat(Kh),(function(e){delete t[e]})),t}(e);var f=e.$action||"merge";"merge"===f?o?o.attr(d):ZO(r,s,d,n):"replace"===f?(jO(o,n),ZO(r,s,d,n)):"remove"===f&&jO(o,n);var g=n.get(r);if(g&&h)if("merge"===f){var y=g.getTextContent();y?y.attr(h):g.setTextContent(new ja(h))}else"replace"===f&&g.setTextContent(new ja(h));if(g){var v=HO(g);v.__ecGraphicWidthOption=e.width,v.__ecGraphicHeightOption=e.height,function(t,e,n){var i=ns(t).eventData;t.silent||t.ignore||i||(i=ns(t).eventData={componentType:"graphic",componentIndex:e.componentIndex,name:t.name});i&&(i.info=n.info)}(g,t,e)}}))}},n.prototype._relocate=function(t,e){for(var n=t.option.elements,i=this.group,r=this._elMap,o=e.getWidth(),a=e.getHeight(),s=0;s<n.length;s++){if((d=null!=(p=gr((c=n[s]).id,null))?r.get(p):null)&&d.isGroup){var l=(f=d.parent)===i,u=HO(d),h=HO(f);u.__ecGraphicWidth=Vi(u.__ecGraphicWidthOption,l?o:h.__ecGraphicWidth)||0,u.__ecGraphicHeight=Vi(u.__ecGraphicHeightOption,l?a:h.__ecGraphicHeight)||0}}for(s=n.length-1;s>=0;s--){var c,p,d;if(d=null!=(p=gr((c=n[s]).id,null))?r.get(p):null){var f=d.parent;h=HO(f);ec(d,c,f===i?{width:o,height:a}:{width:h.__ecGraphicWidth,height:h.__ecGraphicHeight},null,{hv:c.hv,boundingMode:c.bounding})}}},n.prototype._clear=function(){var t=this._elMap;t.each((function(e){jO(e,t)})),this._elMap=lt()},n.prototype.dispose=function(){this._clear()},n.type="graphic",n}(Dd);function ZO(t,e,n,i){var r=n.type;var o=ct(WO,r)?WO[r]:au(r);var a=new o(n);e.add(a),i.set(t,a),HO(a).__ecGraphicId=t}function jO(t,e){var n=t&&t.parent;n&&("group"===t.type&&t.traverse((function(t){jO(t,e)})),e.removeKey(HO(t).__ecGraphicId),n.remove(t))}function qO(t,e){var n;return k(e,(function(e){null!=t[e]&&"auto"!==t[e]&&(n=!0)})),n}var KO=["x","y","radius","angle","single"],$O=["cartesian2d","polar","singleAxis"];function JO(t){return t+"Axis"}function QO(t,e){var n,i=lt(),r=[],o=lt();t.eachComponent({mainType:"dataZoom",query:e},(function(t){o.get(t.uid)||s(t)}));do{n=!1,t.eachComponent("dataZoom",a)}while(n);function a(t){!o.get(t.uid)&&function(t){var e=!1;return t.eachTargetAxis((function(t,n){var r=i.get(t);r&&r[n]&&(e=!0)})),e}(t)&&(s(t),n=!0)}function s(t){o.set(t.uid,!0),r.push(t),t.eachTargetAxis((function(t,e){(i.get(t)||i.set(t,[]))[e]=!0}))}return r}function tR(t){var e=t.ecModel,n={infoList:[],infoMap:lt()};return t.eachTargetAxis((function(t,i){var r=e.getComponent(JO(t),i);if(r){var o=r.getCoordSysModel();if(o){var a=o.uid,s=n.infoMap.get(a);s||(s={model:o,axisModels:[]},n.infoList.push(s),n.infoMap.set(a,s)),s.axisModels.push(r)}}})),n}var eR=function(){function t(){this.indexList=[],this.indexMap=[]}return t.prototype.add=function(t){this.indexMap[t]||(this.indexList.push(t),this.indexMap[t]=!0)},t}(),nR=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e._autoThrottle=!0,e._noTarget=!0,e._rangePropMode=["percent","percent"],e}return e(n,t),n.prototype.init=function(t,e,n){var i=iR(t);this.settledOption=i,this.mergeDefaultAndTheme(t,n),this._doInit(i)},n.prototype.mergeOption=function(t){var e=iR(t);w(this.option,t,!0),w(this.settledOption,e,!0),this._doInit(e)},n.prototype._doInit=function(t){var e=this.option;this._setDefaultThrottle(t),this._updateRangeUse(t);var n=this.settledOption;k([["start","startValue"],["end","endValue"]],(function(t,i){"value"===this._rangePropMode[i]&&(e[t[0]]=n[t[0]]=null)}),this),this._resetTarget()},n.prototype._resetTarget=function(){var t=this.get("orient",!0),e=this._targetAxisInfoMap=lt();this._fillSpecifiedTargetAxis(e)?this._orient=t||this._makeAutoOrientByTargetAxis():(this._orient=t||"horizontal",this._fillAutoTargetAxisByOrient(e,this._orient)),this._noTarget=!0,e.each((function(t){t.indexList.length&&(this._noTarget=!1)}),this)},n.prototype._fillSpecifiedTargetAxis=function(t){var e=!1;return k(KO,(function(n){var i=this.getReferringComponents(JO(n),Sr);if(i.specified){e=!0;var r=new eR;k(i.models,(function(t){r.add(t.componentIndex)})),t.set(n,r)}}),this),e},n.prototype._fillAutoTargetAxisByOrient=function(t,e){var n=this.ecModel,i=!0;if(i){var r="vertical"===e?"y":"x";o(n.findComponents({mainType:r+"Axis"}),r)}i&&o(n.findComponents({mainType:"singleAxis",filter:function(t){return t.get("orient",!0)===e}}),"single");function o(e,n){var r=e[0];if(r){var o=new eR;if(o.add(r.componentIndex),t.set(n,o),i=!1,"x"===n||"y"===n){var a=r.getReferringComponents("grid",wr).models[0];a&&k(e,(function(t){r.componentIndex!==t.componentIndex&&a===t.getReferringComponents("grid",wr).models[0]&&o.add(t.componentIndex)}))}}}i&&k(KO,(function(e){if(i){var r=n.findComponents({mainType:JO(e),filter:function(t){return"category"===t.get("type",!0)}});if(r[0]){var o=new eR;o.add(r[0].componentIndex),t.set(e,o),i=!1}}}),this)},n.prototype._makeAutoOrientByTargetAxis=function(){var t;return this.eachTargetAxis((function(e){!t&&(t=e)}),this),"y"===t?"vertical":"horizontal"},n.prototype._setDefaultThrottle=function(t){if(t.hasOwnProperty("throttle")&&(this._autoThrottle=!1),this._autoThrottle){var e=this.ecModel.option;this.option.throttle=e.animation&&e.animationDurationUpdate>0?100:20}},n.prototype._updateRangeUse=function(t){var e=this._rangePropMode,n=this.get("rangeMode");k([["start","startValue"],["end","endValue"]],(function(i,r){var o=null!=t[i[0]],a=null!=t[i[1]];o&&!a?e[r]="percent":!o&&a?e[r]="value":n?e[r]=n[r]:o&&(e[r]="percent")}))},n.prototype.noTarget=function(){return this._noTarget},n.prototype.getFirstTargetAxisModel=function(){var t;return this.eachTargetAxis((function(e,n){null==t&&(t=this.ecModel.getComponent(JO(e),n))}),this),t},n.prototype.eachTargetAxis=function(t,e){this._targetAxisInfoMap.each((function(n,i){k(n.indexList,(function(n){t.call(e,i,n)}))}))},n.prototype.getAxisProxy=function(t,e){var n=this.getAxisModel(t,e);if(n)return n.__dzAxisProxy},n.prototype.getAxisModel=function(t,e){var n=this._targetAxisInfoMap.get(t);if(n&&n.indexMap[e])return this.ecModel.getComponent(JO(t),e)},n.prototype.setRawRange=function(t){var e=this.option,n=this.settledOption;k([["start","startValue"],["end","endValue"]],(function(i){null==t[i[0]]&&null==t[i[1]]||(e[i[0]]=n[i[0]]=t[i[0]],e[i[1]]=n[i[1]]=t[i[1]])}),this),this._updateRangeUse(t)},n.prototype.setCalculatedRange=function(t){var e=this.option;k(["start","startValue","end","endValue"],(function(n){e[n]=t[n]}))},n.prototype.getPercentRange=function(){var t=this.findRepresentativeAxisProxy();if(t)return t.getDataPercentWindow()},n.prototype.getValueRange=function(t,e){if(null!=t||null!=e)return this.getAxisProxy(t,e).getDataValueWindow();var n=this.findRepresentativeAxisProxy();return n?n.getDataValueWindow():void 0},n.prototype.findRepresentativeAxisProxy=function(t){if(t)return t.__dzAxisProxy;for(var e,n=this._targetAxisInfoMap.keys(),i=0;i<n.length;i++)for(var r=n[i],o=this._targetAxisInfoMap.get(r),a=0;a<o.indexList.length;a++){var s=this.getAxisProxy(r,o.indexList[a]);if(s.hostedBy(this))return s;e||(e=s)}return e},n.prototype.getRangePropMode=function(){return this._rangePropMode.slice()},n.prototype.getOrient=function(){return this._orient},n.type="dataZoom",n.dependencies=["xAxis","yAxis","radiusAxis","angleAxis","singleAxis","series","toolbox"],n.defaultOption={zlevel:0,z:4,filterMode:"filter",start:0,end:100},n}(sc);function iR(t){var e={};return k(["start","end","startValue","endValue","throttle"],(function(n){t.hasOwnProperty(n)&&(e[n]=t[n])})),e}var rR=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.type="dataZoom.select",n}(nR),oR=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n,i){this.dataZoomModel=t,this.ecModel=e,this.api=n},n.type="dataZoom",n}(Dd),aR=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.type="dataZoom.select",n}(oR),sR=k,lR=Gi,uR=function(){function t(t,e,n,i){this._dimName=t,this._axisIndex=e,this.ecModel=i,this._dataZoomModel=n}return t.prototype.hostedBy=function(t){return this._dataZoomModel===t},t.prototype.getDataValueWindow=function(){return this._valueWindow.slice()},t.prototype.getDataPercentWindow=function(){return this._percentWindow.slice()},t.prototype.getTargetSeriesModels=function(){var t=[];return this.ecModel.eachSeries((function(e){if(function(t){var e=t.get("coordinateSystem");return C($O,e)>=0}(e)){var n=JO(this._dimName),i=e.getReferringComponents(n,wr).models[0];i&&this._axisIndex===i.componentIndex&&t.push(e)}}),this),t},t.prototype.getAxisModel=function(){return this.ecModel.getComponent(this._dimName+"Axis",this._axisIndex)},t.prototype.getMinMaxSpan=function(){return b(this._minMaxSpan)},t.prototype.calculateDataWindow=function(t){var e,n=this._dataExtent,i=this.getAxisModel().axis.scale,r=this._dataZoomModel.getRangePropMode(),o=[0,100],a=[],s=[];sR(["start","end"],(function(l,u){var h=t[l],c=t[l+"Value"];"percent"===r[u]?(null==h&&(h=o[u]),c=i.parse(Bi(h,o,n))):(e=!0,h=Bi(c=null==c?n[u]:i.parse(c),n,o)),s[u]=c,a[u]=h})),lR(s),lR(a);var l=this._minMaxSpan;function u(t,e,n,r,o){var a=o?"Span":"ValueSpan";fC(0,t,n,"all",l["min"+a],l["max"+a]);for(var s=0;s<2;s++)e[s]=Bi(t[s],n,r,!0),o&&(e[s]=i.parse(e[s]))}return e?u(s,a,n,o,!1):u(a,s,o,n,!0),{valueWindow:s,percentWindow:a}},t.prototype.reset=function(t){if(t===this._dataZoomModel){var e=this.getTargetSeriesModels();this._dataExtent=function(t,e,n){var i=[1/0,-1/0];sR(n,(function(t){!function(t,e,n){e&&k(p_(e,n),(function(n){var i=e.getApproximateExtent(n);i[0]<t[0]&&(t[0]=i[0]),i[1]>t[1]&&(t[1]=i[1])}))}(i,t.getData(),e)}));var r=t.getAxisModel(),o=n_(r.axis.scale,r,i).calculate();return[o.min,o.max]}(this,this._dimName,e),this._updateMinMaxSpan();var n=this.calculateDataWindow(t.settledOption);this._valueWindow=n.valueWindow,this._percentWindow=n.percentWindow,this._setAxisModel()}},t.prototype.filterData=function(t,e){if(t===this._dataZoomModel){var n=this._dimName,i=this.getTargetSeriesModels(),r=t.get("filterMode"),o=this._valueWindow;"none"!==r&&sR(i,(function(t){var e=t.getData(),i=e.mapDimensionsAll(n);i.length&&("weakFilter"===r?e.filterSelf((function(t){for(var n,r,a,s=0;s<i.length;s++){var l=e.get(i[s],t),u=!isNaN(l),h=l<o[0],c=l>o[1];if(u&&!h&&!c)return!0;u&&(a=!0),h&&(n=!0),c&&(r=!0)}return a&&n&&r})):sR(i,(function(n){if("empty"===r)t.setData(e=e.map(n,(function(t){return function(t){return t>=o[0]&&t<=o[1]}(t)?t:NaN})));else{var i={};i[n]=o,e.selectRange(i)}})),sR(i,(function(t){e.setApproximateExtent(o,t)})))}))}},t.prototype._updateMinMaxSpan=function(){var t=this._minMaxSpan={},e=this._dataZoomModel,n=this._dataExtent;sR(["min","max"],(function(i){var r=e.get(i+"Span"),o=e.get(i+"ValueSpan");null!=o&&(o=this.getAxisModel().axis.scale.parse(o)),null!=o?r=Bi(n[0]+o,n,[0,100],!0):null!=r&&(o=Bi(r,[0,100],n,!0)-n[0]),t[i+"Span"]=r,t[i+"ValueSpan"]=o}),this)},t.prototype._setAxisModel=function(){var t=this.getAxisModel(),e=this._percentWindow,n=this._valueWindow;if(e){var i=Yi(n,[0,500]);i=Math.min(i,20);var r=t.axis.scale.rawExtentInfo;0!==e[0]&&r.setDeterminedMinMax("min",+n[0].toFixed(i)),100!==e[1]&&r.setDeterminedMinMax("max",+n[1].toFixed(i)),r.freeze()}},t}();var hR={getTargetSeries:function(t){function e(e){t.eachComponent("dataZoom",(function(n){n.eachTargetAxis((function(i,r){var o=t.getComponent(JO(i),r);e(i,r,o,n)}))}))}e((function(t,e,n,i){n.__dzAxisProxy=null}));var n=[];e((function(e,i,r,o){r.__dzAxisProxy||(r.__dzAxisProxy=new uR(e,i,o,t),n.push(r.__dzAxisProxy))}));var i=lt();return k(n,(function(t){k(t.getTargetSeriesModels(),(function(t){i.set(t.uid,t)}))})),i},overallReset:function(t,e){t.eachComponent("dataZoom",(function(t){t.eachTargetAxis((function(e,n){t.getAxisProxy(e,n).reset(t)})),t.eachTargetAxis((function(n,i){t.getAxisProxy(n,i).filterData(t,e)}))})),t.eachComponent("dataZoom",(function(t){var e=t.findRepresentativeAxisProxy();if(e){var n=e.getDataPercentWindow(),i=e.getDataValueWindow();t.setCalculatedRange({start:n[0],end:n[1],startValue:i[0],endValue:i[1]})}}))}};var cR=!1;function pR(t){cR||(cR=!0,t.registerProcessor(t.PRIORITY.PROCESSOR.FILTER,hR),function(t){t.registerAction("dataZoom",(function(t,e){k(QO(e,t),(function(e){e.setRawRange({start:t.start,end:t.end,startValue:t.startValue,endValue:t.endValue})}))}))}(t),t.registerSubTypeDefaulter("dataZoom",(function(){return"slider"})))}function dR(t){t.registerComponentModel(rR),t.registerComponentView(aR),pR(t)}var fR=function(){},gR={};function yR(t,e){gR[t]=e}function vR(t){return gR[t]}var mR=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.optionUpdated=function(){t.prototype.optionUpdated.apply(this,arguments);var e=this.ecModel;k(this.option.feature,(function(t,n){var i=vR(n);i&&(i.getDefaultOption&&(i.defaultOption=i.getDefaultOption(e)),w(t,i.defaultOption))}))},n.type="toolbox",n.layoutMode={type:"box",ignoreSize:!0},n.defaultOption={show:!0,z:6,zlevel:0,orient:"horizontal",left:"right",top:"top",backgroundColor:"transparent",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemSize:15,itemGap:8,showTitle:!0,iconStyle:{borderColor:"#666",color:"none"},emphasis:{iconStyle:{borderColor:"#3E98C5"}},tooltip:{show:!1}},n}(sc);function _R(t,e){var n=Bh(e.get("padding")),i=e.getItemStyle(["color","opacity"]);return i.fill=e.get("backgroundColor"),t=new Xa({shape:{x:t.x-n[3],y:t.y-n[0],width:t.width+n[1]+n[3],height:t.height+n[0]+n[2],r:e.get("borderRadius")},style:i,silent:!0,z2:-1})}var xR=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.render=function(t,e,n,i){var r=this.group;if(r.removeAll(),t.get("show")){var o=+t.get("itemSize"),a=t.get("feature")||{},s=this._features||(this._features={}),l=[];k(a,(function(t,e){l.push(e)})),new Iv(this._featureNames||[],l).add(u).update(u).remove(B(u,null)).execute(),this._featureNames=l,function(t,e,n){var i=e.getBoxLayoutParams(),r=e.get("padding"),o={width:n.getWidth(),height:n.getHeight()},a=tc(i,o,r);Qh(e.get("orient"),t,e.get("itemGap"),a.width,a.height),ec(t,i,o,r)}(r,t,n),r.add(_R(r.getBoundingRect(),t)),r.eachChild((function(t){var e=t.__title,i=t.ensureState("emphasis"),a=i.textConfig||(i.textConfig={}),s=t.getTextContent(),l=s&&s.states.emphasis;if(l&&!F(l)&&e){var u=l.style||(l.style={}),h=En(e,ja.makeFont(u)),c=t.x+r.x,p=!1;t.y+r.y+o+h.height>n.getHeight()&&(a.position="top",p=!0);var d=p?-5-h.height:o+8;c+h.width/2>n.getWidth()?(a.position=["100%",d],u.align="right"):c-h.width/2<0&&(a.position=[0,d],u.align="left")}}))}function u(u,h){var c,p=l[u],d=l[h],f=a[p],g=new rh(f,t,t.ecModel);if(i&&null!=i.newTitle&&i.featureName===p&&(f.title=i.newTitle),p&&!d){if(function(t){return 0===t.indexOf("my")}(p))c={onclick:g.option.onclick,featureName:p};else{var y=vR(p);if(!y)return;c=new y}s[p]=c}else if(!(c=s[d]))return;if(c.uid=ah("toolbox-feature"),c.model=g,c.ecModel=e,c.api=n,c instanceof fR){if(!p&&d)return void(c.dispose&&c.dispose(e,n));if(!g.get("show")||c.unusable)return void(c.remove&&c.remove(e,n))}!function(i,a,s){var l,u,h=i.getModel("iconStyle"),c=i.getModel(["emphasis","iconStyle"]),p=a instanceof fR&&a.getIcons?a.getIcons():i.get("icon"),d=i.get("title")||{};"string"==typeof p?(l={})[s]=p:l=p;"string"==typeof d?(u={})[s]=d:u=d;var f=i.iconPaths={};k(l,(function(s,l){var p=Cu(s,{},{x:-o/2,y:-o/2,width:o,height:o});p.setStyle(h.getItemStyle()),p.ensureState("emphasis").style=c.getItemStyle();var d=new ja({style:{text:u[l],align:c.get("textAlign"),borderRadius:c.get("textBorderRadius"),padding:c.get("textPadding"),fill:null},ignore:!0});p.setTextContent(d);var g=t.getModel("tooltip");g&&g.get("show")&&(p.tooltip=M({content:u[l],formatter:g.get("formatter",!0)||function(){return u[l]},formatterParams:{componentType:"toolbox",name:l,title:u[l],$vars:["name","title"]},position:g.get("position",!0)||"bottom"},g.option)),p.__title=u[l],p.on("mouseover",(function(){var e=c.getItemStyle(),n="vertical"===t.get("orient")?null==t.get("right")?"right":"left":null==t.get("bottom")?"bottom":"top";d.setStyle({fill:c.get("textFill")||e.fill||e.stroke||"#000",backgroundColor:c.get("textBackgroundColor")}),p.setTextConfig({position:c.get("textPosition")||n}),d.ignore=!t.get("showTitle"),Ss(this)})).on("mouseout",(function(){"emphasis"!==i.get(["iconStatus",l])&&Ms(this),d.hide()})),("emphasis"===i.get(["iconStatus",l])?Ss:Ms)(p),r.add(p),p.on("click",z(a.onclick,a,e,n,l)),f[l]=p}))}(g,c,p),g.setIconStatus=function(t,e){var n=this.option,i=this.iconPaths;n.iconStatus=n.iconStatus||{},n.iconStatus[t]=e,i[t]&&("emphasis"===e?Ss:Ms)(i[t])},c instanceof fR&&c.render&&c.render(g,e,n,i)}},n.prototype.updateView=function(t,e,n,i){k(this._features,(function(t){t instanceof fR&&t.updateView&&t.updateView(t.model,e,n,i)}))},n.prototype.remove=function(t,e){k(this._features,(function(n){n instanceof fR&&n.remove&&n.remove(t,e)})),this.group.removeAll()},n.prototype.dispose=function(t,e){k(this._features,(function(n){n instanceof fR&&n.dispose&&n.dispose(t,e)}))},n.type="toolbox",n}(Dd);var bR=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.onclick=function(t,e){var n=this.model,i=n.get("name")||t.get("title.0.text")||"echarts",r="svg"===e.getZr().painter.getType(),a=r?"svg":n.get("type",!0)||"png",s=e.getConnectedDataURL({type:a,backgroundColor:n.get("backgroundColor",!0)||t.get("backgroundColor")||"#fff",connectedBackgroundColor:n.get("connectedBackgroundColor"),excludeComponents:n.get("excludeComponents"),pixelRatio:n.get("pixelRatio")});if("function"!=typeof MouseEvent||!o.browser.newEdge&&(o.browser.ie||o.browser.edge))if(window.navigator.msSaveOrOpenBlob||r){var l=s.split(","),u=l[0].indexOf("base64")>-1,h=r?decodeURIComponent(l[1]):l[1];u&&(h=atob(h));var c=i+"."+a;if(window.navigator.msSaveOrOpenBlob){for(var p=h.length,d=new Uint8Array(p);p--;)d[p]=h.charCodeAt(p);var f=new Blob([d]);window.navigator.msSaveOrOpenBlob(f,c)}else{var g=document.createElement("iframe");document.body.appendChild(g);var y=g.contentWindow,v=y.document;v.open("image/svg+xml","replace"),v.write(h),v.close(),y.focus(),v.execCommand("SaveAs",!0,c),document.body.removeChild(g)}}else{var m=n.get("lang"),_='<body style="margin:0;"><img src="'+s+'" style="max-width:100%;" title="'+(m&&m[0]||"")+'" /></body>',x=window.open();x.document.write(_),x.document.title=i}else{var b=document.createElement("a");b.download=i+"."+a,b.target="_blank",b.href=s;var w=new MouseEvent("click",{view:document.defaultView,bubbles:!0,cancelable:!1});b.dispatchEvent(w)}},n.getDefaultOption=function(t){return{show:!0,icon:"M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0",title:t.getLocale(["toolbox","saveAsImage","title"]),type:"png",connectedBackgroundColor:"#fff",name:"",excludeComponents:["toolbox"],pixelRatio:1,lang:t.getLocale(["toolbox","saveAsImage","lang"])}},n}(fR);bR.prototype.unusable=!o.canvasSupported;var wR=[["line","bar"],["stack"]],SR=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.getIcons=function(){var t=this.model,e=t.get("icon"),n={};return k(t.get("type"),(function(t){e[t]&&(n[t]=e[t])})),n},n.getDefaultOption=function(t){return{show:!0,type:[],icon:{line:"M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4",bar:"M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7",stack:"M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z"},title:t.getLocale(["toolbox","magicType","title"]),option:{},seriesIndex:{}}},n.prototype.onclick=function(t,e,n){var i=this.model,r=i.get(["seriesIndex",n]);if(MR[n]){var o,a={series:[]};k(wR,(function(t){C(t,n)>=0&&k(t,(function(t){i.setIconStatus(t,"normal")}))})),i.setIconStatus(n,"emphasis"),t.eachComponent({mainType:"series",query:null==r?null:{seriesIndex:r}},(function(t){var e=t.subType,r=t.id,o=MR[n](e,r,t,i);o&&(I(o,t.option),a.series.push(o));var s=t.coordinateSystem;if(s&&"cartesian2d"===s.type&&("line"===n||"bar"===n)){var l=s.getAxesByScale("ordinal")[0];if(l){var u=l.dim+"Axis",h=t.getReferringComponents(u,wr).models[0].componentIndex;a[u]=a[u]||[];for(var c=0;c<=h;c++)a[u][h]=a[u][h]||{};a[u][h].boundaryGap="bar"===n}}})),"stack"===n&&(o=w({stack:i.option.title.tiled,tiled:i.option.title.stack},i.option.title)),e.dispatchAction({type:"changeMagicType",currentType:n,newOption:a,newTitle:o,featureName:"magicType"})}},n}(fR),MR={line:function(t,e,n,i){if("bar"===t)return w({id:e,type:"line",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},i.get(["option","line"])||{},!0)},bar:function(t,e,n,i){if("line"===t)return w({id:e,type:"bar",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},i.get(["option","bar"])||{},!0)},stack:function(t,e,n,i){var r="__ec_magicType_stack__"===n.get("stack");if("line"===t||"bar"===t)return i.setIconStatus("stack",r?"normal":"emphasis"),w({id:e,stack:r?"":"__ec_magicType_stack__"},i.get(["option","stack"])||{},!0)}};sv({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},(function(t,e){e.mergeOption(t.newOption)}));var IR=new Array(60).join("-");function TR(t){return t.replace(/^\s\s*/,"").replace(/\s\s*$/,"")}var CR=new RegExp("[\t]+","g");function AR(t,e){var n=t.split(new RegExp("\n*"+IR+"\n*","g")),i={series:[]};return k(n,(function(t,n){if(function(t){if(t.slice(0,t.indexOf("\n")).indexOf("\t")>=0)return!0}(t)){var r=function(t){for(var e=t.split(/\n+/g),n=[],i=P(TR(e.shift()).split(CR),(function(t){return{name:t,data:[]}})),r=0;r<e.length;r++){var o=TR(e[r]).split(CR);n.push(o.shift());for(var a=0;a<o.length;a++)i[a]&&(i[a].data[r]=o[a])}return{series:i,categories:n}}(t),o=e[n],a=o.axisDim+"Axis";o&&(i[a]=i[a]||[],i[a][o.axisIndex]={data:r.categories},i.series=i.series.concat(r.series))}else{r=function(t){for(var e=t.split(/\n+/g),n=TR(e.shift()),i=[],r=0;r<e.length;r++){var o=TR(e[r]);if(o){var a=o.split(CR),s="",l=void 0,u=!1;isNaN(a[0])?(u=!0,s=a[0],a=a.slice(1),i[r]={name:s,value:[]},l=i[r].value):l=i[r]=[];for(var h=0;h<a.length;h++)l.push(+a[h]);1===l.length&&(u?i[r].value=l[0]:i[r]=l[0])}}return{name:n,data:i}}(t);i.series.push(r)}})),i}var DR=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.onclick=function(t,e){var n=e.getDom(),i=this.model;this._dom&&n.removeChild(this._dom);var r=document.createElement("div");r.style.cssText="position:absolute;left:5px;top:5px;bottom:5px;right:5px;",r.style.backgroundColor=i.get("backgroundColor")||"#fff";var o=document.createElement("h4"),a=i.get("lang")||[];o.innerHTML=a[0]||i.get("title"),o.style.cssText="margin: 10px 20px;",o.style.color=i.get("textColor");var s=document.createElement("div"),l=document.createElement("textarea");s.style.cssText="display:block;width:100%;overflow:auto;";var u=i.get("optionToContent"),h=i.get("contentToOption"),c=function(t){var e,n,i,r=function(t){var e={},n=[],i=[];return t.eachRawSeries((function(t){var r=t.coordinateSystem;if(!r||"cartesian2d"!==r.type&&"polar"!==r.type)n.push(t);else{var o=r.getBaseAxis();if("category"===o.type){var a=o.dim+"_"+o.index;e[a]||(e[a]={categoryAxis:o,valueAxis:r.getOtherAxis(o),series:[]},i.push({axisDim:o.dim,axisIndex:o.index})),e[a].series.push(t)}else n.push(t)}})),{seriesGroupByCategoryAxis:e,other:n,meta:i}}(t);return{value:R([(n=r.seriesGroupByCategoryAxis,i=[],k(n,(function(t,e){var n=t.categoryAxis,r=t.valueAxis.dim,o=[" "].concat(P(t.series,(function(t){return t.name}))),a=[n.model.getCategories()];k(t.series,(function(t){var e=t.getRawData();a.push(t.getRawData().mapArray(e.mapDimension(r),(function(t){return t})))}));for(var s=[o.join("\t")],l=0;l<a[0].length;l++){for(var u=[],h=0;h<a.length;h++)u.push(a[h][l]);s.push(u.join("\t"))}i.push(s.join("\n"))})),i.join("\n\n"+IR+"\n\n")),(e=r.other,P(e,(function(t){var e=t.getRawData(),n=[t.name],i=[];return e.each(e.dimensions,(function(){for(var t=arguments.length,r=arguments[t-1],o=e.getName(r),a=0;a<t-1;a++)i[a]=arguments[a];n.push((o?o+"\t":"")+i.join("\t"))})),n.join("\n")})).join("\n\n"+IR+"\n\n"))],(function(t){return!!t.replace(/[\n\t\s]/g,"")})).join("\n\n"+IR+"\n\n"),meta:r.meta}}(t);if("function"==typeof u){var p=u(e.getOption());"string"==typeof p?s.innerHTML=p:Z(p)&&s.appendChild(p)}else s.appendChild(l),l.readOnly=i.get("readOnly"),l.style.cssText="width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;",l.style.color=i.get("textColor"),l.style.borderColor=i.get("textareaBorderColor"),l.style.backgroundColor=i.get("textareaColor"),l.value=c.value;var d=c.meta,f=document.createElement("div");f.style.cssText="position:absolute;bottom:0;left:0;right:0;";var g="float:right;margin-right:20px;border:none;cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px",y=document.createElement("div"),v=document.createElement("div");g+=";background-color:"+i.get("buttonColor"),g+=";color:"+i.get("buttonTextColor");var m=this;function _(){n.removeChild(r),m._dom=null}Jt(y,"click",_),Jt(v,"click",(function(){if(null==h&&null!=u||null!=h&&null==u)_();else{var t;try{t="function"==typeof h?h(s,e.getOption()):AR(l.value,d)}catch(t){throw _(),new Error("Data view format error "+t)}t&&e.dispatchAction({type:"changeDataView",newOption:t}),_()}})),y.innerHTML=a[1],v.innerHTML=a[2],v.style.cssText=g,y.style.cssText=g,!i.get("readOnly")&&f.appendChild(v),f.appendChild(y),r.appendChild(o),r.appendChild(s),r.appendChild(f),s.style.height=n.clientHeight-80+"px",n.appendChild(r),this._dom=r},n.prototype.remove=function(t,e){this._dom&&e.getDom().removeChild(this._dom)},n.prototype.dispose=function(t,e){this.remove(t,e)},n.getDefaultOption=function(t){return{show:!0,readOnly:!1,optionToContent:null,contentToOption:null,icon:"M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28",title:t.getLocale(["toolbox","dataView","title"]),lang:t.getLocale(["toolbox","dataView","lang"]),backgroundColor:"#fff",textColor:"#000",textareaColor:"#fff",textareaBorderColor:"#333",buttonColor:"#c23531",buttonTextColor:"#fff"}},n}(fR);function LR(t,e){return P(t,(function(t,n){var i=e&&e[n];if(Y(i)&&!V(i)){Y(t)&&!V(t)||(t={value:t});var r=null!=i.name&&null==t.name;return t=I(t,i),r&&delete t.name,t}return t}))}sv({type:"changeDataView",event:"dataViewChanged",update:"prepareAndUpdate"},(function(t,e){var n=[];k(t.newOption.series,(function(t){var i=e.getSeriesByName(t.name)[0];if(i){var r=i.get("data");n.push({name:t.name,data:LR(t.data,r)})}else n.push(M({type:"scatter"},t))})),e.mergeOption(I({series:n},t.newOption))}));var kR=k,PR=_r();function OR(t){var e=PR(t);return e.snapshots||(e.snapshots=[{}]),e.snapshots}var RR=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.onclick=function(t,e){!function(t){PR(t).snapshots=null}(t),e.dispatchAction({type:"restore",from:this.uid})},n.getDefaultOption=function(t){return{show:!0,icon:"M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5",title:t.getLocale(["toolbox","restore","title"])}},n}(fR);sv({type:"restore",event:"restore",update:"prepareAndUpdate"},(function(t,e){e.resetOption("recreate")}));var NR=["dataToPoint","pointToData"],ER=["grid","xAxis","yAxis","geo","graph","polar","radiusAxis","angleAxis","bmap"],zR=function(){function t(t,e,n){var i=this;this._targetInfoList=[];var r=VR(e,t);k(FR,(function(t,e){(!n||!n.include||C(n.include,e)>=0)&&t(r,i._targetInfoList)}))}return t.prototype.setOutputRanges=function(t,e){return this.matchOutputRanges(t,e,(function(t,e,n){if((t.coordRanges||(t.coordRanges=[])).push(e),!t.coordRange){t.coordRange=e;var i=WR[t.brushType](0,n,e);t.__rangeOffset={offset:XR[t.brushType](i.values,t.range,[1,1]),xyMinMax:i.xyMinMax}}})),t},t.prototype.matchOutputRanges=function(t,e,n){k(t,(function(t){var i=this.findTargetInfo(t,e);i&&!0!==i&&k(i.coordSyses,(function(i){var r=WR[t.brushType](1,i,t.range);n(t,r.values,i,e)}))}),this)},t.prototype.setInputRanges=function(t,e){k(t,(function(t){var n,i,r,o,a,s=this.findTargetInfo(t,e);if(t.range=t.range||[],s&&!0!==s){t.panelId=s.panelId;var l=WR[t.brushType](0,s.coordSys,t.coordRange),u=t.__rangeOffset;t.range=u?XR[t.brushType](l.values,u.offset,(n=l.xyMinMax,i=u.xyMinMax,r=ZR(n),o=ZR(i),a=[r[0]/o[0],r[1]/o[1]],isNaN(a[0])&&(a[0]=1),isNaN(a[1])&&(a[1]=1),a)):l.values}}),this)},t.prototype.makePanelOpts=function(t,e){return P(this._targetInfoList,(function(n){var i=n.getPanelRect();return{panelId:n.panelId,defaultBrushType:e?e(n):null,clipPath:fA(i),isTargetByCursor:yA(i,t,n.coordSysModel),getLinearBrushOtherExtent:gA(i)}}))},t.prototype.controlSeries=function(t,e,n){var i=this.findTargetInfo(t,n);return!0===i||i&&C(i.coordSyses,e.coordinateSystem)>=0},t.prototype.findTargetInfo=function(t,e){for(var n=this._targetInfoList,i=VR(e,t),r=0;r<n.length;r++){var o=n[r],a=t.panelId;if(a){if(o.panelId===a)return o}else for(var s=0;s<GR.length;s++)if(GR[s](i,o))return o}return!0},t}();function BR(t){return t[0]>t[1]&&t.reverse(),t}function VR(t,e){return br(t,e,{includeMainTypes:ER})}var FR={grid:function(t,e){var n=t.xAxisModels,i=t.yAxisModels,r=t.gridModels,o=lt(),a={},s={};(n||i||r)&&(k(n,(function(t){var e=t.axis.grid.model;o.set(e.id,e),a[e.id]=!0})),k(i,(function(t){var e=t.axis.grid.model;o.set(e.id,e),s[e.id]=!0})),k(r,(function(t){o.set(t.id,t),a[t.id]=!0,s[t.id]=!0})),o.each((function(t){var r=t.coordinateSystem,o=[];k(r.getCartesians(),(function(t,e){(C(n,t.getAxis("x").model)>=0||C(i,t.getAxis("y").model)>=0)&&o.push(t)})),e.push({panelId:"grid--"+t.id,gridModel:t,coordSysModel:t,coordSys:o[0],coordSyses:o,getPanelRect:HR.grid,xAxisDeclared:a[t.id],yAxisDeclared:s[t.id]})})))},geo:function(t,e){k(t.geoModels,(function(t){var n=t.coordinateSystem;e.push({panelId:"geo--"+t.id,geoModel:t,coordSysModel:t,coordSys:n,coordSyses:[n],getPanelRect:HR.geo})}))}},GR=[function(t,e){var n=t.xAxisModel,i=t.yAxisModel,r=t.gridModel;return!r&&n&&(r=n.axis.grid.model),!r&&i&&(r=i.axis.grid.model),r&&r===e.gridModel},function(t,e){var n=t.geoModel;return n&&n===e.geoModel}],HR={grid:function(){return this.coordSys.master.getRect().clone()},geo:function(){var t=this.coordSys,e=t.getBoundingRect().clone();return e.applyTransform(xu(t)),e}},WR={lineX:B(YR,0),lineY:B(YR,1),rect:function(t,e,n){var i=e[NR[t]]([n[0][0],n[1][0]]),r=e[NR[t]]([n[0][1],n[1][1]]),o=[BR([i[0],r[0]]),BR([i[1],r[1]])];return{values:o,xyMinMax:o}},polygon:function(t,e,n){var i=[[1/0,-1/0],[1/0,-1/0]];return{values:P(n,(function(n){var r=e[NR[t]](n);return i[0][0]=Math.min(i[0][0],r[0]),i[1][0]=Math.min(i[1][0],r[1]),i[0][1]=Math.max(i[0][1],r[0]),i[1][1]=Math.max(i[1][1],r[1]),r})),xyMinMax:i}}};function YR(t,e,n,i){var r=n.getAxis(["x","y"][t]),o=BR(P([0,1],(function(t){return e?r.coordToData(r.toLocalCoord(i[t])):r.toGlobalCoord(r.dataToCoord(i[t]))}))),a=[];return a[t]=o,a[1-t]=[NaN,NaN],{values:o,xyMinMax:a}}var XR={lineX:B(UR,0),lineY:B(UR,1),rect:function(t,e,n){return[[t[0][0]-n[0]*e[0][0],t[0][1]-n[0]*e[0][1]],[t[1][0]-n[1]*e[1][0],t[1][1]-n[1]*e[1][1]]]},polygon:function(t,e,n){return P(t,(function(t,i){return[t[0]-n[0]*e[i][0],t[1]-n[1]*e[i][1]]}))}};function UR(t,e,n,i){return[e[0]-i[t]*n[0],e[1]-i[t]*n[1]]}function ZR(t){return t?[t[0][1]-t[0][0],t[1][1]-t[1][0]]:[NaN,NaN]}var jR,qR,KR=k,$R="\0_ec_\0"+"toolbox-dataZoom_",JR=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.render=function(t,e,n,i){this.brushController||(this.brushController=new zC(n.getZr()),this.brushController.on("brush",z(this._onBrush,this)).mount()),function(t,e,n,i,r){var o=n.isZoomActive;i&&"takeGlobalCursor"===i.type&&(o="dataZoomSelect"===i.key&&i.dataZoomSelectActive);n.isZoomActive=o,t.setIconStatus("zoom",o?"emphasis":"normal");var a=new zR(tN(t),e,{include:["grid"]}).makePanelOpts(r,(function(t){return t.xAxisDeclared&&!t.yAxisDeclared?"lineX":!t.xAxisDeclared&&t.yAxisDeclared?"lineY":"rect"}));n.brushController.setPanels(a).enableBrush(!(!o||!a.length)&&{brushType:"auto",brushStyle:t.getModel("brushStyle").getItemStyle()})}(t,e,this,i,n),function(t,e){t.setIconStatus("back",function(t){return OR(t).length}(e)>1?"emphasis":"normal")}(t,e)},n.prototype.onclick=function(t,e,n){QR[n].call(this)},n.prototype.remove=function(t,e){this.brushController.unmount()},n.prototype.dispose=function(t,e){this.brushController.dispose()},n.prototype._onBrush=function(t){var e=t.areas;if(t.isEnd&&e.length){var n={},i=this.ecModel;this.brushController.updateCovers([]),new zR(tN(this.model),i,{include:["grid"]}).matchOutputRanges(e,i,(function(t,e,n){if("cartesian2d"===n.type){var i=t.brushType;"rect"===i?(r("x",n,e[0]),r("y",n,e[1])):r({lineX:"x",lineY:"y"}[i],n,e)}})),function(t,e){var n=OR(t);kR(e,(function(e,i){for(var r=n.length-1;r>=0&&!n[r][i];r--);if(r<0){var o=t.queryComponents({mainType:"dataZoom",subType:"select",id:i})[0];if(o){var a=o.getPercentRange();n[0][i]={dataZoomId:i,start:a[0],end:a[1]}}}})),n.push(e)}(i,n),this._dispatchZoomAction(n)}function r(t,e,r){var o=e.getAxis(t),a=o.model,s=function(t,e,n){var i;return n.eachComponent({mainType:"dataZoom",subType:"select"},(function(n){n.getAxisModel(t,e.componentIndex)&&(i=n)})),i}(t,a,i),l=s.findRepresentativeAxisProxy(a).getMinMaxSpan();null==l.minValueSpan&&null==l.maxValueSpan||(r=fC(0,r.slice(),o.scale.getExtent(),0,l.minValueSpan,l.maxValueSpan)),s&&(n[s.id]={dataZoomId:s.id,startValue:r[0],endValue:r[1]})}},n.prototype._dispatchZoomAction=function(t){var e=[];KR(t,(function(t,n){e.push(b(t))})),e.length&&this.api.dispatchAction({type:"dataZoom",from:this.uid,batch:e})},n.getDefaultOption=function(t){return{show:!0,filterMode:"filter",icon:{zoom:"M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1",back:"M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26"},title:t.getLocale(["toolbox","dataZoom","title"]),brushStyle:{borderWidth:0,color:"rgba(210,219,238,0.2)"}}},n}(fR),QR={zoom:function(){var t=!this.isZoomActive;this.api.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:t})},back:function(){this._dispatchZoomAction(function(t){var e=OR(t),n=e[e.length-1];e.length>1&&e.pop();var i={};return kR(n,(function(t,n){for(var r=e.length-1;r>=0;r--)if(t=e[r][n]){i[n]=t;break}})),i}(this.ecModel))}};function tN(t){var e={xAxisIndex:t.get("xAxisIndex",!0),yAxisIndex:t.get("yAxisIndex",!0),xAxisId:t.get("xAxisId",!0),yAxisId:t.get("yAxisId",!0)};return null==e.xAxisIndex&&null==e.xAxisId&&(e.xAxisIndex="all"),null==e.yAxisIndex&&null==e.yAxisId&&(e.yAxisIndex="all"),e}jR="dataZoom",qR=function(t){var e=t.getComponent("toolbox",0);if(e){var n=e.getModel(["feature","dataZoom"]),i=[],r=br(t,tN(n));return KR(r.xAxisModels,(function(t){return o(t,"xAxis","xAxisIndex")})),KR(r.yAxisModels,(function(t){return o(t,"yAxis","yAxisIndex")})),i}function o(t,e,r){var o=t.componentIndex,a={type:"select",$fromToolbox:!0,filterMode:n.get("filterMode",!0)||"filter",id:$R+e+o};a[r]=o,i.push(a)}},it(null==bc.get(jR)&&qR),bc.set(jR,qR);var eN=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.type="tooltip",n.dependencies=["axisPointer"],n.defaultOption={zlevel:0,z:60,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",renderMode:"auto",confine:null,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"#fff",shadowBlur:10,shadowColor:"rgba(0, 0, 0, .2)",shadowOffsetX:1,shadowOffsetY:2,borderRadius:4,borderWidth:1,padding:null,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#666",fontSize:14}},n}(sc);function nN(t){var e=t.get("confine");return null!=e?!!e:"richText"===t.get("renderMode")}var iN=["-ms-","-moz-","-o-","-webkit-",""];function rN(t,e,n){var i=[],r=t.get("transitionDuration"),a=t.get("backgroundColor"),s=t.get("shadowBlur"),l=t.get("shadowColor"),u=t.get("shadowOffsetX"),h=t.get("shadowOffsetY"),c=t.getModel("textStyle"),p=yd(t,"html"),d=u+"px "+h+"px "+s+"px "+l;return i.push("box-shadow:"+d),e&&r&&i.push(function(t,e){var n="cubic-bezier(0.23, 1, 0.32, 1)",i="opacity "+t/2+"s "+n+",visibility "+t/2+"s "+n;return e||(i+=",left "+t+"s "+n+",top "+t+"s "+n),P(iN,(function(t){return t+"transition:"+i})).join(";")}(r,n)),a&&(o.canvasSupported?i.push("background-Color:"+a):(i.push("background-Color:#"+je(a)),i.push("filter:alpha(opacity=70)"))),k(["width","color","radius"],(function(e){var n="border-"+e,r=zh(n),o=t.get(r);null!=o&&i.push(n+":"+o+("color"===e?"":"px"))})),i.push(function(t){var e=[],n=t.get("fontSize"),i=t.getTextColor();i&&e.push("color:"+i),e.push("font:"+t.getFont()),n&&e.push("line-height:"+Math.round(3*n/2)+"px");var r=t.get("textShadowColor"),o=t.get("textShadowBlur")||0,a=t.get("textShadowOffsetX")||0,s=t.get("textShadowOffsetY")||0;return r&&o&&e.push("text-shadow:"+a+"px "+s+"px "+o+"px "+r),k(["decoration","align"],(function(n){var i=t.get(n);i&&e.push("text-"+n+":"+i)})),e.join(";")}(c)),null!=p&&i.push("padding:"+Bh(p).join("px ")+"px"),i.join(";")+";"}function oN(t,e,n,i,r){var o=e&&e.painter;if(n){var a=o&&o.getViewportRoot();a&&function(t,e,n,i,r){Wt(Ht,e,i,r,!0)&&Wt(t,n,Ht[0],Ht[1])}(t,a,document.body,i,r)}else{t[0]=i,t[1]=r;var s=o&&o.getViewportRootOffset();s&&(t[0]+=s.offsetLeft,t[1]+=s.offsetTop)}t[2]=t[0]/e.getWidth(),t[3]=t[1]/e.getHeight()}var aN=function(){function t(t,e,n){if(this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._firstShow=!0,this._longHide=!0,o.wxa)return null;var i=document.createElement("div");i.domBelongToZr=!0,this.el=i;var r=this._zr=e.getZr(),a=this._appendToBody=n&&n.appendToBody;oN(this._styleCoord,r,a,e.getWidth()/2,e.getHeight()/2),a?document.body.appendChild(i):t.appendChild(i),this._container=t;var s=this;i.onmouseenter=function(){s._enterable&&(clearTimeout(s._hideTimeout),s._show=!0),s._inContent=!0},i.onmousemove=function(t){if(t=t||window.event,!s._enterable){var e=r.handler;$t(r.painter.getViewportRoot(),t,!0),e.dispatch("mousemove",t)}},i.onmouseleave=function(){s._inContent=!1,s._enterable&&s._show&&s.hideLater(s._hideDelay)}}return t.prototype.update=function(t){var e=this._container,n=e.currentStyle||document.defaultView.getComputedStyle(e),i=e.style;"absolute"!==i.position&&"absolute"!==n.position&&(i.position="relative"),t.get("alwaysShowContent")&&this._moveIfResized(),this.el.className=t.get("className")||""},t.prototype.show=function(t,e){clearTimeout(this._hideTimeout),clearTimeout(this._longHideTimeout);var n=this.el,i=this._styleCoord,r=n.offsetHeight/2;e=Zh(e),n.style.cssText="position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;"+rN(t,!this._firstShow,this._longHide)+";left:"+i[0]+"px;top:"+(i[1]-r)+"px;border-color: "+e+";"+(t.get("extraCssText")||""),n.style.display=n.innerHTML?"block":"none",n.style.pointerEvents=this._enterable?"auto":"none",this._show=!0,this._firstShow=!1,this._longHide=!1},t.prototype.setContent=function(t,e,n,i,r){if(null!=t){var o=this.el;if(G(r)&&"item"===n.get("trigger")&&!nN(n)&&(t+=function(t,e,n){if(!G(n)||"inside"===n)return"";e=Zh(e);var i,r="left"===(i=n)?"right":"right"===i?"left":"top"===i?"bottom":"top",o="",a="";return C(["left","right"],r)>-1?(o=r+":-6px;top:50%;",a="translateY(-50%) rotate("+("left"===r?-225:-45)+"deg)"):(o=r+":-6px;left:50%;",a="translateX(-50%) rotate("+("top"===r?225:45)+"deg)"),'<div style="'+["position:absolute;width:10px;height:10px;",""+o+(a=P(iN,(function(t){return t+"transform:"+a})).join(";"))+";","border-bottom: "+e+" solid 1px;","border-right: "+e+" solid 1px;","background-color: "+t+";","box-shadow: 8px 8px 16px -3px #000;"].join("")+'"></div>'}(n.get("backgroundColor"),i,r)),G(t))o.innerHTML=t;else if(t){o.innerHTML="",V(t)||(t=[t]);for(var a=0;a<t.length;a++)Z(t[a])&&t[a].parentNode!==o&&o.appendChild(t[a])}}},t.prototype.setEnterable=function(t){this._enterable=t},t.prototype.getSize=function(){var t=this.el;return[t.clientWidth,t.clientHeight]},t.prototype.moveTo=function(t,e){var n=this._styleCoord;if(oN(n,this._zr,this._appendToBody,t,e),null!=n[0]&&null!=n[1]){var i=this.el.style;i.left=n[0].toFixed(0)+"px",i.top=n[1].toFixed(0)+"px"}},t.prototype._moveIfResized=function(){var t=this._styleCoord[2],e=this._styleCoord[3];this.moveTo(t*this._zr.getWidth(),e*this._zr.getHeight())},t.prototype.hide=function(){var t=this;this.el.style.visibility="hidden",this.el.style.opacity="0",this._show=!1,this._longHideTimeout=setTimeout((function(){return t._longHide=!0}),500)},t.prototype.hideLater=function(t){!this._show||this._inContent&&this._enterable||(t?(this._hideDelay=t,this._show=!1,this._hideTimeout=setTimeout(z(this.hide,this),t)):this.hide())},t.prototype.isShow=function(){return this._show},t.prototype.dispose=function(){this.el.parentNode.removeChild(this.el)},t.prototype.getOuterSize=function(){var t=this.el.clientWidth,e=this.el.clientHeight;if(document.defaultView&&document.defaultView.getComputedStyle){var n=document.defaultView.getComputedStyle(this.el);n&&(t+=parseInt(n.borderLeftWidth,10)+parseInt(n.borderRightWidth,10),e+=parseInt(n.borderTopWidth,10)+parseInt(n.borderBottomWidth,10))}return{width:t,height:e}},t}(),sN=function(){function t(t){this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._zr=t.getZr(),hN(this._styleCoord,this._zr,t.getWidth()/2,t.getHeight()/2)}return t.prototype.update=function(t){t.get("alwaysShowContent")&&this._moveIfResized()},t.prototype.show=function(){this._hideTimeout&&clearTimeout(this._hideTimeout),this.el.show(),this._show=!0},t.prototype.setContent=function(t,e,n,i,r){Y(t)&&sr(""),this.el&&this._zr.remove(this.el);var o=n.getModel("textStyle");this.el=new ja({style:{rich:e.richTextStyles,text:t,lineHeight:22,backgroundColor:n.get("backgroundColor"),borderRadius:n.get("borderRadius"),borderWidth:1,borderColor:i,shadowColor:n.get("shadowColor"),shadowBlur:n.get("shadowBlur"),shadowOffsetX:n.get("shadowOffsetX"),shadowOffsetY:n.get("shadowOffsetY"),textShadowColor:o.get("textShadowColor"),textShadowBlur:o.get("textShadowBlur")||0,textShadowOffsetX:o.get("textShadowOffsetX")||0,textShadowOffsetY:o.get("textShadowOffsetY")||0,fill:n.get(["textStyle","color"]),padding:yd(n,"richText"),verticalAlign:"top",align:"left"},z:n.get("z")}),this._zr.add(this.el);var a=this;this.el.on("mouseover",(function(){a._enterable&&(clearTimeout(a._hideTimeout),a._show=!0),a._inContent=!0})),this.el.on("mouseout",(function(){a._enterable&&a._show&&a.hideLater(a._hideDelay),a._inContent=!1}))},t.prototype.setEnterable=function(t){this._enterable=t},t.prototype.getSize=function(){var t=this.el,e=this.el.getBoundingRect(),n=uN(t.style);return[e.width+n.left+n.right,e.height+n.top+n.bottom]},t.prototype.moveTo=function(t,e){var n=this.el;if(n){var i=this._styleCoord;hN(i,this._zr,t,e),t=i[0],e=i[1];var r=n.style,o=lN(r.borderWidth||0),a=uN(r);n.x=t+o+a.left,n.y=e+o+a.top,n.markRedraw()}},t.prototype._moveIfResized=function(){var t=this._styleCoord[2],e=this._styleCoord[3];this.moveTo(t*this._zr.getWidth(),e*this._zr.getHeight())},t.prototype.hide=function(){this.el&&this.el.hide(),this._show=!1},t.prototype.hideLater=function(t){!this._show||this._inContent&&this._enterable||(t?(this._hideDelay=t,this._show=!1,this._hideTimeout=setTimeout(z(this.hide,this),t)):this.hide())},t.prototype.isShow=function(){return this._show},t.prototype.getOuterSize=function(){var t=this.getSize();return{width:t[0],height:t[1]}},t.prototype.dispose=function(){this._zr.remove(this.el)},t}();function lN(t){return Math.max(0,t)}function uN(t){var e=lN(t.shadowBlur||0),n=lN(t.shadowOffsetX||0),i=lN(t.shadowOffsetY||0);return{left:lN(e-n),right:lN(e+n),top:lN(e-i),bottom:lN(e+i)}}function hN(t,e,n,i){t[0]=n,t[1]=i,t[2]=t[0]/e.getWidth(),t[3]=t[1]/e.getHeight()}var cN=z,pN=k,dN=Vi,fN=new Xa({shape:{x:-1,y:-1,width:2,height:2}}),gN=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.init=function(t,e){if(!o.node){var n,i=t.getComponent("tooltip"),r=i.get("renderMode");this._renderMode="auto"===(n=r)?o.domSupported?"html":"richText":n||"html",this._tooltipContent="richText"===this._renderMode?new sN(e):new aN(e.getDom(),e,{appendToBody:i.get("appendToBody",!0)})}},n.prototype.render=function(t,e,n){if(!o.node){this.group.removeAll(),this._tooltipModel=t,this._ecModel=e,this._api=n,this._alwaysShowContent=t.get("alwaysShowContent");var i=this._tooltipContent;i.update(t),i.setEnterable(t.get("enterable")),this._initGlobalListener(),this._keepShow()}},n.prototype._initGlobalListener=function(){var t=this._tooltipModel.get("triggerOn");wP("itemTooltip",this._api,cN((function(e,n,i){"none"!==t&&(t.indexOf(e)>=0?this._tryShow(n,i):"leave"===e&&this._hide(i))}),this))},n.prototype._keepShow=function(){var t=this._tooltipModel,e=this._ecModel,n=this._api;if(null!=this._lastX&&null!=this._lastY&&"none"!==t.get("triggerOn")){var i=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout((function(){!n.isDisposed()&&i.manuallyShowTip(t,e,n,{x:i._lastX,y:i._lastY,dataByCoordSys:i._lastDataByCoordSys})}))}},n.prototype.manuallyShowTip=function(t,e,n,i){if(i.from!==this.uid&&!o.node){var r=vN(i,n);this._ticket="";var a=i.dataByCoordSys;if(i.tooltip&&null!=i.x&&null!=i.y){var s=fN;s.x=i.x,s.y=i.y,s.update(),s.tooltip=i.tooltip,this._tryShow({offsetX:i.x,offsetY:i.y,target:s},r)}else if(a)this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,dataByCoordSys:a,tooltipOption:i.tooltipOption},r);else if(null!=i.seriesIndex){if(this._manuallyAxisShowTip(t,e,n,i))return;var l=CP(i,e),u=l.point[0],h=l.point[1];null!=u&&null!=h&&this._tryShow({offsetX:u,offsetY:h,position:i.position,target:l.el},r)}else null!=i.x&&null!=i.y&&(n.dispatchAction({type:"updateAxisPointer",x:i.x,y:i.y}),this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,target:n.getZr().findHover(i.x,i.y).target},r))}},n.prototype.manuallyHideTip=function(t,e,n,i){var r=this._tooltipContent;!this._alwaysShowContent&&this._tooltipModel&&r.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=this._lastDataByCoordSys=null,i.from!==this.uid&&this._hide(vN(i,n))},n.prototype._manuallyAxisShowTip=function(t,e,n,i){var r=i.seriesIndex,o=i.dataIndex,a=e.getComponent("axisPointer").coordSysAxesInfo;if(null!=r&&null!=o&&null!=a){var s=e.getSeriesByIndex(r);if(s)if("axis"===yN([s.getData().getItemModel(o),s,(s.coordinateSystem||{}).model,t]).get("trigger"))return n.dispatchAction({type:"updateAxisPointer",seriesIndex:r,dataIndex:o,position:i.position}),!0}},n.prototype._tryShow=function(t,e){var n=t.target;if(this._tooltipModel){this._lastX=t.offsetX,this._lastY=t.offsetY;var i=t.dataByCoordSys;i&&i.length?this._showAxisTooltip(i,t):n&&pg(n,(function(t){return null!=ns(t).dataIndex}),!0)?(this._lastDataByCoordSys=null,this._showSeriesItemTooltip(t,n,e)):n&&n.tooltip?(this._lastDataByCoordSys=null,this._showComponentItemTooltip(t,n,e)):(this._lastDataByCoordSys=null,this._hide(e))}},n.prototype._showOrMove=function(t,e){var n=t.get("showDelay");e=z(e,this),clearTimeout(this._showTimout),n>0?this._showTimout=setTimeout(e,n):e()},n.prototype._showAxisTooltip=function(t,e){var n=this._ecModel,i=this._tooltipModel,r=[e.offsetX,e.offsetY],o=yN([e.tooltipOption,i]),a=this._renderMode,s=[],l=ld("section",{blocks:[],noHeader:!0}),u=[],h=new vd;pN(t,(function(t){pN(t.dataByAxis,(function(t){var e=n.getComponent(t.axisDim+"Axis",t.axisIndex),i=t.value;if(e&&null!=i){var r=uP(i,e.axis,n,t.seriesDataIndices,t.valueLabelOpt),o=ld("section",{header:r,noHeader:!rt(r),sortBlocks:!0,blocks:[]});l.blocks.push(o),k(t.seriesDataIndices,(function(l){var c=n.getSeriesByIndex(l.seriesIndex),p=l.dataIndexInside,d=c.getDataParams(p);d.axisDim=t.axisDim,d.axisIndex=t.axisIndex,d.axisType=t.axisType,d.axisId=t.axisId,d.axisValue=l_(e.axis,{value:i}),d.axisValueLabel=r,d.marker=h.makeTooltipMarker("item",Zh(d.color),a);var f=Np(c.formatTooltip(p,!0,null));f.markupFragment&&o.blocks.push(f.markupFragment),f.markupText&&u.push(f.markupText),s.push(d)}))}}))})),l.blocks.reverse(),u.reverse();var c=e.position,p=o.get("order"),d=cd(l,h,a,p,n.get("useUTC"),o.get("textStyle"));d&&u.unshift(d);var f="richText"===a?"\n\n":"<br/>",g=u.join(f);this._showOrMove(o,(function(){this._updateContentNotChangedOnAxis(t)?this._updatePosition(o,c,r[0],r[1],this._tooltipContent,s):this._showTooltipContent(o,g,s,Math.random()+"",r[0],r[1],c,null,h)}))},n.prototype._showSeriesItemTooltip=function(t,e,n){var i=pg(e,(function(t){return null!=ns(t).dataIndex}),!0),r=this._ecModel,o=ns(i),a=o.seriesIndex,s=r.getSeriesByIndex(a),l=o.dataModel||s,u=o.dataIndex,h=o.dataType,c=l.getData(h),p=this._renderMode,d=yN([c.getItemModel(u),l,s&&(s.coordinateSystem||{}).model,this._tooltipModel]),f=d.get("trigger");if(null==f||"item"===f){var g=l.getDataParams(u,h),y=new vd;g.marker=y.makeTooltipMarker("item",Zh(g.color),p);var v=Np(l.formatTooltip(u,!1,h)),m=d.get("order"),_=v.markupFragment?cd(v.markupFragment,y,p,m,r.get("useUTC"),d.get("textStyle")):v.markupText,x="item_"+l.name+"_"+u;this._showOrMove(d,(function(){this._showTooltipContent(d,_,g,x,t.offsetX,t.offsetY,t.position,t.target,y)})),n({type:"showTip",dataIndexInside:u,dataIndex:c.getRawIndex(u),seriesIndex:a,from:this.uid})}},n.prototype._showComponentItemTooltip=function(t,e,n){var i=e.tooltip;if(G(i)){i={content:i,formatter:i}}var r=new rh(i,this._tooltipModel,this._ecModel),o=r.get("content"),a=Math.random()+"",s=new vd;this._showOrMove(r,(function(){this._showTooltipContent(r,o,r.get("formatterParams")||{},a,t.offsetX,t.offsetY,t.position,e,s)})),n({type:"showTip",from:this.uid})},n.prototype._showTooltipContent=function(t,e,n,i,r,o,a,s,l){if(this._ticket="",t.get("showContent")&&t.get("show")){var u=this._tooltipContent,h=t.get("formatter");a=a||t.get("position");var c=e,p=this._getNearestPoint([r,o],n,t.get("trigger"),t.get("borderColor"));if(h&&G(h)){var d=t.ecModel.get("useUTC"),f=V(n)?n[0]:n;c=h,f&&f.axisType&&f.axisType.indexOf("time")>=0&&(c=_h(f.axisValue,c,d)),c=Xh(c,n,!0)}else if(F(h)){var g=cN((function(e,i){e===this._ticket&&(u.setContent(i,l,t,p.color,a),this._updatePosition(t,a,r,o,u,n,s))}),this);this._ticket=i,c=h(n,i,g)}u.setContent(c,l,t,p.color,a),u.show(t,p.color),this._updatePosition(t,a,r,o,u,n,s)}},n.prototype._getNearestPoint=function(t,e,n,i){return"axis"===n||V(e)?{color:i||("html"===this._renderMode?"#fff":"none")}:V(e)?void 0:{color:i||e.color||e.borderColor}},n.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=r.getSize(),h=t.get("align"),c=t.get("verticalAlign"),p=a&&a.getBoundingRect().clone();if(a&&p.applyTransform(a.transform),F(e)&&(e=e([n,i],o,r.el,p,{viewSize:[s,l],contentSize:u.slice()})),V(e))n=dN(e[0],s),i=dN(e[1],l);else if(Y(e)){var d=e;d.width=u[0],d.height=u[1];var f=tc(d,{width:s,height:l});n=f.x,i=f.y,h=null,c=null}else if(G(e)&&a){var g=function(t,e,n){var i=n[0],r=n[1],o=10,a=5,s=0,l=0,u=e.width,h=e.height;switch(t){case"inside":s=e.x+u/2-i/2,l=e.y+h/2-r/2;break;case"top":s=e.x+u/2-i/2,l=e.y-r-o;break;case"bottom":s=e.x+u/2-i/2,l=e.y+h+o;break;case"left":s=e.x-i-o-a,l=e.y+h/2-r/2;break;case"right":s=e.x+u+o+a,l=e.y+h/2-r/2}return[s,l]}(e,p,u);n=g[0],i=g[1]}else{g=function(t,e,n,i,r,o,a){var s=n.getOuterSize(),l=s.width,u=s.height;null!=o&&(t+l+o+2>i?t-=l+o:t+=o);null!=a&&(e+u+a>r?e-=u+a:e+=a);return[t,e]}(n,i,r,s,l,h?null:20,c?null:20);n=g[0],i=g[1]}if(h&&(n-=mN(h)?u[0]/2:"right"===h?u[0]:0),c&&(i-=mN(c)?u[1]/2:"bottom"===c?u[1]:0),nN(t)){g=function(t,e,n,i,r){var o=n.getOuterSize(),a=o.width,s=o.height;return t=Math.min(t+a,i)-a,e=Math.min(e+s,r)-s,t=Math.max(t,0),e=Math.max(e,0),[t,e]}(n,i,r,s,l);n=g[0],i=g[1]}r.moveTo(n,i)},n.prototype._updateContentNotChangedOnAxis=function(t){var e=this._lastDataByCoordSys,n=!!e&&e.length===t.length;return n&&pN(e,(function(e,i){var r=e.dataByAxis||[],o=(t[i]||{}).dataByAxis||[];(n=n&&r.length===o.length)&&pN(r,(function(t,e){var i=o[e]||{},r=t.seriesDataIndices||[],a=i.seriesDataIndices||[];(n=n&&t.value===i.value&&t.axisType===i.axisType&&t.axisId===i.axisId&&r.length===a.length)&&pN(r,(function(t,e){var i=a[e];n=n&&t.seriesIndex===i.seriesIndex&&t.dataIndex===i.dataIndex}))}))})),this._lastDataByCoordSys=t,!!n},n.prototype._hide=function(t){this._lastDataByCoordSys=null,t({type:"hideTip",from:this.uid})},n.prototype.dispose=function(t,e){o.node||(this._tooltipContent.dispose(),IP("itemTooltip",e))},n.type="tooltip",n}(Dd);function yN(t){for(var e=t.pop();t.length;){var n=t.pop();n&&(n instanceof rh&&(n=n.get("tooltip",!0)),G(n)&&(n={formatter:n}),e=new rh(n,e,e.ecModel))}return e}function vN(t,e){return t.dispatchAction||z(e.dispatchAction,e)}function mN(t){return"center"===t||"middle"===t}var _N=["rect","polygon","keep","clear"];function xN(t,e){var n=lr(t?t.brush:[]);if(n.length){var i=[];k(n,(function(t){var e=t.hasOwnProperty("toolbox")?t.toolbox:[];e instanceof Array&&(i=i.concat(e))}));var r=t&&t.toolbox;V(r)&&(r=r[0]),r||(r={feature:{}},t.toolbox=[r]);var o=r.feature||(r.feature={}),a=o.brush||(o.brush={}),s=a.type||(a.type=[]);s.push.apply(s,i),function(t){var e={};k(t,(function(t){e[t]=1})),t.length=0,k(e,(function(e,n){t.push(n)}))}(s),e&&!s.length&&s.push.apply(s,_N)}}var bN=k;function wN(t){if(t)for(var e in t)if(t.hasOwnProperty(e))return!0}function SN(t,e,n){var i={};return bN(e,(function(e){var r,o=i[e]=((r=function(){}).prototype.__hidden=r.prototype,new r);bN(t[e],(function(t,i){if(uI.isValidType(i)){var r={type:i,visual:t};n&&n(r,e),o[i]=new uI(r),"opacity"===i&&((r=b(r)).type="colorAlpha",o.__hidden.__alphaForOpacity=new uI(r))}}))})),i}function MN(t,e,n){var i;k(n,(function(t){e.hasOwnProperty(t)&&wN(e[t])&&(i=!0)})),i&&k(n,(function(n){e.hasOwnProperty(n)&&wN(e[n])?t[n]=b(e[n]):delete t[n]}))}var IN={lineX:TN(0),lineY:TN(1),rect:{point:function(t,e,n){return t&&n.boundingRect.contain(t[0],t[1])},rect:function(t,e,n){return t&&n.boundingRect.intersect(t)}},polygon:{point:function(t,e,n){return t&&n.boundingRect.contain(t[0],t[1])&&v_(n.range,t[0],t[1])},rect:function(t,e,n){var i=n.range;if(!t||i.length<=1)return!1;var r=t.x,o=t.y,a=t.width,s=t.height,l=i[0];return!!(v_(i,r,o)||v_(i,r+a,o)||v_(i,r,o+s)||v_(i,r+a,o+s)||Ln.create(t).contain(l[0],l[1])||Au(r,o,r+a,o,i)||Au(r,o,r,o+s,i)||Au(r+a,o,r+a,o+s,i)||Au(r,o+s,r+a,o+s,i))||void 0}}};function TN(t){var e=["x","y"],n=["width","height"];return{point:function(e,n,i){if(e){var r=i.range;return CN(e[t],r)}},rect:function(i,r,o){if(i){var a=o.range,s=[i[e[t]],i[e[t]]+i[n[t]]];return s[1]<s[0]&&s.reverse(),CN(s[0],a)||CN(s[1],a)||CN(a[0],s)||CN(a[1],s)}}}}function CN(t,e){return e[0]<=t&&t<=e[1]}var AN=["inBrush","outOfBrush"],DN="__ecInBrushSelectEvent";function LN(t){t.eachComponent({mainType:"brush"},(function(e){(e.brushTargetManager=new zR(e.option,t)).setInputRanges(e.areas,t)}))}function kN(t,e,n){var i,r,o=[];t.eachComponent({mainType:"brush"},(function(t){n&&"takeGlobalCursor"===n.type&&t.setBrushOption("brush"===n.key?n.brushOption:{brushType:!1})})),LN(t),t.eachComponent({mainType:"brush"},(function(e,n){var a={brushId:e.id,brushIndex:n,brushName:e.name,areas:b(e.areas),selected:[]};o.push(a);var s=e.option,l=s.brushLink,u=[],h=[],c=[],p=!1;n||(i=s.throttleType,r=s.throttleDelay);var d=P(e.areas,(function(t){var e=RN[t.brushType],n=I({boundingRect:e?e(t):void 0},t);return n.selectors=function(t){var e=t.brushType,n={point:function(i){return IN[e].point(i,n,t)},rect:function(i){return IN[e].rect(i,n,t)}};return n}(n),n})),f=SN(e.option,AN,(function(t){t.mappingMethod="fixed"}));function g(t){return"all"===l||!!u[t]}function y(t){return!!t.length}V(l)&&k(l,(function(t){u[t]=1})),t.eachSeries((function(n,i){var r=c[i]=[];"parallel"===n.subType?function(t,e){var n=t.coordinateSystem;p=p||n.hasAxisBrushed(),g(e)&&n.eachActiveState(t.getData(),(function(t,e){"active"===t&&(h[e]=1)}))}(n,i):function(n,i,r){if(!n.brushSelector||function(t,e){var n=t.option.seriesIndex;return null!=n&&"all"!==n&&(V(n)?C(n,e)<0:e!==n)}(e,i))return;if(k(d,(function(i){e.brushTargetManager.controlSeries(i,n,t)&&r.push(i),p=p||y(r)})),g(i)&&y(r)){var o=n.getData();o.each((function(t){ON(n,r,o,t)&&(h[t]=1)}))}}(n,i,r)})),t.eachSeries((function(t,e){var n={seriesId:t.id,seriesIndex:e,seriesName:t.name,dataIndex:[]};a.selected.push(n);var i=c[e],r=t.getData(),o=g(e)?function(t){return h[t]?(n.dataIndex.push(r.getRawIndex(t)),"inBrush"):"outOfBrush"}:function(e){return ON(t,i,r,e)?(n.dataIndex.push(r.getRawIndex(e)),"inBrush"):"outOfBrush"};(g(e)?p:y(i))&&function(t,e,n,i,r,o){var a,s={};function l(t){return Tf(n,a,t)}function u(t,e){Af(n,a,t,e)}function h(t,h){a=null==o?t:h;var c=n.getRawDataItem(a);if(!c||!1!==c.visualMap)for(var p=i.call(r,t),d=e[p],f=s[p],g=0,y=f.length;g<y;g++){var v=f[g];d[v]&&d[v].applyVisual(t,l,u)}}k(t,(function(t){var n=uI.prepareVisualTypes(e[t]);s[t]=n})),null==o?n.each(h):n.each([o],h)}(AN,f,r,o)}))})),function(t,e,n,i,r){if(!r)return;var o=t.getZr();if(o[DN])return;o.__ecBrushSelect||(o.__ecBrushSelect=PN);Hd(o,"__ecBrushSelect",n,e)(t,i)}(e,i,r,o,n)}function PN(t,e){if(!t.isDisposed()){var n=t.getZr();n[DN]=!0,t.dispatchAction({type:"brushSelect",batch:e}),n[DN]=!1}}function ON(t,e,n,i){for(var r=0,o=e.length;r<o;r++){var a=e[r];if(t.brushSelector(i,n,a.selectors,a))return!0}}var RN={rect:function(t){return NN(t.range)},polygon:function(t){for(var e,n=t.range,i=0,r=n.length;i<r;i++){e=e||[[1/0,-1/0],[1/0,-1/0]];var o=n[i];o[0]<e[0][0]&&(e[0][0]=o[0]),o[0]>e[0][1]&&(e[0][1]=o[0]),o[1]<e[1][0]&&(e[1][0]=o[1]),o[1]>e[1][1]&&(e[1][1]=o[1])}return e&&NN(e)}};function NN(t){return new Ln(t[0][0],t[1][0],t[0][1]-t[0][0],t[1][1]-t[1][0])}var EN=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.init=function(t,e){this.ecModel=t,this.api=e,this.model,(this._brushController=new zC(e.getZr())).on("brush",z(this._onBrush,this)).mount()},n.prototype.render=function(t,e,n,i){this.model=t,this._updateController(t,e,n,i)},n.prototype.updateTransform=function(t,e,n,i){LN(e),this._updateController(t,e,n,i)},n.prototype.updateVisual=function(t,e,n,i){this.updateTransform(t,e,n,i)},n.prototype.updateView=function(t,e,n,i){this._updateController(t,e,n,i)},n.prototype._updateController=function(t,e,n,i){(!i||i.$from!==t.id)&&this._brushController.setPanels(t.brushTargetManager.makePanelOpts(n)).enableBrush(t.brushOption).updateCovers(t.areas.slice())},n.prototype.dispose=function(){this._brushController.dispose()},n.prototype._onBrush=function(t){var e=this.model.id,n=this.model.brushTargetManager.setOutputRanges(t.areas,this.ecModel);(!t.isEnd||t.removeOnClick)&&this.api.dispatchAction({type:"brush",brushId:e,areas:b(n),$from:e}),t.isEnd&&this.api.dispatchAction({type:"brushEnd",brushId:e,areas:b(n),$from:e})},n.type="brush",n}(Dd),zN=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.areas=[],e.brushOption={},e}return e(n,t),n.prototype.optionUpdated=function(t,e){var n=this.option;!e&&MN(n,t,["inBrush","outOfBrush"]);var i=n.inBrush=n.inBrush||{};n.outOfBrush=n.outOfBrush||{color:"#ddd"},i.hasOwnProperty("liftZ")||(i.liftZ=5)},n.prototype.setAreas=function(t){t&&(this.areas=P(t,(function(t){return BN(this.option,t)}),this))},n.prototype.setBrushOption=function(t){this.brushOption=BN(this.option,t),this.brushType=this.brushOption.brushType},n.type="brush",n.dependencies=["geo","grid","xAxis","yAxis","parallel","series"],n.defaultOption={seriesIndex:"all",brushType:"rect",brushMode:"single",transformable:!0,brushStyle:{borderWidth:1,color:"rgba(210,219,238,0.3)",borderColor:"#D2DBEE"},throttleType:"fixRate",throttleDelay:0,removeOnClick:!0,z:1e4},n}(sc);function BN(t,e){return w({brushType:t.brushType,brushMode:t.brushMode,transformable:t.transformable,brushStyle:new rh(t.brushStyle).getItemStyle(),removeOnClick:t.removeOnClick,z:t.z},e,!0)}var VN=["rect","polygon","lineX","lineY","keep","clear"],FN=function(t){function n(){return null!==t&&t.apply(this,arguments)||this}return e(n,t),n.prototype.render=function(t,e,n){var i,r,o;e.eachComponent({mainType:"brush"},(function(t){i=t.brushType,r=t.brushOption.brushMode||"single",o=o||!!t.areas.length})),this._brushType=i,this._brushMode=r,k(t.get("type",!0),(function(e){t.setIconStatus(e,("keep"===e?"multiple"===r:"clear"===e?o:e===i)?"emphasis":"normal")}))},n.prototype.updateView=function(t,e,n){this.render(t,e,n)},n.prototype.getIcons=function(){var t=this.model,e=t.get("icon",!0),n={};return k(t.get("type",!0),(function(t){e[t]&&(n[t]=e[t])})),n},n.prototype.onclick=function(t,e,n){var i=this._brushType,r=this._brushMode;"clear"===n?(e.dispatchAction({type:"axisAreaSelect",intervals:[]}),e.dispatchAction({type:"brush",command:"clear",areas:[]})):e.dispatchAction({type:"takeGlobalCursor",key:"brush",brushOption:{brushType:"keep"===n?i:i!==n&&n,brushMode:"keep"===n?"multiple"===r?"single":"multiple":r}})},n.getDefaultOption=function(t){return{show:!0,type:VN.slice(),icon:{rect:"M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13",polygon:"M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2",lineX:"M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4",lineY:"M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4",keep:"M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z",clear:"M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2"},title:t.getLocale(["toolbox","brush","title"])}},n}(fR);var GN=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.layoutMode={type:"box",ignoreSize:!0},e}return e(n,t),n.type="title",n.defaultOption={zlevel:0,z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bold",color:"#464646"},subtextStyle:{fontSize:12,color:"#6E7079"}},n}(sc),HN=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.render=function(t,e,n){if(this.group.removeAll(),t.get("show")){var i=this.group,r=t.getModel("textStyle"),o=t.getModel("subtextStyle"),a=t.get("textAlign"),s=Q(t.get("textBaseline"),t.get("textVerticalAlign")),l=new ja({style:zu(r,{text:t.get("text"),fill:r.getTextColor()},{disableBox:!0}),z2:10}),u=l.getBoundingRect(),h=t.get("subtext"),c=new ja({style:zu(o,{text:h,fill:o.getTextColor(),y:u.height+t.get("itemGap"),verticalAlign:"top"},{disableBox:!0}),z2:10}),p=t.get("link"),d=t.get("sublink"),f=t.get("triggerEvent",!0);l.silent=!p&&!f,c.silent=!d&&!f,p&&l.on("click",(function(){jh(p,"_"+t.get("target"))})),d&&c.on("click",(function(){jh(d,"_"+t.get("subtarget"))})),ns(l).eventData=ns(c).eventData=f?{componentType:"title",componentIndex:t.componentIndex}:null,i.add(l),h&&i.add(c);var g=i.getBoundingRect(),y=t.getBoxLayoutParams();y.width=g.width,y.height=g.height;var v=tc(y,{width:n.getWidth(),height:n.getHeight()},t.get("padding"));a||("middle"===(a=t.get("left")||t.get("right"))&&(a="center"),"right"===a?v.x+=v.width:"center"===a&&(v.x+=v.width/2)),s||("center"===(s=t.get("top")||t.get("bottom"))&&(s="middle"),"bottom"===s?v.y+=v.height:"middle"===s&&(v.y+=v.height/2),s=s||"top"),i.x=v.x,i.y=v.y,i.markRedraw();var m={align:a,verticalAlign:s};l.setStyle(m),c.setStyle(m),g=i.getBoundingRect();var _=v.margin,x=t.getItemStyle(["color","opacity"]);x.fill=t.get("backgroundColor");var b=new Xa({shape:{x:g.x-_[3],y:g.y-_[0],width:g.width+_[1]+_[3],height:g.height+_[0]+_[2],r:t.get("borderRadius")},style:x,subPixelOptimize:!0,silent:!0});i.add(b)}},n.type="title",n}(Dd);var WN=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.layoutMode="box",e}return e(n,t),n.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n),this._initData()},n.prototype.mergeOption=function(e){t.prototype.mergeOption.apply(this,arguments),this._initData()},n.prototype.setCurrentIndex=function(t){null==t&&(t=this.option.currentIndex);var e=this._data.count();this.option.loop?t=(t%e+e)%e:(t>=e&&(t=e-1),t<0&&(t=0)),this.option.currentIndex=t},n.prototype.getCurrentIndex=function(){return this.option.currentIndex},n.prototype.isIndexMax=function(){return this.getCurrentIndex()>=this._data.count()-1},n.prototype.setPlayState=function(t){this.option.autoPlay=!!t},n.prototype.getPlayState=function(){return!!this.option.autoPlay},n.prototype._initData=function(){var t,e=this.option,n=e.data||[],i=e.axisType,r=this._names=[];"category"===i?(t=[],k(n,(function(e,n){var i,o=gr(cr(e),"");Y(e)?(i=b(e)).value=n:i=n,t.push(i),r.push(o)}))):t=n;var o={category:"ordinal",time:"time",value:"number"}[i]||"number";(this._data=new Jv([{name:"value",type:o}],this)).initData(t,r)},n.prototype.getData=function(){return this._data},n.prototype.getCategories=function(){if("category"===this.get("axisType"))return this._names.slice()},n.type="timeline",n.defaultOption={zlevel:0,z:4,show:!0,axisType:"time",realtime:!0,left:"20%",top:null,right:"20%",bottom:0,width:null,height:40,padding:5,controlPosition:"left",autoPlay:!1,rewind:!1,loop:!0,playInterval:2e3,currentIndex:0,itemStyle:{},label:{color:"#000"},data:[]},n}(sc),YN=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.type="timeline.slider",n.defaultOption=sh(WN.defaultOption,{backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,orient:"horizontal",inverse:!1,tooltip:{trigger:"item"},symbol:"circle",symbolSize:12,lineStyle:{show:!0,width:2,color:"#DAE1F5"},label:{position:"auto",show:!0,interval:"auto",rotate:0,color:"#A4B1D7"},itemStyle:{color:"#A4B1D7",borderWidth:1},checkpointStyle:{symbol:"circle",symbolSize:15,color:"#316bf3",borderColor:"#fff",borderWidth:2,shadowBlur:2,shadowOffsetX:1,shadowOffsetY:1,shadowColor:"rgba(0, 0, 0, 0.3)",animation:!0,animationDuration:300,animationEasing:"quinticInOut"},controlStyle:{show:!0,showPlayBtn:!0,showPrevBtn:!0,showNextBtn:!0,itemSize:24,itemGap:12,position:"left",playIcon:"path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z",stopIcon:"path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z",nextIcon:"M2,18.5A1.52,1.52,0,0,1,.92,18a1.49,1.49,0,0,1,0-2.12L7.81,9.36,1,3.11A1.5,1.5,0,1,1,3,.89l8,7.34a1.48,1.48,0,0,1,.49,1.09,1.51,1.51,0,0,1-.46,1.1L3,18.08A1.5,1.5,0,0,1,2,18.5Z",prevIcon:"M10,.5A1.52,1.52,0,0,1,11.08,1a1.49,1.49,0,0,1,0,2.12L4.19,9.64,11,15.89a1.5,1.5,0,1,1-2,2.22L1,10.77A1.48,1.48,0,0,1,.5,9.68,1.51,1.51,0,0,1,1,8.58L9,.92A1.5,1.5,0,0,1,10,.5Z",prevBtnSize:18,nextBtnSize:18,color:"#A4B1D7",borderColor:"#A4B1D7",borderWidth:1},emphasis:{label:{show:!0,color:"#6f778d"},itemStyle:{color:"#316BF3"},controlStyle:{color:"#316BF3",borderColor:"#316BF3",borderWidth:2}},progress:{lineStyle:{color:"#316BF3"},itemStyle:{color:"#316BF3"},label:{color:"#6f778d"}},data:[]}),n}(WN);D(YN,Rp.prototype);var XN=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.type="timeline",n}(Dd),UN=function(t){function n(e,n,i,r){var o=t.call(this,e,n,i)||this;return o.type=r||"value",o}return e(n,t),n.prototype.getLabelModel=function(){return this.model.getModel("label")},n.prototype.isHorizontal=function(){return"horizontal"===this.model.get("orient")},n}(E_),ZN=Math.PI,jN=_r(),qN=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.init=function(t,e){this.api=e},n.prototype.render=function(t,e,n){if(this.model=t,this.api=n,this.ecModel=e,this.group.removeAll(),t.get("show",!0)){var i=this._layout(t,n),r=this._createGroup("_mainGroup"),o=this._createGroup("_labelGroup"),a=this._axis=this._createAxis(i,t);t.formatTooltip=function(t){return ld("nameValue",{noName:!0,value:a.scale.getLabel({value:t})})},k(["AxisLine","AxisTick","Control","CurrentPointer"],(function(e){this["_render"+e](i,r,a,t)}),this),this._renderAxisLabel(i,o,a,t),this._position(i,t)}this._doPlayStop(),this._updateTicksStatus()},n.prototype.remove=function(){this._clearTimer(),this.group.removeAll()},n.prototype.dispose=function(){this._clearTimer()},n.prototype._layout=function(t,e){var n,i,r,o,a=t.get(["label","position"]),s=t.get("orient"),l=function(t,e){return tc(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()},t.get("padding"))}(t,e),u={horizontal:"center",vertical:(n=null==a||"auto"===a?"horizontal"===s?l.y+l.height/2<e.getHeight()/2?"-":"+":l.x+l.width/2<e.getWidth()/2?"+":"-":G(a)?{horizontal:{top:"-",bottom:"+"},vertical:{left:"-",right:"+"}}[s][a]:a)>=0||"+"===n?"left":"right"},h={horizontal:n>=0||"+"===n?"top":"bottom",vertical:"middle"},c={horizontal:0,vertical:ZN/2},p="vertical"===s?l.height:l.width,d=t.getModel("controlStyle"),f=d.get("show",!0),g=f?d.get("itemSize"):0,y=f?d.get("itemGap"):0,v=g+y,m=t.get(["label","rotate"])||0;m=m*ZN/180;var _=d.get("position",!0),x=f&&d.get("showPlayBtn",!0),b=f&&d.get("showPrevBtn",!0),w=f&&d.get("showNextBtn",!0),S=0,M=p;"left"===_||"bottom"===_?(x&&(i=[0,0],S+=v),b&&(r=[S,0],S+=v),w&&(o=[M-g,0],M-=v)):(x&&(i=[M-g,0],M-=v),b&&(r=[0,0],S+=v),w&&(o=[M-g,0],M-=v));var I=[S,M];return t.get("inverse")&&I.reverse(),{viewRect:l,mainLength:p,orient:s,rotation:c[s],labelRotation:m,labelPosOpt:n,labelAlign:t.get(["label","align"])||u[s],labelBaseline:t.get(["label","verticalAlign"])||t.get(["label","baseline"])||h[s],playPosition:i,prevBtnPosition:r,nextBtnPosition:o,axisExtent:I,controlSize:g,controlGap:y}},n.prototype._position=function(t,e){var n=this._mainGroup,i=this._labelGroup,r=t.viewRect;if("vertical"===t.orient){var o=[1,0,0,1,0,0],a=r.x,s=r.y+r.height;ge(o,o,[-a,-s]),ye(o,o,-ZN/2),ge(o,o,[a,s]),(r=r.clone()).applyTransform(o)}var l=y(r),u=y(n.getBoundingRect()),h=y(i.getBoundingRect()),c=[n.x,n.y],p=[i.x,i.y];p[0]=c[0]=l[0][0];var d,f=t.labelPosOpt;null==f||G(f)?(v(c,u,l,1,d="+"===f?0:1),v(p,h,l,1,1-d)):(v(c,u,l,1,d=f>=0?0:1),p[1]=c[1]+f);function g(t){t.originX=l[0][0]-t.x,t.originY=l[1][0]-t.y}function y(t){return[[t.x,t.x+t.width],[t.y,t.y+t.height]]}function v(t,e,n,i,r){t[i]+=n[i][r]-e[i][r]}n.setPosition(c),i.setPosition(p),n.rotation=i.rotation=t.rotation,g(n),g(i)},n.prototype._createAxis=function(t,e){var n=e.getData(),i=e.get("axisType"),r=function(t,e){if(e=e||t.get("type"))switch(e){case"category":return new _m({ordinalMeta:t.getCategories(),extent:[1/0,-1/0]});case"time":return new Rm({locale:t.ecModel.getLocaleModel(),useUTC:t.ecModel.get("useUTC")});default:return new bm}}(e,i);r.getTicks=function(){return n.mapArray(["value"],(function(t){return{value:t}}))};var o=n.getDataExtent("value");r.setExtent(o[0],o[1]),r.niceTicks();var a=new UN("value",r,t.axisExtent,i);return a.model=e,a},n.prototype._createGroup=function(t){var e=this[t]=new Li;return this.group.add(e),e},n.prototype._renderAxisLine=function(t,e,n,i){var r=n.getExtent();if(i.get(["lineStyle","show"])){var o=new Nl({shape:{x1:r[0],y1:0,x2:r[1],y2:0},style:M({lineCap:"round"},i.getModel("lineStyle").getLineStyle()),silent:!0,z2:1});e.add(o);var a=this._progressLine=new Nl({shape:{x1:r[0],x2:this._currentPointer?this._currentPointer.x:r[0],y1:0,y2:0},style:I({lineCap:"round",lineWidth:o.style.lineWidth},i.getModel(["progress","lineStyle"]).getLineStyle()),silent:!0,z2:1});e.add(a)}},n.prototype._renderAxisTick=function(t,e,n,i){var r=this,o=i.getData(),a=n.scale.getTicks();this._tickSymbols=[],k(a,(function(t){var a=n.dataToCoord(t.value),s=o.getItemModel(t.value),l=s.getModel("itemStyle"),u=s.getModel(["emphasis","itemStyle"]),h=s.getModel(["progress","itemStyle"]),c={x:a,y:0,onclick:z(r._changeTimeline,r,t.value)},p=KN(s,l,e,c);p.ensureState("emphasis").style=u.getItemStyle(),p.ensureState("progress").style=h.getItemStyle(),Os(p);var d=ns(p);s.get("tooltip")?(d.dataIndex=t.value,d.dataModel=i):d.dataIndex=d.dataModel=null,r._tickSymbols.push(p)}))},n.prototype._renderAxisLabel=function(t,e,n,i){var r=this;if(n.getLabelModel().get("show")){var o=i.getData(),a=n.getViewLabels();this._tickLabels=[],k(a,(function(i){var a=i.tickValue,s=o.getItemModel(a),l=s.getModel("label"),u=s.getModel(["emphasis","label"]),h=s.getModel(["progress","label"]),c=n.dataToCoord(i.tickValue),p=new ja({x:c,y:0,rotation:t.labelRotation-t.rotation,onclick:z(r._changeTimeline,r,a),silent:!1,style:zu(l,{text:i.formattedLabel,align:t.labelAlign,verticalAlign:t.labelBaseline})});p.ensureState("emphasis").style=zu(u),p.ensureState("progress").style=zu(h),e.add(p),Os(p),jN(p).dataIndex=a,r._tickLabels.push(p)}))}},n.prototype._renderControl=function(t,e,n,i){var r=t.controlSize,o=t.rotation,a=i.getModel("controlStyle").getItemStyle(),s=i.getModel(["emphasis","controlStyle"]).getItemStyle(),l=i.getPlayState(),u=i.get("inverse",!0);function h(t,n,l,u){if(t){var h=Fn(Q(i.get(["controlStyle",n+"BtnSize"]),r),r),c=function(t,e,n,i){var r=i.style,o=Cu(t.get(["controlStyle",e]),i||{},new Ln(n[0],n[1],n[2],n[3]));r&&o.setStyle(r);return o}(i,n+"Icon",[0,-h/2,h,h],{position:t,origin:[r/2,0],rotation:u?-o:0,rectHover:!0,style:a,onclick:l});c.ensureState("emphasis").style=s,e.add(c),Os(c)}}h(t.nextBtnPosition,"next",z(this._changeTimeline,this,u?"-":"+")),h(t.prevBtnPosition,"prev",z(this._changeTimeline,this,u?"+":"-")),h(t.playPosition,l?"stop":"play",z(this._handlePlayClick,this,!l),!0)},n.prototype._renderCurrentPointer=function(t,e,n,i){var r=i.getData(),o=i.getCurrentIndex(),a=r.getItemModel(o).getModel("checkpointStyle"),s=this,l={onCreate:function(t){t.draggable=!0,t.drift=z(s._handlePointerDrag,s),t.ondragend=z(s._handlePointerDragend,s),$N(t,s._progressLine,o,n,i,!0)},onUpdate:function(t){$N(t,s._progressLine,o,n,i)}};this._currentPointer=KN(a,a,this._mainGroup,{},this._currentPointer,l)},n.prototype._handlePlayClick=function(t){this._clearTimer(),this.api.dispatchAction({type:"timelinePlayChange",playState:t,from:this.uid})},n.prototype._handlePointerDrag=function(t,e,n){this._clearTimer(),this._pointerChangeTimeline([n.offsetX,n.offsetY])},n.prototype._handlePointerDragend=function(t){this._pointerChangeTimeline([t.offsetX,t.offsetY],!0)},n.prototype._pointerChangeTimeline=function(t,e){var n=this._toAxisCoord(t)[0],i=Gi(this._axis.getExtent().slice());n>i[1]&&(n=i[1]),n<i[0]&&(n=i[0]),this._currentPointer.x=n,this._currentPointer.markRedraw(),this._progressLine.shape.x2=n,this._progressLine.dirty();var r=this._findNearestTick(n),o=this.model;(e||r!==o.getCurrentIndex()&&o.get("realtime"))&&this._changeTimeline(r)},n.prototype._doPlayStop=function(){var t=this;this._clearTimer(),this.model.getPlayState()&&(this._timer=setTimeout((function(){var e=t.model;t._changeTimeline(e.getCurrentIndex()+(e.get("rewind",!0)?-1:1))}),this.model.get("playInterval")))},n.prototype._toAxisCoord=function(t){return bu(t,this._mainGroup.getLocalTransform(),!0)},n.prototype._findNearestTick=function(t){var e,n=this.model.getData(),i=1/0,r=this._axis;return n.each(["value"],(function(n,o){var a=r.dataToCoord(n),s=Math.abs(a-t);s<i&&(i=s,e=o)})),e},n.prototype._clearTimer=function(){this._timer&&(clearTimeout(this._timer),this._timer=null)},n.prototype._changeTimeline=function(t){var e=this.model.getCurrentIndex();"+"===t?t=e+1:"-"===t&&(t=e-1),this.api.dispatchAction({type:"timelineChange",currentIndex:t,from:this.uid})},n.prototype._updateTicksStatus=function(){var t=this.model.getCurrentIndex(),e=this._tickSymbols,n=this._tickLabels;if(e)for(var i=0;i<e.length;i++)e&&e[i]&&e[i].toggleState("progress",i<t);if(n)for(i=0;i<n.length;i++)n&&n[i]&&n[i].toggleState("progress",jN(n[i]).dataIndex<=t)},n.type="timeline.slider",n}(XN);function KN(t,e,n,i,r,o){var a=e.get("color");r?(r.setColor(a),n.add(r),o&&o.onUpdate(r)):((r=Sg(t.get("symbol"),-1,-1,2,2,a)).setStyle("strokeNoScale",!0),n.add(r),o&&o.onCreate(r));var s=e.getItemStyle(["color"]);r.setStyle(s),i=w({rectHover:!0,z2:100},i,!0);var l=t.get("symbolSize");l=l instanceof Array?l.slice():[+l,+l],i.scaleX=l[0]/2,i.scaleY=l[1]/2;var u=t.get("symbolOffset");u&&(i.x=i.x||0,i.y=i.y||0,i.x+=Vi(u[0],l[0]),i.y+=Vi(u[1],l[1]));var h=t.get("symbolRotate");return i.rotation=(h||0)*Math.PI/180||0,r.attr(i),r.updateTransform(),r}function $N(t,e,n,i,r,o){if(!t.dragging){var a=r.getModel("checkpointStyle"),s=i.dataToCoord(r.getData().get("value",n));if(o||!a.get("animation",!0))t.attr({x:s,y:0}),e&&e.attr({shape:{x2:s}});else{var l={duration:a.get("animationDuration",!0),easing:a.get("animationEasing",!0)};t.stopAnimation(null,!0),t.animateTo({x:s,y:0},l),e&&e.animateTo({shape:{x2:s}},l)}}}function JN(t){var e=t&&t.timeline;V(e)||(e=e?[e]:[]),k(e,(function(t){t&&function(t){var e=t.type,n={number:"value",time:"time"};n[e]&&(t.axisType=n[e],delete t.type);if(QN(t),tE(t,"controlPosition")){var i=t.controlStyle||(t.controlStyle={});tE(i,"position")||(i.position=t.controlPosition),"none"!==i.position||tE(i,"show")||(i.show=!1,delete i.position),delete t.controlPosition}k(t.data||[],(function(t){Y(t)&&!V(t)&&(!tE(t,"value")&&tE(t,"name")&&(t.value=t.name),QN(t))}))}(t)}))}function QN(t){var e=t.itemStyle||(t.itemStyle={}),n=e.emphasis||(e.emphasis={}),i=t.label||t.label||{},r=i.normal||(i.normal={}),o={normal:1,emphasis:1};k(i,(function(t,e){o[e]||tE(r,e)||(r[e]=t)})),n.label&&!tE(i,"emphasis")&&(i.emphasis=n.label,delete n.label)}function tE(t,e){return t.hasOwnProperty(e)}function eE(t){ur(t,"label",["show"])}var nE=_r(),iE=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.createdBySelf=!1,e}return e(n,t),n.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n),this._mergeOption(t,n,!1,!0)},n.prototype.isAnimationEnabled=function(){if(o.node)return!1;var t=this.__hostSeries;return this.getShallow("animation")&&t&&t.isAnimationEnabled()},n.prototype.mergeOption=function(t,e){this._mergeOption(t,e,!1,!1)},n.prototype._mergeOption=function(t,e,n,i){var r=this.mainType;n||e.eachSeries((function(t){var n=t.get(this.mainType,!0),o=nE(t)[r];n&&n.data?(o?o._mergeOption(n,e,!0):(i&&eE(n),k(n.data,(function(t){t instanceof Array?(eE(t[0]),eE(t[1])):eE(t)})),M(o=this.createMarkerModelFromSeries(n,this,e),{mainType:this.mainType,seriesIndex:t.seriesIndex,name:t.name,createdBySelf:!0}),o.__hostSeries=t),nE(t)[r]=o):nE(t)[r]=null}),this)},n.prototype.formatTooltip=function(t,e,n){var i=this.getData(),r=this.getRawValue(t),o=i.getName(t);return ld("section",{header:this.name,blocks:[ld("nameValue",{name:o,value:r,noName:!o,noValue:null==r})]})},n.prototype.getData=function(){return this._data},n.prototype.setData=function(t){this._data=t},n.getMarkerModelFromSeries=function(t,e){return nE(t)[e]},n.type="marker",n.dependencies=["series","grid","polar","geo"],n}(sc);D(iE,Rp.prototype);var rE=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.createMarkerModelFromSeries=function(t,e,i){return new n(t,e,i)},n.type="markPoint",n.defaultOption={zlevel:0,z:5,symbol:"pin",symbolSize:50,tooltip:{trigger:"item"},label:{show:!0,position:"inside"},itemStyle:{borderWidth:2},emphasis:{label:{show:!0}}},n}(iE);function oE(t,e,n,i,r,o){var a=[],s=am(e,i)?e.getCalculationInfo("stackResultDimension"):i,l=cE(e,s,t),u=e.indicesOfNearest(s,l)[0];a[r]=e.get(n,u),a[o]=e.get(s,u);var h=e.get(i,u),c=Hi(e.get(i,u));return(c=Math.min(c,20))>=0&&(a[o]=+a[o].toFixed(c)),[a,h]}var aE={min:B(oE,"min"),max:B(oE,"max"),average:B(oE,"average"),median:B(oE,"median")};function sE(t,e){var n=t.getData(),i=t.coordinateSystem;if(e&&!function(t){return!isNaN(parseFloat(t.x))&&!isNaN(parseFloat(t.y))}(e)&&!V(e.coord)&&i){var r=i.dimensions,o=lE(e,n,i,t);if((e=b(e)).type&&aE[e.type]&&o.baseAxis&&o.valueAxis){var a=C(r,o.baseAxis.dim),s=C(r,o.valueAxis.dim),l=aE[e.type](n,o.baseDataDim,o.valueDataDim,a,s);e.coord=l[0],e.value=l[1]}else{for(var u=[null!=e.xAxis?e.xAxis:e.radiusAxis,null!=e.yAxis?e.yAxis:e.angleAxis],h=0;h<2;h++)aE[u[h]]&&(u[h]=cE(n,n.mapDimension(r[h]),u[h]));e.coord=u}}return e}function lE(t,e,n,i){var r={};return null!=t.valueIndex||null!=t.valueDim?(r.valueDataDim=null!=t.valueIndex?e.getDimension(t.valueIndex):t.valueDim,r.valueAxis=n.getAxis(function(t,e){var n=t.getData(),i=n.dimensions;e=n.getDimension(e);for(var r=0;r<i.length;r++){var o=n.getDimensionInfo(i[r]);if(o.name===e)return o.coordDim}}(i,r.valueDataDim)),r.baseAxis=n.getOtherAxis(r.valueAxis),r.baseDataDim=e.mapDimension(r.baseAxis.dim)):(r.baseAxis=i.getBaseAxis(),r.valueAxis=n.getOtherAxis(r.baseAxis),r.baseDataDim=e.mapDimension(r.baseAxis.dim),r.valueDataDim=e.mapDimension(r.valueAxis.dim)),r}function uE(t,e){return!(t&&t.containData&&e.coord&&!function(t){return!(isNaN(parseFloat(t.x))&&isNaN(parseFloat(t.y)))}(e))||t.containData(e.coord)}function hE(t,e,n,i){return i<2?t.coord&&t.coord[i]:t.value}function cE(t,e,n){if("average"===n){var i=0,r=0;return t.each(e,(function(t,e){isNaN(t)||(i+=t,r++)})),i/r}return"median"===n?t.getMedian(e):t.getDataExtent(e)["max"===n?1:0]}var pE=_r(),dE=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.init=function(){this.markerGroupMap=lt()},n.prototype.render=function(t,e,n){var i=this,r=this.markerGroupMap;r.each((function(t){pE(t).keep=!1})),e.eachSeries((function(t){var r=iE.getMarkerModelFromSeries(t,i.type);r&&i.renderSeries(t,r,e,n)})),r.each((function(t){!pE(t).keep&&i.group.remove(t.group)}))},n.prototype.markKeep=function(t){pE(t).keep=!0},n.prototype.blurSeries=function(t){var e=this;k(t,(function(t){var n=iE.getMarkerModelFromSeries(t,e.type);n&&n.getData().eachItemGraphicEl((function(t){t&&Is(t)}))}))},n.type="marker",n}(Dd);function fE(t,e,n){var i=e.coordinateSystem;t.each((function(r){var o,a=t.getItemModel(r),s=Vi(a.get("x"),n.getWidth()),l=Vi(a.get("y"),n.getHeight());if(isNaN(s)||isNaN(l)){if(e.getMarkerPosition)o=e.getMarkerPosition(t.getValues(t.dimensions,r));else if(i){var u=t.get(i.dimensions[0],r),h=t.get(i.dimensions[1],r);o=i.dataToPoint([u,h])}}else o=[s,l];isNaN(s)||(o[0]=s),isNaN(l)||(o[1]=l),t.setItemLayout(r,o)}))}var gE=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.updateTransform=function(t,e,n){e.eachSeries((function(t){var e=iE.getMarkerModelFromSeries(t,"markPoint");e&&(fE(e.getData(),t,n),this.markerGroupMap.get(t.id).updateLayout())}),this)},n.prototype.renderSeries=function(t,e,n,i){var r=t.coordinateSystem,o=t.id,a=t.getData(),s=this.markerGroupMap,l=s.get(o)||s.set(o,new Yx),u=function(t,e,n){var i;i=t?P(t&&t.dimensions,(function(t){return I({name:t},e.getData().getDimensionInfo(e.getData().mapDimension(t))||{})})):[{name:"value",type:"float"}];var r=new Jv(i,n),o=P(n.get("data"),B(sE,e));t&&(o=R(o,B(uE,t)));return r.initData(o,null,t?hE:function(t){return t.value}),r}(r,t,e);e.setData(u),fE(e.getData(),t,i),u.each((function(t){var n=u.getItemModel(t),i=n.getShallow("symbol"),r=n.getShallow("symbolSize"),o=n.getShallow("symbolRotate");if(F(i)||F(r)||F(o)){var s=e.getRawValue(t),l=e.getDataParams(t);F(i)&&(i=i(s,l)),F(r)&&(r=r(s,l)),F(o)&&(o=o(s,l))}var h=n.getModel("itemStyle").getItemStyle(),c=Cf(a,"color");h.fill||(h.fill=c),u.setItemVisual(t,{symbol:i,symbolSize:r,symbolRotate:o,style:h})})),l.updateData(u),this.group.add(l.group),u.eachItemGraphicEl((function(t){t.traverse((function(t){ns(t).dataModel=e}))})),this.markKeep(l),l.group.silent=e.get("silent")||t.get("silent")},n.type="markPoint",n}(dE);var yE=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.createMarkerModelFromSeries=function(t,e,i){return new n(t,e,i)},n.type="markLine",n.defaultOption={zlevel:0,z:5,symbol:["circle","arrow"],symbolSize:[8,16],precision:2,tooltip:{trigger:"item"},label:{show:!0,position:"end",distance:5},lineStyle:{type:"dashed"},emphasis:{label:{show:!0},lineStyle:{width:3}},animationEasing:"linear"},n}(iE),vE=_r(),mE=function(t,e,n,i){var r,o=t.getData();if(V(i))r=i;else{var a=i.type;if("min"===a||"max"===a||"average"===a||"median"===a||null!=i.xAxis||null!=i.yAxis){var s=void 0,l=void 0;if(null!=i.yAxis||null!=i.xAxis)s=e.getAxis(null!=i.yAxis?"y":"x"),l=J(i.yAxis,i.xAxis);else{var u=lE(i,o,e,t);s=u.valueAxis,l=cE(o,sm(o,u.valueDataDim),a)}var h="x"===s.dim?0:1,c=1-h,p=b(i),d={coord:[]};p.type=null,p.coord=[],p.coord[c]=-1/0,d.coord[c]=1/0;var f=n.get("precision");f>=0&&"number"==typeof l&&(l=+l.toFixed(Math.min(f,20))),p.coord[h]=d.coord[h]=l,r=[p,d,{type:a,valueIndex:i.valueIndex,value:l}]}else r=[]}var g=[sE(t,r[0]),sE(t,r[1]),M({},r[2])];return g[2].type=g[2].type||null,w(g[2],g[0]),w(g[2],g[1]),g};function _E(t){return!isNaN(t)&&!isFinite(t)}function xE(t,e,n,i){var r=1-t,o=i.dimensions[t];return _E(e[r])&&_E(n[r])&&e[t]===n[t]&&i.getAxis(o).containData(e[t])}function bE(t,e){if("cartesian2d"===t.type){var n=e[0].coord,i=e[1].coord;if(n&&i&&(xE(1,n,i,t)||xE(0,n,i,t)))return!0}return uE(t,e[0])&&uE(t,e[1])}function wE(t,e,n,i,r){var o,a=i.coordinateSystem,s=t.getItemModel(e),l=Vi(s.get("x"),r.getWidth()),u=Vi(s.get("y"),r.getHeight());if(isNaN(l)||isNaN(u)){if(i.getMarkerPosition)o=i.getMarkerPosition(t.getValues(t.dimensions,e));else{var h=a.dimensions,c=t.get(h[0],e),p=t.get(h[1],e);o=a.dataToPoint([c,p])}if(sb(a,"cartesian2d")){var d=a.getAxis("x"),f=a.getAxis("y");h=a.dimensions;_E(t.get(h[0],e))?o[0]=d.toGlobalCoord(d.getExtent()[n?0:1]):_E(t.get(h[1],e))&&(o[1]=f.toGlobalCoord(f.getExtent()[n?0:1]))}isNaN(l)||(o[0]=l),isNaN(u)||(o[1]=u)}else o=[l,u];t.setItemLayout(e,o)}var SE=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.updateTransform=function(t,e,n){e.eachSeries((function(t){var e=iE.getMarkerModelFromSeries(t,"markLine");if(e){var i=e.getData(),r=vE(e).from,o=vE(e).to;r.each((function(e){wE(r,e,!0,t,n),wE(o,e,!1,t,n)})),i.each((function(t){i.setItemLayout(t,[r.getItemLayout(t),o.getItemLayout(t)])})),this.markerGroupMap.get(t.id).updateLayout()}}),this)},n.prototype.renderSeries=function(t,e,n,i){var r=t.coordinateSystem,o=t.id,a=t.getData(),s=this.markerGroupMap,l=s.get(o)||s.set(o,new xT);this.group.add(l.group);var u=function(t,e,n){var i;i=t?P(t&&t.dimensions,(function(t){return I({name:t},e.getData().getDimensionInfo(e.getData().mapDimension(t))||{})})):[{name:"value",type:"float"}];var r=new Jv(i,n),o=new Jv(i,n),a=new Jv([],n),s=P(n.get("data"),B(mE,e,t,n));t&&(s=R(s,B(bE,t)));var l=t?hE:function(t){return t.value};return r.initData(P(s,(function(t){return t[0]})),null,l),o.initData(P(s,(function(t){return t[1]})),null,l),a.initData(P(s,(function(t){return t[2]}))),a.hasItemOption=!0,{from:r,to:o,line:a}}(r,t,e),h=u.from,c=u.to,p=u.line;vE(e).from=h,vE(e).to=c,e.setData(p);var d=e.get("symbol"),f=e.get("symbolSize");function g(e,n,r){var o=e.getItemModel(n);wE(e,n,r,t,i);var s=o.getModel("itemStyle").getItemStyle();null==s.fill&&(s.fill=Cf(a,"color")),e.setItemVisual(n,{symbolRotate:o.get("symbolRotate"),symbolSize:o.get("symbolSize")||f[r?0:1],symbol:o.get("symbol",!0)||d[r?0:1],style:s})}V(d)||(d=[d,d]),V(f)||(f=[f,f]),u.from.each((function(t){g(h,t,!0),g(c,t,!1)})),p.each((function(t){var e=p.getItemModel(t).getModel("lineStyle").getLineStyle();p.setItemLayout(t,[h.getItemLayout(t),c.getItemLayout(t)]),null==e.stroke&&(e.stroke=h.getItemVisual(t,"style").fill),p.setItemVisual(t,{fromSymbolRotate:h.getItemVisual(t,"symbolRotate"),fromSymbolSize:h.getItemVisual(t,"symbolSize"),fromSymbol:h.getItemVisual(t,"symbol"),toSymbolRotate:c.getItemVisual(t,"symbolRotate"),toSymbolSize:c.getItemVisual(t,"symbolSize"),toSymbol:c.getItemVisual(t,"symbol"),style:e})})),l.updateData(p),u.line.eachItemGraphicEl((function(t,n){t.traverse((function(t){ns(t).dataModel=e}))})),this.markKeep(l),l.group.silent=e.get("silent")||t.get("silent")},n.type="markLine",n}(dE);var ME=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.createMarkerModelFromSeries=function(t,e,i){return new n(t,e,i)},n.type="markArea",n.defaultOption={zlevel:0,z:1,tooltip:{trigger:"item"},animation:!1,label:{show:!0,position:"top"},itemStyle:{borderWidth:0},emphasis:{label:{show:!0,position:"top"}}},n}(iE),IE=_r(),TE=function(t,e,n,i){var r=sE(t,i[0]),o=sE(t,i[1]),a=r.coord,s=o.coord;a[0]=J(a[0],-1/0),a[1]=J(a[1],-1/0),s[0]=J(s[0],1/0),s[1]=J(s[1],1/0);var l=S([{},r,o]);return l.coord=[r.coord,o.coord],l.x0=r.x,l.y0=r.y,l.x1=o.x,l.y1=o.y,l};function CE(t){return!isNaN(t)&&!isFinite(t)}function AE(t,e,n,i){var r=1-t;return CE(e[r])&&CE(n[r])}function DE(t,e){var n=e.coord[0],i=e.coord[1];return!!(sb(t,"cartesian2d")&&n&&i&&(AE(1,n,i)||AE(0,n,i)))||(uE(t,{coord:n,x:e.x0,y:e.y0})||uE(t,{coord:i,x:e.x1,y:e.y1}))}function LE(t,e,n,i,r){var o,a=i.coordinateSystem,s=t.getItemModel(e),l=Vi(s.get(n[0]),r.getWidth()),u=Vi(s.get(n[1]),r.getHeight());if(isNaN(l)||isNaN(u)){if(i.getMarkerPosition)o=i.getMarkerPosition(t.getValues(n,e));else{var h=[d=t.get(n[0],e),f=t.get(n[1],e)];a.clampData&&a.clampData(h,h),o=a.dataToPoint(h,!0)}if(sb(a,"cartesian2d")){var c=a.getAxis("x"),p=a.getAxis("y"),d=t.get(n[0],e),f=t.get(n[1],e);CE(d)?o[0]=c.toGlobalCoord(c.getExtent()["x0"===n[0]?0:1]):CE(f)&&(o[1]=p.toGlobalCoord(p.getExtent()["y0"===n[1]?0:1]))}isNaN(l)||(o[0]=l),isNaN(u)||(o[1]=u)}else o=[l,u];return o}var kE=[["x0","y0"],["x1","y0"],["x1","y1"],["x0","y1"]],PE=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.updateTransform=function(t,e,n){e.eachSeries((function(t){var e=iE.getMarkerModelFromSeries(t,"markArea");if(e){var i=e.getData();i.each((function(e){var r=P(kE,(function(r){return LE(i,e,r,t,n)}));i.setItemLayout(e,r),i.getItemGraphicEl(e).setShape("points",r)}))}}),this)},n.prototype.renderSeries=function(t,e,n,i){var r=t.coordinateSystem,o=t.id,a=t.getData(),s=this.markerGroupMap,l=s.get(o)||s.set(o,{group:new Li});this.group.add(l.group),this.markKeep(l);var u=function(t,e,n){var i,r,o=["x0","y0","x1","y1"];t?(i=P(t&&t.dimensions,(function(t){var n=e.getData();return I({name:t},n.getDimensionInfo(n.mapDimension(t))||{})})),r=new Jv(P(o,(function(t,e){return{name:t,type:i[e%2].type}})),n)):r=new Jv(i=[{name:"value",type:"float"}],n);var a=P(n.get("data"),B(TE,e,t,n));t&&(a=R(a,B(DE,t)));var s=t?function(t,e,n,i){return t.coord[Math.floor(i/2)][i%2]}:function(t){return t.value};return r.initData(a,null,s),r.hasItemOption=!0,r}(r,t,e);e.setData(u),u.each((function(e){var n=P(kE,(function(n){return LE(u,e,n,t,i)})),o=!0;k(kE,(function(t){if(o){var n=u.get(t[0],e),i=u.get(t[1],e);(CE(n)||r.getAxis("x").containData(n))&&(CE(i)||r.getAxis("y").containData(i))&&(o=!1)}})),u.setItemLayout(e,{points:n,allClipped:o});var s=u.getItemModel(e).getModel("itemStyle").getItemStyle(),l=Cf(a,"color");s.fill||(s.fill=l,"string"==typeof s.fill&&(s.fill=tn(s.fill,.4))),s.stroke||(s.stroke=l),u.setItemVisual(e,"style",s)})),u.diff(IE(l).data).add((function(t){var e=u.getItemLayout(t);if(!e.allClipped){var n=new Ll({shape:{points:e.points}});u.setItemGraphicEl(t,n),l.group.add(n)}})).update((function(t,n){var i=IE(l).data.getItemGraphicEl(n),r=u.getItemLayout(t);r.allClipped?i&&l.group.remove(i):(i?fu(i,{shape:{points:r.points}},e,t):i=new Ll({shape:{points:r.points}}),u.setItemGraphicEl(t,i),l.group.add(i))})).remove((function(t){var e=IE(l).data.getItemGraphicEl(t);l.group.remove(e)})).execute(),u.eachItemGraphicEl((function(t,n){var i=u.getItemModel(n),r=u.getItemVisual(n,"style");t.useStyle(u.getItemVisual(n,"style")),Nu(t,Eu(i),{labelFetcher:e,labelDataIndex:n,defaultText:u.getName(n)||"",inheritColor:"string"==typeof r.fill?tn(r.fill,1):"#000"}),zs(t,i),Os(t),ns(t).dataModel=e})),IE(l).data=u,l.group.silent=e.get("silent")||t.get("silent")},n.type="markArea",n}(dE);var OE=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.layoutMode={type:"box",ignoreSize:!0},e}return e(n,t),n.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n),t.selected=t.selected||{},this._updateSelector(t)},n.prototype.mergeOption=function(e,n){t.prototype.mergeOption.call(this,e,n),this._updateSelector(e)},n.prototype._updateSelector=function(t){var e=t.selector,n=this.ecModel;!0===e&&(e=t.selector=["all","inverse"]),V(e)&&k(e,(function(t,i){G(t)&&(t={type:t}),e[i]=w(t,function(t,e){return"all"===e?{type:"all",title:t.getLocale(["legend","selector","all"])}:"inverse"===e?{type:"inverse",title:t.getLocale(["legend","selector","inverse"])}:void 0}(n,t.type))}))},n.prototype.optionUpdated=function(){this._updateData(this.ecModel);var t=this._data;if(t[0]&&"single"===this.get("selectedMode")){for(var e=!1,n=0;n<t.length;n++){var i=t[n].get("name");if(this.isSelected(i)){this.select(i),e=!0;break}}!e&&this.select(t[0].get("name"))}},n.prototype._updateData=function(t){var e=[],n=[];t.eachRawSeries((function(i){var r,o=i.name;if(n.push(o),i.legendVisualProvider){var a=i.legendVisualProvider.getAllNames();t.isSeriesFiltered(i)||(n=n.concat(a)),a.length?e=e.concat(a):r=!0}else r=!0;r&&yr(i)&&e.push(i.name)})),this._availableNames=n;var i=P(this.get("data")||e,(function(t){return"string"!=typeof t&&"number"!=typeof t||(t={name:t}),new rh(t,this,this.ecModel)}),this);this._data=i},n.prototype.getData=function(){return this._data},n.prototype.select=function(t){var e=this.option.selected;"single"===this.get("selectedMode")&&k(this._data,(function(t){e[t.get("name")]=!1}));e[t]=!0},n.prototype.unSelect=function(t){"single"!==this.get("selectedMode")&&(this.option.selected[t]=!1)},n.prototype.toggleSelected=function(t){var e=this.option.selected;e.hasOwnProperty(t)||(e[t]=!0),this[e[t]?"unSelect":"select"](t)},n.prototype.allSelect=function(){var t=this._data,e=this.option.selected;k(t,(function(t){e[t.get("name",!0)]=!0}))},n.prototype.inverseSelect=function(){var t=this._data,e=this.option.selected;k(t,(function(t){var n=t.get("name",!0);e.hasOwnProperty(n)||(e[n]=!0),e[n]=!e[n]}))},n.prototype.isSelected=function(t){var e=this.option.selected;return!(e.hasOwnProperty(t)&&!e[t])&&C(this._availableNames,t)>=0},n.prototype.getOrient=function(){return"vertical"===this.get("orient")?{index:1,name:"vertical"}:{index:0,name:"horizontal"}},n.type="legend.plain",n.dependencies=["series"],n.defaultOption={zlevel:0,z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,inactiveColor:"#ccc",inactiveBorderColor:"#ccc",itemStyle:{borderWidth:0},textStyle:{color:"#333"},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:" sans-serif",color:"#666",borderWidth:1,borderColor:"#666"},emphasis:{selectorLabel:{show:!0,color:"#eee",backgroundColor:"#666"}},selectorPosition:"auto",selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1}},n}(sc),RE=B,NE=k,EE=Li,zE=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.newlineDisabled=!1,e}return e(n,t),n.prototype.init=function(){this.group.add(this._contentGroup=new EE),this.group.add(this._selectorGroup=new EE),this._isFirstRender=!0},n.prototype.getContentGroup=function(){return this._contentGroup},n.prototype.getSelectorGroup=function(){return this._selectorGroup},n.prototype.render=function(t,e,n){var i=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),t.get("show",!0)){var r=t.get("align"),o=t.get("orient");r&&"auto"!==r||(r="right"===t.get("left")&&"vertical"===o?"right":"left");var a=t.get("selector",!0),s=t.get("selectorPosition",!0);!a||s&&"auto"!==s||(s="horizontal"===o?"end":"start"),this.renderInner(r,t,e,n,a,o,s);var l=t.getBoxLayoutParams(),u={width:n.getWidth(),height:n.getHeight()},h=t.get("padding"),c=tc(l,u,h),p=this.layoutInner(t,r,c,i,a,s),d=tc(I({width:p.width,height:p.height},l),u,h);this.group.x=d.x-p.x,this.group.y=d.y-p.y,this.group.markRedraw(),this.group.add(this._backgroundEl=_R(p,t))}},n.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},n.prototype.renderInner=function(t,e,n,i,r,o,a){var s=this.getContentGroup(),l=lt(),u=e.get("selectedMode"),h=[];n.eachRawSeries((function(t){!t.get("legendHoverLink")&&h.push(t.id)})),NE(e.getData(),(function(r,o){var a=r.get("name");if(!this.newlineDisabled&&(""===a||"\n"===a)){var c=new EE;return c.newline=!0,void s.add(c)}var p=n.getSeriesByName(a)[0];if(!l.get(a)){if(p){var d=p.getData(),f=d.getVisual("style"),g=f[d.getVisual("drawType")]||f.fill,y=f.stroke,v=f.decal,m=d.getVisual("legendSymbol")||"roundRect",_=d.getVisual("symbol");this._createItem(a,o,r,e,m,_,t,g,y,v,u).on("click",RE(VE,a,null,i,h)).on("mouseover",RE(GE,p.name,null,i,h)).on("mouseout",RE(HE,p.name,null,i,h)),l.set(a,!0)}else n.eachRawSeries((function(n){if(!l.get(a)&&n.legendVisualProvider){var s=n.legendVisualProvider;if(!s.containName(a))return;var c=s.indexOfName(a),p=s.getItemVisual(c,"style"),d=p.stroke,f=p.decal,g=p.fill,y=Xe(p.fill);y&&0===y[3]&&(y[3]=.2,g=en(y,"rgba"));this._createItem(a,o,r,e,"roundRect",null,t,g,d,f,u).on("click",RE(VE,null,a,i,h)).on("mouseover",RE(GE,null,a,i,h)).on("mouseout",RE(HE,null,a,i,h)),l.set(a,!0)}}),this);0}}),this),r&&this._createSelector(r,e,i,o,a)},n.prototype._createSelector=function(t,e,n,i,r){var o=this.getSelectorGroup();NE(t,(function(t){var i=t.type,r=new ja({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){n.dispatchAction({type:"all"===i?"legendAllSelect":"legendInverseSelect"})}});o.add(r),Nu(r,{normal:e.getModel("selectorLabel"),emphasis:e.getModel(["emphasis","selectorLabel"])},{defaultText:t.title}),Os(r)}))},n.prototype._createItem=function(t,e,n,i,r,o,a,s,l,u,h){var c=i.get("itemWidth"),p=i.get("itemHeight"),d=i.get("inactiveColor"),f=i.get("inactiveBorderColor"),g=i.get("symbolKeepAspect"),y=i.getModel("itemStyle"),v=i.isSelected(t),m=new EE,_=n.getModel("textStyle"),x=n.get("icon"),b=n.getModel("tooltip"),w=b.parentModel,S=Sg(r=x||r,0,0,c,p,v?s:d,null==g||g);if(m.add(BE(S,r,y,l,f,u,v)),!x&&o&&(o!==r||"none"===o)){var I=.8*p;"none"===o&&(o="circle");var T=Sg(o,(c-I)/2,(p-I)/2,I,I,v?s:d,null==g||g);m.add(BE(T,o,y,l,f,u,v))}var C="left"===a?c+5:-5,A=a,D=i.get("formatter"),L=t;"string"==typeof D&&D?L=D.replace("{name}",null!=t?t:""):"function"==typeof D&&(L=D(t)),m.add(new ja({style:zu(_,{text:L,x:C,y:p/2,fill:v?_.getTextColor():d,align:A,verticalAlign:"middle"})}));var k=new Xa({shape:m.getBoundingRect(),invisible:!0});if(b.get("show")){var P={componentType:"legend",legendIndex:i.componentIndex,name:t,$vars:["name"]};k.tooltip=M({content:t,formatter:w.get("formatter",!0)||function(t){return t.name},formatterParams:P},b.option)}return m.add(k),m.eachChild((function(t){t.silent=!0})),k.silent=!h,this.getContentGroup().add(m),Os(m),m.__legendDataIndex=e,m},n.prototype.layoutInner=function(t,e,n,i,r,o){var a=this.getContentGroup(),s=this.getSelectorGroup();Qh(t.get("orient"),a,t.get("itemGap"),n.width,n.height);var l=a.getBoundingRect(),u=[-l.x,-l.y];if(s.markRedraw(),a.markRedraw(),r){Qh("horizontal",s,t.get("selectorItemGap",!0));var h=s.getBoundingRect(),c=[-h.x,-h.y],p=t.get("selectorButtonGap",!0),d=t.getOrient().index,f=0===d?"width":"height",g=0===d?"height":"width",y=0===d?"y":"x";"end"===o?c[d]+=l[f]+p:u[d]+=h[f]+p,c[1-d]+=l[g]/2-h[g]/2,s.x=c[0],s.y=c[1],a.x=u[0],a.y=u[1];var v={x:0,y:0};return v[f]=l[f]+p+h[f],v[g]=Math.max(l[g],h[g]),v[y]=Math.min(0,h[y]+c[1-d]),v}return a.x=u[0],a.y=u[1],this.group.getBoundingRect()},n.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},n.type="legend.plain",n}(Dd);function BE(t,e,n,i,r,o,a){var s;return"line"!==e&&e.indexOf("empty")<0?(s=n.getItemStyle(),t.style.stroke=i,t.style.decal=o,a||(s.stroke=r)):s=n.getItemStyle(["borderWidth","borderColor"]),t.setStyle(s),t}function VE(t,e,n,i){HE(t,e,n,i),n.dispatchAction({type:"legendToggleSelect",name:null!=t?t:e}),GE(t,e,n,i)}function FE(t){for(var e,n=t.getZr().storage.getDisplayList(),i=0,r=n.length;i<r&&!(e=n[i].states.emphasis);)i++;return e&&e.hoverLayer}function GE(t,e,n,i){FE(n)||n.dispatchAction({type:"highlight",seriesName:t,name:e,excludeSeriesId:i})}function HE(t,e,n,i){FE(n)||n.dispatchAction({type:"downplay",seriesName:t,name:e,excludeSeriesId:i})}function WE(t){var e=t.findComponents({mainType:"legend"});e&&e.length&&t.filterSeries((function(t){for(var n=0;n<e.length;n++)if(!e[n].isSelected(t.name))return!1;return!0}))}function YE(t,e,n){var i,r={},o="toggleSelected"===t;return n.eachComponent("legend",(function(n){o&&null!=i?n[i?"select":"unSelect"](e.name):"allSelect"===t||"inverseSelect"===t?n[t]():(n[t](e.name),i=n.isSelected(e.name)),k(n.getData(),(function(t){var e=t.get("name");if("\n"!==e&&""!==e){var i=n.isSelected(e);r.hasOwnProperty(e)?r[e]=r[e]&&i:r[e]=i}}))})),"allSelect"===t||"inverseSelect"===t?{selected:r}:{name:e.name,selected:r}}function XE(t){t.registerComponentModel(OE),t.registerComponentView(zE),t.registerProcessor(t.PRIORITY.PROCESSOR.SERIES_FILTER,WE),t.registerSubTypeDefaulter("legend",(function(){return"plain"})),function(t){t.registerAction("legendToggleSelect","legendselectchanged",B(YE,"toggleSelected")),t.registerAction("legendAllSelect","legendselectall",B(YE,"allSelect")),t.registerAction("legendInverseSelect","legendinverseselect",B(YE,"inverseSelect")),t.registerAction("legendSelect","legendselected",B(YE,"select")),t.registerAction("legendUnSelect","legendunselected",B(YE,"unSelect"))}(t)}var UE=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.setScrollDataIndex=function(t){this.option.scrollDataIndex=t},n.prototype.init=function(e,n,i){var r=rc(e);t.prototype.init.call(this,e,n,i),ZE(this,e,r)},n.prototype.mergeOption=function(e,n){t.prototype.mergeOption.call(this,e,n),ZE(this,this.option,e)},n.type="legend.scroll",n.defaultOption=sh(OE.defaultOption,{scrollDataIndex:0,pageButtonItemGap:5,pageButtonGap:null,pageButtonPosition:"end",pageFormatter:"{current}/{total}",pageIcons:{horizontal:["M0,0L12,-10L12,10z","M0,0L-12,-10L-12,10z"],vertical:["M0,0L20,0L10,-20z","M0,0L20,0L10,20z"]},pageIconColor:"#2f4554",pageIconInactiveColor:"#aaa",pageIconSize:15,pageTextStyle:{color:"#333"},animationDurationUpdate:800}),n}(OE);function ZE(t,e,n){var i=[1,1];i[t.getOrient().index]=0,ic(e,n,{type:"box",ignoreSize:!!i})}var jE=Li,qE=["width","height"],KE=["x","y"],$E=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.newlineDisabled=!0,e._currentIndex=0,e}return e(n,t),n.prototype.init=function(){t.prototype.init.call(this),this.group.add(this._containerGroup=new jE),this._containerGroup.add(this.getContentGroup()),this.group.add(this._controllerGroup=new jE)},n.prototype.resetInner=function(){t.prototype.resetInner.call(this),this._controllerGroup.removeAll(),this._containerGroup.removeClipPath(),this._containerGroup.__rectSize=null},n.prototype.renderInner=function(e,n,i,r,o,a,s){var l=this;t.prototype.renderInner.call(this,e,n,i,r,o,a,s);var u=this._controllerGroup,h=n.get("pageIconSize",!0),c=V(h)?h:[h,h];d("pagePrev",0);var p=n.getModel("pageTextStyle");function d(t,e){var i=t+"DataIndex",o=Cu(n.get("pageIcons",!0)[n.getOrient().name][e],{onclick:z(l._pageGo,l,i,n,r)},{x:-c[0]/2,y:-c[1]/2,width:c[0],height:c[1]});o.name=t,u.add(o)}u.add(new ja({name:"pageText",style:{text:"xx/xx",fill:p.getTextColor(),font:p.getFont(),verticalAlign:"middle",align:"center"},silent:!0})),d("pageNext",1)},n.prototype.layoutInner=function(t,e,n,i,r,o){var a=this.getSelectorGroup(),s=t.getOrient().index,l=qE[s],u=KE[s],h=qE[1-s],c=KE[1-s];r&&Qh("horizontal",a,t.get("selectorItemGap",!0));var p=t.get("selectorButtonGap",!0),d=a.getBoundingRect(),f=[-d.x,-d.y],g=b(n);r&&(g[l]=n[l]-d[l]-p);var y=this._layoutContentAndController(t,i,g,s,l,h,c,u);if(r){if("end"===o)f[s]+=y[l]+p;else{var v=d[l]+p;f[s]-=v,y[u]-=v}y[l]+=d[l]+p,f[1-s]+=y[c]+y[h]/2-d[h]/2,y[h]=Math.max(y[h],d[h]),y[c]=Math.min(y[c],d[c]+f[1-s]),a.x=f[0],a.y=f[1],a.markRedraw()}return y},n.prototype._layoutContentAndController=function(t,e,n,i,r,o,a,s){var l=this.getContentGroup(),u=this._containerGroup,h=this._controllerGroup;Qh(t.get("orient"),l,t.get("itemGap"),i?n.width:null,i?null:n.height),Qh("horizontal",h,t.get("pageButtonItemGap",!0));var c=l.getBoundingRect(),p=h.getBoundingRect(),d=this._showController=c[r]>n[r],f=[-c.x,-c.y];e||(f[i]=l[s]);var g=[0,0],y=[-p.x,-p.y],v=Q(t.get("pageButtonGap",!0),t.get("itemGap",!0));d&&("end"===t.get("pageButtonPosition",!0)?y[i]+=n[r]-p[r]:g[i]+=p[r]+v);y[1-i]+=c[o]/2-p[o]/2,l.setPosition(f),u.setPosition(g),h.setPosition(y);var m={x:0,y:0};if(m[r]=d?n[r]:c[r],m[o]=Math.max(c[o],p[o]),m[a]=Math.min(0,p[a]+y[1-i]),u.__rectSize=n[r],d){var _={x:0,y:0};_[r]=Math.max(n[r]-p[r]-v,0),_[o]=m[o],u.setClipPath(new Xa({shape:_})),u.__rectSize=_[r]}else h.eachChild((function(t){t.attr({invisible:!0,silent:!0})}));var x=this._getPageInfo(t);return null!=x.pageIndex&&fu(l,{x:x.contentPosition[0],y:x.contentPosition[1]},d?t:null),this._updatePageInfoView(t,x),m},n.prototype._pageGo=function(t,e,n){var i=this._getPageInfo(e)[t];null!=i&&n.dispatchAction({type:"legendScroll",scrollDataIndex:i,legendId:e.id})},n.prototype._updatePageInfoView=function(t,e){var n=this._controllerGroup;k(["pagePrev","pageNext"],(function(i){var r=null!=e[i+"DataIndex"],o=n.childOfName(i);o&&(o.setStyle("fill",r?t.get("pageIconColor",!0):t.get("pageIconInactiveColor",!0)),o.cursor=r?"pointer":"default")}));var i=n.childOfName("pageText"),r=t.get("pageFormatter"),o=e.pageIndex,a=null!=o?o+1:0,s=e.pageCount;i&&r&&i.setStyle("text",G(r)?r.replace("{current}",null==a?"":a+"").replace("{total}",null==s?"":s+""):r({current:a,total:s}))},n.prototype._getPageInfo=function(t){var e=t.get("scrollDataIndex",!0),n=this.getContentGroup(),i=this._containerGroup.__rectSize,r=t.getOrient().index,o=qE[r],a=KE[r],s=this._findTargetItemIndex(e),l=n.children(),u=l[s],h=l.length,c=h?1:0,p={contentPosition:[n.x,n.y],pageCount:c,pageIndex:c-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!u)return p;var d=m(u);p.contentPosition[r]=-d.s;for(var f=s+1,g=d,y=d,v=null;f<=h;++f)(!(v=m(l[f]))&&y.e>g.s+i||v&&!_(v,g.s))&&(g=y.i>g.i?y:v)&&(null==p.pageNextDataIndex&&(p.pageNextDataIndex=g.i),++p.pageCount),y=v;for(f=s-1,g=d,y=d,v=null;f>=-1;--f)(v=m(l[f]))&&_(y,v.s)||!(g.i<y.i)||(y=g,null==p.pagePrevDataIndex&&(p.pagePrevDataIndex=g.i),++p.pageCount,++p.pageIndex),g=v;return p;function m(t){if(t){var e=t.getBoundingRect(),n=e[a]+t[a];return{s:n,e:n+e[o],i:t.__legendDataIndex}}}function _(t,e){return t.e>=e&&t.s<=e+i}},n.prototype._findTargetItemIndex=function(t){return this._showController?(this.getContentGroup().eachChild((function(i,r){var o=i.__legendDataIndex;null==n&&null!=o&&(n=r),o===t&&(e=r)})),null!=e?e:n):0;var e,n},n.type="legend.scroll",n}(zE);function JE(t){wv(XE),t.registerComponentModel(UE),t.registerComponentView($E),function(t){t.registerAction("legendScroll","legendscroll",(function(t,e){var n=t.scrollDataIndex;null!=n&&e.eachComponent({mainType:"legend",subType:"scroll",query:t},(function(t){t.setScrollDataIndex(n)}))}))}(t)}var QE=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.type="dataZoom.inside",n.defaultOption=sh(nR.defaultOption,{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),n}(nR),tz=_r();function ez(t,e,n){tz(t).coordSysRecordMap.each((function(t){var i=t.dataZoomInfoMap.get(e.uid);i&&(i.getRange=n)}))}function nz(t,e){if(e){t.removeKey(e.model.uid);var n=e.controller;n&&n.dispose()}}function iz(t,e){t.dispatchAction({type:"dataZoom",animation:{easing:"cubicOut",duration:100},batch:e})}function rz(t,e,n,i){return t.coordinateSystem.containPoint([n,i])}function oz(t){t.registerProcessor(t.PRIORITY.PROCESSOR.FILTER,(function(t,e){var n=tz(e),i=n.coordSysRecordMap||(n.coordSysRecordMap=lt());i.each((function(t){t.dataZoomInfoMap=null})),t.eachComponent({mainType:"dataZoom",subType:"inside"},(function(t){k(tR(t).infoList,(function(n){var r=n.model.uid,o=i.get(r)||i.set(r,function(t,e){var n={model:e,containsPoint:B(rz,e),dispatchAction:B(iz,t),dataZoomInfoMap:null,controller:null},i=n.controller=new vS(t.getZr());return k(["pan","zoom","scrollMove"],(function(t){i.on(t,(function(e){var i=[];n.dataZoomInfoMap.each((function(r){if(e.isAvailableBehavior(r.model.option)){var o=(r.getRange||{})[t],a=o&&o(r.dzReferCoordSysInfo,n.model.mainType,n.controller,e);!r.model.get("disabled",!0)&&a&&i.push({dataZoomId:r.model.id,start:a[0],end:a[1]})}})),i.length&&n.dispatchAction(i)}))})),n}(e,n.model));(o.dataZoomInfoMap||(o.dataZoomInfoMap=lt())).set(t.uid,{dzReferCoordSysInfo:n,model:t,getRange:null})}))})),i.each((function(t){var e,n=t.controller,r=t.dataZoomInfoMap;if(r){var o=r.keys()[0];null!=o&&(e=r.get(o))}if(e){var a=function(t){var e,n="type_",i={type_true:2,type_move:1,type_false:0,type_undefined:-1},r=!0;return t.each((function(t){var o=t.model,a=!o.get("disabled",!0)&&(!o.get("zoomLock",!0)||"move");i[n+a]>i[n+e]&&(e=a),r=r&&o.get("preventDefaultMouseMove",!0)})),{controlType:e,opt:{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!0,preventDefaultMouseMove:!!r}}}(r);n.enable(a.controlType,a.opt),n.setPointerChecker(t.containsPoint),Hd(t,"dispatchAction",e.model.get("throttle",!0),"fixRate")}else nz(i,t)}))}))}var az=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="dataZoom.inside",e}return e(n,t),n.prototype.render=function(e,n,i){t.prototype.render.apply(this,arguments),e.noTarget()?this._clear():(this.range=e.getPercentRange(),ez(i,e,{pan:z(sz.pan,this),zoom:z(sz.zoom,this),scrollMove:z(sz.scrollMove,this)}))},n.prototype.dispose=function(){this._clear(),t.prototype.dispose.apply(this,arguments)},n.prototype._clear=function(){!function(t,e){for(var n=tz(t).coordSysRecordMap,i=n.keys(),r=0;r<i.length;r++){var o=i[r],a=n.get(o),s=a.dataZoomInfoMap;if(s){var l=e.uid;s.get(l)&&(s.removeKey(l),s.keys().length||nz(n,a))}}}(this.api,this.dataZoomModel),this.range=null},n.type="dataZoom.inside",n}(oR),sz={zoom:function(t,e,n,i){var r=this.range,o=r.slice(),a=t.axisModels[0];if(a){var s=uz[e](null,[i.originX,i.originY],a,n,t),l=(s.signal>0?s.pixelStart+s.pixelLength-s.pixel:s.pixel-s.pixelStart)/s.pixelLength*(o[1]-o[0])+o[0],u=Math.max(1/i.scale,0);o[0]=(o[0]-l)*u+l,o[1]=(o[1]-l)*u+l;var h=this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();return fC(0,o,[0,100],0,h.minSpan,h.maxSpan),this.range=o,r[0]!==o[0]||r[1]!==o[1]?o:void 0}},pan:lz((function(t,e,n,i,r,o){var a=uz[i]([o.oldX,o.oldY],[o.newX,o.newY],e,r,n);return a.signal*(t[1]-t[0])*a.pixel/a.pixelLength})),scrollMove:lz((function(t,e,n,i,r,o){return uz[i]([0,0],[o.scrollDelta,o.scrollDelta],e,r,n).signal*(t[1]-t[0])*o.scrollDelta}))};function lz(t){return function(e,n,i,r){var o=this.range,a=o.slice(),s=e.axisModels[0];if(s)return fC(t(a,s,e,n,i,r),a,[0,100],"all"),this.range=a,o[0]!==a[0]||o[1]!==a[1]?a:void 0}}var uz={grid:function(t,e,n,i,r){var o=n.axis,a={},s=r.model.coordinateSystem.getRect();return t=t||[0,0],"x"===o.dim?(a.pixel=e[0]-t[0],a.pixelLength=s.width,a.pixelStart=s.x,a.signal=o.inverse?1:-1):(a.pixel=e[1]-t[1],a.pixelLength=s.height,a.pixelStart=s.y,a.signal=o.inverse?-1:1),a},polar:function(t,e,n,i,r){var o=n.axis,a={},s=r.model.coordinateSystem,l=s.getRadiusAxis().getExtent(),u=s.getAngleAxis().getExtent();return t=t?s.pointToCoord(t):[0,0],e=s.pointToCoord(e),"radiusAxis"===n.mainType?(a.pixel=e[0]-t[0],a.pixelLength=l[1]-l[0],a.pixelStart=l[0],a.signal=o.inverse?1:-1):(a.pixel=e[1]-t[1],a.pixelLength=u[1]-u[0],a.pixelStart=u[0],a.signal=o.inverse?-1:1),a},singleAxis:function(t,e,n,i,r){var o=n.axis,a=r.model.coordinateSystem.getRect(),s={};return t=t||[0,0],"horizontal"===o.orient?(s.pixel=e[0]-t[0],s.pixelLength=a.width,s.pixelStart=a.x,s.signal=o.inverse?1:-1):(s.pixel=e[1]-t[1],s.pixelLength=a.height,s.pixelStart=a.y,s.signal=o.inverse?-1:1),s}};function hz(t){pR(t),t.registerComponentModel(QE),t.registerComponentView(az),oz(t)}var cz=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.type="dataZoom.slider",n.layoutMode="box",n.defaultOption=sh(nR.defaultOption,{show:!0,right:"ph",top:"ph",width:"ph",height:"ph",left:null,bottom:null,borderColor:"#d2dbee",borderRadius:3,backgroundColor:"rgba(47,69,84,0)",dataBackground:{lineStyle:{color:"#d2dbee",width:.5},areaStyle:{color:"#d2dbee",opacity:.2}},selectedDataBackground:{lineStyle:{color:"#8fb0f7",width:.5},areaStyle:{color:"#8fb0f7",opacity:.2}},fillerColor:"rgba(135,175,274,0.2)",handleIcon:"path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z",handleSize:"100%",handleStyle:{color:"#fff",borderColor:"#ACB8D1"},moveHandleSize:7,moveHandleIcon:"path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z",moveHandleStyle:{color:"#D2DBEE",opacity:.7},showDetail:!0,showDataShadow:"auto",realtime:!0,zoomLock:!1,textStyle:{color:"#6E7079"},brushSelect:!0,brushStyle:{color:"rgba(135,175,274,0.15)"},emphasis:{handleStyle:{borderColor:"#8FB0F7"},moveHandleStyle:{color:"#8FB0F7"}}}),n}(nR),pz=Xa,dz=["line","bar","candlestick","scatter"],fz={easing:"cubicOut",duration:100},gz=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e._displayables={},e}return e(n,t),n.prototype.init=function(t,e){this.api=e,this._onBrush=z(this._onBrush,this),this._onBrushEnd=z(this._onBrushEnd,this)},n.prototype.render=function(e,n,i,r){if(t.prototype.render.apply(this,arguments),Hd(this,"_dispatchZoomAction",e.get("throttle"),"fixRate"),this._orient=e.getOrient(),!1!==e.get("show")){if(e.noTarget())return this._clear(),void this.group.removeAll();r&&"dataZoom"===r.type&&r.from===this.uid||this._buildView(),this._updateView()}else this.group.removeAll()},n.prototype.dispose=function(){this._clear(),t.prototype.dispose.apply(this,arguments)},n.prototype._clear=function(){var t,e,n;(n=(t=this)[e="_dispatchZoomAction"])&&n[Vd]&&(t[e]=n[Vd]);var i=this.api.getZr();i.off("mousemove",this._onBrush),i.off("mouseup",this._onBrushEnd)},n.prototype._buildView=function(){var t=this.group;t.removeAll(),this._brushing=!1,this._displayables.brushRect=null,this._resetLocation(),this._resetInterval();var e=this._displayables.sliderGroup=new Li;this._renderBackground(),this._renderHandle(),this._renderDataShadow(),t.add(e),this._positionGroup()},n.prototype._resetLocation=function(){var t=this.dataZoomModel,e=this.api,n=t.get("brushSelect")?7:0,i=this._findCoordRect(),r={width:e.getWidth(),height:e.getHeight()},o="horizontal"===this._orient?{right:r.width-i.x-i.width,top:r.height-30-7-n,width:i.width,height:30}:{right:7,top:i.y,width:30,height:i.height},a=rc(t.option);k(["right","top","width","height"],(function(t){"ph"===a[t]&&(a[t]=o[t])}));var s=tc(a,r);this._location={x:s.x,y:s.y},this._size=[s.width,s.height],"vertical"===this._orient&&this._size.reverse()},n.prototype._positionGroup=function(){var t=this.group,e=this._location,n=this._orient,i=this.dataZoomModel.getFirstTargetAxisModel(),r=i&&i.get("inverse"),o=this._displayables.sliderGroup,a=(this._dataShadowInfo||{}).otherAxisInverse;o.attr("horizontal"!==n||r?"horizontal"===n&&r?{scaleY:a?1:-1,scaleX:-1}:"vertical"!==n||r?{scaleY:a?-1:1,scaleX:-1,rotation:Math.PI/2}:{scaleY:a?-1:1,scaleX:1,rotation:Math.PI/2}:{scaleY:a?1:-1,scaleX:1});var s=t.getBoundingRect([o]);t.x=e.x-s.x,t.y=e.y-s.y,t.markRedraw()},n.prototype._getViewExtent=function(){return[0,this._size[0]]},n.prototype._renderBackground=function(){var t=this.dataZoomModel,e=this._size,n=this._displayables.sliderGroup,i=t.get("brushSelect");n.add(new pz({silent:!0,shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:t.get("backgroundColor")},z2:-40}));var r=new pz({shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:"transparent"},z2:0,onclick:z(this._onClickPanel,this)}),o=this.api.getZr();i?(r.on("mousedown",this._onBrushStart,this),r.cursor="crosshair",o.on("mousemove",this._onBrush),o.on("mouseup",this._onBrushEnd)):(o.off("mousemove",this._onBrush),o.off("mouseup",this._onBrushEnd)),n.add(r)},n.prototype._renderDataShadow=function(){var t=this._dataShadowInfo=this._prepareDataShadowInfo();if(this._displayables.dataShadowSegs=[],t){var e=this._size,n=t.series,i=n.getRawData(),r=n.getShadowDim?n.getShadowDim():t.otherDim;if(null!=r){var o=i.getDataExtent(r),a=.3*(o[1]-o[0]);o=[o[0]-a,o[1]+a];var s,l=[0,e[1]],u=[0,e[0]],h=[[e[0],0],[0,0]],c=[],p=u[1]/(i.count()-1),d=0,f=Math.round(i.count()/e[0]);i.each([r],(function(t,e){if(f>0&&e%f)d+=p;else{var n=null==t||isNaN(t)||""===t,i=n?0:Bi(t,o,l,!0);n&&!s&&e?(h.push([h[h.length-1][0],0]),c.push([c[c.length-1][0],0])):!n&&s&&(h.push([d,0]),c.push([d,0])),h.push([d,i]),c.push([d,i]),d+=p,s=n}}));for(var g=this.dataZoomModel,y=0;y<3;y++){var v=m(1===y);this._displayables.sliderGroup.add(v),this._displayables.dataShadowSegs.push(v)}}}function m(t){var e=g.getModel(t?"selectedDataBackground":"dataBackground"),n=new Li,i=new Ll({shape:{points:h},segmentIgnoreThreshold:1,style:e.getModel("areaStyle").getAreaStyle(),silent:!0,z2:-20}),r=new Pl({shape:{points:c},segmentIgnoreThreshold:1,style:e.getModel("lineStyle").getLineStyle(),silent:!0,z2:-19});return n.add(i),n.add(r),n}},n.prototype._prepareDataShadowInfo=function(){var t=this.dataZoomModel,e=t.get("showDataShadow");if(!1!==e){var n,i=this.ecModel;return t.eachTargetAxis((function(r,o){k(t.getAxisProxy(r,o).getTargetSeriesModels(),(function(t){if(!(n||!0!==e&&C(dz,t.get("type"))<0)){var a,s=i.getComponent(JO(r),o).axis,l={x:"y",y:"x",radius:"angle",angle:"radius"}[r],u=t.coordinateSystem;null!=l&&u.getOtherAxis&&(a=u.getOtherAxis(s).inverse),l=t.getData().mapDimension(l),n={thisAxis:s,series:t,thisDim:r,otherDim:l,otherAxisInverse:a}}}),this)}),this),n}},n.prototype._renderHandle=function(){var t=this.group,e=this._displayables,n=e.handles=[null,null],i=e.handleLabels=[null,null],r=this._displayables.sliderGroup,o=this._size,a=this.dataZoomModel,s=this.api,l=a.get("borderRadius")||0,u=a.get("brushSelect"),h=e.filler=new pz({silent:u,style:{fill:a.get("fillerColor")},textConfig:{position:"inside"}});r.add(h),r.add(new pz({silent:!0,subPixelOptimize:!0,shape:{x:0,y:0,width:o[0],height:o[1],r:l},style:{stroke:a.get("dataBackgroundColor")||a.get("borderColor"),lineWidth:1,fill:"rgba(0,0,0,0)"}})),k([0,1],(function(e){var o=a.get("handleIcon");!xg[o]&&o.indexOf("path://")<0&&(o="path://"+o);var s=Sg(o,-1,0,2,2,null,!0);s.attr({cursor:yz(this._orient),draggable:!0,drift:z(this._onDragMove,this,e),ondragend:z(this._onDragEnd,this),onmouseover:z(this._showDataInfo,this,!0),onmouseout:z(this._showDataInfo,this,!1),z2:5});var l=s.getBoundingRect(),u=a.get("handleSize");this._handleHeight=Vi(u,this._size[1]),this._handleWidth=l.width/l.height*this._handleHeight,s.setStyle(a.getModel("handleStyle").getItemStyle()),s.style.strokeNoScale=!0,s.rectHover=!0,s.ensureState("emphasis").style=a.getModel(["emphasis","handleStyle"]).getItemStyle(),Os(s);var h=a.get("handleColor");null!=h&&(s.style.fill=h),r.add(n[e]=s);var c=a.getModel("textStyle");t.add(i[e]=new ja({silent:!0,invisible:!0,style:{x:0,y:0,text:"",verticalAlign:"middle",align:"center",fill:c.getTextColor(),font:c.getFont()},z2:10}))}),this);var c=h;if(u){var p=Vi(a.get("moveHandleSize"),o[1]),d=e.moveHandle=new Xa({style:a.getModel("moveHandleStyle").getItemStyle(),silent:!0,shape:{r:[0,0,2,2],y:o[1]-.5,height:p}}),f=.8*p,g=e.moveHandleIcon=Sg(a.get("moveHandleIcon"),-f/2,-f/2,f,f,"#fff",!0);g.silent=!0,g.y=o[1]+p/2-.5,d.ensureState("emphasis").style=a.getModel(["emphasis","moveHandleStyle"]).getItemStyle();var y=Math.min(o[1]/2,Math.max(p,10));(c=e.moveZone=new Xa({invisible:!0,shape:{y:o[1]-y,height:p+y}})).on("mouseover",(function(){s.enterEmphasis(d)})).on("mouseout",(function(){s.leaveEmphasis(d)})),r.add(d),r.add(g),r.add(c)}c.attr({draggable:!0,cursor:yz(this._orient),drift:z(this._onDragMove,this,"all"),ondragstart:z(this._showDataInfo,this,!0),ondragend:z(this._onDragEnd,this),onmouseover:z(this._showDataInfo,this,!0),onmouseout:z(this._showDataInfo,this,!1)})},n.prototype._resetInterval=function(){var t=this._range=this.dataZoomModel.getPercentRange(),e=this._getViewExtent();this._handleEnds=[Bi(t[0],[0,100],e,!0),Bi(t[1],[0,100],e,!0)]},n.prototype._updateInterval=function(t,e){var n=this.dataZoomModel,i=this._handleEnds,r=this._getViewExtent(),o=n.findRepresentativeAxisProxy().getMinMaxSpan(),a=[0,100];fC(e,i,r,n.get("zoomLock")?"all":t,null!=o.minSpan?Bi(o.minSpan,a,r,!0):null,null!=o.maxSpan?Bi(o.maxSpan,a,r,!0):null);var s=this._range,l=this._range=Gi([Bi(i[0],r,a,!0),Bi(i[1],r,a,!0)]);return!s||s[0]!==l[0]||s[1]!==l[1]},n.prototype._updateView=function(t){var e=this._displayables,n=this._handleEnds,i=Gi(n.slice()),r=this._size;k([0,1],(function(t){var i=e.handles[t],o=this._handleHeight;i.attr({scaleX:o/2,scaleY:o/2,x:n[t]+(t?-1:1),y:r[1]/2-o/2})}),this),e.filler.setShape({x:i[0],y:0,width:i[1]-i[0],height:r[1]});var o={x:i[0],width:i[1]-i[0]};e.moveHandle&&(e.moveHandle.setShape(o),e.moveZone.setShape(o),e.moveZone.getBoundingRect(),e.moveHandleIcon&&e.moveHandleIcon.attr("x",o.x+o.width/2));for(var a=e.dataShadowSegs,s=[0,i[0],i[1],r[0]],l=0;l<a.length;l++){var u=a[l],h=u.getClipPath();h||(h=new Xa,u.setClipPath(h)),h.setShape({x:s[l],y:0,width:s[l+1]-s[l],height:r[1]})}this._updateDataInfo(t)},n.prototype._updateDataInfo=function(t){var e=this.dataZoomModel,n=this._displayables,i=n.handleLabels,r=this._orient,o=["",""];if(e.get("showDetail")){var a=e.findRepresentativeAxisProxy();if(a){var s=a.getAxisModel().axis,l=this._range,u=t?a.calculateDataWindow({start:l[0],end:l[1]}).valueWindow:a.getDataValueWindow();o=[this._formatLabel(u[0],s),this._formatLabel(u[1],s)]}}var h=Gi(this._handleEnds.slice());function c(t){var e=xu(n.handles[t].parent,this.group),a=wu(0===t?"right":"left",e),s=this._handleWidth/2+5,l=bu([h[t]+(0===t?-s:s),this._size[1]/2],e);i[t].setStyle({x:l[0],y:l[1],verticalAlign:"horizontal"===r?"middle":a,align:"horizontal"===r?a:"center",text:o[t]})}c.call(this,0),c.call(this,1)},n.prototype._formatLabel=function(t,e){var n=this.dataZoomModel,i=n.get("labelFormatter"),r=n.get("labelPrecision");null!=r&&"auto"!==r||(r=e.getPixelPrecision());var o=null==t||isNaN(t)?"":"category"===e.type||"time"===e.type?e.scale.getLabel({value:Math.round(t)}):t.toFixed(Math.min(r,20));return F(i)?i(t,o):G(i)?i.replace("{value}",o):o},n.prototype._showDataInfo=function(t){t=this._dragging||t;var e=this._displayables,n=e.handleLabels;n[0].attr("invisible",!t),n[1].attr("invisible",!t),e.moveHandle&&this.api[t?"enterEmphasis":"leaveEmphasis"](e.moveHandle,1)},n.prototype._onDragMove=function(t,e,n,i){this._dragging=!0,Qt(i.event);var r=bu([e,n],this._displayables.sliderGroup.getLocalTransform(),!0),o=this._updateInterval(t,r[0]),a=this.dataZoomModel.get("realtime");this._updateView(!a),o&&a&&this._dispatchZoomAction(!0)},n.prototype._onDragEnd=function(){this._dragging=!1,this._showDataInfo(!1),!this.dataZoomModel.get("realtime")&&this._dispatchZoomAction(!1)},n.prototype._onClickPanel=function(t){var e=this._size,n=this._displayables.sliderGroup.transformCoordToLocal(t.offsetX,t.offsetY);if(!(n[0]<0||n[0]>e[0]||n[1]<0||n[1]>e[1])){var i=this._handleEnds,r=(i[0]+i[1])/2,o=this._updateInterval("all",n[0]-r);this._updateView(),o&&this._dispatchZoomAction(!1)}},n.prototype._onBrushStart=function(t){var e=t.offsetX,n=t.offsetY;this._brushStart=new bn(e,n),this._brushing=!0,this._brushStartTime=+new Date},n.prototype._onBrushEnd=function(t){if(this._brushing){var e=this._displayables.brushRect;if(this._brushing=!1,e){e.attr("ignore",!0);var n=e.shape;if(!(+new Date-this._brushStartTime<200&&Math.abs(n.width)<5)){var i=this._getViewExtent(),r=[0,100];this._range=Gi([Bi(n.x,i,r,!0),Bi(n.x+n.width,i,r,!0)]),this._handleEnds=[n.x,n.x+n.width],this._updateView(),this._dispatchZoomAction(!1)}}}},n.prototype._onBrush=function(t){this._brushing&&(Qt(t.event),this._updateBrushRect(t.offsetX,t.offsetY))},n.prototype._updateBrushRect=function(t,e){var n=this._displayables,i=this.dataZoomModel,r=n.brushRect;r||(r=n.brushRect=new pz({silent:!0,style:i.getModel("brushStyle").getItemStyle()}),n.sliderGroup.add(r)),r.attr("ignore",!1);var o=this._brushStart,a=this._displayables.sliderGroup,s=a.transformCoordToLocal(t,e),l=a.transformCoordToLocal(o.x,o.y),u=this._size;s[0]=Math.max(Math.min(u[0],s[0]),0),r.setShape({x:l[0],y:0,width:s[0]-l[0],height:u[1]})},n.prototype._dispatchZoomAction=function(t){var e=this._range;this.api.dispatchAction({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,animation:t?fz:null,start:e[0],end:e[1]})},n.prototype._findCoordRect=function(){var t,e=tR(this.dataZoomModel).infoList;if(!t&&e.length){var n=e[0].model.coordinateSystem;t=n.getRect&&n.getRect()}if(!t){var i=this.api.getWidth(),r=this.api.getHeight();t={x:.2*i,y:.2*r,width:.6*i,height:.6*r}}return t},n.type="dataZoom.slider",n}(oR);function yz(t){return"vertical"===t?"ns-resize":"ew-resize"}function vz(t){t.registerComponentModel(cz),t.registerComponentView(gz),pR(t)}var mz=function(t,e,n){var i=b((_z[t]||{})[e]);return n&&V(i)?i[i.length-1]:i},_z={color:{active:["#006edd","#e0ffff"],inactive:["rgba(0,0,0,0)"]},colorHue:{active:[0,360],inactive:[0,0]},colorSaturation:{active:[.3,1],inactive:[0,0]},colorLightness:{active:[.9,.5],inactive:[0,0]},colorAlpha:{active:[.3,1],inactive:[0,0]},opacity:{active:[.3,1],inactive:[0,0]},symbol:{active:["circle","roundRect","diamond"],inactive:["none"]},symbolSize:{active:[10,50],inactive:[0,0]}},xz=uI.mapVisual,bz=uI.eachVisual,wz=V,Sz=k,Mz=Gi,Iz=Bi,Tz=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.stateList=["inRange","outOfRange"],e.replacableOptionKeys=["inRange","outOfRange","target","controller","color"],e.layoutMode={type:"box",ignoreSize:!0},e.dataBound=[-1/0,1/0],e.targetVisuals={},e.controllerVisuals={},e}return e(n,t),n.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n)},n.prototype.optionUpdated=function(t,e){var n=this.option;o.canvasSupported||(n.realtime=!1),!e&&MN(n,t,this.replacableOptionKeys),this.textStyleModel=this.getModel("textStyle"),this.resetItemSize(),this.completeVisualOption()},n.prototype.resetVisual=function(t){var e=this.stateList;t=z(t,this),this.controllerVisuals=SN(this.option.controller,e,t),this.targetVisuals=SN(this.option.target,e,t)},n.prototype.getTargetSeriesIndices=function(){var t=this.option.seriesIndex,e=[];return null==t||"all"===t?this.ecModel.eachSeries((function(t,n){e.push(n)})):e=lr(t),e},n.prototype.eachTargetSeries=function(t,e){k(this.getTargetSeriesIndices(),(function(n){var i=this.ecModel.getSeriesByIndex(n);i&&t.call(e,i)}),this)},n.prototype.isTargetSeries=function(t){var e=!1;return this.eachTargetSeries((function(n){n===t&&(e=!0)})),e},n.prototype.formatValueText=function(t,e,n){var i,r=this.option,o=r.precision,a=this.dataBound,s=r.formatter;n=n||["<",">"],V(t)&&(t=t.slice(),i=!0);var l=e?t:i?[u(t[0]),u(t[1])]:u(t);return G(s)?s.replace("{value}",i?l[0]:l).replace("{value2}",i?l[1]:l):F(s)?i?s(t[0],t[1]):s(t):i?t[0]===a[0]?n[0]+" "+l[1]:t[1]===a[1]?n[1]+" "+l[0]:l[0]+" - "+l[1]:l;function u(t){return t===a[0]?"min":t===a[1]?"max":(+t).toFixed(Math.min(o,20))}},n.prototype.resetExtent=function(){var t=this.option,e=Mz([t.min,t.max]);this._dataExtent=e},n.prototype.getDataDimension=function(t){var e=this.option.dimension,n=t.dimensions;if(null!=e||n.length){if(null!=e)return t.getDimension(e);for(var i=t.dimensions,r=i.length-1;r>=0;r--){var o=i[r];if(!t.getDimensionInfo(o).isCalculationCoord)return o}}},n.prototype.getExtent=function(){return this._dataExtent.slice()},n.prototype.completeVisualOption=function(){var t=this.ecModel,e=this.option,n={inRange:e.inRange,outOfRange:e.outOfRange},i=e.target||(e.target={}),r=e.controller||(e.controller={});w(i,n),w(r,n);var o=this.isCategory();function a(n){wz(e.color)&&!n.inRange&&(n.inRange={color:e.color.slice().reverse()}),n.inRange=n.inRange||{color:t.get("gradientColor")}}a.call(this,i),a.call(this,r),function(t,e,n){var i=t[e],r=t[n];i&&!r&&(r=t[n]={},Sz(i,(function(t,e){if(uI.isValidType(e)){var n=mz(e,"inactive",o);null!=n&&(r[e]=n,"color"!==e||r.hasOwnProperty("opacity")||r.hasOwnProperty("colorAlpha")||(r.opacity=[0,0]))}})))}.call(this,i,"inRange","outOfRange"),function(t){var e=(t.inRange||{}).symbol||(t.outOfRange||{}).symbol,n=(t.inRange||{}).symbolSize||(t.outOfRange||{}).symbolSize,i=this.get("inactiveColor");Sz(this.stateList,(function(r){var a=this.itemSize,s=t[r];s||(s=t[r]={color:o?i:[i]}),null==s.symbol&&(s.symbol=e&&b(e)||(o?"roundRect":["roundRect"])),null==s.symbolSize&&(s.symbolSize=n&&b(n)||(o?a[0]:[a[0],a[0]])),s.symbol=xz(s.symbol,(function(t){return"none"===t||"square"===t?"roundRect":t}));var l=s.symbolSize;if(null!=l){var u=-1/0;bz(l,(function(t){t>u&&(u=t)})),s.symbolSize=xz(l,(function(t){return Iz(t,[0,u],[0,a[0]],!0)}))}}),this)}.call(this,r)},n.prototype.resetItemSize=function(){this.itemSize=[parseFloat(this.get("itemWidth")),parseFloat(this.get("itemHeight"))]},n.prototype.isCategory=function(){return!!this.option.categories},n.prototype.setSelected=function(t){},n.prototype.getSelected=function(){return null},n.prototype.getValueState=function(t){return null},n.prototype.getVisualMeta=function(t){return null},n.type="visualMap",n.dependencies=["series"],n.defaultOption={show:!0,zlevel:0,z:4,seriesIndex:"all",min:0,max:200,left:0,right:null,top:null,bottom:0,itemWidth:null,itemHeight:null,inverse:!1,orient:"vertical",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",contentColor:"#5793f3",inactiveColor:"#aaa",borderWidth:0,padding:5,textGap:10,precision:0,textStyle:{color:"#333"}},n}(sc),Cz=[20,140],Az=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.optionUpdated=function(e,n){t.prototype.optionUpdated.apply(this,arguments),this.resetExtent(),this.resetVisual((function(t){t.mappingMethod="linear",t.dataExtent=this.getExtent()})),this._resetRange()},n.prototype.resetItemSize=function(){t.prototype.resetItemSize.apply(this,arguments);var e=this.itemSize;(null==e[0]||isNaN(e[0]))&&(e[0]=Cz[0]),(null==e[1]||isNaN(e[1]))&&(e[1]=Cz[1])},n.prototype._resetRange=function(){var t=this.getExtent(),e=this.option.range;!e||e.auto?(t.auto=1,this.option.range=t):V(e)&&(e[0]>e[1]&&e.reverse(),e[0]=Math.max(e[0],t[0]),e[1]=Math.min(e[1],t[1]))},n.prototype.completeVisualOption=function(){t.prototype.completeVisualOption.apply(this,arguments),k(this.stateList,(function(t){var e=this.option.controller[t].symbolSize;e&&e[0]!==e[1]&&(e[0]=e[1]/3)}),this)},n.prototype.setSelected=function(t){this.option.range=t.slice(),this._resetRange()},n.prototype.getSelected=function(){var t=this.getExtent(),e=Gi((this.get("range")||[]).slice());return e[0]>t[1]&&(e[0]=t[1]),e[1]>t[1]&&(e[1]=t[1]),e[0]<t[0]&&(e[0]=t[0]),e[1]<t[0]&&(e[1]=t[0]),e},n.prototype.getValueState=function(t){var e=this.option.range,n=this.getExtent();return(e[0]<=n[0]||e[0]<=t)&&(e[1]>=n[1]||t<=e[1])?"inRange":"outOfRange"},n.prototype.findTargetDataIndices=function(t){var e=[];return this.eachTargetSeries((function(n){var i=[],r=n.getData();r.each(this.getDataDimension(r),(function(e,n){t[0]<=e&&e<=t[1]&&i.push(n)}),this),e.push({seriesId:n.id,dataIndex:i})}),this),e},n.prototype.getVisualMeta=function(t){var e=Dz(this,"outOfRange",this.getExtent()),n=Dz(this,"inRange",this.option.range.slice()),i=[];function r(e,n){i.push({value:e,color:t(e,n)})}for(var o=0,a=0,s=n.length,l=e.length;a<l&&(!n.length||e[a]<=n[0]);a++)e[a]<n[o]&&r(e[a],"outOfRange");for(var u=1;o<s;o++,u=0)u&&i.length&&r(n[o],"outOfRange"),r(n[o],"inRange");for(u=1;a<l;a++)(!n.length||n[n.length-1]<e[a])&&(u&&(i.length&&r(i[i.length-1].value,"outOfRange"),u=0),r(e[a],"outOfRange"));var h=i.length;return{stops:i,outerColors:[h?i[0].color:"transparent",h?i[h-1].color:"transparent"]}},n.type="visualMap.continuous",n.defaultOption=sh(Tz.defaultOption,{align:"auto",calculable:!1,hoverLink:!0,realtime:!0,handleIcon:"path://M-11.39,9.77h0a3.5,3.5,0,0,1-3.5,3.5h-22a3.5,3.5,0,0,1-3.5-3.5h0a3.5,3.5,0,0,1,3.5-3.5h22A3.5,3.5,0,0,1-11.39,9.77Z",handleSize:"120%",handleStyle:{borderColor:"#fff",borderWidth:1},indicatorIcon:"circle",indicatorSize:"50%",indicatorStyle:{borderColor:"#fff",borderWidth:2,shadowBlur:2,shadowOffsetX:1,shadowOffsetY:1,shadowColor:"rgba(0,0,0,0.2)"}}),n}(Tz);function Dz(t,e,n){if(n[0]===n[1])return n.slice();for(var i=(n[1]-n[0])/200,r=n[0],o=[],a=0;a<=200&&r<n[1];a++)o.push(r),r+=i;return o.push(n[1]),o}var Lz=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e.autoPositionValues={left:1,right:1,top:1,bottom:1},e}return e(n,t),n.prototype.init=function(t,e){this.ecModel=t,this.api=e},n.prototype.render=function(t,e,n,i){this.visualMapModel=t,!1!==t.get("show")?this.doRender(t,e,n,i):this.group.removeAll()},n.prototype.renderBackground=function(t){var e=this.visualMapModel,n=Bh(e.get("padding")||0),i=t.getBoundingRect();t.add(new Xa({z2:-1,silent:!0,shape:{x:i.x-n[3],y:i.y-n[0],width:i.width+n[3]+n[1],height:i.height+n[0]+n[2]},style:{fill:e.get("backgroundColor"),stroke:e.get("borderColor"),lineWidth:e.get("borderWidth")}}))},n.prototype.getControllerVisual=function(t,e,n){var i=(n=n||{}).forceState,r=this.visualMapModel,o={};if("symbol"===e&&(o.symbol=r.get("itemSymbol")),"color"===e){var a=r.get("contentColor");o.color=a}function s(t){return o[t]}function l(t,e){o[t]=e}var u=r.controllerVisuals[i||r.getValueState(t)];return k(uI.prepareVisualTypes(u),(function(i){var r=u[i];n.convertOpacityToAlpha&&"opacity"===i&&(i="colorAlpha",r=u.__alphaForOpacity),uI.dependsOn(i,e)&&r&&r.applyVisual(t,s,l)})),o[e]},n.prototype.positionGroup=function(t){var e=this.visualMapModel,n=this.api;ec(t,e.getBoxLayoutParams(),{width:n.getWidth(),height:n.getHeight()})},n.prototype.doRender=function(t,e,n,i){},n.type="visualMap",n}(Dd),kz=[["left","right","width"],["top","bottom","height"]];function Pz(t,e,n){var i=t.option,r=i.align;if(null!=r&&"auto"!==r)return r;for(var o={width:e.getWidth(),height:e.getHeight()},a="horizontal"===i.orient?1:0,s=kz[a],l=[0,null,10],u={},h=0;h<3;h++)u[kz[1-a][h]]=l[h],u[s[h]]=2===h?n[0]:i[s[h]];var c=[["x","width",3],["y","height",0]][a],p=tc(u,o,i.padding);return s[(p.margin[c[2]]||0)+p[c[0]]+.5*p[c[1]]<.5*o[c[1]]?0:1]}function Oz(t,e){return k(t||[],(function(t){null!=t.dataIndex&&(t.dataIndexInside=t.dataIndex,t.dataIndex=null),t.highlightKey="visualMap"+(e?e.componentIndex:"")})),t}var Rz=Bi,Nz=k,Ez=Math.min,zz=Math.max,Bz=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e._shapes={},e._dataInterval=[],e._handleEnds=[],e._hoverLinkDataIndices=[],e}return e(n,t),n.prototype.doRender=function(t,e,n,i){this._api=n,i&&"selectDataRange"===i.type&&i.from===this.uid||this._buildView()},n.prototype._buildView=function(){this.group.removeAll();var t=this.visualMapModel,e=this.group;this._orient=t.get("orient"),this._useHandle=t.get("calculable"),this._resetInterval(),this._renderBar(e);var n=t.get("text");this._renderEndsText(e,n,0),this._renderEndsText(e,n,1),this._updateView(!0),this.renderBackground(e),this._updateView(),this._enableHoverLinkToSeries(),this._enableHoverLinkFromSeries(),this.positionGroup(e)},n.prototype._renderEndsText=function(t,e,n){if(e){var i=e[1-n];i=null!=i?i+"":"";var r=this.visualMapModel,o=r.get("textGap"),a=r.itemSize,s=this._shapes.mainGroup,l=this._applyTransform([a[0]/2,0===n?-o:a[1]+o],s),u=this._applyTransform(0===n?"bottom":"top",s),h=this._orient,c=this.visualMapModel.textStyleModel;this.group.add(new ja({style:{x:l[0],y:l[1],verticalAlign:"horizontal"===h?"middle":u,align:"horizontal"===h?u:"center",text:i,font:c.getFont(),fill:c.getTextColor()}}))}},n.prototype._renderBar=function(t){var e=this.visualMapModel,n=this._shapes,i=e.itemSize,r=this._orient,o=this._useHandle,a=Pz(e,this.api,i),s=n.mainGroup=this._createBarGroup(a),l=new Li;s.add(l),l.add(n.outOfRange=Vz()),l.add(n.inRange=Vz(null,o?Gz(this._orient):null,z(this._dragHandle,this,"all",!1),z(this._dragHandle,this,"all",!0))),l.setClipPath(new Xa({shape:{x:0,y:0,width:i[0],height:i[1],r:3}}));var u=e.textStyleModel.getTextRect("国"),h=zz(u.width,u.height);o&&(n.handleThumbs=[],n.handleLabels=[],n.handleLabelPoints=[],this._createHandle(e,s,0,i,h,r),this._createHandle(e,s,1,i,h,r)),this._createIndicator(e,s,i,h,r),t.add(s)},n.prototype._createHandle=function(t,e,n,i,r,o){var a=z(this._dragHandle,this,n,!1),s=z(this._dragHandle,this,n,!0),l=Fn(t.get("handleSize"),i[0]),u=Sg(t.get("handleIcon"),-l/2,-l/2,l,l,null,!0),h=Gz(this._orient);u.attr({cursor:h,draggable:!0,drift:a,ondragend:s,onmousemove:function(t){Qt(t.event)}}),u.x=i[0]/2,u.useStyle(t.getModel("handleStyle").getItemStyle()),u.setStyle({strokeNoScale:!0,strokeFirst:!0}),u.style.lineWidth*=2,u.ensureState("emphasis").style=t.getModel(["emphasis","handleStyle"]).getItemStyle(),Bs(u,!0),e.add(u);var c=this.visualMapModel.textStyleModel,p=new ja({cursor:h,draggable:!0,drift:a,onmousemove:function(t){Qt(t.event)},ondragend:s,style:{x:0,y:0,text:"",font:c.getFont(),fill:c.getTextColor()}});p.ensureState("blur").style={opacity:.1},p.stateTransition={duration:200},this.group.add(p);var d=[l,0],f=this._shapes;f.handleThumbs[n]=u,f.handleLabelPoints[n]=d,f.handleLabels[n]=p},n.prototype._createIndicator=function(t,e,n,i,r){var o=Fn(t.get("indicatorSize"),n[0]),a=Sg(t.get("indicatorIcon"),-o/2,-o/2,o,o,null,!0);a.attr({cursor:"move",invisible:!0,silent:!0,x:n[0]/2});var s=t.getModel("indicatorStyle").getItemStyle();if(a instanceof Ba){var l=a.style;a.useStyle(M({image:l.image,x:l.x,y:l.y,width:l.width,height:l.height},s))}else a.useStyle(s);e.add(a);var u=this.visualMapModel.textStyleModel,h=new ja({silent:!0,invisible:!0,style:{x:0,y:0,text:"",font:u.getFont(),fill:u.getTextColor()}});this.group.add(h);var c=[("horizontal"===r?i/2:6)+n[0]/2,0],p=this._shapes;p.indicator=a,p.indicatorLabel=h,p.indicatorLabelPoint=c,this._firstShowIndicator=!0},n.prototype._dragHandle=function(t,e,n,i){if(this._useHandle){if(this._dragging=!e,!e){var r=this._applyTransform([n,i],this._shapes.mainGroup,!0);this._updateInterval(t,r[1]),this._hideIndicator(),this._updateView()}e===!this.visualMapModel.get("realtime")&&this.api.dispatchAction({type:"selectDataRange",from:this.uid,visualMapId:this.visualMapModel.id,selected:this._dataInterval.slice()}),e?!this._hovering&&this._clearHoverLinkToSeries():Fz(this.visualMapModel)&&this._doHoverLinkToSeries(this._handleEnds[t],!1)}},n.prototype._resetInterval=function(){var t=this.visualMapModel,e=this._dataInterval=t.getSelected(),n=t.getExtent(),i=[0,t.itemSize[1]];this._handleEnds=[Rz(e[0],n,i,!0),Rz(e[1],n,i,!0)]},n.prototype._updateInterval=function(t,e){e=e||0;var n=this.visualMapModel,i=this._handleEnds,r=[0,n.itemSize[1]];fC(e,i,r,t,0);var o=n.getExtent();this._dataInterval=[Rz(i[0],r,o,!0),Rz(i[1],r,o,!0)]},n.prototype._updateView=function(t){var e=this.visualMapModel,n=e.getExtent(),i=this._shapes,r=[0,e.itemSize[1]],o=t?r:this._handleEnds,a=this._createBarVisual(this._dataInterval,n,o,"inRange"),s=this._createBarVisual(n,n,r,"outOfRange");i.inRange.setStyle({fill:a.barColor}).setShape("points",a.barPoints),i.outOfRange.setStyle({fill:s.barColor}).setShape("points",s.barPoints),this._updateHandle(o,a)},n.prototype._createBarVisual=function(t,e,n,i){var r={forceState:i,convertOpacityToAlpha:!0},o=this._makeColorGradient(t,r),a=[this.getControllerVisual(t[0],"symbolSize",r),this.getControllerVisual(t[1],"symbolSize",r)],s=this._createBarPoints(n,a);return{barColor:new Yl(0,0,0,1,o),barPoints:s,handlesColor:[o[0].color,o[o.length-1].color]}},n.prototype._makeColorGradient=function(t,e){var n=[],i=(t[1]-t[0])/100;n.push({color:this.getControllerVisual(t[0],"color",e),offset:0});for(var r=1;r<100;r++){var o=t[0]+i*r;if(o>t[1])break;n.push({color:this.getControllerVisual(o,"color",e),offset:r/100})}return n.push({color:this.getControllerVisual(t[1],"color",e),offset:1}),n},n.prototype._createBarPoints=function(t,e){var n=this.visualMapModel.itemSize;return[[n[0]-e[0],t[0]],[n[0],t[0]],[n[0],t[1]],[n[0]-e[1],t[1]]]},n.prototype._createBarGroup=function(t){var e=this._orient,n=this.visualMapModel.get("inverse");return new Li("horizontal"!==e||n?"horizontal"===e&&n?{scaleX:"bottom"===t?-1:1,rotation:-Math.PI/2}:"vertical"!==e||n?{scaleX:"left"===t?1:-1}:{scaleX:"left"===t?1:-1,scaleY:-1}:{scaleX:"bottom"===t?1:-1,rotation:Math.PI/2})},n.prototype._updateHandle=function(t,e){if(this._useHandle){var n=this._shapes,i=this.visualMapModel,r=n.handleThumbs,o=n.handleLabels,a=i.itemSize,s=i.getExtent();Nz([0,1],(function(l){var u=r[l];u.setStyle("fill",e.handlesColor[l]),u.y=t[l];var h=Rz(t[l],[0,a[1]],s,!0),c=this.getControllerVisual(h,"symbolSize");u.scaleX=u.scaleY=c/a[0],u.x=a[0]-c/2;var p=bu(n.handleLabelPoints[l],xu(u,this.group));o[l].setStyle({x:p[0],y:p[1],text:i.formatValueText(this._dataInterval[l]),verticalAlign:"middle",align:"vertical"===this._orient?this._applyTransform("left",n.mainGroup):"center"})}),this)}},n.prototype._showIndicator=function(t,e,n,i){var r=this.visualMapModel,o=r.getExtent(),a=r.itemSize,s=[0,a[1]],l=this._shapes,u=l.indicator;if(u){u.attr("invisible",!1);var h=this.getControllerVisual(t,"color",{convertOpacityToAlpha:!0}),c=this.getControllerVisual(t,"symbolSize"),p=Rz(t,o,s,!0),d=a[0]-c/2,f={x:u.x,y:u.y};u.y=p,u.x=d;var g=bu(l.indicatorLabelPoint,xu(u,this.group)),y=l.indicatorLabel;y.attr("invisible",!1);var v=this._applyTransform("left",l.mainGroup),m="horizontal"===this._orient;y.setStyle({text:(n||"")+r.formatValueText(e),verticalAlign:m?v:"middle",align:m?"center":v});var _={x:d,y:p,style:{fill:h}},x={style:{x:g[0],y:g[1]}};if(r.ecModel.isAnimationEnabled()&&!this._firstShowIndicator){var b={duration:100,easing:"cubicInOut",additive:!0};u.x=f.x,u.y=f.y,u.animateTo(_,b),y.animateTo(x,b)}else u.attr(_),y.attr(x);this._firstShowIndicator=!1;var w=this._shapes.handleLabels;if(w)for(var S=0;S<w.length;S++)this._api.enterBlur(w[S])}},n.prototype._enableHoverLinkToSeries=function(){var t=this;this._shapes.mainGroup.on("mousemove",(function(e){if(t._hovering=!0,!t._dragging){var n=t.visualMapModel.itemSize,i=t._applyTransform([e.offsetX,e.offsetY],t._shapes.mainGroup,!0,!0);i[1]=Ez(zz(0,i[1]),n[1]),t._doHoverLinkToSeries(i[1],0<=i[0]&&i[0]<=n[0])}})).on("mouseout",(function(){t._hovering=!1,!t._dragging&&t._clearHoverLinkToSeries()}))},n.prototype._enableHoverLinkFromSeries=function(){var t=this.api.getZr();this.visualMapModel.option.hoverLink?(t.on("mouseover",this._hoverLinkFromSeriesMouseOver,this),t.on("mouseout",this._hideIndicator,this)):this._clearHoverLinkFromSeries()},n.prototype._doHoverLinkToSeries=function(t,e){var n=this.visualMapModel,i=n.itemSize;if(n.option.hoverLink){var r=[0,i[1]],o=n.getExtent();t=Ez(zz(r[0],t),r[1]);var a=function(t,e,n){var i=6,r=t.get("hoverLinkDataSize");r&&(i=Rz(r,e,n,!0)/2);return i}(n,o,r),s=[t-a,t+a],l=Rz(t,r,o,!0),u=[Rz(s[0],r,o,!0),Rz(s[1],r,o,!0)];s[0]<r[0]&&(u[0]=-1/0),s[1]>r[1]&&(u[1]=1/0),e&&(u[0]===-1/0?this._showIndicator(l,u[1],"< ",a):u[1]===1/0?this._showIndicator(l,u[0],"> ",a):this._showIndicator(l,l,"≈ ",a));var h=this._hoverLinkDataIndices,c=[];(e||Fz(n))&&(c=this._hoverLinkDataIndices=n.findTargetDataIndices(u));var p=function(t,e){var n={},i={};return r(t||[],n),r(e||[],i,n),[o(n),o(i)];function r(t,e,n){for(var i=0,r=t.length;i<r;i++){var o=gr(t[i].seriesId,null);if(null==o)return;for(var a=lr(t[i].dataIndex),s=n&&n[o],l=0,u=a.length;l<u;l++){var h=a[l];s&&s[h]?s[h]=null:(e[o]||(e[o]={}))[h]=1}}}function o(t,e){var n=[];for(var i in t)if(t.hasOwnProperty(i)&&null!=t[i])if(e)n.push(+i);else{var r=o(t[i],!0);r.length&&n.push({seriesId:i,dataIndex:r})}return n}}(h,c);this._dispatchHighDown("downplay",Oz(p[0],n)),this._dispatchHighDown("highlight",Oz(p[1],n))}},n.prototype._hoverLinkFromSeriesMouseOver=function(t){var e=t.target,n=this.visualMapModel;if(e&&null!=ns(e).dataIndex){var i=ns(e),r=this.ecModel.getSeriesByIndex(i.seriesIndex);if(n.isTargetSeries(r)){var o=r.getData(i.dataType),a=o.get(n.getDataDimension(o),i.dataIndex);isNaN(a)||this._showIndicator(a,a)}}},n.prototype._hideIndicator=function(){var t=this._shapes;t.indicator&&t.indicator.attr("invisible",!0),t.indicatorLabel&&t.indicatorLabel.attr("invisible",!0);var e=this._shapes.handleLabels;if(e)for(var n=0;n<e.length;n++)this._api.leaveBlur(e[n])},n.prototype._clearHoverLinkToSeries=function(){this._hideIndicator();var t=this._hoverLinkDataIndices;this._dispatchHighDown("downplay",Oz(t,this.visualMapModel)),t.length=0},n.prototype._clearHoverLinkFromSeries=function(){this._hideIndicator();var t=this.api.getZr();t.off("mouseover",this._hoverLinkFromSeriesMouseOver),t.off("mouseout",this._hideIndicator)},n.prototype._applyTransform=function(t,e,n,i){var r=xu(e,i?null:this.group);return V(t)?bu(t,r,n):wu(t,r,n)},n.prototype._dispatchHighDown=function(t,e){e&&e.length&&this.api.dispatchAction({type:t,batch:e})},n.prototype.dispose=function(){this._clearHoverLinkFromSeries(),this._clearHoverLinkToSeries()},n.prototype.remove=function(){this._clearHoverLinkFromSeries(),this._clearHoverLinkToSeries()},n.type="visualMap.continuous",n}(Lz);function Vz(t,e,n,i){return new Ll({shape:{points:t},draggable:!!n,cursor:e,drift:n,onmousemove:function(t){Qt(t.event)},ondragend:i})}function Fz(t){var e=t.get("hoverLinkOnHandle");return!!(null==e?t.get("realtime"):e)}function Gz(t){return"vertical"===t?"ns-resize":"ew-resize"}var Hz={type:"selectDataRange",event:"dataRangeSelected",update:"update"},Wz=function(t,e){e.eachComponent({mainType:"visualMap",query:t},(function(e){e.setSelected(t.selected)}))},Yz=[{createOnAllSeries:!0,reset:function(t,e){var n=[];return e.eachComponent("visualMap",(function(e){var i,r,o,a,s,l=t.pipelineContext;!e.isTargetSeries(t)||l&&l.large||n.push((i=e.stateList,r=e.targetVisuals,o=z(e.getValueState,e),a=e.getDataDimension(t.getData()),s={},k(i,(function(t){var e=uI.prepareVisualTypes(r[t]);s[t]=e})),{progress:function(t,e){var n,i;function l(t){return Tf(e,i,t)}function u(t,n){Af(e,i,t,n)}for(null!=a&&(n=e.getDimension(a));null!=(i=t.next());){var h=e.getRawDataItem(i);if(!h||!1!==h.visualMap)for(var c=null!=a?e.get(n,i):i,p=o(c),d=r[p],f=s[p],g=0,y=f.length;g<y;g++){var v=f[g];d[v]&&d[v].applyVisual(c,l,u)}}}}))})),n}},{createOnAllSeries:!0,reset:function(t,e){var n=t.getData(),i=[];e.eachComponent("visualMap",(function(e){if(e.isTargetSeries(t)){var r=e.getVisualMeta(z(Xz,null,t,e))||{stops:[],outerColors:[]},o=e.getDataDimension(n),a=n.getDimensionInfo(o);null!=a&&(r.dimension=a.index,i.push(r))}})),t.getData().setVisual("visualMeta",i)}}];function Xz(t,e,n,i){for(var r=e.targetVisuals[i],o=uI.prepareVisualTypes(r),a={color:Cf(t.getData(),"color")},s=0,l=o.length;s<l;s++){var u=o[s],h=r["opacity"===u?"__alphaForOpacity":u];h&&h.applyVisual(n,c,p)}return a.color;function c(t){return a[t]}function p(t,e){a[t]=e}}var Uz=k;function Zz(t){var e=t&&t.visualMap;V(e)||(e=e?[e]:[]),Uz(e,(function(t){if(t){jz(t,"splitList")&&!jz(t,"pieces")&&(t.pieces=t.splitList,delete t.splitList);var e=t.pieces;e&&V(e)&&Uz(e,(function(t){Y(t)&&(jz(t,"start")&&!jz(t,"min")&&(t.min=t.start),jz(t,"end")&&!jz(t,"max")&&(t.max=t.end))}))}}))}function jz(t,e){return t&&t.hasOwnProperty&&t.hasOwnProperty(e)}var qz=!1;function Kz(t){qz||(qz=!0,t.registerSubTypeDefaulter("visualMap",(function(t){return t.categories||(t.pieces?t.pieces.length>0:t.splitNumber>0)&&!t.calculable?"piecewise":"continuous"})),t.registerAction(Hz,Wz),k(Yz,(function(e){t.registerVisual(t.PRIORITY.VISUAL.COMPONENT,e)})),t.registerPreprocessor(Zz))}function $z(t){t.registerComponentModel(Az),t.registerComponentView(Bz),Kz(t)}var Jz=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e._pieceList=[],e}return e(n,t),n.prototype.optionUpdated=function(e,n){t.prototype.optionUpdated.apply(this,arguments),this.resetExtent();var i=this._mode=this._determineMode();this._pieceList=[],Qz[this._mode].call(this,this._pieceList),this._resetSelected(e,n);var r=this.option.categories;this.resetVisual((function(t,e){"categories"===i?(t.mappingMethod="category",t.categories=b(r)):(t.dataExtent=this.getExtent(),t.mappingMethod="piecewise",t.pieceList=P(this._pieceList,(function(t){return t=b(t),"inRange"!==e&&(t.visual=null),t})))}))},n.prototype.completeVisualOption=function(){var e=this.option,n={},i=uI.listVisualTypes(),r=this.isCategory();function o(t,e,n){return t&&t[e]&&t[e].hasOwnProperty(n)}k(e.pieces,(function(t){k(i,(function(e){t.hasOwnProperty(e)&&(n[e]=1)}))})),k(n,(function(t,n){var i=!1;k(this.stateList,(function(t){i=i||o(e,t,n)||o(e.target,t,n)}),this),!i&&k(this.stateList,(function(t){(e[t]||(e[t]={}))[n]=mz(n,"inRange"===t?"active":"inactive",r)}))}),this),t.prototype.completeVisualOption.apply(this,arguments)},n.prototype._resetSelected=function(t,e){var n=this.option,i=this._pieceList,r=(e?n:t).selected||{};if(n.selected=r,k(i,(function(t,e){var n=this.getSelectedMapKey(t);r.hasOwnProperty(n)||(r[n]=!0)}),this),"single"===n.selectedMode){var o=!1;k(i,(function(t,e){var n=this.getSelectedMapKey(t);r[n]&&(o?r[n]=!1:o=!0)}),this)}},n.prototype.getSelectedMapKey=function(t){return"categories"===this._mode?t.value+"":t.index+""},n.prototype.getPieceList=function(){return this._pieceList},n.prototype._determineMode=function(){var t=this.option;return t.pieces&&t.pieces.length>0?"pieces":this.option.categories?"categories":"splitNumber"},n.prototype.setSelected=function(t){this.option.selected=b(t)},n.prototype.getValueState=function(t){var e=uI.findPieceIndex(t,this._pieceList);return null!=e&&this.option.selected[this.getSelectedMapKey(this._pieceList[e])]?"inRange":"outOfRange"},n.prototype.findTargetDataIndices=function(t){var e=[],n=this._pieceList;return this.eachTargetSeries((function(i){var r=[],o=i.getData();o.each(this.getDataDimension(o),(function(e,i){uI.findPieceIndex(e,n)===t&&r.push(i)}),this),e.push({seriesId:i.id,dataIndex:r})}),this),e},n.prototype.getRepresentValue=function(t){var e;if(this.isCategory())e=t.value;else if(null!=t.value)e=t.value;else{var n=t.interval||[];e=n[0]===-1/0&&n[1]===1/0?0:(n[0]+n[1])/2}return e},n.prototype.getVisualMeta=function(t){if(!this.isCategory()){var e=[],n=["",""],i=this,r=this._pieceList.slice();if(r.length){var o=r[0].interval[0];o!==-1/0&&r.unshift({interval:[-1/0,o]}),(o=r[r.length-1].interval[1])!==1/0&&r.push({interval:[o,1/0]})}else r.push({interval:[-1/0,1/0]});var a=-1/0;return k(r,(function(t){var e=t.interval;e&&(e[0]>a&&s([a,e[0]],"outOfRange"),s(e.slice()),a=e[1])}),this),{stops:e,outerColors:n}}function s(r,o){var a=i.getRepresentValue({interval:r});o||(o=i.getValueState(a));var s=t(a,o);r[0]===-1/0?n[0]=s:r[1]===1/0?n[1]=s:e.push({value:r[0],color:s},{value:r[1],color:s})}},n.type="visualMap.piecewise",n.defaultOption=sh(Tz.defaultOption,{selected:null,minOpen:!1,maxOpen:!1,align:"auto",itemWidth:20,itemHeight:14,itemSymbol:"roundRect",pieces:null,categories:null,splitNumber:5,selectedMode:"multiple",itemGap:10,hoverLink:!0}),n}(Tz),Qz={splitNumber:function(t){var e=this.option,n=Math.min(e.precision,20),i=this.getExtent(),r=e.splitNumber;r=Math.max(parseInt(r,10),1),e.splitNumber=r;for(var o=(i[1]-i[0])/r;+o.toFixed(n)!==o&&n<5;)n++;e.precision=n,o=+o.toFixed(n),e.minOpen&&t.push({interval:[-1/0,i[0]],close:[0,0]});for(var a=0,s=i[0];a<r;s+=o,a++){var l=a===r-1?i[1]:s+o;t.push({interval:[s,l],close:[1,1]})}e.maxOpen&&t.push({interval:[i[1],1/0],close:[0,0]}),tr(t),k(t,(function(t,e){t.index=e,t.text=this.formatValueText(t.interval)}),this)},categories:function(t){var e=this.option;k(e.categories,(function(e){t.push({text:this.formatValueText(e,!0),value:e})}),this),tB(e,t)},pieces:function(t){var e=this.option;k(e.pieces,(function(e,n){Y(e)||(e={value:e});var i={text:"",index:n};if(null!=e.label&&(i.text=e.label),e.hasOwnProperty("value")){var r=i.value=e.value;i.interval=[r,r],i.close=[1,1]}else{for(var o=i.interval=[],a=i.close=[0,0],s=[1,0,1],l=[-1/0,1/0],u=[],h=0;h<2;h++){for(var c=[["gte","gt","min"],["lte","lt","max"]][h],p=0;p<3&&null==o[h];p++)o[h]=e[c[p]],a[h]=s[p],u[h]=2===p;null==o[h]&&(o[h]=l[h])}u[0]&&o[1]===1/0&&(a[0]=0),u[1]&&o[0]===-1/0&&(a[1]=0),o[0]===o[1]&&a[0]&&a[1]&&(i.value=o[0])}i.visual=uI.retrieveVisuals(e),t.push(i)}),this),tB(e,t),tr(t),k(t,(function(t){var e=t.close,n=[["<","≤"][e[1]],[">","≥"][e[0]]];t.text=t.text||this.formatValueText(null!=t.value?t.value:t.interval,!1,n)}),this)}};function tB(t,e){var n=t.inverse;("vertical"===t.orient?!n:n)&&e.reverse()}var eB=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=n.type,e}return e(n,t),n.prototype.doRender=function(){var t=this.group;t.removeAll();var e=this.visualMapModel,n=e.get("textGap"),i=e.textStyleModel,r=i.getFont(),o=i.getTextColor(),a=this._getItemAlign(),s=e.itemSize,l=this._getViewData(),u=l.endsText,h=J(e.get("showLabel",!0),!u);u&&this._renderEndsText(t,u[0],s,h,a),k(l.viewPieceList,(function(i){var l=i.piece,u=new Li;u.onclick=z(this._onItemClick,this,l),this._enableHoverLink(u,i.indexInModelPieceList);var c=e.getRepresentValue(l);if(this._createItemSymbol(u,c,[0,0,s[0],s[1]]),h){var p=this.visualMapModel.getValueState(c);u.add(new ja({style:{x:"right"===a?-n:s[0]+n,y:s[1]/2,text:l.text,verticalAlign:"middle",align:a,font:r,fill:o,opacity:"outOfRange"===p?.5:1}}))}t.add(u)}),this),u&&this._renderEndsText(t,u[1],s,h,a),Qh(e.get("orient"),t,e.get("itemGap")),this.renderBackground(t),this.positionGroup(t)},n.prototype._enableHoverLink=function(t,e){var n=this;t.on("mouseover",(function(){return i("highlight")})).on("mouseout",(function(){return i("downplay")}));var i=function(t){var i=n.visualMapModel;i.option.hoverLink&&n.api.dispatchAction({type:t,batch:Oz(i.findTargetDataIndices(e),i)})}},n.prototype._getItemAlign=function(){var t=this.visualMapModel,e=t.option;if("vertical"===e.orient)return Pz(t,this.api,t.itemSize);var n=e.align;return n&&"auto"!==n||(n="left"),n},n.prototype._renderEndsText=function(t,e,n,i,r){if(e){var o=new Li,a=this.visualMapModel.textStyleModel;o.add(new ja({style:{x:i?"right"===r?n[0]:0:n[0]/2,y:n[1]/2,verticalAlign:"middle",align:i?r:"center",text:e,font:a.getFont(),fill:a.getTextColor()}})),t.add(o)}},n.prototype._getViewData=function(){var t=this.visualMapModel,e=P(t.getPieceList(),(function(t,e){return{piece:t,indexInModelPieceList:e}})),n=t.get("text"),i=t.get("orient"),r=t.get("inverse");return("horizontal"===i?r:!r)?e.reverse():n&&(n=n.slice().reverse()),{viewPieceList:e,endsText:n}},n.prototype._createItemSymbol=function(t,e,n){t.add(Sg(this.getControllerVisual(e,"symbol"),n[0],n[1],n[2],n[3],this.getControllerVisual(e,"color")))},n.prototype._onItemClick=function(t){var e=this.visualMapModel,n=e.option,i=b(n.selected),r=e.getSelectedMapKey(t);"single"===n.selectedMode?(i[r]=!0,k(i,(function(t,e){i[e]=e===r}))):i[r]=!i[r],this.api.dispatchAction({type:"selectDataRange",from:this.uid,visualMapId:this.visualMapModel.id,selected:i})},n.type="visualMap.piecewise",n}(Lz);function nB(t){t.registerComponentModel(Jz),t.registerComponentView(eB),Kz(t)}var iB={label:{enabled:!0},decal:{show:!1}},rB=_r(),oB={};function aB(t,e){var n=t.getModel("aria");if(n.get("enabled")){var i=b(iB);w(i.label,t.getLocaleModel().get("aria"),!1),w(n.option,i,!1),function(){if(n.getModel("decal").get("show")){var e=lt();t.eachSeries((function(t){if(t.useColorPaletteOnData){var n=e.get(t.type);n||(n={},e.set(t.type,n)),rB(t).scope=n}})),t.eachRawSeries((function(e){if(!t.isSeriesFiltered(e))if("function"!=typeof e.enableAriaDecal){var n=e.getData();if(e.useColorPaletteOnData){var i=e.getRawData(),r={},o=rB(e).scope;n.each((function(t){var e=n.getRawIndex(t);r[e]=t}));var a=i.count();i.each((function(t){var s=r[t],l=i.getName(t)||t+"",h=Ac(e.ecModel,l,o,a),c=n.getItemVisual(s,"decal");n.setItemVisual(s,"decal",u(c,h))}))}else{var s=Ac(e.ecModel,e.name,oB,t.getSeriesCount()),l=n.getVisual("decal");n.setVisual("decal",u(l,s))}}else e.enableAriaDecal();function u(t,e){var n=t?M(M({},e),t):e;return n.dirty=!0,n}}))}}(),function(){var i=t.getLocaleModel().get("aria"),o=n.getModel("label");if(o.option=I(o.option,i),!o.get("enabled"))return;var a=e.getZr().dom;if(o.get("description"))return void a.setAttribute("aria-label",o.get("description"));var s,l=t.getSeriesCount(),u=o.get(["data","maxCount"])||10,h=o.get(["series","maxCount"])||10,c=Math.min(l,h);if(l<1)return;var p=function(){var e=t.get("title");e&&e.length&&(e=e[0]);return e&&e.text}();if(p){var d=o.get(["general","withTitle"]);s=r(d,{title:p})}else s=o.get(["general","withoutTitle"]);var f=[],g=l>1?o.get(["series","multiple","prefix"]):o.get(["series","single","prefix"]);s+=r(g,{seriesCount:l}),t.eachSeries((function(e,n){if(n<c){var i=void 0,a=e.get("name")?"withName":"withoutName";i=r(i=l>1?o.get(["series","multiple",a]):o.get(["series","single",a]),{seriesId:e.seriesIndex,seriesName:e.get("name"),seriesType:(_=e.subType,t.getLocaleModel().get(["series","typeNames"])[_]||"自定义图")});var s=e.getData();if(s.count()>u)i+=r(o.get(["data","partialData"]),{displayCnt:u});else i+=o.get(["data","allData"]);for(var h=[],p=0;p<s.count();p++)if(p<u){var d=s.getName(p),g=Pp(s,p),y=o.get(["data",d?"withName":"withoutName"]);h.push(r(y,{name:d,value:g}))}var v=o.get(["data","separator","middle"]),m=o.get(["data","separator","end"]);i+=h.join(v)+m,f.push(i)}var _}));var y=o.getModel(["series","multiple","separator"]),v=y.get("middle"),m=y.get("end");s+=f.join(v)+m,a.setAttribute("aria-label",s)}()}function r(t,e){if("string"!=typeof t)return t;var n=t;return k(e,(function(t,e){n=n.replace(new RegExp("\\{\\s*"+e+"\\s*\\}","g"),t)})),n}}function sB(t){if(t&&t.aria){var e=t.aria;null!=e.show&&(e.enabled=e.show),e.label=e.label||{},k(["description","general","series","data"],(function(t){null!=e[t]&&(e.label[t]=e[t])}))}}var lB={value:"eq","<":"lt","<=":"lte",">":"gt",">=":"gte","=":"eq","!=":"ne","<>":"ne"},uB=function(){function t(t){if(null==(this._condVal=G(t)?new RegExp(t):K(t)?t:null)){var e="";0,sr(e)}}return t.prototype.evaluate=function(t){var e=typeof t;return"string"===e?this._condVal.test(t):"number"===e&&this._condVal.test(t+"")},t}(),hB=function(){function t(){}return t.prototype.evaluate=function(){return this.value},t}(),cB=function(){function t(){}return t.prototype.evaluate=function(){for(var t=this.children,e=0;e<t.length;e++)if(!t[e].evaluate())return!1;return!0},t}(),pB=function(){function t(){}return t.prototype.evaluate=function(){for(var t=this.children,e=0;e<t.length;e++)if(t[e].evaluate())return!0;return!1},t}(),dB=function(){function t(){}return t.prototype.evaluate=function(){return!this.child.evaluate()},t}(),fB=function(){function t(){}return t.prototype.evaluate=function(){for(var t=!!this.valueParser,e=(0,this.getValue)(this.valueGetterParam),n=t?this.valueParser(e):null,i=0;i<this.subCondList.length;i++)if(!this.subCondList[i].evaluate(t?n:e))return!1;return!0},t}();function gB(t,e){if(!0===t||!1===t){var n=new hB;return n.value=t,n}var i="";return vB(t)||sr(i),t.and?yB("and",t,e):t.or?yB("or",t,e):t.not?function(t,e){var n=t.not,i="";0;vB(n)||sr(i);var r=new dB;r.child=gB(n,e),r.child||sr(i);return r}(t,e):function(t,e){for(var n="",i=e.prepareGetValue(t),r=[],o=E(t),a=t.parser,s=a?Gp(a):null,l=0;l<o.length;l++){var u=o[l];if("parser"!==u&&!e.valueGetterAttrMap.get(u)){var h=ct(lB,u)?lB[u]:u,c=t[u],p=s?s(c):c,d=Up(h,p)||"reg"===h&&new uB(p);d||sr(n),r.push(d)}}r.length||sr(n);var f=new fB;return f.valueGetterParam=i,f.valueParser=s,f.getValue=e.getValue,f.subCondList=r,f}(t,e)}function yB(t,e,n){var i=e[t],r="";V(i)||sr(r),i.length||sr(r);var o="and"===t?new cB:new pB;return o.children=P(i,(function(t){return gB(t,n)})),o.children.length||sr(r),o}function vB(t){return Y(t)&&!L(t)}var mB=function(){function t(t,e){this._cond=gB(t,e)}return t.prototype.evaluate=function(){return this._cond.evaluate()},t}();var _B={type:"echarts:filter",transform:function(t){for(var e,n,i,r=t.upstream,o=(n=t.config,i={valueGetterAttrMap:lt({dimension:!0}),prepareGetValue:function(t){var e="",n=t.dimension;ct(t,"dimension")||sr(e);var i=r.getDimensionInfo(n);return i||sr(e),{dimIdx:i.index}},getValue:function(t){return r.retrieveValueFromItem(e,t.dimIdx)}},new mB(n,i)),a=[],s=0,l=r.count();s<l;s++)e=r.getRawDataItem(s),o.evaluate()&&a.push(e);return{data:a}}};var xB={type:"echarts:sort",transform:function(t){var e=t.upstream,n=t.config,i="",r=lr(n);r.length||sr(i);var o=[];k(r,(function(t){var n=t.dimension,r=t.order,a=t.parser,s=t.incomparable;if(null==n&&sr(i),"asc"!==r&&"desc"!==r&&sr(i),s&&"min"!==s&&"max"!==s){var l="";0,sr(l)}if("asc"!==r&&"desc"!==r){var u="";0,sr(u)}var h=e.getDimensionInfo(n);h||sr(i);var c=a?Gp(a):null;a&&!c&&sr(i),o.push({dimIdx:h.index,parser:c,comparator:new Yp(r,s)})}));var a=e.sourceFormat;"arrayRows"!==a&&"objectRows"!==a&&sr(i);for(var s=[],l=0,u=e.count();l<u;l++)s.push(e.getRawDataItem(l));return s.sort((function(t,n){for(var i=0;i<o.length;i++){var r=o[i],a=e.retrieveValueFromItem(t,r.dimIdx),s=e.retrieveValueFromItem(n,r.dimIdx);r.parser&&(a=r.parser(a),s=r.parser(s));var l=r.comparator.evaluate(a,s);if(0!==l)return l}return 0})),{data:s}}};var bB=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="dataset",e}return e(n,t),n.prototype.init=function(e,n,i){t.prototype.init.call(this,e,n,i),this._sourceManager=new ed(this),nd(this)},n.prototype.mergeOption=function(e,n){t.prototype.mergeOption.call(this,e,n),nd(this)},n.prototype.optionUpdated=function(){this._sourceManager.dirty()},n.prototype.getSourceManager=function(){return this._sourceManager},n.type="dataset",n.defaultOption={seriesLayoutBy:"column"},n}(sc),wB=function(t){function n(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="dataset",e}return e(n,t),n.type="dataset",n}(Dd);wv([function(t){t.registerPainter("canvas",Nx)}]),wv([function(t){t.registerPainter("svg",Dx)}]),wv([function(t){t.registerChartView(yb),t.registerSeriesModel(Ex),t.registerLayout(vb("line",!0)),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,xb("line"))},function(t){t.registerChartView(Lb),t.registerSeriesModel(wb),t.registerLayout(t.PRIORITY.VISUAL.LAYOUT,B(Dm,"bar")),t.registerLayout(t.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,Lm),t.registerVisual({seriesType:"bar",reset:function(t){t.getData().setVisual("legendSymbol","roundRect")}}),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,xb("bar")),t.registerAction({type:"changeAxisOrder",event:"changeAxisOrder",update:"update"},(function(t,e){var n=t.componentType||"series";e.eachComponent({mainType:n,query:t},(function(e){t.sortInfo&&e.axis.setCategorySortInfo(t.sortInfo)}))}))},function(t){t.registerChartView($b),t.registerSeriesModel(tw),hg("pie",t.registerAction),t.registerLayout(B(Wb,"pie")),t.registerProcessor(Yb("pie"))},function(t){wv(Qw),t.registerSeriesModel(ew),t.registerChartView(ow),t.registerLayout(vb("scatter"))},function(t){wv(dS),t.registerChartView(rS),t.registerSeriesModel(oS),t.registerLayout(tS),t.registerProcessor(Yb("radar")),t.registerPreprocessor(iS)},function(t){t.registerChartView(iM),t.registerSeriesModel(rM),t.registerLayout(aM),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,oM),hg("map",t.registerAction)},function(t){t.registerChartView(bM),t.registerSeriesModel(zM),t.registerLayout(VM),t.registerVisual(FM),function(t){t.registerAction({type:"treeExpandAndCollapse",event:"treeExpandAndCollapse",update:"update"},(function(t,e){e.eachComponent({mainType:"series",subType:"tree",query:t},(function(e){var n=t.dataIndex,i=e.getData().tree.getNodeByDataIndex(n);i.isExpand=!i.isExpand}))})),t.registerAction({type:"treeRoam",event:"treeRoam",update:"none"},(function(t,e){e.eachComponent({mainType:"series",subType:"tree",query:t},(function(e){var n=GM(e.coordinateSystem,t);e.setCenter&&e.setCenter(n.center),e.setZoom&&e.setZoom(n.zoom)}))}))}(t)},function(t){t.registerSeriesModel(qM),t.registerChartView(aI),t.registerVisual(wI),t.registerLayout(NI),function(t){for(var e=0;e<ZM.length;e++)t.registerAction({type:ZM[e],update:"updateView"},UM);t.registerAction({type:"treemapRootToNode",update:"updateView"},(function(t,e){e.eachComponent({mainType:"series",subType:"treemap",query:t},(function(e,n){var i=HM(t,["treemapZoomToNode","treemapRootToNode"],e);if(i){var r=e.getViewRoot();r&&(t.direction=YM(r,i.node)?"rollUp":"drillDown"),e.resetViewRoot(i.node)}}))}))}(t)},function(t){t.registerChartView(OT),t.registerSeriesModel(FT),t.registerProcessor(GI),t.registerVisual(HI),t.registerVisual(YI),t.registerLayout(QI),t.registerLayout(t.PRIORITY.VISUAL.POST_CHART_LAYOUT,aT),t.registerLayout(lT),t.registerCoordinateSystem("graphView",{dimensions:vM.dimensions,create:uT}),t.registerAction({type:"focusNodeAdjacency",event:"focusNodeAdjacency",update:"series:focusNodeAdjacency"},(function(){})),t.registerAction({type:"unfocusNodeAdjacency",event:"unfocusNodeAdjacency",update:"series:unfocusNodeAdjacency"},(function(){})),t.registerAction(GT,(function(t,e){e.eachComponent({mainType:"series",query:t},(function(e){var n=GM(e.coordinateSystem,t);e.setCenter&&e.setCenter(n.center),e.setZoom&&e.setZoom(n.zoom)}))}))},function(t){t.registerChartView(UT),t.registerSeriesModel(ZT)},function(t){t.registerChartView(KT),t.registerSeriesModel($T),t.registerLayout(JT),t.registerProcessor(Yb("funnel"))},function(t){wv(wA),t.registerChartView(QT),t.registerSeriesModel(rC),t.registerVisual(t.PRIORITY.VISUAL.BRUSH,sC)},function(t){t.registerChartView(IA),t.registerSeriesModel(TA),t.registerLayout(CA),t.registerVisual(VA),t.registerAction({type:"dragNode",event:"dragnode",update:"update"},(function(t,e){e.eachComponent({mainType:"series",subType:"sankey",query:t},(function(e){e.setNodePosition(t.dataIndex,[t.localX,t.localY])}))}))},function(t){t.registerSeriesModel(GA),t.registerChartView(HA),t.registerVisual(jA),t.registerLayout(KA),t.registerTransform($A)},function(t){t.registerChartView(QA),t.registerSeriesModel(hD),t.registerPreprocessor(cD),t.registerVisual(yD),t.registerLayout(mD)},function(t){t.registerChartView(wD),t.registerSeriesModel(SD),t.registerLayout(vb("effectScatter"))},function(t){t.registerChartView(kD),t.registerSeriesModel(ND),t.registerLayout(LD),t.registerVisual(zD)},function(t){t.registerChartView(FD),t.registerSeriesModel(GD)},function(t){t.registerChartView(XD),t.registerSeriesModel(uL),t.registerLayout(B(Dm,"pictorialBar"))},function(t){t.registerChartView(hL),t.registerSeriesModel(cL),t.registerLayout(pL),t.registerProcessor(Yb("themeRiver"))},function(t){t.registerChartView(gL),t.registerSeriesModel(yL),t.registerLayout(B(_L,"sunburst")),t.registerProcessor(B(Yb,"sunburst")),t.registerVisual(bL),function(t){t.registerAction({type:"sunburstRootToNode",update:"updateView"},(function(t,e){e.eachComponent({mainType:"series",subType:"sunburst",query:t},(function(e,n){var i=HM(t,["sunburstRootToNode"],e);if(i){var r=e.getViewRoot();r&&(t.direction=YM(r,i.node)?"rollUp":"drillDown"),e.resetViewRoot(i.node)}}))})),t.registerAction({type:"sunburstHighlight",update:"none"},(function(t,e,n){t=M({},t),e.eachComponent({mainType:"series",subType:"sunburst",query:t},(function(e){var n=HM(t,["sunburstHighlight"],e);n&&(t.dataIndex=n.node.dataIndex)})),n.dispatchAction(M(t,{type:"highlight"}))})),t.registerAction({type:"sunburstUnhighlight",update:"updateView"},(function(t,e,n){t=M({},t),n.dispatchAction(M(t,{type:"downplay"}))}))}(t)},function(t){t.registerChartView(gk),t.registerSeriesModel(fk)}]),wv((function(t){wv(Qw),wv(NP)})),wv((function(t){wv(NP),Gw.registerAxisPointerClass("PolarAxisPointer",EP),t.registerCoordinateSystem("polar",qP),t.registerComponentModel(BP),t.registerComponentView(cO),dw(t,"angle",FP,uO),dw(t,"radius",GP,hO),t.registerComponentView(tO),t.registerComponentView(rO),t.registerLayout(B(lO,"bar"))})),wv((function(t){function e(e,n){n.update="geo:updateSelectStatus",t.registerAction(n,(function(t,n){var i={};return n.eachComponent({mainType:"geo",query:t},(function(n){n[e](t.name),k(n.coordinateSystem.regions,(function(t){i[t.name]=n.isSelected(t.name)||!1}))})),{selected:i,name:t.name}}))}t.registerCoordinateSystem("geo",gO),t.registerComponentModel(yO),t.registerComponentView(vO),e("toggleSelected",{type:"geoToggleSelect",event:"geoselectchanged"}),e("select",{type:"geoSelect",event:"geoselected"}),e("unSelect",{type:"geoUnSelect",event:"geounselected"}),t.registerAction({type:"geoRoam",event:"geoRoam",update:"updateTransform"},(function(t,e){var n=t.componentType||"series";e.eachComponent({mainType:n,query:t},(function(e){var i=e.coordinateSystem;if("geo"===i.type){var r=GM(i,t,e.get("scaleLimit"));e.setCenter&&e.setCenter(r.center),e.setZoom&&e.setZoom(r.zoom),"series"===n&&k(e.seriesGroup,(function(t){t.setCenter(r.center),t.setZoom(r.zoom)}))}}))}))})),wv((function(t){wv(NP),Gw.registerAxisPointerClass("SingleAxisPointer",LO),t.registerComponentView(RO),t.registerComponentView(bO),t.registerComponentModel(SO),dw(t,"single",SO,SO.defaultOption),t.registerCoordinateSystem("single",CO)})),wv(wA),wv((function(t){t.registerComponentModel(NO),t.registerComponentView(VO),t.registerCoordinateSystem("calendar",FO)})),wv((function(t){t.registerComponentModel(XO),t.registerComponentView(UO),t.registerPreprocessor(YO)})),wv((function(t){t.registerComponentModel(mR),t.registerComponentView(xR),yR("saveAsImage",bR),yR("magicType",SR),yR("dataView",DR),yR("dataZoom",JR),yR("restore",RR),wv(dR)})),wv((function(t){wv(NP),t.registerComponentModel(eN),t.registerComponentView(gN),t.registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},(function(){})),t.registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},(function(){}))})),wv(NP),wv((function(t){t.registerComponentView(EN),t.registerComponentModel(zN),t.registerPreprocessor(xN),t.registerVisual(t.PRIORITY.VISUAL.BRUSH,kN),t.registerAction({type:"brush",event:"brush",update:"updateVisual"},(function(t,e){e.eachComponent({mainType:"brush",query:t},(function(e){e.setAreas(t.areas)}))})),t.registerAction({type:"brushSelect",event:"brushSelected",update:"none"},(function(){})),t.registerAction({type:"brushEnd",event:"brushEnd",update:"none"},(function(){})),yR("brush",FN)})),wv((function(t){t.registerComponentModel(GN),t.registerComponentView(HN)})),wv((function(t){t.registerComponentModel(YN),t.registerComponentView(qN),t.registerSubTypeDefaulter("timeline",(function(){return"slider"})),function(t){t.registerAction({type:"timelineChange",event:"timelineChanged",update:"prepareAndUpdate"},(function(t,e){var n=e.getComponent("timeline");return n&&null!=t.currentIndex&&(n.setCurrentIndex(t.currentIndex),!n.get("loop",!0)&&n.isIndexMax()&&n.setPlayState(!1)),e.resetOption("timeline",{replaceMerge:n.get("replaceMerge",!0)}),I({currentIndex:n.option.currentIndex},t)})),t.registerAction({type:"timelinePlayChange",event:"timelinePlayChanged",update:"update"},(function(t,e){var n=e.getComponent("timeline");n&&null!=t.playState&&n.setPlayState(t.playState)}))}(t),t.registerPreprocessor(JN)})),wv((function(t){t.registerComponentModel(rE),t.registerComponentView(gE),t.registerPreprocessor((function(t){t.markPoint=t.markPoint||{}}))})),wv((function(t){t.registerComponentModel(yE),t.registerComponentView(SE),t.registerPreprocessor((function(t){t.markLine=t.markLine||{}}))})),wv((function(t){t.registerComponentModel(ME),t.registerComponentView(PE),t.registerPreprocessor((function(t){t.markArea=t.markArea||{}}))})),wv((function(t){wv(XE),wv(JE)})),wv((function(t){wv(hz),wv(vz)})),wv(hz),wv(vz),wv((function(t){wv($z),wv(nB)})),wv($z),wv(nB),wv((function(t){t.registerPreprocessor(sB),t.registerVisual(t.PRIORITY.VISUAL.ARIA,aB)})),wv((function(t){t.registerTransform(_B),t.registerTransform(xB)})),wv((function(t){t.registerComponentModel(bB),t.registerComponentView(wB)}));export{E_ as Axis,Od as ChartView,sc as ComponentModel,Dd as ComponentView,Jv as List,rh as Model,iy as PRIORITY,bd as SeriesModel,rn as color,Ky as connect,_v as dataTool,ny as dependencies,$y as disConnect,Jy as disconnect,Qy as dispose,o as env,G_ as extendChartView,B_ as extendComponentModel,V_ as extendComponentView,F_ as extendSeriesModel,M_ as format,uv as getCoordinateSystemDimensions,tv as getInstanceByDom,ev as getInstanceById,vv as getMap,S_ as graphic,g_ as helper,qy as init,Fg as innerDrawElementOnCanvas,xe as matrix,b_ as number,x_ as parseGeoJSON,x_ as parseGeoJson,sv as registerAction,lv as registerCoordinateSystem,hv as registerLayout,fv as registerLoading,ch as registerLocale,yv as registerMap,ov as registerPostInit,av as registerPostUpdate,iv as registerPreprocessor,rv as registerProcessor,nv as registerTheme,mv as registerTransform,cv as registerVisual,gv as setCanvasCreator,Gd as throttle,w_ as time,wv as use,I_ as util,Nt as vector,ey as version,dt as zrUtil,zi as zrender};
diff --git a/dist/echarts.js b/dist/echarts.js
index 76e00de..5759252 100644
--- a/dist/echarts.js
+++ b/dist/echarts.js
@@ -690,35 +690,6 @@
         noop: noop
     });
 
-    /*! *****************************************************************************

-    Copyright (c) Microsoft Corporation.

-

-    Permission to use, copy, modify, and/or distribute this software for any

-    purpose with or without fee is hereby granted.

-

-    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH

-    REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY

-    AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,

-    INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM

-    LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR

-    OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR

-    PERFORMANCE OF THIS SOFTWARE.

-    ***************************************************************************** */

-    /* global Reflect, Promise */

-

-    var extendStatics$1 = function(d, b) {

-        extendStatics$1 = Object.setPrototypeOf ||

-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||

-            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };

-        return extendStatics$1(d, b);

-    };

-

-    function __extends$1(d, b) {

-        extendStatics$1(d, b);

-        function __() { this.constructor = d; }

-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());

-    }
-
     function create(x, y) {
         if (x == null) {
             x = 0;
@@ -1447,7 +1418,7 @@
         stop(this.event);
     }
     var EmptyProxy = (function (_super) {
-        __extends$1(EmptyProxy, _super);
+        __extends(EmptyProxy, _super);
         function EmptyProxy() {
             var _this = _super !== null && _super.apply(this, arguments) || this;
             _this.handler = null;
@@ -1469,7 +1440,7 @@
         'mouseup', 'mousedown', 'mousemove', 'contextmenu'
     ];
     var Handler = (function (_super) {
-        __extends$1(Handler, _super);
+        __extends(Handler, _super);
         function Handler(storage, painter, proxy, painterRoot) {
             var _this = _super.call(this) || this;
             _this._hovered = new HoveredResult(0, 0);
@@ -5732,7 +5703,7 @@
     var requestAnimationFrame$1 = requestAnimationFrame;
 
     var Animation = (function (_super) {
-        __extends$1(Animation, _super);
+        __extends(Animation, _super);
         function Animation(opts) {
             var _this = _super.call(this) || this;
             _this._running = false;
@@ -6125,7 +6096,7 @@
         return DOMHandlerScope;
     }());
     var HandlerDomProxy = (function (_super) {
-        __extends$1(HandlerDomProxy, _super);
+        __extends(HandlerDomProxy, _super);
         function HandlerDomProxy(dom, painterRoot) {
             var _this = _super.call(this) || this;
             _this.__pointerCapturing = false;
@@ -6162,7 +6133,7 @@
     }(Eventful));
 
     var Group = (function (_super) {
-        __extends$1(Group, _super);
+        __extends(Group, _super);
         function Group(opts) {
             var _this = _super.call(this) || this;
             _this.isGroup = true;
@@ -6582,7 +6553,7 @@
     function registerPainter(name, Ctor) {
         painterCtors[name] = Ctor;
     }
-    var version = '5.0.1';
+    var version = '5.0.3';
 
     var zrender = /*#__PURE__*/Object.freeze({
         __proto__: null,
@@ -8278,7 +8249,7 @@
     DEFAULT_COMMON_STYLE[STYLE_MAGIC_KEY] = true;
     var PRIMARY_STATES_KEYS$1 = ['z', 'z2', 'invisible'];
     var Displayable = (function (_super) {
-        __extends$1(Displayable, _super);
+        __extends(Displayable, _super);
         function Displayable(props) {
             return _super.call(this, props) || this;
         }
@@ -10261,7 +10232,7 @@
         'culling', 'z', 'z2', 'zlevel', 'parent'
     ];
     var Path = (function (_super) {
-        __extends$1(Path, _super);
+        __extends(Path, _super);
         function Path(opts) {
             return _super.call(this, opts) || this;
         }
@@ -10583,7 +10554,7 @@
         };
         Path.extend = function (defaultProps) {
             var Sub = (function (_super) {
-                __extends$1(Sub, _super);
+                __extends(Sub, _super);
                 function Sub(opts) {
                     var _this = _super.call(this, opts) || this;
                     defaultProps.init && defaultProps.init.call(_this, opts);
@@ -10627,7 +10598,7 @@
         miterLimit: 2
     }, DEFAULT_PATH_STYLE);
     var TSpan = (function (_super) {
-        __extends$1(TSpan, _super);
+        __extends(TSpan, _super);
         function TSpan() {
             return _super !== null && _super.apply(this, arguments) || this;
         }
@@ -10696,7 +10667,7 @@
             && source.width && source.height);
     }
     var ZRImage = (function (_super) {
-        __extends$1(ZRImage, _super);
+        __extends(ZRImage, _super);
         function ZRImage() {
             return _super !== null && _super.apply(this, arguments) || this;
         }
@@ -10887,7 +10858,7 @@
     }());
     var subPixelOptimizeOutputShape = {};
     var Rect = (function (_super) {
-        __extends$1(Rect, _super);
+        __extends(Rect, _super);
         function Rect(opts) {
             return _super.call(this, opts) || this;
         }
@@ -10955,7 +10926,7 @@
         }, DEFAULT_COMMON_ANIMATION_PROPS.style)
     };
     var ZRText = (function (_super) {
-        __extends$1(ZRText, _super);
+        __extends(ZRText, _super);
         function ZRText(opts) {
             var _this = _super.call(this) || this;
             _this.type = 'text';
@@ -12294,7 +12265,7 @@
         return path;
     }
     var SVGPath = (function (_super) {
-        __extends$1(SVGPath, _super);
+        __extends(SVGPath, _super);
         function SVGPath() {
             return _super !== null && _super.apply(this, arguments) || this;
         }
@@ -12332,7 +12303,7 @@
     function extendFromString(str, defaultOpts) {
         var innerOpts = createPathOptions(str, defaultOpts);
         var Sub = (function (_super) {
-            __extends$1(Sub, _super);
+            __extends(Sub, _super);
             function Sub(opts) {
                 var _this = _super.call(this, opts) || this;
                 _this.applyTransform = innerOpts.applyTransform;
@@ -12379,7 +12350,7 @@
         return CircleShape;
     }());
     var Circle = (function (_super) {
-        __extends$1(Circle, _super);
+        __extends(Circle, _super);
         function Circle(opts) {
             return _super.call(this, opts) || this;
         }
@@ -12406,7 +12377,7 @@
         return EllipseShape;
     }());
     var Ellipse = (function (_super) {
-        __extends$1(Ellipse, _super);
+        __extends(Ellipse, _super);
         function Ellipse(opts) {
             return _super.call(this, opts) || this;
         }
@@ -12624,7 +12595,7 @@
         return SectorShape;
     }());
     var Sector = (function (_super) {
-        __extends$1(Sector, _super);
+        __extends(Sector, _super);
         function Sector(opts) {
             return _super.call(this, opts) || this;
         }
@@ -12652,7 +12623,7 @@
         return RingShape;
     }());
     var Ring = (function (_super) {
-        __extends$1(Ring, _super);
+        __extends(Ring, _super);
         function Ring(opts) {
             return _super.call(this, opts) || this;
         }
@@ -12816,7 +12787,7 @@
         return PolygonShape;
     }());
     var Polygon = (function (_super) {
-        __extends$1(Polygon, _super);
+        __extends(Polygon, _super);
         function Polygon(opts) {
             return _super.call(this, opts) || this;
         }
@@ -12840,7 +12811,7 @@
         return PolylineShape;
     }());
     var Polyline = (function (_super) {
-        __extends$1(Polyline, _super);
+        __extends(Polyline, _super);
         function Polyline(opts) {
             return _super.call(this, opts) || this;
         }
@@ -12872,7 +12843,7 @@
         return LineShape;
     }());
     var Line = (function (_super) {
-        __extends$1(Line, _super);
+        __extends(Line, _super);
         function Line(opts) {
             return _super.call(this, opts) || this;
         }
@@ -12955,7 +12926,7 @@
         }
     }
     var BezierCurve = (function (_super) {
-        __extends$1(BezierCurve, _super);
+        __extends(BezierCurve, _super);
         function BezierCurve(opts) {
             return _super.call(this, opts) || this;
         }
@@ -13030,7 +13001,7 @@
         return ArcShape;
     }());
     var Arc = (function (_super) {
-        __extends$1(Arc, _super);
+        __extends(Arc, _super);
         function Arc(opts) {
             return _super.call(this, opts) || this;
         }
@@ -13060,7 +13031,7 @@
     Arc.prototype.type = 'arc';
 
     var CompoundPath = (function (_super) {
-        __extends$1(CompoundPath, _super);
+        __extends(CompoundPath, _super);
         function CompoundPath() {
             var _this = _super !== null && _super.apply(this, arguments) || this;
             _this.type = 'compound';
@@ -13120,7 +13091,7 @@
     }());
 
     var LinearGradient = (function (_super) {
-        __extends$1(LinearGradient, _super);
+        __extends(LinearGradient, _super);
         function LinearGradient(x, y, x2, y2, colorStops, globalCoord) {
             var _this = _super.call(this, colorStops) || this;
             _this.x = x == null ? 0 : x;
@@ -13135,7 +13106,7 @@
     }(Gradient));
 
     var RadialGradient = (function (_super) {
-        __extends$1(RadialGradient, _super);
+        __extends(RadialGradient, _super);
         function RadialGradient(x, y, r, colorStops, globalCoord) {
             var _this = _super.call(this, colorStops) || this;
             _this.x = x == null ? 0.5 : x;
@@ -13269,7 +13240,7 @@
 
     var m = [];
     var IncrementalDisplayable = (function (_super) {
-        __extends$1(IncrementalDisplayable, _super);
+        __extends(IncrementalDisplayable, _super);
         function IncrementalDisplayable() {
             var _this = _super !== null && _super.apply(this, arguments) || this;
             _this.notClear = true;
@@ -24130,7 +24101,7 @@
     var hasWindow = typeof window !== 'undefined';
     var version$1 = '5.0.1';
     var dependencies = {
-      zrender: '5.0.2'
+      zrender: '5.0.3'
     };
     var TEST_FRAME_REMAIN_TIME = 1;
     var PRIORITY_PROCESSOR_SERIES_FILTER = 800;
@@ -31877,7 +31848,7 @@
             || value.type === 'radial');
     }
     var GradientManager = (function (_super) {
-        __extends$1(GradientManager, _super);
+        __extends(GradientManager, _super);
         function GradientManager(zrId, svgRoot) {
             return _super.call(this, zrId, svgRoot, ['linearGradient', 'radialGradient'], '__gradient_in_use__') || this;
         }
@@ -32008,7 +31979,7 @@
     }
     var patternDomMap = new WeakMap();
     var PatternManager = (function (_super) {
-        __extends$1(PatternManager, _super);
+        __extends(PatternManager, _super);
         function PatternManager(zrId, svgRoot) {
             return _super.call(this, zrId, svgRoot, ['pattern'], '__pattern_in_use__') || this;
         }
@@ -32152,7 +32123,7 @@
         return clipPaths && clipPaths.length > 0;
     }
     var ClippathManager = (function (_super) {
-        __extends$1(ClippathManager, _super);
+        __extends(ClippathManager, _super);
         function ClippathManager(zrId, svgRoot) {
             var _this = _super.call(this, zrId, svgRoot, 'clipPath', '__clippath_in_use__') || this;
             _this._refGroups = {};
@@ -32254,7 +32225,7 @@
     }(Definable));
 
     var ShadowManager = (function (_super) {
-        __extends$1(ShadowManager, _super);
+        __extends(ShadowManager, _super);
         function ShadowManager(zrId, svgRoot) {
             var _this = _super.call(this, zrId, svgRoot, ['filter'], '__filter_in_use__', '_shadowDom') || this;
             _this._shadowDomMap = {};
@@ -32704,7 +32675,7 @@
         return newDom;
     }
     var Layer = (function (_super) {
-        __extends$1(Layer, _super);
+        __extends(Layer, _super);
         function Layer(id, painter, dpr) {
             var _this = _super.call(this) || this;
             _this.motionBlur = false;
diff --git a/dist/echarts.js.map b/dist/echarts.js.map
index 2e4423f..e34943e 100644
--- a/dist/echarts.js.map
+++ b/dist/echarts.js.map
@@ -1 +1 @@
-{"version":3,"file":"echarts.js","sources":["../node_modules/tslib/tslib.es6.js","../node_modules/zrender/lib/core/env.js","../node_modules/zrender/lib/core/util.js","../node_modules/zrender/node_modules/tslib/tslib.es6.js","../node_modules/zrender/lib/core/vector.js","../node_modules/zrender/lib/mixin/Draggable.js","../node_modules/zrender/lib/core/Eventful.js","../node_modules/zrender/lib/core/fourPointsTransform.js","../node_modules/zrender/lib/core/dom.js","../node_modules/zrender/lib/core/event.js","../node_modules/zrender/lib/core/GestureMgr.js","../node_modules/zrender/lib/Handler.js","../node_modules/zrender/lib/core/matrix.js","../node_modules/zrender/lib/core/Transformable.js","../node_modules/zrender/lib/animation/easing.js","../node_modules/zrender/lib/animation/Clip.js","../node_modules/zrender/lib/core/LRU.js","../node_modules/zrender/lib/tool/color.js","../node_modules/zrender/lib/animation/Animator.js","../node_modules/zrender/lib/core/Point.js","../node_modules/zrender/lib/core/BoundingRect.js","../node_modules/zrender/lib/contain/text.js","../node_modules/zrender/lib/config.js","../node_modules/zrender/lib/Element.js","../node_modules/zrender/lib/core/timsort.js","../node_modules/zrender/lib/Storage.js","../node_modules/zrender/lib/animation/requestAnimationFrame.js","../node_modules/zrender/lib/animation/Animation.js","../node_modules/zrender/lib/dom/HandlerProxy.js","../node_modules/zrender/lib/graphic/Group.js","../node_modules/zrender/lib/zrender.js","../lib/util/number.js","../lib/util/log.js","../lib/util/model.js","../lib/util/clazz.js","../lib/model/mixin/makeStyleMapper.js","../lib/model/mixin/areaStyle.js","../node_modules/zrender/lib/graphic/helper/image.js","../node_modules/zrender/lib/graphic/helper/parseText.js","../node_modules/zrender/lib/graphic/Displayable.js","../node_modules/zrender/lib/core/curve.js","../node_modules/zrender/lib/core/bbox.js","../node_modules/zrender/lib/core/PathProxy.js","../node_modules/zrender/lib/contain/line.js","../node_modules/zrender/lib/contain/cubic.js","../node_modules/zrender/lib/contain/quadratic.js","../node_modules/zrender/lib/contain/util.js","../node_modules/zrender/lib/contain/arc.js","../node_modules/zrender/lib/contain/windingLine.js","../node_modules/zrender/lib/contain/path.js","../node_modules/zrender/lib/graphic/Path.js","../node_modules/zrender/lib/graphic/TSpan.js","../node_modules/zrender/lib/graphic/Image.js","../node_modules/zrender/lib/graphic/helper/roundRect.js","../node_modules/zrender/lib/graphic/helper/subPixelOptimize.js","../node_modules/zrender/lib/graphic/shape/Rect.js","../node_modules/zrender/lib/graphic/Text.js","../lib/util/innerStore.js","../lib/util/states.js","../node_modules/zrender/lib/tool/transformPath.js","../node_modules/zrender/lib/tool/path.js","../node_modules/zrender/lib/graphic/shape/Circle.js","../node_modules/zrender/lib/graphic/shape/Ellipse.js","../node_modules/zrender/lib/graphic/helper/roundSector.js","../node_modules/zrender/lib/graphic/shape/Sector.js","../node_modules/zrender/lib/graphic/shape/Ring.js","../node_modules/zrender/lib/graphic/helper/smoothSpline.js","../node_modules/zrender/lib/graphic/helper/smoothBezier.js","../node_modules/zrender/lib/graphic/helper/poly.js","../node_modules/zrender/lib/graphic/shape/Polygon.js","../node_modules/zrender/lib/graphic/shape/Polyline.js","../node_modules/zrender/lib/graphic/shape/Line.js","../node_modules/zrender/lib/graphic/shape/BezierCurve.js","../node_modules/zrender/lib/graphic/shape/Arc.js","../node_modules/zrender/lib/graphic/CompoundPath.js","../node_modules/zrender/lib/graphic/Gradient.js","../node_modules/zrender/lib/graphic/LinearGradient.js","../node_modules/zrender/lib/graphic/RadialGradient.js","../node_modules/zrender/lib/core/OrientedBoundingRect.js","../node_modules/zrender/lib/graphic/IncrementalDisplayable.js","../lib/util/graphic.js","../lib/label/labelStyle.js","../lib/model/mixin/textStyle.js","../lib/model/mixin/lineStyle.js","../lib/model/mixin/itemStyle.js","../lib/model/Model.js","../lib/util/component.js","../lib/i18n/langEN.js","../lib/i18n/langZH.js","../lib/core/locale.js","../lib/util/time.js","../lib/legacy/getTextRect.js","../lib/util/format.js","../lib/util/layout.js","../lib/model/Component.js","../lib/model/globalDefault.js","../lib/util/types.js","../lib/data/helper/sourceHelper.js","../lib/model/internalComponentCreator.js","../lib/model/mixin/palette.js","../lib/model/Global.js","../lib/core/ExtensionAPI.js","../lib/core/CoordinateSystem.js","../lib/model/OptionManager.js","../lib/preprocessor/helper/compatStyle.js","../lib/preprocessor/backwardCompat.js","../lib/processor/dataStack.js","../lib/data/Source.js","../lib/data/helper/dataProvider.js","../lib/model/mixin/dataFormat.js","../lib/core/task.js","../lib/data/helper/dataValueHelper.js","../lib/data/helper/transform.js","../lib/data/helper/sourceManager.js","../lib/component/tooltip/tooltipMarkup.js","../lib/component/tooltip/seriesFormatTooltip.js","../lib/model/Series.js","../lib/view/Component.js","../lib/chart/helper/createRenderPlanner.js","../lib/view/Chart.js","../lib/util/throttle.js","../lib/visual/style.js","../lib/loading/default.js","../lib/core/Scheduler.js","../lib/theme/light.js","../lib/theme/dark.js","../node_modules/zrender/lib/tool/parseXML.js","../lib/coord/geo/mapDataStorage.js","../lib/util/ECEventProcessor.js","../lib/visual/symbol.js","../lib/visual/helper.js","../lib/label/labelGuideHelper.js","../lib/label/labelLayoutHelper.js","../lib/label/LabelManager.js","../lib/legacy/dataSelectAction.js","../lib/util/event.js","../node_modules/zrender/lib/core/WeakMap.js","../lib/util/symbol.js","../node_modules/zrender/lib/canvas/helper.js","../node_modules/zrender/lib/graphic/helper/dashStyle.js","../node_modules/zrender/lib/canvas/graphic.js","../lib/util/decal.js","../lib/visual/decal.js","../lib/core/echarts.js","../lib/extension.js","../lib/data/DataDiffer.js","../lib/data/helper/dimensionHelper.js","../lib/data/DataDimensionInfo.js","../lib/data/List.js","../lib/data/helper/completeDimensions.js","../lib/data/helper/createDimensions.js","../lib/model/referHelper.js","../lib/data/helper/dataStackHelper.js","../lib/chart/helper/createListFromArray.js","../lib/scale/Scale.js","../lib/data/OrdinalMeta.js","../lib/scale/helper.js","../lib/scale/Ordinal.js","../lib/scale/Interval.js","../lib/layout/barGrid.js","../lib/scale/Time.js","../lib/scale/Log.js","../lib/coord/scaleRawExtentInfo.js","../lib/coord/axisHelper.js","../lib/coord/axisModelCommonMixin.js","../lib/export/api/helper.js","../node_modules/zrender/lib/contain/polygon.js","../lib/coord/geo/Region.js","../lib/coord/geo/parseGeoJson.js","../lib/coord/axisTickLabelBuilder.js","../lib/coord/Axis.js","../lib/export/api.js","../node_modules/zrender/lib/svg/core.js","../node_modules/zrender/lib/core/arrayDiff.js","../node_modules/zrender/lib/svg/graphic.js","../node_modules/zrender/lib/svg/helper/Definable.js","../node_modules/zrender/lib/svg/helper/GradientManager.js","../node_modules/zrender/lib/svg/helper/PatternManager.js","../node_modules/zrender/lib/svg/helper/ClippathManager.js","../node_modules/zrender/lib/svg/helper/ShadowManager.js","../node_modules/zrender/lib/svg/Painter.js","../lib/renderer/installSVGRenderer.js","../node_modules/zrender/lib/canvas/Layer.js","../node_modules/zrender/lib/canvas/Painter.js","../lib/renderer/installCanvasRenderer.js","../lib/chart/line/LineSeries.js","../lib/chart/helper/labelHelper.js","../lib/chart/helper/Symbol.js","../lib/chart/helper/SymbolDraw.js","../lib/chart/line/helper.js","../lib/util/vendor.js","../lib/chart/line/lineAnimationDiff.js","../lib/chart/line/poly.js","../lib/chart/helper/createClipPathFromCoordSys.js","../lib/coord/CoordinateSystem.js","../lib/chart/line/LineView.js","../lib/layout/points.js","../lib/processor/dataSample.js","../lib/chart/line/install.js","../lib/chart/bar/BaseBarSeries.js","../lib/chart/bar/BarSeries.js","../lib/util/shape/sausage.js","../lib/chart/bar/BarView.js","../lib/chart/bar/install.js","../lib/chart/pie/pieLayout.js","../lib/processor/dataFilter.js","../lib/chart/pie/labelLayout.js","../lib/chart/helper/pieHelper.js","../lib/chart/pie/PieView.js","../lib/chart/helper/createListSimply.js","../lib/visual/LegendVisualProvider.js","../lib/chart/pie/PieSeries.js","../lib/chart/pie/install.js","../lib/chart/scatter/ScatterSeries.js","../lib/chart/helper/LargeSymbolDraw.js","../lib/chart/scatter/ScatterView.js","../lib/coord/cartesian/GridModel.js","../lib/coord/cartesian/AxisModel.js","../lib/coord/axisDefault.js","../lib/coord/axisCommonTypes.js","../lib/coord/axisModelCreator.js","../lib/coord/cartesian/Cartesian.js","../lib/coord/cartesian/Cartesian2D.js","../lib/coord/cartesian/Axis2D.js","../lib/coord/cartesian/cartesianAxisHelper.js","../lib/coord/cartesian/Grid.js","../lib/component/axis/AxisBuilder.js","../lib/component/axisPointer/modelHelper.js","../lib/component/axis/AxisView.js","../lib/component/axis/axisSplitHelper.js","../lib/component/axis/CartesianAxisView.js","../lib/component/grid/installSimple.js","../lib/chart/scatter/install.js","../lib/chart/radar/radarLayout.js","../lib/chart/radar/backwardCompat.js","../lib/chart/radar/RadarView.js","../lib/chart/radar/RadarSeries.js","../lib/coord/radar/RadarModel.js","../lib/component/radar/RadarView.js","../lib/coord/radar/IndicatorAxis.js","../lib/coord/radar/Radar.js","../lib/component/radar/install.js","../lib/chart/radar/install.js","../lib/component/helper/interactionMutex.js","../lib/component/helper/RoamController.js","../lib/component/helper/roamHelper.js","../lib/component/helper/cursorHelper.js","../lib/coord/geo/fix/nanhai.js","../lib/coord/geo/fix/textCoord.js","../lib/coord/geo/fix/geoCoord.js","../lib/coord/geo/fix/diaoyuIsland.js","../lib/coord/geo/geoJSONLoader.js","../node_modules/zrender/lib/tool/parseSVG.js","../lib/coord/geo/geoSVGLoader.js","../lib/coord/geo/geoSourceManager.js","../lib/component/helper/MapDraw.js","../lib/chart/map/MapView.js","../lib/chart/map/MapSeries.js","../lib/chart/map/mapDataStatistic.js","../lib/chart/map/mapSymbolLayout.js","../lib/chart/map/install.js","../lib/chart/tree/layoutHelper.js","../lib/coord/View.js","../lib/chart/tree/TreeView.js","../lib/data/helper/linkList.js","../lib/data/Tree.js","../lib/chart/tree/TreeSeries.js","../lib/chart/tree/traversalHelper.js","../lib/chart/tree/treeLayout.js","../lib/chart/tree/treeVisual.js","../lib/action/roamHelper.js","../lib/chart/tree/treeAction.js","../lib/chart/tree/install.js","../lib/chart/helper/treeHelper.js","../lib/chart/treemap/treemapAction.js","../lib/chart/helper/enableAriaDecalForTree.js","../lib/chart/treemap/TreemapSeries.js","../lib/chart/treemap/Breadcrumb.js","../lib/util/animation.js","../lib/chart/treemap/TreemapView.js","../lib/visual/VisualMapping.js","../lib/chart/treemap/treemapVisual.js","../lib/chart/treemap/treemapLayout.js","../lib/chart/treemap/install.js","../lib/chart/graph/categoryFilter.js","../lib/chart/graph/categoryVisual.js","../lib/chart/graph/edgeVisual.js","../lib/chart/helper/multipleGraphEdgeHelper.js","../lib/chart/graph/simpleLayoutHelper.js","../lib/chart/graph/simpleLayout.js","../lib/chart/graph/graphHelper.js","../lib/chart/graph/circularLayoutHelper.js","../lib/chart/graph/circularLayout.js","../lib/chart/graph/forceHelper.js","../lib/chart/graph/forceLayout.js","../lib/chart/graph/createView.js","../lib/chart/helper/LinePath.js","../lib/chart/helper/Line.js","../lib/chart/helper/LineDraw.js","../lib/chart/graph/adjustEdge.js","../lib/chart/graph/GraphView.js","../lib/data/Graph.js","../lib/chart/helper/createGraphFromNodeEdge.js","../lib/chart/graph/GraphSeries.js","../lib/chart/graph/install.js","../lib/chart/gauge/PointerPath.js","../lib/chart/gauge/GaugeView.js","../lib/chart/gauge/GaugeSeries.js","../lib/chart/gauge/install.js","../lib/chart/funnel/FunnelView.js","../lib/chart/funnel/FunnelSeries.js","../lib/chart/funnel/funnelLayout.js","../lib/chart/funnel/install.js","../lib/chart/parallel/ParallelView.js","../lib/chart/parallel/ParallelSeries.js","../lib/chart/parallel/parallelVisual.js","../lib/coord/parallel/parallelPreprocessor.js","../lib/component/parallel/ParallelView.js","../lib/coord/parallel/ParallelModel.js","../lib/coord/parallel/ParallelAxis.js","../lib/component/helper/sliderMove.js","../lib/coord/parallel/Parallel.js","../lib/coord/parallel/parallelCreator.js","../lib/coord/parallel/AxisModel.js","../lib/component/helper/BrushController.js","../lib/component/helper/brushHelper.js","../lib/component/axis/ParallelAxisView.js","../lib/component/axis/parallelAxisAction.js","../lib/component/parallel/install.js","../lib/chart/parallel/install.js","../lib/chart/sankey/SankeyView.js","../lib/chart/sankey/SankeySeries.js","../lib/chart/sankey/sankeyLayout.js","../lib/chart/sankey/sankeyVisual.js","../lib/chart/sankey/install.js","../lib/chart/helper/whiskerBoxCommon.js","../lib/chart/boxplot/BoxplotSeries.js","../lib/chart/boxplot/BoxplotView.js","../lib/chart/boxplot/boxplotVisual.js","../lib/chart/boxplot/boxplotLayout.js","../lib/chart/boxplot/prepareBoxplotData.js","../lib/chart/boxplot/boxplotTransform.js","../lib/chart/boxplot/install.js","../lib/chart/candlestick/CandlestickView.js","../lib/chart/candlestick/CandlestickSeries.js","../lib/chart/candlestick/preprocessor.js","../lib/chart/candlestick/candlestickVisual.js","../lib/chart/candlestick/candlestickLayout.js","../lib/chart/candlestick/install.js","../lib/chart/helper/EffectSymbol.js","../lib/chart/effectScatter/EffectScatterView.js","../lib/chart/effectScatter/EffectScatterSeries.js","../lib/chart/effectScatter/install.js","../lib/chart/helper/EffectLine.js","../lib/chart/helper/Polyline.js","../lib/chart/helper/EffectPolyline.js","../lib/chart/helper/LargeLineDraw.js","../lib/chart/lines/linesLayout.js","../lib/chart/lines/LinesView.js","../lib/chart/lines/LinesSeries.js","../lib/chart/lines/linesVisual.js","../lib/chart/lines/install.js","../lib/chart/heatmap/HeatmapLayer.js","../lib/chart/heatmap/HeatmapView.js","../lib/chart/heatmap/HeatmapSeries.js","../lib/chart/heatmap/install.js","../lib/chart/bar/PictorialBarView.js","../lib/chart/bar/PictorialBarSeries.js","../lib/chart/bar/installPictorialBar.js","../lib/chart/themeRiver/ThemeRiverView.js","../lib/chart/themeRiver/ThemeRiverSeries.js","../lib/chart/themeRiver/themeRiverLayout.js","../lib/chart/themeRiver/install.js","../lib/chart/sunburst/SunburstPiece.js","../lib/chart/sunburst/sunburstAction.js","../lib/chart/sunburst/SunburstView.js","../lib/chart/sunburst/SunburstSeries.js","../lib/chart/sunburst/sunburstLayout.js","../lib/chart/sunburst/sunburstVisual.js","../lib/chart/sunburst/install.js","../lib/coord/cartesian/prepareCustom.js","../lib/coord/geo/prepareCustom.js","../lib/coord/single/prepareCustom.js","../lib/coord/polar/prepareCustom.js","../lib/coord/calendar/prepareCustom.js","../lib/util/styleCompat.js","../node_modules/zrender/lib/tool/morphPath.js","../lib/chart/custom/install.js","../lib/component/axisPointer/BaseAxisPointer.js","../lib/component/axisPointer/viewHelper.js","../lib/component/axisPointer/CartesianAxisPointer.js","../lib/component/axisPointer/AxisPointerModel.js","../lib/component/axisPointer/globalListener.js","../lib/component/axisPointer/AxisPointerView.js","../lib/component/axisPointer/findPointFromSeries.js","../lib/component/axisPointer/axisTrigger.js","../lib/component/axisPointer/install.js","../lib/component/grid/install.js","../lib/component/axisPointer/PolarAxisPointer.js","../lib/coord/polar/PolarModel.js","../lib/coord/polar/AxisModel.js","../lib/coord/polar/RadiusAxis.js","../lib/coord/polar/AngleAxis.js","../lib/coord/polar/Polar.js","../lib/coord/polar/polarCreator.js","../lib/component/axis/AngleAxisView.js","../lib/component/axis/RadiusAxisView.js","../lib/layout/barPolar.js","../lib/component/polar/install.js","../lib/coord/geo/Geo.js","../lib/coord/geo/geoCreator.js","../lib/coord/geo/GeoModel.js","../lib/component/geo/GeoView.js","../lib/component/geo/install.js","../lib/coord/single/singleAxisHelper.js","../lib/component/axis/SingleAxisView.js","../lib/coord/single/AxisModel.js","../lib/coord/single/SingleAxis.js","../lib/coord/single/Single.js","../lib/coord/single/singleCreator.js","../lib/component/axisPointer/SingleAxisPointer.js","../lib/component/singleAxis/install.js","../lib/coord/calendar/CalendarModel.js","../lib/component/calendar/CalendarView.js","../lib/coord/calendar/Calendar.js","../lib/component/calendar/install.js","../lib/component/graphic/install.js","../lib/component/dataZoom/helper.js","../lib/component/dataZoom/DataZoomModel.js","../lib/component/dataZoom/SelectZoomModel.js","../lib/component/dataZoom/DataZoomView.js","../lib/component/dataZoom/SelectZoomView.js","../lib/component/dataZoom/AxisProxy.js","../lib/component/dataZoom/dataZoomProcessor.js","../lib/component/dataZoom/dataZoomAction.js","../lib/component/dataZoom/installCommon.js","../lib/component/dataZoom/installDataZoomSelect.js","../lib/component/toolbox/featureManager.js","../lib/component/toolbox/ToolboxModel.js","../lib/component/helper/listComponent.js","../lib/component/toolbox/ToolboxView.js","../lib/component/toolbox/feature/SaveAsImage.js","../lib/component/toolbox/feature/MagicType.js","../lib/component/toolbox/feature/DataView.js","../lib/component/dataZoom/history.js","../lib/component/toolbox/feature/Restore.js","../lib/component/helper/BrushTargetManager.js","../lib/component/toolbox/feature/DataZoom.js","../lib/component/toolbox/install.js","../lib/component/tooltip/TooltipModel.js","../lib/component/tooltip/helper.js","../lib/component/tooltip/TooltipHTMLContent.js","../lib/component/tooltip/TooltipRichContent.js","../lib/component/tooltip/TooltipView.js","../lib/component/tooltip/install.js","../lib/component/brush/preprocessor.js","../lib/visual/visualSolution.js","../lib/component/brush/selector.js","../lib/component/brush/visualEncoding.js","../lib/component/brush/BrushView.js","../lib/component/brush/BrushModel.js","../lib/component/toolbox/feature/Brush.js","../lib/component/brush/install.js","../lib/component/title/install.js","../lib/component/timeline/TimelineModel.js","../lib/component/timeline/SliderTimelineModel.js","../lib/component/timeline/TimelineView.js","../lib/component/timeline/TimelineAxis.js","../lib/component/timeline/SliderTimelineView.js","../lib/component/timeline/timelineAction.js","../lib/component/timeline/preprocessor.js","../lib/component/timeline/install.js","../lib/component/marker/MarkerModel.js","../lib/component/marker/MarkPointModel.js","../lib/component/marker/markerHelper.js","../lib/component/marker/MarkerView.js","../lib/component/marker/MarkPointView.js","../lib/component/marker/installMarkPoint.js","../lib/component/marker/MarkLineModel.js","../lib/component/marker/MarkLineView.js","../lib/component/marker/installMarkLine.js","../lib/component/marker/MarkAreaModel.js","../lib/component/marker/MarkAreaView.js","../lib/component/marker/installMarkArea.js","../lib/component/legend/LegendModel.js","../lib/component/legend/LegendView.js","../lib/component/legend/legendFilter.js","../lib/component/legend/legendAction.js","../lib/component/legend/installLegendPlain.js","../lib/component/legend/ScrollableLegendModel.js","../lib/component/legend/ScrollableLegendView.js","../lib/component/legend/scrollableLegendAction.js","../lib/component/legend/installLegendScroll.js","../lib/component/legend/install.js","../lib/component/dataZoom/InsideZoomModel.js","../lib/component/dataZoom/roams.js","../lib/component/dataZoom/InsideZoomView.js","../lib/component/dataZoom/installDataZoomInside.js","../lib/component/dataZoom/SliderZoomModel.js","../lib/component/dataZoom/SliderZoomView.js","../lib/component/dataZoom/installDataZoomSlider.js","../lib/component/dataZoom/install.js","../lib/visual/visualDefault.js","../lib/component/visualMap/VisualMapModel.js","../lib/component/visualMap/ContinuousModel.js","../lib/component/visualMap/VisualMapView.js","../lib/component/visualMap/helper.js","../lib/component/visualMap/ContinuousView.js","../lib/component/visualMap/visualMapAction.js","../lib/component/visualMap/visualEncoding.js","../lib/component/visualMap/preprocessor.js","../lib/component/visualMap/installCommon.js","../lib/component/visualMap/installVisualMapContinuous.js","../lib/component/visualMap/PiecewiseModel.js","../lib/component/visualMap/PiecewiseView.js","../lib/component/visualMap/installVisualMapPiecewise.js","../lib/component/visualMap/install.js","../lib/visual/aria.js","../lib/component/aria/preprocessor.js","../lib/component/aria/install.js","../lib/util/conditionalExpression.js","../lib/component/transform/filterTransform.js","../lib/component/transform/sortTransform.js","../lib/component/transform/install.js","../lib/component/dataset/install.js","../index.js"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar 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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport 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\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\nexport 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};\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to get private field on non-instance\");\r\n    }\r\n    return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to set private field on non-instance\");\r\n    }\r\n    privateMap.set(receiver, value);\r\n    return value;\r\n}\r\n","var Browser = (function () {\n    function Browser() {\n        this.firefox = false;\n        this.ie = false;\n        this.edge = false;\n        this.newEdge = false;\n        this.weChat = false;\n    }\n    return Browser;\n}());\nvar Env = (function () {\n    function Env() {\n        this.browser = new Browser();\n        this.node = false;\n        this.wxa = false;\n        this.worker = false;\n        this.canvasSupported = false;\n        this.svgSupported = false;\n        this.touchEventsSupported = false;\n        this.pointerEventsSupported = false;\n        this.domSupported = false;\n    }\n    return Env;\n}());\nvar env = new Env();\nif (typeof wx === 'object' && typeof wx.getSystemInfoSync === 'function') {\n    env.wxa = true;\n    env.canvasSupported = true;\n    env.touchEventsSupported = true;\n}\nelse if (typeof document === 'undefined' && typeof self !== 'undefined') {\n    env.worker = true;\n    env.canvasSupported = true;\n}\nelse if (typeof navigator === 'undefined') {\n    env.node = true;\n    env.canvasSupported = true;\n    env.svgSupported = true;\n}\nelse {\n    detect(navigator.userAgent, env);\n}\nfunction detect(ua, env) {\n    var browser = env.browser;\n    var firefox = ua.match(/Firefox\\/([\\d.]+)/);\n    var ie = ua.match(/MSIE\\s([\\d.]+)/)\n        || ua.match(/Trident\\/.+?rv:(([\\d.]+))/);\n    var edge = ua.match(/Edge?\\/([\\d.]+)/);\n    var weChat = (/micromessenger/i).test(ua);\n    if (firefox) {\n        browser.firefox = true;\n        browser.version = firefox[1];\n    }\n    if (ie) {\n        browser.ie = true;\n        browser.version = ie[1];\n    }\n    if (edge) {\n        browser.edge = true;\n        browser.version = edge[1];\n        browser.newEdge = +edge[1].split('.')[0] > 18;\n    }\n    if (weChat) {\n        browser.weChat = true;\n    }\n    env.canvasSupported = !!document.createElement('canvas').getContext;\n    env.svgSupported = typeof SVGRect !== 'undefined';\n    env.touchEventsSupported = 'ontouchstart' in window && !browser.ie && !browser.edge;\n    env.pointerEventsSupported = 'onpointerdown' in window\n        && (browser.edge || (browser.ie && +browser.version >= 11));\n    env.domSupported = typeof document !== 'undefined';\n}\nexport default env;\n","var BUILTIN_OBJECT = {\n    '[object Function]': true,\n    '[object RegExp]': true,\n    '[object Date]': true,\n    '[object Error]': true,\n    '[object CanvasGradient]': true,\n    '[object CanvasPattern]': true,\n    '[object Image]': true,\n    '[object Canvas]': true\n};\nvar TYPED_ARRAY = {\n    '[object Int8Array]': true,\n    '[object Uint8Array]': true,\n    '[object Uint8ClampedArray]': true,\n    '[object Int16Array]': true,\n    '[object Uint16Array]': true,\n    '[object Int32Array]': true,\n    '[object Uint32Array]': true,\n    '[object Float32Array]': true,\n    '[object Float64Array]': true\n};\nvar objToString = Object.prototype.toString;\nvar arrayProto = Array.prototype;\nvar nativeForEach = arrayProto.forEach;\nvar nativeFilter = arrayProto.filter;\nvar nativeSlice = arrayProto.slice;\nvar nativeMap = arrayProto.map;\nvar ctorFunction = function () { }.constructor;\nvar protoFunction = ctorFunction ? ctorFunction.prototype : null;\nvar methods = {};\nexport function $override(name, fn) {\n    methods[name] = fn;\n}\nvar idStart = 0x0907;\nexport function guid() {\n    return idStart++;\n}\nexport function logError() {\n    var args = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n    }\n    if (typeof console !== 'undefined') {\n        console.error.apply(console, args);\n    }\n}\nexport function clone(source) {\n    if (source == null || typeof source !== 'object') {\n        return source;\n    }\n    var result = source;\n    var typeStr = objToString.call(source);\n    if (typeStr === '[object Array]') {\n        if (!isPrimitive(source)) {\n            result = [];\n            for (var i = 0, len = source.length; i < len; i++) {\n                result[i] = clone(source[i]);\n            }\n        }\n    }\n    else if (TYPED_ARRAY[typeStr]) {\n        if (!isPrimitive(source)) {\n            var Ctor = source.constructor;\n            if (Ctor.from) {\n                result = Ctor.from(source);\n            }\n            else {\n                result = new Ctor(source.length);\n                for (var i = 0, len = source.length; i < len; i++) {\n                    result[i] = clone(source[i]);\n                }\n            }\n        }\n    }\n    else if (!BUILTIN_OBJECT[typeStr] && !isPrimitive(source) && !isDom(source)) {\n        result = {};\n        for (var key in source) {\n            if (source.hasOwnProperty(key)) {\n                result[key] = clone(source[key]);\n            }\n        }\n    }\n    return result;\n}\nexport function merge(target, source, overwrite) {\n    if (!isObject(source) || !isObject(target)) {\n        return overwrite ? clone(source) : target;\n    }\n    for (var key in source) {\n        if (source.hasOwnProperty(key)) {\n            var targetProp = target[key];\n            var sourceProp = source[key];\n            if (isObject(sourceProp)\n                && isObject(targetProp)\n                && !isArray(sourceProp)\n                && !isArray(targetProp)\n                && !isDom(sourceProp)\n                && !isDom(targetProp)\n                && !isBuiltInObject(sourceProp)\n                && !isBuiltInObject(targetProp)\n                && !isPrimitive(sourceProp)\n                && !isPrimitive(targetProp)) {\n                merge(targetProp, sourceProp, overwrite);\n            }\n            else if (overwrite || !(key in target)) {\n                target[key] = clone(source[key]);\n            }\n        }\n    }\n    return target;\n}\nexport function mergeAll(targetAndSources, overwrite) {\n    var result = targetAndSources[0];\n    for (var i = 1, len = targetAndSources.length; i < len; i++) {\n        result = merge(result, targetAndSources[i], overwrite);\n    }\n    return result;\n}\nexport function extend(target, source) {\n    if (Object.assign) {\n        Object.assign(target, source);\n    }\n    else {\n        for (var key in source) {\n            if (source.hasOwnProperty(key)) {\n                target[key] = source[key];\n            }\n        }\n    }\n    return target;\n}\nexport function defaults(target, source, overlay) {\n    var keysArr = keys(source);\n    for (var i = 0; i < keysArr.length; i++) {\n        var key = keysArr[i];\n        if ((overlay ? source[key] != null : target[key] == null)) {\n            target[key] = source[key];\n        }\n    }\n    return target;\n}\nexport var createCanvas = function () {\n    return methods.createCanvas();\n};\nmethods.createCanvas = function () {\n    return document.createElement('canvas');\n};\nexport function indexOf(array, value) {\n    if (array) {\n        if (array.indexOf) {\n            return array.indexOf(value);\n        }\n        for (var i = 0, len = array.length; i < len; i++) {\n            if (array[i] === value) {\n                return i;\n            }\n        }\n    }\n    return -1;\n}\nexport function inherits(clazz, baseClazz) {\n    var clazzPrototype = clazz.prototype;\n    function F() { }\n    F.prototype = baseClazz.prototype;\n    clazz.prototype = new F();\n    for (var prop in clazzPrototype) {\n        if (clazzPrototype.hasOwnProperty(prop)) {\n            clazz.prototype[prop] = clazzPrototype[prop];\n        }\n    }\n    clazz.prototype.constructor = clazz;\n    clazz.superClass = baseClazz;\n}\nexport function mixin(target, source, override) {\n    target = 'prototype' in target ? target.prototype : target;\n    source = 'prototype' in source ? source.prototype : source;\n    if (Object.getOwnPropertyNames) {\n        var keyList = Object.getOwnPropertyNames(source);\n        for (var i = 0; i < keyList.length; i++) {\n            var key = keyList[i];\n            if (key !== 'constructor') {\n                if ((override ? source[key] != null : target[key] == null)) {\n                    target[key] = source[key];\n                }\n            }\n        }\n    }\n    else {\n        defaults(target, source, override);\n    }\n}\nexport function isArrayLike(data) {\n    if (!data) {\n        return false;\n    }\n    if (typeof data === 'string') {\n        return false;\n    }\n    return typeof data.length === 'number';\n}\nexport function each(arr, cb, context) {\n    if (!(arr && cb)) {\n        return;\n    }\n    if (arr.forEach && arr.forEach === nativeForEach) {\n        arr.forEach(cb, context);\n    }\n    else if (arr.length === +arr.length) {\n        for (var i = 0, len = arr.length; i < len; i++) {\n            cb.call(context, arr[i], i, arr);\n        }\n    }\n    else {\n        for (var key in arr) {\n            if (arr.hasOwnProperty(key)) {\n                cb.call(context, arr[key], key, arr);\n            }\n        }\n    }\n}\nexport function map(arr, cb, context) {\n    if (!arr) {\n        return [];\n    }\n    if (!cb) {\n        return slice(arr);\n    }\n    if (arr.map && arr.map === nativeMap) {\n        return arr.map(cb, context);\n    }\n    else {\n        var result = [];\n        for (var i = 0, len = arr.length; i < len; i++) {\n            result.push(cb.call(context, arr[i], i, arr));\n        }\n        return result;\n    }\n}\nexport function reduce(arr, cb, memo, context) {\n    if (!(arr && cb)) {\n        return;\n    }\n    for (var i = 0, len = arr.length; i < len; i++) {\n        memo = cb.call(context, memo, arr[i], i, arr);\n    }\n    return memo;\n}\nexport function filter(arr, cb, context) {\n    if (!arr) {\n        return [];\n    }\n    if (!cb) {\n        return slice(arr);\n    }\n    if (arr.filter && arr.filter === nativeFilter) {\n        return arr.filter(cb, context);\n    }\n    else {\n        var result = [];\n        for (var i = 0, len = arr.length; i < len; i++) {\n            if (cb.call(context, arr[i], i, arr)) {\n                result.push(arr[i]);\n            }\n        }\n        return result;\n    }\n}\nexport function find(arr, cb, context) {\n    if (!(arr && cb)) {\n        return;\n    }\n    for (var i = 0, len = arr.length; i < len; i++) {\n        if (cb.call(context, arr[i], i, arr)) {\n            return arr[i];\n        }\n    }\n}\nexport function keys(obj) {\n    if (!obj) {\n        return [];\n    }\n    if (Object.keys) {\n        return Object.keys(obj);\n    }\n    var keyList = [];\n    for (var key in obj) {\n        if (obj.hasOwnProperty(key)) {\n            keyList.push(key);\n        }\n    }\n    return keyList;\n}\nfunction bindPolyfill(func, context) {\n    var args = [];\n    for (var _i = 2; _i < arguments.length; _i++) {\n        args[_i - 2] = arguments[_i];\n    }\n    return function () {\n        return func.apply(context, args.concat(nativeSlice.call(arguments)));\n    };\n}\nexport var bind = (protoFunction && isFunction(protoFunction.bind))\n    ? protoFunction.call.bind(protoFunction.bind)\n    : bindPolyfill;\nfunction curry(func) {\n    var args = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        args[_i - 1] = arguments[_i];\n    }\n    return function () {\n        return func.apply(this, args.concat(nativeSlice.call(arguments)));\n    };\n}\nexport { curry };\nexport function isArray(value) {\n    if (Array.isArray) {\n        return Array.isArray(value);\n    }\n    return objToString.call(value) === '[object Array]';\n}\nexport function isFunction(value) {\n    return typeof value === 'function';\n}\nexport function isString(value) {\n    return typeof value === 'string';\n}\nexport function isStringSafe(value) {\n    return objToString.call(value) === '[object String]';\n}\nexport function isNumber(value) {\n    return typeof value === 'number';\n}\nexport function isObject(value) {\n    var type = typeof value;\n    return type === 'function' || (!!value && type === 'object');\n}\nexport function isBuiltInObject(value) {\n    return !!BUILTIN_OBJECT[objToString.call(value)];\n}\nexport function isTypedArray(value) {\n    return !!TYPED_ARRAY[objToString.call(value)];\n}\nexport function isDom(value) {\n    return typeof value === 'object'\n        && typeof value.nodeType === 'number'\n        && typeof value.ownerDocument === 'object';\n}\nexport function isGradientObject(value) {\n    return value.colorStops != null;\n}\nexport function isPatternObject(value) {\n    return value.image != null;\n}\nexport function isRegExp(value) {\n    return objToString.call(value) === '[object RegExp]';\n}\nexport function eqNaN(value) {\n    return value !== value;\n}\nexport function retrieve() {\n    var args = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n    }\n    for (var i = 0, len = args.length; i < len; i++) {\n        if (args[i] != null) {\n            return args[i];\n        }\n    }\n}\nexport function retrieve2(value0, value1) {\n    return value0 != null\n        ? value0\n        : value1;\n}\nexport function retrieve3(value0, value1, value2) {\n    return value0 != null\n        ? value0\n        : value1 != null\n            ? value1\n            : value2;\n}\nexport function slice(arr) {\n    var args = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        args[_i - 1] = arguments[_i];\n    }\n    return nativeSlice.apply(arr, args);\n}\nexport function normalizeCssArray(val) {\n    if (typeof (val) === 'number') {\n        return [val, val, val, val];\n    }\n    var len = val.length;\n    if (len === 2) {\n        return [val[0], val[1], val[0], val[1]];\n    }\n    else if (len === 3) {\n        return [val[0], val[1], val[2], val[1]];\n    }\n    return val;\n}\nexport function assert(condition, message) {\n    if (!condition) {\n        throw new Error(message);\n    }\n}\nexport function trim(str) {\n    if (str == null) {\n        return null;\n    }\n    else if (typeof str.trim === 'function') {\n        return str.trim();\n    }\n    else {\n        return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n    }\n}\nvar primitiveKey = '__ec_primitive__';\nexport function setAsPrimitive(obj) {\n    obj[primitiveKey] = true;\n}\nexport function isPrimitive(obj) {\n    return obj[primitiveKey];\n}\nvar HashMap = (function () {\n    function HashMap(obj) {\n        this.data = {};\n        var isArr = isArray(obj);\n        this.data = {};\n        var thisMap = this;\n        (obj instanceof HashMap)\n            ? obj.each(visit)\n            : (obj && each(obj, visit));\n        function visit(value, key) {\n            isArr ? thisMap.set(value, key) : thisMap.set(key, value);\n        }\n    }\n    HashMap.prototype.get = function (key) {\n        return this.data.hasOwnProperty(key) ? this.data[key] : null;\n    };\n    HashMap.prototype.set = function (key, value) {\n        return (this.data[key] = value);\n    };\n    HashMap.prototype.each = function (cb, context) {\n        for (var key in this.data) {\n            if (this.data.hasOwnProperty(key)) {\n                cb.call(context, this.data[key], key);\n            }\n        }\n    };\n    HashMap.prototype.keys = function () {\n        return keys(this.data);\n    };\n    HashMap.prototype.removeKey = function (key) {\n        delete this.data[key];\n    };\n    return HashMap;\n}());\nexport { HashMap };\nexport function createHashMap(obj) {\n    return new HashMap(obj);\n}\nexport function concatArray(a, b) {\n    var newArray = new a.constructor(a.length + b.length);\n    for (var i = 0; i < a.length; i++) {\n        newArray[i] = a[i];\n    }\n    var offset = a.length;\n    for (var i = 0; i < b.length; i++) {\n        newArray[i + offset] = b[i];\n    }\n    return newArray;\n}\nexport function createObject(proto, properties) {\n    var obj;\n    if (Object.create) {\n        obj = Object.create(proto);\n    }\n    else {\n        var StyleCtor = function () { };\n        StyleCtor.prototype = proto;\n        obj = new StyleCtor();\n    }\n    if (properties) {\n        extend(obj, properties);\n    }\n    return obj;\n}\nexport function hasOwn(own, prop) {\n    return own.hasOwnProperty(prop);\n}\nexport function noop() { }\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar 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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport 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\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\nexport 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};\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to get private field on non-instance\");\r\n    }\r\n    return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to set private field on non-instance\");\r\n    }\r\n    privateMap.set(receiver, value);\r\n    return value;\r\n}\r\n","export function create(x, y) {\n    if (x == null) {\n        x = 0;\n    }\n    if (y == null) {\n        y = 0;\n    }\n    return [x, y];\n}\nexport function copy(out, v) {\n    out[0] = v[0];\n    out[1] = v[1];\n    return out;\n}\nexport function clone(v) {\n    return [v[0], v[1]];\n}\nexport function set(out, a, b) {\n    out[0] = a;\n    out[1] = b;\n    return out;\n}\nexport function add(out, v1, v2) {\n    out[0] = v1[0] + v2[0];\n    out[1] = v1[1] + v2[1];\n    return out;\n}\nexport function scaleAndAdd(out, v1, v2, a) {\n    out[0] = v1[0] + v2[0] * a;\n    out[1] = v1[1] + v2[1] * a;\n    return out;\n}\nexport function sub(out, v1, v2) {\n    out[0] = v1[0] - v2[0];\n    out[1] = v1[1] - v2[1];\n    return out;\n}\nexport function len(v) {\n    return Math.sqrt(lenSquare(v));\n}\nexport var length = len;\nexport function lenSquare(v) {\n    return v[0] * v[0] + v[1] * v[1];\n}\nexport var lengthSquare = lenSquare;\nexport function mul(out, v1, v2) {\n    out[0] = v1[0] * v2[0];\n    out[1] = v1[1] * v2[1];\n    return out;\n}\nexport function div(out, v1, v2) {\n    out[0] = v1[0] / v2[0];\n    out[1] = v1[1] / v2[1];\n    return out;\n}\nexport function dot(v1, v2) {\n    return v1[0] * v2[0] + v1[1] * v2[1];\n}\nexport function scale(out, v, s) {\n    out[0] = v[0] * s;\n    out[1] = v[1] * s;\n    return out;\n}\nexport function normalize(out, v) {\n    var d = len(v);\n    if (d === 0) {\n        out[0] = 0;\n        out[1] = 0;\n    }\n    else {\n        out[0] = v[0] / d;\n        out[1] = v[1] / d;\n    }\n    return out;\n}\nexport function distance(v1, v2) {\n    return Math.sqrt((v1[0] - v2[0]) * (v1[0] - v2[0])\n        + (v1[1] - v2[1]) * (v1[1] - v2[1]));\n}\nexport var dist = distance;\nexport function distanceSquare(v1, v2) {\n    return (v1[0] - v2[0]) * (v1[0] - v2[0])\n        + (v1[1] - v2[1]) * (v1[1] - v2[1]);\n}\nexport var distSquare = distanceSquare;\nexport function negate(out, v) {\n    out[0] = -v[0];\n    out[1] = -v[1];\n    return out;\n}\nexport function lerp(out, v1, v2, t) {\n    out[0] = v1[0] + t * (v2[0] - v1[0]);\n    out[1] = v1[1] + t * (v2[1] - v1[1]);\n    return out;\n}\nexport function applyTransform(out, v, m) {\n    var x = v[0];\n    var y = v[1];\n    out[0] = m[0] * x + m[2] * y + m[4];\n    out[1] = m[1] * x + m[3] * y + m[5];\n    return out;\n}\nexport function min(out, v1, v2) {\n    out[0] = Math.min(v1[0], v2[0]);\n    out[1] = Math.min(v1[1], v2[1]);\n    return out;\n}\nexport function max(out, v1, v2) {\n    out[0] = Math.max(v1[0], v2[0]);\n    out[1] = Math.max(v1[1], v2[1]);\n    return out;\n}\n","var Param = (function () {\n    function Param(target, e) {\n        this.target = target;\n        this.topTarget = e && e.topTarget;\n    }\n    return Param;\n}());\nvar Draggable = (function () {\n    function Draggable(handler) {\n        this.handler = handler;\n        handler.on('mousedown', this._dragStart, this);\n        handler.on('mousemove', this._drag, this);\n        handler.on('mouseup', this._dragEnd, this);\n    }\n    Draggable.prototype._dragStart = function (e) {\n        var draggingTarget = e.target;\n        while (draggingTarget && !draggingTarget.draggable) {\n            draggingTarget = draggingTarget.parent;\n        }\n        if (draggingTarget) {\n            this._draggingTarget = draggingTarget;\n            draggingTarget.dragging = true;\n            this._x = e.offsetX;\n            this._y = e.offsetY;\n            this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragstart', e.event);\n        }\n    };\n    Draggable.prototype._drag = function (e) {\n        var draggingTarget = this._draggingTarget;\n        if (draggingTarget) {\n            var x = e.offsetX;\n            var y = e.offsetY;\n            var dx = x - this._x;\n            var dy = y - this._y;\n            this._x = x;\n            this._y = y;\n            draggingTarget.drift(dx, dy, e);\n            this.handler.dispatchToElement(new Param(draggingTarget, e), 'drag', e.event);\n            var dropTarget = this.handler.findHover(x, y, draggingTarget).target;\n            var lastDropTarget = this._dropTarget;\n            this._dropTarget = dropTarget;\n            if (draggingTarget !== dropTarget) {\n                if (lastDropTarget && dropTarget !== lastDropTarget) {\n                    this.handler.dispatchToElement(new Param(lastDropTarget, e), 'dragleave', e.event);\n                }\n                if (dropTarget && dropTarget !== lastDropTarget) {\n                    this.handler.dispatchToElement(new Param(dropTarget, e), 'dragenter', e.event);\n                }\n            }\n        }\n    };\n    Draggable.prototype._dragEnd = function (e) {\n        var draggingTarget = this._draggingTarget;\n        if (draggingTarget) {\n            draggingTarget.dragging = false;\n        }\n        this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragend', e.event);\n        if (this._dropTarget) {\n            this.handler.dispatchToElement(new Param(this._dropTarget, e), 'drop', e.event);\n        }\n        this._draggingTarget = null;\n        this._dropTarget = null;\n    };\n    return Draggable;\n}());\nexport default Draggable;\n","var Eventful = (function () {\n    function Eventful(eventProcessors) {\n        if (eventProcessors) {\n            this._$eventProcessor = eventProcessors;\n        }\n    }\n    Eventful.prototype.on = function (event, query, handler, context) {\n        if (!this._$handlers) {\n            this._$handlers = {};\n        }\n        var _h = this._$handlers;\n        if (typeof query === 'function') {\n            context = handler;\n            handler = query;\n            query = null;\n        }\n        if (!handler || !event) {\n            return this;\n        }\n        var eventProcessor = this._$eventProcessor;\n        if (query != null && eventProcessor && eventProcessor.normalizeQuery) {\n            query = eventProcessor.normalizeQuery(query);\n        }\n        if (!_h[event]) {\n            _h[event] = [];\n        }\n        for (var i = 0; i < _h[event].length; i++) {\n            if (_h[event][i].h === handler) {\n                return this;\n            }\n        }\n        var wrap = {\n            h: handler,\n            query: query,\n            ctx: (context || this),\n            callAtLast: handler.zrEventfulCallAtLast\n        };\n        var lastIndex = _h[event].length - 1;\n        var lastWrap = _h[event][lastIndex];\n        (lastWrap && lastWrap.callAtLast)\n            ? _h[event].splice(lastIndex, 0, wrap)\n            : _h[event].push(wrap);\n        return this;\n    };\n    Eventful.prototype.isSilent = function (eventName) {\n        var _h = this._$handlers;\n        return !_h || !_h[eventName] || !_h[eventName].length;\n    };\n    Eventful.prototype.off = function (eventType, handler) {\n        var _h = this._$handlers;\n        if (!_h) {\n            return this;\n        }\n        if (!eventType) {\n            this._$handlers = {};\n            return this;\n        }\n        if (handler) {\n            if (_h[eventType]) {\n                var newList = [];\n                for (var i = 0, l = _h[eventType].length; i < l; i++) {\n                    if (_h[eventType][i].h !== handler) {\n                        newList.push(_h[eventType][i]);\n                    }\n                }\n                _h[eventType] = newList;\n            }\n            if (_h[eventType] && _h[eventType].length === 0) {\n                delete _h[eventType];\n            }\n        }\n        else {\n            delete _h[eventType];\n        }\n        return this;\n    };\n    Eventful.prototype.trigger = function (eventType) {\n        var args = [];\n        for (var _i = 1; _i < arguments.length; _i++) {\n            args[_i - 1] = arguments[_i];\n        }\n        if (!this._$handlers) {\n            return this;\n        }\n        var _h = this._$handlers[eventType];\n        var eventProcessor = this._$eventProcessor;\n        if (_h) {\n            var argLen = args.length;\n            var len = _h.length;\n            for (var i = 0; i < len; i++) {\n                var hItem = _h[i];\n                if (eventProcessor\n                    && eventProcessor.filter\n                    && hItem.query != null\n                    && !eventProcessor.filter(eventType, hItem.query)) {\n                    continue;\n                }\n                switch (argLen) {\n                    case 0:\n                        hItem.h.call(hItem.ctx);\n                        break;\n                    case 1:\n                        hItem.h.call(hItem.ctx, args[0]);\n                        break;\n                    case 2:\n                        hItem.h.call(hItem.ctx, args[0], args[1]);\n                        break;\n                    default:\n                        hItem.h.apply(hItem.ctx, args);\n                        break;\n                }\n            }\n        }\n        eventProcessor && eventProcessor.afterTrigger\n            && eventProcessor.afterTrigger(eventType);\n        return this;\n    };\n    Eventful.prototype.triggerWithContext = function (type) {\n        if (!this._$handlers) {\n            return this;\n        }\n        var _h = this._$handlers[type];\n        var eventProcessor = this._$eventProcessor;\n        if (_h) {\n            var args = arguments;\n            var argLen = args.length;\n            var ctx = args[argLen - 1];\n            var len = _h.length;\n            for (var i = 0; i < len; i++) {\n                var hItem = _h[i];\n                if (eventProcessor\n                    && eventProcessor.filter\n                    && hItem.query != null\n                    && !eventProcessor.filter(type, hItem.query)) {\n                    continue;\n                }\n                switch (argLen) {\n                    case 0:\n                        hItem.h.call(ctx);\n                        break;\n                    case 1:\n                        hItem.h.call(ctx, args[0]);\n                        break;\n                    case 2:\n                        hItem.h.call(ctx, args[0], args[1]);\n                        break;\n                    default:\n                        hItem.h.apply(ctx, args.slice(1, argLen - 1));\n                        break;\n                }\n            }\n        }\n        eventProcessor && eventProcessor.afterTrigger\n            && eventProcessor.afterTrigger(type);\n        return this;\n    };\n    return Eventful;\n}());\nexport default Eventful;\n","var LN2 = Math.log(2);\nfunction determinant(rows, rank, rowStart, rowMask, colMask, detCache) {\n    var cacheKey = rowMask + '-' + colMask;\n    var fullRank = rows.length;\n    if (detCache.hasOwnProperty(cacheKey)) {\n        return detCache[cacheKey];\n    }\n    if (rank === 1) {\n        var colStart = Math.round(Math.log(((1 << fullRank) - 1) & ~colMask) / LN2);\n        return rows[rowStart][colStart];\n    }\n    var subRowMask = rowMask | (1 << rowStart);\n    var subRowStart = rowStart + 1;\n    while (rowMask & (1 << subRowStart)) {\n        subRowStart++;\n    }\n    var sum = 0;\n    for (var j = 0, colLocalIdx = 0; j < fullRank; j++) {\n        var colTag = 1 << j;\n        if (!(colTag & colMask)) {\n            sum += (colLocalIdx % 2 ? -1 : 1) * rows[rowStart][j]\n                * determinant(rows, rank - 1, subRowStart, subRowMask, colMask | colTag, detCache);\n            colLocalIdx++;\n        }\n    }\n    detCache[cacheKey] = sum;\n    return sum;\n}\nexport function buildTransformer(src, dest) {\n    var mA = [\n        [src[0], src[1], 1, 0, 0, 0, -dest[0] * src[0], -dest[0] * src[1]],\n        [0, 0, 0, src[0], src[1], 1, -dest[1] * src[0], -dest[1] * src[1]],\n        [src[2], src[3], 1, 0, 0, 0, -dest[2] * src[2], -dest[2] * src[3]],\n        [0, 0, 0, src[2], src[3], 1, -dest[3] * src[2], -dest[3] * src[3]],\n        [src[4], src[5], 1, 0, 0, 0, -dest[4] * src[4], -dest[4] * src[5]],\n        [0, 0, 0, src[4], src[5], 1, -dest[5] * src[4], -dest[5] * src[5]],\n        [src[6], src[7], 1, 0, 0, 0, -dest[6] * src[6], -dest[6] * src[7]],\n        [0, 0, 0, src[6], src[7], 1, -dest[7] * src[6], -dest[7] * src[7]]\n    ];\n    var detCache = {};\n    var det = determinant(mA, 8, 0, 0, 0, detCache);\n    if (det === 0) {\n        return;\n    }\n    var vh = [];\n    for (var i = 0; i < 8; i++) {\n        for (var j = 0; j < 8; j++) {\n            vh[j] == null && (vh[j] = 0);\n            vh[j] += ((i + j) % 2 ? -1 : 1)\n                * determinant(mA, 7, i === 0 ? 1 : 0, 1 << i, 1 << j, detCache)\n                / det * dest[i];\n        }\n    }\n    return function (out, srcPointX, srcPointY) {\n        var pk = srcPointX * vh[6] + srcPointY * vh[7] + 1;\n        out[0] = (srcPointX * vh[0] + srcPointY * vh[1] + vh[2]) / pk;\n        out[1] = (srcPointX * vh[3] + srcPointY * vh[4] + vh[5]) / pk;\n    };\n}\n","import env from './env';\nimport { buildTransformer } from './fourPointsTransform';\nvar EVENT_SAVED_PROP = '___zrEVENTSAVED';\nvar _calcOut = [];\nexport function transformLocalCoord(out, elFrom, elTarget, inX, inY) {\n    return transformCoordWithViewport(_calcOut, elFrom, inX, inY, true)\n        && transformCoordWithViewport(out, elTarget, _calcOut[0], _calcOut[1]);\n}\nexport function transformCoordWithViewport(out, el, inX, inY, inverse) {\n    if (el.getBoundingClientRect && env.domSupported && !isCanvasEl(el)) {\n        var saved = el[EVENT_SAVED_PROP] || (el[EVENT_SAVED_PROP] = {});\n        var markers = prepareCoordMarkers(el, saved);\n        var transformer = preparePointerTransformer(markers, saved, inverse);\n        if (transformer) {\n            transformer(out, inX, inY);\n            return true;\n        }\n    }\n    return false;\n}\nfunction prepareCoordMarkers(el, saved) {\n    var markers = saved.markers;\n    if (markers) {\n        return markers;\n    }\n    markers = saved.markers = [];\n    var propLR = ['left', 'right'];\n    var propTB = ['top', 'bottom'];\n    for (var i = 0; i < 4; i++) {\n        var marker = document.createElement('div');\n        var stl = marker.style;\n        var idxLR = i % 2;\n        var idxTB = (i >> 1) % 2;\n        stl.cssText = [\n            'position: absolute',\n            'visibility: hidden',\n            'padding: 0',\n            'margin: 0',\n            'border-width: 0',\n            'user-select: none',\n            'width:0',\n            'height:0',\n            propLR[idxLR] + ':0',\n            propTB[idxTB] + ':0',\n            propLR[1 - idxLR] + ':auto',\n            propTB[1 - idxTB] + ':auto',\n            ''\n        ].join('!important;');\n        el.appendChild(marker);\n        markers.push(marker);\n    }\n    return markers;\n}\nfunction preparePointerTransformer(markers, saved, inverse) {\n    var transformerName = inverse ? 'invTrans' : 'trans';\n    var transformer = saved[transformerName];\n    var oldSrcCoords = saved.srcCoords;\n    var srcCoords = [];\n    var destCoords = [];\n    var oldCoordTheSame = true;\n    for (var i = 0; i < 4; i++) {\n        var rect = markers[i].getBoundingClientRect();\n        var ii = 2 * i;\n        var x = rect.left;\n        var y = rect.top;\n        srcCoords.push(x, y);\n        oldCoordTheSame = oldCoordTheSame && oldSrcCoords && x === oldSrcCoords[ii] && y === oldSrcCoords[ii + 1];\n        destCoords.push(markers[i].offsetLeft, markers[i].offsetTop);\n    }\n    return (oldCoordTheSame && transformer)\n        ? transformer\n        : (saved.srcCoords = srcCoords,\n            saved[transformerName] = inverse\n                ? buildTransformer(destCoords, srcCoords)\n                : buildTransformer(srcCoords, destCoords));\n}\nexport function isCanvasEl(el) {\n    return el.nodeName.toUpperCase() === 'CANVAS';\n}\n","import Eventful from './Eventful';\nimport env from './env';\nimport { isCanvasEl, transformCoordWithViewport } from './dom';\nvar isDomLevel2 = (typeof window !== 'undefined') && !!window.addEventListener;\nvar MOUSE_EVENT_REG = /^(?:mouse|pointer|contextmenu|drag|drop)|click/;\nvar _calcOut = [];\nexport function clientToLocal(el, e, out, calculate) {\n    out = out || {};\n    if (calculate || !env.canvasSupported) {\n        calculateZrXY(el, e, out);\n    }\n    else if (env.browser.firefox\n        && e.layerX != null\n        && e.layerX !== e.offsetX) {\n        out.zrX = e.layerX;\n        out.zrY = e.layerY;\n    }\n    else if (e.offsetX != null) {\n        out.zrX = e.offsetX;\n        out.zrY = e.offsetY;\n    }\n    else {\n        calculateZrXY(el, e, out);\n    }\n    return out;\n}\nfunction calculateZrXY(el, e, out) {\n    if (env.domSupported && el.getBoundingClientRect) {\n        var ex = e.clientX;\n        var ey = e.clientY;\n        if (isCanvasEl(el)) {\n            var box = el.getBoundingClientRect();\n            out.zrX = ex - box.left;\n            out.zrY = ey - box.top;\n            return;\n        }\n        else {\n            if (transformCoordWithViewport(_calcOut, el, ex, ey)) {\n                out.zrX = _calcOut[0];\n                out.zrY = _calcOut[1];\n                return;\n            }\n        }\n    }\n    out.zrX = out.zrY = 0;\n}\nexport function getNativeEvent(e) {\n    return e\n        || window.event;\n}\nexport function normalizeEvent(el, e, calculate) {\n    e = getNativeEvent(e);\n    if (e.zrX != null) {\n        return e;\n    }\n    var eventType = e.type;\n    var isTouch = eventType && eventType.indexOf('touch') >= 0;\n    if (!isTouch) {\n        clientToLocal(el, e, e, calculate);\n        var wheelDelta = getWheelDeltaMayPolyfill(e);\n        e.zrDelta = wheelDelta ? wheelDelta / 120 : -(e.detail || 0) / 3;\n    }\n    else {\n        var touch = eventType !== 'touchend'\n            ? e.targetTouches[0]\n            : e.changedTouches[0];\n        touch && clientToLocal(el, touch, e, calculate);\n    }\n    var button = e.button;\n    if (e.which == null && button !== undefined && MOUSE_EVENT_REG.test(e.type)) {\n        e.which = (button & 1 ? 1 : (button & 2 ? 3 : (button & 4 ? 2 : 0)));\n    }\n    return e;\n}\nfunction getWheelDeltaMayPolyfill(e) {\n    var rawWheelDelta = e.wheelDelta;\n    if (rawWheelDelta) {\n        return rawWheelDelta;\n    }\n    var deltaX = e.deltaX;\n    var deltaY = e.deltaY;\n    if (deltaX == null || deltaY == null) {\n        return rawWheelDelta;\n    }\n    var delta = deltaY !== 0 ? Math.abs(deltaY) : Math.abs(deltaX);\n    var sign = deltaY > 0 ? -1\n        : deltaY < 0 ? 1\n            : deltaX > 0 ? -1\n                : 1;\n    return 3 * delta * sign;\n}\nexport function addEventListener(el, name, handler, opt) {\n    if (isDomLevel2) {\n        el.addEventListener(name, handler, opt);\n    }\n    else {\n        el.attachEvent('on' + name, handler);\n    }\n}\nexport function removeEventListener(el, name, handler, opt) {\n    if (isDomLevel2) {\n        el.removeEventListener(name, handler, opt);\n    }\n    else {\n        el.detachEvent('on' + name, handler);\n    }\n}\nexport var stop = isDomLevel2\n    ? function (e) {\n        e.preventDefault();\n        e.stopPropagation();\n        e.cancelBubble = true;\n    }\n    : function (e) {\n        e.returnValue = false;\n        e.cancelBubble = true;\n    };\nexport function isMiddleOrRightButtonOnMouseUpDown(e) {\n    return e.which === 2 || e.which === 3;\n}\nexport function notLeftMouse(e) {\n    return e.which > 1;\n}\nexport { Eventful as Dispatcher };\n","import * as eventUtil from './event';\nvar GestureMgr = (function () {\n    function GestureMgr() {\n        this._track = [];\n    }\n    GestureMgr.prototype.recognize = function (event, target, root) {\n        this._doTrack(event, target, root);\n        return this._recognize(event);\n    };\n    GestureMgr.prototype.clear = function () {\n        this._track.length = 0;\n        return this;\n    };\n    GestureMgr.prototype._doTrack = function (event, target, root) {\n        var touches = event.touches;\n        if (!touches) {\n            return;\n        }\n        var trackItem = {\n            points: [],\n            touches: [],\n            target: target,\n            event: event\n        };\n        for (var i = 0, len = touches.length; i < len; i++) {\n            var touch = touches[i];\n            var pos = eventUtil.clientToLocal(root, touch, {});\n            trackItem.points.push([pos.zrX, pos.zrY]);\n            trackItem.touches.push(touch);\n        }\n        this._track.push(trackItem);\n    };\n    GestureMgr.prototype._recognize = function (event) {\n        for (var eventName in recognizers) {\n            if (recognizers.hasOwnProperty(eventName)) {\n                var gestureInfo = recognizers[eventName](this._track, event);\n                if (gestureInfo) {\n                    return gestureInfo;\n                }\n            }\n        }\n    };\n    return GestureMgr;\n}());\nexport { GestureMgr };\nfunction dist(pointPair) {\n    var dx = pointPair[1][0] - pointPair[0][0];\n    var dy = pointPair[1][1] - pointPair[0][1];\n    return Math.sqrt(dx * dx + dy * dy);\n}\nfunction center(pointPair) {\n    return [\n        (pointPair[0][0] + pointPair[1][0]) / 2,\n        (pointPair[0][1] + pointPair[1][1]) / 2\n    ];\n}\nvar recognizers = {\n    pinch: function (tracks, event) {\n        var trackLen = tracks.length;\n        if (!trackLen) {\n            return;\n        }\n        var pinchEnd = (tracks[trackLen - 1] || {}).points;\n        var pinchPre = (tracks[trackLen - 2] || {}).points || pinchEnd;\n        if (pinchPre\n            && pinchPre.length > 1\n            && pinchEnd\n            && pinchEnd.length > 1) {\n            var pinchScale = dist(pinchEnd) / dist(pinchPre);\n            !isFinite(pinchScale) && (pinchScale = 1);\n            event.pinchScale = pinchScale;\n            var pinchCenter = center(pinchEnd);\n            event.pinchX = pinchCenter[0];\n            event.pinchY = pinchCenter[1];\n            return {\n                type: 'pinch',\n                target: tracks[0].target,\n                event: event\n            };\n        }\n    }\n};\n","import { __extends } from \"tslib\";\nimport * as util from './core/util';\nimport * as vec2 from './core/vector';\nimport Draggable from './mixin/Draggable';\nimport Eventful from './core/Eventful';\nimport * as eventTool from './core/event';\nimport { GestureMgr } from './core/GestureMgr';\nvar SILENT = 'silent';\nfunction makeEventPacket(eveType, targetInfo, event) {\n    return {\n        type: eveType,\n        event: event,\n        target: targetInfo.target,\n        topTarget: targetInfo.topTarget,\n        cancelBubble: false,\n        offsetX: event.zrX,\n        offsetY: event.zrY,\n        gestureEvent: event.gestureEvent,\n        pinchX: event.pinchX,\n        pinchY: event.pinchY,\n        pinchScale: event.pinchScale,\n        wheelDelta: event.zrDelta,\n        zrByTouch: event.zrByTouch,\n        which: event.which,\n        stop: stopEvent\n    };\n}\nfunction stopEvent() {\n    eventTool.stop(this.event);\n}\nvar EmptyProxy = (function (_super) {\n    __extends(EmptyProxy, _super);\n    function EmptyProxy() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.handler = null;\n        return _this;\n    }\n    EmptyProxy.prototype.dispose = function () { };\n    EmptyProxy.prototype.setCursor = function () { };\n    return EmptyProxy;\n}(Eventful));\nvar HoveredResult = (function () {\n    function HoveredResult(x, y) {\n        this.x = x;\n        this.y = y;\n    }\n    return HoveredResult;\n}());\nvar handlerNames = [\n    'click', 'dblclick', 'mousewheel', 'mouseout',\n    'mouseup', 'mousedown', 'mousemove', 'contextmenu'\n];\nvar Handler = (function (_super) {\n    __extends(Handler, _super);\n    function Handler(storage, painter, proxy, painterRoot) {\n        var _this = _super.call(this) || this;\n        _this._hovered = new HoveredResult(0, 0);\n        _this.storage = storage;\n        _this.painter = painter;\n        _this.painterRoot = painterRoot;\n        proxy = proxy || new EmptyProxy();\n        _this.proxy = null;\n        _this.setHandlerProxy(proxy);\n        _this._draggingMgr = new Draggable(_this);\n        return _this;\n    }\n    Handler.prototype.setHandlerProxy = function (proxy) {\n        if (this.proxy) {\n            this.proxy.dispose();\n        }\n        if (proxy) {\n            util.each(handlerNames, function (name) {\n                proxy.on && proxy.on(name, this[name], this);\n            }, this);\n            proxy.handler = this;\n        }\n        this.proxy = proxy;\n    };\n    Handler.prototype.mousemove = function (event) {\n        var x = event.zrX;\n        var y = event.zrY;\n        var isOutside = isOutsideBoundary(this, x, y);\n        var lastHovered = this._hovered;\n        var lastHoveredTarget = lastHovered.target;\n        if (lastHoveredTarget && !lastHoveredTarget.__zr) {\n            lastHovered = this.findHover(lastHovered.x, lastHovered.y);\n            lastHoveredTarget = lastHovered.target;\n        }\n        var hovered = this._hovered = isOutside ? new HoveredResult(x, y) : this.findHover(x, y);\n        var hoveredTarget = hovered.target;\n        var proxy = this.proxy;\n        proxy.setCursor && proxy.setCursor(hoveredTarget ? hoveredTarget.cursor : 'default');\n        if (lastHoveredTarget && hoveredTarget !== lastHoveredTarget) {\n            this.dispatchToElement(lastHovered, 'mouseout', event);\n        }\n        this.dispatchToElement(hovered, 'mousemove', event);\n        if (hoveredTarget && hoveredTarget !== lastHoveredTarget) {\n            this.dispatchToElement(hovered, 'mouseover', event);\n        }\n    };\n    Handler.prototype.mouseout = function (event) {\n        var eventControl = event.zrEventControl;\n        if (eventControl !== 'only_globalout') {\n            this.dispatchToElement(this._hovered, 'mouseout', event);\n        }\n        if (eventControl !== 'no_globalout') {\n            this.trigger('globalout', { type: 'globalout', event: event });\n        }\n    };\n    Handler.prototype.resize = function () {\n        this._hovered = new HoveredResult(0, 0);\n    };\n    Handler.prototype.dispatch = function (eventName, eventArgs) {\n        var handler = this[eventName];\n        handler && handler.call(this, eventArgs);\n    };\n    Handler.prototype.dispose = function () {\n        this.proxy.dispose();\n        this.storage = null;\n        this.proxy = null;\n        this.painter = null;\n    };\n    Handler.prototype.setCursorStyle = function (cursorStyle) {\n        var proxy = this.proxy;\n        proxy.setCursor && proxy.setCursor(cursorStyle);\n    };\n    Handler.prototype.dispatchToElement = function (targetInfo, eventName, event) {\n        targetInfo = targetInfo || {};\n        var el = targetInfo.target;\n        if (el && el.silent) {\n            return;\n        }\n        var eventKey = ('on' + eventName);\n        var eventPacket = makeEventPacket(eventName, targetInfo, event);\n        while (el) {\n            el[eventKey]\n                && (eventPacket.cancelBubble = !!el[eventKey].call(el, eventPacket));\n            el.trigger(eventName, eventPacket);\n            el = el.__hostTarget ? el.__hostTarget : el.parent;\n            if (eventPacket.cancelBubble) {\n                break;\n            }\n        }\n        if (!eventPacket.cancelBubble) {\n            this.trigger(eventName, eventPacket);\n            if (this.painter && this.painter.eachOtherLayer) {\n                this.painter.eachOtherLayer(function (layer) {\n                    if (typeof (layer[eventKey]) === 'function') {\n                        layer[eventKey].call(layer, eventPacket);\n                    }\n                    if (layer.trigger) {\n                        layer.trigger(eventName, eventPacket);\n                    }\n                });\n            }\n        }\n    };\n    Handler.prototype.findHover = function (x, y, exclude) {\n        var list = this.storage.getDisplayList();\n        var out = new HoveredResult(x, y);\n        for (var i = list.length - 1; i >= 0; i--) {\n            var hoverCheckResult = void 0;\n            if (list[i] !== exclude\n                && !list[i].ignore\n                && (hoverCheckResult = isHover(list[i], x, y))) {\n                !out.topTarget && (out.topTarget = list[i]);\n                if (hoverCheckResult !== SILENT) {\n                    out.target = list[i];\n                    break;\n                }\n            }\n        }\n        return out;\n    };\n    Handler.prototype.processGesture = function (event, stage) {\n        if (!this._gestureMgr) {\n            this._gestureMgr = new GestureMgr();\n        }\n        var gestureMgr = this._gestureMgr;\n        stage === 'start' && gestureMgr.clear();\n        var gestureInfo = gestureMgr.recognize(event, this.findHover(event.zrX, event.zrY, null).target, this.proxy.dom);\n        stage === 'end' && gestureMgr.clear();\n        if (gestureInfo) {\n            var type = gestureInfo.type;\n            event.gestureEvent = type;\n            var res = new HoveredResult();\n            res.target = gestureInfo.target;\n            this.dispatchToElement(res, type, gestureInfo.event);\n        }\n    };\n    return Handler;\n}(Eventful));\nutil.each(['click', 'mousedown', 'mouseup', 'mousewheel', 'dblclick', 'contextmenu'], function (name) {\n    Handler.prototype[name] = function (event) {\n        var x = event.zrX;\n        var y = event.zrY;\n        var isOutside = isOutsideBoundary(this, x, y);\n        var hovered;\n        var hoveredTarget;\n        if (name !== 'mouseup' || !isOutside) {\n            hovered = this.findHover(x, y);\n            hoveredTarget = hovered.target;\n        }\n        if (name === 'mousedown') {\n            this._downEl = hoveredTarget;\n            this._downPoint = [event.zrX, event.zrY];\n            this._upEl = hoveredTarget;\n        }\n        else if (name === 'mouseup') {\n            this._upEl = hoveredTarget;\n        }\n        else if (name === 'click') {\n            if (this._downEl !== this._upEl\n                || !this._downPoint\n                || vec2.dist(this._downPoint, [event.zrX, event.zrY]) > 4) {\n                return;\n            }\n            this._downPoint = null;\n        }\n        this.dispatchToElement(hovered, name, event);\n    };\n});\nfunction isHover(displayable, x, y) {\n    if (displayable[displayable.rectHover ? 'rectContain' : 'contain'](x, y)) {\n        var el = displayable;\n        var isSilent = void 0;\n        var ignoreClip = false;\n        while (el) {\n            if (el.ignoreClip) {\n                ignoreClip = true;\n            }\n            if (!ignoreClip) {\n                var clipPath = el.getClipPath();\n                if (clipPath && !clipPath.contain(x, y)) {\n                    return false;\n                }\n                if (el.silent) {\n                    isSilent = true;\n                }\n            }\n            var hostEl = el.__hostTarget;\n            el = hostEl ? hostEl : el.parent;\n        }\n        return isSilent ? SILENT : true;\n    }\n    return false;\n}\nfunction isOutsideBoundary(handlerInstance, x, y) {\n    var painter = handlerInstance.painter;\n    return x < 0 || x > painter.getWidth() || y < 0 || y > painter.getHeight();\n}\nexport default Handler;\n","export function create() {\n    return [1, 0, 0, 1, 0, 0];\n}\nexport function identity(out) {\n    out[0] = 1;\n    out[1] = 0;\n    out[2] = 0;\n    out[3] = 1;\n    out[4] = 0;\n    out[5] = 0;\n    return out;\n}\nexport function copy(out, m) {\n    out[0] = m[0];\n    out[1] = m[1];\n    out[2] = m[2];\n    out[3] = m[3];\n    out[4] = m[4];\n    out[5] = m[5];\n    return out;\n}\nexport function mul(out, m1, m2) {\n    var out0 = m1[0] * m2[0] + m1[2] * m2[1];\n    var out1 = m1[1] * m2[0] + m1[3] * m2[1];\n    var out2 = m1[0] * m2[2] + m1[2] * m2[3];\n    var out3 = m1[1] * m2[2] + m1[3] * m2[3];\n    var out4 = m1[0] * m2[4] + m1[2] * m2[5] + m1[4];\n    var out5 = m1[1] * m2[4] + m1[3] * m2[5] + m1[5];\n    out[0] = out0;\n    out[1] = out1;\n    out[2] = out2;\n    out[3] = out3;\n    out[4] = out4;\n    out[5] = out5;\n    return out;\n}\nexport function translate(out, a, v) {\n    out[0] = a[0];\n    out[1] = a[1];\n    out[2] = a[2];\n    out[3] = a[3];\n    out[4] = a[4] + v[0];\n    out[5] = a[5] + v[1];\n    return out;\n}\nexport function rotate(out, a, rad) {\n    var aa = a[0];\n    var ac = a[2];\n    var atx = a[4];\n    var ab = a[1];\n    var ad = a[3];\n    var aty = a[5];\n    var st = Math.sin(rad);\n    var ct = Math.cos(rad);\n    out[0] = aa * ct + ab * st;\n    out[1] = -aa * st + ab * ct;\n    out[2] = ac * ct + ad * st;\n    out[3] = -ac * st + ct * ad;\n    out[4] = ct * atx + st * aty;\n    out[5] = ct * aty - st * atx;\n    return out;\n}\nexport function scale(out, a, v) {\n    var vx = v[0];\n    var vy = v[1];\n    out[0] = a[0] * vx;\n    out[1] = a[1] * vy;\n    out[2] = a[2] * vx;\n    out[3] = a[3] * vy;\n    out[4] = a[4] * vx;\n    out[5] = a[5] * vy;\n    return out;\n}\nexport function invert(out, a) {\n    var aa = a[0];\n    var ac = a[2];\n    var atx = a[4];\n    var ab = a[1];\n    var ad = a[3];\n    var aty = a[5];\n    var det = aa * ad - ab * ac;\n    if (!det) {\n        return null;\n    }\n    det = 1.0 / det;\n    out[0] = ad * det;\n    out[1] = -ab * det;\n    out[2] = -ac * det;\n    out[3] = aa * det;\n    out[4] = (ac * aty - ad * atx) * det;\n    out[5] = (ab * atx - aa * aty) * det;\n    return out;\n}\nexport function clone(a) {\n    var b = create();\n    copy(b, a);\n    return b;\n}\n","import * as matrix from './matrix';\nimport * as vector from './vector';\nvar mIdentity = matrix.identity;\nvar EPSILON = 5e-5;\nfunction isNotAroundZero(val) {\n    return val > EPSILON || val < -EPSILON;\n}\nvar scaleTmp = [];\nvar tmpTransform = [];\nvar originTransform = matrix.create();\nvar abs = Math.abs;\nvar Transformable = (function () {\n    function Transformable() {\n    }\n    Transformable.prototype.setPosition = function (arr) {\n        this.x = arr[0];\n        this.y = arr[1];\n    };\n    Transformable.prototype.setScale = function (arr) {\n        this.scaleX = arr[0];\n        this.scaleY = arr[1];\n    };\n    Transformable.prototype.setOrigin = function (arr) {\n        this.originX = arr[0];\n        this.originY = arr[1];\n    };\n    Transformable.prototype.needLocalTransform = function () {\n        return isNotAroundZero(this.rotation)\n            || isNotAroundZero(this.x)\n            || isNotAroundZero(this.y)\n            || isNotAroundZero(this.scaleX - 1)\n            || isNotAroundZero(this.scaleY - 1);\n    };\n    Transformable.prototype.updateTransform = function () {\n        var parent = this.parent;\n        var parentHasTransform = parent && parent.transform;\n        var needLocalTransform = this.needLocalTransform();\n        var m = this.transform;\n        if (!(needLocalTransform || parentHasTransform)) {\n            m && mIdentity(m);\n            return;\n        }\n        m = m || matrix.create();\n        if (needLocalTransform) {\n            this.getLocalTransform(m);\n        }\n        else {\n            mIdentity(m);\n        }\n        if (parentHasTransform) {\n            if (needLocalTransform) {\n                matrix.mul(m, parent.transform, m);\n            }\n            else {\n                matrix.copy(m, parent.transform);\n            }\n        }\n        this.transform = m;\n        this._resolveGlobalScaleRatio(m);\n    };\n    Transformable.prototype._resolveGlobalScaleRatio = function (m) {\n        var globalScaleRatio = this.globalScaleRatio;\n        if (globalScaleRatio != null && globalScaleRatio !== 1) {\n            this.getGlobalScale(scaleTmp);\n            var relX = scaleTmp[0] < 0 ? -1 : 1;\n            var relY = scaleTmp[1] < 0 ? -1 : 1;\n            var sx = ((scaleTmp[0] - relX) * globalScaleRatio + relX) / scaleTmp[0] || 0;\n            var sy = ((scaleTmp[1] - relY) * globalScaleRatio + relY) / scaleTmp[1] || 0;\n            m[0] *= sx;\n            m[1] *= sx;\n            m[2] *= sy;\n            m[3] *= sy;\n        }\n        this.invTransform = this.invTransform || matrix.create();\n        matrix.invert(this.invTransform, m);\n    };\n    Transformable.prototype.getLocalTransform = function (m) {\n        return Transformable.getLocalTransform(this, m);\n    };\n    Transformable.prototype.getComputedTransform = function () {\n        var transformNode = this;\n        var ancestors = [];\n        while (transformNode) {\n            ancestors.push(transformNode);\n            transformNode = transformNode.parent;\n        }\n        while (transformNode = ancestors.pop()) {\n            transformNode.updateTransform();\n        }\n        return this.transform;\n    };\n    Transformable.prototype.setLocalTransform = function (m) {\n        if (!m) {\n            return;\n        }\n        var sx = m[0] * m[0] + m[1] * m[1];\n        var sy = m[2] * m[2] + m[3] * m[3];\n        if (isNotAroundZero(sx - 1)) {\n            sx = Math.sqrt(sx);\n        }\n        if (isNotAroundZero(sy - 1)) {\n            sy = Math.sqrt(sy);\n        }\n        if (m[0] < 0) {\n            sx = -sx;\n        }\n        if (m[3] < 0) {\n            sy = -sy;\n        }\n        this.rotation = Math.atan2(-m[1] / sy, m[0] / sx);\n        if (sx < 0 && sy < 0) {\n            this.rotation += Math.PI;\n            sx = -sx;\n            sy = -sy;\n        }\n        this.x = m[4];\n        this.y = m[5];\n        this.scaleX = sx;\n        this.scaleY = sy;\n    };\n    Transformable.prototype.decomposeTransform = function () {\n        if (!this.transform) {\n            return;\n        }\n        var parent = this.parent;\n        var m = this.transform;\n        if (parent && parent.transform) {\n            matrix.mul(tmpTransform, parent.invTransform, m);\n            m = tmpTransform;\n        }\n        var ox = this.originX;\n        var oy = this.originY;\n        if (ox || oy) {\n            originTransform[4] = ox;\n            originTransform[5] = oy;\n            matrix.mul(tmpTransform, m, originTransform);\n            tmpTransform[4] -= ox;\n            tmpTransform[5] -= oy;\n            m = tmpTransform;\n        }\n        this.setLocalTransform(m);\n    };\n    Transformable.prototype.getGlobalScale = function (out) {\n        var m = this.transform;\n        out = out || [];\n        if (!m) {\n            out[0] = 1;\n            out[1] = 1;\n            return out;\n        }\n        out[0] = Math.sqrt(m[0] * m[0] + m[1] * m[1]);\n        out[1] = Math.sqrt(m[2] * m[2] + m[3] * m[3]);\n        if (m[0] < 0) {\n            out[0] = -out[0];\n        }\n        if (m[3] < 0) {\n            out[1] = -out[1];\n        }\n        return out;\n    };\n    Transformable.prototype.transformCoordToLocal = function (x, y) {\n        var v2 = [x, y];\n        var invTransform = this.invTransform;\n        if (invTransform) {\n            vector.applyTransform(v2, v2, invTransform);\n        }\n        return v2;\n    };\n    Transformable.prototype.transformCoordToGlobal = function (x, y) {\n        var v2 = [x, y];\n        var transform = this.transform;\n        if (transform) {\n            vector.applyTransform(v2, v2, transform);\n        }\n        return v2;\n    };\n    Transformable.prototype.getLineScale = function () {\n        var m = this.transform;\n        return m && abs(m[0] - 1) > 1e-10 && abs(m[3] - 1) > 1e-10\n            ? Math.sqrt(abs(m[0] * m[3] - m[2] * m[1]))\n            : 1;\n    };\n    Transformable.getLocalTransform = function (target, m) {\n        m = m || [];\n        mIdentity(m);\n        var ox = target.originX || 0;\n        var oy = target.originY || 0;\n        var sx = target.scaleX;\n        var sy = target.scaleY;\n        var rotation = target.rotation || 0;\n        var x = target.x;\n        var y = target.y;\n        m[4] -= ox;\n        m[5] -= oy;\n        m[0] *= sx;\n        m[1] *= sy;\n        m[2] *= sx;\n        m[3] *= sy;\n        m[4] *= sx;\n        m[5] *= sy;\n        if (rotation) {\n            matrix.rotate(m, m, rotation);\n        }\n        m[4] += ox;\n        m[5] += oy;\n        m[4] += x;\n        m[5] += y;\n        return m;\n    };\n    Transformable.initDefaultProps = (function () {\n        var proto = Transformable.prototype;\n        proto.x = 0;\n        proto.y = 0;\n        proto.scaleX = 1;\n        proto.scaleY = 1;\n        proto.originX = 0;\n        proto.originY = 0;\n        proto.rotation = 0;\n        proto.globalScaleRatio = 1;\n    })();\n    return Transformable;\n}());\n;\nexport default Transformable;\n","var easing = {\n    linear: function (k) {\n        return k;\n    },\n    quadraticIn: function (k) {\n        return k * k;\n    },\n    quadraticOut: function (k) {\n        return k * (2 - k);\n    },\n    quadraticInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return 0.5 * k * k;\n        }\n        return -0.5 * (--k * (k - 2) - 1);\n    },\n    cubicIn: function (k) {\n        return k * k * k;\n    },\n    cubicOut: function (k) {\n        return --k * k * k + 1;\n    },\n    cubicInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return 0.5 * k * k * k;\n        }\n        return 0.5 * ((k -= 2) * k * k + 2);\n    },\n    quarticIn: function (k) {\n        return k * k * k * k;\n    },\n    quarticOut: function (k) {\n        return 1 - (--k * k * k * k);\n    },\n    quarticInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return 0.5 * k * k * k * k;\n        }\n        return -0.5 * ((k -= 2) * k * k * k - 2);\n    },\n    quinticIn: function (k) {\n        return k * k * k * k * k;\n    },\n    quinticOut: function (k) {\n        return --k * k * k * k * k + 1;\n    },\n    quinticInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return 0.5 * k * k * k * k * k;\n        }\n        return 0.5 * ((k -= 2) * k * k * k * k + 2);\n    },\n    sinusoidalIn: function (k) {\n        return 1 - Math.cos(k * Math.PI / 2);\n    },\n    sinusoidalOut: function (k) {\n        return Math.sin(k * Math.PI / 2);\n    },\n    sinusoidalInOut: function (k) {\n        return 0.5 * (1 - Math.cos(Math.PI * k));\n    },\n    exponentialIn: function (k) {\n        return k === 0 ? 0 : Math.pow(1024, k - 1);\n    },\n    exponentialOut: function (k) {\n        return k === 1 ? 1 : 1 - Math.pow(2, -10 * k);\n    },\n    exponentialInOut: function (k) {\n        if (k === 0) {\n            return 0;\n        }\n        if (k === 1) {\n            return 1;\n        }\n        if ((k *= 2) < 1) {\n            return 0.5 * Math.pow(1024, k - 1);\n        }\n        return 0.5 * (-Math.pow(2, -10 * (k - 1)) + 2);\n    },\n    circularIn: function (k) {\n        return 1 - Math.sqrt(1 - k * k);\n    },\n    circularOut: function (k) {\n        return Math.sqrt(1 - (--k * k));\n    },\n    circularInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return -0.5 * (Math.sqrt(1 - k * k) - 1);\n        }\n        return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1);\n    },\n    elasticIn: function (k) {\n        var s;\n        var a = 0.1;\n        var p = 0.4;\n        if (k === 0) {\n            return 0;\n        }\n        if (k === 1) {\n            return 1;\n        }\n        if (!a || a < 1) {\n            a = 1;\n            s = p / 4;\n        }\n        else {\n            s = p * Math.asin(1 / a) / (2 * Math.PI);\n        }\n        return -(a * Math.pow(2, 10 * (k -= 1))\n            * Math.sin((k - s) * (2 * Math.PI) / p));\n    },\n    elasticOut: function (k) {\n        var s;\n        var a = 0.1;\n        var p = 0.4;\n        if (k === 0) {\n            return 0;\n        }\n        if (k === 1) {\n            return 1;\n        }\n        if (!a || a < 1) {\n            a = 1;\n            s = p / 4;\n        }\n        else {\n            s = p * Math.asin(1 / a) / (2 * Math.PI);\n        }\n        return (a * Math.pow(2, -10 * k)\n            * Math.sin((k - s) * (2 * Math.PI) / p) + 1);\n    },\n    elasticInOut: function (k) {\n        var s;\n        var a = 0.1;\n        var p = 0.4;\n        if (k === 0) {\n            return 0;\n        }\n        if (k === 1) {\n            return 1;\n        }\n        if (!a || a < 1) {\n            a = 1;\n            s = p / 4;\n        }\n        else {\n            s = p * Math.asin(1 / a) / (2 * Math.PI);\n        }\n        if ((k *= 2) < 1) {\n            return -0.5 * (a * Math.pow(2, 10 * (k -= 1))\n                * Math.sin((k - s) * (2 * Math.PI) / p));\n        }\n        return a * Math.pow(2, -10 * (k -= 1))\n            * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1;\n    },\n    backIn: function (k) {\n        var s = 1.70158;\n        return k * k * ((s + 1) * k - s);\n    },\n    backOut: function (k) {\n        var s = 1.70158;\n        return --k * k * ((s + 1) * k + s) + 1;\n    },\n    backInOut: function (k) {\n        var s = 1.70158 * 1.525;\n        if ((k *= 2) < 1) {\n            return 0.5 * (k * k * ((s + 1) * k - s));\n        }\n        return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2);\n    },\n    bounceIn: function (k) {\n        return 1 - easing.bounceOut(1 - k);\n    },\n    bounceOut: function (k) {\n        if (k < (1 / 2.75)) {\n            return 7.5625 * k * k;\n        }\n        else if (k < (2 / 2.75)) {\n            return 7.5625 * (k -= (1.5 / 2.75)) * k + 0.75;\n        }\n        else if (k < (2.5 / 2.75)) {\n            return 7.5625 * (k -= (2.25 / 2.75)) * k + 0.9375;\n        }\n        else {\n            return 7.5625 * (k -= (2.625 / 2.75)) * k + 0.984375;\n        }\n    },\n    bounceInOut: function (k) {\n        if (k < 0.5) {\n            return easing.bounceIn(k * 2) * 0.5;\n        }\n        return easing.bounceOut(k * 2 - 1) * 0.5 + 0.5;\n    }\n};\nexport default easing;\n","import easingFuncs from './easing';\nvar Clip = (function () {\n    function Clip(opts) {\n        this._initialized = false;\n        this._startTime = 0;\n        this._pausedTime = 0;\n        this._paused = false;\n        this._life = opts.life || 1000;\n        this._delay = opts.delay || 0;\n        this.loop = opts.loop == null ? false : opts.loop;\n        this.gap = opts.gap || 0;\n        this.easing = opts.easing || 'linear';\n        this.onframe = opts.onframe;\n        this.ondestroy = opts.ondestroy;\n        this.onrestart = opts.onrestart;\n    }\n    Clip.prototype.step = function (globalTime, deltaTime) {\n        if (!this._initialized) {\n            this._startTime = globalTime + this._delay;\n            this._initialized = true;\n        }\n        if (this._paused) {\n            this._pausedTime += deltaTime;\n            return;\n        }\n        var percent = (globalTime - this._startTime - this._pausedTime) / this._life;\n        if (percent < 0) {\n            percent = 0;\n        }\n        percent = Math.min(percent, 1);\n        var easing = this.easing;\n        var easingFunc = typeof easing === 'string'\n            ? easingFuncs[easing] : easing;\n        var schedule = typeof easingFunc === 'function'\n            ? easingFunc(percent)\n            : percent;\n        this.onframe && this.onframe(schedule);\n        if (percent === 1) {\n            if (this.loop) {\n                this._restart(globalTime);\n                this.onrestart && this.onrestart();\n            }\n            else {\n                return true;\n            }\n        }\n        return false;\n    };\n    Clip.prototype._restart = function (globalTime) {\n        var remainder = (globalTime - this._startTime - this._pausedTime) % this._life;\n        this._startTime = globalTime - remainder + this.gap;\n        this._pausedTime = 0;\n    };\n    Clip.prototype.pause = function () {\n        this._paused = true;\n    };\n    Clip.prototype.resume = function () {\n        this._paused = false;\n    };\n    return Clip;\n}());\nexport default Clip;\n","var Entry = (function () {\n    function Entry(val) {\n        this.value = val;\n    }\n    return Entry;\n}());\nexport { Entry };\nvar LinkedList = (function () {\n    function LinkedList() {\n        this._len = 0;\n    }\n    LinkedList.prototype.insert = function (val) {\n        var entry = new Entry(val);\n        this.insertEntry(entry);\n        return entry;\n    };\n    LinkedList.prototype.insertEntry = function (entry) {\n        if (!this.head) {\n            this.head = this.tail = entry;\n        }\n        else {\n            this.tail.next = entry;\n            entry.prev = this.tail;\n            entry.next = null;\n            this.tail = entry;\n        }\n        this._len++;\n    };\n    LinkedList.prototype.remove = function (entry) {\n        var prev = entry.prev;\n        var next = entry.next;\n        if (prev) {\n            prev.next = next;\n        }\n        else {\n            this.head = next;\n        }\n        if (next) {\n            next.prev = prev;\n        }\n        else {\n            this.tail = prev;\n        }\n        entry.next = entry.prev = null;\n        this._len--;\n    };\n    LinkedList.prototype.len = function () {\n        return this._len;\n    };\n    LinkedList.prototype.clear = function () {\n        this.head = this.tail = null;\n        this._len = 0;\n    };\n    return LinkedList;\n}());\nexport { LinkedList };\nvar LRU = (function () {\n    function LRU(maxSize) {\n        this._list = new LinkedList();\n        this._maxSize = 10;\n        this._map = {};\n        this._maxSize = maxSize;\n    }\n    LRU.prototype.put = function (key, value) {\n        var list = this._list;\n        var map = this._map;\n        var removed = null;\n        if (map[key] == null) {\n            var len = list.len();\n            var entry = this._lastRemovedEntry;\n            if (len >= this._maxSize && len > 0) {\n                var leastUsedEntry = list.head;\n                list.remove(leastUsedEntry);\n                delete map[leastUsedEntry.key];\n                removed = leastUsedEntry.value;\n                this._lastRemovedEntry = leastUsedEntry;\n            }\n            if (entry) {\n                entry.value = value;\n            }\n            else {\n                entry = new Entry(value);\n            }\n            entry.key = key;\n            list.insertEntry(entry);\n            map[key] = entry;\n        }\n        return removed;\n    };\n    LRU.prototype.get = function (key) {\n        var entry = this._map[key];\n        var list = this._list;\n        if (entry != null) {\n            if (entry !== list.tail) {\n                list.remove(entry);\n                list.insertEntry(entry);\n            }\n            return entry.value;\n        }\n    };\n    LRU.prototype.clear = function () {\n        this._list.clear();\n        this._map = {};\n    };\n    LRU.prototype.len = function () {\n        return this._list.len();\n    };\n    return LRU;\n}());\nexport default LRU;\n","import LRU from '../core/LRU';\nvar kCSSColorTable = {\n    'transparent': [0, 0, 0, 0], 'aliceblue': [240, 248, 255, 1],\n    'antiquewhite': [250, 235, 215, 1], 'aqua': [0, 255, 255, 1],\n    'aquamarine': [127, 255, 212, 1], 'azure': [240, 255, 255, 1],\n    'beige': [245, 245, 220, 1], 'bisque': [255, 228, 196, 1],\n    'black': [0, 0, 0, 1], 'blanchedalmond': [255, 235, 205, 1],\n    'blue': [0, 0, 255, 1], 'blueviolet': [138, 43, 226, 1],\n    'brown': [165, 42, 42, 1], 'burlywood': [222, 184, 135, 1],\n    'cadetblue': [95, 158, 160, 1], 'chartreuse': [127, 255, 0, 1],\n    'chocolate': [210, 105, 30, 1], 'coral': [255, 127, 80, 1],\n    'cornflowerblue': [100, 149, 237, 1], 'cornsilk': [255, 248, 220, 1],\n    'crimson': [220, 20, 60, 1], 'cyan': [0, 255, 255, 1],\n    'darkblue': [0, 0, 139, 1], 'darkcyan': [0, 139, 139, 1],\n    'darkgoldenrod': [184, 134, 11, 1], 'darkgray': [169, 169, 169, 1],\n    'darkgreen': [0, 100, 0, 1], 'darkgrey': [169, 169, 169, 1],\n    'darkkhaki': [189, 183, 107, 1], 'darkmagenta': [139, 0, 139, 1],\n    'darkolivegreen': [85, 107, 47, 1], 'darkorange': [255, 140, 0, 1],\n    'darkorchid': [153, 50, 204, 1], 'darkred': [139, 0, 0, 1],\n    'darksalmon': [233, 150, 122, 1], 'darkseagreen': [143, 188, 143, 1],\n    'darkslateblue': [72, 61, 139, 1], 'darkslategray': [47, 79, 79, 1],\n    'darkslategrey': [47, 79, 79, 1], 'darkturquoise': [0, 206, 209, 1],\n    'darkviolet': [148, 0, 211, 1], 'deeppink': [255, 20, 147, 1],\n    'deepskyblue': [0, 191, 255, 1], 'dimgray': [105, 105, 105, 1],\n    'dimgrey': [105, 105, 105, 1], 'dodgerblue': [30, 144, 255, 1],\n    'firebrick': [178, 34, 34, 1], 'floralwhite': [255, 250, 240, 1],\n    'forestgreen': [34, 139, 34, 1], 'fuchsia': [255, 0, 255, 1],\n    'gainsboro': [220, 220, 220, 1], 'ghostwhite': [248, 248, 255, 1],\n    'gold': [255, 215, 0, 1], 'goldenrod': [218, 165, 32, 1],\n    'gray': [128, 128, 128, 1], 'green': [0, 128, 0, 1],\n    'greenyellow': [173, 255, 47, 1], 'grey': [128, 128, 128, 1],\n    'honeydew': [240, 255, 240, 1], 'hotpink': [255, 105, 180, 1],\n    'indianred': [205, 92, 92, 1], 'indigo': [75, 0, 130, 1],\n    'ivory': [255, 255, 240, 1], 'khaki': [240, 230, 140, 1],\n    'lavender': [230, 230, 250, 1], 'lavenderblush': [255, 240, 245, 1],\n    'lawngreen': [124, 252, 0, 1], 'lemonchiffon': [255, 250, 205, 1],\n    'lightblue': [173, 216, 230, 1], 'lightcoral': [240, 128, 128, 1],\n    'lightcyan': [224, 255, 255, 1], 'lightgoldenrodyellow': [250, 250, 210, 1],\n    'lightgray': [211, 211, 211, 1], 'lightgreen': [144, 238, 144, 1],\n    'lightgrey': [211, 211, 211, 1], 'lightpink': [255, 182, 193, 1],\n    'lightsalmon': [255, 160, 122, 1], 'lightseagreen': [32, 178, 170, 1],\n    'lightskyblue': [135, 206, 250, 1], 'lightslategray': [119, 136, 153, 1],\n    'lightslategrey': [119, 136, 153, 1], 'lightsteelblue': [176, 196, 222, 1],\n    'lightyellow': [255, 255, 224, 1], 'lime': [0, 255, 0, 1],\n    'limegreen': [50, 205, 50, 1], 'linen': [250, 240, 230, 1],\n    'magenta': [255, 0, 255, 1], 'maroon': [128, 0, 0, 1],\n    'mediumaquamarine': [102, 205, 170, 1], 'mediumblue': [0, 0, 205, 1],\n    'mediumorchid': [186, 85, 211, 1], 'mediumpurple': [147, 112, 219, 1],\n    'mediumseagreen': [60, 179, 113, 1], 'mediumslateblue': [123, 104, 238, 1],\n    'mediumspringgreen': [0, 250, 154, 1], 'mediumturquoise': [72, 209, 204, 1],\n    'mediumvioletred': [199, 21, 133, 1], 'midnightblue': [25, 25, 112, 1],\n    'mintcream': [245, 255, 250, 1], 'mistyrose': [255, 228, 225, 1],\n    'moccasin': [255, 228, 181, 1], 'navajowhite': [255, 222, 173, 1],\n    'navy': [0, 0, 128, 1], 'oldlace': [253, 245, 230, 1],\n    'olive': [128, 128, 0, 1], 'olivedrab': [107, 142, 35, 1],\n    'orange': [255, 165, 0, 1], 'orangered': [255, 69, 0, 1],\n    'orchid': [218, 112, 214, 1], 'palegoldenrod': [238, 232, 170, 1],\n    'palegreen': [152, 251, 152, 1], 'paleturquoise': [175, 238, 238, 1],\n    'palevioletred': [219, 112, 147, 1], 'papayawhip': [255, 239, 213, 1],\n    'peachpuff': [255, 218, 185, 1], 'peru': [205, 133, 63, 1],\n    'pink': [255, 192, 203, 1], 'plum': [221, 160, 221, 1],\n    'powderblue': [176, 224, 230, 1], 'purple': [128, 0, 128, 1],\n    'red': [255, 0, 0, 1], 'rosybrown': [188, 143, 143, 1],\n    'royalblue': [65, 105, 225, 1], 'saddlebrown': [139, 69, 19, 1],\n    'salmon': [250, 128, 114, 1], 'sandybrown': [244, 164, 96, 1],\n    'seagreen': [46, 139, 87, 1], 'seashell': [255, 245, 238, 1],\n    'sienna': [160, 82, 45, 1], 'silver': [192, 192, 192, 1],\n    'skyblue': [135, 206, 235, 1], 'slateblue': [106, 90, 205, 1],\n    'slategray': [112, 128, 144, 1], 'slategrey': [112, 128, 144, 1],\n    'snow': [255, 250, 250, 1], 'springgreen': [0, 255, 127, 1],\n    'steelblue': [70, 130, 180, 1], 'tan': [210, 180, 140, 1],\n    'teal': [0, 128, 128, 1], 'thistle': [216, 191, 216, 1],\n    'tomato': [255, 99, 71, 1], 'turquoise': [64, 224, 208, 1],\n    'violet': [238, 130, 238, 1], 'wheat': [245, 222, 179, 1],\n    'white': [255, 255, 255, 1], 'whitesmoke': [245, 245, 245, 1],\n    'yellow': [255, 255, 0, 1], 'yellowgreen': [154, 205, 50, 1]\n};\nfunction clampCssByte(i) {\n    i = Math.round(i);\n    return i < 0 ? 0 : i > 255 ? 255 : i;\n}\nfunction clampCssAngle(i) {\n    i = Math.round(i);\n    return i < 0 ? 0 : i > 360 ? 360 : i;\n}\nfunction clampCssFloat(f) {\n    return f < 0 ? 0 : f > 1 ? 1 : f;\n}\nfunction parseCssInt(val) {\n    var str = val;\n    if (str.length && str.charAt(str.length - 1) === '%') {\n        return clampCssByte(parseFloat(str) / 100 * 255);\n    }\n    return clampCssByte(parseInt(str, 10));\n}\nfunction parseCssFloat(val) {\n    var str = val;\n    if (str.length && str.charAt(str.length - 1) === '%') {\n        return clampCssFloat(parseFloat(str) / 100);\n    }\n    return clampCssFloat(parseFloat(str));\n}\nfunction cssHueToRgb(m1, m2, h) {\n    if (h < 0) {\n        h += 1;\n    }\n    else if (h > 1) {\n        h -= 1;\n    }\n    if (h * 6 < 1) {\n        return m1 + (m2 - m1) * h * 6;\n    }\n    if (h * 2 < 1) {\n        return m2;\n    }\n    if (h * 3 < 2) {\n        return m1 + (m2 - m1) * (2 / 3 - h) * 6;\n    }\n    return m1;\n}\nfunction lerpNumber(a, b, p) {\n    return a + (b - a) * p;\n}\nfunction setRgba(out, r, g, b, a) {\n    out[0] = r;\n    out[1] = g;\n    out[2] = b;\n    out[3] = a;\n    return out;\n}\nfunction copyRgba(out, a) {\n    out[0] = a[0];\n    out[1] = a[1];\n    out[2] = a[2];\n    out[3] = a[3];\n    return out;\n}\nvar colorCache = new LRU(20);\nvar lastRemovedArr = null;\nfunction putToCache(colorStr, rgbaArr) {\n    if (lastRemovedArr) {\n        copyRgba(lastRemovedArr, rgbaArr);\n    }\n    lastRemovedArr = colorCache.put(colorStr, lastRemovedArr || (rgbaArr.slice()));\n}\nexport function parse(colorStr, rgbaArr) {\n    if (!colorStr) {\n        return;\n    }\n    rgbaArr = rgbaArr || [];\n    var cached = colorCache.get(colorStr);\n    if (cached) {\n        return copyRgba(rgbaArr, cached);\n    }\n    colorStr = colorStr + '';\n    var str = colorStr.replace(/ /g, '').toLowerCase();\n    if (str in kCSSColorTable) {\n        copyRgba(rgbaArr, kCSSColorTable[str]);\n        putToCache(colorStr, rgbaArr);\n        return rgbaArr;\n    }\n    var strLen = str.length;\n    if (str.charAt(0) === '#') {\n        if (strLen === 4 || strLen === 5) {\n            var iv = parseInt(str.slice(1, 4), 16);\n            if (!(iv >= 0 && iv <= 0xfff)) {\n                setRgba(rgbaArr, 0, 0, 0, 1);\n                return;\n            }\n            setRgba(rgbaArr, ((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8), (iv & 0xf0) | ((iv & 0xf0) >> 4), (iv & 0xf) | ((iv & 0xf) << 4), strLen === 5 ? parseInt(str.slice(4), 16) / 0xf : 1);\n            putToCache(colorStr, rgbaArr);\n            return rgbaArr;\n        }\n        else if (strLen === 7 || strLen === 9) {\n            var iv = parseInt(str.slice(1, 7), 16);\n            if (!(iv >= 0 && iv <= 0xffffff)) {\n                setRgba(rgbaArr, 0, 0, 0, 1);\n                return;\n            }\n            setRgba(rgbaArr, (iv & 0xff0000) >> 16, (iv & 0xff00) >> 8, iv & 0xff, strLen === 9 ? parseInt(str.slice(7), 16) / 0xff : 1);\n            putToCache(colorStr, rgbaArr);\n            return rgbaArr;\n        }\n        return;\n    }\n    var op = str.indexOf('(');\n    var ep = str.indexOf(')');\n    if (op !== -1 && ep + 1 === strLen) {\n        var fname = str.substr(0, op);\n        var params = str.substr(op + 1, ep - (op + 1)).split(',');\n        var alpha = 1;\n        switch (fname) {\n            case 'rgba':\n                if (params.length !== 4) {\n                    return params.length === 3\n                        ? setRgba(rgbaArr, +params[0], +params[1], +params[2], 1)\n                        : setRgba(rgbaArr, 0, 0, 0, 1);\n                }\n                alpha = parseCssFloat(params.pop());\n            case 'rgb':\n                if (params.length !== 3) {\n                    setRgba(rgbaArr, 0, 0, 0, 1);\n                    return;\n                }\n                setRgba(rgbaArr, parseCssInt(params[0]), parseCssInt(params[1]), parseCssInt(params[2]), alpha);\n                putToCache(colorStr, rgbaArr);\n                return rgbaArr;\n            case 'hsla':\n                if (params.length !== 4) {\n                    setRgba(rgbaArr, 0, 0, 0, 1);\n                    return;\n                }\n                params[3] = parseCssFloat(params[3]);\n                hsla2rgba(params, rgbaArr);\n                putToCache(colorStr, rgbaArr);\n                return rgbaArr;\n            case 'hsl':\n                if (params.length !== 3) {\n                    setRgba(rgbaArr, 0, 0, 0, 1);\n                    return;\n                }\n                hsla2rgba(params, rgbaArr);\n                putToCache(colorStr, rgbaArr);\n                return rgbaArr;\n            default:\n                return;\n        }\n    }\n    setRgba(rgbaArr, 0, 0, 0, 1);\n    return;\n}\nfunction hsla2rgba(hsla, rgba) {\n    var h = (((parseFloat(hsla[0]) % 360) + 360) % 360) / 360;\n    var s = parseCssFloat(hsla[1]);\n    var l = parseCssFloat(hsla[2]);\n    var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n    var m1 = l * 2 - m2;\n    rgba = rgba || [];\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);\n    if (hsla.length === 4) {\n        rgba[3] = hsla[3];\n    }\n    return rgba;\n}\nfunction rgba2hsla(rgba) {\n    if (!rgba) {\n        return;\n    }\n    var R = rgba[0] / 255;\n    var G = rgba[1] / 255;\n    var B = rgba[2] / 255;\n    var vMin = Math.min(R, G, B);\n    var vMax = Math.max(R, G, B);\n    var delta = vMax - vMin;\n    var L = (vMax + vMin) / 2;\n    var H;\n    var S;\n    if (delta === 0) {\n        H = 0;\n        S = 0;\n    }\n    else {\n        if (L < 0.5) {\n            S = delta / (vMax + vMin);\n        }\n        else {\n            S = delta / (2 - vMax - vMin);\n        }\n        var deltaR = (((vMax - R) / 6) + (delta / 2)) / delta;\n        var deltaG = (((vMax - G) / 6) + (delta / 2)) / delta;\n        var deltaB = (((vMax - B) / 6) + (delta / 2)) / delta;\n        if (R === vMax) {\n            H = deltaB - deltaG;\n        }\n        else if (G === vMax) {\n            H = (1 / 3) + deltaR - deltaB;\n        }\n        else if (B === vMax) {\n            H = (2 / 3) + deltaG - deltaR;\n        }\n        if (H < 0) {\n            H += 1;\n        }\n        if (H > 1) {\n            H -= 1;\n        }\n    }\n    var hsla = [H * 360, S, L];\n    if (rgba[3] != null) {\n        hsla.push(rgba[3]);\n    }\n    return hsla;\n}\nexport function lift(color, level) {\n    var colorArr = parse(color);\n    if (colorArr) {\n        for (var i = 0; i < 3; i++) {\n            if (level < 0) {\n                colorArr[i] = colorArr[i] * (1 - level) | 0;\n            }\n            else {\n                colorArr[i] = ((255 - colorArr[i]) * level + colorArr[i]) | 0;\n            }\n            if (colorArr[i] > 255) {\n                colorArr[i] = 255;\n            }\n            else if (colorArr[i] < 0) {\n                colorArr[i] = 0;\n            }\n        }\n        return stringify(colorArr, colorArr.length === 4 ? 'rgba' : 'rgb');\n    }\n}\nexport function toHex(color) {\n    var colorArr = parse(color);\n    if (colorArr) {\n        return ((1 << 24) + (colorArr[0] << 16) + (colorArr[1] << 8) + (+colorArr[2])).toString(16).slice(1);\n    }\n}\nexport function fastLerp(normalizedValue, colors, out) {\n    if (!(colors && colors.length)\n        || !(normalizedValue >= 0 && normalizedValue <= 1)) {\n        return;\n    }\n    out = out || [];\n    var value = normalizedValue * (colors.length - 1);\n    var leftIndex = Math.floor(value);\n    var rightIndex = Math.ceil(value);\n    var leftColor = colors[leftIndex];\n    var rightColor = colors[rightIndex];\n    var dv = value - leftIndex;\n    out[0] = clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv));\n    out[1] = clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv));\n    out[2] = clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv));\n    out[3] = clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv));\n    return out;\n}\nexport var fastMapToColor = fastLerp;\nexport function lerp(normalizedValue, colors, fullOutput) {\n    if (!(colors && colors.length)\n        || !(normalizedValue >= 0 && normalizedValue <= 1)) {\n        return;\n    }\n    var value = normalizedValue * (colors.length - 1);\n    var leftIndex = Math.floor(value);\n    var rightIndex = Math.ceil(value);\n    var leftColor = parse(colors[leftIndex]);\n    var rightColor = parse(colors[rightIndex]);\n    var dv = value - leftIndex;\n    var color = stringify([\n        clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv)),\n        clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv)),\n        clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv)),\n        clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv))\n    ], 'rgba');\n    return fullOutput\n        ? {\n            color: color,\n            leftIndex: leftIndex,\n            rightIndex: rightIndex,\n            value: value\n        }\n        : color;\n}\nexport var mapToColor = lerp;\nexport function modifyHSL(color, h, s, l) {\n    var colorArr = parse(color);\n    if (color) {\n        colorArr = rgba2hsla(colorArr);\n        h != null && (colorArr[0] = clampCssAngle(h));\n        s != null && (colorArr[1] = parseCssFloat(s));\n        l != null && (colorArr[2] = parseCssFloat(l));\n        return stringify(hsla2rgba(colorArr), 'rgba');\n    }\n}\nexport function modifyAlpha(color, alpha) {\n    var colorArr = parse(color);\n    if (colorArr && alpha != null) {\n        colorArr[3] = clampCssFloat(alpha);\n        return stringify(colorArr, 'rgba');\n    }\n}\nexport function stringify(arrColor, type) {\n    if (!arrColor || !arrColor.length) {\n        return;\n    }\n    var colorStr = arrColor[0] + ',' + arrColor[1] + ',' + arrColor[2];\n    if (type === 'rgba' || type === 'hsva' || type === 'hsla') {\n        colorStr += ',' + arrColor[3];\n    }\n    return type + '(' + colorStr + ')';\n}\nexport function lum(color, backgroundLum) {\n    var arr = parse(color);\n    return arr\n        ? (0.299 * arr[0] + 0.587 * arr[1] + 0.114 * arr[2]) * arr[3] / 255\n            + (1 - arr[3]) * backgroundLum\n        : 0;\n}\nexport function random() {\n    var r = Math.round(Math.random() * 255);\n    var g = Math.round(Math.random() * 255);\n    var b = Math.round(Math.random() * 255);\n    return 'rgb(' + r + ',' + g + ',' + b + ')';\n}\n","import Clip from './Clip';\nimport * as color from '../tool/color';\nimport { isArrayLike, keys, logError } from '../core/util';\nvar arraySlice = Array.prototype.slice;\nexport function interpolateNumber(p0, p1, percent) {\n    return (p1 - p0) * percent + p0;\n}\nexport function step(p0, p1, percent) {\n    return percent > 0.5 ? p1 : p0;\n}\nexport function interpolate1DArray(out, p0, p1, percent) {\n    var len = p0.length;\n    for (var i = 0; i < len; i++) {\n        out[i] = interpolateNumber(p0[i], p1[i], percent);\n    }\n}\nexport function interpolate2DArray(out, p0, p1, percent) {\n    var len = p0.length;\n    var len2 = len && p0[0].length;\n    for (var i = 0; i < len; i++) {\n        if (!out[i]) {\n            out[i] = [];\n        }\n        for (var j = 0; j < len2; j++) {\n            out[i][j] = interpolateNumber(p0[i][j], p1[i][j], percent);\n        }\n    }\n}\nfunction add1DArray(out, p0, p1, sign) {\n    var len = p0.length;\n    for (var i = 0; i < len; i++) {\n        out[i] = p0[i] + p1[i] * sign;\n    }\n    return out;\n}\nfunction add2DArray(out, p0, p1, sign) {\n    var len = p0.length;\n    var len2 = len && p0[0].length;\n    for (var i = 0; i < len; i++) {\n        if (!out[i]) {\n            out[i] = [];\n        }\n        for (var j = 0; j < len2; j++) {\n            out[i][j] = p0[i][j] + p1[i][j] * sign;\n        }\n    }\n    return out;\n}\nfunction fillArray(val0, val1, arrDim) {\n    var arr0 = val0;\n    var arr1 = val1;\n    if (!arr0.push || !arr1.push) {\n        return;\n    }\n    var arr0Len = arr0.length;\n    var arr1Len = arr1.length;\n    if (arr0Len !== arr1Len) {\n        var isPreviousLarger = arr0Len > arr1Len;\n        if (isPreviousLarger) {\n            arr0.length = arr1Len;\n        }\n        else {\n            for (var i = arr0Len; i < arr1Len; i++) {\n                arr0.push(arrDim === 1 ? arr1[i] : arraySlice.call(arr1[i]));\n            }\n        }\n    }\n    var len2 = arr0[0] && arr0[0].length;\n    for (var i = 0; i < arr0.length; i++) {\n        if (arrDim === 1) {\n            if (isNaN(arr0[i])) {\n                arr0[i] = arr1[i];\n            }\n        }\n        else {\n            for (var j = 0; j < len2; j++) {\n                if (isNaN(arr0[i][j])) {\n                    arr0[i][j] = arr1[i][j];\n                }\n            }\n        }\n    }\n}\nfunction is1DArraySame(arr0, arr1) {\n    var len = arr0.length;\n    if (len !== arr1.length) {\n        return false;\n    }\n    for (var i = 0; i < len; i++) {\n        if (arr0[i] !== arr1[i]) {\n            return false;\n        }\n    }\n    return true;\n}\nfunction is2DArraySame(arr0, arr1) {\n    var len = arr0.length;\n    if (len !== arr1.length) {\n        return false;\n    }\n    var len2 = arr0[0].length;\n    for (var i = 0; i < len; i++) {\n        for (var j = 0; j < len2; j++) {\n            if (arr0[i][j] !== arr1[i][j]) {\n                return false;\n            }\n        }\n    }\n    return true;\n}\nfunction catmullRomInterpolate(p0, p1, p2, p3, t, t2, t3) {\n    var v0 = (p2 - p0) * 0.5;\n    var v1 = (p3 - p1) * 0.5;\n    return (2 * (p1 - p2) + v0 + v1) * t3\n        + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\n        + v0 * t + p1;\n}\nfunction catmullRomInterpolate1DArray(out, p0, p1, p2, p3, t, t2, t3) {\n    var len = p0.length;\n    for (var i = 0; i < len; i++) {\n        out[i] = catmullRomInterpolate(p0[i], p1[i], p2[i], p3[i], t, t2, t3);\n    }\n}\nfunction catmullRomInterpolate2DArray(out, p0, p1, p2, p3, t, t2, t3) {\n    var len = p0.length;\n    var len2 = p0[0].length;\n    for (var i = 0; i < len; i++) {\n        if (!out[i]) {\n            out[1] = [];\n        }\n        for (var j = 0; j < len2; j++) {\n            out[i][j] = catmullRomInterpolate(p0[i][j], p1[i][j], p2[i][j], p3[i][j], t, t2, t3);\n        }\n    }\n}\nexport function cloneValue(value) {\n    if (isArrayLike(value)) {\n        var len = value.length;\n        if (isArrayLike(value[0])) {\n            var ret = [];\n            for (var i = 0; i < len; i++) {\n                ret.push(arraySlice.call(value[i]));\n            }\n            return ret;\n        }\n        return arraySlice.call(value);\n    }\n    return value;\n}\nfunction rgba2String(rgba) {\n    rgba[0] = Math.floor(rgba[0]);\n    rgba[1] = Math.floor(rgba[1]);\n    rgba[2] = Math.floor(rgba[2]);\n    return 'rgba(' + rgba.join(',') + ')';\n}\nfunction guessArrayDim(value) {\n    return isArrayLike(value && value[0]) ? 2 : 1;\n}\nvar tmpRgba = [0, 0, 0, 0];\nvar Track = (function () {\n    function Track(propName) {\n        this.keyframes = [];\n        this.maxTime = 0;\n        this.arrDim = 0;\n        this.interpolable = true;\n        this._needsSort = false;\n        this._isAllValueEqual = true;\n        this._lastFrame = 0;\n        this._lastFramePercent = 0;\n        this.propName = propName;\n    }\n    Track.prototype.isFinished = function () {\n        return this._finished;\n    };\n    Track.prototype.setFinished = function () {\n        this._finished = true;\n        if (this._additiveTrack) {\n            this._additiveTrack.setFinished();\n        }\n    };\n    Track.prototype.needsAnimate = function () {\n        return !this._isAllValueEqual && this.keyframes.length >= 2 && this.interpolable;\n    };\n    Track.prototype.getAdditiveTrack = function () {\n        return this._additiveTrack;\n    };\n    Track.prototype.addKeyframe = function (time, value) {\n        if (time >= this.maxTime) {\n            this.maxTime = time;\n        }\n        else {\n            this._needsSort = true;\n        }\n        var keyframes = this.keyframes;\n        var len = keyframes.length;\n        if (this.interpolable) {\n            if (isArrayLike(value)) {\n                var arrayDim = guessArrayDim(value);\n                if (len > 0 && this.arrDim !== arrayDim) {\n                    this.interpolable = false;\n                    return;\n                }\n                if (arrayDim === 1 && typeof value[0] !== 'number'\n                    || arrayDim === 2 && typeof value[0][0] !== 'number') {\n                    this.interpolable = false;\n                    return;\n                }\n                if (len > 0) {\n                    var lastFrame = keyframes[len - 1];\n                    if (this._isAllValueEqual) {\n                        if (arrayDim === 1) {\n                            if (!is1DArraySame(value, lastFrame.value)) {\n                                this._isAllValueEqual = false;\n                            }\n                        }\n                        else {\n                            this._isAllValueEqual = false;\n                        }\n                    }\n                }\n                this.arrDim = arrayDim;\n            }\n            else {\n                if (this.arrDim > 0) {\n                    this.interpolable = false;\n                    return;\n                }\n                if (typeof value === 'string') {\n                    var colorArray = color.parse(value);\n                    if (colorArray) {\n                        value = colorArray;\n                        this.isValueColor = true;\n                    }\n                    else {\n                        this.interpolable = false;\n                    }\n                }\n                else if (typeof value !== 'number') {\n                    this.interpolable = false;\n                    return;\n                }\n                if (this._isAllValueEqual && len > 0) {\n                    var lastFrame = keyframes[len - 1];\n                    if (this.isValueColor && !is1DArraySame(lastFrame.value, value)) {\n                        this._isAllValueEqual = false;\n                    }\n                    else if (lastFrame.value !== value) {\n                        this._isAllValueEqual = false;\n                    }\n                }\n            }\n        }\n        var kf = {\n            time: time,\n            value: value,\n            percent: 0\n        };\n        this.keyframes.push(kf);\n        return kf;\n    };\n    Track.prototype.prepare = function (additiveTrack) {\n        var kfs = this.keyframes;\n        if (this._needsSort) {\n            kfs.sort(function (a, b) {\n                return a.time - b.time;\n            });\n        }\n        var arrDim = this.arrDim;\n        var kfsLen = kfs.length;\n        var lastKf = kfs[kfsLen - 1];\n        for (var i = 0; i < kfsLen; i++) {\n            kfs[i].percent = kfs[i].time / this.maxTime;\n            if (arrDim > 0 && i !== kfsLen - 1) {\n                fillArray(kfs[i].value, lastKf.value, arrDim);\n            }\n        }\n        if (additiveTrack\n            && this.needsAnimate()\n            && additiveTrack.needsAnimate()\n            && arrDim === additiveTrack.arrDim\n            && this.isValueColor === additiveTrack.isValueColor\n            && !additiveTrack._finished) {\n            this._additiveTrack = additiveTrack;\n            var startValue = kfs[0].value;\n            for (var i = 0; i < kfsLen; i++) {\n                if (arrDim === 0) {\n                    if (this.isValueColor) {\n                        kfs[i].additiveValue\n                            = add1DArray([], kfs[i].value, startValue, -1);\n                    }\n                    else {\n                        kfs[i].additiveValue = kfs[i].value - startValue;\n                    }\n                }\n                else if (arrDim === 1) {\n                    kfs[i].additiveValue = add1DArray([], kfs[i].value, startValue, -1);\n                }\n                else if (arrDim === 2) {\n                    kfs[i].additiveValue = add2DArray([], kfs[i].value, startValue, -1);\n                }\n            }\n        }\n    };\n    Track.prototype.step = function (target, percent) {\n        if (this._finished) {\n            return;\n        }\n        if (this._additiveTrack && this._additiveTrack._finished) {\n            this._additiveTrack = null;\n        }\n        var isAdditive = this._additiveTrack != null;\n        var valueKey = isAdditive ? 'additiveValue' : 'value';\n        var keyframes = this.keyframes;\n        var kfsNum = this.keyframes.length;\n        var propName = this.propName;\n        var arrDim = this.arrDim;\n        var isValueColor = this.isValueColor;\n        var frameIdx;\n        if (percent < 0) {\n            frameIdx = 0;\n        }\n        else if (percent < this._lastFramePercent) {\n            var start = Math.min(this._lastFrame + 1, kfsNum - 1);\n            for (frameIdx = start; frameIdx >= 0; frameIdx--) {\n                if (keyframes[frameIdx].percent <= percent) {\n                    break;\n                }\n            }\n            frameIdx = Math.min(frameIdx, kfsNum - 2);\n        }\n        else {\n            for (frameIdx = this._lastFrame; frameIdx < kfsNum; frameIdx++) {\n                if (keyframes[frameIdx].percent > percent) {\n                    break;\n                }\n            }\n            frameIdx = Math.min(frameIdx - 1, kfsNum - 2);\n        }\n        var nextFrame = keyframes[frameIdx + 1];\n        var frame = keyframes[frameIdx];\n        if (!(frame && nextFrame)) {\n            return;\n        }\n        this._lastFrame = frameIdx;\n        this._lastFramePercent = percent;\n        var range = (nextFrame.percent - frame.percent);\n        if (range === 0) {\n            return;\n        }\n        var w = (percent - frame.percent) / range;\n        var targetArr = isAdditive ? this._additiveValue\n            : (isValueColor ? tmpRgba : target[propName]);\n        if ((arrDim > 0 || isValueColor) && !targetArr) {\n            targetArr = this._additiveValue = [];\n        }\n        if (this.useSpline) {\n            var p1 = keyframes[frameIdx][valueKey];\n            var p0 = keyframes[frameIdx === 0 ? frameIdx : frameIdx - 1][valueKey];\n            var p2 = keyframes[frameIdx > kfsNum - 2 ? kfsNum - 1 : frameIdx + 1][valueKey];\n            var p3 = keyframes[frameIdx > kfsNum - 3 ? kfsNum - 1 : frameIdx + 2][valueKey];\n            if (arrDim > 0) {\n                arrDim === 1\n                    ? catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w)\n                    : catmullRomInterpolate2DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\n            }\n            else if (isValueColor) {\n                catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\n                if (!isAdditive) {\n                    target[propName] = rgba2String(targetArr);\n                }\n            }\n            else {\n                var value = void 0;\n                if (!this.interpolable) {\n                    value = p2;\n                }\n                else {\n                    value = catmullRomInterpolate(p0, p1, p2, p3, w, w * w, w * w * w);\n                }\n                if (isAdditive) {\n                    this._additiveValue = value;\n                }\n                else {\n                    target[propName] = value;\n                }\n            }\n        }\n        else {\n            if (arrDim > 0) {\n                arrDim === 1\n                    ? interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w)\n                    : interpolate2DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\n            }\n            else if (isValueColor) {\n                interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\n                if (!isAdditive) {\n                    target[propName] = rgba2String(targetArr);\n                }\n            }\n            else {\n                var value = void 0;\n                if (!this.interpolable) {\n                    value = step(frame[valueKey], nextFrame[valueKey], w);\n                }\n                else {\n                    value = interpolateNumber(frame[valueKey], nextFrame[valueKey], w);\n                }\n                if (isAdditive) {\n                    this._additiveValue = value;\n                }\n                else {\n                    target[propName] = value;\n                }\n            }\n        }\n        if (isAdditive) {\n            this._addToTarget(target);\n        }\n    };\n    Track.prototype._addToTarget = function (target) {\n        var arrDim = this.arrDim;\n        var propName = this.propName;\n        var additiveValue = this._additiveValue;\n        if (arrDim === 0) {\n            if (this.isValueColor) {\n                color.parse(target[propName], tmpRgba);\n                add1DArray(tmpRgba, tmpRgba, additiveValue, 1);\n                target[propName] = rgba2String(tmpRgba);\n            }\n            else {\n                target[propName] = target[propName] + additiveValue;\n            }\n        }\n        else if (arrDim === 1) {\n            add1DArray(target[propName], target[propName], additiveValue, 1);\n        }\n        else if (arrDim === 2) {\n            add2DArray(target[propName], target[propName], additiveValue, 1);\n        }\n    };\n    return Track;\n}());\nvar Animator = (function () {\n    function Animator(target, loop, additiveTo) {\n        this._tracks = {};\n        this._trackKeys = [];\n        this._delay = 0;\n        this._maxTime = 0;\n        this._paused = false;\n        this._started = 0;\n        this._clip = null;\n        this._target = target;\n        this._loop = loop;\n        if (loop && additiveTo) {\n            logError('Can\\' use additive animation on looped animation.');\n            return;\n        }\n        this._additiveAnimators = additiveTo;\n    }\n    Animator.prototype.getTarget = function () {\n        return this._target;\n    };\n    Animator.prototype.changeTarget = function (target) {\n        this._target = target;\n    };\n    Animator.prototype.when = function (time, props) {\n        return this.whenWithKeys(time, props, keys(props));\n    };\n    Animator.prototype.whenWithKeys = function (time, props, propNames) {\n        var tracks = this._tracks;\n        for (var i = 0; i < propNames.length; i++) {\n            var propName = propNames[i];\n            var track = tracks[propName];\n            if (!track) {\n                track = tracks[propName] = new Track(propName);\n                var initialValue = void 0;\n                var additiveTrack = this._getAdditiveTrack(propName);\n                if (additiveTrack) {\n                    var lastFinalKf = additiveTrack.keyframes[additiveTrack.keyframes.length - 1];\n                    initialValue = lastFinalKf && lastFinalKf.value;\n                    if (additiveTrack.isValueColor && initialValue) {\n                        initialValue = rgba2String(initialValue);\n                    }\n                }\n                else {\n                    initialValue = this._target[propName];\n                }\n                if (initialValue == null) {\n                    continue;\n                }\n                if (time !== 0) {\n                    track.addKeyframe(0, cloneValue(initialValue));\n                }\n                this._trackKeys.push(propName);\n            }\n            track.addKeyframe(time, cloneValue(props[propName]));\n        }\n        this._maxTime = Math.max(this._maxTime, time);\n        return this;\n    };\n    Animator.prototype.pause = function () {\n        this._clip.pause();\n        this._paused = true;\n    };\n    Animator.prototype.resume = function () {\n        this._clip.resume();\n        this._paused = false;\n    };\n    Animator.prototype.isPaused = function () {\n        return !!this._paused;\n    };\n    Animator.prototype._doneCallback = function () {\n        this._setTracksFinished();\n        this._clip = null;\n        var doneList = this._doneList;\n        if (doneList) {\n            var len = doneList.length;\n            for (var i = 0; i < len; i++) {\n                doneList[i].call(this);\n            }\n        }\n    };\n    Animator.prototype._abortedCallback = function () {\n        this._setTracksFinished();\n        var animation = this.animation;\n        var abortedList = this._abortedList;\n        if (animation) {\n            animation.removeClip(this._clip);\n        }\n        this._clip = null;\n        if (abortedList) {\n            for (var i = 0; i < abortedList.length; i++) {\n                abortedList[i].call(this);\n            }\n        }\n    };\n    Animator.prototype._setTracksFinished = function () {\n        var tracks = this._tracks;\n        var tracksKeys = this._trackKeys;\n        for (var i = 0; i < tracksKeys.length; i++) {\n            tracks[tracksKeys[i]].setFinished();\n        }\n    };\n    Animator.prototype._getAdditiveTrack = function (trackName) {\n        var additiveTrack;\n        var additiveAnimators = this._additiveAnimators;\n        if (additiveAnimators) {\n            for (var i = 0; i < additiveAnimators.length; i++) {\n                var track = additiveAnimators[i].getTrack(trackName);\n                if (track) {\n                    additiveTrack = track;\n                }\n            }\n        }\n        return additiveTrack;\n    };\n    Animator.prototype.start = function (easing, forceAnimate) {\n        if (this._started > 0) {\n            return;\n        }\n        this._started = 1;\n        var self = this;\n        var tracks = [];\n        for (var i = 0; i < this._trackKeys.length; i++) {\n            var propName = this._trackKeys[i];\n            var track = this._tracks[propName];\n            var additiveTrack = this._getAdditiveTrack(propName);\n            var kfs = track.keyframes;\n            track.prepare(additiveTrack);\n            if (track.needsAnimate()) {\n                tracks.push(track);\n            }\n            else if (!track.interpolable) {\n                var lastKf = kfs[kfs.length - 1];\n                if (lastKf) {\n                    self._target[track.propName] = lastKf.value;\n                }\n            }\n        }\n        if (tracks.length || forceAnimate) {\n            var clip = new Clip({\n                life: this._maxTime,\n                loop: this._loop,\n                delay: this._delay,\n                onframe: function (percent) {\n                    self._started = 2;\n                    var additiveAnimators = self._additiveAnimators;\n                    if (additiveAnimators) {\n                        var stillHasAdditiveAnimator = false;\n                        for (var i = 0; i < additiveAnimators.length; i++) {\n                            if (additiveAnimators[i]._clip) {\n                                stillHasAdditiveAnimator = true;\n                                break;\n                            }\n                        }\n                        if (!stillHasAdditiveAnimator) {\n                            self._additiveAnimators = null;\n                        }\n                    }\n                    for (var i = 0; i < tracks.length; i++) {\n                        tracks[i].step(self._target, percent);\n                    }\n                    var onframeList = self._onframeList;\n                    if (onframeList) {\n                        for (var i = 0; i < onframeList.length; i++) {\n                            onframeList[i](self._target, percent);\n                        }\n                    }\n                },\n                ondestroy: function () {\n                    self._doneCallback();\n                }\n            });\n            this._clip = clip;\n            if (this.animation) {\n                this.animation.addClip(clip);\n            }\n            if (easing && easing !== 'spline') {\n                clip.easing = easing;\n            }\n        }\n        else {\n            this._doneCallback();\n        }\n        return this;\n    };\n    Animator.prototype.stop = function (forwardToLast) {\n        if (!this._clip) {\n            return;\n        }\n        var clip = this._clip;\n        if (forwardToLast) {\n            clip.onframe(1);\n        }\n        this._abortedCallback();\n    };\n    Animator.prototype.delay = function (time) {\n        this._delay = time;\n        return this;\n    };\n    Animator.prototype.during = function (cb) {\n        if (cb) {\n            if (!this._onframeList) {\n                this._onframeList = [];\n            }\n            this._onframeList.push(cb);\n        }\n        return this;\n    };\n    Animator.prototype.done = function (cb) {\n        if (cb) {\n            if (!this._doneList) {\n                this._doneList = [];\n            }\n            this._doneList.push(cb);\n        }\n        return this;\n    };\n    Animator.prototype.aborted = function (cb) {\n        if (cb) {\n            if (!this._abortedList) {\n                this._abortedList = [];\n            }\n            this._abortedList.push(cb);\n        }\n        return this;\n    };\n    Animator.prototype.getClip = function () {\n        return this._clip;\n    };\n    Animator.prototype.getTrack = function (propName) {\n        return this._tracks[propName];\n    };\n    Animator.prototype.stopTracks = function (propNames, forwardToLast) {\n        if (!propNames.length || !this._clip) {\n            return true;\n        }\n        var tracks = this._tracks;\n        var tracksKeys = this._trackKeys;\n        for (var i = 0; i < propNames.length; i++) {\n            var track = tracks[propNames[i]];\n            if (track) {\n                if (forwardToLast) {\n                    track.step(this._target, 1);\n                }\n                else if (this._started === 1) {\n                    track.step(this._target, 0);\n                }\n                track.setFinished();\n            }\n        }\n        var allAborted = true;\n        for (var i = 0; i < tracksKeys.length; i++) {\n            if (!tracks[tracksKeys[i]].isFinished()) {\n                allAborted = false;\n                break;\n            }\n        }\n        if (allAborted) {\n            this._abortedCallback();\n        }\n        return allAborted;\n    };\n    Animator.prototype.saveFinalToTarget = function (target, trackKeys) {\n        if (!target) {\n            return;\n        }\n        trackKeys = trackKeys || this._trackKeys;\n        for (var i = 0; i < trackKeys.length; i++) {\n            var propName = trackKeys[i];\n            var track = this._tracks[propName];\n            if (!track || track.isFinished()) {\n                continue;\n            }\n            var kfs = track.keyframes;\n            var lastKf = kfs[kfs.length - 1];\n            if (lastKf) {\n                var val = cloneValue(lastKf.value);\n                if (track.isValueColor) {\n                    val = rgba2String(val);\n                }\n                target[propName] = val;\n            }\n        }\n    };\n    Animator.prototype.__changeFinalValue = function (finalProps, trackKeys) {\n        trackKeys = trackKeys || keys(finalProps);\n        for (var i = 0; i < trackKeys.length; i++) {\n            var propName = trackKeys[i];\n            var track = this._tracks[propName];\n            if (!track) {\n                continue;\n            }\n            var kfs = track.keyframes;\n            if (kfs.length > 1) {\n                var lastKf = kfs.pop();\n                track.addKeyframe(lastKf.time, finalProps[propName]);\n                track.prepare(track.getAdditiveTrack());\n            }\n        }\n    };\n    return Animator;\n}());\nexport default Animator;\n","var Point = (function () {\n    function Point(x, y) {\n        this.x = x || 0;\n        this.y = y || 0;\n    }\n    Point.prototype.copy = function (other) {\n        this.x = other.x;\n        this.y = other.y;\n        return this;\n    };\n    Point.prototype.clone = function () {\n        return new Point(this.x, this.y);\n    };\n    Point.prototype.set = function (x, y) {\n        this.x = x;\n        this.y = y;\n        return this;\n    };\n    Point.prototype.equal = function (other) {\n        return other.x === this.x && other.y === this.y;\n    };\n    Point.prototype.add = function (other) {\n        this.x += other.x;\n        this.y += other.y;\n        return this;\n    };\n    Point.prototype.scale = function (scalar) {\n        this.x *= scalar;\n        this.y *= scalar;\n    };\n    Point.prototype.scaleAndAdd = function (other, scalar) {\n        this.x += other.x * scalar;\n        this.y += other.y * scalar;\n    };\n    Point.prototype.sub = function (other) {\n        this.x -= other.x;\n        this.y -= other.y;\n        return this;\n    };\n    Point.prototype.dot = function (other) {\n        return this.x * other.x + this.y * other.y;\n    };\n    Point.prototype.len = function () {\n        return Math.sqrt(this.x * this.x + this.y * this.y);\n    };\n    Point.prototype.lenSquare = function () {\n        return this.x * this.x + this.y * this.y;\n    };\n    Point.prototype.normalize = function () {\n        var len = this.len();\n        this.x /= len;\n        this.y /= len;\n        return this;\n    };\n    Point.prototype.distance = function (other) {\n        var dx = this.x - other.x;\n        var dy = this.y - other.y;\n        return Math.sqrt(dx * dx + dy * dy);\n    };\n    Point.prototype.distanceSquare = function (other) {\n        var dx = this.x - other.x;\n        var dy = this.y - other.y;\n        return dx * dx + dy * dy;\n    };\n    Point.prototype.negate = function () {\n        this.x = -this.x;\n        this.y = -this.y;\n        return this;\n    };\n    Point.prototype.transform = function (m) {\n        if (!m) {\n            return;\n        }\n        var x = this.x;\n        var y = this.y;\n        this.x = m[0] * x + m[2] * y + m[4];\n        this.y = m[1] * x + m[3] * y + m[5];\n        return this;\n    };\n    Point.prototype.toArray = function (out) {\n        out[0] = this.x;\n        out[1] = this.y;\n        return out;\n    };\n    Point.prototype.fromArray = function (input) {\n        this.x = input[0];\n        this.y = input[1];\n    };\n    Point.set = function (p, x, y) {\n        p.x = x;\n        p.y = y;\n    };\n    Point.copy = function (p, p2) {\n        p.x = p2.x;\n        p.y = p2.y;\n    };\n    Point.len = function (p) {\n        return Math.sqrt(p.x * p.x + p.y * p.y);\n    };\n    Point.lenSquare = function (p) {\n        return p.x * p.x + p.y * p.y;\n    };\n    Point.dot = function (p0, p1) {\n        return p0.x * p1.x + p0.y * p1.y;\n    };\n    Point.add = function (out, p0, p1) {\n        out.x = p0.x + p1.x;\n        out.y = p0.y + p1.y;\n    };\n    Point.sub = function (out, p0, p1) {\n        out.x = p0.x - p1.x;\n        out.y = p0.y - p1.y;\n    };\n    Point.scale = function (out, p0, scalar) {\n        out.x = p0.x * scalar;\n        out.y = p0.y * scalar;\n    };\n    Point.scaleAndAdd = function (out, p0, p1, scalar) {\n        out.x = p0.x + p1.x * scalar;\n        out.y = p0.y + p1.y * scalar;\n    };\n    Point.lerp = function (out, p0, p1, t) {\n        var onet = 1 - t;\n        out.x = onet * p0.x + t * p1.x;\n        out.y = onet * p0.y + t * p1.y;\n    };\n    return Point;\n}());\nexport default Point;\n","import * as matrix from './matrix';\nimport Point from './Point';\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar lt = new Point();\nvar rb = new Point();\nvar lb = new Point();\nvar rt = new Point();\nvar minTv = new Point();\nvar maxTv = new Point();\nvar BoundingRect = (function () {\n    function BoundingRect(x, y, width, height) {\n        if (width < 0 && isFinite(width)) {\n            x = x + width;\n            width = -width;\n        }\n        if (height < 0 && isFinite(height)) {\n            y = y + height;\n            height = -height;\n        }\n        this.x = x;\n        this.y = y;\n        this.width = width;\n        this.height = height;\n    }\n    BoundingRect.prototype.union = function (other) {\n        var x = mathMin(other.x, this.x);\n        var y = mathMin(other.y, this.y);\n        if (isFinite(this.x) && isFinite(this.width)) {\n            this.width = mathMax(other.x + other.width, this.x + this.width) - x;\n        }\n        else {\n            this.width = other.width;\n        }\n        if (isFinite(this.y) && isFinite(this.height)) {\n            this.height = mathMax(other.y + other.height, this.y + this.height) - y;\n        }\n        else {\n            this.height = other.height;\n        }\n        this.x = x;\n        this.y = y;\n    };\n    BoundingRect.prototype.applyTransform = function (m) {\n        BoundingRect.applyTransform(this, this, m);\n    };\n    BoundingRect.prototype.calculateTransform = function (b) {\n        var a = this;\n        var sx = b.width / a.width;\n        var sy = b.height / a.height;\n        var m = matrix.create();\n        matrix.translate(m, m, [-a.x, -a.y]);\n        matrix.scale(m, m, [sx, sy]);\n        matrix.translate(m, m, [b.x, b.y]);\n        return m;\n    };\n    BoundingRect.prototype.intersect = function (b, mtv) {\n        if (!b) {\n            return false;\n        }\n        if (!(b instanceof BoundingRect)) {\n            b = BoundingRect.create(b);\n        }\n        var a = this;\n        var ax0 = a.x;\n        var ax1 = a.x + a.width;\n        var ay0 = a.y;\n        var ay1 = a.y + a.height;\n        var bx0 = b.x;\n        var bx1 = b.x + b.width;\n        var by0 = b.y;\n        var by1 = b.y + b.height;\n        var overlap = !(ax1 < bx0 || bx1 < ax0 || ay1 < by0 || by1 < ay0);\n        if (mtv) {\n            var dMin = Infinity;\n            var dMax = 0;\n            var d0 = Math.abs(ax1 - bx0);\n            var d1 = Math.abs(bx1 - ax0);\n            var d2 = Math.abs(ay1 - by0);\n            var d3 = Math.abs(by1 - ay0);\n            var dx = Math.min(d0, d1);\n            var dy = Math.min(d2, d3);\n            if (ax1 < bx0 || bx1 < ax0) {\n                if (dx > dMax) {\n                    dMax = dx;\n                    if (d0 < d1) {\n                        Point.set(maxTv, -d0, 0);\n                    }\n                    else {\n                        Point.set(maxTv, d1, 0);\n                    }\n                }\n            }\n            else {\n                if (dx < dMin) {\n                    dMin = dx;\n                    if (d0 < d1) {\n                        Point.set(minTv, d0, 0);\n                    }\n                    else {\n                        Point.set(minTv, -d1, 0);\n                    }\n                }\n            }\n            if (ay1 < by0 || by1 < ay0) {\n                if (dy > dMax) {\n                    dMax = dy;\n                    if (d2 < d3) {\n                        Point.set(maxTv, 0, -d2);\n                    }\n                    else {\n                        Point.set(maxTv, 0, d3);\n                    }\n                }\n            }\n            else {\n                if (dx < dMin) {\n                    dMin = dx;\n                    if (d2 < d3) {\n                        Point.set(minTv, 0, d2);\n                    }\n                    else {\n                        Point.set(minTv, 0, -d3);\n                    }\n                }\n            }\n        }\n        if (mtv) {\n            Point.copy(mtv, overlap ? minTv : maxTv);\n        }\n        return overlap;\n    };\n    BoundingRect.prototype.contain = function (x, y) {\n        var rect = this;\n        return x >= rect.x\n            && x <= (rect.x + rect.width)\n            && y >= rect.y\n            && y <= (rect.y + rect.height);\n    };\n    BoundingRect.prototype.clone = function () {\n        return new BoundingRect(this.x, this.y, this.width, this.height);\n    };\n    BoundingRect.prototype.copy = function (other) {\n        BoundingRect.copy(this, other);\n    };\n    BoundingRect.prototype.plain = function () {\n        return {\n            x: this.x,\n            y: this.y,\n            width: this.width,\n            height: this.height\n        };\n    };\n    BoundingRect.prototype.isFinite = function () {\n        return isFinite(this.x)\n            && isFinite(this.y)\n            && isFinite(this.width)\n            && isFinite(this.height);\n    };\n    BoundingRect.prototype.isZero = function () {\n        return this.width === 0 || this.height === 0;\n    };\n    BoundingRect.create = function (rect) {\n        return new BoundingRect(rect.x, rect.y, rect.width, rect.height);\n    };\n    BoundingRect.copy = function (target, source) {\n        target.x = source.x;\n        target.y = source.y;\n        target.width = source.width;\n        target.height = source.height;\n    };\n    BoundingRect.applyTransform = function (target, source, m) {\n        if (!m) {\n            if (target !== source) {\n                BoundingRect.copy(target, source);\n            }\n            return;\n        }\n        if (m[1] < 1e-5 && m[1] > -1e-5 && m[2] < 1e-5 && m[2] > -1e-5) {\n            var sx = m[0];\n            var sy = m[3];\n            var tx = m[4];\n            var ty = m[5];\n            target.x = source.x * sx + tx;\n            target.y = source.y * sy + ty;\n            target.width = source.width * sx;\n            target.height = source.height * sy;\n            if (target.width < 0) {\n                target.x += target.width;\n                target.width = -target.width;\n            }\n            if (target.height < 0) {\n                target.y += target.height;\n                target.height = -target.height;\n            }\n            return;\n        }\n        lt.x = lb.x = source.x;\n        lt.y = rt.y = source.y;\n        rb.x = rt.x = source.x + source.width;\n        rb.y = lb.y = source.y + source.height;\n        lt.transform(m);\n        rt.transform(m);\n        rb.transform(m);\n        lb.transform(m);\n        target.x = mathMin(lt.x, rb.x, lb.x, rt.x);\n        target.y = mathMin(lt.y, rb.y, lb.y, rt.y);\n        var maxX = mathMax(lt.x, rb.x, lb.x, rt.x);\n        var maxY = mathMax(lt.y, rb.y, lb.y, rt.y);\n        target.width = maxX - target.x;\n        target.height = maxY - target.y;\n    };\n    return BoundingRect;\n}());\nexport default BoundingRect;\n","import BoundingRect from '../core/BoundingRect';\nimport { createCanvas } from '../core/util';\nimport LRU from '../core/LRU';\nvar textWidthCache = {};\nexport var DEFAULT_FONT = '12px sans-serif';\nvar _ctx;\nvar _cachedFont;\nfunction defaultMeasureText(text, font) {\n    if (!_ctx) {\n        _ctx = createCanvas().getContext('2d');\n    }\n    if (_cachedFont !== font) {\n        _cachedFont = _ctx.font = font || DEFAULT_FONT;\n    }\n    return _ctx.measureText(text);\n}\nvar methods = {\n    measureText: defaultMeasureText\n};\nexport function $override(name, fn) {\n    methods[name] = fn;\n}\nexport function getWidth(text, font) {\n    font = font || DEFAULT_FONT;\n    var cacheOfFont = textWidthCache[font];\n    if (!cacheOfFont) {\n        cacheOfFont = textWidthCache[font] = new LRU(500);\n    }\n    var width = cacheOfFont.get(text);\n    if (width == null) {\n        width = methods.measureText(text, font).width;\n        cacheOfFont.put(text, width);\n    }\n    return width;\n}\nexport function innerGetBoundingRect(text, font, textAlign, textBaseline) {\n    var width = getWidth(text, font);\n    var height = getLineHeight(font);\n    var x = adjustTextX(0, width, textAlign);\n    var y = adjustTextY(0, height, textBaseline);\n    var rect = new BoundingRect(x, y, width, height);\n    return rect;\n}\nexport function getBoundingRect(text, font, textAlign, textBaseline) {\n    var textLines = ((text || '') + '').split('\\n');\n    var len = textLines.length;\n    if (len === 1) {\n        return innerGetBoundingRect(textLines[0], font, textAlign, textBaseline);\n    }\n    else {\n        var uniondRect = new BoundingRect(0, 0, 0, 0);\n        for (var i = 0; i < textLines.length; i++) {\n            var rect = innerGetBoundingRect(textLines[i], font, textAlign, textBaseline);\n            i === 0 ? uniondRect.copy(rect) : uniondRect.union(rect);\n        }\n        return uniondRect;\n    }\n}\nexport function adjustTextX(x, width, textAlign) {\n    if (textAlign === 'right') {\n        x -= width;\n    }\n    else if (textAlign === 'center') {\n        x -= width / 2;\n    }\n    return x;\n}\nexport function adjustTextY(y, height, verticalAlign) {\n    if (verticalAlign === 'middle') {\n        y -= height / 2;\n    }\n    else if (verticalAlign === 'bottom') {\n        y -= height;\n    }\n    return y;\n}\nexport function getLineHeight(font) {\n    return getWidth('国', font);\n}\nexport function measureText(text, font) {\n    return methods.measureText(text, font);\n}\nexport function parsePercent(value, maxValue) {\n    if (typeof value === 'string') {\n        if (value.lastIndexOf('%') >= 0) {\n            return parseFloat(value) / 100 * maxValue;\n        }\n        return parseFloat(value);\n    }\n    return value;\n}\nexport function calculateTextPosition(out, opts, rect) {\n    var textPosition = opts.position || 'inside';\n    var distance = opts.distance != null ? opts.distance : 5;\n    var height = rect.height;\n    var width = rect.width;\n    var halfHeight = height / 2;\n    var x = rect.x;\n    var y = rect.y;\n    var textAlign = 'left';\n    var textVerticalAlign = 'top';\n    if (textPosition instanceof Array) {\n        x += parsePercent(textPosition[0], rect.width);\n        y += parsePercent(textPosition[1], rect.height);\n        textAlign = null;\n        textVerticalAlign = null;\n    }\n    else {\n        switch (textPosition) {\n            case 'left':\n                x -= distance;\n                y += halfHeight;\n                textAlign = 'right';\n                textVerticalAlign = 'middle';\n                break;\n            case 'right':\n                x += distance + width;\n                y += halfHeight;\n                textVerticalAlign = 'middle';\n                break;\n            case 'top':\n                x += width / 2;\n                y -= distance;\n                textAlign = 'center';\n                textVerticalAlign = 'bottom';\n                break;\n            case 'bottom':\n                x += width / 2;\n                y += height + distance;\n                textAlign = 'center';\n                break;\n            case 'inside':\n                x += width / 2;\n                y += halfHeight;\n                textAlign = 'center';\n                textVerticalAlign = 'middle';\n                break;\n            case 'insideLeft':\n                x += distance;\n                y += halfHeight;\n                textVerticalAlign = 'middle';\n                break;\n            case 'insideRight':\n                x += width - distance;\n                y += halfHeight;\n                textAlign = 'right';\n                textVerticalAlign = 'middle';\n                break;\n            case 'insideTop':\n                x += width / 2;\n                y += distance;\n                textAlign = 'center';\n                break;\n            case 'insideBottom':\n                x += width / 2;\n                y += height - distance;\n                textAlign = 'center';\n                textVerticalAlign = 'bottom';\n                break;\n            case 'insideTopLeft':\n                x += distance;\n                y += distance;\n                break;\n            case 'insideTopRight':\n                x += width - distance;\n                y += distance;\n                textAlign = 'right';\n                break;\n            case 'insideBottomLeft':\n                x += distance;\n                y += height - distance;\n                textVerticalAlign = 'bottom';\n                break;\n            case 'insideBottomRight':\n                x += width - distance;\n                y += height - distance;\n                textAlign = 'right';\n                textVerticalAlign = 'bottom';\n                break;\n        }\n    }\n    out = out || {};\n    out.x = x;\n    out.y = y;\n    out.align = textAlign;\n    out.verticalAlign = textVerticalAlign;\n    return out;\n}\n","var dpr = 1;\nif (typeof window !== 'undefined') {\n    dpr = Math.max(window.devicePixelRatio\n        || (window.screen && window.screen.deviceXDPI / window.screen.logicalXDPI)\n        || 1, 1);\n}\nexport var debugMode = 0;\nexport var devicePixelRatio = dpr;\nexport var DARK_MODE_THRESHOLD = 0.4;\nexport var DARK_LABEL_COLOR = '#333';\nexport var LIGHT_LABEL_COLOR = '#ccc';\nexport var LIGHTER_LABEL_COLOR = '#eee';\n","import Transformable from './core/Transformable';\nimport Animator, { cloneValue } from './animation/Animator';\nimport BoundingRect from './core/BoundingRect';\nimport Eventful from './core/Eventful';\nimport { calculateTextPosition, parsePercent } from './contain/text';\nimport { guid, isObject, keys, extend, indexOf, logError, mixin, isArrayLike, isTypedArray } from './core/util';\nimport { LIGHT_LABEL_COLOR, DARK_LABEL_COLOR } from './config';\nimport { parse, stringify } from './tool/color';\nimport env from './core/env';\nexport var PRESERVED_NORMAL_STATE = '__zr_normal__';\nvar PRIMARY_STATES_KEYS = ['x', 'y', 'scaleX', 'scaleY', 'originX', 'originY', 'rotation', 'ignore'];\nvar DEFAULT_ANIMATABLE_MAP = {\n    x: true,\n    y: true,\n    scaleX: true,\n    scaleY: true,\n    originX: true,\n    originY: true,\n    rotation: true,\n    ignore: false\n};\nvar tmpTextPosCalcRes = {};\nvar tmpBoundingRect = new BoundingRect(0, 0, 0, 0);\nvar Element = (function () {\n    function Element(props) {\n        this.id = guid();\n        this.animators = [];\n        this.currentStates = [];\n        this.states = {};\n        this._init(props);\n    }\n    Element.prototype._init = function (props) {\n        this.attr(props);\n    };\n    Element.prototype.drift = function (dx, dy, e) {\n        switch (this.draggable) {\n            case 'horizontal':\n                dy = 0;\n                break;\n            case 'vertical':\n                dx = 0;\n                break;\n        }\n        var m = this.transform;\n        if (!m) {\n            m = this.transform = [1, 0, 0, 1, 0, 0];\n        }\n        m[4] += dx;\n        m[5] += dy;\n        this.decomposeTransform();\n        this.markRedraw();\n    };\n    Element.prototype.beforeUpdate = function () { };\n    Element.prototype.afterUpdate = function () { };\n    Element.prototype.update = function () {\n        this.updateTransform();\n        if (this.__dirty) {\n            this.updateInnerText();\n        }\n    };\n    Element.prototype.updateInnerText = function (forceUpdate) {\n        var textEl = this._textContent;\n        if (textEl && (!textEl.ignore || forceUpdate)) {\n            if (!this.textConfig) {\n                this.textConfig = {};\n            }\n            var textConfig = this.textConfig;\n            var isLocal = textConfig.local;\n            var attachedTransform = textEl.attachedTransform;\n            var textAlign = void 0;\n            var textVerticalAlign = void 0;\n            var textStyleChanged = false;\n            if (isLocal) {\n                attachedTransform.parent = this;\n            }\n            else {\n                attachedTransform.parent = null;\n            }\n            var innerOrigin = false;\n            attachedTransform.x = textEl.x;\n            attachedTransform.y = textEl.y;\n            attachedTransform.originX = textEl.originX;\n            attachedTransform.originY = textEl.originY;\n            attachedTransform.rotation = textEl.rotation;\n            attachedTransform.scaleX = textEl.scaleX;\n            attachedTransform.scaleY = textEl.scaleY;\n            if (textConfig.position != null) {\n                var layoutRect = tmpBoundingRect;\n                if (textConfig.layoutRect) {\n                    layoutRect.copy(textConfig.layoutRect);\n                }\n                else {\n                    layoutRect.copy(this.getBoundingRect());\n                }\n                if (!isLocal) {\n                    layoutRect.applyTransform(this.transform);\n                }\n                if (this.calculateTextPosition) {\n                    this.calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\n                }\n                else {\n                    calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\n                }\n                attachedTransform.x = tmpTextPosCalcRes.x;\n                attachedTransform.y = tmpTextPosCalcRes.y;\n                textAlign = tmpTextPosCalcRes.align;\n                textVerticalAlign = tmpTextPosCalcRes.verticalAlign;\n                var textOrigin = textConfig.origin;\n                if (textOrigin && textConfig.rotation != null) {\n                    var relOriginX = void 0;\n                    var relOriginY = void 0;\n                    if (textOrigin === 'center') {\n                        relOriginX = layoutRect.width * 0.5;\n                        relOriginY = layoutRect.height * 0.5;\n                    }\n                    else {\n                        relOriginX = parsePercent(textOrigin[0], layoutRect.width);\n                        relOriginY = parsePercent(textOrigin[1], layoutRect.height);\n                    }\n                    innerOrigin = true;\n                    attachedTransform.originX = -attachedTransform.x + relOriginX + (isLocal ? 0 : layoutRect.x);\n                    attachedTransform.originY = -attachedTransform.y + relOriginY + (isLocal ? 0 : layoutRect.y);\n                }\n            }\n            if (textConfig.rotation != null) {\n                attachedTransform.rotation = textConfig.rotation;\n            }\n            var textOffset = textConfig.offset;\n            if (textOffset) {\n                attachedTransform.x += textOffset[0];\n                attachedTransform.y += textOffset[1];\n                if (!innerOrigin) {\n                    attachedTransform.originX = -textOffset[0];\n                    attachedTransform.originY = -textOffset[1];\n                }\n            }\n            var isInside = textConfig.inside == null\n                ? (typeof textConfig.position === 'string' && textConfig.position.indexOf('inside') >= 0)\n                : textConfig.inside;\n            var innerTextDefaultStyle = this._innerTextDefaultStyle || (this._innerTextDefaultStyle = {});\n            var textFill = void 0;\n            var textStroke = void 0;\n            var autoStroke = void 0;\n            if (isInside && this.canBeInsideText()) {\n                textFill = textConfig.insideFill;\n                textStroke = textConfig.insideStroke;\n                if (textFill == null || textFill === 'auto') {\n                    textFill = this.getInsideTextFill();\n                }\n                if (textStroke == null || textStroke === 'auto') {\n                    textStroke = this.getInsideTextStroke(textFill);\n                    autoStroke = true;\n                }\n            }\n            else {\n                textFill = textConfig.outsideFill;\n                textStroke = textConfig.outsideStroke;\n                if (textFill == null || textFill === 'auto') {\n                    textFill = this.getOutsideFill();\n                }\n                if (textStroke == null || textStroke === 'auto') {\n                    textStroke = this.getOutsideStroke(textFill);\n                    autoStroke = true;\n                }\n            }\n            textFill = textFill || '#000';\n            if (textFill !== innerTextDefaultStyle.fill\n                || textStroke !== innerTextDefaultStyle.stroke\n                || autoStroke !== innerTextDefaultStyle.autoStroke\n                || textAlign !== innerTextDefaultStyle.align\n                || textVerticalAlign !== innerTextDefaultStyle.verticalAlign) {\n                textStyleChanged = true;\n                innerTextDefaultStyle.fill = textFill;\n                innerTextDefaultStyle.stroke = textStroke;\n                innerTextDefaultStyle.autoStroke = autoStroke;\n                innerTextDefaultStyle.align = textAlign;\n                innerTextDefaultStyle.verticalAlign = textVerticalAlign;\n                textEl.setDefaultTextStyle(innerTextDefaultStyle);\n            }\n            if (textStyleChanged) {\n                textEl.dirtyStyle();\n            }\n            textEl.markRedraw();\n        }\n    };\n    Element.prototype.canBeInsideText = function () {\n        return true;\n    };\n    Element.prototype.getInsideTextFill = function () {\n        return '#fff';\n    };\n    Element.prototype.getInsideTextStroke = function (textFill) {\n        return '#000';\n    };\n    Element.prototype.getOutsideFill = function () {\n        return this.__zr && this.__zr.isDarkMode() ? LIGHT_LABEL_COLOR : DARK_LABEL_COLOR;\n    };\n    Element.prototype.getOutsideStroke = function (textFill) {\n        var backgroundColor = this.__zr && this.__zr.getBackgroundColor();\n        var colorArr = typeof backgroundColor === 'string' && parse(backgroundColor);\n        if (!colorArr) {\n            colorArr = [255, 255, 255, 1];\n        }\n        var alpha = colorArr[3];\n        var isDark = this.__zr.isDarkMode();\n        for (var i = 0; i < 3; i++) {\n            colorArr[i] = colorArr[i] * alpha + (isDark ? 0 : 255) * (1 - alpha);\n        }\n        colorArr[3] = 1;\n        return stringify(colorArr, 'rgba');\n    };\n    Element.prototype.traverse = function (cb, context) { };\n    Element.prototype.attrKV = function (key, value) {\n        if (key === 'textConfig') {\n            this.setTextConfig(value);\n        }\n        else if (key === 'textContent') {\n            this.setTextContent(value);\n        }\n        else if (key === 'clipPath') {\n            this.setClipPath(value);\n        }\n        else if (key === 'extra') {\n            this.extra = this.extra || {};\n            extend(this.extra, value);\n        }\n        else {\n            this[key] = value;\n        }\n    };\n    Element.prototype.hide = function () {\n        this.ignore = true;\n        this.markRedraw();\n    };\n    Element.prototype.show = function () {\n        this.ignore = false;\n        this.markRedraw();\n    };\n    Element.prototype.attr = function (keyOrObj, value) {\n        if (typeof keyOrObj === 'string') {\n            this.attrKV(keyOrObj, value);\n        }\n        else if (isObject(keyOrObj)) {\n            var obj = keyOrObj;\n            var keysArr = keys(obj);\n            for (var i = 0; i < keysArr.length; i++) {\n                var key = keysArr[i];\n                this.attrKV(key, keyOrObj[key]);\n            }\n        }\n        this.markRedraw();\n        return this;\n    };\n    Element.prototype.saveCurrentToNormalState = function (toState) {\n        this._innerSaveToNormal(toState);\n        var normalState = this._normalState;\n        for (var i = 0; i < this.animators.length; i++) {\n            var animator = this.animators[i];\n            var fromStateTransition = animator.__fromStateTransition;\n            if (fromStateTransition && fromStateTransition !== PRESERVED_NORMAL_STATE) {\n                continue;\n            }\n            var targetName = animator.targetName;\n            var target = targetName\n                ? normalState[targetName] : normalState;\n            animator.saveFinalToTarget(target);\n        }\n    };\n    Element.prototype._innerSaveToNormal = function (toState) {\n        var normalState = this._normalState;\n        if (!normalState) {\n            normalState = this._normalState = {};\n        }\n        if (toState.textConfig && !normalState.textConfig) {\n            normalState.textConfig = this.textConfig;\n        }\n        this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS);\n    };\n    Element.prototype._savePrimaryToNormal = function (toState, normalState, primaryKeys) {\n        for (var i = 0; i < primaryKeys.length; i++) {\n            var key = primaryKeys[i];\n            if (toState[key] != null && !(key in normalState)) {\n                normalState[key] = this[key];\n            }\n        }\n    };\n    Element.prototype.hasState = function () {\n        return this.currentStates.length > 0;\n    };\n    Element.prototype.getState = function (name) {\n        return this.states[name];\n    };\n    Element.prototype.ensureState = function (name) {\n        var states = this.states;\n        if (!states[name]) {\n            states[name] = {};\n        }\n        return states[name];\n    };\n    Element.prototype.clearStates = function (noAnimation) {\n        this.useState(PRESERVED_NORMAL_STATE, false, noAnimation);\n    };\n    Element.prototype.useState = function (stateName, keepCurrentStates, noAnimation) {\n        var toNormalState = stateName === PRESERVED_NORMAL_STATE;\n        var hasStates = this.hasState();\n        if (!hasStates && toNormalState) {\n            return;\n        }\n        var currentStates = this.currentStates;\n        var animationCfg = this.stateTransition;\n        if (indexOf(currentStates, stateName) >= 0 && (keepCurrentStates || currentStates.length === 1)) {\n            return;\n        }\n        var state;\n        if (this.stateProxy && !toNormalState) {\n            state = this.stateProxy(stateName);\n        }\n        if (!state) {\n            state = (this.states && this.states[stateName]);\n        }\n        if (!state && !toNormalState) {\n            logError(\"State \" + stateName + \" not exists.\");\n            return;\n        }\n        if (!toNormalState) {\n            this.saveCurrentToNormalState(state);\n        }\n        var useHoverLayer = !!(state && state.hoverLayer);\n        if (useHoverLayer) {\n            this._toggleHoverLayerFlag(true);\n        }\n        this._applyStateObj(stateName, state, this._normalState, keepCurrentStates, !noAnimation && !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\n        if (this._textContent) {\n            this._textContent.useState(stateName, keepCurrentStates);\n        }\n        if (this._textGuide) {\n            this._textGuide.useState(stateName, keepCurrentStates);\n        }\n        if (toNormalState) {\n            this.currentStates = [];\n            this._normalState = {};\n        }\n        else {\n            if (!keepCurrentStates) {\n                this.currentStates = [stateName];\n            }\n            else {\n                this.currentStates.push(stateName);\n            }\n        }\n        this._updateAnimationTargets();\n        this.markRedraw();\n        if (!useHoverLayer && this.__inHover) {\n            this._toggleHoverLayerFlag(false);\n            this.__dirty &= ~Element.REDARAW_BIT;\n        }\n        return state;\n    };\n    Element.prototype.useStates = function (states, noAnimation) {\n        if (!states.length) {\n            this.clearStates();\n        }\n        else {\n            var stateObjects = [];\n            var currentStates = this.currentStates;\n            var len = states.length;\n            var notChange = len === currentStates.length;\n            if (notChange) {\n                for (var i = 0; i < len; i++) {\n                    if (states[i] !== currentStates[i]) {\n                        notChange = false;\n                        break;\n                    }\n                }\n            }\n            if (notChange) {\n                return;\n            }\n            for (var i = 0; i < len; i++) {\n                var stateName = states[i];\n                var stateObj = void 0;\n                if (this.stateProxy) {\n                    stateObj = this.stateProxy(stateName, states);\n                }\n                if (!stateObj) {\n                    stateObj = this.states[stateName];\n                }\n                if (stateObj) {\n                    stateObjects.push(stateObj);\n                }\n            }\n            var useHoverLayer = !!(stateObjects[len - 1] && stateObjects[len - 1].hoverLayer);\n            if (useHoverLayer) {\n                this._toggleHoverLayerFlag(true);\n            }\n            var mergedState = this._mergeStates(stateObjects);\n            var animationCfg = this.stateTransition;\n            this.saveCurrentToNormalState(mergedState);\n            this._applyStateObj(states.join(','), mergedState, this._normalState, false, !noAnimation && !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\n            if (this._textContent) {\n                this._textContent.useStates(states);\n            }\n            if (this._textGuide) {\n                this._textGuide.useStates(states);\n            }\n            this._updateAnimationTargets();\n            this.currentStates = states.slice();\n            this.markRedraw();\n            if (!useHoverLayer && this.__inHover) {\n                this._toggleHoverLayerFlag(false);\n                this.__dirty &= ~Element.REDARAW_BIT;\n            }\n        }\n    };\n    Element.prototype._updateAnimationTargets = function () {\n        for (var i = 0; i < this.animators.length; i++) {\n            var animator = this.animators[i];\n            if (animator.targetName) {\n                animator.changeTarget(this[animator.targetName]);\n            }\n        }\n    };\n    Element.prototype.removeState = function (state) {\n        var idx = indexOf(this.currentStates, state);\n        if (idx >= 0) {\n            var currentStates = this.currentStates.slice();\n            currentStates.splice(idx, 1);\n            this.useStates(currentStates);\n        }\n    };\n    Element.prototype.replaceState = function (oldState, newState, forceAdd) {\n        var currentStates = this.currentStates.slice();\n        var idx = indexOf(currentStates, oldState);\n        var newStateExists = indexOf(currentStates, newState) >= 0;\n        if (idx >= 0) {\n            if (!newStateExists) {\n                currentStates[idx] = newState;\n            }\n            else {\n                currentStates.splice(idx, 1);\n            }\n        }\n        else if (forceAdd && !newStateExists) {\n            currentStates.push(newState);\n        }\n        this.useStates(currentStates);\n    };\n    Element.prototype.toggleState = function (state, enable) {\n        if (enable) {\n            this.useState(state, true);\n        }\n        else {\n            this.removeState(state);\n        }\n    };\n    Element.prototype._mergeStates = function (states) {\n        var mergedState = {};\n        var mergedTextConfig;\n        for (var i = 0; i < states.length; i++) {\n            var state = states[i];\n            extend(mergedState, state);\n            if (state.textConfig) {\n                mergedTextConfig = mergedTextConfig || {};\n                extend(mergedTextConfig, state.textConfig);\n            }\n        }\n        if (mergedTextConfig) {\n            mergedState.textConfig = mergedTextConfig;\n        }\n        return mergedState;\n    };\n    Element.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\n        var needsRestoreToNormal = !(state && keepCurrentStates);\n        if (state && state.textConfig) {\n            this.textConfig = extend({}, keepCurrentStates ? this.textConfig : normalState.textConfig);\n            extend(this.textConfig, state.textConfig);\n        }\n        else if (needsRestoreToNormal) {\n            if (normalState.textConfig) {\n                this.textConfig = normalState.textConfig;\n            }\n        }\n        var transitionTarget = {};\n        var hasTransition = false;\n        for (var i = 0; i < PRIMARY_STATES_KEYS.length; i++) {\n            var key = PRIMARY_STATES_KEYS[i];\n            var propNeedsTransition = transition && DEFAULT_ANIMATABLE_MAP[key];\n            if (state && state[key] != null) {\n                if (propNeedsTransition) {\n                    hasTransition = true;\n                    transitionTarget[key] = state[key];\n                }\n                else {\n                    this[key] = state[key];\n                }\n            }\n            else if (needsRestoreToNormal) {\n                if (normalState[key] != null) {\n                    if (propNeedsTransition) {\n                        hasTransition = true;\n                        transitionTarget[key] = normalState[key];\n                    }\n                    else {\n                        this[key] = normalState[key];\n                    }\n                }\n            }\n        }\n        if (!transition) {\n            for (var i = 0; i < this.animators.length; i++) {\n                var animator = this.animators[i];\n                var targetName = animator.targetName;\n                animator.__changeFinalValue(targetName\n                    ? (state || normalState)[targetName]\n                    : (state || normalState));\n            }\n        }\n        if (hasTransition) {\n            this._transitionState(stateName, transitionTarget, animationCfg);\n        }\n    };\n    Element.prototype._attachComponent = function (componentEl) {\n        if (componentEl.__zr && !componentEl.__hostTarget) {\n            throw new Error('Text element has been added to zrender.');\n        }\n        if (componentEl === this) {\n            throw new Error('Recursive component attachment.');\n        }\n        var zr = this.__zr;\n        if (zr) {\n            componentEl.addSelfToZr(zr);\n        }\n        componentEl.__zr = zr;\n        componentEl.__hostTarget = this;\n    };\n    Element.prototype._detachComponent = function (componentEl) {\n        if (componentEl.__zr) {\n            componentEl.removeSelfFromZr(componentEl.__zr);\n        }\n        componentEl.__zr = null;\n        componentEl.__hostTarget = null;\n    };\n    Element.prototype.getClipPath = function () {\n        return this._clipPath;\n    };\n    Element.prototype.setClipPath = function (clipPath) {\n        if (this._clipPath && this._clipPath !== clipPath) {\n            this.removeClipPath();\n        }\n        this._attachComponent(clipPath);\n        this._clipPath = clipPath;\n        this.markRedraw();\n    };\n    Element.prototype.removeClipPath = function () {\n        var clipPath = this._clipPath;\n        if (clipPath) {\n            this._detachComponent(clipPath);\n            this._clipPath = null;\n            this.markRedraw();\n        }\n    };\n    Element.prototype.getTextContent = function () {\n        return this._textContent;\n    };\n    Element.prototype.setTextContent = function (textEl) {\n        var previousTextContent = this._textContent;\n        if (previousTextContent === textEl) {\n            return;\n        }\n        if (previousTextContent && previousTextContent !== textEl) {\n            this.removeTextContent();\n        }\n        if (textEl.__zr && !textEl.__hostTarget) {\n            throw new Error('Text element has been added to zrender.');\n        }\n        textEl.attachedTransform = new Transformable();\n        this._attachComponent(textEl);\n        this._textContent = textEl;\n        this.markRedraw();\n    };\n    Element.prototype.setTextConfig = function (cfg) {\n        if (!this.textConfig) {\n            this.textConfig = {};\n        }\n        extend(this.textConfig, cfg);\n        this.markRedraw();\n    };\n    Element.prototype.removeTextContent = function () {\n        var textEl = this._textContent;\n        if (textEl) {\n            textEl.attachedTransform = null;\n            this._detachComponent(textEl);\n            this._textContent = null;\n            this._innerTextDefaultStyle = null;\n            this.markRedraw();\n        }\n    };\n    Element.prototype.getTextGuideLine = function () {\n        return this._textGuide;\n    };\n    Element.prototype.setTextGuideLine = function (guideLine) {\n        if (this._textGuide && this._textGuide !== guideLine) {\n            this.removeTextGuideLine();\n        }\n        this._attachComponent(guideLine);\n        this._textGuide = guideLine;\n        this.markRedraw();\n    };\n    Element.prototype.removeTextGuideLine = function () {\n        var textGuide = this._textGuide;\n        if (textGuide) {\n            this._detachComponent(textGuide);\n            this._textGuide = null;\n            this.markRedraw();\n        }\n    };\n    Element.prototype.markRedraw = function () {\n        this.__dirty |= Element.REDARAW_BIT;\n        var zr = this.__zr;\n        if (zr) {\n            if (this.__inHover) {\n                zr.refreshHover();\n            }\n            else {\n                zr.refresh();\n            }\n        }\n        if (this.__hostTarget) {\n            this.__hostTarget.markRedraw();\n        }\n    };\n    Element.prototype.dirty = function () {\n        this.markRedraw();\n    };\n    Element.prototype._toggleHoverLayerFlag = function (inHover) {\n        this.__inHover = inHover;\n        var textContent = this._textContent;\n        var textGuide = this._textGuide;\n        if (textContent) {\n            textContent.__inHover = inHover;\n        }\n        if (textGuide) {\n            textGuide.__inHover = inHover;\n        }\n    };\n    Element.prototype.addSelfToZr = function (zr) {\n        this.__zr = zr;\n        var animators = this.animators;\n        if (animators) {\n            for (var i = 0; i < animators.length; i++) {\n                zr.animation.addAnimator(animators[i]);\n            }\n        }\n        if (this._clipPath) {\n            this._clipPath.addSelfToZr(zr);\n        }\n        if (this._textContent) {\n            this._textContent.addSelfToZr(zr);\n        }\n        if (this._textGuide) {\n            this._textGuide.addSelfToZr(zr);\n        }\n    };\n    Element.prototype.removeSelfFromZr = function (zr) {\n        this.__zr = null;\n        var animators = this.animators;\n        if (animators) {\n            for (var i = 0; i < animators.length; i++) {\n                zr.animation.removeAnimator(animators[i]);\n            }\n        }\n        if (this._clipPath) {\n            this._clipPath.removeSelfFromZr(zr);\n        }\n        if (this._textContent) {\n            this._textContent.removeSelfFromZr(zr);\n        }\n        if (this._textGuide) {\n            this._textGuide.removeSelfFromZr(zr);\n        }\n    };\n    Element.prototype.animate = function (key, loop) {\n        var target = key ? this[key] : this;\n        if (!target) {\n            logError('Property \"'\n                + key\n                + '\" is not existed in element '\n                + this.id);\n            return;\n        }\n        var animator = new Animator(target, loop);\n        this.addAnimator(animator, key);\n        return animator;\n    };\n    Element.prototype.addAnimator = function (animator, key) {\n        var zr = this.__zr;\n        var el = this;\n        animator.during(function () {\n            el.updateDuringAnimation(key);\n        }).done(function () {\n            var animators = el.animators;\n            var idx = indexOf(animators, animator);\n            if (idx >= 0) {\n                animators.splice(idx, 1);\n            }\n        });\n        this.animators.push(animator);\n        if (zr) {\n            zr.animation.addAnimator(animator);\n        }\n        zr && zr.wakeUp();\n    };\n    Element.prototype.updateDuringAnimation = function (key) {\n        this.markRedraw();\n    };\n    Element.prototype.stopAnimation = function (scope, forwardToLast) {\n        var animators = this.animators;\n        var len = animators.length;\n        var leftAnimators = [];\n        for (var i = 0; i < len; i++) {\n            var animator = animators[i];\n            if (!scope || scope === animator.scope) {\n                animator.stop(forwardToLast);\n            }\n            else {\n                leftAnimators.push(animator);\n            }\n        }\n        this.animators = leftAnimators;\n        return this;\n    };\n    Element.prototype.animateTo = function (target, cfg, animationProps) {\n        animateTo(this, target, cfg, animationProps);\n    };\n    Element.prototype.animateFrom = function (target, cfg, animationProps) {\n        animateTo(this, target, cfg, animationProps, true);\n    };\n    Element.prototype._transitionState = function (stateName, target, cfg, animationProps) {\n        var animators = animateTo(this, target, cfg, animationProps);\n        for (var i = 0; i < animators.length; i++) {\n            animators[i].__fromStateTransition = stateName;\n        }\n    };\n    Element.prototype.getBoundingRect = function () {\n        return null;\n    };\n    Element.prototype.getPaintRect = function () {\n        return null;\n    };\n    Element.REDARAW_BIT = 1;\n    Element.initDefaultProps = (function () {\n        var elProto = Element.prototype;\n        elProto.type = 'element';\n        elProto.name = '';\n        elProto.ignore = false;\n        elProto.silent = false;\n        elProto.isGroup = false;\n        elProto.draggable = false;\n        elProto.dragging = false;\n        elProto.ignoreClip = false;\n        elProto.__inHover = false;\n        elProto.__dirty = Element.REDARAW_BIT;\n        var logs = {};\n        function logDeprecatedError(key, xKey, yKey) {\n            if (!logs[key + xKey + yKey]) {\n                console.warn(\"DEPRECATED: '\" + key + \"' has been deprecated. use '\" + xKey + \"', '\" + yKey + \"' instead\");\n                logs[key + xKey + yKey] = true;\n            }\n        }\n        function createLegacyProperty(key, privateKey, xKey, yKey) {\n            Object.defineProperty(elProto, key, {\n                get: function () {\n                    logDeprecatedError(key, xKey, yKey);\n                    if (!this[privateKey]) {\n                        var pos = this[privateKey] = [];\n                        enhanceArray(this, pos);\n                    }\n                    return this[privateKey];\n                },\n                set: function (pos) {\n                    logDeprecatedError(key, xKey, yKey);\n                    this[xKey] = pos[0];\n                    this[yKey] = pos[1];\n                    this[privateKey] = pos;\n                    enhanceArray(this, pos);\n                }\n            });\n            function enhanceArray(self, pos) {\n                Object.defineProperty(pos, 0, {\n                    get: function () {\n                        return self[xKey];\n                    },\n                    set: function (val) {\n                        self[xKey] = val;\n                    }\n                });\n                Object.defineProperty(pos, 1, {\n                    get: function () {\n                        return self[yKey];\n                    },\n                    set: function (val) {\n                        self[yKey] = val;\n                    }\n                });\n            }\n        }\n        if (Object.defineProperty && (!env.browser.ie || env.browser.version > 8)) {\n            createLegacyProperty('position', '_legacyPos', 'x', 'y');\n            createLegacyProperty('scale', '_legacyScale', 'scaleX', 'scaleY');\n            createLegacyProperty('origin', '_legacyOrigin', 'originX', 'originY');\n        }\n    })();\n    return Element;\n}());\nmixin(Element, Eventful);\nmixin(Element, Transformable);\nfunction animateTo(animatable, target, cfg, animationProps, reverse) {\n    cfg = cfg || {};\n    var animators = [];\n    animateToShallow(animatable, '', animatable, target, cfg, animationProps, animators, reverse);\n    var finishCount = animators.length;\n    var doneHappened = false;\n    var cfgDone = cfg.done;\n    var cfgAborted = cfg.aborted;\n    var doneCb = function () {\n        doneHappened = true;\n        finishCount--;\n        if (finishCount <= 0) {\n            doneHappened\n                ? (cfgDone && cfgDone())\n                : (cfgAborted && cfgAborted());\n        }\n    };\n    var abortedCb = function () {\n        finishCount--;\n        if (finishCount <= 0) {\n            doneHappened\n                ? (cfgDone && cfgDone())\n                : (cfgAborted && cfgAborted());\n        }\n    };\n    if (!finishCount) {\n        cfgDone && cfgDone();\n    }\n    if (animators.length > 0 && cfg.during) {\n        animators[0].during(function (target, percent) {\n            cfg.during(percent);\n        });\n    }\n    for (var i = 0; i < animators.length; i++) {\n        var animator = animators[i];\n        if (doneCb) {\n            animator.done(doneCb);\n        }\n        if (abortedCb) {\n            animator.aborted(abortedCb);\n        }\n        animator.start(cfg.easing, cfg.force);\n    }\n    return animators;\n}\nfunction copyArrShallow(source, target, len) {\n    for (var i = 0; i < len; i++) {\n        source[i] = target[i];\n    }\n}\nfunction is2DArray(value) {\n    return isArrayLike(value[0]);\n}\nfunction copyValue(target, source, key) {\n    if (isArrayLike(source[key])) {\n        if (!isArrayLike(target[key])) {\n            target[key] = [];\n        }\n        if (isTypedArray(source[key])) {\n            var len = source[key].length;\n            if (target[key].length !== len) {\n                target[key] = new (source[key].constructor)(len);\n                copyArrShallow(target[key], source[key], len);\n            }\n        }\n        else {\n            var sourceArr = source[key];\n            var targetArr = target[key];\n            var len0 = sourceArr.length;\n            if (is2DArray(sourceArr)) {\n                var len1 = sourceArr[0].length;\n                for (var i = 0; i < len0; i++) {\n                    if (!targetArr[i]) {\n                        targetArr[i] = Array.prototype.slice.call(sourceArr[i]);\n                    }\n                    else {\n                        copyArrShallow(targetArr[i], sourceArr[i], len1);\n                    }\n                }\n            }\n            else {\n                copyArrShallow(targetArr, sourceArr, len0);\n            }\n            targetArr.length = sourceArr.length;\n        }\n    }\n    else {\n        target[key] = source[key];\n    }\n}\nfunction animateToShallow(animatable, topKey, source, target, cfg, animationProps, animators, reverse) {\n    var animatableKeys = [];\n    var changedKeys = [];\n    var targetKeys = keys(target);\n    var duration = cfg.duration;\n    var delay = cfg.delay;\n    var additive = cfg.additive;\n    var setToFinal = cfg.setToFinal;\n    var animateAll = !isObject(animationProps);\n    for (var k = 0; k < targetKeys.length; k++) {\n        var innerKey = targetKeys[k];\n        if (source[innerKey] != null\n            && target[innerKey] != null\n            && (animateAll || animationProps[innerKey])) {\n            if (isObject(target[innerKey]) && !isArrayLike(target[innerKey])) {\n                if (topKey) {\n                    if (!reverse) {\n                        source[innerKey] = target[innerKey];\n                        animatable.updateDuringAnimation(topKey);\n                    }\n                    continue;\n                }\n                animateToShallow(animatable, innerKey, source[innerKey], target[innerKey], cfg, animationProps && animationProps[innerKey], animators, reverse);\n            }\n            else {\n                animatableKeys.push(innerKey);\n                changedKeys.push(innerKey);\n            }\n        }\n        else if (!reverse) {\n            source[innerKey] = target[innerKey];\n            animatable.updateDuringAnimation(topKey);\n            changedKeys.push(innerKey);\n        }\n    }\n    var keyLen = animatableKeys.length;\n    if (keyLen > 0\n        || (cfg.force && !animators.length)) {\n        var existsAnimators = animatable.animators;\n        var existsAnimatorsOnSameTarget = [];\n        for (var i = 0; i < existsAnimators.length; i++) {\n            if (existsAnimators[i].targetName === topKey) {\n                existsAnimatorsOnSameTarget.push(existsAnimators[i]);\n            }\n        }\n        if (!additive && existsAnimatorsOnSameTarget.length) {\n            for (var i = 0; i < existsAnimatorsOnSameTarget.length; i++) {\n                var allAborted = existsAnimatorsOnSameTarget[i].stopTracks(changedKeys);\n                if (allAborted) {\n                    var idx = indexOf(existsAnimators, existsAnimatorsOnSameTarget[i]);\n                    existsAnimators.splice(idx, 1);\n                }\n            }\n        }\n        var revertedSource = void 0;\n        var reversedTarget = void 0;\n        var sourceClone = void 0;\n        if (reverse) {\n            reversedTarget = {};\n            if (setToFinal) {\n                revertedSource = {};\n            }\n            for (var i = 0; i < keyLen; i++) {\n                var innerKey = animatableKeys[i];\n                reversedTarget[innerKey] = source[innerKey];\n                if (setToFinal) {\n                    revertedSource[innerKey] = target[innerKey];\n                }\n                else {\n                    source[innerKey] = target[innerKey];\n                }\n            }\n        }\n        else if (setToFinal) {\n            sourceClone = {};\n            for (var i = 0; i < keyLen; i++) {\n                var innerKey = animatableKeys[i];\n                sourceClone[innerKey] = cloneValue(source[innerKey]);\n                copyValue(source, target, innerKey);\n            }\n        }\n        var animator = new Animator(source, false, additive ? existsAnimatorsOnSameTarget : null);\n        animator.targetName = topKey;\n        if (cfg.scope) {\n            animator.scope = cfg.scope;\n        }\n        if (setToFinal && revertedSource) {\n            animator.whenWithKeys(0, revertedSource, animatableKeys);\n        }\n        if (sourceClone) {\n            animator.whenWithKeys(0, sourceClone, animatableKeys);\n        }\n        animator.whenWithKeys(duration == null ? 500 : duration, reverse ? reversedTarget : target, animatableKeys).delay(delay || 0);\n        animatable.addAnimator(animator, topKey);\n        animators.push(animator);\n    }\n}\nexport default Element;\n","var DEFAULT_MIN_MERGE = 32;\nvar DEFAULT_MIN_GALLOPING = 7;\nvar DEFAULT_TMP_STORAGE_LENGTH = 256;\nfunction minRunLength(n) {\n    var r = 0;\n    while (n >= DEFAULT_MIN_MERGE) {\n        r |= n & 1;\n        n >>= 1;\n    }\n    return n + r;\n}\nfunction makeAscendingRun(array, lo, hi, compare) {\n    var runHi = lo + 1;\n    if (runHi === hi) {\n        return 1;\n    }\n    if (compare(array[runHi++], array[lo]) < 0) {\n        while (runHi < hi && compare(array[runHi], array[runHi - 1]) < 0) {\n            runHi++;\n        }\n        reverseRun(array, lo, runHi);\n    }\n    else {\n        while (runHi < hi && compare(array[runHi], array[runHi - 1]) >= 0) {\n            runHi++;\n        }\n    }\n    return runHi - lo;\n}\nfunction reverseRun(array, lo, hi) {\n    hi--;\n    while (lo < hi) {\n        var t = array[lo];\n        array[lo++] = array[hi];\n        array[hi--] = t;\n    }\n}\nfunction binaryInsertionSort(array, lo, hi, start, compare) {\n    if (start === lo) {\n        start++;\n    }\n    for (; start < hi; start++) {\n        var pivot = array[start];\n        var left = lo;\n        var right = start;\n        var mid;\n        while (left < right) {\n            mid = left + right >>> 1;\n            if (compare(pivot, array[mid]) < 0) {\n                right = mid;\n            }\n            else {\n                left = mid + 1;\n            }\n        }\n        var n = start - left;\n        switch (n) {\n            case 3:\n                array[left + 3] = array[left + 2];\n            case 2:\n                array[left + 2] = array[left + 1];\n            case 1:\n                array[left + 1] = array[left];\n                break;\n            default:\n                while (n > 0) {\n                    array[left + n] = array[left + n - 1];\n                    n--;\n                }\n        }\n        array[left] = pivot;\n    }\n}\nfunction gallopLeft(value, array, start, length, hint, compare) {\n    var lastOffset = 0;\n    var maxOffset = 0;\n    var offset = 1;\n    if (compare(value, array[start + hint]) > 0) {\n        maxOffset = length - hint;\n        while (offset < maxOffset && compare(value, array[start + hint + offset]) > 0) {\n            lastOffset = offset;\n            offset = (offset << 1) + 1;\n            if (offset <= 0) {\n                offset = maxOffset;\n            }\n        }\n        if (offset > maxOffset) {\n            offset = maxOffset;\n        }\n        lastOffset += hint;\n        offset += hint;\n    }\n    else {\n        maxOffset = hint + 1;\n        while (offset < maxOffset && compare(value, array[start + hint - offset]) <= 0) {\n            lastOffset = offset;\n            offset = (offset << 1) + 1;\n            if (offset <= 0) {\n                offset = maxOffset;\n            }\n        }\n        if (offset > maxOffset) {\n            offset = maxOffset;\n        }\n        var tmp = lastOffset;\n        lastOffset = hint - offset;\n        offset = hint - tmp;\n    }\n    lastOffset++;\n    while (lastOffset < offset) {\n        var m = lastOffset + (offset - lastOffset >>> 1);\n        if (compare(value, array[start + m]) > 0) {\n            lastOffset = m + 1;\n        }\n        else {\n            offset = m;\n        }\n    }\n    return offset;\n}\nfunction gallopRight(value, array, start, length, hint, compare) {\n    var lastOffset = 0;\n    var maxOffset = 0;\n    var offset = 1;\n    if (compare(value, array[start + hint]) < 0) {\n        maxOffset = hint + 1;\n        while (offset < maxOffset && compare(value, array[start + hint - offset]) < 0) {\n            lastOffset = offset;\n            offset = (offset << 1) + 1;\n            if (offset <= 0) {\n                offset = maxOffset;\n            }\n        }\n        if (offset > maxOffset) {\n            offset = maxOffset;\n        }\n        var tmp = lastOffset;\n        lastOffset = hint - offset;\n        offset = hint - tmp;\n    }\n    else {\n        maxOffset = length - hint;\n        while (offset < maxOffset && compare(value, array[start + hint + offset]) >= 0) {\n            lastOffset = offset;\n            offset = (offset << 1) + 1;\n            if (offset <= 0) {\n                offset = maxOffset;\n            }\n        }\n        if (offset > maxOffset) {\n            offset = maxOffset;\n        }\n        lastOffset += hint;\n        offset += hint;\n    }\n    lastOffset++;\n    while (lastOffset < offset) {\n        var m = lastOffset + (offset - lastOffset >>> 1);\n        if (compare(value, array[start + m]) < 0) {\n            offset = m;\n        }\n        else {\n            lastOffset = m + 1;\n        }\n    }\n    return offset;\n}\nfunction TimSort(array, compare) {\n    var minGallop = DEFAULT_MIN_GALLOPING;\n    var length = 0;\n    var tmpStorageLength = DEFAULT_TMP_STORAGE_LENGTH;\n    var stackLength = 0;\n    var runStart;\n    var runLength;\n    var stackSize = 0;\n    length = array.length;\n    if (length < 2 * DEFAULT_TMP_STORAGE_LENGTH) {\n        tmpStorageLength = length >>> 1;\n    }\n    var tmp = [];\n    stackLength = length < 120 ? 5 : length < 1542 ? 10 : length < 119151 ? 19 : 40;\n    runStart = [];\n    runLength = [];\n    function pushRun(_runStart, _runLength) {\n        runStart[stackSize] = _runStart;\n        runLength[stackSize] = _runLength;\n        stackSize += 1;\n    }\n    function mergeRuns() {\n        while (stackSize > 1) {\n            var n = stackSize - 2;\n            if ((n >= 1 && runLength[n - 1] <= runLength[n] + runLength[n + 1])\n                || (n >= 2 && runLength[n - 2] <= runLength[n] + runLength[n - 1])) {\n                if (runLength[n - 1] < runLength[n + 1]) {\n                    n--;\n                }\n            }\n            else if (runLength[n] > runLength[n + 1]) {\n                break;\n            }\n            mergeAt(n);\n        }\n    }\n    function forceMergeRuns() {\n        while (stackSize > 1) {\n            var n = stackSize - 2;\n            if (n > 0 && runLength[n - 1] < runLength[n + 1]) {\n                n--;\n            }\n            mergeAt(n);\n        }\n    }\n    function mergeAt(i) {\n        var start1 = runStart[i];\n        var length1 = runLength[i];\n        var start2 = runStart[i + 1];\n        var length2 = runLength[i + 1];\n        runLength[i] = length1 + length2;\n        if (i === stackSize - 3) {\n            runStart[i + 1] = runStart[i + 2];\n            runLength[i + 1] = runLength[i + 2];\n        }\n        stackSize--;\n        var k = gallopRight(array[start2], array, start1, length1, 0, compare);\n        start1 += k;\n        length1 -= k;\n        if (length1 === 0) {\n            return;\n        }\n        length2 = gallopLeft(array[start1 + length1 - 1], array, start2, length2, length2 - 1, compare);\n        if (length2 === 0) {\n            return;\n        }\n        if (length1 <= length2) {\n            mergeLow(start1, length1, start2, length2);\n        }\n        else {\n            mergeHigh(start1, length1, start2, length2);\n        }\n    }\n    function mergeLow(start1, length1, start2, length2) {\n        var i = 0;\n        for (i = 0; i < length1; i++) {\n            tmp[i] = array[start1 + i];\n        }\n        var cursor1 = 0;\n        var cursor2 = start2;\n        var dest = start1;\n        array[dest++] = array[cursor2++];\n        if (--length2 === 0) {\n            for (i = 0; i < length1; i++) {\n                array[dest + i] = tmp[cursor1 + i];\n            }\n            return;\n        }\n        if (length1 === 1) {\n            for (i = 0; i < length2; i++) {\n                array[dest + i] = array[cursor2 + i];\n            }\n            array[dest + length2] = tmp[cursor1];\n            return;\n        }\n        var _minGallop = minGallop;\n        var count1;\n        var count2;\n        var exit;\n        while (1) {\n            count1 = 0;\n            count2 = 0;\n            exit = false;\n            do {\n                if (compare(array[cursor2], tmp[cursor1]) < 0) {\n                    array[dest++] = array[cursor2++];\n                    count2++;\n                    count1 = 0;\n                    if (--length2 === 0) {\n                        exit = true;\n                        break;\n                    }\n                }\n                else {\n                    array[dest++] = tmp[cursor1++];\n                    count1++;\n                    count2 = 0;\n                    if (--length1 === 1) {\n                        exit = true;\n                        break;\n                    }\n                }\n            } while ((count1 | count2) < _minGallop);\n            if (exit) {\n                break;\n            }\n            do {\n                count1 = gallopRight(array[cursor2], tmp, cursor1, length1, 0, compare);\n                if (count1 !== 0) {\n                    for (i = 0; i < count1; i++) {\n                        array[dest + i] = tmp[cursor1 + i];\n                    }\n                    dest += count1;\n                    cursor1 += count1;\n                    length1 -= count1;\n                    if (length1 <= 1) {\n                        exit = true;\n                        break;\n                    }\n                }\n                array[dest++] = array[cursor2++];\n                if (--length2 === 0) {\n                    exit = true;\n                    break;\n                }\n                count2 = gallopLeft(tmp[cursor1], array, cursor2, length2, 0, compare);\n                if (count2 !== 0) {\n                    for (i = 0; i < count2; i++) {\n                        array[dest + i] = array[cursor2 + i];\n                    }\n                    dest += count2;\n                    cursor2 += count2;\n                    length2 -= count2;\n                    if (length2 === 0) {\n                        exit = true;\n                        break;\n                    }\n                }\n                array[dest++] = tmp[cursor1++];\n                if (--length1 === 1) {\n                    exit = true;\n                    break;\n                }\n                _minGallop--;\n            } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\n            if (exit) {\n                break;\n            }\n            if (_minGallop < 0) {\n                _minGallop = 0;\n            }\n            _minGallop += 2;\n        }\n        minGallop = _minGallop;\n        minGallop < 1 && (minGallop = 1);\n        if (length1 === 1) {\n            for (i = 0; i < length2; i++) {\n                array[dest + i] = array[cursor2 + i];\n            }\n            array[dest + length2] = tmp[cursor1];\n        }\n        else if (length1 === 0) {\n            throw new Error();\n        }\n        else {\n            for (i = 0; i < length1; i++) {\n                array[dest + i] = tmp[cursor1 + i];\n            }\n        }\n    }\n    function mergeHigh(start1, length1, start2, length2) {\n        var i = 0;\n        for (i = 0; i < length2; i++) {\n            tmp[i] = array[start2 + i];\n        }\n        var cursor1 = start1 + length1 - 1;\n        var cursor2 = length2 - 1;\n        var dest = start2 + length2 - 1;\n        var customCursor = 0;\n        var customDest = 0;\n        array[dest--] = array[cursor1--];\n        if (--length1 === 0) {\n            customCursor = dest - (length2 - 1);\n            for (i = 0; i < length2; i++) {\n                array[customCursor + i] = tmp[i];\n            }\n            return;\n        }\n        if (length2 === 1) {\n            dest -= length1;\n            cursor1 -= length1;\n            customDest = dest + 1;\n            customCursor = cursor1 + 1;\n            for (i = length1 - 1; i >= 0; i--) {\n                array[customDest + i] = array[customCursor + i];\n            }\n            array[dest] = tmp[cursor2];\n            return;\n        }\n        var _minGallop = minGallop;\n        while (true) {\n            var count1 = 0;\n            var count2 = 0;\n            var exit = false;\n            do {\n                if (compare(tmp[cursor2], array[cursor1]) < 0) {\n                    array[dest--] = array[cursor1--];\n                    count1++;\n                    count2 = 0;\n                    if (--length1 === 0) {\n                        exit = true;\n                        break;\n                    }\n                }\n                else {\n                    array[dest--] = tmp[cursor2--];\n                    count2++;\n                    count1 = 0;\n                    if (--length2 === 1) {\n                        exit = true;\n                        break;\n                    }\n                }\n            } while ((count1 | count2) < _minGallop);\n            if (exit) {\n                break;\n            }\n            do {\n                count1 = length1 - gallopRight(tmp[cursor2], array, start1, length1, length1 - 1, compare);\n                if (count1 !== 0) {\n                    dest -= count1;\n                    cursor1 -= count1;\n                    length1 -= count1;\n                    customDest = dest + 1;\n                    customCursor = cursor1 + 1;\n                    for (i = count1 - 1; i >= 0; i--) {\n                        array[customDest + i] = array[customCursor + i];\n                    }\n                    if (length1 === 0) {\n                        exit = true;\n                        break;\n                    }\n                }\n                array[dest--] = tmp[cursor2--];\n                if (--length2 === 1) {\n                    exit = true;\n                    break;\n                }\n                count2 = length2 - gallopLeft(array[cursor1], tmp, 0, length2, length2 - 1, compare);\n                if (count2 !== 0) {\n                    dest -= count2;\n                    cursor2 -= count2;\n                    length2 -= count2;\n                    customDest = dest + 1;\n                    customCursor = cursor2 + 1;\n                    for (i = 0; i < count2; i++) {\n                        array[customDest + i] = tmp[customCursor + i];\n                    }\n                    if (length2 <= 1) {\n                        exit = true;\n                        break;\n                    }\n                }\n                array[dest--] = array[cursor1--];\n                if (--length1 === 0) {\n                    exit = true;\n                    break;\n                }\n                _minGallop--;\n            } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\n            if (exit) {\n                break;\n            }\n            if (_minGallop < 0) {\n                _minGallop = 0;\n            }\n            _minGallop += 2;\n        }\n        minGallop = _minGallop;\n        if (minGallop < 1) {\n            minGallop = 1;\n        }\n        if (length2 === 1) {\n            dest -= length1;\n            cursor1 -= length1;\n            customDest = dest + 1;\n            customCursor = cursor1 + 1;\n            for (i = length1 - 1; i >= 0; i--) {\n                array[customDest + i] = array[customCursor + i];\n            }\n            array[dest] = tmp[cursor2];\n        }\n        else if (length2 === 0) {\n            throw new Error();\n        }\n        else {\n            customCursor = dest - (length2 - 1);\n            for (i = 0; i < length2; i++) {\n                array[customCursor + i] = tmp[i];\n            }\n        }\n    }\n    return {\n        mergeRuns: mergeRuns,\n        forceMergeRuns: forceMergeRuns,\n        pushRun: pushRun\n    };\n}\nexport default function sort(array, compare, lo, hi) {\n    if (!lo) {\n        lo = 0;\n    }\n    if (!hi) {\n        hi = array.length;\n    }\n    var remaining = hi - lo;\n    if (remaining < 2) {\n        return;\n    }\n    var runLength = 0;\n    if (remaining < DEFAULT_MIN_MERGE) {\n        runLength = makeAscendingRun(array, lo, hi, compare);\n        binaryInsertionSort(array, lo, hi, lo + runLength, compare);\n        return;\n    }\n    var ts = TimSort(array, compare);\n    var minRun = minRunLength(remaining);\n    do {\n        runLength = makeAscendingRun(array, lo, hi, compare);\n        if (runLength < minRun) {\n            var force = remaining;\n            if (force > minRun) {\n                force = minRun;\n            }\n            binaryInsertionSort(array, lo, lo + force, lo + runLength, compare);\n            runLength = force;\n        }\n        ts.pushRun(lo, runLength);\n        ts.mergeRuns();\n        remaining -= runLength;\n        lo += runLength;\n    } while (remaining !== 0);\n    ts.forceMergeRuns();\n}\n","import * as util from './core/util';\nimport env from './core/env';\nimport Element from './Element';\nimport timsort from './core/timsort';\nvar invalidZErrorLogged = false;\nfunction logInvalidZError() {\n    if (invalidZErrorLogged) {\n        return;\n    }\n    invalidZErrorLogged = true;\n    console.warn('z / z2 / zlevel of displayable is invalid, which may cause unexpected errors');\n}\nfunction shapeCompareFunc(a, b) {\n    if (a.zlevel === b.zlevel) {\n        if (a.z === b.z) {\n            return a.z2 - b.z2;\n        }\n        return a.z - b.z;\n    }\n    return a.zlevel - b.zlevel;\n}\nvar Storage = (function () {\n    function Storage() {\n        this._roots = [];\n        this._displayList = [];\n        this._displayListLen = 0;\n        this.displayableSortFunc = shapeCompareFunc;\n    }\n    Storage.prototype.traverse = function (cb, context) {\n        for (var i = 0; i < this._roots.length; i++) {\n            this._roots[i].traverse(cb, context);\n        }\n    };\n    Storage.prototype.getDisplayList = function (update, includeIgnore) {\n        includeIgnore = includeIgnore || false;\n        var displayList = this._displayList;\n        if (update || !displayList.length) {\n            this.updateDisplayList(includeIgnore);\n        }\n        return displayList;\n    };\n    Storage.prototype.updateDisplayList = function (includeIgnore) {\n        this._displayListLen = 0;\n        var roots = this._roots;\n        var displayList = this._displayList;\n        for (var i = 0, len = roots.length; i < len; i++) {\n            this._updateAndAddDisplayable(roots[i], null, includeIgnore);\n        }\n        displayList.length = this._displayListLen;\n        env.canvasSupported && timsort(displayList, shapeCompareFunc);\n    };\n    Storage.prototype._updateAndAddDisplayable = function (el, clipPaths, includeIgnore) {\n        if (el.ignore && !includeIgnore) {\n            return;\n        }\n        el.beforeUpdate();\n        el.update();\n        el.afterUpdate();\n        var userSetClipPath = el.getClipPath();\n        if (el.ignoreClip) {\n            clipPaths = null;\n        }\n        else if (userSetClipPath) {\n            if (clipPaths) {\n                clipPaths = clipPaths.slice();\n            }\n            else {\n                clipPaths = [];\n            }\n            var currentClipPath = userSetClipPath;\n            var parentClipPath = el;\n            while (currentClipPath) {\n                currentClipPath.parent = parentClipPath;\n                currentClipPath.updateTransform();\n                clipPaths.push(currentClipPath);\n                parentClipPath = currentClipPath;\n                currentClipPath = currentClipPath.getClipPath();\n            }\n        }\n        if (el.childrenRef) {\n            var children = el.childrenRef();\n            for (var i = 0; i < children.length; i++) {\n                var child = children[i];\n                if (el.__dirty) {\n                    child.__dirty |= Element.REDARAW_BIT;\n                }\n                this._updateAndAddDisplayable(child, clipPaths, includeIgnore);\n            }\n            el.__dirty = 0;\n        }\n        else {\n            var disp = el;\n            if (clipPaths && clipPaths.length) {\n                disp.__clipPaths = clipPaths;\n            }\n            else if (disp.__clipPaths && disp.__clipPaths.length > 0) {\n                disp.__clipPaths = [];\n            }\n            if (isNaN(disp.z)) {\n                logInvalidZError();\n                disp.z = 0;\n            }\n            if (isNaN(disp.z2)) {\n                logInvalidZError();\n                disp.z2 = 0;\n            }\n            if (isNaN(disp.zlevel)) {\n                logInvalidZError();\n                disp.zlevel = 0;\n            }\n            this._displayList[this._displayListLen++] = disp;\n        }\n        var decalEl = el.getDecalElement && el.getDecalElement();\n        if (decalEl) {\n            this._updateAndAddDisplayable(decalEl, clipPaths, includeIgnore);\n        }\n        var textGuide = el.getTextGuideLine();\n        if (textGuide) {\n            this._updateAndAddDisplayable(textGuide, clipPaths, includeIgnore);\n        }\n        var textEl = el.getTextContent();\n        if (textEl) {\n            this._updateAndAddDisplayable(textEl, clipPaths, includeIgnore);\n        }\n    };\n    Storage.prototype.addRoot = function (el) {\n        if (el.__zr && el.__zr.storage === this) {\n            return;\n        }\n        this._roots.push(el);\n    };\n    Storage.prototype.delRoot = function (el) {\n        if (el instanceof Array) {\n            for (var i = 0, l = el.length; i < l; i++) {\n                this.delRoot(el[i]);\n            }\n            return;\n        }\n        var idx = util.indexOf(this._roots, el);\n        if (idx >= 0) {\n            this._roots.splice(idx, 1);\n        }\n    };\n    Storage.prototype.delAllRoots = function () {\n        this._roots = [];\n        this._displayList = [];\n        this._displayListLen = 0;\n        return;\n    };\n    Storage.prototype.getRoots = function () {\n        return this._roots;\n    };\n    Storage.prototype.dispose = function () {\n        this._displayList = null;\n        this._roots = null;\n    };\n    return Storage;\n}());\nexport default Storage;\n","var requestAnimationFrame;\nrequestAnimationFrame = (typeof window !== 'undefined'\n    && ((window.requestAnimationFrame && window.requestAnimationFrame.bind(window))\n        || (window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window))\n        || window.mozRequestAnimationFrame\n        || window.webkitRequestAnimationFrame)) || function (func) {\n    return setTimeout(func, 16);\n};\nexport default requestAnimationFrame;\n","import { __extends } from \"tslib\";\nimport Eventful from '../core/Eventful';\nimport requestAnimationFrame from './requestAnimationFrame';\nimport Animator from './Animator';\nvar Animation = (function (_super) {\n    __extends(Animation, _super);\n    function Animation(opts) {\n        var _this = _super.call(this) || this;\n        _this._running = false;\n        _this._time = 0;\n        _this._pausedTime = 0;\n        _this._pauseStart = 0;\n        _this._paused = false;\n        opts = opts || {};\n        _this.stage = opts.stage || {};\n        _this.onframe = opts.onframe || function () { };\n        return _this;\n    }\n    Animation.prototype.addClip = function (clip) {\n        if (clip.animation) {\n            this.removeClip(clip);\n        }\n        if (!this._clipsHead) {\n            this._clipsHead = this._clipsTail = clip;\n        }\n        else {\n            this._clipsTail.next = clip;\n            clip.prev = this._clipsTail;\n            clip.next = null;\n            this._clipsTail = clip;\n        }\n        clip.animation = this;\n    };\n    Animation.prototype.addAnimator = function (animator) {\n        animator.animation = this;\n        var clip = animator.getClip();\n        if (clip) {\n            this.addClip(clip);\n        }\n    };\n    Animation.prototype.removeClip = function (clip) {\n        if (!clip.animation) {\n            return;\n        }\n        var prev = clip.prev;\n        var next = clip.next;\n        if (prev) {\n            prev.next = next;\n        }\n        else {\n            this._clipsHead = next;\n        }\n        if (next) {\n            next.prev = prev;\n        }\n        else {\n            this._clipsTail = prev;\n        }\n        clip.next = clip.prev = clip.animation = null;\n    };\n    Animation.prototype.removeAnimator = function (animator) {\n        var clip = animator.getClip();\n        if (clip) {\n            this.removeClip(clip);\n        }\n        animator.animation = null;\n    };\n    Animation.prototype.update = function (notTriggerFrameAndStageUpdate) {\n        var time = new Date().getTime() - this._pausedTime;\n        var delta = time - this._time;\n        var clip = this._clipsHead;\n        while (clip) {\n            var nextClip = clip.next;\n            var finished = clip.step(time, delta);\n            if (finished) {\n                clip.ondestroy && clip.ondestroy();\n                this.removeClip(clip);\n                clip = nextClip;\n            }\n            else {\n                clip = nextClip;\n            }\n        }\n        this._time = time;\n        if (!notTriggerFrameAndStageUpdate) {\n            this.onframe(delta);\n            this.trigger('frame', delta);\n            this.stage.update && this.stage.update();\n        }\n    };\n    Animation.prototype._startLoop = function () {\n        var self = this;\n        this._running = true;\n        function step() {\n            if (self._running) {\n                requestAnimationFrame(step);\n                !self._paused && self.update();\n            }\n        }\n        requestAnimationFrame(step);\n    };\n    Animation.prototype.start = function () {\n        if (this._running) {\n            return;\n        }\n        this._time = new Date().getTime();\n        this._pausedTime = 0;\n        this._startLoop();\n    };\n    Animation.prototype.stop = function () {\n        this._running = false;\n    };\n    Animation.prototype.pause = function () {\n        if (!this._paused) {\n            this._pauseStart = new Date().getTime();\n            this._paused = true;\n        }\n    };\n    Animation.prototype.resume = function () {\n        if (this._paused) {\n            this._pausedTime += (new Date().getTime()) - this._pauseStart;\n            this._paused = false;\n        }\n    };\n    Animation.prototype.clear = function () {\n        var clip = this._clipsHead;\n        while (clip) {\n            var nextClip = clip.next;\n            clip.prev = clip.next = clip.animation = null;\n            clip = nextClip;\n        }\n        this._clipsHead = this._clipsTail = null;\n    };\n    Animation.prototype.isFinished = function () {\n        return this._clipsHead == null;\n    };\n    Animation.prototype.animate = function (target, options) {\n        options = options || {};\n        this.start();\n        var animator = new Animator(target, options.loop);\n        this.addAnimator(animator);\n        return animator;\n    };\n    return Animation;\n}(Eventful));\nexport default Animation;\n","import { __extends } from \"tslib\";\nimport { addEventListener, removeEventListener, normalizeEvent, getNativeEvent } from '../core/event';\nimport * as zrUtil from '../core/util';\nimport Eventful from '../core/Eventful';\nimport env from '../core/env';\nvar TOUCH_CLICK_DELAY = 300;\nvar globalEventSupported = env.domSupported;\nvar localNativeListenerNames = (function () {\n    var mouseHandlerNames = [\n        'click', 'dblclick', 'mousewheel', 'wheel', 'mouseout',\n        'mouseup', 'mousedown', 'mousemove', 'contextmenu'\n    ];\n    var touchHandlerNames = [\n        'touchstart', 'touchend', 'touchmove'\n    ];\n    var pointerEventNameMap = {\n        pointerdown: 1, pointerup: 1, pointermove: 1, pointerout: 1\n    };\n    var pointerHandlerNames = zrUtil.map(mouseHandlerNames, function (name) {\n        var nm = name.replace('mouse', 'pointer');\n        return pointerEventNameMap.hasOwnProperty(nm) ? nm : name;\n    });\n    return {\n        mouse: mouseHandlerNames,\n        touch: touchHandlerNames,\n        pointer: pointerHandlerNames\n    };\n})();\nvar globalNativeListenerNames = {\n    mouse: ['mousemove', 'mouseup'],\n    pointer: ['pointermove', 'pointerup']\n};\nvar wheelEventSupported = false;\nfunction isPointerFromTouch(event) {\n    var pointerType = event.pointerType;\n    return pointerType === 'pen' || pointerType === 'touch';\n}\nfunction setTouchTimer(scope) {\n    scope.touching = true;\n    if (scope.touchTimer != null) {\n        clearTimeout(scope.touchTimer);\n        scope.touchTimer = null;\n    }\n    scope.touchTimer = setTimeout(function () {\n        scope.touching = false;\n        scope.touchTimer = null;\n    }, 700);\n}\nfunction markTouch(event) {\n    event && (event.zrByTouch = true);\n}\nfunction normalizeGlobalEvent(instance, event) {\n    return normalizeEvent(instance.dom, new FakeGlobalEvent(instance, event), true);\n}\nfunction isLocalEl(instance, el) {\n    var elTmp = el;\n    var isLocal = false;\n    while (elTmp && elTmp.nodeType !== 9\n        && !(isLocal = elTmp.domBelongToZr\n            || (elTmp !== el && elTmp === instance.painterRoot))) {\n        elTmp = elTmp.parentNode;\n    }\n    return isLocal;\n}\nvar FakeGlobalEvent = (function () {\n    function FakeGlobalEvent(instance, event) {\n        this.stopPropagation = zrUtil.noop;\n        this.stopImmediatePropagation = zrUtil.noop;\n        this.preventDefault = zrUtil.noop;\n        this.type = event.type;\n        this.target = this.currentTarget = instance.dom;\n        this.pointerType = event.pointerType;\n        this.clientX = event.clientX;\n        this.clientY = event.clientY;\n    }\n    return FakeGlobalEvent;\n}());\nvar localDOMHandlers = {\n    mousedown: function (event) {\n        event = normalizeEvent(this.dom, event);\n        this.__mayPointerCapture = [event.zrX, event.zrY];\n        this.trigger('mousedown', event);\n    },\n    mousemove: function (event) {\n        event = normalizeEvent(this.dom, event);\n        var downPoint = this.__mayPointerCapture;\n        if (downPoint && (event.zrX !== downPoint[0] || event.zrY !== downPoint[1])) {\n            this.__togglePointerCapture(true);\n        }\n        this.trigger('mousemove', event);\n    },\n    mouseup: function (event) {\n        event = normalizeEvent(this.dom, event);\n        this.__togglePointerCapture(false);\n        this.trigger('mouseup', event);\n    },\n    mouseout: function (event) {\n        event = normalizeEvent(this.dom, event);\n        var element = event.toElement || event.relatedTarget;\n        if (!isLocalEl(this, element)) {\n            if (this.__pointerCapturing) {\n                event.zrEventControl = 'no_globalout';\n            }\n            this.trigger('mouseout', event);\n        }\n    },\n    wheel: function (event) {\n        wheelEventSupported = true;\n        event = normalizeEvent(this.dom, event);\n        this.trigger('mousewheel', event);\n    },\n    mousewheel: function (event) {\n        if (wheelEventSupported) {\n            return;\n        }\n        event = normalizeEvent(this.dom, event);\n        this.trigger('mousewheel', event);\n    },\n    touchstart: function (event) {\n        event = normalizeEvent(this.dom, event);\n        markTouch(event);\n        this.__lastTouchMoment = new Date();\n        this.handler.processGesture(event, 'start');\n        localDOMHandlers.mousemove.call(this, event);\n        localDOMHandlers.mousedown.call(this, event);\n    },\n    touchmove: function (event) {\n        event = normalizeEvent(this.dom, event);\n        markTouch(event);\n        this.handler.processGesture(event, 'change');\n        localDOMHandlers.mousemove.call(this, event);\n    },\n    touchend: function (event) {\n        event = normalizeEvent(this.dom, event);\n        markTouch(event);\n        this.handler.processGesture(event, 'end');\n        localDOMHandlers.mouseup.call(this, event);\n        if (+new Date() - (+this.__lastTouchMoment) < TOUCH_CLICK_DELAY) {\n            localDOMHandlers.click.call(this, event);\n        }\n    },\n    pointerdown: function (event) {\n        localDOMHandlers.mousedown.call(this, event);\n    },\n    pointermove: function (event) {\n        if (!isPointerFromTouch(event)) {\n            localDOMHandlers.mousemove.call(this, event);\n        }\n    },\n    pointerup: function (event) {\n        localDOMHandlers.mouseup.call(this, event);\n    },\n    pointerout: function (event) {\n        if (!isPointerFromTouch(event)) {\n            localDOMHandlers.mouseout.call(this, event);\n        }\n    }\n};\nzrUtil.each(['click', 'dblclick', 'contextmenu'], function (name) {\n    localDOMHandlers[name] = function (event) {\n        event = normalizeEvent(this.dom, event);\n        this.trigger(name, event);\n    };\n});\nvar globalDOMHandlers = {\n    pointermove: function (event) {\n        if (!isPointerFromTouch(event)) {\n            globalDOMHandlers.mousemove.call(this, event);\n        }\n    },\n    pointerup: function (event) {\n        globalDOMHandlers.mouseup.call(this, event);\n    },\n    mousemove: function (event) {\n        this.trigger('mousemove', event);\n    },\n    mouseup: function (event) {\n        var pointerCaptureReleasing = this.__pointerCapturing;\n        this.__togglePointerCapture(false);\n        this.trigger('mouseup', event);\n        if (pointerCaptureReleasing) {\n            event.zrEventControl = 'only_globalout';\n            this.trigger('mouseout', event);\n        }\n    }\n};\nfunction mountLocalDOMEventListeners(instance, scope) {\n    var domHandlers = scope.domHandlers;\n    if (env.pointerEventsSupported) {\n        zrUtil.each(localNativeListenerNames.pointer, function (nativeEventName) {\n            mountSingleDOMEventListener(scope, nativeEventName, function (event) {\n                domHandlers[nativeEventName].call(instance, event);\n            });\n        });\n    }\n    else {\n        if (env.touchEventsSupported) {\n            zrUtil.each(localNativeListenerNames.touch, function (nativeEventName) {\n                mountSingleDOMEventListener(scope, nativeEventName, function (event) {\n                    domHandlers[nativeEventName].call(instance, event);\n                    setTouchTimer(scope);\n                });\n            });\n        }\n        zrUtil.each(localNativeListenerNames.mouse, function (nativeEventName) {\n            mountSingleDOMEventListener(scope, nativeEventName, function (event) {\n                event = getNativeEvent(event);\n                if (!scope.touching) {\n                    domHandlers[nativeEventName].call(instance, event);\n                }\n            });\n        });\n    }\n}\nfunction mountGlobalDOMEventListeners(instance, scope) {\n    if (env.pointerEventsSupported) {\n        zrUtil.each(globalNativeListenerNames.pointer, mount);\n    }\n    else if (!env.touchEventsSupported) {\n        zrUtil.each(globalNativeListenerNames.mouse, mount);\n    }\n    function mount(nativeEventName) {\n        function nativeEventListener(event) {\n            event = getNativeEvent(event);\n            if (!isLocalEl(instance, event.target)) {\n                event = normalizeGlobalEvent(instance, event);\n                scope.domHandlers[nativeEventName].call(instance, event);\n            }\n        }\n        mountSingleDOMEventListener(scope, nativeEventName, nativeEventListener, { capture: true });\n    }\n}\nfunction mountSingleDOMEventListener(scope, nativeEventName, listener, opt) {\n    scope.mounted[nativeEventName] = listener;\n    scope.listenerOpts[nativeEventName] = opt;\n    addEventListener(scope.domTarget, nativeEventName, listener, opt);\n}\nfunction unmountDOMEventListeners(scope) {\n    var mounted = scope.mounted;\n    for (var nativeEventName in mounted) {\n        if (mounted.hasOwnProperty(nativeEventName)) {\n            removeEventListener(scope.domTarget, nativeEventName, mounted[nativeEventName], scope.listenerOpts[nativeEventName]);\n        }\n    }\n    scope.mounted = {};\n}\nvar DOMHandlerScope = (function () {\n    function DOMHandlerScope(domTarget, domHandlers) {\n        this.mounted = {};\n        this.listenerOpts = {};\n        this.touching = false;\n        this.domTarget = domTarget;\n        this.domHandlers = domHandlers;\n    }\n    return DOMHandlerScope;\n}());\nvar HandlerDomProxy = (function (_super) {\n    __extends(HandlerDomProxy, _super);\n    function HandlerDomProxy(dom, painterRoot) {\n        var _this = _super.call(this) || this;\n        _this.__pointerCapturing = false;\n        _this.dom = dom;\n        _this.painterRoot = painterRoot;\n        _this._localHandlerScope = new DOMHandlerScope(dom, localDOMHandlers);\n        if (globalEventSupported) {\n            _this._globalHandlerScope = new DOMHandlerScope(document, globalDOMHandlers);\n        }\n        mountLocalDOMEventListeners(_this, _this._localHandlerScope);\n        return _this;\n    }\n    HandlerDomProxy.prototype.dispose = function () {\n        unmountDOMEventListeners(this._localHandlerScope);\n        if (globalEventSupported) {\n            unmountDOMEventListeners(this._globalHandlerScope);\n        }\n    };\n    HandlerDomProxy.prototype.setCursor = function (cursorStyle) {\n        this.dom.style && (this.dom.style.cursor = cursorStyle || 'default');\n    };\n    HandlerDomProxy.prototype.__togglePointerCapture = function (isPointerCapturing) {\n        this.__mayPointerCapture = null;\n        if (globalEventSupported\n            && ((+this.__pointerCapturing) ^ (+isPointerCapturing))) {\n            this.__pointerCapturing = isPointerCapturing;\n            var globalHandlerScope = this._globalHandlerScope;\n            isPointerCapturing\n                ? mountGlobalDOMEventListeners(this, globalHandlerScope)\n                : unmountDOMEventListeners(globalHandlerScope);\n        }\n    };\n    return HandlerDomProxy;\n}(Eventful));\nexport default HandlerDomProxy;\n","import { __extends } from \"tslib\";\nimport * as zrUtil from '../core/util';\nimport Element from '../Element';\nimport BoundingRect from '../core/BoundingRect';\nvar Group = (function (_super) {\n    __extends(Group, _super);\n    function Group(opts) {\n        var _this = _super.call(this) || this;\n        _this.isGroup = true;\n        _this._children = [];\n        _this.attr(opts);\n        return _this;\n    }\n    Group.prototype.childrenRef = function () {\n        return this._children;\n    };\n    Group.prototype.children = function () {\n        return this._children.slice();\n    };\n    Group.prototype.childAt = function (idx) {\n        return this._children[idx];\n    };\n    Group.prototype.childOfName = function (name) {\n        var children = this._children;\n        for (var i = 0; i < children.length; i++) {\n            if (children[i].name === name) {\n                return children[i];\n            }\n        }\n    };\n    Group.prototype.childCount = function () {\n        return this._children.length;\n    };\n    Group.prototype.add = function (child) {\n        if (child) {\n            if (child !== this && child.parent !== this) {\n                this._children.push(child);\n                this._doAdd(child);\n            }\n            if (child.__hostTarget) {\n                throw 'This elemenet has been used as an attachment';\n            }\n        }\n        return this;\n    };\n    Group.prototype.addBefore = function (child, nextSibling) {\n        if (child && child !== this && child.parent !== this\n            && nextSibling && nextSibling.parent === this) {\n            var children = this._children;\n            var idx = children.indexOf(nextSibling);\n            if (idx >= 0) {\n                children.splice(idx, 0, child);\n                this._doAdd(child);\n            }\n        }\n        return this;\n    };\n    Group.prototype.replaceAt = function (child, index) {\n        var children = this._children;\n        var old = children[index];\n        if (child && child !== this && child.parent !== this && child !== old) {\n            children[index] = child;\n            old.parent = null;\n            var zr = this.__zr;\n            if (zr) {\n                old.removeSelfFromZr(zr);\n            }\n            this._doAdd(child);\n        }\n        return this;\n    };\n    Group.prototype._doAdd = function (child) {\n        if (child.parent) {\n            child.parent.remove(child);\n        }\n        child.parent = this;\n        var zr = this.__zr;\n        if (zr && zr !== child.__zr) {\n            child.addSelfToZr(zr);\n        }\n        zr && zr.refresh();\n    };\n    Group.prototype.remove = function (child) {\n        var zr = this.__zr;\n        var children = this._children;\n        var idx = zrUtil.indexOf(children, child);\n        if (idx < 0) {\n            return this;\n        }\n        children.splice(idx, 1);\n        child.parent = null;\n        if (zr) {\n            child.removeSelfFromZr(zr);\n        }\n        zr && zr.refresh();\n        return this;\n    };\n    Group.prototype.removeAll = function () {\n        var children = this._children;\n        var zr = this.__zr;\n        for (var i = 0; i < children.length; i++) {\n            var child = children[i];\n            if (zr) {\n                child.removeSelfFromZr(zr);\n            }\n            child.parent = null;\n        }\n        children.length = 0;\n        return this;\n    };\n    Group.prototype.eachChild = function (cb, context) {\n        var children = this._children;\n        for (var i = 0; i < children.length; i++) {\n            var child = children[i];\n            cb.call(context, child, i);\n        }\n        return this;\n    };\n    Group.prototype.traverse = function (cb, context) {\n        for (var i = 0; i < this._children.length; i++) {\n            var child = this._children[i];\n            var stopped = cb.call(context, child);\n            if (child.isGroup && !stopped) {\n                child.traverse(cb, context);\n            }\n        }\n        return this;\n    };\n    Group.prototype.addSelfToZr = function (zr) {\n        _super.prototype.addSelfToZr.call(this, zr);\n        for (var i = 0; i < this._children.length; i++) {\n            var child = this._children[i];\n            child.addSelfToZr(zr);\n        }\n    };\n    Group.prototype.removeSelfFromZr = function (zr) {\n        _super.prototype.removeSelfFromZr.call(this, zr);\n        for (var i = 0; i < this._children.length; i++) {\n            var child = this._children[i];\n            child.removeSelfFromZr(zr);\n        }\n    };\n    Group.prototype.getBoundingRect = function (includeChildren) {\n        var tmpRect = new BoundingRect(0, 0, 0, 0);\n        var children = includeChildren || this._children;\n        var tmpMat = [];\n        var rect = null;\n        for (var i = 0; i < children.length; i++) {\n            var child = children[i];\n            if (child.ignore || child.invisible) {\n                continue;\n            }\n            var childRect = child.getBoundingRect();\n            var transform = child.getLocalTransform(tmpMat);\n            if (transform) {\n                BoundingRect.applyTransform(tmpRect, childRect, transform);\n                rect = rect || tmpRect.clone();\n                rect.union(tmpRect);\n            }\n            else {\n                rect = rect || childRect.clone();\n                rect.union(childRect);\n            }\n        }\n        return rect || tmpRect;\n    };\n    return Group;\n}(Element));\nGroup.prototype.type = 'group';\nexport default Group;\n","/*!\n* ZRender, a high performance 2d drawing library.\n*\n* Copyright (c) 2013, Baidu Inc.\n* All rights reserved.\n*\n* LICENSE\n* https://github.com/ecomfe/zrender/blob/master/LICENSE.txt\n*/\nimport env from './core/env';\nimport * as zrUtil from './core/util';\nimport Handler from './Handler';\nimport Storage from './Storage';\nimport Animation from './animation/Animation';\nimport HandlerProxy from './dom/HandlerProxy';\nimport { lum } from './tool/color';\nimport { DARK_MODE_THRESHOLD } from './config';\nimport Group from './graphic/Group';\nvar useVML = !env.canvasSupported;\nvar painterCtors = {};\nvar instances = {};\nfunction delInstance(id) {\n    delete instances[id];\n}\nfunction isDarkMode(backgroundColor) {\n    if (!backgroundColor) {\n        return false;\n    }\n    if (typeof backgroundColor === 'string') {\n        return lum(backgroundColor, 1) < DARK_MODE_THRESHOLD;\n    }\n    else if (backgroundColor.colorStops) {\n        var colorStops = backgroundColor.colorStops;\n        var totalLum = 0;\n        var len = colorStops.length;\n        for (var i = 0; i < len; i++) {\n            totalLum += lum(colorStops[i].color, 1);\n        }\n        totalLum /= len;\n        return totalLum < DARK_MODE_THRESHOLD;\n    }\n    return false;\n}\nvar ZRender = (function () {\n    function ZRender(id, dom, opts) {\n        var _this = this;\n        this._sleepAfterStill = 10;\n        this._stillFrameAccum = 0;\n        this._needsRefresh = true;\n        this._needsRefreshHover = true;\n        this._darkMode = false;\n        opts = opts || {};\n        this.dom = dom;\n        this.id = id;\n        var storage = new Storage();\n        var rendererType = opts.renderer || 'canvas';\n        if (useVML) {\n            throw new Error('IE8 support has been dropped since 5.0');\n        }\n        if (!painterCtors[rendererType]) {\n            rendererType = zrUtil.keys(painterCtors)[0];\n        }\n        if (!painterCtors[rendererType]) {\n            throw new Error(\"Renderer '\" + rendererType + \"' is not imported. Please import it first.\");\n        }\n        opts.useDirtyRect = opts.useDirtyRect == null\n            ? false\n            : opts.useDirtyRect;\n        var painter = new painterCtors[rendererType](dom, storage, opts, id);\n        this.storage = storage;\n        this.painter = painter;\n        var handerProxy = (!env.node && !env.worker)\n            ? new HandlerProxy(painter.getViewportRoot(), painter.root)\n            : null;\n        this.handler = new Handler(storage, painter, handerProxy, painter.root);\n        this.animation = new Animation({\n            stage: {\n                update: function () { return _this._flush(true); }\n            }\n        });\n        this.animation.start();\n    }\n    ZRender.prototype.add = function (el) {\n        if (!el) {\n            return;\n        }\n        this.storage.addRoot(el);\n        el.addSelfToZr(this);\n        this.refresh();\n    };\n    ZRender.prototype.remove = function (el) {\n        if (!el) {\n            return;\n        }\n        this.storage.delRoot(el);\n        el.removeSelfFromZr(this);\n        this.refresh();\n    };\n    ZRender.prototype.configLayer = function (zLevel, config) {\n        if (this.painter.configLayer) {\n            this.painter.configLayer(zLevel, config);\n        }\n        this.refresh();\n    };\n    ZRender.prototype.setBackgroundColor = function (backgroundColor) {\n        if (this.painter.setBackgroundColor) {\n            this.painter.setBackgroundColor(backgroundColor);\n        }\n        this.refresh();\n        this._backgroundColor = backgroundColor;\n        this._darkMode = isDarkMode(backgroundColor);\n    };\n    ZRender.prototype.getBackgroundColor = function () {\n        return this._backgroundColor;\n    };\n    ZRender.prototype.setDarkMode = function (darkMode) {\n        this._darkMode = darkMode;\n    };\n    ZRender.prototype.isDarkMode = function () {\n        return this._darkMode;\n    };\n    ZRender.prototype.refreshImmediately = function (fromInside) {\n        if (!fromInside) {\n            this.animation.update(true);\n        }\n        this._needsRefresh = false;\n        this.painter.refresh();\n        this._needsRefresh = false;\n    };\n    ZRender.prototype.refresh = function () {\n        this._needsRefresh = true;\n        this.animation.start();\n    };\n    ZRender.prototype.flush = function () {\n        this._flush(false);\n    };\n    ZRender.prototype._flush = function (fromInside) {\n        var triggerRendered;\n        var start = new Date().getTime();\n        if (this._needsRefresh) {\n            triggerRendered = true;\n            this.refreshImmediately(fromInside);\n        }\n        if (this._needsRefreshHover) {\n            triggerRendered = true;\n            this.refreshHoverImmediately();\n        }\n        var end = new Date().getTime();\n        if (triggerRendered) {\n            this._stillFrameAccum = 0;\n            this.trigger('rendered', {\n                elapsedTime: end - start\n            });\n        }\n        else if (this._sleepAfterStill > 0) {\n            this._stillFrameAccum++;\n            if (this._stillFrameAccum > this._sleepAfterStill) {\n                this.animation.stop();\n            }\n        }\n    };\n    ZRender.prototype.setSleepAfterStill = function (stillFramesCount) {\n        this._sleepAfterStill = stillFramesCount;\n    };\n    ZRender.prototype.wakeUp = function () {\n        this.animation.start();\n        this._stillFrameAccum = 0;\n    };\n    ZRender.prototype.addHover = function (el) {\n    };\n    ZRender.prototype.removeHover = function (el) {\n    };\n    ZRender.prototype.clearHover = function () {\n    };\n    ZRender.prototype.refreshHover = function () {\n        this._needsRefreshHover = true;\n    };\n    ZRender.prototype.refreshHoverImmediately = function () {\n        this._needsRefreshHover = false;\n        if (this.painter.refreshHover && this.painter.getType() === 'canvas') {\n            this.painter.refreshHover();\n        }\n    };\n    ZRender.prototype.resize = function (opts) {\n        opts = opts || {};\n        this.painter.resize(opts.width, opts.height);\n        this.handler.resize();\n    };\n    ZRender.prototype.clearAnimation = function () {\n        this.animation.clear();\n    };\n    ZRender.prototype.getWidth = function () {\n        return this.painter.getWidth();\n    };\n    ZRender.prototype.getHeight = function () {\n        return this.painter.getHeight();\n    };\n    ZRender.prototype.pathToImage = function (e, dpr) {\n        if (this.painter.pathToImage) {\n            return this.painter.pathToImage(e, dpr);\n        }\n    };\n    ZRender.prototype.setCursorStyle = function (cursorStyle) {\n        this.handler.setCursorStyle(cursorStyle);\n    };\n    ZRender.prototype.findHover = function (x, y) {\n        return this.handler.findHover(x, y);\n    };\n    ZRender.prototype.on = function (eventName, eventHandler, context) {\n        this.handler.on(eventName, eventHandler, context);\n        return this;\n    };\n    ZRender.prototype.off = function (eventName, eventHandler) {\n        this.handler.off(eventName, eventHandler);\n    };\n    ZRender.prototype.trigger = function (eventName, event) {\n        this.handler.trigger(eventName, event);\n    };\n    ZRender.prototype.clear = function () {\n        var roots = this.storage.getRoots();\n        for (var i = 0; i < roots.length; i++) {\n            if (roots[i] instanceof Group) {\n                roots[i].removeSelfFromZr(this);\n            }\n        }\n        this.storage.delAllRoots();\n        this.painter.clear();\n    };\n    ZRender.prototype.dispose = function () {\n        this.animation.stop();\n        this.clear();\n        this.storage.dispose();\n        this.painter.dispose();\n        this.handler.dispose();\n        this.animation =\n            this.storage =\n                this.painter =\n                    this.handler = null;\n        delInstance(this.id);\n    };\n    return ZRender;\n}());\nexport function init(dom, opts) {\n    var zr = new ZRender(zrUtil.guid(), dom, opts);\n    instances[zr.id] = zr;\n    return zr;\n}\nexport function dispose(zr) {\n    zr.dispose();\n}\nexport function disposeAll() {\n    for (var key in instances) {\n        if (instances.hasOwnProperty(key)) {\n            instances[key].dispose();\n        }\n    }\n    instances = {};\n}\nexport function getInstance(id) {\n    return instances[id];\n}\nexport function registerPainter(name, Ctor) {\n    painterCtors[name] = Ctor;\n}\nexport var version = '5.0.1';\n;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar RADIAN_EPSILON = 1e-4;\n\nfunction _trim(str) {\n  return str.replace(/^\\s+|\\s+$/g, '');\n}\n\nexport function linearMap(val, domain, range, clamp) {\n  var subDomain = domain[1] - domain[0];\n  var subRange = range[1] - range[0];\n\n  if (subDomain === 0) {\n    return subRange === 0 ? range[0] : (range[0] + range[1]) / 2;\n  }\n\n  if (clamp) {\n    if (subDomain > 0) {\n      if (val <= domain[0]) {\n        return range[0];\n      } else if (val >= domain[1]) {\n        return range[1];\n      }\n    } else {\n      if (val >= domain[0]) {\n        return range[0];\n      } else if (val <= domain[1]) {\n        return range[1];\n      }\n    }\n  } else {\n    if (val === domain[0]) {\n      return range[0];\n    }\n\n    if (val === domain[1]) {\n      return range[1];\n    }\n  }\n\n  return (val - domain[0]) / subDomain * subRange + range[0];\n}\nexport function parsePercent(percent, all) {\n  switch (percent) {\n    case 'center':\n    case 'middle':\n      percent = '50%';\n      break;\n\n    case 'left':\n    case 'top':\n      percent = '0%';\n      break;\n\n    case 'right':\n    case 'bottom':\n      percent = '100%';\n      break;\n  }\n\n  if (typeof percent === 'string') {\n    if (_trim(percent).match(/%$/)) {\n      return parseFloat(percent) / 100 * all;\n    }\n\n    return parseFloat(percent);\n  }\n\n  return percent == null ? NaN : +percent;\n}\nexport function round(x, precision, returnStr) {\n  if (precision == null) {\n    precision = 10;\n  }\n\n  precision = Math.min(Math.max(0, precision), 20);\n  x = (+x).toFixed(precision);\n  return returnStr ? x : +x;\n}\nexport function asc(arr) {\n  arr.sort(function (a, b) {\n    return a - b;\n  });\n  return arr;\n}\nexport function getPrecision(val) {\n  val = +val;\n\n  if (isNaN(val)) {\n    return 0;\n  }\n\n  var e = 1;\n  var count = 0;\n\n  while (Math.round(val * e) / e !== val) {\n    e *= 10;\n    count++;\n  }\n\n  return count;\n}\nexport function getPrecisionSafe(val) {\n  var str = val.toString();\n  var eIndex = str.indexOf('e');\n\n  if (eIndex > 0) {\n    var precision = +str.slice(eIndex + 1);\n    return precision < 0 ? -precision : 0;\n  } else {\n    var dotIndex = str.indexOf('.');\n    return dotIndex < 0 ? 0 : str.length - 1 - dotIndex;\n  }\n}\nexport function getPixelPrecision(dataExtent, pixelExtent) {\n  var log = Math.log;\n  var LN10 = Math.LN10;\n  var dataQuantity = Math.floor(log(dataExtent[1] - dataExtent[0]) / LN10);\n  var sizeQuantity = Math.round(log(Math.abs(pixelExtent[1] - pixelExtent[0])) / LN10);\n  var precision = Math.min(Math.max(-dataQuantity + sizeQuantity, 0), 20);\n  return !isFinite(precision) ? 20 : precision;\n}\nexport function getPercentWithPrecision(valueList, idx, precision) {\n  if (!valueList[idx]) {\n    return 0;\n  }\n\n  var sum = zrUtil.reduce(valueList, function (acc, val) {\n    return acc + (isNaN(val) ? 0 : val);\n  }, 0);\n\n  if (sum === 0) {\n    return 0;\n  }\n\n  var digits = Math.pow(10, precision);\n  var votesPerQuota = zrUtil.map(valueList, function (val) {\n    return (isNaN(val) ? 0 : val) / sum * digits * 100;\n  });\n  var targetSeats = digits * 100;\n  var seats = zrUtil.map(votesPerQuota, function (votes) {\n    return Math.floor(votes);\n  });\n  var currentSum = zrUtil.reduce(seats, function (acc, val) {\n    return acc + val;\n  }, 0);\n  var remainder = zrUtil.map(votesPerQuota, function (votes, idx) {\n    return votes - seats[idx];\n  });\n\n  while (currentSum < targetSeats) {\n    var max = Number.NEGATIVE_INFINITY;\n    var maxId = null;\n\n    for (var i = 0, len = remainder.length; i < len; ++i) {\n      if (remainder[i] > max) {\n        max = remainder[i];\n        maxId = i;\n      }\n    }\n\n    ++seats[maxId];\n    remainder[maxId] = 0;\n    ++currentSum;\n  }\n\n  return seats[idx] / digits;\n}\nexport var MAX_SAFE_INTEGER = 9007199254740991;\nexport function remRadian(radian) {\n  var pi2 = Math.PI * 2;\n  return (radian % pi2 + pi2) % pi2;\n}\nexport function isRadianAroundZero(val) {\n  return val > -RADIAN_EPSILON && val < RADIAN_EPSILON;\n}\nvar 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)?)?)?)?)?$/;\nexport function parseDate(value) {\n  if (value instanceof Date) {\n    return value;\n  } else if (typeof value === 'string') {\n    var match = TIME_REG.exec(value);\n\n    if (!match) {\n      return new Date(NaN);\n    }\n\n    if (!match[8]) {\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);\n    } else {\n      var hour = +match[4] || 0;\n\n      if (match[8].toUpperCase() !== 'Z') {\n        hour -= +match[8].slice(0, 3);\n      }\n\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));\n    }\n  } else if (value == null) {\n    return new Date(NaN);\n  }\n\n  return new Date(Math.round(value));\n}\nexport function quantity(val) {\n  return Math.pow(10, quantityExponent(val));\n}\nexport function quantityExponent(val) {\n  if (val === 0) {\n    return 0;\n  }\n\n  var exp = Math.floor(Math.log(val) / Math.LN10);\n\n  if (val / Math.pow(10, exp) >= 10) {\n    exp++;\n  }\n\n  return exp;\n}\nexport function nice(val, round) {\n  var exponent = quantityExponent(val);\n  var exp10 = Math.pow(10, exponent);\n  var f = val / exp10;\n  var nf;\n\n  if (round) {\n    if (f < 1.5) {\n      nf = 1;\n    } else if (f < 2.5) {\n      nf = 2;\n    } else if (f < 4) {\n      nf = 3;\n    } else if (f < 7) {\n      nf = 5;\n    } else {\n      nf = 10;\n    }\n  } else {\n    if (f < 1) {\n      nf = 1;\n    } else if (f < 2) {\n      nf = 2;\n    } else if (f < 3) {\n      nf = 3;\n    } else if (f < 5) {\n      nf = 5;\n    } else {\n      nf = 10;\n    }\n  }\n\n  val = nf * exp10;\n  return exponent >= -20 ? +val.toFixed(exponent < 0 ? -exponent : 0) : val;\n}\nexport function quantile(ascArr, p) {\n  var H = (ascArr.length - 1) * p + 1;\n  var h = Math.floor(H);\n  var v = +ascArr[h - 1];\n  var e = H - h;\n  return e ? v + e * (ascArr[h] - v) : v;\n}\nexport function reformIntervals(list) {\n  list.sort(function (a, b) {\n    return littleThan(a, b, 0) ? -1 : 1;\n  });\n  var curr = -Infinity;\n  var currClose = 1;\n\n  for (var i = 0; i < list.length;) {\n    var interval = list[i].interval;\n    var close_1 = list[i].close;\n\n    for (var lg = 0; lg < 2; lg++) {\n      if (interval[lg] <= curr) {\n        interval[lg] = curr;\n        close_1[lg] = !lg ? 1 - currClose : 1;\n      }\n\n      curr = interval[lg];\n      currClose = close_1[lg];\n    }\n\n    if (interval[0] === interval[1] && close_1[0] * close_1[1] !== 1) {\n      list.splice(i, 1);\n    } else {\n      i++;\n    }\n  }\n\n  return list;\n\n  function littleThan(a, b, lg) {\n    return a.interval[lg] < b.interval[lg] || a.interval[lg] === b.interval[lg] && (a.close[lg] - b.close[lg] === (!lg ? 1 : -1) || !lg && littleThan(a, b, 1));\n  }\n}\nexport function numericToNumber(val) {\n  var valFloat = parseFloat(val);\n  return valFloat == val && (valFloat !== 0 || typeof val !== 'string' || val.indexOf('x') <= 0) ? valFloat : NaN;\n}\nexport function isNumeric(val) {\n  return !isNaN(numericToNumber(val));\n}\nexport function getRandomIdBase() {\n  return Math.round(Math.random() * 9);\n}\nexport function getGreatestCommonDividor(a, b) {\n  if (b === 0) {\n    return a;\n  }\n\n  return getGreatestCommonDividor(b, a % b);\n}\nexport function getLeastCommonMultiple(a, b) {\n  if (a == null) {\n    return b;\n  }\n\n  if (b == null) {\n    return a;\n  }\n\n  return a * b / getGreatestCommonDividor(a, b);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { map, isString, isFunction, eqNaN, isRegExp } from 'zrender/lib/core/util';\nvar ECHARTS_PREFIX = '[ECharts] ';\nvar storedLogs = {};\nvar hasConsole = typeof console !== 'undefined' && console.warn && console.log;\nexport function log(str) {\n  if (hasConsole) {\n    console.log(ECHARTS_PREFIX + str);\n  }\n}\nexport function warn(str) {\n  if (hasConsole) {\n    console.warn(ECHARTS_PREFIX + str);\n  }\n}\nexport function error(str) {\n  if (hasConsole) {\n    console.error(ECHARTS_PREFIX + str);\n  }\n}\nexport function deprecateLog(str) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (storedLogs[str]) {\n      return;\n    }\n\n    if (hasConsole) {\n      storedLogs[str] = true;\n      console.warn(ECHARTS_PREFIX + 'DEPRECATED: ' + str);\n    }\n  }\n}\nexport function deprecateReplaceLog(oldOpt, newOpt, scope) {\n  if (process.env.NODE_ENV !== 'production') {\n    deprecateLog((scope ? \"[\" + scope + \"]\" : '') + (oldOpt + \" is deprecated, use \" + newOpt + \" instead.\"));\n  }\n}\nexport function consoleLog() {\n  var args = [];\n\n  for (var _i = 0; _i < arguments.length; _i++) {\n    args[_i] = arguments[_i];\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (typeof console !== 'undefined' && console.log) {\n      console.log.apply(console, args);\n    }\n  }\n}\nexport function makePrintable() {\n  var hintInfo = [];\n\n  for (var _i = 0; _i < arguments.length; _i++) {\n    hintInfo[_i] = arguments[_i];\n  }\n\n  var msg = '';\n\n  if (process.env.NODE_ENV !== 'production') {\n    var makePrintableStringIfPossible_1 = function (val) {\n      return val === void 0 ? 'undefined' : val === Infinity ? 'Infinity' : val === -Infinity ? '-Infinity' : eqNaN(val) ? 'NaN' : val instanceof Date ? 'Date(' + val.toISOString() + ')' : isFunction(val) ? 'function () { ... }' : isRegExp(val) ? val + '' : null;\n    };\n\n    msg = map(hintInfo, function (arg) {\n      if (isString(arg)) {\n        return arg;\n      } else {\n        var printableStr = makePrintableStringIfPossible_1(arg);\n\n        if (printableStr != null) {\n          return printableStr;\n        } else if (typeof JSON !== 'undefined' && JSON.stringify) {\n          try {\n            return JSON.stringify(arg, function (n, val) {\n              var printableStr = makePrintableStringIfPossible_1(val);\n              return printableStr == null ? val : printableStr;\n            });\n          } catch (err) {\n            return '?';\n          }\n        } else {\n          return '?';\n        }\n      }\n    }).join(' ');\n  }\n\n  return msg;\n}\nexport function throwError(msg) {\n  throw new Error(msg);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, isObject, isArray, createHashMap, map, assert, isString, indexOf, isStringSafe } from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport { isNumeric, getRandomIdBase, getPrecisionSafe, round } from './number';\nimport { interpolateNumber } from 'zrender/lib/animation/Animator';\nimport { warn } from './log';\nvar DUMMY_COMPONENT_NAME_PREFIX = 'series\\0';\nvar INTERNAL_COMPONENT_ID_PREFIX = '\\0_ec_\\0';\nexport function normalizeToArray(value) {\n  return value instanceof Array ? value : value == null ? [] : [value];\n}\nexport function defaultEmphasis(opt, key, subOpts) {\n  if (opt) {\n    opt[key] = opt[key] || {};\n    opt.emphasis = opt.emphasis || {};\n    opt.emphasis[key] = opt.emphasis[key] || {};\n\n    for (var i = 0, len = subOpts.length; i < len; i++) {\n      var subOptName = subOpts[i];\n\n      if (!opt.emphasis[key].hasOwnProperty(subOptName) && opt[key].hasOwnProperty(subOptName)) {\n        opt.emphasis[key][subOptName] = opt[key][subOptName];\n      }\n    }\n  }\n}\nexport var TEXT_STYLE_OPTIONS = ['fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'rich', 'tag', 'color', 'textBorderColor', 'textBorderWidth', 'width', 'height', 'lineHeight', 'align', 'verticalAlign', 'baseline', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY', 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY', 'backgroundColor', 'borderColor', 'borderWidth', 'borderRadius', 'padding'];\nexport function getDataItemValue(dataItem) {\n  return isObject(dataItem) && !isArray(dataItem) && !(dataItem instanceof Date) ? dataItem.value : dataItem;\n}\nexport function isDataItemOption(dataItem) {\n  return isObject(dataItem) && !(dataItem instanceof Array);\n}\n;\nexport function mappingToExists(existings, newCmptOptions, mode) {\n  var isNormalMergeMode = mode === 'normalMerge';\n  var isReplaceMergeMode = mode === 'replaceMerge';\n  var isReplaceAllMode = mode === 'replaceAll';\n  existings = existings || [];\n  newCmptOptions = (newCmptOptions || []).slice();\n  var existingIdIdxMap = createHashMap();\n  each(newCmptOptions, function (cmptOption, index) {\n    if (!isObject(cmptOption)) {\n      newCmptOptions[index] = null;\n      return;\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (cmptOption.id != null && !isValidIdOrName(cmptOption.id)) {\n        warnInvalidateIdOrName(cmptOption.id);\n      }\n\n      if (cmptOption.name != null && !isValidIdOrName(cmptOption.name)) {\n        warnInvalidateIdOrName(cmptOption.name);\n      }\n    }\n  });\n  var result = prepareResult(existings, existingIdIdxMap, mode);\n\n  if (isNormalMergeMode || isReplaceMergeMode) {\n    mappingById(result, existings, existingIdIdxMap, newCmptOptions);\n  }\n\n  if (isNormalMergeMode) {\n    mappingByName(result, newCmptOptions);\n  }\n\n  if (isNormalMergeMode || isReplaceMergeMode) {\n    mappingByIndex(result, newCmptOptions, isReplaceMergeMode);\n  } else if (isReplaceAllMode) {\n    mappingInReplaceAllMode(result, newCmptOptions);\n  }\n\n  makeIdAndName(result);\n  return result;\n}\n\nfunction prepareResult(existings, existingIdIdxMap, mode) {\n  var result = [];\n\n  if (mode === 'replaceAll') {\n    return result;\n  }\n\n  for (var index = 0; index < existings.length; index++) {\n    var existing = existings[index];\n\n    if (existing && existing.id != null) {\n      existingIdIdxMap.set(existing.id, index);\n    }\n\n    result.push({\n      existing: mode === 'replaceMerge' || isComponentIdInternal(existing) ? null : existing,\n      newOption: null,\n      keyInfo: null,\n      brandNew: null\n    });\n  }\n\n  return result;\n}\n\nfunction mappingById(result, existings, existingIdIdxMap, newCmptOptions) {\n  each(newCmptOptions, function (cmptOption, index) {\n    if (!cmptOption || cmptOption.id == null) {\n      return;\n    }\n\n    var optionId = makeComparableKey(cmptOption.id);\n    var existingIdx = existingIdIdxMap.get(optionId);\n\n    if (existingIdx != null) {\n      var resultItem = result[existingIdx];\n      assert(!resultItem.newOption, 'Duplicated option on id \"' + optionId + '\".');\n      resultItem.newOption = cmptOption;\n      resultItem.existing = existings[existingIdx];\n      newCmptOptions[index] = null;\n    }\n  });\n}\n\nfunction mappingByName(result, newCmptOptions) {\n  each(newCmptOptions, function (cmptOption, index) {\n    if (!cmptOption || cmptOption.name == null) {\n      return;\n    }\n\n    for (var i = 0; i < result.length; i++) {\n      var existing = result[i].existing;\n\n      if (!result[i].newOption && existing && (existing.id == null || cmptOption.id == null) && !isComponentIdInternal(cmptOption) && !isComponentIdInternal(existing) && keyExistAndEqual('name', existing, cmptOption)) {\n        result[i].newOption = cmptOption;\n        newCmptOptions[index] = null;\n        return;\n      }\n    }\n  });\n}\n\nfunction mappingByIndex(result, newCmptOptions, brandNew) {\n  each(newCmptOptions, function (cmptOption) {\n    if (!cmptOption) {\n      return;\n    }\n\n    var resultItem;\n    var nextIdx = 0;\n\n    while ((resultItem = result[nextIdx]) && (resultItem.newOption || isComponentIdInternal(resultItem.existing) || resultItem.existing && cmptOption.id != null && !keyExistAndEqual('id', cmptOption, resultItem.existing))) {\n      nextIdx++;\n    }\n\n    if (resultItem) {\n      resultItem.newOption = cmptOption;\n      resultItem.brandNew = brandNew;\n    } else {\n      result.push({\n        newOption: cmptOption,\n        brandNew: brandNew,\n        existing: null,\n        keyInfo: null\n      });\n    }\n\n    nextIdx++;\n  });\n}\n\nfunction mappingInReplaceAllMode(result, newCmptOptions) {\n  each(newCmptOptions, function (cmptOption) {\n    result.push({\n      newOption: cmptOption,\n      brandNew: true,\n      existing: null,\n      keyInfo: null\n    });\n  });\n}\n\nfunction makeIdAndName(mapResult) {\n  var idMap = createHashMap();\n  each(mapResult, function (item) {\n    var existing = item.existing;\n    existing && idMap.set(existing.id, item);\n  });\n  each(mapResult, function (item) {\n    var opt = item.newOption;\n    assert(!opt || opt.id == null || !idMap.get(opt.id) || idMap.get(opt.id) === item, 'id duplicates: ' + (opt && opt.id));\n    opt && opt.id != null && idMap.set(opt.id, item);\n    !item.keyInfo && (item.keyInfo = {});\n  });\n  each(mapResult, function (item, index) {\n    var existing = item.existing;\n    var opt = item.newOption;\n    var keyInfo = item.keyInfo;\n\n    if (!isObject(opt)) {\n      return;\n    }\n\n    keyInfo.name = opt.name != null ? makeComparableKey(opt.name) : existing ? existing.name : DUMMY_COMPONENT_NAME_PREFIX + index;\n\n    if (existing) {\n      keyInfo.id = makeComparableKey(existing.id);\n    } else if (opt.id != null) {\n      keyInfo.id = makeComparableKey(opt.id);\n    } else {\n      var idNum = 0;\n\n      do {\n        keyInfo.id = '\\0' + keyInfo.name + '\\0' + idNum++;\n      } while (idMap.get(keyInfo.id));\n    }\n\n    idMap.set(keyInfo.id, item);\n  });\n}\n\nfunction keyExistAndEqual(attr, obj1, obj2) {\n  var key1 = convertOptionIdName(obj1[attr], null);\n  var key2 = convertOptionIdName(obj2[attr], null);\n  return key1 != null && key2 != null && key1 === key2;\n}\n\nfunction makeComparableKey(val) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (val == null) {\n      throw new Error();\n    }\n  }\n\n  return convertOptionIdName(val, '');\n}\n\nexport function convertOptionIdName(idOrName, defaultValue) {\n  if (idOrName == null) {\n    return defaultValue;\n  }\n\n  var type = typeof idOrName;\n  return type === 'string' ? idOrName : type === 'number' || isStringSafe(idOrName) ? idOrName + '' : defaultValue;\n}\n\nfunction warnInvalidateIdOrName(idOrName) {\n  if (process.env.NODE_ENV !== 'production') {\n    warn('`' + idOrName + '` is invalid id or name. Must be a string or number.');\n  }\n}\n\nfunction isValidIdOrName(idOrName) {\n  return isStringSafe(idOrName) || isNumeric(idOrName);\n}\n\nexport function isNameSpecified(componentModel) {\n  var name = componentModel.name;\n  return !!(name && name.indexOf(DUMMY_COMPONENT_NAME_PREFIX));\n}\nexport function isComponentIdInternal(cmptOption) {\n  return cmptOption && cmptOption.id != null && makeComparableKey(cmptOption.id).indexOf(INTERNAL_COMPONENT_ID_PREFIX) === 0;\n}\nexport function makeInternalComponentId(idSuffix) {\n  return INTERNAL_COMPONENT_ID_PREFIX + idSuffix;\n}\nexport function setComponentTypeToKeyInfo(mappingResult, mainType, componentModelCtor) {\n  each(mappingResult, function (item) {\n    var newOption = item.newOption;\n\n    if (isObject(newOption)) {\n      item.keyInfo.mainType = mainType;\n      item.keyInfo.subType = determineSubType(mainType, newOption, item.existing, componentModelCtor);\n    }\n  });\n}\n\nfunction determineSubType(mainType, newCmptOption, existComponent, componentModelCtor) {\n  var subType = newCmptOption.type ? newCmptOption.type : existComponent ? existComponent.subType : componentModelCtor.determineSubType(mainType, newCmptOption);\n  return subType;\n}\n\nexport function compressBatches(batchA, batchB) {\n  var mapA = {};\n  var mapB = {};\n  makeMap(batchA || [], mapA);\n  makeMap(batchB || [], mapB, mapA);\n  return [mapToArray(mapA), mapToArray(mapB)];\n\n  function makeMap(sourceBatch, map, otherMap) {\n    for (var i = 0, len = sourceBatch.length; i < len; i++) {\n      var seriesId = convertOptionIdName(sourceBatch[i].seriesId, null);\n\n      if (seriesId == null) {\n        return;\n      }\n\n      var dataIndices = normalizeToArray(sourceBatch[i].dataIndex);\n      var otherDataIndices = otherMap && otherMap[seriesId];\n\n      for (var j = 0, lenj = dataIndices.length; j < lenj; j++) {\n        var dataIndex = dataIndices[j];\n\n        if (otherDataIndices && otherDataIndices[dataIndex]) {\n          otherDataIndices[dataIndex] = null;\n        } else {\n          (map[seriesId] || (map[seriesId] = {}))[dataIndex] = 1;\n        }\n      }\n    }\n  }\n\n  function mapToArray(map, isData) {\n    var result = [];\n\n    for (var i in map) {\n      if (map.hasOwnProperty(i) && map[i] != null) {\n        if (isData) {\n          result.push(+i);\n        } else {\n          var dataIndices = mapToArray(map[i], true);\n          dataIndices.length && result.push({\n            seriesId: i,\n            dataIndex: dataIndices\n          });\n        }\n      }\n    }\n\n    return result;\n  }\n}\nexport function queryDataIndex(data, payload) {\n  if (payload.dataIndexInside != null) {\n    return payload.dataIndexInside;\n  } else if (payload.dataIndex != null) {\n    return isArray(payload.dataIndex) ? map(payload.dataIndex, function (value) {\n      return data.indexOfRawIndex(value);\n    }) : data.indexOfRawIndex(payload.dataIndex);\n  } else if (payload.name != null) {\n    return isArray(payload.name) ? map(payload.name, function (value) {\n      return data.indexOfName(value);\n    }) : data.indexOfName(payload.name);\n  }\n}\nexport function makeInner() {\n  var key = '__ec_inner_' + innerUniqueIndex++;\n  return function (hostObj) {\n    return hostObj[key] || (hostObj[key] = {});\n  };\n}\nvar innerUniqueIndex = getRandomIdBase();\nexport function parseFinder(ecModel, finderInput, opt) {\n  var finder;\n\n  if (isString(finderInput)) {\n    var obj = {};\n    obj[finderInput + 'Index'] = 0;\n    finder = obj;\n  } else {\n    finder = finderInput;\n  }\n\n  var queryOptionMap = createHashMap();\n  var result = {};\n  var mainTypeSpecified = false;\n  each(finder, function (value, key) {\n    if (key === 'dataIndex' || key === 'dataIndexInside') {\n      result[key] = value;\n      return;\n    }\n\n    var parsedKey = key.match(/^(\\w+)(Index|Id|Name)$/) || [];\n    var mainType = parsedKey[1];\n    var queryType = (parsedKey[2] || '').toLowerCase();\n\n    if (!mainType || !queryType || opt && opt.includeMainTypes && indexOf(opt.includeMainTypes, mainType) < 0) {\n      return;\n    }\n\n    mainTypeSpecified = mainTypeSpecified || !!mainType;\n    var queryOption = queryOptionMap.get(mainType) || queryOptionMap.set(mainType, {});\n    queryOption[queryType] = value;\n  });\n  var defaultMainType = opt ? opt.defaultMainType : null;\n\n  if (!mainTypeSpecified && defaultMainType) {\n    queryOptionMap.set(defaultMainType, {});\n  }\n\n  queryOptionMap.each(function (queryOption, mainType) {\n    var queryResult = queryReferringComponents(ecModel, mainType, queryOption, {\n      useDefault: defaultMainType === mainType,\n      enableAll: opt && opt.enableAll != null ? opt.enableAll : true,\n      enableNone: opt && opt.enableNone != null ? opt.enableNone : true\n    });\n    result[mainType + 'Models'] = queryResult.models;\n    result[mainType + 'Model'] = queryResult.models[0];\n  });\n  return result;\n}\nexport var SINGLE_REFERRING = {\n  useDefault: true,\n  enableAll: false,\n  enableNone: false\n};\nexport var MULTIPLE_REFERRING = {\n  useDefault: false,\n  enableAll: true,\n  enableNone: true\n};\nexport function queryReferringComponents(ecModel, mainType, userOption, opt) {\n  opt = opt || SINGLE_REFERRING;\n  var indexOption = userOption.index;\n  var idOption = userOption.id;\n  var nameOption = userOption.name;\n  var result = {\n    models: null,\n    specified: indexOption != null || idOption != null || nameOption != null\n  };\n\n  if (!result.specified) {\n    var firstCmpt = void 0;\n    result.models = opt.useDefault && (firstCmpt = ecModel.getComponent(mainType)) ? [firstCmpt] : [];\n    return result;\n  }\n\n  if (indexOption === 'none' || indexOption === false) {\n    assert(opt.enableNone, '`\"none\"` or `false` is not a valid value on index option.');\n    result.models = [];\n    return result;\n  }\n\n  if (indexOption === 'all') {\n    assert(opt.enableAll, '`\"all\"` is not a valid value on index option.');\n    indexOption = idOption = nameOption = null;\n  }\n\n  result.models = ecModel.queryComponents({\n    mainType: mainType,\n    index: indexOption,\n    id: idOption,\n    name: nameOption\n  });\n  return result;\n}\nexport function setAttribute(dom, key, value) {\n  dom.setAttribute ? dom.setAttribute(key, value) : dom[key] = value;\n}\nexport function getAttribute(dom, key) {\n  return dom.getAttribute ? dom.getAttribute(key) : dom[key];\n}\nexport function getTooltipRenderMode(renderModeOption) {\n  if (renderModeOption === 'auto') {\n    return env.domSupported ? 'html' : 'richText';\n  } else {\n    return renderModeOption || 'html';\n  }\n}\nexport function groupData(array, getKey) {\n  var buckets = createHashMap();\n  var keys = [];\n  each(array, function (item) {\n    var key = getKey(item);\n    (buckets.get(key) || (keys.push(key), buckets.set(key, []))).push(item);\n  });\n  return {\n    keys: keys,\n    buckets: buckets\n  };\n}\nexport function interpolateRawValues(data, precision, sourceValue, targetValue, percent) {\n  var isAutoPrecision = precision == null || precision === 'auto';\n\n  if (targetValue == null) {\n    return targetValue;\n  }\n\n  if (typeof targetValue === 'number') {\n    var value = interpolateNumber(sourceValue || 0, targetValue, percent);\n    return round(value, isAutoPrecision ? Math.max(getPrecisionSafe(sourceValue || 0), getPrecisionSafe(targetValue)) : precision);\n  } else if (typeof targetValue === 'string') {\n    return percent < 1 ? sourceValue : targetValue;\n  } else {\n    var interpolated = [];\n    var leftArr = sourceValue;\n    var rightArr = targetValue;\n    var length_1 = Math.max(leftArr ? leftArr.length : 0, rightArr.length);\n\n    for (var i = 0; i < length_1; ++i) {\n      var info = data.getDimensionInfo(i);\n\n      if (info.type === 'ordinal') {\n        interpolated[i] = (percent < 1 && leftArr ? leftArr : rightArr)[i];\n      } else {\n        var leftVal = leftArr && leftArr[i] ? leftArr[i] : 0;\n        var rightVal = rightArr[i];\n        var value = interpolateNumber(leftVal, rightVal, percent);\n        interpolated[i] = round(value, isAutoPrecision ? Math.max(getPrecisionSafe(leftVal), getPrecisionSafe(rightVal)) : precision);\n      }\n    }\n\n    return interpolated;\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __spreadArrays } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nvar TYPE_DELIMITER = '.';\nvar IS_CONTAINER = '___EC__COMPONENT__CONTAINER___';\nvar IS_EXTENDED_CLASS = '___EC__EXTENDED_CLASS___';\nexport function parseClassType(componentType) {\n  var ret = {\n    main: '',\n    sub: ''\n  };\n\n  if (componentType) {\n    var typeArr = componentType.split(TYPE_DELIMITER);\n    ret.main = typeArr[0] || '';\n    ret.sub = typeArr[1] || '';\n  }\n\n  return ret;\n}\n\nfunction checkClassType(componentType) {\n  zrUtil.assert(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(componentType), 'componentType \"' + componentType + '\" illegal');\n}\n\nexport function isExtendedClass(clz) {\n  return !!(clz && clz[IS_EXTENDED_CLASS]);\n}\nexport function enableClassExtend(rootClz, mandatoryMethods) {\n  rootClz.$constructor = rootClz;\n\n  rootClz.extend = function (proto) {\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.each(mandatoryMethods, function (method) {\n        if (!proto[method]) {\n          console.warn('Method `' + method + '` should be implemented' + (proto.type ? ' in ' + proto.type : '') + '.');\n        }\n      });\n    }\n\n    var superClass = this;\n\n    function ExtendedClass() {\n      var args = [];\n\n      for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n      }\n\n      if (!proto.$constructor) {\n        if (!isESClass(superClass)) {\n          superClass.apply(this, arguments);\n        } else {\n          var ins = zrUtil.createObject(ExtendedClass.prototype, new (superClass.bind.apply(superClass, __spreadArrays([void 0], args)))());\n          return ins;\n        }\n      } else {\n        proto.$constructor.apply(this, arguments);\n      }\n    }\n\n    ExtendedClass[IS_EXTENDED_CLASS] = true;\n    zrUtil.extend(ExtendedClass.prototype, proto);\n    ExtendedClass.extend = this.extend;\n    ExtendedClass.superCall = superCall;\n    ExtendedClass.superApply = superApply;\n    zrUtil.inherits(ExtendedClass, this);\n    ExtendedClass.superClass = superClass;\n    return ExtendedClass;\n  };\n}\n\nfunction isESClass(fn) {\n  return typeof fn === 'function' && /^class\\s/.test(Function.prototype.toString.call(fn));\n}\n\nexport function mountExtend(SubClz, SupperClz) {\n  SubClz.extend = SupperClz.extend;\n}\nvar classBase = Math.round(Math.random() * 10);\nexport function enableClassCheck(target) {\n  var classAttr = ['__\\0is_clz', classBase++].join('_');\n  target.prototype[classAttr] = true;\n\n  if (process.env.NODE_ENV !== 'production') {\n    zrUtil.assert(!target.isInstance, 'The method \"is\" can not be defined.');\n  }\n\n  target.isInstance = function (obj) {\n    return !!(obj && obj[classAttr]);\n  };\n}\n\nfunction superCall(context, methodName) {\n  var args = [];\n\n  for (var _i = 2; _i < arguments.length; _i++) {\n    args[_i - 2] = arguments[_i];\n  }\n\n  return this.superClass.prototype[methodName].apply(context, args);\n}\n\nfunction superApply(context, methodName, args) {\n  return this.superClass.prototype[methodName].apply(context, args);\n}\n\nexport function enableClassManagement(target) {\n  var storage = {};\n\n  target.registerClass = function (clz) {\n    var componentFullType = clz.type || clz.prototype.type;\n\n    if (componentFullType) {\n      checkClassType(componentFullType);\n      clz.prototype.type = componentFullType;\n      var componentTypeInfo = parseClassType(componentFullType);\n\n      if (!componentTypeInfo.sub) {\n        if (process.env.NODE_ENV !== 'production') {\n          if (storage[componentTypeInfo.main]) {\n            console.warn(componentTypeInfo.main + ' exists.');\n          }\n        }\n\n        storage[componentTypeInfo.main] = clz;\n      } else if (componentTypeInfo.sub !== IS_CONTAINER) {\n        var container = makeContainer(componentTypeInfo);\n        container[componentTypeInfo.sub] = clz;\n      }\n    }\n\n    return clz;\n  };\n\n  target.getClass = function (mainType, subType, throwWhenNotFound) {\n    var clz = storage[mainType];\n\n    if (clz && clz[IS_CONTAINER]) {\n      clz = subType ? clz[subType] : null;\n    }\n\n    if (throwWhenNotFound && !clz) {\n      throw new Error(!subType ? mainType + '.' + 'type should be specified.' : 'Component ' + mainType + '.' + (subType || '') + ' not exists. Load it first.');\n    }\n\n    return clz;\n  };\n\n  target.getClassesByMainType = function (componentType) {\n    var componentTypeInfo = parseClassType(componentType);\n    var result = [];\n    var obj = storage[componentTypeInfo.main];\n\n    if (obj && obj[IS_CONTAINER]) {\n      zrUtil.each(obj, function (o, type) {\n        type !== IS_CONTAINER && result.push(o);\n      });\n    } else {\n      result.push(obj);\n    }\n\n    return result;\n  };\n\n  target.hasClass = function (componentType) {\n    var componentTypeInfo = parseClassType(componentType);\n    return !!storage[componentTypeInfo.main];\n  };\n\n  target.getAllClassMainTypes = function () {\n    var types = [];\n    zrUtil.each(storage, function (obj, type) {\n      types.push(type);\n    });\n    return types;\n  };\n\n  target.hasSubTypes = function (componentType) {\n    var componentTypeInfo = parseClassType(componentType);\n    var obj = storage[componentTypeInfo.main];\n    return obj && obj[IS_CONTAINER];\n  };\n\n  function makeContainer(componentTypeInfo) {\n    var container = storage[componentTypeInfo.main];\n\n    if (!container || !container[IS_CONTAINER]) {\n      container = storage[componentTypeInfo.main] = {};\n      container[IS_CONTAINER] = true;\n    }\n\n    return container;\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function makeStyleMapper(properties, ignoreParent) {\n  for (var i = 0; i < properties.length; i++) {\n    if (!properties[i][1]) {\n      properties[i][1] = properties[i][0];\n    }\n  }\n\n  ignoreParent = ignoreParent || false;\n  return function (model, excludes, includes) {\n    var style = {};\n\n    for (var i = 0; i < properties.length; i++) {\n      var propName = properties[i][1];\n\n      if (excludes && zrUtil.indexOf(excludes, propName) >= 0 || includes && zrUtil.indexOf(includes, propName) < 0) {\n        continue;\n      }\n\n      var val = model.getShallow(propName, ignoreParent);\n\n      if (val != null) {\n        style[properties[i][0]] = val;\n      }\n    }\n\n    return style;\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport makeStyleMapper from './makeStyleMapper';\nexport var AREA_STYLE_KEY_MAP = [['fill', 'color'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['opacity'], ['shadowColor']];\nvar getAreaStyle = makeStyleMapper(AREA_STYLE_KEY_MAP);\n\nvar AreaStyleMixin = function () {\n  function AreaStyleMixin() {}\n\n  AreaStyleMixin.prototype.getAreaStyle = function (excludes, includes) {\n    return getAreaStyle(this, excludes, includes);\n  };\n\n  return AreaStyleMixin;\n}();\n\n;\nexport { AreaStyleMixin };","import LRU from '../../core/LRU';\nvar globalImageCache = new LRU(50);\nexport function findExistImage(newImageOrSrc) {\n    if (typeof newImageOrSrc === 'string') {\n        var cachedImgObj = globalImageCache.get(newImageOrSrc);\n        return cachedImgObj && cachedImgObj.image;\n    }\n    else {\n        return newImageOrSrc;\n    }\n}\nexport function createOrUpdateImage(newImageOrSrc, image, hostEl, onload, cbPayload) {\n    if (!newImageOrSrc) {\n        return image;\n    }\n    else if (typeof newImageOrSrc === 'string') {\n        if ((image && image.__zrImageSrc === newImageOrSrc) || !hostEl) {\n            return image;\n        }\n        var cachedImgObj = globalImageCache.get(newImageOrSrc);\n        var pendingWrap = { hostEl: hostEl, cb: onload, cbPayload: cbPayload };\n        if (cachedImgObj) {\n            image = cachedImgObj.image;\n            !isImageReady(image) && cachedImgObj.pending.push(pendingWrap);\n        }\n        else {\n            image = new Image();\n            image.onload = image.onerror = imageOnLoad;\n            globalImageCache.put(newImageOrSrc, image.__cachedImgObj = {\n                image: image,\n                pending: [pendingWrap]\n            });\n            image.src = image.__zrImageSrc = newImageOrSrc;\n        }\n        return image;\n    }\n    else {\n        return newImageOrSrc;\n    }\n}\nfunction imageOnLoad() {\n    var cachedImgObj = this.__cachedImgObj;\n    this.onload = this.onerror = this.__cachedImgObj = null;\n    for (var i = 0; i < cachedImgObj.pending.length; i++) {\n        var pendingWrap = cachedImgObj.pending[i];\n        var cb = pendingWrap.cb;\n        cb && cb(this, pendingWrap.cbPayload);\n        pendingWrap.hostEl.dirty();\n    }\n    cachedImgObj.pending.length = 0;\n}\nexport function isImageReady(image) {\n    return image && image.width && image.height;\n}\n","import * as imageHelper from '../helper/image';\nimport { extend, retrieve2, retrieve3, reduce } from '../../core/util';\nimport { getLineHeight, getWidth } from '../../contain/text';\nvar STYLE_REG = /\\{([a-zA-Z0-9_]+)\\|([^}]*)\\}/g;\nexport function truncateText(text, containerWidth, font, ellipsis, options) {\n    if (!containerWidth) {\n        return '';\n    }\n    var textLines = (text + '').split('\\n');\n    options = prepareTruncateOptions(containerWidth, font, ellipsis, options);\n    for (var i = 0, len = textLines.length; i < len; i++) {\n        textLines[i] = truncateSingleLine(textLines[i], options);\n    }\n    return textLines.join('\\n');\n}\nfunction prepareTruncateOptions(containerWidth, font, ellipsis, options) {\n    options = options || {};\n    var preparedOpts = extend({}, options);\n    preparedOpts.font = font;\n    ellipsis = retrieve2(ellipsis, '...');\n    preparedOpts.maxIterations = retrieve2(options.maxIterations, 2);\n    var minChar = preparedOpts.minChar = retrieve2(options.minChar, 0);\n    preparedOpts.cnCharWidth = getWidth('国', font);\n    var ascCharWidth = preparedOpts.ascCharWidth = getWidth('a', font);\n    preparedOpts.placeholder = retrieve2(options.placeholder, '');\n    var contentWidth = containerWidth = Math.max(0, containerWidth - 1);\n    for (var i = 0; i < minChar && contentWidth >= ascCharWidth; i++) {\n        contentWidth -= ascCharWidth;\n    }\n    var ellipsisWidth = getWidth(ellipsis, font);\n    if (ellipsisWidth > contentWidth) {\n        ellipsis = '';\n        ellipsisWidth = 0;\n    }\n    contentWidth = containerWidth - ellipsisWidth;\n    preparedOpts.ellipsis = ellipsis;\n    preparedOpts.ellipsisWidth = ellipsisWidth;\n    preparedOpts.contentWidth = contentWidth;\n    preparedOpts.containerWidth = containerWidth;\n    return preparedOpts;\n}\nfunction truncateSingleLine(textLine, options) {\n    var containerWidth = options.containerWidth;\n    var font = options.font;\n    var contentWidth = options.contentWidth;\n    if (!containerWidth) {\n        return '';\n    }\n    var lineWidth = getWidth(textLine, font);\n    if (lineWidth <= containerWidth) {\n        return textLine;\n    }\n    for (var j = 0;; j++) {\n        if (lineWidth <= contentWidth || j >= options.maxIterations) {\n            textLine += options.ellipsis;\n            break;\n        }\n        var subLength = j === 0\n            ? estimateLength(textLine, contentWidth, options.ascCharWidth, options.cnCharWidth)\n            : lineWidth > 0\n                ? Math.floor(textLine.length * contentWidth / lineWidth)\n                : 0;\n        textLine = textLine.substr(0, subLength);\n        lineWidth = getWidth(textLine, font);\n    }\n    if (textLine === '') {\n        textLine = options.placeholder;\n    }\n    return textLine;\n}\nfunction estimateLength(text, contentWidth, ascCharWidth, cnCharWidth) {\n    var width = 0;\n    var i = 0;\n    for (var len = text.length; i < len && width < contentWidth; i++) {\n        var charCode = text.charCodeAt(i);\n        width += (0 <= charCode && charCode <= 127) ? ascCharWidth : cnCharWidth;\n    }\n    return i;\n}\nexport function parsePlainText(text, style) {\n    text != null && (text += '');\n    var overflow = style.overflow;\n    var padding = style.padding;\n    var font = style.font;\n    var truncate = overflow === 'truncate';\n    var calculatedLineHeight = getLineHeight(font);\n    var lineHeight = retrieve2(style.lineHeight, calculatedLineHeight);\n    var truncateLineOverflow = style.lineOverflow === 'truncate';\n    var width = style.width;\n    var lines;\n    if (width != null && overflow === 'break' || overflow === 'breakAll') {\n        lines = text ? wrapText(text, style.font, width, overflow === 'breakAll', 0).lines : [];\n    }\n    else {\n        lines = text ? text.split('\\n') : [];\n    }\n    var contentHeight = lines.length * lineHeight;\n    var height = retrieve2(style.height, contentHeight);\n    if (contentHeight > height && truncateLineOverflow) {\n        var lineCount = Math.floor(height / lineHeight);\n        lines = lines.slice(0, lineCount);\n    }\n    var outerHeight = height;\n    var outerWidth = width;\n    if (padding) {\n        outerHeight += padding[0] + padding[2];\n        if (outerWidth != null) {\n            outerWidth += padding[1] + padding[3];\n        }\n    }\n    if (text && truncate && outerWidth != null) {\n        var options = prepareTruncateOptions(width, font, style.ellipsis, {\n            minChar: style.truncateMinChar,\n            placeholder: style.placeholder\n        });\n        for (var i = 0; i < lines.length; i++) {\n            lines[i] = truncateSingleLine(lines[i], options);\n        }\n    }\n    if (width == null) {\n        var maxWidth = 0;\n        for (var i = 0; i < lines.length; i++) {\n            maxWidth = Math.max(getWidth(lines[i], font), maxWidth);\n        }\n        width = maxWidth;\n    }\n    return {\n        lines: lines,\n        height: height,\n        outerHeight: outerHeight,\n        lineHeight: lineHeight,\n        calculatedLineHeight: calculatedLineHeight,\n        contentHeight: contentHeight,\n        width: width\n    };\n}\nvar RichTextToken = (function () {\n    function RichTextToken() {\n    }\n    return RichTextToken;\n}());\nvar RichTextLine = (function () {\n    function RichTextLine(tokens) {\n        this.tokens = [];\n        if (tokens) {\n            this.tokens = tokens;\n        }\n    }\n    return RichTextLine;\n}());\nvar RichTextContentBlock = (function () {\n    function RichTextContentBlock() {\n        this.width = 0;\n        this.height = 0;\n        this.contentWidth = 0;\n        this.contentHeight = 0;\n        this.outerWidth = 0;\n        this.outerHeight = 0;\n        this.lines = [];\n    }\n    return RichTextContentBlock;\n}());\nexport { RichTextContentBlock };\nexport function parseRichText(text, style) {\n    var contentBlock = new RichTextContentBlock();\n    text != null && (text += '');\n    if (!text) {\n        return contentBlock;\n    }\n    var topWidth = style.width;\n    var topHeight = style.height;\n    var overflow = style.overflow;\n    var wrapInfo = (overflow === 'break' || overflow === 'breakAll') && topWidth != null\n        ? { width: topWidth, accumWidth: 0, breakAll: overflow === 'breakAll' }\n        : null;\n    var lastIndex = STYLE_REG.lastIndex = 0;\n    var result;\n    while ((result = STYLE_REG.exec(text)) != null) {\n        var matchedIndex = result.index;\n        if (matchedIndex > lastIndex) {\n            pushTokens(contentBlock, text.substring(lastIndex, matchedIndex), style, wrapInfo);\n        }\n        pushTokens(contentBlock, result[2], style, wrapInfo, result[1]);\n        lastIndex = STYLE_REG.lastIndex;\n    }\n    if (lastIndex < text.length) {\n        pushTokens(contentBlock, text.substring(lastIndex, text.length), style, wrapInfo);\n    }\n    var pendingList = [];\n    var calculatedHeight = 0;\n    var calculatedWidth = 0;\n    var stlPadding = style.padding;\n    var truncate = overflow === 'truncate';\n    var truncateLine = style.lineOverflow === 'truncate';\n    var prevToken;\n    function finishLine(line, lineWidth, lineHeight) {\n        line.width = lineWidth;\n        line.lineHeight = lineHeight;\n        calculatedHeight += lineHeight;\n        calculatedWidth = Math.max(calculatedWidth, lineWidth);\n    }\n    outer: for (var i = 0; i < contentBlock.lines.length; i++) {\n        var line = contentBlock.lines[i];\n        var lineHeight = 0;\n        var lineWidth = 0;\n        for (var j = 0; j < line.tokens.length; j++) {\n            var token = line.tokens[j];\n            var tokenStyle = token.styleName && style.rich[token.styleName] || {};\n            var textPadding = token.textPadding = tokenStyle.padding;\n            var paddingH = textPadding ? textPadding[1] + textPadding[3] : 0;\n            var font = token.font = tokenStyle.font || style.font;\n            token.contentHeight = getLineHeight(font);\n            var tokenHeight = retrieve2(tokenStyle.height, token.contentHeight);\n            token.innerHeight = tokenHeight;\n            textPadding && (tokenHeight += textPadding[0] + textPadding[2]);\n            token.height = tokenHeight;\n            token.lineHeight = retrieve3(tokenStyle.lineHeight, style.lineHeight, tokenHeight);\n            token.align = tokenStyle && tokenStyle.align || style.align;\n            token.verticalAlign = tokenStyle && tokenStyle.verticalAlign || 'middle';\n            if (truncateLine && topHeight != null && calculatedHeight + token.lineHeight > topHeight) {\n                if (j > 0) {\n                    line.tokens = line.tokens.slice(0, j);\n                    finishLine(line, lineWidth, lineHeight);\n                    contentBlock.lines = contentBlock.lines.slice(0, i + 1);\n                }\n                else {\n                    contentBlock.lines = contentBlock.lines.slice(0, i);\n                }\n                break outer;\n            }\n            var styleTokenWidth = tokenStyle.width;\n            var tokenWidthNotSpecified = styleTokenWidth == null || styleTokenWidth === 'auto';\n            if (typeof styleTokenWidth === 'string' && styleTokenWidth.charAt(styleTokenWidth.length - 1) === '%') {\n                token.percentWidth = styleTokenWidth;\n                pendingList.push(token);\n                token.contentWidth = getWidth(token.text, font);\n            }\n            else {\n                if (tokenWidthNotSpecified) {\n                    var textBackgroundColor = tokenStyle.backgroundColor;\n                    var bgImg = textBackgroundColor && textBackgroundColor.image;\n                    if (bgImg) {\n                        bgImg = imageHelper.findExistImage(bgImg);\n                        if (imageHelper.isImageReady(bgImg)) {\n                            token.width = Math.max(token.width, bgImg.width * tokenHeight / bgImg.height);\n                        }\n                    }\n                }\n                var remainTruncWidth = truncate && topWidth != null\n                    ? topWidth - lineWidth : null;\n                if (remainTruncWidth != null && remainTruncWidth < token.width) {\n                    if (!tokenWidthNotSpecified || remainTruncWidth < paddingH) {\n                        token.text = '';\n                        token.width = token.contentWidth = 0;\n                    }\n                    else {\n                        token.text = truncateText(token.text, remainTruncWidth - paddingH, font, style.ellipsis, { minChar: style.truncateMinChar });\n                        token.width = token.contentWidth = getWidth(token.text, font);\n                    }\n                }\n                else {\n                    token.contentWidth = getWidth(token.text, font);\n                }\n            }\n            token.width += paddingH;\n            lineWidth += token.width;\n            tokenStyle && (lineHeight = Math.max(lineHeight, token.lineHeight));\n            prevToken = token;\n        }\n        finishLine(line, lineWidth, lineHeight);\n    }\n    contentBlock.outerWidth = contentBlock.width = retrieve2(topWidth, calculatedWidth);\n    contentBlock.outerHeight = contentBlock.height = retrieve2(topHeight, calculatedHeight);\n    contentBlock.contentHeight = calculatedHeight;\n    contentBlock.contentWidth = calculatedWidth;\n    if (stlPadding) {\n        contentBlock.outerWidth += stlPadding[1] + stlPadding[3];\n        contentBlock.outerHeight += stlPadding[0] + stlPadding[2];\n    }\n    for (var i = 0; i < pendingList.length; i++) {\n        var token = pendingList[i];\n        var percentWidth = token.percentWidth;\n        token.width = parseInt(percentWidth, 10) / 100 * contentBlock.width;\n    }\n    return contentBlock;\n}\nfunction pushTokens(block, str, style, wrapInfo, styleName) {\n    var isEmptyStr = str === '';\n    var tokenStyle = styleName && style.rich[styleName] || {};\n    var lines = block.lines;\n    var font = tokenStyle.font || style.font;\n    var newLine = false;\n    var strLines;\n    var linesWidths;\n    if (wrapInfo) {\n        var tokenPadding = tokenStyle.padding;\n        var tokenPaddingH = tokenPadding ? tokenPadding[1] + tokenPadding[3] : 0;\n        if (tokenStyle.width != null && tokenStyle.width !== 'auto') {\n            var outerWidth_1 = parsePercent(tokenStyle.width, wrapInfo.width) + tokenPaddingH;\n            if (lines.length > 0) {\n                if (outerWidth_1 + wrapInfo.accumWidth > wrapInfo.width) {\n                    strLines = str.split('\\n');\n                    newLine = true;\n                }\n            }\n            wrapInfo.accumWidth = outerWidth_1;\n        }\n        else {\n            var res = wrapText(str, font, wrapInfo.width, wrapInfo.breakAll, wrapInfo.accumWidth);\n            wrapInfo.accumWidth = res.accumWidth + tokenPaddingH;\n            linesWidths = res.linesWidths;\n            strLines = res.lines;\n        }\n    }\n    else {\n        strLines = str.split('\\n');\n    }\n    for (var i = 0; i < strLines.length; i++) {\n        var text = strLines[i];\n        var token = new RichTextToken();\n        token.styleName = styleName;\n        token.text = text;\n        token.isLineHolder = !text && !isEmptyStr;\n        if (typeof tokenStyle.width === 'number') {\n            token.width = tokenStyle.width;\n        }\n        else {\n            token.width = linesWidths\n                ? linesWidths[i]\n                : getWidth(text, font);\n        }\n        if (!i && !newLine) {\n            var tokens = (lines[lines.length - 1] || (lines[0] = new RichTextLine())).tokens;\n            var tokensLen = tokens.length;\n            (tokensLen === 1 && tokens[0].isLineHolder)\n                ? (tokens[0] = token)\n                : ((text || !tokensLen || isEmptyStr) && tokens.push(token));\n        }\n        else {\n            lines.push(new RichTextLine([token]));\n        }\n    }\n}\nfunction isLatin(ch) {\n    var code = ch.charCodeAt(0);\n    return code >= 0x21 && code <= 0xFF;\n}\nvar breakCharMap = reduce(',&?/;] '.split(''), function (obj, ch) {\n    obj[ch] = true;\n    return obj;\n}, {});\nfunction isWordBreakChar(ch) {\n    if (isLatin(ch)) {\n        if (breakCharMap[ch]) {\n            return true;\n        }\n        return false;\n    }\n    return true;\n}\nfunction wrapText(text, font, lineWidth, isBreakAll, lastAccumWidth) {\n    var lines = [];\n    var linesWidths = [];\n    var line = '';\n    var currentWord = '';\n    var currentWordWidth = 0;\n    var accumWidth = 0;\n    for (var i = 0; i < text.length; i++) {\n        var ch = text.charAt(i);\n        if (ch === '\\n') {\n            if (currentWord) {\n                line += currentWord;\n                accumWidth += currentWordWidth;\n            }\n            lines.push(line);\n            linesWidths.push(accumWidth);\n            line = '';\n            currentWord = '';\n            currentWordWidth = 0;\n            accumWidth = 0;\n            continue;\n        }\n        var chWidth = getWidth(ch, font);\n        var inWord = isBreakAll ? false : !isWordBreakChar(ch);\n        if (!lines.length\n            ? lastAccumWidth + accumWidth + chWidth > lineWidth\n            : accumWidth + chWidth > lineWidth) {\n            if (!accumWidth) {\n                if (inWord) {\n                    lines.push(currentWord);\n                    linesWidths.push(currentWordWidth);\n                    currentWord = ch;\n                    currentWordWidth = chWidth;\n                }\n                else {\n                    lines.push(ch);\n                    linesWidths.push(chWidth);\n                }\n            }\n            else if (line || currentWord) {\n                if (inWord) {\n                    if (!line) {\n                        line = currentWord;\n                        currentWord = '';\n                        currentWordWidth = 0;\n                        accumWidth = currentWordWidth;\n                    }\n                    lines.push(line);\n                    linesWidths.push(accumWidth - currentWordWidth);\n                    currentWord += ch;\n                    currentWordWidth += chWidth;\n                    line = '';\n                    accumWidth = currentWordWidth;\n                }\n                else {\n                    if (currentWord) {\n                        line += currentWord;\n                        accumWidth += currentWordWidth;\n                        currentWord = '';\n                        currentWordWidth = 0;\n                    }\n                    lines.push(line);\n                    linesWidths.push(accumWidth);\n                    line = ch;\n                    accumWidth = chWidth;\n                }\n            }\n            continue;\n        }\n        accumWidth += chWidth;\n        if (inWord) {\n            currentWord += ch;\n            currentWordWidth += chWidth;\n        }\n        else {\n            if (currentWord) {\n                line += currentWord;\n                currentWord = '';\n                currentWordWidth = 0;\n            }\n            line += ch;\n        }\n    }\n    if (!lines.length && !line) {\n        line = text;\n        currentWord = '';\n        currentWordWidth = 0;\n    }\n    if (currentWord) {\n        line += currentWord;\n    }\n    if (line) {\n        lines.push(line);\n        linesWidths.push(accumWidth);\n    }\n    if (lines.length === 1) {\n        accumWidth += lastAccumWidth;\n    }\n    return {\n        accumWidth: accumWidth,\n        lines: lines,\n        linesWidths: linesWidths\n    };\n}\nfunction parsePercent(value, maxValue) {\n    if (typeof value === 'string') {\n        if (value.lastIndexOf('%') >= 0) {\n            return parseFloat(value) / 100 * maxValue;\n        }\n        return parseFloat(value);\n    }\n    return value;\n}\n","import { __extends } from \"tslib\";\nimport Element from '../Element';\nimport BoundingRect from '../core/BoundingRect';\nimport { keys, extend, createObject } from '../core/util';\nvar STYLE_MAGIC_KEY = '__zr_style_' + Math.round((Math.random() * 10));\nexport var DEFAULT_COMMON_STYLE = {\n    shadowBlur: 0,\n    shadowOffsetX: 0,\n    shadowOffsetY: 0,\n    shadowColor: '#000',\n    opacity: 1,\n    blend: 'source-over'\n};\nexport var DEFAULT_COMMON_ANIMATION_PROPS = {\n    style: {\n        shadowBlur: true,\n        shadowOffsetX: true,\n        shadowOffsetY: true,\n        shadowColor: true,\n        opacity: true\n    }\n};\nDEFAULT_COMMON_STYLE[STYLE_MAGIC_KEY] = true;\nvar PRIMARY_STATES_KEYS = ['z', 'z2', 'invisible'];\nvar Displayable = (function (_super) {\n    __extends(Displayable, _super);\n    function Displayable(props) {\n        return _super.call(this, props) || this;\n    }\n    Displayable.prototype._init = function (props) {\n        var keysArr = keys(props);\n        for (var i = 0; i < keysArr.length; i++) {\n            var key = keysArr[i];\n            if (key === 'style') {\n                this.useStyle(props[key]);\n            }\n            else {\n                _super.prototype.attrKV.call(this, key, props[key]);\n            }\n        }\n        if (!this.style) {\n            this.useStyle({});\n        }\n    };\n    Displayable.prototype.beforeBrush = function () { };\n    Displayable.prototype.afterBrush = function () { };\n    Displayable.prototype.innerBeforeBrush = function () { };\n    Displayable.prototype.innerAfterBrush = function () { };\n    Displayable.prototype.shouldBePainted = function (viewWidth, viewHeight, considerClipPath, considerAncestors) {\n        var m = this.transform;\n        if (this.ignore\n            || this.invisible\n            || this.style.opacity === 0\n            || (this.culling\n                && isDisplayableCulled(this, viewWidth, viewHeight))\n            || (m && !m[0] && !m[3])) {\n            return false;\n        }\n        if (considerClipPath && this.__clipPaths) {\n            for (var i = 0; i < this.__clipPaths.length; ++i) {\n                if (this.__clipPaths[i].isZeroArea()) {\n                    return false;\n                }\n            }\n        }\n        if (considerAncestors && this.parent) {\n            var parent_1 = this.parent;\n            while (parent_1) {\n                if (parent_1.ignore) {\n                    return false;\n                }\n                parent_1 = parent_1.parent;\n            }\n        }\n        return true;\n    };\n    Displayable.prototype.contain = function (x, y) {\n        return this.rectContain(x, y);\n    };\n    Displayable.prototype.traverse = function (cb, context) {\n        cb.call(context, this);\n    };\n    Displayable.prototype.rectContain = function (x, y) {\n        var coord = this.transformCoordToLocal(x, y);\n        var rect = this.getBoundingRect();\n        return rect.contain(coord[0], coord[1]);\n    };\n    Displayable.prototype.getPaintRect = function () {\n        var rect = this._paintRect;\n        if (!this._paintRect || this.__dirty) {\n            var transform = this.transform;\n            var elRect = this.getBoundingRect();\n            var style = this.style;\n            var shadowSize = style.shadowBlur || 0;\n            var shadowOffsetX = style.shadowOffsetX || 0;\n            var shadowOffsetY = style.shadowOffsetY || 0;\n            rect = this._paintRect || (this._paintRect = new BoundingRect(0, 0, 0, 0));\n            if (transform) {\n                BoundingRect.applyTransform(rect, elRect, transform);\n            }\n            else {\n                rect.copy(elRect);\n            }\n            if (shadowSize || shadowOffsetX || shadowOffsetY) {\n                rect.width += shadowSize * 2 + Math.abs(shadowOffsetX);\n                rect.height += shadowSize * 2 + Math.abs(shadowOffsetY);\n                rect.x = Math.min(rect.x, rect.x + shadowOffsetX - shadowSize);\n                rect.y = Math.min(rect.y, rect.y + shadowOffsetY - shadowSize);\n            }\n            var tolerance = this.dirtyRectTolerance;\n            if (!rect.isZero()) {\n                rect.x = Math.floor(rect.x - tolerance);\n                rect.y = Math.floor(rect.y - tolerance);\n                rect.width = Math.ceil(rect.width + 1 + tolerance * 2);\n                rect.height = Math.ceil(rect.height + 1 + tolerance * 2);\n            }\n        }\n        return rect;\n    };\n    Displayable.prototype.setPrevPaintRect = function (paintRect) {\n        if (paintRect) {\n            this._prevPaintRect = this._prevPaintRect || new BoundingRect(0, 0, 0, 0);\n            this._prevPaintRect.copy(paintRect);\n        }\n        else {\n            this._prevPaintRect = null;\n        }\n    };\n    Displayable.prototype.getPrevPaintRect = function () {\n        return this._prevPaintRect;\n    };\n    Displayable.prototype.animateStyle = function (loop) {\n        return this.animate('style', loop);\n    };\n    Displayable.prototype.updateDuringAnimation = function (targetKey) {\n        if (targetKey === 'style') {\n            this.dirtyStyle();\n        }\n        else {\n            this.markRedraw();\n        }\n    };\n    Displayable.prototype.attrKV = function (key, value) {\n        if (key !== 'style') {\n            _super.prototype.attrKV.call(this, key, value);\n        }\n        else {\n            if (!this.style) {\n                this.useStyle(value);\n            }\n            else {\n                this.setStyle(value);\n            }\n        }\n    };\n    Displayable.prototype.setStyle = function (keyOrObj, value) {\n        if (typeof keyOrObj === 'string') {\n            this.style[keyOrObj] = value;\n        }\n        else {\n            extend(this.style, keyOrObj);\n        }\n        this.dirtyStyle();\n        return this;\n    };\n    Displayable.prototype.dirtyStyle = function () {\n        this.markRedraw();\n        this.__dirty |= Displayable.STYLE_CHANGED_BIT;\n        if (this._rect) {\n            this._rect = null;\n        }\n    };\n    Displayable.prototype.dirty = function () {\n        this.dirtyStyle();\n    };\n    Displayable.prototype.styleChanged = function () {\n        return !!(this.__dirty & Displayable.STYLE_CHANGED_BIT);\n    };\n    Displayable.prototype.styleUpdated = function () {\n        this.__dirty &= ~Displayable.STYLE_CHANGED_BIT;\n    };\n    Displayable.prototype.createStyle = function (obj) {\n        return createObject(DEFAULT_COMMON_STYLE, obj);\n    };\n    Displayable.prototype.useStyle = function (obj) {\n        if (!obj[STYLE_MAGIC_KEY]) {\n            obj = this.createStyle(obj);\n        }\n        if (this.__inHover) {\n            this.__hoverStyle = obj;\n        }\n        else {\n            this.style = obj;\n        }\n        this.dirtyStyle();\n    };\n    Displayable.prototype.isStyleObject = function (obj) {\n        return obj[STYLE_MAGIC_KEY];\n    };\n    Displayable.prototype._innerSaveToNormal = function (toState) {\n        _super.prototype._innerSaveToNormal.call(this, toState);\n        var normalState = this._normalState;\n        if (toState.style && !normalState.style) {\n            normalState.style = this._mergeStyle(this.createStyle(), this.style);\n        }\n        this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS);\n    };\n    Displayable.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\n        _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\n        var needsRestoreToNormal = !(state && keepCurrentStates);\n        var targetStyle;\n        if (state && state.style) {\n            if (transition) {\n                if (keepCurrentStates) {\n                    targetStyle = state.style;\n                }\n                else {\n                    targetStyle = this._mergeStyle(this.createStyle(), normalState.style);\n                    this._mergeStyle(targetStyle, state.style);\n                }\n            }\n            else {\n                targetStyle = this._mergeStyle(this.createStyle(), keepCurrentStates ? this.style : normalState.style);\n                this._mergeStyle(targetStyle, state.style);\n            }\n        }\n        else if (needsRestoreToNormal) {\n            targetStyle = normalState.style;\n        }\n        if (targetStyle) {\n            if (transition) {\n                var sourceStyle = this.style;\n                this.style = this.createStyle(needsRestoreToNormal ? {} : sourceStyle);\n                if (needsRestoreToNormal) {\n                    var changedKeys = keys(sourceStyle);\n                    for (var i = 0; i < changedKeys.length; i++) {\n                        var key = changedKeys[i];\n                        if (key in targetStyle) {\n                            targetStyle[key] = targetStyle[key];\n                            this.style[key] = sourceStyle[key];\n                        }\n                    }\n                }\n                var targetKeys = keys(targetStyle);\n                for (var i = 0; i < targetKeys.length; i++) {\n                    var key = targetKeys[i];\n                    this.style[key] = this.style[key];\n                }\n                this._transitionState(stateName, {\n                    style: targetStyle\n                }, animationCfg, this.getAnimationStyleProps());\n            }\n            else {\n                this.useStyle(targetStyle);\n            }\n        }\n        for (var i = 0; i < PRIMARY_STATES_KEYS.length; i++) {\n            var key = PRIMARY_STATES_KEYS[i];\n            if (state && state[key] != null) {\n                this[key] = state[key];\n            }\n            else if (needsRestoreToNormal) {\n                if (normalState[key] != null) {\n                    this[key] = normalState[key];\n                }\n            }\n        }\n    };\n    Displayable.prototype._mergeStates = function (states) {\n        var mergedState = _super.prototype._mergeStates.call(this, states);\n        var mergedStyle;\n        for (var i = 0; i < states.length; i++) {\n            var state = states[i];\n            if (state.style) {\n                mergedStyle = mergedStyle || {};\n                this._mergeStyle(mergedStyle, state.style);\n            }\n        }\n        if (mergedStyle) {\n            mergedState.style = mergedStyle;\n        }\n        return mergedState;\n    };\n    Displayable.prototype._mergeStyle = function (targetStyle, sourceStyle) {\n        extend(targetStyle, sourceStyle);\n        return targetStyle;\n    };\n    Displayable.prototype.getAnimationStyleProps = function () {\n        return DEFAULT_COMMON_ANIMATION_PROPS;\n    };\n    Displayable.STYLE_CHANGED_BIT = 2;\n    Displayable.initDefaultProps = (function () {\n        var dispProto = Displayable.prototype;\n        dispProto.type = 'displayable';\n        dispProto.invisible = false;\n        dispProto.z = 0;\n        dispProto.z2 = 0;\n        dispProto.zlevel = 0;\n        dispProto.culling = false;\n        dispProto.cursor = 'pointer';\n        dispProto.rectHover = false;\n        dispProto.incremental = false;\n        dispProto._rect = null;\n        dispProto.dirtyRectTolerance = 0;\n        dispProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT;\n    })();\n    return Displayable;\n}(Element));\nvar tmpRect = new BoundingRect(0, 0, 0, 0);\nvar viewRect = new BoundingRect(0, 0, 0, 0);\nfunction isDisplayableCulled(el, width, height) {\n    tmpRect.copy(el.getBoundingRect());\n    if (el.transform) {\n        tmpRect.applyTransform(el.transform);\n    }\n    viewRect.width = width;\n    viewRect.height = height;\n    return !tmpRect.intersect(viewRect);\n}\nexport default Displayable;\n","import { create as v2Create, distSquare as v2DistSquare } from './vector';\nvar mathPow = Math.pow;\nvar mathSqrt = Math.sqrt;\nvar EPSILON = 1e-8;\nvar EPSILON_NUMERIC = 1e-4;\nvar THREE_SQRT = mathSqrt(3);\nvar ONE_THIRD = 1 / 3;\nvar _v0 = v2Create();\nvar _v1 = v2Create();\nvar _v2 = v2Create();\nfunction isAroundZero(val) {\n    return val > -EPSILON && val < EPSILON;\n}\nfunction isNotAroundZero(val) {\n    return val > EPSILON || val < -EPSILON;\n}\nexport function cubicAt(p0, p1, p2, p3, t) {\n    var onet = 1 - t;\n    return onet * onet * (onet * p0 + 3 * t * p1)\n        + t * t * (t * p3 + 3 * onet * p2);\n}\nexport function cubicDerivativeAt(p0, p1, p2, p3, t) {\n    var onet = 1 - t;\n    return 3 * (((p1 - p0) * onet + 2 * (p2 - p1) * t) * onet\n        + (p3 - p2) * t * t);\n}\nexport function cubicRootAt(p0, p1, p2, p3, val, roots) {\n    var a = p3 + 3 * (p1 - p2) - p0;\n    var b = 3 * (p2 - p1 * 2 + p0);\n    var c = 3 * (p1 - p0);\n    var d = p0 - val;\n    var A = b * b - 3 * a * c;\n    var B = b * c - 9 * a * d;\n    var C = c * c - 3 * b * d;\n    var n = 0;\n    if (isAroundZero(A) && isAroundZero(B)) {\n        if (isAroundZero(b)) {\n            roots[0] = 0;\n        }\n        else {\n            var t1 = -c / b;\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n        }\n    }\n    else {\n        var disc = B * B - 4 * A * C;\n        if (isAroundZero(disc)) {\n            var K = B / A;\n            var t1 = -b / a + K;\n            var t2 = -K / 2;\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n            if (t2 >= 0 && t2 <= 1) {\n                roots[n++] = t2;\n            }\n        }\n        else if (disc > 0) {\n            var discSqrt = mathSqrt(disc);\n            var Y1 = A * b + 1.5 * a * (-B + discSqrt);\n            var Y2 = A * b + 1.5 * a * (-B - discSqrt);\n            if (Y1 < 0) {\n                Y1 = -mathPow(-Y1, ONE_THIRD);\n            }\n            else {\n                Y1 = mathPow(Y1, ONE_THIRD);\n            }\n            if (Y2 < 0) {\n                Y2 = -mathPow(-Y2, ONE_THIRD);\n            }\n            else {\n                Y2 = mathPow(Y2, ONE_THIRD);\n            }\n            var t1 = (-b - (Y1 + Y2)) / (3 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n        }\n        else {\n            var T = (2 * A * b - 3 * a * B) / (2 * mathSqrt(A * A * A));\n            var theta = Math.acos(T) / 3;\n            var ASqrt = mathSqrt(A);\n            var tmp = Math.cos(theta);\n            var t1 = (-b - 2 * ASqrt * tmp) / (3 * a);\n            var t2 = (-b + ASqrt * (tmp + THREE_SQRT * Math.sin(theta))) / (3 * a);\n            var t3 = (-b + ASqrt * (tmp - THREE_SQRT * Math.sin(theta))) / (3 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n            if (t2 >= 0 && t2 <= 1) {\n                roots[n++] = t2;\n            }\n            if (t3 >= 0 && t3 <= 1) {\n                roots[n++] = t3;\n            }\n        }\n    }\n    return n;\n}\nexport function cubicExtrema(p0, p1, p2, p3, extrema) {\n    var b = 6 * p2 - 12 * p1 + 6 * p0;\n    var a = 9 * p1 + 3 * p3 - 3 * p0 - 9 * p2;\n    var c = 3 * p1 - 3 * p0;\n    var n = 0;\n    if (isAroundZero(a)) {\n        if (isNotAroundZero(b)) {\n            var t1 = -c / b;\n            if (t1 >= 0 && t1 <= 1) {\n                extrema[n++] = t1;\n            }\n        }\n    }\n    else {\n        var disc = b * b - 4 * a * c;\n        if (isAroundZero(disc)) {\n            extrema[0] = -b / (2 * a);\n        }\n        else if (disc > 0) {\n            var discSqrt = mathSqrt(disc);\n            var t1 = (-b + discSqrt) / (2 * a);\n            var t2 = (-b - discSqrt) / (2 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                extrema[n++] = t1;\n            }\n            if (t2 >= 0 && t2 <= 1) {\n                extrema[n++] = t2;\n            }\n        }\n    }\n    return n;\n}\nexport function cubicSubdivide(p0, p1, p2, p3, t, out) {\n    var p01 = (p1 - p0) * t + p0;\n    var p12 = (p2 - p1) * t + p1;\n    var p23 = (p3 - p2) * t + p2;\n    var p012 = (p12 - p01) * t + p01;\n    var p123 = (p23 - p12) * t + p12;\n    var p0123 = (p123 - p012) * t + p012;\n    out[0] = p0;\n    out[1] = p01;\n    out[2] = p012;\n    out[3] = p0123;\n    out[4] = p0123;\n    out[5] = p123;\n    out[6] = p23;\n    out[7] = p3;\n}\nexport function cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, out) {\n    var t;\n    var interval = 0.005;\n    var d = Infinity;\n    var prev;\n    var next;\n    var d1;\n    var d2;\n    _v0[0] = x;\n    _v0[1] = y;\n    for (var _t = 0; _t < 1; _t += 0.05) {\n        _v1[0] = cubicAt(x0, x1, x2, x3, _t);\n        _v1[1] = cubicAt(y0, y1, y2, y3, _t);\n        d1 = v2DistSquare(_v0, _v1);\n        if (d1 < d) {\n            t = _t;\n            d = d1;\n        }\n    }\n    d = Infinity;\n    for (var i = 0; i < 32; i++) {\n        if (interval < EPSILON_NUMERIC) {\n            break;\n        }\n        prev = t - interval;\n        next = t + interval;\n        _v1[0] = cubicAt(x0, x1, x2, x3, prev);\n        _v1[1] = cubicAt(y0, y1, y2, y3, prev);\n        d1 = v2DistSquare(_v1, _v0);\n        if (prev >= 0 && d1 < d) {\n            t = prev;\n            d = d1;\n        }\n        else {\n            _v2[0] = cubicAt(x0, x1, x2, x3, next);\n            _v2[1] = cubicAt(y0, y1, y2, y3, next);\n            d2 = v2DistSquare(_v2, _v0);\n            if (next <= 1 && d2 < d) {\n                t = next;\n                d = d2;\n            }\n            else {\n                interval *= 0.5;\n            }\n        }\n    }\n    if (out) {\n        out[0] = cubicAt(x0, x1, x2, x3, t);\n        out[1] = cubicAt(y0, y1, y2, y3, t);\n    }\n    return mathSqrt(d);\n}\nexport function cubicLength(x0, y0, x1, y1, x2, y2, x3, y3, iteration) {\n    var px = x0;\n    var py = y0;\n    var d = 0;\n    var step = 1 / iteration;\n    for (var i = 1; i <= iteration; i++) {\n        var t = i * step;\n        var x = cubicAt(x0, x1, x2, x3, t);\n        var y = cubicAt(y0, y1, y2, y3, t);\n        var dx = x - px;\n        var dy = y - py;\n        d += Math.sqrt(dx * dx + dy * dy);\n        px = x;\n        py = y;\n    }\n    return d;\n}\nexport function quadraticAt(p0, p1, p2, t) {\n    var onet = 1 - t;\n    return onet * (onet * p0 + 2 * t * p1) + t * t * p2;\n}\nexport function quadraticDerivativeAt(p0, p1, p2, t) {\n    return 2 * ((1 - t) * (p1 - p0) + t * (p2 - p1));\n}\nexport function quadraticRootAt(p0, p1, p2, val, roots) {\n    var a = p0 - 2 * p1 + p2;\n    var b = 2 * (p1 - p0);\n    var c = p0 - val;\n    var n = 0;\n    if (isAroundZero(a)) {\n        if (isNotAroundZero(b)) {\n            var t1 = -c / b;\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n        }\n    }\n    else {\n        var disc = b * b - 4 * a * c;\n        if (isAroundZero(disc)) {\n            var t1 = -b / (2 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n        }\n        else if (disc > 0) {\n            var discSqrt = mathSqrt(disc);\n            var t1 = (-b + discSqrt) / (2 * a);\n            var t2 = (-b - discSqrt) / (2 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n            if (t2 >= 0 && t2 <= 1) {\n                roots[n++] = t2;\n            }\n        }\n    }\n    return n;\n}\nexport function quadraticExtremum(p0, p1, p2) {\n    var divider = p0 + p2 - 2 * p1;\n    if (divider === 0) {\n        return 0.5;\n    }\n    else {\n        return (p0 - p1) / divider;\n    }\n}\nexport function quadraticSubdivide(p0, p1, p2, t, out) {\n    var p01 = (p1 - p0) * t + p0;\n    var p12 = (p2 - p1) * t + p1;\n    var p012 = (p12 - p01) * t + p01;\n    out[0] = p0;\n    out[1] = p01;\n    out[2] = p012;\n    out[3] = p012;\n    out[4] = p12;\n    out[5] = p2;\n}\nexport function quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, out) {\n    var t;\n    var interval = 0.005;\n    var d = Infinity;\n    _v0[0] = x;\n    _v0[1] = y;\n    for (var _t = 0; _t < 1; _t += 0.05) {\n        _v1[0] = quadraticAt(x0, x1, x2, _t);\n        _v1[1] = quadraticAt(y0, y1, y2, _t);\n        var d1 = v2DistSquare(_v0, _v1);\n        if (d1 < d) {\n            t = _t;\n            d = d1;\n        }\n    }\n    d = Infinity;\n    for (var i = 0; i < 32; i++) {\n        if (interval < EPSILON_NUMERIC) {\n            break;\n        }\n        var prev = t - interval;\n        var next = t + interval;\n        _v1[0] = quadraticAt(x0, x1, x2, prev);\n        _v1[1] = quadraticAt(y0, y1, y2, prev);\n        var d1 = v2DistSquare(_v1, _v0);\n        if (prev >= 0 && d1 < d) {\n            t = prev;\n            d = d1;\n        }\n        else {\n            _v2[0] = quadraticAt(x0, x1, x2, next);\n            _v2[1] = quadraticAt(y0, y1, y2, next);\n            var d2 = v2DistSquare(_v2, _v0);\n            if (next <= 1 && d2 < d) {\n                t = next;\n                d = d2;\n            }\n            else {\n                interval *= 0.5;\n            }\n        }\n    }\n    if (out) {\n        out[0] = quadraticAt(x0, x1, x2, t);\n        out[1] = quadraticAt(y0, y1, y2, t);\n    }\n    return mathSqrt(d);\n}\nexport function quadraticLength(x0, y0, x1, y1, x2, y2, iteration) {\n    var px = x0;\n    var py = y0;\n    var d = 0;\n    var step = 1 / iteration;\n    for (var i = 1; i <= iteration; i++) {\n        var t = i * step;\n        var x = quadraticAt(x0, x1, x2, t);\n        var y = quadraticAt(y0, y1, y2, t);\n        var dx = x - px;\n        var dy = y - py;\n        d += Math.sqrt(dx * dx + dy * dy);\n        px = x;\n        py = y;\n    }\n    return d;\n}\n","import * as vec2 from './vector';\nimport * as curve from './curve';\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI2 = Math.PI * 2;\nvar start = vec2.create();\nvar end = vec2.create();\nvar extremity = vec2.create();\nexport function fromPoints(points, min, max) {\n    if (points.length === 0) {\n        return;\n    }\n    var p = points[0];\n    var left = p[0];\n    var right = p[0];\n    var top = p[1];\n    var bottom = p[1];\n    for (var i = 1; i < points.length; i++) {\n        p = points[i];\n        left = mathMin(left, p[0]);\n        right = mathMax(right, p[0]);\n        top = mathMin(top, p[1]);\n        bottom = mathMax(bottom, p[1]);\n    }\n    min[0] = left;\n    min[1] = top;\n    max[0] = right;\n    max[1] = bottom;\n}\nexport function fromLine(x0, y0, x1, y1, min, max) {\n    min[0] = mathMin(x0, x1);\n    min[1] = mathMin(y0, y1);\n    max[0] = mathMax(x0, x1);\n    max[1] = mathMax(y0, y1);\n}\nvar xDim = [];\nvar yDim = [];\nexport function fromCubic(x0, y0, x1, y1, x2, y2, x3, y3, min, max) {\n    var cubicExtrema = curve.cubicExtrema;\n    var cubicAt = curve.cubicAt;\n    var n = cubicExtrema(x0, x1, x2, x3, xDim);\n    min[0] = Infinity;\n    min[1] = Infinity;\n    max[0] = -Infinity;\n    max[1] = -Infinity;\n    for (var i = 0; i < n; i++) {\n        var x = cubicAt(x0, x1, x2, x3, xDim[i]);\n        min[0] = mathMin(x, min[0]);\n        max[0] = mathMax(x, max[0]);\n    }\n    n = cubicExtrema(y0, y1, y2, y3, yDim);\n    for (var i = 0; i < n; i++) {\n        var y = cubicAt(y0, y1, y2, y3, yDim[i]);\n        min[1] = mathMin(y, min[1]);\n        max[1] = mathMax(y, max[1]);\n    }\n    min[0] = mathMin(x0, min[0]);\n    max[0] = mathMax(x0, max[0]);\n    min[0] = mathMin(x3, min[0]);\n    max[0] = mathMax(x3, max[0]);\n    min[1] = mathMin(y0, min[1]);\n    max[1] = mathMax(y0, max[1]);\n    min[1] = mathMin(y3, min[1]);\n    max[1] = mathMax(y3, max[1]);\n}\nexport function fromQuadratic(x0, y0, x1, y1, x2, y2, min, max) {\n    var quadraticExtremum = curve.quadraticExtremum;\n    var quadraticAt = curve.quadraticAt;\n    var tx = mathMax(mathMin(quadraticExtremum(x0, x1, x2), 1), 0);\n    var ty = mathMax(mathMin(quadraticExtremum(y0, y1, y2), 1), 0);\n    var x = quadraticAt(x0, x1, x2, tx);\n    var y = quadraticAt(y0, y1, y2, ty);\n    min[0] = mathMin(x0, x2, x);\n    min[1] = mathMin(y0, y2, y);\n    max[0] = mathMax(x0, x2, x);\n    max[1] = mathMax(y0, y2, y);\n}\nexport function fromArc(x, y, rx, ry, startAngle, endAngle, anticlockwise, min, max) {\n    var vec2Min = vec2.min;\n    var vec2Max = vec2.max;\n    var diff = Math.abs(startAngle - endAngle);\n    if (diff % PI2 < 1e-4 && diff > 1e-4) {\n        min[0] = x - rx;\n        min[1] = y - ry;\n        max[0] = x + rx;\n        max[1] = y + ry;\n        return;\n    }\n    start[0] = mathCos(startAngle) * rx + x;\n    start[1] = mathSin(startAngle) * ry + y;\n    end[0] = mathCos(endAngle) * rx + x;\n    end[1] = mathSin(endAngle) * ry + y;\n    vec2Min(min, start, end);\n    vec2Max(max, start, end);\n    startAngle = startAngle % (PI2);\n    if (startAngle < 0) {\n        startAngle = startAngle + PI2;\n    }\n    endAngle = endAngle % (PI2);\n    if (endAngle < 0) {\n        endAngle = endAngle + PI2;\n    }\n    if (startAngle > endAngle && !anticlockwise) {\n        endAngle += PI2;\n    }\n    else if (startAngle < endAngle && anticlockwise) {\n        startAngle += PI2;\n    }\n    if (anticlockwise) {\n        var tmp = endAngle;\n        endAngle = startAngle;\n        startAngle = tmp;\n    }\n    for (var angle = 0; angle < endAngle; angle += Math.PI / 2) {\n        if (angle > startAngle) {\n            extremity[0] = mathCos(angle) * rx + x;\n            extremity[1] = mathSin(angle) * ry + y;\n            vec2Min(min, extremity, min);\n            vec2Max(max, extremity, max);\n        }\n    }\n}\n","import * as vec2 from './vector';\nimport BoundingRect from './BoundingRect';\nimport { devicePixelRatio as dpr } from '../config';\nimport { fromLine, fromCubic, fromQuadratic, fromArc } from './bbox';\nimport { cubicAt, cubicLength, cubicSubdivide, quadraticLength, quadraticSubdivide } from './curve';\nvar CMD = {\n    M: 1,\n    L: 2,\n    C: 3,\n    Q: 4,\n    A: 5,\n    Z: 6,\n    R: 7\n};\nvar tmpOutX = [];\nvar tmpOutY = [];\nvar min = [];\nvar max = [];\nvar min2 = [];\nvar max2 = [];\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathCos = Math.cos;\nvar mathSin = Math.sin;\nvar mathSqrt = Math.sqrt;\nvar mathAbs = Math.abs;\nvar PI = Math.PI;\nvar PI2 = PI * 2;\nvar hasTypedArray = typeof Float32Array !== 'undefined';\nvar tmpAngles = [];\nfunction modPI2(radian) {\n    var n = Math.round(radian / PI * 1e8) / 1e8;\n    return (n % 2) * PI;\n}\nexport function normalizeArcAngles(angles, anticlockwise) {\n    var newStartAngle = modPI2(angles[0]);\n    if (newStartAngle < 0) {\n        newStartAngle += PI2;\n    }\n    var delta = newStartAngle - angles[0];\n    var newEndAngle = angles[1];\n    newEndAngle += delta;\n    if (!anticlockwise && newEndAngle - newStartAngle >= PI2) {\n        newEndAngle = newStartAngle + PI2;\n    }\n    else if (anticlockwise && newStartAngle - newEndAngle >= PI2) {\n        newEndAngle = newStartAngle - PI2;\n    }\n    else if (!anticlockwise && newStartAngle > newEndAngle) {\n        newEndAngle = newStartAngle +\n            (PI2 - modPI2(newStartAngle - newEndAngle));\n    }\n    else if (anticlockwise && newStartAngle < newEndAngle) {\n        newEndAngle = newStartAngle -\n            (PI2 - modPI2(newEndAngle - newStartAngle));\n    }\n    angles[0] = newStartAngle;\n    angles[1] = newEndAngle;\n}\nvar PathProxy = (function () {\n    function PathProxy(notSaveData) {\n        this.dpr = 1;\n        this._version = 0;\n        this._xi = 0;\n        this._yi = 0;\n        this._x0 = 0;\n        this._y0 = 0;\n        this._len = 0;\n        if (notSaveData) {\n            this._saveData = false;\n        }\n        if (this._saveData) {\n            this.data = [];\n        }\n    }\n    PathProxy.prototype.increaseVersion = function () {\n        this._version++;\n    };\n    PathProxy.prototype.getVersion = function () {\n        return this._version;\n    };\n    PathProxy.prototype.setScale = function (sx, sy, segmentIgnoreThreshold) {\n        segmentIgnoreThreshold = segmentIgnoreThreshold || 0;\n        if (segmentIgnoreThreshold > 0) {\n            this._ux = mathAbs(segmentIgnoreThreshold / dpr / sx) || 0;\n            this._uy = mathAbs(segmentIgnoreThreshold / dpr / sy) || 0;\n        }\n    };\n    PathProxy.prototype.setDPR = function (dpr) {\n        this.dpr = dpr;\n    };\n    PathProxy.prototype.setContext = function (ctx) {\n        this._ctx = ctx;\n    };\n    PathProxy.prototype.getContext = function () {\n        return this._ctx;\n    };\n    PathProxy.prototype.beginPath = function () {\n        this._ctx && this._ctx.beginPath();\n        this.reset();\n        return this;\n    };\n    PathProxy.prototype.reset = function () {\n        if (this._saveData) {\n            this._len = 0;\n        }\n        if (this._lineDash) {\n            this._lineDash = null;\n            this._dashOffset = 0;\n        }\n        if (this._pathSegLen) {\n            this._pathSegLen = null;\n            this._pathLen = 0;\n        }\n        this._version++;\n    };\n    PathProxy.prototype.moveTo = function (x, y) {\n        this.addData(CMD.M, x, y);\n        this._ctx && this._ctx.moveTo(x, y);\n        this._x0 = x;\n        this._y0 = y;\n        this._xi = x;\n        this._yi = y;\n        return this;\n    };\n    PathProxy.prototype.lineTo = function (x, y) {\n        var exceedUnit = mathAbs(x - this._xi) > this._ux\n            || mathAbs(y - this._yi) > this._uy\n            || this._len < 5;\n        this.addData(CMD.L, x, y);\n        if (this._ctx && exceedUnit) {\n            this._needsDash ? this._dashedLineTo(x, y)\n                : this._ctx.lineTo(x, y);\n        }\n        if (exceedUnit) {\n            this._xi = x;\n            this._yi = y;\n        }\n        return this;\n    };\n    PathProxy.prototype.bezierCurveTo = function (x1, y1, x2, y2, x3, y3) {\n        this.addData(CMD.C, x1, y1, x2, y2, x3, y3);\n        if (this._ctx) {\n            this._needsDash ? this._dashedBezierTo(x1, y1, x2, y2, x3, y3)\n                : this._ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\n        }\n        this._xi = x3;\n        this._yi = y3;\n        return this;\n    };\n    PathProxy.prototype.quadraticCurveTo = function (x1, y1, x2, y2) {\n        this.addData(CMD.Q, x1, y1, x2, y2);\n        if (this._ctx) {\n            this._needsDash ? this._dashedQuadraticTo(x1, y1, x2, y2)\n                : this._ctx.quadraticCurveTo(x1, y1, x2, y2);\n        }\n        this._xi = x2;\n        this._yi = y2;\n        return this;\n    };\n    PathProxy.prototype.arc = function (cx, cy, r, startAngle, endAngle, anticlockwise) {\n        tmpAngles[0] = startAngle;\n        tmpAngles[1] = endAngle;\n        normalizeArcAngles(tmpAngles, anticlockwise);\n        startAngle = tmpAngles[0];\n        endAngle = tmpAngles[1];\n        var delta = endAngle - startAngle;\n        this.addData(CMD.A, cx, cy, r, r, startAngle, delta, 0, anticlockwise ? 0 : 1);\n        this._ctx && this._ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\n        this._xi = mathCos(endAngle) * r + cx;\n        this._yi = mathSin(endAngle) * r + cy;\n        return this;\n    };\n    PathProxy.prototype.arcTo = function (x1, y1, x2, y2, radius) {\n        if (this._ctx) {\n            this._ctx.arcTo(x1, y1, x2, y2, radius);\n        }\n        return this;\n    };\n    PathProxy.prototype.rect = function (x, y, w, h) {\n        this._ctx && this._ctx.rect(x, y, w, h);\n        this.addData(CMD.R, x, y, w, h);\n        return this;\n    };\n    PathProxy.prototype.closePath = function () {\n        this.addData(CMD.Z);\n        var ctx = this._ctx;\n        var x0 = this._x0;\n        var y0 = this._y0;\n        if (ctx) {\n            this._needsDash && this._dashedLineTo(x0, y0);\n            ctx.closePath();\n        }\n        this._xi = x0;\n        this._yi = y0;\n        return this;\n    };\n    PathProxy.prototype.fill = function (ctx) {\n        ctx && ctx.fill();\n        this.toStatic();\n    };\n    PathProxy.prototype.stroke = function (ctx) {\n        ctx && ctx.stroke();\n        this.toStatic();\n    };\n    PathProxy.prototype.setLineDash = function (lineDash) {\n        if (lineDash instanceof Array) {\n            this._lineDash = lineDash;\n            this._dashIdx = 0;\n            var lineDashSum = 0;\n            for (var i = 0; i < lineDash.length; i++) {\n                lineDashSum += lineDash[i];\n            }\n            this._dashSum = lineDashSum;\n            this._needsDash = true;\n        }\n        else {\n            this._lineDash = null;\n            this._needsDash = false;\n        }\n        return this;\n    };\n    PathProxy.prototype.setLineDashOffset = function (offset) {\n        this._dashOffset = offset;\n        return this;\n    };\n    PathProxy.prototype.len = function () {\n        return this._len;\n    };\n    PathProxy.prototype.setData = function (data) {\n        var len = data.length;\n        if (!(this.data && this.data.length === len) && hasTypedArray) {\n            this.data = new Float32Array(len);\n        }\n        for (var i = 0; i < len; i++) {\n            this.data[i] = data[i];\n        }\n        this._len = len;\n    };\n    PathProxy.prototype.appendPath = function (path) {\n        if (!(path instanceof Array)) {\n            path = [path];\n        }\n        var len = path.length;\n        var appendSize = 0;\n        var offset = this._len;\n        for (var i = 0; i < len; i++) {\n            appendSize += path[i].len();\n        }\n        if (hasTypedArray && (this.data instanceof Float32Array)) {\n            this.data = new Float32Array(offset + appendSize);\n        }\n        for (var i = 0; i < len; i++) {\n            var appendPathData = path[i].data;\n            for (var k = 0; k < appendPathData.length; k++) {\n                this.data[offset++] = appendPathData[k];\n            }\n        }\n        this._len = offset;\n    };\n    PathProxy.prototype.addData = function (cmd, a, b, c, d, e, f, g, h) {\n        if (!this._saveData) {\n            return;\n        }\n        var data = this.data;\n        if (this._len + arguments.length > data.length) {\n            this._expandData();\n            data = this.data;\n        }\n        for (var i = 0; i < arguments.length; i++) {\n            data[this._len++] = arguments[i];\n        }\n    };\n    PathProxy.prototype._expandData = function () {\n        if (!(this.data instanceof Array)) {\n            var newData = [];\n            for (var i = 0; i < this._len; i++) {\n                newData[i] = this.data[i];\n            }\n            this.data = newData;\n        }\n    };\n    PathProxy.prototype._dashedLineTo = function (x1, y1) {\n        var dashSum = this._dashSum;\n        var lineDash = this._lineDash;\n        var ctx = this._ctx;\n        var offset = this._dashOffset;\n        var x0 = this._xi;\n        var y0 = this._yi;\n        var dx = x1 - x0;\n        var dy = y1 - y0;\n        var dist = mathSqrt(dx * dx + dy * dy);\n        var x = x0;\n        var y = y0;\n        var nDash = lineDash.length;\n        var dash;\n        var idx;\n        dx /= dist;\n        dy /= dist;\n        if (offset < 0) {\n            offset = dashSum + offset;\n        }\n        offset %= dashSum;\n        x -= offset * dx;\n        y -= offset * dy;\n        while ((dx > 0 && x <= x1) || (dx < 0 && x >= x1)\n            || (dx === 0 && ((dy > 0 && y <= y1) || (dy < 0 && y >= y1)))) {\n            idx = this._dashIdx;\n            dash = lineDash[idx];\n            x += dx * dash;\n            y += dy * dash;\n            this._dashIdx = (idx + 1) % nDash;\n            if ((dx > 0 && x < x0) || (dx < 0 && x > x0) || (dy > 0 && y < y0) || (dy < 0 && y > y0)) {\n                continue;\n            }\n            ctx[idx % 2 ? 'moveTo' : 'lineTo'](dx >= 0 ? mathMin(x, x1) : mathMax(x, x1), dy >= 0 ? mathMin(y, y1) : mathMax(y, y1));\n        }\n        dx = x - x1;\n        dy = y - y1;\n        this._dashOffset = -mathSqrt(dx * dx + dy * dy);\n    };\n    PathProxy.prototype._dashedBezierTo = function (x1, y1, x2, y2, x3, y3) {\n        var ctx = this._ctx;\n        var dashSum = this._dashSum;\n        var offset = this._dashOffset;\n        var lineDash = this._lineDash;\n        var x0 = this._xi;\n        var y0 = this._yi;\n        var bezierLen = 0;\n        var idx = this._dashIdx;\n        var nDash = lineDash.length;\n        var t;\n        var dx;\n        var dy;\n        var x;\n        var y;\n        var tmpLen = 0;\n        if (offset < 0) {\n            offset = dashSum + offset;\n        }\n        offset %= dashSum;\n        for (t = 0; t < 1; t += 0.1) {\n            dx = cubicAt(x0, x1, x2, x3, t + 0.1)\n                - cubicAt(x0, x1, x2, x3, t);\n            dy = cubicAt(y0, y1, y2, y3, t + 0.1)\n                - cubicAt(y0, y1, y2, y3, t);\n            bezierLen += mathSqrt(dx * dx + dy * dy);\n        }\n        for (; idx < nDash; idx++) {\n            tmpLen += lineDash[idx];\n            if (tmpLen > offset) {\n                break;\n            }\n        }\n        t = (tmpLen - offset) / bezierLen;\n        while (t <= 1) {\n            x = cubicAt(x0, x1, x2, x3, t);\n            y = cubicAt(y0, y1, y2, y3, t);\n            idx % 2 ? ctx.moveTo(x, y)\n                : ctx.lineTo(x, y);\n            t += lineDash[idx] / bezierLen;\n            idx = (idx + 1) % nDash;\n        }\n        (idx % 2 !== 0) && ctx.lineTo(x3, y3);\n        dx = x3 - x;\n        dy = y3 - y;\n        this._dashOffset = -mathSqrt(dx * dx + dy * dy);\n    };\n    PathProxy.prototype._dashedQuadraticTo = function (x1, y1, x2, y2) {\n        var x3 = x2;\n        var y3 = y2;\n        x2 = (x2 + 2 * x1) / 3;\n        y2 = (y2 + 2 * y1) / 3;\n        x1 = (this._xi + 2 * x1) / 3;\n        y1 = (this._yi + 2 * y1) / 3;\n        this._dashedBezierTo(x1, y1, x2, y2, x3, y3);\n    };\n    PathProxy.prototype.toStatic = function () {\n        if (!this._saveData) {\n            return;\n        }\n        var data = this.data;\n        if (data instanceof Array) {\n            data.length = this._len;\n            if (hasTypedArray && this._len > 11) {\n                this.data = new Float32Array(data);\n            }\n        }\n    };\n    PathProxy.prototype.getBoundingRect = function () {\n        min[0] = min[1] = min2[0] = min2[1] = Number.MAX_VALUE;\n        max[0] = max[1] = max2[0] = max2[1] = -Number.MAX_VALUE;\n        var data = this.data;\n        var xi = 0;\n        var yi = 0;\n        var x0 = 0;\n        var y0 = 0;\n        var i;\n        for (i = 0; i < this._len;) {\n            var cmd = data[i++];\n            var isFirst = i === 1;\n            if (isFirst) {\n                xi = data[i];\n                yi = data[i + 1];\n                x0 = xi;\n                y0 = yi;\n            }\n            switch (cmd) {\n                case CMD.M:\n                    xi = x0 = data[i++];\n                    yi = y0 = data[i++];\n                    min2[0] = x0;\n                    min2[1] = y0;\n                    max2[0] = x0;\n                    max2[1] = y0;\n                    break;\n                case CMD.L:\n                    fromLine(xi, yi, data[i], data[i + 1], min2, max2);\n                    xi = data[i++];\n                    yi = data[i++];\n                    break;\n                case CMD.C:\n                    fromCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], min2, max2);\n                    xi = data[i++];\n                    yi = data[i++];\n                    break;\n                case CMD.Q:\n                    fromQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], min2, max2);\n                    xi = data[i++];\n                    yi = data[i++];\n                    break;\n                case CMD.A:\n                    var cx = data[i++];\n                    var cy = data[i++];\n                    var rx = data[i++];\n                    var ry = data[i++];\n                    var startAngle = data[i++];\n                    var endAngle = data[i++] + startAngle;\n                    i += 1;\n                    var anticlockwise = !data[i++];\n                    if (isFirst) {\n                        x0 = mathCos(startAngle) * rx + cx;\n                        y0 = mathSin(startAngle) * ry + cy;\n                    }\n                    fromArc(cx, cy, rx, ry, startAngle, endAngle, anticlockwise, min2, max2);\n                    xi = mathCos(endAngle) * rx + cx;\n                    yi = mathSin(endAngle) * ry + cy;\n                    break;\n                case CMD.R:\n                    x0 = xi = data[i++];\n                    y0 = yi = data[i++];\n                    var width = data[i++];\n                    var height = data[i++];\n                    fromLine(x0, y0, x0 + width, y0 + height, min2, max2);\n                    break;\n                case CMD.Z:\n                    xi = x0;\n                    yi = y0;\n                    break;\n            }\n            vec2.min(min, min, min2);\n            vec2.max(max, max, max2);\n        }\n        if (i === 0) {\n            min[0] = min[1] = max[0] = max[1] = 0;\n        }\n        return new BoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n    };\n    PathProxy.prototype._calculateLength = function () {\n        var data = this.data;\n        var len = this._len;\n        var ux = this._ux;\n        var uy = this._uy;\n        var xi = 0;\n        var yi = 0;\n        var x0 = 0;\n        var y0 = 0;\n        if (!this._pathSegLen) {\n            this._pathSegLen = [];\n        }\n        var pathSegLen = this._pathSegLen;\n        var pathTotalLen = 0;\n        var segCount = 0;\n        for (var i = 0; i < len;) {\n            var cmd = data[i++];\n            var isFirst = i === 1;\n            if (isFirst) {\n                xi = data[i];\n                yi = data[i + 1];\n                x0 = xi;\n                y0 = yi;\n            }\n            var l = -1;\n            switch (cmd) {\n                case CMD.M:\n                    xi = x0 = data[i++];\n                    yi = y0 = data[i++];\n                    break;\n                case CMD.L: {\n                    var x2 = data[i++];\n                    var y2 = data[i++];\n                    var dx = x2 - xi;\n                    var dy = y2 - yi;\n                    if (mathAbs(dx) > ux || mathAbs(dy) > uy || i === len - 1) {\n                        l = Math.sqrt(dx * dx + dy * dy);\n                        xi = x2;\n                        yi = y2;\n                    }\n                    break;\n                }\n                case CMD.C: {\n                    var x1 = data[i++];\n                    var y1 = data[i++];\n                    var x2 = data[i++];\n                    var y2 = data[i++];\n                    var x3 = data[i++];\n                    var y3 = data[i++];\n                    l = cubicLength(xi, yi, x1, y1, x2, y2, x3, y3, 10);\n                    xi = x3;\n                    yi = y3;\n                    break;\n                }\n                case CMD.Q: {\n                    var x1 = data[i++];\n                    var y1 = data[i++];\n                    var x2 = data[i++];\n                    var y2 = data[i++];\n                    l = quadraticLength(xi, yi, x1, y1, x2, y2, 10);\n                    xi = x2;\n                    yi = y2;\n                    break;\n                }\n                case CMD.A:\n                    var cx = data[i++];\n                    var cy = data[i++];\n                    var rx = data[i++];\n                    var ry = data[i++];\n                    var startAngle = data[i++];\n                    var delta = data[i++];\n                    var endAngle = delta + startAngle;\n                    i += 1;\n                    var anticlockwise = !data[i++];\n                    if (isFirst) {\n                        x0 = mathCos(startAngle) * rx + cx;\n                        y0 = mathSin(startAngle) * ry + cy;\n                    }\n                    l = mathMax(rx, ry) * mathMin(PI2, Math.abs(delta));\n                    xi = mathCos(endAngle) * rx + cx;\n                    yi = mathSin(endAngle) * ry + cy;\n                    break;\n                case CMD.R: {\n                    x0 = xi = data[i++];\n                    y0 = yi = data[i++];\n                    var width = data[i++];\n                    var height = data[i++];\n                    l = width * 2 + height * 2;\n                    break;\n                }\n                case CMD.Z: {\n                    var dx = x0 - xi;\n                    var dy = y0 - yi;\n                    l = Math.sqrt(dx * dx + dy * dy);\n                    xi = x0;\n                    yi = y0;\n                    break;\n                }\n            }\n            if (l >= 0) {\n                pathSegLen[segCount++] = l;\n                pathTotalLen += l;\n            }\n        }\n        this._pathLen = pathTotalLen;\n        return pathTotalLen;\n    };\n    PathProxy.prototype.rebuildPath = function (ctx, percent) {\n        var d = this.data;\n        var ux = this._ux;\n        var uy = this._uy;\n        var len = this._len;\n        var x0;\n        var y0;\n        var xi;\n        var yi;\n        var x;\n        var y;\n        var drawPart = percent < 1;\n        var pathSegLen;\n        var pathTotalLen;\n        var accumLength = 0;\n        var segCount = 0;\n        var displayedLength;\n        if (drawPart) {\n            if (!this._pathSegLen) {\n                this._calculateLength();\n            }\n            pathSegLen = this._pathSegLen;\n            pathTotalLen = this._pathLen;\n            displayedLength = percent * pathTotalLen;\n            if (!displayedLength) {\n                return;\n            }\n        }\n        lo: for (var i = 0; i < len;) {\n            var cmd = d[i++];\n            var isFirst = i === 1;\n            if (isFirst) {\n                xi = d[i];\n                yi = d[i + 1];\n                x0 = xi;\n                y0 = yi;\n            }\n            switch (cmd) {\n                case CMD.M:\n                    x0 = xi = d[i++];\n                    y0 = yi = d[i++];\n                    ctx.moveTo(xi, yi);\n                    break;\n                case CMD.L: {\n                    x = d[i++];\n                    y = d[i++];\n                    if (mathAbs(x - xi) > ux || mathAbs(y - yi) > uy || i === len - 1) {\n                        if (drawPart) {\n                            var l = pathSegLen[segCount++];\n                            if (accumLength + l > displayedLength) {\n                                var t = (displayedLength - accumLength) / l;\n                                ctx.lineTo(xi * (1 - t) + x * t, yi * (1 - t) + y * t);\n                                break lo;\n                            }\n                            accumLength += l;\n                        }\n                        ctx.lineTo(x, y);\n                        xi = x;\n                        yi = y;\n                    }\n                    break;\n                }\n                case CMD.C: {\n                    var x1 = d[i++];\n                    var y1 = d[i++];\n                    var x2 = d[i++];\n                    var y2 = d[i++];\n                    var x3 = d[i++];\n                    var y3 = d[i++];\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            var t = (displayedLength - accumLength) / l;\n                            cubicSubdivide(xi, x1, x2, x3, t, tmpOutX);\n                            cubicSubdivide(yi, y1, y2, y3, t, tmpOutY);\n                            ctx.bezierCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2], tmpOutX[3], tmpOutY[3]);\n                            break lo;\n                        }\n                        accumLength += l;\n                    }\n                    ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\n                    xi = x3;\n                    yi = y3;\n                    break;\n                }\n                case CMD.Q: {\n                    var x1 = d[i++];\n                    var y1 = d[i++];\n                    var x2 = d[i++];\n                    var y2 = d[i++];\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            var t = (displayedLength - accumLength) / l;\n                            quadraticSubdivide(xi, x1, x2, t, tmpOutX);\n                            quadraticSubdivide(yi, y1, y2, t, tmpOutY);\n                            ctx.quadraticCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2]);\n                            break lo;\n                        }\n                        accumLength += l;\n                    }\n                    ctx.quadraticCurveTo(x1, y1, x2, y2);\n                    xi = x2;\n                    yi = y2;\n                    break;\n                }\n                case CMD.A:\n                    var cx = d[i++];\n                    var cy = d[i++];\n                    var rx = d[i++];\n                    var ry = d[i++];\n                    var startAngle = d[i++];\n                    var delta = d[i++];\n                    var psi = d[i++];\n                    var anticlockwise = !d[i++];\n                    var r = (rx > ry) ? rx : ry;\n                    var scaleX = (rx > ry) ? 1 : rx / ry;\n                    var scaleY = (rx > ry) ? ry / rx : 1;\n                    var isEllipse = mathAbs(rx - ry) > 1e-3;\n                    var endAngle = startAngle + delta;\n                    var breakBuild = false;\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            endAngle = startAngle + delta * (displayedLength - accumLength) / l;\n                            breakBuild = true;\n                        }\n                        accumLength += l;\n                    }\n                    if (isEllipse && ctx.ellipse) {\n                        ctx.ellipse(cx, cy, rx, ry, psi, startAngle, endAngle, anticlockwise);\n                    }\n                    else {\n                        ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\n                    }\n                    if (breakBuild) {\n                        break lo;\n                    }\n                    if (isFirst) {\n                        x0 = mathCos(startAngle) * rx + cx;\n                        y0 = mathSin(startAngle) * ry + cy;\n                    }\n                    xi = mathCos(endAngle) * rx + cx;\n                    yi = mathSin(endAngle) * ry + cy;\n                    break;\n                case CMD.R:\n                    x0 = xi = d[i];\n                    y0 = yi = d[i + 1];\n                    x = d[i++];\n                    y = d[i++];\n                    var width = d[i++];\n                    var height = d[i++];\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            var d_1 = displayedLength - accumLength;\n                            ctx.moveTo(x, y);\n                            ctx.lineTo(x + mathMin(d_1, width), y);\n                            d_1 -= width;\n                            if (d_1 > 0) {\n                                ctx.lineTo(x + width, y + mathMin(d_1, height));\n                            }\n                            d_1 -= height;\n                            if (d_1 > 0) {\n                                ctx.lineTo(x + mathMax(width - d_1, 0), y + height);\n                            }\n                            d_1 -= width;\n                            if (d_1 > 0) {\n                                ctx.lineTo(x, y + mathMax(height - d_1, 0));\n                            }\n                            break lo;\n                        }\n                        accumLength += l;\n                    }\n                    ctx.rect(x, y, width, height);\n                    break;\n                case CMD.Z:\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            var t = (displayedLength - accumLength) / l;\n                            ctx.lineTo(xi * (1 - t) + x0 * t, yi * (1 - t) + y0 * t);\n                            break lo;\n                        }\n                        accumLength += l;\n                    }\n                    ctx.closePath();\n                    xi = x0;\n                    yi = y0;\n            }\n        }\n    };\n    PathProxy.CMD = CMD;\n    PathProxy.initDefaultProps = (function () {\n        var proto = PathProxy.prototype;\n        proto._saveData = true;\n        proto._needsDash = false;\n        proto._dashOffset = 0;\n        proto._dashIdx = 0;\n        proto._dashSum = 0;\n        proto._ux = 0;\n        proto._uy = 0;\n    })();\n    return PathProxy;\n}());\nexport default PathProxy;\n","export function containStroke(x0, y0, x1, y1, lineWidth, x, y) {\n    if (lineWidth === 0) {\n        return false;\n    }\n    var _l = lineWidth;\n    var _a = 0;\n    var _b = x0;\n    if ((y > y0 + _l && y > y1 + _l)\n        || (y < y0 - _l && y < y1 - _l)\n        || (x > x0 + _l && x > x1 + _l)\n        || (x < x0 - _l && x < x1 - _l)) {\n        return false;\n    }\n    if (x0 !== x1) {\n        _a = (y0 - y1) / (x0 - x1);\n        _b = (x0 * y1 - x1 * y0) / (x0 - x1);\n    }\n    else {\n        return Math.abs(x - x0) <= _l / 2;\n    }\n    var tmp = _a * x - y + _b;\n    var _s = tmp * tmp / (_a * _a + 1);\n    return _s <= _l / 2 * _l / 2;\n}\n","import * as curve from '../core/curve';\nexport function containStroke(x0, y0, x1, y1, x2, y2, x3, y3, lineWidth, x, y) {\n    if (lineWidth === 0) {\n        return false;\n    }\n    var _l = lineWidth;\n    if ((y > y0 + _l && y > y1 + _l && y > y2 + _l && y > y3 + _l)\n        || (y < y0 - _l && y < y1 - _l && y < y2 - _l && y < y3 - _l)\n        || (x > x0 + _l && x > x1 + _l && x > x2 + _l && x > x3 + _l)\n        || (x < x0 - _l && x < x1 - _l && x < x2 - _l && x < x3 - _l)) {\n        return false;\n    }\n    var d = curve.cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, null);\n    return d <= _l / 2;\n}\n","import { quadraticProjectPoint } from '../core/curve';\nexport function containStroke(x0, y0, x1, y1, x2, y2, lineWidth, x, y) {\n    if (lineWidth === 0) {\n        return false;\n    }\n    var _l = lineWidth;\n    if ((y > y0 + _l && y > y1 + _l && y > y2 + _l)\n        || (y < y0 - _l && y < y1 - _l && y < y2 - _l)\n        || (x > x0 + _l && x > x1 + _l && x > x2 + _l)\n        || (x < x0 - _l && x < x1 - _l && x < x2 - _l)) {\n        return false;\n    }\n    var d = quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, null);\n    return d <= _l / 2;\n}\n","var PI2 = Math.PI * 2;\nexport function normalizeRadian(angle) {\n    angle %= PI2;\n    if (angle < 0) {\n        angle += PI2;\n    }\n    return angle;\n}\n","import { normalizeRadian } from './util';\nvar PI2 = Math.PI * 2;\nexport function containStroke(cx, cy, r, startAngle, endAngle, anticlockwise, lineWidth, x, y) {\n    if (lineWidth === 0) {\n        return false;\n    }\n    var _l = lineWidth;\n    x -= cx;\n    y -= cy;\n    var d = Math.sqrt(x * x + y * y);\n    if ((d - _l > r) || (d + _l < r)) {\n        return false;\n    }\n    if (Math.abs(startAngle - endAngle) % PI2 < 1e-4) {\n        return true;\n    }\n    if (anticlockwise) {\n        var tmp = startAngle;\n        startAngle = normalizeRadian(endAngle);\n        endAngle = normalizeRadian(tmp);\n    }\n    else {\n        startAngle = normalizeRadian(startAngle);\n        endAngle = normalizeRadian(endAngle);\n    }\n    if (startAngle > endAngle) {\n        endAngle += PI2;\n    }\n    var angle = Math.atan2(y, x);\n    if (angle < 0) {\n        angle += PI2;\n    }\n    return (angle >= startAngle && angle <= endAngle)\n        || (angle + PI2 >= startAngle && angle + PI2 <= endAngle);\n}\n","export default function windingLine(x0, y0, x1, y1, x, y) {\n    if ((y > y0 && y > y1) || (y < y0 && y < y1)) {\n        return 0;\n    }\n    if (y1 === y0) {\n        return 0;\n    }\n    var t = (y - y0) / (y1 - y0);\n    var dir = y1 < y0 ? 1 : -1;\n    if (t === 1 || t === 0) {\n        dir = y1 < y0 ? 0.5 : -0.5;\n    }\n    var x_ = t * (x1 - x0) + x0;\n    return x_ === x ? Infinity : x_ > x ? dir : 0;\n}\n","import PathProxy from '../core/PathProxy';\nimport * as line from './line';\nimport * as cubic from './cubic';\nimport * as quadratic from './quadratic';\nimport * as arc from './arc';\nimport * as curve from '../core/curve';\nimport windingLine from './windingLine';\nvar CMD = PathProxy.CMD;\nvar PI2 = Math.PI * 2;\nvar EPSILON = 1e-4;\nfunction isAroundEqual(a, b) {\n    return Math.abs(a - b) < EPSILON;\n}\nvar roots = [-1, -1, -1];\nvar extrema = [-1, -1];\nfunction swapExtrema() {\n    var tmp = extrema[0];\n    extrema[0] = extrema[1];\n    extrema[1] = tmp;\n}\nfunction windingCubic(x0, y0, x1, y1, x2, y2, x3, y3, x, y) {\n    if ((y > y0 && y > y1 && y > y2 && y > y3)\n        || (y < y0 && y < y1 && y < y2 && y < y3)) {\n        return 0;\n    }\n    var nRoots = curve.cubicRootAt(y0, y1, y2, y3, y, roots);\n    if (nRoots === 0) {\n        return 0;\n    }\n    else {\n        var w = 0;\n        var nExtrema = -1;\n        var y0_ = void 0;\n        var y1_ = void 0;\n        for (var i = 0; i < nRoots; i++) {\n            var t = roots[i];\n            var unit = (t === 0 || t === 1) ? 0.5 : 1;\n            var x_ = curve.cubicAt(x0, x1, x2, x3, t);\n            if (x_ < x) {\n                continue;\n            }\n            if (nExtrema < 0) {\n                nExtrema = curve.cubicExtrema(y0, y1, y2, y3, extrema);\n                if (extrema[1] < extrema[0] && nExtrema > 1) {\n                    swapExtrema();\n                }\n                y0_ = curve.cubicAt(y0, y1, y2, y3, extrema[0]);\n                if (nExtrema > 1) {\n                    y1_ = curve.cubicAt(y0, y1, y2, y3, extrema[1]);\n                }\n            }\n            if (nExtrema === 2) {\n                if (t < extrema[0]) {\n                    w += y0_ < y0 ? unit : -unit;\n                }\n                else if (t < extrema[1]) {\n                    w += y1_ < y0_ ? unit : -unit;\n                }\n                else {\n                    w += y3 < y1_ ? unit : -unit;\n                }\n            }\n            else {\n                if (t < extrema[0]) {\n                    w += y0_ < y0 ? unit : -unit;\n                }\n                else {\n                    w += y3 < y0_ ? unit : -unit;\n                }\n            }\n        }\n        return w;\n    }\n}\nfunction windingQuadratic(x0, y0, x1, y1, x2, y2, x, y) {\n    if ((y > y0 && y > y1 && y > y2)\n        || (y < y0 && y < y1 && y < y2)) {\n        return 0;\n    }\n    var nRoots = curve.quadraticRootAt(y0, y1, y2, y, roots);\n    if (nRoots === 0) {\n        return 0;\n    }\n    else {\n        var t = curve.quadraticExtremum(y0, y1, y2);\n        if (t >= 0 && t <= 1) {\n            var w = 0;\n            var y_ = curve.quadraticAt(y0, y1, y2, t);\n            for (var i = 0; i < nRoots; i++) {\n                var unit = (roots[i] === 0 || roots[i] === 1) ? 0.5 : 1;\n                var x_ = curve.quadraticAt(x0, x1, x2, roots[i]);\n                if (x_ < x) {\n                    continue;\n                }\n                if (roots[i] < t) {\n                    w += y_ < y0 ? unit : -unit;\n                }\n                else {\n                    w += y2 < y_ ? unit : -unit;\n                }\n            }\n            return w;\n        }\n        else {\n            var unit = (roots[0] === 0 || roots[0] === 1) ? 0.5 : 1;\n            var x_ = curve.quadraticAt(x0, x1, x2, roots[0]);\n            if (x_ < x) {\n                return 0;\n            }\n            return y2 < y0 ? unit : -unit;\n        }\n    }\n}\nfunction windingArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y) {\n    y -= cy;\n    if (y > r || y < -r) {\n        return 0;\n    }\n    var tmp = Math.sqrt(r * r - y * y);\n    roots[0] = -tmp;\n    roots[1] = tmp;\n    var dTheta = Math.abs(startAngle - endAngle);\n    if (dTheta < 1e-4) {\n        return 0;\n    }\n    if (dTheta >= PI2 - 1e-4) {\n        startAngle = 0;\n        endAngle = PI2;\n        var dir = anticlockwise ? 1 : -1;\n        if (x >= roots[0] + cx && x <= roots[1] + cx) {\n            return dir;\n        }\n        else {\n            return 0;\n        }\n    }\n    if (startAngle > endAngle) {\n        var tmp_1 = startAngle;\n        startAngle = endAngle;\n        endAngle = tmp_1;\n    }\n    if (startAngle < 0) {\n        startAngle += PI2;\n        endAngle += PI2;\n    }\n    var w = 0;\n    for (var i = 0; i < 2; i++) {\n        var x_ = roots[i];\n        if (x_ + cx > x) {\n            var angle = Math.atan2(y, x_);\n            var dir = anticlockwise ? 1 : -1;\n            if (angle < 0) {\n                angle = PI2 + angle;\n            }\n            if ((angle >= startAngle && angle <= endAngle)\n                || (angle + PI2 >= startAngle && angle + PI2 <= endAngle)) {\n                if (angle > Math.PI / 2 && angle < Math.PI * 1.5) {\n                    dir = -dir;\n                }\n                w += dir;\n            }\n        }\n    }\n    return w;\n}\nfunction containPath(path, lineWidth, isStroke, x, y) {\n    var data = path.data;\n    var len = path.len();\n    var w = 0;\n    var xi = 0;\n    var yi = 0;\n    var x0 = 0;\n    var y0 = 0;\n    var x1;\n    var y1;\n    for (var i = 0; i < len;) {\n        var cmd = data[i++];\n        var isFirst = i === 1;\n        if (cmd === CMD.M && i > 1) {\n            if (!isStroke) {\n                w += windingLine(xi, yi, x0, y0, x, y);\n            }\n        }\n        if (isFirst) {\n            xi = data[i];\n            yi = data[i + 1];\n            x0 = xi;\n            y0 = yi;\n        }\n        switch (cmd) {\n            case CMD.M:\n                x0 = data[i++];\n                y0 = data[i++];\n                xi = x0;\n                yi = y0;\n                break;\n            case CMD.L:\n                if (isStroke) {\n                    if (line.containStroke(xi, yi, data[i], data[i + 1], lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingLine(xi, yi, data[i], data[i + 1], x, y) || 0;\n                }\n                xi = data[i++];\n                yi = data[i++];\n                break;\n            case CMD.C:\n                if (isStroke) {\n                    if (cubic.containStroke(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\n                }\n                xi = data[i++];\n                yi = data[i++];\n                break;\n            case CMD.Q:\n                if (isStroke) {\n                    if (quadratic.containStroke(xi, yi, data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\n                }\n                xi = data[i++];\n                yi = data[i++];\n                break;\n            case CMD.A:\n                var cx = data[i++];\n                var cy = data[i++];\n                var rx = data[i++];\n                var ry = data[i++];\n                var theta = data[i++];\n                var dTheta = data[i++];\n                i += 1;\n                var anticlockwise = !!(1 - data[i++]);\n                x1 = Math.cos(theta) * rx + cx;\n                y1 = Math.sin(theta) * ry + cy;\n                if (!isFirst) {\n                    w += windingLine(xi, yi, x1, y1, x, y);\n                }\n                else {\n                    x0 = x1;\n                    y0 = y1;\n                }\n                var _x = (x - cx) * ry / rx + cx;\n                if (isStroke) {\n                    if (arc.containStroke(cx, cy, ry, theta, theta + dTheta, anticlockwise, lineWidth, _x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y);\n                }\n                xi = Math.cos(theta + dTheta) * rx + cx;\n                yi = Math.sin(theta + dTheta) * ry + cy;\n                break;\n            case CMD.R:\n                x0 = xi = data[i++];\n                y0 = yi = data[i++];\n                var width = data[i++];\n                var height = data[i++];\n                x1 = x0 + width;\n                y1 = y0 + height;\n                if (isStroke) {\n                    if (line.containStroke(x0, y0, x1, y0, lineWidth, x, y)\n                        || line.containStroke(x1, y0, x1, y1, lineWidth, x, y)\n                        || line.containStroke(x1, y1, x0, y1, lineWidth, x, y)\n                        || line.containStroke(x0, y1, x0, y0, lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingLine(x1, y0, x1, y1, x, y);\n                    w += windingLine(x0, y1, x0, y0, x, y);\n                }\n                break;\n            case CMD.Z:\n                if (isStroke) {\n                    if (line.containStroke(xi, yi, x0, y0, lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingLine(xi, yi, x0, y0, x, y);\n                }\n                xi = x0;\n                yi = y0;\n                break;\n        }\n    }\n    if (!isStroke && !isAroundEqual(yi, y0)) {\n        w += windingLine(xi, yi, x0, y0, x, y) || 0;\n    }\n    return w !== 0;\n}\nexport function contain(pathProxy, x, y) {\n    return containPath(pathProxy, 0, false, x, y);\n}\nexport function containStroke(pathProxy, lineWidth, x, y) {\n    return containPath(pathProxy, lineWidth, true, x, y);\n}\n","import { __extends } from \"tslib\";\nimport Displayable, { DEFAULT_COMMON_STYLE, DEFAULT_COMMON_ANIMATION_PROPS } from './Displayable';\nimport Element from '../Element';\nimport PathProxy from '../core/PathProxy';\nimport * as pathContain from '../contain/path';\nimport { defaults, keys, extend, clone, isString, createObject } from '../core/util';\nimport { lum } from '../tool/color';\nimport { DARK_LABEL_COLOR, LIGHT_LABEL_COLOR, DARK_MODE_THRESHOLD, LIGHTER_LABEL_COLOR } from '../config';\nexport var DEFAULT_PATH_STYLE = defaults({\n    fill: '#000',\n    stroke: null,\n    strokePercent: 1,\n    fillOpacity: 1,\n    strokeOpacity: 1,\n    lineDashOffset: 0,\n    lineWidth: 1,\n    lineCap: 'butt',\n    miterLimit: 10,\n    strokeNoScale: false,\n    strokeFirst: false\n}, DEFAULT_COMMON_STYLE);\nexport var DEFAULT_PATH_ANIMATION_PROPS = {\n    style: defaults({\n        fill: true,\n        stroke: true,\n        strokePercent: true,\n        fillOpacity: true,\n        strokeOpacity: true,\n        lineDashOffset: true,\n        lineWidth: true,\n        miterLimit: true\n    }, DEFAULT_COMMON_ANIMATION_PROPS.style)\n};\nvar pathCopyParams = [\n    'x', 'y', 'rotation', 'scaleX', 'scaleY', 'originX', 'originY', 'invisible',\n    'culling', 'z', 'z2', 'zlevel', 'parent'\n];\nvar Path = (function (_super) {\n    __extends(Path, _super);\n    function Path(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Path.prototype.update = function () {\n        var _this = this;\n        _super.prototype.update.call(this);\n        var style = this.style;\n        if (style.decal) {\n            var decalEl = this._decalEl\n                = this._decalEl || new Path();\n            if (decalEl.buildPath === Path.prototype.buildPath) {\n                decalEl.buildPath = function (ctx) {\n                    _this.buildPath(ctx, _this.shape);\n                };\n            }\n            decalEl.silent = true;\n            var decalElStyle = decalEl.style;\n            for (var key in style) {\n                if (decalElStyle[key] !== style[key]) {\n                    decalElStyle[key] = style[key];\n                }\n            }\n            decalElStyle.fill = style.fill ? style.decal : null;\n            decalElStyle.decal = null;\n            decalElStyle.shadowColor = null;\n            style.strokeFirst && (decalElStyle.stroke = null);\n            for (var i = 0; i < pathCopyParams.length; ++i) {\n                decalEl[pathCopyParams[i]] = this[pathCopyParams[i]];\n            }\n            decalEl.__dirty |= Element.REDARAW_BIT;\n        }\n        else if (this._decalEl) {\n            this._decalEl = null;\n        }\n    };\n    Path.prototype.getDecalElement = function () {\n        return this._decalEl;\n    };\n    Path.prototype._init = function (props) {\n        var keysArr = keys(props);\n        this.shape = this.getDefaultShape();\n        var defaultStyle = this.getDefaultStyle();\n        if (defaultStyle) {\n            this.useStyle(defaultStyle);\n        }\n        for (var i = 0; i < keysArr.length; i++) {\n            var key = keysArr[i];\n            var value = props[key];\n            if (key === 'style') {\n                if (!this.style) {\n                    this.useStyle(value);\n                }\n                else {\n                    extend(this.style, value);\n                }\n            }\n            else if (key === 'shape') {\n                extend(this.shape, value);\n            }\n            else {\n                _super.prototype.attrKV.call(this, key, value);\n            }\n        }\n        if (!this.style) {\n            this.useStyle({});\n        }\n    };\n    Path.prototype.getDefaultStyle = function () {\n        return null;\n    };\n    Path.prototype.getDefaultShape = function () {\n        return {};\n    };\n    Path.prototype.canBeInsideText = function () {\n        return this.hasFill();\n    };\n    Path.prototype.getInsideTextFill = function () {\n        var pathFill = this.style.fill;\n        if (pathFill !== 'none') {\n            if (isString(pathFill)) {\n                var fillLum = lum(pathFill, 0);\n                if (fillLum > 0.5) {\n                    return DARK_LABEL_COLOR;\n                }\n                else if (fillLum > 0.2) {\n                    return LIGHTER_LABEL_COLOR;\n                }\n                return LIGHT_LABEL_COLOR;\n            }\n            else if (pathFill) {\n                return LIGHT_LABEL_COLOR;\n            }\n        }\n        return DARK_LABEL_COLOR;\n    };\n    Path.prototype.getInsideTextStroke = function (textFill) {\n        var pathFill = this.style.fill;\n        if (isString(pathFill)) {\n            var zr = this.__zr;\n            var isDarkMode = !!(zr && zr.isDarkMode());\n            var isDarkLabel = lum(textFill, 0) < DARK_MODE_THRESHOLD;\n            if (isDarkMode === isDarkLabel) {\n                return pathFill;\n            }\n        }\n    };\n    Path.prototype.buildPath = function (ctx, shapeCfg, inBundle) { };\n    Path.prototype.pathUpdated = function () {\n        this.__dirty &= ~Path.SHAPE_CHANGED_BIT;\n    };\n    Path.prototype.createPathProxy = function () {\n        this.path = new PathProxy(false);\n    };\n    Path.prototype.hasStroke = function () {\n        var style = this.style;\n        var stroke = style.stroke;\n        return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\n    };\n    Path.prototype.hasFill = function () {\n        var style = this.style;\n        var fill = style.fill;\n        return fill != null && fill !== 'none';\n    };\n    Path.prototype.getBoundingRect = function () {\n        var rect = this._rect;\n        var style = this.style;\n        var needsUpdateRect = !rect;\n        if (needsUpdateRect) {\n            var firstInvoke = false;\n            if (!this.path) {\n                firstInvoke = true;\n                this.createPathProxy();\n            }\n            var path = this.path;\n            if (firstInvoke || (this.__dirty & Path.SHAPE_CHANGED_BIT)) {\n                path.beginPath();\n                this.buildPath(path, this.shape, false);\n                this.pathUpdated();\n            }\n            rect = path.getBoundingRect();\n        }\n        this._rect = rect;\n        if (this.hasStroke() && this.path && this.path.len() > 0) {\n            var rectWithStroke = this._rectWithStroke || (this._rectWithStroke = rect.clone());\n            if (this.__dirty || needsUpdateRect) {\n                rectWithStroke.copy(rect);\n                var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\n                var w = style.lineWidth;\n                if (!this.hasFill()) {\n                    var strokeContainThreshold = this.strokeContainThreshold;\n                    w = Math.max(w, strokeContainThreshold == null ? 4 : strokeContainThreshold);\n                }\n                if (lineScale > 1e-10) {\n                    rectWithStroke.width += w / lineScale;\n                    rectWithStroke.height += w / lineScale;\n                    rectWithStroke.x -= w / lineScale / 2;\n                    rectWithStroke.y -= w / lineScale / 2;\n                }\n            }\n            return rectWithStroke;\n        }\n        return rect;\n    };\n    Path.prototype.contain = function (x, y) {\n        var localPos = this.transformCoordToLocal(x, y);\n        var rect = this.getBoundingRect();\n        var style = this.style;\n        x = localPos[0];\n        y = localPos[1];\n        if (rect.contain(x, y)) {\n            var pathProxy = this.path;\n            if (this.hasStroke()) {\n                var lineWidth = style.lineWidth;\n                var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\n                if (lineScale > 1e-10) {\n                    if (!this.hasFill()) {\n                        lineWidth = Math.max(lineWidth, this.strokeContainThreshold);\n                    }\n                    if (pathContain.containStroke(pathProxy, lineWidth / lineScale, x, y)) {\n                        return true;\n                    }\n                }\n            }\n            if (this.hasFill()) {\n                return pathContain.contain(pathProxy, x, y);\n            }\n        }\n        return false;\n    };\n    Path.prototype.dirtyShape = function () {\n        this.__dirty |= Path.SHAPE_CHANGED_BIT;\n        if (this._rect) {\n            this._rect = null;\n        }\n        if (this._decalEl) {\n            this._decalEl.dirtyShape();\n        }\n        this.markRedraw();\n    };\n    Path.prototype.dirty = function () {\n        this.dirtyStyle();\n        this.dirtyShape();\n    };\n    Path.prototype.animateShape = function (loop) {\n        return this.animate('shape', loop);\n    };\n    Path.prototype.updateDuringAnimation = function (targetKey) {\n        if (targetKey === 'style') {\n            this.dirtyStyle();\n        }\n        else if (targetKey === 'shape') {\n            this.dirtyShape();\n        }\n        else {\n            this.markRedraw();\n        }\n    };\n    Path.prototype.attrKV = function (key, value) {\n        if (key === 'shape') {\n            this.setShape(value);\n        }\n        else {\n            _super.prototype.attrKV.call(this, key, value);\n        }\n    };\n    Path.prototype.setShape = function (keyOrObj, value) {\n        var shape = this.shape;\n        if (!shape) {\n            shape = this.shape = {};\n        }\n        if (typeof keyOrObj === 'string') {\n            shape[keyOrObj] = value;\n        }\n        else {\n            extend(shape, keyOrObj);\n        }\n        this.dirtyShape();\n        return this;\n    };\n    Path.prototype.shapeChanged = function () {\n        return !!(this.__dirty & Path.SHAPE_CHANGED_BIT);\n    };\n    Path.prototype.createStyle = function (obj) {\n        return createObject(DEFAULT_PATH_STYLE, obj);\n    };\n    Path.prototype._innerSaveToNormal = function (toState) {\n        _super.prototype._innerSaveToNormal.call(this, toState);\n        var normalState = this._normalState;\n        if (toState.shape && !normalState.shape) {\n            normalState.shape = extend({}, this.shape);\n        }\n    };\n    Path.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\n        _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\n        var needsRestoreToNormal = !(state && keepCurrentStates);\n        var targetShape;\n        if (state && state.shape) {\n            if (transition) {\n                if (keepCurrentStates) {\n                    targetShape = state.shape;\n                }\n                else {\n                    targetShape = extend({}, normalState.shape);\n                    extend(targetShape, state.shape);\n                }\n            }\n            else {\n                targetShape = extend({}, keepCurrentStates ? this.shape : normalState.shape);\n                extend(targetShape, state.shape);\n            }\n        }\n        else if (needsRestoreToNormal) {\n            targetShape = normalState.shape;\n        }\n        if (targetShape) {\n            if (transition) {\n                this.shape = extend({}, this.shape);\n                var targetShapePrimaryProps = {};\n                var shapeKeys = keys(targetShape);\n                for (var i = 0; i < shapeKeys.length; i++) {\n                    var key = shapeKeys[i];\n                    if (typeof targetShape[key] === 'object') {\n                        this.shape[key] = targetShape[key];\n                    }\n                    else {\n                        targetShapePrimaryProps[key] = targetShape[key];\n                    }\n                }\n                this._transitionState(stateName, {\n                    shape: targetShapePrimaryProps\n                }, animationCfg);\n            }\n            else {\n                this.shape = targetShape;\n                this.dirtyShape();\n            }\n        }\n    };\n    Path.prototype._mergeStates = function (states) {\n        var mergedState = _super.prototype._mergeStates.call(this, states);\n        var mergedShape;\n        for (var i = 0; i < states.length; i++) {\n            var state = states[i];\n            if (state.shape) {\n                mergedShape = mergedShape || {};\n                this._mergeStyle(mergedShape, state.shape);\n            }\n        }\n        if (mergedShape) {\n            mergedState.shape = mergedShape;\n        }\n        return mergedState;\n    };\n    Path.prototype.getAnimationStyleProps = function () {\n        return DEFAULT_PATH_ANIMATION_PROPS;\n    };\n    Path.prototype.isZeroArea = function () {\n        return false;\n    };\n    Path.extend = function (defaultProps) {\n        var Sub = (function (_super) {\n            __extends(Sub, _super);\n            function Sub(opts) {\n                var _this = _super.call(this, opts) || this;\n                defaultProps.init && defaultProps.init.call(_this, opts);\n                return _this;\n            }\n            Sub.prototype.getDefaultStyle = function () {\n                return clone(defaultProps.style);\n            };\n            Sub.prototype.getDefaultShape = function () {\n                return clone(defaultProps.shape);\n            };\n            return Sub;\n        }(Path));\n        for (var key in defaultProps) {\n            if (typeof defaultProps[key] === 'function') {\n                Sub.prototype[key] = defaultProps[key];\n            }\n        }\n        return Sub;\n    };\n    Path.SHAPE_CHANGED_BIT = 4;\n    Path.initDefaultProps = (function () {\n        var pathProto = Path.prototype;\n        pathProto.type = 'path';\n        pathProto.strokeContainThreshold = 5;\n        pathProto.segmentIgnoreThreshold = 0;\n        pathProto.subPixelOptimize = false;\n        pathProto.autoBatch = false;\n        pathProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT | Path.SHAPE_CHANGED_BIT;\n    })();\n    return Path;\n}(Displayable));\nexport default Path;\n","import { __extends } from \"tslib\";\nimport Displayable from './Displayable';\nimport { getBoundingRect, DEFAULT_FONT } from '../contain/text';\nimport { DEFAULT_PATH_STYLE } from './Path';\nimport { createObject, defaults } from '../core/util';\nexport var DEFAULT_TSPAN_STYLE = defaults({\n    strokeFirst: true,\n    font: DEFAULT_FONT,\n    x: 0,\n    y: 0,\n    textAlign: 'left',\n    textBaseline: 'top',\n    miterLimit: 2\n}, DEFAULT_PATH_STYLE);\nvar TSpan = (function (_super) {\n    __extends(TSpan, _super);\n    function TSpan() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    TSpan.prototype.hasStroke = function () {\n        var style = this.style;\n        var stroke = style.stroke;\n        return stroke != null && stroke !== 'none' && style.lineWidth > 0;\n    };\n    TSpan.prototype.hasFill = function () {\n        var style = this.style;\n        var fill = style.fill;\n        return fill != null && fill !== 'none';\n    };\n    TSpan.prototype.createStyle = function (obj) {\n        return createObject(DEFAULT_TSPAN_STYLE, obj);\n    };\n    TSpan.prototype.setBoundingRect = function (rect) {\n        this._rect = rect;\n    };\n    TSpan.prototype.getBoundingRect = function () {\n        var style = this.style;\n        if (!this._rect) {\n            var text = style.text;\n            text != null ? (text += '') : (text = '');\n            var rect = getBoundingRect(text, style.font, style.textAlign, style.textBaseline);\n            rect.x += style.x || 0;\n            rect.y += style.y || 0;\n            if (this.hasStroke()) {\n                var w = style.lineWidth;\n                rect.x -= w / 2;\n                rect.y -= w / 2;\n                rect.width += w;\n                rect.height += w;\n            }\n            this._rect = rect;\n        }\n        return this._rect;\n    };\n    TSpan.initDefaultProps = (function () {\n        var tspanProto = TSpan.prototype;\n        tspanProto.dirtyRectTolerance = 10;\n    })();\n    return TSpan;\n}(Displayable));\nTSpan.prototype.type = 'tspan';\nexport default TSpan;\n","import { __extends } from \"tslib\";\nimport Displayable, { DEFAULT_COMMON_STYLE, DEFAULT_COMMON_ANIMATION_PROPS } from './Displayable';\nimport BoundingRect from '../core/BoundingRect';\nimport { defaults, createObject } from '../core/util';\nexport var DEFAULT_IMAGE_STYLE = defaults({\n    x: 0,\n    y: 0\n}, DEFAULT_COMMON_STYLE);\nexport var DEFAULT_IMAGE_ANIMATION_PROPS = {\n    style: defaults({\n        x: true,\n        y: true,\n        width: true,\n        height: true,\n        sx: true,\n        sy: true,\n        sWidth: true,\n        sHeight: true\n    }, DEFAULT_COMMON_ANIMATION_PROPS.style)\n};\nfunction isImageLike(source) {\n    return !!(source\n        && typeof source !== 'string'\n        && source.width && source.height);\n}\nvar ZRImage = (function (_super) {\n    __extends(ZRImage, _super);\n    function ZRImage() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    ZRImage.prototype.createStyle = function (obj) {\n        return createObject(DEFAULT_IMAGE_STYLE, obj);\n    };\n    ZRImage.prototype._getSize = function (dim) {\n        var style = this.style;\n        var size = style[dim];\n        if (size != null) {\n            return size;\n        }\n        var imageSource = isImageLike(style.image)\n            ? style.image : this.__image;\n        if (!imageSource) {\n            return 0;\n        }\n        var otherDim = dim === 'width' ? 'height' : 'width';\n        var otherDimSize = style[otherDim];\n        if (otherDimSize == null) {\n            return imageSource[dim];\n        }\n        else {\n            return imageSource[dim] / imageSource[otherDim] * otherDimSize;\n        }\n    };\n    ZRImage.prototype.getWidth = function () {\n        return this._getSize('width');\n    };\n    ZRImage.prototype.getHeight = function () {\n        return this._getSize('height');\n    };\n    ZRImage.prototype.getAnimationStyleProps = function () {\n        return DEFAULT_IMAGE_ANIMATION_PROPS;\n    };\n    ZRImage.prototype.getBoundingRect = function () {\n        var style = this.style;\n        if (!this._rect) {\n            this._rect = new BoundingRect(style.x || 0, style.y || 0, this.getWidth(), this.getHeight());\n        }\n        return this._rect;\n    };\n    return ZRImage;\n}(Displayable));\nZRImage.prototype.type = 'image';\nexport default ZRImage;\n","export function buildPath(ctx, shape) {\n    var x = shape.x;\n    var y = shape.y;\n    var width = shape.width;\n    var height = shape.height;\n    var r = shape.r;\n    var r1;\n    var r2;\n    var r3;\n    var r4;\n    if (width < 0) {\n        x = x + width;\n        width = -width;\n    }\n    if (height < 0) {\n        y = y + height;\n        height = -height;\n    }\n    if (typeof r === 'number') {\n        r1 = r2 = r3 = r4 = r;\n    }\n    else if (r instanceof Array) {\n        if (r.length === 1) {\n            r1 = r2 = r3 = r4 = r[0];\n        }\n        else if (r.length === 2) {\n            r1 = r3 = r[0];\n            r2 = r4 = r[1];\n        }\n        else if (r.length === 3) {\n            r1 = r[0];\n            r2 = r4 = r[1];\n            r3 = r[2];\n        }\n        else {\n            r1 = r[0];\n            r2 = r[1];\n            r3 = r[2];\n            r4 = r[3];\n        }\n    }\n    else {\n        r1 = r2 = r3 = r4 = 0;\n    }\n    var total;\n    if (r1 + r2 > width) {\n        total = r1 + r2;\n        r1 *= width / total;\n        r2 *= width / total;\n    }\n    if (r3 + r4 > width) {\n        total = r3 + r4;\n        r3 *= width / total;\n        r4 *= width / total;\n    }\n    if (r2 + r3 > height) {\n        total = r2 + r3;\n        r2 *= height / total;\n        r3 *= height / total;\n    }\n    if (r1 + r4 > height) {\n        total = r1 + r4;\n        r1 *= height / total;\n        r4 *= height / total;\n    }\n    ctx.moveTo(x + r1, y);\n    ctx.lineTo(x + width - r2, y);\n    r2 !== 0 && ctx.arc(x + width - r2, y + r2, r2, -Math.PI / 2, 0);\n    ctx.lineTo(x + width, y + height - r3);\n    r3 !== 0 && ctx.arc(x + width - r3, y + height - r3, r3, 0, Math.PI / 2);\n    ctx.lineTo(x + r4, y + height);\n    r4 !== 0 && ctx.arc(x + r4, y + height - r4, r4, Math.PI / 2, Math.PI);\n    ctx.lineTo(x, y + r1);\n    r1 !== 0 && ctx.arc(x + r1, y + r1, r1, Math.PI, Math.PI * 1.5);\n}\n","var round = Math.round;\nexport function subPixelOptimizeLine(outputShape, inputShape, style) {\n    if (!inputShape) {\n        return;\n    }\n    var x1 = inputShape.x1;\n    var x2 = inputShape.x2;\n    var y1 = inputShape.y1;\n    var y2 = inputShape.y2;\n    outputShape.x1 = x1;\n    outputShape.x2 = x2;\n    outputShape.y1 = y1;\n    outputShape.y2 = y2;\n    var lineWidth = style && style.lineWidth;\n    if (!lineWidth) {\n        return outputShape;\n    }\n    if (round(x1 * 2) === round(x2 * 2)) {\n        outputShape.x1 = outputShape.x2 = subPixelOptimize(x1, lineWidth, true);\n    }\n    if (round(y1 * 2) === round(y2 * 2)) {\n        outputShape.y1 = outputShape.y2 = subPixelOptimize(y1, lineWidth, true);\n    }\n    return outputShape;\n}\nexport function subPixelOptimizeRect(outputShape, inputShape, style) {\n    if (!inputShape) {\n        return;\n    }\n    var originX = inputShape.x;\n    var originY = inputShape.y;\n    var originWidth = inputShape.width;\n    var originHeight = inputShape.height;\n    outputShape.x = originX;\n    outputShape.y = originY;\n    outputShape.width = originWidth;\n    outputShape.height = originHeight;\n    var lineWidth = style && style.lineWidth;\n    if (!lineWidth) {\n        return outputShape;\n    }\n    outputShape.x = subPixelOptimize(originX, lineWidth, true);\n    outputShape.y = subPixelOptimize(originY, lineWidth, true);\n    outputShape.width = Math.max(subPixelOptimize(originX + originWidth, lineWidth, false) - outputShape.x, originWidth === 0 ? 0 : 1);\n    outputShape.height = Math.max(subPixelOptimize(originY + originHeight, lineWidth, false) - outputShape.y, originHeight === 0 ? 0 : 1);\n    return outputShape;\n}\nexport function subPixelOptimize(position, lineWidth, positiveOrNegative) {\n    if (!lineWidth) {\n        return position;\n    }\n    var doubledPosition = round(position * 2);\n    return (doubledPosition + round(lineWidth)) % 2 === 0\n        ? doubledPosition / 2\n        : (doubledPosition + (positiveOrNegative ? 1 : -1)) / 2;\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as roundRectHelper from '../helper/roundRect';\nimport { subPixelOptimizeRect } from '../helper/subPixelOptimize';\nvar RectShape = (function () {\n    function RectShape() {\n        this.x = 0;\n        this.y = 0;\n        this.width = 0;\n        this.height = 0;\n    }\n    return RectShape;\n}());\nvar subPixelOptimizeOutputShape = {};\nvar Rect = (function (_super) {\n    __extends(Rect, _super);\n    function Rect(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Rect.prototype.getDefaultShape = function () {\n        return new RectShape();\n    };\n    Rect.prototype.buildPath = function (ctx, shape) {\n        var x;\n        var y;\n        var width;\n        var height;\n        if (this.subPixelOptimize) {\n            var optimizedShape = subPixelOptimizeRect(subPixelOptimizeOutputShape, shape, this.style);\n            x = optimizedShape.x;\n            y = optimizedShape.y;\n            width = optimizedShape.width;\n            height = optimizedShape.height;\n            optimizedShape.r = shape.r;\n            shape = optimizedShape;\n        }\n        else {\n            x = shape.x;\n            y = shape.y;\n            width = shape.width;\n            height = shape.height;\n        }\n        if (!shape.r) {\n            ctx.rect(x, y, width, height);\n        }\n        else {\n            roundRectHelper.buildPath(ctx, shape);\n        }\n    };\n    Rect.prototype.isZeroArea = function () {\n        return !this.shape.width || !this.shape.height;\n    };\n    return Rect;\n}(Path));\nRect.prototype.type = 'rect';\nexport default Rect;\n","import { __extends } from \"tslib\";\nimport { parseRichText, parsePlainText } from './helper/parseText';\nimport TSpan from './TSpan';\nimport { retrieve2, isString, each, normalizeCssArray, trim, retrieve3, extend, keys, defaults } from '../core/util';\nimport { DEFAULT_FONT, adjustTextX, adjustTextY } from '../contain/text';\nimport ZRImage from './Image';\nimport Rect from './shape/Rect';\nimport BoundingRect from '../core/BoundingRect';\nimport { copy } from '../core/matrix';\nimport Displayable, { DEFAULT_COMMON_ANIMATION_PROPS } from './Displayable';\nvar DEFAULT_RICH_TEXT_COLOR = {\n    fill: '#000'\n};\nvar DEFAULT_STROKE_LINE_WIDTH = 2;\nexport var DEFAULT_TEXT_ANIMATION_PROPS = {\n    style: defaults({\n        fill: true,\n        stroke: true,\n        fillOpacity: true,\n        strokeOpacity: true,\n        lineWidth: true,\n        fontSize: true,\n        lineHeight: true,\n        width: true,\n        height: true,\n        textShadowColor: true,\n        textShadowBlur: true,\n        textShadowOffsetX: true,\n        textShadowOffsetY: true,\n        backgroundColor: true,\n        padding: true,\n        borderColor: true,\n        borderWidth: true,\n        borderRadius: true\n    }, DEFAULT_COMMON_ANIMATION_PROPS.style)\n};\nvar ZRText = (function (_super) {\n    __extends(ZRText, _super);\n    function ZRText(opts) {\n        var _this = _super.call(this) || this;\n        _this.type = 'text';\n        _this._children = [];\n        _this._defaultStyle = DEFAULT_RICH_TEXT_COLOR;\n        _this.attr(opts);\n        return _this;\n    }\n    ZRText.prototype.childrenRef = function () {\n        return this._children;\n    };\n    ZRText.prototype.update = function () {\n        if (this.styleChanged()) {\n            this._updateSubTexts();\n        }\n        for (var i = 0; i < this._children.length; i++) {\n            var child = this._children[i];\n            child.zlevel = this.zlevel;\n            child.z = this.z;\n            child.z2 = this.z2;\n            child.culling = this.culling;\n            child.cursor = this.cursor;\n            child.invisible = this.invisible;\n        }\n        var attachedTransform = this.attachedTransform;\n        if (attachedTransform) {\n            attachedTransform.updateTransform();\n            var m = attachedTransform.transform;\n            if (m) {\n                this.transform = this.transform || [];\n                copy(this.transform, m);\n            }\n            else {\n                this.transform = null;\n            }\n        }\n        else {\n            _super.prototype.update.call(this);\n        }\n    };\n    ZRText.prototype.getComputedTransform = function () {\n        if (this.__hostTarget) {\n            this.__hostTarget.getComputedTransform();\n            this.__hostTarget.updateInnerText(true);\n        }\n        return this.attachedTransform ? this.attachedTransform.getComputedTransform()\n            : _super.prototype.getComputedTransform.call(this);\n    };\n    ZRText.prototype._updateSubTexts = function () {\n        this._childCursor = 0;\n        normalizeTextStyle(this.style);\n        this.style.rich\n            ? this._updateRichTexts()\n            : this._updatePlainTexts();\n        this._children.length = this._childCursor;\n        this.styleUpdated();\n    };\n    ZRText.prototype.addSelfToZr = function (zr) {\n        _super.prototype.addSelfToZr.call(this, zr);\n        for (var i = 0; i < this._children.length; i++) {\n            this._children[i].__zr = zr;\n        }\n    };\n    ZRText.prototype.removeSelfFromZr = function (zr) {\n        _super.prototype.removeSelfFromZr.call(this, zr);\n        for (var i = 0; i < this._children.length; i++) {\n            this._children[i].__zr = null;\n        }\n    };\n    ZRText.prototype.getBoundingRect = function () {\n        if (this.styleChanged()) {\n            this._updateSubTexts();\n        }\n        if (!this._rect) {\n            var tmpRect = new BoundingRect(0, 0, 0, 0);\n            var children = this._children;\n            var tmpMat = [];\n            var rect = null;\n            for (var i = 0; i < children.length; i++) {\n                var child = children[i];\n                var childRect = child.getBoundingRect();\n                var transform = child.getLocalTransform(tmpMat);\n                if (transform) {\n                    tmpRect.copy(childRect);\n                    tmpRect.applyTransform(transform);\n                    rect = rect || tmpRect.clone();\n                    rect.union(tmpRect);\n                }\n                else {\n                    rect = rect || childRect.clone();\n                    rect.union(childRect);\n                }\n            }\n            this._rect = rect || tmpRect;\n        }\n        return this._rect;\n    };\n    ZRText.prototype.setDefaultTextStyle = function (defaultTextStyle) {\n        this._defaultStyle = defaultTextStyle || DEFAULT_RICH_TEXT_COLOR;\n    };\n    ZRText.prototype.setTextContent = function (textContent) {\n        throw new Error('Can\\'t attach text on another text');\n    };\n    ZRText.prototype._mergeStyle = function (targetStyle, sourceStyle) {\n        if (!sourceStyle) {\n            return targetStyle;\n        }\n        var sourceRich = sourceStyle.rich;\n        var targetRich = targetStyle.rich || (sourceRich && {});\n        extend(targetStyle, sourceStyle);\n        if (sourceRich && targetRich) {\n            this._mergeRich(targetRich, sourceRich);\n            targetStyle.rich = targetRich;\n        }\n        else if (targetRich) {\n            targetStyle.rich = targetRich;\n        }\n        return targetStyle;\n    };\n    ZRText.prototype._mergeRich = function (targetRich, sourceRich) {\n        var richNames = keys(sourceRich);\n        for (var i = 0; i < richNames.length; i++) {\n            var richName = richNames[i];\n            targetRich[richName] = targetRich[richName] || {};\n            extend(targetRich[richName], sourceRich[richName]);\n        }\n    };\n    ZRText.prototype.getAnimationStyleProps = function () {\n        return DEFAULT_TEXT_ANIMATION_PROPS;\n    };\n    ZRText.prototype._getOrCreateChild = function (Ctor) {\n        var child = this._children[this._childCursor];\n        if (!child || !(child instanceof Ctor)) {\n            child = new Ctor();\n        }\n        this._children[this._childCursor++] = child;\n        child.__zr = this.__zr;\n        child.parent = this;\n        return child;\n    };\n    ZRText.prototype._updatePlainTexts = function () {\n        var style = this.style;\n        var textFont = style.font || DEFAULT_FONT;\n        var textPadding = style.padding;\n        var text = getStyleText(style);\n        var contentBlock = parsePlainText(text, style);\n        var needDrawBg = needDrawBackground(style);\n        var bgColorDrawn = !!(style.backgroundColor);\n        var outerHeight = contentBlock.outerHeight;\n        var textLines = contentBlock.lines;\n        var lineHeight = contentBlock.lineHeight;\n        var defaultStyle = this._defaultStyle;\n        var baseX = style.x || 0;\n        var baseY = style.y || 0;\n        var textAlign = style.align || defaultStyle.align || 'left';\n        var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign || 'top';\n        var textX = baseX;\n        var textY = adjustTextY(baseY, contentBlock.contentHeight, verticalAlign);\n        if (needDrawBg || textPadding) {\n            var outerWidth_1 = contentBlock.width;\n            textPadding && (outerWidth_1 += textPadding[1] + textPadding[3]);\n            var boxX = adjustTextX(baseX, outerWidth_1, textAlign);\n            var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\n            needDrawBg && this._renderBackground(style, style, boxX, boxY, outerWidth_1, outerHeight);\n        }\n        textY += lineHeight / 2;\n        if (textPadding) {\n            textX = getTextXForPadding(baseX, textAlign, textPadding);\n            if (verticalAlign === 'top') {\n                textY += textPadding[0];\n            }\n            else if (verticalAlign === 'bottom') {\n                textY -= textPadding[2];\n            }\n        }\n        var defaultLineWidth = 0;\n        var useDefaultFill = false;\n        var textFill = getFill('fill' in style\n            ? style.fill\n            : (useDefaultFill = true, defaultStyle.fill));\n        var textStroke = getStroke('stroke' in style\n            ? style.stroke\n            : (!bgColorDrawn\n                && (!defaultStyle.autoStroke || useDefaultFill))\n                ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\n                : null);\n        var hasShadow = style.textShadowBlur > 0;\n        var fixedBoundingRect = style.width != null\n            && (style.overflow === 'truncate' || style.overflow === 'break' || style.overflow === 'breakAll');\n        var calculatedLineHeight = contentBlock.calculatedLineHeight;\n        for (var i = 0; i < textLines.length; i++) {\n            var el = this._getOrCreateChild(TSpan);\n            var subElStyle = el.createStyle();\n            el.useStyle(subElStyle);\n            subElStyle.text = textLines[i];\n            subElStyle.x = textX;\n            subElStyle.y = textY;\n            if (textAlign) {\n                subElStyle.textAlign = textAlign;\n            }\n            subElStyle.textBaseline = 'middle';\n            subElStyle.opacity = style.opacity;\n            subElStyle.strokeFirst = true;\n            if (hasShadow) {\n                subElStyle.shadowBlur = style.textShadowBlur || 0;\n                subElStyle.shadowColor = style.textShadowColor || 'transparent';\n                subElStyle.shadowOffsetX = style.textShadowOffsetX || 0;\n                subElStyle.shadowOffsetY = style.textShadowOffsetY || 0;\n            }\n            if (textStroke) {\n                subElStyle.stroke = textStroke;\n                subElStyle.lineWidth = style.lineWidth || defaultLineWidth;\n                subElStyle.lineDash = style.lineDash;\n                subElStyle.lineDashOffset = style.lineDashOffset || 0;\n            }\n            if (textFill) {\n                subElStyle.fill = textFill;\n            }\n            subElStyle.font = textFont;\n            textY += lineHeight;\n            if (fixedBoundingRect) {\n                el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, style.width, subElStyle.textAlign), adjustTextY(subElStyle.y, calculatedLineHeight, subElStyle.textBaseline), style.width, calculatedLineHeight));\n            }\n        }\n    };\n    ZRText.prototype._updateRichTexts = function () {\n        var style = this.style;\n        var text = getStyleText(style);\n        var contentBlock = parseRichText(text, style);\n        var contentWidth = contentBlock.width;\n        var outerWidth = contentBlock.outerWidth;\n        var outerHeight = contentBlock.outerHeight;\n        var textPadding = style.padding;\n        var baseX = style.x || 0;\n        var baseY = style.y || 0;\n        var defaultStyle = this._defaultStyle;\n        var textAlign = style.align || defaultStyle.align;\n        var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign;\n        var boxX = adjustTextX(baseX, outerWidth, textAlign);\n        var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\n        var xLeft = boxX;\n        var lineTop = boxY;\n        if (textPadding) {\n            xLeft += textPadding[3];\n            lineTop += textPadding[0];\n        }\n        var xRight = xLeft + contentWidth;\n        if (needDrawBackground(style)) {\n            this._renderBackground(style, style, boxX, boxY, outerWidth, outerHeight);\n        }\n        var bgColorDrawn = !!(style.backgroundColor);\n        for (var i = 0; i < contentBlock.lines.length; i++) {\n            var line = contentBlock.lines[i];\n            var tokens = line.tokens;\n            var tokenCount = tokens.length;\n            var lineHeight = line.lineHeight;\n            var remainedWidth = line.width;\n            var leftIndex = 0;\n            var lineXLeft = xLeft;\n            var lineXRight = xRight;\n            var rightIndex = tokenCount - 1;\n            var token = void 0;\n            while (leftIndex < tokenCount\n                && (token = tokens[leftIndex], !token.align || token.align === 'left')) {\n                this._placeToken(token, style, lineHeight, lineTop, lineXLeft, 'left', bgColorDrawn);\n                remainedWidth -= token.width;\n                lineXLeft += token.width;\n                leftIndex++;\n            }\n            while (rightIndex >= 0\n                && (token = tokens[rightIndex], token.align === 'right')) {\n                this._placeToken(token, style, lineHeight, lineTop, lineXRight, 'right', bgColorDrawn);\n                remainedWidth -= token.width;\n                lineXRight -= token.width;\n                rightIndex--;\n            }\n            lineXLeft += (contentWidth - (lineXLeft - xLeft) - (xRight - lineXRight) - remainedWidth) / 2;\n            while (leftIndex <= rightIndex) {\n                token = tokens[leftIndex];\n                this._placeToken(token, style, lineHeight, lineTop, lineXLeft + token.width / 2, 'center', bgColorDrawn);\n                lineXLeft += token.width;\n                leftIndex++;\n            }\n            lineTop += lineHeight;\n        }\n    };\n    ZRText.prototype._placeToken = function (token, style, lineHeight, lineTop, x, textAlign, parentBgColorDrawn) {\n        var tokenStyle = style.rich[token.styleName] || {};\n        tokenStyle.text = token.text;\n        var verticalAlign = token.verticalAlign;\n        var y = lineTop + lineHeight / 2;\n        if (verticalAlign === 'top') {\n            y = lineTop + token.height / 2;\n        }\n        else if (verticalAlign === 'bottom') {\n            y = lineTop + lineHeight - token.height / 2;\n        }\n        var needDrawBg = !token.isLineHolder && needDrawBackground(tokenStyle);\n        needDrawBg && this._renderBackground(tokenStyle, style, textAlign === 'right'\n            ? x - token.width\n            : textAlign === 'center'\n                ? x - token.width / 2\n                : x, y - token.height / 2, token.width, token.height);\n        var bgColorDrawn = !!tokenStyle.backgroundColor;\n        var textPadding = token.textPadding;\n        if (textPadding) {\n            x = getTextXForPadding(x, textAlign, textPadding);\n            y -= token.height / 2 - textPadding[0] - token.innerHeight / 2;\n        }\n        var el = this._getOrCreateChild(TSpan);\n        var subElStyle = el.createStyle();\n        el.useStyle(subElStyle);\n        var defaultStyle = this._defaultStyle;\n        var useDefaultFill = false;\n        var defaultLineWidth = 0;\n        var textFill = getStroke('fill' in tokenStyle ? tokenStyle.fill\n            : 'fill' in style ? style.fill\n                : (useDefaultFill = true, defaultStyle.fill));\n        var textStroke = getStroke('stroke' in tokenStyle ? tokenStyle.stroke\n            : 'stroke' in style ? style.stroke\n                : (!bgColorDrawn\n                    && !parentBgColorDrawn\n                    && (!defaultStyle.autoStroke || useDefaultFill)) ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\n                    : null);\n        var hasShadow = tokenStyle.textShadowBlur > 0\n            || style.textShadowBlur > 0;\n        subElStyle.text = token.text;\n        subElStyle.x = x;\n        subElStyle.y = y;\n        if (hasShadow) {\n            subElStyle.shadowBlur = tokenStyle.textShadowBlur || style.textShadowBlur || 0;\n            subElStyle.shadowColor = tokenStyle.textShadowColor || style.textShadowColor || 'transparent';\n            subElStyle.shadowOffsetX = tokenStyle.textShadowOffsetX || style.textShadowOffsetX || 0;\n            subElStyle.shadowOffsetY = tokenStyle.textShadowOffsetY || style.textShadowOffsetY || 0;\n        }\n        subElStyle.textAlign = textAlign;\n        subElStyle.textBaseline = 'middle';\n        subElStyle.font = token.font || DEFAULT_FONT;\n        subElStyle.opacity = retrieve3(tokenStyle.opacity, style.opacity, 1);\n        if (textStroke) {\n            subElStyle.lineWidth = retrieve3(tokenStyle.lineWidth, style.lineWidth, defaultLineWidth);\n            subElStyle.lineDash = retrieve2(tokenStyle.lineDash, style.lineDash);\n            subElStyle.lineDashOffset = style.lineDashOffset || 0;\n            subElStyle.stroke = textStroke;\n        }\n        if (textFill) {\n            subElStyle.fill = textFill;\n        }\n        var textWidth = token.contentWidth;\n        var textHeight = token.contentHeight;\n        el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, textWidth, subElStyle.textAlign), adjustTextY(subElStyle.y, textHeight, subElStyle.textBaseline), textWidth, textHeight));\n    };\n    ZRText.prototype._renderBackground = function (style, topStyle, x, y, width, height) {\n        var textBackgroundColor = style.backgroundColor;\n        var textBorderWidth = style.borderWidth;\n        var textBorderColor = style.borderColor;\n        var isPlainBg = isString(textBackgroundColor);\n        var textBorderRadius = style.borderRadius;\n        var self = this;\n        var rectEl;\n        var imgEl;\n        if (isPlainBg || (textBorderWidth && textBorderColor)) {\n            rectEl = this._getOrCreateChild(Rect);\n            rectEl.useStyle(rectEl.createStyle());\n            rectEl.style.fill = null;\n            var rectShape = rectEl.shape;\n            rectShape.x = x;\n            rectShape.y = y;\n            rectShape.width = width;\n            rectShape.height = height;\n            rectShape.r = textBorderRadius;\n            rectEl.dirtyShape();\n        }\n        if (isPlainBg) {\n            var rectStyle = rectEl.style;\n            rectStyle.fill = textBackgroundColor || null;\n            rectStyle.fillOpacity = retrieve2(style.fillOpacity, 1);\n        }\n        else if (textBackgroundColor && textBackgroundColor.image) {\n            imgEl = this._getOrCreateChild(ZRImage);\n            imgEl.onload = function () {\n                self.dirtyStyle();\n            };\n            var imgStyle = imgEl.style;\n            imgStyle.image = textBackgroundColor.image;\n            imgStyle.x = x;\n            imgStyle.y = y;\n            imgStyle.width = width;\n            imgStyle.height = height;\n        }\n        if (textBorderWidth && textBorderColor) {\n            var rectStyle = rectEl.style;\n            rectStyle.lineWidth = textBorderWidth;\n            rectStyle.stroke = textBorderColor;\n            rectStyle.strokeOpacity = retrieve2(style.strokeOpacity, 1);\n            rectStyle.lineDash = style.borderDash;\n            rectStyle.lineDashOffset = style.borderDashOffset || 0;\n            rectEl.strokeContainThreshold = 0;\n            if (rectEl.hasFill() && rectEl.hasStroke()) {\n                rectStyle.strokeFirst = true;\n                rectStyle.lineWidth *= 2;\n            }\n        }\n        var commonStyle = (rectEl || imgEl).style;\n        commonStyle.shadowBlur = style.shadowBlur || 0;\n        commonStyle.shadowColor = style.shadowColor || 'transparent';\n        commonStyle.shadowOffsetX = style.shadowOffsetX || 0;\n        commonStyle.shadowOffsetY = style.shadowOffsetY || 0;\n        commonStyle.opacity = retrieve3(style.opacity, topStyle.opacity, 1);\n    };\n    ZRText.makeFont = function (style) {\n        var font = '';\n        if (style.fontSize || style.fontFamily || style.fontWeight) {\n            var fontSize = '';\n            if (typeof style.fontSize === 'string'\n                && (style.fontSize.indexOf('px') !== -1\n                    || style.fontSize.indexOf('rem') !== -1\n                    || style.fontSize.indexOf('em') !== -1)) {\n                fontSize = style.fontSize;\n            }\n            else if (!isNaN(+style.fontSize)) {\n                fontSize = style.fontSize + 'px';\n            }\n            else {\n                fontSize = '12px';\n            }\n            font = [\n                style.fontStyle,\n                style.fontWeight,\n                fontSize,\n                style.fontFamily || 'sans-serif'\n            ].join(' ');\n        }\n        return font && trim(font) || style.textFont || style.font;\n    };\n    return ZRText;\n}(Displayable));\nvar VALID_TEXT_ALIGN = { left: true, right: 1, center: 1 };\nvar VALID_TEXT_VERTICAL_ALIGN = { top: 1, bottom: 1, middle: 1 };\nexport function normalizeTextStyle(style) {\n    normalizeStyle(style);\n    each(style.rich, normalizeStyle);\n    return style;\n}\nfunction normalizeStyle(style) {\n    if (style) {\n        style.font = ZRText.makeFont(style);\n        var textAlign = style.align;\n        textAlign === 'middle' && (textAlign = 'center');\n        style.align = (textAlign == null || VALID_TEXT_ALIGN[textAlign]) ? textAlign : 'left';\n        var verticalAlign = style.verticalAlign;\n        verticalAlign === 'center' && (verticalAlign = 'middle');\n        style.verticalAlign = (verticalAlign == null || VALID_TEXT_VERTICAL_ALIGN[verticalAlign]) ? verticalAlign : 'top';\n        var textPadding = style.padding;\n        if (textPadding) {\n            style.padding = normalizeCssArray(style.padding);\n        }\n    }\n}\nfunction getStroke(stroke, lineWidth) {\n    return (stroke == null || lineWidth <= 0 || stroke === 'transparent' || stroke === 'none')\n        ? null\n        : (stroke.image || stroke.colorStops)\n            ? '#000'\n            : stroke;\n}\nfunction getFill(fill) {\n    return (fill == null || fill === 'none')\n        ? null\n        : (fill.image || fill.colorStops)\n            ? '#000'\n            : fill;\n}\nfunction getTextXForPadding(x, textAlign, textPadding) {\n    return textAlign === 'right'\n        ? (x - textPadding[1])\n        : textAlign === 'center'\n            ? (x + textPadding[3] / 2 - textPadding[1] / 2)\n            : (x + textPadding[3]);\n}\nfunction getStyleText(style) {\n    var text = style.text;\n    text != null && (text += '');\n    return text;\n}\nfunction needDrawBackground(style) {\n    return !!(style.backgroundColor\n        || (style.borderWidth && style.borderColor));\n}\nexport default ZRText;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner } from './model';\nexport var getECData = makeInner();","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport LRU from 'zrender/lib/core/LRU';\nimport { extend, indexOf, isArrayLike, isObject, keys, isArray, each } from 'zrender/lib/core/util';\nimport { getECData } from './innerStore';\nimport * as colorTool from 'zrender/lib/tool/color';\nimport { queryDataIndex, makeInner } from './model';\nimport Path from 'zrender/lib/graphic/Path';\nvar _highlightNextDigit = 1;\nvar _highlightKeyMap = {};\nvar getSavedStates = makeInner();\nexport var HOVER_STATE_NORMAL = 0;\nexport var HOVER_STATE_BLUR = 1;\nexport var HOVER_STATE_EMPHASIS = 2;\nexport var SPECIAL_STATES = ['emphasis', 'blur', 'select'];\nexport var DISPLAY_STATES = ['normal', 'emphasis', 'blur', 'select'];\nexport var Z2_EMPHASIS_LIFT = 10;\nexport var Z2_SELECT_LIFT = 9;\nexport var HIGHLIGHT_ACTION_TYPE = 'highlight';\nexport var DOWNPLAY_ACTION_TYPE = 'downplay';\nexport var SELECT_ACTION_TYPE = 'select';\nexport var UNSELECT_ACTION_TYPE = 'unselect';\nexport var TOGGLE_SELECT_ACTION_TYPE = 'toggleSelect';\n\nfunction hasFillOrStroke(fillOrStroke) {\n  return fillOrStroke != null && fillOrStroke !== 'none';\n}\n\nvar liftedColorCache = new LRU(100);\n\nfunction liftColor(color) {\n  if (typeof color !== 'string') {\n    return color;\n  }\n\n  var liftedColor = liftedColorCache.get(color);\n\n  if (!liftedColor) {\n    liftedColor = colorTool.lift(color, -0.1);\n    liftedColorCache.put(color, liftedColor);\n  }\n\n  return liftedColor;\n}\n\nfunction doChangeHoverState(el, stateName, hoverStateEnum) {\n  if (el.onHoverStateChange && (el.hoverState || 0) !== hoverStateEnum) {\n    el.onHoverStateChange(stateName);\n  }\n\n  el.hoverState = hoverStateEnum;\n}\n\nfunction singleEnterEmphasis(el) {\n  doChangeHoverState(el, 'emphasis', HOVER_STATE_EMPHASIS);\n}\n\nfunction singleLeaveEmphasis(el) {\n  if (el.hoverState === HOVER_STATE_EMPHASIS) {\n    doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\n  }\n}\n\nfunction singleEnterBlur(el) {\n  doChangeHoverState(el, 'blur', HOVER_STATE_BLUR);\n}\n\nfunction singleLeaveBlur(el) {\n  if (el.hoverState === HOVER_STATE_BLUR) {\n    doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\n  }\n}\n\nfunction singleEnterSelect(el) {\n  el.selected = true;\n}\n\nfunction singleLeaveSelect(el) {\n  el.selected = false;\n}\n\nfunction updateElementState(el, updater, commonParam) {\n  updater(el, commonParam);\n}\n\nfunction traverseUpdateState(el, updater, commonParam) {\n  updateElementState(el, updater, commonParam);\n  el.isGroup && el.traverse(function (child) {\n    updateElementState(child, updater, commonParam);\n  });\n}\n\nexport function setStatesFlag(el, stateName) {\n  switch (stateName) {\n    case 'emphasis':\n      el.hoverState = HOVER_STATE_EMPHASIS;\n      break;\n\n    case 'normal':\n      el.hoverState = HOVER_STATE_NORMAL;\n      break;\n\n    case 'blur':\n      el.hoverState = HOVER_STATE_BLUR;\n      break;\n\n    case 'select':\n      el.selected = true;\n  }\n}\nexport function clearStates(el) {\n  if (el.isGroup) {\n    el.traverse(function (child) {\n      child.clearStates();\n    });\n  } else {\n    el.clearStates();\n  }\n}\n\nfunction getFromStateStyle(el, props, toStateName, defaultValue) {\n  var style = el.style;\n  var fromState = {};\n\n  for (var i = 0; i < props.length; i++) {\n    var propName = props[i];\n    var val = style[propName];\n    fromState[propName] = val == null ? defaultValue && defaultValue[propName] : val;\n  }\n\n  for (var i = 0; i < el.animators.length; i++) {\n    var animator = el.animators[i];\n\n    if (animator.__fromStateTransition && animator.__fromStateTransition.indexOf(toStateName) < 0 && animator.targetName === 'style') {\n      animator.saveFinalToTarget(fromState, props);\n    }\n  }\n\n  return fromState;\n}\n\nfunction createEmphasisDefaultState(el, stateName, targetStates, state) {\n  var hasSelect = targetStates && indexOf(targetStates, 'select') >= 0;\n  var cloned = false;\n\n  if (el instanceof Path) {\n    var store = getSavedStates(el);\n    var fromFill = hasSelect ? store.selectFill || store.normalFill : store.normalFill;\n    var fromStroke = hasSelect ? store.selectStroke || store.normalStroke : store.normalStroke;\n\n    if (hasFillOrStroke(fromFill) || hasFillOrStroke(fromStroke)) {\n      state = state || {};\n      var emphasisStyle = state.style || {};\n\n      if (!hasFillOrStroke(emphasisStyle.fill) && hasFillOrStroke(fromFill)) {\n        cloned = true;\n        state = extend({}, state);\n        emphasisStyle = extend({}, emphasisStyle);\n        emphasisStyle.fill = liftColor(fromFill);\n      } else if (!hasFillOrStroke(emphasisStyle.stroke) && hasFillOrStroke(fromStroke)) {\n        if (!cloned) {\n          state = extend({}, state);\n          emphasisStyle = extend({}, emphasisStyle);\n        }\n\n        emphasisStyle.stroke = liftColor(fromStroke);\n      }\n\n      state.style = emphasisStyle;\n    }\n  }\n\n  if (state) {\n    if (state.z2 == null) {\n      if (!cloned) {\n        state = extend({}, state);\n      }\n\n      var z2EmphasisLift = el.z2EmphasisLift;\n      state.z2 = el.z2 + (z2EmphasisLift != null ? z2EmphasisLift : Z2_EMPHASIS_LIFT);\n    }\n  }\n\n  return state;\n}\n\nfunction createSelectDefaultState(el, stateName, state) {\n  if (state) {\n    if (state.z2 == null) {\n      state = extend({}, state);\n      var z2SelectLift = el.z2SelectLift;\n      state.z2 = el.z2 + (z2SelectLift != null ? z2SelectLift : Z2_SELECT_LIFT);\n    }\n  }\n\n  return state;\n}\n\nfunction createBlurDefaultState(el, stateName, state) {\n  var hasBlur = indexOf(el.currentStates, stateName) >= 0;\n  var currentOpacity = el.style.opacity;\n  var fromState = !hasBlur ? getFromStateStyle(el, ['opacity'], stateName, {\n    opacity: 1\n  }) : null;\n  state = state || {};\n  var blurStyle = state.style || {};\n\n  if (blurStyle.opacity == null) {\n    state = extend({}, state);\n    blurStyle = extend({\n      opacity: hasBlur ? currentOpacity : fromState.opacity * 0.1\n    }, blurStyle);\n    state.style = blurStyle;\n  }\n\n  return state;\n}\n\nfunction elementStateProxy(stateName, targetStates) {\n  var state = this.states[stateName];\n\n  if (this.style) {\n    if (stateName === 'emphasis') {\n      return createEmphasisDefaultState(this, stateName, targetStates, state);\n    } else if (stateName === 'blur') {\n      return createBlurDefaultState(this, stateName, state);\n    } else if (stateName === 'select') {\n      return createSelectDefaultState(this, stateName, state);\n    }\n  }\n\n  return state;\n}\n\nexport function setDefaultStateProxy(el) {\n  el.stateProxy = elementStateProxy;\n  var textContent = el.getTextContent();\n  var textGuide = el.getTextGuideLine();\n\n  if (textContent) {\n    textContent.stateProxy = elementStateProxy;\n  }\n\n  if (textGuide) {\n    textGuide.stateProxy = elementStateProxy;\n  }\n}\nexport function enterEmphasisWhenMouseOver(el, e) {\n  !shouldSilent(el, e) && !el.__highByOuter && traverseUpdateState(el, singleEnterEmphasis);\n}\nexport function leaveEmphasisWhenMouseOut(el, e) {\n  !shouldSilent(el, e) && !el.__highByOuter && traverseUpdateState(el, singleLeaveEmphasis);\n}\nexport function enterEmphasis(el, highlightDigit) {\n  el.__highByOuter |= 1 << (highlightDigit || 0);\n  traverseUpdateState(el, singleEnterEmphasis);\n}\nexport function leaveEmphasis(el, highlightDigit) {\n  !(el.__highByOuter &= ~(1 << (highlightDigit || 0))) && traverseUpdateState(el, singleLeaveEmphasis);\n}\nexport function enterBlur(el) {\n  traverseUpdateState(el, singleEnterBlur);\n}\nexport function leaveBlur(el) {\n  traverseUpdateState(el, singleLeaveBlur);\n}\nexport function enterSelect(el) {\n  traverseUpdateState(el, singleEnterSelect);\n}\nexport function leaveSelect(el) {\n  traverseUpdateState(el, singleLeaveSelect);\n}\n\nfunction shouldSilent(el, e) {\n  return el.__highDownSilentOnTouch && e.zrByTouch;\n}\n\nfunction allLeaveBlur(api) {\n  var model = api.getModel();\n  model.eachComponent(function (componentType, componentModel) {\n    var view = componentType === 'series' ? api.getViewOfSeriesModel(componentModel) : api.getViewOfComponentModel(componentModel);\n    view.group.traverse(function (child) {\n      singleLeaveBlur(child);\n    });\n  });\n}\n\nexport function toggleSeriesBlurState(targetSeriesIndex, focus, blurScope, api, isBlur) {\n  var ecModel = api.getModel();\n  blurScope = blurScope || 'coordinateSystem';\n\n  function leaveBlurOfIndices(data, dataIndices) {\n    for (var i = 0; i < dataIndices.length; i++) {\n      var itemEl = data.getItemGraphicEl(dataIndices[i]);\n      itemEl && leaveBlur(itemEl);\n    }\n  }\n\n  if (!isBlur) {\n    allLeaveBlur(api);\n    return;\n  }\n\n  if (targetSeriesIndex == null) {\n    return;\n  }\n\n  if (!focus || focus === 'none') {\n    return;\n  }\n\n  var targetSeriesModel = ecModel.getSeriesByIndex(targetSeriesIndex);\n  var targetCoordSys = targetSeriesModel.coordinateSystem;\n\n  if (targetCoordSys && targetCoordSys.master) {\n    targetCoordSys = targetCoordSys.master;\n  }\n\n  var blurredSeries = [];\n  ecModel.eachSeries(function (seriesModel) {\n    var sameSeries = targetSeriesModel === seriesModel;\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys && coordSys.master) {\n      coordSys = coordSys.master;\n    }\n\n    var sameCoordSys = coordSys && targetCoordSys ? coordSys === targetCoordSys : sameSeries;\n\n    if (!(blurScope === 'series' && !sameSeries || blurScope === 'coordinateSystem' && !sameCoordSys || focus === 'series' && sameSeries)) {\n      var view = api.getViewOfSeriesModel(seriesModel);\n      view.group.traverse(function (child) {\n        singleEnterBlur(child);\n      });\n\n      if (isArrayLike(focus)) {\n        leaveBlurOfIndices(seriesModel.getData(), focus);\n      } else if (isObject(focus)) {\n        var dataTypes = keys(focus);\n\n        for (var d = 0; d < dataTypes.length; d++) {\n          leaveBlurOfIndices(seriesModel.getData(dataTypes[d]), focus[dataTypes[d]]);\n        }\n      }\n\n      blurredSeries.push(seriesModel);\n    }\n  });\n  ecModel.eachComponent(function (componentType, componentModel) {\n    if (componentType === 'series') {\n      return;\n    }\n\n    var view = api.getViewOfComponentModel(componentModel);\n\n    if (view && view.blurSeries) {\n      view.blurSeries(blurredSeries, ecModel);\n    }\n  });\n}\nexport function toggleSeriesBlurStateFromPayload(seriesModel, payload, api) {\n  if (!isHighDownPayload(payload)) {\n    return;\n  }\n\n  var isHighlight = payload.type === HIGHLIGHT_ACTION_TYPE;\n  var seriesIndex = seriesModel.seriesIndex;\n  var data = seriesModel.getData(payload.dataType);\n  var dataIndex = queryDataIndex(data, payload);\n  dataIndex = (isArray(dataIndex) ? dataIndex[0] : dataIndex) || 0;\n  var el = data.getItemGraphicEl(dataIndex);\n\n  if (!el) {\n    var count = data.count();\n    var current = 0;\n\n    while (!el && current < count) {\n      el = data.getItemGraphicEl(current++);\n    }\n  }\n\n  if (el) {\n    var ecData = getECData(el);\n    toggleSeriesBlurState(seriesIndex, ecData.focus, ecData.blurScope, api, isHighlight);\n  } else {\n    var focus_1 = seriesModel.get(['emphasis', 'focus']);\n    var blurScope = seriesModel.get(['emphasis', 'blurScope']);\n\n    if (focus_1 != null) {\n      toggleSeriesBlurState(seriesIndex, focus_1, blurScope, api, isHighlight);\n    }\n  }\n}\nexport function toggleSelectionFromPayload(seriesModel, payload, api) {\n  if (!isSelectChangePayload(payload)) {\n    return;\n  }\n\n  var dataType = payload.dataType;\n  var data = seriesModel.getData(dataType);\n  var dataIndex = queryDataIndex(data, payload);\n\n  if (!isArray(dataIndex)) {\n    dataIndex = [dataIndex];\n  }\n\n  seriesModel[payload.type === TOGGLE_SELECT_ACTION_TYPE ? 'toggleSelect' : payload.type === SELECT_ACTION_TYPE ? 'select' : 'unselect'](dataIndex, dataType);\n}\nexport function updateSeriesElementSelection(seriesModel) {\n  var allData = seriesModel.getAllData();\n  each(allData, function (_a) {\n    var data = _a.data,\n        type = _a.type;\n    data.eachItemGraphicEl(function (el, idx) {\n      seriesModel.isSelected(idx, type) ? enterSelect(el) : leaveSelect(el);\n    });\n  });\n}\nexport function getAllSelectedIndices(ecModel) {\n  var ret = [];\n  ecModel.eachSeries(function (seriesModel) {\n    var allData = seriesModel.getAllData();\n    each(allData, function (_a) {\n      var data = _a.data,\n          type = _a.type;\n      var dataIndices = seriesModel.getSelectedDataIndices();\n\n      if (dataIndices.length > 0) {\n        var item = {\n          dataIndex: dataIndices,\n          seriesIndex: seriesModel.seriesIndex\n        };\n\n        if (type != null) {\n          item.dataType = type;\n        }\n\n        ret.push(item);\n      }\n    });\n  });\n  return ret;\n}\nexport function enableHoverEmphasis(el, focus, blurScope) {\n  setAsHighDownDispatcher(el, true);\n  traverseUpdateState(el, setDefaultStateProxy);\n  enableHoverFocus(el, focus, blurScope);\n}\nexport function enableHoverFocus(el, focus, blurScope) {\n  var ecData = getECData(el);\n\n  if (focus != null) {\n    ecData.focus = focus;\n    ecData.blurScope = blurScope;\n  } else if (ecData.focus) {\n    ecData.focus = null;\n  }\n}\nvar OTHER_STATES = ['emphasis', 'blur', 'select'];\nvar defaultStyleGetterMap = {\n  itemStyle: 'getItemStyle',\n  lineStyle: 'getLineStyle',\n  areaStyle: 'getAreaStyle'\n};\nexport function setStatesStylesFromModel(el, itemModel, styleType, getter) {\n  styleType = styleType || 'itemStyle';\n\n  for (var i = 0; i < OTHER_STATES.length; i++) {\n    var stateName = OTHER_STATES[i];\n    var model = itemModel.getModel([stateName, styleType]);\n    var state = el.ensureState(stateName);\n    state.style = getter ? getter(model) : model[defaultStyleGetterMap[styleType]]();\n  }\n}\nexport function setAsHighDownDispatcher(el, asDispatcher) {\n  var disable = asDispatcher === false;\n  var extendedEl = el;\n\n  if (el.highDownSilentOnTouch) {\n    extendedEl.__highDownSilentOnTouch = el.highDownSilentOnTouch;\n  }\n\n  if (!disable || extendedEl.__highDownDispatcher) {\n    extendedEl.__highByOuter = extendedEl.__highByOuter || 0;\n    extendedEl.__highDownDispatcher = !disable;\n  }\n}\nexport function isHighDownDispatcher(el) {\n  return !!(el && el.__highDownDispatcher);\n}\nexport function getHighlightDigit(highlightKey) {\n  var highlightDigit = _highlightKeyMap[highlightKey];\n\n  if (highlightDigit == null && _highlightNextDigit <= 32) {\n    highlightDigit = _highlightKeyMap[highlightKey] = _highlightNextDigit++;\n  }\n\n  return highlightDigit;\n}\nexport function isSelectChangePayload(payload) {\n  var payloadType = payload.type;\n  return payloadType === SELECT_ACTION_TYPE || payloadType === UNSELECT_ACTION_TYPE || payloadType === TOGGLE_SELECT_ACTION_TYPE;\n}\nexport function isHighDownPayload(payload) {\n  var payloadType = payload.type;\n  return payloadType === HIGHLIGHT_ACTION_TYPE || payloadType === DOWNPLAY_ACTION_TYPE;\n}\nexport function savePathStates(el) {\n  var store = getSavedStates(el);\n  store.normalFill = el.style.fill;\n  store.normalStroke = el.style.stroke;\n  var selectState = el.states.select || {};\n  store.selectFill = selectState.style && selectState.style.fill || null;\n  store.selectStroke = selectState.style && selectState.style.stroke || null;\n}","import PathProxy from '../core/PathProxy';\nimport { applyTransform as v2ApplyTransform } from '../core/vector';\nvar CMD = PathProxy.CMD;\nvar points = [[], [], []];\nvar mathSqrt = Math.sqrt;\nvar mathAtan2 = Math.atan2;\nexport default function transformPath(path, m) {\n    var data = path.data;\n    var len = path.len();\n    var cmd;\n    var nPoint;\n    var i;\n    var j;\n    var k;\n    var p;\n    var M = CMD.M;\n    var C = CMD.C;\n    var L = CMD.L;\n    var R = CMD.R;\n    var A = CMD.A;\n    var Q = CMD.Q;\n    for (i = 0, j = 0; i < len;) {\n        cmd = data[i++];\n        j = i;\n        nPoint = 0;\n        switch (cmd) {\n            case M:\n                nPoint = 1;\n                break;\n            case L:\n                nPoint = 1;\n                break;\n            case C:\n                nPoint = 3;\n                break;\n            case Q:\n                nPoint = 2;\n                break;\n            case A:\n                var x = m[4];\n                var y = m[5];\n                var sx = mathSqrt(m[0] * m[0] + m[1] * m[1]);\n                var sy = mathSqrt(m[2] * m[2] + m[3] * m[3]);\n                var angle = mathAtan2(-m[1] / sy, m[0] / sx);\n                data[i] *= sx;\n                data[i++] += x;\n                data[i] *= sy;\n                data[i++] += y;\n                data[i++] *= sx;\n                data[i++] *= sy;\n                data[i++] += angle;\n                data[i++] += angle;\n                i += 2;\n                j = i;\n                break;\n            case R:\n                p[0] = data[i++];\n                p[1] = data[i++];\n                v2ApplyTransform(p, p, m);\n                data[j++] = p[0];\n                data[j++] = p[1];\n                p[0] += data[i++];\n                p[1] += data[i++];\n                v2ApplyTransform(p, p, m);\n                data[j++] = p[0];\n                data[j++] = p[1];\n        }\n        for (k = 0; k < nPoint; k++) {\n            var p_1 = points[k];\n            p_1[0] = data[i++];\n            p_1[1] = data[i++];\n            v2ApplyTransform(p_1, p_1, m);\n            data[j++] = p_1[0];\n            data[j++] = p_1[1];\n        }\n    }\n    path.increaseVersion();\n}\n","import { __extends } from \"tslib\";\nimport Path from '../graphic/Path';\nimport PathProxy from '../core/PathProxy';\nimport transformPath from './transformPath';\nimport { extend } from '../core/util';\nvar mathSqrt = Math.sqrt;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI = Math.PI;\nfunction vMag(v) {\n    return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\n}\n;\nfunction vRatio(u, v) {\n    return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));\n}\n;\nfunction vAngle(u, v) {\n    return (u[0] * v[1] < u[1] * v[0] ? -1 : 1)\n        * Math.acos(vRatio(u, v));\n}\n;\nfunction processArc(x1, y1, x2, y2, fa, fs, rx, ry, psiDeg, cmd, path) {\n    var psi = psiDeg * (PI / 180.0);\n    var xp = mathCos(psi) * (x1 - x2) / 2.0\n        + mathSin(psi) * (y1 - y2) / 2.0;\n    var yp = -1 * mathSin(psi) * (x1 - x2) / 2.0\n        + mathCos(psi) * (y1 - y2) / 2.0;\n    var lambda = (xp * xp) / (rx * rx) + (yp * yp) / (ry * ry);\n    if (lambda > 1) {\n        rx *= mathSqrt(lambda);\n        ry *= mathSqrt(lambda);\n    }\n    var f = (fa === fs ? -1 : 1)\n        * mathSqrt((((rx * rx) * (ry * ry))\n            - ((rx * rx) * (yp * yp))\n            - ((ry * ry) * (xp * xp))) / ((rx * rx) * (yp * yp)\n            + (ry * ry) * (xp * xp))) || 0;\n    var cxp = f * rx * yp / ry;\n    var cyp = f * -ry * xp / rx;\n    var cx = (x1 + x2) / 2.0\n        + mathCos(psi) * cxp\n        - mathSin(psi) * cyp;\n    var cy = (y1 + y2) / 2.0\n        + mathSin(psi) * cxp\n        + mathCos(psi) * cyp;\n    var theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]);\n    var u = [(xp - cxp) / rx, (yp - cyp) / ry];\n    var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry];\n    var dTheta = vAngle(u, v);\n    if (vRatio(u, v) <= -1) {\n        dTheta = PI;\n    }\n    if (vRatio(u, v) >= 1) {\n        dTheta = 0;\n    }\n    if (dTheta < 0) {\n        var n = Math.round(dTheta / PI * 1e6) / 1e6;\n        dTheta = PI * 2 + (n % 2) * PI;\n    }\n    path.addData(cmd, cx, cy, rx, ry, theta, dTheta, psi, fs);\n}\nvar commandReg = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig;\nvar numberReg = /-?([0-9]*\\.)?[0-9]+([eE]-?[0-9]+)?/g;\nfunction createPathProxyFromString(data) {\n    var path = new PathProxy();\n    if (!data) {\n        return path;\n    }\n    var cpx = 0;\n    var cpy = 0;\n    var subpathX = cpx;\n    var subpathY = cpy;\n    var prevCmd;\n    var CMD = PathProxy.CMD;\n    var cmdList = data.match(commandReg);\n    if (!cmdList) {\n        return path;\n    }\n    for (var l = 0; l < cmdList.length; l++) {\n        var cmdText = cmdList[l];\n        var cmdStr = cmdText.charAt(0);\n        var cmd = void 0;\n        var p = cmdText.match(numberReg) || [];\n        var pLen = p.length;\n        for (var i = 0; i < pLen; i++) {\n            p[i] = parseFloat(p[i]);\n        }\n        var off = 0;\n        while (off < pLen) {\n            var ctlPtx = void 0;\n            var ctlPty = void 0;\n            var rx = void 0;\n            var ry = void 0;\n            var psi = void 0;\n            var fa = void 0;\n            var fs = void 0;\n            var x1 = cpx;\n            var y1 = cpy;\n            var len = void 0;\n            var pathData = void 0;\n            switch (cmdStr) {\n                case 'l':\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'L':\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'm':\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.M;\n                    path.addData(cmd, cpx, cpy);\n                    subpathX = cpx;\n                    subpathY = cpy;\n                    cmdStr = 'l';\n                    break;\n                case 'M':\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.M;\n                    path.addData(cmd, cpx, cpy);\n                    subpathX = cpx;\n                    subpathY = cpy;\n                    cmdStr = 'L';\n                    break;\n                case 'h':\n                    cpx += p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'H':\n                    cpx = p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'v':\n                    cpy += p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'V':\n                    cpy = p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'C':\n                    cmd = CMD.C;\n                    path.addData(cmd, p[off++], p[off++], p[off++], p[off++], p[off++], p[off++]);\n                    cpx = p[off - 2];\n                    cpy = p[off - 1];\n                    break;\n                case 'c':\n                    cmd = CMD.C;\n                    path.addData(cmd, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy);\n                    cpx += p[off - 2];\n                    cpy += p[off - 1];\n                    break;\n                case 'S':\n                    ctlPtx = cpx;\n                    ctlPty = cpy;\n                    len = path.len();\n                    pathData = path.data;\n                    if (prevCmd === CMD.C) {\n                        ctlPtx += cpx - pathData[len - 4];\n                        ctlPty += cpy - pathData[len - 3];\n                    }\n                    cmd = CMD.C;\n                    x1 = p[off++];\n                    y1 = p[off++];\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\n                    break;\n                case 's':\n                    ctlPtx = cpx;\n                    ctlPty = cpy;\n                    len = path.len();\n                    pathData = path.data;\n                    if (prevCmd === CMD.C) {\n                        ctlPtx += cpx - pathData[len - 4];\n                        ctlPty += cpy - pathData[len - 3];\n                    }\n                    cmd = CMD.C;\n                    x1 = cpx + p[off++];\n                    y1 = cpy + p[off++];\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\n                    break;\n                case 'Q':\n                    x1 = p[off++];\n                    y1 = p[off++];\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.Q;\n                    path.addData(cmd, x1, y1, cpx, cpy);\n                    break;\n                case 'q':\n                    x1 = p[off++] + cpx;\n                    y1 = p[off++] + cpy;\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.Q;\n                    path.addData(cmd, x1, y1, cpx, cpy);\n                    break;\n                case 'T':\n                    ctlPtx = cpx;\n                    ctlPty = cpy;\n                    len = path.len();\n                    pathData = path.data;\n                    if (prevCmd === CMD.Q) {\n                        ctlPtx += cpx - pathData[len - 4];\n                        ctlPty += cpy - pathData[len - 3];\n                    }\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.Q;\n                    path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n                    break;\n                case 't':\n                    ctlPtx = cpx;\n                    ctlPty = cpy;\n                    len = path.len();\n                    pathData = path.data;\n                    if (prevCmd === CMD.Q) {\n                        ctlPtx += cpx - pathData[len - 4];\n                        ctlPty += cpy - pathData[len - 3];\n                    }\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.Q;\n                    path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n                    break;\n                case 'A':\n                    rx = p[off++];\n                    ry = p[off++];\n                    psi = p[off++];\n                    fa = p[off++];\n                    fs = p[off++];\n                    x1 = cpx, y1 = cpy;\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.A;\n                    processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\n                    break;\n                case 'a':\n                    rx = p[off++];\n                    ry = p[off++];\n                    psi = p[off++];\n                    fa = p[off++];\n                    fs = p[off++];\n                    x1 = cpx, y1 = cpy;\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.A;\n                    processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\n                    break;\n            }\n        }\n        if (cmdStr === 'z' || cmdStr === 'Z') {\n            cmd = CMD.Z;\n            path.addData(cmd);\n            cpx = subpathX;\n            cpy = subpathY;\n        }\n        prevCmd = cmd;\n    }\n    path.toStatic();\n    return path;\n}\nvar SVGPath = (function (_super) {\n    __extends(SVGPath, _super);\n    function SVGPath() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    SVGPath.prototype.applyTransform = function (m) { };\n    return SVGPath;\n}(Path));\nfunction isPathProxy(path) {\n    return path.setData != null;\n}\nfunction createPathOptions(str, opts) {\n    var pathProxy = createPathProxyFromString(str);\n    var innerOpts = extend({}, opts);\n    innerOpts.buildPath = function (path) {\n        if (isPathProxy(path)) {\n            path.setData(pathProxy.data);\n            var ctx = path.getContext();\n            if (ctx) {\n                path.rebuildPath(ctx, 1);\n            }\n        }\n        else {\n            var ctx = path;\n            pathProxy.rebuildPath(ctx, 1);\n        }\n    };\n    innerOpts.applyTransform = function (m) {\n        transformPath(pathProxy, m);\n        this.dirtyShape();\n    };\n    return innerOpts;\n}\nexport function createFromString(str, opts) {\n    return new SVGPath(createPathOptions(str, opts));\n}\nexport function extendFromString(str, defaultOpts) {\n    var innerOpts = createPathOptions(str, defaultOpts);\n    var Sub = (function (_super) {\n        __extends(Sub, _super);\n        function Sub(opts) {\n            var _this = _super.call(this, opts) || this;\n            _this.applyTransform = innerOpts.applyTransform;\n            _this.buildPath = innerOpts.buildPath;\n            return _this;\n        }\n        return Sub;\n    }(SVGPath));\n    return Sub;\n}\nexport function mergePath(pathEls, opts) {\n    var pathList = [];\n    var len = pathEls.length;\n    for (var i = 0; i < len; i++) {\n        var pathEl = pathEls[i];\n        if (!pathEl.path) {\n            pathEl.createPathProxy();\n        }\n        if (pathEl.shapeChanged()) {\n            pathEl.buildPath(pathEl.path, pathEl.shape, true);\n        }\n        pathList.push(pathEl.path);\n    }\n    var pathBundle = new Path(opts);\n    pathBundle.createPathProxy();\n    pathBundle.buildPath = function (path) {\n        if (isPathProxy(path)) {\n            path.appendPath(pathList);\n            var ctx = path.getContext();\n            if (ctx) {\n                path.rebuildPath(ctx, 1);\n            }\n        }\n    };\n    return pathBundle;\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar CircleShape = (function () {\n    function CircleShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.r = 0;\n    }\n    return CircleShape;\n}());\nvar Circle = (function (_super) {\n    __extends(Circle, _super);\n    function Circle(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Circle.prototype.getDefaultShape = function () {\n        return new CircleShape();\n    };\n    Circle.prototype.buildPath = function (ctx, shape, inBundle) {\n        if (inBundle) {\n            ctx.moveTo(shape.cx + shape.r, shape.cy);\n        }\n        ctx.arc(shape.cx, shape.cy, shape.r, 0, Math.PI * 2);\n    };\n    return Circle;\n}(Path));\n;\nCircle.prototype.type = 'circle';\nexport default Circle;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar EllipseShape = (function () {\n    function EllipseShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.rx = 0;\n        this.ry = 0;\n    }\n    return EllipseShape;\n}());\nvar Ellipse = (function (_super) {\n    __extends(Ellipse, _super);\n    function Ellipse(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Ellipse.prototype.getDefaultShape = function () {\n        return new EllipseShape();\n    };\n    Ellipse.prototype.buildPath = function (ctx, shape) {\n        var k = 0.5522848;\n        var x = shape.cx;\n        var y = shape.cy;\n        var a = shape.rx;\n        var b = shape.ry;\n        var ox = a * k;\n        var oy = b * k;\n        ctx.moveTo(x - a, y);\n        ctx.bezierCurveTo(x - a, y - oy, x - ox, y - b, x, y - b);\n        ctx.bezierCurveTo(x + ox, y - b, x + a, y - oy, x + a, y);\n        ctx.bezierCurveTo(x + a, y + oy, x + ox, y + b, x, y + b);\n        ctx.bezierCurveTo(x - ox, y + b, x - a, y + oy, x - a, y);\n        ctx.closePath();\n    };\n    return Ellipse;\n}(Path));\nEllipse.prototype.type = 'ellipse';\nexport default Ellipse;\n","import { normalizeArcAngles } from '../../core/PathProxy';\nvar PI = Math.PI;\nvar PI2 = PI * 2;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar mathACos = Math.acos;\nvar mathATan2 = Math.atan2;\nvar mathAbs = Math.abs;\nvar mathSqrt = Math.sqrt;\nvar mathMax = Math.max;\nvar mathMin = Math.min;\nvar e = 1e-4;\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n    var x10 = x1 - x0;\n    var y10 = y1 - y0;\n    var x32 = x3 - x2;\n    var y32 = y3 - y2;\n    var t = y32 * x10 - x32 * y10;\n    if (t * t < e) {\n        return;\n    }\n    t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n    return [x0 + t * x10, y0 + t * y10];\n}\nfunction computeCornerTangents(x0, y0, x1, y1, radius, cr, clockwise) {\n    var x01 = x0 - x1;\n    var y01 = y0 - y1;\n    var lo = (clockwise ? cr : -cr) / mathSqrt(x01 * x01 + y01 * y01);\n    var ox = lo * y01;\n    var oy = -lo * x01;\n    var x11 = x0 + ox;\n    var y11 = y0 + oy;\n    var x10 = x1 + ox;\n    var y10 = y1 + oy;\n    var x00 = (x11 + x10) / 2;\n    var y00 = (y11 + y10) / 2;\n    var dx = x10 - x11;\n    var dy = y10 - y11;\n    var d2 = dx * dx + dy * dy;\n    var r = radius - cr;\n    var s = x11 * y10 - x10 * y11;\n    var d = (dy < 0 ? -1 : 1) * mathSqrt(mathMax(0, r * r * d2 - s * s));\n    var cx0 = (s * dy - dx * d) / d2;\n    var cy0 = (-s * dx - dy * d) / d2;\n    var cx1 = (s * dy + dx * d) / d2;\n    var cy1 = (-s * dx + dy * d) / d2;\n    var dx0 = cx0 - x00;\n    var dy0 = cy0 - y00;\n    var dx1 = cx1 - x00;\n    var dy1 = cy1 - y00;\n    if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) {\n        cx0 = cx1;\n        cy0 = cy1;\n    }\n    return {\n        cx: cx0,\n        cy: cy0,\n        x01: -ox,\n        y01: -oy,\n        x11: cx0 * (radius / r - 1),\n        y11: cy0 * (radius / r - 1)\n    };\n}\nexport function buildPath(ctx, shape) {\n    var radius = mathMax(shape.r, 0);\n    var innerRadius = mathMax(shape.r0 || 0, 0);\n    var hasRadius = radius > 0;\n    var hasInnerRadius = innerRadius > 0;\n    if (!hasRadius && !hasInnerRadius) {\n        return;\n    }\n    if (!hasRadius) {\n        radius = innerRadius;\n        innerRadius = 0;\n    }\n    if (innerRadius > radius) {\n        var tmp = radius;\n        radius = innerRadius;\n        innerRadius = tmp;\n    }\n    var clockwise = !!shape.clockwise;\n    var startAngle = shape.startAngle;\n    var endAngle = shape.endAngle;\n    var tmpAngles = [startAngle, endAngle];\n    normalizeArcAngles(tmpAngles, !clockwise);\n    var arc = mathAbs(tmpAngles[0] - tmpAngles[1]);\n    var x = shape.cx;\n    var y = shape.cy;\n    var cornerRadius = shape.cornerRadius || 0;\n    var innerCornerRadius = shape.innerCornerRadius || 0;\n    if (!(radius > e)) {\n        ctx.moveTo(x, y);\n    }\n    else if (arc > PI2 - e) {\n        ctx.moveTo(x + radius * mathCos(startAngle), y + radius * mathSin(startAngle));\n        ctx.arc(x, y, radius, startAngle, endAngle, !clockwise);\n        if (innerRadius > e) {\n            ctx.moveTo(x + innerRadius * mathCos(endAngle), y + innerRadius * mathSin(endAngle));\n            ctx.arc(x, y, innerRadius, endAngle, startAngle, clockwise);\n        }\n    }\n    else {\n        var halfRd = mathAbs(radius - innerRadius) / 2;\n        var cr = mathMin(halfRd, cornerRadius);\n        var icr = mathMin(halfRd, innerCornerRadius);\n        var cr0 = icr;\n        var cr1 = cr;\n        var xrs = radius * mathCos(startAngle);\n        var yrs = radius * mathSin(startAngle);\n        var xire = innerRadius * mathCos(endAngle);\n        var yire = innerRadius * mathSin(endAngle);\n        var xre = void 0;\n        var yre = void 0;\n        var xirs = void 0;\n        var yirs = void 0;\n        if (cr > e || icr > e) {\n            xre = radius * mathCos(endAngle);\n            yre = radius * mathSin(endAngle);\n            xirs = innerRadius * mathCos(startAngle);\n            yirs = innerRadius * mathSin(startAngle);\n            if (arc < PI) {\n                var it_1 = intersect(xrs, yrs, xirs, yirs, xre, yre, xire, yire);\n                if (it_1) {\n                    var x0 = xrs - it_1[0];\n                    var y0 = yrs - it_1[1];\n                    var x1 = xre - it_1[0];\n                    var y1 = yre - it_1[1];\n                    var a = 1 / mathSin(mathACos((x0 * x1 + y0 * y1) / (mathSqrt(x0 * x0 + y0 * y0) * mathSqrt(x1 * x1 + y1 * y1))) / 2);\n                    var b = mathSqrt(it_1[0] * it_1[0] + it_1[1] * it_1[1]);\n                    cr0 = mathMin(icr, (innerRadius - b) / (a - 1));\n                    cr1 = mathMin(cr, (radius - b) / (a + 1));\n                }\n            }\n        }\n        if (!(arc > e)) {\n            ctx.moveTo(x + xrs, y + yrs);\n        }\n        else if (cr1 > e) {\n            var ct0 = computeCornerTangents(xirs, yirs, xrs, yrs, radius, cr1, clockwise);\n            var ct1 = computeCornerTangents(xre, yre, xire, yire, radius, cr1, clockwise);\n            ctx.moveTo(x + ct0.cx + ct0.x01, y + ct0.cy + ct0.y01);\n            if (cr1 < cr) {\n                ctx.arc(x + ct0.cx, y + ct0.cy, cr1, mathATan2(ct0.y01, ct0.x01), mathATan2(ct1.y01, ct1.x01), !clockwise);\n            }\n            else {\n                ctx.arc(x + ct0.cx, y + ct0.cy, cr1, mathATan2(ct0.y01, ct0.x01), mathATan2(ct0.y11, ct0.x11), !clockwise);\n                ctx.arc(x, y, radius, mathATan2(ct0.cy + ct0.y11, ct0.cx + ct0.x11), mathATan2(ct1.cy + ct1.y11, ct1.cx + ct1.x11), !clockwise);\n                ctx.arc(x + ct1.cx, y + ct1.cy, cr1, mathATan2(ct1.y11, ct1.x11), mathATan2(ct1.y01, ct1.x01), !clockwise);\n            }\n        }\n        else {\n            ctx.moveTo(x + xrs, y + yrs);\n            ctx.arc(x, y, radius, startAngle, endAngle, !clockwise);\n        }\n        if (!(innerRadius > e) || !(arc > e)) {\n            ctx.lineTo(x + xire, y + yire);\n        }\n        else if (cr0 > e) {\n            var ct0 = computeCornerTangents(xire, yire, xre, yre, innerRadius, -cr0, clockwise);\n            var ct1 = computeCornerTangents(xrs, yrs, xirs, yirs, innerRadius, -cr0, clockwise);\n            ctx.lineTo(x + ct0.cx + ct0.x01, y + ct0.cy + ct0.y01);\n            if (cr0 < icr) {\n                ctx.arc(x + ct0.cx, y + ct0.cy, cr0, mathATan2(ct0.y01, ct0.x01), mathATan2(ct1.y01, ct1.x01), !clockwise);\n            }\n            else {\n                ctx.arc(x + ct0.cx, y + ct0.cy, cr0, mathATan2(ct0.y01, ct0.x01), mathATan2(ct0.y11, ct0.x11), !clockwise);\n                ctx.arc(x, y, innerRadius, mathATan2(ct0.cy + ct0.y11, ct0.cx + ct0.x11), mathATan2(ct1.cy + ct1.y11, ct1.cx + ct1.x11), clockwise);\n                ctx.arc(x + ct1.cx, y + ct1.cy, cr0, mathATan2(ct1.y11, ct1.x11), mathATan2(ct1.y01, ct1.x01), !clockwise);\n            }\n        }\n        else {\n            ctx.lineTo(x + xire, y + yire);\n            ctx.arc(x, y, innerRadius, endAngle, startAngle, clockwise);\n        }\n    }\n    ctx.closePath();\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as roundSectorHelper from '../helper/roundSector';\nvar SectorShape = (function () {\n    function SectorShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.r0 = 0;\n        this.r = 0;\n        this.startAngle = 0;\n        this.endAngle = Math.PI * 2;\n        this.clockwise = true;\n        this.cornerRadius = 0;\n        this.innerCornerRadius = 0;\n    }\n    return SectorShape;\n}());\nvar Sector = (function (_super) {\n    __extends(Sector, _super);\n    function Sector(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Sector.prototype.getDefaultShape = function () {\n        return new SectorShape();\n    };\n    Sector.prototype.buildPath = function (ctx, shape) {\n        roundSectorHelper.buildPath(ctx, shape);\n    };\n    Sector.prototype.isZeroArea = function () {\n        return this.shape.startAngle === this.shape.endAngle\n            || this.shape.r === this.shape.r0;\n    };\n    return Sector;\n}(Path));\nSector.prototype.type = 'sector';\nexport default Sector;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar RingShape = (function () {\n    function RingShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.r = 0;\n        this.r0 = 0;\n    }\n    return RingShape;\n}());\nvar Ring = (function (_super) {\n    __extends(Ring, _super);\n    function Ring(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Ring.prototype.getDefaultShape = function () {\n        return new RingShape();\n    };\n    Ring.prototype.buildPath = function (ctx, shape) {\n        var x = shape.cx;\n        var y = shape.cy;\n        var PI2 = Math.PI * 2;\n        ctx.moveTo(x + shape.r, y);\n        ctx.arc(x, y, shape.r, 0, PI2, false);\n        ctx.moveTo(x + shape.r0, y);\n        ctx.arc(x, y, shape.r0, 0, PI2, true);\n    };\n    return Ring;\n}(Path));\nRing.prototype.type = 'ring';\nexport default Ring;\n","import { distance as v2Distance } from '../../core/vector';\nfunction interpolate(p0, p1, p2, p3, t, t2, t3) {\n    var v0 = (p2 - p0) * 0.5;\n    var v1 = (p3 - p1) * 0.5;\n    return (2 * (p1 - p2) + v0 + v1) * t3\n        + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\n        + v0 * t + p1;\n}\nexport default function smoothSpline(points, isLoop) {\n    var len = points.length;\n    var ret = [];\n    var distance = 0;\n    for (var i = 1; i < len; i++) {\n        distance += v2Distance(points[i - 1], points[i]);\n    }\n    var segs = distance / 2;\n    segs = segs < len ? len : segs;\n    for (var i = 0; i < segs; i++) {\n        var pos = i / (segs - 1) * (isLoop ? len : len - 1);\n        var idx = Math.floor(pos);\n        var w = pos - idx;\n        var p0 = void 0;\n        var p1 = points[idx % len];\n        var p2 = void 0;\n        var p3 = void 0;\n        if (!isLoop) {\n            p0 = points[idx === 0 ? idx : idx - 1];\n            p2 = points[idx > len - 2 ? len - 1 : idx + 1];\n            p3 = points[idx > len - 3 ? len - 1 : idx + 2];\n        }\n        else {\n            p0 = points[(idx - 1 + len) % len];\n            p2 = points[(idx + 1) % len];\n            p3 = points[(idx + 2) % len];\n        }\n        var w2 = w * w;\n        var w3 = w * w2;\n        ret.push([\n            interpolate(p0[0], p1[0], p2[0], p3[0], w, w2, w3),\n            interpolate(p0[1], p1[1], p2[1], p3[1], w, w2, w3)\n        ]);\n    }\n    return ret;\n}\n","import { min as v2Min, max as v2Max, scale as v2Scale, distance as v2Distance, add as v2Add, clone as v2Clone, sub as v2Sub } from '../../core/vector';\nexport default function smoothBezier(points, smooth, isLoop, constraint) {\n    var cps = [];\n    var v = [];\n    var v1 = [];\n    var v2 = [];\n    var prevPoint;\n    var nextPoint;\n    var min;\n    var max;\n    if (constraint) {\n        min = [Infinity, Infinity];\n        max = [-Infinity, -Infinity];\n        for (var i = 0, len = points.length; i < len; i++) {\n            v2Min(min, min, points[i]);\n            v2Max(max, max, points[i]);\n        }\n        v2Min(min, min, constraint[0]);\n        v2Max(max, max, constraint[1]);\n    }\n    for (var i = 0, len = points.length; i < len; i++) {\n        var point = points[i];\n        if (isLoop) {\n            prevPoint = points[i ? i - 1 : len - 1];\n            nextPoint = points[(i + 1) % len];\n        }\n        else {\n            if (i === 0 || i === len - 1) {\n                cps.push(v2Clone(points[i]));\n                continue;\n            }\n            else {\n                prevPoint = points[i - 1];\n                nextPoint = points[i + 1];\n            }\n        }\n        v2Sub(v, nextPoint, prevPoint);\n        v2Scale(v, v, smooth);\n        var d0 = v2Distance(point, prevPoint);\n        var d1 = v2Distance(point, nextPoint);\n        var sum = d0 + d1;\n        if (sum !== 0) {\n            d0 /= sum;\n            d1 /= sum;\n        }\n        v2Scale(v1, v, -d0);\n        v2Scale(v2, v, d1);\n        var cp0 = v2Add([], point, v1);\n        var cp1 = v2Add([], point, v2);\n        if (constraint) {\n            v2Max(cp0, cp0, min);\n            v2Min(cp0, cp0, max);\n            v2Max(cp1, cp1, min);\n            v2Min(cp1, cp1, max);\n        }\n        cps.push(cp0);\n        cps.push(cp1);\n    }\n    if (isLoop) {\n        cps.push(cps.shift());\n    }\n    return cps;\n}\n","import smoothSpline from './smoothSpline';\nimport smoothBezier from './smoothBezier';\nexport function buildPath(ctx, shape, closePath) {\n    var smooth = shape.smooth;\n    var points = shape.points;\n    if (points && points.length >= 2) {\n        if (smooth && smooth !== 'spline') {\n            var controlPoints = smoothBezier(points, smooth, closePath, shape.smoothConstraint);\n            ctx.moveTo(points[0][0], points[0][1]);\n            var len = points.length;\n            for (var i = 0; i < (closePath ? len : len - 1); i++) {\n                var cp1 = controlPoints[i * 2];\n                var cp2 = controlPoints[i * 2 + 1];\n                var p = points[(i + 1) % len];\n                ctx.bezierCurveTo(cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]);\n            }\n        }\n        else {\n            if (smooth === 'spline') {\n                points = smoothSpline(points, closePath);\n            }\n            ctx.moveTo(points[0][0], points[0][1]);\n            for (var i = 1, l = points.length; i < l; i++) {\n                ctx.lineTo(points[i][0], points[i][1]);\n            }\n        }\n        closePath && ctx.closePath();\n    }\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as polyHelper from '../helper/poly';\nvar PolygonShape = (function () {\n    function PolygonShape() {\n        this.points = null;\n        this.smooth = 0;\n        this.smoothConstraint = null;\n    }\n    return PolygonShape;\n}());\nvar Polygon = (function (_super) {\n    __extends(Polygon, _super);\n    function Polygon(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Polygon.prototype.getDefaultShape = function () {\n        return new PolygonShape();\n    };\n    Polygon.prototype.buildPath = function (ctx, shape) {\n        polyHelper.buildPath(ctx, shape, true);\n    };\n    return Polygon;\n}(Path));\n;\nPolygon.prototype.type = 'polygon';\nexport default Polygon;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as polyHelper from '../helper/poly';\nvar PolylineShape = (function () {\n    function PolylineShape() {\n        this.points = null;\n        this.percent = 1;\n        this.smooth = 0;\n        this.smoothConstraint = null;\n    }\n    return PolylineShape;\n}());\nvar Polyline = (function (_super) {\n    __extends(Polyline, _super);\n    function Polyline(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Polyline.prototype.getDefaultStyle = function () {\n        return {\n            stroke: '#000',\n            fill: null\n        };\n    };\n    Polyline.prototype.getDefaultShape = function () {\n        return new PolylineShape();\n    };\n    Polyline.prototype.buildPath = function (ctx, shape) {\n        polyHelper.buildPath(ctx, shape, false);\n    };\n    return Polyline;\n}(Path));\nPolyline.prototype.type = 'polyline';\nexport default Polyline;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport { subPixelOptimizeLine } from '../helper/subPixelOptimize';\nvar subPixelOptimizeOutputShape = {};\nvar LineShape = (function () {\n    function LineShape() {\n        this.x1 = 0;\n        this.y1 = 0;\n        this.x2 = 0;\n        this.y2 = 0;\n        this.percent = 1;\n    }\n    return LineShape;\n}());\nvar Line = (function (_super) {\n    __extends(Line, _super);\n    function Line(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Line.prototype.getDefaultStyle = function () {\n        return {\n            stroke: '#000',\n            fill: null\n        };\n    };\n    Line.prototype.getDefaultShape = function () {\n        return new LineShape();\n    };\n    Line.prototype.buildPath = function (ctx, shape) {\n        var x1;\n        var y1;\n        var x2;\n        var y2;\n        if (this.subPixelOptimize) {\n            var optimizedShape = subPixelOptimizeLine(subPixelOptimizeOutputShape, shape, this.style);\n            x1 = optimizedShape.x1;\n            y1 = optimizedShape.y1;\n            x2 = optimizedShape.x2;\n            y2 = optimizedShape.y2;\n        }\n        else {\n            x1 = shape.x1;\n            y1 = shape.y1;\n            x2 = shape.x2;\n            y2 = shape.y2;\n        }\n        var percent = shape.percent;\n        if (percent === 0) {\n            return;\n        }\n        ctx.moveTo(x1, y1);\n        if (percent < 1) {\n            x2 = x1 * (1 - percent) + x2 * percent;\n            y2 = y1 * (1 - percent) + y2 * percent;\n        }\n        ctx.lineTo(x2, y2);\n    };\n    Line.prototype.pointAt = function (p) {\n        var shape = this.shape;\n        return [\n            shape.x1 * (1 - p) + shape.x2 * p,\n            shape.y1 * (1 - p) + shape.y2 * p\n        ];\n    };\n    return Line;\n}(Path));\nLine.prototype.type = 'line';\nexport default Line;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as vec2 from '../../core/vector';\nimport { quadraticSubdivide, cubicSubdivide, quadraticAt, cubicAt, quadraticDerivativeAt, cubicDerivativeAt } from '../../core/curve';\nvar out = [];\nvar BezierCurveShape = (function () {\n    function BezierCurveShape() {\n        this.x1 = 0;\n        this.y1 = 0;\n        this.x2 = 0;\n        this.y2 = 0;\n        this.cpx1 = 0;\n        this.cpy1 = 0;\n        this.percent = 1;\n    }\n    return BezierCurveShape;\n}());\nfunction someVectorAt(shape, t, isTangent) {\n    var cpx2 = shape.cpx2;\n    var cpy2 = shape.cpy2;\n    if (cpx2 === null || cpy2 === null) {\n        return [\n            (isTangent ? cubicDerivativeAt : cubicAt)(shape.x1, shape.cpx1, shape.cpx2, shape.x2, t),\n            (isTangent ? cubicDerivativeAt : cubicAt)(shape.y1, shape.cpy1, shape.cpy2, shape.y2, t)\n        ];\n    }\n    else {\n        return [\n            (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.x1, shape.cpx1, shape.x2, t),\n            (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.y1, shape.cpy1, shape.y2, t)\n        ];\n    }\n}\nvar BezierCurve = (function (_super) {\n    __extends(BezierCurve, _super);\n    function BezierCurve(opts) {\n        return _super.call(this, opts) || this;\n    }\n    BezierCurve.prototype.getDefaultStyle = function () {\n        return {\n            stroke: '#000',\n            fill: null\n        };\n    };\n    BezierCurve.prototype.getDefaultShape = function () {\n        return new BezierCurveShape();\n    };\n    BezierCurve.prototype.buildPath = function (ctx, shape) {\n        var x1 = shape.x1;\n        var y1 = shape.y1;\n        var x2 = shape.x2;\n        var y2 = shape.y2;\n        var cpx1 = shape.cpx1;\n        var cpy1 = shape.cpy1;\n        var cpx2 = shape.cpx2;\n        var cpy2 = shape.cpy2;\n        var percent = shape.percent;\n        if (percent === 0) {\n            return;\n        }\n        ctx.moveTo(x1, y1);\n        if (cpx2 == null || cpy2 == null) {\n            if (percent < 1) {\n                quadraticSubdivide(x1, cpx1, x2, percent, out);\n                cpx1 = out[1];\n                x2 = out[2];\n                quadraticSubdivide(y1, cpy1, y2, percent, out);\n                cpy1 = out[1];\n                y2 = out[2];\n            }\n            ctx.quadraticCurveTo(cpx1, cpy1, x2, y2);\n        }\n        else {\n            if (percent < 1) {\n                cubicSubdivide(x1, cpx1, cpx2, x2, percent, out);\n                cpx1 = out[1];\n                cpx2 = out[2];\n                x2 = out[3];\n                cubicSubdivide(y1, cpy1, cpy2, y2, percent, out);\n                cpy1 = out[1];\n                cpy2 = out[2];\n                y2 = out[3];\n            }\n            ctx.bezierCurveTo(cpx1, cpy1, cpx2, cpy2, x2, y2);\n        }\n    };\n    BezierCurve.prototype.pointAt = function (t) {\n        return someVectorAt(this.shape, t, false);\n    };\n    BezierCurve.prototype.tangentAt = function (t) {\n        var p = someVectorAt(this.shape, t, true);\n        return vec2.normalize(p, p);\n    };\n    return BezierCurve;\n}(Path));\n;\nBezierCurve.prototype.type = 'bezier-curve';\nexport default BezierCurve;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar ArcShape = (function () {\n    function ArcShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.r = 0;\n        this.startAngle = 0;\n        this.endAngle = Math.PI * 2;\n        this.clockwise = true;\n    }\n    return ArcShape;\n}());\nvar Arc = (function (_super) {\n    __extends(Arc, _super);\n    function Arc(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Arc.prototype.getDefaultStyle = function () {\n        return {\n            stroke: '#000',\n            fill: null\n        };\n    };\n    Arc.prototype.getDefaultShape = function () {\n        return new ArcShape();\n    };\n    Arc.prototype.buildPath = function (ctx, shape) {\n        var x = shape.cx;\n        var y = shape.cy;\n        var r = Math.max(shape.r, 0);\n        var startAngle = shape.startAngle;\n        var endAngle = shape.endAngle;\n        var clockwise = shape.clockwise;\n        var unitX = Math.cos(startAngle);\n        var unitY = Math.sin(startAngle);\n        ctx.moveTo(unitX * r + x, unitY * r + y);\n        ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\n    };\n    return Arc;\n}(Path));\nArc.prototype.type = 'arc';\nexport default Arc;\n","import { __extends } from \"tslib\";\nimport Path from './Path';\nvar CompoundPath = (function (_super) {\n    __extends(CompoundPath, _super);\n    function CompoundPath() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.type = 'compound';\n        return _this;\n    }\n    CompoundPath.prototype._updatePathDirty = function () {\n        var paths = this.shape.paths;\n        var dirtyPath = this.shapeChanged();\n        for (var i = 0; i < paths.length; i++) {\n            dirtyPath = dirtyPath || paths[i].shapeChanged();\n        }\n        if (dirtyPath) {\n            this.dirtyShape();\n        }\n    };\n    CompoundPath.prototype.beforeBrush = function () {\n        this._updatePathDirty();\n        var paths = this.shape.paths || [];\n        var scale = this.getGlobalScale();\n        for (var i = 0; i < paths.length; i++) {\n            if (!paths[i].path) {\n                paths[i].createPathProxy();\n            }\n            paths[i].path.setScale(scale[0], scale[1], paths[i].segmentIgnoreThreshold);\n        }\n    };\n    CompoundPath.prototype.buildPath = function (ctx, shape) {\n        var paths = shape.paths || [];\n        for (var i = 0; i < paths.length; i++) {\n            paths[i].buildPath(ctx, paths[i].shape, true);\n        }\n    };\n    CompoundPath.prototype.afterBrush = function () {\n        var paths = this.shape.paths || [];\n        for (var i = 0; i < paths.length; i++) {\n            paths[i].pathUpdated();\n        }\n    };\n    CompoundPath.prototype.getBoundingRect = function () {\n        this._updatePathDirty.call(this);\n        return Path.prototype.getBoundingRect.call(this);\n    };\n    return CompoundPath;\n}(Path));\nexport default CompoundPath;\n","var Gradient = (function () {\n    function Gradient(colorStops) {\n        this.colorStops = colorStops || [];\n    }\n    Gradient.prototype.addColorStop = function (offset, color) {\n        this.colorStops.push({\n            offset: offset,\n            color: color\n        });\n    };\n    return Gradient;\n}());\nexport default Gradient;\n","import { __extends } from \"tslib\";\nimport Gradient from './Gradient';\nvar LinearGradient = (function (_super) {\n    __extends(LinearGradient, _super);\n    function LinearGradient(x, y, x2, y2, colorStops, globalCoord) {\n        var _this = _super.call(this, colorStops) || this;\n        _this.x = x == null ? 0 : x;\n        _this.y = y == null ? 0 : y;\n        _this.x2 = x2 == null ? 1 : x2;\n        _this.y2 = y2 == null ? 0 : y2;\n        _this.type = 'linear';\n        _this.global = globalCoord || false;\n        return _this;\n    }\n    return LinearGradient;\n}(Gradient));\nexport default LinearGradient;\n;\n","import { __extends } from \"tslib\";\nimport Gradient from './Gradient';\nvar RadialGradient = (function (_super) {\n    __extends(RadialGradient, _super);\n    function RadialGradient(x, y, r, colorStops, globalCoord) {\n        var _this = _super.call(this, colorStops) || this;\n        _this.x = x == null ? 0.5 : x;\n        _this.y = y == null ? 0.5 : y;\n        _this.r = r == null ? 0.5 : r;\n        _this.type = 'radial';\n        _this.global = globalCoord || false;\n        return _this;\n    }\n    return RadialGradient;\n}(Gradient));\nexport default RadialGradient;\n","import Point from './Point';\nvar extent = [0, 0];\nvar extent2 = [0, 0];\nvar minTv = new Point();\nvar maxTv = new Point();\nvar OrientedBoundingRect = (function () {\n    function OrientedBoundingRect(rect, transform) {\n        this._corners = [];\n        this._axes = [];\n        this._origin = [0, 0];\n        for (var i = 0; i < 4; i++) {\n            this._corners[i] = new Point();\n        }\n        for (var i = 0; i < 2; i++) {\n            this._axes[i] = new Point();\n        }\n        if (rect) {\n            this.fromBoundingRect(rect, transform);\n        }\n    }\n    OrientedBoundingRect.prototype.fromBoundingRect = function (rect, transform) {\n        var corners = this._corners;\n        var axes = this._axes;\n        var x = rect.x;\n        var y = rect.y;\n        var x2 = x + rect.width;\n        var y2 = y + rect.height;\n        corners[0].set(x, y);\n        corners[1].set(x2, y);\n        corners[2].set(x2, y2);\n        corners[3].set(x, y2);\n        if (transform) {\n            for (var i = 0; i < 4; i++) {\n                corners[i].transform(transform);\n            }\n        }\n        Point.sub(axes[0], corners[1], corners[0]);\n        Point.sub(axes[1], corners[3], corners[0]);\n        axes[0].normalize();\n        axes[1].normalize();\n        for (var i = 0; i < 2; i++) {\n            this._origin[i] = axes[i].dot(corners[0]);\n        }\n    };\n    OrientedBoundingRect.prototype.intersect = function (other, mtv) {\n        var overlapped = true;\n        var noMtv = !mtv;\n        minTv.set(Infinity, Infinity);\n        maxTv.set(0, 0);\n        if (!this._intersectCheckOneSide(this, other, minTv, maxTv, noMtv, 1)) {\n            overlapped = false;\n            if (noMtv) {\n                return overlapped;\n            }\n        }\n        if (!this._intersectCheckOneSide(other, this, minTv, maxTv, noMtv, -1)) {\n            overlapped = false;\n            if (noMtv) {\n                return overlapped;\n            }\n        }\n        if (!noMtv) {\n            Point.copy(mtv, overlapped ? minTv : maxTv);\n        }\n        return overlapped;\n    };\n    OrientedBoundingRect.prototype._intersectCheckOneSide = function (self, other, minTv, maxTv, noMtv, inverse) {\n        var overlapped = true;\n        for (var i = 0; i < 2; i++) {\n            var axis = this._axes[i];\n            this._getProjMinMaxOnAxis(i, self._corners, extent);\n            this._getProjMinMaxOnAxis(i, other._corners, extent2);\n            if (extent[1] < extent2[0] || extent[0] > extent2[1]) {\n                overlapped = false;\n                if (noMtv) {\n                    return overlapped;\n                }\n                var dist0 = Math.abs(extent2[0] - extent[1]);\n                var dist1 = Math.abs(extent[0] - extent2[1]);\n                if (Math.min(dist0, dist1) > maxTv.len()) {\n                    if (dist0 < dist1) {\n                        Point.scale(maxTv, axis, -dist0 * inverse);\n                    }\n                    else {\n                        Point.scale(maxTv, axis, dist1 * inverse);\n                    }\n                }\n            }\n            else if (minTv) {\n                var dist0 = Math.abs(extent2[0] - extent[1]);\n                var dist1 = Math.abs(extent[0] - extent2[1]);\n                if (Math.min(dist0, dist1) < minTv.len()) {\n                    if (dist0 < dist1) {\n                        Point.scale(minTv, axis, dist0 * inverse);\n                    }\n                    else {\n                        Point.scale(minTv, axis, -dist1 * inverse);\n                    }\n                }\n            }\n        }\n        return overlapped;\n    };\n    OrientedBoundingRect.prototype._getProjMinMaxOnAxis = function (dim, corners, out) {\n        var axis = this._axes[dim];\n        var origin = this._origin;\n        var proj = corners[0].dot(axis) + origin[dim];\n        var min = proj;\n        var max = proj;\n        for (var i = 1; i < corners.length; i++) {\n            var proj_1 = corners[i].dot(axis) + origin[dim];\n            min = Math.min(proj_1, min);\n            max = Math.max(proj_1, max);\n        }\n        out[0] = min;\n        out[1] = max;\n    };\n    return OrientedBoundingRect;\n}());\nexport default OrientedBoundingRect;\n","import { __extends } from \"tslib\";\nimport Displayble from './Displayable';\nimport BoundingRect from '../core/BoundingRect';\nvar m = [];\nvar IncrementalDisplayable = (function (_super) {\n    __extends(IncrementalDisplayable, _super);\n    function IncrementalDisplayable() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.notClear = true;\n        _this.incremental = true;\n        _this._displayables = [];\n        _this._temporaryDisplayables = [];\n        _this._cursor = 0;\n        return _this;\n    }\n    IncrementalDisplayable.prototype.traverse = function (cb, context) {\n        cb.call(context, this);\n    };\n    IncrementalDisplayable.prototype.useStyle = function () {\n        this.style = {};\n    };\n    IncrementalDisplayable.prototype.getCursor = function () {\n        return this._cursor;\n    };\n    IncrementalDisplayable.prototype.innerAfterBrush = function () {\n        this._cursor = this._displayables.length;\n    };\n    IncrementalDisplayable.prototype.clearDisplaybles = function () {\n        this._displayables = [];\n        this._temporaryDisplayables = [];\n        this._cursor = 0;\n        this.markRedraw();\n        this.notClear = false;\n    };\n    IncrementalDisplayable.prototype.clearTemporalDisplayables = function () {\n        this._temporaryDisplayables = [];\n    };\n    IncrementalDisplayable.prototype.addDisplayable = function (displayable, notPersistent) {\n        if (notPersistent) {\n            this._temporaryDisplayables.push(displayable);\n        }\n        else {\n            this._displayables.push(displayable);\n        }\n        this.markRedraw();\n    };\n    IncrementalDisplayable.prototype.addDisplayables = function (displayables, notPersistent) {\n        notPersistent = notPersistent || false;\n        for (var i = 0; i < displayables.length; i++) {\n            this.addDisplayable(displayables[i], notPersistent);\n        }\n    };\n    IncrementalDisplayable.prototype.getDisplayables = function () {\n        return this._displayables;\n    };\n    IncrementalDisplayable.prototype.getTemporalDisplayables = function () {\n        return this._temporaryDisplayables;\n    };\n    IncrementalDisplayable.prototype.eachPendingDisplayable = function (cb) {\n        for (var i = this._cursor; i < this._displayables.length; i++) {\n            cb && cb(this._displayables[i]);\n        }\n        for (var i = 0; i < this._temporaryDisplayables.length; i++) {\n            cb && cb(this._temporaryDisplayables[i]);\n        }\n    };\n    IncrementalDisplayable.prototype.update = function () {\n        this.updateTransform();\n        for (var i = this._cursor; i < this._displayables.length; i++) {\n            var displayable = this._displayables[i];\n            displayable.parent = this;\n            displayable.update();\n            displayable.parent = null;\n        }\n        for (var i = 0; i < this._temporaryDisplayables.length; i++) {\n            var displayable = this._temporaryDisplayables[i];\n            displayable.parent = this;\n            displayable.update();\n            displayable.parent = null;\n        }\n    };\n    IncrementalDisplayable.prototype.getBoundingRect = function () {\n        if (!this._rect) {\n            var rect = new BoundingRect(Infinity, Infinity, -Infinity, -Infinity);\n            for (var i = 0; i < this._displayables.length; i++) {\n                var displayable = this._displayables[i];\n                var childRect = displayable.getBoundingRect().clone();\n                if (displayable.needLocalTransform()) {\n                    childRect.applyTransform(displayable.getLocalTransform(m));\n                }\n                rect.union(childRect);\n            }\n            this._rect = rect;\n        }\n        return this._rect;\n    };\n    IncrementalDisplayable.prototype.contain = function (x, y) {\n        var localPos = this.transformCoordToLocal(x, y);\n        var rect = this.getBoundingRect();\n        if (rect.contain(localPos[0], localPos[1])) {\n            for (var i = 0; i < this._displayables.length; i++) {\n                var displayable = this._displayables[i];\n                if (displayable.contain(x, y)) {\n                    return true;\n                }\n            }\n        }\n        return false;\n    };\n    return IncrementalDisplayable;\n}(Displayble));\nexport default IncrementalDisplayable;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as pathTool from 'zrender/lib/tool/path';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport * as vector from 'zrender/lib/core/vector';\nimport Path from 'zrender/lib/graphic/Path';\nimport Transformable from 'zrender/lib/core/Transformable';\nimport ZRImage from 'zrender/lib/graphic/Image';\nimport Group from 'zrender/lib/graphic/Group';\nimport ZRText from 'zrender/lib/graphic/Text';\nimport Circle from 'zrender/lib/graphic/shape/Circle';\nimport Ellipse from 'zrender/lib/graphic/shape/Ellipse';\nimport Sector from 'zrender/lib/graphic/shape/Sector';\nimport Ring from 'zrender/lib/graphic/shape/Ring';\nimport Polygon from 'zrender/lib/graphic/shape/Polygon';\nimport Polyline from 'zrender/lib/graphic/shape/Polyline';\nimport Rect from 'zrender/lib/graphic/shape/Rect';\nimport Line from 'zrender/lib/graphic/shape/Line';\nimport BezierCurve from 'zrender/lib/graphic/shape/BezierCurve';\nimport Arc from 'zrender/lib/graphic/shape/Arc';\nimport CompoundPath from 'zrender/lib/graphic/CompoundPath';\nimport LinearGradient from 'zrender/lib/graphic/LinearGradient';\nimport RadialGradient from 'zrender/lib/graphic/RadialGradient';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport OrientedBoundingRect from 'zrender/lib/core/OrientedBoundingRect';\nimport Point from 'zrender/lib/core/Point';\nimport IncrementalDisplayable from 'zrender/lib/graphic/IncrementalDisplayable';\nimport * as subPixelOptimizeUtil from 'zrender/lib/graphic/helper/subPixelOptimize';\nimport { extend, isArrayLike, map, defaults, isObject, retrieve2 } from 'zrender/lib/core/util';\nimport { getECData } from './innerStore';\nvar mathMax = Math.max;\nvar mathMin = Math.min;\nvar _customShapeMap = {};\nexport function extendShape(opts) {\n  return Path.extend(opts);\n}\nvar extendPathFromString = pathTool.extendFromString;\nexport function extendPath(pathData, opts) {\n  return extendPathFromString(pathData, opts);\n}\nexport function registerShape(name, ShapeClass) {\n  _customShapeMap[name] = ShapeClass;\n}\nexport function getShapeClass(name) {\n  if (_customShapeMap.hasOwnProperty(name)) {\n    return _customShapeMap[name];\n  }\n}\nexport function makePath(pathData, opts, rect, layout) {\n  var path = pathTool.createFromString(pathData, opts);\n\n  if (rect) {\n    if (layout === 'center') {\n      rect = centerGraphic(rect, path.getBoundingRect());\n    }\n\n    resizePath(path, rect);\n  }\n\n  return path;\n}\nexport function makeImage(imageUrl, rect, layout) {\n  var zrImg = new ZRImage({\n    style: {\n      image: imageUrl,\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height\n    },\n    onload: function (img) {\n      if (layout === 'center') {\n        var boundingRect = {\n          width: img.width,\n          height: img.height\n        };\n        zrImg.setStyle(centerGraphic(rect, boundingRect));\n      }\n    }\n  });\n  return zrImg;\n}\n\nfunction centerGraphic(rect, boundingRect) {\n  var aspect = boundingRect.width / boundingRect.height;\n  var width = rect.height * aspect;\n  var height;\n\n  if (width <= rect.width) {\n    height = rect.height;\n  } else {\n    width = rect.width;\n    height = width / aspect;\n  }\n\n  var cx = rect.x + rect.width / 2;\n  var cy = rect.y + rect.height / 2;\n  return {\n    x: cx - width / 2,\n    y: cy - height / 2,\n    width: width,\n    height: height\n  };\n}\n\nexport var mergePath = pathTool.mergePath;\nexport function resizePath(path, rect) {\n  if (!path.applyTransform) {\n    return;\n  }\n\n  var pathRect = path.getBoundingRect();\n  var m = pathRect.calculateTransform(rect);\n  path.applyTransform(m);\n}\nexport function subPixelOptimizeLine(param) {\n  subPixelOptimizeUtil.subPixelOptimizeLine(param.shape, param.shape, param.style);\n  return param;\n}\nexport function subPixelOptimizeRect(param) {\n  subPixelOptimizeUtil.subPixelOptimizeRect(param.shape, param.shape, param.style);\n  return param;\n}\nexport var subPixelOptimize = subPixelOptimizeUtil.subPixelOptimize;\n\nfunction animateOrSetProps(animationType, el, props, animatableModel, dataIndex, cb, during) {\n  var isFrom = false;\n  var removeOpt;\n\n  if (typeof dataIndex === 'function') {\n    during = cb;\n    cb = dataIndex;\n    dataIndex = null;\n  } else if (isObject(dataIndex)) {\n    cb = dataIndex.cb;\n    during = dataIndex.during;\n    isFrom = dataIndex.isFrom;\n    removeOpt = dataIndex.removeOpt;\n    dataIndex = dataIndex.dataIndex;\n  }\n\n  var isUpdate = animationType === 'update';\n  var isRemove = animationType === 'remove';\n  var animationPayload;\n\n  if (animatableModel && animatableModel.ecModel) {\n    var updatePayload = animatableModel.ecModel.getUpdatePayload();\n    animationPayload = updatePayload && updatePayload.animation;\n  }\n\n  var animationEnabled = animatableModel && animatableModel.isAnimationEnabled();\n\n  if (!isRemove) {\n    el.stopAnimation('remove');\n  }\n\n  if (animationEnabled) {\n    var duration = void 0;\n    var animationEasing = void 0;\n    var animationDelay = void 0;\n\n    if (animationPayload) {\n      duration = animationPayload.duration || 0;\n      animationEasing = animationPayload.easing || 'cubicOut';\n      animationDelay = animationPayload.delay || 0;\n    } else if (isRemove) {\n      removeOpt = removeOpt || {};\n      duration = retrieve2(removeOpt.duration, 200);\n      animationEasing = retrieve2(removeOpt.easing, 'cubicOut');\n      animationDelay = 0;\n    } else {\n      duration = animatableModel.getShallow(isUpdate ? 'animationDurationUpdate' : 'animationDuration');\n      animationEasing = animatableModel.getShallow(isUpdate ? 'animationEasingUpdate' : 'animationEasing');\n      animationDelay = animatableModel.getShallow(isUpdate ? 'animationDelayUpdate' : 'animationDelay');\n    }\n\n    if (typeof animationDelay === 'function') {\n      animationDelay = animationDelay(dataIndex, animatableModel.getAnimationDelayParams ? animatableModel.getAnimationDelayParams(el, dataIndex) : null);\n    }\n\n    if (typeof duration === 'function') {\n      duration = duration(dataIndex);\n    }\n\n    duration > 0 ? isFrom ? el.animateFrom(props, {\n      duration: duration,\n      delay: animationDelay || 0,\n      easing: animationEasing,\n      done: cb,\n      force: !!cb || !!during,\n      scope: animationType,\n      during: during\n    }) : el.animateTo(props, {\n      duration: duration,\n      delay: animationDelay || 0,\n      easing: animationEasing,\n      done: cb,\n      force: !!cb || !!during,\n      setToFinal: true,\n      scope: animationType,\n      during: during\n    }) : (el.stopAnimation(), !isFrom && el.attr(props), cb && cb());\n  } else {\n    el.stopAnimation();\n    !isFrom && el.attr(props);\n    during && during(1);\n    cb && cb();\n  }\n}\n\nfunction updateProps(el, props, animatableModel, dataIndex, cb, during) {\n  animateOrSetProps('update', el, props, animatableModel, dataIndex, cb, during);\n}\n\nexport { updateProps };\nexport function initProps(el, props, animatableModel, dataIndex, cb, during) {\n  animateOrSetProps('init', el, props, animatableModel, dataIndex, cb, during);\n}\nexport function removeElement(el, props, animatableModel, dataIndex, cb, during) {\n  if (isElementRemoved(el)) {\n    return;\n  }\n\n  animateOrSetProps('remove', el, props, animatableModel, dataIndex, cb, during);\n}\n\nfunction fadeOutDisplayable(el, animatableModel, dataIndex, done) {\n  el.removeTextContent();\n  el.removeTextGuideLine();\n  removeElement(el, {\n    style: {\n      opacity: 0\n    }\n  }, animatableModel, dataIndex, done);\n}\n\nexport function removeElementWithFadeOut(el, animatableModel, dataIndex) {\n  function doRemove() {\n    el.parent && el.parent.remove(el);\n  }\n\n  if (!el.isGroup) {\n    fadeOutDisplayable(el, animatableModel, dataIndex, doRemove);\n  } else {\n    el.traverse(function (disp) {\n      if (!disp.isGroup) {\n        fadeOutDisplayable(disp, animatableModel, dataIndex, doRemove);\n      }\n    });\n  }\n}\nexport function isElementRemoved(el) {\n  if (!el.__zr) {\n    return true;\n  }\n\n  for (var i = 0; i < el.animators.length; i++) {\n    var animator = el.animators[i];\n\n    if (animator.scope === 'remove') {\n      return true;\n    }\n  }\n\n  return false;\n}\nexport function getTransform(target, ancestor) {\n  var mat = matrix.identity([]);\n\n  while (target && target !== ancestor) {\n    matrix.mul(mat, target.getLocalTransform(), mat);\n    target = target.parent;\n  }\n\n  return mat;\n}\nexport function applyTransform(target, transform, invert) {\n  if (transform && !isArrayLike(transform)) {\n    transform = Transformable.getLocalTransform(transform);\n  }\n\n  if (invert) {\n    transform = matrix.invert([], transform);\n  }\n\n  return vector.applyTransform([], target, transform);\n}\nexport function transformDirection(direction, transform, invert) {\n  var hBase = transform[4] === 0 || transform[5] === 0 || transform[0] === 0 ? 1 : Math.abs(2 * transform[4] / transform[0]);\n  var vBase = transform[4] === 0 || transform[5] === 0 || transform[2] === 0 ? 1 : Math.abs(2 * transform[4] / transform[2]);\n  var vertex = [direction === 'left' ? -hBase : direction === 'right' ? hBase : 0, direction === 'top' ? -vBase : direction === 'bottom' ? vBase : 0];\n  vertex = applyTransform(vertex, transform, invert);\n  return Math.abs(vertex[0]) > Math.abs(vertex[1]) ? vertex[0] > 0 ? 'right' : 'left' : vertex[1] > 0 ? 'bottom' : 'top';\n}\n\nfunction isNotGroup(el) {\n  return !el.isGroup;\n}\n\nfunction isPath(el) {\n  return el.shape != null;\n}\n\nexport function groupTransition(g1, g2, animatableModel) {\n  if (!g1 || !g2) {\n    return;\n  }\n\n  function getElMap(g) {\n    var elMap = {};\n    g.traverse(function (el) {\n      if (isNotGroup(el) && el.anid) {\n        elMap[el.anid] = el;\n      }\n    });\n    return elMap;\n  }\n\n  function getAnimatableProps(el) {\n    var obj = {\n      x: el.x,\n      y: el.y,\n      rotation: el.rotation\n    };\n\n    if (isPath(el)) {\n      obj.shape = extend({}, el.shape);\n    }\n\n    return obj;\n  }\n\n  var elMap1 = getElMap(g1);\n  g2.traverse(function (el) {\n    if (isNotGroup(el) && el.anid) {\n      var oldEl = elMap1[el.anid];\n\n      if (oldEl) {\n        var newProp = getAnimatableProps(el);\n        el.attr(getAnimatableProps(oldEl));\n        updateProps(el, newProp, animatableModel, getECData(el).dataIndex);\n      }\n    }\n  });\n}\nexport function clipPointsByRect(points, rect) {\n  return map(points, function (point) {\n    var x = point[0];\n    x = mathMax(x, rect.x);\n    x = mathMin(x, rect.x + rect.width);\n    var y = point[1];\n    y = mathMax(y, rect.y);\n    y = mathMin(y, rect.y + rect.height);\n    return [x, y];\n  });\n}\nexport function clipRectByRect(targetRect, rect) {\n  var x = mathMax(targetRect.x, rect.x);\n  var x2 = mathMin(targetRect.x + targetRect.width, rect.x + rect.width);\n  var y = mathMax(targetRect.y, rect.y);\n  var y2 = mathMin(targetRect.y + targetRect.height, rect.y + rect.height);\n\n  if (x2 >= x && y2 >= y) {\n    return {\n      x: x,\n      y: y,\n      width: x2 - x,\n      height: y2 - y\n    };\n  }\n}\nexport function createIcon(iconStr, opt, rect) {\n  var innerOpts = extend({\n    rectHover: true\n  }, opt);\n  var style = innerOpts.style = {\n    strokeNoScale: true\n  };\n  rect = rect || {\n    x: -1,\n    y: -1,\n    width: 2,\n    height: 2\n  };\n\n  if (iconStr) {\n    return iconStr.indexOf('image://') === 0 ? (style.image = iconStr.slice(8), defaults(style, rect), new ZRImage(innerOpts)) : makePath(iconStr.replace('path://', ''), innerOpts, rect, 'center');\n  }\n}\nexport function linePolygonIntersect(a1x, a1y, a2x, a2y, points) {\n  for (var i = 0, p2 = points[points.length - 1]; i < points.length; i++) {\n    var p = points[i];\n\n    if (lineLineIntersect(a1x, a1y, a2x, a2y, p[0], p[1], p2[0], p2[1])) {\n      return true;\n    }\n\n    p2 = p;\n  }\n}\nexport function lineLineIntersect(a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y) {\n  var mx = a2x - a1x;\n  var my = a2y - a1y;\n  var nx = b2x - b1x;\n  var ny = b2y - b1y;\n  var nmCrossProduct = crossProduct2d(nx, ny, mx, my);\n\n  if (nearZero(nmCrossProduct)) {\n    return false;\n  }\n\n  var b1a1x = a1x - b1x;\n  var b1a1y = a1y - b1y;\n  var q = crossProduct2d(b1a1x, b1a1y, mx, my) / nmCrossProduct;\n\n  if (q < 0 || q > 1) {\n    return false;\n  }\n\n  var p = crossProduct2d(b1a1x, b1a1y, nx, ny) / nmCrossProduct;\n\n  if (p < 0 || p > 1) {\n    return false;\n  }\n\n  return true;\n}\n\nfunction crossProduct2d(x1, y1, x2, y2) {\n  return x1 * y2 - x2 * y1;\n}\n\nfunction nearZero(val) {\n  return val <= 1e-6 && val >= -1e-6;\n}\n\nregisterShape('circle', Circle);\nregisterShape('ellipse', Ellipse);\nregisterShape('sector', Sector);\nregisterShape('ring', Ring);\nregisterShape('polygon', Polygon);\nregisterShape('polyline', Polyline);\nregisterShape('rect', Rect);\nregisterShape('line', Line);\nregisterShape('bezierCurve', BezierCurve);\nregisterShape('arc', Arc);\nexport { Group, ZRImage as Image, ZRText as Text, Circle, Ellipse, Sector, Ring, Polygon, Polyline, Rect, Line, BezierCurve, Arc, IncrementalDisplayable, CompoundPath, LinearGradient, RadialGradient, BoundingRect, OrientedBoundingRect, Point, Path };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ZRText from 'zrender/lib/graphic/Text';\nimport { isFunction, retrieve2, extend, keys, trim } from 'zrender/lib/core/util';\nimport { SPECIAL_STATES, DISPLAY_STATES } from '../util/states';\nimport { deprecateReplaceLog } from '../util/log';\nimport { makeInner, interpolateRawValues } from '../util/model';\nimport { initProps, updateProps } from '../util/graphic';\nvar EMPTY_OBJ = {};\nexport function setLabelText(label, labelTexts) {\n  for (var i = 0; i < SPECIAL_STATES.length; i++) {\n    var stateName = SPECIAL_STATES[i];\n    var text = labelTexts[stateName];\n    var state = label.ensureState(stateName);\n    state.style = state.style || {};\n    state.style.text = text;\n  }\n\n  var oldStates = label.currentStates.slice();\n  label.clearStates(true);\n  label.setStyle({\n    text: labelTexts.normal\n  });\n  label.useStates(oldStates, true);\n}\n\nfunction getLabelText(opt, stateModels, interpolatedValue) {\n  var labelFetcher = opt.labelFetcher;\n  var labelDataIndex = opt.labelDataIndex;\n  var labelDimIndex = opt.labelDimIndex;\n  var normalModel = stateModels.normal;\n  var baseText;\n\n  if (labelFetcher) {\n    baseText = labelFetcher.getFormattedLabel(labelDataIndex, 'normal', null, labelDimIndex, normalModel && normalModel.get('formatter'), interpolatedValue != null ? {\n      interpolatedValue: interpolatedValue\n    } : null);\n  }\n\n  if (baseText == null) {\n    baseText = isFunction(opt.defaultText) ? opt.defaultText(labelDataIndex, opt, interpolatedValue) : opt.defaultText;\n  }\n\n  var statesText = {\n    normal: baseText\n  };\n\n  for (var i = 0; i < SPECIAL_STATES.length; i++) {\n    var stateName = SPECIAL_STATES[i];\n    var stateModel = stateModels[stateName];\n    statesText[stateName] = retrieve2(labelFetcher ? labelFetcher.getFormattedLabel(labelDataIndex, stateName, null, labelDimIndex, stateModel && stateModel.get('formatter')) : null, baseText);\n  }\n\n  return statesText;\n}\n\nfunction setLabelStyle(targetEl, labelStatesModels, opt, stateSpecified) {\n  opt = opt || EMPTY_OBJ;\n  var isSetOnText = targetEl instanceof ZRText;\n  var needsCreateText = false;\n\n  for (var i = 0; i < DISPLAY_STATES.length; i++) {\n    var stateModel = labelStatesModels[DISPLAY_STATES[i]];\n\n    if (stateModel && stateModel.getShallow('show')) {\n      needsCreateText = true;\n      break;\n    }\n  }\n\n  var textContent = isSetOnText ? targetEl : targetEl.getTextContent();\n\n  if (needsCreateText) {\n    if (!isSetOnText) {\n      if (!textContent) {\n        textContent = new ZRText();\n        targetEl.setTextContent(textContent);\n      }\n\n      if (targetEl.stateProxy) {\n        textContent.stateProxy = targetEl.stateProxy;\n      }\n    }\n\n    var labelStatesTexts = getLabelText(opt, labelStatesModels);\n    var normalModel = labelStatesModels.normal;\n    var showNormal = !!normalModel.getShallow('show');\n    var normalStyle = createTextStyle(normalModel, stateSpecified && stateSpecified.normal, opt, false, !isSetOnText);\n    normalStyle.text = labelStatesTexts.normal;\n\n    if (!isSetOnText) {\n      targetEl.setTextConfig(createTextConfig(normalModel, opt, false));\n    }\n\n    for (var i = 0; i < SPECIAL_STATES.length; i++) {\n      var stateName = SPECIAL_STATES[i];\n      var stateModel = labelStatesModels[stateName];\n\n      if (stateModel) {\n        var stateObj = textContent.ensureState(stateName);\n        var stateShow = !!retrieve2(stateModel.getShallow('show'), showNormal);\n\n        if (stateShow !== showNormal) {\n          stateObj.ignore = !stateShow;\n        }\n\n        stateObj.style = createTextStyle(stateModel, stateSpecified && stateSpecified[stateName], opt, true, !isSetOnText);\n        stateObj.style.text = labelStatesTexts[stateName];\n\n        if (!isSetOnText) {\n          var targetElEmphasisState = targetEl.ensureState(stateName);\n          targetElEmphasisState.textConfig = createTextConfig(stateModel, opt, true);\n        }\n      }\n    }\n\n    textContent.silent = !!normalModel.getShallow('silent');\n\n    if (textContent.style.x != null) {\n      normalStyle.x = textContent.style.x;\n    }\n\n    if (textContent.style.y != null) {\n      normalStyle.y = textContent.style.y;\n    }\n\n    textContent.ignore = !showNormal;\n    textContent.useStyle(normalStyle);\n    textContent.dirty();\n\n    if (opt.enableTextSetter) {\n      labelInner(textContent).setLabelText = function (interpolatedValue) {\n        var labelStatesTexts = getLabelText(opt, labelStatesModels, interpolatedValue);\n        setLabelText(textContent, labelStatesTexts);\n      };\n    }\n  } else if (textContent) {\n    textContent.ignore = true;\n  }\n\n  targetEl.dirty();\n}\n\nexport { setLabelStyle };\nexport function getLabelStatesModels(itemModel, labelName) {\n  labelName = labelName || 'label';\n  var statesModels = {\n    normal: itemModel.getModel(labelName)\n  };\n\n  for (var i = 0; i < SPECIAL_STATES.length; i++) {\n    var stateName = SPECIAL_STATES[i];\n    statesModels[stateName] = itemModel.getModel([stateName, labelName]);\n  }\n\n  return statesModels;\n}\nexport function createTextStyle(textStyleModel, specifiedTextStyle, opt, isNotNormal, isAttached) {\n  var textStyle = {};\n  setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached);\n  specifiedTextStyle && extend(textStyle, specifiedTextStyle);\n  return textStyle;\n}\nexport function createTextConfig(textStyleModel, opt, isNotNormal) {\n  opt = opt || {};\n  var textConfig = {};\n  var labelPosition;\n  var labelRotate = textStyleModel.getShallow('rotate');\n  var labelDistance = retrieve2(textStyleModel.getShallow('distance'), isNotNormal ? null : 5);\n  var labelOffset = textStyleModel.getShallow('offset');\n  labelPosition = textStyleModel.getShallow('position') || (isNotNormal ? null : 'inside');\n  labelPosition === 'outside' && (labelPosition = opt.defaultOutsidePosition || 'top');\n\n  if (labelPosition != null) {\n    textConfig.position = labelPosition;\n  }\n\n  if (labelOffset != null) {\n    textConfig.offset = labelOffset;\n  }\n\n  if (labelRotate != null) {\n    labelRotate *= Math.PI / 180;\n    textConfig.rotation = labelRotate;\n  }\n\n  if (labelDistance != null) {\n    textConfig.distance = labelDistance;\n  }\n\n  textConfig.outsideFill = textStyleModel.get('color') === 'inherit' ? opt.inheritColor || null : 'auto';\n  return textConfig;\n}\n\nfunction setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached) {\n  opt = opt || EMPTY_OBJ;\n  var ecModel = textStyleModel.ecModel;\n  var globalTextStyle = ecModel && ecModel.option.textStyle;\n  var richItemNames = getRichItemNames(textStyleModel);\n  var richResult;\n\n  if (richItemNames) {\n    richResult = {};\n\n    for (var name_1 in richItemNames) {\n      if (richItemNames.hasOwnProperty(name_1)) {\n        var richTextStyle = textStyleModel.getModel(['rich', name_1]);\n        setTokenTextStyle(richResult[name_1] = {}, richTextStyle, globalTextStyle, opt, isNotNormal, isAttached, false, true);\n      }\n    }\n  }\n\n  if (richResult) {\n    textStyle.rich = richResult;\n  }\n\n  var overflow = textStyleModel.get('overflow');\n\n  if (overflow) {\n    textStyle.overflow = overflow;\n  }\n\n  var margin = textStyleModel.get('minMargin');\n\n  if (margin != null) {\n    textStyle.margin = margin;\n  }\n\n  setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, true, false);\n}\n\nfunction getRichItemNames(textStyleModel) {\n  var richItemNameMap;\n\n  while (textStyleModel && textStyleModel !== textStyleModel.ecModel) {\n    var rich = (textStyleModel.option || EMPTY_OBJ).rich;\n\n    if (rich) {\n      richItemNameMap = richItemNameMap || {};\n      var richKeys = keys(rich);\n\n      for (var i = 0; i < richKeys.length; i++) {\n        var richKey = richKeys[i];\n        richItemNameMap[richKey] = 1;\n      }\n    }\n\n    textStyleModel = textStyleModel.parentModel;\n  }\n\n  return richItemNameMap;\n}\n\nvar TEXT_PROPS_WITH_GLOBAL = ['fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY'];\nvar TEXT_PROPS_SELF = ['align', 'lineHeight', 'width', 'height', 'tag', 'verticalAlign'];\nvar TEXT_PROPS_BOX = ['padding', 'borderWidth', 'borderRadius', 'borderDashOffset', 'backgroundColor', 'borderColor', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'];\n\nfunction setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, isBlock, inRich) {\n  globalTextStyle = !isNotNormal && globalTextStyle || EMPTY_OBJ;\n  var inheritColor = opt && opt.inheritColor;\n  var fillColor = textStyleModel.getShallow('color');\n  var strokeColor = textStyleModel.getShallow('textBorderColor');\n  var opacity = retrieve2(textStyleModel.getShallow('opacity'), globalTextStyle.opacity);\n\n  if (fillColor === 'inherit' || fillColor === 'auto') {\n    if (process.env.NODE_ENV !== 'production') {\n      if (fillColor === 'auto') {\n        deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\n      }\n    }\n\n    if (inheritColor) {\n      fillColor = inheritColor;\n    } else {\n      fillColor = null;\n    }\n  }\n\n  if (strokeColor === 'inherit' || strokeColor === 'auto') {\n    if (process.env.NODE_ENV !== 'production') {\n      if (strokeColor === 'auto') {\n        deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\n      }\n    }\n\n    if (inheritColor) {\n      strokeColor = inheritColor;\n    } else {\n      strokeColor = null;\n    }\n  }\n\n  if (!isAttached) {\n    fillColor = fillColor || globalTextStyle.color;\n    strokeColor = strokeColor || globalTextStyle.textBorderColor;\n  }\n\n  if (fillColor != null) {\n    textStyle.fill = fillColor;\n  }\n\n  if (strokeColor != null) {\n    textStyle.stroke = strokeColor;\n  }\n\n  var textBorderWidth = retrieve2(textStyleModel.getShallow('textBorderWidth'), globalTextStyle.textBorderWidth);\n\n  if (textBorderWidth != null) {\n    textStyle.lineWidth = textBorderWidth;\n  }\n\n  var textBorderType = retrieve2(textStyleModel.getShallow('textBorderType'), globalTextStyle.textBorderType);\n\n  if (textBorderType != null) {\n    textStyle.lineDash = textBorderType;\n  }\n\n  var textBorderDashOffset = retrieve2(textStyleModel.getShallow('textBorderDashOffset'), globalTextStyle.textBorderDashOffset);\n\n  if (textBorderDashOffset != null) {\n    textStyle.lineDashOffset = textBorderDashOffset;\n  }\n\n  if (!isNotNormal && opacity == null && !inRich) {\n    opacity = opt && opt.defaultOpacity;\n  }\n\n  if (opacity != null) {\n    textStyle.opacity = opacity;\n  }\n\n  if (!isNotNormal && !isAttached) {\n    if (textStyle.fill == null && opt.inheritColor) {\n      textStyle.fill = opt.inheritColor;\n    }\n  }\n\n  for (var i = 0; i < TEXT_PROPS_WITH_GLOBAL.length; i++) {\n    var key = TEXT_PROPS_WITH_GLOBAL[i];\n    var val = retrieve2(textStyleModel.getShallow(key), globalTextStyle[key]);\n\n    if (val != null) {\n      textStyle[key] = val;\n    }\n  }\n\n  for (var i = 0; i < TEXT_PROPS_SELF.length; i++) {\n    var key = TEXT_PROPS_SELF[i];\n    var val = textStyleModel.getShallow(key);\n\n    if (val != null) {\n      textStyle[key] = val;\n    }\n  }\n\n  if (textStyle.verticalAlign == null) {\n    var baseline = textStyleModel.getShallow('baseline');\n\n    if (baseline != null) {\n      textStyle.verticalAlign = baseline;\n    }\n  }\n\n  if (!isBlock || !opt.disableBox) {\n    for (var i = 0; i < TEXT_PROPS_BOX.length; i++) {\n      var key = TEXT_PROPS_BOX[i];\n      var val = textStyleModel.getShallow(key);\n\n      if (val != null) {\n        textStyle[key] = val;\n      }\n    }\n\n    var borderType = textStyleModel.getShallow('borderType');\n\n    if (borderType != null) {\n      textStyle.borderDash = borderType;\n    }\n\n    if ((textStyle.backgroundColor === 'auto' || textStyle.backgroundColor === 'inherit') && inheritColor) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (textStyle.backgroundColor === 'auto') {\n          deprecateReplaceLog('backgroundColor: \\'auto\\'', 'backgroundColor: \\'inherit\\'');\n        }\n      }\n\n      textStyle.backgroundColor = inheritColor;\n    }\n\n    if ((textStyle.borderColor === 'auto' || textStyle.borderColor === 'inherit') && inheritColor) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (textStyle.borderColor === 'auto') {\n          deprecateReplaceLog('borderColor: \\'auto\\'', 'borderColor: \\'inherit\\'');\n        }\n      }\n\n      textStyle.borderColor = inheritColor;\n    }\n  }\n}\n\nexport function getFont(opt, ecModel) {\n  var gTextStyleModel = ecModel && ecModel.getModel('textStyle');\n  return trim([opt.fontStyle || gTextStyleModel && gTextStyleModel.getShallow('fontStyle') || '', opt.fontWeight || gTextStyleModel && gTextStyleModel.getShallow('fontWeight') || '', (opt.fontSize || gTextStyleModel && gTextStyleModel.getShallow('fontSize') || 12) + 'px', opt.fontFamily || gTextStyleModel && gTextStyleModel.getShallow('fontFamily') || 'sans-serif'].join(' '));\n}\nexport var labelInner = makeInner();\nexport function setLabelValueAnimation(label, labelStatesModels, value, getDefaultText) {\n  if (!label) {\n    return;\n  }\n\n  var obj = labelInner(label);\n  obj.prevValue = obj.value;\n  obj.value = value;\n  var normalLabelModel = labelStatesModels.normal;\n  obj.valueAnimation = normalLabelModel.get('valueAnimation');\n\n  if (obj.valueAnimation) {\n    obj.precision = normalLabelModel.get('precision');\n    obj.defaultInterpolatedText = getDefaultText;\n    obj.statesModels = labelStatesModels;\n  }\n}\nexport function animateLabelValue(textEl, dataIndex, data, animatableModel, labelFetcher) {\n  var labelInnerStore = labelInner(textEl);\n\n  if (!labelInnerStore.valueAnimation) {\n    return;\n  }\n\n  var defaultInterpolatedText = labelInnerStore.defaultInterpolatedText;\n  var currValue = retrieve2(labelInnerStore.interpolatedValue, labelInnerStore.prevValue);\n  var targetValue = labelInnerStore.value;\n\n  function during(percent) {\n    var interpolated = interpolateRawValues(data, labelInnerStore.precision, currValue, targetValue, percent);\n    labelInnerStore.interpolatedValue = percent === 1 ? null : interpolated;\n    var labelText = getLabelText({\n      labelDataIndex: dataIndex,\n      labelFetcher: labelFetcher,\n      defaultText: defaultInterpolatedText ? defaultInterpolatedText(interpolated) : interpolated + ''\n    }, labelInnerStore.statesModels, interpolated);\n    setLabelText(textEl, labelText);\n  }\n\n  (currValue == null ? initProps : updateProps)(textEl, {}, animatableModel, dataIndex, null, during);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { getFont } from '../../label/labelStyle';\nimport ZRText from 'zrender/lib/graphic/Text';\nvar PATH_COLOR = ['textStyle', 'color'];\nvar tmpRichText = new ZRText();\n\nvar TextStyleMixin = function () {\n  function TextStyleMixin() {}\n\n  TextStyleMixin.prototype.getTextColor = function (isEmphasis) {\n    var ecModel = this.ecModel;\n    return this.getShallow('color') || (!isEmphasis && ecModel ? ecModel.get(PATH_COLOR) : null);\n  };\n\n  TextStyleMixin.prototype.getFont = function () {\n    return getFont({\n      fontStyle: this.getShallow('fontStyle'),\n      fontWeight: this.getShallow('fontWeight'),\n      fontSize: this.getShallow('fontSize'),\n      fontFamily: this.getShallow('fontFamily')\n    }, this.ecModel);\n  };\n\n  TextStyleMixin.prototype.getTextRect = function (text) {\n    tmpRichText.useStyle({\n      text: text,\n      fontStyle: this.getShallow('fontStyle'),\n      fontWeight: this.getShallow('fontWeight'),\n      fontSize: this.getShallow('fontSize'),\n      fontFamily: this.getShallow('fontFamily'),\n      verticalAlign: this.getShallow('verticalAlign') || this.getShallow('baseline'),\n      padding: this.getShallow('padding'),\n      lineHeight: this.getShallow('lineHeight'),\n      rich: this.getShallow('rich')\n    });\n    tmpRichText.update();\n    return tmpRichText.getBoundingRect();\n  };\n\n  return TextStyleMixin;\n}();\n\n;\nexport default TextStyleMixin;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport makeStyleMapper from './makeStyleMapper';\nexport var LINE_STYLE_KEY_MAP = [['lineWidth', 'width'], ['stroke', 'color'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor'], ['lineDash', 'type'], ['lineDashOffset', 'dashOffset'], ['lineCap', 'cap'], ['lineJoin', 'join'], ['miterLimit']];\nvar getLineStyle = makeStyleMapper(LINE_STYLE_KEY_MAP);\n\nvar LineStyleMixin = function () {\n  function LineStyleMixin() {}\n\n  LineStyleMixin.prototype.getLineStyle = function (excludes) {\n    return getLineStyle(this, excludes);\n  };\n\n  return LineStyleMixin;\n}();\n\n;\nexport { LineStyleMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport makeStyleMapper from './makeStyleMapper';\nexport var ITEM_STYLE_KEY_MAP = [['fill', 'color'], ['stroke', 'borderColor'], ['lineWidth', 'borderWidth'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor'], ['lineDash', 'borderType'], ['lineDashOffset', 'borderDashOffset'], ['lineCap', 'borderCap'], ['lineJoin', 'borderJoin'], ['miterLimit', 'borderMiterLimit']];\nvar getItemStyle = makeStyleMapper(ITEM_STYLE_KEY_MAP);\n\nvar ItemStyleMixin = function () {\n  function ItemStyleMixin() {}\n\n  ItemStyleMixin.prototype.getItemStyle = function (excludes, includes) {\n    return getItemStyle(this, excludes, includes);\n  };\n\n  return ItemStyleMixin;\n}();\n\nexport { ItemStyleMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport env from 'zrender/lib/core/env';\nimport { enableClassExtend, enableClassCheck } from '../util/clazz';\nimport { AreaStyleMixin } from './mixin/areaStyle';\nimport TextStyleMixin from './mixin/textStyle';\nimport { LineStyleMixin } from './mixin/lineStyle';\nimport { ItemStyleMixin } from './mixin/itemStyle';\nimport { mixin, clone, merge } from 'zrender/lib/core/util';\n\nvar Model = function () {\n  function Model(option, parentModel, ecModel) {\n    this.parentModel = parentModel;\n    this.ecModel = ecModel;\n    this.option = option;\n  }\n\n  Model.prototype.init = function (option, parentModel, ecModel) {\n    var rest = [];\n\n    for (var _i = 3; _i < arguments.length; _i++) {\n      rest[_i - 3] = arguments[_i];\n    }\n  };\n\n  Model.prototype.mergeOption = function (option, ecModel) {\n    merge(this.option, option, true);\n  };\n\n  Model.prototype.get = function (path, ignoreParent) {\n    if (path == null) {\n      return this.option;\n    }\n\n    return this._doGet(this.parsePath(path), !ignoreParent && this.parentModel);\n  };\n\n  Model.prototype.getShallow = function (key, ignoreParent) {\n    var option = this.option;\n    var val = option == null ? option : option[key];\n\n    if (val == null && !ignoreParent) {\n      var parentModel = this.parentModel;\n\n      if (parentModel) {\n        val = parentModel.getShallow(key);\n      }\n    }\n\n    return val;\n  };\n\n  Model.prototype.getModel = function (path, parentModel) {\n    var hasPath = path != null;\n    var pathFinal = hasPath ? this.parsePath(path) : null;\n    var obj = hasPath ? this._doGet(pathFinal) : this.option;\n    parentModel = parentModel || this.parentModel && this.parentModel.getModel(this.resolveParentPath(pathFinal));\n    return new Model(obj, parentModel, this.ecModel);\n  };\n\n  Model.prototype.isEmpty = function () {\n    return this.option == null;\n  };\n\n  Model.prototype.restoreData = function () {};\n\n  Model.prototype.clone = function () {\n    var Ctor = this.constructor;\n    return new Ctor(clone(this.option));\n  };\n\n  Model.prototype.parsePath = function (path) {\n    if (typeof path === 'string') {\n      return path.split('.');\n    }\n\n    return path;\n  };\n\n  Model.prototype.resolveParentPath = function (path) {\n    return path;\n  };\n\n  Model.prototype.isAnimationEnabled = function () {\n    if (!env.node && this.option) {\n      if (this.option.animation != null) {\n        return !!this.option.animation;\n      } else if (this.parentModel) {\n        return this.parentModel.isAnimationEnabled();\n      }\n    }\n  };\n\n  Model.prototype._doGet = function (pathArr, parentModel) {\n    var obj = this.option;\n\n    if (!pathArr) {\n      return obj;\n    }\n\n    for (var i = 0; i < pathArr.length; i++) {\n      if (!pathArr[i]) {\n        continue;\n      }\n\n      obj = obj && typeof obj === 'object' ? obj[pathArr[i]] : null;\n\n      if (obj == null) {\n        break;\n      }\n    }\n\n    if (obj == null && parentModel) {\n      obj = parentModel._doGet(this.resolveParentPath(pathArr), parentModel.parentModel);\n    }\n\n    return obj;\n  };\n\n  return Model;\n}();\n\n;\nenableClassExtend(Model);\nenableClassCheck(Model);\nmixin(Model, LineStyleMixin);\nmixin(Model, ItemStyleMixin);\nmixin(Model, AreaStyleMixin);\nmixin(Model, TextStyleMixin);\nexport default Model;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parseClassType } from './clazz';\nimport { makePrintable } from './log';\nvar base = Math.round(Math.random() * 10);\nexport function getUID(type) {\n  return [type || '', base++].join('_');\n}\nexport function enableSubTypeDefaulter(target) {\n  var subTypeDefaulters = {};\n\n  target.registerSubTypeDefaulter = function (componentType, defaulter) {\n    var componentTypeInfo = parseClassType(componentType);\n    subTypeDefaulters[componentTypeInfo.main] = defaulter;\n  };\n\n  target.determineSubType = function (componentType, option) {\n    var type = option.type;\n\n    if (!type) {\n      var componentTypeMain = parseClassType(componentType).main;\n\n      if (target.hasSubTypes(componentType) && subTypeDefaulters[componentTypeMain]) {\n        type = subTypeDefaulters[componentTypeMain](option);\n      }\n    }\n\n    return type;\n  };\n}\nexport function enableTopologicalTravel(entity, dependencyGetter) {\n  entity.topologicalTravel = function (targetNameList, fullNameList, callback, context) {\n    if (!targetNameList.length) {\n      return;\n    }\n\n    var result = makeDepndencyGraph(fullNameList);\n    var graph = result.graph;\n    var noEntryList = result.noEntryList;\n    var targetNameSet = {};\n    zrUtil.each(targetNameList, function (name) {\n      targetNameSet[name] = true;\n    });\n\n    while (noEntryList.length) {\n      var currComponentType = noEntryList.pop();\n      var currVertex = graph[currComponentType];\n      var isInTargetNameSet = !!targetNameSet[currComponentType];\n\n      if (isInTargetNameSet) {\n        callback.call(context, currComponentType, currVertex.originalDeps.slice());\n        delete targetNameSet[currComponentType];\n      }\n\n      zrUtil.each(currVertex.successor, isInTargetNameSet ? removeEdgeAndAdd : removeEdge);\n    }\n\n    zrUtil.each(targetNameSet, function () {\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = makePrintable('Circle dependency may exists: ', targetNameSet, targetNameList, fullNameList);\n      }\n\n      throw new Error(errMsg);\n    });\n\n    function removeEdge(succComponentType) {\n      graph[succComponentType].entryCount--;\n\n      if (graph[succComponentType].entryCount === 0) {\n        noEntryList.push(succComponentType);\n      }\n    }\n\n    function removeEdgeAndAdd(succComponentType) {\n      targetNameSet[succComponentType] = true;\n      removeEdge(succComponentType);\n    }\n  };\n\n  function makeDepndencyGraph(fullNameList) {\n    var graph = {};\n    var noEntryList = [];\n    zrUtil.each(fullNameList, function (name) {\n      var thisItem = createDependencyGraphItem(graph, name);\n      var originalDeps = thisItem.originalDeps = dependencyGetter(name);\n      var availableDeps = getAvailableDependencies(originalDeps, fullNameList);\n      thisItem.entryCount = availableDeps.length;\n\n      if (thisItem.entryCount === 0) {\n        noEntryList.push(name);\n      }\n\n      zrUtil.each(availableDeps, function (dependentName) {\n        if (zrUtil.indexOf(thisItem.predecessor, dependentName) < 0) {\n          thisItem.predecessor.push(dependentName);\n        }\n\n        var thatItem = createDependencyGraphItem(graph, dependentName);\n\n        if (zrUtil.indexOf(thatItem.successor, dependentName) < 0) {\n          thatItem.successor.push(name);\n        }\n      });\n    });\n    return {\n      graph: graph,\n      noEntryList: noEntryList\n    };\n  }\n\n  function createDependencyGraphItem(graph, name) {\n    if (!graph[name]) {\n      graph[name] = {\n        predecessor: [],\n        successor: []\n      };\n    }\n\n    return graph[name];\n  }\n\n  function getAvailableDependencies(originalDeps, fullNameList) {\n    var availableDeps = [];\n    zrUtil.each(originalDeps, function (dep) {\n      zrUtil.indexOf(fullNameList, dep) >= 0 && availableDeps.push(dep);\n    });\n    return availableDeps;\n  }\n}\nexport function inheritDefaultOption(superOption, subOption) {\n  return zrUtil.merge(zrUtil.merge({}, superOption, true), subOption, true);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default {\n  time: {\n    month: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n    monthAbbr: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n    dayOfWeek: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n    dayOfWeekAbbr: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\n  },\n  legend: {\n    selector: {\n      all: 'All',\n      inverse: 'Inv'\n    }\n  },\n  toolbox: {\n    brush: {\n      title: {\n        rect: 'Box Select',\n        polygon: 'Lasso Select',\n        lineX: 'Horizontally Select',\n        lineY: 'Vertically Select',\n        keep: 'Keep Selections',\n        clear: 'Clear Selections'\n      }\n    },\n    dataView: {\n      title: 'Data View',\n      lang: ['Data View', 'Close', 'Refresh']\n    },\n    dataZoom: {\n      title: {\n        zoom: 'Zoom',\n        back: 'Zoom Reset'\n      }\n    },\n    magicType: {\n      title: {\n        line: 'Switch to Line Chart',\n        bar: 'Switch to Bar Chart',\n        stack: 'Stack',\n        tiled: 'Tile'\n      }\n    },\n    restore: {\n      title: 'Restore'\n    },\n    saveAsImage: {\n      title: 'Save as Image',\n      lang: ['Right Click to Save Image']\n    }\n  },\n  series: {\n    typeNames: {\n      pie: 'Pie chart',\n      bar: 'Bar chart',\n      line: 'Line chart',\n      scatter: 'Scatter plot',\n      effectScatter: 'Ripple scatter plot',\n      radar: 'Radar chart',\n      tree: 'Tree',\n      treemap: 'Treemap',\n      boxplot: 'Boxplot',\n      candlestick: 'Candlestick',\n      k: 'K line chart',\n      heatmap: 'Heat map',\n      map: 'Map',\n      parallel: 'Parallel coordinate map',\n      lines: 'Line graph',\n      graph: 'Relationship graph',\n      sankey: 'Sankey diagram',\n      funnel: 'Funnel chart',\n      gauge: 'Guage',\n      pictorialBar: 'Pictorial bar',\n      themeRiver: 'Theme River Map',\n      sunburst: 'Sunburst'\n    }\n  },\n  aria: {\n    general: {\n      withTitle: 'This is a chart about \"{title}\"',\n      withoutTitle: 'This is a chart'\n    },\n    series: {\n      single: {\n        prefix: '',\n        withName: ' with type {seriesType} named {seriesName}.',\n        withoutName: ' with type {seriesType}.'\n      },\n      multiple: {\n        prefix: '. It consists of {seriesCount} series count.',\n        withName: ' The {seriesId} series is a {seriesType} representing {seriesName}.',\n        withoutName: ' The {seriesId} series is a {seriesType}.',\n        separator: {\n          middle: '',\n          end: ''\n        }\n      }\n    },\n    data: {\n      allData: 'The data is as follows: ',\n      partialData: 'The first {displayCnt} items are: ',\n      withName: 'the data for {name} is {value}',\n      withoutName: '{value}',\n      separator: {\n        middle: ', ',\n        end: '. '\n      }\n    }\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default {\n  time: {\n    month: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],\n    monthAbbr: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\n    dayOfWeek: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],\n    dayOfWeekAbbr: ['日', '一', '二', '三', '四', '五', '六']\n  },\n  legend: {\n    selector: {\n      all: '全选',\n      inverse: '反选'\n    }\n  },\n  toolbox: {\n    brush: {\n      title: {\n        rect: '矩形选择',\n        polygon: '圈选',\n        lineX: '横向选择',\n        lineY: '纵向选择',\n        keep: '保持选择',\n        clear: '清除选择'\n      }\n    },\n    dataView: {\n      title: '数据视图',\n      lang: ['数据视图', '关闭', '刷新']\n    },\n    dataZoom: {\n      title: {\n        zoom: '区域缩放',\n        back: '区域缩放还原'\n      }\n    },\n    magicType: {\n      title: {\n        line: '切换为折线图',\n        bar: '切换为柱状图',\n        stack: '切换为堆叠',\n        tiled: '切换为平铺'\n      }\n    },\n    restore: {\n      title: '还原'\n    },\n    saveAsImage: {\n      title: '保存为图片',\n      lang: ['右键另存为图片']\n    }\n  },\n  series: {\n    typeNames: {\n      pie: '饼图',\n      bar: '柱状图',\n      line: '折线图',\n      scatter: '散点图',\n      effectScatter: '涟漪散点图',\n      radar: '雷达图',\n      tree: '树图',\n      treemap: '矩形树图',\n      boxplot: '箱型图',\n      candlestick: 'K线图',\n      k: 'K线图',\n      heatmap: '热力图',\n      map: '地图',\n      parallel: '平行坐标图',\n      lines: '线图',\n      graph: '关系图',\n      sankey: '桑基图',\n      funnel: '漏斗图',\n      gauge: '仪表盘图',\n      pictorialBar: '象形柱图',\n      themeRiver: '主题河流图',\n      sunburst: '旭日图'\n    }\n  },\n  aria: {\n    general: {\n      withTitle: '这是一个关于“{title}”的图表。',\n      withoutTitle: '这是一个图表,'\n    },\n    series: {\n      single: {\n        prefix: '',\n        withName: '图表类型是{seriesType},表示{seriesName}。',\n        withoutName: '图表类型是{seriesType}。'\n      },\n      multiple: {\n        prefix: '它由{seriesCount}个图表系列组成。',\n        withName: '第{seriesId}个系列是一个表示{seriesName}的{seriesType},',\n        withoutName: '第{seriesId}个系列是一个{seriesType},',\n        separator: {\n          middle: ';',\n          end: '。'\n        }\n      }\n    },\n    data: {\n      allData: '其数据是——',\n      partialData: '其中,前{displayCnt}项是——',\n      withName: '{name}的数据是{value}',\n      withoutName: '{value}',\n      separator: {\n        middle: ',',\n        end: ''\n      }\n    }\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Model from '../model/Model';\nimport env from 'zrender/lib/core/env';\nimport langEN from '../i18n/langEN';\nimport langZH from '../i18n/langZH';\nimport { isString, clone, merge } from 'zrender/lib/core/util';\nvar LOCALE_ZH = 'ZH';\nvar LOCALE_EN = 'EN';\nvar DEFAULT_LOCALE = LOCALE_EN;\nvar localeStorage = {};\nvar localeModels = {};\nexport var SYSTEM_LANG = !env.domSupported ? DEFAULT_LOCALE : function () {\n  var langStr = (document.documentElement.lang || navigator.language || navigator.browserLanguage).toUpperCase();\n  return langStr.indexOf(LOCALE_ZH) > -1 ? LOCALE_ZH : DEFAULT_LOCALE;\n}();\nexport function registerLocale(locale, localeObj) {\n  locale = locale.toUpperCase();\n  localeModels[locale] = new Model(localeObj);\n  localeStorage[locale] = localeObj;\n}\nexport function createLocaleObject(locale) {\n  if (isString(locale)) {\n    var localeObj = localeStorage[locale.toUpperCase()] || {};\n\n    if (locale === LOCALE_ZH || locale === LOCALE_EN) {\n      return clone(localeObj);\n    } else {\n      return merge(clone(localeObj), clone(localeStorage[DEFAULT_LOCALE]), false);\n    }\n  } else {\n    return merge(clone(locale), clone(localeStorage[DEFAULT_LOCALE]), false);\n  }\n}\nexport function getLocaleModel(lang) {\n  return localeModels[lang];\n}\nexport function getDefaultLocaleModel() {\n  return localeModels[DEFAULT_LOCALE];\n}\nregisterLocale(LOCALE_EN, langEN);\nregisterLocale(LOCALE_ZH, langZH);","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as numberUtil from './number';\nimport { getDefaultLocaleModel, getLocaleModel, SYSTEM_LANG } from '../core/locale';\nimport Model from '../model/Model';\nexport var ONE_SECOND = 1000;\nexport var ONE_MINUTE = ONE_SECOND * 60;\nexport var ONE_HOUR = ONE_MINUTE * 60;\nexport var ONE_DAY = ONE_HOUR * 24;\nexport var ONE_YEAR = ONE_DAY * 365;\nexport var defaultLeveledFormatter = {\n  year: '{yyyy}',\n  month: '{MMM}',\n  day: '{d}',\n  hour: '{HH}:{mm}',\n  minute: '{HH}:{mm}',\n  second: '{HH}:{mm}:{ss}',\n  millisecond: '{hh}:{mm}:{ss} {SSS}',\n  none: '{yyyy}-{MM}-{dd} {hh}:{mm}:{ss} {SSS}'\n};\nvar fullDayFormatter = '{yyyy}-{MM}-{dd}';\nexport var fullLeveledFormatter = {\n  year: '{yyyy}',\n  month: '{yyyy}-{MM}',\n  day: fullDayFormatter,\n  hour: fullDayFormatter + ' ' + defaultLeveledFormatter.hour,\n  minute: fullDayFormatter + ' ' + defaultLeveledFormatter.minute,\n  second: fullDayFormatter + ' ' + defaultLeveledFormatter.second,\n  millisecond: defaultLeveledFormatter.none\n};\nexport var primaryTimeUnits = ['year', 'month', 'day', 'hour', 'minute', 'second', 'millisecond'];\nexport var timeUnits = ['year', 'half-year', 'quarter', 'month', 'week', 'half-week', 'day', 'half-day', 'quarter-day', 'hour', 'minute', 'second', 'millisecond'];\nexport function pad(str, len) {\n  str += '';\n  return '0000'.substr(0, len - str.length) + str;\n}\nexport function getPrimaryTimeUnit(timeUnit) {\n  switch (timeUnit) {\n    case 'half-year':\n    case 'quarter':\n      return 'month';\n\n    case 'week':\n    case 'half-week':\n      return 'day';\n\n    case 'half-day':\n    case 'quarter-day':\n      return 'hour';\n\n    default:\n      return timeUnit;\n  }\n}\nexport function isPrimaryTimeUnit(timeUnit) {\n  return timeUnit === getPrimaryTimeUnit(timeUnit);\n}\nexport function getDefaultFormatPrecisionOfInterval(timeUnit) {\n  switch (timeUnit) {\n    case 'year':\n    case 'month':\n      return 'day';\n\n    case 'millisecond':\n      return 'millisecond';\n\n    default:\n      return 'second';\n  }\n}\nexport function format(time, template, isUTC, lang) {\n  var date = numberUtil.parseDate(time);\n  var y = date[fullYearGetterName(isUTC)]();\n  var M = date[monthGetterName(isUTC)]() + 1;\n  var q = Math.floor((M - 1) / 4) + 1;\n  var d = date[dateGetterName(isUTC)]();\n  var e = date['get' + (isUTC ? 'UTC' : '') + 'Day']();\n  var H = date[hoursGetterName(isUTC)]();\n  var h = (H - 1) % 12 + 1;\n  var m = date[minutesGetterName(isUTC)]();\n  var s = date[secondsGetterName(isUTC)]();\n  var S = date[millisecondsGetterName(isUTC)]();\n  var localeModel = lang instanceof Model ? lang : getLocaleModel(lang || SYSTEM_LANG) || getDefaultLocaleModel();\n  var timeModel = localeModel.getModel('time');\n  var month = timeModel.get('month');\n  var monthAbbr = timeModel.get('monthAbbr');\n  var dayOfWeek = timeModel.get('dayOfWeek');\n  var dayOfWeekAbbr = timeModel.get('dayOfWeekAbbr');\n  return (template || '').replace(/{yyyy}/g, y + '').replace(/{yy}/g, y % 100 + '').replace(/{Q}/g, q + '').replace(/{MMMM}/g, month[M - 1]).replace(/{MMM}/g, monthAbbr[M - 1]).replace(/{MM}/g, pad(M, 2)).replace(/{M}/g, M + '').replace(/{dd}/g, pad(d, 2)).replace(/{d}/g, d + '').replace(/{eeee}/g, dayOfWeek[e]).replace(/{ee}/g, dayOfWeekAbbr[e]).replace(/{e}/g, e + '').replace(/{HH}/g, pad(H, 2)).replace(/{H}/g, H + '').replace(/{hh}/g, pad(h + '', 2)).replace(/{h}/g, h + '').replace(/{mm}/g, pad(m, 2)).replace(/{m}/g, m + '').replace(/{ss}/g, pad(s, 2)).replace(/{s}/g, s + '').replace(/{SSS}/g, pad(S, 3)).replace(/{S}/g, S + '');\n}\nexport function leveledFormat(tick, idx, formatter, lang, isUTC) {\n  var template = null;\n\n  if (typeof formatter === 'string') {\n    template = formatter;\n  } else if (typeof formatter === 'function') {\n    template = formatter(tick.value, idx, {\n      level: tick.level\n    });\n  } else {\n    var defaults = zrUtil.extend({}, defaultLeveledFormatter);\n\n    if (tick.level > 0) {\n      for (var i = 0; i < primaryTimeUnits.length; ++i) {\n        defaults[primaryTimeUnits[i]] = \"{primary|\" + defaults[primaryTimeUnits[i]] + \"}\";\n      }\n    }\n\n    var mergedFormatter = formatter ? formatter.inherit === false ? formatter : zrUtil.defaults(formatter, defaults) : defaults;\n    var unit = getUnitFromValue(tick.value, isUTC);\n\n    if (mergedFormatter[unit]) {\n      template = mergedFormatter[unit];\n    } else if (mergedFormatter.inherit) {\n      var targetId = timeUnits.indexOf(unit);\n\n      for (var i = targetId - 1; i >= 0; --i) {\n        if (mergedFormatter[unit]) {\n          template = mergedFormatter[unit];\n          break;\n        }\n      }\n\n      template = template || defaults.none;\n    }\n\n    if (zrUtil.isArray(template)) {\n      var levelId = tick.level == null ? 0 : tick.level >= 0 ? tick.level : template.length + tick.level;\n      levelId = Math.min(levelId, template.length - 1);\n      template = template[levelId];\n    }\n  }\n\n  return format(new Date(tick.value), template, isUTC, lang);\n}\nexport function getUnitFromValue(value, isUTC) {\n  var date = numberUtil.parseDate(value);\n  var M = date[monthGetterName(isUTC)]() + 1;\n  var d = date[dateGetterName(isUTC)]();\n  var h = date[hoursGetterName(isUTC)]();\n  var m = date[minutesGetterName(isUTC)]();\n  var s = date[secondsGetterName(isUTC)]();\n  var S = date[millisecondsGetterName(isUTC)]();\n  var isSecond = S === 0;\n  var isMinute = isSecond && s === 0;\n  var isHour = isMinute && m === 0;\n  var isDay = isHour && h === 0;\n  var isMonth = isDay && d === 1;\n  var isYear = isMonth && M === 1;\n\n  if (isYear) {\n    return 'year';\n  } else if (isMonth) {\n    return 'month';\n  } else if (isDay) {\n    return 'day';\n  } else if (isHour) {\n    return 'hour';\n  } else if (isMinute) {\n    return 'minute';\n  } else if (isSecond) {\n    return 'second';\n  } else {\n    return 'millisecond';\n  }\n}\nexport function getUnitValue(value, unit, isUTC) {\n  var date = typeof value === 'number' ? numberUtil.parseDate(value) : value;\n  unit = unit || getUnitFromValue(value, isUTC);\n\n  switch (unit) {\n    case 'year':\n      return date[fullYearGetterName(isUTC)]();\n\n    case 'half-year':\n      return date[monthGetterName(isUTC)]() >= 6 ? 1 : 0;\n\n    case 'quarter':\n      return Math.floor((date[monthGetterName(isUTC)]() + 1) / 4);\n\n    case 'month':\n      return date[monthGetterName(isUTC)]();\n\n    case 'day':\n      return date[dateGetterName(isUTC)]();\n\n    case 'half-day':\n      return date[hoursGetterName(isUTC)]() / 24;\n\n    case 'hour':\n      return date[hoursGetterName(isUTC)]();\n\n    case 'minute':\n      return date[minutesGetterName(isUTC)]();\n\n    case 'second':\n      return date[secondsGetterName(isUTC)]();\n\n    case 'millisecond':\n      return date[millisecondsGetterName(isUTC)]();\n  }\n}\nexport function fullYearGetterName(isUTC) {\n  return isUTC ? 'getUTCFullYear' : 'getFullYear';\n}\nexport function monthGetterName(isUTC) {\n  return isUTC ? 'getUTCMonth' : 'getMonth';\n}\nexport function dateGetterName(isUTC) {\n  return isUTC ? 'getUTCDate' : 'getDate';\n}\nexport function hoursGetterName(isUTC) {\n  return isUTC ? 'getUTCHours' : 'getHours';\n}\nexport function minutesGetterName(isUTC) {\n  return isUTC ? 'getUTCMinutes' : 'getMinutes';\n}\nexport function secondsGetterName(isUTC) {\n  return isUTC ? 'getUTCSeconds' : 'getSeconds';\n}\nexport function millisecondsGetterName(isUTC) {\n  return isUTC ? 'getUTCSeconds' : 'getSeconds';\n}\nexport function fullYearSetterName(isUTC) {\n  return isUTC ? 'setUTCFullYear' : 'setFullYear';\n}\nexport function monthSetterName(isUTC) {\n  return isUTC ? 'setUTCMonth' : 'setMonth';\n}\nexport function dateSetterName(isUTC) {\n  return isUTC ? 'setUTCDate' : 'setDate';\n}\nexport function hoursSetterName(isUTC) {\n  return isUTC ? 'setUTCHours' : 'setHours';\n}\nexport function minutesSetterName(isUTC) {\n  return isUTC ? 'setUTCMinutes' : 'setMinutes';\n}\nexport function secondsSetterName(isUTC) {\n  return isUTC ? 'setUTCSeconds' : 'setSeconds';\n}\nexport function millisecondsSetterName(isUTC) {\n  return isUTC ? 'setUTCSeconds' : 'setSeconds';\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { Text } from '../util/graphic';\nimport { deprecateLog } from '../util/log';\nexport function getTextRect(text, font, align, verticalAlign, padding, rich, truncate, lineHeight) {\n  deprecateLog('getTextRect is deprecated.');\n  var textEl = new Text({\n    style: {\n      text: text,\n      font: font,\n      align: align,\n      verticalAlign: verticalAlign,\n      padding: padding,\n      rich: rich,\n      overflow: truncate ? 'truncate' : null,\n      lineHeight: lineHeight\n    }\n  });\n  return textEl.getBoundingRect();\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parseDate, isNumeric, numericToNumber } from './number';\nimport { format as timeFormat, pad } from './time';\nimport { deprecateReplaceLog } from './log';\nexport function addCommas(x) {\n  if (!isNumeric(x)) {\n    return zrUtil.isString(x) ? x : '-';\n  }\n\n  var parts = (x + '').split('.');\n  return parts[0].replace(/(\\d{1,3})(?=(?:\\d{3})+(?!\\d))/g, '$1,') + (parts.length > 1 ? '.' + parts[1] : '');\n}\nexport function toCamelCase(str, upperCaseFirst) {\n  str = (str || '').toLowerCase().replace(/-(.)/g, function (match, group1) {\n    return group1.toUpperCase();\n  });\n\n  if (upperCaseFirst && str) {\n    str = str.charAt(0).toUpperCase() + str.slice(1);\n  }\n\n  return str;\n}\nexport var normalizeCssArray = zrUtil.normalizeCssArray;\nvar replaceReg = /([&<>\"'])/g;\nvar replaceMap = {\n  '&': '&amp;',\n  '<': '&lt;',\n  '>': '&gt;',\n  '\"': '&quot;',\n  '\\'': '&#39;'\n};\nexport function encodeHTML(source) {\n  return source == null ? '' : (source + '').replace(replaceReg, function (str, c) {\n    return replaceMap[c];\n  });\n}\nexport function makeValueReadable(value, valueType, useUTC) {\n  var USER_READABLE_DEFUALT_TIME_PATTERN = 'yyyy-MM-dd hh:mm:ss';\n\n  function stringToUserReadable(str) {\n    return str && zrUtil.trim(str) ? str : '-';\n  }\n\n  function isNumberUserReadable(num) {\n    return !!(num != null && !isNaN(num) && isFinite(num));\n  }\n\n  var isTypeTime = valueType === 'time';\n  var isValueDate = value instanceof Date;\n\n  if (isTypeTime || isValueDate) {\n    var date = isTypeTime ? parseDate(value) : value;\n\n    if (!isNaN(+date)) {\n      return timeFormat(date, USER_READABLE_DEFUALT_TIME_PATTERN, useUTC);\n    } else if (isValueDate) {\n      return '-';\n    }\n  }\n\n  if (valueType === 'ordinal') {\n    return zrUtil.isStringSafe(value) ? stringToUserReadable(value) : zrUtil.isNumber(value) ? isNumberUserReadable(value) ? value + '' : '-' : '-';\n  }\n\n  var numericResult = numericToNumber(value);\n  return isNumberUserReadable(numericResult) ? addCommas(numericResult) : zrUtil.isStringSafe(value) ? stringToUserReadable(value) : '-';\n}\nvar TPL_VAR_ALIAS = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];\n\nvar wrapVar = function (varName, seriesIdx) {\n  return '{' + varName + (seriesIdx == null ? '' : seriesIdx) + '}';\n};\n\nexport function formatTpl(tpl, paramsList, encode) {\n  if (!zrUtil.isArray(paramsList)) {\n    paramsList = [paramsList];\n  }\n\n  var seriesLen = paramsList.length;\n\n  if (!seriesLen) {\n    return '';\n  }\n\n  var $vars = paramsList[0].$vars || [];\n\n  for (var i = 0; i < $vars.length; i++) {\n    var alias = TPL_VAR_ALIAS[i];\n    tpl = tpl.replace(wrapVar(alias), wrapVar(alias, 0));\n  }\n\n  for (var seriesIdx = 0; seriesIdx < seriesLen; seriesIdx++) {\n    for (var k = 0; k < $vars.length; k++) {\n      var val = paramsList[seriesIdx][$vars[k]];\n      tpl = tpl.replace(wrapVar(TPL_VAR_ALIAS[k], seriesIdx), encode ? encodeHTML(val) : val);\n    }\n  }\n\n  return tpl;\n}\nexport function formatTplSimple(tpl, param, encode) {\n  zrUtil.each(param, function (value, key) {\n    tpl = tpl.replace('{' + key + '}', encode ? encodeHTML(value) : value);\n  });\n  return tpl;\n}\nexport function getTooltipMarker(inOpt, extraCssText) {\n  var opt = zrUtil.isString(inOpt) ? {\n    color: inOpt,\n    extraCssText: extraCssText\n  } : inOpt || {};\n  var color = opt.color;\n  var type = opt.type;\n  extraCssText = opt.extraCssText;\n  var renderMode = opt.renderMode || 'html';\n\n  if (!color) {\n    return '';\n  }\n\n  if (renderMode === 'html') {\n    return type === 'subItem' ? '<span style=\"display:inline-block;vertical-align:middle;margin-right:8px;margin-left:3px;' + 'border-radius:4px;width:4px;height:4px;background-color:' + encodeHTML(color) + ';' + (extraCssText || '') + '\"></span>' : '<span style=\"display:inline-block;margin-right:4px;' + 'border-radius:10px;width:10px;height:10px;background-color:' + encodeHTML(color) + ';' + (extraCssText || '') + '\"></span>';\n  } else {\n    var markerId = opt.markerId || 'markerX';\n    return {\n      renderMode: renderMode,\n      content: '{' + markerId + '|}  ',\n      style: type === 'subItem' ? {\n        width: 4,\n        height: 4,\n        borderRadius: 2,\n        backgroundColor: color\n      } : {\n        width: 10,\n        height: 10,\n        borderRadius: 5,\n        backgroundColor: color\n      }\n    };\n  }\n}\nexport function formatTime(tpl, value, isUTC) {\n  if (process.env.NODE_ENV !== 'production') {\n    deprecateReplaceLog('echarts.format.formatTime', 'echarts.time.format');\n  }\n\n  if (tpl === 'week' || tpl === 'month' || tpl === 'quarter' || tpl === 'half-year' || tpl === 'year') {\n    tpl = 'MM-dd\\nyyyy';\n  }\n\n  var date = parseDate(value);\n  var utc = isUTC ? 'UTC' : '';\n  var y = date['get' + utc + 'FullYear']();\n  var M = date['get' + utc + 'Month']() + 1;\n  var d = date['get' + utc + 'Date']();\n  var h = date['get' + utc + 'Hours']();\n  var m = date['get' + utc + 'Minutes']();\n  var s = date['get' + utc + 'Seconds']();\n  var S = date['get' + utc + 'Milliseconds']();\n  tpl = tpl.replace('MM', pad(M, 2)).replace('M', M).replace('yyyy', y).replace('yy', y % 100 + '').replace('dd', pad(d, 2)).replace('d', d).replace('hh', pad(h, 2)).replace('h', h).replace('mm', pad(m, 2)).replace('m', m).replace('ss', pad(s, 2)).replace('s', s).replace('SSS', pad(S, 3));\n  return tpl;\n}\nexport function capitalFirst(str) {\n  return str ? str.charAt(0).toUpperCase() + str.substr(1) : str;\n}\nexport function convertToColorString(color, defaultColor) {\n  defaultColor = defaultColor || 'transparent';\n  return zrUtil.isString(color) ? color : zrUtil.isObject(color) ? color.colorStops && (color.colorStops[0] || {}).color || defaultColor : defaultColor;\n}\nexport { truncateText } from 'zrender/lib/graphic/helper/parseText';\nexport function windowOpen(link, target) {\n  if (target === '_blank' || target === 'blank') {\n    var blank = window.open();\n    blank.opener = null;\n    blank.location.href = link;\n  } else {\n    window.open(link, target);\n  }\n}\nexport { getTextRect } from '../legacy/getTextRect';","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { parsePercent } from './number';\nimport * as formatUtil from './format';\nvar each = zrUtil.each;\nexport var LOCATION_PARAMS = ['left', 'right', 'top', 'bottom', 'width', 'height'];\nexport var HV_NAMES = [['width', 'left', 'right'], ['height', 'top', 'bottom']];\n\nfunction boxLayout(orient, group, gap, maxWidth, maxHeight) {\n  var x = 0;\n  var y = 0;\n\n  if (maxWidth == null) {\n    maxWidth = Infinity;\n  }\n\n  if (maxHeight == null) {\n    maxHeight = Infinity;\n  }\n\n  var currentLineMaxSize = 0;\n  group.eachChild(function (child, idx) {\n    var rect = child.getBoundingRect();\n    var nextChild = group.childAt(idx + 1);\n    var nextChildRect = nextChild && nextChild.getBoundingRect();\n    var nextX;\n    var nextY;\n\n    if (orient === 'horizontal') {\n      var moveX = rect.width + (nextChildRect ? -nextChildRect.x + rect.x : 0);\n      nextX = x + moveX;\n\n      if (nextX > maxWidth || child.newline) {\n        x = 0;\n        nextX = moveX;\n        y += currentLineMaxSize + gap;\n        currentLineMaxSize = rect.height;\n      } else {\n        currentLineMaxSize = Math.max(currentLineMaxSize, rect.height);\n      }\n    } else {\n      var moveY = rect.height + (nextChildRect ? -nextChildRect.y + rect.y : 0);\n      nextY = y + moveY;\n\n      if (nextY > maxHeight || child.newline) {\n        x += currentLineMaxSize + gap;\n        y = 0;\n        nextY = moveY;\n        currentLineMaxSize = rect.width;\n      } else {\n        currentLineMaxSize = Math.max(currentLineMaxSize, rect.width);\n      }\n    }\n\n    if (child.newline) {\n      return;\n    }\n\n    child.x = x;\n    child.y = y;\n    child.markRedraw();\n    orient === 'horizontal' ? x = nextX + gap : y = nextY + gap;\n  });\n}\n\nexport var box = boxLayout;\nexport var vbox = zrUtil.curry(boxLayout, 'vertical');\nexport var hbox = zrUtil.curry(boxLayout, 'horizontal');\nexport function getAvailableSize(positionInfo, containerRect, margin) {\n  var containerWidth = containerRect.width;\n  var containerHeight = containerRect.height;\n  var x = parsePercent(positionInfo.left, containerWidth);\n  var y = parsePercent(positionInfo.top, containerHeight);\n  var x2 = parsePercent(positionInfo.right, containerWidth);\n  var y2 = parsePercent(positionInfo.bottom, containerHeight);\n  (isNaN(x) || isNaN(parseFloat(positionInfo.left))) && (x = 0);\n  (isNaN(x2) || isNaN(parseFloat(positionInfo.right))) && (x2 = containerWidth);\n  (isNaN(y) || isNaN(parseFloat(positionInfo.top))) && (y = 0);\n  (isNaN(y2) || isNaN(parseFloat(positionInfo.bottom))) && (y2 = containerHeight);\n  margin = formatUtil.normalizeCssArray(margin || 0);\n  return {\n    width: Math.max(x2 - x - margin[1] - margin[3], 0),\n    height: Math.max(y2 - y - margin[0] - margin[2], 0)\n  };\n}\nexport function getLayoutRect(positionInfo, containerRect, margin) {\n  margin = formatUtil.normalizeCssArray(margin || 0);\n  var containerWidth = containerRect.width;\n  var containerHeight = containerRect.height;\n  var left = parsePercent(positionInfo.left, containerWidth);\n  var top = parsePercent(positionInfo.top, containerHeight);\n  var right = parsePercent(positionInfo.right, containerWidth);\n  var bottom = parsePercent(positionInfo.bottom, containerHeight);\n  var width = parsePercent(positionInfo.width, containerWidth);\n  var height = parsePercent(positionInfo.height, containerHeight);\n  var verticalMargin = margin[2] + margin[0];\n  var horizontalMargin = margin[1] + margin[3];\n  var aspect = positionInfo.aspect;\n\n  if (isNaN(width)) {\n    width = containerWidth - right - horizontalMargin - left;\n  }\n\n  if (isNaN(height)) {\n    height = containerHeight - bottom - verticalMargin - top;\n  }\n\n  if (aspect != null) {\n    if (isNaN(width) && isNaN(height)) {\n      if (aspect > containerWidth / containerHeight) {\n        width = containerWidth * 0.8;\n      } else {\n        height = containerHeight * 0.8;\n      }\n    }\n\n    if (isNaN(width)) {\n      width = aspect * height;\n    }\n\n    if (isNaN(height)) {\n      height = width / aspect;\n    }\n  }\n\n  if (isNaN(left)) {\n    left = containerWidth - right - width - horizontalMargin;\n  }\n\n  if (isNaN(top)) {\n    top = containerHeight - bottom - height - verticalMargin;\n  }\n\n  switch (positionInfo.left || positionInfo.right) {\n    case 'center':\n      left = containerWidth / 2 - width / 2 - margin[3];\n      break;\n\n    case 'right':\n      left = containerWidth - width - horizontalMargin;\n      break;\n  }\n\n  switch (positionInfo.top || positionInfo.bottom) {\n    case 'middle':\n    case 'center':\n      top = containerHeight / 2 - height / 2 - margin[0];\n      break;\n\n    case 'bottom':\n      top = containerHeight - height - verticalMargin;\n      break;\n  }\n\n  left = left || 0;\n  top = top || 0;\n\n  if (isNaN(width)) {\n    width = containerWidth - horizontalMargin - left - (right || 0);\n  }\n\n  if (isNaN(height)) {\n    height = containerHeight - verticalMargin - top - (bottom || 0);\n  }\n\n  var rect = new BoundingRect(left + margin[3], top + margin[0], width, height);\n  rect.margin = margin;\n  return rect;\n}\nexport function positionElement(el, positionInfo, containerRect, margin, opt) {\n  var h = !opt || !opt.hv || opt.hv[0];\n  var v = !opt || !opt.hv || opt.hv[1];\n  var boundingMode = opt && opt.boundingMode || 'all';\n\n  if (!h && !v) {\n    return;\n  }\n\n  var rect;\n\n  if (boundingMode === 'raw') {\n    rect = el.type === 'group' ? new BoundingRect(0, 0, +positionInfo.width || 0, +positionInfo.height || 0) : el.getBoundingRect();\n  } else {\n    rect = el.getBoundingRect();\n\n    if (el.needLocalTransform()) {\n      var transform = el.getLocalTransform();\n      rect = rect.clone();\n      rect.applyTransform(transform);\n    }\n  }\n\n  var layoutRect = getLayoutRect(zrUtil.defaults({\n    width: rect.width,\n    height: rect.height\n  }, positionInfo), containerRect, margin);\n  var dx = h ? layoutRect.x - rect.x : 0;\n  var dy = v ? layoutRect.y - rect.y : 0;\n\n  if (boundingMode === 'raw') {\n    el.x = dx;\n    el.y = dy;\n  } else {\n    el.x += dx;\n    el.y += dy;\n  }\n\n  el.markRedraw();\n}\nexport function sizeCalculable(option, hvIdx) {\n  return option[HV_NAMES[hvIdx][0]] != null || option[HV_NAMES[hvIdx][1]] != null && option[HV_NAMES[hvIdx][2]] != null;\n}\nexport function fetchLayoutMode(ins) {\n  var layoutMode = ins.layoutMode || ins.constructor.layoutMode;\n  return zrUtil.isObject(layoutMode) ? layoutMode : layoutMode ? {\n    type: layoutMode\n  } : null;\n}\nexport function mergeLayoutParam(targetOption, newOption, opt) {\n  var ignoreSize = opt && opt.ignoreSize;\n  !zrUtil.isArray(ignoreSize) && (ignoreSize = [ignoreSize, ignoreSize]);\n  var hResult = merge(HV_NAMES[0], 0);\n  var vResult = merge(HV_NAMES[1], 1);\n  copy(HV_NAMES[0], targetOption, hResult);\n  copy(HV_NAMES[1], targetOption, vResult);\n\n  function merge(names, hvIdx) {\n    var newParams = {};\n    var newValueCount = 0;\n    var merged = {};\n    var mergedValueCount = 0;\n    var enoughParamNumber = 2;\n    each(names, function (name) {\n      merged[name] = targetOption[name];\n    });\n    each(names, function (name) {\n      hasProp(newOption, name) && (newParams[name] = merged[name] = newOption[name]);\n      hasValue(newParams, name) && newValueCount++;\n      hasValue(merged, name) && mergedValueCount++;\n    });\n\n    if (ignoreSize[hvIdx]) {\n      if (hasValue(newOption, names[1])) {\n        merged[names[2]] = null;\n      } else if (hasValue(newOption, names[2])) {\n        merged[names[1]] = null;\n      }\n\n      return merged;\n    }\n\n    if (mergedValueCount === enoughParamNumber || !newValueCount) {\n      return merged;\n    } else if (newValueCount >= enoughParamNumber) {\n      return newParams;\n    } else {\n      for (var i = 0; i < names.length; i++) {\n        var name_1 = names[i];\n\n        if (!hasProp(newParams, name_1) && hasProp(targetOption, name_1)) {\n          newParams[name_1] = targetOption[name_1];\n          break;\n        }\n      }\n\n      return newParams;\n    }\n  }\n\n  function hasProp(obj, name) {\n    return obj.hasOwnProperty(name);\n  }\n\n  function hasValue(obj, name) {\n    return obj[name] != null && obj[name] !== 'auto';\n  }\n\n  function copy(names, target, source) {\n    each(names, function (name) {\n      target[name] = source[name];\n    });\n  }\n}\nexport function getLayoutParams(source) {\n  return copyLayoutParams({}, source);\n}\nexport function copyLayoutParams(target, source) {\n  source && target && each(LOCATION_PARAMS, function (name) {\n    source.hasOwnProperty(name) && (target[name] = source[name]);\n  });\n  return target;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Model from './Model';\nimport * as componentUtil from '../util/component';\nimport { enableClassManagement, parseClassType, isExtendedClass, mountExtend } from '../util/clazz';\nimport { makeInner, queryReferringComponents } from '../util/model';\nimport * as layout from '../util/layout';\nvar inner = makeInner();\n\nvar ComponentModel = function (_super) {\n  __extends(ComponentModel, _super);\n\n  function ComponentModel(option, parentModel, ecModel) {\n    var _this = _super.call(this, option, parentModel, ecModel) || this;\n\n    _this.uid = componentUtil.getUID('ec_cpt_model');\n    return _this;\n  }\n\n  ComponentModel.prototype.init = function (option, parentModel, ecModel) {\n    this.mergeDefaultAndTheme(option, ecModel);\n  };\n\n  ComponentModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n    var layoutMode = layout.fetchLayoutMode(this);\n    var inputPositionParams = layoutMode ? layout.getLayoutParams(option) : {};\n    var themeModel = ecModel.getTheme();\n    zrUtil.merge(option, themeModel.get(this.mainType));\n    zrUtil.merge(option, this.getDefaultOption());\n\n    if (layoutMode) {\n      layout.mergeLayoutParam(option, inputPositionParams, layoutMode);\n    }\n  };\n\n  ComponentModel.prototype.mergeOption = function (option, ecModel) {\n    zrUtil.merge(this.option, option, true);\n    var layoutMode = layout.fetchLayoutMode(this);\n\n    if (layoutMode) {\n      layout.mergeLayoutParam(this.option, option, layoutMode);\n    }\n  };\n\n  ComponentModel.prototype.optionUpdated = function (newCptOption, isInit) {};\n\n  ComponentModel.prototype.getDefaultOption = function () {\n    var ctor = this.constructor;\n\n    if (!isExtendedClass(ctor)) {\n      return ctor.defaultOption;\n    }\n\n    var fields = inner(this);\n\n    if (!fields.defaultOption) {\n      var optList = [];\n      var clz = ctor;\n\n      while (clz) {\n        var opt = clz.prototype.defaultOption;\n        opt && optList.push(opt);\n        clz = clz.superClass;\n      }\n\n      var defaultOption = {};\n\n      for (var i = optList.length - 1; i >= 0; i--) {\n        defaultOption = zrUtil.merge(defaultOption, optList[i], true);\n      }\n\n      fields.defaultOption = defaultOption;\n    }\n\n    return fields.defaultOption;\n  };\n\n  ComponentModel.prototype.getReferringComponents = function (mainType, opt) {\n    var indexKey = mainType + 'Index';\n    var idKey = mainType + 'Id';\n    return queryReferringComponents(this.ecModel, mainType, {\n      index: this.get(indexKey, true),\n      id: this.get(idKey, true)\n    }, opt);\n  };\n\n  ComponentModel.prototype.getBoxLayoutParams = function () {\n    var boxLayoutModel = this;\n    return {\n      left: boxLayoutModel.get('left'),\n      top: boxLayoutModel.get('top'),\n      right: boxLayoutModel.get('right'),\n      bottom: boxLayoutModel.get('bottom'),\n      width: boxLayoutModel.get('width'),\n      height: boxLayoutModel.get('height')\n    };\n  };\n\n  ComponentModel.protoInitialize = function () {\n    var proto = ComponentModel.prototype;\n    proto.type = 'component';\n    proto.id = '';\n    proto.name = '';\n    proto.mainType = '';\n    proto.subType = '';\n    proto.componentIndex = 0;\n  }();\n\n  return ComponentModel;\n}(Model);\n\nmountExtend(ComponentModel, Model);\nenableClassManagement(ComponentModel);\ncomponentUtil.enableSubTypeDefaulter(ComponentModel);\ncomponentUtil.enableTopologicalTravel(ComponentModel, getDependencies);\n\nfunction getDependencies(componentType) {\n  var deps = [];\n  zrUtil.each(ComponentModel.getClassesByMainType(componentType), function (clz) {\n    deps = deps.concat(clz.dependencies || clz.prototype.dependencies || []);\n  });\n  deps = zrUtil.map(deps, function (type) {\n    return parseClassType(type).main;\n  });\n\n  if (componentType !== 'dataset' && zrUtil.indexOf(deps, 'dataset') <= 0) {\n    deps.unshift('dataset');\n  }\n\n  return deps;\n}\n\nexport default ComponentModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar platform = '';\n\nif (typeof navigator !== 'undefined') {\n  platform = navigator.platform || '';\n}\n\nvar decalColor = 'rgba(0, 0, 0, 0.2)';\nexport default {\n  darkMode: 'auto',\n  color: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],\n  gradientColor: ['#f6efa6', '#d88273', '#bf444c'],\n  aria: {\n    decal: {\n      decals: [{\n        color: decalColor,\n        dashArrayX: [1, 0],\n        dashArrayY: [2, 5],\n        symbolSize: 1,\n        rotation: Math.PI / 6\n      }, {\n        color: decalColor,\n        symbol: 'circle',\n        dashArrayX: [[8, 8], [0, 8, 8, 0]],\n        dashArrayY: [6, 0],\n        symbolSize: 0.8\n      }, {\n        color: decalColor,\n        dashArrayX: [1, 0],\n        dashArrayY: [4, 3],\n        rotation: -Math.PI / 4\n      }, {\n        color: decalColor,\n        dashArrayX: [[6, 6], [0, 6, 6, 0]],\n        dashArrayY: [6, 0]\n      }, {\n        color: decalColor,\n        dashArrayX: [[1, 0], [1, 6]],\n        dashArrayY: [1, 0, 6, 0],\n        rotation: Math.PI / 4\n      }, {\n        color: decalColor,\n        symbol: 'triangle',\n        dashArrayX: [[9, 9], [0, 9, 9, 0]],\n        dashArrayY: [7, 2],\n        symbolSize: 0.75\n      }]\n    }\n  },\n  textStyle: {\n    fontFamily: platform.match(/^Win/) ? 'Microsoft YaHei' : 'sans-serif',\n    fontSize: 12,\n    fontStyle: 'normal',\n    fontWeight: 'normal'\n  },\n  blendMode: null,\n  stateAnimation: {\n    duration: 300,\n    easing: 'cubicOut'\n  },\n  animation: 'auto',\n  animationDuration: 1000,\n  animationDurationUpdate: 500,\n  animationEasing: 'cubicInOut',\n  animationEasingUpdate: 'cubicInOut',\n  animationThreshold: 2000,\n  progressiveThreshold: 3000,\n  progressive: 400,\n  hoverLayerThreshold: 3000,\n  useUTC: false\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap } from 'zrender/lib/core/util';\n;\n;\n;\nexport var VISUAL_DIMENSIONS = createHashMap(['tooltip', 'label', 'itemName', 'itemId', 'seriesName']);\nexport var SOURCE_FORMAT_ORIGINAL = 'original';\nexport var SOURCE_FORMAT_ARRAY_ROWS = 'arrayRows';\nexport var SOURCE_FORMAT_OBJECT_ROWS = 'objectRows';\nexport var SOURCE_FORMAT_KEYED_COLUMNS = 'keyedColumns';\nexport var SOURCE_FORMAT_TYPED_ARRAY = 'typedArray';\nexport var SOURCE_FORMAT_UNKNOWN = 'unknown';\nexport var SERIES_LAYOUT_BY_COLUMN = 'column';\nexport var SERIES_LAYOUT_BY_ROW = 'row';\n;\n;\n;\n;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner, getDataItemValue, queryReferringComponents, SINGLE_REFERRING } from '../../util/model';\nimport { createHashMap, each, isArray, isString, isObject, isTypedArray } from 'zrender/lib/core/util';\nimport { SOURCE_FORMAT_ORIGINAL, SOURCE_FORMAT_ARRAY_ROWS, SOURCE_FORMAT_OBJECT_ROWS, SERIES_LAYOUT_BY_ROW, SOURCE_FORMAT_KEYED_COLUMNS } from '../../util/types';\nexport var BE_ORDINAL = {\n  Must: 1,\n  Might: 2,\n  Not: 3\n};\nvar innerGlobalModel = makeInner();\nexport function resetSourceDefaulter(ecModel) {\n  innerGlobalModel(ecModel).datasetMap = createHashMap();\n}\nexport function makeSeriesEncodeForAxisCoordSys(coordDimensions, seriesModel, source) {\n  var encode = {};\n  var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\n\n  if (!datasetModel || !coordDimensions) {\n    return encode;\n  }\n\n  var encodeItemName = [];\n  var encodeSeriesName = [];\n  var ecModel = seriesModel.ecModel;\n  var datasetMap = innerGlobalModel(ecModel).datasetMap;\n  var key = datasetModel.uid + '_' + source.seriesLayoutBy;\n  var baseCategoryDimIndex;\n  var categoryWayValueDimStart;\n  coordDimensions = coordDimensions.slice();\n  each(coordDimensions, function (coordDimInfoLoose, coordDimIdx) {\n    var coordDimInfo = isObject(coordDimInfoLoose) ? coordDimInfoLoose : coordDimensions[coordDimIdx] = {\n      name: coordDimInfoLoose\n    };\n\n    if (coordDimInfo.type === 'ordinal' && baseCategoryDimIndex == null) {\n      baseCategoryDimIndex = coordDimIdx;\n      categoryWayValueDimStart = getDataDimCountOnCoordDim(coordDimInfo);\n    }\n\n    encode[coordDimInfo.name] = [];\n  });\n  var datasetRecord = datasetMap.get(key) || datasetMap.set(key, {\n    categoryWayDim: categoryWayValueDimStart,\n    valueWayDim: 0\n  });\n  each(coordDimensions, function (coordDimInfo, coordDimIdx) {\n    var coordDimName = coordDimInfo.name;\n    var count = getDataDimCountOnCoordDim(coordDimInfo);\n\n    if (baseCategoryDimIndex == null) {\n      var start = datasetRecord.valueWayDim;\n      pushDim(encode[coordDimName], start, count);\n      pushDim(encodeSeriesName, start, count);\n      datasetRecord.valueWayDim += count;\n    } else if (baseCategoryDimIndex === coordDimIdx) {\n      pushDim(encode[coordDimName], 0, count);\n      pushDim(encodeItemName, 0, count);\n    } else {\n      var start = datasetRecord.categoryWayDim;\n      pushDim(encode[coordDimName], start, count);\n      pushDim(encodeSeriesName, start, count);\n      datasetRecord.categoryWayDim += count;\n    }\n  });\n\n  function pushDim(dimIdxArr, idxFrom, idxCount) {\n    for (var i = 0; i < idxCount; i++) {\n      dimIdxArr.push(idxFrom + i);\n    }\n  }\n\n  function getDataDimCountOnCoordDim(coordDimInfo) {\n    var dimsDef = coordDimInfo.dimsDef;\n    return dimsDef ? dimsDef.length : 1;\n  }\n\n  encodeItemName.length && (encode.itemName = encodeItemName);\n  encodeSeriesName.length && (encode.seriesName = encodeSeriesName);\n  return encode;\n}\nexport function makeSeriesEncodeForNameBased(seriesModel, source, dimCount) {\n  var encode = {};\n  var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\n\n  if (!datasetModel) {\n    return encode;\n  }\n\n  var sourceFormat = source.sourceFormat;\n  var dimensionsDefine = source.dimensionsDefine;\n  var potentialNameDimIndex;\n\n  if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS || sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n    each(dimensionsDefine, function (dim, idx) {\n      if ((isObject(dim) ? dim.name : dim) === 'name') {\n        potentialNameDimIndex = idx;\n      }\n    });\n  }\n\n  var idxResult = function () {\n    var idxRes0 = {};\n    var idxRes1 = {};\n    var guessRecords = [];\n\n    for (var i = 0, len = Math.min(5, dimCount); i < len; i++) {\n      var guessResult = doGuessOrdinal(source.data, sourceFormat, source.seriesLayoutBy, dimensionsDefine, source.startIndex, i);\n      guessRecords.push(guessResult);\n      var isPureNumber = guessResult === BE_ORDINAL.Not;\n\n      if (isPureNumber && idxRes0.v == null && i !== potentialNameDimIndex) {\n        idxRes0.v = i;\n      }\n\n      if (idxRes0.n == null || idxRes0.n === idxRes0.v || !isPureNumber && guessRecords[idxRes0.n] === BE_ORDINAL.Not) {\n        idxRes0.n = i;\n      }\n\n      if (fulfilled(idxRes0) && guessRecords[idxRes0.n] !== BE_ORDINAL.Not) {\n        return idxRes0;\n      }\n\n      if (!isPureNumber) {\n        if (guessResult === BE_ORDINAL.Might && idxRes1.v == null && i !== potentialNameDimIndex) {\n          idxRes1.v = i;\n        }\n\n        if (idxRes1.n == null || idxRes1.n === idxRes1.v) {\n          idxRes1.n = i;\n        }\n      }\n    }\n\n    function fulfilled(idxResult) {\n      return idxResult.v != null && idxResult.n != null;\n    }\n\n    return fulfilled(idxRes0) ? idxRes0 : fulfilled(idxRes1) ? idxRes1 : null;\n  }();\n\n  if (idxResult) {\n    encode.value = [idxResult.v];\n    var nameDimIndex = potentialNameDimIndex != null ? potentialNameDimIndex : idxResult.n;\n    encode.itemName = [nameDimIndex];\n    encode.seriesName = [nameDimIndex];\n  }\n\n  return encode;\n}\nexport function querySeriesUpstreamDatasetModel(seriesModel) {\n  var thisData = seriesModel.get('data', true);\n\n  if (!thisData) {\n    return queryReferringComponents(seriesModel.ecModel, 'dataset', {\n      index: seriesModel.get('datasetIndex', true),\n      id: seriesModel.get('datasetId', true)\n    }, SINGLE_REFERRING).models[0];\n  }\n}\nexport function queryDatasetUpstreamDatasetModels(datasetModel) {\n  if (!datasetModel.get('transform', true) && !datasetModel.get('fromTransformResult', true)) {\n    return [];\n  }\n\n  return queryReferringComponents(datasetModel.ecModel, 'dataset', {\n    index: datasetModel.get('fromDatasetIndex', true),\n    id: datasetModel.get('fromDatasetId', true)\n  }, SINGLE_REFERRING).models;\n}\nexport function guessOrdinal(source, dimIndex) {\n  return doGuessOrdinal(source.data, source.sourceFormat, source.seriesLayoutBy, source.dimensionsDefine, source.startIndex, dimIndex);\n}\n\nfunction doGuessOrdinal(data, sourceFormat, seriesLayoutBy, dimensionsDefine, startIndex, dimIndex) {\n  var result;\n  var maxLoop = 5;\n\n  if (isTypedArray(data)) {\n    return BE_ORDINAL.Not;\n  }\n\n  var dimName;\n  var dimType;\n\n  if (dimensionsDefine) {\n    var dimDefItem = dimensionsDefine[dimIndex];\n\n    if (isObject(dimDefItem)) {\n      dimName = dimDefItem.name;\n      dimType = dimDefItem.type;\n    } else if (isString(dimDefItem)) {\n      dimName = dimDefItem;\n    }\n  }\n\n  if (dimType != null) {\n    return dimType === 'ordinal' ? BE_ORDINAL.Must : BE_ORDINAL.Not;\n  }\n\n  if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n    var dataArrayRows = data;\n\n    if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\n      var sample = dataArrayRows[dimIndex];\n\n      for (var i = 0; i < (sample || []).length && i < maxLoop; i++) {\n        if ((result = detectValue(sample[startIndex + i])) != null) {\n          return result;\n        }\n      }\n    } else {\n      for (var i = 0; i < dataArrayRows.length && i < maxLoop; i++) {\n        var row = dataArrayRows[startIndex + i];\n\n        if (row && (result = detectValue(row[dimIndex])) != null) {\n          return result;\n        }\n      }\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n    var dataObjectRows = data;\n\n    if (!dimName) {\n      return BE_ORDINAL.Not;\n    }\n\n    for (var i = 0; i < dataObjectRows.length && i < maxLoop; i++) {\n      var item = dataObjectRows[i];\n\n      if (item && (result = detectValue(item[dimName])) != null) {\n        return result;\n      }\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n    var dataKeyedColumns = data;\n\n    if (!dimName) {\n      return BE_ORDINAL.Not;\n    }\n\n    var sample = dataKeyedColumns[dimName];\n\n    if (!sample || isTypedArray(sample)) {\n      return BE_ORDINAL.Not;\n    }\n\n    for (var i = 0; i < sample.length && i < maxLoop; i++) {\n      if ((result = detectValue(sample[i])) != null) {\n        return result;\n      }\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n    var dataOriginal = data;\n\n    for (var i = 0; i < dataOriginal.length && i < maxLoop; i++) {\n      var item = dataOriginal[i];\n      var val = getDataItemValue(item);\n\n      if (!isArray(val)) {\n        return BE_ORDINAL.Not;\n      }\n\n      if ((result = detectValue(val[dimIndex])) != null) {\n        return result;\n      }\n    }\n  }\n\n  function detectValue(val) {\n    var beStr = isString(val);\n\n    if (val != null && isFinite(val) && val !== '') {\n      return beStr ? BE_ORDINAL.Might : BE_ORDINAL.Not;\n    } else if (beStr && val !== '-') {\n      return BE_ORDINAL.Must;\n    }\n  }\n\n  return BE_ORDINAL.Not;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, assert } from 'zrender/lib/core/util';\nimport { isComponentIdInternal } from '../util/model';\nvar internalOptionCreatorMap = createHashMap();\nexport function registerInternalOptionCreator(mainType, creator) {\n  assert(internalOptionCreatorMap.get(mainType) == null && creator);\n  internalOptionCreatorMap.set(mainType, creator);\n}\nexport function concatInternalOptions(ecModel, mainType, newCmptOptionList) {\n  var internalOptionCreator = internalOptionCreatorMap.get(mainType);\n\n  if (!internalOptionCreator) {\n    return newCmptOptionList;\n  }\n\n  var internalOptions = internalOptionCreator(ecModel);\n\n  if (!internalOptions) {\n    return newCmptOptionList;\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    for (var i = 0; i < internalOptions.length; i++) {\n      assert(isComponentIdInternal(internalOptions[i]));\n    }\n  }\n\n  return newCmptOptionList.concat(internalOptions);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner, normalizeToArray } from '../../util/model';\nvar innerColor = makeInner();\nvar innerDecal = makeInner();\n\nvar PaletteMixin = function () {\n  function PaletteMixin() {}\n\n  PaletteMixin.prototype.getColorFromPalette = function (name, scope, requestNum) {\n    var defaultPalette = normalizeToArray(this.get('color', true));\n    var layeredPalette = this.get('colorLayer', true);\n    return getFromPalette(this, innerColor, defaultPalette, layeredPalette, name, scope, requestNum);\n  };\n\n  PaletteMixin.prototype.clearColorPalette = function () {\n    clearPalette(this, innerColor);\n  };\n\n  return PaletteMixin;\n}();\n\nexport function getDecalFromPalette(ecModel, name, scope, requestNum) {\n  var defaultDecals = normalizeToArray(ecModel.get(['aria', 'decal', 'decals']));\n  return getFromPalette(ecModel, innerDecal, defaultDecals, null, name, scope, requestNum);\n}\n\nfunction getNearestPalette(palettes, requestColorNum) {\n  var paletteNum = palettes.length;\n\n  for (var i = 0; i < paletteNum; i++) {\n    if (palettes[i].length > requestColorNum) {\n      return palettes[i];\n    }\n  }\n\n  return palettes[paletteNum - 1];\n}\n\nfunction getFromPalette(that, inner, defaultPalette, layeredPalette, name, scope, requestNum) {\n  scope = scope || that;\n  var scopeFields = inner(scope);\n  var paletteIdx = scopeFields.paletteIdx || 0;\n  var paletteNameMap = scopeFields.paletteNameMap = scopeFields.paletteNameMap || {};\n\n  if (paletteNameMap.hasOwnProperty(name)) {\n    return paletteNameMap[name];\n  }\n\n  var palette = requestNum == null || !layeredPalette ? defaultPalette : getNearestPalette(layeredPalette, requestNum);\n  palette = palette || defaultPalette;\n\n  if (!palette || !palette.length) {\n    return;\n  }\n\n  var pickedPaletteItem = palette[paletteIdx];\n\n  if (name) {\n    paletteNameMap[name] = pickedPaletteItem;\n  }\n\n  scopeFields.paletteIdx = (paletteIdx + 1) % palette.length;\n  return pickedPaletteItem;\n}\n\nfunction clearPalette(that, inner) {\n  inner(that).paletteIdx = 0;\n  inner(that).paletteNameMap = {};\n}\n\nexport { PaletteMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { each, filter, isArray, isObject, isString, createHashMap, assert, clone, merge, extend, mixin, isFunction } from 'zrender/lib/core/util';\nimport * as modelUtil from '../util/model';\nimport Model from './Model';\nimport ComponentModel from './Component';\nimport globalDefault from './globalDefault';\nimport { resetSourceDefaulter } from '../data/helper/sourceHelper';\nimport { concatInternalOptions } from './internalComponentCreator';\nimport { PaletteMixin } from './mixin/palette';\nvar reCreateSeriesIndices;\nvar assertSeriesInitialized;\nvar initBase;\nvar OPTION_INNER_KEY = '\\0_ec_inner';\nvar OPTION_INNER_VALUE = 1;\n\nvar GlobalModel = function (_super) {\n  __extends(GlobalModel, _super);\n\n  function GlobalModel() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  GlobalModel.prototype.init = function (option, parentModel, ecModel, theme, locale, optionManager) {\n    theme = theme || {};\n    this.option = null;\n    this._theme = new Model(theme);\n    this._locale = new Model(locale);\n    this._optionManager = optionManager;\n  };\n\n  GlobalModel.prototype.setOption = function (option, opts, optionPreprocessorFuncs) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(option != null, 'option is null/undefined');\n      assert(option[OPTION_INNER_KEY] !== OPTION_INNER_VALUE, 'please use chart.getOption()');\n    }\n\n    var innerOpt = normalizeSetOptionInput(opts);\n\n    this._optionManager.setOption(option, optionPreprocessorFuncs, innerOpt);\n\n    this._resetOption(null, innerOpt);\n  };\n\n  GlobalModel.prototype.resetOption = function (type, opt) {\n    return this._resetOption(type, normalizeSetOptionInput(opt));\n  };\n\n  GlobalModel.prototype._resetOption = function (type, opt) {\n    var optionChanged = false;\n    var optionManager = this._optionManager;\n\n    if (!type || type === 'recreate') {\n      var baseOption = optionManager.mountOption(type === 'recreate');\n\n      if (!this.option || type === 'recreate') {\n        initBase(this, baseOption);\n      } else {\n        this.restoreData();\n\n        this._mergeOption(baseOption, opt);\n      }\n\n      optionChanged = true;\n    }\n\n    if (type === 'timeline' || type === 'media') {\n      this.restoreData();\n    }\n\n    if (!type || type === 'recreate' || type === 'timeline') {\n      var timelineOption = optionManager.getTimelineOption(this);\n\n      if (timelineOption) {\n        optionChanged = true;\n\n        this._mergeOption(timelineOption, opt);\n      }\n    }\n\n    if (!type || type === 'recreate' || type === 'media') {\n      var mediaOptions = optionManager.getMediaOption(this);\n\n      if (mediaOptions.length) {\n        each(mediaOptions, function (mediaOption) {\n          optionChanged = true;\n\n          this._mergeOption(mediaOption, opt);\n        }, this);\n      }\n    }\n\n    return optionChanged;\n  };\n\n  GlobalModel.prototype.mergeOption = function (option) {\n    this._mergeOption(option, null);\n  };\n\n  GlobalModel.prototype._mergeOption = function (newOption, opt) {\n    var option = this.option;\n    var componentsMap = this._componentsMap;\n    var componentsCount = this._componentsCount;\n    var newCmptTypes = [];\n    var newCmptTypeMap = createHashMap();\n    var replaceMergeMainTypeMap = opt && opt.replaceMergeMainTypeMap;\n    resetSourceDefaulter(this);\n    each(newOption, function (componentOption, mainType) {\n      if (componentOption == null) {\n        return;\n      }\n\n      if (!ComponentModel.hasClass(mainType)) {\n        option[mainType] = option[mainType] == null ? clone(componentOption) : merge(option[mainType], componentOption, true);\n      } else if (mainType) {\n        newCmptTypes.push(mainType);\n        newCmptTypeMap.set(mainType, true);\n      }\n    });\n\n    if (replaceMergeMainTypeMap) {\n      replaceMergeMainTypeMap.each(function (val, mainTypeInReplaceMerge) {\n        if (ComponentModel.hasClass(mainTypeInReplaceMerge) && !newCmptTypeMap.get(mainTypeInReplaceMerge)) {\n          newCmptTypes.push(mainTypeInReplaceMerge);\n          newCmptTypeMap.set(mainTypeInReplaceMerge, true);\n        }\n      });\n    }\n\n    ComponentModel.topologicalTravel(newCmptTypes, ComponentModel.getAllClassMainTypes(), visitComponent, this);\n\n    function visitComponent(mainType) {\n      var newCmptOptionList = concatInternalOptions(this, mainType, modelUtil.normalizeToArray(newOption[mainType]));\n      var oldCmptList = componentsMap.get(mainType);\n      var mergeMode = !oldCmptList ? 'replaceAll' : replaceMergeMainTypeMap && replaceMergeMainTypeMap.get(mainType) ? 'replaceMerge' : 'normalMerge';\n      var mappingResult = modelUtil.mappingToExists(oldCmptList, newCmptOptionList, mergeMode);\n      modelUtil.setComponentTypeToKeyInfo(mappingResult, mainType, ComponentModel);\n      option[mainType] = null;\n      componentsMap.set(mainType, null);\n      componentsCount.set(mainType, 0);\n      var optionsByMainType = [];\n      var cmptsByMainType = [];\n      var cmptsCountByMainType = 0;\n      each(mappingResult, function (resultItem, index) {\n        var componentModel = resultItem.existing;\n        var newCmptOption = resultItem.newOption;\n\n        if (!newCmptOption) {\n          if (componentModel) {\n            componentModel.mergeOption({}, this);\n            componentModel.optionUpdated({}, false);\n          }\n        } else {\n          var ComponentModelClass = ComponentModel.getClass(mainType, resultItem.keyInfo.subType, true);\n\n          if (componentModel && componentModel.constructor === ComponentModelClass) {\n            componentModel.name = resultItem.keyInfo.name;\n            componentModel.mergeOption(newCmptOption, this);\n            componentModel.optionUpdated(newCmptOption, false);\n          } else {\n            var extraOpt = extend({\n              componentIndex: index\n            }, resultItem.keyInfo);\n            componentModel = new ComponentModelClass(newCmptOption, this, this, extraOpt);\n            extend(componentModel, extraOpt);\n\n            if (resultItem.brandNew) {\n              componentModel.__requireNewView = true;\n            }\n\n            componentModel.init(newCmptOption, this, this);\n            componentModel.optionUpdated(null, true);\n          }\n        }\n\n        if (componentModel) {\n          optionsByMainType.push(componentModel.option);\n          cmptsByMainType.push(componentModel);\n          cmptsCountByMainType++;\n        } else {\n          optionsByMainType.push(void 0);\n          cmptsByMainType.push(void 0);\n        }\n      }, this);\n      option[mainType] = optionsByMainType;\n      componentsMap.set(mainType, cmptsByMainType);\n      componentsCount.set(mainType, cmptsCountByMainType);\n\n      if (mainType === 'series') {\n        reCreateSeriesIndices(this);\n      }\n    }\n\n    if (!this._seriesIndices) {\n      reCreateSeriesIndices(this);\n    }\n  };\n\n  GlobalModel.prototype.getOption = function () {\n    var option = clone(this.option);\n    each(option, function (optInMainType, mainType) {\n      if (ComponentModel.hasClass(mainType)) {\n        var opts = modelUtil.normalizeToArray(optInMainType);\n        var realLen = opts.length;\n        var metNonInner = false;\n\n        for (var i = realLen - 1; i >= 0; i--) {\n          if (opts[i] && !modelUtil.isComponentIdInternal(opts[i])) {\n            metNonInner = true;\n          } else {\n            opts[i] = null;\n            !metNonInner && realLen--;\n          }\n        }\n\n        opts.length = realLen;\n        option[mainType] = opts;\n      }\n    });\n    delete option[OPTION_INNER_KEY];\n    return option;\n  };\n\n  GlobalModel.prototype.getTheme = function () {\n    return this._theme;\n  };\n\n  GlobalModel.prototype.getLocaleModel = function () {\n    return this._locale;\n  };\n\n  GlobalModel.prototype.getLocale = function (localePosition) {\n    var locale = this.getLocaleModel();\n    return locale.get(localePosition);\n  };\n\n  GlobalModel.prototype.setUpdatePayload = function (payload) {\n    this._payload = payload;\n  };\n\n  GlobalModel.prototype.getUpdatePayload = function () {\n    return this._payload;\n  };\n\n  GlobalModel.prototype.getComponent = function (mainType, idx) {\n    var list = this._componentsMap.get(mainType);\n\n    if (list) {\n      var cmpt = list[idx || 0];\n\n      if (cmpt) {\n        return cmpt;\n      } else if (idx == null) {\n        for (var i = 0; i < list.length; i++) {\n          if (list[i]) {\n            return list[i];\n          }\n        }\n      }\n    }\n  };\n\n  GlobalModel.prototype.queryComponents = function (condition) {\n    var mainType = condition.mainType;\n\n    if (!mainType) {\n      return [];\n    }\n\n    var index = condition.index;\n    var id = condition.id;\n    var name = condition.name;\n\n    var cmpts = this._componentsMap.get(mainType);\n\n    if (!cmpts || !cmpts.length) {\n      return [];\n    }\n\n    var result;\n\n    if (index != null) {\n      result = [];\n      each(modelUtil.normalizeToArray(index), function (idx) {\n        cmpts[idx] && result.push(cmpts[idx]);\n      });\n    } else if (id != null) {\n      result = queryByIdOrName('id', id, cmpts);\n    } else if (name != null) {\n      result = queryByIdOrName('name', name, cmpts);\n    } else {\n      result = filter(cmpts, function (cmpt) {\n        return !!cmpt;\n      });\n    }\n\n    return filterBySubType(result, condition);\n  };\n\n  GlobalModel.prototype.findComponents = function (condition) {\n    var query = condition.query;\n    var mainType = condition.mainType;\n    var queryCond = getQueryCond(query);\n    var result = queryCond ? this.queryComponents(queryCond) : filter(this._componentsMap.get(mainType), function (cmpt) {\n      return !!cmpt;\n    });\n    return doFilter(filterBySubType(result, condition));\n\n    function getQueryCond(q) {\n      var indexAttr = mainType + 'Index';\n      var idAttr = mainType + 'Id';\n      var nameAttr = mainType + 'Name';\n      return q && (q[indexAttr] != null || q[idAttr] != null || q[nameAttr] != null) ? {\n        mainType: mainType,\n        index: q[indexAttr],\n        id: q[idAttr],\n        name: q[nameAttr]\n      } : null;\n    }\n\n    function doFilter(res) {\n      return condition.filter ? filter(res, condition.filter) : res;\n    }\n  };\n\n  GlobalModel.prototype.eachComponent = function (mainType, cb, context) {\n    var componentsMap = this._componentsMap;\n\n    if (isFunction(mainType)) {\n      var ctxForAll_1 = cb;\n      var cbForAll_1 = mainType;\n      componentsMap.each(function (cmpts, componentType) {\n        for (var i = 0; cmpts && i < cmpts.length; i++) {\n          var cmpt = cmpts[i];\n          cmpt && cbForAll_1.call(ctxForAll_1, componentType, cmpt, cmpt.componentIndex);\n        }\n      });\n    } else {\n      var cmpts = isString(mainType) ? componentsMap.get(mainType) : isObject(mainType) ? this.findComponents(mainType) : null;\n\n      for (var i = 0; cmpts && i < cmpts.length; i++) {\n        var cmpt = cmpts[i];\n        cmpt && cb.call(context, cmpt, cmpt.componentIndex);\n      }\n    }\n  };\n\n  GlobalModel.prototype.getSeriesByName = function (name) {\n    var nameStr = modelUtil.convertOptionIdName(name, null);\n    return filter(this._componentsMap.get('series'), function (oneSeries) {\n      return !!oneSeries && nameStr != null && oneSeries.name === nameStr;\n    });\n  };\n\n  GlobalModel.prototype.getSeriesByIndex = function (seriesIndex) {\n    return this._componentsMap.get('series')[seriesIndex];\n  };\n\n  GlobalModel.prototype.getSeriesByType = function (subType) {\n    return filter(this._componentsMap.get('series'), function (oneSeries) {\n      return !!oneSeries && oneSeries.subType === subType;\n    });\n  };\n\n  GlobalModel.prototype.getSeries = function () {\n    return filter(this._componentsMap.get('series').slice(), function (oneSeries) {\n      return !!oneSeries;\n    });\n  };\n\n  GlobalModel.prototype.getSeriesCount = function () {\n    return this._componentsCount.get('series');\n  };\n\n  GlobalModel.prototype.eachSeries = function (cb, context) {\n    assertSeriesInitialized(this);\n    each(this._seriesIndices, function (rawSeriesIndex) {\n      var series = this._componentsMap.get('series')[rawSeriesIndex];\n\n      cb.call(context, series, rawSeriesIndex);\n    }, this);\n  };\n\n  GlobalModel.prototype.eachRawSeries = function (cb, context) {\n    each(this._componentsMap.get('series'), function (series) {\n      series && cb.call(context, series, series.componentIndex);\n    });\n  };\n\n  GlobalModel.prototype.eachSeriesByType = function (subType, cb, context) {\n    assertSeriesInitialized(this);\n    each(this._seriesIndices, function (rawSeriesIndex) {\n      var series = this._componentsMap.get('series')[rawSeriesIndex];\n\n      if (series.subType === subType) {\n        cb.call(context, series, rawSeriesIndex);\n      }\n    }, this);\n  };\n\n  GlobalModel.prototype.eachRawSeriesByType = function (subType, cb, context) {\n    return each(this.getSeriesByType(subType), cb, context);\n  };\n\n  GlobalModel.prototype.isSeriesFiltered = function (seriesModel) {\n    assertSeriesInitialized(this);\n    return this._seriesIndicesMap.get(seriesModel.componentIndex) == null;\n  };\n\n  GlobalModel.prototype.getCurrentSeriesIndices = function () {\n    return (this._seriesIndices || []).slice();\n  };\n\n  GlobalModel.prototype.filterSeries = function (cb, context) {\n    assertSeriesInitialized(this);\n    var newSeriesIndices = [];\n    each(this._seriesIndices, function (seriesRawIdx) {\n      var series = this._componentsMap.get('series')[seriesRawIdx];\n\n      cb.call(context, series, seriesRawIdx) && newSeriesIndices.push(seriesRawIdx);\n    }, this);\n    this._seriesIndices = newSeriesIndices;\n    this._seriesIndicesMap = createHashMap(newSeriesIndices);\n  };\n\n  GlobalModel.prototype.restoreData = function (payload) {\n    reCreateSeriesIndices(this);\n    var componentsMap = this._componentsMap;\n    var componentTypes = [];\n    componentsMap.each(function (components, componentType) {\n      if (ComponentModel.hasClass(componentType)) {\n        componentTypes.push(componentType);\n      }\n    });\n    ComponentModel.topologicalTravel(componentTypes, ComponentModel.getAllClassMainTypes(), function (componentType) {\n      each(componentsMap.get(componentType), function (component) {\n        if (component && (componentType !== 'series' || !isNotTargetSeries(component, payload))) {\n          component.restoreData();\n        }\n      });\n    });\n  };\n\n  GlobalModel.internalField = function () {\n    reCreateSeriesIndices = function (ecModel) {\n      var seriesIndices = ecModel._seriesIndices = [];\n      each(ecModel._componentsMap.get('series'), function (series) {\n        series && seriesIndices.push(series.componentIndex);\n      });\n      ecModel._seriesIndicesMap = createHashMap(seriesIndices);\n    };\n\n    assertSeriesInitialized = function (ecModel) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (!ecModel._seriesIndices) {\n          throw new Error('Option should contains series.');\n        }\n      }\n    };\n\n    initBase = function (ecModel, baseOption) {\n      ecModel.option = {};\n      ecModel.option[OPTION_INNER_KEY] = OPTION_INNER_VALUE;\n      ecModel._componentsMap = createHashMap({\n        series: []\n      });\n      ecModel._componentsCount = createHashMap();\n      var airaOption = baseOption.aria;\n\n      if (isObject(airaOption) && airaOption.enabled == null) {\n        airaOption.enabled = true;\n      }\n\n      mergeTheme(baseOption, ecModel._theme.option);\n      merge(baseOption, globalDefault, false);\n\n      ecModel._mergeOption(baseOption, null);\n    };\n  }();\n\n  return GlobalModel;\n}(Model);\n\nfunction isNotTargetSeries(seriesModel, payload) {\n  if (payload) {\n    var index = payload.seriesIndex;\n    var id = payload.seriesId;\n    var name_1 = payload.seriesName;\n    return index != null && seriesModel.componentIndex !== index || id != null && seriesModel.id !== id || name_1 != null && seriesModel.name !== name_1;\n  }\n}\n\nfunction mergeTheme(option, theme) {\n  var notMergeColorLayer = option.color && !option.colorLayer;\n  each(theme, function (themeItem, name) {\n    if (name === 'colorLayer' && notMergeColorLayer) {\n      return;\n    }\n\n    if (!ComponentModel.hasClass(name)) {\n      if (typeof themeItem === 'object') {\n        option[name] = !option[name] ? clone(themeItem) : merge(option[name], themeItem, false);\n      } else {\n        if (option[name] == null) {\n          option[name] = themeItem;\n        }\n      }\n    }\n  });\n}\n\nfunction queryByIdOrName(attr, idOrName, cmpts) {\n  if (isArray(idOrName)) {\n    var keyMap_1 = createHashMap();\n    each(idOrName, function (idOrNameItem) {\n      if (idOrNameItem != null) {\n        var idName = modelUtil.convertOptionIdName(idOrNameItem, null);\n        idName != null && keyMap_1.set(idOrNameItem, true);\n      }\n    });\n    return filter(cmpts, function (cmpt) {\n      return cmpt && keyMap_1.get(cmpt[attr]);\n    });\n  } else {\n    var idName_1 = modelUtil.convertOptionIdName(idOrName, null);\n    return filter(cmpts, function (cmpt) {\n      return cmpt && idName_1 != null && cmpt[attr] === idName_1;\n    });\n  }\n}\n\nfunction filterBySubType(components, condition) {\n  return condition.hasOwnProperty('subType') ? filter(components, function (cmpt) {\n    return cmpt && cmpt.subType === condition.subType;\n  }) : components;\n}\n\nfunction normalizeSetOptionInput(opts) {\n  var replaceMergeMainTypeMap = createHashMap();\n  opts && each(modelUtil.normalizeToArray(opts.replaceMerge), function (mainType) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(ComponentModel.hasClass(mainType), '\"' + mainType + '\" is not valid component main type in \"replaceMerge\"');\n    }\n\n    replaceMergeMainTypeMap.set(mainType, true);\n  });\n  return {\n    replaceMergeMainTypeMap: replaceMergeMainTypeMap\n  };\n}\n\nmixin(GlobalModel, PaletteMixin);\nexport default GlobalModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar availableMethods = ['getDom', 'getZr', 'getWidth', 'getHeight', 'getDevicePixelRatio', 'dispatchAction', 'isDisposed', 'on', 'off', 'getDataURL', 'getConnectedDataURL', 'getOption', 'getId', 'updateLabelLayout'];\n\nvar ExtensionAPI = function () {\n  function ExtensionAPI(ecInstance) {\n    zrUtil.each(availableMethods, function (methodName) {\n      this[methodName] = zrUtil.bind(ecInstance[methodName], ecInstance);\n    }, this);\n  }\n\n  return ExtensionAPI;\n}();\n\nexport default ExtensionAPI;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar coordinateSystemCreators = {};\n\nvar CoordinateSystemManager = function () {\n  function CoordinateSystemManager() {\n    this._coordinateSystems = [];\n  }\n\n  CoordinateSystemManager.prototype.create = function (ecModel, api) {\n    var coordinateSystems = [];\n    zrUtil.each(coordinateSystemCreators, function (creater, type) {\n      var list = creater.create(ecModel, api);\n      coordinateSystems = coordinateSystems.concat(list || []);\n    });\n    this._coordinateSystems = coordinateSystems;\n  };\n\n  CoordinateSystemManager.prototype.update = function (ecModel, api) {\n    zrUtil.each(this._coordinateSystems, function (coordSys) {\n      coordSys.update && coordSys.update(ecModel, api);\n    });\n  };\n\n  CoordinateSystemManager.prototype.getCoordinateSystems = function () {\n    return this._coordinateSystems.slice();\n  };\n\n  CoordinateSystemManager.register = function (type, creator) {\n    coordinateSystemCreators[type] = creator;\n  };\n\n  CoordinateSystemManager.get = function (type) {\n    return coordinateSystemCreators[type];\n  };\n\n  return CoordinateSystemManager;\n}();\n\nexport default CoordinateSystemManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { normalizeToArray } from '../util/model';\nimport { each, clone, map, isTypedArray, setAsPrimitive, isArray, isObject } from 'zrender/lib/core/util';\nimport { error } from '../util/log';\nvar QUERY_REG = /^(min|max)?(.+)$/;\n\nvar OptionManager = function () {\n  function OptionManager(api) {\n    this._timelineOptions = [];\n    this._mediaList = [];\n    this._currentMediaIndices = [];\n    this._api = api;\n  }\n\n  OptionManager.prototype.setOption = function (rawOption, optionPreprocessorFuncs, opt) {\n    if (rawOption) {\n      each(normalizeToArray(rawOption.series), function (series) {\n        series && series.data && isTypedArray(series.data) && setAsPrimitive(series.data);\n      });\n      each(normalizeToArray(rawOption.dataset), function (dataset) {\n        dataset && dataset.source && isTypedArray(dataset.source) && setAsPrimitive(dataset.source);\n      });\n    }\n\n    rawOption = clone(rawOption);\n    var optionBackup = this._optionBackup;\n    var newParsedOption = parseRawOption(rawOption, optionPreprocessorFuncs, !optionBackup);\n    this._newBaseOption = newParsedOption.baseOption;\n\n    if (optionBackup) {\n      if (newParsedOption.timelineOptions.length) {\n        optionBackup.timelineOptions = newParsedOption.timelineOptions;\n      }\n\n      if (newParsedOption.mediaList.length) {\n        optionBackup.mediaList = newParsedOption.mediaList;\n      }\n\n      if (newParsedOption.mediaDefault) {\n        optionBackup.mediaDefault = newParsedOption.mediaDefault;\n      }\n    } else {\n      this._optionBackup = newParsedOption;\n    }\n  };\n\n  OptionManager.prototype.mountOption = function (isRecreate) {\n    var optionBackup = this._optionBackup;\n    this._timelineOptions = optionBackup.timelineOptions;\n    this._mediaList = optionBackup.mediaList;\n    this._mediaDefault = optionBackup.mediaDefault;\n    this._currentMediaIndices = [];\n    return clone(isRecreate ? optionBackup.baseOption : this._newBaseOption);\n  };\n\n  OptionManager.prototype.getTimelineOption = function (ecModel) {\n    var option;\n    var timelineOptions = this._timelineOptions;\n\n    if (timelineOptions.length) {\n      var timelineModel = ecModel.getComponent('timeline');\n\n      if (timelineModel) {\n        option = clone(timelineOptions[timelineModel.getCurrentIndex()]);\n      }\n    }\n\n    return option;\n  };\n\n  OptionManager.prototype.getMediaOption = function (ecModel) {\n    var ecWidth = this._api.getWidth();\n\n    var ecHeight = this._api.getHeight();\n\n    var mediaList = this._mediaList;\n    var mediaDefault = this._mediaDefault;\n    var indices = [];\n    var result = [];\n\n    if (!mediaList.length && !mediaDefault) {\n      return result;\n    }\n\n    for (var i = 0, len = mediaList.length; i < len; i++) {\n      if (applyMediaQuery(mediaList[i].query, ecWidth, ecHeight)) {\n        indices.push(i);\n      }\n    }\n\n    if (!indices.length && mediaDefault) {\n      indices = [-1];\n    }\n\n    if (indices.length && !indicesEquals(indices, this._currentMediaIndices)) {\n      result = map(indices, function (index) {\n        return clone(index === -1 ? mediaDefault.option : mediaList[index].option);\n      });\n    }\n\n    this._currentMediaIndices = indices;\n    return result;\n  };\n\n  return OptionManager;\n}();\n\nfunction parseRawOption(rawOption, optionPreprocessorFuncs, isNew) {\n  var mediaList = [];\n  var mediaDefault;\n  var baseOption;\n  var declaredBaseOption = rawOption.baseOption;\n  var timelineOnRoot = rawOption.timeline;\n  var timelineOptionsOnRoot = rawOption.options;\n  var mediaOnRoot = rawOption.media;\n  var hasMedia = !!rawOption.media;\n  var hasTimeline = !!(timelineOptionsOnRoot || timelineOnRoot || declaredBaseOption && declaredBaseOption.timeline);\n\n  if (declaredBaseOption) {\n    baseOption = declaredBaseOption;\n\n    if (!baseOption.timeline) {\n      baseOption.timeline = timelineOnRoot;\n    }\n  } else {\n    if (hasTimeline || hasMedia) {\n      rawOption.options = rawOption.media = null;\n    }\n\n    baseOption = rawOption;\n  }\n\n  if (hasMedia) {\n    if (isArray(mediaOnRoot)) {\n      each(mediaOnRoot, function (singleMedia) {\n        if (process.env.NODE_ENV !== 'production') {\n          if (singleMedia && !singleMedia.option && isObject(singleMedia.query) && isObject(singleMedia.query.option)) {\n            error('Illegal media option. Must be like { media: [ { query: {}, option: {} } ] }');\n          }\n        }\n\n        if (singleMedia && singleMedia.option) {\n          if (singleMedia.query) {\n            mediaList.push(singleMedia);\n          } else if (!mediaDefault) {\n            mediaDefault = singleMedia;\n          }\n        }\n      });\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        error('Illegal media option. Must be an array. Like { media: [ {...}, {...} ] }');\n      }\n    }\n  }\n\n  doPreprocess(baseOption);\n  each(timelineOptionsOnRoot, function (option) {\n    return doPreprocess(option);\n  });\n  each(mediaList, function (media) {\n    return doPreprocess(media.option);\n  });\n\n  function doPreprocess(option) {\n    each(optionPreprocessorFuncs, function (preProcess) {\n      preProcess(option, isNew);\n    });\n  }\n\n  return {\n    baseOption: baseOption,\n    timelineOptions: timelineOptionsOnRoot || [],\n    mediaDefault: mediaDefault,\n    mediaList: mediaList\n  };\n}\n\nfunction applyMediaQuery(query, ecWidth, ecHeight) {\n  var realMap = {\n    width: ecWidth,\n    height: ecHeight,\n    aspectratio: ecWidth / ecHeight\n  };\n  var applicatable = true;\n  each(query, function (value, attr) {\n    var matched = attr.match(QUERY_REG);\n\n    if (!matched || !matched[1] || !matched[2]) {\n      return;\n    }\n\n    var operator = matched[1];\n    var realAttr = matched[2].toLowerCase();\n\n    if (!compare(realMap[realAttr], value, operator)) {\n      applicatable = false;\n    }\n  });\n  return applicatable;\n}\n\nfunction compare(real, expect, operator) {\n  if (operator === 'min') {\n    return real >= expect;\n  } else if (operator === 'max') {\n    return real <= expect;\n  } else {\n    return real === expect;\n  }\n}\n\nfunction indicesEquals(indices1, indices2) {\n  return indices1.join(',') === indices2.join(',');\n}\n\nexport default OptionManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nimport { deprecateLog, deprecateReplaceLog } from '../../util/log';\nvar each = zrUtil.each;\nvar isObject = zrUtil.isObject;\nvar POSSIBLE_STYLES = ['areaStyle', 'lineStyle', 'nodeStyle', 'linkStyle', 'chordStyle', 'label', 'labelLine'];\n\nfunction compatEC2ItemStyle(opt) {\n  var itemStyleOpt = opt && opt.itemStyle;\n\n  if (!itemStyleOpt) {\n    return;\n  }\n\n  for (var i = 0, len = POSSIBLE_STYLES.length; i < len; i++) {\n    var styleName = POSSIBLE_STYLES[i];\n    var normalItemStyleOpt = itemStyleOpt.normal;\n    var emphasisItemStyleOpt = itemStyleOpt.emphasis;\n\n    if (normalItemStyleOpt && normalItemStyleOpt[styleName]) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateReplaceLog(\"itemStyle.normal.\" + styleName, styleName);\n      }\n\n      opt[styleName] = opt[styleName] || {};\n\n      if (!opt[styleName].normal) {\n        opt[styleName].normal = normalItemStyleOpt[styleName];\n      } else {\n        zrUtil.merge(opt[styleName].normal, normalItemStyleOpt[styleName]);\n      }\n\n      normalItemStyleOpt[styleName] = null;\n    }\n\n    if (emphasisItemStyleOpt && emphasisItemStyleOpt[styleName]) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateReplaceLog(\"itemStyle.emphasis.\" + styleName, \"emphasis.\" + styleName);\n      }\n\n      opt[styleName] = opt[styleName] || {};\n\n      if (!opt[styleName].emphasis) {\n        opt[styleName].emphasis = emphasisItemStyleOpt[styleName];\n      } else {\n        zrUtil.merge(opt[styleName].emphasis, emphasisItemStyleOpt[styleName]);\n      }\n\n      emphasisItemStyleOpt[styleName] = null;\n    }\n  }\n}\n\nfunction convertNormalEmphasis(opt, optType, useExtend) {\n  if (opt && opt[optType] && (opt[optType].normal || opt[optType].emphasis)) {\n    var normalOpt = opt[optType].normal;\n    var emphasisOpt = opt[optType].emphasis;\n\n    if (normalOpt) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateLog(\"'normal' hierarchy in \" + optType + \" has been removed since 4.0. All style properties are configured in \" + optType + \" directly now.\");\n      }\n\n      if (useExtend) {\n        opt[optType].normal = opt[optType].emphasis = null;\n        zrUtil.defaults(opt[optType], normalOpt);\n      } else {\n        opt[optType] = normalOpt;\n      }\n    }\n\n    if (emphasisOpt) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateLog(optType + \".emphasis has been changed to emphasis.\" + optType + \" since 4.0\");\n      }\n\n      opt.emphasis = opt.emphasis || {};\n      opt.emphasis[optType] = emphasisOpt;\n\n      if (emphasisOpt.focus) {\n        opt.emphasis.focus = emphasisOpt.focus;\n      }\n\n      if (emphasisOpt.blurScope) {\n        opt.emphasis.blurScope = emphasisOpt.blurScope;\n      }\n    }\n  }\n}\n\nfunction removeEC3NormalStatus(opt) {\n  convertNormalEmphasis(opt, 'itemStyle');\n  convertNormalEmphasis(opt, 'lineStyle');\n  convertNormalEmphasis(opt, 'areaStyle');\n  convertNormalEmphasis(opt, 'label');\n  convertNormalEmphasis(opt, 'labelLine');\n  convertNormalEmphasis(opt, 'upperLabel');\n  convertNormalEmphasis(opt, 'edgeLabel');\n}\n\nfunction compatTextStyle(opt, propName) {\n  var labelOptSingle = isObject(opt) && opt[propName];\n  var textStyle = isObject(labelOptSingle) && labelOptSingle.textStyle;\n\n  if (textStyle) {\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateLog(\"textStyle hierarchy in \" + propName + \" has been removed since 4.0. All textStyle properties are configured in \" + propName + \" directly now.\");\n    }\n\n    for (var i = 0, len = modelUtil.TEXT_STYLE_OPTIONS.length; i < len; i++) {\n      var textPropName = modelUtil.TEXT_STYLE_OPTIONS[i];\n\n      if (textStyle.hasOwnProperty(textPropName)) {\n        labelOptSingle[textPropName] = textStyle[textPropName];\n      }\n    }\n  }\n}\n\nfunction compatEC3CommonStyles(opt) {\n  if (opt) {\n    removeEC3NormalStatus(opt);\n    compatTextStyle(opt, 'label');\n    opt.emphasis && compatTextStyle(opt.emphasis, 'label');\n  }\n}\n\nfunction processSeries(seriesOpt) {\n  if (!isObject(seriesOpt)) {\n    return;\n  }\n\n  compatEC2ItemStyle(seriesOpt);\n  removeEC3NormalStatus(seriesOpt);\n  compatTextStyle(seriesOpt, 'label');\n  compatTextStyle(seriesOpt, 'upperLabel');\n  compatTextStyle(seriesOpt, 'edgeLabel');\n\n  if (seriesOpt.emphasis) {\n    compatTextStyle(seriesOpt.emphasis, 'label');\n    compatTextStyle(seriesOpt.emphasis, 'upperLabel');\n    compatTextStyle(seriesOpt.emphasis, 'edgeLabel');\n  }\n\n  var markPoint = seriesOpt.markPoint;\n\n  if (markPoint) {\n    compatEC2ItemStyle(markPoint);\n    compatEC3CommonStyles(markPoint);\n  }\n\n  var markLine = seriesOpt.markLine;\n\n  if (markLine) {\n    compatEC2ItemStyle(markLine);\n    compatEC3CommonStyles(markLine);\n  }\n\n  var markArea = seriesOpt.markArea;\n\n  if (markArea) {\n    compatEC3CommonStyles(markArea);\n  }\n\n  var data = seriesOpt.data;\n\n  if (seriesOpt.type === 'graph') {\n    data = data || seriesOpt.nodes;\n    var edgeData = seriesOpt.links || seriesOpt.edges;\n\n    if (edgeData && !zrUtil.isTypedArray(edgeData)) {\n      for (var i = 0; i < edgeData.length; i++) {\n        compatEC3CommonStyles(edgeData[i]);\n      }\n    }\n\n    zrUtil.each(seriesOpt.categories, function (opt) {\n      removeEC3NormalStatus(opt);\n    });\n  }\n\n  if (data && !zrUtil.isTypedArray(data)) {\n    for (var i = 0; i < data.length; i++) {\n      compatEC3CommonStyles(data[i]);\n    }\n  }\n\n  markPoint = seriesOpt.markPoint;\n\n  if (markPoint && markPoint.data) {\n    var mpData = markPoint.data;\n\n    for (var i = 0; i < mpData.length; i++) {\n      compatEC3CommonStyles(mpData[i]);\n    }\n  }\n\n  markLine = seriesOpt.markLine;\n\n  if (markLine && markLine.data) {\n    var mlData = markLine.data;\n\n    for (var i = 0; i < mlData.length; i++) {\n      if (zrUtil.isArray(mlData[i])) {\n        compatEC3CommonStyles(mlData[i][0]);\n        compatEC3CommonStyles(mlData[i][1]);\n      } else {\n        compatEC3CommonStyles(mlData[i]);\n      }\n    }\n  }\n\n  if (seriesOpt.type === 'gauge') {\n    compatTextStyle(seriesOpt, 'axisLabel');\n    compatTextStyle(seriesOpt, 'title');\n    compatTextStyle(seriesOpt, 'detail');\n  } else if (seriesOpt.type === 'treemap') {\n    convertNormalEmphasis(seriesOpt.breadcrumb, 'itemStyle');\n    zrUtil.each(seriesOpt.levels, function (opt) {\n      removeEC3NormalStatus(opt);\n    });\n  } else if (seriesOpt.type === 'tree') {\n    removeEC3NormalStatus(seriesOpt.leaves);\n  }\n}\n\nfunction toArr(o) {\n  return zrUtil.isArray(o) ? o : o ? [o] : [];\n}\n\nfunction toObj(o) {\n  return (zrUtil.isArray(o) ? o[0] : o) || {};\n}\n\nexport default function globalCompatStyle(option, isTheme) {\n  each(toArr(option.series), function (seriesOpt) {\n    isObject(seriesOpt) && processSeries(seriesOpt);\n  });\n  var axes = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'parallelAxis', 'radar'];\n  isTheme && axes.push('valueAxis', 'categoryAxis', 'logAxis', 'timeAxis');\n  each(axes, function (axisName) {\n    each(toArr(option[axisName]), function (axisOpt) {\n      if (axisOpt) {\n        compatTextStyle(axisOpt, 'axisLabel');\n        compatTextStyle(axisOpt.axisPointer, 'label');\n      }\n    });\n  });\n  each(toArr(option.parallel), function (parallelOpt) {\n    var parallelAxisDefault = parallelOpt && parallelOpt.parallelAxisDefault;\n    compatTextStyle(parallelAxisDefault, 'axisLabel');\n    compatTextStyle(parallelAxisDefault && parallelAxisDefault.axisPointer, 'label');\n  });\n  each(toArr(option.calendar), function (calendarOpt) {\n    convertNormalEmphasis(calendarOpt, 'itemStyle');\n    compatTextStyle(calendarOpt, 'dayLabel');\n    compatTextStyle(calendarOpt, 'monthLabel');\n    compatTextStyle(calendarOpt, 'yearLabel');\n  });\n  each(toArr(option.radar), function (radarOpt) {\n    compatTextStyle(radarOpt, 'name');\n\n    if (radarOpt.name && radarOpt.axisName == null) {\n      radarOpt.axisName = radarOpt.name;\n      delete radarOpt.name;\n\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateLog('name property in radar component has been changed to axisName');\n      }\n    }\n\n    if (radarOpt.nameGap != null && radarOpt.axisNameGap == null) {\n      radarOpt.axisNameGap = radarOpt.nameGap;\n      delete radarOpt.nameGap;\n\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateLog('nameGap property in radar component has been changed to axisNameGap');\n      }\n    }\n  });\n  each(toArr(option.geo), function (geoOpt) {\n    if (isObject(geoOpt)) {\n      compatEC3CommonStyles(geoOpt);\n      each(toArr(geoOpt.regions), function (regionObj) {\n        compatEC3CommonStyles(regionObj);\n      });\n    }\n  });\n  each(toArr(option.timeline), function (timelineOpt) {\n    compatEC3CommonStyles(timelineOpt);\n    convertNormalEmphasis(timelineOpt, 'label');\n    convertNormalEmphasis(timelineOpt, 'itemStyle');\n    convertNormalEmphasis(timelineOpt, 'controlStyle', true);\n    var data = timelineOpt.data;\n    zrUtil.isArray(data) && zrUtil.each(data, function (item) {\n      if (zrUtil.isObject(item)) {\n        convertNormalEmphasis(item, 'label');\n        convertNormalEmphasis(item, 'itemStyle');\n      }\n    });\n  });\n  each(toArr(option.toolbox), function (toolboxOpt) {\n    convertNormalEmphasis(toolboxOpt, 'iconStyle');\n    each(toolboxOpt.feature, function (featureOpt) {\n      convertNormalEmphasis(featureOpt, 'iconStyle');\n    });\n  });\n  compatTextStyle(toObj(option.axisPointer), 'label');\n  compatTextStyle(toObj(option.tooltip).axisPointer, 'label');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, isArray, isObject, isTypedArray, defaults } from 'zrender/lib/core/util';\nimport compatStyle from './helper/compatStyle';\nimport { normalizeToArray } from '../util/model';\nimport { deprecateLog, deprecateReplaceLog } from '../util/log';\n\nfunction get(opt, path) {\n  var pathArr = path.split(',');\n  var obj = opt;\n\n  for (var i = 0; i < pathArr.length; i++) {\n    obj = obj && obj[pathArr[i]];\n\n    if (obj == null) {\n      break;\n    }\n  }\n\n  return obj;\n}\n\nfunction set(opt, path, val, overwrite) {\n  var pathArr = path.split(',');\n  var obj = opt;\n  var key;\n  var i = 0;\n\n  for (; i < pathArr.length - 1; i++) {\n    key = pathArr[i];\n\n    if (obj[key] == null) {\n      obj[key] = {};\n    }\n\n    obj = obj[key];\n  }\n\n  if (overwrite || obj[pathArr[i]] == null) {\n    obj[pathArr[i]] = val;\n  }\n}\n\nfunction compatLayoutProperties(option) {\n  option && each(LAYOUT_PROPERTIES, function (prop) {\n    if (prop[0] in option && !(prop[1] in option)) {\n      option[prop[1]] = option[prop[0]];\n    }\n  });\n}\n\nvar LAYOUT_PROPERTIES = [['x', 'left'], ['y', 'top'], ['x2', 'right'], ['y2', 'bottom']];\nvar COMPATITABLE_COMPONENTS = ['grid', 'geo', 'parallel', 'legend', 'toolbox', 'title', 'visualMap', 'dataZoom', 'timeline'];\nvar BAR_ITEM_STYLE_MAP = [['borderRadius', 'barBorderRadius'], ['borderColor', 'barBorderColor'], ['borderWidth', 'barBorderWidth']];\n\nfunction compatBarItemStyle(option) {\n  var itemStyle = option && option.itemStyle;\n\n  if (itemStyle) {\n    for (var i = 0; i < BAR_ITEM_STYLE_MAP.length; i++) {\n      var oldName = BAR_ITEM_STYLE_MAP[i][1];\n      var newName = BAR_ITEM_STYLE_MAP[i][0];\n\n      if (itemStyle[oldName] != null) {\n        itemStyle[newName] = itemStyle[oldName];\n\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog(oldName, newName);\n        }\n      }\n    }\n  }\n}\n\nfunction compatPieLabel(option) {\n  if (!option) {\n    return;\n  }\n\n  if (option.alignTo === 'edge' && option.margin != null && option.edgeDistance == null) {\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateReplaceLog('label.margin', 'label.edgeDistance', 'pie');\n    }\n\n    option.edgeDistance = option.margin;\n  }\n}\n\nfunction compatSunburstState(option) {\n  if (!option) {\n    return;\n  }\n\n  if (option.downplay && !option.blur) {\n    option.blur = option.downplay;\n\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateReplaceLog('downplay', 'blur', 'sunburst');\n    }\n  }\n}\n\nfunction compatGraphFocus(option) {\n  if (!option) {\n    return;\n  }\n\n  if (option.focusNodeAdjacency != null) {\n    option.emphasis = option.emphasis || {};\n\n    if (option.emphasis.focus == null) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateReplaceLog('focusNodeAdjacency', 'emphasis: { focus: \\'adjacency\\'}', 'graph/sankey');\n      }\n\n      option.emphasis.focus = 'adjacency';\n    }\n  }\n}\n\nfunction traverseTree(data, cb) {\n  if (data) {\n    for (var i = 0; i < data.length; i++) {\n      cb(data[i]);\n      data[i] && traverseTree(data[i].children, cb);\n    }\n  }\n}\n\nexport default function globalBackwardCompat(option, isTheme) {\n  compatStyle(option, isTheme);\n  option.series = normalizeToArray(option.series);\n  each(option.series, function (seriesOpt) {\n    if (!isObject(seriesOpt)) {\n      return;\n    }\n\n    var seriesType = seriesOpt.type;\n\n    if (seriesType === 'line') {\n      if (seriesOpt.clipOverflow != null) {\n        seriesOpt.clip = seriesOpt.clipOverflow;\n\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog('clipOverflow', 'clip', 'line');\n        }\n      }\n    } else if (seriesType === 'pie' || seriesType === 'gauge') {\n      if (seriesOpt.clockWise != null) {\n        seriesOpt.clockwise = seriesOpt.clockWise;\n\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog('clockWise', 'clockwise');\n        }\n      }\n\n      compatPieLabel(seriesOpt.label);\n      var data = seriesOpt.data;\n\n      if (data && !isTypedArray(data)) {\n        for (var i = 0; i < data.length; i++) {\n          compatPieLabel(data[i]);\n        }\n      }\n\n      if (seriesOpt.hoverOffset != null) {\n        seriesOpt.emphasis = seriesOpt.emphasis || {};\n\n        if (seriesOpt.emphasis.scaleSize = null) {\n          if (process.env.NODE_ENV !== 'production') {\n            deprecateReplaceLog('hoverOffset', 'emphasis.scaleSize');\n          }\n\n          seriesOpt.emphasis.scaleSize = seriesOpt.hoverOffset;\n        }\n      }\n    } else if (seriesType === 'gauge') {\n      var pointerColor = get(seriesOpt, 'pointer.color');\n      pointerColor != null && set(seriesOpt, 'itemStyle.color', pointerColor);\n    } else if (seriesType === 'bar') {\n      compatBarItemStyle(seriesOpt);\n      compatBarItemStyle(seriesOpt.backgroundStyle);\n      compatBarItemStyle(seriesOpt.emphasis);\n      var data = seriesOpt.data;\n\n      if (data && !isTypedArray(data)) {\n        for (var i = 0; i < data.length; i++) {\n          if (typeof data[i] === 'object') {\n            compatBarItemStyle(data[i]);\n            compatBarItemStyle(data[i] && data[i].emphasis);\n          }\n        }\n      }\n    } else if (seriesType === 'sunburst') {\n      var highlightPolicy = seriesOpt.highlightPolicy;\n\n      if (highlightPolicy) {\n        seriesOpt.emphasis = seriesOpt.emphasis || {};\n\n        if (!seriesOpt.emphasis.focus) {\n          seriesOpt.emphasis.focus = highlightPolicy;\n\n          if (process.env.NODE_ENV !== 'production') {\n            deprecateReplaceLog('highlightPolicy', 'emphasis.focus', 'sunburst');\n          }\n        }\n      }\n\n      compatSunburstState(seriesOpt);\n      traverseTree(seriesOpt.data, compatSunburstState);\n    } else if (seriesType === 'graph' || seriesType === 'sankey') {\n      compatGraphFocus(seriesOpt);\n    } else if (seriesType === 'map') {\n      if (seriesOpt.mapType && !seriesOpt.map) {\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog('mapType', 'map', 'map');\n        }\n\n        seriesOpt.map = seriesOpt.mapType;\n      }\n\n      if (seriesOpt.mapLocation) {\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateLog('`mapLocation` is not used anymore.');\n        }\n\n        defaults(seriesOpt, seriesOpt.mapLocation);\n      }\n    }\n\n    if (seriesOpt.hoverAnimation != null) {\n      seriesOpt.emphasis = seriesOpt.emphasis || {};\n\n      if (seriesOpt.emphasis && seriesOpt.emphasis.scale == null) {\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog('hoverAnimation', 'emphasis.scale');\n        }\n\n        seriesOpt.emphasis.scale = seriesOpt.hoverAnimation;\n      }\n    }\n\n    compatLayoutProperties(seriesOpt);\n  });\n\n  if (option.dataRange) {\n    option.visualMap = option.dataRange;\n  }\n\n  each(COMPATITABLE_COMPONENTS, function (componentName) {\n    var options = option[componentName];\n\n    if (options) {\n      if (!isArray(options)) {\n        options = [options];\n      }\n\n      each(options, function (option) {\n        compatLayoutProperties(option);\n      });\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, each } from 'zrender/lib/core/util';\nexport default function dataStack(ecModel) {\n  var stackInfoMap = createHashMap();\n  ecModel.eachSeries(function (seriesModel) {\n    var stack = seriesModel.get('stack');\n\n    if (stack) {\n      var stackInfoList = stackInfoMap.get(stack) || stackInfoMap.set(stack, []);\n      var data = seriesModel.getData();\n      var stackInfo = {\n        stackResultDimension: data.getCalculationInfo('stackResultDimension'),\n        stackedOverDimension: data.getCalculationInfo('stackedOverDimension'),\n        stackedDimension: data.getCalculationInfo('stackedDimension'),\n        stackedByDimension: data.getCalculationInfo('stackedByDimension'),\n        isStackedByIndex: data.getCalculationInfo('isStackedByIndex'),\n        data: data,\n        seriesModel: seriesModel\n      };\n\n      if (!stackInfo.stackedDimension || !(stackInfo.isStackedByIndex || stackInfo.stackedByDimension)) {\n        return;\n      }\n\n      stackInfoList.length && data.setCalculationInfo('stackedOnSeries', stackInfoList[stackInfoList.length - 1].seriesModel);\n      stackInfoList.push(stackInfo);\n    }\n  });\n  stackInfoMap.each(calculateStack);\n}\n\nfunction calculateStack(stackInfoList) {\n  each(stackInfoList, function (targetStackInfo, idxInStack) {\n    var resultVal = [];\n    var resultNaN = [NaN, NaN];\n    var dims = [targetStackInfo.stackResultDimension, targetStackInfo.stackedOverDimension];\n    var targetData = targetStackInfo.data;\n    var isStackedByIndex = targetStackInfo.isStackedByIndex;\n    var newData = targetData.map(dims, function (v0, v1, dataIndex) {\n      var sum = targetData.get(targetStackInfo.stackedDimension, dataIndex);\n\n      if (isNaN(sum)) {\n        return resultNaN;\n      }\n\n      var byValue;\n      var stackedDataRawIndex;\n\n      if (isStackedByIndex) {\n        stackedDataRawIndex = targetData.getRawIndex(dataIndex);\n      } else {\n        byValue = targetData.get(targetStackInfo.stackedByDimension, dataIndex);\n      }\n\n      var stackedOver = NaN;\n\n      for (var j = idxInStack - 1; j >= 0; j--) {\n        var stackInfo = stackInfoList[j];\n\n        if (!isStackedByIndex) {\n          stackedDataRawIndex = stackInfo.data.rawIndexOf(stackInfo.stackedByDimension, byValue);\n        }\n\n        if (stackedDataRawIndex >= 0) {\n          var val = stackInfo.data.getByRawIndex(stackInfo.stackResultDimension, stackedDataRawIndex);\n\n          if (sum >= 0 && val > 0 || sum <= 0 && val < 0) {\n            sum += val;\n            stackedOver = val;\n            break;\n          }\n        }\n      }\n\n      resultVal[0] = sum;\n      resultVal[1] = stackedOver;\n      return resultVal;\n    });\n    targetData.hostModel.setData(newData);\n    targetStackInfo.data = newData;\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isTypedArray, clone, createHashMap, isArray, isObject, isArrayLike, hasOwn, assert, each, map, isNumber, isString } from 'zrender/lib/core/util';\nimport { SOURCE_FORMAT_ORIGINAL, SERIES_LAYOUT_BY_COLUMN, SOURCE_FORMAT_UNKNOWN, SOURCE_FORMAT_KEYED_COLUMNS, SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ARRAY_ROWS, SOURCE_FORMAT_OBJECT_ROWS, SERIES_LAYOUT_BY_ROW } from '../util/types';\nimport { getDataItemValue } from '../util/model';\n;\n\nvar SourceImpl = function () {\n  function SourceImpl(fields) {\n    this.data = fields.data || (fields.sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS ? {} : []);\n    this.sourceFormat = fields.sourceFormat || SOURCE_FORMAT_UNKNOWN;\n    this.seriesLayoutBy = fields.seriesLayoutBy || SERIES_LAYOUT_BY_COLUMN;\n    this.startIndex = fields.startIndex || 0;\n    this.dimensionsDefine = fields.dimensionsDefine;\n    this.dimensionsDetectedCount = fields.dimensionsDetectedCount;\n    this.encodeDefine = fields.encodeDefine;\n    this.metaRawOption = fields.metaRawOption;\n  }\n\n  return SourceImpl;\n}();\n\nexport function isSourceInstance(val) {\n  return val instanceof SourceImpl;\n}\nexport function createSource(sourceData, thisMetaRawOption, sourceFormat, encodeDefine) {\n  sourceFormat = sourceFormat || detectSourceFormat(sourceData);\n  var seriesLayoutBy = thisMetaRawOption.seriesLayoutBy;\n  var determined = determineSourceDimensions(sourceData, sourceFormat, seriesLayoutBy, thisMetaRawOption.sourceHeader, thisMetaRawOption.dimensions);\n  var source = new SourceImpl({\n    data: sourceData,\n    sourceFormat: sourceFormat,\n    seriesLayoutBy: seriesLayoutBy,\n    dimensionsDefine: determined.dimensionsDefine,\n    startIndex: determined.startIndex,\n    dimensionsDetectedCount: determined.dimensionsDetectedCount,\n    encodeDefine: makeEncodeDefine(encodeDefine),\n    metaRawOption: clone(thisMetaRawOption)\n  });\n  return source;\n}\nexport function createSourceFromSeriesDataOption(data) {\n  return new SourceImpl({\n    data: data,\n    sourceFormat: isTypedArray(data) ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL\n  });\n}\nexport function cloneSourceShallow(source) {\n  return new SourceImpl({\n    data: source.data,\n    sourceFormat: source.sourceFormat,\n    seriesLayoutBy: source.seriesLayoutBy,\n    dimensionsDefine: clone(source.dimensionsDefine),\n    startIndex: source.startIndex,\n    dimensionsDetectedCount: source.dimensionsDetectedCount,\n    encodeDefine: makeEncodeDefine(source.encodeDefine)\n  });\n}\n\nfunction makeEncodeDefine(encodeDefine) {\n  return encodeDefine ? createHashMap(encodeDefine) : null;\n}\n\nexport function detectSourceFormat(data) {\n  var sourceFormat = SOURCE_FORMAT_UNKNOWN;\n\n  if (isTypedArray(data)) {\n    sourceFormat = SOURCE_FORMAT_TYPED_ARRAY;\n  } else if (isArray(data)) {\n    if (data.length === 0) {\n      sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\n    }\n\n    for (var i = 0, len = data.length; i < len; i++) {\n      var item = data[i];\n\n      if (item == null) {\n        continue;\n      } else if (isArray(item)) {\n        sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\n        break;\n      } else if (isObject(item)) {\n        sourceFormat = SOURCE_FORMAT_OBJECT_ROWS;\n        break;\n      }\n    }\n  } else if (isObject(data)) {\n    for (var key in data) {\n      if (hasOwn(data, key) && isArrayLike(data[key])) {\n        sourceFormat = SOURCE_FORMAT_KEYED_COLUMNS;\n        break;\n      }\n    }\n  }\n\n  return sourceFormat;\n}\n\nfunction determineSourceDimensions(data, sourceFormat, seriesLayoutBy, sourceHeader, dimensionsDefine) {\n  var dimensionsDetectedCount;\n  var startIndex;\n\n  if (!data) {\n    return {\n      dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\n      startIndex: startIndex,\n      dimensionsDetectedCount: dimensionsDetectedCount\n    };\n  }\n\n  if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n    var dataArrayRows = data;\n\n    if (sourceHeader === 'auto' || sourceHeader == null) {\n      arrayRowsTravelFirst(function (val) {\n        if (val != null && val !== '-') {\n          if (isString(val)) {\n            startIndex == null && (startIndex = 1);\n          } else {\n            startIndex = 0;\n          }\n        }\n      }, seriesLayoutBy, dataArrayRows, 10);\n    } else {\n      startIndex = isNumber(sourceHeader) ? sourceHeader : sourceHeader ? 1 : 0;\n    }\n\n    if (!dimensionsDefine && startIndex === 1) {\n      dimensionsDefine = [];\n      arrayRowsTravelFirst(function (val, index) {\n        dimensionsDefine[index] = val != null ? val + '' : '';\n      }, seriesLayoutBy, dataArrayRows, Infinity);\n    }\n\n    dimensionsDetectedCount = dimensionsDefine ? dimensionsDefine.length : seriesLayoutBy === SERIES_LAYOUT_BY_ROW ? dataArrayRows.length : dataArrayRows[0] ? dataArrayRows[0].length : null;\n  } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n    if (!dimensionsDefine) {\n      dimensionsDefine = objectRowsCollectDimensions(data);\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n    if (!dimensionsDefine) {\n      dimensionsDefine = [];\n      each(data, function (colArr, key) {\n        dimensionsDefine.push(key);\n      });\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n    var value0 = getDataItemValue(data[0]);\n    dimensionsDetectedCount = isArray(value0) && value0.length || 1;\n  } else if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!!dimensionsDefine, 'dimensions must be given if data is TypedArray.');\n    }\n  }\n\n  return {\n    startIndex: startIndex,\n    dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\n    dimensionsDetectedCount: dimensionsDetectedCount\n  };\n}\n\nfunction objectRowsCollectDimensions(data) {\n  var firstIndex = 0;\n  var obj;\n\n  while (firstIndex < data.length && !(obj = data[firstIndex++])) {}\n\n  if (obj) {\n    var dimensions_1 = [];\n    each(obj, function (value, key) {\n      dimensions_1.push(key);\n    });\n    return dimensions_1;\n  }\n}\n\nfunction normalizeDimensionsOption(dimensionsDefine) {\n  if (!dimensionsDefine) {\n    return;\n  }\n\n  var nameMap = createHashMap();\n  return map(dimensionsDefine, function (rawItem, index) {\n    rawItem = isObject(rawItem) ? rawItem : {\n      name: rawItem\n    };\n    var item = {\n      name: rawItem.name,\n      displayName: rawItem.displayName,\n      type: rawItem.type\n    };\n\n    if (item.name == null) {\n      return item;\n    }\n\n    item.name += '';\n\n    if (item.displayName == null) {\n      item.displayName = item.name;\n    }\n\n    var exist = nameMap.get(item.name);\n\n    if (!exist) {\n      nameMap.set(item.name, {\n        count: 1\n      });\n    } else {\n      item.name += '-' + exist.count++;\n    }\n\n    return item;\n  });\n}\n\nfunction arrayRowsTravelFirst(cb, seriesLayoutBy, data, maxLoop) {\n  if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\n    for (var i = 0; i < data.length && i < maxLoop; i++) {\n      cb(data[i] ? data[i][0] : null, i);\n    }\n  } else {\n    var value0 = data[0] || [];\n\n    for (var i = 0; i < value0.length && i < maxLoop; i++) {\n      cb(value0[i], i);\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar _a, _b, _c;\n\nimport { isTypedArray, extend, assert, each, isObject, bind } from 'zrender/lib/core/util';\nimport { getDataItemValue } from '../../util/model';\nimport { createSourceFromSeriesDataOption, isSourceInstance } from '../Source';\nimport { SOURCE_FORMAT_ORIGINAL, SOURCE_FORMAT_OBJECT_ROWS, SOURCE_FORMAT_KEYED_COLUMNS, SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ARRAY_ROWS, SERIES_LAYOUT_BY_COLUMN, SERIES_LAYOUT_BY_ROW } from '../../util/types';\nvar providerMethods;\nvar mountMethods;\n\nvar DefaultDataProvider = function () {\n  function DefaultDataProvider(sourceParam, dimSize) {\n    var source = !isSourceInstance(sourceParam) ? createSourceFromSeriesDataOption(sourceParam) : sourceParam;\n    this._source = source;\n    var data = this._data = source.data;\n\n    if (source.sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (dimSize == null) {\n          throw new Error('Typed array data must specify dimension size');\n        }\n      }\n\n      this._offset = 0;\n      this._dimSize = dimSize;\n      this._data = data;\n    }\n\n    mountMethods(this, data, source);\n  }\n\n  DefaultDataProvider.prototype.getSource = function () {\n    return this._source;\n  };\n\n  DefaultDataProvider.prototype.count = function () {\n    return 0;\n  };\n\n  DefaultDataProvider.prototype.getItem = function (idx, out) {\n    return;\n  };\n\n  DefaultDataProvider.prototype.appendData = function (newData) {};\n\n  DefaultDataProvider.prototype.clean = function () {};\n\n  DefaultDataProvider.protoInitialize = function () {\n    var proto = DefaultDataProvider.prototype;\n    proto.pure = false;\n    proto.persistent = true;\n  }();\n\n  DefaultDataProvider.internalField = function () {\n    var _a;\n\n    mountMethods = function (provider, data, source) {\n      var sourceFormat = source.sourceFormat;\n      var seriesLayoutBy = source.seriesLayoutBy;\n      var startIndex = source.startIndex;\n      var dimsDef = source.dimensionsDefine;\n      var methods = providerMethods[getMethodMapKey(sourceFormat, seriesLayoutBy)];\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(methods, 'Invalide sourceFormat: ' + sourceFormat);\n      }\n\n      extend(provider, methods);\n\n      if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n        provider.getItem = getItemForTypedArray;\n        provider.count = countForTypedArray;\n        provider.fillStorage = fillStorageForTypedArray;\n      } else {\n        var rawItemGetter = getRawSourceItemGetter(sourceFormat, seriesLayoutBy);\n        provider.getItem = bind(rawItemGetter, null, data, startIndex, dimsDef);\n        var rawCounter = getRawSourceDataCounter(sourceFormat, seriesLayoutBy);\n        provider.count = bind(rawCounter, null, data, startIndex, dimsDef);\n      }\n    };\n\n    var getItemForTypedArray = function (idx, out) {\n      idx = idx - this._offset;\n      out = out || [];\n      var data = this._data;\n      var dimSize = this._dimSize;\n      var offset = dimSize * idx;\n\n      for (var i = 0; i < dimSize; i++) {\n        out[i] = data[offset + i];\n      }\n\n      return out;\n    };\n\n    var fillStorageForTypedArray = function (start, end, storage, extent) {\n      var data = this._data;\n      var dimSize = this._dimSize;\n\n      for (var dim = 0; dim < dimSize; dim++) {\n        var dimExtent = extent[dim];\n        var min = dimExtent[0] == null ? Infinity : dimExtent[0];\n        var max = dimExtent[1] == null ? -Infinity : dimExtent[1];\n        var count = end - start;\n        var arr = storage[dim];\n\n        for (var i = 0; i < count; i++) {\n          var val = data[i * dimSize + dim];\n          arr[start + i] = val;\n          val < min && (min = val);\n          val > max && (max = val);\n        }\n\n        dimExtent[0] = min;\n        dimExtent[1] = max;\n      }\n    };\n\n    var countForTypedArray = function () {\n      return this._data ? this._data.length / this._dimSize : 0;\n    };\n\n    providerMethods = (_a = {}, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = {\n      pure: true,\n      appendData: appendDataSimply\n    }, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = {\n      pure: true,\n      appendData: function () {\n        throw new Error('Do not support appendData when set seriesLayoutBy: \"row\".');\n      }\n    }, _a[SOURCE_FORMAT_OBJECT_ROWS] = {\n      pure: true,\n      appendData: appendDataSimply\n    }, _a[SOURCE_FORMAT_KEYED_COLUMNS] = {\n      pure: true,\n      appendData: function (newData) {\n        var data = this._data;\n        each(newData, function (newCol, key) {\n          var oldCol = data[key] || (data[key] = []);\n\n          for (var i = 0; i < (newCol || []).length; i++) {\n            oldCol.push(newCol[i]);\n          }\n        });\n      }\n    }, _a[SOURCE_FORMAT_ORIGINAL] = {\n      appendData: appendDataSimply\n    }, _a[SOURCE_FORMAT_TYPED_ARRAY] = {\n      persistent: false,\n      pure: true,\n      appendData: function (newData) {\n        if (process.env.NODE_ENV !== 'production') {\n          assert(isTypedArray(newData), 'Added data must be TypedArray if data in initialization is TypedArray');\n        }\n\n        this._data = newData;\n      },\n      clean: function () {\n        this._offset += this.count();\n        this._data = null;\n      }\n    }, _a);\n\n    function appendDataSimply(newData) {\n      for (var i = 0; i < newData.length; i++) {\n        this._data.push(newData[i]);\n      }\n    }\n  }();\n\n  return DefaultDataProvider;\n}();\n\nexport { DefaultDataProvider };\n\nvar getItemSimply = function (rawData, startIndex, dimsDef, idx) {\n  return rawData[idx];\n};\n\nvar rawSourceItemGetterMap = (_a = {}, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef, idx) {\n  return rawData[idx + startIndex];\n}, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef, idx) {\n  idx += startIndex;\n  var item = [];\n  var data = rawData;\n\n  for (var i = 0; i < data.length; i++) {\n    var row = data[i];\n    item.push(row ? row[idx] : null);\n  }\n\n  return item;\n}, _a[SOURCE_FORMAT_OBJECT_ROWS] = getItemSimply, _a[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef, idx) {\n  var item = [];\n\n  for (var i = 0; i < dimsDef.length; i++) {\n    var dimName = dimsDef[i].name;\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (dimName == null) {\n        throw new Error();\n      }\n    }\n\n    var col = rawData[dimName];\n    item.push(col ? col[idx] : null);\n  }\n\n  return item;\n}, _a[SOURCE_FORMAT_ORIGINAL] = getItemSimply, _a);\nexport function getRawSourceItemGetter(sourceFormat, seriesLayoutBy) {\n  var method = rawSourceItemGetterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\n\n  if (process.env.NODE_ENV !== 'production') {\n    assert(method, 'Do not suppport get item on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\n  }\n\n  return method;\n}\n\nvar countSimply = function (rawData, startIndex, dimsDef) {\n  return rawData.length;\n};\n\nvar rawSourceDataCounterMap = (_b = {}, _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef) {\n  return Math.max(0, rawData.length - startIndex);\n}, _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef) {\n  var row = rawData[0];\n  return row ? Math.max(0, row.length - startIndex) : 0;\n}, _b[SOURCE_FORMAT_OBJECT_ROWS] = countSimply, _b[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef) {\n  var dimName = dimsDef[0].name;\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (dimName == null) {\n      throw new Error();\n    }\n  }\n\n  var col = rawData[dimName];\n  return col ? col.length : 0;\n}, _b[SOURCE_FORMAT_ORIGINAL] = countSimply, _b);\nexport function getRawSourceDataCounter(sourceFormat, seriesLayoutBy) {\n  var method = rawSourceDataCounterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\n\n  if (process.env.NODE_ENV !== 'production') {\n    assert(method, 'Do not suppport count on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\n  }\n\n  return method;\n}\n\nvar getRawValueSimply = function (dataItem, dimIndex, dimName) {\n  return dimIndex != null ? dataItem[dimIndex] : dataItem;\n};\n\nvar rawSourceValueGetterMap = (_c = {}, _c[SOURCE_FORMAT_ARRAY_ROWS] = getRawValueSimply, _c[SOURCE_FORMAT_OBJECT_ROWS] = function (dataItem, dimIndex, dimName) {\n  return dimIndex != null ? dataItem[dimName] : dataItem;\n}, _c[SOURCE_FORMAT_KEYED_COLUMNS] = getRawValueSimply, _c[SOURCE_FORMAT_ORIGINAL] = function (dataItem, dimIndex, dimName) {\n  var value = getDataItemValue(dataItem);\n  return dimIndex == null || !(value instanceof Array) ? value : value[dimIndex];\n}, _c[SOURCE_FORMAT_TYPED_ARRAY] = getRawValueSimply, _c);\nexport function getRawSourceValueGetter(sourceFormat) {\n  var method = rawSourceValueGetterMap[sourceFormat];\n\n  if (process.env.NODE_ENV !== 'production') {\n    assert(method, 'Do not suppport get value on \"' + sourceFormat + '\".');\n  }\n\n  return method;\n}\n\nfunction getMethodMapKey(sourceFormat, seriesLayoutBy) {\n  return sourceFormat === SOURCE_FORMAT_ARRAY_ROWS ? sourceFormat + '_' + seriesLayoutBy : sourceFormat;\n}\n\nexport function retrieveRawValue(data, dataIndex, dim) {\n  if (!data) {\n    return;\n  }\n\n  var dataItem = data.getRawDataItem(dataIndex);\n\n  if (dataItem == null) {\n    return;\n  }\n\n  var sourceFormat = data.getProvider().getSource().sourceFormat;\n  var dimName;\n  var dimIndex;\n  var dimInfo = data.getDimensionInfo(dim);\n\n  if (dimInfo) {\n    dimName = dimInfo.name;\n    dimIndex = dimInfo.index;\n  }\n\n  return getRawSourceValueGetter(sourceFormat)(dataItem, dimIndex, dimName);\n}\nexport function retrieveRawAttr(data, dataIndex, attr) {\n  if (!data) {\n    return;\n  }\n\n  var sourceFormat = data.getProvider().getSource().sourceFormat;\n\n  if (sourceFormat !== SOURCE_FORMAT_ORIGINAL && sourceFormat !== SOURCE_FORMAT_OBJECT_ROWS) {\n    return;\n  }\n\n  var dataItem = data.getRawDataItem(dataIndex);\n\n  if (sourceFormat === SOURCE_FORMAT_ORIGINAL && !isObject(dataItem)) {\n    dataItem = null;\n  }\n\n  if (dataItem) {\n    return dataItem[attr];\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { retrieveRawValue } from '../../data/helper/dataProvider';\nimport { formatTpl } from '../../util/format';\nimport { makePrintable } from '../../util/log';\nvar DIMENSION_LABEL_REG = /\\{@(.+?)\\}/g;\n\nvar DataFormatMixin = function () {\n  function DataFormatMixin() {}\n\n  DataFormatMixin.prototype.getDataParams = function (dataIndex, dataType) {\n    var data = this.getData(dataType);\n    var rawValue = this.getRawValue(dataIndex, dataType);\n    var rawDataIndex = data.getRawIndex(dataIndex);\n    var name = data.getName(dataIndex);\n    var itemOpt = data.getRawDataItem(dataIndex);\n    var style = data.getItemVisual(dataIndex, 'style');\n    var color = style && style[data.getItemVisual(dataIndex, 'drawType') || 'fill'];\n    var borderColor = style && style.stroke;\n    var mainType = this.mainType;\n    var isSeries = mainType === 'series';\n    var userOutput = data.userOutput;\n    return {\n      componentType: mainType,\n      componentSubType: this.subType,\n      componentIndex: this.componentIndex,\n      seriesType: isSeries ? this.subType : null,\n      seriesIndex: this.seriesIndex,\n      seriesId: isSeries ? this.id : null,\n      seriesName: isSeries ? this.name : null,\n      name: name,\n      dataIndex: rawDataIndex,\n      data: itemOpt,\n      dataType: dataType,\n      value: rawValue,\n      color: color,\n      borderColor: borderColor,\n      dimensionNames: userOutput ? userOutput.dimensionNames : null,\n      encode: userOutput ? userOutput.encode : null,\n      $vars: ['seriesName', 'name', 'value']\n    };\n  };\n\n  DataFormatMixin.prototype.getFormattedLabel = function (dataIndex, status, dataType, labelDimIndex, formatter, extendParams) {\n    status = status || 'normal';\n    var data = this.getData(dataType);\n    var params = this.getDataParams(dataIndex, dataType);\n\n    if (extendParams) {\n      params.value = extendParams.interpolatedValue;\n    }\n\n    if (labelDimIndex != null && zrUtil.isArray(params.value)) {\n      params.value = params.value[labelDimIndex];\n    }\n\n    if (!formatter) {\n      var itemModel = data.getItemModel(dataIndex);\n      formatter = itemModel.get(status === 'normal' ? ['label', 'formatter'] : [status, 'label', 'formatter']);\n    }\n\n    if (typeof formatter === 'function') {\n      params.status = status;\n      params.dimensionIndex = labelDimIndex;\n      return formatter(params);\n    } else if (typeof formatter === 'string') {\n      var str = formatTpl(formatter, params);\n      return str.replace(DIMENSION_LABEL_REG, function (origin, dimStr) {\n        var len = dimStr.length;\n        var dimLoose = dimStr.charAt(0) === '[' && dimStr.charAt(len - 1) === ']' ? +dimStr.slice(1, len - 1) : dimStr;\n        var val = retrieveRawValue(data, dataIndex, dimLoose);\n\n        if (extendParams && zrUtil.isArray(extendParams.interpolatedValue)) {\n          var dimInfo = data.getDimensionInfo(dimLoose);\n\n          if (dimInfo) {\n            val = extendParams.interpolatedValue[dimInfo.index];\n          }\n        }\n\n        return val != null ? val + '' : '';\n      });\n    }\n  };\n\n  DataFormatMixin.prototype.getRawValue = function (idx, dataType) {\n    return retrieveRawValue(this.getData(dataType), idx);\n  };\n\n  DataFormatMixin.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    return;\n  };\n\n  return DataFormatMixin;\n}();\n\nexport { DataFormatMixin };\n;\nexport function normalizeTooltipFormatResult(result) {\n  var markupText;\n  var markupFragment;\n\n  if (zrUtil.isObject(result)) {\n    if (result.type) {\n      markupFragment = result;\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn('The return type of `formatTooltip` is not supported: ' + makePrintable(result));\n      }\n    }\n  } else {\n    markupText = result;\n  }\n\n  return {\n    markupText: markupText,\n    markupFragment: markupFragment\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { assert, isArray } from 'zrender/lib/core/util';\n;\nexport function createTask(define) {\n  return new Task(define);\n}\n\nvar Task = function () {\n  function Task(define) {\n    define = define || {};\n    this._reset = define.reset;\n    this._plan = define.plan;\n    this._count = define.count;\n    this._onDirty = define.onDirty;\n    this._dirty = true;\n  }\n\n  Task.prototype.perform = function (performArgs) {\n    var upTask = this._upstream;\n    var skip = performArgs && performArgs.skip;\n\n    if (this._dirty && upTask) {\n      var context = this.context;\n      context.data = context.outputData = upTask.context.outputData;\n    }\n\n    if (this.__pipeline) {\n      this.__pipeline.currentTask = this;\n    }\n\n    var planResult;\n\n    if (this._plan && !skip) {\n      planResult = this._plan(this.context);\n    }\n\n    var lastModBy = normalizeModBy(this._modBy);\n    var lastModDataCount = this._modDataCount || 0;\n    var modBy = normalizeModBy(performArgs && performArgs.modBy);\n    var modDataCount = performArgs && performArgs.modDataCount || 0;\n\n    if (lastModBy !== modBy || lastModDataCount !== modDataCount) {\n      planResult = 'reset';\n    }\n\n    function normalizeModBy(val) {\n      !(val >= 1) && (val = 1);\n      return val;\n    }\n\n    var forceFirstProgress;\n\n    if (this._dirty || planResult === 'reset') {\n      this._dirty = false;\n      forceFirstProgress = this._doReset(skip);\n    }\n\n    this._modBy = modBy;\n    this._modDataCount = modDataCount;\n    var step = performArgs && performArgs.step;\n\n    if (upTask) {\n      if (process.env.NODE_ENV !== 'production') {\n        assert(upTask._outputDueEnd != null);\n      }\n\n      this._dueEnd = upTask._outputDueEnd;\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        assert(!this._progress || this._count);\n      }\n\n      this._dueEnd = this._count ? this._count(this.context) : Infinity;\n    }\n\n    if (this._progress) {\n      var start = this._dueIndex;\n      var end = Math.min(step != null ? this._dueIndex + step : Infinity, this._dueEnd);\n\n      if (!skip && (forceFirstProgress || start < end)) {\n        var progress = this._progress;\n\n        if (isArray(progress)) {\n          for (var i = 0; i < progress.length; i++) {\n            this._doProgress(progress[i], start, end, modBy, modDataCount);\n          }\n        } else {\n          this._doProgress(progress, start, end, modBy, modDataCount);\n        }\n      }\n\n      this._dueIndex = end;\n      var outputDueEnd = this._settedOutputEnd != null ? this._settedOutputEnd : end;\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(outputDueEnd >= this._outputDueEnd);\n      }\n\n      this._outputDueEnd = outputDueEnd;\n    } else {\n      this._dueIndex = this._outputDueEnd = this._settedOutputEnd != null ? this._settedOutputEnd : this._dueEnd;\n    }\n\n    return this.unfinished();\n  };\n\n  Task.prototype.dirty = function () {\n    this._dirty = true;\n    this._onDirty && this._onDirty(this.context);\n  };\n\n  Task.prototype._doProgress = function (progress, start, end, modBy, modDataCount) {\n    iterator.reset(start, end, modBy, modDataCount);\n    this._callingProgress = progress;\n\n    this._callingProgress({\n      start: start,\n      end: end,\n      count: end - start,\n      next: iterator.next\n    }, this.context);\n  };\n\n  Task.prototype._doReset = function (skip) {\n    this._dueIndex = this._outputDueEnd = this._dueEnd = 0;\n    this._settedOutputEnd = null;\n    var progress;\n    var forceFirstProgress;\n\n    if (!skip && this._reset) {\n      progress = this._reset(this.context);\n\n      if (progress && progress.progress) {\n        forceFirstProgress = progress.forceFirstProgress;\n        progress = progress.progress;\n      }\n\n      if (isArray(progress) && !progress.length) {\n        progress = null;\n      }\n    }\n\n    this._progress = progress;\n    this._modBy = this._modDataCount = null;\n    var downstream = this._downstream;\n    downstream && downstream.dirty();\n    return forceFirstProgress;\n  };\n\n  Task.prototype.unfinished = function () {\n    return this._progress && this._dueIndex < this._dueEnd;\n  };\n\n  Task.prototype.pipe = function (downTask) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(downTask && !downTask._disposed && downTask !== this);\n    }\n\n    if (this._downstream !== downTask || this._dirty) {\n      this._downstream = downTask;\n      downTask._upstream = this;\n      downTask.dirty();\n    }\n  };\n\n  Task.prototype.dispose = function () {\n    if (this._disposed) {\n      return;\n    }\n\n    this._upstream && (this._upstream._downstream = null);\n    this._downstream && (this._downstream._upstream = null);\n    this._dirty = false;\n    this._disposed = true;\n  };\n\n  Task.prototype.getUpstream = function () {\n    return this._upstream;\n  };\n\n  Task.prototype.getDownstream = function () {\n    return this._downstream;\n  };\n\n  Task.prototype.setOutputEnd = function (end) {\n    this._outputDueEnd = this._settedOutputEnd = end;\n  };\n\n  return Task;\n}();\n\nexport { Task };\n\nvar iterator = function () {\n  var end;\n  var current;\n  var modBy;\n  var modDataCount;\n  var winCount;\n  var it = {\n    reset: function (s, e, sStep, sCount) {\n      current = s;\n      end = e;\n      modBy = sStep;\n      modDataCount = sCount;\n      winCount = Math.ceil(modDataCount / modBy);\n      it.next = modBy > 1 && modDataCount > 0 ? modNext : sequentialNext;\n    }\n  };\n  return it;\n\n  function sequentialNext() {\n    return current < end ? current++ : null;\n  }\n\n  function modNext() {\n    var dataIndex = current % winCount * modBy + Math.ceil(current / winCount);\n    var result = current >= end ? null : dataIndex < modDataCount ? dataIndex : current;\n    current++;\n    return result;\n  }\n}();","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parseDate, numericToNumber } from '../../util/number';\nimport { createHashMap, trim, hasOwn } from 'zrender/lib/core/util';\nimport { throwError } from '../../util/log';\nexport function parseDataValue(value, opt) {\n  var dimType = opt && opt.type;\n\n  if (dimType === 'ordinal') {\n    var ordinalMeta = opt && opt.ordinalMeta;\n    return ordinalMeta ? ordinalMeta.parseAndCollect(value) : value;\n  }\n\n  if (dimType === 'time' && typeof value !== 'number' && value != null && value !== '-') {\n    value = +parseDate(value);\n  }\n\n  return value == null || value === '' ? NaN : +value;\n}\n;\nvar valueParserMap = createHashMap({\n  'number': function (val) {\n    return parseFloat(val);\n  },\n  'time': function (val) {\n    return +parseDate(val);\n  },\n  'trim': function (val) {\n    return typeof val === 'string' ? trim(val) : val;\n  }\n});\nexport function getRawValueParser(type) {\n  return valueParserMap.get(type);\n}\nvar ORDER_COMPARISON_OP_MAP = {\n  lt: function (lval, rval) {\n    return lval < rval;\n  },\n  lte: function (lval, rval) {\n    return lval <= rval;\n  },\n  gt: function (lval, rval) {\n    return lval > rval;\n  },\n  gte: function (lval, rval) {\n    return lval >= rval;\n  }\n};\n\nvar FilterOrderComparator = function () {\n  function FilterOrderComparator(op, rval) {\n    if (typeof rval !== 'number') {\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'rvalue of \"<\", \">\", \"<=\", \">=\" can only be number in filter.';\n      }\n\n      throwError(errMsg);\n    }\n\n    this._opFn = ORDER_COMPARISON_OP_MAP[op];\n    this._rvalFloat = numericToNumber(rval);\n  }\n\n  FilterOrderComparator.prototype.evaluate = function (lval) {\n    return typeof lval === 'number' ? this._opFn(lval, this._rvalFloat) : this._opFn(numericToNumber(lval), this._rvalFloat);\n  };\n\n  return FilterOrderComparator;\n}();\n\nvar SortOrderComparator = function () {\n  function SortOrderComparator(order, incomparable) {\n    var isDesc = order === 'desc';\n    this._resultLT = isDesc ? 1 : -1;\n\n    if (incomparable == null) {\n      incomparable = isDesc ? 'min' : 'max';\n    }\n\n    this._incomparable = incomparable === 'min' ? -Infinity : Infinity;\n  }\n\n  SortOrderComparator.prototype.evaluate = function (lval, rval) {\n    var lvalTypeof = typeof lval;\n    var rvalTypeof = typeof rval;\n    var lvalFloat = lvalTypeof === 'number' ? lval : numericToNumber(lval);\n    var rvalFloat = rvalTypeof === 'number' ? rval : numericToNumber(rval);\n    var lvalNotNumeric = isNaN(lvalFloat);\n    var rvalNotNumeric = isNaN(rvalFloat);\n\n    if (lvalNotNumeric) {\n      lvalFloat = this._incomparable;\n    }\n\n    if (rvalNotNumeric) {\n      rvalFloat = this._incomparable;\n    }\n\n    if (lvalNotNumeric && rvalNotNumeric) {\n      var lvalIsStr = lvalTypeof === 'string';\n      var rvalIsStr = rvalTypeof === 'string';\n\n      if (lvalIsStr) {\n        lvalFloat = rvalIsStr ? lval : 0;\n      }\n\n      if (rvalIsStr) {\n        rvalFloat = lvalIsStr ? rval : 0;\n      }\n    }\n\n    return lvalFloat < rvalFloat ? this._resultLT : lvalFloat > rvalFloat ? -this._resultLT : 0;\n  };\n\n  return SortOrderComparator;\n}();\n\nexport { SortOrderComparator };\n\nvar FilterEqualityComparator = function () {\n  function FilterEqualityComparator(isEq, rval) {\n    this._rval = rval;\n    this._isEQ = isEq;\n    this._rvalTypeof = typeof rval;\n    this._rvalFloat = numericToNumber(rval);\n  }\n\n  FilterEqualityComparator.prototype.evaluate = function (lval) {\n    var eqResult = lval === this._rval;\n\n    if (!eqResult) {\n      var lvalTypeof = typeof lval;\n\n      if (lvalTypeof !== this._rvalTypeof && (lvalTypeof === 'number' || this._rvalTypeof === 'number')) {\n        eqResult = numericToNumber(lval) === this._rvalFloat;\n      }\n    }\n\n    return this._isEQ ? eqResult : !eqResult;\n  };\n\n  return FilterEqualityComparator;\n}();\n\nexport function createFilterComparator(op, rval) {\n  return op === 'eq' || op === 'ne' ? new FilterEqualityComparator(op === 'eq', rval) : hasOwn(ORDER_COMPARISON_OP_MAP, op) ? new FilterOrderComparator(op, rval) : null;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { SERIES_LAYOUT_BY_COLUMN, SOURCE_FORMAT_OBJECT_ROWS, SOURCE_FORMAT_ARRAY_ROWS } from '../../util/types';\nimport { normalizeToArray } from '../../util/model';\nimport { createHashMap, bind, each, hasOwn, map, clone, isObject, extend } from 'zrender/lib/core/util';\nimport { getRawSourceItemGetter, getRawSourceDataCounter, getRawSourceValueGetter } from './dataProvider';\nimport { parseDataValue } from './dataValueHelper';\nimport { consoleLog, makePrintable, throwError } from '../../util/log';\nimport { createSource, detectSourceFormat } from '../Source';\n\nvar ExternalSource = function () {\n  function ExternalSource() {}\n\n  ExternalSource.prototype.getRawData = function () {\n    throw new Error('not supported');\n  };\n\n  ExternalSource.prototype.getRawDataItem = function (dataIndex) {\n    throw new Error('not supported');\n  };\n\n  ExternalSource.prototype.cloneRawData = function () {\n    return;\n  };\n\n  ExternalSource.prototype.getDimensionInfo = function (dim) {\n    return;\n  };\n\n  ExternalSource.prototype.cloneAllDimensionInfo = function () {\n    return;\n  };\n\n  ExternalSource.prototype.count = function () {\n    return;\n  };\n\n  ExternalSource.prototype.retrieveValue = function (dataIndex, dimIndex) {\n    return;\n  };\n\n  ExternalSource.prototype.retrieveValueFromItem = function (dataItem, dimIndex) {\n    return;\n  };\n\n  ExternalSource.prototype.convertValue = function (rawVal, dimInfo) {\n    return parseDataValue(rawVal, dimInfo);\n  };\n\n  return ExternalSource;\n}();\n\nexport { ExternalSource };\n\nfunction createExternalSource(internalSource, externalTransform) {\n  var extSource = new ExternalSource();\n  var data = internalSource.data;\n  var sourceFormat = extSource.sourceFormat = internalSource.sourceFormat;\n  var sourceHeaderCount = internalSource.startIndex;\n  var errMsg = '';\n\n  if (internalSource.seriesLayoutBy !== SERIES_LAYOUT_BY_COLUMN) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = '`seriesLayoutBy` of upstream dataset can only be \"column\" in data transform.';\n    }\n\n    throwError(errMsg);\n  }\n\n  var dimensions = [];\n  var dimsByName = {};\n  var dimsDef = internalSource.dimensionsDefine;\n\n  if (dimsDef) {\n    each(dimsDef, function (dimDef, idx) {\n      var name = dimDef.name;\n      var dimDefExt = {\n        index: idx,\n        name: name,\n        displayName: dimDef.displayName\n      };\n      dimensions.push(dimDefExt);\n\n      if (name != null) {\n        var errMsg_1 = '';\n\n        if (hasOwn(dimsByName, name)) {\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg_1 = 'dimension name \"' + name + '\" duplicated.';\n          }\n\n          throwError(errMsg_1);\n        }\n\n        dimsByName[name] = dimDefExt;\n      }\n    });\n  } else {\n    for (var i = 0; i < internalSource.dimensionsDetectedCount || 0; i++) {\n      dimensions.push({\n        index: i\n      });\n    }\n  }\n\n  var rawItemGetter = getRawSourceItemGetter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\n\n  if (externalTransform.__isBuiltIn) {\n    extSource.getRawDataItem = function (dataIndex) {\n      return rawItemGetter(data, sourceHeaderCount, dimensions, dataIndex);\n    };\n\n    extSource.getRawData = bind(getRawData, null, internalSource);\n  }\n\n  extSource.cloneRawData = bind(cloneRawData, null, internalSource);\n  var rawCounter = getRawSourceDataCounter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\n  extSource.count = bind(rawCounter, null, data, sourceHeaderCount, dimensions);\n  var rawValueGetter = getRawSourceValueGetter(sourceFormat);\n\n  extSource.retrieveValue = function (dataIndex, dimIndex) {\n    var rawItem = rawItemGetter(data, sourceHeaderCount, dimensions, dataIndex);\n    return retrieveValueFromItem(rawItem, dimIndex);\n  };\n\n  var retrieveValueFromItem = extSource.retrieveValueFromItem = function (dataItem, dimIndex) {\n    if (dataItem == null) {\n      return;\n    }\n\n    var dimDef = dimensions[dimIndex];\n\n    if (dimDef) {\n      return rawValueGetter(dataItem, dimIndex, dimDef.name);\n    }\n  };\n\n  extSource.getDimensionInfo = bind(getDimensionInfo, null, dimensions, dimsByName);\n  extSource.cloneAllDimensionInfo = bind(cloneAllDimensionInfo, null, dimensions);\n  return extSource;\n}\n\nfunction getRawData(upstream) {\n  var sourceFormat = upstream.sourceFormat;\n\n  if (!isSupportedSourceFormat(sourceFormat)) {\n    var errMsg = '';\n\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = '`getRawData` is not supported in source format ' + sourceFormat;\n    }\n\n    throwError(errMsg);\n  }\n\n  return upstream.data;\n}\n\nfunction cloneRawData(upstream) {\n  var sourceFormat = upstream.sourceFormat;\n  var data = upstream.data;\n\n  if (!isSupportedSourceFormat(sourceFormat)) {\n    var errMsg = '';\n\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = '`cloneRawData` is not supported in source format ' + sourceFormat;\n    }\n\n    throwError(errMsg);\n  }\n\n  if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n    var result = [];\n\n    for (var i = 0, len = data.length; i < len; i++) {\n      result.push(data[i].slice());\n    }\n\n    return result;\n  } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n    var result = [];\n\n    for (var i = 0, len = data.length; i < len; i++) {\n      result.push(extend({}, data[i]));\n    }\n\n    return result;\n  }\n}\n\nfunction getDimensionInfo(dimensions, dimsByName, dim) {\n  if (dim == null) {\n    return;\n  }\n\n  if (typeof dim === 'number' || !isNaN(dim) && !hasOwn(dimsByName, dim)) {\n    return dimensions[dim];\n  } else if (hasOwn(dimsByName, dim)) {\n    return dimsByName[dim];\n  }\n}\n\nfunction cloneAllDimensionInfo(dimensions) {\n  return clone(dimensions);\n}\n\nvar externalTransformMap = createHashMap();\nexport function registerExternalTransform(externalTransform) {\n  externalTransform = clone(externalTransform);\n  var type = externalTransform.type;\n  var errMsg = '';\n\n  if (!type) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'Must have a `type` when `registerTransform`.';\n    }\n\n    throwError(errMsg);\n  }\n\n  var typeParsed = type.split(':');\n\n  if (typeParsed.length !== 2) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'Name must include namespace like \"ns:regression\".';\n    }\n\n    throwError(errMsg);\n  }\n\n  var isBuiltIn = false;\n\n  if (typeParsed[0] === 'echarts') {\n    type = typeParsed[1];\n    isBuiltIn = true;\n  }\n\n  externalTransform.__isBuiltIn = isBuiltIn;\n  externalTransformMap.set(type, externalTransform);\n}\nexport function applyDataTransform(rawTransOption, sourceList, infoForPrint) {\n  var pipedTransOption = normalizeToArray(rawTransOption);\n  var pipeLen = pipedTransOption.length;\n  var errMsg = '';\n\n  if (!pipeLen) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'If `transform` declared, it should at least contain one transform.';\n    }\n\n    throwError(errMsg);\n  }\n\n  for (var i = 0, len = pipeLen; i < len; i++) {\n    var transOption = pipedTransOption[i];\n    sourceList = applySingleDataTransform(transOption, sourceList, infoForPrint, pipeLen === 1 ? null : i);\n\n    if (i !== len - 1) {\n      sourceList.length = Math.max(sourceList.length, 1);\n    }\n  }\n\n  return sourceList;\n}\n\nfunction applySingleDataTransform(transOption, upSourceList, infoForPrint, pipeIndex) {\n  var errMsg = '';\n\n  if (!upSourceList.length) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'Must have at least one upstream dataset.';\n    }\n\n    throwError(errMsg);\n  }\n\n  if (!isObject(transOption)) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'transform declaration must be an object rather than ' + typeof transOption + '.';\n    }\n\n    throwError(errMsg);\n  }\n\n  var transType = transOption.type;\n  var externalTransform = externalTransformMap.get(transType);\n\n  if (!externalTransform) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'Can not find transform on type \"' + transType + '\".';\n    }\n\n    throwError(errMsg);\n  }\n\n  var extUpSourceList = map(upSourceList, function (upSource) {\n    return createExternalSource(upSource, externalTransform);\n  });\n  var resultList = normalizeToArray(externalTransform.transform({\n    upstream: extUpSourceList[0],\n    upstreamList: extUpSourceList,\n    config: clone(transOption.config)\n  }));\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (transOption.print) {\n      var printStrArr = map(resultList, function (extSource) {\n        var pipeIndexStr = pipeIndex != null ? ' === pipe index: ' + pipeIndex : '';\n        return ['=== dataset index: ' + infoForPrint.datasetIndex + pipeIndexStr + ' ===', '- transform result data:', makePrintable(extSource.data), '- transform result dimensions:', makePrintable(extSource.dimensions)].join('\\n');\n      }).join('\\n');\n      consoleLog(printStrArr);\n    }\n  }\n\n  return map(resultList, function (result, resultIndex) {\n    var errMsg = '';\n\n    if (!isObject(result)) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'A transform should not return some empty results.';\n      }\n\n      throwError(errMsg);\n    }\n\n    if (!result.data) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'Transform result data should be not be null or undefined';\n      }\n\n      throwError(errMsg);\n    }\n\n    var sourceFormat = detectSourceFormat(result.data);\n\n    if (!isSupportedSourceFormat(sourceFormat)) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'Transform result data should be array rows or object rows.';\n      }\n\n      throwError(errMsg);\n    }\n\n    var resultMetaRawOption;\n    var firstUpSource = upSourceList[0];\n\n    if (firstUpSource && resultIndex === 0 && !result.dimensions) {\n      var startIndex = firstUpSource.startIndex;\n\n      if (startIndex) {\n        result.data = firstUpSource.data.slice(0, startIndex).concat(result.data);\n      }\n\n      resultMetaRawOption = {\n        seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN,\n        sourceHeader: startIndex,\n        dimensions: firstUpSource.metaRawOption.dimensions\n      };\n    } else {\n      resultMetaRawOption = {\n        seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN,\n        sourceHeader: 0,\n        dimensions: result.dimensions\n      };\n    }\n\n    return createSource(result.data, resultMetaRawOption, null, null);\n  });\n}\n\nfunction isSupportedSourceFormat(sourceFormat) {\n  return sourceFormat === SOURCE_FORMAT_ARRAY_ROWS || sourceFormat === SOURCE_FORMAT_OBJECT_ROWS;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { setAsPrimitive, map, isTypedArray, assert, each, retrieve2 } from 'zrender/lib/core/util';\nimport { createSource, cloneSourceShallow } from '../Source';\nimport { SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ORIGINAL } from '../../util/types';\nimport { querySeriesUpstreamDatasetModel, queryDatasetUpstreamDatasetModels } from './sourceHelper';\nimport { applyDataTransform } from './transform';\n\nvar SourceManager = function () {\n  function SourceManager(sourceHost) {\n    this._sourceList = [];\n    this._upstreamSignList = [];\n    this._versionSignBase = 0;\n    this._sourceHost = sourceHost;\n  }\n\n  SourceManager.prototype.dirty = function () {\n    this._setLocalSource([], []);\n  };\n\n  SourceManager.prototype._setLocalSource = function (sourceList, upstreamSignList) {\n    this._sourceList = sourceList;\n    this._upstreamSignList = upstreamSignList;\n    this._versionSignBase++;\n\n    if (this._versionSignBase > 9e10) {\n      this._versionSignBase = 0;\n    }\n  };\n\n  SourceManager.prototype._getVersionSign = function () {\n    return this._sourceHost.uid + '_' + this._versionSignBase;\n  };\n\n  SourceManager.prototype.prepareSource = function () {\n    if (this._isDirty()) {\n      this._createSource();\n    }\n  };\n\n  SourceManager.prototype._createSource = function () {\n    this._setLocalSource([], []);\n\n    var sourceHost = this._sourceHost;\n\n    var upSourceMgrList = this._getUpstreamSourceManagers();\n\n    var hasUpstream = !!upSourceMgrList.length;\n    var resultSourceList;\n    var upstreamSignList;\n\n    if (isSeries(sourceHost)) {\n      var seriesModel = sourceHost;\n      var data = void 0;\n      var sourceFormat = void 0;\n      var upSource = void 0;\n\n      if (hasUpstream) {\n        var upSourceMgr = upSourceMgrList[0];\n        upSourceMgr.prepareSource();\n        upSource = upSourceMgr.getSource();\n        data = upSource.data;\n        sourceFormat = upSource.sourceFormat;\n        upstreamSignList = [upSourceMgr._getVersionSign()];\n      } else {\n        data = seriesModel.get('data', true);\n        sourceFormat = isTypedArray(data) ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL;\n        upstreamSignList = [];\n      }\n\n      var newMetaRawOption = this._getSourceMetaRawOption();\n\n      var upMetaRawOption = upSource ? upSource.metaRawOption : null;\n      var seriesLayoutBy = retrieve2(newMetaRawOption.seriesLayoutBy, upMetaRawOption ? upMetaRawOption.seriesLayoutBy : null);\n      var sourceHeader = retrieve2(newMetaRawOption.sourceHeader, upMetaRawOption ? upMetaRawOption.sourceHeader : null);\n      var dimensions = retrieve2(newMetaRawOption.dimensions, upMetaRawOption ? upMetaRawOption.dimensions : null);\n      resultSourceList = [createSource(data, {\n        seriesLayoutBy: seriesLayoutBy,\n        sourceHeader: sourceHeader,\n        dimensions: dimensions\n      }, sourceFormat, seriesModel.get('encode', true))];\n    } else {\n      var datasetModel = sourceHost;\n\n      if (hasUpstream) {\n        var result = this._applyTransform(upSourceMgrList);\n\n        resultSourceList = result.sourceList;\n        upstreamSignList = result.upstreamSignList;\n      } else {\n        var sourceData = datasetModel.get('source', true);\n        resultSourceList = [createSource(sourceData, this._getSourceMetaRawOption(), null, null)];\n        upstreamSignList = [];\n      }\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(resultSourceList && upstreamSignList);\n    }\n\n    this._setLocalSource(resultSourceList, upstreamSignList);\n  };\n\n  SourceManager.prototype._applyTransform = function (upMgrList) {\n    var datasetModel = this._sourceHost;\n    var transformOption = datasetModel.get('transform', true);\n    var fromTransformResult = datasetModel.get('fromTransformResult', true);\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(fromTransformResult != null || transformOption != null);\n    }\n\n    if (fromTransformResult != null) {\n      var errMsg = '';\n\n      if (upMgrList.length !== 1) {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = 'When using `fromTransformResult`, there should be only one upstream dataset';\n        }\n\n        doThrow(errMsg);\n      }\n    }\n\n    var sourceList;\n    var upSourceList = [];\n    var upstreamSignList = [];\n    each(upMgrList, function (upMgr) {\n      upMgr.prepareSource();\n      var upSource = upMgr.getSource(fromTransformResult || 0);\n      var errMsg = '';\n\n      if (fromTransformResult != null && !upSource) {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = 'Can not retrieve result by `fromTransformResult`: ' + fromTransformResult;\n        }\n\n        doThrow(errMsg);\n      }\n\n      upSourceList.push(upSource);\n      upstreamSignList.push(upMgr._getVersionSign());\n    });\n\n    if (transformOption) {\n      sourceList = applyDataTransform(transformOption, upSourceList, {\n        datasetIndex: datasetModel.componentIndex\n      });\n    } else if (fromTransformResult != null) {\n      sourceList = [cloneSourceShallow(upSourceList[0])];\n    }\n\n    return {\n      sourceList: sourceList,\n      upstreamSignList: upstreamSignList\n    };\n  };\n\n  SourceManager.prototype._isDirty = function () {\n    var sourceList = this._sourceList;\n\n    if (!sourceList.length) {\n      return true;\n    }\n\n    var upSourceMgrList = this._getUpstreamSourceManagers();\n\n    for (var i = 0; i < upSourceMgrList.length; i++) {\n      var upSrcMgr = upSourceMgrList[i];\n\n      if (upSrcMgr._isDirty() || this._upstreamSignList[i] !== upSrcMgr._getVersionSign()) {\n        return true;\n      }\n    }\n  };\n\n  SourceManager.prototype.getSource = function (sourceIndex) {\n    return this._sourceList[sourceIndex || 0];\n  };\n\n  SourceManager.prototype._getUpstreamSourceManagers = function () {\n    var sourceHost = this._sourceHost;\n\n    if (isSeries(sourceHost)) {\n      var datasetModel = querySeriesUpstreamDatasetModel(sourceHost);\n      return !datasetModel ? [] : [datasetModel.getSourceManager()];\n    } else {\n      return map(queryDatasetUpstreamDatasetModels(sourceHost), function (datasetModel) {\n        return datasetModel.getSourceManager();\n      });\n    }\n  };\n\n  SourceManager.prototype._getSourceMetaRawOption = function () {\n    var sourceHost = this._sourceHost;\n    var seriesLayoutBy;\n    var sourceHeader;\n    var dimensions;\n\n    if (isSeries(sourceHost)) {\n      seriesLayoutBy = sourceHost.get('seriesLayoutBy', true);\n      sourceHeader = sourceHost.get('sourceHeader', true);\n      dimensions = sourceHost.get('dimensions', true);\n    } else if (!this._getUpstreamSourceManagers().length) {\n      var model = sourceHost;\n      seriesLayoutBy = model.get('seriesLayoutBy', true);\n      sourceHeader = model.get('sourceHeader', true);\n      dimensions = model.get('dimensions', true);\n    }\n\n    return {\n      seriesLayoutBy: seriesLayoutBy,\n      sourceHeader: sourceHeader,\n      dimensions: dimensions\n    };\n  };\n\n  return SourceManager;\n}();\n\nexport { SourceManager };\nexport function disableTransformOptionMerge(datasetModel) {\n  var transformOption = datasetModel.option.transform;\n  transformOption && setAsPrimitive(datasetModel.option.transform);\n}\n\nfunction isSeries(sourceHost) {\n  return sourceHost.mainType === 'series';\n}\n\nfunction doThrow(errMsg) {\n  throw new Error(errMsg);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { getTooltipMarker, encodeHTML, makeValueReadable, convertToColorString } from '../../util/format';\nimport { isString, each, hasOwn, isArray, map, assert, extend } from 'zrender/lib/core/util';\nimport { SortOrderComparator } from '../../data/helper/dataValueHelper';\nimport { getRandomIdBase } from '../../util/number';\nvar TOOLTIP_LINE_HEIGHT_CSS = 'line-height:1';\n\nfunction getTooltipTextStyle(textStyle, renderMode) {\n  var nameFontColor = textStyle.color || '#6e7079';\n  var nameFontSize = textStyle.fontSize || 12;\n  var nameFontWeight = textStyle.fontWeight || '400';\n  var valueFontColor = textStyle.color || '#464646';\n  var valueFontSize = textStyle.fontSize || 14;\n  var valueFontWeight = textStyle.fontWeight || '900';\n\n  if (renderMode === 'html') {\n    return {\n      nameStyle: \"font-size:\" + nameFontSize + \"px;color:\" + nameFontColor + \";font-weight:\" + nameFontWeight,\n      valueStyle: \"font-size:\" + valueFontSize + \"px;color:\" + valueFontColor + \";font-weight:\" + valueFontWeight\n    };\n  } else {\n    return {\n      nameStyle: {\n        fontSize: nameFontSize,\n        fill: nameFontColor,\n        fontWeight: nameFontWeight\n      },\n      valueStyle: {\n        fontSize: valueFontSize,\n        fill: valueFontColor,\n        fontWeight: valueFontWeight\n      }\n    };\n  }\n}\n\nvar HTML_GAPS = [0, 10, 20, 30];\nvar RICH_TEXT_GAPS = ['', '\\n', '\\n\\n', '\\n\\n\\n'];\nexport function createTooltipMarkup(type, option) {\n  option.type = type;\n  return option;\n}\n\nfunction getBuilder(fragment) {\n  return hasOwn(builderMap, fragment.type) && builderMap[fragment.type];\n}\n\nvar builderMap = {\n  section: {\n    planLayout: function (fragment) {\n      var subBlockLen = fragment.blocks.length;\n      var thisBlockHasInnerGap = subBlockLen > 1 || subBlockLen > 0 && !fragment.noHeader;\n      var thisGapLevelBetweenSubBlocks = 0;\n      each(fragment.blocks, function (subBlock) {\n        getBuilder(subBlock).planLayout(subBlock);\n        var subGapLevel = subBlock.__gapLevelBetweenSubBlocks;\n\n        if (subGapLevel >= thisGapLevelBetweenSubBlocks) {\n          thisGapLevelBetweenSubBlocks = subGapLevel + (thisBlockHasInnerGap && (!subGapLevel || subBlock.type === 'section' && !subBlock.noHeader) ? 1 : 0);\n        }\n      });\n      fragment.__gapLevelBetweenSubBlocks = thisGapLevelBetweenSubBlocks;\n    },\n    build: function (ctx, fragment, topMarginForOuterGap, toolTipTextStyle) {\n      var noHeader = fragment.noHeader;\n      var gaps = getGap(fragment);\n      var subMarkupText = buildSubBlocks(ctx, fragment, noHeader ? topMarginForOuterGap : gaps.html, toolTipTextStyle);\n\n      if (noHeader) {\n        return subMarkupText;\n      }\n\n      var displayableHeader = makeValueReadable(fragment.header, 'ordinal', ctx.useUTC);\n      var nameStyle = getTooltipTextStyle(toolTipTextStyle, ctx.renderMode).nameStyle;\n\n      if (ctx.renderMode === 'richText') {\n        return wrapInlineNameRichText(ctx, displayableHeader, nameStyle) + gaps.richText + subMarkupText;\n      } else {\n        return wrapBlockHTML(\"<div style=\\\"\" + nameStyle + \";\" + TOOLTIP_LINE_HEIGHT_CSS + \";\\\">\" + encodeHTML(displayableHeader) + '</div>' + subMarkupText, topMarginForOuterGap);\n      }\n    }\n  },\n  nameValue: {\n    planLayout: function (fragment) {\n      fragment.__gapLevelBetweenSubBlocks = 0;\n    },\n    build: function (ctx, fragment, topMarginForOuterGap, toolTipTextStyle) {\n      var renderMode = ctx.renderMode;\n      var noName = fragment.noName;\n      var noValue = fragment.noValue;\n      var noMarker = !fragment.markerType;\n      var name = fragment.name;\n      var value = fragment.value;\n      var useUTC = ctx.useUTC;\n\n      if (noName && noValue) {\n        return;\n      }\n\n      var markerStr = noMarker ? '' : ctx.markupStyleCreator.makeTooltipMarker(fragment.markerType, fragment.markerColor || '#333', renderMode);\n      var readableName = noName ? '' : makeValueReadable(name, 'ordinal', useUTC);\n      var valueTypeOption = fragment.valueType;\n      var readableValueList = noValue ? [] : isArray(value) ? map(value, function (val, idx) {\n        return makeValueReadable(val, isArray(valueTypeOption) ? valueTypeOption[idx] : valueTypeOption, useUTC);\n      }) : [makeValueReadable(value, isArray(valueTypeOption) ? valueTypeOption[0] : valueTypeOption, useUTC)];\n      var valueAlignRight = !noMarker || !noName;\n      var valueCloseToMarker = !noMarker && noName;\n\n      var _a = getTooltipTextStyle(toolTipTextStyle, renderMode),\n          nameStyle = _a.nameStyle,\n          valueStyle = _a.valueStyle;\n\n      return renderMode === 'richText' ? (noMarker ? '' : markerStr) + (noName ? '' : wrapInlineNameRichText(ctx, readableName, nameStyle)) + (noValue ? '' : wrapInlineValueRichText(ctx, readableValueList, valueAlignRight, valueCloseToMarker, valueStyle)) : wrapBlockHTML((noMarker ? '' : markerStr) + (noName ? '' : wrapInlineNameHTML(readableName, !noMarker, nameStyle)) + (noValue ? '' : wrapInlineValueHTML(readableValueList, valueAlignRight, valueCloseToMarker, valueStyle)), topMarginForOuterGap);\n    }\n  }\n};\n\nfunction buildSubBlocks(ctx, fragment, topMarginForOuterGap, tooltipTextStyle) {\n  var subMarkupTextList = [];\n  var subBlocks = fragment.blocks || [];\n  assert(!subBlocks || isArray(subBlocks));\n  subBlocks = subBlocks || [];\n  var orderMode = ctx.orderMode;\n\n  if (fragment.sortBlocks && orderMode) {\n    subBlocks = subBlocks.slice();\n    var orderMap = {\n      valueAsc: 'asc',\n      valueDesc: 'desc'\n    };\n\n    if (hasOwn(orderMap, orderMode)) {\n      var comparator_1 = new SortOrderComparator(orderMap[orderMode], null);\n      subBlocks.sort(function (a, b) {\n        return comparator_1.evaluate(a.sortParam, b.sortParam);\n      });\n    } else if (orderMode === 'seriesDesc') {\n      subBlocks.reverse();\n    }\n  }\n\n  var gaps = getGap(fragment);\n  each(subBlocks, function (subBlock, idx) {\n    var subMarkupText = getBuilder(subBlock).build(ctx, subBlock, idx > 0 ? gaps.html : 0, tooltipTextStyle);\n    subMarkupText != null && subMarkupTextList.push(subMarkupText);\n  });\n\n  if (!subMarkupTextList.length) {\n    return;\n  }\n\n  return ctx.renderMode === 'richText' ? subMarkupTextList.join(gaps.richText) : wrapBlockHTML(subMarkupTextList.join(''), topMarginForOuterGap);\n}\n\nexport function buildTooltipMarkup(fragment, markupStyleCreator, renderMode, orderMode, useUTC, toolTipTextStyle) {\n  if (!fragment) {\n    return;\n  }\n\n  var builder = getBuilder(fragment);\n  builder.planLayout(fragment);\n  var ctx = {\n    useUTC: useUTC,\n    renderMode: renderMode,\n    orderMode: orderMode,\n    markupStyleCreator: markupStyleCreator\n  };\n  return builder.build(ctx, fragment, 0, toolTipTextStyle);\n}\n\nfunction getGap(fragment) {\n  var gapLevelBetweenSubBlocks = fragment.__gapLevelBetweenSubBlocks;\n  return {\n    html: HTML_GAPS[gapLevelBetweenSubBlocks],\n    richText: RICH_TEXT_GAPS[gapLevelBetweenSubBlocks]\n  };\n}\n\nfunction wrapBlockHTML(encodedContent, topGap) {\n  var clearfix = '<div style=\"clear:both\"></div>';\n  var marginCSS = \"margin: \" + topGap + \"px 0 0\";\n  return \"<div style=\\\"\" + marginCSS + \";\" + TOOLTIP_LINE_HEIGHT_CSS + \";\\\">\" + encodedContent + clearfix + '</div>';\n}\n\nfunction wrapInlineNameHTML(name, leftHasMarker, style) {\n  var marginCss = leftHasMarker ? 'margin-left:2px' : '';\n  return \"<span style=\\\"\" + style + \";\" + marginCss + \"\\\">\" + encodeHTML(name) + '</span>';\n}\n\nfunction wrapInlineValueHTML(valueList, alignRight, valueCloseToMarker, style) {\n  var paddingStr = valueCloseToMarker ? '10px' : '20px';\n  var alignCSS = alignRight ? \"float:right;margin-left:\" + paddingStr : '';\n  return \"<span style=\\\"\" + alignCSS + \";\" + style + \"\\\">\" + map(valueList, function (value) {\n    return encodeHTML(value);\n  }).join('&nbsp;&nbsp;') + '</span>';\n}\n\nfunction wrapInlineNameRichText(ctx, name, style) {\n  return ctx.markupStyleCreator.wrapRichTextStyle(name, style);\n}\n\nfunction wrapInlineValueRichText(ctx, valueList, alignRight, valueCloseToMarker, style) {\n  var styles = [style];\n  var paddingLeft = valueCloseToMarker ? 10 : 20;\n  alignRight && styles.push({\n    padding: [0, 0, 0, paddingLeft],\n    align: 'right'\n  });\n  return ctx.markupStyleCreator.wrapRichTextStyle(valueList.join('  '), styles);\n}\n\nexport function retrieveVisualColorForTooltipMarker(series, dataIndex) {\n  var style = series.getData().getItemVisual(dataIndex, 'style');\n  var color = style[series.visualDrawType];\n  return convertToColorString(color);\n}\nexport function getPaddingFromTooltipModel(model, renderMode) {\n  var padding = model.get('padding');\n  return padding != null ? padding : renderMode === 'richText' ? [8, 10] : 10;\n}\n\nvar TooltipMarkupStyleCreator = function () {\n  function TooltipMarkupStyleCreator() {\n    this.richTextStyles = {};\n    this._nextStyleNameId = getRandomIdBase();\n  }\n\n  TooltipMarkupStyleCreator.prototype._generateStyleName = function () {\n    return '__EC_aUTo_' + this._nextStyleNameId++;\n  };\n\n  TooltipMarkupStyleCreator.prototype.makeTooltipMarker = function (markerType, colorStr, renderMode) {\n    var markerId = renderMode === 'richText' ? this._generateStyleName() : null;\n    var marker = getTooltipMarker({\n      color: colorStr,\n      type: markerType,\n      renderMode: renderMode,\n      markerId: markerId\n    });\n\n    if (isString(marker)) {\n      return marker;\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        assert(markerId);\n      }\n\n      this.richTextStyles[markerId] = marker.style;\n      return marker.content;\n    }\n  };\n\n  TooltipMarkupStyleCreator.prototype.wrapRichTextStyle = function (text, styles) {\n    var finalStl = {};\n\n    if (isArray(styles)) {\n      each(styles, function (stl) {\n        return extend(finalStl, stl);\n      });\n    } else {\n      extend(finalStl, styles);\n    }\n\n    var styleName = this._generateStyleName();\n\n    this.richTextStyles[styleName] = finalStl;\n    return \"{\" + styleName + \"|\" + text + \"}\";\n  };\n\n  return TooltipMarkupStyleCreator;\n}();\n\nexport { TooltipMarkupStyleCreator };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { trim, isArray, each, reduce } from 'zrender/lib/core/util';\nimport { retrieveVisualColorForTooltipMarker, createTooltipMarkup } from './tooltipMarkup';\nimport { retrieveRawValue } from '../../data/helper/dataProvider';\nimport { isNameSpecified } from '../../util/model';\nexport function defaultSeriesFormatTooltip(opt) {\n  var series = opt.series;\n  var dataIndex = opt.dataIndex;\n  var multipleSeries = opt.multipleSeries;\n  var data = series.getData();\n  var tooltipDims = data.mapDimensionsAll('defaultedTooltip');\n  var tooltipDimLen = tooltipDims.length;\n  var value = series.getRawValue(dataIndex);\n  var isValueArr = isArray(value);\n  var markerColor = retrieveVisualColorForTooltipMarker(series, dataIndex);\n  var inlineValue;\n  var inlineValueType;\n  var subBlocks;\n  var sortParam;\n\n  if (tooltipDimLen > 1 || isValueArr && !tooltipDimLen) {\n    var formatArrResult = formatTooltipArrayValue(value, series, dataIndex, tooltipDims, markerColor);\n    inlineValue = formatArrResult.inlineValues;\n    inlineValueType = formatArrResult.inlineValueTypes;\n    subBlocks = formatArrResult.blocks;\n    sortParam = formatArrResult.inlineValues[0];\n  } else if (tooltipDimLen) {\n    var dimInfo = data.getDimensionInfo(tooltipDims[0]);\n    sortParam = inlineValue = retrieveRawValue(data, dataIndex, tooltipDims[0]);\n    inlineValueType = dimInfo.type;\n  } else {\n    sortParam = inlineValue = isValueArr ? value[0] : value;\n  }\n\n  var seriesNameSpecified = isNameSpecified(series);\n  var seriesName = seriesNameSpecified && series.name || '';\n  var itemName = data.getName(dataIndex);\n  var inlineName = multipleSeries ? seriesName : itemName;\n  return createTooltipMarkup('section', {\n    header: seriesName,\n    noHeader: multipleSeries || !seriesNameSpecified,\n    sortParam: sortParam,\n    blocks: [createTooltipMarkup('nameValue', {\n      markerType: 'item',\n      markerColor: markerColor,\n      name: inlineName,\n      noName: !trim(inlineName),\n      value: inlineValue,\n      valueType: inlineValueType\n    })].concat(subBlocks || [])\n  });\n}\n\nfunction formatTooltipArrayValue(value, series, dataIndex, tooltipDims, colorStr) {\n  var data = series.getData();\n  var isValueMultipleLine = reduce(value, function (isValueMultipleLine, val, idx) {\n    var dimItem = data.getDimensionInfo(idx);\n    return isValueMultipleLine = isValueMultipleLine || dimItem && dimItem.tooltip !== false && dimItem.displayName != null;\n  }, false);\n  var inlineValues = [];\n  var inlineValueTypes = [];\n  var blocks = [];\n  tooltipDims.length ? each(tooltipDims, function (dim) {\n    setEachItem(retrieveRawValue(data, dataIndex, dim), dim);\n  }) : each(value, setEachItem);\n\n  function setEachItem(val, dim) {\n    var dimInfo = data.getDimensionInfo(dim);\n\n    if (!dimInfo || dimInfo.otherDims.tooltip === false) {\n      return;\n    }\n\n    if (isValueMultipleLine) {\n      blocks.push(createTooltipMarkup('nameValue', {\n        markerType: 'subItem',\n        markerColor: colorStr,\n        name: dimInfo.displayName,\n        value: val,\n        valueType: dimInfo.type\n      }));\n    } else {\n      inlineValues.push(val);\n      inlineValueTypes.push(dimInfo.type);\n    }\n  }\n\n  return {\n    inlineValues: inlineValues,\n    inlineValueTypes: inlineValueTypes,\n    blocks: blocks\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends, __spreadArrays } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport * as modelUtil from '../util/model';\nimport ComponentModel from './Component';\nimport { PaletteMixin } from './mixin/palette';\nimport { DataFormatMixin } from '../model/mixin/dataFormat';\nimport { getLayoutParams, mergeLayoutParam, fetchLayoutMode } from '../util/layout';\nimport { createTask } from '../core/task';\nimport { mountExtend } from '../util/clazz';\nimport { SourceManager } from '../data/helper/sourceManager';\nimport { defaultSeriesFormatTooltip } from '../component/tooltip/seriesFormatTooltip';\nvar inner = modelUtil.makeInner();\n\nfunction getSelectionKey(data, dataIndex) {\n  return data.getName(dataIndex) || data.getId(dataIndex);\n}\n\nvar SeriesModel = function (_super) {\n  __extends(SeriesModel, _super);\n\n  function SeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this._selectedDataIndicesMap = {};\n    return _this;\n  }\n\n  SeriesModel.prototype.init = function (option, parentModel, ecModel) {\n    this.seriesIndex = this.componentIndex;\n    this.dataTask = createTask({\n      count: dataTaskCount,\n      reset: dataTaskReset\n    });\n    this.dataTask.context = {\n      model: this\n    };\n    this.mergeDefaultAndTheme(option, ecModel);\n    var sourceManager = inner(this).sourceManager = new SourceManager(this);\n    sourceManager.prepareSource();\n    var data = this.getInitialData(option, ecModel);\n    wrapData(data, this);\n    this.dataTask.context.data = data;\n\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.assert(data, 'getInitialData returned invalid data.');\n    }\n\n    inner(this).dataBeforeProcessed = data;\n    autoSeriesName(this);\n\n    this._initSelectedMapFromData(data);\n  };\n\n  SeriesModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n    var layoutMode = fetchLayoutMode(this);\n    var inputPositionParams = layoutMode ? getLayoutParams(option) : {};\n    var themeSubType = this.subType;\n\n    if (ComponentModel.hasClass(themeSubType)) {\n      themeSubType += 'Series';\n    }\n\n    zrUtil.merge(option, ecModel.getTheme().get(this.subType));\n    zrUtil.merge(option, this.getDefaultOption());\n    modelUtil.defaultEmphasis(option, 'label', ['show']);\n    this.fillDataTextStyle(option.data);\n\n    if (layoutMode) {\n      mergeLayoutParam(option, inputPositionParams, layoutMode);\n    }\n  };\n\n  SeriesModel.prototype.mergeOption = function (newSeriesOption, ecModel) {\n    newSeriesOption = zrUtil.merge(this.option, newSeriesOption, true);\n    this.fillDataTextStyle(newSeriesOption.data);\n    var layoutMode = fetchLayoutMode(this);\n\n    if (layoutMode) {\n      mergeLayoutParam(this.option, newSeriesOption, layoutMode);\n    }\n\n    var sourceManager = inner(this).sourceManager;\n    sourceManager.dirty();\n    sourceManager.prepareSource();\n    var data = this.getInitialData(newSeriesOption, ecModel);\n    wrapData(data, this);\n    this.dataTask.dirty();\n    this.dataTask.context.data = data;\n    inner(this).dataBeforeProcessed = data;\n    autoSeriesName(this);\n\n    this._initSelectedMapFromData(data);\n  };\n\n  SeriesModel.prototype.fillDataTextStyle = function (data) {\n    if (data && !zrUtil.isTypedArray(data)) {\n      var props = ['show'];\n\n      for (var i = 0; i < data.length; i++) {\n        if (data[i] && data[i].label) {\n          modelUtil.defaultEmphasis(data[i], 'label', props);\n        }\n      }\n    }\n  };\n\n  SeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return;\n  };\n\n  SeriesModel.prototype.appendData = function (params) {\n    var data = this.getRawData();\n    data.appendData(params.data);\n  };\n\n  SeriesModel.prototype.getData = function (dataType) {\n    var task = getCurrentTask(this);\n\n    if (task) {\n      var data = task.context.data;\n      return dataType == null ? data : data.getLinkedData(dataType);\n    } else {\n      return inner(this).data;\n    }\n  };\n\n  SeriesModel.prototype.getAllData = function () {\n    var mainData = this.getData();\n    return mainData && mainData.getLinkedDataAll ? mainData.getLinkedDataAll() : [{\n      data: mainData\n    }];\n  };\n\n  SeriesModel.prototype.setData = function (data) {\n    var task = getCurrentTask(this);\n\n    if (task) {\n      var context = task.context;\n      context.outputData = data;\n\n      if (task !== this.dataTask) {\n        context.data = data;\n      }\n    }\n\n    inner(this).data = data;\n  };\n\n  SeriesModel.prototype.getSource = function () {\n    return inner(this).sourceManager.getSource();\n  };\n\n  SeriesModel.prototype.getRawData = function () {\n    return inner(this).dataBeforeProcessed;\n  };\n\n  SeriesModel.prototype.getBaseAxis = function () {\n    var coordSys = this.coordinateSystem;\n    return coordSys && coordSys.getBaseAxis && coordSys.getBaseAxis();\n  };\n\n  SeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    return defaultSeriesFormatTooltip({\n      series: this,\n      dataIndex: dataIndex,\n      multipleSeries: multipleSeries\n    });\n  };\n\n  SeriesModel.prototype.isAnimationEnabled = function () {\n    if (env.node) {\n      return false;\n    }\n\n    var animationEnabled = this.getShallow('animation');\n\n    if (animationEnabled) {\n      if (this.getData().count() > this.getShallow('animationThreshold')) {\n        animationEnabled = false;\n      }\n    }\n\n    return !!animationEnabled;\n  };\n\n  SeriesModel.prototype.restoreData = function () {\n    this.dataTask.dirty();\n  };\n\n  SeriesModel.prototype.getColorFromPalette = function (name, scope, requestColorNum) {\n    var ecModel = this.ecModel;\n    var color = PaletteMixin.prototype.getColorFromPalette.call(this, name, scope, requestColorNum);\n\n    if (!color) {\n      color = ecModel.getColorFromPalette(name, scope, requestColorNum);\n    }\n\n    return color;\n  };\n\n  SeriesModel.prototype.coordDimToDataDim = function (coordDim) {\n    return this.getRawData().mapDimensionsAll(coordDim);\n  };\n\n  SeriesModel.prototype.getProgressive = function () {\n    return this.get('progressive');\n  };\n\n  SeriesModel.prototype.getProgressiveThreshold = function () {\n    return this.get('progressiveThreshold');\n  };\n\n  SeriesModel.prototype.select = function (innerDataIndices, dataType) {\n    this._innerSelect(this.getData(dataType), innerDataIndices);\n  };\n\n  SeriesModel.prototype.unselect = function (innerDataIndices, dataType) {\n    var selectedMap = this.option.selectedMap;\n\n    if (!selectedMap) {\n      return;\n    }\n\n    var data = this.getData(dataType);\n\n    for (var i = 0; i < innerDataIndices.length; i++) {\n      var dataIndex = innerDataIndices[i];\n      var nameOrId = getSelectionKey(data, dataIndex);\n      selectedMap[nameOrId] = false;\n      this._selectedDataIndicesMap[nameOrId] = -1;\n    }\n  };\n\n  SeriesModel.prototype.toggleSelect = function (innerDataIndices, dataType) {\n    var tmpArr = [];\n\n    for (var i = 0; i < innerDataIndices.length; i++) {\n      tmpArr[0] = innerDataIndices[i];\n      this.isSelected(innerDataIndices[i], dataType) ? this.unselect(tmpArr, dataType) : this.select(tmpArr, dataType);\n    }\n  };\n\n  SeriesModel.prototype.getSelectedDataIndices = function () {\n    var selectedDataIndicesMap = this._selectedDataIndicesMap;\n    var nameOrIds = zrUtil.keys(selectedDataIndicesMap);\n    var dataIndices = [];\n\n    for (var i = 0; i < nameOrIds.length; i++) {\n      var dataIndex = selectedDataIndicesMap[nameOrIds[i]];\n\n      if (dataIndex >= 0) {\n        dataIndices.push(dataIndex);\n      }\n    }\n\n    return dataIndices;\n  };\n\n  SeriesModel.prototype.isSelected = function (dataIndex, dataType) {\n    var selectedMap = this.option.selectedMap;\n\n    if (!selectedMap) {\n      return false;\n    }\n\n    var data = this.getData(dataType);\n    var nameOrId = getSelectionKey(data, dataIndex);\n    return selectedMap[nameOrId] || false;\n  };\n\n  SeriesModel.prototype._innerSelect = function (data, innerDataIndices) {\n    var _a, _b;\n\n    var selectedMode = this.option.selectedMode;\n    var len = innerDataIndices.length;\n\n    if (!selectedMode || !len) {\n      return;\n    }\n\n    if (selectedMode === 'multiple') {\n      var selectedMap = this.option.selectedMap || (this.option.selectedMap = {});\n\n      for (var i = 0; i < len; i++) {\n        var dataIndex = innerDataIndices[i];\n        var nameOrId = getSelectionKey(data, dataIndex);\n        selectedMap[nameOrId] = true;\n        this._selectedDataIndicesMap[nameOrId] = data.getRawIndex(dataIndex);\n      }\n    } else if (selectedMode === 'single' || selectedMode === true) {\n      var lastDataIndex = innerDataIndices[len - 1];\n      var nameOrId = getSelectionKey(data, lastDataIndex);\n      this.option.selectedMap = (_a = {}, _a[nameOrId] = true, _a);\n      this._selectedDataIndicesMap = (_b = {}, _b[nameOrId] = data.getRawIndex(lastDataIndex), _b);\n    }\n  };\n\n  SeriesModel.prototype._initSelectedMapFromData = function (data) {\n    if (this.option.selectedMap) {\n      return;\n    }\n\n    var dataIndices = [];\n\n    if (data.hasItemOption) {\n      data.each(function (idx) {\n        var rawItem = data.getRawDataItem(idx);\n\n        if (typeof rawItem === 'object' && rawItem.selected) {\n          dataIndices.push(idx);\n        }\n      });\n    }\n\n    if (dataIndices.length > 0) {\n      this._innerSelect(data, dataIndices);\n    }\n  };\n\n  SeriesModel.registerClass = function (clz) {\n    return ComponentModel.registerClass(clz);\n  };\n\n  SeriesModel.protoInitialize = function () {\n    var proto = SeriesModel.prototype;\n    proto.type = 'series.__base__';\n    proto.seriesIndex = 0;\n    proto.useColorPaletteOnData = false;\n    proto.ignoreStyleOnData = false;\n    proto.hasSymbolVisual = false;\n    proto.defaultSymbol = 'circle';\n    proto.visualStyleAccessPath = 'itemStyle';\n    proto.visualDrawType = 'fill';\n  }();\n\n  return SeriesModel;\n}(ComponentModel);\n\nzrUtil.mixin(SeriesModel, DataFormatMixin);\nzrUtil.mixin(SeriesModel, PaletteMixin);\nmountExtend(SeriesModel, ComponentModel);\n\nfunction autoSeriesName(seriesModel) {\n  var name = seriesModel.name;\n\n  if (!modelUtil.isNameSpecified(seriesModel)) {\n    seriesModel.name = getSeriesAutoName(seriesModel) || name;\n  }\n}\n\nfunction getSeriesAutoName(seriesModel) {\n  var data = seriesModel.getRawData();\n  var dataDims = data.mapDimensionsAll('seriesName');\n  var nameArr = [];\n  zrUtil.each(dataDims, function (dataDim) {\n    var dimInfo = data.getDimensionInfo(dataDim);\n    dimInfo.displayName && nameArr.push(dimInfo.displayName);\n  });\n  return nameArr.join(' ');\n}\n\nfunction dataTaskCount(context) {\n  return context.model.getRawData().count();\n}\n\nfunction dataTaskReset(context) {\n  var seriesModel = context.model;\n  seriesModel.setData(seriesModel.getRawData().cloneShallow());\n  return dataTaskProgress;\n}\n\nfunction dataTaskProgress(param, context) {\n  if (context.outputData && param.end > context.outputData.count()) {\n    context.model.getRawData().cloneShallow(context.outputData);\n  }\n}\n\nfunction wrapData(data, seriesModel) {\n  zrUtil.each(__spreadArrays(data.CHANGABLE_METHODS, data.DOWNSAMPLE_METHODS), function (methodName) {\n    data.wrapMethod(methodName, zrUtil.curry(onDataChange, seriesModel));\n  });\n}\n\nfunction onDataChange(seriesModel, newList) {\n  var task = getCurrentTask(seriesModel);\n\n  if (task) {\n    task.setOutputEnd((newList || this).count());\n  }\n\n  return newList;\n}\n\nfunction getCurrentTask(seriesModel) {\n  var scheduler = (seriesModel.ecModel || {}).scheduler;\n  var pipeline = scheduler && scheduler.getPipeline(seriesModel.uid);\n\n  if (pipeline) {\n    var task = pipeline.currentTask;\n\n    if (task) {\n      var agentStubMap = task.agentStubMap;\n\n      if (agentStubMap) {\n        task = agentStubMap.get(seriesModel.uid);\n      }\n    }\n\n    return task;\n  }\n}\n\nexport default SeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Group from 'zrender/lib/graphic/Group';\nimport * as componentUtil from '../util/component';\nimport * as clazzUtil from '../util/clazz';\n\nvar ComponentView = function () {\n  function ComponentView() {\n    this.group = new Group();\n    this.uid = componentUtil.getUID('viewComponent');\n  }\n\n  ComponentView.prototype.init = function (ecModel, api) {};\n\n  ComponentView.prototype.render = function (model, ecModel, api, payload) {};\n\n  ComponentView.prototype.dispose = function (ecModel, api) {};\n\n  ComponentView.prototype.updateView = function (model, ecModel, api, payload) {};\n\n  ComponentView.prototype.updateLayout = function (model, ecModel, api, payload) {};\n\n  ComponentView.prototype.updateVisual = function (model, ecModel, api, payload) {};\n\n  ComponentView.prototype.blurSeries = function (seriesModels, ecModel) {};\n\n  return ComponentView;\n}();\n\n;\nclazzUtil.enableClassExtend(ComponentView);\nclazzUtil.enableClassManagement(ComponentView);\nexport default ComponentView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner } from '../../util/model';\nexport default function createRenderPlanner() {\n  var inner = makeInner();\n  return function (seriesModel) {\n    var fields = inner(seriesModel);\n    var pipelineContext = seriesModel.pipelineContext;\n    var originalLarge = !!fields.large;\n    var originalProgressive = !!fields.progressiveRender;\n    var large = fields.large = !!(pipelineContext && pipelineContext.large);\n    var progressive = fields.progressiveRender = !!(pipelineContext && pipelineContext.progressiveRender);\n    return !!(originalLarge !== large || originalProgressive !== progressive) && 'reset';\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each } from 'zrender/lib/core/util';\nimport Group from 'zrender/lib/graphic/Group';\nimport * as componentUtil from '../util/component';\nimport * as clazzUtil from '../util/clazz';\nimport * as modelUtil from '../util/model';\nimport { enterEmphasis, leaveEmphasis, getHighlightDigit } from '../util/states';\nimport { createTask } from '../core/task';\nimport createRenderPlanner from '../chart/helper/createRenderPlanner';\nvar inner = modelUtil.makeInner();\nvar renderPlanner = createRenderPlanner();\n\nvar ChartView = function () {\n  function ChartView() {\n    this.group = new Group();\n    this.uid = componentUtil.getUID('viewChart');\n    this.renderTask = createTask({\n      plan: renderTaskPlan,\n      reset: renderTaskReset\n    });\n    this.renderTask.context = {\n      view: this\n    };\n  }\n\n  ChartView.prototype.init = function (ecModel, api) {};\n\n  ChartView.prototype.render = function (seriesModel, ecModel, api, payload) {};\n\n  ChartView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\n    toggleHighlight(seriesModel.getData(), payload, 'emphasis');\n  };\n\n  ChartView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\n    toggleHighlight(seriesModel.getData(), payload, 'normal');\n  };\n\n  ChartView.prototype.remove = function (ecModel, api) {\n    this.group.removeAll();\n  };\n\n  ChartView.prototype.dispose = function (ecModel, api) {};\n\n  ChartView.prototype.updateView = function (seriesModel, ecModel, api, payload) {\n    this.render(seriesModel, ecModel, api, payload);\n  };\n\n  ChartView.prototype.updateLayout = function (seriesModel, ecModel, api, payload) {\n    this.render(seriesModel, ecModel, api, payload);\n  };\n\n  ChartView.prototype.updateVisual = function (seriesModel, ecModel, api, payload) {\n    this.render(seriesModel, ecModel, api, payload);\n  };\n\n  ChartView.markUpdateMethod = function (payload, methodName) {\n    inner(payload).updateMethod = methodName;\n  };\n\n  ChartView.protoInitialize = function () {\n    var proto = ChartView.prototype;\n    proto.type = 'chart';\n  }();\n\n  return ChartView;\n}();\n\n;\n\nfunction elSetState(el, state, highlightDigit) {\n  if (el) {\n    (state === 'emphasis' ? enterEmphasis : leaveEmphasis)(el, highlightDigit);\n  }\n}\n\nfunction toggleHighlight(data, payload, state) {\n  var dataIndex = modelUtil.queryDataIndex(data, payload);\n  var highlightDigit = payload && payload.highlightKey != null ? getHighlightDigit(payload.highlightKey) : null;\n\n  if (dataIndex != null) {\n    each(modelUtil.normalizeToArray(dataIndex), function (dataIdx) {\n      elSetState(data.getItemGraphicEl(dataIdx), state, highlightDigit);\n    });\n  } else {\n    data.eachItemGraphicEl(function (el) {\n      elSetState(el, state, highlightDigit);\n    });\n  }\n}\n\nclazzUtil.enableClassExtend(ChartView, ['dispose']);\nclazzUtil.enableClassManagement(ChartView);\n\nfunction renderTaskPlan(context) {\n  return renderPlanner(context.model);\n}\n\nfunction renderTaskReset(context) {\n  var seriesModel = context.model;\n  var ecModel = context.ecModel;\n  var api = context.api;\n  var payload = context.payload;\n  var progressiveRender = seriesModel.pipelineContext.progressiveRender;\n  var view = context.view;\n  var updateMethod = payload && inner(payload).updateMethod;\n  var methodName = progressiveRender ? 'incrementalPrepareRender' : updateMethod && view[updateMethod] ? updateMethod : 'render';\n\n  if (methodName !== 'render') {\n    view[methodName](seriesModel, ecModel, api, payload);\n  }\n\n  return progressMethodMap[methodName];\n}\n\nvar progressMethodMap = {\n  incrementalPrepareRender: {\n    progress: function (params, context) {\n      context.view.incrementalRender(params, context.model, context.ecModel, context.api, context.payload);\n    }\n  },\n  render: {\n    forceFirstProgress: true,\n    progress: function (params, context) {\n      context.view.render(context.model, context.ecModel, context.api, context.payload);\n    }\n  }\n};\nexport default ChartView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar ORIGIN_METHOD = '\\0__throttleOriginMethod';\nvar RATE = '\\0__throttleRate';\nvar THROTTLE_TYPE = '\\0__throttleType';\n;\nexport function throttle(fn, delay, debounce) {\n  var currCall;\n  var lastCall = 0;\n  var lastExec = 0;\n  var timer = null;\n  var diff;\n  var scope;\n  var args;\n  var debounceNextCall;\n  delay = delay || 0;\n\n  function exec() {\n    lastExec = new Date().getTime();\n    timer = null;\n    fn.apply(scope, args || []);\n  }\n\n  var cb = function () {\n    var cbArgs = [];\n\n    for (var _i = 0; _i < arguments.length; _i++) {\n      cbArgs[_i] = arguments[_i];\n    }\n\n    currCall = new Date().getTime();\n    scope = this;\n    args = cbArgs;\n    var thisDelay = debounceNextCall || delay;\n    var thisDebounce = debounceNextCall || debounce;\n    debounceNextCall = null;\n    diff = currCall - (thisDebounce ? lastCall : lastExec) - thisDelay;\n    clearTimeout(timer);\n\n    if (thisDebounce) {\n      timer = setTimeout(exec, thisDelay);\n    } else {\n      if (diff >= 0) {\n        exec();\n      } else {\n        timer = setTimeout(exec, -diff);\n      }\n    }\n\n    lastCall = currCall;\n  };\n\n  cb.clear = function () {\n    if (timer) {\n      clearTimeout(timer);\n      timer = null;\n    }\n  };\n\n  cb.debounceNextCall = function (debounceDelay) {\n    debounceNextCall = debounceDelay;\n  };\n\n  return cb;\n}\nexport function createOrUpdate(obj, fnAttr, rate, throttleType) {\n  var fn = obj[fnAttr];\n\n  if (!fn) {\n    return;\n  }\n\n  var originFn = fn[ORIGIN_METHOD] || fn;\n  var lastThrottleType = fn[THROTTLE_TYPE];\n  var lastRate = fn[RATE];\n\n  if (lastRate !== rate || lastThrottleType !== throttleType) {\n    if (rate == null || !throttleType) {\n      return obj[fnAttr] = originFn;\n    }\n\n    fn = obj[fnAttr] = throttle(originFn, rate, throttleType === 'debounce');\n    fn[ORIGIN_METHOD] = originFn;\n    fn[THROTTLE_TYPE] = throttleType;\n    fn[RATE] = rate;\n  }\n\n  return fn;\n}\nexport function clear(obj, fnAttr) {\n  var fn = obj[fnAttr];\n\n  if (fn && fn[ORIGIN_METHOD]) {\n    obj[fnAttr] = fn[ORIGIN_METHOD];\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isFunction, extend, createHashMap } from 'zrender/lib/core/util';\nimport makeStyleMapper from '../model/mixin/makeStyleMapper';\nimport { ITEM_STYLE_KEY_MAP } from '../model/mixin/itemStyle';\nimport { LINE_STYLE_KEY_MAP } from '../model/mixin/lineStyle';\nimport Model from '../model/Model';\nimport { makeInner } from '../util/model';\nvar inner = makeInner();\nvar defaultStyleMappers = {\n  itemStyle: makeStyleMapper(ITEM_STYLE_KEY_MAP, true),\n  lineStyle: makeStyleMapper(LINE_STYLE_KEY_MAP, true)\n};\nvar defaultColorKey = {\n  lineStyle: 'stroke',\n  itemStyle: 'fill'\n};\n\nfunction getStyleMapper(seriesModel, stylePath) {\n  var styleMapper = seriesModel.visualStyleMapper || defaultStyleMappers[stylePath];\n\n  if (!styleMapper) {\n    console.warn(\"Unkown style type '\" + stylePath + \"'.\");\n    return defaultStyleMappers.itemStyle;\n  }\n\n  return styleMapper;\n}\n\nfunction getDefaultColorKey(seriesModel, stylePath) {\n  var colorKey = seriesModel.visualDrawType || defaultColorKey[stylePath];\n\n  if (!colorKey) {\n    console.warn(\"Unkown style type '\" + stylePath + \"'.\");\n    return 'fill';\n  }\n\n  return colorKey;\n}\n\nvar seriesStyleTask = {\n  createOnAllSeries: true,\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    var data = seriesModel.getData();\n    var stylePath = seriesModel.visualStyleAccessPath || 'itemStyle';\n    var styleModel = seriesModel.getModel(stylePath);\n    var getStyle = getStyleMapper(seriesModel, stylePath);\n    var globalStyle = getStyle(styleModel);\n    var decalOption = styleModel.getShallow('decal');\n\n    if (decalOption) {\n      data.setVisual('decal', decalOption);\n      decalOption.dirty = true;\n    }\n\n    var colorKey = getDefaultColorKey(seriesModel, stylePath);\n    var color = globalStyle[colorKey];\n    var colorCallback = isFunction(color) ? color : null;\n\n    if (!globalStyle[colorKey] || colorCallback) {\n      globalStyle[colorKey] = seriesModel.getColorFromPalette(seriesModel.name, null, ecModel.getSeriesCount());\n      data.setVisual('colorFromPalette', true);\n    }\n\n    data.setVisual('style', globalStyle);\n    data.setVisual('drawType', colorKey);\n\n    if (!ecModel.isSeriesFiltered(seriesModel) && colorCallback) {\n      data.setVisual('colorFromPalette', false);\n      return {\n        dataEach: function (data, idx) {\n          var dataParams = seriesModel.getDataParams(idx);\n          var itemStyle = extend({}, globalStyle);\n          itemStyle[colorKey] = colorCallback(dataParams);\n          data.setItemVisual(idx, 'style', itemStyle);\n        }\n      };\n    }\n  }\n};\nvar sharedModel = new Model();\nvar dataStyleTask = {\n  createOnAllSeries: true,\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    if (seriesModel.ignoreStyleOnData || ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var stylePath = seriesModel.visualStyleAccessPath || 'itemStyle';\n    var getStyle = getStyleMapper(seriesModel, stylePath);\n    var colorKey = data.getVisual('drawType');\n    return {\n      dataEach: data.hasItemOption ? function (data, idx) {\n        var rawItem = data.getRawDataItem(idx);\n\n        if (rawItem && rawItem[stylePath]) {\n          sharedModel.option = rawItem[stylePath];\n          var style = getStyle(sharedModel);\n          var existsStyle = data.ensureUniqueItemVisual(idx, 'style');\n          extend(existsStyle, style);\n\n          if (sharedModel.option.decal) {\n            data.setItemVisual(idx, 'decal', sharedModel.option.decal);\n            sharedModel.option.decal.dirty = true;\n          }\n\n          if (colorKey in style) {\n            data.setItemVisual(idx, 'colorFromPalette', false);\n          }\n        }\n      } : null\n    };\n  }\n};\nvar dataColorPaletteTask = {\n  performRawSeries: true,\n  overallReset: function (ecModel) {\n    var paletteScopeGroupByType = createHashMap();\n    ecModel.eachSeries(function (seriesModel) {\n      if (!seriesModel.useColorPaletteOnData) {\n        return;\n      }\n\n      var colorScope = paletteScopeGroupByType.get(seriesModel.type);\n\n      if (!colorScope) {\n        colorScope = {};\n        paletteScopeGroupByType.set(seriesModel.type, colorScope);\n      }\n\n      inner(seriesModel).scope = colorScope;\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      if (!seriesModel.useColorPaletteOnData || ecModel.isSeriesFiltered(seriesModel)) {\n        return;\n      }\n\n      var dataAll = seriesModel.getRawData();\n      var idxMap = {};\n      var data = seriesModel.getData();\n      var colorScope = inner(seriesModel).scope;\n      var stylePath = seriesModel.visualStyleAccessPath || 'itemStyle';\n      var colorKey = getDefaultColorKey(seriesModel, stylePath);\n      data.each(function (idx) {\n        var rawIdx = data.getRawIndex(idx);\n        idxMap[rawIdx] = idx;\n      });\n      dataAll.each(function (rawIdx) {\n        var idx = idxMap[rawIdx];\n        var fromPalette = data.getItemVisual(idx, 'colorFromPalette');\n\n        if (fromPalette) {\n          var itemStyle = data.ensureUniqueItemVisual(idx, 'style');\n          var name_1 = dataAll.getName(rawIdx) || rawIdx + '';\n          var dataCount = dataAll.count();\n          itemStyle[colorKey] = seriesModel.getColorFromPalette(name_1, colorScope, dataCount);\n        }\n      });\n    });\n  }\n};\nexport { seriesStyleTask, dataStyleTask, dataColorPaletteTask };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../util/graphic';\nvar PI = Math.PI;\nexport default function defaultLoading(api, opts) {\n  opts = opts || {};\n  zrUtil.defaults(opts, {\n    text: 'loading',\n    textColor: '#000',\n    fontSize: 12,\n    fontWeight: 'normal',\n    fontStyle: 'normal',\n    fontFamily: 'sans-serif',\n    maskColor: 'rgba(255, 255, 255, 0.8)',\n    showSpinner: true,\n    color: '#5470c6',\n    spinnerRadius: 10,\n    lineWidth: 5,\n    zlevel: 0\n  });\n  var group = new graphic.Group();\n  var mask = new graphic.Rect({\n    style: {\n      fill: opts.maskColor\n    },\n    zlevel: opts.zlevel,\n    z: 10000\n  });\n  group.add(mask);\n  var textContent = new graphic.Text({\n    style: {\n      text: opts.text,\n      fill: opts.textColor,\n      fontSize: opts.fontSize,\n      fontWeight: opts.fontWeight,\n      fontStyle: opts.fontStyle,\n      fontFamily: opts.fontFamily\n    }\n  });\n  var labelRect = new graphic.Rect({\n    style: {\n      fill: 'none'\n    },\n    textContent: textContent,\n    textConfig: {\n      position: 'right',\n      distance: 10\n    },\n    zlevel: opts.zlevel,\n    z: 10001\n  });\n  group.add(labelRect);\n  var arc;\n\n  if (opts.showSpinner) {\n    arc = new graphic.Arc({\n      shape: {\n        startAngle: -PI / 2,\n        endAngle: -PI / 2 + 0.1,\n        r: opts.spinnerRadius\n      },\n      style: {\n        stroke: opts.color,\n        lineCap: 'round',\n        lineWidth: opts.lineWidth\n      },\n      zlevel: opts.zlevel,\n      z: 10001\n    });\n    arc.animateShape(true).when(1000, {\n      endAngle: PI * 3 / 2\n    }).start('circularInOut');\n    arc.animateShape(true).when(1000, {\n      startAngle: PI * 3 / 2\n    }).delay(300).start('circularInOut');\n    group.add(arc);\n  }\n\n  group.resize = function () {\n    var textWidth = textContent.getBoundingRect().width;\n    var r = opts.showSpinner ? opts.spinnerRadius : 0;\n    var cx = (api.getWidth() - r * 2 - (opts.showSpinner && textWidth ? 10 : 0) - textWidth) / 2 - (opts.showSpinner && textWidth ? 0 : 5 + textWidth / 2) + (opts.showSpinner ? 0 : textWidth / 2) + (textWidth ? 0 : r);\n    var cy = api.getHeight() / 2;\n    opts.showSpinner && arc.setShape({\n      cx: cx,\n      cy: cy\n    });\n    labelRect.setShape({\n      x: cx - r,\n      y: cy - r,\n      width: r * 2,\n      height: r * 2\n    });\n    mask.setShape({\n      x: 0,\n      y: 0,\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n  };\n\n  group.resize();\n  return group;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, map, isFunction, createHashMap, noop, assert } from 'zrender/lib/core/util';\nimport { createTask } from './task';\nimport { getUID } from '../util/component';\nimport GlobalModel from '../model/Global';\nimport ExtensionAPI from './ExtensionAPI';\nimport { normalizeToArray } from '../util/model';\n;\n\nvar Scheduler = function () {\n  function Scheduler(ecInstance, api, dataProcessorHandlers, visualHandlers) {\n    this._stageTaskMap = createHashMap();\n    this.ecInstance = ecInstance;\n    this.api = api;\n    dataProcessorHandlers = this._dataProcessorHandlers = dataProcessorHandlers.slice();\n    visualHandlers = this._visualHandlers = visualHandlers.slice();\n    this._allHandlers = dataProcessorHandlers.concat(visualHandlers);\n  }\n\n  Scheduler.prototype.restoreData = function (ecModel, payload) {\n    ecModel.restoreData(payload);\n\n    this._stageTaskMap.each(function (taskRecord) {\n      var overallTask = taskRecord.overallTask;\n      overallTask && overallTask.dirty();\n    });\n  };\n\n  Scheduler.prototype.getPerformArgs = function (task, isBlock) {\n    if (!task.__pipeline) {\n      return;\n    }\n\n    var pipeline = this._pipelineMap.get(task.__pipeline.id);\n\n    var pCtx = pipeline.context;\n    var incremental = !isBlock && pipeline.progressiveEnabled && (!pCtx || pCtx.progressiveRender) && task.__idxInPipeline > pipeline.blockIndex;\n    var step = incremental ? pipeline.step : null;\n    var modDataCount = pCtx && pCtx.modDataCount;\n    var modBy = modDataCount != null ? Math.ceil(modDataCount / step) : null;\n    return {\n      step: step,\n      modBy: modBy,\n      modDataCount: modDataCount\n    };\n  };\n\n  Scheduler.prototype.getPipeline = function (pipelineId) {\n    return this._pipelineMap.get(pipelineId);\n  };\n\n  Scheduler.prototype.updateStreamModes = function (seriesModel, view) {\n    var pipeline = this._pipelineMap.get(seriesModel.uid);\n\n    var data = seriesModel.getData();\n    var dataLen = data.count();\n    var progressiveRender = pipeline.progressiveEnabled && view.incrementalPrepareRender && dataLen >= pipeline.threshold;\n    var large = seriesModel.get('large') && dataLen >= seriesModel.get('largeThreshold');\n    var modDataCount = seriesModel.get('progressiveChunkMode') === 'mod' ? dataLen : null;\n    seriesModel.pipelineContext = pipeline.context = {\n      progressiveRender: progressiveRender,\n      modDataCount: modDataCount,\n      large: large\n    };\n  };\n\n  Scheduler.prototype.restorePipelines = function (ecModel) {\n    var scheduler = this;\n    var pipelineMap = scheduler._pipelineMap = createHashMap();\n    ecModel.eachSeries(function (seriesModel) {\n      var progressive = seriesModel.getProgressive();\n      var pipelineId = seriesModel.uid;\n      pipelineMap.set(pipelineId, {\n        id: pipelineId,\n        head: null,\n        tail: null,\n        threshold: seriesModel.getProgressiveThreshold(),\n        progressiveEnabled: progressive && !(seriesModel.preventIncremental && seriesModel.preventIncremental()),\n        blockIndex: -1,\n        step: Math.round(progressive || 700),\n        count: 0\n      });\n\n      scheduler._pipe(seriesModel, seriesModel.dataTask);\n    });\n  };\n\n  Scheduler.prototype.prepareStageTasks = function () {\n    var stageTaskMap = this._stageTaskMap;\n    var ecModel = this.api.getModel();\n    var api = this.api;\n    each(this._allHandlers, function (handler) {\n      var record = stageTaskMap.get(handler.uid) || stageTaskMap.set(handler.uid, {});\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = '\"reset\" and \"overallReset\" must not be both specified.';\n      }\n\n      assert(!(handler.reset && handler.overallReset), errMsg);\n      handler.reset && this._createSeriesStageTask(handler, record, ecModel, api);\n      handler.overallReset && this._createOverallStageTask(handler, record, ecModel, api);\n    }, this);\n  };\n\n  Scheduler.prototype.prepareView = function (view, model, ecModel, api) {\n    var renderTask = view.renderTask;\n    var context = renderTask.context;\n    context.model = model;\n    context.ecModel = ecModel;\n    context.api = api;\n    renderTask.__block = !view.incrementalPrepareRender;\n\n    this._pipe(model, renderTask);\n  };\n\n  Scheduler.prototype.performDataProcessorTasks = function (ecModel, payload) {\n    this._performStageTasks(this._dataProcessorHandlers, ecModel, payload, {\n      block: true\n    });\n  };\n\n  Scheduler.prototype.performVisualTasks = function (ecModel, payload, opt) {\n    this._performStageTasks(this._visualHandlers, ecModel, payload, opt);\n  };\n\n  Scheduler.prototype._performStageTasks = function (stageHandlers, ecModel, payload, opt) {\n    opt = opt || {};\n    var unfinished = false;\n    var scheduler = this;\n    each(stageHandlers, function (stageHandler, idx) {\n      if (opt.visualType && opt.visualType !== stageHandler.visualType) {\n        return;\n      }\n\n      var stageHandlerRecord = scheduler._stageTaskMap.get(stageHandler.uid);\n\n      var seriesTaskMap = stageHandlerRecord.seriesTaskMap;\n      var overallTask = stageHandlerRecord.overallTask;\n\n      if (overallTask) {\n        var overallNeedDirty_1;\n        var agentStubMap = overallTask.agentStubMap;\n        agentStubMap.each(function (stub) {\n          if (needSetDirty(opt, stub)) {\n            stub.dirty();\n            overallNeedDirty_1 = true;\n          }\n        });\n        overallNeedDirty_1 && overallTask.dirty();\n        scheduler.updatePayload(overallTask, payload);\n        var performArgs_1 = scheduler.getPerformArgs(overallTask, opt.block);\n        agentStubMap.each(function (stub) {\n          stub.perform(performArgs_1);\n        });\n\n        if (overallTask.perform(performArgs_1)) {\n          unfinished = true;\n        }\n      } else if (seriesTaskMap) {\n        seriesTaskMap.each(function (task, pipelineId) {\n          if (needSetDirty(opt, task)) {\n            task.dirty();\n          }\n\n          var performArgs = scheduler.getPerformArgs(task, opt.block);\n          performArgs.skip = !stageHandler.performRawSeries && ecModel.isSeriesFiltered(task.context.model);\n          scheduler.updatePayload(task, payload);\n\n          if (task.perform(performArgs)) {\n            unfinished = true;\n          }\n        });\n      }\n    });\n\n    function needSetDirty(opt, task) {\n      return opt.setDirty && (!opt.dirtyMap || opt.dirtyMap.get(task.__pipeline.id));\n    }\n\n    this.unfinished = unfinished || this.unfinished;\n  };\n\n  Scheduler.prototype.performSeriesTasks = function (ecModel) {\n    var unfinished;\n    ecModel.eachSeries(function (seriesModel) {\n      unfinished = seriesModel.dataTask.perform() || unfinished;\n    });\n    this.unfinished = unfinished || this.unfinished;\n  };\n\n  Scheduler.prototype.plan = function () {\n    this._pipelineMap.each(function (pipeline) {\n      var task = pipeline.tail;\n\n      do {\n        if (task.__block) {\n          pipeline.blockIndex = task.__idxInPipeline;\n          break;\n        }\n\n        task = task.getUpstream();\n      } while (task);\n    });\n  };\n\n  Scheduler.prototype.updatePayload = function (task, payload) {\n    payload !== 'remain' && (task.context.payload = payload);\n  };\n\n  Scheduler.prototype._createSeriesStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\n    var scheduler = this;\n    var oldSeriesTaskMap = stageHandlerRecord.seriesTaskMap;\n    var newSeriesTaskMap = stageHandlerRecord.seriesTaskMap = createHashMap();\n    var seriesType = stageHandler.seriesType;\n    var getTargetSeries = stageHandler.getTargetSeries;\n\n    if (stageHandler.createOnAllSeries) {\n      ecModel.eachRawSeries(create);\n    } else if (seriesType) {\n      ecModel.eachRawSeriesByType(seriesType, create);\n    } else if (getTargetSeries) {\n      getTargetSeries(ecModel, api).each(create);\n    }\n\n    function create(seriesModel) {\n      var pipelineId = seriesModel.uid;\n      var task = newSeriesTaskMap.set(pipelineId, oldSeriesTaskMap && oldSeriesTaskMap.get(pipelineId) || createTask({\n        plan: seriesTaskPlan,\n        reset: seriesTaskReset,\n        count: seriesTaskCount\n      }));\n      task.context = {\n        model: seriesModel,\n        ecModel: ecModel,\n        api: api,\n        useClearVisual: stageHandler.isVisual && !stageHandler.isLayout,\n        plan: stageHandler.plan,\n        reset: stageHandler.reset,\n        scheduler: scheduler\n      };\n\n      scheduler._pipe(seriesModel, task);\n    }\n  };\n\n  Scheduler.prototype._createOverallStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\n    var scheduler = this;\n    var overallTask = stageHandlerRecord.overallTask = stageHandlerRecord.overallTask || createTask({\n      reset: overallTaskReset\n    });\n    overallTask.context = {\n      ecModel: ecModel,\n      api: api,\n      overallReset: stageHandler.overallReset,\n      scheduler: scheduler\n    };\n    var oldAgentStubMap = overallTask.agentStubMap;\n    var newAgentStubMap = overallTask.agentStubMap = createHashMap();\n    var seriesType = stageHandler.seriesType;\n    var getTargetSeries = stageHandler.getTargetSeries;\n    var overallProgress = true;\n    var shouldOverallTaskDirty = false;\n    var errMsg = '';\n\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = '\"createOnAllSeries\" do not supported for \"overallReset\", ' + 'becuase it will block all streams.';\n    }\n\n    assert(!stageHandler.createOnAllSeries, errMsg);\n\n    if (seriesType) {\n      ecModel.eachRawSeriesByType(seriesType, createStub);\n    } else if (getTargetSeries) {\n      getTargetSeries(ecModel, api).each(createStub);\n    } else {\n      overallProgress = false;\n      each(ecModel.getSeries(), createStub);\n    }\n\n    function createStub(seriesModel) {\n      var pipelineId = seriesModel.uid;\n      var stub = newAgentStubMap.set(pipelineId, oldAgentStubMap && oldAgentStubMap.get(pipelineId) || (shouldOverallTaskDirty = true, createTask({\n        reset: stubReset,\n        onDirty: stubOnDirty\n      })));\n      stub.context = {\n        model: seriesModel,\n        overallProgress: overallProgress\n      };\n      stub.agent = overallTask;\n      stub.__block = overallProgress;\n\n      scheduler._pipe(seriesModel, stub);\n    }\n\n    if (shouldOverallTaskDirty) {\n      overallTask.dirty();\n    }\n  };\n\n  Scheduler.prototype._pipe = function (seriesModel, task) {\n    var pipelineId = seriesModel.uid;\n\n    var pipeline = this._pipelineMap.get(pipelineId);\n\n    !pipeline.head && (pipeline.head = task);\n    pipeline.tail && pipeline.tail.pipe(task);\n    pipeline.tail = task;\n    task.__idxInPipeline = pipeline.count++;\n    task.__pipeline = pipeline;\n  };\n\n  Scheduler.wrapStageHandler = function (stageHandler, visualType) {\n    if (isFunction(stageHandler)) {\n      stageHandler = {\n        overallReset: stageHandler,\n        seriesType: detectSeriseType(stageHandler)\n      };\n    }\n\n    stageHandler.uid = getUID('stageHandler');\n    visualType && (stageHandler.visualType = visualType);\n    return stageHandler;\n  };\n\n  ;\n  return Scheduler;\n}();\n\nfunction overallTaskReset(context) {\n  context.overallReset(context.ecModel, context.api, context.payload);\n}\n\nfunction stubReset(context) {\n  return context.overallProgress && stubProgress;\n}\n\nfunction stubProgress() {\n  this.agent.dirty();\n  this.getDownstream().dirty();\n}\n\nfunction stubOnDirty() {\n  this.agent && this.agent.dirty();\n}\n\nfunction seriesTaskPlan(context) {\n  return context.plan ? context.plan(context.model, context.ecModel, context.api, context.payload) : null;\n}\n\nfunction seriesTaskReset(context) {\n  if (context.useClearVisual) {\n    context.data.clearAllVisual();\n  }\n\n  var resetDefines = context.resetDefines = normalizeToArray(context.reset(context.model, context.ecModel, context.api, context.payload));\n  return resetDefines.length > 1 ? map(resetDefines, function (v, idx) {\n    return makeSeriesTaskProgress(idx);\n  }) : singleSeriesTaskProgress;\n}\n\nvar singleSeriesTaskProgress = makeSeriesTaskProgress(0);\n\nfunction makeSeriesTaskProgress(resetDefineIdx) {\n  return function (params, context) {\n    var data = context.data;\n    var resetDefine = context.resetDefines[resetDefineIdx];\n\n    if (resetDefine && resetDefine.dataEach) {\n      for (var i = params.start; i < params.end; i++) {\n        resetDefine.dataEach(data, i);\n      }\n    } else if (resetDefine && resetDefine.progress) {\n      resetDefine.progress(params, data);\n    }\n  };\n}\n\nfunction seriesTaskCount(context) {\n  return context.data.count();\n}\n\nfunction detectSeriseType(legacyFunc) {\n  seriesType = null;\n\n  try {\n    legacyFunc(ecModelMock, apiMock);\n  } catch (e) {}\n\n  return seriesType;\n}\n\nvar ecModelMock = {};\nvar apiMock = {};\nvar seriesType;\nmockMethods(ecModelMock, GlobalModel);\nmockMethods(apiMock, ExtensionAPI);\n\necModelMock.eachSeriesByType = ecModelMock.eachRawSeriesByType = function (type) {\n  seriesType = type;\n};\n\necModelMock.eachComponent = function (cond) {\n  if (cond.mainType === 'series' && cond.subType) {\n    seriesType = cond.subType;\n  }\n};\n\nfunction mockMethods(target, Clz) {\n  for (var name_1 in Clz.prototype) {\n    target[name_1] = noop;\n  }\n}\n\nexport default Scheduler;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar colorAll = ['#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'];\nexport default {\n  color: colorAll,\n  colorLayer: [['#37A2DA', '#ffd85c', '#fd7b5f'], ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'], ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'], colorAll]\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar contrastColor = '#B9B8CE';\nvar backgroundColor = '#100C2A';\n\nvar axisCommon = function () {\n  return {\n    axisLine: {\n      lineStyle: {\n        color: contrastColor\n      }\n    },\n    splitLine: {\n      lineStyle: {\n        color: '#484753'\n      }\n    },\n    splitArea: {\n      areaStyle: {\n        color: ['rgba(255,255,255,0.02)', 'rgba(255,255,255,0.05)']\n      }\n    },\n    minorSplitLine: {\n      lineStyle: {\n        color: '#20203B'\n      }\n    }\n  };\n};\n\nvar colorPalette = ['#4992ff', '#7cffb2', '#fddd60', '#ff6e76', '#58d9f9', '#05c091', '#ff8a45', '#8d48e3', '#dd79ff'];\nvar theme = {\n  darkMode: true,\n  color: colorPalette,\n  backgroundColor: backgroundColor,\n  axisPointer: {\n    lineStyle: {\n      color: '#817f91'\n    },\n    crossStyle: {\n      color: '#817f91'\n    },\n    label: {\n      color: '#fff'\n    }\n  },\n  legend: {\n    textStyle: {\n      color: contrastColor\n    }\n  },\n  textStyle: {\n    color: contrastColor\n  },\n  title: {\n    textStyle: {\n      color: '#EEF1FA'\n    },\n    subtextStyle: {\n      color: '#B9B8CE'\n    }\n  },\n  toolbox: {\n    iconStyle: {\n      borderColor: contrastColor\n    }\n  },\n  dataZoom: {\n    borderColor: '#71708A',\n    textStyle: {\n      color: contrastColor\n    },\n    brushStyle: {\n      color: 'rgba(135,163,206,0.3)'\n    },\n    handleStyle: {\n      color: '#353450',\n      borderColor: '#C5CBE3'\n    },\n    moveHandleStyle: {\n      color: '#B0B6C3',\n      opacity: 0.3\n    },\n    fillerColor: 'rgba(135,163,206,0.2)',\n    emphasis: {\n      handleStyle: {\n        borderColor: '#91B7F2',\n        color: '#4D587D'\n      },\n      moveHandleStyle: {\n        color: '#636D9A',\n        opacity: 0.7\n      }\n    },\n    dataBackground: {\n      lineStyle: {\n        color: '#71708A',\n        width: 1\n      },\n      areaStyle: {\n        color: '#71708A'\n      }\n    },\n    selectedDataBackground: {\n      lineStyle: {\n        color: '#87A3CE'\n      },\n      areaStyle: {\n        color: '#87A3CE'\n      }\n    }\n  },\n  visualMap: {\n    textStyle: {\n      color: contrastColor\n    }\n  },\n  timeline: {\n    lineStyle: {\n      color: contrastColor\n    },\n    label: {\n      color: contrastColor\n    },\n    controlStyle: {\n      color: contrastColor,\n      borderColor: contrastColor\n    }\n  },\n  calendar: {\n    itemStyle: {\n      color: backgroundColor\n    },\n    dayLabel: {\n      color: contrastColor\n    },\n    monthLabel: {\n      color: contrastColor\n    },\n    yearLabel: {\n      color: contrastColor\n    }\n  },\n  timeAxis: axisCommon(),\n  logAxis: axisCommon(),\n  valueAxis: axisCommon(),\n  categoryAxis: axisCommon(),\n  line: {\n    symbol: 'circle'\n  },\n  graph: {\n    color: colorPalette\n  },\n  gauge: {\n    title: {\n      color: contrastColor\n    },\n    axisLine: {\n      lineStyle: {\n        color: [[1, 'rgba(207,212,219,0.2)']]\n      }\n    },\n    axisLabel: {\n      color: contrastColor\n    },\n    detail: {\n      color: '#EEF1FA'\n    }\n  },\n  candlestick: {\n    itemStyle: {\n      color: '#f64e56',\n      color0: '#54ea92',\n      borderColor: '#f64e56',\n      borderColor0: '#54ea92'\n    }\n  }\n};\ntheme.categoryAxis.splitLine.show = false;\nexport default theme;","import { isString } from '../core/util';\nexport function parseXML(svg) {\n    if (isString(svg)) {\n        var parser = new DOMParser();\n        svg = parser.parseFromString(svg, 'text/xml');\n    }\n    var svgNode = svg;\n    if (svgNode.nodeType === 9) {\n        svgNode = svgNode.firstChild;\n    }\n    while (svgNode.nodeName.toLowerCase() !== 'svg' || svgNode.nodeType !== 1) {\n        svgNode = svgNode.nextSibling;\n    }\n    return svgNode;\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, isString, isArray, each, assert } from 'zrender/lib/core/util';\nimport { parseXML } from 'zrender/lib/tool/parseXML';\nvar storage = createHashMap();\nexport default {\n  registerMap: function (mapName, rawDef, rawSpecialAreas) {\n    var records;\n\n    if (isArray(rawDef)) {\n      records = rawDef;\n    } else if (rawDef.svg) {\n      records = [{\n        type: 'svg',\n        source: rawDef.svg,\n        specialAreas: rawDef.specialAreas\n      }];\n    } else {\n      var geoSource = rawDef.geoJson || rawDef.geoJSON;\n\n      if (geoSource && !rawDef.features) {\n        rawSpecialAreas = rawDef.specialAreas;\n        rawDef = geoSource;\n      }\n\n      records = [{\n        type: 'geoJSON',\n        source: rawDef,\n        specialAreas: rawSpecialAreas\n      }];\n    }\n\n    each(records, function (record) {\n      var type = record.type;\n      type === 'geoJson' && (type = record.type = 'geoJSON');\n      var parse = parsers[type];\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(parse, 'Illegal map type: ' + type);\n      }\n\n      parse(record);\n    });\n    return storage.set(mapName, records);\n  },\n  retrieveMap: function (mapName) {\n    return storage.get(mapName);\n  }\n};\nvar parsers = {\n  geoJSON: function (record) {\n    var source = record.source;\n    record.geoJSON = !isString(source) ? source : typeof JSON !== 'undefined' && JSON.parse ? JSON.parse(source) : new Function('return (' + source + ');')();\n  },\n  svg: function (record) {\n    record.svgXML = parseXML(record.source);\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parseClassType } from './clazz';\n\nvar ECEventProcessor = function () {\n  function ECEventProcessor() {}\n\n  ECEventProcessor.prototype.normalizeQuery = function (query) {\n    var cptQuery = {};\n    var dataQuery = {};\n    var otherQuery = {};\n\n    if (zrUtil.isString(query)) {\n      var condCptType = parseClassType(query);\n      cptQuery.mainType = condCptType.main || null;\n      cptQuery.subType = condCptType.sub || null;\n    } else {\n      var suffixes_1 = ['Index', 'Name', 'Id'];\n      var dataKeys_1 = {\n        name: 1,\n        dataIndex: 1,\n        dataType: 1\n      };\n      zrUtil.each(query, function (val, key) {\n        var reserved = false;\n\n        for (var i = 0; i < suffixes_1.length; i++) {\n          var propSuffix = suffixes_1[i];\n          var suffixPos = key.lastIndexOf(propSuffix);\n\n          if (suffixPos > 0 && suffixPos === key.length - propSuffix.length) {\n            var mainType = key.slice(0, suffixPos);\n\n            if (mainType !== 'data') {\n              cptQuery.mainType = mainType;\n              cptQuery[propSuffix.toLowerCase()] = val;\n              reserved = true;\n            }\n          }\n        }\n\n        if (dataKeys_1.hasOwnProperty(key)) {\n          dataQuery[key] = val;\n          reserved = true;\n        }\n\n        if (!reserved) {\n          otherQuery[key] = val;\n        }\n      });\n    }\n\n    return {\n      cptQuery: cptQuery,\n      dataQuery: dataQuery,\n      otherQuery: otherQuery\n    };\n  };\n\n  ECEventProcessor.prototype.filter = function (eventType, query) {\n    var eventInfo = this.eventInfo;\n\n    if (!eventInfo) {\n      return true;\n    }\n\n    var targetEl = eventInfo.targetEl;\n    var packedEvent = eventInfo.packedEvent;\n    var model = eventInfo.model;\n    var view = eventInfo.view;\n\n    if (!model || !view) {\n      return true;\n    }\n\n    var cptQuery = query.cptQuery;\n    var dataQuery = query.dataQuery;\n    return check(cptQuery, model, 'mainType') && check(cptQuery, model, 'subType') && check(cptQuery, model, 'index', 'componentIndex') && check(cptQuery, model, 'name') && check(cptQuery, model, 'id') && check(dataQuery, packedEvent, 'name') && check(dataQuery, packedEvent, 'dataIndex') && check(dataQuery, packedEvent, 'dataType') && (!view.filterForExposedEvent || view.filterForExposedEvent(eventType, query.otherQuery, targetEl, packedEvent));\n\n    function check(query, host, prop, propOnHost) {\n      return query[prop] == null || host[propOnHost || prop] === query[prop];\n    }\n  };\n\n  ECEventProcessor.prototype.afterTrigger = function () {\n    this.eventInfo = null;\n  };\n\n  return ECEventProcessor;\n}();\n\nexport { ECEventProcessor };\n;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isFunction } from 'zrender/lib/core/util';\nvar seriesSymbolTask = {\n  createOnAllSeries: true,\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    var data = seriesModel.getData();\n\n    if (seriesModel.legendSymbol) {\n      data.setVisual('legendSymbol', seriesModel.legendSymbol);\n    }\n\n    if (!seriesModel.hasSymbolVisual) {\n      return;\n    }\n\n    var symbolType = seriesModel.get('symbol');\n    var symbolSize = seriesModel.get('symbolSize');\n    var keepAspect = seriesModel.get('symbolKeepAspect');\n    var symbolRotate = seriesModel.get('symbolRotate');\n    var hasSymbolTypeCallback = isFunction(symbolType);\n    var hasSymbolSizeCallback = isFunction(symbolSize);\n    var hasSymbolRotateCallback = isFunction(symbolRotate);\n    var hasCallback = hasSymbolTypeCallback || hasSymbolSizeCallback || hasSymbolRotateCallback;\n    var seriesSymbol = !hasSymbolTypeCallback && symbolType ? symbolType : seriesModel.defaultSymbol;\n    var seriesSymbolSize = !hasSymbolSizeCallback ? symbolSize : null;\n    var seriesSymbolRotate = !hasSymbolRotateCallback ? symbolRotate : null;\n    data.setVisual({\n      legendSymbol: seriesModel.legendSymbol || seriesSymbol,\n      symbol: seriesSymbol,\n      symbolSize: seriesSymbolSize,\n      symbolKeepAspect: keepAspect,\n      symbolRotate: seriesSymbolRotate\n    });\n\n    if (ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    function dataEach(data, idx) {\n      var rawValue = seriesModel.getRawValue(idx);\n      var params = seriesModel.getDataParams(idx);\n      hasSymbolTypeCallback && data.setItemVisual(idx, 'symbol', symbolType(rawValue, params));\n      hasSymbolSizeCallback && data.setItemVisual(idx, 'symbolSize', symbolSize(rawValue, params));\n      hasSymbolRotateCallback && data.setItemVisual(idx, 'symbolRotate', symbolRotate(rawValue, params));\n    }\n\n    return {\n      dataEach: hasCallback ? dataEach : null\n    };\n  }\n};\nvar dataSymbolTask = {\n  createOnAllSeries: true,\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    if (!seriesModel.hasSymbolVisual) {\n      return;\n    }\n\n    if (ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n\n    function dataEach(data, idx) {\n      var itemModel = data.getItemModel(idx);\n      var itemSymbolType = itemModel.getShallow('symbol', true);\n      var itemSymbolSize = itemModel.getShallow('symbolSize', true);\n      var itemSymbolRotate = itemModel.getShallow('symbolRotate', true);\n      var itemSymbolKeepAspect = itemModel.getShallow('symbolKeepAspect', true);\n\n      if (itemSymbolType != null) {\n        data.setItemVisual(idx, 'symbol', itemSymbolType);\n      }\n\n      if (itemSymbolSize != null) {\n        data.setItemVisual(idx, 'symbolSize', itemSymbolSize);\n      }\n\n      if (itemSymbolRotate != null) {\n        data.setItemVisual(idx, 'symbolRotate', itemSymbolRotate);\n      }\n\n      if (itemSymbolKeepAspect != null) {\n        data.setItemVisual(idx, 'symbolKeepAspect', itemSymbolKeepAspect);\n      }\n    }\n\n    return {\n      dataEach: data.hasItemOption ? dataEach : null\n    };\n  }\n};\nexport { seriesSymbolTask, dataSymbolTask };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function getItemVisualFromData(data, dataIndex, key) {\n  switch (key) {\n    case 'color':\n      var style = data.getItemVisual(dataIndex, 'style');\n      return style[data.getVisual('drawType')];\n\n    case 'opacity':\n      return data.getItemVisual(dataIndex, 'style').opacity;\n\n    case 'symbol':\n    case 'symbolSize':\n    case 'liftZ':\n      return data.getItemVisual(dataIndex, key);\n\n    default:\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn(\"Unknown visual type \" + key);\n      }\n\n  }\n}\nexport function getVisualFromData(data, key) {\n  switch (key) {\n    case 'color':\n      var style = data.getVisual('style');\n      return style[data.getVisual('drawType')];\n\n    case 'opacity':\n      return data.getVisual('style').opacity;\n\n    case 'symbol':\n    case 'symbolSize':\n    case 'liftZ':\n      return data.getVisual(key);\n\n    default:\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn(\"Unknown visual type \" + key);\n      }\n\n  }\n}\nexport function setItemVisualFromData(data, dataIndex, key, value) {\n  switch (key) {\n    case 'color':\n      var style = data.ensureUniqueItemVisual(dataIndex, 'style');\n      style[data.getVisual('drawType')] = value;\n      data.setItemVisual(dataIndex, 'colorFromPalette', false);\n      break;\n\n    case 'opacity':\n      data.ensureUniqueItemVisual(dataIndex, 'style').opacity = value;\n      break;\n\n    case 'symbol':\n    case 'symbolSize':\n    case 'liftZ':\n      data.setItemVisual(dataIndex, key, value);\n      break;\n\n    default:\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn(\"Unknown visual type \" + key);\n      }\n\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { Point, Path, Polyline } from '../util/graphic';\nimport PathProxy from 'zrender/lib/core/PathProxy';\nimport { normalizeRadian } from 'zrender/lib/contain/util';\nimport { cubicProjectPoint, quadraticProjectPoint } from 'zrender/lib/core/curve';\nimport { defaults, retrieve2 } from 'zrender/lib/core/util';\nimport { invert } from 'zrender/lib/core/matrix';\nimport * as vector from 'zrender/lib/core/vector';\nimport { DISPLAY_STATES, SPECIAL_STATES } from '../util/states';\nvar PI2 = Math.PI * 2;\nvar CMD = PathProxy.CMD;\nvar DEFAULT_SEARCH_SPACE = ['top', 'right', 'bottom', 'left'];\n\nfunction getCandidateAnchor(pos, distance, rect, outPt, outDir) {\n  var width = rect.width;\n  var height = rect.height;\n\n  switch (pos) {\n    case 'top':\n      outPt.set(rect.x + width / 2, rect.y - distance);\n      outDir.set(0, -1);\n      break;\n\n    case 'bottom':\n      outPt.set(rect.x + width / 2, rect.y + height + distance);\n      outDir.set(0, 1);\n      break;\n\n    case 'left':\n      outPt.set(rect.x - distance, rect.y + height / 2);\n      outDir.set(-1, 0);\n      break;\n\n    case 'right':\n      outPt.set(rect.x + width + distance, rect.y + height / 2);\n      outDir.set(1, 0);\n      break;\n  }\n}\n\nfunction projectPointToArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y, out) {\n  x -= cx;\n  y -= cy;\n  var d = Math.sqrt(x * x + y * y);\n  x /= d;\n  y /= d;\n  var ox = x * r + cx;\n  var oy = y * r + cy;\n\n  if (Math.abs(startAngle - endAngle) % PI2 < 1e-4) {\n    out[0] = ox;\n    out[1] = oy;\n    return d - r;\n  }\n\n  if (anticlockwise) {\n    var tmp = startAngle;\n    startAngle = normalizeRadian(endAngle);\n    endAngle = normalizeRadian(tmp);\n  } else {\n    startAngle = normalizeRadian(startAngle);\n    endAngle = normalizeRadian(endAngle);\n  }\n\n  if (startAngle > endAngle) {\n    endAngle += PI2;\n  }\n\n  var angle = Math.atan2(y, x);\n\n  if (angle < 0) {\n    angle += PI2;\n  }\n\n  if (angle >= startAngle && angle <= endAngle || angle + PI2 >= startAngle && angle + PI2 <= endAngle) {\n    out[0] = ox;\n    out[1] = oy;\n    return d - r;\n  }\n\n  var x1 = r * Math.cos(startAngle) + cx;\n  var y1 = r * Math.sin(startAngle) + cy;\n  var x2 = r * Math.cos(endAngle) + cx;\n  var y2 = r * Math.sin(endAngle) + cy;\n  var d1 = (x1 - x) * (x1 - x) + (y1 - y) * (y1 - y);\n  var d2 = (x2 - x) * (x2 - x) + (y2 - y) * (y2 - y);\n\n  if (d1 < d2) {\n    out[0] = x1;\n    out[1] = y1;\n    return Math.sqrt(d1);\n  } else {\n    out[0] = x2;\n    out[1] = y2;\n    return Math.sqrt(d2);\n  }\n}\n\nfunction projectPointToLine(x1, y1, x2, y2, x, y, out, limitToEnds) {\n  var dx = x - x1;\n  var dy = y - y1;\n  var dx1 = x2 - x1;\n  var dy1 = y2 - y1;\n  var lineLen = Math.sqrt(dx1 * dx1 + dy1 * dy1);\n  dx1 /= lineLen;\n  dy1 /= lineLen;\n  var projectedLen = dx * dx1 + dy * dy1;\n  var t = projectedLen / lineLen;\n\n  if (limitToEnds) {\n    t = Math.min(Math.max(t, 0), 1);\n  }\n\n  t *= lineLen;\n  var ox = out[0] = x1 + t * dx1;\n  var oy = out[1] = y1 + t * dy1;\n  return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\n}\n\nfunction projectPointToRect(x1, y1, width, height, x, y, out) {\n  if (width < 0) {\n    x1 = x1 + width;\n    width = -width;\n  }\n\n  if (height < 0) {\n    y1 = y1 + height;\n    height = -height;\n  }\n\n  var x2 = x1 + width;\n  var y2 = y1 + height;\n  var ox = out[0] = Math.min(Math.max(x, x1), x2);\n  var oy = out[1] = Math.min(Math.max(y, y1), y2);\n  return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\n}\n\nvar tmpPt = [];\n\nfunction nearestPointOnRect(pt, rect, out) {\n  var dist = projectPointToRect(rect.x, rect.y, rect.width, rect.height, pt.x, pt.y, tmpPt);\n  out.set(tmpPt[0], tmpPt[1]);\n  return dist;\n}\n\nfunction nearestPointOnPath(pt, path, out) {\n  var xi = 0;\n  var yi = 0;\n  var x0 = 0;\n  var y0 = 0;\n  var x1;\n  var y1;\n  var minDist = Infinity;\n  var data = path.data;\n  var x = pt.x;\n  var y = pt.y;\n\n  for (var i = 0; i < data.length;) {\n    var cmd = data[i++];\n\n    if (i === 1) {\n      xi = data[i];\n      yi = data[i + 1];\n      x0 = xi;\n      y0 = yi;\n    }\n\n    var d = minDist;\n\n    switch (cmd) {\n      case CMD.M:\n        x0 = data[i++];\n        y0 = data[i++];\n        xi = x0;\n        yi = y0;\n        break;\n\n      case CMD.L:\n        d = projectPointToLine(xi, yi, data[i], data[i + 1], x, y, tmpPt, true);\n        xi = data[i++];\n        yi = data[i++];\n        break;\n\n      case CMD.C:\n        d = cubicProjectPoint(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\n        xi = data[i++];\n        yi = data[i++];\n        break;\n\n      case CMD.Q:\n        d = quadraticProjectPoint(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\n        xi = data[i++];\n        yi = data[i++];\n        break;\n\n      case CMD.A:\n        var cx = data[i++];\n        var cy = data[i++];\n        var rx = data[i++];\n        var ry = data[i++];\n        var theta = data[i++];\n        var dTheta = data[i++];\n        i += 1;\n        var anticlockwise = !!(1 - data[i++]);\n        x1 = Math.cos(theta) * rx + cx;\n        y1 = Math.sin(theta) * ry + cy;\n\n        if (i <= 1) {\n          x0 = x1;\n          y0 = y1;\n        }\n\n        var _x = (x - cx) * ry / rx + cx;\n\n        d = projectPointToArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y, tmpPt);\n        xi = Math.cos(theta + dTheta) * rx + cx;\n        yi = Math.sin(theta + dTheta) * ry + cy;\n        break;\n\n      case CMD.R:\n        x0 = xi = data[i++];\n        y0 = yi = data[i++];\n        var width = data[i++];\n        var height = data[i++];\n        d = projectPointToRect(x0, y0, width, height, x, y, tmpPt);\n        break;\n\n      case CMD.Z:\n        d = projectPointToLine(xi, yi, x0, y0, x, y, tmpPt, true);\n        xi = x0;\n        yi = y0;\n        break;\n    }\n\n    if (d < minDist) {\n      minDist = d;\n      out.set(tmpPt[0], tmpPt[1]);\n    }\n  }\n\n  return minDist;\n}\n\nvar pt0 = new Point();\nvar pt1 = new Point();\nvar pt2 = new Point();\nvar dir = new Point();\nvar dir2 = new Point();\nexport function updateLabelLinePoints(target, labelLineModel) {\n  if (!target) {\n    return;\n  }\n\n  var labelLine = target.getTextGuideLine();\n  var label = target.getTextContent();\n\n  if (!(label && labelLine)) {\n    return;\n  }\n\n  var labelGuideConfig = target.textGuideLineConfig || {};\n  var points = [[0, 0], [0, 0], [0, 0]];\n  var searchSpace = labelGuideConfig.candidates || DEFAULT_SEARCH_SPACE;\n  var labelRect = label.getBoundingRect().clone();\n  labelRect.applyTransform(label.getComputedTransform());\n  var minDist = Infinity;\n  var anchorPoint = labelGuideConfig.anchor;\n  var targetTransform = target.getComputedTransform();\n  var targetInversedTransform = targetTransform && invert([], targetTransform);\n  var len = labelLineModel.get('length2') || 0;\n\n  if (anchorPoint) {\n    pt2.copy(anchorPoint);\n  }\n\n  for (var i = 0; i < searchSpace.length; i++) {\n    var candidate = searchSpace[i];\n    getCandidateAnchor(candidate, 0, labelRect, pt0, dir);\n    Point.scaleAndAdd(pt1, pt0, dir, len);\n    pt1.transform(targetInversedTransform);\n    var boundingRect = target.getBoundingRect();\n    var dist = anchorPoint ? anchorPoint.distance(pt1) : target instanceof Path ? nearestPointOnPath(pt1, target.path, pt2) : nearestPointOnRect(pt1, boundingRect, pt2);\n\n    if (dist < minDist) {\n      minDist = dist;\n      pt1.transform(targetTransform);\n      pt2.transform(targetTransform);\n      pt2.toArray(points[0]);\n      pt1.toArray(points[1]);\n      pt0.toArray(points[2]);\n    }\n  }\n\n  limitTurnAngle(points, labelLineModel.get('minTurnAngle'));\n  labelLine.setShape({\n    points: points\n  });\n}\nvar tmpArr = [];\nvar tmpProjPoint = new Point();\nexport function limitTurnAngle(linePoints, minTurnAngle) {\n  if (!(minTurnAngle <= 180 && minTurnAngle > 0)) {\n    return;\n  }\n\n  minTurnAngle = minTurnAngle / 180 * Math.PI;\n  pt0.fromArray(linePoints[0]);\n  pt1.fromArray(linePoints[1]);\n  pt2.fromArray(linePoints[2]);\n  Point.sub(dir, pt0, pt1);\n  Point.sub(dir2, pt2, pt1);\n  var len1 = dir.len();\n  var len2 = dir2.len();\n\n  if (len1 < 1e-3 || len2 < 1e-3) {\n    return;\n  }\n\n  dir.scale(1 / len1);\n  dir2.scale(1 / len2);\n  var angleCos = dir.dot(dir2);\n  var minTurnAngleCos = Math.cos(minTurnAngle);\n\n  if (minTurnAngleCos < angleCos) {\n    var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\n    tmpProjPoint.fromArray(tmpArr);\n    tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI - minTurnAngle));\n    var t = pt2.x !== pt1.x ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x) : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\n\n    if (isNaN(t)) {\n      return;\n    }\n\n    if (t < 0) {\n      Point.copy(tmpProjPoint, pt1);\n    } else if (t > 1) {\n      Point.copy(tmpProjPoint, pt2);\n    }\n\n    tmpProjPoint.toArray(linePoints[1]);\n  }\n}\nexport function limitSurfaceAngle(linePoints, surfaceNormal, maxSurfaceAngle) {\n  if (!(maxSurfaceAngle <= 180 && maxSurfaceAngle > 0)) {\n    return;\n  }\n\n  maxSurfaceAngle = maxSurfaceAngle / 180 * Math.PI;\n  pt0.fromArray(linePoints[0]);\n  pt1.fromArray(linePoints[1]);\n  pt2.fromArray(linePoints[2]);\n  Point.sub(dir, pt1, pt0);\n  Point.sub(dir2, pt2, pt1);\n  var len1 = dir.len();\n  var len2 = dir2.len();\n\n  if (len1 < 1e-3 || len2 < 1e-3) {\n    return;\n  }\n\n  dir.scale(1 / len1);\n  dir2.scale(1 / len2);\n  var angleCos = dir.dot(surfaceNormal);\n  var maxSurfaceAngleCos = Math.cos(maxSurfaceAngle);\n\n  if (angleCos < maxSurfaceAngleCos) {\n    var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\n    tmpProjPoint.fromArray(tmpArr);\n    var HALF_PI = Math.PI / 2;\n    var angle2 = Math.acos(dir2.dot(surfaceNormal));\n    var newAngle = HALF_PI + angle2 - maxSurfaceAngle;\n\n    if (newAngle >= HALF_PI) {\n      Point.copy(tmpProjPoint, pt2);\n    } else {\n      tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI / 2 - newAngle));\n      var t = pt2.x !== pt1.x ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x) : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\n\n      if (isNaN(t)) {\n        return;\n      }\n\n      if (t < 0) {\n        Point.copy(tmpProjPoint, pt1);\n      } else if (t > 1) {\n        Point.copy(tmpProjPoint, pt2);\n      }\n    }\n\n    tmpProjPoint.toArray(linePoints[1]);\n  }\n}\n\nfunction setLabelLineState(labelLine, ignore, stateName, stateModel) {\n  var isNormal = stateName === 'normal';\n  var stateObj = isNormal ? labelLine : labelLine.ensureState(stateName);\n  stateObj.ignore = ignore;\n  var smooth = stateModel.get('smooth');\n\n  if (smooth && smooth === true) {\n    smooth = 0.3;\n  }\n\n  stateObj.shape = stateObj.shape || {};\n\n  if (smooth > 0) {\n    stateObj.shape.smooth = smooth;\n  }\n\n  var styleObj = stateModel.getModel('lineStyle').getLineStyle();\n  isNormal ? labelLine.useStyle(styleObj) : stateObj.style = styleObj;\n}\n\nfunction buildLabelLinePath(path, shape) {\n  var smooth = shape.smooth;\n  var points = shape.points;\n\n  if (!points) {\n    return;\n  }\n\n  path.moveTo(points[0][0], points[0][1]);\n\n  if (smooth > 0 && points.length >= 3) {\n    var len1 = vector.dist(points[0], points[1]);\n    var len2 = vector.dist(points[1], points[2]);\n\n    if (!len1 || !len2) {\n      path.lineTo(points[1][0], points[1][1]);\n      path.lineTo(points[2][0], points[2][1]);\n      return;\n    }\n\n    var moveLen = Math.min(len1, len2) * smooth;\n    var midPoint0 = vector.lerp([], points[1], points[0], moveLen / len1);\n    var midPoint2 = vector.lerp([], points[1], points[2], moveLen / len2);\n    var midPoint1 = vector.lerp([], midPoint0, midPoint2, 0.5);\n    path.bezierCurveTo(midPoint0[0], midPoint0[1], midPoint0[0], midPoint0[1], midPoint1[0], midPoint1[1]);\n    path.bezierCurveTo(midPoint2[0], midPoint2[1], midPoint2[0], midPoint2[1], points[2][0], points[2][1]);\n  } else {\n    for (var i = 1; i < points.length; i++) {\n      path.lineTo(points[i][0], points[i][1]);\n    }\n  }\n}\n\nexport function setLabelLineStyle(targetEl, statesModels, defaultStyle) {\n  var labelLine = targetEl.getTextGuideLine();\n  var label = targetEl.getTextContent();\n\n  if (!label) {\n    if (labelLine) {\n      targetEl.removeTextGuideLine();\n    }\n\n    return;\n  }\n\n  var normalModel = statesModels.normal;\n  var showNormal = normalModel.get('show');\n  var labelIgnoreNormal = label.ignore;\n\n  for (var i = 0; i < DISPLAY_STATES.length; i++) {\n    var stateName = DISPLAY_STATES[i];\n    var stateModel = statesModels[stateName];\n    var isNormal = stateName === 'normal';\n\n    if (stateModel) {\n      var stateShow = stateModel.get('show');\n      var isLabelIgnored = isNormal ? labelIgnoreNormal : retrieve2(label.states[stateName] && label.states[stateName].ignore, labelIgnoreNormal);\n\n      if (isLabelIgnored || !retrieve2(stateShow, showNormal)) {\n        var stateObj = isNormal ? labelLine : labelLine && labelLine.states.normal;\n\n        if (stateObj) {\n          stateObj.ignore = true;\n        }\n\n        continue;\n      }\n\n      if (!labelLine) {\n        labelLine = new Polyline();\n        targetEl.setTextGuideLine(labelLine);\n\n        if (!isNormal && (labelIgnoreNormal || !showNormal)) {\n          setLabelLineState(labelLine, true, 'normal', statesModels.normal);\n        }\n\n        if (targetEl.stateProxy) {\n          labelLine.stateProxy = targetEl.stateProxy;\n        }\n      }\n\n      setLabelLineState(labelLine, false, stateName, stateModel);\n    }\n  }\n\n  if (labelLine) {\n    defaults(labelLine.style, defaultStyle);\n    labelLine.style.fill = null;\n    var showAbove = normalModel.get('showAbove');\n    var labelLineConfig = targetEl.textGuideLineConfig = targetEl.textGuideLineConfig || {};\n    labelLineConfig.showAbove = showAbove || false;\n    labelLine.buildPath = buildLabelLinePath;\n  }\n}\nexport function getLabelLineStatesModels(itemModel, labelLineName) {\n  labelLineName = labelLineName || 'labelLine';\n  var statesModels = {\n    normal: itemModel.getModel(labelLineName)\n  };\n\n  for (var i = 0; i < SPECIAL_STATES.length; i++) {\n    var stateName = SPECIAL_STATES[i];\n    statesModels[stateName] = itemModel.getModel([stateName, labelLineName]);\n  }\n\n  return statesModels;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { BoundingRect, OrientedBoundingRect } from '../util/graphic';\nexport function prepareLayoutList(input) {\n  var list = [];\n\n  for (var i = 0; i < input.length; i++) {\n    var rawItem = input[i];\n\n    if (rawItem.defaultAttr.ignore) {\n      continue;\n    }\n\n    var label = rawItem.label;\n    var transform = label.getComputedTransform();\n    var localRect = label.getBoundingRect();\n    var isAxisAligned = !transform || transform[1] < 1e-5 && transform[2] < 1e-5;\n    var minMargin = label.style.margin || 0;\n    var globalRect = localRect.clone();\n    globalRect.applyTransform(transform);\n    globalRect.x -= minMargin / 2;\n    globalRect.y -= minMargin / 2;\n    globalRect.width += minMargin;\n    globalRect.height += minMargin;\n    var obb = isAxisAligned ? new OrientedBoundingRect(localRect, transform) : null;\n    list.push({\n      label: label,\n      labelLine: rawItem.labelLine,\n      rect: globalRect,\n      localRect: localRect,\n      obb: obb,\n      priority: rawItem.priority,\n      defaultAttr: rawItem.defaultAttr,\n      layoutOption: rawItem.computedLayoutOption,\n      axisAligned: isAxisAligned,\n      transform: transform\n    });\n  }\n\n  return list;\n}\n\nfunction shiftLayout(list, xyDim, sizeDim, minBound, maxBound, balanceShift) {\n  var len = list.length;\n\n  if (len < 2) {\n    return;\n  }\n\n  list.sort(function (a, b) {\n    return a.rect[xyDim] - b.rect[xyDim];\n  });\n  var lastPos = 0;\n  var delta;\n  var adjusted = false;\n  var shifts = [];\n  var totalShifts = 0;\n\n  for (var i = 0; i < len; i++) {\n    var item = list[i];\n    var rect = item.rect;\n    delta = rect[xyDim] - lastPos;\n\n    if (delta < 0) {\n      rect[xyDim] -= delta;\n      item.label[xyDim] -= delta;\n      adjusted = true;\n    }\n\n    var shift = Math.max(-delta, 0);\n    shifts.push(shift);\n    totalShifts += shift;\n    lastPos = rect[xyDim] + rect[sizeDim];\n  }\n\n  if (totalShifts > 0 && balanceShift) {\n    shiftList(-totalShifts / len, 0, len);\n  }\n\n  var first = list[0];\n  var last = list[len - 1];\n  var minGap;\n  var maxGap;\n  updateMinMaxGap();\n  minGap < 0 && squeezeGaps(-minGap, 0.8);\n  maxGap < 0 && squeezeGaps(maxGap, 0.8);\n  updateMinMaxGap();\n  takeBoundsGap(minGap, maxGap, 1);\n  takeBoundsGap(maxGap, minGap, -1);\n  updateMinMaxGap();\n\n  if (minGap < 0) {\n    squeezeWhenBailout(-minGap);\n  }\n\n  if (maxGap < 0) {\n    squeezeWhenBailout(maxGap);\n  }\n\n  function updateMinMaxGap() {\n    minGap = first.rect[xyDim] - minBound;\n    maxGap = maxBound - last.rect[xyDim] - last.rect[sizeDim];\n  }\n\n  function takeBoundsGap(gapThisBound, gapOtherBound, moveDir) {\n    if (gapThisBound < 0) {\n      var moveFromMaxGap = Math.min(gapOtherBound, -gapThisBound);\n\n      if (moveFromMaxGap > 0) {\n        shiftList(moveFromMaxGap * moveDir, 0, len);\n        var remained = moveFromMaxGap + gapThisBound;\n\n        if (remained < 0) {\n          squeezeGaps(-remained * moveDir, 1);\n        }\n      } else {\n        squeezeGaps(-gapThisBound * moveDir, 1);\n      }\n    }\n  }\n\n  function shiftList(delta, start, end) {\n    if (delta !== 0) {\n      adjusted = true;\n    }\n\n    for (var i = start; i < end; i++) {\n      var item = list[i];\n      var rect = item.rect;\n      rect[xyDim] += delta;\n      item.label[xyDim] += delta;\n    }\n  }\n\n  function squeezeGaps(delta, maxSqeezePercent) {\n    var gaps = [];\n    var totalGaps = 0;\n\n    for (var i = 1; i < len; i++) {\n      var prevItemRect = list[i - 1].rect;\n      var gap = Math.max(list[i].rect[xyDim] - prevItemRect[xyDim] - prevItemRect[sizeDim], 0);\n      gaps.push(gap);\n      totalGaps += gap;\n    }\n\n    if (!totalGaps) {\n      return;\n    }\n\n    var squeezePercent = Math.min(Math.abs(delta) / totalGaps, maxSqeezePercent);\n\n    if (delta > 0) {\n      for (var i = 0; i < len - 1; i++) {\n        var movement = gaps[i] * squeezePercent;\n        shiftList(movement, 0, i + 1);\n      }\n    } else {\n      for (var i = len - 1; i > 0; i--) {\n        var movement = gaps[i - 1] * squeezePercent;\n        shiftList(-movement, i, len);\n      }\n    }\n  }\n\n  function squeezeWhenBailout(delta) {\n    var dir = delta < 0 ? -1 : 1;\n    delta = Math.abs(delta);\n    var moveForEachLabel = Math.ceil(delta / (len - 1));\n\n    for (var i = 0; i < len - 1; i++) {\n      if (dir > 0) {\n        shiftList(moveForEachLabel, 0, i + 1);\n      } else {\n        shiftList(-moveForEachLabel, len - i - 1, len);\n      }\n\n      delta -= moveForEachLabel;\n\n      if (delta <= 0) {\n        return;\n      }\n    }\n  }\n\n  return adjusted;\n}\n\nexport function shiftLayoutOnX(list, leftBound, rightBound, balanceShift) {\n  return shiftLayout(list, 'x', 'width', leftBound, rightBound, balanceShift);\n}\nexport function shiftLayoutOnY(list, topBound, bottomBound, balanceShift) {\n  return shiftLayout(list, 'y', 'height', topBound, bottomBound, balanceShift);\n}\nexport function hideOverlap(labelList) {\n  var displayedLabels = [];\n  labelList.sort(function (a, b) {\n    return b.priority - a.priority;\n  });\n  var globalRect = new BoundingRect(0, 0, 0, 0);\n\n  function hideEl(el) {\n    if (!el.ignore) {\n      var emphasisState = el.ensureState('emphasis');\n\n      if (emphasisState.ignore == null) {\n        emphasisState.ignore = false;\n      }\n    }\n\n    el.ignore = true;\n  }\n\n  for (var i = 0; i < labelList.length; i++) {\n    var labelItem = labelList[i];\n    var isAxisAligned = labelItem.axisAligned;\n    var localRect = labelItem.localRect;\n    var transform = labelItem.transform;\n    var label = labelItem.label;\n    var labelLine = labelItem.labelLine;\n    globalRect.copy(labelItem.rect);\n    globalRect.width -= 0.1;\n    globalRect.height -= 0.1;\n    globalRect.x += 0.05;\n    globalRect.y += 0.05;\n    var obb = labelItem.obb;\n    var overlapped = false;\n\n    for (var j = 0; j < displayedLabels.length; j++) {\n      var existsTextCfg = displayedLabels[j];\n\n      if (!globalRect.intersect(existsTextCfg.rect)) {\n        continue;\n      }\n\n      if (isAxisAligned && existsTextCfg.axisAligned) {\n        overlapped = true;\n        break;\n      }\n\n      if (!existsTextCfg.obb) {\n        existsTextCfg.obb = new OrientedBoundingRect(existsTextCfg.localRect, existsTextCfg.transform);\n      }\n\n      if (!obb) {\n        obb = new OrientedBoundingRect(localRect, transform);\n      }\n\n      if (obb.intersect(existsTextCfg.obb)) {\n        overlapped = true;\n        break;\n      }\n    }\n\n    if (overlapped) {\n      hideEl(label);\n      labelLine && hideEl(labelLine);\n    } else {\n      label.attr('ignore', labelItem.defaultAttr.ignore);\n      labelLine && labelLine.attr('ignore', labelItem.defaultAttr.labelGuideIgnore);\n      displayedLabels.push(labelItem);\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { BoundingRect, updateProps, initProps, isElementRemoved } from '../util/graphic';\nimport { getECData } from '../util/innerStore';\nimport { parsePercent } from '../util/number';\nimport Transformable from 'zrender/lib/core/Transformable';\nimport { updateLabelLinePoints, setLabelLineStyle, getLabelLineStatesModels } from './labelGuideHelper';\nimport { makeInner } from '../util/model';\nimport { retrieve2, each, keys, isFunction, filter, indexOf } from 'zrender/lib/core/util';\nimport { prepareLayoutList, hideOverlap, shiftLayoutOnX, shiftLayoutOnY } from './labelLayoutHelper';\nimport { labelInner, animateLabelValue } from './labelStyle';\n\nfunction cloneArr(points) {\n  if (points) {\n    var newPoints = [];\n\n    for (var i = 0; i < points.length; i++) {\n      newPoints.push(points[i].slice());\n    }\n\n    return newPoints;\n  }\n}\n\nfunction prepareLayoutCallbackParams(labelItem, hostEl) {\n  var label = labelItem.label;\n  var labelLine = hostEl && hostEl.getTextGuideLine();\n  return {\n    dataIndex: labelItem.dataIndex,\n    dataType: labelItem.dataType,\n    seriesIndex: labelItem.seriesModel.seriesIndex,\n    text: labelItem.label.style.text,\n    rect: labelItem.hostRect,\n    labelRect: labelItem.rect,\n    align: label.style.align,\n    verticalAlign: label.style.verticalAlign,\n    labelLinePoints: cloneArr(labelLine && labelLine.shape.points)\n  };\n}\n\nvar LABEL_OPTION_TO_STYLE_KEYS = ['align', 'verticalAlign', 'width', 'height', 'fontSize'];\nvar dummyTransformable = new Transformable();\nvar labelLayoutInnerStore = makeInner();\nvar labelLineAnimationStore = makeInner();\n\nfunction extendWithKeys(target, source, keys) {\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n\n    if (source[key] != null) {\n      target[key] = source[key];\n    }\n  }\n}\n\nvar LABEL_LAYOUT_PROPS = ['x', 'y', 'rotation'];\n\nvar LabelManager = function () {\n  function LabelManager() {\n    this._labelList = [];\n    this._chartViewList = [];\n  }\n\n  LabelManager.prototype.clearLabels = function () {\n    this._labelList = [];\n    this._chartViewList = [];\n  };\n\n  LabelManager.prototype._addLabel = function (dataIndex, dataType, seriesModel, label, layoutOption) {\n    var labelStyle = label.style;\n    var hostEl = label.__hostTarget;\n    var textConfig = hostEl.textConfig || {};\n    var labelTransform = label.getComputedTransform();\n    var labelRect = label.getBoundingRect().plain();\n    BoundingRect.applyTransform(labelRect, labelRect, labelTransform);\n\n    if (labelTransform) {\n      dummyTransformable.setLocalTransform(labelTransform);\n    } else {\n      dummyTransformable.x = dummyTransformable.y = dummyTransformable.rotation = dummyTransformable.originX = dummyTransformable.originY = 0;\n      dummyTransformable.scaleX = dummyTransformable.scaleY = 1;\n    }\n\n    var host = label.__hostTarget;\n    var hostRect;\n\n    if (host) {\n      hostRect = host.getBoundingRect().plain();\n      var transform = host.getComputedTransform();\n      BoundingRect.applyTransform(hostRect, hostRect, transform);\n    }\n\n    var labelGuide = hostRect && host.getTextGuideLine();\n\n    this._labelList.push({\n      label: label,\n      labelLine: labelGuide,\n      seriesModel: seriesModel,\n      dataIndex: dataIndex,\n      dataType: dataType,\n      layoutOption: layoutOption,\n      computedLayoutOption: null,\n      rect: labelRect,\n      hostRect: hostRect,\n      priority: hostRect ? hostRect.width * hostRect.height : 0,\n      defaultAttr: {\n        ignore: label.ignore,\n        labelGuideIgnore: labelGuide && labelGuide.ignore,\n        x: dummyTransformable.x,\n        y: dummyTransformable.y,\n        rotation: dummyTransformable.rotation,\n        style: {\n          x: labelStyle.x,\n          y: labelStyle.y,\n          align: labelStyle.align,\n          verticalAlign: labelStyle.verticalAlign,\n          width: labelStyle.width,\n          height: labelStyle.height,\n          fontSize: labelStyle.fontSize\n        },\n        cursor: label.cursor,\n        attachedPos: textConfig.position,\n        attachedRot: textConfig.rotation\n      }\n    });\n  };\n\n  LabelManager.prototype.addLabelsOfSeries = function (chartView) {\n    var _this = this;\n\n    this._chartViewList.push(chartView);\n\n    var seriesModel = chartView.__model;\n    var layoutOption = seriesModel.get('labelLayout');\n\n    if (!(isFunction(layoutOption) || keys(layoutOption).length)) {\n      return;\n    }\n\n    chartView.group.traverse(function (child) {\n      if (child.ignore) {\n        return true;\n      }\n\n      var textEl = child.getTextContent();\n      var ecData = getECData(child);\n\n      if (textEl && !textEl.disableLabelLayout) {\n        _this._addLabel(ecData.dataIndex, ecData.dataType, seriesModel, textEl, layoutOption);\n      }\n    });\n  };\n\n  LabelManager.prototype.updateLayoutConfig = function (api) {\n    var width = api.getWidth();\n    var height = api.getHeight();\n\n    function createDragHandler(el, labelLineModel) {\n      return function () {\n        updateLabelLinePoints(el, labelLineModel);\n      };\n    }\n\n    for (var i = 0; i < this._labelList.length; i++) {\n      var labelItem = this._labelList[i];\n      var label = labelItem.label;\n      var hostEl = label.__hostTarget;\n      var defaultLabelAttr = labelItem.defaultAttr;\n      var layoutOption = void 0;\n\n      if (typeof labelItem.layoutOption === 'function') {\n        layoutOption = labelItem.layoutOption(prepareLayoutCallbackParams(labelItem, hostEl));\n      } else {\n        layoutOption = labelItem.layoutOption;\n      }\n\n      layoutOption = layoutOption || {};\n      labelItem.computedLayoutOption = layoutOption;\n      var degreeToRadian = Math.PI / 180;\n\n      if (hostEl) {\n        hostEl.setTextConfig({\n          local: false,\n          position: layoutOption.x != null || layoutOption.y != null ? null : defaultLabelAttr.attachedPos,\n          rotation: layoutOption.rotate != null ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.attachedRot,\n          offset: [layoutOption.dx || 0, layoutOption.dy || 0]\n        });\n      }\n\n      var needsUpdateLabelLine = false;\n\n      if (layoutOption.x != null) {\n        label.x = parsePercent(layoutOption.x, width);\n        label.setStyle('x', 0);\n        needsUpdateLabelLine = true;\n      } else {\n        label.x = defaultLabelAttr.x;\n        label.setStyle('x', defaultLabelAttr.style.x);\n      }\n\n      if (layoutOption.y != null) {\n        label.y = parsePercent(layoutOption.y, height);\n        label.setStyle('y', 0);\n        needsUpdateLabelLine = true;\n      } else {\n        label.y = defaultLabelAttr.y;\n        label.setStyle('y', defaultLabelAttr.style.y);\n      }\n\n      if (layoutOption.labelLinePoints) {\n        var guideLine = hostEl.getTextGuideLine();\n\n        if (guideLine) {\n          guideLine.setShape({\n            points: layoutOption.labelLinePoints\n          });\n          needsUpdateLabelLine = false;\n        }\n      }\n\n      var labelLayoutStore = labelLayoutInnerStore(label);\n      labelLayoutStore.needsUpdateLabelLine = needsUpdateLabelLine;\n      label.rotation = layoutOption.rotate != null ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.rotation;\n\n      for (var k = 0; k < LABEL_OPTION_TO_STYLE_KEYS.length; k++) {\n        var key = LABEL_OPTION_TO_STYLE_KEYS[k];\n        label.setStyle(key, layoutOption[key] != null ? layoutOption[key] : defaultLabelAttr.style[key]);\n      }\n\n      if (layoutOption.draggable) {\n        label.draggable = true;\n        label.cursor = 'move';\n\n        if (hostEl) {\n          var hostModel = labelItem.seriesModel;\n\n          if (labelItem.dataIndex != null) {\n            var data = labelItem.seriesModel.getData(labelItem.dataType);\n            hostModel = data.getItemModel(labelItem.dataIndex);\n          }\n\n          label.on('drag', createDragHandler(hostEl, hostModel.getModel('labelLine')));\n        }\n      } else {\n        label.off('drag');\n        label.cursor = defaultLabelAttr.cursor;\n      }\n    }\n  };\n\n  LabelManager.prototype.layout = function (api) {\n    var width = api.getWidth();\n    var height = api.getHeight();\n    var labelList = prepareLayoutList(this._labelList);\n    var labelsNeedsAdjustOnX = filter(labelList, function (item) {\n      return item.layoutOption.moveOverlap === 'shiftX';\n    });\n    var labelsNeedsAdjustOnY = filter(labelList, function (item) {\n      return item.layoutOption.moveOverlap === 'shiftY';\n    });\n    shiftLayoutOnX(labelsNeedsAdjustOnX, 0, width);\n    shiftLayoutOnY(labelsNeedsAdjustOnY, 0, height);\n    var labelsNeedsHideOverlap = filter(labelList, function (item) {\n      return item.layoutOption.hideOverlap;\n    });\n    hideOverlap(labelsNeedsHideOverlap);\n  };\n\n  LabelManager.prototype.processLabelsOverall = function () {\n    var _this = this;\n\n    each(this._chartViewList, function (chartView) {\n      var seriesModel = chartView.__model;\n      var ignoreLabelLineUpdate = chartView.ignoreLabelLineUpdate;\n      var animationEnabled = seriesModel.isAnimationEnabled();\n      chartView.group.traverse(function (child) {\n        if (child.ignore) {\n          return true;\n        }\n\n        var needsUpdateLabelLine = !ignoreLabelLineUpdate;\n        var label = child.getTextContent();\n\n        if (!needsUpdateLabelLine && label) {\n          needsUpdateLabelLine = labelLayoutInnerStore(label).needsUpdateLabelLine;\n        }\n\n        if (needsUpdateLabelLine) {\n          _this._updateLabelLine(child, seriesModel);\n        }\n\n        if (animationEnabled) {\n          _this._animateLabels(child, seriesModel);\n        }\n      });\n    });\n  };\n\n  LabelManager.prototype._updateLabelLine = function (el, seriesModel) {\n    var textEl = el.getTextContent();\n    var ecData = getECData(el);\n    var dataIndex = ecData.dataIndex;\n\n    if (textEl && dataIndex != null) {\n      var data = seriesModel.getData(ecData.dataType);\n      var itemModel = data.getItemModel(dataIndex);\n      var defaultStyle = {};\n      var visualStyle = data.getItemVisual(dataIndex, 'style');\n      var visualType = data.getVisual('drawType');\n      defaultStyle.stroke = visualStyle[visualType];\n      var labelLineModel = itemModel.getModel('labelLine');\n      setLabelLineStyle(el, getLabelLineStatesModels(itemModel), defaultStyle);\n      updateLabelLinePoints(el, labelLineModel);\n    }\n  };\n\n  LabelManager.prototype._animateLabels = function (el, seriesModel) {\n    var textEl = el.getTextContent();\n    var guideLine = el.getTextGuideLine();\n\n    if (textEl && !textEl.ignore && !textEl.invisible && !el.disableLabelAnimation && !isElementRemoved(el)) {\n      var layoutStore = labelLayoutInnerStore(textEl);\n      var oldLayout = layoutStore.oldLayout;\n      var ecData = getECData(el);\n      var dataIndex = ecData.dataIndex;\n      var newProps = {\n        x: textEl.x,\n        y: textEl.y,\n        rotation: textEl.rotation\n      };\n      var data = seriesModel.getData(ecData.dataType);\n\n      if (!oldLayout) {\n        textEl.attr(newProps);\n\n        if (!labelInner(textEl).valueAnimation) {\n          var oldOpacity = retrieve2(textEl.style.opacity, 1);\n          textEl.style.opacity = 0;\n          initProps(textEl, {\n            style: {\n              opacity: oldOpacity\n            }\n          }, seriesModel, dataIndex);\n        }\n      } else {\n        textEl.attr(oldLayout);\n        var prevStates = el.prevStates;\n\n        if (prevStates) {\n          if (indexOf(prevStates, 'select') >= 0) {\n            textEl.attr(layoutStore.oldLayoutSelect);\n          }\n\n          if (indexOf(prevStates, 'emphasis') >= 0) {\n            textEl.attr(layoutStore.oldLayoutEmphasis);\n          }\n        }\n\n        updateProps(textEl, newProps, seriesModel, dataIndex);\n      }\n\n      layoutStore.oldLayout = newProps;\n\n      if (textEl.states.select) {\n        var layoutSelect = layoutStore.oldLayoutSelect = {};\n        extendWithKeys(layoutSelect, newProps, LABEL_LAYOUT_PROPS);\n        extendWithKeys(layoutSelect, textEl.states.select, LABEL_LAYOUT_PROPS);\n      }\n\n      if (textEl.states.emphasis) {\n        var layoutEmphasis = layoutStore.oldLayoutEmphasis = {};\n        extendWithKeys(layoutEmphasis, newProps, LABEL_LAYOUT_PROPS);\n        extendWithKeys(layoutEmphasis, textEl.states.emphasis, LABEL_LAYOUT_PROPS);\n      }\n\n      animateLabelValue(textEl, dataIndex, data, seriesModel, seriesModel);\n    }\n\n    if (guideLine && !guideLine.ignore && !guideLine.invisible) {\n      var layoutStore = labelLineAnimationStore(guideLine);\n      var oldLayout = layoutStore.oldLayout;\n      var newLayout = {\n        points: guideLine.shape.points\n      };\n\n      if (!oldLayout) {\n        guideLine.setShape(newLayout);\n        guideLine.style.strokePercent = 0;\n        initProps(guideLine, {\n          style: {\n            strokePercent: 1\n          }\n        }, seriesModel);\n      } else {\n        guideLine.attr({\n          shape: oldLayout\n        });\n        updateProps(guideLine, {\n          shape: newLayout\n        }, seriesModel);\n      }\n\n      layoutStore.oldLayout = newLayout;\n    }\n  };\n\n  return LabelManager;\n}();\n\nexport default LabelManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { extend, each, isArray } from 'zrender/lib/core/util';\nimport { deprecateReplaceLog, deprecateLog } from '../util/log';\nimport { queryDataIndex } from '../util/model';\nexport function createLegacyDataSelectAction(seriesType, ecRegisterAction) {\n  function getSeriesIndices(ecModel, payload) {\n    var seriesIndices = [];\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: seriesType,\n      query: payload\n    }, function (seriesModel) {\n      seriesIndices.push(seriesModel.seriesIndex);\n    });\n    return seriesIndices;\n  }\n\n  each([[seriesType + 'ToggleSelect', 'toggleSelect'], [seriesType + 'Select', 'select'], [seriesType + 'UnSelect', 'unselect']], function (eventsMap) {\n    ecRegisterAction(eventsMap[0], function (payload, ecModel, api) {\n      payload = extend({}, payload);\n\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateReplaceLog(payload.type, eventsMap[1]);\n      }\n\n      api.dispatchAction(extend(payload, {\n        type: eventsMap[1],\n        seriesIndex: getSeriesIndices(ecModel, payload)\n      }));\n    });\n  });\n}\n\nfunction handleSeriesLegacySelectEvents(type, eventPostfix, ecIns, ecModel, payload) {\n  var legacyEventName = type + eventPostfix;\n\n  if (!ecIns.isSilent(legacyEventName)) {\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateLog(\"event \" + legacyEventName + \" is deprecated.\");\n    }\n\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'pie'\n    }, function (seriesModel) {\n      var seriesIndex = seriesModel.seriesIndex;\n      var selected = payload.selected;\n\n      for (var i = 0; i < selected.length; i++) {\n        if (selected[i].seriesIndex === seriesIndex) {\n          var data = seriesModel.getData();\n          var dataIndex = queryDataIndex(data, payload.fromActionPayload);\n          ecIns.trigger(legacyEventName, {\n            type: legacyEventName,\n            seriesId: seriesModel.id,\n            name: isArray(dataIndex) ? data.getName(dataIndex[0]) : data.getName(dataIndex),\n            selected: extend({}, seriesModel.option.selectedMap)\n          });\n        }\n      }\n    });\n  }\n}\n\nexport function handleLegacySelectEvents(messageCenter, ecIns, api) {\n  messageCenter.on('selectchanged', function (params) {\n    var ecModel = api.getModel();\n\n    if (params.isFromClick) {\n      handleSeriesLegacySelectEvents('map', 'selectchanged', ecIns, ecModel, params);\n      handleSeriesLegacySelectEvents('pie', 'selectchanged', ecIns, ecModel, params);\n    } else if (params.fromAction === 'select') {\n      handleSeriesLegacySelectEvents('map', 'selected', ecIns, ecModel, params);\n      handleSeriesLegacySelectEvents('pie', 'selected', ecIns, ecModel, params);\n    } else if (params.fromAction === 'unselect') {\n      handleSeriesLegacySelectEvents('map', 'unselected', ecIns, ecModel, params);\n      handleSeriesLegacySelectEvents('pie', 'unselected', ecIns, ecModel, params);\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function findEventDispatcher(target, det, returnFirstMatch) {\n  var found;\n\n  while (target) {\n    if (det(target)) {\n      found = target;\n\n      if (returnFirstMatch) {\n        break;\n      }\n    }\n\n    target = target.__hostTarget || target.parent;\n  }\n\n  return found;\n}","var wmUniqueIndex = Math.round(Math.random() * 9);\nvar WeakMap = (function () {\n    function WeakMap() {\n        this._id = '__ec_inner_' + wmUniqueIndex++;\n    }\n    WeakMap.prototype.get = function (key) {\n        return this._guard(key)[this._id];\n    };\n    WeakMap.prototype.set = function (key, value) {\n        var target = this._guard(key);\n        if (typeof Object.defineProperty === 'function') {\n            Object.defineProperty(target, this._id, {\n                value: value,\n                enumerable: false,\n                configurable: true\n            });\n        }\n        else {\n            target[this._id] = value;\n        }\n        return this;\n    };\n    WeakMap.prototype[\"delete\"] = function (key) {\n        if (this.has(key)) {\n            delete this._guard(key)[this._id];\n            return true;\n        }\n        return false;\n    };\n    WeakMap.prototype.has = function (key) {\n        return !!this._guard(key)[this._id];\n    };\n    WeakMap.prototype._guard = function (key) {\n        if (key !== Object(key)) {\n            throw TypeError('Value of WeakMap is not a non-null object.');\n        }\n        return key;\n    };\n    return WeakMap;\n}());\nexport default WeakMap;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from './graphic';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { calculateTextPosition } from 'zrender/lib/contain/text';\nvar Triangle = graphic.Path.extend({\n  type: 'triangle',\n  shape: {\n    cx: 0,\n    cy: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (path, shape) {\n    var cx = shape.cx;\n    var cy = shape.cy;\n    var width = shape.width / 2;\n    var height = shape.height / 2;\n    path.moveTo(cx, cy - height);\n    path.lineTo(cx + width, cy + height);\n    path.lineTo(cx - width, cy + height);\n    path.closePath();\n  }\n});\nvar Diamond = graphic.Path.extend({\n  type: 'diamond',\n  shape: {\n    cx: 0,\n    cy: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (path, shape) {\n    var cx = shape.cx;\n    var cy = shape.cy;\n    var width = shape.width / 2;\n    var height = shape.height / 2;\n    path.moveTo(cx, cy - height);\n    path.lineTo(cx + width, cy);\n    path.lineTo(cx, cy + height);\n    path.lineTo(cx - width, cy);\n    path.closePath();\n  }\n});\nvar Pin = graphic.Path.extend({\n  type: 'pin',\n  shape: {\n    x: 0,\n    y: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (path, shape) {\n    var x = shape.x;\n    var y = shape.y;\n    var w = shape.width / 5 * 3;\n    var h = Math.max(w, shape.height);\n    var r = w / 2;\n    var dy = r * r / (h - r);\n    var cy = y - h + r + dy;\n    var angle = Math.asin(dy / r);\n    var dx = Math.cos(angle) * r;\n    var tanX = Math.sin(angle);\n    var tanY = Math.cos(angle);\n    var cpLen = r * 0.6;\n    var cpLen2 = r * 0.7;\n    path.moveTo(x - dx, cy + dy);\n    path.arc(x, cy, r, Math.PI - angle, Math.PI * 2 + angle);\n    path.bezierCurveTo(x + dx - tanX * cpLen, cy + dy + tanY * cpLen, x, y - cpLen2, x, y);\n    path.bezierCurveTo(x, y - cpLen2, x - dx + tanX * cpLen, cy + dy + tanY * cpLen, x - dx, cy + dy);\n    path.closePath();\n  }\n});\nvar Arrow = graphic.Path.extend({\n  type: 'arrow',\n  shape: {\n    x: 0,\n    y: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (ctx, shape) {\n    var height = shape.height;\n    var width = shape.width;\n    var x = shape.x;\n    var y = shape.y;\n    var dx = width / 3 * 2;\n    ctx.moveTo(x, y);\n    ctx.lineTo(x + dx, y + height);\n    ctx.lineTo(x, y + height / 4 * 3);\n    ctx.lineTo(x - dx, y + height);\n    ctx.lineTo(x, y);\n    ctx.closePath();\n  }\n});\nvar symbolCtors = {\n  line: graphic.Rect,\n  rect: graphic.Rect,\n  roundRect: graphic.Rect,\n  square: graphic.Rect,\n  circle: graphic.Circle,\n  diamond: Diamond,\n  pin: Pin,\n  arrow: Arrow,\n  triangle: Triangle\n};\nvar symbolShapeMakers = {\n  line: function (x, y, w, h, shape) {\n    var thickness = 2;\n    shape.x = x;\n    shape.y = y + h / 2 - thickness / 2;\n    shape.width = w;\n    shape.height = thickness;\n  },\n  rect: function (x, y, w, h, shape) {\n    shape.x = x;\n    shape.y = y;\n    shape.width = w;\n    shape.height = h;\n  },\n  roundRect: function (x, y, w, h, shape) {\n    shape.x = x;\n    shape.y = y;\n    shape.width = w;\n    shape.height = h;\n    shape.r = Math.min(w, h) / 4;\n  },\n  square: function (x, y, w, h, shape) {\n    var size = Math.min(w, h);\n    shape.x = x;\n    shape.y = y;\n    shape.width = size;\n    shape.height = size;\n  },\n  circle: function (x, y, w, h, shape) {\n    shape.cx = x + w / 2;\n    shape.cy = y + h / 2;\n    shape.r = Math.min(w, h) / 2;\n  },\n  diamond: function (x, y, w, h, shape) {\n    shape.cx = x + w / 2;\n    shape.cy = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  },\n  pin: function (x, y, w, h, shape) {\n    shape.x = x + w / 2;\n    shape.y = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  },\n  arrow: function (x, y, w, h, shape) {\n    shape.x = x + w / 2;\n    shape.y = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  },\n  triangle: function (x, y, w, h, shape) {\n    shape.cx = x + w / 2;\n    shape.cy = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  }\n};\nexport var symbolBuildProxies = {};\nzrUtil.each(symbolCtors, function (Ctor, name) {\n  symbolBuildProxies[name] = new Ctor();\n});\nvar SymbolClz = graphic.Path.extend({\n  type: 'symbol',\n  shape: {\n    symbolType: '',\n    x: 0,\n    y: 0,\n    width: 0,\n    height: 0\n  },\n  calculateTextPosition: function (out, config, rect) {\n    var res = calculateTextPosition(out, config, rect);\n    var shape = this.shape;\n\n    if (shape && shape.symbolType === 'pin' && config.position === 'inside') {\n      res.y = rect.y + rect.height * 0.4;\n    }\n\n    return res;\n  },\n  buildPath: function (ctx, shape, inBundle) {\n    var symbolType = shape.symbolType;\n\n    if (symbolType !== 'none') {\n      var proxySymbol = symbolBuildProxies[symbolType];\n\n      if (!proxySymbol) {\n        symbolType = 'rect';\n        proxySymbol = symbolBuildProxies[symbolType];\n      }\n\n      symbolShapeMakers[symbolType](shape.x, shape.y, shape.width, shape.height, proxySymbol.shape);\n      proxySymbol.buildPath(ctx, proxySymbol.shape, inBundle);\n    }\n  }\n});\n\nfunction symbolPathSetColor(color, innerColor) {\n  if (this.type !== 'image') {\n    var symbolStyle = this.style;\n\n    if (this.__isEmptyBrush) {\n      symbolStyle.stroke = color;\n      symbolStyle.fill = innerColor || '#fff';\n      symbolStyle.lineWidth = 2;\n    } else {\n      symbolStyle.fill = color;\n    }\n\n    this.markRedraw();\n  }\n}\n\nexport function createSymbol(symbolType, x, y, w, h, color, keepAspect) {\n  var isEmpty = symbolType.indexOf('empty') === 0;\n\n  if (isEmpty) {\n    symbolType = symbolType.substr(5, 1).toLowerCase() + symbolType.substr(6);\n  }\n\n  var symbolPath;\n\n  if (symbolType.indexOf('image://') === 0) {\n    symbolPath = graphic.makeImage(symbolType.slice(8), new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\n  } else if (symbolType.indexOf('path://') === 0) {\n    symbolPath = graphic.makePath(symbolType.slice(7), {}, new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\n  } else {\n    symbolPath = new SymbolClz({\n      shape: {\n        symbolType: symbolType,\n        x: x,\n        y: y,\n        width: w,\n        height: h\n      }\n    });\n  }\n\n  symbolPath.__isEmptyBrush = isEmpty;\n  symbolPath.setColor = symbolPathSetColor;\n\n  if (color) {\n    symbolPath.setColor(color);\n  }\n\n  return symbolPath;\n}","export function createLinearGradient(ctx, obj, rect) {\n    var x = obj.x == null ? 0 : obj.x;\n    var x2 = obj.x2 == null ? 1 : obj.x2;\n    var y = obj.y == null ? 0 : obj.y;\n    var y2 = obj.y2 == null ? 0 : obj.y2;\n    if (!obj.global) {\n        x = x * rect.width + rect.x;\n        x2 = x2 * rect.width + rect.x;\n        y = y * rect.height + rect.y;\n        y2 = y2 * rect.height + rect.y;\n    }\n    x = isNaN(x) ? 0 : x;\n    x2 = isNaN(x2) ? 1 : x2;\n    y = isNaN(y) ? 0 : y;\n    y2 = isNaN(y2) ? 0 : y2;\n    var canvasGradient = ctx.createLinearGradient(x, y, x2, y2);\n    return canvasGradient;\n}\nexport function createRadialGradient(ctx, obj, rect) {\n    var width = rect.width;\n    var height = rect.height;\n    var min = Math.min(width, height);\n    var x = obj.x == null ? 0.5 : obj.x;\n    var y = obj.y == null ? 0.5 : obj.y;\n    var r = obj.r == null ? 0.5 : obj.r;\n    if (!obj.global) {\n        x = x * width + rect.x;\n        y = y * height + rect.y;\n        r = r * min;\n    }\n    var canvasGradient = ctx.createRadialGradient(x, y, 0, x, y, r);\n    return canvasGradient;\n}\nexport function getCanvasGradient(ctx, obj, rect) {\n    var canvasGradient = obj.type === 'radial'\n        ? createRadialGradient(ctx, obj, rect)\n        : createLinearGradient(ctx, obj, rect);\n    var colorStops = obj.colorStops;\n    for (var i = 0; i < colorStops.length; i++) {\n        canvasGradient.addColorStop(colorStops[i].offset, colorStops[i].color);\n    }\n    return canvasGradient;\n}\nexport function isClipPathChanged(clipPaths, prevClipPaths) {\n    if (clipPaths === prevClipPaths || (!clipPaths && !prevClipPaths)) {\n        return false;\n    }\n    if (!clipPaths || !prevClipPaths || (clipPaths.length !== prevClipPaths.length)) {\n        return true;\n    }\n    for (var i = 0; i < clipPaths.length; i++) {\n        if (clipPaths[i] !== prevClipPaths[i]) {\n            return true;\n        }\n    }\n    return false;\n}\n","import { isArray, isNumber } from '../../core/util';\nexport function normalizeLineDash(lineType, lineWidth) {\n    if (!lineType || lineType === 'solid' || !(lineWidth > 0)) {\n        return null;\n    }\n    lineWidth = lineWidth || 1;\n    return lineType === 'dashed'\n        ? [4 * lineWidth, 2 * lineWidth]\n        : lineType === 'dotted'\n            ? [lineWidth]\n            : isNumber(lineType)\n                ? [lineType] : isArray(lineType) ? lineType : null;\n}\n","import { DEFAULT_COMMON_STYLE } from '../graphic/Displayable';\nimport PathProxy from '../core/PathProxy';\nimport { createOrUpdateImage, isImageReady } from '../graphic/helper/image';\nimport { getCanvasGradient, isClipPathChanged } from './helper';\nimport Path from '../graphic/Path';\nimport ZRImage from '../graphic/Image';\nimport TSpan from '../graphic/TSpan';\nimport { DEFAULT_FONT } from '../contain/text';\nimport { map } from '../core/util';\nimport { normalizeLineDash } from '../graphic/helper/dashStyle';\nimport Element from '../Element';\nimport IncrementalDisplayable from '../graphic/IncrementalDisplayable';\nvar pathProxyForDraw = new PathProxy(true);\nfunction styleHasStroke(style) {\n    var stroke = style.stroke;\n    return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\n}\nfunction styleHasFill(style) {\n    var fill = style.fill;\n    return fill != null && fill !== 'none';\n}\nfunction doFillPath(ctx, style) {\n    if (style.fillOpacity != null && style.fillOpacity !== 1) {\n        var originalGlobalAlpha = ctx.globalAlpha;\n        ctx.globalAlpha = style.fillOpacity * style.opacity;\n        ctx.fill();\n        ctx.globalAlpha = originalGlobalAlpha;\n    }\n    else {\n        ctx.fill();\n    }\n}\nfunction doStrokePath(ctx, style) {\n    if (style.strokeOpacity != null && style.strokeOpacity !== 1) {\n        var originalGlobalAlpha = ctx.globalAlpha;\n        ctx.globalAlpha = style.strokeOpacity * style.opacity;\n        ctx.stroke();\n        ctx.globalAlpha = originalGlobalAlpha;\n    }\n    else {\n        ctx.stroke();\n    }\n}\nexport function createCanvasPattern(ctx, pattern, el) {\n    var image = createOrUpdateImage(pattern.image, pattern.__image, el);\n    if (isImageReady(image)) {\n        var canvasPattern = ctx.createPattern(image, pattern.repeat || 'repeat');\n        if (typeof DOMMatrix === 'function') {\n            var matrix = new DOMMatrix();\n            matrix.rotateSelf(0, 0, (pattern.rotation || 0) / Math.PI * 180);\n            matrix.scaleSelf((pattern.scaleX || 1), (pattern.scaleY || 1));\n            matrix.translateSelf((pattern.x || 0), (pattern.y || 0));\n            canvasPattern.setTransform(matrix);\n        }\n        return canvasPattern;\n    }\n}\nfunction brushPath(ctx, el, style, inBatch) {\n    var hasStroke = styleHasStroke(style);\n    var hasFill = styleHasFill(style);\n    var strokePercent = style.strokePercent;\n    var strokePart = strokePercent < 1;\n    var firstDraw = !el.path;\n    if ((!el.silent || strokePart) && firstDraw) {\n        el.createPathProxy();\n    }\n    var path = el.path || pathProxyForDraw;\n    if (!inBatch) {\n        var fill = style.fill;\n        var stroke = style.stroke;\n        var hasFillGradient = hasFill && !!fill.colorStops;\n        var hasStrokeGradient = hasStroke && !!stroke.colorStops;\n        var hasFillPattern = hasFill && !!fill.image;\n        var hasStrokePattern = hasStroke && !!stroke.image;\n        var fillGradient = void 0;\n        var strokeGradient = void 0;\n        var fillPattern = void 0;\n        var strokePattern = void 0;\n        var rect = void 0;\n        if (hasFillGradient || hasStrokeGradient) {\n            rect = el.getBoundingRect();\n        }\n        if (hasFillGradient) {\n            fillGradient = el.__dirty\n                ? getCanvasGradient(ctx, fill, rect)\n                : el.__canvasFillGradient;\n            el.__canvasFillGradient = fillGradient;\n        }\n        if (hasStrokeGradient) {\n            strokeGradient = el.__dirty\n                ? getCanvasGradient(ctx, stroke, rect)\n                : el.__canvasStrokeGradient;\n            el.__canvasStrokeGradient = strokeGradient;\n        }\n        if (hasFillPattern) {\n            fillPattern = (el.__dirty || !el.__canvasFillPattern)\n                ? createCanvasPattern(ctx, fill, el)\n                : el.__canvasFillPattern;\n            el.__canvasFillPattern = fillPattern;\n        }\n        if (hasStrokePattern) {\n            strokePattern = (el.__dirty || !el.__canvasStrokePattern)\n                ? createCanvasPattern(ctx, stroke, el)\n                : el.__canvasStrokePattern;\n            el.__canvasStrokePattern = fillPattern;\n        }\n        if (hasFillGradient) {\n            ctx.fillStyle = fillGradient;\n        }\n        else if (hasFillPattern) {\n            if (fillPattern) {\n                ctx.fillStyle = fillPattern;\n            }\n            else {\n                hasFill = false;\n            }\n        }\n        if (hasStrokeGradient) {\n            ctx.strokeStyle = strokeGradient;\n        }\n        else if (hasStrokePattern) {\n            if (strokePattern) {\n                ctx.strokeStyle = strokePattern;\n            }\n            else {\n                hasStroke = false;\n            }\n        }\n    }\n    var lineDash = style.lineDash && style.lineWidth > 0 && normalizeLineDash(style.lineDash, style.lineWidth);\n    var lineDashOffset = style.lineDashOffset;\n    var ctxLineDash = !!ctx.setLineDash;\n    var scale = el.getGlobalScale();\n    path.setScale(scale[0], scale[1], el.segmentIgnoreThreshold);\n    if (lineDash) {\n        var lineScale_1 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\n        if (lineScale_1 && lineScale_1 !== 1) {\n            lineDash = map(lineDash, function (rawVal) {\n                return rawVal / lineScale_1;\n            });\n            lineDashOffset /= lineScale_1;\n        }\n    }\n    var needsRebuild = true;\n    if (firstDraw || (el.__dirty & Path.SHAPE_CHANGED_BIT)\n        || (lineDash && !ctxLineDash && hasStroke)) {\n        path.setDPR(ctx.dpr);\n        if (strokePart) {\n            path.setContext(null);\n        }\n        else {\n            path.setContext(ctx);\n            needsRebuild = false;\n        }\n        path.reset();\n        if (lineDash && !ctxLineDash) {\n            path.setLineDash(lineDash);\n            path.setLineDashOffset(lineDashOffset);\n        }\n        el.buildPath(path, el.shape, inBatch);\n        path.toStatic();\n        el.pathUpdated();\n    }\n    if (needsRebuild) {\n        path.rebuildPath(ctx, strokePart ? strokePercent : 1);\n    }\n    if (lineDash && ctxLineDash) {\n        ctx.setLineDash(lineDash);\n        ctx.lineDashOffset = lineDashOffset;\n    }\n    if (!inBatch) {\n        if (style.strokeFirst) {\n            if (hasStroke) {\n                doStrokePath(ctx, style);\n            }\n            if (hasFill) {\n                doFillPath(ctx, style);\n            }\n        }\n        else {\n            if (hasFill) {\n                doFillPath(ctx, style);\n            }\n            if (hasStroke) {\n                doStrokePath(ctx, style);\n            }\n        }\n    }\n    if (lineDash && ctxLineDash) {\n        ctx.setLineDash([]);\n    }\n}\nfunction brushImage(ctx, el, style) {\n    var image = el.__image = createOrUpdateImage(style.image, el.__image, el, el.onload);\n    if (!image || !isImageReady(image)) {\n        return;\n    }\n    var x = style.x || 0;\n    var y = style.y || 0;\n    var width = el.getWidth();\n    var height = el.getHeight();\n    var aspect = image.width / image.height;\n    if (width == null && height != null) {\n        width = height * aspect;\n    }\n    else if (height == null && width != null) {\n        height = width / aspect;\n    }\n    else if (width == null && height == null) {\n        width = image.width;\n        height = image.height;\n    }\n    if (style.sWidth && style.sHeight) {\n        var sx = style.sx || 0;\n        var sy = style.sy || 0;\n        ctx.drawImage(image, sx, sy, style.sWidth, style.sHeight, x, y, width, height);\n    }\n    else if (style.sx && style.sy) {\n        var sx = style.sx;\n        var sy = style.sy;\n        var sWidth = width - sx;\n        var sHeight = height - sy;\n        ctx.drawImage(image, sx, sy, sWidth, sHeight, x, y, width, height);\n    }\n    else {\n        ctx.drawImage(image, x, y, width, height);\n    }\n}\nfunction brushText(ctx, el, style) {\n    var text = style.text;\n    text != null && (text += '');\n    if (text) {\n        ctx.font = style.font || DEFAULT_FONT;\n        ctx.textAlign = style.textAlign;\n        ctx.textBaseline = style.textBaseline;\n        var hasLineDash = void 0;\n        if (ctx.setLineDash) {\n            var lineDash = style.lineDash && style.lineWidth > 0 && normalizeLineDash(style.lineDash, style.lineWidth);\n            var lineDashOffset = style.lineDashOffset;\n            if (lineDash) {\n                var lineScale_2 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\n                if (lineScale_2 && lineScale_2 !== 1) {\n                    lineDash = map(lineDash, function (rawVal) {\n                        return rawVal / lineScale_2;\n                    });\n                    lineDashOffset /= lineScale_2;\n                }\n                ctx.setLineDash(lineDash);\n                ctx.lineDashOffset = lineDashOffset;\n                hasLineDash = true;\n            }\n        }\n        if (style.strokeFirst) {\n            if (styleHasStroke(style)) {\n                ctx.strokeText(text, style.x, style.y);\n            }\n            if (styleHasFill(style)) {\n                ctx.fillText(text, style.x, style.y);\n            }\n        }\n        else {\n            if (styleHasFill(style)) {\n                ctx.fillText(text, style.x, style.y);\n            }\n            if (styleHasStroke(style)) {\n                ctx.strokeText(text, style.x, style.y);\n            }\n        }\n        if (hasLineDash) {\n            ctx.setLineDash([]);\n        }\n    }\n}\nvar SHADOW_NUMBER_PROPS = ['shadowBlur', 'shadowOffsetX', 'shadowOffsetY'];\nvar STROKE_PROPS = [\n    ['lineCap', 'butt'], ['lineJoin', 'miter'], ['miterLimit', 10]\n];\nfunction bindCommonProps(ctx, style, prevStyle, forceSetAll, scope) {\n    var styleChanged = false;\n    if (!forceSetAll) {\n        prevStyle = prevStyle || {};\n        if (style === prevStyle) {\n            return false;\n        }\n    }\n    if (forceSetAll || style.opacity !== prevStyle.opacity) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.globalAlpha = style.opacity == null ? DEFAULT_COMMON_STYLE.opacity : style.opacity;\n    }\n    if (forceSetAll || style.blend !== prevStyle.blend) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.globalCompositeOperation = style.blend || DEFAULT_COMMON_STYLE.blend;\n    }\n    for (var i = 0; i < SHADOW_NUMBER_PROPS.length; i++) {\n        var propName = SHADOW_NUMBER_PROPS[i];\n        if (forceSetAll || style[propName] !== prevStyle[propName]) {\n            if (!styleChanged) {\n                flushPathDrawn(ctx, scope);\n                styleChanged = true;\n            }\n            ctx[propName] = ctx.dpr * (style[propName] || 0);\n        }\n    }\n    if (forceSetAll || style.shadowColor !== prevStyle.shadowColor) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.shadowColor = style.shadowColor || DEFAULT_COMMON_STYLE.shadowColor;\n    }\n    return styleChanged;\n}\nfunction bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetAll, scope) {\n    var style = getStyle(el, scope.inHover);\n    var prevStyle = forceSetAll\n        ? null\n        : (prevEl && getStyle(prevEl, scope.inHover) || {});\n    if (style === prevStyle) {\n        return false;\n    }\n    var styleChanged = bindCommonProps(ctx, style, prevStyle, forceSetAll, scope);\n    if (forceSetAll || style.fill !== prevStyle.fill) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.fillStyle = style.fill;\n    }\n    if (forceSetAll || style.stroke !== prevStyle.stroke) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.strokeStyle = style.stroke;\n    }\n    if (forceSetAll || style.opacity !== prevStyle.opacity) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.globalAlpha = style.opacity == null ? 1 : style.opacity;\n    }\n    if (el.hasStroke()) {\n        var lineWidth = style.lineWidth;\n        var newLineWidth = lineWidth / ((style.strokeNoScale && el && el.getLineScale) ? el.getLineScale() : 1);\n        if (ctx.lineWidth !== newLineWidth) {\n            if (!styleChanged) {\n                flushPathDrawn(ctx, scope);\n                styleChanged = true;\n            }\n            ctx.lineWidth = newLineWidth;\n        }\n    }\n    for (var i = 0; i < STROKE_PROPS.length; i++) {\n        var prop = STROKE_PROPS[i];\n        var propName = prop[0];\n        if (forceSetAll || style[propName] !== prevStyle[propName]) {\n            if (!styleChanged) {\n                flushPathDrawn(ctx, scope);\n                styleChanged = true;\n            }\n            ctx[propName] = style[propName] || prop[1];\n        }\n    }\n    return styleChanged;\n}\nfunction bindImageStyle(ctx, el, prevEl, forceSetAll, scope) {\n    return bindCommonProps(ctx, getStyle(el, scope.inHover), prevEl && getStyle(prevEl, scope.inHover), forceSetAll, scope);\n}\nfunction setContextTransform(ctx, el) {\n    var m = el.transform;\n    var dpr = ctx.dpr || 1;\n    if (m) {\n        ctx.setTransform(dpr * m[0], dpr * m[1], dpr * m[2], dpr * m[3], dpr * m[4], dpr * m[5]);\n    }\n    else {\n        ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n    }\n}\nfunction updateClipStatus(clipPaths, ctx, scope) {\n    var allClipped = false;\n    for (var i = 0; i < clipPaths.length; i++) {\n        var clipPath = clipPaths[i];\n        allClipped = allClipped || clipPath.isZeroArea();\n        setContextTransform(ctx, clipPath);\n        ctx.beginPath();\n        clipPath.buildPath(ctx, clipPath.shape);\n        ctx.clip();\n    }\n    scope.allClipped = allClipped;\n}\nfunction isTransformChanged(m0, m1) {\n    if (m0 && m1) {\n        return m0[0] !== m1[0]\n            || m0[1] !== m1[1]\n            || m0[2] !== m1[2]\n            || m0[3] !== m1[3]\n            || m0[4] !== m1[4]\n            || m0[5] !== m1[5];\n    }\n    else if (!m0 && !m1) {\n        return false;\n    }\n    return true;\n}\nvar DRAW_TYPE_PATH = 1;\nvar DRAW_TYPE_IMAGE = 2;\nvar DRAW_TYPE_TEXT = 3;\nvar DRAW_TYPE_INCREMENTAL = 4;\nfunction canPathBatch(style) {\n    var hasFill = styleHasFill(style);\n    var hasStroke = styleHasStroke(style);\n    return !(style.lineDash\n        || !(+hasFill ^ +hasStroke)\n        || (hasFill && typeof style.fill !== 'string')\n        || (hasStroke && typeof style.stroke !== 'string')\n        || style.strokePercent < 1\n        || style.strokeOpacity < 1\n        || style.fillOpacity < 1);\n}\nfunction flushPathDrawn(ctx, scope) {\n    scope.batchFill && ctx.fill();\n    scope.batchStroke && ctx.stroke();\n    scope.batchFill = '';\n    scope.batchStroke = '';\n}\nfunction getStyle(el, inHover) {\n    return inHover ? (el.__hoverStyle || el.style) : el.style;\n}\nexport function brushSingle(ctx, el) {\n    brush(ctx, el, { inHover: false, viewWidth: 0, viewHeight: 0 }, true);\n}\nexport function brush(ctx, el, scope, isLast) {\n    var m = el.transform;\n    if (!el.shouldBePainted(scope.viewWidth, scope.viewHeight, false, false)) {\n        el.__dirty &= ~Element.REDARAW_BIT;\n        el.__isRendered = false;\n        return;\n    }\n    var clipPaths = el.__clipPaths;\n    var prevElClipPaths = scope.prevElClipPaths;\n    var forceSetTransform = false;\n    var forceSetStyle = false;\n    if (!prevElClipPaths || isClipPathChanged(clipPaths, prevElClipPaths)) {\n        if (prevElClipPaths && prevElClipPaths.length) {\n            flushPathDrawn(ctx, scope);\n            ctx.restore();\n            forceSetStyle = forceSetTransform = true;\n            scope.prevElClipPaths = null;\n            scope.allClipped = false;\n            scope.prevEl = null;\n        }\n        if (clipPaths && clipPaths.length) {\n            flushPathDrawn(ctx, scope);\n            ctx.save();\n            updateClipStatus(clipPaths, ctx, scope);\n            forceSetTransform = true;\n        }\n        scope.prevElClipPaths = clipPaths;\n    }\n    if (scope.allClipped) {\n        el.__isRendered = false;\n        return;\n    }\n    el.beforeBrush && el.beforeBrush();\n    el.innerBeforeBrush();\n    var prevEl = scope.prevEl;\n    if (!prevEl) {\n        forceSetStyle = forceSetTransform = true;\n    }\n    var canBatchPath = el instanceof Path\n        && el.autoBatch\n        && canPathBatch(el.style);\n    if (forceSetTransform || isTransformChanged(m, prevEl.transform)) {\n        flushPathDrawn(ctx, scope);\n        setContextTransform(ctx, el);\n    }\n    else if (!canBatchPath) {\n        flushPathDrawn(ctx, scope);\n    }\n    var style = getStyle(el, scope.inHover);\n    if (el instanceof Path) {\n        if (scope.lastDrawType !== DRAW_TYPE_PATH) {\n            forceSetStyle = true;\n            scope.lastDrawType = DRAW_TYPE_PATH;\n        }\n        bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\n        if (!canBatchPath || (!scope.batchFill && !scope.batchStroke)) {\n            ctx.beginPath();\n        }\n        brushPath(ctx, el, style, canBatchPath);\n        if (canBatchPath) {\n            scope.batchFill = style.fill || '';\n            scope.batchStroke = style.stroke || '';\n        }\n    }\n    else {\n        if (el instanceof TSpan) {\n            if (scope.lastDrawType !== DRAW_TYPE_TEXT) {\n                forceSetStyle = true;\n                scope.lastDrawType = DRAW_TYPE_TEXT;\n            }\n            bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\n            brushText(ctx, el, style);\n        }\n        else if (el instanceof ZRImage) {\n            if (scope.lastDrawType !== DRAW_TYPE_IMAGE) {\n                forceSetStyle = true;\n                scope.lastDrawType = DRAW_TYPE_IMAGE;\n            }\n            bindImageStyle(ctx, el, prevEl, forceSetStyle, scope);\n            brushImage(ctx, el, style);\n        }\n        else if (el instanceof IncrementalDisplayable) {\n            if (scope.lastDrawType !== DRAW_TYPE_INCREMENTAL) {\n                forceSetStyle = true;\n                scope.lastDrawType = DRAW_TYPE_INCREMENTAL;\n            }\n            brushIncremental(ctx, el, scope);\n        }\n    }\n    if (canBatchPath && isLast) {\n        flushPathDrawn(ctx, scope);\n    }\n    el.innerAfterBrush();\n    el.afterBrush && el.afterBrush();\n    scope.prevEl = el;\n    el.__dirty = 0;\n    el.__isRendered = true;\n}\nfunction brushIncremental(ctx, el, scope) {\n    var displayables = el.getDisplayables();\n    var temporalDisplayables = el.getTemporalDisplayables();\n    ctx.save();\n    var innerScope = {\n        prevElClipPaths: null,\n        prevEl: null,\n        allClipped: false,\n        viewWidth: scope.viewWidth,\n        viewHeight: scope.viewHeight,\n        inHover: scope.inHover\n    };\n    var i;\n    var len;\n    for (i = el.getCursor(), len = displayables.length; i < len; i++) {\n        var displayable = displayables[i];\n        displayable.beforeBrush && displayable.beforeBrush();\n        displayable.innerBeforeBrush();\n        brush(ctx, displayable, innerScope, i === len - 1);\n        displayable.innerAfterBrush();\n        displayable.afterBrush && displayable.afterBrush();\n        innerScope.prevEl = displayable;\n    }\n    for (var i_1 = 0, len_1 = temporalDisplayables.length; i_1 < len_1; i_1++) {\n        var displayable = temporalDisplayables[i_1];\n        displayable.beforeBrush && displayable.beforeBrush();\n        displayable.innerBeforeBrush();\n        brush(ctx, displayable, innerScope, i_1 === len_1 - 1);\n        displayable.innerAfterBrush();\n        displayable.afterBrush && displayable.afterBrush();\n        innerScope.prevEl = displayable;\n    }\n    el.clearTemporalDisplayables();\n    el.notClear = true;\n    ctx.restore();\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport WeakMap from 'zrender/lib/core/WeakMap';\nimport LRU from 'zrender/lib/core/LRU';\nimport { defaults, createCanvas, map, isArray } from 'zrender/lib/core/util';\nimport { getLeastCommonMultiple } from './number';\nimport { createSymbol } from './symbol';\nimport { brushSingle } from 'zrender/lib/canvas/graphic';\nvar decalMap = new WeakMap();\nvar decalCache = new LRU(100);\nvar decalKeys = ['symbol', 'symbolSize', 'symbolKeepAspect', 'color', 'backgroundColor', 'dashArrayX', 'dashArrayY', 'maxTileWidth', 'maxTileHeight'];\nexport function createOrUpdatePatternFromDecal(decalObject, api) {\n  if (decalObject === 'none') {\n    return null;\n  }\n\n  var dpr = api.getDevicePixelRatio();\n  var zr = api.getZr();\n  var isSVG = zr.painter.type === 'svg';\n\n  if (decalObject.dirty) {\n    decalMap[\"delete\"](decalObject);\n  }\n\n  var oldPattern = decalMap.get(decalObject);\n\n  if (oldPattern) {\n    return oldPattern;\n  }\n\n  var decalOpt = defaults(decalObject, {\n    symbol: 'rect',\n    symbolSize: 1,\n    symbolKeepAspect: true,\n    color: 'rgba(0, 0, 0, 0.2)',\n    backgroundColor: null,\n    dashArrayX: 5,\n    dashArrayY: 5,\n    rotation: 0,\n    maxTileWidth: 512,\n    maxTileHeight: 512\n  });\n\n  if (decalOpt.backgroundColor === 'none') {\n    decalOpt.backgroundColor = null;\n  }\n\n  var pattern = {\n    repeat: 'repeat'\n  };\n  setPatternnSource(pattern);\n  pattern.rotation = decalOpt.rotation;\n  pattern.scaleX = pattern.scaleY = isSVG ? 1 : 1 / dpr;\n  decalMap.set(decalObject, pattern);\n  decalObject.dirty = false;\n  return pattern;\n\n  function setPatternnSource(pattern) {\n    var keys = [dpr];\n    var isValidKey = true;\n\n    for (var i = 0; i < decalKeys.length; ++i) {\n      var value = decalOpt[decalKeys[i]];\n      var valueType = typeof value;\n\n      if (value != null && !isArray(value) && valueType !== 'string' && valueType !== 'number' && valueType !== 'boolean') {\n        isValidKey = false;\n        break;\n      }\n\n      keys.push(value);\n    }\n\n    var cacheKey;\n\n    if (isValidKey) {\n      cacheKey = keys.join(',') + (isSVG ? '-svg' : '');\n      var cache = decalCache.get(cacheKey);\n\n      if (cache) {\n        isSVG ? pattern.svgElement = cache : pattern.image = cache;\n      }\n    }\n\n    var dashArrayX = normalizeDashArrayX(decalOpt.dashArrayX);\n    var dashArrayY = normalizeDashArrayY(decalOpt.dashArrayY);\n    var symbolArray = normalizeSymbolArray(decalOpt.symbol);\n    var lineBlockLengthsX = getLineBlockLengthX(dashArrayX);\n    var lineBlockLengthY = getLineBlockLengthY(dashArrayY);\n    var canvas = !isSVG && createCanvas();\n    var svgRoot = isSVG && zr.painter.createSVGElement('g');\n    var pSize = getPatternSize();\n    var ctx;\n\n    if (canvas) {\n      canvas.width = pSize.width * dpr;\n      canvas.height = pSize.height * dpr;\n      ctx = canvas.getContext('2d');\n    }\n\n    brushDecal();\n\n    if (isValidKey) {\n      decalCache.put(cacheKey, canvas || svgRoot);\n    }\n\n    pattern.image = canvas;\n    pattern.svgElement = svgRoot;\n    pattern.svgWidth = pSize.width;\n    pattern.svgHeight = pSize.height;\n\n    function getPatternSize() {\n      var width = 1;\n\n      for (var i = 0, xlen = lineBlockLengthsX.length; i < xlen; ++i) {\n        width = getLeastCommonMultiple(width, lineBlockLengthsX[i]);\n      }\n\n      var symbolRepeats = 1;\n\n      for (var i = 0, xlen = symbolArray.length; i < xlen; ++i) {\n        symbolRepeats = getLeastCommonMultiple(symbolRepeats, symbolArray[i].length);\n      }\n\n      width *= symbolRepeats;\n      var height = lineBlockLengthY * lineBlockLengthsX.length * symbolArray.length;\n\n      if (process.env.NODE_ENV !== 'production') {\n        var warn = function (attrName) {\n          console.warn(\"Calculated decal size is greater than \" + attrName + \" due to decal option settings so \" + attrName + \" is used for the decal size. Please consider changing the decal option to make a smaller decal or set \" + attrName + \" to be larger to avoid incontinuity.\");\n        };\n\n        if (width > decalOpt.maxTileWidth) {\n          warn('maxTileWidth');\n        }\n\n        if (height > decalOpt.maxTileHeight) {\n          warn('maxTileHeight');\n        }\n      }\n\n      return {\n        width: Math.max(1, Math.min(width, decalOpt.maxTileWidth)),\n        height: Math.max(1, Math.min(height, decalOpt.maxTileHeight))\n      };\n    }\n\n    function brushDecal() {\n      if (ctx) {\n        ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n        if (decalOpt.backgroundColor) {\n          ctx.fillStyle = decalOpt.backgroundColor;\n          ctx.fillRect(0, 0, canvas.width, canvas.height);\n        }\n      }\n\n      var ySum = 0;\n\n      for (var i = 0; i < dashArrayY.length; ++i) {\n        ySum += dashArrayY[i];\n      }\n\n      if (ySum <= 0) {\n        return;\n      }\n\n      var y = -lineBlockLengthY;\n      var yId = 0;\n      var yIdTotal = 0;\n      var xId0 = 0;\n\n      while (y < pSize.height) {\n        if (yId % 2 === 0) {\n          var symbolYId = yIdTotal / 2 % symbolArray.length;\n          var x = 0;\n          var xId1 = 0;\n          var xId1Total = 0;\n\n          while (x < pSize.width * 2) {\n            var xSum = 0;\n\n            for (var i = 0; i < dashArrayX[xId0].length; ++i) {\n              xSum += dashArrayX[xId0][i];\n            }\n\n            if (xSum <= 0) {\n              break;\n            }\n\n            if (xId1 % 2 === 0) {\n              var size = (1 - decalOpt.symbolSize) * 0.5;\n              var left = x + dashArrayX[xId0][xId1] * size;\n              var top_1 = y + dashArrayY[yId] * size;\n              var width = dashArrayX[xId0][xId1] * decalOpt.symbolSize;\n              var height = dashArrayY[yId] * decalOpt.symbolSize;\n              var symbolXId = xId1Total / 2 % symbolArray[symbolYId].length;\n              brushSymbol(left, top_1, width, height, symbolArray[symbolYId][symbolXId]);\n            }\n\n            x += dashArrayX[xId0][xId1];\n            ++xId1Total;\n            ++xId1;\n\n            if (xId1 === dashArrayX[xId0].length) {\n              xId1 = 0;\n            }\n          }\n\n          ++xId0;\n\n          if (xId0 === dashArrayX.length) {\n            xId0 = 0;\n          }\n        }\n\n        y += dashArrayY[yId];\n        ++yIdTotal;\n        ++yId;\n\n        if (yId === dashArrayY.length) {\n          yId = 0;\n        }\n      }\n\n      function brushSymbol(x, y, width, height, symbolType) {\n        var scale = isSVG ? 1 : dpr;\n        var symbol = createSymbol(symbolType, x * scale, y * scale, width * scale, height * scale, decalOpt.color, decalOpt.symbolKeepAspect);\n\n        if (isSVG) {\n          svgRoot.appendChild(zr.painter.paintOne(symbol));\n        } else {\n          brushSingle(ctx, symbol);\n        }\n      }\n    }\n  }\n}\n\nfunction normalizeSymbolArray(symbol) {\n  if (!symbol || symbol.length === 0) {\n    return [['rect']];\n  }\n\n  if (typeof symbol === 'string') {\n    return [[symbol]];\n  }\n\n  var isAllString = true;\n\n  for (var i = 0; i < symbol.length; ++i) {\n    if (typeof symbol[i] !== 'string') {\n      isAllString = false;\n      break;\n    }\n  }\n\n  if (isAllString) {\n    return normalizeSymbolArray([symbol]);\n  }\n\n  var result = [];\n\n  for (var i = 0; i < symbol.length; ++i) {\n    if (typeof symbol[i] === 'string') {\n      result.push([symbol[i]]);\n    } else {\n      result.push(symbol[i]);\n    }\n  }\n\n  return result;\n}\n\nfunction normalizeDashArrayX(dash) {\n  if (!dash || dash.length === 0) {\n    return [[0, 0]];\n  }\n\n  if (typeof dash === 'number') {\n    var dashValue = Math.ceil(dash);\n    return [[dashValue, dashValue]];\n  }\n\n  var isAllNumber = true;\n\n  for (var i = 0; i < dash.length; ++i) {\n    if (typeof dash[i] !== 'number') {\n      isAllNumber = false;\n      break;\n    }\n  }\n\n  if (isAllNumber) {\n    return normalizeDashArrayX([dash]);\n  }\n\n  var result = [];\n\n  for (var i = 0; i < dash.length; ++i) {\n    if (typeof dash[i] === 'number') {\n      var dashValue = Math.ceil(dash[i]);\n      result.push([dashValue, dashValue]);\n    } else {\n      var dashValue = map(dash[i], function (n) {\n        return Math.ceil(n);\n      });\n\n      if (dashValue.length % 2 === 1) {\n        result.push(dashValue.concat(dashValue));\n      } else {\n        result.push(dashValue);\n      }\n    }\n  }\n\n  return result;\n}\n\nfunction normalizeDashArrayY(dash) {\n  if (!dash || typeof dash === 'object' && dash.length === 0) {\n    return [0, 0];\n  }\n\n  if (typeof dash === 'number') {\n    var dashValue_1 = Math.ceil(dash);\n    return [dashValue_1, dashValue_1];\n  }\n\n  var dashValue = map(dash, function (n) {\n    return Math.ceil(n);\n  });\n  return dash.length % 2 ? dashValue.concat(dashValue) : dashValue;\n}\n\nfunction getLineBlockLengthX(dash) {\n  return map(dash, function (line) {\n    return getLineBlockLengthY(line);\n  });\n}\n\nfunction getLineBlockLengthY(dash) {\n  var blockLength = 0;\n\n  for (var i = 0; i < dash.length; ++i) {\n    blockLength += dash[i];\n  }\n\n  if (dash.length % 2 === 1) {\n    return blockLength * 2;\n  }\n\n  return blockLength;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createOrUpdatePatternFromDecal } from '../util/decal';\nexport default function decalVisual(ecModel, api) {\n  ecModel.eachRawSeries(function (seriesModel) {\n    if (ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n\n    if (data.hasItemVisual()) {\n      data.each(function (idx) {\n        var decal = data.getItemVisual(idx, 'decal');\n\n        if (decal) {\n          var itemStyle = data.ensureUniqueItemVisual(idx, 'style');\n          itemStyle.decal = createOrUpdatePatternFromDecal(decal, api);\n        }\n      });\n    }\n\n    var decal = data.getVisual('decal');\n\n    if (decal) {\n      var style = data.getVisual('style');\n      style.decal = createOrUpdatePatternFromDecal(decal, api);\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrender from 'zrender/lib/zrender';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as colorTool from 'zrender/lib/tool/color';\nimport env from 'zrender/lib/core/env';\nimport timsort from 'zrender/lib/core/timsort';\nimport Eventful from 'zrender/lib/core/Eventful';\nimport GlobalModel from '../model/Global';\nimport ExtensionAPI from './ExtensionAPI';\nimport CoordinateSystemManager from './CoordinateSystem';\nimport OptionManager from '../model/OptionManager';\nimport backwardCompat from '../preprocessor/backwardCompat';\nimport dataStack from '../processor/dataStack';\nimport SeriesModel from '../model/Series';\nimport ComponentView from '../view/Component';\nimport ChartView from '../view/Chart';\nimport * as graphic from '../util/graphic';\nimport { getECData } from '../util/innerStore';\nimport { enterEmphasisWhenMouseOver, leaveEmphasisWhenMouseOut, isHighDownDispatcher, HOVER_STATE_EMPHASIS, HOVER_STATE_BLUR, toggleSeriesBlurState, toggleSeriesBlurStateFromPayload, toggleSelectionFromPayload, updateSeriesElementSelection, getAllSelectedIndices, isSelectChangePayload, isHighDownPayload, HIGHLIGHT_ACTION_TYPE, DOWNPLAY_ACTION_TYPE, SELECT_ACTION_TYPE, UNSELECT_ACTION_TYPE, TOGGLE_SELECT_ACTION_TYPE, savePathStates, enterEmphasis, leaveEmphasis, leaveBlur, enterSelect, leaveSelect, enterBlur } from '../util/states';\nimport * as modelUtil from '../util/model';\nimport { throttle } from '../util/throttle';\nimport { seriesStyleTask, dataStyleTask, dataColorPaletteTask } from '../visual/style';\nimport loadingDefault from '../loading/default';\nimport Scheduler from './Scheduler';\nimport lightTheme from '../theme/light';\nimport darkTheme from '../theme/dark';\nimport mapDataStorage from '../coord/geo/mapDataStorage';\nimport { parseClassType } from '../util/clazz';\nimport { ECEventProcessor } from '../util/ECEventProcessor';\nimport { seriesSymbolTask, dataSymbolTask } from '../visual/symbol';\nimport { getVisualFromData, getItemVisualFromData } from '../visual/helper';\nimport LabelManager from '../label/LabelManager';\nimport { deprecateLog, throwError } from '../util/log';\nimport { handleLegacySelectEvents } from '../legacy/dataSelectAction';\nimport { registerExternalTransform } from '../data/helper/transform';\nimport { createLocaleObject, SYSTEM_LANG } from './locale';\nimport { findEventDispatcher } from '../util/event';\nimport decal from '../visual/decal';\nvar assert = zrUtil.assert;\nvar each = zrUtil.each;\nvar isFunction = zrUtil.isFunction;\nvar isObject = zrUtil.isObject;\nvar indexOf = zrUtil.indexOf;\nvar hasWindow = typeof window !== 'undefined';\nexport var version = '5.0.1';\nexport var dependencies = {\n  zrender: '5.0.2'\n};\nvar TEST_FRAME_REMAIN_TIME = 1;\nvar PRIORITY_PROCESSOR_SERIES_FILTER = 800;\nvar PRIORITY_PROCESSOR_DATASTACK = 900;\nvar PRIORITY_PROCESSOR_FILTER = 1000;\nvar PRIORITY_PROCESSOR_DEFAULT = 2000;\nvar PRIORITY_PROCESSOR_STATISTIC = 5000;\nvar PRIORITY_VISUAL_LAYOUT = 1000;\nvar PRIORITY_VISUAL_PROGRESSIVE_LAYOUT = 1100;\nvar PRIORITY_VISUAL_GLOBAL = 2000;\nvar PRIORITY_VISUAL_CHART = 3000;\nvar PRIORITY_VISUAL_COMPONENT = 4000;\nvar PRIORITY_VISUAL_CHART_DATA_CUSTOM = 4500;\nvar PRIORITY_VISUAL_POST_CHART_LAYOUT = 4600;\nvar PRIORITY_VISUAL_BRUSH = 5000;\nvar PRIORITY_VISUAL_ARIA = 6000;\nvar PRIORITY_VISUAL_DECAL = 7000;\nexport var PRIORITY = {\n  PROCESSOR: {\n    FILTER: PRIORITY_PROCESSOR_FILTER,\n    SERIES_FILTER: PRIORITY_PROCESSOR_SERIES_FILTER,\n    STATISTIC: PRIORITY_PROCESSOR_STATISTIC\n  },\n  VISUAL: {\n    LAYOUT: PRIORITY_VISUAL_LAYOUT,\n    PROGRESSIVE_LAYOUT: PRIORITY_VISUAL_PROGRESSIVE_LAYOUT,\n    GLOBAL: PRIORITY_VISUAL_GLOBAL,\n    CHART: PRIORITY_VISUAL_CHART,\n    POST_CHART_LAYOUT: PRIORITY_VISUAL_POST_CHART_LAYOUT,\n    COMPONENT: PRIORITY_VISUAL_COMPONENT,\n    BRUSH: PRIORITY_VISUAL_BRUSH,\n    CHART_ITEM: PRIORITY_VISUAL_CHART_DATA_CUSTOM,\n    ARIA: PRIORITY_VISUAL_ARIA,\n    DECAL: PRIORITY_VISUAL_DECAL\n  }\n};\nvar IN_MAIN_PROCESS_KEY = '__flagInMainProcess';\nvar OPTION_UPDATED_KEY = '__optionUpdated';\nvar STATUS_NEEDS_UPDATE_KEY = '__needsUpdateStatus';\nvar ACTION_REG = /^[a-zA-Z0-9_]+$/;\nvar CONNECT_STATUS_KEY = '__connectUpdateStatus';\nvar CONNECT_STATUS_PENDING = 0;\nvar CONNECT_STATUS_UPDATING = 1;\nvar CONNECT_STATUS_UPDATED = 2;\n;\n\nfunction createRegisterEventWithLowercaseECharts(method) {\n  return function () {\n    var args = [];\n\n    for (var _i = 0; _i < arguments.length; _i++) {\n      args[_i] = arguments[_i];\n    }\n\n    if (this.isDisposed()) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    return toLowercaseNameAndCallEventful(this, method, args);\n  };\n}\n\nfunction createRegisterEventWithLowercaseMessageCenter(method) {\n  return function () {\n    var args = [];\n\n    for (var _i = 0; _i < arguments.length; _i++) {\n      args[_i] = arguments[_i];\n    }\n\n    return toLowercaseNameAndCallEventful(this, method, args);\n  };\n}\n\nfunction toLowercaseNameAndCallEventful(host, method, args) {\n  args[0] = args[0] && args[0].toLowerCase();\n  return Eventful.prototype[method].apply(host, args);\n}\n\nvar MessageCenter = function (_super) {\n  __extends(MessageCenter, _super);\n\n  function MessageCenter() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  return MessageCenter;\n}(Eventful);\n\nvar messageCenterProto = MessageCenter.prototype;\nmessageCenterProto.on = createRegisterEventWithLowercaseMessageCenter('on');\nmessageCenterProto.off = createRegisterEventWithLowercaseMessageCenter('off');\nvar prepare;\nvar prepareView;\nvar updateDirectly;\nvar updateMethods;\nvar doConvertPixel;\nvar updateStreamModes;\nvar doDispatchAction;\nvar flushPendingActions;\nvar triggerUpdatedEvent;\nvar bindRenderedEvent;\nvar bindMouseEvent;\nvar clearColorPalette;\nvar render;\nvar renderComponents;\nvar renderSeries;\nvar performPostUpdateFuncs;\nvar createExtensionAPI;\nvar enableConnect;\nvar setTransitionOpt;\nvar markStatusToUpdate;\nvar applyChangedStates;\n\nvar ECharts = function (_super) {\n  __extends(ECharts, _super);\n\n  function ECharts(dom, theme, opts) {\n    var _this = _super.call(this, new ECEventProcessor()) || this;\n\n    _this._chartsViews = [];\n    _this._chartsMap = {};\n    _this._componentsViews = [];\n    _this._componentsMap = {};\n    _this._pendingActions = [];\n    opts = opts || {};\n\n    if (typeof theme === 'string') {\n      theme = themeStorage[theme];\n    }\n\n    _this._dom = dom;\n    var defaultRenderer = 'canvas';\n    var defaultUseDirtyRect = false;\n\n    if (process.env.NODE_ENV !== 'production') {\n      var root = hasWindow ? window : global;\n      defaultRenderer = root.__ECHARTS__DEFAULT__RENDERER__ || defaultRenderer;\n      var devUseDirtyRect = root.__ECHARTS__DEFAULT__USE_DIRTY_RECT__;\n      defaultUseDirtyRect = devUseDirtyRect == null ? defaultUseDirtyRect : devUseDirtyRect;\n    }\n\n    var zr = _this._zr = zrender.init(dom, {\n      renderer: opts.renderer || defaultRenderer,\n      devicePixelRatio: opts.devicePixelRatio,\n      width: opts.width,\n      height: opts.height,\n      useDirtyRect: opts.useDirtyRect == null ? defaultUseDirtyRect : opts.useDirtyRect\n    });\n    _this._throttledZrFlush = throttle(zrUtil.bind(zr.flush, zr), 17);\n    theme = zrUtil.clone(theme);\n    theme && backwardCompat(theme, true);\n    _this._theme = theme;\n    _this._locale = createLocaleObject(opts.locale || SYSTEM_LANG);\n    _this._coordSysMgr = new CoordinateSystemManager();\n    var api = _this._api = createExtensionAPI(_this);\n\n    function prioritySortFunc(a, b) {\n      return a.__prio - b.__prio;\n    }\n\n    timsort(visualFuncs, prioritySortFunc);\n    timsort(dataProcessorFuncs, prioritySortFunc);\n    _this._scheduler = new Scheduler(_this, api, dataProcessorFuncs, visualFuncs);\n    _this._messageCenter = new MessageCenter();\n    _this._labelManager = new LabelManager();\n\n    _this._initEvents();\n\n    _this.resize = zrUtil.bind(_this.resize, _this);\n    zr.animation.on('frame', _this._onframe, _this);\n    bindRenderedEvent(zr, _this);\n    bindMouseEvent(zr, _this);\n    zrUtil.setAsPrimitive(_this);\n    return _this;\n  }\n\n  ECharts.prototype._onframe = function () {\n    if (this._disposed) {\n      return;\n    }\n\n    applyChangedStates(this);\n    var scheduler = this._scheduler;\n\n    if (this[OPTION_UPDATED_KEY]) {\n      var silent = this[OPTION_UPDATED_KEY].silent;\n      this[IN_MAIN_PROCESS_KEY] = true;\n      prepare(this);\n      updateMethods.update.call(this);\n\n      this._zr.flush();\n\n      this[IN_MAIN_PROCESS_KEY] = false;\n      this[OPTION_UPDATED_KEY] = false;\n      flushPendingActions.call(this, silent);\n      triggerUpdatedEvent.call(this, silent);\n    } else if (scheduler.unfinished) {\n      var remainTime = TEST_FRAME_REMAIN_TIME;\n      var ecModel = this._model;\n      var api = this._api;\n      scheduler.unfinished = false;\n\n      do {\n        var startTime = +new Date();\n        scheduler.performSeriesTasks(ecModel);\n        scheduler.performDataProcessorTasks(ecModel);\n        updateStreamModes(this, ecModel);\n        scheduler.performVisualTasks(ecModel);\n        renderSeries(this, this._model, api, 'remain');\n        remainTime -= +new Date() - startTime;\n      } while (remainTime > 0 && scheduler.unfinished);\n\n      if (!scheduler.unfinished) {\n        this._zr.flush();\n      }\n    }\n  };\n\n  ECharts.prototype.getDom = function () {\n    return this._dom;\n  };\n\n  ECharts.prototype.getId = function () {\n    return this.id;\n  };\n\n  ECharts.prototype.getZr = function () {\n    return this._zr;\n  };\n\n  ECharts.prototype.setOption = function (option, notMerge, lazyUpdate) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!this[IN_MAIN_PROCESS_KEY], '`setOption` should not be called during main process.');\n    }\n\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    var silent;\n    var replaceMerge;\n    var transitionOpt;\n\n    if (isObject(notMerge)) {\n      lazyUpdate = notMerge.lazyUpdate;\n      silent = notMerge.silent;\n      replaceMerge = notMerge.replaceMerge;\n      transitionOpt = notMerge.transition;\n      notMerge = notMerge.notMerge;\n    }\n\n    this[IN_MAIN_PROCESS_KEY] = true;\n\n    if (!this._model || notMerge) {\n      var optionManager = new OptionManager(this._api);\n      var theme = this._theme;\n      var ecModel = this._model = new GlobalModel();\n      ecModel.scheduler = this._scheduler;\n      ecModel.init(null, null, null, theme, this._locale, optionManager);\n    }\n\n    this._model.setOption(option, {\n      replaceMerge: replaceMerge\n    }, optionPreprocessorFuncs);\n\n    setTransitionOpt(this, transitionOpt);\n\n    if (lazyUpdate) {\n      this[OPTION_UPDATED_KEY] = {\n        silent: silent\n      };\n      this[IN_MAIN_PROCESS_KEY] = false;\n      this.getZr().wakeUp();\n    } else {\n      prepare(this);\n      updateMethods.update.call(this);\n\n      this._zr.flush();\n\n      this[OPTION_UPDATED_KEY] = false;\n      this[IN_MAIN_PROCESS_KEY] = false;\n      flushPendingActions.call(this, silent);\n      triggerUpdatedEvent.call(this, silent);\n    }\n  };\n\n  ECharts.prototype.setTheme = function () {\n    console.error('ECharts#setTheme() is DEPRECATED in ECharts 3.0');\n  };\n\n  ECharts.prototype.getModel = function () {\n    return this._model;\n  };\n\n  ECharts.prototype.getOption = function () {\n    return this._model && this._model.getOption();\n  };\n\n  ECharts.prototype.getWidth = function () {\n    return this._zr.getWidth();\n  };\n\n  ECharts.prototype.getHeight = function () {\n    return this._zr.getHeight();\n  };\n\n  ECharts.prototype.getDevicePixelRatio = function () {\n    return this._zr.painter.dpr || hasWindow && window.devicePixelRatio || 1;\n  };\n\n  ECharts.prototype.getRenderedCanvas = function (opts) {\n    if (!env.canvasSupported) {\n      return;\n    }\n\n    opts = zrUtil.extend({}, opts || {});\n    opts.pixelRatio = opts.pixelRatio || 1;\n    opts.backgroundColor = opts.backgroundColor || this._model.get('backgroundColor');\n    var zr = this._zr;\n    return zr.painter.getRenderedCanvas(opts);\n  };\n\n  ECharts.prototype.getSvgDataURL = function () {\n    if (!env.svgSupported) {\n      return;\n    }\n\n    var zr = this._zr;\n    var list = zr.storage.getDisplayList();\n    zrUtil.each(list, function (el) {\n      el.stopAnimation(null, true);\n    });\n    return zr.painter.toDataURL();\n  };\n\n  ECharts.prototype.getDataURL = function (opts) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    opts = opts || {};\n    var excludeComponents = opts.excludeComponents;\n    var ecModel = this._model;\n    var excludesComponentViews = [];\n    var self = this;\n    each(excludeComponents, function (componentType) {\n      ecModel.eachComponent({\n        mainType: componentType\n      }, function (component) {\n        var view = self._componentsMap[component.__viewId];\n\n        if (!view.group.ignore) {\n          excludesComponentViews.push(view);\n          view.group.ignore = true;\n        }\n      });\n    });\n    var url = this._zr.painter.getType() === 'svg' ? this.getSvgDataURL() : this.getRenderedCanvas(opts).toDataURL('image/' + (opts && opts.type || 'png'));\n    each(excludesComponentViews, function (view) {\n      view.group.ignore = false;\n    });\n    return url;\n  };\n\n  ECharts.prototype.getConnectedDataURL = function (opts) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    if (!env.canvasSupported) {\n      return;\n    }\n\n    var isSvg = opts.type === 'svg';\n    var groupId = this.group;\n    var mathMin = Math.min;\n    var mathMax = Math.max;\n    var MAX_NUMBER = Infinity;\n\n    if (connectedGroups[groupId]) {\n      var left_1 = MAX_NUMBER;\n      var top_1 = MAX_NUMBER;\n      var right_1 = -MAX_NUMBER;\n      var bottom_1 = -MAX_NUMBER;\n      var canvasList_1 = [];\n      var dpr_1 = opts && opts.pixelRatio || 1;\n      zrUtil.each(instances, function (chart, id) {\n        if (chart.group === groupId) {\n          var canvas = isSvg ? chart.getZr().painter.getSvgDom().innerHTML : chart.getRenderedCanvas(zrUtil.clone(opts));\n          var boundingRect = chart.getDom().getBoundingClientRect();\n          left_1 = mathMin(boundingRect.left, left_1);\n          top_1 = mathMin(boundingRect.top, top_1);\n          right_1 = mathMax(boundingRect.right, right_1);\n          bottom_1 = mathMax(boundingRect.bottom, bottom_1);\n          canvasList_1.push({\n            dom: canvas,\n            left: boundingRect.left,\n            top: boundingRect.top\n          });\n        }\n      });\n      left_1 *= dpr_1;\n      top_1 *= dpr_1;\n      right_1 *= dpr_1;\n      bottom_1 *= dpr_1;\n      var width = right_1 - left_1;\n      var height = bottom_1 - top_1;\n      var targetCanvas = zrUtil.createCanvas();\n      var zr_1 = zrender.init(targetCanvas, {\n        renderer: isSvg ? 'svg' : 'canvas'\n      });\n      zr_1.resize({\n        width: width,\n        height: height\n      });\n\n      if (isSvg) {\n        var content_1 = '';\n        each(canvasList_1, function (item) {\n          var x = item.left - left_1;\n          var y = item.top - top_1;\n          content_1 += '<g transform=\"translate(' + x + ',' + y + ')\">' + item.dom + '</g>';\n        });\n        zr_1.painter.getSvgRoot().innerHTML = content_1;\n\n        if (opts.connectedBackgroundColor) {\n          zr_1.painter.setBackgroundColor(opts.connectedBackgroundColor);\n        }\n\n        zr_1.refreshImmediately();\n        return zr_1.painter.toDataURL();\n      } else {\n        if (opts.connectedBackgroundColor) {\n          zr_1.add(new graphic.Rect({\n            shape: {\n              x: 0,\n              y: 0,\n              width: width,\n              height: height\n            },\n            style: {\n              fill: opts.connectedBackgroundColor\n            }\n          }));\n        }\n\n        each(canvasList_1, function (item) {\n          var img = new graphic.Image({\n            style: {\n              x: item.left * dpr_1 - left_1,\n              y: item.top * dpr_1 - top_1,\n              image: item.dom\n            }\n          });\n          zr_1.add(img);\n        });\n        zr_1.refreshImmediately();\n        return targetCanvas.toDataURL('image/' + (opts && opts.type || 'png'));\n      }\n    } else {\n      return this.getDataURL(opts);\n    }\n  };\n\n  ECharts.prototype.convertToPixel = function (finder, value) {\n    return doConvertPixel(this, 'convertToPixel', finder, value);\n  };\n\n  ECharts.prototype.convertFromPixel = function (finder, value) {\n    return doConvertPixel(this, 'convertFromPixel', finder, value);\n  };\n\n  ECharts.prototype.containPixel = function (finder, value) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    var ecModel = this._model;\n    var result;\n    var findResult = modelUtil.parseFinder(ecModel, finder);\n    zrUtil.each(findResult, function (models, key) {\n      key.indexOf('Models') >= 0 && zrUtil.each(models, function (model) {\n        var coordSys = model.coordinateSystem;\n\n        if (coordSys && coordSys.containPoint) {\n          result = result || !!coordSys.containPoint(value);\n        } else if (key === 'seriesModels') {\n          var view = this._chartsMap[model.__viewId];\n\n          if (view && view.containPoint) {\n            result = result || view.containPoint(value, model);\n          } else {\n            if (process.env.NODE_ENV !== 'production') {\n              console.warn(key + ': ' + (view ? 'The found component do not support containPoint.' : 'No view mapping to the found component.'));\n            }\n          }\n        } else {\n          if (process.env.NODE_ENV !== 'production') {\n            console.warn(key + ': containPoint is not supported');\n          }\n        }\n      }, this);\n    }, this);\n    return !!result;\n  };\n\n  ECharts.prototype.getVisual = function (finder, visualType) {\n    var ecModel = this._model;\n    var parsedFinder = modelUtil.parseFinder(ecModel, finder, {\n      defaultMainType: 'series'\n    });\n    var seriesModel = parsedFinder.seriesModel;\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!seriesModel) {\n        console.warn('There is no specified seires model');\n      }\n    }\n\n    var data = seriesModel.getData();\n    var dataIndexInside = parsedFinder.hasOwnProperty('dataIndexInside') ? parsedFinder.dataIndexInside : parsedFinder.hasOwnProperty('dataIndex') ? data.indexOfRawIndex(parsedFinder.dataIndex) : null;\n    return dataIndexInside != null ? getItemVisualFromData(data, dataIndexInside, visualType) : getVisualFromData(data, visualType);\n  };\n\n  ECharts.prototype.getViewOfComponentModel = function (componentModel) {\n    return this._componentsMap[componentModel.__viewId];\n  };\n\n  ECharts.prototype.getViewOfSeriesModel = function (seriesModel) {\n    return this._chartsMap[seriesModel.__viewId];\n  };\n\n  ECharts.prototype._initEvents = function () {\n    var _this = this;\n\n    each(MOUSE_EVENT_NAMES, function (eveName) {\n      var handler = function (e) {\n        var ecModel = _this.getModel();\n\n        var el = e.target;\n        var params;\n        var isGlobalOut = eveName === 'globalout';\n\n        if (isGlobalOut) {\n          params = {};\n        } else {\n          el && findEventDispatcher(el, function (parent) {\n            var ecData = getECData(parent);\n\n            if (ecData && ecData.dataIndex != null) {\n              var dataModel = ecData.dataModel || ecModel.getSeriesByIndex(ecData.seriesIndex);\n              params = dataModel && dataModel.getDataParams(ecData.dataIndex, ecData.dataType) || {};\n              return true;\n            } else if (ecData.eventData) {\n              params = zrUtil.extend({}, ecData.eventData);\n              return true;\n            }\n          }, true);\n        }\n\n        if (params) {\n          var componentType = params.componentType;\n          var componentIndex = params.componentIndex;\n\n          if (componentType === 'markLine' || componentType === 'markPoint' || componentType === 'markArea') {\n            componentType = 'series';\n            componentIndex = params.seriesIndex;\n          }\n\n          var model = componentType && componentIndex != null && ecModel.getComponent(componentType, componentIndex);\n          var view = model && _this[model.mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId];\n\n          if (process.env.NODE_ENV !== 'production') {\n            if (!isGlobalOut && !(model && view)) {\n              console.warn('model or view can not be found by params');\n            }\n          }\n\n          params.event = e;\n          params.type = eveName;\n          _this._$eventProcessor.eventInfo = {\n            targetEl: el,\n            packedEvent: params,\n            model: model,\n            view: view\n          };\n\n          _this.trigger(eveName, params);\n        }\n      };\n\n      handler.zrEventfulCallAtLast = true;\n\n      _this._zr.on(eveName, handler, _this);\n    });\n    each(eventActionMap, function (actionType, eventType) {\n      _this._messageCenter.on(eventType, function (event) {\n        this.trigger(eventType, event);\n      }, _this);\n    });\n    each(['selectchanged'], function (eventType) {\n      _this._messageCenter.on(eventType, function (event) {\n        this.trigger(eventType, event);\n      }, _this);\n    });\n    handleLegacySelectEvents(this._messageCenter, this, this._api);\n  };\n\n  ECharts.prototype.isDisposed = function () {\n    return this._disposed;\n  };\n\n  ECharts.prototype.clear = function () {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    this.setOption({\n      series: []\n    }, true);\n  };\n\n  ECharts.prototype.dispose = function () {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    this._disposed = true;\n    modelUtil.setAttribute(this.getDom(), DOM_ATTRIBUTE_KEY, '');\n    var api = this._api;\n    var ecModel = this._model;\n    each(this._componentsViews, function (component) {\n      component.dispose(ecModel, api);\n    });\n    each(this._chartsViews, function (chart) {\n      chart.dispose(ecModel, api);\n    });\n\n    this._zr.dispose();\n\n    delete instances[this.id];\n  };\n\n  ECharts.prototype.resize = function (opts) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!this[IN_MAIN_PROCESS_KEY], '`resize` should not be called during main process.');\n    }\n\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    this._zr.resize(opts);\n\n    var ecModel = this._model;\n    this._loadingFX && this._loadingFX.resize();\n\n    if (!ecModel) {\n      return;\n    }\n\n    var optionChanged = ecModel.resetOption('media');\n    var silent = opts && opts.silent;\n    this[IN_MAIN_PROCESS_KEY] = true;\n    optionChanged && prepare(this);\n    updateMethods.update.call(this, {\n      type: 'resize',\n      animation: {\n        duration: 0\n      }\n    });\n    this[IN_MAIN_PROCESS_KEY] = false;\n    flushPendingActions.call(this, silent);\n    triggerUpdatedEvent.call(this, silent);\n  };\n\n  ECharts.prototype.showLoading = function (name, cfg) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    if (isObject(name)) {\n      cfg = name;\n      name = '';\n    }\n\n    name = name || 'default';\n    this.hideLoading();\n\n    if (!loadingEffects[name]) {\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn('Loading effects ' + name + ' not exists.');\n      }\n\n      return;\n    }\n\n    var el = loadingEffects[name](this._api, cfg);\n    var zr = this._zr;\n    this._loadingFX = el;\n    zr.add(el);\n  };\n\n  ECharts.prototype.hideLoading = function () {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    this._loadingFX && this._zr.remove(this._loadingFX);\n    this._loadingFX = null;\n  };\n\n  ECharts.prototype.makeActionFromEvent = function (eventObj) {\n    var payload = zrUtil.extend({}, eventObj);\n    payload.type = eventActionMap[eventObj.type];\n    return payload;\n  };\n\n  ECharts.prototype.dispatchAction = function (payload, opt) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    if (!isObject(opt)) {\n      opt = {\n        silent: !!opt\n      };\n    }\n\n    if (!actions[payload.type]) {\n      return;\n    }\n\n    if (!this._model) {\n      return;\n    }\n\n    if (this[IN_MAIN_PROCESS_KEY]) {\n      this._pendingActions.push(payload);\n\n      return;\n    }\n\n    var silent = opt.silent;\n    doDispatchAction.call(this, payload, silent);\n    var flush = opt.flush;\n\n    if (flush) {\n      this._zr.flush();\n    } else if (flush !== false && env.browser.weChat) {\n      this._throttledZrFlush();\n    }\n\n    flushPendingActions.call(this, silent);\n    triggerUpdatedEvent.call(this, silent);\n  };\n\n  ECharts.prototype.updateLabelLayout = function () {\n    var labelManager = this._labelManager;\n    labelManager.updateLayoutConfig(this._api);\n    labelManager.layout(this._api);\n    labelManager.processLabelsOverall();\n  };\n\n  ECharts.prototype.appendData = function (params) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    var seriesIndex = params.seriesIndex;\n    var ecModel = this.getModel();\n    var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(params.data && seriesModel);\n    }\n\n    seriesModel.appendData(params);\n    this._scheduler.unfinished = true;\n    this.getZr().wakeUp();\n  };\n\n  ECharts.internalField = function () {\n    prepare = function (ecIns) {\n      var scheduler = ecIns._scheduler;\n      scheduler.restorePipelines(ecIns._model);\n      scheduler.prepareStageTasks();\n      prepareView(ecIns, true);\n      prepareView(ecIns, false);\n      scheduler.plan();\n    };\n\n    prepareView = function (ecIns, isComponent) {\n      var ecModel = ecIns._model;\n      var scheduler = ecIns._scheduler;\n      var viewList = isComponent ? ecIns._componentsViews : ecIns._chartsViews;\n      var viewMap = isComponent ? ecIns._componentsMap : ecIns._chartsMap;\n      var zr = ecIns._zr;\n      var api = ecIns._api;\n\n      for (var i = 0; i < viewList.length; i++) {\n        viewList[i].__alive = false;\n      }\n\n      isComponent ? ecModel.eachComponent(function (componentType, model) {\n        componentType !== 'series' && doPrepare(model);\n      }) : ecModel.eachSeries(doPrepare);\n\n      function doPrepare(model) {\n        var requireNewView = model.__requireNewView;\n        model.__requireNewView = false;\n        var viewId = '_ec_' + model.id + '_' + model.type;\n        var view = !requireNewView && viewMap[viewId];\n\n        if (!view) {\n          var classType = parseClassType(model.type);\n          var Clazz = isComponent ? ComponentView.getClass(classType.main, classType.sub) : ChartView.getClass(classType.sub);\n\n          if (process.env.NODE_ENV !== 'production') {\n            assert(Clazz, classType.sub + ' does not exist.');\n          }\n\n          view = new Clazz();\n          view.init(ecModel, api);\n          viewMap[viewId] = view;\n          viewList.push(view);\n          zr.add(view.group);\n        }\n\n        model.__viewId = view.__id = viewId;\n        view.__alive = true;\n        view.__model = model;\n        view.group.__ecComponentInfo = {\n          mainType: model.mainType,\n          index: model.componentIndex\n        };\n        !isComponent && scheduler.prepareView(view, model, ecModel, api);\n      }\n\n      for (var i = 0; i < viewList.length;) {\n        var view = viewList[i];\n\n        if (!view.__alive) {\n          !isComponent && view.renderTask.dispose();\n          zr.remove(view.group);\n          view.dispose(ecModel, api);\n          viewList.splice(i, 1);\n\n          if (viewMap[view.__id] === view) {\n            delete viewMap[view.__id];\n          }\n\n          view.__id = view.group.__ecComponentInfo = null;\n        } else {\n          i++;\n        }\n      }\n    };\n\n    updateDirectly = function (ecIns, method, payload, mainType, subType) {\n      var ecModel = ecIns._model;\n      ecModel.setUpdatePayload(payload);\n\n      if (!mainType) {\n        each([].concat(ecIns._componentsViews).concat(ecIns._chartsViews), callView);\n        return;\n      }\n\n      var query = {};\n      query[mainType + 'Id'] = payload[mainType + 'Id'];\n      query[mainType + 'Index'] = payload[mainType + 'Index'];\n      query[mainType + 'Name'] = payload[mainType + 'Name'];\n      var condition = {\n        mainType: mainType,\n        query: query\n      };\n      subType && (condition.subType = subType);\n      var excludeSeriesId = payload.excludeSeriesId;\n      var excludeSeriesIdMap;\n\n      if (excludeSeriesId != null) {\n        excludeSeriesIdMap = zrUtil.createHashMap();\n        each(modelUtil.normalizeToArray(excludeSeriesId), function (id) {\n          var modelId = modelUtil.convertOptionIdName(id, null);\n\n          if (modelId != null) {\n            excludeSeriesIdMap.set(modelId, true);\n          }\n        });\n      }\n\n      ecModel && ecModel.eachComponent(condition, function (model) {\n        if (!excludeSeriesIdMap || excludeSeriesIdMap.get(model.id) == null) {\n          if (isHighDownPayload(payload) && !payload.notBlur) {\n            if (model instanceof SeriesModel) {\n              toggleSeriesBlurStateFromPayload(model, payload, ecIns._api);\n            }\n          } else if (isSelectChangePayload(payload)) {\n            if (model instanceof SeriesModel) {\n              toggleSelectionFromPayload(model, payload, ecIns._api);\n              updateSeriesElementSelection(model);\n              markStatusToUpdate(ecIns);\n            }\n          }\n\n          callView(ecIns[mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId]);\n        }\n      }, ecIns);\n\n      function callView(view) {\n        view && view.__alive && view[method] && view[method](view.__model, ecModel, ecIns._api, payload);\n      }\n    };\n\n    updateMethods = {\n      prepareAndUpdate: function (payload) {\n        prepare(this);\n        updateMethods.update.call(this, payload);\n      },\n      update: function (payload) {\n        var ecModel = this._model;\n        var api = this._api;\n        var zr = this._zr;\n        var coordSysMgr = this._coordSysMgr;\n        var scheduler = this._scheduler;\n\n        if (!ecModel) {\n          return;\n        }\n\n        ecModel.setUpdatePayload(payload);\n        scheduler.restoreData(ecModel, payload);\n        scheduler.performSeriesTasks(ecModel);\n        coordSysMgr.create(ecModel, api);\n        scheduler.performDataProcessorTasks(ecModel, payload);\n        updateStreamModes(this, ecModel);\n        coordSysMgr.update(ecModel, api);\n        clearColorPalette(ecModel);\n        scheduler.performVisualTasks(ecModel, payload);\n        render(this, ecModel, api, payload);\n        var backgroundColor = ecModel.get('backgroundColor') || 'transparent';\n        var darkMode = ecModel.get('darkMode');\n\n        if (!env.canvasSupported) {\n          var colorArr = colorTool.parse(backgroundColor);\n          backgroundColor = colorTool.stringify(colorArr, 'rgb');\n\n          if (colorArr[3] === 0) {\n            backgroundColor = 'transparent';\n          }\n        } else {\n          zr.setBackgroundColor(backgroundColor);\n\n          if (darkMode != null && darkMode !== 'auto') {\n            zr.setDarkMode(darkMode);\n          }\n        }\n\n        performPostUpdateFuncs(ecModel, api);\n      },\n      updateTransform: function (payload) {\n        var _this = this;\n\n        var ecModel = this._model;\n        var api = this._api;\n\n        if (!ecModel) {\n          return;\n        }\n\n        ecModel.setUpdatePayload(payload);\n        var componentDirtyList = [];\n        ecModel.eachComponent(function (componentType, componentModel) {\n          if (componentType === 'series') {\n            return;\n          }\n\n          var componentView = _this.getViewOfComponentModel(componentModel);\n\n          if (componentView && componentView.__alive) {\n            if (componentView.updateTransform) {\n              var result = componentView.updateTransform(componentModel, ecModel, api, payload);\n              result && result.update && componentDirtyList.push(componentView);\n            } else {\n              componentDirtyList.push(componentView);\n            }\n          }\n        });\n        var seriesDirtyMap = zrUtil.createHashMap();\n        ecModel.eachSeries(function (seriesModel) {\n          var chartView = _this._chartsMap[seriesModel.__viewId];\n\n          if (chartView.updateTransform) {\n            var result = chartView.updateTransform(seriesModel, ecModel, api, payload);\n            result && result.update && seriesDirtyMap.set(seriesModel.uid, 1);\n          } else {\n            seriesDirtyMap.set(seriesModel.uid, 1);\n          }\n        });\n        clearColorPalette(ecModel);\n\n        this._scheduler.performVisualTasks(ecModel, payload, {\n          setDirty: true,\n          dirtyMap: seriesDirtyMap\n        });\n\n        renderSeries(this, ecModel, api, payload, seriesDirtyMap);\n        performPostUpdateFuncs(ecModel, this._api);\n      },\n      updateView: function (payload) {\n        var ecModel = this._model;\n\n        if (!ecModel) {\n          return;\n        }\n\n        ecModel.setUpdatePayload(payload);\n        ChartView.markUpdateMethod(payload, 'updateView');\n        clearColorPalette(ecModel);\n\n        this._scheduler.performVisualTasks(ecModel, payload, {\n          setDirty: true\n        });\n\n        render(this, this._model, this._api, payload);\n        performPostUpdateFuncs(ecModel, this._api);\n      },\n      updateVisual: function (payload) {\n        var _this = this;\n\n        var ecModel = this._model;\n\n        if (!ecModel) {\n          return;\n        }\n\n        ecModel.setUpdatePayload(payload);\n        ecModel.eachSeries(function (seriesModel) {\n          seriesModel.getData().clearAllVisual();\n        });\n        ChartView.markUpdateMethod(payload, 'updateVisual');\n        clearColorPalette(ecModel);\n\n        this._scheduler.performVisualTasks(ecModel, payload, {\n          visualType: 'visual',\n          setDirty: true\n        });\n\n        ecModel.eachComponent(function (componentType, componentModel) {\n          if (componentType !== 'series') {\n            var componentView = _this.getViewOfComponentModel(componentModel);\n\n            componentView && componentView.__alive && componentView.updateVisual(componentModel, ecModel, _this._api, payload);\n          }\n        });\n        ecModel.eachSeries(function (seriesModel) {\n          var chartView = _this._chartsMap[seriesModel.__viewId];\n          chartView.updateVisual(seriesModel, ecModel, _this._api, payload);\n        });\n        performPostUpdateFuncs(ecModel, this._api);\n      },\n      updateLayout: function (payload) {\n        updateMethods.update.call(this, payload);\n      }\n    };\n\n    doConvertPixel = function (ecIns, methodName, finder, value) {\n      if (ecIns._disposed) {\n        disposedWarning(ecIns.id);\n        return;\n      }\n\n      var ecModel = ecIns._model;\n\n      var coordSysList = ecIns._coordSysMgr.getCoordinateSystems();\n\n      var result;\n      var parsedFinder = modelUtil.parseFinder(ecModel, finder);\n\n      for (var i = 0; i < coordSysList.length; i++) {\n        var coordSys = coordSysList[i];\n\n        if (coordSys[methodName] && (result = coordSys[methodName](ecModel, parsedFinder, value)) != null) {\n          return result;\n        }\n      }\n\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn('No coordinate system that supports ' + methodName + ' found by the given finder.');\n      }\n    };\n\n    updateStreamModes = function (ecIns, ecModel) {\n      var chartsMap = ecIns._chartsMap;\n      var scheduler = ecIns._scheduler;\n      ecModel.eachSeries(function (seriesModel) {\n        scheduler.updateStreamModes(seriesModel, chartsMap[seriesModel.__viewId]);\n      });\n    };\n\n    doDispatchAction = function (payload, silent) {\n      var _this = this;\n\n      var ecModel = this.getModel();\n      var payloadType = payload.type;\n      var escapeConnect = payload.escapeConnect;\n      var actionWrap = actions[payloadType];\n      var actionInfo = actionWrap.actionInfo;\n      var cptTypeTmp = (actionInfo.update || 'update').split(':');\n      var updateMethod = cptTypeTmp.pop();\n      var cptType = cptTypeTmp[0] != null && parseClassType(cptTypeTmp[0]);\n      this[IN_MAIN_PROCESS_KEY] = true;\n      var payloads = [payload];\n      var batched = false;\n\n      if (payload.batch) {\n        batched = true;\n        payloads = zrUtil.map(payload.batch, function (item) {\n          item = zrUtil.defaults(zrUtil.extend({}, item), payload);\n          item.batch = null;\n          return item;\n        });\n      }\n\n      var eventObjBatch = [];\n      var eventObj;\n      var isSelectChange = isSelectChangePayload(payload);\n      var isStatusChange = isHighDownPayload(payload) || isSelectChange;\n      each(payloads, function (batchItem) {\n        eventObj = actionWrap.action(batchItem, _this._model, _this._api);\n        eventObj = eventObj || zrUtil.extend({}, batchItem);\n        eventObj.type = actionInfo.event || eventObj.type;\n        eventObjBatch.push(eventObj);\n\n        if (isStatusChange) {\n          updateDirectly(_this, updateMethod, batchItem, 'series');\n          markStatusToUpdate(_this);\n        } else if (cptType) {\n          updateDirectly(_this, updateMethod, batchItem, cptType.main, cptType.sub);\n        }\n      });\n\n      if (updateMethod !== 'none' && !isStatusChange && !cptType) {\n        if (this[OPTION_UPDATED_KEY]) {\n          prepare(this);\n          updateMethods.update.call(this, payload);\n          this[OPTION_UPDATED_KEY] = false;\n        } else {\n          updateMethods[updateMethod].call(this, payload);\n        }\n      }\n\n      if (batched) {\n        eventObj = {\n          type: actionInfo.event || payloadType,\n          escapeConnect: escapeConnect,\n          batch: eventObjBatch\n        };\n      } else {\n        eventObj = eventObjBatch[0];\n      }\n\n      this[IN_MAIN_PROCESS_KEY] = false;\n\n      if (!silent) {\n        var messageCenter = this._messageCenter;\n        messageCenter.trigger(eventObj.type, eventObj);\n\n        if (isSelectChange) {\n          var newObj = {\n            type: 'selectchanged',\n            escapeConnect: escapeConnect,\n            selected: getAllSelectedIndices(ecModel),\n            isFromClick: payload.isFromClick || false,\n            fromAction: payload.type,\n            fromActionPayload: payload\n          };\n          messageCenter.trigger(newObj.type, newObj);\n        }\n      }\n    };\n\n    flushPendingActions = function (silent) {\n      var pendingActions = this._pendingActions;\n\n      while (pendingActions.length) {\n        var payload = pendingActions.shift();\n        doDispatchAction.call(this, payload, silent);\n      }\n    };\n\n    triggerUpdatedEvent = function (silent) {\n      !silent && this.trigger('updated');\n    };\n\n    bindRenderedEvent = function (zr, ecIns) {\n      zr.on('rendered', function (params) {\n        ecIns.trigger('rendered', params);\n\n        if (zr.animation.isFinished() && !ecIns[OPTION_UPDATED_KEY] && !ecIns._scheduler.unfinished && !ecIns._pendingActions.length) {\n          ecIns.trigger('finished');\n        }\n      });\n    };\n\n    bindMouseEvent = function (zr, ecIns) {\n      zr.on('mouseover', function (e) {\n        var el = e.target;\n        var dispatcher = findEventDispatcher(el, isHighDownDispatcher);\n\n        if (dispatcher) {\n          var ecData = getECData(dispatcher);\n          toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns._api, true);\n          enterEmphasisWhenMouseOver(dispatcher, e);\n          markStatusToUpdate(ecIns);\n        }\n      }).on('mouseout', function (e) {\n        var el = e.target;\n        var dispatcher = findEventDispatcher(el, isHighDownDispatcher);\n\n        if (dispatcher) {\n          var ecData = getECData(dispatcher);\n          toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns._api, false);\n          leaveEmphasisWhenMouseOut(dispatcher, e);\n          markStatusToUpdate(ecIns);\n        }\n      }).on('click', function (e) {\n        var el = e.target;\n        var dispatcher = findEventDispatcher(el, function (target) {\n          return getECData(target).dataIndex != null;\n        }, true);\n\n        if (dispatcher) {\n          var actionType = dispatcher.selected ? 'unselect' : 'select';\n          var ecData = getECData(dispatcher);\n\n          ecIns._api.dispatchAction({\n            type: actionType,\n            dataType: ecData.dataType,\n            dataIndexInside: ecData.dataIndex,\n            seriesIndex: ecData.seriesIndex,\n            isFromClick: true\n          });\n        }\n      });\n    };\n\n    clearColorPalette = function (ecModel) {\n      ecModel.clearColorPalette();\n      ecModel.eachSeries(function (seriesModel) {\n        seriesModel.clearColorPalette();\n      });\n    };\n\n    render = function (ecIns, ecModel, api, payload) {\n      renderComponents(ecIns, ecModel, api, payload);\n      each(ecIns._chartsViews, function (chart) {\n        chart.__alive = false;\n      });\n      renderSeries(ecIns, ecModel, api, payload);\n      each(ecIns._chartsViews, function (chart) {\n        if (!chart.__alive) {\n          chart.remove(ecModel, api);\n        }\n      });\n    };\n\n    renderComponents = function (ecIns, ecModel, api, payload, dirtyList) {\n      each(dirtyList || ecIns._componentsViews, function (componentView) {\n        var componentModel = componentView.__model;\n        clearStates(componentModel, componentView);\n        componentView.render(componentModel, ecModel, api, payload);\n        updateZ(componentModel, componentView);\n        updateStates(componentModel, componentView);\n      });\n    };\n\n    renderSeries = function (ecIns, ecModel, api, payload, dirtyMap) {\n      var scheduler = ecIns._scheduler;\n      var labelManager = ecIns._labelManager;\n      labelManager.clearLabels();\n      var unfinished = false;\n      ecModel.eachSeries(function (seriesModel) {\n        var chartView = ecIns._chartsMap[seriesModel.__viewId];\n        chartView.__alive = true;\n        var renderTask = chartView.renderTask;\n        scheduler.updatePayload(renderTask, payload);\n        clearStates(seriesModel, chartView);\n\n        if (dirtyMap && dirtyMap.get(seriesModel.uid)) {\n          renderTask.dirty();\n        }\n\n        if (renderTask.perform(scheduler.getPerformArgs(renderTask))) {\n          unfinished = true;\n        }\n\n        seriesModel.__transientTransitionOpt = null;\n        chartView.group.silent = !!seriesModel.get('silent');\n        updateBlend(seriesModel, chartView);\n        updateSeriesElementSelection(seriesModel);\n        labelManager.addLabelsOfSeries(chartView);\n      });\n      scheduler.unfinished = unfinished || scheduler.unfinished;\n      labelManager.updateLayoutConfig(api);\n      labelManager.layout(api);\n      labelManager.processLabelsOverall();\n      ecModel.eachSeries(function (seriesModel) {\n        var chartView = ecIns._chartsMap[seriesModel.__viewId];\n        updateZ(seriesModel, chartView);\n        updateStates(seriesModel, chartView);\n      });\n      updateHoverLayerStatus(ecIns, ecModel);\n    };\n\n    performPostUpdateFuncs = function (ecModel, api) {\n      each(postUpdateFuncs, function (func) {\n        func(ecModel, api);\n      });\n    };\n\n    markStatusToUpdate = function (ecIns) {\n      ecIns[STATUS_NEEDS_UPDATE_KEY] = true;\n      ecIns.getZr().wakeUp();\n    };\n\n    applyChangedStates = function (ecIns) {\n      if (!ecIns[STATUS_NEEDS_UPDATE_KEY]) {\n        return;\n      }\n\n      ecIns.getZr().storage.traverse(function (el) {\n        if (graphic.isElementRemoved(el)) {\n          return;\n        }\n\n        applyElementStates(el);\n      });\n      ecIns[STATUS_NEEDS_UPDATE_KEY] = false;\n    };\n\n    function applyElementStates(el) {\n      var newStates = [];\n      var oldStates = el.currentStates;\n\n      for (var i = 0; i < oldStates.length; i++) {\n        var stateName = oldStates[i];\n\n        if (!(stateName === 'emphasis' || stateName === 'blur' || stateName === 'select')) {\n          newStates.push(stateName);\n        }\n      }\n\n      if (el.selected && el.states.select) {\n        newStates.push('select');\n      }\n\n      if (el.hoverState === HOVER_STATE_EMPHASIS && el.states.emphasis) {\n        newStates.push('emphasis');\n      } else if (el.hoverState === HOVER_STATE_BLUR && el.states.blur) {\n        newStates.push('blur');\n      }\n\n      el.useStates(newStates);\n    }\n\n    function updateHoverLayerStatus(ecIns, ecModel) {\n      var zr = ecIns._zr;\n      var storage = zr.storage;\n      var elCount = 0;\n      storage.traverse(function (el) {\n        if (!el.isGroup) {\n          elCount++;\n        }\n      });\n\n      if (elCount > ecModel.get('hoverLayerThreshold') && !env.node && !env.worker) {\n        ecModel.eachSeries(function (seriesModel) {\n          if (seriesModel.preventUsingHoverLayer) {\n            return;\n          }\n\n          var chartView = ecIns._chartsMap[seriesModel.__viewId];\n\n          if (chartView.__alive) {\n            chartView.group.traverse(function (el) {\n              if (el.states.emphasis) {\n                el.states.emphasis.hoverLayer = true;\n              }\n            });\n          }\n        });\n      }\n    }\n\n    ;\n\n    function updateBlend(seriesModel, chartView) {\n      var blendMode = seriesModel.get('blendMode') || null;\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (!env.canvasSupported && blendMode && blendMode !== 'source-over') {\n          console.warn('Only canvas support blendMode');\n        }\n      }\n\n      chartView.group.traverse(function (el) {\n        if (!el.isGroup) {\n          el.style.blend = blendMode;\n        }\n\n        if (el.eachPendingDisplayable) {\n          el.eachPendingDisplayable(function (displayable) {\n            displayable.style.blend = blendMode;\n          });\n        }\n      });\n    }\n\n    ;\n\n    function updateZ(model, view) {\n      if (model.preventAutoZ) {\n        return;\n      }\n\n      var z = model.get('z');\n      var zlevel = model.get('zlevel');\n      view.group.traverse(function (el) {\n        if (!el.isGroup) {\n          z != null && (el.z = z);\n          zlevel != null && (el.zlevel = zlevel);\n          var label = el.getTextContent();\n          var labelLine = el.getTextGuideLine();\n\n          if (label) {\n            label.z = el.z;\n            label.zlevel = el.zlevel;\n            label.z2 = el.z2 + 2;\n          }\n\n          if (labelLine) {\n            var showAbove = el.textGuideLineConfig && el.textGuideLineConfig.showAbove;\n            labelLine.z = el.z;\n            labelLine.zlevel = el.zlevel;\n            labelLine.z2 = el.z2 + (showAbove ? 1 : -1);\n          }\n        }\n      });\n    }\n\n    ;\n\n    function clearStates(model, view) {\n      view.group.traverse(function (el) {\n        if (graphic.isElementRemoved(el)) {\n          return;\n        }\n\n        var textContent = el.getTextContent();\n        var textGuide = el.getTextGuideLine();\n\n        if (el.stateTransition) {\n          el.stateTransition = null;\n        }\n\n        if (textContent && textContent.stateTransition) {\n          textContent.stateTransition = null;\n        }\n\n        if (textGuide && textGuide.stateTransition) {\n          textGuide.stateTransition = null;\n        }\n\n        if (el.hasState()) {\n          el.prevStates = el.currentStates;\n          el.clearStates();\n        } else if (el.prevStates) {\n          el.prevStates = null;\n        }\n      });\n    }\n\n    function updateStates(model, view) {\n      var stateAnimationModel = model.getModel('stateAnimation');\n      var enableAnimation = model.isAnimationEnabled();\n      var duration = stateAnimationModel.get('duration');\n      var stateTransition = duration > 0 ? {\n        duration: duration,\n        delay: stateAnimationModel.get('delay'),\n        easing: stateAnimationModel.get('easing')\n      } : null;\n      view.group.traverse(function (el) {\n        if (el.states && el.states.emphasis) {\n          if (graphic.isElementRemoved(el)) {\n            return;\n          }\n\n          if (el instanceof graphic.Path) {\n            savePathStates(el);\n          }\n\n          if (el.__dirty) {\n            var prevStates = el.prevStates;\n\n            if (prevStates) {\n              el.useStates(prevStates);\n            }\n          }\n\n          if (enableAnimation) {\n            el.stateTransition = stateTransition;\n            var textContent = el.getTextContent();\n            var textGuide = el.getTextGuideLine();\n\n            if (textContent) {\n              textContent.stateTransition = stateTransition;\n            }\n\n            if (textGuide) {\n              textGuide.stateTransition = stateTransition;\n            }\n          }\n\n          if (el.__dirty) {\n            applyElementStates(el);\n          }\n        }\n      });\n    }\n\n    ;\n\n    createExtensionAPI = function (ecIns) {\n      return new (function (_super) {\n        __extends(class_1, _super);\n\n        function class_1() {\n          return _super !== null && _super.apply(this, arguments) || this;\n        }\n\n        class_1.prototype.getCoordinateSystems = function () {\n          return ecIns._coordSysMgr.getCoordinateSystems();\n        };\n\n        class_1.prototype.getComponentByElement = function (el) {\n          while (el) {\n            var modelInfo = el.__ecComponentInfo;\n\n            if (modelInfo != null) {\n              return ecIns._model.getComponent(modelInfo.mainType, modelInfo.index);\n            }\n\n            el = el.parent;\n          }\n        };\n\n        class_1.prototype.enterEmphasis = function (el, highlightDigit) {\n          enterEmphasis(el, highlightDigit);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.leaveEmphasis = function (el, highlightDigit) {\n          leaveEmphasis(el, highlightDigit);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.enterBlur = function (el) {\n          enterBlur(el);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.leaveBlur = function (el) {\n          leaveBlur(el);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.enterSelect = function (el) {\n          enterSelect(el);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.leaveSelect = function (el) {\n          leaveSelect(el);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.getModel = function () {\n          return ecIns.getModel();\n        };\n\n        class_1.prototype.getViewOfComponentModel = function (componentModel) {\n          return ecIns.getViewOfComponentModel(componentModel);\n        };\n\n        class_1.prototype.getViewOfSeriesModel = function (seriesModel) {\n          return ecIns.getViewOfSeriesModel(seriesModel);\n        };\n\n        return class_1;\n      }(ExtensionAPI))(ecIns);\n    };\n\n    enableConnect = function (chart) {\n      function updateConnectedChartsStatus(charts, status) {\n        for (var i = 0; i < charts.length; i++) {\n          var otherChart = charts[i];\n          otherChart[CONNECT_STATUS_KEY] = status;\n        }\n      }\n\n      each(eventActionMap, function (actionType, eventType) {\n        chart._messageCenter.on(eventType, function (event) {\n          if (connectedGroups[chart.group] && chart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_PENDING) {\n            if (event && event.escapeConnect) {\n              return;\n            }\n\n            var action_1 = chart.makeActionFromEvent(event);\n            var otherCharts_1 = [];\n            each(instances, function (otherChart) {\n              if (otherChart !== chart && otherChart.group === chart.group) {\n                otherCharts_1.push(otherChart);\n              }\n            });\n            updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_PENDING);\n            each(otherCharts_1, function (otherChart) {\n              if (otherChart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_UPDATING) {\n                otherChart.dispatchAction(action_1);\n              }\n            });\n            updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_UPDATED);\n          }\n        });\n      });\n    };\n\n    setTransitionOpt = function (chart, transitionOpt) {\n      var ecModel = chart._model;\n      zrUtil.each(modelUtil.normalizeToArray(transitionOpt), function (transOpt) {\n        var errMsg;\n        var fromOpt = transOpt.from;\n        var toOpt = transOpt.to;\n\n        if (toOpt == null) {\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg = '`transition.to` must be specified.';\n          }\n\n          throwError(errMsg);\n        }\n\n        var finderOpt = {\n          includeMainTypes: ['series'],\n          enableAll: false,\n          enableNone: false\n        };\n        var fromResult = fromOpt ? modelUtil.parseFinder(ecModel, fromOpt, finderOpt) : null;\n        var toResult = modelUtil.parseFinder(ecModel, toOpt, finderOpt);\n        var toSeries = toResult.seriesModel;\n\n        if (toSeries == null) {\n          errMsg = '';\n\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg = '`transition` is only supported on series.';\n          }\n        }\n\n        if (fromResult && fromResult.seriesModel !== toSeries) {\n          errMsg = '';\n\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg = '`transition.from` and `transition.to` must be specified to the same series.';\n          }\n        }\n\n        if (errMsg != null) {\n          throwError(errMsg);\n        }\n\n        toSeries.__transientTransitionOpt = {\n          from: fromOpt ? fromOpt.dimension : null,\n          to: toOpt.dimension,\n          dividingMethod: transOpt.dividingMethod\n        };\n      });\n    };\n  }();\n\n  return ECharts;\n}(Eventful);\n\nvar echartsProto = ECharts.prototype;\nechartsProto.on = createRegisterEventWithLowercaseECharts('on');\nechartsProto.off = createRegisterEventWithLowercaseECharts('off');\n\nechartsProto.one = function (eventName, cb, ctx) {\n  var self = this;\n  deprecateLog('ECharts#one is deprecated.');\n\n  function wrapped() {\n    var args2 = [];\n\n    for (var _i = 0; _i < arguments.length; _i++) {\n      args2[_i] = arguments[_i];\n    }\n\n    cb && cb.apply && cb.apply(this, args2);\n    self.off(eventName, wrapped);\n  }\n\n  ;\n  this.on.call(this, eventName, wrapped, ctx);\n};\n\nvar MOUSE_EVENT_NAMES = ['click', 'dblclick', 'mouseover', 'mouseout', 'mousemove', 'mousedown', 'mouseup', 'globalout', 'contextmenu'];\n\nfunction disposedWarning(id) {\n  if (process.env.NODE_ENV !== 'production') {\n    console.warn('Instance ' + id + ' has been disposed');\n  }\n}\n\nvar actions = {};\nvar eventActionMap = {};\nvar dataProcessorFuncs = [];\nvar optionPreprocessorFuncs = [];\nvar postInitFuncs = [];\nvar postUpdateFuncs = [];\nvar visualFuncs = [];\nvar themeStorage = {};\nvar loadingEffects = {};\nvar instances = {};\nvar connectedGroups = {};\nvar idBase = +new Date() - 0;\nvar groupIdBase = +new Date() - 0;\nvar DOM_ATTRIBUTE_KEY = '_echarts_instance_';\nexport function init(dom, theme, opts) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (!dom) {\n      throw new Error('Initialize failed: invalid dom.');\n    }\n  }\n\n  var existInstance = getInstanceByDom(dom);\n\n  if (existInstance) {\n    if (process.env.NODE_ENV !== 'production') {\n      console.warn('There is a chart instance already initialized on the dom.');\n    }\n\n    return existInstance;\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (zrUtil.isDom(dom) && dom.nodeName.toUpperCase() !== 'CANVAS' && (!dom.clientWidth && (!opts || opts.width == null) || !dom.clientHeight && (!opts || opts.height == null))) {\n      console.warn('Can\\'t get DOM width or height. Please check ' + 'dom.clientWidth and dom.clientHeight. They should not be 0.' + 'For example, you may need to call this in the callback ' + 'of window.onload.');\n    }\n  }\n\n  var chart = new ECharts(dom, theme, opts);\n  chart.id = 'ec_' + idBase++;\n  instances[chart.id] = chart;\n  modelUtil.setAttribute(dom, DOM_ATTRIBUTE_KEY, chart.id);\n  enableConnect(chart);\n  each(postInitFuncs, function (postInitFunc) {\n    postInitFunc(chart);\n  });\n  return chart;\n}\nexport function connect(groupId) {\n  if (zrUtil.isArray(groupId)) {\n    var charts = groupId;\n    groupId = null;\n    each(charts, function (chart) {\n      if (chart.group != null) {\n        groupId = chart.group;\n      }\n    });\n    groupId = groupId || 'g_' + groupIdBase++;\n    each(charts, function (chart) {\n      chart.group = groupId;\n    });\n  }\n\n  connectedGroups[groupId] = true;\n  return groupId;\n}\nexport function disConnect(groupId) {\n  connectedGroups[groupId] = false;\n}\nexport var disconnect = disConnect;\nexport function dispose(chart) {\n  if (typeof chart === 'string') {\n    chart = instances[chart];\n  } else if (!(chart instanceof ECharts)) {\n    chart = getInstanceByDom(chart);\n  }\n\n  if (chart instanceof ECharts && !chart.isDisposed()) {\n    chart.dispose();\n  }\n}\nexport function getInstanceByDom(dom) {\n  return instances[modelUtil.getAttribute(dom, DOM_ATTRIBUTE_KEY)];\n}\nexport function getInstanceById(key) {\n  return instances[key];\n}\nexport function registerTheme(name, theme) {\n  themeStorage[name] = theme;\n}\nexport function registerPreprocessor(preprocessorFunc) {\n  if (indexOf(optionPreprocessorFuncs, preprocessorFunc) < 0) {\n    optionPreprocessorFuncs.push(preprocessorFunc);\n  }\n}\nexport function registerProcessor(priority, processor) {\n  normalizeRegister(dataProcessorFuncs, priority, processor, PRIORITY_PROCESSOR_DEFAULT);\n}\nexport function registerPostInit(postInitFunc) {\n  if (indexOf(postInitFuncs, postInitFunc) < 0) {\n    postInitFunc && postInitFuncs.push(postInitFunc);\n  }\n}\nexport function registerPostUpdate(postUpdateFunc) {\n  if (indexOf(postUpdateFuncs, postUpdateFunc) < 0) {\n    postUpdateFunc && postUpdateFuncs.push(postUpdateFunc);\n  }\n}\nexport function registerAction(actionInfo, eventName, action) {\n  if (typeof eventName === 'function') {\n    action = eventName;\n    eventName = '';\n  }\n\n  var actionType = isObject(actionInfo) ? actionInfo.type : [actionInfo, actionInfo = {\n    event: eventName\n  }][0];\n  actionInfo.event = (actionInfo.event || actionType).toLowerCase();\n  eventName = actionInfo.event;\n\n  if (eventActionMap[eventName]) {\n    return;\n  }\n\n  assert(ACTION_REG.test(actionType) && ACTION_REG.test(eventName));\n\n  if (!actions[actionType]) {\n    actions[actionType] = {\n      action: action,\n      actionInfo: actionInfo\n    };\n  }\n\n  eventActionMap[eventName] = actionType;\n}\nexport function registerCoordinateSystem(type, coordSysCreator) {\n  CoordinateSystemManager.register(type, coordSysCreator);\n}\nexport function getCoordinateSystemDimensions(type) {\n  var coordSysCreator = CoordinateSystemManager.get(type);\n\n  if (coordSysCreator) {\n    return coordSysCreator.getDimensionsInfo ? coordSysCreator.getDimensionsInfo() : coordSysCreator.dimensions.slice();\n  }\n}\nexport { registerLocale } from './locale';\n\nfunction registerLayout(priority, layoutTask) {\n  normalizeRegister(visualFuncs, priority, layoutTask, PRIORITY_VISUAL_LAYOUT, 'layout');\n}\n\nfunction registerVisual(priority, visualTask) {\n  normalizeRegister(visualFuncs, priority, visualTask, PRIORITY_VISUAL_CHART, 'visual');\n}\n\nexport { registerLayout, registerVisual };\nvar registeredTasks = [];\n\nfunction normalizeRegister(targetList, priority, fn, defaultPriority, visualType) {\n  if (isFunction(priority) || isObject(priority)) {\n    fn = priority;\n    priority = defaultPriority;\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (isNaN(priority) || priority == null) {\n      throw new Error('Illegal priority');\n    }\n\n    each(targetList, function (wrap) {\n      assert(wrap.__raw !== fn);\n    });\n  }\n\n  if (indexOf(registeredTasks, fn) >= 0) {\n    return;\n  }\n\n  registeredTasks.push(fn);\n  var stageHandler = Scheduler.wrapStageHandler(fn, visualType);\n  stageHandler.__prio = priority;\n  stageHandler.__raw = fn;\n  targetList.push(stageHandler);\n}\n\nexport function registerLoading(name, loadingFx) {\n  loadingEffects[name] = loadingFx;\n}\nexport function setCanvasCreator(creator) {\n  zrUtil.$override('createCanvas', creator);\n}\nexport function registerMap(mapName, geoJson, specialAreas) {\n  mapDataStorage.registerMap(mapName, geoJson, specialAreas);\n}\nexport function getMap(mapName) {\n  var records = mapDataStorage.retrieveMap(mapName);\n  return records && records[0] && {\n    geoJson: records[0].geoJSON,\n    specialAreas: records[0].specialAreas\n  };\n}\nexport var registerTransform = registerExternalTransform;\nregisterVisual(PRIORITY_VISUAL_GLOBAL, seriesStyleTask);\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataStyleTask);\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataColorPaletteTask);\nregisterVisual(PRIORITY_VISUAL_GLOBAL, seriesSymbolTask);\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataSymbolTask);\nregisterVisual(PRIORITY_VISUAL_DECAL, decal);\nregisterPreprocessor(backwardCompat);\nregisterProcessor(PRIORITY_PROCESSOR_DATASTACK, dataStack);\nregisterLoading('default', loadingDefault);\nregisterAction({\n  type: HIGHLIGHT_ACTION_TYPE,\n  event: HIGHLIGHT_ACTION_TYPE,\n  update: HIGHLIGHT_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n  type: DOWNPLAY_ACTION_TYPE,\n  event: DOWNPLAY_ACTION_TYPE,\n  update: DOWNPLAY_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n  type: SELECT_ACTION_TYPE,\n  event: SELECT_ACTION_TYPE,\n  update: SELECT_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n  type: UNSELECT_ACTION_TYPE,\n  event: UNSELECT_ACTION_TYPE,\n  update: UNSELECT_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n  type: TOGGLE_SELECT_ACTION_TYPE,\n  event: TOGGLE_SELECT_ACTION_TYPE,\n  update: TOGGLE_SELECT_ACTION_TYPE\n}, zrUtil.noop);\nregisterTheme('light', lightTheme);\nregisterTheme('dark', darkTheme);\nexport var dataTool = {};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { registerPreprocessor, registerProcessor, registerPostInit, registerPostUpdate, registerAction, registerCoordinateSystem, registerLayout, registerVisual, registerTransform, registerLoading, registerMap, PRIORITY } from './core/echarts';\nimport ComponentView from './view/Component';\nimport ChartView from './view/Chart';\nimport ComponentModel from './model/Component';\nimport SeriesModel from './model/Series';\nimport { isFunction, indexOf, isArray, each } from 'zrender/lib/core/util';\nimport { registerPainter } from 'zrender/lib/zrender';\nvar extensions = [];\nvar extensionRegisters = {\n  registerPreprocessor: registerPreprocessor,\n  registerProcessor: registerProcessor,\n  registerPostInit: registerPostInit,\n  registerPostUpdate: registerPostUpdate,\n  registerAction: registerAction,\n  registerCoordinateSystem: registerCoordinateSystem,\n  registerLayout: registerLayout,\n  registerVisual: registerVisual,\n  registerTransform: registerTransform,\n  registerLoading: registerLoading,\n  registerMap: registerMap,\n  PRIORITY: PRIORITY,\n  ComponentModel: ComponentModel,\n  ComponentView: ComponentView,\n  SeriesModel: SeriesModel,\n  ChartView: ChartView,\n  registerComponentModel: function (ComponentModelClass) {\n    ComponentModel.registerClass(ComponentModelClass);\n  },\n  registerComponentView: function (ComponentViewClass) {\n    ComponentView.registerClass(ComponentViewClass);\n  },\n  registerSeriesModel: function (SeriesModelClass) {\n    SeriesModel.registerClass(SeriesModelClass);\n  },\n  registerChartView: function (ChartViewClass) {\n    ChartView.registerClass(ChartViewClass);\n  },\n  registerSubTypeDefaulter: function (componentType, defaulter) {\n    ComponentModel.registerSubTypeDefaulter(componentType, defaulter);\n  },\n  registerPainter: function (painterType, PainterCtor) {\n    registerPainter(painterType, PainterCtor);\n  }\n};\nexport function use(ext) {\n  if (isArray(ext)) {\n    each(ext, function (singleExt) {\n      use(singleExt);\n    });\n    return;\n  }\n\n  if (indexOf(extensions, ext) >= 0) {\n    return;\n  }\n\n  extensions.push(ext);\n\n  if (isFunction(ext)) {\n    ext = {\n      install: ext\n    };\n  }\n\n  ext.install(extensionRegisters);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nfunction dataIndexMapValueLength(valNumOrArrLengthMoreThan2) {\n  return valNumOrArrLengthMoreThan2 == null ? 0 : valNumOrArrLengthMoreThan2.length || 1;\n}\n\nfunction defaultKeyGetter(item) {\n  return item;\n}\n\nvar DataDiffer = function () {\n  function DataDiffer(oldArr, newArr, oldKeyGetter, newKeyGetter, context, diffMode) {\n    this._old = oldArr;\n    this._new = newArr;\n    this._oldKeyGetter = oldKeyGetter || defaultKeyGetter;\n    this._newKeyGetter = newKeyGetter || defaultKeyGetter;\n    this.context = context;\n    this._diffModeMultiple = diffMode === 'multiple';\n  }\n\n  DataDiffer.prototype.add = function (func) {\n    this._add = func;\n    return this;\n  };\n\n  DataDiffer.prototype.update = function (func) {\n    this._update = func;\n    return this;\n  };\n\n  DataDiffer.prototype.updateManyToOne = function (func) {\n    this._updateManyToOne = func;\n    return this;\n  };\n\n  DataDiffer.prototype.updateOneToMany = function (func) {\n    this._updateOneToMany = func;\n    return this;\n  };\n\n  DataDiffer.prototype.remove = function (func) {\n    this._remove = func;\n    return this;\n  };\n\n  DataDiffer.prototype.execute = function () {\n    this[this._diffModeMultiple ? '_executeMultiple' : '_executeOneToOne']();\n  };\n\n  DataDiffer.prototype._executeOneToOne = function () {\n    var oldArr = this._old;\n    var newArr = this._new;\n    var newDataIndexMap = {};\n    var oldDataKeyArr = new Array(oldArr.length);\n    var newDataKeyArr = new Array(newArr.length);\n\n    this._initIndexMap(oldArr, null, oldDataKeyArr, '_oldKeyGetter');\n\n    this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, '_newKeyGetter');\n\n    for (var i = 0; i < oldArr.length; i++) {\n      var oldKey = oldDataKeyArr[i];\n      var newIdxMapVal = newDataIndexMap[oldKey];\n      var newIdxMapValLen = dataIndexMapValueLength(newIdxMapVal);\n\n      if (newIdxMapValLen > 1) {\n        var newIdx = newIdxMapVal.shift();\n\n        if (newIdxMapVal.length === 1) {\n          newDataIndexMap[oldKey] = newIdxMapVal[0];\n        }\n\n        this._update && this._update(newIdx, i);\n      } else if (newIdxMapValLen === 1) {\n        newDataIndexMap[oldKey] = null;\n        this._update && this._update(newIdxMapVal, i);\n      } else {\n        this._remove && this._remove(i);\n      }\n    }\n\n    this._performRestAdd(newDataKeyArr, newDataIndexMap);\n  };\n\n  DataDiffer.prototype._executeMultiple = function () {\n    var oldArr = this._old;\n    var newArr = this._new;\n    var oldDataIndexMap = {};\n    var newDataIndexMap = {};\n    var oldDataKeyArr = [];\n    var newDataKeyArr = [];\n\n    this._initIndexMap(oldArr, oldDataIndexMap, oldDataKeyArr, '_oldKeyGetter');\n\n    this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, '_newKeyGetter');\n\n    for (var i = 0; i < oldDataKeyArr.length; i++) {\n      var oldKey = oldDataKeyArr[i];\n      var oldIdxMapVal = oldDataIndexMap[oldKey];\n      var newIdxMapVal = newDataIndexMap[oldKey];\n      var oldIdxMapValLen = dataIndexMapValueLength(oldIdxMapVal);\n      var newIdxMapValLen = dataIndexMapValueLength(newIdxMapVal);\n\n      if (oldIdxMapValLen > 1 && newIdxMapValLen === 1) {\n        this._updateManyToOne && this._updateManyToOne(newIdxMapVal, oldIdxMapVal);\n        newDataIndexMap[oldKey] = null;\n      } else if (oldIdxMapValLen === 1 && newIdxMapValLen > 1) {\n        this._updateOneToMany && this._updateOneToMany(newIdxMapVal, oldIdxMapVal);\n        newDataIndexMap[oldKey] = null;\n      } else if (oldIdxMapValLen === 1 && newIdxMapValLen === 1) {\n        this._update && this._update(newIdxMapVal, oldIdxMapVal);\n        newDataIndexMap[oldKey] = null;\n      } else if (oldIdxMapValLen > 1) {\n        for (var i_1 = 0; i_1 < oldIdxMapValLen; i_1++) {\n          this._remove && this._remove(oldIdxMapVal[i_1]);\n        }\n      } else {\n        this._remove && this._remove(oldIdxMapVal);\n      }\n    }\n\n    this._performRestAdd(newDataKeyArr, newDataIndexMap);\n  };\n\n  DataDiffer.prototype._performRestAdd = function (newDataKeyArr, newDataIndexMap) {\n    for (var i = 0; i < newDataKeyArr.length; i++) {\n      var newKey = newDataKeyArr[i];\n      var newIdxMapVal = newDataIndexMap[newKey];\n      var idxMapValLen = dataIndexMapValueLength(newIdxMapVal);\n\n      if (idxMapValLen > 1) {\n        for (var j = 0; j < idxMapValLen; j++) {\n          this._add && this._add(newIdxMapVal[j]);\n        }\n      } else if (idxMapValLen === 1) {\n        this._add && this._add(newIdxMapVal);\n      }\n\n      newDataIndexMap[newKey] = null;\n    }\n  };\n\n  DataDiffer.prototype._initIndexMap = function (arr, map, keyArr, keyGetterName) {\n    var cbModeMultiple = this._diffModeMultiple;\n\n    for (var i = 0; i < arr.length; i++) {\n      var key = '_ec_' + this[keyGetterName](arr[i], i);\n\n      if (!cbModeMultiple) {\n        keyArr[i] = key;\n      }\n\n      if (!map) {\n        continue;\n      }\n\n      var idxMapVal = map[key];\n      var idxMapValLen = dataIndexMapValueLength(idxMapVal);\n\n      if (idxMapValLen === 0) {\n        map[key] = i;\n\n        if (cbModeMultiple) {\n          keyArr.push(key);\n        }\n      } else if (idxMapValLen === 1) {\n        map[key] = [idxMapVal, i];\n      } else {\n        idxMapVal.push(i);\n      }\n    }\n  };\n\n  return DataDiffer;\n}();\n\nexport default DataDiffer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, createHashMap, assert } from 'zrender/lib/core/util';\nimport { VISUAL_DIMENSIONS } from '../../util/types';\nexport function summarizeDimensions(data) {\n  var summary = {};\n  var encode = summary.encode = {};\n  var notExtraCoordDimMap = createHashMap();\n  var defaultedLabel = [];\n  var defaultedTooltip = [];\n  var userOutput = summary.userOutput = {\n    dimensionNames: data.dimensions.slice(),\n    encode: {}\n  };\n  each(data.dimensions, function (dimName) {\n    var dimItem = data.getDimensionInfo(dimName);\n    var coordDim = dimItem.coordDim;\n\n    if (coordDim) {\n      if (process.env.NODE_ENV !== 'production') {\n        assert(VISUAL_DIMENSIONS.get(coordDim) == null);\n      }\n\n      var coordDimIndex = dimItem.coordDimIndex;\n      getOrCreateEncodeArr(encode, coordDim)[coordDimIndex] = dimName;\n\n      if (!dimItem.isExtraCoord) {\n        notExtraCoordDimMap.set(coordDim, 1);\n\n        if (mayLabelDimType(dimItem.type)) {\n          defaultedLabel[0] = dimName;\n        }\n\n        getOrCreateEncodeArr(userOutput.encode, coordDim)[coordDimIndex] = dimItem.index;\n      }\n\n      if (dimItem.defaultTooltip) {\n        defaultedTooltip.push(dimName);\n      }\n    }\n\n    VISUAL_DIMENSIONS.each(function (v, otherDim) {\n      var encodeArr = getOrCreateEncodeArr(encode, otherDim);\n      var dimIndex = dimItem.otherDims[otherDim];\n\n      if (dimIndex != null && dimIndex !== false) {\n        encodeArr[dimIndex] = dimItem.name;\n      }\n    });\n  });\n  var dataDimsOnCoord = [];\n  var encodeFirstDimNotExtra = {};\n  notExtraCoordDimMap.each(function (v, coordDim) {\n    var dimArr = encode[coordDim];\n    encodeFirstDimNotExtra[coordDim] = dimArr[0];\n    dataDimsOnCoord = dataDimsOnCoord.concat(dimArr);\n  });\n  summary.dataDimsOnCoord = dataDimsOnCoord;\n  summary.encodeFirstDimNotExtra = encodeFirstDimNotExtra;\n  var encodeLabel = encode.label;\n\n  if (encodeLabel && encodeLabel.length) {\n    defaultedLabel = encodeLabel.slice();\n  }\n\n  var encodeTooltip = encode.tooltip;\n\n  if (encodeTooltip && encodeTooltip.length) {\n    defaultedTooltip = encodeTooltip.slice();\n  } else if (!defaultedTooltip.length) {\n    defaultedTooltip = defaultedLabel.slice();\n  }\n\n  encode.defaultedLabel = defaultedLabel;\n  encode.defaultedTooltip = defaultedTooltip;\n  return summary;\n}\n\nfunction getOrCreateEncodeArr(encode, dim) {\n  if (!encode.hasOwnProperty(dim)) {\n    encode[dim] = [];\n  }\n\n  return encode[dim];\n}\n\nexport function getDimensionTypeByAxis(axisType) {\n  return axisType === 'category' ? 'ordinal' : axisType === 'time' ? 'time' : 'float';\n}\n\nfunction mayLabelDimType(dimType) {\n  return !(dimType === 'ordinal' || dimType === 'time');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nvar DataDimensionInfo = function () {\n  function DataDimensionInfo(opt) {\n    this.otherDims = {};\n\n    if (opt != null) {\n      zrUtil.extend(this, opt);\n    }\n  }\n\n  return DataDimensionInfo;\n}();\n\n;\nexport default DataDimensionInfo;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Model from '../model/Model';\nimport DataDiffer from './DataDiffer';\nimport { DefaultDataProvider } from './helper/dataProvider';\nimport { summarizeDimensions } from './helper/dimensionHelper';\nimport DataDimensionInfo from './DataDimensionInfo';\nimport { SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ORIGINAL } from '../util/types';\nimport { isDataItemOption, convertOptionIdName } from '../util/model';\nimport { getECData } from '../util/innerStore';\nimport { parseDataValue } from './helper/dataValueHelper';\nimport { isSourceInstance } from './Source';\nvar mathFloor = Math.floor;\nvar isObject = zrUtil.isObject;\nvar map = zrUtil.map;\nvar UNDEFINED = 'undefined';\nvar INDEX_NOT_FOUND = -1;\nvar ID_PREFIX = 'e\\0\\0';\nvar dataCtors = {\n  'float': typeof Float64Array === UNDEFINED ? Array : Float64Array,\n  'int': typeof Int32Array === UNDEFINED ? Array : Int32Array,\n  'ordinal': Array,\n  'number': Array,\n  'time': Array\n};\nvar CtorUint32Array = typeof Uint32Array === UNDEFINED ? Array : Uint32Array;\nvar CtorInt32Array = typeof Int32Array === UNDEFINED ? Array : Int32Array;\nvar CtorUint16Array = typeof Uint16Array === UNDEFINED ? Array : Uint16Array;\nvar TRANSFERABLE_PROPERTIES = ['hasItemOption', '_nameList', '_idList', '_invertedIndicesMap', '_rawData', '_dimValueGetter', '_count', '_rawCount', '_nameDimIdx', '_idDimIdx', '_nameRepeatCount'];\nvar CLONE_PROPERTIES = ['_extent', '_approximateExtent', '_rawExtent'];\nvar defaultDimValueGetters;\nvar prepareInvertedIndex;\nvar getIndicesCtor;\nvar prepareStorage;\nvar getRawIndexWithoutIndices;\nvar getRawIndexWithIndices;\nvar getId;\nvar getIdNameFromStore;\nvar makeIdFromName;\nvar normalizeDimensions;\nvar validateDimensions;\nvar cloneListForMapAndSample;\nvar getInitialExtent;\nvar setItemDataAndSeriesIndex;\nvar transferProperties;\n\nvar List = function () {\n  function List(dimensions, hostModel) {\n    this.type = 'list';\n    this._count = 0;\n    this._rawCount = 0;\n    this._storage = {};\n    this._storageArr = [];\n    this._nameList = [];\n    this._idList = [];\n    this._visual = {};\n    this._layout = {};\n    this._itemVisuals = [];\n    this._itemLayouts = [];\n    this._graphicEls = [];\n    this._rawExtent = {};\n    this._extent = {};\n    this._approximateExtent = {};\n    this._calculationInfo = {};\n    this.hasItemOption = true;\n    this.TRANSFERABLE_METHODS = ['cloneShallow', 'downSample', 'lttbDownSample', 'map'];\n    this.CHANGABLE_METHODS = ['filterSelf', 'selectRange'];\n    this.DOWNSAMPLE_METHODS = ['downSample', 'lttbDownSample'];\n    this.getRawIndex = getRawIndexWithoutIndices;\n    dimensions = dimensions || ['x', 'y'];\n    var dimensionInfos = {};\n    var dimensionNames = [];\n    var invertedIndicesMap = {};\n\n    for (var i = 0; i < dimensions.length; i++) {\n      var dimInfoInput = dimensions[i];\n      var dimensionInfo = zrUtil.isString(dimInfoInput) ? new DataDimensionInfo({\n        name: dimInfoInput\n      }) : !(dimInfoInput instanceof DataDimensionInfo) ? new DataDimensionInfo(dimInfoInput) : dimInfoInput;\n      var dimensionName = dimensionInfo.name;\n      dimensionInfo.type = dimensionInfo.type || 'float';\n\n      if (!dimensionInfo.coordDim) {\n        dimensionInfo.coordDim = dimensionName;\n        dimensionInfo.coordDimIndex = 0;\n      }\n\n      var otherDims = dimensionInfo.otherDims = dimensionInfo.otherDims || {};\n      dimensionNames.push(dimensionName);\n      dimensionInfos[dimensionName] = dimensionInfo;\n      dimensionInfo.index = i;\n\n      if (dimensionInfo.createInvertedIndices) {\n        invertedIndicesMap[dimensionName] = [];\n      }\n\n      if (otherDims.itemName === 0) {\n        this._nameDimIdx = i;\n        this._nameOrdinalMeta = dimensionInfo.ordinalMeta;\n      }\n\n      if (otherDims.itemId === 0) {\n        this._idDimIdx = i;\n        this._idOrdinalMeta = dimensionInfo.ordinalMeta;\n      }\n    }\n\n    this.dimensions = dimensionNames;\n    this._dimensionInfos = dimensionInfos;\n    this.hostModel = hostModel;\n    this._dimensionsSummary = summarizeDimensions(this);\n    this._invertedIndicesMap = invertedIndicesMap;\n    this.userOutput = this._dimensionsSummary.userOutput;\n  }\n\n  List.prototype.getDimension = function (dim) {\n    if (typeof dim === 'number' || !isNaN(dim) && !this._dimensionInfos.hasOwnProperty(dim)) {\n      dim = this.dimensions[dim];\n    }\n\n    return dim;\n  };\n\n  List.prototype.getDimensionInfo = function (dim) {\n    return this._dimensionInfos[this.getDimension(dim)];\n  };\n\n  List.prototype.getDimensionsOnCoord = function () {\n    return this._dimensionsSummary.dataDimsOnCoord.slice();\n  };\n\n  List.prototype.mapDimension = function (coordDim, idx) {\n    var dimensionsSummary = this._dimensionsSummary;\n\n    if (idx == null) {\n      return dimensionsSummary.encodeFirstDimNotExtra[coordDim];\n    }\n\n    var dims = dimensionsSummary.encode[coordDim];\n    return dims ? dims[idx] : null;\n  };\n\n  List.prototype.mapDimensionsAll = function (coordDim) {\n    var dimensionsSummary = this._dimensionsSummary;\n    var dims = dimensionsSummary.encode[coordDim];\n    return (dims || []).slice();\n  };\n\n  List.prototype.initData = function (data, nameList, dimValueGetter) {\n    var notProvider = isSourceInstance(data) || zrUtil.isArrayLike(data);\n    var provider = notProvider ? new DefaultDataProvider(data, this.dimensions.length) : data;\n\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.assert(notProvider || zrUtil.isFunction(provider.getItem) && zrUtil.isFunction(provider.count), 'Inavlid data provider.');\n    }\n\n    this._rawData = provider;\n    var sourceFormat = provider.getSource().sourceFormat;\n    this._storage = {};\n    this._indices = null;\n    this._dontMakeIdFromName = this._idDimIdx != null || sourceFormat === SOURCE_FORMAT_TYPED_ARRAY || !!provider.fillStorage;\n    this._nameList = (nameList || []).slice();\n    this._idList = [];\n    this._nameRepeatCount = {};\n\n    if (!dimValueGetter) {\n      this.hasItemOption = false;\n    }\n\n    this.defaultDimValueGetter = defaultDimValueGetters[sourceFormat];\n    this._dimValueGetter = dimValueGetter = dimValueGetter || this.defaultDimValueGetter;\n    this._dimValueGetterArrayRows = defaultDimValueGetters.arrayRows;\n    this._rawExtent = {};\n\n    this._initDataFromProvider(0, provider.count());\n\n    if (provider.pure) {\n      this.hasItemOption = false;\n    }\n  };\n\n  List.prototype.getProvider = function () {\n    return this._rawData;\n  };\n\n  List.prototype.appendData = function (data) {\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.assert(!this._indices, 'appendData can only be called on raw data.');\n    }\n\n    var rawData = this._rawData;\n    var start = this.count();\n    rawData.appendData(data);\n    var end = rawData.count();\n\n    if (!rawData.persistent) {\n      end += start;\n    }\n\n    this._initDataFromProvider(start, end, true);\n  };\n\n  List.prototype.appendValues = function (values, names) {\n    var storage = this._storage;\n    var dimensions = this.dimensions;\n    var dimLen = dimensions.length;\n    var rawExtent = this._rawExtent;\n    var start = this.count();\n    var end = start + Math.max(values.length, names ? names.length : 0);\n\n    for (var i = 0; i < dimLen; i++) {\n      var dim = dimensions[i];\n\n      if (!rawExtent[dim]) {\n        rawExtent[dim] = getInitialExtent();\n      }\n\n      prepareStorage(storage, this._dimensionInfos[dim], end, true);\n    }\n\n    var rawExtentArr = map(dimensions, function (dim) {\n      return rawExtent[dim];\n    });\n    var storageArr = this._storageArr = map(dimensions, function (dim) {\n      return storage[dim];\n    });\n    var emptyDataItem = [];\n\n    for (var idx = start; idx < end; idx++) {\n      var sourceIdx = idx - start;\n\n      for (var dimIdx = 0; dimIdx < dimLen; dimIdx++) {\n        var dim = dimensions[dimIdx];\n\n        var val = this._dimValueGetterArrayRows(values[sourceIdx] || emptyDataItem, dim, sourceIdx, dimIdx);\n\n        storageArr[dimIdx][idx] = val;\n        var dimRawExtent = rawExtentArr[dimIdx];\n        val < dimRawExtent[0] && (dimRawExtent[0] = val);\n        val > dimRawExtent[1] && (dimRawExtent[1] = val);\n      }\n\n      if (names) {\n        this._nameList[idx] = names[sourceIdx];\n\n        if (!this._dontMakeIdFromName) {\n          makeIdFromName(this, idx);\n        }\n      }\n    }\n\n    this._rawCount = this._count = end;\n    this._extent = {};\n    prepareInvertedIndex(this);\n  };\n\n  List.prototype._initDataFromProvider = function (start, end, append) {\n    if (start >= end) {\n      return;\n    }\n\n    var rawData = this._rawData;\n    var storage = this._storage;\n    var dimensions = this.dimensions;\n    var dimLen = dimensions.length;\n    var dimensionInfoMap = this._dimensionInfos;\n    var nameList = this._nameList;\n    var idList = this._idList;\n    var rawExtent = this._rawExtent;\n    var sourceFormat = rawData.getSource().sourceFormat;\n    var isFormatOriginal = sourceFormat === SOURCE_FORMAT_ORIGINAL;\n\n    for (var i = 0; i < dimLen; i++) {\n      var dim = dimensions[i];\n\n      if (!rawExtent[dim]) {\n        rawExtent[dim] = getInitialExtent();\n      }\n\n      prepareStorage(storage, dimensionInfoMap[dim], end, append);\n    }\n\n    var storageArr = this._storageArr = map(dimensions, function (dim) {\n      return storage[dim];\n    });\n    var rawExtentArr = map(dimensions, function (dim) {\n      return rawExtent[dim];\n    });\n\n    if (rawData.fillStorage) {\n      rawData.fillStorage(start, end, storageArr, rawExtentArr);\n    } else {\n      var dataItem = [];\n\n      for (var idx = start; idx < end; idx++) {\n        dataItem = rawData.getItem(idx, dataItem);\n\n        for (var dimIdx = 0; dimIdx < dimLen; dimIdx++) {\n          var dim = dimensions[dimIdx];\n          var dimStorage = storageArr[dimIdx];\n\n          var val = this._dimValueGetter(dataItem, dim, idx, dimIdx);\n\n          dimStorage[idx] = val;\n          var dimRawExtent = rawExtentArr[dimIdx];\n          val < dimRawExtent[0] && (dimRawExtent[0] = val);\n          val > dimRawExtent[1] && (dimRawExtent[1] = val);\n        }\n\n        if (isFormatOriginal && !rawData.pure && dataItem) {\n          var itemName = dataItem.name;\n\n          if (nameList[idx] == null && itemName != null) {\n            nameList[idx] = convertOptionIdName(itemName, null);\n          }\n\n          var itemId = dataItem.id;\n\n          if (idList[idx] == null && itemId != null) {\n            idList[idx] = convertOptionIdName(itemId, null);\n          }\n        }\n\n        if (!this._dontMakeIdFromName) {\n          makeIdFromName(this, idx);\n        }\n      }\n    }\n\n    if (!rawData.persistent && rawData.clean) {\n      rawData.clean();\n    }\n\n    this._rawCount = this._count = end;\n    this._extent = {};\n    prepareInvertedIndex(this);\n  };\n\n  List.prototype.count = function () {\n    return this._count;\n  };\n\n  List.prototype.getIndices = function () {\n    var newIndices;\n    var indices = this._indices;\n\n    if (indices) {\n      var Ctor = indices.constructor;\n      var thisCount = this._count;\n\n      if (Ctor === Array) {\n        newIndices = new Ctor(thisCount);\n\n        for (var i = 0; i < thisCount; i++) {\n          newIndices[i] = indices[i];\n        }\n      } else {\n        newIndices = new Ctor(indices.buffer, 0, thisCount);\n      }\n    } else {\n      var Ctor = getIndicesCtor(this);\n      newIndices = new Ctor(this.count());\n\n      for (var i = 0; i < newIndices.length; i++) {\n        newIndices[i] = i;\n      }\n    }\n\n    return newIndices;\n  };\n\n  List.prototype.getByDimIdx = function (dimIdx, idx) {\n    if (!(idx >= 0 && idx < this._count)) {\n      return NaN;\n    }\n\n    var dimStore = this._storageArr[dimIdx];\n    return dimStore ? dimStore[this.getRawIndex(idx)] : NaN;\n  };\n\n  List.prototype.get = function (dim, idx) {\n    if (!(idx >= 0 && idx < this._count)) {\n      return NaN;\n    }\n\n    var dimStore = this._storage[dim];\n    return dimStore ? dimStore[this.getRawIndex(idx)] : NaN;\n  };\n\n  List.prototype.getByRawIndex = function (dim, rawIdx) {\n    if (!(rawIdx >= 0 && rawIdx < this._rawCount)) {\n      return NaN;\n    }\n\n    var dimStore = this._storage[dim];\n    return dimStore ? dimStore[rawIdx] : NaN;\n  };\n\n  List.prototype.getValues = function (dimensions, idx) {\n    var values = [];\n\n    if (!zrUtil.isArray(dimensions)) {\n      idx = dimensions;\n      dimensions = this.dimensions;\n    }\n\n    for (var i = 0, len = dimensions.length; i < len; i++) {\n      values.push(this.get(dimensions[i], idx));\n    }\n\n    return values;\n  };\n\n  List.prototype.hasValue = function (idx) {\n    var dataDimsOnCoord = this._dimensionsSummary.dataDimsOnCoord;\n\n    for (var i = 0, len = dataDimsOnCoord.length; i < len; i++) {\n      if (isNaN(this.get(dataDimsOnCoord[i], idx))) {\n        return false;\n      }\n    }\n\n    return true;\n  };\n\n  List.prototype.getDataExtent = function (dim) {\n    dim = this.getDimension(dim);\n    var dimData = this._storage[dim];\n    var initialExtent = getInitialExtent();\n\n    if (!dimData) {\n      return initialExtent;\n    }\n\n    var currEnd = this.count();\n    var useRaw = !this._indices;\n    var dimExtent;\n\n    if (useRaw) {\n      return this._rawExtent[dim].slice();\n    }\n\n    dimExtent = this._extent[dim];\n\n    if (dimExtent) {\n      return dimExtent.slice();\n    }\n\n    dimExtent = initialExtent;\n    var min = dimExtent[0];\n    var max = dimExtent[1];\n\n    for (var i = 0; i < currEnd; i++) {\n      var rawIdx = this.getRawIndex(i);\n      var value = dimData[rawIdx];\n      value < min && (min = value);\n      value > max && (max = value);\n    }\n\n    dimExtent = [min, max];\n    this._extent[dim] = dimExtent;\n    return dimExtent;\n  };\n\n  List.prototype.getApproximateExtent = function (dim) {\n    dim = this.getDimension(dim);\n    return this._approximateExtent[dim] || this.getDataExtent(dim);\n  };\n\n  List.prototype.setApproximateExtent = function (extent, dim) {\n    dim = this.getDimension(dim);\n    this._approximateExtent[dim] = extent.slice();\n  };\n\n  List.prototype.getCalculationInfo = function (key) {\n    return this._calculationInfo[key];\n  };\n\n  List.prototype.setCalculationInfo = function (key, value) {\n    isObject(key) ? zrUtil.extend(this._calculationInfo, key) : this._calculationInfo[key] = value;\n  };\n\n  List.prototype.getSum = function (dim) {\n    var dimData = this._storage[dim];\n    var sum = 0;\n\n    if (dimData) {\n      for (var i = 0, len = this.count(); i < len; i++) {\n        var value = this.get(dim, i);\n\n        if (!isNaN(value)) {\n          sum += value;\n        }\n      }\n    }\n\n    return sum;\n  };\n\n  List.prototype.getMedian = function (dim) {\n    var dimDataArray = [];\n    this.each(dim, function (val) {\n      if (!isNaN(val)) {\n        dimDataArray.push(val);\n      }\n    });\n    var sortedDimDataArray = dimDataArray.sort(function (a, b) {\n      return a - b;\n    });\n    var len = this.count();\n    return len === 0 ? 0 : len % 2 === 1 ? sortedDimDataArray[(len - 1) / 2] : (sortedDimDataArray[len / 2] + sortedDimDataArray[len / 2 - 1]) / 2;\n  };\n\n  List.prototype.rawIndexOf = function (dim, value) {\n    var invertedIndices = dim && this._invertedIndicesMap[dim];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!invertedIndices) {\n        throw new Error('Do not supported yet');\n      }\n    }\n\n    var rawIndex = invertedIndices[value];\n\n    if (rawIndex == null || isNaN(rawIndex)) {\n      return INDEX_NOT_FOUND;\n    }\n\n    return rawIndex;\n  };\n\n  List.prototype.indexOfName = function (name) {\n    for (var i = 0, len = this.count(); i < len; i++) {\n      if (this.getName(i) === name) {\n        return i;\n      }\n    }\n\n    return -1;\n  };\n\n  List.prototype.indexOfRawIndex = function (rawIndex) {\n    if (rawIndex >= this._rawCount || rawIndex < 0) {\n      return -1;\n    }\n\n    if (!this._indices) {\n      return rawIndex;\n    }\n\n    var indices = this._indices;\n    var rawDataIndex = indices[rawIndex];\n\n    if (rawDataIndex != null && rawDataIndex < this._count && rawDataIndex === rawIndex) {\n      return rawIndex;\n    }\n\n    var left = 0;\n    var right = this._count - 1;\n\n    while (left <= right) {\n      var mid = (left + right) / 2 | 0;\n\n      if (indices[mid] < rawIndex) {\n        left = mid + 1;\n      } else if (indices[mid] > rawIndex) {\n        right = mid - 1;\n      } else {\n        return mid;\n      }\n    }\n\n    return -1;\n  };\n\n  List.prototype.indicesOfNearest = function (dim, value, maxDistance) {\n    var storage = this._storage;\n    var dimData = storage[dim];\n    var nearestIndices = [];\n\n    if (!dimData) {\n      return nearestIndices;\n    }\n\n    if (maxDistance == null) {\n      maxDistance = Infinity;\n    }\n\n    var minDist = Infinity;\n    var minDiff = -1;\n    var nearestIndicesLen = 0;\n\n    for (var i = 0, len = this.count(); i < len; i++) {\n      var dataIndex = this.getRawIndex(i);\n      var diff = value - dimData[dataIndex];\n      var dist = Math.abs(diff);\n\n      if (dist <= maxDistance) {\n        if (dist < minDist || dist === minDist && diff >= 0 && minDiff < 0) {\n          minDist = dist;\n          minDiff = diff;\n          nearestIndicesLen = 0;\n        }\n\n        if (diff === minDiff) {\n          nearestIndices[nearestIndicesLen++] = i;\n        }\n      }\n    }\n\n    nearestIndices.length = nearestIndicesLen;\n    return nearestIndices;\n  };\n\n  List.prototype.getRawDataItem = function (idx) {\n    if (!this._rawData.persistent) {\n      var val = [];\n\n      for (var i = 0; i < this.dimensions.length; i++) {\n        var dim = this.dimensions[i];\n        val.push(this.get(dim, idx));\n      }\n\n      return val;\n    } else {\n      return this._rawData.getItem(this.getRawIndex(idx));\n    }\n  };\n\n  List.prototype.getName = function (idx) {\n    var rawIndex = this.getRawIndex(idx);\n    var name = this._nameList[rawIndex];\n\n    if (name == null && this._nameDimIdx != null) {\n      name = getIdNameFromStore(this, this._nameDimIdx, this._nameOrdinalMeta, rawIndex);\n    }\n\n    if (name == null) {\n      name = '';\n    }\n\n    return name;\n  };\n\n  List.prototype.getId = function (idx) {\n    return getId(this, this.getRawIndex(idx));\n  };\n\n  List.prototype.each = function (dims, cb, ctx, ctxCompat) {\n    'use strict';\n\n    var _this = this;\n\n    if (!this._count) {\n      return;\n    }\n\n    if (typeof dims === 'function') {\n      ctxCompat = ctx;\n      ctx = cb;\n      cb = dims;\n      dims = [];\n    }\n\n    var fCtx = ctx || ctxCompat || this;\n    var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\n\n    if (process.env.NODE_ENV !== 'production') {\n      validateDimensions(this, dimNames);\n    }\n\n    var dimSize = dimNames.length;\n    var dimIndices = map(dimNames, function (dimName) {\n      return _this._dimensionInfos[dimName].index;\n    });\n    var storageArr = this._storageArr;\n\n    for (var i = 0, len = this.count(); i < len; i++) {\n      var rawIdx = this.getRawIndex(i);\n\n      switch (dimSize) {\n        case 0:\n          cb.call(fCtx, i);\n          break;\n\n        case 1:\n          cb.call(fCtx, storageArr[dimIndices[0]][rawIdx], i);\n          break;\n\n        case 2:\n          cb.call(fCtx, storageArr[dimIndices[0]][rawIdx], storageArr[dimIndices[1]][rawIdx], i);\n          break;\n\n        default:\n          var k = 0;\n          var value = [];\n\n          for (; k < dimSize; k++) {\n            value[k] = storageArr[dimIndices[k]][rawIdx];\n          }\n\n          value[k] = i;\n          cb.apply(fCtx, value);\n      }\n    }\n  };\n\n  List.prototype.filterSelf = function (dims, cb, ctx, ctxCompat) {\n    'use strict';\n\n    var _this = this;\n\n    if (!this._count) {\n      return;\n    }\n\n    if (typeof dims === 'function') {\n      ctxCompat = ctx;\n      ctx = cb;\n      cb = dims;\n      dims = [];\n    }\n\n    var fCtx = ctx || ctxCompat || this;\n    var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\n\n    if (process.env.NODE_ENV !== 'production') {\n      validateDimensions(this, dimNames);\n    }\n\n    var count = this.count();\n    var Ctor = getIndicesCtor(this);\n    var newIndices = new Ctor(count);\n    var value = [];\n    var dimSize = dimNames.length;\n    var offset = 0;\n    var dimIndices = map(dimNames, function (dimName) {\n      return _this._dimensionInfos[dimName].index;\n    });\n    var dim0 = dimIndices[0];\n    var storageArr = this._storageArr;\n\n    for (var i = 0; i < count; i++) {\n      var keep = void 0;\n      var rawIdx = this.getRawIndex(i);\n\n      if (dimSize === 0) {\n        keep = cb.call(fCtx, i);\n      } else if (dimSize === 1) {\n        var val = storageArr[dim0][rawIdx];\n        keep = cb.call(fCtx, val, i);\n      } else {\n        var k = 0;\n\n        for (; k < dimSize; k++) {\n          value[k] = storageArr[dimIndices[k]][rawIdx];\n        }\n\n        value[k] = i;\n        keep = cb.apply(fCtx, value);\n      }\n\n      if (keep) {\n        newIndices[offset++] = rawIdx;\n      }\n    }\n\n    if (offset < count) {\n      this._indices = newIndices;\n    }\n\n    this._count = offset;\n    this._extent = {};\n    this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n    return this;\n  };\n\n  List.prototype.selectRange = function (range) {\n    'use strict';\n\n    var _this = this;\n\n    var len = this._count;\n\n    if (!len) {\n      return;\n    }\n\n    var dimensions = [];\n\n    for (var dim in range) {\n      if (range.hasOwnProperty(dim)) {\n        dimensions.push(dim);\n      }\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      validateDimensions(this, dimensions);\n    }\n\n    var dimSize = dimensions.length;\n\n    if (!dimSize) {\n      return;\n    }\n\n    var originalCount = this.count();\n    var Ctor = getIndicesCtor(this);\n    var newIndices = new Ctor(originalCount);\n    var offset = 0;\n    var dim0 = dimensions[0];\n    var dimIndices = map(dimensions, function (dimName) {\n      return _this._dimensionInfos[dimName].index;\n    });\n    var min = range[dim0][0];\n    var max = range[dim0][1];\n    var storageArr = this._storageArr;\n    var quickFinished = false;\n\n    if (!this._indices) {\n      var idx = 0;\n\n      if (dimSize === 1) {\n        var dimStorage = storageArr[dimIndices[0]];\n\n        for (var i = 0; i < len; i++) {\n          var val = dimStorage[i];\n\n          if (val >= min && val <= max || isNaN(val)) {\n            newIndices[offset++] = idx;\n          }\n\n          idx++;\n        }\n\n        quickFinished = true;\n      } else if (dimSize === 2) {\n        var dimStorage = storageArr[dimIndices[0]];\n        var dimStorage2 = storageArr[dimIndices[1]];\n        var min2 = range[dimensions[1]][0];\n        var max2 = range[dimensions[1]][1];\n\n        for (var i = 0; i < len; i++) {\n          var val = dimStorage[i];\n          var val2 = dimStorage2[i];\n\n          if ((val >= min && val <= max || isNaN(val)) && (val2 >= min2 && val2 <= max2 || isNaN(val2))) {\n            newIndices[offset++] = idx;\n          }\n\n          idx++;\n        }\n\n        quickFinished = true;\n      }\n    }\n\n    if (!quickFinished) {\n      if (dimSize === 1) {\n        for (var i = 0; i < originalCount; i++) {\n          var rawIndex = this.getRawIndex(i);\n          var val = storageArr[dimIndices[0]][rawIndex];\n\n          if (val >= min && val <= max || isNaN(val)) {\n            newIndices[offset++] = rawIndex;\n          }\n        }\n      } else {\n        for (var i = 0; i < originalCount; i++) {\n          var keep = true;\n          var rawIndex = this.getRawIndex(i);\n\n          for (var k = 0; k < dimSize; k++) {\n            var dimk = dimensions[k];\n            var val = storageArr[dimIndices[k]][rawIndex];\n\n            if (val < range[dimk][0] || val > range[dimk][1]) {\n              keep = false;\n            }\n          }\n\n          if (keep) {\n            newIndices[offset++] = this.getRawIndex(i);\n          }\n        }\n      }\n    }\n\n    if (offset < originalCount) {\n      this._indices = newIndices;\n    }\n\n    this._count = offset;\n    this._extent = {};\n    this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n    return this;\n  };\n\n  List.prototype.mapArray = function (dims, cb, ctx, ctxCompat) {\n    'use strict';\n\n    if (typeof dims === 'function') {\n      ctxCompat = ctx;\n      ctx = cb;\n      cb = dims;\n      dims = [];\n    }\n\n    ctx = ctx || ctxCompat || this;\n    var result = [];\n    this.each(dims, function () {\n      result.push(cb && cb.apply(this, arguments));\n    }, ctx);\n    return result;\n  };\n\n  List.prototype.map = function (dims, cb, ctx, ctxCompat) {\n    'use strict';\n\n    var fCtx = ctx || ctxCompat || this;\n    var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\n\n    if (process.env.NODE_ENV !== 'production') {\n      validateDimensions(this, dimNames);\n    }\n\n    var list = cloneListForMapAndSample(this, dimNames);\n    var storage = list._storage;\n    list._indices = this._indices;\n    list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n    var tmpRetValue = [];\n    var dimSize = dimNames.length;\n    var dataCount = this.count();\n    var values = [];\n    var rawExtent = list._rawExtent;\n\n    for (var dataIndex = 0; dataIndex < dataCount; dataIndex++) {\n      for (var dimIndex = 0; dimIndex < dimSize; dimIndex++) {\n        values[dimIndex] = this.get(dimNames[dimIndex], dataIndex);\n      }\n\n      values[dimSize] = dataIndex;\n      var retValue = cb && cb.apply(fCtx, values);\n\n      if (retValue != null) {\n        if (typeof retValue !== 'object') {\n          tmpRetValue[0] = retValue;\n          retValue = tmpRetValue;\n        }\n\n        var rawIndex = this.getRawIndex(dataIndex);\n\n        for (var i = 0; i < retValue.length; i++) {\n          var dim = dimNames[i];\n          var val = retValue[i];\n          var rawExtentOnDim = rawExtent[dim];\n          var dimStore = storage[dim];\n\n          if (dimStore) {\n            dimStore[rawIndex] = val;\n          }\n\n          if (val < rawExtentOnDim[0]) {\n            rawExtentOnDim[0] = val;\n          }\n\n          if (val > rawExtentOnDim[1]) {\n            rawExtentOnDim[1] = val;\n          }\n        }\n      }\n    }\n\n    return list;\n  };\n\n  List.prototype.downSample = function (dimension, rate, sampleValue, sampleIndex) {\n    var list = cloneListForMapAndSample(this, [dimension]);\n    var targetStorage = list._storage;\n    var frameValues = [];\n    var frameSize = mathFloor(1 / rate);\n    var dimStore = targetStorage[dimension];\n    var len = this.count();\n    var rawExtentOnDim = list._rawExtent[dimension];\n    var newIndices = new (getIndicesCtor(this))(len);\n    var offset = 0;\n\n    for (var i = 0; i < len; i += frameSize) {\n      if (frameSize > len - i) {\n        frameSize = len - i;\n        frameValues.length = frameSize;\n      }\n\n      for (var k = 0; k < frameSize; k++) {\n        var dataIdx = this.getRawIndex(i + k);\n        frameValues[k] = dimStore[dataIdx];\n      }\n\n      var value = sampleValue(frameValues);\n      var sampleFrameIdx = this.getRawIndex(Math.min(i + sampleIndex(frameValues, value) || 0, len - 1));\n      dimStore[sampleFrameIdx] = value;\n\n      if (value < rawExtentOnDim[0]) {\n        rawExtentOnDim[0] = value;\n      }\n\n      if (value > rawExtentOnDim[1]) {\n        rawExtentOnDim[1] = value;\n      }\n\n      newIndices[offset++] = sampleFrameIdx;\n    }\n\n    list._count = offset;\n    list._indices = newIndices;\n    list.getRawIndex = getRawIndexWithIndices;\n    return list;\n  };\n\n  List.prototype.lttbDownSample = function (valueDimension, rate) {\n    var list = cloneListForMapAndSample(this, []);\n    var targetStorage = list._storage;\n    var dimStore = targetStorage[valueDimension];\n    var len = this.count();\n    var newIndices = new (getIndicesCtor(this))(len);\n    var sampledIndex = 0;\n    var frameSize = mathFloor(1 / rate);\n    var currentRawIndex = this.getRawIndex(0);\n    var maxArea;\n    var area;\n    var nextRawIndex;\n    newIndices[sampledIndex++] = currentRawIndex;\n\n    for (var i = 1; i < len - 1; i += frameSize) {\n      var nextFrameStart = Math.min(i + frameSize, len - 1);\n      var nextFrameEnd = Math.min(i + frameSize * 2, len);\n      var avgX = (nextFrameEnd + nextFrameStart) / 2;\n      var avgY = 0;\n\n      for (var idx = nextFrameStart; idx < nextFrameEnd; idx++) {\n        var rawIndex = this.getRawIndex(idx);\n        var y = dimStore[rawIndex];\n\n        if (isNaN(y)) {\n          continue;\n        }\n\n        avgY += y;\n      }\n\n      avgY /= nextFrameEnd - nextFrameStart;\n      var frameStart = i;\n      var frameEnd = Math.min(i + frameSize, len);\n      var pointAX = i - 1;\n      var pointAY = dimStore[currentRawIndex];\n      maxArea = -1;\n      nextRawIndex = frameStart;\n\n      for (var idx = frameStart; idx < frameEnd; idx++) {\n        var rawIndex = this.getRawIndex(idx);\n        var y = dimStore[rawIndex];\n\n        if (isNaN(y)) {\n          continue;\n        }\n\n        area = Math.abs((pointAX - avgX) * (y - pointAY) - (pointAX - idx) * (avgY - pointAY));\n\n        if (area > maxArea) {\n          maxArea = area;\n          nextRawIndex = rawIndex;\n        }\n      }\n\n      newIndices[sampledIndex++] = nextRawIndex;\n      currentRawIndex = nextRawIndex;\n    }\n\n    newIndices[sampledIndex++] = this.getRawIndex(len - 1);\n    list._count = sampledIndex;\n    list._indices = newIndices;\n    list.getRawIndex = getRawIndexWithIndices;\n    return list;\n  };\n\n  List.prototype.getItemModel = function (idx) {\n    var hostModel = this.hostModel;\n    var dataItem = this.getRawDataItem(idx);\n    return new Model(dataItem, hostModel, hostModel && hostModel.ecModel);\n  };\n\n  List.prototype.diff = function (otherList) {\n    var thisList = this;\n    return new DataDiffer(otherList ? otherList.getIndices() : [], this.getIndices(), function (idx) {\n      return getId(otherList, idx);\n    }, function (idx) {\n      return getId(thisList, idx);\n    });\n  };\n\n  List.prototype.getVisual = function (key) {\n    var visual = this._visual;\n    return visual && visual[key];\n  };\n\n  List.prototype.setVisual = function (kvObj, val) {\n    this._visual = this._visual || {};\n\n    if (isObject(kvObj)) {\n      zrUtil.extend(this._visual, kvObj);\n    } else {\n      this._visual[kvObj] = val;\n    }\n  };\n\n  List.prototype.getItemVisual = function (idx, key) {\n    var itemVisual = this._itemVisuals[idx];\n    var val = itemVisual && itemVisual[key];\n\n    if (val == null) {\n      return this.getVisual(key);\n    }\n\n    return val;\n  };\n\n  List.prototype.hasItemVisual = function () {\n    return this._itemVisuals.length > 0;\n  };\n\n  List.prototype.ensureUniqueItemVisual = function (idx, key) {\n    var itemVisuals = this._itemVisuals;\n    var itemVisual = itemVisuals[idx];\n\n    if (!itemVisual) {\n      itemVisual = itemVisuals[idx] = {};\n    }\n\n    var val = itemVisual[key];\n\n    if (val == null) {\n      val = this.getVisual(key);\n\n      if (zrUtil.isArray(val)) {\n        val = val.slice();\n      } else if (isObject(val)) {\n        val = zrUtil.extend({}, val);\n      }\n\n      itemVisual[key] = val;\n    }\n\n    return val;\n  };\n\n  List.prototype.setItemVisual = function (idx, key, value) {\n    var itemVisual = this._itemVisuals[idx] || {};\n    this._itemVisuals[idx] = itemVisual;\n\n    if (isObject(key)) {\n      zrUtil.extend(itemVisual, key);\n    } else {\n      itemVisual[key] = value;\n    }\n  };\n\n  List.prototype.clearAllVisual = function () {\n    this._visual = {};\n    this._itemVisuals = [];\n  };\n\n  List.prototype.setLayout = function (key, val) {\n    if (isObject(key)) {\n      for (var name_1 in key) {\n        if (key.hasOwnProperty(name_1)) {\n          this.setLayout(name_1, key[name_1]);\n        }\n      }\n\n      return;\n    }\n\n    this._layout[key] = val;\n  };\n\n  List.prototype.getLayout = function (key) {\n    return this._layout[key];\n  };\n\n  List.prototype.getItemLayout = function (idx) {\n    return this._itemLayouts[idx];\n  };\n\n  List.prototype.setItemLayout = function (idx, layout, merge) {\n    this._itemLayouts[idx] = merge ? zrUtil.extend(this._itemLayouts[idx] || {}, layout) : layout;\n  };\n\n  List.prototype.clearItemLayouts = function () {\n    this._itemLayouts.length = 0;\n  };\n\n  List.prototype.setItemGraphicEl = function (idx, el) {\n    var hostModel = this.hostModel;\n\n    if (el) {\n      var ecData = getECData(el);\n      ecData.dataIndex = idx;\n      ecData.dataType = this.dataType;\n      ecData.seriesIndex = hostModel && hostModel.seriesIndex;\n\n      if (el.type === 'group') {\n        el.traverse(setItemDataAndSeriesIndex, el);\n      }\n    }\n\n    this._graphicEls[idx] = el;\n  };\n\n  List.prototype.getItemGraphicEl = function (idx) {\n    return this._graphicEls[idx];\n  };\n\n  List.prototype.eachItemGraphicEl = function (cb, context) {\n    zrUtil.each(this._graphicEls, function (el, idx) {\n      if (el) {\n        cb && cb.call(context, el, idx);\n      }\n    });\n  };\n\n  List.prototype.cloneShallow = function (list) {\n    if (!list) {\n      var dimensionInfoList = map(this.dimensions, this.getDimensionInfo, this);\n      list = new List(dimensionInfoList, this.hostModel);\n    }\n\n    list._storage = this._storage;\n    list._storageArr = this._storageArr;\n    transferProperties(list, this);\n\n    if (this._indices) {\n      var Ctor = this._indices.constructor;\n\n      if (Ctor === Array) {\n        var thisCount = this._indices.length;\n        list._indices = new Ctor(thisCount);\n\n        for (var i = 0; i < thisCount; i++) {\n          list._indices[i] = this._indices[i];\n        }\n      } else {\n        list._indices = new Ctor(this._indices);\n      }\n    } else {\n      list._indices = null;\n    }\n\n    list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n    return list;\n  };\n\n  List.prototype.wrapMethod = function (methodName, injectFunction) {\n    var originalMethod = this[methodName];\n\n    if (typeof originalMethod !== 'function') {\n      return;\n    }\n\n    this.__wrappedMethods = this.__wrappedMethods || [];\n\n    this.__wrappedMethods.push(methodName);\n\n    this[methodName] = function () {\n      var res = originalMethod.apply(this, arguments);\n      return injectFunction.apply(this, [res].concat(zrUtil.slice(arguments)));\n    };\n  };\n\n  List.internalField = function () {\n    defaultDimValueGetters = {\n      arrayRows: getDimValueSimply,\n      objectRows: function (dataItem, dimName, dataIndex, dimIndex) {\n        return parseDataValue(dataItem[dimName], this._dimensionInfos[dimName]);\n      },\n      keyedColumns: getDimValueSimply,\n      original: function (dataItem, dimName, dataIndex, dimIndex) {\n        var value = dataItem && (dataItem.value == null ? dataItem : dataItem.value);\n\n        if (!this._rawData.pure && isDataItemOption(dataItem)) {\n          this.hasItemOption = true;\n        }\n\n        return parseDataValue(value instanceof Array ? value[dimIndex] : value, this._dimensionInfos[dimName]);\n      },\n      typedArray: function (dataItem, dimName, dataIndex, dimIndex) {\n        return dataItem[dimIndex];\n      }\n    };\n\n    function getDimValueSimply(dataItem, dimName, dataIndex, dimIndex) {\n      return parseDataValue(dataItem[dimIndex], this._dimensionInfos[dimName]);\n    }\n\n    prepareInvertedIndex = function (list) {\n      var invertedIndicesMap = list._invertedIndicesMap;\n      zrUtil.each(invertedIndicesMap, function (invertedIndices, dim) {\n        var dimInfo = list._dimensionInfos[dim];\n        var ordinalMeta = dimInfo.ordinalMeta;\n\n        if (ordinalMeta) {\n          invertedIndices = invertedIndicesMap[dim] = new CtorInt32Array(ordinalMeta.categories.length);\n\n          for (var i = 0; i < invertedIndices.length; i++) {\n            invertedIndices[i] = INDEX_NOT_FOUND;\n          }\n\n          for (var i = 0; i < list._count; i++) {\n            invertedIndices[list.get(dim, i)] = i;\n          }\n        }\n      });\n    };\n\n    getIdNameFromStore = function (list, dimIdx, ordinalMeta, rawIndex) {\n      var val;\n      var chunk = list._storageArr[dimIdx];\n\n      if (chunk) {\n        val = chunk[rawIndex];\n\n        if (ordinalMeta && ordinalMeta.categories.length) {\n          val = ordinalMeta.categories[val];\n        }\n      }\n\n      return convertOptionIdName(val, null);\n    };\n\n    getIndicesCtor = function (list) {\n      return list._rawCount > 65535 ? CtorUint32Array : CtorUint16Array;\n    };\n\n    prepareStorage = function (storage, dimInfo, end, append) {\n      var DataCtor = dataCtors[dimInfo.type];\n      var dim = dimInfo.name;\n\n      if (append) {\n        var oldStore = storage[dim];\n        var oldLen = oldStore && oldStore.length;\n\n        if (!(oldLen === end)) {\n          var newStore = new DataCtor(end);\n\n          for (var j = 0; j < oldLen; j++) {\n            newStore[j] = oldStore[j];\n          }\n\n          storage[dim] = newStore;\n        }\n      } else {\n        storage[dim] = new DataCtor(end);\n      }\n    };\n\n    getRawIndexWithoutIndices = function (idx) {\n      return idx;\n    };\n\n    getRawIndexWithIndices = function (idx) {\n      if (idx < this._count && idx >= 0) {\n        return this._indices[idx];\n      }\n\n      return -1;\n    };\n\n    getId = function (list, rawIndex) {\n      var id = list._idList[rawIndex];\n\n      if (id == null && list._idDimIdx != null) {\n        id = getIdNameFromStore(list, list._idDimIdx, list._idOrdinalMeta, rawIndex);\n      }\n\n      if (id == null) {\n        id = ID_PREFIX + rawIndex;\n      }\n\n      return id;\n    };\n\n    normalizeDimensions = function (dimensions) {\n      if (!zrUtil.isArray(dimensions)) {\n        dimensions = dimensions != null ? [dimensions] : [];\n      }\n\n      return dimensions;\n    };\n\n    validateDimensions = function (list, dims) {\n      for (var i = 0; i < dims.length; i++) {\n        if (!list._dimensionInfos[dims[i]]) {\n          console.error('Unkown dimension ' + dims[i]);\n        }\n      }\n    };\n\n    cloneListForMapAndSample = function (original, excludeDimensions) {\n      var allDimensions = original.dimensions;\n      var list = new List(map(allDimensions, original.getDimensionInfo, original), original.hostModel);\n      transferProperties(list, original);\n      var storage = list._storage = {};\n      var originalStorage = original._storage;\n      var storageArr = list._storageArr = [];\n\n      for (var i = 0; i < allDimensions.length; i++) {\n        var dim = allDimensions[i];\n\n        if (originalStorage[dim]) {\n          if (zrUtil.indexOf(excludeDimensions, dim) >= 0) {\n            storage[dim] = cloneChunk(originalStorage[dim]);\n            list._rawExtent[dim] = getInitialExtent();\n            list._extent[dim] = null;\n          } else {\n            storage[dim] = originalStorage[dim];\n          }\n\n          storageArr.push(storage[dim]);\n        }\n      }\n\n      return list;\n    };\n\n    function cloneChunk(originalChunk) {\n      var Ctor = originalChunk.constructor;\n      return Ctor === Array ? originalChunk.slice() : new Ctor(originalChunk);\n    }\n\n    getInitialExtent = function () {\n      return [Infinity, -Infinity];\n    };\n\n    setItemDataAndSeriesIndex = function (child) {\n      var childECData = getECData(child);\n      var thisECData = getECData(this);\n      childECData.seriesIndex = thisECData.seriesIndex;\n      childECData.dataIndex = thisECData.dataIndex;\n      childECData.dataType = thisECData.dataType;\n    };\n\n    transferProperties = function (target, source) {\n      zrUtil.each(TRANSFERABLE_PROPERTIES.concat(source.__wrappedMethods || []), function (propName) {\n        if (source.hasOwnProperty(propName)) {\n          target[propName] = source[propName];\n        }\n      });\n      target.__wrappedMethods = source.__wrappedMethods;\n      zrUtil.each(CLONE_PROPERTIES, function (propName) {\n        target[propName] = zrUtil.clone(source[propName]);\n      });\n      target._calculationInfo = zrUtil.extend({}, source._calculationInfo);\n    };\n\n    makeIdFromName = function (list, idx) {\n      var nameList = list._nameList;\n      var idList = list._idList;\n      var nameDimIdx = list._nameDimIdx;\n      var idDimIdx = list._idDimIdx;\n      var name = nameList[idx];\n      var id = idList[idx];\n\n      if (name == null && nameDimIdx != null) {\n        nameList[idx] = name = getIdNameFromStore(list, nameDimIdx, list._nameOrdinalMeta, idx);\n      }\n\n      if (id == null && idDimIdx != null) {\n        idList[idx] = id = getIdNameFromStore(list, idDimIdx, list._idOrdinalMeta, idx);\n      }\n\n      if (id == null && name != null) {\n        var nameRepeatCount = list._nameRepeatCount;\n        var nmCnt = nameRepeatCount[name] = (nameRepeatCount[name] || 0) + 1;\n        id = name;\n\n        if (nmCnt > 1) {\n          id += '__ec__' + nmCnt;\n        }\n\n        idList[idx] = id;\n      }\n    };\n  }();\n\n  return List;\n}();\n\nexport default List;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, each, isString, defaults, extend, isObject, clone } from 'zrender/lib/core/util';\nimport { normalizeToArray } from '../../util/model';\nimport { guessOrdinal, BE_ORDINAL } from './sourceHelper';\nimport { createSourceFromSeriesDataOption, isSourceInstance } from '../Source';\nimport { VISUAL_DIMENSIONS } from '../../util/types';\nimport DataDimensionInfo from '../DataDimensionInfo';\n\nfunction completeDimensions(sysDims, source, opt) {\n  if (!isSourceInstance(source)) {\n    source = createSourceFromSeriesDataOption(source);\n  }\n\n  opt = opt || {};\n  sysDims = (sysDims || []).slice();\n  var dimsDef = (opt.dimsDef || []).slice();\n  var dataDimNameMap = createHashMap();\n  var coordDimNameMap = createHashMap();\n  var result = [];\n  var dimCount = getDimCount(source, sysDims, dimsDef, opt.dimCount);\n\n  for (var i = 0; i < dimCount; i++) {\n    var dimDefItemRaw = dimsDef[i];\n    var dimDefItem = dimsDef[i] = extend({}, isObject(dimDefItemRaw) ? dimDefItemRaw : {\n      name: dimDefItemRaw\n    });\n    var userDimName = dimDefItem.name;\n    var resultItem = result[i] = new DataDimensionInfo();\n\n    if (userDimName != null && dataDimNameMap.get(userDimName) == null) {\n      resultItem.name = resultItem.displayName = userDimName;\n      dataDimNameMap.set(userDimName, i);\n    }\n\n    dimDefItem.type != null && (resultItem.type = dimDefItem.type);\n    dimDefItem.displayName != null && (resultItem.displayName = dimDefItem.displayName);\n  }\n\n  var encodeDef = opt.encodeDef;\n\n  if (!encodeDef && opt.encodeDefaulter) {\n    encodeDef = opt.encodeDefaulter(source, dimCount);\n  }\n\n  var encodeDefMap = createHashMap(encodeDef);\n  encodeDefMap.each(function (dataDimsRaw, coordDim) {\n    var dataDims = normalizeToArray(dataDimsRaw).slice();\n\n    if (dataDims.length === 1 && !isString(dataDims[0]) && dataDims[0] < 0) {\n      encodeDefMap.set(coordDim, false);\n      return;\n    }\n\n    var validDataDims = encodeDefMap.set(coordDim, []);\n    each(dataDims, function (resultDimIdxOrName, idx) {\n      var resultDimIdx = isString(resultDimIdxOrName) ? dataDimNameMap.get(resultDimIdxOrName) : resultDimIdxOrName;\n\n      if (resultDimIdx != null && resultDimIdx < dimCount) {\n        validDataDims[idx] = resultDimIdx;\n        applyDim(result[resultDimIdx], coordDim, idx);\n      }\n    });\n  });\n  var availDimIdx = 0;\n  each(sysDims, function (sysDimItemRaw) {\n    var coordDim;\n    var sysDimItemDimsDef;\n    var sysDimItemOtherDims;\n    var sysDimItem;\n\n    if (isString(sysDimItemRaw)) {\n      coordDim = sysDimItemRaw;\n      sysDimItem = {};\n    } else {\n      sysDimItem = sysDimItemRaw;\n      coordDim = sysDimItem.name;\n      var ordinalMeta = sysDimItem.ordinalMeta;\n      sysDimItem.ordinalMeta = null;\n      sysDimItem = clone(sysDimItem);\n      sysDimItem.ordinalMeta = ordinalMeta;\n      sysDimItemDimsDef = sysDimItem.dimsDef;\n      sysDimItemOtherDims = sysDimItem.otherDims;\n      sysDimItem.name = sysDimItem.coordDim = sysDimItem.coordDimIndex = sysDimItem.dimsDef = sysDimItem.otherDims = null;\n    }\n\n    var dataDims = encodeDefMap.get(coordDim);\n\n    if (dataDims === false) {\n      return;\n    }\n\n    dataDims = normalizeToArray(dataDims);\n\n    if (!dataDims.length) {\n      for (var i = 0; i < (sysDimItemDimsDef && sysDimItemDimsDef.length || 1); i++) {\n        while (availDimIdx < result.length && result[availDimIdx].coordDim != null) {\n          availDimIdx++;\n        }\n\n        availDimIdx < result.length && dataDims.push(availDimIdx++);\n      }\n    }\n\n    each(dataDims, function (resultDimIdx, coordDimIndex) {\n      var resultItem = result[resultDimIdx];\n      applyDim(defaults(resultItem, sysDimItem), coordDim, coordDimIndex);\n\n      if (resultItem.name == null && sysDimItemDimsDef) {\n        var sysDimItemDimsDefItem = sysDimItemDimsDef[coordDimIndex];\n        !isObject(sysDimItemDimsDefItem) && (sysDimItemDimsDefItem = {\n          name: sysDimItemDimsDefItem\n        });\n        resultItem.name = resultItem.displayName = sysDimItemDimsDefItem.name;\n        resultItem.defaultTooltip = sysDimItemDimsDefItem.defaultTooltip;\n      }\n\n      sysDimItemOtherDims && defaults(resultItem.otherDims, sysDimItemOtherDims);\n    });\n  });\n\n  function applyDim(resultItem, coordDim, coordDimIndex) {\n    if (VISUAL_DIMENSIONS.get(coordDim) != null) {\n      resultItem.otherDims[coordDim] = coordDimIndex;\n    } else {\n      resultItem.coordDim = coordDim;\n      resultItem.coordDimIndex = coordDimIndex;\n      coordDimNameMap.set(coordDim, true);\n    }\n  }\n\n  var generateCoord = opt.generateCoord;\n  var generateCoordCount = opt.generateCoordCount;\n  var fromZero = generateCoordCount != null;\n  generateCoordCount = generateCoord ? generateCoordCount || 1 : 0;\n  var extra = generateCoord || 'value';\n\n  for (var resultDimIdx = 0; resultDimIdx < dimCount; resultDimIdx++) {\n    var resultItem = result[resultDimIdx] = result[resultDimIdx] || new DataDimensionInfo();\n    var coordDim = resultItem.coordDim;\n\n    if (coordDim == null) {\n      resultItem.coordDim = genName(extra, coordDimNameMap, fromZero);\n      resultItem.coordDimIndex = 0;\n\n      if (!generateCoord || generateCoordCount <= 0) {\n        resultItem.isExtraCoord = true;\n      }\n\n      generateCoordCount--;\n    }\n\n    resultItem.name == null && (resultItem.name = genName(resultItem.coordDim, dataDimNameMap, false));\n\n    if (resultItem.type == null && (guessOrdinal(source, resultDimIdx) === BE_ORDINAL.Must || resultItem.isExtraCoord && (resultItem.otherDims.itemName != null || resultItem.otherDims.seriesName != null))) {\n      resultItem.type = 'ordinal';\n    }\n  }\n\n  return result;\n}\n\nfunction getDimCount(source, sysDims, dimsDef, optDimCount) {\n  var dimCount = Math.max(source.dimensionsDetectedCount || 1, sysDims.length, dimsDef.length, optDimCount || 0);\n  each(sysDims, function (sysDimItem) {\n    var sysDimItemDimsDef;\n\n    if (isObject(sysDimItem) && (sysDimItemDimsDef = sysDimItem.dimsDef)) {\n      dimCount = Math.max(dimCount, sysDimItemDimsDef.length);\n    }\n  });\n  return dimCount;\n}\n\nfunction genName(name, map, fromZero) {\n  if (fromZero || map.get(name) != null) {\n    var i = 0;\n\n    while (map.get(name + i) != null) {\n      i++;\n    }\n\n    name += i;\n  }\n\n  map.set(name, true);\n  return name;\n}\n\nexport default completeDimensions;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport completeDimensions from './completeDimensions';\nexport default function createDimensions(source, opt) {\n  opt = opt || {};\n  return completeDimensions(opt.coordDimensions || [], source, {\n    dimsDef: opt.dimensionsDefine || source.dimensionsDefine,\n    encodeDef: opt.encodeDefine || source.encodeDefine,\n    dimCount: opt.dimensionsCount,\n    encodeDefaulter: opt.encodeDefaulter,\n    generateCoord: opt.generateCoord,\n    generateCoordCount: opt.generateCoordCount\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, retrieve, each } from 'zrender/lib/core/util';\nimport { SINGLE_REFERRING } from '../util/model';\n\nvar CoordSysInfo = function () {\n  function CoordSysInfo(coordSysName) {\n    this.coordSysDims = [];\n    this.axisMap = createHashMap();\n    this.categoryAxisMap = createHashMap();\n    this.coordSysName = coordSysName;\n  }\n\n  return CoordSysInfo;\n}();\n\nexport function getCoordSysInfoBySeries(seriesModel) {\n  var coordSysName = seriesModel.get('coordinateSystem');\n  var result = new CoordSysInfo(coordSysName);\n  var fetch = fetchers[coordSysName];\n\n  if (fetch) {\n    fetch(seriesModel, result, result.axisMap, result.categoryAxisMap);\n    return result;\n  }\n}\nvar fetchers = {\n  cartesian2d: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var xAxisModel = seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0];\n    var yAxisModel = seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!xAxisModel) {\n        throw new Error('xAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('xAxisId'), 0) + '\" not found');\n      }\n\n      if (!yAxisModel) {\n        throw new Error('yAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('yAxisId'), 0) + '\" not found');\n      }\n    }\n\n    result.coordSysDims = ['x', 'y'];\n    axisMap.set('x', xAxisModel);\n    axisMap.set('y', yAxisModel);\n\n    if (isCategory(xAxisModel)) {\n      categoryAxisMap.set('x', xAxisModel);\n      result.firstCategoryDimIndex = 0;\n    }\n\n    if (isCategory(yAxisModel)) {\n      categoryAxisMap.set('y', yAxisModel);\n      result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\n    }\n  },\n  singleAxis: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var singleAxisModel = seriesModel.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!singleAxisModel) {\n        throw new Error('singleAxis should be specified.');\n      }\n    }\n\n    result.coordSysDims = ['single'];\n    axisMap.set('single', singleAxisModel);\n\n    if (isCategory(singleAxisModel)) {\n      categoryAxisMap.set('single', singleAxisModel);\n      result.firstCategoryDimIndex = 0;\n    }\n  },\n  polar: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var polarModel = seriesModel.getReferringComponents('polar', SINGLE_REFERRING).models[0];\n    var radiusAxisModel = polarModel.findAxisModel('radiusAxis');\n    var angleAxisModel = polarModel.findAxisModel('angleAxis');\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!angleAxisModel) {\n        throw new Error('angleAxis option not found');\n      }\n\n      if (!radiusAxisModel) {\n        throw new Error('radiusAxis option not found');\n      }\n    }\n\n    result.coordSysDims = ['radius', 'angle'];\n    axisMap.set('radius', radiusAxisModel);\n    axisMap.set('angle', angleAxisModel);\n\n    if (isCategory(radiusAxisModel)) {\n      categoryAxisMap.set('radius', radiusAxisModel);\n      result.firstCategoryDimIndex = 0;\n    }\n\n    if (isCategory(angleAxisModel)) {\n      categoryAxisMap.set('angle', angleAxisModel);\n      result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\n    }\n  },\n  geo: function (seriesModel, result, axisMap, categoryAxisMap) {\n    result.coordSysDims = ['lng', 'lat'];\n  },\n  parallel: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var ecModel = seriesModel.ecModel;\n    var parallelModel = ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\n    var coordSysDims = result.coordSysDims = parallelModel.dimensions.slice();\n    each(parallelModel.parallelAxisIndex, function (axisIndex, index) {\n      var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\n      var axisDim = coordSysDims[index];\n      axisMap.set(axisDim, axisModel);\n\n      if (isCategory(axisModel)) {\n        categoryAxisMap.set(axisDim, axisModel);\n\n        if (result.firstCategoryDimIndex == null) {\n          result.firstCategoryDimIndex = index;\n        }\n      }\n    });\n  }\n};\n\nfunction isCategory(axisModel) {\n  return axisModel.get('type') === 'category';\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, isString } from 'zrender/lib/core/util';\nexport function enableDataStack(seriesModel, dimensionInfoList, opt) {\n  opt = opt || {};\n  var byIndex = opt.byIndex;\n  var stackedCoordDimension = opt.stackedCoordDimension;\n  var mayStack = !!(seriesModel && seriesModel.get('stack'));\n  var stackedByDimInfo;\n  var stackedDimInfo;\n  var stackResultDimension;\n  var stackedOverDimension;\n  each(dimensionInfoList, function (dimensionInfo, index) {\n    if (isString(dimensionInfo)) {\n      dimensionInfoList[index] = dimensionInfo = {\n        name: dimensionInfo\n      };\n    }\n\n    if (mayStack && !dimensionInfo.isExtraCoord) {\n      if (!byIndex && !stackedByDimInfo && dimensionInfo.ordinalMeta) {\n        stackedByDimInfo = dimensionInfo;\n      }\n\n      if (!stackedDimInfo && dimensionInfo.type !== 'ordinal' && dimensionInfo.type !== 'time' && (!stackedCoordDimension || stackedCoordDimension === dimensionInfo.coordDim)) {\n        stackedDimInfo = dimensionInfo;\n      }\n    }\n  });\n\n  if (stackedDimInfo && !byIndex && !stackedByDimInfo) {\n    byIndex = true;\n  }\n\n  if (stackedDimInfo) {\n    stackResultDimension = '__\\0ecstackresult';\n    stackedOverDimension = '__\\0ecstackedover';\n\n    if (stackedByDimInfo) {\n      stackedByDimInfo.createInvertedIndices = true;\n    }\n\n    var stackedDimCoordDim_1 = stackedDimInfo.coordDim;\n    var stackedDimType = stackedDimInfo.type;\n    var stackedDimCoordIndex_1 = 0;\n    each(dimensionInfoList, function (dimensionInfo) {\n      if (dimensionInfo.coordDim === stackedDimCoordDim_1) {\n        stackedDimCoordIndex_1++;\n      }\n    });\n    dimensionInfoList.push({\n      name: stackResultDimension,\n      coordDim: stackedDimCoordDim_1,\n      coordDimIndex: stackedDimCoordIndex_1,\n      type: stackedDimType,\n      isExtraCoord: true,\n      isCalculationCoord: true\n    });\n    stackedDimCoordIndex_1++;\n    dimensionInfoList.push({\n      name: stackedOverDimension,\n      coordDim: stackedOverDimension,\n      coordDimIndex: stackedDimCoordIndex_1,\n      type: stackedDimType,\n      isExtraCoord: true,\n      isCalculationCoord: true\n    });\n  }\n\n  return {\n    stackedDimension: stackedDimInfo && stackedDimInfo.name,\n    stackedByDimension: stackedByDimInfo && stackedByDimInfo.name,\n    isStackedByIndex: byIndex,\n    stackedOverDimension: stackedOverDimension,\n    stackResultDimension: stackResultDimension\n  };\n}\nexport function isDimensionStacked(data, stackedDim) {\n  return !!stackedDim && stackedDim === data.getCalculationInfo('stackedDimension');\n}\nexport function getStackedDimension(data, targetDim) {\n  return isDimensionStacked(data, targetDim) ? data.getCalculationInfo('stackResultDimension') : targetDim;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport List from '../../data/List';\nimport createDimensions from '../../data/helper/createDimensions';\nimport { getDimensionTypeByAxis } from '../../data/helper/dimensionHelper';\nimport { getDataItemValue } from '../../util/model';\nimport CoordinateSystem from '../../core/CoordinateSystem';\nimport { getCoordSysInfoBySeries } from '../../model/referHelper';\nimport { createSourceFromSeriesDataOption, isSourceInstance } from '../../data/Source';\nimport { enableDataStack } from '../../data/helper/dataStackHelper';\nimport { makeSeriesEncodeForAxisCoordSys } from '../../data/helper/sourceHelper';\nimport { SOURCE_FORMAT_ORIGINAL } from '../../util/types';\n\nfunction createListFromArray(source, seriesModel, opt) {\n  opt = opt || {};\n\n  if (!isSourceInstance(source)) {\n    source = createSourceFromSeriesDataOption(source);\n  }\n\n  var coordSysName = seriesModel.get('coordinateSystem');\n  var registeredCoordSys = CoordinateSystem.get(coordSysName);\n  var coordSysInfo = getCoordSysInfoBySeries(seriesModel);\n  var coordSysDimDefs;\n\n  if (coordSysInfo && coordSysInfo.coordSysDims) {\n    coordSysDimDefs = zrUtil.map(coordSysInfo.coordSysDims, function (dim) {\n      var dimInfo = {\n        name: dim\n      };\n      var axisModel = coordSysInfo.axisMap.get(dim);\n\n      if (axisModel) {\n        var axisType = axisModel.get('type');\n        dimInfo.type = getDimensionTypeByAxis(axisType);\n      }\n\n      return dimInfo;\n    });\n  }\n\n  if (!coordSysDimDefs) {\n    coordSysDimDefs = registeredCoordSys && (registeredCoordSys.getDimensionsInfo ? registeredCoordSys.getDimensionsInfo() : registeredCoordSys.dimensions.slice()) || ['x', 'y'];\n  }\n\n  var useEncodeDefaulter = opt.useEncodeDefaulter;\n  var dimInfoList = createDimensions(source, {\n    coordDimensions: coordSysDimDefs,\n    generateCoord: opt.generateCoord,\n    encodeDefaulter: zrUtil.isFunction(useEncodeDefaulter) ? useEncodeDefaulter : useEncodeDefaulter ? zrUtil.curry(makeSeriesEncodeForAxisCoordSys, coordSysDimDefs, seriesModel) : null\n  });\n  var firstCategoryDimIndex;\n  var hasNameEncode;\n  coordSysInfo && zrUtil.each(dimInfoList, function (dimInfo, dimIndex) {\n    var coordDim = dimInfo.coordDim;\n    var categoryAxisModel = coordSysInfo.categoryAxisMap.get(coordDim);\n\n    if (categoryAxisModel) {\n      if (firstCategoryDimIndex == null) {\n        firstCategoryDimIndex = dimIndex;\n      }\n\n      dimInfo.ordinalMeta = categoryAxisModel.getOrdinalMeta();\n\n      if (opt.createInvertedIndices) {\n        dimInfo.createInvertedIndices = true;\n      }\n    }\n\n    if (dimInfo.otherDims.itemName != null) {\n      hasNameEncode = true;\n    }\n  });\n\n  if (!hasNameEncode && firstCategoryDimIndex != null) {\n    dimInfoList[firstCategoryDimIndex].otherDims.itemName = 0;\n  }\n\n  var stackCalculationInfo = enableDataStack(seriesModel, dimInfoList);\n  var list = new List(dimInfoList, seriesModel);\n  list.setCalculationInfo(stackCalculationInfo);\n  var dimValueGetter = firstCategoryDimIndex != null && isNeedCompleteOrdinalData(source) ? function (itemOpt, dimName, dataIndex, dimIndex) {\n    return dimIndex === firstCategoryDimIndex ? dataIndex : this.defaultDimValueGetter(itemOpt, dimName, dataIndex, dimIndex);\n  } : null;\n  list.hasItemOption = false;\n  list.initData(source, null, dimValueGetter);\n  return list;\n}\n\nfunction isNeedCompleteOrdinalData(source) {\n  if (source.sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n    var sampleItem = firstDataNotNull(source.data || []);\n    return sampleItem != null && !zrUtil.isArray(getDataItemValue(sampleItem));\n  }\n}\n\nfunction firstDataNotNull(data) {\n  var i = 0;\n\n  while (i < data.length && data[i] == null) {\n    i++;\n  }\n\n  return data[i];\n}\n\nexport default createListFromArray;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as clazzUtil from '../util/clazz';\n\nvar Scale = function () {\n  function Scale(setting) {\n    this._setting = setting || {};\n    this._extent = [Infinity, -Infinity];\n  }\n\n  Scale.prototype.getSetting = function (name) {\n    return this._setting[name];\n  };\n\n  Scale.prototype.unionExtent = function (other) {\n    var extent = this._extent;\n    other[0] < extent[0] && (extent[0] = other[0]);\n    other[1] > extent[1] && (extent[1] = other[1]);\n  };\n\n  Scale.prototype.unionExtentFromData = function (data, dim) {\n    this.unionExtent(data.getApproximateExtent(dim));\n  };\n\n  Scale.prototype.getExtent = function () {\n    return this._extent.slice();\n  };\n\n  Scale.prototype.setExtent = function (start, end) {\n    var thisExtent = this._extent;\n\n    if (!isNaN(start)) {\n      thisExtent[0] = start;\n    }\n\n    if (!isNaN(end)) {\n      thisExtent[1] = end;\n    }\n  };\n\n  Scale.prototype.isInExtentRange = function (value) {\n    return this._extent[0] <= value && this._extent[1] >= value;\n  };\n\n  Scale.prototype.isBlank = function () {\n    return this._isBlank;\n  };\n\n  Scale.prototype.setBlank = function (isBlank) {\n    this._isBlank = isBlank;\n  };\n\n  return Scale;\n}();\n\nclazzUtil.enableClassManagement(Scale);\nexport default Scale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, isObject, map } from 'zrender/lib/core/util';\n\nvar OrdinalMeta = function () {\n  function OrdinalMeta(opt) {\n    this.categories = opt.categories || [];\n    this._needCollect = opt.needCollect;\n    this._deduplication = opt.deduplication;\n  }\n\n  OrdinalMeta.createByAxisModel = function (axisModel) {\n    var option = axisModel.option;\n    var data = option.data;\n    var categories = data && map(data, getName);\n    return new OrdinalMeta({\n      categories: categories,\n      needCollect: !categories,\n      deduplication: option.dedplication !== false\n    });\n  };\n\n  ;\n\n  OrdinalMeta.prototype.getOrdinal = function (category) {\n    return this._getOrCreateMap().get(category);\n  };\n\n  OrdinalMeta.prototype.parseAndCollect = function (category) {\n    var index;\n    var needCollect = this._needCollect;\n\n    if (typeof category !== 'string' && !needCollect) {\n      return category;\n    }\n\n    if (needCollect && !this._deduplication) {\n      index = this.categories.length;\n      this.categories[index] = category;\n      return index;\n    }\n\n    var map = this._getOrCreateMap();\n\n    index = map.get(category);\n\n    if (index == null) {\n      if (needCollect) {\n        index = this.categories.length;\n        this.categories[index] = category;\n        map.set(category, index);\n      } else {\n        index = NaN;\n      }\n    }\n\n    return index;\n  };\n\n  OrdinalMeta.prototype._getOrCreateMap = function () {\n    return this._map || (this._map = createHashMap(this.categories));\n  };\n\n  return OrdinalMeta;\n}();\n\nfunction getName(obj) {\n  if (isObject(obj) && obj.value != null) {\n    return obj.value;\n  } else {\n    return obj + '';\n  }\n}\n\nexport default OrdinalMeta;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as numberUtil from '../util/number';\nvar roundNumber = numberUtil.round;\nexport function intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval) {\n  var result = {};\n  var span = extent[1] - extent[0];\n  var interval = result.interval = numberUtil.nice(span / splitNumber, true);\n\n  if (minInterval != null && interval < minInterval) {\n    interval = result.interval = minInterval;\n  }\n\n  if (maxInterval != null && interval > maxInterval) {\n    interval = result.interval = maxInterval;\n  }\n\n  var precision = result.intervalPrecision = getIntervalPrecision(interval);\n  var niceTickExtent = result.niceTickExtent = [roundNumber(Math.ceil(extent[0] / interval) * interval, precision), roundNumber(Math.floor(extent[1] / interval) * interval, precision)];\n  fixExtent(niceTickExtent, extent);\n  return result;\n}\nexport function getIntervalPrecision(interval) {\n  return numberUtil.getPrecisionSafe(interval) + 2;\n}\n\nfunction clamp(niceTickExtent, idx, extent) {\n  niceTickExtent[idx] = Math.max(Math.min(niceTickExtent[idx], extent[1]), extent[0]);\n}\n\nexport function fixExtent(niceTickExtent, extent) {\n  !isFinite(niceTickExtent[0]) && (niceTickExtent[0] = extent[0]);\n  !isFinite(niceTickExtent[1]) && (niceTickExtent[1] = extent[1]);\n  clamp(niceTickExtent, 0, extent);\n  clamp(niceTickExtent, 1, extent);\n\n  if (niceTickExtent[0] > niceTickExtent[1]) {\n    niceTickExtent[0] = niceTickExtent[1];\n  }\n}\nexport function contain(val, extent) {\n  return val >= extent[0] && val <= extent[1];\n}\nexport function normalize(val, extent) {\n  if (extent[1] === extent[0]) {\n    return 0.5;\n  }\n\n  return (val - extent[0]) / (extent[1] - extent[0]);\n}\nexport function scale(val, extent) {\n  return val * (extent[1] - extent[0]) + extent[0];\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Scale from './Scale';\nimport OrdinalMeta from '../data/OrdinalMeta';\nimport * as scaleHelper from './helper';\nimport { isArray, map, isObject } from 'zrender/lib/core/util';\n\nvar OrdinalScale = function (_super) {\n  __extends(OrdinalScale, _super);\n\n  function OrdinalScale(setting) {\n    var _this = _super.call(this, setting) || this;\n\n    _this.type = 'ordinal';\n\n    var ordinalMeta = _this.getSetting('ordinalMeta');\n\n    if (!ordinalMeta) {\n      ordinalMeta = new OrdinalMeta({});\n    }\n\n    if (isArray(ordinalMeta)) {\n      ordinalMeta = new OrdinalMeta({\n        categories: map(ordinalMeta, function (item) {\n          return isObject(item) ? item.value : item;\n        })\n      });\n    }\n\n    _this._ordinalMeta = ordinalMeta;\n    _this._extent = _this.getSetting('extent') || [0, ordinalMeta.categories.length - 1];\n    return _this;\n  }\n\n  OrdinalScale.prototype.parse = function (val) {\n    return typeof val === 'string' ? this._ordinalMeta.getOrdinal(val) : Math.round(val);\n  };\n\n  OrdinalScale.prototype.contain = function (rank) {\n    rank = this.parse(rank);\n    return scaleHelper.contain(rank, this._extent) && this._ordinalMeta.categories[rank] != null;\n  };\n\n  OrdinalScale.prototype.normalize = function (val) {\n    val = this._getTickNumber(this.parse(val));\n    return scaleHelper.normalize(val, this._extent);\n  };\n\n  OrdinalScale.prototype.scale = function (val) {\n    val = Math.round(scaleHelper.scale(val, this._extent));\n    return this.getRawOrdinalNumber(val);\n  };\n\n  OrdinalScale.prototype.getTicks = function () {\n    var ticks = [];\n    var extent = this._extent;\n    var rank = extent[0];\n\n    while (rank <= extent[1]) {\n      ticks.push({\n        value: rank\n      });\n      rank++;\n    }\n\n    return ticks;\n  };\n\n  OrdinalScale.prototype.getMinorTicks = function (splitNumber) {\n    return;\n  };\n\n  OrdinalScale.prototype.setSortInfo = function (info) {\n    if (info == null) {\n      this._ordinalNumbersByTick = this._ticksByOrdinalNumber = null;\n      return;\n    }\n\n    var infoOrdinalNumbers = info.ordinalNumbers;\n    var ordinalsByTick = this._ordinalNumbersByTick = [];\n    var ticksByOrdinal = this._ticksByOrdinalNumber = [];\n    var tickNum = 0;\n    var allCategoryLen = this._ordinalMeta.categories.length;\n\n    for (var len = Math.min(allCategoryLen, infoOrdinalNumbers.length); tickNum < len; ++tickNum) {\n      var ordinalNumber = infoOrdinalNumbers[tickNum];\n      ordinalsByTick[tickNum] = ordinalNumber;\n      ticksByOrdinal[ordinalNumber] = tickNum;\n    }\n\n    var unusedOrdinal = 0;\n\n    for (; tickNum < allCategoryLen; ++tickNum) {\n      while (ticksByOrdinal[unusedOrdinal] != null) {\n        unusedOrdinal++;\n      }\n\n      ;\n      ordinalsByTick.push(unusedOrdinal);\n      ticksByOrdinal[unusedOrdinal] = tickNum;\n    }\n  };\n\n  OrdinalScale.prototype._getTickNumber = function (ordinal) {\n    var ticksByOrdinalNumber = this._ticksByOrdinalNumber;\n    return ticksByOrdinalNumber && ordinal >= 0 && ordinal < ticksByOrdinalNumber.length ? ticksByOrdinalNumber[ordinal] : ordinal;\n  };\n\n  OrdinalScale.prototype.getRawOrdinalNumber = function (tickNumber) {\n    var ordinalNumbersByTick = this._ordinalNumbersByTick;\n    return ordinalNumbersByTick && tickNumber >= 0 && tickNumber < ordinalNumbersByTick.length ? ordinalNumbersByTick[tickNumber] : tickNumber;\n  };\n\n  OrdinalScale.prototype.getLabel = function (tick) {\n    if (!this.isBlank()) {\n      var ordinalNumber = this.getRawOrdinalNumber(tick.value);\n      var cateogry = this._ordinalMeta.categories[ordinalNumber];\n      return cateogry == null ? '' : cateogry + '';\n    }\n  };\n\n  OrdinalScale.prototype.count = function () {\n    return this._extent[1] - this._extent[0] + 1;\n  };\n\n  OrdinalScale.prototype.unionExtentFromData = function (data, dim) {\n    this.unionExtent(data.getApproximateExtent(dim));\n  };\n\n  OrdinalScale.prototype.isInExtentRange = function (value) {\n    value = this._getTickNumber(value);\n    return this._extent[0] <= value && this._extent[1] >= value;\n  };\n\n  OrdinalScale.prototype.getOrdinalMeta = function () {\n    return this._ordinalMeta;\n  };\n\n  OrdinalScale.prototype.niceTicks = function () {};\n\n  OrdinalScale.prototype.niceExtent = function () {};\n\n  OrdinalScale.type = 'ordinal';\n  return OrdinalScale;\n}(Scale);\n\nScale.registerClass(OrdinalScale);\nexport default OrdinalScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as numberUtil from '../util/number';\nimport * as formatUtil from '../util/format';\nimport Scale from './Scale';\nimport * as helper from './helper';\nvar roundNumber = numberUtil.round;\n\nvar IntervalScale = function (_super) {\n  __extends(IntervalScale, _super);\n\n  function IntervalScale() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'interval';\n    _this._interval = 0;\n    _this._intervalPrecision = 2;\n    return _this;\n  }\n\n  IntervalScale.prototype.parse = function (val) {\n    return val;\n  };\n\n  IntervalScale.prototype.contain = function (val) {\n    return helper.contain(val, this._extent);\n  };\n\n  IntervalScale.prototype.normalize = function (val) {\n    return helper.normalize(val, this._extent);\n  };\n\n  IntervalScale.prototype.scale = function (val) {\n    return helper.scale(val, this._extent);\n  };\n\n  IntervalScale.prototype.setExtent = function (start, end) {\n    var thisExtent = this._extent;\n\n    if (!isNaN(start)) {\n      thisExtent[0] = parseFloat(start);\n    }\n\n    if (!isNaN(end)) {\n      thisExtent[1] = parseFloat(end);\n    }\n  };\n\n  IntervalScale.prototype.unionExtent = function (other) {\n    var extent = this._extent;\n    other[0] < extent[0] && (extent[0] = other[0]);\n    other[1] > extent[1] && (extent[1] = other[1]);\n    this.setExtent(extent[0], extent[1]);\n  };\n\n  IntervalScale.prototype.getInterval = function () {\n    return this._interval;\n  };\n\n  IntervalScale.prototype.setInterval = function (interval) {\n    this._interval = interval;\n    this._niceExtent = this._extent.slice();\n    this._intervalPrecision = helper.getIntervalPrecision(interval);\n  };\n\n  IntervalScale.prototype.getTicks = function (expandToNicedExtent) {\n    var interval = this._interval;\n    var extent = this._extent;\n    var niceTickExtent = this._niceExtent;\n    var intervalPrecision = this._intervalPrecision;\n    var ticks = [];\n\n    if (!interval) {\n      return ticks;\n    }\n\n    var safeLimit = 10000;\n\n    if (extent[0] < niceTickExtent[0]) {\n      if (expandToNicedExtent) {\n        ticks.push({\n          value: roundNumber(niceTickExtent[0] - interval, intervalPrecision)\n        });\n      } else {\n        ticks.push({\n          value: extent[0]\n        });\n      }\n    }\n\n    var tick = niceTickExtent[0];\n\n    while (tick <= niceTickExtent[1]) {\n      ticks.push({\n        value: tick\n      });\n      tick = roundNumber(tick + interval, intervalPrecision);\n\n      if (tick === ticks[ticks.length - 1].value) {\n        break;\n      }\n\n      if (ticks.length > safeLimit) {\n        return [];\n      }\n    }\n\n    var lastNiceTick = ticks.length ? ticks[ticks.length - 1].value : niceTickExtent[1];\n\n    if (extent[1] > lastNiceTick) {\n      if (expandToNicedExtent) {\n        ticks.push({\n          value: roundNumber(lastNiceTick + interval, intervalPrecision)\n        });\n      } else {\n        ticks.push({\n          value: extent[1]\n        });\n      }\n    }\n\n    return ticks;\n  };\n\n  IntervalScale.prototype.getMinorTicks = function (splitNumber) {\n    var ticks = this.getTicks(true);\n    var minorTicks = [];\n    var extent = this.getExtent();\n\n    for (var i = 1; i < ticks.length; i++) {\n      var nextTick = ticks[i];\n      var prevTick = ticks[i - 1];\n      var count = 0;\n      var minorTicksGroup = [];\n      var interval = nextTick.value - prevTick.value;\n      var minorInterval = interval / splitNumber;\n\n      while (count < splitNumber - 1) {\n        var minorTick = roundNumber(prevTick.value + (count + 1) * minorInterval);\n\n        if (minorTick > extent[0] && minorTick < extent[1]) {\n          minorTicksGroup.push(minorTick);\n        }\n\n        count++;\n      }\n\n      minorTicks.push(minorTicksGroup);\n    }\n\n    return minorTicks;\n  };\n\n  IntervalScale.prototype.getLabel = function (data, opt) {\n    if (data == null) {\n      return '';\n    }\n\n    var precision = opt && opt.precision;\n\n    if (precision == null) {\n      precision = numberUtil.getPrecisionSafe(data.value) || 0;\n    } else if (precision === 'auto') {\n      precision = this._intervalPrecision;\n    }\n\n    var dataNum = roundNumber(data.value, precision, true);\n    return formatUtil.addCommas(dataNum);\n  };\n\n  IntervalScale.prototype.niceTicks = function (splitNumber, minInterval, maxInterval) {\n    splitNumber = splitNumber || 5;\n    var extent = this._extent;\n    var span = extent[1] - extent[0];\n\n    if (!isFinite(span)) {\n      return;\n    }\n\n    if (span < 0) {\n      span = -span;\n      extent.reverse();\n    }\n\n    var result = helper.intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval);\n    this._intervalPrecision = result.intervalPrecision;\n    this._interval = result.interval;\n    this._niceExtent = result.niceTickExtent;\n  };\n\n  IntervalScale.prototype.niceExtent = function (opt) {\n    var extent = this._extent;\n\n    if (extent[0] === extent[1]) {\n      if (extent[0] !== 0) {\n        var expandSize = extent[0];\n\n        if (!opt.fixMax) {\n          extent[1] += expandSize / 2;\n          extent[0] -= expandSize / 2;\n        } else {\n          extent[0] -= expandSize / 2;\n        }\n      } else {\n        extent[1] = 1;\n      }\n    }\n\n    var span = extent[1] - extent[0];\n\n    if (!isFinite(span)) {\n      extent[0] = 0;\n      extent[1] = 1;\n    }\n\n    this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\n    var interval = this._interval;\n\n    if (!opt.fixMin) {\n      extent[0] = roundNumber(Math.floor(extent[0] / interval) * interval);\n    }\n\n    if (!opt.fixMax) {\n      extent[1] = roundNumber(Math.ceil(extent[1] / interval) * interval);\n    }\n  };\n\n  IntervalScale.type = 'interval';\n  return IntervalScale;\n}(Scale);\n\nScale.registerClass(IntervalScale);\nexport default IntervalScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parsePercent } from '../util/number';\nimport { isDimensionStacked } from '../data/helper/dataStackHelper';\nimport createRenderPlanner from '../chart/helper/createRenderPlanner';\nvar STACK_PREFIX = '__ec_stack_';\nvar LARGE_BAR_MIN_WIDTH = 0.5;\nvar LargeArr = typeof Float32Array !== 'undefined' ? Float32Array : Array;\n\nfunction getSeriesStackId(seriesModel) {\n  return seriesModel.get('stack') || STACK_PREFIX + seriesModel.seriesIndex;\n}\n\nfunction getAxisKey(axis) {\n  return axis.dim + axis.index;\n}\n\nexport function getLayoutOnAxis(opt) {\n  var params = [];\n  var baseAxis = opt.axis;\n  var axisKey = 'axis0';\n\n  if (baseAxis.type !== 'category') {\n    return;\n  }\n\n  var bandWidth = baseAxis.getBandWidth();\n\n  for (var i = 0; i < opt.count || 0; i++) {\n    params.push(zrUtil.defaults({\n      bandWidth: bandWidth,\n      axisKey: axisKey,\n      stackId: STACK_PREFIX + i\n    }, opt));\n  }\n\n  var widthAndOffsets = doCalBarWidthAndOffset(params);\n  var result = [];\n\n  for (var i = 0; i < opt.count; i++) {\n    var item = widthAndOffsets[axisKey][STACK_PREFIX + i];\n    item.offsetCenter = item.offset + item.width / 2;\n    result.push(item);\n  }\n\n  return result;\n}\nexport function prepareLayoutBarSeries(seriesType, ecModel) {\n  var seriesModels = [];\n  ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n    if (isOnCartesian(seriesModel) && !isInLargeMode(seriesModel)) {\n      seriesModels.push(seriesModel);\n    }\n  });\n  return seriesModels;\n}\n\nfunction getValueAxesMinGaps(barSeries) {\n  var axisValues = {};\n  zrUtil.each(barSeries, function (seriesModel) {\n    var cartesian = seriesModel.coordinateSystem;\n    var baseAxis = cartesian.getBaseAxis();\n\n    if (baseAxis.type !== 'time' && baseAxis.type !== 'value') {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var key = baseAxis.dim + '_' + baseAxis.index;\n    var dim = data.mapDimension(baseAxis.dim);\n\n    for (var i = 0, cnt = data.count(); i < cnt; ++i) {\n      var value = data.get(dim, i);\n\n      if (!axisValues[key]) {\n        axisValues[key] = [value];\n      } else {\n        axisValues[key].push(value);\n      }\n    }\n  });\n  var axisMinGaps = {};\n\n  for (var key in axisValues) {\n    if (axisValues.hasOwnProperty(key)) {\n      var valuesInAxis = axisValues[key];\n\n      if (valuesInAxis) {\n        valuesInAxis.sort(function (a, b) {\n          return a - b;\n        });\n        var min = null;\n\n        for (var j = 1; j < valuesInAxis.length; ++j) {\n          var delta = valuesInAxis[j] - valuesInAxis[j - 1];\n\n          if (delta > 0) {\n            min = min === null ? delta : Math.min(min, delta);\n          }\n        }\n\n        axisMinGaps[key] = min;\n      }\n    }\n  }\n\n  return axisMinGaps;\n}\n\nexport function makeColumnLayout(barSeries) {\n  var axisMinGaps = getValueAxesMinGaps(barSeries);\n  var seriesInfoList = [];\n  zrUtil.each(barSeries, function (seriesModel) {\n    var cartesian = seriesModel.coordinateSystem;\n    var baseAxis = cartesian.getBaseAxis();\n    var axisExtent = baseAxis.getExtent();\n    var bandWidth;\n\n    if (baseAxis.type === 'category') {\n      bandWidth = baseAxis.getBandWidth();\n    } else if (baseAxis.type === 'value' || baseAxis.type === 'time') {\n      var key = baseAxis.dim + '_' + baseAxis.index;\n      var minGap = axisMinGaps[key];\n      var extentSpan = Math.abs(axisExtent[1] - axisExtent[0]);\n      var scale = baseAxis.scale.getExtent();\n      var scaleSpan = Math.abs(scale[1] - scale[0]);\n      bandWidth = minGap ? extentSpan / scaleSpan * minGap : extentSpan;\n    } else {\n      var data = seriesModel.getData();\n      bandWidth = Math.abs(axisExtent[1] - axisExtent[0]) / data.count();\n    }\n\n    var barWidth = parsePercent(seriesModel.get('barWidth'), bandWidth);\n    var barMaxWidth = parsePercent(seriesModel.get('barMaxWidth'), bandWidth);\n    var barMinWidth = parsePercent(seriesModel.get('barMinWidth') || 1, bandWidth);\n    var barGap = seriesModel.get('barGap');\n    var barCategoryGap = seriesModel.get('barCategoryGap');\n    seriesInfoList.push({\n      bandWidth: bandWidth,\n      barWidth: barWidth,\n      barMaxWidth: barMaxWidth,\n      barMinWidth: barMinWidth,\n      barGap: barGap,\n      barCategoryGap: barCategoryGap,\n      axisKey: getAxisKey(baseAxis),\n      stackId: getSeriesStackId(seriesModel)\n    });\n  });\n  return doCalBarWidthAndOffset(seriesInfoList);\n}\n\nfunction doCalBarWidthAndOffset(seriesInfoList) {\n  var columnsMap = {};\n  zrUtil.each(seriesInfoList, function (seriesInfo, idx) {\n    var axisKey = seriesInfo.axisKey;\n    var bandWidth = seriesInfo.bandWidth;\n    var columnsOnAxis = columnsMap[axisKey] || {\n      bandWidth: bandWidth,\n      remainedWidth: bandWidth,\n      autoWidthCount: 0,\n      categoryGap: null,\n      gap: '20%',\n      stacks: {}\n    };\n    var stacks = columnsOnAxis.stacks;\n    columnsMap[axisKey] = columnsOnAxis;\n    var stackId = seriesInfo.stackId;\n\n    if (!stacks[stackId]) {\n      columnsOnAxis.autoWidthCount++;\n    }\n\n    stacks[stackId] = stacks[stackId] || {\n      width: 0,\n      maxWidth: 0\n    };\n    var barWidth = seriesInfo.barWidth;\n\n    if (barWidth && !stacks[stackId].width) {\n      stacks[stackId].width = barWidth;\n      barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\n      columnsOnAxis.remainedWidth -= barWidth;\n    }\n\n    var barMaxWidth = seriesInfo.barMaxWidth;\n    barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\n    var barMinWidth = seriesInfo.barMinWidth;\n    barMinWidth && (stacks[stackId].minWidth = barMinWidth);\n    var barGap = seriesInfo.barGap;\n    barGap != null && (columnsOnAxis.gap = barGap);\n    var barCategoryGap = seriesInfo.barCategoryGap;\n    barCategoryGap != null && (columnsOnAxis.categoryGap = barCategoryGap);\n  });\n  var result = {};\n  zrUtil.each(columnsMap, function (columnsOnAxis, coordSysName) {\n    result[coordSysName] = {};\n    var stacks = columnsOnAxis.stacks;\n    var bandWidth = columnsOnAxis.bandWidth;\n    var categoryGapPercent = columnsOnAxis.categoryGap;\n\n    if (categoryGapPercent == null) {\n      var columnCount = zrUtil.keys(stacks).length;\n      categoryGapPercent = Math.max(35 - columnCount * 4, 15) + '%';\n    }\n\n    var categoryGap = parsePercent(categoryGapPercent, bandWidth);\n    var barGapPercent = parsePercent(columnsOnAxis.gap, 1);\n    var remainedWidth = columnsOnAxis.remainedWidth;\n    var autoWidthCount = columnsOnAxis.autoWidthCount;\n    var autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n    autoWidth = Math.max(autoWidth, 0);\n    zrUtil.each(stacks, function (column) {\n      var maxWidth = column.maxWidth;\n      var minWidth = column.minWidth;\n\n      if (!column.width) {\n        var finalWidth = autoWidth;\n\n        if (maxWidth && maxWidth < finalWidth) {\n          finalWidth = Math.min(maxWidth, remainedWidth);\n        }\n\n        if (minWidth && minWidth > finalWidth) {\n          finalWidth = minWidth;\n        }\n\n        if (finalWidth !== autoWidth) {\n          column.width = finalWidth;\n          remainedWidth -= finalWidth + barGapPercent * finalWidth;\n          autoWidthCount--;\n        }\n      } else {\n        var finalWidth = column.width;\n\n        if (maxWidth) {\n          finalWidth = Math.min(finalWidth, maxWidth);\n        }\n\n        if (minWidth) {\n          finalWidth = Math.max(finalWidth, minWidth);\n        }\n\n        column.width = finalWidth;\n        remainedWidth -= finalWidth + barGapPercent * finalWidth;\n        autoWidthCount--;\n      }\n    });\n    autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n    autoWidth = Math.max(autoWidth, 0);\n    var widthSum = 0;\n    var lastColumn;\n    zrUtil.each(stacks, function (column, idx) {\n      if (!column.width) {\n        column.width = autoWidth;\n      }\n\n      lastColumn = column;\n      widthSum += column.width * (1 + barGapPercent);\n    });\n\n    if (lastColumn) {\n      widthSum -= lastColumn.width * barGapPercent;\n    }\n\n    var offset = -widthSum / 2;\n    zrUtil.each(stacks, function (column, stackId) {\n      result[coordSysName][stackId] = result[coordSysName][stackId] || {\n        bandWidth: bandWidth,\n        offset: offset,\n        width: column.width\n      };\n      offset += column.width * (1 + barGapPercent);\n    });\n  });\n  return result;\n}\n\nfunction retrieveColumnLayout(barWidthAndOffset, axis, seriesModel) {\n  if (barWidthAndOffset && axis) {\n    var result = barWidthAndOffset[getAxisKey(axis)];\n\n    if (result != null && seriesModel != null) {\n      return result[getSeriesStackId(seriesModel)];\n    }\n\n    return result;\n  }\n}\n\nexport { retrieveColumnLayout };\nexport function layout(seriesType, ecModel) {\n  var seriesModels = prepareLayoutBarSeries(seriesType, ecModel);\n  var barWidthAndOffset = makeColumnLayout(seriesModels);\n  var lastStackCoords = {};\n  zrUtil.each(seriesModels, function (seriesModel) {\n    var data = seriesModel.getData();\n    var cartesian = seriesModel.coordinateSystem;\n    var baseAxis = cartesian.getBaseAxis();\n    var stackId = getSeriesStackId(seriesModel);\n    var columnLayoutInfo = barWidthAndOffset[getAxisKey(baseAxis)][stackId];\n    var columnOffset = columnLayoutInfo.offset;\n    var columnWidth = columnLayoutInfo.width;\n    var valueAxis = cartesian.getOtherAxis(baseAxis);\n    var barMinHeight = seriesModel.get('barMinHeight') || 0;\n    lastStackCoords[stackId] = lastStackCoords[stackId] || [];\n    data.setLayout({\n      bandWidth: columnLayoutInfo.bandWidth,\n      offset: columnOffset,\n      size: columnWidth\n    });\n    var valueDim = data.mapDimension(valueAxis.dim);\n    var baseDim = data.mapDimension(baseAxis.dim);\n    var stacked = isDimensionStacked(data, valueDim);\n    var isValueAxisH = valueAxis.isHorizontal();\n    var valueAxisStart = getValueAxisStart(baseAxis, valueAxis, stacked);\n\n    for (var idx = 0, len = data.count(); idx < len; idx++) {\n      var value = data.get(valueDim, idx);\n      var baseValue = data.get(baseDim, idx);\n      var sign = value >= 0 ? 'p' : 'n';\n      var baseCoord = valueAxisStart;\n\n      if (stacked) {\n        if (!lastStackCoords[stackId][baseValue]) {\n          lastStackCoords[stackId][baseValue] = {\n            p: valueAxisStart,\n            n: valueAxisStart\n          };\n        }\n\n        baseCoord = lastStackCoords[stackId][baseValue][sign];\n      }\n\n      var x = void 0;\n      var y = void 0;\n      var width = void 0;\n      var height = void 0;\n\n      if (isValueAxisH) {\n        var coord = cartesian.dataToPoint([value, baseValue]);\n        x = baseCoord;\n        y = coord[1] + columnOffset;\n        width = coord[0] - valueAxisStart;\n        height = columnWidth;\n\n        if (Math.abs(width) < barMinHeight) {\n          width = (width < 0 ? -1 : 1) * barMinHeight;\n        }\n\n        if (!isNaN(width)) {\n          stacked && (lastStackCoords[stackId][baseValue][sign] += width);\n        }\n      } else {\n        var coord = cartesian.dataToPoint([baseValue, value]);\n        x = coord[0] + columnOffset;\n        y = baseCoord;\n        width = columnWidth;\n        height = coord[1] - valueAxisStart;\n\n        if (Math.abs(height) < barMinHeight) {\n          height = (height <= 0 ? -1 : 1) * barMinHeight;\n        }\n\n        if (!isNaN(height)) {\n          stacked && (lastStackCoords[stackId][baseValue][sign] += height);\n        }\n      }\n\n      data.setItemLayout(idx, {\n        x: x,\n        y: y,\n        width: width,\n        height: height\n      });\n    }\n  });\n}\nexport var largeLayout = {\n  seriesType: 'bar',\n  plan: createRenderPlanner(),\n  reset: function (seriesModel) {\n    if (!isOnCartesian(seriesModel) || !isInLargeMode(seriesModel)) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var cartesian = seriesModel.coordinateSystem;\n    var coordLayout = cartesian.master.getRect();\n    var baseAxis = cartesian.getBaseAxis();\n    var valueAxis = cartesian.getOtherAxis(baseAxis);\n    var valueDim = data.mapDimension(valueAxis.dim);\n    var baseDim = data.mapDimension(baseAxis.dim);\n    var valueAxisHorizontal = valueAxis.isHorizontal();\n    var valueDimIdx = valueAxisHorizontal ? 0 : 1;\n    var barWidth = retrieveColumnLayout(makeColumnLayout([seriesModel]), baseAxis, seriesModel).width;\n\n    if (!(barWidth > LARGE_BAR_MIN_WIDTH)) {\n      barWidth = LARGE_BAR_MIN_WIDTH;\n    }\n\n    return {\n      progress: function (params, data) {\n        var count = params.count;\n        var largePoints = new LargeArr(count * 2);\n        var largeBackgroundPoints = new LargeArr(count * 2);\n        var largeDataIndices = new LargeArr(count);\n        var dataIndex;\n        var coord = [];\n        var valuePair = [];\n        var pointsOffset = 0;\n        var idxOffset = 0;\n\n        while ((dataIndex = params.next()) != null) {\n          valuePair[valueDimIdx] = data.get(valueDim, dataIndex);\n          valuePair[1 - valueDimIdx] = data.get(baseDim, dataIndex);\n          coord = cartesian.dataToPoint(valuePair, null, coord);\n          largeBackgroundPoints[pointsOffset] = valueAxisHorizontal ? coordLayout.x + coordLayout.width : coord[0];\n          largePoints[pointsOffset++] = coord[0];\n          largeBackgroundPoints[pointsOffset] = valueAxisHorizontal ? coord[1] : coordLayout.y + coordLayout.height;\n          largePoints[pointsOffset++] = coord[1];\n          largeDataIndices[idxOffset++] = dataIndex;\n        }\n\n        data.setLayout({\n          largePoints: largePoints,\n          largeDataIndices: largeDataIndices,\n          largeBackgroundPoints: largeBackgroundPoints,\n          barWidth: barWidth,\n          valueAxisStart: getValueAxisStart(baseAxis, valueAxis, false),\n          backgroundStart: valueAxisHorizontal ? coordLayout.x : coordLayout.y,\n          valueAxisHorizontal: valueAxisHorizontal\n        });\n      }\n    };\n  }\n};\n\nfunction isOnCartesian(seriesModel) {\n  return seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'cartesian2d';\n}\n\nfunction isInLargeMode(seriesModel) {\n  return seriesModel.pipelineContext && seriesModel.pipelineContext.large;\n}\n\nfunction getValueAxisStart(baseAxis, valueAxis, stacked) {\n  return valueAxis.toGlobalCoord(valueAxis.dataToCoord(valueAxis.type === 'log' ? 1 : 0));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as numberUtil from '../util/number';\nimport { ONE_SECOND, ONE_MINUTE, ONE_HOUR, ONE_DAY, ONE_YEAR, format, leveledFormat, getUnitValue, timeUnits, fullLeveledFormatter, getPrimaryTimeUnit, isPrimaryTimeUnit, getDefaultFormatPrecisionOfInterval, fullYearGetterName, monthSetterName, fullYearSetterName, dateSetterName, hoursGetterName, hoursSetterName, minutesSetterName, secondsSetterName, millisecondsSetterName, monthGetterName, dateGetterName, minutesGetterName, secondsGetterName, millisecondsGetterName } from '../util/time';\nimport * as scaleHelper from './helper';\nimport IntervalScale from './Interval';\nimport Scale from './Scale';\nimport { warn } from '../util/log';\nimport { filter, map } from 'zrender/lib/core/util';\n\nvar bisect = function (a, x, lo, hi) {\n  while (lo < hi) {\n    var mid = lo + hi >>> 1;\n\n    if (a[mid][1] < x) {\n      lo = mid + 1;\n    } else {\n      hi = mid;\n    }\n  }\n\n  return lo;\n};\n\nvar TimeScale = function (_super) {\n  __extends(TimeScale, _super);\n\n  function TimeScale(settings) {\n    var _this = _super.call(this, settings) || this;\n\n    _this.type = 'time';\n    return _this;\n  }\n\n  TimeScale.prototype.getLabel = function (tick) {\n    var useUTC = this.getSetting('useUTC');\n    return format(tick.value, fullLeveledFormatter[getDefaultFormatPrecisionOfInterval(getPrimaryTimeUnit(this._minLevelUnit))] || fullLeveledFormatter.second, useUTC, this.getSetting('locale'));\n  };\n\n  TimeScale.prototype.getFormattedLabel = function (tick, idx, labelFormatter) {\n    var isUTC = this.getSetting('useUTC');\n    var lang = this.getSetting('locale');\n    return leveledFormat(tick, idx, labelFormatter, lang, isUTC);\n  };\n\n  TimeScale.prototype.getTicks = function (expandToNicedExtent) {\n    var interval = this._interval;\n    var extent = this._extent;\n    var ticks = [];\n\n    if (!interval) {\n      return ticks;\n    }\n\n    ticks.push({\n      value: extent[0],\n      level: 0\n    });\n    var useUTC = this.getSetting('useUTC');\n    var innerTicks = getIntervalTicks(this._minLevelUnit, this._approxInterval, useUTC, extent);\n    ticks = ticks.concat(innerTicks);\n    ticks.push({\n      value: extent[1],\n      level: 0\n    });\n    return ticks;\n  };\n\n  TimeScale.prototype.niceExtent = function (opt) {\n    var extent = this._extent;\n\n    if (extent[0] === extent[1]) {\n      extent[0] -= ONE_DAY;\n      extent[1] += ONE_DAY;\n    }\n\n    if (extent[1] === -Infinity && extent[0] === Infinity) {\n      var d = new Date();\n      extent[1] = +new Date(d.getFullYear(), d.getMonth(), d.getDate());\n      extent[0] = extent[1] - ONE_DAY;\n    }\n\n    this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\n  };\n\n  TimeScale.prototype.niceTicks = function (approxTickNum, minInterval, maxInterval) {\n    approxTickNum = approxTickNum || 10;\n    var extent = this._extent;\n    var span = extent[1] - extent[0];\n    this._approxInterval = span / approxTickNum;\n\n    if (minInterval != null && this._approxInterval < minInterval) {\n      this._approxInterval = minInterval;\n    }\n\n    if (maxInterval != null && this._approxInterval > maxInterval) {\n      this._approxInterval = maxInterval;\n    }\n\n    var scaleIntervalsLen = scaleIntervals.length;\n    var idx = Math.min(bisect(scaleIntervals, this._approxInterval, 0, scaleIntervalsLen), scaleIntervalsLen - 1);\n    this._interval = scaleIntervals[idx][1];\n    this._minLevelUnit = scaleIntervals[Math.max(idx - 1, 0)][0];\n  };\n\n  TimeScale.prototype.parse = function (val) {\n    return typeof val === 'number' ? val : +numberUtil.parseDate(val);\n  };\n\n  TimeScale.prototype.contain = function (val) {\n    return scaleHelper.contain(this.parse(val), this._extent);\n  };\n\n  TimeScale.prototype.normalize = function (val) {\n    return scaleHelper.normalize(this.parse(val), this._extent);\n  };\n\n  TimeScale.prototype.scale = function (val) {\n    return scaleHelper.scale(val, this._extent);\n  };\n\n  TimeScale.type = 'time';\n  return TimeScale;\n}(IntervalScale);\n\nvar scaleIntervals = [['second', ONE_SECOND], ['minute', ONE_MINUTE], ['hour', ONE_HOUR], ['quarter-day', ONE_HOUR * 6], ['half-day', ONE_HOUR * 12], ['day', ONE_DAY * 1.2], ['half-week', ONE_DAY * 3.5], ['week', ONE_DAY * 7], ['month', ONE_DAY * 31], ['quarter', ONE_DAY * 95], ['half-year', ONE_YEAR / 2], ['year', ONE_YEAR]];\n\nfunction isUnitValueSame(unit, valueA, valueB, isUTC) {\n  var dateA = numberUtil.parseDate(valueA);\n  var dateB = numberUtil.parseDate(valueB);\n\n  var isSame = function (unit) {\n    return getUnitValue(dateA, unit, isUTC) === getUnitValue(dateB, unit, isUTC);\n  };\n\n  var isSameYear = function () {\n    return isSame('year');\n  };\n\n  var isSameMonth = function () {\n    return isSameYear() && isSame('month');\n  };\n\n  var isSameDay = function () {\n    return isSameMonth() && isSame('day');\n  };\n\n  var isSameHour = function () {\n    return isSameDay() && isSame('hour');\n  };\n\n  var isSameMinute = function () {\n    return isSameHour() && isSame('minute');\n  };\n\n  var isSameSecond = function () {\n    return isSameMinute() && isSame('second');\n  };\n\n  var isSameMilliSecond = function () {\n    return isSameSecond() && isSame('millisecond');\n  };\n\n  switch (unit) {\n    case 'year':\n      return isSameYear();\n\n    case 'month':\n      return isSameMonth();\n\n    case 'day':\n      return isSameDay();\n\n    case 'hour':\n      return isSameHour();\n\n    case 'minute':\n      return isSameMinute();\n\n    case 'second':\n      return isSameSecond();\n\n    case 'millisecond':\n      return isSameMilliSecond();\n  }\n}\n\nfunction getDateInterval(approxInterval, daysInMonth) {\n  approxInterval /= ONE_DAY;\n  return approxInterval > 16 ? 16 : approxInterval > 7.5 ? 7 : approxInterval > 3.5 ? 4 : approxInterval > 1.5 ? 2 : 1;\n}\n\nfunction getMonthInterval(approxInterval) {\n  var APPROX_ONE_MONTH = 30 * ONE_DAY;\n  approxInterval /= APPROX_ONE_MONTH;\n  return approxInterval > 6 ? 6 : approxInterval > 3 ? 3 : approxInterval > 2 ? 2 : 1;\n}\n\nfunction getHourInterval(approxInterval) {\n  approxInterval /= ONE_HOUR;\n  return approxInterval > 12 ? 12 : approxInterval > 6 ? 6 : approxInterval > 3.5 ? 4 : approxInterval > 2 ? 2 : 1;\n}\n\nfunction getMinutesAndSecondsInterval(approxInterval, isMinutes) {\n  approxInterval /= isMinutes ? ONE_MINUTE : ONE_SECOND;\n  return approxInterval > 30 ? 30 : approxInterval > 20 ? 20 : approxInterval > 15 ? 15 : approxInterval > 10 ? 10 : approxInterval > 5 ? 5 : approxInterval > 2 ? 2 : 1;\n}\n\nfunction getMillisecondsInterval(approxInterval) {\n  return numberUtil.nice(approxInterval, true);\n}\n\nfunction getFirstTimestampOfUnit(date, unitName, isUTC) {\n  var outDate = new Date(date);\n\n  switch (getPrimaryTimeUnit(unitName)) {\n    case 'year':\n    case 'month':\n      outDate[monthSetterName(isUTC)](0);\n\n    case 'day':\n      outDate[dateSetterName(isUTC)](1);\n\n    case 'hour':\n      outDate[hoursSetterName(isUTC)](0);\n\n    case 'minute':\n      outDate[minutesSetterName(isUTC)](0);\n\n    case 'second':\n      outDate[secondsSetterName(isUTC)](0);\n      outDate[millisecondsSetterName(isUTC)](0);\n  }\n\n  return outDate.getTime();\n}\n\nfunction getIntervalTicks(bottomUnitName, approxInterval, isUTC, extent) {\n  var safeLimit = 10000;\n  var unitNames = timeUnits;\n  var iter = 0;\n\n  function addTicksInSpan(interval, minTimestamp, maxTimestamp, getMethodName, setMethodName, isDate, out) {\n    var date = new Date(minTimestamp);\n    var dateTime = minTimestamp;\n    var d = date[getMethodName]();\n\n    while (dateTime < maxTimestamp && dateTime <= extent[1]) {\n      out.push({\n        value: dateTime\n      });\n      d += interval;\n      date[setMethodName](d);\n      dateTime = date.getTime();\n    }\n\n    out.push({\n      value: dateTime,\n      notAdd: true\n    });\n  }\n\n  function addLevelTicks(unitName, lastLevelTicks, levelTicks) {\n    var newAddedTicks = [];\n    var isFirstLevel = !lastLevelTicks.length;\n\n    if (isUnitValueSame(getPrimaryTimeUnit(unitName), extent[0], extent[1], isUTC)) {\n      return;\n    }\n\n    if (isFirstLevel) {\n      lastLevelTicks = [{\n        value: getFirstTimestampOfUnit(new Date(extent[0]), unitName, isUTC)\n      }, {\n        value: extent[1]\n      }];\n    }\n\n    for (var i = 0; i < lastLevelTicks.length - 1; i++) {\n      var startTick = lastLevelTicks[i].value;\n      var endTick = lastLevelTicks[i + 1].value;\n\n      if (startTick === endTick) {\n        continue;\n      }\n\n      var interval = void 0;\n      var getterName = void 0;\n      var setterName = void 0;\n      var isDate = false;\n\n      switch (unitName) {\n        case 'year':\n          interval = Math.max(1, Math.round(approxInterval / ONE_DAY / 365));\n          getterName = fullYearGetterName(isUTC);\n          setterName = fullYearSetterName(isUTC);\n          break;\n\n        case 'half-year':\n        case 'quarter':\n        case 'month':\n          interval = getMonthInterval(approxInterval);\n          getterName = monthGetterName(isUTC);\n          setterName = monthSetterName(isUTC);\n          break;\n\n        case 'week':\n        case 'half-week':\n        case 'day':\n          interval = getDateInterval(approxInterval, 31);\n          getterName = dateGetterName(isUTC);\n          setterName = dateSetterName(isUTC);\n          isDate = true;\n          break;\n\n        case 'half-day':\n        case 'quarter-day':\n        case 'hour':\n          interval = getHourInterval(approxInterval);\n          getterName = hoursGetterName(isUTC);\n          setterName = hoursSetterName(isUTC);\n          break;\n\n        case 'minute':\n          interval = getMinutesAndSecondsInterval(approxInterval, true);\n          getterName = minutesGetterName(isUTC);\n          setterName = minutesSetterName(isUTC);\n          break;\n\n        case 'second':\n          interval = getMinutesAndSecondsInterval(approxInterval, false);\n          getterName = secondsGetterName(isUTC);\n          setterName = secondsSetterName(isUTC);\n          break;\n\n        case 'millisecond':\n          interval = getMillisecondsInterval(approxInterval);\n          getterName = millisecondsGetterName(isUTC);\n          setterName = millisecondsSetterName(isUTC);\n          break;\n      }\n\n      addTicksInSpan(interval, startTick, endTick, getterName, setterName, isDate, newAddedTicks);\n\n      if (unitName === 'year' && levelTicks.length > 1 && i === 0) {\n        levelTicks.unshift({\n          value: levelTicks[0].value - interval\n        });\n      }\n    }\n\n    for (var i = 0; i < newAddedTicks.length; i++) {\n      levelTicks.push(newAddedTicks[i]);\n    }\n\n    return newAddedTicks;\n  }\n\n  var levelsTicks = [];\n  var currentLevelTicks = [];\n  var tickCount = 0;\n  var lastLevelTickCount = 0;\n\n  for (var i = 0; i < unitNames.length && iter++ < safeLimit; ++i) {\n    var primaryTimeUnit = getPrimaryTimeUnit(unitNames[i]);\n\n    if (!isPrimaryTimeUnit(unitNames[i])) {\n      continue;\n    }\n\n    addLevelTicks(unitNames[i], levelsTicks[levelsTicks.length - 1] || [], currentLevelTicks);\n    var nextPrimaryTimeUnit = unitNames[i + 1] ? getPrimaryTimeUnit(unitNames[i + 1]) : null;\n\n    if (primaryTimeUnit !== nextPrimaryTimeUnit) {\n      if (currentLevelTicks.length) {\n        lastLevelTickCount = tickCount;\n        currentLevelTicks.sort(function (a, b) {\n          return a.value - b.value;\n        });\n        var levelTicksRemoveDuplicated = [];\n\n        for (var i_1 = 0; i_1 < currentLevelTicks.length; ++i_1) {\n          var tickValue = currentLevelTicks[i_1].value;\n\n          if (i_1 === 0 || currentLevelTicks[i_1 - 1].value !== tickValue) {\n            levelTicksRemoveDuplicated.push(currentLevelTicks[i_1]);\n\n            if (tickValue >= extent[0] && tickValue <= extent[1]) {\n              tickCount++;\n            }\n          }\n        }\n\n        var targetTickNum = (extent[1] - extent[0]) / approxInterval;\n\n        if (tickCount > targetTickNum * 1.5 && lastLevelTickCount > targetTickNum / 1.5) {\n          break;\n        }\n\n        levelsTicks.push(levelTicksRemoveDuplicated);\n\n        if (tickCount > targetTickNum || bottomUnitName === unitNames[i]) {\n          break;\n        }\n      }\n\n      currentLevelTicks = [];\n    }\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (iter >= safeLimit) {\n      warn('Exceed safe limit.');\n    }\n  }\n\n  var levelsTicksInExtent = filter(map(levelsTicks, function (levelTicks) {\n    return filter(levelTicks, function (tick) {\n      return tick.value >= extent[0] && tick.value <= extent[1] && !tick.notAdd;\n    });\n  }), function (levelTicks) {\n    return levelTicks.length > 0;\n  });\n  var ticks = [];\n  var maxLevel = levelsTicksInExtent.length - 1;\n\n  for (var i = 0; i < levelsTicksInExtent.length; ++i) {\n    var levelTicks = levelsTicksInExtent[i];\n\n    for (var k = 0; k < levelTicks.length; ++k) {\n      ticks.push({\n        value: levelTicks[k].value,\n        level: maxLevel - i\n      });\n    }\n  }\n\n  ticks.sort(function (a, b) {\n    return a.value - b.value;\n  });\n  var result = [];\n\n  for (var i = 0; i < ticks.length; ++i) {\n    if (i === 0 || ticks[i].value !== ticks[i - 1].value) {\n      result.push(ticks[i]);\n    }\n  }\n\n  return result;\n}\n\nScale.registerClass(TimeScale);\nexport default TimeScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Scale from './Scale';\nimport * as numberUtil from '../util/number';\nimport * as scaleHelper from './helper';\nimport IntervalScale from './Interval';\nvar scaleProto = Scale.prototype;\nvar intervalScaleProto = IntervalScale.prototype;\nvar getPrecisionSafe = numberUtil.getPrecisionSafe;\nvar roundingErrorFix = numberUtil.round;\nvar mathFloor = Math.floor;\nvar mathCeil = Math.ceil;\nvar mathPow = Math.pow;\nvar mathLog = Math.log;\n\nvar LogScale = function (_super) {\n  __extends(LogScale, _super);\n\n  function LogScale() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'log';\n    _this.base = 10;\n    _this._originalScale = new IntervalScale();\n    _this._interval = 0;\n    return _this;\n  }\n\n  LogScale.prototype.getTicks = function (expandToNicedExtent) {\n    var originalScale = this._originalScale;\n    var extent = this._extent;\n    var originalExtent = originalScale.getExtent();\n    var ticks = intervalScaleProto.getTicks.call(this, expandToNicedExtent);\n    return zrUtil.map(ticks, function (tick) {\n      var val = tick.value;\n      var powVal = numberUtil.round(mathPow(this.base, val));\n      powVal = val === extent[0] && this._fixMin ? fixRoundingError(powVal, originalExtent[0]) : powVal;\n      powVal = val === extent[1] && this._fixMax ? fixRoundingError(powVal, originalExtent[1]) : powVal;\n      return {\n        value: powVal\n      };\n    }, this);\n  };\n\n  LogScale.prototype.setExtent = function (start, end) {\n    var base = this.base;\n    start = mathLog(start) / mathLog(base);\n    end = mathLog(end) / mathLog(base);\n    intervalScaleProto.setExtent.call(this, start, end);\n  };\n\n  LogScale.prototype.getExtent = function () {\n    var base = this.base;\n    var extent = scaleProto.getExtent.call(this);\n    extent[0] = mathPow(base, extent[0]);\n    extent[1] = mathPow(base, extent[1]);\n    var originalScale = this._originalScale;\n    var originalExtent = originalScale.getExtent();\n    this._fixMin && (extent[0] = fixRoundingError(extent[0], originalExtent[0]));\n    this._fixMax && (extent[1] = fixRoundingError(extent[1], originalExtent[1]));\n    return extent;\n  };\n\n  LogScale.prototype.unionExtent = function (extent) {\n    this._originalScale.unionExtent(extent);\n\n    var base = this.base;\n    extent[0] = mathLog(extent[0]) / mathLog(base);\n    extent[1] = mathLog(extent[1]) / mathLog(base);\n    scaleProto.unionExtent.call(this, extent);\n  };\n\n  LogScale.prototype.unionExtentFromData = function (data, dim) {\n    this.unionExtent(data.getApproximateExtent(dim));\n  };\n\n  LogScale.prototype.niceTicks = function (approxTickNum) {\n    approxTickNum = approxTickNum || 10;\n    var extent = this._extent;\n    var span = extent[1] - extent[0];\n\n    if (span === Infinity || span <= 0) {\n      return;\n    }\n\n    var interval = numberUtil.quantity(span);\n    var err = approxTickNum / span * interval;\n\n    if (err <= 0.5) {\n      interval *= 10;\n    }\n\n    while (!isNaN(interval) && Math.abs(interval) < 1 && Math.abs(interval) > 0) {\n      interval *= 10;\n    }\n\n    var niceExtent = [numberUtil.round(mathCeil(extent[0] / interval) * interval), numberUtil.round(mathFloor(extent[1] / interval) * interval)];\n    this._interval = interval;\n    this._niceExtent = niceExtent;\n  };\n\n  LogScale.prototype.niceExtent = function (opt) {\n    intervalScaleProto.niceExtent.call(this, opt);\n    this._fixMin = opt.fixMin;\n    this._fixMax = opt.fixMax;\n  };\n\n  LogScale.prototype.parse = function (val) {\n    return val;\n  };\n\n  LogScale.prototype.contain = function (val) {\n    val = mathLog(val) / mathLog(this.base);\n    return scaleHelper.contain(val, this._extent);\n  };\n\n  LogScale.prototype.normalize = function (val) {\n    val = mathLog(val) / mathLog(this.base);\n    return scaleHelper.normalize(val, this._extent);\n  };\n\n  LogScale.prototype.scale = function (val) {\n    val = scaleHelper.scale(val, this._extent);\n    return mathPow(this.base, val);\n  };\n\n  LogScale.type = 'log';\n  return LogScale;\n}(Scale);\n\nvar proto = LogScale.prototype;\nproto.getMinorTicks = intervalScaleProto.getMinorTicks;\nproto.getLabel = intervalScaleProto.getLabel;\n\nfunction fixRoundingError(val, originalVal) {\n  return roundingErrorFix(val, getPrecisionSafe(originalVal));\n}\n\nScale.registerClass(LogScale);\nexport default LogScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { assert, isArray, eqNaN, isFunction } from 'zrender/lib/core/util';\nimport { parsePercent } from 'zrender/lib/contain/text';\n\nvar ScaleRawExtentInfo = function () {\n  function ScaleRawExtentInfo(scale, model, originalExtent) {\n    this._prepareParams(scale, model, originalExtent);\n  }\n\n  ScaleRawExtentInfo.prototype._prepareParams = function (scale, model, dataExtent) {\n    if (dataExtent[1] < dataExtent[0]) {\n      dataExtent = [NaN, NaN];\n    }\n\n    this._dataMin = dataExtent[0];\n    this._dataMax = dataExtent[1];\n    var isOrdinal = this._isOrdinal = scale.type === 'ordinal';\n    this._needCrossZero = model.getNeedCrossZero && model.getNeedCrossZero();\n    var modelMinRaw = this._modelMinRaw = model.get('min', true);\n\n    if (isFunction(modelMinRaw)) {\n      this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw({\n        min: dataExtent[0],\n        max: dataExtent[1]\n      }));\n    } else if (modelMinRaw !== 'dataMin') {\n      this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw);\n    }\n\n    var modelMaxRaw = this._modelMaxRaw = model.get('max', true);\n\n    if (isFunction(modelMaxRaw)) {\n      this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw({\n        min: dataExtent[0],\n        max: dataExtent[1]\n      }));\n    } else if (modelMaxRaw !== 'dataMax') {\n      this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw);\n    }\n\n    if (isOrdinal) {\n      this._axisDataLen = model.getCategories().length;\n    } else {\n      var boundaryGap = model.get('boundaryGap');\n      var boundaryGapArr = isArray(boundaryGap) ? boundaryGap : [boundaryGap || 0, boundaryGap || 0];\n\n      if (typeof boundaryGapArr[0] === 'boolean' || typeof boundaryGapArr[1] === 'boolean') {\n        if (process.env.NODE_ENV !== 'production') {\n          console.warn('Boolean type for boundaryGap is only ' + 'allowed for ordinal axis. Please use string in ' + 'percentage instead, e.g., \"20%\". Currently, ' + 'boundaryGap is set to be 0.');\n        }\n\n        this._boundaryGapInner = [0, 0];\n      } else {\n        this._boundaryGapInner = [parsePercent(boundaryGapArr[0], 1), parsePercent(boundaryGapArr[1], 1)];\n      }\n    }\n  };\n\n  ScaleRawExtentInfo.prototype.calculate = function () {\n    var isOrdinal = this._isOrdinal;\n    var dataMin = this._dataMin;\n    var dataMax = this._dataMax;\n    var axisDataLen = this._axisDataLen;\n    var boundaryGapInner = this._boundaryGapInner;\n    var span = !isOrdinal ? dataMax - dataMin || Math.abs(dataMin) : null;\n    var min = this._modelMinRaw === 'dataMin' ? dataMin : this._modelMinNum;\n    var max = this._modelMaxRaw === 'dataMax' ? dataMax : this._modelMaxNum;\n    var minFixed = min != null;\n    var maxFixed = max != null;\n\n    if (min == null) {\n      min = isOrdinal ? axisDataLen ? 0 : NaN : dataMin - boundaryGapInner[0] * span;\n    }\n\n    if (max == null) {\n      max = isOrdinal ? axisDataLen ? axisDataLen - 1 : NaN : dataMax + boundaryGapInner[1] * span;\n    }\n\n    (min == null || !isFinite(min)) && (min = NaN);\n    (max == null || !isFinite(max)) && (max = NaN);\n\n    if (min > max) {\n      min = NaN;\n      max = NaN;\n    }\n\n    var isBlank = eqNaN(min) || eqNaN(max) || isOrdinal && !axisDataLen;\n\n    if (this._needCrossZero) {\n      if (min > 0 && max > 0 && !minFixed) {\n        min = 0;\n      }\n\n      if (min < 0 && max < 0 && !maxFixed) {\n        max = 0;\n      }\n    }\n\n    var determinedMin = this._determinedMin;\n    var determinedMax = this._determinedMax;\n\n    if (determinedMin != null) {\n      min = determinedMin;\n      minFixed = true;\n    }\n\n    if (determinedMax != null) {\n      max = determinedMax;\n      maxFixed = true;\n    }\n\n    return {\n      min: min,\n      max: max,\n      minFixed: minFixed,\n      maxFixed: maxFixed,\n      isBlank: isBlank\n    };\n  };\n\n  ScaleRawExtentInfo.prototype.modifyDataMinMax = function (minMaxName, val) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!this.frozen);\n    }\n\n    this[DATA_MIN_MAX_ATTR[minMaxName]] = val;\n  };\n\n  ScaleRawExtentInfo.prototype.setDeterminedMinMax = function (minMaxName, val) {\n    var attr = DETERMINED_MIN_MAX_ATTR[minMaxName];\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!this.frozen && this[attr] == null);\n    }\n\n    this[attr] = val;\n  };\n\n  ScaleRawExtentInfo.prototype.freeze = function () {\n    this.frozen = true;\n  };\n\n  return ScaleRawExtentInfo;\n}();\n\nexport { ScaleRawExtentInfo };\nvar DETERMINED_MIN_MAX_ATTR = {\n  min: '_determinedMin',\n  max: '_determinedMax'\n};\nvar DATA_MIN_MAX_ATTR = {\n  min: '_dataMin',\n  max: '_dataMax'\n};\nexport function ensureScaleRawExtentInfo(scale, model, originalExtent) {\n  var rawExtentInfo = scale.rawExtentInfo;\n\n  if (rawExtentInfo) {\n    return rawExtentInfo;\n  }\n\n  rawExtentInfo = new ScaleRawExtentInfo(scale, model, originalExtent);\n  scale.rawExtentInfo = rawExtentInfo;\n  return rawExtentInfo;\n}\nexport function parseAxisModelMinMax(scale, minMax) {\n  return minMax == null ? null : eqNaN(minMax) ? NaN : scale.parse(minMax);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport OrdinalScale from '../scale/Ordinal';\nimport IntervalScale from '../scale/Interval';\nimport Scale from '../scale/Scale';\nimport { prepareLayoutBarSeries, makeColumnLayout, retrieveColumnLayout } from '../layout/barGrid';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport TimeScale from '../scale/Time';\nimport LogScale from '../scale/Log';\nimport { getStackedDimension } from '../data/helper/dataStackHelper';\nimport { ensureScaleRawExtentInfo } from './scaleRawExtentInfo';\nexport function getScaleExtent(scale, model) {\n  var scaleType = scale.type;\n  var rawExtentResult = ensureScaleRawExtentInfo(scale, model, scale.getExtent()).calculate();\n  scale.setBlank(rawExtentResult.isBlank);\n  var min = rawExtentResult.min;\n  var max = rawExtentResult.max;\n  var ecModel = model.ecModel;\n\n  if (ecModel && scaleType === 'time') {\n    var barSeriesModels = prepareLayoutBarSeries('bar', ecModel);\n    var isBaseAxisAndHasBarSeries_1 = false;\n    zrUtil.each(barSeriesModels, function (seriesModel) {\n      isBaseAxisAndHasBarSeries_1 = isBaseAxisAndHasBarSeries_1 || seriesModel.getBaseAxis() === model.axis;\n    });\n\n    if (isBaseAxisAndHasBarSeries_1) {\n      var barWidthAndOffset = makeColumnLayout(barSeriesModels);\n      var adjustedScale = adjustScaleForOverflow(min, max, model, barWidthAndOffset);\n      min = adjustedScale.min;\n      max = adjustedScale.max;\n    }\n  }\n\n  return {\n    extent: [min, max],\n    fixMin: rawExtentResult.minFixed,\n    fixMax: rawExtentResult.maxFixed\n  };\n}\n\nfunction adjustScaleForOverflow(min, max, model, barWidthAndOffset) {\n  var axisExtent = model.axis.getExtent();\n  var axisLength = axisExtent[1] - axisExtent[0];\n  var barsOnCurrentAxis = retrieveColumnLayout(barWidthAndOffset, model.axis);\n\n  if (barsOnCurrentAxis === undefined) {\n    return {\n      min: min,\n      max: max\n    };\n  }\n\n  var minOverflow = Infinity;\n  zrUtil.each(barsOnCurrentAxis, function (item) {\n    minOverflow = Math.min(item.offset, minOverflow);\n  });\n  var maxOverflow = -Infinity;\n  zrUtil.each(barsOnCurrentAxis, function (item) {\n    maxOverflow = Math.max(item.offset + item.width, maxOverflow);\n  });\n  minOverflow = Math.abs(minOverflow);\n  maxOverflow = Math.abs(maxOverflow);\n  var totalOverFlow = minOverflow + maxOverflow;\n  var oldRange = max - min;\n  var oldRangePercentOfNew = 1 - (minOverflow + maxOverflow) / axisLength;\n  var overflowBuffer = oldRange / oldRangePercentOfNew - oldRange;\n  max += overflowBuffer * (maxOverflow / totalOverFlow);\n  min -= overflowBuffer * (minOverflow / totalOverFlow);\n  return {\n    min: min,\n    max: max\n  };\n}\n\nexport function niceScaleExtent(scale, model) {\n  var extentInfo = getScaleExtent(scale, model);\n  var extent = extentInfo.extent;\n  var splitNumber = model.get('splitNumber');\n\n  if (scale instanceof LogScale) {\n    scale.base = model.get('logBase');\n  }\n\n  var scaleType = scale.type;\n  scale.setExtent(extent[0], extent[1]);\n  scale.niceExtent({\n    splitNumber: splitNumber,\n    fixMin: extentInfo.fixMin,\n    fixMax: extentInfo.fixMax,\n    minInterval: scaleType === 'interval' || scaleType === 'time' ? model.get('minInterval') : null,\n    maxInterval: scaleType === 'interval' || scaleType === 'time' ? model.get('maxInterval') : null\n  });\n  var interval = model.get('interval');\n\n  if (interval != null) {\n    scale.setInterval && scale.setInterval(interval);\n  }\n}\nexport function createScaleByModel(model, axisType) {\n  axisType = axisType || model.get('type');\n\n  if (axisType) {\n    switch (axisType) {\n      case 'category':\n        return new OrdinalScale({\n          ordinalMeta: model.getOrdinalMeta ? model.getOrdinalMeta() : model.getCategories(),\n          extent: [Infinity, -Infinity]\n        });\n\n      case 'time':\n        return new TimeScale({\n          locale: model.ecModel.getLocaleModel(),\n          useUTC: model.ecModel.get('useUTC')\n        });\n\n      default:\n        return new (Scale.getClass(axisType) || IntervalScale)();\n    }\n  }\n}\nexport function ifAxisCrossZero(axis) {\n  var dataExtent = axis.scale.getExtent();\n  var min = dataExtent[0];\n  var max = dataExtent[1];\n  return !(min > 0 && max > 0 || min < 0 && max < 0);\n}\nexport function makeLabelFormatter(axis) {\n  var labelFormatter = axis.getLabelModel().get('formatter');\n  var categoryTickStart = axis.type === 'category' ? axis.scale.getExtent()[0] : null;\n\n  if (axis.scale.type === 'time') {\n    return function (tpl) {\n      return function (tick, idx) {\n        return axis.scale.getFormattedLabel(tick, idx, tpl);\n      };\n    }(labelFormatter);\n  } else if (typeof labelFormatter === 'string') {\n    return function (tpl) {\n      return function (tick) {\n        var label = axis.scale.getLabel(tick);\n        var text = tpl.replace('{value}', label != null ? label : '');\n        return text;\n      };\n    }(labelFormatter);\n  } else if (typeof labelFormatter === 'function') {\n    return function (cb) {\n      return function (tick, idx) {\n        if (categoryTickStart != null) {\n          idx = tick.value - categoryTickStart;\n        }\n\n        return cb(getAxisRawValue(axis, tick), idx, tick.level != null ? {\n          level: tick.level\n        } : null);\n      };\n    }(labelFormatter);\n  } else {\n    return function (tick) {\n      return axis.scale.getLabel(tick);\n    };\n  }\n}\nexport function getAxisRawValue(axis, tick) {\n  return axis.type === 'category' ? axis.scale.getLabel(tick) : tick.value;\n}\nexport function estimateLabelUnionRect(axis) {\n  var axisModel = axis.model;\n  var scale = axis.scale;\n\n  if (!axisModel.get(['axisLabel', 'show']) || scale.isBlank()) {\n    return;\n  }\n\n  var realNumberScaleTicks;\n  var tickCount;\n  var categoryScaleExtent = scale.getExtent();\n\n  if (scale instanceof OrdinalScale) {\n    tickCount = scale.count();\n  } else {\n    realNumberScaleTicks = scale.getTicks();\n    tickCount = realNumberScaleTicks.length;\n  }\n\n  var axisLabelModel = axis.getLabelModel();\n  var labelFormatter = makeLabelFormatter(axis);\n  var rect;\n  var step = 1;\n\n  if (tickCount > 40) {\n    step = Math.ceil(tickCount / 40);\n  }\n\n  for (var i = 0; i < tickCount; i += step) {\n    var tick = realNumberScaleTicks ? realNumberScaleTicks[i] : {\n      value: categoryScaleExtent[0] + i\n    };\n    var label = labelFormatter(tick, i);\n    var unrotatedSingleRect = axisLabelModel.getTextRect(label);\n    var singleRect = rotateTextRect(unrotatedSingleRect, axisLabelModel.get('rotate') || 0);\n    rect ? rect.union(singleRect) : rect = singleRect;\n  }\n\n  return rect;\n}\n\nfunction rotateTextRect(textRect, rotate) {\n  var rotateRadians = rotate * Math.PI / 180;\n  var beforeWidth = textRect.width;\n  var beforeHeight = textRect.height;\n  var afterWidth = beforeWidth * Math.abs(Math.cos(rotateRadians)) + Math.abs(beforeHeight * Math.sin(rotateRadians));\n  var afterHeight = beforeWidth * Math.abs(Math.sin(rotateRadians)) + Math.abs(beforeHeight * Math.cos(rotateRadians));\n  var rotatedRect = new BoundingRect(textRect.x, textRect.y, afterWidth, afterHeight);\n  return rotatedRect;\n}\n\nexport function getOptionCategoryInterval(model) {\n  var interval = model.get('interval');\n  return interval == null ? 'auto' : interval;\n}\nexport function shouldShowAllLabels(axis) {\n  return axis.type === 'category' && getOptionCategoryInterval(axis.getLabelModel()) === 0;\n}\nexport function getDataDimensionsOnAxis(data, axisDim) {\n  var dataDimMap = {};\n  zrUtil.each(data.mapDimensionsAll(axisDim), function (dataDim) {\n    dataDimMap[getStackedDimension(data, dataDim)] = true;\n  });\n  return zrUtil.keys(dataDimMap);\n}\nexport function unionAxisExtentFromData(dataExtent, data, axisDim) {\n  if (data) {\n    zrUtil.each(getDataDimensionsOnAxis(data, axisDim), function (dim) {\n      var seriesExtent = data.getApproximateExtent(dim);\n      seriesExtent[0] < dataExtent[0] && (dataExtent[0] = seriesExtent[0]);\n      seriesExtent[1] > dataExtent[1] && (dataExtent[1] = seriesExtent[1]);\n    });\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar AxisModelCommonMixin = function () {\n  function AxisModelCommonMixin() {}\n\n  AxisModelCommonMixin.prototype.getNeedCrossZero = function () {\n    var option = this.option;\n    return !option.scale;\n  };\n\n  AxisModelCommonMixin.prototype.getCoordSysModel = function () {\n    return;\n  };\n\n  return AxisModelCommonMixin;\n}();\n\nexport { AxisModelCommonMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport createListFromArray from '../../chart/helper/createListFromArray';\nimport * as axisHelper from '../../coord/axisHelper';\nimport { AxisModelCommonMixin } from '../../coord/axisModelCommonMixin';\nimport Model from '../../model/Model';\nimport { getLayoutRect } from '../../util/layout';\nimport { enableDataStack, isDimensionStacked, getStackedDimension } from '../../data/helper/dataStackHelper';\nimport { getECData } from '../../util/innerStore';\nimport { createTextStyle as innerCreateTextStyle } from '../../label/labelStyle';\nexport function createList(seriesModel) {\n  return createListFromArray(seriesModel.getSource(), seriesModel);\n}\nexport { getLayoutRect };\nexport { default as createDimensions } from '../../data/helper/createDimensions';\nexport var dataStack = {\n  isDimensionStacked: isDimensionStacked,\n  enableDataStack: enableDataStack,\n  getStackedDimension: getStackedDimension\n};\nexport { createSymbol } from '../../util/symbol';\nexport function createScale(dataExtent, option) {\n  var axisModel = option;\n\n  if (!(option instanceof Model)) {\n    axisModel = new Model(option);\n  }\n\n  var scale = axisHelper.createScaleByModel(axisModel);\n  scale.setExtent(dataExtent[0], dataExtent[1]);\n  axisHelper.niceScaleExtent(scale, axisModel);\n  return scale;\n}\nexport function mixinAxisModelCommonMethods(Model) {\n  zrUtil.mixin(Model, AxisModelCommonMixin);\n}\nexport { getECData };\nexport { enableHoverEmphasis } from '../../util/states';\nexport function createTextStyle(textStyleModel, opts) {\n  opts = opts || {};\n  return innerCreateTextStyle(textStyleModel, null, null, opts.state !== 'normal');\n}","import windingLine from './windingLine';\nvar EPSILON = 1e-8;\nfunction isAroundEqual(a, b) {\n    return Math.abs(a - b) < EPSILON;\n}\nexport function contain(points, x, y) {\n    var w = 0;\n    var p = points[0];\n    if (!p) {\n        return false;\n    }\n    for (var i = 1; i < points.length; i++) {\n        var p2 = points[i];\n        w += windingLine(p[0], p[1], p2[0], p2[1], x, y);\n        p = p2;\n    }\n    var p0 = points[0];\n    if (!isAroundEqual(p[0], p0[0]) || !isAroundEqual(p[1], p0[1])) {\n        w += windingLine(p[0], p[1], p0[0], p0[1], x, y);\n    }\n    return w !== 0;\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport * as bbox from 'zrender/lib/core/bbox';\nimport * as vec2 from 'zrender/lib/core/vector';\nimport * as polygonContain from 'zrender/lib/contain/polygon';\n\nvar Region = function () {\n  function Region(name, geometries, cp) {\n    this.name = name;\n    this.geometries = geometries;\n\n    if (!cp) {\n      var rect = this.getBoundingRect();\n      cp = [rect.x + rect.width / 2, rect.y + rect.height / 2];\n    } else {\n      cp = [cp[0], cp[1]];\n    }\n\n    this.center = cp;\n  }\n\n  Region.prototype.getBoundingRect = function () {\n    var rect = this._rect;\n\n    if (rect) {\n      return rect;\n    }\n\n    var MAX_NUMBER = Number.MAX_VALUE;\n    var min = [MAX_NUMBER, MAX_NUMBER];\n    var max = [-MAX_NUMBER, -MAX_NUMBER];\n    var min2 = [];\n    var max2 = [];\n    var geometries = this.geometries;\n    var i = 0;\n\n    for (; i < geometries.length; i++) {\n      if (geometries[i].type !== 'polygon') {\n        continue;\n      }\n\n      var exterior = geometries[i].exterior;\n      bbox.fromPoints(exterior, min2, max2);\n      vec2.min(min, min, min2);\n      vec2.max(max, max, max2);\n    }\n\n    if (i === 0) {\n      min[0] = min[1] = max[0] = max[1] = 0;\n    }\n\n    return this._rect = new BoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n  };\n\n  Region.prototype.contain = function (coord) {\n    var rect = this.getBoundingRect();\n    var geometries = this.geometries;\n\n    if (!rect.contain(coord[0], coord[1])) {\n      return false;\n    }\n\n    loopGeo: for (var i = 0, len = geometries.length; i < len; i++) {\n      if (geometries[i].type !== 'polygon') {\n        continue;\n      }\n\n      var exterior = geometries[i].exterior;\n      var interiors = geometries[i].interiors;\n\n      if (polygonContain.contain(exterior, coord[0], coord[1])) {\n        for (var k = 0; k < (interiors ? interiors.length : 0); k++) {\n          if (polygonContain.contain(interiors[k], coord[0], coord[1])) {\n            continue loopGeo;\n          }\n        }\n\n        return true;\n      }\n    }\n\n    return false;\n  };\n\n  Region.prototype.transformTo = function (x, y, width, height) {\n    var rect = this.getBoundingRect();\n    var aspect = rect.width / rect.height;\n\n    if (!width) {\n      width = aspect * height;\n    } else if (!height) {\n      height = width / aspect;\n    }\n\n    var target = new BoundingRect(x, y, width, height);\n    var transform = rect.calculateTransform(target);\n    var geometries = this.geometries;\n\n    for (var i = 0; i < geometries.length; i++) {\n      if (geometries[i].type !== 'polygon') {\n        continue;\n      }\n\n      var exterior = geometries[i].exterior;\n      var interiors = geometries[i].interiors;\n\n      for (var p = 0; p < exterior.length; p++) {\n        vec2.applyTransform(exterior[p], exterior[p], transform);\n      }\n\n      for (var h = 0; h < (interiors ? interiors.length : 0); h++) {\n        for (var p = 0; p < interiors[h].length; p++) {\n          vec2.applyTransform(interiors[h][p], interiors[h][p], transform);\n        }\n      }\n    }\n\n    rect = this._rect;\n    rect.copy(target);\n    this.center = [rect.x + rect.width / 2, rect.y + rect.height / 2];\n  };\n\n  Region.prototype.cloneShallow = function (name) {\n    name == null && (name = this.name);\n    var newRegion = new Region(name, this.geometries, this.center);\n    newRegion._rect = this._rect;\n    newRegion.transformTo = null;\n    return newRegion;\n  };\n\n  return Region;\n}();\n\nexport default Region;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Region from './Region';\n\nfunction decode(json) {\n  if (!json.UTF8Encoding) {\n    return json;\n  }\n\n  var jsonCompressed = json;\n  var encodeScale = jsonCompressed.UTF8Scale;\n\n  if (encodeScale == null) {\n    encodeScale = 1024;\n  }\n\n  var features = jsonCompressed.features;\n\n  for (var f = 0; f < features.length; f++) {\n    var feature = features[f];\n    var geometry = feature.geometry;\n\n    if (geometry.type === 'Polygon') {\n      var coordinates = geometry.coordinates;\n\n      for (var c = 0; c < coordinates.length; c++) {\n        coordinates[c] = decodePolygon(coordinates[c], geometry.encodeOffsets[c], encodeScale);\n      }\n    } else if (geometry.type === 'MultiPolygon') {\n      var coordinates = geometry.coordinates;\n\n      for (var c = 0; c < coordinates.length; c++) {\n        var coordinate = coordinates[c];\n\n        for (var c2 = 0; c2 < coordinate.length; c2++) {\n          coordinate[c2] = decodePolygon(coordinate[c2], geometry.encodeOffsets[c][c2], encodeScale);\n        }\n      }\n    }\n  }\n\n  jsonCompressed.UTF8Encoding = false;\n  return jsonCompressed;\n}\n\nfunction decodePolygon(coordinate, encodeOffsets, encodeScale) {\n  var result = [];\n  var prevX = encodeOffsets[0];\n  var prevY = encodeOffsets[1];\n\n  for (var i = 0; i < coordinate.length; i += 2) {\n    var x = coordinate.charCodeAt(i) - 64;\n    var y = coordinate.charCodeAt(i + 1) - 64;\n    x = x >> 1 ^ -(x & 1);\n    y = y >> 1 ^ -(y & 1);\n    x += prevX;\n    y += prevY;\n    prevX = x;\n    prevY = y;\n    result.push([x / encodeScale, y / encodeScale]);\n  }\n\n  return result;\n}\n\nexport default function parseGeoJSON(geoJson, nameProperty) {\n  geoJson = decode(geoJson);\n  return zrUtil.map(zrUtil.filter(geoJson.features, function (featureObj) {\n    return featureObj.geometry && featureObj.properties && featureObj.geometry.coordinates.length > 0;\n  }), function (featureObj) {\n    var properties = featureObj.properties;\n    var geo = featureObj.geometry;\n    var geometries = [];\n\n    if (geo.type === 'Polygon') {\n      var coordinates = geo.coordinates;\n      geometries.push({\n        type: 'polygon',\n        exterior: coordinates[0],\n        interiors: coordinates.slice(1)\n      });\n    }\n\n    if (geo.type === 'MultiPolygon') {\n      var coordinates = geo.coordinates;\n      zrUtil.each(coordinates, function (item) {\n        if (item[0]) {\n          geometries.push({\n            type: 'polygon',\n            exterior: item[0],\n            interiors: item.slice(1)\n          });\n        }\n      });\n    }\n\n    var region = new Region(properties[nameProperty || 'name'], geometries, properties.cp);\n    region.properties = properties;\n    return region;\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as textContain from 'zrender/lib/contain/text';\nimport { makeInner } from '../util/model';\nimport { makeLabelFormatter, getOptionCategoryInterval, shouldShowAllLabels } from './axisHelper';\nvar inner = makeInner();\nexport function createAxisLabels(axis) {\n  return axis.type === 'category' ? makeCategoryLabels(axis) : makeRealNumberLabels(axis);\n}\nexport function createAxisTicks(axis, tickModel) {\n  return axis.type === 'category' ? makeCategoryTicks(axis, tickModel) : {\n    ticks: zrUtil.map(axis.scale.getTicks(), function (tick) {\n      return tick.value;\n    })\n  };\n}\n\nfunction makeCategoryLabels(axis) {\n  var labelModel = axis.getLabelModel();\n  var result = makeCategoryLabelsActually(axis, labelModel);\n  return !labelModel.get('show') || axis.scale.isBlank() ? {\n    labels: [],\n    labelCategoryInterval: result.labelCategoryInterval\n  } : result;\n}\n\nfunction makeCategoryLabelsActually(axis, labelModel) {\n  var labelsCache = getListCache(axis, 'labels');\n  var optionLabelInterval = getOptionCategoryInterval(labelModel);\n  var result = listCacheGet(labelsCache, optionLabelInterval);\n\n  if (result) {\n    return result;\n  }\n\n  var labels;\n  var numericLabelInterval;\n\n  if (zrUtil.isFunction(optionLabelInterval)) {\n    labels = makeLabelsByCustomizedCategoryInterval(axis, optionLabelInterval);\n  } else {\n    numericLabelInterval = optionLabelInterval === 'auto' ? makeAutoCategoryInterval(axis) : optionLabelInterval;\n    labels = makeLabelsByNumericCategoryInterval(axis, numericLabelInterval);\n  }\n\n  return listCacheSet(labelsCache, optionLabelInterval, {\n    labels: labels,\n    labelCategoryInterval: numericLabelInterval\n  });\n}\n\nfunction makeCategoryTicks(axis, tickModel) {\n  var ticksCache = getListCache(axis, 'ticks');\n  var optionTickInterval = getOptionCategoryInterval(tickModel);\n  var result = listCacheGet(ticksCache, optionTickInterval);\n\n  if (result) {\n    return result;\n  }\n\n  var ticks;\n  var tickCategoryInterval;\n\n  if (!tickModel.get('show') || axis.scale.isBlank()) {\n    ticks = [];\n  }\n\n  if (zrUtil.isFunction(optionTickInterval)) {\n    ticks = makeLabelsByCustomizedCategoryInterval(axis, optionTickInterval, true);\n  } else if (optionTickInterval === 'auto') {\n    var labelsResult = makeCategoryLabelsActually(axis, axis.getLabelModel());\n    tickCategoryInterval = labelsResult.labelCategoryInterval;\n    ticks = zrUtil.map(labelsResult.labels, function (labelItem) {\n      return labelItem.tickValue;\n    });\n  } else {\n    tickCategoryInterval = optionTickInterval;\n    ticks = makeLabelsByNumericCategoryInterval(axis, tickCategoryInterval, true);\n  }\n\n  return listCacheSet(ticksCache, optionTickInterval, {\n    ticks: ticks,\n    tickCategoryInterval: tickCategoryInterval\n  });\n}\n\nfunction makeRealNumberLabels(axis) {\n  var ticks = axis.scale.getTicks();\n  var labelFormatter = makeLabelFormatter(axis);\n  return {\n    labels: zrUtil.map(ticks, function (tick, idx) {\n      return {\n        formattedLabel: labelFormatter(tick, idx),\n        rawLabel: axis.scale.getLabel(tick),\n        tickValue: tick.value\n      };\n    })\n  };\n}\n\nfunction getListCache(axis, prop) {\n  return inner(axis)[prop] || (inner(axis)[prop] = []);\n}\n\nfunction listCacheGet(cache, key) {\n  for (var i = 0; i < cache.length; i++) {\n    if (cache[i].key === key) {\n      return cache[i].value;\n    }\n  }\n}\n\nfunction listCacheSet(cache, key, value) {\n  cache.push({\n    key: key,\n    value: value\n  });\n  return value;\n}\n\nfunction makeAutoCategoryInterval(axis) {\n  var result = inner(axis).autoInterval;\n  return result != null ? result : inner(axis).autoInterval = axis.calculateCategoryInterval();\n}\n\nexport function calculateCategoryInterval(axis) {\n  var params = fetchAutoCategoryIntervalCalculationParams(axis);\n  var labelFormatter = makeLabelFormatter(axis);\n  var rotation = (params.axisRotate - params.labelRotate) / 180 * Math.PI;\n  var ordinalScale = axis.scale;\n  var ordinalExtent = ordinalScale.getExtent();\n  var tickCount = ordinalScale.count();\n\n  if (ordinalExtent[1] - ordinalExtent[0] < 1) {\n    return 0;\n  }\n\n  var step = 1;\n\n  if (tickCount > 40) {\n    step = Math.max(1, Math.floor(tickCount / 40));\n  }\n\n  var tickValue = ordinalExtent[0];\n  var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue);\n  var unitW = Math.abs(unitSpan * Math.cos(rotation));\n  var unitH = Math.abs(unitSpan * Math.sin(rotation));\n  var maxW = 0;\n  var maxH = 0;\n\n  for (; tickValue <= ordinalExtent[1]; tickValue += step) {\n    var width = 0;\n    var height = 0;\n    var rect = textContain.getBoundingRect(labelFormatter({\n      value: tickValue\n    }), params.font, 'center', 'top');\n    width = rect.width * 1.3;\n    height = rect.height * 1.3;\n    maxW = Math.max(maxW, width, 7);\n    maxH = Math.max(maxH, height, 7);\n  }\n\n  var dw = maxW / unitW;\n  var dh = maxH / unitH;\n  isNaN(dw) && (dw = Infinity);\n  isNaN(dh) && (dh = Infinity);\n  var interval = Math.max(0, Math.floor(Math.min(dw, dh)));\n  var cache = inner(axis.model);\n  var axisExtent = axis.getExtent();\n  var lastAutoInterval = cache.lastAutoInterval;\n  var lastTickCount = cache.lastTickCount;\n\n  if (lastAutoInterval != null && lastTickCount != null && Math.abs(lastAutoInterval - interval) <= 1 && Math.abs(lastTickCount - tickCount) <= 1 && lastAutoInterval > interval && cache.axisExtent0 === axisExtent[0] && cache.axisExtent1 === axisExtent[1]) {\n    interval = lastAutoInterval;\n  } else {\n    cache.lastTickCount = tickCount;\n    cache.lastAutoInterval = interval;\n    cache.axisExtent0 = axisExtent[0];\n    cache.axisExtent1 = axisExtent[1];\n  }\n\n  return interval;\n}\n\nfunction fetchAutoCategoryIntervalCalculationParams(axis) {\n  var labelModel = axis.getLabelModel();\n  return {\n    axisRotate: axis.getRotate ? axis.getRotate() : axis.isHorizontal && !axis.isHorizontal() ? 90 : 0,\n    labelRotate: labelModel.get('rotate') || 0,\n    font: labelModel.getFont()\n  };\n}\n\nfunction makeLabelsByNumericCategoryInterval(axis, categoryInterval, onlyTick) {\n  var labelFormatter = makeLabelFormatter(axis);\n  var ordinalScale = axis.scale;\n  var ordinalExtent = ordinalScale.getExtent();\n  var labelModel = axis.getLabelModel();\n  var result = [];\n  var step = Math.max((categoryInterval || 0) + 1, 1);\n  var startTick = ordinalExtent[0];\n  var tickCount = ordinalScale.count();\n\n  if (startTick !== 0 && step > 1 && tickCount / step > 2) {\n    startTick = Math.round(Math.ceil(startTick / step) * step);\n  }\n\n  var showAllLabel = shouldShowAllLabels(axis);\n  var includeMinLabel = labelModel.get('showMinLabel') || showAllLabel;\n  var includeMaxLabel = labelModel.get('showMaxLabel') || showAllLabel;\n\n  if (includeMinLabel && startTick !== ordinalExtent[0]) {\n    addItem(ordinalExtent[0]);\n  }\n\n  var tickValue = startTick;\n\n  for (; tickValue <= ordinalExtent[1]; tickValue += step) {\n    addItem(tickValue);\n  }\n\n  if (includeMaxLabel && tickValue - step !== ordinalExtent[1]) {\n    addItem(ordinalExtent[1]);\n  }\n\n  function addItem(tickValue) {\n    var tickObj = {\n      value: tickValue\n    };\n    result.push(onlyTick ? tickValue : {\n      formattedLabel: labelFormatter(tickObj),\n      rawLabel: ordinalScale.getLabel(tickObj),\n      tickValue: tickValue\n    });\n  }\n\n  return result;\n}\n\nfunction makeLabelsByCustomizedCategoryInterval(axis, categoryInterval, onlyTick) {\n  var ordinalScale = axis.scale;\n  var labelFormatter = makeLabelFormatter(axis);\n  var result = [];\n  zrUtil.each(ordinalScale.getTicks(), function (tick) {\n    var rawLabel = ordinalScale.getLabel(tick);\n    var tickValue = tick.value;\n\n    if (categoryInterval(tick.value, rawLabel)) {\n      result.push(onlyTick ? tickValue : {\n        formattedLabel: labelFormatter(tick),\n        rawLabel: rawLabel,\n        tickValue: tickValue\n      });\n    }\n  });\n  return result;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, map } from 'zrender/lib/core/util';\nimport { linearMap, getPixelPrecision, round } from '../util/number';\nimport { createAxisTicks, createAxisLabels, calculateCategoryInterval } from './axisTickLabelBuilder';\nvar NORMALIZED_EXTENT = [0, 1];\n\nvar Axis = function () {\n  function Axis(dim, scale, extent) {\n    this.onBand = false;\n    this.inverse = false;\n    this.dim = dim;\n    this.scale = scale;\n    this._extent = extent || [0, 0];\n  }\n\n  Axis.prototype.contain = function (coord) {\n    var extent = this._extent;\n    var min = Math.min(extent[0], extent[1]);\n    var max = Math.max(extent[0], extent[1]);\n    return coord >= min && coord <= max;\n  };\n\n  Axis.prototype.containData = function (data) {\n    return this.scale.contain(data);\n  };\n\n  Axis.prototype.getExtent = function () {\n    return this._extent.slice();\n  };\n\n  Axis.prototype.getPixelPrecision = function (dataExtent) {\n    return getPixelPrecision(dataExtent || this.scale.getExtent(), this._extent);\n  };\n\n  Axis.prototype.setExtent = function (start, end) {\n    var extent = this._extent;\n    extent[0] = start;\n    extent[1] = end;\n  };\n\n  Axis.prototype.dataToCoord = function (data, clamp) {\n    var extent = this._extent;\n    var scale = this.scale;\n    data = scale.normalize(data);\n\n    if (this.onBand && scale.type === 'ordinal') {\n      extent = extent.slice();\n      fixExtentWithBands(extent, scale.count());\n    }\n\n    return linearMap(data, NORMALIZED_EXTENT, extent, clamp);\n  };\n\n  Axis.prototype.coordToData = function (coord, clamp) {\n    var extent = this._extent;\n    var scale = this.scale;\n\n    if (this.onBand && scale.type === 'ordinal') {\n      extent = extent.slice();\n      fixExtentWithBands(extent, scale.count());\n    }\n\n    var t = linearMap(coord, extent, NORMALIZED_EXTENT, clamp);\n    return this.scale.scale(t);\n  };\n\n  Axis.prototype.pointToData = function (point, clamp) {\n    return;\n  };\n\n  Axis.prototype.getTicksCoords = function (opt) {\n    opt = opt || {};\n    var tickModel = opt.tickModel || this.getTickModel();\n    var result = createAxisTicks(this, tickModel);\n    var ticks = result.ticks;\n    var ticksCoords = map(ticks, function (tickVal) {\n      return {\n        coord: this.dataToCoord(this.scale.type === 'ordinal' ? this.scale.getRawOrdinalNumber(tickVal) : tickVal),\n        tickValue: tickVal\n      };\n    }, this);\n    var alignWithLabel = tickModel.get('alignWithLabel');\n    fixOnBandTicksCoords(this, ticksCoords, alignWithLabel, opt.clamp);\n    return ticksCoords;\n  };\n\n  Axis.prototype.getMinorTicksCoords = function () {\n    if (this.scale.type === 'ordinal') {\n      return [];\n    }\n\n    var minorTickModel = this.model.getModel('minorTick');\n    var splitNumber = minorTickModel.get('splitNumber');\n\n    if (!(splitNumber > 0 && splitNumber < 100)) {\n      splitNumber = 5;\n    }\n\n    var minorTicks = this.scale.getMinorTicks(splitNumber);\n    var minorTicksCoords = map(minorTicks, function (minorTicksGroup) {\n      return map(minorTicksGroup, function (minorTick) {\n        return {\n          coord: this.dataToCoord(minorTick),\n          tickValue: minorTick\n        };\n      }, this);\n    }, this);\n    return minorTicksCoords;\n  };\n\n  Axis.prototype.getViewLabels = function () {\n    return createAxisLabels(this).labels;\n  };\n\n  Axis.prototype.getLabelModel = function () {\n    return this.model.getModel('axisLabel');\n  };\n\n  Axis.prototype.getTickModel = function () {\n    return this.model.getModel('axisTick');\n  };\n\n  Axis.prototype.getBandWidth = function () {\n    var axisExtent = this._extent;\n    var dataExtent = this.scale.getExtent();\n    var len = dataExtent[1] - dataExtent[0] + (this.onBand ? 1 : 0);\n    len === 0 && (len = 1);\n    var size = Math.abs(axisExtent[1] - axisExtent[0]);\n    return Math.abs(size) / len;\n  };\n\n  Axis.prototype.calculateCategoryInterval = function () {\n    return calculateCategoryInterval(this);\n  };\n\n  return Axis;\n}();\n\nfunction fixExtentWithBands(extent, nTick) {\n  var size = extent[1] - extent[0];\n  var len = nTick;\n  var margin = size / len / 2;\n  extent[0] += margin;\n  extent[1] -= margin;\n}\n\nfunction fixOnBandTicksCoords(axis, ticksCoords, alignWithLabel, clamp) {\n  var ticksLen = ticksCoords.length;\n\n  if (!axis.onBand || alignWithLabel || !ticksLen) {\n    return;\n  }\n\n  var axisExtent = axis.getExtent();\n  var last;\n  var diffSize;\n\n  if (ticksLen === 1) {\n    ticksCoords[0].coord = axisExtent[0];\n    last = ticksCoords[1] = {\n      coord: axisExtent[0]\n    };\n  } else {\n    var crossLen = ticksCoords[ticksLen - 1].tickValue - ticksCoords[0].tickValue;\n    var shift_1 = (ticksCoords[ticksLen - 1].coord - ticksCoords[0].coord) / crossLen;\n    each(ticksCoords, function (ticksItem) {\n      ticksItem.coord -= shift_1 / 2;\n    });\n    var dataExtent = axis.scale.getExtent();\n    diffSize = 1 + dataExtent[1] - ticksCoords[ticksLen - 1].tickValue;\n    last = {\n      coord: ticksCoords[ticksLen - 1].coord + shift_1 * diffSize\n    };\n    ticksCoords.push(last);\n  }\n\n  var inverse = axisExtent[0] > axisExtent[1];\n\n  if (littleThan(ticksCoords[0].coord, axisExtent[0])) {\n    clamp ? ticksCoords[0].coord = axisExtent[0] : ticksCoords.shift();\n  }\n\n  if (clamp && littleThan(axisExtent[0], ticksCoords[0].coord)) {\n    ticksCoords.unshift({\n      coord: axisExtent[0]\n    });\n  }\n\n  if (littleThan(axisExtent[1], last.coord)) {\n    clamp ? last.coord = axisExtent[1] : ticksCoords.pop();\n  }\n\n  if (clamp && littleThan(last.coord, axisExtent[1])) {\n    ticksCoords.push({\n      coord: axisExtent[1]\n    });\n  }\n\n  function littleThan(a, b) {\n    a = round(a);\n    b = round(b);\n    return inverse ? a > b : a < b;\n  }\n}\n\nexport default Axis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ComponentModel from '../model/Component';\nimport ComponentView from '../view/Component';\nimport SeriesModel from '../model/Series';\nimport ChartView from '../view/Chart';\nimport * as zrender_1 from 'zrender/lib/zrender';\nexport { zrender_1 as zrender };\nimport * as matrix_1 from 'zrender/lib/core/matrix';\nexport { matrix_1 as matrix };\nimport * as vector_1 from 'zrender/lib/core/vector';\nexport { vector_1 as vector };\nimport * as zrUtil_1 from 'zrender/lib/core/util';\nexport { zrUtil_1 as zrUtil };\nimport * as color_1 from 'zrender/lib/tool/color';\nexport { color_1 as color };\nexport { throttle } from '../util/throttle';\nimport * as helper_1 from './api/helper';\nexport { helper_1 as helper };\nexport { use } from '../extension';\nexport { default as parseGeoJSON } from '../coord/geo/parseGeoJson';\nexport { default as parseGeoJson } from '../coord/geo/parseGeoJson';\nimport * as number_1 from './api/number';\nexport { number_1 as number };\nimport * as time_1 from './api/time';\nexport { time_1 as time };\nimport * as graphic_1 from './api/graphic';\nexport { graphic_1 as graphic };\nimport * as format_1 from './api/format';\nexport { format_1 as format };\nimport * as util_1 from './api/util';\nexport { util_1 as util };\nexport { default as env } from 'zrender/lib/core/env';\nexport { default as List } from '../data/List';\nexport { default as Model } from '../model/Model';\nexport { default as Axis } from '../coord/Axis';\nexport { ComponentModel, ComponentView, SeriesModel, ChartView };\nexport { brushSingle as innerDrawElementOnCanvas } from 'zrender/lib/canvas/graphic';\nexport function extendComponentModel(proto) {\n  var Model = ComponentModel.extend(proto);\n  ComponentModel.registerClass(Model);\n  return Model;\n}\nexport function extendComponentView(proto) {\n  var View = ComponentView.extend(proto);\n  ComponentView.registerClass(View);\n  return View;\n}\nexport function extendSeriesModel(proto) {\n  var Model = SeriesModel.extend(proto);\n  SeriesModel.registerClass(Model);\n  return Model;\n}\nexport function extendChartView(proto) {\n  var View = ChartView.extend(proto);\n  ChartView.registerClass(View);\n  return View;\n}","export function createElement(name) {\n    return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\n","function diff(oldArr, newArr, equals) {\n    if (!equals) {\n        equals = function (a, b) {\n            return a === b;\n        };\n    }\n    oldArr = oldArr.slice();\n    newArr = newArr.slice();\n    var newLen = newArr.length;\n    var oldLen = oldArr.length;\n    var editLength = 1;\n    var maxEditLength = newLen + oldLen;\n    var bestPath = [{ newPos: -1, components: [] }];\n    var oldPos = extractCommon(bestPath[0], newArr, oldArr, 0, equals);\n    if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n        var indices = [];\n        for (var i = 0; i < newArr.length; i++) {\n            indices.push(i);\n        }\n        return [{\n                indices: indices,\n                count: newArr.length,\n                added: false,\n                removed: false\n            }];\n    }\n    function execEditLength() {\n        for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {\n            var basePath;\n            var addPath = bestPath[diagonalPath - 1];\n            var removePath = bestPath[diagonalPath + 1];\n            var oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;\n            if (addPath) {\n                bestPath[diagonalPath - 1] = undefined;\n            }\n            var canAdd = addPath && addPath.newPos + 1 < newLen;\n            var canRemove = removePath && 0 <= oldPos && oldPos < oldLen;\n            if (!canAdd && !canRemove) {\n                bestPath[diagonalPath] = undefined;\n                continue;\n            }\n            if (!canAdd || (canRemove && addPath.newPos < removePath.newPos)) {\n                basePath = clonePath(removePath);\n                pushComponent(basePath.components, false, true);\n            }\n            else {\n                basePath = addPath;\n                basePath.newPos++;\n                pushComponent(basePath.components, true, false);\n            }\n            oldPos = extractCommon(basePath, newArr, oldArr, diagonalPath, equals);\n            if (basePath.newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n                return buildValues(basePath.components);\n            }\n            else {\n                bestPath[diagonalPath] = basePath;\n            }\n        }\n        editLength++;\n    }\n    while (editLength <= maxEditLength) {\n        var ret = execEditLength();\n        if (ret) {\n            return ret;\n        }\n    }\n}\nfunction extractCommon(basePath, newArr, oldArr, diagonalPath, equals) {\n    var newLen = newArr.length;\n    var oldLen = oldArr.length;\n    var newPos = basePath.newPos;\n    var oldPos = newPos - diagonalPath;\n    var commonCount = 0;\n    while (newPos + 1 < newLen && oldPos + 1 < oldLen && equals(newArr[newPos + 1], oldArr[oldPos + 1])) {\n        newPos++;\n        oldPos++;\n        commonCount++;\n    }\n    if (commonCount) {\n        basePath.components.push({\n            count: commonCount,\n            added: false,\n            removed: false,\n            indices: []\n        });\n    }\n    basePath.newPos = newPos;\n    return oldPos;\n}\nfunction pushComponent(components, added, removed) {\n    var last = components[components.length - 1];\n    if (last && last.added === added && last.removed === removed) {\n        components[components.length - 1] = {\n            count: last.count + 1,\n            added: added,\n            removed: removed,\n            indices: []\n        };\n    }\n    else {\n        components.push({\n            count: 1,\n            added: added,\n            removed: removed,\n            indices: []\n        });\n    }\n}\nfunction buildValues(components) {\n    var componentPos = 0;\n    var componentLen = components.length;\n    var newPos = 0;\n    var oldPos = 0;\n    for (; componentPos < componentLen; componentPos++) {\n        var component = components[componentPos];\n        if (!component.removed) {\n            var indices = [];\n            for (var i = newPos; i < newPos + component.count; i++) {\n                indices.push(i);\n            }\n            component.indices = indices;\n            newPos += component.count;\n            if (!component.added) {\n                oldPos += component.count;\n            }\n        }\n        else {\n            for (var i = oldPos; i < oldPos + component.count; i++) {\n                component.indices.push(i);\n            }\n            oldPos += component.count;\n        }\n    }\n    return components;\n}\nfunction clonePath(path) {\n    return { newPos: path.newPos, components: path.components.slice(0) };\n}\nexport default function arrayDiff(oldArr, newArr, equal) {\n    return diff(oldArr, newArr, equal);\n}\n","import { createElement } from './core';\nimport ZRImage from '../graphic/Image';\nimport { DEFAULT_FONT, getLineHeight } from '../contain/text';\nimport { map } from '../core/util';\nimport { normalizeLineDash } from '../graphic/helper/dashStyle';\nvar NONE = 'none';\nvar mathRound = Math.round;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI = Math.PI;\nvar PI2 = Math.PI * 2;\nvar degree = 180 / PI;\nvar EPSILON = 1e-4;\nfunction round3(val) {\n    return mathRound(val * 1e3) / 1e3;\n}\nfunction round4(val) {\n    return mathRound(val * 1e4) / 1e4;\n}\nfunction isAroundZero(val) {\n    return val < EPSILON && val > -EPSILON;\n}\nfunction pathHasFill(style) {\n    var fill = style.fill;\n    return fill != null && fill !== NONE;\n}\nfunction pathHasStroke(style) {\n    var stroke = style.stroke;\n    return stroke != null && stroke !== NONE;\n}\nfunction setTransform(svgEl, m) {\n    if (m) {\n        attr(svgEl, 'transform', 'matrix('\n            + round3(m[0]) + ','\n            + round3(m[1]) + ','\n            + round3(m[2]) + ','\n            + round3(m[3]) + ','\n            + round4(m[4]) + ','\n            + round4(m[5])\n            + ')');\n    }\n}\nfunction attr(el, key, val) {\n    if (!val || val.type !== 'linear' && val.type !== 'radial') {\n        el.setAttribute(key, val);\n    }\n}\nfunction attrXLink(el, key, val) {\n    el.setAttributeNS('http://www.w3.org/1999/xlink', key, val);\n}\nfunction attrXML(el, key, val) {\n    el.setAttributeNS('http://www.w3.org/XML/1998/namespace', key, val);\n}\nfunction bindStyle(svgEl, style, el) {\n    var opacity = style.opacity == null ? 1 : style.opacity;\n    if (el instanceof ZRImage) {\n        svgEl.style.opacity = opacity + '';\n        return;\n    }\n    if (pathHasFill(style)) {\n        var fill = style.fill;\n        fill = fill === 'transparent' ? NONE : fill;\n        attr(svgEl, 'fill', fill);\n        attr(svgEl, 'fill-opacity', (style.fillOpacity != null ? style.fillOpacity * opacity : opacity) + '');\n    }\n    else {\n        attr(svgEl, 'fill', NONE);\n    }\n    if (pathHasStroke(style)) {\n        var stroke = style.stroke;\n        stroke = stroke === 'transparent' ? NONE : stroke;\n        attr(svgEl, 'stroke', stroke);\n        var strokeWidth = style.lineWidth;\n        var strokeScale_1 = style.strokeNoScale\n            ? el.getLineScale()\n            : 1;\n        attr(svgEl, 'stroke-width', (strokeScale_1 ? strokeWidth / strokeScale_1 : 0) + '');\n        attr(svgEl, 'paint-order', style.strokeFirst ? 'stroke' : 'fill');\n        attr(svgEl, 'stroke-opacity', (style.strokeOpacity != null ? style.strokeOpacity * opacity : opacity) + '');\n        var lineDash = style.lineDash && strokeWidth > 0 && normalizeLineDash(style.lineDash, strokeWidth);\n        if (lineDash) {\n            var lineDashOffset = style.lineDashOffset;\n            if (strokeScale_1 && strokeScale_1 !== 1) {\n                lineDash = map(lineDash, function (rawVal) {\n                    return rawVal / strokeScale_1;\n                });\n                if (lineDashOffset) {\n                    lineDashOffset /= strokeScale_1;\n                    lineDashOffset = mathRound(lineDashOffset);\n                }\n            }\n            attr(svgEl, 'stroke-dasharray', lineDash.join(','));\n            attr(svgEl, 'stroke-dashoffset', (lineDashOffset || 0) + '');\n        }\n        else {\n            attr(svgEl, 'stroke-dasharray', '');\n        }\n        style.lineCap && attr(svgEl, 'stroke-linecap', style.lineCap);\n        style.lineJoin && attr(svgEl, 'stroke-linejoin', style.lineJoin);\n        style.miterLimit && attr(svgEl, 'stroke-miterlimit', style.miterLimit + '');\n    }\n    else {\n        attr(svgEl, 'stroke', NONE);\n    }\n}\nvar SVGPathRebuilder = (function () {\n    function SVGPathRebuilder() {\n    }\n    SVGPathRebuilder.prototype.reset = function () {\n        this._d = [];\n        this._str = '';\n    };\n    SVGPathRebuilder.prototype.moveTo = function (x, y) {\n        this._add('M', x, y);\n    };\n    SVGPathRebuilder.prototype.lineTo = function (x, y) {\n        this._add('L', x, y);\n    };\n    SVGPathRebuilder.prototype.bezierCurveTo = function (x, y, x2, y2, x3, y3) {\n        this._add('C', x, y, x2, y2, x3, y3);\n    };\n    SVGPathRebuilder.prototype.quadraticCurveTo = function (x, y, x2, y2) {\n        this._add('Q', x, y, x2, y2);\n    };\n    SVGPathRebuilder.prototype.arc = function (cx, cy, r, startAngle, endAngle, anticlockwise) {\n        this.ellipse(cx, cy, r, r, 0, startAngle, endAngle, anticlockwise);\n    };\n    SVGPathRebuilder.prototype.ellipse = function (cx, cy, rx, ry, psi, startAngle, endAngle, anticlockwise) {\n        var firstCmd = this._d.length === 0;\n        var dTheta = endAngle - startAngle;\n        var clockwise = !anticlockwise;\n        var dThetaPositive = Math.abs(dTheta);\n        var isCircle = isAroundZero(dThetaPositive - PI2)\n            || (clockwise ? dTheta >= PI2 : -dTheta >= PI2);\n        var unifiedTheta = dTheta > 0 ? dTheta % PI2 : (dTheta % PI2 + PI2);\n        var large = false;\n        if (isCircle) {\n            large = true;\n        }\n        else if (isAroundZero(dThetaPositive)) {\n            large = false;\n        }\n        else {\n            large = (unifiedTheta >= PI) === !!clockwise;\n        }\n        var x0 = round4(cx + rx * mathCos(startAngle));\n        var y0 = round4(cy + ry * mathSin(startAngle));\n        if (isCircle) {\n            if (clockwise) {\n                dTheta = PI2 - 1e-4;\n            }\n            else {\n                dTheta = -PI2 + 1e-4;\n            }\n            large = true;\n            if (firstCmd) {\n                this._d.push('M', x0, y0);\n            }\n        }\n        var x = round4(cx + rx * mathCos(startAngle + dTheta));\n        var y = round4(cy + ry * mathSin(startAngle + dTheta));\n        if (isNaN(x0) || isNaN(y0) || isNaN(rx) || isNaN(ry) || isNaN(psi) || isNaN(degree) || isNaN(x) || isNaN(y)) {\n            return '';\n        }\n        this._d.push('A', round4(rx), round4(ry), mathRound(psi * degree), +large, +clockwise, x, y);\n    };\n    SVGPathRebuilder.prototype.rect = function (x, y, w, h) {\n        this._add('M', x, y);\n        this._add('L', x + w, y);\n        this._add('L', x + w, y + h);\n        this._add('L', x, y + h);\n        this._add('L', x, y);\n    };\n    SVGPathRebuilder.prototype.closePath = function () {\n        if (this._d.length > 0) {\n            this._add('Z');\n        }\n    };\n    SVGPathRebuilder.prototype._add = function (cmd, a, b, c, d, e, f, g, h) {\n        this._d.push(cmd);\n        for (var i = 1; i < arguments.length; i++) {\n            var val = arguments[i];\n            if (isNaN(val)) {\n                this._invalid = true;\n                return;\n            }\n            this._d.push(round4(val));\n        }\n    };\n    SVGPathRebuilder.prototype.generateStr = function () {\n        this._str = this._invalid ? '' : this._d.join(' ');\n        this._d = [];\n    };\n    SVGPathRebuilder.prototype.getStr = function () {\n        return this._str;\n    };\n    return SVGPathRebuilder;\n}());\nvar svgPath = {\n    brush: function (el) {\n        var style = el.style;\n        var svgEl = el.__svgEl;\n        if (!svgEl) {\n            svgEl = createElement('path');\n            el.__svgEl = svgEl;\n        }\n        if (!el.path) {\n            el.createPathProxy();\n        }\n        var path = el.path;\n        if (el.shapeChanged()) {\n            path.beginPath();\n            el.buildPath(path, el.shape);\n            el.pathUpdated();\n        }\n        var pathVersion = path.getVersion();\n        var elExt = el;\n        var svgPathBuilder = elExt.__svgPathBuilder;\n        if (elExt.__svgPathVersion !== pathVersion || !svgPathBuilder || el.style.strokePercent < 1) {\n            if (!svgPathBuilder) {\n                svgPathBuilder = elExt.__svgPathBuilder = new SVGPathRebuilder();\n            }\n            svgPathBuilder.reset();\n            path.rebuildPath(svgPathBuilder, el.style.strokePercent);\n            svgPathBuilder.generateStr();\n            elExt.__svgPathVersion = pathVersion;\n        }\n        attr(svgEl, 'd', svgPathBuilder.getStr());\n        bindStyle(svgEl, style, el);\n        setTransform(svgEl, el.transform);\n    }\n};\nexport { svgPath as path };\nvar svgImage = {\n    brush: function (el) {\n        var style = el.style;\n        var image = style.image;\n        if (image instanceof HTMLImageElement) {\n            image = image.src;\n        }\n        else if (image instanceof HTMLCanvasElement) {\n            image = image.toDataURL();\n        }\n        if (!image) {\n            return;\n        }\n        var x = style.x || 0;\n        var y = style.y || 0;\n        var dw = style.width;\n        var dh = style.height;\n        var svgEl = el.__svgEl;\n        if (!svgEl) {\n            svgEl = createElement('image');\n            el.__svgEl = svgEl;\n        }\n        if (image !== el.__imageSrc) {\n            attrXLink(svgEl, 'href', image);\n            el.__imageSrc = image;\n        }\n        attr(svgEl, 'width', dw + '');\n        attr(svgEl, 'height', dh + '');\n        attr(svgEl, 'x', x + '');\n        attr(svgEl, 'y', y + '');\n        bindStyle(svgEl, style, el);\n        setTransform(svgEl, el.transform);\n    }\n};\nexport { svgImage as image };\nvar TEXT_ALIGN_TO_ANCHOR = {\n    left: 'start',\n    right: 'end',\n    center: 'middle',\n    middle: 'middle'\n};\nfunction adjustTextY(y, lineHeight, textBaseline) {\n    if (textBaseline === 'top') {\n        y += lineHeight / 2;\n    }\n    else if (textBaseline === 'bottom') {\n        y -= lineHeight / 2;\n    }\n    return y;\n}\nvar svgText = {\n    brush: function (el) {\n        var style = el.style;\n        var text = style.text;\n        text != null && (text += '');\n        if (!text || isNaN(style.x) || isNaN(style.y)) {\n            return;\n        }\n        var textSvgEl = el.__svgEl;\n        if (!textSvgEl) {\n            textSvgEl = createElement('text');\n            attrXML(textSvgEl, 'xml:space', 'preserve');\n            el.__svgEl = textSvgEl;\n        }\n        var font = style.font || DEFAULT_FONT;\n        var textSvgElStyle = textSvgEl.style;\n        textSvgElStyle.font = font;\n        textSvgEl.textContent = text;\n        bindStyle(textSvgEl, style, el);\n        setTransform(textSvgEl, el.transform);\n        var x = style.x || 0;\n        var y = adjustTextY(style.y || 0, getLineHeight(font), style.textBaseline);\n        var textAlign = TEXT_ALIGN_TO_ANCHOR[style.textAlign]\n            || style.textAlign;\n        attr(textSvgEl, 'dominant-baseline', 'central');\n        attr(textSvgEl, 'text-anchor', textAlign);\n        attr(textSvgEl, 'x', x + '');\n        attr(textSvgEl, 'y', y + '');\n    }\n};\nexport { svgText as text };\n","import { createElement } from '../core';\nimport * as zrUtil from '../../core/util';\nimport Path from '../../graphic/Path';\nimport ZRImage from '../../graphic/Image';\nimport TSpan from '../../graphic/TSpan';\nimport { path as svgPath, image as svgImage, text as svgText } from '../graphic';\nvar MARK_UNUSED = '0';\nvar MARK_USED = '1';\nvar Definable = (function () {\n    function Definable(zrId, svgRoot, tagNames, markLabel, domName) {\n        this.nextId = 0;\n        this._domName = '_dom';\n        this.createElement = createElement;\n        this._zrId = zrId;\n        this._svgRoot = svgRoot;\n        this._tagNames = typeof tagNames === 'string' ? [tagNames] : tagNames;\n        this._markLabel = markLabel;\n        if (domName) {\n            this._domName = domName;\n        }\n    }\n    Definable.prototype.getDefs = function (isForceCreating) {\n        var svgRoot = this._svgRoot;\n        var defs = this._svgRoot.getElementsByTagName('defs');\n        if (defs.length === 0) {\n            if (isForceCreating) {\n                var defs_1 = svgRoot.insertBefore(this.createElement('defs'), svgRoot.firstChild);\n                if (!defs_1.contains) {\n                    defs_1.contains = function (el) {\n                        var children = defs_1.children;\n                        if (!children) {\n                            return false;\n                        }\n                        for (var i = children.length - 1; i >= 0; --i) {\n                            if (children[i] === el) {\n                                return true;\n                            }\n                        }\n                        return false;\n                    };\n                }\n                return defs_1;\n            }\n            else {\n                return null;\n            }\n        }\n        else {\n            return defs[0];\n        }\n    };\n    Definable.prototype.doUpdate = function (target, onUpdate) {\n        if (!target) {\n            return;\n        }\n        var defs = this.getDefs(false);\n        if (target[this._domName] && defs.contains(target[this._domName])) {\n            if (typeof onUpdate === 'function') {\n                onUpdate(target);\n            }\n        }\n        else {\n            var dom = this.add(target);\n            if (dom) {\n                target[this._domName] = dom;\n            }\n        }\n    };\n    Definable.prototype.add = function (target) {\n        return null;\n    };\n    Definable.prototype.addDom = function (dom) {\n        var defs = this.getDefs(true);\n        if (dom.parentNode !== defs) {\n            defs.appendChild(dom);\n        }\n    };\n    Definable.prototype.removeDom = function (target) {\n        var defs = this.getDefs(false);\n        if (defs && target[this._domName]) {\n            defs.removeChild(target[this._domName]);\n            target[this._domName] = null;\n        }\n    };\n    Definable.prototype.getDoms = function () {\n        var defs = this.getDefs(false);\n        if (!defs) {\n            return [];\n        }\n        var doms = [];\n        zrUtil.each(this._tagNames, function (tagName) {\n            var tags = defs.getElementsByTagName(tagName);\n            for (var i = 0; i < tags.length; i++) {\n                doms.push(tags[i]);\n            }\n        });\n        return doms;\n    };\n    Definable.prototype.markAllUnused = function () {\n        var doms = this.getDoms();\n        var that = this;\n        zrUtil.each(doms, function (dom) {\n            dom[that._markLabel] = MARK_UNUSED;\n        });\n    };\n    Definable.prototype.markDomUsed = function (dom) {\n        dom && (dom[this._markLabel] = MARK_USED);\n    };\n    ;\n    Definable.prototype.markDomUnused = function (dom) {\n        dom && (dom[this._markLabel] = MARK_UNUSED);\n    };\n    ;\n    Definable.prototype.isDomUnused = function (dom) {\n        return dom && dom[this._markLabel] !== MARK_USED;\n    };\n    Definable.prototype.removeUnused = function () {\n        var _this = this;\n        var defs = this.getDefs(false);\n        if (!defs) {\n            return;\n        }\n        var doms = this.getDoms();\n        zrUtil.each(doms, function (dom) {\n            if (_this.isDomUnused(dom)) {\n                defs.removeChild(dom);\n            }\n        });\n    };\n    Definable.prototype.getSvgProxy = function (displayable) {\n        if (displayable instanceof Path) {\n            return svgPath;\n        }\n        else if (displayable instanceof ZRImage) {\n            return svgImage;\n        }\n        else if (displayable instanceof TSpan) {\n            return svgText;\n        }\n        else {\n            return svgPath;\n        }\n    };\n    Definable.prototype.getSvgElement = function (displayable) {\n        return displayable.__svgEl;\n    };\n    return Definable;\n}());\nexport default Definable;\n","import { __extends } from \"tslib\";\nimport Definable from './Definable';\nimport * as zrUtil from '../../core/util';\nimport * as colorTool from '../../tool/color';\nfunction isLinearGradient(value) {\n    return value.type === 'linear';\n}\nfunction isRadialGradient(value) {\n    return value.type === 'radial';\n}\nfunction isGradient(value) {\n    return value && (value.type === 'linear'\n        || value.type === 'radial');\n}\nvar GradientManager = (function (_super) {\n    __extends(GradientManager, _super);\n    function GradientManager(zrId, svgRoot) {\n        return _super.call(this, zrId, svgRoot, ['linearGradient', 'radialGradient'], '__gradient_in_use__') || this;\n    }\n    GradientManager.prototype.addWithoutUpdate = function (svgElement, displayable) {\n        if (displayable && displayable.style) {\n            var that_1 = this;\n            zrUtil.each(['fill', 'stroke'], function (fillOrStroke) {\n                var value = displayable.style[fillOrStroke];\n                if (isGradient(value)) {\n                    var gradient = value;\n                    var defs = that_1.getDefs(true);\n                    var dom = void 0;\n                    if (gradient.__dom) {\n                        dom = gradient.__dom;\n                        if (!defs.contains(gradient.__dom)) {\n                            that_1.addDom(dom);\n                        }\n                    }\n                    else {\n                        dom = that_1.add(gradient);\n                    }\n                    that_1.markUsed(displayable);\n                    var id = dom.getAttribute('id');\n                    svgElement.setAttribute(fillOrStroke, 'url(#' + id + ')');\n                }\n            });\n        }\n    };\n    GradientManager.prototype.add = function (gradient) {\n        var dom;\n        if (isLinearGradient(gradient)) {\n            dom = this.createElement('linearGradient');\n        }\n        else if (isRadialGradient(gradient)) {\n            dom = this.createElement('radialGradient');\n        }\n        else {\n            zrUtil.logError('Illegal gradient type.');\n            return null;\n        }\n        gradient.id = gradient.id || this.nextId++;\n        dom.setAttribute('id', 'zr' + this._zrId\n            + '-gradient-' + gradient.id);\n        this.updateDom(gradient, dom);\n        this.addDom(dom);\n        return dom;\n    };\n    GradientManager.prototype.update = function (gradient) {\n        if (!isGradient(gradient)) {\n            return;\n        }\n        var that = this;\n        this.doUpdate(gradient, function () {\n            var dom = gradient.__dom;\n            if (!dom) {\n                return;\n            }\n            var tagName = dom.tagName;\n            var type = gradient.type;\n            if (type === 'linear' && tagName === 'linearGradient'\n                || type === 'radial' && tagName === 'radialGradient') {\n                that.updateDom(gradient, gradient.__dom);\n            }\n            else {\n                that.removeDom(gradient);\n                that.add(gradient);\n            }\n        });\n    };\n    GradientManager.prototype.updateDom = function (gradient, dom) {\n        if (isLinearGradient(gradient)) {\n            dom.setAttribute('x1', gradient.x + '');\n            dom.setAttribute('y1', gradient.y + '');\n            dom.setAttribute('x2', gradient.x2 + '');\n            dom.setAttribute('y2', gradient.y2 + '');\n        }\n        else if (isRadialGradient(gradient)) {\n            dom.setAttribute('cx', gradient.x + '');\n            dom.setAttribute('cy', gradient.y + '');\n            dom.setAttribute('r', gradient.r + '');\n        }\n        else {\n            zrUtil.logError('Illegal gradient type.');\n            return;\n        }\n        if (gradient.global) {\n            dom.setAttribute('gradientUnits', 'userSpaceOnUse');\n        }\n        else {\n            dom.setAttribute('gradientUnits', 'objectBoundingBox');\n        }\n        dom.innerHTML = '';\n        var colors = gradient.colorStops;\n        for (var i = 0, len = colors.length; i < len; ++i) {\n            var stop_1 = this.createElement('stop');\n            stop_1.setAttribute('offset', colors[i].offset * 100 + '%');\n            var color = colors[i].color;\n            if (color.indexOf('rgba') > -1) {\n                var opacity = colorTool.parse(color)[3];\n                var hex = colorTool.toHex(color);\n                stop_1.setAttribute('stop-color', '#' + hex);\n                stop_1.setAttribute('stop-opacity', opacity + '');\n            }\n            else {\n                stop_1.setAttribute('stop-color', colors[i].color);\n            }\n            dom.appendChild(stop_1);\n        }\n        gradient.__dom = dom;\n    };\n    GradientManager.prototype.markUsed = function (displayable) {\n        if (displayable.style) {\n            var gradient = displayable.style.fill;\n            if (gradient && gradient.__dom) {\n                _super.prototype.markDomUsed.call(this, gradient.__dom);\n            }\n            gradient = displayable.style.stroke;\n            if (gradient && gradient.__dom) {\n                _super.prototype.markDomUsed.call(this, gradient.__dom);\n            }\n        }\n    };\n    return GradientManager;\n}(Definable));\nexport default GradientManager;\n","import { __extends } from \"tslib\";\nimport Definable from './Definable';\nimport * as zrUtil from '../../core/util';\nimport LRU from '../../core/LRU';\nimport { createOrUpdateImage } from '../../graphic/helper/image';\nimport WeakMap from '../../core/WeakMap';\nfunction isPattern(value) {\n    return value && (!!value.image || !!value.svgElement);\n}\nvar patternDomMap = new WeakMap();\nvar PatternManager = (function (_super) {\n    __extends(PatternManager, _super);\n    function PatternManager(zrId, svgRoot) {\n        return _super.call(this, zrId, svgRoot, ['pattern'], '__pattern_in_use__') || this;\n    }\n    PatternManager.prototype.addWithoutUpdate = function (svgElement, displayable) {\n        if (displayable && displayable.style) {\n            var that_1 = this;\n            zrUtil.each(['fill', 'stroke'], function (fillOrStroke) {\n                var pattern = displayable.style[fillOrStroke];\n                if (isPattern(pattern)) {\n                    var defs = that_1.getDefs(true);\n                    var dom = patternDomMap.get(pattern);\n                    if (dom) {\n                        if (!defs.contains(dom)) {\n                            that_1.addDom(dom);\n                        }\n                    }\n                    else {\n                        dom = that_1.add(pattern);\n                    }\n                    that_1.markUsed(displayable);\n                    var id = dom.getAttribute('id');\n                    svgElement.setAttribute(fillOrStroke, 'url(#' + id + ')');\n                }\n            });\n        }\n    };\n    PatternManager.prototype.add = function (pattern) {\n        if (!isPattern(pattern)) {\n            return;\n        }\n        var dom = this.createElement('pattern');\n        pattern.id = pattern.id == null ? this.nextId++ : pattern.id;\n        dom.setAttribute('id', 'zr' + this._zrId\n            + '-pattern-' + pattern.id);\n        dom.setAttribute('x', '0');\n        dom.setAttribute('y', '0');\n        dom.setAttribute('patternUnits', 'userSpaceOnUse');\n        this.updateDom(pattern, dom);\n        this.addDom(dom);\n        return dom;\n    };\n    PatternManager.prototype.update = function (pattern) {\n        if (!isPattern(pattern)) {\n            return;\n        }\n        var that = this;\n        this.doUpdate(pattern, function () {\n            var dom = patternDomMap.get(pattern);\n            that.updateDom(pattern, dom);\n        });\n    };\n    PatternManager.prototype.updateDom = function (pattern, patternDom) {\n        var svgElement = pattern.svgElement;\n        if (svgElement instanceof SVGElement) {\n            if (svgElement.parentNode !== patternDom) {\n                patternDom.innerHTML = '';\n                patternDom.appendChild(svgElement);\n                patternDom.setAttribute('width', pattern.svgWidth + '');\n                patternDom.setAttribute('height', pattern.svgHeight + '');\n            }\n        }\n        else {\n            var img = void 0;\n            var prevImage = patternDom.getElementsByTagName('image');\n            if (prevImage.length) {\n                if (pattern.image) {\n                    img = prevImage[0];\n                }\n                else {\n                    patternDom.removeChild(prevImage[0]);\n                    return;\n                }\n            }\n            else if (pattern.image) {\n                img = this.createElement('image');\n            }\n            if (img) {\n                var imageSrc = void 0;\n                if (typeof pattern.image === 'string') {\n                    imageSrc = pattern.image;\n                }\n                else if (pattern.image instanceof HTMLImageElement) {\n                    imageSrc = pattern.image.src;\n                }\n                else if (pattern.image instanceof HTMLCanvasElement) {\n                    imageSrc = pattern.image.toDataURL();\n                }\n                if (imageSrc) {\n                    img.setAttribute('href', imageSrc);\n                    img.setAttribute('x', '0');\n                    img.setAttribute('y', '0');\n                    var hostEl = {\n                        dirty: function () { }\n                    };\n                    var createdImage = createOrUpdateImage(imageSrc, img, hostEl, function (img) {\n                        patternDom.setAttribute('width', img.width + '');\n                        patternDom.setAttribute('height', img.height + '');\n                    });\n                    if (createdImage && createdImage.width && createdImage.height) {\n                        patternDom.setAttribute('width', createdImage.width + '');\n                        patternDom.setAttribute('height', createdImage.height + '');\n                    }\n                    patternDom.appendChild(img);\n                }\n            }\n        }\n        var x = pattern.x || 0;\n        var y = pattern.y || 0;\n        var rotation = (pattern.rotation || 0) / Math.PI * 180;\n        var scaleX = pattern.scaleX || 1;\n        var scaleY = pattern.scaleY || 1;\n        var transform = \"translate(\" + x + \", \" + y + \") rotate(\" + rotation + \") scale(\" + scaleX + \", \" + scaleY + \")\";\n        patternDom.setAttribute('patternTransform', transform);\n        patternDomMap.set(pattern, patternDom);\n    };\n    PatternManager.prototype.markUsed = function (displayable) {\n        if (displayable.style) {\n            if (isPattern(displayable.style.fill)) {\n                _super.prototype.markDomUsed.call(this, patternDomMap.get(displayable.style.fill));\n            }\n            if (isPattern(displayable.style.stroke)) {\n                _super.prototype.markDomUsed.call(this, patternDomMap.get(displayable.style.stroke));\n            }\n        }\n    };\n    return PatternManager;\n}(Definable));\nexport default PatternManager;\nvar patternSizeCache = new LRU(50);\n","import { __extends } from \"tslib\";\nimport Definable from './Definable';\nimport * as zrUtil from '../../core/util';\nimport { isClipPathChanged } from '../../canvas/helper';\nfunction generateClipPathsKey(clipPaths) {\n    var key = [];\n    if (clipPaths) {\n        for (var i = 0; i < clipPaths.length; i++) {\n            var clipPath = clipPaths[i];\n            key.push(clipPath.id);\n        }\n    }\n    return key.join(',');\n}\nexport function hasClipPath(displayable) {\n    var clipPaths = displayable.__clipPaths;\n    return clipPaths && clipPaths.length > 0;\n}\nvar ClippathManager = (function (_super) {\n    __extends(ClippathManager, _super);\n    function ClippathManager(zrId, svgRoot) {\n        var _this = _super.call(this, zrId, svgRoot, 'clipPath', '__clippath_in_use__') || this;\n        _this._refGroups = {};\n        _this._keyDuplicateCount = {};\n        return _this;\n    }\n    ClippathManager.prototype.markAllUnused = function () {\n        _super.prototype.markAllUnused.call(this);\n        for (var key in this._refGroups) {\n            this.markDomUnused(this._refGroups[key]);\n        }\n        this._keyDuplicateCount = {};\n    };\n    ClippathManager.prototype._getClipPathGroup = function (displayable, prevDisplayable) {\n        if (!hasClipPath(displayable)) {\n            return;\n        }\n        var clipPaths = displayable.__clipPaths;\n        var keyDuplicateCount = this._keyDuplicateCount;\n        var clipPathKey = generateClipPathsKey(clipPaths);\n        if (isClipPathChanged(clipPaths, prevDisplayable && prevDisplayable.__clipPaths)) {\n            keyDuplicateCount[clipPathKey] = keyDuplicateCount[clipPathKey] || 0;\n            keyDuplicateCount[clipPathKey] && (clipPathKey += '-' + keyDuplicateCount[clipPathKey]);\n            keyDuplicateCount[clipPathKey]++;\n        }\n        return this._refGroups[clipPathKey]\n            || (this._refGroups[clipPathKey] = this.createElement('g'));\n    };\n    ClippathManager.prototype.update = function (displayable, prevDisplayable) {\n        var clipGroup = this._getClipPathGroup(displayable, prevDisplayable);\n        if (clipGroup) {\n            this.markDomUsed(clipGroup);\n            this.updateDom(clipGroup, displayable.__clipPaths);\n        }\n        return clipGroup;\n    };\n    ;\n    ClippathManager.prototype.updateDom = function (parentEl, clipPaths) {\n        if (clipPaths && clipPaths.length > 0) {\n            var defs = this.getDefs(true);\n            var clipPath = clipPaths[0];\n            var clipPathEl = void 0;\n            var id = void 0;\n            if (clipPath._dom) {\n                id = clipPath._dom.getAttribute('id');\n                clipPathEl = clipPath._dom;\n                if (!defs.contains(clipPathEl)) {\n                    defs.appendChild(clipPathEl);\n                }\n            }\n            else {\n                id = 'zr' + this._zrId + '-clip-' + this.nextId;\n                ++this.nextId;\n                clipPathEl = this.createElement('clipPath');\n                clipPathEl.setAttribute('id', id);\n                defs.appendChild(clipPathEl);\n                clipPath._dom = clipPathEl;\n            }\n            var svgProxy = this.getSvgProxy(clipPath);\n            svgProxy.brush(clipPath);\n            var pathEl = this.getSvgElement(clipPath);\n            clipPathEl.innerHTML = '';\n            clipPathEl.appendChild(pathEl);\n            parentEl.setAttribute('clip-path', 'url(#' + id + ')');\n            if (clipPaths.length > 1) {\n                this.updateDom(clipPathEl, clipPaths.slice(1));\n            }\n        }\n        else {\n            if (parentEl) {\n                parentEl.setAttribute('clip-path', 'none');\n            }\n        }\n    };\n    ;\n    ClippathManager.prototype.markUsed = function (displayable) {\n        var _this = this;\n        if (displayable.__clipPaths) {\n            zrUtil.each(displayable.__clipPaths, function (clipPath) {\n                if (clipPath._dom) {\n                    _super.prototype.markDomUsed.call(_this, clipPath._dom);\n                }\n            });\n        }\n    };\n    ;\n    ClippathManager.prototype.removeUnused = function () {\n        _super.prototype.removeUnused.call(this);\n        var newRefGroupsMap = {};\n        for (var key in this._refGroups) {\n            var group = this._refGroups[key];\n            if (!this.isDomUnused(group)) {\n                newRefGroupsMap[key] = group;\n            }\n            else if (group.parentNode) {\n                group.parentNode.removeChild(group);\n            }\n        }\n        this._refGroups = newRefGroupsMap;\n    };\n    return ClippathManager;\n}(Definable));\nexport default ClippathManager;\n","import { __extends } from \"tslib\";\nimport Definable from './Definable';\nvar ShadowManager = (function (_super) {\n    __extends(ShadowManager, _super);\n    function ShadowManager(zrId, svgRoot) {\n        var _this = _super.call(this, zrId, svgRoot, ['filter'], '__filter_in_use__', '_shadowDom') || this;\n        _this._shadowDomMap = {};\n        _this._shadowDomPool = [];\n        return _this;\n    }\n    ShadowManager.prototype._getFromPool = function () {\n        var shadowDom = this._shadowDomPool.pop();\n        if (!shadowDom) {\n            shadowDom = this.createElement('filter');\n            shadowDom.setAttribute('id', 'zr' + this._zrId + '-shadow-' + this.nextId++);\n            var domChild = this.createElement('feDropShadow');\n            shadowDom.appendChild(domChild);\n            this.addDom(shadowDom);\n        }\n        return shadowDom;\n    };\n    ShadowManager.prototype.update = function (svgElement, displayable) {\n        var style = displayable.style;\n        if (hasShadow(style)) {\n            var shadowKey = getShadowKey(displayable);\n            var shadowDom = displayable._shadowDom = this._shadowDomMap[shadowKey];\n            if (!shadowDom) {\n                shadowDom = this._getFromPool();\n                this._shadowDomMap[shadowKey] = shadowDom;\n            }\n            this.updateDom(svgElement, displayable, shadowDom);\n        }\n        else {\n            this.remove(svgElement, displayable);\n        }\n    };\n    ShadowManager.prototype.remove = function (svgElement, displayable) {\n        if (displayable._shadowDom != null) {\n            displayable._shadowDom = null;\n            svgElement.style.filter = '';\n        }\n    };\n    ShadowManager.prototype.updateDom = function (svgElement, displayable, shadowDom) {\n        var domChild = shadowDom.children[0];\n        var style = displayable.style;\n        var globalScale = displayable.getGlobalScale();\n        var scaleX = globalScale[0];\n        var scaleY = globalScale[1];\n        if (!scaleX || !scaleY) {\n            return;\n        }\n        var offsetX = style.shadowOffsetX || 0;\n        var offsetY = style.shadowOffsetY || 0;\n        var blur = style.shadowBlur;\n        var color = style.shadowColor;\n        domChild.setAttribute('dx', offsetX / scaleX + '');\n        domChild.setAttribute('dy', offsetY / scaleY + '');\n        domChild.setAttribute('flood-color', color);\n        var stdDx = blur / 2 / scaleX;\n        var stdDy = blur / 2 / scaleY;\n        var stdDeviation = stdDx + ' ' + stdDy;\n        domChild.setAttribute('stdDeviation', stdDeviation);\n        shadowDom.setAttribute('x', '-100%');\n        shadowDom.setAttribute('y', '-100%');\n        shadowDom.setAttribute('width', '300%');\n        shadowDom.setAttribute('height', '300%');\n        displayable._shadowDom = shadowDom;\n        var id = shadowDom.getAttribute('id');\n        svgElement.style.filter = 'url(#' + id + ')';\n    };\n    ShadowManager.prototype.removeUnused = function () {\n        var defs = this.getDefs(false);\n        if (!defs) {\n            return;\n        }\n        var shadowDomsPool = this._shadowDomPool;\n        var currentUsedShadow = 0;\n        for (var key in this._shadowDomMap) {\n            var dom = this._shadowDomMap[key];\n            shadowDomsPool.push(dom);\n            currentUsedShadow++;\n        }\n        this._shadowDomMap = {};\n    };\n    return ShadowManager;\n}(Definable));\nexport default ShadowManager;\nfunction hasShadow(style) {\n    return style\n        && (style.shadowBlur || style.shadowOffsetX || style.shadowOffsetY);\n}\nfunction getShadowKey(displayable) {\n    var style = displayable.style;\n    var globalScale = displayable.getGlobalScale();\n    return [\n        style.shadowColor,\n        (style.shadowBlur || 0).toFixed(2),\n        (style.shadowOffsetX || 0).toFixed(2),\n        (style.shadowOffsetY || 0).toFixed(2),\n        globalScale[0],\n        globalScale[1]\n    ].join(',');\n}\n","import { createElement } from './core';\nimport * as util from '../core/util';\nimport Path from '../graphic/Path';\nimport ZRImage from '../graphic/Image';\nimport TSpan from '../graphic/TSpan';\nimport arrayDiff from '../core/arrayDiff';\nimport GradientManager from './helper/GradientManager';\nimport PatternManager from './helper/PatternManager';\nimport ClippathManager, { hasClipPath } from './helper/ClippathManager';\nimport ShadowManager from './helper/ShadowManager';\nimport { path as svgPath, image as svgImage, text as svgText } from './graphic';\nfunction parseInt10(val) {\n    return parseInt(val, 10);\n}\nfunction getSvgProxy(el) {\n    if (el instanceof Path) {\n        return svgPath;\n    }\n    else if (el instanceof ZRImage) {\n        return svgImage;\n    }\n    else if (el instanceof TSpan) {\n        return svgText;\n    }\n    else {\n        return svgPath;\n    }\n}\nfunction checkParentAvailable(parent, child) {\n    return child && parent && child.parentNode !== parent;\n}\nfunction insertAfter(parent, child, prevSibling) {\n    if (checkParentAvailable(parent, child) && prevSibling) {\n        var nextSibling = prevSibling.nextSibling;\n        nextSibling ? parent.insertBefore(child, nextSibling)\n            : parent.appendChild(child);\n    }\n}\nfunction prepend(parent, child) {\n    if (checkParentAvailable(parent, child)) {\n        var firstChild = parent.firstChild;\n        firstChild ? parent.insertBefore(child, firstChild)\n            : parent.appendChild(child);\n    }\n}\nfunction remove(parent, child) {\n    if (child && parent && child.parentNode === parent) {\n        parent.removeChild(child);\n    }\n}\nfunction removeFromMyParent(child) {\n    if (child && child.parentNode) {\n        child.parentNode.removeChild(child);\n    }\n}\nfunction getSvgElement(displayable) {\n    return displayable.__svgEl;\n}\nvar SVGPainter = (function () {\n    function SVGPainter(root, storage, opts, zrId) {\n        this.type = 'svg';\n        this.refreshHover = createMethodNotSupport('refreshHover');\n        this.pathToImage = createMethodNotSupport('pathToImage');\n        this.configLayer = createMethodNotSupport('configLayer');\n        this.root = root;\n        this.storage = storage;\n        this._opts = opts = util.extend({}, opts || {});\n        var svgDom = createElement('svg');\n        svgDom.setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns', 'http://www.w3.org/2000/svg');\n        svgDom.setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:xlink', 'http://www.w3.org/1999/xlink');\n        svgDom.setAttribute('version', '1.1');\n        svgDom.setAttribute('baseProfile', 'full');\n        svgDom.style.cssText = 'user-select:none;position:absolute;left:0;top:0;';\n        var bgRoot = createElement('g');\n        svgDom.appendChild(bgRoot);\n        var svgRoot = createElement('g');\n        svgDom.appendChild(svgRoot);\n        this._gradientManager = new GradientManager(zrId, svgRoot);\n        this._patternManager = new PatternManager(zrId, svgRoot);\n        this._clipPathManager = new ClippathManager(zrId, svgRoot);\n        this._shadowManager = new ShadowManager(zrId, svgRoot);\n        var viewport = document.createElement('div');\n        viewport.style.cssText = 'overflow:hidden;position:relative';\n        this._svgDom = svgDom;\n        this._svgRoot = svgRoot;\n        this._backgroundRoot = bgRoot;\n        this._viewport = viewport;\n        root.appendChild(viewport);\n        viewport.appendChild(svgDom);\n        this.resize(opts.width, opts.height);\n        this._visibleList = [];\n    }\n    SVGPainter.prototype.getType = function () {\n        return 'svg';\n    };\n    SVGPainter.prototype.getViewportRoot = function () {\n        return this._viewport;\n    };\n    SVGPainter.prototype.getSvgDom = function () {\n        return this._svgDom;\n    };\n    SVGPainter.prototype.getSvgRoot = function () {\n        return this._svgRoot;\n    };\n    SVGPainter.prototype.getViewportRootOffset = function () {\n        var viewportRoot = this.getViewportRoot();\n        if (viewportRoot) {\n            return {\n                offsetLeft: viewportRoot.offsetLeft || 0,\n                offsetTop: viewportRoot.offsetTop || 0\n            };\n        }\n    };\n    SVGPainter.prototype.refresh = function () {\n        var list = this.storage.getDisplayList(true);\n        this._paintList(list);\n    };\n    SVGPainter.prototype.setBackgroundColor = function (backgroundColor) {\n        if (this._backgroundRoot && this._backgroundNode) {\n            this._backgroundRoot.removeChild(this._backgroundNode);\n        }\n        var bgNode = createElement('rect');\n        bgNode.setAttribute('width', this.getWidth());\n        bgNode.setAttribute('height', this.getHeight());\n        bgNode.setAttribute('x', 0);\n        bgNode.setAttribute('y', 0);\n        bgNode.setAttribute('id', 0);\n        bgNode.style.fill = backgroundColor;\n        this._backgroundRoot.appendChild(bgNode);\n        this._backgroundNode = bgNode;\n    };\n    SVGPainter.prototype.createSVGElement = function (tag) {\n        return createElement(tag);\n    };\n    SVGPainter.prototype.paintOne = function (el) {\n        var svgProxy = getSvgProxy(el);\n        svgProxy && svgProxy.brush(el);\n        return getSvgElement(el);\n    };\n    SVGPainter.prototype._paintList = function (list) {\n        var gradientManager = this._gradientManager;\n        var patternManager = this._patternManager;\n        var clipPathManager = this._clipPathManager;\n        var shadowManager = this._shadowManager;\n        gradientManager.markAllUnused();\n        patternManager.markAllUnused();\n        clipPathManager.markAllUnused();\n        shadowManager.markAllUnused();\n        var svgRoot = this._svgRoot;\n        var visibleList = this._visibleList;\n        var listLen = list.length;\n        var newVisibleList = [];\n        for (var i = 0; i < listLen; i++) {\n            var displayable = list[i];\n            var svgProxy = getSvgProxy(displayable);\n            var svgElement = getSvgElement(displayable);\n            if (!displayable.invisible) {\n                if (displayable.__dirty || !svgElement) {\n                    svgProxy && svgProxy.brush(displayable);\n                    svgElement = getSvgElement(displayable);\n                    if (svgElement && displayable.style) {\n                        gradientManager.update(displayable.style.fill);\n                        gradientManager.update(displayable.style.stroke);\n                        patternManager.update(displayable.style.fill);\n                        patternManager.update(displayable.style.stroke);\n                        shadowManager.update(svgElement, displayable);\n                    }\n                    displayable.__dirty = 0;\n                }\n                if (svgElement) {\n                    newVisibleList.push(displayable);\n                }\n            }\n        }\n        var diff = arrayDiff(visibleList, newVisibleList);\n        var prevSvgElement;\n        var topPrevSvgElement;\n        for (var i = 0; i < diff.length; i++) {\n            var item = diff[i];\n            if (item.removed) {\n                for (var k = 0; k < item.count; k++) {\n                    var displayable = visibleList[item.indices[k]];\n                    var svgElement = getSvgElement(displayable);\n                    hasClipPath(displayable) ? removeFromMyParent(svgElement)\n                        : remove(svgRoot, svgElement);\n                }\n            }\n        }\n        var prevDisplayable;\n        var currentClipGroup;\n        for (var i = 0; i < diff.length; i++) {\n            var item = diff[i];\n            var isAdd = item.added;\n            if (item.removed) {\n                continue;\n            }\n            for (var k = 0; k < item.count; k++) {\n                var displayable = newVisibleList[item.indices[k]];\n                var clipGroup = clipPathManager.update(displayable, prevDisplayable);\n                if (clipGroup !== currentClipGroup) {\n                    prevSvgElement = topPrevSvgElement;\n                    if (clipGroup) {\n                        prevSvgElement ? insertAfter(svgRoot, clipGroup, prevSvgElement)\n                            : prepend(svgRoot, clipGroup);\n                        topPrevSvgElement = clipGroup;\n                        prevSvgElement = null;\n                    }\n                    currentClipGroup = clipGroup;\n                }\n                var svgElement = getSvgElement(displayable);\n                prevSvgElement\n                    ? insertAfter(currentClipGroup || svgRoot, svgElement, prevSvgElement)\n                    : prepend(currentClipGroup || svgRoot, svgElement);\n                prevSvgElement = svgElement || prevSvgElement;\n                if (!currentClipGroup) {\n                    topPrevSvgElement = prevSvgElement;\n                }\n                gradientManager.markUsed(displayable);\n                gradientManager.addWithoutUpdate(svgElement, displayable);\n                patternManager.markUsed(displayable);\n                patternManager.addWithoutUpdate(svgElement, displayable);\n                clipPathManager.markUsed(displayable);\n                prevDisplayable = displayable;\n            }\n        }\n        gradientManager.removeUnused();\n        patternManager.removeUnused();\n        clipPathManager.removeUnused();\n        shadowManager.removeUnused();\n        this._visibleList = newVisibleList;\n    };\n    SVGPainter.prototype._getDefs = function (isForceCreating) {\n        var svgRoot = this._svgDom;\n        var defs = svgRoot.getElementsByTagName('defs');\n        if (defs.length === 0) {\n            if (isForceCreating) {\n                var defs_1 = svgRoot.insertBefore(createElement('defs'), svgRoot.firstChild);\n                if (!defs_1.contains) {\n                    defs_1.contains = function (el) {\n                        var children = defs_1.children;\n                        if (!children) {\n                            return false;\n                        }\n                        for (var i = children.length - 1; i >= 0; --i) {\n                            if (children[i] === el) {\n                                return true;\n                            }\n                        }\n                        return false;\n                    };\n                }\n                return defs_1;\n            }\n            else {\n                return null;\n            }\n        }\n        else {\n            return defs[0];\n        }\n    };\n    SVGPainter.prototype.resize = function (width, height) {\n        var viewport = this._viewport;\n        viewport.style.display = 'none';\n        var opts = this._opts;\n        width != null && (opts.width = width);\n        height != null && (opts.height = height);\n        width = this._getSize(0);\n        height = this._getSize(1);\n        viewport.style.display = '';\n        if (this._width !== width || this._height !== height) {\n            this._width = width;\n            this._height = height;\n            var viewportStyle = viewport.style;\n            viewportStyle.width = width + 'px';\n            viewportStyle.height = height + 'px';\n            var svgRoot = this._svgDom;\n            svgRoot.setAttribute('width', width + '');\n            svgRoot.setAttribute('height', height + '');\n        }\n        if (this._backgroundNode) {\n            this._backgroundNode.setAttribute('width', width);\n            this._backgroundNode.setAttribute('height', height);\n        }\n    };\n    SVGPainter.prototype.getWidth = function () {\n        return this._width;\n    };\n    SVGPainter.prototype.getHeight = function () {\n        return this._height;\n    };\n    SVGPainter.prototype._getSize = function (whIdx) {\n        var opts = this._opts;\n        var wh = ['width', 'height'][whIdx];\n        var cwh = ['clientWidth', 'clientHeight'][whIdx];\n        var plt = ['paddingLeft', 'paddingTop'][whIdx];\n        var prb = ['paddingRight', 'paddingBottom'][whIdx];\n        if (opts[wh] != null && opts[wh] !== 'auto') {\n            return parseFloat(opts[wh]);\n        }\n        var root = this.root;\n        var stl = document.defaultView.getComputedStyle(root);\n        return ((root[cwh] || parseInt10(stl[wh]) || parseInt10(root.style[wh]))\n            - (parseInt10(stl[plt]) || 0)\n            - (parseInt10(stl[prb]) || 0)) | 0;\n    };\n    SVGPainter.prototype.dispose = function () {\n        this.root.innerHTML = '';\n        this._svgRoot\n            = this._backgroundRoot\n                = this._svgDom\n                    = this._backgroundNode\n                        = this._viewport\n                            = this.storage\n                                = null;\n    };\n    SVGPainter.prototype.clear = function () {\n        var viewportNode = this._viewport;\n        if (viewportNode && viewportNode.parentNode) {\n            viewportNode.parentNode.removeChild(viewportNode);\n        }\n    };\n    SVGPainter.prototype.toDataURL = function () {\n        this.refresh();\n        var svgDom = this._svgDom;\n        var outerHTML = svgDom.outerHTML\n            || (svgDom.parentNode && svgDom.parentNode).innerHTML;\n        var html = encodeURIComponent(outerHTML.replace(/></g, '>\\n\\r<'));\n        return 'data:image/svg+xml;charset=UTF-8,' + html;\n    };\n    return SVGPainter;\n}());\nfunction createMethodNotSupport(method) {\n    return function () {\n        util.logError('In SVG mode painter not support method \"' + method + '\"');\n    };\n}\nexport default SVGPainter;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SVGPainter from 'zrender/lib/svg/Painter';\nexport function install(registers) {\n  registers.registerPainter('svg', SVGPainter);\n}","import { __extends } from \"tslib\";\nimport * as util from '../core/util';\nimport { devicePixelRatio } from '../config';\nimport Eventful from '../core/Eventful';\nimport Element from '../Element';\nimport { getCanvasGradient } from './helper';\nimport { createCanvasPattern } from './graphic';\nimport BoundingRect from '../core/BoundingRect';\nfunction returnFalse() {\n    return false;\n}\nfunction createDom(id, painter, dpr) {\n    var newDom = util.createCanvas();\n    var width = painter.getWidth();\n    var height = painter.getHeight();\n    var newDomStyle = newDom.style;\n    if (newDomStyle) {\n        newDomStyle.position = 'absolute';\n        newDomStyle.left = '0';\n        newDomStyle.top = '0';\n        newDomStyle.width = width + 'px';\n        newDomStyle.height = height + 'px';\n        newDom.setAttribute('data-zr-dom-id', id);\n    }\n    newDom.width = width * dpr;\n    newDom.height = height * dpr;\n    return newDom;\n}\n;\nvar Layer = (function (_super) {\n    __extends(Layer, _super);\n    function Layer(id, painter, dpr) {\n        var _this = _super.call(this) || this;\n        _this.motionBlur = false;\n        _this.lastFrameAlpha = 0.7;\n        _this.dpr = 1;\n        _this.virtual = false;\n        _this.config = {};\n        _this.incremental = false;\n        _this.zlevel = 0;\n        _this.maxRepaintRectCount = 5;\n        _this.__dirty = true;\n        _this.__firstTimePaint = true;\n        _this.__used = false;\n        _this.__drawIndex = 0;\n        _this.__startIndex = 0;\n        _this.__endIndex = 0;\n        _this.__prevStartIndex = null;\n        _this.__prevEndIndex = null;\n        var dom;\n        dpr = dpr || devicePixelRatio;\n        if (typeof id === 'string') {\n            dom = createDom(id, painter, dpr);\n        }\n        else if (util.isObject(id)) {\n            dom = id;\n            id = dom.id;\n        }\n        _this.id = id;\n        _this.dom = dom;\n        var domStyle = dom.style;\n        if (domStyle) {\n            dom.onselectstart = returnFalse;\n            domStyle.webkitUserSelect = 'none';\n            domStyle.userSelect = 'none';\n            domStyle.webkitTapHighlightColor = 'rgba(0,0,0,0)';\n            domStyle['-webkit-touch-callout'] = 'none';\n            domStyle.padding = '0';\n            domStyle.margin = '0';\n            domStyle.borderWidth = '0';\n        }\n        _this.domBack = null;\n        _this.ctxBack = null;\n        _this.painter = painter;\n        _this.config = null;\n        _this.dpr = dpr;\n        return _this;\n    }\n    Layer.prototype.getElementCount = function () {\n        return this.__endIndex - this.__startIndex;\n    };\n    Layer.prototype.afterBrush = function () {\n        this.__prevStartIndex = this.__startIndex;\n        this.__prevEndIndex = this.__endIndex;\n    };\n    Layer.prototype.initContext = function () {\n        this.ctx = this.dom.getContext('2d');\n        this.ctx.dpr = this.dpr;\n    };\n    Layer.prototype.setUnpainted = function () {\n        this.__firstTimePaint = true;\n    };\n    Layer.prototype.createBackBuffer = function () {\n        var dpr = this.dpr;\n        this.domBack = createDom('back-' + this.id, this.painter, dpr);\n        this.ctxBack = this.domBack.getContext('2d');\n        if (dpr !== 1) {\n            this.ctxBack.scale(dpr, dpr);\n        }\n    };\n    Layer.prototype.createRepaintRects = function (displayList, prevList, viewWidth, viewHeight) {\n        if (this.__firstTimePaint) {\n            this.__firstTimePaint = false;\n            return null;\n        }\n        var mergedRepaintRects = [];\n        var maxRepaintRectCount = this.maxRepaintRectCount;\n        var full = false;\n        var pendingRect = new BoundingRect(0, 0, 0, 0);\n        function addRectToMergePool(rect) {\n            if (!rect.isFinite() || rect.isZero()) {\n                return;\n            }\n            if (mergedRepaintRects.length === 0) {\n                var boundingRect = new BoundingRect(0, 0, 0, 0);\n                boundingRect.copy(rect);\n                mergedRepaintRects.push(boundingRect);\n            }\n            else {\n                var isMerged = false;\n                var minDeltaArea = Infinity;\n                var bestRectToMergeIdx = 0;\n                for (var i = 0; i < mergedRepaintRects.length; ++i) {\n                    var mergedRect = mergedRepaintRects[i];\n                    if (mergedRect.intersect(rect)) {\n                        var pendingRect_1 = new BoundingRect(0, 0, 0, 0);\n                        pendingRect_1.copy(mergedRect);\n                        pendingRect_1.union(rect);\n                        mergedRepaintRects[i] = pendingRect_1;\n                        isMerged = true;\n                        break;\n                    }\n                    else if (full) {\n                        pendingRect.copy(rect);\n                        pendingRect.union(mergedRect);\n                        var aArea = rect.width * rect.height;\n                        var bArea = mergedRect.width * mergedRect.height;\n                        var pendingArea = pendingRect.width * pendingRect.height;\n                        var deltaArea = pendingArea - aArea - bArea;\n                        if (deltaArea < minDeltaArea) {\n                            minDeltaArea = deltaArea;\n                            bestRectToMergeIdx = i;\n                        }\n                    }\n                }\n                if (full) {\n                    mergedRepaintRects[bestRectToMergeIdx].union(rect);\n                    isMerged = true;\n                }\n                if (!isMerged) {\n                    var boundingRect = new BoundingRect(0, 0, 0, 0);\n                    boundingRect.copy(rect);\n                    mergedRepaintRects.push(boundingRect);\n                }\n                if (!full) {\n                    full = mergedRepaintRects.length >= maxRepaintRectCount;\n                }\n            }\n        }\n        for (var i = this.__startIndex; i < this.__endIndex; ++i) {\n            var el = displayList[i];\n            if (el) {\n                var shouldPaint = el.shouldBePainted(viewWidth, viewHeight, true, true);\n                var prevRect = el.__isRendered && ((el.__dirty & Element.REDARAW_BIT) || !shouldPaint)\n                    ? el.getPrevPaintRect()\n                    : null;\n                if (prevRect) {\n                    addRectToMergePool(prevRect);\n                }\n                var curRect = shouldPaint && ((el.__dirty & Element.REDARAW_BIT) || !el.__isRendered)\n                    ? el.getPaintRect()\n                    : null;\n                if (curRect) {\n                    addRectToMergePool(curRect);\n                }\n            }\n        }\n        for (var i = this.__prevStartIndex; i < this.__prevEndIndex; ++i) {\n            var el = prevList[i];\n            var shouldPaint = el.shouldBePainted(viewWidth, viewHeight, true, true);\n            if (el && (!shouldPaint || !el.__zr) && el.__isRendered) {\n                var prevRect = el.getPrevPaintRect();\n                if (prevRect) {\n                    addRectToMergePool(prevRect);\n                }\n            }\n        }\n        var hasIntersections;\n        do {\n            hasIntersections = false;\n            for (var i = 0; i < mergedRepaintRects.length;) {\n                if (mergedRepaintRects[i].isZero()) {\n                    mergedRepaintRects.splice(i, 1);\n                    continue;\n                }\n                for (var j = i + 1; j < mergedRepaintRects.length;) {\n                    if (mergedRepaintRects[i].intersect(mergedRepaintRects[j])) {\n                        hasIntersections = true;\n                        mergedRepaintRects[i].union(mergedRepaintRects[j]);\n                        mergedRepaintRects.splice(j, 1);\n                    }\n                    else {\n                        j++;\n                    }\n                }\n                i++;\n            }\n        } while (hasIntersections);\n        this._paintRects = mergedRepaintRects;\n        return mergedRepaintRects;\n    };\n    Layer.prototype.debugGetPaintRects = function () {\n        return (this._paintRects || []).slice();\n    };\n    Layer.prototype.resize = function (width, height) {\n        var dpr = this.dpr;\n        var dom = this.dom;\n        var domStyle = dom.style;\n        var domBack = this.domBack;\n        if (domStyle) {\n            domStyle.width = width + 'px';\n            domStyle.height = height + 'px';\n        }\n        dom.width = width * dpr;\n        dom.height = height * dpr;\n        if (domBack) {\n            domBack.width = width * dpr;\n            domBack.height = height * dpr;\n            if (dpr !== 1) {\n                this.ctxBack.scale(dpr, dpr);\n            }\n        }\n    };\n    Layer.prototype.clear = function (clearAll, clearColor, repaintRects) {\n        var dom = this.dom;\n        var ctx = this.ctx;\n        var width = dom.width;\n        var height = dom.height;\n        clearColor = clearColor || this.clearColor;\n        var haveMotionBLur = this.motionBlur && !clearAll;\n        var lastFrameAlpha = this.lastFrameAlpha;\n        var dpr = this.dpr;\n        var self = this;\n        if (haveMotionBLur) {\n            if (!this.domBack) {\n                this.createBackBuffer();\n            }\n            this.ctxBack.globalCompositeOperation = 'copy';\n            this.ctxBack.drawImage(dom, 0, 0, width / dpr, height / dpr);\n        }\n        var domBack = this.domBack;\n        function doClear(x, y, width, height) {\n            ctx.clearRect(x, y, width, height);\n            if (clearColor && clearColor !== 'transparent') {\n                var clearColorGradientOrPattern = void 0;\n                if (util.isGradientObject(clearColor)) {\n                    clearColorGradientOrPattern = clearColor.__canvasGradient\n                        || getCanvasGradient(ctx, clearColor, {\n                            x: 0,\n                            y: 0,\n                            width: width,\n                            height: height\n                        });\n                    clearColor.__canvasGradient = clearColorGradientOrPattern;\n                }\n                else if (util.isPatternObject(clearColor)) {\n                    clearColorGradientOrPattern = createCanvasPattern(ctx, clearColor, {\n                        dirty: function () {\n                            self.setUnpainted();\n                            self.__painter.refresh();\n                        }\n                    });\n                }\n                ctx.save();\n                ctx.fillStyle = clearColorGradientOrPattern || clearColor;\n                ctx.fillRect(x, y, width, height);\n                ctx.restore();\n            }\n            if (haveMotionBLur) {\n                ctx.save();\n                ctx.globalAlpha = lastFrameAlpha;\n                ctx.drawImage(domBack, x, y, width, height);\n                ctx.restore();\n            }\n        }\n        ;\n        if (!repaintRects || haveMotionBLur) {\n            doClear(0, 0, width, height);\n        }\n        else if (repaintRects.length) {\n            util.each(repaintRects, function (rect) {\n                doClear(rect.x * dpr, rect.y * dpr, rect.width * dpr, rect.height * dpr);\n            });\n        }\n    };\n    return Layer;\n}(Eventful));\nexport default Layer;\n","import { devicePixelRatio } from '../config';\nimport * as util from '../core/util';\nimport Layer from './Layer';\nimport requestAnimationFrame from '../animation/requestAnimationFrame';\nimport ZRImage from '../graphic/Image';\nimport env from '../core/env';\nimport { brush, brushSingle } from './graphic';\nimport Element from '../Element';\nvar HOVER_LAYER_ZLEVEL = 1e5;\nvar CANVAS_ZLEVEL = 314159;\nvar EL_AFTER_INCREMENTAL_INC = 0.01;\nvar INCREMENTAL_INC = 0.001;\nfunction parseInt10(val) {\n    return parseInt(val, 10);\n}\nfunction isLayerValid(layer) {\n    if (!layer) {\n        return false;\n    }\n    if (layer.__builtin__) {\n        return true;\n    }\n    if (typeof (layer.resize) !== 'function'\n        || typeof (layer.refresh) !== 'function') {\n        return false;\n    }\n    return true;\n}\nfunction createRoot(width, height) {\n    var domRoot = document.createElement('div');\n    domRoot.style.cssText = [\n        'position:relative',\n        'width:' + width + 'px',\n        'height:' + height + 'px',\n        'padding:0',\n        'margin:0',\n        'border-width:0'\n    ].join(';') + ';';\n    return domRoot;\n}\nvar CanvasPainter = (function () {\n    function CanvasPainter(root, storage, opts, id) {\n        this.type = 'canvas';\n        this._zlevelList = [];\n        this._prevDisplayList = [];\n        this._layers = {};\n        this._layerConfig = {};\n        this._needsManuallyCompositing = false;\n        this.type = 'canvas';\n        var singleCanvas = !root.nodeName\n            || root.nodeName.toUpperCase() === 'CANVAS';\n        this._opts = opts = util.extend({}, opts || {});\n        this.dpr = opts.devicePixelRatio || devicePixelRatio;\n        this._singleCanvas = singleCanvas;\n        this.root = root;\n        var rootStyle = root.style;\n        if (rootStyle) {\n            rootStyle.webkitTapHighlightColor = 'transparent';\n            rootStyle.webkitUserSelect = 'none';\n            rootStyle.userSelect = 'none';\n            rootStyle['-webkit-touch-callout'] = 'none';\n            root.innerHTML = '';\n        }\n        this.storage = storage;\n        var zlevelList = this._zlevelList;\n        this._prevDisplayList = [];\n        var layers = this._layers;\n        if (!singleCanvas) {\n            this._width = this._getSize(0);\n            this._height = this._getSize(1);\n            var domRoot = this._domRoot = createRoot(this._width, this._height);\n            root.appendChild(domRoot);\n        }\n        else {\n            var rootCanvas = root;\n            var width = rootCanvas.width;\n            var height = rootCanvas.height;\n            if (opts.width != null) {\n                width = opts.width;\n            }\n            if (opts.height != null) {\n                height = opts.height;\n            }\n            this.dpr = opts.devicePixelRatio || 1;\n            rootCanvas.width = width * this.dpr;\n            rootCanvas.height = height * this.dpr;\n            this._width = width;\n            this._height = height;\n            var mainLayer = new Layer(rootCanvas, this, this.dpr);\n            mainLayer.__builtin__ = true;\n            mainLayer.initContext();\n            layers[CANVAS_ZLEVEL] = mainLayer;\n            mainLayer.zlevel = CANVAS_ZLEVEL;\n            zlevelList.push(CANVAS_ZLEVEL);\n            this._domRoot = root;\n        }\n    }\n    CanvasPainter.prototype.getType = function () {\n        return 'canvas';\n    };\n    CanvasPainter.prototype.isSingleCanvas = function () {\n        return this._singleCanvas;\n    };\n    CanvasPainter.prototype.getViewportRoot = function () {\n        return this._domRoot;\n    };\n    CanvasPainter.prototype.getViewportRootOffset = function () {\n        var viewportRoot = this.getViewportRoot();\n        if (viewportRoot) {\n            return {\n                offsetLeft: viewportRoot.offsetLeft || 0,\n                offsetTop: viewportRoot.offsetTop || 0\n            };\n        }\n    };\n    CanvasPainter.prototype.refresh = function (paintAll) {\n        var list = this.storage.getDisplayList(true);\n        var prevList = this._prevDisplayList;\n        var zlevelList = this._zlevelList;\n        this._redrawId = Math.random();\n        this._paintList(list, prevList, paintAll, this._redrawId);\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            var layer = this._layers[z];\n            if (!layer.__builtin__ && layer.refresh) {\n                var clearColor = i === 0 ? this._backgroundColor : null;\n                layer.refresh(clearColor);\n            }\n        }\n        if (this._opts.useDirtyRect) {\n            this._prevDisplayList = list.slice();\n        }\n        return this;\n    };\n    CanvasPainter.prototype.refreshHover = function () {\n        this._paintHoverList(this.storage.getDisplayList(false));\n    };\n    CanvasPainter.prototype._paintHoverList = function (list) {\n        var len = list.length;\n        var hoverLayer = this._hoverlayer;\n        hoverLayer && hoverLayer.clear();\n        if (!len) {\n            return;\n        }\n        var scope = {\n            inHover: true,\n            viewWidth: this._width,\n            viewHeight: this._height\n        };\n        var ctx;\n        for (var i = 0; i < len; i++) {\n            var el = list[i];\n            if (el.__inHover) {\n                if (!hoverLayer) {\n                    hoverLayer = this._hoverlayer = this.getLayer(HOVER_LAYER_ZLEVEL);\n                }\n                if (!ctx) {\n                    ctx = hoverLayer.ctx;\n                    ctx.save();\n                }\n                brush(ctx, el, scope, i === len - 1);\n            }\n        }\n        if (ctx) {\n            ctx.restore();\n        }\n    };\n    CanvasPainter.prototype.getHoverLayer = function () {\n        return this.getLayer(HOVER_LAYER_ZLEVEL);\n    };\n    CanvasPainter.prototype.paintOne = function (ctx, el) {\n        brushSingle(ctx, el);\n    };\n    CanvasPainter.prototype._paintList = function (list, prevList, paintAll, redrawId) {\n        if (this._redrawId !== redrawId) {\n            return;\n        }\n        paintAll = paintAll || false;\n        this._updateLayerStatus(list);\n        var _a = this._doPaintList(list, prevList, paintAll), finished = _a.finished, needsRefreshHover = _a.needsRefreshHover;\n        if (this._needsManuallyCompositing) {\n            this._compositeManually();\n        }\n        if (needsRefreshHover) {\n            this._paintHoverList(list);\n        }\n        if (!finished) {\n            var self_1 = this;\n            requestAnimationFrame(function () {\n                self_1._paintList(list, prevList, paintAll, redrawId);\n            });\n        }\n        else {\n            this.eachLayer(function (layer) {\n                layer.afterBrush && layer.afterBrush();\n            });\n        }\n    };\n    CanvasPainter.prototype._compositeManually = function () {\n        var ctx = this.getLayer(CANVAS_ZLEVEL).ctx;\n        var width = this._domRoot.width;\n        var height = this._domRoot.height;\n        ctx.clearRect(0, 0, width, height);\n        this.eachBuiltinLayer(function (layer) {\n            if (layer.virtual) {\n                ctx.drawImage(layer.dom, 0, 0, width, height);\n            }\n        });\n    };\n    CanvasPainter.prototype._doPaintList = function (list, prevList, paintAll) {\n        var _this = this;\n        var layerList = [];\n        var useDirtyRect = this._opts.useDirtyRect;\n        for (var zi = 0; zi < this._zlevelList.length; zi++) {\n            var zlevel = this._zlevelList[zi];\n            var layer = this._layers[zlevel];\n            if (layer.__builtin__\n                && layer !== this._hoverlayer\n                && (layer.__dirty || paintAll)) {\n                layerList.push(layer);\n            }\n        }\n        var finished = true;\n        var needsRefreshHover = false;\n        var _loop_1 = function (k) {\n            var layer = layerList[k];\n            var ctx = layer.ctx;\n            var repaintRects = useDirtyRect\n                && layer.createRepaintRects(list, prevList, this_1._width, this_1._height);\n            ctx.save();\n            var start = paintAll ? layer.__startIndex : layer.__drawIndex;\n            var useTimer = !paintAll && layer.incremental && Date.now;\n            var startTime = useTimer && Date.now();\n            var clearColor = layer.zlevel === this_1._zlevelList[0]\n                ? this_1._backgroundColor : null;\n            if (layer.__startIndex === layer.__endIndex) {\n                layer.clear(false, clearColor, repaintRects);\n            }\n            else if (start === layer.__startIndex) {\n                var firstEl = list[start];\n                if (!firstEl.incremental || !firstEl.notClear || paintAll) {\n                    layer.clear(false, clearColor, repaintRects);\n                }\n            }\n            if (start === -1) {\n                console.error('For some unknown reason. drawIndex is -1');\n                start = layer.__startIndex;\n            }\n            var i;\n            var repaint = function (repaintRect) {\n                var scope = {\n                    inHover: false,\n                    allClipped: false,\n                    prevEl: null,\n                    viewWidth: _this._width,\n                    viewHeight: _this._height\n                };\n                for (i = start; i < layer.__endIndex; i++) {\n                    var el = list[i];\n                    if (el.__inHover) {\n                        needsRefreshHover = true;\n                    }\n                    _this._doPaintEl(el, layer, useDirtyRect, repaintRect, scope, i === layer.__endIndex - 1);\n                    if (useTimer) {\n                        var dTime = Date.now() - startTime;\n                        if (dTime > 15) {\n                            break;\n                        }\n                    }\n                }\n                if (scope.prevElClipPaths) {\n                    ctx.restore();\n                }\n            };\n            if (repaintRects) {\n                if (repaintRects.length === 0) {\n                    i = layer.__endIndex;\n                }\n                else {\n                    var dpr = this_1.dpr;\n                    for (var r = 0; r < repaintRects.length; ++r) {\n                        var rect = repaintRects[r];\n                        ctx.save();\n                        ctx.beginPath();\n                        ctx.rect(rect.x * dpr, rect.y * dpr, rect.width * dpr, rect.height * dpr);\n                        ctx.clip();\n                        repaint(rect);\n                        ctx.restore();\n                    }\n                }\n            }\n            else {\n                ctx.save();\n                repaint();\n                ctx.restore();\n            }\n            layer.__drawIndex = i;\n            if (layer.__drawIndex < layer.__endIndex) {\n                finished = false;\n            }\n        };\n        var this_1 = this;\n        for (var k = 0; k < layerList.length; k++) {\n            _loop_1(k);\n        }\n        if (env.wxa) {\n            util.each(this._layers, function (layer) {\n                if (layer && layer.ctx && layer.ctx.draw) {\n                    layer.ctx.draw();\n                }\n            });\n        }\n        return {\n            finished: finished,\n            needsRefreshHover: needsRefreshHover\n        };\n    };\n    CanvasPainter.prototype._doPaintEl = function (el, currentLayer, useDirtyRect, repaintRect, scope, isLast) {\n        var ctx = currentLayer.ctx;\n        if (useDirtyRect) {\n            var paintRect = el.getPaintRect();\n            if (!repaintRect || paintRect && paintRect.intersect(repaintRect)) {\n                brush(ctx, el, scope, isLast);\n                el.setPrevPaintRect(paintRect);\n            }\n        }\n        else {\n            brush(ctx, el, scope, isLast);\n        }\n    };\n    CanvasPainter.prototype.getLayer = function (zlevel, virtual) {\n        if (this._singleCanvas && !this._needsManuallyCompositing) {\n            zlevel = CANVAS_ZLEVEL;\n        }\n        var layer = this._layers[zlevel];\n        if (!layer) {\n            layer = new Layer('zr_' + zlevel, this, this.dpr);\n            layer.zlevel = zlevel;\n            layer.__builtin__ = true;\n            if (this._layerConfig[zlevel]) {\n                util.merge(layer, this._layerConfig[zlevel], true);\n            }\n            else if (this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC]) {\n                util.merge(layer, this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC], true);\n            }\n            if (virtual) {\n                layer.virtual = virtual;\n            }\n            this.insertLayer(zlevel, layer);\n            layer.initContext();\n        }\n        return layer;\n    };\n    CanvasPainter.prototype.insertLayer = function (zlevel, layer) {\n        var layersMap = this._layers;\n        var zlevelList = this._zlevelList;\n        var len = zlevelList.length;\n        var domRoot = this._domRoot;\n        var prevLayer = null;\n        var i = -1;\n        if (layersMap[zlevel]) {\n            util.logError('ZLevel ' + zlevel + ' has been used already');\n            return;\n        }\n        if (!isLayerValid(layer)) {\n            util.logError('Layer of zlevel ' + zlevel + ' is not valid');\n            return;\n        }\n        if (len > 0 && zlevel > zlevelList[0]) {\n            for (i = 0; i < len - 1; i++) {\n                if (zlevelList[i] < zlevel\n                    && zlevelList[i + 1] > zlevel) {\n                    break;\n                }\n            }\n            prevLayer = layersMap[zlevelList[i]];\n        }\n        zlevelList.splice(i + 1, 0, zlevel);\n        layersMap[zlevel] = layer;\n        if (!layer.virtual) {\n            if (prevLayer) {\n                var prevDom = prevLayer.dom;\n                if (prevDom.nextSibling) {\n                    domRoot.insertBefore(layer.dom, prevDom.nextSibling);\n                }\n                else {\n                    domRoot.appendChild(layer.dom);\n                }\n            }\n            else {\n                if (domRoot.firstChild) {\n                    domRoot.insertBefore(layer.dom, domRoot.firstChild);\n                }\n                else {\n                    domRoot.appendChild(layer.dom);\n                }\n            }\n        }\n        layer.__painter = this;\n    };\n    CanvasPainter.prototype.eachLayer = function (cb, context) {\n        var zlevelList = this._zlevelList;\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            cb.call(context, this._layers[z], z);\n        }\n    };\n    CanvasPainter.prototype.eachBuiltinLayer = function (cb, context) {\n        var zlevelList = this._zlevelList;\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            var layer = this._layers[z];\n            if (layer.__builtin__) {\n                cb.call(context, layer, z);\n            }\n        }\n    };\n    CanvasPainter.prototype.eachOtherLayer = function (cb, context) {\n        var zlevelList = this._zlevelList;\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            var layer = this._layers[z];\n            if (!layer.__builtin__) {\n                cb.call(context, layer, z);\n            }\n        }\n    };\n    CanvasPainter.prototype.getLayers = function () {\n        return this._layers;\n    };\n    CanvasPainter.prototype._updateLayerStatus = function (list) {\n        this.eachBuiltinLayer(function (layer, z) {\n            layer.__dirty = layer.__used = false;\n        });\n        function updatePrevLayer(idx) {\n            if (prevLayer) {\n                if (prevLayer.__endIndex !== idx) {\n                    prevLayer.__dirty = true;\n                }\n                prevLayer.__endIndex = idx;\n            }\n        }\n        if (this._singleCanvas) {\n            for (var i_1 = 1; i_1 < list.length; i_1++) {\n                var el = list[i_1];\n                if (el.zlevel !== list[i_1 - 1].zlevel || el.incremental) {\n                    this._needsManuallyCompositing = true;\n                    break;\n                }\n            }\n        }\n        var prevLayer = null;\n        var incrementalLayerCount = 0;\n        var prevZlevel;\n        var i;\n        for (i = 0; i < list.length; i++) {\n            var el = list[i];\n            var zlevel = el.zlevel;\n            var layer = void 0;\n            if (prevZlevel !== zlevel) {\n                prevZlevel = zlevel;\n                incrementalLayerCount = 0;\n            }\n            if (el.incremental) {\n                layer = this.getLayer(zlevel + INCREMENTAL_INC, this._needsManuallyCompositing);\n                layer.incremental = true;\n                incrementalLayerCount = 1;\n            }\n            else {\n                layer = this.getLayer(zlevel + (incrementalLayerCount > 0 ? EL_AFTER_INCREMENTAL_INC : 0), this._needsManuallyCompositing);\n            }\n            if (!layer.__builtin__) {\n                util.logError('ZLevel ' + zlevel + ' has been used by unkown layer ' + layer.id);\n            }\n            if (layer !== prevLayer) {\n                layer.__used = true;\n                if (layer.__startIndex !== i) {\n                    layer.__dirty = true;\n                }\n                layer.__startIndex = i;\n                if (!layer.incremental) {\n                    layer.__drawIndex = i;\n                }\n                else {\n                    layer.__drawIndex = -1;\n                }\n                updatePrevLayer(i);\n                prevLayer = layer;\n            }\n            if ((el.__dirty & Element.REDARAW_BIT) && !el.__inHover) {\n                layer.__dirty = true;\n                if (layer.incremental && layer.__drawIndex < 0) {\n                    layer.__drawIndex = i;\n                }\n            }\n        }\n        updatePrevLayer(i);\n        this.eachBuiltinLayer(function (layer, z) {\n            if (!layer.__used && layer.getElementCount() > 0) {\n                layer.__dirty = true;\n                layer.__startIndex = layer.__endIndex = layer.__drawIndex = 0;\n            }\n            if (layer.__dirty && layer.__drawIndex < 0) {\n                layer.__drawIndex = layer.__startIndex;\n            }\n        });\n    };\n    CanvasPainter.prototype.clear = function () {\n        this.eachBuiltinLayer(this._clearLayer);\n        return this;\n    };\n    CanvasPainter.prototype._clearLayer = function (layer) {\n        layer.clear();\n    };\n    CanvasPainter.prototype.setBackgroundColor = function (backgroundColor) {\n        this._backgroundColor = backgroundColor;\n        util.each(this._layers, function (layer) {\n            layer.setUnpainted();\n        });\n    };\n    CanvasPainter.prototype.configLayer = function (zlevel, config) {\n        if (config) {\n            var layerConfig = this._layerConfig;\n            if (!layerConfig[zlevel]) {\n                layerConfig[zlevel] = config;\n            }\n            else {\n                util.merge(layerConfig[zlevel], config, true);\n            }\n            for (var i = 0; i < this._zlevelList.length; i++) {\n                var _zlevel = this._zlevelList[i];\n                if (_zlevel === zlevel || _zlevel === zlevel + EL_AFTER_INCREMENTAL_INC) {\n                    var layer = this._layers[_zlevel];\n                    util.merge(layer, layerConfig[zlevel], true);\n                }\n            }\n        }\n    };\n    CanvasPainter.prototype.delLayer = function (zlevel) {\n        var layers = this._layers;\n        var zlevelList = this._zlevelList;\n        var layer = layers[zlevel];\n        if (!layer) {\n            return;\n        }\n        layer.dom.parentNode.removeChild(layer.dom);\n        delete layers[zlevel];\n        zlevelList.splice(util.indexOf(zlevelList, zlevel), 1);\n    };\n    CanvasPainter.prototype.resize = function (width, height) {\n        if (!this._domRoot.style) {\n            if (width == null || height == null) {\n                return;\n            }\n            this._width = width;\n            this._height = height;\n            this.getLayer(CANVAS_ZLEVEL).resize(width, height);\n        }\n        else {\n            var domRoot = this._domRoot;\n            domRoot.style.display = 'none';\n            var opts = this._opts;\n            width != null && (opts.width = width);\n            height != null && (opts.height = height);\n            width = this._getSize(0);\n            height = this._getSize(1);\n            domRoot.style.display = '';\n            if (this._width !== width || height !== this._height) {\n                domRoot.style.width = width + 'px';\n                domRoot.style.height = height + 'px';\n                for (var id in this._layers) {\n                    if (this._layers.hasOwnProperty(id)) {\n                        this._layers[id].resize(width, height);\n                    }\n                }\n                this.refresh(true);\n            }\n            this._width = width;\n            this._height = height;\n        }\n        return this;\n    };\n    CanvasPainter.prototype.clearLayer = function (zlevel) {\n        var layer = this._layers[zlevel];\n        if (layer) {\n            layer.clear();\n        }\n    };\n    CanvasPainter.prototype.dispose = function () {\n        this.root.innerHTML = '';\n        this.root =\n            this.storage =\n                this._domRoot =\n                    this._layers = null;\n    };\n    CanvasPainter.prototype.getRenderedCanvas = function (opts) {\n        opts = opts || {};\n        if (this._singleCanvas && !this._compositeManually) {\n            return this._layers[CANVAS_ZLEVEL].dom;\n        }\n        var imageLayer = new Layer('image', this, opts.pixelRatio || this.dpr);\n        var ctx = imageLayer.ctx;\n        imageLayer.initContext();\n        imageLayer.clear(false, opts.backgroundColor || this._backgroundColor);\n        if (opts.pixelRatio <= this.dpr) {\n            this.refresh();\n            var width_1 = imageLayer.dom.width;\n            var height_1 = imageLayer.dom.height;\n            var ctx_1 = imageLayer.ctx;\n            this.eachLayer(function (layer) {\n                if (layer.__builtin__) {\n                    ctx_1.drawImage(layer.dom, 0, 0, width_1, height_1);\n                }\n                else if (layer.renderToCanvas) {\n                    imageLayer.ctx.save();\n                    layer.renderToCanvas(imageLayer.ctx);\n                    imageLayer.ctx.restore();\n                }\n            });\n        }\n        else {\n            var scope = {\n                inHover: false,\n                viewWidth: this._width,\n                viewHeight: this._height\n            };\n            var displayList = this.storage.getDisplayList(true);\n            for (var i = 0, len = displayList.length; i < len; i++) {\n                var el = displayList[i];\n                brush(ctx, el, scope, i === len - 1);\n            }\n        }\n        return imageLayer.dom;\n    };\n    CanvasPainter.prototype.getWidth = function () {\n        return this._width;\n    };\n    CanvasPainter.prototype.getHeight = function () {\n        return this._height;\n    };\n    CanvasPainter.prototype._getSize = function (whIdx) {\n        var opts = this._opts;\n        var wh = ['width', 'height'][whIdx];\n        var cwh = ['clientWidth', 'clientHeight'][whIdx];\n        var plt = ['paddingLeft', 'paddingTop'][whIdx];\n        var prb = ['paddingRight', 'paddingBottom'][whIdx];\n        if (opts[wh] != null && opts[wh] !== 'auto') {\n            return parseFloat(opts[wh]);\n        }\n        var root = this.root;\n        var stl = document.defaultView.getComputedStyle(root);\n        return ((root[cwh] || parseInt10(stl[wh]) || parseInt10(root.style[wh]))\n            - (parseInt10(stl[plt]) || 0)\n            - (parseInt10(stl[prb]) || 0)) | 0;\n    };\n    CanvasPainter.prototype.pathToImage = function (path, dpr) {\n        dpr = dpr || this.dpr;\n        var canvas = document.createElement('canvas');\n        var ctx = canvas.getContext('2d');\n        var rect = path.getBoundingRect();\n        var style = path.style;\n        var shadowBlurSize = style.shadowBlur * dpr;\n        var shadowOffsetX = style.shadowOffsetX * dpr;\n        var shadowOffsetY = style.shadowOffsetY * dpr;\n        var lineWidth = path.hasStroke() ? style.lineWidth : 0;\n        var leftMargin = Math.max(lineWidth / 2, -shadowOffsetX + shadowBlurSize);\n        var rightMargin = Math.max(lineWidth / 2, shadowOffsetX + shadowBlurSize);\n        var topMargin = Math.max(lineWidth / 2, -shadowOffsetY + shadowBlurSize);\n        var bottomMargin = Math.max(lineWidth / 2, shadowOffsetY + shadowBlurSize);\n        var width = rect.width + leftMargin + rightMargin;\n        var height = rect.height + topMargin + bottomMargin;\n        canvas.width = width * dpr;\n        canvas.height = height * dpr;\n        ctx.scale(dpr, dpr);\n        ctx.clearRect(0, 0, width, height);\n        ctx.dpr = dpr;\n        var pathTransform = {\n            x: path.x,\n            y: path.y,\n            scaleX: path.scaleX,\n            scaleY: path.scaleY,\n            rotation: path.rotation,\n            originX: path.originX,\n            originY: path.originY\n        };\n        path.x = leftMargin - rect.x;\n        path.y = topMargin - rect.y;\n        path.rotation = 0;\n        path.scaleX = 1;\n        path.scaleY = 1;\n        path.updateTransform();\n        if (path) {\n            brush(ctx, path, {\n                inHover: false,\n                viewWidth: this._width,\n                viewHeight: this._height\n            }, true);\n        }\n        var imgShape = new ZRImage({\n            style: {\n                x: 0,\n                y: 0,\n                image: canvas\n            }\n        });\n        util.extend(path, pathTransform);\n        return imgShape;\n    };\n    return CanvasPainter;\n}());\nexport default CanvasPainter;\n;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport CanvasPainter from 'zrender/lib/canvas/Painter';\nexport function install(registers) {\n  registers.registerPainter('canvas', CanvasPainter);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListFromArray from '../helper/createListFromArray';\nimport SeriesModel from '../../model/Series';\n\nvar LineSeriesModel = function (_super) {\n  __extends(LineSeriesModel, _super);\n\n  function LineSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = LineSeriesModel.type;\n    _this.hasSymbolVisual = true;\n    _this.legendSymbol = 'line';\n    return _this;\n  }\n\n  LineSeriesModel.prototype.getInitialData = function (option) {\n    if (process.env.NODE_ENV !== 'production') {\n      var coordSys = option.coordinateSystem;\n\n      if (coordSys !== 'polar' && coordSys !== 'cartesian2d') {\n        throw new Error('Line not support coordinateSystem besides cartesian and polar');\n      }\n    }\n\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: true\n    });\n  };\n\n  LineSeriesModel.type = 'series.line';\n  LineSeriesModel.dependencies = ['grid', 'polar'];\n  LineSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 3,\n    coordinateSystem: 'cartesian2d',\n    legendHoverLink: true,\n    clip: true,\n    label: {\n      position: 'top'\n    },\n    endLabel: {\n      show: false,\n      valueAnimation: true,\n      distance: 8\n    },\n    lineStyle: {\n      width: 2,\n      type: 'solid'\n    },\n    emphasis: {\n      scale: true,\n      lineStyle: {\n        width: 'bolder'\n      }\n    },\n    step: false,\n    smooth: false,\n    smoothMonotone: null,\n    symbol: 'emptyCircle',\n    symbolSize: 4,\n    symbolRotate: null,\n    showSymbol: true,\n    showAllSymbol: 'auto',\n    connectNulls: false,\n    sampling: 'none',\n    animationEasing: 'linear',\n    progressive: 0,\n    hoverLayerThreshold: Infinity\n  };\n  return LineSeriesModel;\n}(SeriesModel);\n\nexport default LineSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { retrieveRawValue } from '../../data/helper/dataProvider';\nimport { isArray } from 'zrender/lib/core/util';\nexport function getDefaultLabel(data, dataIndex) {\n  var labelDims = data.mapDimensionsAll('defaultedLabel');\n  var len = labelDims.length;\n\n  if (len === 1) {\n    var rawVal = retrieveRawValue(data, dataIndex, labelDims[0]);\n    return rawVal != null ? rawVal + '' : null;\n  } else if (len) {\n    var vals = [];\n\n    for (var i = 0; i < labelDims.length; i++) {\n      vals.push(retrieveRawValue(data, dataIndex, labelDims[i]));\n    }\n\n    return vals.join(' ');\n  }\n}\nexport function getDefaultInterpolatedLabel(data, interpolatedValue) {\n  var labelDims = data.mapDimensionsAll('defaultedLabel');\n\n  if (!isArray(interpolatedValue)) {\n    return interpolatedValue + '';\n  }\n\n  var vals = [];\n\n  for (var i = 0; i < labelDims.length; i++) {\n    var dimInfo = data.getDimensionInfo(labelDims[i]);\n\n    if (dimInfo) {\n      vals.push(interpolatedValue[dimInfo.index]);\n    }\n  }\n\n  return vals.join(' ');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { createSymbol } from '../../util/symbol';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { enterEmphasis, leaveEmphasis, enableHoverEmphasis } from '../../util/states';\nimport { parsePercent } from '../../util/number';\nimport { getDefaultLabel } from './labelHelper';\nimport { extend } from 'zrender/lib/core/util';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport ZRImage from 'zrender/lib/graphic/Image';\n\nvar Symbol = function (_super) {\n  __extends(Symbol, _super);\n\n  function Symbol(data, idx, seriesScope, opts) {\n    var _this = _super.call(this) || this;\n\n    _this.updateData(data, idx, seriesScope, opts);\n\n    return _this;\n  }\n\n  Symbol.prototype._createSymbol = function (symbolType, data, idx, symbolSize, keepAspect) {\n    this.removeAll();\n    var symbolPath = createSymbol(symbolType, -1, -1, 2, 2, null, keepAspect);\n    symbolPath.attr({\n      z2: 100,\n      culling: true,\n      scaleX: symbolSize[0] / 2,\n      scaleY: symbolSize[1] / 2\n    });\n    symbolPath.drift = driftSymbol;\n    this._symbolType = symbolType;\n    this.add(symbolPath);\n  };\n\n  Symbol.prototype.stopSymbolAnimation = function (toLastFrame) {\n    this.childAt(0).stopAnimation(null, toLastFrame);\n  };\n\n  Symbol.prototype.getSymbolPath = function () {\n    return this.childAt(0);\n  };\n\n  Symbol.prototype.highlight = function () {\n    enterEmphasis(this.childAt(0));\n  };\n\n  Symbol.prototype.downplay = function () {\n    leaveEmphasis(this.childAt(0));\n  };\n\n  Symbol.prototype.setZ = function (zlevel, z) {\n    var symbolPath = this.childAt(0);\n    symbolPath.zlevel = zlevel;\n    symbolPath.z = z;\n  };\n\n  Symbol.prototype.setDraggable = function (draggable) {\n    var symbolPath = this.childAt(0);\n    symbolPath.draggable = draggable;\n    symbolPath.cursor = draggable ? 'move' : symbolPath.cursor;\n  };\n\n  Symbol.prototype.updateData = function (data, idx, seriesScope, opts) {\n    this.silent = false;\n    var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\n    var seriesModel = data.hostModel;\n    var symbolSize = Symbol.getSymbolSize(data, idx);\n    var isInit = symbolType !== this._symbolType;\n    var disableAnimation = opts && opts.disableAnimation;\n\n    if (isInit) {\n      var keepAspect = data.getItemVisual(idx, 'symbolKeepAspect');\n\n      this._createSymbol(symbolType, data, idx, symbolSize, keepAspect);\n    } else {\n      var symbolPath = this.childAt(0);\n      symbolPath.silent = false;\n      var target = {\n        scaleX: symbolSize[0] / 2,\n        scaleY: symbolSize[1] / 2\n      };\n      disableAnimation ? symbolPath.attr(target) : graphic.updateProps(symbolPath, target, seriesModel, idx);\n    }\n\n    this._updateCommon(data, idx, symbolSize, seriesScope, opts);\n\n    if (isInit) {\n      var symbolPath = this.childAt(0);\n\n      if (!disableAnimation) {\n        var target = {\n          scaleX: this._sizeX,\n          scaleY: this._sizeY,\n          style: {\n            opacity: symbolPath.style.opacity\n          }\n        };\n        symbolPath.scaleX = symbolPath.scaleY = 0;\n        symbolPath.style.opacity = 0;\n        graphic.initProps(symbolPath, target, seriesModel, idx);\n      }\n    }\n\n    if (disableAnimation) {\n      this.childAt(0).stopAnimation('remove');\n    }\n\n    this._seriesModel = seriesModel;\n  };\n\n  Symbol.prototype._updateCommon = function (data, idx, symbolSize, seriesScope, opts) {\n    var symbolPath = this.childAt(0);\n    var seriesModel = data.hostModel;\n    var emphasisItemStyle;\n    var blurItemStyle;\n    var selectItemStyle;\n    var focus;\n    var blurScope;\n    var symbolOffset;\n    var labelStatesModels;\n    var hoverScale;\n    var cursorStyle;\n\n    if (seriesScope) {\n      emphasisItemStyle = seriesScope.emphasisItemStyle;\n      blurItemStyle = seriesScope.blurItemStyle;\n      selectItemStyle = seriesScope.selectItemStyle;\n      focus = seriesScope.focus;\n      blurScope = seriesScope.blurScope;\n      symbolOffset = seriesScope.symbolOffset;\n      labelStatesModels = seriesScope.labelStatesModels;\n      hoverScale = seriesScope.hoverScale;\n      cursorStyle = seriesScope.cursorStyle;\n    }\n\n    if (!seriesScope || data.hasItemOption) {\n      var itemModel = seriesScope && seriesScope.itemModel ? seriesScope.itemModel : data.getItemModel(idx);\n      var emphasisModel = itemModel.getModel('emphasis');\n      emphasisItemStyle = emphasisModel.getModel('itemStyle').getItemStyle();\n      selectItemStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\n      blurItemStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\n      focus = emphasisModel.get('focus');\n      blurScope = emphasisModel.get('blurScope');\n      symbolOffset = itemModel.getShallow('symbolOffset');\n      labelStatesModels = getLabelStatesModels(itemModel);\n      hoverScale = emphasisModel.getShallow('scale');\n      cursorStyle = itemModel.getShallow('cursor');\n    }\n\n    var symbolRotate = data.getItemVisual(idx, 'symbolRotate');\n    symbolPath.attr('rotation', (symbolRotate || 0) * Math.PI / 180 || 0);\n\n    if (symbolOffset) {\n      symbolPath.x = parsePercent(symbolOffset[0], symbolSize[0]);\n      symbolPath.y = parsePercent(symbolOffset[1], symbolSize[1]);\n    }\n\n    cursorStyle && symbolPath.attr('cursor', cursorStyle);\n    var symbolStyle = data.getItemVisual(idx, 'style');\n    var visualColor = symbolStyle.fill;\n\n    if (symbolPath instanceof ZRImage) {\n      var pathStyle = symbolPath.style;\n      symbolPath.useStyle(extend({\n        image: pathStyle.image,\n        x: pathStyle.x,\n        y: pathStyle.y,\n        width: pathStyle.width,\n        height: pathStyle.height\n      }, symbolStyle));\n    } else {\n      if (symbolPath.__isEmptyBrush) {\n        symbolPath.useStyle(extend({}, symbolStyle));\n      } else {\n        symbolPath.useStyle(symbolStyle);\n      }\n\n      symbolPath.style.decal = null;\n      symbolPath.setColor(visualColor, opts && opts.symbolInnerColor);\n      symbolPath.style.strokeNoScale = true;\n    }\n\n    var liftZ = data.getItemVisual(idx, 'liftZ');\n    var z2Origin = this._z2;\n\n    if (liftZ != null) {\n      if (z2Origin == null) {\n        this._z2 = symbolPath.z2;\n        symbolPath.z2 += liftZ;\n      }\n    } else if (z2Origin != null) {\n      symbolPath.z2 = z2Origin;\n      this._z2 = null;\n    }\n\n    var useNameLabel = opts && opts.useNameLabel;\n    setLabelStyle(symbolPath, labelStatesModels, {\n      labelFetcher: seriesModel,\n      labelDataIndex: idx,\n      defaultText: getLabelDefaultText,\n      inheritColor: visualColor,\n      defaultOpacity: symbolStyle.opacity\n    });\n\n    function getLabelDefaultText(idx) {\n      return useNameLabel ? data.getName(idx) : getDefaultLabel(data, idx);\n    }\n\n    this._sizeX = symbolSize[0] / 2;\n    this._sizeY = symbolSize[1] / 2;\n    var emphasisState = symbolPath.ensureState('emphasis');\n    emphasisState.style = emphasisItemStyle;\n    symbolPath.ensureState('select').style = selectItemStyle;\n    symbolPath.ensureState('blur').style = blurItemStyle;\n\n    if (hoverScale) {\n      var scaleRatio = Math.max(1.1, 3 / this._sizeY);\n      emphasisState.scaleX = this._sizeX * scaleRatio;\n      emphasisState.scaleY = this._sizeY * scaleRatio;\n    }\n\n    this.setSymbolScale(1);\n    enableHoverEmphasis(this, focus, blurScope);\n  };\n\n  Symbol.prototype.setSymbolScale = function (scale) {\n    this.scaleX = this.scaleY = scale;\n  };\n\n  Symbol.prototype.fadeOut = function (cb, opt) {\n    var symbolPath = this.childAt(0);\n    var seriesModel = this._seriesModel;\n    var dataIndex = getECData(this).dataIndex;\n    var animationOpt = opt && opt.animation;\n    this.silent = symbolPath.silent = true;\n\n    if (opt && opt.fadeLabel) {\n      var textContent = symbolPath.getTextContent();\n\n      if (textContent) {\n        graphic.removeElement(textContent, {\n          style: {\n            opacity: 0\n          }\n        }, seriesModel, {\n          dataIndex: dataIndex,\n          removeOpt: animationOpt,\n          cb: function () {\n            symbolPath.removeTextContent();\n          }\n        });\n      }\n    } else {\n      symbolPath.removeTextContent();\n    }\n\n    graphic.removeElement(symbolPath, {\n      style: {\n        opacity: 0\n      },\n      scaleX: 0,\n      scaleY: 0\n    }, seriesModel, {\n      dataIndex: dataIndex,\n      cb: cb,\n      removeOpt: animationOpt\n    });\n  };\n\n  Symbol.getSymbolSize = function (data, idx) {\n    var symbolSize = data.getItemVisual(idx, 'symbolSize');\n    return symbolSize instanceof Array ? symbolSize.slice() : [+symbolSize, +symbolSize];\n  };\n\n  return Symbol;\n}(graphic.Group);\n\nfunction driftSymbol(dx, dy) {\n  this.parent.drift(dx, dy);\n}\n\nexport default Symbol;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as graphic from '../../util/graphic';\nimport SymbolClz from './Symbol';\nimport { isObject } from 'zrender/lib/core/util';\nimport { getLabelStatesModels } from '../../label/labelStyle';\n\nfunction symbolNeedsDraw(data, point, idx, opt) {\n  return point && !isNaN(point[0]) && !isNaN(point[1]) && !(opt.isIgnore && opt.isIgnore(idx)) && !(opt.clipShape && !opt.clipShape.contain(point[0], point[1])) && data.getItemVisual(idx, 'symbol') !== 'none';\n}\n\nfunction normalizeUpdateOpt(opt) {\n  if (opt != null && !isObject(opt)) {\n    opt = {\n      isIgnore: opt\n    };\n  }\n\n  return opt || {};\n}\n\nfunction makeSeriesScope(data) {\n  var seriesModel = data.hostModel;\n  var emphasisModel = seriesModel.getModel('emphasis');\n  return {\n    emphasisItemStyle: emphasisModel.getModel('itemStyle').getItemStyle(),\n    blurItemStyle: seriesModel.getModel(['blur', 'itemStyle']).getItemStyle(),\n    selectItemStyle: seriesModel.getModel(['select', 'itemStyle']).getItemStyle(),\n    focus: emphasisModel.get('focus'),\n    blurScope: emphasisModel.get('blurScope'),\n    symbolRotate: seriesModel.get('symbolRotate'),\n    symbolOffset: seriesModel.get('symbolOffset'),\n    hoverScale: emphasisModel.get('scale'),\n    labelStatesModels: getLabelStatesModels(seriesModel),\n    cursorStyle: seriesModel.get('cursor')\n  };\n}\n\nvar SymbolDraw = function () {\n  function SymbolDraw(SymbolCtor) {\n    this.group = new graphic.Group();\n    this._SymbolCtor = SymbolCtor || SymbolClz;\n  }\n\n  SymbolDraw.prototype.updateData = function (data, opt) {\n    opt = normalizeUpdateOpt(opt);\n    var group = this.group;\n    var seriesModel = data.hostModel;\n    var oldData = this._data;\n    var SymbolCtor = this._SymbolCtor;\n    var disableAnimation = opt.disableAnimation;\n    var seriesScope = makeSeriesScope(data);\n    var symbolUpdateOpt = {\n      disableAnimation: disableAnimation\n    };\n\n    var getSymbolPoint = opt.getSymbolPoint || function (idx) {\n      return data.getItemLayout(idx);\n    };\n\n    if (!oldData) {\n      group.removeAll();\n    }\n\n    data.diff(oldData).add(function (newIdx) {\n      var point = getSymbolPoint(newIdx);\n\n      if (symbolNeedsDraw(data, point, newIdx, opt)) {\n        var symbolEl = new SymbolCtor(data, newIdx, seriesScope, symbolUpdateOpt);\n        symbolEl.setPosition(point);\n        data.setItemGraphicEl(newIdx, symbolEl);\n        group.add(symbolEl);\n      }\n    }).update(function (newIdx, oldIdx) {\n      var symbolEl = oldData.getItemGraphicEl(oldIdx);\n      var point = getSymbolPoint(newIdx);\n\n      if (!symbolNeedsDraw(data, point, newIdx, opt)) {\n        group.remove(symbolEl);\n        return;\n      }\n\n      if (!symbolEl) {\n        symbolEl = new SymbolCtor(data, newIdx);\n        symbolEl.setPosition(point);\n      } else {\n        symbolEl.updateData(data, newIdx, seriesScope, symbolUpdateOpt);\n        var target = {\n          x: point[0],\n          y: point[1]\n        };\n        disableAnimation ? symbolEl.attr(target) : graphic.updateProps(symbolEl, target, seriesModel);\n      }\n\n      group.add(symbolEl);\n      data.setItemGraphicEl(newIdx, symbolEl);\n    }).remove(function (oldIdx) {\n      var el = oldData.getItemGraphicEl(oldIdx);\n      el && el.fadeOut(function () {\n        group.remove(el);\n      });\n    }).execute();\n    this._getSymbolPoint = getSymbolPoint;\n    this._data = data;\n  };\n\n  ;\n\n  SymbolDraw.prototype.isPersistent = function () {\n    return true;\n  };\n\n  ;\n\n  SymbolDraw.prototype.updateLayout = function () {\n    var _this = this;\n\n    var data = this._data;\n\n    if (data) {\n      data.eachItemGraphicEl(function (el, idx) {\n        var point = _this._getSymbolPoint(idx);\n\n        el.setPosition(point);\n        el.markRedraw();\n      });\n    }\n  };\n\n  ;\n\n  SymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\n    this._seriesScope = makeSeriesScope(data);\n    this._data = null;\n    this.group.removeAll();\n  };\n\n  ;\n\n  SymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\n    opt = normalizeUpdateOpt(opt);\n\n    function updateIncrementalAndHover(el) {\n      if (!el.isGroup) {\n        el.incremental = true;\n        el.ensureState('emphasis').hoverLayer = true;\n      }\n    }\n\n    for (var idx = taskParams.start; idx < taskParams.end; idx++) {\n      var point = data.getItemLayout(idx);\n\n      if (symbolNeedsDraw(data, point, idx, opt)) {\n        var el = new this._SymbolCtor(data, idx, this._seriesScope);\n        el.traverse(updateIncrementalAndHover);\n        el.setPosition(point);\n        this.group.add(el);\n        data.setItemGraphicEl(idx, el);\n      }\n    }\n  };\n\n  ;\n\n  SymbolDraw.prototype.remove = function (enableAnimation) {\n    var group = this.group;\n    var data = this._data;\n\n    if (data && enableAnimation) {\n      data.eachItemGraphicEl(function (el) {\n        el.fadeOut(function () {\n          group.remove(el);\n        });\n      });\n    } else {\n      group.removeAll();\n    }\n  };\n\n  ;\n  return SymbolDraw;\n}();\n\nexport default SymbolDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isDimensionStacked } from '../../data/helper/dataStackHelper';\nimport { map } from 'zrender/lib/core/util';\nexport function prepareDataCoordInfo(coordSys, data, valueOrigin) {\n  var baseAxis = coordSys.getBaseAxis();\n  var valueAxis = coordSys.getOtherAxis(baseAxis);\n  var valueStart = getValueStart(valueAxis, valueOrigin);\n  var baseAxisDim = baseAxis.dim;\n  var valueAxisDim = valueAxis.dim;\n  var valueDim = data.mapDimension(valueAxisDim);\n  var baseDim = data.mapDimension(baseAxisDim);\n  var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\n  var dims = map(coordSys.dimensions, function (coordDim) {\n    return data.mapDimension(coordDim);\n  });\n  var stacked = false;\n  var stackResultDim = data.getCalculationInfo('stackResultDimension');\n\n  if (isDimensionStacked(data, dims[0])) {\n    stacked = true;\n    dims[0] = stackResultDim;\n  }\n\n  if (isDimensionStacked(data, dims[1])) {\n    stacked = true;\n    dims[1] = stackResultDim;\n  }\n\n  return {\n    dataDimsForPoint: dims,\n    valueStart: valueStart,\n    valueAxisDim: valueAxisDim,\n    baseAxisDim: baseAxisDim,\n    stacked: !!stacked,\n    valueDim: valueDim,\n    baseDim: baseDim,\n    baseDataOffset: baseDataOffset,\n    stackedOverDimension: data.getCalculationInfo('stackedOverDimension')\n  };\n}\n\nfunction getValueStart(valueAxis, valueOrigin) {\n  var valueStart = 0;\n  var extent = valueAxis.scale.getExtent();\n\n  if (valueOrigin === 'start') {\n    valueStart = extent[0];\n  } else if (valueOrigin === 'end') {\n    valueStart = extent[1];\n  } else {\n    if (extent[0] > 0) {\n      valueStart = extent[0];\n    } else if (extent[1] < 0) {\n      valueStart = extent[1];\n    }\n  }\n\n  return valueStart;\n}\n\nexport function getStackedOnPoint(dataCoordInfo, coordSys, data, idx) {\n  var value = NaN;\n\n  if (dataCoordInfo.stacked) {\n    value = data.get(data.getCalculationInfo('stackedOverDimension'), idx);\n  }\n\n  if (isNaN(value)) {\n    value = dataCoordInfo.valueStart;\n  }\n\n  var baseDataOffset = dataCoordInfo.baseDataOffset;\n  var stackedData = [];\n  stackedData[baseDataOffset] = data.get(dataCoordInfo.baseDim, idx);\n  stackedData[1 - baseDataOffset] = value;\n  return coordSys.dataToPoint(stackedData);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isArray } from 'zrender/lib/core/util';\nvar supportFloat32Array = typeof Float32Array !== 'undefined';\nvar Float32ArrayCtor = !supportFloat32Array ? Array : Float32Array;\nexport function createFloat32Array(arg) {\n  if (isArray(arg)) {\n    return supportFloat32Array ? new Float32Array(arg) : arg;\n  }\n\n  return new Float32ArrayCtor(arg);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { prepareDataCoordInfo, getStackedOnPoint } from './helper';\nimport { createFloat32Array } from '../../util/vendor';\n\nfunction diffData(oldData, newData) {\n  var diffResult = [];\n  newData.diff(oldData).add(function (idx) {\n    diffResult.push({\n      cmd: '+',\n      idx: idx\n    });\n  }).update(function (newIdx, oldIdx) {\n    diffResult.push({\n      cmd: '=',\n      idx: oldIdx,\n      idx1: newIdx\n    });\n  }).remove(function (idx) {\n    diffResult.push({\n      cmd: '-',\n      idx: idx\n    });\n  }).execute();\n  return diffResult;\n}\n\nexport default function lineAnimationDiff(oldData, newData, oldStackedOnPoints, newStackedOnPoints, oldCoordSys, newCoordSys, oldValueOrigin, newValueOrigin) {\n  var diff = diffData(oldData, newData);\n  var currPoints = [];\n  var nextPoints = [];\n  var currStackedPoints = [];\n  var nextStackedPoints = [];\n  var status = [];\n  var sortedIndices = [];\n  var rawIndices = [];\n  var newDataOldCoordInfo = prepareDataCoordInfo(oldCoordSys, newData, oldValueOrigin);\n  var oldDataNewCoordInfo = prepareDataCoordInfo(newCoordSys, oldData, newValueOrigin);\n  var oldPoints = oldData.getLayout('points') || [];\n  var newPoints = newData.getLayout('points') || [];\n\n  for (var i = 0; i < diff.length; i++) {\n    var diffItem = diff[i];\n    var pointAdded = true;\n    var oldIdx2 = void 0;\n    var newIdx2 = void 0;\n\n    switch (diffItem.cmd) {\n      case '=':\n        oldIdx2 = diffItem.idx * 2;\n        newIdx2 = diffItem.idx1 * 2;\n        var currentX = oldPoints[oldIdx2];\n        var currentY = oldPoints[oldIdx2 + 1];\n        var nextX = newPoints[newIdx2];\n        var nextY = newPoints[newIdx2 + 1];\n\n        if (isNaN(currentX) || isNaN(currentY)) {\n          currentX = nextX;\n          currentY = nextY;\n        }\n\n        currPoints.push(currentX, currentY);\n        nextPoints.push(nextX, nextY);\n        currStackedPoints.push(oldStackedOnPoints[oldIdx2], oldStackedOnPoints[oldIdx2 + 1]);\n        nextStackedPoints.push(newStackedOnPoints[newIdx2], newStackedOnPoints[newIdx2 + 1]);\n        rawIndices.push(newData.getRawIndex(diffItem.idx1));\n        break;\n\n      case '+':\n        var newIdx = diffItem.idx;\n        var newDataDimsForPoint = newDataOldCoordInfo.dataDimsForPoint;\n        var oldPt = oldCoordSys.dataToPoint([newData.get(newDataDimsForPoint[0], newIdx), newData.get(newDataDimsForPoint[1], newIdx)]);\n        newIdx2 = newIdx * 2;\n        currPoints.push(oldPt[0], oldPt[1]);\n        nextPoints.push(newPoints[newIdx2], newPoints[newIdx2 + 1]);\n        var stackedOnPoint = getStackedOnPoint(newDataOldCoordInfo, oldCoordSys, newData, newIdx);\n        currStackedPoints.push(stackedOnPoint[0], stackedOnPoint[1]);\n        nextStackedPoints.push(newStackedOnPoints[newIdx2], newStackedOnPoints[newIdx2 + 1]);\n        rawIndices.push(newData.getRawIndex(newIdx));\n        break;\n\n      case '-':\n        var oldIdx = diffItem.idx;\n        var rawIndex = oldData.getRawIndex(oldIdx);\n        var oldDataDimsForPoint = oldDataNewCoordInfo.dataDimsForPoint;\n        oldIdx2 = oldIdx * 2;\n\n        if (rawIndex !== oldIdx) {\n          var newPt = newCoordSys.dataToPoint([oldData.get(oldDataDimsForPoint[0], oldIdx), oldData.get(oldDataDimsForPoint[1], oldIdx)]);\n          var newStackedOnPt = getStackedOnPoint(oldDataNewCoordInfo, newCoordSys, oldData, oldIdx);\n          currPoints.push(oldPoints[oldIdx2], oldPoints[oldIdx2 + 1]);\n          nextPoints.push(newPt[0], newPt[1]);\n          currStackedPoints.push(oldStackedOnPoints[oldIdx2], oldStackedOnPoints[oldIdx2 + 1]);\n          nextStackedPoints.push(newStackedOnPt[0], newStackedOnPt[1]);\n          rawIndices.push(rawIndex);\n        } else {\n          pointAdded = false;\n        }\n\n    }\n\n    if (pointAdded) {\n      status.push(diffItem);\n      sortedIndices.push(sortedIndices.length);\n    }\n  }\n\n  sortedIndices.sort(function (a, b) {\n    return rawIndices[a] - rawIndices[b];\n  });\n  var len = currPoints.length;\n  var sortedCurrPoints = createFloat32Array(len);\n  var sortedNextPoints = createFloat32Array(len);\n  var sortedCurrStackedPoints = createFloat32Array(len);\n  var sortedNextStackedPoints = createFloat32Array(len);\n  var sortedStatus = [];\n\n  for (var i = 0; i < sortedIndices.length; i++) {\n    var idx = sortedIndices[i];\n    var i2 = i * 2;\n    var idx2 = idx * 2;\n    sortedCurrPoints[i2] = currPoints[idx2];\n    sortedCurrPoints[i2 + 1] = currPoints[idx2 + 1];\n    sortedNextPoints[i2] = nextPoints[idx2];\n    sortedNextPoints[i2 + 1] = nextPoints[idx2 + 1];\n    sortedCurrStackedPoints[i2] = currStackedPoints[idx2];\n    sortedCurrStackedPoints[i2 + 1] = currStackedPoints[idx2 + 1];\n    sortedNextStackedPoints[i2] = nextStackedPoints[idx2];\n    sortedNextStackedPoints[i2 + 1] = nextStackedPoints[idx2 + 1];\n    sortedStatus[i] = status[idx];\n  }\n\n  return {\n    current: sortedCurrPoints,\n    next: sortedNextPoints,\n    stackedOnCurrent: sortedCurrStackedPoints,\n    stackedOnNext: sortedNextStackedPoints,\n    status: sortedStatus\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Path from 'zrender/lib/graphic/Path';\nimport PathProxy from 'zrender/lib/core/PathProxy';\nimport { cubicRootAt, cubicAt } from 'zrender/lib/core/curve';\nvar mathMin = Math.min;\nvar mathMax = Math.max;\n\nfunction isPointNull(x, y) {\n  return isNaN(x) || isNaN(y);\n}\n\nfunction drawSegment(ctx, points, start, segLen, allLen, dir, smooth, smoothMonotone, connectNulls) {\n  var prevX;\n  var prevY;\n  var cpx0;\n  var cpy0;\n  var cpx1;\n  var cpy1;\n  var idx = start;\n  var k = 0;\n\n  for (; k < segLen; k++) {\n    var x = points[idx * 2];\n    var y = points[idx * 2 + 1];\n\n    if (idx >= allLen || idx < 0) {\n      break;\n    }\n\n    if (isPointNull(x, y)) {\n      if (connectNulls) {\n        idx += dir;\n        continue;\n      }\n\n      break;\n    }\n\n    if (idx === start) {\n      ctx[dir > 0 ? 'moveTo' : 'lineTo'](x, y);\n      cpx0 = x;\n      cpy0 = y;\n    } else {\n      var dx = x - prevX;\n      var dy = y - prevY;\n\n      if (dx * dx + dy * dy < 0.5) {\n        idx += dir;\n        continue;\n      }\n\n      if (smooth > 0) {\n        var nextIdx = idx + dir;\n        var nextX = points[nextIdx * 2];\n        var nextY = points[nextIdx * 2 + 1];\n        var tmpK = k + 1;\n\n        if (connectNulls) {\n          while (isPointNull(nextX, nextY) && tmpK < segLen) {\n            tmpK++;\n            nextIdx += dir;\n            nextX = points[nextIdx * 2];\n            nextY = points[nextIdx * 2 + 1];\n          }\n        }\n\n        var ratioNextSeg = 0.5;\n        var vx = 0;\n        var vy = 0;\n        var nextCpx0 = void 0;\n        var nextCpy0 = void 0;\n\n        if (tmpK >= segLen || isPointNull(nextX, nextY)) {\n          cpx1 = x;\n          cpy1 = y;\n        } else {\n          vx = nextX - prevX;\n          vy = nextY - prevY;\n          var dx0 = x - prevX;\n          var dx1 = nextX - x;\n          var dy0 = y - prevY;\n          var dy1 = nextY - y;\n          var lenPrevSeg = void 0;\n          var lenNextSeg = void 0;\n\n          if (smoothMonotone === 'x') {\n            lenPrevSeg = Math.abs(dx0);\n            lenNextSeg = Math.abs(dx1);\n            cpx1 = x - lenPrevSeg * smooth;\n            cpy1 = y;\n            nextCpx0 = x + lenPrevSeg * smooth;\n            nextCpy0 = y;\n          } else if (smoothMonotone === 'y') {\n            lenPrevSeg = Math.abs(dy0);\n            lenNextSeg = Math.abs(dy1);\n            cpx1 = x;\n            cpy1 = y - lenPrevSeg * smooth;\n            nextCpx0 = x;\n            nextCpy0 = y + lenPrevSeg * smooth;\n          } else {\n            lenPrevSeg = Math.sqrt(dx0 * dx0 + dy0 * dy0);\n            lenNextSeg = Math.sqrt(dx1 * dx1 + dy1 * dy1);\n            ratioNextSeg = lenNextSeg / (lenNextSeg + lenPrevSeg);\n            cpx1 = x - vx * smooth * (1 - ratioNextSeg);\n            cpy1 = y - vy * smooth * (1 - ratioNextSeg);\n            nextCpx0 = x + vx * smooth * ratioNextSeg;\n            nextCpy0 = y + vy * smooth * ratioNextSeg;\n            nextCpx0 = mathMin(nextCpx0, mathMax(nextX, x));\n            nextCpy0 = mathMin(nextCpy0, mathMax(nextY, y));\n            nextCpx0 = mathMax(nextCpx0, mathMin(nextX, x));\n            nextCpy0 = mathMax(nextCpy0, mathMin(nextY, y));\n            vx = nextCpx0 - x;\n            vy = nextCpy0 - y;\n            cpx1 = x - vx * lenPrevSeg / lenNextSeg;\n            cpy1 = y - vy * lenPrevSeg / lenNextSeg;\n            cpx1 = mathMin(cpx1, mathMax(prevX, x));\n            cpy1 = mathMin(cpy1, mathMax(prevY, y));\n            cpx1 = mathMax(cpx1, mathMin(prevX, x));\n            cpy1 = mathMax(cpy1, mathMin(prevY, y));\n            vx = x - cpx1;\n            vy = y - cpy1;\n            nextCpx0 = x + vx * lenNextSeg / lenPrevSeg;\n            nextCpy0 = y + vy * lenNextSeg / lenPrevSeg;\n          }\n        }\n\n        ctx.bezierCurveTo(cpx0, cpy0, cpx1, cpy1, x, y);\n        cpx0 = nextCpx0;\n        cpy0 = nextCpy0;\n      } else {\n        ctx.lineTo(x, y);\n      }\n    }\n\n    prevX = x;\n    prevY = y;\n    idx += dir;\n  }\n\n  return k;\n}\n\nvar ECPolylineShape = function () {\n  function ECPolylineShape() {\n    this.smooth = 0;\n    this.smoothConstraint = true;\n  }\n\n  return ECPolylineShape;\n}();\n\nvar ECPolyline = function (_super) {\n  __extends(ECPolyline, _super);\n\n  function ECPolyline(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'ec-polyline';\n    return _this;\n  }\n\n  ECPolyline.prototype.getDefaultStyle = function () {\n    return {\n      stroke: '#000',\n      fill: null\n    };\n  };\n\n  ECPolyline.prototype.getDefaultShape = function () {\n    return new ECPolylineShape();\n  };\n\n  ECPolyline.prototype.buildPath = function (ctx, shape) {\n    var points = shape.points;\n    var i = 0;\n    var len = points.length / 2;\n\n    if (shape.connectNulls) {\n      for (; len > 0; len--) {\n        if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n          break;\n        }\n      }\n\n      for (; i < len; i++) {\n        if (!isPointNull(points[i * 2], points[i * 2 + 1])) {\n          break;\n        }\n      }\n    }\n\n    while (i < len) {\n      i += drawSegment(ctx, points, i, len, len, 1, shape.smooth, shape.smoothMonotone, shape.connectNulls) + 1;\n    }\n  };\n\n  ECPolyline.prototype.getPointOn = function (xOrY, dim) {\n    if (!this.path) {\n      this.createPathProxy();\n      this.buildPath(this.path, this.shape);\n    }\n\n    var path = this.path;\n    var data = path.data;\n    var CMD = PathProxy.CMD;\n    var x0;\n    var y0;\n    var isDimX = dim === 'x';\n    var roots = [];\n\n    for (var i = 0; i < data.length;) {\n      var cmd = data[i++];\n      var x = void 0;\n      var y = void 0;\n      var x2 = void 0;\n      var y2 = void 0;\n      var x3 = void 0;\n      var y3 = void 0;\n      var t = void 0;\n\n      switch (cmd) {\n        case CMD.M:\n          x0 = data[i++];\n          y0 = data[i++];\n          break;\n\n        case CMD.L:\n          x = data[i++];\n          y = data[i++];\n          t = isDimX ? (xOrY - x0) / (x - x0) : (xOrY - y0) / (y - y0);\n\n          if (t <= 1 && t >= 0) {\n            var val = isDimX ? (y - y0) * t + y0 : (x - x0) * t + x0;\n            return isDimX ? [xOrY, val] : [val, xOrY];\n          }\n\n          x0 = x;\n          y0 = y;\n          break;\n\n        case CMD.C:\n          x = data[i++];\n          y = data[i++];\n          x2 = data[i++];\n          y2 = data[i++];\n          x3 = data[i++];\n          y3 = data[i++];\n          var nRoot = isDimX ? cubicRootAt(x0, x, x2, x3, xOrY, roots) : cubicRootAt(y0, y, y2, y3, xOrY, roots);\n\n          if (nRoot > 0) {\n            for (var i_1 = 0; i_1 < nRoot; i_1++) {\n              var t_1 = roots[i_1];\n\n              if (t_1 <= 1 && t_1 >= 0) {\n                var val = isDimX ? cubicAt(y0, y, y2, y3, t_1) : cubicAt(x0, x, x2, x3, t_1);\n                return isDimX ? [xOrY, val] : [val, xOrY];\n              }\n            }\n          }\n\n          x0 = x3;\n          y0 = y3;\n          break;\n      }\n    }\n  };\n\n  return ECPolyline;\n}(Path);\n\nexport { ECPolyline };\n\nvar ECPolygonShape = function (_super) {\n  __extends(ECPolygonShape, _super);\n\n  function ECPolygonShape() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  return ECPolygonShape;\n}(ECPolylineShape);\n\nvar ECPolygon = function (_super) {\n  __extends(ECPolygon, _super);\n\n  function ECPolygon(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'ec-polygon';\n    return _this;\n  }\n\n  ECPolygon.prototype.getDefaultShape = function () {\n    return new ECPolygonShape();\n  };\n\n  ECPolygon.prototype.buildPath = function (ctx, shape) {\n    var points = shape.points;\n    var stackedOnPoints = shape.stackedOnPoints;\n    var i = 0;\n    var len = points.length / 2;\n    var smoothMonotone = shape.smoothMonotone;\n\n    if (shape.connectNulls) {\n      for (; len > 0; len--) {\n        if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n          break;\n        }\n      }\n\n      for (; i < len; i++) {\n        if (!isPointNull(points[i * 2], points[i * 2 + 1])) {\n          break;\n        }\n      }\n    }\n\n    while (i < len) {\n      var k = drawSegment(ctx, points, i, len, len, 1, shape.smooth, smoothMonotone, shape.connectNulls);\n      drawSegment(ctx, stackedOnPoints, i + k - 1, k, len, -1, shape.stackedOnSmooth, smoothMonotone, shape.connectNulls);\n      i += k + 1;\n      ctx.closePath();\n    }\n  };\n\n  return ECPolygon;\n}(Path);\n\nexport { ECPolygon };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as graphic from '../../util/graphic';\nimport { round } from '../../util/number';\n\nfunction createGridClipPath(cartesian, hasAnimation, seriesModel, done, during) {\n  var rect = cartesian.getArea();\n  var x = rect.x;\n  var y = rect.y;\n  var width = rect.width;\n  var height = rect.height;\n  var lineWidth = seriesModel.get(['lineStyle', 'width']) || 2;\n  x -= lineWidth / 2;\n  y -= lineWidth / 2;\n  width += lineWidth;\n  height += lineWidth;\n  x = Math.floor(x);\n  width = Math.round(width);\n  var clipPath = new graphic.Rect({\n    shape: {\n      x: x,\n      y: y,\n      width: width,\n      height: height\n    }\n  });\n\n  if (hasAnimation) {\n    var baseAxis = cartesian.getBaseAxis();\n    var isHorizontal = baseAxis.isHorizontal();\n    var isAxisInversed = baseAxis.inverse;\n\n    if (isHorizontal) {\n      if (isAxisInversed) {\n        clipPath.shape.x += width;\n      }\n\n      clipPath.shape.width = 0;\n    } else {\n      if (!isAxisInversed) {\n        clipPath.shape.y += height;\n      }\n\n      clipPath.shape.height = 0;\n    }\n\n    var duringCb = typeof during === 'function' ? function (percent) {\n      during(percent, clipPath);\n    } : null;\n    graphic.initProps(clipPath, {\n      shape: {\n        width: width,\n        height: height,\n        x: x,\n        y: y\n      }\n    }, seriesModel, null, done, duringCb);\n  }\n\n  return clipPath;\n}\n\nfunction createPolarClipPath(polar, hasAnimation, seriesModel) {\n  var sectorArea = polar.getArea();\n  var r0 = round(sectorArea.r0, 1);\n  var r = round(sectorArea.r, 1);\n  var clipPath = new graphic.Sector({\n    shape: {\n      cx: round(polar.cx, 1),\n      cy: round(polar.cy, 1),\n      r0: r0,\n      r: r,\n      startAngle: sectorArea.startAngle,\n      endAngle: sectorArea.endAngle,\n      clockwise: sectorArea.clockwise\n    }\n  });\n\n  if (hasAnimation) {\n    var isRadial = polar.getBaseAxis().dim === 'angle';\n\n    if (isRadial) {\n      clipPath.shape.endAngle = sectorArea.startAngle;\n    } else {\n      clipPath.shape.r = r0;\n    }\n\n    graphic.initProps(clipPath, {\n      shape: {\n        endAngle: sectorArea.endAngle,\n        r: r\n      }\n    }, seriesModel);\n  }\n\n  return clipPath;\n}\n\nfunction createClipPath(coordSys, hasAnimation, seriesModel, done, during) {\n  if (!coordSys) {\n    return null;\n  } else if (coordSys.type === 'polar') {\n    return createPolarClipPath(coordSys, hasAnimation, seriesModel);\n  } else if (coordSys.type === 'cartesian2d') {\n    return createGridClipPath(coordSys, hasAnimation, seriesModel, done, during);\n  }\n\n  return null;\n}\n\nexport { createGridClipPath, createPolarClipPath, createClipPath };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function isCoordinateSystemType(coordSys, type) {\n  return coordSys.type === type;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport SymbolDraw from '../helper/SymbolDraw';\nimport SymbolClz from '../helper/Symbol';\nimport lineAnimationDiff from './lineAnimationDiff';\nimport * as graphic from '../../util/graphic';\nimport * as modelUtil from '../../util/model';\nimport { ECPolyline, ECPolygon } from './poly';\nimport ChartView from '../../view/Chart';\nimport { prepareDataCoordInfo, getStackedOnPoint } from './helper';\nimport { createGridClipPath, createPolarClipPath } from '../helper/createClipPathFromCoordSys';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport { setStatesStylesFromModel, setStatesFlag, enableHoverEmphasis } from '../../util/states';\nimport { setLabelStyle, getLabelStatesModels, labelInner } from '../../label/labelStyle';\nimport { getDefaultLabel, getDefaultInterpolatedLabel } from '../helper/labelHelper';\nimport { getECData } from '../../util/innerStore';\nimport { createFloat32Array } from '../../util/vendor';\n\nfunction isPointsSame(points1, points2) {\n  if (points1.length !== points2.length) {\n    return;\n  }\n\n  for (var i = 0; i < points1.length; i++) {\n    if (points1[i] !== points2[i]) {\n      return;\n    }\n  }\n\n  return true;\n}\n\nfunction bboxFromPoints(points) {\n  var minX = Infinity;\n  var minY = Infinity;\n  var maxX = -Infinity;\n  var maxY = -Infinity;\n\n  for (var i = 0; i < points.length;) {\n    var x = points[i++];\n    var y = points[i++];\n\n    if (!isNaN(x)) {\n      minX = Math.min(x, minX);\n      maxX = Math.max(x, maxX);\n    }\n\n    if (!isNaN(y)) {\n      minY = Math.min(y, minY);\n      maxY = Math.max(y, maxY);\n    }\n  }\n\n  return [[minX, minY], [maxX, maxY]];\n}\n\nfunction getBoundingDiff(points1, points2) {\n  var _a = bboxFromPoints(points1),\n      min1 = _a[0],\n      max1 = _a[1];\n\n  var _b = bboxFromPoints(points2),\n      min2 = _b[0],\n      max2 = _b[1];\n\n  return Math.max(Math.abs(min1[0] - min2[0]), Math.abs(min1[1] - min2[1]), Math.abs(max1[0] - max2[0]), Math.abs(max1[1] - max2[1]));\n}\n\nfunction getSmooth(smooth) {\n  return typeof smooth === 'number' ? smooth : smooth ? 0.5 : 0;\n}\n\nfunction getStackedOnPoints(coordSys, data, dataCoordInfo) {\n  if (!dataCoordInfo.valueDim) {\n    return [];\n  }\n\n  var len = data.count();\n  var points = createFloat32Array(len * 2);\n\n  for (var idx = 0; idx < len; idx++) {\n    var pt = getStackedOnPoint(dataCoordInfo, coordSys, data, idx);\n    points[idx * 2] = pt[0];\n    points[idx * 2 + 1] = pt[1];\n  }\n\n  return points;\n}\n\nfunction turnPointsIntoStep(points, coordSys, stepTurnAt) {\n  var baseAxis = coordSys.getBaseAxis();\n  var baseIndex = baseAxis.dim === 'x' || baseAxis.dim === 'radius' ? 0 : 1;\n  var stepPoints = [];\n  var i = 0;\n  var stepPt = [];\n  var pt = [];\n  var nextPt = [];\n\n  for (; i < points.length - 2; i += 2) {\n    nextPt[0] = points[i + 2];\n    nextPt[1] = points[i + 3];\n    pt[0] = points[i];\n    pt[1] = points[i + 1];\n    stepPoints.push(pt[0], pt[1]);\n\n    switch (stepTurnAt) {\n      case 'end':\n        stepPt[baseIndex] = nextPt[baseIndex];\n        stepPt[1 - baseIndex] = pt[1 - baseIndex];\n        stepPoints.push(stepPt[0], stepPt[1]);\n        break;\n\n      case 'middle':\n        var middle = (pt[baseIndex] + nextPt[baseIndex]) / 2;\n        var stepPt2 = [];\n        stepPt[baseIndex] = stepPt2[baseIndex] = middle;\n        stepPt[1 - baseIndex] = pt[1 - baseIndex];\n        stepPt2[1 - baseIndex] = nextPt[1 - baseIndex];\n        stepPoints.push(stepPt[0], stepPt[1]);\n        stepPoints.push(stepPt2[0], stepPt2[1]);\n        break;\n\n      default:\n        stepPt[baseIndex] = pt[baseIndex];\n        stepPt[1 - baseIndex] = nextPt[1 - baseIndex];\n        stepPoints.push(stepPt[0], stepPt[1]);\n    }\n  }\n\n  stepPoints.push(points[i++], points[i++]);\n  return stepPoints;\n}\n\nfunction getVisualGradient(data, coordSys) {\n  var visualMetaList = data.getVisual('visualMeta');\n\n  if (!visualMetaList || !visualMetaList.length || !data.count()) {\n    return;\n  }\n\n  if (coordSys.type !== 'cartesian2d') {\n    if (process.env.NODE_ENV !== 'production') {\n      console.warn('Visual map on line style is only supported on cartesian2d.');\n    }\n\n    return;\n  }\n\n  var coordDim;\n  var visualMeta;\n\n  for (var i = visualMetaList.length - 1; i >= 0; i--) {\n    var dimIndex = visualMetaList[i].dimension;\n    var dimName = data.dimensions[dimIndex];\n    var dimInfo = data.getDimensionInfo(dimName);\n    coordDim = dimInfo && dimInfo.coordDim;\n\n    if (coordDim === 'x' || coordDim === 'y') {\n      visualMeta = visualMetaList[i];\n      break;\n    }\n  }\n\n  if (!visualMeta) {\n    if (process.env.NODE_ENV !== 'production') {\n      console.warn('Visual map on line style only support x or y dimension.');\n    }\n\n    return;\n  }\n\n  var axis = coordSys.getAxis(coordDim);\n  var colorStops = zrUtil.map(visualMeta.stops, function (stop) {\n    return {\n      offset: 0,\n      coord: axis.toGlobalCoord(axis.dataToCoord(stop.value)),\n      color: stop.color\n    };\n  });\n  var stopLen = colorStops.length;\n  var outerColors = visualMeta.outerColors.slice();\n\n  if (stopLen && colorStops[0].coord > colorStops[stopLen - 1].coord) {\n    colorStops.reverse();\n    outerColors.reverse();\n  }\n\n  var tinyExtent = 10;\n  var minCoord = colorStops[0].coord - tinyExtent;\n  var maxCoord = colorStops[stopLen - 1].coord + tinyExtent;\n  var coordSpan = maxCoord - minCoord;\n\n  if (coordSpan < 1e-3) {\n    return 'transparent';\n  }\n\n  zrUtil.each(colorStops, function (stop) {\n    stop.offset = (stop.coord - minCoord) / coordSpan;\n  });\n  colorStops.push({\n    offset: stopLen ? colorStops[stopLen - 1].offset : 0.5,\n    color: outerColors[1] || 'transparent'\n  });\n  colorStops.unshift({\n    offset: stopLen ? colorStops[0].offset : 0.5,\n    color: outerColors[0] || 'transparent'\n  });\n  var gradient = new graphic.LinearGradient(0, 0, 0, 0, colorStops, true);\n  gradient[coordDim] = minCoord;\n  gradient[coordDim + '2'] = maxCoord;\n  return gradient;\n}\n\nfunction getIsIgnoreFunc(seriesModel, data, coordSys) {\n  var showAllSymbol = seriesModel.get('showAllSymbol');\n  var isAuto = showAllSymbol === 'auto';\n\n  if (showAllSymbol && !isAuto) {\n    return;\n  }\n\n  var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\n\n  if (!categoryAxis) {\n    return;\n  }\n\n  if (isAuto && canShowAllSymbolForCategory(categoryAxis, data)) {\n    return;\n  }\n\n  var categoryDataDim = data.mapDimension(categoryAxis.dim);\n  var labelMap = {};\n  zrUtil.each(categoryAxis.getViewLabels(), function (labelItem) {\n    var ordinalNumber = categoryAxis.scale.getRawOrdinalNumber(labelItem.tickValue);\n    labelMap[ordinalNumber] = 1;\n  });\n  return function (dataIndex) {\n    return !labelMap.hasOwnProperty(data.get(categoryDataDim, dataIndex));\n  };\n}\n\nfunction canShowAllSymbolForCategory(categoryAxis, data) {\n  var axisExtent = categoryAxis.getExtent();\n  var availSize = Math.abs(axisExtent[1] - axisExtent[0]) / categoryAxis.scale.count();\n  isNaN(availSize) && (availSize = 0);\n  var dataLen = data.count();\n  var step = Math.max(1, Math.round(dataLen / 5));\n\n  for (var dataIndex = 0; dataIndex < dataLen; dataIndex += step) {\n    if (SymbolClz.getSymbolSize(data, dataIndex)[categoryAxis.isHorizontal() ? 1 : 0] * 1.5 > availSize) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nfunction isPointNull(x, y) {\n  return isNaN(x) || isNaN(y);\n}\n\nfunction getLastIndexNotNull(points) {\n  var len = points.length / 2;\n\n  for (; len > 0; len--) {\n    if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n      break;\n    }\n  }\n\n  return len - 1;\n}\n\nfunction getPointAtIndex(points, idx) {\n  return [points[idx * 2], points[idx * 2 + 1]];\n}\n\nfunction getIndexRange(points, xOrY, dim) {\n  var len = points.length / 2;\n  var dimIdx = dim === 'x' ? 0 : 1;\n  var a;\n  var b;\n  var prevIndex = 0;\n  var nextIndex = -1;\n\n  for (var i = 0; i < len; i++) {\n    b = points[i * 2 + dimIdx];\n\n    if (isNaN(b) || isNaN(points[i * 2 + 1 - dimIdx])) {\n      continue;\n    }\n\n    if (i === 0) {\n      a = b;\n      continue;\n    }\n\n    if (a <= xOrY && b >= xOrY || a >= xOrY && b <= xOrY) {\n      nextIndex = i;\n      break;\n    }\n\n    prevIndex = i;\n    a = b;\n  }\n\n  return {\n    range: [prevIndex, nextIndex],\n    t: (xOrY - a) / (b - a)\n  };\n}\n\nfunction createLineClipPath(lineView, coordSys, hasAnimation, seriesModel) {\n  if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n    var endLabelModel_1 = seriesModel.getModel('endLabel');\n    var showEndLabel = endLabelModel_1.get('show');\n    var valueAnimation_1 = endLabelModel_1.get('valueAnimation');\n    var data_1 = seriesModel.getData();\n    var labelAnimationRecord_1 = {\n      lastFrameIndex: 0\n    };\n    var during = showEndLabel ? function (percent, clipRect) {\n      lineView._endLabelOnDuring(percent, clipRect, data_1, labelAnimationRecord_1, valueAnimation_1, endLabelModel_1, coordSys);\n    } : null;\n    var isHorizontal = coordSys.getBaseAxis().isHorizontal();\n    var clipPath = createGridClipPath(coordSys, hasAnimation, seriesModel, function () {\n      var endLabel = lineView._endLabel;\n\n      if (endLabel && hasAnimation) {\n        if (labelAnimationRecord_1.originalX != null) {\n          endLabel.attr({\n            x: labelAnimationRecord_1.originalX,\n            y: labelAnimationRecord_1.originalY\n          });\n        }\n      }\n    }, during);\n\n    if (!seriesModel.get('clip', true)) {\n      var rectShape = clipPath.shape;\n      var expandSize = Math.max(rectShape.width, rectShape.height);\n\n      if (isHorizontal) {\n        rectShape.y -= expandSize;\n        rectShape.height += expandSize * 2;\n      } else {\n        rectShape.x -= expandSize;\n        rectShape.width += expandSize * 2;\n      }\n    }\n\n    if (during) {\n      during(1, clipPath);\n    }\n\n    return clipPath;\n  } else {\n    if (process.env.NODE_ENV !== 'production') {\n      if (seriesModel.get(['endLabel', 'show'])) {\n        console.warn('endLabel is not supported for lines in polar systems.');\n      }\n    }\n\n    return createPolarClipPath(coordSys, hasAnimation, seriesModel);\n  }\n}\n\nfunction getEndLabelStateSpecified(endLabelModel, coordSys) {\n  var baseAxis = coordSys.getBaseAxis();\n  var isHorizontal = baseAxis.isHorizontal();\n  var isBaseInversed = baseAxis.inverse;\n  var align = isHorizontal ? isBaseInversed ? 'right' : 'left' : 'center';\n  var verticalAlign = isHorizontal ? 'middle' : isBaseInversed ? 'top' : 'bottom';\n  return {\n    normal: {\n      align: endLabelModel.get('align') || align,\n      verticalAlign: endLabelModel.get('verticalAlign') || verticalAlign\n    }\n  };\n}\n\nvar LineView = function (_super) {\n  __extends(LineView, _super);\n\n  function LineView() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  LineView.prototype.init = function () {\n    var lineGroup = new graphic.Group();\n    var symbolDraw = new SymbolDraw();\n    this.group.add(symbolDraw.group);\n    this._symbolDraw = symbolDraw;\n    this._lineGroup = lineGroup;\n  };\n\n  LineView.prototype.render = function (seriesModel, ecModel, api) {\n    var _this = this;\n\n    var coordSys = seriesModel.coordinateSystem;\n    var group = this.group;\n    var data = seriesModel.getData();\n    var lineStyleModel = seriesModel.getModel('lineStyle');\n    var areaStyleModel = seriesModel.getModel('areaStyle');\n    var points = data.getLayout('points') || [];\n    var isCoordSysPolar = coordSys.type === 'polar';\n    var prevCoordSys = this._coordSys;\n    var symbolDraw = this._symbolDraw;\n    var polyline = this._polyline;\n    var polygon = this._polygon;\n    var lineGroup = this._lineGroup;\n    var hasAnimation = seriesModel.get('animation');\n    var isAreaChart = !areaStyleModel.isEmpty();\n    var valueOrigin = areaStyleModel.get('origin');\n    var dataCoordInfo = prepareDataCoordInfo(coordSys, data, valueOrigin);\n    var stackedOnPoints = isAreaChart && getStackedOnPoints(coordSys, data, dataCoordInfo);\n    var showSymbol = seriesModel.get('showSymbol');\n    var isIgnoreFunc = showSymbol && !isCoordSysPolar && getIsIgnoreFunc(seriesModel, data, coordSys);\n    var oldData = this._data;\n    oldData && oldData.eachItemGraphicEl(function (el, idx) {\n      if (el.__temp) {\n        group.remove(el);\n        oldData.setItemGraphicEl(idx, null);\n      }\n    });\n\n    if (!showSymbol) {\n      symbolDraw.remove();\n    }\n\n    group.add(lineGroup);\n    var step = !isCoordSysPolar ? seriesModel.get('step') : false;\n    var clipShapeForSymbol;\n\n    if (coordSys && coordSys.getArea && seriesModel.get('clip', true)) {\n      clipShapeForSymbol = coordSys.getArea();\n\n      if (clipShapeForSymbol.width != null) {\n        clipShapeForSymbol.x -= 0.1;\n        clipShapeForSymbol.y -= 0.1;\n        clipShapeForSymbol.width += 0.2;\n        clipShapeForSymbol.height += 0.2;\n      } else if (clipShapeForSymbol.r0) {\n        clipShapeForSymbol.r0 -= 0.5;\n        clipShapeForSymbol.r += 0.5;\n      }\n    }\n\n    this._clipShapeForSymbol = clipShapeForSymbol;\n\n    if (!(polyline && prevCoordSys.type === coordSys.type && step === this._step)) {\n      showSymbol && symbolDraw.updateData(data, {\n        isIgnore: isIgnoreFunc,\n        clipShape: clipShapeForSymbol,\n        disableAnimation: true,\n        getSymbolPoint: function (idx) {\n          return [points[idx * 2], points[idx * 2 + 1]];\n        }\n      });\n      hasAnimation && this._initSymbolLabelAnimation(data, coordSys, clipShapeForSymbol);\n\n      if (step) {\n        points = turnPointsIntoStep(points, coordSys, step);\n\n        if (stackedOnPoints) {\n          stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\n        }\n      }\n\n      polyline = this._newPolyline(points);\n\n      if (isAreaChart) {\n        polygon = this._newPolygon(points, stackedOnPoints);\n      }\n\n      if (!isCoordSysPolar) {\n        this._initOrUpdateEndLabel(seriesModel, coordSys);\n      }\n\n      lineGroup.setClipPath(createLineClipPath(this, coordSys, true, seriesModel));\n    } else {\n      if (isAreaChart && !polygon) {\n        polygon = this._newPolygon(points, stackedOnPoints);\n      } else if (polygon && !isAreaChart) {\n        lineGroup.remove(polygon);\n        polygon = this._polygon = null;\n      }\n\n      if (!isCoordSysPolar) {\n        this._initOrUpdateEndLabel(seriesModel, coordSys);\n      }\n\n      lineGroup.setClipPath(createLineClipPath(this, coordSys, false, seriesModel));\n      showSymbol && symbolDraw.updateData(data, {\n        isIgnore: isIgnoreFunc,\n        clipShape: clipShapeForSymbol,\n        disableAnimation: true,\n        getSymbolPoint: function (idx) {\n          return [points[idx * 2], points[idx * 2 + 1]];\n        }\n      });\n\n      if (!isPointsSame(this._stackedOnPoints, stackedOnPoints) || !isPointsSame(this._points, points)) {\n        if (hasAnimation) {\n          this._doUpdateAnimation(data, stackedOnPoints, coordSys, api, step, valueOrigin);\n        } else {\n          if (step) {\n            points = turnPointsIntoStep(points, coordSys, step);\n\n            if (stackedOnPoints) {\n              stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\n            }\n          }\n\n          polyline.setShape({\n            points: points\n          });\n          polygon && polygon.setShape({\n            points: points,\n            stackedOnPoints: stackedOnPoints\n          });\n        }\n      }\n    }\n\n    var visualColor = getVisualGradient(data, coordSys) || data.getVisual('style')[data.getVisual('drawType')];\n    var focus = seriesModel.get(['emphasis', 'focus']);\n    var blurScope = seriesModel.get(['emphasis', 'blurScope']);\n    polyline.useStyle(zrUtil.defaults(lineStyleModel.getLineStyle(), {\n      fill: 'none',\n      stroke: visualColor,\n      lineJoin: 'bevel'\n    }));\n    setStatesStylesFromModel(polyline, seriesModel, 'lineStyle');\n\n    if (polyline.style.lineWidth > 0 && seriesModel.get(['emphasis', 'lineStyle', 'width']) === 'bolder') {\n      var emphasisLineStyle = polyline.getState('emphasis').style;\n      emphasisLineStyle.lineWidth = polyline.style.lineWidth + 1;\n    }\n\n    getECData(polyline).seriesIndex = seriesModel.seriesIndex;\n    enableHoverEmphasis(polyline, focus, blurScope);\n    var smooth = getSmooth(seriesModel.get('smooth'));\n    var smoothMonotone = seriesModel.get('smoothMonotone');\n    var connectNulls = seriesModel.get('connectNulls');\n    polyline.setShape({\n      smooth: smooth,\n      smoothMonotone: smoothMonotone,\n      connectNulls: connectNulls\n    });\n\n    if (polygon) {\n      var stackedOnSeries = data.getCalculationInfo('stackedOnSeries');\n      var stackedOnSmooth = 0;\n      polygon.useStyle(zrUtil.defaults(areaStyleModel.getAreaStyle(), {\n        fill: visualColor,\n        opacity: 0.7,\n        lineJoin: 'bevel',\n        decal: data.getVisual('style').decal\n      }));\n\n      if (stackedOnSeries) {\n        stackedOnSmooth = getSmooth(stackedOnSeries.get('smooth'));\n      }\n\n      polygon.setShape({\n        smooth: smooth,\n        stackedOnSmooth: stackedOnSmooth,\n        smoothMonotone: smoothMonotone,\n        connectNulls: connectNulls\n      });\n      setStatesStylesFromModel(polygon, seriesModel, 'areaStyle');\n      getECData(polygon).seriesIndex = seriesModel.seriesIndex;\n      enableHoverEmphasis(polygon, focus, blurScope);\n    }\n\n    var changePolyState = function (toState) {\n      _this._changePolyState(toState);\n    };\n\n    data.eachItemGraphicEl(function (el) {\n      el && (el.onHoverStateChange = changePolyState);\n    });\n    this._polyline.onHoverStateChange = changePolyState;\n    this._data = data;\n    this._coordSys = coordSys;\n    this._stackedOnPoints = stackedOnPoints;\n    this._points = points;\n    this._step = step;\n    this._valueOrigin = valueOrigin;\n  };\n\n  LineView.prototype.dispose = function () {};\n\n  LineView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\n    var data = seriesModel.getData();\n    var dataIndex = modelUtil.queryDataIndex(data, payload);\n\n    this._changePolyState('emphasis');\n\n    if (!(dataIndex instanceof Array) && dataIndex != null && dataIndex >= 0) {\n      var points = data.getLayout('points');\n      var symbol = data.getItemGraphicEl(dataIndex);\n\n      if (!symbol) {\n        var x = points[dataIndex * 2];\n        var y = points[dataIndex * 2 + 1];\n\n        if (isNaN(x) || isNaN(y)) {\n          return;\n        }\n\n        if (this._clipShapeForSymbol && !this._clipShapeForSymbol.contain(x, y)) {\n          return;\n        }\n\n        symbol = new SymbolClz(data, dataIndex);\n        symbol.x = x;\n        symbol.y = y;\n        symbol.setZ(seriesModel.get('zlevel'), seriesModel.get('z'));\n        symbol.__temp = true;\n        data.setItemGraphicEl(dataIndex, symbol);\n        symbol.stopSymbolAnimation(true);\n        this.group.add(symbol);\n      }\n\n      symbol.highlight();\n    } else {\n      ChartView.prototype.highlight.call(this, seriesModel, ecModel, api, payload);\n    }\n  };\n\n  LineView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\n    var data = seriesModel.getData();\n    var dataIndex = modelUtil.queryDataIndex(data, payload);\n\n    this._changePolyState('normal');\n\n    if (dataIndex != null && dataIndex >= 0) {\n      var symbol = data.getItemGraphicEl(dataIndex);\n\n      if (symbol) {\n        if (symbol.__temp) {\n          data.setItemGraphicEl(dataIndex, null);\n          this.group.remove(symbol);\n        } else {\n          symbol.downplay();\n        }\n      }\n    } else {\n      ChartView.prototype.downplay.call(this, seriesModel, ecModel, api, payload);\n    }\n  };\n\n  LineView.prototype._changePolyState = function (toState) {\n    var polygon = this._polygon;\n    setStatesFlag(this._polyline, toState);\n    polygon && setStatesFlag(polygon, toState);\n  };\n\n  LineView.prototype._newPolyline = function (points) {\n    var polyline = this._polyline;\n\n    if (polyline) {\n      this._lineGroup.remove(polyline);\n    }\n\n    polyline = new ECPolyline({\n      shape: {\n        points: points\n      },\n      segmentIgnoreThreshold: 2,\n      z2: 10\n    });\n\n    this._lineGroup.add(polyline);\n\n    this._polyline = polyline;\n    return polyline;\n  };\n\n  LineView.prototype._newPolygon = function (points, stackedOnPoints) {\n    var polygon = this._polygon;\n\n    if (polygon) {\n      this._lineGroup.remove(polygon);\n    }\n\n    polygon = new ECPolygon({\n      shape: {\n        points: points,\n        stackedOnPoints: stackedOnPoints\n      },\n      segmentIgnoreThreshold: 2\n    });\n\n    this._lineGroup.add(polygon);\n\n    this._polygon = polygon;\n    return polygon;\n  };\n\n  LineView.prototype._initSymbolLabelAnimation = function (data, coordSys, clipShape) {\n    var isHorizontalOrRadial;\n    var isCoordSysPolar;\n    var baseAxis = coordSys.getBaseAxis();\n    var isAxisInverse = baseAxis.inverse;\n\n    if (coordSys.type === 'cartesian2d') {\n      isHorizontalOrRadial = baseAxis.isHorizontal();\n      isCoordSysPolar = false;\n    } else if (coordSys.type === 'polar') {\n      isHorizontalOrRadial = baseAxis.dim === 'angle';\n      isCoordSysPolar = true;\n    }\n\n    var seriesModel = data.hostModel;\n    var seriesDuration = seriesModel.get('animationDuration');\n\n    if (typeof seriesDuration === 'function') {\n      seriesDuration = seriesDuration(null);\n    }\n\n    var seriesDalay = seriesModel.get('animationDelay') || 0;\n    var seriesDalayValue = typeof seriesDalay === 'function' ? seriesDalay(null) : seriesDalay;\n    data.eachItemGraphicEl(function (symbol, idx) {\n      var el = symbol;\n\n      if (el) {\n        var point = [symbol.x, symbol.y];\n        var start = void 0;\n        var end = void 0;\n        var current = void 0;\n\n        if (isCoordSysPolar) {\n          var polarClip = clipShape;\n          var coord = coordSys.pointToCoord(point);\n\n          if (isHorizontalOrRadial) {\n            start = polarClip.startAngle;\n            end = polarClip.endAngle;\n            current = -coord[1] / 180 * Math.PI;\n          } else {\n            start = polarClip.r0;\n            end = polarClip.r;\n            current = coord[0];\n          }\n        } else {\n          var gridClip = clipShape;\n\n          if (isHorizontalOrRadial) {\n            start = gridClip.x;\n            end = gridClip.x + gridClip.width;\n            current = symbol.x;\n          } else {\n            start = gridClip.y + gridClip.height;\n            end = gridClip.y;\n            current = symbol.y;\n          }\n        }\n\n        var ratio = end === start ? 0 : (current - start) / (end - start);\n\n        if (isAxisInverse) {\n          ratio = 1 - ratio;\n        }\n\n        var delay = typeof seriesDalay === 'function' ? seriesDalay(idx) : seriesDuration * ratio + seriesDalayValue;\n        var symbolPath = el.getSymbolPath();\n        var text = symbolPath.getTextContent();\n        el.attr({\n          scaleX: 0,\n          scaleY: 0\n        });\n        el.animateTo({\n          scaleX: 1,\n          scaleY: 1\n        }, {\n          duration: 200,\n          delay: delay\n        });\n\n        if (text) {\n          text.animateFrom({\n            style: {\n              opacity: 0\n            }\n          }, {\n            duration: 300,\n            delay: delay\n          });\n        }\n\n        symbolPath.disableLabelAnimation = true;\n      }\n    });\n  };\n\n  LineView.prototype._initOrUpdateEndLabel = function (seriesModel, coordSys) {\n    var endLabelModel = seriesModel.getModel('endLabel');\n\n    if (endLabelModel.get('show')) {\n      var data_2 = seriesModel.getData();\n      var polyline = this._polyline;\n      var endLabel = this._endLabel;\n\n      if (!endLabel) {\n        endLabel = this._endLabel = new graphic.Text({\n          z2: 200\n        });\n        endLabel.ignoreClip = true;\n        polyline.setTextContent(this._endLabel);\n        polyline.disableLabelAnimation = true;\n      }\n\n      var dataIndex = getLastIndexNotNull(data_2.getLayout('points'));\n\n      if (dataIndex >= 0) {\n        setLabelStyle(polyline, getLabelStatesModels(seriesModel, 'endLabel'), {\n          labelFetcher: seriesModel,\n          labelDataIndex: dataIndex,\n          defaultText: function (dataIndex, opt, interpolatedValue) {\n            return interpolatedValue != null ? getDefaultInterpolatedLabel(data_2, interpolatedValue) : getDefaultLabel(data_2, dataIndex);\n          },\n          enableTextSetter: true\n        }, getEndLabelStateSpecified(endLabelModel, coordSys));\n        polyline.textConfig.position = null;\n      }\n    } else if (this._endLabel) {\n      this._polyline.removeTextContent();\n\n      this._endLabel = null;\n    }\n  };\n\n  LineView.prototype._endLabelOnDuring = function (percent, clipRect, data, animationRecord, valueAnimation, endLabelModel, coordSys) {\n    var endLabel = this._endLabel;\n    var polyline = this._polyline;\n\n    if (endLabel) {\n      if (percent < 1 && animationRecord.originalX == null) {\n        animationRecord.originalX = endLabel.x;\n        animationRecord.originalY = endLabel.y;\n      }\n\n      var points = data.getLayout('points');\n      var seriesModel = data.hostModel;\n      var connectNulls = seriesModel.get('connectNulls');\n      var precision = endLabelModel.get('precision');\n      var distance = endLabelModel.get('distance') || 0;\n      var baseAxis = coordSys.getBaseAxis();\n      var isHorizontal = baseAxis.isHorizontal();\n      var isBaseInversed = baseAxis.inverse;\n      var clipShape = clipRect.shape;\n      var xOrY = isBaseInversed ? isHorizontal ? clipShape.x : clipShape.y + clipShape.height : isHorizontal ? clipShape.x + clipShape.width : clipShape.y;\n      var distanceX = (isHorizontal ? distance : 0) * (isBaseInversed ? -1 : 1);\n      var distanceY = (isHorizontal ? 0 : -distance) * (isBaseInversed ? -1 : 1);\n      var dim = isHorizontal ? 'x' : 'y';\n      var dataIndexRange = getIndexRange(points, xOrY, dim);\n      var indices = dataIndexRange.range;\n      var diff = indices[1] - indices[0];\n      var value = void 0;\n\n      if (diff >= 1) {\n        if (diff > 1 && !connectNulls) {\n          var pt = getPointAtIndex(points, indices[0]);\n          endLabel.attr({\n            x: pt[0] + distanceX,\n            y: pt[1] + distanceY\n          });\n          valueAnimation && (value = seriesModel.getRawValue(indices[0]));\n        } else {\n          var pt = polyline.getPointOn(xOrY, dim);\n          pt && endLabel.attr({\n            x: pt[0] + distanceX,\n            y: pt[1] + distanceY\n          });\n          var startValue = seriesModel.getRawValue(indices[0]);\n          var endValue = seriesModel.getRawValue(indices[1]);\n          valueAnimation && (value = modelUtil.interpolateRawValues(data, precision, startValue, endValue, dataIndexRange.t));\n        }\n\n        animationRecord.lastFrameIndex = indices[0];\n      } else {\n        var idx = percent === 1 || animationRecord.lastFrameIndex > 0 ? indices[0] : 0;\n        var pt = getPointAtIndex(points, idx);\n        valueAnimation && (value = seriesModel.getRawValue(idx));\n        endLabel.attr({\n          x: pt[0] + distanceX,\n          y: pt[1] + distanceY\n        });\n      }\n\n      if (valueAnimation) {\n        labelInner(endLabel).setLabelText(value);\n      }\n    }\n  };\n\n  LineView.prototype._doUpdateAnimation = function (data, stackedOnPoints, coordSys, api, step, valueOrigin) {\n    var polyline = this._polyline;\n    var polygon = this._polygon;\n    var seriesModel = data.hostModel;\n    var diff = lineAnimationDiff(this._data, data, this._stackedOnPoints, stackedOnPoints, this._coordSys, coordSys, this._valueOrigin, valueOrigin);\n    var current = diff.current;\n    var stackedOnCurrent = diff.stackedOnCurrent;\n    var next = diff.next;\n    var stackedOnNext = diff.stackedOnNext;\n\n    if (step) {\n      current = turnPointsIntoStep(diff.current, coordSys, step);\n      stackedOnCurrent = turnPointsIntoStep(diff.stackedOnCurrent, coordSys, step);\n      next = turnPointsIntoStep(diff.next, coordSys, step);\n      stackedOnNext = turnPointsIntoStep(diff.stackedOnNext, coordSys, step);\n    }\n\n    if (getBoundingDiff(current, next) > 3000 || polygon && getBoundingDiff(stackedOnCurrent, stackedOnNext) > 3000) {\n      polyline.setShape({\n        points: next\n      });\n\n      if (polygon) {\n        polygon.setShape({\n          points: next,\n          stackedOnPoints: stackedOnNext\n        });\n      }\n\n      return;\n    }\n\n    polyline.shape.__points = diff.current;\n    polyline.shape.points = current;\n    var target = {\n      shape: {\n        points: next\n      }\n    };\n\n    if (diff.current !== current) {\n      target.shape.__points = diff.next;\n    }\n\n    polyline.stopAnimation();\n    graphic.updateProps(polyline, target, seriesModel);\n\n    if (polygon) {\n      polygon.setShape({\n        points: current,\n        stackedOnPoints: stackedOnCurrent\n      });\n      polygon.stopAnimation();\n      graphic.updateProps(polygon, {\n        shape: {\n          stackedOnPoints: stackedOnNext\n        }\n      }, seriesModel);\n\n      if (polyline.shape.points !== polygon.shape.points) {\n        polygon.shape.points = polyline.shape.points;\n      }\n    }\n\n    var updatedDataInfo = [];\n    var diffStatus = diff.status;\n\n    for (var i = 0; i < diffStatus.length; i++) {\n      var cmd = diffStatus[i].cmd;\n\n      if (cmd === '=') {\n        var el = data.getItemGraphicEl(diffStatus[i].idx1);\n\n        if (el) {\n          updatedDataInfo.push({\n            el: el,\n            ptIdx: i\n          });\n        }\n      }\n    }\n\n    if (polyline.animators && polyline.animators.length) {\n      polyline.animators[0].during(function () {\n        polygon && polygon.dirtyShape();\n        var points = polyline.shape.__points;\n\n        for (var i = 0; i < updatedDataInfo.length; i++) {\n          var el = updatedDataInfo[i].el;\n          var offset = updatedDataInfo[i].ptIdx * 2;\n          el.x = points[offset];\n          el.y = points[offset + 1];\n          el.markRedraw();\n        }\n      });\n    }\n  };\n\n  LineView.prototype.remove = function (ecModel) {\n    var group = this.group;\n    var oldData = this._data;\n\n    this._lineGroup.removeAll();\n\n    this._symbolDraw.remove(true);\n\n    oldData && oldData.eachItemGraphicEl(function (el, idx) {\n      if (el.__temp) {\n        group.remove(el);\n        oldData.setItemGraphicEl(idx, null);\n      }\n    });\n    this._polyline = this._polygon = this._coordSys = this._points = this._stackedOnPoints = this._endLabel = this._data = null;\n  };\n\n  LineView.type = 'line';\n  return LineView;\n}(ChartView);\n\nexport default LineView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { map } from 'zrender/lib/core/util';\nimport createRenderPlanner from '../chart/helper/createRenderPlanner';\nimport { isDimensionStacked } from '../data/helper/dataStackHelper';\nimport { createFloat32Array } from '../util/vendor';\nexport default function pointsLayout(seriesType, forceStoreInTypedArray) {\n  return {\n    seriesType: seriesType,\n    plan: createRenderPlanner(),\n    reset: function (seriesModel) {\n      var data = seriesModel.getData();\n      var coordSys = seriesModel.coordinateSystem;\n      var pipelineContext = seriesModel.pipelineContext;\n      var useTypedArray = forceStoreInTypedArray || pipelineContext.large;\n\n      if (!coordSys) {\n        return;\n      }\n\n      var dims = map(coordSys.dimensions, function (dim) {\n        return data.mapDimension(dim);\n      }).slice(0, 2);\n      var dimLen = dims.length;\n      var stackResultDim = data.getCalculationInfo('stackResultDimension');\n\n      if (isDimensionStacked(data, dims[0])) {\n        dims[0] = stackResultDim;\n      }\n\n      if (isDimensionStacked(data, dims[1])) {\n        dims[1] = stackResultDim;\n      }\n\n      var dimInfo0 = data.getDimensionInfo(dims[0]);\n      var dimInfo1 = data.getDimensionInfo(dims[1]);\n      var dimIdx0 = dimInfo0 && dimInfo0.index;\n      var dimIdx1 = dimInfo1 && dimInfo1.index;\n      return dimLen && {\n        progress: function (params, data) {\n          var segCount = params.end - params.start;\n          var points = useTypedArray && createFloat32Array(segCount * dimLen);\n          var tmpIn = [];\n          var tmpOut = [];\n\n          for (var i = params.start, offset = 0; i < params.end; i++) {\n            var point = void 0;\n\n            if (dimLen === 1) {\n              var x = data.getByDimIdx(dimIdx0, i);\n              point = coordSys.dataToPoint(x, null, tmpOut);\n            } else {\n              tmpIn[0] = data.getByDimIdx(dimIdx0, i);\n              tmpIn[1] = data.getByDimIdx(dimIdx1, i);\n              point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n            }\n\n            if (useTypedArray) {\n              points[offset++] = point[0];\n              points[offset++] = point[1];\n            } else {\n              data.setItemLayout(i, point.slice());\n            }\n          }\n\n          useTypedArray && data.setLayout('points', points);\n        }\n      };\n    }\n  };\n}\n;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar samplers = {\n  average: function (frame) {\n    var sum = 0;\n    var count = 0;\n\n    for (var i = 0; i < frame.length; i++) {\n      if (!isNaN(frame[i])) {\n        sum += frame[i];\n        count++;\n      }\n    }\n\n    return count === 0 ? NaN : sum / count;\n  },\n  sum: function (frame) {\n    var sum = 0;\n\n    for (var i = 0; i < frame.length; i++) {\n      sum += frame[i] || 0;\n    }\n\n    return sum;\n  },\n  max: function (frame) {\n    var max = -Infinity;\n\n    for (var i = 0; i < frame.length; i++) {\n      frame[i] > max && (max = frame[i]);\n    }\n\n    return isFinite(max) ? max : NaN;\n  },\n  min: function (frame) {\n    var min = Infinity;\n\n    for (var i = 0; i < frame.length; i++) {\n      frame[i] < min && (min = frame[i]);\n    }\n\n    return isFinite(min) ? min : NaN;\n  },\n  nearest: function (frame) {\n    return frame[0];\n  }\n};\n\nvar indexSampler = function (frame) {\n  return Math.round(frame.length / 2);\n};\n\nexport default function dataSample(seriesType) {\n  return {\n    seriesType: seriesType,\n    reset: function (seriesModel, ecModel, api) {\n      var data = seriesModel.getData();\n      var sampling = seriesModel.get('sampling');\n      var coordSys = seriesModel.coordinateSystem;\n      var count = data.count();\n\n      if (count > 10 && coordSys.type === 'cartesian2d' && sampling) {\n        var baseAxis = coordSys.getBaseAxis();\n        var valueAxis = coordSys.getOtherAxis(baseAxis);\n        var extent = baseAxis.getExtent();\n        var dpr = api.getDevicePixelRatio();\n        var size = Math.abs(extent[1] - extent[0]) * (dpr || 1);\n        var rate = Math.round(count / size);\n\n        if (rate > 1) {\n          if (sampling === 'lttb') {\n            seriesModel.setData(data.lttbDownSample(data.mapDimension(valueAxis.dim), 1 / rate));\n          }\n\n          var sampler = void 0;\n\n          if (typeof sampling === 'string') {\n            sampler = samplers[sampling];\n          } else if (typeof sampling === 'function') {\n            sampler = sampling;\n          }\n\n          if (sampler) {\n            seriesModel.setData(data.downSample(data.mapDimension(valueAxis.dim), 1 / rate, sampler, indexSampler));\n          }\n        }\n      }\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport LineSeries from './LineSeries';\nimport LineView from './LineView';\nimport layoutPoints from '../../layout/points';\nimport dataSample from '../../processor/dataSample';\nexport function install(registers) {\n  registers.registerChartView(LineView);\n  registers.registerSeriesModel(LineSeries);\n  registers.registerLayout(layoutPoints('line', true));\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, dataSample('line'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport createListFromArray from '../helper/createListFromArray';\n\nvar BaseBarSeriesModel = function (_super) {\n  __extends(BaseBarSeriesModel, _super);\n\n  function BaseBarSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BaseBarSeriesModel.type;\n    return _this;\n  }\n\n  BaseBarSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: true\n    });\n  };\n\n  BaseBarSeriesModel.prototype.getMarkerPosition = function (value) {\n    var coordSys = this.coordinateSystem;\n\n    if (coordSys) {\n      var pt = coordSys.dataToPoint(coordSys.clampData(value));\n      var data = this.getData();\n      var offset = data.getLayout('offset');\n      var size = data.getLayout('size');\n      var offsetIndex = coordSys.getBaseAxis().isHorizontal() ? 0 : 1;\n      pt[offsetIndex] += offset + size / 2;\n      return pt;\n    }\n\n    return [NaN, NaN];\n  };\n\n  BaseBarSeriesModel.type = 'series.__base_bar__';\n  BaseBarSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'cartesian2d',\n    legendHoverLink: true,\n    barMinHeight: 0,\n    barMinAngle: 0,\n    large: false,\n    largeThreshold: 400,\n    progressive: 3e3,\n    progressiveChunkMode: 'mod'\n  };\n  return BaseBarSeriesModel;\n}(SeriesModel);\n\nSeriesModel.registerClass(BaseBarSeriesModel);\nexport default BaseBarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BaseBarSeriesModel from './BaseBarSeries';\nimport createListFromArray from '../helper/createListFromArray';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar BarSeriesModel = function (_super) {\n  __extends(BarSeriesModel, _super);\n\n  function BarSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BarSeriesModel.type;\n    return _this;\n  }\n\n  BarSeriesModel.prototype.getInitialData = function () {\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: true,\n      createInvertedIndices: !!this.get('realtimeSort', true) || null\n    });\n  };\n\n  BarSeriesModel.prototype.getProgressive = function () {\n    return this.get('large') ? this.get('progressive') : false;\n  };\n\n  BarSeriesModel.prototype.getProgressiveThreshold = function () {\n    var progressiveThreshold = this.get('progressiveThreshold');\n    var largeThreshold = this.get('largeThreshold');\n\n    if (largeThreshold > progressiveThreshold) {\n      progressiveThreshold = largeThreshold;\n    }\n\n    return progressiveThreshold;\n  };\n\n  BarSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n    return selectors.rect(data.getItemLayout(dataIndex));\n  };\n\n  BarSeriesModel.type = 'series.bar';\n  BarSeriesModel.dependencies = ['grid', 'polar'];\n  BarSeriesModel.defaultOption = inheritDefaultOption(BaseBarSeriesModel.defaultOption, {\n    clip: true,\n    roundCap: false,\n    showBackground: false,\n    backgroundStyle: {\n      color: 'rgba(180, 180, 180, 0.2)',\n      borderColor: null,\n      borderWidth: 0,\n      borderType: 'solid',\n      borderRadius: 0,\n      shadowBlur: 0,\n      shadowColor: null,\n      shadowOffsetX: 0,\n      shadowOffsetY: 0,\n      opacity: 1\n    },\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    },\n    realtimeSort: false\n  });\n  return BarSeriesModel;\n}(BaseBarSeriesModel);\n\nexport default BarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { Path } from '../graphic';\n\nvar SausageShape = function () {\n  function SausageShape() {\n    this.cx = 0;\n    this.cy = 0;\n    this.r0 = 0;\n    this.r = 0;\n    this.startAngle = 0;\n    this.endAngle = Math.PI * 2;\n    this.clockwise = true;\n  }\n\n  return SausageShape;\n}();\n\nvar SausagePath = function (_super) {\n  __extends(SausagePath, _super);\n\n  function SausagePath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'sausage';\n    return _this;\n  }\n\n  SausagePath.prototype.getDefaultShape = function () {\n    return new SausageShape();\n  };\n\n  SausagePath.prototype.buildPath = function (ctx, shape) {\n    var x = shape.cx;\n    var y = shape.cy;\n    var r0 = Math.max(shape.r0 || 0, 0);\n    var r = Math.max(shape.r, 0);\n    var dr = (r - r0) * 0.5;\n    var rCenter = r0 + dr;\n    var startAngle = shape.startAngle;\n    var endAngle = shape.endAngle;\n    var clockwise = shape.clockwise;\n    var unitStartX = Math.cos(startAngle);\n    var unitStartY = Math.sin(startAngle);\n    var unitEndX = Math.cos(endAngle);\n    var unitEndY = Math.sin(endAngle);\n    var lessThanCircle = clockwise ? endAngle - startAngle < Math.PI * 2 : startAngle - endAngle < Math.PI * 2;\n\n    if (lessThanCircle) {\n      ctx.moveTo(unitStartX * r0 + x, unitStartY * r0 + y);\n      ctx.arc(unitStartX * rCenter + x, unitStartY * rCenter + y, dr, -Math.PI + startAngle, startAngle, !clockwise);\n    }\n\n    ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\n    ctx.moveTo(unitEndX * r + x, unitEndY * r + y);\n    ctx.arc(unitEndX * rCenter + x, unitEndY * rCenter + y, dr, endAngle - Math.PI * 2, endAngle - Math.PI, !clockwise);\n\n    if (r0 !== 0) {\n      ctx.arc(x, y, r0, endAngle, startAngle, clockwise);\n      ctx.moveTo(unitStartX * r0 + x, unitEndY * r0 + y);\n    }\n\n    ctx.closePath();\n  };\n\n  return SausagePath;\n}(Path);\n\nexport default SausagePath;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Path from 'zrender/lib/graphic/Path';\nimport Group from 'zrender/lib/graphic/Group';\nimport { extend, defaults, each, map } from 'zrender/lib/core/util';\nimport { Rect, Sector, updateProps, initProps, removeElementWithFadeOut } from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { enableHoverEmphasis, setStatesStylesFromModel } from '../../util/states';\nimport { setLabelStyle, getLabelStatesModels, setLabelValueAnimation } from '../../label/labelStyle';\nimport { throttle } from '../../util/throttle';\nimport { createClipPath } from '../helper/createClipPathFromCoordSys';\nimport Sausage from '../../util/shape/sausage';\nimport ChartView from '../../view/Chart';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport { getDefaultLabel, getDefaultInterpolatedLabel } from '../helper/labelHelper';\nimport { warn } from '../../util/log';\nvar BAR_BORDER_WIDTH_QUERY = ['itemStyle', 'borderWidth'];\nvar BAR_BORDER_RADIUS_QUERY = ['itemStyle', 'borderRadius'];\nvar _eventPos = [0, 0];\nvar mathMax = Math.max;\nvar mathMin = Math.min;\n\nfunction getClipArea(coord, data) {\n  var coordSysClipArea = coord.getArea && coord.getArea();\n\n  if (isCoordinateSystemType(coord, 'cartesian2d')) {\n    var baseAxis = coord.getBaseAxis();\n\n    if (baseAxis.type !== 'category' || !baseAxis.onBand) {\n      var expandWidth = data.getLayout('bandWidth');\n\n      if (baseAxis.isHorizontal()) {\n        coordSysClipArea.x -= expandWidth;\n        coordSysClipArea.width += expandWidth * 2;\n      } else {\n        coordSysClipArea.y -= expandWidth;\n        coordSysClipArea.height += expandWidth * 2;\n      }\n    }\n  }\n\n  return coordSysClipArea;\n}\n\nvar BarView = function (_super) {\n  __extends(BarView, _super);\n\n  function BarView() {\n    var _this = _super.call(this) || this;\n\n    _this.type = BarView.type;\n    _this._isFirstFrame = true;\n    return _this;\n  }\n\n  BarView.prototype.render = function (seriesModel, ecModel, api, payload) {\n    this._model = seriesModel;\n\n    this._removeOnRenderedListener(api);\n\n    this._updateDrawMode(seriesModel);\n\n    var coordinateSystemType = seriesModel.get('coordinateSystem');\n\n    if (coordinateSystemType === 'cartesian2d' || coordinateSystemType === 'polar') {\n      this._isLargeDraw ? this._renderLarge(seriesModel, ecModel, api) : this._renderNormal(seriesModel, ecModel, api, payload);\n    } else if (process.env.NODE_ENV !== 'production') {\n      warn('Only cartesian2d and polar supported for bar.');\n    }\n  };\n\n  BarView.prototype.incrementalPrepareRender = function (seriesModel) {\n    this._clear();\n\n    this._updateDrawMode(seriesModel);\n\n    this._updateLargeClip(seriesModel);\n  };\n\n  BarView.prototype.incrementalRender = function (params, seriesModel) {\n    this._incrementalRenderLarge(params, seriesModel);\n  };\n\n  BarView.prototype._updateDrawMode = function (seriesModel) {\n    var isLargeDraw = seriesModel.pipelineContext.large;\n\n    if (this._isLargeDraw == null || isLargeDraw !== this._isLargeDraw) {\n      this._isLargeDraw = isLargeDraw;\n\n      this._clear();\n    }\n  };\n\n  BarView.prototype._renderNormal = function (seriesModel, ecModel, api, payload) {\n    var group = this.group;\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var coord = seriesModel.coordinateSystem;\n    var baseAxis = coord.getBaseAxis();\n    var isHorizontalOrRadial;\n\n    if (coord.type === 'cartesian2d') {\n      isHorizontalOrRadial = baseAxis.isHorizontal();\n    } else if (coord.type === 'polar') {\n      isHorizontalOrRadial = baseAxis.dim === 'angle';\n    }\n\n    var animationModel = seriesModel.isAnimationEnabled() ? seriesModel : null;\n    var realtimeSortCfg = shouldRealtimeSort(seriesModel, coord);\n\n    if (realtimeSortCfg) {\n      this._enableRealtimeSort(realtimeSortCfg, data, api);\n    }\n\n    var needsClip = seriesModel.get('clip', true) || realtimeSortCfg;\n    var coordSysClipArea = getClipArea(coord, data);\n    group.removeClipPath();\n    var roundCap = seriesModel.get('roundCap', true);\n    var drawBackground = seriesModel.get('showBackground', true);\n    var backgroundModel = seriesModel.getModel('backgroundStyle');\n    var barBorderRadius = backgroundModel.get('borderRadius') || 0;\n    var bgEls = [];\n    var oldBgEls = this._backgroundEls;\n    var isInitSort = payload && payload.isInitSort;\n    var isChangeOrder = payload && payload.type === 'changeAxisOrder';\n\n    function createBackground(dataIndex) {\n      var bgLayout = getLayout[coord.type](data, dataIndex);\n      var bgEl = createBackgroundEl(coord, isHorizontalOrRadial, bgLayout);\n      bgEl.useStyle(backgroundModel.getItemStyle());\n\n      if (coord.type === 'cartesian2d') {\n        bgEl.setShape('r', barBorderRadius);\n      }\n\n      bgEls[dataIndex] = bgEl;\n      return bgEl;\n    }\n\n    ;\n    data.diff(oldData).add(function (dataIndex) {\n      var itemModel = data.getItemModel(dataIndex);\n      var layout = getLayout[coord.type](data, dataIndex, itemModel);\n\n      if (drawBackground) {\n        createBackground(dataIndex);\n      }\n\n      if (!data.hasValue(dataIndex)) {\n        return;\n      }\n\n      var isClipped = false;\n\n      if (needsClip) {\n        isClipped = clip[coord.type](coordSysClipArea, layout);\n      }\n\n      var el = elementCreator[coord.type](seriesModel, data, dataIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, false, roundCap);\n      updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\n\n      if (isInitSort) {\n        el.attr({\n          shape: layout\n        });\n      } else if (realtimeSortCfg) {\n        updateRealtimeAnimation(realtimeSortCfg, animationModel, el, layout, dataIndex, isHorizontalOrRadial, false, false);\n      } else {\n        initProps(el, {\n          shape: layout\n        }, seriesModel, dataIndex);\n      }\n\n      data.setItemGraphicEl(dataIndex, el);\n      group.add(el);\n      el.ignore = isClipped;\n    }).update(function (newIndex, oldIndex) {\n      var itemModel = data.getItemModel(newIndex);\n      var layout = getLayout[coord.type](data, newIndex, itemModel);\n\n      if (drawBackground) {\n        var bgEl = void 0;\n\n        if (oldBgEls.length === 0) {\n          bgEl = createBackground(oldIndex);\n        } else {\n          bgEl = oldBgEls[oldIndex];\n          bgEl.useStyle(backgroundModel.getItemStyle());\n\n          if (coord.type === 'cartesian2d') {\n            bgEl.setShape('r', barBorderRadius);\n          }\n\n          bgEls[newIndex] = bgEl;\n        }\n\n        var bgLayout = getLayout[coord.type](data, newIndex);\n        var shape = createBackgroundShape(isHorizontalOrRadial, bgLayout, coord);\n        updateProps(bgEl, {\n          shape: shape\n        }, animationModel, newIndex);\n      }\n\n      var el = oldData.getItemGraphicEl(oldIndex);\n\n      if (!data.hasValue(newIndex)) {\n        group.remove(el);\n        el = null;\n        return;\n      }\n\n      var isClipped = false;\n\n      if (needsClip) {\n        isClipped = clip[coord.type](coordSysClipArea, layout);\n\n        if (isClipped) {\n          group.remove(el);\n        }\n      }\n\n      if (!el) {\n        el = elementCreator[coord.type](seriesModel, data, newIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, !!el, roundCap);\n      }\n\n      if (!isChangeOrder) {\n        updateStyle(el, data, newIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\n      }\n\n      if (isInitSort) {\n        el.attr({\n          shape: layout\n        });\n      } else if (realtimeSortCfg) {\n        updateRealtimeAnimation(realtimeSortCfg, animationModel, el, layout, newIndex, isHorizontalOrRadial, true, isChangeOrder);\n      } else {\n        updateProps(el, {\n          shape: layout\n        }, seriesModel, newIndex, null);\n      }\n\n      data.setItemGraphicEl(newIndex, el);\n      el.ignore = isClipped;\n      group.add(el);\n    }).remove(function (dataIndex) {\n      var el = oldData.getItemGraphicEl(dataIndex);\n      el && removeElementWithFadeOut(el, seriesModel, dataIndex);\n    }).execute();\n    var bgGroup = this._backgroundGroup || (this._backgroundGroup = new Group());\n    bgGroup.removeAll();\n\n    for (var i = 0; i < bgEls.length; ++i) {\n      bgGroup.add(bgEls[i]);\n    }\n\n    group.add(bgGroup);\n    this._backgroundEls = bgEls;\n    this._data = data;\n  };\n\n  BarView.prototype._renderLarge = function (seriesModel, ecModel, api) {\n    this._clear();\n\n    createLarge(seriesModel, this.group);\n\n    this._updateLargeClip(seriesModel);\n  };\n\n  BarView.prototype._incrementalRenderLarge = function (params, seriesModel) {\n    this._removeBackground();\n\n    createLarge(seriesModel, this.group, true);\n  };\n\n  BarView.prototype._updateLargeClip = function (seriesModel) {\n    var clipPath = seriesModel.get('clip', true) ? createClipPath(seriesModel.coordinateSystem, false, seriesModel) : null;\n\n    if (clipPath) {\n      this.group.setClipPath(clipPath);\n    } else {\n      this.group.removeClipPath();\n    }\n  };\n\n  BarView.prototype._enableRealtimeSort = function (realtimeSortCfg, data, api) {\n    var _this = this;\n\n    if (!data.count()) {\n      return;\n    }\n\n    var baseAxis = realtimeSortCfg.baseAxis;\n\n    if (this._isFirstFrame) {\n      this._dispatchInitSort(data, realtimeSortCfg, api);\n\n      this._isFirstFrame = false;\n    } else {\n      var orderMapping_1 = function (idx) {\n        var el = data.getItemGraphicEl(idx);\n\n        if (el) {\n          var shape = el.shape;\n          return (baseAxis.isHorizontal() ? Math.abs(shape.height) : Math.abs(shape.width)) || 0;\n        } else {\n          return 0;\n        }\n      };\n\n      this._onRendered = function () {\n        _this._updateSortWithinSameData(data, orderMapping_1, baseAxis, api);\n      };\n\n      api.getZr().on('rendered', this._onRendered);\n    }\n  };\n\n  BarView.prototype._dataSort = function (data, baseAxis, orderMapping) {\n    var info = [];\n    data.each(data.mapDimension(baseAxis.dim), function (ordinalNumber, dataIdx) {\n      var mappedValue = orderMapping(dataIdx);\n      mappedValue = mappedValue == null ? NaN : mappedValue;\n      info.push({\n        dataIndex: dataIdx,\n        mappedValue: mappedValue,\n        ordinalNumber: ordinalNumber\n      });\n    });\n    info.sort(function (a, b) {\n      return b.mappedValue - a.mappedValue;\n    });\n    return {\n      ordinalNumbers: map(info, function (item) {\n        return item.ordinalNumber;\n      })\n    };\n  };\n\n  BarView.prototype._isOrderChangedWithinSameData = function (data, orderMapping, baseAxis) {\n    var scale = baseAxis.scale;\n    var ordinalDataDim = data.mapDimension(baseAxis.dim);\n    var lastValue = Number.MAX_VALUE;\n\n    for (var tickNum = 0, len = scale.getOrdinalMeta().categories.length; tickNum < len; ++tickNum) {\n      var rawIdx = data.rawIndexOf(ordinalDataDim, scale.getRawOrdinalNumber(tickNum));\n      var value = rawIdx < 0 ? Number.MIN_VALUE : orderMapping(data.indexOfRawIndex(rawIdx));\n\n      if (value > lastValue) {\n        return true;\n      }\n\n      lastValue = value;\n    }\n\n    return false;\n  };\n\n  BarView.prototype._isOrderDifferentInView = function (orderInfo, baseAxis) {\n    var scale = baseAxis.scale;\n    var extent = scale.getExtent();\n    var tickNum = Math.max(0, extent[0]);\n    var tickMax = Math.min(extent[1], scale.getOrdinalMeta().categories.length - 1);\n\n    for (; tickNum <= tickMax; ++tickNum) {\n      if (orderInfo.ordinalNumbers[tickNum] !== scale.getRawOrdinalNumber(tickNum)) {\n        return true;\n      }\n    }\n  };\n\n  BarView.prototype._updateSortWithinSameData = function (data, orderMapping, baseAxis, api) {\n    if (!this._isOrderChangedWithinSameData(data, orderMapping, baseAxis)) {\n      return;\n    }\n\n    var sortInfo = this._dataSort(data, baseAxis, orderMapping);\n\n    if (this._isOrderDifferentInView(sortInfo, baseAxis)) {\n      this._removeOnRenderedListener(api);\n\n      api.dispatchAction({\n        type: 'changeAxisOrder',\n        componentType: baseAxis.dim + 'Axis',\n        axisId: baseAxis.index,\n        sortInfo: sortInfo\n      });\n    }\n  };\n\n  BarView.prototype._dispatchInitSort = function (data, realtimeSortCfg, api) {\n    var baseAxis = realtimeSortCfg.baseAxis;\n\n    var sortResult = this._dataSort(data, baseAxis, function (dataIdx) {\n      return data.get(data.mapDimension(realtimeSortCfg.otherAxis.dim), dataIdx);\n    });\n\n    api.dispatchAction({\n      type: 'changeAxisOrder',\n      componentType: baseAxis.dim + 'Axis',\n      isInitSort: true,\n      axisId: baseAxis.index,\n      sortInfo: sortResult,\n      animation: {\n        duration: 0\n      }\n    });\n  };\n\n  BarView.prototype.remove = function (ecModel, api) {\n    this._clear(this._model);\n\n    this._removeOnRenderedListener(api);\n  };\n\n  BarView.prototype.dispose = function (ecModel, api) {\n    this._removeOnRenderedListener(api);\n  };\n\n  BarView.prototype._removeOnRenderedListener = function (api) {\n    if (this._onRendered) {\n      api.getZr().off('rendered', this._onRendered);\n      this._onRendered = null;\n    }\n  };\n\n  BarView.prototype._clear = function (model) {\n    var group = this.group;\n    var data = this._data;\n\n    if (model && model.isAnimationEnabled() && data && !this._isLargeDraw) {\n      this._removeBackground();\n\n      this._backgroundEls = [];\n      data.eachItemGraphicEl(function (el) {\n        removeElementWithFadeOut(el, model, getECData(el).dataIndex);\n      });\n    } else {\n      group.removeAll();\n    }\n\n    this._data = null;\n    this._isFirstFrame = true;\n  };\n\n  BarView.prototype._removeBackground = function () {\n    this.group.remove(this._backgroundGroup);\n    this._backgroundGroup = null;\n  };\n\n  BarView.type = 'bar';\n  return BarView;\n}(ChartView);\n\nvar clip = {\n  cartesian2d: function (coordSysBoundingRect, layout) {\n    var signWidth = layout.width < 0 ? -1 : 1;\n    var signHeight = layout.height < 0 ? -1 : 1;\n\n    if (signWidth < 0) {\n      layout.x += layout.width;\n      layout.width = -layout.width;\n    }\n\n    if (signHeight < 0) {\n      layout.y += layout.height;\n      layout.height = -layout.height;\n    }\n\n    var coordSysX2 = coordSysBoundingRect.x + coordSysBoundingRect.width;\n    var coordSysY2 = coordSysBoundingRect.y + coordSysBoundingRect.height;\n    var x = mathMax(layout.x, coordSysBoundingRect.x);\n    var x2 = mathMin(layout.x + layout.width, coordSysX2);\n    var y = mathMax(layout.y, coordSysBoundingRect.y);\n    var y2 = mathMin(layout.y + layout.height, coordSysY2);\n    var xClipped = x2 < x;\n    var yClipped = y2 < y;\n    layout.x = xClipped && x > coordSysX2 ? x2 : x;\n    layout.y = yClipped && y > coordSysY2 ? y2 : y;\n    layout.width = xClipped ? 0 : x2 - x;\n    layout.height = yClipped ? 0 : y2 - y;\n\n    if (signWidth < 0) {\n      layout.x += layout.width;\n      layout.width = -layout.width;\n    }\n\n    if (signHeight < 0) {\n      layout.y += layout.height;\n      layout.height = -layout.height;\n    }\n\n    return xClipped || yClipped;\n  },\n  polar: function (coordSysClipArea, layout) {\n    var signR = layout.r0 <= layout.r ? 1 : -1;\n\n    if (signR < 0) {\n      var tmp = layout.r;\n      layout.r = layout.r0;\n      layout.r0 = tmp;\n    }\n\n    var r = mathMin(layout.r, coordSysClipArea.r);\n    var r0 = mathMax(layout.r0, coordSysClipArea.r0);\n    layout.r = r;\n    layout.r0 = r0;\n    var clipped = r - r0 < 0;\n\n    if (signR < 0) {\n      var tmp = layout.r;\n      layout.r = layout.r0;\n      layout.r0 = tmp;\n    }\n\n    return clipped;\n  }\n};\nvar elementCreator = {\n  cartesian2d: function (seriesModel, data, newIndex, layout, isHorizontal, animationModel, axisModel, isUpdate, roundCap) {\n    var rect = new Rect({\n      shape: extend({}, layout),\n      z2: 1\n    });\n    rect.__dataIndex = newIndex;\n    rect.name = 'item';\n\n    if (animationModel) {\n      var rectShape = rect.shape;\n      var animateProperty = isHorizontal ? 'height' : 'width';\n      rectShape[animateProperty] = 0;\n    }\n\n    return rect;\n  },\n  polar: function (seriesModel, data, newIndex, layout, isRadial, animationModel, axisModel, isUpdate, roundCap) {\n    var clockwise = layout.startAngle < layout.endAngle;\n    var ShapeClass = !isRadial && roundCap ? Sausage : Sector;\n    var sector = new ShapeClass({\n      shape: defaults({\n        clockwise: clockwise\n      }, layout),\n      z2: 1\n    });\n    sector.name = 'item';\n\n    if (animationModel) {\n      var sectorShape = sector.shape;\n      var animateProperty = isRadial ? 'r' : 'endAngle';\n      var animateTarget = {};\n      sectorShape[animateProperty] = isRadial ? 0 : layout.startAngle;\n      animateTarget[animateProperty] = layout[animateProperty];\n      (isUpdate ? updateProps : initProps)(sector, {\n        shape: animateTarget\n      }, animationModel);\n    }\n\n    return sector;\n  }\n};\n\nfunction shouldRealtimeSort(seriesModel, coordSys) {\n  var realtimeSortOption = seriesModel.get('realtimeSort', true);\n  var baseAxis = coordSys.getBaseAxis();\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (realtimeSortOption) {\n      if (baseAxis.type !== 'category') {\n        warn('`realtimeSort` will not work because this bar series is not based on a category axis.');\n      }\n\n      if (coordSys.type !== 'cartesian2d') {\n        warn('`realtimeSort` will not work because this bar series is not on cartesian2d.');\n      }\n    }\n  }\n\n  if (realtimeSortOption && baseAxis.type === 'category' && coordSys.type === 'cartesian2d') {\n    return {\n      baseAxis: baseAxis,\n      otherAxis: coordSys.getOtherAxis(baseAxis)\n    };\n  }\n}\n\nfunction updateRealtimeAnimation(realtimeSortCfg, seriesAnimationModel, el, layout, newIndex, isHorizontal, isUpdate, isChangeOrder) {\n  var seriesTarget;\n  var axisTarget;\n\n  if (isHorizontal) {\n    axisTarget = {\n      x: layout.x,\n      width: layout.width\n    };\n    seriesTarget = {\n      y: layout.y,\n      height: layout.height\n    };\n  } else {\n    axisTarget = {\n      y: layout.y,\n      height: layout.height\n    };\n    seriesTarget = {\n      x: layout.x,\n      width: layout.width\n    };\n  }\n\n  if (!isChangeOrder) {\n    (isUpdate ? updateProps : initProps)(el, {\n      shape: seriesTarget\n    }, seriesAnimationModel, newIndex, null);\n  }\n\n  var axisAnimationModel = seriesAnimationModel ? realtimeSortCfg.baseAxis.model : null;\n  (isUpdate ? updateProps : initProps)(el, {\n    shape: axisTarget\n  }, axisAnimationModel, newIndex);\n}\n\nvar getLayout = {\n  cartesian2d: function (data, dataIndex, itemModel) {\n    var layout = data.getItemLayout(dataIndex);\n    var fixedLineWidth = itemModel ? getLineWidth(itemModel, layout) : 0;\n    var signX = layout.width > 0 ? 1 : -1;\n    var signY = layout.height > 0 ? 1 : -1;\n    return {\n      x: layout.x + signX * fixedLineWidth / 2,\n      y: layout.y + signY * fixedLineWidth / 2,\n      width: layout.width - signX * fixedLineWidth,\n      height: layout.height - signY * fixedLineWidth\n    };\n  },\n  polar: function (data, dataIndex, itemModel) {\n    var layout = data.getItemLayout(dataIndex);\n    return {\n      cx: layout.cx,\n      cy: layout.cy,\n      r0: layout.r0,\n      r: layout.r,\n      startAngle: layout.startAngle,\n      endAngle: layout.endAngle\n    };\n  }\n};\n\nfunction isZeroOnPolar(layout) {\n  return layout.startAngle != null && layout.endAngle != null && layout.startAngle === layout.endAngle;\n}\n\nfunction updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontal, isPolar) {\n  var style = data.getItemVisual(dataIndex, 'style');\n\n  if (!isPolar) {\n    el.setShape('r', itemModel.get(BAR_BORDER_RADIUS_QUERY) || 0);\n  }\n\n  el.useStyle(style);\n  var cursorStyle = itemModel.getShallow('cursor');\n  cursorStyle && el.attr('cursor', cursorStyle);\n\n  if (!isPolar) {\n    var labelPositionOutside = isHorizontal ? layout.height > 0 ? 'bottom' : 'top' : layout.width > 0 ? 'left' : 'right';\n    var labelStatesModels = getLabelStatesModels(itemModel);\n    setLabelStyle(el, labelStatesModels, {\n      labelFetcher: seriesModel,\n      labelDataIndex: dataIndex,\n      defaultText: getDefaultLabel(seriesModel.getData(), dataIndex),\n      inheritColor: style.fill,\n      defaultOpacity: style.opacity,\n      defaultOutsidePosition: labelPositionOutside\n    });\n    var label = el.getTextContent();\n    setLabelValueAnimation(label, labelStatesModels, seriesModel.getRawValue(dataIndex), function (value) {\n      return getDefaultInterpolatedLabel(data, value);\n    });\n  }\n\n  var emphasisModel = itemModel.getModel(['emphasis']);\n  enableHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n  setStatesStylesFromModel(el, itemModel);\n\n  if (isZeroOnPolar(layout)) {\n    el.style.fill = 'none';\n    el.style.stroke = 'none';\n    each(el.states, function (state) {\n      if (state.style) {\n        state.style.fill = state.style.stroke = 'none';\n      }\n    });\n  }\n}\n\nfunction getLineWidth(itemModel, rawLayout) {\n  var lineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0;\n  var width = isNaN(rawLayout.width) ? Number.MAX_VALUE : Math.abs(rawLayout.width);\n  var height = isNaN(rawLayout.height) ? Number.MAX_VALUE : Math.abs(rawLayout.height);\n  return Math.min(lineWidth, width, height);\n}\n\nvar LagePathShape = function () {\n  function LagePathShape() {}\n\n  return LagePathShape;\n}();\n\nvar LargePath = function (_super) {\n  __extends(LargePath, _super);\n\n  function LargePath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'largeBar';\n    return _this;\n  }\n\n  ;\n\n  LargePath.prototype.getDefaultShape = function () {\n    return new LagePathShape();\n  };\n\n  LargePath.prototype.buildPath = function (ctx, shape) {\n    var points = shape.points;\n    var startPoint = this.__startPoint;\n    var baseDimIdx = this.__baseDimIdx;\n\n    for (var i = 0; i < points.length; i += 2) {\n      startPoint[baseDimIdx] = points[i + baseDimIdx];\n      ctx.moveTo(startPoint[0], startPoint[1]);\n      ctx.lineTo(points[i], points[i + 1]);\n    }\n  };\n\n  return LargePath;\n}(Path);\n\nfunction createLarge(seriesModel, group, incremental) {\n  var data = seriesModel.getData();\n  var startPoint = [];\n  var baseDimIdx = data.getLayout('valueAxisHorizontal') ? 1 : 0;\n  startPoint[1 - baseDimIdx] = data.getLayout('valueAxisStart');\n  var largeDataIndices = data.getLayout('largeDataIndices');\n  var barWidth = data.getLayout('barWidth');\n  var backgroundModel = seriesModel.getModel('backgroundStyle');\n  var drawBackground = seriesModel.get('showBackground', true);\n\n  if (drawBackground) {\n    var points = data.getLayout('largeBackgroundPoints');\n    var backgroundStartPoint = [];\n    backgroundStartPoint[1 - baseDimIdx] = data.getLayout('backgroundStart');\n    var bgEl = new LargePath({\n      shape: {\n        points: points\n      },\n      incremental: !!incremental,\n      silent: true,\n      z2: 0\n    });\n    bgEl.__startPoint = backgroundStartPoint;\n    bgEl.__baseDimIdx = baseDimIdx;\n    bgEl.__largeDataIndices = largeDataIndices;\n    bgEl.__barWidth = barWidth;\n    setLargeBackgroundStyle(bgEl, backgroundModel, data);\n    group.add(bgEl);\n  }\n\n  var el = new LargePath({\n    shape: {\n      points: data.getLayout('largePoints')\n    },\n    incremental: !!incremental\n  });\n  el.__startPoint = startPoint;\n  el.__baseDimIdx = baseDimIdx;\n  el.__largeDataIndices = largeDataIndices;\n  el.__barWidth = barWidth;\n  group.add(el);\n  setLargeStyle(el, seriesModel, data);\n  getECData(el).seriesIndex = seriesModel.seriesIndex;\n\n  if (!seriesModel.get('silent')) {\n    el.on('mousedown', largePathUpdateDataIndex);\n    el.on('mousemove', largePathUpdateDataIndex);\n  }\n}\n\nvar largePathUpdateDataIndex = throttle(function (event) {\n  var largePath = this;\n  var dataIndex = largePathFindDataIndex(largePath, event.offsetX, event.offsetY);\n  getECData(largePath).dataIndex = dataIndex >= 0 ? dataIndex : null;\n}, 30, false);\n\nfunction largePathFindDataIndex(largePath, x, y) {\n  var baseDimIdx = largePath.__baseDimIdx;\n  var valueDimIdx = 1 - baseDimIdx;\n  var points = largePath.shape.points;\n  var largeDataIndices = largePath.__largeDataIndices;\n  var barWidthHalf = Math.abs(largePath.__barWidth / 2);\n  var startValueVal = largePath.__startPoint[valueDimIdx];\n  _eventPos[0] = x;\n  _eventPos[1] = y;\n  var pointerBaseVal = _eventPos[baseDimIdx];\n  var pointerValueVal = _eventPos[1 - baseDimIdx];\n  var baseLowerBound = pointerBaseVal - barWidthHalf;\n  var baseUpperBound = pointerBaseVal + barWidthHalf;\n\n  for (var i = 0, len = points.length / 2; i < len; i++) {\n    var ii = i * 2;\n    var barBaseVal = points[ii + baseDimIdx];\n    var barValueVal = points[ii + valueDimIdx];\n\n    if (barBaseVal >= baseLowerBound && barBaseVal <= baseUpperBound && (startValueVal <= barValueVal ? pointerValueVal >= startValueVal && pointerValueVal <= barValueVal : pointerValueVal >= barValueVal && pointerValueVal <= startValueVal)) {\n      return largeDataIndices[i];\n    }\n  }\n\n  return -1;\n}\n\nfunction setLargeStyle(el, seriesModel, data) {\n  var globalStyle = data.getVisual('style');\n  el.useStyle(extend({}, globalStyle));\n  el.style.fill = null;\n  el.style.stroke = globalStyle.fill;\n  el.style.lineWidth = data.getLayout('barWidth');\n}\n\nfunction setLargeBackgroundStyle(el, backgroundModel, data) {\n  var borderColor = backgroundModel.get('borderColor') || backgroundModel.get('color');\n  var itemStyle = backgroundModel.getItemStyle();\n  el.useStyle(itemStyle);\n  el.style.fill = null;\n  el.style.stroke = borderColor;\n  el.style.lineWidth = data.getLayout('barWidth');\n}\n\nfunction createBackgroundShape(isHorizontalOrRadial, layout, coord) {\n  if (isCoordinateSystemType(coord, 'cartesian2d')) {\n    var rectShape = layout;\n    var coordLayout = coord.getArea();\n    return {\n      x: isHorizontalOrRadial ? rectShape.x : coordLayout.x,\n      y: isHorizontalOrRadial ? coordLayout.y : rectShape.y,\n      width: isHorizontalOrRadial ? rectShape.width : coordLayout.width,\n      height: isHorizontalOrRadial ? coordLayout.height : rectShape.height\n    };\n  } else {\n    var coordLayout = coord.getArea();\n    var sectorShape = layout;\n    return {\n      cx: coordLayout.cx,\n      cy: coordLayout.cy,\n      r0: isHorizontalOrRadial ? coordLayout.r0 : sectorShape.r0,\n      r: isHorizontalOrRadial ? coordLayout.r : sectorShape.r,\n      startAngle: isHorizontalOrRadial ? sectorShape.startAngle : 0,\n      endAngle: isHorizontalOrRadial ? sectorShape.endAngle : Math.PI * 2\n    };\n  }\n}\n\nfunction createBackgroundEl(coord, isHorizontalOrRadial, layout) {\n  var ElementClz = coord.type === 'polar' ? Sector : Rect;\n  return new ElementClz({\n    shape: createBackgroundShape(isHorizontalOrRadial, layout, coord),\n    silent: true,\n    z2: 0\n  });\n}\n\nexport default BarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { layout, largeLayout } from '../../layout/barGrid';\nimport dataSample from '../../processor/dataSample';\nimport BarSeries from './BarSeries';\nimport BarView from './BarView';\nexport function install(registers) {\n  registers.registerChartView(BarView);\n  registers.registerSeriesModel(BarSeries);\n  registers.registerLayout(registers.PRIORITY.VISUAL.LAYOUT, zrUtil.curry(layout, 'bar'));\n  registers.registerLayout(registers.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT, largeLayout);\n  registers.registerVisual({\n    seriesType: 'bar',\n    reset: function (seriesModel) {\n      seriesModel.getData().setVisual('legendSymbol', 'roundRect');\n    }\n  });\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, dataSample('bar'));\n  registers.registerAction({\n    type: 'changeAxisOrder',\n    event: 'changeAxisOrder',\n    update: 'update'\n  }, function (payload, ecModel) {\n    var componentType = payload.componentType || 'series';\n    ecModel.eachComponent({\n      mainType: componentType,\n      query: payload\n    }, function (componentModel) {\n      if (payload.sortInfo) {\n        componentModel.axis.setCategorySortInfo(payload.sortInfo);\n      }\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parsePercent, linearMap } from '../../util/number';\nimport * as layout from '../../util/layout';\nimport * as zrUtil from 'zrender/lib/core/util';\nvar PI2 = Math.PI * 2;\nvar RADIAN = Math.PI / 180;\n\nfunction getViewRect(seriesModel, api) {\n  return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n}\n\nexport default function pieLayout(seriesType, ecModel, api) {\n  ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n    var data = seriesModel.getData();\n    var valueDim = data.mapDimension('value');\n    var viewRect = getViewRect(seriesModel, api);\n    var center = seriesModel.get('center');\n    var radius = seriesModel.get('radius');\n\n    if (!zrUtil.isArray(radius)) {\n      radius = [0, radius];\n    }\n\n    if (!zrUtil.isArray(center)) {\n      center = [center, center];\n    }\n\n    var width = parsePercent(viewRect.width, api.getWidth());\n    var height = parsePercent(viewRect.height, api.getHeight());\n    var size = Math.min(width, height);\n    var cx = parsePercent(center[0], width) + viewRect.x;\n    var cy = parsePercent(center[1], height) + viewRect.y;\n    var r0 = parsePercent(radius[0], size / 2);\n    var r = parsePercent(radius[1], size / 2);\n    var startAngle = -seriesModel.get('startAngle') * RADIAN;\n    var minAngle = seriesModel.get('minAngle') * RADIAN;\n    var validDataCount = 0;\n    data.each(valueDim, function (value) {\n      !isNaN(value) && validDataCount++;\n    });\n    var sum = data.getSum(valueDim);\n    var unitRadian = Math.PI / (sum || validDataCount) * 2;\n    var clockwise = seriesModel.get('clockwise');\n    var roseType = seriesModel.get('roseType');\n    var stillShowZeroSum = seriesModel.get('stillShowZeroSum');\n    var extent = data.getDataExtent(valueDim);\n    extent[0] = 0;\n    var restAngle = PI2;\n    var valueSumLargerThanMinAngle = 0;\n    var currentAngle = startAngle;\n    var dir = clockwise ? 1 : -1;\n    data.setLayout({\n      viewRect: viewRect,\n      r: r\n    });\n    data.each(valueDim, function (value, idx) {\n      var angle;\n\n      if (isNaN(value)) {\n        data.setItemLayout(idx, {\n          angle: NaN,\n          startAngle: NaN,\n          endAngle: NaN,\n          clockwise: clockwise,\n          cx: cx,\n          cy: cy,\n          r0: r0,\n          r: roseType ? NaN : r\n        });\n        return;\n      }\n\n      if (roseType !== 'area') {\n        angle = sum === 0 && stillShowZeroSum ? unitRadian : value * unitRadian;\n      } else {\n        angle = PI2 / validDataCount;\n      }\n\n      if (angle < minAngle) {\n        angle = minAngle;\n        restAngle -= minAngle;\n      } else {\n        valueSumLargerThanMinAngle += value;\n      }\n\n      var endAngle = currentAngle + dir * angle;\n      data.setItemLayout(idx, {\n        angle: angle,\n        startAngle: currentAngle,\n        endAngle: endAngle,\n        clockwise: clockwise,\n        cx: cx,\n        cy: cy,\n        r0: r0,\n        r: roseType ? linearMap(value, extent, [r0, r]) : r\n      });\n      currentAngle = endAngle;\n    });\n\n    if (restAngle < PI2 && validDataCount) {\n      if (restAngle <= 1e-3) {\n        var angle_1 = PI2 / validDataCount;\n        data.each(valueDim, function (value, idx) {\n          if (!isNaN(value)) {\n            var layout_1 = data.getItemLayout(idx);\n            layout_1.angle = angle_1;\n            layout_1.startAngle = startAngle + dir * idx * angle_1;\n            layout_1.endAngle = startAngle + dir * (idx + 1) * angle_1;\n          }\n        });\n      } else {\n        unitRadian = restAngle / valueSumLargerThanMinAngle;\n        currentAngle = startAngle;\n        data.each(valueDim, function (value, idx) {\n          if (!isNaN(value)) {\n            var layout_2 = data.getItemLayout(idx);\n            var angle = layout_2.angle === minAngle ? minAngle : value * unitRadian;\n            layout_2.startAngle = currentAngle;\n            layout_2.endAngle = currentAngle + dir * angle;\n            currentAngle += dir * angle;\n          }\n        });\n      }\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function dataFilter(seriesType) {\n  return {\n    seriesType: seriesType,\n    reset: function (seriesModel, ecModel) {\n      var legendModels = ecModel.findComponents({\n        mainType: 'legend'\n      });\n\n      if (!legendModels || !legendModels.length) {\n        return;\n      }\n\n      var data = seriesModel.getData();\n      data.filterSelf(function (idx) {\n        var name = data.getName(idx);\n\n        for (var i = 0; i < legendModels.length; i++) {\n          if (!legendModels[i].isSelected(name)) {\n            return false;\n          }\n        }\n\n        return true;\n      });\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parsePercent } from '../../util/number';\nimport { Point } from '../../util/graphic';\nimport { each } from 'zrender/lib/core/util';\nimport { limitTurnAngle, limitSurfaceAngle } from '../../label/labelGuideHelper';\nimport { shiftLayoutOnY } from '../../label/labelLayoutHelper';\nvar RADIAN = Math.PI / 180;\n\nfunction adjustSingleSide(list, cx, cy, r, dir, viewWidth, viewHeight, viewLeft, viewTop, farthestX) {\n  if (list.length < 2) {\n    return;\n  }\n\n  ;\n\n  function recalculateXOnSemiToAlignOnEllipseCurve(semi) {\n    var rB = semi.rB;\n    var rB2 = rB * rB;\n\n    for (var i = 0; i < semi.list.length; i++) {\n      var item = semi.list[i];\n      var dy = Math.abs(item.label.y - cy);\n      var rA = r + item.len;\n      var rA2 = rA * rA;\n      var dx = Math.sqrt((1 - Math.abs(dy * dy / rB2)) * rA2);\n      item.label.x = cx + (dx + item.len2) * dir;\n    }\n  }\n\n  function recalculateX(items) {\n    var topSemi = {\n      list: [],\n      maxY: 0\n    };\n    var bottomSemi = {\n      list: [],\n      maxY: 0\n    };\n\n    for (var i = 0; i < items.length; i++) {\n      if (items[i].labelAlignTo !== 'none') {\n        continue;\n      }\n\n      var item = items[i];\n      var semi = item.label.y > cy ? bottomSemi : topSemi;\n      var dy = Math.abs(item.label.y - cy);\n\n      if (dy > semi.maxY) {\n        var dx = item.label.x - cx - item.len2 * dir;\n        var rA = r + item.len;\n        var rB = dx < rA ? Math.sqrt(dy * dy / (1 - dx * dx / rA / rA)) : rA;\n        semi.rB = rB;\n        semi.maxY = dy;\n      }\n\n      semi.list.push(item);\n    }\n\n    recalculateXOnSemiToAlignOnEllipseCurve(topSemi);\n    recalculateXOnSemiToAlignOnEllipseCurve(bottomSemi);\n  }\n\n  var len = list.length;\n\n  for (var i = 0; i < len; i++) {\n    if (list[i].position === 'outer' && list[i].labelAlignTo === 'labelLine') {\n      var dx = list[i].label.x - farthestX;\n      list[i].linePoints[1][0] += dx;\n      list[i].label.x = farthestX;\n    }\n  }\n\n  if (shiftLayoutOnY(list, viewTop, viewTop + viewHeight)) {\n    recalculateX(list);\n  }\n}\n\nfunction avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop) {\n  var leftList = [];\n  var rightList = [];\n  var leftmostX = Number.MAX_VALUE;\n  var rightmostX = -Number.MAX_VALUE;\n\n  for (var i = 0; i < labelLayoutList.length; i++) {\n    var label = labelLayoutList[i].label;\n\n    if (isPositionCenter(labelLayoutList[i])) {\n      continue;\n    }\n\n    if (label.x < cx) {\n      leftmostX = Math.min(leftmostX, label.x);\n      leftList.push(labelLayoutList[i]);\n    } else {\n      rightmostX = Math.max(rightmostX, label.x);\n      rightList.push(labelLayoutList[i]);\n    }\n  }\n\n  adjustSingleSide(rightList, cx, cy, r, 1, viewWidth, viewHeight, viewLeft, viewTop, rightmostX);\n  adjustSingleSide(leftList, cx, cy, r, -1, viewWidth, viewHeight, viewLeft, viewTop, leftmostX);\n\n  for (var i = 0; i < labelLayoutList.length; i++) {\n    var layout = labelLayoutList[i];\n    var label = layout.label;\n\n    if (isPositionCenter(layout)) {\n      continue;\n    }\n\n    var linePoints = layout.linePoints;\n\n    if (linePoints) {\n      var isAlignToEdge = layout.labelAlignTo === 'edge';\n      var realTextWidth = layout.rect.width;\n      var targetTextWidth = void 0;\n\n      if (isAlignToEdge) {\n        if (label.x < cx) {\n          targetTextWidth = linePoints[2][0] - layout.labelDistance - viewLeft - layout.edgeDistance;\n        } else {\n          targetTextWidth = viewLeft + viewWidth - layout.edgeDistance - linePoints[2][0] - layout.labelDistance;\n        }\n      } else {\n        if (label.x < cx) {\n          targetTextWidth = label.x - viewLeft - layout.bleedMargin;\n        } else {\n          targetTextWidth = viewLeft + viewWidth - label.x - layout.bleedMargin;\n        }\n      }\n\n      if (targetTextWidth < layout.rect.width) {\n        layout.label.style.width = targetTextWidth;\n\n        if (layout.labelAlignTo === 'edge') {\n          realTextWidth = targetTextWidth;\n        }\n      }\n\n      var dist = linePoints[1][0] - linePoints[2][0];\n\n      if (isAlignToEdge) {\n        if (label.x < cx) {\n          linePoints[2][0] = viewLeft + layout.edgeDistance + realTextWidth + layout.labelDistance;\n        } else {\n          linePoints[2][0] = viewLeft + viewWidth - layout.edgeDistance - realTextWidth - layout.labelDistance;\n        }\n      } else {\n        if (label.x < cx) {\n          linePoints[2][0] = label.x + layout.labelDistance;\n        } else {\n          linePoints[2][0] = label.x - layout.labelDistance;\n        }\n\n        linePoints[1][0] = linePoints[2][0] + dist;\n      }\n\n      linePoints[1][1] = linePoints[2][1] = label.y;\n    }\n  }\n}\n\nfunction isPositionCenter(sectorShape) {\n  return sectorShape.position === 'center';\n}\n\nexport default function pieLabelLayout(seriesModel) {\n  var data = seriesModel.getData();\n  var labelLayoutList = [];\n  var cx;\n  var cy;\n  var hasLabelRotate = false;\n  var minShowLabelRadian = (seriesModel.get('minShowLabelAngle') || 0) * RADIAN;\n  var viewRect = data.getLayout('viewRect');\n  var r = data.getLayout('r');\n  var viewWidth = viewRect.width;\n  var viewLeft = viewRect.x;\n  var viewTop = viewRect.y;\n  var viewHeight = viewRect.height;\n\n  function setNotShow(el) {\n    el.ignore = true;\n  }\n\n  function isLabelShown(label) {\n    if (!label.ignore) {\n      return true;\n    }\n\n    for (var key in label.states) {\n      if (label.states[key].ignore === false) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  data.each(function (idx) {\n    var sector = data.getItemGraphicEl(idx);\n    var sectorShape = sector.shape;\n    var label = sector.getTextContent();\n    var labelLine = sector.getTextGuideLine();\n    var itemModel = data.getItemModel(idx);\n    var labelModel = itemModel.getModel('label');\n    var labelPosition = labelModel.get('position') || itemModel.get(['emphasis', 'label', 'position']);\n    var labelDistance = labelModel.get('distanceToLabelLine');\n    var labelAlignTo = labelModel.get('alignTo');\n    var edgeDistance = parsePercent(labelModel.get('edgeDistance'), viewWidth);\n    var bleedMargin = labelModel.get('bleedMargin');\n    var labelLineModel = itemModel.getModel('labelLine');\n    var labelLineLen = labelLineModel.get('length');\n    labelLineLen = parsePercent(labelLineLen, viewWidth);\n    var labelLineLen2 = labelLineModel.get('length2');\n    labelLineLen2 = parsePercent(labelLineLen2, viewWidth);\n\n    if (Math.abs(sectorShape.endAngle - sectorShape.startAngle) < minShowLabelRadian) {\n      each(label.states, setNotShow);\n      label.ignore = true;\n      return;\n    }\n\n    if (!isLabelShown(label)) {\n      return;\n    }\n\n    var midAngle = (sectorShape.startAngle + sectorShape.endAngle) / 2;\n    var nx = Math.cos(midAngle);\n    var ny = Math.sin(midAngle);\n    var textX;\n    var textY;\n    var linePoints;\n    var textAlign;\n    cx = sectorShape.cx;\n    cy = sectorShape.cy;\n    var isLabelInside = labelPosition === 'inside' || labelPosition === 'inner';\n\n    if (labelPosition === 'center') {\n      textX = sectorShape.cx;\n      textY = sectorShape.cy;\n      textAlign = 'center';\n    } else {\n      var x1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * nx : sectorShape.r * nx) + cx;\n      var y1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * ny : sectorShape.r * ny) + cy;\n      textX = x1 + nx * 3;\n      textY = y1 + ny * 3;\n\n      if (!isLabelInside) {\n        var x2 = x1 + nx * (labelLineLen + r - sectorShape.r);\n        var y2 = y1 + ny * (labelLineLen + r - sectorShape.r);\n        var x3 = x2 + (nx < 0 ? -1 : 1) * labelLineLen2;\n        var y3 = y2;\n\n        if (labelAlignTo === 'edge') {\n          textX = nx < 0 ? viewLeft + edgeDistance : viewLeft + viewWidth - edgeDistance;\n        } else {\n          textX = x3 + (nx < 0 ? -labelDistance : labelDistance);\n        }\n\n        textY = y3;\n        linePoints = [[x1, y1], [x2, y2], [x3, y3]];\n      }\n\n      textAlign = isLabelInside ? 'center' : labelAlignTo === 'edge' ? nx > 0 ? 'right' : 'left' : nx > 0 ? 'left' : 'right';\n    }\n\n    var labelRotate;\n    var rotate = labelModel.get('rotate');\n\n    if (typeof rotate === 'number') {\n      labelRotate = rotate * (Math.PI / 180);\n    } else {\n      labelRotate = rotate ? nx < 0 ? -midAngle + Math.PI : -midAngle : 0;\n    }\n\n    hasLabelRotate = !!labelRotate;\n    label.x = textX;\n    label.y = textY;\n    label.rotation = labelRotate;\n    label.setStyle({\n      verticalAlign: 'middle'\n    });\n\n    if (!isLabelInside) {\n      var textRect = label.getBoundingRect().clone();\n      textRect.applyTransform(label.getComputedTransform());\n      var margin = (label.style.margin || 0) + 2.1;\n      textRect.y -= margin / 2;\n      textRect.height += margin;\n      labelLayoutList.push({\n        label: label,\n        labelLine: labelLine,\n        position: labelPosition,\n        len: labelLineLen,\n        len2: labelLineLen2,\n        minTurnAngle: labelLineModel.get('minTurnAngle'),\n        maxSurfaceAngle: labelLineModel.get('maxSurfaceAngle'),\n        surfaceNormal: new Point(nx, ny),\n        linePoints: linePoints,\n        textAlign: textAlign,\n        labelDistance: labelDistance,\n        labelAlignTo: labelAlignTo,\n        edgeDistance: edgeDistance,\n        bleedMargin: bleedMargin,\n        rect: textRect\n      });\n    } else {\n      label.setStyle({\n        align: textAlign\n      });\n      var selectState = label.states.select;\n\n      if (selectState) {\n        selectState.x += label.x;\n        selectState.y += label.y;\n      }\n    }\n\n    sector.setTextConfig({\n      inside: isLabelInside\n    });\n  });\n\n  if (!hasLabelRotate && seriesModel.get('avoidLabelOverlap')) {\n    avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop);\n  }\n\n  for (var i = 0; i < labelLayoutList.length; i++) {\n    var layout = labelLayoutList[i];\n    var label = layout.label;\n    var labelLine = layout.labelLine;\n    var notShowLabel = isNaN(label.x) || isNaN(label.y);\n\n    if (label) {\n      label.setStyle({\n        align: layout.textAlign\n      });\n\n      if (notShowLabel) {\n        each(label.states, setNotShow);\n        label.ignore = true;\n      }\n\n      var selectState = label.states.select;\n\n      if (selectState) {\n        selectState.x += label.x;\n        selectState.y += label.y;\n      }\n    }\n\n    if (labelLine) {\n      var linePoints = layout.linePoints;\n\n      if (notShowLabel || !linePoints) {\n        each(labelLine.states, setNotShow);\n        labelLine.ignore = true;\n      } else {\n        limitTurnAngle(linePoints, layout.minTurnAngle);\n        limitSurfaceAngle(linePoints, layout.surfaceNormal, layout.maxSurfaceAngle);\n        labelLine.setShape({\n          points: linePoints\n        });\n        label.__hostTarget.textGuideLineConfig = {\n          anchor: new Point(linePoints[0][0], linePoints[0][1])\n        };\n      }\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isArray } from 'zrender/lib/core/util';\nimport { parsePercent } from 'zrender/lib/contain/text';\nexport function getSectorCornerRadius(model, shape) {\n  var cornerRadius = model.get('borderRadius');\n\n  if (cornerRadius == null) {\n    return null;\n  }\n\n  if (!isArray(cornerRadius)) {\n    cornerRadius = [cornerRadius, cornerRadius];\n  }\n\n  return {\n    innerCornerRadius: parsePercent(cornerRadius[0], shape.r0),\n    cornerRadius: parsePercent(cornerRadius[1], shape.r)\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __assign, __extends } from \"tslib\";\nimport { extend, retrieve3 } from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport ChartView from '../../view/Chart';\nimport labelLayout from './labelLayout';\nimport { setLabelLineStyle, getLabelLineStatesModels } from '../../label/labelGuideHelper';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { getSectorCornerRadius } from '../helper/pieHelper';\n\nvar PiePiece = function (_super) {\n  __extends(PiePiece, _super);\n\n  function PiePiece(data, idx, startAngle) {\n    var _this = _super.call(this) || this;\n\n    _this.z2 = 2;\n    var polyline = new graphic.Polyline();\n    var text = new graphic.Text();\n\n    _this.setTextGuideLine(polyline);\n\n    _this.setTextContent(text);\n\n    _this.updateData(data, idx, startAngle, true);\n\n    return _this;\n  }\n\n  PiePiece.prototype.updateData = function (data, idx, startAngle, firstCreate) {\n    var sector = this;\n    var seriesModel = data.hostModel;\n    var itemModel = data.getItemModel(idx);\n    var emphasisModel = itemModel.getModel('emphasis');\n    var layout = data.getItemLayout(idx);\n    var sectorShape = extend(getSectorCornerRadius(itemModel.getModel('itemStyle'), layout) || {}, layout);\n\n    if (firstCreate) {\n      sector.setShape(sectorShape);\n      var animationType = seriesModel.getShallow('animationType');\n\n      if (animationType === 'scale') {\n        sector.shape.r = layout.r0;\n        graphic.initProps(sector, {\n          shape: {\n            r: layout.r\n          }\n        }, seriesModel, idx);\n      } else {\n        if (startAngle != null) {\n          sector.setShape({\n            startAngle: startAngle,\n            endAngle: startAngle\n          });\n          graphic.initProps(sector, {\n            shape: {\n              startAngle: layout.startAngle,\n              endAngle: layout.endAngle\n            }\n          }, seriesModel, idx);\n        } else {\n          sector.shape.endAngle = layout.startAngle;\n          graphic.updateProps(sector, {\n            shape: {\n              endAngle: layout.endAngle\n            }\n          }, seriesModel, idx);\n        }\n      }\n    } else {\n      graphic.updateProps(sector, {\n        shape: sectorShape\n      }, seriesModel, idx);\n    }\n\n    sector.useStyle(data.getItemVisual(idx, 'style'));\n    setStatesStylesFromModel(sector, itemModel);\n    var midAngle = (layout.startAngle + layout.endAngle) / 2;\n    var offset = seriesModel.get('selectedOffset');\n    var dx = Math.cos(midAngle) * offset;\n    var dy = Math.sin(midAngle) * offset;\n    var cursorStyle = itemModel.getShallow('cursor');\n    cursorStyle && sector.attr('cursor', cursorStyle);\n\n    this._updateLabel(seriesModel, data, idx);\n\n    sector.ensureState('emphasis').shape = __assign({\n      r: layout.r + (emphasisModel.get('scale') ? emphasisModel.get('scaleSize') || 0 : 0)\n    }, getSectorCornerRadius(emphasisModel.getModel('itemStyle'), layout));\n    extend(sector.ensureState('select'), {\n      x: dx,\n      y: dy,\n      shape: getSectorCornerRadius(itemModel.getModel(['select', 'itemStyle']), layout)\n    });\n    extend(sector.ensureState('blur'), {\n      shape: getSectorCornerRadius(itemModel.getModel(['blur', 'itemStyle']), layout)\n    });\n    var labelLine = sector.getTextGuideLine();\n    var labelText = sector.getTextContent();\n    extend(labelLine.ensureState('select'), {\n      x: dx,\n      y: dy\n    });\n    extend(labelText.ensureState('select'), {\n      x: dx,\n      y: dy\n    });\n    enableHoverEmphasis(this, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n  };\n\n  PiePiece.prototype._updateLabel = function (seriesModel, data, idx) {\n    var sector = this;\n    var itemModel = data.getItemModel(idx);\n    var labelLineModel = itemModel.getModel('labelLine');\n    var style = data.getItemVisual(idx, 'style');\n    var visualColor = style && style.fill;\n    var visualOpacity = style && style.opacity;\n    setLabelStyle(sector, getLabelStatesModels(itemModel), {\n      labelFetcher: data.hostModel,\n      labelDataIndex: idx,\n      inheritColor: visualColor,\n      defaultOpacity: visualOpacity,\n      defaultText: seriesModel.getFormattedLabel(idx, 'normal') || data.getName(idx)\n    });\n    var labelText = sector.getTextContent();\n    sector.setTextConfig({\n      position: null,\n      rotation: null\n    });\n    labelText.attr({\n      z2: 10\n    });\n    setLabelLineStyle(this, getLabelLineStatesModels(itemModel), {\n      stroke: visualColor,\n      opacity: retrieve3(labelLineModel.get(['lineStyle', 'opacity']), visualOpacity, 1)\n    });\n  };\n\n  return PiePiece;\n}(graphic.Sector);\n\nvar PieView = function (_super) {\n  __extends(PieView, _super);\n\n  function PieView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.ignoreLabelLineUpdate = true;\n    return _this;\n  }\n\n  PieView.prototype.init = function () {\n    var sectorGroup = new graphic.Group();\n    this._sectorGroup = sectorGroup;\n  };\n\n  PieView.prototype.render = function (seriesModel, ecModel, api, payload) {\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var group = this.group;\n    var startAngle;\n\n    if (!oldData && data.count() > 0) {\n      var shape = data.getItemLayout(0);\n\n      for (var s = 1; isNaN(shape && shape.startAngle) && s < data.count(); ++s) {\n        shape = data.getItemLayout(s);\n      }\n\n      if (shape) {\n        startAngle = shape.startAngle;\n      }\n    }\n\n    data.diff(oldData).add(function (idx) {\n      var piePiece = new PiePiece(data, idx, startAngle);\n      data.setItemGraphicEl(idx, piePiece);\n      group.add(piePiece);\n    }).update(function (newIdx, oldIdx) {\n      var piePiece = oldData.getItemGraphicEl(oldIdx);\n      piePiece.updateData(data, newIdx, startAngle);\n      piePiece.off('click');\n      group.add(piePiece);\n      data.setItemGraphicEl(newIdx, piePiece);\n    }).remove(function (idx) {\n      var piePiece = oldData.getItemGraphicEl(idx);\n      graphic.removeElementWithFadeOut(piePiece, seriesModel, idx);\n    }).execute();\n    labelLayout(seriesModel);\n\n    if (seriesModel.get('animationTypeUpdate') !== 'expansion') {\n      this._data = data;\n    }\n  };\n\n  PieView.prototype.dispose = function () {};\n\n  PieView.prototype.containPoint = function (point, seriesModel) {\n    var data = seriesModel.getData();\n    var itemLayout = data.getItemLayout(0);\n\n    if (itemLayout) {\n      var dx = point[0] - itemLayout.cx;\n      var dy = point[1] - itemLayout.cy;\n      var radius = Math.sqrt(dx * dx + dy * dy);\n      return radius <= itemLayout.r && radius >= itemLayout.r0;\n    }\n  };\n\n  PieView.type = 'pie';\n  return PieView;\n}(ChartView);\n\nexport default PieView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport createDimensions from '../../data/helper/createDimensions';\nimport List from '../../data/List';\nimport { extend, isArray } from 'zrender/lib/core/util';\nexport default function createListSimply(seriesModel, opt, nameList) {\n  opt = isArray(opt) && {\n    coordDimensions: opt\n  } || extend({}, opt);\n  var source = seriesModel.getSource();\n  var dimensionsInfo = createDimensions(source, opt);\n  var list = new List(dimensionsInfo, seriesModel);\n  list.initData(source, nameList);\n  return list;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar LegendVisualProvider = function () {\n  function LegendVisualProvider(getDataWithEncodedVisual, getRawData) {\n    this._getDataWithEncodedVisual = getDataWithEncodedVisual;\n    this._getRawData = getRawData;\n  }\n\n  LegendVisualProvider.prototype.getAllNames = function () {\n    var rawData = this._getRawData();\n\n    return rawData.mapArray(rawData.getName);\n  };\n\n  LegendVisualProvider.prototype.containName = function (name) {\n    var rawData = this._getRawData();\n\n    return rawData.indexOfName(name) >= 0;\n  };\n\n  LegendVisualProvider.prototype.indexOfName = function (name) {\n    var dataWithEncodedVisual = this._getDataWithEncodedVisual();\n\n    return dataWithEncodedVisual.indexOfName(name);\n  };\n\n  LegendVisualProvider.prototype.getItemVisual = function (dataIndex, key) {\n    var dataWithEncodedVisual = this._getDataWithEncodedVisual();\n\n    return dataWithEncodedVisual.getItemVisual(dataIndex, key);\n  };\n\n  return LegendVisualProvider;\n}();\n\nexport default LegendVisualProvider;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListSimply from '../helper/createListSimply';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nimport { getPercentWithPrecision } from '../../util/number';\nimport { makeSeriesEncodeForNameBased } from '../../data/helper/sourceHelper';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider';\nimport SeriesModel from '../../model/Series';\n\nvar PieSeriesModel = function (_super) {\n  __extends(PieSeriesModel, _super);\n\n  function PieSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.useColorPaletteOnData = true;\n    return _this;\n  }\n\n  PieSeriesModel.prototype.init = function (option) {\n    _super.prototype.init.apply(this, arguments);\n\n    this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));\n\n    this._defaultLabelLine(option);\n  };\n\n  PieSeriesModel.prototype.mergeOption = function () {\n    _super.prototype.mergeOption.apply(this, arguments);\n  };\n\n  PieSeriesModel.prototype.getInitialData = function () {\n    return createListSimply(this, {\n      coordDimensions: ['value'],\n      encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)\n    });\n  };\n\n  PieSeriesModel.prototype.getDataParams = function (dataIndex) {\n    var data = this.getData();\n\n    var params = _super.prototype.getDataParams.call(this, dataIndex);\n\n    var valueList = [];\n    data.each(data.mapDimension('value'), function (value) {\n      valueList.push(value);\n    });\n    params.percent = getPercentWithPrecision(valueList, dataIndex, data.hostModel.get('percentPrecision'));\n    params.$vars.push('percent');\n    return params;\n  };\n\n  PieSeriesModel.prototype._defaultLabelLine = function (option) {\n    modelUtil.defaultEmphasis(option, 'labelLine', ['show']);\n    var labelLineNormalOpt = option.labelLine;\n    var labelLineEmphasisOpt = option.emphasis.labelLine;\n    labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show;\n    labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show;\n  };\n\n  PieSeriesModel.type = 'series.pie';\n  PieSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    center: ['50%', '50%'],\n    radius: [0, '75%'],\n    clockwise: true,\n    startAngle: 90,\n    minAngle: 0,\n    minShowLabelAngle: 0,\n    selectedOffset: 10,\n    percentPrecision: 2,\n    stillShowZeroSum: true,\n    left: 0,\n    top: 0,\n    right: 0,\n    bottom: 0,\n    width: null,\n    height: null,\n    label: {\n      rotate: 0,\n      show: true,\n      overflow: 'truncate',\n      position: 'outer',\n      alignTo: 'none',\n      edgeDistance: '25%',\n      bleedMargin: 10,\n      distanceToLabelLine: 5\n    },\n    labelLine: {\n      show: true,\n      length: 15,\n      length2: 15,\n      smooth: false,\n      minTurnAngle: 90,\n      maxSurfaceAngle: 90,\n      lineStyle: {\n        width: 1,\n        type: 'solid'\n      }\n    },\n    itemStyle: {\n      borderWidth: 1\n    },\n    labelLayout: {\n      hideOverlap: true\n    },\n    emphasis: {\n      scale: true,\n      scaleSize: 5\n    },\n    avoidLabelOverlap: true,\n    animationType: 'expansion',\n    animationDuration: 1000,\n    animationTypeUpdate: 'transition',\n    animationEasingUpdate: 'cubicInOut',\n    animationDurationUpdate: 500,\n    animationEasing: 'cubicInOut'\n  };\n  return PieSeriesModel;\n}(SeriesModel);\n\nexport default PieSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createLegacyDataSelectAction } from '../../legacy/dataSelectAction';\nimport pieLayout from '../pie/pieLayout';\nimport dataFilter from '../../processor/dataFilter';\nimport { curry } from 'zrender/lib/core/util';\nimport PieView from './PieView';\nimport PieSeriesModel from './PieSeries';\nexport function install(registers) {\n  registers.registerChartView(PieView);\n  registers.registerSeriesModel(PieSeriesModel);\n  createLegacyDataSelectAction('pie', registers.registerAction);\n  registers.registerLayout(curry(pieLayout, 'pie'));\n  registers.registerProcessor(dataFilter('pie'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListFromArray from '../helper/createListFromArray';\nimport SeriesModel from '../../model/Series';\n\nvar ScatterSeriesModel = function (_super) {\n  __extends(ScatterSeriesModel, _super);\n\n  function ScatterSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ScatterSeriesModel.type;\n    _this.hasSymbolVisual = true;\n    return _this;\n  }\n\n  ScatterSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: true\n    });\n  };\n\n  ScatterSeriesModel.prototype.getProgressive = function () {\n    var progressive = this.option.progressive;\n\n    if (progressive == null) {\n      return this.option.large ? 5e3 : this.get('progressive');\n    }\n\n    return progressive;\n  };\n\n  ScatterSeriesModel.prototype.getProgressiveThreshold = function () {\n    var progressiveThreshold = this.option.progressiveThreshold;\n\n    if (progressiveThreshold == null) {\n      return this.option.large ? 1e4 : this.get('progressiveThreshold');\n    }\n\n    return progressiveThreshold;\n  };\n\n  ScatterSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n    return selectors.point(data.getItemLayout(dataIndex));\n  };\n\n  ScatterSeriesModel.type = 'series.scatter';\n  ScatterSeriesModel.dependencies = ['grid', 'polar', 'geo', 'singleAxis', 'calendar'];\n  ScatterSeriesModel.defaultOption = {\n    coordinateSystem: 'cartesian2d',\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    symbolSize: 10,\n    large: false,\n    largeThreshold: 2000,\n    itemStyle: {\n      opacity: 0.8\n    },\n    emphasis: {\n      scale: true\n    },\n    clip: true,\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    }\n  };\n  return ScatterSeriesModel;\n}(SeriesModel);\n\nexport default ScatterSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { createSymbol } from '../../util/symbol';\nimport IncrementalDisplayable from 'zrender/lib/graphic/IncrementalDisplayable';\nimport { getECData } from '../../util/innerStore';\nvar BOOST_SIZE_THRESHOLD = 4;\n\nvar LargeSymbolPathShape = function () {\n  function LargeSymbolPathShape() {}\n\n  return LargeSymbolPathShape;\n}();\n\nvar LargeSymbolPath = function (_super) {\n  __extends(LargeSymbolPath, _super);\n\n  function LargeSymbolPath(opts) {\n    return _super.call(this, opts) || this;\n  }\n\n  LargeSymbolPath.prototype.getDefaultShape = function () {\n    return new LargeSymbolPathShape();\n  };\n\n  LargeSymbolPath.prototype.buildPath = function (path, shape) {\n    var points = shape.points;\n    var size = shape.size;\n    var symbolProxy = this.symbolProxy;\n    var symbolProxyShape = symbolProxy.shape;\n    var ctx = path.getContext ? path.getContext() : path;\n    var canBoost = ctx && size[0] < BOOST_SIZE_THRESHOLD;\n\n    if (canBoost) {\n      this._ctx = ctx;\n      return;\n    }\n\n    this._ctx = null;\n\n    for (var i = 0; i < points.length;) {\n      var x = points[i++];\n      var y = points[i++];\n\n      if (isNaN(x) || isNaN(y)) {\n        continue;\n      }\n\n      if (this.softClipShape && !this.softClipShape.contain(x, y)) {\n        continue;\n      }\n\n      symbolProxyShape.x = x - size[0] / 2;\n      symbolProxyShape.y = y - size[1] / 2;\n      symbolProxyShape.width = size[0];\n      symbolProxyShape.height = size[1];\n      symbolProxy.buildPath(path, symbolProxyShape, true);\n    }\n  };\n\n  LargeSymbolPath.prototype.afterBrush = function () {\n    var shape = this.shape;\n    var points = shape.points;\n    var size = shape.size;\n    var ctx = this._ctx;\n\n    if (!ctx) {\n      return;\n    }\n\n    for (var i = 0; i < points.length;) {\n      var x = points[i++];\n      var y = points[i++];\n\n      if (isNaN(x) || isNaN(y)) {\n        continue;\n      }\n\n      if (this.softClipShape && !this.softClipShape.contain(x, y)) {\n        continue;\n      }\n\n      ctx.fillRect(x - size[0] / 2, y - size[1] / 2, size[0], size[1]);\n    }\n  };\n\n  LargeSymbolPath.prototype.findDataIndex = function (x, y) {\n    var shape = this.shape;\n    var points = shape.points;\n    var size = shape.size;\n    var w = Math.max(size[0], 4);\n    var h = Math.max(size[1], 4);\n\n    for (var idx = points.length / 2 - 1; idx >= 0; idx--) {\n      var i = idx * 2;\n      var x0 = points[i] - w / 2;\n      var y0 = points[i + 1] - h / 2;\n\n      if (x >= x0 && y >= y0 && x <= x0 + w && y <= y0 + h) {\n        return idx;\n      }\n    }\n\n    return -1;\n  };\n\n  return LargeSymbolPath;\n}(graphic.Path);\n\nvar LargeSymbolDraw = function () {\n  function LargeSymbolDraw() {\n    this.group = new graphic.Group();\n  }\n\n  LargeSymbolDraw.prototype.isPersistent = function () {\n    return !this._incremental;\n  };\n\n  ;\n\n  LargeSymbolDraw.prototype.updateData = function (data, opt) {\n    this.group.removeAll();\n    var symbolEl = new LargeSymbolPath({\n      rectHover: true,\n      cursor: 'default'\n    });\n    symbolEl.setShape({\n      points: data.getLayout('points')\n    });\n\n    this._setCommon(symbolEl, data, false, opt);\n\n    this.group.add(symbolEl);\n    this._incremental = null;\n  };\n\n  LargeSymbolDraw.prototype.updateLayout = function (data) {\n    if (this._incremental) {\n      return;\n    }\n\n    var points = data.getLayout('points');\n    this.group.eachChild(function (child) {\n      if (child.startIndex != null) {\n        var len = (child.endIndex - child.startIndex) * 2;\n        var byteOffset = child.startIndex * 4 * 2;\n        points = new Float32Array(points.buffer, byteOffset, len);\n      }\n\n      child.setShape('points', points);\n    });\n  };\n\n  LargeSymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\n    this.group.removeAll();\n\n    this._clearIncremental();\n\n    if (data.count() > 2e6) {\n      if (!this._incremental) {\n        this._incremental = new IncrementalDisplayable({\n          silent: true\n        });\n      }\n\n      this.group.add(this._incremental);\n    } else {\n      this._incremental = null;\n    }\n  };\n\n  LargeSymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\n    var symbolEl;\n\n    if (this._incremental) {\n      symbolEl = new LargeSymbolPath();\n\n      this._incremental.addDisplayable(symbolEl, true);\n    } else {\n      symbolEl = new LargeSymbolPath({\n        rectHover: true,\n        cursor: 'default',\n        startIndex: taskParams.start,\n        endIndex: taskParams.end\n      });\n      symbolEl.incremental = true;\n      this.group.add(symbolEl);\n    }\n\n    symbolEl.setShape({\n      points: data.getLayout('points')\n    });\n\n    this._setCommon(symbolEl, data, !!this._incremental, opt);\n  };\n\n  LargeSymbolDraw.prototype._setCommon = function (symbolEl, data, isIncremental, opt) {\n    var hostModel = data.hostModel;\n    opt = opt || {};\n    var size = data.getVisual('symbolSize');\n    symbolEl.setShape('size', size instanceof Array ? size : [size, size]);\n    symbolEl.softClipShape = opt.clipShape || null;\n    symbolEl.symbolProxy = createSymbol(data.getVisual('symbol'), 0, 0, 0, 0);\n    symbolEl.setColor = symbolEl.symbolProxy.setColor;\n    var extrudeShadow = symbolEl.shape.size[0] < BOOST_SIZE_THRESHOLD;\n    symbolEl.useStyle(hostModel.getModel('itemStyle').getItemStyle(extrudeShadow ? ['color', 'shadowBlur', 'shadowColor'] : ['color']));\n    var globalStyle = data.getVisual('style');\n    var visualColor = globalStyle && globalStyle.fill;\n\n    if (visualColor) {\n      symbolEl.setColor(visualColor);\n    }\n\n    if (!isIncremental) {\n      var ecData_1 = getECData(symbolEl);\n      ecData_1.seriesIndex = hostModel.seriesIndex;\n      symbolEl.on('mousemove', function (e) {\n        ecData_1.dataIndex = null;\n        var dataIndex = symbolEl.findDataIndex(e.offsetX, e.offsetY);\n\n        if (dataIndex >= 0) {\n          ecData_1.dataIndex = dataIndex + (symbolEl.startIndex || 0);\n        }\n      });\n    }\n  };\n\n  LargeSymbolDraw.prototype.remove = function () {\n    this._clearIncremental();\n\n    this._incremental = null;\n    this.group.removeAll();\n  };\n\n  LargeSymbolDraw.prototype._clearIncremental = function () {\n    var incremental = this._incremental;\n\n    if (incremental) {\n      incremental.clearDisplaybles();\n    }\n  };\n\n  return LargeSymbolDraw;\n}();\n\nexport default LargeSymbolDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SymbolDraw from '../helper/SymbolDraw';\nimport LargeSymbolDraw from '../helper/LargeSymbolDraw';\nimport pointsLayout from '../../layout/points';\nimport ChartView from '../../view/Chart';\n\nvar ScatterView = function (_super) {\n  __extends(ScatterView, _super);\n\n  function ScatterView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ScatterView.type;\n    return _this;\n  }\n\n  ScatterView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n\n    var symbolDraw = this._updateSymbolDraw(data, seriesModel);\n\n    symbolDraw.updateData(data, {\n      clipShape: this._getClipShape(seriesModel)\n    });\n    this._finished = true;\n  };\n\n  ScatterView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n\n    var symbolDraw = this._updateSymbolDraw(data, seriesModel);\n\n    symbolDraw.incrementalPrepareUpdate(data);\n    this._finished = false;\n  };\n\n  ScatterView.prototype.incrementalRender = function (taskParams, seriesModel, ecModel) {\n    this._symbolDraw.incrementalUpdate(taskParams, seriesModel.getData(), {\n      clipShape: this._getClipShape(seriesModel)\n    });\n\n    this._finished = taskParams.end === seriesModel.getData().count();\n  };\n\n  ScatterView.prototype.updateTransform = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    this.group.dirty();\n\n    if (!this._finished || data.count() > 1e4 || !this._symbolDraw.isPersistent()) {\n      return {\n        update: true\n      };\n    } else {\n      var res = pointsLayout('').reset(seriesModel, ecModel, api);\n\n      if (res.progress) {\n        res.progress({\n          start: 0,\n          end: data.count(),\n          count: data.count()\n        }, data);\n      }\n\n      this._symbolDraw.updateLayout(data);\n    }\n  };\n\n  ScatterView.prototype._getClipShape = function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n    var clipArea = coordSys && coordSys.getArea && coordSys.getArea();\n    return seriesModel.get('clip', true) ? clipArea : null;\n  };\n\n  ScatterView.prototype._updateSymbolDraw = function (data, seriesModel) {\n    var symbolDraw = this._symbolDraw;\n    var pipelineContext = seriesModel.pipelineContext;\n    var isLargeDraw = pipelineContext.large;\n\n    if (!symbolDraw || isLargeDraw !== this._isLargeDraw) {\n      symbolDraw && symbolDraw.remove();\n      symbolDraw = this._symbolDraw = isLargeDraw ? new LargeSymbolDraw() : new SymbolDraw();\n      this._isLargeDraw = isLargeDraw;\n      this.group.removeAll();\n    }\n\n    this.group.add(symbolDraw.group);\n    return symbolDraw;\n  };\n\n  ScatterView.prototype.remove = function (ecModel, api) {\n    this._symbolDraw && this._symbolDraw.remove(true);\n    this._symbolDraw = null;\n  };\n\n  ScatterView.prototype.dispose = function () {};\n\n  ScatterView.type = 'scatter';\n  return ScatterView;\n}(ChartView);\n\nexport default ScatterView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\n\nvar GridModel = function (_super) {\n  __extends(GridModel, _super);\n\n  function GridModel() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  GridModel.type = 'grid';\n  GridModel.dependencies = ['xAxis', 'yAxis'];\n  GridModel.layoutMode = 'box';\n  GridModel.defaultOption = {\n    show: false,\n    zlevel: 0,\n    z: 0,\n    left: '10%',\n    top: 60,\n    right: '10%',\n    bottom: 70,\n    containLabel: false,\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderWidth: 1,\n    borderColor: '#ccc'\n  };\n  return GridModel;\n}(ComponentModel);\n\nexport default GridModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin';\nimport { SINGLE_REFERRING } from '../../util/model';\n\nvar CartesianAxisModel = function (_super) {\n  __extends(CartesianAxisModel, _super);\n\n  function CartesianAxisModel() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  CartesianAxisModel.prototype.getCoordSysModel = function () {\n    return this.getReferringComponents('grid', SINGLE_REFERRING).models[0];\n  };\n\n  CartesianAxisModel.type = 'cartesian2dAxis';\n  return CartesianAxisModel;\n}(ComponentModel);\n\nexport { CartesianAxisModel };\nzrUtil.mixin(CartesianAxisModel, AxisModelCommonMixin);\nexport default CartesianAxisModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar defaultOption = {\n  show: true,\n  zlevel: 0,\n  z: 0,\n  inverse: false,\n  name: '',\n  nameLocation: 'end',\n  nameRotate: null,\n  nameTruncate: {\n    maxWidth: null,\n    ellipsis: '...',\n    placeholder: '.'\n  },\n  nameTextStyle: {},\n  nameGap: 15,\n  silent: false,\n  triggerEvent: false,\n  tooltip: {\n    show: false\n  },\n  axisPointer: {},\n  axisLine: {\n    show: true,\n    onZero: true,\n    onZeroAxisIndex: null,\n    lineStyle: {\n      color: '#6E7079',\n      width: 1,\n      type: 'solid'\n    },\n    symbol: ['none', 'none'],\n    symbolSize: [10, 15]\n  },\n  axisTick: {\n    show: true,\n    inside: false,\n    length: 5,\n    lineStyle: {\n      width: 1\n    }\n  },\n  axisLabel: {\n    show: true,\n    inside: false,\n    rotate: 0,\n    showMinLabel: null,\n    showMaxLabel: null,\n    margin: 8,\n    fontSize: 12\n  },\n  splitLine: {\n    show: true,\n    lineStyle: {\n      color: ['#E0E6F1'],\n      width: 1,\n      type: 'solid'\n    }\n  },\n  splitArea: {\n    show: false,\n    areaStyle: {\n      color: ['rgba(250,250,250,0.2)', 'rgba(210,219,238,0.2)']\n    }\n  }\n};\nvar categoryAxis = zrUtil.merge({\n  boundaryGap: true,\n  deduplication: null,\n  splitLine: {\n    show: false\n  },\n  axisTick: {\n    alignWithLabel: false,\n    interval: 'auto'\n  },\n  axisLabel: {\n    interval: 'auto'\n  }\n}, defaultOption);\nvar valueAxis = zrUtil.merge({\n  boundaryGap: [0, 0],\n  axisLine: {\n    show: 'auto'\n  },\n  axisTick: {\n    show: 'auto'\n  },\n  splitNumber: 5,\n  minorTick: {\n    show: false,\n    splitNumber: 5,\n    length: 3,\n    lineStyle: {}\n  },\n  minorSplitLine: {\n    show: false,\n    lineStyle: {\n      color: '#F4F7FD',\n      width: 1\n    }\n  }\n}, defaultOption);\nvar timeAxis = zrUtil.merge({\n  scale: true,\n  splitNumber: 6,\n  axisLabel: {\n    showMinLabel: false,\n    showMaxLabel: false,\n    rich: {\n      primary: {\n        fontWeight: 'bold'\n      }\n    }\n  },\n  splitLine: {\n    show: false\n  }\n}, valueAxis);\nvar logAxis = zrUtil.defaults({\n  scale: true,\n  logBase: 10\n}, valueAxis);\nexport default {\n  category: categoryAxis,\n  value: valueAxis,\n  time: timeAxis,\n  log: logAxis\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport var AXIS_TYPES = {\n  value: 1,\n  category: 1,\n  time: 1,\n  log: 1\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport axisDefault from './axisDefault';\nimport { getLayoutParams, mergeLayoutParam, fetchLayoutMode } from '../util/layout';\nimport OrdinalMeta from '../data/OrdinalMeta';\nimport { AXIS_TYPES } from './axisCommonTypes';\nimport { each, merge } from 'zrender/lib/core/util';\nexport default function axisModelCreator(registers, axisName, BaseAxisModelClass, extraDefaultOption) {\n  each(AXIS_TYPES, function (v, axisType) {\n    var defaultOption = merge(merge({}, axisDefault[axisType], true), extraDefaultOption, true);\n\n    var AxisModel = function (_super) {\n      __extends(AxisModel, _super);\n\n      function AxisModel() {\n        var args = [];\n\n        for (var _i = 0; _i < arguments.length; _i++) {\n          args[_i] = arguments[_i];\n        }\n\n        var _this = _super.apply(this, args) || this;\n\n        _this.type = axisName + 'Axis.' + axisType;\n        return _this;\n      }\n\n      AxisModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n        var layoutMode = fetchLayoutMode(this);\n        var inputPositionParams = layoutMode ? getLayoutParams(option) : {};\n        var themeModel = ecModel.getTheme();\n        merge(option, themeModel.get(axisType + 'Axis'));\n        merge(option, this.getDefaultOption());\n        option.type = getAxisType(option);\n\n        if (layoutMode) {\n          mergeLayoutParam(option, inputPositionParams, layoutMode);\n        }\n      };\n\n      AxisModel.prototype.optionUpdated = function () {\n        var thisOption = this.option;\n\n        if (thisOption.type === 'category') {\n          this.__ordinalMeta = OrdinalMeta.createByAxisModel(this);\n        }\n      };\n\n      AxisModel.prototype.getCategories = function (rawData) {\n        var option = this.option;\n\n        if (option.type === 'category') {\n          if (rawData) {\n            return option.data;\n          }\n\n          return this.__ordinalMeta.categories;\n        }\n      };\n\n      AxisModel.prototype.getOrdinalMeta = function () {\n        return this.__ordinalMeta;\n      };\n\n      AxisModel.type = axisName + 'Axis.' + axisType;\n      AxisModel.defaultOption = defaultOption;\n      return AxisModel;\n    }(BaseAxisModelClass);\n\n    registers.registerComponentModel(AxisModel);\n  });\n  registers.registerSubTypeDefaulter(axisName + 'Axis', getAxisType);\n}\n\nfunction getAxisType(option) {\n  return option.type || (option.data ? 'category' : 'value');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nvar Cartesian = function () {\n  function Cartesian(name) {\n    this.type = 'cartesian';\n    this._dimList = [];\n    this._axes = {};\n    this.name = name || '';\n  }\n\n  Cartesian.prototype.getAxis = function (dim) {\n    return this._axes[dim];\n  };\n\n  Cartesian.prototype.getAxes = function () {\n    return zrUtil.map(this._dimList, function (dim) {\n      return this._axes[dim];\n    }, this);\n  };\n\n  Cartesian.prototype.getAxesByScale = function (scaleType) {\n    scaleType = scaleType.toLowerCase();\n    return zrUtil.filter(this.getAxes(), function (axis) {\n      return axis.scale.type === scaleType;\n    });\n  };\n\n  Cartesian.prototype.addAxis = function (axis) {\n    var dim = axis.dim;\n    this._axes[dim] = axis;\n\n    this._dimList.push(dim);\n  };\n\n  return Cartesian;\n}();\n\n;\nexport default Cartesian;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport Cartesian from './Cartesian';\nimport { invert } from 'zrender/lib/core/matrix';\nimport { applyTransform } from 'zrender/lib/core/vector';\nexport var cartesian2DDimensions = ['x', 'y'];\n\nfunction canCalculateAffineTransform(scale) {\n  return scale.type === 'interval' || scale.type === 'time';\n}\n\nvar Cartesian2D = function (_super) {\n  __extends(Cartesian2D, _super);\n\n  function Cartesian2D() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'cartesian2d';\n    _this.dimensions = cartesian2DDimensions;\n    return _this;\n  }\n\n  Cartesian2D.prototype.calcAffineTransform = function () {\n    this._transform = this._invTransform = null;\n    var xAxisScale = this.getAxis('x').scale;\n    var yAxisScale = this.getAxis('y').scale;\n\n    if (!canCalculateAffineTransform(xAxisScale) || !canCalculateAffineTransform(yAxisScale)) {\n      return;\n    }\n\n    var xScaleExtent = xAxisScale.getExtent();\n    var yScaleExtent = yAxisScale.getExtent();\n    var start = this.dataToPoint([xScaleExtent[0], yScaleExtent[0]]);\n    var end = this.dataToPoint([xScaleExtent[1], yScaleExtent[1]]);\n    var xScaleSpan = xScaleExtent[1] - xScaleExtent[0];\n    var yScaleSpan = yScaleExtent[1] - yScaleExtent[0];\n\n    if (!xScaleSpan || !yScaleSpan) {\n      return;\n    }\n\n    var scaleX = (end[0] - start[0]) / xScaleSpan;\n    var scaleY = (end[1] - start[1]) / yScaleSpan;\n    var translateX = start[0] - xScaleExtent[0] * scaleX;\n    var translateY = start[1] - yScaleExtent[0] * scaleY;\n    var m = this._transform = [scaleX, 0, 0, scaleY, translateX, translateY];\n    this._invTransform = invert([], m);\n  };\n\n  Cartesian2D.prototype.getBaseAxis = function () {\n    return this.getAxesByScale('ordinal')[0] || this.getAxesByScale('time')[0] || this.getAxis('x');\n  };\n\n  Cartesian2D.prototype.containPoint = function (point) {\n    var axisX = this.getAxis('x');\n    var axisY = this.getAxis('y');\n    return axisX.contain(axisX.toLocalCoord(point[0])) && axisY.contain(axisY.toLocalCoord(point[1]));\n  };\n\n  Cartesian2D.prototype.containData = function (data) {\n    return this.getAxis('x').containData(data[0]) && this.getAxis('y').containData(data[1]);\n  };\n\n  Cartesian2D.prototype.dataToPoint = function (data, reserved, out) {\n    out = out || [];\n    var xVal = data[0];\n    var yVal = data[1];\n\n    if (this._transform && xVal != null && isFinite(xVal) && yVal != null && isFinite(yVal)) {\n      return applyTransform(out, data, this._transform);\n    }\n\n    var xAxis = this.getAxis('x');\n    var yAxis = this.getAxis('y');\n    out[0] = xAxis.toGlobalCoord(xAxis.dataToCoord(xVal));\n    out[1] = yAxis.toGlobalCoord(yAxis.dataToCoord(yVal));\n    return out;\n  };\n\n  Cartesian2D.prototype.clampData = function (data, out) {\n    var xScale = this.getAxis('x').scale;\n    var yScale = this.getAxis('y').scale;\n    var xAxisExtent = xScale.getExtent();\n    var yAxisExtent = yScale.getExtent();\n    var x = xScale.parse(data[0]);\n    var y = yScale.parse(data[1]);\n    out = out || [];\n    out[0] = Math.min(Math.max(Math.min(xAxisExtent[0], xAxisExtent[1]), x), Math.max(xAxisExtent[0], xAxisExtent[1]));\n    out[1] = Math.min(Math.max(Math.min(yAxisExtent[0], yAxisExtent[1]), y), Math.max(yAxisExtent[0], yAxisExtent[1]));\n    return out;\n  };\n\n  Cartesian2D.prototype.pointToData = function (point, out) {\n    out = out || [];\n\n    if (this._invTransform) {\n      return applyTransform(out, point, this._invTransform);\n    }\n\n    var xAxis = this.getAxis('x');\n    var yAxis = this.getAxis('y');\n    out[0] = xAxis.coordToData(xAxis.toLocalCoord(point[0]));\n    out[1] = yAxis.coordToData(yAxis.toLocalCoord(point[1]));\n    return out;\n  };\n\n  Cartesian2D.prototype.getOtherAxis = function (axis) {\n    return this.getAxis(axis.dim === 'x' ? 'y' : 'x');\n  };\n\n  Cartesian2D.prototype.getArea = function () {\n    var xExtent = this.getAxis('x').getGlobalExtent();\n    var yExtent = this.getAxis('y').getGlobalExtent();\n    var x = Math.min(xExtent[0], xExtent[1]);\n    var y = Math.min(yExtent[0], yExtent[1]);\n    var width = Math.max(xExtent[0], xExtent[1]) - x;\n    var height = Math.max(yExtent[0], yExtent[1]) - y;\n    return new BoundingRect(x, y, width, height);\n  };\n\n  return Cartesian2D;\n}(Cartesian);\n\n;\nexport default Cartesian2D;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis';\n\nvar Axis2D = function (_super) {\n  __extends(Axis2D, _super);\n\n  function Axis2D(dim, scale, coordExtent, axisType, position) {\n    var _this = _super.call(this, dim, scale, coordExtent) || this;\n\n    _this.index = 0;\n    _this.type = axisType || 'value';\n    _this.position = position || 'bottom';\n    return _this;\n  }\n\n  Axis2D.prototype.isHorizontal = function () {\n    var position = this.position;\n    return position === 'top' || position === 'bottom';\n  };\n\n  Axis2D.prototype.getGlobalExtent = function (asc) {\n    var ret = this.getExtent();\n    ret[0] = this.toGlobalCoord(ret[0]);\n    ret[1] = this.toGlobalCoord(ret[1]);\n    asc && ret[0] > ret[1] && ret.reverse();\n    return ret;\n  };\n\n  Axis2D.prototype.pointToData = function (point, clamp) {\n    return this.coordToData(this.toLocalCoord(point[this.dim === 'x' ? 0 : 1]), clamp);\n  };\n\n  Axis2D.prototype.setCategorySortInfo = function (info) {\n    if (this.type !== 'category') {\n      return false;\n    }\n\n    this.model.option.categorySortInfo = info;\n    this.scale.setSortInfo(info);\n  };\n\n  return Axis2D;\n}(Axis);\n\nexport default Axis2D;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { SINGLE_REFERRING } from '../../util/model';\nexport function layout(gridModel, axisModel, opt) {\n  opt = opt || {};\n  var grid = gridModel.coordinateSystem;\n  var axis = axisModel.axis;\n  var layout = {};\n  var otherAxisOnZeroOf = axis.getAxesOnZeroOf()[0];\n  var rawAxisPosition = axis.position;\n  var axisPosition = otherAxisOnZeroOf ? 'onZero' : rawAxisPosition;\n  var axisDim = axis.dim;\n  var rect = grid.getRect();\n  var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height];\n  var idx = {\n    left: 0,\n    right: 1,\n    top: 0,\n    bottom: 1,\n    onZero: 2\n  };\n  var axisOffset = axisModel.get('offset') || 0;\n  var posBound = axisDim === 'x' ? [rectBound[2] - axisOffset, rectBound[3] + axisOffset] : [rectBound[0] - axisOffset, rectBound[1] + axisOffset];\n\n  if (otherAxisOnZeroOf) {\n    var onZeroCoord = otherAxisOnZeroOf.toGlobalCoord(otherAxisOnZeroOf.dataToCoord(0));\n    posBound[idx.onZero] = Math.max(Math.min(onZeroCoord, posBound[1]), posBound[0]);\n  }\n\n  layout.position = [axisDim === 'y' ? posBound[idx[axisPosition]] : rectBound[0], axisDim === 'x' ? posBound[idx[axisPosition]] : rectBound[3]];\n  layout.rotation = Math.PI / 2 * (axisDim === 'x' ? 0 : 1);\n  var dirMap = {\n    top: -1,\n    bottom: 1,\n    left: -1,\n    right: 1\n  };\n  layout.labelDirection = layout.tickDirection = layout.nameDirection = dirMap[rawAxisPosition];\n  layout.labelOffset = otherAxisOnZeroOf ? posBound[idx[rawAxisPosition]] - posBound[idx.onZero] : 0;\n\n  if (axisModel.get(['axisTick', 'inside'])) {\n    layout.tickDirection = -layout.tickDirection;\n  }\n\n  if (zrUtil.retrieve(opt.labelInside, axisModel.get(['axisLabel', 'inside']))) {\n    layout.labelDirection = -layout.labelDirection;\n  }\n\n  var labelRotate = axisModel.get(['axisLabel', 'rotate']);\n  layout.labelRotate = axisPosition === 'top' ? -labelRotate : labelRotate;\n  layout.z2 = 1;\n  return layout;\n}\nexport function isCartesian2DSeries(seriesModel) {\n  return seriesModel.get('coordinateSystem') === 'cartesian2d';\n}\nexport function findAxisModels(seriesModel) {\n  var axisModelMap = {\n    xAxisModel: null,\n    yAxisModel: null\n  };\n  zrUtil.each(axisModelMap, function (v, key) {\n    var axisType = key.replace(/Model$/, '');\n    var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!axisModel) {\n        throw new Error(axisType + ' \"' + zrUtil.retrieve3(seriesModel.get(axisType + 'Index'), seriesModel.get(axisType + 'Id'), 0) + '\" not found');\n      }\n    }\n\n    axisModelMap[key] = axisModel;\n  });\n  return axisModelMap;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isObject, each, indexOf, retrieve3 } from 'zrender/lib/core/util';\nimport { getLayoutRect } from '../../util/layout';\nimport { createScaleByModel, ifAxisCrossZero, niceScaleExtent, estimateLabelUnionRect, getDataDimensionsOnAxis } from '../../coord/axisHelper';\nimport Cartesian2D, { cartesian2DDimensions } from './Cartesian2D';\nimport Axis2D from './Axis2D';\nimport { SINGLE_REFERRING } from '../../util/model';\nimport { isCartesian2DSeries, findAxisModels } from './cartesianAxisHelper';\n\nvar Grid = function () {\n  function Grid(gridModel, ecModel, api) {\n    this.type = 'grid';\n    this._coordsMap = {};\n    this._coordsList = [];\n    this._axesMap = {};\n    this._axesList = [];\n    this.axisPointerEnabled = true;\n    this.dimensions = cartesian2DDimensions;\n\n    this._initCartesian(gridModel, ecModel, api);\n\n    this.model = gridModel;\n  }\n\n  Grid.prototype.getRect = function () {\n    return this._rect;\n  };\n\n  Grid.prototype.update = function (ecModel, api) {\n    var axesMap = this._axesMap;\n\n    this._updateScale(ecModel, this.model);\n\n    each(axesMap.x, function (xAxis) {\n      niceScaleExtent(xAxis.scale, xAxis.model);\n    });\n    each(axesMap.y, function (yAxis) {\n      niceScaleExtent(yAxis.scale, yAxis.model);\n    });\n    var onZeroRecords = {};\n    each(axesMap.x, function (xAxis) {\n      fixAxisOnZero(axesMap, 'y', xAxis, onZeroRecords);\n    });\n    each(axesMap.y, function (yAxis) {\n      fixAxisOnZero(axesMap, 'x', yAxis, onZeroRecords);\n    });\n    this.resize(this.model, api);\n  };\n\n  Grid.prototype.resize = function (gridModel, api, ignoreContainLabel) {\n    var boxLayoutParams = gridModel.getBoxLayoutParams();\n    var isContainLabel = !ignoreContainLabel && gridModel.get('containLabel');\n    var gridRect = getLayoutRect(boxLayoutParams, {\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n    this._rect = gridRect;\n    var axesList = this._axesList;\n    adjustAxes();\n\n    if (isContainLabel) {\n      each(axesList, function (axis) {\n        if (!axis.model.get(['axisLabel', 'inside'])) {\n          var labelUnionRect = estimateLabelUnionRect(axis);\n\n          if (labelUnionRect) {\n            var dim = axis.isHorizontal() ? 'height' : 'width';\n            var margin = axis.model.get(['axisLabel', 'margin']);\n            gridRect[dim] -= labelUnionRect[dim] + margin;\n\n            if (axis.position === 'top') {\n              gridRect.y += labelUnionRect.height + margin;\n            } else if (axis.position === 'left') {\n              gridRect.x += labelUnionRect.width + margin;\n            }\n          }\n        }\n      });\n      adjustAxes();\n    }\n\n    each(this._coordsList, function (coord) {\n      coord.calcAffineTransform();\n    });\n\n    function adjustAxes() {\n      each(axesList, function (axis) {\n        var isHorizontal = axis.isHorizontal();\n        var extent = isHorizontal ? [0, gridRect.width] : [0, gridRect.height];\n        var idx = axis.inverse ? 1 : 0;\n        axis.setExtent(extent[idx], extent[1 - idx]);\n        updateAxisTransform(axis, isHorizontal ? gridRect.x : gridRect.y);\n      });\n    }\n  };\n\n  Grid.prototype.getAxis = function (dim, axisIndex) {\n    var axesMapOnDim = this._axesMap[dim];\n\n    if (axesMapOnDim != null) {\n      return axesMapOnDim[axisIndex || 0];\n    }\n  };\n\n  Grid.prototype.getAxes = function () {\n    return this._axesList.slice();\n  };\n\n  Grid.prototype.getCartesian = function (xAxisIndex, yAxisIndex) {\n    if (xAxisIndex != null && yAxisIndex != null) {\n      var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\n      return this._coordsMap[key];\n    }\n\n    if (isObject(xAxisIndex)) {\n      yAxisIndex = xAxisIndex.yAxisIndex;\n      xAxisIndex = xAxisIndex.xAxisIndex;\n    }\n\n    for (var i = 0, coordList = this._coordsList; i < coordList.length; i++) {\n      if (coordList[i].getAxis('x').index === xAxisIndex || coordList[i].getAxis('y').index === yAxisIndex) {\n        return coordList[i];\n      }\n    }\n  };\n\n  Grid.prototype.getCartesians = function () {\n    return this._coordsList.slice();\n  };\n\n  Grid.prototype.convertToPixel = function (ecModel, finder, value) {\n    var target = this._findConvertTarget(finder);\n\n    return target.cartesian ? target.cartesian.dataToPoint(value) : target.axis ? target.axis.toGlobalCoord(target.axis.dataToCoord(value)) : null;\n  };\n\n  Grid.prototype.convertFromPixel = function (ecModel, finder, value) {\n    var target = this._findConvertTarget(finder);\n\n    return target.cartesian ? target.cartesian.pointToData(value) : target.axis ? target.axis.coordToData(target.axis.toLocalCoord(value)) : null;\n  };\n\n  Grid.prototype._findConvertTarget = function (finder) {\n    var seriesModel = finder.seriesModel;\n    var xAxisModel = finder.xAxisModel || seriesModel && seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0];\n    var yAxisModel = finder.yAxisModel || seriesModel && seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0];\n    var gridModel = finder.gridModel;\n    var coordsList = this._coordsList;\n    var cartesian;\n    var axis;\n\n    if (seriesModel) {\n      cartesian = seriesModel.coordinateSystem;\n      indexOf(coordsList, cartesian) < 0 && (cartesian = null);\n    } else if (xAxisModel && yAxisModel) {\n      cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n    } else if (xAxisModel) {\n      axis = this.getAxis('x', xAxisModel.componentIndex);\n    } else if (yAxisModel) {\n      axis = this.getAxis('y', yAxisModel.componentIndex);\n    } else if (gridModel) {\n      var grid = gridModel.coordinateSystem;\n\n      if (grid === this) {\n        cartesian = this._coordsList[0];\n      }\n    }\n\n    return {\n      cartesian: cartesian,\n      axis: axis\n    };\n  };\n\n  Grid.prototype.containPoint = function (point) {\n    var coord = this._coordsList[0];\n\n    if (coord) {\n      return coord.containPoint(point);\n    }\n  };\n\n  Grid.prototype._initCartesian = function (gridModel, ecModel, api) {\n    var _this = this;\n\n    var grid = this;\n    var axisPositionUsed = {\n      left: false,\n      right: false,\n      top: false,\n      bottom: false\n    };\n    var axesMap = {\n      x: {},\n      y: {}\n    };\n    var axesCount = {\n      x: 0,\n      y: 0\n    };\n    ecModel.eachComponent('xAxis', createAxisCreator('x'), this);\n    ecModel.eachComponent('yAxis', createAxisCreator('y'), this);\n\n    if (!axesCount.x || !axesCount.y) {\n      this._axesMap = {};\n      this._axesList = [];\n      return;\n    }\n\n    this._axesMap = axesMap;\n    each(axesMap.x, function (xAxis, xAxisIndex) {\n      each(axesMap.y, function (yAxis, yAxisIndex) {\n        var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\n        var cartesian = new Cartesian2D(key);\n        cartesian.master = _this;\n        cartesian.model = gridModel;\n        _this._coordsMap[key] = cartesian;\n\n        _this._coordsList.push(cartesian);\n\n        cartesian.addAxis(xAxis);\n        cartesian.addAxis(yAxis);\n      });\n    });\n\n    function createAxisCreator(dimName) {\n      return function (axisModel, idx) {\n        if (!isAxisUsedInTheGrid(axisModel, gridModel)) {\n          return;\n        }\n\n        var axisPosition = axisModel.get('position');\n\n        if (dimName === 'x') {\n          if (axisPosition !== 'top' && axisPosition !== 'bottom') {\n            axisPosition = axisPositionUsed.bottom ? 'top' : 'bottom';\n          }\n        } else {\n          if (axisPosition !== 'left' && axisPosition !== 'right') {\n            axisPosition = axisPositionUsed.left ? 'right' : 'left';\n          }\n        }\n\n        axisPositionUsed[axisPosition] = true;\n        var axis = new Axis2D(dimName, createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisPosition);\n        var isCategory = axis.type === 'category';\n        axis.onBand = isCategory && axisModel.get('boundaryGap');\n        axis.inverse = axisModel.get('inverse');\n        axisModel.axis = axis;\n        axis.model = axisModel;\n        axis.grid = grid;\n        axis.index = idx;\n\n        grid._axesList.push(axis);\n\n        axesMap[dimName][idx] = axis;\n        axesCount[dimName]++;\n      };\n    }\n  };\n\n  Grid.prototype._updateScale = function (ecModel, gridModel) {\n    each(this._axesList, function (axis) {\n      axis.scale.setExtent(Infinity, -Infinity);\n\n      if (axis.type === 'category') {\n        var categorySortInfo = axis.model.get('categorySortInfo');\n        axis.scale.setSortInfo(categorySortInfo);\n      }\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      if (isCartesian2DSeries(seriesModel)) {\n        var axesModelMap = findAxisModels(seriesModel);\n        var xAxisModel = axesModelMap.xAxisModel;\n        var yAxisModel = axesModelMap.yAxisModel;\n\n        if (!isAxisUsedInTheGrid(xAxisModel, gridModel) || !isAxisUsedInTheGrid(yAxisModel, gridModel)) {\n          return;\n        }\n\n        var cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n        var data = seriesModel.getData();\n        var xAxis = cartesian.getAxis('x');\n        var yAxis = cartesian.getAxis('y');\n\n        if (data.type === 'list') {\n          unionExtent(data, xAxis);\n          unionExtent(data, yAxis);\n        }\n      }\n    }, this);\n\n    function unionExtent(data, axis) {\n      each(getDataDimensionsOnAxis(data, axis.dim), function (dim) {\n        axis.scale.unionExtentFromData(data, dim);\n      });\n    }\n  };\n\n  Grid.prototype.getTooltipAxes = function (dim) {\n    var baseAxes = [];\n    var otherAxes = [];\n    each(this.getCartesians(), function (cartesian) {\n      var baseAxis = dim != null && dim !== 'auto' ? cartesian.getAxis(dim) : cartesian.getBaseAxis();\n      var otherAxis = cartesian.getOtherAxis(baseAxis);\n      indexOf(baseAxes, baseAxis) < 0 && baseAxes.push(baseAxis);\n      indexOf(otherAxes, otherAxis) < 0 && otherAxes.push(otherAxis);\n    });\n    return {\n      baseAxes: baseAxes,\n      otherAxes: otherAxes\n    };\n  };\n\n  Grid.create = function (ecModel, api) {\n    var grids = [];\n    ecModel.eachComponent('grid', function (gridModel, idx) {\n      var grid = new Grid(gridModel, ecModel, api);\n      grid.name = 'grid_' + idx;\n      grid.resize(gridModel, api, true);\n      gridModel.coordinateSystem = grid;\n      grids.push(grid);\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      if (!isCartesian2DSeries(seriesModel)) {\n        return;\n      }\n\n      var axesModelMap = findAxisModels(seriesModel);\n      var xAxisModel = axesModelMap.xAxisModel;\n      var yAxisModel = axesModelMap.yAxisModel;\n      var gridModel = xAxisModel.getCoordSysModel();\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (!gridModel) {\n          throw new Error('Grid \"' + retrieve3(xAxisModel.get('gridIndex'), xAxisModel.get('gridId'), 0) + '\" not found');\n        }\n\n        if (xAxisModel.getCoordSysModel() !== yAxisModel.getCoordSysModel()) {\n          throw new Error('xAxis and yAxis must use the same grid');\n        }\n      }\n\n      var grid = gridModel.coordinateSystem;\n      seriesModel.coordinateSystem = grid.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n    });\n    return grids;\n  };\n\n  Grid.dimensions = cartesian2DDimensions;\n  return Grid;\n}();\n\nfunction isAxisUsedInTheGrid(axisModel, gridModel) {\n  return axisModel.getCoordSysModel() === gridModel;\n}\n\nfunction fixAxisOnZero(axesMap, otherAxisDim, axis, onZeroRecords) {\n  axis.getAxesOnZeroOf = function () {\n    return otherAxisOnZeroOf ? [otherAxisOnZeroOf] : [];\n  };\n\n  var otherAxes = axesMap[otherAxisDim];\n  var otherAxisOnZeroOf;\n  var axisModel = axis.model;\n  var onZero = axisModel.get(['axisLine', 'onZero']);\n  var onZeroAxisIndex = axisModel.get(['axisLine', 'onZeroAxisIndex']);\n\n  if (!onZero) {\n    return;\n  }\n\n  if (onZeroAxisIndex != null) {\n    if (canOnZeroToAxis(otherAxes[onZeroAxisIndex])) {\n      otherAxisOnZeroOf = otherAxes[onZeroAxisIndex];\n    }\n  } else {\n    for (var idx in otherAxes) {\n      if (otherAxes.hasOwnProperty(idx) && canOnZeroToAxis(otherAxes[idx]) && !onZeroRecords[getOnZeroRecordKey(otherAxes[idx])]) {\n        otherAxisOnZeroOf = otherAxes[idx];\n        break;\n      }\n    }\n  }\n\n  if (otherAxisOnZeroOf) {\n    onZeroRecords[getOnZeroRecordKey(otherAxisOnZeroOf)] = true;\n  }\n\n  function getOnZeroRecordKey(axis) {\n    return axis.dim + '_' + axis.index;\n  }\n}\n\nfunction canOnZeroToAxis(axis) {\n  return axis && axis.type !== 'category' && axis.type !== 'time' && ifAxisCrossZero(axis);\n}\n\nfunction updateAxisTransform(axis, coordBase) {\n  var axisExtent = axis.getExtent();\n  var axisExtentSum = axisExtent[0] + axisExtent[1];\n  axis.toGlobalCoord = axis.dim === 'x' ? function (coord) {\n    return coord + coordBase;\n  } : function (coord) {\n    return axisExtentSum - coord + coordBase;\n  };\n  axis.toLocalCoord = axis.dim === 'x' ? function (coord) {\n    return coord - coordBase;\n  } : function (coord) {\n    return axisExtentSum - coord + coordBase;\n  };\n}\n\nexport default Grid;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { retrieve, defaults, extend, each, isObject } from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { createTextStyle } from '../../label/labelStyle';\nimport Model from '../../model/Model';\nimport { isRadianAroundZero, remRadian } from '../../util/number';\nimport { createSymbol } from '../../util/symbol';\nimport * as matrixUtil from 'zrender/lib/core/matrix';\nimport { applyTransform as v2ApplyTransform } from 'zrender/lib/core/vector';\nimport { shouldShowAllLabels } from '../../coord/axisHelper';\nvar PI = Math.PI;\n\nvar AxisBuilder = function () {\n  function AxisBuilder(axisModel, opt) {\n    this.group = new graphic.Group();\n    this.opt = opt;\n    this.axisModel = axisModel;\n    defaults(opt, {\n      labelOffset: 0,\n      nameDirection: 1,\n      tickDirection: 1,\n      labelDirection: 1,\n      silent: true,\n      handleAutoShown: function () {\n        return true;\n      }\n    });\n    var transformGroup = new graphic.Group({\n      x: opt.position[0],\n      y: opt.position[1],\n      rotation: opt.rotation\n    });\n    transformGroup.updateTransform();\n    this._transformGroup = transformGroup;\n  }\n\n  AxisBuilder.prototype.hasBuilder = function (name) {\n    return !!builders[name];\n  };\n\n  AxisBuilder.prototype.add = function (name) {\n    builders[name](this.opt, this.axisModel, this.group, this._transformGroup);\n  };\n\n  AxisBuilder.prototype.getGroup = function () {\n    return this.group;\n  };\n\n  AxisBuilder.innerTextLayout = function (axisRotation, textRotation, direction) {\n    var rotationDiff = remRadian(textRotation - axisRotation);\n    var textAlign;\n    var textVerticalAlign;\n\n    if (isRadianAroundZero(rotationDiff)) {\n      textVerticalAlign = direction > 0 ? 'top' : 'bottom';\n      textAlign = 'center';\n    } else if (isRadianAroundZero(rotationDiff - PI)) {\n      textVerticalAlign = direction > 0 ? 'bottom' : 'top';\n      textAlign = 'center';\n    } else {\n      textVerticalAlign = 'middle';\n\n      if (rotationDiff > 0 && rotationDiff < PI) {\n        textAlign = direction > 0 ? 'right' : 'left';\n      } else {\n        textAlign = direction > 0 ? 'left' : 'right';\n      }\n    }\n\n    return {\n      rotation: rotationDiff,\n      textAlign: textAlign,\n      textVerticalAlign: textVerticalAlign\n    };\n  };\n\n  AxisBuilder.makeAxisEventDataBase = function (axisModel) {\n    var eventData = {\n      componentType: axisModel.mainType,\n      componentIndex: axisModel.componentIndex\n    };\n    eventData[axisModel.mainType + 'Index'] = axisModel.componentIndex;\n    return eventData;\n  };\n\n  AxisBuilder.isLabelSilent = function (axisModel) {\n    var tooltipOpt = axisModel.get('tooltip');\n    return axisModel.get('silent') || !(axisModel.get('triggerEvent') || tooltipOpt && tooltipOpt.show);\n  };\n\n  return AxisBuilder;\n}();\n\n;\nvar builders = {\n  axisLine: function (opt, axisModel, group, transformGroup) {\n    var shown = axisModel.get(['axisLine', 'show']);\n\n    if (shown === 'auto' && opt.handleAutoShown) {\n      shown = opt.handleAutoShown('axisLine');\n    }\n\n    if (!shown) {\n      return;\n    }\n\n    var extent = axisModel.axis.getExtent();\n    var matrix = transformGroup.transform;\n    var pt1 = [extent[0], 0];\n    var pt2 = [extent[1], 0];\n\n    if (matrix) {\n      v2ApplyTransform(pt1, pt1, matrix);\n      v2ApplyTransform(pt2, pt2, matrix);\n    }\n\n    var lineStyle = extend({\n      lineCap: 'round'\n    }, axisModel.getModel(['axisLine', 'lineStyle']).getLineStyle());\n    var line = new graphic.Line({\n      subPixelOptimize: true,\n      shape: {\n        x1: pt1[0],\n        y1: pt1[1],\n        x2: pt2[0],\n        y2: pt2[1]\n      },\n      style: lineStyle,\n      strokeContainThreshold: opt.strokeContainThreshold || 5,\n      silent: true,\n      z2: 1\n    });\n    line.anid = 'line';\n    group.add(line);\n    var arrows = axisModel.get(['axisLine', 'symbol']);\n    var arrowSize = axisModel.get(['axisLine', 'symbolSize']);\n    var arrowOffset = axisModel.get(['axisLine', 'symbolOffset']) || 0;\n\n    if (typeof arrowOffset === 'number') {\n      arrowOffset = [arrowOffset, arrowOffset];\n    }\n\n    if (arrows != null) {\n      if (typeof arrows === 'string') {\n        arrows = [arrows, arrows];\n      }\n\n      if (typeof arrowSize === 'string' || typeof arrowSize === 'number') {\n        arrowSize = [arrowSize, arrowSize];\n      }\n\n      var symbolWidth_1 = arrowSize[0];\n      var symbolHeight_1 = arrowSize[1];\n      each([{\n        rotate: opt.rotation + Math.PI / 2,\n        offset: arrowOffset[0],\n        r: 0\n      }, {\n        rotate: opt.rotation - Math.PI / 2,\n        offset: arrowOffset[1],\n        r: Math.sqrt((pt1[0] - pt2[0]) * (pt1[0] - pt2[0]) + (pt1[1] - pt2[1]) * (pt1[1] - pt2[1]))\n      }], function (point, index) {\n        if (arrows[index] !== 'none' && arrows[index] != null) {\n          var symbol = createSymbol(arrows[index], -symbolWidth_1 / 2, -symbolHeight_1 / 2, symbolWidth_1, symbolHeight_1, lineStyle.stroke, true);\n          var r = point.r + point.offset;\n          symbol.attr({\n            rotation: point.rotate,\n            x: pt1[0] + r * Math.cos(opt.rotation),\n            y: pt1[1] - r * Math.sin(opt.rotation),\n            silent: true,\n            z2: 11\n          });\n          group.add(symbol);\n        }\n      });\n    }\n  },\n  axisTickLabel: function (opt, axisModel, group, transformGroup) {\n    var ticksEls = buildAxisMajorTicks(group, transformGroup, axisModel, opt);\n    var labelEls = buildAxisLabel(group, transformGroup, axisModel, opt);\n    fixMinMaxLabelShow(axisModel, labelEls, ticksEls);\n    buildAxisMinorTicks(group, transformGroup, axisModel, opt.tickDirection);\n  },\n  axisName: function (opt, axisModel, group, transformGroup) {\n    var name = retrieve(opt.axisName, axisModel.get('name'));\n\n    if (!name) {\n      return;\n    }\n\n    var nameLocation = axisModel.get('nameLocation');\n    var nameDirection = opt.nameDirection;\n    var textStyleModel = axisModel.getModel('nameTextStyle');\n    var gap = axisModel.get('nameGap') || 0;\n    var extent = axisModel.axis.getExtent();\n    var gapSignal = extent[0] > extent[1] ? -1 : 1;\n    var pos = [nameLocation === 'start' ? extent[0] - gapSignal * gap : nameLocation === 'end' ? extent[1] + gapSignal * gap : (extent[0] + extent[1]) / 2, isNameLocationCenter(nameLocation) ? opt.labelOffset + nameDirection * gap : 0];\n    var labelLayout;\n    var nameRotation = axisModel.get('nameRotate');\n\n    if (nameRotation != null) {\n      nameRotation = nameRotation * PI / 180;\n    }\n\n    var axisNameAvailableWidth;\n\n    if (isNameLocationCenter(nameLocation)) {\n      labelLayout = AxisBuilder.innerTextLayout(opt.rotation, nameRotation != null ? nameRotation : opt.rotation, nameDirection);\n    } else {\n      labelLayout = endTextLayout(opt.rotation, nameLocation, nameRotation || 0, extent);\n      axisNameAvailableWidth = opt.axisNameAvailableWidth;\n\n      if (axisNameAvailableWidth != null) {\n        axisNameAvailableWidth = Math.abs(axisNameAvailableWidth / Math.sin(labelLayout.rotation));\n        !isFinite(axisNameAvailableWidth) && (axisNameAvailableWidth = null);\n      }\n    }\n\n    var textFont = textStyleModel.getFont();\n    var truncateOpt = axisModel.get('nameTruncate', true) || {};\n    var ellipsis = truncateOpt.ellipsis;\n    var maxWidth = retrieve(opt.nameTruncateMaxWidth, truncateOpt.maxWidth, axisNameAvailableWidth);\n    var tooltipOpt = axisModel.get('tooltip', true);\n    var mainType = axisModel.mainType;\n    var formatterParams = {\n      componentType: mainType,\n      name: name,\n      $vars: ['name']\n    };\n    formatterParams[mainType + 'Index'] = axisModel.componentIndex;\n    var textEl = new graphic.Text({\n      x: pos[0],\n      y: pos[1],\n      rotation: labelLayout.rotation,\n      silent: AxisBuilder.isLabelSilent(axisModel),\n      style: createTextStyle(textStyleModel, {\n        text: name,\n        font: textFont,\n        overflow: 'truncate',\n        width: maxWidth,\n        ellipsis: ellipsis,\n        fill: textStyleModel.getTextColor() || axisModel.get(['axisLine', 'lineStyle', 'color']),\n        align: textStyleModel.get('align') || labelLayout.textAlign,\n        verticalAlign: textStyleModel.get('verticalAlign') || labelLayout.textVerticalAlign\n      }),\n      z2: 1\n    });\n    textEl.tooltip = tooltipOpt && tooltipOpt.show ? extend({\n      content: name,\n      formatter: function () {\n        return name;\n      },\n      formatterParams: formatterParams\n    }, tooltipOpt) : null;\n    textEl.__fullText = name;\n    textEl.anid = 'name';\n\n    if (axisModel.get('triggerEvent')) {\n      var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\n      eventData.targetType = 'axisName';\n      eventData.name = name;\n      getECData(textEl).eventData = eventData;\n    }\n\n    transformGroup.add(textEl);\n    textEl.updateTransform();\n    group.add(textEl);\n    textEl.decomposeTransform();\n  }\n};\n\nfunction endTextLayout(rotation, textPosition, textRotate, extent) {\n  var rotationDiff = remRadian(textRotate - rotation);\n  var textAlign;\n  var textVerticalAlign;\n  var inverse = extent[0] > extent[1];\n  var onLeft = textPosition === 'start' && !inverse || textPosition !== 'start' && inverse;\n\n  if (isRadianAroundZero(rotationDiff - PI / 2)) {\n    textVerticalAlign = onLeft ? 'bottom' : 'top';\n    textAlign = 'center';\n  } else if (isRadianAroundZero(rotationDiff - PI * 1.5)) {\n    textVerticalAlign = onLeft ? 'top' : 'bottom';\n    textAlign = 'center';\n  } else {\n    textVerticalAlign = 'middle';\n\n    if (rotationDiff < PI * 1.5 && rotationDiff > PI / 2) {\n      textAlign = onLeft ? 'left' : 'right';\n    } else {\n      textAlign = onLeft ? 'right' : 'left';\n    }\n  }\n\n  return {\n    rotation: rotationDiff,\n    textAlign: textAlign,\n    textVerticalAlign: textVerticalAlign\n  };\n}\n\nfunction fixMinMaxLabelShow(axisModel, labelEls, tickEls) {\n  if (shouldShowAllLabels(axisModel.axis)) {\n    return;\n  }\n\n  var showMinLabel = axisModel.get(['axisLabel', 'showMinLabel']);\n  var showMaxLabel = axisModel.get(['axisLabel', 'showMaxLabel']);\n  labelEls = labelEls || [];\n  tickEls = tickEls || [];\n  var firstLabel = labelEls[0];\n  var nextLabel = labelEls[1];\n  var lastLabel = labelEls[labelEls.length - 1];\n  var prevLabel = labelEls[labelEls.length - 2];\n  var firstTick = tickEls[0];\n  var nextTick = tickEls[1];\n  var lastTick = tickEls[tickEls.length - 1];\n  var prevTick = tickEls[tickEls.length - 2];\n\n  if (showMinLabel === false) {\n    ignoreEl(firstLabel);\n    ignoreEl(firstTick);\n  } else if (isTwoLabelOverlapped(firstLabel, nextLabel)) {\n    if (showMinLabel) {\n      ignoreEl(nextLabel);\n      ignoreEl(nextTick);\n    } else {\n      ignoreEl(firstLabel);\n      ignoreEl(firstTick);\n    }\n  }\n\n  if (showMaxLabel === false) {\n    ignoreEl(lastLabel);\n    ignoreEl(lastTick);\n  } else if (isTwoLabelOverlapped(prevLabel, lastLabel)) {\n    if (showMaxLabel) {\n      ignoreEl(prevLabel);\n      ignoreEl(prevTick);\n    } else {\n      ignoreEl(lastLabel);\n      ignoreEl(lastTick);\n    }\n  }\n}\n\nfunction ignoreEl(el) {\n  el && (el.ignore = true);\n}\n\nfunction isTwoLabelOverlapped(current, next) {\n  var firstRect = current && current.getBoundingRect().clone();\n  var nextRect = next && next.getBoundingRect().clone();\n\n  if (!firstRect || !nextRect) {\n    return;\n  }\n\n  var mRotationBack = matrixUtil.identity([]);\n  matrixUtil.rotate(mRotationBack, mRotationBack, -current.rotation);\n  firstRect.applyTransform(matrixUtil.mul([], mRotationBack, current.getLocalTransform()));\n  nextRect.applyTransform(matrixUtil.mul([], mRotationBack, next.getLocalTransform()));\n  return firstRect.intersect(nextRect);\n}\n\nfunction isNameLocationCenter(nameLocation) {\n  return nameLocation === 'middle' || nameLocation === 'center';\n}\n\nfunction createTicks(ticksCoords, tickTransform, tickEndCoord, tickLineStyle, anidPrefix) {\n  var tickEls = [];\n  var pt1 = [];\n  var pt2 = [];\n\n  for (var i = 0; i < ticksCoords.length; i++) {\n    var tickCoord = ticksCoords[i].coord;\n    pt1[0] = tickCoord;\n    pt1[1] = 0;\n    pt2[0] = tickCoord;\n    pt2[1] = tickEndCoord;\n\n    if (tickTransform) {\n      v2ApplyTransform(pt1, pt1, tickTransform);\n      v2ApplyTransform(pt2, pt2, tickTransform);\n    }\n\n    var tickEl = new graphic.Line({\n      subPixelOptimize: true,\n      shape: {\n        x1: pt1[0],\n        y1: pt1[1],\n        x2: pt2[0],\n        y2: pt2[1]\n      },\n      style: tickLineStyle,\n      z2: 2,\n      autoBatch: true,\n      silent: true\n    });\n    tickEl.anid = anidPrefix + '_' + ticksCoords[i].tickValue;\n    tickEls.push(tickEl);\n  }\n\n  return tickEls;\n}\n\nfunction buildAxisMajorTicks(group, transformGroup, axisModel, opt) {\n  var axis = axisModel.axis;\n  var tickModel = axisModel.getModel('axisTick');\n  var shown = tickModel.get('show');\n\n  if (shown === 'auto' && opt.handleAutoShown) {\n    shown = opt.handleAutoShown('axisTick');\n  }\n\n  if (!shown || axis.scale.isBlank()) {\n    return;\n  }\n\n  var lineStyleModel = tickModel.getModel('lineStyle');\n  var tickEndCoord = opt.tickDirection * tickModel.get('length');\n  var ticksCoords = axis.getTicksCoords();\n  var ticksEls = createTicks(ticksCoords, transformGroup.transform, tickEndCoord, defaults(lineStyleModel.getLineStyle(), {\n    stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\n  }), 'ticks');\n\n  for (var i = 0; i < ticksEls.length; i++) {\n    group.add(ticksEls[i]);\n  }\n\n  return ticksEls;\n}\n\nfunction buildAxisMinorTicks(group, transformGroup, axisModel, tickDirection) {\n  var axis = axisModel.axis;\n  var minorTickModel = axisModel.getModel('minorTick');\n\n  if (!minorTickModel.get('show') || axis.scale.isBlank()) {\n    return;\n  }\n\n  var minorTicksCoords = axis.getMinorTicksCoords();\n\n  if (!minorTicksCoords.length) {\n    return;\n  }\n\n  var lineStyleModel = minorTickModel.getModel('lineStyle');\n  var tickEndCoord = tickDirection * minorTickModel.get('length');\n  var minorTickLineStyle = defaults(lineStyleModel.getLineStyle(), defaults(axisModel.getModel('axisTick').getLineStyle(), {\n    stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\n  }));\n\n  for (var i = 0; i < minorTicksCoords.length; i++) {\n    var minorTicksEls = createTicks(minorTicksCoords[i], transformGroup.transform, tickEndCoord, minorTickLineStyle, 'minorticks_' + i);\n\n    for (var k = 0; k < minorTicksEls.length; k++) {\n      group.add(minorTicksEls[k]);\n    }\n  }\n}\n\nfunction buildAxisLabel(group, transformGroup, axisModel, opt) {\n  var axis = axisModel.axis;\n  var show = retrieve(opt.axisLabelShow, axisModel.get(['axisLabel', 'show']));\n\n  if (!show || axis.scale.isBlank()) {\n    return;\n  }\n\n  var labelModel = axisModel.getModel('axisLabel');\n  var labelMargin = labelModel.get('margin');\n  var labels = axis.getViewLabels();\n  var labelRotation = (retrieve(opt.labelRotate, labelModel.get('rotate')) || 0) * PI / 180;\n  var labelLayout = AxisBuilder.innerTextLayout(opt.rotation, labelRotation, opt.labelDirection);\n  var rawCategoryData = axisModel.getCategories && axisModel.getCategories(true);\n  var labelEls = [];\n  var silent = AxisBuilder.isLabelSilent(axisModel);\n  var triggerEvent = axisModel.get('triggerEvent');\n  each(labels, function (labelItem, index) {\n    var tickValue = axis.scale.type === 'ordinal' ? axis.scale.getRawOrdinalNumber(labelItem.tickValue) : labelItem.tickValue;\n    var formattedLabel = labelItem.formattedLabel;\n    var rawLabel = labelItem.rawLabel;\n    var itemLabelModel = labelModel;\n\n    if (rawCategoryData && rawCategoryData[tickValue]) {\n      var rawCategoryItem = rawCategoryData[tickValue];\n\n      if (isObject(rawCategoryItem) && rawCategoryItem.textStyle) {\n        itemLabelModel = new Model(rawCategoryItem.textStyle, labelModel, axisModel.ecModel);\n      }\n    }\n\n    var textColor = itemLabelModel.getTextColor() || axisModel.get(['axisLine', 'lineStyle', 'color']);\n    var tickCoord = axis.dataToCoord(tickValue);\n    var textEl = new graphic.Text({\n      x: tickCoord,\n      y: opt.labelOffset + opt.labelDirection * labelMargin,\n      rotation: labelLayout.rotation,\n      silent: silent,\n      z2: 10,\n      style: createTextStyle(itemLabelModel, {\n        text: formattedLabel,\n        align: itemLabelModel.getShallow('align', true) || labelLayout.textAlign,\n        verticalAlign: itemLabelModel.getShallow('verticalAlign', true) || itemLabelModel.getShallow('baseline', true) || labelLayout.textVerticalAlign,\n        fill: typeof textColor === 'function' ? textColor(axis.type === 'category' ? rawLabel : axis.type === 'value' ? tickValue + '' : tickValue, index) : textColor\n      })\n    });\n    textEl.anid = 'label_' + tickValue;\n\n    if (triggerEvent) {\n      var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\n      eventData.targetType = 'axisLabel';\n      eventData.value = rawLabel;\n      getECData(textEl).eventData = eventData;\n    }\n\n    transformGroup.add(textEl);\n    textEl.updateTransform();\n    labelEls.push(textEl);\n    group.add(textEl);\n    textEl.decomposeTransform();\n  });\n  return labelEls;\n}\n\nexport default AxisBuilder;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Model from '../../model/Model';\nimport { each, curry, clone, defaults, isArray, indexOf } from 'zrender/lib/core/util';\nexport function collect(ecModel, api) {\n  var result = {\n    axesInfo: {},\n    seriesInvolved: false,\n    coordSysAxesInfo: {},\n    coordSysMap: {}\n  };\n  collectAxesInfo(result, ecModel, api);\n  result.seriesInvolved && collectSeriesInfo(result, ecModel);\n  return result;\n}\n\nfunction collectAxesInfo(result, ecModel, api) {\n  var globalTooltipModel = ecModel.getComponent('tooltip');\n  var globalAxisPointerModel = ecModel.getComponent('axisPointer');\n  var linksOption = globalAxisPointerModel.get('link', true) || [];\n  var linkGroups = [];\n  each(api.getCoordinateSystems(), function (coordSys) {\n    if (!coordSys.axisPointerEnabled) {\n      return;\n    }\n\n    var coordSysKey = makeKey(coordSys.model);\n    var axesInfoInCoordSys = result.coordSysAxesInfo[coordSysKey] = {};\n    result.coordSysMap[coordSysKey] = coordSys;\n    var coordSysModel = coordSys.model;\n    var baseTooltipModel = coordSysModel.getModel('tooltip', globalTooltipModel);\n    each(coordSys.getAxes(), curry(saveTooltipAxisInfo, false, null));\n\n    if (coordSys.getTooltipAxes && globalTooltipModel && baseTooltipModel.get('show')) {\n      var triggerAxis = baseTooltipModel.get('trigger') === 'axis';\n      var cross = baseTooltipModel.get(['axisPointer', 'type']) === 'cross';\n      var tooltipAxes = coordSys.getTooltipAxes(baseTooltipModel.get(['axisPointer', 'axis']));\n\n      if (triggerAxis || cross) {\n        each(tooltipAxes.baseAxes, curry(saveTooltipAxisInfo, cross ? 'cross' : true, triggerAxis));\n      }\n\n      if (cross) {\n        each(tooltipAxes.otherAxes, curry(saveTooltipAxisInfo, 'cross', false));\n      }\n    }\n\n    function saveTooltipAxisInfo(fromTooltip, triggerTooltip, axis) {\n      var axisPointerModel = axis.model.getModel('axisPointer', globalAxisPointerModel);\n      var axisPointerShow = axisPointerModel.get('show');\n\n      if (!axisPointerShow || axisPointerShow === 'auto' && !fromTooltip && !isHandleTrigger(axisPointerModel)) {\n        return;\n      }\n\n      if (triggerTooltip == null) {\n        triggerTooltip = axisPointerModel.get('triggerTooltip');\n      }\n\n      axisPointerModel = fromTooltip ? makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) : axisPointerModel;\n      var snap = axisPointerModel.get('snap');\n      var axisKey = makeKey(axis.model);\n      var involveSeries = triggerTooltip || snap || axis.type === 'category';\n      var axisInfo = result.axesInfo[axisKey] = {\n        key: axisKey,\n        axis: axis,\n        coordSys: coordSys,\n        axisPointerModel: axisPointerModel,\n        triggerTooltip: triggerTooltip,\n        involveSeries: involveSeries,\n        snap: snap,\n        useHandle: isHandleTrigger(axisPointerModel),\n        seriesModels: [],\n        linkGroup: null\n      };\n      axesInfoInCoordSys[axisKey] = axisInfo;\n      result.seriesInvolved = result.seriesInvolved || involveSeries;\n      var groupIndex = getLinkGroupIndex(linksOption, axis);\n\n      if (groupIndex != null) {\n        var linkGroup = linkGroups[groupIndex] || (linkGroups[groupIndex] = {\n          axesInfo: {}\n        });\n        linkGroup.axesInfo[axisKey] = axisInfo;\n        linkGroup.mapper = linksOption[groupIndex].mapper;\n        axisInfo.linkGroup = linkGroup;\n      }\n    }\n  });\n}\n\nfunction makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) {\n  var tooltipAxisPointerModel = baseTooltipModel.getModel('axisPointer');\n  var fields = ['type', 'snap', 'lineStyle', 'shadowStyle', 'label', 'animation', 'animationDurationUpdate', 'animationEasingUpdate', 'z'];\n  var volatileOption = {};\n  each(fields, function (field) {\n    volatileOption[field] = clone(tooltipAxisPointerModel.get(field));\n  });\n  volatileOption.snap = axis.type !== 'category' && !!triggerTooltip;\n\n  if (tooltipAxisPointerModel.get('type') === 'cross') {\n    volatileOption.type = 'line';\n  }\n\n  var labelOption = volatileOption.label || (volatileOption.label = {});\n  labelOption.show == null && (labelOption.show = false);\n\n  if (fromTooltip === 'cross') {\n    var tooltipAxisPointerLabelShow = tooltipAxisPointerModel.get(['label', 'show']);\n    labelOption.show = tooltipAxisPointerLabelShow != null ? tooltipAxisPointerLabelShow : true;\n\n    if (!triggerTooltip) {\n      var crossStyle = volatileOption.lineStyle = tooltipAxisPointerModel.get('crossStyle');\n      crossStyle && defaults(labelOption, crossStyle.textStyle);\n    }\n  }\n\n  return axis.model.getModel('axisPointer', new Model(volatileOption, globalAxisPointerModel, ecModel));\n}\n\nfunction collectSeriesInfo(result, ecModel) {\n  ecModel.eachSeries(function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n    var seriesTooltipTrigger = seriesModel.get(['tooltip', 'trigger'], true);\n    var seriesTooltipShow = seriesModel.get(['tooltip', 'show'], true);\n\n    if (!coordSys || seriesTooltipTrigger === 'none' || seriesTooltipTrigger === false || seriesTooltipTrigger === 'item' || seriesTooltipShow === false || seriesModel.get(['axisPointer', 'show'], true) === false) {\n      return;\n    }\n\n    each(result.coordSysAxesInfo[makeKey(coordSys.model)], function (axisInfo) {\n      var axis = axisInfo.axis;\n\n      if (coordSys.getAxis(axis.dim) === axis) {\n        axisInfo.seriesModels.push(seriesModel);\n        axisInfo.seriesDataCount == null && (axisInfo.seriesDataCount = 0);\n        axisInfo.seriesDataCount += seriesModel.getData().count();\n      }\n    });\n  });\n}\n\nfunction getLinkGroupIndex(linksOption, axis) {\n  var axisModel = axis.model;\n  var dim = axis.dim;\n\n  for (var i = 0; i < linksOption.length; i++) {\n    var linkOption = linksOption[i] || {};\n\n    if (checkPropInLink(linkOption[dim + 'AxisId'], axisModel.id) || checkPropInLink(linkOption[dim + 'AxisIndex'], axisModel.componentIndex) || checkPropInLink(linkOption[dim + 'AxisName'], axisModel.name)) {\n      return i;\n    }\n  }\n}\n\nfunction checkPropInLink(linkPropValue, axisPropValue) {\n  return linkPropValue === 'all' || isArray(linkPropValue) && indexOf(linkPropValue, axisPropValue) >= 0 || linkPropValue === axisPropValue;\n}\n\nexport function fixValue(axisModel) {\n  var axisInfo = getAxisInfo(axisModel);\n\n  if (!axisInfo) {\n    return;\n  }\n\n  var axisPointerModel = axisInfo.axisPointerModel;\n  var scale = axisInfo.axis.scale;\n  var option = axisPointerModel.option;\n  var status = axisPointerModel.get('status');\n  var value = axisPointerModel.get('value');\n\n  if (value != null) {\n    value = scale.parse(value);\n  }\n\n  var useHandle = isHandleTrigger(axisPointerModel);\n\n  if (status == null) {\n    option.status = useHandle ? 'show' : 'hide';\n  }\n\n  var extent = scale.getExtent().slice();\n  extent[0] > extent[1] && extent.reverse();\n\n  if (value == null || value > extent[1]) {\n    value = extent[1];\n  }\n\n  if (value < extent[0]) {\n    value = extent[0];\n  }\n\n  option.value = value;\n\n  if (useHandle) {\n    option.status = axisInfo.axis.scale.isBlank() ? 'hide' : 'show';\n  }\n}\nexport function getAxisInfo(axisModel) {\n  var coordSysAxesInfo = (axisModel.ecModel.getComponent('axisPointer') || {}).coordSysAxesInfo;\n  return coordSysAxesInfo && coordSysAxesInfo.axesInfo[makeKey(axisModel)];\n}\nexport function getAxisPointerModel(axisModel) {\n  var axisInfo = getAxisInfo(axisModel);\n  return axisInfo && axisInfo.axisPointerModel;\n}\n\nfunction isHandleTrigger(axisPointerModel) {\n  return !!axisPointerModel.get(['handle', 'show']);\n}\n\nexport function makeKey(model) {\n  return model.type + '||' + model.id;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as axisPointerModelHelper from '../axisPointer/modelHelper';\nimport ComponentView from '../../view/Component';\nvar axisPointerClazz = {};\n\nvar AxisView = function (_super) {\n  __extends(AxisView, _super);\n\n  function AxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = AxisView.type;\n    return _this;\n  }\n\n  AxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n    this.axisPointerClass && axisPointerModelHelper.fixValue(axisModel);\n\n    _super.prototype.render.apply(this, arguments);\n\n    this._doUpdateAxisPointerClass(axisModel, api, true);\n  };\n\n  AxisView.prototype.updateAxisPointer = function (axisModel, ecModel, api, payload) {\n    this._doUpdateAxisPointerClass(axisModel, api, false);\n  };\n\n  AxisView.prototype.remove = function (ecModel, api) {\n    var axisPointer = this._axisPointer;\n    axisPointer && axisPointer.remove(api);\n  };\n\n  AxisView.prototype.dispose = function (ecModel, api) {\n    this._disposeAxisPointer(api);\n\n    _super.prototype.dispose.apply(this, arguments);\n  };\n\n  AxisView.prototype._doUpdateAxisPointerClass = function (axisModel, api, forceRender) {\n    var Clazz = AxisView.getAxisPointerClass(this.axisPointerClass);\n\n    if (!Clazz) {\n      return;\n    }\n\n    var axisPointerModel = axisPointerModelHelper.getAxisPointerModel(axisModel);\n    axisPointerModel ? (this._axisPointer || (this._axisPointer = new Clazz())).render(axisModel, axisPointerModel, api, forceRender) : this._disposeAxisPointer(api);\n  };\n\n  AxisView.prototype._disposeAxisPointer = function (api) {\n    this._axisPointer && this._axisPointer.dispose(api);\n    this._axisPointer = null;\n  };\n\n  AxisView.registerAxisPointerClass = function (type, clazz) {\n    if (process.env.NODE_ENV !== 'production') {\n      if (axisPointerClazz[type]) {\n        throw new Error('axisPointer ' + type + ' exists');\n      }\n    }\n\n    axisPointerClazz[type] = clazz;\n  };\n\n  ;\n\n  AxisView.getAxisPointerClass = function (type) {\n    return type && axisPointerClazz[type];\n  };\n\n  ;\n  AxisView.type = 'axis';\n  return AxisView;\n}(ComponentView);\n\nexport default AxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\nexport function rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel) {\n  var axis = axisModel.axis;\n\n  if (axis.scale.isBlank()) {\n    return;\n  }\n\n  var splitAreaModel = axisModel.getModel('splitArea');\n  var areaStyleModel = splitAreaModel.getModel('areaStyle');\n  var areaColors = areaStyleModel.get('color');\n  var gridRect = gridModel.coordinateSystem.getRect();\n  var ticksCoords = axis.getTicksCoords({\n    tickModel: splitAreaModel,\n    clamp: true\n  });\n\n  if (!ticksCoords.length) {\n    return;\n  }\n\n  var areaColorsLen = areaColors.length;\n  var lastSplitAreaColors = inner(axisView).splitAreaColors;\n  var newSplitAreaColors = zrUtil.createHashMap();\n  var colorIndex = 0;\n\n  if (lastSplitAreaColors) {\n    for (var i = 0; i < ticksCoords.length; i++) {\n      var cIndex = lastSplitAreaColors.get(ticksCoords[i].tickValue);\n\n      if (cIndex != null) {\n        colorIndex = (cIndex + (areaColorsLen - 1) * i) % areaColorsLen;\n        break;\n      }\n    }\n  }\n\n  var prev = axis.toGlobalCoord(ticksCoords[0].coord);\n  var areaStyle = areaStyleModel.getAreaStyle();\n  areaColors = zrUtil.isArray(areaColors) ? areaColors : [areaColors];\n\n  for (var i = 1; i < ticksCoords.length; i++) {\n    var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n    var x = void 0;\n    var y = void 0;\n    var width = void 0;\n    var height = void 0;\n\n    if (axis.isHorizontal()) {\n      x = prev;\n      y = gridRect.y;\n      width = tickCoord - x;\n      height = gridRect.height;\n      prev = x + width;\n    } else {\n      x = gridRect.x;\n      y = prev;\n      width = gridRect.width;\n      height = tickCoord - y;\n      prev = y + height;\n    }\n\n    var tickValue = ticksCoords[i - 1].tickValue;\n    tickValue != null && newSplitAreaColors.set(tickValue, colorIndex);\n    axisGroup.add(new graphic.Rect({\n      anid: tickValue != null ? 'area_' + tickValue : null,\n      shape: {\n        x: x,\n        y: y,\n        width: width,\n        height: height\n      },\n      style: zrUtil.defaults({\n        fill: areaColors[colorIndex]\n      }, areaStyle),\n      autoBatch: true,\n      silent: true\n    }));\n    colorIndex = (colorIndex + 1) % areaColorsLen;\n  }\n\n  inner(axisView).splitAreaColors = newSplitAreaColors;\n}\nexport function rectCoordAxisHandleRemove(axisView) {\n  inner(axisView).splitAreaColors = null;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport AxisBuilder from './AxisBuilder';\nimport AxisView from './AxisView';\nimport * as cartesianAxisHelper from '../../coord/cartesian/cartesianAxisHelper';\nimport { rectCoordAxisBuildSplitArea, rectCoordAxisHandleRemove } from './axisSplitHelper';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitArea', 'splitLine', 'minorSplitLine'];\n\nvar CartesianAxisView = function (_super) {\n  __extends(CartesianAxisView, _super);\n\n  function CartesianAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CartesianAxisView.type;\n    _this.axisPointerClass = 'CartesianAxisPointer';\n    return _this;\n  }\n\n  CartesianAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n    this.group.removeAll();\n    var oldAxisGroup = this._axisGroup;\n    this._axisGroup = new graphic.Group();\n    this.group.add(this._axisGroup);\n\n    if (!axisModel.get('show')) {\n      return;\n    }\n\n    var gridModel = axisModel.getCoordSysModel();\n    var layout = cartesianAxisHelper.layout(gridModel, axisModel);\n    var axisBuilder = new AxisBuilder(axisModel, zrUtil.extend({\n      handleAutoShown: function (elementType) {\n        var cartesians = gridModel.coordinateSystem.getCartesians();\n\n        for (var i = 0; i < cartesians.length; i++) {\n          var otherAxisType = cartesians[i].getOtherAxis(axisModel.axis).type;\n\n          if (otherAxisType === 'value' || otherAxisType === 'log') {\n            return true;\n          }\n        }\n\n        return false;\n      }\n    }, layout));\n    zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n\n    this._axisGroup.add(axisBuilder.getGroup());\n\n    zrUtil.each(selfBuilderAttrs, function (name) {\n      if (axisModel.get([name, 'show'])) {\n        axisElementBuilders[name](this, this._axisGroup, axisModel, gridModel);\n      }\n    }, this);\n    graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel);\n\n    _super.prototype.render.call(this, axisModel, ecModel, api, payload);\n  };\n\n  CartesianAxisView.prototype.remove = function () {\n    rectCoordAxisHandleRemove(this);\n  };\n\n  CartesianAxisView.type = 'cartesianAxis';\n  return CartesianAxisView;\n}(AxisView);\n\nvar axisElementBuilders = {\n  splitLine: function (axisView, axisGroup, axisModel, gridModel) {\n    var axis = axisModel.axis;\n\n    if (axis.scale.isBlank()) {\n      return;\n    }\n\n    var splitLineModel = axisModel.getModel('splitLine');\n    var lineStyleModel = splitLineModel.getModel('lineStyle');\n    var lineColors = lineStyleModel.get('color');\n    lineColors = zrUtil.isArray(lineColors) ? lineColors : [lineColors];\n    var gridRect = gridModel.coordinateSystem.getRect();\n    var isHorizontal = axis.isHorizontal();\n    var lineCount = 0;\n    var ticksCoords = axis.getTicksCoords({\n      tickModel: splitLineModel\n    });\n    var p1 = [];\n    var p2 = [];\n    var lineStyle = lineStyleModel.getLineStyle();\n\n    for (var i = 0; i < ticksCoords.length; i++) {\n      var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n\n      if (isHorizontal) {\n        p1[0] = tickCoord;\n        p1[1] = gridRect.y;\n        p2[0] = tickCoord;\n        p2[1] = gridRect.y + gridRect.height;\n      } else {\n        p1[0] = gridRect.x;\n        p1[1] = tickCoord;\n        p2[0] = gridRect.x + gridRect.width;\n        p2[1] = tickCoord;\n      }\n\n      var colorIndex = lineCount++ % lineColors.length;\n      var tickValue = ticksCoords[i].tickValue;\n      axisGroup.add(new graphic.Line({\n        anid: tickValue != null ? 'line_' + ticksCoords[i].tickValue : null,\n        subPixelOptimize: true,\n        autoBatch: true,\n        shape: {\n          x1: p1[0],\n          y1: p1[1],\n          x2: p2[0],\n          y2: p2[1]\n        },\n        style: zrUtil.defaults({\n          stroke: lineColors[colorIndex]\n        }, lineStyle),\n        silent: true\n      }));\n    }\n  },\n  minorSplitLine: function (axisView, axisGroup, axisModel, gridModel) {\n    var axis = axisModel.axis;\n    var minorSplitLineModel = axisModel.getModel('minorSplitLine');\n    var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\n    var gridRect = gridModel.coordinateSystem.getRect();\n    var isHorizontal = axis.isHorizontal();\n    var minorTicksCoords = axis.getMinorTicksCoords();\n\n    if (!minorTicksCoords.length) {\n      return;\n    }\n\n    var p1 = [];\n    var p2 = [];\n    var lineStyle = lineStyleModel.getLineStyle();\n\n    for (var i = 0; i < minorTicksCoords.length; i++) {\n      for (var k = 0; k < minorTicksCoords[i].length; k++) {\n        var tickCoord = axis.toGlobalCoord(minorTicksCoords[i][k].coord);\n\n        if (isHorizontal) {\n          p1[0] = tickCoord;\n          p1[1] = gridRect.y;\n          p2[0] = tickCoord;\n          p2[1] = gridRect.y + gridRect.height;\n        } else {\n          p1[0] = gridRect.x;\n          p1[1] = tickCoord;\n          p2[0] = gridRect.x + gridRect.width;\n          p2[1] = tickCoord;\n        }\n\n        axisGroup.add(new graphic.Line({\n          anid: 'minor_line_' + minorTicksCoords[i][k].tickValue,\n          subPixelOptimize: true,\n          autoBatch: true,\n          shape: {\n            x1: p1[0],\n            y1: p1[1],\n            x2: p2[0],\n            y2: p2[1]\n          },\n          style: lineStyle,\n          silent: true\n        }));\n      }\n    }\n  },\n  splitArea: function (axisView, axisGroup, axisModel, gridModel) {\n    rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel);\n  }\n};\n\nvar CartesianXAxisView = function (_super) {\n  __extends(CartesianXAxisView, _super);\n\n  function CartesianXAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CartesianXAxisView.type;\n    return _this;\n  }\n\n  CartesianXAxisView.type = 'xAxis';\n  return CartesianXAxisView;\n}(CartesianAxisView);\n\nexport { CartesianXAxisView };\n\nvar CartesianYAxisView = function (_super) {\n  __extends(CartesianYAxisView, _super);\n\n  function CartesianYAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CartesianXAxisView.type;\n    return _this;\n  }\n\n  CartesianYAxisView.type = 'yAxis';\n  return CartesianYAxisView;\n}(CartesianAxisView);\n\nexport { CartesianYAxisView };\nexport default CartesianAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component';\nimport GridModel from '../../coord/cartesian/GridModel';\nimport { Rect } from '../../util/graphic';\nimport { defaults } from 'zrender/lib/core/util';\nimport { CartesianAxisModel } from '../../coord/cartesian/AxisModel';\nimport axisModelCreator from '../../coord/axisModelCreator';\nimport Grid from '../../coord/cartesian/Grid';\nimport { CartesianXAxisView, CartesianYAxisView } from '../axis/CartesianAxisView';\n\nvar GridView = function (_super) {\n  __extends(GridView, _super);\n\n  function GridView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'grid';\n    return _this;\n  }\n\n  GridView.prototype.render = function (gridModel, ecModel) {\n    this.group.removeAll();\n\n    if (gridModel.get('show')) {\n      this.group.add(new Rect({\n        shape: gridModel.coordinateSystem.getRect(),\n        style: defaults({\n          fill: gridModel.get('backgroundColor')\n        }, gridModel.getItemStyle()),\n        silent: true,\n        z2: -1\n      }));\n    }\n  };\n\n  GridView.type = 'grid';\n  return GridView;\n}(ComponentView);\n\nvar extraOption = {\n  offset: 0\n};\nexport function install(registers) {\n  registers.registerComponentView(GridView);\n  registers.registerComponentModel(GridModel);\n  registers.registerCoordinateSystem('cartesian2d', Grid);\n  axisModelCreator(registers, 'x', CartesianAxisModel, extraOption);\n  axisModelCreator(registers, 'y', CartesianAxisModel, extraOption);\n  registers.registerComponentView(CartesianXAxisView);\n  registers.registerComponentView(CartesianYAxisView);\n  registers.registerPreprocessor(function (option) {\n    if (option.xAxis && option.yAxis && !option.grid) {\n      option.grid = {};\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport ScatterSeriesModel from './ScatterSeries';\nimport ScatterView from './ScatterView';\nimport { install as installGridSimple } from '../../component/grid/installSimple';\nimport layoutPoints from '../../layout/points';\nexport function install(registers) {\n  use(installGridSimple);\n  registers.registerSeriesModel(ScatterSeriesModel);\n  registers.registerChartView(ScatterView);\n  registers.registerLayout(layoutPoints('scatter'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function radarLayout(ecModel) {\n  ecModel.eachSeriesByType('radar', function (seriesModel) {\n    var data = seriesModel.getData();\n    var points = [];\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (!coordSys) {\n      return;\n    }\n\n    var axes = coordSys.getIndicatorAxes();\n    zrUtil.each(axes, function (axis, axisIndex) {\n      data.each(data.mapDimension(axes[axisIndex].dim), function (val, dataIndex) {\n        points[dataIndex] = points[dataIndex] || [];\n        var point = coordSys.dataToPoint(val, axisIndex);\n        points[dataIndex][axisIndex] = isValidPoint(point) ? point : getValueMissingPoint(coordSys);\n      });\n    });\n    data.each(function (idx) {\n      var firstPoint = zrUtil.find(points[idx], function (point) {\n        return isValidPoint(point);\n      }) || getValueMissingPoint(coordSys);\n      points[idx].push(firstPoint.slice());\n      data.setItemLayout(idx, points[idx]);\n    });\n  });\n}\n\nfunction isValidPoint(point) {\n  return !isNaN(point[0]) && !isNaN(point[1]);\n}\n\nfunction getValueMissingPoint(coordSys) {\n  return [coordSys.cx, coordSys.cy];\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function radarBackwardCompat(option) {\n  var polarOptArr = option.polar;\n\n  if (polarOptArr) {\n    if (!zrUtil.isArray(polarOptArr)) {\n      polarOptArr = [polarOptArr];\n    }\n\n    var polarNotRadar_1 = [];\n    zrUtil.each(polarOptArr, function (polarOpt, idx) {\n      if (polarOpt.indicator) {\n        if (polarOpt.type && !polarOpt.shape) {\n          polarOpt.shape = polarOpt.type;\n        }\n\n        option.radar = option.radar || [];\n\n        if (!zrUtil.isArray(option.radar)) {\n          option.radar = [option.radar];\n        }\n\n        option.radar.push(polarOpt);\n      } else {\n        polarNotRadar_1.push(polarOpt);\n      }\n    });\n    option.polar = polarNotRadar_1;\n  }\n\n  zrUtil.each(option.series, function (seriesOpt) {\n    if (seriesOpt && seriesOpt.type === 'radar' && seriesOpt.polarIndex) {\n      seriesOpt.radarIndex = seriesOpt.polarIndex;\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as symbolUtil from '../../util/symbol';\nimport ChartView from '../../view/Chart';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport ZRImage from 'zrender/lib/graphic/Image';\n\nfunction normalizeSymbolSize(symbolSize) {\n  if (!zrUtil.isArray(symbolSize)) {\n    symbolSize = [+symbolSize, +symbolSize];\n  }\n\n  return symbolSize;\n}\n\nvar RadarView = function (_super) {\n  __extends(RadarView, _super);\n\n  function RadarView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = RadarView.type;\n    return _this;\n  }\n\n  RadarView.prototype.render = function (seriesModel, ecModel, api) {\n    var polar = seriesModel.coordinateSystem;\n    var group = this.group;\n    var data = seriesModel.getData();\n    var oldData = this._data;\n\n    function createSymbol(data, idx) {\n      var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\n\n      if (symbolType === 'none') {\n        return;\n      }\n\n      var symbolSize = normalizeSymbolSize(data.getItemVisual(idx, 'symbolSize'));\n      var symbolPath = symbolUtil.createSymbol(symbolType, -1, -1, 2, 2);\n      var symbolRotate = data.getItemVisual(idx, 'symbolRotate') || 0;\n      symbolPath.attr({\n        style: {\n          strokeNoScale: true\n        },\n        z2: 100,\n        scaleX: symbolSize[0] / 2,\n        scaleY: symbolSize[1] / 2,\n        rotation: symbolRotate * Math.PI / 180 || 0\n      });\n      return symbolPath;\n    }\n\n    function updateSymbols(oldPoints, newPoints, symbolGroup, data, idx, isInit) {\n      symbolGroup.removeAll();\n\n      for (var i = 0; i < newPoints.length - 1; i++) {\n        var symbolPath = createSymbol(data, idx);\n\n        if (symbolPath) {\n          symbolPath.__dimIdx = i;\n\n          if (oldPoints[i]) {\n            symbolPath.setPosition(oldPoints[i]);\n            graphic[isInit ? 'initProps' : 'updateProps'](symbolPath, {\n              x: newPoints[i][0],\n              y: newPoints[i][1]\n            }, seriesModel, idx);\n          } else {\n            symbolPath.setPosition(newPoints[i]);\n          }\n\n          symbolGroup.add(symbolPath);\n        }\n      }\n    }\n\n    function getInitialPoints(points) {\n      return zrUtil.map(points, function (pt) {\n        return [polar.cx, polar.cy];\n      });\n    }\n\n    data.diff(oldData).add(function (idx) {\n      var points = data.getItemLayout(idx);\n\n      if (!points) {\n        return;\n      }\n\n      var polygon = new graphic.Polygon();\n      var polyline = new graphic.Polyline();\n      var target = {\n        shape: {\n          points: points\n        }\n      };\n      polygon.shape.points = getInitialPoints(points);\n      polyline.shape.points = getInitialPoints(points);\n      graphic.initProps(polygon, target, seriesModel, idx);\n      graphic.initProps(polyline, target, seriesModel, idx);\n      var itemGroup = new graphic.Group();\n      var symbolGroup = new graphic.Group();\n      itemGroup.add(polyline);\n      itemGroup.add(polygon);\n      itemGroup.add(symbolGroup);\n      updateSymbols(polyline.shape.points, points, symbolGroup, data, idx, true);\n      data.setItemGraphicEl(idx, itemGroup);\n    }).update(function (newIdx, oldIdx) {\n      var itemGroup = oldData.getItemGraphicEl(oldIdx);\n      var polyline = itemGroup.childAt(0);\n      var polygon = itemGroup.childAt(1);\n      var symbolGroup = itemGroup.childAt(2);\n      var target = {\n        shape: {\n          points: data.getItemLayout(newIdx)\n        }\n      };\n\n      if (!target.shape.points) {\n        return;\n      }\n\n      updateSymbols(polyline.shape.points, target.shape.points, symbolGroup, data, newIdx, false);\n      graphic.updateProps(polyline, target, seriesModel);\n      graphic.updateProps(polygon, target, seriesModel);\n      data.setItemGraphicEl(newIdx, itemGroup);\n    }).remove(function (idx) {\n      group.remove(oldData.getItemGraphicEl(idx));\n    }).execute();\n    data.eachItemGraphicEl(function (itemGroup, idx) {\n      var itemModel = data.getItemModel(idx);\n      var polyline = itemGroup.childAt(0);\n      var polygon = itemGroup.childAt(1);\n      var symbolGroup = itemGroup.childAt(2);\n      var itemStyle = data.getItemVisual(idx, 'style');\n      var color = itemStyle.fill;\n      group.add(itemGroup);\n      polyline.useStyle(zrUtil.defaults(itemModel.getModel('lineStyle').getLineStyle(), {\n        fill: 'none',\n        stroke: color\n      }));\n      setStatesStylesFromModel(polyline, itemModel, 'lineStyle');\n      setStatesStylesFromModel(polygon, itemModel, 'areaStyle');\n      var areaStyleModel = itemModel.getModel('areaStyle');\n      var polygonIgnore = areaStyleModel.isEmpty() && areaStyleModel.parentModel.isEmpty();\n      polygon.ignore = polygonIgnore;\n      zrUtil.each(['emphasis', 'select', 'blur'], function (stateName) {\n        var stateModel = itemModel.getModel([stateName, 'areaStyle']);\n        var stateIgnore = stateModel.isEmpty() && stateModel.parentModel.isEmpty();\n        polygon.ensureState(stateName).ignore = stateIgnore && polygonIgnore;\n      });\n      polygon.useStyle(zrUtil.defaults(areaStyleModel.getAreaStyle(), {\n        fill: color,\n        opacity: 0.7,\n        decal: itemStyle.decal\n      }));\n      var emphasisModel = itemModel.getModel('emphasis');\n      var itemHoverStyle = emphasisModel.getModel('itemStyle').getItemStyle();\n      symbolGroup.eachChild(function (symbolPath) {\n        if (symbolPath instanceof ZRImage) {\n          var pathStyle = symbolPath.style;\n          symbolPath.useStyle(zrUtil.extend({\n            image: pathStyle.image,\n            x: pathStyle.x,\n            y: pathStyle.y,\n            width: pathStyle.width,\n            height: pathStyle.height\n          }, itemStyle));\n        } else {\n          symbolPath.useStyle(itemStyle);\n          symbolPath.setColor(color);\n        }\n\n        var pathEmphasisState = symbolPath.ensureState('emphasis');\n        pathEmphasisState.style = zrUtil.clone(itemHoverStyle);\n        var defaultText = data.get(data.dimensions[symbolPath.__dimIdx], idx);\n        (defaultText == null || isNaN(defaultText)) && (defaultText = '');\n        setLabelStyle(symbolPath, getLabelStatesModels(itemModel), {\n          labelFetcher: data.hostModel,\n          labelDataIndex: idx,\n          labelDimIndex: symbolPath.__dimIdx,\n          defaultText: defaultText,\n          inheritColor: color,\n          defaultOpacity: itemStyle.opacity\n        });\n      });\n      enableHoverEmphasis(itemGroup, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n    });\n    this._data = data;\n  };\n\n  RadarView.prototype.remove = function () {\n    this.group.removeAll();\n    this._data = null;\n  };\n\n  RadarView.type = 'radar';\n  return RadarView;\n}(ChartView);\n\nexport default RadarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport createListSimply from '../helper/createListSimply';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider';\nimport { createTooltipMarkup, retrieveVisualColorForTooltipMarker } from '../../component/tooltip/tooltipMarkup';\n\nvar RadarSeriesModel = function (_super) {\n  __extends(RadarSeriesModel, _super);\n\n  function RadarSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = RadarSeriesModel.type;\n    _this.useColorPaletteOnData = true;\n    _this.hasSymbolVisual = true;\n    return _this;\n  }\n\n  RadarSeriesModel.prototype.init = function (option) {\n    _super.prototype.init.apply(this, arguments);\n\n    this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));\n  };\n\n  RadarSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListSimply(this, {\n      generateCoord: 'indicator_',\n      generateCoordCount: Infinity\n    });\n  };\n\n  RadarSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var data = this.getData();\n    var coordSys = this.coordinateSystem;\n    var indicatorAxes = coordSys.getIndicatorAxes();\n    var name = this.getData().getName(dataIndex);\n    var nameToDisplay = name === '' ? this.name : name;\n    var markerColor = retrieveVisualColorForTooltipMarker(this, dataIndex);\n    return createTooltipMarkup('section', {\n      header: nameToDisplay,\n      sortBlocks: true,\n      blocks: zrUtil.map(indicatorAxes, function (axis) {\n        var val = data.get(data.mapDimension(axis.dim), dataIndex);\n        return createTooltipMarkup('nameValue', {\n          markerType: 'subItem',\n          markerColor: markerColor,\n          name: axis.name,\n          value: val,\n          sortParam: val\n        });\n      })\n    });\n  };\n\n  RadarSeriesModel.prototype.getTooltipPosition = function (dataIndex) {\n    if (dataIndex != null) {\n      var data_1 = this.getData();\n      var coordSys = this.coordinateSystem;\n      var values = data_1.getValues(zrUtil.map(coordSys.dimensions, function (dim) {\n        return data_1.mapDimension(dim);\n      }), dataIndex);\n\n      for (var i = 0, len = values.length; i < len; i++) {\n        if (!isNaN(values[i])) {\n          var indicatorAxes = coordSys.getIndicatorAxes();\n          return coordSys.coordToPoint(indicatorAxes[i].dataToCoord(values[i]), i);\n        }\n      }\n    }\n  };\n\n  RadarSeriesModel.type = 'series.radar';\n  RadarSeriesModel.dependencies = ['radar'];\n  RadarSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'radar',\n    legendHoverLink: true,\n    radarIndex: 0,\n    lineStyle: {\n      width: 2,\n      type: 'solid'\n    },\n    label: {\n      position: 'top'\n    },\n    symbol: 'emptyCircle',\n    symbolSize: 4\n  };\n  return RadarSeriesModel;\n}(SeriesModel);\n\nexport default RadarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport axisDefault from '../axisDefault';\nimport Model from '../../model/Model';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin';\nimport ComponentModel from '../../model/Component';\nvar valueAxisDefault = axisDefault.value;\n\nfunction defaultsShow(opt, show) {\n  return zrUtil.defaults({\n    show: show\n  }, opt);\n}\n\nvar RadarModel = function (_super) {\n  __extends(RadarModel, _super);\n\n  function RadarModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = RadarModel.type;\n    return _this;\n  }\n\n  RadarModel.prototype.optionUpdated = function () {\n    var boundaryGap = this.get('boundaryGap');\n    var splitNumber = this.get('splitNumber');\n    var scale = this.get('scale');\n    var axisLine = this.get('axisLine');\n    var axisTick = this.get('axisTick');\n    var axisLabel = this.get('axisLabel');\n    var nameTextStyle = this.get('axisName');\n    var showName = this.get(['axisName', 'show']);\n    var nameFormatter = this.get(['axisName', 'formatter']);\n    var nameGap = this.get('axisNameGap');\n    var triggerEvent = this.get('triggerEvent');\n    var indicatorModels = zrUtil.map(this.get('indicator') || [], function (indicatorOpt) {\n      if (indicatorOpt.max != null && indicatorOpt.max > 0 && !indicatorOpt.min) {\n        indicatorOpt.min = 0;\n      } else if (indicatorOpt.min != null && indicatorOpt.min < 0 && !indicatorOpt.max) {\n        indicatorOpt.max = 0;\n      }\n\n      var iNameTextStyle = nameTextStyle;\n\n      if (indicatorOpt.color != null) {\n        iNameTextStyle = zrUtil.defaults({\n          color: indicatorOpt.color\n        }, nameTextStyle);\n      }\n\n      var innerIndicatorOpt = zrUtil.merge(zrUtil.clone(indicatorOpt), {\n        boundaryGap: boundaryGap,\n        splitNumber: splitNumber,\n        scale: scale,\n        axisLine: axisLine,\n        axisTick: axisTick,\n        axisLabel: axisLabel,\n        name: indicatorOpt.text,\n        nameLocation: 'end',\n        nameGap: nameGap,\n        nameTextStyle: iNameTextStyle,\n        triggerEvent: triggerEvent\n      }, false);\n\n      if (!showName) {\n        innerIndicatorOpt.name = '';\n      }\n\n      if (typeof nameFormatter === 'string') {\n        var indName = innerIndicatorOpt.name;\n        innerIndicatorOpt.name = nameFormatter.replace('{value}', indName != null ? indName : '');\n      } else if (typeof nameFormatter === 'function') {\n        innerIndicatorOpt.name = nameFormatter(innerIndicatorOpt.name, innerIndicatorOpt);\n      }\n\n      var model = new Model(innerIndicatorOpt, null, this.ecModel);\n      zrUtil.mixin(model, AxisModelCommonMixin.prototype);\n      model.mainType = 'radar';\n      model.componentIndex = this.componentIndex;\n      return model;\n    }, this);\n    this._indicatorModels = indicatorModels;\n  };\n\n  RadarModel.prototype.getIndicatorModels = function () {\n    return this._indicatorModels;\n  };\n\n  RadarModel.type = 'radar';\n  RadarModel.defaultOption = {\n    zlevel: 0,\n    z: 0,\n    center: ['50%', '50%'],\n    radius: '75%',\n    startAngle: 90,\n    axisName: {\n      show: true\n    },\n    boundaryGap: [0, 0],\n    splitNumber: 5,\n    axisNameGap: 15,\n    scale: false,\n    shape: 'polygon',\n    axisLine: zrUtil.merge({\n      lineStyle: {\n        color: '#bbb'\n      }\n    }, valueAxisDefault.axisLine),\n    axisLabel: defaultsShow(valueAxisDefault.axisLabel, false),\n    axisTick: defaultsShow(valueAxisDefault.axisTick, false),\n    splitLine: defaultsShow(valueAxisDefault.splitLine, true),\n    splitArea: defaultsShow(valueAxisDefault.splitArea, true),\n    indicator: []\n  };\n  return RadarModel;\n}(ComponentModel);\n\nexport default RadarModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport AxisBuilder from '../axis/AxisBuilder';\nimport * as graphic from '../../util/graphic';\nimport ComponentView from '../../view/Component';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\n\nvar RadarView = function (_super) {\n  __extends(RadarView, _super);\n\n  function RadarView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = RadarView.type;\n    return _this;\n  }\n\n  RadarView.prototype.render = function (radarModel, ecModel, api) {\n    var group = this.group;\n    group.removeAll();\n\n    this._buildAxes(radarModel);\n\n    this._buildSplitLineAndArea(radarModel);\n  };\n\n  RadarView.prototype._buildAxes = function (radarModel) {\n    var radar = radarModel.coordinateSystem;\n    var indicatorAxes = radar.getIndicatorAxes();\n    var axisBuilders = zrUtil.map(indicatorAxes, function (indicatorAxis) {\n      var axisBuilder = new AxisBuilder(indicatorAxis.model, {\n        position: [radar.cx, radar.cy],\n        rotation: indicatorAxis.angle,\n        labelDirection: -1,\n        tickDirection: -1,\n        nameDirection: 1\n      });\n      return axisBuilder;\n    });\n    zrUtil.each(axisBuilders, function (axisBuilder) {\n      zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n      this.group.add(axisBuilder.getGroup());\n    }, this);\n  };\n\n  RadarView.prototype._buildSplitLineAndArea = function (radarModel) {\n    var radar = radarModel.coordinateSystem;\n    var indicatorAxes = radar.getIndicatorAxes();\n\n    if (!indicatorAxes.length) {\n      return;\n    }\n\n    var shape = radarModel.get('shape');\n    var splitLineModel = radarModel.getModel('splitLine');\n    var splitAreaModel = radarModel.getModel('splitArea');\n    var lineStyleModel = splitLineModel.getModel('lineStyle');\n    var areaStyleModel = splitAreaModel.getModel('areaStyle');\n    var showSplitLine = splitLineModel.get('show');\n    var showSplitArea = splitAreaModel.get('show');\n    var splitLineColors = lineStyleModel.get('color');\n    var splitAreaColors = areaStyleModel.get('color');\n    var splitLineColorsArr = zrUtil.isArray(splitLineColors) ? splitLineColors : [splitLineColors];\n    var splitAreaColorsArr = zrUtil.isArray(splitAreaColors) ? splitAreaColors : [splitAreaColors];\n    var splitLines = [];\n    var splitAreas = [];\n\n    function getColorIndex(areaOrLine, areaOrLineColorList, idx) {\n      var colorIndex = idx % areaOrLineColorList.length;\n      areaOrLine[colorIndex] = areaOrLine[colorIndex] || [];\n      return colorIndex;\n    }\n\n    if (shape === 'circle') {\n      var ticksRadius = indicatorAxes[0].getTicksCoords();\n      var cx = radar.cx;\n      var cy = radar.cy;\n\n      for (var i = 0; i < ticksRadius.length; i++) {\n        if (showSplitLine) {\n          var colorIndex = getColorIndex(splitLines, splitLineColorsArr, i);\n          splitLines[colorIndex].push(new graphic.Circle({\n            shape: {\n              cx: cx,\n              cy: cy,\n              r: ticksRadius[i].coord\n            }\n          }));\n        }\n\n        if (showSplitArea && i < ticksRadius.length - 1) {\n          var colorIndex = getColorIndex(splitAreas, splitAreaColorsArr, i);\n          splitAreas[colorIndex].push(new graphic.Ring({\n            shape: {\n              cx: cx,\n              cy: cy,\n              r0: ticksRadius[i].coord,\n              r: ticksRadius[i + 1].coord\n            }\n          }));\n        }\n      }\n    } else {\n      var realSplitNumber_1;\n      var axesTicksPoints = zrUtil.map(indicatorAxes, function (indicatorAxis, idx) {\n        var ticksCoords = indicatorAxis.getTicksCoords();\n        realSplitNumber_1 = realSplitNumber_1 == null ? ticksCoords.length - 1 : Math.min(ticksCoords.length - 1, realSplitNumber_1);\n        return zrUtil.map(ticksCoords, function (tickCoord) {\n          return radar.coordToPoint(tickCoord.coord, idx);\n        });\n      });\n      var prevPoints = [];\n\n      for (var i = 0; i <= realSplitNumber_1; i++) {\n        var points = [];\n\n        for (var j = 0; j < indicatorAxes.length; j++) {\n          points.push(axesTicksPoints[j][i]);\n        }\n\n        if (points[0]) {\n          points.push(points[0].slice());\n        } else {\n          if (process.env.NODE_ENV !== 'production') {\n            console.error('Can\\'t draw value axis ' + i);\n          }\n        }\n\n        if (showSplitLine) {\n          var colorIndex = getColorIndex(splitLines, splitLineColorsArr, i);\n          splitLines[colorIndex].push(new graphic.Polyline({\n            shape: {\n              points: points\n            }\n          }));\n        }\n\n        if (showSplitArea && prevPoints) {\n          var colorIndex = getColorIndex(splitAreas, splitAreaColorsArr, i - 1);\n          splitAreas[colorIndex].push(new graphic.Polygon({\n            shape: {\n              points: points.concat(prevPoints)\n            }\n          }));\n        }\n\n        prevPoints = points.slice().reverse();\n      }\n    }\n\n    var lineStyle = lineStyleModel.getLineStyle();\n    var areaStyle = areaStyleModel.getAreaStyle();\n    zrUtil.each(splitAreas, function (splitAreas, idx) {\n      this.group.add(graphic.mergePath(splitAreas, {\n        style: zrUtil.defaults({\n          stroke: 'none',\n          fill: splitAreaColorsArr[idx % splitAreaColorsArr.length]\n        }, areaStyle),\n        silent: true\n      }));\n    }, this);\n    zrUtil.each(splitLines, function (splitLines, idx) {\n      this.group.add(graphic.mergePath(splitLines, {\n        style: zrUtil.defaults({\n          fill: 'none',\n          stroke: splitLineColorsArr[idx % splitLineColorsArr.length]\n        }, lineStyle),\n        silent: true\n      }));\n    }, this);\n  };\n\n  RadarView.type = 'radar';\n  return RadarView;\n}(ComponentView);\n\nexport default RadarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis';\n\nvar IndicatorAxis = function (_super) {\n  __extends(IndicatorAxis, _super);\n\n  function IndicatorAxis(dim, scale, radiusExtent) {\n    var _this = _super.call(this, dim, scale, radiusExtent) || this;\n\n    _this.type = 'value';\n    _this.angle = 0;\n    _this.name = '';\n    return _this;\n  }\n\n  return IndicatorAxis;\n}(Axis);\n\nexport default IndicatorAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport IndicatorAxis from './IndicatorAxis';\nimport IntervalScale from '../../scale/Interval';\nimport * as numberUtil from '../../util/number';\nimport { getScaleExtent, niceScaleExtent } from '../axisHelper';\nimport { parseAxisModelMinMax } from '../scaleRawExtentInfo';\nimport { map, each } from 'zrender/lib/core/util';\n\nvar Radar = function () {\n  function Radar(radarModel, ecModel, api) {\n    this.dimensions = [];\n    this._model = radarModel;\n    this._indicatorAxes = map(radarModel.getIndicatorModels(), function (indicatorModel, idx) {\n      var dim = 'indicator_' + idx;\n      var indicatorAxis = new IndicatorAxis(dim, new IntervalScale());\n      indicatorAxis.name = indicatorModel.get('name');\n      indicatorAxis.model = indicatorModel;\n      indicatorModel.axis = indicatorAxis;\n      this.dimensions.push(dim);\n      return indicatorAxis;\n    }, this);\n    this.resize(radarModel, api);\n  }\n\n  Radar.prototype.getIndicatorAxes = function () {\n    return this._indicatorAxes;\n  };\n\n  Radar.prototype.dataToPoint = function (value, indicatorIndex) {\n    var indicatorAxis = this._indicatorAxes[indicatorIndex];\n    return this.coordToPoint(indicatorAxis.dataToCoord(value), indicatorIndex);\n  };\n\n  Radar.prototype.coordToPoint = function (coord, indicatorIndex) {\n    var indicatorAxis = this._indicatorAxes[indicatorIndex];\n    var angle = indicatorAxis.angle;\n    var x = this.cx + coord * Math.cos(angle);\n    var y = this.cy - coord * Math.sin(angle);\n    return [x, y];\n  };\n\n  Radar.prototype.pointToData = function (pt) {\n    var dx = pt[0] - this.cx;\n    var dy = pt[1] - this.cy;\n    var radius = Math.sqrt(dx * dx + dy * dy);\n    dx /= radius;\n    dy /= radius;\n    var radian = Math.atan2(-dy, dx);\n    var minRadianDiff = Infinity;\n    var closestAxis;\n    var closestAxisIdx = -1;\n\n    for (var i = 0; i < this._indicatorAxes.length; i++) {\n      var indicatorAxis = this._indicatorAxes[i];\n      var diff = Math.abs(radian - indicatorAxis.angle);\n\n      if (diff < minRadianDiff) {\n        closestAxis = indicatorAxis;\n        closestAxisIdx = i;\n        minRadianDiff = diff;\n      }\n    }\n\n    return [closestAxisIdx, +(closestAxis && closestAxis.coordToData(radius))];\n  };\n\n  Radar.prototype.resize = function (radarModel, api) {\n    var center = radarModel.get('center');\n    var viewWidth = api.getWidth();\n    var viewHeight = api.getHeight();\n    var viewSize = Math.min(viewWidth, viewHeight) / 2;\n    this.cx = numberUtil.parsePercent(center[0], viewWidth);\n    this.cy = numberUtil.parsePercent(center[1], viewHeight);\n    this.startAngle = radarModel.get('startAngle') * Math.PI / 180;\n    var radius = radarModel.get('radius');\n\n    if (typeof radius === 'string' || typeof radius === 'number') {\n      radius = [0, radius];\n    }\n\n    this.r0 = numberUtil.parsePercent(radius[0], viewSize);\n    this.r = numberUtil.parsePercent(radius[1], viewSize);\n    each(this._indicatorAxes, function (indicatorAxis, idx) {\n      indicatorAxis.setExtent(this.r0, this.r);\n      var angle = this.startAngle + idx * Math.PI * 2 / this._indicatorAxes.length;\n      angle = Math.atan2(Math.sin(angle), Math.cos(angle));\n      indicatorAxis.angle = angle;\n    }, this);\n  };\n\n  Radar.prototype.update = function (ecModel, api) {\n    var indicatorAxes = this._indicatorAxes;\n    var radarModel = this._model;\n    each(indicatorAxes, function (indicatorAxis) {\n      indicatorAxis.scale.setExtent(Infinity, -Infinity);\n    });\n    ecModel.eachSeriesByType('radar', function (radarSeries, idx) {\n      if (radarSeries.get('coordinateSystem') !== 'radar' || ecModel.getComponent('radar', radarSeries.get('radarIndex')) !== radarModel) {\n        return;\n      }\n\n      var data = radarSeries.getData();\n      each(indicatorAxes, function (indicatorAxis) {\n        indicatorAxis.scale.unionExtentFromData(data, data.mapDimension(indicatorAxis.dim));\n      });\n    }, this);\n    var splitNumber = radarModel.get('splitNumber');\n\n    function increaseInterval(interval) {\n      var exp10 = Math.pow(10, Math.floor(Math.log(interval) / Math.LN10));\n      var f = interval / exp10;\n\n      if (f === 2) {\n        f = 5;\n      } else {\n        f *= 2;\n      }\n\n      return f * exp10;\n    }\n\n    each(indicatorAxes, function (indicatorAxis, idx) {\n      var rawExtent = getScaleExtent(indicatorAxis.scale, indicatorAxis.model).extent;\n      niceScaleExtent(indicatorAxis.scale, indicatorAxis.model);\n      var axisModel = indicatorAxis.model;\n      var scale = indicatorAxis.scale;\n      var fixedMin = parseAxisModelMinMax(scale, axisModel.get('min', true));\n      var fixedMax = parseAxisModelMinMax(scale, axisModel.get('max', true));\n      var interval = scale.getInterval();\n\n      if (fixedMin != null && fixedMax != null) {\n        scale.setExtent(+fixedMin, +fixedMax);\n        scale.setInterval((fixedMax - fixedMin) / splitNumber);\n      } else if (fixedMin != null) {\n        var max = void 0;\n\n        do {\n          max = fixedMin + interval * splitNumber;\n          scale.setExtent(+fixedMin, max);\n          scale.setInterval(interval);\n          interval = increaseInterval(interval);\n        } while (max < rawExtent[1] && isFinite(max) && isFinite(rawExtent[1]));\n      } else if (fixedMax != null) {\n        var min = void 0;\n\n        do {\n          min = fixedMax - interval * splitNumber;\n          scale.setExtent(min, +fixedMax);\n          scale.setInterval(interval);\n          interval = increaseInterval(interval);\n        } while (min > rawExtent[0] && isFinite(min) && isFinite(rawExtent[0]));\n      } else {\n        var nicedSplitNumber = scale.getTicks().length - 1;\n\n        if (nicedSplitNumber > splitNumber) {\n          interval = increaseInterval(interval);\n        }\n\n        var max = Math.ceil(rawExtent[1] / interval) * interval;\n        var min = numberUtil.round(max - interval * splitNumber);\n        scale.setExtent(min, max);\n        scale.setInterval(interval);\n      }\n    });\n  };\n\n  Radar.prototype.convertToPixel = function (ecModel, finder, value) {\n    console.warn('Not implemented.');\n    return null;\n  };\n\n  Radar.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n    console.warn('Not implemented.');\n    return null;\n  };\n\n  Radar.prototype.containPoint = function (point) {\n    console.warn('Not implemented.');\n    return false;\n  };\n\n  Radar.create = function (ecModel, api) {\n    var radarList = [];\n    ecModel.eachComponent('radar', function (radarModel) {\n      var radar = new Radar(radarModel, ecModel, api);\n      radarList.push(radar);\n      radarModel.coordinateSystem = radar;\n    });\n    ecModel.eachSeriesByType('radar', function (radarSeries) {\n      if (radarSeries.get('coordinateSystem') === 'radar') {\n        radarSeries.coordinateSystem = radarList[radarSeries.get('radarIndex') || 0];\n      }\n    });\n    return radarList;\n  };\n\n  Radar.dimensions = [];\n  return Radar;\n}();\n\nexport default Radar;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport RadarModel from '../../coord/radar/RadarModel';\nimport RadarView from './RadarView';\nimport Radar from '../../coord/radar/Radar';\nexport function install(registers) {\n  registers.registerCoordinateSystem('radar', Radar);\n  registers.registerComponentModel(RadarModel);\n  registers.registerComponentView(RadarView);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport radarLayout from '../radar/radarLayout';\nimport dataFilter from '../../processor/dataFilter';\nimport backwardCompat from '../radar/backwardCompat';\nimport RadarView from './RadarView';\nimport RadarSeriesModel from './RadarSeries';\nimport { install as installRadarComponent } from '../../component/radar/install';\nexport function install(registers) {\n  use(installRadarComponent);\n  registers.registerChartView(RadarView);\n  registers.registerSeriesModel(RadarSeriesModel);\n  registers.registerLayout(radarLayout);\n  registers.registerProcessor(dataFilter('radar'));\n  registers.registerPreprocessor(backwardCompat);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as echarts from '../../core/echarts';\nvar ATTR = '\\0_ec_interaction_mutex';\nexport function take(zr, resourceKey, userKey) {\n  var store = getStore(zr);\n  store[resourceKey] = userKey;\n}\nexport function release(zr, resourceKey, userKey) {\n  var store = getStore(zr);\n  var uKey = store[resourceKey];\n\n  if (uKey === userKey) {\n    store[resourceKey] = null;\n  }\n}\nexport function isTaken(zr, resourceKey) {\n  return !!getStore(zr)[resourceKey];\n}\n\nfunction getStore(zr) {\n  return zr[ATTR] || (zr[ATTR] = {});\n}\n\necharts.registerAction({\n  type: 'takeGlobalCursor',\n  event: 'globalCursorTaken',\n  update: 'update'\n}, function () {});","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Eventful from 'zrender/lib/core/Eventful';\nimport * as eventTool from 'zrender/lib/core/event';\nimport * as interactionMutex from './interactionMutex';\nimport { isString, bind, defaults, clone } from 'zrender/lib/core/util';\n\nvar RoamController = function (_super) {\n  __extends(RoamController, _super);\n\n  function RoamController(zr) {\n    var _this = _super.call(this) || this;\n\n    _this._zr = zr;\n    var mousedownHandler = bind(_this._mousedownHandler, _this);\n    var mousemoveHandler = bind(_this._mousemoveHandler, _this);\n    var mouseupHandler = bind(_this._mouseupHandler, _this);\n    var mousewheelHandler = bind(_this._mousewheelHandler, _this);\n    var pinchHandler = bind(_this._pinchHandler, _this);\n\n    _this.enable = function (controlType, opt) {\n      this.disable();\n      this._opt = defaults(clone(opt) || {}, {\n        zoomOnMouseWheel: true,\n        moveOnMouseMove: true,\n        moveOnMouseWheel: false,\n        preventDefaultMouseMove: true\n      });\n\n      if (controlType == null) {\n        controlType = true;\n      }\n\n      if (controlType === true || controlType === 'move' || controlType === 'pan') {\n        zr.on('mousedown', mousedownHandler);\n        zr.on('mousemove', mousemoveHandler);\n        zr.on('mouseup', mouseupHandler);\n      }\n\n      if (controlType === true || controlType === 'scale' || controlType === 'zoom') {\n        zr.on('mousewheel', mousewheelHandler);\n        zr.on('pinch', pinchHandler);\n      }\n    };\n\n    _this.disable = function () {\n      zr.off('mousedown', mousedownHandler);\n      zr.off('mousemove', mousemoveHandler);\n      zr.off('mouseup', mouseupHandler);\n      zr.off('mousewheel', mousewheelHandler);\n      zr.off('pinch', pinchHandler);\n    };\n\n    return _this;\n  }\n\n  RoamController.prototype.isDragging = function () {\n    return this._dragging;\n  };\n\n  RoamController.prototype.isPinching = function () {\n    return this._pinching;\n  };\n\n  RoamController.prototype.setPointerChecker = function (pointerChecker) {\n    this.pointerChecker = pointerChecker;\n  };\n\n  RoamController.prototype.dispose = function () {\n    this.disable();\n  };\n\n  RoamController.prototype._mousedownHandler = function (e) {\n    if (eventTool.isMiddleOrRightButtonOnMouseUpDown(e) || e.target && e.target.draggable) {\n      return;\n    }\n\n    var x = e.offsetX;\n    var y = e.offsetY;\n\n    if (this.pointerChecker && this.pointerChecker(e, x, y)) {\n      this._x = x;\n      this._y = y;\n      this._dragging = true;\n    }\n  };\n\n  RoamController.prototype._mousemoveHandler = function (e) {\n    if (!this._dragging || !isAvailableBehavior('moveOnMouseMove', e, this._opt) || e.gestureEvent === 'pinch' || interactionMutex.isTaken(this._zr, 'globalPan')) {\n      return;\n    }\n\n    var x = e.offsetX;\n    var y = e.offsetY;\n    var oldX = this._x;\n    var oldY = this._y;\n    var dx = x - oldX;\n    var dy = y - oldY;\n    this._x = x;\n    this._y = y;\n    this._opt.preventDefaultMouseMove && eventTool.stop(e.event);\n    trigger(this, 'pan', 'moveOnMouseMove', e, {\n      dx: dx,\n      dy: dy,\n      oldX: oldX,\n      oldY: oldY,\n      newX: x,\n      newY: y,\n      isAvailableBehavior: null\n    });\n  };\n\n  RoamController.prototype._mouseupHandler = function (e) {\n    if (!eventTool.isMiddleOrRightButtonOnMouseUpDown(e)) {\n      this._dragging = false;\n    }\n  };\n\n  RoamController.prototype._mousewheelHandler = function (e) {\n    var shouldZoom = isAvailableBehavior('zoomOnMouseWheel', e, this._opt);\n    var shouldMove = isAvailableBehavior('moveOnMouseWheel', e, this._opt);\n    var wheelDelta = e.wheelDelta;\n    var absWheelDeltaDelta = Math.abs(wheelDelta);\n    var originX = e.offsetX;\n    var originY = e.offsetY;\n\n    if (wheelDelta === 0 || !shouldZoom && !shouldMove) {\n      return;\n    }\n\n    if (shouldZoom) {\n      var factor = absWheelDeltaDelta > 3 ? 1.4 : absWheelDeltaDelta > 1 ? 1.2 : 1.1;\n      var scale = wheelDelta > 0 ? factor : 1 / factor;\n      checkPointerAndTrigger(this, 'zoom', 'zoomOnMouseWheel', e, {\n        scale: scale,\n        originX: originX,\n        originY: originY,\n        isAvailableBehavior: null\n      });\n    }\n\n    if (shouldMove) {\n      var absDelta = Math.abs(wheelDelta);\n      var scrollDelta = (wheelDelta > 0 ? 1 : -1) * (absDelta > 3 ? 0.4 : absDelta > 1 ? 0.15 : 0.05);\n      checkPointerAndTrigger(this, 'scrollMove', 'moveOnMouseWheel', e, {\n        scrollDelta: scrollDelta,\n        originX: originX,\n        originY: originY,\n        isAvailableBehavior: null\n      });\n    }\n  };\n\n  RoamController.prototype._pinchHandler = function (e) {\n    if (interactionMutex.isTaken(this._zr, 'globalPan')) {\n      return;\n    }\n\n    var scale = e.pinchScale > 1 ? 1.1 : 1 / 1.1;\n    checkPointerAndTrigger(this, 'zoom', null, e, {\n      scale: scale,\n      originX: e.pinchX,\n      originY: e.pinchY,\n      isAvailableBehavior: null\n    });\n  };\n\n  return RoamController;\n}(Eventful);\n\nfunction checkPointerAndTrigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\n  if (controller.pointerChecker && controller.pointerChecker(e, contollerEvent.originX, contollerEvent.originY)) {\n    eventTool.stop(e.event);\n    trigger(controller, eventName, behaviorToCheck, e, contollerEvent);\n  }\n}\n\nfunction trigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\n  contollerEvent.isAvailableBehavior = bind(isAvailableBehavior, null, behaviorToCheck, e);\n  controller.trigger(eventName, contollerEvent);\n}\n\nfunction isAvailableBehavior(behaviorToCheck, e, settings) {\n  var setting = settings[behaviorToCheck];\n  return !behaviorToCheck || setting && (!isString(setting) || e.event[setting + 'Key']);\n}\n\nexport default RoamController;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function updateViewOnPan(controllerHost, dx, dy) {\n  var target = controllerHost.target;\n  target.x += dx;\n  target.y += dy;\n  target.dirty();\n}\nexport function updateViewOnZoom(controllerHost, zoomDelta, zoomX, zoomY) {\n  var target = controllerHost.target;\n  var zoomLimit = controllerHost.zoomLimit;\n  var newZoom = controllerHost.zoom = controllerHost.zoom || 1;\n  newZoom *= zoomDelta;\n\n  if (zoomLimit) {\n    var zoomMin = zoomLimit.min || 0;\n    var zoomMax = zoomLimit.max || Infinity;\n    newZoom = Math.max(Math.min(zoomMax, newZoom), zoomMin);\n  }\n\n  var zoomScale = newZoom / controllerHost.zoom;\n  controllerHost.zoom = newZoom;\n  target.x -= (zoomX - target.x) * (zoomScale - 1);\n  target.y -= (zoomY - target.y) * (zoomScale - 1);\n  target.scaleX *= zoomScale;\n  target.scaleY *= zoomScale;\n  target.dirty();\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar IRRELEVANT_EXCLUDES = {\n  'axisPointer': 1,\n  'tooltip': 1,\n  'brush': 1\n};\nexport function onIrrelevantElement(e, api, targetCoordSysModel) {\n  var model = api.getComponentByElement(e.topTarget);\n  var coordSys = model && model.coordinateSystem;\n  return model && model !== targetCoordSysModel && !IRRELEVANT_EXCLUDES.hasOwnProperty(model.mainType) && coordSys && coordSys.model !== targetCoordSysModel;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Region from '../Region';\nvar geoCoord = [126, 25];\nvar points = [[[0, 3.5], [7, 11.2], [15, 11.9], [30, 7], [42, 0.7], [52, 0.7], [56, 7.7], [59, 0.7], [64, 0.7], [64, 0], [5, 0], [0, 3.5]], [[13, 16.1], [19, 14.7], [16, 21.7], [11, 23.1], [13, 16.1]], [[12, 32.2], [14, 38.5], [15, 38.5], [13, 32.2], [12, 32.2]], [[16, 47.6], [12, 53.2], [13, 53.2], [18, 47.6], [16, 47.6]], [[6, 64.4], [8, 70], [9, 70], [8, 64.4], [6, 64.4]], [[23, 82.6], [29, 79.8], [30, 79.8], [25, 82.6], [23, 82.6]], [[37, 70.7], [43, 62.3], [44, 62.3], [39, 70.7], [37, 70.7]], [[48, 51.1], [51, 45.5], [53, 45.5], [50, 51.1], [48, 51.1]], [[51, 35], [51, 28.7], [53, 28.7], [53, 35], [51, 35]], [[52, 22.4], [55, 17.5], [56, 17.5], [53, 22.4], [52, 22.4]], [[58, 12.6], [62, 7], [63, 7], [60, 12.6], [58, 12.6]], [[0, 3.5], [0, 93.1], [64, 93.1], [64, 0], [63, 0], [63, 92.4], [1, 92.4], [1, 3.5], [0, 3.5]]];\n\nfor (var i = 0; i < points.length; i++) {\n  for (var k = 0; k < points[i].length; k++) {\n    points[i][k][0] /= 10.5;\n    points[i][k][1] /= -10.5 / 0.75;\n    points[i][k][0] += geoCoord[0];\n    points[i][k][1] += geoCoord[1];\n  }\n}\n\nexport default function fixNanhai(mapType, regions) {\n  if (mapType === 'china') {\n    regions.push(new Region('南海诸岛', zrUtil.map(points, function (exterior) {\n      return {\n        type: 'polygon',\n        exterior: exterior\n      };\n    }), geoCoord));\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar coordsOffsetMap = {\n  '南海诸岛': [32, 80],\n  '广东': [0, -10],\n  '香港': [10, 5],\n  '澳门': [-10, 10],\n  '天津': [5, 5]\n};\nexport default function fixTextCoords(mapType, region) {\n  if (mapType === 'china') {\n    var coordFix = coordsOffsetMap[region.name];\n\n    if (coordFix) {\n      var cp = region.center;\n      cp[0] += coordFix[0] / 10.5;\n      cp[1] += -coordFix[1] / (10.5 / 0.75);\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar geoCoordMap = {\n  'Russia': [100, 60],\n  'United States': [-99, 38],\n  'United States of America': [-99, 38]\n};\nexport default function fixGeoCoords(mapType, region) {\n  if (mapType === 'world') {\n    var geoCoord = geoCoordMap[region.name];\n\n    if (geoCoord) {\n      var cp = region.center;\n      cp[0] = geoCoord[0];\n      cp[1] = geoCoord[1];\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar points = [[[123.45165252685547, 25.73527164402261], [123.49731445312499, 25.73527164402261], [123.49731445312499, 25.750734064600884], [123.45165252685547, 25.750734064600884], [123.45165252685547, 25.73527164402261]]];\nexport default function fixDiaoyuIsland(mapType, region) {\n  if (mapType === 'china' && region.name === '台湾') {\n    region.geometries.push({\n      type: 'polygon',\n      exterior: points[0]\n    });\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each } from 'zrender/lib/core/util';\nimport parseGeoJson from './parseGeoJson';\nimport { makeInner } from '../../util/model';\nimport fixNanhai from './fix/nanhai';\nimport fixTextCoord from './fix/textCoord';\nimport fixGeoCoord from './fix/geoCoord';\nimport fixDiaoyuIsland from './fix/diaoyuIsland';\nvar inner = makeInner();\nexport default {\n  load: function (mapName, mapRecord, nameProperty) {\n    var parsed = inner(mapRecord).parsed;\n\n    if (parsed) {\n      return parsed;\n    }\n\n    var specialAreas = mapRecord.specialAreas || {};\n    var geoJSON = mapRecord.geoJSON;\n    var regions;\n\n    try {\n      regions = geoJSON ? parseGeoJson(geoJSON, nameProperty) : [];\n    } catch (e) {\n      throw new Error('Invalid geoJson format\\n' + e.message);\n    }\n\n    fixNanhai(mapName, regions);\n    each(regions, function (region) {\n      var regionName = region.name;\n      fixTextCoord(mapName, region);\n      fixGeoCoord(mapName, region);\n      fixDiaoyuIsland(mapName, region);\n      var specialArea = specialAreas[regionName];\n\n      if (specialArea) {\n        region.transformTo(specialArea.left, specialArea.top, specialArea.width, specialArea.height);\n      }\n    });\n    return inner(mapRecord).parsed = {\n      regions: regions,\n      boundingRect: getBoundingRect(regions)\n    };\n  }\n};\n\nfunction getBoundingRect(regions) {\n  var rect;\n\n  for (var i = 0; i < regions.length; i++) {\n    var regionRect = regions[i].getBoundingRect();\n    rect = rect || regionRect.clone();\n    rect.union(regionRect);\n  }\n\n  return rect;\n}","import Group from '../graphic/Group';\nimport ZRImage from '../graphic/Image';\nimport Circle from '../graphic/shape/Circle';\nimport Rect from '../graphic/shape/Rect';\nimport Ellipse from '../graphic/shape/Ellipse';\nimport Line from '../graphic/shape/Line';\nimport Path from '../graphic/Path';\nimport Polygon from '../graphic/shape/Polygon';\nimport Polyline from '../graphic/shape/Polyline';\nimport * as matrix from '../core/matrix';\nimport { createFromString } from './path';\nimport { extend, defaults, trim, each, map } from '../core/util';\nimport LinearGradient from '../graphic/LinearGradient';\nimport TSpan from '../graphic/TSpan';\nimport { parseXML } from './parseXML';\nvar DILIMITER_REG = /[\\s,]+/;\nvar nodeParsers;\nvar SVGParser = (function () {\n    function SVGParser() {\n        this._defs = {};\n        this._root = null;\n        this._isDefine = false;\n        this._isText = false;\n    }\n    SVGParser.prototype.parse = function (xml, opt) {\n        opt = opt || {};\n        var svg = parseXML(xml);\n        if (!svg) {\n            throw new Error('Illegal svg');\n        }\n        var root = new Group();\n        this._root = root;\n        var viewBox = svg.getAttribute('viewBox') || '';\n        var width = parseFloat((svg.getAttribute('width') || opt.width));\n        var height = parseFloat((svg.getAttribute('height') || opt.height));\n        isNaN(width) && (width = null);\n        isNaN(height) && (height = null);\n        parseAttributes(svg, root, null, true);\n        var child = svg.firstChild;\n        while (child) {\n            this._parseNode(child, root);\n            child = child.nextSibling;\n        }\n        var viewBoxRect;\n        var viewBoxTransform;\n        if (viewBox) {\n            var viewBoxArr = trim(viewBox).split(DILIMITER_REG);\n            if (viewBoxArr.length >= 4) {\n                viewBoxRect = {\n                    x: parseFloat((viewBoxArr[0] || 0)),\n                    y: parseFloat((viewBoxArr[1] || 0)),\n                    width: parseFloat(viewBoxArr[2]),\n                    height: parseFloat(viewBoxArr[3])\n                };\n            }\n        }\n        if (viewBoxRect && width != null && height != null) {\n            viewBoxTransform = makeViewBoxTransform(viewBoxRect, width, height);\n            if (!opt.ignoreViewBox) {\n                var elRoot = root;\n                root = new Group();\n                root.add(elRoot);\n                elRoot.scaleX = elRoot.scaleY = viewBoxTransform.scale;\n                elRoot.x = viewBoxTransform.x;\n                elRoot.y = viewBoxTransform.y;\n            }\n        }\n        if (!opt.ignoreRootClip && width != null && height != null) {\n            root.setClipPath(new Rect({\n                shape: { x: 0, y: 0, width: width, height: height }\n            }));\n        }\n        return {\n            root: root,\n            width: width,\n            height: height,\n            viewBoxRect: viewBoxRect,\n            viewBoxTransform: viewBoxTransform\n        };\n    };\n    SVGParser.prototype._parseNode = function (xmlNode, parentGroup) {\n        var nodeName = xmlNode.nodeName.toLowerCase();\n        if (nodeName === 'defs') {\n            this._isDefine = true;\n        }\n        else if (nodeName === 'text') {\n            this._isText = true;\n        }\n        var el;\n        if (this._isDefine) {\n            var parser = defineParsers[nodeName];\n            if (parser) {\n                var def = parser.call(this, xmlNode);\n                var id = xmlNode.getAttribute('id');\n                if (id) {\n                    this._defs[id] = def;\n                }\n            }\n        }\n        else {\n            var parser = nodeParsers[nodeName];\n            if (parser) {\n                el = parser.call(this, xmlNode, parentGroup);\n                parentGroup.add(el);\n            }\n        }\n        if (el) {\n            var child = xmlNode.firstChild;\n            while (child) {\n                if (child.nodeType === 1) {\n                    this._parseNode(child, el);\n                }\n                if (child.nodeType === 3 && this._isText) {\n                    this._parseText(child, el);\n                }\n                child = child.nextSibling;\n            }\n        }\n        if (nodeName === 'defs') {\n            this._isDefine = false;\n        }\n        else if (nodeName === 'text') {\n            this._isText = false;\n        }\n    };\n    SVGParser.prototype._parseText = function (xmlNode, parentGroup) {\n        if (xmlNode.nodeType === 1) {\n            var dx = xmlNode.getAttribute('dx') || 0;\n            var dy = xmlNode.getAttribute('dy') || 0;\n            this._textX += parseFloat(dx);\n            this._textY += parseFloat(dy);\n        }\n        var text = new TSpan({\n            style: {\n                text: xmlNode.textContent\n            },\n            x: this._textX || 0,\n            y: this._textY || 0\n        });\n        inheritStyle(parentGroup, text);\n        parseAttributes(xmlNode, text, this._defs);\n        var textStyle = text.style;\n        var fontSize = textStyle.fontSize;\n        if (fontSize && fontSize < 9) {\n            textStyle.fontSize = 9;\n            text.scaleX *= fontSize / 9;\n            text.scaleY *= fontSize / 9;\n        }\n        var font = (textStyle.fontSize || textStyle.fontFamily) && [\n            textStyle.fontStyle,\n            textStyle.fontWeight,\n            (textStyle.fontSize || 12) + 'px',\n            textStyle.fontFamily || 'sans-serif'\n        ].join(' ');\n        textStyle.font = font;\n        var rect = text.getBoundingRect();\n        this._textX += rect.width;\n        parentGroup.add(text);\n        return text;\n    };\n    SVGParser.internalField = (function () {\n        nodeParsers = {\n            'g': function (xmlNode, parentGroup) {\n                var g = new Group();\n                inheritStyle(parentGroup, g);\n                parseAttributes(xmlNode, g, this._defs);\n                return g;\n            },\n            'rect': function (xmlNode, parentGroup) {\n                var rect = new Rect();\n                inheritStyle(parentGroup, rect);\n                parseAttributes(xmlNode, rect, this._defs);\n                rect.setShape({\n                    x: parseFloat(xmlNode.getAttribute('x') || '0'),\n                    y: parseFloat(xmlNode.getAttribute('y') || '0'),\n                    width: parseFloat(xmlNode.getAttribute('width') || '0'),\n                    height: parseFloat(xmlNode.getAttribute('height') || '0')\n                });\n                return rect;\n            },\n            'circle': function (xmlNode, parentGroup) {\n                var circle = new Circle();\n                inheritStyle(parentGroup, circle);\n                parseAttributes(xmlNode, circle, this._defs);\n                circle.setShape({\n                    cx: parseFloat(xmlNode.getAttribute('cx') || '0'),\n                    cy: parseFloat(xmlNode.getAttribute('cy') || '0'),\n                    r: parseFloat(xmlNode.getAttribute('r') || '0')\n                });\n                return circle;\n            },\n            'line': function (xmlNode, parentGroup) {\n                var line = new Line();\n                inheritStyle(parentGroup, line);\n                parseAttributes(xmlNode, line, this._defs);\n                line.setShape({\n                    x1: parseFloat(xmlNode.getAttribute('x1') || '0'),\n                    y1: parseFloat(xmlNode.getAttribute('y1') || '0'),\n                    x2: parseFloat(xmlNode.getAttribute('x2') || '0'),\n                    y2: parseFloat(xmlNode.getAttribute('y2') || '0')\n                });\n                return line;\n            },\n            'ellipse': function (xmlNode, parentGroup) {\n                var ellipse = new Ellipse();\n                inheritStyle(parentGroup, ellipse);\n                parseAttributes(xmlNode, ellipse, this._defs);\n                ellipse.setShape({\n                    cx: parseFloat(xmlNode.getAttribute('cx') || '0'),\n                    cy: parseFloat(xmlNode.getAttribute('cy') || '0'),\n                    rx: parseFloat(xmlNode.getAttribute('rx') || '0'),\n                    ry: parseFloat(xmlNode.getAttribute('ry') || '0')\n                });\n                return ellipse;\n            },\n            'polygon': function (xmlNode, parentGroup) {\n                var pointsStr = xmlNode.getAttribute('points');\n                var pointsArr;\n                if (pointsStr) {\n                    pointsArr = parsePoints(pointsStr);\n                }\n                var polygon = new Polygon({\n                    shape: {\n                        points: pointsArr || []\n                    }\n                });\n                inheritStyle(parentGroup, polygon);\n                parseAttributes(xmlNode, polygon, this._defs);\n                return polygon;\n            },\n            'polyline': function (xmlNode, parentGroup) {\n                var path = new Path();\n                inheritStyle(parentGroup, path);\n                parseAttributes(xmlNode, path, this._defs);\n                var pointsStr = xmlNode.getAttribute('points');\n                var pointsArr;\n                if (pointsStr) {\n                    pointsArr = parsePoints(pointsStr);\n                }\n                var polyline = new Polyline({\n                    shape: {\n                        points: pointsArr || []\n                    }\n                });\n                return polyline;\n            },\n            'image': function (xmlNode, parentGroup) {\n                var img = new ZRImage();\n                inheritStyle(parentGroup, img);\n                parseAttributes(xmlNode, img, this._defs);\n                img.setStyle({\n                    image: xmlNode.getAttribute('xlink:href'),\n                    x: +xmlNode.getAttribute('x'),\n                    y: +xmlNode.getAttribute('y'),\n                    width: +xmlNode.getAttribute('width'),\n                    height: +xmlNode.getAttribute('height')\n                });\n                return img;\n            },\n            'text': function (xmlNode, parentGroup) {\n                var x = xmlNode.getAttribute('x') || '0';\n                var y = xmlNode.getAttribute('y') || '0';\n                var dx = xmlNode.getAttribute('dx') || '0';\n                var dy = xmlNode.getAttribute('dy') || '0';\n                this._textX = parseFloat(x) + parseFloat(dx);\n                this._textY = parseFloat(y) + parseFloat(dy);\n                var g = new Group();\n                inheritStyle(parentGroup, g);\n                parseAttributes(xmlNode, g, this._defs);\n                return g;\n            },\n            'tspan': function (xmlNode, parentGroup) {\n                var x = xmlNode.getAttribute('x');\n                var y = xmlNode.getAttribute('y');\n                if (x != null) {\n                    this._textX = parseFloat(x);\n                }\n                if (y != null) {\n                    this._textY = parseFloat(y);\n                }\n                var dx = xmlNode.getAttribute('dx') || 0;\n                var dy = xmlNode.getAttribute('dy') || 0;\n                var g = new Group();\n                inheritStyle(parentGroup, g);\n                parseAttributes(xmlNode, g, this._defs);\n                this._textX += dx;\n                this._textY += dy;\n                return g;\n            },\n            'path': function (xmlNode, parentGroup) {\n                var d = xmlNode.getAttribute('d') || '';\n                var path = createFromString(d);\n                inheritStyle(parentGroup, path);\n                parseAttributes(xmlNode, path, this._defs);\n                return path;\n            }\n        };\n    })();\n    return SVGParser;\n}());\nvar defineParsers = {\n    'lineargradient': function (xmlNode) {\n        var x1 = parseInt(xmlNode.getAttribute('x1') || '0', 10);\n        var y1 = parseInt(xmlNode.getAttribute('y1') || '0', 10);\n        var x2 = parseInt(xmlNode.getAttribute('x2') || '10', 10);\n        var y2 = parseInt(xmlNode.getAttribute('y2') || '0', 10);\n        var gradient = new LinearGradient(x1, y1, x2, y2);\n        _parseGradientColorStops(xmlNode, gradient);\n        return gradient;\n    }\n};\nfunction _parseGradientColorStops(xmlNode, gradient) {\n    var stop = xmlNode.firstChild;\n    while (stop) {\n        if (stop.nodeType === 1) {\n            var offsetStr = stop.getAttribute('offset');\n            var offset = void 0;\n            if (offsetStr.indexOf('%') > 0) {\n                offset = parseInt(offsetStr, 10) / 100;\n            }\n            else if (offsetStr) {\n                offset = parseFloat(offsetStr);\n            }\n            else {\n                offset = 0;\n            }\n            var stopColor = stop.getAttribute('stop-color') || '#000000';\n            gradient.colorStops.push({\n                offset: offset,\n                color: stopColor\n            });\n        }\n        stop = stop.nextSibling;\n    }\n}\nfunction inheritStyle(parent, child) {\n    if (parent && parent.__inheritedStyle) {\n        if (!child.__inheritedStyle) {\n            child.__inheritedStyle = {};\n        }\n        defaults(child.__inheritedStyle, parent.__inheritedStyle);\n    }\n}\nfunction parsePoints(pointsString) {\n    var list = trim(pointsString).split(DILIMITER_REG);\n    var points = [];\n    for (var i = 0; i < list.length; i += 2) {\n        var x = parseFloat(list[i]);\n        var y = parseFloat(list[i + 1]);\n        points.push([x, y]);\n    }\n    return points;\n}\nvar attributesMap = {\n    'fill': 'fill',\n    'stroke': 'stroke',\n    'stroke-width': 'lineWidth',\n    'opacity': 'opacity',\n    'fill-opacity': 'fillOpacity',\n    'stroke-opacity': 'strokeOpacity',\n    'stroke-dasharray': 'lineDash',\n    'stroke-dashoffset': 'lineDashOffset',\n    'stroke-linecap': 'lineCap',\n    'stroke-linejoin': 'lineJoin',\n    'stroke-miterlimit': 'miterLimit',\n    'font-family': 'fontFamily',\n    'font-size': 'fontSize',\n    'font-style': 'fontStyle',\n    'font-weight': 'fontWeight',\n    'text-align': 'textAlign',\n    'alignment-baseline': 'textBaseline'\n};\nfunction parseAttributes(xmlNode, el, defs, onlyInlineStyle) {\n    var disp = el;\n    var zrStyle = disp.__inheritedStyle || {};\n    if (xmlNode.nodeType === 1) {\n        parseTransformAttribute(xmlNode, el);\n        extend(zrStyle, parseStyleAttribute(xmlNode));\n        if (!onlyInlineStyle) {\n            for (var svgAttrName in attributesMap) {\n                if (attributesMap.hasOwnProperty(svgAttrName)) {\n                    var attrValue = xmlNode.getAttribute(svgAttrName);\n                    if (attrValue != null) {\n                        zrStyle[attributesMap[svgAttrName]] = attrValue;\n                    }\n                }\n            }\n        }\n    }\n    disp.style = disp.style || {};\n    zrStyle.fill != null && (disp.style.fill = getPaint(zrStyle.fill, defs));\n    zrStyle.stroke != null && (disp.style.stroke = getPaint(zrStyle.stroke, defs));\n    each([\n        'lineWidth', 'opacity', 'fillOpacity', 'strokeOpacity', 'miterLimit', 'fontSize'\n    ], function (propName) {\n        zrStyle[propName] != null && (disp.style[propName] = parseFloat(zrStyle[propName]));\n    });\n    if (!zrStyle.textBaseline || zrStyle.textBaseline === 'auto') {\n        zrStyle.textBaseline = 'alphabetic';\n    }\n    if (zrStyle.textBaseline === 'alphabetic') {\n        zrStyle.textBaseline = 'bottom';\n    }\n    if (zrStyle.textAlign === 'start') {\n        zrStyle.textAlign = 'left';\n    }\n    if (zrStyle.textAlign === 'end') {\n        zrStyle.textAlign = 'right';\n    }\n    each(['lineDashOffset', 'lineCap', 'lineJoin',\n        'fontWeight', 'fontFamily', 'fontStyle', 'textAlign', 'textBaseline'\n    ], function (propName) {\n        zrStyle[propName] != null && (disp.style[propName] = zrStyle[propName]);\n    });\n    if (zrStyle.lineDash) {\n        disp.style.lineDash = map(trim(zrStyle.lineDash).split(DILIMITER_REG), function (str) {\n            return parseFloat(str);\n        });\n    }\n    disp.__inheritedStyle = zrStyle;\n}\nvar urlRegex = /url\\(\\s*#(.*?)\\)/;\nfunction getPaint(str, defs) {\n    var urlMatch = defs && str && str.match(urlRegex);\n    if (urlMatch) {\n        var url = trim(urlMatch[1]);\n        var def = defs[url];\n        return def;\n    }\n    return str;\n}\nvar transformRegex = /(translate|scale|rotate|skewX|skewY|matrix)\\(([\\-\\s0-9\\.e,]*)\\)/g;\nfunction parseTransformAttribute(xmlNode, node) {\n    var transform = xmlNode.getAttribute('transform');\n    if (transform) {\n        transform = transform.replace(/,/g, ' ');\n        var transformOps_1 = [];\n        var m = null;\n        transform.replace(transformRegex, function (str, type, value) {\n            transformOps_1.push(type, value);\n            return '';\n        });\n        for (var i = transformOps_1.length - 1; i > 0; i -= 2) {\n            var value = transformOps_1[i];\n            var type = transformOps_1[i - 1];\n            var valueArr = void 0;\n            m = m || matrix.create();\n            switch (type) {\n                case 'translate':\n                    valueArr = trim(value).split(DILIMITER_REG);\n                    matrix.translate(m, m, [parseFloat(valueArr[0]), parseFloat(valueArr[1] || '0')]);\n                    break;\n                case 'scale':\n                    valueArr = trim(value).split(DILIMITER_REG);\n                    matrix.scale(m, m, [parseFloat(valueArr[0]), parseFloat(valueArr[1] || valueArr[0])]);\n                    break;\n                case 'rotate':\n                    valueArr = trim(value).split(DILIMITER_REG);\n                    matrix.rotate(m, m, parseFloat(valueArr[0]));\n                    break;\n                case 'skew':\n                    valueArr = trim(value).split(DILIMITER_REG);\n                    console.warn('Skew transform is not supported yet');\n                    break;\n                case 'matrix':\n                    valueArr = trim(value).split(DILIMITER_REG);\n                    m[0] = parseFloat(valueArr[0]);\n                    m[1] = parseFloat(valueArr[1]);\n                    m[2] = parseFloat(valueArr[2]);\n                    m[3] = parseFloat(valueArr[3]);\n                    m[4] = parseFloat(valueArr[4]);\n                    m[5] = parseFloat(valueArr[5]);\n                    break;\n            }\n        }\n        node.setLocalTransform(m);\n    }\n}\nvar styleRegex = /([^\\s:;]+)\\s*:\\s*([^:;]+)/g;\nfunction parseStyleAttribute(xmlNode) {\n    var style = xmlNode.getAttribute('style');\n    var result = {};\n    if (!style) {\n        return result;\n    }\n    var styleList = {};\n    styleRegex.lastIndex = 0;\n    var styleRegResult;\n    while ((styleRegResult = styleRegex.exec(style)) != null) {\n        styleList[styleRegResult[1]] = styleRegResult[2];\n    }\n    for (var svgAttrName in attributesMap) {\n        if (attributesMap.hasOwnProperty(svgAttrName) && styleList[svgAttrName] != null) {\n            result[attributesMap[svgAttrName]] = styleList[svgAttrName];\n        }\n    }\n    return result;\n}\nexport function makeViewBoxTransform(viewBoxRect, width, height) {\n    var scaleX = width / viewBoxRect.width;\n    var scaleY = height / viewBoxRect.height;\n    var scale = Math.min(scaleX, scaleY);\n    return {\n        scale: scale,\n        x: -(viewBoxRect.x + viewBoxRect.width / 2) * scale + width / 2,\n        y: -(viewBoxRect.y + viewBoxRect.height / 2) * scale + height / 2\n    };\n}\nexport function parseSVG(xml, opt) {\n    var parser = new SVGParser();\n    return parser.parse(xml, opt);\n}\nexport { parseXML };\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parseSVG, makeViewBoxTransform } from 'zrender/lib/tool/parseSVG';\nimport Group from 'zrender/lib/graphic/Group';\nimport Rect from 'zrender/lib/graphic/shape/Rect';\nimport { assert, createHashMap } from 'zrender/lib/core/util';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\nexport default {\n  load: function (mapName, mapRecord) {\n    var originRoot = inner(mapRecord).originRoot;\n\n    if (originRoot) {\n      return {\n        root: originRoot,\n        boundingRect: inner(mapRecord).boundingRect\n      };\n    }\n\n    var graphic = buildGraphic(mapRecord);\n    inner(mapRecord).originRoot = graphic.root;\n    inner(mapRecord).boundingRect = graphic.boundingRect;\n    return graphic;\n  },\n  makeGraphic: function (mapName, mapRecord, hostKey) {\n    var field = inner(mapRecord);\n    var rootMap = field.rootMap || (field.rootMap = createHashMap());\n    var root = rootMap.get(hostKey);\n\n    if (root) {\n      return root;\n    }\n\n    var originRoot = field.originRoot;\n    var boundingRect = field.boundingRect;\n\n    if (!field.originRootHostKey) {\n      field.originRootHostKey = hostKey;\n      root = originRoot;\n    } else {\n      root = buildGraphic(mapRecord, boundingRect).root;\n    }\n\n    return rootMap.set(hostKey, root);\n  },\n  removeGraphic: function (mapName, mapRecord, hostKey) {\n    var field = inner(mapRecord);\n    var rootMap = field.rootMap;\n    rootMap && rootMap.removeKey(hostKey);\n\n    if (hostKey === field.originRootHostKey) {\n      field.originRootHostKey = null;\n    }\n  }\n};\n\nfunction buildGraphic(mapRecord, boundingRect) {\n  var svgXML = mapRecord.svgXML;\n  var result;\n  var root;\n\n  try {\n    result = svgXML && parseSVG(svgXML, {\n      ignoreViewBox: true,\n      ignoreRootClip: true\n    }) || {};\n    root = result.root;\n    assert(root != null);\n  } catch (e) {\n    throw new Error('Invalid svg format\\n' + e.message);\n  }\n\n  var svgWidth = result.width;\n  var svgHeight = result.height;\n  var viewBoxRect = result.viewBoxRect;\n\n  if (!boundingRect) {\n    boundingRect = svgWidth == null || svgHeight == null ? root.getBoundingRect() : new BoundingRect(0, 0, 0, 0);\n\n    if (svgWidth != null) {\n      boundingRect.width = svgWidth;\n    }\n\n    if (svgHeight != null) {\n      boundingRect.height = svgHeight;\n    }\n  }\n\n  if (viewBoxRect) {\n    var viewBoxTransform = makeViewBoxTransform(viewBoxRect, boundingRect.width, boundingRect.height);\n    var elRoot = root;\n    root = new Group();\n    root.add(elRoot);\n    elRoot.scaleX = elRoot.scaleY = viewBoxTransform.scale;\n    elRoot.x = viewBoxTransform.x;\n    elRoot.y = viewBoxTransform.y;\n  }\n\n  root.setClipPath(new Rect({\n    shape: boundingRect.plain()\n  }));\n  return {\n    root: root,\n    boundingRect: boundingRect\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, createHashMap } from 'zrender/lib/core/util';\nimport mapDataStorage from './mapDataStorage';\nimport geoJSONLoader from './geoJSONLoader';\nimport geoSVGLoader from './geoSVGLoader';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nvar loaders = {\n  geoJSON: geoJSONLoader,\n  svg: geoSVGLoader\n};\nexport default {\n  load: function (mapName, nameMap, nameProperty) {\n    var regions = [];\n    var regionsMap = createHashMap();\n    var nameCoordMap = createHashMap();\n    var boundingRect;\n    var mapRecords = retrieveMap(mapName);\n    each(mapRecords, function (record) {\n      var singleSource = loaders[record.type].load(mapName, record, nameProperty);\n      each(singleSource.regions, function (region) {\n        var regionName = region.name;\n\n        if (nameMap && nameMap.hasOwnProperty(regionName)) {\n          region = region.cloneShallow(regionName = nameMap[regionName]);\n        }\n\n        regions.push(region);\n        regionsMap.set(regionName, region);\n        nameCoordMap.set(regionName, region.center);\n      });\n      var rect = singleSource.boundingRect;\n\n      if (rect) {\n        boundingRect ? boundingRect.union(rect) : boundingRect = rect.clone();\n      }\n    });\n    return {\n      regions: regions,\n      regionsMap: regionsMap,\n      nameCoordMap: nameCoordMap,\n      boundingRect: boundingRect || new BoundingRect(0, 0, 0, 0)\n    };\n  },\n  makeGraphic: function (mapName, hostKey) {\n    var mapRecords = retrieveMap(mapName);\n    var results = [];\n    each(mapRecords, function (record) {\n      var method = loaders[record.type].makeGraphic;\n      method && results.push(method(mapName, record, hostKey));\n    });\n    return results;\n  },\n  removeGraphic: function (mapName, hostKey) {\n    var mapRecords = retrieveMap(mapName);\n    each(mapRecords, function (record) {\n      var method = loaders[record.type].makeGraphic;\n      method && method(mapName, record, hostKey);\n    });\n  }\n};\n\nfunction mapNotExistsError(mapName) {\n  if (process.env.NODE_ENV !== 'production') {\n    console.error('Map ' + mapName + ' not exists. The GeoJSON of the map must be provided.');\n  }\n}\n\nfunction retrieveMap(mapName) {\n  var mapRecords = mapDataStorage.retrieveMap(mapName) || [];\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (!mapRecords.length) {\n      mapNotExistsError(mapName);\n    }\n  }\n\n  return mapRecords;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport RoamController from './RoamController';\nimport * as roamHelper from '../../component/helper/roamHelper';\nimport { onIrrelevantElement } from '../../component/helper/cursorHelper';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis, DISPLAY_STATES } from '../../util/states';\nimport geoSourceManager from '../../coord/geo/geoSourceManager';\nimport { getUID } from '../../util/component';\nimport Transformable from 'zrender/lib/core/Transformable';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { getECData } from '../../util/innerStore';\nimport { createOrUpdatePatternFromDecal } from '../../util/decal';\n\nfunction getFixedItemStyle(model) {\n  var itemStyle = model.getItemStyle();\n  var areaColor = model.get('areaColor');\n\n  if (areaColor != null) {\n    itemStyle.fill = areaColor;\n  }\n\n  return itemStyle;\n}\n\nvar MapDraw = function () {\n  function MapDraw(api) {\n    var group = new graphic.Group();\n    this.uid = getUID('ec_map_draw');\n    this._controller = new RoamController(api.getZr());\n    this._controllerHost = {\n      target: group\n    };\n    this.group = group;\n    group.add(this._regionsGroup = new graphic.Group());\n    group.add(this._backgroundGroup = new graphic.Group());\n  }\n\n  MapDraw.prototype.draw = function (mapOrGeoModel, ecModel, api, fromView, payload) {\n    var isGeo = mapOrGeoModel.mainType === 'geo';\n    var data = mapOrGeoModel.getData && mapOrGeoModel.getData();\n    isGeo && ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'map'\n    }, function (mapSeries) {\n      if (!data && mapSeries.getHostGeoModel() === mapOrGeoModel) {\n        data = mapSeries.getData();\n      }\n    });\n    var geo = mapOrGeoModel.coordinateSystem;\n\n    this._updateBackground(geo);\n\n    var regionsGroup = this._regionsGroup;\n    var group = this.group;\n    var transformInfo = geo.getTransformInfo();\n    var isFirstDraw = !regionsGroup.childAt(0) || payload;\n    var targetScaleX;\n    var targetScaleY;\n\n    if (isFirstDraw) {\n      group.transform = transformInfo.roamTransform;\n      group.decomposeTransform();\n      group.dirty();\n    } else {\n      var target = new Transformable();\n      target.transform = transformInfo.roamTransform;\n      target.decomposeTransform();\n      var props = {\n        scaleX: target.scaleX,\n        scaleY: target.scaleY,\n        x: target.x,\n        y: target.y\n      };\n      targetScaleX = target.scaleX;\n      targetScaleY = target.scaleY;\n      graphic.updateProps(group, props, mapOrGeoModel);\n    }\n\n    regionsGroup.removeAll();\n    var nameMap = zrUtil.createHashMap();\n    var isVisualEncodedByVisualMap = data && data.getVisual('visualMeta') && data.getVisual('visualMeta').length > 0;\n    zrUtil.each(geo.regions, function (region) {\n      var regionGroup = nameMap.get(region.name) || nameMap.set(region.name, new graphic.Group());\n      var compoundPath = new graphic.CompoundPath({\n        segmentIgnoreThreshold: 1,\n        shape: {\n          paths: []\n        }\n      });\n      regionGroup.add(compoundPath);\n      var regionModel = mapOrGeoModel.getRegionModel(region.name) || mapOrGeoModel;\n      var itemStyleModel = regionModel.getModel('itemStyle');\n      var emphasisModel = regionModel.getModel('emphasis');\n      var emphasisItemStyleModel = emphasisModel.getModel('itemStyle');\n      var blurItemStyleModel = regionModel.getModel(['blur', 'itemStyle']);\n      var selectItemStyleModel = regionModel.getModel(['select', 'itemStyle']);\n      var itemStyle = getFixedItemStyle(itemStyleModel);\n      var emphasisItemStyle = getFixedItemStyle(emphasisItemStyleModel);\n      var blurItemStyle = getFixedItemStyle(blurItemStyleModel);\n      var selectItemStyle = getFixedItemStyle(selectItemStyleModel);\n      var dataIdx;\n\n      if (data) {\n        dataIdx = data.indexOfName(region.name);\n        var style = data.getItemVisual(dataIdx, 'style');\n        var decal = data.getItemVisual(dataIdx, 'decal');\n\n        if (isVisualEncodedByVisualMap && style.fill) {\n          itemStyle.fill = style.fill;\n        }\n\n        if (decal) {\n          itemStyle.decal = createOrUpdatePatternFromDecal(decal, api);\n        }\n      }\n\n      var sx = transformInfo.rawScaleX;\n      var sy = transformInfo.rawScaleY;\n      var offsetX = transformInfo.rawX;\n      var offsetY = transformInfo.rawY;\n\n      var transformPoint = function (point) {\n        return [point[0] * sx + offsetX, point[1] * sy + offsetY];\n      };\n\n      zrUtil.each(region.geometries, function (geometry) {\n        if (geometry.type !== 'polygon') {\n          return;\n        }\n\n        var points = [];\n\n        for (var i = 0; i < geometry.exterior.length; ++i) {\n          points.push(transformPoint(geometry.exterior[i]));\n        }\n\n        compoundPath.shape.paths.push(new graphic.Polygon({\n          segmentIgnoreThreshold: 1,\n          shape: {\n            points: points\n          }\n        }));\n\n        for (var i = 0; i < (geometry.interiors ? geometry.interiors.length : 0); ++i) {\n          var interior = geometry.interiors[i];\n          var points_1 = [];\n\n          for (var j = 0; j < interior.length; ++j) {\n            points_1.push(transformPoint(interior[j]));\n          }\n\n          compoundPath.shape.paths.push(new graphic.Polygon({\n            segmentIgnoreThreshold: 1,\n            shape: {\n              points: points_1\n            }\n          }));\n        }\n      });\n      compoundPath.setStyle(itemStyle);\n      compoundPath.style.strokeNoScale = true;\n      compoundPath.culling = true;\n      compoundPath.ensureState('emphasis').style = emphasisItemStyle;\n      compoundPath.ensureState('blur').style = blurItemStyle;\n      compoundPath.ensureState('select').style = selectItemStyle;\n      var showLabel = false;\n\n      for (var i = 0; i < DISPLAY_STATES.length; i++) {\n        var stateName = DISPLAY_STATES[i];\n\n        if (regionModel.get(stateName === 'normal' ? ['label', 'show'] : [stateName, 'label', 'show'])) {\n          showLabel = true;\n          break;\n        }\n      }\n\n      var isDataNaN = data && isNaN(data.get(data.mapDimension('value'), dataIdx));\n      var itemLayout = data && data.getItemLayout(dataIdx);\n\n      if (isGeo || isDataNaN && showLabel || itemLayout && itemLayout.showLabel) {\n        var query = !isGeo ? dataIdx : region.name;\n        var labelFetcher = void 0;\n\n        if (!data || dataIdx >= 0) {\n          labelFetcher = mapOrGeoModel;\n        }\n\n        var centerPt = transformPoint(region.center);\n        var textEl = new graphic.Text({\n          x: centerPt[0],\n          y: centerPt[1],\n          scaleX: 1 / group.scaleX,\n          scaleY: 1 / group.scaleY,\n          z2: 10,\n          silent: true\n        });\n        setLabelStyle(textEl, getLabelStatesModels(regionModel), {\n          labelFetcher: labelFetcher,\n          labelDataIndex: query,\n          defaultText: region.name\n        }, {\n          normal: {\n            align: 'center',\n            verticalAlign: 'middle'\n          }\n        });\n        compoundPath.setTextContent(textEl);\n        compoundPath.setTextConfig({\n          local: true\n        });\n        compoundPath.disableLabelAnimation = true;\n\n        if (!isFirstDraw) {\n          graphic.updateProps(textEl, {\n            scaleX: 1 / targetScaleX,\n            scaleY: 1 / targetScaleY\n          }, mapOrGeoModel);\n        }\n      }\n\n      if (data) {\n        data.setItemGraphicEl(dataIdx, regionGroup);\n      } else {\n        var regionModel_1 = mapOrGeoModel.getRegionModel(region.name);\n        getECData(compoundPath).eventData = {\n          componentType: 'geo',\n          componentIndex: mapOrGeoModel.componentIndex,\n          geoIndex: mapOrGeoModel.componentIndex,\n          name: region.name,\n          region: regionModel_1 && regionModel_1.option || {}\n        };\n      }\n\n      var groupRegions = regionGroup.__regions || (regionGroup.__regions = []);\n      groupRegions.push(region);\n      regionGroup.highDownSilentOnTouch = !!mapOrGeoModel.get('selectedMode');\n      enableHoverEmphasis(regionGroup, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n      regionsGroup.add(regionGroup);\n    });\n\n    this._updateController(mapOrGeoModel, ecModel, api);\n\n    this._updateMapSelectHandler(mapOrGeoModel, regionsGroup, api, fromView);\n  };\n\n  MapDraw.prototype.remove = function () {\n    this._regionsGroup.removeAll();\n\n    this._backgroundGroup.removeAll();\n\n    this._controller.dispose();\n\n    this._mapName && geoSourceManager.removeGraphic(this._mapName, this.uid);\n    this._mapName = null;\n    this._controllerHost = null;\n  };\n\n  MapDraw.prototype._updateBackground = function (geo) {\n    var mapName = geo.map;\n\n    if (this._mapName !== mapName) {\n      zrUtil.each(geoSourceManager.makeGraphic(mapName, this.uid), function (root) {\n        this._backgroundGroup.add(root);\n      }, this);\n    }\n\n    this._mapName = mapName;\n  };\n\n  MapDraw.prototype._updateController = function (mapOrGeoModel, ecModel, api) {\n    var geo = mapOrGeoModel.coordinateSystem;\n    var controller = this._controller;\n    var controllerHost = this._controllerHost;\n    controllerHost.zoomLimit = mapOrGeoModel.get('scaleLimit');\n    controllerHost.zoom = geo.getZoom();\n    controller.enable(mapOrGeoModel.get('roam') || false);\n    var mainType = mapOrGeoModel.mainType;\n\n    function makeActionBase() {\n      var action = {\n        type: 'geoRoam',\n        componentType: mainType\n      };\n      action[mainType + 'Id'] = mapOrGeoModel.id;\n      return action;\n    }\n\n    controller.off('pan').on('pan', function (e) {\n      this._mouseDownFlag = false;\n      roamHelper.updateViewOnPan(controllerHost, e.dx, e.dy);\n      api.dispatchAction(zrUtil.extend(makeActionBase(), {\n        dx: e.dx,\n        dy: e.dy\n      }));\n    }, this);\n    controller.off('zoom').on('zoom', function (e) {\n      this._mouseDownFlag = false;\n      roamHelper.updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\n      api.dispatchAction(zrUtil.extend(makeActionBase(), {\n        zoom: e.scale,\n        originX: e.originX,\n        originY: e.originY\n      }));\n      var group = this.group;\n\n      this._regionsGroup.traverse(function (el) {\n        var textContent = el.getTextContent();\n\n        if (textContent) {\n          textContent.scaleX = 1 / group.scaleX;\n          textContent.scaleY = 1 / group.scaleY;\n          textContent.markRedraw();\n        }\n      });\n    }, this);\n    controller.setPointerChecker(function (e, x, y) {\n      return geo.getViewRectAfterRoam().contain(x, y) && !onIrrelevantElement(e, api, mapOrGeoModel);\n    });\n  };\n\n  MapDraw.prototype._updateMapSelectHandler = function (mapOrGeoModel, regionsGroup, api, fromView) {\n    var mapDraw = this;\n    regionsGroup.off('mousedown');\n\n    if (mapOrGeoModel.get('selectedMode')) {\n      regionsGroup.on('mousedown', function () {\n        mapDraw._mouseDownFlag = true;\n      });\n      regionsGroup.on('click', function (e) {\n        if (!mapDraw._mouseDownFlag) {\n          return;\n        }\n\n        mapDraw._mouseDownFlag = false;\n      });\n    }\n  };\n\n  return MapDraw;\n}();\n\n;\nexport default MapDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport MapDraw from '../../component/helper/MapDraw';\nimport ChartView from '../../view/Chart';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { Z2_EMPHASIS_LIFT } from '../../util/states';\n;\n\nvar MapView = function (_super) {\n  __extends(MapView, _super);\n\n  function MapView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MapView.type;\n    return _this;\n  }\n\n  MapView.prototype.render = function (mapModel, ecModel, api, payload) {\n    if (payload && payload.type === 'mapToggleSelect' && payload.from === this.uid) {\n      return;\n    }\n\n    var group = this.group;\n    group.removeAll();\n\n    if (mapModel.getHostGeoModel()) {\n      return;\n    }\n\n    if (!(payload && payload.type === 'geoRoam' && payload.componentType === 'series' && payload.seriesId === mapModel.id)) {\n      if (mapModel.needsDrawMap) {\n        var mapDraw = this._mapDraw || new MapDraw(api);\n        group.add(mapDraw.group);\n        mapDraw.draw(mapModel, ecModel, api, this, payload);\n        this._mapDraw = mapDraw;\n      } else {\n        this._mapDraw && this._mapDraw.remove();\n        this._mapDraw = null;\n      }\n    } else {\n      var mapDraw = this._mapDraw;\n      mapDraw && group.add(mapDraw.group);\n    }\n\n    mapModel.get('showLegendSymbol') && ecModel.getComponent('legend') && this._renderSymbols(mapModel, ecModel, api);\n  };\n\n  MapView.prototype.remove = function () {\n    this._mapDraw && this._mapDraw.remove();\n    this._mapDraw = null;\n    this.group.removeAll();\n  };\n\n  MapView.prototype.dispose = function () {\n    this._mapDraw && this._mapDraw.remove();\n    this._mapDraw = null;\n  };\n\n  MapView.prototype._renderSymbols = function (mapModel, ecModel, api) {\n    var originalData = mapModel.originalData;\n    var group = this.group;\n    originalData.each(originalData.mapDimension('value'), function (value, originalDataIndex) {\n      if (isNaN(value)) {\n        return;\n      }\n\n      var layout = originalData.getItemLayout(originalDataIndex);\n\n      if (!layout || !layout.point) {\n        return;\n      }\n\n      var point = layout.point;\n      var offset = layout.offset;\n      var circle = new graphic.Circle({\n        style: {\n          fill: mapModel.getData().getVisual('style').fill\n        },\n        shape: {\n          cx: point[0] + offset * 9,\n          cy: point[1],\n          r: 3\n        },\n        silent: true,\n        z2: 8 + (!offset ? Z2_EMPHASIS_LIFT + 1 : 0)\n      });\n\n      if (!offset) {\n        var fullData = mapModel.mainSeries.getData();\n        var name_1 = originalData.getName(originalDataIndex);\n        var fullIndex_1 = fullData.indexOfName(name_1);\n        var itemModel = originalData.getItemModel(originalDataIndex);\n        var labelModel = itemModel.getModel('label');\n        var regionGroup = fullData.getItemGraphicEl(fullIndex_1);\n        setLabelStyle(circle, getLabelStatesModels(itemModel), {\n          labelFetcher: {\n            getFormattedLabel: function (idx, state) {\n              return mapModel.getFormattedLabel(fullIndex_1, state);\n            }\n          }\n        });\n        circle.disableLabelAnimation = true;\n\n        if (!labelModel.get('position')) {\n          circle.setTextConfig({\n            position: 'bottom'\n          });\n        }\n\n        regionGroup.onHoverStateChange = function (toState) {\n          circle.useState(toState);\n        };\n      }\n\n      group.add(circle);\n    });\n  };\n\n  MapView.type = 'map';\n  return MapView;\n}(ChartView);\n\nexport default MapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport createListSimply from '../helper/createListSimply';\nimport SeriesModel from '../../model/Series';\nimport geoSourceManager from '../../coord/geo/geoSourceManager';\nimport { makeSeriesEncodeForNameBased } from '../../data/helper/sourceHelper';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup';\n\nvar MapSeries = function (_super) {\n  __extends(MapSeries, _super);\n\n  function MapSeries() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MapSeries.type;\n    _this.needsDrawMap = false;\n    _this.seriesGroup = [];\n\n    _this.getTooltipPosition = function (dataIndex) {\n      if (dataIndex != null) {\n        var name_1 = this.getData().getName(dataIndex);\n        var geo = this.coordinateSystem;\n        var region = geo.getRegion(name_1);\n        return region && geo.dataToPoint(region.center);\n      }\n    };\n\n    return _this;\n  }\n\n  MapSeries.prototype.getInitialData = function (option) {\n    var data = createListSimply(this, {\n      coordDimensions: ['value'],\n      encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)\n    });\n    var dataNameMap = zrUtil.createHashMap();\n    var toAppendNames = [];\n\n    for (var i = 0, len = data.count(); i < len; i++) {\n      var name_2 = data.getName(i);\n      dataNameMap.set(name_2, true);\n    }\n\n    var geoSource = geoSourceManager.load(this.getMapType(), this.option.nameMap, this.option.nameProperty);\n    zrUtil.each(geoSource.regions, function (region) {\n      var name = region.name;\n\n      if (!dataNameMap.get(name)) {\n        toAppendNames.push(name);\n      }\n    });\n    data.appendValues([], toAppendNames);\n    return data;\n  };\n\n  MapSeries.prototype.getHostGeoModel = function () {\n    var geoIndex = this.option.geoIndex;\n    return geoIndex != null ? this.ecModel.getComponent('geo', geoIndex) : null;\n  };\n\n  MapSeries.prototype.getMapType = function () {\n    return (this.getHostGeoModel() || this).option.map;\n  };\n\n  MapSeries.prototype.getRawValue = function (dataIndex) {\n    var data = this.getData();\n    return data.get(data.mapDimension('value'), dataIndex);\n  };\n\n  MapSeries.prototype.getRegionModel = function (regionName) {\n    var data = this.getData();\n    return data.getItemModel(data.indexOfName(regionName));\n  };\n\n  MapSeries.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var data = this.getData();\n    var value = this.getRawValue(dataIndex);\n    var name = data.getName(dataIndex);\n    var seriesGroup = this.seriesGroup;\n    var seriesNames = [];\n\n    for (var i = 0; i < seriesGroup.length; i++) {\n      var otherIndex = seriesGroup[i].originalData.indexOfName(name);\n      var valueDim = data.mapDimension('value');\n\n      if (!isNaN(seriesGroup[i].originalData.get(valueDim, otherIndex))) {\n        seriesNames.push(seriesGroup[i].name);\n      }\n    }\n\n    return createTooltipMarkup('section', {\n      header: seriesNames.join(', '),\n      noHeader: !seriesNames.length,\n      blocks: [createTooltipMarkup('nameValue', {\n        name: name,\n        value: value\n      })]\n    });\n  };\n\n  MapSeries.prototype.setZoom = function (zoom) {\n    this.option.zoom = zoom;\n  };\n\n  MapSeries.prototype.setCenter = function (center) {\n    this.option.center = center;\n  };\n\n  MapSeries.type = 'series.map';\n  MapSeries.dependencies = ['geo'];\n  MapSeries.layoutMode = 'box';\n  MapSeries.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'geo',\n    map: '',\n    left: 'center',\n    top: 'center',\n    aspectScale: 0.75,\n    showLegendSymbol: true,\n    boundingCoords: null,\n    center: null,\n    zoom: 1,\n    scaleLimit: null,\n    selectedMode: true,\n    label: {\n      show: false,\n      color: '#000'\n    },\n    itemStyle: {\n      borderWidth: 0.5,\n      borderColor: '#444',\n      areaColor: '#eee'\n    },\n    emphasis: {\n      label: {\n        show: true,\n        color: 'rgb(100,0,0)'\n      },\n      itemStyle: {\n        areaColor: 'rgba(255,215,0,0.8)'\n      }\n    },\n    select: {\n      label: {\n        show: true,\n        color: 'rgb(100,0,0)'\n      },\n      itemStyle: {\n        color: 'rgba(255,215,0,0.8)'\n      }\n    },\n    nameProperty: 'name'\n  };\n  return MapSeries;\n}(SeriesModel);\n\nexport default MapSeries;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nfunction dataStatistics(datas, statisticType) {\n  var dataNameMap = {};\n  zrUtil.each(datas, function (data) {\n    data.each(data.mapDimension('value'), function (value, idx) {\n      var mapKey = 'ec-' + data.getName(idx);\n      dataNameMap[mapKey] = dataNameMap[mapKey] || [];\n\n      if (!isNaN(value)) {\n        dataNameMap[mapKey].push(value);\n      }\n    });\n  });\n  return datas[0].map(datas[0].mapDimension('value'), function (value, idx) {\n    var mapKey = 'ec-' + datas[0].getName(idx);\n    var sum = 0;\n    var min = Infinity;\n    var max = -Infinity;\n    var len = dataNameMap[mapKey].length;\n\n    for (var i = 0; i < len; i++) {\n      min = Math.min(min, dataNameMap[mapKey][i]);\n      max = Math.max(max, dataNameMap[mapKey][i]);\n      sum += dataNameMap[mapKey][i];\n    }\n\n    var result;\n\n    if (statisticType === 'min') {\n      result = min;\n    } else if (statisticType === 'max') {\n      result = max;\n    } else if (statisticType === 'average') {\n      result = sum / len;\n    } else {\n      result = sum;\n    }\n\n    return len === 0 ? NaN : result;\n  });\n}\n\nexport default function mapDataStatistic(ecModel) {\n  var seriesGroups = {};\n  ecModel.eachSeriesByType('map', function (seriesModel) {\n    var hostGeoModel = seriesModel.getHostGeoModel();\n    var key = hostGeoModel ? 'o' + hostGeoModel.id : 'i' + seriesModel.getMapType();\n    (seriesGroups[key] = seriesGroups[key] || []).push(seriesModel);\n  });\n  zrUtil.each(seriesGroups, function (seriesList, key) {\n    var data = dataStatistics(zrUtil.map(seriesList, function (seriesModel) {\n      return seriesModel.getData();\n    }), seriesList[0].get('mapValueCalculation'));\n\n    for (var i = 0; i < seriesList.length; i++) {\n      seriesList[i].originalData = seriesList[i].getData();\n    }\n\n    for (var i = 0; i < seriesList.length; i++) {\n      seriesList[i].seriesGroup = seriesList;\n      seriesList[i].needsDrawMap = i === 0 && !seriesList[i].getHostGeoModel();\n      seriesList[i].setData(data.cloneShallow());\n      seriesList[i].mainSeries = seriesList[0];\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function mapSymbolLayout(ecModel) {\n  var processedMapType = {};\n  ecModel.eachSeriesByType('map', function (mapSeries) {\n    var mapType = mapSeries.getMapType();\n\n    if (mapSeries.getHostGeoModel() || processedMapType[mapType]) {\n      return;\n    }\n\n    var mapSymbolOffsets = {};\n    zrUtil.each(mapSeries.seriesGroup, function (subMapSeries) {\n      var geo = subMapSeries.coordinateSystem;\n      var data = subMapSeries.originalData;\n\n      if (subMapSeries.get('showLegendSymbol') && ecModel.getComponent('legend')) {\n        data.each(data.mapDimension('value'), function (value, idx) {\n          var name = data.getName(idx);\n          var region = geo.getRegion(name);\n\n          if (!region || isNaN(value)) {\n            return;\n          }\n\n          var offset = mapSymbolOffsets[name] || 0;\n          var point = geo.dataToPoint(region.center);\n          mapSymbolOffsets[name] = offset + 1;\n          data.setItemLayout(idx, {\n            point: point,\n            offset: offset\n          });\n        });\n      }\n    });\n    var data = mapSeries.getData();\n    data.each(function (idx) {\n      var name = data.getName(idx);\n      var layout = data.getItemLayout(idx) || {};\n      layout.showLabel = !mapSymbolOffsets[name];\n      data.setItemLayout(idx, layout);\n    });\n    processedMapType[mapType] = true;\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport MapView from './MapView';\nimport MapSeries from './MapSeries';\nimport mapDataStatistic from './mapDataStatistic';\nimport mapSymbolLayout from './mapSymbolLayout';\nimport { createLegacyDataSelectAction } from '../../legacy/dataSelectAction';\nexport function install(registers) {\n  registers.registerChartView(MapView);\n  registers.registerSeriesModel(MapSeries);\n  registers.registerLayout(mapSymbolLayout);\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, mapDataStatistic);\n  createLegacyDataSelectAction('map', registers.registerAction);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as layout from '../../util/layout';\nexport function init(inRoot) {\n  var root = inRoot;\n  root.hierNode = {\n    defaultAncestor: null,\n    ancestor: root,\n    prelim: 0,\n    modifier: 0,\n    change: 0,\n    shift: 0,\n    i: 0,\n    thread: null\n  };\n  var nodes = [root];\n  var node;\n  var children;\n\n  while (node = nodes.pop()) {\n    children = node.children;\n\n    if (node.isExpand && children.length) {\n      var n = children.length;\n\n      for (var i = n - 1; i >= 0; i--) {\n        var child = children[i];\n        child.hierNode = {\n          defaultAncestor: null,\n          ancestor: child,\n          prelim: 0,\n          modifier: 0,\n          change: 0,\n          shift: 0,\n          i: i,\n          thread: null\n        };\n        nodes.push(child);\n      }\n    }\n  }\n}\nexport function firstWalk(node, separation) {\n  var children = node.isExpand ? node.children : [];\n  var siblings = node.parentNode.children;\n  var subtreeW = node.hierNode.i ? siblings[node.hierNode.i - 1] : null;\n\n  if (children.length) {\n    executeShifts(node);\n    var midPoint = (children[0].hierNode.prelim + children[children.length - 1].hierNode.prelim) / 2;\n\n    if (subtreeW) {\n      node.hierNode.prelim = subtreeW.hierNode.prelim + separation(node, subtreeW);\n      node.hierNode.modifier = node.hierNode.prelim - midPoint;\n    } else {\n      node.hierNode.prelim = midPoint;\n    }\n  } else if (subtreeW) {\n    node.hierNode.prelim = subtreeW.hierNode.prelim + separation(node, subtreeW);\n  }\n\n  node.parentNode.hierNode.defaultAncestor = apportion(node, subtreeW, node.parentNode.hierNode.defaultAncestor || siblings[0], separation);\n}\nexport function secondWalk(node) {\n  var nodeX = node.hierNode.prelim + node.parentNode.hierNode.modifier;\n  node.setLayout({\n    x: nodeX\n  }, true);\n  node.hierNode.modifier += node.parentNode.hierNode.modifier;\n}\nexport function separation(cb) {\n  return arguments.length ? cb : defaultSeparation;\n}\nexport function radialCoordinate(rad, r) {\n  rad -= Math.PI / 2;\n  return {\n    x: r * Math.cos(rad),\n    y: r * Math.sin(rad)\n  };\n}\nexport function getViewRect(seriesModel, api) {\n  return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n}\n\nfunction executeShifts(node) {\n  var children = node.children;\n  var n = children.length;\n  var shift = 0;\n  var change = 0;\n\n  while (--n >= 0) {\n    var child = children[n];\n    child.hierNode.prelim += shift;\n    child.hierNode.modifier += shift;\n    change += child.hierNode.change;\n    shift += child.hierNode.shift + change;\n  }\n}\n\nfunction apportion(subtreeV, subtreeW, ancestor, separation) {\n  if (subtreeW) {\n    var nodeOutRight = subtreeV;\n    var nodeInRight = subtreeV;\n    var nodeOutLeft = nodeInRight.parentNode.children[0];\n    var nodeInLeft = subtreeW;\n    var sumOutRight = nodeOutRight.hierNode.modifier;\n    var sumInRight = nodeInRight.hierNode.modifier;\n    var sumOutLeft = nodeOutLeft.hierNode.modifier;\n    var sumInLeft = nodeInLeft.hierNode.modifier;\n\n    while (nodeInLeft = nextRight(nodeInLeft), nodeInRight = nextLeft(nodeInRight), nodeInLeft && nodeInRight) {\n      nodeOutRight = nextRight(nodeOutRight);\n      nodeOutLeft = nextLeft(nodeOutLeft);\n      nodeOutRight.hierNode.ancestor = subtreeV;\n      var shift = nodeInLeft.hierNode.prelim + sumInLeft - nodeInRight.hierNode.prelim - sumInRight + separation(nodeInLeft, nodeInRight);\n\n      if (shift > 0) {\n        moveSubtree(nextAncestor(nodeInLeft, subtreeV, ancestor), subtreeV, shift);\n        sumInRight += shift;\n        sumOutRight += shift;\n      }\n\n      sumInLeft += nodeInLeft.hierNode.modifier;\n      sumInRight += nodeInRight.hierNode.modifier;\n      sumOutRight += nodeOutRight.hierNode.modifier;\n      sumOutLeft += nodeOutLeft.hierNode.modifier;\n    }\n\n    if (nodeInLeft && !nextRight(nodeOutRight)) {\n      nodeOutRight.hierNode.thread = nodeInLeft;\n      nodeOutRight.hierNode.modifier += sumInLeft - sumOutRight;\n    }\n\n    if (nodeInRight && !nextLeft(nodeOutLeft)) {\n      nodeOutLeft.hierNode.thread = nodeInRight;\n      nodeOutLeft.hierNode.modifier += sumInRight - sumOutLeft;\n      ancestor = subtreeV;\n    }\n  }\n\n  return ancestor;\n}\n\nfunction nextRight(node) {\n  var children = node.children;\n  return children.length && node.isExpand ? children[children.length - 1] : node.hierNode.thread;\n}\n\nfunction nextLeft(node) {\n  var children = node.children;\n  return children.length && node.isExpand ? children[0] : node.hierNode.thread;\n}\n\nfunction nextAncestor(nodeInLeft, node, ancestor) {\n  return nodeInLeft.hierNode.ancestor.parentNode === node.parentNode ? nodeInLeft.hierNode.ancestor : ancestor;\n}\n\nfunction moveSubtree(wl, wr, shift) {\n  var change = shift / (wr.hierNode.i - wl.hierNode.i);\n  wr.hierNode.change -= change;\n  wr.hierNode.shift += shift;\n  wr.hierNode.modifier += shift;\n  wr.hierNode.prelim += shift;\n  wl.hierNode.change += change;\n}\n\nfunction defaultSeparation(node1, node2) {\n  return node1.parentNode === node2.parentNode ? 1 : 2;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as vector from 'zrender/lib/core/vector';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport Transformable from 'zrender/lib/core/Transformable';\nvar v2ApplyTransform = vector.applyTransform;\n\nvar View = function (_super) {\n  __extends(View, _super);\n\n  function View(name) {\n    var _this = _super.call(this) || this;\n\n    _this.type = 'view';\n    _this.dimensions = ['x', 'y'];\n    _this._roamTransformable = new Transformable();\n    _this._rawTransformable = new Transformable();\n    _this.name = name;\n    return _this;\n  }\n\n  View.prototype.setBoundingRect = function (x, y, width, height) {\n    this._rect = new BoundingRect(x, y, width, height);\n    return this._rect;\n  };\n\n  View.prototype.getBoundingRect = function () {\n    return this._rect;\n  };\n\n  View.prototype.setViewRect = function (x, y, width, height) {\n    this.transformTo(x, y, width, height);\n    this._viewRect = new BoundingRect(x, y, width, height);\n  };\n\n  View.prototype.transformTo = function (x, y, width, height) {\n    var rect = this.getBoundingRect();\n    var rawTransform = this._rawTransformable;\n    rawTransform.transform = rect.calculateTransform(new BoundingRect(x, y, width, height));\n    rawTransform.decomposeTransform();\n\n    this._updateTransform();\n  };\n\n  View.prototype.setCenter = function (centerCoord) {\n    if (!centerCoord) {\n      return;\n    }\n\n    this._center = centerCoord;\n\n    this._updateCenterAndZoom();\n  };\n\n  View.prototype.setZoom = function (zoom) {\n    zoom = zoom || 1;\n    var zoomLimit = this.zoomLimit;\n\n    if (zoomLimit) {\n      if (zoomLimit.max != null) {\n        zoom = Math.min(zoomLimit.max, zoom);\n      }\n\n      if (zoomLimit.min != null) {\n        zoom = Math.max(zoomLimit.min, zoom);\n      }\n    }\n\n    this._zoom = zoom;\n\n    this._updateCenterAndZoom();\n  };\n\n  View.prototype.getDefaultCenter = function () {\n    var rawRect = this.getBoundingRect();\n    var cx = rawRect.x + rawRect.width / 2;\n    var cy = rawRect.y + rawRect.height / 2;\n    return [cx, cy];\n  };\n\n  View.prototype.getCenter = function () {\n    return this._center || this.getDefaultCenter();\n  };\n\n  View.prototype.getZoom = function () {\n    return this._zoom || 1;\n  };\n\n  View.prototype.getRoamTransform = function () {\n    return this._roamTransformable.getLocalTransform();\n  };\n\n  View.prototype._updateCenterAndZoom = function () {\n    var rawTransformMatrix = this._rawTransformable.getLocalTransform();\n\n    var roamTransform = this._roamTransformable;\n    var defaultCenter = this.getDefaultCenter();\n    var center = this.getCenter();\n    var zoom = this.getZoom();\n    center = vector.applyTransform([], center, rawTransformMatrix);\n    defaultCenter = vector.applyTransform([], defaultCenter, rawTransformMatrix);\n    roamTransform.originX = center[0];\n    roamTransform.originY = center[1];\n    roamTransform.x = defaultCenter[0] - center[0];\n    roamTransform.y = defaultCenter[1] - center[1];\n    roamTransform.scaleX = roamTransform.scaleY = zoom;\n\n    this._updateTransform();\n  };\n\n  View.prototype._updateTransform = function () {\n    var roamTransformable = this._roamTransformable;\n    var rawTransformable = this._rawTransformable;\n    rawTransformable.parent = roamTransformable;\n    roamTransformable.updateTransform();\n    rawTransformable.updateTransform();\n    matrix.copy(this.transform || (this.transform = []), rawTransformable.transform || matrix.create());\n    this._rawTransform = rawTransformable.getLocalTransform();\n    this.invTransform = this.invTransform || [];\n    matrix.invert(this.invTransform, this.transform);\n    this.decomposeTransform();\n  };\n\n  View.prototype.getTransformInfo = function () {\n    var roamTransform = this._roamTransformable.transform;\n    var rawTransformable = this._rawTransformable;\n    return {\n      roamTransform: roamTransform ? zrUtil.slice(roamTransform) : matrix.create(),\n      rawScaleX: rawTransformable.scaleX,\n      rawScaleY: rawTransformable.scaleY,\n      rawX: rawTransformable.x,\n      rawY: rawTransformable.y\n    };\n  };\n\n  View.prototype.getViewRect = function () {\n    return this._viewRect;\n  };\n\n  View.prototype.getViewRectAfterRoam = function () {\n    var rect = this.getBoundingRect().clone();\n    rect.applyTransform(this.transform);\n    return rect;\n  };\n\n  View.prototype.dataToPoint = function (data, noRoam, out) {\n    var transform = noRoam ? this._rawTransform : this.transform;\n    out = out || [];\n    return transform ? v2ApplyTransform(out, data, transform) : vector.copy(out, data);\n  };\n\n  View.prototype.pointToData = function (point) {\n    var invTransform = this.invTransform;\n    return invTransform ? v2ApplyTransform([], point, invTransform) : [point[0], point[1]];\n  };\n\n  View.prototype.convertToPixel = function (ecModel, finder, value) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? coordSys.dataToPoint(value) : null;\n  };\n\n  View.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? coordSys.pointToData(pixel) : null;\n  };\n\n  View.prototype.containPoint = function (point) {\n    return this.getViewRectAfterRoam().contain(point[0], point[1]);\n  };\n\n  View.dimensions = ['x', 'y'];\n  return View;\n}(Transformable);\n\nfunction getCoordSys(finder) {\n  var seriesModel = finder.seriesModel;\n  return seriesModel ? seriesModel.coordinateSystem : null;\n}\n\nexport default View;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport SymbolClz from '../helper/Symbol';\nimport { radialCoordinate } from './layoutHelper';\nimport * as bbox from 'zrender/lib/core/bbox';\nimport View from '../../coord/View';\nimport * as roamHelper from '../../component/helper/roamHelper';\nimport RoamController from '../../component/helper/RoamController';\nimport { onIrrelevantElement } from '../../component/helper/cursorHelper';\nimport { parsePercent } from '../../util/number';\nimport ChartView from '../../view/Chart';\nimport Path from 'zrender/lib/graphic/Path';\nimport { setStatesStylesFromModel, setStatesFlag, setDefaultStateProxy, HOVER_STATE_BLUR } from '../../util/states';\n\nvar TreeEdgeShape = function () {\n  function TreeEdgeShape() {\n    this.parentPoint = [];\n    this.childPoints = [];\n  }\n\n  return TreeEdgeShape;\n}();\n\nvar TreePath = function (_super) {\n  __extends(TreePath, _super);\n\n  function TreePath(opts) {\n    return _super.call(this, opts) || this;\n  }\n\n  TreePath.prototype.getDefaultStyle = function () {\n    return {\n      stroke: '#000',\n      fill: null\n    };\n  };\n\n  TreePath.prototype.getDefaultShape = function () {\n    return new TreeEdgeShape();\n  };\n\n  TreePath.prototype.buildPath = function (ctx, shape) {\n    var childPoints = shape.childPoints;\n    var childLen = childPoints.length;\n    var parentPoint = shape.parentPoint;\n    var firstChildPos = childPoints[0];\n    var lastChildPos = childPoints[childLen - 1];\n\n    if (childLen === 1) {\n      ctx.moveTo(parentPoint[0], parentPoint[1]);\n      ctx.lineTo(firstChildPos[0], firstChildPos[1]);\n      return;\n    }\n\n    var orient = shape.orient;\n    var forkDim = orient === 'TB' || orient === 'BT' ? 0 : 1;\n    var otherDim = 1 - forkDim;\n    var forkPosition = parsePercent(shape.forkPosition, 1);\n    var tmpPoint = [];\n    tmpPoint[forkDim] = parentPoint[forkDim];\n    tmpPoint[otherDim] = parentPoint[otherDim] + (lastChildPos[otherDim] - parentPoint[otherDim]) * forkPosition;\n    ctx.moveTo(parentPoint[0], parentPoint[1]);\n    ctx.lineTo(tmpPoint[0], tmpPoint[1]);\n    ctx.moveTo(firstChildPos[0], firstChildPos[1]);\n    tmpPoint[forkDim] = firstChildPos[forkDim];\n    ctx.lineTo(tmpPoint[0], tmpPoint[1]);\n    tmpPoint[forkDim] = lastChildPos[forkDim];\n    ctx.lineTo(tmpPoint[0], tmpPoint[1]);\n    ctx.lineTo(lastChildPos[0], lastChildPos[1]);\n\n    for (var i = 1; i < childLen - 1; i++) {\n      var point = childPoints[i];\n      ctx.moveTo(point[0], point[1]);\n      tmpPoint[forkDim] = point[forkDim];\n      ctx.lineTo(tmpPoint[0], tmpPoint[1]);\n    }\n  };\n\n  return TreePath;\n}(Path);\n\nvar TreeView = function (_super) {\n  __extends(TreeView, _super);\n\n  function TreeView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TreeView.type;\n    _this._mainGroup = new graphic.Group();\n    return _this;\n  }\n\n  TreeView.prototype.init = function (ecModel, api) {\n    this._controller = new RoamController(api.getZr());\n    this._controllerHost = {\n      target: this.group\n    };\n    this.group.add(this._mainGroup);\n  };\n\n  TreeView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    var layoutInfo = seriesModel.layoutInfo;\n    var group = this._mainGroup;\n    var layout = seriesModel.get('layout');\n\n    if (layout === 'radial') {\n      group.x = layoutInfo.x + layoutInfo.width / 2;\n      group.y = layoutInfo.y + layoutInfo.height / 2;\n    } else {\n      group.x = layoutInfo.x;\n      group.y = layoutInfo.y;\n    }\n\n    this._updateViewCoordSys(seriesModel);\n\n    this._updateController(seriesModel, ecModel, api);\n\n    var oldData = this._data;\n    data.diff(oldData).add(function (newIdx) {\n      if (symbolNeedsDraw(data, newIdx)) {\n        updateNode(data, newIdx, null, group, seriesModel);\n      }\n    }).update(function (newIdx, oldIdx) {\n      var symbolEl = oldData.getItemGraphicEl(oldIdx);\n\n      if (!symbolNeedsDraw(data, newIdx)) {\n        symbolEl && removeNode(oldData, oldIdx, symbolEl, group, seriesModel);\n        return;\n      }\n\n      updateNode(data, newIdx, symbolEl, group, seriesModel);\n    }).remove(function (oldIdx) {\n      var symbolEl = oldData.getItemGraphicEl(oldIdx);\n\n      if (symbolEl) {\n        removeNode(oldData, oldIdx, symbolEl, group, seriesModel);\n      }\n    }).execute();\n    this._nodeScaleRatio = seriesModel.get('nodeScaleRatio');\n\n    this._updateNodeAndLinkScale(seriesModel);\n\n    if (seriesModel.get('expandAndCollapse') === true) {\n      data.eachItemGraphicEl(function (el, dataIndex) {\n        el.off('click').on('click', function () {\n          api.dispatchAction({\n            type: 'treeExpandAndCollapse',\n            seriesId: seriesModel.id,\n            dataIndex: dataIndex\n          });\n        });\n      });\n    }\n\n    this._data = data;\n  };\n\n  TreeView.prototype._updateViewCoordSys = function (seriesModel) {\n    var data = seriesModel.getData();\n    var points = [];\n    data.each(function (idx) {\n      var layout = data.getItemLayout(idx);\n\n      if (layout && !isNaN(layout.x) && !isNaN(layout.y)) {\n        points.push([+layout.x, +layout.y]);\n      }\n    });\n    var min = [];\n    var max = [];\n    bbox.fromPoints(points, min, max);\n    var oldMin = this._min;\n    var oldMax = this._max;\n\n    if (max[0] - min[0] === 0) {\n      min[0] = oldMin ? oldMin[0] : min[0] - 1;\n      max[0] = oldMax ? oldMax[0] : max[0] + 1;\n    }\n\n    if (max[1] - min[1] === 0) {\n      min[1] = oldMin ? oldMin[1] : min[1] - 1;\n      max[1] = oldMax ? oldMax[1] : max[1] + 1;\n    }\n\n    var viewCoordSys = seriesModel.coordinateSystem = new View();\n    viewCoordSys.zoomLimit = seriesModel.get('scaleLimit');\n    viewCoordSys.setBoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n    viewCoordSys.setCenter(seriesModel.get('center'));\n    viewCoordSys.setZoom(seriesModel.get('zoom'));\n    this.group.attr({\n      x: viewCoordSys.x,\n      y: viewCoordSys.y,\n      scaleX: viewCoordSys.scaleX,\n      scaleY: viewCoordSys.scaleY\n    });\n    this._min = min;\n    this._max = max;\n  };\n\n  TreeView.prototype._updateController = function (seriesModel, ecModel, api) {\n    var _this = this;\n\n    var controller = this._controller;\n    var controllerHost = this._controllerHost;\n    var group = this.group;\n    controller.setPointerChecker(function (e, x, y) {\n      var rect = group.getBoundingRect();\n      rect.applyTransform(group.transform);\n      return rect.contain(x, y) && !onIrrelevantElement(e, api, seriesModel);\n    });\n    controller.enable(seriesModel.get('roam'));\n    controllerHost.zoomLimit = seriesModel.get('scaleLimit');\n    controllerHost.zoom = seriesModel.coordinateSystem.getZoom();\n    controller.off('pan').off('zoom').on('pan', function (e) {\n      roamHelper.updateViewOnPan(controllerHost, e.dx, e.dy);\n      api.dispatchAction({\n        seriesId: seriesModel.id,\n        type: 'treeRoam',\n        dx: e.dx,\n        dy: e.dy\n      });\n    }).on('zoom', function (e) {\n      roamHelper.updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\n      api.dispatchAction({\n        seriesId: seriesModel.id,\n        type: 'treeRoam',\n        zoom: e.scale,\n        originX: e.originX,\n        originY: e.originY\n      });\n\n      _this._updateNodeAndLinkScale(seriesModel);\n\n      api.updateLabelLayout();\n    });\n  };\n\n  TreeView.prototype._updateNodeAndLinkScale = function (seriesModel) {\n    var data = seriesModel.getData();\n\n    var nodeScale = this._getNodeGlobalScale(seriesModel);\n\n    data.eachItemGraphicEl(function (el, idx) {\n      el.setSymbolScale(nodeScale);\n    });\n  };\n\n  TreeView.prototype._getNodeGlobalScale = function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys.type !== 'view') {\n      return 1;\n    }\n\n    var nodeScaleRatio = this._nodeScaleRatio;\n    var groupZoom = coordSys.scaleX || 1;\n    var roamZoom = coordSys.getZoom();\n    var nodeScale = (roamZoom - 1) * nodeScaleRatio + 1;\n    return nodeScale / groupZoom;\n  };\n\n  TreeView.prototype.dispose = function () {\n    this._controller && this._controller.dispose();\n    this._controllerHost = null;\n  };\n\n  TreeView.prototype.remove = function () {\n    this._mainGroup.removeAll();\n\n    this._data = null;\n  };\n\n  TreeView.type = 'tree';\n  return TreeView;\n}(ChartView);\n\nfunction symbolNeedsDraw(data, dataIndex) {\n  var layout = data.getItemLayout(dataIndex);\n  return layout && !isNaN(layout.x) && !isNaN(layout.y);\n}\n\nfunction updateNode(data, dataIndex, symbolEl, group, seriesModel) {\n  var isInit = !symbolEl;\n  var node = data.tree.getNodeByDataIndex(dataIndex);\n  var itemModel = node.getModel();\n  var visualColor = node.getVisual('style').fill;\n  var symbolInnerColor = node.isExpand === false && node.children.length !== 0 ? visualColor : '#fff';\n  var virtualRoot = data.tree.root;\n  var source = node.parentNode === virtualRoot ? node : node.parentNode || node;\n  var sourceSymbolEl = data.getItemGraphicEl(source.dataIndex);\n  var sourceLayout = source.getLayout();\n  var sourceOldLayout = sourceSymbolEl ? {\n    x: sourceSymbolEl.__oldX,\n    y: sourceSymbolEl.__oldY,\n    rawX: sourceSymbolEl.__radialOldRawX,\n    rawY: sourceSymbolEl.__radialOldRawY\n  } : sourceLayout;\n  var targetLayout = node.getLayout();\n\n  if (isInit) {\n    symbolEl = new SymbolClz(data, dataIndex, null, {\n      symbolInnerColor: symbolInnerColor,\n      useNameLabel: true\n    });\n    symbolEl.x = sourceOldLayout.x;\n    symbolEl.y = sourceOldLayout.y;\n  } else {\n    symbolEl.updateData(data, dataIndex, null, {\n      symbolInnerColor: symbolInnerColor,\n      useNameLabel: true\n    });\n  }\n\n  symbolEl.__radialOldRawX = symbolEl.__radialRawX;\n  symbolEl.__radialOldRawY = symbolEl.__radialRawY;\n  symbolEl.__radialRawX = targetLayout.rawX;\n  symbolEl.__radialRawY = targetLayout.rawY;\n  group.add(symbolEl);\n  data.setItemGraphicEl(dataIndex, symbolEl);\n  symbolEl.__oldX = symbolEl.x;\n  symbolEl.__oldY = symbolEl.y;\n  graphic.updateProps(symbolEl, {\n    x: targetLayout.x,\n    y: targetLayout.y\n  }, seriesModel);\n  var symbolPath = symbolEl.getSymbolPath();\n\n  if (seriesModel.get('layout') === 'radial') {\n    var realRoot = virtualRoot.children[0];\n    var rootLayout = realRoot.getLayout();\n    var length_1 = realRoot.children.length;\n    var rad = void 0;\n    var isLeft = void 0;\n\n    if (targetLayout.x === rootLayout.x && node.isExpand === true) {\n      var center = {\n        x: (realRoot.children[0].getLayout().x + realRoot.children[length_1 - 1].getLayout().x) / 2,\n        y: (realRoot.children[0].getLayout().y + realRoot.children[length_1 - 1].getLayout().y) / 2\n      };\n      rad = Math.atan2(center.y - rootLayout.y, center.x - rootLayout.x);\n\n      if (rad < 0) {\n        rad = Math.PI * 2 + rad;\n      }\n\n      isLeft = center.x < rootLayout.x;\n\n      if (isLeft) {\n        rad = rad - Math.PI;\n      }\n    } else {\n      rad = Math.atan2(targetLayout.y - rootLayout.y, targetLayout.x - rootLayout.x);\n\n      if (rad < 0) {\n        rad = Math.PI * 2 + rad;\n      }\n\n      if (node.children.length === 0 || node.children.length !== 0 && node.isExpand === false) {\n        isLeft = targetLayout.x < rootLayout.x;\n\n        if (isLeft) {\n          rad = rad - Math.PI;\n        }\n      } else {\n        isLeft = targetLayout.x > rootLayout.x;\n\n        if (!isLeft) {\n          rad = rad - Math.PI;\n        }\n      }\n    }\n\n    var textPosition = isLeft ? 'left' : 'right';\n    var normalLabelModel = itemModel.getModel('label');\n    var rotate = normalLabelModel.get('rotate');\n    var labelRotateRadian = rotate * (Math.PI / 180);\n    var textContent = symbolPath.getTextContent();\n\n    if (textContent) {\n      symbolPath.setTextConfig({\n        position: normalLabelModel.get('position') || textPosition,\n        rotation: rotate == null ? -rad : labelRotateRadian,\n        origin: 'center'\n      });\n      textContent.setStyle('verticalAlign', 'middle');\n    }\n  }\n\n  var focus = itemModel.get(['emphasis', 'focus']);\n  var focusDataIndices = focus === 'ancestor' ? node.getAncestorsIndices() : focus === 'descendant' ? node.getDescendantIndices() : null;\n\n  if (focusDataIndices) {\n    getECData(symbolEl).focus = focusDataIndices;\n  }\n\n  drawEdge(seriesModel, node, virtualRoot, symbolEl, sourceOldLayout, sourceLayout, targetLayout, group);\n\n  if (symbolEl.__edge) {\n    symbolEl.onHoverStateChange = function (toState) {\n      if (toState !== 'blur') {\n        var parentEl = node.parentNode && data.getItemGraphicEl(node.parentNode.dataIndex);\n\n        if (!(parentEl && parentEl.hoverState === HOVER_STATE_BLUR)) {\n          setStatesFlag(symbolEl.__edge, toState);\n        }\n      }\n    };\n  }\n}\n\nfunction drawEdge(seriesModel, node, virtualRoot, symbolEl, sourceOldLayout, sourceLayout, targetLayout, group) {\n  var itemModel = node.getModel();\n  var edgeShape = seriesModel.get('edgeShape');\n  var layout = seriesModel.get('layout');\n  var orient = seriesModel.getOrient();\n  var curvature = seriesModel.get(['lineStyle', 'curveness']);\n  var edgeForkPosition = seriesModel.get('edgeForkPosition');\n  var lineStyle = itemModel.getModel('lineStyle').getLineStyle();\n  var edge = symbolEl.__edge;\n\n  if (edgeShape === 'curve') {\n    if (node.parentNode && node.parentNode !== virtualRoot) {\n      if (!edge) {\n        edge = symbolEl.__edge = new graphic.BezierCurve({\n          shape: getEdgeShape(layout, orient, curvature, sourceOldLayout, sourceOldLayout)\n        });\n      }\n\n      graphic.updateProps(edge, {\n        shape: getEdgeShape(layout, orient, curvature, sourceLayout, targetLayout)\n      }, seriesModel);\n    }\n  } else if (edgeShape === 'polyline') {\n    if (layout === 'orthogonal') {\n      if (node !== virtualRoot && node.children && node.children.length !== 0 && node.isExpand === true) {\n        var children = node.children;\n        var childPoints = [];\n\n        for (var i = 0; i < children.length; i++) {\n          var childLayout = children[i].getLayout();\n          childPoints.push([childLayout.x, childLayout.y]);\n        }\n\n        if (!edge) {\n          edge = symbolEl.__edge = new TreePath({\n            shape: {\n              parentPoint: [targetLayout.x, targetLayout.y],\n              childPoints: [[targetLayout.x, targetLayout.y]],\n              orient: orient,\n              forkPosition: edgeForkPosition\n            }\n          });\n        }\n\n        graphic.updateProps(edge, {\n          shape: {\n            parentPoint: [targetLayout.x, targetLayout.y],\n            childPoints: childPoints\n          }\n        }, seriesModel);\n      }\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        throw new Error('The polyline edgeShape can only be used in orthogonal layout');\n      }\n    }\n  }\n\n  if (edge) {\n    edge.useStyle(zrUtil.defaults({\n      strokeNoScale: true,\n      fill: null\n    }, lineStyle));\n    setStatesStylesFromModel(edge, itemModel, 'lineStyle');\n    setDefaultStateProxy(edge);\n    group.add(edge);\n  }\n}\n\nfunction removeNode(data, dataIndex, symbolEl, group, seriesModel) {\n  var node = data.tree.getNodeByDataIndex(dataIndex);\n  var virtualRoot = data.tree.root;\n  var source = node.parentNode === virtualRoot ? node : node.parentNode || node;\n  var sourceLayout;\n\n  while (sourceLayout = source.getLayout(), sourceLayout == null) {\n    source = source.parentNode === virtualRoot ? source : source.parentNode || source;\n  }\n\n  var removeAnimationOpt = {\n    duration: seriesModel.get('animationDurationUpdate'),\n    easing: seriesModel.get('animationEasingUpdate')\n  };\n  graphic.removeElement(symbolEl, {\n    x: sourceLayout.x + 1,\n    y: sourceLayout.y + 1\n  }, seriesModel, {\n    cb: function () {\n      group.remove(symbolEl);\n      data.setItemGraphicEl(dataIndex, null);\n    },\n    removeOpt: removeAnimationOpt\n  });\n  symbolEl.fadeOut(null, {\n    fadeLabel: true,\n    animation: removeAnimationOpt\n  });\n  var sourceSymbolEl = data.getItemGraphicEl(source.dataIndex);\n  var sourceEdge = sourceSymbolEl.__edge;\n  var edge = symbolEl.__edge || (source.isExpand === false || source.children.length === 1 ? sourceEdge : undefined);\n  var edgeShape = seriesModel.get('edgeShape');\n  var layoutOpt = seriesModel.get('layout');\n  var orient = seriesModel.get('orient');\n  var curvature = seriesModel.get(['lineStyle', 'curveness']);\n\n  if (edge) {\n    if (edgeShape === 'curve') {\n      graphic.removeElement(edge, {\n        shape: getEdgeShape(layoutOpt, orient, curvature, sourceLayout, sourceLayout),\n        style: {\n          opacity: 0\n        }\n      }, seriesModel, {\n        cb: function () {\n          group.remove(edge);\n        },\n        removeOpt: removeAnimationOpt\n      });\n    } else if (edgeShape === 'polyline' && seriesModel.get('layout') === 'orthogonal') {\n      graphic.removeElement(edge, {\n        shape: {\n          parentPoint: [sourceLayout.x, sourceLayout.y],\n          childPoints: [[sourceLayout.x, sourceLayout.y]]\n        },\n        style: {\n          opacity: 0\n        }\n      }, seriesModel, {\n        cb: function () {\n          group.remove(edge);\n        },\n        removeOpt: removeAnimationOpt\n      });\n    }\n  }\n}\n\nfunction getEdgeShape(layoutOpt, orient, curvature, sourceLayout, targetLayout) {\n  var cpx1;\n  var cpy1;\n  var cpx2;\n  var cpy2;\n  var x1;\n  var x2;\n  var y1;\n  var y2;\n\n  if (layoutOpt === 'radial') {\n    x1 = sourceLayout.rawX;\n    y1 = sourceLayout.rawY;\n    x2 = targetLayout.rawX;\n    y2 = targetLayout.rawY;\n    var radialCoor1 = radialCoordinate(x1, y1);\n    var radialCoor2 = radialCoordinate(x1, y1 + (y2 - y1) * curvature);\n    var radialCoor3 = radialCoordinate(x2, y2 + (y1 - y2) * curvature);\n    var radialCoor4 = radialCoordinate(x2, y2);\n    return {\n      x1: radialCoor1.x || 0,\n      y1: radialCoor1.y || 0,\n      x2: radialCoor4.x || 0,\n      y2: radialCoor4.y || 0,\n      cpx1: radialCoor2.x || 0,\n      cpy1: radialCoor2.y || 0,\n      cpx2: radialCoor3.x || 0,\n      cpy2: radialCoor3.y || 0\n    };\n  } else {\n    x1 = sourceLayout.x;\n    y1 = sourceLayout.y;\n    x2 = targetLayout.x;\n    y2 = targetLayout.y;\n\n    if (orient === 'LR' || orient === 'RL') {\n      cpx1 = x1 + (x2 - x1) * curvature;\n      cpy1 = y1;\n      cpx2 = x2 + (x1 - x2) * curvature;\n      cpy2 = y2;\n    }\n\n    if (orient === 'TB' || orient === 'BT') {\n      cpx1 = x1;\n      cpy1 = y1 + (y2 - y1) * curvature;\n      cpx2 = x2;\n      cpy2 = y2 + (y1 - y2) * curvature;\n    }\n  }\n\n  return {\n    x1: x1,\n    y1: y1,\n    x2: x2,\n    y2: y2,\n    cpx1: cpx1,\n    cpy1: cpy1,\n    cpx2: cpx2,\n    cpy2: cpy2\n  };\n}\n\nexport default TreeView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { curry, each, assert, extend, map, keys } from 'zrender/lib/core/util';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\n\nfunction linkList(opt) {\n  var mainData = opt.mainData;\n  var datas = opt.datas;\n\n  if (!datas) {\n    datas = {\n      main: mainData\n    };\n    opt.datasAttr = {\n      main: 'data'\n    };\n  }\n\n  opt.datas = opt.mainData = null;\n  linkAll(mainData, datas, opt);\n  each(datas, function (data) {\n    each(mainData.TRANSFERABLE_METHODS, function (methodName) {\n      data.wrapMethod(methodName, curry(transferInjection, opt));\n    });\n  });\n  mainData.wrapMethod('cloneShallow', curry(cloneShallowInjection, opt));\n  each(mainData.CHANGABLE_METHODS, function (methodName) {\n    mainData.wrapMethod(methodName, curry(changeInjection, opt));\n  });\n  assert(datas[mainData.dataType] === mainData);\n}\n\nfunction transferInjection(opt, res) {\n  if (isMainData(this)) {\n    var datas = extend({}, inner(this).datas);\n    datas[this.dataType] = res;\n    linkAll(res, datas, opt);\n  } else {\n    linkSingle(res, this.dataType, inner(this).mainData, opt);\n  }\n\n  return res;\n}\n\nfunction changeInjection(opt, res) {\n  opt.struct && opt.struct.update();\n  return res;\n}\n\nfunction cloneShallowInjection(opt, res) {\n  each(inner(res).datas, function (data, dataType) {\n    data !== res && linkSingle(data.cloneShallow(), dataType, res, opt);\n  });\n  return res;\n}\n\nfunction getLinkedData(dataType) {\n  var mainData = inner(this).mainData;\n  return dataType == null || mainData == null ? mainData : inner(mainData).datas[dataType];\n}\n\nfunction getLinkedDataAll() {\n  var mainData = inner(this).mainData;\n  return mainData == null ? [{\n    data: mainData\n  }] : map(keys(inner(mainData).datas), function (type) {\n    return {\n      type: type,\n      data: inner(mainData).datas[type]\n    };\n  });\n}\n\nfunction isMainData(data) {\n  return inner(data).mainData === data;\n}\n\nfunction linkAll(mainData, datas, opt) {\n  inner(mainData).datas = {};\n  each(datas, function (data, dataType) {\n    linkSingle(data, dataType, mainData, opt);\n  });\n}\n\nfunction linkSingle(data, dataType, mainData, opt) {\n  inner(mainData).datas[dataType] = data;\n  inner(data).mainData = mainData;\n  data.dataType = dataType;\n\n  if (opt.struct) {\n    data[opt.structAttr] = opt.struct;\n    opt.struct[opt.datasAttr[dataType]] = data;\n  }\n\n  data.getLinkedData = getLinkedData;\n  data.getLinkedDataAll = getLinkedDataAll;\n}\n\nexport default linkList;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport linkList from './helper/linkList';\nimport List from './List';\nimport createDimensions from './helper/createDimensions';\nimport { convertOptionIdName } from '../util/model';\n\nvar TreeNode = function () {\n  function TreeNode(name, hostTree) {\n    this.depth = 0;\n    this.height = 0;\n    this.dataIndex = -1;\n    this.children = [];\n    this.viewChildren = [];\n    this.isExpand = false;\n    this.name = name || '';\n    this.hostTree = hostTree;\n  }\n\n  TreeNode.prototype.isRemoved = function () {\n    return this.dataIndex < 0;\n  };\n\n  TreeNode.prototype.eachNode = function (options, cb, context) {\n    if (typeof options === 'function') {\n      context = cb;\n      cb = options;\n      options = null;\n    }\n\n    options = options || {};\n\n    if (zrUtil.isString(options)) {\n      options = {\n        order: options\n      };\n    }\n\n    var order = options.order || 'preorder';\n    var children = this[options.attr || 'children'];\n    var suppressVisitSub;\n    order === 'preorder' && (suppressVisitSub = cb.call(context, this));\n\n    for (var i = 0; !suppressVisitSub && i < children.length; i++) {\n      children[i].eachNode(options, cb, context);\n    }\n\n    order === 'postorder' && cb.call(context, this);\n  };\n\n  TreeNode.prototype.updateDepthAndHeight = function (depth) {\n    var height = 0;\n    this.depth = depth;\n\n    for (var i = 0; i < this.children.length; i++) {\n      var child = this.children[i];\n      child.updateDepthAndHeight(depth + 1);\n\n      if (child.height > height) {\n        height = child.height;\n      }\n    }\n\n    this.height = height + 1;\n  };\n\n  TreeNode.prototype.getNodeById = function (id) {\n    if (this.getId() === id) {\n      return this;\n    }\n\n    for (var i = 0, children = this.children, len = children.length; i < len; i++) {\n      var res = children[i].getNodeById(id);\n\n      if (res) {\n        return res;\n      }\n    }\n  };\n\n  TreeNode.prototype.contains = function (node) {\n    if (node === this) {\n      return true;\n    }\n\n    for (var i = 0, children = this.children, len = children.length; i < len; i++) {\n      var res = children[i].contains(node);\n\n      if (res) {\n        return res;\n      }\n    }\n  };\n\n  TreeNode.prototype.getAncestors = function (includeSelf) {\n    var ancestors = [];\n    var node = includeSelf ? this : this.parentNode;\n\n    while (node) {\n      ancestors.push(node);\n      node = node.parentNode;\n    }\n\n    ancestors.reverse();\n    return ancestors;\n  };\n\n  TreeNode.prototype.getAncestorsIndices = function () {\n    var indices = [];\n    var currNode = this;\n\n    while (currNode) {\n      indices.push(currNode.dataIndex);\n      currNode = currNode.parentNode;\n    }\n\n    indices.reverse();\n    return indices;\n  };\n\n  TreeNode.prototype.getDescendantIndices = function () {\n    var indices = [];\n    this.eachNode(function (childNode) {\n      indices.push(childNode.dataIndex);\n    });\n    return indices;\n  };\n\n  TreeNode.prototype.getValue = function (dimension) {\n    var data = this.hostTree.data;\n    return data.get(data.getDimension(dimension || 'value'), this.dataIndex);\n  };\n\n  TreeNode.prototype.setLayout = function (layout, merge) {\n    this.dataIndex >= 0 && this.hostTree.data.setItemLayout(this.dataIndex, layout, merge);\n  };\n\n  TreeNode.prototype.getLayout = function () {\n    return this.hostTree.data.getItemLayout(this.dataIndex);\n  };\n\n  TreeNode.prototype.getModel = function (path) {\n    if (this.dataIndex < 0) {\n      return;\n    }\n\n    var hostTree = this.hostTree;\n    var itemModel = hostTree.data.getItemModel(this.dataIndex);\n    return itemModel.getModel(path);\n  };\n\n  TreeNode.prototype.getLevelModel = function () {\n    return (this.hostTree.levelModels || [])[this.depth];\n  };\n\n  TreeNode.prototype.setVisual = function (key, value) {\n    this.dataIndex >= 0 && this.hostTree.data.setItemVisual(this.dataIndex, key, value);\n  };\n\n  TreeNode.prototype.getVisual = function (key) {\n    return this.hostTree.data.getItemVisual(this.dataIndex, key);\n  };\n\n  TreeNode.prototype.getRawIndex = function () {\n    return this.hostTree.data.getRawIndex(this.dataIndex);\n  };\n\n  TreeNode.prototype.getId = function () {\n    return this.hostTree.data.getId(this.dataIndex);\n  };\n\n  TreeNode.prototype.isAncestorOf = function (node) {\n    var parent = node.parentNode;\n\n    while (parent) {\n      if (parent === this) {\n        return true;\n      }\n\n      parent = parent.parentNode;\n    }\n\n    return false;\n  };\n\n  TreeNode.prototype.isDescendantOf = function (node) {\n    return node !== this && node.isAncestorOf(this);\n  };\n\n  return TreeNode;\n}();\n\nexport { TreeNode };\n;\n\nvar Tree = function () {\n  function Tree(hostModel) {\n    this.type = 'tree';\n    this._nodes = [];\n    this.hostModel = hostModel;\n  }\n\n  Tree.prototype.eachNode = function (options, cb, context) {\n    this.root.eachNode(options, cb, context);\n  };\n\n  Tree.prototype.getNodeByDataIndex = function (dataIndex) {\n    var rawIndex = this.data.getRawIndex(dataIndex);\n    return this._nodes[rawIndex];\n  };\n\n  Tree.prototype.getNodeById = function (name) {\n    return this.root.getNodeById(name);\n  };\n\n  Tree.prototype.update = function () {\n    var data = this.data;\n    var nodes = this._nodes;\n\n    for (var i = 0, len = nodes.length; i < len; i++) {\n      nodes[i].dataIndex = -1;\n    }\n\n    for (var i = 0, len = data.count(); i < len; i++) {\n      nodes[data.getRawIndex(i)].dataIndex = i;\n    }\n  };\n\n  Tree.prototype.clearLayouts = function () {\n    this.data.clearItemLayouts();\n  };\n\n  Tree.createTree = function (dataRoot, hostModel, beforeLink) {\n    var tree = new Tree(hostModel);\n    var listData = [];\n    var dimMax = 1;\n    buildHierarchy(dataRoot);\n\n    function buildHierarchy(dataNode, parentNode) {\n      var value = dataNode.value;\n      dimMax = Math.max(dimMax, zrUtil.isArray(value) ? value.length : 1);\n      listData.push(dataNode);\n      var node = new TreeNode(convertOptionIdName(dataNode.name, ''), tree);\n      parentNode ? addChild(node, parentNode) : tree.root = node;\n\n      tree._nodes.push(node);\n\n      var children = dataNode.children;\n\n      if (children) {\n        for (var i = 0; i < children.length; i++) {\n          buildHierarchy(children[i], node);\n        }\n      }\n    }\n\n    tree.root.updateDepthAndHeight(0);\n    var dimensionsInfo = createDimensions(listData, {\n      coordDimensions: ['value'],\n      dimensionsCount: dimMax\n    });\n    var list = new List(dimensionsInfo, hostModel);\n    list.initData(listData);\n    beforeLink && beforeLink(list);\n    linkList({\n      mainData: list,\n      struct: tree,\n      structAttr: 'tree'\n    });\n    tree.update();\n    return tree;\n  };\n\n  return Tree;\n}();\n\nfunction addChild(child, node) {\n  var children = node.children;\n\n  if (child.parentNode === node) {\n    return;\n  }\n\n  children.push(child);\n  child.parentNode = node;\n}\n\nexport default Tree;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport Tree from '../../data/Tree';\nimport Model from '../../model/Model';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup';\n\nvar TreeSeriesModel = function (_super) {\n  __extends(TreeSeriesModel, _super);\n\n  function TreeSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.hasSymbolVisual = true;\n    _this.ignoreStyleOnData = true;\n    return _this;\n  }\n\n  TreeSeriesModel.prototype.getInitialData = function (option) {\n    var root = {\n      name: option.name,\n      children: option.data\n    };\n    var leaves = option.leaves || {};\n    var leavesModel = new Model(leaves, this, this.ecModel);\n    var tree = Tree.createTree(root, this, beforeLink);\n\n    function beforeLink(nodeData) {\n      nodeData.wrapMethod('getItemModel', function (model, idx) {\n        var node = tree.getNodeByDataIndex(idx);\n\n        if (!node.children.length || !node.isExpand) {\n          model.parentModel = leavesModel;\n        }\n\n        return model;\n      });\n    }\n\n    var treeDepth = 0;\n    tree.eachNode('preorder', function (node) {\n      if (node.depth > treeDepth) {\n        treeDepth = node.depth;\n      }\n    });\n    var expandAndCollapse = option.expandAndCollapse;\n    var expandTreeDepth = expandAndCollapse && option.initialTreeDepth >= 0 ? option.initialTreeDepth : treeDepth;\n    tree.root.eachNode('preorder', function (node) {\n      var item = node.hostTree.data.getRawDataItem(node.dataIndex);\n      node.isExpand = item && item.collapsed != null ? !item.collapsed : node.depth <= expandTreeDepth;\n    });\n    return tree.data;\n  };\n\n  TreeSeriesModel.prototype.getOrient = function () {\n    var orient = this.get('orient');\n\n    if (orient === 'horizontal') {\n      orient = 'LR';\n    } else if (orient === 'vertical') {\n      orient = 'TB';\n    }\n\n    return orient;\n  };\n\n  TreeSeriesModel.prototype.setZoom = function (zoom) {\n    this.option.zoom = zoom;\n  };\n\n  TreeSeriesModel.prototype.setCenter = function (center) {\n    this.option.center = center;\n  };\n\n  TreeSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var tree = this.getData().tree;\n    var realRoot = tree.root.children[0];\n    var node = tree.getNodeByDataIndex(dataIndex);\n    var value = node.getValue();\n    var name = node.name;\n\n    while (node && node !== realRoot) {\n      name = node.parentNode.name + '.' + name;\n      node = node.parentNode;\n    }\n\n    return createTooltipMarkup('nameValue', {\n      name: name,\n      value: value,\n      noValue: isNaN(value) || value == null\n    });\n  };\n\n  TreeSeriesModel.type = 'series.tree';\n  TreeSeriesModel.layoutMode = 'box';\n  TreeSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'view',\n    left: '12%',\n    top: '12%',\n    right: '12%',\n    bottom: '12%',\n    layout: 'orthogonal',\n    edgeShape: 'curve',\n    edgeForkPosition: '50%',\n    roam: false,\n    nodeScaleRatio: 0.4,\n    center: null,\n    zoom: 1,\n    orient: 'LR',\n    symbol: 'emptyCircle',\n    symbolSize: 7,\n    expandAndCollapse: true,\n    initialTreeDepth: 2,\n    lineStyle: {\n      color: '#ccc',\n      width: 1.5,\n      curveness: 0.5\n    },\n    itemStyle: {\n      color: 'lightsteelblue',\n      borderColor: '#c23531',\n      borderWidth: 1.5\n    },\n    label: {\n      show: true\n    },\n    animationEasing: 'linear',\n    animationDuration: 700,\n    animationDurationUpdate: 500\n  };\n  return TreeSeriesModel;\n}(SeriesModel);\n\nexport default TreeSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nfunction eachAfter(root, callback, separation) {\n  var nodes = [root];\n  var next = [];\n  var node;\n\n  while (node = nodes.pop()) {\n    next.push(node);\n\n    if (node.isExpand) {\n      var children = node.children;\n\n      if (children.length) {\n        for (var i = 0; i < children.length; i++) {\n          nodes.push(children[i]);\n        }\n      }\n    }\n  }\n\n  while (node = next.pop()) {\n    callback(node, separation);\n  }\n}\n\nfunction eachBefore(root, callback) {\n  var nodes = [root];\n  var node;\n\n  while (node = nodes.pop()) {\n    callback(node);\n\n    if (node.isExpand) {\n      var children = node.children;\n\n      if (children.length) {\n        for (var i = children.length - 1; i >= 0; i--) {\n          nodes.push(children[i]);\n        }\n      }\n    }\n  }\n}\n\nexport { eachAfter, eachBefore };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { eachAfter, eachBefore } from './traversalHelper';\nimport { init, firstWalk, secondWalk, separation as sep, radialCoordinate, getViewRect } from './layoutHelper';\nexport default function treeLayout(ecModel, api) {\n  ecModel.eachSeriesByType('tree', function (seriesModel) {\n    commonLayout(seriesModel, api);\n  });\n}\n\nfunction commonLayout(seriesModel, api) {\n  var layoutInfo = getViewRect(seriesModel, api);\n  seriesModel.layoutInfo = layoutInfo;\n  var layout = seriesModel.get('layout');\n  var width = 0;\n  var height = 0;\n  var separation = null;\n\n  if (layout === 'radial') {\n    width = 2 * Math.PI;\n    height = Math.min(layoutInfo.height, layoutInfo.width) / 2;\n    separation = sep(function (node1, node2) {\n      return (node1.parentNode === node2.parentNode ? 1 : 2) / node1.depth;\n    });\n  } else {\n    width = layoutInfo.width;\n    height = layoutInfo.height;\n    separation = sep();\n  }\n\n  var virtualRoot = seriesModel.getData().tree.root;\n  var realRoot = virtualRoot.children[0];\n\n  if (realRoot) {\n    init(virtualRoot);\n    eachAfter(realRoot, firstWalk, separation);\n    virtualRoot.hierNode.modifier = -realRoot.hierNode.prelim;\n    eachBefore(realRoot, secondWalk);\n    var left_1 = realRoot;\n    var right_1 = realRoot;\n    var bottom_1 = realRoot;\n    eachBefore(realRoot, function (node) {\n      var x = node.getLayout().x;\n\n      if (x < left_1.getLayout().x) {\n        left_1 = node;\n      }\n\n      if (x > right_1.getLayout().x) {\n        right_1 = node;\n      }\n\n      if (node.depth > bottom_1.depth) {\n        bottom_1 = node;\n      }\n    });\n    var delta = left_1 === right_1 ? 1 : separation(left_1, right_1) / 2;\n    var tx_1 = delta - left_1.getLayout().x;\n    var kx_1 = 0;\n    var ky_1 = 0;\n    var coorX_1 = 0;\n    var coorY_1 = 0;\n\n    if (layout === 'radial') {\n      kx_1 = width / (right_1.getLayout().x + delta + tx_1);\n      ky_1 = height / (bottom_1.depth - 1 || 1);\n      eachBefore(realRoot, function (node) {\n        coorX_1 = (node.getLayout().x + tx_1) * kx_1;\n        coorY_1 = (node.depth - 1) * ky_1;\n        var finalCoor = radialCoordinate(coorX_1, coorY_1);\n        node.setLayout({\n          x: finalCoor.x,\n          y: finalCoor.y,\n          rawX: coorX_1,\n          rawY: coorY_1\n        }, true);\n      });\n    } else {\n      var orient_1 = seriesModel.getOrient();\n\n      if (orient_1 === 'RL' || orient_1 === 'LR') {\n        ky_1 = height / (right_1.getLayout().x + delta + tx_1);\n        kx_1 = width / (bottom_1.depth - 1 || 1);\n        eachBefore(realRoot, function (node) {\n          coorY_1 = (node.getLayout().x + tx_1) * ky_1;\n          coorX_1 = orient_1 === 'LR' ? (node.depth - 1) * kx_1 : width - (node.depth - 1) * kx_1;\n          node.setLayout({\n            x: coorX_1,\n            y: coorY_1\n          }, true);\n        });\n      } else if (orient_1 === 'TB' || orient_1 === 'BT') {\n        kx_1 = width / (right_1.getLayout().x + delta + tx_1);\n        ky_1 = height / (bottom_1.depth - 1 || 1);\n        eachBefore(realRoot, function (node) {\n          coorX_1 = (node.getLayout().x + tx_1) * kx_1;\n          coorY_1 = orient_1 === 'TB' ? (node.depth - 1) * ky_1 : height - (node.depth - 1) * ky_1;\n          node.setLayout({\n            x: coorX_1,\n            y: coorY_1\n          }, true);\n        });\n      }\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { extend } from 'zrender/lib/core/util';\nexport default function treeVisual(ecModel) {\n  ecModel.eachSeriesByType('tree', function (seriesModel) {\n    var data = seriesModel.getData();\n    var tree = data.tree;\n    tree.eachNode(function (node) {\n      var model = node.getModel();\n      var style = model.getModel('itemStyle').getItemStyle();\n      var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, 'style');\n      extend(existsStyle, style);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function updateCenterAndZoom(view, payload, zoomLimit) {\n  var previousZoom = view.getZoom();\n  var center = view.getCenter();\n  var zoom = payload.zoom;\n  var point = view.dataToPoint(center);\n\n  if (payload.dx != null && payload.dy != null) {\n    point[0] -= payload.dx;\n    point[1] -= payload.dy;\n    view.setCenter(view.pointToData(point));\n  }\n\n  if (zoom != null) {\n    if (zoomLimit) {\n      var zoomMin = zoomLimit.min || 0;\n      var zoomMax = zoomLimit.max || Infinity;\n      zoom = Math.max(Math.min(previousZoom * zoom, zoomMax), zoomMin) / previousZoom;\n    }\n\n    view.scaleX *= zoom;\n    view.scaleY *= zoom;\n    var fixX = (payload.originX - view.x) * (zoom - 1);\n    var fixY = (payload.originY - view.y) * (zoom - 1);\n    view.x -= fixX;\n    view.y -= fixY;\n    view.updateTransform();\n    view.setCenter(view.pointToData(point));\n    view.setZoom(zoom * previousZoom);\n  }\n\n  return {\n    center: view.getCenter(),\n    zoom: view.getZoom()\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { updateCenterAndZoom } from '../../action/roamHelper';\nexport function installTreeAction(registers) {\n  registers.registerAction({\n    type: 'treeExpandAndCollapse',\n    event: 'treeExpandAndCollapse',\n    update: 'update'\n  }, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'tree',\n      query: payload\n    }, function (seriesModel) {\n      var dataIndex = payload.dataIndex;\n      var tree = seriesModel.getData().tree;\n      var node = tree.getNodeByDataIndex(dataIndex);\n      node.isExpand = !node.isExpand;\n    });\n  });\n  registers.registerAction({\n    type: 'treeRoam',\n    event: 'treeRoam',\n    update: 'none'\n  }, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'tree',\n      query: payload\n    }, function (seriesModel) {\n      var coordSys = seriesModel.coordinateSystem;\n      var res = updateCenterAndZoom(coordSys, payload);\n      seriesModel.setCenter && seriesModel.setCenter(res.center);\n      seriesModel.setZoom && seriesModel.setZoom(res.zoom);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport TreeView from './TreeView';\nimport TreeSeriesModel from './TreeSeries';\nimport treeLayout from './treeLayout';\nimport treeVisual from './treeVisual';\nimport { installTreeAction } from './treeAction';\nexport function install(registers) {\n  registers.registerChartView(TreeView);\n  registers.registerSeriesModel(TreeSeriesModel);\n  registers.registerLayout(treeLayout);\n  registers.registerVisual(treeVisual);\n  installTreeAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport function retrieveTargetInfo(payload, validPayloadTypes, seriesModel) {\n  if (payload && zrUtil.indexOf(validPayloadTypes, payload.type) >= 0) {\n    var root = seriesModel.getData().tree.root;\n    var targetNode = payload.targetNode;\n\n    if (typeof targetNode === 'string') {\n      targetNode = root.getNodeById(targetNode);\n    }\n\n    if (targetNode && root.contains(targetNode)) {\n      return {\n        node: targetNode\n      };\n    }\n\n    var targetNodeId = payload.targetNodeId;\n\n    if (targetNodeId != null && (targetNode = root.getNodeById(targetNodeId))) {\n      return {\n        node: targetNode\n      };\n    }\n  }\n}\nexport function getPathToRoot(node) {\n  var path = [];\n\n  while (node) {\n    node = node.parentNode;\n    node && path.push(node);\n  }\n\n  return path.reverse();\n}\nexport function aboveViewRoot(viewRoot, node) {\n  var viewPath = getPathToRoot(viewRoot);\n  return zrUtil.indexOf(viewPath, node) >= 0;\n}\nexport function wrapTreePathInfo(node, seriesModel) {\n  var treePathInfo = [];\n\n  while (node) {\n    var nodeDataIndex = node.dataIndex;\n    treePathInfo.push({\n      name: node.name,\n      dataIndex: nodeDataIndex,\n      value: seriesModel.getRawValue(nodeDataIndex)\n    });\n    node = node.parentNode;\n  }\n\n  treePathInfo.reverse();\n  return treePathInfo;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as helper from '../helper/treeHelper';\n\nvar noop = function () {};\n\nvar actionTypes = ['treemapZoomToNode', 'treemapRender', 'treemapMove'];\nexport function installTreemapAction(registers) {\n  for (var i = 0; i < actionTypes.length; i++) {\n    registers.registerAction({\n      type: actionTypes[i],\n      update: 'updateView'\n    }, noop);\n  }\n\n  registers.registerAction({\n    type: 'treemapRootToNode',\n    update: 'updateView'\n  }, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'treemap',\n      query: payload\n    }, handleRootToNode);\n\n    function handleRootToNode(model, index) {\n      var types = ['treemapZoomToNode', 'treemapRootToNode'];\n      var targetInfo = helper.retrieveTargetInfo(payload, types, model);\n\n      if (targetInfo) {\n        var originViewRoot = model.getViewRoot();\n\n        if (originViewRoot) {\n          payload.direction = helper.aboveViewRoot(originViewRoot, targetInfo.node) ? 'rollUp' : 'drillDown';\n        }\n\n        model.resetViewRoot(targetInfo.node);\n      }\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { getDecalFromPalette } from '../../model/mixin/palette';\nexport default function enableAriaDecalForTree(seriesModel) {\n  var data = seriesModel.getData();\n  var tree = data.tree;\n  var decalPaletteScope = {};\n  tree.eachNode(function (node) {\n    var current = node;\n\n    while (current && current.depth > 1) {\n      current = current.parentNode;\n    }\n\n    var decal = getDecalFromPalette(seriesModel.ecModel, current.name || current.dataIndex + '', decalPaletteScope);\n    node.setVisual('decal', decal);\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport SeriesModel from '../../model/Series';\nimport Tree from '../../data/Tree';\nimport Model from '../../model/Model';\nimport { wrapTreePathInfo } from '../helper/treeHelper';\nimport { normalizeToArray } from '../../util/model';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup';\nimport enableAriaDecalForTree from '../helper/enableAriaDecalForTree';\n\nvar TreemapSeriesModel = function (_super) {\n  __extends(TreemapSeriesModel, _super);\n\n  function TreemapSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TreemapSeriesModel.type;\n    _this.preventUsingHoverLayer = true;\n    return _this;\n  }\n\n  TreemapSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    var root = {\n      name: option.name,\n      children: option.data\n    };\n    completeTreeValue(root);\n    var levels = option.levels || [];\n    var designatedVisualItemStyle = this.designatedVisualItemStyle = {};\n    var designatedVisualModel = new Model({\n      itemStyle: designatedVisualItemStyle\n    }, this, ecModel);\n    levels = option.levels = setDefault(levels, ecModel);\n    var levelModels = zrUtil.map(levels || [], function (levelDefine) {\n      return new Model(levelDefine, designatedVisualModel, ecModel);\n    }, this);\n    var tree = Tree.createTree(root, this, beforeLink);\n\n    function beforeLink(nodeData) {\n      nodeData.wrapMethod('getItemModel', function (model, idx) {\n        var node = tree.getNodeByDataIndex(idx);\n        var levelModel = levelModels[node.depth];\n        model.parentModel = levelModel || designatedVisualModel;\n        return model;\n      });\n    }\n\n    return tree.data;\n  };\n\n  TreemapSeriesModel.prototype.optionUpdated = function () {\n    this.resetViewRoot();\n  };\n\n  TreemapSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var data = this.getData();\n    var value = this.getRawValue(dataIndex);\n    var name = data.getName(dataIndex);\n    return createTooltipMarkup('nameValue', {\n      name: name,\n      value: value\n    });\n  };\n\n  TreemapSeriesModel.prototype.getDataParams = function (dataIndex) {\n    var params = _super.prototype.getDataParams.apply(this, arguments);\n\n    var node = this.getData().tree.getNodeByDataIndex(dataIndex);\n    params.treePathInfo = wrapTreePathInfo(node, this);\n    return params;\n  };\n\n  TreemapSeriesModel.prototype.setLayoutInfo = function (layoutInfo) {\n    this.layoutInfo = this.layoutInfo || {};\n    zrUtil.extend(this.layoutInfo, layoutInfo);\n  };\n\n  TreemapSeriesModel.prototype.mapIdToIndex = function (id) {\n    var idIndexMap = this._idIndexMap;\n\n    if (!idIndexMap) {\n      idIndexMap = this._idIndexMap = zrUtil.createHashMap();\n      this._idIndexMapCount = 0;\n    }\n\n    var index = idIndexMap.get(id);\n\n    if (index == null) {\n      idIndexMap.set(id, index = this._idIndexMapCount++);\n    }\n\n    return index;\n  };\n\n  TreemapSeriesModel.prototype.getViewRoot = function () {\n    return this._viewRoot;\n  };\n\n  TreemapSeriesModel.prototype.resetViewRoot = function (viewRoot) {\n    viewRoot ? this._viewRoot = viewRoot : viewRoot = this._viewRoot;\n    var root = this.getRawData().tree.root;\n\n    if (!viewRoot || viewRoot !== root && !root.contains(viewRoot)) {\n      this._viewRoot = root;\n    }\n  };\n\n  TreemapSeriesModel.prototype.enableAriaDecal = function () {\n    enableAriaDecalForTree(this);\n  };\n\n  TreemapSeriesModel.type = 'series.treemap';\n  TreemapSeriesModel.layoutMode = 'box';\n  TreemapSeriesModel.defaultOption = {\n    progressive: 0,\n    left: 'center',\n    top: 'middle',\n    width: '80%',\n    height: '80%',\n    sort: true,\n    clipWindow: 'origin',\n    squareRatio: 0.5 * (1 + Math.sqrt(5)),\n    leafDepth: null,\n    drillDownIcon: '▶',\n    zoomToNodeRatio: 0.32 * 0.32,\n    roam: true,\n    nodeClick: 'zoomToNode',\n    animation: true,\n    animationDurationUpdate: 900,\n    animationEasing: 'quinticInOut',\n    breadcrumb: {\n      show: true,\n      height: 22,\n      left: 'center',\n      top: 'bottom',\n      emptyItemWidth: 25,\n      itemStyle: {\n        color: 'rgba(0,0,0,0.7)',\n        textStyle: {\n          color: '#fff'\n        }\n      }\n    },\n    label: {\n      show: true,\n      distance: 0,\n      padding: 5,\n      position: 'inside',\n      color: '#fff',\n      overflow: 'truncate'\n    },\n    upperLabel: {\n      show: false,\n      position: [0, '50%'],\n      height: 20,\n      overflow: 'truncate',\n      verticalAlign: 'middle'\n    },\n    itemStyle: {\n      color: null,\n      colorAlpha: null,\n      colorSaturation: null,\n      borderWidth: 0,\n      gapWidth: 0,\n      borderColor: '#fff',\n      borderColorSaturation: null\n    },\n    emphasis: {\n      upperLabel: {\n        show: true,\n        position: [0, '50%'],\n        ellipsis: true,\n        verticalAlign: 'middle'\n      }\n    },\n    visualDimension: 0,\n    visualMin: null,\n    visualMax: null,\n    color: [],\n    colorAlpha: null,\n    colorSaturation: null,\n    colorMappingBy: 'index',\n    visibleMin: 10,\n    childrenVisibleMin: null,\n    levels: []\n  };\n  return TreemapSeriesModel;\n}(SeriesModel);\n\nfunction completeTreeValue(dataNode) {\n  var sum = 0;\n  zrUtil.each(dataNode.children, function (child) {\n    completeTreeValue(child);\n    var childValue = child.value;\n    zrUtil.isArray(childValue) && (childValue = childValue[0]);\n    sum += childValue;\n  });\n  var thisValue = dataNode.value;\n\n  if (zrUtil.isArray(thisValue)) {\n    thisValue = thisValue[0];\n  }\n\n  if (thisValue == null || isNaN(thisValue)) {\n    thisValue = sum;\n  }\n\n  if (thisValue < 0) {\n    thisValue = 0;\n  }\n\n  zrUtil.isArray(dataNode.value) ? dataNode.value[0] = thisValue : dataNode.value = thisValue;\n}\n\nfunction setDefault(levels, ecModel) {\n  var globalColorList = normalizeToArray(ecModel.get('color'));\n  var globalDecalList = normalizeToArray(ecModel.get(['aria', 'decal', 'decals']));\n\n  if (!globalColorList) {\n    return;\n  }\n\n  levels = levels || [];\n  var hasColorDefine;\n  var hasDecalDefine;\n  zrUtil.each(levels, function (levelDefine) {\n    var model = new Model(levelDefine);\n    var modelColor = model.get('color');\n    var modelDecal = model.get('decal');\n\n    if (model.get(['itemStyle', 'color']) || modelColor && modelColor !== 'none') {\n      hasColorDefine = true;\n    }\n\n    if (model.get(['itemStyle', 'decal']) || modelDecal && modelDecal !== 'none') {\n      hasDecalDefine = true;\n    }\n  });\n  var level0 = levels[0] || (levels[0] = {});\n\n  if (!hasColorDefine) {\n    level0.color = globalColorList.slice();\n  }\n\n  if (!hasDecalDefine && globalDecalList) {\n    level0.decal = globalDecalList.slice();\n  }\n\n  return levels;\n}\n\nexport default TreemapSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport * as layout from '../../util/layout';\nimport { wrapTreePathInfo } from '../helper/treeHelper';\nimport { curry, defaults } from 'zrender/lib/core/util';\nimport { convertOptionIdName } from '../../util/model';\nvar TEXT_PADDING = 8;\nvar ITEM_GAP = 8;\nvar ARRAY_LENGTH = 5;\n\nvar Breadcrumb = function () {\n  function Breadcrumb(containerGroup) {\n    this.group = new graphic.Group();\n    containerGroup.add(this.group);\n  }\n\n  Breadcrumb.prototype.render = function (seriesModel, api, targetNode, onSelect) {\n    var model = seriesModel.getModel('breadcrumb');\n    var thisGroup = this.group;\n    thisGroup.removeAll();\n\n    if (!model.get('show') || !targetNode) {\n      return;\n    }\n\n    var normalStyleModel = model.getModel('itemStyle');\n    var textStyleModel = normalStyleModel.getModel('textStyle');\n    var layoutParam = {\n      pos: {\n        left: model.get('left'),\n        right: model.get('right'),\n        top: model.get('top'),\n        bottom: model.get('bottom')\n      },\n      box: {\n        width: api.getWidth(),\n        height: api.getHeight()\n      },\n      emptyItemWidth: model.get('emptyItemWidth'),\n      totalWidth: 0,\n      renderList: []\n    };\n\n    this._prepare(targetNode, layoutParam, textStyleModel);\n\n    this._renderContent(seriesModel, layoutParam, normalStyleModel, textStyleModel, onSelect);\n\n    layout.positionElement(thisGroup, layoutParam.pos, layoutParam.box);\n  };\n\n  Breadcrumb.prototype._prepare = function (targetNode, layoutParam, textStyleModel) {\n    for (var node = targetNode; node; node = node.parentNode) {\n      var text = convertOptionIdName(node.getModel().get('name'), '');\n      var textRect = textStyleModel.getTextRect(text);\n      var itemWidth = Math.max(textRect.width + TEXT_PADDING * 2, layoutParam.emptyItemWidth);\n      layoutParam.totalWidth += itemWidth + ITEM_GAP;\n      layoutParam.renderList.push({\n        node: node,\n        text: text,\n        width: itemWidth\n      });\n    }\n  };\n\n  Breadcrumb.prototype._renderContent = function (seriesModel, layoutParam, normalStyleModel, textStyleModel, onSelect) {\n    var lastX = 0;\n    var emptyItemWidth = layoutParam.emptyItemWidth;\n    var height = seriesModel.get(['breadcrumb', 'height']);\n    var availableSize = layout.getAvailableSize(layoutParam.pos, layoutParam.box);\n    var totalWidth = layoutParam.totalWidth;\n    var renderList = layoutParam.renderList;\n\n    for (var i = renderList.length - 1; i >= 0; i--) {\n      var item = renderList[i];\n      var itemNode = item.node;\n      var itemWidth = item.width;\n      var text = item.text;\n\n      if (totalWidth > availableSize.width) {\n        totalWidth -= itemWidth - emptyItemWidth;\n        itemWidth = emptyItemWidth;\n        text = null;\n      }\n\n      var el = new graphic.Polygon({\n        shape: {\n          points: makeItemPoints(lastX, 0, itemWidth, height, i === renderList.length - 1, i === 0)\n        },\n        style: defaults(normalStyleModel.getItemStyle(), {\n          lineJoin: 'bevel'\n        }),\n        textContent: new graphic.Text({\n          style: {\n            text: text,\n            fill: textStyleModel.getTextColor(),\n            font: textStyleModel.getFont()\n          }\n        }),\n        textConfig: {\n          position: 'inside'\n        },\n        z: 10,\n        onclick: curry(onSelect, itemNode)\n      });\n      el.disableLabelAnimation = true;\n      this.group.add(el);\n      packEventData(el, seriesModel, itemNode);\n      lastX += itemWidth + ITEM_GAP;\n    }\n  };\n\n  Breadcrumb.prototype.remove = function () {\n    this.group.removeAll();\n  };\n\n  return Breadcrumb;\n}();\n\nfunction makeItemPoints(x, y, itemWidth, itemHeight, head, tail) {\n  var points = [[head ? x : x - ARRAY_LENGTH, y], [x + itemWidth, y], [x + itemWidth, y + itemHeight], [head ? x : x - ARRAY_LENGTH, y + itemHeight]];\n  !tail && points.splice(2, 0, [x + itemWidth + ARRAY_LENGTH, y + itemHeight / 2]);\n  !head && points.push([x, y + itemHeight / 2]);\n  return points;\n}\n\nfunction packEventData(el, seriesModel, itemNode) {\n  getECData(el).eventData = {\n    componentType: 'series',\n    componentSubType: 'treemap',\n    componentIndex: seriesModel.componentIndex,\n    seriesIndex: seriesModel.componentIndex,\n    seriesName: seriesModel.name,\n    seriesType: 'treemap',\n    selfType: 'breadcrumb',\n    nodeData: {\n      dataIndex: itemNode && itemNode.dataIndex,\n      name: itemNode && itemNode.name\n    },\n    treePathInfo: itemNode && wrapTreePathInfo(itemNode, seriesModel)\n  };\n}\n\nexport default Breadcrumb;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar AnimationWrap = function () {\n  function AnimationWrap() {\n    this._storage = [];\n    this._elExistsMap = {};\n  }\n\n  AnimationWrap.prototype.add = function (el, target, duration, delay, easing) {\n    if (this._elExistsMap[el.id]) {\n      return false;\n    }\n\n    this._elExistsMap[el.id] = true;\n\n    this._storage.push({\n      el: el,\n      target: target,\n      duration: duration,\n      delay: delay,\n      easing: easing\n    });\n\n    return true;\n  };\n\n  AnimationWrap.prototype.finished = function (callback) {\n    this._finishedCallback = callback;\n    return this;\n  };\n\n  AnimationWrap.prototype.start = function () {\n    var _this = this;\n\n    var count = this._storage.length;\n\n    var checkTerminate = function () {\n      count--;\n\n      if (count <= 0) {\n        _this._storage.length = 0;\n        _this._elExistsMap = {};\n        _this._finishedCallback && _this._finishedCallback();\n      }\n    };\n\n    for (var i = 0, len = this._storage.length; i < len; i++) {\n      var item = this._storage[i];\n      item.el.animateTo(item.target, {\n        duration: item.duration,\n        delay: item.delay,\n        easing: item.easing,\n        setToFinal: true,\n        done: checkTerminate,\n        aborted: checkTerminate\n      });\n    }\n\n    return this;\n  };\n\n  return AnimationWrap;\n}();\n\nexport function createWrap() {\n  return new AnimationWrap();\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { bind, each, indexOf, curry, extend, retrieve, normalizeCssArray, isFunction } from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { isHighDownDispatcher, setAsHighDownDispatcher, setDefaultStateProxy, enableHoverFocus } from '../../util/states';\nimport DataDiffer from '../../data/DataDiffer';\nimport * as helper from '../helper/treeHelper';\nimport Breadcrumb from './Breadcrumb';\nimport RoamController from '../../component/helper/RoamController';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport * as animationUtil from '../../util/animation';\nimport makeStyleMapper from '../../model/mixin/makeStyleMapper';\nimport ChartView from '../../view/Chart';\nimport Displayable from 'zrender/lib/graphic/Displayable';\nimport { makeInner, convertOptionIdName } from '../../util/model';\nimport { windowOpen } from '../../util/format';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nvar Group = graphic.Group;\nvar Rect = graphic.Rect;\nvar DRAG_THRESHOLD = 3;\nvar PATH_LABEL_NOAMAL = 'label';\nvar PATH_UPPERLABEL_NORMAL = 'upperLabel';\nvar Z_BASE = 10;\nvar Z_BG = 1;\nvar Z_CONTENT = 2;\nvar getStateItemStyle = makeStyleMapper([['fill', 'color'], ['stroke', 'strokeColor'], ['lineWidth', 'strokeWidth'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor']]);\n\nvar getItemStyleNormal = function (model) {\n  var itemStyle = getStateItemStyle(model);\n  itemStyle.stroke = itemStyle.fill = itemStyle.lineWidth = null;\n  return itemStyle;\n};\n\nvar inner = makeInner();\n\nvar TreemapView = function (_super) {\n  __extends(TreemapView, _super);\n\n  function TreemapView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TreemapView.type;\n    _this._state = 'ready';\n    _this._storage = createStorage();\n    return _this;\n  }\n\n  TreemapView.prototype.render = function (seriesModel, ecModel, api, payload) {\n    var models = ecModel.findComponents({\n      mainType: 'series',\n      subType: 'treemap',\n      query: payload\n    });\n\n    if (indexOf(models, seriesModel) < 0) {\n      return;\n    }\n\n    this.seriesModel = seriesModel;\n    this.api = api;\n    this.ecModel = ecModel;\n    var types = ['treemapZoomToNode', 'treemapRootToNode'];\n    var targetInfo = helper.retrieveTargetInfo(payload, types, seriesModel);\n    var payloadType = payload && payload.type;\n    var layoutInfo = seriesModel.layoutInfo;\n    var isInit = !this._oldTree;\n    var thisStorage = this._storage;\n    var reRoot = payloadType === 'treemapRootToNode' && targetInfo && thisStorage ? {\n      rootNodeGroup: thisStorage.nodeGroup[targetInfo.node.getRawIndex()],\n      direction: payload.direction\n    } : null;\n\n    var containerGroup = this._giveContainerGroup(layoutInfo);\n\n    var renderResult = this._doRender(containerGroup, seriesModel, reRoot);\n\n    !isInit && (!payloadType || payloadType === 'treemapZoomToNode' || payloadType === 'treemapRootToNode') ? this._doAnimation(containerGroup, renderResult, seriesModel, reRoot) : renderResult.renderFinally();\n\n    this._resetController(api);\n\n    this._renderBreadcrumb(seriesModel, api, targetInfo);\n  };\n\n  TreemapView.prototype._giveContainerGroup = function (layoutInfo) {\n    var containerGroup = this._containerGroup;\n\n    if (!containerGroup) {\n      containerGroup = this._containerGroup = new Group();\n\n      this._initEvents(containerGroup);\n\n      this.group.add(containerGroup);\n    }\n\n    containerGroup.x = layoutInfo.x;\n    containerGroup.y = layoutInfo.y;\n    return containerGroup;\n  };\n\n  TreemapView.prototype._doRender = function (containerGroup, seriesModel, reRoot) {\n    var thisTree = seriesModel.getData().tree;\n    var oldTree = this._oldTree;\n    var lastsForAnimation = createStorage();\n    var thisStorage = createStorage();\n    var oldStorage = this._storage;\n    var willInvisibleEls = [];\n\n    function doRenderNode(thisNode, oldNode, parentGroup, depth) {\n      return renderNode(seriesModel, thisStorage, oldStorage, reRoot, lastsForAnimation, willInvisibleEls, thisNode, oldNode, parentGroup, depth);\n    }\n\n    dualTravel(thisTree.root ? [thisTree.root] : [], oldTree && oldTree.root ? [oldTree.root] : [], containerGroup, thisTree === oldTree || !oldTree, 0);\n    var willDeleteEls = clearStorage(oldStorage);\n    this._oldTree = thisTree;\n    this._storage = thisStorage;\n    return {\n      lastsForAnimation: lastsForAnimation,\n      willDeleteEls: willDeleteEls,\n      renderFinally: renderFinally\n    };\n\n    function dualTravel(thisViewChildren, oldViewChildren, parentGroup, sameTree, depth) {\n      if (sameTree) {\n        oldViewChildren = thisViewChildren;\n        each(thisViewChildren, function (child, index) {\n          !child.isRemoved() && processNode(index, index);\n        });\n      } else {\n        new DataDiffer(oldViewChildren, thisViewChildren, getKey, getKey).add(processNode).update(processNode).remove(curry(processNode, null)).execute();\n      }\n\n      function getKey(node) {\n        return node.getId();\n      }\n\n      function processNode(newIndex, oldIndex) {\n        var thisNode = newIndex != null ? thisViewChildren[newIndex] : null;\n        var oldNode = oldIndex != null ? oldViewChildren[oldIndex] : null;\n        var group = doRenderNode(thisNode, oldNode, parentGroup, depth);\n        group && dualTravel(thisNode && thisNode.viewChildren || [], oldNode && oldNode.viewChildren || [], group, sameTree, depth + 1);\n      }\n    }\n\n    function clearStorage(storage) {\n      var willDeleteEls = createStorage();\n      storage && each(storage, function (store, storageName) {\n        var delEls = willDeleteEls[storageName];\n        each(store, function (el) {\n          el && (delEls.push(el), inner(el).willDelete = true);\n        });\n      });\n      return willDeleteEls;\n    }\n\n    function renderFinally() {\n      each(willDeleteEls, function (els) {\n        each(els, function (el) {\n          el.parent && el.parent.remove(el);\n        });\n      });\n      each(willInvisibleEls, function (el) {\n        el.invisible = true;\n        el.dirty();\n      });\n    }\n  };\n\n  TreemapView.prototype._doAnimation = function (containerGroup, renderResult, seriesModel, reRoot) {\n    if (!seriesModel.get('animation')) {\n      return;\n    }\n\n    var durationOption = seriesModel.get('animationDurationUpdate');\n    var easingOption = seriesModel.get('animationEasing');\n    var duration = (isFunction(durationOption) ? 0 : durationOption) || 0;\n    var easing = (isFunction(easingOption) ? null : easingOption) || 'cubicOut';\n    var animationWrap = animationUtil.createWrap();\n    each(renderResult.willDeleteEls, function (store, storageName) {\n      each(store, function (el, rawIndex) {\n        if (el.invisible) {\n          return;\n        }\n\n        var parent = el.parent;\n        var target;\n        var innerStore = inner(parent);\n\n        if (reRoot && reRoot.direction === 'drillDown') {\n          target = parent === reRoot.rootNodeGroup ? {\n            shape: {\n              x: 0,\n              y: 0,\n              width: innerStore.nodeWidth,\n              height: innerStore.nodeHeight\n            },\n            style: {\n              opacity: 0\n            }\n          } : {\n            style: {\n              opacity: 0\n            }\n          };\n        } else {\n          var targetX = 0;\n          var targetY = 0;\n\n          if (!innerStore.willDelete) {\n            targetX = innerStore.nodeWidth / 2;\n            targetY = innerStore.nodeHeight / 2;\n          }\n\n          target = storageName === 'nodeGroup' ? {\n            x: targetX,\n            y: targetY,\n            style: {\n              opacity: 0\n            }\n          } : {\n            shape: {\n              x: targetX,\n              y: targetY,\n              width: 0,\n              height: 0\n            },\n            style: {\n              opacity: 0\n            }\n          };\n        }\n\n        target && animationWrap.add(el, target, duration, 0, easing);\n      });\n    });\n    each(this._storage, function (store, storageName) {\n      each(store, function (el, rawIndex) {\n        var last = renderResult.lastsForAnimation[storageName][rawIndex];\n        var target = {};\n\n        if (!last) {\n          return;\n        }\n\n        if (el instanceof graphic.Group) {\n          if (last.oldX != null) {\n            target.x = el.x;\n            target.y = el.y;\n            el.x = last.oldX;\n            el.y = last.oldY;\n          }\n        } else {\n          if (last.oldShape) {\n            target.shape = extend({}, el.shape);\n            el.setShape(last.oldShape);\n          }\n\n          if (last.fadein) {\n            el.setStyle('opacity', 0);\n            target.style = {\n              opacity: 1\n            };\n          } else if (el.style.opacity !== 1) {\n            target.style = {\n              opacity: 1\n            };\n          }\n        }\n\n        animationWrap.add(el, target, duration, 0, easing);\n      });\n    }, this);\n    this._state = 'animating';\n    animationWrap.finished(bind(function () {\n      this._state = 'ready';\n      renderResult.renderFinally();\n    }, this)).start();\n  };\n\n  TreemapView.prototype._resetController = function (api) {\n    var controller = this._controller;\n\n    if (!controller) {\n      controller = this._controller = new RoamController(api.getZr());\n      controller.enable(this.seriesModel.get('roam'));\n      controller.on('pan', bind(this._onPan, this));\n      controller.on('zoom', bind(this._onZoom, this));\n    }\n\n    var rect = new BoundingRect(0, 0, api.getWidth(), api.getHeight());\n    controller.setPointerChecker(function (e, x, y) {\n      return rect.contain(x, y);\n    });\n  };\n\n  TreemapView.prototype._clearController = function () {\n    var controller = this._controller;\n\n    if (controller) {\n      controller.dispose();\n      controller = null;\n    }\n  };\n\n  TreemapView.prototype._onPan = function (e) {\n    if (this._state !== 'animating' && (Math.abs(e.dx) > DRAG_THRESHOLD || Math.abs(e.dy) > DRAG_THRESHOLD)) {\n      var root = this.seriesModel.getData().tree.root;\n\n      if (!root) {\n        return;\n      }\n\n      var rootLayout = root.getLayout();\n\n      if (!rootLayout) {\n        return;\n      }\n\n      this.api.dispatchAction({\n        type: 'treemapMove',\n        from: this.uid,\n        seriesId: this.seriesModel.id,\n        rootRect: {\n          x: rootLayout.x + e.dx,\n          y: rootLayout.y + e.dy,\n          width: rootLayout.width,\n          height: rootLayout.height\n        }\n      });\n    }\n  };\n\n  TreemapView.prototype._onZoom = function (e) {\n    var mouseX = e.originX;\n    var mouseY = e.originY;\n\n    if (this._state !== 'animating') {\n      var root = this.seriesModel.getData().tree.root;\n\n      if (!root) {\n        return;\n      }\n\n      var rootLayout = root.getLayout();\n\n      if (!rootLayout) {\n        return;\n      }\n\n      var rect = new BoundingRect(rootLayout.x, rootLayout.y, rootLayout.width, rootLayout.height);\n      var layoutInfo = this.seriesModel.layoutInfo;\n      mouseX -= layoutInfo.x;\n      mouseY -= layoutInfo.y;\n      var m = matrix.create();\n      matrix.translate(m, m, [-mouseX, -mouseY]);\n      matrix.scale(m, m, [e.scale, e.scale]);\n      matrix.translate(m, m, [mouseX, mouseY]);\n      rect.applyTransform(m);\n      this.api.dispatchAction({\n        type: 'treemapRender',\n        from: this.uid,\n        seriesId: this.seriesModel.id,\n        rootRect: {\n          x: rect.x,\n          y: rect.y,\n          width: rect.width,\n          height: rect.height\n        }\n      });\n    }\n  };\n\n  TreemapView.prototype._initEvents = function (containerGroup) {\n    var _this = this;\n\n    containerGroup.on('click', function (e) {\n      if (_this._state !== 'ready') {\n        return;\n      }\n\n      var nodeClick = _this.seriesModel.get('nodeClick', true);\n\n      if (!nodeClick) {\n        return;\n      }\n\n      var targetInfo = _this.findTarget(e.offsetX, e.offsetY);\n\n      if (!targetInfo) {\n        return;\n      }\n\n      var node = targetInfo.node;\n\n      if (node.getLayout().isLeafRoot) {\n        _this._rootToNode(targetInfo);\n      } else {\n        if (nodeClick === 'zoomToNode') {\n          _this._zoomToNode(targetInfo);\n        } else if (nodeClick === 'link') {\n          var itemModel = node.hostTree.data.getItemModel(node.dataIndex);\n          var link = itemModel.get('link', true);\n          var linkTarget = itemModel.get('target', true) || 'blank';\n          link && windowOpen(link, linkTarget);\n        }\n      }\n    }, this);\n  };\n\n  TreemapView.prototype._renderBreadcrumb = function (seriesModel, api, targetInfo) {\n    var _this = this;\n\n    if (!targetInfo) {\n      targetInfo = seriesModel.get('leafDepth', true) != null ? {\n        node: seriesModel.getViewRoot()\n      } : this.findTarget(api.getWidth() / 2, api.getHeight() / 2);\n\n      if (!targetInfo) {\n        targetInfo = {\n          node: seriesModel.getData().tree.root\n        };\n      }\n    }\n\n    (this._breadcrumb || (this._breadcrumb = new Breadcrumb(this.group))).render(seriesModel, api, targetInfo.node, function (node) {\n      if (_this._state !== 'animating') {\n        helper.aboveViewRoot(seriesModel.getViewRoot(), node) ? _this._rootToNode({\n          node: node\n        }) : _this._zoomToNode({\n          node: node\n        });\n      }\n    });\n  };\n\n  TreemapView.prototype.remove = function () {\n    this._clearController();\n\n    this._containerGroup && this._containerGroup.removeAll();\n    this._storage = createStorage();\n    this._state = 'ready';\n    this._breadcrumb && this._breadcrumb.remove();\n  };\n\n  TreemapView.prototype.dispose = function () {\n    this._clearController();\n  };\n\n  TreemapView.prototype._zoomToNode = function (targetInfo) {\n    this.api.dispatchAction({\n      type: 'treemapZoomToNode',\n      from: this.uid,\n      seriesId: this.seriesModel.id,\n      targetNode: targetInfo.node\n    });\n  };\n\n  TreemapView.prototype._rootToNode = function (targetInfo) {\n    this.api.dispatchAction({\n      type: 'treemapRootToNode',\n      from: this.uid,\n      seriesId: this.seriesModel.id,\n      targetNode: targetInfo.node\n    });\n  };\n\n  TreemapView.prototype.findTarget = function (x, y) {\n    var targetInfo;\n    var viewRoot = this.seriesModel.getViewRoot();\n    viewRoot.eachNode({\n      attr: 'viewChildren',\n      order: 'preorder'\n    }, function (node) {\n      var bgEl = this._storage.background[node.getRawIndex()];\n\n      if (bgEl) {\n        var point = bgEl.transformCoordToLocal(x, y);\n        var shape = bgEl.shape;\n\n        if (shape.x <= point[0] && point[0] <= shape.x + shape.width && shape.y <= point[1] && point[1] <= shape.y + shape.height) {\n          targetInfo = {\n            node: node,\n            offsetX: point[0],\n            offsetY: point[1]\n          };\n        } else {\n          return false;\n        }\n      }\n    }, this);\n    return targetInfo;\n  };\n\n  TreemapView.type = 'treemap';\n  return TreemapView;\n}(ChartView);\n\nfunction createStorage() {\n  return {\n    nodeGroup: [],\n    background: [],\n    content: []\n  };\n}\n\nfunction renderNode(seriesModel, thisStorage, oldStorage, reRoot, lastsForAnimation, willInvisibleEls, thisNode, oldNode, parentGroup, depth) {\n  if (!thisNode) {\n    return;\n  }\n\n  var thisLayout = thisNode.getLayout();\n  var data = seriesModel.getData();\n  var nodeModel = thisNode.getModel();\n  data.setItemGraphicEl(thisNode.dataIndex, null);\n\n  if (!thisLayout || !thisLayout.isInView) {\n    return;\n  }\n\n  var thisWidth = thisLayout.width;\n  var thisHeight = thisLayout.height;\n  var borderWidth = thisLayout.borderWidth;\n  var thisInvisible = thisLayout.invisible;\n  var thisRawIndex = thisNode.getRawIndex();\n  var oldRawIndex = oldNode && oldNode.getRawIndex();\n  var thisViewChildren = thisNode.viewChildren;\n  var upperHeight = thisLayout.upperHeight;\n  var isParent = thisViewChildren && thisViewChildren.length;\n  var itemStyleNormalModel = nodeModel.getModel('itemStyle');\n  var itemStyleEmphasisModel = nodeModel.getModel(['emphasis', 'itemStyle']);\n  var itemStyleBlurModel = nodeModel.getModel(['blur', 'itemStyle']);\n  var itemStyleSelectModel = nodeModel.getModel(['select', 'itemStyle']);\n  var borderRadius = itemStyleNormalModel.get('borderRadius') || 0;\n  var group = giveGraphic('nodeGroup', Group);\n\n  if (!group) {\n    return;\n  }\n\n  parentGroup.add(group);\n  group.x = thisLayout.x || 0;\n  group.y = thisLayout.y || 0;\n  group.markRedraw();\n  inner(group).nodeWidth = thisWidth;\n  inner(group).nodeHeight = thisHeight;\n\n  if (thisLayout.isAboveViewRoot) {\n    return group;\n  }\n\n  var bg = giveGraphic('background', Rect, depth, Z_BG);\n  bg && renderBackground(group, bg, isParent && thisLayout.upperLabelHeight);\n  var focus = nodeModel.get(['emphasis', 'focus']);\n  var blurScope = nodeModel.get(['emphasis', 'blurScope']);\n  var focusDataIndices = focus === 'ancestor' ? thisNode.getAncestorsIndices() : focus === 'descendant' ? thisNode.getDescendantIndices() : null;\n\n  if (isParent) {\n    if (isHighDownDispatcher(group)) {\n      setAsHighDownDispatcher(group, false);\n    }\n\n    if (bg) {\n      setAsHighDownDispatcher(bg, true);\n      data.setItemGraphicEl(thisNode.dataIndex, bg);\n      enableHoverFocus(bg, focusDataIndices || focus, blurScope);\n    }\n  } else {\n    var content = giveGraphic('content', Rect, depth, Z_CONTENT);\n    content && renderContent(group, content);\n\n    if (bg && isHighDownDispatcher(bg)) {\n      setAsHighDownDispatcher(bg, false);\n    }\n\n    setAsHighDownDispatcher(group, true);\n    data.setItemGraphicEl(thisNode.dataIndex, group);\n    enableHoverFocus(group, focusDataIndices || focus, blurScope);\n  }\n\n  return group;\n\n  function renderBackground(group, bg, useUpperLabel) {\n    var ecData = getECData(bg);\n    ecData.dataIndex = thisNode.dataIndex;\n    ecData.seriesIndex = seriesModel.seriesIndex;\n    bg.setShape({\n      x: 0,\n      y: 0,\n      width: thisWidth,\n      height: thisHeight,\n      r: borderRadius\n    });\n\n    if (thisInvisible) {\n      processInvisible(bg);\n    } else {\n      bg.invisible = false;\n      var style = thisNode.getVisual('style');\n      var visualBorderColor = style.stroke;\n      var normalStyle = getItemStyleNormal(itemStyleNormalModel);\n      normalStyle.fill = visualBorderColor;\n      var emphasisStyle = getStateItemStyle(itemStyleEmphasisModel);\n      emphasisStyle.fill = itemStyleEmphasisModel.get('borderColor');\n      var blurStyle = getStateItemStyle(itemStyleBlurModel);\n      blurStyle.fill = itemStyleBlurModel.get('borderColor');\n      var selectStyle = getStateItemStyle(itemStyleSelectModel);\n      selectStyle.fill = itemStyleSelectModel.get('borderColor');\n\n      if (useUpperLabel) {\n        var upperLabelWidth = thisWidth - 2 * borderWidth;\n        prepareText(bg, visualBorderColor, upperLabelWidth, upperHeight, style.opacity, {\n          x: borderWidth,\n          y: 0,\n          width: upperLabelWidth,\n          height: upperHeight\n        });\n      } else {\n        bg.removeTextContent();\n      }\n\n      bg.setStyle(normalStyle);\n      bg.ensureState('emphasis').style = emphasisStyle;\n      bg.ensureState('blur').style = blurStyle;\n      bg.ensureState('select').style = selectStyle;\n      setDefaultStateProxy(bg);\n    }\n\n    group.add(bg);\n  }\n\n  function renderContent(group, content) {\n    var ecData = getECData(content);\n    ecData.dataIndex = thisNode.dataIndex;\n    ecData.seriesIndex = seriesModel.seriesIndex;\n    var contentWidth = Math.max(thisWidth - 2 * borderWidth, 0);\n    var contentHeight = Math.max(thisHeight - 2 * borderWidth, 0);\n    content.culling = true;\n    content.setShape({\n      x: borderWidth,\n      y: borderWidth,\n      width: contentWidth,\n      height: contentHeight,\n      r: borderRadius\n    });\n\n    if (thisInvisible) {\n      processInvisible(content);\n    } else {\n      content.invisible = false;\n      var nodeStyle = thisNode.getVisual('style');\n      var visualColor = nodeStyle.fill;\n      var normalStyle = getItemStyleNormal(itemStyleNormalModel);\n      normalStyle.fill = visualColor;\n      normalStyle.decal = nodeStyle.decal;\n      var emphasisStyle = getStateItemStyle(itemStyleEmphasisModel);\n      var blurStyle = getStateItemStyle(itemStyleBlurModel);\n      var selectStyle = getStateItemStyle(itemStyleSelectModel);\n      prepareText(content, visualColor, contentWidth, nodeStyle.opacity, contentHeight);\n      content.setStyle(normalStyle);\n      content.ensureState('emphasis').style = emphasisStyle;\n      content.ensureState('blur').style = blurStyle;\n      content.ensureState('select').style = selectStyle;\n      setDefaultStateProxy(content);\n    }\n\n    group.add(content);\n  }\n\n  function processInvisible(element) {\n    !element.invisible && willInvisibleEls.push(element);\n  }\n\n  function prepareText(rectEl, visualColor, visualOpacity, width, height, upperLabelRect) {\n    var normalLabelModel = nodeModel.getModel(upperLabelRect ? PATH_UPPERLABEL_NORMAL : PATH_LABEL_NOAMAL);\n    var text = retrieve(seriesModel.getFormattedLabel(thisNode.dataIndex, 'normal', null, null, normalLabelModel.get('formatter')), convertOptionIdName(nodeModel.get('name'), null));\n\n    if (!upperLabelRect && thisLayout.isLeafRoot) {\n      var iconChar = seriesModel.get('drillDownIcon', true);\n      text = iconChar ? iconChar + ' ' + text : text;\n    }\n\n    var isShow = normalLabelModel.getShallow('show');\n    setLabelStyle(rectEl, getLabelStatesModels(nodeModel, upperLabelRect ? PATH_UPPERLABEL_NORMAL : PATH_LABEL_NOAMAL), {\n      defaultText: isShow ? text : null,\n      inheritColor: visualColor,\n      defaultOpacity: visualOpacity,\n      labelFetcher: seriesModel,\n      labelDataIndex: thisNode.dataIndex\n    });\n    var textEl = rectEl.getTextContent();\n    var textStyle = textEl.style;\n    var textPadding = normalizeCssArray(textStyle.padding || 0);\n\n    if (upperLabelRect) {\n      rectEl.setTextConfig({\n        layoutRect: upperLabelRect\n      });\n      textEl.disableLabelLayout = true;\n    }\n\n    textEl.beforeUpdate = function () {\n      var width = Math.max((upperLabelRect ? upperLabelRect.width : rectEl.shape.width) - textPadding[1] - textPadding[3], 0);\n      var height = Math.max((upperLabelRect ? upperLabelRect.height : rectEl.shape.height) - textPadding[0] - textPadding[2], 0);\n\n      if (textStyle.width !== width || textStyle.height !== height) {\n        textEl.setStyle({\n          width: width,\n          height: height\n        });\n      }\n    };\n\n    textStyle.truncateMinChar = 2;\n    textStyle.lineOverflow = 'truncate';\n    addDrillDownIcon(textStyle, upperLabelRect, thisLayout);\n    var textEmphasisState = textEl.getState('emphasis');\n    addDrillDownIcon(textEmphasisState ? textEmphasisState.style : null, upperLabelRect, thisLayout);\n  }\n\n  function addDrillDownIcon(style, upperLabelRect, thisLayout) {\n    var text = style ? style.text : null;\n\n    if (!upperLabelRect && thisLayout.isLeafRoot && text != null) {\n      var iconChar = seriesModel.get('drillDownIcon', true);\n      style.text = iconChar ? iconChar + ' ' + text : text;\n    }\n  }\n\n  function giveGraphic(storageName, Ctor, depth, z) {\n    var element = oldRawIndex != null && oldStorage[storageName][oldRawIndex];\n    var lasts = lastsForAnimation[storageName];\n\n    if (element) {\n      oldStorage[storageName][oldRawIndex] = null;\n      prepareAnimationWhenHasOld(lasts, element);\n    } else if (!thisInvisible) {\n      element = new Ctor();\n\n      if (element instanceof Displayable) {\n        element.z = calculateZ(depth, z);\n      }\n\n      prepareAnimationWhenNoOld(lasts, element);\n    }\n\n    return thisStorage[storageName][thisRawIndex] = element;\n  }\n\n  function prepareAnimationWhenHasOld(lasts, element) {\n    var lastCfg = lasts[thisRawIndex] = {};\n\n    if (element instanceof Group) {\n      lastCfg.oldX = element.x;\n      lastCfg.oldY = element.y;\n    } else {\n      lastCfg.oldShape = extend({}, element.shape);\n    }\n  }\n\n  function prepareAnimationWhenNoOld(lasts, element) {\n    var lastCfg = lasts[thisRawIndex] = {};\n    var parentNode = thisNode.parentNode;\n    var isGroup = element instanceof graphic.Group;\n\n    if (parentNode && (!reRoot || reRoot.direction === 'drillDown')) {\n      var parentOldX = 0;\n      var parentOldY = 0;\n      var parentOldBg = lastsForAnimation.background[parentNode.getRawIndex()];\n\n      if (!reRoot && parentOldBg && parentOldBg.oldShape) {\n        parentOldX = parentOldBg.oldShape.width;\n        parentOldY = parentOldBg.oldShape.height;\n      }\n\n      if (isGroup) {\n        lastCfg.oldX = 0;\n        lastCfg.oldY = parentOldY;\n      } else {\n        lastCfg.oldShape = {\n          x: parentOldX,\n          y: parentOldY,\n          width: 0,\n          height: 0\n        };\n      }\n    }\n\n    lastCfg.fadein = !isGroup;\n  }\n}\n\nfunction calculateZ(depth, zInLevel) {\n  var zb = depth * Z_BASE + zInLevel;\n  return (zb - 1) / zb;\n}\n\nexport default TreemapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as zrColor from 'zrender/lib/tool/color';\nimport { linearMap } from '../util/number';\nvar each = zrUtil.each;\nvar isObject = zrUtil.isObject;\nvar CATEGORY_DEFAULT_VISUAL_INDEX = -1;\n\nvar VisualMapping = function () {\n  function VisualMapping(option) {\n    var mappingMethod = option.mappingMethod;\n    var visualType = option.type;\n    var thisOption = this.option = zrUtil.clone(option);\n    this.type = visualType;\n    this.mappingMethod = mappingMethod;\n    this._normalizeData = normalizers[mappingMethod];\n    var visualHandler = VisualMapping.visualHandlers[visualType];\n    this.applyVisual = visualHandler.applyVisual;\n    this.getColorMapper = visualHandler.getColorMapper;\n    this._normalizedToVisual = visualHandler._normalizedToVisual[mappingMethod];\n\n    if (mappingMethod === 'piecewise') {\n      normalizeVisualRange(thisOption);\n      preprocessForPiecewise(thisOption);\n    } else if (mappingMethod === 'category') {\n      thisOption.categories ? preprocessForSpecifiedCategory(thisOption) : normalizeVisualRange(thisOption, true);\n    } else {\n      zrUtil.assert(mappingMethod !== 'linear' || thisOption.dataExtent);\n      normalizeVisualRange(thisOption);\n    }\n  }\n\n  VisualMapping.prototype.mapValueToVisual = function (value) {\n    var normalized = this._normalizeData(value);\n\n    return this._normalizedToVisual(normalized, value);\n  };\n\n  VisualMapping.prototype.getNormalizer = function () {\n    return zrUtil.bind(this._normalizeData, this);\n  };\n\n  VisualMapping.listVisualTypes = function () {\n    return zrUtil.keys(VisualMapping.visualHandlers);\n  };\n\n  VisualMapping.isValidType = function (visualType) {\n    return VisualMapping.visualHandlers.hasOwnProperty(visualType);\n  };\n\n  VisualMapping.eachVisual = function (visual, callback, context) {\n    if (zrUtil.isObject(visual)) {\n      zrUtil.each(visual, callback, context);\n    } else {\n      callback.call(context, visual);\n    }\n  };\n\n  VisualMapping.mapVisual = function (visual, callback, context) {\n    var isPrimary;\n    var newVisual = zrUtil.isArray(visual) ? [] : zrUtil.isObject(visual) ? {} : (isPrimary = true, null);\n    VisualMapping.eachVisual(visual, function (v, key) {\n      var newVal = callback.call(context, v, key);\n      isPrimary ? newVisual = newVal : newVisual[key] = newVal;\n    });\n    return newVisual;\n  };\n\n  VisualMapping.retrieveVisuals = function (obj) {\n    var ret = {};\n    var hasVisual;\n    obj && each(VisualMapping.visualHandlers, function (h, visualType) {\n      if (obj.hasOwnProperty(visualType)) {\n        ret[visualType] = obj[visualType];\n        hasVisual = true;\n      }\n    });\n    return hasVisual ? ret : null;\n  };\n\n  VisualMapping.prepareVisualTypes = function (visualTypes) {\n    if (zrUtil.isArray(visualTypes)) {\n      visualTypes = visualTypes.slice();\n    } else if (isObject(visualTypes)) {\n      var types_1 = [];\n      each(visualTypes, function (item, type) {\n        types_1.push(type);\n      });\n      visualTypes = types_1;\n    } else {\n      return [];\n    }\n\n    visualTypes.sort(function (type1, type2) {\n      return type2 === 'color' && type1 !== 'color' && type1.indexOf('color') === 0 ? 1 : -1;\n    });\n    return visualTypes;\n  };\n\n  VisualMapping.dependsOn = function (visualType1, visualType2) {\n    return visualType2 === 'color' ? !!(visualType1 && visualType1.indexOf(visualType2) === 0) : visualType1 === visualType2;\n  };\n\n  VisualMapping.findPieceIndex = function (value, pieceList, findClosestWhenOutside) {\n    var possibleI;\n    var abs = Infinity;\n\n    for (var i = 0, len = pieceList.length; i < len; i++) {\n      var pieceValue = pieceList[i].value;\n\n      if (pieceValue != null) {\n        if (pieceValue === value || typeof pieceValue === 'string' && pieceValue === value + '') {\n          return i;\n        }\n\n        findClosestWhenOutside && updatePossible(pieceValue, i);\n      }\n    }\n\n    for (var i = 0, len = pieceList.length; i < len; i++) {\n      var piece = pieceList[i];\n      var interval = piece.interval;\n      var close_1 = piece.close;\n\n      if (interval) {\n        if (interval[0] === -Infinity) {\n          if (littleThan(close_1[1], value, interval[1])) {\n            return i;\n          }\n        } else if (interval[1] === Infinity) {\n          if (littleThan(close_1[0], interval[0], value)) {\n            return i;\n          }\n        } else if (littleThan(close_1[0], interval[0], value) && littleThan(close_1[1], value, interval[1])) {\n          return i;\n        }\n\n        findClosestWhenOutside && updatePossible(interval[0], i);\n        findClosestWhenOutside && updatePossible(interval[1], i);\n      }\n    }\n\n    if (findClosestWhenOutside) {\n      return value === Infinity ? pieceList.length - 1 : value === -Infinity ? 0 : possibleI;\n    }\n\n    function updatePossible(val, index) {\n      var newAbs = Math.abs(val - value);\n\n      if (newAbs < abs) {\n        abs = newAbs;\n        possibleI = index;\n      }\n    }\n  };\n\n  VisualMapping.visualHandlers = {\n    color: {\n      applyVisual: makeApplyVisual('color'),\n      getColorMapper: function () {\n        var thisOption = this.option;\n        return zrUtil.bind(thisOption.mappingMethod === 'category' ? function (value, isNormalized) {\n          !isNormalized && (value = this._normalizeData(value));\n          return doMapCategory.call(this, value);\n        } : function (value, isNormalized, out) {\n          var returnRGBArray = !!out;\n          !isNormalized && (value = this._normalizeData(value));\n          out = zrColor.fastLerp(value, thisOption.parsedVisual, out);\n          return returnRGBArray ? out : zrColor.stringify(out, 'rgba');\n        }, this);\n      },\n      _normalizedToVisual: {\n        linear: function (normalized) {\n          return zrColor.stringify(zrColor.fastLerp(normalized, this.option.parsedVisual), 'rgba');\n        },\n        category: doMapCategory,\n        piecewise: function (normalized, value) {\n          var result = getSpecifiedVisual.call(this, value);\n\n          if (result == null) {\n            result = zrColor.stringify(zrColor.fastLerp(normalized, this.option.parsedVisual), 'rgba');\n          }\n\n          return result;\n        },\n        fixed: doMapFixed\n      }\n    },\n    colorHue: makePartialColorVisualHandler(function (color, value) {\n      return zrColor.modifyHSL(color, value);\n    }),\n    colorSaturation: makePartialColorVisualHandler(function (color, value) {\n      return zrColor.modifyHSL(color, null, value);\n    }),\n    colorLightness: makePartialColorVisualHandler(function (color, value) {\n      return zrColor.modifyHSL(color, null, null, value);\n    }),\n    colorAlpha: makePartialColorVisualHandler(function (color, value) {\n      return zrColor.modifyAlpha(color, value);\n    }),\n    decal: {\n      applyVisual: makeApplyVisual('decal'),\n      _normalizedToVisual: {\n        linear: null,\n        category: doMapCategory,\n        piecewise: null,\n        fixed: null\n      }\n    },\n    opacity: {\n      applyVisual: makeApplyVisual('opacity'),\n      _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\n    },\n    liftZ: {\n      applyVisual: makeApplyVisual('liftZ'),\n      _normalizedToVisual: {\n        linear: doMapFixed,\n        category: doMapFixed,\n        piecewise: doMapFixed,\n        fixed: doMapFixed\n      }\n    },\n    symbol: {\n      applyVisual: function (value, getter, setter) {\n        var symbolCfg = this.mapValueToVisual(value);\n        setter('symbol', symbolCfg);\n      },\n      _normalizedToVisual: {\n        linear: doMapToArray,\n        category: doMapCategory,\n        piecewise: function (normalized, value) {\n          var result = getSpecifiedVisual.call(this, value);\n\n          if (result == null) {\n            result = doMapToArray.call(this, normalized);\n          }\n\n          return result;\n        },\n        fixed: doMapFixed\n      }\n    },\n    symbolSize: {\n      applyVisual: makeApplyVisual('symbolSize'),\n      _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\n    }\n  };\n  return VisualMapping;\n}();\n\nfunction preprocessForPiecewise(thisOption) {\n  var pieceList = thisOption.pieceList;\n  thisOption.hasSpecialVisual = false;\n  zrUtil.each(pieceList, function (piece, index) {\n    piece.originIndex = index;\n\n    if (piece.visual != null) {\n      thisOption.hasSpecialVisual = true;\n    }\n  });\n}\n\nfunction preprocessForSpecifiedCategory(thisOption) {\n  var categories = thisOption.categories;\n  var categoryMap = thisOption.categoryMap = {};\n  var visual = thisOption.visual;\n  each(categories, function (cate, index) {\n    categoryMap[cate] = index;\n  });\n\n  if (!zrUtil.isArray(visual)) {\n    var visualArr_1 = [];\n\n    if (zrUtil.isObject(visual)) {\n      each(visual, function (v, cate) {\n        var index = categoryMap[cate];\n        visualArr_1[index != null ? index : CATEGORY_DEFAULT_VISUAL_INDEX] = v;\n      });\n    } else {\n      visualArr_1[CATEGORY_DEFAULT_VISUAL_INDEX] = visual;\n    }\n\n    visual = setVisualToOption(thisOption, visualArr_1);\n  }\n\n  for (var i = categories.length - 1; i >= 0; i--) {\n    if (visual[i] == null) {\n      delete categoryMap[categories[i]];\n      categories.pop();\n    }\n  }\n}\n\nfunction normalizeVisualRange(thisOption, isCategory) {\n  var visual = thisOption.visual;\n  var visualArr = [];\n\n  if (zrUtil.isObject(visual)) {\n    each(visual, function (v) {\n      visualArr.push(v);\n    });\n  } else if (visual != null) {\n    visualArr.push(visual);\n  }\n\n  var doNotNeedPair = {\n    color: 1,\n    symbol: 1\n  };\n\n  if (!isCategory && visualArr.length === 1 && !doNotNeedPair.hasOwnProperty(thisOption.type)) {\n    visualArr[1] = visualArr[0];\n  }\n\n  setVisualToOption(thisOption, visualArr);\n}\n\nfunction makePartialColorVisualHandler(applyValue) {\n  return {\n    applyVisual: function (value, getter, setter) {\n      var colorChannel = this.mapValueToVisual(value);\n      setter('color', applyValue(getter('color'), colorChannel));\n    },\n    _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\n  };\n}\n\nfunction doMapToArray(normalized) {\n  var visual = this.option.visual;\n  return visual[Math.round(linearMap(normalized, [0, 1], [0, visual.length - 1], true))] || {};\n}\n\nfunction makeApplyVisual(visualType) {\n  return function (value, getter, setter) {\n    setter(visualType, this.mapValueToVisual(value));\n  };\n}\n\nfunction doMapCategory(normalized) {\n  var visual = this.option.visual;\n  return visual[this.option.loop && normalized !== CATEGORY_DEFAULT_VISUAL_INDEX ? normalized % visual.length : normalized];\n}\n\nfunction doMapFixed() {\n  return this.option.visual[0];\n}\n\nfunction createNormalizedToNumericVisual(sourceExtent) {\n  return {\n    linear: function (normalized) {\n      return linearMap(normalized, sourceExtent, this.option.visual, true);\n    },\n    category: doMapCategory,\n    piecewise: function (normalized, value) {\n      var result = getSpecifiedVisual.call(this, value);\n\n      if (result == null) {\n        result = linearMap(normalized, sourceExtent, this.option.visual, true);\n      }\n\n      return result;\n    },\n    fixed: doMapFixed\n  };\n}\n\nfunction getSpecifiedVisual(value) {\n  var thisOption = this.option;\n  var pieceList = thisOption.pieceList;\n\n  if (thisOption.hasSpecialVisual) {\n    var pieceIndex = VisualMapping.findPieceIndex(value, pieceList);\n    var piece = pieceList[pieceIndex];\n\n    if (piece && piece.visual) {\n      return piece.visual[this.type];\n    }\n  }\n}\n\nfunction setVisualToOption(thisOption, visualArr) {\n  thisOption.visual = visualArr;\n\n  if (thisOption.type === 'color') {\n    thisOption.parsedVisual = zrUtil.map(visualArr, function (item) {\n      return zrColor.parse(item);\n    });\n  }\n\n  return visualArr;\n}\n\nvar normalizers = {\n  linear: function (value) {\n    return linearMap(value, this.option.dataExtent, [0, 1], true);\n  },\n  piecewise: function (value) {\n    var pieceList = this.option.pieceList;\n    var pieceIndex = VisualMapping.findPieceIndex(value, pieceList, true);\n\n    if (pieceIndex != null) {\n      return linearMap(pieceIndex, [0, pieceList.length - 1], [0, 1], true);\n    }\n  },\n  category: function (value) {\n    var index = this.option.categories ? this.option.categoryMap[value] : value;\n    return index == null ? CATEGORY_DEFAULT_VISUAL_INDEX : index;\n  },\n  fixed: zrUtil.noop\n};\n\nfunction littleThan(close, a, b) {\n  return close ? a <= b : a < b;\n}\n\nexport default VisualMapping;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport VisualMapping from '../../visual/VisualMapping';\nimport { each, extend, isArray } from 'zrender/lib/core/util';\nimport { modifyHSL, modifyAlpha } from 'zrender/lib/tool/color';\nimport { makeInner } from '../../util/model';\nvar ITEM_STYLE_NORMAL = 'itemStyle';\nvar inner = makeInner();\nexport default {\n  seriesType: 'treemap',\n  reset: function (seriesModel) {\n    var tree = seriesModel.getData().tree;\n    var root = tree.root;\n\n    if (root.isRemoved()) {\n      return;\n    }\n\n    travelTree(root, {}, seriesModel.getViewRoot().getAncestors(), seriesModel);\n  }\n};\n\nfunction travelTree(node, designatedVisual, viewRootAncestors, seriesModel) {\n  var nodeModel = node.getModel();\n  var nodeLayout = node.getLayout();\n  var data = node.hostTree.data;\n\n  if (!nodeLayout || nodeLayout.invisible || !nodeLayout.isInView) {\n    return;\n  }\n\n  var nodeItemStyleModel = nodeModel.getModel(ITEM_STYLE_NORMAL);\n  var visuals = buildVisuals(nodeItemStyleModel, designatedVisual, seriesModel);\n  var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, 'style');\n  var borderColor = nodeItemStyleModel.get('borderColor');\n  var borderColorSaturation = nodeItemStyleModel.get('borderColorSaturation');\n  var thisNodeColor;\n\n  if (borderColorSaturation != null) {\n    thisNodeColor = calculateColor(visuals);\n    borderColor = calculateBorderColor(borderColorSaturation, thisNodeColor);\n  }\n\n  existsStyle.stroke = borderColor;\n  var viewChildren = node.viewChildren;\n\n  if (!viewChildren || !viewChildren.length) {\n    thisNodeColor = calculateColor(visuals);\n    existsStyle.fill = thisNodeColor;\n  } else {\n    var mapping_1 = buildVisualMapping(node, nodeModel, nodeLayout, nodeItemStyleModel, visuals, viewChildren);\n    each(viewChildren, function (child, index) {\n      if (child.depth >= viewRootAncestors.length || child === viewRootAncestors[child.depth]) {\n        var childVisual = mapVisual(nodeModel, visuals, child, index, mapping_1, seriesModel);\n        travelTree(child, childVisual, viewRootAncestors, seriesModel);\n      }\n    });\n  }\n}\n\nfunction buildVisuals(nodeItemStyleModel, designatedVisual, seriesModel) {\n  var visuals = extend({}, designatedVisual);\n  var designatedVisualItemStyle = seriesModel.designatedVisualItemStyle;\n  each(['color', 'colorAlpha', 'colorSaturation'], function (visualName) {\n    designatedVisualItemStyle[visualName] = designatedVisual[visualName];\n    var val = nodeItemStyleModel.get(visualName);\n    designatedVisualItemStyle[visualName] = null;\n    val != null && (visuals[visualName] = val);\n  });\n  return visuals;\n}\n\nfunction calculateColor(visuals) {\n  var color = getValueVisualDefine(visuals, 'color');\n\n  if (color) {\n    var colorAlpha = getValueVisualDefine(visuals, 'colorAlpha');\n    var colorSaturation = getValueVisualDefine(visuals, 'colorSaturation');\n\n    if (colorSaturation) {\n      color = modifyHSL(color, null, null, colorSaturation);\n    }\n\n    if (colorAlpha) {\n      color = modifyAlpha(color, colorAlpha);\n    }\n\n    return color;\n  }\n}\n\nfunction calculateBorderColor(borderColorSaturation, thisNodeColor) {\n  return thisNodeColor != null ? modifyHSL(thisNodeColor, null, null, borderColorSaturation) : null;\n}\n\nfunction getValueVisualDefine(visuals, name) {\n  var value = visuals[name];\n\n  if (value != null && value !== 'none') {\n    return value;\n  }\n}\n\nfunction buildVisualMapping(node, nodeModel, nodeLayout, nodeItemStyleModel, visuals, viewChildren) {\n  if (!viewChildren || !viewChildren.length) {\n    return;\n  }\n\n  var rangeVisual = getRangeVisual(nodeModel, 'color') || visuals.color != null && visuals.color !== 'none' && (getRangeVisual(nodeModel, 'colorAlpha') || getRangeVisual(nodeModel, 'colorSaturation'));\n\n  if (!rangeVisual) {\n    return;\n  }\n\n  var visualMin = nodeModel.get('visualMin');\n  var visualMax = nodeModel.get('visualMax');\n  var dataExtent = nodeLayout.dataExtent.slice();\n  visualMin != null && visualMin < dataExtent[0] && (dataExtent[0] = visualMin);\n  visualMax != null && visualMax > dataExtent[1] && (dataExtent[1] = visualMax);\n  var colorMappingBy = nodeModel.get('colorMappingBy');\n  var opt = {\n    type: rangeVisual.name,\n    dataExtent: dataExtent,\n    visual: rangeVisual.range\n  };\n\n  if (opt.type === 'color' && (colorMappingBy === 'index' || colorMappingBy === 'id')) {\n    opt.mappingMethod = 'category';\n    opt.loop = true;\n  } else {\n    opt.mappingMethod = 'linear';\n  }\n\n  var mapping = new VisualMapping(opt);\n  inner(mapping).drColorMappingBy = colorMappingBy;\n  return mapping;\n}\n\nfunction getRangeVisual(nodeModel, name) {\n  var range = nodeModel.get(name);\n  return isArray(range) && range.length ? {\n    name: name,\n    range: range\n  } : null;\n}\n\nfunction mapVisual(nodeModel, visuals, child, index, mapping, seriesModel) {\n  var childVisuals = extend({}, visuals);\n\n  if (mapping) {\n    var mappingType = mapping.type;\n    var colorMappingBy = mappingType === 'color' && inner(mapping).drColorMappingBy;\n    var value = colorMappingBy === 'index' ? index : colorMappingBy === 'id' ? seriesModel.mapIdToIndex(child.getId()) : child.getValue(nodeModel.get('visualDimension'));\n    childVisuals[mappingType] = mapping.mapValueToVisual(value);\n  }\n\n  return childVisuals;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { parsePercent, MAX_SAFE_INTEGER } from '../../util/number';\nimport * as layout from '../../util/layout';\nimport * as helper from '../helper/treeHelper';\nvar mathMax = Math.max;\nvar mathMin = Math.min;\nvar retrieveValue = zrUtil.retrieve;\nvar each = zrUtil.each;\nvar PATH_BORDER_WIDTH = ['itemStyle', 'borderWidth'];\nvar PATH_GAP_WIDTH = ['itemStyle', 'gapWidth'];\nvar PATH_UPPER_LABEL_SHOW = ['upperLabel', 'show'];\nvar PATH_UPPER_LABEL_HEIGHT = ['upperLabel', 'height'];\n;\nexport default {\n  seriesType: 'treemap',\n  reset: function (seriesModel, ecModel, api, payload) {\n    var ecWidth = api.getWidth();\n    var ecHeight = api.getHeight();\n    var seriesOption = seriesModel.option;\n    var layoutInfo = layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n    var size = seriesOption.size || [];\n    var containerWidth = parsePercent(retrieveValue(layoutInfo.width, size[0]), ecWidth);\n    var containerHeight = parsePercent(retrieveValue(layoutInfo.height, size[1]), ecHeight);\n    var payloadType = payload && payload.type;\n    var types = ['treemapZoomToNode', 'treemapRootToNode'];\n    var targetInfo = helper.retrieveTargetInfo(payload, types, seriesModel);\n    var rootRect = payloadType === 'treemapRender' || payloadType === 'treemapMove' ? payload.rootRect : null;\n    var viewRoot = seriesModel.getViewRoot();\n    var viewAbovePath = helper.getPathToRoot(viewRoot);\n\n    if (payloadType !== 'treemapMove') {\n      var rootSize = payloadType === 'treemapZoomToNode' ? estimateRootSize(seriesModel, targetInfo, viewRoot, containerWidth, containerHeight) : rootRect ? [rootRect.width, rootRect.height] : [containerWidth, containerHeight];\n      var sort_1 = seriesOption.sort;\n\n      if (sort_1 && sort_1 !== 'asc' && sort_1 !== 'desc') {\n        sort_1 = 'desc';\n      }\n\n      var options = {\n        squareRatio: seriesOption.squareRatio,\n        sort: sort_1,\n        leafDepth: seriesOption.leafDepth\n      };\n      viewRoot.hostTree.clearLayouts();\n      var viewRootLayout_1 = {\n        x: 0,\n        y: 0,\n        width: rootSize[0],\n        height: rootSize[1],\n        area: rootSize[0] * rootSize[1]\n      };\n      viewRoot.setLayout(viewRootLayout_1);\n      squarify(viewRoot, options, false, 0);\n      viewRootLayout_1 = viewRoot.getLayout();\n      each(viewAbovePath, function (node, index) {\n        var childValue = (viewAbovePath[index + 1] || viewRoot).getValue();\n        node.setLayout(zrUtil.extend({\n          dataExtent: [childValue, childValue],\n          borderWidth: 0,\n          upperHeight: 0\n        }, viewRootLayout_1));\n      });\n    }\n\n    var treeRoot = seriesModel.getData().tree.root;\n    treeRoot.setLayout(calculateRootPosition(layoutInfo, rootRect, targetInfo), true);\n    seriesModel.setLayoutInfo(layoutInfo);\n    prunning(treeRoot, new BoundingRect(-layoutInfo.x, -layoutInfo.y, ecWidth, ecHeight), viewAbovePath, viewRoot, 0);\n  }\n};\n\nfunction squarify(node, options, hideChildren, depth) {\n  var width;\n  var height;\n\n  if (node.isRemoved()) {\n    return;\n  }\n\n  var thisLayout = node.getLayout();\n  width = thisLayout.width;\n  height = thisLayout.height;\n  var nodeModel = node.getModel();\n  var borderWidth = nodeModel.get(PATH_BORDER_WIDTH);\n  var halfGapWidth = nodeModel.get(PATH_GAP_WIDTH) / 2;\n  var upperLabelHeight = getUpperLabelHeight(nodeModel);\n  var upperHeight = Math.max(borderWidth, upperLabelHeight);\n  var layoutOffset = borderWidth - halfGapWidth;\n  var layoutOffsetUpper = upperHeight - halfGapWidth;\n  node.setLayout({\n    borderWidth: borderWidth,\n    upperHeight: upperHeight,\n    upperLabelHeight: upperLabelHeight\n  }, true);\n  width = mathMax(width - 2 * layoutOffset, 0);\n  height = mathMax(height - layoutOffset - layoutOffsetUpper, 0);\n  var totalArea = width * height;\n  var viewChildren = initChildren(node, nodeModel, totalArea, options, hideChildren, depth);\n\n  if (!viewChildren.length) {\n    return;\n  }\n\n  var rect = {\n    x: layoutOffset,\n    y: layoutOffsetUpper,\n    width: width,\n    height: height\n  };\n  var rowFixedLength = mathMin(width, height);\n  var best = Infinity;\n  var row = [];\n  row.area = 0;\n\n  for (var i = 0, len = viewChildren.length; i < len;) {\n    var child = viewChildren[i];\n    row.push(child);\n    row.area += child.getLayout().area;\n    var score = worst(row, rowFixedLength, options.squareRatio);\n\n    if (score <= best) {\n      i++;\n      best = score;\n    } else {\n      row.area -= row.pop().getLayout().area;\n      position(row, rowFixedLength, rect, halfGapWidth, false);\n      rowFixedLength = mathMin(rect.width, rect.height);\n      row.length = row.area = 0;\n      best = Infinity;\n    }\n  }\n\n  if (row.length) {\n    position(row, rowFixedLength, rect, halfGapWidth, true);\n  }\n\n  if (!hideChildren) {\n    var childrenVisibleMin = nodeModel.get('childrenVisibleMin');\n\n    if (childrenVisibleMin != null && totalArea < childrenVisibleMin) {\n      hideChildren = true;\n    }\n  }\n\n  for (var i = 0, len = viewChildren.length; i < len; i++) {\n    squarify(viewChildren[i], options, hideChildren, depth + 1);\n  }\n}\n\nfunction initChildren(node, nodeModel, totalArea, options, hideChildren, depth) {\n  var viewChildren = node.children || [];\n  var orderBy = options.sort;\n  orderBy !== 'asc' && orderBy !== 'desc' && (orderBy = null);\n  var overLeafDepth = options.leafDepth != null && options.leafDepth <= depth;\n\n  if (hideChildren && !overLeafDepth) {\n    return node.viewChildren = [];\n  }\n\n  viewChildren = zrUtil.filter(viewChildren, function (child) {\n    return !child.isRemoved();\n  });\n  sort(viewChildren, orderBy);\n  var info = statistic(nodeModel, viewChildren, orderBy);\n\n  if (info.sum === 0) {\n    return node.viewChildren = [];\n  }\n\n  info.sum = filterByThreshold(nodeModel, totalArea, info.sum, orderBy, viewChildren);\n\n  if (info.sum === 0) {\n    return node.viewChildren = [];\n  }\n\n  for (var i = 0, len = viewChildren.length; i < len; i++) {\n    var area = viewChildren[i].getValue() / info.sum * totalArea;\n    viewChildren[i].setLayout({\n      area: area\n    });\n  }\n\n  if (overLeafDepth) {\n    viewChildren.length && node.setLayout({\n      isLeafRoot: true\n    }, true);\n    viewChildren.length = 0;\n  }\n\n  node.viewChildren = viewChildren;\n  node.setLayout({\n    dataExtent: info.dataExtent\n  }, true);\n  return viewChildren;\n}\n\nfunction filterByThreshold(nodeModel, totalArea, sum, orderBy, orderedChildren) {\n  if (!orderBy) {\n    return sum;\n  }\n\n  var visibleMin = nodeModel.get('visibleMin');\n  var len = orderedChildren.length;\n  var deletePoint = len;\n\n  for (var i = len - 1; i >= 0; i--) {\n    var value = orderedChildren[orderBy === 'asc' ? len - i - 1 : i].getValue();\n\n    if (value / sum * totalArea < visibleMin) {\n      deletePoint = i;\n      sum -= value;\n    }\n  }\n\n  orderBy === 'asc' ? orderedChildren.splice(0, len - deletePoint) : orderedChildren.splice(deletePoint, len - deletePoint);\n  return sum;\n}\n\nfunction sort(viewChildren, orderBy) {\n  if (orderBy) {\n    viewChildren.sort(function (a, b) {\n      var diff = orderBy === 'asc' ? a.getValue() - b.getValue() : b.getValue() - a.getValue();\n      return diff === 0 ? orderBy === 'asc' ? a.dataIndex - b.dataIndex : b.dataIndex - a.dataIndex : diff;\n    });\n  }\n\n  return viewChildren;\n}\n\nfunction statistic(nodeModel, children, orderBy) {\n  var sum = 0;\n\n  for (var i = 0, len = children.length; i < len; i++) {\n    sum += children[i].getValue();\n  }\n\n  var dimension = nodeModel.get('visualDimension');\n  var dataExtent;\n\n  if (!children || !children.length) {\n    dataExtent = [NaN, NaN];\n  } else if (dimension === 'value' && orderBy) {\n    dataExtent = [children[children.length - 1].getValue(), children[0].getValue()];\n    orderBy === 'asc' && dataExtent.reverse();\n  } else {\n    dataExtent = [Infinity, -Infinity];\n    each(children, function (child) {\n      var value = child.getValue(dimension);\n      value < dataExtent[0] && (dataExtent[0] = value);\n      value > dataExtent[1] && (dataExtent[1] = value);\n    });\n  }\n\n  return {\n    sum: sum,\n    dataExtent: dataExtent\n  };\n}\n\nfunction worst(row, rowFixedLength, ratio) {\n  var areaMax = 0;\n  var areaMin = Infinity;\n\n  for (var i = 0, area = void 0, len = row.length; i < len; i++) {\n    area = row[i].getLayout().area;\n\n    if (area) {\n      area < areaMin && (areaMin = area);\n      area > areaMax && (areaMax = area);\n    }\n  }\n\n  var squareArea = row.area * row.area;\n  var f = rowFixedLength * rowFixedLength * ratio;\n  return squareArea ? mathMax(f * areaMax / squareArea, squareArea / (f * areaMin)) : Infinity;\n}\n\nfunction position(row, rowFixedLength, rect, halfGapWidth, flush) {\n  var idx0WhenH = rowFixedLength === rect.width ? 0 : 1;\n  var idx1WhenH = 1 - idx0WhenH;\n  var xy = ['x', 'y'];\n  var wh = ['width', 'height'];\n  var last = rect[xy[idx0WhenH]];\n  var rowOtherLength = rowFixedLength ? row.area / rowFixedLength : 0;\n\n  if (flush || rowOtherLength > rect[wh[idx1WhenH]]) {\n    rowOtherLength = rect[wh[idx1WhenH]];\n  }\n\n  for (var i = 0, rowLen = row.length; i < rowLen; i++) {\n    var node = row[i];\n    var nodeLayout = {};\n    var step = rowOtherLength ? node.getLayout().area / rowOtherLength : 0;\n    var wh1 = nodeLayout[wh[idx1WhenH]] = mathMax(rowOtherLength - 2 * halfGapWidth, 0);\n    var remain = rect[xy[idx0WhenH]] + rect[wh[idx0WhenH]] - last;\n    var modWH = i === rowLen - 1 || remain < step ? remain : step;\n    var wh0 = nodeLayout[wh[idx0WhenH]] = mathMax(modWH - 2 * halfGapWidth, 0);\n    nodeLayout[xy[idx1WhenH]] = rect[xy[idx1WhenH]] + mathMin(halfGapWidth, wh1 / 2);\n    nodeLayout[xy[idx0WhenH]] = last + mathMin(halfGapWidth, wh0 / 2);\n    last += modWH;\n    node.setLayout(nodeLayout, true);\n  }\n\n  rect[xy[idx1WhenH]] += rowOtherLength;\n  rect[wh[idx1WhenH]] -= rowOtherLength;\n}\n\nfunction estimateRootSize(seriesModel, targetInfo, viewRoot, containerWidth, containerHeight) {\n  var currNode = (targetInfo || {}).node;\n  var defaultSize = [containerWidth, containerHeight];\n\n  if (!currNode || currNode === viewRoot) {\n    return defaultSize;\n  }\n\n  var parent;\n  var viewArea = containerWidth * containerHeight;\n  var area = viewArea * seriesModel.option.zoomToNodeRatio;\n\n  while (parent = currNode.parentNode) {\n    var sum = 0;\n    var siblings = parent.children;\n\n    for (var i = 0, len = siblings.length; i < len; i++) {\n      sum += siblings[i].getValue();\n    }\n\n    var currNodeValue = currNode.getValue();\n\n    if (currNodeValue === 0) {\n      return defaultSize;\n    }\n\n    area *= sum / currNodeValue;\n    var parentModel = parent.getModel();\n    var borderWidth = parentModel.get(PATH_BORDER_WIDTH);\n    var upperHeight = Math.max(borderWidth, getUpperLabelHeight(parentModel));\n    area += 4 * borderWidth * borderWidth + (3 * borderWidth + upperHeight) * Math.pow(area, 0.5);\n    area > MAX_SAFE_INTEGER && (area = MAX_SAFE_INTEGER);\n    currNode = parent;\n  }\n\n  area < viewArea && (area = viewArea);\n  var scale = Math.pow(area / viewArea, 0.5);\n  return [containerWidth * scale, containerHeight * scale];\n}\n\nfunction calculateRootPosition(layoutInfo, rootRect, targetInfo) {\n  if (rootRect) {\n    return {\n      x: rootRect.x,\n      y: rootRect.y\n    };\n  }\n\n  var defaultPosition = {\n    x: 0,\n    y: 0\n  };\n\n  if (!targetInfo) {\n    return defaultPosition;\n  }\n\n  var targetNode = targetInfo.node;\n  var layout = targetNode.getLayout();\n\n  if (!layout) {\n    return defaultPosition;\n  }\n\n  var targetCenter = [layout.width / 2, layout.height / 2];\n  var node = targetNode;\n\n  while (node) {\n    var nodeLayout = node.getLayout();\n    targetCenter[0] += nodeLayout.x;\n    targetCenter[1] += nodeLayout.y;\n    node = node.parentNode;\n  }\n\n  return {\n    x: layoutInfo.width / 2 - targetCenter[0],\n    y: layoutInfo.height / 2 - targetCenter[1]\n  };\n}\n\nfunction prunning(node, clipRect, viewAbovePath, viewRoot, depth) {\n  var nodeLayout = node.getLayout();\n  var nodeInViewAbovePath = viewAbovePath[depth];\n  var isAboveViewRoot = nodeInViewAbovePath && nodeInViewAbovePath === node;\n\n  if (nodeInViewAbovePath && !isAboveViewRoot || depth === viewAbovePath.length && node !== viewRoot) {\n    return;\n  }\n\n  node.setLayout({\n    isInView: true,\n    invisible: !isAboveViewRoot && !clipRect.intersect(nodeLayout),\n    isAboveViewRoot: isAboveViewRoot\n  }, true);\n  var childClipRect = new BoundingRect(clipRect.x - nodeLayout.x, clipRect.y - nodeLayout.y, clipRect.width, clipRect.height);\n  each(node.viewChildren || [], function (child) {\n    prunning(child, childClipRect, viewAbovePath, viewRoot, depth + 1);\n  });\n}\n\nfunction getUpperLabelHeight(model) {\n  return model.get(PATH_UPPER_LABEL_SHOW) ? model.get(PATH_UPPER_LABEL_HEIGHT) : 0;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { installTreemapAction } from './treemapAction';\nimport TreemapSeriesModel from './TreemapSeries';\nimport TreemapView from './TreemapView';\nimport treemapVisual from './treemapVisual';\nimport treemapLayout from './treemapLayout';\nexport function install(registers) {\n  registers.registerSeriesModel(TreemapSeriesModel);\n  registers.registerChartView(TreemapView);\n  registers.registerVisual(treemapVisual);\n  registers.registerLayout(treemapLayout);\n  installTreemapAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function categoryFilter(ecModel) {\n  var legendModels = ecModel.findComponents({\n    mainType: 'legend'\n  });\n\n  if (!legendModels || !legendModels.length) {\n    return;\n  }\n\n  ecModel.eachSeriesByType('graph', function (graphSeries) {\n    var categoriesData = graphSeries.getCategoriesData();\n    var graph = graphSeries.getGraph();\n    var data = graph.data;\n    var categoryNames = categoriesData.mapArray(categoriesData.getName);\n    data.filterSelf(function (idx) {\n      var model = data.getItemModel(idx);\n      var category = model.getShallow('category');\n\n      if (category != null) {\n        if (typeof category === 'number') {\n          category = categoryNames[category];\n        }\n\n        for (var i = 0; i < legendModels.length; i++) {\n          if (!legendModels[i].isSelected(category)) {\n            return false;\n          }\n        }\n      }\n\n      return true;\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { extend } from 'zrender/lib/core/util';\nexport default function categoryVisual(ecModel) {\n  var paletteScope = {};\n  ecModel.eachSeriesByType('graph', function (seriesModel) {\n    var categoriesData = seriesModel.getCategoriesData();\n    var data = seriesModel.getData();\n    var categoryNameIdxMap = {};\n    categoriesData.each(function (idx) {\n      var name = categoriesData.getName(idx);\n      categoryNameIdxMap['ec-' + name] = idx;\n      var itemModel = categoriesData.getItemModel(idx);\n      var style = itemModel.getModel('itemStyle').getItemStyle();\n\n      if (!style.fill) {\n        style.fill = seriesModel.getColorFromPalette(name, paletteScope);\n      }\n\n      categoriesData.setItemVisual(idx, 'style', style);\n      var symbolVisualList = ['symbol', 'symbolSize', 'symbolKeepAspect'];\n\n      for (var i = 0; i < symbolVisualList.length; i++) {\n        var symbolVisual = itemModel.getShallow(symbolVisualList[i], true);\n\n        if (symbolVisual != null) {\n          categoriesData.setItemVisual(idx, symbolVisualList[i], symbolVisual);\n        }\n      }\n    });\n\n    if (categoriesData.count()) {\n      data.each(function (idx) {\n        var model = data.getItemModel(idx);\n        var categoryIdx = model.getShallow('category');\n\n        if (categoryIdx != null) {\n          if (typeof categoryIdx === 'string') {\n            categoryIdx = categoryNameIdxMap['ec-' + categoryIdx];\n          }\n\n          var categoryStyle = categoriesData.getItemVisual(categoryIdx, 'style');\n          var style = data.ensureUniqueItemVisual(idx, 'style');\n          extend(style, categoryStyle);\n          var visualList = ['symbol', 'symbolSize', 'symbolKeepAspect'];\n\n          for (var i = 0; i < visualList.length; i++) {\n            data.setItemVisual(idx, visualList[i], categoriesData.getItemVisual(categoryIdx, visualList[i]));\n          }\n        }\n      });\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { extend } from 'zrender/lib/core/util';\n\nfunction normalize(a) {\n  if (!(a instanceof Array)) {\n    a = [a, a];\n  }\n\n  return a;\n}\n\nexport default function graphEdgeVisual(ecModel) {\n  ecModel.eachSeriesByType('graph', function (seriesModel) {\n    var graph = seriesModel.getGraph();\n    var edgeData = seriesModel.getEdgeData();\n    var symbolType = normalize(seriesModel.get('edgeSymbol'));\n    var symbolSize = normalize(seriesModel.get('edgeSymbolSize'));\n    edgeData.setVisual('fromSymbol', symbolType && symbolType[0]);\n    edgeData.setVisual('toSymbol', symbolType && symbolType[1]);\n    edgeData.setVisual('fromSymbolSize', symbolSize && symbolSize[0]);\n    edgeData.setVisual('toSymbolSize', symbolSize && symbolSize[1]);\n    edgeData.setVisual('style', seriesModel.getModel('lineStyle').getLineStyle());\n    edgeData.each(function (idx) {\n      var itemModel = edgeData.getItemModel(idx);\n      var edge = graph.getEdgeByIndex(idx);\n      var symbolType = normalize(itemModel.getShallow('symbol', true));\n      var symbolSize = normalize(itemModel.getShallow('symbolSize', true));\n      var style = itemModel.getModel('lineStyle').getLineStyle();\n      var existsStyle = edgeData.ensureUniqueItemVisual(idx, 'style');\n      extend(existsStyle, style);\n\n      switch (existsStyle.stroke) {\n        case 'source':\n          {\n            var nodeStyle = edge.node1.getVisual('style');\n            existsStyle.stroke = nodeStyle && nodeStyle.fill;\n            break;\n          }\n\n        case 'target':\n          {\n            var nodeStyle = edge.node2.getVisual('style');\n            existsStyle.stroke = nodeStyle && nodeStyle.fill;\n            break;\n          }\n      }\n\n      symbolType[0] && edge.setVisual('fromSymbol', symbolType[0]);\n      symbolType[1] && edge.setVisual('toSymbol', symbolType[1]);\n      symbolSize[0] && edge.setVisual('fromSymbolSize', symbolSize[0]);\n      symbolSize[1] && edge.setVisual('toSymbolSize', symbolSize[1]);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar KEY_DELIMITER = '-->';\n\nvar getAutoCurvenessParams = function (seriesModel) {\n  return seriesModel.get('autoCurveness') || null;\n};\n\nvar createCurveness = function (seriesModel, appendLength) {\n  var autoCurvenessParmas = getAutoCurvenessParams(seriesModel);\n  var length = 20;\n  var curvenessList = [];\n\n  if (typeof autoCurvenessParmas === 'number') {\n    length = autoCurvenessParmas;\n  } else if (zrUtil.isArray(autoCurvenessParmas)) {\n    seriesModel.__curvenessList = autoCurvenessParmas;\n    return;\n  }\n\n  if (appendLength > length) {\n    length = appendLength;\n  }\n\n  var len = length % 2 ? length + 2 : length + 3;\n  curvenessList = [];\n\n  for (var i = 0; i < len; i++) {\n    curvenessList.push((i % 2 ? i + 1 : i) / 10 * (i % 2 ? -1 : 1));\n  }\n\n  seriesModel.__curvenessList = curvenessList;\n};\n\nvar getKeyOfEdges = function (n1, n2, seriesModel) {\n  var source = [n1.id, n1.dataIndex].join('.');\n  var target = [n2.id, n2.dataIndex].join('.');\n  return [seriesModel.uid, source, target].join(KEY_DELIMITER);\n};\n\nvar getOppositeKey = function (key) {\n  var keys = key.split(KEY_DELIMITER);\n  return [keys[0], keys[2], keys[1]].join(KEY_DELIMITER);\n};\n\nvar getEdgeFromMap = function (edge, seriesModel) {\n  var key = getKeyOfEdges(edge.node1, edge.node2, seriesModel);\n  return seriesModel.__edgeMap[key];\n};\n\nvar getTotalLengthBetweenNodes = function (edge, seriesModel) {\n  var len = getEdgeMapLengthWithKey(getKeyOfEdges(edge.node1, edge.node2, seriesModel), seriesModel);\n  var lenV = getEdgeMapLengthWithKey(getKeyOfEdges(edge.node2, edge.node1, seriesModel), seriesModel);\n  return len + lenV;\n};\n\nvar getEdgeMapLengthWithKey = function (key, seriesModel) {\n  var edgeMap = seriesModel.__edgeMap;\n  return edgeMap[key] ? edgeMap[key].length : 0;\n};\n\nexport function initCurvenessList(seriesModel) {\n  if (!getAutoCurvenessParams(seriesModel)) {\n    return;\n  }\n\n  seriesModel.__curvenessList = [];\n  seriesModel.__edgeMap = {};\n  createCurveness(seriesModel);\n}\nexport function createEdgeMapForCurveness(n1, n2, seriesModel, index) {\n  if (!getAutoCurvenessParams(seriesModel)) {\n    return;\n  }\n\n  var key = getKeyOfEdges(n1, n2, seriesModel);\n  var edgeMap = seriesModel.__edgeMap;\n  var oppositeEdges = edgeMap[getOppositeKey(key)];\n\n  if (edgeMap[key] && !oppositeEdges) {\n    edgeMap[key].isForward = true;\n  } else if (oppositeEdges && edgeMap[key]) {\n    oppositeEdges.isForward = true;\n    edgeMap[key].isForward = false;\n  }\n\n  edgeMap[key] = edgeMap[key] || [];\n  edgeMap[key].push(index);\n}\nexport function getCurvenessForEdge(edge, seriesModel, index, needReverse) {\n  var autoCurvenessParams = getAutoCurvenessParams(seriesModel);\n  var isArrayParam = zrUtil.isArray(autoCurvenessParams);\n\n  if (!autoCurvenessParams) {\n    return null;\n  }\n\n  var edgeArray = getEdgeFromMap(edge, seriesModel);\n\n  if (!edgeArray) {\n    return null;\n  }\n\n  var edgeIndex = -1;\n\n  for (var i = 0; i < edgeArray.length; i++) {\n    if (edgeArray[i] === index) {\n      edgeIndex = i;\n      break;\n    }\n  }\n\n  var totalLen = getTotalLengthBetweenNodes(edge, seriesModel);\n  createCurveness(seriesModel, totalLen);\n  edge.lineStyle = edge.lineStyle || {};\n  var curKey = getKeyOfEdges(edge.node1, edge.node2, seriesModel);\n  var curvenessList = seriesModel.__curvenessList;\n  var parityCorrection = isArrayParam ? 0 : totalLen % 2 ? 0 : 1;\n\n  if (!edgeArray.isForward) {\n    var oppositeKey = getOppositeKey(curKey);\n    var len = getEdgeMapLengthWithKey(oppositeKey, seriesModel);\n    var resValue = curvenessList[edgeIndex + len + parityCorrection];\n\n    if (needReverse) {\n      if (isArrayParam) {\n        if (autoCurvenessParams && autoCurvenessParams[0] === 0) {\n          return (len + parityCorrection) % 2 ? resValue : -resValue;\n        } else {\n          return ((len % 2 ? 0 : 1) + parityCorrection) % 2 ? resValue : -resValue;\n        }\n      } else {\n        return (len + parityCorrection) % 2 ? resValue : -resValue;\n      }\n    } else {\n      return curvenessList[edgeIndex + len + parityCorrection];\n    }\n  } else {\n    return curvenessList[parityCorrection + edgeIndex];\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as vec2 from 'zrender/lib/core/vector';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { getCurvenessForEdge } from '../helper/multipleGraphEdgeHelper';\nexport function simpleLayout(seriesModel) {\n  var coordSys = seriesModel.coordinateSystem;\n\n  if (coordSys && coordSys.type !== 'view') {\n    return;\n  }\n\n  var graph = seriesModel.getGraph();\n  graph.eachNode(function (node) {\n    var model = node.getModel();\n    node.setLayout([+model.get('x'), +model.get('y')]);\n  });\n  simpleLayoutEdge(graph, seriesModel);\n}\nexport function simpleLayoutEdge(graph, seriesModel) {\n  graph.eachEdge(function (edge, index) {\n    var curveness = zrUtil.retrieve3(edge.getModel().get(['lineStyle', 'curveness']), -getCurvenessForEdge(edge, seriesModel, index, true), 0);\n    var p1 = vec2.clone(edge.node1.getLayout());\n    var p2 = vec2.clone(edge.node2.getLayout());\n    var points = [p1, p2];\n\n    if (+curveness) {\n      points.push([(p1[0] + p2[0]) / 2 - (p1[1] - p2[1]) * curveness, (p1[1] + p2[1]) / 2 - (p2[0] - p1[0]) * curveness]);\n    }\n\n    edge.setLayout(points);\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each } from 'zrender/lib/core/util';\nimport { simpleLayout, simpleLayoutEdge } from './simpleLayoutHelper';\nexport default function graphSimpleLayout(ecModel, api) {\n  ecModel.eachSeriesByType('graph', function (seriesModel) {\n    var layout = seriesModel.get('layout');\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys && coordSys.type !== 'view') {\n      var data_1 = seriesModel.getData();\n      var dimensions_1 = [];\n      each(coordSys.dimensions, function (coordDim) {\n        dimensions_1 = dimensions_1.concat(data_1.mapDimensionsAll(coordDim));\n      });\n\n      for (var dataIndex = 0; dataIndex < data_1.count(); dataIndex++) {\n        var value = [];\n        var hasValue = false;\n\n        for (var i = 0; i < dimensions_1.length; i++) {\n          var val = data_1.get(dimensions_1[i], dataIndex);\n\n          if (!isNaN(val)) {\n            hasValue = true;\n          }\n\n          value.push(val);\n        }\n\n        if (hasValue) {\n          data_1.setItemLayout(dataIndex, coordSys.dataToPoint(value));\n        } else {\n          data_1.setItemLayout(dataIndex, [NaN, NaN]);\n        }\n      }\n\n      simpleLayoutEdge(data_1.graph, seriesModel);\n    } else if (!layout || layout === 'none') {\n      simpleLayout(seriesModel);\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function getNodeGlobalScale(seriesModel) {\n  var coordSys = seriesModel.coordinateSystem;\n\n  if (coordSys.type !== 'view') {\n    return 1;\n  }\n\n  var nodeScaleRatio = seriesModel.option.nodeScaleRatio;\n  var groupZoom = coordSys.scaleX;\n  var roamZoom = coordSys.getZoom();\n  var nodeScale = (roamZoom - 1) * nodeScaleRatio + 1;\n  return nodeScale / groupZoom;\n}\nexport function getSymbolSize(node) {\n  var symbolSize = node.getVisual('symbolSize');\n\n  if (symbolSize instanceof Array) {\n    symbolSize = (symbolSize[0] + symbolSize[1]) / 2;\n  }\n\n  return +symbolSize;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as vec2 from 'zrender/lib/core/vector';\nimport { getSymbolSize, getNodeGlobalScale } from './graphHelper';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { getCurvenessForEdge } from '../helper/multipleGraphEdgeHelper';\nvar PI = Math.PI;\nvar _symbolRadiansHalf = [];\nexport function circularLayout(seriesModel, basedOn) {\n  var coordSys = seriesModel.coordinateSystem;\n\n  if (coordSys && coordSys.type !== 'view') {\n    return;\n  }\n\n  var rect = coordSys.getBoundingRect();\n  var nodeData = seriesModel.getData();\n  var graph = nodeData.graph;\n  var cx = rect.width / 2 + rect.x;\n  var cy = rect.height / 2 + rect.y;\n  var r = Math.min(rect.width, rect.height) / 2;\n  var count = nodeData.count();\n  nodeData.setLayout({\n    cx: cx,\n    cy: cy\n  });\n\n  if (!count) {\n    return;\n  }\n\n  _layoutNodesBasedOn[basedOn](seriesModel, graph, nodeData, r, cx, cy, count);\n\n  graph.eachEdge(function (edge, index) {\n    var curveness = zrUtil.retrieve3(edge.getModel().get(['lineStyle', 'curveness']), getCurvenessForEdge(edge, seriesModel, index), 0);\n    var p1 = vec2.clone(edge.node1.getLayout());\n    var p2 = vec2.clone(edge.node2.getLayout());\n    var cp1;\n    var x12 = (p1[0] + p2[0]) / 2;\n    var y12 = (p1[1] + p2[1]) / 2;\n\n    if (+curveness) {\n      curveness *= 3;\n      cp1 = [cx * curveness + x12 * (1 - curveness), cy * curveness + y12 * (1 - curveness)];\n    }\n\n    edge.setLayout([p1, p2, cp1]);\n  });\n}\nvar _layoutNodesBasedOn = {\n  value: function (seriesModel, graph, nodeData, r, cx, cy, count) {\n    var angle = 0;\n    var sum = nodeData.getSum('value');\n    var unitAngle = Math.PI * 2 / (sum || count);\n    graph.eachNode(function (node) {\n      var value = node.getValue('value');\n      var radianHalf = unitAngle * (sum ? value : 1) / 2;\n      angle += radianHalf;\n      node.setLayout([r * Math.cos(angle) + cx, r * Math.sin(angle) + cy]);\n      angle += radianHalf;\n    });\n  },\n  symbolSize: function (seriesModel, graph, nodeData, r, cx, cy, count) {\n    var sumRadian = 0;\n    _symbolRadiansHalf.length = count;\n    var nodeScale = getNodeGlobalScale(seriesModel);\n    graph.eachNode(function (node) {\n      var symbolSize = getSymbolSize(node);\n      isNaN(symbolSize) && (symbolSize = 2);\n      symbolSize < 0 && (symbolSize = 0);\n      symbolSize *= nodeScale;\n      var symbolRadianHalf = Math.asin(symbolSize / 2 / r);\n      isNaN(symbolRadianHalf) && (symbolRadianHalf = PI / 2);\n      _symbolRadiansHalf[node.dataIndex] = symbolRadianHalf;\n      sumRadian += symbolRadianHalf * 2;\n    });\n    var halfRemainRadian = (2 * PI - sumRadian) / count / 2;\n    var angle = 0;\n    graph.eachNode(function (node) {\n      var radianHalf = halfRemainRadian + _symbolRadiansHalf[node.dataIndex];\n      angle += radianHalf;\n      node.setLayout([r * Math.cos(angle) + cx, r * Math.sin(angle) + cy]);\n      angle += radianHalf;\n    });\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { circularLayout } from './circularLayoutHelper';\nexport default function graphCircularLayout(ecModel) {\n  ecModel.eachSeriesByType('graph', function (seriesModel) {\n    if (seriesModel.get('layout') === 'circular') {\n      circularLayout(seriesModel, 'symbolSize');\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as vec2 from 'zrender/lib/core/vector';\nvar scaleAndAdd = vec2.scaleAndAdd;\nexport function forceLayout(inNodes, inEdges, opts) {\n  var nodes = inNodes;\n  var edges = inEdges;\n  var rect = opts.rect;\n  var width = rect.width;\n  var height = rect.height;\n  var center = [rect.x + width / 2, rect.y + height / 2];\n  var gravity = opts.gravity == null ? 0.1 : opts.gravity;\n\n  for (var i = 0; i < nodes.length; i++) {\n    var n = nodes[i];\n\n    if (!n.p) {\n      n.p = vec2.create(width * (Math.random() - 0.5) + center[0], height * (Math.random() - 0.5) + center[1]);\n    }\n\n    n.pp = vec2.clone(n.p);\n    n.edges = null;\n  }\n\n  var initialFriction = opts.friction == null ? 0.6 : opts.friction;\n  var friction = initialFriction;\n  var beforeStepCallback;\n  var afterStepCallback;\n  return {\n    warmUp: function () {\n      friction = initialFriction * 0.8;\n    },\n    setFixed: function (idx) {\n      nodes[idx].fixed = true;\n    },\n    setUnfixed: function (idx) {\n      nodes[idx].fixed = false;\n    },\n    beforeStep: function (cb) {\n      beforeStepCallback = cb;\n    },\n    afterStep: function (cb) {\n      afterStepCallback = cb;\n    },\n    step: function (cb) {\n      beforeStepCallback && beforeStepCallback(nodes, edges);\n      var v12 = [];\n      var nLen = nodes.length;\n\n      for (var i = 0; i < edges.length; i++) {\n        var e = edges[i];\n\n        if (e.ignoreForceLayout) {\n          continue;\n        }\n\n        var n1 = e.n1;\n        var n2 = e.n2;\n        vec2.sub(v12, n2.p, n1.p);\n        var d = vec2.len(v12) - e.d;\n        var w = n2.w / (n1.w + n2.w);\n\n        if (isNaN(w)) {\n          w = 0;\n        }\n\n        vec2.normalize(v12, v12);\n        !n1.fixed && scaleAndAdd(n1.p, n1.p, v12, w * d * friction);\n        !n2.fixed && scaleAndAdd(n2.p, n2.p, v12, -(1 - w) * d * friction);\n      }\n\n      for (var i = 0; i < nLen; i++) {\n        var n = nodes[i];\n\n        if (!n.fixed) {\n          vec2.sub(v12, center, n.p);\n          scaleAndAdd(n.p, n.p, v12, gravity * friction);\n        }\n      }\n\n      for (var i = 0; i < nLen; i++) {\n        var n1 = nodes[i];\n\n        for (var j = i + 1; j < nLen; j++) {\n          var n2 = nodes[j];\n          vec2.sub(v12, n2.p, n1.p);\n          var d = vec2.len(v12);\n\n          if (d === 0) {\n            vec2.set(v12, Math.random() - 0.5, Math.random() - 0.5);\n            d = 1;\n          }\n\n          var repFact = (n1.rep + n2.rep) / d / d;\n          !n1.fixed && scaleAndAdd(n1.pp, n1.pp, v12, repFact);\n          !n2.fixed && scaleAndAdd(n2.pp, n2.pp, v12, -repFact);\n        }\n      }\n\n      var v = [];\n\n      for (var i = 0; i < nLen; i++) {\n        var n = nodes[i];\n\n        if (!n.fixed) {\n          vec2.sub(v, n.p, n.pp);\n          scaleAndAdd(n.p, n.p, v, friction);\n          vec2.copy(n.pp, n.p);\n        }\n      }\n\n      friction = friction * 0.992;\n      var finished = friction < 0.01;\n      afterStepCallback && afterStepCallback(nodes, edges, finished);\n      cb && cb(finished);\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { forceLayout } from './forceHelper';\nimport { simpleLayout } from './simpleLayoutHelper';\nimport { circularLayout } from './circularLayoutHelper';\nimport { linearMap } from '../../util/number';\nimport * as vec2 from 'zrender/lib/core/vector';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { getCurvenessForEdge } from '../helper/multipleGraphEdgeHelper';\nexport default function graphForceLayout(ecModel) {\n  ecModel.eachSeriesByType('graph', function (graphSeries) {\n    var coordSys = graphSeries.coordinateSystem;\n\n    if (coordSys && coordSys.type !== 'view') {\n      return;\n    }\n\n    if (graphSeries.get('layout') === 'force') {\n      var preservedPoints_1 = graphSeries.preservedPoints || {};\n      var graph_1 = graphSeries.getGraph();\n      var nodeData_1 = graph_1.data;\n      var edgeData = graph_1.edgeData;\n      var forceModel = graphSeries.getModel('force');\n      var initLayout = forceModel.get('initLayout');\n\n      if (graphSeries.preservedPoints) {\n        nodeData_1.each(function (idx) {\n          var id = nodeData_1.getId(idx);\n          nodeData_1.setItemLayout(idx, preservedPoints_1[id] || [NaN, NaN]);\n        });\n      } else if (!initLayout || initLayout === 'none') {\n        simpleLayout(graphSeries);\n      } else if (initLayout === 'circular') {\n        circularLayout(graphSeries, 'value');\n      }\n\n      var nodeDataExtent_1 = nodeData_1.getDataExtent('value');\n      var edgeDataExtent_1 = edgeData.getDataExtent('value');\n      var repulsion = forceModel.get('repulsion');\n      var edgeLength = forceModel.get('edgeLength');\n      var repulsionArr_1 = zrUtil.isArray(repulsion) ? repulsion : [repulsion, repulsion];\n      var edgeLengthArr_1 = zrUtil.isArray(edgeLength) ? edgeLength : [edgeLength, edgeLength];\n      edgeLengthArr_1 = [edgeLengthArr_1[1], edgeLengthArr_1[0]];\n      var nodes_1 = nodeData_1.mapArray('value', function (value, idx) {\n        var point = nodeData_1.getItemLayout(idx);\n        var rep = linearMap(value, nodeDataExtent_1, repulsionArr_1);\n\n        if (isNaN(rep)) {\n          rep = (repulsionArr_1[0] + repulsionArr_1[1]) / 2;\n        }\n\n        return {\n          w: rep,\n          rep: rep,\n          fixed: nodeData_1.getItemModel(idx).get('fixed'),\n          p: !point || isNaN(point[0]) || isNaN(point[1]) ? null : point\n        };\n      });\n      var edges = edgeData.mapArray('value', function (value, idx) {\n        var edge = graph_1.getEdgeByIndex(idx);\n        var d = linearMap(value, edgeDataExtent_1, edgeLengthArr_1);\n\n        if (isNaN(d)) {\n          d = (edgeLengthArr_1[0] + edgeLengthArr_1[1]) / 2;\n        }\n\n        var edgeModel = edge.getModel();\n        var curveness = zrUtil.retrieve3(edge.getModel().get(['lineStyle', 'curveness']), -getCurvenessForEdge(edge, graphSeries, idx, true), 0);\n        return {\n          n1: nodes_1[edge.node1.dataIndex],\n          n2: nodes_1[edge.node2.dataIndex],\n          d: d,\n          curveness: curveness,\n          ignoreForceLayout: edgeModel.get('ignoreForceLayout')\n        };\n      });\n      var rect = coordSys.getBoundingRect();\n      var forceInstance = forceLayout(nodes_1, edges, {\n        rect: rect,\n        gravity: forceModel.get('gravity'),\n        friction: forceModel.get('friction')\n      });\n      forceInstance.beforeStep(function (nodes, edges) {\n        for (var i = 0, l = nodes.length; i < l; i++) {\n          if (nodes[i].fixed) {\n            vec2.copy(nodes[i].p, graph_1.getNodeByIndex(i).getLayout());\n          }\n        }\n      });\n      forceInstance.afterStep(function (nodes, edges, stopped) {\n        for (var i = 0, l = nodes.length; i < l; i++) {\n          if (!nodes[i].fixed) {\n            graph_1.getNodeByIndex(i).setLayout(nodes[i].p);\n          }\n\n          preservedPoints_1[nodeData_1.getId(i)] = nodes[i].p;\n        }\n\n        for (var i = 0, l = edges.length; i < l; i++) {\n          var e = edges[i];\n          var edge = graph_1.getEdgeByIndex(i);\n          var p1 = e.n1.p;\n          var p2 = e.n2.p;\n          var points = edge.getLayout();\n          points = points ? points.slice() : [];\n          points[0] = points[0] || [];\n          points[1] = points[1] || [];\n          vec2.copy(points[0], p1);\n          vec2.copy(points[1], p2);\n\n          if (+e.curveness) {\n            points[2] = [(p1[0] + p2[0]) / 2 - (p1[1] - p2[1]) * e.curveness, (p1[1] + p2[1]) / 2 - (p2[0] - p1[0]) * e.curveness];\n          }\n\n          edge.setLayout(points);\n        }\n      });\n      graphSeries.forceLayout = forceInstance;\n      graphSeries.preservedPoints = preservedPoints_1;\n      forceInstance.step();\n    } else {\n      graphSeries.forceLayout = null;\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport View from '../../coord/View';\nimport { getLayoutRect } from '../../util/layout';\nimport * as bbox from 'zrender/lib/core/bbox';\nimport { extend } from 'zrender/lib/core/util';\n\nfunction getViewRect(seriesModel, api, aspect) {\n  var option = extend(seriesModel.getBoxLayoutParams(), {\n    aspect: aspect\n  });\n  return getLayoutRect(option, {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n}\n\nexport default function createViewCoordSys(ecModel, api) {\n  var viewList = [];\n  ecModel.eachSeriesByType('graph', function (seriesModel) {\n    var coordSysType = seriesModel.get('coordinateSystem');\n\n    if (!coordSysType || coordSysType === 'view') {\n      var data_1 = seriesModel.getData();\n      var positions = data_1.mapArray(function (idx) {\n        var itemModel = data_1.getItemModel(idx);\n        return [+itemModel.get('x'), +itemModel.get('y')];\n      });\n      var min = [];\n      var max = [];\n      bbox.fromPoints(positions, min, max);\n\n      if (max[0] - min[0] === 0) {\n        max[0] += 1;\n        min[0] -= 1;\n      }\n\n      if (max[1] - min[1] === 0) {\n        max[1] += 1;\n        min[1] -= 1;\n      }\n\n      var aspect = (max[0] - min[0]) / (max[1] - min[1]);\n      var viewRect = getViewRect(seriesModel, api, aspect);\n\n      if (isNaN(aspect)) {\n        min = [viewRect.x, viewRect.y];\n        max = [viewRect.x + viewRect.width, viewRect.y + viewRect.height];\n      }\n\n      var bbWidth = max[0] - min[0];\n      var bbHeight = max[1] - min[1];\n      var viewWidth = viewRect.width;\n      var viewHeight = viewRect.height;\n      var viewCoordSys = seriesModel.coordinateSystem = new View();\n      viewCoordSys.zoomLimit = seriesModel.get('scaleLimit');\n      viewCoordSys.setBoundingRect(min[0], min[1], bbWidth, bbHeight);\n      viewCoordSys.setViewRect(viewRect.x, viewRect.y, viewWidth, viewHeight);\n      viewCoordSys.setCenter(seriesModel.get('center'));\n      viewCoordSys.setZoom(seriesModel.get('zoom'));\n      viewList.push(viewCoordSys);\n    }\n  });\n  return viewList;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport * as vec2 from 'zrender/lib/core/vector';\nvar straightLineProto = graphic.Line.prototype;\nvar bezierCurveProto = graphic.BezierCurve.prototype;\n\nvar StraightLineShape = function () {\n  function StraightLineShape() {\n    this.x1 = 0;\n    this.y1 = 0;\n    this.x2 = 0;\n    this.y2 = 0;\n    this.percent = 1;\n  }\n\n  return StraightLineShape;\n}();\n\nvar CurveShape = function (_super) {\n  __extends(CurveShape, _super);\n\n  function CurveShape() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  return CurveShape;\n}(StraightLineShape);\n\nfunction isStraightLine(shape) {\n  return isNaN(+shape.cpx1) || isNaN(+shape.cpy1);\n}\n\nvar ECLinePath = function (_super) {\n  __extends(ECLinePath, _super);\n\n  function ECLinePath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'ec-line';\n    return _this;\n  }\n\n  ECLinePath.prototype.getDefaultStyle = function () {\n    return {\n      stroke: '#000',\n      fill: null\n    };\n  };\n\n  ECLinePath.prototype.getDefaultShape = function () {\n    return new StraightLineShape();\n  };\n\n  ECLinePath.prototype.buildPath = function (ctx, shape) {\n    if (isStraightLine(shape)) {\n      straightLineProto.buildPath.call(this, ctx, shape);\n    } else {\n      bezierCurveProto.buildPath.call(this, ctx, shape);\n    }\n  };\n\n  ECLinePath.prototype.pointAt = function (t) {\n    if (isStraightLine(this.shape)) {\n      return straightLineProto.pointAt.call(this, t);\n    } else {\n      return bezierCurveProto.pointAt.call(this, t);\n    }\n  };\n\n  ECLinePath.prototype.tangentAt = function (t) {\n    var shape = this.shape;\n    var p = isStraightLine(shape) ? [shape.x2 - shape.x1, shape.y2 - shape.y1] : bezierCurveProto.tangentAt.call(this, t);\n    return vec2.normalize(p, p);\n  };\n\n  return ECLinePath;\n}(graphic.Path);\n\nexport default ECLinePath;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as vector from 'zrender/lib/core/vector';\nimport * as symbolUtil from '../../util/symbol';\nimport ECLinePath from './LinePath';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis, enterEmphasis, leaveEmphasis, SPECIAL_STATES } from '../../util/states';\nimport { getLabelStatesModels, setLabelStyle } from '../../label/labelStyle';\nimport { round } from '../../util/number';\nvar SYMBOL_CATEGORIES = ['fromSymbol', 'toSymbol'];\n\nfunction makeSymbolTypeKey(symbolCategory) {\n  return '_' + symbolCategory + 'Type';\n}\n\nfunction createSymbol(name, lineData, idx) {\n  var symbolType = lineData.getItemVisual(idx, name);\n\n  if (!symbolType || symbolType === 'none') {\n    return;\n  }\n\n  var symbolSize = lineData.getItemVisual(idx, name + 'Size');\n  var symbolRotate = lineData.getItemVisual(idx, name + 'Rotate');\n  var symbolSizeArr = zrUtil.isArray(symbolSize) ? symbolSize : [symbolSize, symbolSize];\n  var symbolPath = symbolUtil.createSymbol(symbolType, -symbolSizeArr[0] / 2, -symbolSizeArr[1] / 2, symbolSizeArr[0], symbolSizeArr[1]);\n  symbolPath.__specifiedRotation = symbolRotate == null || isNaN(symbolRotate) ? void 0 : +symbolRotate * Math.PI / 180 || 0;\n  symbolPath.name = name;\n  return symbolPath;\n}\n\nfunction createLine(points) {\n  var line = new ECLinePath({\n    name: 'line',\n    subPixelOptimize: true\n  });\n  setLinePoints(line.shape, points);\n  return line;\n}\n\nfunction setLinePoints(targetShape, points) {\n  targetShape.x1 = points[0][0];\n  targetShape.y1 = points[0][1];\n  targetShape.x2 = points[1][0];\n  targetShape.y2 = points[1][1];\n  targetShape.percent = 1;\n  var cp1 = points[2];\n\n  if (cp1) {\n    targetShape.cpx1 = cp1[0];\n    targetShape.cpy1 = cp1[1];\n  } else {\n    targetShape.cpx1 = NaN;\n    targetShape.cpy1 = NaN;\n  }\n}\n\nvar Line = function (_super) {\n  __extends(Line, _super);\n\n  function Line(lineData, idx, seriesScope) {\n    var _this = _super.call(this) || this;\n\n    _this._createLine(lineData, idx, seriesScope);\n\n    return _this;\n  }\n\n  Line.prototype._createLine = function (lineData, idx, seriesScope) {\n    var seriesModel = lineData.hostModel;\n    var linePoints = lineData.getItemLayout(idx);\n    var line = createLine(linePoints);\n    line.shape.percent = 0;\n    graphic.initProps(line, {\n      shape: {\n        percent: 1\n      }\n    }, seriesModel, idx);\n    this.add(line);\n    zrUtil.each(SYMBOL_CATEGORIES, function (symbolCategory) {\n      var symbol = createSymbol(symbolCategory, lineData, idx);\n      this.add(symbol);\n      this[makeSymbolTypeKey(symbolCategory)] = lineData.getItemVisual(idx, symbolCategory);\n    }, this);\n\n    this._updateCommonStl(lineData, idx, seriesScope);\n  };\n\n  Line.prototype.updateData = function (lineData, idx, seriesScope) {\n    var seriesModel = lineData.hostModel;\n    var line = this.childOfName('line');\n    var linePoints = lineData.getItemLayout(idx);\n    var target = {\n      shape: {}\n    };\n    setLinePoints(target.shape, linePoints);\n    graphic.updateProps(line, target, seriesModel, idx);\n    zrUtil.each(SYMBOL_CATEGORIES, function (symbolCategory) {\n      var symbolType = lineData.getItemVisual(idx, symbolCategory);\n      var key = makeSymbolTypeKey(symbolCategory);\n\n      if (this[key] !== symbolType) {\n        this.remove(this.childOfName(symbolCategory));\n        var symbol = createSymbol(symbolCategory, lineData, idx);\n        this.add(symbol);\n      }\n\n      this[key] = symbolType;\n    }, this);\n\n    this._updateCommonStl(lineData, idx, seriesScope);\n  };\n\n  ;\n\n  Line.prototype.getLinePath = function () {\n    return this.childAt(0);\n  };\n\n  Line.prototype._updateCommonStl = function (lineData, idx, seriesScope) {\n    var seriesModel = lineData.hostModel;\n    var line = this.childOfName('line');\n    var emphasisLineStyle = seriesScope && seriesScope.emphasisLineStyle;\n    var blurLineStyle = seriesScope && seriesScope.blurLineStyle;\n    var selectLineStyle = seriesScope && seriesScope.selectLineStyle;\n    var labelStatesModels = seriesScope && seriesScope.labelStatesModels;\n\n    if (!seriesScope || lineData.hasItemOption) {\n      var itemModel = lineData.getItemModel(idx);\n      emphasisLineStyle = itemModel.getModel(['emphasis', 'lineStyle']).getLineStyle();\n      blurLineStyle = itemModel.getModel(['blur', 'lineStyle']).getLineStyle();\n      selectLineStyle = itemModel.getModel(['select', 'lineStyle']).getLineStyle();\n      labelStatesModels = getLabelStatesModels(itemModel);\n    }\n\n    var lineStyle = lineData.getItemVisual(idx, 'style');\n    var visualColor = lineStyle.stroke;\n    line.useStyle(lineStyle);\n    line.style.fill = null;\n    line.style.strokeNoScale = true;\n    line.ensureState('emphasis').style = emphasisLineStyle;\n    line.ensureState('blur').style = blurLineStyle;\n    line.ensureState('select').style = selectLineStyle;\n    zrUtil.each(SYMBOL_CATEGORIES, function (symbolCategory) {\n      var symbol = this.childOfName(symbolCategory);\n\n      if (symbol) {\n        symbol.setColor(visualColor);\n        symbol.style.opacity = lineStyle.opacity;\n\n        for (var i = 0; i < SPECIAL_STATES.length; i++) {\n          var stateName = SPECIAL_STATES[i];\n          var lineState = line.getState(stateName);\n\n          if (lineState) {\n            var lineStateStyle = lineState.style || {};\n            var state = symbol.ensureState(stateName);\n            var stateStyle = state.style || (state.style = {});\n\n            if (lineStateStyle.stroke != null) {\n              stateStyle[symbol.__isEmptyBrush ? 'stroke' : 'fill'] = lineStateStyle.stroke;\n            }\n\n            if (lineStateStyle.opacity != null) {\n              stateStyle.opacity = lineStateStyle.opacity;\n            }\n          }\n        }\n\n        symbol.markRedraw();\n      }\n    }, this);\n    var rawVal = seriesModel.getRawValue(idx);\n    setLabelStyle(this, labelStatesModels, {\n      labelDataIndex: idx,\n      labelFetcher: {\n        getFormattedLabel: function (dataIndex, stateName) {\n          return seriesModel.getFormattedLabel(dataIndex, stateName, lineData.dataType);\n        }\n      },\n      inheritColor: visualColor || '#000',\n      defaultOpacity: lineStyle.opacity,\n      defaultText: (rawVal == null ? lineData.getName(idx) : isFinite(rawVal) ? round(rawVal) : rawVal) + ''\n    });\n    var label = this.getTextContent();\n\n    if (label) {\n      var labelNormalModel = labelStatesModels.normal;\n      label.__align = label.style.align;\n      label.__verticalAlign = label.style.verticalAlign;\n      label.__position = labelNormalModel.get('position') || 'middle';\n      var distance = labelNormalModel.get('distance');\n\n      if (!zrUtil.isArray(distance)) {\n        distance = [distance, distance];\n      }\n\n      label.__labelDistance = distance;\n    }\n\n    this.setTextConfig({\n      position: null,\n      local: true,\n      inside: false\n    });\n    enableHoverEmphasis(this);\n  };\n\n  Line.prototype.highlight = function () {\n    enterEmphasis(this);\n  };\n\n  Line.prototype.downplay = function () {\n    leaveEmphasis(this);\n  };\n\n  Line.prototype.updateLayout = function (lineData, idx) {\n    this.setLinePoints(lineData.getItemLayout(idx));\n  };\n\n  Line.prototype.setLinePoints = function (points) {\n    var linePath = this.childOfName('line');\n    setLinePoints(linePath.shape, points);\n    linePath.dirty();\n  };\n\n  Line.prototype.beforeUpdate = function () {\n    var lineGroup = this;\n    var symbolFrom = lineGroup.childOfName('fromSymbol');\n    var symbolTo = lineGroup.childOfName('toSymbol');\n    var label = lineGroup.getTextContent();\n\n    if (!symbolFrom && !symbolTo && (!label || label.ignore)) {\n      return;\n    }\n\n    var invScale = 1;\n    var parentNode = this.parent;\n\n    while (parentNode) {\n      if (parentNode.scaleX) {\n        invScale /= parentNode.scaleX;\n      }\n\n      parentNode = parentNode.parent;\n    }\n\n    var line = lineGroup.childOfName('line');\n\n    if (!this.__dirty && !line.__dirty) {\n      return;\n    }\n\n    var percent = line.shape.percent;\n    var fromPos = line.pointAt(0);\n    var toPos = line.pointAt(percent);\n    var d = vector.sub([], toPos, fromPos);\n    vector.normalize(d, d);\n\n    function setSymbolRotation(symbol, percent) {\n      var specifiedRotation = symbol.__specifiedRotation;\n\n      if (specifiedRotation == null) {\n        var tangent = line.tangentAt(percent);\n        symbol.attr('rotation', (percent === 1 ? -1 : 1) * Math.PI / 2 - Math.atan2(tangent[1], tangent[0]));\n      } else {\n        symbol.attr('rotation', specifiedRotation);\n      }\n    }\n\n    if (symbolFrom) {\n      symbolFrom.setPosition(fromPos);\n      setSymbolRotation(symbolFrom, 0);\n      symbolFrom.scaleX = symbolFrom.scaleY = invScale * percent;\n      symbolFrom.markRedraw();\n    }\n\n    if (symbolTo) {\n      symbolTo.setPosition(toPos);\n      setSymbolRotation(symbolTo, 1);\n      symbolTo.scaleX = symbolTo.scaleY = invScale * percent;\n      symbolTo.markRedraw();\n    }\n\n    if (label && !label.ignore) {\n      label.x = label.y = 0;\n      label.originX = label.originY = 0;\n      var textAlign = void 0;\n      var textVerticalAlign = void 0;\n      var distance = label.__labelDistance;\n      var distanceX = distance[0] * invScale;\n      var distanceY = distance[1] * invScale;\n      var halfPercent = percent / 2;\n      var tangent = line.tangentAt(halfPercent);\n      var n = [tangent[1], -tangent[0]];\n      var cp = line.pointAt(halfPercent);\n\n      if (n[1] > 0) {\n        n[0] = -n[0];\n        n[1] = -n[1];\n      }\n\n      var dir = tangent[0] < 0 ? -1 : 1;\n\n      if (label.__position !== 'start' && label.__position !== 'end') {\n        var rotation = -Math.atan2(tangent[1], tangent[0]);\n\n        if (toPos[0] < fromPos[0]) {\n          rotation = Math.PI + rotation;\n        }\n\n        label.rotation = rotation;\n      }\n\n      var dy = void 0;\n\n      switch (label.__position) {\n        case 'insideStartTop':\n        case 'insideMiddleTop':\n        case 'insideEndTop':\n        case 'middle':\n          dy = -distanceY;\n          textVerticalAlign = 'bottom';\n          break;\n\n        case 'insideStartBottom':\n        case 'insideMiddleBottom':\n        case 'insideEndBottom':\n          dy = distanceY;\n          textVerticalAlign = 'top';\n          break;\n\n        default:\n          dy = 0;\n          textVerticalAlign = 'middle';\n      }\n\n      switch (label.__position) {\n        case 'end':\n          label.x = d[0] * distanceX + toPos[0];\n          label.y = d[1] * distanceY + toPos[1];\n          textAlign = d[0] > 0.8 ? 'left' : d[0] < -0.8 ? 'right' : 'center';\n          textVerticalAlign = d[1] > 0.8 ? 'top' : d[1] < -0.8 ? 'bottom' : 'middle';\n          break;\n\n        case 'start':\n          label.x = -d[0] * distanceX + fromPos[0];\n          label.y = -d[1] * distanceY + fromPos[1];\n          textAlign = d[0] > 0.8 ? 'right' : d[0] < -0.8 ? 'left' : 'center';\n          textVerticalAlign = d[1] > 0.8 ? 'bottom' : d[1] < -0.8 ? 'top' : 'middle';\n          break;\n\n        case 'insideStartTop':\n        case 'insideStart':\n        case 'insideStartBottom':\n          label.x = distanceX * dir + fromPos[0];\n          label.y = fromPos[1] + dy;\n          textAlign = tangent[0] < 0 ? 'right' : 'left';\n          label.originX = -distanceX * dir;\n          label.originY = -dy;\n          break;\n\n        case 'insideMiddleTop':\n        case 'insideMiddle':\n        case 'insideMiddleBottom':\n        case 'middle':\n          label.x = cp[0];\n          label.y = cp[1] + dy;\n          textAlign = 'center';\n          label.originY = -dy;\n          break;\n\n        case 'insideEndTop':\n        case 'insideEnd':\n        case 'insideEndBottom':\n          label.x = -distanceX * dir + toPos[0];\n          label.y = toPos[1] + dy;\n          textAlign = tangent[0] >= 0 ? 'right' : 'left';\n          label.originX = distanceX * dir;\n          label.originY = -dy;\n          break;\n      }\n\n      label.scaleX = label.scaleY = invScale;\n      label.setStyle({\n        verticalAlign: label.__verticalAlign || textVerticalAlign,\n        align: label.__align || textAlign\n      });\n    }\n  };\n\n  return Line;\n}(graphic.Group);\n\nexport default Line;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as graphic from '../../util/graphic';\nimport LineGroup from './Line';\nimport { getLabelStatesModels } from '../../label/labelStyle';\n\nvar LineDraw = function () {\n  function LineDraw(LineCtor) {\n    this.group = new graphic.Group();\n    this._LineCtor = LineCtor || LineGroup;\n  }\n\n  LineDraw.prototype.isPersistent = function () {\n    return true;\n  };\n\n  ;\n\n  LineDraw.prototype.updateData = function (lineData) {\n    var _this = this;\n\n    var lineDraw = this;\n    var group = lineDraw.group;\n    var oldLineData = lineDraw._lineData;\n    lineDraw._lineData = lineData;\n\n    if (!oldLineData) {\n      group.removeAll();\n    }\n\n    var seriesScope = makeSeriesScope(lineData);\n    lineData.diff(oldLineData).add(function (idx) {\n      _this._doAdd(lineData, idx, seriesScope);\n    }).update(function (newIdx, oldIdx) {\n      _this._doUpdate(oldLineData, lineData, oldIdx, newIdx, seriesScope);\n    }).remove(function (idx) {\n      group.remove(oldLineData.getItemGraphicEl(idx));\n    }).execute();\n  };\n\n  ;\n\n  LineDraw.prototype.updateLayout = function () {\n    var lineData = this._lineData;\n\n    if (!lineData) {\n      return;\n    }\n\n    lineData.eachItemGraphicEl(function (el, idx) {\n      el.updateLayout(lineData, idx);\n    }, this);\n  };\n\n  ;\n\n  LineDraw.prototype.incrementalPrepareUpdate = function (lineData) {\n    this._seriesScope = makeSeriesScope(lineData);\n    this._lineData = null;\n    this.group.removeAll();\n  };\n\n  ;\n\n  LineDraw.prototype.incrementalUpdate = function (taskParams, lineData) {\n    function updateIncrementalAndHover(el) {\n      if (!el.isGroup && !isEffectObject(el)) {\n        el.incremental = true;\n        el.ensureState('emphasis').hoverLayer = true;\n      }\n    }\n\n    for (var idx = taskParams.start; idx < taskParams.end; idx++) {\n      var itemLayout = lineData.getItemLayout(idx);\n\n      if (lineNeedsDraw(itemLayout)) {\n        var el = new this._LineCtor(lineData, idx, this._seriesScope);\n        el.traverse(updateIncrementalAndHover);\n        this.group.add(el);\n        lineData.setItemGraphicEl(idx, el);\n      }\n    }\n  };\n\n  ;\n\n  LineDraw.prototype.remove = function () {\n    this.group.removeAll();\n  };\n\n  ;\n\n  LineDraw.prototype._doAdd = function (lineData, idx, seriesScope) {\n    var itemLayout = lineData.getItemLayout(idx);\n\n    if (!lineNeedsDraw(itemLayout)) {\n      return;\n    }\n\n    var el = new this._LineCtor(lineData, idx, seriesScope);\n    lineData.setItemGraphicEl(idx, el);\n    this.group.add(el);\n  };\n\n  LineDraw.prototype._doUpdate = function (oldLineData, newLineData, oldIdx, newIdx, seriesScope) {\n    var itemEl = oldLineData.getItemGraphicEl(oldIdx);\n\n    if (!lineNeedsDraw(newLineData.getItemLayout(newIdx))) {\n      this.group.remove(itemEl);\n      return;\n    }\n\n    if (!itemEl) {\n      itemEl = new this._LineCtor(newLineData, newIdx, seriesScope);\n    } else {\n      itemEl.updateData(newLineData, newIdx, seriesScope);\n    }\n\n    newLineData.setItemGraphicEl(newIdx, itemEl);\n    this.group.add(itemEl);\n  };\n\n  return LineDraw;\n}();\n\nfunction isEffectObject(el) {\n  return el.animators && el.animators.length > 0;\n}\n\nfunction makeSeriesScope(lineData) {\n  var hostModel = lineData.hostModel;\n  return {\n    lineStyle: hostModel.getModel('lineStyle').getLineStyle(),\n    emphasisLineStyle: hostModel.getModel(['emphasis', 'lineStyle']).getLineStyle(),\n    blurLineStyle: hostModel.getModel(['blur', 'lineStyle']).getLineStyle(),\n    selectLineStyle: hostModel.getModel(['select', 'lineStyle']).getLineStyle(),\n    labelStatesModels: getLabelStatesModels(hostModel)\n  };\n}\n\nfunction isPointNaN(pt) {\n  return isNaN(pt[0]) || isNaN(pt[1]);\n}\n\nfunction lineNeedsDraw(pts) {\n  return !isPointNaN(pts[0]) && !isPointNaN(pts[1]);\n}\n\nexport default LineDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as curveTool from 'zrender/lib/core/curve';\nimport * as vec2 from 'zrender/lib/core/vector';\nimport { getSymbolSize } from './graphHelper';\nvar v1 = [];\nvar v2 = [];\nvar v3 = [];\nvar quadraticAt = curveTool.quadraticAt;\nvar v2DistSquare = vec2.distSquare;\nvar mathAbs = Math.abs;\n\nfunction intersectCurveCircle(curvePoints, center, radius) {\n  var p0 = curvePoints[0];\n  var p1 = curvePoints[1];\n  var p2 = curvePoints[2];\n  var d = Infinity;\n  var t;\n  var radiusSquare = radius * radius;\n  var interval = 0.1;\n\n  for (var _t = 0.1; _t <= 0.9; _t += 0.1) {\n    v1[0] = quadraticAt(p0[0], p1[0], p2[0], _t);\n    v1[1] = quadraticAt(p0[1], p1[1], p2[1], _t);\n    var diff = mathAbs(v2DistSquare(v1, center) - radiusSquare);\n\n    if (diff < d) {\n      d = diff;\n      t = _t;\n    }\n  }\n\n  for (var i = 0; i < 32; i++) {\n    var next = t + interval;\n    v2[0] = quadraticAt(p0[0], p1[0], p2[0], t);\n    v2[1] = quadraticAt(p0[1], p1[1], p2[1], t);\n    v3[0] = quadraticAt(p0[0], p1[0], p2[0], next);\n    v3[1] = quadraticAt(p0[1], p1[1], p2[1], next);\n    var diff = v2DistSquare(v2, center) - radiusSquare;\n\n    if (mathAbs(diff) < 1e-2) {\n      break;\n    }\n\n    var nextDiff = v2DistSquare(v3, center) - radiusSquare;\n    interval /= 2;\n\n    if (diff < 0) {\n      if (nextDiff >= 0) {\n        t = t + interval;\n      } else {\n        t = t - interval;\n      }\n    } else {\n      if (nextDiff >= 0) {\n        t = t - interval;\n      } else {\n        t = t + interval;\n      }\n    }\n  }\n\n  return t;\n}\n\nexport default function adjustEdge(graph, scale) {\n  var tmp0 = [];\n  var quadraticSubdivide = curveTool.quadraticSubdivide;\n  var pts = [[], [], []];\n  var pts2 = [[], []];\n  var v = [];\n  scale /= 2;\n  graph.eachEdge(function (edge, idx) {\n    var linePoints = edge.getLayout();\n    var fromSymbol = edge.getVisual('fromSymbol');\n    var toSymbol = edge.getVisual('toSymbol');\n\n    if (!linePoints.__original) {\n      linePoints.__original = [vec2.clone(linePoints[0]), vec2.clone(linePoints[1])];\n\n      if (linePoints[2]) {\n        linePoints.__original.push(vec2.clone(linePoints[2]));\n      }\n    }\n\n    var originalPoints = linePoints.__original;\n\n    if (linePoints[2] != null) {\n      vec2.copy(pts[0], originalPoints[0]);\n      vec2.copy(pts[1], originalPoints[2]);\n      vec2.copy(pts[2], originalPoints[1]);\n\n      if (fromSymbol && fromSymbol !== 'none') {\n        var symbolSize = getSymbolSize(edge.node1);\n        var t = intersectCurveCircle(pts, originalPoints[0], symbolSize * scale);\n        quadraticSubdivide(pts[0][0], pts[1][0], pts[2][0], t, tmp0);\n        pts[0][0] = tmp0[3];\n        pts[1][0] = tmp0[4];\n        quadraticSubdivide(pts[0][1], pts[1][1], pts[2][1], t, tmp0);\n        pts[0][1] = tmp0[3];\n        pts[1][1] = tmp0[4];\n      }\n\n      if (toSymbol && toSymbol !== 'none') {\n        var symbolSize = getSymbolSize(edge.node2);\n        var t = intersectCurveCircle(pts, originalPoints[1], symbolSize * scale);\n        quadraticSubdivide(pts[0][0], pts[1][0], pts[2][0], t, tmp0);\n        pts[1][0] = tmp0[1];\n        pts[2][0] = tmp0[2];\n        quadraticSubdivide(pts[0][1], pts[1][1], pts[2][1], t, tmp0);\n        pts[1][1] = tmp0[1];\n        pts[2][1] = tmp0[2];\n      }\n\n      vec2.copy(linePoints[0], pts[0]);\n      vec2.copy(linePoints[1], pts[2]);\n      vec2.copy(linePoints[2], pts[1]);\n    } else {\n      vec2.copy(pts2[0], originalPoints[0]);\n      vec2.copy(pts2[1], originalPoints[1]);\n      vec2.sub(v, pts2[1], pts2[0]);\n      vec2.normalize(v, v);\n\n      if (fromSymbol && fromSymbol !== 'none') {\n        var symbolSize = getSymbolSize(edge.node1);\n        vec2.scaleAndAdd(pts2[0], pts2[0], v, symbolSize * scale);\n      }\n\n      if (toSymbol && toSymbol !== 'none') {\n        var symbolSize = getSymbolSize(edge.node2);\n        vec2.scaleAndAdd(pts2[1], pts2[1], v, -symbolSize * scale);\n      }\n\n      vec2.copy(linePoints[0], pts2[0]);\n      vec2.copy(linePoints[1], pts2[1]);\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport SymbolDraw from '../helper/SymbolDraw';\nimport LineDraw from '../helper/LineDraw';\nimport RoamController from '../../component/helper/RoamController';\nimport * as roamHelper from '../../component/helper/roamHelper';\nimport { onIrrelevantElement } from '../../component/helper/cursorHelper';\nimport * as graphic from '../../util/graphic';\nimport adjustEdge from './adjustEdge';\nimport { getNodeGlobalScale } from './graphHelper';\nimport ChartView from '../../view/Chart';\nimport { getECData } from '../../util/innerStore';\n\nfunction isViewCoordSys(coordSys) {\n  return coordSys.type === 'view';\n}\n\nvar GraphView = function (_super) {\n  __extends(GraphView, _super);\n\n  function GraphView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GraphView.type;\n    return _this;\n  }\n\n  GraphView.prototype.init = function (ecModel, api) {\n    var symbolDraw = new SymbolDraw();\n    var lineDraw = new LineDraw();\n    var group = this.group;\n    this._controller = new RoamController(api.getZr());\n    this._controllerHost = {\n      target: group\n    };\n    group.add(symbolDraw.group);\n    group.add(lineDraw.group);\n    this._symbolDraw = symbolDraw;\n    this._lineDraw = lineDraw;\n    this._firstRender = true;\n  };\n\n  GraphView.prototype.render = function (seriesModel, ecModel, api) {\n    var _this = this;\n\n    var coordSys = seriesModel.coordinateSystem;\n    this._model = seriesModel;\n    var symbolDraw = this._symbolDraw;\n    var lineDraw = this._lineDraw;\n    var group = this.group;\n\n    if (isViewCoordSys(coordSys)) {\n      var groupNewProp = {\n        x: coordSys.x,\n        y: coordSys.y,\n        scaleX: coordSys.scaleX,\n        scaleY: coordSys.scaleY\n      };\n\n      if (this._firstRender) {\n        group.attr(groupNewProp);\n      } else {\n        graphic.updateProps(group, groupNewProp, seriesModel);\n      }\n    }\n\n    adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));\n    var data = seriesModel.getData();\n    symbolDraw.updateData(data);\n    var edgeData = seriesModel.getEdgeData();\n    lineDraw.updateData(edgeData);\n\n    this._updateNodeAndLinkScale();\n\n    this._updateController(seriesModel, ecModel, api);\n\n    clearTimeout(this._layoutTimeout);\n    var forceLayout = seriesModel.forceLayout;\n    var layoutAnimation = seriesModel.get(['force', 'layoutAnimation']);\n\n    if (forceLayout) {\n      this._startForceLayoutIteration(forceLayout, layoutAnimation);\n    }\n\n    data.graph.eachNode(function (node) {\n      var idx = node.dataIndex;\n      var el = node.getGraphicEl();\n      var itemModel = node.getModel();\n      el.off('drag').off('dragend');\n      var draggable = itemModel.get('draggable');\n\n      if (draggable) {\n        el.on('drag', function () {\n          if (forceLayout) {\n            forceLayout.warmUp();\n            !_this._layouting && _this._startForceLayoutIteration(forceLayout, layoutAnimation);\n            forceLayout.setFixed(idx);\n            data.setItemLayout(idx, [el.x, el.y]);\n          }\n        }).on('dragend', function () {\n          if (forceLayout) {\n            forceLayout.setUnfixed(idx);\n          }\n        });\n      }\n\n      el.setDraggable(draggable && !!forceLayout);\n      var focus = itemModel.get(['emphasis', 'focus']);\n\n      if (focus === 'adjacency') {\n        getECData(el).focus = node.getAdjacentDataIndices();\n      }\n    });\n    data.graph.eachEdge(function (edge) {\n      var el = edge.getGraphicEl();\n      var focus = edge.getModel().get(['emphasis', 'focus']);\n\n      if (focus === 'adjacency') {\n        getECData(el).focus = {\n          edge: [edge.dataIndex],\n          node: [edge.node1.dataIndex, edge.node2.dataIndex]\n        };\n      }\n    });\n    var circularRotateLabel = seriesModel.get('layout') === 'circular' && seriesModel.get(['circular', 'rotateLabel']);\n    var cx = data.getLayout('cx');\n    var cy = data.getLayout('cy');\n    data.eachItemGraphicEl(function (el, idx) {\n      var itemModel = data.getItemModel(idx);\n      var labelRotate = itemModel.get(['label', 'rotate']) || 0;\n      var symbolPath = el.getSymbolPath();\n\n      if (circularRotateLabel) {\n        var pos = data.getItemLayout(idx);\n        var rad = Math.atan2(pos[1] - cy, pos[0] - cx);\n\n        if (rad < 0) {\n          rad = Math.PI * 2 + rad;\n        }\n\n        var isLeft = pos[0] < cx;\n\n        if (isLeft) {\n          rad = rad - Math.PI;\n        }\n\n        var textPosition = isLeft ? 'left' : 'right';\n        symbolPath.setTextConfig({\n          rotation: -rad,\n          position: textPosition,\n          origin: 'center'\n        });\n        var emphasisState = symbolPath.ensureState('emphasis');\n        zrUtil.extend(emphasisState.textConfig || (emphasisState.textConfig = {}), {\n          position: textPosition\n        });\n      } else {\n        symbolPath.setTextConfig({\n          rotation: labelRotate *= Math.PI / 180\n        });\n      }\n    });\n    this._firstRender = false;\n  };\n\n  GraphView.prototype.dispose = function () {\n    this._controller && this._controller.dispose();\n    this._controllerHost = null;\n  };\n\n  GraphView.prototype._startForceLayoutIteration = function (forceLayout, layoutAnimation) {\n    var self = this;\n\n    (function step() {\n      forceLayout.step(function (stopped) {\n        self.updateLayout(self._model);\n        (self._layouting = !stopped) && (layoutAnimation ? self._layoutTimeout = setTimeout(step, 16) : step());\n      });\n    })();\n  };\n\n  GraphView.prototype._updateController = function (seriesModel, ecModel, api) {\n    var _this = this;\n\n    var controller = this._controller;\n    var controllerHost = this._controllerHost;\n    var group = this.group;\n    controller.setPointerChecker(function (e, x, y) {\n      var rect = group.getBoundingRect();\n      rect.applyTransform(group.transform);\n      return rect.contain(x, y) && !onIrrelevantElement(e, api, seriesModel);\n    });\n\n    if (!isViewCoordSys(seriesModel.coordinateSystem)) {\n      controller.disable();\n      return;\n    }\n\n    controller.enable(seriesModel.get('roam'));\n    controllerHost.zoomLimit = seriesModel.get('scaleLimit');\n    controllerHost.zoom = seriesModel.coordinateSystem.getZoom();\n    controller.off('pan').off('zoom').on('pan', function (e) {\n      roamHelper.updateViewOnPan(controllerHost, e.dx, e.dy);\n      api.dispatchAction({\n        seriesId: seriesModel.id,\n        type: 'graphRoam',\n        dx: e.dx,\n        dy: e.dy\n      });\n    }).on('zoom', function (e) {\n      roamHelper.updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\n      api.dispatchAction({\n        seriesId: seriesModel.id,\n        type: 'graphRoam',\n        zoom: e.scale,\n        originX: e.originX,\n        originY: e.originY\n      });\n\n      _this._updateNodeAndLinkScale();\n\n      adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));\n\n      _this._lineDraw.updateLayout();\n\n      api.updateLabelLayout();\n    });\n  };\n\n  GraphView.prototype._updateNodeAndLinkScale = function () {\n    var seriesModel = this._model;\n    var data = seriesModel.getData();\n    var nodeScale = getNodeGlobalScale(seriesModel);\n    data.eachItemGraphicEl(function (el, idx) {\n      el.setSymbolScale(nodeScale);\n    });\n  };\n\n  GraphView.prototype.updateLayout = function (seriesModel) {\n    adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));\n\n    this._symbolDraw.updateLayout();\n\n    this._lineDraw.updateLayout();\n  };\n\n  GraphView.prototype.remove = function (ecModel, api) {\n    this._symbolDraw && this._symbolDraw.remove();\n    this._lineDraw && this._lineDraw.remove();\n  };\n\n  GraphView.type = 'graph';\n  return GraphView;\n}(ChartView);\n\nexport default GraphView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nfunction generateNodeKey(id) {\n  return '_EC_' + id;\n}\n\nvar Graph = function () {\n  function Graph(directed) {\n    this.type = 'graph';\n    this.nodes = [];\n    this.edges = [];\n    this._nodesMap = {};\n    this._edgesMap = {};\n    this._directed = directed || false;\n  }\n\n  Graph.prototype.isDirected = function () {\n    return this._directed;\n  };\n\n  ;\n\n  Graph.prototype.addNode = function (id, dataIndex) {\n    id = id == null ? '' + dataIndex : '' + id;\n    var nodesMap = this._nodesMap;\n\n    if (nodesMap[generateNodeKey(id)]) {\n      if (process.env.NODE_ENV !== 'production') {\n        console.error('Graph nodes have duplicate name or id');\n      }\n\n      return;\n    }\n\n    var node = new GraphNode(id, dataIndex);\n    node.hostGraph = this;\n    this.nodes.push(node);\n    nodesMap[generateNodeKey(id)] = node;\n    return node;\n  };\n\n  ;\n\n  Graph.prototype.getNodeByIndex = function (dataIndex) {\n    var rawIdx = this.data.getRawIndex(dataIndex);\n    return this.nodes[rawIdx];\n  };\n\n  ;\n\n  Graph.prototype.getNodeById = function (id) {\n    return this._nodesMap[generateNodeKey(id)];\n  };\n\n  ;\n\n  Graph.prototype.addEdge = function (n1, n2, dataIndex) {\n    var nodesMap = this._nodesMap;\n    var edgesMap = this._edgesMap;\n\n    if (typeof n1 === 'number') {\n      n1 = this.nodes[n1];\n    }\n\n    if (typeof n2 === 'number') {\n      n2 = this.nodes[n2];\n    }\n\n    if (!(n1 instanceof GraphNode)) {\n      n1 = nodesMap[generateNodeKey(n1)];\n    }\n\n    if (!(n2 instanceof GraphNode)) {\n      n2 = nodesMap[generateNodeKey(n2)];\n    }\n\n    if (!n1 || !n2) {\n      return;\n    }\n\n    var key = n1.id + '-' + n2.id;\n    var edge = new GraphEdge(n1, n2, dataIndex);\n    edge.hostGraph = this;\n\n    if (this._directed) {\n      n1.outEdges.push(edge);\n      n2.inEdges.push(edge);\n    }\n\n    n1.edges.push(edge);\n\n    if (n1 !== n2) {\n      n2.edges.push(edge);\n    }\n\n    this.edges.push(edge);\n    edgesMap[key] = edge;\n    return edge;\n  };\n\n  ;\n\n  Graph.prototype.getEdgeByIndex = function (dataIndex) {\n    var rawIdx = this.edgeData.getRawIndex(dataIndex);\n    return this.edges[rawIdx];\n  };\n\n  ;\n\n  Graph.prototype.getEdge = function (n1, n2) {\n    if (n1 instanceof GraphNode) {\n      n1 = n1.id;\n    }\n\n    if (n2 instanceof GraphNode) {\n      n2 = n2.id;\n    }\n\n    var edgesMap = this._edgesMap;\n\n    if (this._directed) {\n      return edgesMap[n1 + '-' + n2];\n    } else {\n      return edgesMap[n1 + '-' + n2] || edgesMap[n2 + '-' + n1];\n    }\n  };\n\n  ;\n\n  Graph.prototype.eachNode = function (cb, context) {\n    var nodes = this.nodes;\n    var len = nodes.length;\n\n    for (var i = 0; i < len; i++) {\n      if (nodes[i].dataIndex >= 0) {\n        cb.call(context, nodes[i], i);\n      }\n    }\n  };\n\n  ;\n\n  Graph.prototype.eachEdge = function (cb, context) {\n    var edges = this.edges;\n    var len = edges.length;\n\n    for (var i = 0; i < len; i++) {\n      if (edges[i].dataIndex >= 0 && edges[i].node1.dataIndex >= 0 && edges[i].node2.dataIndex >= 0) {\n        cb.call(context, edges[i], i);\n      }\n    }\n  };\n\n  ;\n\n  Graph.prototype.breadthFirstTraverse = function (cb, startNode, direction, context) {\n    if (!(startNode instanceof GraphNode)) {\n      startNode = this._nodesMap[generateNodeKey(startNode)];\n    }\n\n    if (!startNode) {\n      return;\n    }\n\n    var edgeType = direction === 'out' ? 'outEdges' : direction === 'in' ? 'inEdges' : 'edges';\n\n    for (var i = 0; i < this.nodes.length; i++) {\n      this.nodes[i].__visited = false;\n    }\n\n    if (cb.call(context, startNode, null)) {\n      return;\n    }\n\n    var queue = [startNode];\n\n    while (queue.length) {\n      var currentNode = queue.shift();\n      var edges = currentNode[edgeType];\n\n      for (var i = 0; i < edges.length; i++) {\n        var e = edges[i];\n        var otherNode = e.node1 === currentNode ? e.node2 : e.node1;\n\n        if (!otherNode.__visited) {\n          if (cb.call(context, otherNode, currentNode)) {\n            return;\n          }\n\n          queue.push(otherNode);\n          otherNode.__visited = true;\n        }\n      }\n    }\n  };\n\n  ;\n\n  Graph.prototype.update = function () {\n    var data = this.data;\n    var edgeData = this.edgeData;\n    var nodes = this.nodes;\n    var edges = this.edges;\n\n    for (var i = 0, len = nodes.length; i < len; i++) {\n      nodes[i].dataIndex = -1;\n    }\n\n    for (var i = 0, len = data.count(); i < len; i++) {\n      nodes[data.getRawIndex(i)].dataIndex = i;\n    }\n\n    edgeData.filterSelf(function (idx) {\n      var edge = edges[edgeData.getRawIndex(idx)];\n      return edge.node1.dataIndex >= 0 && edge.node2.dataIndex >= 0;\n    });\n\n    for (var i = 0, len = edges.length; i < len; i++) {\n      edges[i].dataIndex = -1;\n    }\n\n    for (var i = 0, len = edgeData.count(); i < len; i++) {\n      edges[edgeData.getRawIndex(i)].dataIndex = i;\n    }\n  };\n\n  ;\n\n  Graph.prototype.clone = function () {\n    var graph = new Graph(this._directed);\n    var nodes = this.nodes;\n    var edges = this.edges;\n\n    for (var i = 0; i < nodes.length; i++) {\n      graph.addNode(nodes[i].id, nodes[i].dataIndex);\n    }\n\n    for (var i = 0; i < edges.length; i++) {\n      var e = edges[i];\n      graph.addEdge(e.node1.id, e.node2.id, e.dataIndex);\n    }\n\n    return graph;\n  };\n\n  ;\n  return Graph;\n}();\n\nvar GraphNode = function () {\n  function GraphNode(id, dataIndex) {\n    this.inEdges = [];\n    this.outEdges = [];\n    this.edges = [];\n    this.dataIndex = -1;\n    this.id = id == null ? '' : id;\n    this.dataIndex = dataIndex == null ? -1 : dataIndex;\n  }\n\n  GraphNode.prototype.degree = function () {\n    return this.edges.length;\n  };\n\n  GraphNode.prototype.inDegree = function () {\n    return this.inEdges.length;\n  };\n\n  GraphNode.prototype.outDegree = function () {\n    return this.outEdges.length;\n  };\n\n  GraphNode.prototype.getModel = function (path) {\n    if (this.dataIndex < 0) {\n      return;\n    }\n\n    var graph = this.hostGraph;\n    var itemModel = graph.data.getItemModel(this.dataIndex);\n    return itemModel.getModel(path);\n  };\n\n  GraphNode.prototype.getAdjacentDataIndices = function () {\n    var dataIndices = {\n      edge: [],\n      node: []\n    };\n\n    for (var i = 0; i < this.edges.length; i++) {\n      var adjacentEdge = this.edges[i];\n\n      if (adjacentEdge.dataIndex < 0) {\n        continue;\n      }\n\n      dataIndices.edge.push(adjacentEdge.dataIndex);\n      dataIndices.node.push(adjacentEdge.node1.dataIndex, adjacentEdge.node2.dataIndex);\n    }\n\n    return dataIndices;\n  };\n\n  return GraphNode;\n}();\n\nvar GraphEdge = function () {\n  function GraphEdge(n1, n2, dataIndex) {\n    this.dataIndex = -1;\n    this.node1 = n1;\n    this.node2 = n2;\n    this.dataIndex = dataIndex == null ? -1 : dataIndex;\n  }\n\n  GraphEdge.prototype.getModel = function (path) {\n    if (this.dataIndex < 0) {\n      return;\n    }\n\n    var graph = this.hostGraph;\n    var itemModel = graph.edgeData.getItemModel(this.dataIndex);\n    return itemModel.getModel(path);\n  };\n\n  GraphEdge.prototype.getAdjacentDataIndices = function () {\n    return {\n      edge: [this.dataIndex],\n      node: [this.node1.dataIndex, this.node2.dataIndex]\n    };\n  };\n\n  return GraphEdge;\n}();\n\nfunction createGraphDataProxyMixin(hostName, dataName) {\n  return {\n    getValue: function (dimension) {\n      var data = this[hostName][dataName];\n      return data.get(data.getDimension(dimension || 'value'), this.dataIndex);\n    },\n    setVisual: function (key, value) {\n      this.dataIndex >= 0 && this[hostName][dataName].setItemVisual(this.dataIndex, key, value);\n    },\n    getVisual: function (key) {\n      return this[hostName][dataName].getItemVisual(this.dataIndex, key);\n    },\n    setLayout: function (layout, merge) {\n      this.dataIndex >= 0 && this[hostName][dataName].setItemLayout(this.dataIndex, layout, merge);\n    },\n    getLayout: function () {\n      return this[hostName][dataName].getItemLayout(this.dataIndex);\n    },\n    getGraphicEl: function () {\n      return this[hostName][dataName].getItemGraphicEl(this.dataIndex);\n    },\n    getRawIndex: function () {\n      return this[hostName][dataName].getRawIndex(this.dataIndex);\n    }\n  };\n}\n\n;\n;\n;\nzrUtil.mixin(GraphNode, createGraphDataProxyMixin('hostGraph', 'data'));\nzrUtil.mixin(GraphEdge, createGraphDataProxyMixin('hostGraph', 'edgeData'));\nexport default Graph;\nexport { GraphNode, GraphEdge };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport List from '../../data/List';\nimport Graph from '../../data/Graph';\nimport linkList from '../../data/helper/linkList';\nimport createDimensions from '../../data/helper/createDimensions';\nimport CoordinateSystem from '../../core/CoordinateSystem';\nimport createListFromArray from './createListFromArray';\nimport { convertOptionIdName } from '../../util/model';\nexport default function createGraphFromNodeEdge(nodes, edges, seriesModel, directed, beforeLink) {\n  var graph = new Graph(directed);\n\n  for (var i = 0; i < nodes.length; i++) {\n    graph.addNode(zrUtil.retrieve(nodes[i].id, nodes[i].name, i), i);\n  }\n\n  var linkNameList = [];\n  var validEdges = [];\n  var linkCount = 0;\n\n  for (var i = 0; i < edges.length; i++) {\n    var link = edges[i];\n    var source = link.source;\n    var target = link.target;\n\n    if (graph.addEdge(source, target, linkCount)) {\n      validEdges.push(link);\n      linkNameList.push(zrUtil.retrieve(convertOptionIdName(link.id, null), source + ' > ' + target));\n      linkCount++;\n    }\n  }\n\n  var coordSys = seriesModel.get('coordinateSystem');\n  var nodeData;\n\n  if (coordSys === 'cartesian2d' || coordSys === 'polar') {\n    nodeData = createListFromArray(nodes, seriesModel);\n  } else {\n    var coordSysCtor = CoordinateSystem.get(coordSys);\n    var coordDimensions = coordSysCtor ? coordSysCtor.dimensions || [] : [];\n\n    if (zrUtil.indexOf(coordDimensions, 'value') < 0) {\n      coordDimensions.concat(['value']);\n    }\n\n    var dimensionNames = createDimensions(nodes, {\n      coordDimensions: coordDimensions\n    });\n    nodeData = new List(dimensionNames, seriesModel);\n    nodeData.initData(nodes);\n  }\n\n  var edgeData = new List(['value'], seriesModel);\n  edgeData.initData(validEdges, linkNameList);\n  beforeLink && beforeLink(nodeData, edgeData);\n  linkList({\n    mainData: nodeData,\n    struct: graph,\n    structAttr: 'graph',\n    datas: {\n      node: nodeData,\n      edge: edgeData\n    },\n    datasAttr: {\n      node: 'data',\n      edge: 'edgeData'\n    }\n  });\n  graph.update();\n  return graph;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport List from '../../data/List';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { defaultEmphasis } from '../../util/model';\nimport Model from '../../model/Model';\nimport createGraphFromNodeEdge from '../helper/createGraphFromNodeEdge';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider';\nimport SeriesModel from '../../model/Series';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup';\nimport { defaultSeriesFormatTooltip } from '../../component/tooltip/seriesFormatTooltip';\nimport { initCurvenessList, createEdgeMapForCurveness } from '../helper/multipleGraphEdgeHelper';\n\nvar GraphSeriesModel = function (_super) {\n  __extends(GraphSeriesModel, _super);\n\n  function GraphSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GraphSeriesModel.type;\n    _this.hasSymbolVisual = true;\n    return _this;\n  }\n\n  GraphSeriesModel.prototype.init = function (option) {\n    _super.prototype.init.apply(this, arguments);\n\n    var self = this;\n\n    function getCategoriesData() {\n      return self._categoriesData;\n    }\n\n    this.legendVisualProvider = new LegendVisualProvider(getCategoriesData, getCategoriesData);\n    this.fillDataTextStyle(option.edges || option.links);\n\n    this._updateCategoriesData();\n  };\n\n  GraphSeriesModel.prototype.mergeOption = function (option) {\n    _super.prototype.mergeOption.apply(this, arguments);\n\n    this.fillDataTextStyle(option.edges || option.links);\n\n    this._updateCategoriesData();\n  };\n\n  GraphSeriesModel.prototype.mergeDefaultAndTheme = function (option) {\n    _super.prototype.mergeDefaultAndTheme.apply(this, arguments);\n\n    defaultEmphasis(option, 'edgeLabel', ['show']);\n  };\n\n  GraphSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    var edges = option.edges || option.links || [];\n    var nodes = option.data || option.nodes || [];\n    var self = this;\n\n    if (nodes && edges) {\n      initCurvenessList(this);\n      var graph = createGraphFromNodeEdge(nodes, edges, this, true, beforeLink);\n      zrUtil.each(graph.edges, function (edge) {\n        createEdgeMapForCurveness(edge.node1, edge.node2, this, edge.dataIndex);\n      }, this);\n      return graph.data;\n    }\n\n    function beforeLink(nodeData, edgeData) {\n      nodeData.wrapMethod('getItemModel', function (model) {\n        var categoriesModels = self._categoriesModels;\n        var categoryIdx = model.getShallow('category');\n        var categoryModel = categoriesModels[categoryIdx];\n\n        if (categoryModel) {\n          categoryModel.parentModel = model.parentModel;\n          model.parentModel = categoryModel;\n        }\n\n        return model;\n      });\n      var oldGetModel = Model.prototype.getModel;\n\n      function newGetModel(path, parentModel) {\n        var model = oldGetModel.call(this, path, parentModel);\n        model.resolveParentPath = resolveParentPath;\n        return model;\n      }\n\n      edgeData.wrapMethod('getItemModel', function (model) {\n        model.resolveParentPath = resolveParentPath;\n        model.getModel = newGetModel;\n        return model;\n      });\n\n      function resolveParentPath(pathArr) {\n        if (pathArr && (pathArr[0] === 'label' || pathArr[1] === 'label')) {\n          var newPathArr = pathArr.slice();\n\n          if (pathArr[0] === 'label') {\n            newPathArr[0] = 'edgeLabel';\n          } else if (pathArr[1] === 'label') {\n            newPathArr[1] = 'edgeLabel';\n          }\n\n          return newPathArr;\n        }\n\n        return pathArr;\n      }\n    }\n  };\n\n  GraphSeriesModel.prototype.getGraph = function () {\n    return this.getData().graph;\n  };\n\n  GraphSeriesModel.prototype.getEdgeData = function () {\n    return this.getGraph().edgeData;\n  };\n\n  GraphSeriesModel.prototype.getCategoriesData = function () {\n    return this._categoriesData;\n  };\n\n  GraphSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    if (dataType === 'edge') {\n      var nodeData = this.getData();\n      var params = this.getDataParams(dataIndex, dataType);\n      var edge = nodeData.graph.getEdgeByIndex(dataIndex);\n      var sourceName = nodeData.getName(edge.node1.dataIndex);\n      var targetName = nodeData.getName(edge.node2.dataIndex);\n      var nameArr = [];\n      sourceName != null && nameArr.push(sourceName);\n      targetName != null && nameArr.push(targetName);\n      return createTooltipMarkup('nameValue', {\n        name: nameArr.join(' > '),\n        value: params.value,\n        noValue: params.value == null\n      });\n    }\n\n    var nodeMarkup = defaultSeriesFormatTooltip({\n      series: this,\n      dataIndex: dataIndex,\n      multipleSeries: multipleSeries\n    });\n    return nodeMarkup;\n  };\n\n  GraphSeriesModel.prototype._updateCategoriesData = function () {\n    var categories = zrUtil.map(this.option.categories || [], function (category) {\n      return category.value != null ? category : zrUtil.extend({\n        value: 0\n      }, category);\n    });\n    var categoriesData = new List(['value'], this);\n    categoriesData.initData(categories);\n    this._categoriesData = categoriesData;\n    this._categoriesModels = categoriesData.mapArray(function (idx) {\n      return categoriesData.getItemModel(idx);\n    });\n  };\n\n  GraphSeriesModel.prototype.setZoom = function (zoom) {\n    this.option.zoom = zoom;\n  };\n\n  GraphSeriesModel.prototype.setCenter = function (center) {\n    this.option.center = center;\n  };\n\n  GraphSeriesModel.prototype.isAnimationEnabled = function () {\n    return _super.prototype.isAnimationEnabled.call(this) && !(this.get('layout') === 'force' && this.get(['force', 'layoutAnimation']));\n  };\n\n  GraphSeriesModel.type = 'series.graph';\n  GraphSeriesModel.dependencies = ['grid', 'polar', 'geo', 'singleAxis', 'calendar'];\n  GraphSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'view',\n    legendHoverLink: true,\n    layout: null,\n    focusNodeAdjacency: false,\n    circular: {\n      rotateLabel: false\n    },\n    force: {\n      initLayout: null,\n      repulsion: [0, 50],\n      gravity: 0.1,\n      friction: 0.6,\n      edgeLength: 30,\n      layoutAnimation: true\n    },\n    left: 'center',\n    top: 'center',\n    symbol: 'circle',\n    symbolSize: 10,\n    edgeSymbol: ['none', 'none'],\n    edgeSymbolSize: 10,\n    edgeLabel: {\n      position: 'middle',\n      distance: 5\n    },\n    draggable: false,\n    roam: false,\n    center: null,\n    zoom: 1,\n    nodeScaleRatio: 0.6,\n    label: {\n      show: false,\n      formatter: '{b}'\n    },\n    itemStyle: {},\n    lineStyle: {\n      color: '#aaa',\n      width: 1,\n      opacity: 0.5\n    },\n    emphasis: {\n      scale: true,\n      label: {\n        show: true\n      }\n    },\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    }\n  };\n  return GraphSeriesModel;\n}(SeriesModel);\n\nexport default GraphSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport categoryFilter from './categoryFilter';\nimport categoryVisual from './categoryVisual';\nimport edgeVisual from './edgeVisual';\nimport simpleLayout from './simpleLayout';\nimport circularLayout from './circularLayout';\nimport forceLayout from './forceLayout';\nimport createView from './createView';\nimport View from '../../coord/View';\nimport GraphView from './GraphView';\nimport GraphSeriesModel from './GraphSeries';\nimport { updateCenterAndZoom } from '../../action/roamHelper';\nvar actionInfo = {\n  type: 'graphRoam',\n  event: 'graphRoam',\n  update: 'none'\n};\nexport function install(registers) {\n  registers.registerChartView(GraphView);\n  registers.registerSeriesModel(GraphSeriesModel);\n  registers.registerProcessor(categoryFilter);\n  registers.registerVisual(categoryVisual);\n  registers.registerVisual(edgeVisual);\n  registers.registerLayout(simpleLayout);\n  registers.registerLayout(registers.PRIORITY.VISUAL.POST_CHART_LAYOUT, circularLayout);\n  registers.registerLayout(forceLayout);\n  registers.registerCoordinateSystem('graphView', {\n    dimensions: View.dimensions,\n    create: createView\n  });\n  registers.registerAction({\n    type: 'focusNodeAdjacency',\n    event: 'focusNodeAdjacency',\n    update: 'series:focusNodeAdjacency'\n  }, function () {});\n  registers.registerAction({\n    type: 'unfocusNodeAdjacency',\n    event: 'unfocusNodeAdjacency',\n    update: 'series:unfocusNodeAdjacency'\n  }, function () {});\n  registers.registerAction(actionInfo, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'series',\n      query: payload\n    }, function (seriesModel) {\n      var coordSys = seriesModel.coordinateSystem;\n      var res = updateCenterAndZoom(coordSys, payload);\n      seriesModel.setCenter && seriesModel.setCenter(res.center);\n      seriesModel.setZoom && seriesModel.setZoom(res.zoom);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Path from 'zrender/lib/graphic/Path';\n\nvar PointerShape = function () {\n  function PointerShape() {\n    this.angle = 0;\n    this.width = 10;\n    this.r = 10;\n    this.x = 0;\n    this.y = 0;\n  }\n\n  return PointerShape;\n}();\n\nvar PointerPath = function (_super) {\n  __extends(PointerPath, _super);\n\n  function PointerPath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'pointer';\n    return _this;\n  }\n\n  PointerPath.prototype.getDefaultShape = function () {\n    return new PointerShape();\n  };\n\n  PointerPath.prototype.buildPath = function (ctx, shape) {\n    var mathCos = Math.cos;\n    var mathSin = Math.sin;\n    var r = shape.r;\n    var width = shape.width;\n    var angle = shape.angle;\n    var x = shape.x - mathCos(angle) * width * (width >= r / 3 ? 1 : 2);\n    var y = shape.y - mathSin(angle) * width * (width >= r / 3 ? 1 : 2);\n    angle = shape.angle - Math.PI / 2;\n    ctx.moveTo(x, y);\n    ctx.lineTo(shape.x + mathCos(angle) * width, shape.y + mathSin(angle) * width);\n    ctx.lineTo(shape.x + mathCos(shape.angle) * r, shape.y + mathSin(shape.angle) * r);\n    ctx.lineTo(shape.x - mathCos(angle) * width, shape.y - mathSin(angle) * width);\n    ctx.lineTo(x, y);\n  };\n\n  return PointerPath;\n}(Path);\n\nexport default PointerPath;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport PointerPath from './PointerPath';\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport { createTextStyle, setLabelValueAnimation, animateLabelValue } from '../../label/labelStyle';\nimport ChartView from '../../view/Chart';\nimport { parsePercent, round, linearMap } from '../../util/number';\nimport Sausage from '../../util/shape/sausage';\nimport { createSymbol } from '../../util/symbol';\n\nfunction parsePosition(seriesModel, api) {\n  var center = seriesModel.get('center');\n  var width = api.getWidth();\n  var height = api.getHeight();\n  var size = Math.min(width, height);\n  var cx = parsePercent(center[0], api.getWidth());\n  var cy = parsePercent(center[1], api.getHeight());\n  var r = parsePercent(seriesModel.get('radius'), size / 2);\n  return {\n    cx: cx,\n    cy: cy,\n    r: r\n  };\n}\n\nfunction formatLabel(value, labelFormatter) {\n  var label = value == null ? '' : value + '';\n\n  if (labelFormatter) {\n    if (typeof labelFormatter === 'string') {\n      label = labelFormatter.replace('{value}', label);\n    } else if (typeof labelFormatter === 'function') {\n      label = labelFormatter(value);\n    }\n  }\n\n  return label;\n}\n\nvar PI2 = Math.PI * 2;\n\nvar GaugeView = function (_super) {\n  __extends(GaugeView, _super);\n\n  function GaugeView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GaugeView.type;\n    return _this;\n  }\n\n  GaugeView.prototype.render = function (seriesModel, ecModel, api) {\n    this.group.removeAll();\n    var colorList = seriesModel.get(['axisLine', 'lineStyle', 'color']);\n    var posInfo = parsePosition(seriesModel, api);\n\n    this._renderMain(seriesModel, ecModel, api, colorList, posInfo);\n\n    this._data = seriesModel.getData();\n  };\n\n  GaugeView.prototype.dispose = function () {};\n\n  GaugeView.prototype._renderMain = function (seriesModel, ecModel, api, colorList, posInfo) {\n    var group = this.group;\n    var clockwise = seriesModel.get('clockwise');\n    var startAngle = -seriesModel.get('startAngle') / 180 * Math.PI;\n    var endAngle = -seriesModel.get('endAngle') / 180 * Math.PI;\n    var axisLineModel = seriesModel.getModel('axisLine');\n    var roundCap = axisLineModel.get('roundCap');\n    var MainPath = roundCap ? Sausage : graphic.Sector;\n    var showAxis = axisLineModel.get('show');\n    var lineStyleModel = axisLineModel.getModel('lineStyle');\n    var axisLineWidth = lineStyleModel.get('width');\n    var angleRangeSpan = !((endAngle - startAngle) % PI2) && endAngle !== startAngle ? PI2 : (endAngle - startAngle) % PI2;\n    var prevEndAngle = startAngle;\n\n    for (var i = 0; showAxis && i < colorList.length; i++) {\n      var percent = Math.min(Math.max(colorList[i][0], 0), 1);\n      endAngle = startAngle + angleRangeSpan * percent;\n      var sector = new MainPath({\n        shape: {\n          startAngle: prevEndAngle,\n          endAngle: endAngle,\n          cx: posInfo.cx,\n          cy: posInfo.cy,\n          clockwise: clockwise,\n          r0: posInfo.r - axisLineWidth,\n          r: posInfo.r\n        },\n        silent: true\n      });\n      sector.setStyle({\n        fill: colorList[i][1]\n      });\n      sector.setStyle(lineStyleModel.getLineStyle(['color', 'width']));\n      group.add(sector);\n      prevEndAngle = endAngle;\n    }\n\n    var getColor = function (percent) {\n      if (percent <= 0) {\n        return colorList[0][1];\n      }\n\n      var i;\n\n      for (i = 0; i < colorList.length; i++) {\n        if (colorList[i][0] >= percent && (i === 0 ? 0 : colorList[i - 1][0]) < percent) {\n          return colorList[i][1];\n        }\n      }\n\n      return colorList[i - 1][1];\n    };\n\n    if (!clockwise) {\n      var tmp = startAngle;\n      startAngle = endAngle;\n      endAngle = tmp;\n    }\n\n    this._renderTicks(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth);\n\n    this._renderTitleAndDetail(seriesModel, ecModel, api, getColor, posInfo);\n\n    this._renderAnchor(seriesModel, posInfo);\n\n    this._renderPointer(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth);\n  };\n\n  GaugeView.prototype._renderTicks = function (seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth) {\n    var group = this.group;\n    var cx = posInfo.cx;\n    var cy = posInfo.cy;\n    var r = posInfo.r;\n    var minVal = +seriesModel.get('min');\n    var maxVal = +seriesModel.get('max');\n    var splitLineModel = seriesModel.getModel('splitLine');\n    var tickModel = seriesModel.getModel('axisTick');\n    var labelModel = seriesModel.getModel('axisLabel');\n    var splitNumber = seriesModel.get('splitNumber');\n    var subSplitNumber = tickModel.get('splitNumber');\n    var splitLineLen = parsePercent(splitLineModel.get('length'), r);\n    var tickLen = parsePercent(tickModel.get('length'), r);\n    var angle = startAngle;\n    var step = (endAngle - startAngle) / splitNumber;\n    var subStep = step / subSplitNumber;\n    var splitLineStyle = splitLineModel.getModel('lineStyle').getLineStyle();\n    var tickLineStyle = tickModel.getModel('lineStyle').getLineStyle();\n    var splitLineDistance = splitLineModel.get('distance');\n    var unitX;\n    var unitY;\n\n    for (var i = 0; i <= splitNumber; i++) {\n      unitX = Math.cos(angle);\n      unitY = Math.sin(angle);\n\n      if (splitLineModel.get('show')) {\n        var distance = splitLineDistance ? splitLineDistance + axisLineWidth : axisLineWidth;\n        var splitLine = new graphic.Line({\n          shape: {\n            x1: unitX * (r - distance) + cx,\n            y1: unitY * (r - distance) + cy,\n            x2: unitX * (r - splitLineLen - distance) + cx,\n            y2: unitY * (r - splitLineLen - distance) + cy\n          },\n          style: splitLineStyle,\n          silent: true\n        });\n\n        if (splitLineStyle.stroke === 'auto') {\n          splitLine.setStyle({\n            stroke: getColor(i / splitNumber)\n          });\n        }\n\n        group.add(splitLine);\n      }\n\n      if (labelModel.get('show')) {\n        var distance = labelModel.get('distance') + splitLineDistance;\n        var label = formatLabel(round(i / splitNumber * (maxVal - minVal) + minVal), labelModel.get('formatter'));\n        var autoColor = getColor(i / splitNumber);\n        group.add(new graphic.Text({\n          style: createTextStyle(labelModel, {\n            text: label,\n            x: unitX * (r - splitLineLen - distance) + cx,\n            y: unitY * (r - splitLineLen - distance) + cy,\n            verticalAlign: unitY < -0.8 ? 'top' : unitY > 0.8 ? 'bottom' : 'middle',\n            align: unitX < -0.4 ? 'left' : unitX > 0.4 ? 'right' : 'center'\n          }, {\n            inheritColor: autoColor\n          }),\n          silent: true\n        }));\n      }\n\n      if (tickModel.get('show') && i !== splitNumber) {\n        var distance = tickModel.get('distance');\n        distance = distance ? distance + axisLineWidth : axisLineWidth;\n\n        for (var j = 0; j <= subSplitNumber; j++) {\n          unitX = Math.cos(angle);\n          unitY = Math.sin(angle);\n          var tickLine = new graphic.Line({\n            shape: {\n              x1: unitX * (r - distance) + cx,\n              y1: unitY * (r - distance) + cy,\n              x2: unitX * (r - tickLen - distance) + cx,\n              y2: unitY * (r - tickLen - distance) + cy\n            },\n            silent: true,\n            style: tickLineStyle\n          });\n\n          if (tickLineStyle.stroke === 'auto') {\n            tickLine.setStyle({\n              stroke: getColor((i + j / subSplitNumber) / splitNumber)\n            });\n          }\n\n          group.add(tickLine);\n          angle += subStep;\n        }\n\n        angle -= subStep;\n      } else {\n        angle += step;\n      }\n    }\n  };\n\n  GaugeView.prototype._renderPointer = function (seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth) {\n    var group = this.group;\n    var oldData = this._data;\n    var oldProgressData = this._progressEls;\n    var progressList = [];\n    var showPointer = seriesModel.get(['pointer', 'show']);\n    var progressModel = seriesModel.getModel('progress');\n    var showProgress = progressModel.get('show');\n    var data = seriesModel.getData();\n    var valueDim = data.mapDimension('value');\n    var minVal = +seriesModel.get('min');\n    var maxVal = +seriesModel.get('max');\n    var valueExtent = [minVal, maxVal];\n    var angleExtent = [startAngle, endAngle];\n\n    function createPointer(idx, angle) {\n      var itemModel = data.getItemModel(idx);\n      var pointerModel = itemModel.getModel('pointer');\n      var pointerWidth = parsePercent(pointerModel.get('width'), posInfo.r);\n      var pointerLength = parsePercent(pointerModel.get('length'), posInfo.r);\n      var pointerStr = seriesModel.get(['pointer', 'icon']);\n      var pointerOffset = pointerModel.get('offsetCenter');\n      var pointerOffsetX = parsePercent(pointerOffset[0], posInfo.r);\n      var pointerOffsetY = parsePercent(pointerOffset[1], posInfo.r);\n      var pointerKeepAspect = pointerModel.get('keepAspect');\n      var pointer;\n\n      if (pointerStr) {\n        pointer = createSymbol(pointerStr, pointerOffsetX - pointerWidth / 2, pointerOffsetY - pointerLength, pointerWidth, pointerLength, null, pointerKeepAspect);\n      } else {\n        pointer = new PointerPath({\n          shape: {\n            angle: -Math.PI / 2,\n            width: pointerWidth,\n            r: pointerLength,\n            x: pointerOffsetX,\n            y: pointerOffsetY\n          }\n        });\n      }\n\n      pointer.rotation = -(angle + Math.PI / 2);\n      pointer.x = posInfo.cx;\n      pointer.y = posInfo.cy;\n      return pointer;\n    }\n\n    function createProgress(idx, endAngle) {\n      var roundCap = progressModel.get('roundCap');\n      var ProgressPath = roundCap ? Sausage : graphic.Sector;\n      var isOverlap = progressModel.get('overlap');\n      var progressWidth = isOverlap ? progressModel.get('width') : axisLineWidth / data.count();\n      var r0 = isOverlap ? posInfo.r - progressWidth : posInfo.r - (idx + 1) * progressWidth;\n      var r = isOverlap ? posInfo.r : posInfo.r - idx * progressWidth;\n      var progress = new ProgressPath({\n        shape: {\n          startAngle: startAngle,\n          endAngle: endAngle,\n          cx: posInfo.cx,\n          cy: posInfo.cy,\n          clockwise: clockwise,\n          r0: r0,\n          r: r\n        }\n      });\n      isOverlap && (progress.z2 = maxVal - data.get(valueDim, idx) % maxVal);\n      return progress;\n    }\n\n    if (showProgress || showPointer) {\n      data.diff(oldData).add(function (idx) {\n        if (showPointer) {\n          var pointer = createPointer(idx, startAngle);\n          graphic.initProps(pointer, {\n            rotation: -(linearMap(data.get(valueDim, idx), valueExtent, angleExtent, true) + Math.PI / 2)\n          }, seriesModel);\n          group.add(pointer);\n          data.setItemGraphicEl(idx, pointer);\n        }\n\n        if (showProgress) {\n          var progress = createProgress(idx, startAngle);\n          var isClip = progressModel.get('clip');\n          graphic.initProps(progress, {\n            shape: {\n              endAngle: linearMap(data.get(valueDim, idx), valueExtent, angleExtent, isClip)\n            }\n          }, seriesModel);\n          group.add(progress);\n          progressList[idx] = progress;\n        }\n      }).update(function (newIdx, oldIdx) {\n        if (showPointer) {\n          var previousPointer = oldData.getItemGraphicEl(oldIdx);\n          var previousRotate = previousPointer ? previousPointer.rotation : startAngle;\n          var pointer = createPointer(newIdx, previousRotate);\n          pointer.rotation = previousRotate;\n          graphic.updateProps(pointer, {\n            rotation: -(linearMap(data.get(valueDim, newIdx), valueExtent, angleExtent, true) + Math.PI / 2)\n          }, seriesModel);\n          group.add(pointer);\n          data.setItemGraphicEl(newIdx, pointer);\n        }\n\n        if (showProgress) {\n          var previousProgress = oldProgressData[oldIdx];\n          var previousEndAngle = previousProgress ? previousProgress.shape.endAngle : startAngle;\n          var progress = createProgress(newIdx, previousEndAngle);\n          var isClip = progressModel.get('clip');\n          graphic.updateProps(progress, {\n            shape: {\n              endAngle: linearMap(data.get(valueDim, newIdx), valueExtent, angleExtent, isClip)\n            }\n          }, seriesModel);\n          group.add(progress);\n          progressList[newIdx] = progress;\n        }\n      }).execute();\n      data.each(function (idx) {\n        var itemModel = data.getItemModel(idx);\n        var emphasisModel = itemModel.getModel('emphasis');\n\n        if (showPointer) {\n          var pointer = data.getItemGraphicEl(idx);\n          pointer.useStyle(data.getItemVisual(idx, 'style'));\n          pointer.setStyle(itemModel.getModel(['pointer', 'itemStyle']).getItemStyle());\n\n          if (pointer.style.fill === 'auto') {\n            pointer.setStyle('fill', getColor(linearMap(data.get(valueDim, idx), valueExtent, [0, 1], true)));\n          }\n\n          pointer.z2EmphasisLift = 0;\n          setStatesStylesFromModel(pointer, itemModel);\n          enableHoverEmphasis(pointer, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n        }\n\n        if (showProgress) {\n          var progress = progressList[idx];\n          progress.useStyle(data.getItemVisual(idx, 'style'));\n          progress.setStyle(itemModel.getModel(['progress', 'itemStyle']).getItemStyle());\n          progress.z2EmphasisLift = 0;\n          setStatesStylesFromModel(progress, itemModel);\n          enableHoverEmphasis(progress, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n        }\n      });\n      this._progressEls = progressList;\n    }\n  };\n\n  GaugeView.prototype._renderAnchor = function (seriesModel, posInfo) {\n    var anchorModel = seriesModel.getModel('anchor');\n    var showAnchor = anchorModel.get('show');\n\n    if (showAnchor) {\n      var anchorSize = anchorModel.get('size');\n      var anchorType = anchorModel.get('icon');\n      var offsetCenter = anchorModel.get('offsetCenter');\n      var anchorKeepAspect = anchorModel.get('keepAspect');\n      var anchor = createSymbol(anchorType, posInfo.cx - anchorSize / 2 + parsePercent(offsetCenter[0], posInfo.r), posInfo.cy - anchorSize / 2 + parsePercent(offsetCenter[1], posInfo.r), anchorSize, anchorSize, null, anchorKeepAspect);\n      anchor.z2 = anchorModel.get('showAbove') ? 1 : 0;\n      anchor.setStyle(anchorModel.getModel('itemStyle').getItemStyle());\n      this.group.add(anchor);\n    }\n  };\n\n  GaugeView.prototype._renderTitleAndDetail = function (seriesModel, ecModel, api, getColor, posInfo) {\n    var _this = this;\n\n    var data = seriesModel.getData();\n    var valueDim = data.mapDimension('value');\n    var minVal = +seriesModel.get('min');\n    var maxVal = +seriesModel.get('max');\n    var contentGroup = new graphic.Group();\n    var newTitleEls = [];\n    var newDetailEls = [];\n    var hasAnimation = seriesModel.isAnimationEnabled();\n    data.diff(this._data).add(function (idx) {\n      newTitleEls[idx] = new graphic.Text({\n        silent: true\n      });\n      newDetailEls[idx] = new graphic.Text({\n        silent: true\n      });\n    }).update(function (idx, oldIdx) {\n      newTitleEls[idx] = _this._titleEls[oldIdx];\n      newDetailEls[idx] = _this._detailEls[oldIdx];\n    }).execute();\n    data.each(function (idx) {\n      var itemModel = data.getItemModel(idx);\n      var value = data.get(valueDim, idx);\n      var itemGroup = new graphic.Group();\n      var autoColor = getColor(linearMap(value, [minVal, maxVal], [0, 1], true));\n      var itemTitleModel = itemModel.getModel('title');\n\n      if (itemTitleModel.get('show')) {\n        var titleOffsetCenter = itemTitleModel.get('offsetCenter');\n        var titleX = posInfo.cx + parsePercent(titleOffsetCenter[0], posInfo.r);\n        var titleY = posInfo.cy + parsePercent(titleOffsetCenter[1], posInfo.r);\n        var labelEl = newTitleEls[idx];\n        labelEl.attr({\n          style: createTextStyle(itemTitleModel, {\n            x: titleX,\n            y: titleY,\n            text: data.getName(idx),\n            align: 'center',\n            verticalAlign: 'middle'\n          }, {\n            inheritColor: autoColor\n          })\n        });\n        itemGroup.add(labelEl);\n      }\n\n      var itemDetailModel = itemModel.getModel('detail');\n\n      if (itemDetailModel.get('show')) {\n        var detailOffsetCenter = itemDetailModel.get('offsetCenter');\n        var detailX = posInfo.cx + parsePercent(detailOffsetCenter[0], posInfo.r);\n        var detailY = posInfo.cy + parsePercent(detailOffsetCenter[1], posInfo.r);\n        var width = parsePercent(itemDetailModel.get('width'), posInfo.r);\n        var height = parsePercent(itemDetailModel.get('height'), posInfo.r);\n        var detailColor = seriesModel.get(['progress', 'show']) ? data.getItemVisual(idx, 'style').fill : autoColor;\n        var labelEl = newDetailEls[idx];\n        var formatter_1 = itemDetailModel.get('formatter');\n        labelEl.attr({\n          style: createTextStyle(itemDetailModel, {\n            x: detailX,\n            y: detailY,\n            text: formatLabel(value, formatter_1),\n            width: isNaN(width) ? null : width,\n            height: isNaN(height) ? null : height,\n            align: 'center',\n            verticalAlign: 'middle'\n          }, {\n            inheritColor: detailColor\n          })\n        });\n        setLabelValueAnimation(labelEl, {\n          normal: itemDetailModel\n        }, value, function (value) {\n          return formatLabel(value, formatter_1);\n        });\n        hasAnimation && animateLabelValue(labelEl, idx, data, seriesModel, {\n          getFormattedLabel: function (labelDataIndex, status, dataType, labelDimIndex, fmt, extendParams) {\n            return formatLabel(extendParams ? extendParams.interpolatedValue : value, formatter_1);\n          }\n        });\n        itemGroup.add(labelEl);\n      }\n\n      contentGroup.add(itemGroup);\n    });\n    this.group.add(contentGroup);\n    this._titleEls = newTitleEls;\n    this._detailEls = newDetailEls;\n  };\n\n  GaugeView.type = 'gauge';\n  return GaugeView;\n}(ChartView);\n\nexport default GaugeView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListSimply from '../helper/createListSimply';\nimport SeriesModel from '../../model/Series';\n\nvar GaugeSeriesModel = function (_super) {\n  __extends(GaugeSeriesModel, _super);\n\n  function GaugeSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GaugeSeriesModel.type;\n    _this.visualStyleAccessPath = 'itemStyle';\n    _this.useColorPaletteOnData = true;\n    return _this;\n  }\n\n  GaugeSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListSimply(this, ['value']);\n  };\n\n  GaugeSeriesModel.type = 'series.gauge';\n  GaugeSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    center: ['50%', '50%'],\n    legendHoverLink: true,\n    radius: '75%',\n    startAngle: 225,\n    endAngle: -45,\n    clockwise: true,\n    min: 0,\n    max: 100,\n    splitNumber: 10,\n    axisLine: {\n      show: true,\n      roundCap: false,\n      lineStyle: {\n        color: [[1, '#E6EBF8']],\n        width: 10\n      }\n    },\n    progress: {\n      show: false,\n      overlap: true,\n      width: 10,\n      roundCap: false,\n      clip: true\n    },\n    splitLine: {\n      show: true,\n      length: 10,\n      distance: 10,\n      lineStyle: {\n        color: '#63677A',\n        width: 3,\n        type: 'solid'\n      }\n    },\n    axisTick: {\n      show: true,\n      splitNumber: 5,\n      length: 6,\n      distance: 10,\n      lineStyle: {\n        color: '#63677A',\n        width: 1,\n        type: 'solid'\n      }\n    },\n    axisLabel: {\n      show: true,\n      distance: 15,\n      color: '#464646',\n      fontSize: 12\n    },\n    pointer: {\n      icon: null,\n      offsetCenter: [0, 0],\n      show: true,\n      length: '60%',\n      width: 6,\n      keepAspect: false\n    },\n    anchor: {\n      show: false,\n      showAbove: false,\n      size: 6,\n      icon: 'circle',\n      offsetCenter: [0, 0],\n      keepAspect: false,\n      itemStyle: {\n        color: '#fff',\n        borderWidth: 0,\n        borderColor: '#5470c6'\n      }\n    },\n    title: {\n      show: true,\n      offsetCenter: [0, '20%'],\n      color: '#464646',\n      fontSize: 16,\n      valueAnimation: false\n    },\n    detail: {\n      show: true,\n      backgroundColor: 'rgba(0,0,0,0)',\n      borderWidth: 0,\n      borderColor: '#ccc',\n      width: 100,\n      height: null,\n      padding: [5, 10],\n      offsetCenter: [0, '40%'],\n      color: '#464646',\n      fontSize: 30,\n      fontWeight: 'bold',\n      lineHeight: 30,\n      valueAnimation: false\n    }\n  };\n  return GaugeSeriesModel;\n}(SeriesModel);\n\nexport default GaugeSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport GaugeView from './GaugeView';\nimport GaugeSeriesModel from './GaugeSeries';\nexport function install(registers) {\n  registers.registerChartView(GaugeView);\n  registers.registerSeriesModel(GaugeSeriesModel);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport ChartView from '../../view/Chart';\nimport { setLabelLineStyle, getLabelLineStatesModels } from '../../label/labelGuideHelper';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nvar opacityAccessPath = ['itemStyle', 'opacity'];\n\nvar FunnelPiece = function (_super) {\n  __extends(FunnelPiece, _super);\n\n  function FunnelPiece(data, idx) {\n    var _this = _super.call(this) || this;\n\n    var polygon = _this;\n    var labelLine = new graphic.Polyline();\n    var text = new graphic.Text();\n    polygon.setTextContent(text);\n\n    _this.setTextGuideLine(labelLine);\n\n    _this.updateData(data, idx, true);\n\n    return _this;\n  }\n\n  FunnelPiece.prototype.updateData = function (data, idx, firstCreate) {\n    var polygon = this;\n    var seriesModel = data.hostModel;\n    var itemModel = data.getItemModel(idx);\n    var layout = data.getItemLayout(idx);\n    var emphasisModel = itemModel.getModel('emphasis');\n    var opacity = itemModel.get(opacityAccessPath);\n    opacity = opacity == null ? 1 : opacity;\n    polygon.useStyle(data.getItemVisual(idx, 'style'));\n    polygon.style.lineJoin = 'round';\n\n    if (firstCreate) {\n      polygon.setShape({\n        points: layout.points\n      });\n      polygon.style.opacity = 0;\n      graphic.initProps(polygon, {\n        style: {\n          opacity: opacity\n        }\n      }, seriesModel, idx);\n    } else {\n      graphic.updateProps(polygon, {\n        style: {\n          opacity: opacity\n        },\n        shape: {\n          points: layout.points\n        }\n      }, seriesModel, idx);\n    }\n\n    setStatesStylesFromModel(polygon, itemModel);\n\n    this._updateLabel(data, idx);\n\n    enableHoverEmphasis(this, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n  };\n\n  FunnelPiece.prototype._updateLabel = function (data, idx) {\n    var polygon = this;\n    var labelLine = this.getTextGuideLine();\n    var labelText = polygon.getTextContent();\n    var seriesModel = data.hostModel;\n    var itemModel = data.getItemModel(idx);\n    var layout = data.getItemLayout(idx);\n    var labelLayout = layout.label;\n    var style = data.getItemVisual(idx, 'style');\n    var visualColor = style.fill;\n    setLabelStyle(labelText, getLabelStatesModels(itemModel), {\n      labelFetcher: data.hostModel,\n      labelDataIndex: idx,\n      defaultOpacity: style.opacity,\n      defaultText: data.getName(idx)\n    }, {\n      normal: {\n        align: labelLayout.textAlign,\n        verticalAlign: labelLayout.verticalAlign\n      }\n    });\n    polygon.setTextConfig({\n      local: true,\n      inside: !!labelLayout.inside,\n      insideStroke: visualColor,\n      outsideFill: visualColor\n    });\n    var linePoints = labelLayout.linePoints;\n    labelLine.setShape({\n      points: linePoints\n    });\n    polygon.textGuideLineConfig = {\n      anchor: linePoints ? new graphic.Point(linePoints[0][0], linePoints[0][1]) : null\n    };\n    graphic.updateProps(labelText, {\n      style: {\n        x: labelLayout.x,\n        y: labelLayout.y\n      }\n    }, seriesModel, idx);\n    labelText.attr({\n      rotation: labelLayout.rotation,\n      originX: labelLayout.x,\n      originY: labelLayout.y,\n      z2: 10\n    });\n    setLabelLineStyle(polygon, getLabelLineStatesModels(itemModel), {\n      stroke: visualColor\n    });\n  };\n\n  return FunnelPiece;\n}(graphic.Polygon);\n\nvar FunnelView = function (_super) {\n  __extends(FunnelView, _super);\n\n  function FunnelView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = FunnelView.type;\n    _this.ignoreLabelLineUpdate = true;\n    return _this;\n  }\n\n  FunnelView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var group = this.group;\n    data.diff(oldData).add(function (idx) {\n      var funnelPiece = new FunnelPiece(data, idx);\n      data.setItemGraphicEl(idx, funnelPiece);\n      group.add(funnelPiece);\n    }).update(function (newIdx, oldIdx) {\n      var piece = oldData.getItemGraphicEl(oldIdx);\n      piece.updateData(data, newIdx);\n      group.add(piece);\n      data.setItemGraphicEl(newIdx, piece);\n    }).remove(function (idx) {\n      var piece = oldData.getItemGraphicEl(idx);\n      graphic.removeElementWithFadeOut(piece, seriesModel, idx);\n    }).execute();\n    this._data = data;\n  };\n\n  FunnelView.prototype.remove = function () {\n    this.group.removeAll();\n    this._data = null;\n  };\n\n  FunnelView.prototype.dispose = function () {};\n\n  FunnelView.type = 'funnel';\n  return FunnelView;\n}(ChartView);\n\nexport default FunnelView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport createListSimply from '../helper/createListSimply';\nimport { defaultEmphasis } from '../../util/model';\nimport { makeSeriesEncodeForNameBased } from '../../data/helper/sourceHelper';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider';\nimport SeriesModel from '../../model/Series';\n\nvar FunnelSeriesModel = function (_super) {\n  __extends(FunnelSeriesModel, _super);\n\n  function FunnelSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = FunnelSeriesModel.type;\n    _this.useColorPaletteOnData = true;\n    return _this;\n  }\n\n  FunnelSeriesModel.prototype.init = function (option) {\n    _super.prototype.init.apply(this, arguments);\n\n    this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));\n\n    this._defaultLabelLine(option);\n  };\n\n  FunnelSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListSimply(this, {\n      coordDimensions: ['value'],\n      encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)\n    });\n  };\n\n  FunnelSeriesModel.prototype._defaultLabelLine = function (option) {\n    defaultEmphasis(option, 'labelLine', ['show']);\n    var labelLineNormalOpt = option.labelLine;\n    var labelLineEmphasisOpt = option.emphasis.labelLine;\n    labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show;\n    labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show;\n  };\n\n  FunnelSeriesModel.prototype.getDataParams = function (dataIndex) {\n    var data = this.getData();\n\n    var params = _super.prototype.getDataParams.call(this, dataIndex);\n\n    var valueDim = data.mapDimension('value');\n    var sum = data.getSum(valueDim);\n    params.percent = !sum ? 0 : +(data.get(valueDim, dataIndex) / sum * 100).toFixed(2);\n    params.$vars.push('percent');\n    return params;\n  };\n\n  FunnelSeriesModel.type = 'series.funnel';\n  FunnelSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    left: 80,\n    top: 60,\n    right: 80,\n    bottom: 60,\n    minSize: '0%',\n    maxSize: '100%',\n    sort: 'descending',\n    orient: 'vertical',\n    gap: 0,\n    funnelAlign: 'center',\n    label: {\n      show: true,\n      position: 'outer'\n    },\n    labelLine: {\n      show: true,\n      length: 20,\n      lineStyle: {\n        width: 1\n      }\n    },\n    itemStyle: {\n      borderColor: '#fff',\n      borderWidth: 1\n    },\n    emphasis: {\n      label: {\n        show: true\n      }\n    },\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    }\n  };\n  return FunnelSeriesModel;\n}(SeriesModel);\n\nexport default FunnelSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as layout from '../../util/layout';\nimport { parsePercent, linearMap } from '../../util/number';\n\nfunction getViewRect(seriesModel, api) {\n  return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n}\n\nfunction getSortedIndices(data, sort) {\n  var valueDim = data.mapDimension('value');\n  var valueArr = data.mapArray(valueDim, function (val) {\n    return val;\n  });\n  var indices = [];\n  var isAscending = sort === 'ascending';\n\n  for (var i = 0, len = data.count(); i < len; i++) {\n    indices[i] = i;\n  }\n\n  if (typeof sort === 'function') {\n    indices.sort(sort);\n  } else if (sort !== 'none') {\n    indices.sort(function (a, b) {\n      return isAscending ? valueArr[a] - valueArr[b] : valueArr[b] - valueArr[a];\n    });\n  }\n\n  return indices;\n}\n\nfunction labelLayout(data) {\n  var seriesModel = data.hostModel;\n  var orient = seriesModel.get('orient');\n  data.each(function (idx) {\n    var itemModel = data.getItemModel(idx);\n    var labelModel = itemModel.getModel('label');\n    var labelPosition = labelModel.get('position');\n    var labelLineModel = itemModel.getModel('labelLine');\n    var layout = data.getItemLayout(idx);\n    var points = layout.points;\n    var isLabelInside = labelPosition === 'inner' || labelPosition === 'inside' || labelPosition === 'center' || labelPosition === 'insideLeft' || labelPosition === 'insideRight';\n    var textAlign;\n    var textX;\n    var textY;\n    var linePoints;\n\n    if (isLabelInside) {\n      if (labelPosition === 'insideLeft') {\n        textX = (points[0][0] + points[3][0]) / 2 + 5;\n        textY = (points[0][1] + points[3][1]) / 2;\n        textAlign = 'left';\n      } else if (labelPosition === 'insideRight') {\n        textX = (points[1][0] + points[2][0]) / 2 - 5;\n        textY = (points[1][1] + points[2][1]) / 2;\n        textAlign = 'right';\n      } else {\n        textX = (points[0][0] + points[1][0] + points[2][0] + points[3][0]) / 4;\n        textY = (points[0][1] + points[1][1] + points[2][1] + points[3][1]) / 4;\n        textAlign = 'center';\n      }\n\n      linePoints = [[textX, textY], [textX, textY]];\n    } else {\n      var x1 = void 0;\n      var y1 = void 0;\n      var x2 = void 0;\n      var y2 = void 0;\n      var labelLineLen = labelLineModel.get('length');\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (orient === 'vertical' && ['top', 'bottom'].indexOf(labelPosition) > -1) {\n          labelPosition = 'left';\n          console.warn('Position error: Funnel chart on vertical orient dose not support top and bottom.');\n        }\n\n        if (orient === 'horizontal' && ['left', 'right'].indexOf(labelPosition) > -1) {\n          labelPosition = 'bottom';\n          console.warn('Position error: Funnel chart on horizontal orient dose not support left and right.');\n        }\n      }\n\n      if (labelPosition === 'left') {\n        x1 = (points[3][0] + points[0][0]) / 2;\n        y1 = (points[3][1] + points[0][1]) / 2;\n        x2 = x1 - labelLineLen;\n        textX = x2 - 5;\n        textAlign = 'right';\n      } else if (labelPosition === 'right') {\n        x1 = (points[1][0] + points[2][0]) / 2;\n        y1 = (points[1][1] + points[2][1]) / 2;\n        x2 = x1 + labelLineLen;\n        textX = x2 + 5;\n        textAlign = 'left';\n      } else if (labelPosition === 'top') {\n        x1 = (points[3][0] + points[0][0]) / 2;\n        y1 = (points[3][1] + points[0][1]) / 2;\n        y2 = y1 - labelLineLen;\n        textY = y2 - 5;\n        textAlign = 'center';\n      } else if (labelPosition === 'bottom') {\n        x1 = (points[1][0] + points[2][0]) / 2;\n        y1 = (points[1][1] + points[2][1]) / 2;\n        y2 = y1 + labelLineLen;\n        textY = y2 + 5;\n        textAlign = 'center';\n      } else if (labelPosition === 'rightTop') {\n        x1 = orient === 'horizontal' ? points[3][0] : points[1][0];\n        y1 = orient === 'horizontal' ? points[3][1] : points[1][1];\n\n        if (orient === 'horizontal') {\n          y2 = y1 - labelLineLen;\n          textY = y2 - 5;\n          textAlign = 'center';\n        } else {\n          x2 = x1 + labelLineLen;\n          textX = x2 + 5;\n          textAlign = 'top';\n        }\n      } else if (labelPosition === 'rightBottom') {\n        x1 = points[2][0];\n        y1 = points[2][1];\n\n        if (orient === 'horizontal') {\n          y2 = y1 + labelLineLen;\n          textY = y2 + 5;\n          textAlign = 'center';\n        } else {\n          x2 = x1 + labelLineLen;\n          textX = x2 + 5;\n          textAlign = 'bottom';\n        }\n      } else if (labelPosition === 'leftTop') {\n        x1 = points[0][0];\n        y1 = orient === 'horizontal' ? points[0][1] : points[1][1];\n\n        if (orient === 'horizontal') {\n          y2 = y1 - labelLineLen;\n          textY = y2 - 5;\n          textAlign = 'center';\n        } else {\n          x2 = x1 - labelLineLen;\n          textX = x2 - 5;\n          textAlign = 'right';\n        }\n      } else if (labelPosition === 'leftBottom') {\n        x1 = orient === 'horizontal' ? points[1][0] : points[3][0];\n        y1 = orient === 'horizontal' ? points[1][1] : points[2][1];\n\n        if (orient === 'horizontal') {\n          y2 = y1 + labelLineLen;\n          textY = y2 + 5;\n          textAlign = 'center';\n        } else {\n          x2 = x1 - labelLineLen;\n          textX = x2 - 5;\n          textAlign = 'right';\n        }\n      } else {\n        x1 = (points[1][0] + points[2][0]) / 2;\n        y1 = (points[1][1] + points[2][1]) / 2;\n\n        if (orient === 'horizontal') {\n          y2 = y1 + labelLineLen;\n          textY = y2 + 5;\n          textAlign = 'center';\n        } else {\n          x2 = x1 + labelLineLen;\n          textX = x2 + 5;\n          textAlign = 'left';\n        }\n      }\n\n      if (orient === 'horizontal') {\n        x2 = x1;\n        textX = x2;\n      } else {\n        y2 = y1;\n        textY = y2;\n      }\n\n      linePoints = [[x1, y1], [x2, y2]];\n    }\n\n    layout.label = {\n      linePoints: linePoints,\n      x: textX,\n      y: textY,\n      verticalAlign: 'middle',\n      textAlign: textAlign,\n      inside: isLabelInside\n    };\n  });\n}\n\nexport default function funnelLayout(ecModel, api) {\n  ecModel.eachSeriesByType('funnel', function (seriesModel) {\n    var data = seriesModel.getData();\n    var valueDim = data.mapDimension('value');\n    var sort = seriesModel.get('sort');\n    var viewRect = getViewRect(seriesModel, api);\n    var orient = seriesModel.get('orient');\n    var viewWidth = viewRect.width;\n    var viewHeight = viewRect.height;\n    var indices = getSortedIndices(data, sort);\n    var x = viewRect.x;\n    var y = viewRect.y;\n    var sizeExtent = orient === 'horizontal' ? [parsePercent(seriesModel.get('minSize'), viewHeight), parsePercent(seriesModel.get('maxSize'), viewHeight)] : [parsePercent(seriesModel.get('minSize'), viewWidth), parsePercent(seriesModel.get('maxSize'), viewWidth)];\n    var dataExtent = data.getDataExtent(valueDim);\n    var min = seriesModel.get('min');\n    var max = seriesModel.get('max');\n\n    if (min == null) {\n      min = Math.min(dataExtent[0], 0);\n    }\n\n    if (max == null) {\n      max = dataExtent[1];\n    }\n\n    var funnelAlign = seriesModel.get('funnelAlign');\n    var gap = seriesModel.get('gap');\n    var viewSize = orient === 'horizontal' ? viewWidth : viewHeight;\n    var itemSize = (viewSize - gap * (data.count() - 1)) / data.count();\n\n    var getLinePoints = function (idx, offset) {\n      if (orient === 'horizontal') {\n        var val_1 = data.get(valueDim, idx) || 0;\n        var itemHeight = linearMap(val_1, [min, max], sizeExtent, true);\n        var y0 = void 0;\n\n        switch (funnelAlign) {\n          case 'top':\n            y0 = y;\n            break;\n\n          case 'center':\n            y0 = y + (viewHeight - itemHeight) / 2;\n            break;\n\n          case 'bottom':\n            y0 = y + (viewHeight - itemHeight);\n            break;\n        }\n\n        return [[offset, y0], [offset, y0 + itemHeight]];\n      }\n\n      var val = data.get(valueDim, idx) || 0;\n      var itemWidth = linearMap(val, [min, max], sizeExtent, true);\n      var x0;\n\n      switch (funnelAlign) {\n        case 'left':\n          x0 = x;\n          break;\n\n        case 'center':\n          x0 = x + (viewWidth - itemWidth) / 2;\n          break;\n\n        case 'right':\n          x0 = x + viewWidth - itemWidth;\n          break;\n      }\n\n      return [[x0, offset], [x0 + itemWidth, offset]];\n    };\n\n    if (sort === 'ascending') {\n      itemSize = -itemSize;\n      gap = -gap;\n\n      if (orient === 'horizontal') {\n        x += viewWidth;\n      } else {\n        y += viewHeight;\n      }\n\n      indices = indices.reverse();\n    }\n\n    for (var i = 0; i < indices.length; i++) {\n      var idx = indices[i];\n      var nextIdx = indices[i + 1];\n      var itemModel = data.getItemModel(idx);\n\n      if (orient === 'horizontal') {\n        var width = itemModel.get(['itemStyle', 'width']);\n\n        if (width == null) {\n          width = itemSize;\n        } else {\n          width = parsePercent(width, viewWidth);\n\n          if (sort === 'ascending') {\n            width = -width;\n          }\n        }\n\n        var start = getLinePoints(idx, x);\n        var end = getLinePoints(nextIdx, x + width);\n        x += width + gap;\n        data.setItemLayout(idx, {\n          points: start.concat(end.slice().reverse())\n        });\n      } else {\n        var height = itemModel.get(['itemStyle', 'height']);\n\n        if (height == null) {\n          height = itemSize;\n        } else {\n          height = parsePercent(height, viewHeight);\n\n          if (sort === 'ascending') {\n            height = -height;\n          }\n        }\n\n        var start = getLinePoints(idx, y);\n        var end = getLinePoints(nextIdx, y + height);\n        y += height + gap;\n        data.setItemLayout(idx, {\n          points: start.concat(end.slice().reverse())\n        });\n      }\n    }\n\n    labelLayout(data);\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport FunnelView from './FunnelView';\nimport FunnelSeriesModel from './FunnelSeries';\nimport funnelLayout from './funnelLayout';\nimport dataFilter from '../../processor/dataFilter';\nexport function install(registers) {\n  registers.registerChartView(FunnelView);\n  registers.registerSeriesModel(FunnelSeriesModel);\n  registers.registerLayout(funnelLayout);\n  registers.registerProcessor(dataFilter('funnel'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport ChartView from '../../view/Chart';\nimport { numericToNumber } from '../../util/number';\nimport { eqNaN } from 'zrender/lib/core/util';\nvar DEFAULT_SMOOTH = 0.3;\n\nvar ParallelView = function (_super) {\n  __extends(ParallelView, _super);\n\n  function ParallelView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ParallelView.type;\n    _this._dataGroup = new graphic.Group();\n    _this._initialized = false;\n    return _this;\n  }\n\n  ParallelView.prototype.init = function () {\n    this.group.add(this._dataGroup);\n  };\n\n  ParallelView.prototype.render = function (seriesModel, ecModel, api, payload) {\n    var dataGroup = this._dataGroup;\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var coordSys = seriesModel.coordinateSystem;\n    var dimensions = coordSys.dimensions;\n    var seriesScope = makeSeriesScope(seriesModel);\n    data.diff(oldData).add(add).update(update).remove(remove).execute();\n\n    function add(newDataIndex) {\n      var line = addEl(data, dataGroup, newDataIndex, dimensions, coordSys);\n      updateElCommon(line, data, newDataIndex, seriesScope);\n    }\n\n    function update(newDataIndex, oldDataIndex) {\n      var line = oldData.getItemGraphicEl(oldDataIndex);\n      var points = createLinePoints(data, newDataIndex, dimensions, coordSys);\n      data.setItemGraphicEl(newDataIndex, line);\n      graphic.updateProps(line, {\n        shape: {\n          points: points\n        }\n      }, seriesModel, newDataIndex);\n      updateElCommon(line, data, newDataIndex, seriesScope);\n    }\n\n    function remove(oldDataIndex) {\n      var line = oldData.getItemGraphicEl(oldDataIndex);\n      dataGroup.remove(line);\n    }\n\n    if (!this._initialized) {\n      this._initialized = true;\n      var clipPath = createGridClipShape(coordSys, seriesModel, function () {\n        setTimeout(function () {\n          dataGroup.removeClipPath();\n        });\n      });\n      dataGroup.setClipPath(clipPath);\n    }\n\n    this._data = data;\n  };\n\n  ParallelView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n    this._initialized = true;\n    this._data = null;\n\n    this._dataGroup.removeAll();\n  };\n\n  ParallelView.prototype.incrementalRender = function (taskParams, seriesModel, ecModel) {\n    var data = seriesModel.getData();\n    var coordSys = seriesModel.coordinateSystem;\n    var dimensions = coordSys.dimensions;\n    var seriesScope = makeSeriesScope(seriesModel);\n\n    for (var dataIndex = taskParams.start; dataIndex < taskParams.end; dataIndex++) {\n      var line = addEl(data, this._dataGroup, dataIndex, dimensions, coordSys);\n      line.incremental = true;\n      updateElCommon(line, data, dataIndex, seriesScope);\n    }\n  };\n\n  ParallelView.prototype.remove = function () {\n    this._dataGroup && this._dataGroup.removeAll();\n    this._data = null;\n  };\n\n  ParallelView.type = 'parallel';\n  return ParallelView;\n}(ChartView);\n\nfunction createGridClipShape(coordSys, seriesModel, cb) {\n  var parallelModel = coordSys.model;\n  var rect = coordSys.getRect();\n  var rectEl = new graphic.Rect({\n    shape: {\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height\n    }\n  });\n  var dim = parallelModel.get('layout') === 'horizontal' ? 'width' : 'height';\n  rectEl.setShape(dim, 0);\n  graphic.initProps(rectEl, {\n    shape: {\n      width: rect.width,\n      height: rect.height\n    }\n  }, seriesModel, cb);\n  return rectEl;\n}\n\nfunction createLinePoints(data, dataIndex, dimensions, coordSys) {\n  var points = [];\n\n  for (var i = 0; i < dimensions.length; i++) {\n    var dimName = dimensions[i];\n    var value = data.get(data.mapDimension(dimName), dataIndex);\n\n    if (!isEmptyValue(value, coordSys.getAxis(dimName).type)) {\n      points.push(coordSys.dataToPoint(value, dimName));\n    }\n  }\n\n  return points;\n}\n\nfunction addEl(data, dataGroup, dataIndex, dimensions, coordSys) {\n  var points = createLinePoints(data, dataIndex, dimensions, coordSys);\n  var line = new graphic.Polyline({\n    shape: {\n      points: points\n    },\n    z2: 10\n  });\n  dataGroup.add(line);\n  data.setItemGraphicEl(dataIndex, line);\n  return line;\n}\n\nfunction makeSeriesScope(seriesModel) {\n  var smooth = seriesModel.get('smooth', true);\n  smooth === true && (smooth = DEFAULT_SMOOTH);\n  smooth = numericToNumber(smooth);\n  eqNaN(smooth) && (smooth = 0);\n  return {\n    smooth: smooth\n  };\n}\n\nfunction updateElCommon(el, data, dataIndex, seriesScope) {\n  el.useStyle(data.getItemVisual(dataIndex, 'style'));\n  el.style.fill = null;\n  el.setShape('smooth', seriesScope.smooth);\n  var itemModel = data.getItemModel(dataIndex);\n  var emphasisModel = itemModel.getModel('emphasis');\n  setStatesStylesFromModel(el, itemModel, 'lineStyle');\n  enableHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n}\n\nfunction isEmptyValue(val, axisType) {\n  return axisType === 'category' ? val == null : val == null || isNaN(val);\n}\n\nexport default ParallelView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { each, bind } from 'zrender/lib/core/util';\nimport SeriesModel from '../../model/Series';\nimport createListFromArray from '../helper/createListFromArray';\n\nvar ParallelSeriesModel = function (_super) {\n  __extends(ParallelSeriesModel, _super);\n\n  function ParallelSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ParallelSeriesModel.type;\n    _this.visualStyleAccessPath = 'lineStyle';\n    _this.visualDrawType = 'stroke';\n    return _this;\n  }\n\n  ParallelSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: bind(makeDefaultEncode, null, this)\n    });\n  };\n\n  ParallelSeriesModel.prototype.getRawIndicesByActiveState = function (activeState) {\n    var coordSys = this.coordinateSystem;\n    var data = this.getData();\n    var indices = [];\n    coordSys.eachActiveState(data, function (theActiveState, dataIndex) {\n      if (activeState === theActiveState) {\n        indices.push(data.getRawIndex(dataIndex));\n      }\n    });\n    return indices;\n  };\n\n  ParallelSeriesModel.type = 'series.parallel';\n  ParallelSeriesModel.dependencies = ['parallel'];\n  ParallelSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'parallel',\n    parallelIndex: 0,\n    label: {\n      show: false\n    },\n    inactiveOpacity: 0.05,\n    activeOpacity: 1,\n    lineStyle: {\n      width: 1,\n      opacity: 0.45,\n      type: 'solid'\n    },\n    emphasis: {\n      label: {\n        show: false\n      }\n    },\n    progressive: 500,\n    smooth: false,\n    animationEasing: 'linear'\n  };\n  return ParallelSeriesModel;\n}(SeriesModel);\n\nfunction makeDefaultEncode(seriesModel) {\n  var parallelModel = seriesModel.ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\n\n  if (!parallelModel) {\n    return;\n  }\n\n  var encodeDefine = {};\n  each(parallelModel.dimensions, function (axisDim) {\n    var dataDimIndex = convertDimNameToNumber(axisDim);\n    encodeDefine[axisDim] = dataDimIndex;\n  });\n  return encodeDefine;\n}\n\nfunction convertDimNameToNumber(dimName) {\n  return +dimName.replace('dim', '');\n}\n\nexport default ParallelSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar opacityAccessPath = ['lineStyle', 'opacity'];\nvar parallelVisual = {\n  seriesType: 'parallel',\n  reset: function (seriesModel, ecModel) {\n    var coordSys = seriesModel.coordinateSystem;\n    var opacityMap = {\n      normal: seriesModel.get(['lineStyle', 'opacity']),\n      active: seriesModel.get('activeOpacity'),\n      inactive: seriesModel.get('inactiveOpacity')\n    };\n    return {\n      progress: function (params, data) {\n        coordSys.eachActiveState(data, function (activeState, dataIndex) {\n          var opacity = opacityMap[activeState];\n\n          if (activeState === 'normal' && data.hasItemOption) {\n            var itemOpacity = data.getItemModel(dataIndex).get(opacityAccessPath, true);\n            itemOpacity != null && (opacity = itemOpacity);\n          }\n\n          var existsStyle = data.ensureUniqueItemVisual(dataIndex, 'style');\n          existsStyle.opacity = opacity;\n        }, params.start, params.end);\n      }\n    };\n  }\n};\nexport default parallelVisual;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nexport default function parallelPreprocessor(option) {\n  createParallelIfNeeded(option);\n  mergeAxisOptionFromParallel(option);\n}\n\nfunction createParallelIfNeeded(option) {\n  if (option.parallel) {\n    return;\n  }\n\n  var hasParallelSeries = false;\n  zrUtil.each(option.series, function (seriesOpt) {\n    if (seriesOpt && seriesOpt.type === 'parallel') {\n      hasParallelSeries = true;\n    }\n  });\n\n  if (hasParallelSeries) {\n    option.parallel = [{}];\n  }\n}\n\nfunction mergeAxisOptionFromParallel(option) {\n  var axes = modelUtil.normalizeToArray(option.parallelAxis);\n  zrUtil.each(axes, function (axisOption) {\n    if (!zrUtil.isObject(axisOption)) {\n      return;\n    }\n\n    var parallelIndex = axisOption.parallelIndex || 0;\n    var parallelOption = modelUtil.normalizeToArray(option.parallel)[parallelIndex];\n\n    if (parallelOption && parallelOption.parallelAxisDefault) {\n      zrUtil.merge(axisOption, parallelOption.parallelAxisDefault, false);\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component';\nimport { each, bind, extend } from 'zrender/lib/core/util';\nimport { createOrUpdate } from '../../util/throttle';\nvar CLICK_THRESHOLD = 5;\n\nvar ParallelView = function (_super) {\n  __extends(ParallelView, _super);\n\n  function ParallelView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ParallelView.type;\n    return _this;\n  }\n\n  ParallelView.prototype.render = function (parallelModel, ecModel, api) {\n    this._model = parallelModel;\n    this._api = api;\n\n    if (!this._handlers) {\n      this._handlers = {};\n      each(handlers, function (handler, eventName) {\n        api.getZr().on(eventName, this._handlers[eventName] = bind(handler, this));\n      }, this);\n    }\n\n    createOrUpdate(this, '_throttledDispatchExpand', parallelModel.get('axisExpandRate'), 'fixRate');\n  };\n\n  ParallelView.prototype.dispose = function (ecModel, api) {\n    each(this._handlers, function (handler, eventName) {\n      api.getZr().off(eventName, handler);\n    });\n    this._handlers = null;\n  };\n\n  ParallelView.prototype._throttledDispatchExpand = function (opt) {\n    this._dispatchExpand(opt);\n  };\n\n  ParallelView.prototype._dispatchExpand = function (opt) {\n    opt && this._api.dispatchAction(extend({\n      type: 'parallelAxisExpand'\n    }, opt));\n  };\n\n  ParallelView.type = 'parallel';\n  return ParallelView;\n}(ComponentView);\n\nvar handlers = {\n  mousedown: function (e) {\n    if (checkTrigger(this, 'click')) {\n      this._mouseDownPoint = [e.offsetX, e.offsetY];\n    }\n  },\n  mouseup: function (e) {\n    var mouseDownPoint = this._mouseDownPoint;\n\n    if (checkTrigger(this, 'click') && mouseDownPoint) {\n      var point = [e.offsetX, e.offsetY];\n      var dist = Math.pow(mouseDownPoint[0] - point[0], 2) + Math.pow(mouseDownPoint[1] - point[1], 2);\n\n      if (dist > CLICK_THRESHOLD) {\n        return;\n      }\n\n      var result = this._model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX, e.offsetY]);\n\n      result.behavior !== 'none' && this._dispatchExpand({\n        axisExpandWindow: result.axisExpandWindow\n      });\n    }\n\n    this._mouseDownPoint = null;\n  },\n  mousemove: function (e) {\n    if (this._mouseDownPoint || !checkTrigger(this, 'mousemove')) {\n      return;\n    }\n\n    var model = this._model;\n    var result = model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX, e.offsetY]);\n    var behavior = result.behavior;\n    behavior === 'jump' && this._throttledDispatchExpand.debounceNextCall(model.get('axisExpandDebounce'));\n\n    this._throttledDispatchExpand(behavior === 'none' ? null : {\n      axisExpandWindow: result.axisExpandWindow,\n      animation: behavior === 'jump' ? null : {\n        duration: 0\n      }\n    });\n  }\n};\n\nfunction checkTrigger(view, triggerOn) {\n  var model = view._model;\n  return model.get('axisExpandable') && model.get('axisExpandTriggerOn') === triggerOn;\n}\n\nexport default ParallelView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\n\nvar ParallelModel = function (_super) {\n  __extends(ParallelModel, _super);\n\n  function ParallelModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ParallelModel.type;\n    return _this;\n  }\n\n  ParallelModel.prototype.init = function () {\n    _super.prototype.init.apply(this, arguments);\n\n    this.mergeOption({});\n  };\n\n  ParallelModel.prototype.mergeOption = function (newOption) {\n    var thisOption = this.option;\n    newOption && zrUtil.merge(thisOption, newOption, true);\n\n    this._initDimensions();\n  };\n\n  ParallelModel.prototype.contains = function (model, ecModel) {\n    var parallelIndex = model.get('parallelIndex');\n    return parallelIndex != null && ecModel.getComponent('parallel', parallelIndex) === this;\n  };\n\n  ParallelModel.prototype.setAxisExpand = function (opt) {\n    zrUtil.each(['axisExpandable', 'axisExpandCenter', 'axisExpandCount', 'axisExpandWidth', 'axisExpandWindow'], function (name) {\n      if (opt.hasOwnProperty(name)) {\n        this.option[name] = opt[name];\n      }\n    }, this);\n  };\n\n  ParallelModel.prototype._initDimensions = function () {\n    var dimensions = this.dimensions = [];\n    var parallelAxisIndex = this.parallelAxisIndex = [];\n    var axisModels = zrUtil.filter(this.ecModel.queryComponents({\n      mainType: 'parallelAxis'\n    }), function (axisModel) {\n      return (axisModel.get('parallelIndex') || 0) === this.componentIndex;\n    }, this);\n    zrUtil.each(axisModels, function (axisModel) {\n      dimensions.push('dim' + axisModel.get('dim'));\n      parallelAxisIndex.push(axisModel.componentIndex);\n    });\n  };\n\n  ParallelModel.type = 'parallel';\n  ParallelModel.dependencies = ['parallelAxis'];\n  ParallelModel.layoutMode = 'box';\n  ParallelModel.defaultOption = {\n    zlevel: 0,\n    z: 0,\n    left: 80,\n    top: 60,\n    right: 80,\n    bottom: 60,\n    layout: 'horizontal',\n    axisExpandable: false,\n    axisExpandCenter: null,\n    axisExpandCount: 0,\n    axisExpandWidth: 50,\n    axisExpandRate: 17,\n    axisExpandDebounce: 50,\n    axisExpandSlideTriggerArea: [-0.15, 0.05, 0.4],\n    axisExpandTriggerOn: 'click',\n    parallelAxisDefault: null\n  };\n  return ParallelModel;\n}(ComponentModel);\n\nexport default ParallelModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis';\n\nvar ParallelAxis = function (_super) {\n  __extends(ParallelAxis, _super);\n\n  function ParallelAxis(dim, scale, coordExtent, axisType, axisIndex) {\n    var _this = _super.call(this, dim, scale, coordExtent) || this;\n\n    _this.type = axisType || 'value';\n    _this.axisIndex = axisIndex;\n    return _this;\n  }\n\n  ParallelAxis.prototype.isHorizontal = function () {\n    return this.coordinateSystem.getModel().get('layout') !== 'horizontal';\n  };\n\n  return ParallelAxis;\n}(Axis);\n\nexport default ParallelAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function sliderMove(delta, handleEnds, extent, handleIndex, minSpan, maxSpan) {\n  delta = delta || 0;\n  var extentSpan = extent[1] - extent[0];\n\n  if (minSpan != null) {\n    minSpan = restrict(minSpan, [0, extentSpan]);\n  }\n\n  if (maxSpan != null) {\n    maxSpan = Math.max(maxSpan, minSpan != null ? minSpan : 0);\n  }\n\n  if (handleIndex === 'all') {\n    var handleSpan = Math.abs(handleEnds[1] - handleEnds[0]);\n    handleSpan = restrict(handleSpan, [0, extentSpan]);\n    minSpan = maxSpan = restrict(handleSpan, [minSpan, maxSpan]);\n    handleIndex = 0;\n  }\n\n  handleEnds[0] = restrict(handleEnds[0], extent);\n  handleEnds[1] = restrict(handleEnds[1], extent);\n  var originalDistSign = getSpanSign(handleEnds, handleIndex);\n  handleEnds[handleIndex] += delta;\n  var extentMinSpan = minSpan || 0;\n  var realExtent = extent.slice();\n  originalDistSign.sign < 0 ? realExtent[0] += extentMinSpan : realExtent[1] -= extentMinSpan;\n  handleEnds[handleIndex] = restrict(handleEnds[handleIndex], realExtent);\n  var currDistSign;\n  currDistSign = getSpanSign(handleEnds, handleIndex);\n\n  if (minSpan != null && (currDistSign.sign !== originalDistSign.sign || currDistSign.span < minSpan)) {\n    handleEnds[1 - handleIndex] = handleEnds[handleIndex] + originalDistSign.sign * minSpan;\n  }\n\n  currDistSign = getSpanSign(handleEnds, handleIndex);\n\n  if (maxSpan != null && currDistSign.span > maxSpan) {\n    handleEnds[1 - handleIndex] = handleEnds[handleIndex] + currDistSign.sign * maxSpan;\n  }\n\n  return handleEnds;\n}\n\nfunction getSpanSign(handleEnds, handleIndex) {\n  var dist = handleEnds[handleIndex] - handleEnds[1 - handleIndex];\n  return {\n    span: Math.abs(dist),\n    sign: dist > 0 ? -1 : dist < 0 ? 1 : handleIndex ? -1 : 1\n  };\n}\n\nfunction restrict(value, extend) {\n  return Math.min(extend[1] != null ? extend[1] : Infinity, Math.max(extend[0] != null ? extend[0] : -Infinity, value));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport * as layoutUtil from '../../util/layout';\nimport * as axisHelper from '../../coord/axisHelper';\nimport ParallelAxis from './ParallelAxis';\nimport * as graphic from '../../util/graphic';\nimport * as numberUtil from '../../util/number';\nimport sliderMove from '../../component/helper/sliderMove';\nvar each = zrUtil.each;\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathFloor = Math.floor;\nvar mathCeil = Math.ceil;\nvar round = numberUtil.round;\nvar PI = Math.PI;\n\nvar Parallel = function () {\n  function Parallel(parallelModel, ecModel, api) {\n    this.type = 'parallel';\n    this._axesMap = zrUtil.createHashMap();\n    this._axesLayout = {};\n    this.dimensions = parallelModel.dimensions;\n    this._model = parallelModel;\n\n    this._init(parallelModel, ecModel, api);\n  }\n\n  Parallel.prototype._init = function (parallelModel, ecModel, api) {\n    var dimensions = parallelModel.dimensions;\n    var parallelAxisIndex = parallelModel.parallelAxisIndex;\n    each(dimensions, function (dim, idx) {\n      var axisIndex = parallelAxisIndex[idx];\n      var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\n\n      var axis = this._axesMap.set(dim, new ParallelAxis(dim, axisHelper.createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisIndex));\n\n      var isCategory = axis.type === 'category';\n      axis.onBand = isCategory && axisModel.get('boundaryGap');\n      axis.inverse = axisModel.get('inverse');\n      axisModel.axis = axis;\n      axis.model = axisModel;\n      axis.coordinateSystem = axisModel.coordinateSystem = this;\n    }, this);\n  };\n\n  Parallel.prototype.update = function (ecModel, api) {\n    this._updateAxesFromSeries(this._model, ecModel);\n  };\n\n  Parallel.prototype.containPoint = function (point) {\n    var layoutInfo = this._makeLayoutInfo();\n\n    var axisBase = layoutInfo.axisBase;\n    var layoutBase = layoutInfo.layoutBase;\n    var pixelDimIndex = layoutInfo.pixelDimIndex;\n    var pAxis = point[1 - pixelDimIndex];\n    var pLayout = point[pixelDimIndex];\n    return pAxis >= axisBase && pAxis <= axisBase + layoutInfo.axisLength && pLayout >= layoutBase && pLayout <= layoutBase + layoutInfo.layoutLength;\n  };\n\n  Parallel.prototype.getModel = function () {\n    return this._model;\n  };\n\n  Parallel.prototype._updateAxesFromSeries = function (parallelModel, ecModel) {\n    ecModel.eachSeries(function (seriesModel) {\n      if (!parallelModel.contains(seriesModel, ecModel)) {\n        return;\n      }\n\n      var data = seriesModel.getData();\n      each(this.dimensions, function (dim) {\n        var axis = this._axesMap.get(dim);\n\n        axis.scale.unionExtentFromData(data, data.mapDimension(dim));\n        axisHelper.niceScaleExtent(axis.scale, axis.model);\n      }, this);\n    }, this);\n  };\n\n  Parallel.prototype.resize = function (parallelModel, api) {\n    this._rect = layoutUtil.getLayoutRect(parallelModel.getBoxLayoutParams(), {\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n\n    this._layoutAxes();\n  };\n\n  Parallel.prototype.getRect = function () {\n    return this._rect;\n  };\n\n  Parallel.prototype._makeLayoutInfo = function () {\n    var parallelModel = this._model;\n    var rect = this._rect;\n    var xy = ['x', 'y'];\n    var wh = ['width', 'height'];\n    var layout = parallelModel.get('layout');\n    var pixelDimIndex = layout === 'horizontal' ? 0 : 1;\n    var layoutLength = rect[wh[pixelDimIndex]];\n    var layoutExtent = [0, layoutLength];\n    var axisCount = this.dimensions.length;\n    var axisExpandWidth = restrict(parallelModel.get('axisExpandWidth'), layoutExtent);\n    var axisExpandCount = restrict(parallelModel.get('axisExpandCount') || 0, [0, axisCount]);\n    var axisExpandable = parallelModel.get('axisExpandable') && axisCount > 3 && axisCount > axisExpandCount && axisExpandCount > 1 && axisExpandWidth > 0 && layoutLength > 0;\n    var axisExpandWindow = parallelModel.get('axisExpandWindow');\n    var winSize;\n\n    if (!axisExpandWindow) {\n      winSize = restrict(axisExpandWidth * (axisExpandCount - 1), layoutExtent);\n      var axisExpandCenter = parallelModel.get('axisExpandCenter') || mathFloor(axisCount / 2);\n      axisExpandWindow = [axisExpandWidth * axisExpandCenter - winSize / 2];\n      axisExpandWindow[1] = axisExpandWindow[0] + winSize;\n    } else {\n      winSize = restrict(axisExpandWindow[1] - axisExpandWindow[0], layoutExtent);\n      axisExpandWindow[1] = axisExpandWindow[0] + winSize;\n    }\n\n    var axisCollapseWidth = (layoutLength - winSize) / (axisCount - axisExpandCount);\n    axisCollapseWidth < 3 && (axisCollapseWidth = 0);\n    var winInnerIndices = [mathFloor(round(axisExpandWindow[0] / axisExpandWidth, 1)) + 1, mathCeil(round(axisExpandWindow[1] / axisExpandWidth, 1)) - 1];\n    var axisExpandWindow0Pos = axisCollapseWidth / axisExpandWidth * axisExpandWindow[0];\n    return {\n      layout: layout,\n      pixelDimIndex: pixelDimIndex,\n      layoutBase: rect[xy[pixelDimIndex]],\n      layoutLength: layoutLength,\n      axisBase: rect[xy[1 - pixelDimIndex]],\n      axisLength: rect[wh[1 - pixelDimIndex]],\n      axisExpandable: axisExpandable,\n      axisExpandWidth: axisExpandWidth,\n      axisCollapseWidth: axisCollapseWidth,\n      axisExpandWindow: axisExpandWindow,\n      axisCount: axisCount,\n      winInnerIndices: winInnerIndices,\n      axisExpandWindow0Pos: axisExpandWindow0Pos\n    };\n  };\n\n  Parallel.prototype._layoutAxes = function () {\n    var rect = this._rect;\n    var axes = this._axesMap;\n    var dimensions = this.dimensions;\n\n    var layoutInfo = this._makeLayoutInfo();\n\n    var layout = layoutInfo.layout;\n    axes.each(function (axis) {\n      var axisExtent = [0, layoutInfo.axisLength];\n      var idx = axis.inverse ? 1 : 0;\n      axis.setExtent(axisExtent[idx], axisExtent[1 - idx]);\n    });\n    each(dimensions, function (dim, idx) {\n      var posInfo = (layoutInfo.axisExpandable ? layoutAxisWithExpand : layoutAxisWithoutExpand)(idx, layoutInfo);\n      var positionTable = {\n        horizontal: {\n          x: posInfo.position,\n          y: layoutInfo.axisLength\n        },\n        vertical: {\n          x: 0,\n          y: posInfo.position\n        }\n      };\n      var rotationTable = {\n        horizontal: PI / 2,\n        vertical: 0\n      };\n      var position = [positionTable[layout].x + rect.x, positionTable[layout].y + rect.y];\n      var rotation = rotationTable[layout];\n      var transform = matrix.create();\n      matrix.rotate(transform, transform, rotation);\n      matrix.translate(transform, transform, position);\n      this._axesLayout[dim] = {\n        position: position,\n        rotation: rotation,\n        transform: transform,\n        axisNameAvailableWidth: posInfo.axisNameAvailableWidth,\n        axisLabelShow: posInfo.axisLabelShow,\n        nameTruncateMaxWidth: posInfo.nameTruncateMaxWidth,\n        tickDirection: 1,\n        labelDirection: 1\n      };\n    }, this);\n  };\n\n  Parallel.prototype.getAxis = function (dim) {\n    return this._axesMap.get(dim);\n  };\n\n  Parallel.prototype.dataToPoint = function (value, dim) {\n    return this.axisCoordToPoint(this._axesMap.get(dim).dataToCoord(value), dim);\n  };\n\n  Parallel.prototype.eachActiveState = function (data, callback, start, end) {\n    start == null && (start = 0);\n    end == null && (end = data.count());\n    var axesMap = this._axesMap;\n    var dimensions = this.dimensions;\n    var dataDimensions = [];\n    var axisModels = [];\n    zrUtil.each(dimensions, function (axisDim) {\n      dataDimensions.push(data.mapDimension(axisDim));\n      axisModels.push(axesMap.get(axisDim).model);\n    });\n    var hasActiveSet = this.hasAxisBrushed();\n\n    for (var dataIndex = start; dataIndex < end; dataIndex++) {\n      var activeState = void 0;\n\n      if (!hasActiveSet) {\n        activeState = 'normal';\n      } else {\n        activeState = 'active';\n        var values = data.getValues(dataDimensions, dataIndex);\n\n        for (var j = 0, lenj = dimensions.length; j < lenj; j++) {\n          var state = axisModels[j].getActiveState(values[j]);\n\n          if (state === 'inactive') {\n            activeState = 'inactive';\n            break;\n          }\n        }\n      }\n\n      callback(activeState, dataIndex);\n    }\n  };\n\n  Parallel.prototype.hasAxisBrushed = function () {\n    var dimensions = this.dimensions;\n    var axesMap = this._axesMap;\n    var hasActiveSet = false;\n\n    for (var j = 0, lenj = dimensions.length; j < lenj; j++) {\n      if (axesMap.get(dimensions[j]).model.getActiveState() !== 'normal') {\n        hasActiveSet = true;\n      }\n    }\n\n    return hasActiveSet;\n  };\n\n  Parallel.prototype.axisCoordToPoint = function (coord, dim) {\n    var axisLayout = this._axesLayout[dim];\n    return graphic.applyTransform([coord, 0], axisLayout.transform);\n  };\n\n  Parallel.prototype.getAxisLayout = function (dim) {\n    return zrUtil.clone(this._axesLayout[dim]);\n  };\n\n  Parallel.prototype.getSlidedAxisExpandWindow = function (point) {\n    var layoutInfo = this._makeLayoutInfo();\n\n    var pixelDimIndex = layoutInfo.pixelDimIndex;\n    var axisExpandWindow = layoutInfo.axisExpandWindow.slice();\n    var winSize = axisExpandWindow[1] - axisExpandWindow[0];\n    var extent = [0, layoutInfo.axisExpandWidth * (layoutInfo.axisCount - 1)];\n\n    if (!this.containPoint(point)) {\n      return {\n        behavior: 'none',\n        axisExpandWindow: axisExpandWindow\n      };\n    }\n\n    var pointCoord = point[pixelDimIndex] - layoutInfo.layoutBase - layoutInfo.axisExpandWindow0Pos;\n    var delta;\n    var behavior = 'slide';\n    var axisCollapseWidth = layoutInfo.axisCollapseWidth;\n\n    var triggerArea = this._model.get('axisExpandSlideTriggerArea');\n\n    var useJump = triggerArea[0] != null;\n\n    if (axisCollapseWidth) {\n      if (useJump && axisCollapseWidth && pointCoord < winSize * triggerArea[0]) {\n        behavior = 'jump';\n        delta = pointCoord - winSize * triggerArea[2];\n      } else if (useJump && axisCollapseWidth && pointCoord > winSize * (1 - triggerArea[0])) {\n        behavior = 'jump';\n        delta = pointCoord - winSize * (1 - triggerArea[2]);\n      } else {\n        (delta = pointCoord - winSize * triggerArea[1]) >= 0 && (delta = pointCoord - winSize * (1 - triggerArea[1])) <= 0 && (delta = 0);\n      }\n\n      delta *= layoutInfo.axisExpandWidth / axisCollapseWidth;\n      delta ? sliderMove(delta, axisExpandWindow, extent, 'all') : behavior = 'none';\n    } else {\n      var winSize2 = axisExpandWindow[1] - axisExpandWindow[0];\n      var pos = extent[1] * pointCoord / winSize2;\n      axisExpandWindow = [mathMax(0, pos - winSize2 / 2)];\n      axisExpandWindow[1] = mathMin(extent[1], axisExpandWindow[0] + winSize2);\n      axisExpandWindow[0] = axisExpandWindow[1] - winSize2;\n    }\n\n    return {\n      axisExpandWindow: axisExpandWindow,\n      behavior: behavior\n    };\n  };\n\n  return Parallel;\n}();\n\nfunction restrict(len, extent) {\n  return mathMin(mathMax(len, extent[0]), extent[1]);\n}\n\nfunction layoutAxisWithoutExpand(axisIndex, layoutInfo) {\n  var step = layoutInfo.layoutLength / (layoutInfo.axisCount - 1);\n  return {\n    position: step * axisIndex,\n    axisNameAvailableWidth: step,\n    axisLabelShow: true\n  };\n}\n\nfunction layoutAxisWithExpand(axisIndex, layoutInfo) {\n  var layoutLength = layoutInfo.layoutLength;\n  var axisExpandWidth = layoutInfo.axisExpandWidth;\n  var axisCount = layoutInfo.axisCount;\n  var axisCollapseWidth = layoutInfo.axisCollapseWidth;\n  var winInnerIndices = layoutInfo.winInnerIndices;\n  var position;\n  var axisNameAvailableWidth = axisCollapseWidth;\n  var axisLabelShow = false;\n  var nameTruncateMaxWidth;\n\n  if (axisIndex < winInnerIndices[0]) {\n    position = axisIndex * axisCollapseWidth;\n    nameTruncateMaxWidth = axisCollapseWidth;\n  } else if (axisIndex <= winInnerIndices[1]) {\n    position = layoutInfo.axisExpandWindow0Pos + axisIndex * axisExpandWidth - layoutInfo.axisExpandWindow[0];\n    axisNameAvailableWidth = axisExpandWidth;\n    axisLabelShow = true;\n  } else {\n    position = layoutLength - (axisCount - 1 - axisIndex) * axisCollapseWidth;\n    nameTruncateMaxWidth = axisCollapseWidth;\n  }\n\n  return {\n    position: position,\n    axisNameAvailableWidth: axisNameAvailableWidth,\n    axisLabelShow: axisLabelShow,\n    nameTruncateMaxWidth: nameTruncateMaxWidth\n  };\n}\n\nexport default Parallel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Parallel from './Parallel';\nimport { SINGLE_REFERRING } from '../../util/model';\n\nfunction createParallelCoordSys(ecModel, api) {\n  var coordSysList = [];\n  ecModel.eachComponent('parallel', function (parallelModel, idx) {\n    var coordSys = new Parallel(parallelModel, ecModel, api);\n    coordSys.name = 'parallel_' + idx;\n    coordSys.resize(parallelModel, api);\n    parallelModel.coordinateSystem = coordSys;\n    coordSys.model = parallelModel;\n    coordSysList.push(coordSys);\n  });\n  ecModel.eachSeries(function (seriesModel) {\n    if (seriesModel.get('coordinateSystem') === 'parallel') {\n      var parallelModel = seriesModel.getReferringComponents('parallel', SINGLE_REFERRING).models[0];\n      seriesModel.coordinateSystem = parallelModel.coordinateSystem;\n    }\n  });\n  return coordSysList;\n}\n\nvar parallelCoordSysCreator = {\n  create: createParallelCoordSys\n};\nexport default parallelCoordSysCreator;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\nimport makeStyleMapper from '../../model/mixin/makeStyleMapper';\nimport * as numberUtil from '../../util/number';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin';\n\nvar ParallelAxisModel = function (_super) {\n  __extends(ParallelAxisModel, _super);\n\n  function ParallelAxisModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ParallelAxisModel.type;\n    _this.activeIntervals = [];\n    return _this;\n  }\n\n  ParallelAxisModel.prototype.getAreaSelectStyle = function () {\n    return makeStyleMapper([['fill', 'color'], ['lineWidth', 'borderWidth'], ['stroke', 'borderColor'], ['width', 'width'], ['opacity', 'opacity']])(this.getModel('areaSelectStyle'));\n  };\n\n  ParallelAxisModel.prototype.setActiveIntervals = function (intervals) {\n    var activeIntervals = this.activeIntervals = zrUtil.clone(intervals);\n\n    if (activeIntervals) {\n      for (var i = activeIntervals.length - 1; i >= 0; i--) {\n        numberUtil.asc(activeIntervals[i]);\n      }\n    }\n  };\n\n  ParallelAxisModel.prototype.getActiveState = function (value) {\n    var activeIntervals = this.activeIntervals;\n\n    if (!activeIntervals.length) {\n      return 'normal';\n    }\n\n    if (value == null || isNaN(+value)) {\n      return 'inactive';\n    }\n\n    if (activeIntervals.length === 1) {\n      var interval = activeIntervals[0];\n\n      if (interval[0] <= value && value <= interval[1]) {\n        return 'active';\n      }\n    } else {\n      for (var i = 0, len = activeIntervals.length; i < len; i++) {\n        if (activeIntervals[i][0] <= value && value <= activeIntervals[i][1]) {\n          return 'active';\n        }\n      }\n    }\n\n    return 'inactive';\n  };\n\n  return ParallelAxisModel;\n}(ComponentModel);\n\nzrUtil.mixin(ParallelAxisModel, AxisModelCommonMixin);\nexport default ParallelAxisModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { curry, each, map, bind, merge, clone, defaults, assert } from 'zrender/lib/core/util';\nimport Eventful from 'zrender/lib/core/Eventful';\nimport * as graphic from '../../util/graphic';\nimport * as interactionMutex from './interactionMutex';\nimport DataDiffer from '../../data/DataDiffer';\nvar BRUSH_PANEL_GLOBAL = true;\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathPow = Math.pow;\nvar COVER_Z = 10000;\nvar UNSELECT_THRESHOLD = 6;\nvar MIN_RESIZE_LINE_WIDTH = 6;\nvar MUTEX_RESOURCE_KEY = 'globalPan';\nvar DIRECTION_MAP = {\n  w: [0, 0],\n  e: [0, 1],\n  n: [1, 0],\n  s: [1, 1]\n};\nvar CURSOR_MAP = {\n  w: 'ew',\n  e: 'ew',\n  n: 'ns',\n  s: 'ns',\n  ne: 'nesw',\n  sw: 'nesw',\n  nw: 'nwse',\n  se: 'nwse'\n};\nvar DEFAULT_BRUSH_OPT = {\n  brushStyle: {\n    lineWidth: 2,\n    stroke: 'rgba(210,219,238,0.3)',\n    fill: '#D2DBEE'\n  },\n  transformable: true,\n  brushMode: 'single',\n  removeOnClick: false\n};\nvar baseUID = 0;\n\nvar BrushController = function (_super) {\n  __extends(BrushController, _super);\n\n  function BrushController(zr) {\n    var _this = _super.call(this) || this;\n\n    _this._track = [];\n    _this._covers = [];\n    _this._handlers = {};\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(zr);\n    }\n\n    _this._zr = zr;\n    _this.group = new graphic.Group();\n    _this._uid = 'brushController_' + baseUID++;\n    each(pointerHandlers, function (handler, eventName) {\n      this._handlers[eventName] = bind(handler, this);\n    }, _this);\n    return _this;\n  }\n\n  BrushController.prototype.enableBrush = function (brushOption) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(this._mounted);\n    }\n\n    this._brushType && this._doDisableBrush();\n    brushOption.brushType && this._doEnableBrush(brushOption);\n    return this;\n  };\n\n  BrushController.prototype._doEnableBrush = function (brushOption) {\n    var zr = this._zr;\n\n    if (!this._enableGlobalPan) {\n      interactionMutex.take(zr, MUTEX_RESOURCE_KEY, this._uid);\n    }\n\n    each(this._handlers, function (handler, eventName) {\n      zr.on(eventName, handler);\n    });\n    this._brushType = brushOption.brushType;\n    this._brushOption = merge(clone(DEFAULT_BRUSH_OPT), brushOption, true);\n  };\n\n  BrushController.prototype._doDisableBrush = function () {\n    var zr = this._zr;\n    interactionMutex.release(zr, MUTEX_RESOURCE_KEY, this._uid);\n    each(this._handlers, function (handler, eventName) {\n      zr.off(eventName, handler);\n    });\n    this._brushType = this._brushOption = null;\n  };\n\n  BrushController.prototype.setPanels = function (panelOpts) {\n    if (panelOpts && panelOpts.length) {\n      var panels_1 = this._panels = {};\n      each(panelOpts, function (panelOpts) {\n        panels_1[panelOpts.panelId] = clone(panelOpts);\n      });\n    } else {\n      this._panels = null;\n    }\n\n    return this;\n  };\n\n  BrushController.prototype.mount = function (opt) {\n    opt = opt || {};\n\n    if (process.env.NODE_ENV !== 'production') {\n      this._mounted = true;\n    }\n\n    this._enableGlobalPan = opt.enableGlobalPan;\n    var thisGroup = this.group;\n\n    this._zr.add(thisGroup);\n\n    thisGroup.attr({\n      x: opt.x || 0,\n      y: opt.y || 0,\n      rotation: opt.rotation || 0,\n      scaleX: opt.scaleX || 1,\n      scaleY: opt.scaleY || 1\n    });\n    this._transform = thisGroup.getLocalTransform();\n    return this;\n  };\n\n  BrushController.prototype.updateCovers = function (coverConfigList) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(this._mounted);\n    }\n\n    coverConfigList = map(coverConfigList, function (coverConfig) {\n      return merge(clone(DEFAULT_BRUSH_OPT), coverConfig, true);\n    });\n    var tmpIdPrefix = '\\0-brush-index-';\n    var oldCovers = this._covers;\n    var newCovers = this._covers = [];\n    var controller = this;\n    var creatingCover = this._creatingCover;\n    new DataDiffer(oldCovers, coverConfigList, oldGetKey, getKey).add(addOrUpdate).update(addOrUpdate).remove(remove).execute();\n    return this;\n\n    function getKey(brushOption, index) {\n      return (brushOption.id != null ? brushOption.id : tmpIdPrefix + index) + '-' + brushOption.brushType;\n    }\n\n    function oldGetKey(cover, index) {\n      return getKey(cover.__brushOption, index);\n    }\n\n    function addOrUpdate(newIndex, oldIndex) {\n      var newBrushInternal = coverConfigList[newIndex];\n\n      if (oldIndex != null && oldCovers[oldIndex] === creatingCover) {\n        newCovers[newIndex] = oldCovers[oldIndex];\n      } else {\n        var cover = newCovers[newIndex] = oldIndex != null ? (oldCovers[oldIndex].__brushOption = newBrushInternal, oldCovers[oldIndex]) : endCreating(controller, createCover(controller, newBrushInternal));\n        updateCoverAfterCreation(controller, cover);\n      }\n    }\n\n    function remove(oldIndex) {\n      if (oldCovers[oldIndex] !== creatingCover) {\n        controller.group.remove(oldCovers[oldIndex]);\n      }\n    }\n  };\n\n  BrushController.prototype.unmount = function () {\n    if (process.env.NODE_ENV !== 'production') {\n      if (!this._mounted) {\n        return;\n      }\n    }\n\n    this.enableBrush(false);\n    clearCovers(this);\n\n    this._zr.remove(this.group);\n\n    if (process.env.NODE_ENV !== 'production') {\n      this._mounted = false;\n    }\n\n    return this;\n  };\n\n  BrushController.prototype.dispose = function () {\n    this.unmount();\n    this.off();\n  };\n\n  return BrushController;\n}(Eventful);\n\nfunction createCover(controller, brushOption) {\n  var cover = coverRenderers[brushOption.brushType].createCover(controller, brushOption);\n  cover.__brushOption = brushOption;\n  updateZ(cover, brushOption);\n  controller.group.add(cover);\n  return cover;\n}\n\nfunction endCreating(controller, creatingCover) {\n  var coverRenderer = getCoverRenderer(creatingCover);\n\n  if (coverRenderer.endCreating) {\n    coverRenderer.endCreating(controller, creatingCover);\n    updateZ(creatingCover, creatingCover.__brushOption);\n  }\n\n  return creatingCover;\n}\n\nfunction updateCoverShape(controller, cover) {\n  var brushOption = cover.__brushOption;\n  getCoverRenderer(cover).updateCoverShape(controller, cover, brushOption.range, brushOption);\n}\n\nfunction updateZ(cover, brushOption) {\n  var z = brushOption.z;\n  z == null && (z = COVER_Z);\n  cover.traverse(function (el) {\n    el.z = z;\n    el.z2 = z;\n  });\n}\n\nfunction updateCoverAfterCreation(controller, cover) {\n  getCoverRenderer(cover).updateCommon(controller, cover);\n  updateCoverShape(controller, cover);\n}\n\nfunction getCoverRenderer(cover) {\n  return coverRenderers[cover.__brushOption.brushType];\n}\n\nfunction getPanelByPoint(controller, e, localCursorPoint) {\n  var panels = controller._panels;\n\n  if (!panels) {\n    return BRUSH_PANEL_GLOBAL;\n  }\n\n  var panel;\n  var transform = controller._transform;\n  each(panels, function (pn) {\n    pn.isTargetByCursor(e, localCursorPoint, transform) && (panel = pn);\n  });\n  return panel;\n}\n\nfunction getPanelByCover(controller, cover) {\n  var panels = controller._panels;\n\n  if (!panels) {\n    return BRUSH_PANEL_GLOBAL;\n  }\n\n  var panelId = cover.__brushOption.panelId;\n  return panelId != null ? panels[panelId] : BRUSH_PANEL_GLOBAL;\n}\n\nfunction clearCovers(controller) {\n  var covers = controller._covers;\n  var originalLength = covers.length;\n  each(covers, function (cover) {\n    controller.group.remove(cover);\n  }, controller);\n  covers.length = 0;\n  return !!originalLength;\n}\n\nfunction trigger(controller, opt) {\n  var areas = map(controller._covers, function (cover) {\n    var brushOption = cover.__brushOption;\n    var range = clone(brushOption.range);\n    return {\n      brushType: brushOption.brushType,\n      panelId: brushOption.panelId,\n      range: range\n    };\n  });\n  controller.trigger('brush', {\n    areas: areas,\n    isEnd: !!opt.isEnd,\n    removeOnClick: !!opt.removeOnClick\n  });\n}\n\nfunction shouldShowCover(controller) {\n  var track = controller._track;\n\n  if (!track.length) {\n    return false;\n  }\n\n  var p2 = track[track.length - 1];\n  var p1 = track[0];\n  var dx = p2[0] - p1[0];\n  var dy = p2[1] - p1[1];\n  var dist = mathPow(dx * dx + dy * dy, 0.5);\n  return dist > UNSELECT_THRESHOLD;\n}\n\nfunction getTrackEnds(track) {\n  var tail = track.length - 1;\n  tail < 0 && (tail = 0);\n  return [track[0], track[tail]];\n}\n\n;\n\nfunction createBaseRectCover(rectRangeConverter, controller, brushOption, edgeNameSequences) {\n  var cover = new graphic.Group();\n  cover.add(new graphic.Rect({\n    name: 'main',\n    style: makeStyle(brushOption),\n    silent: true,\n    draggable: true,\n    cursor: 'move',\n    drift: curry(driftRect, rectRangeConverter, controller, cover, ['n', 's', 'w', 'e']),\n    ondragend: curry(trigger, controller, {\n      isEnd: true\n    })\n  }));\n  each(edgeNameSequences, function (nameSequence) {\n    cover.add(new graphic.Rect({\n      name: nameSequence.join(''),\n      style: {\n        opacity: 0\n      },\n      draggable: true,\n      silent: true,\n      invisible: true,\n      drift: curry(driftRect, rectRangeConverter, controller, cover, nameSequence),\n      ondragend: curry(trigger, controller, {\n        isEnd: true\n      })\n    }));\n  });\n  return cover;\n}\n\nfunction updateBaseRect(controller, cover, localRange, brushOption) {\n  var lineWidth = brushOption.brushStyle.lineWidth || 0;\n  var handleSize = mathMax(lineWidth, MIN_RESIZE_LINE_WIDTH);\n  var x = localRange[0][0];\n  var y = localRange[1][0];\n  var xa = x - lineWidth / 2;\n  var ya = y - lineWidth / 2;\n  var x2 = localRange[0][1];\n  var y2 = localRange[1][1];\n  var x2a = x2 - handleSize + lineWidth / 2;\n  var y2a = y2 - handleSize + lineWidth / 2;\n  var width = x2 - x;\n  var height = y2 - y;\n  var widtha = width + lineWidth;\n  var heighta = height + lineWidth;\n  updateRectShape(controller, cover, 'main', x, y, width, height);\n\n  if (brushOption.transformable) {\n    updateRectShape(controller, cover, 'w', xa, ya, handleSize, heighta);\n    updateRectShape(controller, cover, 'e', x2a, ya, handleSize, heighta);\n    updateRectShape(controller, cover, 'n', xa, ya, widtha, handleSize);\n    updateRectShape(controller, cover, 's', xa, y2a, widtha, handleSize);\n    updateRectShape(controller, cover, 'nw', xa, ya, handleSize, handleSize);\n    updateRectShape(controller, cover, 'ne', x2a, ya, handleSize, handleSize);\n    updateRectShape(controller, cover, 'sw', xa, y2a, handleSize, handleSize);\n    updateRectShape(controller, cover, 'se', x2a, y2a, handleSize, handleSize);\n  }\n}\n\nfunction updateCommon(controller, cover) {\n  var brushOption = cover.__brushOption;\n  var transformable = brushOption.transformable;\n  var mainEl = cover.childAt(0);\n  mainEl.useStyle(makeStyle(brushOption));\n  mainEl.attr({\n    silent: !transformable,\n    cursor: transformable ? 'move' : 'default'\n  });\n  each([['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w']], function (nameSequence) {\n    var el = cover.childOfName(nameSequence.join(''));\n    var globalDir = nameSequence.length === 1 ? getGlobalDirection1(controller, nameSequence[0]) : getGlobalDirection2(controller, nameSequence);\n    el && el.attr({\n      silent: !transformable,\n      invisible: !transformable,\n      cursor: transformable ? CURSOR_MAP[globalDir] + '-resize' : null\n    });\n  });\n}\n\nfunction updateRectShape(controller, cover, name, x, y, w, h) {\n  var el = cover.childOfName(name);\n  el && el.setShape(pointsToRect(clipByPanel(controller, cover, [[x, y], [x + w, y + h]])));\n}\n\nfunction makeStyle(brushOption) {\n  return defaults({\n    strokeNoScale: true\n  }, brushOption.brushStyle);\n}\n\nfunction formatRectRange(x, y, x2, y2) {\n  var min = [mathMin(x, x2), mathMin(y, y2)];\n  var max = [mathMax(x, x2), mathMax(y, y2)];\n  return [[min[0], max[0]], [min[1], max[1]]];\n}\n\nfunction getTransform(controller) {\n  return graphic.getTransform(controller.group);\n}\n\nfunction getGlobalDirection1(controller, localDirName) {\n  var map = {\n    w: 'left',\n    e: 'right',\n    n: 'top',\n    s: 'bottom'\n  };\n  var inverseMap = {\n    left: 'w',\n    right: 'e',\n    top: 'n',\n    bottom: 's'\n  };\n  var dir = graphic.transformDirection(map[localDirName], getTransform(controller));\n  return inverseMap[dir];\n}\n\nfunction getGlobalDirection2(controller, localDirNameSeq) {\n  var globalDir = [getGlobalDirection1(controller, localDirNameSeq[0]), getGlobalDirection1(controller, localDirNameSeq[1])];\n  (globalDir[0] === 'e' || globalDir[0] === 'w') && globalDir.reverse();\n  return globalDir.join('');\n}\n\nfunction driftRect(rectRangeConverter, controller, cover, dirNameSequence, dx, dy) {\n  var brushOption = cover.__brushOption;\n  var rectRange = rectRangeConverter.toRectRange(brushOption.range);\n  var localDelta = toLocalDelta(controller, dx, dy);\n  each(dirNameSequence, function (dirName) {\n    var ind = DIRECTION_MAP[dirName];\n    rectRange[ind[0]][ind[1]] += localDelta[ind[0]];\n  });\n  brushOption.range = rectRangeConverter.fromRectRange(formatRectRange(rectRange[0][0], rectRange[1][0], rectRange[0][1], rectRange[1][1]));\n  updateCoverAfterCreation(controller, cover);\n  trigger(controller, {\n    isEnd: false\n  });\n}\n\nfunction driftPolygon(controller, cover, dx, dy) {\n  var range = cover.__brushOption.range;\n  var localDelta = toLocalDelta(controller, dx, dy);\n  each(range, function (point) {\n    point[0] += localDelta[0];\n    point[1] += localDelta[1];\n  });\n  updateCoverAfterCreation(controller, cover);\n  trigger(controller, {\n    isEnd: false\n  });\n}\n\nfunction toLocalDelta(controller, dx, dy) {\n  var thisGroup = controller.group;\n  var localD = thisGroup.transformCoordToLocal(dx, dy);\n  var localZero = thisGroup.transformCoordToLocal(0, 0);\n  return [localD[0] - localZero[0], localD[1] - localZero[1]];\n}\n\nfunction clipByPanel(controller, cover, data) {\n  var panel = getPanelByCover(controller, cover);\n  return panel && panel !== BRUSH_PANEL_GLOBAL ? panel.clipPath(data, controller._transform) : clone(data);\n}\n\nfunction pointsToRect(points) {\n  var xmin = mathMin(points[0][0], points[1][0]);\n  var ymin = mathMin(points[0][1], points[1][1]);\n  var xmax = mathMax(points[0][0], points[1][0]);\n  var ymax = mathMax(points[0][1], points[1][1]);\n  return {\n    x: xmin,\n    y: ymin,\n    width: xmax - xmin,\n    height: ymax - ymin\n  };\n}\n\nfunction resetCursor(controller, e, localCursorPoint) {\n  if (!controller._brushType || isOutsideZrArea(controller, e.offsetX, e.offsetY)) {\n    return;\n  }\n\n  var zr = controller._zr;\n  var covers = controller._covers;\n  var currPanel = getPanelByPoint(controller, e, localCursorPoint);\n\n  if (!controller._dragging) {\n    for (var i = 0; i < covers.length; i++) {\n      var brushOption = covers[i].__brushOption;\n\n      if (currPanel && (currPanel === BRUSH_PANEL_GLOBAL || brushOption.panelId === currPanel.panelId) && coverRenderers[brushOption.brushType].contain(covers[i], localCursorPoint[0], localCursorPoint[1])) {\n        return;\n      }\n    }\n  }\n\n  currPanel && zr.setCursorStyle('crosshair');\n}\n\nfunction preventDefault(e) {\n  var rawE = e.event;\n  rawE.preventDefault && rawE.preventDefault();\n}\n\nfunction mainShapeContain(cover, x, y) {\n  return cover.childOfName('main').contain(x, y);\n}\n\nfunction updateCoverByMouse(controller, e, localCursorPoint, isEnd) {\n  var creatingCover = controller._creatingCover;\n  var panel = controller._creatingPanel;\n  var thisBrushOption = controller._brushOption;\n  var eventParams;\n\n  controller._track.push(localCursorPoint.slice());\n\n  if (shouldShowCover(controller) || creatingCover) {\n    if (panel && !creatingCover) {\n      thisBrushOption.brushMode === 'single' && clearCovers(controller);\n      var brushOption = clone(thisBrushOption);\n      brushOption.brushType = determineBrushType(brushOption.brushType, panel);\n      brushOption.panelId = panel === BRUSH_PANEL_GLOBAL ? null : panel.panelId;\n      creatingCover = controller._creatingCover = createCover(controller, brushOption);\n\n      controller._covers.push(creatingCover);\n    }\n\n    if (creatingCover) {\n      var coverRenderer = coverRenderers[determineBrushType(controller._brushType, panel)];\n      var coverBrushOption = creatingCover.__brushOption;\n      coverBrushOption.range = coverRenderer.getCreatingRange(clipByPanel(controller, creatingCover, controller._track));\n\n      if (isEnd) {\n        endCreating(controller, creatingCover);\n        coverRenderer.updateCommon(controller, creatingCover);\n      }\n\n      updateCoverShape(controller, creatingCover);\n      eventParams = {\n        isEnd: isEnd\n      };\n    }\n  } else if (isEnd && thisBrushOption.brushMode === 'single' && thisBrushOption.removeOnClick) {\n    if (getPanelByPoint(controller, e, localCursorPoint) && clearCovers(controller)) {\n      eventParams = {\n        isEnd: isEnd,\n        removeOnClick: true\n      };\n    }\n  }\n\n  return eventParams;\n}\n\nfunction determineBrushType(brushType, panel) {\n  if (brushType === 'auto') {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(panel && panel.defaultBrushType, 'MUST have defaultBrushType when brushType is \"atuo\"');\n    }\n\n    return panel.defaultBrushType;\n  }\n\n  return brushType;\n}\n\nvar pointerHandlers = {\n  mousedown: function (e) {\n    if (this._dragging) {\n      handleDragEnd(this, e);\n    } else if (!e.target || !e.target.draggable) {\n      preventDefault(e);\n      var localCursorPoint = this.group.transformCoordToLocal(e.offsetX, e.offsetY);\n      this._creatingCover = null;\n      var panel = this._creatingPanel = getPanelByPoint(this, e, localCursorPoint);\n\n      if (panel) {\n        this._dragging = true;\n        this._track = [localCursorPoint.slice()];\n      }\n    }\n  },\n  mousemove: function (e) {\n    var x = e.offsetX;\n    var y = e.offsetY;\n    var localCursorPoint = this.group.transformCoordToLocal(x, y);\n    resetCursor(this, e, localCursorPoint);\n\n    if (this._dragging) {\n      preventDefault(e);\n      var eventParams = updateCoverByMouse(this, e, localCursorPoint, false);\n      eventParams && trigger(this, eventParams);\n    }\n  },\n  mouseup: function (e) {\n    handleDragEnd(this, e);\n  }\n};\n\nfunction handleDragEnd(controller, e) {\n  if (controller._dragging) {\n    preventDefault(e);\n    var x = e.offsetX;\n    var y = e.offsetY;\n    var localCursorPoint = controller.group.transformCoordToLocal(x, y);\n    var eventParams = updateCoverByMouse(controller, e, localCursorPoint, true);\n    controller._dragging = false;\n    controller._track = [];\n    controller._creatingCover = null;\n    eventParams && trigger(controller, eventParams);\n  }\n}\n\nfunction isOutsideZrArea(controller, x, y) {\n  var zr = controller._zr;\n  return x < 0 || x > zr.getWidth() || y < 0 || y > zr.getHeight();\n}\n\nvar coverRenderers = {\n  lineX: getLineRenderer(0),\n  lineY: getLineRenderer(1),\n  rect: {\n    createCover: function (controller, brushOption) {\n      function returnInput(range) {\n        return range;\n      }\n\n      return createBaseRectCover({\n        toRectRange: returnInput,\n        fromRectRange: returnInput\n      }, controller, brushOption, [['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w']]);\n    },\n    getCreatingRange: function (localTrack) {\n      var ends = getTrackEnds(localTrack);\n      return formatRectRange(ends[1][0], ends[1][1], ends[0][0], ends[0][1]);\n    },\n    updateCoverShape: function (controller, cover, localRange, brushOption) {\n      updateBaseRect(controller, cover, localRange, brushOption);\n    },\n    updateCommon: updateCommon,\n    contain: mainShapeContain\n  },\n  polygon: {\n    createCover: function (controller, brushOption) {\n      var cover = new graphic.Group();\n      cover.add(new graphic.Polyline({\n        name: 'main',\n        style: makeStyle(brushOption),\n        silent: true\n      }));\n      return cover;\n    },\n    getCreatingRange: function (localTrack) {\n      return localTrack;\n    },\n    endCreating: function (controller, cover) {\n      cover.remove(cover.childAt(0));\n      cover.add(new graphic.Polygon({\n        name: 'main',\n        draggable: true,\n        drift: curry(driftPolygon, controller, cover),\n        ondragend: curry(trigger, controller, {\n          isEnd: true\n        })\n      }));\n    },\n    updateCoverShape: function (controller, cover, localRange, brushOption) {\n      cover.childAt(0).setShape({\n        points: clipByPanel(controller, cover, localRange)\n      });\n    },\n    updateCommon: updateCommon,\n    contain: mainShapeContain\n  }\n};\n\nfunction getLineRenderer(xyIndex) {\n  return {\n    createCover: function (controller, brushOption) {\n      return createBaseRectCover({\n        toRectRange: function (range) {\n          var rectRange = [range, [0, 100]];\n          xyIndex && rectRange.reverse();\n          return rectRange;\n        },\n        fromRectRange: function (rectRange) {\n          return rectRange[xyIndex];\n        }\n      }, controller, brushOption, [[['w'], ['e']], [['n'], ['s']]][xyIndex]);\n    },\n    getCreatingRange: function (localTrack) {\n      var ends = getTrackEnds(localTrack);\n      var min = mathMin(ends[0][xyIndex], ends[1][xyIndex]);\n      var max = mathMax(ends[0][xyIndex], ends[1][xyIndex]);\n      return [min, max];\n    },\n    updateCoverShape: function (controller, cover, localRange, brushOption) {\n      var otherExtent;\n      var panel = getPanelByCover(controller, cover);\n\n      if (panel !== BRUSH_PANEL_GLOBAL && panel.getLinearBrushOtherExtent) {\n        otherExtent = panel.getLinearBrushOtherExtent(xyIndex);\n      } else {\n        var zr = controller._zr;\n        otherExtent = [0, [zr.getWidth(), zr.getHeight()][1 - xyIndex]];\n      }\n\n      var rectRange = [localRange, otherExtent];\n      xyIndex && rectRange.reverse();\n      updateBaseRect(controller, cover, rectRange, brushOption);\n    },\n    updateCommon: updateCommon,\n    contain: mainShapeContain\n  };\n}\n\nexport default BrushController;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { onIrrelevantElement } from './cursorHelper';\nimport * as graphicUtil from '../../util/graphic';\nexport function makeRectPanelClipPath(rect) {\n  rect = normalizeRect(rect);\n  return function (localPoints) {\n    return graphicUtil.clipPointsByRect(localPoints, rect);\n  };\n}\nexport function makeLinearBrushOtherExtent(rect, specifiedXYIndex) {\n  rect = normalizeRect(rect);\n  return function (xyIndex) {\n    var idx = specifiedXYIndex != null ? specifiedXYIndex : xyIndex;\n    var brushWidth = idx ? rect.width : rect.height;\n    var base = idx ? rect.x : rect.y;\n    return [base, base + (brushWidth || 0)];\n  };\n}\nexport function makeRectIsTargetByCursor(rect, api, targetModel) {\n  var boundingRect = normalizeRect(rect);\n  return function (e, localCursorPoint) {\n    return boundingRect.contain(localCursorPoint[0], localCursorPoint[1]) && !onIrrelevantElement(e, api, targetModel);\n  };\n}\n\nfunction normalizeRect(rect) {\n  return BoundingRect.create(rect);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport AxisBuilder from './AxisBuilder';\nimport BrushController from '../helper/BrushController';\nimport * as brushHelper from '../helper/brushHelper';\nimport * as graphic from '../../util/graphic';\nimport ComponentView from '../../view/Component';\nvar elementList = ['axisLine', 'axisTickLabel', 'axisName'];\n\nvar ParallelAxisView = function (_super) {\n  __extends(ParallelAxisView, _super);\n\n  function ParallelAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ParallelAxisView.type;\n    return _this;\n  }\n\n  ParallelAxisView.prototype.init = function (ecModel, api) {\n    _super.prototype.init.apply(this, arguments);\n\n    (this._brushController = new BrushController(api.getZr())).on('brush', zrUtil.bind(this._onBrush, this));\n  };\n\n  ParallelAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n    if (fromAxisAreaSelect(axisModel, ecModel, payload)) {\n      return;\n    }\n\n    this.axisModel = axisModel;\n    this.api = api;\n    this.group.removeAll();\n    var oldAxisGroup = this._axisGroup;\n    this._axisGroup = new graphic.Group();\n    this.group.add(this._axisGroup);\n\n    if (!axisModel.get('show')) {\n      return;\n    }\n\n    var coordSysModel = getCoordSysModel(axisModel, ecModel);\n    var coordSys = coordSysModel.coordinateSystem;\n    var areaSelectStyle = axisModel.getAreaSelectStyle();\n    var areaWidth = areaSelectStyle.width;\n    var dim = axisModel.axis.dim;\n    var axisLayout = coordSys.getAxisLayout(dim);\n    var builderOpt = zrUtil.extend({\n      strokeContainThreshold: areaWidth\n    }, axisLayout);\n    var axisBuilder = new AxisBuilder(axisModel, builderOpt);\n    zrUtil.each(elementList, axisBuilder.add, axisBuilder);\n\n    this._axisGroup.add(axisBuilder.getGroup());\n\n    this._refreshBrushController(builderOpt, areaSelectStyle, axisModel, coordSysModel, areaWidth, api);\n\n    graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel);\n  };\n\n  ParallelAxisView.prototype._refreshBrushController = function (builderOpt, areaSelectStyle, axisModel, coordSysModel, areaWidth, api) {\n    var extent = axisModel.axis.getExtent();\n    var extentLen = extent[1] - extent[0];\n    var extra = Math.min(30, Math.abs(extentLen) * 0.1);\n    var rect = graphic.BoundingRect.create({\n      x: extent[0],\n      y: -areaWidth / 2,\n      width: extentLen,\n      height: areaWidth\n    });\n    rect.x -= extra;\n    rect.width += 2 * extra;\n\n    this._brushController.mount({\n      enableGlobalPan: true,\n      rotation: builderOpt.rotation,\n      x: builderOpt.position[0],\n      y: builderOpt.position[1]\n    }).setPanels([{\n      panelId: 'pl',\n      clipPath: brushHelper.makeRectPanelClipPath(rect),\n      isTargetByCursor: brushHelper.makeRectIsTargetByCursor(rect, api, coordSysModel),\n      getLinearBrushOtherExtent: brushHelper.makeLinearBrushOtherExtent(rect, 0)\n    }]).enableBrush({\n      brushType: 'lineX',\n      brushStyle: areaSelectStyle,\n      removeOnClick: true\n    }).updateCovers(getCoverInfoList(axisModel));\n  };\n\n  ParallelAxisView.prototype._onBrush = function (eventParam) {\n    var coverInfoList = eventParam.areas;\n    var axisModel = this.axisModel;\n    var axis = axisModel.axis;\n    var intervals = zrUtil.map(coverInfoList, function (coverInfo) {\n      return [axis.coordToData(coverInfo.range[0], true), axis.coordToData(coverInfo.range[1], true)];\n    });\n\n    if (!axisModel.option.realtime === eventParam.isEnd || eventParam.removeOnClick) {\n      this.api.dispatchAction({\n        type: 'axisAreaSelect',\n        parallelAxisId: axisModel.id,\n        intervals: intervals\n      });\n    }\n  };\n\n  ParallelAxisView.prototype.dispose = function () {\n    this._brushController.dispose();\n  };\n\n  ParallelAxisView.type = 'parallelAxis';\n  return ParallelAxisView;\n}(ComponentView);\n\nfunction fromAxisAreaSelect(axisModel, ecModel, payload) {\n  return payload && payload.type === 'axisAreaSelect' && ecModel.findComponents({\n    mainType: 'parallelAxis',\n    query: payload\n  })[0] === axisModel;\n}\n\nfunction getCoverInfoList(axisModel) {\n  var axis = axisModel.axis;\n  return zrUtil.map(axisModel.activeIntervals, function (interval) {\n    return {\n      brushType: 'lineX',\n      panelId: 'pl',\n      range: [axis.dataToCoord(interval[0], true), axis.dataToCoord(interval[1], true)]\n    };\n  });\n}\n\nfunction getCoordSysModel(axisModel, ecModel) {\n  return ecModel.getComponent('parallel', axisModel.get('parallelIndex'));\n}\n\nexport default ParallelAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar actionInfo = {\n  type: 'axisAreaSelect',\n  event: 'axisAreaSelected'\n};\nexport function installParallelActions(registers) {\n  registers.registerAction(actionInfo, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'parallelAxis',\n      query: payload\n    }, function (parallelAxisModel) {\n      parallelAxisModel.axis.model.setActiveIntervals(payload.intervals);\n    });\n  });\n  registers.registerAction('parallelAxisExpand', function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'parallel',\n      query: payload\n    }, function (parallelModel) {\n      parallelModel.setAxisExpand(payload);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport parallelPreprocessor from '../../coord/parallel/parallelPreprocessor';\nimport ParallelView from './ParallelView';\nimport ParallelModel from '../../coord/parallel/ParallelModel';\nimport parallelCoordSysCreator from '../../coord/parallel/parallelCreator';\nimport axisModelCreator from '../../coord/axisModelCreator';\nimport ParallelAxisModel from '../../coord/parallel/AxisModel';\nimport ParallelAxisView from '../axis/ParallelAxisView';\nimport { installParallelActions } from '../axis/parallelAxisAction';\nvar defaultAxisOption = {\n  type: 'value',\n  areaSelectStyle: {\n    width: 20,\n    borderWidth: 1,\n    borderColor: 'rgba(160,197,232)',\n    color: 'rgba(160,197,232)',\n    opacity: 0.3\n  },\n  realtime: true,\n  z: 10\n};\nexport function install(registers) {\n  registers.registerComponentView(ParallelView);\n  registers.registerComponentModel(ParallelModel);\n  registers.registerCoordinateSystem('parallel', parallelCoordSysCreator);\n  registers.registerPreprocessor(parallelPreprocessor);\n  registers.registerComponentModel(ParallelAxisModel);\n  registers.registerComponentView(ParallelAxisView);\n  axisModelCreator(registers, 'parallel', ParallelAxisModel, defaultAxisOption);\n  installParallelActions(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport ParallelView from './ParallelView';\nimport ParallelSeriesModel from './ParallelSeries';\nimport parallelVisual from './parallelVisual';\nimport { install as installParallelComponent } from '../../component/parallel/install';\nexport function install(registers) {\n  use(installParallelComponent);\n  registers.registerChartView(ParallelView);\n  registers.registerSeriesModel(ParallelSeriesModel);\n  registers.registerVisual(registers.PRIORITY.VISUAL.BRUSH, parallelVisual);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { enterEmphasis, leaveEmphasis, enableHoverEmphasis, setStatesStylesFromModel } from '../../util/states';\nimport ChartView from '../../view/Chart';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { getECData } from '../../util/innerStore';\n\nvar SankeyPathShape = function () {\n  function SankeyPathShape() {\n    this.x1 = 0;\n    this.y1 = 0;\n    this.x2 = 0;\n    this.y2 = 0;\n    this.cpx1 = 0;\n    this.cpy1 = 0;\n    this.cpx2 = 0;\n    this.cpy2 = 0;\n    this.extent = 0;\n  }\n\n  return SankeyPathShape;\n}();\n\nvar SankeyPath = function (_super) {\n  __extends(SankeyPath, _super);\n\n  function SankeyPath(opts) {\n    return _super.call(this, opts) || this;\n  }\n\n  SankeyPath.prototype.getDefaultShape = function () {\n    return new SankeyPathShape();\n  };\n\n  SankeyPath.prototype.buildPath = function (ctx, shape) {\n    var extent = shape.extent;\n    ctx.moveTo(shape.x1, shape.y1);\n    ctx.bezierCurveTo(shape.cpx1, shape.cpy1, shape.cpx2, shape.cpy2, shape.x2, shape.y2);\n\n    if (shape.orient === 'vertical') {\n      ctx.lineTo(shape.x2 + extent, shape.y2);\n      ctx.bezierCurveTo(shape.cpx2 + extent, shape.cpy2, shape.cpx1 + extent, shape.cpy1, shape.x1 + extent, shape.y1);\n    } else {\n      ctx.lineTo(shape.x2, shape.y2 + extent);\n      ctx.bezierCurveTo(shape.cpx2, shape.cpy2 + extent, shape.cpx1, shape.cpy1 + extent, shape.x1, shape.y1 + extent);\n    }\n\n    ctx.closePath();\n  };\n\n  SankeyPath.prototype.highlight = function () {\n    enterEmphasis(this);\n  };\n\n  SankeyPath.prototype.downplay = function () {\n    leaveEmphasis(this);\n  };\n\n  return SankeyPath;\n}(graphic.Path);\n\nvar SankeyView = function (_super) {\n  __extends(SankeyView, _super);\n\n  function SankeyView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SankeyView.type;\n    _this._focusAdjacencyDisabled = false;\n    return _this;\n  }\n\n  SankeyView.prototype.render = function (seriesModel, ecModel, api) {\n    var sankeyView = this;\n    var graph = seriesModel.getGraph();\n    var group = this.group;\n    var layoutInfo = seriesModel.layoutInfo;\n    var width = layoutInfo.width;\n    var height = layoutInfo.height;\n    var nodeData = seriesModel.getData();\n    var edgeData = seriesModel.getData('edge');\n    var orient = seriesModel.get('orient');\n    this._model = seriesModel;\n    group.removeAll();\n    group.x = layoutInfo.x;\n    group.y = layoutInfo.y;\n    graph.eachEdge(function (edge) {\n      var curve = new SankeyPath();\n      var ecData = getECData(curve);\n      ecData.dataIndex = edge.dataIndex;\n      ecData.seriesIndex = seriesModel.seriesIndex;\n      ecData.dataType = 'edge';\n      var edgeModel = edge.getModel();\n      var lineStyleModel = edgeModel.getModel('lineStyle');\n      var curvature = lineStyleModel.get('curveness');\n      var n1Layout = edge.node1.getLayout();\n      var node1Model = edge.node1.getModel();\n      var dragX1 = node1Model.get('localX');\n      var dragY1 = node1Model.get('localY');\n      var n2Layout = edge.node2.getLayout();\n      var node2Model = edge.node2.getModel();\n      var dragX2 = node2Model.get('localX');\n      var dragY2 = node2Model.get('localY');\n      var edgeLayout = edge.getLayout();\n      var x1;\n      var y1;\n      var x2;\n      var y2;\n      var cpx1;\n      var cpy1;\n      var cpx2;\n      var cpy2;\n      curve.shape.extent = Math.max(1, edgeLayout.dy);\n      curve.shape.orient = orient;\n\n      if (orient === 'vertical') {\n        x1 = (dragX1 != null ? dragX1 * width : n1Layout.x) + edgeLayout.sy;\n        y1 = (dragY1 != null ? dragY1 * height : n1Layout.y) + n1Layout.dy;\n        x2 = (dragX2 != null ? dragX2 * width : n2Layout.x) + edgeLayout.ty;\n        y2 = dragY2 != null ? dragY2 * height : n2Layout.y;\n        cpx1 = x1;\n        cpy1 = y1 * (1 - curvature) + y2 * curvature;\n        cpx2 = x2;\n        cpy2 = y1 * curvature + y2 * (1 - curvature);\n      } else {\n        x1 = (dragX1 != null ? dragX1 * width : n1Layout.x) + n1Layout.dx;\n        y1 = (dragY1 != null ? dragY1 * height : n1Layout.y) + edgeLayout.sy;\n        x2 = dragX2 != null ? dragX2 * width : n2Layout.x;\n        y2 = (dragY2 != null ? dragY2 * height : n2Layout.y) + edgeLayout.ty;\n        cpx1 = x1 * (1 - curvature) + x2 * curvature;\n        cpy1 = y1;\n        cpx2 = x1 * curvature + x2 * (1 - curvature);\n        cpy2 = y2;\n      }\n\n      curve.setShape({\n        x1: x1,\n        y1: y1,\n        x2: x2,\n        y2: y2,\n        cpx1: cpx1,\n        cpy1: cpy1,\n        cpx2: cpx2,\n        cpy2: cpy2\n      });\n      curve.useStyle(lineStyleModel.getItemStyle());\n\n      switch (curve.style.fill) {\n        case 'source':\n          curve.style.fill = edge.node1.getVisual('color');\n          curve.style.decal = edge.node1.getVisual('style').decal;\n          break;\n\n        case 'target':\n          curve.style.fill = edge.node2.getVisual('color');\n          curve.style.decal = edge.node2.getVisual('style').decal;\n          break;\n\n        case 'gradient':\n          var sourceColor = edge.node1.getVisual('color');\n          var targetColor = edge.node2.getVisual('color');\n\n          if (typeof sourceColor === 'string' && typeof targetColor === 'string') {\n            curve.style.fill = new graphic.LinearGradient(0, 0, 1, 0, [{\n              color: sourceColor,\n              offset: 0\n            }, {\n              color: targetColor,\n              offset: 1\n            }]);\n          }\n\n      }\n\n      var emphasisModel = edgeModel.getModel('emphasis');\n      setStatesStylesFromModel(curve, edgeModel, 'lineStyle', function (model) {\n        return model.getItemStyle();\n      });\n      group.add(curve);\n      edgeData.setItemGraphicEl(edge.dataIndex, curve);\n      var focus = emphasisModel.get('focus');\n      enableHoverEmphasis(curve, focus === 'adjacency' ? edge.getAdjacentDataIndices() : focus, emphasisModel.get('blurScope'));\n      getECData(curve).dataType = 'edge';\n    });\n    graph.eachNode(function (node) {\n      var layout = node.getLayout();\n      var itemModel = node.getModel();\n      var dragX = itemModel.get('localX');\n      var dragY = itemModel.get('localY');\n      var emphasisModel = itemModel.getModel('emphasis');\n      var rect = new graphic.Rect({\n        shape: {\n          x: dragX != null ? dragX * width : layout.x,\n          y: dragY != null ? dragY * height : layout.y,\n          width: layout.dx,\n          height: layout.dy\n        },\n        style: itemModel.getModel('itemStyle').getItemStyle()\n      });\n      setLabelStyle(rect, getLabelStatesModels(itemModel), {\n        labelFetcher: seriesModel,\n        labelDataIndex: node.dataIndex,\n        defaultText: node.id\n      });\n      rect.disableLabelAnimation = true;\n      rect.setStyle('fill', node.getVisual('color'));\n      rect.setStyle('decal', node.getVisual('style').decal);\n      setStatesStylesFromModel(rect, itemModel);\n      group.add(rect);\n      nodeData.setItemGraphicEl(node.dataIndex, rect);\n      getECData(rect).dataType = 'node';\n      var focus = emphasisModel.get('focus');\n      enableHoverEmphasis(rect, focus === 'adjacency' ? node.getAdjacentDataIndices() : focus, emphasisModel.get('blurScope'));\n    });\n    nodeData.eachItemGraphicEl(function (el, dataIndex) {\n      var itemModel = nodeData.getItemModel(dataIndex);\n\n      if (itemModel.get('draggable')) {\n        el.drift = function (dx, dy) {\n          sankeyView._focusAdjacencyDisabled = true;\n          this.shape.x += dx;\n          this.shape.y += dy;\n          this.dirty();\n          api.dispatchAction({\n            type: 'dragNode',\n            seriesId: seriesModel.id,\n            dataIndex: nodeData.getRawIndex(dataIndex),\n            localX: this.shape.x / width,\n            localY: this.shape.y / height\n          });\n        };\n\n        el.ondragend = function () {\n          sankeyView._focusAdjacencyDisabled = false;\n        };\n\n        el.draggable = true;\n        el.cursor = 'move';\n      }\n    });\n\n    if (!this._data && seriesModel.isAnimationEnabled()) {\n      group.setClipPath(createGridClipShape(group.getBoundingRect(), seriesModel, function () {\n        group.removeClipPath();\n      }));\n    }\n\n    this._data = seriesModel.getData();\n  };\n\n  SankeyView.prototype.dispose = function () {};\n\n  SankeyView.type = 'sankey';\n  return SankeyView;\n}(ChartView);\n\nfunction createGridClipShape(rect, seriesModel, cb) {\n  var rectEl = new graphic.Rect({\n    shape: {\n      x: rect.x - 10,\n      y: rect.y - 10,\n      width: 0,\n      height: rect.height + 20\n    }\n  });\n  graphic.initProps(rectEl, {\n    shape: {\n      width: rect.width + 20\n    }\n  }, seriesModel, cb);\n  return rectEl;\n}\n\nexport default SankeyView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport createGraphFromNodeEdge from '../helper/createGraphFromNodeEdge';\nimport Model from '../../model/Model';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup';\n\nvar SankeySeriesModel = function (_super) {\n  __extends(SankeySeriesModel, _super);\n\n  function SankeySeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SankeySeriesModel.type;\n    return _this;\n  }\n\n  SankeySeriesModel.prototype.getInitialData = function (option, ecModel) {\n    var links = option.edges || option.links;\n    var nodes = option.data || option.nodes;\n    var levels = option.levels;\n    this.levelModels = [];\n    var levelModels = this.levelModels;\n\n    for (var i = 0; i < levels.length; i++) {\n      if (levels[i].depth != null && levels[i].depth >= 0) {\n        levelModels[levels[i].depth] = new Model(levels[i], this, ecModel);\n      } else {\n        if (process.env.NODE_ENV !== 'production') {\n          throw new Error('levels[i].depth is mandatory and should be natural number');\n        }\n      }\n    }\n\n    if (nodes && links) {\n      var graph = createGraphFromNodeEdge(nodes, links, this, true, beforeLink);\n      return graph.data;\n    }\n\n    function beforeLink(nodeData, edgeData) {\n      nodeData.wrapMethod('getItemModel', function (model, idx) {\n        var seriesModel = model.parentModel;\n        var layout = seriesModel.getData().getItemLayout(idx);\n\n        if (layout) {\n          var nodeDepth = layout.depth;\n          var levelModel = seriesModel.levelModels[nodeDepth];\n\n          if (levelModel) {\n            model.parentModel = levelModel;\n          }\n        }\n\n        return model;\n      });\n      edgeData.wrapMethod('getItemModel', function (model, idx) {\n        var seriesModel = model.parentModel;\n        var edge = seriesModel.getGraph().getEdgeByIndex(idx);\n        var layout = edge.node1.getLayout();\n\n        if (layout) {\n          var depth = layout.depth;\n          var levelModel = seriesModel.levelModels[depth];\n\n          if (levelModel) {\n            model.parentModel = levelModel;\n          }\n        }\n\n        return model;\n      });\n    }\n  };\n\n  SankeySeriesModel.prototype.setNodePosition = function (dataIndex, localPosition) {\n    var dataItem = this.option.data[dataIndex];\n    dataItem.localX = localPosition[0];\n    dataItem.localY = localPosition[1];\n  };\n\n  SankeySeriesModel.prototype.getGraph = function () {\n    return this.getData().graph;\n  };\n\n  SankeySeriesModel.prototype.getEdgeData = function () {\n    return this.getGraph().edgeData;\n  };\n\n  SankeySeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    function noValue(val) {\n      return isNaN(val) || val == null;\n    }\n\n    if (dataType === 'edge') {\n      var params = this.getDataParams(dataIndex, dataType);\n      var rawDataOpt = params.data;\n      var edgeValue = params.value;\n      var edgeName = rawDataOpt.source + ' -- ' + rawDataOpt.target;\n      return createTooltipMarkup('nameValue', {\n        name: edgeName,\n        value: edgeValue,\n        noValue: noValue(edgeValue)\n      });\n    } else {\n      var node = this.getGraph().getNodeByIndex(dataIndex);\n      var value = node.getLayout().value;\n      var name_1 = this.getDataParams(dataIndex, dataType).data.name;\n      return createTooltipMarkup('nameValue', {\n        name: name_1 != null ? name_1 + '' : null,\n        value: value,\n        noValue: noValue(value)\n      });\n    }\n  };\n\n  SankeySeriesModel.prototype.optionUpdated = function () {\n    var option = this.option;\n\n    if (option.focusNodeAdjacency === true) {\n      option.focusNodeAdjacency = 'allEdges';\n    }\n  };\n\n  SankeySeriesModel.prototype.getDataParams = function (dataIndex, dataType) {\n    var params = _super.prototype.getDataParams.call(this, dataIndex, dataType);\n\n    if (params.value == null && dataType === 'node') {\n      var node = this.getGraph().getNodeByIndex(dataIndex);\n      var nodeValue = node.getLayout().value;\n      params.value = nodeValue;\n    }\n\n    return params;\n  };\n\n  SankeySeriesModel.type = 'series.sankey';\n  SankeySeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'view',\n    left: '5%',\n    top: '5%',\n    right: '20%',\n    bottom: '5%',\n    orient: 'horizontal',\n    nodeWidth: 20,\n    nodeGap: 8,\n    draggable: true,\n    focusNodeAdjacency: false,\n    layoutIterations: 32,\n    label: {\n      show: true,\n      position: 'right',\n      fontSize: 12\n    },\n    levels: [],\n    nodeAlign: 'justify',\n    lineStyle: {\n      color: '#314656',\n      opacity: 0.2,\n      curveness: 0.5\n    },\n    emphasis: {\n      label: {\n        show: true\n      },\n      lineStyle: {\n        opacity: 0.5\n      }\n    },\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    },\n    animationEasing: 'linear',\n    animationDuration: 1000\n  };\n  return SankeySeriesModel;\n}(SeriesModel);\n\nexport default SankeySeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as layout from '../../util/layout';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { groupData } from '../../util/model';\nexport default function sankeyLayout(ecModel, api) {\n  ecModel.eachSeriesByType('sankey', function (seriesModel) {\n    var nodeWidth = seriesModel.get('nodeWidth');\n    var nodeGap = seriesModel.get('nodeGap');\n    var layoutInfo = getViewRect(seriesModel, api);\n    seriesModel.layoutInfo = layoutInfo;\n    var width = layoutInfo.width;\n    var height = layoutInfo.height;\n    var graph = seriesModel.getGraph();\n    var nodes = graph.nodes;\n    var edges = graph.edges;\n    computeNodeValues(nodes);\n    var filteredNodes = zrUtil.filter(nodes, function (node) {\n      return node.getLayout().value === 0;\n    });\n    var iterations = filteredNodes.length !== 0 ? 0 : seriesModel.get('layoutIterations');\n    var orient = seriesModel.get('orient');\n    var nodeAlign = seriesModel.get('nodeAlign');\n    layoutSankey(nodes, edges, nodeWidth, nodeGap, width, height, iterations, orient, nodeAlign);\n  });\n}\n\nfunction getViewRect(seriesModel, api) {\n  return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n}\n\nfunction layoutSankey(nodes, edges, nodeWidth, nodeGap, width, height, iterations, orient, nodeAlign) {\n  computeNodeBreadths(nodes, edges, nodeWidth, width, height, orient, nodeAlign);\n  computeNodeDepths(nodes, edges, height, width, nodeGap, iterations, orient);\n  computeEdgeDepths(nodes, orient);\n}\n\nfunction computeNodeValues(nodes) {\n  zrUtil.each(nodes, function (node) {\n    var value1 = sum(node.outEdges, getEdgeValue);\n    var value2 = sum(node.inEdges, getEdgeValue);\n    var nodeRawValue = node.getValue() || 0;\n    var value = Math.max(value1, value2, nodeRawValue);\n    node.setLayout({\n      value: value\n    }, true);\n  });\n}\n\nfunction computeNodeBreadths(nodes, edges, nodeWidth, width, height, orient, nodeAlign) {\n  var remainEdges = [];\n  var indegreeArr = [];\n  var zeroIndegrees = [];\n  var nextTargetNode = [];\n  var x = 0;\n\n  for (var i = 0; i < edges.length; i++) {\n    remainEdges[i] = 1;\n  }\n\n  for (var i = 0; i < nodes.length; i++) {\n    indegreeArr[i] = nodes[i].inEdges.length;\n\n    if (indegreeArr[i] === 0) {\n      zeroIndegrees.push(nodes[i]);\n    }\n  }\n\n  var maxNodeDepth = -1;\n\n  while (zeroIndegrees.length) {\n    for (var idx = 0; idx < zeroIndegrees.length; idx++) {\n      var node = zeroIndegrees[idx];\n      var item = node.hostGraph.data.getRawDataItem(node.dataIndex);\n      var isItemDepth = item.depth != null && item.depth >= 0;\n\n      if (isItemDepth && item.depth > maxNodeDepth) {\n        maxNodeDepth = item.depth;\n      }\n\n      node.setLayout({\n        depth: isItemDepth ? item.depth : x\n      }, true);\n      orient === 'vertical' ? node.setLayout({\n        dy: nodeWidth\n      }, true) : node.setLayout({\n        dx: nodeWidth\n      }, true);\n\n      for (var edgeIdx = 0; edgeIdx < node.outEdges.length; edgeIdx++) {\n        var edge = node.outEdges[edgeIdx];\n        var indexEdge = edges.indexOf(edge);\n        remainEdges[indexEdge] = 0;\n        var targetNode = edge.node2;\n        var nodeIndex = nodes.indexOf(targetNode);\n\n        if (--indegreeArr[nodeIndex] === 0 && nextTargetNode.indexOf(targetNode) < 0) {\n          nextTargetNode.push(targetNode);\n        }\n      }\n    }\n\n    ++x;\n    zeroIndegrees = nextTargetNode;\n    nextTargetNode = [];\n  }\n\n  for (var i = 0; i < remainEdges.length; i++) {\n    if (remainEdges[i] === 1) {\n      throw new Error('Sankey is a DAG, the original data has cycle!');\n    }\n  }\n\n  var maxDepth = maxNodeDepth > x - 1 ? maxNodeDepth : x - 1;\n\n  if (nodeAlign && nodeAlign !== 'left') {\n    adjustNodeWithNodeAlign(nodes, nodeAlign, orient, maxDepth);\n  }\n\n  var kx = orient === 'vertical' ? (height - nodeWidth) / maxDepth : (width - nodeWidth) / maxDepth;\n  scaleNodeBreadths(nodes, kx, orient);\n}\n\nfunction isNodeDepth(node) {\n  var item = node.hostGraph.data.getRawDataItem(node.dataIndex);\n  return item.depth != null && item.depth >= 0;\n}\n\nfunction adjustNodeWithNodeAlign(nodes, nodeAlign, orient, maxDepth) {\n  if (nodeAlign === 'right') {\n    var nextSourceNode = [];\n    var remainNodes = nodes;\n    var nodeHeight = 0;\n\n    while (remainNodes.length) {\n      for (var i = 0; i < remainNodes.length; i++) {\n        var node = remainNodes[i];\n        node.setLayout({\n          skNodeHeight: nodeHeight\n        }, true);\n\n        for (var j = 0; j < node.inEdges.length; j++) {\n          var edge = node.inEdges[j];\n\n          if (nextSourceNode.indexOf(edge.node1) < 0) {\n            nextSourceNode.push(edge.node1);\n          }\n        }\n      }\n\n      remainNodes = nextSourceNode;\n      nextSourceNode = [];\n      ++nodeHeight;\n    }\n\n    zrUtil.each(nodes, function (node) {\n      if (!isNodeDepth(node)) {\n        node.setLayout({\n          depth: Math.max(0, maxDepth - node.getLayout().skNodeHeight)\n        }, true);\n      }\n    });\n  } else if (nodeAlign === 'justify') {\n    moveSinksRight(nodes, maxDepth);\n  }\n}\n\nfunction moveSinksRight(nodes, maxDepth) {\n  zrUtil.each(nodes, function (node) {\n    if (!isNodeDepth(node) && !node.outEdges.length) {\n      node.setLayout({\n        depth: maxDepth\n      }, true);\n    }\n  });\n}\n\nfunction scaleNodeBreadths(nodes, kx, orient) {\n  zrUtil.each(nodes, function (node) {\n    var nodeDepth = node.getLayout().depth * kx;\n    orient === 'vertical' ? node.setLayout({\n      y: nodeDepth\n    }, true) : node.setLayout({\n      x: nodeDepth\n    }, true);\n  });\n}\n\nfunction computeNodeDepths(nodes, edges, height, width, nodeGap, iterations, orient) {\n  var nodesByBreadth = prepareNodesByBreadth(nodes, orient);\n  initializeNodeDepth(nodesByBreadth, edges, height, width, nodeGap, orient);\n  resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\n\n  for (var alpha = 1; iterations > 0; iterations--) {\n    alpha *= 0.99;\n    relaxRightToLeft(nodesByBreadth, alpha, orient);\n    resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\n    relaxLeftToRight(nodesByBreadth, alpha, orient);\n    resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\n  }\n}\n\nfunction prepareNodesByBreadth(nodes, orient) {\n  var nodesByBreadth = [];\n  var keyAttr = orient === 'vertical' ? 'y' : 'x';\n  var groupResult = groupData(nodes, function (node) {\n    return node.getLayout()[keyAttr];\n  });\n  groupResult.keys.sort(function (a, b) {\n    return a - b;\n  });\n  zrUtil.each(groupResult.keys, function (key) {\n    nodesByBreadth.push(groupResult.buckets.get(key));\n  });\n  return nodesByBreadth;\n}\n\nfunction initializeNodeDepth(nodesByBreadth, edges, height, width, nodeGap, orient) {\n  var minKy = Infinity;\n  zrUtil.each(nodesByBreadth, function (nodes) {\n    var n = nodes.length;\n    var sum = 0;\n    zrUtil.each(nodes, function (node) {\n      sum += node.getLayout().value;\n    });\n    var ky = orient === 'vertical' ? (width - (n - 1) * nodeGap) / sum : (height - (n - 1) * nodeGap) / sum;\n\n    if (ky < minKy) {\n      minKy = ky;\n    }\n  });\n  zrUtil.each(nodesByBreadth, function (nodes) {\n    zrUtil.each(nodes, function (node, i) {\n      var nodeDy = node.getLayout().value * minKy;\n\n      if (orient === 'vertical') {\n        node.setLayout({\n          x: i\n        }, true);\n        node.setLayout({\n          dx: nodeDy\n        }, true);\n      } else {\n        node.setLayout({\n          y: i\n        }, true);\n        node.setLayout({\n          dy: nodeDy\n        }, true);\n      }\n    });\n  });\n  zrUtil.each(edges, function (edge) {\n    var edgeDy = +edge.getValue() * minKy;\n    edge.setLayout({\n      dy: edgeDy\n    }, true);\n  });\n}\n\nfunction resolveCollisions(nodesByBreadth, nodeGap, height, width, orient) {\n  var keyAttr = orient === 'vertical' ? 'x' : 'y';\n  zrUtil.each(nodesByBreadth, function (nodes) {\n    nodes.sort(function (a, b) {\n      return a.getLayout()[keyAttr] - b.getLayout()[keyAttr];\n    });\n    var nodeX;\n    var node;\n    var dy;\n    var y0 = 0;\n    var n = nodes.length;\n    var nodeDyAttr = orient === 'vertical' ? 'dx' : 'dy';\n\n    for (var i = 0; i < n; i++) {\n      node = nodes[i];\n      dy = y0 - node.getLayout()[keyAttr];\n\n      if (dy > 0) {\n        nodeX = node.getLayout()[keyAttr] + dy;\n        orient === 'vertical' ? node.setLayout({\n          x: nodeX\n        }, true) : node.setLayout({\n          y: nodeX\n        }, true);\n      }\n\n      y0 = node.getLayout()[keyAttr] + node.getLayout()[nodeDyAttr] + nodeGap;\n    }\n\n    var viewWidth = orient === 'vertical' ? width : height;\n    dy = y0 - nodeGap - viewWidth;\n\n    if (dy > 0) {\n      nodeX = node.getLayout()[keyAttr] - dy;\n      orient === 'vertical' ? node.setLayout({\n        x: nodeX\n      }, true) : node.setLayout({\n        y: nodeX\n      }, true);\n      y0 = nodeX;\n\n      for (var i = n - 2; i >= 0; --i) {\n        node = nodes[i];\n        dy = node.getLayout()[keyAttr] + node.getLayout()[nodeDyAttr] + nodeGap - y0;\n\n        if (dy > 0) {\n          nodeX = node.getLayout()[keyAttr] - dy;\n          orient === 'vertical' ? node.setLayout({\n            x: nodeX\n          }, true) : node.setLayout({\n            y: nodeX\n          }, true);\n        }\n\n        y0 = node.getLayout()[keyAttr];\n      }\n    }\n  });\n}\n\nfunction relaxRightToLeft(nodesByBreadth, alpha, orient) {\n  zrUtil.each(nodesByBreadth.slice().reverse(), function (nodes) {\n    zrUtil.each(nodes, function (node) {\n      if (node.outEdges.length) {\n        var y = sum(node.outEdges, weightedTarget, orient) / sum(node.outEdges, getEdgeValue);\n\n        if (isNaN(y)) {\n          var len = node.outEdges.length;\n          y = len ? sum(node.outEdges, centerTarget, orient) / len : 0;\n        }\n\n        if (orient === 'vertical') {\n          var nodeX = node.getLayout().x + (y - center(node, orient)) * alpha;\n          node.setLayout({\n            x: nodeX\n          }, true);\n        } else {\n          var nodeY = node.getLayout().y + (y - center(node, orient)) * alpha;\n          node.setLayout({\n            y: nodeY\n          }, true);\n        }\n      }\n    });\n  });\n}\n\nfunction weightedTarget(edge, orient) {\n  return center(edge.node2, orient) * edge.getValue();\n}\n\nfunction centerTarget(edge, orient) {\n  return center(edge.node2, orient);\n}\n\nfunction weightedSource(edge, orient) {\n  return center(edge.node1, orient) * edge.getValue();\n}\n\nfunction centerSource(edge, orient) {\n  return center(edge.node1, orient);\n}\n\nfunction center(node, orient) {\n  return orient === 'vertical' ? node.getLayout().x + node.getLayout().dx / 2 : node.getLayout().y + node.getLayout().dy / 2;\n}\n\nfunction getEdgeValue(edge) {\n  return edge.getValue();\n}\n\nfunction sum(array, cb, orient) {\n  var sum = 0;\n  var len = array.length;\n  var i = -1;\n\n  while (++i < len) {\n    var value = +cb(array[i], orient);\n\n    if (!isNaN(value)) {\n      sum += value;\n    }\n  }\n\n  return sum;\n}\n\nfunction relaxLeftToRight(nodesByBreadth, alpha, orient) {\n  zrUtil.each(nodesByBreadth, function (nodes) {\n    zrUtil.each(nodes, function (node) {\n      if (node.inEdges.length) {\n        var y = sum(node.inEdges, weightedSource, orient) / sum(node.inEdges, getEdgeValue);\n\n        if (isNaN(y)) {\n          var len = node.inEdges.length;\n          y = len ? sum(node.inEdges, centerSource, orient) / len : 0;\n        }\n\n        if (orient === 'vertical') {\n          var nodeX = node.getLayout().x + (y - center(node, orient)) * alpha;\n          node.setLayout({\n            x: nodeX\n          }, true);\n        } else {\n          var nodeY = node.getLayout().y + (y - center(node, orient)) * alpha;\n          node.setLayout({\n            y: nodeY\n          }, true);\n        }\n      }\n    });\n  });\n}\n\nfunction computeEdgeDepths(nodes, orient) {\n  var keyAttr = orient === 'vertical' ? 'x' : 'y';\n  zrUtil.each(nodes, function (node) {\n    node.outEdges.sort(function (a, b) {\n      return a.node2.getLayout()[keyAttr] - b.node2.getLayout()[keyAttr];\n    });\n    node.inEdges.sort(function (a, b) {\n      return a.node1.getLayout()[keyAttr] - b.node1.getLayout()[keyAttr];\n    });\n  });\n  zrUtil.each(nodes, function (node) {\n    var sy = 0;\n    var ty = 0;\n    zrUtil.each(node.outEdges, function (edge) {\n      edge.setLayout({\n        sy: sy\n      }, true);\n      sy += edge.getLayout().dy;\n    });\n    zrUtil.each(node.inEdges, function (edge) {\n      edge.setLayout({\n        ty: ty\n      }, true);\n      ty += edge.getLayout().dy;\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport VisualMapping from '../../visual/VisualMapping';\nexport default function sankeyVisual(ecModel) {\n  ecModel.eachSeriesByType('sankey', function (seriesModel) {\n    var graph = seriesModel.getGraph();\n    var nodes = graph.nodes;\n\n    if (nodes.length) {\n      var minValue_1 = Infinity;\n      var maxValue_1 = -Infinity;\n      zrUtil.each(nodes, function (node) {\n        var nodeValue = node.getLayout().value;\n\n        if (nodeValue < minValue_1) {\n          minValue_1 = nodeValue;\n        }\n\n        if (nodeValue > maxValue_1) {\n          maxValue_1 = nodeValue;\n        }\n      });\n      zrUtil.each(nodes, function (node) {\n        var mapping = new VisualMapping({\n          type: 'color',\n          mappingMethod: 'linear',\n          dataExtent: [minValue_1, maxValue_1],\n          visual: seriesModel.get('color')\n        });\n        var mapValueToColor = mapping.mapValueToVisual(node.getLayout().value);\n        var customColor = node.getModel().get(['itemStyle', 'color']);\n\n        if (customColor != null) {\n          node.setVisual('color', customColor);\n          node.setVisual('style', {\n            fill: customColor\n          });\n        } else {\n          node.setVisual('color', mapValueToColor);\n          node.setVisual('style', {\n            fill: mapValueToColor\n          });\n        }\n      });\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SankeyView from './SankeyView';\nimport SankeySeriesModel from './SankeySeries';\nimport sankeyLayout from './sankeyLayout';\nimport sankeyVisual from './sankeyVisual';\nexport function install(registers) {\n  registers.registerChartView(SankeyView);\n  registers.registerSeriesModel(SankeySeriesModel);\n  registers.registerLayout(sankeyLayout);\n  registers.registerVisual(sankeyVisual);\n  registers.registerAction({\n    type: 'dragNode',\n    event: 'dragnode',\n    update: 'update'\n  }, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'sankey',\n      query: payload\n    }, function (seriesModel) {\n      seriesModel.setNodePosition(payload.dataIndex, [payload.localX, payload.localY]);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport createListSimply from '../helper/createListSimply';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { getDimensionTypeByAxis } from '../../data/helper/dimensionHelper';\nimport { makeSeriesEncodeForAxisCoordSys } from '../../data/helper/sourceHelper';\n\nvar WhiskerBoxCommonMixin = function () {\n  function WhiskerBoxCommonMixin() {}\n\n  WhiskerBoxCommonMixin.prototype.getInitialData = function (option, ecModel) {\n    var ordinalMeta;\n    var xAxisModel = ecModel.getComponent('xAxis', this.get('xAxisIndex'));\n    var yAxisModel = ecModel.getComponent('yAxis', this.get('yAxisIndex'));\n    var xAxisType = xAxisModel.get('type');\n    var yAxisType = yAxisModel.get('type');\n    var addOrdinal;\n\n    if (xAxisType === 'category') {\n      option.layout = 'horizontal';\n      ordinalMeta = xAxisModel.getOrdinalMeta();\n      addOrdinal = true;\n    } else if (yAxisType === 'category') {\n      option.layout = 'vertical';\n      ordinalMeta = yAxisModel.getOrdinalMeta();\n      addOrdinal = true;\n    } else {\n      option.layout = option.layout || 'horizontal';\n    }\n\n    var coordDims = ['x', 'y'];\n    var baseAxisDimIndex = option.layout === 'horizontal' ? 0 : 1;\n    var baseAxisDim = this._baseAxisDim = coordDims[baseAxisDimIndex];\n    var otherAxisDim = coordDims[1 - baseAxisDimIndex];\n    var axisModels = [xAxisModel, yAxisModel];\n    var baseAxisType = axisModels[baseAxisDimIndex].get('type');\n    var otherAxisType = axisModels[1 - baseAxisDimIndex].get('type');\n    var data = option.data;\n\n    if (data && addOrdinal) {\n      var newOptionData_1 = [];\n      zrUtil.each(data, function (item, index) {\n        var newItem;\n\n        if (zrUtil.isArray(item)) {\n          newItem = item.slice();\n          item.unshift(index);\n        } else if (zrUtil.isArray(item.value)) {\n          newItem = item.value.slice();\n          item.value.unshift(index);\n        } else {\n          newItem = item;\n        }\n\n        newOptionData_1.push(newItem);\n      });\n      option.data = newOptionData_1;\n    }\n\n    var defaultValueDimensions = this.defaultValueDimensions;\n    var coordDimensions = [{\n      name: baseAxisDim,\n      type: getDimensionTypeByAxis(baseAxisType),\n      ordinalMeta: ordinalMeta,\n      otherDims: {\n        tooltip: false,\n        itemName: 0\n      },\n      dimsDef: ['base']\n    }, {\n      name: otherAxisDim,\n      type: getDimensionTypeByAxis(otherAxisType),\n      dimsDef: defaultValueDimensions.slice()\n    }];\n    return createListSimply(this, {\n      coordDimensions: coordDimensions,\n      dimensionsCount: defaultValueDimensions.length + 1,\n      encodeDefaulter: zrUtil.curry(makeSeriesEncodeForAxisCoordSys, coordDimensions, this)\n    });\n  };\n\n  WhiskerBoxCommonMixin.prototype.getBaseAxis = function () {\n    var dim = this._baseAxisDim;\n    return this.ecModel.getComponent(dim + 'Axis', this.get(dim + 'AxisIndex')).axis;\n  };\n\n  return WhiskerBoxCommonMixin;\n}();\n\n;\nexport { WhiskerBoxCommonMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport { WhiskerBoxCommonMixin } from '../helper/whiskerBoxCommon';\nimport { mixin } from 'zrender/lib/core/util';\n\nvar BoxplotSeriesModel = function (_super) {\n  __extends(BoxplotSeriesModel, _super);\n\n  function BoxplotSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BoxplotSeriesModel.type;\n    _this.defaultValueDimensions = [{\n      name: 'min',\n      defaultTooltip: true\n    }, {\n      name: 'Q1',\n      defaultTooltip: true\n    }, {\n      name: 'median',\n      defaultTooltip: true\n    }, {\n      name: 'Q3',\n      defaultTooltip: true\n    }, {\n      name: 'max',\n      defaultTooltip: true\n    }];\n    _this.visualDrawType = 'stroke';\n    return _this;\n  }\n\n  BoxplotSeriesModel.type = 'series.boxplot';\n  BoxplotSeriesModel.dependencies = ['xAxis', 'yAxis', 'grid'];\n  BoxplotSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'cartesian2d',\n    legendHoverLink: true,\n    layout: null,\n    boxWidth: [7, 50],\n    itemStyle: {\n      color: '#fff',\n      borderWidth: 1\n    },\n    emphasis: {\n      scale: true,\n      itemStyle: {\n        borderWidth: 2,\n        shadowBlur: 5,\n        shadowOffsetX: 1,\n        shadowOffsetY: 1,\n        shadowColor: 'rgba(0,0,0,0.2)'\n      }\n    },\n    animationDuration: 800\n  };\n  return BoxplotSeriesModel;\n}(SeriesModel);\n\nmixin(BoxplotSeriesModel, WhiskerBoxCommonMixin, true);\nexport default BoxplotSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ChartView from '../../view/Chart';\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport Path from 'zrender/lib/graphic/Path';\n\nvar BoxplotView = function (_super) {\n  __extends(BoxplotView, _super);\n\n  function BoxplotView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BoxplotView.type;\n    return _this;\n  }\n\n  BoxplotView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    var group = this.group;\n    var oldData = this._data;\n\n    if (!this._data) {\n      group.removeAll();\n    }\n\n    var constDim = seriesModel.get('layout') === 'horizontal' ? 1 : 0;\n    data.diff(oldData).add(function (newIdx) {\n      if (data.hasValue(newIdx)) {\n        var itemLayout = data.getItemLayout(newIdx);\n        var symbolEl = createNormalBox(itemLayout, data, newIdx, constDim, true);\n        data.setItemGraphicEl(newIdx, symbolEl);\n        group.add(symbolEl);\n      }\n    }).update(function (newIdx, oldIdx) {\n      var symbolEl = oldData.getItemGraphicEl(oldIdx);\n\n      if (!data.hasValue(newIdx)) {\n        group.remove(symbolEl);\n        return;\n      }\n\n      var itemLayout = data.getItemLayout(newIdx);\n\n      if (!symbolEl) {\n        symbolEl = createNormalBox(itemLayout, data, newIdx, constDim);\n      } else {\n        updateNormalBoxData(itemLayout, symbolEl, data, newIdx);\n      }\n\n      group.add(symbolEl);\n      data.setItemGraphicEl(newIdx, symbolEl);\n    }).remove(function (oldIdx) {\n      var el = oldData.getItemGraphicEl(oldIdx);\n      el && group.remove(el);\n    }).execute();\n    this._data = data;\n  };\n\n  BoxplotView.prototype.remove = function (ecModel) {\n    var group = this.group;\n    var data = this._data;\n    this._data = null;\n    data && data.eachItemGraphicEl(function (el) {\n      el && group.remove(el);\n    });\n  };\n\n  BoxplotView.type = 'boxplot';\n  return BoxplotView;\n}(ChartView);\n\nvar BoxPathShape = function () {\n  function BoxPathShape() {}\n\n  return BoxPathShape;\n}();\n\nvar BoxPath = function (_super) {\n  __extends(BoxPath, _super);\n\n  function BoxPath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'boxplotBoxPath';\n    return _this;\n  }\n\n  BoxPath.prototype.getDefaultShape = function () {\n    return new BoxPathShape();\n  };\n\n  BoxPath.prototype.buildPath = function (ctx, shape) {\n    var ends = shape.points;\n    var i = 0;\n    ctx.moveTo(ends[i][0], ends[i][1]);\n    i++;\n\n    for (; i < 4; i++) {\n      ctx.lineTo(ends[i][0], ends[i][1]);\n    }\n\n    ctx.closePath();\n\n    for (; i < ends.length; i++) {\n      ctx.moveTo(ends[i][0], ends[i][1]);\n      i++;\n      ctx.lineTo(ends[i][0], ends[i][1]);\n    }\n  };\n\n  return BoxPath;\n}(Path);\n\nfunction createNormalBox(itemLayout, data, dataIndex, constDim, isInit) {\n  var ends = itemLayout.ends;\n  var el = new BoxPath({\n    shape: {\n      points: isInit ? transInit(ends, constDim, itemLayout) : ends\n    }\n  });\n  updateNormalBoxData(itemLayout, el, data, dataIndex, isInit);\n  return el;\n}\n\nfunction updateNormalBoxData(itemLayout, el, data, dataIndex, isInit) {\n  var seriesModel = data.hostModel;\n  var updateMethod = graphic[isInit ? 'initProps' : 'updateProps'];\n  updateMethod(el, {\n    shape: {\n      points: itemLayout.ends\n    }\n  }, seriesModel, dataIndex);\n  el.useStyle(data.getItemVisual(dataIndex, 'style'));\n  el.style.strokeNoScale = true;\n  el.z2 = 100;\n  var itemModel = data.getItemModel(dataIndex);\n  setStatesStylesFromModel(el, itemModel);\n  enableHoverEmphasis(el, itemModel.get(['emphasis', 'focus']), itemModel.get(['emphasis', 'blurScope']));\n}\n\nfunction transInit(points, dim, itemLayout) {\n  return zrUtil.map(points, function (point) {\n    point = point.slice();\n    point[dim] = itemLayout.initBaseline;\n    return point;\n  });\n}\n\nexport default BoxplotView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function boxplotVisual(ecModel, api) {\n  ecModel.eachRawSeriesByType('boxplot', function (seriesModel) {\n    seriesModel.getData().setVisual('legendSymbol', 'roundRect');\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parsePercent } from '../../util/number';\nvar each = zrUtil.each;\nexport default function boxplotLayout(ecModel) {\n  var groupResult = groupSeriesByAxis(ecModel);\n  each(groupResult, function (groupItem) {\n    var seriesModels = groupItem.seriesModels;\n\n    if (!seriesModels.length) {\n      return;\n    }\n\n    calculateBase(groupItem);\n    each(seriesModels, function (seriesModel, idx) {\n      layoutSingleSeries(seriesModel, groupItem.boxOffsetList[idx], groupItem.boxWidthList[idx]);\n    });\n  });\n}\n\nfunction groupSeriesByAxis(ecModel) {\n  var result = [];\n  var axisList = [];\n  ecModel.eachSeriesByType('boxplot', function (seriesModel) {\n    var baseAxis = seriesModel.getBaseAxis();\n    var idx = zrUtil.indexOf(axisList, baseAxis);\n\n    if (idx < 0) {\n      idx = axisList.length;\n      axisList[idx] = baseAxis;\n      result[idx] = {\n        axis: baseAxis,\n        seriesModels: []\n      };\n    }\n\n    result[idx].seriesModels.push(seriesModel);\n  });\n  return result;\n}\n\nfunction calculateBase(groupItem) {\n  var extent;\n  var baseAxis = groupItem.axis;\n  var seriesModels = groupItem.seriesModels;\n  var seriesCount = seriesModels.length;\n  var boxWidthList = groupItem.boxWidthList = [];\n  var boxOffsetList = groupItem.boxOffsetList = [];\n  var boundList = [];\n  var bandWidth;\n\n  if (baseAxis.type === 'category') {\n    bandWidth = baseAxis.getBandWidth();\n  } else {\n    var maxDataCount_1 = 0;\n    each(seriesModels, function (seriesModel) {\n      maxDataCount_1 = Math.max(maxDataCount_1, seriesModel.getData().count());\n    });\n    extent = baseAxis.getExtent(), Math.abs(extent[1] - extent[0]) / maxDataCount_1;\n  }\n\n  each(seriesModels, function (seriesModel) {\n    var boxWidthBound = seriesModel.get('boxWidth');\n\n    if (!zrUtil.isArray(boxWidthBound)) {\n      boxWidthBound = [boxWidthBound, boxWidthBound];\n    }\n\n    boundList.push([parsePercent(boxWidthBound[0], bandWidth) || 0, parsePercent(boxWidthBound[1], bandWidth) || 0]);\n  });\n  var availableWidth = bandWidth * 0.8 - 2;\n  var boxGap = availableWidth / seriesCount * 0.3;\n  var boxWidth = (availableWidth - boxGap * (seriesCount - 1)) / seriesCount;\n  var base = boxWidth / 2 - availableWidth / 2;\n  each(seriesModels, function (seriesModel, idx) {\n    boxOffsetList.push(base);\n    base += boxGap + boxWidth;\n    boxWidthList.push(Math.min(Math.max(boxWidth, boundList[idx][0]), boundList[idx][1]));\n  });\n}\n\nfunction layoutSingleSeries(seriesModel, offset, boxWidth) {\n  var coordSys = seriesModel.coordinateSystem;\n  var data = seriesModel.getData();\n  var halfWidth = boxWidth / 2;\n  var cDimIdx = seriesModel.get('layout') === 'horizontal' ? 0 : 1;\n  var vDimIdx = 1 - cDimIdx;\n  var coordDims = ['x', 'y'];\n  var cDim = data.mapDimension(coordDims[cDimIdx]);\n  var vDims = data.mapDimensionsAll(coordDims[vDimIdx]);\n\n  if (cDim == null || vDims.length < 5) {\n    return;\n  }\n\n  for (var dataIndex = 0; dataIndex < data.count(); dataIndex++) {\n    var axisDimVal = data.get(cDim, dataIndex);\n    var median = getPoint(axisDimVal, vDims[2], dataIndex);\n    var end1 = getPoint(axisDimVal, vDims[0], dataIndex);\n    var end2 = getPoint(axisDimVal, vDims[1], dataIndex);\n    var end4 = getPoint(axisDimVal, vDims[3], dataIndex);\n    var end5 = getPoint(axisDimVal, vDims[4], dataIndex);\n    var ends = [];\n    addBodyEnd(ends, end2, false);\n    addBodyEnd(ends, end4, true);\n    ends.push(end1, end2, end5, end4);\n    layEndLine(ends, end1);\n    layEndLine(ends, end5);\n    layEndLine(ends, median);\n    data.setItemLayout(dataIndex, {\n      initBaseline: median[vDimIdx],\n      ends: ends\n    });\n  }\n\n  function getPoint(axisDimVal, dim, dataIndex) {\n    var val = data.get(dim, dataIndex);\n    var p = [];\n    p[cDimIdx] = axisDimVal;\n    p[vDimIdx] = val;\n    var point;\n\n    if (isNaN(axisDimVal) || isNaN(val)) {\n      point = [NaN, NaN];\n    } else {\n      point = coordSys.dataToPoint(p);\n      point[cDimIdx] += offset;\n    }\n\n    return point;\n  }\n\n  function addBodyEnd(ends, point, start) {\n    var point1 = point.slice();\n    var point2 = point.slice();\n    point1[cDimIdx] += halfWidth;\n    point2[cDimIdx] -= halfWidth;\n    start ? ends.push(point1, point2) : ends.push(point2, point1);\n  }\n\n  function layEndLine(ends, endCenter) {\n    var from = endCenter.slice();\n    var to = endCenter.slice();\n    from[cDimIdx] -= halfWidth;\n    to[cDimIdx] += halfWidth;\n    ends.push(from, to);\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { quantile, asc } from '../../util/number';\nimport { isFunction, isString } from 'zrender/lib/core/util';\nexport default function prepareBoxplotData(rawData, opt) {\n  opt = opt || {};\n  var boxData = [];\n  var outliers = [];\n  var boundIQR = opt.boundIQR;\n  var useExtreme = boundIQR === 'none' || boundIQR === 0;\n\n  for (var i = 0; i < rawData.length; i++) {\n    var ascList = asc(rawData[i].slice());\n    var Q1 = quantile(ascList, 0.25);\n    var Q2 = quantile(ascList, 0.5);\n    var Q3 = quantile(ascList, 0.75);\n    var min = ascList[0];\n    var max = ascList[ascList.length - 1];\n    var bound = (boundIQR == null ? 1.5 : boundIQR) * (Q3 - Q1);\n    var low = useExtreme ? min : Math.max(min, Q1 - bound);\n    var high = useExtreme ? max : Math.min(max, Q3 + bound);\n    var itemNameFormatter = opt.itemNameFormatter;\n    var itemName = isFunction(itemNameFormatter) ? itemNameFormatter({\n      value: i\n    }) : isString(itemNameFormatter) ? itemNameFormatter.replace('{value}', i + '') : i + '';\n    boxData.push([itemName, low, Q1, Q2, Q3, high]);\n\n    for (var j = 0; j < ascList.length; j++) {\n      var dataItem = ascList[j];\n\n      if (dataItem < low || dataItem > high) {\n        var outlier = [itemName, dataItem];\n        outliers.push(outlier);\n      }\n    }\n  }\n\n  return {\n    boxData: boxData,\n    outliers: outliers\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport prepareBoxplotData from './prepareBoxplotData';\nimport { throwError, makePrintable } from '../../util/log';\nimport { SOURCE_FORMAT_ARRAY_ROWS } from '../../util/types';\nexport var boxplotTransform = {\n  type: 'echarts:boxplot',\n  transform: function transform(params) {\n    var upstream = params.upstream;\n\n    if (upstream.sourceFormat !== SOURCE_FORMAT_ARRAY_ROWS) {\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = makePrintable('source data is not applicable for this boxplot transform. Expect number[][].');\n      }\n\n      throwError(errMsg);\n    }\n\n    var result = prepareBoxplotData(upstream.getRawData(), params.config);\n    return [{\n      dimensions: ['ItemName', 'Low', 'Q1', 'Q2', 'Q3', 'High'],\n      data: result.boxData\n    }, {\n      data: result.outliers\n    }];\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport BoxplotSeriesModel from './BoxplotSeries';\nimport BoxplotView from './BoxplotView';\nimport boxplotVisual from './boxplotVisual';\nimport boxplotLayout from './boxplotLayout';\nimport { boxplotTransform } from './boxplotTransform';\nexport function install(registers) {\n  registers.registerSeriesModel(BoxplotSeriesModel);\n  registers.registerChartView(BoxplotView);\n  registers.registerVisual(boxplotVisual);\n  registers.registerLayout(boxplotLayout);\n  registers.registerTransform(boxplotTransform);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ChartView from '../../view/Chart';\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel } from '../../util/states';\nimport Path from 'zrender/lib/graphic/Path';\nimport { createClipPath } from '../helper/createClipPathFromCoordSys';\nvar SKIP_PROPS = ['color', 'borderColor'];\n\nvar CandlestickView = function (_super) {\n  __extends(CandlestickView, _super);\n\n  function CandlestickView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CandlestickView.type;\n    return _this;\n  }\n\n  CandlestickView.prototype.render = function (seriesModel, ecModel, api) {\n    this.group.removeClipPath();\n\n    this._updateDrawMode(seriesModel);\n\n    this._isLargeDraw ? this._renderLarge(seriesModel) : this._renderNormal(seriesModel);\n  };\n\n  CandlestickView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n    this._clear();\n\n    this._updateDrawMode(seriesModel);\n  };\n\n  CandlestickView.prototype.incrementalRender = function (params, seriesModel, ecModel, api) {\n    this._isLargeDraw ? this._incrementalRenderLarge(params, seriesModel) : this._incrementalRenderNormal(params, seriesModel);\n  };\n\n  CandlestickView.prototype._updateDrawMode = function (seriesModel) {\n    var isLargeDraw = seriesModel.pipelineContext.large;\n\n    if (this._isLargeDraw == null || isLargeDraw !== this._isLargeDraw) {\n      this._isLargeDraw = isLargeDraw;\n\n      this._clear();\n    }\n  };\n\n  CandlestickView.prototype._renderNormal = function (seriesModel) {\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var group = this.group;\n    var isSimpleBox = data.getLayout('isSimpleBox');\n    var needsClip = seriesModel.get('clip', true);\n    var coord = seriesModel.coordinateSystem;\n    var clipArea = coord.getArea && coord.getArea();\n\n    if (!this._data) {\n      group.removeAll();\n    }\n\n    data.diff(oldData).add(function (newIdx) {\n      if (data.hasValue(newIdx)) {\n        var itemLayout = data.getItemLayout(newIdx);\n\n        if (needsClip && isNormalBoxClipped(clipArea, itemLayout)) {\n          return;\n        }\n\n        var el = createNormalBox(itemLayout, newIdx, true);\n        graphic.initProps(el, {\n          shape: {\n            points: itemLayout.ends\n          }\n        }, seriesModel, newIdx);\n        setBoxCommon(el, data, newIdx, isSimpleBox);\n        group.add(el);\n        data.setItemGraphicEl(newIdx, el);\n      }\n    }).update(function (newIdx, oldIdx) {\n      var el = oldData.getItemGraphicEl(oldIdx);\n\n      if (!data.hasValue(newIdx)) {\n        group.remove(el);\n        return;\n      }\n\n      var itemLayout = data.getItemLayout(newIdx);\n\n      if (needsClip && isNormalBoxClipped(clipArea, itemLayout)) {\n        group.remove(el);\n        return;\n      }\n\n      if (!el) {\n        el = createNormalBox(itemLayout, newIdx);\n      } else {\n        graphic.updateProps(el, {\n          shape: {\n            points: itemLayout.ends\n          }\n        }, seriesModel, newIdx);\n      }\n\n      setBoxCommon(el, data, newIdx, isSimpleBox);\n      group.add(el);\n      data.setItemGraphicEl(newIdx, el);\n    }).remove(function (oldIdx) {\n      var el = oldData.getItemGraphicEl(oldIdx);\n      el && group.remove(el);\n    }).execute();\n    this._data = data;\n  };\n\n  CandlestickView.prototype._renderLarge = function (seriesModel) {\n    this._clear();\n\n    createLarge(seriesModel, this.group);\n    var clipPath = seriesModel.get('clip', true) ? createClipPath(seriesModel.coordinateSystem, false, seriesModel) : null;\n\n    if (clipPath) {\n      this.group.setClipPath(clipPath);\n    } else {\n      this.group.removeClipPath();\n    }\n  };\n\n  CandlestickView.prototype._incrementalRenderNormal = function (params, seriesModel) {\n    var data = seriesModel.getData();\n    var isSimpleBox = data.getLayout('isSimpleBox');\n    var dataIndex;\n\n    while ((dataIndex = params.next()) != null) {\n      var itemLayout = data.getItemLayout(dataIndex);\n      var el = createNormalBox(itemLayout, dataIndex);\n      setBoxCommon(el, data, dataIndex, isSimpleBox);\n      el.incremental = true;\n      this.group.add(el);\n    }\n  };\n\n  CandlestickView.prototype._incrementalRenderLarge = function (params, seriesModel) {\n    createLarge(seriesModel, this.group, true);\n  };\n\n  CandlestickView.prototype.remove = function (ecModel) {\n    this._clear();\n  };\n\n  CandlestickView.prototype._clear = function () {\n    this.group.removeAll();\n    this._data = null;\n  };\n\n  CandlestickView.type = 'candlestick';\n  return CandlestickView;\n}(ChartView);\n\nvar NormalBoxPathShape = function () {\n  function NormalBoxPathShape() {}\n\n  return NormalBoxPathShape;\n}();\n\nvar NormalBoxPath = function (_super) {\n  __extends(NormalBoxPath, _super);\n\n  function NormalBoxPath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'normalCandlestickBox';\n    return _this;\n  }\n\n  NormalBoxPath.prototype.getDefaultShape = function () {\n    return new NormalBoxPathShape();\n  };\n\n  NormalBoxPath.prototype.buildPath = function (ctx, shape) {\n    var ends = shape.points;\n\n    if (this.__simpleBox) {\n      ctx.moveTo(ends[4][0], ends[4][1]);\n      ctx.lineTo(ends[6][0], ends[6][1]);\n    } else {\n      ctx.moveTo(ends[0][0], ends[0][1]);\n      ctx.lineTo(ends[1][0], ends[1][1]);\n      ctx.lineTo(ends[2][0], ends[2][1]);\n      ctx.lineTo(ends[3][0], ends[3][1]);\n      ctx.closePath();\n      ctx.moveTo(ends[4][0], ends[4][1]);\n      ctx.lineTo(ends[5][0], ends[5][1]);\n      ctx.moveTo(ends[6][0], ends[6][1]);\n      ctx.lineTo(ends[7][0], ends[7][1]);\n    }\n  };\n\n  return NormalBoxPath;\n}(Path);\n\nfunction createNormalBox(itemLayout, dataIndex, isInit) {\n  var ends = itemLayout.ends;\n  return new NormalBoxPath({\n    shape: {\n      points: isInit ? transInit(ends, itemLayout) : ends\n    },\n    z2: 100\n  });\n}\n\nfunction isNormalBoxClipped(clipArea, itemLayout) {\n  var clipped = true;\n\n  for (var i = 0; i < itemLayout.ends.length; i++) {\n    if (clipArea.contain(itemLayout.ends[i][0], itemLayout.ends[i][1])) {\n      clipped = false;\n      break;\n    }\n  }\n\n  return clipped;\n}\n\nfunction setBoxCommon(el, data, dataIndex, isSimpleBox) {\n  var itemModel = data.getItemModel(dataIndex);\n  el.useStyle(data.getItemVisual(dataIndex, 'style'));\n  el.style.strokeNoScale = true;\n  el.__simpleBox = isSimpleBox;\n  setStatesStylesFromModel(el, itemModel);\n}\n\nfunction transInit(points, itemLayout) {\n  return zrUtil.map(points, function (point) {\n    point = point.slice();\n    point[1] = itemLayout.initBaseline;\n    return point;\n  });\n}\n\nvar LargeBoxPathShape = function () {\n  function LargeBoxPathShape() {}\n\n  return LargeBoxPathShape;\n}();\n\nvar LargeBoxPath = function (_super) {\n  __extends(LargeBoxPath, _super);\n\n  function LargeBoxPath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'largeCandlestickBox';\n    return _this;\n  }\n\n  LargeBoxPath.prototype.getDefaultShape = function () {\n    return new LargeBoxPathShape();\n  };\n\n  LargeBoxPath.prototype.buildPath = function (ctx, shape) {\n    var points = shape.points;\n\n    for (var i = 0; i < points.length;) {\n      if (this.__sign === points[i++]) {\n        var x = points[i++];\n        ctx.moveTo(x, points[i++]);\n        ctx.lineTo(x, points[i++]);\n      } else {\n        i += 3;\n      }\n    }\n  };\n\n  return LargeBoxPath;\n}(Path);\n\nfunction createLarge(seriesModel, group, incremental) {\n  var data = seriesModel.getData();\n  var largePoints = data.getLayout('largePoints');\n  var elP = new LargeBoxPath({\n    shape: {\n      points: largePoints\n    },\n    __sign: 1\n  });\n  group.add(elP);\n  var elN = new LargeBoxPath({\n    shape: {\n      points: largePoints\n    },\n    __sign: -1\n  });\n  group.add(elN);\n  setLargeStyle(1, elP, seriesModel, data);\n  setLargeStyle(-1, elN, seriesModel, data);\n\n  if (incremental) {\n    elP.incremental = true;\n    elN.incremental = true;\n  }\n}\n\nfunction setLargeStyle(sign, el, seriesModel, data) {\n  var borderColor = seriesModel.get(['itemStyle', sign > 0 ? 'borderColor' : 'borderColor0']) || seriesModel.get(['itemStyle', sign > 0 ? 'color' : 'color0']);\n  var itemStyle = seriesModel.getModel('itemStyle').getItemStyle(SKIP_PROPS);\n  el.useStyle(itemStyle);\n  el.style.fill = null;\n  el.style.stroke = borderColor;\n}\n\nexport default CandlestickView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport { WhiskerBoxCommonMixin } from '../helper/whiskerBoxCommon';\nimport { mixin } from 'zrender/lib/core/util';\n\nvar CandlestickSeriesModel = function (_super) {\n  __extends(CandlestickSeriesModel, _super);\n\n  function CandlestickSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CandlestickSeriesModel.type;\n    _this.defaultValueDimensions = [{\n      name: 'open',\n      defaultTooltip: true\n    }, {\n      name: 'close',\n      defaultTooltip: true\n    }, {\n      name: 'lowest',\n      defaultTooltip: true\n    }, {\n      name: 'highest',\n      defaultTooltip: true\n    }];\n    return _this;\n  }\n\n  CandlestickSeriesModel.prototype.getShadowDim = function () {\n    return 'open';\n  };\n\n  CandlestickSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n    var itemLayout = data.getItemLayout(dataIndex);\n    return itemLayout && selectors.rect(itemLayout.brushRect);\n  };\n\n  CandlestickSeriesModel.type = 'series.candlestick';\n  CandlestickSeriesModel.dependencies = ['xAxis', 'yAxis', 'grid'];\n  CandlestickSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'cartesian2d',\n    legendHoverLink: true,\n    layout: null,\n    clip: true,\n    itemStyle: {\n      color: '#eb5454',\n      color0: '#47b262',\n      borderColor: '#eb5454',\n      borderColor0: '#47b262',\n      borderWidth: 1\n    },\n    emphasis: {\n      scale: true,\n      itemStyle: {\n        borderWidth: 2\n      }\n    },\n    barMaxWidth: null,\n    barMinWidth: null,\n    barWidth: null,\n    large: true,\n    largeThreshold: 600,\n    progressive: 3e3,\n    progressiveThreshold: 1e4,\n    progressiveChunkMode: 'mod',\n    animationEasing: 'linear',\n    animationDuration: 300\n  };\n  return CandlestickSeriesModel;\n}(SeriesModel);\n\nmixin(CandlestickSeriesModel, WhiskerBoxCommonMixin, true);\nexport default CandlestickSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function candlestickPreprocessor(option) {\n  if (!option || !zrUtil.isArray(option.series)) {\n    return;\n  }\n\n  zrUtil.each(option.series, function (seriesItem) {\n    if (zrUtil.isObject(seriesItem) && seriesItem.type === 'k') {\n      seriesItem.type = 'candlestick';\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport createRenderPlanner from '../helper/createRenderPlanner';\nimport { extend } from 'zrender/lib/core/util';\nvar positiveBorderColorQuery = ['itemStyle', 'borderColor'];\nvar negativeBorderColorQuery = ['itemStyle', 'borderColor0'];\nvar positiveColorQuery = ['itemStyle', 'color'];\nvar negativeColorQuery = ['itemStyle', 'color0'];\nvar candlestickVisual = {\n  seriesType: 'candlestick',\n  plan: createRenderPlanner(),\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    function getColor(sign, model) {\n      return model.get(sign > 0 ? positiveColorQuery : negativeColorQuery);\n    }\n\n    function getBorderColor(sign, model) {\n      return model.get(sign > 0 ? positiveBorderColorQuery : negativeBorderColorQuery);\n    }\n\n    var data = seriesModel.getData();\n    data.setVisual('legendSymbol', 'roundRect');\n\n    if (ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    var isLargeRender = seriesModel.pipelineContext.large;\n    return !isLargeRender && {\n      progress: function (params, data) {\n        var dataIndex;\n\n        while ((dataIndex = params.next()) != null) {\n          var itemModel = data.getItemModel(dataIndex);\n          var sign = data.getItemLayout(dataIndex).sign;\n          var style = itemModel.getItemStyle();\n          style.fill = getColor(sign, itemModel);\n          style.stroke = getBorderColor(sign, itemModel) || style.fill;\n          var existsStyle = data.ensureUniqueItemVisual(dataIndex, 'style');\n          extend(existsStyle, style);\n        }\n      }\n    };\n  }\n};\nexport default candlestickVisual;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { subPixelOptimize } from '../../util/graphic';\nimport createRenderPlanner from '../helper/createRenderPlanner';\nimport { parsePercent } from '../../util/number';\nimport { retrieve2 } from 'zrender/lib/core/util';\nvar LargeArr = typeof Float32Array !== 'undefined' ? Float32Array : Array;\nvar candlestickLayout = {\n  seriesType: 'candlestick',\n  plan: createRenderPlanner(),\n  reset: function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n    var data = seriesModel.getData();\n    var candleWidth = calculateCandleWidth(seriesModel, data);\n    var cDimIdx = 0;\n    var vDimIdx = 1;\n    var coordDims = ['x', 'y'];\n    var cDim = data.mapDimension(coordDims[cDimIdx]);\n    var vDims = data.mapDimensionsAll(coordDims[vDimIdx]);\n    var openDim = vDims[0];\n    var closeDim = vDims[1];\n    var lowestDim = vDims[2];\n    var highestDim = vDims[3];\n    data.setLayout({\n      candleWidth: candleWidth,\n      isSimpleBox: candleWidth <= 1.3\n    });\n\n    if (cDim == null || vDims.length < 4) {\n      return;\n    }\n\n    return {\n      progress: seriesModel.pipelineContext.large ? largeProgress : normalProgress\n    };\n\n    function normalProgress(params, data) {\n      var dataIndex;\n\n      while ((dataIndex = params.next()) != null) {\n        var axisDimVal = data.get(cDim, dataIndex);\n        var openVal = data.get(openDim, dataIndex);\n        var closeVal = data.get(closeDim, dataIndex);\n        var lowestVal = data.get(lowestDim, dataIndex);\n        var highestVal = data.get(highestDim, dataIndex);\n        var ocLow = Math.min(openVal, closeVal);\n        var ocHigh = Math.max(openVal, closeVal);\n        var ocLowPoint = getPoint(ocLow, axisDimVal);\n        var ocHighPoint = getPoint(ocHigh, axisDimVal);\n        var lowestPoint = getPoint(lowestVal, axisDimVal);\n        var highestPoint = getPoint(highestVal, axisDimVal);\n        var ends = [];\n        addBodyEnd(ends, ocHighPoint, 0);\n        addBodyEnd(ends, ocLowPoint, 1);\n        ends.push(subPixelOptimizePoint(highestPoint), subPixelOptimizePoint(ocHighPoint), subPixelOptimizePoint(lowestPoint), subPixelOptimizePoint(ocLowPoint));\n        data.setItemLayout(dataIndex, {\n          sign: getSign(data, dataIndex, openVal, closeVal, closeDim),\n          initBaseline: openVal > closeVal ? ocHighPoint[vDimIdx] : ocLowPoint[vDimIdx],\n          ends: ends,\n          brushRect: makeBrushRect(lowestVal, highestVal, axisDimVal)\n        });\n      }\n\n      function getPoint(val, axisDimVal) {\n        var p = [];\n        p[cDimIdx] = axisDimVal;\n        p[vDimIdx] = val;\n        return isNaN(axisDimVal) || isNaN(val) ? [NaN, NaN] : coordSys.dataToPoint(p);\n      }\n\n      function addBodyEnd(ends, point, start) {\n        var point1 = point.slice();\n        var point2 = point.slice();\n        point1[cDimIdx] = subPixelOptimize(point1[cDimIdx] + candleWidth / 2, 1, false);\n        point2[cDimIdx] = subPixelOptimize(point2[cDimIdx] - candleWidth / 2, 1, true);\n        start ? ends.push(point1, point2) : ends.push(point2, point1);\n      }\n\n      function makeBrushRect(lowestVal, highestVal, axisDimVal) {\n        var pmin = getPoint(lowestVal, axisDimVal);\n        var pmax = getPoint(highestVal, axisDimVal);\n        pmin[cDimIdx] -= candleWidth / 2;\n        pmax[cDimIdx] -= candleWidth / 2;\n        return {\n          x: pmin[0],\n          y: pmin[1],\n          width: vDimIdx ? candleWidth : pmax[0] - pmin[0],\n          height: vDimIdx ? pmax[1] - pmin[1] : candleWidth\n        };\n      }\n\n      function subPixelOptimizePoint(point) {\n        point[cDimIdx] = subPixelOptimize(point[cDimIdx], 1);\n        return point;\n      }\n    }\n\n    function largeProgress(params, data) {\n      var points = new LargeArr(params.count * 4);\n      var offset = 0;\n      var point;\n      var tmpIn = [];\n      var tmpOut = [];\n      var dataIndex;\n\n      while ((dataIndex = params.next()) != null) {\n        var axisDimVal = data.get(cDim, dataIndex);\n        var openVal = data.get(openDim, dataIndex);\n        var closeVal = data.get(closeDim, dataIndex);\n        var lowestVal = data.get(lowestDim, dataIndex);\n        var highestVal = data.get(highestDim, dataIndex);\n\n        if (isNaN(axisDimVal) || isNaN(lowestVal) || isNaN(highestVal)) {\n          points[offset++] = NaN;\n          offset += 3;\n          continue;\n        }\n\n        points[offset++] = getSign(data, dataIndex, openVal, closeVal, closeDim);\n        tmpIn[cDimIdx] = axisDimVal;\n        tmpIn[vDimIdx] = lowestVal;\n        point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n        points[offset++] = point ? point[0] : NaN;\n        points[offset++] = point ? point[1] : NaN;\n        tmpIn[vDimIdx] = highestVal;\n        point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n        points[offset++] = point ? point[1] : NaN;\n      }\n\n      data.setLayout('largePoints', points);\n    }\n  }\n};\n\nfunction getSign(data, dataIndex, openVal, closeVal, closeDim) {\n  var sign;\n\n  if (openVal > closeVal) {\n    sign = -1;\n  } else if (openVal < closeVal) {\n    sign = 1;\n  } else {\n    sign = dataIndex > 0 ? data.get(closeDim, dataIndex - 1) <= closeVal ? 1 : -1 : 1;\n  }\n\n  return sign;\n}\n\nfunction calculateCandleWidth(seriesModel, data) {\n  var baseAxis = seriesModel.getBaseAxis();\n  var extent;\n  var bandWidth = baseAxis.type === 'category' ? baseAxis.getBandWidth() : (extent = baseAxis.getExtent(), Math.abs(extent[1] - extent[0]) / data.count());\n  var barMaxWidth = parsePercent(retrieve2(seriesModel.get('barMaxWidth'), bandWidth), bandWidth);\n  var barMinWidth = parsePercent(retrieve2(seriesModel.get('barMinWidth'), 1), bandWidth);\n  var barWidth = seriesModel.get('barWidth');\n  return barWidth != null ? parsePercent(barWidth, bandWidth) : Math.max(Math.min(bandWidth / 2, barMaxWidth), barMinWidth);\n}\n\nexport default candlestickLayout;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport CandlestickView from './CandlestickView';\nimport CandlestickSeriesModel from './CandlestickSeries';\nimport preprocessor from './preprocessor';\nimport candlestickVisual from './candlestickVisual';\nimport candlestickLayout from './candlestickLayout';\nexport function install(registers) {\n  registers.registerChartView(CandlestickView);\n  registers.registerSeriesModel(CandlestickSeriesModel);\n  registers.registerPreprocessor(preprocessor);\n  registers.registerVisual(candlestickVisual);\n  registers.registerLayout(candlestickLayout);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { createSymbol } from '../../util/symbol';\nimport { Group } from '../../util/graphic';\nimport { enterEmphasis, leaveEmphasis, enableHoverEmphasis } from '../../util/states';\nimport { parsePercent } from '../../util/number';\nimport SymbolClz from './Symbol';\nvar EFFECT_RIPPLE_NUMBER = 3;\n\nfunction normalizeSymbolSize(symbolSize) {\n  if (!zrUtil.isArray(symbolSize)) {\n    symbolSize = [+symbolSize, +symbolSize];\n  }\n\n  return symbolSize;\n}\n\nfunction updateRipplePath(rippleGroup, effectCfg) {\n  var color = effectCfg.rippleEffectColor || effectCfg.color;\n  rippleGroup.eachChild(function (ripplePath) {\n    ripplePath.attr({\n      z: effectCfg.z,\n      zlevel: effectCfg.zlevel,\n      style: {\n        stroke: effectCfg.brushType === 'stroke' ? color : null,\n        fill: effectCfg.brushType === 'fill' ? color : null\n      }\n    });\n  });\n}\n\nvar EffectSymbol = function (_super) {\n  __extends(EffectSymbol, _super);\n\n  function EffectSymbol(data, idx) {\n    var _this = _super.call(this) || this;\n\n    var symbol = new SymbolClz(data, idx);\n    var rippleGroup = new Group();\n\n    _this.add(symbol);\n\n    _this.add(rippleGroup);\n\n    _this.updateData(data, idx);\n\n    return _this;\n  }\n\n  EffectSymbol.prototype.stopEffectAnimation = function () {\n    this.childAt(1).removeAll();\n  };\n\n  EffectSymbol.prototype.startEffectAnimation = function (effectCfg) {\n    var symbolType = effectCfg.symbolType;\n    var color = effectCfg.color;\n    var rippleGroup = this.childAt(1);\n\n    for (var i = 0; i < EFFECT_RIPPLE_NUMBER; i++) {\n      var ripplePath = createSymbol(symbolType, -1, -1, 2, 2, color);\n      ripplePath.attr({\n        style: {\n          strokeNoScale: true\n        },\n        z2: 99,\n        silent: true,\n        scaleX: 0.5,\n        scaleY: 0.5\n      });\n      var delay = -i / EFFECT_RIPPLE_NUMBER * effectCfg.period + effectCfg.effectOffset;\n      ripplePath.animate('', true).when(effectCfg.period, {\n        scale: [effectCfg.rippleScale / 2, effectCfg.rippleScale / 2]\n      }).delay(delay).start();\n      ripplePath.animateStyle(true).when(effectCfg.period, {\n        opacity: 0\n      }).delay(delay).start();\n      rippleGroup.add(ripplePath);\n    }\n\n    updateRipplePath(rippleGroup, effectCfg);\n  };\n\n  EffectSymbol.prototype.updateEffectAnimation = function (effectCfg) {\n    var oldEffectCfg = this._effectCfg;\n    var rippleGroup = this.childAt(1);\n    var DIFFICULT_PROPS = ['symbolType', 'period', 'rippleScale'];\n\n    for (var i = 0; i < DIFFICULT_PROPS.length; i++) {\n      var propName = DIFFICULT_PROPS[i];\n\n      if (oldEffectCfg[propName] !== effectCfg[propName]) {\n        this.stopEffectAnimation();\n        this.startEffectAnimation(effectCfg);\n        return;\n      }\n    }\n\n    updateRipplePath(rippleGroup, effectCfg);\n  };\n\n  EffectSymbol.prototype.highlight = function () {\n    enterEmphasis(this);\n  };\n\n  EffectSymbol.prototype.downplay = function () {\n    leaveEmphasis(this);\n  };\n\n  EffectSymbol.prototype.updateData = function (data, idx) {\n    var _this = this;\n\n    var seriesModel = data.hostModel;\n    this.childAt(0).updateData(data, idx);\n    var rippleGroup = this.childAt(1);\n    var itemModel = data.getItemModel(idx);\n    var symbolType = data.getItemVisual(idx, 'symbol');\n    var symbolSize = normalizeSymbolSize(data.getItemVisual(idx, 'symbolSize'));\n    var symbolStyle = data.getItemVisual(idx, 'style');\n    var color = symbolStyle && symbolStyle.fill;\n    rippleGroup.setScale(symbolSize);\n    rippleGroup.traverse(function (ripplePath) {\n      ripplePath.setStyle('fill', color);\n    });\n    var symbolOffset = itemModel.getShallow('symbolOffset');\n\n    if (symbolOffset) {\n      rippleGroup.x = parsePercent(symbolOffset[0], symbolSize[0]);\n      rippleGroup.y = parsePercent(symbolOffset[1], symbolSize[1]);\n    }\n\n    var symbolRotate = data.getItemVisual(idx, 'symbolRotate');\n    rippleGroup.rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\n    var effectCfg = {};\n    effectCfg.showEffectOn = seriesModel.get('showEffectOn');\n    effectCfg.rippleScale = itemModel.get(['rippleEffect', 'scale']);\n    effectCfg.brushType = itemModel.get(['rippleEffect', 'brushType']);\n    effectCfg.period = itemModel.get(['rippleEffect', 'period']) * 1000;\n    effectCfg.effectOffset = idx / data.count();\n    effectCfg.z = seriesModel.getShallow('z') || 0;\n    effectCfg.zlevel = seriesModel.getShallow('zlevel') || 0;\n    effectCfg.symbolType = symbolType;\n    effectCfg.color = color;\n    effectCfg.rippleEffectColor = itemModel.get(['rippleEffect', 'color']);\n    this.off('mouseover').off('mouseout').off('emphasis').off('normal');\n\n    if (effectCfg.showEffectOn === 'render') {\n      this._effectCfg ? this.updateEffectAnimation(effectCfg) : this.startEffectAnimation(effectCfg);\n      this._effectCfg = effectCfg;\n    } else {\n      this._effectCfg = null;\n      this.stopEffectAnimation();\n\n      this.onHoverStateChange = function (toState) {\n        if (toState === 'emphasis') {\n          if (effectCfg.showEffectOn !== 'render') {\n            _this.startEffectAnimation(effectCfg);\n          }\n        } else if (toState === 'normal') {\n          if (effectCfg.showEffectOn !== 'render') {\n            _this.stopEffectAnimation();\n          }\n        }\n      };\n    }\n\n    this._effectCfg = effectCfg;\n    enableHoverEmphasis(this);\n  };\n\n  ;\n\n  EffectSymbol.prototype.fadeOut = function (cb) {\n    this.off('mouseover').off('mouseout');\n    cb && cb();\n  };\n\n  ;\n  return EffectSymbol;\n}(Group);\n\nzrUtil.inherits(EffectSymbol, Group);\nexport default EffectSymbol;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SymbolDraw from '../helper/SymbolDraw';\nimport EffectSymbol from '../helper/EffectSymbol';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport pointsLayout from '../../layout/points';\nimport ChartView from '../../view/Chart';\n\nvar EffectScatterView = function (_super) {\n  __extends(EffectScatterView, _super);\n\n  function EffectScatterView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = EffectScatterView.type;\n    return _this;\n  }\n\n  EffectScatterView.prototype.init = function () {\n    this._symbolDraw = new SymbolDraw(EffectSymbol);\n  };\n\n  EffectScatterView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    var effectSymbolDraw = this._symbolDraw;\n    effectSymbolDraw.updateData(data);\n    this.group.add(effectSymbolDraw.group);\n  };\n\n  EffectScatterView.prototype.updateTransform = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    this.group.dirty();\n    var res = pointsLayout('').reset(seriesModel, ecModel, api);\n\n    if (res.progress) {\n      res.progress({\n        start: 0,\n        end: data.count(),\n        count: data.count()\n      }, data);\n    }\n\n    this._symbolDraw.updateLayout();\n  };\n\n  EffectScatterView.prototype._updateGroupTransform = function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys && coordSys.getRoamTransform) {\n      this.group.transform = matrix.clone(coordSys.getRoamTransform());\n      this.group.decomposeTransform();\n    }\n  };\n\n  EffectScatterView.prototype.remove = function (ecModel, api) {\n    this._symbolDraw && this._symbolDraw.remove(true);\n  };\n\n  EffectScatterView.type = 'effectScatter';\n  return EffectScatterView;\n}(ChartView);\n\nexport default EffectScatterView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListFromArray from '../helper/createListFromArray';\nimport SeriesModel from '../../model/Series';\n\nvar EffectScatterSeriesModel = function (_super) {\n  __extends(EffectScatterSeriesModel, _super);\n\n  function EffectScatterSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = EffectScatterSeriesModel.type;\n    _this.hasSymbolVisual = true;\n    return _this;\n  }\n\n  EffectScatterSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: true\n    });\n  };\n\n  EffectScatterSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n    return selectors.point(data.getItemLayout(dataIndex));\n  };\n\n  EffectScatterSeriesModel.type = 'series.effectScatter';\n  EffectScatterSeriesModel.dependencies = ['grid', 'polar'];\n  EffectScatterSeriesModel.defaultOption = {\n    coordinateSystem: 'cartesian2d',\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    effectType: 'ripple',\n    progressive: 0,\n    showEffectOn: 'render',\n    rippleEffect: {\n      period: 4,\n      scale: 2.5,\n      brushType: 'fill'\n    },\n    symbolSize: 10\n  };\n  return EffectScatterSeriesModel;\n}(SeriesModel);\n\nexport default EffectScatterSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport EffectScatterView from './EffectScatterView';\nimport EffectScatterSeriesModel from './EffectScatterSeries';\nimport layoutPoints from '../../layout/points';\nexport function install(registers) {\n  registers.registerChartView(EffectScatterView);\n  registers.registerSeriesModel(EffectScatterSeriesModel);\n  registers.registerLayout(layoutPoints('effectScatter'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport Line from './Line';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { createSymbol } from '../../util/symbol';\nimport * as vec2 from 'zrender/lib/core/vector';\nimport * as curveUtil from 'zrender/lib/core/curve';\n\nvar EffectLine = function (_super) {\n  __extends(EffectLine, _super);\n\n  function EffectLine(lineData, idx, seriesScope) {\n    var _this = _super.call(this) || this;\n\n    _this.add(_this.createLine(lineData, idx, seriesScope));\n\n    _this._updateEffectSymbol(lineData, idx);\n\n    return _this;\n  }\n\n  EffectLine.prototype.createLine = function (lineData, idx, seriesScope) {\n    return new Line(lineData, idx, seriesScope);\n  };\n\n  EffectLine.prototype._updateEffectSymbol = function (lineData, idx) {\n    var itemModel = lineData.getItemModel(idx);\n    var effectModel = itemModel.getModel('effect');\n    var size = effectModel.get('symbolSize');\n    var symbolType = effectModel.get('symbol');\n\n    if (!zrUtil.isArray(size)) {\n      size = [size, size];\n    }\n\n    var lineStyle = lineData.getItemVisual(idx, 'style');\n    var color = effectModel.get('color') || lineStyle && lineStyle.stroke;\n    var symbol = this.childAt(1);\n\n    if (this._symbolType !== symbolType) {\n      this.remove(symbol);\n      symbol = createSymbol(symbolType, -0.5, -0.5, 1, 1, color);\n      symbol.z2 = 100;\n      symbol.culling = true;\n      this.add(symbol);\n    }\n\n    if (!symbol) {\n      return;\n    }\n\n    symbol.setStyle('shadowColor', color);\n    symbol.setStyle(effectModel.getItemStyle(['color']));\n    symbol.scaleX = size[0];\n    symbol.scaleY = size[1];\n    symbol.setColor(color);\n    this._symbolType = symbolType;\n    this._symbolScale = size;\n\n    this._updateEffectAnimation(lineData, effectModel, idx);\n  };\n\n  EffectLine.prototype._updateEffectAnimation = function (lineData, effectModel, idx) {\n    var symbol = this.childAt(1);\n\n    if (!symbol) {\n      return;\n    }\n\n    var self = this;\n    var points = lineData.getItemLayout(idx);\n    var period = effectModel.get('period') * 1000;\n    var loop = effectModel.get('loop');\n    var constantSpeed = effectModel.get('constantSpeed');\n    var delayExpr = zrUtil.retrieve(effectModel.get('delay'), function (idx) {\n      return idx / lineData.count() * period / 3;\n    });\n    symbol.ignore = true;\n\n    this._updateAnimationPoints(symbol, points);\n\n    if (constantSpeed > 0) {\n      period = this._getLineLength(symbol) / constantSpeed * 1000;\n    }\n\n    if (period !== this._period || loop !== this._loop) {\n      symbol.stopAnimation();\n\n      if (period > 0) {\n        var delayNum = void 0;\n\n        if (typeof delayExpr === 'function') {\n          delayNum = delayExpr(idx);\n        } else {\n          delayNum = delayExpr;\n        }\n\n        if (symbol.__t > 0) {\n          delayNum = -period * symbol.__t;\n        }\n\n        symbol.__t = 0;\n        var animator = symbol.animate('', loop).when(period, {\n          __t: 1\n        }).delay(delayNum).during(function () {\n          self._updateSymbolPosition(symbol);\n        });\n\n        if (!loop) {\n          animator.done(function () {\n            self.remove(symbol);\n          });\n        }\n\n        animator.start();\n      }\n    }\n\n    this._period = period;\n    this._loop = loop;\n  };\n\n  EffectLine.prototype._getLineLength = function (symbol) {\n    return vec2.dist(symbol.__p1, symbol.__cp1) + vec2.dist(symbol.__cp1, symbol.__p2);\n  };\n\n  EffectLine.prototype._updateAnimationPoints = function (symbol, points) {\n    symbol.__p1 = points[0];\n    symbol.__p2 = points[1];\n    symbol.__cp1 = points[2] || [(points[0][0] + points[1][0]) / 2, (points[0][1] + points[1][1]) / 2];\n  };\n\n  EffectLine.prototype.updateData = function (lineData, idx, seriesScope) {\n    this.childAt(0).updateData(lineData, idx, seriesScope);\n\n    this._updateEffectSymbol(lineData, idx);\n  };\n\n  EffectLine.prototype._updateSymbolPosition = function (symbol) {\n    var p1 = symbol.__p1;\n    var p2 = symbol.__p2;\n    var cp1 = symbol.__cp1;\n    var t = symbol.__t;\n    var pos = [symbol.x, symbol.y];\n    var lastPos = pos.slice();\n    var quadraticAt = curveUtil.quadraticAt;\n    var quadraticDerivativeAt = curveUtil.quadraticDerivativeAt;\n    pos[0] = quadraticAt(p1[0], cp1[0], p2[0], t);\n    pos[1] = quadraticAt(p1[1], cp1[1], p2[1], t);\n    var tx = quadraticDerivativeAt(p1[0], cp1[0], p2[0], t);\n    var ty = quadraticDerivativeAt(p1[1], cp1[1], p2[1], t);\n    symbol.rotation = -Math.atan2(ty, tx) - Math.PI / 2;\n\n    if (this._symbolType === 'line' || this._symbolType === 'rect' || this._symbolType === 'roundRect') {\n      if (symbol.__lastT !== undefined && symbol.__lastT < symbol.__t) {\n        symbol.scaleY = vec2.dist(lastPos, pos) * 1.05;\n\n        if (t === 1) {\n          pos[0] = lastPos[0] + (pos[0] - lastPos[0]) / 2;\n          pos[1] = lastPos[1] + (pos[1] - lastPos[1]) / 2;\n        }\n      } else if (symbol.__lastT === 1) {\n        symbol.scaleY = 2 * vec2.dist(p1, pos);\n      } else {\n        symbol.scaleY = this._symbolScale[1];\n      }\n    }\n\n    symbol.__lastT = symbol.__t;\n    symbol.ignore = false;\n    symbol.x = pos[0];\n    symbol.y = pos[1];\n  };\n\n  EffectLine.prototype.updateLayout = function (lineData, idx) {\n    this.childAt(0).updateLayout(lineData, idx);\n    var effectModel = lineData.getItemModel(idx).getModel('effect');\n\n    this._updateEffectAnimation(lineData, effectModel, idx);\n  };\n\n  return EffectLine;\n}(graphic.Group);\n\nexport default EffectLine;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis } from '../../util/states';\n\nvar Polyline = function (_super) {\n  __extends(Polyline, _super);\n\n  function Polyline(lineData, idx, seriesScope) {\n    var _this = _super.call(this) || this;\n\n    _this._createPolyline(lineData, idx, seriesScope);\n\n    return _this;\n  }\n\n  Polyline.prototype._createPolyline = function (lineData, idx, seriesScope) {\n    var points = lineData.getItemLayout(idx);\n    var line = new graphic.Polyline({\n      shape: {\n        points: points\n      }\n    });\n    this.add(line);\n\n    this._updateCommonStl(lineData, idx, seriesScope);\n  };\n\n  ;\n\n  Polyline.prototype.updateData = function (lineData, idx, seriesScope) {\n    var seriesModel = lineData.hostModel;\n    var line = this.childAt(0);\n    var target = {\n      shape: {\n        points: lineData.getItemLayout(idx)\n      }\n    };\n    graphic.updateProps(line, target, seriesModel, idx);\n\n    this._updateCommonStl(lineData, idx, seriesScope);\n  };\n\n  ;\n\n  Polyline.prototype._updateCommonStl = function (lineData, idx, seriesScope) {\n    var line = this.childAt(0);\n    var itemModel = lineData.getItemModel(idx);\n    var hoverLineStyle = seriesScope && seriesScope.emphasisLineStyle;\n\n    if (!seriesScope || lineData.hasItemOption) {\n      hoverLineStyle = itemModel.getModel(['emphasis', 'lineStyle']).getLineStyle();\n    }\n\n    line.useStyle(lineData.getItemVisual(idx, 'style'));\n    line.style.fill = null;\n    line.style.strokeNoScale = true;\n    var lineEmphasisState = line.ensureState('emphasis');\n    lineEmphasisState.style = hoverLineStyle;\n    enableHoverEmphasis(this);\n  };\n\n  ;\n\n  Polyline.prototype.updateLayout = function (lineData, idx) {\n    var polyline = this.childAt(0);\n    polyline.setShape('points', lineData.getItemLayout(idx));\n  };\n\n  ;\n  return Polyline;\n}(graphic.Group);\n\nexport default Polyline;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Polyline from './Polyline';\nimport EffectLine from './EffectLine';\nimport * as vec2 from 'zrender/lib/core/vector';\n\nvar EffectPolyline = function (_super) {\n  __extends(EffectPolyline, _super);\n\n  function EffectPolyline() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this._lastFrame = 0;\n    _this._lastFramePercent = 0;\n    return _this;\n  }\n\n  EffectPolyline.prototype.createLine = function (lineData, idx, seriesScope) {\n    return new Polyline(lineData, idx, seriesScope);\n  };\n\n  ;\n\n  EffectPolyline.prototype._updateAnimationPoints = function (symbol, points) {\n    this._points = points;\n    var accLenArr = [0];\n    var len = 0;\n\n    for (var i = 1; i < points.length; i++) {\n      var p1 = points[i - 1];\n      var p2 = points[i];\n      len += vec2.dist(p1, p2);\n      accLenArr.push(len);\n    }\n\n    if (len === 0) {\n      this._length = 0;\n      return;\n    }\n\n    for (var i = 0; i < accLenArr.length; i++) {\n      accLenArr[i] /= len;\n    }\n\n    this._offsets = accLenArr;\n    this._length = len;\n  };\n\n  ;\n\n  EffectPolyline.prototype._getLineLength = function () {\n    return this._length;\n  };\n\n  ;\n\n  EffectPolyline.prototype._updateSymbolPosition = function (symbol) {\n    var t = symbol.__t;\n    var points = this._points;\n    var offsets = this._offsets;\n    var len = points.length;\n\n    if (!offsets) {\n      return;\n    }\n\n    var lastFrame = this._lastFrame;\n    var frame;\n\n    if (t < this._lastFramePercent) {\n      var start = Math.min(lastFrame + 1, len - 1);\n\n      for (frame = start; frame >= 0; frame--) {\n        if (offsets[frame] <= t) {\n          break;\n        }\n      }\n\n      frame = Math.min(frame, len - 2);\n    } else {\n      for (frame = lastFrame; frame < len; frame++) {\n        if (offsets[frame] > t) {\n          break;\n        }\n      }\n\n      frame = Math.min(frame - 1, len - 2);\n    }\n\n    var p = (t - offsets[frame]) / (offsets[frame + 1] - offsets[frame]);\n    var p0 = points[frame];\n    var p1 = points[frame + 1];\n    symbol.x = p0[0] * (1 - p) + p * p1[0];\n    symbol.y = p0[1] * (1 - p) + p * p1[1];\n    var tx = p1[0] - p0[0];\n    var ty = p1[1] - p0[1];\n    symbol.rotation = -Math.atan2(ty, tx) - Math.PI / 2;\n    this._lastFrame = frame;\n    this._lastFramePercent = t;\n    symbol.ignore = false;\n  };\n\n  ;\n  return EffectPolyline;\n}(EffectLine);\n\nexport default EffectPolyline;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport IncrementalDisplayable from 'zrender/lib/graphic/IncrementalDisplayable';\nimport * as lineContain from 'zrender/lib/contain/line';\nimport * as quadraticContain from 'zrender/lib/contain/quadratic';\nimport { getECData } from '../../util/innerStore';\n\nvar LargeLinesPathShape = function () {\n  function LargeLinesPathShape() {\n    this.polyline = false;\n    this.curveness = 0;\n    this.segs = [];\n  }\n\n  return LargeLinesPathShape;\n}();\n\nvar LargeLinesPath = function (_super) {\n  __extends(LargeLinesPath, _super);\n\n  function LargeLinesPath(opts) {\n    return _super.call(this, opts) || this;\n  }\n\n  LargeLinesPath.prototype.getDefaultStyle = function () {\n    return {\n      stroke: '#000',\n      fill: null\n    };\n  };\n\n  LargeLinesPath.prototype.getDefaultShape = function () {\n    return new LargeLinesPathShape();\n  };\n\n  LargeLinesPath.prototype.buildPath = function (ctx, shape) {\n    var segs = shape.segs;\n    var curveness = shape.curveness;\n\n    if (shape.polyline) {\n      for (var i = 0; i < segs.length;) {\n        var count = segs[i++];\n\n        if (count > 0) {\n          ctx.moveTo(segs[i++], segs[i++]);\n\n          for (var k = 1; k < count; k++) {\n            ctx.lineTo(segs[i++], segs[i++]);\n          }\n        }\n      }\n    } else {\n      for (var i = 0; i < segs.length;) {\n        var x0 = segs[i++];\n        var y0 = segs[i++];\n        var x1 = segs[i++];\n        var y1 = segs[i++];\n        ctx.moveTo(x0, y0);\n\n        if (curveness > 0) {\n          var x2 = (x0 + x1) / 2 - (y0 - y1) * curveness;\n          var y2 = (y0 + y1) / 2 - (x1 - x0) * curveness;\n          ctx.quadraticCurveTo(x2, y2, x1, y1);\n        } else {\n          ctx.lineTo(x1, y1);\n        }\n      }\n    }\n  };\n\n  LargeLinesPath.prototype.findDataIndex = function (x, y) {\n    var shape = this.shape;\n    var segs = shape.segs;\n    var curveness = shape.curveness;\n    var lineWidth = this.style.lineWidth;\n\n    if (shape.polyline) {\n      var dataIndex = 0;\n\n      for (var i = 0; i < segs.length;) {\n        var count = segs[i++];\n\n        if (count > 0) {\n          var x0 = segs[i++];\n          var y0 = segs[i++];\n\n          for (var k = 1; k < count; k++) {\n            var x1 = segs[i++];\n            var y1 = segs[i++];\n\n            if (lineContain.containStroke(x0, y0, x1, y1, lineWidth, x, y)) {\n              return dataIndex;\n            }\n          }\n        }\n\n        dataIndex++;\n      }\n    } else {\n      var dataIndex = 0;\n\n      for (var i = 0; i < segs.length;) {\n        var x0 = segs[i++];\n        var y0 = segs[i++];\n        var x1 = segs[i++];\n        var y1 = segs[i++];\n\n        if (curveness > 0) {\n          var x2 = (x0 + x1) / 2 - (y0 - y1) * curveness;\n          var y2 = (y0 + y1) / 2 - (x1 - x0) * curveness;\n\n          if (quadraticContain.containStroke(x0, y0, x2, y2, x1, y1, lineWidth, x, y)) {\n            return dataIndex;\n          }\n        } else {\n          if (lineContain.containStroke(x0, y0, x1, y1, lineWidth, x, y)) {\n            return dataIndex;\n          }\n        }\n\n        dataIndex++;\n      }\n    }\n\n    return -1;\n  };\n\n  return LargeLinesPath;\n}(graphic.Path);\n\nvar LargeLineDraw = function () {\n  function LargeLineDraw() {\n    this.group = new graphic.Group();\n  }\n\n  LargeLineDraw.prototype.isPersistent = function () {\n    return !this._incremental;\n  };\n\n  ;\n\n  LargeLineDraw.prototype.updateData = function (data) {\n    this.group.removeAll();\n    var lineEl = new LargeLinesPath({\n      rectHover: true,\n      cursor: 'default'\n    });\n    lineEl.setShape({\n      segs: data.getLayout('linesPoints')\n    });\n\n    this._setCommon(lineEl, data);\n\n    this.group.add(lineEl);\n    this._incremental = null;\n  };\n\n  ;\n\n  LargeLineDraw.prototype.incrementalPrepareUpdate = function (data) {\n    this.group.removeAll();\n\n    this._clearIncremental();\n\n    if (data.count() > 5e5) {\n      if (!this._incremental) {\n        this._incremental = new IncrementalDisplayable({\n          silent: true\n        });\n      }\n\n      this.group.add(this._incremental);\n    } else {\n      this._incremental = null;\n    }\n  };\n\n  ;\n\n  LargeLineDraw.prototype.incrementalUpdate = function (taskParams, data) {\n    var lineEl = new LargeLinesPath();\n    lineEl.setShape({\n      segs: data.getLayout('linesPoints')\n    });\n\n    this._setCommon(lineEl, data, !!this._incremental);\n\n    if (!this._incremental) {\n      lineEl.rectHover = true;\n      lineEl.cursor = 'default';\n      lineEl.__startIndex = taskParams.start;\n      this.group.add(lineEl);\n    } else {\n      this._incremental.addDisplayable(lineEl, true);\n    }\n  };\n\n  ;\n\n  LargeLineDraw.prototype.remove = function () {\n    this._clearIncremental();\n\n    this._incremental = null;\n    this.group.removeAll();\n  };\n\n  ;\n\n  LargeLineDraw.prototype._setCommon = function (lineEl, data, isIncremental) {\n    var hostModel = data.hostModel;\n    lineEl.setShape({\n      polyline: hostModel.get('polyline'),\n      curveness: hostModel.get(['lineStyle', 'curveness'])\n    });\n    lineEl.useStyle(hostModel.getModel('lineStyle').getLineStyle());\n    lineEl.style.strokeNoScale = true;\n    var style = data.getVisual('style');\n\n    if (style && style.stroke) {\n      lineEl.setStyle('stroke', style.stroke);\n    }\n\n    lineEl.setStyle('fill', null);\n\n    if (!isIncremental) {\n      var ecData_1 = getECData(lineEl);\n      ecData_1.seriesIndex = hostModel.seriesIndex;\n      lineEl.on('mousemove', function (e) {\n        ecData_1.dataIndex = null;\n        var dataIndex = lineEl.findDataIndex(e.offsetX, e.offsetY);\n\n        if (dataIndex > 0) {\n          ecData_1.dataIndex = dataIndex + lineEl.__startIndex;\n        }\n      });\n    }\n  };\n\n  ;\n\n  LargeLineDraw.prototype._clearIncremental = function () {\n    var incremental = this._incremental;\n\n    if (incremental) {\n      incremental.clearDisplaybles();\n    }\n  };\n\n  ;\n  return LargeLineDraw;\n}();\n\nexport default LargeLineDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport createRenderPlanner from '../helper/createRenderPlanner';\nvar linesLayout = {\n  seriesType: 'lines',\n  plan: createRenderPlanner(),\n  reset: function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n    var isPolyline = seriesModel.get('polyline');\n    var isLarge = seriesModel.pipelineContext.large;\n    return {\n      progress: function (params, lineData) {\n        var lineCoords = [];\n\n        if (isLarge) {\n          var points = void 0;\n          var segCount = params.end - params.start;\n\n          if (isPolyline) {\n            var totalCoordsCount = 0;\n\n            for (var i = params.start; i < params.end; i++) {\n              totalCoordsCount += seriesModel.getLineCoordsCount(i);\n            }\n\n            points = new Float32Array(segCount + totalCoordsCount * 2);\n          } else {\n            points = new Float32Array(segCount * 4);\n          }\n\n          var offset = 0;\n          var pt = [];\n\n          for (var i = params.start; i < params.end; i++) {\n            var len = seriesModel.getLineCoords(i, lineCoords);\n\n            if (isPolyline) {\n              points[offset++] = len;\n            }\n\n            for (var k = 0; k < len; k++) {\n              pt = coordSys.dataToPoint(lineCoords[k], false, pt);\n              points[offset++] = pt[0];\n              points[offset++] = pt[1];\n            }\n          }\n\n          lineData.setLayout('linesPoints', points);\n        } else {\n          for (var i = params.start; i < params.end; i++) {\n            var itemModel = lineData.getItemModel(i);\n            var len = seriesModel.getLineCoords(i, lineCoords);\n            var pts = [];\n\n            if (isPolyline) {\n              for (var j = 0; j < len; j++) {\n                pts.push(coordSys.dataToPoint(lineCoords[j]));\n              }\n            } else {\n              pts[0] = coordSys.dataToPoint(lineCoords[0]);\n              pts[1] = coordSys.dataToPoint(lineCoords[1]);\n              var curveness = itemModel.get(['lineStyle', 'curveness']);\n\n              if (+curveness) {\n                pts[2] = [(pts[0][0] + pts[1][0]) / 2 - (pts[0][1] - pts[1][1]) * curveness, (pts[0][1] + pts[1][1]) / 2 - (pts[1][0] - pts[0][0]) * curveness];\n              }\n            }\n\n            lineData.setItemLayout(i, pts);\n          }\n        }\n      }\n    };\n  }\n};\nexport default linesLayout;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport LineDraw from '../helper/LineDraw';\nimport EffectLine from '../helper/EffectLine';\nimport Line from '../helper/Line';\nimport Polyline from '../helper/Polyline';\nimport EffectPolyline from '../helper/EffectPolyline';\nimport LargeLineDraw from '../helper/LargeLineDraw';\nimport linesLayout from './linesLayout';\nimport { createClipPath } from '../helper/createClipPathFromCoordSys';\nimport ChartView from '../../view/Chart';\n\nvar LinesView = function (_super) {\n  __extends(LinesView, _super);\n\n  function LinesView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = LinesView.type;\n    return _this;\n  }\n\n  LinesView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n\n    var lineDraw = this._updateLineDraw(data, seriesModel);\n\n    var zlevel = seriesModel.get('zlevel');\n    var trailLength = seriesModel.get(['effect', 'trailLength']);\n    var zr = api.getZr();\n    var isSvg = zr.painter.getType() === 'svg';\n\n    if (!isSvg) {\n      zr.painter.getLayer(zlevel).clear(true);\n    }\n\n    if (this._lastZlevel != null && !isSvg) {\n      zr.configLayer(this._lastZlevel, {\n        motionBlur: false\n      });\n    }\n\n    if (this._showEffect(seriesModel) && trailLength) {\n      if (process.env.NODE_ENV !== 'production') {\n        var notInIndividual_1 = false;\n        ecModel.eachSeries(function (otherSeriesModel) {\n          if (otherSeriesModel !== seriesModel && otherSeriesModel.get('zlevel') === zlevel) {\n            notInIndividual_1 = true;\n          }\n        });\n        notInIndividual_1 && console.warn('Lines with trail effect should have an individual zlevel');\n      }\n\n      if (!isSvg) {\n        zr.configLayer(zlevel, {\n          motionBlur: true,\n          lastFrameAlpha: Math.max(Math.min(trailLength / 10 + 0.9, 1), 0)\n        });\n      }\n    }\n\n    lineDraw.updateData(data);\n    var clipPath = seriesModel.get('clip', true) && createClipPath(seriesModel.coordinateSystem, false, seriesModel);\n\n    if (clipPath) {\n      this.group.setClipPath(clipPath);\n    } else {\n      this.group.removeClipPath();\n    }\n\n    this._lastZlevel = zlevel;\n    this._finished = true;\n  };\n\n  LinesView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n\n    var lineDraw = this._updateLineDraw(data, seriesModel);\n\n    lineDraw.incrementalPrepareUpdate(data);\n\n    this._clearLayer(api);\n\n    this._finished = false;\n  };\n\n  LinesView.prototype.incrementalRender = function (taskParams, seriesModel, ecModel) {\n    this._lineDraw.incrementalUpdate(taskParams, seriesModel.getData());\n\n    this._finished = taskParams.end === seriesModel.getData().count();\n  };\n\n  LinesView.prototype.updateTransform = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    var pipelineContext = seriesModel.pipelineContext;\n\n    if (!this._finished || pipelineContext.large || pipelineContext.progressiveRender) {\n      return {\n        update: true\n      };\n    } else {\n      var res = linesLayout.reset(seriesModel, ecModel, api);\n\n      if (res.progress) {\n        res.progress({\n          start: 0,\n          end: data.count(),\n          count: data.count()\n        }, data);\n      }\n\n      this._lineDraw.updateLayout();\n\n      this._clearLayer(api);\n    }\n  };\n\n  LinesView.prototype._updateLineDraw = function (data, seriesModel) {\n    var lineDraw = this._lineDraw;\n\n    var hasEffect = this._showEffect(seriesModel);\n\n    var isPolyline = !!seriesModel.get('polyline');\n    var pipelineContext = seriesModel.pipelineContext;\n    var isLargeDraw = pipelineContext.large;\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (hasEffect && isLargeDraw) {\n        console.warn('Large lines not support effect');\n      }\n    }\n\n    if (!lineDraw || hasEffect !== this._hasEffet || isPolyline !== this._isPolyline || isLargeDraw !== this._isLargeDraw) {\n      if (lineDraw) {\n        lineDraw.remove();\n      }\n\n      lineDraw = this._lineDraw = isLargeDraw ? new LargeLineDraw() : new LineDraw(isPolyline ? hasEffect ? EffectPolyline : Polyline : hasEffect ? EffectLine : Line);\n      this._hasEffet = hasEffect;\n      this._isPolyline = isPolyline;\n      this._isLargeDraw = isLargeDraw;\n      this.group.removeAll();\n    }\n\n    this.group.add(lineDraw.group);\n    return lineDraw;\n  };\n\n  LinesView.prototype._showEffect = function (seriesModel) {\n    return !!seriesModel.get(['effect', 'show']);\n  };\n\n  LinesView.prototype._clearLayer = function (api) {\n    var zr = api.getZr();\n    var isSvg = zr.painter.getType() === 'svg';\n\n    if (!isSvg && this._lastZlevel != null) {\n      zr.painter.getLayer(this._lastZlevel).clear(true);\n    }\n  };\n\n  LinesView.prototype.remove = function (ecModel, api) {\n    this._lineDraw && this._lineDraw.remove();\n    this._lineDraw = null;\n\n    this._clearLayer(api);\n  };\n\n  LinesView.type = 'lines';\n  return LinesView;\n}(ChartView);\n\nexport default LinesView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport List from '../../data/List';\nimport { concatArray, mergeAll, map } from 'zrender/lib/core/util';\nimport CoordinateSystem from '../../core/CoordinateSystem';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup';\nvar Uint32Arr = typeof Uint32Array === 'undefined' ? Array : Uint32Array;\nvar Float64Arr = typeof Float64Array === 'undefined' ? Array : Float64Array;\n\nfunction compatEc2(seriesOpt) {\n  var data = seriesOpt.data;\n\n  if (data && data[0] && data[0][0] && data[0][0].coord) {\n    if (process.env.NODE_ENV !== 'production') {\n      console.warn('Lines data configuration has been changed to' + ' { coords:[[1,2],[2,3]] }');\n    }\n\n    seriesOpt.data = map(data, function (itemOpt) {\n      var coords = [itemOpt[0].coord, itemOpt[1].coord];\n      var target = {\n        coords: coords\n      };\n\n      if (itemOpt[0].name) {\n        target.fromName = itemOpt[0].name;\n      }\n\n      if (itemOpt[1].name) {\n        target.toName = itemOpt[1].name;\n      }\n\n      return mergeAll([target, itemOpt[0], itemOpt[1]]);\n    });\n  }\n}\n\nvar LinesSeriesModel = function (_super) {\n  __extends(LinesSeriesModel, _super);\n\n  function LinesSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = LinesSeriesModel.type;\n    _this.visualStyleAccessPath = 'lineStyle';\n    _this.visualDrawType = 'stroke';\n    return _this;\n  }\n\n  LinesSeriesModel.prototype.init = function (option) {\n    option.data = option.data || [];\n    compatEc2(option);\n\n    var result = this._processFlatCoordsArray(option.data);\n\n    this._flatCoords = result.flatCoords;\n    this._flatCoordsOffset = result.flatCoordsOffset;\n\n    if (result.flatCoords) {\n      option.data = new Float32Array(result.count);\n    }\n\n    _super.prototype.init.apply(this, arguments);\n  };\n\n  LinesSeriesModel.prototype.mergeOption = function (option) {\n    compatEc2(option);\n\n    if (option.data) {\n      var result = this._processFlatCoordsArray(option.data);\n\n      this._flatCoords = result.flatCoords;\n      this._flatCoordsOffset = result.flatCoordsOffset;\n\n      if (result.flatCoords) {\n        option.data = new Float32Array(result.count);\n      }\n    }\n\n    _super.prototype.mergeOption.apply(this, arguments);\n  };\n\n  LinesSeriesModel.prototype.appendData = function (params) {\n    var result = this._processFlatCoordsArray(params.data);\n\n    if (result.flatCoords) {\n      if (!this._flatCoords) {\n        this._flatCoords = result.flatCoords;\n        this._flatCoordsOffset = result.flatCoordsOffset;\n      } else {\n        this._flatCoords = concatArray(this._flatCoords, result.flatCoords);\n        this._flatCoordsOffset = concatArray(this._flatCoordsOffset, result.flatCoordsOffset);\n      }\n\n      params.data = new Float32Array(result.count);\n    }\n\n    this.getRawData().appendData(params.data);\n  };\n\n  LinesSeriesModel.prototype._getCoordsFromItemModel = function (idx) {\n    var itemModel = this.getData().getItemModel(idx);\n    var coords = itemModel.option instanceof Array ? itemModel.option : itemModel.getShallow('coords');\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!(coords instanceof Array && coords.length > 0 && coords[0] instanceof Array)) {\n        throw new Error('Invalid coords ' + JSON.stringify(coords) + '. Lines must have 2d coords array in data item.');\n      }\n    }\n\n    return coords;\n  };\n\n  LinesSeriesModel.prototype.getLineCoordsCount = function (idx) {\n    if (this._flatCoordsOffset) {\n      return this._flatCoordsOffset[idx * 2 + 1];\n    } else {\n      return this._getCoordsFromItemModel(idx).length;\n    }\n  };\n\n  LinesSeriesModel.prototype.getLineCoords = function (idx, out) {\n    if (this._flatCoordsOffset) {\n      var offset = this._flatCoordsOffset[idx * 2];\n      var len = this._flatCoordsOffset[idx * 2 + 1];\n\n      for (var i = 0; i < len; i++) {\n        out[i] = out[i] || [];\n        out[i][0] = this._flatCoords[offset + i * 2];\n        out[i][1] = this._flatCoords[offset + i * 2 + 1];\n      }\n\n      return len;\n    } else {\n      var coords = this._getCoordsFromItemModel(idx);\n\n      for (var i = 0; i < coords.length; i++) {\n        out[i] = out[i] || [];\n        out[i][0] = coords[i][0];\n        out[i][1] = coords[i][1];\n      }\n\n      return coords.length;\n    }\n  };\n\n  LinesSeriesModel.prototype._processFlatCoordsArray = function (data) {\n    var startOffset = 0;\n\n    if (this._flatCoords) {\n      startOffset = this._flatCoords.length;\n    }\n\n    if (typeof data[0] === 'number') {\n      var len = data.length;\n      var coordsOffsetAndLenStorage = new Uint32Arr(len);\n      var coordsStorage = new Float64Arr(len);\n      var coordsCursor = 0;\n      var offsetCursor = 0;\n      var dataCount = 0;\n\n      for (var i = 0; i < len;) {\n        dataCount++;\n        var count = data[i++];\n        coordsOffsetAndLenStorage[offsetCursor++] = coordsCursor + startOffset;\n        coordsOffsetAndLenStorage[offsetCursor++] = count;\n\n        for (var k = 0; k < count; k++) {\n          var x = data[i++];\n          var y = data[i++];\n          coordsStorage[coordsCursor++] = x;\n          coordsStorage[coordsCursor++] = y;\n\n          if (i > len) {\n            if (process.env.NODE_ENV !== 'production') {\n              throw new Error('Invalid data format.');\n            }\n          }\n        }\n      }\n\n      return {\n        flatCoordsOffset: new Uint32Array(coordsOffsetAndLenStorage.buffer, 0, offsetCursor),\n        flatCoords: coordsStorage,\n        count: dataCount\n      };\n    }\n\n    return {\n      flatCoordsOffset: null,\n      flatCoords: null,\n      count: data.length\n    };\n  };\n\n  LinesSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    if (process.env.NODE_ENV !== 'production') {\n      var CoordSys = CoordinateSystem.get(option.coordinateSystem);\n\n      if (!CoordSys) {\n        throw new Error('Unkown coordinate system ' + option.coordinateSystem);\n      }\n    }\n\n    var lineData = new List(['value'], this);\n    lineData.hasItemOption = false;\n    lineData.initData(option.data, [], function (dataItem, dimName, dataIndex, dimIndex) {\n      if (dataItem instanceof Array) {\n        return NaN;\n      } else {\n        lineData.hasItemOption = true;\n        var value = dataItem.value;\n\n        if (value != null) {\n          return value instanceof Array ? value[dimIndex] : value;\n        }\n      }\n    });\n    return lineData;\n  };\n\n  LinesSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var data = this.getData();\n    var itemModel = data.getItemModel(dataIndex);\n    var name = itemModel.get('name');\n\n    if (name) {\n      return name;\n    }\n\n    var fromName = itemModel.get('fromName');\n    var toName = itemModel.get('toName');\n    var nameArr = [];\n    fromName != null && nameArr.push(fromName);\n    toName != null && nameArr.push(toName);\n    return createTooltipMarkup('nameValue', {\n      name: nameArr.join(' > ')\n    });\n  };\n\n  LinesSeriesModel.prototype.preventIncremental = function () {\n    return !!this.get(['effect', 'show']);\n  };\n\n  LinesSeriesModel.prototype.getProgressive = function () {\n    var progressive = this.option.progressive;\n\n    if (progressive == null) {\n      return this.option.large ? 1e4 : this.get('progressive');\n    }\n\n    return progressive;\n  };\n\n  LinesSeriesModel.prototype.getProgressiveThreshold = function () {\n    var progressiveThreshold = this.option.progressiveThreshold;\n\n    if (progressiveThreshold == null) {\n      return this.option.large ? 2e4 : this.get('progressiveThreshold');\n    }\n\n    return progressiveThreshold;\n  };\n\n  LinesSeriesModel.type = 'series.lines';\n  LinesSeriesModel.dependencies = ['grid', 'polar', 'geo', 'calendar'];\n  LinesSeriesModel.defaultOption = {\n    coordinateSystem: 'geo',\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    xAxisIndex: 0,\n    yAxisIndex: 0,\n    symbol: ['none', 'none'],\n    symbolSize: [10, 10],\n    geoIndex: 0,\n    effect: {\n      show: false,\n      period: 4,\n      constantSpeed: 0,\n      symbol: 'circle',\n      symbolSize: 3,\n      loop: true,\n      trailLength: 0.2\n    },\n    large: false,\n    largeThreshold: 2000,\n    polyline: false,\n    clip: true,\n    label: {\n      show: false,\n      position: 'end'\n    },\n    lineStyle: {\n      opacity: 0.5\n    }\n  };\n  return LinesSeriesModel;\n}(SeriesModel);\n\nexport default LinesSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nfunction normalize(a) {\n  if (!(a instanceof Array)) {\n    a = [a, a];\n  }\n\n  return a;\n}\n\nvar linesVisual = {\n  seriesType: 'lines',\n  reset: function (seriesModel) {\n    var symbolType = normalize(seriesModel.get('symbol'));\n    var symbolSize = normalize(seriesModel.get('symbolSize'));\n    var data = seriesModel.getData();\n    data.setVisual('fromSymbol', symbolType && symbolType[0]);\n    data.setVisual('toSymbol', symbolType && symbolType[1]);\n    data.setVisual('fromSymbolSize', symbolSize && symbolSize[0]);\n    data.setVisual('toSymbolSize', symbolSize && symbolSize[1]);\n\n    function dataEach(data, idx) {\n      var itemModel = data.getItemModel(idx);\n      var symbolType = normalize(itemModel.getShallow('symbol', true));\n      var symbolSize = normalize(itemModel.getShallow('symbolSize', true));\n      symbolType[0] && data.setItemVisual(idx, 'fromSymbol', symbolType[0]);\n      symbolType[1] && data.setItemVisual(idx, 'toSymbol', symbolType[1]);\n      symbolSize[0] && data.setItemVisual(idx, 'fromSymbolSize', symbolSize[0]);\n      symbolSize[1] && data.setItemVisual(idx, 'toSymbolSize', symbolSize[1]);\n    }\n\n    return {\n      dataEach: data.hasItemOption ? dataEach : null\n    };\n  }\n};\nexport default linesVisual;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport LinesView from './LinesView';\nimport LinesSeriesModel from './LinesSeries';\nimport linesLayout from './linesLayout';\nimport linesVisual from './linesVisual';\nexport function install(registers) {\n  registers.registerChartView(LinesView);\n  registers.registerSeriesModel(LinesSeriesModel);\n  registers.registerLayout(linesLayout);\n  registers.registerVisual(linesVisual);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar GRADIENT_LEVELS = 256;\n\nvar HeatmapLayer = function () {\n  function HeatmapLayer() {\n    this.blurSize = 30;\n    this.pointSize = 20;\n    this.maxOpacity = 1;\n    this.minOpacity = 0;\n    this._gradientPixels = {\n      inRange: null,\n      outOfRange: null\n    };\n    var canvas = zrUtil.createCanvas();\n    this.canvas = canvas;\n  }\n\n  HeatmapLayer.prototype.update = function (data, width, height, normalize, colorFunc, isInRange) {\n    var brush = this._getBrush();\n\n    var gradientInRange = this._getGradient(colorFunc, 'inRange');\n\n    var gradientOutOfRange = this._getGradient(colorFunc, 'outOfRange');\n\n    var r = this.pointSize + this.blurSize;\n    var canvas = this.canvas;\n    var ctx = canvas.getContext('2d');\n    var len = data.length;\n    canvas.width = width;\n    canvas.height = height;\n\n    for (var i = 0; i < len; ++i) {\n      var p = data[i];\n      var x = p[0];\n      var y = p[1];\n      var value = p[2];\n      var alpha = normalize(value);\n      ctx.globalAlpha = alpha;\n      ctx.drawImage(brush, x - r, y - r);\n    }\n\n    if (!canvas.width || !canvas.height) {\n      return canvas;\n    }\n\n    var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);\n    var pixels = imageData.data;\n    var offset = 0;\n    var pixelLen = pixels.length;\n    var minOpacity = this.minOpacity;\n    var maxOpacity = this.maxOpacity;\n    var diffOpacity = maxOpacity - minOpacity;\n\n    while (offset < pixelLen) {\n      var alpha = pixels[offset + 3] / 256;\n      var gradientOffset = Math.floor(alpha * (GRADIENT_LEVELS - 1)) * 4;\n\n      if (alpha > 0) {\n        var gradient = isInRange(alpha) ? gradientInRange : gradientOutOfRange;\n        alpha > 0 && (alpha = alpha * diffOpacity + minOpacity);\n        pixels[offset++] = gradient[gradientOffset];\n        pixels[offset++] = gradient[gradientOffset + 1];\n        pixels[offset++] = gradient[gradientOffset + 2];\n        pixels[offset++] = gradient[gradientOffset + 3] * alpha * 256;\n      } else {\n        offset += 4;\n      }\n    }\n\n    ctx.putImageData(imageData, 0, 0);\n    return canvas;\n  };\n\n  HeatmapLayer.prototype._getBrush = function () {\n    var brushCanvas = this._brushCanvas || (this._brushCanvas = zrUtil.createCanvas());\n    var r = this.pointSize + this.blurSize;\n    var d = r * 2;\n    brushCanvas.width = d;\n    brushCanvas.height = d;\n    var ctx = brushCanvas.getContext('2d');\n    ctx.clearRect(0, 0, d, d);\n    ctx.shadowOffsetX = d;\n    ctx.shadowBlur = this.blurSize;\n    ctx.shadowColor = '#000';\n    ctx.beginPath();\n    ctx.arc(-r, r, this.pointSize, 0, Math.PI * 2, true);\n    ctx.closePath();\n    ctx.fill();\n    return brushCanvas;\n  };\n\n  HeatmapLayer.prototype._getGradient = function (colorFunc, state) {\n    var gradientPixels = this._gradientPixels;\n    var pixelsSingleState = gradientPixels[state] || (gradientPixels[state] = new Uint8ClampedArray(256 * 4));\n    var color = [0, 0, 0, 0];\n    var off = 0;\n\n    for (var i = 0; i < 256; i++) {\n      colorFunc[state](i / 255, true, color);\n      pixelsSingleState[off++] = color[0];\n      pixelsSingleState[off++] = color[1];\n      pixelsSingleState[off++] = color[2];\n      pixelsSingleState[off++] = color[3];\n    }\n\n    return pixelsSingleState;\n  };\n\n  return HeatmapLayer;\n}();\n\nexport default HeatmapLayer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis } from '../../util/states';\nimport HeatmapLayer from './HeatmapLayer';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ChartView from '../../view/Chart';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\n\nfunction getIsInPiecewiseRange(dataExtent, pieceList, selected) {\n  var dataSpan = dataExtent[1] - dataExtent[0];\n  pieceList = zrUtil.map(pieceList, function (piece) {\n    return {\n      interval: [(piece.interval[0] - dataExtent[0]) / dataSpan, (piece.interval[1] - dataExtent[0]) / dataSpan]\n    };\n  });\n  var len = pieceList.length;\n  var lastIndex = 0;\n  return function (val) {\n    var i;\n\n    for (i = lastIndex; i < len; i++) {\n      var interval = pieceList[i].interval;\n\n      if (interval[0] <= val && val <= interval[1]) {\n        lastIndex = i;\n        break;\n      }\n    }\n\n    if (i === len) {\n      for (i = lastIndex - 1; i >= 0; i--) {\n        var interval = pieceList[i].interval;\n\n        if (interval[0] <= val && val <= interval[1]) {\n          lastIndex = i;\n          break;\n        }\n      }\n    }\n\n    return i >= 0 && i < len && selected[i];\n  };\n}\n\nfunction getIsInContinuousRange(dataExtent, range) {\n  var dataSpan = dataExtent[1] - dataExtent[0];\n  range = [(range[0] - dataExtent[0]) / dataSpan, (range[1] - dataExtent[0]) / dataSpan];\n  return function (val) {\n    return val >= range[0] && val <= range[1];\n  };\n}\n\nfunction isGeoCoordSys(coordSys) {\n  var dimensions = coordSys.dimensions;\n  return dimensions[0] === 'lng' && dimensions[1] === 'lat';\n}\n\nvar HeatmapView = function (_super) {\n  __extends(HeatmapView, _super);\n\n  function HeatmapView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = HeatmapView.type;\n    return _this;\n  }\n\n  HeatmapView.prototype.render = function (seriesModel, ecModel, api) {\n    var visualMapOfThisSeries;\n    ecModel.eachComponent('visualMap', function (visualMap) {\n      visualMap.eachTargetSeries(function (targetSeries) {\n        if (targetSeries === seriesModel) {\n          visualMapOfThisSeries = visualMap;\n        }\n      });\n    });\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!visualMapOfThisSeries) {\n        throw new Error('Heatmap must use with visualMap');\n      }\n    }\n\n    this.group.removeAll();\n    this._incrementalDisplayable = null;\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys.type === 'cartesian2d' || coordSys.type === 'calendar') {\n      this._renderOnCartesianAndCalendar(seriesModel, api, 0, seriesModel.getData().count());\n    } else if (isGeoCoordSys(coordSys)) {\n      this._renderOnGeo(coordSys, seriesModel, visualMapOfThisSeries, api);\n    }\n  };\n\n  HeatmapView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n    this.group.removeAll();\n  };\n\n  HeatmapView.prototype.incrementalRender = function (params, seriesModel, ecModel, api) {\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys) {\n      if (isGeoCoordSys(coordSys)) {\n        this.render(seriesModel, ecModel, api);\n      } else {\n        this._renderOnCartesianAndCalendar(seriesModel, api, params.start, params.end, true);\n      }\n    }\n  };\n\n  HeatmapView.prototype._renderOnCartesianAndCalendar = function (seriesModel, api, start, end, incremental) {\n    var coordSys = seriesModel.coordinateSystem;\n    var width;\n    var height;\n    var xAxisExtent;\n    var yAxisExtent;\n\n    if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n      var xAxis = coordSys.getAxis('x');\n      var yAxis = coordSys.getAxis('y');\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (!(xAxis.type === 'category' && yAxis.type === 'category')) {\n          throw new Error('Heatmap on cartesian must have two category axes');\n        }\n\n        if (!(xAxis.onBand && yAxis.onBand)) {\n          throw new Error('Heatmap on cartesian must have two axes with boundaryGap true');\n        }\n      }\n\n      width = xAxis.getBandWidth();\n      height = yAxis.getBandWidth();\n      xAxisExtent = xAxis.scale.getExtent();\n      yAxisExtent = yAxis.scale.getExtent();\n    }\n\n    var group = this.group;\n    var data = seriesModel.getData();\n    var emphasisStyle = seriesModel.getModel(['emphasis', 'itemStyle']).getItemStyle();\n    var blurStyle = seriesModel.getModel(['blur', 'itemStyle']).getItemStyle();\n    var selectStyle = seriesModel.getModel(['select', 'itemStyle']).getItemStyle();\n    var labelStatesModels = getLabelStatesModels(seriesModel);\n    var focus = seriesModel.get(['emphasis', 'focus']);\n    var blurScope = seriesModel.get(['emphasis', 'blurScope']);\n    var dataDims = isCoordinateSystemType(coordSys, 'cartesian2d') ? [data.mapDimension('x'), data.mapDimension('y'), data.mapDimension('value')] : [data.mapDimension('time'), data.mapDimension('value')];\n\n    for (var idx = start; idx < end; idx++) {\n      var rect = void 0;\n      var style = data.getItemVisual(idx, 'style');\n\n      if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n        var dataDimX = data.get(dataDims[0], idx);\n        var dataDimY = data.get(dataDims[1], idx);\n\n        if (isNaN(data.get(dataDims[2], idx)) || dataDimX < xAxisExtent[0] || dataDimX > xAxisExtent[1] || dataDimY < yAxisExtent[0] || dataDimY > yAxisExtent[1]) {\n          continue;\n        }\n\n        var point = coordSys.dataToPoint([dataDimX, dataDimY]);\n        rect = new graphic.Rect({\n          shape: {\n            x: Math.floor(Math.round(point[0]) - width / 2),\n            y: Math.floor(Math.round(point[1]) - height / 2),\n            width: Math.ceil(width),\n            height: Math.ceil(height)\n          },\n          style: style\n        });\n      } else {\n        if (isNaN(data.get(dataDims[1], idx))) {\n          continue;\n        }\n\n        rect = new graphic.Rect({\n          z2: 1,\n          shape: coordSys.dataToRect([data.get(dataDims[0], idx)]).contentShape,\n          style: style\n        });\n      }\n\n      var itemModel = data.getItemModel(idx);\n\n      if (data.hasItemOption) {\n        var emphasisModel = itemModel.getModel('emphasis');\n        emphasisStyle = emphasisModel.getModel('itemStyle').getItemStyle();\n        blurStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\n        selectStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\n        focus = emphasisModel.get('focus');\n        blurScope = emphasisModel.get('blurScope');\n        labelStatesModels = getLabelStatesModels(itemModel);\n      }\n\n      var rawValue = seriesModel.getRawValue(idx);\n      var defaultText = '-';\n\n      if (rawValue && rawValue[2] != null) {\n        defaultText = rawValue[2] + '';\n      }\n\n      setLabelStyle(rect, labelStatesModels, {\n        labelFetcher: seriesModel,\n        labelDataIndex: idx,\n        defaultOpacity: style.opacity,\n        defaultText: defaultText\n      });\n      rect.ensureState('emphasis').style = emphasisStyle;\n      rect.ensureState('blur').style = blurStyle;\n      rect.ensureState('select').style = selectStyle;\n      enableHoverEmphasis(rect, focus, blurScope);\n      rect.incremental = incremental;\n\n      if (incremental) {\n        rect.states.emphasis.hoverLayer = true;\n      }\n\n      group.add(rect);\n      data.setItemGraphicEl(idx, rect);\n    }\n  };\n\n  HeatmapView.prototype._renderOnGeo = function (geo, seriesModel, visualMapModel, api) {\n    var inRangeVisuals = visualMapModel.targetVisuals.inRange;\n    var outOfRangeVisuals = visualMapModel.targetVisuals.outOfRange;\n    var data = seriesModel.getData();\n    var hmLayer = this._hmLayer || this._hmLayer || new HeatmapLayer();\n    hmLayer.blurSize = seriesModel.get('blurSize');\n    hmLayer.pointSize = seriesModel.get('pointSize');\n    hmLayer.minOpacity = seriesModel.get('minOpacity');\n    hmLayer.maxOpacity = seriesModel.get('maxOpacity');\n    var rect = geo.getViewRect().clone();\n    var roamTransform = geo.getRoamTransform();\n    rect.applyTransform(roamTransform);\n    var x = Math.max(rect.x, 0);\n    var y = Math.max(rect.y, 0);\n    var x2 = Math.min(rect.width + rect.x, api.getWidth());\n    var y2 = Math.min(rect.height + rect.y, api.getHeight());\n    var width = x2 - x;\n    var height = y2 - y;\n    var dims = [data.mapDimension('lng'), data.mapDimension('lat'), data.mapDimension('value')];\n    var points = data.mapArray(dims, function (lng, lat, value) {\n      var pt = geo.dataToPoint([lng, lat]);\n      pt[0] -= x;\n      pt[1] -= y;\n      pt.push(value);\n      return pt;\n    });\n    var dataExtent = visualMapModel.getExtent();\n    var isInRange = visualMapModel.type === 'visualMap.continuous' ? getIsInContinuousRange(dataExtent, visualMapModel.option.range) : getIsInPiecewiseRange(dataExtent, visualMapModel.getPieceList(), visualMapModel.option.selected);\n    hmLayer.update(points, width, height, inRangeVisuals.color.getNormalizer(), {\n      inRange: inRangeVisuals.color.getColorMapper(),\n      outOfRange: outOfRangeVisuals.color.getColorMapper()\n    }, isInRange);\n    var img = new graphic.Image({\n      style: {\n        width: width,\n        height: height,\n        x: x,\n        y: y,\n        image: hmLayer.canvas\n      },\n      silent: true\n    });\n    this.group.add(img);\n  };\n\n  HeatmapView.type = 'heatmap';\n  return HeatmapView;\n}(ChartView);\n\nexport default HeatmapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport createListFromArray from '../helper/createListFromArray';\nimport CoordinateSystem from '../../core/CoordinateSystem';\n\nvar HeatmapSeriesModel = function (_super) {\n  __extends(HeatmapSeriesModel, _super);\n\n  function HeatmapSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = HeatmapSeriesModel.type;\n    return _this;\n  }\n\n  HeatmapSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListFromArray(this.getSource(), this, {\n      generateCoord: 'value'\n    });\n  };\n\n  HeatmapSeriesModel.prototype.preventIncremental = function () {\n    var coordSysCreator = CoordinateSystem.get(this.get('coordinateSystem'));\n\n    if (coordSysCreator && coordSysCreator.dimensions) {\n      return coordSysCreator.dimensions[0] === 'lng' && coordSysCreator.dimensions[1] === 'lat';\n    }\n  };\n\n  HeatmapSeriesModel.type = 'series.heatmap';\n  HeatmapSeriesModel.dependencies = ['grid', 'geo', 'calendar'];\n  HeatmapSeriesModel.defaultOption = {\n    coordinateSystem: 'cartesian2d',\n    zlevel: 0,\n    z: 2,\n    geoIndex: 0,\n    blurSize: 30,\n    pointSize: 20,\n    maxOpacity: 1,\n    minOpacity: 0,\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    }\n  };\n  return HeatmapSeriesModel;\n}(SeriesModel);\n\nexport default HeatmapSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport HeatmapView from './HeatmapView';\nimport HeatmapSeriesModel from './HeatmapSeries';\nexport function install(registers) {\n  registers.registerChartView(HeatmapView);\n  registers.registerSeriesModel(HeatmapSeriesModel);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis } from '../../util/states';\nimport { createSymbol } from '../../util/symbol';\nimport { parsePercent, isNumeric } from '../../util/number';\nimport ChartView from '../../view/Chart';\nimport { getDefaultLabel } from '../helper/labelHelper';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport ZRImage from 'zrender/lib/graphic/Image';\nimport { getECData } from '../../util/innerStore';\nvar BAR_BORDER_WIDTH_QUERY = ['itemStyle', 'borderWidth'];\nvar LAYOUT_ATTRS = [{\n  xy: 'x',\n  wh: 'width',\n  index: 0,\n  posDesc: ['left', 'right']\n}, {\n  xy: 'y',\n  wh: 'height',\n  index: 1,\n  posDesc: ['top', 'bottom']\n}];\nvar pathForLineWidth = new graphic.Circle();\n\nvar PictorialBarView = function (_super) {\n  __extends(PictorialBarView, _super);\n\n  function PictorialBarView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = PictorialBarView.type;\n    return _this;\n  }\n\n  PictorialBarView.prototype.render = function (seriesModel, ecModel, api) {\n    var group = this.group;\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var cartesian = seriesModel.coordinateSystem;\n    var baseAxis = cartesian.getBaseAxis();\n    var isHorizontal = baseAxis.isHorizontal();\n    var coordSysRect = cartesian.master.getRect();\n    var opt = {\n      ecSize: {\n        width: api.getWidth(),\n        height: api.getHeight()\n      },\n      seriesModel: seriesModel,\n      coordSys: cartesian,\n      coordSysExtent: [[coordSysRect.x, coordSysRect.x + coordSysRect.width], [coordSysRect.y, coordSysRect.y + coordSysRect.height]],\n      isHorizontal: isHorizontal,\n      valueDim: LAYOUT_ATTRS[+isHorizontal],\n      categoryDim: LAYOUT_ATTRS[1 - +isHorizontal]\n    };\n    data.diff(oldData).add(function (dataIndex) {\n      if (!data.hasValue(dataIndex)) {\n        return;\n      }\n\n      var itemModel = getItemModel(data, dataIndex);\n      var symbolMeta = getSymbolMeta(data, dataIndex, itemModel, opt);\n      var bar = createBar(data, opt, symbolMeta);\n      data.setItemGraphicEl(dataIndex, bar);\n      group.add(bar);\n      updateCommon(bar, opt, symbolMeta);\n    }).update(function (newIndex, oldIndex) {\n      var bar = oldData.getItemGraphicEl(oldIndex);\n\n      if (!data.hasValue(newIndex)) {\n        group.remove(bar);\n        return;\n      }\n\n      var itemModel = getItemModel(data, newIndex);\n      var symbolMeta = getSymbolMeta(data, newIndex, itemModel, opt);\n      var pictorialShapeStr = getShapeStr(data, symbolMeta);\n\n      if (bar && pictorialShapeStr !== bar.__pictorialShapeStr) {\n        group.remove(bar);\n        data.setItemGraphicEl(newIndex, null);\n        bar = null;\n      }\n\n      if (bar) {\n        updateBar(bar, opt, symbolMeta);\n      } else {\n        bar = createBar(data, opt, symbolMeta, true);\n      }\n\n      data.setItemGraphicEl(newIndex, bar);\n      bar.__pictorialSymbolMeta = symbolMeta;\n      group.add(bar);\n      updateCommon(bar, opt, symbolMeta);\n    }).remove(function (dataIndex) {\n      var bar = oldData.getItemGraphicEl(dataIndex);\n      bar && removeBar(oldData, dataIndex, bar.__pictorialSymbolMeta.animationModel, bar);\n    }).execute();\n    this._data = data;\n    return this.group;\n  };\n\n  PictorialBarView.prototype.remove = function (ecModel, api) {\n    var group = this.group;\n    var data = this._data;\n\n    if (ecModel.get('animation')) {\n      if (data) {\n        data.eachItemGraphicEl(function (bar) {\n          removeBar(data, getECData(bar).dataIndex, ecModel, bar);\n        });\n      }\n    } else {\n      group.removeAll();\n    }\n  };\n\n  PictorialBarView.type = 'pictorialBar';\n  return PictorialBarView;\n}(ChartView);\n\nfunction getSymbolMeta(data, dataIndex, itemModel, opt) {\n  var layout = data.getItemLayout(dataIndex);\n  var symbolRepeat = itemModel.get('symbolRepeat');\n  var symbolClip = itemModel.get('symbolClip');\n  var symbolPosition = itemModel.get('symbolPosition') || 'start';\n  var symbolRotate = itemModel.get('symbolRotate');\n  var rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\n  var symbolPatternSize = itemModel.get('symbolPatternSize') || 2;\n  var isAnimationEnabled = itemModel.isAnimationEnabled();\n  var symbolMeta = {\n    dataIndex: dataIndex,\n    layout: layout,\n    itemModel: itemModel,\n    symbolType: data.getItemVisual(dataIndex, 'symbol') || 'circle',\n    style: data.getItemVisual(dataIndex, 'style'),\n    symbolClip: symbolClip,\n    symbolRepeat: symbolRepeat,\n    symbolRepeatDirection: itemModel.get('symbolRepeatDirection'),\n    symbolPatternSize: symbolPatternSize,\n    rotation: rotation,\n    animationModel: isAnimationEnabled ? itemModel : null,\n    hoverScale: isAnimationEnabled && itemModel.get(['emphasis', 'scale']),\n    z2: itemModel.getShallow('z', true) || 0\n  };\n  prepareBarLength(itemModel, symbolRepeat, layout, opt, symbolMeta);\n  prepareSymbolSize(data, dataIndex, layout, symbolRepeat, symbolClip, symbolMeta.boundingLength, symbolMeta.pxSign, symbolPatternSize, opt, symbolMeta);\n  prepareLineWidth(itemModel, symbolMeta.symbolScale, rotation, opt, symbolMeta);\n  var symbolSize = symbolMeta.symbolSize;\n  var symbolOffset = itemModel.get('symbolOffset');\n\n  if (zrUtil.isArray(symbolOffset)) {\n    symbolOffset = [parsePercent(symbolOffset[0], symbolSize[0]), parsePercent(symbolOffset[1], symbolSize[1])];\n  }\n\n  prepareLayoutInfo(itemModel, symbolSize, layout, symbolRepeat, symbolClip, symbolOffset, symbolPosition, symbolMeta.valueLineWidth, symbolMeta.boundingLength, symbolMeta.repeatCutLength, opt, symbolMeta);\n  return symbolMeta;\n}\n\nfunction prepareBarLength(itemModel, symbolRepeat, layout, opt, outputSymbolMeta) {\n  var valueDim = opt.valueDim;\n  var symbolBoundingData = itemModel.get('symbolBoundingData');\n  var valueAxis = opt.coordSys.getOtherAxis(opt.coordSys.getBaseAxis());\n  var zeroPx = valueAxis.toGlobalCoord(valueAxis.dataToCoord(0));\n  var pxSignIdx = 1 - +(layout[valueDim.wh] <= 0);\n  var boundingLength;\n\n  if (zrUtil.isArray(symbolBoundingData)) {\n    var symbolBoundingExtent = [convertToCoordOnAxis(valueAxis, symbolBoundingData[0]) - zeroPx, convertToCoordOnAxis(valueAxis, symbolBoundingData[1]) - zeroPx];\n    symbolBoundingExtent[1] < symbolBoundingExtent[0] && symbolBoundingExtent.reverse();\n    boundingLength = symbolBoundingExtent[pxSignIdx];\n  } else if (symbolBoundingData != null) {\n    boundingLength = convertToCoordOnAxis(valueAxis, symbolBoundingData) - zeroPx;\n  } else if (symbolRepeat) {\n    boundingLength = opt.coordSysExtent[valueDim.index][pxSignIdx] - zeroPx;\n  } else {\n    boundingLength = layout[valueDim.wh];\n  }\n\n  outputSymbolMeta.boundingLength = boundingLength;\n\n  if (symbolRepeat) {\n    outputSymbolMeta.repeatCutLength = layout[valueDim.wh];\n  }\n\n  outputSymbolMeta.pxSign = boundingLength > 0 ? 1 : boundingLength < 0 ? -1 : 0;\n}\n\nfunction convertToCoordOnAxis(axis, value) {\n  return axis.toGlobalCoord(axis.dataToCoord(axis.scale.parse(value)));\n}\n\nfunction prepareSymbolSize(data, dataIndex, layout, symbolRepeat, symbolClip, boundingLength, pxSign, symbolPatternSize, opt, outputSymbolMeta) {\n  var valueDim = opt.valueDim;\n  var categoryDim = opt.categoryDim;\n  var categorySize = Math.abs(layout[categoryDim.wh]);\n  var symbolSize = data.getItemVisual(dataIndex, 'symbolSize');\n  var parsedSymbolSize;\n\n  if (zrUtil.isArray(symbolSize)) {\n    parsedSymbolSize = symbolSize.slice();\n  } else {\n    if (symbolSize == null) {\n      parsedSymbolSize = ['100%', '100%'];\n    } else {\n      parsedSymbolSize = [symbolSize, symbolSize];\n    }\n  }\n\n  parsedSymbolSize[categoryDim.index] = parsePercent(parsedSymbolSize[categoryDim.index], categorySize);\n  parsedSymbolSize[valueDim.index] = parsePercent(parsedSymbolSize[valueDim.index], symbolRepeat ? categorySize : Math.abs(boundingLength));\n  outputSymbolMeta.symbolSize = parsedSymbolSize;\n  var symbolScale = outputSymbolMeta.symbolScale = [parsedSymbolSize[0] / symbolPatternSize, parsedSymbolSize[1] / symbolPatternSize];\n  symbolScale[valueDim.index] *= (opt.isHorizontal ? -1 : 1) * pxSign;\n}\n\nfunction prepareLineWidth(itemModel, symbolScale, rotation, opt, outputSymbolMeta) {\n  var valueLineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0;\n\n  if (valueLineWidth) {\n    pathForLineWidth.attr({\n      scaleX: symbolScale[0],\n      scaleY: symbolScale[1],\n      rotation: rotation\n    });\n    pathForLineWidth.updateTransform();\n    valueLineWidth /= pathForLineWidth.getLineScale();\n    valueLineWidth *= symbolScale[opt.valueDim.index];\n  }\n\n  outputSymbolMeta.valueLineWidth = valueLineWidth;\n}\n\nfunction prepareLayoutInfo(itemModel, symbolSize, layout, symbolRepeat, symbolClip, symbolOffset, symbolPosition, valueLineWidth, boundingLength, repeatCutLength, opt, outputSymbolMeta) {\n  var categoryDim = opt.categoryDim;\n  var valueDim = opt.valueDim;\n  var pxSign = outputSymbolMeta.pxSign;\n  var unitLength = Math.max(symbolSize[valueDim.index] + valueLineWidth, 0);\n  var pathLen = unitLength;\n\n  if (symbolRepeat) {\n    var absBoundingLength = Math.abs(boundingLength);\n    var symbolMargin = zrUtil.retrieve(itemModel.get('symbolMargin'), '15%') + '';\n    var hasEndGap = false;\n\n    if (symbolMargin.lastIndexOf('!') === symbolMargin.length - 1) {\n      hasEndGap = true;\n      symbolMargin = symbolMargin.slice(0, symbolMargin.length - 1);\n    }\n\n    var symbolMarginNumeric = parsePercent(symbolMargin, symbolSize[valueDim.index]);\n    var uLenWithMargin = Math.max(unitLength + symbolMarginNumeric * 2, 0);\n    var endFix = hasEndGap ? 0 : symbolMarginNumeric * 2;\n    var repeatSpecified = isNumeric(symbolRepeat);\n    var repeatTimes = repeatSpecified ? symbolRepeat : toIntTimes((absBoundingLength + endFix) / uLenWithMargin);\n    var mDiff = absBoundingLength - repeatTimes * unitLength;\n    symbolMarginNumeric = mDiff / 2 / (hasEndGap ? repeatTimes : repeatTimes - 1);\n    uLenWithMargin = unitLength + symbolMarginNumeric * 2;\n    endFix = hasEndGap ? 0 : symbolMarginNumeric * 2;\n\n    if (!repeatSpecified && symbolRepeat !== 'fixed') {\n      repeatTimes = repeatCutLength ? toIntTimes((Math.abs(repeatCutLength) + endFix) / uLenWithMargin) : 0;\n    }\n\n    pathLen = repeatTimes * uLenWithMargin - endFix;\n    outputSymbolMeta.repeatTimes = repeatTimes;\n    outputSymbolMeta.symbolMargin = symbolMarginNumeric;\n  }\n\n  var sizeFix = pxSign * (pathLen / 2);\n  var pathPosition = outputSymbolMeta.pathPosition = [];\n  pathPosition[categoryDim.index] = layout[categoryDim.wh] / 2;\n  pathPosition[valueDim.index] = symbolPosition === 'start' ? sizeFix : symbolPosition === 'end' ? boundingLength - sizeFix : boundingLength / 2;\n\n  if (symbolOffset) {\n    pathPosition[0] += symbolOffset[0];\n    pathPosition[1] += symbolOffset[1];\n  }\n\n  var bundlePosition = outputSymbolMeta.bundlePosition = [];\n  bundlePosition[categoryDim.index] = layout[categoryDim.xy];\n  bundlePosition[valueDim.index] = layout[valueDim.xy];\n  var barRectShape = outputSymbolMeta.barRectShape = zrUtil.extend({}, layout);\n  barRectShape[valueDim.wh] = pxSign * Math.max(Math.abs(layout[valueDim.wh]), Math.abs(pathPosition[valueDim.index] + sizeFix));\n  barRectShape[categoryDim.wh] = layout[categoryDim.wh];\n  var clipShape = outputSymbolMeta.clipShape = {};\n  clipShape[categoryDim.xy] = -layout[categoryDim.xy];\n  clipShape[categoryDim.wh] = opt.ecSize[categoryDim.wh];\n  clipShape[valueDim.xy] = 0;\n  clipShape[valueDim.wh] = layout[valueDim.wh];\n}\n\nfunction createPath(symbolMeta) {\n  var symbolPatternSize = symbolMeta.symbolPatternSize;\n  var path = createSymbol(symbolMeta.symbolType, -symbolPatternSize / 2, -symbolPatternSize / 2, symbolPatternSize, symbolPatternSize);\n  path.attr({\n    culling: true\n  });\n  path.type !== 'image' && path.setStyle({\n    strokeNoScale: true\n  });\n  return path;\n}\n\nfunction createOrUpdateRepeatSymbols(bar, opt, symbolMeta, isUpdate) {\n  var bundle = bar.__pictorialBundle;\n  var symbolSize = symbolMeta.symbolSize;\n  var valueLineWidth = symbolMeta.valueLineWidth;\n  var pathPosition = symbolMeta.pathPosition;\n  var valueDim = opt.valueDim;\n  var repeatTimes = symbolMeta.repeatTimes || 0;\n  var index = 0;\n  var unit = symbolSize[opt.valueDim.index] + valueLineWidth + symbolMeta.symbolMargin * 2;\n  eachPath(bar, function (path) {\n    path.__pictorialAnimationIndex = index;\n    path.__pictorialRepeatTimes = repeatTimes;\n\n    if (index < repeatTimes) {\n      updateAttr(path, null, makeTarget(index), symbolMeta, isUpdate);\n    } else {\n      updateAttr(path, null, {\n        scaleX: 0,\n        scaleY: 0\n      }, symbolMeta, isUpdate, function () {\n        bundle.remove(path);\n      });\n    }\n\n    index++;\n  });\n\n  for (; index < repeatTimes; index++) {\n    var path = createPath(symbolMeta);\n    path.__pictorialAnimationIndex = index;\n    path.__pictorialRepeatTimes = repeatTimes;\n    bundle.add(path);\n    var target = makeTarget(index);\n    updateAttr(path, {\n      x: target.x,\n      y: target.y,\n      scaleX: 0,\n      scaleY: 0\n    }, {\n      scaleX: target.scaleX,\n      scaleY: target.scaleY,\n      rotation: target.rotation\n    }, symbolMeta, isUpdate);\n  }\n\n  function makeTarget(index) {\n    var position = pathPosition.slice();\n    var pxSign = symbolMeta.pxSign;\n    var i = index;\n\n    if (symbolMeta.symbolRepeatDirection === 'start' ? pxSign > 0 : pxSign < 0) {\n      i = repeatTimes - 1 - index;\n    }\n\n    position[valueDim.index] = unit * (i - repeatTimes / 2 + 0.5) + pathPosition[valueDim.index];\n    return {\n      x: position[0],\n      y: position[1],\n      scaleX: symbolMeta.symbolScale[0],\n      scaleY: symbolMeta.symbolScale[1],\n      rotation: symbolMeta.rotation\n    };\n  }\n}\n\nfunction createOrUpdateSingleSymbol(bar, opt, symbolMeta, isUpdate) {\n  var bundle = bar.__pictorialBundle;\n  var mainPath = bar.__pictorialMainPath;\n\n  if (!mainPath) {\n    mainPath = bar.__pictorialMainPath = createPath(symbolMeta);\n    bundle.add(mainPath);\n    updateAttr(mainPath, {\n      x: symbolMeta.pathPosition[0],\n      y: symbolMeta.pathPosition[1],\n      scaleX: 0,\n      scaleY: 0,\n      rotation: symbolMeta.rotation\n    }, {\n      scaleX: symbolMeta.symbolScale[0],\n      scaleY: symbolMeta.symbolScale[1]\n    }, symbolMeta, isUpdate);\n  } else {\n    updateAttr(mainPath, null, {\n      x: symbolMeta.pathPosition[0],\n      y: symbolMeta.pathPosition[1],\n      scaleX: symbolMeta.symbolScale[0],\n      scaleY: symbolMeta.symbolScale[1],\n      rotation: symbolMeta.rotation\n    }, symbolMeta, isUpdate);\n  }\n}\n\nfunction createOrUpdateBarRect(bar, symbolMeta, isUpdate) {\n  var rectShape = zrUtil.extend({}, symbolMeta.barRectShape);\n  var barRect = bar.__pictorialBarRect;\n\n  if (!barRect) {\n    barRect = bar.__pictorialBarRect = new graphic.Rect({\n      z2: 2,\n      shape: rectShape,\n      silent: true,\n      style: {\n        stroke: 'transparent',\n        fill: 'transparent',\n        lineWidth: 0\n      }\n    });\n    bar.add(barRect);\n  } else {\n    updateAttr(barRect, null, {\n      shape: rectShape\n    }, symbolMeta, isUpdate);\n  }\n}\n\nfunction createOrUpdateClip(bar, opt, symbolMeta, isUpdate) {\n  if (symbolMeta.symbolClip) {\n    var clipPath = bar.__pictorialClipPath;\n    var clipShape = zrUtil.extend({}, symbolMeta.clipShape);\n    var valueDim = opt.valueDim;\n    var animationModel = symbolMeta.animationModel;\n    var dataIndex = symbolMeta.dataIndex;\n\n    if (clipPath) {\n      graphic.updateProps(clipPath, {\n        shape: clipShape\n      }, animationModel, dataIndex);\n    } else {\n      clipShape[valueDim.wh] = 0;\n      clipPath = new graphic.Rect({\n        shape: clipShape\n      });\n\n      bar.__pictorialBundle.setClipPath(clipPath);\n\n      bar.__pictorialClipPath = clipPath;\n      var target = {};\n      target[valueDim.wh] = symbolMeta.clipShape[valueDim.wh];\n      graphic[isUpdate ? 'updateProps' : 'initProps'](clipPath, {\n        shape: target\n      }, animationModel, dataIndex);\n    }\n  }\n}\n\nfunction getItemModel(data, dataIndex) {\n  var itemModel = data.getItemModel(dataIndex);\n  itemModel.getAnimationDelayParams = getAnimationDelayParams;\n  itemModel.isAnimationEnabled = isAnimationEnabled;\n  return itemModel;\n}\n\nfunction getAnimationDelayParams(path) {\n  return {\n    index: path.__pictorialAnimationIndex,\n    count: path.__pictorialRepeatTimes\n  };\n}\n\nfunction isAnimationEnabled() {\n  return this.parentModel.isAnimationEnabled() && !!this.getShallow('animation');\n}\n\nfunction createBar(data, opt, symbolMeta, isUpdate) {\n  var bar = new graphic.Group();\n  var bundle = new graphic.Group();\n  bar.add(bundle);\n  bar.__pictorialBundle = bundle;\n  bundle.x = symbolMeta.bundlePosition[0];\n  bundle.y = symbolMeta.bundlePosition[1];\n\n  if (symbolMeta.symbolRepeat) {\n    createOrUpdateRepeatSymbols(bar, opt, symbolMeta);\n  } else {\n    createOrUpdateSingleSymbol(bar, opt, symbolMeta);\n  }\n\n  createOrUpdateBarRect(bar, symbolMeta, isUpdate);\n  createOrUpdateClip(bar, opt, symbolMeta, isUpdate);\n  bar.__pictorialShapeStr = getShapeStr(data, symbolMeta);\n  bar.__pictorialSymbolMeta = symbolMeta;\n  return bar;\n}\n\nfunction updateBar(bar, opt, symbolMeta) {\n  var animationModel = symbolMeta.animationModel;\n  var dataIndex = symbolMeta.dataIndex;\n  var bundle = bar.__pictorialBundle;\n  graphic.updateProps(bundle, {\n    x: symbolMeta.bundlePosition[0],\n    y: symbolMeta.bundlePosition[1]\n  }, animationModel, dataIndex);\n\n  if (symbolMeta.symbolRepeat) {\n    createOrUpdateRepeatSymbols(bar, opt, symbolMeta, true);\n  } else {\n    createOrUpdateSingleSymbol(bar, opt, symbolMeta, true);\n  }\n\n  createOrUpdateBarRect(bar, symbolMeta, true);\n  createOrUpdateClip(bar, opt, symbolMeta, true);\n}\n\nfunction removeBar(data, dataIndex, animationModel, bar) {\n  var labelRect = bar.__pictorialBarRect;\n  labelRect && labelRect.removeTextContent();\n  var pathes = [];\n  eachPath(bar, function (path) {\n    pathes.push(path);\n  });\n  bar.__pictorialMainPath && pathes.push(bar.__pictorialMainPath);\n  bar.__pictorialClipPath && (animationModel = null);\n  zrUtil.each(pathes, function (path) {\n    graphic.removeElement(path, {\n      scaleX: 0,\n      scaleY: 0\n    }, animationModel, dataIndex, function () {\n      bar.parent && bar.parent.remove(bar);\n    });\n  });\n  data.setItemGraphicEl(dataIndex, null);\n}\n\nfunction getShapeStr(data, symbolMeta) {\n  return [data.getItemVisual(symbolMeta.dataIndex, 'symbol') || 'none', !!symbolMeta.symbolRepeat, !!symbolMeta.symbolClip].join(':');\n}\n\nfunction eachPath(bar, cb, context) {\n  zrUtil.each(bar.__pictorialBundle.children(), function (el) {\n    el !== bar.__pictorialBarRect && cb.call(context, el);\n  });\n}\n\nfunction updateAttr(el, immediateAttrs, animationAttrs, symbolMeta, isUpdate, cb) {\n  immediateAttrs && el.attr(immediateAttrs);\n\n  if (symbolMeta.symbolClip && !isUpdate) {\n    animationAttrs && el.attr(animationAttrs);\n  } else {\n    animationAttrs && graphic[isUpdate ? 'updateProps' : 'initProps'](el, animationAttrs, symbolMeta.animationModel, symbolMeta.dataIndex, cb);\n  }\n}\n\nfunction updateCommon(bar, opt, symbolMeta) {\n  var dataIndex = symbolMeta.dataIndex;\n  var itemModel = symbolMeta.itemModel;\n  var emphasisModel = itemModel.getModel('emphasis');\n  var emphasisStyle = emphasisModel.getModel('itemStyle').getItemStyle();\n  var blurStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\n  var selectStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\n  var cursorStyle = itemModel.getShallow('cursor');\n  var focus = emphasisModel.get('focus');\n  var blurScope = emphasisModel.get('blurScope');\n  var hoverScale = emphasisModel.get('scale');\n  eachPath(bar, function (path) {\n    if (path instanceof ZRImage) {\n      var pathStyle = path.style;\n      path.useStyle(zrUtil.extend({\n        image: pathStyle.image,\n        x: pathStyle.x,\n        y: pathStyle.y,\n        width: pathStyle.width,\n        height: pathStyle.height\n      }, symbolMeta.style));\n    } else {\n      path.useStyle(symbolMeta.style);\n    }\n\n    var emphasisState = path.ensureState('emphasis');\n    emphasisState.style = emphasisStyle;\n\n    if (hoverScale) {\n      emphasisState.scaleX = path.scaleX * 1.1;\n      emphasisState.scaleY = path.scaleY * 1.1;\n    }\n\n    path.ensureState('blur').style = blurStyle;\n    path.ensureState('select').style = selectStyle;\n    cursorStyle && (path.cursor = cursorStyle);\n    path.z2 = symbolMeta.z2;\n  });\n  var barPositionOutside = opt.valueDim.posDesc[+(symbolMeta.boundingLength > 0)];\n  var barRect = bar.__pictorialBarRect;\n  setLabelStyle(barRect, getLabelStatesModels(itemModel), {\n    labelFetcher: opt.seriesModel,\n    labelDataIndex: dataIndex,\n    defaultText: getDefaultLabel(opt.seriesModel.getData(), dataIndex),\n    inheritColor: symbolMeta.style.fill,\n    defaultOpacity: symbolMeta.style.opacity,\n    defaultOutsidePosition: barPositionOutside\n  });\n  enableHoverEmphasis(bar, focus, blurScope);\n}\n\nfunction toIntTimes(times) {\n  var roundedTimes = Math.round(times);\n  return Math.abs(times - roundedTimes) < 1e-4 ? roundedTimes : Math.ceil(times);\n}\n\nexport default PictorialBarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BaseBarSeriesModel from './BaseBarSeries';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar PictorialBarSeriesModel = function (_super) {\n  __extends(PictorialBarSeriesModel, _super);\n\n  function PictorialBarSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = PictorialBarSeriesModel.type;\n    _this.hasSymbolVisual = true;\n    _this.defaultSymbol = 'roundRect';\n    return _this;\n  }\n\n  PictorialBarSeriesModel.prototype.getInitialData = function (option) {\n    option.stack = null;\n    return _super.prototype.getInitialData.apply(this, arguments);\n  };\n\n  PictorialBarSeriesModel.type = 'series.pictorialBar';\n  PictorialBarSeriesModel.dependencies = ['grid'];\n  PictorialBarSeriesModel.defaultOption = inheritDefaultOption(BaseBarSeriesModel.defaultOption, {\n    symbol: 'circle',\n    symbolSize: null,\n    symbolRotate: null,\n    symbolPosition: null,\n    symbolOffset: null,\n    symbolMargin: null,\n    symbolRepeat: false,\n    symbolRepeatDirection: 'end',\n    symbolClip: false,\n    symbolBoundingData: null,\n    symbolPatternSize: 400,\n    barGap: '-100%',\n    progressive: 0,\n    emphasis: {\n      scale: false\n    },\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    }\n  });\n  return PictorialBarSeriesModel;\n}(BaseBarSeriesModel);\n\nexport default PictorialBarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport PictorialBarView from './PictorialBarView';\nimport PictorialBarSeriesModel from './PictorialBarSeries';\nimport { layout } from '../../layout/barGrid';\nimport { curry } from 'zrender/lib/core/util';\nexport function install(registers) {\n  registers.registerChartView(PictorialBarView);\n  registers.registerSeriesModel(PictorialBarSeriesModel);\n  registers.registerLayout(curry(layout, 'pictorialBar'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { ECPolygon } from '../line/poly';\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { bind } from 'zrender/lib/core/util';\nimport DataDiffer from '../../data/DataDiffer';\nimport ChartView from '../../view/Chart';\n\nvar ThemeRiverView = function (_super) {\n  __extends(ThemeRiverView, _super);\n\n  function ThemeRiverView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ThemeRiverView.type;\n    _this._layers = [];\n    return _this;\n  }\n\n  ThemeRiverView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    var self = this;\n    var group = this.group;\n    var layersSeries = seriesModel.getLayerSeries();\n    var layoutInfo = data.getLayout('layoutInfo');\n    var rect = layoutInfo.rect;\n    var boundaryGap = layoutInfo.boundaryGap;\n    group.x = 0;\n    group.y = rect.y + boundaryGap[0];\n\n    function keyGetter(item) {\n      return item.name;\n    }\n\n    var dataDiffer = new DataDiffer(this._layersSeries || [], layersSeries, keyGetter, keyGetter);\n    var newLayersGroups = [];\n    dataDiffer.add(bind(process, this, 'add')).update(bind(process, this, 'update')).remove(bind(process, this, 'remove')).execute();\n\n    function process(status, idx, oldIdx) {\n      var oldLayersGroups = self._layers;\n\n      if (status === 'remove') {\n        group.remove(oldLayersGroups[idx]);\n        return;\n      }\n\n      var points0 = [];\n      var points1 = [];\n      var style;\n      var indices = layersSeries[idx].indices;\n      var j = 0;\n\n      for (; j < indices.length; j++) {\n        var layout = data.getItemLayout(indices[j]);\n        var x = layout.x;\n        var y0 = layout.y0;\n        var y = layout.y;\n        points0.push(x, y0);\n        points1.push(x, y0 + y);\n        style = data.getItemVisual(indices[j], 'style');\n      }\n\n      var polygon;\n      var textLayout = data.getItemLayout(indices[0]);\n      var labelModel = seriesModel.getModel('label');\n      var margin = labelModel.get('margin');\n      var emphasisModel = seriesModel.getModel('emphasis');\n\n      if (status === 'add') {\n        var layerGroup = newLayersGroups[idx] = new graphic.Group();\n        polygon = new ECPolygon({\n          shape: {\n            points: points0,\n            stackedOnPoints: points1,\n            smooth: 0.4,\n            stackedOnSmooth: 0.4,\n            smoothConstraint: false\n          },\n          z2: 0\n        });\n        layerGroup.add(polygon);\n        group.add(layerGroup);\n\n        if (seriesModel.isAnimationEnabled()) {\n          polygon.setClipPath(createGridClipShape(polygon.getBoundingRect(), seriesModel, function () {\n            polygon.removeClipPath();\n          }));\n        }\n      } else {\n        var layerGroup = oldLayersGroups[oldIdx];\n        polygon = layerGroup.childAt(0);\n        group.add(layerGroup);\n        newLayersGroups[idx] = layerGroup;\n        graphic.updateProps(polygon, {\n          shape: {\n            points: points0,\n            stackedOnPoints: points1\n          }\n        }, seriesModel);\n      }\n\n      setLabelStyle(polygon, getLabelStatesModels(seriesModel), {\n        labelDataIndex: indices[j - 1],\n        defaultText: data.getName(indices[j - 1]),\n        inheritColor: style.fill\n      }, {\n        normal: {\n          verticalAlign: 'middle'\n        }\n      });\n      polygon.setTextConfig({\n        position: null,\n        local: true\n      });\n      var labelEl = polygon.getTextContent();\n\n      if (labelEl) {\n        labelEl.x = textLayout.x - margin;\n        labelEl.y = textLayout.y0 + textLayout.y / 2;\n      }\n\n      polygon.useStyle(style);\n      data.setItemGraphicEl(idx, polygon);\n      setStatesStylesFromModel(polygon, seriesModel);\n      enableHoverEmphasis(polygon, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n    }\n\n    this._layersSeries = layersSeries;\n    this._layers = newLayersGroups;\n  };\n\n  ThemeRiverView.type = 'themeRiver';\n  return ThemeRiverView;\n}(ChartView);\n\n;\n\nfunction createGridClipShape(rect, seriesModel, cb) {\n  var rectEl = new graphic.Rect({\n    shape: {\n      x: rect.x - 10,\n      y: rect.y - 10,\n      width: 0,\n      height: rect.height + 20\n    }\n  });\n  graphic.initProps(rectEl, {\n    shape: {\n      x: rect.x - 50,\n      width: rect.width + 100,\n      height: rect.height + 20\n    }\n  }, seriesModel, cb);\n  return rectEl;\n}\n\nexport default ThemeRiverView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport createDimensions from '../../data/helper/createDimensions';\nimport { getDimensionTypeByAxis } from '../../data/helper/dimensionHelper';\nimport List from '../../data/List';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { groupData, SINGLE_REFERRING } from '../../util/model';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup';\nvar DATA_NAME_INDEX = 2;\n\nvar ThemeRiverSeriesModel = function (_super) {\n  __extends(ThemeRiverSeriesModel, _super);\n\n  function ThemeRiverSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ThemeRiverSeriesModel.type;\n    _this.useColorPaletteOnData = true;\n    return _this;\n  }\n\n  ThemeRiverSeriesModel.prototype.init = function (option) {\n    _super.prototype.init.apply(this, arguments);\n\n    this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));\n  };\n\n  ThemeRiverSeriesModel.prototype.fixData = function (data) {\n    var rawDataLength = data.length;\n    var timeValueKeys = {};\n    var groupResult = groupData(data, function (item) {\n      if (!timeValueKeys.hasOwnProperty(item[0] + '')) {\n        timeValueKeys[item[0] + ''] = -1;\n      }\n\n      return item[2];\n    });\n    var layerData = [];\n    groupResult.buckets.each(function (items, key) {\n      layerData.push({\n        name: key,\n        dataList: items\n      });\n    });\n    var layerNum = layerData.length;\n\n    for (var k = 0; k < layerNum; ++k) {\n      var name_1 = layerData[k].name;\n\n      for (var j = 0; j < layerData[k].dataList.length; ++j) {\n        var timeValue = layerData[k].dataList[j][0] + '';\n        timeValueKeys[timeValue] = k;\n      }\n\n      for (var timeValue in timeValueKeys) {\n        if (timeValueKeys.hasOwnProperty(timeValue) && timeValueKeys[timeValue] !== k) {\n          timeValueKeys[timeValue] = k;\n          data[rawDataLength] = [timeValue, 0, name_1];\n          rawDataLength++;\n        }\n      }\n    }\n\n    return data;\n  };\n\n  ThemeRiverSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    var singleAxisModel = this.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\n    var axisType = singleAxisModel.get('type');\n    var filterData = zrUtil.filter(option.data, function (dataItem) {\n      return dataItem[2] !== undefined;\n    });\n    var data = this.fixData(filterData || []);\n    var nameList = [];\n    var nameMap = this.nameMap = zrUtil.createHashMap();\n    var count = 0;\n\n    for (var i = 0; i < data.length; ++i) {\n      nameList.push(data[i][DATA_NAME_INDEX]);\n\n      if (!nameMap.get(data[i][DATA_NAME_INDEX])) {\n        nameMap.set(data[i][DATA_NAME_INDEX], count);\n        count++;\n      }\n    }\n\n    var dimensionsInfo = createDimensions(data, {\n      coordDimensions: ['single'],\n      dimensionsDefine: [{\n        name: 'time',\n        type: getDimensionTypeByAxis(axisType)\n      }, {\n        name: 'value',\n        type: 'float'\n      }, {\n        name: 'name',\n        type: 'ordinal'\n      }],\n      encodeDefine: {\n        single: 0,\n        value: 1,\n        itemName: 2\n      }\n    });\n    var list = new List(dimensionsInfo, this);\n    list.initData(data);\n    return list;\n  };\n\n  ThemeRiverSeriesModel.prototype.getLayerSeries = function () {\n    var data = this.getData();\n    var lenCount = data.count();\n    var indexArr = [];\n\n    for (var i = 0; i < lenCount; ++i) {\n      indexArr[i] = i;\n    }\n\n    var timeDim = data.mapDimension('single');\n    var groupResult = groupData(indexArr, function (index) {\n      return data.get('name', index);\n    });\n    var layerSeries = [];\n    groupResult.buckets.each(function (items, key) {\n      items.sort(function (index1, index2) {\n        return data.get(timeDim, index1) - data.get(timeDim, index2);\n      });\n      layerSeries.push({\n        name: key,\n        indices: items\n      });\n    });\n    return layerSeries;\n  };\n\n  ThemeRiverSeriesModel.prototype.getAxisTooltipData = function (dim, value, baseAxis) {\n    if (!zrUtil.isArray(dim)) {\n      dim = dim ? [dim] : [];\n    }\n\n    var data = this.getData();\n    var layerSeries = this.getLayerSeries();\n    var indices = [];\n    var layerNum = layerSeries.length;\n    var nestestValue;\n\n    for (var i = 0; i < layerNum; ++i) {\n      var minDist = Number.MAX_VALUE;\n      var nearestIdx = -1;\n      var pointNum = layerSeries[i].indices.length;\n\n      for (var j = 0; j < pointNum; ++j) {\n        var theValue = data.get(dim[0], layerSeries[i].indices[j]);\n        var dist = Math.abs(theValue - value);\n\n        if (dist <= minDist) {\n          nestestValue = theValue;\n          minDist = dist;\n          nearestIdx = layerSeries[i].indices[j];\n        }\n      }\n\n      indices.push(nearestIdx);\n    }\n\n    return {\n      dataIndices: indices,\n      nestestValue: nestestValue\n    };\n  };\n\n  ThemeRiverSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var data = this.getData();\n    var name = data.getName(dataIndex);\n    var value = data.get(data.mapDimension('value'), dataIndex);\n    return createTooltipMarkup('nameValue', {\n      name: name,\n      value: value\n    });\n  };\n\n  ThemeRiverSeriesModel.type = 'series.themeRiver';\n  ThemeRiverSeriesModel.dependencies = ['singleAxis'];\n  ThemeRiverSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'singleAxis',\n    boundaryGap: ['10%', '10%'],\n    singleAxisIndex: 0,\n    animationEasing: 'linear',\n    label: {\n      margin: 4,\n      show: true,\n      position: 'left',\n      fontSize: 11\n    },\n    emphasis: {\n      label: {\n        show: true\n      }\n    }\n  };\n  return ThemeRiverSeriesModel;\n}(SeriesModel);\n\nexport default ThemeRiverSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as numberUtil from '../../util/number';\nexport default function themeRiverLayout(ecModel, api) {\n  ecModel.eachSeriesByType('themeRiver', function (seriesModel) {\n    var data = seriesModel.getData();\n    var single = seriesModel.coordinateSystem;\n    var layoutInfo = {};\n    var rect = single.getRect();\n    layoutInfo.rect = rect;\n    var boundaryGap = seriesModel.get('boundaryGap');\n    var axis = single.getAxis();\n    layoutInfo.boundaryGap = boundaryGap;\n\n    if (axis.orient === 'horizontal') {\n      boundaryGap[0] = numberUtil.parsePercent(boundaryGap[0], rect.height);\n      boundaryGap[1] = numberUtil.parsePercent(boundaryGap[1], rect.height);\n      var height = rect.height - boundaryGap[0] - boundaryGap[1];\n      doThemeRiverLayout(data, seriesModel, height);\n    } else {\n      boundaryGap[0] = numberUtil.parsePercent(boundaryGap[0], rect.width);\n      boundaryGap[1] = numberUtil.parsePercent(boundaryGap[1], rect.width);\n      var width = rect.width - boundaryGap[0] - boundaryGap[1];\n      doThemeRiverLayout(data, seriesModel, width);\n    }\n\n    data.setLayout('layoutInfo', layoutInfo);\n  });\n}\n\nfunction doThemeRiverLayout(data, seriesModel, height) {\n  if (!data.count()) {\n    return;\n  }\n\n  var coordSys = seriesModel.coordinateSystem;\n  var layerSeries = seriesModel.getLayerSeries();\n  var timeDim = data.mapDimension('single');\n  var valueDim = data.mapDimension('value');\n  var layerPoints = zrUtil.map(layerSeries, function (singleLayer) {\n    return zrUtil.map(singleLayer.indices, function (idx) {\n      var pt = coordSys.dataToPoint(data.get(timeDim, idx));\n      pt[1] = data.get(valueDim, idx);\n      return pt;\n    });\n  });\n  var base = computeBaseline(layerPoints);\n  var baseLine = base.y0;\n  var ky = height / base.max;\n  var n = layerSeries.length;\n  var m = layerSeries[0].indices.length;\n  var baseY0;\n\n  for (var j = 0; j < m; ++j) {\n    baseY0 = baseLine[j] * ky;\n    data.setItemLayout(layerSeries[0].indices[j], {\n      layerIndex: 0,\n      x: layerPoints[0][j][0],\n      y0: baseY0,\n      y: layerPoints[0][j][1] * ky\n    });\n\n    for (var i = 1; i < n; ++i) {\n      baseY0 += layerPoints[i - 1][j][1] * ky;\n      data.setItemLayout(layerSeries[i].indices[j], {\n        layerIndex: i,\n        x: layerPoints[i][j][0],\n        y0: baseY0,\n        y: layerPoints[i][j][1] * ky\n      });\n    }\n  }\n}\n\nfunction computeBaseline(data) {\n  var layerNum = data.length;\n  var pointNum = data[0].length;\n  var sums = [];\n  var y0 = [];\n  var max = 0;\n\n  for (var i = 0; i < pointNum; ++i) {\n    var temp = 0;\n\n    for (var j = 0; j < layerNum; ++j) {\n      temp += data[j][i][1];\n    }\n\n    if (temp > max) {\n      max = temp;\n    }\n\n    sums.push(temp);\n  }\n\n  for (var k = 0; k < pointNum; ++k) {\n    y0[k] = (max - sums[k]) / 2;\n  }\n\n  max = 0;\n\n  for (var l = 0; l < pointNum; ++l) {\n    var sum = sums[l] + y0[l];\n\n    if (sum > max) {\n      max = sum;\n    }\n  }\n\n  return {\n    y0: y0,\n    max: max\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ThemeRiverView from './ThemeRiverView';\nimport ThemeRiverSeriesModel from './ThemeRiverSeries';\nimport themeRiverLayout from './themeRiverLayout';\nimport dataFilter from '../../processor/dataFilter';\nexport function install(registers) {\n  registers.registerChartView(ThemeRiverView);\n  registers.registerSeriesModel(ThemeRiverSeriesModel);\n  registers.registerLayout(themeRiverLayout);\n  registers.registerProcessor(dataFilter('themeRiver'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis, SPECIAL_STATES, DISPLAY_STATES } from '../../util/states';\nimport { createTextStyle } from '../../label/labelStyle';\nimport { getECData } from '../../util/innerStore';\nimport { getSectorCornerRadius } from '../helper/pieHelper';\nimport { createOrUpdatePatternFromDecal } from '../../util/decal';\nvar DEFAULT_SECTOR_Z = 2;\nvar DEFAULT_TEXT_Z = 4;\n\nvar SunburstPiece = function (_super) {\n  __extends(SunburstPiece, _super);\n\n  function SunburstPiece(node, seriesModel, ecModel, api) {\n    var _this = _super.call(this) || this;\n\n    _this.z2 = DEFAULT_SECTOR_Z;\n    _this.textConfig = {\n      inside: true\n    };\n    getECData(_this).seriesIndex = seriesModel.seriesIndex;\n    var text = new graphic.Text({\n      z2: DEFAULT_TEXT_Z,\n      silent: node.getModel().get(['label', 'silent'])\n    });\n\n    _this.setTextContent(text);\n\n    _this.updateData(true, node, seriesModel, ecModel, api);\n\n    return _this;\n  }\n\n  SunburstPiece.prototype.updateData = function (firstCreate, node, seriesModel, ecModel, api) {\n    this.node = node;\n    node.piece = this;\n    seriesModel = seriesModel || this._seriesModel;\n    ecModel = ecModel || this._ecModel;\n    var sector = this;\n    getECData(sector).dataIndex = node.dataIndex;\n    var itemModel = node.getModel();\n    var emphasisModel = itemModel.getModel('emphasis');\n    var layout = node.getLayout();\n    var sectorShape = zrUtil.extend({}, layout);\n    sectorShape.label = null;\n    var normalStyle = node.getVisual('style');\n    normalStyle.lineJoin = 'bevel';\n    var decal = node.getVisual('decal');\n\n    if (decal) {\n      normalStyle.decal = createOrUpdatePatternFromDecal(decal, api);\n    }\n\n    var cornerRadius = getSectorCornerRadius(itemModel.getModel('itemStyle'), sectorShape);\n    zrUtil.extend(sectorShape, cornerRadius);\n    zrUtil.each(SPECIAL_STATES, function (stateName) {\n      var state = sector.ensureState(stateName);\n      var itemStyleModel = itemModel.getModel([stateName, 'itemStyle']);\n      state.style = itemStyleModel.getItemStyle();\n      var cornerRadius = getSectorCornerRadius(itemStyleModel, sectorShape);\n\n      if (cornerRadius) {\n        state.shape = cornerRadius;\n      }\n    });\n\n    if (firstCreate) {\n      sector.setShape(sectorShape);\n      sector.shape.r = layout.r0;\n      graphic.updateProps(sector, {\n        shape: {\n          r: layout.r\n        }\n      }, seriesModel, node.dataIndex);\n    } else {\n      graphic.updateProps(sector, {\n        shape: sectorShape\n      }, seriesModel);\n    }\n\n    sector.useStyle(normalStyle);\n\n    this._updateLabel(seriesModel);\n\n    var cursorStyle = itemModel.getShallow('cursor');\n    cursorStyle && sector.attr('cursor', cursorStyle);\n    this._seriesModel = seriesModel || this._seriesModel;\n    this._ecModel = ecModel || this._ecModel;\n    var focus = emphasisModel.get('focus');\n    var focusDataIndices = focus === 'ancestor' ? node.getAncestorsIndices() : focus === 'descendant' ? node.getDescendantIndices() : null;\n    enableHoverEmphasis(this, focusDataIndices || focus, emphasisModel.get('blurScope'));\n  };\n\n  SunburstPiece.prototype._updateLabel = function (seriesModel) {\n    var _this = this;\n\n    var itemModel = this.node.getModel();\n    var normalLabelModel = itemModel.getModel('label');\n    var layout = this.node.getLayout();\n    var angle = layout.endAngle - layout.startAngle;\n    var midAngle = (layout.startAngle + layout.endAngle) / 2;\n    var dx = Math.cos(midAngle);\n    var dy = Math.sin(midAngle);\n    var sector = this;\n    var label = sector.getTextContent();\n    var dataIndex = this.node.dataIndex;\n    var labelMinAngle = normalLabelModel.get('minAngle') / 180 * Math.PI;\n    var isNormalShown = normalLabelModel.get('show') && !(labelMinAngle != null && Math.abs(angle) < labelMinAngle);\n    label.ignore = !isNormalShown;\n    zrUtil.each(DISPLAY_STATES, function (stateName) {\n      var labelStateModel = stateName === 'normal' ? itemModel.getModel('label') : itemModel.getModel([stateName, 'label']);\n      var isNormal = stateName === 'normal';\n      var state = isNormal ? label : label.ensureState(stateName);\n      var text = seriesModel.getFormattedLabel(dataIndex, stateName);\n\n      if (isNormal) {\n        text = text || _this.node.name;\n      }\n\n      state.style = createTextStyle(labelStateModel, {}, null, stateName !== 'normal', true);\n\n      if (text) {\n        state.style.text = text;\n      }\n\n      var isShown = labelStateModel.get('show');\n\n      if (isShown != null && !isNormal) {\n        state.ignore = !isShown;\n      }\n\n      var labelPosition = getLabelAttr(labelStateModel, 'position');\n      var sectorState = isNormal ? sector : sector.states[stateName];\n      var labelColor = sectorState.style.fill;\n      sectorState.textConfig = {\n        outsideFill: labelStateModel.get('color') === 'inherit' ? labelColor : null,\n        inside: labelPosition !== 'outside'\n      };\n      var r;\n      var labelPadding = getLabelAttr(labelStateModel, 'distance') || 0;\n      var textAlign = getLabelAttr(labelStateModel, 'align');\n\n      if (labelPosition === 'outside') {\n        r = layout.r + labelPadding;\n        textAlign = midAngle > Math.PI / 2 ? 'right' : 'left';\n      } else {\n        if (!textAlign || textAlign === 'center') {\n          r = (layout.r + layout.r0) / 2;\n          textAlign = 'center';\n        } else if (textAlign === 'left') {\n          r = layout.r0 + labelPadding;\n\n          if (midAngle > Math.PI / 2) {\n            textAlign = 'right';\n          }\n        } else if (textAlign === 'right') {\n          r = layout.r - labelPadding;\n\n          if (midAngle > Math.PI / 2) {\n            textAlign = 'left';\n          }\n        }\n      }\n\n      state.style.align = textAlign;\n      state.style.verticalAlign = getLabelAttr(labelStateModel, 'verticalAlign') || 'middle';\n      state.x = r * dx + layout.cx;\n      state.y = r * dy + layout.cy;\n      var rotateType = getLabelAttr(labelStateModel, 'rotate');\n      var rotate = 0;\n\n      if (rotateType === 'radial') {\n        rotate = -midAngle;\n\n        if (rotate < -Math.PI / 2) {\n          rotate += Math.PI;\n        }\n      } else if (rotateType === 'tangential') {\n        rotate = Math.PI / 2 - midAngle;\n\n        if (rotate > Math.PI / 2) {\n          rotate -= Math.PI;\n        } else if (rotate < -Math.PI / 2) {\n          rotate += Math.PI;\n        }\n      } else if (typeof rotateType === 'number') {\n        rotate = rotateType * Math.PI / 180;\n      }\n\n      state.rotation = rotate;\n    });\n\n    function getLabelAttr(model, name) {\n      var stateAttr = model.get(name);\n\n      if (stateAttr == null) {\n        return normalLabelModel.get(name);\n      }\n\n      return stateAttr;\n    }\n\n    label.dirtyStyle();\n  };\n\n  return SunburstPiece;\n}(graphic.Sector);\n\nexport default SunburstPiece;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { extend } from 'zrender/lib/core/util';\nimport { deprecateReplaceLog } from '../../util/log';\nimport { retrieveTargetInfo, aboveViewRoot } from '../helper/treeHelper';\nexport var ROOT_TO_NODE_ACTION = 'sunburstRootToNode';\nvar HIGHLIGHT_ACTION = 'sunburstHighlight';\nvar UNHIGHLIGHT_ACTION = 'sunburstUnhighlight';\nexport function installSunburstAction(registers) {\n  registers.registerAction({\n    type: ROOT_TO_NODE_ACTION,\n    update: 'updateView'\n  }, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'sunburst',\n      query: payload\n    }, handleRootToNode);\n\n    function handleRootToNode(model, index) {\n      var targetInfo = retrieveTargetInfo(payload, [ROOT_TO_NODE_ACTION], model);\n\n      if (targetInfo) {\n        var originViewRoot = model.getViewRoot();\n\n        if (originViewRoot) {\n          payload.direction = aboveViewRoot(originViewRoot, targetInfo.node) ? 'rollUp' : 'drillDown';\n        }\n\n        model.resetViewRoot(targetInfo.node);\n      }\n    }\n  });\n  registers.registerAction({\n    type: HIGHLIGHT_ACTION,\n    update: 'none'\n  }, function (payload, ecModel, api) {\n    payload = extend({}, payload);\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'sunburst',\n      query: payload\n    }, handleHighlight);\n\n    function handleHighlight(model) {\n      var targetInfo = retrieveTargetInfo(payload, [HIGHLIGHT_ACTION], model);\n\n      if (targetInfo) {\n        payload.dataIndex = targetInfo.node.dataIndex;\n      }\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateReplaceLog('highlight', 'sunburstHighlight');\n    }\n\n    api.dispatchAction(extend(payload, {\n      type: 'highlight'\n    }));\n  });\n  registers.registerAction({\n    type: UNHIGHLIGHT_ACTION,\n    update: 'updateView'\n  }, function (payload, ecModel, api) {\n    payload = extend({}, payload);\n\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateReplaceLog('downplay', 'sunburstUnhighlight');\n    }\n\n    api.dispatchAction(extend(payload, {\n      type: 'downplay'\n    }));\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ChartView from '../../view/Chart';\nimport SunburstPiece from './SunburstPiece';\nimport DataDiffer from '../../data/DataDiffer';\nimport { ROOT_TO_NODE_ACTION } from './sunburstAction';\nimport { windowOpen } from '../../util/format';\n\nvar SunburstView = function (_super) {\n  __extends(SunburstView, _super);\n\n  function SunburstView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SunburstView.type;\n    return _this;\n  }\n\n  SunburstView.prototype.render = function (seriesModel, ecModel, api, payload) {\n    var self = this;\n    this.seriesModel = seriesModel;\n    this.api = api;\n    this.ecModel = ecModel;\n    var data = seriesModel.getData();\n    var virtualRoot = data.tree.root;\n    var newRoot = seriesModel.getViewRoot();\n    var group = this.group;\n    var renderLabelForZeroData = seriesModel.get('renderLabelForZeroData');\n    var newChildren = [];\n    newRoot.eachNode(function (node) {\n      newChildren.push(node);\n    });\n    var oldChildren = this._oldChildren || [];\n    dualTravel(newChildren, oldChildren);\n    renderRollUp(virtualRoot, newRoot);\n\n    this._initEvents();\n\n    this._oldChildren = newChildren;\n\n    function dualTravel(newChildren, oldChildren) {\n      if (newChildren.length === 0 && oldChildren.length === 0) {\n        return;\n      }\n\n      new DataDiffer(oldChildren, newChildren, getKey, getKey).add(processNode).update(processNode).remove(zrUtil.curry(processNode, null)).execute();\n\n      function getKey(node) {\n        return node.getId();\n      }\n\n      function processNode(newIdx, oldIdx) {\n        var newNode = newIdx == null ? null : newChildren[newIdx];\n        var oldNode = oldIdx == null ? null : oldChildren[oldIdx];\n        doRenderNode(newNode, oldNode);\n      }\n    }\n\n    function doRenderNode(newNode, oldNode) {\n      if (!renderLabelForZeroData && newNode && !newNode.getValue()) {\n        newNode = null;\n      }\n\n      if (newNode !== virtualRoot && oldNode !== virtualRoot) {\n        if (oldNode && oldNode.piece) {\n          if (newNode) {\n            oldNode.piece.updateData(false, newNode, seriesModel, ecModel, api);\n            data.setItemGraphicEl(newNode.dataIndex, oldNode.piece);\n          } else {\n            removeNode(oldNode);\n          }\n        } else if (newNode) {\n          var piece = new SunburstPiece(newNode, seriesModel, ecModel, api);\n          group.add(piece);\n          data.setItemGraphicEl(newNode.dataIndex, piece);\n        }\n      }\n    }\n\n    function removeNode(node) {\n      if (!node) {\n        return;\n      }\n\n      if (node.piece) {\n        group.remove(node.piece);\n        node.piece = null;\n      }\n    }\n\n    function renderRollUp(virtualRoot, viewRoot) {\n      if (viewRoot.depth > 0) {\n        if (self.virtualPiece) {\n          self.virtualPiece.updateData(false, virtualRoot, seriesModel, ecModel, api);\n        } else {\n          self.virtualPiece = new SunburstPiece(virtualRoot, seriesModel, ecModel, api);\n          group.add(self.virtualPiece);\n        }\n\n        viewRoot.piece.off('click');\n        self.virtualPiece.on('click', function (e) {\n          self._rootToNode(viewRoot.parentNode);\n        });\n      } else if (self.virtualPiece) {\n        group.remove(self.virtualPiece);\n        self.virtualPiece = null;\n      }\n    }\n  };\n\n  SunburstView.prototype._initEvents = function () {\n    var _this = this;\n\n    this.group.off('click');\n    this.group.on('click', function (e) {\n      var targetFound = false;\n\n      var viewRoot = _this.seriesModel.getViewRoot();\n\n      viewRoot.eachNode(function (node) {\n        if (!targetFound && node.piece && node.piece === e.target) {\n          var nodeClick = node.getModel().get('nodeClick');\n\n          if (nodeClick === 'rootToNode') {\n            _this._rootToNode(node);\n          } else if (nodeClick === 'link') {\n            var itemModel = node.getModel();\n            var link = itemModel.get('link');\n\n            if (link) {\n              var linkTarget = itemModel.get('target', true) || '_blank';\n              windowOpen(link, linkTarget);\n            }\n          }\n\n          targetFound = true;\n        }\n      });\n    });\n  };\n\n  SunburstView.prototype._rootToNode = function (node) {\n    if (node !== this.seriesModel.getViewRoot()) {\n      this.api.dispatchAction({\n        type: ROOT_TO_NODE_ACTION,\n        from: this.uid,\n        seriesId: this.seriesModel.id,\n        targetNode: node\n      });\n    }\n  };\n\n  SunburstView.prototype.containPoint = function (point, seriesModel) {\n    var treeRoot = seriesModel.getData();\n    var itemLayout = treeRoot.getItemLayout(0);\n\n    if (itemLayout) {\n      var dx = point[0] - itemLayout.cx;\n      var dy = point[1] - itemLayout.cy;\n      var radius = Math.sqrt(dx * dx + dy * dy);\n      return radius <= itemLayout.r && radius >= itemLayout.r0;\n    }\n  };\n\n  SunburstView.type = 'sunburst';\n  return SunburstView;\n}(ChartView);\n\nexport default SunburstView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport SeriesModel from '../../model/Series';\nimport Tree from '../../data/Tree';\nimport { wrapTreePathInfo } from '../helper/treeHelper';\nimport Model from '../../model/Model';\nimport enableAriaDecalForTree from '../helper/enableAriaDecalForTree';\n\nvar SunburstSeriesModel = function (_super) {\n  __extends(SunburstSeriesModel, _super);\n\n  function SunburstSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SunburstSeriesModel.type;\n    _this.ignoreStyleOnData = true;\n    return _this;\n  }\n\n  SunburstSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    var root = {\n      name: option.name,\n      children: option.data\n    };\n    completeTreeValue(root);\n    var levelModels = zrUtil.map(option.levels || [], function (levelDefine) {\n      return new Model(levelDefine, this, ecModel);\n    }, this);\n    var tree = Tree.createTree(root, this, beforeLink);\n\n    function beforeLink(nodeData) {\n      nodeData.wrapMethod('getItemModel', function (model, idx) {\n        var node = tree.getNodeByDataIndex(idx);\n        var levelModel = levelModels[node.depth];\n        levelModel && (model.parentModel = levelModel);\n        return model;\n      });\n    }\n\n    return tree.data;\n  };\n\n  SunburstSeriesModel.prototype.optionUpdated = function () {\n    this.resetViewRoot();\n  };\n\n  SunburstSeriesModel.prototype.getDataParams = function (dataIndex) {\n    var params = _super.prototype.getDataParams.apply(this, arguments);\n\n    var node = this.getData().tree.getNodeByDataIndex(dataIndex);\n    params.treePathInfo = wrapTreePathInfo(node, this);\n    return params;\n  };\n\n  SunburstSeriesModel.prototype.getViewRoot = function () {\n    return this._viewRoot;\n  };\n\n  SunburstSeriesModel.prototype.resetViewRoot = function (viewRoot) {\n    viewRoot ? this._viewRoot = viewRoot : viewRoot = this._viewRoot;\n    var root = this.getRawData().tree.root;\n\n    if (!viewRoot || viewRoot !== root && !root.contains(viewRoot)) {\n      this._viewRoot = root;\n    }\n  };\n\n  SunburstSeriesModel.prototype.enableAriaDecal = function () {\n    enableAriaDecalForTree(this);\n  };\n\n  SunburstSeriesModel.type = 'series.sunburst';\n  SunburstSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    center: ['50%', '50%'],\n    radius: [0, '75%'],\n    clockwise: true,\n    startAngle: 90,\n    minAngle: 0,\n    stillShowZeroSum: true,\n    nodeClick: 'rootToNode',\n    renderLabelForZeroData: false,\n    label: {\n      rotate: 'radial',\n      show: true,\n      opacity: 1,\n      align: 'center',\n      position: 'inside',\n      distance: 5,\n      silent: true\n    },\n    itemStyle: {\n      borderWidth: 1,\n      borderColor: 'white',\n      borderType: 'solid',\n      shadowBlur: 0,\n      shadowColor: 'rgba(0, 0, 0, 0.2)',\n      shadowOffsetX: 0,\n      shadowOffsetY: 0,\n      opacity: 1\n    },\n    emphasis: {\n      focus: 'descendant'\n    },\n    blur: {\n      itemStyle: {\n        opacity: 0.2\n      },\n      label: {\n        opacity: 0.1\n      }\n    },\n    animationType: 'expansion',\n    animationDuration: 1000,\n    animationDurationUpdate: 500,\n    data: [],\n    levels: [],\n    sort: 'desc'\n  };\n  return SunburstSeriesModel;\n}(SeriesModel);\n\nfunction completeTreeValue(dataNode) {\n  var sum = 0;\n  zrUtil.each(dataNode.children, function (child) {\n    completeTreeValue(child);\n    var childValue = child.value;\n    zrUtil.isArray(childValue) && (childValue = childValue[0]);\n    sum += childValue;\n  });\n  var thisValue = dataNode.value;\n\n  if (zrUtil.isArray(thisValue)) {\n    thisValue = thisValue[0];\n  }\n\n  if (thisValue == null || isNaN(thisValue)) {\n    thisValue = sum;\n  }\n\n  if (thisValue < 0) {\n    thisValue = 0;\n  }\n\n  zrUtil.isArray(dataNode.value) ? dataNode.value[0] = thisValue : dataNode.value = thisValue;\n}\n\nexport default SunburstSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parsePercent } from '../../util/number';\nimport * as zrUtil from 'zrender/lib/core/util';\nvar RADIAN = Math.PI / 180;\nexport default function sunburstLayout(seriesType, ecModel, api) {\n  ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n    var center = seriesModel.get('center');\n    var radius = seriesModel.get('radius');\n\n    if (!zrUtil.isArray(radius)) {\n      radius = [0, radius];\n    }\n\n    if (!zrUtil.isArray(center)) {\n      center = [center, center];\n    }\n\n    var width = api.getWidth();\n    var height = api.getHeight();\n    var size = Math.min(width, height);\n    var cx = parsePercent(center[0], width);\n    var cy = parsePercent(center[1], height);\n    var r0 = parsePercent(radius[0], size / 2);\n    var r = parsePercent(radius[1], size / 2);\n    var startAngle = -seriesModel.get('startAngle') * RADIAN;\n    var minAngle = seriesModel.get('minAngle') * RADIAN;\n    var virtualRoot = seriesModel.getData().tree.root;\n    var treeRoot = seriesModel.getViewRoot();\n    var rootDepth = treeRoot.depth;\n    var sort = seriesModel.get('sort');\n\n    if (sort != null) {\n      initChildren(treeRoot, sort);\n    }\n\n    var validDataCount = 0;\n    zrUtil.each(treeRoot.children, function (child) {\n      !isNaN(child.getValue()) && validDataCount++;\n    });\n    var sum = treeRoot.getValue();\n    var unitRadian = Math.PI / (sum || validDataCount) * 2;\n    var renderRollupNode = treeRoot.depth > 0;\n    var levels = treeRoot.height - (renderRollupNode ? -1 : 1);\n    var rPerLevel = (r - r0) / (levels || 1);\n    var clockwise = seriesModel.get('clockwise');\n    var stillShowZeroSum = seriesModel.get('stillShowZeroSum');\n    var dir = clockwise ? 1 : -1;\n\n    var renderNode = function (node, startAngle) {\n      if (!node) {\n        return;\n      }\n\n      var endAngle = startAngle;\n\n      if (node !== virtualRoot) {\n        var value = node.getValue();\n        var angle = sum === 0 && stillShowZeroSum ? unitRadian : value * unitRadian;\n\n        if (angle < minAngle) {\n          angle = minAngle;\n        }\n\n        endAngle = startAngle + dir * angle;\n        var depth = node.depth - rootDepth - (renderRollupNode ? -1 : 1);\n        var rStart = r0 + rPerLevel * depth;\n        var rEnd = r0 + rPerLevel * (depth + 1);\n        var itemModel = node.getModel();\n\n        if (itemModel.get('r0') != null) {\n          rStart = parsePercent(itemModel.get('r0'), size / 2);\n        }\n\n        if (itemModel.get('r') != null) {\n          rEnd = parsePercent(itemModel.get('r'), size / 2);\n        }\n\n        node.setLayout({\n          angle: angle,\n          startAngle: startAngle,\n          endAngle: endAngle,\n          clockwise: clockwise,\n          cx: cx,\n          cy: cy,\n          r0: rStart,\n          r: rEnd\n        });\n      }\n\n      if (node.children && node.children.length) {\n        var siblingAngle_1 = 0;\n        zrUtil.each(node.children, function (node) {\n          siblingAngle_1 += renderNode(node, startAngle + siblingAngle_1);\n        });\n      }\n\n      return endAngle - startAngle;\n    };\n\n    if (renderRollupNode) {\n      var rStart = r0;\n      var rEnd = r0 + rPerLevel;\n      var angle = Math.PI * 2;\n      virtualRoot.setLayout({\n        angle: angle,\n        startAngle: startAngle,\n        endAngle: startAngle + angle,\n        clockwise: clockwise,\n        cx: cx,\n        cy: cy,\n        r0: rStart,\n        r: rEnd\n      });\n    }\n\n    renderNode(treeRoot, startAngle);\n  });\n}\n\nfunction initChildren(node, sortOrder) {\n  var children = node.children || [];\n  node.children = sort(children, sortOrder);\n\n  if (children.length) {\n    zrUtil.each(node.children, function (child) {\n      initChildren(child, sortOrder);\n    });\n  }\n}\n\nfunction sort(children, sortOrder) {\n  if (typeof sortOrder === 'function') {\n    var sortTargets = zrUtil.map(children, function (child, idx) {\n      var value = child.getValue();\n      return {\n        params: {\n          depth: child.depth,\n          height: child.height,\n          dataIndex: child.dataIndex,\n          getValue: function () {\n            return value;\n          }\n        },\n        index: idx\n      };\n    });\n    sortTargets.sort(function (a, b) {\n      return sortOrder(a.params, b.params);\n    });\n    return zrUtil.map(sortTargets, function (target) {\n      return children[target.index];\n    });\n  } else {\n    var isAsc_1 = sortOrder === 'asc';\n    return children.sort(function (a, b) {\n      var diff = (a.getValue() - b.getValue()) * (isAsc_1 ? 1 : -1);\n      return diff === 0 ? (a.dataIndex - b.dataIndex) * (isAsc_1 ? -1 : 1) : diff;\n    });\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { extend } from 'zrender/lib/core/util';\nimport { lift } from 'zrender/lib/tool/color';\nexport default function sunburstVisual(ecModel) {\n  var paletteScope = {};\n\n  function pickColor(node, seriesModel, treeHeight) {\n    var current = node;\n\n    while (current && current.depth > 1) {\n      current = current.parentNode;\n    }\n\n    var color = seriesModel.getColorFromPalette(current.name || current.dataIndex + '', paletteScope);\n\n    if (node.depth > 1 && typeof color === 'string') {\n      color = lift(color, (node.depth - 1) / (treeHeight - 1) * 0.5);\n    }\n\n    return color;\n  }\n\n  ecModel.eachSeriesByType('sunburst', function (seriesModel) {\n    var data = seriesModel.getData();\n    var tree = data.tree;\n    tree.eachNode(function (node) {\n      var model = node.getModel();\n      var style = model.getModel('itemStyle').getItemStyle();\n\n      if (!style.fill) {\n        style.fill = pickColor(node, seriesModel, tree.root.height);\n      }\n\n      var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, 'style');\n      extend(existsStyle, style);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SunburstView from './SunburstView';\nimport SunburstSeriesModel from './SunburstSeries';\nimport sunburstLayout from './sunburstLayout';\nimport sunburstVisual from './sunburstVisual';\nimport dataFilter from '../../processor/dataFilter';\nimport { curry } from 'zrender/lib/core/util';\nimport { installSunburstAction } from './sunburstAction';\nexport function install(registers) {\n  registers.registerChartView(SunburstView);\n  registers.registerSeriesModel(SunburstSeriesModel);\n  registers.registerLayout(curry(sunburstLayout, 'sunburst'));\n  registers.registerProcessor(curry(dataFilter, 'sunburst'));\n  registers.registerVisual(sunburstVisual);\n  installSunburstAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nfunction dataToCoordSize(dataSize, dataItem) {\n  dataItem = dataItem || [0, 0];\n  return zrUtil.map(['x', 'y'], function (dim, dimIdx) {\n    var axis = this.getAxis(dim);\n    var val = dataItem[dimIdx];\n    var halfSize = dataSize[dimIdx] / 2;\n    return axis.type === 'category' ? axis.getBandWidth() : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));\n  }, this);\n}\n\nexport default function cartesianPrepareCustom(coordSys) {\n  var rect = coordSys.master.getRect();\n  return {\n    coordSys: {\n      type: 'cartesian2d',\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height\n    },\n    api: {\n      coord: function (data) {\n        return coordSys.dataToPoint(data);\n      },\n      size: zrUtil.bind(dataToCoordSize, coordSys)\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nfunction dataToCoordSize(dataSize, dataItem) {\n  dataItem = dataItem || [0, 0];\n  return zrUtil.map([0, 1], function (dimIdx) {\n    var val = dataItem[dimIdx];\n    var halfSize = dataSize[dimIdx] / 2;\n    var p1 = [];\n    var p2 = [];\n    p1[dimIdx] = val - halfSize;\n    p2[dimIdx] = val + halfSize;\n    p1[1 - dimIdx] = p2[1 - dimIdx] = dataItem[1 - dimIdx];\n    return Math.abs(this.dataToPoint(p1)[dimIdx] - this.dataToPoint(p2)[dimIdx]);\n  }, this);\n}\n\nexport default function geoPrepareCustom(coordSys) {\n  var rect = coordSys.getBoundingRect();\n  return {\n    coordSys: {\n      type: 'geo',\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height,\n      zoom: coordSys.getZoom()\n    },\n    api: {\n      coord: function (data) {\n        return coordSys.dataToPoint(data);\n      },\n      size: zrUtil.bind(dataToCoordSize, coordSys)\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { bind } from 'zrender/lib/core/util';\n\nfunction dataToCoordSize(dataSize, dataItem) {\n  var axis = this.getAxis();\n  var val = dataItem instanceof Array ? dataItem[0] : dataItem;\n  var halfSize = (dataSize instanceof Array ? dataSize[0] : dataSize) / 2;\n  return axis.type === 'category' ? axis.getBandWidth() : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));\n}\n\nexport default function singlePrepareCustom(coordSys) {\n  var rect = coordSys.getRect();\n  return {\n    coordSys: {\n      type: 'singleAxis',\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height\n    },\n    api: {\n      coord: function (val) {\n        return coordSys.dataToPoint(val);\n      },\n      size: bind(dataToCoordSize, coordSys)\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nfunction dataToCoordSize(dataSize, dataItem) {\n  dataItem = dataItem || [0, 0];\n  return zrUtil.map(['Radius', 'Angle'], function (dim, dimIdx) {\n    var getterName = 'get' + dim + 'Axis';\n    var axis = this[getterName]();\n    var val = dataItem[dimIdx];\n    var halfSize = dataSize[dimIdx] / 2;\n    var result = axis.type === 'category' ? axis.getBandWidth() : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));\n\n    if (dim === 'Angle') {\n      result = result * Math.PI / 180;\n    }\n\n    return result;\n  }, this);\n}\n\nexport default function polarPrepareCustom(coordSys) {\n  var radiusAxis = coordSys.getRadiusAxis();\n  var angleAxis = coordSys.getAngleAxis();\n  var radius = radiusAxis.getExtent();\n  radius[0] > radius[1] && radius.reverse();\n  return {\n    coordSys: {\n      type: 'polar',\n      cx: coordSys.cx,\n      cy: coordSys.cy,\n      r: radius[1],\n      r0: radius[0]\n    },\n    api: {\n      coord: function (data) {\n        var radius = radiusAxis.dataToRadius(data[0]);\n        var angle = angleAxis.dataToAngle(data[1]);\n        var coord = coordSys.coordToPoint([radius, angle]);\n        coord.push(radius, angle * Math.PI / 180);\n        return coord;\n      },\n      size: zrUtil.bind(dataToCoordSize, coordSys)\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function calendarPrepareCustom(coordSys) {\n  var rect = coordSys.getRect();\n  var rangeInfo = coordSys.getRangeInfo();\n  return {\n    coordSys: {\n      type: 'calendar',\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height,\n      cellWidth: coordSys.getCellWidth(),\n      cellHeight: coordSys.getCellHeight(),\n      rangeInfo: {\n        start: rangeInfo.start,\n        end: rangeInfo.end,\n        weeks: rangeInfo.weeks,\n        dayCount: rangeInfo.allDay\n      }\n    },\n    api: {\n      coord: function (data, clamp) {\n        return coordSys.dataToPoint(data, clamp);\n      }\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, hasOwn } from 'zrender/lib/core/util';\nvar deprecatedLogs = {};\nexport function isEC4CompatibleStyle(style, elType, hasOwnTextContentOption, hasOwnTextConfig) {\n  return style && (style.legacy || style.legacy !== false && !hasOwnTextContentOption && !hasOwnTextConfig && elType !== 'tspan' && (elType === 'text' || hasOwn(style, 'text')));\n}\nexport function convertFromEC4CompatibleStyle(hostStyle, elType, isNormal) {\n  var srcStyle = hostStyle;\n  var textConfig;\n  var textContent;\n  var textContentStyle;\n\n  if (elType === 'text') {\n    textContentStyle = srcStyle;\n  } else {\n    textContentStyle = {};\n    hasOwn(srcStyle, 'text') && (textContentStyle.text = srcStyle.text);\n    hasOwn(srcStyle, 'rich') && (textContentStyle.rich = srcStyle.rich);\n    hasOwn(srcStyle, 'textFill') && (textContentStyle.fill = srcStyle.textFill);\n    hasOwn(srcStyle, 'textStroke') && (textContentStyle.stroke = srcStyle.textStroke);\n    textContent = {\n      type: 'text',\n      style: textContentStyle,\n      silent: true\n    };\n    textConfig = {};\n    var hasOwnPos = hasOwn(srcStyle, 'textPosition');\n\n    if (isNormal) {\n      textConfig.position = hasOwnPos ? srcStyle.textPosition : 'inside';\n    } else {\n      hasOwnPos && (textConfig.position = srcStyle.textPosition);\n    }\n\n    hasOwn(srcStyle, 'textPosition') && (textConfig.position = srcStyle.textPosition);\n    hasOwn(srcStyle, 'textOffset') && (textConfig.offset = srcStyle.textOffset);\n    hasOwn(srcStyle, 'textRotation') && (textConfig.rotation = srcStyle.textRotation);\n    hasOwn(srcStyle, 'textDistance') && (textConfig.distance = srcStyle.textDistance);\n  }\n\n  convertEC4CompatibleRichItem(textContentStyle, hostStyle);\n  each(textContentStyle.rich, function (richItem) {\n    convertEC4CompatibleRichItem(richItem, richItem);\n  });\n  return {\n    textConfig: textConfig,\n    textContent: textContent\n  };\n}\n\nfunction convertEC4CompatibleRichItem(out, richItem) {\n  if (!richItem) {\n    return;\n  }\n\n  richItem.font = richItem.textFont || richItem.font;\n  hasOwn(richItem, 'textStrokeWidth') && (out.lineWidth = richItem.textStrokeWidth);\n  hasOwn(richItem, 'textAlign') && (out.align = richItem.textAlign);\n  hasOwn(richItem, 'textVerticalAlign') && (out.verticalAlign = richItem.textVerticalAlign);\n  hasOwn(richItem, 'textLineHeight') && (out.lineHeight = richItem.textLineHeight);\n  hasOwn(richItem, 'textWidth') && (out.width = richItem.textWidth);\n  hasOwn(richItem, 'textHeight') && (out.height = richItem.textHeight);\n  hasOwn(richItem, 'textBackgroundColor') && (out.backgroundColor = richItem.textBackgroundColor);\n  hasOwn(richItem, 'textPadding') && (out.padding = richItem.textPadding);\n  hasOwn(richItem, 'textBorderColor') && (out.borderColor = richItem.textBorderColor);\n  hasOwn(richItem, 'textBorderWidth') && (out.borderWidth = richItem.textBorderWidth);\n  hasOwn(richItem, 'textBorderRadius') && (out.borderRadius = richItem.textBorderRadius);\n  hasOwn(richItem, 'textBoxShadowColor') && (out.shadowColor = richItem.textBoxShadowColor);\n  hasOwn(richItem, 'textBoxShadowBlur') && (out.shadowBlur = richItem.textBoxShadowBlur);\n  hasOwn(richItem, 'textBoxShadowOffsetX') && (out.shadowOffsetX = richItem.textBoxShadowOffsetX);\n  hasOwn(richItem, 'textBoxShadowOffsetY') && (out.shadowOffsetY = richItem.textBoxShadowOffsetY);\n}\n\nexport function convertToEC4StyleForCustomSerise(itemStl, txStl, txCfg) {\n  var out = itemStl;\n  out.textPosition = out.textPosition || txCfg.position || 'inside';\n  txCfg.offset != null && (out.textOffset = txCfg.offset);\n  txCfg.rotation != null && (out.textRotation = txCfg.rotation);\n  txCfg.distance != null && (out.textDistance = txCfg.distance);\n  var isInside = out.textPosition.indexOf('inside') >= 0;\n  var hostFill = itemStl.fill || '#000';\n  convertToEC4RichItem(out, txStl);\n  var textFillNotSet = out.textFill == null;\n\n  if (isInside) {\n    if (textFillNotSet) {\n      out.textFill = txCfg.insideFill || '#fff';\n      !out.textStroke && txCfg.insideStroke && (out.textStroke = txCfg.insideStroke);\n      !out.textStroke && (out.textStroke = hostFill);\n      out.textStrokeWidth == null && (out.textStrokeWidth = 2);\n    }\n  } else {\n    if (textFillNotSet) {\n      out.textFill = txCfg.outsideFill || hostFill;\n    }\n\n    !out.textStroke && txCfg.outsideStroke && (out.textStroke = txCfg.outsideStroke);\n  }\n\n  out.text = txStl.text;\n  out.rich = txStl.rich;\n  each(txStl.rich, function (richItem) {\n    convertToEC4RichItem(richItem, richItem);\n  });\n  return out;\n}\n\nfunction convertToEC4RichItem(out, richItem) {\n  if (!richItem) {\n    return;\n  }\n\n  hasOwn(richItem, 'fill') && (out.textFill = richItem.fill);\n  hasOwn(richItem, 'stroke') && (out.textStroke = richItem.fill);\n  hasOwn(richItem, 'lineWidth') && (out.textStrokeWidth = richItem.lineWidth);\n  hasOwn(richItem, 'font') && (out.font = richItem.font);\n  hasOwn(richItem, 'fontStyle') && (out.fontStyle = richItem.fontStyle);\n  hasOwn(richItem, 'fontWeight') && (out.fontWeight = richItem.fontWeight);\n  hasOwn(richItem, 'fontSize') && (out.fontSize = richItem.fontSize);\n  hasOwn(richItem, 'fontFamily') && (out.fontFamily = richItem.fontFamily);\n  hasOwn(richItem, 'align') && (out.textAlign = richItem.align);\n  hasOwn(richItem, 'verticalAlign') && (out.textVerticalAlign = richItem.verticalAlign);\n  hasOwn(richItem, 'lineHeight') && (out.textLineHeight = richItem.lineHeight);\n  hasOwn(richItem, 'width') && (out.textWidth = richItem.width);\n  hasOwn(richItem, 'height') && (out.textHeight = richItem.height);\n  hasOwn(richItem, 'backgroundColor') && (out.textBackgroundColor = richItem.backgroundColor);\n  hasOwn(richItem, 'padding') && (out.textPadding = richItem.padding);\n  hasOwn(richItem, 'borderColor') && (out.textBorderColor = richItem.borderColor);\n  hasOwn(richItem, 'borderWidth') && (out.textBorderWidth = richItem.borderWidth);\n  hasOwn(richItem, 'borderRadius') && (out.textBorderRadius = richItem.borderRadius);\n  hasOwn(richItem, 'shadowColor') && (out.textBoxShadowColor = richItem.shadowColor);\n  hasOwn(richItem, 'shadowBlur') && (out.textBoxShadowBlur = richItem.shadowBlur);\n  hasOwn(richItem, 'shadowOffsetX') && (out.textBoxShadowOffsetX = richItem.shadowOffsetX);\n  hasOwn(richItem, 'shadowOffsetY') && (out.textBoxShadowOffsetY = richItem.shadowOffsetY);\n  hasOwn(richItem, 'textShadowColor') && (out.textShadowColor = richItem.textShadowColor);\n  hasOwn(richItem, 'textShadowBlur') && (out.textShadowBlur = richItem.textShadowBlur);\n  hasOwn(richItem, 'textShadowOffsetX') && (out.textShadowOffsetX = richItem.textShadowOffsetX);\n  hasOwn(richItem, 'textShadowOffsetY') && (out.textShadowOffsetY = richItem.textShadowOffsetY);\n}\n\nexport function warnDeprecated(deprecated, insteadApproach) {\n  if (process.env.NODE_ENV !== 'production') {\n    var key = deprecated + '^_^' + insteadApproach;\n\n    if (!deprecatedLogs[key]) {\n      console.warn(\"[ECharts] DEPRECATED: \\\"\" + deprecated + \"\\\" has been deprecated. \" + insteadApproach);\n      deprecatedLogs[key] = true;\n    }\n  }\n}","import PathProxy from '../core/PathProxy';\nimport { cubicSubdivide } from '../core/curve';\nimport { defaults, assert, noop, clone } from '../core/util';\nimport { lerp } from '../core/vector';\nimport Rect from '../graphic/shape/Rect';\nimport Sector from '../graphic/shape/Sector';\nvar CMD = PathProxy.CMD;\nvar PI2 = Math.PI * 2;\nvar PROP_XY = ['x', 'y'];\nvar PROP_WH = ['width', 'height'];\nvar tmpArr = [];\nfunction aroundEqual(a, b) {\n    return Math.abs(a - b) < 1e-5;\n}\nexport function pathToBezierCurves(path) {\n    var data = path.data;\n    var len = path.len();\n    var bezierArray = [];\n    var currentSubpath;\n    var xi = 0;\n    var yi = 0;\n    var x0 = 0;\n    var y0 = 0;\n    function createNewSubpath(x, y) {\n        if (currentSubpath && currentSubpath.length > 2) {\n            bezierArray.push(currentSubpath);\n        }\n        currentSubpath = [x, y];\n    }\n    function addLine(x0, y0, x1, y1) {\n        if (!(aroundEqual(x0, x1) && aroundEqual(y0, y1))) {\n            currentSubpath.push(x0, y0, x1, y1, x1, y1);\n        }\n    }\n    function addArc(startAngle, endAngle, cx, cy, rx, ry) {\n        var delta = Math.abs(endAngle - startAngle);\n        var len = Math.tan(delta / 4) * 4 / 3;\n        var dir = endAngle < startAngle ? -1 : 1;\n        var c1 = Math.cos(startAngle);\n        var s1 = Math.sin(startAngle);\n        var c2 = Math.cos(endAngle);\n        var s2 = Math.sin(endAngle);\n        var x1 = c1 * rx + cx;\n        var y1 = s1 * ry + cy;\n        var x4 = c2 * rx + cx;\n        var y4 = s2 * ry + cy;\n        var hx = rx * len * dir;\n        var hy = ry * len * dir;\n        currentSubpath.push(x1 - hx * s1, y1 + hy * c1, x4 + hx * s2, y4 - hy * c2, x4, y4);\n    }\n    var x1;\n    var y1;\n    var x2;\n    var y2;\n    for (var i = 0; i < len;) {\n        var cmd = data[i++];\n        var isFirst = i === 1;\n        if (isFirst) {\n            xi = data[i];\n            yi = data[i + 1];\n            x0 = xi;\n            y0 = yi;\n            if (cmd === CMD.L || cmd === CMD.C || cmd === CMD.Q) {\n                currentSubpath = [x0, y0];\n            }\n        }\n        switch (cmd) {\n            case CMD.M:\n                xi = x0 = data[i++];\n                yi = y0 = data[i++];\n                createNewSubpath(x0, y0);\n                break;\n            case CMD.L:\n                x1 = data[i++];\n                y1 = data[i++];\n                addLine(xi, yi, x1, y1);\n                xi = x1;\n                yi = y1;\n                break;\n            case CMD.C:\n                currentSubpath.push(data[i++], data[i++], data[i++], data[i++], xi = data[i++], yi = data[i++]);\n                break;\n            case CMD.Q:\n                x1 = data[i++];\n                y1 = data[i++];\n                x2 = data[i++];\n                y2 = data[i++];\n                currentSubpath.push(xi + 2 / 3 * (x1 - xi), yi + 2 / 3 * (y1 - yi), x2 + 2 / 3 * (x1 - x2), y2 + 2 / 3 * (y1 - y2), x2, y2);\n                xi = x2;\n                yi = y2;\n                break;\n            case CMD.A:\n                var cx = data[i++];\n                var cy = data[i++];\n                var rx = data[i++];\n                var ry = data[i++];\n                var startAngle = data[i++];\n                var endAngle = data[i++] + startAngle;\n                i += 1;\n                var anticlockwise = !data[i++];\n                x1 = Math.cos(startAngle) * rx + cx;\n                y1 = Math.sin(startAngle) * ry + cy;\n                if (isFirst) {\n                    x0 = x1;\n                    y0 = y1;\n                    createNewSubpath(x0, y0);\n                }\n                else {\n                    addLine(xi, yi, x1, y1);\n                }\n                xi = Math.cos(endAngle) * rx + cx;\n                yi = Math.sin(endAngle) * ry + cy;\n                var step = (anticlockwise ? -1 : 1) * Math.PI / 2;\n                for (var angle = startAngle; anticlockwise ? angle > endAngle : angle < endAngle; angle += step) {\n                    var nextAngle = anticlockwise ? Math.max(angle + step, endAngle)\n                        : Math.min(angle + step, endAngle);\n                    addArc(angle, nextAngle, cx, cy, rx, ry);\n                }\n                break;\n            case CMD.R:\n                x0 = xi = data[i++];\n                y0 = yi = data[i++];\n                x1 = x0 + data[i++];\n                y1 = y0 + data[i++];\n                createNewSubpath(x1, y0);\n                addLine(x1, y0, x1, y1);\n                addLine(x1, y1, x0, y1);\n                addLine(x0, y1, x0, y0);\n                addLine(x0, y0, x1, y0);\n                break;\n            case CMD.Z:\n                currentSubpath && addLine(xi, yi, x0, y0);\n                xi = x0;\n                yi = y0;\n                break;\n        }\n    }\n    if (currentSubpath && currentSubpath.length > 2) {\n        bezierArray.push(currentSubpath);\n    }\n    return bezierArray;\n}\nfunction alignSubpath(subpath1, subpath2) {\n    var len1 = subpath1.length;\n    var len2 = subpath2.length;\n    if (len1 === len2) {\n        return [subpath1, subpath2];\n    }\n    var shorterPath = len1 < len2 ? subpath1 : subpath2;\n    var shorterLen = Math.min(len1, len2);\n    var diff = Math.abs(len2 - len1) / 6;\n    var shorterBezierCount = (shorterLen - 2) / 6;\n    var eachCurveSubDivCount = Math.ceil(diff / shorterBezierCount) + 1;\n    var newSubpath = [shorterPath[0], shorterPath[1]];\n    var remained = diff;\n    var tmpSegX = [];\n    var tmpSegY = [];\n    for (var i = 2; i < shorterLen;) {\n        var x0 = shorterPath[i - 2];\n        var y0 = shorterPath[i - 1];\n        var x1 = shorterPath[i++];\n        var y1 = shorterPath[i++];\n        var x2 = shorterPath[i++];\n        var y2 = shorterPath[i++];\n        var x3 = shorterPath[i++];\n        var y3 = shorterPath[i++];\n        if (remained <= 0) {\n            newSubpath.push(x1, y1, x2, y2, x3, y3);\n            continue;\n        }\n        var actualSubDivCount = Math.min(remained, eachCurveSubDivCount - 1) + 1;\n        for (var k = 1; k <= actualSubDivCount; k++) {\n            var p = k / actualSubDivCount;\n            cubicSubdivide(x0, x1, x2, x3, p, tmpSegX);\n            cubicSubdivide(y0, y1, y2, y3, p, tmpSegY);\n            x0 = tmpSegX[3];\n            y0 = tmpSegY[3];\n            newSubpath.push(tmpSegX[1], tmpSegY[1], tmpSegX[2], tmpSegY[2], x0, y0);\n            x1 = tmpSegX[5];\n            y1 = tmpSegY[5];\n            x2 = tmpSegX[6];\n            y2 = tmpSegY[6];\n        }\n        remained -= actualSubDivCount - 1;\n    }\n    return shorterPath === subpath1 ? [newSubpath, subpath2] : [subpath1, newSubpath];\n}\nfunction createSubpath(lastSubpathSubpath, otherSubpath) {\n    var len = lastSubpathSubpath.length;\n    var lastX = lastSubpathSubpath[len - 2];\n    var lastY = lastSubpathSubpath[len - 1];\n    var newSubpath = [];\n    for (var i = 0; i < otherSubpath.length;) {\n        newSubpath[i++] = lastX;\n        newSubpath[i++] = lastY;\n    }\n    return newSubpath;\n}\nexport function alignBezierCurves(array1, array2) {\n    var _a;\n    var lastSubpath1;\n    var lastSubpath2;\n    var newArray1 = [];\n    var newArray2 = [];\n    for (var i = 0; i < Math.max(array1.length, array2.length); i++) {\n        var subpath1 = array1[i];\n        var subpath2 = array2[i];\n        var newSubpath1 = void 0;\n        var newSubpath2 = void 0;\n        if (!subpath1) {\n            newSubpath1 = createSubpath(lastSubpath1 || subpath2, subpath2);\n            newSubpath2 = subpath2;\n        }\n        else if (!subpath2) {\n            newSubpath2 = createSubpath(lastSubpath2 || subpath1, subpath1);\n            newSubpath1 = subpath1;\n        }\n        else {\n            _a = alignSubpath(subpath1, subpath2), newSubpath1 = _a[0], newSubpath2 = _a[1];\n            lastSubpath1 = newSubpath1;\n            lastSubpath2 = newSubpath2;\n        }\n        newArray1.push(newSubpath1);\n        newArray2.push(newSubpath2);\n    }\n    return [newArray1, newArray2];\n}\nexport function centroid(array) {\n    var signedArea = 0;\n    var cx = 0;\n    var cy = 0;\n    var len = array.length;\n    for (var i = 0, j = len - 2; i < len; j = i, i += 2) {\n        var x0 = array[j];\n        var y0 = array[j + 1];\n        var x1 = array[i];\n        var y1 = array[i + 1];\n        var a = x0 * y1 - x1 * y0;\n        signedArea += a;\n        cx += (x0 + x1) * a;\n        cy += (y0 + y1) * a;\n    }\n    if (signedArea === 0) {\n        return [array[0] || 0, array[1] || 0];\n    }\n    return [cx / signedArea / 3, cy / signedArea / 3, signedArea];\n}\nfunction findBestRingOffset(fromSubBeziers, toSubBeziers, fromCp, toCp) {\n    var bezierCount = (fromSubBeziers.length - 2) / 6;\n    var bestScore = Infinity;\n    var bestOffset = 0;\n    var len = fromSubBeziers.length;\n    var len2 = len - 2;\n    for (var offset = 0; offset < bezierCount; offset++) {\n        var cursorOffset = offset * 6;\n        var score = 0;\n        for (var k = 0; k < len; k += 2) {\n            var idx = k === 0 ? cursorOffset : ((cursorOffset + k - 2) % len2 + 2);\n            var x0 = fromSubBeziers[idx] - fromCp[0];\n            var y0 = fromSubBeziers[idx + 1] - fromCp[1];\n            var x1 = toSubBeziers[k] - toCp[0];\n            var y1 = toSubBeziers[k + 1] - toCp[1];\n            var dx = x1 - x0;\n            var dy = y1 - y0;\n            score += dx * dx + dy * dy;\n        }\n        if (score < bestScore) {\n            bestScore = score;\n            bestOffset = offset;\n        }\n    }\n    return bestOffset;\n}\nfunction reverse(array) {\n    var newArr = [];\n    var len = array.length;\n    for (var i = 0; i < len; i += 2) {\n        newArr[i] = array[len - i - 2];\n        newArr[i + 1] = array[len - i - 1];\n    }\n    return newArr;\n}\nfunction findBestMorphingRotation(fromArr, toArr, searchAngleIteration, searchAngleRange) {\n    var result = [];\n    var fromNeedsReverse;\n    for (var i = 0; i < fromArr.length; i++) {\n        var fromSubpathBezier = fromArr[i];\n        var toSubpathBezier = toArr[i];\n        var fromCp = centroid(fromSubpathBezier);\n        var toCp = centroid(toSubpathBezier);\n        if (fromNeedsReverse == null) {\n            fromNeedsReverse = fromCp[2] < 0 !== toCp[2] < 0;\n        }\n        var newFromSubpathBezier = [];\n        var newToSubpathBezier = [];\n        var bestAngle = 0;\n        var bestScore = Infinity;\n        var tmpArr_1 = [];\n        var len = fromSubpathBezier.length;\n        if (fromNeedsReverse) {\n            fromSubpathBezier = reverse(fromSubpathBezier);\n        }\n        var offset = findBestRingOffset(fromSubpathBezier, toSubpathBezier, fromCp, toCp) * 6;\n        var len2 = len - 2;\n        for (var k = 0; k < len2; k += 2) {\n            var idx = (offset + k) % len2 + 2;\n            newFromSubpathBezier[k + 2] = fromSubpathBezier[idx] - fromCp[0];\n            newFromSubpathBezier[k + 3] = fromSubpathBezier[idx + 1] - fromCp[1];\n        }\n        newFromSubpathBezier[0] = fromSubpathBezier[offset] - fromCp[0];\n        newFromSubpathBezier[1] = fromSubpathBezier[offset + 1] - fromCp[1];\n        if (searchAngleIteration > 0) {\n            var step = searchAngleRange / searchAngleIteration;\n            for (var angle = -searchAngleRange / 2; angle <= searchAngleRange / 2; angle += step) {\n                var sa = Math.sin(angle);\n                var ca = Math.cos(angle);\n                var score = 0;\n                for (var k = 0; k < fromSubpathBezier.length; k += 2) {\n                    var x0 = newFromSubpathBezier[k];\n                    var y0 = newFromSubpathBezier[k + 1];\n                    var x1 = toSubpathBezier[k] - toCp[0];\n                    var y1 = toSubpathBezier[k + 1] - toCp[1];\n                    var newX1 = x1 * ca - y1 * sa;\n                    var newY1 = x1 * sa + y1 * ca;\n                    tmpArr_1[k] = newX1;\n                    tmpArr_1[k + 1] = newY1;\n                    var dx = newX1 - x0;\n                    var dy = newY1 - y0;\n                    score += dx * dx + dy * dy;\n                }\n                if (score < bestScore) {\n                    bestScore = score;\n                    bestAngle = angle;\n                    for (var m = 0; m < tmpArr_1.length; m++) {\n                        newToSubpathBezier[m] = tmpArr_1[m];\n                    }\n                }\n            }\n        }\n        else {\n            for (var i_1 = 0; i_1 < len; i_1 += 2) {\n                newToSubpathBezier[i_1] = toSubpathBezier[i_1] - toCp[0];\n                newToSubpathBezier[i_1 + 1] = toSubpathBezier[i_1 + 1] - toCp[1];\n            }\n        }\n        result.push({\n            from: newFromSubpathBezier,\n            to: newToSubpathBezier,\n            fromCp: fromCp,\n            toCp: toCp,\n            rotation: -bestAngle\n        });\n    }\n    return result;\n}\nexport function morphPath(fromPath, toPath, animationOpts) {\n    var fromPathProxy;\n    var toPathProxy;\n    if (!fromPath || !toPath) {\n        return toPath;\n    }\n    !fromPath.path && fromPath.createPathProxy();\n    fromPathProxy = fromPath.path;\n    fromPathProxy.beginPath();\n    fromPath.buildPath(fromPathProxy, fromPath.shape);\n    !toPath.path && toPath.createPathProxy();\n    toPathProxy = toPath.path;\n    toPathProxy === fromPathProxy && (toPathProxy = new PathProxy(false));\n    toPathProxy.beginPath();\n    if (isIndividualMorphingPath(toPath)) {\n        toPath.__oldBuildPath(toPathProxy, toPath.shape);\n    }\n    else {\n        toPath.buildPath(toPathProxy, toPath.shape);\n    }\n    var _a = alignBezierCurves(pathToBezierCurves(fromPathProxy), pathToBezierCurves(toPathProxy)), fromBezierCurves = _a[0], toBezierCurves = _a[1];\n    var morphingData = findBestMorphingRotation(fromBezierCurves, toBezierCurves, 10, Math.PI);\n    becomeIndividualMorphingPath(toPath, morphingData, 0);\n    var oldDone = animationOpts && animationOpts.done;\n    var oldAborted = animationOpts && animationOpts.aborted;\n    var oldDuring = animationOpts && animationOpts.during;\n    toPath.animateTo({\n        __morphT: 1\n    }, defaults({\n        during: function (p) {\n            toPath.dirtyShape();\n            oldDuring && oldDuring(p);\n        },\n        done: function () {\n            restoreIndividualMorphingPath(toPath);\n            toPath.createPathProxy();\n            toPath.dirtyShape();\n            oldDone && oldDone();\n        },\n        aborted: function () {\n            oldAborted && oldAborted();\n        }\n    }, animationOpts));\n    return toPath;\n}\nfunction morphingPathBuildPath(path) {\n    var morphingData = this.__morphingData;\n    var t = this.__morphT;\n    var onet = 1 - t;\n    var newCp = [];\n    for (var i = 0; i < morphingData.length; i++) {\n        var item = morphingData[i];\n        var from = item.from;\n        var to = item.to;\n        var angle = item.rotation * t;\n        var fromCp = item.fromCp;\n        var toCp = item.toCp;\n        var sa = Math.sin(angle);\n        var ca = Math.cos(angle);\n        lerp(newCp, fromCp, toCp, t);\n        for (var m = 0; m < from.length; m += 2) {\n            var x0 = from[m];\n            var y0 = from[m + 1];\n            var x1 = to[m];\n            var y1 = to[m + 1];\n            var x = x0 * onet + x1 * t;\n            var y = y0 * onet + y1 * t;\n            tmpArr[m] = (x * ca - y * sa) + newCp[0];\n            tmpArr[m + 1] = (x * sa + y * ca) + newCp[1];\n        }\n        for (var m = 0; m < from.length;) {\n            if (m === 0) {\n                path.moveTo(tmpArr[m++], tmpArr[m++]);\n            }\n            path.bezierCurveTo(tmpArr[m++], tmpArr[m++], tmpArr[m++], tmpArr[m++], tmpArr[m++], tmpArr[m++]);\n        }\n    }\n}\n;\nfunction becomeIndividualMorphingPath(path, morphingData, morphT) {\n    if (isIndividualMorphingPath(path)) {\n        updateIndividualMorphingPath(path, morphingData, morphT);\n        return;\n    }\n    var morphingPath = path;\n    morphingPath.__oldBuildPath = morphingPath.buildPath;\n    morphingPath.buildPath = morphingPathBuildPath;\n    updateIndividualMorphingPath(morphingPath, morphingData, morphT);\n}\nfunction updateIndividualMorphingPath(morphingPath, morphingData, morphT) {\n    morphingPath.__morphingData = morphingData;\n    morphingPath.__morphT = morphT;\n}\nfunction restoreIndividualMorphingPath(path) {\n    if (isIndividualMorphingPath(path)) {\n        path.buildPath = path.__oldBuildPath;\n        path.__oldBuildPath = path.__morphingData = null;\n    }\n}\nfunction isIndividualMorphingPath(path) {\n    return path.__oldBuildPath != null;\n}\nexport function isCombiningPath(path) {\n    return !!path.__combiningSubList;\n}\nexport function isInAnyMorphing(path) {\n    return isIndividualMorphingPath(path) || isCombiningPath(path);\n}\nexport function combine(fromPathList, toPath, animationOpts, copyPropsIfDivided) {\n    var fromIndividuals = [];\n    var separateCount = 0;\n    for (var i = 0; i < fromPathList.length; i++) {\n        var fromPath = fromPathList[i];\n        if (isCombiningPath(fromPath)) {\n            var fromCombiningSubList = fromPath.__combiningSubList;\n            for (var j = 0; j < fromCombiningSubList.length; j++) {\n                fromIndividuals.push(fromCombiningSubList[j]);\n            }\n            separateCount += fromCombiningSubList.length;\n        }\n        else {\n            fromIndividuals.push(fromPath);\n            separateCount++;\n        }\n    }\n    if (!separateCount) {\n        return;\n    }\n    var dividingMethod = animationOpts ? animationOpts.dividingMethod : null;\n    var toPathSplittedList = divideShape(toPath, separateCount, dividingMethod);\n    assert(toPathSplittedList.length === separateCount);\n    var oldDone = animationOpts && animationOpts.done;\n    var oldAborted = animationOpts && animationOpts.aborted;\n    var oldDuring = animationOpts && animationOpts.during;\n    var doneCount = 0;\n    var abortedCalled = false;\n    var morphAnimationOpts = defaults({\n        during: function (p) {\n            oldDuring && oldDuring(p);\n        },\n        done: function () {\n            doneCount++;\n            if (doneCount === toPathSplittedList.length) {\n                restoreCombiningPath(toPath);\n                oldDone && oldDone();\n            }\n        },\n        aborted: function () {\n            if (!abortedCalled) {\n                abortedCalled = true;\n                oldAborted && oldAborted();\n            }\n        }\n    }, animationOpts);\n    for (var i = 0; i < separateCount; i++) {\n        var from = fromIndividuals[i];\n        var to = toPathSplittedList[i];\n        copyPropsIfDivided && copyPropsIfDivided(toPath, to, true);\n        morphPath(from, to, morphAnimationOpts);\n    }\n    becomeCombiningPath(toPath, toPathSplittedList);\n    return {\n        fromIndividuals: fromIndividuals,\n        toIndividuals: toPathSplittedList,\n        count: separateCount\n    };\n}\nfunction becomeCombiningPath(path, combiningSubList) {\n    if (isCombiningPath(path)) {\n        updateCombiningPathSubList(path, combiningSubList);\n        return;\n    }\n    var combiningPath = path;\n    updateCombiningPathSubList(combiningPath, combiningSubList);\n    combiningPath.__oldAddSelfToZr = path.addSelfToZr;\n    combiningPath.__oldRemoveSelfFromZr = path.removeSelfFromZr;\n    combiningPath.addSelfToZr = combiningAddSelfToZr;\n    combiningPath.removeSelfFromZr = combiningRemoveSelfFromZr;\n    combiningPath.__oldBuildPath = combiningPath.buildPath;\n    combiningPath.buildPath = noop;\n    combiningPath.childrenRef = combiningChildrenRef;\n}\nfunction restoreCombiningPath(path) {\n    if (!isCombiningPath(path)) {\n        return;\n    }\n    var combiningPath = path;\n    updateCombiningPathSubList(combiningPath, null);\n    combiningPath.addSelfToZr = combiningPath.__oldAddSelfToZr;\n    combiningPath.removeSelfFromZr = combiningPath.__oldRemoveSelfFromZr;\n    combiningPath.buildPath = combiningPath.__oldBuildPath;\n    combiningPath.childrenRef =\n        combiningPath.__combiningSubList =\n            combiningPath.__oldAddSelfToZr =\n                combiningPath.__oldRemoveSelfFromZr =\n                    combiningPath.__oldBuildPath = null;\n}\nfunction updateCombiningPathSubList(combiningPath, combiningSubList) {\n    if (combiningPath.__combiningSubList !== combiningSubList) {\n        combiningPathSubListAddRemoveWithZr(combiningPath, 'removeSelfFromZr');\n        combiningPath.__combiningSubList = combiningSubList;\n        if (combiningSubList) {\n            for (var i = 0; i < combiningSubList.length; i++) {\n                combiningSubList[i].parent = combiningPath;\n            }\n        }\n        combiningPathSubListAddRemoveWithZr(combiningPath, 'addSelfToZr');\n    }\n}\nfunction combiningAddSelfToZr(zr) {\n    this.__oldAddSelfToZr(zr);\n    combiningPathSubListAddRemoveWithZr(this, 'addSelfToZr');\n}\nfunction combiningPathSubListAddRemoveWithZr(path, method) {\n    var combiningSubList = path.__combiningSubList;\n    var zr = path.__zr;\n    if (combiningSubList && zr) {\n        for (var i = 0; i < combiningSubList.length; i++) {\n            var child = combiningSubList[i];\n            child[method](zr);\n        }\n    }\n}\nfunction combiningRemoveSelfFromZr(zr) {\n    this.__oldRemoveSelfFromZr(zr);\n    var combiningSubList = this.__combiningSubList;\n    for (var i = 0; i < combiningSubList.length; i++) {\n        var child = combiningSubList[i];\n        child.removeSelfFromZr(zr);\n    }\n}\nfunction combiningChildrenRef() {\n    return this.__combiningSubList;\n}\nexport function separate(fromPath, toPathList, animationOpts, copyPropsIfDivided) {\n    var toPathListLen = toPathList.length;\n    var fromPathList;\n    var dividingMethod = animationOpts ? animationOpts.dividingMethod : null;\n    var copyProps = false;\n    if (isCombiningPath(fromPath)) {\n        var fromCombiningSubList = fromPath.__combiningSubList;\n        if (fromCombiningSubList.length === toPathListLen) {\n            fromPathList = fromCombiningSubList;\n        }\n        else {\n            fromPathList = divideShape(fromPath, toPathListLen, dividingMethod);\n            copyProps = true;\n        }\n    }\n    else {\n        fromPathList = divideShape(fromPath, toPathListLen, dividingMethod);\n        copyProps = true;\n    }\n    assert(fromPathList.length === toPathListLen);\n    for (var i = 0; i < toPathListLen; i++) {\n        if (copyProps && copyPropsIfDivided) {\n            copyPropsIfDivided(fromPath, fromPathList[i], false);\n        }\n        morphPath(fromPathList[i], toPathList[i], animationOpts);\n    }\n    return {\n        fromIndividuals: fromPathList,\n        toIndividuals: toPathList,\n        count: toPathListLen\n    };\n}\nfunction divideShape(path, separateCount, dividingMethod) {\n    return dividingMethod === 'duplicate'\n        ? duplicateShape(path, separateCount)\n        : splitShape(path, separateCount);\n}\nfunction splitShape(path, separateCount) {\n    var resultPaths = [];\n    if (separateCount <= 0) {\n        return resultPaths;\n    }\n    if (separateCount === 1) {\n        return duplicateShape(path, separateCount);\n    }\n    if (path instanceof Rect) {\n        var toPathShape = path.shape;\n        var splitPropIdx = toPathShape.height > toPathShape.width ? 1 : 0;\n        var propWH = PROP_WH[splitPropIdx];\n        var propXY = PROP_XY[splitPropIdx];\n        var subWH = toPathShape[propWH] / separateCount;\n        var xyCurr = toPathShape[propXY];\n        for (var i = 0; i < separateCount; i++, xyCurr += subWH) {\n            var subShape = {\n                x: toPathShape.x,\n                y: toPathShape.y,\n                width: toPathShape.width,\n                height: toPathShape.height\n            };\n            subShape[propXY] = xyCurr;\n            subShape[propWH] = i < separateCount - 1\n                ? subWH\n                : toPathShape[propXY] + toPathShape[propWH] - xyCurr;\n            var splitted = new Rect({ shape: subShape });\n            resultPaths.push(splitted);\n        }\n    }\n    else if (path instanceof Sector) {\n        var toPathShape = path.shape;\n        var clockwise = toPathShape.clockwise;\n        var startAngle = toPathShape.startAngle;\n        var endAngle = toPathShape.endAngle;\n        var endAngleNormalized = normalizeRadian(startAngle, toPathShape.endAngle, clockwise);\n        var step = (endAngleNormalized - startAngle) / separateCount;\n        var angleCurr = startAngle;\n        for (var i = 0; i < separateCount; i++, angleCurr += step) {\n            var splitted = new Sector({\n                shape: {\n                    cx: toPathShape.cx,\n                    cy: toPathShape.cy,\n                    r: toPathShape.r,\n                    r0: toPathShape.r0,\n                    clockwise: clockwise,\n                    startAngle: angleCurr,\n                    endAngle: i === separateCount - 1 ? endAngle : angleCurr + step\n                }\n            });\n            resultPaths.push(splitted);\n        }\n    }\n    else {\n        return duplicateShape(path, separateCount);\n    }\n    return resultPaths;\n}\nfunction duplicateShape(path, separateCount) {\n    var resultPaths = [];\n    if (separateCount <= 0) {\n        return resultPaths;\n    }\n    var ctor = path.constructor;\n    for (var i = 0; i < separateCount; i++) {\n        var sub = new ctor({\n            shape: clone(path.shape)\n        });\n        resultPaths.push(sub);\n    }\n    return resultPaths;\n}\nfunction normalizeRadian(start, end, clockwise) {\n    return end + PI2 * (Math[clockwise ? 'ceil' : 'floor']((start - end) / PI2));\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { hasOwn, assert, isString, retrieve2, retrieve3, defaults, each, keys, isArrayLike, bind, isFunction, eqNaN, indexOf, clone } from 'zrender/lib/core/util';\nimport * as graphicUtil from '../../util/graphic';\nimport { setDefaultStateProxy, enableHoverEmphasis } from '../../util/states';\nimport * as labelStyleHelper from '../../label/labelStyle';\nimport { getDefaultLabel } from '../helper/labelHelper';\nimport createListFromArray from '../helper/createListFromArray';\nimport { getLayoutOnAxis } from '../../layout/barGrid';\nimport DataDiffer from '../../data/DataDiffer';\nimport SeriesModel from '../../model/Series';\nimport ChartView from '../../view/Chart';\nimport { createClipPath } from '../helper/createClipPathFromCoordSys';\nimport prepareCartesian2d from '../../coord/cartesian/prepareCustom';\nimport prepareGeo from '../../coord/geo/prepareCustom';\nimport prepareSingleAxis from '../../coord/single/prepareCustom';\nimport preparePolar from '../../coord/polar/prepareCustom';\nimport prepareCalendar from '../../coord/calendar/prepareCustom';\nimport { makeInner, normalizeToArray } from '../../util/model';\nimport { convertToEC4StyleForCustomSerise, isEC4CompatibleStyle, convertFromEC4CompatibleStyle, warnDeprecated } from '../../util/styleCompat';\nimport Transformable from 'zrender/lib/core/Transformable';\nimport { cloneValue } from 'zrender/lib/animation/Animator';\nimport { warn, throwError } from '../../util/log';\nimport { combine, isInAnyMorphing, morphPath, isCombiningPath, separate } from 'zrender/lib/tool/morphPath';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport { createOrUpdatePatternFromDecal } from '../../util/decal';\nvar inner = makeInner();\nvar TRANSFORM_PROPS = {\n  x: 1,\n  y: 1,\n  scaleX: 1,\n  scaleY: 1,\n  originX: 1,\n  originY: 1,\n  rotation: 1\n};\nvar transformPropNamesStr = keys(TRANSFORM_PROPS).join(', ');\n;\nvar STYLE_VISUAL_TYPE = {\n  color: 'fill',\n  borderColor: 'stroke'\n};\nvar NON_STYLE_VISUAL_PROPS = {\n  symbol: 1,\n  symbolSize: 1,\n  symbolKeepAspect: 1,\n  legendSymbol: 1,\n  visualMeta: 1,\n  liftZ: 1,\n  decal: 1\n};\nvar EMPHASIS = 'emphasis';\nvar NORMAL = 'normal';\nvar BLUR = 'blur';\nvar SELECT = 'select';\nvar STATES = [NORMAL, EMPHASIS, BLUR, SELECT];\nvar PATH_ITEM_STYLE = {\n  normal: ['itemStyle'],\n  emphasis: [EMPHASIS, 'itemStyle'],\n  blur: [BLUR, 'itemStyle'],\n  select: [SELECT, 'itemStyle']\n};\nvar PATH_LABEL = {\n  normal: ['label'],\n  emphasis: [EMPHASIS, 'label'],\n  blur: [BLUR, 'label'],\n  select: [SELECT, 'label']\n};\nvar GROUP_DIFF_PREFIX = 'e\\0\\0';\nvar attachedTxInfoTmp = {\n  normal: {},\n  emphasis: {},\n  blur: {},\n  select: {}\n};\nvar LEGACY_TRANSFORM_PROPS = {\n  position: ['x', 'y'],\n  scale: ['scaleX', 'scaleY'],\n  origin: ['originX', 'originY']\n};\nvar tmpTransformable = new Transformable();\nvar prepareCustoms = {\n  cartesian2d: prepareCartesian2d,\n  geo: prepareGeo,\n  singleAxis: prepareSingleAxis,\n  polar: preparePolar,\n  calendar: prepareCalendar\n};\n\nvar CustomSeriesModel = function (_super) {\n  __extends(CustomSeriesModel, _super);\n\n  function CustomSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CustomSeriesModel.type;\n    return _this;\n  }\n\n  CustomSeriesModel.prototype.optionUpdated = function () {\n    this.currentZLevel = this.get('zlevel', true);\n    this.currentZ = this.get('z', true);\n  };\n\n  CustomSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListFromArray(this.getSource(), this);\n  };\n\n  CustomSeriesModel.prototype.getDataParams = function (dataIndex, dataType, el) {\n    var params = _super.prototype.getDataParams.call(this, dataIndex, dataType);\n\n    el && (params.info = inner(el).info);\n    return params;\n  };\n\n  CustomSeriesModel.type = 'series.custom';\n  CustomSeriesModel.dependencies = ['grid', 'polar', 'geo', 'singleAxis', 'calendar'];\n  CustomSeriesModel.defaultOption = {\n    coordinateSystem: 'cartesian2d',\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    clip: false\n  };\n  return CustomSeriesModel;\n}(SeriesModel);\n\nvar CustomSeriesView = function (_super) {\n  __extends(CustomSeriesView, _super);\n\n  function CustomSeriesView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CustomSeriesView.type;\n    return _this;\n  }\n\n  CustomSeriesView.prototype.render = function (customSeries, ecModel, api, payload) {\n    var oldData = this._data;\n    var data = customSeries.getData();\n    var group = this.group;\n    var renderItem = makeRenderItem(customSeries, data, ecModel, api);\n    var transOpt = customSeries.__transientTransitionOpt;\n\n    if (transOpt && (transOpt.from == null || transOpt.to == null)) {\n      oldData && oldData.each(function (oldIdx) {\n        doRemoveEl(oldData.getItemGraphicEl(oldIdx), customSeries, group);\n      });\n      data.each(function (newIdx) {\n        createOrUpdateItem(api, null, newIdx, renderItem(newIdx, payload), customSeries, group, data, null);\n      });\n    } else {\n      var morphPreparation_1 = new MorphPreparation(customSeries, transOpt);\n      var diffMode = transOpt ? 'multiple' : 'oneToOne';\n      new DataDiffer(oldData ? oldData.getIndices() : [], data.getIndices(), createGetKey(oldData, diffMode, transOpt && transOpt.from), createGetKey(data, diffMode, transOpt && transOpt.to), null, diffMode).add(function (newIdx) {\n        createOrUpdateItem(api, null, newIdx, renderItem(newIdx, payload), customSeries, group, data, null);\n      }).remove(function (oldIdx) {\n        doRemoveEl(oldData.getItemGraphicEl(oldIdx), customSeries, group);\n      }).update(function (newIdx, oldIdx) {\n        morphPreparation_1.reset('oneToOne');\n        var oldEl = oldData.getItemGraphicEl(oldIdx);\n        morphPreparation_1.findAndAddFrom(oldEl);\n\n        if (morphPreparation_1.hasFrom()) {\n          removeElementDirectly(oldEl, group);\n          oldEl = null;\n        }\n\n        createOrUpdateItem(api, oldEl, newIdx, renderItem(newIdx, payload), customSeries, group, data, morphPreparation_1);\n        morphPreparation_1.applyMorphing();\n      }).updateManyToOne(function (newIdx, oldIndices) {\n        morphPreparation_1.reset('manyToOne');\n\n        for (var i = 0; i < oldIndices.length; i++) {\n          var oldEl = oldData.getItemGraphicEl(oldIndices[i]);\n          morphPreparation_1.findAndAddFrom(oldEl);\n          removeElementDirectly(oldEl, group);\n        }\n\n        createOrUpdateItem(api, null, newIdx, renderItem(newIdx, payload), customSeries, group, data, morphPreparation_1);\n        morphPreparation_1.applyMorphing();\n      }).updateOneToMany(function (newIndices, oldIdx) {\n        morphPreparation_1.reset('oneToMany');\n        var newLen = newIndices.length;\n        var oldEl = oldData.getItemGraphicEl(oldIdx);\n        morphPreparation_1.findAndAddFrom(oldEl);\n        removeElementDirectly(oldEl, group);\n\n        for (var i = 0; i < newLen; i++) {\n          createOrUpdateItem(api, null, newIndices[i], renderItem(newIndices[i], payload), customSeries, group, data, morphPreparation_1);\n        }\n\n        morphPreparation_1.applyMorphing();\n      }).execute();\n    }\n\n    var clipPath = customSeries.get('clip', true) ? createClipPath(customSeries.coordinateSystem, false, customSeries) : null;\n\n    if (clipPath) {\n      group.setClipPath(clipPath);\n    } else {\n      group.removeClipPath();\n    }\n\n    this._data = data;\n  };\n\n  CustomSeriesView.prototype.incrementalPrepareRender = function (customSeries, ecModel, api) {\n    this.group.removeAll();\n    this._data = null;\n  };\n\n  CustomSeriesView.prototype.incrementalRender = function (params, customSeries, ecModel, api, payload) {\n    var data = customSeries.getData();\n    var renderItem = makeRenderItem(customSeries, data, ecModel, api);\n\n    function setIncrementalAndHoverLayer(el) {\n      if (!el.isGroup) {\n        el.incremental = true;\n        el.ensureState('emphasis').hoverLayer = true;\n      }\n    }\n\n    for (var idx = params.start; idx < params.end; idx++) {\n      var el = createOrUpdateItem(null, null, idx, renderItem(idx, payload), customSeries, this.group, data, null);\n      el.traverse(setIncrementalAndHoverLayer);\n    }\n  };\n\n  CustomSeriesView.prototype.filterForExposedEvent = function (eventType, query, targetEl, packedEvent) {\n    var elementName = query.element;\n\n    if (elementName == null || targetEl.name === elementName) {\n      return true;\n    }\n\n    while ((targetEl = targetEl.__hostTarget || targetEl.parent) && targetEl !== this.group) {\n      if (targetEl.name === elementName) {\n        return true;\n      }\n    }\n\n    return false;\n  };\n\n  CustomSeriesView.type = 'custom';\n  return CustomSeriesView;\n}(ChartView);\n\nfunction createGetKey(data, diffMode, dimension) {\n  if (!data) {\n    return;\n  }\n\n  if (diffMode === 'oneToOne') {\n    return function (rawIdx, dataIndex) {\n      return data.getId(dataIndex);\n    };\n  }\n\n  var diffByDimName = data.getDimension(dimension);\n  var dimInfo = data.getDimensionInfo(diffByDimName);\n\n  if (!dimInfo) {\n    var errMsg = '';\n\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = dimension + \" is not a valid dimension.\";\n    }\n\n    throwError(errMsg);\n  }\n\n  var ordinalMeta = dimInfo.ordinalMeta;\n  return function (rawIdx, dataIndex) {\n    var key = data.get(diffByDimName, dataIndex);\n\n    if (ordinalMeta) {\n      key = ordinalMeta.categories[key];\n    }\n\n    return key == null || eqNaN(key) ? rawIdx + '' : '_ec_' + key;\n  };\n}\n\nfunction createEl(elOption) {\n  var graphicType = elOption.type;\n  var el;\n\n  if (graphicType === 'path') {\n    var shape = elOption.shape;\n    var pathRect = shape.width != null && shape.height != null ? {\n      x: shape.x || 0,\n      y: shape.y || 0,\n      width: shape.width,\n      height: shape.height\n    } : null;\n    var pathData = getPathData(shape);\n    el = graphicUtil.makePath(pathData, null, pathRect, shape.layout || 'center');\n    inner(el).customPathData = pathData;\n  } else if (graphicType === 'image') {\n    el = new graphicUtil.Image({});\n    inner(el).customImagePath = elOption.style.image;\n  } else if (graphicType === 'text') {\n    el = new graphicUtil.Text({});\n  } else if (graphicType === 'group') {\n    el = new graphicUtil.Group();\n  } else if (graphicType === 'compoundPath') {\n    throw new Error('\"compoundPath\" is not supported yet.');\n  } else {\n    var Clz = graphicUtil.getShapeClass(graphicType);\n\n    if (!Clz) {\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'graphic type \"' + graphicType + '\" can not be found.';\n      }\n\n      throwError(errMsg);\n    }\n\n    el = new Clz();\n  }\n\n  inner(el).customGraphicType = graphicType;\n  el.name = elOption.name;\n  el.z2EmphasisLift = 1;\n  el.z2SelectLift = 1;\n  return el;\n}\n\nfunction updateElNormal(api, el, isMorphTo, dataIndex, elOption, styleOpt, attachedTxInfo, seriesModel, isInit, isTextContent) {\n  var transFromProps = {};\n  var allPropsFinal = {};\n  var elDisplayable = el.isGroup ? null : el;\n  !isMorphTo && prepareShapeOrExtraTransitionFrom('shape', el, null, elOption, transFromProps, isInit);\n  prepareShapeOrExtraAllPropsFinal('shape', elOption, allPropsFinal);\n  !isMorphTo && prepareShapeOrExtraTransitionFrom('extra', el, null, elOption, transFromProps, isInit);\n  prepareShapeOrExtraAllPropsFinal('extra', elOption, allPropsFinal);\n  !isMorphTo && prepareTransformTransitionFrom(el, null, elOption, transFromProps, isInit);\n  prepareTransformAllPropsFinal(elOption, allPropsFinal);\n  var txCfgOpt = attachedTxInfo && attachedTxInfo.normal.cfg;\n\n  if (txCfgOpt) {\n    el.setTextConfig(txCfgOpt);\n  }\n\n  if (el.type === 'text' && styleOpt) {\n    var textOptionStyle = styleOpt;\n    hasOwn(textOptionStyle, 'textFill') && (textOptionStyle.fill = textOptionStyle.textFill);\n    hasOwn(textOptionStyle, 'textStroke') && (textOptionStyle.stroke = textOptionStyle.textStroke);\n  }\n\n  if (styleOpt) {\n    var decalPattern = void 0;\n    var decalObj = isPath(el) ? styleOpt.decal : null;\n\n    if (api && decalObj) {\n      decalObj.dirty = true;\n      decalPattern = createOrUpdatePatternFromDecal(decalObj, api);\n    }\n\n    styleOpt.__decalPattern = decalPattern;\n  }\n\n  !isMorphTo && prepareStyleTransitionFrom(el, null, elOption, styleOpt, transFromProps, isInit);\n\n  if (elDisplayable) {\n    hasOwn(elOption, 'invisible') && (elDisplayable.invisible = elOption.invisible);\n  }\n\n  if (!isMorphTo) {\n    applyPropsFinal(el, allPropsFinal, styleOpt);\n    applyTransitionFrom(el, dataIndex, elOption, seriesModel, transFromProps, isInit);\n  }\n\n  hasOwn(elOption, 'silent') && (el.silent = elOption.silent);\n  hasOwn(elOption, 'ignore') && (el.ignore = elOption.ignore);\n\n  if (!isTextContent) {\n    hasOwn(elOption, 'info') && (inner(el).info = elOption.info);\n  }\n\n  styleOpt ? el.dirty() : el.markRedraw();\n  return isMorphTo ? allPropsFinal : null;\n}\n\nfunction applyPropsFinal(el, allPropsFinal, styleOpt) {\n  var elDisplayable = el.isGroup ? null : el;\n\n  if (elDisplayable && styleOpt) {\n    var decalPattern = styleOpt.__decalPattern;\n    var originalDecalObj = void 0;\n\n    if (decalPattern) {\n      originalDecalObj = styleOpt.decal;\n      styleOpt.decal = decalPattern;\n    }\n\n    elDisplayable.useStyle(styleOpt);\n\n    if (decalPattern) {\n      styleOpt.decal = originalDecalObj;\n    }\n\n    var animators = elDisplayable.animators;\n\n    for (var i = 0; i < animators.length; i++) {\n      var animator = animators[i];\n\n      if (animator.targetName === 'style') {\n        animator.changeTarget(elDisplayable.style);\n      }\n    }\n  }\n\n  allPropsFinal && el.attr(allPropsFinal);\n}\n\nfunction applyTransitionFrom(el, dataIndex, elOption, seriesModel, transFromProps, isInit) {\n  if (transFromProps) {\n    var userDuring = elOption.during;\n    inner(el).userDuring = userDuring;\n    var cfgDuringCall = userDuring ? bind(duringCall, {\n      el: el,\n      userDuring: userDuring\n    }) : null;\n    var cfg = {\n      dataIndex: dataIndex,\n      isFrom: true,\n      during: cfgDuringCall\n    };\n    isInit ? graphicUtil.initProps(el, transFromProps, seriesModel, cfg) : graphicUtil.updateProps(el, transFromProps, seriesModel, cfg);\n  }\n}\n\nfunction prepareShapeOrExtraTransitionFrom(mainAttr, el, morphFromEl, elOption, transFromProps, isInit) {\n  var attrOpt = elOption[mainAttr];\n\n  if (!attrOpt) {\n    return;\n  }\n\n  var elPropsInAttr = el[mainAttr];\n  var transFromPropsInAttr;\n  var enterFrom = attrOpt.enterFrom;\n\n  if (isInit && enterFrom) {\n    !transFromPropsInAttr && (transFromPropsInAttr = transFromProps[mainAttr] = {});\n    var enterFromKeys = keys(enterFrom);\n\n    for (var i = 0; i < enterFromKeys.length; i++) {\n      var key = enterFromKeys[i];\n      transFromPropsInAttr[key] = enterFrom[key];\n    }\n  }\n\n  if (!isInit && elPropsInAttr && !(morphFromEl != null && mainAttr === 'shape')) {\n    if (attrOpt.transition) {\n      !transFromPropsInAttr && (transFromPropsInAttr = transFromProps[mainAttr] = {});\n      var transitionKeys = normalizeToArray(attrOpt.transition);\n\n      for (var i = 0; i < transitionKeys.length; i++) {\n        var key = transitionKeys[i];\n        var elVal = elPropsInAttr[key];\n\n        if (process.env.NODE_ENV !== 'production') {\n          checkNonStyleTansitionRefer(key, attrOpt[key], elVal);\n        }\n\n        transFromPropsInAttr[key] = elVal;\n      }\n    } else if (indexOf(elOption.transition, mainAttr) >= 0) {\n      !transFromPropsInAttr && (transFromPropsInAttr = transFromProps[mainAttr] = {});\n      var elPropsInAttrKeys = keys(elPropsInAttr);\n\n      for (var i = 0; i < elPropsInAttrKeys.length; i++) {\n        var key = elPropsInAttrKeys[i];\n        var elVal = elPropsInAttr[key];\n\n        if (isNonStyleTransitionEnabled(attrOpt[key], elVal)) {\n          transFromPropsInAttr[key] = elVal;\n        }\n      }\n    }\n  }\n\n  var leaveTo = attrOpt.leaveTo;\n\n  if (leaveTo) {\n    var leaveToProps = getOrCreateLeaveToPropsFromEl(el);\n    var leaveToPropsInAttr = leaveToProps[mainAttr] || (leaveToProps[mainAttr] = {});\n    var leaveToKeys = keys(leaveTo);\n\n    for (var i = 0; i < leaveToKeys.length; i++) {\n      var key = leaveToKeys[i];\n      leaveToPropsInAttr[key] = leaveTo[key];\n    }\n  }\n}\n\nfunction prepareShapeOrExtraAllPropsFinal(mainAttr, elOption, allProps) {\n  var attrOpt = elOption[mainAttr];\n\n  if (!attrOpt) {\n    return;\n  }\n\n  var allPropsInAttr = allProps[mainAttr] = {};\n  var keysInAttr = keys(attrOpt);\n\n  for (var i = 0; i < keysInAttr.length; i++) {\n    var key = keysInAttr[i];\n    allPropsInAttr[key] = cloneValue(attrOpt[key]);\n  }\n}\n\nfunction prepareTransformTransitionFrom(el, morphFromEl, elOption, transFromProps, isInit) {\n  var enterFrom = elOption.enterFrom;\n\n  if (isInit && enterFrom) {\n    var enterFromKeys = keys(enterFrom);\n\n    for (var i = 0; i < enterFromKeys.length; i++) {\n      var key = enterFromKeys[i];\n\n      if (process.env.NODE_ENV !== 'production') {\n        checkTransformPropRefer(key, 'el.enterFrom');\n      }\n\n      transFromProps[key] = enterFrom[key];\n    }\n  }\n\n  if (!isInit) {\n    if (morphFromEl) {\n      var fromTransformable = calcOldElLocalTransformBasedOnNewElParent(morphFromEl, el);\n      setTransformPropToTransitionFrom(transFromProps, 'x', fromTransformable);\n      setTransformPropToTransitionFrom(transFromProps, 'y', fromTransformable);\n      setTransformPropToTransitionFrom(transFromProps, 'scaleX', fromTransformable);\n      setTransformPropToTransitionFrom(transFromProps, 'scaleY', fromTransformable);\n      setTransformPropToTransitionFrom(transFromProps, 'originX', fromTransformable);\n      setTransformPropToTransitionFrom(transFromProps, 'originY', fromTransformable);\n      setTransformPropToTransitionFrom(transFromProps, 'rotation', fromTransformable);\n    } else if (elOption.transition) {\n      var transitionKeys = normalizeToArray(elOption.transition);\n\n      for (var i = 0; i < transitionKeys.length; i++) {\n        var key = transitionKeys[i];\n\n        if (key === 'style' || key === 'shape' || key === 'extra') {\n          continue;\n        }\n\n        var elVal = el[key];\n\n        if (process.env.NODE_ENV !== 'production') {\n          checkTransformPropRefer(key, 'el.transition');\n          checkNonStyleTansitionRefer(key, elOption[key], elVal);\n        }\n\n        transFromProps[key] = elVal;\n      }\n    } else {\n      setTransformPropToTransitionFrom(transFromProps, 'x', el);\n      setTransformPropToTransitionFrom(transFromProps, 'y', el);\n    }\n  }\n\n  var leaveTo = elOption.leaveTo;\n\n  if (leaveTo) {\n    var leaveToProps = getOrCreateLeaveToPropsFromEl(el);\n    var leaveToKeys = keys(leaveTo);\n\n    for (var i = 0; i < leaveToKeys.length; i++) {\n      var key = leaveToKeys[i];\n\n      if (process.env.NODE_ENV !== 'production') {\n        checkTransformPropRefer(key, 'el.leaveTo');\n      }\n\n      leaveToProps[key] = leaveTo[key];\n    }\n  }\n}\n\nfunction prepareTransformAllPropsFinal(elOption, allProps) {\n  setLagecyTransformProp(elOption, allProps, 'position');\n  setLagecyTransformProp(elOption, allProps, 'scale');\n  setLagecyTransformProp(elOption, allProps, 'origin');\n  setTransformProp(elOption, allProps, 'x');\n  setTransformProp(elOption, allProps, 'y');\n  setTransformProp(elOption, allProps, 'scaleX');\n  setTransformProp(elOption, allProps, 'scaleY');\n  setTransformProp(elOption, allProps, 'originX');\n  setTransformProp(elOption, allProps, 'originY');\n  setTransformProp(elOption, allProps, 'rotation');\n}\n\nfunction prepareStyleTransitionFrom(el, morphFromEl, elOption, styleOpt, transFromProps, isInit) {\n  if (!styleOpt) {\n    return;\n  }\n\n  var fromEl = morphFromEl || el;\n  var fromElStyle = fromEl.style;\n  var transFromStyleProps;\n  var enterFrom = styleOpt.enterFrom;\n\n  if (isInit && enterFrom) {\n    var enterFromKeys = keys(enterFrom);\n    !transFromStyleProps && (transFromStyleProps = transFromProps.style = {});\n\n    for (var i = 0; i < enterFromKeys.length; i++) {\n      var key = enterFromKeys[i];\n      transFromStyleProps[key] = enterFrom[key];\n    }\n  }\n\n  if (!isInit && fromElStyle) {\n    if (styleOpt.transition) {\n      var transitionKeys = normalizeToArray(styleOpt.transition);\n      !transFromStyleProps && (transFromStyleProps = transFromProps.style = {});\n\n      for (var i = 0; i < transitionKeys.length; i++) {\n        var key = transitionKeys[i];\n        var elVal = fromElStyle[key];\n        transFromStyleProps[key] = elVal;\n      }\n    } else if (el.getAnimationStyleProps && indexOf(elOption.transition, 'style') >= 0) {\n      var animationProps = el.getAnimationStyleProps();\n      var animationStyleProps = animationProps ? animationProps.style : null;\n\n      if (animationStyleProps) {\n        !transFromStyleProps && (transFromStyleProps = transFromProps.style = {});\n        var styleKeys = keys(styleOpt);\n\n        for (var i = 0; i < styleKeys.length; i++) {\n          var key = styleKeys[i];\n\n          if (animationStyleProps[key]) {\n            var elVal = fromElStyle[key];\n            transFromStyleProps[key] = elVal;\n          }\n        }\n      }\n    }\n  }\n\n  var leaveTo = styleOpt.leaveTo;\n\n  if (leaveTo) {\n    var leaveToKeys = keys(leaveTo);\n    var leaveToProps = getOrCreateLeaveToPropsFromEl(el);\n    var leaveToStyleProps = leaveToProps.style || (leaveToProps.style = {});\n\n    for (var i = 0; i < leaveToKeys.length; i++) {\n      var key = leaveToKeys[i];\n      leaveToStyleProps[key] = leaveTo[key];\n    }\n  }\n}\n\nfunction calcOldElLocalTransformBasedOnNewElParent(oldEl, newEl) {\n  if (!oldEl || oldEl === newEl || oldEl.parent === newEl.parent) {\n    return oldEl;\n  }\n\n  var tmpM = tmpTransformable.transform || (tmpTransformable.transform = matrix.identity([]));\n  var oldGlobalTransform = oldEl.getComputedTransform();\n  oldGlobalTransform ? matrix.copy(tmpM, oldGlobalTransform) : matrix.identity(tmpM);\n  var newParent = newEl.parent;\n\n  if (newParent) {\n    newParent.getComputedTransform();\n  }\n\n  tmpTransformable.originX = oldEl.originX;\n  tmpTransformable.originY = oldEl.originY;\n  tmpTransformable.parent = newParent;\n  tmpTransformable.decomposeTransform();\n  return tmpTransformable;\n}\n\nvar checkNonStyleTansitionRefer;\n\nif (process.env.NODE_ENV !== 'production') {\n  checkNonStyleTansitionRefer = function (propName, optVal, elVal) {\n    if (!isArrayLike(optVal)) {\n      assert(optVal != null && isFinite(optVal), 'Prop `' + propName + '` must refer to a finite number or ArrayLike for transition.');\n    } else {\n      assert(optVal !== elVal, 'Prop `' + propName + '` must use different Array object each time for transition.');\n    }\n  };\n}\n\nfunction isNonStyleTransitionEnabled(optVal, elVal) {\n  return !isArrayLike(optVal) ? optVal != null && isFinite(optVal) : optVal !== elVal;\n}\n\nvar checkTransformPropRefer;\n\nif (process.env.NODE_ENV !== 'production') {\n  checkTransformPropRefer = function (key, usedIn) {\n    assert(hasOwn(TRANSFORM_PROPS, key), 'Prop `' + key + '` is not a permitted in `' + usedIn + '`. ' + 'Only `' + keys(TRANSFORM_PROPS).join('`, `') + '` are permitted.');\n  };\n}\n\nfunction getOrCreateLeaveToPropsFromEl(el) {\n  var innerEl = inner(el);\n  return innerEl.leaveToProps || (innerEl.leaveToProps = {});\n}\n\nvar tmpDuringScope = {};\nvar customDuringAPI = {\n  setTransform: function (key, val) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(hasOwn(TRANSFORM_PROPS, key), 'Only ' + transformPropNamesStr + ' available in `setTransform`.');\n    }\n\n    tmpDuringScope.el[key] = val;\n    return this;\n  },\n  getTransform: function (key) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(hasOwn(TRANSFORM_PROPS, key), 'Only ' + transformPropNamesStr + ' available in `getTransform`.');\n    }\n\n    return tmpDuringScope.el[key];\n  },\n  setShape: function (key, val) {\n    if (process.env.NODE_ENV !== 'production') {\n      assertNotReserved(key);\n    }\n\n    var shape = tmpDuringScope.el.shape || (tmpDuringScope.el.shape = {});\n    shape[key] = val;\n    tmpDuringScope.isShapeDirty = true;\n    return this;\n  },\n  getShape: function (key) {\n    if (process.env.NODE_ENV !== 'production') {\n      assertNotReserved(key);\n    }\n\n    var shape = tmpDuringScope.el.shape;\n\n    if (shape) {\n      return shape[key];\n    }\n  },\n  setStyle: function (key, val) {\n    if (process.env.NODE_ENV !== 'production') {\n      assertNotReserved(key);\n    }\n\n    var style = tmpDuringScope.el.style;\n\n    if (style) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (eqNaN(val)) {\n          warn('style.' + key + ' must not be assigned with NaN.');\n        }\n      }\n\n      style[key] = val;\n      tmpDuringScope.isStyleDirty = true;\n    }\n\n    return this;\n  },\n  getStyle: function (key) {\n    if (process.env.NODE_ENV !== 'production') {\n      assertNotReserved(key);\n    }\n\n    var style = tmpDuringScope.el.style;\n\n    if (style) {\n      return style[key];\n    }\n  },\n  setExtra: function (key, val) {\n    if (process.env.NODE_ENV !== 'production') {\n      assertNotReserved(key);\n    }\n\n    var extra = tmpDuringScope.el.extra || (tmpDuringScope.el.extra = {});\n    extra[key] = val;\n    return this;\n  },\n  getExtra: function (key) {\n    if (process.env.NODE_ENV !== 'production') {\n      assertNotReserved(key);\n    }\n\n    var extra = tmpDuringScope.el.extra;\n\n    if (extra) {\n      return extra[key];\n    }\n  }\n};\n\nfunction assertNotReserved(key) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (key === 'transition' || key === 'enterFrom' || key === 'leaveTo') {\n      throw new Error('key must not be \"' + key + '\"');\n    }\n  }\n}\n\nfunction duringCall() {\n  var scope = this;\n  var el = scope.el;\n\n  if (!el) {\n    return;\n  }\n\n  var newstUserDuring = inner(el).userDuring;\n  var scopeUserDuring = scope.userDuring;\n\n  if (newstUserDuring !== scopeUserDuring) {\n    scope.el = scope.userDuring = null;\n    return;\n  }\n\n  tmpDuringScope.el = el;\n  tmpDuringScope.isShapeDirty = false;\n  tmpDuringScope.isStyleDirty = false;\n  scopeUserDuring(customDuringAPI);\n\n  if (tmpDuringScope.isShapeDirty && el.dirtyShape) {\n    el.dirtyShape();\n  }\n\n  if (tmpDuringScope.isStyleDirty && el.dirtyStyle) {\n    el.dirtyStyle();\n  }\n}\n\nfunction updateElOnState(state, el, elStateOpt, styleOpt, attachedTxInfo, isRoot, isTextContent) {\n  var elDisplayable = el.isGroup ? null : el;\n  var txCfgOpt = attachedTxInfo && attachedTxInfo[state].cfg;\n\n  if (elDisplayable) {\n    var stateObj = elDisplayable.ensureState(state);\n\n    if (styleOpt === false) {\n      var existingEmphasisState = elDisplayable.getState(state);\n\n      if (existingEmphasisState) {\n        existingEmphasisState.style = null;\n      }\n    } else {\n      stateObj.style = styleOpt || null;\n    }\n\n    if (txCfgOpt) {\n      stateObj.textConfig = txCfgOpt;\n    }\n\n    setDefaultStateProxy(elDisplayable);\n  }\n}\n\nfunction updateZ(el, elOption, seriesModel, attachedTxInfo) {\n  if (el.isGroup) {\n    return;\n  }\n\n  var elDisplayable = el;\n  var currentZ = seriesModel.currentZ;\n  var currentZLevel = seriesModel.currentZLevel;\n  elDisplayable.z = currentZ;\n  elDisplayable.zlevel = currentZLevel;\n  var optZ2 = elOption.z2;\n  optZ2 != null && (elDisplayable.z2 = optZ2 || 0);\n\n  for (var i = 0; i < STATES.length; i++) {\n    updateZForEachState(elDisplayable, elOption, STATES[i]);\n  }\n}\n\nfunction updateZForEachState(elDisplayable, elOption, state) {\n  var isNormal = state === NORMAL;\n  var elStateOpt = isNormal ? elOption : retrieveStateOption(elOption, state);\n  var optZ2 = elStateOpt ? elStateOpt.z2 : null;\n  var stateObj;\n\n  if (optZ2 != null) {\n    stateObj = isNormal ? elDisplayable : elDisplayable.ensureState(state);\n    stateObj.z2 = optZ2 || 0;\n  }\n}\n\nfunction setLagecyTransformProp(elOption, targetProps, legacyName, fromTransformable) {\n  var legacyArr = elOption[legacyName];\n  var xyName = LEGACY_TRANSFORM_PROPS[legacyName];\n\n  if (legacyArr) {\n    if (fromTransformable) {\n      targetProps[xyName[0]] = fromTransformable[xyName[0]];\n      targetProps[xyName[1]] = fromTransformable[xyName[1]];\n    } else {\n      targetProps[xyName[0]] = legacyArr[0];\n      targetProps[xyName[1]] = legacyArr[1];\n    }\n  }\n}\n\nfunction setTransformProp(elOption, allProps, name, fromTransformable) {\n  if (elOption[name] != null) {\n    allProps[name] = fromTransformable ? fromTransformable[name] : elOption[name];\n  }\n}\n\nfunction setTransformPropToTransitionFrom(transitionFrom, name, fromTransformable) {\n  if (fromTransformable) {\n    transitionFrom[name] = fromTransformable[name];\n  }\n}\n\nfunction makeRenderItem(customSeries, data, ecModel, api) {\n  var renderItem = customSeries.get('renderItem');\n  var coordSys = customSeries.coordinateSystem;\n  var prepareResult = {};\n\n  if (coordSys) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(renderItem, 'series.render is required.');\n      assert(coordSys.prepareCustoms || prepareCustoms[coordSys.type], 'This coordSys does not support custom series.');\n    }\n\n    prepareResult = coordSys.prepareCustoms ? coordSys.prepareCustoms(coordSys) : prepareCustoms[coordSys.type](coordSys);\n  }\n\n  var userAPI = defaults({\n    getWidth: api.getWidth,\n    getHeight: api.getHeight,\n    getZr: api.getZr,\n    getDevicePixelRatio: api.getDevicePixelRatio,\n    value: value,\n    style: style,\n    ordinalRawValue: ordinalRawValue,\n    styleEmphasis: styleEmphasis,\n    visual: visual,\n    barLayout: barLayout,\n    currentSeriesIndices: currentSeriesIndices,\n    font: font\n  }, prepareResult.api || {});\n  var userParams = {\n    context: {},\n    seriesId: customSeries.id,\n    seriesName: customSeries.name,\n    seriesIndex: customSeries.seriesIndex,\n    coordSys: prepareResult.coordSys,\n    dataInsideLength: data.count(),\n    encode: wrapEncodeDef(customSeries.getData())\n  };\n  var currDataIndexInside;\n  var currItemModel;\n  var currItemStyleModels = {};\n  var currLabelModels = {};\n  var seriesItemStyleModels = {};\n  var seriesLabelModels = {};\n\n  for (var i = 0; i < STATES.length; i++) {\n    var stateName = STATES[i];\n    seriesItemStyleModels[stateName] = customSeries.getModel(PATH_ITEM_STYLE[stateName]);\n    seriesLabelModels[stateName] = customSeries.getModel(PATH_LABEL[stateName]);\n  }\n\n  function getItemModel(dataIndexInside) {\n    return dataIndexInside === currDataIndexInside ? currItemModel || (currItemModel = data.getItemModel(dataIndexInside)) : data.getItemModel(dataIndexInside);\n  }\n\n  function getItemStyleModel(dataIndexInside, state) {\n    return !data.hasItemOption ? seriesItemStyleModels[state] : dataIndexInside === currDataIndexInside ? currItemStyleModels[state] || (currItemStyleModels[state] = getItemModel(dataIndexInside).getModel(PATH_ITEM_STYLE[state])) : getItemModel(dataIndexInside).getModel(PATH_ITEM_STYLE[state]);\n  }\n\n  function getLabelModel(dataIndexInside, state) {\n    return !data.hasItemOption ? seriesLabelModels[state] : dataIndexInside === currDataIndexInside ? currLabelModels[state] || (currLabelModels[state] = getItemModel(dataIndexInside).getModel(PATH_LABEL[state])) : getItemModel(dataIndexInside).getModel(PATH_LABEL[state]);\n  }\n\n  return function (dataIndexInside, payload) {\n    currDataIndexInside = dataIndexInside;\n    currItemModel = null;\n    currItemStyleModels = {};\n    currLabelModels = {};\n    return renderItem && renderItem(defaults({\n      dataIndexInside: dataIndexInside,\n      dataIndex: data.getRawIndex(dataIndexInside),\n      actionType: payload ? payload.type : null\n    }, userParams), userAPI);\n  };\n\n  function value(dim, dataIndexInside) {\n    dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n    return data.get(data.getDimension(dim || 0), dataIndexInside);\n  }\n\n  function ordinalRawValue(dim, dataIndexInside) {\n    dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n    var dimInfo = data.getDimensionInfo(dim || 0);\n\n    if (!dimInfo) {\n      return;\n    }\n\n    var val = data.get(dimInfo.name, dataIndexInside);\n    var ordinalMeta = dimInfo && dimInfo.ordinalMeta;\n    return ordinalMeta ? ordinalMeta.categories[val] : val;\n  }\n\n  function style(userProps, dataIndexInside) {\n    if (process.env.NODE_ENV !== 'production') {\n      warnDeprecated('api.style', 'Please write literal style directly instead.');\n    }\n\n    dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n    var style = data.getItemVisual(dataIndexInside, 'style');\n    var visualColor = style && style.fill;\n    var opacity = style && style.opacity;\n    var itemStyle = getItemStyleModel(dataIndexInside, NORMAL).getItemStyle();\n    visualColor != null && (itemStyle.fill = visualColor);\n    opacity != null && (itemStyle.opacity = opacity);\n    var opt = {\n      inheritColor: isString(visualColor) ? visualColor : '#000'\n    };\n    var labelModel = getLabelModel(dataIndexInside, NORMAL);\n    var textStyle = labelStyleHelper.createTextStyle(labelModel, null, opt, false, true);\n    textStyle.text = labelModel.getShallow('show') ? retrieve2(customSeries.getFormattedLabel(dataIndexInside, NORMAL), getDefaultLabel(data, dataIndexInside)) : null;\n    var textConfig = labelStyleHelper.createTextConfig(labelModel, opt, false);\n    preFetchFromExtra(userProps, itemStyle);\n    itemStyle = convertToEC4StyleForCustomSerise(itemStyle, textStyle, textConfig);\n    userProps && applyUserPropsAfter(itemStyle, userProps);\n    itemStyle.legacy = true;\n    return itemStyle;\n  }\n\n  function styleEmphasis(userProps, dataIndexInside) {\n    if (process.env.NODE_ENV !== 'production') {\n      warnDeprecated('api.styleEmphasis', 'Please write literal style directly instead.');\n    }\n\n    dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n    var itemStyle = getItemStyleModel(dataIndexInside, EMPHASIS).getItemStyle();\n    var labelModel = getLabelModel(dataIndexInside, EMPHASIS);\n    var textStyle = labelStyleHelper.createTextStyle(labelModel, null, null, true, true);\n    textStyle.text = labelModel.getShallow('show') ? retrieve3(customSeries.getFormattedLabel(dataIndexInside, EMPHASIS), customSeries.getFormattedLabel(dataIndexInside, NORMAL), getDefaultLabel(data, dataIndexInside)) : null;\n    var textConfig = labelStyleHelper.createTextConfig(labelModel, null, true);\n    preFetchFromExtra(userProps, itemStyle);\n    itemStyle = convertToEC4StyleForCustomSerise(itemStyle, textStyle, textConfig);\n    userProps && applyUserPropsAfter(itemStyle, userProps);\n    itemStyle.legacy = true;\n    return itemStyle;\n  }\n\n  function applyUserPropsAfter(itemStyle, extra) {\n    for (var key in extra) {\n      if (hasOwn(extra, key)) {\n        itemStyle[key] = extra[key];\n      }\n    }\n  }\n\n  function preFetchFromExtra(extra, itemStyle) {\n    if (extra) {\n      extra.textFill && (itemStyle.textFill = extra.textFill);\n      extra.textPosition && (itemStyle.textPosition = extra.textPosition);\n    }\n  }\n\n  function visual(visualType, dataIndexInside) {\n    dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n\n    if (hasOwn(STYLE_VISUAL_TYPE, visualType)) {\n      var style_1 = data.getItemVisual(dataIndexInside, 'style');\n      return style_1 ? style_1[STYLE_VISUAL_TYPE[visualType]] : null;\n    }\n\n    if (hasOwn(NON_STYLE_VISUAL_PROPS, visualType)) {\n      return data.getItemVisual(dataIndexInside, visualType);\n    }\n  }\n\n  function barLayout(opt) {\n    if (coordSys.type === 'cartesian2d') {\n      var baseAxis = coordSys.getBaseAxis();\n      return getLayoutOnAxis(defaults({\n        axis: baseAxis\n      }, opt));\n    }\n  }\n\n  function currentSeriesIndices() {\n    return ecModel.getCurrentSeriesIndices();\n  }\n\n  function font(opt) {\n    return labelStyleHelper.getFont(opt, ecModel);\n  }\n}\n\nfunction wrapEncodeDef(data) {\n  var encodeDef = {};\n  each(data.dimensions, function (dimName, dataDimIndex) {\n    var dimInfo = data.getDimensionInfo(dimName);\n\n    if (!dimInfo.isExtraCoord) {\n      var coordDim = dimInfo.coordDim;\n      var dataDims = encodeDef[coordDim] = encodeDef[coordDim] || [];\n      dataDims[dimInfo.coordDimIndex] = dataDimIndex;\n    }\n  });\n  return encodeDef;\n}\n\nfunction createOrUpdateItem(api, el, dataIndex, elOption, seriesModel, group, data, morphPreparation) {\n  if (!elOption) {\n    removeElementDirectly(el, group);\n    return;\n  }\n\n  el = doCreateOrUpdateEl(api, el, dataIndex, elOption, seriesModel, group, true, morphPreparation);\n  el && data.setItemGraphicEl(dataIndex, el);\n  enableHoverEmphasis(el, elOption.focus, elOption.blurScope);\n  return el;\n}\n\nfunction doCreateOrUpdateEl(api, el, dataIndex, elOption, seriesModel, group, isRoot, morphPreparation) {\n  if (process.env.NODE_ENV !== 'production') {\n    assert(elOption, 'should not have an null/undefined element setting');\n  }\n\n  var toBeReplacedIdx = -1;\n\n  if (el && doesElNeedRecreate(el, elOption)) {\n    toBeReplacedIdx = group.childrenRef().indexOf(el);\n    el = null;\n  }\n\n  var elIsNewCreated = !el;\n\n  if (!el) {\n    el = createEl(elOption);\n  } else {\n    el.clearStates();\n  }\n\n  var canMorph = inner(el).canMorph = elOption.morph && isPath(el);\n  var thisElIsMorphTo = canMorph && morphPreparation && morphPreparation.hasFrom();\n  var isInit = elIsNewCreated && !thisElIsMorphTo;\n  attachedTxInfoTmp.normal.cfg = attachedTxInfoTmp.normal.conOpt = attachedTxInfoTmp.emphasis.cfg = attachedTxInfoTmp.emphasis.conOpt = attachedTxInfoTmp.blur.cfg = attachedTxInfoTmp.blur.conOpt = attachedTxInfoTmp.select.cfg = attachedTxInfoTmp.select.conOpt = null;\n  attachedTxInfoTmp.isLegacy = false;\n  doCreateOrUpdateAttachedTx(el, dataIndex, elOption, seriesModel, isInit, attachedTxInfoTmp);\n  doCreateOrUpdateClipPath(el, dataIndex, elOption, seriesModel, isInit);\n  var pendingAllPropsFinal = updateElNormal(api, el, thisElIsMorphTo, dataIndex, elOption, elOption.style, attachedTxInfoTmp, seriesModel, isInit, false);\n\n  if (thisElIsMorphTo) {\n    morphPreparation.addTo(el, elOption, dataIndex, pendingAllPropsFinal);\n  }\n\n  for (var i = 0; i < STATES.length; i++) {\n    var stateName = STATES[i];\n\n    if (stateName !== NORMAL) {\n      var otherStateOpt = retrieveStateOption(elOption, stateName);\n      var otherStyleOpt = retrieveStyleOptionOnState(elOption, otherStateOpt, stateName);\n      updateElOnState(stateName, el, otherStateOpt, otherStyleOpt, attachedTxInfoTmp, isRoot, false);\n    }\n  }\n\n  updateZ(el, elOption, seriesModel, attachedTxInfoTmp);\n\n  if (elOption.type === 'group') {\n    mergeChildren(api, el, dataIndex, elOption, seriesModel, morphPreparation);\n  }\n\n  if (toBeReplacedIdx >= 0) {\n    group.replaceAt(el, toBeReplacedIdx);\n  } else {\n    group.add(el);\n  }\n\n  return el;\n}\n\nfunction doesElNeedRecreate(el, elOption) {\n  var elInner = inner(el);\n  var elOptionType = elOption.type;\n  var elOptionShape = elOption.shape;\n  var elOptionStyle = elOption.style;\n  return elOptionType != null && elOptionType !== elInner.customGraphicType || elOptionType === 'path' && hasOwnPathData(elOptionShape) && getPathData(elOptionShape) !== elInner.customPathData || elOptionType === 'image' && hasOwn(elOptionStyle, 'image') && elOptionStyle.image !== elInner.customImagePath;\n}\n\nfunction doCreateOrUpdateClipPath(el, dataIndex, elOption, seriesModel, isInit) {\n  var clipPathOpt = elOption.clipPath;\n\n  if (clipPathOpt === false) {\n    if (el && el.getClipPath()) {\n      el.removeClipPath();\n    }\n  } else if (clipPathOpt) {\n    var clipPath = el.getClipPath();\n\n    if (clipPath && doesElNeedRecreate(clipPath, clipPathOpt)) {\n      clipPath = null;\n    }\n\n    if (!clipPath) {\n      clipPath = createEl(clipPathOpt);\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(clipPath instanceof graphicUtil.Path, 'Only any type of `path` can be used in `clipPath`, rather than ' + clipPath.type + '.');\n      }\n\n      el.setClipPath(clipPath);\n    }\n\n    updateElNormal(null, clipPath, null, dataIndex, clipPathOpt, null, null, seriesModel, isInit, false);\n  }\n}\n\nfunction doCreateOrUpdateAttachedTx(el, dataIndex, elOption, seriesModel, isInit, attachedTxInfo) {\n  if (el.isGroup) {\n    return;\n  }\n\n  processTxInfo(elOption, null, attachedTxInfo);\n  processTxInfo(elOption, EMPHASIS, attachedTxInfo);\n  var txConOptNormal = attachedTxInfo.normal.conOpt;\n  var txConOptEmphasis = attachedTxInfo.emphasis.conOpt;\n  var txConOptBlur = attachedTxInfo.blur.conOpt;\n  var txConOptSelect = attachedTxInfo.select.conOpt;\n\n  if (txConOptNormal != null || txConOptEmphasis != null || txConOptSelect != null || txConOptBlur != null) {\n    var textContent = el.getTextContent();\n\n    if (txConOptNormal === false) {\n      textContent && el.removeTextContent();\n    } else {\n      txConOptNormal = attachedTxInfo.normal.conOpt = txConOptNormal || {\n        type: 'text'\n      };\n\n      if (!textContent) {\n        textContent = createEl(txConOptNormal);\n        el.setTextContent(textContent);\n      } else {\n        textContent.clearStates();\n      }\n\n      var txConStlOptNormal = txConOptNormal && txConOptNormal.style;\n      updateElNormal(null, textContent, null, dataIndex, txConOptNormal, txConStlOptNormal, null, seriesModel, isInit, true);\n\n      for (var i = 0; i < STATES.length; i++) {\n        var stateName = STATES[i];\n\n        if (stateName !== NORMAL) {\n          var txConOptOtherState = attachedTxInfo[stateName].conOpt;\n          updateElOnState(stateName, textContent, txConOptOtherState, retrieveStyleOptionOnState(txConOptNormal, txConOptOtherState, stateName), null, false, true);\n        }\n      }\n\n      txConStlOptNormal ? textContent.dirty() : textContent.markRedraw();\n    }\n  }\n}\n\nfunction processTxInfo(elOption, state, attachedTxInfo) {\n  var stateOpt = !state ? elOption : retrieveStateOption(elOption, state);\n  var styleOpt = !state ? elOption.style : retrieveStyleOptionOnState(elOption, stateOpt, EMPHASIS);\n  var elType = elOption.type;\n  var txCfg = stateOpt ? stateOpt.textConfig : null;\n  var txConOptNormal = elOption.textContent;\n  var txConOpt = !txConOptNormal ? null : !state ? txConOptNormal : retrieveStateOption(txConOptNormal, state);\n\n  if (styleOpt && (attachedTxInfo.isLegacy || isEC4CompatibleStyle(styleOpt, elType, !!txCfg, !!txConOpt))) {\n    attachedTxInfo.isLegacy = true;\n    var convertResult = convertFromEC4CompatibleStyle(styleOpt, elType, !state);\n\n    if (!txCfg && convertResult.textConfig) {\n      txCfg = convertResult.textConfig;\n    }\n\n    if (!txConOpt && convertResult.textContent) {\n      txConOpt = convertResult.textContent;\n    }\n  }\n\n  if (!state && txConOpt) {\n    var txConOptNormal_1 = txConOpt;\n    !txConOptNormal_1.type && (txConOptNormal_1.type = 'text');\n\n    if (process.env.NODE_ENV !== 'production') {\n      txConOptNormal_1.type !== 'text' && assert(txConOptNormal_1.type === 'text', 'textContent.type must be \"text\"');\n    }\n  }\n\n  var info = !state ? attachedTxInfo.normal : attachedTxInfo[state];\n  info.cfg = txCfg;\n  info.conOpt = txConOpt;\n}\n\nfunction retrieveStateOption(elOption, state) {\n  return !state ? elOption : elOption ? elOption[state] : null;\n}\n\nfunction retrieveStyleOptionOnState(stateOptionNormal, stateOption, state) {\n  var style = stateOption && stateOption.style;\n\n  if (style == null && state === EMPHASIS && stateOptionNormal) {\n    style = stateOptionNormal.styleEmphasis;\n  }\n\n  return style;\n}\n\nfunction mergeChildren(api, el, dataIndex, elOption, seriesModel, morphPreparation) {\n  var newChildren = elOption.children;\n  var newLen = newChildren ? newChildren.length : 0;\n  var mergeChildren = elOption.$mergeChildren;\n  var byName = mergeChildren === 'byName' || elOption.diffChildrenByName;\n  var notMerge = mergeChildren === false;\n\n  if (!newLen && !byName && !notMerge) {\n    return;\n  }\n\n  if (byName) {\n    diffGroupChildren({\n      api: api,\n      oldChildren: el.children() || [],\n      newChildren: newChildren || [],\n      dataIndex: dataIndex,\n      seriesModel: seriesModel,\n      group: el,\n      morphPreparation: morphPreparation\n    });\n    return;\n  }\n\n  notMerge && el.removeAll();\n  var index = 0;\n\n  for (; index < newLen; index++) {\n    newChildren[index] && doCreateOrUpdateEl(api, el.childAt(index), dataIndex, newChildren[index], seriesModel, el, false, morphPreparation);\n  }\n\n  for (var i = el.childCount() - 1; i >= index; i--) {\n    doRemoveEl(el.childAt(i), seriesModel, el);\n  }\n}\n\nfunction diffGroupChildren(context) {\n  new DataDiffer(context.oldChildren, context.newChildren, getKey, getKey, context).add(processAddUpdate).update(processAddUpdate).remove(processRemove).execute();\n}\n\nfunction getKey(item, idx) {\n  var name = item && item.name;\n  return name != null ? name : GROUP_DIFF_PREFIX + idx;\n}\n\nfunction processAddUpdate(newIndex, oldIndex) {\n  var context = this.context;\n  var childOption = newIndex != null ? context.newChildren[newIndex] : null;\n  var child = oldIndex != null ? context.oldChildren[oldIndex] : null;\n  doCreateOrUpdateEl(context.api, child, context.dataIndex, childOption, context.seriesModel, context.group, false, context.morphPreparation);\n}\n\nfunction processRemove(oldIndex) {\n  var context = this.context;\n  var child = context.oldChildren[oldIndex];\n  doRemoveEl(child, context.seriesModel, context.group);\n}\n\nfunction doRemoveEl(el, seriesModel, group) {\n  if (el) {\n    var leaveToProps = inner(el).leaveToProps;\n    leaveToProps ? graphicUtil.updateProps(el, leaveToProps, seriesModel, {\n      cb: function () {\n        group.remove(el);\n      }\n    }) : group.remove(el);\n  }\n}\n\nfunction getPathData(shape) {\n  return shape && (shape.pathData || shape.d);\n}\n\nfunction hasOwnPathData(shape) {\n  return shape && (hasOwn(shape, 'pathData') || hasOwn(shape, 'd'));\n}\n\nfunction isPath(el) {\n  return el && el instanceof graphicUtil.Path;\n}\n\nfunction removeElementDirectly(el, group) {\n  el && group.remove(el);\n}\n\nvar MorphPreparation = function () {\n  function MorphPreparation(seriesModel, transOpt) {\n    this._fromList = [];\n    this._toList = [];\n    this._toElOptionList = [];\n    this._allPropsFinalList = [];\n    this._toDataIndices = [];\n    this._morphConfigList = [];\n    this._seriesModel = seriesModel;\n    this._transOpt = transOpt;\n  }\n\n  MorphPreparation.prototype.hasFrom = function () {\n    return !!this._fromList.length;\n  };\n\n  MorphPreparation.prototype.findAndAddFrom = function (el) {\n    if (!el) {\n      return;\n    }\n\n    if (inner(el).canMorph) {\n      this._fromList.push(el);\n    }\n\n    if (el.isGroup) {\n      var children = el.childrenRef();\n\n      for (var i = 0; i < children.length; i++) {\n        this.findAndAddFrom(children[i]);\n      }\n    }\n  };\n\n  MorphPreparation.prototype.addTo = function (path, elOption, dataIndex, allPropsFinal) {\n    if (path) {\n      this._toList.push(path);\n\n      this._toElOptionList.push(elOption);\n\n      this._toDataIndices.push(dataIndex);\n\n      this._allPropsFinalList.push(allPropsFinal);\n    }\n  };\n\n  MorphPreparation.prototype.applyMorphing = function () {\n    var type = this._type;\n    var fromList = this._fromList;\n    var toList = this._toList;\n    var toListLen = toList.length;\n    var fromListLen = fromList.length;\n\n    if (!fromListLen || !toListLen) {\n      return;\n    }\n\n    if (type === 'oneToOne') {\n      for (var toIdx = 0; toIdx < toListLen; toIdx++) {\n        this._oneToOneForSingleTo(toIdx, toIdx);\n      }\n    } else if (type === 'manyToOne') {\n      var fromSingleSegLen = Math.max(1, Math.floor(fromListLen / toListLen));\n\n      for (var toIdx = 0, fromIdxStart = 0; toIdx < toListLen; toIdx++, fromIdxStart += fromSingleSegLen) {\n        var fromCount = toIdx + 1 >= toListLen ? fromListLen - fromIdxStart : fromSingleSegLen;\n\n        this._manyToOneForSingleTo(toIdx, fromIdxStart >= fromListLen ? null : fromIdxStart, fromCount);\n      }\n    } else if (type === 'oneToMany') {\n      var toSingleSegLen = Math.max(1, Math.floor(toListLen / fromListLen));\n\n      for (var toIdxStart = 0, fromIdx = 0; toIdxStart < toListLen; toIdxStart += toSingleSegLen, fromIdx++) {\n        var toCount = toIdxStart + toSingleSegLen >= toListLen ? toListLen - toIdxStart : toSingleSegLen;\n\n        this._oneToManyForSingleFrom(toIdxStart, toCount, fromIdx >= fromListLen ? null : fromIdx);\n      }\n    }\n  };\n\n  MorphPreparation.prototype._oneToOneForSingleTo = function (toIdx, fromIdx) {\n    var to = this._toList[toIdx];\n    var toElOption = this._toElOptionList[toIdx];\n    var toDataIndex = this._toDataIndices[toIdx];\n    var allPropsFinal = this._allPropsFinalList[toIdx];\n    var from = this._fromList[fromIdx];\n\n    var elAnimationConfig = this._getOrCreateMorphConfig(toDataIndex);\n\n    var morphDuration = elAnimationConfig.duration;\n\n    if (from && isCombiningPath(from)) {\n      applyPropsFinal(to, allPropsFinal, toElOption.style);\n\n      if (morphDuration) {\n        var combineResult = combine([from], to, elAnimationConfig, copyPropsWhenDivided);\n\n        this._processResultIndividuals(combineResult, toIdx, null);\n      }\n    } else {\n      var morphFrom = morphDuration && from && (from !== to || isInAnyMorphing(from)) ? from : null;\n      var transFromProps = {};\n      prepareShapeOrExtraTransitionFrom('shape', to, morphFrom, toElOption, transFromProps, false);\n      prepareShapeOrExtraTransitionFrom('extra', to, morphFrom, toElOption, transFromProps, false);\n      prepareTransformTransitionFrom(to, morphFrom, toElOption, transFromProps, false);\n      prepareStyleTransitionFrom(to, morphFrom, toElOption, toElOption.style, transFromProps, false);\n      applyPropsFinal(to, allPropsFinal, toElOption.style);\n\n      if (morphFrom) {\n        morphPath(morphFrom, to, elAnimationConfig);\n      }\n\n      applyTransitionFrom(to, toDataIndex, toElOption, this._seriesModel, transFromProps, false);\n    }\n  };\n\n  MorphPreparation.prototype._manyToOneForSingleTo = function (toIdx, fromIdxStart, fromCount) {\n    var to = this._toList[toIdx];\n    var toElOption = this._toElOptionList[toIdx];\n    var allPropsFinal = this._allPropsFinalList[toIdx];\n    applyPropsFinal(to, allPropsFinal, toElOption.style);\n\n    var elAnimationConfig = this._getOrCreateMorphConfig(this._toDataIndices[toIdx]);\n\n    if (elAnimationConfig.duration && fromIdxStart != null) {\n      var combineFromList = [];\n\n      for (var fromIdx = fromIdxStart; fromIdx < fromCount; fromIdx++) {\n        combineFromList.push(this._fromList[fromIdx]);\n      }\n\n      var combineResult = combine(combineFromList, to, elAnimationConfig, copyPropsWhenDivided);\n\n      this._processResultIndividuals(combineResult, toIdx, null);\n    }\n  };\n\n  MorphPreparation.prototype._oneToManyForSingleFrom = function (toIdxStart, toCount, fromIdx) {\n    var from = fromIdx == null ? null : this._fromList[fromIdx];\n    var toList = this._toList;\n    var separateToList = [];\n\n    for (var toIdx = toIdxStart; toIdx < toCount; toIdx++) {\n      var to = toList[toIdx];\n      applyPropsFinal(to, this._allPropsFinalList[toIdx], this._toElOptionList[toIdx].style);\n      separateToList.push(to);\n    }\n\n    var elAnimationConfig = this._getOrCreateMorphConfig(this._toDataIndices[toIdxStart]);\n\n    if (elAnimationConfig.duration && from) {\n      var separateResult = separate(from, separateToList, elAnimationConfig, copyPropsWhenDivided);\n\n      this._processResultIndividuals(separateResult, toIdxStart, toCount);\n    }\n  };\n\n  MorphPreparation.prototype._processResultIndividuals = function (combineSeparateResult, toIdxStart, toCount) {\n    var isSeparate = toCount != null;\n\n    for (var i = 0; i < combineSeparateResult.count; i++) {\n      var fromIndividual = combineSeparateResult.fromIndividuals[i];\n      var toIndividual = combineSeparateResult.toIndividuals[i];\n      var toIdx = toIdxStart + (isSeparate ? i : 0);\n      var toElOption = this._toElOptionList[toIdx];\n      var dataIndex = this._toDataIndices[toIdx];\n      var transFromProps = {};\n      prepareTransformTransitionFrom(toIndividual, fromIndividual, toElOption, transFromProps, false);\n      prepareStyleTransitionFrom(toIndividual, fromIndividual, toElOption, toElOption.style, transFromProps, false);\n      applyTransitionFrom(toIndividual, dataIndex, toElOption, this._seriesModel, transFromProps, false);\n    }\n  };\n\n  MorphPreparation.prototype._getOrCreateMorphConfig = function (dataIndex) {\n    var morphConfigList = this._morphConfigList;\n    var config = morphConfigList[dataIndex];\n\n    if (config) {\n      return config;\n    }\n\n    var duration;\n    var easing;\n    var delay;\n    var seriesModel = this._seriesModel;\n    var transOpt = this._transOpt;\n\n    if (seriesModel.isAnimationEnabled()) {\n      var animationPayload = void 0;\n\n      if (seriesModel && seriesModel.ecModel) {\n        var updatePayload = seriesModel.ecModel.getUpdatePayload();\n        animationPayload = updatePayload && updatePayload.animation;\n      }\n\n      if (animationPayload) {\n        duration = animationPayload.duration || 0;\n        easing = animationPayload.easing || 'cubicOut';\n        delay = animationPayload.delay || 0;\n      } else {\n        easing = seriesModel.get('animationEasingUpdate');\n        var delayOption = seriesModel.get('animationDelayUpdate');\n        delay = isFunction(delayOption) ? delayOption(dataIndex) : delayOption;\n        var durationOption = seriesModel.get('animationDurationUpdate');\n        duration = isFunction(durationOption) ? durationOption(dataIndex) : durationOption;\n      }\n    }\n\n    config = {\n      duration: duration || 0,\n      delay: delay,\n      easing: easing,\n      dividingMethod: transOpt ? transOpt.dividingMethod : null\n    };\n    morphConfigList[dataIndex] = config;\n    return config;\n  };\n\n  MorphPreparation.prototype.reset = function (type) {\n    this._type = type;\n    this._fromList.length = this._toList.length = this._toElOptionList.length = this._allPropsFinalList.length = this._toDataIndices.length = 0;\n  };\n\n  return MorphPreparation;\n}();\n\nfunction copyPropsWhenDivided(srcPath, tarPath, willClone) {\n  tarPath.style = willClone ? clone(srcPath.style) : srcPath.style;\n  tarPath.zlevel = srcPath.zlevel;\n  tarPath.z = srcPath.z;\n  tarPath.z2 = srcPath.z2;\n}\n\nexport function install(registers) {\n  registers.registerChartView(CustomSeriesView);\n  registers.registerSeriesModel(CustomSeriesModel);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport * as axisPointerModelHelper from './modelHelper';\nimport * as eventTool from 'zrender/lib/core/event';\nimport * as throttleUtil from '../../util/throttle';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\nvar clone = zrUtil.clone;\nvar bind = zrUtil.bind;\n\nvar BaseAxisPointer = function () {\n  function BaseAxisPointer() {\n    this._dragging = false;\n    this.animationThreshold = 15;\n  }\n\n  BaseAxisPointer.prototype.render = function (axisModel, axisPointerModel, api, forceRender) {\n    var value = axisPointerModel.get('value');\n    var status = axisPointerModel.get('status');\n    this._axisModel = axisModel;\n    this._axisPointerModel = axisPointerModel;\n    this._api = api;\n\n    if (!forceRender && this._lastValue === value && this._lastStatus === status) {\n      return;\n    }\n\n    this._lastValue = value;\n    this._lastStatus = status;\n    var group = this._group;\n    var handle = this._handle;\n\n    if (!status || status === 'hide') {\n      group && group.hide();\n      handle && handle.hide();\n      return;\n    }\n\n    group && group.show();\n    handle && handle.show();\n    var elOption = {};\n    this.makeElOption(elOption, value, axisModel, axisPointerModel, api);\n    var graphicKey = elOption.graphicKey;\n\n    if (graphicKey !== this._lastGraphicKey) {\n      this.clear(api);\n    }\n\n    this._lastGraphicKey = graphicKey;\n    var moveAnimation = this._moveAnimation = this.determineAnimation(axisModel, axisPointerModel);\n\n    if (!group) {\n      group = this._group = new graphic.Group();\n      this.createPointerEl(group, elOption, axisModel, axisPointerModel);\n      this.createLabelEl(group, elOption, axisModel, axisPointerModel);\n      api.getZr().add(group);\n    } else {\n      var doUpdateProps = zrUtil.curry(updateProps, axisPointerModel, moveAnimation);\n      this.updatePointerEl(group, elOption, doUpdateProps);\n      this.updateLabelEl(group, elOption, doUpdateProps, axisPointerModel);\n    }\n\n    updateMandatoryProps(group, axisPointerModel, true);\n\n    this._renderHandle(value);\n  };\n\n  BaseAxisPointer.prototype.remove = function (api) {\n    this.clear(api);\n  };\n\n  BaseAxisPointer.prototype.dispose = function (api) {\n    this.clear(api);\n  };\n\n  BaseAxisPointer.prototype.determineAnimation = function (axisModel, axisPointerModel) {\n    var animation = axisPointerModel.get('animation');\n    var axis = axisModel.axis;\n    var isCategoryAxis = axis.type === 'category';\n    var useSnap = axisPointerModel.get('snap');\n\n    if (!useSnap && !isCategoryAxis) {\n      return false;\n    }\n\n    if (animation === 'auto' || animation == null) {\n      var animationThreshold = this.animationThreshold;\n\n      if (isCategoryAxis && axis.getBandWidth() > animationThreshold) {\n        return true;\n      }\n\n      if (useSnap) {\n        var seriesDataCount = axisPointerModelHelper.getAxisInfo(axisModel).seriesDataCount;\n        var axisExtent = axis.getExtent();\n        return Math.abs(axisExtent[0] - axisExtent[1]) / seriesDataCount > animationThreshold;\n      }\n\n      return false;\n    }\n\n    return animation === true;\n  };\n\n  BaseAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {};\n\n  BaseAxisPointer.prototype.createPointerEl = function (group, elOption, axisModel, axisPointerModel) {\n    var pointerOption = elOption.pointer;\n\n    if (pointerOption) {\n      var pointerEl = inner(group).pointerEl = new graphic[pointerOption.type](clone(elOption.pointer));\n      group.add(pointerEl);\n    }\n  };\n\n  BaseAxisPointer.prototype.createLabelEl = function (group, elOption, axisModel, axisPointerModel) {\n    if (elOption.label) {\n      var labelEl = inner(group).labelEl = new graphic.Text(clone(elOption.label));\n      group.add(labelEl);\n      updateLabelShowHide(labelEl, axisPointerModel);\n    }\n  };\n\n  BaseAxisPointer.prototype.updatePointerEl = function (group, elOption, updateProps) {\n    var pointerEl = inner(group).pointerEl;\n\n    if (pointerEl && elOption.pointer) {\n      pointerEl.setStyle(elOption.pointer.style);\n      updateProps(pointerEl, {\n        shape: elOption.pointer.shape\n      });\n    }\n  };\n\n  BaseAxisPointer.prototype.updateLabelEl = function (group, elOption, updateProps, axisPointerModel) {\n    var labelEl = inner(group).labelEl;\n\n    if (labelEl) {\n      labelEl.setStyle(elOption.label.style);\n      updateProps(labelEl, {\n        x: elOption.label.x,\n        y: elOption.label.y\n      });\n      updateLabelShowHide(labelEl, axisPointerModel);\n    }\n  };\n\n  BaseAxisPointer.prototype._renderHandle = function (value) {\n    if (this._dragging || !this.updateHandleTransform) {\n      return;\n    }\n\n    var axisPointerModel = this._axisPointerModel;\n\n    var zr = this._api.getZr();\n\n    var handle = this._handle;\n    var handleModel = axisPointerModel.getModel('handle');\n    var status = axisPointerModel.get('status');\n\n    if (!handleModel.get('show') || !status || status === 'hide') {\n      handle && zr.remove(handle);\n      this._handle = null;\n      return;\n    }\n\n    var isInit;\n\n    if (!this._handle) {\n      isInit = true;\n      handle = this._handle = graphic.createIcon(handleModel.get('icon'), {\n        cursor: 'move',\n        draggable: true,\n        onmousemove: function (e) {\n          eventTool.stop(e.event);\n        },\n        onmousedown: bind(this._onHandleDragMove, this, 0, 0),\n        drift: bind(this._onHandleDragMove, this),\n        ondragend: bind(this._onHandleDragEnd, this)\n      });\n      zr.add(handle);\n    }\n\n    updateMandatoryProps(handle, axisPointerModel, false);\n    handle.setStyle(handleModel.getItemStyle(null, ['color', 'borderColor', 'borderWidth', 'opacity', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY']));\n    var handleSize = handleModel.get('size');\n\n    if (!zrUtil.isArray(handleSize)) {\n      handleSize = [handleSize, handleSize];\n    }\n\n    handle.scaleX = handleSize[0] / 2;\n    handle.scaleY = handleSize[1] / 2;\n    throttleUtil.createOrUpdate(this, '_doDispatchAxisPointer', handleModel.get('throttle') || 0, 'fixRate');\n\n    this._moveHandleToValue(value, isInit);\n  };\n\n  BaseAxisPointer.prototype._moveHandleToValue = function (value, isInit) {\n    updateProps(this._axisPointerModel, !isInit && this._moveAnimation, this._handle, getHandleTransProps(this.getHandleTransform(value, this._axisModel, this._axisPointerModel)));\n  };\n\n  BaseAxisPointer.prototype._onHandleDragMove = function (dx, dy) {\n    var handle = this._handle;\n\n    if (!handle) {\n      return;\n    }\n\n    this._dragging = true;\n    var trans = this.updateHandleTransform(getHandleTransProps(handle), [dx, dy], this._axisModel, this._axisPointerModel);\n    this._payloadInfo = trans;\n    handle.stopAnimation();\n    handle.attr(getHandleTransProps(trans));\n    inner(handle).lastProp = null;\n\n    this._doDispatchAxisPointer();\n  };\n\n  BaseAxisPointer.prototype._doDispatchAxisPointer = function () {\n    var handle = this._handle;\n\n    if (!handle) {\n      return;\n    }\n\n    var payloadInfo = this._payloadInfo;\n    var axisModel = this._axisModel;\n\n    this._api.dispatchAction({\n      type: 'updateAxisPointer',\n      x: payloadInfo.cursorPoint[0],\n      y: payloadInfo.cursorPoint[1],\n      tooltipOption: payloadInfo.tooltipOption,\n      axesInfo: [{\n        axisDim: axisModel.axis.dim,\n        axisIndex: axisModel.componentIndex\n      }]\n    });\n  };\n\n  BaseAxisPointer.prototype._onHandleDragEnd = function () {\n    this._dragging = false;\n    var handle = this._handle;\n\n    if (!handle) {\n      return;\n    }\n\n    var value = this._axisPointerModel.get('value');\n\n    this._moveHandleToValue(value);\n\n    this._api.dispatchAction({\n      type: 'hideTip'\n    });\n  };\n\n  BaseAxisPointer.prototype.clear = function (api) {\n    this._lastValue = null;\n    this._lastStatus = null;\n    var zr = api.getZr();\n    var group = this._group;\n    var handle = this._handle;\n\n    if (zr && group) {\n      this._lastGraphicKey = null;\n      group && zr.remove(group);\n      handle && zr.remove(handle);\n      this._group = null;\n      this._handle = null;\n      this._payloadInfo = null;\n    }\n  };\n\n  BaseAxisPointer.prototype.doClear = function () {};\n\n  BaseAxisPointer.prototype.buildLabel = function (xy, wh, xDimIndex) {\n    xDimIndex = xDimIndex || 0;\n    return {\n      x: xy[xDimIndex],\n      y: xy[1 - xDimIndex],\n      width: wh[xDimIndex],\n      height: wh[1 - xDimIndex]\n    };\n  };\n\n  return BaseAxisPointer;\n}();\n\nfunction updateProps(animationModel, moveAnimation, el, props) {\n  if (!propsEqual(inner(el).lastProp, props)) {\n    inner(el).lastProp = props;\n    moveAnimation ? graphic.updateProps(el, props, animationModel) : (el.stopAnimation(), el.attr(props));\n  }\n}\n\nfunction propsEqual(lastProps, newProps) {\n  if (zrUtil.isObject(lastProps) && zrUtil.isObject(newProps)) {\n    var equals_1 = true;\n    zrUtil.each(newProps, function (item, key) {\n      equals_1 = equals_1 && propsEqual(lastProps[key], item);\n    });\n    return !!equals_1;\n  } else {\n    return lastProps === newProps;\n  }\n}\n\nfunction updateLabelShowHide(labelEl, axisPointerModel) {\n  labelEl[axisPointerModel.get(['label', 'show']) ? 'show' : 'hide']();\n}\n\nfunction getHandleTransProps(trans) {\n  return {\n    x: trans.x || 0,\n    y: trans.y || 0,\n    rotation: trans.rotation || 0\n  };\n}\n\nfunction updateMandatoryProps(group, axisPointerModel, silent) {\n  var z = axisPointerModel.get('z');\n  var zlevel = axisPointerModel.get('zlevel');\n  group && group.traverse(function (el) {\n    if (el.type !== 'group') {\n      z != null && (el.z = z);\n      zlevel != null && (el.zlevel = zlevel);\n      el.silent = silent;\n    }\n  });\n}\n\nexport default BaseAxisPointer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport * as textContain from 'zrender/lib/contain/text';\nimport * as formatUtil from '../../util/format';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport * as axisHelper from '../../coord/axisHelper';\nimport AxisBuilder from '../axis/AxisBuilder';\nimport { createTextStyle } from '../../label/labelStyle';\nexport function buildElStyle(axisPointerModel) {\n  var axisPointerType = axisPointerModel.get('type');\n  var styleModel = axisPointerModel.getModel(axisPointerType + 'Style');\n  var style;\n\n  if (axisPointerType === 'line') {\n    style = styleModel.getLineStyle();\n    style.fill = null;\n  } else if (axisPointerType === 'shadow') {\n    style = styleModel.getAreaStyle();\n    style.stroke = null;\n  }\n\n  return style;\n}\nexport function buildLabelElOption(elOption, axisModel, axisPointerModel, api, labelPos) {\n  var value = axisPointerModel.get('value');\n  var text = getValueLabel(value, axisModel.axis, axisModel.ecModel, axisPointerModel.get('seriesDataIndices'), {\n    precision: axisPointerModel.get(['label', 'precision']),\n    formatter: axisPointerModel.get(['label', 'formatter'])\n  });\n  var labelModel = axisPointerModel.getModel('label');\n  var paddings = formatUtil.normalizeCssArray(labelModel.get('padding') || 0);\n  var font = labelModel.getFont();\n  var textRect = textContain.getBoundingRect(text, font);\n  var position = labelPos.position;\n  var width = textRect.width + paddings[1] + paddings[3];\n  var height = textRect.height + paddings[0] + paddings[2];\n  var align = labelPos.align;\n  align === 'right' && (position[0] -= width);\n  align === 'center' && (position[0] -= width / 2);\n  var verticalAlign = labelPos.verticalAlign;\n  verticalAlign === 'bottom' && (position[1] -= height);\n  verticalAlign === 'middle' && (position[1] -= height / 2);\n  confineInContainer(position, width, height, api);\n  var bgColor = labelModel.get('backgroundColor');\n\n  if (!bgColor || bgColor === 'auto') {\n    bgColor = axisModel.get(['axisLine', 'lineStyle', 'color']);\n  }\n\n  elOption.label = {\n    x: position[0],\n    y: position[1],\n    style: createTextStyle(labelModel, {\n      text: text,\n      font: font,\n      fill: labelModel.getTextColor(),\n      padding: paddings,\n      backgroundColor: bgColor\n    }),\n    z2: 10\n  };\n}\n\nfunction confineInContainer(position, width, height, api) {\n  var viewWidth = api.getWidth();\n  var viewHeight = api.getHeight();\n  position[0] = Math.min(position[0] + width, viewWidth) - width;\n  position[1] = Math.min(position[1] + height, viewHeight) - height;\n  position[0] = Math.max(position[0], 0);\n  position[1] = Math.max(position[1], 0);\n}\n\nexport function getValueLabel(value, axis, ecModel, seriesDataIndices, opt) {\n  value = axis.scale.parse(value);\n  var text = axis.scale.getLabel({\n    value: value\n  }, {\n    precision: opt.precision\n  });\n  var formatter = opt.formatter;\n\n  if (formatter) {\n    var params_1 = {\n      value: axisHelper.getAxisRawValue(axis, {\n        value: value\n      }),\n      axisDimension: axis.dim,\n      axisIndex: axis.index,\n      seriesData: []\n    };\n    zrUtil.each(seriesDataIndices, function (idxItem) {\n      var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\n      var dataIndex = idxItem.dataIndexInside;\n      var dataParams = series && series.getDataParams(dataIndex);\n      dataParams && params_1.seriesData.push(dataParams);\n    });\n\n    if (zrUtil.isString(formatter)) {\n      text = formatter.replace('{value}', text);\n    } else if (zrUtil.isFunction(formatter)) {\n      text = formatter(params_1);\n    }\n  }\n\n  return text;\n}\nexport function getTransformedPosition(axis, value, layoutInfo) {\n  var transform = matrix.create();\n  matrix.rotate(transform, transform, layoutInfo.rotation);\n  matrix.translate(transform, transform, layoutInfo.position);\n  return graphic.applyTransform([axis.dataToCoord(value), (layoutInfo.labelOffset || 0) + (layoutInfo.labelDirection || 1) * (layoutInfo.labelMargin || 0)], transform);\n}\nexport function buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api) {\n  var textLayout = AxisBuilder.innerTextLayout(layoutInfo.rotation, 0, layoutInfo.labelDirection);\n  layoutInfo.labelMargin = axisPointerModel.get(['label', 'margin']);\n  buildLabelElOption(elOption, axisModel, axisPointerModel, api, {\n    position: getTransformedPosition(axisModel.axis, value, layoutInfo),\n    align: textLayout.textAlign,\n    verticalAlign: textLayout.textVerticalAlign\n  });\n}\nexport function makeLineShape(p1, p2, xDimIndex) {\n  xDimIndex = xDimIndex || 0;\n  return {\n    x1: p1[xDimIndex],\n    y1: p1[1 - xDimIndex],\n    x2: p2[xDimIndex],\n    y2: p2[1 - xDimIndex]\n  };\n}\nexport function makeRectShape(xy, wh, xDimIndex) {\n  xDimIndex = xDimIndex || 0;\n  return {\n    x: xy[xDimIndex],\n    y: xy[1 - xDimIndex],\n    width: wh[xDimIndex],\n    height: wh[1 - xDimIndex]\n  };\n}\nexport function makeSectorShape(cx, cy, r0, r, startAngle, endAngle) {\n  return {\n    cx: cx,\n    cy: cy,\n    r0: r0,\n    r: r,\n    startAngle: startAngle,\n    endAngle: endAngle,\n    clockwise: true\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BaseAxisPointer from './BaseAxisPointer';\nimport * as viewHelper from './viewHelper';\nimport * as cartesianAxisHelper from '../../coord/cartesian/cartesianAxisHelper';\n\nvar CartesianAxisPointer = function (_super) {\n  __extends(CartesianAxisPointer, _super);\n\n  function CartesianAxisPointer() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  CartesianAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\n    var axis = axisModel.axis;\n    var grid = axis.grid;\n    var axisPointerType = axisPointerModel.get('type');\n    var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent();\n    var pixelValue = axis.toGlobalCoord(axis.dataToCoord(value, true));\n\n    if (axisPointerType && axisPointerType !== 'none') {\n      var elStyle = viewHelper.buildElStyle(axisPointerModel);\n      var pointerOption = pointerShapeBuilder[axisPointerType](axis, pixelValue, otherExtent);\n      pointerOption.style = elStyle;\n      elOption.graphicKey = pointerOption.type;\n      elOption.pointer = pointerOption;\n    }\n\n    var layoutInfo = cartesianAxisHelper.layout(grid.model, axisModel);\n    viewHelper.buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api);\n  };\n\n  CartesianAxisPointer.prototype.getHandleTransform = function (value, axisModel, axisPointerModel) {\n    var layoutInfo = cartesianAxisHelper.layout(axisModel.axis.grid.model, axisModel, {\n      labelInside: false\n    });\n    layoutInfo.labelMargin = axisPointerModel.get(['handle', 'margin']);\n    var pos = viewHelper.getTransformedPosition(axisModel.axis, value, layoutInfo);\n    return {\n      x: pos[0],\n      y: pos[1],\n      rotation: layoutInfo.rotation + (layoutInfo.labelDirection < 0 ? Math.PI : 0)\n    };\n  };\n\n  CartesianAxisPointer.prototype.updateHandleTransform = function (transform, delta, axisModel, axisPointerModel) {\n    var axis = axisModel.axis;\n    var grid = axis.grid;\n    var axisExtent = axis.getGlobalExtent(true);\n    var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent();\n    var dimIndex = axis.dim === 'x' ? 0 : 1;\n    var currPosition = [transform.x, transform.y];\n    currPosition[dimIndex] += delta[dimIndex];\n    currPosition[dimIndex] = Math.min(axisExtent[1], currPosition[dimIndex]);\n    currPosition[dimIndex] = Math.max(axisExtent[0], currPosition[dimIndex]);\n    var cursorOtherValue = (otherExtent[1] + otherExtent[0]) / 2;\n    var cursorPoint = [cursorOtherValue, cursorOtherValue];\n    cursorPoint[dimIndex] = currPosition[dimIndex];\n    var tooltipOptions = [{\n      verticalAlign: 'middle'\n    }, {\n      align: 'center'\n    }];\n    return {\n      x: currPosition[0],\n      y: currPosition[1],\n      rotation: transform.rotation,\n      cursorPoint: cursorPoint,\n      tooltipOption: tooltipOptions[dimIndex]\n    };\n  };\n\n  return CartesianAxisPointer;\n}(BaseAxisPointer);\n\nfunction getCartesian(grid, axis) {\n  var opt = {};\n  opt[axis.dim + 'AxisIndex'] = axis.index;\n  return grid.getCartesian(opt);\n}\n\nvar pointerShapeBuilder = {\n  line: function (axis, pixelValue, otherExtent) {\n    var targetShape = viewHelper.makeLineShape([pixelValue, otherExtent[0]], [pixelValue, otherExtent[1]], getAxisDimIndex(axis));\n    return {\n      type: 'Line',\n      subPixelOptimize: true,\n      shape: targetShape\n    };\n  },\n  shadow: function (axis, pixelValue, otherExtent) {\n    var bandWidth = Math.max(1, axis.getBandWidth());\n    var span = otherExtent[1] - otherExtent[0];\n    return {\n      type: 'Rect',\n      shape: viewHelper.makeRectShape([pixelValue - bandWidth / 2, otherExtent[0]], [bandWidth, span], getAxisDimIndex(axis))\n    };\n  }\n};\n\nfunction getAxisDimIndex(axis) {\n  return axis.dim === 'x' ? 0 : 1;\n}\n\nexport default CartesianAxisPointer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\n\nvar AxisPointerModel = function (_super) {\n  __extends(AxisPointerModel, _super);\n\n  function AxisPointerModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = AxisPointerModel.type;\n    return _this;\n  }\n\n  AxisPointerModel.type = 'axisPointer';\n  AxisPointerModel.defaultOption = {\n    show: 'auto',\n    zlevel: 0,\n    z: 50,\n    type: 'line',\n    snap: false,\n    triggerTooltip: true,\n    value: null,\n    status: null,\n    link: [],\n    animation: null,\n    animationDurationUpdate: 200,\n    lineStyle: {\n      color: '#B9BEC9',\n      width: 1,\n      type: 'dashed'\n    },\n    shadowStyle: {\n      color: 'rgba(210,219,238,0.2)'\n    },\n    label: {\n      show: true,\n      formatter: null,\n      precision: 'auto',\n      margin: 3,\n      color: '#fff',\n      padding: [5, 7, 5, 7],\n      backgroundColor: 'auto',\n      borderColor: null,\n      borderWidth: 0,\n      borderRadius: 3\n    },\n    handle: {\n      show: false,\n      icon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z',\n      size: 45,\n      margin: 50,\n      color: '#333',\n      shadowBlur: 3,\n      shadowColor: '#aaa',\n      shadowOffsetX: 0,\n      shadowOffsetY: 2,\n      throttle: 40\n    }\n  };\n  return AxisPointerModel;\n}(ComponentModel);\n\nexport default AxisPointerModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\nvar each = zrUtil.each;\nexport function register(key, api, handler) {\n  if (env.node) {\n    return;\n  }\n\n  var zr = api.getZr();\n  inner(zr).records || (inner(zr).records = {});\n  initGlobalListeners(zr, api);\n  var record = inner(zr).records[key] || (inner(zr).records[key] = {});\n  record.handler = handler;\n}\n\nfunction initGlobalListeners(zr, api) {\n  if (inner(zr).initialized) {\n    return;\n  }\n\n  inner(zr).initialized = true;\n  useHandler('click', zrUtil.curry(doEnter, 'click'));\n  useHandler('mousemove', zrUtil.curry(doEnter, 'mousemove'));\n  useHandler('globalout', onLeave);\n\n  function useHandler(eventType, cb) {\n    zr.on(eventType, function (e) {\n      var dis = makeDispatchAction(api);\n      each(inner(zr).records, function (record) {\n        record && cb(record, e, dis.dispatchAction);\n      });\n      dispatchTooltipFinally(dis.pendings, api);\n    });\n  }\n}\n\nfunction dispatchTooltipFinally(pendings, api) {\n  var showLen = pendings.showTip.length;\n  var hideLen = pendings.hideTip.length;\n  var actuallyPayload;\n\n  if (showLen) {\n    actuallyPayload = pendings.showTip[showLen - 1];\n  } else if (hideLen) {\n    actuallyPayload = pendings.hideTip[hideLen - 1];\n  }\n\n  if (actuallyPayload) {\n    actuallyPayload.dispatchAction = null;\n    api.dispatchAction(actuallyPayload);\n  }\n}\n\nfunction onLeave(record, e, dispatchAction) {\n  record.handler('leave', null, dispatchAction);\n}\n\nfunction doEnter(currTrigger, record, e, dispatchAction) {\n  record.handler(currTrigger, e, dispatchAction);\n}\n\nfunction makeDispatchAction(api) {\n  var pendings = {\n    showTip: [],\n    hideTip: []\n  };\n\n  var dispatchAction = function (payload) {\n    var pendingList = pendings[payload.type];\n\n    if (pendingList) {\n      pendingList.push(payload);\n    } else {\n      payload.dispatchAction = dispatchAction;\n      api.dispatchAction(payload);\n    }\n  };\n\n  return {\n    dispatchAction: dispatchAction,\n    pendings: pendings\n  };\n}\n\nexport function unregister(key, api) {\n  if (env.node) {\n    return;\n  }\n\n  var zr = api.getZr();\n  var record = (inner(zr).records || {})[key];\n\n  if (record) {\n    inner(zr).records[key] = null;\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as globalListener from './globalListener';\nimport ComponentView from '../../view/Component';\n\nvar AxisPointerView = function (_super) {\n  __extends(AxisPointerView, _super);\n\n  function AxisPointerView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = AxisPointerView.type;\n    return _this;\n  }\n\n  AxisPointerView.prototype.render = function (globalAxisPointerModel, ecModel, api) {\n    var globalTooltipModel = ecModel.getComponent('tooltip');\n    var triggerOn = globalAxisPointerModel.get('triggerOn') || globalTooltipModel && globalTooltipModel.get('triggerOn') || 'mousemove|click';\n    globalListener.register('axisPointer', api, function (currTrigger, e, dispatchAction) {\n      if (triggerOn !== 'none' && (currTrigger === 'leave' || triggerOn.indexOf(currTrigger) >= 0)) {\n        dispatchAction({\n          type: 'updateAxisPointer',\n          currTrigger: currTrigger,\n          x: e && e.offsetX,\n          y: e && e.offsetY\n        });\n      }\n    });\n  };\n\n  AxisPointerView.prototype.remove = function (ecModel, api) {\n    globalListener.unregister('axisPointer', api);\n  };\n\n  AxisPointerView.prototype.dispose = function (ecModel, api) {\n    globalListener.unregister('axisPointer', api);\n  };\n\n  AxisPointerView.type = 'axisPointer';\n  return AxisPointerView;\n}(ComponentView);\n\nexport default AxisPointerView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nexport default function findPointFromSeries(finder, ecModel) {\n  var point = [];\n  var seriesIndex = finder.seriesIndex;\n  var seriesModel;\n\n  if (seriesIndex == null || !(seriesModel = ecModel.getSeriesByIndex(seriesIndex))) {\n    return {\n      point: []\n    };\n  }\n\n  var data = seriesModel.getData();\n  var dataIndex = modelUtil.queryDataIndex(data, finder);\n\n  if (dataIndex == null || dataIndex < 0 || zrUtil.isArray(dataIndex)) {\n    return {\n      point: []\n    };\n  }\n\n  var el = data.getItemGraphicEl(dataIndex);\n  var coordSys = seriesModel.coordinateSystem;\n\n  if (seriesModel.getTooltipPosition) {\n    point = seriesModel.getTooltipPosition(dataIndex) || [];\n  } else if (coordSys && coordSys.dataToPoint) {\n    if (finder.isStacked) {\n      var baseAxis = coordSys.getBaseAxis();\n      var valueAxis = coordSys.getOtherAxis(baseAxis);\n      var valueAxisDim = valueAxis.dim;\n      var baseAxisDim = baseAxis.dim;\n      var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\n      var baseDim = data.mapDimension(baseAxisDim);\n      var stackedData = [];\n      stackedData[baseDataOffset] = data.get(baseDim, dataIndex);\n      stackedData[1 - baseDataOffset] = data.get(data.getCalculationInfo('stackResultDimension'), dataIndex);\n      point = coordSys.dataToPoint(stackedData) || [];\n    } else {\n      point = coordSys.dataToPoint(data.getValues(zrUtil.map(coordSys.dimensions, function (dim) {\n        return data.mapDimension(dim);\n      }), dataIndex)) || [];\n    }\n  } else if (el) {\n    var rect = el.getBoundingRect().clone();\n    rect.applyTransform(el.transform);\n    point = [rect.x + rect.width / 2, rect.y + rect.height / 2];\n  }\n\n  return {\n    point: point,\n    el: el\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner } from '../../util/model';\nimport * as modelHelper from './modelHelper';\nimport findPointFromSeries from './findPointFromSeries';\nimport { each, curry, bind, extend } from 'zrender/lib/core/util';\nvar inner = makeInner();\nexport default function axisTrigger(payload, ecModel, api) {\n  var currTrigger = payload.currTrigger;\n  var point = [payload.x, payload.y];\n  var finder = payload;\n  var dispatchAction = payload.dispatchAction || bind(api.dispatchAction, api);\n  var coordSysAxesInfo = ecModel.getComponent('axisPointer').coordSysAxesInfo;\n\n  if (!coordSysAxesInfo) {\n    return;\n  }\n\n  if (illegalPoint(point)) {\n    point = findPointFromSeries({\n      seriesIndex: finder.seriesIndex,\n      dataIndex: finder.dataIndex\n    }, ecModel).point;\n  }\n\n  var isIllegalPoint = illegalPoint(point);\n  var inputAxesInfo = finder.axesInfo;\n  var axesInfo = coordSysAxesInfo.axesInfo;\n  var shouldHide = currTrigger === 'leave' || illegalPoint(point);\n  var outputPayload = {};\n  var showValueMap = {};\n  var dataByCoordSys = {\n    list: [],\n    map: {}\n  };\n  var updaters = {\n    showPointer: curry(showPointer, showValueMap),\n    showTooltip: curry(showTooltip, dataByCoordSys)\n  };\n  each(coordSysAxesInfo.coordSysMap, function (coordSys, coordSysKey) {\n    var coordSysContainsPoint = isIllegalPoint || coordSys.containPoint(point);\n    each(coordSysAxesInfo.coordSysAxesInfo[coordSysKey], function (axisInfo, key) {\n      var axis = axisInfo.axis;\n      var inputAxisInfo = findInputAxisInfo(inputAxesInfo, axisInfo);\n\n      if (!shouldHide && coordSysContainsPoint && (!inputAxesInfo || inputAxisInfo)) {\n        var val = inputAxisInfo && inputAxisInfo.value;\n\n        if (val == null && !isIllegalPoint) {\n          val = axis.pointToData(point);\n        }\n\n        val != null && processOnAxis(axisInfo, val, updaters, false, outputPayload);\n      }\n    });\n  });\n  var linkTriggers = {};\n  each(axesInfo, function (tarAxisInfo, tarKey) {\n    var linkGroup = tarAxisInfo.linkGroup;\n\n    if (linkGroup && !showValueMap[tarKey]) {\n      each(linkGroup.axesInfo, function (srcAxisInfo, srcKey) {\n        var srcValItem = showValueMap[srcKey];\n\n        if (srcAxisInfo !== tarAxisInfo && srcValItem) {\n          var val = srcValItem.value;\n          linkGroup.mapper && (val = tarAxisInfo.axis.scale.parse(linkGroup.mapper(val, makeMapperParam(srcAxisInfo), makeMapperParam(tarAxisInfo))));\n          linkTriggers[tarAxisInfo.key] = val;\n        }\n      });\n    }\n  });\n  each(linkTriggers, function (val, tarKey) {\n    processOnAxis(axesInfo[tarKey], val, updaters, true, outputPayload);\n  });\n  updateModelActually(showValueMap, axesInfo, outputPayload);\n  dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction);\n  dispatchHighDownActually(axesInfo, dispatchAction, api);\n  return outputPayload;\n}\n\nfunction processOnAxis(axisInfo, newValue, updaters, noSnap, outputFinder) {\n  var axis = axisInfo.axis;\n\n  if (axis.scale.isBlank() || !axis.containData(newValue)) {\n    return;\n  }\n\n  if (!axisInfo.involveSeries) {\n    updaters.showPointer(axisInfo, newValue);\n    return;\n  }\n\n  var payloadInfo = buildPayloadsBySeries(newValue, axisInfo);\n  var payloadBatch = payloadInfo.payloadBatch;\n  var snapToValue = payloadInfo.snapToValue;\n\n  if (payloadBatch[0] && outputFinder.seriesIndex == null) {\n    extend(outputFinder, payloadBatch[0]);\n  }\n\n  if (!noSnap && axisInfo.snap) {\n    if (axis.containData(snapToValue) && snapToValue != null) {\n      newValue = snapToValue;\n    }\n  }\n\n  updaters.showPointer(axisInfo, newValue, payloadBatch);\n  updaters.showTooltip(axisInfo, payloadInfo, snapToValue);\n}\n\nfunction buildPayloadsBySeries(value, axisInfo) {\n  var axis = axisInfo.axis;\n  var dim = axis.dim;\n  var snapToValue = value;\n  var payloadBatch = [];\n  var minDist = Number.MAX_VALUE;\n  var minDiff = -1;\n  each(axisInfo.seriesModels, function (series, idx) {\n    var dataDim = series.getData().mapDimensionsAll(dim);\n    var seriesNestestValue;\n    var dataIndices;\n\n    if (series.getAxisTooltipData) {\n      var result = series.getAxisTooltipData(dataDim, value, axis);\n      dataIndices = result.dataIndices;\n      seriesNestestValue = result.nestestValue;\n    } else {\n      dataIndices = series.getData().indicesOfNearest(dataDim[0], value, axis.type === 'category' ? 0.5 : null);\n\n      if (!dataIndices.length) {\n        return;\n      }\n\n      seriesNestestValue = series.getData().get(dataDim[0], dataIndices[0]);\n    }\n\n    if (seriesNestestValue == null || !isFinite(seriesNestestValue)) {\n      return;\n    }\n\n    var diff = value - seriesNestestValue;\n    var dist = Math.abs(diff);\n\n    if (dist <= minDist) {\n      if (dist < minDist || diff >= 0 && minDiff < 0) {\n        minDist = dist;\n        minDiff = diff;\n        snapToValue = seriesNestestValue;\n        payloadBatch.length = 0;\n      }\n\n      each(dataIndices, function (dataIndex) {\n        payloadBatch.push({\n          seriesIndex: series.seriesIndex,\n          dataIndexInside: dataIndex,\n          dataIndex: series.getData().getRawIndex(dataIndex)\n        });\n      });\n    }\n  });\n  return {\n    payloadBatch: payloadBatch,\n    snapToValue: snapToValue\n  };\n}\n\nfunction showPointer(showValueMap, axisInfo, value, payloadBatch) {\n  showValueMap[axisInfo.key] = {\n    value: value,\n    payloadBatch: payloadBatch\n  };\n}\n\nfunction showTooltip(dataByCoordSys, axisInfo, payloadInfo, value) {\n  var payloadBatch = payloadInfo.payloadBatch;\n  var axis = axisInfo.axis;\n  var axisModel = axis.model;\n  var axisPointerModel = axisInfo.axisPointerModel;\n\n  if (!axisInfo.triggerTooltip || !payloadBatch.length) {\n    return;\n  }\n\n  var coordSysModel = axisInfo.coordSys.model;\n  var coordSysKey = modelHelper.makeKey(coordSysModel);\n  var coordSysItem = dataByCoordSys.map[coordSysKey];\n\n  if (!coordSysItem) {\n    coordSysItem = dataByCoordSys.map[coordSysKey] = {\n      coordSysId: coordSysModel.id,\n      coordSysIndex: coordSysModel.componentIndex,\n      coordSysType: coordSysModel.type,\n      coordSysMainType: coordSysModel.mainType,\n      dataByAxis: []\n    };\n    dataByCoordSys.list.push(coordSysItem);\n  }\n\n  coordSysItem.dataByAxis.push({\n    axisDim: axis.dim,\n    axisIndex: axisModel.componentIndex,\n    axisType: axisModel.type,\n    axisId: axisModel.id,\n    value: value,\n    valueLabelOpt: {\n      precision: axisPointerModel.get(['label', 'precision']),\n      formatter: axisPointerModel.get(['label', 'formatter'])\n    },\n    seriesDataIndices: payloadBatch.slice()\n  });\n}\n\nfunction updateModelActually(showValueMap, axesInfo, outputPayload) {\n  var outputAxesInfo = outputPayload.axesInfo = [];\n  each(axesInfo, function (axisInfo, key) {\n    var option = axisInfo.axisPointerModel.option;\n    var valItem = showValueMap[key];\n\n    if (valItem) {\n      !axisInfo.useHandle && (option.status = 'show');\n      option.value = valItem.value;\n      option.seriesDataIndices = (valItem.payloadBatch || []).slice();\n    } else {\n      !axisInfo.useHandle && (option.status = 'hide');\n    }\n\n    option.status === 'show' && outputAxesInfo.push({\n      axisDim: axisInfo.axis.dim,\n      axisIndex: axisInfo.axis.model.componentIndex,\n      value: option.value\n    });\n  });\n}\n\nfunction dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction) {\n  if (illegalPoint(point) || !dataByCoordSys.list.length) {\n    dispatchAction({\n      type: 'hideTip'\n    });\n    return;\n  }\n\n  var sampleItem = ((dataByCoordSys.list[0].dataByAxis[0] || {}).seriesDataIndices || [])[0] || {};\n  dispatchAction({\n    type: 'showTip',\n    escapeConnect: true,\n    x: point[0],\n    y: point[1],\n    tooltipOption: payload.tooltipOption,\n    position: payload.position,\n    dataIndexInside: sampleItem.dataIndexInside,\n    dataIndex: sampleItem.dataIndex,\n    seriesIndex: sampleItem.seriesIndex,\n    dataByCoordSys: dataByCoordSys.list\n  });\n}\n\nfunction dispatchHighDownActually(axesInfo, dispatchAction, api) {\n  var zr = api.getZr();\n  var highDownKey = 'axisPointerLastHighlights';\n  var lastHighlights = inner(zr)[highDownKey] || {};\n  var newHighlights = inner(zr)[highDownKey] = {};\n  each(axesInfo, function (axisInfo, key) {\n    var option = axisInfo.axisPointerModel.option;\n    option.status === 'show' && each(option.seriesDataIndices, function (batchItem) {\n      var key = batchItem.seriesIndex + ' | ' + batchItem.dataIndex;\n      newHighlights[key] = batchItem;\n    });\n  });\n  var toHighlight = [];\n  var toDownplay = [];\n  each(lastHighlights, function (batchItem, key) {\n    !newHighlights[key] && toDownplay.push(batchItem);\n  });\n  each(newHighlights, function (batchItem, key) {\n    !lastHighlights[key] && toHighlight.push(batchItem);\n  });\n  toDownplay.length && api.dispatchAction({\n    type: 'downplay',\n    escapeConnect: true,\n    notBlur: true,\n    batch: toDownplay\n  });\n  toHighlight.length && api.dispatchAction({\n    type: 'highlight',\n    escapeConnect: true,\n    notBlur: true,\n    batch: toHighlight\n  });\n}\n\nfunction findInputAxisInfo(inputAxesInfo, axisInfo) {\n  for (var i = 0; i < (inputAxesInfo || []).length; i++) {\n    var inputAxisInfo = inputAxesInfo[i];\n\n    if (axisInfo.axis.dim === inputAxisInfo.axisDim && axisInfo.axis.model.componentIndex === inputAxisInfo.axisIndex) {\n      return inputAxisInfo;\n    }\n  }\n}\n\nfunction makeMapperParam(axisInfo) {\n  var axisModel = axisInfo.axis.model;\n  var item = {};\n  var dim = item.axisDim = axisInfo.axis.dim;\n  item.axisIndex = item[dim + 'AxisIndex'] = axisModel.componentIndex;\n  item.axisName = item[dim + 'AxisName'] = axisModel.name;\n  item.axisId = item[dim + 'AxisId'] = axisModel.id;\n  return item;\n}\n\nfunction illegalPoint(point) {\n  return !point || point[0] == null || isNaN(point[0]) || point[1] == null || isNaN(point[1]);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport AxisView from '../axis/AxisView';\nimport CartesianAxisPointer from './CartesianAxisPointer';\nimport AxisPointerModel from './AxisPointerModel';\nimport AxisPointerView from './AxisPointerView';\nimport { isArray } from 'zrender/lib/core/util';\nimport { collect } from './modelHelper';\nimport axisTrigger from './axisTrigger';\nexport function install(registers) {\n  AxisView.registerAxisPointerClass('CartesianAxisPointer', CartesianAxisPointer);\n  registers.registerComponentModel(AxisPointerModel);\n  registers.registerComponentView(AxisPointerView);\n  registers.registerPreprocessor(function (option) {\n    if (option) {\n      (!option.axisPointer || option.axisPointer.length === 0) && (option.axisPointer = {});\n      var link = option.axisPointer.link;\n\n      if (link && !isArray(link)) {\n        option.axisPointer.link = [link];\n      }\n    }\n  });\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, function (ecModel, api) {\n    ecModel.getComponent('axisPointer').coordSysAxesInfo = collect(ecModel, api);\n  });\n  registers.registerAction({\n    type: 'updateAxisPointer',\n    event: 'updateAxisPointer',\n    update: ':updateAxisPointer'\n  }, axisTrigger);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { install as installSimple } from './installSimple';\nimport { install as installAxisPointer } from '../axisPointer/install';\nimport { use } from '../../extension';\nexport function install(registers) {\n  use(installSimple);\n  use(installAxisPointer);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BaseAxisPointer from './BaseAxisPointer';\nimport * as graphic from '../../util/graphic';\nimport * as viewHelper from './viewHelper';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport AxisBuilder from '../axis/AxisBuilder';\n\nvar PolarAxisPointer = function (_super) {\n  __extends(PolarAxisPointer, _super);\n\n  function PolarAxisPointer() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  PolarAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\n    var axis = axisModel.axis;\n\n    if (axis.dim === 'angle') {\n      this.animationThreshold = Math.PI / 18;\n    }\n\n    var polar = axis.polar;\n    var otherAxis = polar.getOtherAxis(axis);\n    var otherExtent = otherAxis.getExtent();\n    var coordValue = axis.dataToCoord(value);\n    var axisPointerType = axisPointerModel.get('type');\n\n    if (axisPointerType && axisPointerType !== 'none') {\n      var elStyle = viewHelper.buildElStyle(axisPointerModel);\n      var pointerOption = pointerShapeBuilder[axisPointerType](axis, polar, coordValue, otherExtent);\n      pointerOption.style = elStyle;\n      elOption.graphicKey = pointerOption.type;\n      elOption.pointer = pointerOption;\n    }\n\n    var labelMargin = axisPointerModel.get(['label', 'margin']);\n    var labelPos = getLabelPosition(value, axisModel, axisPointerModel, polar, labelMargin);\n    viewHelper.buildLabelElOption(elOption, axisModel, axisPointerModel, api, labelPos);\n  };\n\n  return PolarAxisPointer;\n}(BaseAxisPointer);\n\n;\n\nfunction getLabelPosition(value, axisModel, axisPointerModel, polar, labelMargin) {\n  var axis = axisModel.axis;\n  var coord = axis.dataToCoord(value);\n  var axisAngle = polar.getAngleAxis().getExtent()[0];\n  axisAngle = axisAngle / 180 * Math.PI;\n  var radiusExtent = polar.getRadiusAxis().getExtent();\n  var position;\n  var align;\n  var verticalAlign;\n\n  if (axis.dim === 'radius') {\n    var transform = matrix.create();\n    matrix.rotate(transform, transform, axisAngle);\n    matrix.translate(transform, transform, [polar.cx, polar.cy]);\n    position = graphic.applyTransform([coord, -labelMargin], transform);\n    var labelRotation = axisModel.getModel('axisLabel').get('rotate') || 0;\n    var labelLayout = AxisBuilder.innerTextLayout(axisAngle, labelRotation * Math.PI / 180, -1);\n    align = labelLayout.textAlign;\n    verticalAlign = labelLayout.textVerticalAlign;\n  } else {\n    var r = radiusExtent[1];\n    position = polar.coordToPoint([r + labelMargin, coord]);\n    var cx = polar.cx;\n    var cy = polar.cy;\n    align = Math.abs(position[0] - cx) / r < 0.3 ? 'center' : position[0] > cx ? 'left' : 'right';\n    verticalAlign = Math.abs(position[1] - cy) / r < 0.3 ? 'middle' : position[1] > cy ? 'top' : 'bottom';\n  }\n\n  return {\n    position: position,\n    align: align,\n    verticalAlign: verticalAlign\n  };\n}\n\nvar pointerShapeBuilder = {\n  line: function (axis, polar, coordValue, otherExtent) {\n    return axis.dim === 'angle' ? {\n      type: 'Line',\n      shape: viewHelper.makeLineShape(polar.coordToPoint([otherExtent[0], coordValue]), polar.coordToPoint([otherExtent[1], coordValue]))\n    } : {\n      type: 'Circle',\n      shape: {\n        cx: polar.cx,\n        cy: polar.cy,\n        r: coordValue\n      }\n    };\n  },\n  shadow: function (axis, polar, coordValue, otherExtent) {\n    var bandWidth = Math.max(1, axis.getBandWidth());\n    var radian = Math.PI / 180;\n    return axis.dim === 'angle' ? {\n      type: 'Sector',\n      shape: viewHelper.makeSectorShape(polar.cx, polar.cy, otherExtent[0], otherExtent[1], (-coordValue - bandWidth / 2) * radian, (-coordValue + bandWidth / 2) * radian)\n    } : {\n      type: 'Sector',\n      shape: viewHelper.makeSectorShape(polar.cx, polar.cy, coordValue - bandWidth / 2, coordValue + bandWidth / 2, 0, Math.PI * 2)\n    };\n  }\n};\nexport default PolarAxisPointer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\n\nvar PolarModel = function (_super) {\n  __extends(PolarModel, _super);\n\n  function PolarModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = PolarModel.type;\n    return _this;\n  }\n\n  PolarModel.prototype.findAxisModel = function (axisType) {\n    var foundAxisModel;\n    var ecModel = this.ecModel;\n    ecModel.eachComponent(axisType, function (axisModel) {\n      if (axisModel.getCoordSysModel() === this) {\n        foundAxisModel = axisModel;\n      }\n    }, this);\n    return foundAxisModel;\n  };\n\n  PolarModel.type = 'polar';\n  PolarModel.dependencies = ['radiusAxis', 'angleAxis'];\n  PolarModel.defaultOption = {\n    zlevel: 0,\n    z: 0,\n    center: ['50%', '50%'],\n    radius: '80%'\n  };\n  return PolarModel;\n}(ComponentModel);\n\nexport default PolarModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin';\nimport { SINGLE_REFERRING } from '../../util/model';\n\nvar PolarAxisModel = function (_super) {\n  __extends(PolarAxisModel, _super);\n\n  function PolarAxisModel() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  PolarAxisModel.prototype.getCoordSysModel = function () {\n    return this.getReferringComponents('polar', SINGLE_REFERRING).models[0];\n  };\n\n  PolarAxisModel.type = 'polarAxis';\n  return PolarAxisModel;\n}(ComponentModel);\n\nzrUtil.mixin(PolarAxisModel, AxisModelCommonMixin);\nexport { PolarAxisModel };\n\nvar AngleAxisModel = function (_super) {\n  __extends(AngleAxisModel, _super);\n\n  function AngleAxisModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = AngleAxisModel.type;\n    return _this;\n  }\n\n  AngleAxisModel.type = 'angleAxis';\n  return AngleAxisModel;\n}(PolarAxisModel);\n\nexport { AngleAxisModel };\n\nvar RadiusAxisModel = function (_super) {\n  __extends(RadiusAxisModel, _super);\n\n  function RadiusAxisModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = RadiusAxisModel.type;\n    return _this;\n  }\n\n  RadiusAxisModel.type = 'radiusAxis';\n  return RadiusAxisModel;\n}(PolarAxisModel);\n\nexport { RadiusAxisModel };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis';\n\nvar RadiusAxis = function (_super) {\n  __extends(RadiusAxis, _super);\n\n  function RadiusAxis(scale, radiusExtent) {\n    return _super.call(this, 'radius', scale, radiusExtent) || this;\n  }\n\n  RadiusAxis.prototype.pointToData = function (point, clamp) {\n    return this.polar.pointToData(point, clamp)[this.dim === 'radius' ? 0 : 1];\n  };\n\n  return RadiusAxis;\n}(Axis);\n\nRadiusAxis.prototype.dataToRadius = Axis.prototype.dataToCoord;\nRadiusAxis.prototype.radiusToData = Axis.prototype.coordToData;\nexport default RadiusAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as textContain from 'zrender/lib/contain/text';\nimport Axis from '../Axis';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\n\nvar AngleAxis = function (_super) {\n  __extends(AngleAxis, _super);\n\n  function AngleAxis(scale, angleExtent) {\n    return _super.call(this, 'angle', scale, angleExtent || [0, 360]) || this;\n  }\n\n  AngleAxis.prototype.pointToData = function (point, clamp) {\n    return this.polar.pointToData(point, clamp)[this.dim === 'radius' ? 0 : 1];\n  };\n\n  AngleAxis.prototype.calculateCategoryInterval = function () {\n    var axis = this;\n    var labelModel = axis.getLabelModel();\n    var ordinalScale = axis.scale;\n    var ordinalExtent = ordinalScale.getExtent();\n    var tickCount = ordinalScale.count();\n\n    if (ordinalExtent[1] - ordinalExtent[0] < 1) {\n      return 0;\n    }\n\n    var tickValue = ordinalExtent[0];\n    var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue);\n    var unitH = Math.abs(unitSpan);\n    var rect = textContain.getBoundingRect(tickValue == null ? '' : tickValue + '', labelModel.getFont(), 'center', 'top');\n    var maxH = Math.max(rect.height, 7);\n    var dh = maxH / unitH;\n    isNaN(dh) && (dh = Infinity);\n    var interval = Math.max(0, Math.floor(dh));\n    var cache = inner(axis.model);\n    var lastAutoInterval = cache.lastAutoInterval;\n    var lastTickCount = cache.lastTickCount;\n\n    if (lastAutoInterval != null && lastTickCount != null && Math.abs(lastAutoInterval - interval) <= 1 && Math.abs(lastTickCount - tickCount) <= 1 && lastAutoInterval > interval) {\n      interval = lastAutoInterval;\n    } else {\n      cache.lastTickCount = tickCount;\n      cache.lastAutoInterval = interval;\n    }\n\n    return interval;\n  };\n\n  return AngleAxis;\n}(Axis);\n\nAngleAxis.prototype.dataToAngle = Axis.prototype.dataToCoord;\nAngleAxis.prototype.angleToData = Axis.prototype.coordToData;\nexport default AngleAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport RadiusAxis from './RadiusAxis';\nimport AngleAxis from './AngleAxis';\n\nvar Polar = function () {\n  function Polar(name) {\n    this.dimensions = ['radius', 'angle'];\n    this.type = 'polar';\n    this.cx = 0;\n    this.cy = 0;\n    this._radiusAxis = new RadiusAxis();\n    this._angleAxis = new AngleAxis();\n    this.axisPointerEnabled = true;\n    this.name = name || '';\n    this._radiusAxis.polar = this._angleAxis.polar = this;\n  }\n\n  Polar.prototype.containPoint = function (point) {\n    var coord = this.pointToCoord(point);\n    return this._radiusAxis.contain(coord[0]) && this._angleAxis.contain(coord[1]);\n  };\n\n  Polar.prototype.containData = function (data) {\n    return this._radiusAxis.containData(data[0]) && this._angleAxis.containData(data[1]);\n  };\n\n  Polar.prototype.getAxis = function (dim) {\n    var key = '_' + dim + 'Axis';\n    return this[key];\n  };\n\n  Polar.prototype.getAxes = function () {\n    return [this._radiusAxis, this._angleAxis];\n  };\n\n  Polar.prototype.getAxesByScale = function (scaleType) {\n    var axes = [];\n    var angleAxis = this._angleAxis;\n    var radiusAxis = this._radiusAxis;\n    angleAxis.scale.type === scaleType && axes.push(angleAxis);\n    radiusAxis.scale.type === scaleType && axes.push(radiusAxis);\n    return axes;\n  };\n\n  Polar.prototype.getAngleAxis = function () {\n    return this._angleAxis;\n  };\n\n  Polar.prototype.getRadiusAxis = function () {\n    return this._radiusAxis;\n  };\n\n  Polar.prototype.getOtherAxis = function (axis) {\n    var angleAxis = this._angleAxis;\n    return axis === angleAxis ? this._radiusAxis : angleAxis;\n  };\n\n  Polar.prototype.getBaseAxis = function () {\n    return this.getAxesByScale('ordinal')[0] || this.getAxesByScale('time')[0] || this.getAngleAxis();\n  };\n\n  Polar.prototype.getTooltipAxes = function (dim) {\n    var baseAxis = dim != null && dim !== 'auto' ? this.getAxis(dim) : this.getBaseAxis();\n    return {\n      baseAxes: [baseAxis],\n      otherAxes: [this.getOtherAxis(baseAxis)]\n    };\n  };\n\n  Polar.prototype.dataToPoint = function (data, clamp) {\n    return this.coordToPoint([this._radiusAxis.dataToRadius(data[0], clamp), this._angleAxis.dataToAngle(data[1], clamp)]);\n  };\n\n  Polar.prototype.pointToData = function (point, clamp) {\n    var coord = this.pointToCoord(point);\n    return [this._radiusAxis.radiusToData(coord[0], clamp), this._angleAxis.angleToData(coord[1], clamp)];\n  };\n\n  Polar.prototype.pointToCoord = function (point) {\n    var dx = point[0] - this.cx;\n    var dy = point[1] - this.cy;\n    var angleAxis = this.getAngleAxis();\n    var extent = angleAxis.getExtent();\n    var minAngle = Math.min(extent[0], extent[1]);\n    var maxAngle = Math.max(extent[0], extent[1]);\n    angleAxis.inverse ? minAngle = maxAngle - 360 : maxAngle = minAngle + 360;\n    var radius = Math.sqrt(dx * dx + dy * dy);\n    dx /= radius;\n    dy /= radius;\n    var radian = Math.atan2(-dy, dx) / Math.PI * 180;\n    var dir = radian < minAngle ? 1 : -1;\n\n    while (radian < minAngle || radian > maxAngle) {\n      radian += dir * 360;\n    }\n\n    return [radius, radian];\n  };\n\n  Polar.prototype.coordToPoint = function (coord) {\n    var radius = coord[0];\n    var radian = coord[1] / 180 * Math.PI;\n    var x = Math.cos(radian) * radius + this.cx;\n    var y = -Math.sin(radian) * radius + this.cy;\n    return [x, y];\n  };\n\n  Polar.prototype.getArea = function () {\n    var angleAxis = this.getAngleAxis();\n    var radiusAxis = this.getRadiusAxis();\n    var radiusExtent = radiusAxis.getExtent().slice();\n    radiusExtent[0] > radiusExtent[1] && radiusExtent.reverse();\n    var angleExtent = angleAxis.getExtent();\n    var RADIAN = Math.PI / 180;\n    return {\n      cx: this.cx,\n      cy: this.cy,\n      r0: radiusExtent[0],\n      r: radiusExtent[1],\n      startAngle: -angleExtent[0] * RADIAN,\n      endAngle: -angleExtent[1] * RADIAN,\n      clockwise: angleAxis.inverse,\n      contain: function (x, y) {\n        var dx = x - this.cx;\n        var dy = y - this.cy;\n        var d2 = dx * dx + dy * dy;\n        var r = this.r;\n        var r0 = this.r0;\n        return d2 <= r * r && d2 >= r0 * r0;\n      }\n    };\n  };\n\n  Polar.prototype.convertToPixel = function (ecModel, finder, value) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? this.dataToPoint(value) : null;\n  };\n\n  Polar.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? this.pointToData(pixel) : null;\n  };\n\n  return Polar;\n}();\n\nfunction getCoordSys(finder) {\n  var seriesModel = finder.seriesModel;\n  var polarModel = finder.polarModel;\n  return polarModel && polarModel.coordinateSystem || seriesModel && seriesModel.coordinateSystem;\n}\n\nexport default Polar;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Polar from './Polar';\nimport { parsePercent } from '../../util/number';\nimport { createScaleByModel, niceScaleExtent, getDataDimensionsOnAxis } from '../../coord/axisHelper';\nimport { SINGLE_REFERRING } from '../../util/model';\n\nfunction resizePolar(polar, polarModel, api) {\n  var center = polarModel.get('center');\n  var width = api.getWidth();\n  var height = api.getHeight();\n  polar.cx = parsePercent(center[0], width);\n  polar.cy = parsePercent(center[1], height);\n  var radiusAxis = polar.getRadiusAxis();\n  var size = Math.min(width, height) / 2;\n  var radius = polarModel.get('radius');\n\n  if (radius == null) {\n    radius = [0, '100%'];\n  } else if (!zrUtil.isArray(radius)) {\n    radius = [0, radius];\n  }\n\n  var parsedRadius = [parsePercent(radius[0], size), parsePercent(radius[1], size)];\n  radiusAxis.inverse ? radiusAxis.setExtent(parsedRadius[1], parsedRadius[0]) : radiusAxis.setExtent(parsedRadius[0], parsedRadius[1]);\n}\n\nfunction updatePolarScale(ecModel, api) {\n  var polar = this;\n  var angleAxis = polar.getAngleAxis();\n  var radiusAxis = polar.getRadiusAxis();\n  angleAxis.scale.setExtent(Infinity, -Infinity);\n  radiusAxis.scale.setExtent(Infinity, -Infinity);\n  ecModel.eachSeries(function (seriesModel) {\n    if (seriesModel.coordinateSystem === polar) {\n      var data_1 = seriesModel.getData();\n      zrUtil.each(getDataDimensionsOnAxis(data_1, 'radius'), function (dim) {\n        radiusAxis.scale.unionExtentFromData(data_1, dim);\n      });\n      zrUtil.each(getDataDimensionsOnAxis(data_1, 'angle'), function (dim) {\n        angleAxis.scale.unionExtentFromData(data_1, dim);\n      });\n    }\n  });\n  niceScaleExtent(angleAxis.scale, angleAxis.model);\n  niceScaleExtent(radiusAxis.scale, radiusAxis.model);\n\n  if (angleAxis.type === 'category' && !angleAxis.onBand) {\n    var extent = angleAxis.getExtent();\n    var diff = 360 / angleAxis.scale.count();\n    angleAxis.inverse ? extent[1] += diff : extent[1] -= diff;\n    angleAxis.setExtent(extent[0], extent[1]);\n  }\n}\n\nfunction isAngleAxisModel(axisModel) {\n  return axisModel.mainType === 'angleAxis';\n}\n\nfunction setAxis(axis, axisModel) {\n  axis.type = axisModel.get('type');\n  axis.scale = createScaleByModel(axisModel);\n  axis.onBand = axisModel.get('boundaryGap') && axis.type === 'category';\n  axis.inverse = axisModel.get('inverse');\n\n  if (isAngleAxisModel(axisModel)) {\n    axis.inverse = axis.inverse !== axisModel.get('clockwise');\n    var startAngle = axisModel.get('startAngle');\n    axis.setExtent(startAngle, startAngle + (axis.inverse ? -360 : 360));\n  }\n\n  axisModel.axis = axis;\n  axis.model = axisModel;\n}\n\nvar polarCreator = {\n  dimensions: Polar.prototype.dimensions,\n  create: function (ecModel, api) {\n    var polarList = [];\n    ecModel.eachComponent('polar', function (polarModel, idx) {\n      var polar = new Polar(idx + '');\n      polar.update = updatePolarScale;\n      var radiusAxis = polar.getRadiusAxis();\n      var angleAxis = polar.getAngleAxis();\n      var radiusAxisModel = polarModel.findAxisModel('radiusAxis');\n      var angleAxisModel = polarModel.findAxisModel('angleAxis');\n      setAxis(radiusAxis, radiusAxisModel);\n      setAxis(angleAxis, angleAxisModel);\n      resizePolar(polar, polarModel, api);\n      polarList.push(polar);\n      polarModel.coordinateSystem = polar;\n      polar.model = polarModel;\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      if (seriesModel.get('coordinateSystem') === 'polar') {\n        var polarModel = seriesModel.getReferringComponents('polar', SINGLE_REFERRING).models[0];\n\n        if (process.env.NODE_ENV !== 'production') {\n          if (!polarModel) {\n            throw new Error('Polar \"' + zrUtil.retrieve(seriesModel.get('polarIndex'), seriesModel.get('polarId'), 0) + '\" not found');\n          }\n        }\n\n        seriesModel.coordinateSystem = polarModel.coordinateSystem;\n      }\n    });\n    return polarList;\n  }\n};\nexport default polarCreator;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { createTextStyle } from '../../label/labelStyle';\nimport Model from '../../model/Model';\nimport AxisView from './AxisView';\nimport AxisBuilder from './AxisBuilder';\nimport { getECData } from '../../util/innerStore';\nvar elementList = ['axisLine', 'axisLabel', 'axisTick', 'minorTick', 'splitLine', 'minorSplitLine', 'splitArea'];\n\nfunction getAxisLineShape(polar, rExtent, angle) {\n  rExtent[1] > rExtent[0] && (rExtent = rExtent.slice().reverse());\n  var start = polar.coordToPoint([rExtent[0], angle]);\n  var end = polar.coordToPoint([rExtent[1], angle]);\n  return {\n    x1: start[0],\n    y1: start[1],\n    x2: end[0],\n    y2: end[1]\n  };\n}\n\nfunction getRadiusIdx(polar) {\n  var radiusAxis = polar.getRadiusAxis();\n  return radiusAxis.inverse ? 0 : 1;\n}\n\nfunction fixAngleOverlap(list) {\n  var firstItem = list[0];\n  var lastItem = list[list.length - 1];\n\n  if (firstItem && lastItem && Math.abs(Math.abs(firstItem.coord - lastItem.coord) - 360) < 1e-4) {\n    list.pop();\n  }\n}\n\nvar AngleAxisView = function (_super) {\n  __extends(AngleAxisView, _super);\n\n  function AngleAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = AngleAxisView.type;\n    _this.axisPointerClass = 'PolarAxisPointer';\n    return _this;\n  }\n\n  AngleAxisView.prototype.render = function (angleAxisModel, ecModel) {\n    this.group.removeAll();\n\n    if (!angleAxisModel.get('show')) {\n      return;\n    }\n\n    var angleAxis = angleAxisModel.axis;\n    var polar = angleAxis.polar;\n    var radiusExtent = polar.getRadiusAxis().getExtent();\n    var ticksAngles = angleAxis.getTicksCoords();\n    var minorTickAngles = angleAxis.getMinorTicksCoords();\n    var labels = zrUtil.map(angleAxis.getViewLabels(), function (labelItem) {\n      labelItem = zrUtil.clone(labelItem);\n      var scale = angleAxis.scale;\n      var tickValue = scale.type === 'ordinal' ? scale.getRawOrdinalNumber(labelItem.tickValue) : labelItem.tickValue;\n      labelItem.coord = angleAxis.dataToCoord(tickValue);\n      return labelItem;\n    });\n    fixAngleOverlap(labels);\n    fixAngleOverlap(ticksAngles);\n    zrUtil.each(elementList, function (name) {\n      if (angleAxisModel.get([name, 'show']) && (!angleAxis.scale.isBlank() || name === 'axisLine')) {\n        angelAxisElementsBuilders[name](this.group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent, labels);\n      }\n    }, this);\n  };\n\n  AngleAxisView.type = 'angleAxis';\n  return AngleAxisView;\n}(AxisView);\n\nvar angelAxisElementsBuilders = {\n  axisLine: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n    var lineStyleModel = angleAxisModel.getModel(['axisLine', 'lineStyle']);\n    var rId = getRadiusIdx(polar);\n    var r0Id = rId ? 0 : 1;\n    var shape;\n\n    if (radiusExtent[r0Id] === 0) {\n      shape = new graphic.Circle({\n        shape: {\n          cx: polar.cx,\n          cy: polar.cy,\n          r: radiusExtent[rId]\n        },\n        style: lineStyleModel.getLineStyle(),\n        z2: 1,\n        silent: true\n      });\n    } else {\n      shape = new graphic.Ring({\n        shape: {\n          cx: polar.cx,\n          cy: polar.cy,\n          r: radiusExtent[rId],\n          r0: radiusExtent[r0Id]\n        },\n        style: lineStyleModel.getLineStyle(),\n        z2: 1,\n        silent: true\n      });\n    }\n\n    shape.style.fill = null;\n    group.add(shape);\n  },\n  axisTick: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n    var tickModel = angleAxisModel.getModel('axisTick');\n    var tickLen = (tickModel.get('inside') ? -1 : 1) * tickModel.get('length');\n    var radius = radiusExtent[getRadiusIdx(polar)];\n    var lines = zrUtil.map(ticksAngles, function (tickAngleItem) {\n      return new graphic.Line({\n        shape: getAxisLineShape(polar, [radius, radius + tickLen], tickAngleItem.coord)\n      });\n    });\n    group.add(graphic.mergePath(lines, {\n      style: zrUtil.defaults(tickModel.getModel('lineStyle').getLineStyle(), {\n        stroke: angleAxisModel.get(['axisLine', 'lineStyle', 'color'])\n      })\n    }));\n  },\n  minorTick: function (group, angleAxisModel, polar, tickAngles, minorTickAngles, radiusExtent) {\n    if (!minorTickAngles.length) {\n      return;\n    }\n\n    var tickModel = angleAxisModel.getModel('axisTick');\n    var minorTickModel = angleAxisModel.getModel('minorTick');\n    var tickLen = (tickModel.get('inside') ? -1 : 1) * minorTickModel.get('length');\n    var radius = radiusExtent[getRadiusIdx(polar)];\n    var lines = [];\n\n    for (var i = 0; i < minorTickAngles.length; i++) {\n      for (var k = 0; k < minorTickAngles[i].length; k++) {\n        lines.push(new graphic.Line({\n          shape: getAxisLineShape(polar, [radius, radius + tickLen], minorTickAngles[i][k].coord)\n        }));\n      }\n    }\n\n    group.add(graphic.mergePath(lines, {\n      style: zrUtil.defaults(minorTickModel.getModel('lineStyle').getLineStyle(), zrUtil.defaults(tickModel.getLineStyle(), {\n        stroke: angleAxisModel.get(['axisLine', 'lineStyle', 'color'])\n      }))\n    }));\n  },\n  axisLabel: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent, labels) {\n    var rawCategoryData = angleAxisModel.getCategories(true);\n    var commonLabelModel = angleAxisModel.getModel('axisLabel');\n    var labelMargin = commonLabelModel.get('margin');\n    var triggerEvent = angleAxisModel.get('triggerEvent');\n    zrUtil.each(labels, function (labelItem, idx) {\n      var labelModel = commonLabelModel;\n      var tickValue = labelItem.tickValue;\n      var r = radiusExtent[getRadiusIdx(polar)];\n      var p = polar.coordToPoint([r + labelMargin, labelItem.coord]);\n      var cx = polar.cx;\n      var cy = polar.cy;\n      var labelTextAlign = Math.abs(p[0] - cx) / r < 0.3 ? 'center' : p[0] > cx ? 'left' : 'right';\n      var labelTextVerticalAlign = Math.abs(p[1] - cy) / r < 0.3 ? 'middle' : p[1] > cy ? 'top' : 'bottom';\n\n      if (rawCategoryData && rawCategoryData[tickValue]) {\n        var rawCategoryItem = rawCategoryData[tickValue];\n\n        if (zrUtil.isObject(rawCategoryItem) && rawCategoryItem.textStyle) {\n          labelModel = new Model(rawCategoryItem.textStyle, commonLabelModel, commonLabelModel.ecModel);\n        }\n      }\n\n      var textEl = new graphic.Text({\n        silent: AxisBuilder.isLabelSilent(angleAxisModel),\n        style: createTextStyle(labelModel, {\n          x: p[0],\n          y: p[1],\n          fill: labelModel.getTextColor() || angleAxisModel.get(['axisLine', 'lineStyle', 'color']),\n          text: labelItem.formattedLabel,\n          align: labelTextAlign,\n          verticalAlign: labelTextVerticalAlign\n        })\n      });\n      group.add(textEl);\n\n      if (triggerEvent) {\n        var eventData = AxisBuilder.makeAxisEventDataBase(angleAxisModel);\n        eventData.targetType = 'axisLabel';\n        eventData.value = labelItem.rawLabel;\n        getECData(textEl).eventData = eventData;\n      }\n    }, this);\n  },\n  splitLine: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n    var splitLineModel = angleAxisModel.getModel('splitLine');\n    var lineStyleModel = splitLineModel.getModel('lineStyle');\n    var lineColors = lineStyleModel.get('color');\n    var lineCount = 0;\n    lineColors = lineColors instanceof Array ? lineColors : [lineColors];\n    var splitLines = [];\n\n    for (var i = 0; i < ticksAngles.length; i++) {\n      var colorIndex = lineCount++ % lineColors.length;\n      splitLines[colorIndex] = splitLines[colorIndex] || [];\n      splitLines[colorIndex].push(new graphic.Line({\n        shape: getAxisLineShape(polar, radiusExtent, ticksAngles[i].coord)\n      }));\n    }\n\n    for (var i = 0; i < splitLines.length; i++) {\n      group.add(graphic.mergePath(splitLines[i], {\n        style: zrUtil.defaults({\n          stroke: lineColors[i % lineColors.length]\n        }, lineStyleModel.getLineStyle()),\n        silent: true,\n        z: angleAxisModel.get('z')\n      }));\n    }\n  },\n  minorSplitLine: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n    if (!minorTickAngles.length) {\n      return;\n    }\n\n    var minorSplitLineModel = angleAxisModel.getModel('minorSplitLine');\n    var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\n    var lines = [];\n\n    for (var i = 0; i < minorTickAngles.length; i++) {\n      for (var k = 0; k < minorTickAngles[i].length; k++) {\n        lines.push(new graphic.Line({\n          shape: getAxisLineShape(polar, radiusExtent, minorTickAngles[i][k].coord)\n        }));\n      }\n    }\n\n    group.add(graphic.mergePath(lines, {\n      style: lineStyleModel.getLineStyle(),\n      silent: true,\n      z: angleAxisModel.get('z')\n    }));\n  },\n  splitArea: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n    if (!ticksAngles.length) {\n      return;\n    }\n\n    var splitAreaModel = angleAxisModel.getModel('splitArea');\n    var areaStyleModel = splitAreaModel.getModel('areaStyle');\n    var areaColors = areaStyleModel.get('color');\n    var lineCount = 0;\n    areaColors = areaColors instanceof Array ? areaColors : [areaColors];\n    var splitAreas = [];\n    var RADIAN = Math.PI / 180;\n    var prevAngle = -ticksAngles[0].coord * RADIAN;\n    var r0 = Math.min(radiusExtent[0], radiusExtent[1]);\n    var r1 = Math.max(radiusExtent[0], radiusExtent[1]);\n    var clockwise = angleAxisModel.get('clockwise');\n\n    for (var i = 1, len = ticksAngles.length; i <= len; i++) {\n      var coord = i === len ? ticksAngles[0].coord : ticksAngles[i].coord;\n      var colorIndex = lineCount++ % areaColors.length;\n      splitAreas[colorIndex] = splitAreas[colorIndex] || [];\n      splitAreas[colorIndex].push(new graphic.Sector({\n        shape: {\n          cx: polar.cx,\n          cy: polar.cy,\n          r0: r0,\n          r: r1,\n          startAngle: prevAngle,\n          endAngle: -coord * RADIAN,\n          clockwise: clockwise\n        },\n        silent: true\n      }));\n      prevAngle = -coord * RADIAN;\n    }\n\n    for (var i = 0; i < splitAreas.length; i++) {\n      group.add(graphic.mergePath(splitAreas[i], {\n        style: zrUtil.defaults({\n          fill: areaColors[i % areaColors.length]\n        }, areaStyleModel.getAreaStyle()),\n        silent: true\n      }));\n    }\n  }\n};\nexport default AngleAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport AxisBuilder from './AxisBuilder';\nimport AxisView from './AxisView';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitLine', 'splitArea', 'minorSplitLine'];\n\nvar RadiusAxisView = function (_super) {\n  __extends(RadiusAxisView, _super);\n\n  function RadiusAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = RadiusAxisView.type;\n    _this.axisPointerClass = 'PolarAxisPointer';\n    return _this;\n  }\n\n  RadiusAxisView.prototype.render = function (radiusAxisModel, ecModel) {\n    this.group.removeAll();\n\n    if (!radiusAxisModel.get('show')) {\n      return;\n    }\n\n    var oldAxisGroup = this._axisGroup;\n    var newAxisGroup = this._axisGroup = new graphic.Group();\n    this.group.add(newAxisGroup);\n    var radiusAxis = radiusAxisModel.axis;\n    var polar = radiusAxis.polar;\n    var angleAxis = polar.getAngleAxis();\n    var ticksCoords = radiusAxis.getTicksCoords();\n    var minorTicksCoords = radiusAxis.getMinorTicksCoords();\n    var axisAngle = angleAxis.getExtent()[0];\n    var radiusExtent = radiusAxis.getExtent();\n    var layout = layoutAxis(polar, radiusAxisModel, axisAngle);\n    var axisBuilder = new AxisBuilder(radiusAxisModel, layout);\n    zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n    newAxisGroup.add(axisBuilder.getGroup());\n    graphic.groupTransition(oldAxisGroup, newAxisGroup, radiusAxisModel);\n    zrUtil.each(selfBuilderAttrs, function (name) {\n      if (radiusAxisModel.get([name, 'show']) && !radiusAxis.scale.isBlank()) {\n        axisElementBuilders[name](this.group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords, minorTicksCoords);\n      }\n    }, this);\n  };\n\n  RadiusAxisView.type = 'radiusAxis';\n  return RadiusAxisView;\n}(AxisView);\n\nvar axisElementBuilders = {\n  splitLine: function (group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords) {\n    var splitLineModel = radiusAxisModel.getModel('splitLine');\n    var lineStyleModel = splitLineModel.getModel('lineStyle');\n    var lineColors = lineStyleModel.get('color');\n    var lineCount = 0;\n    lineColors = lineColors instanceof Array ? lineColors : [lineColors];\n    var splitLines = [];\n\n    for (var i = 0; i < ticksCoords.length; i++) {\n      var colorIndex = lineCount++ % lineColors.length;\n      splitLines[colorIndex] = splitLines[colorIndex] || [];\n      splitLines[colorIndex].push(new graphic.Circle({\n        shape: {\n          cx: polar.cx,\n          cy: polar.cy,\n          r: ticksCoords[i].coord\n        }\n      }));\n    }\n\n    for (var i = 0; i < splitLines.length; i++) {\n      group.add(graphic.mergePath(splitLines[i], {\n        style: zrUtil.defaults({\n          stroke: lineColors[i % lineColors.length],\n          fill: null\n        }, lineStyleModel.getLineStyle()),\n        silent: true\n      }));\n    }\n  },\n  minorSplitLine: function (group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords, minorTicksCoords) {\n    if (!minorTicksCoords.length) {\n      return;\n    }\n\n    var minorSplitLineModel = radiusAxisModel.getModel('minorSplitLine');\n    var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\n    var lines = [];\n\n    for (var i = 0; i < minorTicksCoords.length; i++) {\n      for (var k = 0; k < minorTicksCoords[i].length; k++) {\n        lines.push(new graphic.Circle({\n          shape: {\n            cx: polar.cx,\n            cy: polar.cy,\n            r: minorTicksCoords[i][k].coord\n          }\n        }));\n      }\n    }\n\n    group.add(graphic.mergePath(lines, {\n      style: zrUtil.defaults({\n        fill: null\n      }, lineStyleModel.getLineStyle()),\n      silent: true\n    }));\n  },\n  splitArea: function (group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords) {\n    if (!ticksCoords.length) {\n      return;\n    }\n\n    var splitAreaModel = radiusAxisModel.getModel('splitArea');\n    var areaStyleModel = splitAreaModel.getModel('areaStyle');\n    var areaColors = areaStyleModel.get('color');\n    var lineCount = 0;\n    areaColors = areaColors instanceof Array ? areaColors : [areaColors];\n    var splitAreas = [];\n    var prevRadius = ticksCoords[0].coord;\n\n    for (var i = 1; i < ticksCoords.length; i++) {\n      var colorIndex = lineCount++ % areaColors.length;\n      splitAreas[colorIndex] = splitAreas[colorIndex] || [];\n      splitAreas[colorIndex].push(new graphic.Sector({\n        shape: {\n          cx: polar.cx,\n          cy: polar.cy,\n          r0: prevRadius,\n          r: ticksCoords[i].coord,\n          startAngle: 0,\n          endAngle: Math.PI * 2\n        },\n        silent: true\n      }));\n      prevRadius = ticksCoords[i].coord;\n    }\n\n    for (var i = 0; i < splitAreas.length; i++) {\n      group.add(graphic.mergePath(splitAreas[i], {\n        style: zrUtil.defaults({\n          fill: areaColors[i % areaColors.length]\n        }, areaStyleModel.getAreaStyle()),\n        silent: true\n      }));\n    }\n  }\n};\n\nfunction layoutAxis(polar, radiusAxisModel, axisAngle) {\n  return {\n    position: [polar.cx, polar.cy],\n    rotation: axisAngle / 180 * Math.PI,\n    labelDirection: -1,\n    tickDirection: -1,\n    nameDirection: 1,\n    labelRotate: radiusAxisModel.getModel('axisLabel').get('rotate'),\n    z2: 1\n  };\n}\n\nexport default RadiusAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parsePercent } from '../util/number';\nimport { isDimensionStacked } from '../data/helper/dataStackHelper';\n\nfunction getSeriesStackId(seriesModel) {\n  return seriesModel.get('stack') || '__ec_stack_' + seriesModel.seriesIndex;\n}\n\nfunction getAxisKey(polar, axis) {\n  return axis.dim + polar.model.componentIndex;\n}\n\nfunction barLayoutPolar(seriesType, ecModel, api) {\n  var lastStackCoords = {};\n  var barWidthAndOffset = calRadialBar(zrUtil.filter(ecModel.getSeriesByType(seriesType), function (seriesModel) {\n    return !ecModel.isSeriesFiltered(seriesModel) && seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'polar';\n  }));\n  ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n    if (seriesModel.coordinateSystem.type !== 'polar') {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var polar = seriesModel.coordinateSystem;\n    var baseAxis = polar.getBaseAxis();\n    var axisKey = getAxisKey(polar, baseAxis);\n    var stackId = getSeriesStackId(seriesModel);\n    var columnLayoutInfo = barWidthAndOffset[axisKey][stackId];\n    var columnOffset = columnLayoutInfo.offset;\n    var columnWidth = columnLayoutInfo.width;\n    var valueAxis = polar.getOtherAxis(baseAxis);\n    var cx = seriesModel.coordinateSystem.cx;\n    var cy = seriesModel.coordinateSystem.cy;\n    var barMinHeight = seriesModel.get('barMinHeight') || 0;\n    var barMinAngle = seriesModel.get('barMinAngle') || 0;\n    lastStackCoords[stackId] = lastStackCoords[stackId] || [];\n    var valueDim = data.mapDimension(valueAxis.dim);\n    var baseDim = data.mapDimension(baseAxis.dim);\n    var stacked = isDimensionStacked(data, valueDim);\n    var clampLayout = baseAxis.dim !== 'radius' || !seriesModel.get('roundCap', true);\n    var valueAxisStart = valueAxis.dataToCoord(0);\n\n    for (var idx = 0, len = data.count(); idx < len; idx++) {\n      var value = data.get(valueDim, idx);\n      var baseValue = data.get(baseDim, idx);\n      var sign = value >= 0 ? 'p' : 'n';\n      var baseCoord = valueAxisStart;\n\n      if (stacked) {\n        if (!lastStackCoords[stackId][baseValue]) {\n          lastStackCoords[stackId][baseValue] = {\n            p: valueAxisStart,\n            n: valueAxisStart\n          };\n        }\n\n        baseCoord = lastStackCoords[stackId][baseValue][sign];\n      }\n\n      var r0 = void 0;\n      var r = void 0;\n      var startAngle = void 0;\n      var endAngle = void 0;\n\n      if (valueAxis.dim === 'radius') {\n        var radiusSpan = valueAxis.dataToCoord(value) - valueAxisStart;\n        var angle = baseAxis.dataToCoord(baseValue);\n\n        if (Math.abs(radiusSpan) < barMinHeight) {\n          radiusSpan = (radiusSpan < 0 ? -1 : 1) * barMinHeight;\n        }\n\n        r0 = baseCoord;\n        r = baseCoord + radiusSpan;\n        startAngle = angle - columnOffset;\n        endAngle = startAngle - columnWidth;\n        stacked && (lastStackCoords[stackId][baseValue][sign] = r);\n      } else {\n        var angleSpan = valueAxis.dataToCoord(value, clampLayout) - valueAxisStart;\n        var radius = baseAxis.dataToCoord(baseValue);\n\n        if (Math.abs(angleSpan) < barMinAngle) {\n          angleSpan = (angleSpan < 0 ? -1 : 1) * barMinAngle;\n        }\n\n        r0 = radius + columnOffset;\n        r = r0 + columnWidth;\n        startAngle = baseCoord;\n        endAngle = baseCoord + angleSpan;\n        stacked && (lastStackCoords[stackId][baseValue][sign] = endAngle);\n      }\n\n      data.setItemLayout(idx, {\n        cx: cx,\n        cy: cy,\n        r0: r0,\n        r: r,\n        startAngle: -startAngle * Math.PI / 180,\n        endAngle: -endAngle * Math.PI / 180\n      });\n    }\n  });\n}\n\nfunction calRadialBar(barSeries) {\n  var columnsMap = {};\n  zrUtil.each(barSeries, function (seriesModel, idx) {\n    var data = seriesModel.getData();\n    var polar = seriesModel.coordinateSystem;\n    var baseAxis = polar.getBaseAxis();\n    var axisKey = getAxisKey(polar, baseAxis);\n    var axisExtent = baseAxis.getExtent();\n    var bandWidth = baseAxis.type === 'category' ? baseAxis.getBandWidth() : Math.abs(axisExtent[1] - axisExtent[0]) / data.count();\n    var columnsOnAxis = columnsMap[axisKey] || {\n      bandWidth: bandWidth,\n      remainedWidth: bandWidth,\n      autoWidthCount: 0,\n      categoryGap: '20%',\n      gap: '30%',\n      stacks: {}\n    };\n    var stacks = columnsOnAxis.stacks;\n    columnsMap[axisKey] = columnsOnAxis;\n    var stackId = getSeriesStackId(seriesModel);\n\n    if (!stacks[stackId]) {\n      columnsOnAxis.autoWidthCount++;\n    }\n\n    stacks[stackId] = stacks[stackId] || {\n      width: 0,\n      maxWidth: 0\n    };\n    var barWidth = parsePercent(seriesModel.get('barWidth'), bandWidth);\n    var barMaxWidth = parsePercent(seriesModel.get('barMaxWidth'), bandWidth);\n    var barGap = seriesModel.get('barGap');\n    var barCategoryGap = seriesModel.get('barCategoryGap');\n\n    if (barWidth && !stacks[stackId].width) {\n      barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\n      stacks[stackId].width = barWidth;\n      columnsOnAxis.remainedWidth -= barWidth;\n    }\n\n    barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\n    barGap != null && (columnsOnAxis.gap = barGap);\n    barCategoryGap != null && (columnsOnAxis.categoryGap = barCategoryGap);\n  });\n  var result = {};\n  zrUtil.each(columnsMap, function (columnsOnAxis, coordSysName) {\n    result[coordSysName] = {};\n    var stacks = columnsOnAxis.stacks;\n    var bandWidth = columnsOnAxis.bandWidth;\n    var categoryGap = parsePercent(columnsOnAxis.categoryGap, bandWidth);\n    var barGapPercent = parsePercent(columnsOnAxis.gap, 1);\n    var remainedWidth = columnsOnAxis.remainedWidth;\n    var autoWidthCount = columnsOnAxis.autoWidthCount;\n    var autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n    autoWidth = Math.max(autoWidth, 0);\n    zrUtil.each(stacks, function (column, stack) {\n      var maxWidth = column.maxWidth;\n\n      if (maxWidth && maxWidth < autoWidth) {\n        maxWidth = Math.min(maxWidth, remainedWidth);\n\n        if (column.width) {\n          maxWidth = Math.min(maxWidth, column.width);\n        }\n\n        remainedWidth -= maxWidth;\n        column.width = maxWidth;\n        autoWidthCount--;\n      }\n    });\n    autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n    autoWidth = Math.max(autoWidth, 0);\n    var widthSum = 0;\n    var lastColumn;\n    zrUtil.each(stacks, function (column, idx) {\n      if (!column.width) {\n        column.width = autoWidth;\n      }\n\n      lastColumn = column;\n      widthSum += column.width * (1 + barGapPercent);\n    });\n\n    if (lastColumn) {\n      widthSum -= lastColumn.width * barGapPercent;\n    }\n\n    var offset = -widthSum / 2;\n    zrUtil.each(stacks, function (column, stackId) {\n      result[coordSysName][stackId] = result[coordSysName][stackId] || {\n        offset: offset,\n        width: column.width\n      };\n      offset += column.width * (1 + barGapPercent);\n    });\n  });\n  return result;\n}\n\nexport default barLayoutPolar;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { use } from '../../extension';\nimport AxisView from '../axis/AxisView';\nimport PolarAxisPointer from '../axisPointer/PolarAxisPointer';\nimport { install as installAxisPointer } from '../axisPointer/install';\nimport PolarModel from '../../coord/polar/PolarModel';\nimport axisModelCreator from '../../coord/axisModelCreator';\nimport { AngleAxisModel, RadiusAxisModel } from '../../coord/polar/AxisModel';\nimport polarCreator from '../../coord/polar/polarCreator';\nimport AngleAxisView from '../axis/AngleAxisView';\nimport RadiusAxisView from '../axis/RadiusAxisView';\nimport ComponentView from '../../view/Component';\nimport { curry } from 'zrender/lib/core/util';\nimport barLayoutPolar from '../../layout/barPolar';\nvar angleAxisExtraOption = {\n  startAngle: 90,\n  clockwise: true,\n  splitNumber: 12,\n  axisLabel: {\n    rotate: 0\n  }\n};\nvar radiusAxisExtraOption = {\n  splitNumber: 5\n};\n\nvar PolarView = function (_super) {\n  __extends(PolarView, _super);\n\n  function PolarView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = PolarView.type;\n    return _this;\n  }\n\n  PolarView.type = 'polar';\n  return PolarView;\n}(ComponentView);\n\nexport function install(registers) {\n  use(installAxisPointer);\n  AxisView.registerAxisPointerClass('PolarAxisPointer', PolarAxisPointer);\n  registers.registerCoordinateSystem('polar', polarCreator);\n  registers.registerComponentModel(PolarModel);\n  registers.registerComponentView(PolarView);\n  axisModelCreator(registers, 'angle', AngleAxisModel, angleAxisExtraOption);\n  axisModelCreator(registers, 'radius', RadiusAxisModel, radiusAxisExtraOption);\n  registers.registerComponentView(AngleAxisView);\n  registers.registerComponentView(RadiusAxisView);\n  registers.registerLayout(curry(barLayoutPolar, 'bar'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport View from '../View';\nimport geoSourceManager from './geoSourceManager';\nimport { SINGLE_REFERRING } from '../../util/model';\n\nvar Geo = function (_super) {\n  __extends(Geo, _super);\n\n  function Geo(name, map, nameMap, invertLongitute) {\n    var _this = _super.call(this, name) || this;\n\n    _this.dimensions = ['lng', 'lat'];\n    _this.type = 'geo';\n    _this.map = map;\n    var source = geoSourceManager.load(map, nameMap);\n    _this._nameCoordMap = source.nameCoordMap;\n    _this._regionsMap = source.regionsMap;\n    _this._invertLongitute = invertLongitute == null ? true : invertLongitute;\n    _this.regions = source.regions;\n    _this._rect = source.boundingRect;\n    return _this;\n  }\n\n  Geo.prototype.containCoord = function (coord) {\n    var regions = this.regions;\n\n    for (var i = 0; i < regions.length; i++) {\n      if (regions[i].contain(coord)) {\n        return true;\n      }\n    }\n\n    return false;\n  };\n\n  Geo.prototype.transformTo = function (x, y, width, height) {\n    var rect = this.getBoundingRect();\n    var invertLongitute = this._invertLongitute;\n    rect = rect.clone();\n\n    if (invertLongitute) {\n      rect.y = -rect.y - rect.height;\n    }\n\n    var rawTransformable = this._rawTransformable;\n    rawTransformable.transform = rect.calculateTransform(new BoundingRect(x, y, width, height));\n    rawTransformable.decomposeTransform();\n\n    if (invertLongitute) {\n      rawTransformable.scaleY = -rawTransformable.scaleY;\n    }\n\n    rawTransformable.updateTransform();\n\n    this._updateTransform();\n  };\n\n  Geo.prototype.getRegion = function (name) {\n    return this._regionsMap.get(name);\n  };\n\n  Geo.prototype.getRegionByCoord = function (coord) {\n    var regions = this.regions;\n\n    for (var i = 0; i < regions.length; i++) {\n      if (regions[i].contain(coord)) {\n        return regions[i];\n      }\n    }\n  };\n\n  Geo.prototype.addGeoCoord = function (name, geoCoord) {\n    this._nameCoordMap.set(name, geoCoord);\n  };\n\n  Geo.prototype.getGeoCoord = function (name) {\n    return this._nameCoordMap.get(name);\n  };\n\n  Geo.prototype.getBoundingRect = function () {\n    return this._rect;\n  };\n\n  Geo.prototype.dataToPoint = function (data, noRoam, out) {\n    if (typeof data === 'string') {\n      data = this.getGeoCoord(data);\n    }\n\n    if (data) {\n      return View.prototype.dataToPoint.call(this, data, noRoam, out);\n    }\n  };\n\n  Geo.prototype.convertToPixel = function (ecModel, finder, value) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? coordSys.dataToPoint(value) : null;\n  };\n\n  Geo.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? coordSys.pointToData(pixel) : null;\n  };\n\n  return Geo;\n}(View);\n\n;\nzrUtil.mixin(Geo, View);\n\nfunction getCoordSys(finder) {\n  var geoModel = finder.geoModel;\n  var seriesModel = finder.seriesModel;\n  return geoModel ? geoModel.coordinateSystem : seriesModel ? seriesModel.coordinateSystem || (seriesModel.getReferringComponents('geo', SINGLE_REFERRING).models[0] || {}).coordinateSystem : null;\n}\n\nexport default Geo;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Geo from './Geo';\nimport * as layout from '../../util/layout';\nimport * as numberUtil from '../../util/number';\nimport geoSourceManager from './geoSourceManager';\nimport mapDataStorage from './mapDataStorage';\n\nfunction resizeGeo(geoModel, api) {\n  var boundingCoords = geoModel.get('boundingCoords');\n\n  if (boundingCoords != null) {\n    var leftTop = boundingCoords[0];\n    var rightBottom = boundingCoords[1];\n\n    if (isNaN(leftTop[0]) || isNaN(leftTop[1]) || isNaN(rightBottom[0]) || isNaN(rightBottom[1])) {\n      if (process.env.NODE_ENV !== 'production') {\n        console.error('Invalid boundingCoords');\n      }\n    } else {\n      this.setBoundingRect(leftTop[0], leftTop[1], rightBottom[0] - leftTop[0], rightBottom[1] - leftTop[1]);\n    }\n  }\n\n  var rect = this.getBoundingRect();\n  var centerOption = geoModel.get('layoutCenter');\n  var sizeOption = geoModel.get('layoutSize');\n  var viewWidth = api.getWidth();\n  var viewHeight = api.getHeight();\n  var aspect = rect.width / rect.height * this.aspectScale;\n  var useCenterAndSize = false;\n  var center;\n  var size;\n\n  if (centerOption && sizeOption) {\n    center = [numberUtil.parsePercent(centerOption[0], viewWidth), numberUtil.parsePercent(centerOption[1], viewHeight)];\n    size = numberUtil.parsePercent(sizeOption, Math.min(viewWidth, viewHeight));\n\n    if (!isNaN(center[0]) && !isNaN(center[1]) && !isNaN(size)) {\n      useCenterAndSize = true;\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn('Given layoutCenter or layoutSize data are invalid. Use left/top/width/height instead.');\n      }\n    }\n  }\n\n  var viewRect;\n\n  if (useCenterAndSize) {\n    viewRect = {};\n\n    if (aspect > 1) {\n      viewRect.width = size;\n      viewRect.height = size / aspect;\n    } else {\n      viewRect.height = size;\n      viewRect.width = size * aspect;\n    }\n\n    viewRect.y = center[1] - viewRect.height / 2;\n    viewRect.x = center[0] - viewRect.width / 2;\n  } else {\n    var boxLayoutOption = geoModel.getBoxLayoutParams();\n    boxLayoutOption.aspect = aspect;\n    viewRect = layout.getLayoutRect(boxLayoutOption, {\n      width: viewWidth,\n      height: viewHeight\n    });\n  }\n\n  this.setViewRect(viewRect.x, viewRect.y, viewRect.width, viewRect.height);\n  this.setCenter(geoModel.get('center'));\n  this.setZoom(geoModel.get('zoom'));\n}\n\nfunction setGeoCoords(geo, model) {\n  zrUtil.each(model.get('geoCoord'), function (geoCoord, name) {\n    geo.addGeoCoord(name, geoCoord);\n  });\n}\n\nvar GeoCreator = function () {\n  function GeoCreator() {\n    this.dimensions = Geo.prototype.dimensions;\n  }\n\n  GeoCreator.prototype.create = function (ecModel, api) {\n    var geoList = [];\n    ecModel.eachComponent('geo', function (geoModel, idx) {\n      var name = geoModel.get('map');\n      var aspectScale = geoModel.get('aspectScale');\n      var invertLongitute = true;\n      var mapRecords = mapDataStorage.retrieveMap(name);\n\n      if (mapRecords && mapRecords[0] && mapRecords[0].type === 'svg') {\n        aspectScale == null && (aspectScale = 1);\n        invertLongitute = false;\n      } else {\n        aspectScale == null && (aspectScale = 0.75);\n      }\n\n      var geo = new Geo(name + idx, name, geoModel.get('nameMap'), invertLongitute);\n      geo.aspectScale = aspectScale;\n      geo.zoomLimit = geoModel.get('scaleLimit');\n      geoList.push(geo);\n      geoModel.coordinateSystem = geo;\n      geo.model = geoModel;\n      geo.resize = resizeGeo;\n      geo.resize(geoModel, api);\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      var coordSys = seriesModel.get('coordinateSystem');\n\n      if (coordSys === 'geo') {\n        var geoIndex = seriesModel.get('geoIndex') || 0;\n        seriesModel.coordinateSystem = geoList[geoIndex];\n      }\n    });\n    var mapModelGroupBySeries = {};\n    ecModel.eachSeriesByType('map', function (seriesModel) {\n      if (!seriesModel.getHostGeoModel()) {\n        var mapType = seriesModel.getMapType();\n        mapModelGroupBySeries[mapType] = mapModelGroupBySeries[mapType] || [];\n        mapModelGroupBySeries[mapType].push(seriesModel);\n      }\n    });\n    zrUtil.each(mapModelGroupBySeries, function (mapSeries, mapType) {\n      var nameMapList = zrUtil.map(mapSeries, function (singleMapSeries) {\n        return singleMapSeries.get('nameMap');\n      });\n      var geo = new Geo(mapType, mapType, zrUtil.mergeAll(nameMapList));\n      geo.zoomLimit = zrUtil.retrieve.apply(null, zrUtil.map(mapSeries, function (singleMapSeries) {\n        return singleMapSeries.get('scaleLimit');\n      }));\n      geoList.push(geo);\n      geo.resize = resizeGeo;\n      geo.aspectScale = mapSeries[0].get('aspectScale');\n      geo.resize(mapSeries[0], api);\n      zrUtil.each(mapSeries, function (singleMapSeries) {\n        singleMapSeries.coordinateSystem = geo;\n        setGeoCoords(geo, singleMapSeries);\n      });\n    });\n    return geoList;\n  };\n\n  GeoCreator.prototype.getFilledRegions = function (originRegionArr, mapName, nameMap) {\n    var regionsArr = (originRegionArr || []).slice();\n    var dataNameMap = zrUtil.createHashMap();\n\n    for (var i = 0; i < regionsArr.length; i++) {\n      dataNameMap.set(regionsArr[i].name, regionsArr[i]);\n    }\n\n    var source = geoSourceManager.load(mapName, nameMap);\n    zrUtil.each(source.regions, function (region) {\n      var name = region.name;\n      !dataNameMap.get(name) && regionsArr.push({\n        name: name\n      });\n    });\n    return regionsArr;\n  };\n\n  return GeoCreator;\n}();\n\nvar geoCreator = new GeoCreator();\nexport default geoCreator;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nimport ComponentModel from '../../model/Component';\nimport Model from '../../model/Model';\nimport geoCreator from './geoCreator';\n;\n;\n\nvar GeoModel = function (_super) {\n  __extends(GeoModel, _super);\n\n  function GeoModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GeoModel.type;\n    return _this;\n  }\n\n  GeoModel.prototype.init = function (option, parentModel, ecModel) {\n    _super.prototype.init.call(this, option, parentModel, ecModel);\n\n    modelUtil.defaultEmphasis(option, 'label', ['show']);\n  };\n\n  GeoModel.prototype.optionUpdated = function () {\n    var option = this.option;\n    var self = this;\n    option.regions = geoCreator.getFilledRegions(option.regions, option.map, option.nameMap);\n    var selectedMap = {};\n    this._optionModelMap = zrUtil.reduce(option.regions || [], function (optionModelMap, regionOpt) {\n      var regionName = regionOpt.name;\n\n      if (regionName) {\n        optionModelMap.set(regionName, new Model(regionOpt, self));\n\n        if (regionOpt.selected) {\n          selectedMap[regionName] = true;\n        }\n      }\n\n      return optionModelMap;\n    }, zrUtil.createHashMap());\n\n    if (!option.selectedMap) {\n      option.selectedMap = selectedMap;\n    }\n  };\n\n  GeoModel.prototype.getRegionModel = function (name) {\n    return this._optionModelMap.get(name) || new Model(null, this, this.ecModel);\n  };\n\n  GeoModel.prototype.getFormattedLabel = function (name, status) {\n    var regionModel = this.getRegionModel(name);\n    var formatter = status === 'normal' ? regionModel.get(['label', 'formatter']) : regionModel.get(['emphasis', 'label', 'formatter']);\n    var params = {\n      name: name\n    };\n\n    if (typeof formatter === 'function') {\n      params.status = status;\n      return formatter(params);\n    } else if (typeof formatter === 'string') {\n      return formatter.replace('{a}', name != null ? name : '');\n    }\n  };\n\n  GeoModel.prototype.setZoom = function (zoom) {\n    this.option.zoom = zoom;\n  };\n\n  GeoModel.prototype.setCenter = function (center) {\n    this.option.center = center;\n  };\n\n  GeoModel.prototype.select = function (name) {\n    var option = this.option;\n    var selectedMode = option.selectedMode;\n\n    if (!selectedMode) {\n      return;\n    }\n\n    if (selectedMode !== 'multiple') {\n      option.selectedMap = null;\n    }\n\n    var selectedMap = option.selectedMap || (option.selectedMap = {});\n    selectedMap[name] = true;\n  };\n\n  GeoModel.prototype.unSelect = function (name) {\n    var selectedMap = this.option.selectedMap;\n\n    if (selectedMap) {\n      selectedMap[name] = false;\n    }\n  };\n\n  GeoModel.prototype.toggleSelected = function (name) {\n    this[this.isSelected(name) ? 'unSelect' : 'select'](name);\n  };\n\n  GeoModel.prototype.isSelected = function (name) {\n    var selectedMap = this.option.selectedMap;\n    return !!(selectedMap && selectedMap[name]);\n  };\n\n  GeoModel.prototype._initSelectedMapFromData = function () {};\n\n  GeoModel.type = 'geo';\n  GeoModel.layoutMode = 'box';\n  GeoModel.defaultOption = {\n    zlevel: 0,\n    z: 0,\n    show: true,\n    left: 'center',\n    top: 'center',\n    aspectScale: null,\n    silent: false,\n    map: '',\n    boundingCoords: null,\n    center: null,\n    zoom: 1,\n    scaleLimit: null,\n    label: {\n      show: false,\n      color: '#000'\n    },\n    itemStyle: {\n      borderWidth: 0.5,\n      borderColor: '#444',\n      color: '#eee'\n    },\n    emphasis: {\n      label: {\n        show: true,\n        color: 'rgb(100,0,0)'\n      },\n      itemStyle: {\n        color: 'rgba(255,215,0,0.8)'\n      }\n    },\n    select: {\n      label: {\n        show: true,\n        color: 'rgb(100,0,0)'\n      },\n      itemStyle: {\n        color: 'rgba(255,215,0,0.8)'\n      }\n    },\n    regions: []\n  };\n  return GeoModel;\n}(ComponentModel);\n\nexport default GeoModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport MapDraw from '../helper/MapDraw';\nimport ComponentView from '../../view/Component';\nimport { getECData } from '../../util/innerStore';\n\nvar GeoView = function (_super) {\n  __extends(GeoView, _super);\n\n  function GeoView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GeoView.type;\n    return _this;\n  }\n\n  GeoView.prototype.init = function (ecModel, api) {\n    var mapDraw = new MapDraw(api);\n    this._mapDraw = mapDraw;\n    this.group.add(mapDraw.group);\n    this._api = api;\n  };\n\n  GeoView.prototype.render = function (geoModel, ecModel, api, payload) {\n    var mapDraw = this._mapDraw;\n\n    if (geoModel.get('show')) {\n      mapDraw.draw(geoModel, ecModel, api, this, payload);\n    } else {\n      this._mapDraw.group.removeAll();\n    }\n\n    mapDraw.group.on('click', this._handleRegionClick, this);\n    mapDraw.group.silent = geoModel.get('silent');\n    this._model = geoModel;\n    this.updateSelectStatus(geoModel, ecModel, api);\n  };\n\n  GeoView.prototype._handleRegionClick = function (e) {\n    var current = e.target;\n    var eventData;\n\n    while (current && (eventData = getECData(current).eventData) == null) {\n      current = current.__hostTarget || current.parent;\n    }\n\n    if (eventData) {\n      this._api.dispatchAction({\n        type: 'geoToggleSelect',\n        geoId: this._model.id,\n        name: eventData.name\n      });\n    }\n  };\n\n  GeoView.prototype.updateSelectStatus = function (model, ecModel, api) {\n    var _this = this;\n\n    this._mapDraw.group.traverse(function (node) {\n      var eventData = getECData(node).eventData;\n\n      if (eventData) {\n        _this._model.isSelected(eventData.name) ? api.enterSelect(node) : api.leaveSelect(node);\n        return true;\n      }\n    });\n  };\n\n  GeoView.prototype.dispose = function () {\n    this._mapDraw && this._mapDraw.remove();\n  };\n\n  GeoView.type = 'geo';\n  return GeoView;\n}(ComponentView);\n\nexport default GeoView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport GeoModel from '../../coord/geo/GeoModel';\nimport geoCreator from '../../coord/geo/geoCreator';\nimport { each } from 'zrender/lib/core/util';\nimport { updateCenterAndZoom } from '../../action/roamHelper';\nimport GeoView from './GeoView';\nexport function install(registers) {\n  registers.registerCoordinateSystem('geo', geoCreator);\n  registers.registerComponentModel(GeoModel);\n  registers.registerComponentView(GeoView);\n\n  function makeAction(method, actionInfo) {\n    actionInfo.update = 'geo:updateSelectStatus';\n    registers.registerAction(actionInfo, function (payload, ecModel) {\n      var selected = {};\n      ecModel.eachComponent({\n        mainType: 'geo',\n        query: payload\n      }, function (geoModel) {\n        geoModel[method](payload.name);\n        var geo = geoModel.coordinateSystem;\n        each(geo.regions, function (region) {\n          selected[region.name] = geoModel.isSelected(region.name) || false;\n        });\n      });\n      return {\n        selected: selected,\n        name: payload.name\n      };\n    });\n  }\n\n  makeAction('toggleSelected', {\n    type: 'geoToggleSelect',\n    event: 'geoselectchanged'\n  });\n  makeAction('select', {\n    type: 'geoSelect',\n    event: 'geoselected'\n  });\n  makeAction('unSelect', {\n    type: 'geoUnSelect',\n    event: 'geounselected'\n  });\n  registers.registerAction({\n    type: 'geoRoam',\n    event: 'geoRoam',\n    update: 'updateTransform'\n  }, function (payload, ecModel) {\n    var componentType = payload.componentType || 'series';\n    ecModel.eachComponent({\n      mainType: componentType,\n      query: payload\n    }, function (componentModel) {\n      var geo = componentModel.coordinateSystem;\n\n      if (geo.type !== 'geo') {\n        return;\n      }\n\n      var res = updateCenterAndZoom(geo, payload, componentModel.get('scaleLimit'));\n      componentModel.setCenter && componentModel.setCenter(res.center);\n      componentModel.setZoom && componentModel.setZoom(res.zoom);\n\n      if (componentType === 'series') {\n        each(componentModel.seriesGroup, function (seriesModel) {\n          seriesModel.setCenter(res.center);\n          seriesModel.setZoom(res.zoom);\n        });\n      }\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport function layout(axisModel, opt) {\n  opt = opt || {};\n  var single = axisModel.coordinateSystem;\n  var axis = axisModel.axis;\n  var layout = {};\n  var axisPosition = axis.position;\n  var orient = axis.orient;\n  var rect = single.getRect();\n  var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height];\n  var positionMap = {\n    horizontal: {\n      top: rectBound[2],\n      bottom: rectBound[3]\n    },\n    vertical: {\n      left: rectBound[0],\n      right: rectBound[1]\n    }\n  };\n  layout.position = [orient === 'vertical' ? positionMap.vertical[axisPosition] : rectBound[0], orient === 'horizontal' ? positionMap.horizontal[axisPosition] : rectBound[3]];\n  var r = {\n    horizontal: 0,\n    vertical: 1\n  };\n  layout.rotation = Math.PI / 2 * r[orient];\n  var directionMap = {\n    top: -1,\n    bottom: 1,\n    right: 1,\n    left: -1\n  };\n  layout.labelDirection = layout.tickDirection = layout.nameDirection = directionMap[axisPosition];\n\n  if (axisModel.get(['axisTick', 'inside'])) {\n    layout.tickDirection = -layout.tickDirection;\n  }\n\n  if (zrUtil.retrieve(opt.labelInside, axisModel.get(['axisLabel', 'inside']))) {\n    layout.labelDirection = -layout.labelDirection;\n  }\n\n  var labelRotation = opt.rotate;\n  labelRotation == null && (labelRotation = axisModel.get(['axisLabel', 'rotate']));\n  layout.labelRotation = axisPosition === 'top' ? -labelRotation : labelRotation;\n  layout.z2 = 1;\n  return layout;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport AxisBuilder from './AxisBuilder';\nimport * as graphic from '../../util/graphic';\nimport * as singleAxisHelper from '../../coord/single/singleAxisHelper';\nimport AxisView from './AxisView';\nimport { rectCoordAxisBuildSplitArea, rectCoordAxisHandleRemove } from './axisSplitHelper';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitArea', 'splitLine'];\n\nvar SingleAxisView = function (_super) {\n  __extends(SingleAxisView, _super);\n\n  function SingleAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SingleAxisView.type;\n    _this.axisPointerClass = 'SingleAxisPointer';\n    return _this;\n  }\n\n  SingleAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n    var group = this.group;\n    group.removeAll();\n    var oldAxisGroup = this._axisGroup;\n    this._axisGroup = new graphic.Group();\n    var layout = singleAxisHelper.layout(axisModel);\n    var axisBuilder = new AxisBuilder(axisModel, layout);\n    zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n    group.add(this._axisGroup);\n    group.add(axisBuilder.getGroup());\n    zrUtil.each(selfBuilderAttrs, function (name) {\n      if (axisModel.get([name, 'show'])) {\n        axisElementBuilders[name](this, this.group, this._axisGroup, axisModel);\n      }\n    }, this);\n    graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel);\n\n    _super.prototype.render.call(this, axisModel, ecModel, api, payload);\n  };\n\n  SingleAxisView.prototype.remove = function () {\n    rectCoordAxisHandleRemove(this);\n  };\n\n  SingleAxisView.type = 'singleAxis';\n  return SingleAxisView;\n}(AxisView);\n\nvar axisElementBuilders = {\n  splitLine: function (axisView, group, axisGroup, axisModel) {\n    var axis = axisModel.axis;\n\n    if (axis.scale.isBlank()) {\n      return;\n    }\n\n    var splitLineModel = axisModel.getModel('splitLine');\n    var lineStyleModel = splitLineModel.getModel('lineStyle');\n    var lineColors = lineStyleModel.get('color');\n    lineColors = lineColors instanceof Array ? lineColors : [lineColors];\n    var gridRect = axisModel.coordinateSystem.getRect();\n    var isHorizontal = axis.isHorizontal();\n    var splitLines = [];\n    var lineCount = 0;\n    var ticksCoords = axis.getTicksCoords({\n      tickModel: splitLineModel\n    });\n    var p1 = [];\n    var p2 = [];\n\n    for (var i = 0; i < ticksCoords.length; ++i) {\n      var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n\n      if (isHorizontal) {\n        p1[0] = tickCoord;\n        p1[1] = gridRect.y;\n        p2[0] = tickCoord;\n        p2[1] = gridRect.y + gridRect.height;\n      } else {\n        p1[0] = gridRect.x;\n        p1[1] = tickCoord;\n        p2[0] = gridRect.x + gridRect.width;\n        p2[1] = tickCoord;\n      }\n\n      var colorIndex = lineCount++ % lineColors.length;\n      splitLines[colorIndex] = splitLines[colorIndex] || [];\n      splitLines[colorIndex].push(new graphic.Line({\n        subPixelOptimize: true,\n        shape: {\n          x1: p1[0],\n          y1: p1[1],\n          x2: p2[0],\n          y2: p2[1]\n        },\n        silent: true\n      }));\n    }\n\n    var lineStyle = lineStyleModel.getLineStyle(['color']);\n\n    for (var i = 0; i < splitLines.length; ++i) {\n      group.add(graphic.mergePath(splitLines[i], {\n        style: zrUtil.defaults({\n          stroke: lineColors[i % lineColors.length]\n        }, lineStyle),\n        silent: true\n      }));\n    }\n  },\n  splitArea: function (axisView, group, axisGroup, axisModel) {\n    rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, axisModel);\n  }\n};\nexport default SingleAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin';\nimport { mixin } from 'zrender/lib/core/util';\n\nvar SingleAxisModel = function (_super) {\n  __extends(SingleAxisModel, _super);\n\n  function SingleAxisModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SingleAxisModel.type;\n    return _this;\n  }\n\n  SingleAxisModel.prototype.getCoordSysModel = function () {\n    return this;\n  };\n\n  SingleAxisModel.type = 'singleAxis';\n  SingleAxisModel.layoutMode = 'box';\n  SingleAxisModel.defaultOption = {\n    left: '5%',\n    top: '5%',\n    right: '5%',\n    bottom: '5%',\n    type: 'value',\n    position: 'bottom',\n    orient: 'horizontal',\n    axisLine: {\n      show: true,\n      lineStyle: {\n        width: 1,\n        type: 'solid'\n      }\n    },\n    tooltip: {\n      show: true\n    },\n    axisTick: {\n      show: true,\n      length: 6,\n      lineStyle: {\n        width: 1\n      }\n    },\n    axisLabel: {\n      show: true,\n      interval: 'auto'\n    },\n    splitLine: {\n      show: true,\n      lineStyle: {\n        type: 'dashed',\n        opacity: 0.2\n      }\n    }\n  };\n  return SingleAxisModel;\n}(ComponentModel);\n\nmixin(SingleAxisModel, AxisModelCommonMixin.prototype);\nexport default SingleAxisModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis';\n\nvar SingleAxis = function (_super) {\n  __extends(SingleAxis, _super);\n\n  function SingleAxis(dim, scale, coordExtent, axisType, position) {\n    var _this = _super.call(this, dim, scale, coordExtent) || this;\n\n    _this.type = axisType || 'value';\n    _this.position = position || 'bottom';\n    return _this;\n  }\n\n  SingleAxis.prototype.isHorizontal = function () {\n    var position = this.position;\n    return position === 'top' || position === 'bottom';\n  };\n\n  SingleAxis.prototype.pointToData = function (point, clamp) {\n    return this.coordinateSystem.pointToData(point)[0];\n  };\n\n  return SingleAxis;\n}(Axis);\n\nexport default SingleAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SingleAxis from './SingleAxis';\nimport * as axisHelper from '../axisHelper';\nimport { getLayoutRect } from '../../util/layout';\nimport { each } from 'zrender/lib/core/util';\n\nvar Single = function () {\n  function Single(axisModel, ecModel, api) {\n    this.type = 'single';\n    this.dimension = 'single';\n    this.dimensions = ['single'];\n    this.axisPointerEnabled = true;\n    this.model = axisModel;\n\n    this._init(axisModel, ecModel, api);\n  }\n\n  Single.prototype._init = function (axisModel, ecModel, api) {\n    var dim = this.dimension;\n    var axis = new SingleAxis(dim, axisHelper.createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisModel.get('position'));\n    var isCategory = axis.type === 'category';\n    axis.onBand = isCategory && axisModel.get('boundaryGap');\n    axis.inverse = axisModel.get('inverse');\n    axis.orient = axisModel.get('orient');\n    axisModel.axis = axis;\n    axis.model = axisModel;\n    axis.coordinateSystem = this;\n    this._axis = axis;\n  };\n\n  Single.prototype.update = function (ecModel, api) {\n    ecModel.eachSeries(function (seriesModel) {\n      if (seriesModel.coordinateSystem === this) {\n        var data_1 = seriesModel.getData();\n        each(data_1.mapDimensionsAll(this.dimension), function (dim) {\n          this._axis.scale.unionExtentFromData(data_1, dim);\n        }, this);\n        axisHelper.niceScaleExtent(this._axis.scale, this._axis.model);\n      }\n    }, this);\n  };\n\n  Single.prototype.resize = function (axisModel, api) {\n    this._rect = getLayoutRect({\n      left: axisModel.get('left'),\n      top: axisModel.get('top'),\n      right: axisModel.get('right'),\n      bottom: axisModel.get('bottom'),\n      width: axisModel.get('width'),\n      height: axisModel.get('height')\n    }, {\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n\n    this._adjustAxis();\n  };\n\n  Single.prototype.getRect = function () {\n    return this._rect;\n  };\n\n  Single.prototype._adjustAxis = function () {\n    var rect = this._rect;\n    var axis = this._axis;\n    var isHorizontal = axis.isHorizontal();\n    var extent = isHorizontal ? [0, rect.width] : [0, rect.height];\n    var idx = axis.reverse ? 1 : 0;\n    axis.setExtent(extent[idx], extent[1 - idx]);\n\n    this._updateAxisTransform(axis, isHorizontal ? rect.x : rect.y);\n  };\n\n  Single.prototype._updateAxisTransform = function (axis, coordBase) {\n    var axisExtent = axis.getExtent();\n    var extentSum = axisExtent[0] + axisExtent[1];\n    var isHorizontal = axis.isHorizontal();\n    axis.toGlobalCoord = isHorizontal ? function (coord) {\n      return coord + coordBase;\n    } : function (coord) {\n      return extentSum - coord + coordBase;\n    };\n    axis.toLocalCoord = isHorizontal ? function (coord) {\n      return coord - coordBase;\n    } : function (coord) {\n      return extentSum - coord + coordBase;\n    };\n  };\n\n  Single.prototype.getAxis = function () {\n    return this._axis;\n  };\n\n  Single.prototype.getBaseAxis = function () {\n    return this._axis;\n  };\n\n  Single.prototype.getAxes = function () {\n    return [this._axis];\n  };\n\n  Single.prototype.getTooltipAxes = function () {\n    return {\n      baseAxes: [this.getAxis()],\n      otherAxes: []\n    };\n  };\n\n  Single.prototype.containPoint = function (point) {\n    var rect = this.getRect();\n    var axis = this.getAxis();\n    var orient = axis.orient;\n\n    if (orient === 'horizontal') {\n      return axis.contain(axis.toLocalCoord(point[0])) && point[1] >= rect.y && point[1] <= rect.y + rect.height;\n    } else {\n      return axis.contain(axis.toLocalCoord(point[1])) && point[0] >= rect.y && point[0] <= rect.y + rect.height;\n    }\n  };\n\n  Single.prototype.pointToData = function (point) {\n    var axis = this.getAxis();\n    return [axis.coordToData(axis.toLocalCoord(point[axis.orient === 'horizontal' ? 0 : 1]))];\n  };\n\n  Single.prototype.dataToPoint = function (val) {\n    var axis = this.getAxis();\n    var rect = this.getRect();\n    var pt = [];\n    var idx = axis.orient === 'horizontal' ? 0 : 1;\n\n    if (val instanceof Array) {\n      val = val[0];\n    }\n\n    pt[idx] = axis.toGlobalCoord(axis.dataToCoord(+val));\n    pt[1 - idx] = idx === 0 ? rect.y + rect.height / 2 : rect.x + rect.width / 2;\n    return pt;\n  };\n\n  Single.prototype.convertToPixel = function (ecModel, finder, value) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? this.dataToPoint(value) : null;\n  };\n\n  Single.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? this.pointToData(pixel) : null;\n  };\n\n  return Single;\n}();\n\nfunction getCoordSys(finder) {\n  var seriesModel = finder.seriesModel;\n  var singleModel = finder.singleAxisModel;\n  return singleModel && singleModel.coordinateSystem || seriesModel && seriesModel.coordinateSystem;\n}\n\nexport default Single;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Single from './Single';\nimport { SINGLE_REFERRING } from '../../util/model';\n\nfunction create(ecModel, api) {\n  var singles = [];\n  ecModel.eachComponent('singleAxis', function (axisModel, idx) {\n    var single = new Single(axisModel, ecModel, api);\n    single.name = 'single_' + idx;\n    single.resize(axisModel, api);\n    axisModel.coordinateSystem = single;\n    singles.push(single);\n  });\n  ecModel.eachSeries(function (seriesModel) {\n    if (seriesModel.get('coordinateSystem') === 'singleAxis') {\n      var singleAxisModel = seriesModel.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\n      seriesModel.coordinateSystem = singleAxisModel && singleAxisModel.coordinateSystem;\n    }\n  });\n  return singles;\n}\n\nvar singleCreator = {\n  create: create,\n  dimensions: Single.prototype.dimensions\n};\nexport default singleCreator;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BaseAxisPointer from './BaseAxisPointer';\nimport * as viewHelper from './viewHelper';\nimport * as singleAxisHelper from '../../coord/single/singleAxisHelper';\nvar XY = ['x', 'y'];\nvar WH = ['width', 'height'];\n\nvar SingleAxisPointer = function (_super) {\n  __extends(SingleAxisPointer, _super);\n\n  function SingleAxisPointer() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  SingleAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\n    var axis = axisModel.axis;\n    var coordSys = axis.coordinateSystem;\n    var otherExtent = getGlobalExtent(coordSys, 1 - getPointDimIndex(axis));\n    var pixelValue = coordSys.dataToPoint(value)[0];\n    var axisPointerType = axisPointerModel.get('type');\n\n    if (axisPointerType && axisPointerType !== 'none') {\n      var elStyle = viewHelper.buildElStyle(axisPointerModel);\n      var pointerOption = pointerShapeBuilder[axisPointerType](axis, pixelValue, otherExtent);\n      pointerOption.style = elStyle;\n      elOption.graphicKey = pointerOption.type;\n      elOption.pointer = pointerOption;\n    }\n\n    var layoutInfo = singleAxisHelper.layout(axisModel);\n    viewHelper.buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api);\n  };\n\n  SingleAxisPointer.prototype.getHandleTransform = function (value, axisModel, axisPointerModel) {\n    var layoutInfo = singleAxisHelper.layout(axisModel, {\n      labelInside: false\n    });\n    layoutInfo.labelMargin = axisPointerModel.get(['handle', 'margin']);\n    var position = viewHelper.getTransformedPosition(axisModel.axis, value, layoutInfo);\n    return {\n      x: position[0],\n      y: position[1],\n      rotation: layoutInfo.rotation + (layoutInfo.labelDirection < 0 ? Math.PI : 0)\n    };\n  };\n\n  SingleAxisPointer.prototype.updateHandleTransform = function (transform, delta, axisModel, axisPointerModel) {\n    var axis = axisModel.axis;\n    var coordSys = axis.coordinateSystem;\n    var dimIndex = getPointDimIndex(axis);\n    var axisExtent = getGlobalExtent(coordSys, dimIndex);\n    var currPosition = [transform.x, transform.y];\n    currPosition[dimIndex] += delta[dimIndex];\n    currPosition[dimIndex] = Math.min(axisExtent[1], currPosition[dimIndex]);\n    currPosition[dimIndex] = Math.max(axisExtent[0], currPosition[dimIndex]);\n    var otherExtent = getGlobalExtent(coordSys, 1 - dimIndex);\n    var cursorOtherValue = (otherExtent[1] + otherExtent[0]) / 2;\n    var cursorPoint = [cursorOtherValue, cursorOtherValue];\n    cursorPoint[dimIndex] = currPosition[dimIndex];\n    return {\n      x: currPosition[0],\n      y: currPosition[1],\n      rotation: transform.rotation,\n      cursorPoint: cursorPoint,\n      tooltipOption: {\n        verticalAlign: 'middle'\n      }\n    };\n  };\n\n  return SingleAxisPointer;\n}(BaseAxisPointer);\n\nvar pointerShapeBuilder = {\n  line: function (axis, pixelValue, otherExtent) {\n    var targetShape = viewHelper.makeLineShape([pixelValue, otherExtent[0]], [pixelValue, otherExtent[1]], getPointDimIndex(axis));\n    return {\n      type: 'Line',\n      subPixelOptimize: true,\n      shape: targetShape\n    };\n  },\n  shadow: function (axis, pixelValue, otherExtent) {\n    var bandWidth = axis.getBandWidth();\n    var span = otherExtent[1] - otherExtent[0];\n    return {\n      type: 'Rect',\n      shape: viewHelper.makeRectShape([pixelValue - bandWidth / 2, otherExtent[0]], [bandWidth, span], getPointDimIndex(axis))\n    };\n  }\n};\n\nfunction getPointDimIndex(axis) {\n  return axis.isHorizontal() ? 0 : 1;\n}\n\nfunction getGlobalExtent(coordSys, dimIndex) {\n  var rect = coordSys.getRect();\n  return [rect[XY[dimIndex]], rect[XY[dimIndex]] + rect[WH[dimIndex]]];\n}\n\nexport default SingleAxisPointer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { use } from '../../extension';\nimport ComponentView from '../../view/Component';\nimport SingleAxisView from '../axis/SingleAxisView';\nimport axisModelCreator from '../../coord/axisModelCreator';\nimport SingleAxisModel from '../../coord/single/AxisModel';\nimport singleCreator from '../../coord/single/singleCreator';\nimport { install as installAxisPointer } from '../axisPointer/install';\nimport AxisView from '../axis/AxisView';\nimport SingleAxisPointer from '../axisPointer/SingleAxisPointer';\n\nvar SingleView = function (_super) {\n  __extends(SingleView, _super);\n\n  function SingleView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SingleView.type;\n    return _this;\n  }\n\n  SingleView.type = 'single';\n  return SingleView;\n}(ComponentView);\n\nexport function install(registers) {\n  use(installAxisPointer);\n  AxisView.registerAxisPointerClass('SingleAxisPointer', SingleAxisPointer);\n  registers.registerComponentView(SingleView);\n  registers.registerComponentView(SingleAxisView);\n  registers.registerComponentModel(SingleAxisModel);\n  axisModelCreator(registers, 'single', SingleAxisModel, SingleAxisModel.defaultOption);\n  registers.registerCoordinateSystem('single', singleCreator);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\nimport { getLayoutParams, sizeCalculable, mergeLayoutParam } from '../../util/layout';\n\nvar CalendarModel = function (_super) {\n  __extends(CalendarModel, _super);\n\n  function CalendarModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CalendarModel.type;\n    return _this;\n  }\n\n  CalendarModel.prototype.init = function (option, parentModel, ecModel) {\n    var inputPositionParams = getLayoutParams(option);\n\n    _super.prototype.init.apply(this, arguments);\n\n    mergeAndNormalizeLayoutParams(option, inputPositionParams);\n  };\n\n  CalendarModel.prototype.mergeOption = function (option) {\n    _super.prototype.mergeOption.apply(this, arguments);\n\n    mergeAndNormalizeLayoutParams(this.option, option);\n  };\n\n  CalendarModel.prototype.getCellSize = function () {\n    return this.option.cellSize;\n  };\n\n  CalendarModel.type = 'calendar';\n  CalendarModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    left: 80,\n    top: 60,\n    cellSize: 20,\n    orient: 'horizontal',\n    splitLine: {\n      show: true,\n      lineStyle: {\n        color: '#000',\n        width: 1,\n        type: 'solid'\n      }\n    },\n    itemStyle: {\n      color: '#fff',\n      borderWidth: 1,\n      borderColor: '#ccc'\n    },\n    dayLabel: {\n      show: true,\n      firstDay: 0,\n      position: 'start',\n      margin: '50%',\n      nameMap: 'en',\n      color: '#000'\n    },\n    monthLabel: {\n      show: true,\n      position: 'start',\n      margin: 5,\n      align: 'center',\n      nameMap: 'en',\n      formatter: null,\n      color: '#000'\n    },\n    yearLabel: {\n      show: true,\n      position: null,\n      margin: 30,\n      formatter: null,\n      color: '#ccc',\n      fontFamily: 'sans-serif',\n      fontWeight: 'bolder',\n      fontSize: 20\n    }\n  };\n  return CalendarModel;\n}(ComponentModel);\n\nfunction mergeAndNormalizeLayoutParams(target, raw) {\n  var cellSize = target.cellSize;\n  var cellSizeArr;\n\n  if (!zrUtil.isArray(cellSize)) {\n    cellSizeArr = target.cellSize = [cellSize, cellSize];\n  } else {\n    cellSizeArr = cellSize;\n  }\n\n  if (cellSizeArr.length === 1) {\n    cellSizeArr[1] = cellSizeArr[0];\n  }\n\n  var ignoreSize = zrUtil.map([0, 1], function (hvIdx) {\n    if (sizeCalculable(raw, hvIdx)) {\n      cellSizeArr[hvIdx] = 'auto';\n    }\n\n    return cellSizeArr[hvIdx] != null && cellSizeArr[hvIdx] !== 'auto';\n  });\n  mergeLayoutParam(target, raw, {\n    type: 'box',\n    ignoreSize: ignoreSize\n  });\n}\n\nexport default CalendarModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { createTextStyle } from '../../label/labelStyle';\nimport * as formatUtil from '../../util/format';\nimport * as numberUtil from '../../util/number';\nimport ComponentView from '../../view/Component';\nvar MONTH_TEXT = {\n  EN: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n  CN: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']\n};\nvar WEEK_TEXT = {\n  EN: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n  CN: ['日', '一', '二', '三', '四', '五', '六']\n};\n\nvar CalendarView = function (_super) {\n  __extends(CalendarView, _super);\n\n  function CalendarView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CalendarView.type;\n    return _this;\n  }\n\n  CalendarView.prototype.render = function (calendarModel, ecModel, api) {\n    var group = this.group;\n    group.removeAll();\n    var coordSys = calendarModel.coordinateSystem;\n    var rangeData = coordSys.getRangeInfo();\n    var orient = coordSys.getOrient();\n\n    this._renderDayRect(calendarModel, rangeData, group);\n\n    this._renderLines(calendarModel, rangeData, orient, group);\n\n    this._renderYearText(calendarModel, rangeData, orient, group);\n\n    this._renderMonthText(calendarModel, orient, group);\n\n    this._renderWeekText(calendarModel, rangeData, orient, group);\n  };\n\n  CalendarView.prototype._renderDayRect = function (calendarModel, rangeData, group) {\n    var coordSys = calendarModel.coordinateSystem;\n    var itemRectStyleModel = calendarModel.getModel('itemStyle').getItemStyle();\n    var sw = coordSys.getCellWidth();\n    var sh = coordSys.getCellHeight();\n\n    for (var i = rangeData.start.time; i <= rangeData.end.time; i = coordSys.getNextNDay(i, 1).time) {\n      var point = coordSys.dataToRect([i], false).tl;\n      var rect = new graphic.Rect({\n        shape: {\n          x: point[0],\n          y: point[1],\n          width: sw,\n          height: sh\n        },\n        cursor: 'default',\n        style: itemRectStyleModel\n      });\n      group.add(rect);\n    }\n  };\n\n  CalendarView.prototype._renderLines = function (calendarModel, rangeData, orient, group) {\n    var self = this;\n    var coordSys = calendarModel.coordinateSystem;\n    var lineStyleModel = calendarModel.getModel(['splitLine', 'lineStyle']).getLineStyle();\n    var show = calendarModel.get(['splitLine', 'show']);\n    var lineWidth = lineStyleModel.lineWidth;\n    this._tlpoints = [];\n    this._blpoints = [];\n    this._firstDayOfMonth = [];\n    this._firstDayPoints = [];\n    var firstDay = rangeData.start;\n\n    for (var i = 0; firstDay.time <= rangeData.end.time; i++) {\n      addPoints(firstDay.formatedDate);\n\n      if (i === 0) {\n        firstDay = coordSys.getDateInfo(rangeData.start.y + '-' + rangeData.start.m);\n      }\n\n      var date = firstDay.date;\n      date.setMonth(date.getMonth() + 1);\n      firstDay = coordSys.getDateInfo(date);\n    }\n\n    addPoints(coordSys.getNextNDay(rangeData.end.time, 1).formatedDate);\n\n    function addPoints(date) {\n      self._firstDayOfMonth.push(coordSys.getDateInfo(date));\n\n      self._firstDayPoints.push(coordSys.dataToRect([date], false).tl);\n\n      var points = self._getLinePointsOfOneWeek(calendarModel, date, orient);\n\n      self._tlpoints.push(points[0]);\n\n      self._blpoints.push(points[points.length - 1]);\n\n      show && self._drawSplitline(points, lineStyleModel, group);\n    }\n\n    show && this._drawSplitline(self._getEdgesPoints(self._tlpoints, lineWidth, orient), lineStyleModel, group);\n    show && this._drawSplitline(self._getEdgesPoints(self._blpoints, lineWidth, orient), lineStyleModel, group);\n  };\n\n  CalendarView.prototype._getEdgesPoints = function (points, lineWidth, orient) {\n    var rs = [points[0].slice(), points[points.length - 1].slice()];\n    var idx = orient === 'horizontal' ? 0 : 1;\n    rs[0][idx] = rs[0][idx] - lineWidth / 2;\n    rs[1][idx] = rs[1][idx] + lineWidth / 2;\n    return rs;\n  };\n\n  CalendarView.prototype._drawSplitline = function (points, lineStyle, group) {\n    var poyline = new graphic.Polyline({\n      z2: 20,\n      shape: {\n        points: points\n      },\n      style: lineStyle\n    });\n    group.add(poyline);\n  };\n\n  CalendarView.prototype._getLinePointsOfOneWeek = function (calendarModel, date, orient) {\n    var coordSys = calendarModel.coordinateSystem;\n    var parsedDate = coordSys.getDateInfo(date);\n    var points = [];\n\n    for (var i = 0; i < 7; i++) {\n      var tmpD = coordSys.getNextNDay(parsedDate.time, i);\n      var point = coordSys.dataToRect([tmpD.time], false);\n      points[2 * tmpD.day] = point.tl;\n      points[2 * tmpD.day + 1] = point[orient === 'horizontal' ? 'bl' : 'tr'];\n    }\n\n    return points;\n  };\n\n  CalendarView.prototype._formatterLabel = function (formatter, params) {\n    if (typeof formatter === 'string' && formatter) {\n      return formatUtil.formatTplSimple(formatter, params);\n    }\n\n    if (typeof formatter === 'function') {\n      return formatter(params);\n    }\n\n    return params.nameMap;\n  };\n\n  CalendarView.prototype._yearTextPositionControl = function (textEl, point, orient, position, margin) {\n    var x = point[0];\n    var y = point[1];\n    var aligns = ['center', 'bottom'];\n\n    if (position === 'bottom') {\n      y += margin;\n      aligns = ['center', 'top'];\n    } else if (position === 'left') {\n      x -= margin;\n    } else if (position === 'right') {\n      x += margin;\n      aligns = ['center', 'top'];\n    } else {\n      y -= margin;\n    }\n\n    var rotate = 0;\n\n    if (position === 'left' || position === 'right') {\n      rotate = Math.PI / 2;\n    }\n\n    return {\n      rotation: rotate,\n      x: x,\n      y: y,\n      style: {\n        align: aligns[0],\n        verticalAlign: aligns[1]\n      }\n    };\n  };\n\n  CalendarView.prototype._renderYearText = function (calendarModel, rangeData, orient, group) {\n    var yearLabel = calendarModel.getModel('yearLabel');\n\n    if (!yearLabel.get('show')) {\n      return;\n    }\n\n    var margin = yearLabel.get('margin');\n    var pos = yearLabel.get('position');\n\n    if (!pos) {\n      pos = orient !== 'horizontal' ? 'top' : 'left';\n    }\n\n    var points = [this._tlpoints[this._tlpoints.length - 1], this._blpoints[0]];\n    var xc = (points[0][0] + points[1][0]) / 2;\n    var yc = (points[0][1] + points[1][1]) / 2;\n    var idx = orient === 'horizontal' ? 0 : 1;\n    var posPoints = {\n      top: [xc, points[idx][1]],\n      bottom: [xc, points[1 - idx][1]],\n      left: [points[1 - idx][0], yc],\n      right: [points[idx][0], yc]\n    };\n    var name = rangeData.start.y;\n\n    if (+rangeData.end.y > +rangeData.start.y) {\n      name = name + '-' + rangeData.end.y;\n    }\n\n    var formatter = yearLabel.get('formatter');\n    var params = {\n      start: rangeData.start.y,\n      end: rangeData.end.y,\n      nameMap: name\n    };\n\n    var content = this._formatterLabel(formatter, params);\n\n    var yearText = new graphic.Text({\n      z2: 30,\n      style: createTextStyle(yearLabel, {\n        text: content\n      })\n    });\n    yearText.attr(this._yearTextPositionControl(yearText, posPoints[pos], orient, pos, margin));\n    group.add(yearText);\n  };\n\n  CalendarView.prototype._monthTextPositionControl = function (point, isCenter, orient, position, margin) {\n    var align = 'left';\n    var vAlign = 'top';\n    var x = point[0];\n    var y = point[1];\n\n    if (orient === 'horizontal') {\n      y = y + margin;\n\n      if (isCenter) {\n        align = 'center';\n      }\n\n      if (position === 'start') {\n        vAlign = 'bottom';\n      }\n    } else {\n      x = x + margin;\n\n      if (isCenter) {\n        vAlign = 'middle';\n      }\n\n      if (position === 'start') {\n        align = 'right';\n      }\n    }\n\n    return {\n      x: x,\n      y: y,\n      align: align,\n      verticalAlign: vAlign\n    };\n  };\n\n  CalendarView.prototype._renderMonthText = function (calendarModel, orient, group) {\n    var monthLabel = calendarModel.getModel('monthLabel');\n\n    if (!monthLabel.get('show')) {\n      return;\n    }\n\n    var nameMap = monthLabel.get('nameMap');\n    var margin = monthLabel.get('margin');\n    var pos = monthLabel.get('position');\n    var align = monthLabel.get('align');\n    var termPoints = [this._tlpoints, this._blpoints];\n\n    if (zrUtil.isString(nameMap)) {\n      nameMap = MONTH_TEXT[nameMap.toUpperCase()] || [];\n    }\n\n    var idx = pos === 'start' ? 0 : 1;\n    var axis = orient === 'horizontal' ? 0 : 1;\n    margin = pos === 'start' ? -margin : margin;\n    var isCenter = align === 'center';\n\n    for (var i = 0; i < termPoints[idx].length - 1; i++) {\n      var tmp = termPoints[idx][i].slice();\n      var firstDay = this._firstDayOfMonth[i];\n\n      if (isCenter) {\n        var firstDayPoints = this._firstDayPoints[i];\n        tmp[axis] = (firstDayPoints[axis] + termPoints[0][i + 1][axis]) / 2;\n      }\n\n      var formatter = monthLabel.get('formatter');\n      var name_1 = nameMap[+firstDay.m - 1];\n      var params = {\n        yyyy: firstDay.y,\n        yy: (firstDay.y + '').slice(2),\n        MM: firstDay.m,\n        M: +firstDay.m,\n        nameMap: name_1\n      };\n\n      var content = this._formatterLabel(formatter, params);\n\n      var monthText = new graphic.Text({\n        z2: 30,\n        style: zrUtil.extend(createTextStyle(monthLabel, {\n          text: content\n        }), this._monthTextPositionControl(tmp, isCenter, orient, pos, margin))\n      });\n      group.add(monthText);\n    }\n  };\n\n  CalendarView.prototype._weekTextPositionControl = function (point, orient, position, margin, cellSize) {\n    var align = 'center';\n    var vAlign = 'middle';\n    var x = point[0];\n    var y = point[1];\n    var isStart = position === 'start';\n\n    if (orient === 'horizontal') {\n      x = x + margin + (isStart ? 1 : -1) * cellSize[0] / 2;\n      align = isStart ? 'right' : 'left';\n    } else {\n      y = y + margin + (isStart ? 1 : -1) * cellSize[1] / 2;\n      vAlign = isStart ? 'bottom' : 'top';\n    }\n\n    return {\n      x: x,\n      y: y,\n      align: align,\n      verticalAlign: vAlign\n    };\n  };\n\n  CalendarView.prototype._renderWeekText = function (calendarModel, rangeData, orient, group) {\n    var dayLabel = calendarModel.getModel('dayLabel');\n\n    if (!dayLabel.get('show')) {\n      return;\n    }\n\n    var coordSys = calendarModel.coordinateSystem;\n    var pos = dayLabel.get('position');\n    var nameMap = dayLabel.get('nameMap');\n    var margin = dayLabel.get('margin');\n    var firstDayOfWeek = coordSys.getFirstDayOfWeek();\n\n    if (zrUtil.isString(nameMap)) {\n      nameMap = WEEK_TEXT[nameMap.toUpperCase()] || [];\n    }\n\n    var start = coordSys.getNextNDay(rangeData.end.time, 7 - rangeData.lweek).time;\n    var cellSize = [coordSys.getCellWidth(), coordSys.getCellHeight()];\n    margin = numberUtil.parsePercent(margin, cellSize[orient === 'horizontal' ? 0 : 1]);\n\n    if (pos === 'start') {\n      start = coordSys.getNextNDay(rangeData.start.time, -(7 + rangeData.fweek)).time;\n      margin = -margin;\n    }\n\n    for (var i = 0; i < 7; i++) {\n      var tmpD = coordSys.getNextNDay(start, i);\n      var point = coordSys.dataToRect([tmpD.time], false).center;\n      var day = i;\n      day = Math.abs((i + firstDayOfWeek) % 7);\n      var weekText = new graphic.Text({\n        z2: 30,\n        style: zrUtil.extend(createTextStyle(dayLabel, {\n          text: nameMap[day]\n        }), this._weekTextPositionControl(point, orient, pos, margin, cellSize))\n      });\n      group.add(weekText);\n    }\n  };\n\n  CalendarView.type = 'calendar';\n  return CalendarView;\n}(ComponentView);\n\nexport default CalendarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as layout from '../../util/layout';\nimport * as numberUtil from '../../util/number';\nvar PROXIMATE_ONE_DAY = 86400000;\n\nvar Calendar = function () {\n  function Calendar(calendarModel, ecModel, api) {\n    this.type = 'calendar';\n    this.dimensions = Calendar.dimensions;\n    this.getDimensionsInfo = Calendar.getDimensionsInfo;\n    this._model = calendarModel;\n  }\n\n  Calendar.getDimensionsInfo = function () {\n    return [{\n      name: 'time',\n      type: 'time'\n    }, 'value'];\n  };\n\n  Calendar.prototype.getRangeInfo = function () {\n    return this._rangeInfo;\n  };\n\n  Calendar.prototype.getModel = function () {\n    return this._model;\n  };\n\n  Calendar.prototype.getRect = function () {\n    return this._rect;\n  };\n\n  Calendar.prototype.getCellWidth = function () {\n    return this._sw;\n  };\n\n  Calendar.prototype.getCellHeight = function () {\n    return this._sh;\n  };\n\n  Calendar.prototype.getOrient = function () {\n    return this._orient;\n  };\n\n  Calendar.prototype.getFirstDayOfWeek = function () {\n    return this._firstDayOfWeek;\n  };\n\n  Calendar.prototype.getDateInfo = function (date) {\n    date = numberUtil.parseDate(date);\n    var y = date.getFullYear();\n    var m = date.getMonth() + 1;\n    var mStr = m < 10 ? '0' + m : '' + m;\n    var d = date.getDate();\n    var dStr = d < 10 ? '0' + d : '' + d;\n    var day = date.getDay();\n    day = Math.abs((day + 7 - this.getFirstDayOfWeek()) % 7);\n    return {\n      y: y + '',\n      m: mStr,\n      d: dStr,\n      day: day,\n      time: date.getTime(),\n      formatedDate: y + '-' + mStr + '-' + dStr,\n      date: date\n    };\n  };\n\n  Calendar.prototype.getNextNDay = function (date, n) {\n    n = n || 0;\n\n    if (n === 0) {\n      return this.getDateInfo(date);\n    }\n\n    date = new Date(this.getDateInfo(date).time);\n    date.setDate(date.getDate() + n);\n    return this.getDateInfo(date);\n  };\n\n  Calendar.prototype.update = function (ecModel, api) {\n    this._firstDayOfWeek = +this._model.getModel('dayLabel').get('firstDay');\n    this._orient = this._model.get('orient');\n    this._lineWidth = this._model.getModel('itemStyle').getItemStyle().lineWidth || 0;\n    this._rangeInfo = this._getRangeInfo(this._initRangeOption());\n    var weeks = this._rangeInfo.weeks || 1;\n    var whNames = ['width', 'height'];\n\n    var cellSize = this._model.getCellSize().slice();\n\n    var layoutParams = this._model.getBoxLayoutParams();\n\n    var cellNumbers = this._orient === 'horizontal' ? [weeks, 7] : [7, weeks];\n    zrUtil.each([0, 1], function (idx) {\n      if (cellSizeSpecified(cellSize, idx)) {\n        layoutParams[whNames[idx]] = cellSize[idx] * cellNumbers[idx];\n      }\n    });\n    var whGlobal = {\n      width: api.getWidth(),\n      height: api.getHeight()\n    };\n    var calendarRect = this._rect = layout.getLayoutRect(layoutParams, whGlobal);\n    zrUtil.each([0, 1], function (idx) {\n      if (!cellSizeSpecified(cellSize, idx)) {\n        cellSize[idx] = calendarRect[whNames[idx]] / cellNumbers[idx];\n      }\n    });\n\n    function cellSizeSpecified(cellSize, idx) {\n      return cellSize[idx] != null && cellSize[idx] !== 'auto';\n    }\n\n    this._sw = cellSize[0];\n    this._sh = cellSize[1];\n  };\n\n  Calendar.prototype.dataToPoint = function (data, clamp) {\n    zrUtil.isArray(data) && (data = data[0]);\n    clamp == null && (clamp = true);\n    var dayInfo = this.getDateInfo(data);\n    var range = this._rangeInfo;\n    var date = dayInfo.formatedDate;\n\n    if (clamp && !(dayInfo.time >= range.start.time && dayInfo.time < range.end.time + PROXIMATE_ONE_DAY)) {\n      return [NaN, NaN];\n    }\n\n    var week = dayInfo.day;\n\n    var nthWeek = this._getRangeInfo([range.start.time, date]).nthWeek;\n\n    if (this._orient === 'vertical') {\n      return [this._rect.x + week * this._sw + this._sw / 2, this._rect.y + nthWeek * this._sh + this._sh / 2];\n    }\n\n    return [this._rect.x + nthWeek * this._sw + this._sw / 2, this._rect.y + week * this._sh + this._sh / 2];\n  };\n\n  Calendar.prototype.pointToData = function (point) {\n    var date = this.pointToDate(point);\n    return date && date.time;\n  };\n\n  Calendar.prototype.dataToRect = function (data, clamp) {\n    var point = this.dataToPoint(data, clamp);\n    return {\n      contentShape: {\n        x: point[0] - (this._sw - this._lineWidth) / 2,\n        y: point[1] - (this._sh - this._lineWidth) / 2,\n        width: this._sw - this._lineWidth,\n        height: this._sh - this._lineWidth\n      },\n      center: point,\n      tl: [point[0] - this._sw / 2, point[1] - this._sh / 2],\n      tr: [point[0] + this._sw / 2, point[1] - this._sh / 2],\n      br: [point[0] + this._sw / 2, point[1] + this._sh / 2],\n      bl: [point[0] - this._sw / 2, point[1] + this._sh / 2]\n    };\n  };\n\n  Calendar.prototype.pointToDate = function (point) {\n    var nthX = Math.floor((point[0] - this._rect.x) / this._sw) + 1;\n    var nthY = Math.floor((point[1] - this._rect.y) / this._sh) + 1;\n    var range = this._rangeInfo.range;\n\n    if (this._orient === 'vertical') {\n      return this._getDateByWeeksAndDay(nthY, nthX - 1, range);\n    }\n\n    return this._getDateByWeeksAndDay(nthX, nthY - 1, range);\n  };\n\n  Calendar.prototype.convertToPixel = function (ecModel, finder, value) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? coordSys.dataToPoint(value) : null;\n  };\n\n  Calendar.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? coordSys.pointToData(pixel) : null;\n  };\n\n  Calendar.prototype.containPoint = function (point) {\n    console.warn('Not implemented.');\n    return false;\n  };\n\n  Calendar.prototype._initRangeOption = function () {\n    var range = this._model.get('range');\n\n    var normalizedRange;\n\n    if (zrUtil.isArray(range) && range.length === 1) {\n      range = range[0];\n    }\n\n    if (!zrUtil.isArray(range)) {\n      var rangeStr = range.toString();\n\n      if (/^\\d{4}$/.test(rangeStr)) {\n        normalizedRange = [rangeStr + '-01-01', rangeStr + '-12-31'];\n      }\n\n      if (/^\\d{4}[\\/|-]\\d{1,2}$/.test(rangeStr)) {\n        var start = this.getDateInfo(rangeStr);\n        var firstDay = start.date;\n        firstDay.setMonth(firstDay.getMonth() + 1);\n        var end = this.getNextNDay(firstDay, -1);\n        normalizedRange = [start.formatedDate, end.formatedDate];\n      }\n\n      if (/^\\d{4}[\\/|-]\\d{1,2}[\\/|-]\\d{1,2}$/.test(rangeStr)) {\n        normalizedRange = [rangeStr, rangeStr];\n      }\n    } else {\n      normalizedRange = range;\n    }\n\n    if (!normalizedRange) {\n      if (process.env.NODE_ENV !== 'production') {\n        zrUtil.logError('Invalid date range.');\n      }\n\n      return range;\n    }\n\n    var tmp = this._getRangeInfo(normalizedRange);\n\n    if (tmp.start.time > tmp.end.time) {\n      normalizedRange.reverse();\n    }\n\n    return normalizedRange;\n  };\n\n  Calendar.prototype._getRangeInfo = function (range) {\n    var parsedRange = [this.getDateInfo(range[0]), this.getDateInfo(range[1])];\n    var reversed;\n\n    if (parsedRange[0].time > parsedRange[1].time) {\n      reversed = true;\n      parsedRange.reverse();\n    }\n\n    var allDay = Math.floor(parsedRange[1].time / PROXIMATE_ONE_DAY) - Math.floor(parsedRange[0].time / PROXIMATE_ONE_DAY) + 1;\n    var date = new Date(parsedRange[0].time);\n    var startDateNum = date.getDate();\n    var endDateNum = parsedRange[1].date.getDate();\n    date.setDate(startDateNum + allDay - 1);\n    var dateNum = date.getDate();\n\n    if (dateNum !== endDateNum) {\n      var sign = date.getTime() - parsedRange[1].time > 0 ? 1 : -1;\n\n      while ((dateNum = date.getDate()) !== endDateNum && (date.getTime() - parsedRange[1].time) * sign > 0) {\n        allDay -= sign;\n        date.setDate(dateNum - sign);\n      }\n    }\n\n    var weeks = Math.floor((allDay + parsedRange[0].day + 6) / 7);\n    var nthWeek = reversed ? -weeks + 1 : weeks - 1;\n    reversed && parsedRange.reverse();\n    return {\n      range: [parsedRange[0].formatedDate, parsedRange[1].formatedDate],\n      start: parsedRange[0],\n      end: parsedRange[1],\n      allDay: allDay,\n      weeks: weeks,\n      nthWeek: nthWeek,\n      fweek: parsedRange[0].day,\n      lweek: parsedRange[1].day\n    };\n  };\n\n  Calendar.prototype._getDateByWeeksAndDay = function (nthWeek, day, range) {\n    var rangeInfo = this._getRangeInfo(range);\n\n    if (nthWeek > rangeInfo.weeks || nthWeek === 0 && day < rangeInfo.fweek || nthWeek === rangeInfo.weeks && day > rangeInfo.lweek) {\n      return null;\n    }\n\n    var nthDay = (nthWeek - 1) * 7 - rangeInfo.fweek + day;\n    var date = new Date(rangeInfo.start.time);\n    date.setDate(+rangeInfo.start.d + nthDay);\n    return this.getDateInfo(date);\n  };\n\n  Calendar.create = function (ecModel, api) {\n    var calendarList = [];\n    ecModel.eachComponent('calendar', function (calendarModel) {\n      var calendar = new Calendar(calendarModel, ecModel, api);\n      calendarList.push(calendar);\n      calendarModel.coordinateSystem = calendar;\n    });\n    ecModel.eachSeries(function (calendarSeries) {\n      if (calendarSeries.get('coordinateSystem') === 'calendar') {\n        calendarSeries.coordinateSystem = calendarList[calendarSeries.get('calendarIndex') || 0];\n      }\n    });\n    return calendarList;\n  };\n\n  Calendar.dimensions = ['time', 'value'];\n  return Calendar;\n}();\n\nfunction getCoordSys(finder) {\n  var calendarModel = finder.calendarModel;\n  var seriesModel = finder.seriesModel;\n  var coordSys = calendarModel ? calendarModel.coordinateSystem : seriesModel ? seriesModel.coordinateSystem : null;\n  return coordSys;\n}\n\nexport default Calendar;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport CalendarModel from '../../coord/calendar/CalendarModel';\nimport CalendarView from './CalendarView';\nimport Calendar from '../../coord/calendar/Calendar';\nexport function install(registers) {\n  registers.registerComponentModel(CalendarModel);\n  registers.registerComponentView(CalendarView);\n  registers.registerCoordinateSystem('calendar', Calendar);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nimport * as graphicUtil from '../../util/graphic';\nimport * as layoutUtil from '../../util/layout';\nimport { parsePercent } from '../../util/number';\nimport ComponentModel from '../../model/Component';\nimport ComponentView from '../../view/Component';\nimport { getECData } from '../../util/innerStore';\nimport { isEC4CompatibleStyle, convertFromEC4CompatibleStyle } from '../../util/styleCompat';\nvar TRANSFORM_PROPS = {\n  x: 1,\n  y: 1,\n  scaleX: 1,\n  scaleY: 1,\n  originX: 1,\n  originY: 1,\n  rotation: 1\n};\n;\nvar inner = modelUtil.makeInner();\nvar _nonShapeGraphicElements = {\n  path: null,\n  compoundPath: null,\n  group: graphicUtil.Group,\n  image: graphicUtil.Image,\n  text: graphicUtil.Text\n};\n\nvar preprocessor = function (option) {\n  var graphicOption = option.graphic;\n\n  if (zrUtil.isArray(graphicOption)) {\n    if (!graphicOption[0] || !graphicOption[0].elements) {\n      option.graphic = [{\n        elements: graphicOption\n      }];\n    } else {\n      option.graphic = [option.graphic[0]];\n    }\n  } else if (graphicOption && !graphicOption.elements) {\n    option.graphic = [{\n      elements: [graphicOption]\n    }];\n  }\n};\n\n;\n\nvar GraphicComponentModel = function (_super) {\n  __extends(GraphicComponentModel, _super);\n\n  function GraphicComponentModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GraphicComponentModel.type;\n    return _this;\n  }\n\n  GraphicComponentModel.prototype.mergeOption = function (option, ecModel) {\n    var elements = this.option.elements;\n    this.option.elements = null;\n\n    _super.prototype.mergeOption.call(this, option, ecModel);\n\n    this.option.elements = elements;\n  };\n\n  GraphicComponentModel.prototype.optionUpdated = function (newOption, isInit) {\n    var thisOption = this.option;\n    var newList = (isInit ? thisOption : newOption).elements;\n    var existList = thisOption.elements = isInit ? [] : thisOption.elements;\n    var flattenedList = [];\n\n    this._flatten(newList, flattenedList, null);\n\n    var mappingResult = modelUtil.mappingToExists(existList, flattenedList, 'normalMerge');\n    var elOptionsToUpdate = this._elOptionsToUpdate = [];\n    zrUtil.each(mappingResult, function (resultItem, index) {\n      var newElOption = resultItem.newOption;\n\n      if (process.env.NODE_ENV !== 'production') {\n        zrUtil.assert(zrUtil.isObject(newElOption) || resultItem.existing, 'Empty graphic option definition');\n      }\n\n      if (!newElOption) {\n        return;\n      }\n\n      elOptionsToUpdate.push(newElOption);\n      setKeyInfoToNewElOption(resultItem, newElOption);\n      mergeNewElOptionToExist(existList, index, newElOption);\n      setLayoutInfoToExist(existList[index], newElOption);\n    }, this);\n\n    for (var i = existList.length - 1; i >= 0; i--) {\n      if (existList[i] == null) {\n        existList.splice(i, 1);\n      } else {\n        delete existList[i].$action;\n      }\n    }\n  };\n\n  GraphicComponentModel.prototype._flatten = function (optionList, result, parentOption) {\n    zrUtil.each(optionList, function (option) {\n      if (!option) {\n        return;\n      }\n\n      if (parentOption) {\n        option.parentOption = parentOption;\n      }\n\n      result.push(option);\n      var children = option.children;\n\n      if (option.type === 'group' && children) {\n        this._flatten(children, result, option);\n      }\n\n      delete option.children;\n    }, this);\n  };\n\n  GraphicComponentModel.prototype.useElOptionsToUpdate = function () {\n    var els = this._elOptionsToUpdate;\n    this._elOptionsToUpdate = null;\n    return els;\n  };\n\n  GraphicComponentModel.type = 'graphic';\n  GraphicComponentModel.defaultOption = {\n    elements: []\n  };\n  return GraphicComponentModel;\n}(ComponentModel);\n\nvar GraphicComponentView = function (_super) {\n  __extends(GraphicComponentView, _super);\n\n  function GraphicComponentView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GraphicComponentView.type;\n    return _this;\n  }\n\n  GraphicComponentView.prototype.init = function () {\n    this._elMap = zrUtil.createHashMap();\n  };\n\n  GraphicComponentView.prototype.render = function (graphicModel, ecModel, api) {\n    if (graphicModel !== this._lastGraphicModel) {\n      this._clear();\n    }\n\n    this._lastGraphicModel = graphicModel;\n\n    this._updateElements(graphicModel);\n\n    this._relocate(graphicModel, api);\n  };\n\n  GraphicComponentView.prototype._updateElements = function (graphicModel) {\n    var elOptionsToUpdate = graphicModel.useElOptionsToUpdate();\n\n    if (!elOptionsToUpdate) {\n      return;\n    }\n\n    var elMap = this._elMap;\n    var rootGroup = this.group;\n    zrUtil.each(elOptionsToUpdate, function (elOption) {\n      var id = modelUtil.convertOptionIdName(elOption.id, null);\n      var elExisting = id != null ? elMap.get(id) : null;\n      var parentId = modelUtil.convertOptionIdName(elOption.parentId, null);\n      var targetElParent = parentId != null ? elMap.get(parentId) : rootGroup;\n      var elType = elOption.type;\n      var elOptionStyle = elOption.style;\n\n      if (elType === 'text' && elOptionStyle) {\n        if (elOption.hv && elOption.hv[1]) {\n          elOptionStyle.textVerticalAlign = elOptionStyle.textBaseline = elOptionStyle.verticalAlign = elOptionStyle.align = null;\n        }\n      }\n\n      var textContentOption = elOption.textContent;\n      var textConfig = elOption.textConfig;\n\n      if (elOptionStyle && isEC4CompatibleStyle(elOptionStyle, elType, !!textConfig, !!textContentOption)) {\n        var convertResult = convertFromEC4CompatibleStyle(elOptionStyle, elType, true);\n\n        if (!textConfig && convertResult.textConfig) {\n          textConfig = elOption.textConfig = convertResult.textConfig;\n        }\n\n        if (!textContentOption && convertResult.textContent) {\n          textContentOption = convertResult.textContent;\n        }\n      }\n\n      var elOptionCleaned = getCleanedElOption(elOption);\n\n      if (process.env.NODE_ENV !== 'production') {\n        elExisting && zrUtil.assert(targetElParent === elExisting.parent, 'Changing parent is not supported.');\n      }\n\n      var $action = elOption.$action || 'merge';\n\n      if ($action === 'merge') {\n        elExisting ? elExisting.attr(elOptionCleaned) : createEl(id, targetElParent, elOptionCleaned, elMap);\n      } else if ($action === 'replace') {\n        removeEl(elExisting, elMap);\n        createEl(id, targetElParent, elOptionCleaned, elMap);\n      } else if ($action === 'remove') {\n        removeEl(elExisting, elMap);\n      }\n\n      var el = elMap.get(id);\n\n      if (el && textContentOption) {\n        if ($action === 'merge') {\n          var textContentExisting = el.getTextContent();\n          textContentExisting ? textContentExisting.attr(textContentOption) : el.setTextContent(new graphicUtil.Text(textContentOption));\n        } else if ($action === 'replace') {\n          el.setTextContent(new graphicUtil.Text(textContentOption));\n        }\n      }\n\n      if (el) {\n        var elInner = inner(el);\n        elInner.__ecGraphicWidthOption = elOption.width;\n        elInner.__ecGraphicHeightOption = elOption.height;\n        setEventData(el, graphicModel, elOption);\n      }\n    });\n  };\n\n  GraphicComponentView.prototype._relocate = function (graphicModel, api) {\n    var elOptions = graphicModel.option.elements;\n    var rootGroup = this.group;\n    var elMap = this._elMap;\n    var apiWidth = api.getWidth();\n    var apiHeight = api.getHeight();\n\n    for (var i = 0; i < elOptions.length; i++) {\n      var elOption = elOptions[i];\n      var id = modelUtil.convertOptionIdName(elOption.id, null);\n      var el = id != null ? elMap.get(id) : null;\n\n      if (!el || !el.isGroup) {\n        continue;\n      }\n\n      var parentEl = el.parent;\n      var isParentRoot = parentEl === rootGroup;\n      var elInner = inner(el);\n      var parentElInner = inner(parentEl);\n      elInner.__ecGraphicWidth = parsePercent(elInner.__ecGraphicWidthOption, isParentRoot ? apiWidth : parentElInner.__ecGraphicWidth) || 0;\n      elInner.__ecGraphicHeight = parsePercent(elInner.__ecGraphicHeightOption, isParentRoot ? apiHeight : parentElInner.__ecGraphicHeight) || 0;\n    }\n\n    for (var i = elOptions.length - 1; i >= 0; i--) {\n      var elOption = elOptions[i];\n      var id = modelUtil.convertOptionIdName(elOption.id, null);\n      var el = id != null ? elMap.get(id) : null;\n\n      if (!el) {\n        continue;\n      }\n\n      var parentEl = el.parent;\n      var parentElInner = inner(parentEl);\n      var containerInfo = parentEl === rootGroup ? {\n        width: apiWidth,\n        height: apiHeight\n      } : {\n        width: parentElInner.__ecGraphicWidth,\n        height: parentElInner.__ecGraphicHeight\n      };\n      layoutUtil.positionElement(el, elOption, containerInfo, null, {\n        hv: elOption.hv,\n        boundingMode: elOption.bounding\n      });\n    }\n  };\n\n  GraphicComponentView.prototype._clear = function () {\n    var elMap = this._elMap;\n    elMap.each(function (el) {\n      removeEl(el, elMap);\n    });\n    this._elMap = zrUtil.createHashMap();\n  };\n\n  GraphicComponentView.prototype.dispose = function () {\n    this._clear();\n  };\n\n  GraphicComponentView.type = 'graphic';\n  return GraphicComponentView;\n}(ComponentView);\n\nfunction createEl(id, targetElParent, elOption, elMap) {\n  var graphicType = elOption.type;\n\n  if (process.env.NODE_ENV !== 'production') {\n    zrUtil.assert(graphicType, 'graphic type MUST be set');\n  }\n\n  var Clz = zrUtil.hasOwn(_nonShapeGraphicElements, graphicType) ? _nonShapeGraphicElements[graphicType] : graphicUtil.getShapeClass(graphicType);\n\n  if (process.env.NODE_ENV !== 'production') {\n    zrUtil.assert(Clz, 'graphic type can not be found');\n  }\n\n  var el = new Clz(elOption);\n  targetElParent.add(el);\n  elMap.set(id, el);\n  inner(el).__ecGraphicId = id;\n}\n\nfunction removeEl(elExisting, elMap) {\n  var existElParent = elExisting && elExisting.parent;\n\n  if (existElParent) {\n    elExisting.type === 'group' && elExisting.traverse(function (el) {\n      removeEl(el, elMap);\n    });\n    elMap.removeKey(inner(elExisting).__ecGraphicId);\n    existElParent.remove(elExisting);\n  }\n}\n\nfunction getCleanedElOption(elOption) {\n  elOption = zrUtil.extend({}, elOption);\n  zrUtil.each(['id', 'parentId', '$action', 'hv', 'bounding', 'textContent'].concat(layoutUtil.LOCATION_PARAMS), function (name) {\n    delete elOption[name];\n  });\n  return elOption;\n}\n\nfunction isSetLoc(obj, props) {\n  var isSet;\n  zrUtil.each(props, function (prop) {\n    obj[prop] != null && obj[prop] !== 'auto' && (isSet = true);\n  });\n  return isSet;\n}\n\nfunction setKeyInfoToNewElOption(resultItem, newElOption) {\n  var existElOption = resultItem.existing;\n  newElOption.id = resultItem.keyInfo.id;\n  !newElOption.type && existElOption && (newElOption.type = existElOption.type);\n\n  if (newElOption.parentId == null) {\n    var newElParentOption = newElOption.parentOption;\n\n    if (newElParentOption) {\n      newElOption.parentId = newElParentOption.id;\n    } else if (existElOption) {\n      newElOption.parentId = existElOption.parentId;\n    }\n  }\n\n  newElOption.parentOption = null;\n}\n\nfunction mergeNewElOptionToExist(existList, index, newElOption) {\n  var newElOptCopy = zrUtil.extend({}, newElOption);\n  var existElOption = existList[index];\n  var $action = newElOption.$action || 'merge';\n\n  if ($action === 'merge') {\n    if (existElOption) {\n      if (process.env.NODE_ENV !== 'production') {\n        var newType = newElOption.type;\n        zrUtil.assert(!newType || existElOption.type === newType, 'Please set $action: \"replace\" to change `type`');\n      }\n\n      zrUtil.merge(existElOption, newElOptCopy, true);\n      layoutUtil.mergeLayoutParam(existElOption, newElOptCopy, {\n        ignoreSize: true\n      });\n      layoutUtil.copyLayoutParams(newElOption, existElOption);\n    } else {\n      existList[index] = newElOptCopy;\n    }\n  } else if ($action === 'replace') {\n    existList[index] = newElOptCopy;\n  } else if ($action === 'remove') {\n    existElOption && (existList[index] = null);\n  }\n}\n\nfunction setLayoutInfoToExist(existItem, newElOption) {\n  if (!existItem) {\n    return;\n  }\n\n  existItem.hv = newElOption.hv = [isSetLoc(newElOption, ['left', 'right']), isSetLoc(newElOption, ['top', 'bottom'])];\n\n  if (existItem.type === 'group') {\n    var existingGroupOpt = existItem;\n    var newGroupOpt = newElOption;\n    existingGroupOpt.width == null && (existingGroupOpt.width = newGroupOpt.width = 0);\n    existingGroupOpt.height == null && (existingGroupOpt.height = newGroupOpt.height = 0);\n  }\n}\n\nfunction setEventData(el, graphicModel, elOption) {\n  var eventData = getECData(el).eventData;\n\n  if (!el.silent && !el.ignore && !eventData) {\n    eventData = getECData(el).eventData = {\n      componentType: 'graphic',\n      componentIndex: graphicModel.componentIndex,\n      name: el.name\n    };\n  }\n\n  if (eventData) {\n    eventData.info = elOption.info;\n  }\n}\n\nexport function install(registers) {\n  registers.registerComponentModel(GraphicComponentModel);\n  registers.registerComponentView(GraphicComponentView);\n  registers.registerPreprocessor(preprocessor);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { indexOf, createHashMap, assert } from 'zrender/lib/core/util';\nexport var DATA_ZOOM_AXIS_DIMENSIONS = ['x', 'y', 'radius', 'angle', 'single'];\nvar SERIES_COORDS = ['cartesian2d', 'polar', 'singleAxis'];\nexport function isCoordSupported(seriesModel) {\n  var coordType = seriesModel.get('coordinateSystem');\n  return indexOf(SERIES_COORDS, coordType) >= 0;\n}\nexport function getAxisMainType(axisDim) {\n  if (process.env.NODE_ENV !== 'production') {\n    assert(axisDim);\n  }\n\n  return axisDim + 'Axis';\n}\nexport function getAxisIndexPropName(axisDim) {\n  if (process.env.NODE_ENV !== 'production') {\n    assert(axisDim);\n  }\n\n  return axisDim + 'AxisIndex';\n}\nexport function getAxisIdPropName(axisDim) {\n  if (process.env.NODE_ENV !== 'production') {\n    assert(axisDim);\n  }\n\n  return axisDim + 'AxisId';\n}\nexport function findEffectedDataZooms(ecModel, payload) {\n  var axisRecords = createHashMap();\n  var effectedModels = [];\n  var effectedModelMap = createHashMap();\n  ecModel.eachComponent({\n    mainType: 'dataZoom',\n    query: payload\n  }, function (dataZoomModel) {\n    if (!effectedModelMap.get(dataZoomModel.uid)) {\n      addToEffected(dataZoomModel);\n    }\n  });\n  var foundNewLink;\n\n  do {\n    foundNewLink = false;\n    ecModel.eachComponent('dataZoom', processSingle);\n  } while (foundNewLink);\n\n  function processSingle(dataZoomModel) {\n    if (!effectedModelMap.get(dataZoomModel.uid) && isLinked(dataZoomModel)) {\n      addToEffected(dataZoomModel);\n      foundNewLink = true;\n    }\n  }\n\n  function addToEffected(dataZoom) {\n    effectedModelMap.set(dataZoom.uid, true);\n    effectedModels.push(dataZoom);\n    markAxisControlled(dataZoom);\n  }\n\n  function isLinked(dataZoomModel) {\n    var isLink = false;\n    dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n      var axisIdxArr = axisRecords.get(axisDim);\n\n      if (axisIdxArr && axisIdxArr[axisIndex]) {\n        isLink = true;\n      }\n    });\n    return isLink;\n  }\n\n  function markAxisControlled(dataZoomModel) {\n    dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n      (axisRecords.get(axisDim) || axisRecords.set(axisDim, []))[axisIndex] = true;\n    });\n  }\n\n  return effectedModels;\n}\nexport function collectReferCoordSysModelInfo(dataZoomModel) {\n  var ecModel = dataZoomModel.ecModel;\n  var coordSysInfoWrap = {\n    infoList: [],\n    infoMap: createHashMap()\n  };\n  dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n    var axisModel = ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n\n    if (!axisModel) {\n      return;\n    }\n\n    var coordSysModel = axisModel.getCoordSysModel();\n\n    if (!coordSysModel) {\n      return;\n    }\n\n    var coordSysUid = coordSysModel.uid;\n    var coordSysInfo = coordSysInfoWrap.infoMap.get(coordSysUid);\n\n    if (!coordSysInfo) {\n      coordSysInfo = {\n        model: coordSysModel,\n        axisModels: []\n      };\n      coordSysInfoWrap.infoList.push(coordSysInfo);\n      coordSysInfoWrap.infoMap.set(coordSysUid, coordSysInfo);\n    }\n\n    coordSysInfo.axisModels.push(axisModel);\n  });\n  return coordSysInfoWrap;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { each, createHashMap, merge, assert } from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\nimport { getAxisMainType, DATA_ZOOM_AXIS_DIMENSIONS } from './helper';\nimport { MULTIPLE_REFERRING, SINGLE_REFERRING } from '../../util/model';\n\nvar DataZoomAxisInfo = function () {\n  function DataZoomAxisInfo() {\n    this.indexList = [];\n    this.indexMap = [];\n  }\n\n  DataZoomAxisInfo.prototype.add = function (axisCmptIdx) {\n    if (!this.indexMap[axisCmptIdx]) {\n      this.indexList.push(axisCmptIdx);\n      this.indexMap[axisCmptIdx] = true;\n    }\n  };\n\n  return DataZoomAxisInfo;\n}();\n\nvar DataZoomModel = function (_super) {\n  __extends(DataZoomModel, _super);\n\n  function DataZoomModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = DataZoomModel.type;\n    _this._autoThrottle = true;\n    _this._noTarget = true;\n    _this._rangePropMode = ['percent', 'percent'];\n    return _this;\n  }\n\n  DataZoomModel.prototype.init = function (option, parentModel, ecModel) {\n    var inputRawOption = retrieveRawOption(option);\n    this.settledOption = inputRawOption;\n    this.mergeDefaultAndTheme(option, ecModel);\n\n    this._doInit(inputRawOption);\n  };\n\n  DataZoomModel.prototype.mergeOption = function (newOption) {\n    var inputRawOption = retrieveRawOption(newOption);\n    merge(this.option, newOption, true);\n    merge(this.settledOption, inputRawOption, true);\n\n    this._doInit(inputRawOption);\n  };\n\n  DataZoomModel.prototype._doInit = function (inputRawOption) {\n    var thisOption = this.option;\n\n    this._setDefaultThrottle(inputRawOption);\n\n    this._updateRangeUse(inputRawOption);\n\n    var settledOption = this.settledOption;\n    each([['start', 'startValue'], ['end', 'endValue']], function (names, index) {\n      if (this._rangePropMode[index] === 'value') {\n        thisOption[names[0]] = settledOption[names[0]] = null;\n      }\n    }, this);\n\n    this._resetTarget();\n  };\n\n  DataZoomModel.prototype._resetTarget = function () {\n    var optionOrient = this.get('orient', true);\n    var targetAxisIndexMap = this._targetAxisInfoMap = createHashMap();\n\n    var hasAxisSpecified = this._fillSpecifiedTargetAxis(targetAxisIndexMap);\n\n    if (hasAxisSpecified) {\n      this._orient = optionOrient || this._makeAutoOrientByTargetAxis();\n    } else {\n      this._orient = optionOrient || 'horizontal';\n\n      this._fillAutoTargetAxisByOrient(targetAxisIndexMap, this._orient);\n    }\n\n    this._noTarget = true;\n    targetAxisIndexMap.each(function (axisInfo) {\n      if (axisInfo.indexList.length) {\n        this._noTarget = false;\n      }\n    }, this);\n  };\n\n  DataZoomModel.prototype._fillSpecifiedTargetAxis = function (targetAxisIndexMap) {\n    var hasAxisSpecified = false;\n    each(DATA_ZOOM_AXIS_DIMENSIONS, function (axisDim) {\n      var refering = this.getReferringComponents(getAxisMainType(axisDim), MULTIPLE_REFERRING);\n\n      if (!refering.specified) {\n        return;\n      }\n\n      hasAxisSpecified = true;\n      var axisInfo = new DataZoomAxisInfo();\n      each(refering.models, function (axisModel) {\n        axisInfo.add(axisModel.componentIndex);\n      });\n      targetAxisIndexMap.set(axisDim, axisInfo);\n    }, this);\n    return hasAxisSpecified;\n  };\n\n  DataZoomModel.prototype._fillAutoTargetAxisByOrient = function (targetAxisIndexMap, orient) {\n    var ecModel = this.ecModel;\n    var needAuto = true;\n\n    if (needAuto) {\n      var axisDim = orient === 'vertical' ? 'y' : 'x';\n      var axisModels = ecModel.findComponents({\n        mainType: axisDim + 'Axis'\n      });\n      setParallelAxis(axisModels, axisDim);\n    }\n\n    if (needAuto) {\n      var axisModels = ecModel.findComponents({\n        mainType: 'singleAxis',\n        filter: function (axisModel) {\n          return axisModel.get('orient', true) === orient;\n        }\n      });\n      setParallelAxis(axisModels, 'single');\n    }\n\n    function setParallelAxis(axisModels, axisDim) {\n      var axisModel = axisModels[0];\n\n      if (!axisModel) {\n        return;\n      }\n\n      var axisInfo = new DataZoomAxisInfo();\n      axisInfo.add(axisModel.componentIndex);\n      targetAxisIndexMap.set(axisDim, axisInfo);\n      needAuto = false;\n\n      if (axisDim === 'x' || axisDim === 'y') {\n        var gridModel_1 = axisModel.getReferringComponents('grid', SINGLE_REFERRING).models[0];\n        gridModel_1 && each(axisModels, function (axModel) {\n          if (axisModel.componentIndex !== axModel.componentIndex && gridModel_1 === axModel.getReferringComponents('grid', SINGLE_REFERRING).models[0]) {\n            axisInfo.add(axModel.componentIndex);\n          }\n        });\n      }\n    }\n\n    if (needAuto) {\n      each(DATA_ZOOM_AXIS_DIMENSIONS, function (axisDim) {\n        if (!needAuto) {\n          return;\n        }\n\n        var axisModels = ecModel.findComponents({\n          mainType: getAxisMainType(axisDim),\n          filter: function (axisModel) {\n            return axisModel.get('type', true) === 'category';\n          }\n        });\n\n        if (axisModels[0]) {\n          var axisInfo = new DataZoomAxisInfo();\n          axisInfo.add(axisModels[0].componentIndex);\n          targetAxisIndexMap.set(axisDim, axisInfo);\n          needAuto = false;\n        }\n      }, this);\n    }\n  };\n\n  DataZoomModel.prototype._makeAutoOrientByTargetAxis = function () {\n    var dim;\n    this.eachTargetAxis(function (axisDim) {\n      !dim && (dim = axisDim);\n    }, this);\n    return dim === 'y' ? 'vertical' : 'horizontal';\n  };\n\n  DataZoomModel.prototype._setDefaultThrottle = function (inputRawOption) {\n    if (inputRawOption.hasOwnProperty('throttle')) {\n      this._autoThrottle = false;\n    }\n\n    if (this._autoThrottle) {\n      var globalOption = this.ecModel.option;\n      this.option.throttle = globalOption.animation && globalOption.animationDurationUpdate > 0 ? 100 : 20;\n    }\n  };\n\n  DataZoomModel.prototype._updateRangeUse = function (inputRawOption) {\n    var rangePropMode = this._rangePropMode;\n    var rangeModeInOption = this.get('rangeMode');\n    each([['start', 'startValue'], ['end', 'endValue']], function (names, index) {\n      var percentSpecified = inputRawOption[names[0]] != null;\n      var valueSpecified = inputRawOption[names[1]] != null;\n\n      if (percentSpecified && !valueSpecified) {\n        rangePropMode[index] = 'percent';\n      } else if (!percentSpecified && valueSpecified) {\n        rangePropMode[index] = 'value';\n      } else if (rangeModeInOption) {\n        rangePropMode[index] = rangeModeInOption[index];\n      } else if (percentSpecified) {\n        rangePropMode[index] = 'percent';\n      }\n    });\n  };\n\n  DataZoomModel.prototype.noTarget = function () {\n    return this._noTarget;\n  };\n\n  DataZoomModel.prototype.getFirstTargetAxisModel = function () {\n    var firstAxisModel;\n    this.eachTargetAxis(function (axisDim, axisIndex) {\n      if (firstAxisModel == null) {\n        firstAxisModel = this.ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n      }\n    }, this);\n    return firstAxisModel;\n  };\n\n  DataZoomModel.prototype.eachTargetAxis = function (callback, context) {\n    this._targetAxisInfoMap.each(function (axisInfo, axisDim) {\n      each(axisInfo.indexList, function (axisIndex) {\n        callback.call(context, axisDim, axisIndex);\n      });\n    });\n  };\n\n  DataZoomModel.prototype.getAxisProxy = function (axisDim, axisIndex) {\n    var axisModel = this.getAxisModel(axisDim, axisIndex);\n\n    if (axisModel) {\n      return axisModel.__dzAxisProxy;\n    }\n  };\n\n  DataZoomModel.prototype.getAxisModel = function (axisDim, axisIndex) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(axisDim && axisIndex != null);\n    }\n\n    var axisInfo = this._targetAxisInfoMap.get(axisDim);\n\n    if (axisInfo && axisInfo.indexMap[axisIndex]) {\n      return this.ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n    }\n  };\n\n  DataZoomModel.prototype.setRawRange = function (opt) {\n    var thisOption = this.option;\n    var settledOption = this.settledOption;\n    each([['start', 'startValue'], ['end', 'endValue']], function (names) {\n      if (opt[names[0]] != null || opt[names[1]] != null) {\n        thisOption[names[0]] = settledOption[names[0]] = opt[names[0]];\n        thisOption[names[1]] = settledOption[names[1]] = opt[names[1]];\n      }\n    }, this);\n\n    this._updateRangeUse(opt);\n  };\n\n  DataZoomModel.prototype.setCalculatedRange = function (opt) {\n    var option = this.option;\n    each(['start', 'startValue', 'end', 'endValue'], function (name) {\n      option[name] = opt[name];\n    });\n  };\n\n  DataZoomModel.prototype.getPercentRange = function () {\n    var axisProxy = this.findRepresentativeAxisProxy();\n\n    if (axisProxy) {\n      return axisProxy.getDataPercentWindow();\n    }\n  };\n\n  DataZoomModel.prototype.getValueRange = function (axisDim, axisIndex) {\n    if (axisDim == null && axisIndex == null) {\n      var axisProxy = this.findRepresentativeAxisProxy();\n\n      if (axisProxy) {\n        return axisProxy.getDataValueWindow();\n      }\n    } else {\n      return this.getAxisProxy(axisDim, axisIndex).getDataValueWindow();\n    }\n  };\n\n  DataZoomModel.prototype.findRepresentativeAxisProxy = function (axisModel) {\n    if (axisModel) {\n      return axisModel.__dzAxisProxy;\n    }\n\n    var firstProxy;\n\n    var axisDimList = this._targetAxisInfoMap.keys();\n\n    for (var i = 0; i < axisDimList.length; i++) {\n      var axisDim = axisDimList[i];\n\n      var axisInfo = this._targetAxisInfoMap.get(axisDim);\n\n      for (var j = 0; j < axisInfo.indexList.length; j++) {\n        var proxy = this.getAxisProxy(axisDim, axisInfo.indexList[j]);\n\n        if (proxy.hostedBy(this)) {\n          return proxy;\n        }\n\n        if (!firstProxy) {\n          firstProxy = proxy;\n        }\n      }\n    }\n\n    return firstProxy;\n  };\n\n  DataZoomModel.prototype.getRangePropMode = function () {\n    return this._rangePropMode.slice();\n  };\n\n  DataZoomModel.prototype.getOrient = function () {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(this._orient);\n    }\n\n    return this._orient;\n  };\n\n  DataZoomModel.type = 'dataZoom';\n  DataZoomModel.dependencies = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'series', 'toolbox'];\n  DataZoomModel.defaultOption = {\n    zlevel: 0,\n    z: 4,\n    filterMode: 'filter',\n    start: 0,\n    end: 100\n  };\n  return DataZoomModel;\n}(ComponentModel);\n\nfunction retrieveRawOption(option) {\n  var ret = {};\n  each(['start', 'end', 'startValue', 'endValue', 'throttle'], function (name) {\n    option.hasOwnProperty(name) && (ret[name] = option[name]);\n  });\n  return ret;\n}\n\nexport default DataZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport DataZoomModel from './DataZoomModel';\n\nvar SelectDataZoomModel = function (_super) {\n  __extends(SelectDataZoomModel, _super);\n\n  function SelectDataZoomModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SelectDataZoomModel.type;\n    return _this;\n  }\n\n  SelectDataZoomModel.type = 'dataZoom.select';\n  return SelectDataZoomModel;\n}(DataZoomModel);\n\nexport default SelectDataZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component';\n\nvar DataZoomView = function (_super) {\n  __extends(DataZoomView, _super);\n\n  function DataZoomView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = DataZoomView.type;\n    return _this;\n  }\n\n  DataZoomView.prototype.render = function (dataZoomModel, ecModel, api, payload) {\n    this.dataZoomModel = dataZoomModel;\n    this.ecModel = ecModel;\n    this.api = api;\n  };\n\n  DataZoomView.type = 'dataZoom';\n  return DataZoomView;\n}(ComponentView);\n\nexport default DataZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport DataZoomView from './DataZoomView';\n\nvar SelectDataZoomView = function (_super) {\n  __extends(SelectDataZoomView, _super);\n\n  function SelectDataZoomView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SelectDataZoomView.type;\n    return _this;\n  }\n\n  SelectDataZoomView.type = 'dataZoom.select';\n  return SelectDataZoomView;\n}(DataZoomView);\n\nexport default SelectDataZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as numberUtil from '../../util/number';\nimport sliderMove from '../helper/sliderMove';\nimport { unionAxisExtentFromData } from '../../coord/axisHelper';\nimport { ensureScaleRawExtentInfo } from '../../coord/scaleRawExtentInfo';\nimport { getAxisMainType, isCoordSupported } from './helper';\nimport { SINGLE_REFERRING } from '../../util/model';\nvar each = zrUtil.each;\nvar asc = numberUtil.asc;\n\nvar AxisProxy = function () {\n  function AxisProxy(dimName, axisIndex, dataZoomModel, ecModel) {\n    this._dimName = dimName;\n    this._axisIndex = axisIndex;\n    this.ecModel = ecModel;\n    this._dataZoomModel = dataZoomModel;\n  }\n\n  AxisProxy.prototype.hostedBy = function (dataZoomModel) {\n    return this._dataZoomModel === dataZoomModel;\n  };\n\n  AxisProxy.prototype.getDataValueWindow = function () {\n    return this._valueWindow.slice();\n  };\n\n  AxisProxy.prototype.getDataPercentWindow = function () {\n    return this._percentWindow.slice();\n  };\n\n  AxisProxy.prototype.getTargetSeriesModels = function () {\n    var seriesModels = [];\n    this.ecModel.eachSeries(function (seriesModel) {\n      if (isCoordSupported(seriesModel)) {\n        var axisMainType = getAxisMainType(this._dimName);\n        var axisModel = seriesModel.getReferringComponents(axisMainType, SINGLE_REFERRING).models[0];\n\n        if (axisModel && this._axisIndex === axisModel.componentIndex) {\n          seriesModels.push(seriesModel);\n        }\n      }\n    }, this);\n    return seriesModels;\n  };\n\n  AxisProxy.prototype.getAxisModel = function () {\n    return this.ecModel.getComponent(this._dimName + 'Axis', this._axisIndex);\n  };\n\n  AxisProxy.prototype.getMinMaxSpan = function () {\n    return zrUtil.clone(this._minMaxSpan);\n  };\n\n  AxisProxy.prototype.calculateDataWindow = function (opt) {\n    var dataExtent = this._dataExtent;\n    var axisModel = this.getAxisModel();\n    var scale = axisModel.axis.scale;\n\n    var rangePropMode = this._dataZoomModel.getRangePropMode();\n\n    var percentExtent = [0, 100];\n    var percentWindow = [];\n    var valueWindow = [];\n    var hasPropModeValue;\n    each(['start', 'end'], function (prop, idx) {\n      var boundPercent = opt[prop];\n      var boundValue = opt[prop + 'Value'];\n\n      if (rangePropMode[idx] === 'percent') {\n        boundPercent == null && (boundPercent = percentExtent[idx]);\n        boundValue = scale.parse(numberUtil.linearMap(boundPercent, percentExtent, dataExtent));\n      } else {\n        hasPropModeValue = true;\n        boundValue = boundValue == null ? dataExtent[idx] : scale.parse(boundValue);\n        boundPercent = numberUtil.linearMap(boundValue, dataExtent, percentExtent);\n      }\n\n      valueWindow[idx] = boundValue;\n      percentWindow[idx] = boundPercent;\n    });\n    asc(valueWindow);\n    asc(percentWindow);\n    var spans = this._minMaxSpan;\n    hasPropModeValue ? restrictSet(valueWindow, percentWindow, dataExtent, percentExtent, false) : restrictSet(percentWindow, valueWindow, percentExtent, dataExtent, true);\n\n    function restrictSet(fromWindow, toWindow, fromExtent, toExtent, toValue) {\n      var suffix = toValue ? 'Span' : 'ValueSpan';\n      sliderMove(0, fromWindow, fromExtent, 'all', spans['min' + suffix], spans['max' + suffix]);\n\n      for (var i = 0; i < 2; i++) {\n        toWindow[i] = numberUtil.linearMap(fromWindow[i], fromExtent, toExtent, true);\n        toValue && (toWindow[i] = scale.parse(toWindow[i]));\n      }\n    }\n\n    return {\n      valueWindow: valueWindow,\n      percentWindow: percentWindow\n    };\n  };\n\n  AxisProxy.prototype.reset = function (dataZoomModel) {\n    if (dataZoomModel !== this._dataZoomModel) {\n      return;\n    }\n\n    var targetSeries = this.getTargetSeriesModels();\n    this._dataExtent = calculateDataExtent(this, this._dimName, targetSeries);\n\n    this._updateMinMaxSpan();\n\n    var dataWindow = this.calculateDataWindow(dataZoomModel.settledOption);\n    this._valueWindow = dataWindow.valueWindow;\n    this._percentWindow = dataWindow.percentWindow;\n\n    this._setAxisModel();\n  };\n\n  AxisProxy.prototype.filterData = function (dataZoomModel, api) {\n    if (dataZoomModel !== this._dataZoomModel) {\n      return;\n    }\n\n    var axisDim = this._dimName;\n    var seriesModels = this.getTargetSeriesModels();\n    var filterMode = dataZoomModel.get('filterMode');\n    var valueWindow = this._valueWindow;\n\n    if (filterMode === 'none') {\n      return;\n    }\n\n    each(seriesModels, function (seriesModel) {\n      var seriesData = seriesModel.getData();\n      var dataDims = seriesData.mapDimensionsAll(axisDim);\n\n      if (!dataDims.length) {\n        return;\n      }\n\n      if (filterMode === 'weakFilter') {\n        seriesData.filterSelf(function (dataIndex) {\n          var leftOut;\n          var rightOut;\n          var hasValue;\n\n          for (var i = 0; i < dataDims.length; i++) {\n            var value = seriesData.get(dataDims[i], dataIndex);\n            var thisHasValue = !isNaN(value);\n            var thisLeftOut = value < valueWindow[0];\n            var thisRightOut = value > valueWindow[1];\n\n            if (thisHasValue && !thisLeftOut && !thisRightOut) {\n              return true;\n            }\n\n            thisHasValue && (hasValue = true);\n            thisLeftOut && (leftOut = true);\n            thisRightOut && (rightOut = true);\n          }\n\n          return hasValue && leftOut && rightOut;\n        });\n      } else {\n        each(dataDims, function (dim) {\n          if (filterMode === 'empty') {\n            seriesModel.setData(seriesData = seriesData.map(dim, function (value) {\n              return !isInWindow(value) ? NaN : value;\n            }));\n          } else {\n            var range = {};\n            range[dim] = valueWindow;\n            seriesData.selectRange(range);\n          }\n        });\n      }\n\n      each(dataDims, function (dim) {\n        seriesData.setApproximateExtent(valueWindow, dim);\n      });\n    });\n\n    function isInWindow(value) {\n      return value >= valueWindow[0] && value <= valueWindow[1];\n    }\n  };\n\n  AxisProxy.prototype._updateMinMaxSpan = function () {\n    var minMaxSpan = this._minMaxSpan = {};\n    var dataZoomModel = this._dataZoomModel;\n    var dataExtent = this._dataExtent;\n    each(['min', 'max'], function (minMax) {\n      var percentSpan = dataZoomModel.get(minMax + 'Span');\n      var valueSpan = dataZoomModel.get(minMax + 'ValueSpan');\n      valueSpan != null && (valueSpan = this.getAxisModel().axis.scale.parse(valueSpan));\n\n      if (valueSpan != null) {\n        percentSpan = numberUtil.linearMap(dataExtent[0] + valueSpan, dataExtent, [0, 100], true);\n      } else if (percentSpan != null) {\n        valueSpan = numberUtil.linearMap(percentSpan, [0, 100], dataExtent, true) - dataExtent[0];\n      }\n\n      minMaxSpan[minMax + 'Span'] = percentSpan;\n      minMaxSpan[minMax + 'ValueSpan'] = valueSpan;\n    }, this);\n  };\n\n  AxisProxy.prototype._setAxisModel = function () {\n    var axisModel = this.getAxisModel();\n    var percentWindow = this._percentWindow;\n    var valueWindow = this._valueWindow;\n\n    if (!percentWindow) {\n      return;\n    }\n\n    var precision = numberUtil.getPixelPrecision(valueWindow, [0, 500]);\n    precision = Math.min(precision, 20);\n    var rawExtentInfo = axisModel.axis.scale.rawExtentInfo;\n\n    if (percentWindow[0] !== 0) {\n      rawExtentInfo.setDeterminedMinMax('min', +valueWindow[0].toFixed(precision));\n    }\n\n    if (percentWindow[1] !== 100) {\n      rawExtentInfo.setDeterminedMinMax('max', +valueWindow[1].toFixed(precision));\n    }\n\n    rawExtentInfo.freeze();\n  };\n\n  return AxisProxy;\n}();\n\nfunction calculateDataExtent(axisProxy, axisDim, seriesModels) {\n  var dataExtent = [Infinity, -Infinity];\n  each(seriesModels, function (seriesModel) {\n    unionAxisExtentFromData(dataExtent, seriesModel.getData(), axisDim);\n  });\n  var axisModel = axisProxy.getAxisModel();\n  var rawExtentResult = ensureScaleRawExtentInfo(axisModel.axis.scale, axisModel, dataExtent).calculate();\n  return [rawExtentResult.min, rawExtentResult.max];\n}\n\nexport default AxisProxy;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, each } from 'zrender/lib/core/util';\nimport { getAxisMainType } from './helper';\nimport AxisProxy from './AxisProxy';\nvar dataZoomProcessor = {\n  getTargetSeries: function (ecModel) {\n    function eachAxisModel(cb) {\n      ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n        dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n          var axisModel = ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n          cb(axisDim, axisIndex, axisModel, dataZoomModel);\n        });\n      });\n    }\n\n    eachAxisModel(function (axisDim, axisIndex, axisModel, dataZoomModel) {\n      axisModel.__dzAxisProxy = null;\n    });\n    var proxyList = [];\n    eachAxisModel(function (axisDim, axisIndex, axisModel, dataZoomModel) {\n      if (!axisModel.__dzAxisProxy) {\n        axisModel.__dzAxisProxy = new AxisProxy(axisDim, axisIndex, dataZoomModel, ecModel);\n        proxyList.push(axisModel.__dzAxisProxy);\n      }\n    });\n    var seriesModelMap = createHashMap();\n    each(proxyList, function (axisProxy) {\n      each(axisProxy.getTargetSeriesModels(), function (seriesModel) {\n        seriesModelMap.set(seriesModel.uid, seriesModel);\n      });\n    });\n    return seriesModelMap;\n  },\n  overallReset: function (ecModel, api) {\n    ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n      dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n        dataZoomModel.getAxisProxy(axisDim, axisIndex).reset(dataZoomModel);\n      });\n      dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n        dataZoomModel.getAxisProxy(axisDim, axisIndex).filterData(dataZoomModel, api);\n      });\n    });\n    ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n      var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\n\n      if (axisProxy) {\n        var percentRange = axisProxy.getDataPercentWindow();\n        var valueRange = axisProxy.getDataValueWindow();\n        dataZoomModel.setCalculatedRange({\n          start: percentRange[0],\n          end: percentRange[1],\n          startValue: valueRange[0],\n          endValue: valueRange[1]\n        });\n      }\n    });\n  }\n};\nexport default dataZoomProcessor;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { findEffectedDataZooms } from './helper';\nimport { each } from 'zrender/lib/core/util';\nexport default function installDataZoomAction(registers) {\n  registers.registerAction('dataZoom', function (payload, ecModel) {\n    var effectedModels = findEffectedDataZooms(ecModel, payload);\n    each(effectedModels, function (dataZoomModel) {\n      dataZoomModel.setRawRange({\n        start: payload.start,\n        end: payload.end,\n        startValue: payload.startValue,\n        endValue: payload.endValue\n      });\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport dataZoomProcessor from './dataZoomProcessor';\nimport installDataZoomAction from './dataZoomAction';\nvar installed = false;\nexport default function installCommon(registers) {\n  if (installed) {\n    return;\n  }\n\n  installed = true;\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.FILTER, dataZoomProcessor);\n  installDataZoomAction(registers);\n  registers.registerSubTypeDefaulter('dataZoom', function () {\n    return 'slider';\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SelectZoomModel from './SelectZoomModel';\nimport SelectZoomView from './SelectZoomView';\nimport installCommon from './installCommon';\nexport function install(registers) {\n  registers.registerComponentModel(SelectZoomModel);\n  registers.registerComponentView(SelectZoomView);\n  installCommon(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar ToolboxFeature = function () {\n  function ToolboxFeature() {}\n\n  return ToolboxFeature;\n}();\n\nexport { ToolboxFeature };\nvar features = {};\nexport function registerFeature(name, ctor) {\n  features[name] = ctor;\n}\nexport function getFeature(name) {\n  return features[name];\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as featureManager from './featureManager';\nimport ComponentModel from '../../model/Component';\n\nvar ToolboxModel = function (_super) {\n  __extends(ToolboxModel, _super);\n\n  function ToolboxModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ToolboxModel.type;\n    return _this;\n  }\n\n  ToolboxModel.prototype.optionUpdated = function () {\n    _super.prototype.optionUpdated.apply(this, arguments);\n\n    var ecModel = this.ecModel;\n    zrUtil.each(this.option.feature, function (featureOpt, featureName) {\n      var Feature = featureManager.getFeature(featureName);\n\n      if (Feature) {\n        if (Feature.getDefaultOption) {\n          Feature.defaultOption = Feature.getDefaultOption(ecModel);\n        }\n\n        zrUtil.merge(featureOpt, Feature.defaultOption);\n      }\n    });\n  };\n\n  ToolboxModel.type = 'toolbox';\n  ToolboxModel.layoutMode = {\n    type: 'box',\n    ignoreSize: true\n  };\n  ToolboxModel.defaultOption = {\n    show: true,\n    z: 6,\n    zlevel: 0,\n    orient: 'horizontal',\n    left: 'right',\n    top: 'top',\n    backgroundColor: 'transparent',\n    borderColor: '#ccc',\n    borderRadius: 0,\n    borderWidth: 0,\n    padding: 5,\n    itemSize: 15,\n    itemGap: 8,\n    showTitle: true,\n    iconStyle: {\n      borderColor: '#666',\n      color: 'none'\n    },\n    emphasis: {\n      iconStyle: {\n        borderColor: '#3E98C5'\n      }\n    },\n    tooltip: {\n      show: false\n    }\n  };\n  return ToolboxModel;\n}(ComponentModel);\n\nexport default ToolboxModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { getLayoutRect, box as layoutBox, positionElement } from '../../util/layout';\nimport * as formatUtil from '../../util/format';\nimport * as graphic from '../../util/graphic';\nexport function layout(group, componentModel, api) {\n  var boxLayoutParams = componentModel.getBoxLayoutParams();\n  var padding = componentModel.get('padding');\n  var viewportSize = {\n    width: api.getWidth(),\n    height: api.getHeight()\n  };\n  var rect = getLayoutRect(boxLayoutParams, viewportSize, padding);\n  layoutBox(componentModel.get('orient'), group, componentModel.get('itemGap'), rect.width, rect.height);\n  positionElement(group, boxLayoutParams, viewportSize, padding);\n}\nexport function makeBackground(rect, componentModel) {\n  var padding = formatUtil.normalizeCssArray(componentModel.get('padding'));\n  var style = componentModel.getItemStyle(['color', 'opacity']);\n  style.fill = componentModel.get('backgroundColor');\n  rect = new graphic.Rect({\n    shape: {\n      x: rect.x - padding[3],\n      y: rect.y - padding[0],\n      width: rect.width + padding[1] + padding[3],\n      height: rect.height + padding[0] + padding[2],\n      r: componentModel.get('borderRadius')\n    },\n    style: style,\n    silent: true,\n    z2: -1\n  });\n  return rect;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as textContain from 'zrender/lib/contain/text';\nimport * as graphic from '../../util/graphic';\nimport { enterEmphasis, leaveEmphasis } from '../../util/states';\nimport Model from '../../model/Model';\nimport DataDiffer from '../../data/DataDiffer';\nimport * as listComponentHelper from '../helper/listComponent';\nimport ComponentView from '../../view/Component';\nimport { ToolboxFeature, getFeature } from './featureManager';\nimport { getUID } from '../../util/component';\nimport ZRText from 'zrender/lib/graphic/Text';\n\nvar ToolboxView = function (_super) {\n  __extends(ToolboxView, _super);\n\n  function ToolboxView() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  ToolboxView.prototype.render = function (toolboxModel, ecModel, api, payload) {\n    var group = this.group;\n    group.removeAll();\n\n    if (!toolboxModel.get('show')) {\n      return;\n    }\n\n    var itemSize = +toolboxModel.get('itemSize');\n    var featureOpts = toolboxModel.get('feature') || {};\n    var features = this._features || (this._features = {});\n    var featureNames = [];\n    zrUtil.each(featureOpts, function (opt, name) {\n      featureNames.push(name);\n    });\n    new DataDiffer(this._featureNames || [], featureNames).add(processFeature).update(processFeature).remove(zrUtil.curry(processFeature, null)).execute();\n    this._featureNames = featureNames;\n\n    function processFeature(newIndex, oldIndex) {\n      var featureName = featureNames[newIndex];\n      var oldName = featureNames[oldIndex];\n      var featureOpt = featureOpts[featureName];\n      var featureModel = new Model(featureOpt, toolboxModel, toolboxModel.ecModel);\n      var feature;\n\n      if (payload && payload.newTitle != null && payload.featureName === featureName) {\n        featureOpt.title = payload.newTitle;\n      }\n\n      if (featureName && !oldName) {\n        if (isUserFeatureName(featureName)) {\n          feature = {\n            onclick: featureModel.option.onclick,\n            featureName: featureName\n          };\n        } else {\n          var Feature = getFeature(featureName);\n\n          if (!Feature) {\n            return;\n          }\n\n          feature = new Feature();\n        }\n\n        features[featureName] = feature;\n      } else {\n        feature = features[oldName];\n\n        if (!feature) {\n          return;\n        }\n      }\n\n      feature.uid = getUID('toolbox-feature');\n      feature.model = featureModel;\n      feature.ecModel = ecModel;\n      feature.api = api;\n\n      if (feature instanceof ToolboxFeature) {\n        if (!featureName && oldName) {\n          feature.dispose && feature.dispose(ecModel, api);\n          return;\n        }\n\n        if (!featureModel.get('show') || feature.unusable) {\n          feature.remove && feature.remove(ecModel, api);\n          return;\n        }\n      }\n\n      createIconPaths(featureModel, feature, featureName);\n\n      featureModel.setIconStatus = function (iconName, status) {\n        var option = this.option;\n        var iconPaths = this.iconPaths;\n        option.iconStatus = option.iconStatus || {};\n        option.iconStatus[iconName] = status;\n\n        if (iconPaths[iconName]) {\n          (status === 'emphasis' ? enterEmphasis : leaveEmphasis)(iconPaths[iconName]);\n        }\n      };\n\n      if (feature instanceof ToolboxFeature) {\n        if (feature.render) {\n          feature.render(featureModel, ecModel, api, payload);\n        }\n      }\n    }\n\n    function createIconPaths(featureModel, feature, featureName) {\n      var iconStyleModel = featureModel.getModel('iconStyle');\n      var iconStyleEmphasisModel = featureModel.getModel(['emphasis', 'iconStyle']);\n      var icons = feature instanceof ToolboxFeature && feature.getIcons ? feature.getIcons() : featureModel.get('icon');\n      var titles = featureModel.get('title') || {};\n      var iconsMap;\n      var titlesMap;\n\n      if (typeof icons === 'string') {\n        iconsMap = {};\n        iconsMap[featureName] = icons;\n      } else {\n        iconsMap = icons;\n      }\n\n      if (typeof titles === 'string') {\n        titlesMap = {};\n        titlesMap[featureName] = titles;\n      } else {\n        titlesMap = titles;\n      }\n\n      var iconPaths = featureModel.iconPaths = {};\n      zrUtil.each(iconsMap, function (iconStr, iconName) {\n        var path = graphic.createIcon(iconStr, {}, {\n          x: -itemSize / 2,\n          y: -itemSize / 2,\n          width: itemSize,\n          height: itemSize\n        });\n        path.setStyle(iconStyleModel.getItemStyle());\n        var pathEmphasisState = path.ensureState('emphasis');\n        pathEmphasisState.style = iconStyleEmphasisModel.getItemStyle();\n        var textContent = new ZRText({\n          style: {\n            text: titlesMap[iconName],\n            align: iconStyleEmphasisModel.get('textAlign'),\n            borderRadius: iconStyleEmphasisModel.get('textBorderRadius'),\n            padding: iconStyleEmphasisModel.get('textPadding'),\n            fill: null\n          },\n          ignore: true\n        });\n        path.setTextContent(textContent);\n        var tooltipModel = toolboxModel.getModel('tooltip');\n\n        if (tooltipModel && tooltipModel.get('show')) {\n          path.tooltip = zrUtil.extend({\n            content: titlesMap[iconName],\n            formatter: tooltipModel.get('formatter', true) || function () {\n              return titlesMap[iconName];\n            },\n            formatterParams: {\n              componentType: 'toolbox',\n              name: iconName,\n              title: titlesMap[iconName],\n              $vars: ['name', 'title']\n            },\n            position: tooltipModel.get('position', true) || 'bottom'\n          }, tooltipModel.option);\n        }\n\n        path.__title = titlesMap[iconName];\n        path.on('mouseover', function () {\n          var hoverStyle = iconStyleEmphasisModel.getItemStyle();\n          var defaultTextPosition = toolboxModel.get('orient') === 'vertical' ? toolboxModel.get('right') == null ? 'right' : 'left' : toolboxModel.get('bottom') == null ? 'bottom' : 'top';\n          textContent.setStyle({\n            fill: iconStyleEmphasisModel.get('textFill') || hoverStyle.fill || hoverStyle.stroke || '#000',\n            backgroundColor: iconStyleEmphasisModel.get('textBackgroundColor')\n          });\n          path.setTextConfig({\n            position: iconStyleEmphasisModel.get('textPosition') || defaultTextPosition\n          });\n          textContent.ignore = !toolboxModel.get('showTitle');\n          enterEmphasis(this);\n        }).on('mouseout', function () {\n          if (featureModel.get(['iconStatus', iconName]) !== 'emphasis') {\n            leaveEmphasis(this);\n          }\n\n          textContent.hide();\n        });\n        (featureModel.get(['iconStatus', iconName]) === 'emphasis' ? enterEmphasis : leaveEmphasis)(path);\n        group.add(path);\n        path.on('click', zrUtil.bind(feature.onclick, feature, ecModel, api, iconName));\n        iconPaths[iconName] = path;\n      });\n    }\n\n    listComponentHelper.layout(group, toolboxModel, api);\n    group.add(listComponentHelper.makeBackground(group.getBoundingRect(), toolboxModel));\n    group.eachChild(function (icon) {\n      var titleText = icon.__title;\n      var emphasisState = icon.ensureState('emphasis');\n      var emphasisTextConfig = emphasisState.textConfig || (emphasisState.textConfig = {});\n      var textContent = icon.getTextContent();\n      var emphasisTextState = textContent && textContent.states.emphasis;\n\n      if (emphasisTextState && !zrUtil.isFunction(emphasisTextState) && titleText) {\n        var emphasisTextStyle = emphasisTextState.style || (emphasisTextState.style = {});\n        var rect = textContain.getBoundingRect(titleText, ZRText.makeFont(emphasisTextStyle));\n        var offsetX = icon.x + group.x;\n        var offsetY = icon.y + group.y + itemSize;\n        var needPutOnTop = false;\n\n        if (offsetY + rect.height > api.getHeight()) {\n          emphasisTextConfig.position = 'top';\n          needPutOnTop = true;\n        }\n\n        var topOffset = needPutOnTop ? -5 - rect.height : itemSize + 8;\n\n        if (offsetX + rect.width / 2 > api.getWidth()) {\n          emphasisTextConfig.position = ['100%', topOffset];\n          emphasisTextStyle.align = 'right';\n        } else if (offsetX - rect.width / 2 < 0) {\n          emphasisTextConfig.position = [0, topOffset];\n          emphasisTextStyle.align = 'left';\n        }\n      }\n    });\n  };\n\n  ToolboxView.prototype.updateView = function (toolboxModel, ecModel, api, payload) {\n    zrUtil.each(this._features, function (feature) {\n      feature instanceof ToolboxFeature && feature.updateView && feature.updateView(feature.model, ecModel, api, payload);\n    });\n  };\n\n  ToolboxView.prototype.remove = function (ecModel, api) {\n    zrUtil.each(this._features, function (feature) {\n      feature instanceof ToolboxFeature && feature.remove && feature.remove(ecModel, api);\n    });\n    this.group.removeAll();\n  };\n\n  ToolboxView.prototype.dispose = function (ecModel, api) {\n    zrUtil.each(this._features, function (feature) {\n      feature instanceof ToolboxFeature && feature.dispose && feature.dispose(ecModel, api);\n    });\n  };\n\n  ToolboxView.type = 'toolbox';\n  return ToolboxView;\n}(ComponentView);\n\nfunction isUserFeatureName(featureName) {\n  return featureName.indexOf('my') === 0;\n}\n\nexport default ToolboxView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport env from 'zrender/lib/core/env';\nimport { ToolboxFeature } from '../featureManager';\n\nvar SaveAsImage = function (_super) {\n  __extends(SaveAsImage, _super);\n\n  function SaveAsImage() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  SaveAsImage.prototype.onclick = function (ecModel, api) {\n    var model = this.model;\n    var title = model.get('name') || ecModel.get('title.0.text') || 'echarts';\n    var isSvg = api.getZr().painter.getType() === 'svg';\n    var type = isSvg ? 'svg' : model.get('type', true) || 'png';\n    var url = api.getConnectedDataURL({\n      type: type,\n      backgroundColor: model.get('backgroundColor', true) || ecModel.get('backgroundColor') || '#fff',\n      connectedBackgroundColor: model.get('connectedBackgroundColor'),\n      excludeComponents: model.get('excludeComponents'),\n      pixelRatio: model.get('pixelRatio')\n    });\n\n    if (typeof MouseEvent === 'function' && (env.browser.newEdge || !env.browser.ie && !env.browser.edge)) {\n      var $a = document.createElement('a');\n      $a.download = title + '.' + type;\n      $a.target = '_blank';\n      $a.href = url;\n      var evt = new MouseEvent('click', {\n        view: document.defaultView,\n        bubbles: true,\n        cancelable: false\n      });\n      $a.dispatchEvent(evt);\n    } else {\n      if (window.navigator.msSaveOrOpenBlob || isSvg) {\n        var parts = url.split(',');\n        var base64Encoded = parts[0].indexOf('base64') > -1;\n        var bstr = isSvg ? decodeURIComponent(parts[1]) : parts[1];\n        base64Encoded && (bstr = atob(bstr));\n        var filename = title + '.' + type;\n\n        if (window.navigator.msSaveOrOpenBlob) {\n          var n = bstr.length;\n          var u8arr = new Uint8Array(n);\n\n          while (n--) {\n            u8arr[n] = bstr.charCodeAt(n);\n          }\n\n          var blob = new Blob([u8arr]);\n          window.navigator.msSaveOrOpenBlob(blob, filename);\n        } else {\n          var frame = document.createElement('iframe');\n          document.body.appendChild(frame);\n          var cw = frame.contentWindow;\n          var doc = cw.document;\n          doc.open('image/svg+xml', 'replace');\n          doc.write(bstr);\n          doc.close();\n          cw.focus();\n          doc.execCommand('SaveAs', true, filename);\n          document.body.removeChild(frame);\n        }\n      } else {\n        var lang = model.get('lang');\n        var html = '' + '<body style=\"margin:0;\">' + '<img src=\"' + url + '\" style=\"max-width:100%;\" title=\"' + (lang && lang[0] || '') + '\" />' + '</body>';\n        var tab = window.open();\n        tab.document.write(html);\n        tab.document.title = title;\n      }\n    }\n  };\n\n  SaveAsImage.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      icon: 'M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0',\n      title: ecModel.getLocale(['toolbox', 'saveAsImage', 'title']),\n      type: 'png',\n      connectedBackgroundColor: '#fff',\n      name: '',\n      excludeComponents: ['toolbox'],\n      pixelRatio: 1,\n      lang: ecModel.getLocale(['toolbox', 'saveAsImage', 'lang'])\n    };\n    return defaultOption;\n  };\n\n  return SaveAsImage;\n}(ToolboxFeature);\n\nSaveAsImage.prototype.unusable = !env.canvasSupported;\nexport default SaveAsImage;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as echarts from '../../../core/echarts';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { ToolboxFeature } from '../featureManager';\nimport { SINGLE_REFERRING } from '../../../util/model';\nvar INNER_STACK_KEYWORD = '__ec_magicType_stack__';\nvar ICON_TYPES = ['line', 'bar', 'stack'];\nvar TITLE_TYPES = ['line', 'bar', 'stack', 'tiled'];\nvar radioTypes = [['line', 'bar'], ['stack']];\n\nvar MagicType = function (_super) {\n  __extends(MagicType, _super);\n\n  function MagicType() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  MagicType.prototype.getIcons = function () {\n    var model = this.model;\n    var availableIcons = model.get('icon');\n    var icons = {};\n    zrUtil.each(model.get('type'), function (type) {\n      if (availableIcons[type]) {\n        icons[type] = availableIcons[type];\n      }\n    });\n    return icons;\n  };\n\n  MagicType.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      type: [],\n      icon: {\n        line: 'M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4',\n        bar: 'M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7',\n        stack: 'M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z'\n      },\n      title: ecModel.getLocale(['toolbox', 'magicType', 'title']),\n      option: {},\n      seriesIndex: {}\n    };\n    return defaultOption;\n  };\n\n  MagicType.prototype.onclick = function (ecModel, api, type) {\n    var model = this.model;\n    var seriesIndex = model.get(['seriesIndex', type]);\n\n    if (!seriesOptGenreator[type]) {\n      return;\n    }\n\n    var newOption = {\n      series: []\n    };\n\n    var generateNewSeriesTypes = function (seriesModel) {\n      var seriesType = seriesModel.subType;\n      var seriesId = seriesModel.id;\n      var newSeriesOpt = seriesOptGenreator[type](seriesType, seriesId, seriesModel, model);\n\n      if (newSeriesOpt) {\n        zrUtil.defaults(newSeriesOpt, seriesModel.option);\n        newOption.series.push(newSeriesOpt);\n      }\n\n      var coordSys = seriesModel.coordinateSystem;\n\n      if (coordSys && coordSys.type === 'cartesian2d' && (type === 'line' || type === 'bar')) {\n        var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\n\n        if (categoryAxis) {\n          var axisDim = categoryAxis.dim;\n          var axisType = axisDim + 'Axis';\n          var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\n          var axisIndex = axisModel.componentIndex;\n          newOption[axisType] = newOption[axisType] || [];\n\n          for (var i = 0; i <= axisIndex; i++) {\n            newOption[axisType][axisIndex] = newOption[axisType][axisIndex] || {};\n          }\n\n          newOption[axisType][axisIndex].boundaryGap = type === 'bar';\n        }\n      }\n    };\n\n    zrUtil.each(radioTypes, function (radio) {\n      if (zrUtil.indexOf(radio, type) >= 0) {\n        zrUtil.each(radio, function (item) {\n          model.setIconStatus(item, 'normal');\n        });\n      }\n    });\n    model.setIconStatus(type, 'emphasis');\n    ecModel.eachComponent({\n      mainType: 'series',\n      query: seriesIndex == null ? null : {\n        seriesIndex: seriesIndex\n      }\n    }, generateNewSeriesTypes);\n    var newTitle;\n\n    if (type === 'stack') {\n      newTitle = zrUtil.merge({\n        stack: model.option.title.tiled,\n        tiled: model.option.title.stack\n      }, model.option.title);\n    }\n\n    api.dispatchAction({\n      type: 'changeMagicType',\n      currentType: type,\n      newOption: newOption,\n      newTitle: newTitle,\n      featureName: 'magicType'\n    });\n  };\n\n  return MagicType;\n}(ToolboxFeature);\n\nvar seriesOptGenreator = {\n  'line': function (seriesType, seriesId, seriesModel, model) {\n    if (seriesType === 'bar') {\n      return zrUtil.merge({\n        id: seriesId,\n        type: 'line',\n        data: seriesModel.get('data'),\n        stack: seriesModel.get('stack'),\n        markPoint: seriesModel.get('markPoint'),\n        markLine: seriesModel.get('markLine')\n      }, model.get(['option', 'line']) || {}, true);\n    }\n  },\n  'bar': function (seriesType, seriesId, seriesModel, model) {\n    if (seriesType === 'line') {\n      return zrUtil.merge({\n        id: seriesId,\n        type: 'bar',\n        data: seriesModel.get('data'),\n        stack: seriesModel.get('stack'),\n        markPoint: seriesModel.get('markPoint'),\n        markLine: seriesModel.get('markLine')\n      }, model.get(['option', 'bar']) || {}, true);\n    }\n  },\n  'stack': function (seriesType, seriesId, seriesModel, model) {\n    var isStack = seriesModel.get('stack') === INNER_STACK_KEYWORD;\n\n    if (seriesType === 'line' || seriesType === 'bar') {\n      model.setIconStatus('stack', isStack ? 'normal' : 'emphasis');\n      return zrUtil.merge({\n        id: seriesId,\n        stack: isStack ? '' : INNER_STACK_KEYWORD\n      }, model.get(['option', 'stack']) || {}, true);\n    }\n  }\n};\necharts.registerAction({\n  type: 'changeMagicType',\n  event: 'magicTypeChanged',\n  update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n  ecModel.mergeOption(payload.newOption);\n});\nexport default MagicType;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as echarts from '../../../core/echarts';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { ToolboxFeature } from '../featureManager';\nimport { addEventListener } from 'zrender/lib/core/event';\nvar BLOCK_SPLITER = new Array(60).join('-');\nvar ITEM_SPLITER = '\\t';\n\nfunction groupSeries(ecModel) {\n  var seriesGroupByCategoryAxis = {};\n  var otherSeries = [];\n  var meta = [];\n  ecModel.eachRawSeries(function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys && (coordSys.type === 'cartesian2d' || coordSys.type === 'polar')) {\n      var baseAxis = coordSys.getBaseAxis();\n\n      if (baseAxis.type === 'category') {\n        var key = baseAxis.dim + '_' + baseAxis.index;\n\n        if (!seriesGroupByCategoryAxis[key]) {\n          seriesGroupByCategoryAxis[key] = {\n            categoryAxis: baseAxis,\n            valueAxis: coordSys.getOtherAxis(baseAxis),\n            series: []\n          };\n          meta.push({\n            axisDim: baseAxis.dim,\n            axisIndex: baseAxis.index\n          });\n        }\n\n        seriesGroupByCategoryAxis[key].series.push(seriesModel);\n      } else {\n        otherSeries.push(seriesModel);\n      }\n    } else {\n      otherSeries.push(seriesModel);\n    }\n  });\n  return {\n    seriesGroupByCategoryAxis: seriesGroupByCategoryAxis,\n    other: otherSeries,\n    meta: meta\n  };\n}\n\nfunction assembleSeriesWithCategoryAxis(groups) {\n  var tables = [];\n  zrUtil.each(groups, function (group, key) {\n    var categoryAxis = group.categoryAxis;\n    var valueAxis = group.valueAxis;\n    var valueAxisDim = valueAxis.dim;\n    var headers = [' '].concat(zrUtil.map(group.series, function (series) {\n      return series.name;\n    }));\n    var columns = [categoryAxis.model.getCategories()];\n    zrUtil.each(group.series, function (series) {\n      var rawData = series.getRawData();\n      columns.push(series.getRawData().mapArray(rawData.mapDimension(valueAxisDim), function (val) {\n        return val;\n      }));\n    });\n    var lines = [headers.join(ITEM_SPLITER)];\n\n    for (var i = 0; i < columns[0].length; i++) {\n      var items = [];\n\n      for (var j = 0; j < columns.length; j++) {\n        items.push(columns[j][i]);\n      }\n\n      lines.push(items.join(ITEM_SPLITER));\n    }\n\n    tables.push(lines.join('\\n'));\n  });\n  return tables.join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\n}\n\nfunction assembleOtherSeries(series) {\n  return zrUtil.map(series, function (series) {\n    var data = series.getRawData();\n    var lines = [series.name];\n    var vals = [];\n    data.each(data.dimensions, function () {\n      var argLen = arguments.length;\n      var dataIndex = arguments[argLen - 1];\n      var name = data.getName(dataIndex);\n\n      for (var i = 0; i < argLen - 1; i++) {\n        vals[i] = arguments[i];\n      }\n\n      lines.push((name ? name + ITEM_SPLITER : '') + vals.join(ITEM_SPLITER));\n    });\n    return lines.join('\\n');\n  }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\n}\n\nfunction getContentFromModel(ecModel) {\n  var result = groupSeries(ecModel);\n  return {\n    value: zrUtil.filter([assembleSeriesWithCategoryAxis(result.seriesGroupByCategoryAxis), assembleOtherSeries(result.other)], function (str) {\n      return !!str.replace(/[\\n\\t\\s]/g, '');\n    }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n'),\n    meta: result.meta\n  };\n}\n\nfunction trim(str) {\n  return str.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n}\n\nfunction isTSVFormat(block) {\n  var firstLine = block.slice(0, block.indexOf('\\n'));\n\n  if (firstLine.indexOf(ITEM_SPLITER) >= 0) {\n    return true;\n  }\n}\n\nvar itemSplitRegex = new RegExp('[' + ITEM_SPLITER + ']+', 'g');\n\nfunction parseTSVContents(tsv) {\n  var tsvLines = tsv.split(/\\n+/g);\n  var headers = trim(tsvLines.shift()).split(itemSplitRegex);\n  var categories = [];\n  var series = zrUtil.map(headers, function (header) {\n    return {\n      name: header,\n      data: []\n    };\n  });\n\n  for (var i = 0; i < tsvLines.length; i++) {\n    var items = trim(tsvLines[i]).split(itemSplitRegex);\n    categories.push(items.shift());\n\n    for (var j = 0; j < items.length; j++) {\n      series[j] && (series[j].data[i] = items[j]);\n    }\n  }\n\n  return {\n    series: series,\n    categories: categories\n  };\n}\n\nfunction parseListContents(str) {\n  var lines = str.split(/\\n+/g);\n  var seriesName = trim(lines.shift());\n  var data = [];\n\n  for (var i = 0; i < lines.length; i++) {\n    var line = trim(lines[i]);\n\n    if (!line) {\n      continue;\n    }\n\n    var items = line.split(itemSplitRegex);\n    var name_1 = '';\n    var value = void 0;\n    var hasName = false;\n\n    if (isNaN(items[0])) {\n      hasName = true;\n      name_1 = items[0];\n      items = items.slice(1);\n      data[i] = {\n        name: name_1,\n        value: []\n      };\n      value = data[i].value;\n    } else {\n      value = data[i] = [];\n    }\n\n    for (var j = 0; j < items.length; j++) {\n      value.push(+items[j]);\n    }\n\n    if (value.length === 1) {\n      hasName ? data[i].value = value[0] : data[i] = value[0];\n    }\n  }\n\n  return {\n    name: seriesName,\n    data: data\n  };\n}\n\nfunction parseContents(str, blockMetaList) {\n  var blocks = str.split(new RegExp('\\n*' + BLOCK_SPLITER + '\\n*', 'g'));\n  var newOption = {\n    series: []\n  };\n  zrUtil.each(blocks, function (block, idx) {\n    if (isTSVFormat(block)) {\n      var result = parseTSVContents(block);\n      var blockMeta = blockMetaList[idx];\n      var axisKey = blockMeta.axisDim + 'Axis';\n\n      if (blockMeta) {\n        newOption[axisKey] = newOption[axisKey] || [];\n        newOption[axisKey][blockMeta.axisIndex] = {\n          data: result.categories\n        };\n        newOption.series = newOption.series.concat(result.series);\n      }\n    } else {\n      var result = parseListContents(block);\n      newOption.series.push(result);\n    }\n  });\n  return newOption;\n}\n\nvar DataView = function (_super) {\n  __extends(DataView, _super);\n\n  function DataView() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  DataView.prototype.onclick = function (ecModel, api) {\n    var container = api.getDom();\n    var model = this.model;\n\n    if (this._dom) {\n      container.removeChild(this._dom);\n    }\n\n    var root = document.createElement('div');\n    root.style.cssText = 'position:absolute;left:5px;top:5px;bottom:5px;right:5px;';\n    root.style.backgroundColor = model.get('backgroundColor') || '#fff';\n    var header = document.createElement('h4');\n    var lang = model.get('lang') || [];\n    header.innerHTML = lang[0] || model.get('title');\n    header.style.cssText = 'margin: 10px 20px;';\n    header.style.color = model.get('textColor');\n    var viewMain = document.createElement('div');\n    var textarea = document.createElement('textarea');\n    viewMain.style.cssText = 'display:block;width:100%;overflow:auto;';\n    var optionToContent = model.get('optionToContent');\n    var contentToOption = model.get('contentToOption');\n    var result = getContentFromModel(ecModel);\n\n    if (typeof optionToContent === 'function') {\n      var htmlOrDom = optionToContent(api.getOption());\n\n      if (typeof htmlOrDom === 'string') {\n        viewMain.innerHTML = htmlOrDom;\n      } else if (zrUtil.isDom(htmlOrDom)) {\n        viewMain.appendChild(htmlOrDom);\n      }\n    } else {\n      viewMain.appendChild(textarea);\n      textarea.readOnly = model.get('readOnly');\n      textarea.style.cssText = 'width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;';\n      textarea.style.color = model.get('textColor');\n      textarea.style.borderColor = model.get('textareaBorderColor');\n      textarea.style.backgroundColor = model.get('textareaColor');\n      textarea.value = result.value;\n    }\n\n    var blockMetaList = result.meta;\n    var buttonContainer = document.createElement('div');\n    buttonContainer.style.cssText = 'position:absolute;bottom:0;left:0;right:0;';\n    var buttonStyle = 'float:right;margin-right:20px;border:none;' + 'cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px';\n    var closeButton = document.createElement('div');\n    var refreshButton = document.createElement('div');\n    buttonStyle += ';background-color:' + model.get('buttonColor');\n    buttonStyle += ';color:' + model.get('buttonTextColor');\n    var self = this;\n\n    function close() {\n      container.removeChild(root);\n      self._dom = null;\n    }\n\n    addEventListener(closeButton, 'click', close);\n    addEventListener(refreshButton, 'click', function () {\n      if (contentToOption == null && optionToContent != null || contentToOption != null && optionToContent == null) {\n        if (process.env.NODE_ENV !== 'production') {\n          console.warn('It seems you have just provided one of `contentToOption` and `optionToContent` functions but missed the other one. Data change is ignored.');\n        }\n\n        close();\n        return;\n      }\n\n      var newOption;\n\n      try {\n        if (typeof contentToOption === 'function') {\n          newOption = contentToOption(viewMain, api.getOption());\n        } else {\n          newOption = parseContents(textarea.value, blockMetaList);\n        }\n      } catch (e) {\n        close();\n        throw new Error('Data view format error ' + e);\n      }\n\n      if (newOption) {\n        api.dispatchAction({\n          type: 'changeDataView',\n          newOption: newOption\n        });\n      }\n\n      close();\n    });\n    closeButton.innerHTML = lang[1];\n    refreshButton.innerHTML = lang[2];\n    refreshButton.style.cssText = buttonStyle;\n    closeButton.style.cssText = buttonStyle;\n    !model.get('readOnly') && buttonContainer.appendChild(refreshButton);\n    buttonContainer.appendChild(closeButton);\n    root.appendChild(header);\n    root.appendChild(viewMain);\n    root.appendChild(buttonContainer);\n    viewMain.style.height = container.clientHeight - 80 + 'px';\n    container.appendChild(root);\n    this._dom = root;\n  };\n\n  DataView.prototype.remove = function (ecModel, api) {\n    this._dom && api.getDom().removeChild(this._dom);\n  };\n\n  DataView.prototype.dispose = function (ecModel, api) {\n    this.remove(ecModel, api);\n  };\n\n  DataView.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      readOnly: false,\n      optionToContent: null,\n      contentToOption: null,\n      icon: 'M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28',\n      title: ecModel.getLocale(['toolbox', 'dataView', 'title']),\n      lang: ecModel.getLocale(['toolbox', 'dataView', 'lang']),\n      backgroundColor: '#fff',\n      textColor: '#000',\n      textareaColor: '#fff',\n      textareaBorderColor: '#333',\n      buttonColor: '#c23531',\n      buttonTextColor: '#fff'\n    };\n    return defaultOption;\n  };\n\n  return DataView;\n}(ToolboxFeature);\n\nfunction tryMergeDataOption(newData, originalData) {\n  return zrUtil.map(newData, function (newVal, idx) {\n    var original = originalData && originalData[idx];\n\n    if (zrUtil.isObject(original) && !zrUtil.isArray(original)) {\n      var newValIsObject = zrUtil.isObject(newVal) && !zrUtil.isArray(newVal);\n\n      if (!newValIsObject) {\n        newVal = {\n          value: newVal\n        };\n      }\n\n      var shouldDeleteName = original.name != null && newVal.name == null;\n      newVal = zrUtil.defaults(newVal, original);\n      shouldDeleteName && delete newVal.name;\n      return newVal;\n    } else {\n      return newVal;\n    }\n  });\n}\n\necharts.registerAction({\n  type: 'changeDataView',\n  event: 'dataViewChanged',\n  update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n  var newSeriesOptList = [];\n  zrUtil.each(payload.newOption.series, function (seriesOpt) {\n    var seriesModel = ecModel.getSeriesByName(seriesOpt.name)[0];\n\n    if (!seriesModel) {\n      newSeriesOptList.push(zrUtil.extend({\n        type: 'scatter'\n      }, seriesOpt));\n    } else {\n      var originalData = seriesModel.get('data');\n      newSeriesOptList.push({\n        name: seriesOpt.name,\n        data: tryMergeDataOption(seriesOpt.data, originalData)\n      });\n    }\n  });\n  ecModel.mergeOption(zrUtil.defaults({\n    series: newSeriesOptList\n  }, payload.newOption));\n});\nexport default DataView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { makeInner } from '../../util/model';\nvar each = zrUtil.each;\nvar inner = makeInner();\nexport function push(ecModel, newSnapshot) {\n  var storedSnapshots = getStoreSnapshots(ecModel);\n  each(newSnapshot, function (batchItem, dataZoomId) {\n    var i = storedSnapshots.length - 1;\n\n    for (; i >= 0; i--) {\n      var snapshot = storedSnapshots[i];\n\n      if (snapshot[dataZoomId]) {\n        break;\n      }\n    }\n\n    if (i < 0) {\n      var dataZoomModel = ecModel.queryComponents({\n        mainType: 'dataZoom',\n        subType: 'select',\n        id: dataZoomId\n      })[0];\n\n      if (dataZoomModel) {\n        var percentRange = dataZoomModel.getPercentRange();\n        storedSnapshots[0][dataZoomId] = {\n          dataZoomId: dataZoomId,\n          start: percentRange[0],\n          end: percentRange[1]\n        };\n      }\n    }\n  });\n  storedSnapshots.push(newSnapshot);\n}\nexport function pop(ecModel) {\n  var storedSnapshots = getStoreSnapshots(ecModel);\n  var head = storedSnapshots[storedSnapshots.length - 1];\n  storedSnapshots.length > 1 && storedSnapshots.pop();\n  var snapshot = {};\n  each(head, function (batchItem, dataZoomId) {\n    for (var i = storedSnapshots.length - 1; i >= 0; i--) {\n      batchItem = storedSnapshots[i][dataZoomId];\n\n      if (batchItem) {\n        snapshot[dataZoomId] = batchItem;\n        break;\n      }\n    }\n  });\n  return snapshot;\n}\nexport function clear(ecModel) {\n  inner(ecModel).snapshots = null;\n}\nexport function count(ecModel) {\n  return getStoreSnapshots(ecModel).length;\n}\n\nfunction getStoreSnapshots(ecModel) {\n  var store = inner(ecModel);\n\n  if (!store.snapshots) {\n    store.snapshots = [{}];\n  }\n\n  return store.snapshots;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as echarts from '../../../core/echarts';\nimport * as history from '../../dataZoom/history';\nimport { ToolboxFeature } from '../featureManager';\n\nvar RestoreOption = function (_super) {\n  __extends(RestoreOption, _super);\n\n  function RestoreOption() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  RestoreOption.prototype.onclick = function (ecModel, api) {\n    history.clear(ecModel);\n    api.dispatchAction({\n      type: 'restore',\n      from: this.uid\n    });\n  };\n\n  RestoreOption.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      icon: 'M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5',\n      title: ecModel.getLocale(['toolbox', 'restore', 'title'])\n    };\n    return defaultOption;\n  };\n\n  return RestoreOption;\n}(ToolboxFeature);\n\necharts.registerAction({\n  type: 'restore',\n  event: 'restore',\n  update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n  ecModel.resetOption('recreate');\n});\nexport default RestoreOption;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, indexOf, curry, assert, map, createHashMap } from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport * as brushHelper from './brushHelper';\nimport { parseFinder as modelUtilParseFinder } from '../../util/model';\nvar COORD_CONVERTS = ['dataToPoint', 'pointToData'];\nvar INCLUDE_FINDER_MAIN_TYPES = ['grid', 'xAxis', 'yAxis', 'geo', 'graph', 'polar', 'radiusAxis', 'angleAxis', 'bmap'];\n\nvar BrushTargetManager = function () {\n  function BrushTargetManager(finder, ecModel, opt) {\n    var _this = this;\n\n    this._targetInfoList = [];\n    var foundCpts = parseFinder(ecModel, finder);\n    each(targetInfoBuilders, function (builder, type) {\n      if (!opt || !opt.include || indexOf(opt.include, type) >= 0) {\n        builder(foundCpts, _this._targetInfoList);\n      }\n    });\n  }\n\n  BrushTargetManager.prototype.setOutputRanges = function (areas, ecModel) {\n    this.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) {\n      (area.coordRanges || (area.coordRanges = [])).push(coordRange);\n\n      if (!area.coordRange) {\n        area.coordRange = coordRange;\n        var result = coordConvert[area.brushType](0, coordSys, coordRange);\n        area.__rangeOffset = {\n          offset: diffProcessor[area.brushType](result.values, area.range, [1, 1]),\n          xyMinMax: result.xyMinMax\n        };\n      }\n    });\n    return areas;\n  };\n\n  BrushTargetManager.prototype.matchOutputRanges = function (areas, ecModel, cb) {\n    each(areas, function (area) {\n      var targetInfo = this.findTargetInfo(area, ecModel);\n\n      if (targetInfo && targetInfo !== true) {\n        each(targetInfo.coordSyses, function (coordSys) {\n          var result = coordConvert[area.brushType](1, coordSys, area.range);\n          cb(area, result.values, coordSys, ecModel);\n        });\n      }\n    }, this);\n  };\n\n  BrushTargetManager.prototype.setInputRanges = function (areas, ecModel) {\n    each(areas, function (area) {\n      var targetInfo = this.findTargetInfo(area, ecModel);\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(!targetInfo || targetInfo === true || area.coordRange, 'coordRange must be specified when coord index specified.');\n        assert(!targetInfo || targetInfo !== true || area.range, 'range must be specified in global brush.');\n      }\n\n      area.range = area.range || [];\n\n      if (targetInfo && targetInfo !== true) {\n        area.panelId = targetInfo.panelId;\n        var result = coordConvert[area.brushType](0, targetInfo.coordSys, area.coordRange);\n        var rangeOffset = area.__rangeOffset;\n        area.range = rangeOffset ? diffProcessor[area.brushType](result.values, rangeOffset.offset, getScales(result.xyMinMax, rangeOffset.xyMinMax)) : result.values;\n      }\n    }, this);\n  };\n\n  BrushTargetManager.prototype.makePanelOpts = function (api, getDefaultBrushType) {\n    return map(this._targetInfoList, function (targetInfo) {\n      var rect = targetInfo.getPanelRect();\n      return {\n        panelId: targetInfo.panelId,\n        defaultBrushType: getDefaultBrushType ? getDefaultBrushType(targetInfo) : null,\n        clipPath: brushHelper.makeRectPanelClipPath(rect),\n        isTargetByCursor: brushHelper.makeRectIsTargetByCursor(rect, api, targetInfo.coordSysModel),\n        getLinearBrushOtherExtent: brushHelper.makeLinearBrushOtherExtent(rect)\n      };\n    });\n  };\n\n  BrushTargetManager.prototype.controlSeries = function (area, seriesModel, ecModel) {\n    var targetInfo = this.findTargetInfo(area, ecModel);\n    return targetInfo === true || targetInfo && indexOf(targetInfo.coordSyses, seriesModel.coordinateSystem) >= 0;\n  };\n\n  BrushTargetManager.prototype.findTargetInfo = function (area, ecModel) {\n    var targetInfoList = this._targetInfoList;\n    var foundCpts = parseFinder(ecModel, area);\n\n    for (var i = 0; i < targetInfoList.length; i++) {\n      var targetInfo = targetInfoList[i];\n      var areaPanelId = area.panelId;\n\n      if (areaPanelId) {\n        if (targetInfo.panelId === areaPanelId) {\n          return targetInfo;\n        }\n      } else {\n        for (var j = 0; j < targetInfoMatchers.length; j++) {\n          if (targetInfoMatchers[j](foundCpts, targetInfo)) {\n            return targetInfo;\n          }\n        }\n      }\n    }\n\n    return true;\n  };\n\n  return BrushTargetManager;\n}();\n\nfunction formatMinMax(minMax) {\n  minMax[0] > minMax[1] && minMax.reverse();\n  return minMax;\n}\n\nfunction parseFinder(ecModel, finder) {\n  return modelUtilParseFinder(ecModel, finder, {\n    includeMainTypes: INCLUDE_FINDER_MAIN_TYPES\n  });\n}\n\nvar targetInfoBuilders = {\n  grid: function (foundCpts, targetInfoList) {\n    var xAxisModels = foundCpts.xAxisModels;\n    var yAxisModels = foundCpts.yAxisModels;\n    var gridModels = foundCpts.gridModels;\n    var gridModelMap = createHashMap();\n    var xAxesHas = {};\n    var yAxesHas = {};\n\n    if (!xAxisModels && !yAxisModels && !gridModels) {\n      return;\n    }\n\n    each(xAxisModels, function (axisModel) {\n      var gridModel = axisModel.axis.grid.model;\n      gridModelMap.set(gridModel.id, gridModel);\n      xAxesHas[gridModel.id] = true;\n    });\n    each(yAxisModels, function (axisModel) {\n      var gridModel = axisModel.axis.grid.model;\n      gridModelMap.set(gridModel.id, gridModel);\n      yAxesHas[gridModel.id] = true;\n    });\n    each(gridModels, function (gridModel) {\n      gridModelMap.set(gridModel.id, gridModel);\n      xAxesHas[gridModel.id] = true;\n      yAxesHas[gridModel.id] = true;\n    });\n    gridModelMap.each(function (gridModel) {\n      var grid = gridModel.coordinateSystem;\n      var cartesians = [];\n      each(grid.getCartesians(), function (cartesian, index) {\n        if (indexOf(xAxisModels, cartesian.getAxis('x').model) >= 0 || indexOf(yAxisModels, cartesian.getAxis('y').model) >= 0) {\n          cartesians.push(cartesian);\n        }\n      });\n      targetInfoList.push({\n        panelId: 'grid--' + gridModel.id,\n        gridModel: gridModel,\n        coordSysModel: gridModel,\n        coordSys: cartesians[0],\n        coordSyses: cartesians,\n        getPanelRect: panelRectBuilders.grid,\n        xAxisDeclared: xAxesHas[gridModel.id],\n        yAxisDeclared: yAxesHas[gridModel.id]\n      });\n    });\n  },\n  geo: function (foundCpts, targetInfoList) {\n    each(foundCpts.geoModels, function (geoModel) {\n      var coordSys = geoModel.coordinateSystem;\n      targetInfoList.push({\n        panelId: 'geo--' + geoModel.id,\n        geoModel: geoModel,\n        coordSysModel: geoModel,\n        coordSys: coordSys,\n        coordSyses: [coordSys],\n        getPanelRect: panelRectBuilders.geo\n      });\n    });\n  }\n};\nvar targetInfoMatchers = [function (foundCpts, targetInfo) {\n  var xAxisModel = foundCpts.xAxisModel;\n  var yAxisModel = foundCpts.yAxisModel;\n  var gridModel = foundCpts.gridModel;\n  !gridModel && xAxisModel && (gridModel = xAxisModel.axis.grid.model);\n  !gridModel && yAxisModel && (gridModel = yAxisModel.axis.grid.model);\n  return gridModel && gridModel === targetInfo.gridModel;\n}, function (foundCpts, targetInfo) {\n  var geoModel = foundCpts.geoModel;\n  return geoModel && geoModel === targetInfo.geoModel;\n}];\nvar panelRectBuilders = {\n  grid: function () {\n    return this.coordSys.master.getRect().clone();\n  },\n  geo: function () {\n    var coordSys = this.coordSys;\n    var rect = coordSys.getBoundingRect().clone();\n    rect.applyTransform(graphic.getTransform(coordSys));\n    return rect;\n  }\n};\nvar coordConvert = {\n  lineX: curry(axisConvert, 0),\n  lineY: curry(axisConvert, 1),\n  rect: function (to, coordSys, rangeOrCoordRange) {\n    var xminymin = coordSys[COORD_CONVERTS[to]]([rangeOrCoordRange[0][0], rangeOrCoordRange[1][0]]);\n    var xmaxymax = coordSys[COORD_CONVERTS[to]]([rangeOrCoordRange[0][1], rangeOrCoordRange[1][1]]);\n    var values = [formatMinMax([xminymin[0], xmaxymax[0]]), formatMinMax([xminymin[1], xmaxymax[1]])];\n    return {\n      values: values,\n      xyMinMax: values\n    };\n  },\n  polygon: function (to, coordSys, rangeOrCoordRange) {\n    var xyMinMax = [[Infinity, -Infinity], [Infinity, -Infinity]];\n    var values = map(rangeOrCoordRange, function (item) {\n      var p = coordSys[COORD_CONVERTS[to]](item);\n      xyMinMax[0][0] = Math.min(xyMinMax[0][0], p[0]);\n      xyMinMax[1][0] = Math.min(xyMinMax[1][0], p[1]);\n      xyMinMax[0][1] = Math.max(xyMinMax[0][1], p[0]);\n      xyMinMax[1][1] = Math.max(xyMinMax[1][1], p[1]);\n      return p;\n    });\n    return {\n      values: values,\n      xyMinMax: xyMinMax\n    };\n  }\n};\n\nfunction axisConvert(axisNameIndex, to, coordSys, rangeOrCoordRange) {\n  if (process.env.NODE_ENV !== 'production') {\n    assert(coordSys.type === 'cartesian2d', 'lineX/lineY brush is available only in cartesian2d.');\n  }\n\n  var axis = coordSys.getAxis(['x', 'y'][axisNameIndex]);\n  var values = formatMinMax(map([0, 1], function (i) {\n    return to ? axis.coordToData(axis.toLocalCoord(rangeOrCoordRange[i])) : axis.toGlobalCoord(axis.dataToCoord(rangeOrCoordRange[i]));\n  }));\n  var xyMinMax = [];\n  xyMinMax[axisNameIndex] = values;\n  xyMinMax[1 - axisNameIndex] = [NaN, NaN];\n  return {\n    values: values,\n    xyMinMax: xyMinMax\n  };\n}\n\nvar diffProcessor = {\n  lineX: curry(axisDiffProcessor, 0),\n  lineY: curry(axisDiffProcessor, 1),\n  rect: function (values, refer, scales) {\n    return [[values[0][0] - scales[0] * refer[0][0], values[0][1] - scales[0] * refer[0][1]], [values[1][0] - scales[1] * refer[1][0], values[1][1] - scales[1] * refer[1][1]]];\n  },\n  polygon: function (values, refer, scales) {\n    return map(values, function (item, idx) {\n      return [item[0] - scales[0] * refer[idx][0], item[1] - scales[1] * refer[idx][1]];\n    });\n  }\n};\n\nfunction axisDiffProcessor(axisNameIndex, values, refer, scales) {\n  return [values[0] - scales[axisNameIndex] * refer[0], values[1] - scales[axisNameIndex] * refer[1]];\n}\n\nfunction getScales(xyMinMaxCurr, xyMinMaxOrigin) {\n  var sizeCurr = getSize(xyMinMaxCurr);\n  var sizeOrigin = getSize(xyMinMaxOrigin);\n  var scales = [sizeCurr[0] / sizeOrigin[0], sizeCurr[1] / sizeOrigin[1]];\n  isNaN(scales[0]) && (scales[0] = 1);\n  isNaN(scales[1]) && (scales[1] = 1);\n  return scales;\n}\n\nfunction getSize(xyMinMax) {\n  return xyMinMax ? [xyMinMax[0][1] - xyMinMax[0][0], xyMinMax[1][1] - xyMinMax[1][0]] : [NaN, NaN];\n}\n\nexport default BrushTargetManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BrushController from '../../helper/BrushController';\nimport BrushTargetManager from '../../helper/BrushTargetManager';\nimport * as history from '../../dataZoom/history';\nimport sliderMove from '../../helper/sliderMove';\nimport { ToolboxFeature } from '../featureManager';\nimport { makeInternalComponentId, parseFinder } from '../../../util/model';\nimport { registerInternalOptionCreator } from '../../../model/internalComponentCreator';\nvar each = zrUtil.each;\nvar DATA_ZOOM_ID_BASE = makeInternalComponentId('toolbox-dataZoom_');\nvar ICON_TYPES = ['zoom', 'back'];\n\nvar DataZoomFeature = function (_super) {\n  __extends(DataZoomFeature, _super);\n\n  function DataZoomFeature() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  DataZoomFeature.prototype.render = function (featureModel, ecModel, api, payload) {\n    if (!this.brushController) {\n      this.brushController = new BrushController(api.getZr());\n      this.brushController.on('brush', zrUtil.bind(this._onBrush, this)).mount();\n    }\n\n    updateZoomBtnStatus(featureModel, ecModel, this, payload, api);\n    updateBackBtnStatus(featureModel, ecModel);\n  };\n\n  DataZoomFeature.prototype.onclick = function (ecModel, api, type) {\n    handlers[type].call(this);\n  };\n\n  DataZoomFeature.prototype.remove = function (ecModel, api) {\n    this.brushController.unmount();\n  };\n\n  DataZoomFeature.prototype.dispose = function (ecModel, api) {\n    this.brushController.dispose();\n  };\n\n  DataZoomFeature.prototype._onBrush = function (eventParam) {\n    var areas = eventParam.areas;\n\n    if (!eventParam.isEnd || !areas.length) {\n      return;\n    }\n\n    var snapshot = {};\n    var ecModel = this.ecModel;\n    this.brushController.updateCovers([]);\n    var brushTargetManager = new BrushTargetManager(makeAxisFinder(this.model), ecModel, {\n      include: ['grid']\n    });\n    brushTargetManager.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) {\n      if (coordSys.type !== 'cartesian2d') {\n        return;\n      }\n\n      var brushType = area.brushType;\n\n      if (brushType === 'rect') {\n        setBatch('x', coordSys, coordRange[0]);\n        setBatch('y', coordSys, coordRange[1]);\n      } else {\n        setBatch({\n          lineX: 'x',\n          lineY: 'y'\n        }[brushType], coordSys, coordRange);\n      }\n    });\n    history.push(ecModel, snapshot);\n\n    this._dispatchZoomAction(snapshot);\n\n    function setBatch(dimName, coordSys, minMax) {\n      var axis = coordSys.getAxis(dimName);\n      var axisModel = axis.model;\n      var dataZoomModel = findDataZoom(dimName, axisModel, ecModel);\n      var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy(axisModel).getMinMaxSpan();\n\n      if (minMaxSpan.minValueSpan != null || minMaxSpan.maxValueSpan != null) {\n        minMax = sliderMove(0, minMax.slice(), axis.scale.getExtent(), 0, minMaxSpan.minValueSpan, minMaxSpan.maxValueSpan);\n      }\n\n      dataZoomModel && (snapshot[dataZoomModel.id] = {\n        dataZoomId: dataZoomModel.id,\n        startValue: minMax[0],\n        endValue: minMax[1]\n      });\n    }\n\n    function findDataZoom(dimName, axisModel, ecModel) {\n      var found;\n      ecModel.eachComponent({\n        mainType: 'dataZoom',\n        subType: 'select'\n      }, function (dzModel) {\n        var has = dzModel.getAxisModel(dimName, axisModel.componentIndex);\n        has && (found = dzModel);\n      });\n      return found;\n    }\n  };\n\n  ;\n\n  DataZoomFeature.prototype._dispatchZoomAction = function (snapshot) {\n    var batch = [];\n    each(snapshot, function (batchItem, dataZoomId) {\n      batch.push(zrUtil.clone(batchItem));\n    });\n    batch.length && this.api.dispatchAction({\n      type: 'dataZoom',\n      from: this.uid,\n      batch: batch\n    });\n  };\n\n  DataZoomFeature.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      filterMode: 'filter',\n      icon: {\n        zoom: 'M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1',\n        back: 'M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26'\n      },\n      title: ecModel.getLocale(['toolbox', 'dataZoom', 'title']),\n      brushStyle: {\n        borderWidth: 0,\n        color: 'rgba(210,219,238,0.2)'\n      }\n    };\n    return defaultOption;\n  };\n\n  return DataZoomFeature;\n}(ToolboxFeature);\n\nvar handlers = {\n  zoom: function () {\n    var nextActive = !this.isZoomActive;\n    this.api.dispatchAction({\n      type: 'takeGlobalCursor',\n      key: 'dataZoomSelect',\n      dataZoomSelectActive: nextActive\n    });\n  },\n  back: function () {\n    this._dispatchZoomAction(history.pop(this.ecModel));\n  }\n};\n\nfunction makeAxisFinder(dzFeatureModel) {\n  var setting = {\n    xAxisIndex: dzFeatureModel.get('xAxisIndex', true),\n    yAxisIndex: dzFeatureModel.get('yAxisIndex', true),\n    xAxisId: dzFeatureModel.get('xAxisId', true),\n    yAxisId: dzFeatureModel.get('yAxisId', true)\n  };\n\n  if (setting.xAxisIndex == null && setting.xAxisId == null) {\n    setting.xAxisIndex = 'all';\n  }\n\n  if (setting.yAxisIndex == null && setting.yAxisId == null) {\n    setting.yAxisIndex = 'all';\n  }\n\n  return setting;\n}\n\nfunction updateBackBtnStatus(featureModel, ecModel) {\n  featureModel.setIconStatus('back', history.count(ecModel) > 1 ? 'emphasis' : 'normal');\n}\n\nfunction updateZoomBtnStatus(featureModel, ecModel, view, payload, api) {\n  var zoomActive = view.isZoomActive;\n\n  if (payload && payload.type === 'takeGlobalCursor') {\n    zoomActive = payload.key === 'dataZoomSelect' ? payload.dataZoomSelectActive : false;\n  }\n\n  view.isZoomActive = zoomActive;\n  featureModel.setIconStatus('zoom', zoomActive ? 'emphasis' : 'normal');\n  var brushTargetManager = new BrushTargetManager(makeAxisFinder(featureModel), ecModel, {\n    include: ['grid']\n  });\n  var panels = brushTargetManager.makePanelOpts(api, function (targetInfo) {\n    return targetInfo.xAxisDeclared && !targetInfo.yAxisDeclared ? 'lineX' : !targetInfo.xAxisDeclared && targetInfo.yAxisDeclared ? 'lineY' : 'rect';\n  });\n  view.brushController.setPanels(panels).enableBrush(zoomActive && panels.length ? {\n    brushType: 'auto',\n    brushStyle: featureModel.getModel('brushStyle').getItemStyle()\n  } : false);\n}\n\nregisterInternalOptionCreator('dataZoom', function (ecModel) {\n  var toolboxModel = ecModel.getComponent('toolbox', 0);\n\n  if (!toolboxModel) {\n    return;\n  }\n\n  var dzFeatureModel = toolboxModel.getModel(['feature', 'dataZoom']);\n  var dzOptions = [];\n  var finder = makeAxisFinder(dzFeatureModel);\n  var finderResult = parseFinder(ecModel, finder);\n  each(finderResult.xAxisModels, function (axisModel) {\n    return buildInternalOptions(axisModel, 'xAxis', 'xAxisIndex');\n  });\n  each(finderResult.yAxisModels, function (axisModel) {\n    return buildInternalOptions(axisModel, 'yAxis', 'yAxisIndex');\n  });\n\n  function buildInternalOptions(axisModel, axisMainType, axisIndexPropName) {\n    var axisIndex = axisModel.componentIndex;\n    var newOpt = {\n      type: 'select',\n      $fromToolbox: true,\n      filterMode: dzFeatureModel.get('filterMode', true) || 'filter',\n      id: DATA_ZOOM_ID_BASE + axisMainType + axisIndex\n    };\n    newOpt[axisIndexPropName] = axisIndex;\n    dzOptions.push(newOpt);\n  }\n\n  return dzOptions;\n});\nexport default DataZoomFeature;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport { install as installDataZoomSelect } from '../../component/dataZoom/installDataZoomSelect';\nimport ToolboxModel from './ToolboxModel';\nimport ToolboxView from './ToolboxView';\nimport { registerFeature } from './featureManager';\nimport SaveAsImage from './feature/SaveAsImage';\nimport MagicType from './feature/MagicType';\nimport DataView from './feature/DataView';\nimport Restore from './feature/Restore';\nimport DataZoom from './feature/DataZoom';\nexport function install(registers) {\n  registers.registerComponentModel(ToolboxModel);\n  registers.registerComponentView(ToolboxView);\n  registerFeature('saveAsImage', SaveAsImage);\n  registerFeature('magicType', MagicType);\n  registerFeature('dataView', DataView);\n  registerFeature('dataZoom', DataZoom);\n  registerFeature('restore', Restore);\n  use(installDataZoomSelect);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\n\nvar TooltipModel = function (_super) {\n  __extends(TooltipModel, _super);\n\n  function TooltipModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TooltipModel.type;\n    return _this;\n  }\n\n  TooltipModel.type = 'tooltip';\n  TooltipModel.dependencies = ['axisPointer'];\n  TooltipModel.defaultOption = {\n    zlevel: 0,\n    z: 60,\n    show: true,\n    showContent: true,\n    trigger: 'item',\n    triggerOn: 'mousemove|click',\n    alwaysShowContent: false,\n    displayMode: 'single',\n    renderMode: 'auto',\n    confine: null,\n    showDelay: 0,\n    hideDelay: 100,\n    transitionDuration: 0.4,\n    enterable: false,\n    backgroundColor: '#fff',\n    shadowBlur: 10,\n    shadowColor: 'rgba(0, 0, 0, .2)',\n    shadowOffsetX: 1,\n    shadowOffsetY: 2,\n    borderRadius: 4,\n    borderWidth: 1,\n    padding: null,\n    extraCssText: '',\n    axisPointer: {\n      type: 'line',\n      axis: 'auto',\n      animation: 'auto',\n      animationDurationUpdate: 200,\n      animationEasingUpdate: 'exponentialOut',\n      crossStyle: {\n        color: '#999',\n        width: 1,\n        type: 'dashed',\n        textStyle: {}\n      }\n    },\n    textStyle: {\n      color: '#666',\n      fontSize: 14\n    }\n  };\n  return TooltipModel;\n}(ComponentModel);\n\nexport default TooltipModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function shouldTooltipConfine(tooltipModel) {\n  var confineOption = tooltipModel.get('confine');\n  return confineOption != null ? !!confineOption : tooltipModel.get('renderMode') === 'richText';\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isString, indexOf, map, each, bind, isArray, isDom } from 'zrender/lib/core/util';\nimport { toHex } from 'zrender/lib/tool/color';\nimport { normalizeEvent } from 'zrender/lib/core/event';\nimport { transformLocalCoord } from 'zrender/lib/core/dom';\nimport env from 'zrender/lib/core/env';\nimport { convertToColorString, toCamelCase, normalizeCssArray } from '../../util/format';\nimport { shouldTooltipConfine } from './helper';\nimport { getPaddingFromTooltipModel } from './tooltipMarkup';\nvar vendors = ['-ms-', '-moz-', '-o-', '-webkit-', ''];\nvar gCssText = 'position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;';\n\nfunction mirrorPos(pos) {\n  pos = pos === 'left' ? 'right' : pos === 'right' ? 'left' : pos === 'top' ? 'bottom' : 'top';\n  return pos;\n}\n\nfunction assembleArrow(backgroundColor, borderColor, arrowPosition) {\n  if (!isString(arrowPosition) || arrowPosition === 'inside') {\n    return '';\n  }\n\n  borderColor = convertToColorString(borderColor);\n  var arrowPos = mirrorPos(arrowPosition);\n  var positionStyle = '';\n  var transformStyle = '';\n\n  if (indexOf(['left', 'right'], arrowPos) > -1) {\n    positionStyle = arrowPos + \":-6px;top:50%;\";\n    transformStyle = \"translateY(-50%) rotate(\" + (arrowPos === 'left' ? -225 : -45) + \"deg)\";\n  } else {\n    positionStyle = arrowPos + \":-6px;left:50%;\";\n    transformStyle = \"translateX(-50%) rotate(\" + (arrowPos === 'top' ? 225 : 45) + \"deg)\";\n  }\n\n  transformStyle = map(vendors, function (vendorPrefix) {\n    return vendorPrefix + 'transform:' + transformStyle;\n  }).join(';');\n  var styleCss = ['position:absolute;width:10px;height:10px;', \"\" + positionStyle + transformStyle + \";\", \"border-bottom: \" + borderColor + \" solid 1px;\", \"border-right: \" + borderColor + \" solid 1px;\", \"background-color: \" + backgroundColor + \";\", 'box-shadow: 8px 8px 16px -3px #000;'];\n  return \"<div style=\\\"\" + styleCss.join('') + \"\\\"></div>\";\n}\n\nfunction assembleTransition(duration, onlyFade) {\n  var transitionCurve = 'cubic-bezier(0.23, 1, 0.32, 1)';\n  var transitionText = 'opacity ' + duration / 2 + 's ' + transitionCurve + ',' + 'visibility ' + duration / 2 + 's ' + transitionCurve;\n\n  if (!onlyFade) {\n    transitionText += ',left ' + duration + 's ' + transitionCurve + ',top ' + duration + 's ' + transitionCurve;\n  }\n\n  return map(vendors, function (vendorPrefix) {\n    return vendorPrefix + 'transition:' + transitionText;\n  }).join(';');\n}\n\nfunction assembleFont(textStyleModel) {\n  var cssText = [];\n  var fontSize = textStyleModel.get('fontSize');\n  var color = textStyleModel.getTextColor();\n  color && cssText.push('color:' + color);\n  cssText.push('font:' + textStyleModel.getFont());\n  fontSize && cssText.push('line-height:' + Math.round(fontSize * 3 / 2) + 'px');\n  var shadowColor = textStyleModel.get('textShadowColor');\n  var shadowBlur = textStyleModel.get('textShadowBlur') || 0;\n  var shadowOffsetX = textStyleModel.get('textShadowOffsetX') || 0;\n  var shadowOffsetY = textStyleModel.get('textShadowOffsetY') || 0;\n  shadowColor && shadowBlur && cssText.push('text-shadow:' + shadowOffsetX + 'px ' + shadowOffsetY + 'px ' + shadowBlur + 'px ' + shadowColor);\n  each(['decoration', 'align'], function (name) {\n    var val = textStyleModel.get(name);\n    val && cssText.push('text-' + name + ':' + val);\n  });\n  return cssText.join(';');\n}\n\nfunction assembleCssText(tooltipModel, enableTransition, onlyFade) {\n  var cssText = [];\n  var transitionDuration = tooltipModel.get('transitionDuration');\n  var backgroundColor = tooltipModel.get('backgroundColor');\n  var shadowBlur = tooltipModel.get('shadowBlur');\n  var shadowColor = tooltipModel.get('shadowColor');\n  var shadowOffsetX = tooltipModel.get('shadowOffsetX');\n  var shadowOffsetY = tooltipModel.get('shadowOffsetY');\n  var textStyleModel = tooltipModel.getModel('textStyle');\n  var padding = getPaddingFromTooltipModel(tooltipModel, 'html');\n  var boxShadow = shadowOffsetX + \"px \" + shadowOffsetY + \"px \" + shadowBlur + \"px \" + shadowColor;\n  cssText.push('box-shadow:' + boxShadow);\n  enableTransition && transitionDuration && cssText.push(assembleTransition(transitionDuration, onlyFade));\n\n  if (backgroundColor) {\n    if (env.canvasSupported) {\n      cssText.push('background-Color:' + backgroundColor);\n    } else {\n      cssText.push('background-Color:#' + toHex(backgroundColor));\n      cssText.push('filter:alpha(opacity=70)');\n    }\n  }\n\n  each(['width', 'color', 'radius'], function (name) {\n    var borderName = 'border-' + name;\n    var camelCase = toCamelCase(borderName);\n    var val = tooltipModel.get(camelCase);\n    val != null && cssText.push(borderName + ':' + val + (name === 'color' ? '' : 'px'));\n  });\n  cssText.push(assembleFont(textStyleModel));\n\n  if (padding != null) {\n    cssText.push('padding:' + normalizeCssArray(padding).join('px ') + 'px');\n  }\n\n  return cssText.join(';') + ';';\n}\n\nfunction makeStyleCoord(out, zr, appendToBody, zrX, zrY) {\n  var zrPainter = zr && zr.painter;\n\n  if (appendToBody) {\n    var zrViewportRoot = zrPainter && zrPainter.getViewportRoot();\n\n    if (zrViewportRoot) {\n      transformLocalCoord(out, zrViewportRoot, document.body, zrX, zrY);\n    }\n  } else {\n    out[0] = zrX;\n    out[1] = zrY;\n    var viewportRootOffset = zrPainter && zrPainter.getViewportRootOffset();\n\n    if (viewportRootOffset) {\n      out[0] += viewportRootOffset.offsetLeft;\n      out[1] += viewportRootOffset.offsetTop;\n    }\n  }\n\n  out[2] = out[0] / zr.getWidth();\n  out[3] = out[1] / zr.getHeight();\n}\n\nvar TooltipHTMLContent = function () {\n  function TooltipHTMLContent(container, api, opt) {\n    this._show = false;\n    this._styleCoord = [0, 0, 0, 0];\n    this._enterable = true;\n    this._firstShow = true;\n    this._longHide = true;\n\n    if (env.wxa) {\n      return null;\n    }\n\n    var el = document.createElement('div');\n    el.domBelongToZr = true;\n    this.el = el;\n    var zr = this._zr = api.getZr();\n    var appendToBody = this._appendToBody = opt && opt.appendToBody;\n    makeStyleCoord(this._styleCoord, zr, appendToBody, api.getWidth() / 2, api.getHeight() / 2);\n\n    if (appendToBody) {\n      document.body.appendChild(el);\n    } else {\n      container.appendChild(el);\n    }\n\n    this._container = container;\n    var self = this;\n\n    el.onmouseenter = function () {\n      if (self._enterable) {\n        clearTimeout(self._hideTimeout);\n        self._show = true;\n      }\n\n      self._inContent = true;\n    };\n\n    el.onmousemove = function (e) {\n      e = e || window.event;\n\n      if (!self._enterable) {\n        var handler = zr.handler;\n        var zrViewportRoot = zr.painter.getViewportRoot();\n        normalizeEvent(zrViewportRoot, e, true);\n        handler.dispatch('mousemove', e);\n      }\n    };\n\n    el.onmouseleave = function () {\n      self._inContent = false;\n\n      if (self._enterable) {\n        if (self._show) {\n          self.hideLater(self._hideDelay);\n        }\n      }\n    };\n  }\n\n  TooltipHTMLContent.prototype.update = function (tooltipModel) {\n    var container = this._container;\n    var stl = container.currentStyle || document.defaultView.getComputedStyle(container);\n    var domStyle = container.style;\n\n    if (domStyle.position !== 'absolute' && stl.position !== 'absolute') {\n      domStyle.position = 'relative';\n    }\n\n    var alwaysShowContent = tooltipModel.get('alwaysShowContent');\n    alwaysShowContent && this._moveIfResized();\n    this.el.className = tooltipModel.get('className') || '';\n  };\n\n  TooltipHTMLContent.prototype.show = function (tooltipModel, nearPointColor) {\n    clearTimeout(this._hideTimeout);\n    clearTimeout(this._longHideTimeout);\n    var el = this.el;\n    var styleCoord = this._styleCoord;\n    var offset = el.offsetHeight / 2;\n    nearPointColor = convertToColorString(nearPointColor);\n    el.style.cssText = gCssText + assembleCssText(tooltipModel, !this._firstShow, this._longHide) + ';left:' + styleCoord[0] + 'px;top:' + (styleCoord[1] - offset) + 'px;' + (\"border-color: \" + nearPointColor + \";\") + (tooltipModel.get('extraCssText') || '');\n    el.style.display = el.innerHTML ? 'block' : 'none';\n    el.style.pointerEvents = this._enterable ? 'auto' : 'none';\n    this._show = true;\n    this._firstShow = false;\n    this._longHide = false;\n  };\n\n  TooltipHTMLContent.prototype.setContent = function (content, markers, tooltipModel, borderColor, arrowPosition) {\n    if (content == null) {\n      return;\n    }\n\n    var el = this.el;\n\n    if (isString(arrowPosition) && tooltipModel.get('trigger') === 'item' && !shouldTooltipConfine(tooltipModel)) {\n      content += assembleArrow(tooltipModel.get('backgroundColor'), borderColor, arrowPosition);\n    }\n\n    if (isString(content)) {\n      el.innerHTML = content;\n    } else if (content) {\n      el.innerHTML = '';\n\n      if (!isArray(content)) {\n        content = [content];\n      }\n\n      for (var i = 0; i < content.length; i++) {\n        if (isDom(content[i]) && content[i].parentNode !== el) {\n          el.appendChild(content[i]);\n        }\n      }\n    }\n  };\n\n  TooltipHTMLContent.prototype.setEnterable = function (enterable) {\n    this._enterable = enterable;\n  };\n\n  TooltipHTMLContent.prototype.getSize = function () {\n    var el = this.el;\n    return [el.clientWidth, el.clientHeight];\n  };\n\n  TooltipHTMLContent.prototype.moveTo = function (zrX, zrY) {\n    var styleCoord = this._styleCoord;\n    makeStyleCoord(styleCoord, this._zr, this._appendToBody, zrX, zrY);\n\n    if (styleCoord[0] != null && styleCoord[1] != null) {\n      var style = this.el.style;\n      style.left = styleCoord[0].toFixed(0) + 'px';\n      style.top = styleCoord[1].toFixed(0) + 'px';\n    }\n  };\n\n  TooltipHTMLContent.prototype._moveIfResized = function () {\n    var ratioX = this._styleCoord[2];\n    var ratioY = this._styleCoord[3];\n    this.moveTo(ratioX * this._zr.getWidth(), ratioY * this._zr.getHeight());\n  };\n\n  TooltipHTMLContent.prototype.hide = function () {\n    var _this = this;\n\n    this.el.style.visibility = 'hidden';\n    this.el.style.opacity = '0';\n    this._show = false;\n    this._longHideTimeout = setTimeout(function () {\n      return _this._longHide = true;\n    }, 500);\n  };\n\n  TooltipHTMLContent.prototype.hideLater = function (time) {\n    if (this._show && !(this._inContent && this._enterable)) {\n      if (time) {\n        this._hideDelay = time;\n        this._show = false;\n        this._hideTimeout = setTimeout(bind(this.hide, this), time);\n      } else {\n        this.hide();\n      }\n    }\n  };\n\n  TooltipHTMLContent.prototype.isShow = function () {\n    return this._show;\n  };\n\n  TooltipHTMLContent.prototype.dispose = function () {\n    this.el.parentNode.removeChild(this.el);\n  };\n\n  TooltipHTMLContent.prototype.getOuterSize = function () {\n    var width = this.el.clientWidth;\n    var height = this.el.clientHeight;\n\n    if (document.defaultView && document.defaultView.getComputedStyle) {\n      var stl = document.defaultView.getComputedStyle(this.el);\n\n      if (stl) {\n        width += parseInt(stl.borderLeftWidth, 10) + parseInt(stl.borderRightWidth, 10);\n        height += parseInt(stl.borderTopWidth, 10) + parseInt(stl.borderBottomWidth, 10);\n      }\n    }\n\n    return {\n      width: width,\n      height: height\n    };\n  };\n\n  return TooltipHTMLContent;\n}();\n\nexport default TooltipHTMLContent;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ZRText from 'zrender/lib/graphic/Text';\nimport { getPaddingFromTooltipModel } from './tooltipMarkup';\nimport { throwError } from '../../util/log';\n\nvar TooltipRichContent = function () {\n  function TooltipRichContent(api) {\n    this._show = false;\n    this._styleCoord = [0, 0, 0, 0];\n    this._enterable = true;\n    this._zr = api.getZr();\n    makeStyleCoord(this._styleCoord, this._zr, api.getWidth() / 2, api.getHeight() / 2);\n  }\n\n  TooltipRichContent.prototype.update = function (tooltipModel) {\n    var alwaysShowContent = tooltipModel.get('alwaysShowContent');\n    alwaysShowContent && this._moveIfResized();\n  };\n\n  TooltipRichContent.prototype.show = function () {\n    if (this._hideTimeout) {\n      clearTimeout(this._hideTimeout);\n    }\n\n    this.el.show();\n    this._show = true;\n  };\n\n  TooltipRichContent.prototype.setContent = function (content, markupStyleCreator, tooltipModel, borderColor, arrowPosition) {\n    if (zrUtil.isObject(content)) {\n      throwError(process.env.NODE_ENV !== 'production' ? 'Passing DOM nodes as content is not supported in richText tooltip!' : '');\n    }\n\n    if (this.el) {\n      this._zr.remove(this.el);\n    }\n\n    var textStyleModel = tooltipModel.getModel('textStyle');\n    this.el = new ZRText({\n      style: {\n        rich: markupStyleCreator.richTextStyles,\n        text: content,\n        lineHeight: 22,\n        backgroundColor: tooltipModel.get('backgroundColor'),\n        borderRadius: tooltipModel.get('borderRadius'),\n        borderWidth: 1,\n        borderColor: borderColor,\n        shadowColor: tooltipModel.get('shadowColor'),\n        shadowBlur: tooltipModel.get('shadowBlur'),\n        shadowOffsetX: tooltipModel.get('shadowOffsetX'),\n        shadowOffsetY: tooltipModel.get('shadowOffsetY'),\n        textShadowColor: textStyleModel.get('textShadowColor'),\n        textShadowBlur: textStyleModel.get('textShadowBlur') || 0,\n        textShadowOffsetX: textStyleModel.get('textShadowOffsetX') || 0,\n        textShadowOffsetY: textStyleModel.get('textShadowOffsetY') || 0,\n        fill: tooltipModel.get(['textStyle', 'color']),\n        padding: getPaddingFromTooltipModel(tooltipModel, 'richText'),\n        verticalAlign: 'top',\n        align: 'left'\n      },\n      z: tooltipModel.get('z')\n    });\n\n    this._zr.add(this.el);\n\n    var self = this;\n    this.el.on('mouseover', function () {\n      if (self._enterable) {\n        clearTimeout(self._hideTimeout);\n        self._show = true;\n      }\n\n      self._inContent = true;\n    });\n    this.el.on('mouseout', function () {\n      if (self._enterable) {\n        if (self._show) {\n          self.hideLater(self._hideDelay);\n        }\n      }\n\n      self._inContent = false;\n    });\n  };\n\n  TooltipRichContent.prototype.setEnterable = function (enterable) {\n    this._enterable = enterable;\n  };\n\n  TooltipRichContent.prototype.getSize = function () {\n    var el = this.el;\n    var bounding = this.el.getBoundingRect();\n    var shadowOuterSize = calcShadowOuterSize(el.style);\n    return [bounding.width + shadowOuterSize.left + shadowOuterSize.right, bounding.height + shadowOuterSize.top + shadowOuterSize.bottom];\n  };\n\n  TooltipRichContent.prototype.moveTo = function (x, y) {\n    var el = this.el;\n\n    if (el) {\n      var styleCoord = this._styleCoord;\n      makeStyleCoord(styleCoord, this._zr, x, y);\n      x = styleCoord[0];\n      y = styleCoord[1];\n      var style = el.style;\n      var borderWidth = mathMaxWith0(style.borderWidth || 0);\n      var shadowOuterSize = calcShadowOuterSize(style);\n      el.x = x + borderWidth + shadowOuterSize.left;\n      el.y = y + borderWidth + shadowOuterSize.top;\n      el.markRedraw();\n    }\n  };\n\n  TooltipRichContent.prototype._moveIfResized = function () {\n    var ratioX = this._styleCoord[2];\n    var ratioY = this._styleCoord[3];\n    this.moveTo(ratioX * this._zr.getWidth(), ratioY * this._zr.getHeight());\n  };\n\n  TooltipRichContent.prototype.hide = function () {\n    if (this.el) {\n      this.el.hide();\n    }\n\n    this._show = false;\n  };\n\n  TooltipRichContent.prototype.hideLater = function (time) {\n    if (this._show && !(this._inContent && this._enterable)) {\n      if (time) {\n        this._hideDelay = time;\n        this._show = false;\n        this._hideTimeout = setTimeout(zrUtil.bind(this.hide, this), time);\n      } else {\n        this.hide();\n      }\n    }\n  };\n\n  TooltipRichContent.prototype.isShow = function () {\n    return this._show;\n  };\n\n  TooltipRichContent.prototype.getOuterSize = function () {\n    var size = this.getSize();\n    return {\n      width: size[0],\n      height: size[1]\n    };\n  };\n\n  TooltipRichContent.prototype.dispose = function () {\n    this._zr.remove(this.el);\n  };\n\n  return TooltipRichContent;\n}();\n\nfunction mathMaxWith0(val) {\n  return Math.max(0, val);\n}\n\nfunction calcShadowOuterSize(style) {\n  var shadowBlur = mathMaxWith0(style.shadowBlur || 0);\n  var shadowOffsetX = mathMaxWith0(style.shadowOffsetX || 0);\n  var shadowOffsetY = mathMaxWith0(style.shadowOffsetY || 0);\n  return {\n    left: mathMaxWith0(shadowBlur - shadowOffsetX),\n    right: mathMaxWith0(shadowBlur + shadowOffsetX),\n    top: mathMaxWith0(shadowBlur - shadowOffsetY),\n    bottom: mathMaxWith0(shadowBlur + shadowOffsetY)\n  };\n}\n\nfunction makeStyleCoord(out, zr, zrX, zrY) {\n  out[0] = zrX;\n  out[1] = zrY;\n  out[2] = out[0] / zr.getWidth();\n  out[3] = out[1] / zr.getHeight();\n}\n\nexport default TooltipRichContent;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport TooltipHTMLContent from './TooltipHTMLContent';\nimport TooltipRichContent from './TooltipRichContent';\nimport * as formatUtil from '../../util/format';\nimport * as numberUtil from '../../util/number';\nimport * as graphic from '../../util/graphic';\nimport findPointFromSeries from '../axisPointer/findPointFromSeries';\nimport * as layoutUtil from '../../util/layout';\nimport Model from '../../model/Model';\nimport * as globalListener from '../axisPointer/globalListener';\nimport * as axisHelper from '../../coord/axisHelper';\nimport * as axisPointerViewHelper from '../axisPointer/viewHelper';\nimport { getTooltipRenderMode } from '../../util/model';\nimport ComponentView from '../../view/Component';\nimport { format as timeFormat } from '../../util/time';\nimport { getECData } from '../../util/innerStore';\nimport { shouldTooltipConfine } from './helper';\nimport { normalizeTooltipFormatResult } from '../../model/mixin/dataFormat';\nimport { createTooltipMarkup, buildTooltipMarkup, TooltipMarkupStyleCreator } from './tooltipMarkup';\nimport { findEventDispatcher } from '../../util/event';\nvar bind = zrUtil.bind;\nvar each = zrUtil.each;\nvar parsePercent = numberUtil.parsePercent;\nvar proxyRect = new graphic.Rect({\n  shape: {\n    x: -1,\n    y: -1,\n    width: 2,\n    height: 2\n  }\n});\n\nvar TooltipView = function (_super) {\n  __extends(TooltipView, _super);\n\n  function TooltipView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TooltipView.type;\n    return _this;\n  }\n\n  TooltipView.prototype.init = function (ecModel, api) {\n    if (env.node) {\n      return;\n    }\n\n    var tooltipModel = ecModel.getComponent('tooltip');\n    var renderMode = tooltipModel.get('renderMode');\n    this._renderMode = getTooltipRenderMode(renderMode);\n    this._tooltipContent = this._renderMode === 'richText' ? new TooltipRichContent(api) : new TooltipHTMLContent(api.getDom(), api, {\n      appendToBody: tooltipModel.get('appendToBody', true)\n    });\n  };\n\n  TooltipView.prototype.render = function (tooltipModel, ecModel, api) {\n    if (env.node) {\n      return;\n    }\n\n    this.group.removeAll();\n    this._tooltipModel = tooltipModel;\n    this._ecModel = ecModel;\n    this._api = api;\n    this._alwaysShowContent = tooltipModel.get('alwaysShowContent');\n    var tooltipContent = this._tooltipContent;\n    tooltipContent.update(tooltipModel);\n    tooltipContent.setEnterable(tooltipModel.get('enterable'));\n\n    this._initGlobalListener();\n\n    this._keepShow();\n  };\n\n  TooltipView.prototype._initGlobalListener = function () {\n    var tooltipModel = this._tooltipModel;\n    var triggerOn = tooltipModel.get('triggerOn');\n    globalListener.register('itemTooltip', this._api, bind(function (currTrigger, e, dispatchAction) {\n      if (triggerOn !== 'none') {\n        if (triggerOn.indexOf(currTrigger) >= 0) {\n          this._tryShow(e, dispatchAction);\n        } else if (currTrigger === 'leave') {\n          this._hide(dispatchAction);\n        }\n      }\n    }, this));\n  };\n\n  TooltipView.prototype._keepShow = function () {\n    var tooltipModel = this._tooltipModel;\n    var ecModel = this._ecModel;\n    var api = this._api;\n\n    if (this._lastX != null && this._lastY != null && tooltipModel.get('triggerOn') !== 'none') {\n      var self_1 = this;\n      clearTimeout(this._refreshUpdateTimeout);\n      this._refreshUpdateTimeout = setTimeout(function () {\n        !api.isDisposed() && self_1.manuallyShowTip(tooltipModel, ecModel, api, {\n          x: self_1._lastX,\n          y: self_1._lastY,\n          dataByCoordSys: self_1._lastDataByCoordSys\n        });\n      });\n    }\n  };\n\n  TooltipView.prototype.manuallyShowTip = function (tooltipModel, ecModel, api, payload) {\n    if (payload.from === this.uid || env.node) {\n      return;\n    }\n\n    var dispatchAction = makeDispatchAction(payload, api);\n    this._ticket = '';\n    var dataByCoordSys = payload.dataByCoordSys;\n\n    if (payload.tooltip && payload.x != null && payload.y != null) {\n      var el = proxyRect;\n      el.x = payload.x;\n      el.y = payload.y;\n      el.update();\n      el.tooltip = payload.tooltip;\n\n      this._tryShow({\n        offsetX: payload.x,\n        offsetY: payload.y,\n        target: el\n      }, dispatchAction);\n    } else if (dataByCoordSys) {\n      this._tryShow({\n        offsetX: payload.x,\n        offsetY: payload.y,\n        position: payload.position,\n        dataByCoordSys: dataByCoordSys,\n        tooltipOption: payload.tooltipOption\n      }, dispatchAction);\n    } else if (payload.seriesIndex != null) {\n      if (this._manuallyAxisShowTip(tooltipModel, ecModel, api, payload)) {\n        return;\n      }\n\n      var pointInfo = findPointFromSeries(payload, ecModel);\n      var cx = pointInfo.point[0];\n      var cy = pointInfo.point[1];\n\n      if (cx != null && cy != null) {\n        this._tryShow({\n          offsetX: cx,\n          offsetY: cy,\n          position: payload.position,\n          target: pointInfo.el\n        }, dispatchAction);\n      }\n    } else if (payload.x != null && payload.y != null) {\n      api.dispatchAction({\n        type: 'updateAxisPointer',\n        x: payload.x,\n        y: payload.y\n      });\n\n      this._tryShow({\n        offsetX: payload.x,\n        offsetY: payload.y,\n        position: payload.position,\n        target: api.getZr().findHover(payload.x, payload.y).target\n      }, dispatchAction);\n    }\n  };\n\n  TooltipView.prototype.manuallyHideTip = function (tooltipModel, ecModel, api, payload) {\n    var tooltipContent = this._tooltipContent;\n\n    if (!this._alwaysShowContent && this._tooltipModel) {\n      tooltipContent.hideLater(this._tooltipModel.get('hideDelay'));\n    }\n\n    this._lastX = this._lastY = this._lastDataByCoordSys = null;\n\n    if (payload.from !== this.uid) {\n      this._hide(makeDispatchAction(payload, api));\n    }\n  };\n\n  TooltipView.prototype._manuallyAxisShowTip = function (tooltipModel, ecModel, api, payload) {\n    var seriesIndex = payload.seriesIndex;\n    var dataIndex = payload.dataIndex;\n    var coordSysAxesInfo = ecModel.getComponent('axisPointer').coordSysAxesInfo;\n\n    if (seriesIndex == null || dataIndex == null || coordSysAxesInfo == null) {\n      return;\n    }\n\n    var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n\n    if (!seriesModel) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var tooltipCascadedModel = buildTooltipModel([data.getItemModel(dataIndex), seriesModel, (seriesModel.coordinateSystem || {}).model, tooltipModel]);\n\n    if (tooltipCascadedModel.get('trigger') !== 'axis') {\n      return;\n    }\n\n    api.dispatchAction({\n      type: 'updateAxisPointer',\n      seriesIndex: seriesIndex,\n      dataIndex: dataIndex,\n      position: payload.position\n    });\n    return true;\n  };\n\n  TooltipView.prototype._tryShow = function (e, dispatchAction) {\n    var el = e.target;\n    var tooltipModel = this._tooltipModel;\n\n    if (!tooltipModel) {\n      return;\n    }\n\n    this._lastX = e.offsetX;\n    this._lastY = e.offsetY;\n    var dataByCoordSys = e.dataByCoordSys;\n\n    if (dataByCoordSys && dataByCoordSys.length) {\n      this._showAxisTooltip(dataByCoordSys, e);\n    } else if (el && findEventDispatcher(el, function (target) {\n      return getECData(target).dataIndex != null;\n    }, true)) {\n      this._lastDataByCoordSys = null;\n\n      this._showSeriesItemTooltip(e, el, dispatchAction);\n    } else if (el && el.tooltip) {\n      this._lastDataByCoordSys = null;\n\n      this._showComponentItemTooltip(e, el, dispatchAction);\n    } else {\n      this._lastDataByCoordSys = null;\n\n      this._hide(dispatchAction);\n    }\n  };\n\n  TooltipView.prototype._showOrMove = function (tooltipModel, cb) {\n    var delay = tooltipModel.get('showDelay');\n    cb = zrUtil.bind(cb, this);\n    clearTimeout(this._showTimout);\n    delay > 0 ? this._showTimout = setTimeout(cb, delay) : cb();\n  };\n\n  TooltipView.prototype._showAxisTooltip = function (dataByCoordSys, e) {\n    var ecModel = this._ecModel;\n    var globalTooltipModel = this._tooltipModel;\n    var point = [e.offsetX, e.offsetY];\n    var singleTooltipModel = buildTooltipModel([e.tooltipOption, globalTooltipModel]);\n    var renderMode = this._renderMode;\n    var cbParamsList = [];\n    var articleMarkup = createTooltipMarkup('section', {\n      blocks: [],\n      noHeader: true\n    });\n    var markupTextArrLegacy = [];\n    var markupStyleCreator = new TooltipMarkupStyleCreator();\n    each(dataByCoordSys, function (itemCoordSys) {\n      each(itemCoordSys.dataByAxis, function (axisItem) {\n        var axisModel = ecModel.getComponent(axisItem.axisDim + 'Axis', axisItem.axisIndex);\n        var axisValue = axisItem.value;\n\n        if (!axisModel || axisValue == null) {\n          return;\n        }\n\n        var axisValueLabel = axisPointerViewHelper.getValueLabel(axisValue, axisModel.axis, ecModel, axisItem.seriesDataIndices, axisItem.valueLabelOpt);\n        var axisSectionMarkup = createTooltipMarkup('section', {\n          header: axisValueLabel,\n          noHeader: !zrUtil.trim(axisValueLabel),\n          sortBlocks: true,\n          blocks: []\n        });\n        articleMarkup.blocks.push(axisSectionMarkup);\n        zrUtil.each(axisItem.seriesDataIndices, function (idxItem) {\n          var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\n          var dataIndex = idxItem.dataIndexInside;\n          var cbParams = series.getDataParams(dataIndex);\n          cbParams.axisDim = axisItem.axisDim;\n          cbParams.axisIndex = axisItem.axisIndex;\n          cbParams.axisType = axisItem.axisType;\n          cbParams.axisId = axisItem.axisId;\n          cbParams.axisValue = axisHelper.getAxisRawValue(axisModel.axis, {\n            value: axisValue\n          });\n          cbParams.axisValueLabel = axisValueLabel;\n          cbParams.marker = markupStyleCreator.makeTooltipMarker('item', formatUtil.convertToColorString(cbParams.color), renderMode);\n          var seriesTooltipResult = normalizeTooltipFormatResult(series.formatTooltip(dataIndex, true, null));\n\n          if (seriesTooltipResult.markupFragment) {\n            axisSectionMarkup.blocks.push(seriesTooltipResult.markupFragment);\n          }\n\n          if (seriesTooltipResult.markupText) {\n            markupTextArrLegacy.push(seriesTooltipResult.markupText);\n          }\n\n          cbParamsList.push(cbParams);\n        });\n      });\n    });\n    articleMarkup.blocks.reverse();\n    markupTextArrLegacy.reverse();\n    var positionExpr = e.position;\n    var orderMode = singleTooltipModel.get('order');\n    var builtMarkupText = buildTooltipMarkup(articleMarkup, markupStyleCreator, renderMode, orderMode, ecModel.get('useUTC'), singleTooltipModel.get('textStyle'));\n    builtMarkupText && markupTextArrLegacy.unshift(builtMarkupText);\n    var blockBreak = renderMode === 'richText' ? '\\n\\n' : '<br/>';\n    var allMarkupText = markupTextArrLegacy.join(blockBreak);\n\n    this._showOrMove(singleTooltipModel, function () {\n      if (this._updateContentNotChangedOnAxis(dataByCoordSys)) {\n        this._updatePosition(singleTooltipModel, positionExpr, point[0], point[1], this._tooltipContent, cbParamsList);\n      } else {\n        this._showTooltipContent(singleTooltipModel, allMarkupText, cbParamsList, Math.random() + '', point[0], point[1], positionExpr, null, markupStyleCreator);\n      }\n    });\n  };\n\n  TooltipView.prototype._showSeriesItemTooltip = function (e, el, dispatchAction) {\n    var dispatcher = findEventDispatcher(el, function (target) {\n      return getECData(target).dataIndex != null;\n    }, true);\n    var ecModel = this._ecModel;\n    var ecData = getECData(dispatcher);\n    var seriesIndex = ecData.seriesIndex;\n    var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n    var dataModel = ecData.dataModel || seriesModel;\n    var dataIndex = ecData.dataIndex;\n    var dataType = ecData.dataType;\n    var data = dataModel.getData(dataType);\n    var renderMode = this._renderMode;\n    var tooltipModel = buildTooltipModel([data.getItemModel(dataIndex), dataModel, seriesModel && (seriesModel.coordinateSystem || {}).model, this._tooltipModel]);\n    var tooltipTrigger = tooltipModel.get('trigger');\n\n    if (tooltipTrigger != null && tooltipTrigger !== 'item') {\n      return;\n    }\n\n    var params = dataModel.getDataParams(dataIndex, dataType);\n    var markupStyleCreator = new TooltipMarkupStyleCreator();\n    params.marker = markupStyleCreator.makeTooltipMarker('item', formatUtil.convertToColorString(params.color), renderMode);\n    var seriesTooltipResult = normalizeTooltipFormatResult(dataModel.formatTooltip(dataIndex, false, dataType));\n    var orderMode = tooltipModel.get('order');\n    var markupText = seriesTooltipResult.markupFragment ? buildTooltipMarkup(seriesTooltipResult.markupFragment, markupStyleCreator, renderMode, orderMode, ecModel.get('useUTC'), tooltipModel.get('textStyle')) : seriesTooltipResult.markupText;\n    var asyncTicket = 'item_' + dataModel.name + '_' + dataIndex;\n\n    this._showOrMove(tooltipModel, function () {\n      this._showTooltipContent(tooltipModel, markupText, params, asyncTicket, e.offsetX, e.offsetY, e.position, e.target, markupStyleCreator);\n    });\n\n    dispatchAction({\n      type: 'showTip',\n      dataIndexInside: dataIndex,\n      dataIndex: data.getRawIndex(dataIndex),\n      seriesIndex: seriesIndex,\n      from: this.uid\n    });\n  };\n\n  TooltipView.prototype._showComponentItemTooltip = function (e, el, dispatchAction) {\n    var tooltipOpt = el.tooltip;\n\n    if (zrUtil.isString(tooltipOpt)) {\n      var content = tooltipOpt;\n      tooltipOpt = {\n        content: content,\n        formatter: content\n      };\n    }\n\n    var subTooltipModel = new Model(tooltipOpt, this._tooltipModel, this._ecModel);\n    var defaultHtml = subTooltipModel.get('content');\n    var asyncTicket = Math.random() + '';\n    var markupStyleCreator = new TooltipMarkupStyleCreator();\n\n    this._showOrMove(subTooltipModel, function () {\n      this._showTooltipContent(subTooltipModel, defaultHtml, subTooltipModel.get('formatterParams') || {}, asyncTicket, e.offsetX, e.offsetY, e.position, el, markupStyleCreator);\n    });\n\n    dispatchAction({\n      type: 'showTip',\n      from: this.uid\n    });\n  };\n\n  TooltipView.prototype._showTooltipContent = function (tooltipModel, defaultHtml, params, asyncTicket, x, y, positionExpr, el, markupStyleCreator) {\n    this._ticket = '';\n\n    if (!tooltipModel.get('showContent') || !tooltipModel.get('show')) {\n      return;\n    }\n\n    var tooltipContent = this._tooltipContent;\n    var formatter = tooltipModel.get('formatter');\n    positionExpr = positionExpr || tooltipModel.get('position');\n    var html = defaultHtml;\n\n    var nearPoint = this._getNearestPoint([x, y], params, tooltipModel.get('trigger'), tooltipModel.get('borderColor'));\n\n    if (formatter && zrUtil.isString(formatter)) {\n      var useUTC = tooltipModel.ecModel.get('useUTC');\n      var params0 = zrUtil.isArray(params) ? params[0] : params;\n      var isTimeAxis = params0 && params0.axisType && params0.axisType.indexOf('time') >= 0;\n      html = formatter;\n\n      if (isTimeAxis) {\n        html = timeFormat(params0.axisValue, html, useUTC);\n      }\n\n      html = formatUtil.formatTpl(html, params, true);\n    } else if (zrUtil.isFunction(formatter)) {\n      var callback = bind(function (cbTicket, html) {\n        if (cbTicket === this._ticket) {\n          tooltipContent.setContent(html, markupStyleCreator, tooltipModel, nearPoint.color, positionExpr);\n\n          this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\n        }\n      }, this);\n      this._ticket = asyncTicket;\n      html = formatter(params, asyncTicket, callback);\n    }\n\n    tooltipContent.setContent(html, markupStyleCreator, tooltipModel, nearPoint.color, positionExpr);\n    tooltipContent.show(tooltipModel, nearPoint.color);\n\n    this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\n  };\n\n  TooltipView.prototype._getNearestPoint = function (point, tooltipDataParams, trigger, borderColor) {\n    if (trigger === 'axis' || zrUtil.isArray(tooltipDataParams)) {\n      return {\n        color: borderColor || (this._renderMode === 'html' ? '#fff' : 'none')\n      };\n    }\n\n    if (!zrUtil.isArray(tooltipDataParams)) {\n      return {\n        color: borderColor || tooltipDataParams.color || tooltipDataParams.borderColor\n      };\n    }\n  };\n\n  TooltipView.prototype._updatePosition = function (tooltipModel, positionExpr, x, y, content, params, el) {\n    var viewWidth = this._api.getWidth();\n\n    var viewHeight = this._api.getHeight();\n\n    positionExpr = positionExpr || tooltipModel.get('position');\n    var contentSize = content.getSize();\n    var align = tooltipModel.get('align');\n    var vAlign = tooltipModel.get('verticalAlign');\n    var rect = el && el.getBoundingRect().clone();\n    el && rect.applyTransform(el.transform);\n\n    if (zrUtil.isFunction(positionExpr)) {\n      positionExpr = positionExpr([x, y], params, content.el, rect, {\n        viewSize: [viewWidth, viewHeight],\n        contentSize: contentSize.slice()\n      });\n    }\n\n    if (zrUtil.isArray(positionExpr)) {\n      x = parsePercent(positionExpr[0], viewWidth);\n      y = parsePercent(positionExpr[1], viewHeight);\n    } else if (zrUtil.isObject(positionExpr)) {\n      var boxLayoutPosition = positionExpr;\n      boxLayoutPosition.width = contentSize[0];\n      boxLayoutPosition.height = contentSize[1];\n      var layoutRect = layoutUtil.getLayoutRect(boxLayoutPosition, {\n        width: viewWidth,\n        height: viewHeight\n      });\n      x = layoutRect.x;\n      y = layoutRect.y;\n      align = null;\n      vAlign = null;\n    } else if (zrUtil.isString(positionExpr) && el) {\n      var pos = calcTooltipPosition(positionExpr, rect, contentSize);\n      x = pos[0];\n      y = pos[1];\n    } else {\n      var pos = refixTooltipPosition(x, y, content, viewWidth, viewHeight, align ? null : 20, vAlign ? null : 20);\n      x = pos[0];\n      y = pos[1];\n    }\n\n    align && (x -= isCenterAlign(align) ? contentSize[0] / 2 : align === 'right' ? contentSize[0] : 0);\n    vAlign && (y -= isCenterAlign(vAlign) ? contentSize[1] / 2 : vAlign === 'bottom' ? contentSize[1] : 0);\n\n    if (shouldTooltipConfine(tooltipModel)) {\n      var pos = confineTooltipPosition(x, y, content, viewWidth, viewHeight);\n      x = pos[0];\n      y = pos[1];\n    }\n\n    content.moveTo(x, y);\n  };\n\n  TooltipView.prototype._updateContentNotChangedOnAxis = function (dataByCoordSys) {\n    var lastCoordSys = this._lastDataByCoordSys;\n    var contentNotChanged = !!lastCoordSys && lastCoordSys.length === dataByCoordSys.length;\n    contentNotChanged && each(lastCoordSys, function (lastItemCoordSys, indexCoordSys) {\n      var lastDataByAxis = lastItemCoordSys.dataByAxis || [];\n      var thisItemCoordSys = dataByCoordSys[indexCoordSys] || {};\n      var thisDataByAxis = thisItemCoordSys.dataByAxis || [];\n      contentNotChanged = contentNotChanged && lastDataByAxis.length === thisDataByAxis.length;\n      contentNotChanged && each(lastDataByAxis, function (lastItem, indexAxis) {\n        var thisItem = thisDataByAxis[indexAxis] || {};\n        var lastIndices = lastItem.seriesDataIndices || [];\n        var newIndices = thisItem.seriesDataIndices || [];\n        contentNotChanged = contentNotChanged && lastItem.value === thisItem.value && lastItem.axisType === thisItem.axisType && lastItem.axisId === thisItem.axisId && lastIndices.length === newIndices.length;\n        contentNotChanged && each(lastIndices, function (lastIdxItem, j) {\n          var newIdxItem = newIndices[j];\n          contentNotChanged = contentNotChanged && lastIdxItem.seriesIndex === newIdxItem.seriesIndex && lastIdxItem.dataIndex === newIdxItem.dataIndex;\n        });\n      });\n    });\n    this._lastDataByCoordSys = dataByCoordSys;\n    return !!contentNotChanged;\n  };\n\n  TooltipView.prototype._hide = function (dispatchAction) {\n    this._lastDataByCoordSys = null;\n    dispatchAction({\n      type: 'hideTip',\n      from: this.uid\n    });\n  };\n\n  TooltipView.prototype.dispose = function (ecModel, api) {\n    if (env.node) {\n      return;\n    }\n\n    this._tooltipContent.dispose();\n\n    globalListener.unregister('itemTooltip', api);\n  };\n\n  TooltipView.type = 'tooltip';\n  return TooltipView;\n}(ComponentView);\n\nfunction buildTooltipModel(modelCascade) {\n  var resultModel = modelCascade.pop();\n\n  while (modelCascade.length) {\n    var tooltipOpt = modelCascade.pop();\n\n    if (tooltipOpt) {\n      if (tooltipOpt instanceof Model) {\n        tooltipOpt = tooltipOpt.get('tooltip', true);\n      }\n\n      if (zrUtil.isString(tooltipOpt)) {\n        tooltipOpt = {\n          formatter: tooltipOpt\n        };\n      }\n\n      resultModel = new Model(tooltipOpt, resultModel, resultModel.ecModel);\n    }\n  }\n\n  return resultModel;\n}\n\nfunction makeDispatchAction(payload, api) {\n  return payload.dispatchAction || zrUtil.bind(api.dispatchAction, api);\n}\n\nfunction refixTooltipPosition(x, y, content, viewWidth, viewHeight, gapH, gapV) {\n  var size = content.getOuterSize();\n  var width = size.width;\n  var height = size.height;\n\n  if (gapH != null) {\n    if (x + width + gapH + 2 > viewWidth) {\n      x -= width + gapH;\n    } else {\n      x += gapH;\n    }\n  }\n\n  if (gapV != null) {\n    if (y + height + gapV > viewHeight) {\n      y -= height + gapV;\n    } else {\n      y += gapV;\n    }\n  }\n\n  return [x, y];\n}\n\nfunction confineTooltipPosition(x, y, content, viewWidth, viewHeight) {\n  var size = content.getOuterSize();\n  var width = size.width;\n  var height = size.height;\n  x = Math.min(x + width, viewWidth) - width;\n  y = Math.min(y + height, viewHeight) - height;\n  x = Math.max(x, 0);\n  y = Math.max(y, 0);\n  return [x, y];\n}\n\nfunction calcTooltipPosition(position, rect, contentSize) {\n  var domWidth = contentSize[0];\n  var domHeight = contentSize[1];\n  var gap = 10;\n  var offset = 5;\n  var x = 0;\n  var y = 0;\n  var rectWidth = rect.width;\n  var rectHeight = rect.height;\n\n  switch (position) {\n    case 'inside':\n      x = rect.x + rectWidth / 2 - domWidth / 2;\n      y = rect.y + rectHeight / 2 - domHeight / 2;\n      break;\n\n    case 'top':\n      x = rect.x + rectWidth / 2 - domWidth / 2;\n      y = rect.y - domHeight - gap;\n      break;\n\n    case 'bottom':\n      x = rect.x + rectWidth / 2 - domWidth / 2;\n      y = rect.y + rectHeight + gap;\n      break;\n\n    case 'left':\n      x = rect.x - domWidth - gap - offset;\n      y = rect.y + rectHeight / 2 - domHeight / 2;\n      break;\n\n    case 'right':\n      x = rect.x + rectWidth + gap + offset;\n      y = rect.y + rectHeight / 2 - domHeight / 2;\n  }\n\n  return [x, y];\n}\n\nfunction isCenterAlign(align) {\n  return align === 'center' || align === 'middle';\n}\n\nexport default TooltipView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { install as installAxisPointer } from '../axisPointer/install';\nimport { use } from '../../extension';\nimport TooltipModel from './TooltipModel';\nimport TooltipView from './TooltipView';\nexport function install(registers) {\n  use(installAxisPointer);\n  registers.registerComponentModel(TooltipModel);\n  registers.registerComponentView(TooltipView);\n  registers.registerAction({\n    type: 'showTip',\n    event: 'showTip',\n    update: 'tooltip:manuallyShowTip'\n  }, function () {});\n  registers.registerAction({\n    type: 'hideTip',\n    event: 'hideTip',\n    update: 'tooltip:manuallyHideTip'\n  }, function () {});\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { normalizeToArray } from '../../util/model';\nvar DEFAULT_TOOLBOX_BTNS = ['rect', 'polygon', 'keep', 'clear'];\nexport default function brushPreprocessor(option, isNew) {\n  var brushComponents = normalizeToArray(option ? option.brush : []);\n\n  if (!brushComponents.length) {\n    return;\n  }\n\n  var brushComponentSpecifiedBtns = [];\n  zrUtil.each(brushComponents, function (brushOpt) {\n    var tbs = brushOpt.hasOwnProperty('toolbox') ? brushOpt.toolbox : [];\n\n    if (tbs instanceof Array) {\n      brushComponentSpecifiedBtns = brushComponentSpecifiedBtns.concat(tbs);\n    }\n  });\n  var toolbox = option && option.toolbox;\n\n  if (zrUtil.isArray(toolbox)) {\n    toolbox = toolbox[0];\n  }\n\n  if (!toolbox) {\n    toolbox = {\n      feature: {}\n    };\n    option.toolbox = [toolbox];\n  }\n\n  var toolboxFeature = toolbox.feature || (toolbox.feature = {});\n  var toolboxBrush = toolboxFeature.brush || (toolboxFeature.brush = {});\n  var brushTypes = toolboxBrush.type || (toolboxBrush.type = []);\n  brushTypes.push.apply(brushTypes, brushComponentSpecifiedBtns);\n  removeDuplicate(brushTypes);\n\n  if (isNew && !brushTypes.length) {\n    brushTypes.push.apply(brushTypes, DEFAULT_TOOLBOX_BTNS);\n  }\n}\n\nfunction removeDuplicate(arr) {\n  var map = {};\n  zrUtil.each(arr, function (val) {\n    map[val] = 1;\n  });\n  arr.length = 0;\n  zrUtil.each(map, function (flag, val) {\n    arr.push(val);\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport VisualMapping from './VisualMapping';\nimport { getItemVisualFromData, setItemVisualFromData } from './helper';\nvar each = zrUtil.each;\n\nfunction hasKeys(obj) {\n  if (obj) {\n    for (var name_1 in obj) {\n      if (obj.hasOwnProperty(name_1)) {\n        return true;\n      }\n    }\n  }\n}\n\nexport function createVisualMappings(option, stateList, supplementVisualOption) {\n  var visualMappings = {};\n  each(stateList, function (state) {\n    var mappings = visualMappings[state] = createMappings();\n    each(option[state], function (visualData, visualType) {\n      if (!VisualMapping.isValidType(visualType)) {\n        return;\n      }\n\n      var mappingOption = {\n        type: visualType,\n        visual: visualData\n      };\n      supplementVisualOption && supplementVisualOption(mappingOption, state);\n      mappings[visualType] = new VisualMapping(mappingOption);\n\n      if (visualType === 'opacity') {\n        mappingOption = zrUtil.clone(mappingOption);\n        mappingOption.type = 'colorAlpha';\n        mappings.__hidden.__alphaForOpacity = new VisualMapping(mappingOption);\n      }\n    });\n  });\n  return visualMappings;\n\n  function createMappings() {\n    var Creater = function () {};\n\n    Creater.prototype.__hidden = Creater.prototype;\n    var obj = new Creater();\n    return obj;\n  }\n}\nexport function replaceVisualOption(thisOption, newOption, keys) {\n  var has;\n  zrUtil.each(keys, function (key) {\n    if (newOption.hasOwnProperty(key) && hasKeys(newOption[key])) {\n      has = true;\n    }\n  });\n  has && zrUtil.each(keys, function (key) {\n    if (newOption.hasOwnProperty(key) && hasKeys(newOption[key])) {\n      thisOption[key] = zrUtil.clone(newOption[key]);\n    } else {\n      delete thisOption[key];\n    }\n  });\n}\nexport function applyVisual(stateList, visualMappings, data, getValueState, scope, dimension) {\n  var visualTypesMap = {};\n  zrUtil.each(stateList, function (state) {\n    var visualTypes = VisualMapping.prepareVisualTypes(visualMappings[state]);\n    visualTypesMap[state] = visualTypes;\n  });\n  var dataIndex;\n\n  function getVisual(key) {\n    return getItemVisualFromData(data, dataIndex, key);\n  }\n\n  function setVisual(key, value) {\n    setItemVisualFromData(data, dataIndex, key, value);\n  }\n\n  if (dimension == null) {\n    data.each(eachItem);\n  } else {\n    data.each([dimension], eachItem);\n  }\n\n  function eachItem(valueOrIndex, index) {\n    dataIndex = dimension == null ? valueOrIndex : index;\n    var rawDataItem = data.getRawDataItem(dataIndex);\n\n    if (rawDataItem && rawDataItem.visualMap === false) {\n      return;\n    }\n\n    var valueState = getValueState.call(scope, valueOrIndex);\n    var mappings = visualMappings[valueState];\n    var visualTypes = visualTypesMap[valueState];\n\n    for (var i = 0, len = visualTypes.length; i < len; i++) {\n      var type = visualTypes[i];\n      mappings[type] && mappings[type].applyVisual(valueOrIndex, getVisual, setVisual);\n    }\n  }\n}\nexport function incrementalApplyVisual(stateList, visualMappings, getValueState, dim) {\n  var visualTypesMap = {};\n  zrUtil.each(stateList, function (state) {\n    var visualTypes = VisualMapping.prepareVisualTypes(visualMappings[state]);\n    visualTypesMap[state] = visualTypes;\n  });\n  return {\n    progress: function progress(params, data) {\n      var dimName;\n\n      if (dim != null) {\n        dimName = data.getDimension(dim);\n      }\n\n      function getVisual(key) {\n        return getItemVisualFromData(data, dataIndex, key);\n      }\n\n      function setVisual(key, value) {\n        setItemVisualFromData(data, dataIndex, key, value);\n      }\n\n      var dataIndex;\n\n      while ((dataIndex = params.next()) != null) {\n        var rawDataItem = data.getRawDataItem(dataIndex);\n\n        if (rawDataItem && rawDataItem.visualMap === false) {\n          continue;\n        }\n\n        var value = dim != null ? data.get(dimName, dataIndex) : dataIndex;\n        var valueState = getValueState(value);\n        var mappings = visualMappings[valueState];\n        var visualTypes = visualTypesMap[valueState];\n\n        for (var i = 0, len = visualTypes.length; i < len; i++) {\n          var type = visualTypes[i];\n          mappings[type] && mappings[type].applyVisual(value, getVisual, setVisual);\n        }\n      }\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as polygonContain from 'zrender/lib/contain/polygon';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { linePolygonIntersect } from '../../util/graphic';\nexport function makeBrushCommonSelectorForSeries(area) {\n  var brushType = area.brushType;\n  var selectors = {\n    point: function (itemLayout) {\n      return selector[brushType].point(itemLayout, selectors, area);\n    },\n    rect: function (itemLayout) {\n      return selector[brushType].rect(itemLayout, selectors, area);\n    }\n  };\n  return selectors;\n}\nvar selector = {\n  lineX: getLineSelectors(0),\n  lineY: getLineSelectors(1),\n  rect: {\n    point: function (itemLayout, selectors, area) {\n      return itemLayout && area.boundingRect.contain(itemLayout[0], itemLayout[1]);\n    },\n    rect: function (itemLayout, selectors, area) {\n      return itemLayout && area.boundingRect.intersect(itemLayout);\n    }\n  },\n  polygon: {\n    point: function (itemLayout, selectors, area) {\n      return itemLayout && area.boundingRect.contain(itemLayout[0], itemLayout[1]) && polygonContain.contain(area.range, itemLayout[0], itemLayout[1]);\n    },\n    rect: function (itemLayout, selectors, area) {\n      var points = area.range;\n\n      if (!itemLayout || points.length <= 1) {\n        return false;\n      }\n\n      var x = itemLayout.x;\n      var y = itemLayout.y;\n      var width = itemLayout.width;\n      var height = itemLayout.height;\n      var p = points[0];\n\n      if (polygonContain.contain(points, x, y) || polygonContain.contain(points, x + width, y) || polygonContain.contain(points, x, y + height) || polygonContain.contain(points, x + width, y + height) || BoundingRect.create(itemLayout).contain(p[0], p[1]) || linePolygonIntersect(x, y, x + width, y, points) || linePolygonIntersect(x, y, x, y + height, points) || linePolygonIntersect(x + width, y, x + width, y + height, points) || linePolygonIntersect(x, y + height, x + width, y + height, points)) {\n        return true;\n      }\n    }\n  }\n};\n\nfunction getLineSelectors(xyIndex) {\n  var xy = ['x', 'y'];\n  var wh = ['width', 'height'];\n  return {\n    point: function (itemLayout, selectors, area) {\n      if (itemLayout) {\n        var range = area.range;\n        var p = itemLayout[xyIndex];\n        return inLineRange(p, range);\n      }\n    },\n    rect: function (itemLayout, selectors, area) {\n      if (itemLayout) {\n        var range = area.range;\n        var layoutRange = [itemLayout[xy[xyIndex]], itemLayout[xy[xyIndex]] + itemLayout[wh[xyIndex]]];\n        layoutRange[1] < layoutRange[0] && layoutRange.reverse();\n        return inLineRange(layoutRange[0], range) || inLineRange(layoutRange[1], range) || inLineRange(range[0], layoutRange) || inLineRange(range[1], layoutRange);\n      }\n    }\n  };\n}\n\nfunction inLineRange(p, range) {\n  return range[0] <= p && p <= range[1];\n}\n\nexport default selector;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport * as visualSolution from '../../visual/visualSolution';\nimport { makeBrushCommonSelectorForSeries } from './selector';\nimport * as throttleUtil from '../../util/throttle';\nimport BrushTargetManager from '../helper/BrushTargetManager';\nvar STATE_LIST = ['inBrush', 'outOfBrush'];\nvar DISPATCH_METHOD = '__ecBrushSelect';\nvar DISPATCH_FLAG = '__ecInBrushSelectEvent';\n;\nexport function layoutCovers(ecModel) {\n  ecModel.eachComponent({\n    mainType: 'brush'\n  }, function (brushModel) {\n    var brushTargetManager = brushModel.brushTargetManager = new BrushTargetManager(brushModel.option, ecModel);\n    brushTargetManager.setInputRanges(brushModel.areas, ecModel);\n  });\n}\nexport default function brushVisual(ecModel, api, payload) {\n  var brushSelected = [];\n  var throttleType;\n  var throttleDelay;\n  ecModel.eachComponent({\n    mainType: 'brush'\n  }, function (brushModel) {\n    payload && payload.type === 'takeGlobalCursor' && brushModel.setBrushOption(payload.key === 'brush' ? payload.brushOption : {\n      brushType: false\n    });\n  });\n  layoutCovers(ecModel);\n  ecModel.eachComponent({\n    mainType: 'brush'\n  }, function (brushModel, brushIndex) {\n    var thisBrushSelected = {\n      brushId: brushModel.id,\n      brushIndex: brushIndex,\n      brushName: brushModel.name,\n      areas: zrUtil.clone(brushModel.areas),\n      selected: []\n    };\n    brushSelected.push(thisBrushSelected);\n    var brushOption = brushModel.option;\n    var brushLink = brushOption.brushLink;\n    var linkedSeriesMap = [];\n    var selectedDataIndexForLink = [];\n    var rangeInfoBySeries = [];\n    var hasBrushExists = false;\n\n    if (!brushIndex) {\n      throttleType = brushOption.throttleType;\n      throttleDelay = brushOption.throttleDelay;\n    }\n\n    var areas = zrUtil.map(brushModel.areas, function (area) {\n      var builder = boundingRectBuilders[area.brushType];\n      var selectableArea = zrUtil.defaults({\n        boundingRect: builder ? builder(area) : void 0\n      }, area);\n      selectableArea.selectors = makeBrushCommonSelectorForSeries(selectableArea);\n      return selectableArea;\n    });\n    var visualMappings = visualSolution.createVisualMappings(brushModel.option, STATE_LIST, function (mappingOption) {\n      mappingOption.mappingMethod = 'fixed';\n    });\n    zrUtil.isArray(brushLink) && zrUtil.each(brushLink, function (seriesIndex) {\n      linkedSeriesMap[seriesIndex] = 1;\n    });\n\n    function linkOthers(seriesIndex) {\n      return brushLink === 'all' || !!linkedSeriesMap[seriesIndex];\n    }\n\n    function brushed(rangeInfoList) {\n      return !!rangeInfoList.length;\n    }\n\n    ecModel.eachSeries(function (seriesModel, seriesIndex) {\n      var rangeInfoList = rangeInfoBySeries[seriesIndex] = [];\n      seriesModel.subType === 'parallel' ? stepAParallel(seriesModel, seriesIndex) : stepAOthers(seriesModel, seriesIndex, rangeInfoList);\n    });\n\n    function stepAParallel(seriesModel, seriesIndex) {\n      var coordSys = seriesModel.coordinateSystem;\n      hasBrushExists = hasBrushExists || coordSys.hasAxisBrushed();\n      linkOthers(seriesIndex) && coordSys.eachActiveState(seriesModel.getData(), function (activeState, dataIndex) {\n        activeState === 'active' && (selectedDataIndexForLink[dataIndex] = 1);\n      });\n    }\n\n    function stepAOthers(seriesModel, seriesIndex, rangeInfoList) {\n      if (!seriesModel.brushSelector || brushModelNotControll(brushModel, seriesIndex)) {\n        return;\n      }\n\n      zrUtil.each(areas, function (area) {\n        if (brushModel.brushTargetManager.controlSeries(area, seriesModel, ecModel)) {\n          rangeInfoList.push(area);\n        }\n\n        hasBrushExists = hasBrushExists || brushed(rangeInfoList);\n      });\n\n      if (linkOthers(seriesIndex) && brushed(rangeInfoList)) {\n        var data_1 = seriesModel.getData();\n        data_1.each(function (dataIndex) {\n          if (checkInRange(seriesModel, rangeInfoList, data_1, dataIndex)) {\n            selectedDataIndexForLink[dataIndex] = 1;\n          }\n        });\n      }\n    }\n\n    ecModel.eachSeries(function (seriesModel, seriesIndex) {\n      var seriesBrushSelected = {\n        seriesId: seriesModel.id,\n        seriesIndex: seriesIndex,\n        seriesName: seriesModel.name,\n        dataIndex: []\n      };\n      thisBrushSelected.selected.push(seriesBrushSelected);\n      var rangeInfoList = rangeInfoBySeries[seriesIndex];\n      var data = seriesModel.getData();\n      var getValueState = linkOthers(seriesIndex) ? function (dataIndex) {\n        return selectedDataIndexForLink[dataIndex] ? (seriesBrushSelected.dataIndex.push(data.getRawIndex(dataIndex)), 'inBrush') : 'outOfBrush';\n      } : function (dataIndex) {\n        return checkInRange(seriesModel, rangeInfoList, data, dataIndex) ? (seriesBrushSelected.dataIndex.push(data.getRawIndex(dataIndex)), 'inBrush') : 'outOfBrush';\n      };\n      (linkOthers(seriesIndex) ? hasBrushExists : brushed(rangeInfoList)) && visualSolution.applyVisual(STATE_LIST, visualMappings, data, getValueState);\n    });\n  });\n  dispatchAction(api, throttleType, throttleDelay, brushSelected, payload);\n}\n;\n\nfunction dispatchAction(api, throttleType, throttleDelay, brushSelected, payload) {\n  if (!payload) {\n    return;\n  }\n\n  var zr = api.getZr();\n\n  if (zr[DISPATCH_FLAG]) {\n    return;\n  }\n\n  if (!zr[DISPATCH_METHOD]) {\n    zr[DISPATCH_METHOD] = doDispatch;\n  }\n\n  var fn = throttleUtil.createOrUpdate(zr, DISPATCH_METHOD, throttleDelay, throttleType);\n  fn(api, brushSelected);\n}\n\nfunction doDispatch(api, brushSelected) {\n  if (!api.isDisposed()) {\n    var zr = api.getZr();\n    zr[DISPATCH_FLAG] = true;\n    api.dispatchAction({\n      type: 'brushSelect',\n      batch: brushSelected\n    });\n    zr[DISPATCH_FLAG] = false;\n  }\n}\n\nfunction checkInRange(seriesModel, rangeInfoList, data, dataIndex) {\n  for (var i = 0, len = rangeInfoList.length; i < len; i++) {\n    var area = rangeInfoList[i];\n\n    if (seriesModel.brushSelector(dataIndex, data, area.selectors, area)) {\n      return true;\n    }\n  }\n}\n\nfunction brushModelNotControll(brushModel, seriesIndex) {\n  var seriesIndices = brushModel.option.seriesIndex;\n  return seriesIndices != null && seriesIndices !== 'all' && (zrUtil.isArray(seriesIndices) ? zrUtil.indexOf(seriesIndices, seriesIndex) < 0 : seriesIndex !== seriesIndices);\n}\n\nvar boundingRectBuilders = {\n  rect: function (area) {\n    return getBoundingRectFromMinMax(area.range);\n  },\n  polygon: function (area) {\n    var minMax;\n    var range = area.range;\n\n    for (var i = 0, len = range.length; i < len; i++) {\n      minMax = minMax || [[Infinity, -Infinity], [Infinity, -Infinity]];\n      var rg = range[i];\n      rg[0] < minMax[0][0] && (minMax[0][0] = rg[0]);\n      rg[0] > minMax[0][1] && (minMax[0][1] = rg[0]);\n      rg[1] < minMax[1][0] && (minMax[1][0] = rg[1]);\n      rg[1] > minMax[1][1] && (minMax[1][1] = rg[1]);\n    }\n\n    return minMax && getBoundingRectFromMinMax(minMax);\n  }\n};\n\nfunction getBoundingRectFromMinMax(minMax) {\n  return new BoundingRect(minMax[0][0], minMax[1][0], minMax[0][1] - minMax[0][0], minMax[1][1] - minMax[1][0]);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BrushController from '../helper/BrushController';\nimport { layoutCovers } from './visualEncoding';\nimport ComponentView from '../../view/Component';\n\nvar BrushView = function (_super) {\n  __extends(BrushView, _super);\n\n  function BrushView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BrushView.type;\n    return _this;\n  }\n\n  BrushView.prototype.init = function (ecModel, api) {\n    this.ecModel = ecModel;\n    this.api = api;\n    this.model;\n    (this._brushController = new BrushController(api.getZr())).on('brush', zrUtil.bind(this._onBrush, this)).mount();\n  };\n\n  BrushView.prototype.render = function (brushModel, ecModel, api, payload) {\n    this.model = brushModel;\n\n    this._updateController(brushModel, ecModel, api, payload);\n  };\n\n  BrushView.prototype.updateTransform = function (brushModel, ecModel, api, payload) {\n    layoutCovers(ecModel);\n\n    this._updateController(brushModel, ecModel, api, payload);\n  };\n\n  BrushView.prototype.updateVisual = function (brushModel, ecModel, api, payload) {\n    this.updateTransform(brushModel, ecModel, api, payload);\n  };\n\n  BrushView.prototype.updateView = function (brushModel, ecModel, api, payload) {\n    this._updateController(brushModel, ecModel, api, payload);\n  };\n\n  BrushView.prototype._updateController = function (brushModel, ecModel, api, payload) {\n    (!payload || payload.$from !== brushModel.id) && this._brushController.setPanels(brushModel.brushTargetManager.makePanelOpts(api)).enableBrush(brushModel.brushOption).updateCovers(brushModel.areas.slice());\n  };\n\n  BrushView.prototype.dispose = function () {\n    this._brushController.dispose();\n  };\n\n  BrushView.prototype._onBrush = function (eventParam) {\n    var modelId = this.model.id;\n    var areas = this.model.brushTargetManager.setOutputRanges(eventParam.areas, this.ecModel);\n    (!eventParam.isEnd || eventParam.removeOnClick) && this.api.dispatchAction({\n      type: 'brush',\n      brushId: modelId,\n      areas: zrUtil.clone(areas),\n      $from: modelId\n    });\n    eventParam.isEnd && this.api.dispatchAction({\n      type: 'brushEnd',\n      brushId: modelId,\n      areas: zrUtil.clone(areas),\n      $from: modelId\n    });\n  };\n\n  BrushView.type = 'brush';\n  return BrushView;\n}(ComponentView);\n\nexport default BrushView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as visualSolution from '../../visual/visualSolution';\nimport Model from '../../model/Model';\nimport ComponentModel from '../../model/Component';\nvar DEFAULT_OUT_OF_BRUSH_COLOR = '#ddd';\n\nvar BrushModel = function (_super) {\n  __extends(BrushModel, _super);\n\n  function BrushModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BrushModel.type;\n    _this.areas = [];\n    _this.brushOption = {};\n    return _this;\n  }\n\n  BrushModel.prototype.optionUpdated = function (newOption, isInit) {\n    var thisOption = this.option;\n    !isInit && visualSolution.replaceVisualOption(thisOption, newOption, ['inBrush', 'outOfBrush']);\n    var inBrush = thisOption.inBrush = thisOption.inBrush || {};\n    thisOption.outOfBrush = thisOption.outOfBrush || {\n      color: DEFAULT_OUT_OF_BRUSH_COLOR\n    };\n\n    if (!inBrush.hasOwnProperty('liftZ')) {\n      inBrush.liftZ = 5;\n    }\n  };\n\n  BrushModel.prototype.setAreas = function (areas) {\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.assert(zrUtil.isArray(areas));\n      zrUtil.each(areas, function (area) {\n        zrUtil.assert(area.brushType, 'Illegal areas');\n      });\n    }\n\n    if (!areas) {\n      return;\n    }\n\n    this.areas = zrUtil.map(areas, function (area) {\n      return generateBrushOption(this.option, area);\n    }, this);\n  };\n\n  BrushModel.prototype.setBrushOption = function (brushOption) {\n    this.brushOption = generateBrushOption(this.option, brushOption);\n    this.brushType = this.brushOption.brushType;\n  };\n\n  BrushModel.type = 'brush';\n  BrushModel.dependencies = ['geo', 'grid', 'xAxis', 'yAxis', 'parallel', 'series'];\n  BrushModel.defaultOption = {\n    seriesIndex: 'all',\n    brushType: 'rect',\n    brushMode: 'single',\n    transformable: true,\n    brushStyle: {\n      borderWidth: 1,\n      color: 'rgba(210,219,238,0.3)',\n      borderColor: '#D2DBEE'\n    },\n    throttleType: 'fixRate',\n    throttleDelay: 0,\n    removeOnClick: true,\n    z: 10000\n  };\n  return BrushModel;\n}(ComponentModel);\n\nfunction generateBrushOption(option, brushOption) {\n  return zrUtil.merge({\n    brushType: option.brushType,\n    brushMode: option.brushMode,\n    transformable: option.transformable,\n    brushStyle: new Model(option.brushStyle).getItemStyle(),\n    removeOnClick: option.removeOnClick,\n    z: option.z\n  }, brushOption, true);\n}\n\nexport default BrushModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { ToolboxFeature } from '../featureManager';\nvar ICON_TYPES = ['rect', 'polygon', 'lineX', 'lineY', 'keep', 'clear'];\n\nvar BrushFeature = function (_super) {\n  __extends(BrushFeature, _super);\n\n  function BrushFeature() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  BrushFeature.prototype.render = function (featureModel, ecModel, api) {\n    var brushType;\n    var brushMode;\n    var isBrushed;\n    ecModel.eachComponent({\n      mainType: 'brush'\n    }, function (brushModel) {\n      brushType = brushModel.brushType;\n      brushMode = brushModel.brushOption.brushMode || 'single';\n      isBrushed = isBrushed || !!brushModel.areas.length;\n    });\n    this._brushType = brushType;\n    this._brushMode = brushMode;\n    zrUtil.each(featureModel.get('type', true), function (type) {\n      featureModel.setIconStatus(type, (type === 'keep' ? brushMode === 'multiple' : type === 'clear' ? isBrushed : type === brushType) ? 'emphasis' : 'normal');\n    });\n  };\n\n  BrushFeature.prototype.updateView = function (featureModel, ecModel, api) {\n    this.render(featureModel, ecModel, api);\n  };\n\n  BrushFeature.prototype.getIcons = function () {\n    var model = this.model;\n    var availableIcons = model.get('icon', true);\n    var icons = {};\n    zrUtil.each(model.get('type', true), function (type) {\n      if (availableIcons[type]) {\n        icons[type] = availableIcons[type];\n      }\n    });\n    return icons;\n  };\n\n  ;\n\n  BrushFeature.prototype.onclick = function (ecModel, api, type) {\n    var brushType = this._brushType;\n    var brushMode = this._brushMode;\n\n    if (type === 'clear') {\n      api.dispatchAction({\n        type: 'axisAreaSelect',\n        intervals: []\n      });\n      api.dispatchAction({\n        type: 'brush',\n        command: 'clear',\n        areas: []\n      });\n    } else {\n      api.dispatchAction({\n        type: 'takeGlobalCursor',\n        key: 'brush',\n        brushOption: {\n          brushType: type === 'keep' ? brushType : brushType === type ? false : type,\n          brushMode: type === 'keep' ? brushMode === 'multiple' ? 'single' : 'multiple' : brushMode\n        }\n      });\n    }\n  };\n\n  ;\n\n  BrushFeature.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      type: ICON_TYPES.slice(),\n      icon: {\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',\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',\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',\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',\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',\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'\n      },\n      title: ecModel.getLocale(['toolbox', 'brush', 'title'])\n    };\n    return defaultOption;\n  };\n\n  return BrushFeature;\n}(ToolboxFeature);\n\nexport default BrushFeature;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport brushPreprocessor from './preprocessor';\nimport BrushView from './BrushView';\nimport BrushModel from './BrushModel';\nimport brushVisual from './visualEncoding';\nimport BrushFeature from '../toolbox/feature/Brush';\nimport { registerFeature } from '../toolbox/featureManager';\nexport function install(registers) {\n  registers.registerComponentView(BrushView);\n  registers.registerComponentModel(BrushModel);\n  registers.registerPreprocessor(brushPreprocessor);\n  registers.registerVisual(registers.PRIORITY.VISUAL.BRUSH, brushVisual);\n  registers.registerAction({\n    type: 'brush',\n    event: 'brush',\n    update: 'updateVisual'\n  }, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'brush',\n      query: payload\n    }, function (brushModel) {\n      brushModel.setAreas(payload.areas);\n    });\n  });\n  registers.registerAction({\n    type: 'brushSelect',\n    event: 'brushSelected',\n    update: 'none'\n  }, function () {});\n  registers.registerAction({\n    type: 'brushEnd',\n    event: 'brushEnd',\n    update: 'none'\n  }, function () {});\n  registerFeature('brush', BrushFeature);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { createTextStyle } from '../../label/labelStyle';\nimport { getLayoutRect } from '../../util/layout';\nimport ComponentModel from '../../model/Component';\nimport ComponentView from '../../view/Component';\nimport { windowOpen } from '../../util/format';\n\nvar TitleModel = function (_super) {\n  __extends(TitleModel, _super);\n\n  function TitleModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TitleModel.type;\n    _this.layoutMode = {\n      type: 'box',\n      ignoreSize: true\n    };\n    return _this;\n  }\n\n  TitleModel.type = 'title';\n  TitleModel.defaultOption = {\n    zlevel: 0,\n    z: 6,\n    show: true,\n    text: '',\n    target: 'blank',\n    subtext: '',\n    subtarget: 'blank',\n    left: 0,\n    top: 0,\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderColor: '#ccc',\n    borderWidth: 0,\n    padding: 5,\n    itemGap: 10,\n    textStyle: {\n      fontSize: 18,\n      fontWeight: 'bold',\n      color: '#464646'\n    },\n    subtextStyle: {\n      fontSize: 12,\n      color: '#6E7079'\n    }\n  };\n  return TitleModel;\n}(ComponentModel);\n\nvar TitleView = function (_super) {\n  __extends(TitleView, _super);\n\n  function TitleView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TitleView.type;\n    return _this;\n  }\n\n  TitleView.prototype.render = function (titleModel, ecModel, api) {\n    this.group.removeAll();\n\n    if (!titleModel.get('show')) {\n      return;\n    }\n\n    var group = this.group;\n    var textStyleModel = titleModel.getModel('textStyle');\n    var subtextStyleModel = titleModel.getModel('subtextStyle');\n    var textAlign = titleModel.get('textAlign');\n    var textVerticalAlign = zrUtil.retrieve2(titleModel.get('textBaseline'), titleModel.get('textVerticalAlign'));\n    var textEl = new graphic.Text({\n      style: createTextStyle(textStyleModel, {\n        text: titleModel.get('text'),\n        fill: textStyleModel.getTextColor()\n      }, {\n        disableBox: true\n      }),\n      z2: 10\n    });\n    var textRect = textEl.getBoundingRect();\n    var subText = titleModel.get('subtext');\n    var subTextEl = new graphic.Text({\n      style: createTextStyle(subtextStyleModel, {\n        text: subText,\n        fill: subtextStyleModel.getTextColor(),\n        y: textRect.height + titleModel.get('itemGap'),\n        verticalAlign: 'top'\n      }, {\n        disableBox: true\n      }),\n      z2: 10\n    });\n    var link = titleModel.get('link');\n    var sublink = titleModel.get('sublink');\n    var triggerEvent = titleModel.get('triggerEvent', true);\n    textEl.silent = !link && !triggerEvent;\n    subTextEl.silent = !sublink && !triggerEvent;\n\n    if (link) {\n      textEl.on('click', function () {\n        windowOpen(link, '_' + titleModel.get('target'));\n      });\n    }\n\n    if (sublink) {\n      subTextEl.on('click', function () {\n        windowOpen(sublink, '_' + titleModel.get('subtarget'));\n      });\n    }\n\n    getECData(textEl).eventData = getECData(subTextEl).eventData = triggerEvent ? {\n      componentType: 'title',\n      componentIndex: titleModel.componentIndex\n    } : null;\n    group.add(textEl);\n    subText && group.add(subTextEl);\n    var groupRect = group.getBoundingRect();\n    var layoutOption = titleModel.getBoxLayoutParams();\n    layoutOption.width = groupRect.width;\n    layoutOption.height = groupRect.height;\n    var layoutRect = getLayoutRect(layoutOption, {\n      width: api.getWidth(),\n      height: api.getHeight()\n    }, titleModel.get('padding'));\n\n    if (!textAlign) {\n      textAlign = titleModel.get('left') || titleModel.get('right');\n\n      if (textAlign === 'middle') {\n        textAlign = 'center';\n      }\n\n      if (textAlign === 'right') {\n        layoutRect.x += layoutRect.width;\n      } else if (textAlign === 'center') {\n        layoutRect.x += layoutRect.width / 2;\n      }\n    }\n\n    if (!textVerticalAlign) {\n      textVerticalAlign = titleModel.get('top') || titleModel.get('bottom');\n\n      if (textVerticalAlign === 'center') {\n        textVerticalAlign = 'middle';\n      }\n\n      if (textVerticalAlign === 'bottom') {\n        layoutRect.y += layoutRect.height;\n      } else if (textVerticalAlign === 'middle') {\n        layoutRect.y += layoutRect.height / 2;\n      }\n\n      textVerticalAlign = textVerticalAlign || 'top';\n    }\n\n    group.x = layoutRect.x;\n    group.y = layoutRect.y;\n    group.markRedraw();\n    var alignStyle = {\n      align: textAlign,\n      verticalAlign: textVerticalAlign\n    };\n    textEl.setStyle(alignStyle);\n    subTextEl.setStyle(alignStyle);\n    groupRect = group.getBoundingRect();\n    var padding = layoutRect.margin;\n    var style = titleModel.getItemStyle(['color', 'opacity']);\n    style.fill = titleModel.get('backgroundColor');\n    var rect = new graphic.Rect({\n      shape: {\n        x: groupRect.x - padding[3],\n        y: groupRect.y - padding[0],\n        width: groupRect.width + padding[1] + padding[3],\n        height: groupRect.height + padding[0] + padding[2],\n        r: titleModel.get('borderRadius')\n      },\n      style: style,\n      subPixelOptimize: true,\n      silent: true\n    });\n    group.add(rect);\n  };\n\n  TitleView.type = 'title';\n  return TitleView;\n}(ComponentView);\n\nexport function install(registers) {\n  registers.registerComponentModel(TitleModel);\n  registers.registerComponentView(TitleView);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\nimport List from '../../data/List';\nimport { each, isObject, clone } from 'zrender/lib/core/util';\nimport { convertOptionIdName, getDataItemValue } from '../../util/model';\n\nvar TimelineModel = function (_super) {\n  __extends(TimelineModel, _super);\n\n  function TimelineModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TimelineModel.type;\n    _this.layoutMode = 'box';\n    return _this;\n  }\n\n  TimelineModel.prototype.init = function (option, parentModel, ecModel) {\n    this.mergeDefaultAndTheme(option, ecModel);\n\n    this._initData();\n  };\n\n  TimelineModel.prototype.mergeOption = function (option) {\n    _super.prototype.mergeOption.apply(this, arguments);\n\n    this._initData();\n  };\n\n  TimelineModel.prototype.setCurrentIndex = function (currentIndex) {\n    if (currentIndex == null) {\n      currentIndex = this.option.currentIndex;\n    }\n\n    var count = this._data.count();\n\n    if (this.option.loop) {\n      currentIndex = (currentIndex % count + count) % count;\n    } else {\n      currentIndex >= count && (currentIndex = count - 1);\n      currentIndex < 0 && (currentIndex = 0);\n    }\n\n    this.option.currentIndex = currentIndex;\n  };\n\n  TimelineModel.prototype.getCurrentIndex = function () {\n    return this.option.currentIndex;\n  };\n\n  TimelineModel.prototype.isIndexMax = function () {\n    return this.getCurrentIndex() >= this._data.count() - 1;\n  };\n\n  TimelineModel.prototype.setPlayState = function (state) {\n    this.option.autoPlay = !!state;\n  };\n\n  TimelineModel.prototype.getPlayState = function () {\n    return !!this.option.autoPlay;\n  };\n\n  TimelineModel.prototype._initData = function () {\n    var thisOption = this.option;\n    var dataArr = thisOption.data || [];\n    var axisType = thisOption.axisType;\n    var names = this._names = [];\n    var processedDataArr;\n\n    if (axisType === 'category') {\n      processedDataArr = [];\n      each(dataArr, function (item, index) {\n        var value = convertOptionIdName(getDataItemValue(item), '');\n        var newItem;\n\n        if (isObject(item)) {\n          newItem = clone(item);\n          newItem.value = index;\n        } else {\n          newItem = index;\n        }\n\n        processedDataArr.push(newItem);\n        names.push(value);\n      });\n    } else {\n      processedDataArr = dataArr;\n    }\n\n    var dimType = {\n      category: 'ordinal',\n      time: 'time',\n      value: 'number'\n    }[axisType] || 'number';\n    var data = this._data = new List([{\n      name: 'value',\n      type: dimType\n    }], this);\n    data.initData(processedDataArr, names);\n  };\n\n  TimelineModel.prototype.getData = function () {\n    return this._data;\n  };\n\n  TimelineModel.prototype.getCategories = function () {\n    if (this.get('axisType') === 'category') {\n      return this._names.slice();\n    }\n  };\n\n  TimelineModel.type = 'timeline';\n  TimelineModel.defaultOption = {\n    zlevel: 0,\n    z: 4,\n    show: true,\n    axisType: 'time',\n    realtime: true,\n    left: '20%',\n    top: null,\n    right: '20%',\n    bottom: 0,\n    width: null,\n    height: 40,\n    padding: 5,\n    controlPosition: 'left',\n    autoPlay: false,\n    rewind: false,\n    loop: true,\n    playInterval: 2000,\n    currentIndex: 0,\n    itemStyle: {},\n    label: {\n      color: '#000'\n    },\n    data: []\n  };\n  return TimelineModel;\n}(ComponentModel);\n\nexport default TimelineModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport TimelineModel from './TimelineModel';\nimport { DataFormatMixin } from '../../model/mixin/dataFormat';\nimport { mixin } from 'zrender/lib/core/util';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar SliderTimelineModel = function (_super) {\n  __extends(SliderTimelineModel, _super);\n\n  function SliderTimelineModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SliderTimelineModel.type;\n    return _this;\n  }\n\n  SliderTimelineModel.type = 'timeline.slider';\n  SliderTimelineModel.defaultOption = inheritDefaultOption(TimelineModel.defaultOption, {\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderColor: '#ccc',\n    borderWidth: 0,\n    orient: 'horizontal',\n    inverse: false,\n    tooltip: {\n      trigger: 'item'\n    },\n    symbol: 'circle',\n    symbolSize: 12,\n    lineStyle: {\n      show: true,\n      width: 2,\n      color: '#DAE1F5'\n    },\n    label: {\n      position: 'auto',\n      show: true,\n      interval: 'auto',\n      rotate: 0,\n      color: '#A4B1D7'\n    },\n    itemStyle: {\n      color: '#A4B1D7',\n      borderWidth: 1\n    },\n    checkpointStyle: {\n      symbol: 'circle',\n      symbolSize: 15,\n      color: '#316bf3',\n      borderColor: '#fff',\n      borderWidth: 2,\n      shadowBlur: 2,\n      shadowOffsetX: 1,\n      shadowOffsetY: 1,\n      shadowColor: 'rgba(0, 0, 0, 0.3)',\n      animation: true,\n      animationDuration: 300,\n      animationEasing: 'quinticInOut'\n    },\n    controlStyle: {\n      show: true,\n      showPlayBtn: true,\n      showPrevBtn: true,\n      showNextBtn: true,\n      itemSize: 24,\n      itemGap: 12,\n      position: 'left',\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',\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',\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',\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',\n      prevBtnSize: 18,\n      nextBtnSize: 18,\n      color: '#A4B1D7',\n      borderColor: '#A4B1D7',\n      borderWidth: 1\n    },\n    emphasis: {\n      label: {\n        show: true,\n        color: '#6f778d'\n      },\n      itemStyle: {\n        color: '#316BF3'\n      },\n      controlStyle: {\n        color: '#316BF3',\n        borderColor: '#316BF3',\n        borderWidth: 2\n      }\n    },\n    progress: {\n      lineStyle: {\n        color: '#316BF3'\n      },\n      itemStyle: {\n        color: '#316BF3'\n      },\n      label: {\n        color: '#6f778d'\n      }\n    },\n    data: []\n  });\n  return SliderTimelineModel;\n}(TimelineModel);\n\nmixin(SliderTimelineModel, DataFormatMixin.prototype);\nexport default SliderTimelineModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component';\n\nvar TimelineView = function (_super) {\n  __extends(TimelineView, _super);\n\n  function TimelineView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TimelineView.type;\n    return _this;\n  }\n\n  TimelineView.type = 'timeline';\n  return TimelineView;\n}(ComponentView);\n\nexport default TimelineView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Axis from '../../coord/Axis';\n\nvar TimelineAxis = function (_super) {\n  __extends(TimelineAxis, _super);\n\n  function TimelineAxis(dim, scale, coordExtent, axisType) {\n    var _this = _super.call(this, dim, scale, coordExtent) || this;\n\n    _this.type = axisType || 'value';\n    return _this;\n  }\n\n  TimelineAxis.prototype.getLabelModel = function () {\n    return this.model.getModel('label');\n  };\n\n  TimelineAxis.prototype.isHorizontal = function () {\n    return this.model.get('orient') === 'horizontal';\n  };\n\n  return TimelineAxis;\n}(Axis);\n\nexport default TimelineAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport * as graphic from '../../util/graphic';\nimport { createTextStyle } from '../../label/labelStyle';\nimport * as layout from '../../util/layout';\nimport TimelineView from './TimelineView';\nimport TimelineAxis from './TimelineAxis';\nimport { createSymbol } from '../../util/symbol';\nimport * as numberUtil from '../../util/number';\nimport { merge, each, extend, isString, bind, defaults, retrieve2 } from 'zrender/lib/core/util';\nimport OrdinalScale from '../../scale/Ordinal';\nimport TimeScale from '../../scale/Time';\nimport IntervalScale from '../../scale/Interval';\nimport { parsePercent } from 'zrender/lib/contain/text';\nimport { makeInner } from '../../util/model';\nimport { getECData } from '../../util/innerStore';\nimport { enableHoverEmphasis } from '../../util/states';\nimport { createTooltipMarkup } from '../tooltip/tooltipMarkup';\nvar PI = Math.PI;\nvar labelDataIndexStore = makeInner();\n\nvar SliderTimelineView = function (_super) {\n  __extends(SliderTimelineView, _super);\n\n  function SliderTimelineView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SliderTimelineView.type;\n    return _this;\n  }\n\n  SliderTimelineView.prototype.init = function (ecModel, api) {\n    this.api = api;\n  };\n\n  SliderTimelineView.prototype.render = function (timelineModel, ecModel, api) {\n    this.model = timelineModel;\n    this.api = api;\n    this.ecModel = ecModel;\n    this.group.removeAll();\n\n    if (timelineModel.get('show', true)) {\n      var layoutInfo_1 = this._layout(timelineModel, api);\n\n      var mainGroup_1 = this._createGroup('_mainGroup');\n\n      var labelGroup = this._createGroup('_labelGroup');\n\n      var axis_1 = this._axis = this._createAxis(layoutInfo_1, timelineModel);\n\n      timelineModel.formatTooltip = function (dataIndex) {\n        var name = axis_1.scale.getLabel({\n          value: dataIndex\n        });\n        return createTooltipMarkup('nameValue', {\n          noName: true,\n          value: name\n        });\n      };\n\n      each(['AxisLine', 'AxisTick', 'Control', 'CurrentPointer'], function (name) {\n        this['_render' + name](layoutInfo_1, mainGroup_1, axis_1, timelineModel);\n      }, this);\n\n      this._renderAxisLabel(layoutInfo_1, labelGroup, axis_1, timelineModel);\n\n      this._position(layoutInfo_1, timelineModel);\n    }\n\n    this._doPlayStop();\n\n    this._updateTicksStatus();\n  };\n\n  SliderTimelineView.prototype.remove = function () {\n    this._clearTimer();\n\n    this.group.removeAll();\n  };\n\n  SliderTimelineView.prototype.dispose = function () {\n    this._clearTimer();\n  };\n\n  SliderTimelineView.prototype._layout = function (timelineModel, api) {\n    var labelPosOpt = timelineModel.get(['label', 'position']);\n    var orient = timelineModel.get('orient');\n    var viewRect = getViewRect(timelineModel, api);\n    var parsedLabelPos;\n\n    if (labelPosOpt == null || labelPosOpt === 'auto') {\n      parsedLabelPos = orient === 'horizontal' ? viewRect.y + viewRect.height / 2 < api.getHeight() / 2 ? '-' : '+' : viewRect.x + viewRect.width / 2 < api.getWidth() / 2 ? '+' : '-';\n    } else if (isString(labelPosOpt)) {\n      parsedLabelPos = {\n        horizontal: {\n          top: '-',\n          bottom: '+'\n        },\n        vertical: {\n          left: '-',\n          right: '+'\n        }\n      }[orient][labelPosOpt];\n    } else {\n      parsedLabelPos = labelPosOpt;\n    }\n\n    var labelAlignMap = {\n      horizontal: 'center',\n      vertical: parsedLabelPos >= 0 || parsedLabelPos === '+' ? 'left' : 'right'\n    };\n    var labelBaselineMap = {\n      horizontal: parsedLabelPos >= 0 || parsedLabelPos === '+' ? 'top' : 'bottom',\n      vertical: 'middle'\n    };\n    var rotationMap = {\n      horizontal: 0,\n      vertical: PI / 2\n    };\n    var mainLength = orient === 'vertical' ? viewRect.height : viewRect.width;\n    var controlModel = timelineModel.getModel('controlStyle');\n    var showControl = controlModel.get('show', true);\n    var controlSize = showControl ? controlModel.get('itemSize') : 0;\n    var controlGap = showControl ? controlModel.get('itemGap') : 0;\n    var sizePlusGap = controlSize + controlGap;\n    var labelRotation = timelineModel.get(['label', 'rotate']) || 0;\n    labelRotation = labelRotation * PI / 180;\n    var playPosition;\n    var prevBtnPosition;\n    var nextBtnPosition;\n    var controlPosition = controlModel.get('position', true);\n    var showPlayBtn = showControl && controlModel.get('showPlayBtn', true);\n    var showPrevBtn = showControl && controlModel.get('showPrevBtn', true);\n    var showNextBtn = showControl && controlModel.get('showNextBtn', true);\n    var xLeft = 0;\n    var xRight = mainLength;\n\n    if (controlPosition === 'left' || controlPosition === 'bottom') {\n      showPlayBtn && (playPosition = [0, 0], xLeft += sizePlusGap);\n      showPrevBtn && (prevBtnPosition = [xLeft, 0], xLeft += sizePlusGap);\n      showNextBtn && (nextBtnPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\n    } else {\n      showPlayBtn && (playPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\n      showPrevBtn && (prevBtnPosition = [0, 0], xLeft += sizePlusGap);\n      showNextBtn && (nextBtnPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\n    }\n\n    var axisExtent = [xLeft, xRight];\n\n    if (timelineModel.get('inverse')) {\n      axisExtent.reverse();\n    }\n\n    return {\n      viewRect: viewRect,\n      mainLength: mainLength,\n      orient: orient,\n      rotation: rotationMap[orient],\n      labelRotation: labelRotation,\n      labelPosOpt: parsedLabelPos,\n      labelAlign: timelineModel.get(['label', 'align']) || labelAlignMap[orient],\n      labelBaseline: timelineModel.get(['label', 'verticalAlign']) || timelineModel.get(['label', 'baseline']) || labelBaselineMap[orient],\n      playPosition: playPosition,\n      prevBtnPosition: prevBtnPosition,\n      nextBtnPosition: nextBtnPosition,\n      axisExtent: axisExtent,\n      controlSize: controlSize,\n      controlGap: controlGap\n    };\n  };\n\n  SliderTimelineView.prototype._position = function (layoutInfo, timelineModel) {\n    var mainGroup = this._mainGroup;\n    var labelGroup = this._labelGroup;\n    var viewRect = layoutInfo.viewRect;\n\n    if (layoutInfo.orient === 'vertical') {\n      var m = matrix.create();\n      var rotateOriginX = viewRect.x;\n      var rotateOriginY = viewRect.y + viewRect.height;\n      matrix.translate(m, m, [-rotateOriginX, -rotateOriginY]);\n      matrix.rotate(m, m, -PI / 2);\n      matrix.translate(m, m, [rotateOriginX, rotateOriginY]);\n      viewRect = viewRect.clone();\n      viewRect.applyTransform(m);\n    }\n\n    var viewBound = getBound(viewRect);\n    var mainBound = getBound(mainGroup.getBoundingRect());\n    var labelBound = getBound(labelGroup.getBoundingRect());\n    var mainPosition = [mainGroup.x, mainGroup.y];\n    var labelsPosition = [labelGroup.x, labelGroup.y];\n    labelsPosition[0] = mainPosition[0] = viewBound[0][0];\n    var labelPosOpt = layoutInfo.labelPosOpt;\n\n    if (labelPosOpt == null || isString(labelPosOpt)) {\n      var mainBoundIdx = labelPosOpt === '+' ? 0 : 1;\n      toBound(mainPosition, mainBound, viewBound, 1, mainBoundIdx);\n      toBound(labelsPosition, labelBound, viewBound, 1, 1 - mainBoundIdx);\n    } else {\n      var mainBoundIdx = labelPosOpt >= 0 ? 0 : 1;\n      toBound(mainPosition, mainBound, viewBound, 1, mainBoundIdx);\n      labelsPosition[1] = mainPosition[1] + labelPosOpt;\n    }\n\n    mainGroup.setPosition(mainPosition);\n    labelGroup.setPosition(labelsPosition);\n    mainGroup.rotation = labelGroup.rotation = layoutInfo.rotation;\n    setOrigin(mainGroup);\n    setOrigin(labelGroup);\n\n    function setOrigin(targetGroup) {\n      targetGroup.originX = viewBound[0][0] - targetGroup.x;\n      targetGroup.originY = viewBound[1][0] - targetGroup.y;\n    }\n\n    function getBound(rect) {\n      return [[rect.x, rect.x + rect.width], [rect.y, rect.y + rect.height]];\n    }\n\n    function toBound(fromPos, from, to, dimIdx, boundIdx) {\n      fromPos[dimIdx] += to[dimIdx][boundIdx] - from[dimIdx][boundIdx];\n    }\n  };\n\n  SliderTimelineView.prototype._createAxis = function (layoutInfo, timelineModel) {\n    var data = timelineModel.getData();\n    var axisType = timelineModel.get('axisType');\n    var scale = createScaleByModel(timelineModel, axisType);\n\n    scale.getTicks = function () {\n      return data.mapArray(['value'], function (value) {\n        return {\n          value: value\n        };\n      });\n    };\n\n    var dataExtent = data.getDataExtent('value');\n    scale.setExtent(dataExtent[0], dataExtent[1]);\n    scale.niceTicks();\n    var axis = new TimelineAxis('value', scale, layoutInfo.axisExtent, axisType);\n    axis.model = timelineModel;\n    return axis;\n  };\n\n  SliderTimelineView.prototype._createGroup = function (key) {\n    var newGroup = this[key] = new graphic.Group();\n    this.group.add(newGroup);\n    return newGroup;\n  };\n\n  SliderTimelineView.prototype._renderAxisLine = function (layoutInfo, group, axis, timelineModel) {\n    var axisExtent = axis.getExtent();\n\n    if (!timelineModel.get(['lineStyle', 'show'])) {\n      return;\n    }\n\n    var line = new graphic.Line({\n      shape: {\n        x1: axisExtent[0],\n        y1: 0,\n        x2: axisExtent[1],\n        y2: 0\n      },\n      style: extend({\n        lineCap: 'round'\n      }, timelineModel.getModel('lineStyle').getLineStyle()),\n      silent: true,\n      z2: 1\n    });\n    group.add(line);\n    var progressLine = this._progressLine = new graphic.Line({\n      shape: {\n        x1: axisExtent[0],\n        x2: this._currentPointer ? this._currentPointer.x : axisExtent[0],\n        y1: 0,\n        y2: 0\n      },\n      style: defaults({\n        lineCap: 'round',\n        lineWidth: line.style.lineWidth\n      }, timelineModel.getModel(['progress', 'lineStyle']).getLineStyle()),\n      silent: true,\n      z2: 1\n    });\n    group.add(progressLine);\n  };\n\n  SliderTimelineView.prototype._renderAxisTick = function (layoutInfo, group, axis, timelineModel) {\n    var _this = this;\n\n    var data = timelineModel.getData();\n    var ticks = axis.scale.getTicks();\n    this._tickSymbols = [];\n    each(ticks, function (tick) {\n      var tickCoord = axis.dataToCoord(tick.value);\n      var itemModel = data.getItemModel(tick.value);\n      var itemStyleModel = itemModel.getModel('itemStyle');\n      var hoverStyleModel = itemModel.getModel(['emphasis', 'itemStyle']);\n      var progressStyleModel = itemModel.getModel(['progress', 'itemStyle']);\n      var symbolOpt = {\n        x: tickCoord,\n        y: 0,\n        onclick: bind(_this._changeTimeline, _this, tick.value)\n      };\n      var el = giveSymbol(itemModel, itemStyleModel, group, symbolOpt);\n      el.ensureState('emphasis').style = hoverStyleModel.getItemStyle();\n      el.ensureState('progress').style = progressStyleModel.getItemStyle();\n      enableHoverEmphasis(el);\n      var ecData = getECData(el);\n\n      if (itemModel.get('tooltip')) {\n        ecData.dataIndex = tick.value;\n        ecData.dataModel = timelineModel;\n      } else {\n        ecData.dataIndex = ecData.dataModel = null;\n      }\n\n      _this._tickSymbols.push(el);\n    });\n  };\n\n  SliderTimelineView.prototype._renderAxisLabel = function (layoutInfo, group, axis, timelineModel) {\n    var _this = this;\n\n    var labelModel = axis.getLabelModel();\n\n    if (!labelModel.get('show')) {\n      return;\n    }\n\n    var data = timelineModel.getData();\n    var labels = axis.getViewLabels();\n    this._tickLabels = [];\n    each(labels, function (labelItem) {\n      var dataIndex = labelItem.tickValue;\n      var itemModel = data.getItemModel(dataIndex);\n      var normalLabelModel = itemModel.getModel('label');\n      var hoverLabelModel = itemModel.getModel(['emphasis', 'label']);\n      var progressLabelModel = itemModel.getModel(['progress', 'label']);\n      var tickCoord = axis.dataToCoord(labelItem.tickValue);\n      var textEl = new graphic.Text({\n        x: tickCoord,\n        y: 0,\n        rotation: layoutInfo.labelRotation - layoutInfo.rotation,\n        onclick: bind(_this._changeTimeline, _this, dataIndex),\n        silent: false,\n        style: createTextStyle(normalLabelModel, {\n          text: labelItem.formattedLabel,\n          align: layoutInfo.labelAlign,\n          verticalAlign: layoutInfo.labelBaseline\n        })\n      });\n      textEl.ensureState('emphasis').style = createTextStyle(hoverLabelModel);\n      textEl.ensureState('progress').style = createTextStyle(progressLabelModel);\n      group.add(textEl);\n      enableHoverEmphasis(textEl);\n      labelDataIndexStore(textEl).dataIndex = dataIndex;\n\n      _this._tickLabels.push(textEl);\n    });\n  };\n\n  SliderTimelineView.prototype._renderControl = function (layoutInfo, group, axis, timelineModel) {\n    var controlSize = layoutInfo.controlSize;\n    var rotation = layoutInfo.rotation;\n    var itemStyle = timelineModel.getModel('controlStyle').getItemStyle();\n    var hoverStyle = timelineModel.getModel(['emphasis', 'controlStyle']).getItemStyle();\n    var playState = timelineModel.getPlayState();\n    var inverse = timelineModel.get('inverse', true);\n    makeBtn(layoutInfo.nextBtnPosition, 'next', bind(this._changeTimeline, this, inverse ? '-' : '+'));\n    makeBtn(layoutInfo.prevBtnPosition, 'prev', bind(this._changeTimeline, this, inverse ? '+' : '-'));\n    makeBtn(layoutInfo.playPosition, playState ? 'stop' : 'play', bind(this._handlePlayClick, this, !playState), true);\n\n    function makeBtn(position, iconName, onclick, willRotate) {\n      if (!position) {\n        return;\n      }\n\n      var iconSize = parsePercent(retrieve2(timelineModel.get(['controlStyle', iconName + 'BtnSize']), controlSize), controlSize);\n      var rect = [0, -iconSize / 2, iconSize, iconSize];\n      var opt = {\n        position: position,\n        origin: [controlSize / 2, 0],\n        rotation: willRotate ? -rotation : 0,\n        rectHover: true,\n        style: itemStyle,\n        onclick: onclick\n      };\n      var btn = makeControlIcon(timelineModel, iconName + 'Icon', rect, opt);\n      btn.ensureState('emphasis').style = hoverStyle;\n      group.add(btn);\n      enableHoverEmphasis(btn);\n    }\n  };\n\n  SliderTimelineView.prototype._renderCurrentPointer = function (layoutInfo, group, axis, timelineModel) {\n    var data = timelineModel.getData();\n    var currentIndex = timelineModel.getCurrentIndex();\n    var pointerModel = data.getItemModel(currentIndex).getModel('checkpointStyle');\n    var me = this;\n    var callback = {\n      onCreate: function (pointer) {\n        pointer.draggable = true;\n        pointer.drift = bind(me._handlePointerDrag, me);\n        pointer.ondragend = bind(me._handlePointerDragend, me);\n        pointerMoveTo(pointer, me._progressLine, currentIndex, axis, timelineModel, true);\n      },\n      onUpdate: function (pointer) {\n        pointerMoveTo(pointer, me._progressLine, currentIndex, axis, timelineModel);\n      }\n    };\n    this._currentPointer = giveSymbol(pointerModel, pointerModel, this._mainGroup, {}, this._currentPointer, callback);\n  };\n\n  SliderTimelineView.prototype._handlePlayClick = function (nextState) {\n    this._clearTimer();\n\n    this.api.dispatchAction({\n      type: 'timelinePlayChange',\n      playState: nextState,\n      from: this.uid\n    });\n  };\n\n  SliderTimelineView.prototype._handlePointerDrag = function (dx, dy, e) {\n    this._clearTimer();\n\n    this._pointerChangeTimeline([e.offsetX, e.offsetY]);\n  };\n\n  SliderTimelineView.prototype._handlePointerDragend = function (e) {\n    this._pointerChangeTimeline([e.offsetX, e.offsetY], true);\n  };\n\n  SliderTimelineView.prototype._pointerChangeTimeline = function (mousePos, trigger) {\n    var toCoord = this._toAxisCoord(mousePos)[0];\n\n    var axis = this._axis;\n    var axisExtent = numberUtil.asc(axis.getExtent().slice());\n    toCoord > axisExtent[1] && (toCoord = axisExtent[1]);\n    toCoord < axisExtent[0] && (toCoord = axisExtent[0]);\n    this._currentPointer.x = toCoord;\n\n    this._currentPointer.markRedraw();\n\n    this._progressLine.shape.x2 = toCoord;\n\n    this._progressLine.dirty();\n\n    var targetDataIndex = this._findNearestTick(toCoord);\n\n    var timelineModel = this.model;\n\n    if (trigger || targetDataIndex !== timelineModel.getCurrentIndex() && timelineModel.get('realtime')) {\n      this._changeTimeline(targetDataIndex);\n    }\n  };\n\n  SliderTimelineView.prototype._doPlayStop = function () {\n    var _this = this;\n\n    this._clearTimer();\n\n    if (this.model.getPlayState()) {\n      this._timer = setTimeout(function () {\n        var timelineModel = _this.model;\n\n        _this._changeTimeline(timelineModel.getCurrentIndex() + (timelineModel.get('rewind', true) ? -1 : 1));\n      }, this.model.get('playInterval'));\n    }\n  };\n\n  SliderTimelineView.prototype._toAxisCoord = function (vertex) {\n    var trans = this._mainGroup.getLocalTransform();\n\n    return graphic.applyTransform(vertex, trans, true);\n  };\n\n  SliderTimelineView.prototype._findNearestTick = function (axisCoord) {\n    var data = this.model.getData();\n    var dist = Infinity;\n    var targetDataIndex;\n    var axis = this._axis;\n    data.each(['value'], function (value, dataIndex) {\n      var coord = axis.dataToCoord(value);\n      var d = Math.abs(coord - axisCoord);\n\n      if (d < dist) {\n        dist = d;\n        targetDataIndex = dataIndex;\n      }\n    });\n    return targetDataIndex;\n  };\n\n  SliderTimelineView.prototype._clearTimer = function () {\n    if (this._timer) {\n      clearTimeout(this._timer);\n      this._timer = null;\n    }\n  };\n\n  SliderTimelineView.prototype._changeTimeline = function (nextIndex) {\n    var currentIndex = this.model.getCurrentIndex();\n\n    if (nextIndex === '+') {\n      nextIndex = currentIndex + 1;\n    } else if (nextIndex === '-') {\n      nextIndex = currentIndex - 1;\n    }\n\n    this.api.dispatchAction({\n      type: 'timelineChange',\n      currentIndex: nextIndex,\n      from: this.uid\n    });\n  };\n\n  SliderTimelineView.prototype._updateTicksStatus = function () {\n    var currentIndex = this.model.getCurrentIndex();\n    var tickSymbols = this._tickSymbols;\n    var tickLabels = this._tickLabels;\n\n    if (tickSymbols) {\n      for (var i = 0; i < tickSymbols.length; i++) {\n        tickSymbols && tickSymbols[i] && tickSymbols[i].toggleState('progress', i < currentIndex);\n      }\n    }\n\n    if (tickLabels) {\n      for (var i = 0; i < tickLabels.length; i++) {\n        tickLabels && tickLabels[i] && tickLabels[i].toggleState('progress', labelDataIndexStore(tickLabels[i]).dataIndex <= currentIndex);\n      }\n    }\n  };\n\n  SliderTimelineView.type = 'timeline.slider';\n  return SliderTimelineView;\n}(TimelineView);\n\nfunction createScaleByModel(model, axisType) {\n  axisType = axisType || model.get('type');\n\n  if (axisType) {\n    switch (axisType) {\n      case 'category':\n        return new OrdinalScale({\n          ordinalMeta: model.getCategories(),\n          extent: [Infinity, -Infinity]\n        });\n\n      case 'time':\n        return new TimeScale({\n          locale: model.ecModel.getLocaleModel(),\n          useUTC: model.ecModel.get('useUTC')\n        });\n\n      default:\n        return new IntervalScale();\n    }\n  }\n}\n\nfunction getViewRect(model, api) {\n  return layout.getLayoutRect(model.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  }, model.get('padding'));\n}\n\nfunction makeControlIcon(timelineModel, objPath, rect, opts) {\n  var style = opts.style;\n  var icon = graphic.createIcon(timelineModel.get(['controlStyle', objPath]), opts || {}, new BoundingRect(rect[0], rect[1], rect[2], rect[3]));\n\n  if (style) {\n    icon.setStyle(style);\n  }\n\n  return icon;\n}\n\nfunction giveSymbol(hostModel, itemStyleModel, group, opt, symbol, callback) {\n  var color = itemStyleModel.get('color');\n\n  if (!symbol) {\n    var symbolType = hostModel.get('symbol');\n    symbol = createSymbol(symbolType, -1, -1, 2, 2, color);\n    symbol.setStyle('strokeNoScale', true);\n    group.add(symbol);\n    callback && callback.onCreate(symbol);\n  } else {\n    symbol.setColor(color);\n    group.add(symbol);\n    callback && callback.onUpdate(symbol);\n  }\n\n  var itemStyle = itemStyleModel.getItemStyle(['color']);\n  symbol.setStyle(itemStyle);\n  opt = merge({\n    rectHover: true,\n    z2: 100\n  }, opt, true);\n  var symbolSize = hostModel.get('symbolSize');\n  symbolSize = symbolSize instanceof Array ? symbolSize.slice() : [+symbolSize, +symbolSize];\n  opt.scaleX = symbolSize[0] / 2;\n  opt.scaleY = symbolSize[1] / 2;\n  var symbolOffset = hostModel.get('symbolOffset');\n\n  if (symbolOffset) {\n    opt.x = opt.x || 0;\n    opt.y = opt.y || 0;\n    opt.x += numberUtil.parsePercent(symbolOffset[0], symbolSize[0]);\n    opt.y += numberUtil.parsePercent(symbolOffset[1], symbolSize[1]);\n  }\n\n  var symbolRotate = hostModel.get('symbolRotate');\n  opt.rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\n  symbol.attr(opt);\n  symbol.updateTransform();\n  return symbol;\n}\n\nfunction pointerMoveTo(pointer, progressLine, dataIndex, axis, timelineModel, noAnimation) {\n  if (pointer.dragging) {\n    return;\n  }\n\n  var pointerModel = timelineModel.getModel('checkpointStyle');\n  var toCoord = axis.dataToCoord(timelineModel.getData().get('value', dataIndex));\n\n  if (noAnimation || !pointerModel.get('animation', true)) {\n    pointer.attr({\n      x: toCoord,\n      y: 0\n    });\n    progressLine && progressLine.attr({\n      shape: {\n        x2: toCoord\n      }\n    });\n  } else {\n    var animationCfg = {\n      duration: pointerModel.get('animationDuration', true),\n      easing: pointerModel.get('animationEasing', true)\n    };\n    pointer.stopAnimation(null, true);\n    pointer.animateTo({\n      x: toCoord,\n      y: 0\n    }, animationCfg);\n    progressLine && progressLine.animateTo({\n      shape: {\n        x2: toCoord\n      }\n    }, animationCfg);\n  }\n}\n\nexport default SliderTimelineView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { defaults } from 'zrender/lib/core/util';\nexport function installTimelineAction(registers) {\n  registers.registerAction({\n    type: 'timelineChange',\n    event: 'timelineChanged',\n    update: 'prepareAndUpdate'\n  }, function (payload, ecModel) {\n    var timelineModel = ecModel.getComponent('timeline');\n\n    if (timelineModel && payload.currentIndex != null) {\n      timelineModel.setCurrentIndex(payload.currentIndex);\n\n      if (!timelineModel.get('loop', true) && timelineModel.isIndexMax()) {\n        timelineModel.setPlayState(false);\n      }\n    }\n\n    ecModel.resetOption('timeline', {\n      replaceMerge: timelineModel.get('replaceMerge', true)\n    });\n    return defaults({\n      currentIndex: timelineModel.option.currentIndex\n    }, payload);\n  });\n  registers.registerAction({\n    type: 'timelinePlayChange',\n    event: 'timelinePlayChanged',\n    update: 'update'\n  }, function (payload, ecModel) {\n    var timelineModel = ecModel.getComponent('timeline');\n\n    if (timelineModel && payload.playState != null) {\n      timelineModel.setPlayState(payload.playState);\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function timelinePreprocessor(option) {\n  var timelineOpt = option && option.timeline;\n\n  if (!zrUtil.isArray(timelineOpt)) {\n    timelineOpt = timelineOpt ? [timelineOpt] : [];\n  }\n\n  zrUtil.each(timelineOpt, function (opt) {\n    if (!opt) {\n      return;\n    }\n\n    compatibleEC2(opt);\n  });\n}\n\nfunction compatibleEC2(opt) {\n  var type = opt.type;\n  var ec2Types = {\n    'number': 'value',\n    'time': 'time'\n  };\n\n  if (ec2Types[type]) {\n    opt.axisType = ec2Types[type];\n    delete opt.type;\n  }\n\n  transferItem(opt);\n\n  if (has(opt, 'controlPosition')) {\n    var controlStyle = opt.controlStyle || (opt.controlStyle = {});\n\n    if (!has(controlStyle, 'position')) {\n      controlStyle.position = opt.controlPosition;\n    }\n\n    if (controlStyle.position === 'none' && !has(controlStyle, 'show')) {\n      controlStyle.show = false;\n      delete controlStyle.position;\n    }\n\n    delete opt.controlPosition;\n  }\n\n  zrUtil.each(opt.data || [], function (dataItem) {\n    if (zrUtil.isObject(dataItem) && !zrUtil.isArray(dataItem)) {\n      if (!has(dataItem, 'value') && has(dataItem, 'name')) {\n        dataItem.value = dataItem.name;\n      }\n\n      transferItem(dataItem);\n    }\n  });\n}\n\nfunction transferItem(opt) {\n  var itemStyle = opt.itemStyle || (opt.itemStyle = {});\n  var itemStyleEmphasis = itemStyle.emphasis || (itemStyle.emphasis = {});\n  var label = opt.label || opt.label || {};\n  var labelNormal = label.normal || (label.normal = {});\n  var excludeLabelAttr = {\n    normal: 1,\n    emphasis: 1\n  };\n  zrUtil.each(label, function (value, name) {\n    if (!excludeLabelAttr[name] && !has(labelNormal, name)) {\n      labelNormal[name] = value;\n    }\n  });\n\n  if (itemStyleEmphasis.label && !has(label, 'emphasis')) {\n    label.emphasis = itemStyleEmphasis.label;\n    delete itemStyleEmphasis.label;\n  }\n}\n\nfunction has(obj, attr) {\n  return obj.hasOwnProperty(attr);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SliderTimelineModel from './SliderTimelineModel';\nimport SliderTimelineView from './SliderTimelineView';\nimport { installTimelineAction } from './timelineAction';\nimport preprocessor from './preprocessor';\nexport function install(registers) {\n  registers.registerComponentModel(SliderTimelineModel);\n  registers.registerComponentView(SliderTimelineView);\n  registers.registerSubTypeDefaulter('timeline', function () {\n    return 'slider';\n  });\n  installTimelineAction(registers);\n  registers.registerPreprocessor(preprocessor);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport { DataFormatMixin } from '../../model/mixin/dataFormat';\nimport ComponentModel from '../../model/Component';\nimport { makeInner, defaultEmphasis } from '../../util/model';\nimport { createTooltipMarkup } from '../tooltip/tooltipMarkup';\n\nfunction fillLabel(opt) {\n  defaultEmphasis(opt, 'label', ['show']);\n}\n\nvar inner = makeInner();\n\nvar MarkerModel = function (_super) {\n  __extends(MarkerModel, _super);\n\n  function MarkerModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkerModel.type;\n    _this.createdBySelf = false;\n    return _this;\n  }\n\n  MarkerModel.prototype.init = function (option, parentModel, ecModel) {\n    if (process.env.NODE_ENV !== 'production') {\n      if (this.type === 'marker') {\n        throw new Error('Marker component is abstract component. Use markLine, markPoint, markArea instead.');\n      }\n    }\n\n    this.mergeDefaultAndTheme(option, ecModel);\n\n    this._mergeOption(option, ecModel, false, true);\n  };\n\n  MarkerModel.prototype.isAnimationEnabled = function () {\n    if (env.node) {\n      return false;\n    }\n\n    var hostSeries = this.__hostSeries;\n    return this.getShallow('animation') && hostSeries && hostSeries.isAnimationEnabled();\n  };\n\n  MarkerModel.prototype.mergeOption = function (newOpt, ecModel) {\n    this._mergeOption(newOpt, ecModel, false, false);\n  };\n\n  MarkerModel.prototype._mergeOption = function (newOpt, ecModel, createdBySelf, isInit) {\n    var componentType = this.mainType;\n\n    if (!createdBySelf) {\n      ecModel.eachSeries(function (seriesModel) {\n        var markerOpt = seriesModel.get(this.mainType, true);\n        var markerModel = inner(seriesModel)[componentType];\n\n        if (!markerOpt || !markerOpt.data) {\n          inner(seriesModel)[componentType] = null;\n          return;\n        }\n\n        if (!markerModel) {\n          if (isInit) {\n            fillLabel(markerOpt);\n          }\n\n          zrUtil.each(markerOpt.data, function (item) {\n            if (item instanceof Array) {\n              fillLabel(item[0]);\n              fillLabel(item[1]);\n            } else {\n              fillLabel(item);\n            }\n          });\n          markerModel = this.createMarkerModelFromSeries(markerOpt, this, ecModel);\n          zrUtil.extend(markerModel, {\n            mainType: this.mainType,\n            seriesIndex: seriesModel.seriesIndex,\n            name: seriesModel.name,\n            createdBySelf: true\n          });\n          markerModel.__hostSeries = seriesModel;\n        } else {\n          markerModel._mergeOption(markerOpt, ecModel, true);\n        }\n\n        inner(seriesModel)[componentType] = markerModel;\n      }, this);\n    }\n  };\n\n  MarkerModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var data = this.getData();\n    var value = this.getRawValue(dataIndex);\n    var itemName = data.getName(dataIndex);\n    return createTooltipMarkup('section', {\n      header: this.name,\n      blocks: [createTooltipMarkup('nameValue', {\n        name: itemName,\n        value: value,\n        noName: !itemName,\n        noValue: value == null\n      })]\n    });\n  };\n\n  MarkerModel.prototype.getData = function () {\n    return this._data;\n  };\n\n  MarkerModel.prototype.setData = function (data) {\n    this._data = data;\n  };\n\n  MarkerModel.getMarkerModelFromSeries = function (seriesModel, componentType) {\n    return inner(seriesModel)[componentType];\n  };\n\n  MarkerModel.type = 'marker';\n  MarkerModel.dependencies = ['series', 'grid', 'polar', 'geo'];\n  return MarkerModel;\n}(ComponentModel);\n\nzrUtil.mixin(MarkerModel, DataFormatMixin.prototype);\nexport default MarkerModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport MarkerModel from './MarkerModel';\n\nvar MarkPointModel = function (_super) {\n  __extends(MarkPointModel, _super);\n\n  function MarkPointModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkPointModel.type;\n    return _this;\n  }\n\n  MarkPointModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\n    return new MarkPointModel(markerOpt, masterMarkerModel, ecModel);\n  };\n\n  MarkPointModel.type = 'markPoint';\n  MarkPointModel.defaultOption = {\n    zlevel: 0,\n    z: 5,\n    symbol: 'pin',\n    symbolSize: 50,\n    tooltip: {\n      trigger: 'item'\n    },\n    label: {\n      show: true,\n      position: 'inside'\n    },\n    itemStyle: {\n      borderWidth: 2\n    },\n    emphasis: {\n      label: {\n        show: true\n      }\n    }\n  };\n  return MarkPointModel;\n}(MarkerModel);\n\nexport default MarkPointModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as numberUtil from '../../util/number';\nimport { isDimensionStacked } from '../../data/helper/dataStackHelper';\nimport { indexOf, curry, clone, isArray } from 'zrender/lib/core/util';\n\nfunction hasXOrY(item) {\n  return !(isNaN(parseFloat(item.x)) && isNaN(parseFloat(item.y)));\n}\n\nfunction hasXAndY(item) {\n  return !isNaN(parseFloat(item.x)) && !isNaN(parseFloat(item.y));\n}\n\nfunction markerTypeCalculatorWithExtent(markerType, data, otherDataDim, targetDataDim, otherCoordIndex, targetCoordIndex) {\n  var coordArr = [];\n  var stacked = isDimensionStacked(data, targetDataDim);\n  var calcDataDim = stacked ? data.getCalculationInfo('stackResultDimension') : targetDataDim;\n  var value = numCalculate(data, calcDataDim, markerType);\n  var dataIndex = data.indicesOfNearest(calcDataDim, value)[0];\n  coordArr[otherCoordIndex] = data.get(otherDataDim, dataIndex);\n  coordArr[targetCoordIndex] = data.get(calcDataDim, dataIndex);\n  var coordArrValue = data.get(targetDataDim, dataIndex);\n  var precision = numberUtil.getPrecision(data.get(targetDataDim, dataIndex));\n  precision = Math.min(precision, 20);\n\n  if (precision >= 0) {\n    coordArr[targetCoordIndex] = +coordArr[targetCoordIndex].toFixed(precision);\n  }\n\n  return [coordArr, coordArrValue];\n}\n\nvar markerTypeCalculator = {\n  min: curry(markerTypeCalculatorWithExtent, 'min'),\n  max: curry(markerTypeCalculatorWithExtent, 'max'),\n  average: curry(markerTypeCalculatorWithExtent, 'average'),\n  median: curry(markerTypeCalculatorWithExtent, 'median')\n};\nexport function dataTransform(seriesModel, item) {\n  var data = seriesModel.getData();\n  var coordSys = seriesModel.coordinateSystem;\n\n  if (item && !hasXAndY(item) && !isArray(item.coord) && coordSys) {\n    var dims = coordSys.dimensions;\n    var axisInfo = getAxisInfo(item, data, coordSys, seriesModel);\n    item = clone(item);\n\n    if (item.type && markerTypeCalculator[item.type] && axisInfo.baseAxis && axisInfo.valueAxis) {\n      var otherCoordIndex = indexOf(dims, axisInfo.baseAxis.dim);\n      var targetCoordIndex = indexOf(dims, axisInfo.valueAxis.dim);\n      var coordInfo = markerTypeCalculator[item.type](data, axisInfo.baseDataDim, axisInfo.valueDataDim, otherCoordIndex, targetCoordIndex);\n      item.coord = coordInfo[0];\n      item.value = coordInfo[1];\n    } else {\n      var coord = [item.xAxis != null ? item.xAxis : item.radiusAxis, item.yAxis != null ? item.yAxis : item.angleAxis];\n\n      for (var i = 0; i < 2; i++) {\n        if (markerTypeCalculator[coord[i]]) {\n          coord[i] = numCalculate(data, data.mapDimension(dims[i]), coord[i]);\n        }\n      }\n\n      item.coord = coord;\n    }\n  }\n\n  return item;\n}\nexport function getAxisInfo(item, data, coordSys, seriesModel) {\n  var ret = {};\n\n  if (item.valueIndex != null || item.valueDim != null) {\n    ret.valueDataDim = item.valueIndex != null ? data.getDimension(item.valueIndex) : item.valueDim;\n    ret.valueAxis = coordSys.getAxis(dataDimToCoordDim(seriesModel, ret.valueDataDim));\n    ret.baseAxis = coordSys.getOtherAxis(ret.valueAxis);\n    ret.baseDataDim = data.mapDimension(ret.baseAxis.dim);\n  } else {\n    ret.baseAxis = seriesModel.getBaseAxis();\n    ret.valueAxis = coordSys.getOtherAxis(ret.baseAxis);\n    ret.baseDataDim = data.mapDimension(ret.baseAxis.dim);\n    ret.valueDataDim = data.mapDimension(ret.valueAxis.dim);\n  }\n\n  return ret;\n}\n\nfunction dataDimToCoordDim(seriesModel, dataDim) {\n  var data = seriesModel.getData();\n  var dimensions = data.dimensions;\n  dataDim = data.getDimension(dataDim);\n\n  for (var i = 0; i < dimensions.length; i++) {\n    var dimItem = data.getDimensionInfo(dimensions[i]);\n\n    if (dimItem.name === dataDim) {\n      return dimItem.coordDim;\n    }\n  }\n}\n\nexport function dataFilter(coordSys, item) {\n  return coordSys && coordSys.containData && item.coord && !hasXOrY(item) ? coordSys.containData(item.coord) : true;\n}\nexport function dimValueGetter(item, dimName, dataIndex, dimIndex) {\n  if (dimIndex < 2) {\n    return item.coord && item.coord[dimIndex];\n  }\n\n  return item.value;\n}\nexport function numCalculate(data, valueDataDim, type) {\n  if (type === 'average') {\n    var sum_1 = 0;\n    var count_1 = 0;\n    data.each(valueDataDim, function (val, idx) {\n      if (!isNaN(val)) {\n        sum_1 += val;\n        count_1++;\n      }\n    });\n    return sum_1 / count_1;\n  } else if (type === 'median') {\n    return data.getMedian(valueDataDim);\n  } else {\n    return data.getDataExtent(valueDataDim)[type === 'max' ? 1 : 0];\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component';\nimport { createHashMap, each } from 'zrender/lib/core/util';\nimport MarkerModel from './MarkerModel';\nimport { makeInner } from '../../util/model';\nimport { enterBlur } from '../../util/states';\nvar inner = makeInner();\n\nvar MarkerView = function (_super) {\n  __extends(MarkerView, _super);\n\n  function MarkerView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkerView.type;\n    return _this;\n  }\n\n  MarkerView.prototype.init = function () {\n    this.markerGroupMap = createHashMap();\n  };\n\n  MarkerView.prototype.render = function (markerModel, ecModel, api) {\n    var _this = this;\n\n    var markerGroupMap = this.markerGroupMap;\n    markerGroupMap.each(function (item) {\n      inner(item).keep = false;\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      var markerModel = MarkerModel.getMarkerModelFromSeries(seriesModel, _this.type);\n      markerModel && _this.renderSeries(seriesModel, markerModel, ecModel, api);\n    });\n    markerGroupMap.each(function (item) {\n      !inner(item).keep && _this.group.remove(item.group);\n    });\n  };\n\n  MarkerView.prototype.markKeep = function (drawGroup) {\n    inner(drawGroup).keep = true;\n  };\n\n  MarkerView.prototype.blurSeries = function (seriesModelList) {\n    var _this = this;\n\n    each(seriesModelList, function (seriesModel) {\n      var markerModel = MarkerModel.getMarkerModelFromSeries(seriesModel, _this.type);\n\n      if (markerModel) {\n        var data = markerModel.getData();\n        data.eachItemGraphicEl(function (el) {\n          if (el) {\n            enterBlur(el);\n          }\n        });\n      }\n    });\n  };\n\n  MarkerView.type = 'marker';\n  return MarkerView;\n}(ComponentView);\n\nexport default MarkerView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SymbolDraw from '../../chart/helper/SymbolDraw';\nimport * as numberUtil from '../../util/number';\nimport List from '../../data/List';\nimport * as markerHelper from './markerHelper';\nimport MarkerView from './MarkerView';\nimport MarkerModel from './MarkerModel';\nimport { isFunction, map, defaults, filter, curry } from 'zrender/lib/core/util';\nimport { getECData } from '../../util/innerStore';\nimport { getVisualFromData } from '../../visual/helper';\n\nfunction updateMarkerLayout(mpData, seriesModel, api) {\n  var coordSys = seriesModel.coordinateSystem;\n  mpData.each(function (idx) {\n    var itemModel = mpData.getItemModel(idx);\n    var point;\n    var xPx = numberUtil.parsePercent(itemModel.get('x'), api.getWidth());\n    var yPx = numberUtil.parsePercent(itemModel.get('y'), api.getHeight());\n\n    if (!isNaN(xPx) && !isNaN(yPx)) {\n      point = [xPx, yPx];\n    } else if (seriesModel.getMarkerPosition) {\n      point = seriesModel.getMarkerPosition(mpData.getValues(mpData.dimensions, idx));\n    } else if (coordSys) {\n      var x = mpData.get(coordSys.dimensions[0], idx);\n      var y = mpData.get(coordSys.dimensions[1], idx);\n      point = coordSys.dataToPoint([x, y]);\n    }\n\n    if (!isNaN(xPx)) {\n      point[0] = xPx;\n    }\n\n    if (!isNaN(yPx)) {\n      point[1] = yPx;\n    }\n\n    mpData.setItemLayout(idx, point);\n  });\n}\n\nvar MarkPointView = function (_super) {\n  __extends(MarkPointView, _super);\n\n  function MarkPointView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkPointView.type;\n    return _this;\n  }\n\n  MarkPointView.prototype.updateTransform = function (markPointModel, ecModel, api) {\n    ecModel.eachSeries(function (seriesModel) {\n      var mpModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markPoint');\n\n      if (mpModel) {\n        updateMarkerLayout(mpModel.getData(), seriesModel, api);\n        this.markerGroupMap.get(seriesModel.id).updateLayout();\n      }\n    }, this);\n  };\n\n  MarkPointView.prototype.renderSeries = function (seriesModel, mpModel, ecModel, api) {\n    var coordSys = seriesModel.coordinateSystem;\n    var seriesId = seriesModel.id;\n    var seriesData = seriesModel.getData();\n    var symbolDrawMap = this.markerGroupMap;\n    var symbolDraw = symbolDrawMap.get(seriesId) || symbolDrawMap.set(seriesId, new SymbolDraw());\n    var mpData = createList(coordSys, seriesModel, mpModel);\n    mpModel.setData(mpData);\n    updateMarkerLayout(mpModel.getData(), seriesModel, api);\n    mpData.each(function (idx) {\n      var itemModel = mpData.getItemModel(idx);\n      var symbol = itemModel.getShallow('symbol');\n      var symbolSize = itemModel.getShallow('symbolSize');\n      var symbolRotate = itemModel.getShallow('symbolRotate');\n\n      if (isFunction(symbol) || isFunction(symbolSize) || isFunction(symbolRotate)) {\n        var rawIdx = mpModel.getRawValue(idx);\n        var dataParams = mpModel.getDataParams(idx);\n\n        if (isFunction(symbol)) {\n          symbol = symbol(rawIdx, dataParams);\n        }\n\n        if (isFunction(symbolSize)) {\n          symbolSize = symbolSize(rawIdx, dataParams);\n        }\n\n        if (isFunction(symbolRotate)) {\n          symbolRotate = symbolRotate(rawIdx, dataParams);\n        }\n      }\n\n      var style = itemModel.getModel('itemStyle').getItemStyle();\n      var color = getVisualFromData(seriesData, 'color');\n\n      if (!style.fill) {\n        style.fill = color;\n      }\n\n      mpData.setItemVisual(idx, {\n        symbol: symbol,\n        symbolSize: symbolSize,\n        symbolRotate: symbolRotate,\n        style: style\n      });\n    });\n    symbolDraw.updateData(mpData);\n    this.group.add(symbolDraw.group);\n    mpData.eachItemGraphicEl(function (el) {\n      el.traverse(function (child) {\n        getECData(child).dataModel = mpModel;\n      });\n    });\n    this.markKeep(symbolDraw);\n    symbolDraw.group.silent = mpModel.get('silent') || seriesModel.get('silent');\n  };\n\n  MarkPointView.type = 'markPoint';\n  return MarkPointView;\n}(MarkerView);\n\nfunction createList(coordSys, seriesModel, mpModel) {\n  var coordDimsInfos;\n\n  if (coordSys) {\n    coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\n      var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {};\n      return defaults({\n        name: coordDim\n      }, info);\n    });\n  } else {\n    coordDimsInfos = [{\n      name: 'value',\n      type: 'float'\n    }];\n  }\n\n  var mpData = new List(coordDimsInfos, mpModel);\n  var dataOpt = map(mpModel.get('data'), curry(markerHelper.dataTransform, seriesModel));\n\n  if (coordSys) {\n    dataOpt = filter(dataOpt, curry(markerHelper.dataFilter, coordSys));\n  }\n\n  mpData.initData(dataOpt, null, coordSys ? markerHelper.dimValueGetter : function (item) {\n    return item.value;\n  });\n  return mpData;\n}\n\nexport default MarkPointView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport MarkPointModel from './MarkPointModel';\nimport MarkPointView from './MarkPointView';\nexport function install(registers) {\n  registers.registerComponentModel(MarkPointModel);\n  registers.registerComponentView(MarkPointView);\n  registers.registerPreprocessor(function (opt) {\n    opt.markPoint = opt.markPoint || {};\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport MarkerModel from './MarkerModel';\n\nvar MarkLineModel = function (_super) {\n  __extends(MarkLineModel, _super);\n\n  function MarkLineModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkLineModel.type;\n    return _this;\n  }\n\n  MarkLineModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\n    return new MarkLineModel(markerOpt, masterMarkerModel, ecModel);\n  };\n\n  MarkLineModel.type = 'markLine';\n  MarkLineModel.defaultOption = {\n    zlevel: 0,\n    z: 5,\n    symbol: ['circle', 'arrow'],\n    symbolSize: [8, 16],\n    precision: 2,\n    tooltip: {\n      trigger: 'item'\n    },\n    label: {\n      show: true,\n      position: 'end',\n      distance: 5\n    },\n    lineStyle: {\n      type: 'dashed'\n    },\n    emphasis: {\n      label: {\n        show: true\n      },\n      lineStyle: {\n        width: 3\n      }\n    },\n    animationEasing: 'linear'\n  };\n  return MarkLineModel;\n}(MarkerModel);\n\nexport default MarkLineModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport List from '../../data/List';\nimport * as numberUtil from '../../util/number';\nimport * as markerHelper from './markerHelper';\nimport LineDraw from '../../chart/helper/LineDraw';\nimport MarkerView from './MarkerView';\nimport { getStackedDimension } from '../../data/helper/dataStackHelper';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport { getECData } from '../../util/innerStore';\nimport MarkerModel from './MarkerModel';\nimport { isArray, retrieve, clone, extend, logError, merge, map, defaults, curry, filter } from 'zrender/lib/core/util';\nimport { makeInner } from '../../util/model';\nimport { getVisualFromData } from '../../visual/helper';\nvar inner = makeInner();\n\nvar markLineTransform = function (seriesModel, coordSys, mlModel, item) {\n  var data = seriesModel.getData();\n  var itemArray;\n\n  if (!isArray(item)) {\n    var mlType = item.type;\n\n    if (mlType === 'min' || mlType === 'max' || mlType === 'average' || mlType === 'median' || item.xAxis != null || item.yAxis != null) {\n      var valueAxis = void 0;\n      var value = void 0;\n\n      if (item.yAxis != null || item.xAxis != null) {\n        valueAxis = coordSys.getAxis(item.yAxis != null ? 'y' : 'x');\n        value = retrieve(item.yAxis, item.xAxis);\n      } else {\n        var axisInfo = markerHelper.getAxisInfo(item, data, coordSys, seriesModel);\n        valueAxis = axisInfo.valueAxis;\n        var valueDataDim = getStackedDimension(data, axisInfo.valueDataDim);\n        value = markerHelper.numCalculate(data, valueDataDim, mlType);\n      }\n\n      var valueIndex = valueAxis.dim === 'x' ? 0 : 1;\n      var baseIndex = 1 - valueIndex;\n      var mlFrom = clone(item);\n      var mlTo = {\n        coord: []\n      };\n      mlFrom.type = null;\n      mlFrom.coord = [];\n      mlFrom.coord[baseIndex] = -Infinity;\n      mlTo.coord[baseIndex] = Infinity;\n      var precision = mlModel.get('precision');\n\n      if (precision >= 0 && typeof value === 'number') {\n        value = +value.toFixed(Math.min(precision, 20));\n      }\n\n      mlFrom.coord[valueIndex] = mlTo.coord[valueIndex] = value;\n      itemArray = [mlFrom, mlTo, {\n        type: mlType,\n        valueIndex: item.valueIndex,\n        value: value\n      }];\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        logError('Invalid markLine data.');\n      }\n\n      itemArray = [];\n    }\n  } else {\n    itemArray = item;\n  }\n\n  var normalizedItem = [markerHelper.dataTransform(seriesModel, itemArray[0]), markerHelper.dataTransform(seriesModel, itemArray[1]), extend({}, itemArray[2])];\n  normalizedItem[2].type = normalizedItem[2].type || null;\n  merge(normalizedItem[2], normalizedItem[0]);\n  merge(normalizedItem[2], normalizedItem[1]);\n  return normalizedItem;\n};\n\nfunction isInifinity(val) {\n  return !isNaN(val) && !isFinite(val);\n}\n\nfunction ifMarkLineHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\n  var otherDimIndex = 1 - dimIndex;\n  var dimName = coordSys.dimensions[dimIndex];\n  return isInifinity(fromCoord[otherDimIndex]) && isInifinity(toCoord[otherDimIndex]) && fromCoord[dimIndex] === toCoord[dimIndex] && coordSys.getAxis(dimName).containData(fromCoord[dimIndex]);\n}\n\nfunction markLineFilter(coordSys, item) {\n  if (coordSys.type === 'cartesian2d') {\n    var fromCoord = item[0].coord;\n    var toCoord = item[1].coord;\n\n    if (fromCoord && toCoord && (ifMarkLineHasOnlyDim(1, fromCoord, toCoord, coordSys) || ifMarkLineHasOnlyDim(0, fromCoord, toCoord, coordSys))) {\n      return true;\n    }\n  }\n\n  return markerHelper.dataFilter(coordSys, item[0]) && markerHelper.dataFilter(coordSys, item[1]);\n}\n\nfunction updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api) {\n  var coordSys = seriesModel.coordinateSystem;\n  var itemModel = data.getItemModel(idx);\n  var point;\n  var xPx = numberUtil.parsePercent(itemModel.get('x'), api.getWidth());\n  var yPx = numberUtil.parsePercent(itemModel.get('y'), api.getHeight());\n\n  if (!isNaN(xPx) && !isNaN(yPx)) {\n    point = [xPx, yPx];\n  } else {\n    if (seriesModel.getMarkerPosition) {\n      point = seriesModel.getMarkerPosition(data.getValues(data.dimensions, idx));\n    } else {\n      var dims = coordSys.dimensions;\n      var x = data.get(dims[0], idx);\n      var y = data.get(dims[1], idx);\n      point = coordSys.dataToPoint([x, y]);\n    }\n\n    if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n      var xAxis = coordSys.getAxis('x');\n      var yAxis = coordSys.getAxis('y');\n      var dims = coordSys.dimensions;\n\n      if (isInifinity(data.get(dims[0], idx))) {\n        point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[isFrom ? 0 : 1]);\n      } else if (isInifinity(data.get(dims[1], idx))) {\n        point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[isFrom ? 0 : 1]);\n      }\n    }\n\n    if (!isNaN(xPx)) {\n      point[0] = xPx;\n    }\n\n    if (!isNaN(yPx)) {\n      point[1] = yPx;\n    }\n  }\n\n  data.setItemLayout(idx, point);\n}\n\nvar MarkLineView = function (_super) {\n  __extends(MarkLineView, _super);\n\n  function MarkLineView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkLineView.type;\n    return _this;\n  }\n\n  MarkLineView.prototype.updateTransform = function (markLineModel, ecModel, api) {\n    ecModel.eachSeries(function (seriesModel) {\n      var mlModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markLine');\n\n      if (mlModel) {\n        var mlData_1 = mlModel.getData();\n        var fromData_1 = inner(mlModel).from;\n        var toData_1 = inner(mlModel).to;\n        fromData_1.each(function (idx) {\n          updateSingleMarkerEndLayout(fromData_1, idx, true, seriesModel, api);\n          updateSingleMarkerEndLayout(toData_1, idx, false, seriesModel, api);\n        });\n        mlData_1.each(function (idx) {\n          mlData_1.setItemLayout(idx, [fromData_1.getItemLayout(idx), toData_1.getItemLayout(idx)]);\n        });\n        this.markerGroupMap.get(seriesModel.id).updateLayout();\n      }\n    }, this);\n  };\n\n  MarkLineView.prototype.renderSeries = function (seriesModel, mlModel, ecModel, api) {\n    var coordSys = seriesModel.coordinateSystem;\n    var seriesId = seriesModel.id;\n    var seriesData = seriesModel.getData();\n    var lineDrawMap = this.markerGroupMap;\n    var lineDraw = lineDrawMap.get(seriesId) || lineDrawMap.set(seriesId, new LineDraw());\n    this.group.add(lineDraw.group);\n    var mlData = createList(coordSys, seriesModel, mlModel);\n    var fromData = mlData.from;\n    var toData = mlData.to;\n    var lineData = mlData.line;\n    inner(mlModel).from = fromData;\n    inner(mlModel).to = toData;\n    mlModel.setData(lineData);\n    var symbolType = mlModel.get('symbol');\n    var symbolSize = mlModel.get('symbolSize');\n\n    if (!isArray(symbolType)) {\n      symbolType = [symbolType, symbolType];\n    }\n\n    if (!isArray(symbolSize)) {\n      symbolSize = [symbolSize, symbolSize];\n    }\n\n    mlData.from.each(function (idx) {\n      updateDataVisualAndLayout(fromData, idx, true);\n      updateDataVisualAndLayout(toData, idx, false);\n    });\n    lineData.each(function (idx) {\n      var lineStyle = lineData.getItemModel(idx).getModel('lineStyle').getLineStyle();\n      lineData.setItemLayout(idx, [fromData.getItemLayout(idx), toData.getItemLayout(idx)]);\n\n      if (lineStyle.stroke == null) {\n        lineStyle.stroke = fromData.getItemVisual(idx, 'style').fill;\n      }\n\n      lineData.setItemVisual(idx, {\n        fromSymbolRotate: fromData.getItemVisual(idx, 'symbolRotate'),\n        fromSymbolSize: fromData.getItemVisual(idx, 'symbolSize'),\n        fromSymbol: fromData.getItemVisual(idx, 'symbol'),\n        toSymbolRotate: toData.getItemVisual(idx, 'symbolRotate'),\n        toSymbolSize: toData.getItemVisual(idx, 'symbolSize'),\n        toSymbol: toData.getItemVisual(idx, 'symbol'),\n        style: lineStyle\n      });\n    });\n    lineDraw.updateData(lineData);\n    mlData.line.eachItemGraphicEl(function (el, idx) {\n      el.traverse(function (child) {\n        getECData(child).dataModel = mlModel;\n      });\n    });\n\n    function updateDataVisualAndLayout(data, idx, isFrom) {\n      var itemModel = data.getItemModel(idx);\n      updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api);\n      var style = itemModel.getModel('itemStyle').getItemStyle();\n\n      if (style.fill == null) {\n        style.fill = getVisualFromData(seriesData, 'color');\n      }\n\n      data.setItemVisual(idx, {\n        symbolRotate: itemModel.get('symbolRotate'),\n        symbolSize: itemModel.get('symbolSize') || symbolSize[isFrom ? 0 : 1],\n        symbol: itemModel.get('symbol', true) || symbolType[isFrom ? 0 : 1],\n        style: style\n      });\n    }\n\n    this.markKeep(lineDraw);\n    lineDraw.group.silent = mlModel.get('silent') || seriesModel.get('silent');\n  };\n\n  MarkLineView.type = 'markLine';\n  return MarkLineView;\n}(MarkerView);\n\nfunction createList(coordSys, seriesModel, mlModel) {\n  var coordDimsInfos;\n\n  if (coordSys) {\n    coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\n      var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {};\n      return defaults({\n        name: coordDim\n      }, info);\n    });\n  } else {\n    coordDimsInfos = [{\n      name: 'value',\n      type: 'float'\n    }];\n  }\n\n  var fromData = new List(coordDimsInfos, mlModel);\n  var toData = new List(coordDimsInfos, mlModel);\n  var lineData = new List([], mlModel);\n  var optData = map(mlModel.get('data'), curry(markLineTransform, seriesModel, coordSys, mlModel));\n\n  if (coordSys) {\n    optData = filter(optData, curry(markLineFilter, coordSys));\n  }\n\n  var dimValueGetter = coordSys ? markerHelper.dimValueGetter : function (item) {\n    return item.value;\n  };\n  fromData.initData(map(optData, function (item) {\n    return item[0];\n  }), null, dimValueGetter);\n  toData.initData(map(optData, function (item) {\n    return item[1];\n  }), null, dimValueGetter);\n  lineData.initData(map(optData, function (item) {\n    return item[2];\n  }));\n  lineData.hasItemOption = true;\n  return {\n    from: fromData,\n    to: toData,\n    line: lineData\n  };\n}\n\nexport default MarkLineView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport MarkLineModel from './MarkLineModel';\nimport MarkLineView from './MarkLineView';\nexport function install(registers) {\n  registers.registerComponentModel(MarkLineModel);\n  registers.registerComponentView(MarkLineView);\n  registers.registerPreprocessor(function (opt) {\n    opt.markLine = opt.markLine || {};\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport MarkerModel from './MarkerModel';\n\nvar MarkAreaModel = function (_super) {\n  __extends(MarkAreaModel, _super);\n\n  function MarkAreaModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkAreaModel.type;\n    return _this;\n  }\n\n  MarkAreaModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\n    return new MarkAreaModel(markerOpt, masterMarkerModel, ecModel);\n  };\n\n  MarkAreaModel.type = 'markArea';\n  MarkAreaModel.defaultOption = {\n    zlevel: 0,\n    z: 1,\n    tooltip: {\n      trigger: 'item'\n    },\n    animation: false,\n    label: {\n      show: true,\n      position: 'top'\n    },\n    itemStyle: {\n      borderWidth: 0\n    },\n    emphasis: {\n      label: {\n        show: true,\n        position: 'top'\n      }\n    }\n  };\n  return MarkAreaModel;\n}(MarkerModel);\n\nexport default MarkAreaModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as colorUtil from 'zrender/lib/tool/color';\nimport List from '../../data/List';\nimport * as numberUtil from '../../util/number';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis, setStatesStylesFromModel } from '../../util/states';\nimport * as markerHelper from './markerHelper';\nimport MarkerView from './MarkerView';\nimport { retrieve, mergeAll, map, defaults, curry, filter, each } from 'zrender/lib/core/util';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport MarkerModel from './MarkerModel';\nimport { makeInner } from '../../util/model';\nimport { getVisualFromData } from '../../visual/helper';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { getECData } from '../../util/innerStore';\nvar inner = makeInner();\n\nvar markAreaTransform = function (seriesModel, coordSys, maModel, item) {\n  var lt = markerHelper.dataTransform(seriesModel, item[0]);\n  var rb = markerHelper.dataTransform(seriesModel, item[1]);\n  var ltCoord = lt.coord;\n  var rbCoord = rb.coord;\n  ltCoord[0] = retrieve(ltCoord[0], -Infinity);\n  ltCoord[1] = retrieve(ltCoord[1], -Infinity);\n  rbCoord[0] = retrieve(rbCoord[0], Infinity);\n  rbCoord[1] = retrieve(rbCoord[1], Infinity);\n  var result = mergeAll([{}, lt, rb]);\n  result.coord = [lt.coord, rb.coord];\n  result.x0 = lt.x;\n  result.y0 = lt.y;\n  result.x1 = rb.x;\n  result.y1 = rb.y;\n  return result;\n};\n\nfunction isInifinity(val) {\n  return !isNaN(val) && !isFinite(val);\n}\n\nfunction ifMarkAreaHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\n  var otherDimIndex = 1 - dimIndex;\n  return isInifinity(fromCoord[otherDimIndex]) && isInifinity(toCoord[otherDimIndex]);\n}\n\nfunction markAreaFilter(coordSys, item) {\n  var fromCoord = item.coord[0];\n  var toCoord = item.coord[1];\n\n  if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n    if (fromCoord && toCoord && (ifMarkAreaHasOnlyDim(1, fromCoord, toCoord, coordSys) || ifMarkAreaHasOnlyDim(0, fromCoord, toCoord, coordSys))) {\n      return true;\n    }\n  }\n\n  return markerHelper.dataFilter(coordSys, {\n    coord: fromCoord,\n    x: item.x0,\n    y: item.y0\n  }) || markerHelper.dataFilter(coordSys, {\n    coord: toCoord,\n    x: item.x1,\n    y: item.y1\n  });\n}\n\nfunction getSingleMarkerEndPoint(data, idx, dims, seriesModel, api) {\n  var coordSys = seriesModel.coordinateSystem;\n  var itemModel = data.getItemModel(idx);\n  var point;\n  var xPx = numberUtil.parsePercent(itemModel.get(dims[0]), api.getWidth());\n  var yPx = numberUtil.parsePercent(itemModel.get(dims[1]), api.getHeight());\n\n  if (!isNaN(xPx) && !isNaN(yPx)) {\n    point = [xPx, yPx];\n  } else {\n    if (seriesModel.getMarkerPosition) {\n      point = seriesModel.getMarkerPosition(data.getValues(dims, idx));\n    } else {\n      var x = data.get(dims[0], idx);\n      var y = data.get(dims[1], idx);\n      var pt = [x, y];\n      coordSys.clampData && coordSys.clampData(pt, pt);\n      point = coordSys.dataToPoint(pt, true);\n    }\n\n    if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n      var xAxis = coordSys.getAxis('x');\n      var yAxis = coordSys.getAxis('y');\n      var x = data.get(dims[0], idx);\n      var y = data.get(dims[1], idx);\n\n      if (isInifinity(x)) {\n        point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[dims[0] === 'x0' ? 0 : 1]);\n      } else if (isInifinity(y)) {\n        point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[dims[1] === 'y0' ? 0 : 1]);\n      }\n    }\n\n    if (!isNaN(xPx)) {\n      point[0] = xPx;\n    }\n\n    if (!isNaN(yPx)) {\n      point[1] = yPx;\n    }\n  }\n\n  return point;\n}\n\nvar dimPermutations = [['x0', 'y0'], ['x1', 'y0'], ['x1', 'y1'], ['x0', 'y1']];\n\nvar MarkAreaView = function (_super) {\n  __extends(MarkAreaView, _super);\n\n  function MarkAreaView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkAreaView.type;\n    return _this;\n  }\n\n  MarkAreaView.prototype.updateTransform = function (markAreaModel, ecModel, api) {\n    ecModel.eachSeries(function (seriesModel) {\n      var maModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markArea');\n\n      if (maModel) {\n        var areaData_1 = maModel.getData();\n        areaData_1.each(function (idx) {\n          var points = map(dimPermutations, function (dim) {\n            return getSingleMarkerEndPoint(areaData_1, idx, dim, seriesModel, api);\n          });\n          areaData_1.setItemLayout(idx, points);\n          var el = areaData_1.getItemGraphicEl(idx);\n          el.setShape('points', points);\n        });\n      }\n    }, this);\n  };\n\n  MarkAreaView.prototype.renderSeries = function (seriesModel, maModel, ecModel, api) {\n    var coordSys = seriesModel.coordinateSystem;\n    var seriesId = seriesModel.id;\n    var seriesData = seriesModel.getData();\n    var areaGroupMap = this.markerGroupMap;\n    var polygonGroup = areaGroupMap.get(seriesId) || areaGroupMap.set(seriesId, {\n      group: new graphic.Group()\n    });\n    this.group.add(polygonGroup.group);\n    this.markKeep(polygonGroup);\n    var areaData = createList(coordSys, seriesModel, maModel);\n    maModel.setData(areaData);\n    areaData.each(function (idx) {\n      var points = map(dimPermutations, function (dim) {\n        return getSingleMarkerEndPoint(areaData, idx, dim, seriesModel, api);\n      });\n      var allClipped = true;\n      each(dimPermutations, function (dim) {\n        if (!allClipped) {\n          return;\n        }\n\n        var xValue = areaData.get(dim[0], idx);\n        var yValue = areaData.get(dim[1], idx);\n\n        if ((isInifinity(xValue) || coordSys.getAxis('x').containData(xValue)) && (isInifinity(yValue) || coordSys.getAxis('y').containData(yValue))) {\n          allClipped = false;\n        }\n      });\n      areaData.setItemLayout(idx, {\n        points: points,\n        allClipped: allClipped\n      });\n      var style = areaData.getItemModel(idx).getModel('itemStyle').getItemStyle();\n      var color = getVisualFromData(seriesData, 'color');\n\n      if (!style.fill) {\n        style.fill = color;\n\n        if (typeof style.fill === 'string') {\n          style.fill = colorUtil.modifyAlpha(style.fill, 0.4);\n        }\n      }\n\n      if (!style.stroke) {\n        style.stroke = color;\n      }\n\n      areaData.setItemVisual(idx, 'style', style);\n    });\n    areaData.diff(inner(polygonGroup).data).add(function (idx) {\n      var layout = areaData.getItemLayout(idx);\n\n      if (!layout.allClipped) {\n        var polygon = new graphic.Polygon({\n          shape: {\n            points: layout.points\n          }\n        });\n        areaData.setItemGraphicEl(idx, polygon);\n        polygonGroup.group.add(polygon);\n      }\n    }).update(function (newIdx, oldIdx) {\n      var polygon = inner(polygonGroup).data.getItemGraphicEl(oldIdx);\n      var layout = areaData.getItemLayout(newIdx);\n\n      if (!layout.allClipped) {\n        if (polygon) {\n          graphic.updateProps(polygon, {\n            shape: {\n              points: layout.points\n            }\n          }, maModel, newIdx);\n        } else {\n          polygon = new graphic.Polygon({\n            shape: {\n              points: layout.points\n            }\n          });\n        }\n\n        areaData.setItemGraphicEl(newIdx, polygon);\n        polygonGroup.group.add(polygon);\n      } else if (polygon) {\n        polygonGroup.group.remove(polygon);\n      }\n    }).remove(function (idx) {\n      var polygon = inner(polygonGroup).data.getItemGraphicEl(idx);\n      polygonGroup.group.remove(polygon);\n    }).execute();\n    areaData.eachItemGraphicEl(function (polygon, idx) {\n      var itemModel = areaData.getItemModel(idx);\n      var style = areaData.getItemVisual(idx, 'style');\n      polygon.useStyle(areaData.getItemVisual(idx, 'style'));\n      setLabelStyle(polygon, getLabelStatesModels(itemModel), {\n        labelFetcher: maModel,\n        labelDataIndex: idx,\n        defaultText: areaData.getName(idx) || '',\n        inheritColor: typeof style.fill === 'string' ? colorUtil.modifyAlpha(style.fill, 1) : '#000'\n      });\n      setStatesStylesFromModel(polygon, itemModel);\n      enableHoverEmphasis(polygon);\n      getECData(polygon).dataModel = maModel;\n    });\n    inner(polygonGroup).data = areaData;\n    polygonGroup.group.silent = maModel.get('silent') || seriesModel.get('silent');\n  };\n\n  MarkAreaView.type = 'markArea';\n  return MarkAreaView;\n}(MarkerView);\n\nfunction createList(coordSys, seriesModel, maModel) {\n  var coordDimsInfos;\n  var areaData;\n  var dims = ['x0', 'y0', 'x1', 'y1'];\n\n  if (coordSys) {\n    coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\n      var data = seriesModel.getData();\n      var info = data.getDimensionInfo(data.mapDimension(coordDim)) || {};\n      return defaults({\n        name: coordDim\n      }, info);\n    });\n    areaData = new List(map(dims, function (dim, idx) {\n      return {\n        name: dim,\n        type: coordDimsInfos[idx % 2].type\n      };\n    }), maModel);\n  } else {\n    coordDimsInfos = [{\n      name: 'value',\n      type: 'float'\n    }];\n    areaData = new List(coordDimsInfos, maModel);\n  }\n\n  var optData = map(maModel.get('data'), curry(markAreaTransform, seriesModel, coordSys, maModel));\n\n  if (coordSys) {\n    optData = filter(optData, curry(markAreaFilter, coordSys));\n  }\n\n  var dimValueGetter = coordSys ? function (item, dimName, dataIndex, dimIndex) {\n    return item.coord[Math.floor(dimIndex / 2)][dimIndex % 2];\n  } : function (item) {\n    return item.value;\n  };\n  areaData.initData(optData, null, dimValueGetter);\n  areaData.hasItemOption = true;\n  return areaData;\n}\n\nexport default MarkAreaView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport MarkAreaModel from './MarkAreaModel';\nimport MarkAreaView from './MarkAreaView';\nexport function install(registers) {\n  registers.registerComponentModel(MarkAreaModel);\n  registers.registerComponentView(MarkAreaView);\n  registers.registerPreprocessor(function (opt) {\n    opt.markArea = opt.markArea || {};\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Model from '../../model/Model';\nimport { isNameSpecified } from '../../util/model';\nimport ComponentModel from '../../model/Component';\n\nvar getDefaultSelectorOptions = function (ecModel, type) {\n  if (type === 'all') {\n    return {\n      type: 'all',\n      title: ecModel.getLocale(['legend', 'selector', 'all'])\n    };\n  } else if (type === 'inverse') {\n    return {\n      type: 'inverse',\n      title: ecModel.getLocale(['legend', 'selector', 'inverse'])\n    };\n  }\n};\n\nvar LegendModel = function (_super) {\n  __extends(LegendModel, _super);\n\n  function LegendModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = LegendModel.type;\n    _this.layoutMode = {\n      type: 'box',\n      ignoreSize: true\n    };\n    return _this;\n  }\n\n  LegendModel.prototype.init = function (option, parentModel, ecModel) {\n    this.mergeDefaultAndTheme(option, ecModel);\n    option.selected = option.selected || {};\n\n    this._updateSelector(option);\n  };\n\n  LegendModel.prototype.mergeOption = function (option, ecModel) {\n    _super.prototype.mergeOption.call(this, option, ecModel);\n\n    this._updateSelector(option);\n  };\n\n  LegendModel.prototype._updateSelector = function (option) {\n    var selector = option.selector;\n    var ecModel = this.ecModel;\n\n    if (selector === true) {\n      selector = option.selector = ['all', 'inverse'];\n    }\n\n    if (zrUtil.isArray(selector)) {\n      zrUtil.each(selector, function (item, index) {\n        zrUtil.isString(item) && (item = {\n          type: item\n        });\n        selector[index] = zrUtil.merge(item, getDefaultSelectorOptions(ecModel, item.type));\n      });\n    }\n  };\n\n  LegendModel.prototype.optionUpdated = function () {\n    this._updateData(this.ecModel);\n\n    var legendData = this._data;\n\n    if (legendData[0] && this.get('selectedMode') === 'single') {\n      var hasSelected = false;\n\n      for (var i = 0; i < legendData.length; i++) {\n        var name_1 = legendData[i].get('name');\n\n        if (this.isSelected(name_1)) {\n          this.select(name_1);\n          hasSelected = true;\n          break;\n        }\n      }\n\n      !hasSelected && this.select(legendData[0].get('name'));\n    }\n  };\n\n  LegendModel.prototype._updateData = function (ecModel) {\n    var potentialData = [];\n    var availableNames = [];\n    ecModel.eachRawSeries(function (seriesModel) {\n      var seriesName = seriesModel.name;\n      availableNames.push(seriesName);\n      var isPotential;\n\n      if (seriesModel.legendVisualProvider) {\n        var provider = seriesModel.legendVisualProvider;\n        var names = provider.getAllNames();\n\n        if (!ecModel.isSeriesFiltered(seriesModel)) {\n          availableNames = availableNames.concat(names);\n        }\n\n        if (names.length) {\n          potentialData = potentialData.concat(names);\n        } else {\n          isPotential = true;\n        }\n      } else {\n        isPotential = true;\n      }\n\n      if (isPotential && isNameSpecified(seriesModel)) {\n        potentialData.push(seriesModel.name);\n      }\n    });\n    this._availableNames = availableNames;\n    var rawData = this.get('data') || potentialData;\n    var legendData = zrUtil.map(rawData, function (dataItem) {\n      if (typeof dataItem === 'string' || typeof dataItem === 'number') {\n        dataItem = {\n          name: dataItem\n        };\n      }\n\n      return new Model(dataItem, this, this.ecModel);\n    }, this);\n    this._data = legendData;\n  };\n\n  LegendModel.prototype.getData = function () {\n    return this._data;\n  };\n\n  LegendModel.prototype.select = function (name) {\n    var selected = this.option.selected;\n    var selectedMode = this.get('selectedMode');\n\n    if (selectedMode === 'single') {\n      var data = this._data;\n      zrUtil.each(data, function (dataItem) {\n        selected[dataItem.get('name')] = false;\n      });\n    }\n\n    selected[name] = true;\n  };\n\n  LegendModel.prototype.unSelect = function (name) {\n    if (this.get('selectedMode') !== 'single') {\n      this.option.selected[name] = false;\n    }\n  };\n\n  LegendModel.prototype.toggleSelected = function (name) {\n    var selected = this.option.selected;\n\n    if (!selected.hasOwnProperty(name)) {\n      selected[name] = true;\n    }\n\n    this[selected[name] ? 'unSelect' : 'select'](name);\n  };\n\n  LegendModel.prototype.allSelect = function () {\n    var data = this._data;\n    var selected = this.option.selected;\n    zrUtil.each(data, function (dataItem) {\n      selected[dataItem.get('name', true)] = true;\n    });\n  };\n\n  LegendModel.prototype.inverseSelect = function () {\n    var data = this._data;\n    var selected = this.option.selected;\n    zrUtil.each(data, function (dataItem) {\n      var name = dataItem.get('name', true);\n\n      if (!selected.hasOwnProperty(name)) {\n        selected[name] = true;\n      }\n\n      selected[name] = !selected[name];\n    });\n  };\n\n  LegendModel.prototype.isSelected = function (name) {\n    var selected = this.option.selected;\n    return !(selected.hasOwnProperty(name) && !selected[name]) && zrUtil.indexOf(this._availableNames, name) >= 0;\n  };\n\n  LegendModel.prototype.getOrient = function () {\n    return this.get('orient') === 'vertical' ? {\n      index: 1,\n      name: 'vertical'\n    } : {\n      index: 0,\n      name: 'horizontal'\n    };\n  };\n\n  LegendModel.type = 'legend.plain';\n  LegendModel.dependencies = ['series'];\n  LegendModel.defaultOption = {\n    zlevel: 0,\n    z: 4,\n    show: true,\n    orient: 'horizontal',\n    left: 'center',\n    top: 0,\n    align: 'auto',\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderColor: '#ccc',\n    borderRadius: 0,\n    borderWidth: 0,\n    padding: 5,\n    itemGap: 10,\n    itemWidth: 25,\n    itemHeight: 14,\n    inactiveColor: '#ccc',\n    inactiveBorderColor: '#ccc',\n    itemStyle: {\n      borderWidth: 0\n    },\n    textStyle: {\n      color: '#333'\n    },\n    selectedMode: true,\n    selector: false,\n    selectorLabel: {\n      show: true,\n      borderRadius: 10,\n      padding: [3, 5, 3, 5],\n      fontSize: 12,\n      fontFamily: ' sans-serif',\n      color: '#666',\n      borderWidth: 1,\n      borderColor: '#666'\n    },\n    emphasis: {\n      selectorLabel: {\n        show: true,\n        color: '#eee',\n        backgroundColor: '#666'\n      }\n    },\n    selectorPosition: 'auto',\n    selectorItemGap: 7,\n    selectorButtonGap: 10,\n    tooltip: {\n      show: false\n    }\n  };\n  return LegendModel;\n}(ComponentModel);\n\nexport default LegendModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { createSymbol } from '../../util/symbol';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis } from '../../util/states';\nimport { setLabelStyle, createTextStyle } from '../../label/labelStyle';\nimport { makeBackground } from '../helper/listComponent';\nimport * as layoutUtil from '../../util/layout';\nimport ComponentView from '../../view/Component';\nimport { parse, stringify } from 'zrender/lib/tool/color';\nvar curry = zrUtil.curry;\nvar each = zrUtil.each;\nvar Group = graphic.Group;\n\nvar LegendView = function (_super) {\n  __extends(LegendView, _super);\n\n  function LegendView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = LegendView.type;\n    _this.newlineDisabled = false;\n    return _this;\n  }\n\n  LegendView.prototype.init = function () {\n    this.group.add(this._contentGroup = new Group());\n    this.group.add(this._selectorGroup = new Group());\n    this._isFirstRender = true;\n  };\n\n  LegendView.prototype.getContentGroup = function () {\n    return this._contentGroup;\n  };\n\n  LegendView.prototype.getSelectorGroup = function () {\n    return this._selectorGroup;\n  };\n\n  LegendView.prototype.render = function (legendModel, ecModel, api) {\n    var isFirstRender = this._isFirstRender;\n    this._isFirstRender = false;\n    this.resetInner();\n\n    if (!legendModel.get('show', true)) {\n      return;\n    }\n\n    var itemAlign = legendModel.get('align');\n    var orient = legendModel.get('orient');\n\n    if (!itemAlign || itemAlign === 'auto') {\n      itemAlign = legendModel.get('left') === 'right' && orient === 'vertical' ? 'right' : 'left';\n    }\n\n    var selector = legendModel.get('selector', true);\n    var selectorPosition = legendModel.get('selectorPosition', true);\n\n    if (selector && (!selectorPosition || selectorPosition === 'auto')) {\n      selectorPosition = orient === 'horizontal' ? 'end' : 'start';\n    }\n\n    this.renderInner(itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\n    var positionInfo = legendModel.getBoxLayoutParams();\n    var viewportSize = {\n      width: api.getWidth(),\n      height: api.getHeight()\n    };\n    var padding = legendModel.get('padding');\n    var maxSize = layoutUtil.getLayoutRect(positionInfo, viewportSize, padding);\n    var mainRect = this.layoutInner(legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition);\n    var layoutRect = layoutUtil.getLayoutRect(zrUtil.defaults({\n      width: mainRect.width,\n      height: mainRect.height\n    }, positionInfo), viewportSize, padding);\n    this.group.x = layoutRect.x - mainRect.x;\n    this.group.y = layoutRect.y - mainRect.y;\n    this.group.markRedraw();\n    this.group.add(this._backgroundEl = makeBackground(mainRect, legendModel));\n  };\n\n  LegendView.prototype.resetInner = function () {\n    this.getContentGroup().removeAll();\n    this._backgroundEl && this.group.remove(this._backgroundEl);\n    this.getSelectorGroup().removeAll();\n  };\n\n  LegendView.prototype.renderInner = function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\n    var contentGroup = this.getContentGroup();\n    var legendDrawnMap = zrUtil.createHashMap();\n    var selectMode = legendModel.get('selectedMode');\n    var excludeSeriesId = [];\n    ecModel.eachRawSeries(function (seriesModel) {\n      !seriesModel.get('legendHoverLink') && excludeSeriesId.push(seriesModel.id);\n    });\n    each(legendModel.getData(), function (itemModel, dataIndex) {\n      var name = itemModel.get('name');\n\n      if (!this.newlineDisabled && (name === '' || name === '\\n')) {\n        var g = new Group();\n        g.newline = true;\n        contentGroup.add(g);\n        return;\n      }\n\n      var seriesModel = ecModel.getSeriesByName(name)[0];\n\n      if (legendDrawnMap.get(name)) {\n        return;\n      }\n\n      if (seriesModel) {\n        var data = seriesModel.getData();\n        var style = data.getVisual('style');\n        var color = style[data.getVisual('drawType')] || style.fill;\n        var borderColor = style.stroke;\n        var decal = style.decal;\n        var legendSymbolType = data.getVisual('legendSymbol') || 'roundRect';\n        var symbolType = data.getVisual('symbol');\n\n        var itemGroup = this._createItem(name, dataIndex, itemModel, legendModel, legendSymbolType, symbolType, itemAlign, color, borderColor, decal, selectMode);\n\n        itemGroup.on('click', curry(dispatchSelectAction, name, null, api, excludeSeriesId)).on('mouseover', curry(dispatchHighlightAction, seriesModel.name, null, api, excludeSeriesId)).on('mouseout', curry(dispatchDownplayAction, seriesModel.name, null, api, excludeSeriesId));\n        legendDrawnMap.set(name, true);\n      } else {\n        ecModel.eachRawSeries(function (seriesModel) {\n          if (legendDrawnMap.get(name)) {\n            return;\n          }\n\n          if (seriesModel.legendVisualProvider) {\n            var provider = seriesModel.legendVisualProvider;\n\n            if (!provider.containName(name)) {\n              return;\n            }\n\n            var idx = provider.indexOfName(name);\n            var style = provider.getItemVisual(idx, 'style');\n            var borderColor = style.stroke;\n            var decal = style.decal;\n            var color = style.fill;\n            var colorArr = parse(style.fill);\n\n            if (colorArr && colorArr[3] === 0) {\n              colorArr[3] = 0.2;\n              color = stringify(colorArr, 'rgba');\n            }\n\n            var legendSymbolType = 'roundRect';\n\n            var itemGroup = this._createItem(name, dataIndex, itemModel, legendModel, legendSymbolType, null, itemAlign, color, borderColor, decal, selectMode);\n\n            itemGroup.on('click', curry(dispatchSelectAction, null, name, api, excludeSeriesId)).on('mouseover', curry(dispatchHighlightAction, null, name, api, excludeSeriesId)).on('mouseout', curry(dispatchDownplayAction, null, name, api, excludeSeriesId));\n            legendDrawnMap.set(name, true);\n          }\n        }, this);\n      }\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (!legendDrawnMap.get(name)) {\n          console.warn(name + ' series not exists. Legend data should be same with series name or data name.');\n        }\n      }\n    }, this);\n\n    if (selector) {\n      this._createSelector(selector, legendModel, api, orient, selectorPosition);\n    }\n  };\n\n  LegendView.prototype._createSelector = function (selector, legendModel, api, orient, selectorPosition) {\n    var selectorGroup = this.getSelectorGroup();\n    each(selector, function createSelectorButton(selectorItem) {\n      var type = selectorItem.type;\n      var labelText = new graphic.Text({\n        style: {\n          x: 0,\n          y: 0,\n          align: 'center',\n          verticalAlign: 'middle'\n        },\n        onclick: function () {\n          api.dispatchAction({\n            type: type === 'all' ? 'legendAllSelect' : 'legendInverseSelect'\n          });\n        }\n      });\n      selectorGroup.add(labelText);\n      var labelModel = legendModel.getModel('selectorLabel');\n      var emphasisLabelModel = legendModel.getModel(['emphasis', 'selectorLabel']);\n      setLabelStyle(labelText, {\n        normal: labelModel,\n        emphasis: emphasisLabelModel\n      }, {\n        defaultText: selectorItem.title\n      });\n      enableHoverEmphasis(labelText);\n    });\n  };\n\n  LegendView.prototype._createItem = function (name, dataIndex, itemModel, legendModel, legendSymbolType, symbolType, itemAlign, color, borderColor, decal, selectMode) {\n    var itemWidth = legendModel.get('itemWidth');\n    var itemHeight = legendModel.get('itemHeight');\n    var inactiveColor = legendModel.get('inactiveColor');\n    var inactiveBorderColor = legendModel.get('inactiveBorderColor');\n    var symbolKeepAspect = legendModel.get('symbolKeepAspect');\n    var legendModelItemStyle = legendModel.getModel('itemStyle');\n    var isSelected = legendModel.isSelected(name);\n    var itemGroup = new Group();\n    var textStyleModel = itemModel.getModel('textStyle');\n    var itemIcon = itemModel.get('icon');\n    var tooltipModel = itemModel.getModel('tooltip');\n    var legendGlobalTooltipModel = tooltipModel.parentModel;\n    legendSymbolType = itemIcon || legendSymbolType;\n    var legendSymbol = createSymbol(legendSymbolType, 0, 0, itemWidth, itemHeight, isSelected ? color : inactiveColor, symbolKeepAspect == null ? true : symbolKeepAspect);\n    itemGroup.add(setSymbolStyle(legendSymbol, legendSymbolType, legendModelItemStyle, borderColor, inactiveBorderColor, decal, isSelected));\n\n    if (!itemIcon && symbolType && (symbolType !== legendSymbolType || symbolType === 'none')) {\n      var size = itemHeight * 0.8;\n\n      if (symbolType === 'none') {\n        symbolType = 'circle';\n      }\n\n      var legendSymbolCenter = createSymbol(symbolType, (itemWidth - size) / 2, (itemHeight - size) / 2, size, size, isSelected ? color : inactiveColor, symbolKeepAspect == null ? true : symbolKeepAspect);\n      itemGroup.add(setSymbolStyle(legendSymbolCenter, symbolType, legendModelItemStyle, borderColor, inactiveBorderColor, decal, isSelected));\n    }\n\n    var textX = itemAlign === 'left' ? itemWidth + 5 : -5;\n    var textAlign = itemAlign;\n    var formatter = legendModel.get('formatter');\n    var content = name;\n\n    if (typeof formatter === 'string' && formatter) {\n      content = formatter.replace('{name}', name != null ? name : '');\n    } else if (typeof formatter === 'function') {\n      content = formatter(name);\n    }\n\n    itemGroup.add(new graphic.Text({\n      style: createTextStyle(textStyleModel, {\n        text: content,\n        x: textX,\n        y: itemHeight / 2,\n        fill: isSelected ? textStyleModel.getTextColor() : inactiveColor,\n        align: textAlign,\n        verticalAlign: 'middle'\n      })\n    }));\n    var hitRect = new graphic.Rect({\n      shape: itemGroup.getBoundingRect(),\n      invisible: true\n    });\n\n    if (tooltipModel.get('show')) {\n      var formatterParams = {\n        componentType: 'legend',\n        legendIndex: legendModel.componentIndex,\n        name: name,\n        $vars: ['name']\n      };\n      hitRect.tooltip = zrUtil.extend({\n        content: name,\n        formatter: legendGlobalTooltipModel.get('formatter', true) || function (params) {\n          return params.name;\n        },\n        formatterParams: formatterParams\n      }, tooltipModel.option);\n    }\n\n    itemGroup.add(hitRect);\n    itemGroup.eachChild(function (child) {\n      child.silent = true;\n    });\n    hitRect.silent = !selectMode;\n    this.getContentGroup().add(itemGroup);\n    enableHoverEmphasis(itemGroup);\n    itemGroup.__legendDataIndex = dataIndex;\n    return itemGroup;\n  };\n\n  LegendView.prototype.layoutInner = function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\n    var contentGroup = this.getContentGroup();\n    var selectorGroup = this.getSelectorGroup();\n    layoutUtil.box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), maxSize.width, maxSize.height);\n    var contentRect = contentGroup.getBoundingRect();\n    var contentPos = [-contentRect.x, -contentRect.y];\n    selectorGroup.markRedraw();\n    contentGroup.markRedraw();\n\n    if (selector) {\n      layoutUtil.box('horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\n      var selectorRect = selectorGroup.getBoundingRect();\n      var selectorPos = [-selectorRect.x, -selectorRect.y];\n      var selectorButtonGap = legendModel.get('selectorButtonGap', true);\n      var orientIdx = legendModel.getOrient().index;\n      var wh = orientIdx === 0 ? 'width' : 'height';\n      var hw = orientIdx === 0 ? 'height' : 'width';\n      var yx = orientIdx === 0 ? 'y' : 'x';\n\n      if (selectorPosition === 'end') {\n        selectorPos[orientIdx] += contentRect[wh] + selectorButtonGap;\n      } else {\n        contentPos[orientIdx] += selectorRect[wh] + selectorButtonGap;\n      }\n\n      selectorPos[1 - orientIdx] += contentRect[hw] / 2 - selectorRect[hw] / 2;\n      selectorGroup.x = selectorPos[0];\n      selectorGroup.y = selectorPos[1];\n      contentGroup.x = contentPos[0];\n      contentGroup.y = contentPos[1];\n      var mainRect = {\n        x: 0,\n        y: 0\n      };\n      mainRect[wh] = contentRect[wh] + selectorButtonGap + selectorRect[wh];\n      mainRect[hw] = Math.max(contentRect[hw], selectorRect[hw]);\n      mainRect[yx] = Math.min(0, selectorRect[yx] + selectorPos[1 - orientIdx]);\n      return mainRect;\n    } else {\n      contentGroup.x = contentPos[0];\n      contentGroup.y = contentPos[1];\n      return this.group.getBoundingRect();\n    }\n  };\n\n  LegendView.prototype.remove = function () {\n    this.getContentGroup().removeAll();\n    this._isFirstRender = true;\n  };\n\n  LegendView.type = 'legend.plain';\n  return LegendView;\n}(ComponentView);\n\nfunction setSymbolStyle(symbol, symbolType, legendModelItemStyle, borderColor, inactiveBorderColor, decal, isSelected) {\n  var itemStyle;\n\n  if (symbolType !== 'line' && symbolType.indexOf('empty') < 0) {\n    itemStyle = legendModelItemStyle.getItemStyle();\n    symbol.style.stroke = borderColor;\n    symbol.style.decal = decal;\n\n    if (!isSelected) {\n      itemStyle.stroke = inactiveBorderColor;\n    }\n  } else {\n    itemStyle = legendModelItemStyle.getItemStyle(['borderWidth', 'borderColor']);\n  }\n\n  symbol.setStyle(itemStyle);\n  return symbol;\n}\n\nfunction dispatchSelectAction(seriesName, dataName, api, excludeSeriesId) {\n  dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId);\n  api.dispatchAction({\n    type: 'legendToggleSelect',\n    name: seriesName != null ? seriesName : dataName\n  });\n  dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId);\n}\n\nfunction isUseHoverLayer(api) {\n  var list = api.getZr().storage.getDisplayList();\n  var emphasisState;\n  var i = 0;\n  var len = list.length;\n\n  while (i < len && !(emphasisState = list[i].states.emphasis)) {\n    i++;\n  }\n\n  return emphasisState && emphasisState.hoverLayer;\n}\n\nfunction dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId) {\n  if (!isUseHoverLayer(api)) {\n    api.dispatchAction({\n      type: 'highlight',\n      seriesName: seriesName,\n      name: dataName,\n      excludeSeriesId: excludeSeriesId\n    });\n  }\n}\n\nfunction dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId) {\n  if (!isUseHoverLayer(api)) {\n    api.dispatchAction({\n      type: 'downplay',\n      seriesName: seriesName,\n      name: dataName,\n      excludeSeriesId: excludeSeriesId\n    });\n  }\n}\n\nexport default LegendView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function legendFilter(ecModel) {\n  var legendModels = ecModel.findComponents({\n    mainType: 'legend'\n  });\n\n  if (legendModels && legendModels.length) {\n    ecModel.filterSeries(function (series) {\n      for (var i = 0; i < legendModels.length; i++) {\n        if (!legendModels[i].isSelected(series.name)) {\n          return false;\n        }\n      }\n\n      return true;\n    });\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { curry, each } from 'zrender/lib/core/util';\n\nfunction legendSelectActionHandler(methodName, payload, ecModel) {\n  var selectedMap = {};\n  var isToggleSelect = methodName === 'toggleSelected';\n  var isSelected;\n  ecModel.eachComponent('legend', function (legendModel) {\n    if (isToggleSelect && isSelected != null) {\n      legendModel[isSelected ? 'select' : 'unSelect'](payload.name);\n    } else if (methodName === 'allSelect' || methodName === 'inverseSelect') {\n      legendModel[methodName]();\n    } else {\n      legendModel[methodName](payload.name);\n      isSelected = legendModel.isSelected(payload.name);\n    }\n\n    var legendData = legendModel.getData();\n    each(legendData, function (model) {\n      var name = model.get('name');\n\n      if (name === '\\n' || name === '') {\n        return;\n      }\n\n      var isItemSelected = legendModel.isSelected(name);\n\n      if (selectedMap.hasOwnProperty(name)) {\n        selectedMap[name] = selectedMap[name] && isItemSelected;\n      } else {\n        selectedMap[name] = isItemSelected;\n      }\n    });\n  });\n  return methodName === 'allSelect' || methodName === 'inverseSelect' ? {\n    selected: selectedMap\n  } : {\n    name: payload.name,\n    selected: selectedMap\n  };\n}\n\nexport function installLegendAction(registers) {\n  registers.registerAction('legendToggleSelect', 'legendselectchanged', curry(legendSelectActionHandler, 'toggleSelected'));\n  registers.registerAction('legendAllSelect', 'legendselectall', curry(legendSelectActionHandler, 'allSelect'));\n  registers.registerAction('legendInverseSelect', 'legendinverseselect', curry(legendSelectActionHandler, 'inverseSelect'));\n  registers.registerAction('legendSelect', 'legendselected', curry(legendSelectActionHandler, 'select'));\n  registers.registerAction('legendUnSelect', 'legendunselected', curry(legendSelectActionHandler, 'unSelect'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport LegendModel from './LegendModel';\nimport LegendView from './LegendView';\nimport legendFilter from './legendFilter';\nimport { installLegendAction } from './legendAction';\nexport function install(registers) {\n  registers.registerComponentModel(LegendModel);\n  registers.registerComponentView(LegendView);\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.SERIES_FILTER, legendFilter);\n  registers.registerSubTypeDefaulter('legend', function () {\n    return 'plain';\n  });\n  installLegendAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport LegendModel from './LegendModel';\nimport { mergeLayoutParam, getLayoutParams } from '../../util/layout';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar ScrollableLegendModel = function (_super) {\n  __extends(ScrollableLegendModel, _super);\n\n  function ScrollableLegendModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ScrollableLegendModel.type;\n    return _this;\n  }\n\n  ScrollableLegendModel.prototype.setScrollDataIndex = function (scrollDataIndex) {\n    this.option.scrollDataIndex = scrollDataIndex;\n  };\n\n  ScrollableLegendModel.prototype.init = function (option, parentModel, ecModel) {\n    var inputPositionParams = getLayoutParams(option);\n\n    _super.prototype.init.call(this, option, parentModel, ecModel);\n\n    mergeAndNormalizeLayoutParams(this, option, inputPositionParams);\n  };\n\n  ScrollableLegendModel.prototype.mergeOption = function (option, ecModel) {\n    _super.prototype.mergeOption.call(this, option, ecModel);\n\n    mergeAndNormalizeLayoutParams(this, this.option, option);\n  };\n\n  ScrollableLegendModel.type = 'legend.scroll';\n  ScrollableLegendModel.defaultOption = inheritDefaultOption(LegendModel.defaultOption, {\n    scrollDataIndex: 0,\n    pageButtonItemGap: 5,\n    pageButtonGap: null,\n    pageButtonPosition: 'end',\n    pageFormatter: '{current}/{total}',\n    pageIcons: {\n      horizontal: ['M0,0L12,-10L12,10z', 'M0,0L-12,-10L-12,10z'],\n      vertical: ['M0,0L20,0L10,-20z', 'M0,0L20,0L10,20z']\n    },\n    pageIconColor: '#2f4554',\n    pageIconInactiveColor: '#aaa',\n    pageIconSize: 15,\n    pageTextStyle: {\n      color: '#333'\n    },\n    animationDurationUpdate: 800\n  });\n  return ScrollableLegendModel;\n}(LegendModel);\n\n;\n\nfunction mergeAndNormalizeLayoutParams(legendModel, target, raw) {\n  var orient = legendModel.getOrient();\n  var ignoreSize = [1, 1];\n  ignoreSize[orient.index] = 0;\n  mergeLayoutParam(target, raw, {\n    type: 'box',\n    ignoreSize: !!ignoreSize\n  });\n}\n\nexport default ScrollableLegendModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport * as layoutUtil from '../../util/layout';\nimport LegendView from './LegendView';\nvar Group = graphic.Group;\nvar WH = ['width', 'height'];\nvar XY = ['x', 'y'];\n\nvar ScrollableLegendView = function (_super) {\n  __extends(ScrollableLegendView, _super);\n\n  function ScrollableLegendView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ScrollableLegendView.type;\n    _this.newlineDisabled = true;\n    _this._currentIndex = 0;\n    return _this;\n  }\n\n  ScrollableLegendView.prototype.init = function () {\n    _super.prototype.init.call(this);\n\n    this.group.add(this._containerGroup = new Group());\n\n    this._containerGroup.add(this.getContentGroup());\n\n    this.group.add(this._controllerGroup = new Group());\n  };\n\n  ScrollableLegendView.prototype.resetInner = function () {\n    _super.prototype.resetInner.call(this);\n\n    this._controllerGroup.removeAll();\n\n    this._containerGroup.removeClipPath();\n\n    this._containerGroup.__rectSize = null;\n  };\n\n  ScrollableLegendView.prototype.renderInner = function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\n    var self = this;\n\n    _super.prototype.renderInner.call(this, itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\n\n    var controllerGroup = this._controllerGroup;\n    var pageIconSize = legendModel.get('pageIconSize', true);\n    var pageIconSizeArr = zrUtil.isArray(pageIconSize) ? pageIconSize : [pageIconSize, pageIconSize];\n    createPageButton('pagePrev', 0);\n    var pageTextStyleModel = legendModel.getModel('pageTextStyle');\n    controllerGroup.add(new graphic.Text({\n      name: 'pageText',\n      style: {\n        text: 'xx/xx',\n        fill: pageTextStyleModel.getTextColor(),\n        font: pageTextStyleModel.getFont(),\n        verticalAlign: 'middle',\n        align: 'center'\n      },\n      silent: true\n    }));\n    createPageButton('pageNext', 1);\n\n    function createPageButton(name, iconIdx) {\n      var pageDataIndexName = name + 'DataIndex';\n      var icon = graphic.createIcon(legendModel.get('pageIcons', true)[legendModel.getOrient().name][iconIdx], {\n        onclick: zrUtil.bind(self._pageGo, self, pageDataIndexName, legendModel, api)\n      }, {\n        x: -pageIconSizeArr[0] / 2,\n        y: -pageIconSizeArr[1] / 2,\n        width: pageIconSizeArr[0],\n        height: pageIconSizeArr[1]\n      });\n      icon.name = name;\n      controllerGroup.add(icon);\n    }\n  };\n\n  ScrollableLegendView.prototype.layoutInner = function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\n    var selectorGroup = this.getSelectorGroup();\n    var orientIdx = legendModel.getOrient().index;\n    var wh = WH[orientIdx];\n    var xy = XY[orientIdx];\n    var hw = WH[1 - orientIdx];\n    var yx = XY[1 - orientIdx];\n    selector && layoutUtil.box('horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\n    var selectorButtonGap = legendModel.get('selectorButtonGap', true);\n    var selectorRect = selectorGroup.getBoundingRect();\n    var selectorPos = [-selectorRect.x, -selectorRect.y];\n    var processMaxSize = zrUtil.clone(maxSize);\n    selector && (processMaxSize[wh] = maxSize[wh] - selectorRect[wh] - selectorButtonGap);\n\n    var mainRect = this._layoutContentAndController(legendModel, isFirstRender, processMaxSize, orientIdx, wh, hw, yx, xy);\n\n    if (selector) {\n      if (selectorPosition === 'end') {\n        selectorPos[orientIdx] += mainRect[wh] + selectorButtonGap;\n      } else {\n        var offset = selectorRect[wh] + selectorButtonGap;\n        selectorPos[orientIdx] -= offset;\n        mainRect[xy] -= offset;\n      }\n\n      mainRect[wh] += selectorRect[wh] + selectorButtonGap;\n      selectorPos[1 - orientIdx] += mainRect[yx] + mainRect[hw] / 2 - selectorRect[hw] / 2;\n      mainRect[hw] = Math.max(mainRect[hw], selectorRect[hw]);\n      mainRect[yx] = Math.min(mainRect[yx], selectorRect[yx] + selectorPos[1 - orientIdx]);\n      selectorGroup.x = selectorPos[0];\n      selectorGroup.y = selectorPos[1];\n      selectorGroup.markRedraw();\n    }\n\n    return mainRect;\n  };\n\n  ScrollableLegendView.prototype._layoutContentAndController = function (legendModel, isFirstRender, maxSize, orientIdx, wh, hw, yx, xy) {\n    var contentGroup = this.getContentGroup();\n    var containerGroup = this._containerGroup;\n    var controllerGroup = this._controllerGroup;\n    layoutUtil.box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), !orientIdx ? null : maxSize.width, orientIdx ? null : maxSize.height);\n    layoutUtil.box('horizontal', controllerGroup, legendModel.get('pageButtonItemGap', true));\n    var contentRect = contentGroup.getBoundingRect();\n    var controllerRect = controllerGroup.getBoundingRect();\n    var showController = this._showController = contentRect[wh] > maxSize[wh];\n    var contentPos = [-contentRect.x, -contentRect.y];\n\n    if (!isFirstRender) {\n      contentPos[orientIdx] = contentGroup[xy];\n    }\n\n    var containerPos = [0, 0];\n    var controllerPos = [-controllerRect.x, -controllerRect.y];\n    var pageButtonGap = zrUtil.retrieve2(legendModel.get('pageButtonGap', true), legendModel.get('itemGap', true));\n\n    if (showController) {\n      var pageButtonPosition = legendModel.get('pageButtonPosition', true);\n\n      if (pageButtonPosition === 'end') {\n        controllerPos[orientIdx] += maxSize[wh] - controllerRect[wh];\n      } else {\n        containerPos[orientIdx] += controllerRect[wh] + pageButtonGap;\n      }\n    }\n\n    controllerPos[1 - orientIdx] += contentRect[hw] / 2 - controllerRect[hw] / 2;\n    contentGroup.setPosition(contentPos);\n    containerGroup.setPosition(containerPos);\n    controllerGroup.setPosition(controllerPos);\n    var mainRect = {\n      x: 0,\n      y: 0\n    };\n    mainRect[wh] = showController ? maxSize[wh] : contentRect[wh];\n    mainRect[hw] = Math.max(contentRect[hw], controllerRect[hw]);\n    mainRect[yx] = Math.min(0, controllerRect[yx] + controllerPos[1 - orientIdx]);\n    containerGroup.__rectSize = maxSize[wh];\n\n    if (showController) {\n      var clipShape = {\n        x: 0,\n        y: 0\n      };\n      clipShape[wh] = Math.max(maxSize[wh] - controllerRect[wh] - pageButtonGap, 0);\n      clipShape[hw] = mainRect[hw];\n      containerGroup.setClipPath(new graphic.Rect({\n        shape: clipShape\n      }));\n      containerGroup.__rectSize = clipShape[wh];\n    } else {\n      controllerGroup.eachChild(function (child) {\n        child.attr({\n          invisible: true,\n          silent: true\n        });\n      });\n    }\n\n    var pageInfo = this._getPageInfo(legendModel);\n\n    pageInfo.pageIndex != null && graphic.updateProps(contentGroup, {\n      x: pageInfo.contentPosition[0],\n      y: pageInfo.contentPosition[1]\n    }, showController ? legendModel : null);\n\n    this._updatePageInfoView(legendModel, pageInfo);\n\n    return mainRect;\n  };\n\n  ScrollableLegendView.prototype._pageGo = function (to, legendModel, api) {\n    var scrollDataIndex = this._getPageInfo(legendModel)[to];\n\n    scrollDataIndex != null && api.dispatchAction({\n      type: 'legendScroll',\n      scrollDataIndex: scrollDataIndex,\n      legendId: legendModel.id\n    });\n  };\n\n  ScrollableLegendView.prototype._updatePageInfoView = function (legendModel, pageInfo) {\n    var controllerGroup = this._controllerGroup;\n    zrUtil.each(['pagePrev', 'pageNext'], function (name) {\n      var key = name + 'DataIndex';\n      var canJump = pageInfo[key] != null;\n      var icon = controllerGroup.childOfName(name);\n\n      if (icon) {\n        icon.setStyle('fill', canJump ? legendModel.get('pageIconColor', true) : legendModel.get('pageIconInactiveColor', true));\n        icon.cursor = canJump ? 'pointer' : 'default';\n      }\n    });\n    var pageText = controllerGroup.childOfName('pageText');\n    var pageFormatter = legendModel.get('pageFormatter');\n    var pageIndex = pageInfo.pageIndex;\n    var current = pageIndex != null ? pageIndex + 1 : 0;\n    var total = pageInfo.pageCount;\n    pageText && pageFormatter && pageText.setStyle('text', zrUtil.isString(pageFormatter) ? pageFormatter.replace('{current}', current == null ? '' : current + '').replace('{total}', total == null ? '' : total + '') : pageFormatter({\n      current: current,\n      total: total\n    }));\n  };\n\n  ScrollableLegendView.prototype._getPageInfo = function (legendModel) {\n    var scrollDataIndex = legendModel.get('scrollDataIndex', true);\n    var contentGroup = this.getContentGroup();\n    var containerRectSize = this._containerGroup.__rectSize;\n    var orientIdx = legendModel.getOrient().index;\n    var wh = WH[orientIdx];\n    var xy = XY[orientIdx];\n\n    var targetItemIndex = this._findTargetItemIndex(scrollDataIndex);\n\n    var children = contentGroup.children();\n    var targetItem = children[targetItemIndex];\n    var itemCount = children.length;\n    var pCount = !itemCount ? 0 : 1;\n    var result = {\n      contentPosition: [contentGroup.x, contentGroup.y],\n      pageCount: pCount,\n      pageIndex: pCount - 1,\n      pagePrevDataIndex: null,\n      pageNextDataIndex: null\n    };\n\n    if (!targetItem) {\n      return result;\n    }\n\n    var targetItemInfo = getItemInfo(targetItem);\n    result.contentPosition[orientIdx] = -targetItemInfo.s;\n\n    for (var i = targetItemIndex + 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i <= itemCount; ++i) {\n      currItemInfo = getItemInfo(children[i]);\n\n      if (!currItemInfo && winEndItemInfo.e > winStartItemInfo.s + containerRectSize || currItemInfo && !intersect(currItemInfo, winStartItemInfo.s)) {\n        if (winEndItemInfo.i > winStartItemInfo.i) {\n          winStartItemInfo = winEndItemInfo;\n        } else {\n          winStartItemInfo = currItemInfo;\n        }\n\n        if (winStartItemInfo) {\n          if (result.pageNextDataIndex == null) {\n            result.pageNextDataIndex = winStartItemInfo.i;\n          }\n\n          ++result.pageCount;\n        }\n      }\n\n      winEndItemInfo = currItemInfo;\n    }\n\n    for (var i = targetItemIndex - 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i >= -1; --i) {\n      currItemInfo = getItemInfo(children[i]);\n\n      if ((!currItemInfo || !intersect(winEndItemInfo, currItemInfo.s)) && winStartItemInfo.i < winEndItemInfo.i) {\n        winEndItemInfo = winStartItemInfo;\n\n        if (result.pagePrevDataIndex == null) {\n          result.pagePrevDataIndex = winStartItemInfo.i;\n        }\n\n        ++result.pageCount;\n        ++result.pageIndex;\n      }\n\n      winStartItemInfo = currItemInfo;\n    }\n\n    return result;\n\n    function getItemInfo(el) {\n      if (el) {\n        var itemRect = el.getBoundingRect();\n        var start = itemRect[xy] + el[xy];\n        return {\n          s: start,\n          e: start + itemRect[wh],\n          i: el.__legendDataIndex\n        };\n      }\n    }\n\n    function intersect(itemInfo, winStart) {\n      return itemInfo.e >= winStart && itemInfo.s <= winStart + containerRectSize;\n    }\n  };\n\n  ScrollableLegendView.prototype._findTargetItemIndex = function (targetDataIndex) {\n    if (!this._showController) {\n      return 0;\n    }\n\n    var index;\n    var contentGroup = this.getContentGroup();\n    var defaultIndex;\n    contentGroup.eachChild(function (child, idx) {\n      var legendDataIdx = child.__legendDataIndex;\n\n      if (defaultIndex == null && legendDataIdx != null) {\n        defaultIndex = idx;\n      }\n\n      if (legendDataIdx === targetDataIndex) {\n        index = idx;\n      }\n    });\n    return index != null ? index : defaultIndex;\n  };\n\n  ScrollableLegendView.type = 'legend.scroll';\n  return ScrollableLegendView;\n}(LegendView);\n\nexport default ScrollableLegendView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function installScrollableLegendAction(registers) {\n  registers.registerAction('legendScroll', 'legendscroll', function (payload, ecModel) {\n    var scrollDataIndex = payload.scrollDataIndex;\n    scrollDataIndex != null && ecModel.eachComponent({\n      mainType: 'legend',\n      subType: 'scroll',\n      query: payload\n    }, function (legendModel) {\n      legendModel.setScrollDataIndex(scrollDataIndex);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport { install as installLegendPlain } from './installLegendPlain';\nimport ScrollableLegendModel from './ScrollableLegendModel';\nimport ScrollableLegendView from './ScrollableLegendView';\nimport installScrollableLegendAction from './scrollableLegendAction';\nexport function install(registers) {\n  use(installLegendPlain);\n  registers.registerComponentModel(ScrollableLegendModel);\n  registers.registerComponentView(ScrollableLegendView);\n  installScrollableLegendAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport { install as installLegendPlain } from './installLegendPlain';\nimport { install as installLegendScroll } from './installLegendScroll';\nexport function install(registers) {\n  use(installLegendPlain);\n  use(installLegendScroll);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport DataZoomModel from './DataZoomModel';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar InsideZoomModel = function (_super) {\n  __extends(InsideZoomModel, _super);\n\n  function InsideZoomModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = InsideZoomModel.type;\n    return _this;\n  }\n\n  InsideZoomModel.type = 'dataZoom.inside';\n  InsideZoomModel.defaultOption = inheritDefaultOption(DataZoomModel.defaultOption, {\n    disabled: false,\n    zoomLock: false,\n    zoomOnMouseWheel: true,\n    moveOnMouseMove: true,\n    moveOnMouseWheel: false,\n    preventDefaultMouseMove: true\n  });\n  return InsideZoomModel;\n}(DataZoomModel);\n\nexport default InsideZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport RoamController from '../../component/helper/RoamController';\nimport * as throttleUtil from '../../util/throttle';\nimport { makeInner } from '../../util/model';\nimport { each, curry, createHashMap } from 'zrender/lib/core/util';\nimport { collectReferCoordSysModelInfo } from './helper';\nvar inner = makeInner();\nexport function setViewInfoToCoordSysRecord(api, dataZoomModel, getRange) {\n  inner(api).coordSysRecordMap.each(function (coordSysRecord) {\n    var dzInfo = coordSysRecord.dataZoomInfoMap.get(dataZoomModel.uid);\n\n    if (dzInfo) {\n      dzInfo.getRange = getRange;\n    }\n  });\n}\nexport function disposeCoordSysRecordIfNeeded(api, dataZoomModel) {\n  var coordSysRecordMap = inner(api).coordSysRecordMap;\n  var coordSysKeyArr = coordSysRecordMap.keys();\n\n  for (var i = 0; i < coordSysKeyArr.length; i++) {\n    var coordSysKey = coordSysKeyArr[i];\n    var coordSysRecord = coordSysRecordMap.get(coordSysKey);\n    var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap;\n\n    if (dataZoomInfoMap) {\n      var dzUid = dataZoomModel.uid;\n      var dzInfo = dataZoomInfoMap.get(dzUid);\n\n      if (dzInfo) {\n        dataZoomInfoMap.removeKey(dzUid);\n\n        if (!dataZoomInfoMap.keys().length) {\n          disposeCoordSysRecord(coordSysRecordMap, coordSysRecord);\n        }\n      }\n    }\n  }\n}\n\nfunction disposeCoordSysRecord(coordSysRecordMap, coordSysRecord) {\n  if (coordSysRecord) {\n    coordSysRecordMap.removeKey(coordSysRecord.model.uid);\n    var controller = coordSysRecord.controller;\n    controller && controller.dispose();\n  }\n}\n\nfunction createCoordSysRecord(api, coordSysModel) {\n  var coordSysRecord = {\n    model: coordSysModel,\n    containsPoint: curry(containsPoint, coordSysModel),\n    dispatchAction: curry(dispatchAction, api),\n    dataZoomInfoMap: null,\n    controller: null\n  };\n  var controller = coordSysRecord.controller = new RoamController(api.getZr());\n  each(['pan', 'zoom', 'scrollMove'], function (eventName) {\n    controller.on(eventName, function (event) {\n      var batch = [];\n      coordSysRecord.dataZoomInfoMap.each(function (dzInfo) {\n        if (!event.isAvailableBehavior(dzInfo.model.option)) {\n          return;\n        }\n\n        var method = (dzInfo.getRange || {})[eventName];\n        var range = method && method(dzInfo.dzReferCoordSysInfo, coordSysRecord.model.mainType, coordSysRecord.controller, event);\n        !dzInfo.model.get('disabled', true) && range && batch.push({\n          dataZoomId: dzInfo.model.id,\n          start: range[0],\n          end: range[1]\n        });\n      });\n      batch.length && coordSysRecord.dispatchAction(batch);\n    });\n  });\n  return coordSysRecord;\n}\n\nfunction dispatchAction(api, batch) {\n  api.dispatchAction({\n    type: 'dataZoom',\n    animation: {\n      easing: 'cubicOut',\n      duration: 100\n    },\n    batch: batch\n  });\n}\n\nfunction containsPoint(coordSysModel, e, x, y) {\n  return coordSysModel.coordinateSystem.containPoint([x, y]);\n}\n\nfunction mergeControllerParams(dataZoomInfoMap) {\n  var controlType;\n  var prefix = 'type_';\n  var typePriority = {\n    'type_true': 2,\n    'type_move': 1,\n    'type_false': 0,\n    'type_undefined': -1\n  };\n  var preventDefaultMouseMove = true;\n  dataZoomInfoMap.each(function (dataZoomInfo) {\n    var dataZoomModel = dataZoomInfo.model;\n    var oneType = dataZoomModel.get('disabled', true) ? false : dataZoomModel.get('zoomLock', true) ? 'move' : true;\n\n    if (typePriority[prefix + oneType] > typePriority[prefix + controlType]) {\n      controlType = oneType;\n    }\n\n    preventDefaultMouseMove = preventDefaultMouseMove && dataZoomModel.get('preventDefaultMouseMove', true);\n  });\n  return {\n    controlType: controlType,\n    opt: {\n      zoomOnMouseWheel: true,\n      moveOnMouseMove: true,\n      moveOnMouseWheel: true,\n      preventDefaultMouseMove: !!preventDefaultMouseMove\n    }\n  };\n}\n\nexport function installDataZoomRoamProcessor(registers) {\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.FILTER, function (ecModel, api) {\n    var apiInner = inner(api);\n    var coordSysRecordMap = apiInner.coordSysRecordMap || (apiInner.coordSysRecordMap = createHashMap());\n    coordSysRecordMap.each(function (coordSysRecord) {\n      coordSysRecord.dataZoomInfoMap = null;\n    });\n    ecModel.eachComponent({\n      mainType: 'dataZoom',\n      subType: 'inside'\n    }, function (dataZoomModel) {\n      var dzReferCoordSysWrap = collectReferCoordSysModelInfo(dataZoomModel);\n      each(dzReferCoordSysWrap.infoList, function (dzCoordSysInfo) {\n        var coordSysUid = dzCoordSysInfo.model.uid;\n        var coordSysRecord = coordSysRecordMap.get(coordSysUid) || coordSysRecordMap.set(coordSysUid, createCoordSysRecord(api, dzCoordSysInfo.model));\n        var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap || (coordSysRecord.dataZoomInfoMap = createHashMap());\n        dataZoomInfoMap.set(dataZoomModel.uid, {\n          dzReferCoordSysInfo: dzCoordSysInfo,\n          model: dataZoomModel,\n          getRange: null\n        });\n      });\n    });\n    coordSysRecordMap.each(function (coordSysRecord) {\n      var controller = coordSysRecord.controller;\n      var firstDzInfo;\n      var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap;\n\n      if (dataZoomInfoMap) {\n        var firstDzKey = dataZoomInfoMap.keys()[0];\n\n        if (firstDzKey != null) {\n          firstDzInfo = dataZoomInfoMap.get(firstDzKey);\n        }\n      }\n\n      if (!firstDzInfo) {\n        disposeCoordSysRecord(coordSysRecordMap, coordSysRecord);\n        return;\n      }\n\n      var controllerParams = mergeControllerParams(dataZoomInfoMap);\n      controller.enable(controllerParams.controlType, controllerParams.opt);\n      controller.setPointerChecker(coordSysRecord.containsPoint);\n      throttleUtil.createOrUpdate(coordSysRecord, 'dispatchAction', firstDzInfo.model.get('throttle', true), 'fixRate');\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport DataZoomView from './DataZoomView';\nimport sliderMove from '../helper/sliderMove';\nimport * as roams from './roams';\nimport { bind } from 'zrender/lib/core/util';\n\nvar InsideZoomView = function (_super) {\n  __extends(InsideZoomView, _super);\n\n  function InsideZoomView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'dataZoom.inside';\n    return _this;\n  }\n\n  InsideZoomView.prototype.render = function (dataZoomModel, ecModel, api) {\n    _super.prototype.render.apply(this, arguments);\n\n    if (dataZoomModel.noTarget()) {\n      this._clear();\n\n      return;\n    }\n\n    this.range = dataZoomModel.getPercentRange();\n    roams.setViewInfoToCoordSysRecord(api, dataZoomModel, {\n      pan: bind(getRangeHandlers.pan, this),\n      zoom: bind(getRangeHandlers.zoom, this),\n      scrollMove: bind(getRangeHandlers.scrollMove, this)\n    });\n  };\n\n  InsideZoomView.prototype.dispose = function () {\n    this._clear();\n\n    _super.prototype.dispose.apply(this, arguments);\n  };\n\n  InsideZoomView.prototype._clear = function () {\n    roams.disposeCoordSysRecordIfNeeded(this.api, this.dataZoomModel);\n    this.range = null;\n  };\n\n  InsideZoomView.type = 'dataZoom.inside';\n  return InsideZoomView;\n}(DataZoomView);\n\nvar getRangeHandlers = {\n  zoom: function (coordSysInfo, coordSysMainType, controller, e) {\n    var lastRange = this.range;\n    var range = lastRange.slice();\n    var axisModel = coordSysInfo.axisModels[0];\n\n    if (!axisModel) {\n      return;\n    }\n\n    var directionInfo = getDirectionInfo[coordSysMainType](null, [e.originX, e.originY], axisModel, controller, coordSysInfo);\n    var percentPoint = (directionInfo.signal > 0 ? directionInfo.pixelStart + directionInfo.pixelLength - directionInfo.pixel : directionInfo.pixel - directionInfo.pixelStart) / directionInfo.pixelLength * (range[1] - range[0]) + range[0];\n    var scale = Math.max(1 / e.scale, 0);\n    range[0] = (range[0] - percentPoint) * scale + percentPoint;\n    range[1] = (range[1] - percentPoint) * scale + percentPoint;\n    var minMaxSpan = this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\n    sliderMove(0, range, [0, 100], 0, minMaxSpan.minSpan, minMaxSpan.maxSpan);\n    this.range = range;\n\n    if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\n      return range;\n    }\n  },\n  pan: makeMover(function (range, axisModel, coordSysInfo, coordSysMainType, controller, e) {\n    var directionInfo = getDirectionInfo[coordSysMainType]([e.oldX, e.oldY], [e.newX, e.newY], axisModel, controller, coordSysInfo);\n    return directionInfo.signal * (range[1] - range[0]) * directionInfo.pixel / directionInfo.pixelLength;\n  }),\n  scrollMove: makeMover(function (range, axisModel, coordSysInfo, coordSysMainType, controller, e) {\n    var directionInfo = getDirectionInfo[coordSysMainType]([0, 0], [e.scrollDelta, e.scrollDelta], axisModel, controller, coordSysInfo);\n    return directionInfo.signal * (range[1] - range[0]) * e.scrollDelta;\n  })\n};\n\nfunction makeMover(getPercentDelta) {\n  return function (coordSysInfo, coordSysMainType, controller, e) {\n    var lastRange = this.range;\n    var range = lastRange.slice();\n    var axisModel = coordSysInfo.axisModels[0];\n\n    if (!axisModel) {\n      return;\n    }\n\n    var percentDelta = getPercentDelta(range, axisModel, coordSysInfo, coordSysMainType, controller, e);\n    sliderMove(percentDelta, range, [0, 100], 'all');\n    this.range = range;\n\n    if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\n      return range;\n    }\n  };\n}\n\nvar getDirectionInfo = {\n  grid: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\n    var axis = axisModel.axis;\n    var ret = {};\n    var rect = coordSysInfo.model.coordinateSystem.getRect();\n    oldPoint = oldPoint || [0, 0];\n\n    if (axis.dim === 'x') {\n      ret.pixel = newPoint[0] - oldPoint[0];\n      ret.pixelLength = rect.width;\n      ret.pixelStart = rect.x;\n      ret.signal = axis.inverse ? 1 : -1;\n    } else {\n      ret.pixel = newPoint[1] - oldPoint[1];\n      ret.pixelLength = rect.height;\n      ret.pixelStart = rect.y;\n      ret.signal = axis.inverse ? -1 : 1;\n    }\n\n    return ret;\n  },\n  polar: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\n    var axis = axisModel.axis;\n    var ret = {};\n    var polar = coordSysInfo.model.coordinateSystem;\n    var radiusExtent = polar.getRadiusAxis().getExtent();\n    var angleExtent = polar.getAngleAxis().getExtent();\n    oldPoint = oldPoint ? polar.pointToCoord(oldPoint) : [0, 0];\n    newPoint = polar.pointToCoord(newPoint);\n\n    if (axisModel.mainType === 'radiusAxis') {\n      ret.pixel = newPoint[0] - oldPoint[0];\n      ret.pixelLength = radiusExtent[1] - radiusExtent[0];\n      ret.pixelStart = radiusExtent[0];\n      ret.signal = axis.inverse ? 1 : -1;\n    } else {\n      ret.pixel = newPoint[1] - oldPoint[1];\n      ret.pixelLength = angleExtent[1] - angleExtent[0];\n      ret.pixelStart = angleExtent[0];\n      ret.signal = axis.inverse ? -1 : 1;\n    }\n\n    return ret;\n  },\n  singleAxis: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\n    var axis = axisModel.axis;\n    var rect = coordSysInfo.model.coordinateSystem.getRect();\n    var ret = {};\n    oldPoint = oldPoint || [0, 0];\n\n    if (axis.orient === 'horizontal') {\n      ret.pixel = newPoint[0] - oldPoint[0];\n      ret.pixelLength = rect.width;\n      ret.pixelStart = rect.x;\n      ret.signal = axis.inverse ? 1 : -1;\n    } else {\n      ret.pixel = newPoint[1] - oldPoint[1];\n      ret.pixelLength = rect.height;\n      ret.pixelStart = rect.y;\n      ret.signal = axis.inverse ? -1 : 1;\n    }\n\n    return ret;\n  }\n};\nexport default InsideZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport InsideZoomModel from './InsideZoomModel';\nimport InsideZoomView from './InsideZoomView';\nimport { installDataZoomRoamProcessor } from './roams';\nimport installCommon from './installCommon';\nexport function install(registers) {\n  installCommon(registers);\n  registers.registerComponentModel(InsideZoomModel);\n  registers.registerComponentView(InsideZoomView);\n  installDataZoomRoamProcessor(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport DataZoomModel from './DataZoomModel';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar SliderZoomModel = function (_super) {\n  __extends(SliderZoomModel, _super);\n\n  function SliderZoomModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SliderZoomModel.type;\n    return _this;\n  }\n\n  SliderZoomModel.type = 'dataZoom.slider';\n  SliderZoomModel.layoutMode = 'box';\n  SliderZoomModel.defaultOption = inheritDefaultOption(DataZoomModel.defaultOption, {\n    show: true,\n    right: 'ph',\n    top: 'ph',\n    width: 'ph',\n    height: 'ph',\n    left: null,\n    bottom: null,\n    borderColor: '#d2dbee',\n    borderRadius: 3,\n    backgroundColor: 'rgba(47,69,84,0)',\n    dataBackground: {\n      lineStyle: {\n        color: '#d2dbee',\n        width: 0.5\n      },\n      areaStyle: {\n        color: '#d2dbee',\n        opacity: 0.2\n      }\n    },\n    selectedDataBackground: {\n      lineStyle: {\n        color: '#8fb0f7',\n        width: 0.5\n      },\n      areaStyle: {\n        color: '#8fb0f7',\n        opacity: 0.2\n      }\n    },\n    fillerColor: 'rgba(135,175,274,0.2)',\n    handleIcon: 'path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z',\n    handleSize: '100%',\n    handleStyle: {\n      color: '#fff',\n      borderColor: '#ACB8D1'\n    },\n    moveHandleSize: 7,\n    moveHandleIcon: 'path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z',\n    moveHandleStyle: {\n      color: '#D2DBEE',\n      opacity: 0.7\n    },\n    showDetail: true,\n    showDataShadow: 'auto',\n    realtime: true,\n    zoomLock: false,\n    textStyle: {\n      color: '#6E7079'\n    },\n    brushSelect: true,\n    brushStyle: {\n      color: 'rgba(135,175,274,0.15)'\n    },\n    emphasis: {\n      handleStyle: {\n        borderColor: '#8FB0F7'\n      },\n      moveHandleStyle: {\n        color: '#8FB0F7'\n      }\n    }\n  });\n  return SliderZoomModel;\n}(DataZoomModel);\n\nexport default SliderZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { bind, each, isFunction, isString, indexOf } from 'zrender/lib/core/util';\nimport * as eventTool from 'zrender/lib/core/event';\nimport * as graphic from '../../util/graphic';\nimport * as throttle from '../../util/throttle';\nimport DataZoomView from './DataZoomView';\nimport { linearMap, asc, parsePercent } from '../../util/number';\nimport * as layout from '../../util/layout';\nimport sliderMove from '../helper/sliderMove';\nimport { getAxisMainType, collectReferCoordSysModelInfo } from './helper';\nimport { enableHoverEmphasis } from '../../util/states';\nimport { createSymbol, symbolBuildProxies } from '../../util/symbol';\nimport { deprecateLog } from '../../util/log';\nvar Rect = graphic.Rect;\nvar DEFAULT_LOCATION_EDGE_GAP = 7;\nvar DEFAULT_FRAME_BORDER_WIDTH = 1;\nvar DEFAULT_FILLER_SIZE = 30;\nvar DEFAULT_MOVE_HANDLE_SIZE = 7;\nvar HORIZONTAL = 'horizontal';\nvar VERTICAL = 'vertical';\nvar LABEL_GAP = 5;\nvar SHOW_DATA_SHADOW_SERIES_TYPE = ['line', 'bar', 'candlestick', 'scatter'];\nvar REALTIME_ANIMATION_CONFIG = {\n  easing: 'cubicOut',\n  duration: 100\n};\n\nvar SliderZoomView = function (_super) {\n  __extends(SliderZoomView, _super);\n\n  function SliderZoomView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SliderZoomView.type;\n    _this._displayables = {};\n    return _this;\n  }\n\n  SliderZoomView.prototype.init = function (ecModel, api) {\n    this.api = api;\n    this._onBrush = bind(this._onBrush, this);\n    this._onBrushEnd = bind(this._onBrushEnd, this);\n  };\n\n  SliderZoomView.prototype.render = function (dataZoomModel, ecModel, api, payload) {\n    _super.prototype.render.apply(this, arguments);\n\n    throttle.createOrUpdate(this, '_dispatchZoomAction', dataZoomModel.get('throttle'), 'fixRate');\n    this._orient = dataZoomModel.getOrient();\n\n    if (dataZoomModel.get('show') === false) {\n      this.group.removeAll();\n      return;\n    }\n\n    if (dataZoomModel.noTarget()) {\n      this._clear();\n\n      this.group.removeAll();\n      return;\n    }\n\n    if (!payload || payload.type !== 'dataZoom' || payload.from !== this.uid) {\n      this._buildView();\n    }\n\n    this._updateView();\n  };\n\n  SliderZoomView.prototype.dispose = function () {\n    this._clear();\n\n    _super.prototype.dispose.apply(this, arguments);\n  };\n\n  SliderZoomView.prototype._clear = function () {\n    throttle.clear(this, '_dispatchZoomAction');\n    var zr = this.api.getZr();\n    zr.off('mousemove', this._onBrush);\n    zr.off('mouseup', this._onBrushEnd);\n  };\n\n  SliderZoomView.prototype._buildView = function () {\n    var thisGroup = this.group;\n    thisGroup.removeAll();\n    this._brushing = false;\n    this._displayables.brushRect = null;\n\n    this._resetLocation();\n\n    this._resetInterval();\n\n    var barGroup = this._displayables.sliderGroup = new graphic.Group();\n\n    this._renderBackground();\n\n    this._renderHandle();\n\n    this._renderDataShadow();\n\n    thisGroup.add(barGroup);\n\n    this._positionGroup();\n  };\n\n  SliderZoomView.prototype._resetLocation = function () {\n    var dataZoomModel = this.dataZoomModel;\n    var api = this.api;\n    var showMoveHandle = dataZoomModel.get('brushSelect');\n    var moveHandleSize = showMoveHandle ? DEFAULT_MOVE_HANDLE_SIZE : 0;\n\n    var coordRect = this._findCoordRect();\n\n    var ecSize = {\n      width: api.getWidth(),\n      height: api.getHeight()\n    };\n    var positionInfo = this._orient === HORIZONTAL ? {\n      right: ecSize.width - coordRect.x - coordRect.width,\n      top: ecSize.height - DEFAULT_FILLER_SIZE - DEFAULT_LOCATION_EDGE_GAP - moveHandleSize,\n      width: coordRect.width,\n      height: DEFAULT_FILLER_SIZE\n    } : {\n      right: DEFAULT_LOCATION_EDGE_GAP,\n      top: coordRect.y,\n      width: DEFAULT_FILLER_SIZE,\n      height: coordRect.height\n    };\n    var layoutParams = layout.getLayoutParams(dataZoomModel.option);\n    each(['right', 'top', 'width', 'height'], function (name) {\n      if (layoutParams[name] === 'ph') {\n        layoutParams[name] = positionInfo[name];\n      }\n    });\n    var layoutRect = layout.getLayoutRect(layoutParams, ecSize);\n    this._location = {\n      x: layoutRect.x,\n      y: layoutRect.y\n    };\n    this._size = [layoutRect.width, layoutRect.height];\n    this._orient === VERTICAL && this._size.reverse();\n  };\n\n  SliderZoomView.prototype._positionGroup = function () {\n    var thisGroup = this.group;\n    var location = this._location;\n    var orient = this._orient;\n    var targetAxisModel = this.dataZoomModel.getFirstTargetAxisModel();\n    var inverse = targetAxisModel && targetAxisModel.get('inverse');\n    var sliderGroup = this._displayables.sliderGroup;\n    var otherAxisInverse = (this._dataShadowInfo || {}).otherAxisInverse;\n    sliderGroup.attr(orient === HORIZONTAL && !inverse ? {\n      scaleY: otherAxisInverse ? 1 : -1,\n      scaleX: 1\n    } : orient === HORIZONTAL && inverse ? {\n      scaleY: otherAxisInverse ? 1 : -1,\n      scaleX: -1\n    } : orient === VERTICAL && !inverse ? {\n      scaleY: otherAxisInverse ? -1 : 1,\n      scaleX: 1,\n      rotation: Math.PI / 2\n    } : {\n      scaleY: otherAxisInverse ? -1 : 1,\n      scaleX: -1,\n      rotation: Math.PI / 2\n    });\n    var rect = thisGroup.getBoundingRect([sliderGroup]);\n    thisGroup.x = location.x - rect.x;\n    thisGroup.y = location.y - rect.y;\n    thisGroup.markRedraw();\n  };\n\n  SliderZoomView.prototype._getViewExtent = function () {\n    return [0, this._size[0]];\n  };\n\n  SliderZoomView.prototype._renderBackground = function () {\n    var dataZoomModel = this.dataZoomModel;\n    var size = this._size;\n    var barGroup = this._displayables.sliderGroup;\n    var brushSelect = dataZoomModel.get('brushSelect');\n    barGroup.add(new Rect({\n      silent: true,\n      shape: {\n        x: 0,\n        y: 0,\n        width: size[0],\n        height: size[1]\n      },\n      style: {\n        fill: dataZoomModel.get('backgroundColor')\n      },\n      z2: -40\n    }));\n    var clickPanel = new Rect({\n      shape: {\n        x: 0,\n        y: 0,\n        width: size[0],\n        height: size[1]\n      },\n      style: {\n        fill: 'transparent'\n      },\n      z2: 0,\n      onclick: bind(this._onClickPanel, this)\n    });\n    var zr = this.api.getZr();\n\n    if (brushSelect) {\n      clickPanel.on('mousedown', this._onBrushStart, this);\n      clickPanel.cursor = 'crosshair';\n      zr.on('mousemove', this._onBrush);\n      zr.on('mouseup', this._onBrushEnd);\n    } else {\n      zr.off('mousemove', this._onBrush);\n      zr.off('mouseup', this._onBrushEnd);\n    }\n\n    barGroup.add(clickPanel);\n  };\n\n  SliderZoomView.prototype._renderDataShadow = function () {\n    var info = this._dataShadowInfo = this._prepareDataShadowInfo();\n\n    this._displayables.dataShadowSegs = [];\n\n    if (!info) {\n      return;\n    }\n\n    var size = this._size;\n    var seriesModel = info.series;\n    var data = seriesModel.getRawData();\n    var otherDim = seriesModel.getShadowDim ? seriesModel.getShadowDim() : info.otherDim;\n\n    if (otherDim == null) {\n      return;\n    }\n\n    var otherDataExtent = data.getDataExtent(otherDim);\n    var otherOffset = (otherDataExtent[1] - otherDataExtent[0]) * 0.3;\n    otherDataExtent = [otherDataExtent[0] - otherOffset, otherDataExtent[1] + otherOffset];\n    var otherShadowExtent = [0, size[1]];\n    var thisShadowExtent = [0, size[0]];\n    var areaPoints = [[size[0], 0], [0, 0]];\n    var linePoints = [];\n    var step = thisShadowExtent[1] / (data.count() - 1);\n    var thisCoord = 0;\n    var stride = Math.round(data.count() / size[0]);\n    var lastIsEmpty;\n    data.each([otherDim], function (value, index) {\n      if (stride > 0 && index % stride) {\n        thisCoord += step;\n        return;\n      }\n\n      var isEmpty = value == null || isNaN(value) || value === '';\n      var otherCoord = isEmpty ? 0 : linearMap(value, otherDataExtent, otherShadowExtent, true);\n\n      if (isEmpty && !lastIsEmpty && index) {\n        areaPoints.push([areaPoints[areaPoints.length - 1][0], 0]);\n        linePoints.push([linePoints[linePoints.length - 1][0], 0]);\n      } else if (!isEmpty && lastIsEmpty) {\n        areaPoints.push([thisCoord, 0]);\n        linePoints.push([thisCoord, 0]);\n      }\n\n      areaPoints.push([thisCoord, otherCoord]);\n      linePoints.push([thisCoord, otherCoord]);\n      thisCoord += step;\n      lastIsEmpty = isEmpty;\n    });\n    var dataZoomModel = this.dataZoomModel;\n\n    function createDataShadowGroup(isSelectedArea) {\n      var model = dataZoomModel.getModel(isSelectedArea ? 'selectedDataBackground' : 'dataBackground');\n      var group = new graphic.Group();\n      var polygon = new graphic.Polygon({\n        shape: {\n          points: areaPoints\n        },\n        segmentIgnoreThreshold: 1,\n        style: model.getModel('areaStyle').getAreaStyle(),\n        silent: true,\n        z2: -20\n      });\n      var polyline = new graphic.Polyline({\n        shape: {\n          points: linePoints\n        },\n        segmentIgnoreThreshold: 1,\n        style: model.getModel('lineStyle').getLineStyle(),\n        silent: true,\n        z2: -19\n      });\n      group.add(polygon);\n      group.add(polyline);\n      return group;\n    }\n\n    for (var i = 0; i < 3; i++) {\n      var group = createDataShadowGroup(i === 1);\n\n      this._displayables.sliderGroup.add(group);\n\n      this._displayables.dataShadowSegs.push(group);\n    }\n  };\n\n  SliderZoomView.prototype._prepareDataShadowInfo = function () {\n    var dataZoomModel = this.dataZoomModel;\n    var showDataShadow = dataZoomModel.get('showDataShadow');\n\n    if (showDataShadow === false) {\n      return;\n    }\n\n    var result;\n    var ecModel = this.ecModel;\n    dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n      var seriesModels = dataZoomModel.getAxisProxy(axisDim, axisIndex).getTargetSeriesModels();\n      each(seriesModels, function (seriesModel) {\n        if (result) {\n          return;\n        }\n\n        if (showDataShadow !== true && indexOf(SHOW_DATA_SHADOW_SERIES_TYPE, seriesModel.get('type')) < 0) {\n          return;\n        }\n\n        var thisAxis = ecModel.getComponent(getAxisMainType(axisDim), axisIndex).axis;\n        var otherDim = getOtherDim(axisDim);\n        var otherAxisInverse;\n        var coordSys = seriesModel.coordinateSystem;\n\n        if (otherDim != null && coordSys.getOtherAxis) {\n          otherAxisInverse = coordSys.getOtherAxis(thisAxis).inverse;\n        }\n\n        otherDim = seriesModel.getData().mapDimension(otherDim);\n        result = {\n          thisAxis: thisAxis,\n          series: seriesModel,\n          thisDim: axisDim,\n          otherDim: otherDim,\n          otherAxisInverse: otherAxisInverse\n        };\n      }, this);\n    }, this);\n    return result;\n  };\n\n  SliderZoomView.prototype._renderHandle = function () {\n    var thisGroup = this.group;\n    var displayables = this._displayables;\n    var handles = displayables.handles = [null, null];\n    var handleLabels = displayables.handleLabels = [null, null];\n    var sliderGroup = this._displayables.sliderGroup;\n    var size = this._size;\n    var dataZoomModel = this.dataZoomModel;\n    var api = this.api;\n    var borderRadius = dataZoomModel.get('borderRadius') || 0;\n    var brushSelect = dataZoomModel.get('brushSelect');\n    var filler = displayables.filler = new Rect({\n      silent: brushSelect,\n      style: {\n        fill: dataZoomModel.get('fillerColor')\n      },\n      textConfig: {\n        position: 'inside'\n      }\n    });\n    sliderGroup.add(filler);\n    sliderGroup.add(new Rect({\n      silent: true,\n      subPixelOptimize: true,\n      shape: {\n        x: 0,\n        y: 0,\n        width: size[0],\n        height: size[1],\n        r: borderRadius\n      },\n      style: {\n        stroke: dataZoomModel.get('dataBackgroundColor') || dataZoomModel.get('borderColor'),\n        lineWidth: DEFAULT_FRAME_BORDER_WIDTH,\n        fill: 'rgba(0,0,0,0)'\n      }\n    }));\n    each([0, 1], function (handleIndex) {\n      var iconStr = dataZoomModel.get('handleIcon');\n\n      if (!symbolBuildProxies[iconStr] && iconStr.indexOf('path://') < 0) {\n        iconStr = 'path://' + iconStr;\n\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateLog('handleIcon now needs \\'path://\\' prefix when using a path string');\n        }\n      }\n\n      var path = createSymbol(iconStr, -1, 0, 2, 2, null, true);\n      path.attr({\n        cursor: getCursor(this._orient),\n        draggable: true,\n        drift: bind(this._onDragMove, this, handleIndex),\n        ondragend: bind(this._onDragEnd, this),\n        onmouseover: bind(this._showDataInfo, this, true),\n        onmouseout: bind(this._showDataInfo, this, false),\n        z2: 5\n      });\n      var bRect = path.getBoundingRect();\n      var handleSize = dataZoomModel.get('handleSize');\n      this._handleHeight = parsePercent(handleSize, this._size[1]);\n      this._handleWidth = bRect.width / bRect.height * this._handleHeight;\n      path.setStyle(dataZoomModel.getModel('handleStyle').getItemStyle());\n      path.style.strokeNoScale = true;\n      path.rectHover = true;\n      path.ensureState('emphasis').style = dataZoomModel.getModel(['emphasis', 'handleStyle']).getItemStyle();\n      enableHoverEmphasis(path);\n      var handleColor = dataZoomModel.get('handleColor');\n\n      if (handleColor != null) {\n        path.style.fill = handleColor;\n      }\n\n      sliderGroup.add(handles[handleIndex] = path);\n      var textStyleModel = dataZoomModel.getModel('textStyle');\n      thisGroup.add(handleLabels[handleIndex] = new graphic.Text({\n        silent: true,\n        invisible: true,\n        style: {\n          x: 0,\n          y: 0,\n          text: '',\n          verticalAlign: 'middle',\n          align: 'center',\n          fill: textStyleModel.getTextColor(),\n          font: textStyleModel.getFont()\n        },\n        z2: 10\n      }));\n    }, this);\n    var actualMoveZone = filler;\n\n    if (brushSelect) {\n      var moveHandleHeight = parsePercent(dataZoomModel.get('moveHandleSize'), size[1]);\n      var moveHandle_1 = displayables.moveHandle = new graphic.Rect({\n        style: dataZoomModel.getModel('moveHandleStyle').getItemStyle(),\n        silent: true,\n        shape: {\n          r: [0, 0, 2, 2],\n          y: size[1] - 0.5,\n          height: moveHandleHeight\n        }\n      });\n      var iconSize = moveHandleHeight * 0.8;\n      var moveHandleIcon = displayables.moveHandleIcon = createSymbol(dataZoomModel.get('moveHandleIcon'), -iconSize / 2, -iconSize / 2, iconSize, iconSize, '#fff', true);\n      moveHandleIcon.silent = true;\n      moveHandleIcon.y = size[1] + moveHandleHeight / 2 - 0.5;\n      moveHandle_1.ensureState('emphasis').style = dataZoomModel.getModel(['emphasis', 'moveHandleStyle']).getItemStyle();\n      var moveZoneExpandSize = Math.min(size[1] / 2, Math.max(moveHandleHeight, 10));\n      actualMoveZone = displayables.moveZone = new graphic.Rect({\n        invisible: true,\n        shape: {\n          y: size[1] - moveZoneExpandSize,\n          height: moveHandleHeight + moveZoneExpandSize\n        }\n      });\n      actualMoveZone.on('mouseover', function () {\n        api.enterEmphasis(moveHandle_1);\n      }).on('mouseout', function () {\n        api.leaveEmphasis(moveHandle_1);\n      });\n      sliderGroup.add(moveHandle_1);\n      sliderGroup.add(moveHandleIcon);\n      sliderGroup.add(actualMoveZone);\n    }\n\n    actualMoveZone.attr({\n      draggable: true,\n      cursor: getCursor(this._orient),\n      drift: bind(this._onDragMove, this, 'all'),\n      ondragstart: bind(this._showDataInfo, this, true),\n      ondragend: bind(this._onDragEnd, this),\n      onmouseover: bind(this._showDataInfo, this, true),\n      onmouseout: bind(this._showDataInfo, this, false)\n    });\n  };\n\n  SliderZoomView.prototype._resetInterval = function () {\n    var range = this._range = this.dataZoomModel.getPercentRange();\n\n    var viewExtent = this._getViewExtent();\n\n    this._handleEnds = [linearMap(range[0], [0, 100], viewExtent, true), linearMap(range[1], [0, 100], viewExtent, true)];\n  };\n\n  SliderZoomView.prototype._updateInterval = function (handleIndex, delta) {\n    var dataZoomModel = this.dataZoomModel;\n    var handleEnds = this._handleEnds;\n\n    var viewExtend = this._getViewExtent();\n\n    var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\n    var percentExtent = [0, 100];\n    sliderMove(delta, handleEnds, viewExtend, dataZoomModel.get('zoomLock') ? 'all' : handleIndex, minMaxSpan.minSpan != null ? linearMap(minMaxSpan.minSpan, percentExtent, viewExtend, true) : null, minMaxSpan.maxSpan != null ? linearMap(minMaxSpan.maxSpan, percentExtent, viewExtend, true) : null);\n    var lastRange = this._range;\n    var range = this._range = asc([linearMap(handleEnds[0], viewExtend, percentExtent, true), linearMap(handleEnds[1], viewExtend, percentExtent, true)]);\n    return !lastRange || lastRange[0] !== range[0] || lastRange[1] !== range[1];\n  };\n\n  SliderZoomView.prototype._updateView = function (nonRealtime) {\n    var displaybles = this._displayables;\n    var handleEnds = this._handleEnds;\n    var handleInterval = asc(handleEnds.slice());\n    var size = this._size;\n    each([0, 1], function (handleIndex) {\n      var handle = displaybles.handles[handleIndex];\n      var handleHeight = this._handleHeight;\n      handle.attr({\n        scaleX: handleHeight / 2,\n        scaleY: handleHeight / 2,\n        x: handleEnds[handleIndex] + (handleIndex ? -1 : 1),\n        y: size[1] / 2 - handleHeight / 2\n      });\n    }, this);\n    displaybles.filler.setShape({\n      x: handleInterval[0],\n      y: 0,\n      width: handleInterval[1] - handleInterval[0],\n      height: size[1]\n    });\n    var viewExtent = {\n      x: handleInterval[0],\n      width: handleInterval[1] - handleInterval[0]\n    };\n\n    if (displaybles.moveHandle) {\n      displaybles.moveHandle.setShape(viewExtent);\n      displaybles.moveZone.setShape(viewExtent);\n      displaybles.moveZone.getBoundingRect();\n      displaybles.moveHandleIcon && displaybles.moveHandleIcon.attr('x', viewExtent.x + viewExtent.width / 2);\n    }\n\n    var dataShadowSegs = displaybles.dataShadowSegs;\n    var segIntervals = [0, handleInterval[0], handleInterval[1], size[0]];\n\n    for (var i = 0; i < dataShadowSegs.length; i++) {\n      var segGroup = dataShadowSegs[i];\n      var clipPath = segGroup.getClipPath();\n\n      if (!clipPath) {\n        clipPath = new graphic.Rect();\n        segGroup.setClipPath(clipPath);\n      }\n\n      clipPath.setShape({\n        x: segIntervals[i],\n        y: 0,\n        width: segIntervals[i + 1] - segIntervals[i],\n        height: size[1]\n      });\n    }\n\n    this._updateDataInfo(nonRealtime);\n  };\n\n  SliderZoomView.prototype._updateDataInfo = function (nonRealtime) {\n    var dataZoomModel = this.dataZoomModel;\n    var displaybles = this._displayables;\n    var handleLabels = displaybles.handleLabels;\n    var orient = this._orient;\n    var labelTexts = ['', ''];\n\n    if (dataZoomModel.get('showDetail')) {\n      var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\n\n      if (axisProxy) {\n        var axis = axisProxy.getAxisModel().axis;\n        var range = this._range;\n        var dataInterval = nonRealtime ? axisProxy.calculateDataWindow({\n          start: range[0],\n          end: range[1]\n        }).valueWindow : axisProxy.getDataValueWindow();\n        labelTexts = [this._formatLabel(dataInterval[0], axis), this._formatLabel(dataInterval[1], axis)];\n      }\n    }\n\n    var orderedHandleEnds = asc(this._handleEnds.slice());\n    setLabel.call(this, 0);\n    setLabel.call(this, 1);\n\n    function setLabel(handleIndex) {\n      var barTransform = graphic.getTransform(displaybles.handles[handleIndex].parent, this.group);\n      var direction = graphic.transformDirection(handleIndex === 0 ? 'right' : 'left', barTransform);\n      var offset = this._handleWidth / 2 + LABEL_GAP;\n      var textPoint = graphic.applyTransform([orderedHandleEnds[handleIndex] + (handleIndex === 0 ? -offset : offset), this._size[1] / 2], barTransform);\n      handleLabels[handleIndex].setStyle({\n        x: textPoint[0],\n        y: textPoint[1],\n        verticalAlign: orient === HORIZONTAL ? 'middle' : direction,\n        align: orient === HORIZONTAL ? direction : 'center',\n        text: labelTexts[handleIndex]\n      });\n    }\n  };\n\n  SliderZoomView.prototype._formatLabel = function (value, axis) {\n    var dataZoomModel = this.dataZoomModel;\n    var labelFormatter = dataZoomModel.get('labelFormatter');\n    var labelPrecision = dataZoomModel.get('labelPrecision');\n\n    if (labelPrecision == null || labelPrecision === 'auto') {\n      labelPrecision = axis.getPixelPrecision();\n    }\n\n    var valueStr = value == null || isNaN(value) ? '' : axis.type === 'category' || axis.type === 'time' ? axis.scale.getLabel({\n      value: Math.round(value)\n    }) : value.toFixed(Math.min(labelPrecision, 20));\n    return isFunction(labelFormatter) ? labelFormatter(value, valueStr) : isString(labelFormatter) ? labelFormatter.replace('{value}', valueStr) : valueStr;\n  };\n\n  SliderZoomView.prototype._showDataInfo = function (showOrHide) {\n    showOrHide = this._dragging || showOrHide;\n    var displayables = this._displayables;\n    var handleLabels = displayables.handleLabels;\n    handleLabels[0].attr('invisible', !showOrHide);\n    handleLabels[1].attr('invisible', !showOrHide);\n    displayables.moveHandle && this.api[showOrHide ? 'enterEmphasis' : 'leaveEmphasis'](displayables.moveHandle, 1);\n  };\n\n  SliderZoomView.prototype._onDragMove = function (handleIndex, dx, dy, event) {\n    this._dragging = true;\n    eventTool.stop(event.event);\n\n    var barTransform = this._displayables.sliderGroup.getLocalTransform();\n\n    var vertex = graphic.applyTransform([dx, dy], barTransform, true);\n\n    var changed = this._updateInterval(handleIndex, vertex[0]);\n\n    var realtime = this.dataZoomModel.get('realtime');\n\n    this._updateView(!realtime);\n\n    changed && realtime && this._dispatchZoomAction(true);\n  };\n\n  SliderZoomView.prototype._onDragEnd = function () {\n    this._dragging = false;\n\n    this._showDataInfo(false);\n\n    var realtime = this.dataZoomModel.get('realtime');\n    !realtime && this._dispatchZoomAction(false);\n  };\n\n  SliderZoomView.prototype._onClickPanel = function (e) {\n    var size = this._size;\n\n    var localPoint = this._displayables.sliderGroup.transformCoordToLocal(e.offsetX, e.offsetY);\n\n    if (localPoint[0] < 0 || localPoint[0] > size[0] || localPoint[1] < 0 || localPoint[1] > size[1]) {\n      return;\n    }\n\n    var handleEnds = this._handleEnds;\n    var center = (handleEnds[0] + handleEnds[1]) / 2;\n\n    var changed = this._updateInterval('all', localPoint[0] - center);\n\n    this._updateView();\n\n    changed && this._dispatchZoomAction(false);\n  };\n\n  SliderZoomView.prototype._onBrushStart = function (e) {\n    var x = e.offsetX;\n    var y = e.offsetY;\n    this._brushStart = new graphic.Point(x, y);\n    this._brushing = true;\n    this._brushStartTime = +new Date();\n  };\n\n  SliderZoomView.prototype._onBrushEnd = function (e) {\n    if (!this._brushing) {\n      return;\n    }\n\n    var brushRect = this._displayables.brushRect;\n    this._brushing = false;\n\n    if (!brushRect) {\n      return;\n    }\n\n    brushRect.attr('ignore', true);\n    var brushShape = brushRect.shape;\n    var brushEndTime = +new Date();\n\n    if (brushEndTime - this._brushStartTime < 200 && Math.abs(brushShape.width) < 5) {\n      return;\n    }\n\n    var viewExtend = this._getViewExtent();\n\n    var percentExtent = [0, 100];\n    this._range = asc([linearMap(brushShape.x, viewExtend, percentExtent, true), linearMap(brushShape.x + brushShape.width, viewExtend, percentExtent, true)]);\n    this._handleEnds = [brushShape.x, brushShape.x + brushShape.width];\n\n    this._updateView();\n\n    this._dispatchZoomAction(false);\n  };\n\n  SliderZoomView.prototype._onBrush = function (e) {\n    if (this._brushing) {\n      eventTool.stop(e.event);\n\n      this._updateBrushRect(e.offsetX, e.offsetY);\n    }\n  };\n\n  SliderZoomView.prototype._updateBrushRect = function (mouseX, mouseY) {\n    var displayables = this._displayables;\n    var dataZoomModel = this.dataZoomModel;\n    var brushRect = displayables.brushRect;\n\n    if (!brushRect) {\n      brushRect = displayables.brushRect = new Rect({\n        silent: true,\n        style: dataZoomModel.getModel('brushStyle').getItemStyle()\n      });\n      displayables.sliderGroup.add(brushRect);\n    }\n\n    brushRect.attr('ignore', false);\n    var brushStart = this._brushStart;\n    var sliderGroup = this._displayables.sliderGroup;\n    var endPoint = sliderGroup.transformCoordToLocal(mouseX, mouseY);\n    var startPoint = sliderGroup.transformCoordToLocal(brushStart.x, brushStart.y);\n    var size = this._size;\n    endPoint[0] = Math.max(Math.min(size[0], endPoint[0]), 0);\n    brushRect.setShape({\n      x: startPoint[0],\n      y: 0,\n      width: endPoint[0] - startPoint[0],\n      height: size[1]\n    });\n  };\n\n  SliderZoomView.prototype._dispatchZoomAction = function (realtime) {\n    var range = this._range;\n    this.api.dispatchAction({\n      type: 'dataZoom',\n      from: this.uid,\n      dataZoomId: this.dataZoomModel.id,\n      animation: realtime ? REALTIME_ANIMATION_CONFIG : null,\n      start: range[0],\n      end: range[1]\n    });\n  };\n\n  SliderZoomView.prototype._findCoordRect = function () {\n    var rect;\n    var coordSysInfoList = collectReferCoordSysModelInfo(this.dataZoomModel).infoList;\n\n    if (!rect && coordSysInfoList.length) {\n      var coordSys = coordSysInfoList[0].model.coordinateSystem;\n      rect = coordSys.getRect && coordSys.getRect();\n    }\n\n    if (!rect) {\n      var width = this.api.getWidth();\n      var height = this.api.getHeight();\n      rect = {\n        x: width * 0.2,\n        y: height * 0.2,\n        width: width * 0.6,\n        height: height * 0.6\n      };\n    }\n\n    return rect;\n  };\n\n  SliderZoomView.type = 'dataZoom.slider';\n  return SliderZoomView;\n}(DataZoomView);\n\nfunction getOtherDim(thisDim) {\n  var map = {\n    x: 'y',\n    y: 'x',\n    radius: 'angle',\n    angle: 'radius'\n  };\n  return map[thisDim];\n}\n\nfunction getCursor(orient) {\n  return orient === 'vertical' ? 'ns-resize' : 'ew-resize';\n}\n\nexport default SliderZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SliderZoomModel from './SliderZoomModel';\nimport SliderZoomView from './SliderZoomView';\nimport installCommon from './installCommon';\nexport function install(registers) {\n  registers.registerComponentModel(SliderZoomModel);\n  registers.registerComponentView(SliderZoomView);\n  installCommon(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport { install as installDataZoomInside } from './installDataZoomInside';\nimport { install as installDataZoomSlider } from './installDataZoomSlider';\nexport function install(registers) {\n  use(installDataZoomInside);\n  use(installDataZoomSlider);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar visualDefault = {\n  get: function (visualType, key, isCategory) {\n    var value = zrUtil.clone((defaultOption[visualType] || {})[key]);\n    return isCategory ? zrUtil.isArray(value) ? value[value.length - 1] : value : value;\n  }\n};\nvar defaultOption = {\n  color: {\n    active: ['#006edd', '#e0ffff'],\n    inactive: ['rgba(0,0,0,0)']\n  },\n  colorHue: {\n    active: [0, 360],\n    inactive: [0, 0]\n  },\n  colorSaturation: {\n    active: [0.3, 1],\n    inactive: [0, 0]\n  },\n  colorLightness: {\n    active: [0.9, 0.5],\n    inactive: [0, 0]\n  },\n  colorAlpha: {\n    active: [0.3, 1],\n    inactive: [0, 0]\n  },\n  opacity: {\n    active: [0.3, 1],\n    inactive: [0, 0]\n  },\n  symbol: {\n    active: ['circle', 'roundRect', 'diamond'],\n    inactive: ['none']\n  },\n  symbolSize: {\n    active: [10, 50],\n    inactive: [0, 0]\n  }\n};\nexport default visualDefault;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport visualDefault from '../../visual/visualDefault';\nimport VisualMapping from '../../visual/VisualMapping';\nimport * as visualSolution from '../../visual/visualSolution';\nimport * as modelUtil from '../../util/model';\nimport * as numberUtil from '../../util/number';\nimport ComponentModel from '../../model/Component';\nvar mapVisual = VisualMapping.mapVisual;\nvar eachVisual = VisualMapping.eachVisual;\nvar isArray = zrUtil.isArray;\nvar each = zrUtil.each;\nvar asc = numberUtil.asc;\nvar linearMap = numberUtil.linearMap;\n\nvar VisualMapModel = function (_super) {\n  __extends(VisualMapModel, _super);\n\n  function VisualMapModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = VisualMapModel.type;\n    _this.stateList = ['inRange', 'outOfRange'];\n    _this.replacableOptionKeys = ['inRange', 'outOfRange', 'target', 'controller', 'color'];\n    _this.layoutMode = {\n      type: 'box',\n      ignoreSize: true\n    };\n    _this.dataBound = [-Infinity, Infinity];\n    _this.targetVisuals = {};\n    _this.controllerVisuals = {};\n    return _this;\n  }\n\n  VisualMapModel.prototype.init = function (option, parentModel, ecModel) {\n    this.mergeDefaultAndTheme(option, ecModel);\n  };\n\n  VisualMapModel.prototype.optionUpdated = function (newOption, isInit) {\n    var thisOption = this.option;\n\n    if (!env.canvasSupported) {\n      thisOption.realtime = false;\n    }\n\n    !isInit && visualSolution.replaceVisualOption(thisOption, newOption, this.replacableOptionKeys);\n    this.textStyleModel = this.getModel('textStyle');\n    this.resetItemSize();\n    this.completeVisualOption();\n  };\n\n  VisualMapModel.prototype.resetVisual = function (supplementVisualOption) {\n    var stateList = this.stateList;\n    supplementVisualOption = zrUtil.bind(supplementVisualOption, this);\n    this.controllerVisuals = visualSolution.createVisualMappings(this.option.controller, stateList, supplementVisualOption);\n    this.targetVisuals = visualSolution.createVisualMappings(this.option.target, stateList, supplementVisualOption);\n  };\n\n  VisualMapModel.prototype.getTargetSeriesIndices = function () {\n    var optionSeriesIndex = this.option.seriesIndex;\n    var seriesIndices = [];\n\n    if (optionSeriesIndex == null || optionSeriesIndex === 'all') {\n      this.ecModel.eachSeries(function (seriesModel, index) {\n        seriesIndices.push(index);\n      });\n    } else {\n      seriesIndices = modelUtil.normalizeToArray(optionSeriesIndex);\n    }\n\n    return seriesIndices;\n  };\n\n  VisualMapModel.prototype.eachTargetSeries = function (callback, context) {\n    zrUtil.each(this.getTargetSeriesIndices(), function (seriesIndex) {\n      var seriesModel = this.ecModel.getSeriesByIndex(seriesIndex);\n\n      if (seriesModel) {\n        callback.call(context, seriesModel);\n      }\n    }, this);\n  };\n\n  VisualMapModel.prototype.isTargetSeries = function (seriesModel) {\n    var is = false;\n    this.eachTargetSeries(function (model) {\n      model === seriesModel && (is = true);\n    });\n    return is;\n  };\n\n  VisualMapModel.prototype.formatValueText = function (value, isCategory, edgeSymbols) {\n    var option = this.option;\n    var precision = option.precision;\n    var dataBound = this.dataBound;\n    var formatter = option.formatter;\n    var isMinMax;\n    edgeSymbols = edgeSymbols || ['<', '>'];\n\n    if (zrUtil.isArray(value)) {\n      value = value.slice();\n      isMinMax = true;\n    }\n\n    var textValue = isCategory ? value : isMinMax ? [toFixed(value[0]), toFixed(value[1])] : toFixed(value);\n\n    if (zrUtil.isString(formatter)) {\n      return formatter.replace('{value}', isMinMax ? textValue[0] : textValue).replace('{value2}', isMinMax ? textValue[1] : textValue);\n    } else if (zrUtil.isFunction(formatter)) {\n      return isMinMax ? formatter(value[0], value[1]) : formatter(value);\n    }\n\n    if (isMinMax) {\n      if (value[0] === dataBound[0]) {\n        return edgeSymbols[0] + ' ' + textValue[1];\n      } else if (value[1] === dataBound[1]) {\n        return edgeSymbols[1] + ' ' + textValue[0];\n      } else {\n        return textValue[0] + ' - ' + textValue[1];\n      }\n    } else {\n      return textValue;\n    }\n\n    function toFixed(val) {\n      return val === dataBound[0] ? 'min' : val === dataBound[1] ? 'max' : (+val).toFixed(Math.min(precision, 20));\n    }\n  };\n\n  VisualMapModel.prototype.resetExtent = function () {\n    var thisOption = this.option;\n    var extent = asc([thisOption.min, thisOption.max]);\n    this._dataExtent = extent;\n  };\n\n  VisualMapModel.prototype.getDataDimension = function (list) {\n    var optDim = this.option.dimension;\n    var listDimensions = list.dimensions;\n\n    if (optDim == null && !listDimensions.length) {\n      return;\n    }\n\n    if (optDim != null) {\n      return list.getDimension(optDim);\n    }\n\n    var dimNames = list.dimensions;\n\n    for (var i = dimNames.length - 1; i >= 0; i--) {\n      var dimName = dimNames[i];\n      var dimInfo = list.getDimensionInfo(dimName);\n\n      if (!dimInfo.isCalculationCoord) {\n        return dimName;\n      }\n    }\n  };\n\n  VisualMapModel.prototype.getExtent = function () {\n    return this._dataExtent.slice();\n  };\n\n  VisualMapModel.prototype.completeVisualOption = function () {\n    var ecModel = this.ecModel;\n    var thisOption = this.option;\n    var base = {\n      inRange: thisOption.inRange,\n      outOfRange: thisOption.outOfRange\n    };\n    var target = thisOption.target || (thisOption.target = {});\n    var controller = thisOption.controller || (thisOption.controller = {});\n    zrUtil.merge(target, base);\n    zrUtil.merge(controller, base);\n    var isCategory = this.isCategory();\n    completeSingle.call(this, target);\n    completeSingle.call(this, controller);\n    completeInactive.call(this, target, 'inRange', 'outOfRange');\n    completeController.call(this, controller);\n\n    function completeSingle(base) {\n      if (isArray(thisOption.color) && !base.inRange) {\n        base.inRange = {\n          color: thisOption.color.slice().reverse()\n        };\n      }\n\n      base.inRange = base.inRange || {\n        color: ecModel.get('gradientColor')\n      };\n    }\n\n    function completeInactive(base, stateExist, stateAbsent) {\n      var optExist = base[stateExist];\n      var optAbsent = base[stateAbsent];\n\n      if (optExist && !optAbsent) {\n        optAbsent = base[stateAbsent] = {};\n        each(optExist, function (visualData, visualType) {\n          if (!VisualMapping.isValidType(visualType)) {\n            return;\n          }\n\n          var defa = visualDefault.get(visualType, 'inactive', isCategory);\n\n          if (defa != null) {\n            optAbsent[visualType] = defa;\n\n            if (visualType === 'color' && !optAbsent.hasOwnProperty('opacity') && !optAbsent.hasOwnProperty('colorAlpha')) {\n              optAbsent.opacity = [0, 0];\n            }\n          }\n        });\n      }\n    }\n\n    function completeController(controller) {\n      var symbolExists = (controller.inRange || {}).symbol || (controller.outOfRange || {}).symbol;\n      var symbolSizeExists = (controller.inRange || {}).symbolSize || (controller.outOfRange || {}).symbolSize;\n      var inactiveColor = this.get('inactiveColor');\n      each(this.stateList, function (state) {\n        var itemSize = this.itemSize;\n        var visuals = controller[state];\n\n        if (!visuals) {\n          visuals = controller[state] = {\n            color: isCategory ? inactiveColor : [inactiveColor]\n          };\n        }\n\n        if (visuals.symbol == null) {\n          visuals.symbol = symbolExists && zrUtil.clone(symbolExists) || (isCategory ? 'roundRect' : ['roundRect']);\n        }\n\n        if (visuals.symbolSize == null) {\n          visuals.symbolSize = symbolSizeExists && zrUtil.clone(symbolSizeExists) || (isCategory ? itemSize[0] : [itemSize[0], itemSize[0]]);\n        }\n\n        visuals.symbol = mapVisual(visuals.symbol, function (symbol) {\n          return symbol === 'none' || symbol === 'square' ? 'roundRect' : symbol;\n        });\n        var symbolSize = visuals.symbolSize;\n\n        if (symbolSize != null) {\n          var max_1 = -Infinity;\n          eachVisual(symbolSize, function (value) {\n            value > max_1 && (max_1 = value);\n          });\n          visuals.symbolSize = mapVisual(symbolSize, function (value) {\n            return linearMap(value, [0, max_1], [0, itemSize[0]], true);\n          });\n        }\n      }, this);\n    }\n  };\n\n  VisualMapModel.prototype.resetItemSize = function () {\n    this.itemSize = [parseFloat(this.get('itemWidth')), parseFloat(this.get('itemHeight'))];\n  };\n\n  VisualMapModel.prototype.isCategory = function () {\n    return !!this.option.categories;\n  };\n\n  VisualMapModel.prototype.setSelected = function (selected) {};\n\n  VisualMapModel.prototype.getSelected = function () {\n    return null;\n  };\n\n  VisualMapModel.prototype.getValueState = function (value) {\n    return null;\n  };\n\n  VisualMapModel.prototype.getVisualMeta = function (getColorVisual) {\n    return null;\n  };\n\n  VisualMapModel.type = 'visualMap';\n  VisualMapModel.dependencies = ['series'];\n  VisualMapModel.defaultOption = {\n    show: true,\n    zlevel: 0,\n    z: 4,\n    seriesIndex: 'all',\n    min: 0,\n    max: 200,\n    left: 0,\n    right: null,\n    top: null,\n    bottom: 0,\n    itemWidth: null,\n    itemHeight: null,\n    inverse: false,\n    orient: 'vertical',\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderColor: '#ccc',\n    contentColor: '#5793f3',\n    inactiveColor: '#aaa',\n    borderWidth: 0,\n    padding: 5,\n    textGap: 10,\n    precision: 0,\n    textStyle: {\n      color: '#333'\n    }\n  };\n  return VisualMapModel;\n}(ComponentModel);\n\nexport default VisualMapModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport VisualMapModel from './VisualMapModel';\nimport * as numberUtil from '../../util/number';\nimport { inheritDefaultOption } from '../../util/component';\nvar DEFAULT_BAR_BOUND = [20, 140];\n\nvar ContinuousModel = function (_super) {\n  __extends(ContinuousModel, _super);\n\n  function ContinuousModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ContinuousModel.type;\n    return _this;\n  }\n\n  ContinuousModel.prototype.optionUpdated = function (newOption, isInit) {\n    _super.prototype.optionUpdated.apply(this, arguments);\n\n    this.resetExtent();\n    this.resetVisual(function (mappingOption) {\n      mappingOption.mappingMethod = 'linear';\n      mappingOption.dataExtent = this.getExtent();\n    });\n\n    this._resetRange();\n  };\n\n  ContinuousModel.prototype.resetItemSize = function () {\n    _super.prototype.resetItemSize.apply(this, arguments);\n\n    var itemSize = this.itemSize;\n    (itemSize[0] == null || isNaN(itemSize[0])) && (itemSize[0] = DEFAULT_BAR_BOUND[0]);\n    (itemSize[1] == null || isNaN(itemSize[1])) && (itemSize[1] = DEFAULT_BAR_BOUND[1]);\n  };\n\n  ContinuousModel.prototype._resetRange = function () {\n    var dataExtent = this.getExtent();\n    var range = this.option.range;\n\n    if (!range || range.auto) {\n      dataExtent.auto = 1;\n      this.option.range = dataExtent;\n    } else if (zrUtil.isArray(range)) {\n      if (range[0] > range[1]) {\n        range.reverse();\n      }\n\n      range[0] = Math.max(range[0], dataExtent[0]);\n      range[1] = Math.min(range[1], dataExtent[1]);\n    }\n  };\n\n  ContinuousModel.prototype.completeVisualOption = function () {\n    _super.prototype.completeVisualOption.apply(this, arguments);\n\n    zrUtil.each(this.stateList, function (state) {\n      var symbolSize = this.option.controller[state].symbolSize;\n\n      if (symbolSize && symbolSize[0] !== symbolSize[1]) {\n        symbolSize[0] = symbolSize[1] / 3;\n      }\n    }, this);\n  };\n\n  ContinuousModel.prototype.setSelected = function (selected) {\n    this.option.range = selected.slice();\n\n    this._resetRange();\n  };\n\n  ContinuousModel.prototype.getSelected = function () {\n    var dataExtent = this.getExtent();\n    var dataInterval = numberUtil.asc((this.get('range') || []).slice());\n    dataInterval[0] > dataExtent[1] && (dataInterval[0] = dataExtent[1]);\n    dataInterval[1] > dataExtent[1] && (dataInterval[1] = dataExtent[1]);\n    dataInterval[0] < dataExtent[0] && (dataInterval[0] = dataExtent[0]);\n    dataInterval[1] < dataExtent[0] && (dataInterval[1] = dataExtent[0]);\n    return dataInterval;\n  };\n\n  ContinuousModel.prototype.getValueState = function (value) {\n    var range = this.option.range;\n    var dataExtent = this.getExtent();\n    return (range[0] <= dataExtent[0] || range[0] <= value) && (range[1] >= dataExtent[1] || value <= range[1]) ? 'inRange' : 'outOfRange';\n  };\n\n  ContinuousModel.prototype.findTargetDataIndices = function (range) {\n    var result = [];\n    this.eachTargetSeries(function (seriesModel) {\n      var dataIndices = [];\n      var data = seriesModel.getData();\n      data.each(this.getDataDimension(data), function (value, dataIndex) {\n        range[0] <= value && value <= range[1] && dataIndices.push(dataIndex);\n      }, this);\n      result.push({\n        seriesId: seriesModel.id,\n        dataIndex: dataIndices\n      });\n    }, this);\n    return result;\n  };\n\n  ContinuousModel.prototype.getVisualMeta = function (getColorVisual) {\n    var oVals = getColorStopValues(this, 'outOfRange', this.getExtent());\n    var iVals = getColorStopValues(this, 'inRange', this.option.range.slice());\n    var stops = [];\n\n    function setStop(value, valueState) {\n      stops.push({\n        value: value,\n        color: getColorVisual(value, valueState)\n      });\n    }\n\n    var iIdx = 0;\n    var oIdx = 0;\n    var iLen = iVals.length;\n    var oLen = oVals.length;\n\n    for (; oIdx < oLen && (!iVals.length || oVals[oIdx] <= iVals[0]); oIdx++) {\n      if (oVals[oIdx] < iVals[iIdx]) {\n        setStop(oVals[oIdx], 'outOfRange');\n      }\n    }\n\n    for (var first = 1; iIdx < iLen; iIdx++, first = 0) {\n      first && stops.length && setStop(iVals[iIdx], 'outOfRange');\n      setStop(iVals[iIdx], 'inRange');\n    }\n\n    for (var first = 1; oIdx < oLen; oIdx++) {\n      if (!iVals.length || iVals[iVals.length - 1] < oVals[oIdx]) {\n        if (first) {\n          stops.length && setStop(stops[stops.length - 1].value, 'outOfRange');\n          first = 0;\n        }\n\n        setStop(oVals[oIdx], 'outOfRange');\n      }\n    }\n\n    var stopsLen = stops.length;\n    return {\n      stops: stops,\n      outerColors: [stopsLen ? stops[0].color : 'transparent', stopsLen ? stops[stopsLen - 1].color : 'transparent']\n    };\n  };\n\n  ContinuousModel.type = 'visualMap.continuous';\n  ContinuousModel.defaultOption = inheritDefaultOption(VisualMapModel.defaultOption, {\n    align: 'auto',\n    calculable: false,\n    hoverLink: true,\n    realtime: true,\n    handleIcon: 'path://M-11.39,9.77h0a3.5,3.5,0,0,1-3.5,3.5h-22a3.5,3.5,0,0,1-3.5-3.5h0a3.5,3.5,0,0,1,3.5-3.5h22A3.5,3.5,0,0,1-11.39,9.77Z',\n    handleSize: '120%',\n    handleStyle: {\n      borderColor: '#fff',\n      borderWidth: 1\n    },\n    indicatorIcon: 'circle',\n    indicatorSize: '50%',\n    indicatorStyle: {\n      borderColor: '#fff',\n      borderWidth: 2,\n      shadowBlur: 2,\n      shadowOffsetX: 1,\n      shadowOffsetY: 1,\n      shadowColor: 'rgba(0,0,0,0.2)'\n    }\n  });\n  return ContinuousModel;\n}(VisualMapModel);\n\nfunction getColorStopValues(visualMapModel, valueState, dataExtent) {\n  if (dataExtent[0] === dataExtent[1]) {\n    return dataExtent.slice();\n  }\n\n  var count = 200;\n  var step = (dataExtent[1] - dataExtent[0]) / count;\n  var value = dataExtent[0];\n  var stopValues = [];\n\n  for (var i = 0; i <= count && value < dataExtent[1]; i++) {\n    stopValues.push(value);\n    value += step;\n  }\n\n  stopValues.push(dataExtent[1]);\n  return stopValues;\n}\n\nexport default ContinuousModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { Rect } from '../../util/graphic';\nimport * as formatUtil from '../../util/format';\nimport * as layout from '../../util/layout';\nimport VisualMapping from '../../visual/VisualMapping';\nimport ComponentView from '../../view/Component';\n\nvar VisualMapView = function (_super) {\n  __extends(VisualMapView, _super);\n\n  function VisualMapView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = VisualMapView.type;\n    _this.autoPositionValues = {\n      left: 1,\n      right: 1,\n      top: 1,\n      bottom: 1\n    };\n    return _this;\n  }\n\n  VisualMapView.prototype.init = function (ecModel, api) {\n    this.ecModel = ecModel;\n    this.api = api;\n  };\n\n  VisualMapView.prototype.render = function (visualMapModel, ecModel, api, payload) {\n    this.visualMapModel = visualMapModel;\n\n    if (visualMapModel.get('show') === false) {\n      this.group.removeAll();\n      return;\n    }\n\n    this.doRender(visualMapModel, ecModel, api, payload);\n  };\n\n  VisualMapView.prototype.renderBackground = function (group) {\n    var visualMapModel = this.visualMapModel;\n    var padding = formatUtil.normalizeCssArray(visualMapModel.get('padding') || 0);\n    var rect = group.getBoundingRect();\n    group.add(new Rect({\n      z2: -1,\n      silent: true,\n      shape: {\n        x: rect.x - padding[3],\n        y: rect.y - padding[0],\n        width: rect.width + padding[3] + padding[1],\n        height: rect.height + padding[0] + padding[2]\n      },\n      style: {\n        fill: visualMapModel.get('backgroundColor'),\n        stroke: visualMapModel.get('borderColor'),\n        lineWidth: visualMapModel.get('borderWidth')\n      }\n    }));\n  };\n\n  VisualMapView.prototype.getControllerVisual = function (targetValue, visualCluster, opts) {\n    opts = opts || {};\n    var forceState = opts.forceState;\n    var visualMapModel = this.visualMapModel;\n    var visualObj = {};\n\n    if (visualCluster === 'symbol') {\n      visualObj.symbol = visualMapModel.get('itemSymbol');\n    }\n\n    if (visualCluster === 'color') {\n      var defaultColor = visualMapModel.get('contentColor');\n      visualObj.color = defaultColor;\n    }\n\n    function getter(key) {\n      return visualObj[key];\n    }\n\n    function setter(key, value) {\n      visualObj[key] = value;\n    }\n\n    var mappings = visualMapModel.controllerVisuals[forceState || visualMapModel.getValueState(targetValue)];\n    var visualTypes = VisualMapping.prepareVisualTypes(mappings);\n    zrUtil.each(visualTypes, function (type) {\n      var visualMapping = mappings[type];\n\n      if (opts.convertOpacityToAlpha && type === 'opacity') {\n        type = 'colorAlpha';\n        visualMapping = mappings.__alphaForOpacity;\n      }\n\n      if (VisualMapping.dependsOn(type, visualCluster)) {\n        visualMapping && visualMapping.applyVisual(targetValue, getter, setter);\n      }\n    });\n    return visualObj[visualCluster];\n  };\n\n  VisualMapView.prototype.positionGroup = function (group) {\n    var model = this.visualMapModel;\n    var api = this.api;\n    layout.positionElement(group, model.getBoxLayoutParams(), {\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n  };\n\n  VisualMapView.prototype.doRender = function (visualMapModel, ecModel, api, payload) {};\n\n  VisualMapView.type = 'visualMap';\n  return VisualMapView;\n}(ComponentView);\n\nexport default VisualMapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { getLayoutRect } from '../../util/layout';\nvar paramsSet = [['left', 'right', 'width'], ['top', 'bottom', 'height']];\nexport function getItemAlign(visualMapModel, api, itemSize) {\n  var modelOption = visualMapModel.option;\n  var itemAlign = modelOption.align;\n\n  if (itemAlign != null && itemAlign !== 'auto') {\n    return itemAlign;\n  }\n\n  var ecSize = {\n    width: api.getWidth(),\n    height: api.getHeight()\n  };\n  var realIndex = modelOption.orient === 'horizontal' ? 1 : 0;\n  var reals = paramsSet[realIndex];\n  var fakeValue = [0, null, 10];\n  var layoutInput = {};\n\n  for (var i = 0; i < 3; i++) {\n    layoutInput[paramsSet[1 - realIndex][i]] = fakeValue[i];\n    layoutInput[reals[i]] = i === 2 ? itemSize[0] : modelOption[reals[i]];\n  }\n\n  var rParam = [['x', 'width', 3], ['y', 'height', 0]][realIndex];\n  var rect = getLayoutRect(layoutInput, ecSize, modelOption.padding);\n  return reals[(rect.margin[rParam[2]] || 0) + rect[rParam[0]] + rect[rParam[1]] * 0.5 < ecSize[rParam[1]] * 0.5 ? 0 : 1];\n}\nexport function makeHighDownBatch(batch, visualMapModel) {\n  zrUtil.each(batch || [], function (batchItem) {\n    if (batchItem.dataIndex != null) {\n      batchItem.dataIndexInside = batchItem.dataIndex;\n      batchItem.dataIndex = null;\n    }\n\n    batchItem.highlightKey = 'visualMap' + (visualMapModel ? visualMapModel.componentIndex : '');\n  });\n  return batch;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport LinearGradient from 'zrender/lib/graphic/LinearGradient';\nimport * as eventTool from 'zrender/lib/core/event';\nimport VisualMapView from './VisualMapView';\nimport * as graphic from '../../util/graphic';\nimport * as numberUtil from '../../util/number';\nimport sliderMove from '../helper/sliderMove';\nimport * as helper from './helper';\nimport * as modelUtil from '../../util/model';\nimport { parsePercent } from 'zrender/lib/contain/text';\nimport { setAsHighDownDispatcher } from '../../util/states';\nimport { createSymbol } from '../../util/symbol';\nimport ZRImage from 'zrender/lib/graphic/Image';\nimport { getECData } from '../../util/innerStore';\nvar linearMap = numberUtil.linearMap;\nvar each = zrUtil.each;\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar HOVER_LINK_SIZE = 12;\nvar HOVER_LINK_OUT = 6;\n\nvar ContinuousView = function (_super) {\n  __extends(ContinuousView, _super);\n\n  function ContinuousView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ContinuousView.type;\n    _this._shapes = {};\n    _this._dataInterval = [];\n    _this._handleEnds = [];\n    _this._hoverLinkDataIndices = [];\n    return _this;\n  }\n\n  ContinuousView.prototype.doRender = function (visualMapModel, ecModel, api, payload) {\n    this._api = api;\n\n    if (!payload || payload.type !== 'selectDataRange' || payload.from !== this.uid) {\n      this._buildView();\n    }\n  };\n\n  ContinuousView.prototype._buildView = function () {\n    this.group.removeAll();\n    var visualMapModel = this.visualMapModel;\n    var thisGroup = this.group;\n    this._orient = visualMapModel.get('orient');\n    this._useHandle = visualMapModel.get('calculable');\n\n    this._resetInterval();\n\n    this._renderBar(thisGroup);\n\n    var dataRangeText = visualMapModel.get('text');\n\n    this._renderEndsText(thisGroup, dataRangeText, 0);\n\n    this._renderEndsText(thisGroup, dataRangeText, 1);\n\n    this._updateView(true);\n\n    this.renderBackground(thisGroup);\n\n    this._updateView();\n\n    this._enableHoverLinkToSeries();\n\n    this._enableHoverLinkFromSeries();\n\n    this.positionGroup(thisGroup);\n  };\n\n  ContinuousView.prototype._renderEndsText = function (group, dataRangeText, endsIndex) {\n    if (!dataRangeText) {\n      return;\n    }\n\n    var text = dataRangeText[1 - endsIndex];\n    text = text != null ? text + '' : '';\n    var visualMapModel = this.visualMapModel;\n    var textGap = visualMapModel.get('textGap');\n    var itemSize = visualMapModel.itemSize;\n    var barGroup = this._shapes.mainGroup;\n\n    var position = this._applyTransform([itemSize[0] / 2, endsIndex === 0 ? -textGap : itemSize[1] + textGap], barGroup);\n\n    var align = this._applyTransform(endsIndex === 0 ? 'bottom' : 'top', barGroup);\n\n    var orient = this._orient;\n    var textStyleModel = this.visualMapModel.textStyleModel;\n    this.group.add(new graphic.Text({\n      style: {\n        x: position[0],\n        y: position[1],\n        verticalAlign: orient === 'horizontal' ? 'middle' : align,\n        align: orient === 'horizontal' ? align : 'center',\n        text: text,\n        font: textStyleModel.getFont(),\n        fill: textStyleModel.getTextColor()\n      }\n    }));\n  };\n\n  ContinuousView.prototype._renderBar = function (targetGroup) {\n    var visualMapModel = this.visualMapModel;\n    var shapes = this._shapes;\n    var itemSize = visualMapModel.itemSize;\n    var orient = this._orient;\n    var useHandle = this._useHandle;\n    var itemAlign = helper.getItemAlign(visualMapModel, this.api, itemSize);\n\n    var mainGroup = shapes.mainGroup = this._createBarGroup(itemAlign);\n\n    var gradientBarGroup = new graphic.Group();\n    mainGroup.add(gradientBarGroup);\n    gradientBarGroup.add(shapes.outOfRange = createPolygon());\n    gradientBarGroup.add(shapes.inRange = createPolygon(null, useHandle ? getCursor(this._orient) : null, zrUtil.bind(this._dragHandle, this, 'all', false), zrUtil.bind(this._dragHandle, this, 'all', true)));\n    gradientBarGroup.setClipPath(new graphic.Rect({\n      shape: {\n        x: 0,\n        y: 0,\n        width: itemSize[0],\n        height: itemSize[1],\n        r: 3\n      }\n    }));\n    var textRect = visualMapModel.textStyleModel.getTextRect('国');\n    var textSize = mathMax(textRect.width, textRect.height);\n\n    if (useHandle) {\n      shapes.handleThumbs = [];\n      shapes.handleLabels = [];\n      shapes.handleLabelPoints = [];\n\n      this._createHandle(visualMapModel, mainGroup, 0, itemSize, textSize, orient);\n\n      this._createHandle(visualMapModel, mainGroup, 1, itemSize, textSize, orient);\n    }\n\n    this._createIndicator(visualMapModel, mainGroup, itemSize, textSize, orient);\n\n    targetGroup.add(mainGroup);\n  };\n\n  ContinuousView.prototype._createHandle = function (visualMapModel, mainGroup, handleIndex, itemSize, textSize, orient) {\n    var onDrift = zrUtil.bind(this._dragHandle, this, handleIndex, false);\n    var onDragEnd = zrUtil.bind(this._dragHandle, this, handleIndex, true);\n    var handleSize = parsePercent(visualMapModel.get('handleSize'), itemSize[0]);\n    var handleThumb = createSymbol(visualMapModel.get('handleIcon'), -handleSize / 2, -handleSize / 2, handleSize, handleSize, null, true);\n    var cursor = getCursor(this._orient);\n    handleThumb.attr({\n      cursor: cursor,\n      draggable: true,\n      drift: onDrift,\n      ondragend: onDragEnd,\n      onmousemove: function (e) {\n        eventTool.stop(e.event);\n      }\n    });\n    handleThumb.x = itemSize[0] / 2;\n    handleThumb.useStyle(visualMapModel.getModel('handleStyle').getItemStyle());\n    handleThumb.setStyle({\n      strokeNoScale: true,\n      strokeFirst: true\n    });\n    handleThumb.style.lineWidth *= 2;\n    handleThumb.ensureState('emphasis').style = visualMapModel.getModel(['emphasis', 'handleStyle']).getItemStyle();\n    setAsHighDownDispatcher(handleThumb, true);\n    mainGroup.add(handleThumb);\n    var textStyleModel = this.visualMapModel.textStyleModel;\n    var handleLabel = new graphic.Text({\n      cursor: cursor,\n      draggable: true,\n      drift: onDrift,\n      onmousemove: function (e) {\n        eventTool.stop(e.event);\n      },\n      ondragend: onDragEnd,\n      style: {\n        x: 0,\n        y: 0,\n        text: '',\n        font: textStyleModel.getFont(),\n        fill: textStyleModel.getTextColor()\n      }\n    });\n    handleLabel.ensureState('blur').style = {\n      opacity: 0.1\n    };\n    handleLabel.stateTransition = {\n      duration: 200\n    };\n    this.group.add(handleLabel);\n    var handleLabelPoint = [handleSize, 0];\n    var shapes = this._shapes;\n    shapes.handleThumbs[handleIndex] = handleThumb;\n    shapes.handleLabelPoints[handleIndex] = handleLabelPoint;\n    shapes.handleLabels[handleIndex] = handleLabel;\n  };\n\n  ContinuousView.prototype._createIndicator = function (visualMapModel, mainGroup, itemSize, textSize, orient) {\n    var scale = parsePercent(visualMapModel.get('indicatorSize'), itemSize[0]);\n    var indicator = createSymbol(visualMapModel.get('indicatorIcon'), -scale / 2, -scale / 2, scale, scale, null, true);\n    indicator.attr({\n      cursor: 'move',\n      invisible: true,\n      silent: true,\n      x: itemSize[0] / 2\n    });\n    var indicatorStyle = visualMapModel.getModel('indicatorStyle').getItemStyle();\n\n    if (indicator instanceof ZRImage) {\n      var pathStyle = indicator.style;\n      indicator.useStyle(zrUtil.extend({\n        image: pathStyle.image,\n        x: pathStyle.x,\n        y: pathStyle.y,\n        width: pathStyle.width,\n        height: pathStyle.height\n      }, indicatorStyle));\n    } else {\n      indicator.useStyle(indicatorStyle);\n    }\n\n    mainGroup.add(indicator);\n    var textStyleModel = this.visualMapModel.textStyleModel;\n    var indicatorLabel = new graphic.Text({\n      silent: true,\n      invisible: true,\n      style: {\n        x: 0,\n        y: 0,\n        text: '',\n        font: textStyleModel.getFont(),\n        fill: textStyleModel.getTextColor()\n      }\n    });\n    this.group.add(indicatorLabel);\n    var indicatorLabelPoint = [(orient === 'horizontal' ? textSize / 2 : HOVER_LINK_OUT) + itemSize[0] / 2, 0];\n    var shapes = this._shapes;\n    shapes.indicator = indicator;\n    shapes.indicatorLabel = indicatorLabel;\n    shapes.indicatorLabelPoint = indicatorLabelPoint;\n    this._firstShowIndicator = true;\n  };\n\n  ContinuousView.prototype._dragHandle = function (handleIndex, isEnd, dx, dy) {\n    if (!this._useHandle) {\n      return;\n    }\n\n    this._dragging = !isEnd;\n\n    if (!isEnd) {\n      var vertex = this._applyTransform([dx, dy], this._shapes.mainGroup, true);\n\n      this._updateInterval(handleIndex, vertex[1]);\n\n      this._hideIndicator();\n\n      this._updateView();\n    }\n\n    if (isEnd === !this.visualMapModel.get('realtime')) {\n      this.api.dispatchAction({\n        type: 'selectDataRange',\n        from: this.uid,\n        visualMapId: this.visualMapModel.id,\n        selected: this._dataInterval.slice()\n      });\n    }\n\n    if (isEnd) {\n      !this._hovering && this._clearHoverLinkToSeries();\n    } else if (useHoverLinkOnHandle(this.visualMapModel)) {\n      this._doHoverLinkToSeries(this._handleEnds[handleIndex], false);\n    }\n  };\n\n  ContinuousView.prototype._resetInterval = function () {\n    var visualMapModel = this.visualMapModel;\n    var dataInterval = this._dataInterval = visualMapModel.getSelected();\n    var dataExtent = visualMapModel.getExtent();\n    var sizeExtent = [0, visualMapModel.itemSize[1]];\n    this._handleEnds = [linearMap(dataInterval[0], dataExtent, sizeExtent, true), linearMap(dataInterval[1], dataExtent, sizeExtent, true)];\n  };\n\n  ContinuousView.prototype._updateInterval = function (handleIndex, delta) {\n    delta = delta || 0;\n    var visualMapModel = this.visualMapModel;\n    var handleEnds = this._handleEnds;\n    var sizeExtent = [0, visualMapModel.itemSize[1]];\n    sliderMove(delta, handleEnds, sizeExtent, handleIndex, 0);\n    var dataExtent = visualMapModel.getExtent();\n    this._dataInterval = [linearMap(handleEnds[0], sizeExtent, dataExtent, true), linearMap(handleEnds[1], sizeExtent, dataExtent, true)];\n  };\n\n  ContinuousView.prototype._updateView = function (forSketch) {\n    var visualMapModel = this.visualMapModel;\n    var dataExtent = visualMapModel.getExtent();\n    var shapes = this._shapes;\n    var outOfRangeHandleEnds = [0, visualMapModel.itemSize[1]];\n    var inRangeHandleEnds = forSketch ? outOfRangeHandleEnds : this._handleEnds;\n\n    var visualInRange = this._createBarVisual(this._dataInterval, dataExtent, inRangeHandleEnds, 'inRange');\n\n    var visualOutOfRange = this._createBarVisual(dataExtent, dataExtent, outOfRangeHandleEnds, 'outOfRange');\n\n    shapes.inRange.setStyle({\n      fill: visualInRange.barColor\n    }).setShape('points', visualInRange.barPoints);\n    shapes.outOfRange.setStyle({\n      fill: visualOutOfRange.barColor\n    }).setShape('points', visualOutOfRange.barPoints);\n\n    this._updateHandle(inRangeHandleEnds, visualInRange);\n  };\n\n  ContinuousView.prototype._createBarVisual = function (dataInterval, dataExtent, handleEnds, forceState) {\n    var opts = {\n      forceState: forceState,\n      convertOpacityToAlpha: true\n    };\n\n    var colorStops = this._makeColorGradient(dataInterval, opts);\n\n    var symbolSizes = [this.getControllerVisual(dataInterval[0], 'symbolSize', opts), this.getControllerVisual(dataInterval[1], 'symbolSize', opts)];\n\n    var barPoints = this._createBarPoints(handleEnds, symbolSizes);\n\n    return {\n      barColor: new LinearGradient(0, 0, 0, 1, colorStops),\n      barPoints: barPoints,\n      handlesColor: [colorStops[0].color, colorStops[colorStops.length - 1].color]\n    };\n  };\n\n  ContinuousView.prototype._makeColorGradient = function (dataInterval, opts) {\n    var sampleNumber = 100;\n    var colorStops = [];\n    var step = (dataInterval[1] - dataInterval[0]) / sampleNumber;\n    colorStops.push({\n      color: this.getControllerVisual(dataInterval[0], 'color', opts),\n      offset: 0\n    });\n\n    for (var i = 1; i < sampleNumber; i++) {\n      var currValue = dataInterval[0] + step * i;\n\n      if (currValue > dataInterval[1]) {\n        break;\n      }\n\n      colorStops.push({\n        color: this.getControllerVisual(currValue, 'color', opts),\n        offset: i / sampleNumber\n      });\n    }\n\n    colorStops.push({\n      color: this.getControllerVisual(dataInterval[1], 'color', opts),\n      offset: 1\n    });\n    return colorStops;\n  };\n\n  ContinuousView.prototype._createBarPoints = function (handleEnds, symbolSizes) {\n    var itemSize = this.visualMapModel.itemSize;\n    return [[itemSize[0] - symbolSizes[0], handleEnds[0]], [itemSize[0], handleEnds[0]], [itemSize[0], handleEnds[1]], [itemSize[0] - symbolSizes[1], handleEnds[1]]];\n  };\n\n  ContinuousView.prototype._createBarGroup = function (itemAlign) {\n    var orient = this._orient;\n    var inverse = this.visualMapModel.get('inverse');\n    return new graphic.Group(orient === 'horizontal' && !inverse ? {\n      scaleX: itemAlign === 'bottom' ? 1 : -1,\n      rotation: Math.PI / 2\n    } : orient === 'horizontal' && inverse ? {\n      scaleX: itemAlign === 'bottom' ? -1 : 1,\n      rotation: -Math.PI / 2\n    } : orient === 'vertical' && !inverse ? {\n      scaleX: itemAlign === 'left' ? 1 : -1,\n      scaleY: -1\n    } : {\n      scaleX: itemAlign === 'left' ? 1 : -1\n    });\n  };\n\n  ContinuousView.prototype._updateHandle = function (handleEnds, visualInRange) {\n    if (!this._useHandle) {\n      return;\n    }\n\n    var shapes = this._shapes;\n    var visualMapModel = this.visualMapModel;\n    var handleThumbs = shapes.handleThumbs;\n    var handleLabels = shapes.handleLabels;\n    var itemSize = visualMapModel.itemSize;\n    var dataExtent = visualMapModel.getExtent();\n    each([0, 1], function (handleIndex) {\n      var handleThumb = handleThumbs[handleIndex];\n      handleThumb.setStyle('fill', visualInRange.handlesColor[handleIndex]);\n      handleThumb.y = handleEnds[handleIndex];\n      var val = linearMap(handleEnds[handleIndex], [0, itemSize[1]], dataExtent, true);\n      var symbolSize = this.getControllerVisual(val, 'symbolSize');\n      handleThumb.scaleX = handleThumb.scaleY = symbolSize / itemSize[0];\n      handleThumb.x = itemSize[0] - symbolSize / 2;\n      var textPoint = graphic.applyTransform(shapes.handleLabelPoints[handleIndex], graphic.getTransform(handleThumb, this.group));\n      handleLabels[handleIndex].setStyle({\n        x: textPoint[0],\n        y: textPoint[1],\n        text: visualMapModel.formatValueText(this._dataInterval[handleIndex]),\n        verticalAlign: 'middle',\n        align: this._orient === 'vertical' ? this._applyTransform('left', shapes.mainGroup) : 'center'\n      });\n    }, this);\n  };\n\n  ContinuousView.prototype._showIndicator = function (cursorValue, textValue, rangeSymbol, halfHoverLinkSize) {\n    var visualMapModel = this.visualMapModel;\n    var dataExtent = visualMapModel.getExtent();\n    var itemSize = visualMapModel.itemSize;\n    var sizeExtent = [0, itemSize[1]];\n    var shapes = this._shapes;\n    var indicator = shapes.indicator;\n\n    if (!indicator) {\n      return;\n    }\n\n    indicator.attr('invisible', false);\n    var opts = {\n      convertOpacityToAlpha: true\n    };\n    var color = this.getControllerVisual(cursorValue, 'color', opts);\n    var symbolSize = this.getControllerVisual(cursorValue, 'symbolSize');\n    var y = linearMap(cursorValue, dataExtent, sizeExtent, true);\n    var x = itemSize[0] - symbolSize / 2;\n    var oldIndicatorPos = {\n      x: indicator.x,\n      y: indicator.y\n    };\n    indicator.y = y;\n    indicator.x = x;\n    var textPoint = graphic.applyTransform(shapes.indicatorLabelPoint, graphic.getTransform(indicator, this.group));\n    var indicatorLabel = shapes.indicatorLabel;\n    indicatorLabel.attr('invisible', false);\n\n    var align = this._applyTransform('left', shapes.mainGroup);\n\n    var orient = this._orient;\n    var isHorizontal = orient === 'horizontal';\n    indicatorLabel.setStyle({\n      text: (rangeSymbol ? rangeSymbol : '') + visualMapModel.formatValueText(textValue),\n      verticalAlign: isHorizontal ? align : 'middle',\n      align: isHorizontal ? 'center' : align\n    });\n    var indicatorNewProps = {\n      x: x,\n      y: y,\n      style: {\n        fill: color\n      }\n    };\n    var labelNewProps = {\n      style: {\n        x: textPoint[0],\n        y: textPoint[1]\n      }\n    };\n\n    if (visualMapModel.ecModel.isAnimationEnabled() && !this._firstShowIndicator) {\n      var animationCfg = {\n        duration: 100,\n        easing: 'cubicInOut',\n        additive: true\n      };\n      indicator.x = oldIndicatorPos.x;\n      indicator.y = oldIndicatorPos.y;\n      indicator.animateTo(indicatorNewProps, animationCfg);\n      indicatorLabel.animateTo(labelNewProps, animationCfg);\n    } else {\n      indicator.attr(indicatorNewProps);\n      indicatorLabel.attr(labelNewProps);\n    }\n\n    this._firstShowIndicator = false;\n    var handleLabels = this._shapes.handleLabels;\n\n    if (handleLabels) {\n      for (var i = 0; i < handleLabels.length; i++) {\n        this._api.enterBlur(handleLabels[i]);\n      }\n    }\n  };\n\n  ContinuousView.prototype._enableHoverLinkToSeries = function () {\n    var self = this;\n\n    this._shapes.mainGroup.on('mousemove', function (e) {\n      self._hovering = true;\n\n      if (!self._dragging) {\n        var itemSize = self.visualMapModel.itemSize;\n\n        var pos = self._applyTransform([e.offsetX, e.offsetY], self._shapes.mainGroup, true, true);\n\n        pos[1] = mathMin(mathMax(0, pos[1]), itemSize[1]);\n\n        self._doHoverLinkToSeries(pos[1], 0 <= pos[0] && pos[0] <= itemSize[0]);\n      }\n    }).on('mouseout', function () {\n      self._hovering = false;\n      !self._dragging && self._clearHoverLinkToSeries();\n    });\n  };\n\n  ContinuousView.prototype._enableHoverLinkFromSeries = function () {\n    var zr = this.api.getZr();\n\n    if (this.visualMapModel.option.hoverLink) {\n      zr.on('mouseover', this._hoverLinkFromSeriesMouseOver, this);\n      zr.on('mouseout', this._hideIndicator, this);\n    } else {\n      this._clearHoverLinkFromSeries();\n    }\n  };\n\n  ContinuousView.prototype._doHoverLinkToSeries = function (cursorPos, hoverOnBar) {\n    var visualMapModel = this.visualMapModel;\n    var itemSize = visualMapModel.itemSize;\n\n    if (!visualMapModel.option.hoverLink) {\n      return;\n    }\n\n    var sizeExtent = [0, itemSize[1]];\n    var dataExtent = visualMapModel.getExtent();\n    cursorPos = mathMin(mathMax(sizeExtent[0], cursorPos), sizeExtent[1]);\n    var halfHoverLinkSize = getHalfHoverLinkSize(visualMapModel, dataExtent, sizeExtent);\n    var hoverRange = [cursorPos - halfHoverLinkSize, cursorPos + halfHoverLinkSize];\n    var cursorValue = linearMap(cursorPos, sizeExtent, dataExtent, true);\n    var valueRange = [linearMap(hoverRange[0], sizeExtent, dataExtent, true), linearMap(hoverRange[1], sizeExtent, dataExtent, true)];\n    hoverRange[0] < sizeExtent[0] && (valueRange[0] = -Infinity);\n    hoverRange[1] > sizeExtent[1] && (valueRange[1] = Infinity);\n\n    if (hoverOnBar) {\n      if (valueRange[0] === -Infinity) {\n        this._showIndicator(cursorValue, valueRange[1], '< ', halfHoverLinkSize);\n      } else if (valueRange[1] === Infinity) {\n        this._showIndicator(cursorValue, valueRange[0], '> ', halfHoverLinkSize);\n      } else {\n        this._showIndicator(cursorValue, cursorValue, '≈ ', halfHoverLinkSize);\n      }\n    }\n\n    var oldBatch = this._hoverLinkDataIndices;\n    var newBatch = [];\n\n    if (hoverOnBar || useHoverLinkOnHandle(visualMapModel)) {\n      newBatch = this._hoverLinkDataIndices = visualMapModel.findTargetDataIndices(valueRange);\n    }\n\n    var resultBatches = modelUtil.compressBatches(oldBatch, newBatch);\n\n    this._dispatchHighDown('downplay', helper.makeHighDownBatch(resultBatches[0], visualMapModel));\n\n    this._dispatchHighDown('highlight', helper.makeHighDownBatch(resultBatches[1], visualMapModel));\n  };\n\n  ContinuousView.prototype._hoverLinkFromSeriesMouseOver = function (e) {\n    var el = e.target;\n    var visualMapModel = this.visualMapModel;\n\n    if (!el || getECData(el).dataIndex == null) {\n      return;\n    }\n\n    var ecData = getECData(el);\n    var dataModel = this.ecModel.getSeriesByIndex(ecData.seriesIndex);\n\n    if (!visualMapModel.isTargetSeries(dataModel)) {\n      return;\n    }\n\n    var data = dataModel.getData(ecData.dataType);\n    var value = data.get(visualMapModel.getDataDimension(data), ecData.dataIndex);\n\n    if (!isNaN(value)) {\n      this._showIndicator(value, value);\n    }\n  };\n\n  ContinuousView.prototype._hideIndicator = function () {\n    var shapes = this._shapes;\n    shapes.indicator && shapes.indicator.attr('invisible', true);\n    shapes.indicatorLabel && shapes.indicatorLabel.attr('invisible', true);\n    var handleLabels = this._shapes.handleLabels;\n\n    if (handleLabels) {\n      for (var i = 0; i < handleLabels.length; i++) {\n        this._api.leaveBlur(handleLabels[i]);\n      }\n    }\n  };\n\n  ContinuousView.prototype._clearHoverLinkToSeries = function () {\n    this._hideIndicator();\n\n    var indices = this._hoverLinkDataIndices;\n\n    this._dispatchHighDown('downplay', helper.makeHighDownBatch(indices, this.visualMapModel));\n\n    indices.length = 0;\n  };\n\n  ContinuousView.prototype._clearHoverLinkFromSeries = function () {\n    this._hideIndicator();\n\n    var zr = this.api.getZr();\n    zr.off('mouseover', this._hoverLinkFromSeriesMouseOver);\n    zr.off('mouseout', this._hideIndicator);\n  };\n\n  ContinuousView.prototype._applyTransform = function (vertex, element, inverse, global) {\n    var transform = graphic.getTransform(element, global ? null : this.group);\n    return zrUtil.isArray(vertex) ? graphic.applyTransform(vertex, transform, inverse) : graphic.transformDirection(vertex, transform, inverse);\n  };\n\n  ContinuousView.prototype._dispatchHighDown = function (type, batch) {\n    batch && batch.length && this.api.dispatchAction({\n      type: type,\n      batch: batch\n    });\n  };\n\n  ContinuousView.prototype.dispose = function () {\n    this._clearHoverLinkFromSeries();\n\n    this._clearHoverLinkToSeries();\n  };\n\n  ContinuousView.prototype.remove = function () {\n    this._clearHoverLinkFromSeries();\n\n    this._clearHoverLinkToSeries();\n  };\n\n  ContinuousView.type = 'visualMap.continuous';\n  return ContinuousView;\n}(VisualMapView);\n\nfunction createPolygon(points, cursor, onDrift, onDragEnd) {\n  return new graphic.Polygon({\n    shape: {\n      points: points\n    },\n    draggable: !!onDrift,\n    cursor: cursor,\n    drift: onDrift,\n    onmousemove: function (e) {\n      eventTool.stop(e.event);\n    },\n    ondragend: onDragEnd\n  });\n}\n\nfunction getHalfHoverLinkSize(visualMapModel, dataExtent, sizeExtent) {\n  var halfHoverLinkSize = HOVER_LINK_SIZE / 2;\n  var hoverLinkDataSize = visualMapModel.get('hoverLinkDataSize');\n\n  if (hoverLinkDataSize) {\n    halfHoverLinkSize = linearMap(hoverLinkDataSize, dataExtent, sizeExtent, true) / 2;\n  }\n\n  return halfHoverLinkSize;\n}\n\nfunction useHoverLinkOnHandle(visualMapModel) {\n  var hoverLinkOnHandle = visualMapModel.get('hoverLinkOnHandle');\n  return !!(hoverLinkOnHandle == null ? visualMapModel.get('realtime') : hoverLinkOnHandle);\n}\n\nfunction getCursor(orient) {\n  return orient === 'vertical' ? 'ns-resize' : 'ew-resize';\n}\n\nexport default ContinuousView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport var visualMapActionInfo = {\n  type: 'selectDataRange',\n  event: 'dataRangeSelected',\n  update: 'update'\n};\nexport var visualMapActionHander = function (payload, ecModel) {\n  ecModel.eachComponent({\n    mainType: 'visualMap',\n    query: payload\n  }, function (model) {\n    model.setSelected(payload.selected);\n  });\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as visualSolution from '../../visual/visualSolution';\nimport VisualMapping from '../../visual/VisualMapping';\nimport { getVisualFromData } from '../../visual/helper';\nexport var visualMapEncodingHandlers = [{\n  createOnAllSeries: true,\n  reset: function (seriesModel, ecModel) {\n    var resetDefines = [];\n    ecModel.eachComponent('visualMap', function (visualMapModel) {\n      var pipelineContext = seriesModel.pipelineContext;\n\n      if (!visualMapModel.isTargetSeries(seriesModel) || pipelineContext && pipelineContext.large) {\n        return;\n      }\n\n      resetDefines.push(visualSolution.incrementalApplyVisual(visualMapModel.stateList, visualMapModel.targetVisuals, zrUtil.bind(visualMapModel.getValueState, visualMapModel), visualMapModel.getDataDimension(seriesModel.getData())));\n    });\n    return resetDefines;\n  }\n}, {\n  createOnAllSeries: true,\n  reset: function (seriesModel, ecModel) {\n    var data = seriesModel.getData();\n    var visualMetaList = [];\n    ecModel.eachComponent('visualMap', function (visualMapModel) {\n      if (visualMapModel.isTargetSeries(seriesModel)) {\n        var visualMeta = visualMapModel.getVisualMeta(zrUtil.bind(getColorVisual, null, seriesModel, visualMapModel)) || {\n          stops: [],\n          outerColors: []\n        };\n        var concreteDim = visualMapModel.getDataDimension(data);\n        var dimInfo = data.getDimensionInfo(concreteDim);\n\n        if (dimInfo != null) {\n          visualMeta.dimension = dimInfo.index;\n          visualMetaList.push(visualMeta);\n        }\n      }\n    });\n    seriesModel.getData().setVisual('visualMeta', visualMetaList);\n  }\n}];\n\nfunction getColorVisual(seriesModel, visualMapModel, value, valueState) {\n  var mappings = visualMapModel.targetVisuals[valueState];\n  var visualTypes = VisualMapping.prepareVisualTypes(mappings);\n  var resultVisual = {\n    color: getVisualFromData(seriesModel.getData(), 'color')\n  };\n\n  for (var i = 0, len = visualTypes.length; i < len; i++) {\n    var type = visualTypes[i];\n    var mapping = mappings[type === 'opacity' ? '__alphaForOpacity' : type];\n    mapping && mapping.applyVisual(value, getVisual, setVisual);\n  }\n\n  return resultVisual.color;\n\n  function getVisual(key) {\n    return resultVisual[key];\n  }\n\n  function setVisual(key, value) {\n    resultVisual[key] = value;\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar each = zrUtil.each;\nexport default function visualMapPreprocessor(option) {\n  var visualMap = option && option.visualMap;\n\n  if (!zrUtil.isArray(visualMap)) {\n    visualMap = visualMap ? [visualMap] : [];\n  }\n\n  each(visualMap, function (opt) {\n    if (!opt) {\n      return;\n    }\n\n    if (has(opt, 'splitList') && !has(opt, 'pieces')) {\n      opt.pieces = opt.splitList;\n      delete opt.splitList;\n    }\n\n    var pieces = opt.pieces;\n\n    if (pieces && zrUtil.isArray(pieces)) {\n      each(pieces, function (piece) {\n        if (zrUtil.isObject(piece)) {\n          if (has(piece, 'start') && !has(piece, 'min')) {\n            piece.min = piece.start;\n          }\n\n          if (has(piece, 'end') && !has(piece, 'max')) {\n            piece.max = piece.end;\n          }\n        }\n      });\n    }\n  });\n}\n\nfunction has(obj, name) {\n  return obj && obj.hasOwnProperty && obj.hasOwnProperty(name);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { visualMapActionInfo, visualMapActionHander } from './visualMapAction';\nimport { visualMapEncodingHandlers } from './visualEncoding';\nimport { each } from 'zrender/lib/core/util';\nimport preprocessor from './preprocessor';\nvar installed = false;\nexport default function installCommon(registers) {\n  if (installed) {\n    return;\n  }\n\n  installed = true;\n  registers.registerSubTypeDefaulter('visualMap', function (option) {\n    return !option.categories && (!(option.pieces ? option.pieces.length > 0 : option.splitNumber > 0) || option.calculable) ? 'continuous' : 'piecewise';\n  });\n  registers.registerAction(visualMapActionInfo, visualMapActionHander);\n  each(visualMapEncodingHandlers, function (handler) {\n    registers.registerVisual(registers.PRIORITY.VISUAL.COMPONENT, handler);\n  });\n  registers.registerPreprocessor(preprocessor);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ContinuousModel from './ContinuousModel';\nimport ContinuousView from './ContinuousView';\nimport installCommon from './installCommon';\nexport function install(registers) {\n  registers.registerComponentModel(ContinuousModel);\n  registers.registerComponentView(ContinuousView);\n  installCommon(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport VisualMapModel from './VisualMapModel';\nimport VisualMapping from '../../visual/VisualMapping';\nimport visualDefault from '../../visual/visualDefault';\nimport { reformIntervals } from '../../util/number';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar PiecewiseModel = function (_super) {\n  __extends(PiecewiseModel, _super);\n\n  function PiecewiseModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = PiecewiseModel.type;\n    _this._pieceList = [];\n    return _this;\n  }\n\n  PiecewiseModel.prototype.optionUpdated = function (newOption, isInit) {\n    _super.prototype.optionUpdated.apply(this, arguments);\n\n    this.resetExtent();\n\n    var mode = this._mode = this._determineMode();\n\n    this._pieceList = [];\n\n    resetMethods[this._mode].call(this, this._pieceList);\n\n    this._resetSelected(newOption, isInit);\n\n    var categories = this.option.categories;\n    this.resetVisual(function (mappingOption, state) {\n      if (mode === 'categories') {\n        mappingOption.mappingMethod = 'category';\n        mappingOption.categories = zrUtil.clone(categories);\n      } else {\n        mappingOption.dataExtent = this.getExtent();\n        mappingOption.mappingMethod = 'piecewise';\n        mappingOption.pieceList = zrUtil.map(this._pieceList, function (piece) {\n          piece = zrUtil.clone(piece);\n\n          if (state !== 'inRange') {\n            piece.visual = null;\n          }\n\n          return piece;\n        });\n      }\n    });\n  };\n\n  PiecewiseModel.prototype.completeVisualOption = function () {\n    var option = this.option;\n    var visualTypesInPieces = {};\n    var visualTypes = VisualMapping.listVisualTypes();\n    var isCategory = this.isCategory();\n    zrUtil.each(option.pieces, function (piece) {\n      zrUtil.each(visualTypes, function (visualType) {\n        if (piece.hasOwnProperty(visualType)) {\n          visualTypesInPieces[visualType] = 1;\n        }\n      });\n    });\n    zrUtil.each(visualTypesInPieces, function (v, visualType) {\n      var exists = false;\n      zrUtil.each(this.stateList, function (state) {\n        exists = exists || has(option, state, visualType) || has(option.target, state, visualType);\n      }, this);\n      !exists && zrUtil.each(this.stateList, function (state) {\n        (option[state] || (option[state] = {}))[visualType] = visualDefault.get(visualType, state === 'inRange' ? 'active' : 'inactive', isCategory);\n      });\n    }, this);\n\n    function has(obj, state, visualType) {\n      return obj && obj[state] && obj[state].hasOwnProperty(visualType);\n    }\n\n    _super.prototype.completeVisualOption.apply(this, arguments);\n  };\n\n  PiecewiseModel.prototype._resetSelected = function (newOption, isInit) {\n    var thisOption = this.option;\n    var pieceList = this._pieceList;\n    var selected = (isInit ? thisOption : newOption).selected || {};\n    thisOption.selected = selected;\n    zrUtil.each(pieceList, function (piece, index) {\n      var key = this.getSelectedMapKey(piece);\n\n      if (!selected.hasOwnProperty(key)) {\n        selected[key] = true;\n      }\n    }, this);\n\n    if (thisOption.selectedMode === 'single') {\n      var hasSel_1 = false;\n      zrUtil.each(pieceList, function (piece, index) {\n        var key = this.getSelectedMapKey(piece);\n\n        if (selected[key]) {\n          hasSel_1 ? selected[key] = false : hasSel_1 = true;\n        }\n      }, this);\n    }\n  };\n\n  PiecewiseModel.prototype.getSelectedMapKey = function (piece) {\n    return this._mode === 'categories' ? piece.value + '' : piece.index + '';\n  };\n\n  PiecewiseModel.prototype.getPieceList = function () {\n    return this._pieceList;\n  };\n\n  PiecewiseModel.prototype._determineMode = function () {\n    var option = this.option;\n    return option.pieces && option.pieces.length > 0 ? 'pieces' : this.option.categories ? 'categories' : 'splitNumber';\n  };\n\n  PiecewiseModel.prototype.setSelected = function (selected) {\n    this.option.selected = zrUtil.clone(selected);\n  };\n\n  PiecewiseModel.prototype.getValueState = function (value) {\n    var index = VisualMapping.findPieceIndex(value, this._pieceList);\n    return index != null ? this.option.selected[this.getSelectedMapKey(this._pieceList[index])] ? 'inRange' : 'outOfRange' : 'outOfRange';\n  };\n\n  PiecewiseModel.prototype.findTargetDataIndices = function (pieceIndex) {\n    var result = [];\n    var pieceList = this._pieceList;\n    this.eachTargetSeries(function (seriesModel) {\n      var dataIndices = [];\n      var data = seriesModel.getData();\n      data.each(this.getDataDimension(data), function (value, dataIndex) {\n        var pIdx = VisualMapping.findPieceIndex(value, pieceList);\n        pIdx === pieceIndex && dataIndices.push(dataIndex);\n      }, this);\n      result.push({\n        seriesId: seriesModel.id,\n        dataIndex: dataIndices\n      });\n    }, this);\n    return result;\n  };\n\n  PiecewiseModel.prototype.getRepresentValue = function (piece) {\n    var representValue;\n\n    if (this.isCategory()) {\n      representValue = piece.value;\n    } else {\n      if (piece.value != null) {\n        representValue = piece.value;\n      } else {\n        var pieceInterval = piece.interval || [];\n        representValue = pieceInterval[0] === -Infinity && pieceInterval[1] === Infinity ? 0 : (pieceInterval[0] + pieceInterval[1]) / 2;\n      }\n    }\n\n    return representValue;\n  };\n\n  PiecewiseModel.prototype.getVisualMeta = function (getColorVisual) {\n    if (this.isCategory()) {\n      return;\n    }\n\n    var stops = [];\n    var outerColors = ['', ''];\n    var visualMapModel = this;\n\n    function setStop(interval, valueState) {\n      var representValue = visualMapModel.getRepresentValue({\n        interval: interval\n      });\n\n      if (!valueState) {\n        valueState = visualMapModel.getValueState(representValue);\n      }\n\n      var color = getColorVisual(representValue, valueState);\n\n      if (interval[0] === -Infinity) {\n        outerColors[0] = color;\n      } else if (interval[1] === Infinity) {\n        outerColors[1] = color;\n      } else {\n        stops.push({\n          value: interval[0],\n          color: color\n        }, {\n          value: interval[1],\n          color: color\n        });\n      }\n    }\n\n    var pieceList = this._pieceList.slice();\n\n    if (!pieceList.length) {\n      pieceList.push({\n        interval: [-Infinity, Infinity]\n      });\n    } else {\n      var edge = pieceList[0].interval[0];\n      edge !== -Infinity && pieceList.unshift({\n        interval: [-Infinity, edge]\n      });\n      edge = pieceList[pieceList.length - 1].interval[1];\n      edge !== Infinity && pieceList.push({\n        interval: [edge, Infinity]\n      });\n    }\n\n    var curr = -Infinity;\n    zrUtil.each(pieceList, function (piece) {\n      var interval = piece.interval;\n\n      if (interval) {\n        interval[0] > curr && setStop([curr, interval[0]], 'outOfRange');\n        setStop(interval.slice());\n        curr = interval[1];\n      }\n    }, this);\n    return {\n      stops: stops,\n      outerColors: outerColors\n    };\n  };\n\n  PiecewiseModel.type = 'visualMap.piecewise';\n  PiecewiseModel.defaultOption = inheritDefaultOption(VisualMapModel.defaultOption, {\n    selected: null,\n    minOpen: false,\n    maxOpen: false,\n    align: 'auto',\n    itemWidth: 20,\n    itemHeight: 14,\n    itemSymbol: 'roundRect',\n    pieces: null,\n    categories: null,\n    splitNumber: 5,\n    selectedMode: 'multiple',\n    itemGap: 10,\n    hoverLink: true\n  });\n  return PiecewiseModel;\n}(VisualMapModel);\n\n;\nvar resetMethods = {\n  splitNumber: function (outPieceList) {\n    var thisOption = this.option;\n    var precision = Math.min(thisOption.precision, 20);\n    var dataExtent = this.getExtent();\n    var splitNumber = thisOption.splitNumber;\n    splitNumber = Math.max(parseInt(splitNumber, 10), 1);\n    thisOption.splitNumber = splitNumber;\n    var splitStep = (dataExtent[1] - dataExtent[0]) / splitNumber;\n\n    while (+splitStep.toFixed(precision) !== splitStep && precision < 5) {\n      precision++;\n    }\n\n    thisOption.precision = precision;\n    splitStep = +splitStep.toFixed(precision);\n\n    if (thisOption.minOpen) {\n      outPieceList.push({\n        interval: [-Infinity, dataExtent[0]],\n        close: [0, 0]\n      });\n    }\n\n    for (var index = 0, curr = dataExtent[0]; index < splitNumber; curr += splitStep, index++) {\n      var max = index === splitNumber - 1 ? dataExtent[1] : curr + splitStep;\n      outPieceList.push({\n        interval: [curr, max],\n        close: [1, 1]\n      });\n    }\n\n    if (thisOption.maxOpen) {\n      outPieceList.push({\n        interval: [dataExtent[1], Infinity],\n        close: [0, 0]\n      });\n    }\n\n    reformIntervals(outPieceList);\n    zrUtil.each(outPieceList, function (piece, index) {\n      piece.index = index;\n      piece.text = this.formatValueText(piece.interval);\n    }, this);\n  },\n  categories: function (outPieceList) {\n    var thisOption = this.option;\n    zrUtil.each(thisOption.categories, function (cate) {\n      outPieceList.push({\n        text: this.formatValueText(cate, true),\n        value: cate\n      });\n    }, this);\n    normalizeReverse(thisOption, outPieceList);\n  },\n  pieces: function (outPieceList) {\n    var thisOption = this.option;\n    zrUtil.each(thisOption.pieces, function (pieceListItem, index) {\n      if (!zrUtil.isObject(pieceListItem)) {\n        pieceListItem = {\n          value: pieceListItem\n        };\n      }\n\n      var item = {\n        text: '',\n        index: index\n      };\n\n      if (pieceListItem.label != null) {\n        item.text = pieceListItem.label;\n      }\n\n      if (pieceListItem.hasOwnProperty('value')) {\n        var value = item.value = pieceListItem.value;\n        item.interval = [value, value];\n        item.close = [1, 1];\n      } else {\n        var interval = item.interval = [];\n        var close_1 = item.close = [0, 0];\n        var closeList = [1, 0, 1];\n        var infinityList = [-Infinity, Infinity];\n        var useMinMax = [];\n\n        for (var lg = 0; lg < 2; lg++) {\n          var names = [['gte', 'gt', 'min'], ['lte', 'lt', 'max']][lg];\n\n          for (var i = 0; i < 3 && interval[lg] == null; i++) {\n            interval[lg] = pieceListItem[names[i]];\n            close_1[lg] = closeList[i];\n            useMinMax[lg] = i === 2;\n          }\n\n          interval[lg] == null && (interval[lg] = infinityList[lg]);\n        }\n\n        useMinMax[0] && interval[1] === Infinity && (close_1[0] = 0);\n        useMinMax[1] && interval[0] === -Infinity && (close_1[1] = 0);\n\n        if (process.env.NODE_ENV !== 'production') {\n          if (interval[0] > interval[1]) {\n            console.warn('Piece ' + index + 'is illegal: ' + interval + ' lower bound should not greater then uppper bound.');\n          }\n        }\n\n        if (interval[0] === interval[1] && close_1[0] && close_1[1]) {\n          item.value = interval[0];\n        }\n      }\n\n      item.visual = VisualMapping.retrieveVisuals(pieceListItem);\n      outPieceList.push(item);\n    }, this);\n    normalizeReverse(thisOption, outPieceList);\n    reformIntervals(outPieceList);\n    zrUtil.each(outPieceList, function (piece) {\n      var close = piece.close;\n      var edgeSymbols = [['<', '≤'][close[1]], ['>', '≥'][close[0]]];\n      piece.text = piece.text || this.formatValueText(piece.value != null ? piece.value : piece.interval, false, edgeSymbols);\n    }, this);\n  }\n};\n\nfunction normalizeReverse(thisOption, pieceList) {\n  var inverse = thisOption.inverse;\n\n  if (thisOption.orient === 'vertical' ? !inverse : inverse) {\n    pieceList.reverse();\n  }\n}\n\nexport default PiecewiseModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport VisualMapView from './VisualMapView';\nimport * as graphic from '../../util/graphic';\nimport { createSymbol } from '../../util/symbol';\nimport * as layout from '../../util/layout';\nimport * as helper from './helper';\n\nvar PiecewiseVisualMapView = function (_super) {\n  __extends(PiecewiseVisualMapView, _super);\n\n  function PiecewiseVisualMapView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = PiecewiseVisualMapView.type;\n    return _this;\n  }\n\n  PiecewiseVisualMapView.prototype.doRender = function () {\n    var thisGroup = this.group;\n    thisGroup.removeAll();\n    var visualMapModel = this.visualMapModel;\n    var textGap = visualMapModel.get('textGap');\n    var textStyleModel = visualMapModel.textStyleModel;\n    var textFont = textStyleModel.getFont();\n    var textFill = textStyleModel.getTextColor();\n\n    var itemAlign = this._getItemAlign();\n\n    var itemSize = visualMapModel.itemSize;\n\n    var viewData = this._getViewData();\n\n    var endsText = viewData.endsText;\n    var showLabel = zrUtil.retrieve(visualMapModel.get('showLabel', true), !endsText);\n    endsText && this._renderEndsText(thisGroup, endsText[0], itemSize, showLabel, itemAlign);\n    zrUtil.each(viewData.viewPieceList, function (item) {\n      var piece = item.piece;\n      var itemGroup = new graphic.Group();\n      itemGroup.onclick = zrUtil.bind(this._onItemClick, this, piece);\n\n      this._enableHoverLink(itemGroup, item.indexInModelPieceList);\n\n      var representValue = visualMapModel.getRepresentValue(piece);\n\n      this._createItemSymbol(itemGroup, representValue, [0, 0, itemSize[0], itemSize[1]]);\n\n      if (showLabel) {\n        var visualState = this.visualMapModel.getValueState(representValue);\n        itemGroup.add(new graphic.Text({\n          style: {\n            x: itemAlign === 'right' ? -textGap : itemSize[0] + textGap,\n            y: itemSize[1] / 2,\n            text: piece.text,\n            verticalAlign: 'middle',\n            align: itemAlign,\n            font: textFont,\n            fill: textFill,\n            opacity: visualState === 'outOfRange' ? 0.5 : 1\n          }\n        }));\n      }\n\n      thisGroup.add(itemGroup);\n    }, this);\n    endsText && this._renderEndsText(thisGroup, endsText[1], itemSize, showLabel, itemAlign);\n    layout.box(visualMapModel.get('orient'), thisGroup, visualMapModel.get('itemGap'));\n    this.renderBackground(thisGroup);\n    this.positionGroup(thisGroup);\n  };\n\n  PiecewiseVisualMapView.prototype._enableHoverLink = function (itemGroup, pieceIndex) {\n    var _this = this;\n\n    itemGroup.on('mouseover', function () {\n      return onHoverLink('highlight');\n    }).on('mouseout', function () {\n      return onHoverLink('downplay');\n    });\n\n    var onHoverLink = function (method) {\n      var visualMapModel = _this.visualMapModel;\n      visualMapModel.option.hoverLink && _this.api.dispatchAction({\n        type: method,\n        batch: helper.makeHighDownBatch(visualMapModel.findTargetDataIndices(pieceIndex), visualMapModel)\n      });\n    };\n  };\n\n  PiecewiseVisualMapView.prototype._getItemAlign = function () {\n    var visualMapModel = this.visualMapModel;\n    var modelOption = visualMapModel.option;\n\n    if (modelOption.orient === 'vertical') {\n      return helper.getItemAlign(visualMapModel, this.api, visualMapModel.itemSize);\n    } else {\n      var align = modelOption.align;\n\n      if (!align || align === 'auto') {\n        align = 'left';\n      }\n\n      return align;\n    }\n  };\n\n  PiecewiseVisualMapView.prototype._renderEndsText = function (group, text, itemSize, showLabel, itemAlign) {\n    if (!text) {\n      return;\n    }\n\n    var itemGroup = new graphic.Group();\n    var textStyleModel = this.visualMapModel.textStyleModel;\n    itemGroup.add(new graphic.Text({\n      style: {\n        x: showLabel ? itemAlign === 'right' ? itemSize[0] : 0 : itemSize[0] / 2,\n        y: itemSize[1] / 2,\n        verticalAlign: 'middle',\n        align: showLabel ? itemAlign : 'center',\n        text: text,\n        font: textStyleModel.getFont(),\n        fill: textStyleModel.getTextColor()\n      }\n    }));\n    group.add(itemGroup);\n  };\n\n  PiecewiseVisualMapView.prototype._getViewData = function () {\n    var visualMapModel = this.visualMapModel;\n    var viewPieceList = zrUtil.map(visualMapModel.getPieceList(), function (piece, index) {\n      return {\n        piece: piece,\n        indexInModelPieceList: index\n      };\n    });\n    var endsText = visualMapModel.get('text');\n    var orient = visualMapModel.get('orient');\n    var inverse = visualMapModel.get('inverse');\n\n    if (orient === 'horizontal' ? inverse : !inverse) {\n      viewPieceList.reverse();\n    } else if (endsText) {\n      endsText = endsText.slice().reverse();\n    }\n\n    return {\n      viewPieceList: viewPieceList,\n      endsText: endsText\n    };\n  };\n\n  PiecewiseVisualMapView.prototype._createItemSymbol = function (group, representValue, shapeParam) {\n    group.add(createSymbol(this.getControllerVisual(representValue, 'symbol'), shapeParam[0], shapeParam[1], shapeParam[2], shapeParam[3], this.getControllerVisual(representValue, 'color')));\n  };\n\n  PiecewiseVisualMapView.prototype._onItemClick = function (piece) {\n    var visualMapModel = this.visualMapModel;\n    var option = visualMapModel.option;\n    var selected = zrUtil.clone(option.selected);\n    var newKey = visualMapModel.getSelectedMapKey(piece);\n\n    if (option.selectedMode === 'single') {\n      selected[newKey] = true;\n      zrUtil.each(selected, function (o, key) {\n        selected[key] = key === newKey;\n      });\n    } else {\n      selected[newKey] = !selected[newKey];\n    }\n\n    this.api.dispatchAction({\n      type: 'selectDataRange',\n      from: this.uid,\n      visualMapId: this.visualMapModel.id,\n      selected: selected\n    });\n  };\n\n  PiecewiseVisualMapView.type = 'visualMap.piecewise';\n  return PiecewiseVisualMapView;\n}(VisualMapView);\n\nexport default PiecewiseVisualMapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport PiecewiseModel from './PiecewiseModel';\nimport PiecewiseView from './PiecewiseView';\nimport installCommon from './installCommon';\nexport function install(registers) {\n  registers.registerComponentModel(PiecewiseModel);\n  registers.registerComponentView(PiecewiseView);\n  installCommon(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport { install as installVisualMapContinuous } from './installVisualMapContinuous';\nimport { install as installVisualMapPiecewise } from './installVisualMapPiecewise';\nexport function install(registers) {\n  use(installVisualMapContinuous);\n  use(installVisualMapPiecewise);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { retrieveRawValue } from '../data/helper/dataProvider';\nimport { makeInner } from '../util/model';\nimport { getDecalFromPalette } from '../model/mixin/palette';\nvar DEFAULT_OPTION = {\n  label: {\n    enabled: true\n  },\n  decal: {\n    show: false\n  }\n};\nvar inner = makeInner();\nvar decalPaletteScope = {};\nexport default function ariaVisual(ecModel, api) {\n  var ariaModel = ecModel.getModel('aria');\n\n  if (!ariaModel.get('enabled')) {\n    return;\n  }\n\n  var defaultOption = zrUtil.clone(DEFAULT_OPTION);\n  zrUtil.merge(defaultOption.label, ecModel.getLocaleModel().get('aria'), false);\n  zrUtil.merge(ariaModel.option, defaultOption, false);\n  setDecal();\n  setLabel();\n\n  function setDecal() {\n    var decalModel = ariaModel.getModel('decal');\n    var useDecal = decalModel.get('show');\n\n    if (useDecal) {\n      var paletteScopeGroupByType_1 = zrUtil.createHashMap();\n      ecModel.eachSeries(function (seriesModel) {\n        if (!seriesModel.useColorPaletteOnData) {\n          return;\n        }\n\n        var decalScope = paletteScopeGroupByType_1.get(seriesModel.type);\n\n        if (!decalScope) {\n          decalScope = {};\n          paletteScopeGroupByType_1.set(seriesModel.type, decalScope);\n        }\n\n        inner(seriesModel).scope = decalScope;\n      });\n      ecModel.eachRawSeries(function (seriesModel) {\n        if (ecModel.isSeriesFiltered(seriesModel)) {\n          return;\n        }\n\n        if (typeof seriesModel.enableAriaDecal === 'function') {\n          seriesModel.enableAriaDecal();\n          return;\n        }\n\n        var data = seriesModel.getData();\n\n        if (seriesModel.useColorPaletteOnData) {\n          var dataAll_1 = seriesModel.getRawData();\n          var idxMap_1 = {};\n          var decalScope_1 = inner(seriesModel).scope;\n          data.each(function (idx) {\n            var rawIdx = data.getRawIndex(idx);\n            idxMap_1[rawIdx] = idx;\n          });\n          var dataCount_1 = dataAll_1.count();\n          dataAll_1.each(function (rawIdx) {\n            var idx = idxMap_1[rawIdx];\n            var name = dataAll_1.getName(rawIdx) || rawIdx + '';\n            var paletteDecal = getDecalFromPalette(seriesModel.ecModel, name, decalScope_1, dataCount_1);\n            var specifiedDecal = data.getItemVisual(idx, 'decal');\n            data.setItemVisual(idx, 'decal', mergeDecal(specifiedDecal, paletteDecal));\n          });\n        } else {\n          var paletteDecal = getDecalFromPalette(seriesModel.ecModel, seriesModel.name, decalPaletteScope, ecModel.getSeriesCount());\n          var specifiedDecal = data.getVisual('decal');\n          data.setVisual('decal', mergeDecal(specifiedDecal, paletteDecal));\n        }\n\n        function mergeDecal(specifiedDecal, paletteDecal) {\n          var resultDecal = specifiedDecal ? zrUtil.extend(zrUtil.extend({}, paletteDecal), specifiedDecal) : paletteDecal;\n          resultDecal.dirty = true;\n          return resultDecal;\n        }\n      });\n    }\n  }\n\n  function setLabel() {\n    var labelLocale = ecModel.getLocaleModel().get('aria');\n    var labelModel = ariaModel.getModel('label');\n    labelModel.option = zrUtil.defaults(labelModel.option, labelLocale);\n\n    if (!labelModel.get('enabled')) {\n      return;\n    }\n\n    var dom = api.getZr().dom;\n\n    if (labelModel.get('description')) {\n      dom.setAttribute('aria-label', labelModel.get('description'));\n      return;\n    }\n\n    var seriesCnt = ecModel.getSeriesCount();\n    var maxDataCnt = labelModel.get(['data', 'maxCount']) || 10;\n    var maxSeriesCnt = labelModel.get(['series', 'maxCount']) || 10;\n    var displaySeriesCnt = Math.min(seriesCnt, maxSeriesCnt);\n    var ariaLabel;\n\n    if (seriesCnt < 1) {\n      return;\n    } else {\n      var title = getTitle();\n\n      if (title) {\n        var withTitle = labelModel.get(['general', 'withTitle']);\n        ariaLabel = replace(withTitle, {\n          title: title\n        });\n      } else {\n        ariaLabel = labelModel.get(['general', 'withoutTitle']);\n      }\n\n      var seriesLabels_1 = [];\n      var prefix = seriesCnt > 1 ? labelModel.get(['series', 'multiple', 'prefix']) : labelModel.get(['series', 'single', 'prefix']);\n      ariaLabel += replace(prefix, {\n        seriesCount: seriesCnt\n      });\n      ecModel.eachSeries(function (seriesModel, idx) {\n        if (idx < displaySeriesCnt) {\n          var seriesLabel = void 0;\n          var seriesName = seriesModel.get('name');\n          var withName = seriesName ? 'withName' : 'withoutName';\n          seriesLabel = seriesCnt > 1 ? labelModel.get(['series', 'multiple', withName]) : labelModel.get(['series', 'single', withName]);\n          seriesLabel = replace(seriesLabel, {\n            seriesId: seriesModel.seriesIndex,\n            seriesName: seriesModel.get('name'),\n            seriesType: getSeriesTypeName(seriesModel.subType)\n          });\n          var data = seriesModel.getData();\n\n          if (data.count() > maxDataCnt) {\n            var partialLabel = labelModel.get(['data', 'partialData']);\n            seriesLabel += replace(partialLabel, {\n              displayCnt: maxDataCnt\n            });\n          } else {\n            seriesLabel += labelModel.get(['data', 'allData']);\n          }\n\n          var dataLabels = [];\n\n          for (var i = 0; i < data.count(); i++) {\n            if (i < maxDataCnt) {\n              var name_1 = data.getName(i);\n              var value = retrieveRawValue(data, i);\n              var dataLabel = labelModel.get(['data', name_1 ? 'withName' : 'withoutName']);\n              dataLabels.push(replace(dataLabel, {\n                name: name_1,\n                value: value\n              }));\n            }\n          }\n\n          var middleSeparator_1 = labelModel.get(['data', 'separator', 'middle']);\n          var endSeparator_1 = labelModel.get(['data', 'separator', 'end']);\n          seriesLabel += dataLabels.join(middleSeparator_1) + endSeparator_1;\n          seriesLabels_1.push(seriesLabel);\n        }\n      });\n      var separatorModel = labelModel.getModel(['series', 'multiple', 'separator']);\n      var middleSeparator = separatorModel.get('middle');\n      var endSeparator = separatorModel.get('end');\n      ariaLabel += seriesLabels_1.join(middleSeparator) + endSeparator;\n      dom.setAttribute('aria-label', ariaLabel);\n    }\n  }\n\n  function replace(str, keyValues) {\n    if (typeof str !== 'string') {\n      return str;\n    }\n\n    var result = str;\n    zrUtil.each(keyValues, function (value, key) {\n      result = result.replace(new RegExp('\\\\{\\\\s*' + key + '\\\\s*\\\\}', 'g'), value);\n    });\n    return result;\n  }\n\n  function getTitle() {\n    var title = ecModel.get('title');\n\n    if (title && title.length) {\n      title = title[0];\n    }\n\n    return title && title.text;\n  }\n\n  function getSeriesTypeName(type) {\n    return ecModel.getLocaleModel().get(['series', 'typeNames'])[type] || '自定义图';\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function ariaPreprocessor(option) {\n  if (!option || !option.aria) {\n    return;\n  }\n\n  var aria = option.aria;\n\n  if (aria.show != null) {\n    aria.enabled = aria.show;\n  }\n\n  aria.label = aria.label || {};\n  zrUtil.each(['description', 'general', 'series', 'data'], function (name) {\n    if (aria[name] != null) {\n      aria.label[name] = aria[name];\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ariaVisual from '../../visual/aria';\nimport ariaPreprocessor from './preprocessor';\nexport function install(registers) {\n  registers.registerPreprocessor(ariaPreprocessor);\n  registers.registerVisual(registers.PRIORITY.VISUAL.ARIA, ariaVisual);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { keys, isArray, map, isObject, isString, isRegExp, isArrayLike, hasOwn } from 'zrender/lib/core/util';\nimport { throwError, makePrintable } from './log';\nimport { getRawValueParser, createFilterComparator } from '../data/helper/dataValueHelper';\n;\nvar RELATIONAL_EXPRESSION_OP_ALIAS_MAP = {\n  value: 'eq',\n  '<': 'lt',\n  '<=': 'lte',\n  '>': 'gt',\n  '>=': 'gte',\n  '=': 'eq',\n  '!=': 'ne',\n  '<>': 'ne'\n};\n\nvar RegExpEvaluator = function () {\n  function RegExpEvaluator(rVal) {\n    var condValue = this._condVal = isString(rVal) ? new RegExp(rVal) : isRegExp(rVal) ? rVal : null;\n\n    if (condValue == null) {\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = makePrintable('Illegal regexp', rVal, 'in');\n      }\n\n      throwError(errMsg);\n    }\n  }\n\n  RegExpEvaluator.prototype.evaluate = function (lVal) {\n    var type = typeof lVal;\n    return type === 'string' ? this._condVal.test(lVal) : type === 'number' ? this._condVal.test(lVal + '') : false;\n  };\n\n  return RegExpEvaluator;\n}();\n\nvar ConstConditionInternal = function () {\n  function ConstConditionInternal() {}\n\n  ConstConditionInternal.prototype.evaluate = function () {\n    return this.value;\n  };\n\n  return ConstConditionInternal;\n}();\n\nvar AndConditionInternal = function () {\n  function AndConditionInternal() {}\n\n  AndConditionInternal.prototype.evaluate = function () {\n    var children = this.children;\n\n    for (var i = 0; i < children.length; i++) {\n      if (!children[i].evaluate()) {\n        return false;\n      }\n    }\n\n    return true;\n  };\n\n  return AndConditionInternal;\n}();\n\nvar OrConditionInternal = function () {\n  function OrConditionInternal() {}\n\n  OrConditionInternal.prototype.evaluate = function () {\n    var children = this.children;\n\n    for (var i = 0; i < children.length; i++) {\n      if (children[i].evaluate()) {\n        return true;\n      }\n    }\n\n    return false;\n  };\n\n  return OrConditionInternal;\n}();\n\nvar NotConditionInternal = function () {\n  function NotConditionInternal() {}\n\n  NotConditionInternal.prototype.evaluate = function () {\n    return !this.child.evaluate();\n  };\n\n  return NotConditionInternal;\n}();\n\nvar RelationalConditionInternal = function () {\n  function RelationalConditionInternal() {}\n\n  RelationalConditionInternal.prototype.evaluate = function () {\n    var needParse = !!this.valueParser;\n    var getValue = this.getValue;\n    var tarValRaw = getValue(this.valueGetterParam);\n    var tarValParsed = needParse ? this.valueParser(tarValRaw) : null;\n\n    for (var i = 0; i < this.subCondList.length; i++) {\n      if (!this.subCondList[i].evaluate(needParse ? tarValParsed : tarValRaw)) {\n        return false;\n      }\n    }\n\n    return true;\n  };\n\n  return RelationalConditionInternal;\n}();\n\nfunction parseOption(exprOption, getters) {\n  if (exprOption === true || exprOption === false) {\n    var cond = new ConstConditionInternal();\n    cond.value = exprOption;\n    return cond;\n  }\n\n  var errMsg = '';\n\n  if (!isObjectNotArray(exprOption)) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = makePrintable('Illegal config. Expect a plain object but actually', exprOption);\n    }\n\n    throwError(errMsg);\n  }\n\n  if (exprOption.and) {\n    return parseAndOrOption('and', exprOption, getters);\n  } else if (exprOption.or) {\n    return parseAndOrOption('or', exprOption, getters);\n  } else if (exprOption.not) {\n    return parseNotOption(exprOption, getters);\n  }\n\n  return parseRelationalOption(exprOption, getters);\n}\n\nfunction parseAndOrOption(op, exprOption, getters) {\n  var subOptionArr = exprOption[op];\n  var errMsg = '';\n\n  if (process.env.NODE_ENV !== 'production') {\n    errMsg = makePrintable('\"and\"/\"or\" condition should only be `' + op + ': [...]` and must not be empty array.', 'Illegal condition:', exprOption);\n  }\n\n  if (!isArray(subOptionArr)) {\n    throwError(errMsg);\n  }\n\n  if (!subOptionArr.length) {\n    throwError(errMsg);\n  }\n\n  var cond = op === 'and' ? new AndConditionInternal() : new OrConditionInternal();\n  cond.children = map(subOptionArr, function (subOption) {\n    return parseOption(subOption, getters);\n  });\n\n  if (!cond.children.length) {\n    throwError(errMsg);\n  }\n\n  return cond;\n}\n\nfunction parseNotOption(exprOption, getters) {\n  var subOption = exprOption.not;\n  var errMsg = '';\n\n  if (process.env.NODE_ENV !== 'production') {\n    errMsg = makePrintable('\"not\" condition should only be `not: {}`.', 'Illegal condition:', exprOption);\n  }\n\n  if (!isObjectNotArray(subOption)) {\n    throwError(errMsg);\n  }\n\n  var cond = new NotConditionInternal();\n  cond.child = parseOption(subOption, getters);\n\n  if (!cond.child) {\n    throwError(errMsg);\n  }\n\n  return cond;\n}\n\nfunction parseRelationalOption(exprOption, getters) {\n  var errMsg = '';\n  var valueGetterParam = getters.prepareGetValue(exprOption);\n  var subCondList = [];\n  var exprKeys = keys(exprOption);\n  var parserName = exprOption.parser;\n  var valueParser = parserName ? getRawValueParser(parserName) : null;\n\n  for (var i = 0; i < exprKeys.length; i++) {\n    var keyRaw = exprKeys[i];\n\n    if (keyRaw === 'parser' || getters.valueGetterAttrMap.get(keyRaw)) {\n      continue;\n    }\n\n    var op = hasOwn(RELATIONAL_EXPRESSION_OP_ALIAS_MAP, keyRaw) ? RELATIONAL_EXPRESSION_OP_ALIAS_MAP[keyRaw] : keyRaw;\n    var condValueRaw = exprOption[keyRaw];\n    var condValueParsed = valueParser ? valueParser(condValueRaw) : condValueRaw;\n    var evaluator = createFilterComparator(op, condValueParsed) || op === 'reg' && new RegExpEvaluator(condValueParsed);\n\n    if (!evaluator) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = makePrintable('Illegal relational operation: \"' + keyRaw + '\" in condition:', exprOption);\n      }\n\n      throwError(errMsg);\n    }\n\n    subCondList.push(evaluator);\n  }\n\n  if (!subCondList.length) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = makePrintable('Relational condition must have at least one operator.', 'Illegal condition:', exprOption);\n    }\n\n    throwError(errMsg);\n  }\n\n  var cond = new RelationalConditionInternal();\n  cond.valueGetterParam = valueGetterParam;\n  cond.valueParser = valueParser;\n  cond.getValue = getters.getValue;\n  cond.subCondList = subCondList;\n  return cond;\n}\n\nfunction isObjectNotArray(val) {\n  return isObject(val) && !isArrayLike(val);\n}\n\nvar ConditionalExpressionParsed = function () {\n  function ConditionalExpressionParsed(exprOption, getters) {\n    this._cond = parseOption(exprOption, getters);\n  }\n\n  ConditionalExpressionParsed.prototype.evaluate = function () {\n    return this._cond.evaluate();\n  };\n\n  return ConditionalExpressionParsed;\n}();\n\n;\nexport function parseConditionalExpression(exprOption, getters) {\n  return new ConditionalExpressionParsed(exprOption, getters);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parseConditionalExpression } from '../../util/conditionalExpression';\nimport { hasOwn, createHashMap } from 'zrender/lib/core/util';\nimport { makePrintable, throwError } from '../../util/log';\nexport var filterTransform = {\n  type: 'echarts:filter',\n  transform: function (params) {\n    var upstream = params.upstream;\n    var rawItem;\n    var condition = parseConditionalExpression(params.config, {\n      valueGetterAttrMap: createHashMap({\n        dimension: true\n      }),\n      prepareGetValue: function (exprOption) {\n        var errMsg = '';\n        var dimLoose = exprOption.dimension;\n\n        if (!hasOwn(exprOption, 'dimension')) {\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg = makePrintable('Relation condition must has prop \"dimension\" specified.', 'Illegal condition:', exprOption);\n          }\n\n          throwError(errMsg);\n        }\n\n        var dimInfo = upstream.getDimensionInfo(dimLoose);\n\n        if (!dimInfo) {\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg = makePrintable('Can not find dimension info via: ' + dimLoose + '.\\n', 'Existing dimensions: ', upstream.cloneAllDimensionInfo(), '.\\n', 'Illegal condition:', exprOption, '.\\n');\n          }\n\n          throwError(errMsg);\n        }\n\n        return {\n          dimIdx: dimInfo.index\n        };\n      },\n      getValue: function (param) {\n        return upstream.retrieveValueFromItem(rawItem, param.dimIdx);\n      }\n    });\n    var resultData = [];\n\n    for (var i = 0, len = upstream.count(); i < len; i++) {\n      rawItem = upstream.getRawDataItem(i);\n\n      if (condition.evaluate()) {\n        resultData.push(rawItem);\n      }\n    }\n\n    return {\n      data: resultData\n    };\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { SOURCE_FORMAT_ARRAY_ROWS, SOURCE_FORMAT_OBJECT_ROWS } from '../../util/types';\nimport { makePrintable, throwError } from '../../util/log';\nimport { each } from 'zrender/lib/core/util';\nimport { normalizeToArray } from '../../util/model';\nimport { getRawValueParser, SortOrderComparator } from '../../data/helper/dataValueHelper';\nvar sampleLog = '';\n\nif (process.env.NODE_ENV !== 'production') {\n  sampleLog = ['Valid config is like:', '{ dimension: \"age\", order: \"asc\" }', 'or [{ dimension: \"age\", order: \"asc\"], { dimension: \"date\", order: \"desc\" }]'].join(' ');\n}\n\nexport var sortTransform = {\n  type: 'echarts:sort',\n  transform: function (params) {\n    var upstream = params.upstream;\n    var config = params.config;\n    var errMsg = '';\n    var orderExprList = normalizeToArray(config);\n\n    if (!orderExprList.length) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'Empty `config` in sort transform.';\n      }\n\n      throwError(errMsg);\n    }\n\n    var orderDefList = [];\n    each(orderExprList, function (orderExpr) {\n      var dimLoose = orderExpr.dimension;\n      var order = orderExpr.order;\n      var parserName = orderExpr.parser;\n      var incomparable = orderExpr.incomparable;\n\n      if (dimLoose == null) {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = 'Sort transform config must has \"dimension\" specified.' + sampleLog;\n        }\n\n        throwError(errMsg);\n      }\n\n      if (order !== 'asc' && order !== 'desc') {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = 'Sort transform config must has \"order\" specified.' + sampleLog;\n        }\n\n        throwError(errMsg);\n      }\n\n      if (incomparable && incomparable !== 'min' && incomparable !== 'max') {\n        var errMsg_1 = '';\n\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg_1 = 'incomparable must be \"min\" or \"max\" rather than \"' + incomparable + '\".';\n        }\n\n        throwError(errMsg_1);\n      }\n\n      if (order !== 'asc' && order !== 'desc') {\n        var errMsg_2 = '';\n\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg_2 = 'order must be \"asc\" or \"desc\" rather than \"' + order + '\".';\n        }\n\n        throwError(errMsg_2);\n      }\n\n      var dimInfo = upstream.getDimensionInfo(dimLoose);\n\n      if (!dimInfo) {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = makePrintable('Can not find dimension info via: ' + dimLoose + '.\\n', 'Existing dimensions: ', upstream.cloneAllDimensionInfo(), '.\\n', 'Illegal config:', orderExpr, '.\\n');\n        }\n\n        throwError(errMsg);\n      }\n\n      var parser = parserName ? getRawValueParser(parserName) : null;\n\n      if (parserName && !parser) {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = makePrintable('Invalid parser name ' + parserName + '.\\n', 'Illegal config:', orderExpr, '.\\n');\n        }\n\n        throwError(errMsg);\n      }\n\n      orderDefList.push({\n        dimIdx: dimInfo.index,\n        parser: parser,\n        comparator: new SortOrderComparator(order, incomparable)\n      });\n    });\n    var sourceFormat = upstream.sourceFormat;\n\n    if (sourceFormat !== SOURCE_FORMAT_ARRAY_ROWS && sourceFormat !== SOURCE_FORMAT_OBJECT_ROWS) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'sourceFormat \"' + sourceFormat + '\" is not supported yet';\n      }\n\n      throwError(errMsg);\n    }\n\n    var resultData = [];\n\n    for (var i = 0, len = upstream.count(); i < len; i++) {\n      resultData.push(upstream.getRawDataItem(i));\n    }\n\n    resultData.sort(function (item0, item1) {\n      for (var i = 0; i < orderDefList.length; i++) {\n        var orderDef = orderDefList[i];\n        var val0 = upstream.retrieveValueFromItem(item0, orderDef.dimIdx);\n        var val1 = upstream.retrieveValueFromItem(item1, orderDef.dimIdx);\n\n        if (orderDef.parser) {\n          val0 = orderDef.parser(val0);\n          val1 = orderDef.parser(val1);\n        }\n\n        var result = orderDef.comparator.evaluate(val0, val1);\n\n        if (result !== 0) {\n          return result;\n        }\n      }\n\n      return 0;\n    });\n    return {\n      data: resultData\n    };\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { filterTransform } from './filterTransform';\nimport { sortTransform } from './sortTransform';\nexport function install(registers) {\n  registers.registerTransform(filterTransform);\n  registers.registerTransform(sortTransform);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\nimport ComponentView from '../../view/Component';\nimport { SERIES_LAYOUT_BY_COLUMN } from '../../util/types';\nimport { disableTransformOptionMerge, SourceManager } from '../../data/helper/sourceManager';\n\nvar DatasetModel = function (_super) {\n  __extends(DatasetModel, _super);\n\n  function DatasetModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'dataset';\n    return _this;\n  }\n\n  DatasetModel.prototype.init = function (option, parentModel, ecModel) {\n    _super.prototype.init.call(this, option, parentModel, ecModel);\n\n    this._sourceManager = new SourceManager(this);\n    disableTransformOptionMerge(this);\n  };\n\n  DatasetModel.prototype.mergeOption = function (newOption, ecModel) {\n    _super.prototype.mergeOption.call(this, newOption, ecModel);\n\n    disableTransformOptionMerge(this);\n  };\n\n  DatasetModel.prototype.optionUpdated = function () {\n    this._sourceManager.dirty();\n  };\n\n  DatasetModel.prototype.getSourceManager = function () {\n    return this._sourceManager;\n  };\n\n  DatasetModel.type = 'dataset';\n  DatasetModel.defaultOption = {\n    seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN\n  };\n  return DatasetModel;\n}(ComponentModel);\n\nexport { DatasetModel };\n\nvar DatasetView = function (_super) {\n  __extends(DatasetView, _super);\n\n  function DatasetView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'dataset';\n    return _this;\n  }\n\n  DatasetView.type = 'dataset';\n  return DatasetView;\n}(ComponentView);\n\nexport function install(registers) {\n  registers.registerComponentModel(DatasetModel);\n  registers.registerComponentView(DatasetView);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from './lib/extension';\nexport * from './lib/export/core';\nimport { SVGRenderer, CanvasRenderer } from './lib/export/renderers';\nimport { LineChart, BarChart, PieChart, ScatterChart, RadarChart, MapChart, TreeChart, TreemapChart, GraphChart, GaugeChart, FunnelChart, ParallelChart, SankeyChart, BoxplotChart, CandlestickChart, EffectScatterChart, LinesChart, HeatmapChart, PictorialBarChart, ThemeRiverChart, SunburstChart, CustomChart } from './lib/export/charts';\nimport { GridComponent, PolarComponent, GeoComponent, SingleAxisComponent, ParallelComponent, CalendarComponent, GraphicComponent, ToolboxComponent, TooltipComponent, AxisPointerComponent, BrushComponent, TitleComponent, TimelineComponent, MarkPointComponent, MarkLineComponent, MarkAreaComponent, LegendComponent, DataZoomComponent, DataZoomInsideComponent, DataZoomSliderComponent, VisualMapComponent, VisualMapContinuousComponent, VisualMapPiecewiseComponent, AriaComponent, DatasetComponent, TransformComponent } from './lib/export/components';\nuse([CanvasRenderer]);\nuse([SVGRenderer]);\nuse([LineChart, BarChart, PieChart, ScatterChart, RadarChart, MapChart, TreeChart, TreemapChart, GraphChart, GaugeChart, FunnelChart, ParallelChart, SankeyChart, BoxplotChart, CandlestickChart, EffectScatterChart, LinesChart, HeatmapChart, PictorialBarChart, ThemeRiverChart, SunburstChart, CustomChart]);\nuse(GridComponent);\nuse(PolarComponent);\nuse(GeoComponent);\nuse(SingleAxisComponent);\nuse(ParallelComponent);\nuse(CalendarComponent);\nuse(GraphicComponent);\nuse(ToolboxComponent);\nuse(TooltipComponent);\nuse(AxisPointerComponent);\nuse(BrushComponent);\nuse(TitleComponent);\nuse(TimelineComponent);\nuse(MarkPointComponent);\nuse(MarkLineComponent);\nuse(MarkAreaComponent);\nuse(LegendComponent);\nuse(DataZoomComponent);\nuse(DataZoomInsideComponent);\nuse(DataZoomSliderComponent);\nuse(VisualMapComponent);\nuse(VisualMapContinuousComponent);\nuse(VisualMapPiecewiseComponent);\nuse(AriaComponent);\nuse(TransformComponent);\nuse(DatasetComponent);"],"names":["extendStatics","__extends","clone","_calcOut","eventUtil.clientToLocal","dist","eventTool.stop","util.each","vec2.dist","create","copy","mul","scale","matrix.identity","matrix.create","matrix.mul","matrix.copy","matrix.invert","vector.applyTransform","matrix.rotate","easing","easingFuncs","lerp","color.parse","matrix.translate","matrix.scale","methods","timsort","util.indexOf","requestAnimationFrame","zrUtil.map","zrUtil.noop","zrUtil.each","zrUtil.indexOf","zrUtil.keys","HandlerProxy","zrUtil.guid","parsePercent","zrUtil.reduce","zrUtil.assert","zrUtil.createObject","zrUtil.extend","zrUtil.inherits","imageHelper.findExistImage","imageHelper.isImageReady","PRIMARY_STATES_KEYS","EPSILON","v2Create","isNotAroundZero","v2DistSquare","mathMin","mathMax","vec2.create","cubicExtrema","curve.cubicExtrema","cubicAt","curve.cubicAt","quadraticExtremum","curve.quadraticExtremum","quadraticAt","curve.quadraticAt","min","max","vec2.min","vec2.max","mathCos","mathSin","mathSqrt","PI2","dpr","containStroke","curve.cubicProjectPoint","CMD","curve.cubicRootAt","curve.quadraticRootAt","line.containStroke","cubic.containStroke","quadratic.containStroke","arc.containStroke","pathContain.containStroke","pathContain.contain","round","roundRectHelper.buildPath","color","colorTool.lift","v2ApplyTransform","PI","mathAbs","buildPath","roundSectorHelper.buildPath","distance","v2Distance","v2Min","v2Max","v2Clone","v2Sub","v2Scale","v2Add","polyHelper.buildPath","subPixelOptimizeOutputShape","vec2.normalize","minTv","maxTv","Displayble","pathTool.extendFromString","pathTool.createFromString","mergePath","pathTool.mergePath","subPixelOptimizeLine","subPixelOptimizeUtil.subPixelOptimizeLine","subPixelOptimizeRect","subPixelOptimizeUtil.subPixelOptimizeRect","subPixelOptimize","subPixelOptimizeUtil.subPixelOptimize","applyTransform","invert","zrUtil.merge","numberUtil.parseDate","defaults","zrUtil.defaults","zrUtil.isArray","Text","zrUtil.isString","normalizeCssArray","zrUtil.normalizeCssArray","zrUtil.trim","timeFormat","zrUtil.isStringSafe","zrUtil.isNumber","zrUtil.isObject","each","zrUtil.curry","formatUtil.normalizeCssArray","componentUtil.getUID","layout.fetchLayoutMode","layout.getLayoutParams","layout.mergeLayoutParam","componentUtil.enableSubTypeDefaulter","componentUtil.enableTopologicalTravel","modelUtil.normalizeToArray","modelUtil.mappingToExists","modelUtil.setComponentTypeToKeyInfo","modelUtil.isComponentIdInternal","modelUtil.convertOptionIdName","zrUtil.bind","isObject","modelUtil.TEXT_STYLE_OPTIONS","zrUtil.isTypedArray","set","compatStyle","inner","modelUtil.makeInner","modelUtil.defaultEmphasis","zrUtil.mixin","modelUtil.isNameSpecified","clazzUtil.enableClassExtend","clazzUtil.enableClassManagement","modelUtil.queryDataIndex","graphic.Group","graphic.Rect","graphic.Text","graphic.Arc","vector.dist","vector.lerp","graphic.Path","graphic.Circle","graphic.makeImage","graphic.makePath","assert","isFunction","zrUtil.isFunction","indexOf","version","zrender.init","zrUtil.clone","backwardCompat","zrUtil.setAsPrimitive","instances","zrUtil.createCanvas","graphic.Image","modelUtil.parseFinder","modelUtil.setAttribute","zrUtil.createHashMap","colorTool.parse","colorTool.stringify","graphic.isElementRemoved","init","zrUtil.isDom","dispose","modelUtil.getAttribute","zrUtil.$override","decal","loadingDefault","darkTheme","map","zrUtil.isArrayLike","zrUtil.slice","CoordinateSystem","numberUtil.round","numberUtil.nice","numberUtil.getPrecisionSafe","contain","normalize","scaleHelper.contain","scaleHelper.normalize","scaleHelper.scale","roundNumber","helper.contain","helper.normalize","helper.scale","helper.getIntervalPrecision","formatUtil.addCommas","helper.intervalScaleNiceTicks","getPrecisionSafe","mathFloor","mathPow","numberUtil.quantity","dataStack","axisHelper.createScaleByModel","axisHelper.niceScaleExtent","createTextStyle","innerCreateTextStyle","isAroundEqual","bbox.fromPoints","polygonContain.contain","vec2.applyTransform","zrUtil.filter","textContain.getBoundingRect","isAroundZero","adjustTextY","zrUtil.logError","colorTool.toHex","util.extend","util.logError","util.createCanvas","util.isObject","util.isGradientObject","util.isPatternObject","parseInt10","util.merge","install","graphic.updateProps","graphic.initProps","graphic.removeElement","SymbolClz","graphic.Sector","graphic.LinearGradient","isPointNull","modelUtil.interpolateRawValues","LineSeries","layoutPoints","Sausage","BarSeries","layout.getLayoutRect","RADIAN","graphic.Polyline","graphic.removeElementWithFadeOut","labelLayout","layout","zrUtil.retrieve","zrUtil.retrieve3","graphic.Line","matrixUtil.identity","matrixUtil.rotate","matrixUtil.mul","axisPointerModelHelper.fixValue","axisPointerModelHelper.getAxisPointerModel","cartesianAxisHelper.layout","graphic.groupTransition","installGridSimple","zrUtil.find","createSymbol","symbolUtil.createSymbol","graphic.Polygon","axisBuilderAttrs","RadarView","graphic.Ring","graphic.mergePath","numberUtil.parsePercent","installRadarComponent","echarts.registerAction","eventTool.isMiddleOrRightButtonOnMouseUpDown","interactionMutex.isTaken","points","parseGeoJson","fixTextCoord","fixGeoCoord","getBoundingRect","graphic.CompoundPath","roamHelper.updateViewOnPan","roamHelper.updateViewOnZoom","getViewRect","vector.copy","symbolNeedsDraw","graphic.BezierCurve","separation","sep","noop","helper.retrieveTargetInfo","helper.aboveViewRoot","layout.positionElement","layout.getAvailableSize","Group","Rect","animationUtil.createWrap","zrColor.fastLerp","zrColor.stringify","zrColor.modifyHSL","zrColor.modifyAlpha","zrColor.parse","helper.getPathToRoot","sort","vec2.clone","scaleAndAdd","vec2.scaleAndAdd","vec2.sub","vec2.len","vec2.set","vec2.copy","Line","vector.sub","vector.normalize","LineGroup","makeSeriesScope","curveTool.quadraticAt","vec2.distSquare","quadraticSubdivide","curveTool.quadraticSubdivide","edgeVisual","simpleLayout","circularLayout","forceLayout","createView","graphic.Point","opacityAccessPath","ParallelView","mathCeil","layoutUtil.getLayoutRect","restrict","graphic.applyTransform","numberUtil.asc","interactionMutex.take","interactionMutex.release","trigger","getTransform","graphic.getTransform","graphic.transformDirection","graphicUtil.clipPointsByRect","graphic.BoundingRect","brushHelper.makeRectPanelClipPath","brushHelper.makeRectIsTargetByCursor","brushHelper.makeLinearBrushOtherExtent","actionInfo","installParallelComponent","createGridClipShape","center","createNormalBox","createLarge","transInit","setLargeStyle","LargeArr","preprocessor","normalizeSymbolSize","matrix.clone","curveUtil.quadraticAt","quadraticDerivativeAt","curveUtil.quadraticDerivativeAt","Polyline","lineContain.containStroke","quadraticContain.containStroke","BAR_BORDER_WIDTH_QUERY","updateCommon","completeTreeValue","initChildren","dataToCoordSize","tmpArr","normalizeRadian","prepareCartesian2d","prepareGeo","prepareSingleAxis","preparePolar","prepareCalendar","graphicUtil.makePath","graphicUtil.Image","graphicUtil.Text","graphicUtil.Group","graphicUtil.getShapeClass","isPath","graphicUtil.initProps","graphicUtil.updateProps","updateZ","labelStyleHelper.createTextStyle","labelStyleHelper.createTextConfig","labelStyleHelper.getFont","graphicUtil.Path","bind","updateProps","axisPointerModelHelper.getAxisInfo","graphic.createIcon","throttleUtil.createOrUpdate","axisHelper.getAxisRawValue","viewHelper.buildElStyle","viewHelper.buildCartesianSingleLabelElOption","viewHelper.getTransformedPosition","viewHelper.makeLineShape","viewHelper.makeRectShape","globalListener.register","globalListener.unregister","modelHelper.makeKey","installSimple","installAxisPointer","pointerShapeBuilder","viewHelper.buildLabelElOption","viewHelper.makeSectorShape","getCoordSys","elementList","selfBuilderAttrs","axisElementBuilders","getSeriesStackId","getAxisKey","zrUtil.mergeAll","singleAxisHelper.layout","formatUtil.formatTplSimple","createEl","layoutUtil.positionElement","zrUtil.hasOwn","layoutUtil.LOCATION_PARAMS","layoutUtil.mergeLayoutParam","layoutUtil.copyLayoutParams","asc","numberUtil.linearMap","numberUtil.getPixelPrecision","SelectZoomModel","SelectZoomView","featureManager.getFeature","layoutBox","listComponentHelper.layout","listComponentHelper.makeBackground","trim","clear","history.clear","parseFinder","modelUtilParseFinder","handlers","history.push","history.pop","history.count","DataZoom","Restore","installDataZoomSelect","makeStyleCoord","makeDispatchAction","axisPointerViewHelper.getValueLabel","formatUtil.convertToColorString","formatUtil.formatTpl","visualSolution.createVisualMappings","visualSolution.applyVisual","visualSolution.replaceVisualOption","zrUtil.retrieve2","createScaleByModel","numberUtil.getPrecision","getAxisInfo","dataFilter","createList","markerHelper.dataTransform","markerHelper.dataFilter","markerHelper.dimValueGetter","markerHelper.getAxisInfo","markerHelper.numCalculate","dimValueGetter","isInifinity","colorUtil.modifyAlpha","curry","layoutUtil.box","mergeAndNormalizeLayoutParams","WH","XY","installLegendPlain","installLegendScroll","dispatchAction","roams.setViewInfoToCoordSysRecord","roams.disposeCoordSysRecordIfNeeded","throttle.createOrUpdate","throttle.clear","installDataZoomInside","installDataZoomSlider","defaultOption","mapVisual","isArray","linearMap","helper.getItemAlign","getCursor","modelUtil.compressBatches","helper.makeHighDownBatch","visualSolution.incrementalApplyVisual","has","installed","installCommon","layout.box","PiecewiseView","installVisualMapContinuous","installVisualMapPiecewise","CanvasRenderer","SVGRenderer","LineChart","BarChart","PieChart","ScatterChart","RadarChart","MapChart","TreeChart","TreemapChart","GraphChart","GaugeChart","FunnelChart","ParallelChart","SankeyChart","BoxplotChart","CandlestickChart","EffectScatterChart","LinesChart","HeatmapChart","PictorialBarChart","ThemeRiverChart","SunburstChart","CustomChart","GridComponent","PolarComponent","GeoComponent","SingleAxisComponent","ParallelComponent","CalendarComponent","GraphicComponent","ToolboxComponent","TooltipComponent","AxisPointerComponent","BrushComponent","TitleComponent","TimelineComponent","MarkPointComponent","MarkLineComponent","MarkAreaComponent","LegendComponent","DataZoomComponent","DataZoomInsideComponent","DataZoomSliderComponent","VisualMapComponent","VisualMapContinuousComponent","VisualMapPiecewiseComponent","AriaComponent","TransformComponent","DatasetComponent"],"mappings":"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E,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1E,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1E,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1E,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1E,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1E,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAA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,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE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"}
\ No newline at end of file
+{"version":3,"file":"echarts.js","sources":["../node_modules/tslib/tslib.es6.js","../node_modules/zrender/lib/core/env.js","../node_modules/zrender/lib/core/util.js","../node_modules/zrender/lib/core/vector.js","../node_modules/zrender/lib/mixin/Draggable.js","../node_modules/zrender/lib/core/Eventful.js","../node_modules/zrender/lib/core/fourPointsTransform.js","../node_modules/zrender/lib/core/dom.js","../node_modules/zrender/lib/core/event.js","../node_modules/zrender/lib/core/GestureMgr.js","../node_modules/zrender/lib/Handler.js","../node_modules/zrender/lib/core/matrix.js","../node_modules/zrender/lib/core/Transformable.js","../node_modules/zrender/lib/animation/easing.js","../node_modules/zrender/lib/animation/Clip.js","../node_modules/zrender/lib/core/LRU.js","../node_modules/zrender/lib/tool/color.js","../node_modules/zrender/lib/animation/Animator.js","../node_modules/zrender/lib/core/Point.js","../node_modules/zrender/lib/core/BoundingRect.js","../node_modules/zrender/lib/contain/text.js","../node_modules/zrender/lib/config.js","../node_modules/zrender/lib/Element.js","../node_modules/zrender/lib/core/timsort.js","../node_modules/zrender/lib/Storage.js","../node_modules/zrender/lib/animation/requestAnimationFrame.js","../node_modules/zrender/lib/animation/Animation.js","../node_modules/zrender/lib/dom/HandlerProxy.js","../node_modules/zrender/lib/graphic/Group.js","../node_modules/zrender/lib/zrender.js","../lib/util/number.js","../lib/util/log.js","../lib/util/model.js","../lib/util/clazz.js","../lib/model/mixin/makeStyleMapper.js","../lib/model/mixin/areaStyle.js","../node_modules/zrender/lib/graphic/helper/image.js","../node_modules/zrender/lib/graphic/helper/parseText.js","../node_modules/zrender/lib/graphic/Displayable.js","../node_modules/zrender/lib/core/curve.js","../node_modules/zrender/lib/core/bbox.js","../node_modules/zrender/lib/core/PathProxy.js","../node_modules/zrender/lib/contain/line.js","../node_modules/zrender/lib/contain/cubic.js","../node_modules/zrender/lib/contain/quadratic.js","../node_modules/zrender/lib/contain/util.js","../node_modules/zrender/lib/contain/arc.js","../node_modules/zrender/lib/contain/windingLine.js","../node_modules/zrender/lib/contain/path.js","../node_modules/zrender/lib/graphic/Path.js","../node_modules/zrender/lib/graphic/TSpan.js","../node_modules/zrender/lib/graphic/Image.js","../node_modules/zrender/lib/graphic/helper/roundRect.js","../node_modules/zrender/lib/graphic/helper/subPixelOptimize.js","../node_modules/zrender/lib/graphic/shape/Rect.js","../node_modules/zrender/lib/graphic/Text.js","../lib/util/innerStore.js","../lib/util/states.js","../node_modules/zrender/lib/tool/transformPath.js","../node_modules/zrender/lib/tool/path.js","../node_modules/zrender/lib/graphic/shape/Circle.js","../node_modules/zrender/lib/graphic/shape/Ellipse.js","../node_modules/zrender/lib/graphic/helper/roundSector.js","../node_modules/zrender/lib/graphic/shape/Sector.js","../node_modules/zrender/lib/graphic/shape/Ring.js","../node_modules/zrender/lib/graphic/helper/smoothSpline.js","../node_modules/zrender/lib/graphic/helper/smoothBezier.js","../node_modules/zrender/lib/graphic/helper/poly.js","../node_modules/zrender/lib/graphic/shape/Polygon.js","../node_modules/zrender/lib/graphic/shape/Polyline.js","../node_modules/zrender/lib/graphic/shape/Line.js","../node_modules/zrender/lib/graphic/shape/BezierCurve.js","../node_modules/zrender/lib/graphic/shape/Arc.js","../node_modules/zrender/lib/graphic/CompoundPath.js","../node_modules/zrender/lib/graphic/Gradient.js","../node_modules/zrender/lib/graphic/LinearGradient.js","../node_modules/zrender/lib/graphic/RadialGradient.js","../node_modules/zrender/lib/core/OrientedBoundingRect.js","../node_modules/zrender/lib/graphic/IncrementalDisplayable.js","../lib/util/graphic.js","../lib/label/labelStyle.js","../lib/model/mixin/textStyle.js","../lib/model/mixin/lineStyle.js","../lib/model/mixin/itemStyle.js","../lib/model/Model.js","../lib/util/component.js","../lib/i18n/langEN.js","../lib/i18n/langZH.js","../lib/core/locale.js","../lib/util/time.js","../lib/legacy/getTextRect.js","../lib/util/format.js","../lib/util/layout.js","../lib/model/Component.js","../lib/model/globalDefault.js","../lib/util/types.js","../lib/data/helper/sourceHelper.js","../lib/model/internalComponentCreator.js","../lib/model/mixin/palette.js","../lib/model/Global.js","../lib/core/ExtensionAPI.js","../lib/core/CoordinateSystem.js","../lib/model/OptionManager.js","../lib/preprocessor/helper/compatStyle.js","../lib/preprocessor/backwardCompat.js","../lib/processor/dataStack.js","../lib/data/Source.js","../lib/data/helper/dataProvider.js","../lib/model/mixin/dataFormat.js","../lib/core/task.js","../lib/data/helper/dataValueHelper.js","../lib/data/helper/transform.js","../lib/data/helper/sourceManager.js","../lib/component/tooltip/tooltipMarkup.js","../lib/component/tooltip/seriesFormatTooltip.js","../lib/model/Series.js","../lib/view/Component.js","../lib/chart/helper/createRenderPlanner.js","../lib/view/Chart.js","../lib/util/throttle.js","../lib/visual/style.js","../lib/loading/default.js","../lib/core/Scheduler.js","../lib/theme/light.js","../lib/theme/dark.js","../node_modules/zrender/lib/tool/parseXML.js","../lib/coord/geo/mapDataStorage.js","../lib/util/ECEventProcessor.js","../lib/visual/symbol.js","../lib/visual/helper.js","../lib/label/labelGuideHelper.js","../lib/label/labelLayoutHelper.js","../lib/label/LabelManager.js","../lib/legacy/dataSelectAction.js","../lib/util/event.js","../node_modules/zrender/lib/core/WeakMap.js","../lib/util/symbol.js","../node_modules/zrender/lib/canvas/helper.js","../node_modules/zrender/lib/graphic/helper/dashStyle.js","../node_modules/zrender/lib/canvas/graphic.js","../lib/util/decal.js","../lib/visual/decal.js","../lib/core/echarts.js","../lib/extension.js","../lib/data/DataDiffer.js","../lib/data/helper/dimensionHelper.js","../lib/data/DataDimensionInfo.js","../lib/data/List.js","../lib/data/helper/completeDimensions.js","../lib/data/helper/createDimensions.js","../lib/model/referHelper.js","../lib/data/helper/dataStackHelper.js","../lib/chart/helper/createListFromArray.js","../lib/scale/Scale.js","../lib/data/OrdinalMeta.js","../lib/scale/helper.js","../lib/scale/Ordinal.js","../lib/scale/Interval.js","../lib/layout/barGrid.js","../lib/scale/Time.js","../lib/scale/Log.js","../lib/coord/scaleRawExtentInfo.js","../lib/coord/axisHelper.js","../lib/coord/axisModelCommonMixin.js","../lib/export/api/helper.js","../node_modules/zrender/lib/contain/polygon.js","../lib/coord/geo/Region.js","../lib/coord/geo/parseGeoJson.js","../lib/coord/axisTickLabelBuilder.js","../lib/coord/Axis.js","../lib/export/api.js","../node_modules/zrender/lib/svg/core.js","../node_modules/zrender/lib/core/arrayDiff.js","../node_modules/zrender/lib/svg/graphic.js","../node_modules/zrender/lib/svg/helper/Definable.js","../node_modules/zrender/lib/svg/helper/GradientManager.js","../node_modules/zrender/lib/svg/helper/PatternManager.js","../node_modules/zrender/lib/svg/helper/ClippathManager.js","../node_modules/zrender/lib/svg/helper/ShadowManager.js","../node_modules/zrender/lib/svg/Painter.js","../lib/renderer/installSVGRenderer.js","../node_modules/zrender/lib/canvas/Layer.js","../node_modules/zrender/lib/canvas/Painter.js","../lib/renderer/installCanvasRenderer.js","../lib/chart/line/LineSeries.js","../lib/chart/helper/labelHelper.js","../lib/chart/helper/Symbol.js","../lib/chart/helper/SymbolDraw.js","../lib/chart/line/helper.js","../lib/util/vendor.js","../lib/chart/line/lineAnimationDiff.js","../lib/chart/line/poly.js","../lib/chart/helper/createClipPathFromCoordSys.js","../lib/coord/CoordinateSystem.js","../lib/chart/line/LineView.js","../lib/layout/points.js","../lib/processor/dataSample.js","../lib/chart/line/install.js","../lib/chart/bar/BaseBarSeries.js","../lib/chart/bar/BarSeries.js","../lib/util/shape/sausage.js","../lib/chart/bar/BarView.js","../lib/chart/bar/install.js","../lib/chart/pie/pieLayout.js","../lib/processor/dataFilter.js","../lib/chart/pie/labelLayout.js","../lib/chart/helper/pieHelper.js","../lib/chart/pie/PieView.js","../lib/chart/helper/createListSimply.js","../lib/visual/LegendVisualProvider.js","../lib/chart/pie/PieSeries.js","../lib/chart/pie/install.js","../lib/chart/scatter/ScatterSeries.js","../lib/chart/helper/LargeSymbolDraw.js","../lib/chart/scatter/ScatterView.js","../lib/coord/cartesian/GridModel.js","../lib/coord/cartesian/AxisModel.js","../lib/coord/axisDefault.js","../lib/coord/axisCommonTypes.js","../lib/coord/axisModelCreator.js","../lib/coord/cartesian/Cartesian.js","../lib/coord/cartesian/Cartesian2D.js","../lib/coord/cartesian/Axis2D.js","../lib/coord/cartesian/cartesianAxisHelper.js","../lib/coord/cartesian/Grid.js","../lib/component/axis/AxisBuilder.js","../lib/component/axisPointer/modelHelper.js","../lib/component/axis/AxisView.js","../lib/component/axis/axisSplitHelper.js","../lib/component/axis/CartesianAxisView.js","../lib/component/grid/installSimple.js","../lib/chart/scatter/install.js","../lib/chart/radar/radarLayout.js","../lib/chart/radar/backwardCompat.js","../lib/chart/radar/RadarView.js","../lib/chart/radar/RadarSeries.js","../lib/coord/radar/RadarModel.js","../lib/component/radar/RadarView.js","../lib/coord/radar/IndicatorAxis.js","../lib/coord/radar/Radar.js","../lib/component/radar/install.js","../lib/chart/radar/install.js","../lib/component/helper/interactionMutex.js","../lib/component/helper/RoamController.js","../lib/component/helper/roamHelper.js","../lib/component/helper/cursorHelper.js","../lib/coord/geo/fix/nanhai.js","../lib/coord/geo/fix/textCoord.js","../lib/coord/geo/fix/geoCoord.js","../lib/coord/geo/fix/diaoyuIsland.js","../lib/coord/geo/geoJSONLoader.js","../node_modules/zrender/lib/tool/parseSVG.js","../lib/coord/geo/geoSVGLoader.js","../lib/coord/geo/geoSourceManager.js","../lib/component/helper/MapDraw.js","../lib/chart/map/MapView.js","../lib/chart/map/MapSeries.js","../lib/chart/map/mapDataStatistic.js","../lib/chart/map/mapSymbolLayout.js","../lib/chart/map/install.js","../lib/chart/tree/layoutHelper.js","../lib/coord/View.js","../lib/chart/tree/TreeView.js","../lib/data/helper/linkList.js","../lib/data/Tree.js","../lib/chart/tree/TreeSeries.js","../lib/chart/tree/traversalHelper.js","../lib/chart/tree/treeLayout.js","../lib/chart/tree/treeVisual.js","../lib/action/roamHelper.js","../lib/chart/tree/treeAction.js","../lib/chart/tree/install.js","../lib/chart/helper/treeHelper.js","../lib/chart/treemap/treemapAction.js","../lib/chart/helper/enableAriaDecalForTree.js","../lib/chart/treemap/TreemapSeries.js","../lib/chart/treemap/Breadcrumb.js","../lib/util/animation.js","../lib/chart/treemap/TreemapView.js","../lib/visual/VisualMapping.js","../lib/chart/treemap/treemapVisual.js","../lib/chart/treemap/treemapLayout.js","../lib/chart/treemap/install.js","../lib/chart/graph/categoryFilter.js","../lib/chart/graph/categoryVisual.js","../lib/chart/graph/edgeVisual.js","../lib/chart/helper/multipleGraphEdgeHelper.js","../lib/chart/graph/simpleLayoutHelper.js","../lib/chart/graph/simpleLayout.js","../lib/chart/graph/graphHelper.js","../lib/chart/graph/circularLayoutHelper.js","../lib/chart/graph/circularLayout.js","../lib/chart/graph/forceHelper.js","../lib/chart/graph/forceLayout.js","../lib/chart/graph/createView.js","../lib/chart/helper/LinePath.js","../lib/chart/helper/Line.js","../lib/chart/helper/LineDraw.js","../lib/chart/graph/adjustEdge.js","../lib/chart/graph/GraphView.js","../lib/data/Graph.js","../lib/chart/helper/createGraphFromNodeEdge.js","../lib/chart/graph/GraphSeries.js","../lib/chart/graph/install.js","../lib/chart/gauge/PointerPath.js","../lib/chart/gauge/GaugeView.js","../lib/chart/gauge/GaugeSeries.js","../lib/chart/gauge/install.js","../lib/chart/funnel/FunnelView.js","../lib/chart/funnel/FunnelSeries.js","../lib/chart/funnel/funnelLayout.js","../lib/chart/funnel/install.js","../lib/chart/parallel/ParallelView.js","../lib/chart/parallel/ParallelSeries.js","../lib/chart/parallel/parallelVisual.js","../lib/coord/parallel/parallelPreprocessor.js","../lib/component/parallel/ParallelView.js","../lib/coord/parallel/ParallelModel.js","../lib/coord/parallel/ParallelAxis.js","../lib/component/helper/sliderMove.js","../lib/coord/parallel/Parallel.js","../lib/coord/parallel/parallelCreator.js","../lib/coord/parallel/AxisModel.js","../lib/component/helper/BrushController.js","../lib/component/helper/brushHelper.js","../lib/component/axis/ParallelAxisView.js","../lib/component/axis/parallelAxisAction.js","../lib/component/parallel/install.js","../lib/chart/parallel/install.js","../lib/chart/sankey/SankeyView.js","../lib/chart/sankey/SankeySeries.js","../lib/chart/sankey/sankeyLayout.js","../lib/chart/sankey/sankeyVisual.js","../lib/chart/sankey/install.js","../lib/chart/helper/whiskerBoxCommon.js","../lib/chart/boxplot/BoxplotSeries.js","../lib/chart/boxplot/BoxplotView.js","../lib/chart/boxplot/boxplotVisual.js","../lib/chart/boxplot/boxplotLayout.js","../lib/chart/boxplot/prepareBoxplotData.js","../lib/chart/boxplot/boxplotTransform.js","../lib/chart/boxplot/install.js","../lib/chart/candlestick/CandlestickView.js","../lib/chart/candlestick/CandlestickSeries.js","../lib/chart/candlestick/preprocessor.js","../lib/chart/candlestick/candlestickVisual.js","../lib/chart/candlestick/candlestickLayout.js","../lib/chart/candlestick/install.js","../lib/chart/helper/EffectSymbol.js","../lib/chart/effectScatter/EffectScatterView.js","../lib/chart/effectScatter/EffectScatterSeries.js","../lib/chart/effectScatter/install.js","../lib/chart/helper/EffectLine.js","../lib/chart/helper/Polyline.js","../lib/chart/helper/EffectPolyline.js","../lib/chart/helper/LargeLineDraw.js","../lib/chart/lines/linesLayout.js","../lib/chart/lines/LinesView.js","../lib/chart/lines/LinesSeries.js","../lib/chart/lines/linesVisual.js","../lib/chart/lines/install.js","../lib/chart/heatmap/HeatmapLayer.js","../lib/chart/heatmap/HeatmapView.js","../lib/chart/heatmap/HeatmapSeries.js","../lib/chart/heatmap/install.js","../lib/chart/bar/PictorialBarView.js","../lib/chart/bar/PictorialBarSeries.js","../lib/chart/bar/installPictorialBar.js","../lib/chart/themeRiver/ThemeRiverView.js","../lib/chart/themeRiver/ThemeRiverSeries.js","../lib/chart/themeRiver/themeRiverLayout.js","../lib/chart/themeRiver/install.js","../lib/chart/sunburst/SunburstPiece.js","../lib/chart/sunburst/sunburstAction.js","../lib/chart/sunburst/SunburstView.js","../lib/chart/sunburst/SunburstSeries.js","../lib/chart/sunburst/sunburstLayout.js","../lib/chart/sunburst/sunburstVisual.js","../lib/chart/sunburst/install.js","../lib/coord/cartesian/prepareCustom.js","../lib/coord/geo/prepareCustom.js","../lib/coord/single/prepareCustom.js","../lib/coord/polar/prepareCustom.js","../lib/coord/calendar/prepareCustom.js","../lib/util/styleCompat.js","../node_modules/zrender/lib/tool/morphPath.js","../lib/chart/custom/install.js","../lib/component/axisPointer/BaseAxisPointer.js","../lib/component/axisPointer/viewHelper.js","../lib/component/axisPointer/CartesianAxisPointer.js","../lib/component/axisPointer/AxisPointerModel.js","../lib/component/axisPointer/globalListener.js","../lib/component/axisPointer/AxisPointerView.js","../lib/component/axisPointer/findPointFromSeries.js","../lib/component/axisPointer/axisTrigger.js","../lib/component/axisPointer/install.js","../lib/component/grid/install.js","../lib/component/axisPointer/PolarAxisPointer.js","../lib/coord/polar/PolarModel.js","../lib/coord/polar/AxisModel.js","../lib/coord/polar/RadiusAxis.js","../lib/coord/polar/AngleAxis.js","../lib/coord/polar/Polar.js","../lib/coord/polar/polarCreator.js","../lib/component/axis/AngleAxisView.js","../lib/component/axis/RadiusAxisView.js","../lib/layout/barPolar.js","../lib/component/polar/install.js","../lib/coord/geo/Geo.js","../lib/coord/geo/geoCreator.js","../lib/coord/geo/GeoModel.js","../lib/component/geo/GeoView.js","../lib/component/geo/install.js","../lib/coord/single/singleAxisHelper.js","../lib/component/axis/SingleAxisView.js","../lib/coord/single/AxisModel.js","../lib/coord/single/SingleAxis.js","../lib/coord/single/Single.js","../lib/coord/single/singleCreator.js","../lib/component/axisPointer/SingleAxisPointer.js","../lib/component/singleAxis/install.js","../lib/coord/calendar/CalendarModel.js","../lib/component/calendar/CalendarView.js","../lib/coord/calendar/Calendar.js","../lib/component/calendar/install.js","../lib/component/graphic/install.js","../lib/component/dataZoom/helper.js","../lib/component/dataZoom/DataZoomModel.js","../lib/component/dataZoom/SelectZoomModel.js","../lib/component/dataZoom/DataZoomView.js","../lib/component/dataZoom/SelectZoomView.js","../lib/component/dataZoom/AxisProxy.js","../lib/component/dataZoom/dataZoomProcessor.js","../lib/component/dataZoom/dataZoomAction.js","../lib/component/dataZoom/installCommon.js","../lib/component/dataZoom/installDataZoomSelect.js","../lib/component/toolbox/featureManager.js","../lib/component/toolbox/ToolboxModel.js","../lib/component/helper/listComponent.js","../lib/component/toolbox/ToolboxView.js","../lib/component/toolbox/feature/SaveAsImage.js","../lib/component/toolbox/feature/MagicType.js","../lib/component/toolbox/feature/DataView.js","../lib/component/dataZoom/history.js","../lib/component/toolbox/feature/Restore.js","../lib/component/helper/BrushTargetManager.js","../lib/component/toolbox/feature/DataZoom.js","../lib/component/toolbox/install.js","../lib/component/tooltip/TooltipModel.js","../lib/component/tooltip/helper.js","../lib/component/tooltip/TooltipHTMLContent.js","../lib/component/tooltip/TooltipRichContent.js","../lib/component/tooltip/TooltipView.js","../lib/component/tooltip/install.js","../lib/component/brush/preprocessor.js","../lib/visual/visualSolution.js","../lib/component/brush/selector.js","../lib/component/brush/visualEncoding.js","../lib/component/brush/BrushView.js","../lib/component/brush/BrushModel.js","../lib/component/toolbox/feature/Brush.js","../lib/component/brush/install.js","../lib/component/title/install.js","../lib/component/timeline/TimelineModel.js","../lib/component/timeline/SliderTimelineModel.js","../lib/component/timeline/TimelineView.js","../lib/component/timeline/TimelineAxis.js","../lib/component/timeline/SliderTimelineView.js","../lib/component/timeline/timelineAction.js","../lib/component/timeline/preprocessor.js","../lib/component/timeline/install.js","../lib/component/marker/MarkerModel.js","../lib/component/marker/MarkPointModel.js","../lib/component/marker/markerHelper.js","../lib/component/marker/MarkerView.js","../lib/component/marker/MarkPointView.js","../lib/component/marker/installMarkPoint.js","../lib/component/marker/MarkLineModel.js","../lib/component/marker/MarkLineView.js","../lib/component/marker/installMarkLine.js","../lib/component/marker/MarkAreaModel.js","../lib/component/marker/MarkAreaView.js","../lib/component/marker/installMarkArea.js","../lib/component/legend/LegendModel.js","../lib/component/legend/LegendView.js","../lib/component/legend/legendFilter.js","../lib/component/legend/legendAction.js","../lib/component/legend/installLegendPlain.js","../lib/component/legend/ScrollableLegendModel.js","../lib/component/legend/ScrollableLegendView.js","../lib/component/legend/scrollableLegendAction.js","../lib/component/legend/installLegendScroll.js","../lib/component/legend/install.js","../lib/component/dataZoom/InsideZoomModel.js","../lib/component/dataZoom/roams.js","../lib/component/dataZoom/InsideZoomView.js","../lib/component/dataZoom/installDataZoomInside.js","../lib/component/dataZoom/SliderZoomModel.js","../lib/component/dataZoom/SliderZoomView.js","../lib/component/dataZoom/installDataZoomSlider.js","../lib/component/dataZoom/install.js","../lib/visual/visualDefault.js","../lib/component/visualMap/VisualMapModel.js","../lib/component/visualMap/ContinuousModel.js","../lib/component/visualMap/VisualMapView.js","../lib/component/visualMap/helper.js","../lib/component/visualMap/ContinuousView.js","../lib/component/visualMap/visualMapAction.js","../lib/component/visualMap/visualEncoding.js","../lib/component/visualMap/preprocessor.js","../lib/component/visualMap/installCommon.js","../lib/component/visualMap/installVisualMapContinuous.js","../lib/component/visualMap/PiecewiseModel.js","../lib/component/visualMap/PiecewiseView.js","../lib/component/visualMap/installVisualMapPiecewise.js","../lib/component/visualMap/install.js","../lib/visual/aria.js","../lib/component/aria/preprocessor.js","../lib/component/aria/install.js","../lib/util/conditionalExpression.js","../lib/component/transform/filterTransform.js","../lib/component/transform/sortTransform.js","../lib/component/transform/install.js","../lib/component/dataset/install.js","../index.js"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar 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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport 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\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\nexport 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};\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to get private field on non-instance\");\r\n    }\r\n    return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to set private field on non-instance\");\r\n    }\r\n    privateMap.set(receiver, value);\r\n    return value;\r\n}\r\n","var Browser = (function () {\n    function Browser() {\n        this.firefox = false;\n        this.ie = false;\n        this.edge = false;\n        this.newEdge = false;\n        this.weChat = false;\n    }\n    return Browser;\n}());\nvar Env = (function () {\n    function Env() {\n        this.browser = new Browser();\n        this.node = false;\n        this.wxa = false;\n        this.worker = false;\n        this.canvasSupported = false;\n        this.svgSupported = false;\n        this.touchEventsSupported = false;\n        this.pointerEventsSupported = false;\n        this.domSupported = false;\n    }\n    return Env;\n}());\nvar env = new Env();\nif (typeof wx === 'object' && typeof wx.getSystemInfoSync === 'function') {\n    env.wxa = true;\n    env.canvasSupported = true;\n    env.touchEventsSupported = true;\n}\nelse if (typeof document === 'undefined' && typeof self !== 'undefined') {\n    env.worker = true;\n    env.canvasSupported = true;\n}\nelse if (typeof navigator === 'undefined') {\n    env.node = true;\n    env.canvasSupported = true;\n    env.svgSupported = true;\n}\nelse {\n    detect(navigator.userAgent, env);\n}\nfunction detect(ua, env) {\n    var browser = env.browser;\n    var firefox = ua.match(/Firefox\\/([\\d.]+)/);\n    var ie = ua.match(/MSIE\\s([\\d.]+)/)\n        || ua.match(/Trident\\/.+?rv:(([\\d.]+))/);\n    var edge = ua.match(/Edge?\\/([\\d.]+)/);\n    var weChat = (/micromessenger/i).test(ua);\n    if (firefox) {\n        browser.firefox = true;\n        browser.version = firefox[1];\n    }\n    if (ie) {\n        browser.ie = true;\n        browser.version = ie[1];\n    }\n    if (edge) {\n        browser.edge = true;\n        browser.version = edge[1];\n        browser.newEdge = +edge[1].split('.')[0] > 18;\n    }\n    if (weChat) {\n        browser.weChat = true;\n    }\n    env.canvasSupported = !!document.createElement('canvas').getContext;\n    env.svgSupported = typeof SVGRect !== 'undefined';\n    env.touchEventsSupported = 'ontouchstart' in window && !browser.ie && !browser.edge;\n    env.pointerEventsSupported = 'onpointerdown' in window\n        && (browser.edge || (browser.ie && +browser.version >= 11));\n    env.domSupported = typeof document !== 'undefined';\n}\nexport default env;\n","var BUILTIN_OBJECT = {\n    '[object Function]': true,\n    '[object RegExp]': true,\n    '[object Date]': true,\n    '[object Error]': true,\n    '[object CanvasGradient]': true,\n    '[object CanvasPattern]': true,\n    '[object Image]': true,\n    '[object Canvas]': true\n};\nvar TYPED_ARRAY = {\n    '[object Int8Array]': true,\n    '[object Uint8Array]': true,\n    '[object Uint8ClampedArray]': true,\n    '[object Int16Array]': true,\n    '[object Uint16Array]': true,\n    '[object Int32Array]': true,\n    '[object Uint32Array]': true,\n    '[object Float32Array]': true,\n    '[object Float64Array]': true\n};\nvar objToString = Object.prototype.toString;\nvar arrayProto = Array.prototype;\nvar nativeForEach = arrayProto.forEach;\nvar nativeFilter = arrayProto.filter;\nvar nativeSlice = arrayProto.slice;\nvar nativeMap = arrayProto.map;\nvar ctorFunction = function () { }.constructor;\nvar protoFunction = ctorFunction ? ctorFunction.prototype : null;\nvar methods = {};\nexport function $override(name, fn) {\n    methods[name] = fn;\n}\nvar idStart = 0x0907;\nexport function guid() {\n    return idStart++;\n}\nexport function logError() {\n    var args = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n    }\n    if (typeof console !== 'undefined') {\n        console.error.apply(console, args);\n    }\n}\nexport function clone(source) {\n    if (source == null || typeof source !== 'object') {\n        return source;\n    }\n    var result = source;\n    var typeStr = objToString.call(source);\n    if (typeStr === '[object Array]') {\n        if (!isPrimitive(source)) {\n            result = [];\n            for (var i = 0, len = source.length; i < len; i++) {\n                result[i] = clone(source[i]);\n            }\n        }\n    }\n    else if (TYPED_ARRAY[typeStr]) {\n        if (!isPrimitive(source)) {\n            var Ctor = source.constructor;\n            if (Ctor.from) {\n                result = Ctor.from(source);\n            }\n            else {\n                result = new Ctor(source.length);\n                for (var i = 0, len = source.length; i < len; i++) {\n                    result[i] = clone(source[i]);\n                }\n            }\n        }\n    }\n    else if (!BUILTIN_OBJECT[typeStr] && !isPrimitive(source) && !isDom(source)) {\n        result = {};\n        for (var key in source) {\n            if (source.hasOwnProperty(key)) {\n                result[key] = clone(source[key]);\n            }\n        }\n    }\n    return result;\n}\nexport function merge(target, source, overwrite) {\n    if (!isObject(source) || !isObject(target)) {\n        return overwrite ? clone(source) : target;\n    }\n    for (var key in source) {\n        if (source.hasOwnProperty(key)) {\n            var targetProp = target[key];\n            var sourceProp = source[key];\n            if (isObject(sourceProp)\n                && isObject(targetProp)\n                && !isArray(sourceProp)\n                && !isArray(targetProp)\n                && !isDom(sourceProp)\n                && !isDom(targetProp)\n                && !isBuiltInObject(sourceProp)\n                && !isBuiltInObject(targetProp)\n                && !isPrimitive(sourceProp)\n                && !isPrimitive(targetProp)) {\n                merge(targetProp, sourceProp, overwrite);\n            }\n            else if (overwrite || !(key in target)) {\n                target[key] = clone(source[key]);\n            }\n        }\n    }\n    return target;\n}\nexport function mergeAll(targetAndSources, overwrite) {\n    var result = targetAndSources[0];\n    for (var i = 1, len = targetAndSources.length; i < len; i++) {\n        result = merge(result, targetAndSources[i], overwrite);\n    }\n    return result;\n}\nexport function extend(target, source) {\n    if (Object.assign) {\n        Object.assign(target, source);\n    }\n    else {\n        for (var key in source) {\n            if (source.hasOwnProperty(key)) {\n                target[key] = source[key];\n            }\n        }\n    }\n    return target;\n}\nexport function defaults(target, source, overlay) {\n    var keysArr = keys(source);\n    for (var i = 0; i < keysArr.length; i++) {\n        var key = keysArr[i];\n        if ((overlay ? source[key] != null : target[key] == null)) {\n            target[key] = source[key];\n        }\n    }\n    return target;\n}\nexport var createCanvas = function () {\n    return methods.createCanvas();\n};\nmethods.createCanvas = function () {\n    return document.createElement('canvas');\n};\nexport function indexOf(array, value) {\n    if (array) {\n        if (array.indexOf) {\n            return array.indexOf(value);\n        }\n        for (var i = 0, len = array.length; i < len; i++) {\n            if (array[i] === value) {\n                return i;\n            }\n        }\n    }\n    return -1;\n}\nexport function inherits(clazz, baseClazz) {\n    var clazzPrototype = clazz.prototype;\n    function F() { }\n    F.prototype = baseClazz.prototype;\n    clazz.prototype = new F();\n    for (var prop in clazzPrototype) {\n        if (clazzPrototype.hasOwnProperty(prop)) {\n            clazz.prototype[prop] = clazzPrototype[prop];\n        }\n    }\n    clazz.prototype.constructor = clazz;\n    clazz.superClass = baseClazz;\n}\nexport function mixin(target, source, override) {\n    target = 'prototype' in target ? target.prototype : target;\n    source = 'prototype' in source ? source.prototype : source;\n    if (Object.getOwnPropertyNames) {\n        var keyList = Object.getOwnPropertyNames(source);\n        for (var i = 0; i < keyList.length; i++) {\n            var key = keyList[i];\n            if (key !== 'constructor') {\n                if ((override ? source[key] != null : target[key] == null)) {\n                    target[key] = source[key];\n                }\n            }\n        }\n    }\n    else {\n        defaults(target, source, override);\n    }\n}\nexport function isArrayLike(data) {\n    if (!data) {\n        return false;\n    }\n    if (typeof data === 'string') {\n        return false;\n    }\n    return typeof data.length === 'number';\n}\nexport function each(arr, cb, context) {\n    if (!(arr && cb)) {\n        return;\n    }\n    if (arr.forEach && arr.forEach === nativeForEach) {\n        arr.forEach(cb, context);\n    }\n    else if (arr.length === +arr.length) {\n        for (var i = 0, len = arr.length; i < len; i++) {\n            cb.call(context, arr[i], i, arr);\n        }\n    }\n    else {\n        for (var key in arr) {\n            if (arr.hasOwnProperty(key)) {\n                cb.call(context, arr[key], key, arr);\n            }\n        }\n    }\n}\nexport function map(arr, cb, context) {\n    if (!arr) {\n        return [];\n    }\n    if (!cb) {\n        return slice(arr);\n    }\n    if (arr.map && arr.map === nativeMap) {\n        return arr.map(cb, context);\n    }\n    else {\n        var result = [];\n        for (var i = 0, len = arr.length; i < len; i++) {\n            result.push(cb.call(context, arr[i], i, arr));\n        }\n        return result;\n    }\n}\nexport function reduce(arr, cb, memo, context) {\n    if (!(arr && cb)) {\n        return;\n    }\n    for (var i = 0, len = arr.length; i < len; i++) {\n        memo = cb.call(context, memo, arr[i], i, arr);\n    }\n    return memo;\n}\nexport function filter(arr, cb, context) {\n    if (!arr) {\n        return [];\n    }\n    if (!cb) {\n        return slice(arr);\n    }\n    if (arr.filter && arr.filter === nativeFilter) {\n        return arr.filter(cb, context);\n    }\n    else {\n        var result = [];\n        for (var i = 0, len = arr.length; i < len; i++) {\n            if (cb.call(context, arr[i], i, arr)) {\n                result.push(arr[i]);\n            }\n        }\n        return result;\n    }\n}\nexport function find(arr, cb, context) {\n    if (!(arr && cb)) {\n        return;\n    }\n    for (var i = 0, len = arr.length; i < len; i++) {\n        if (cb.call(context, arr[i], i, arr)) {\n            return arr[i];\n        }\n    }\n}\nexport function keys(obj) {\n    if (!obj) {\n        return [];\n    }\n    if (Object.keys) {\n        return Object.keys(obj);\n    }\n    var keyList = [];\n    for (var key in obj) {\n        if (obj.hasOwnProperty(key)) {\n            keyList.push(key);\n        }\n    }\n    return keyList;\n}\nfunction bindPolyfill(func, context) {\n    var args = [];\n    for (var _i = 2; _i < arguments.length; _i++) {\n        args[_i - 2] = arguments[_i];\n    }\n    return function () {\n        return func.apply(context, args.concat(nativeSlice.call(arguments)));\n    };\n}\nexport var bind = (protoFunction && isFunction(protoFunction.bind))\n    ? protoFunction.call.bind(protoFunction.bind)\n    : bindPolyfill;\nfunction curry(func) {\n    var args = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        args[_i - 1] = arguments[_i];\n    }\n    return function () {\n        return func.apply(this, args.concat(nativeSlice.call(arguments)));\n    };\n}\nexport { curry };\nexport function isArray(value) {\n    if (Array.isArray) {\n        return Array.isArray(value);\n    }\n    return objToString.call(value) === '[object Array]';\n}\nexport function isFunction(value) {\n    return typeof value === 'function';\n}\nexport function isString(value) {\n    return typeof value === 'string';\n}\nexport function isStringSafe(value) {\n    return objToString.call(value) === '[object String]';\n}\nexport function isNumber(value) {\n    return typeof value === 'number';\n}\nexport function isObject(value) {\n    var type = typeof value;\n    return type === 'function' || (!!value && type === 'object');\n}\nexport function isBuiltInObject(value) {\n    return !!BUILTIN_OBJECT[objToString.call(value)];\n}\nexport function isTypedArray(value) {\n    return !!TYPED_ARRAY[objToString.call(value)];\n}\nexport function isDom(value) {\n    return typeof value === 'object'\n        && typeof value.nodeType === 'number'\n        && typeof value.ownerDocument === 'object';\n}\nexport function isGradientObject(value) {\n    return value.colorStops != null;\n}\nexport function isPatternObject(value) {\n    return value.image != null;\n}\nexport function isRegExp(value) {\n    return objToString.call(value) === '[object RegExp]';\n}\nexport function eqNaN(value) {\n    return value !== value;\n}\nexport function retrieve() {\n    var args = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n    }\n    for (var i = 0, len = args.length; i < len; i++) {\n        if (args[i] != null) {\n            return args[i];\n        }\n    }\n}\nexport function retrieve2(value0, value1) {\n    return value0 != null\n        ? value0\n        : value1;\n}\nexport function retrieve3(value0, value1, value2) {\n    return value0 != null\n        ? value0\n        : value1 != null\n            ? value1\n            : value2;\n}\nexport function slice(arr) {\n    var args = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        args[_i - 1] = arguments[_i];\n    }\n    return nativeSlice.apply(arr, args);\n}\nexport function normalizeCssArray(val) {\n    if (typeof (val) === 'number') {\n        return [val, val, val, val];\n    }\n    var len = val.length;\n    if (len === 2) {\n        return [val[0], val[1], val[0], val[1]];\n    }\n    else if (len === 3) {\n        return [val[0], val[1], val[2], val[1]];\n    }\n    return val;\n}\nexport function assert(condition, message) {\n    if (!condition) {\n        throw new Error(message);\n    }\n}\nexport function trim(str) {\n    if (str == null) {\n        return null;\n    }\n    else if (typeof str.trim === 'function') {\n        return str.trim();\n    }\n    else {\n        return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n    }\n}\nvar primitiveKey = '__ec_primitive__';\nexport function setAsPrimitive(obj) {\n    obj[primitiveKey] = true;\n}\nexport function isPrimitive(obj) {\n    return obj[primitiveKey];\n}\nvar HashMap = (function () {\n    function HashMap(obj) {\n        this.data = {};\n        var isArr = isArray(obj);\n        this.data = {};\n        var thisMap = this;\n        (obj instanceof HashMap)\n            ? obj.each(visit)\n            : (obj && each(obj, visit));\n        function visit(value, key) {\n            isArr ? thisMap.set(value, key) : thisMap.set(key, value);\n        }\n    }\n    HashMap.prototype.get = function (key) {\n        return this.data.hasOwnProperty(key) ? this.data[key] : null;\n    };\n    HashMap.prototype.set = function (key, value) {\n        return (this.data[key] = value);\n    };\n    HashMap.prototype.each = function (cb, context) {\n        for (var key in this.data) {\n            if (this.data.hasOwnProperty(key)) {\n                cb.call(context, this.data[key], key);\n            }\n        }\n    };\n    HashMap.prototype.keys = function () {\n        return keys(this.data);\n    };\n    HashMap.prototype.removeKey = function (key) {\n        delete this.data[key];\n    };\n    return HashMap;\n}());\nexport { HashMap };\nexport function createHashMap(obj) {\n    return new HashMap(obj);\n}\nexport function concatArray(a, b) {\n    var newArray = new a.constructor(a.length + b.length);\n    for (var i = 0; i < a.length; i++) {\n        newArray[i] = a[i];\n    }\n    var offset = a.length;\n    for (var i = 0; i < b.length; i++) {\n        newArray[i + offset] = b[i];\n    }\n    return newArray;\n}\nexport function createObject(proto, properties) {\n    var obj;\n    if (Object.create) {\n        obj = Object.create(proto);\n    }\n    else {\n        var StyleCtor = function () { };\n        StyleCtor.prototype = proto;\n        obj = new StyleCtor();\n    }\n    if (properties) {\n        extend(obj, properties);\n    }\n    return obj;\n}\nexport function hasOwn(own, prop) {\n    return own.hasOwnProperty(prop);\n}\nexport function noop() { }\n","export function create(x, y) {\n    if (x == null) {\n        x = 0;\n    }\n    if (y == null) {\n        y = 0;\n    }\n    return [x, y];\n}\nexport function copy(out, v) {\n    out[0] = v[0];\n    out[1] = v[1];\n    return out;\n}\nexport function clone(v) {\n    return [v[0], v[1]];\n}\nexport function set(out, a, b) {\n    out[0] = a;\n    out[1] = b;\n    return out;\n}\nexport function add(out, v1, v2) {\n    out[0] = v1[0] + v2[0];\n    out[1] = v1[1] + v2[1];\n    return out;\n}\nexport function scaleAndAdd(out, v1, v2, a) {\n    out[0] = v1[0] + v2[0] * a;\n    out[1] = v1[1] + v2[1] * a;\n    return out;\n}\nexport function sub(out, v1, v2) {\n    out[0] = v1[0] - v2[0];\n    out[1] = v1[1] - v2[1];\n    return out;\n}\nexport function len(v) {\n    return Math.sqrt(lenSquare(v));\n}\nexport var length = len;\nexport function lenSquare(v) {\n    return v[0] * v[0] + v[1] * v[1];\n}\nexport var lengthSquare = lenSquare;\nexport function mul(out, v1, v2) {\n    out[0] = v1[0] * v2[0];\n    out[1] = v1[1] * v2[1];\n    return out;\n}\nexport function div(out, v1, v2) {\n    out[0] = v1[0] / v2[0];\n    out[1] = v1[1] / v2[1];\n    return out;\n}\nexport function dot(v1, v2) {\n    return v1[0] * v2[0] + v1[1] * v2[1];\n}\nexport function scale(out, v, s) {\n    out[0] = v[0] * s;\n    out[1] = v[1] * s;\n    return out;\n}\nexport function normalize(out, v) {\n    var d = len(v);\n    if (d === 0) {\n        out[0] = 0;\n        out[1] = 0;\n    }\n    else {\n        out[0] = v[0] / d;\n        out[1] = v[1] / d;\n    }\n    return out;\n}\nexport function distance(v1, v2) {\n    return Math.sqrt((v1[0] - v2[0]) * (v1[0] - v2[0])\n        + (v1[1] - v2[1]) * (v1[1] - v2[1]));\n}\nexport var dist = distance;\nexport function distanceSquare(v1, v2) {\n    return (v1[0] - v2[0]) * (v1[0] - v2[0])\n        + (v1[1] - v2[1]) * (v1[1] - v2[1]);\n}\nexport var distSquare = distanceSquare;\nexport function negate(out, v) {\n    out[0] = -v[0];\n    out[1] = -v[1];\n    return out;\n}\nexport function lerp(out, v1, v2, t) {\n    out[0] = v1[0] + t * (v2[0] - v1[0]);\n    out[1] = v1[1] + t * (v2[1] - v1[1]);\n    return out;\n}\nexport function applyTransform(out, v, m) {\n    var x = v[0];\n    var y = v[1];\n    out[0] = m[0] * x + m[2] * y + m[4];\n    out[1] = m[1] * x + m[3] * y + m[5];\n    return out;\n}\nexport function min(out, v1, v2) {\n    out[0] = Math.min(v1[0], v2[0]);\n    out[1] = Math.min(v1[1], v2[1]);\n    return out;\n}\nexport function max(out, v1, v2) {\n    out[0] = Math.max(v1[0], v2[0]);\n    out[1] = Math.max(v1[1], v2[1]);\n    return out;\n}\n","var Param = (function () {\n    function Param(target, e) {\n        this.target = target;\n        this.topTarget = e && e.topTarget;\n    }\n    return Param;\n}());\nvar Draggable = (function () {\n    function Draggable(handler) {\n        this.handler = handler;\n        handler.on('mousedown', this._dragStart, this);\n        handler.on('mousemove', this._drag, this);\n        handler.on('mouseup', this._dragEnd, this);\n    }\n    Draggable.prototype._dragStart = function (e) {\n        var draggingTarget = e.target;\n        while (draggingTarget && !draggingTarget.draggable) {\n            draggingTarget = draggingTarget.parent;\n        }\n        if (draggingTarget) {\n            this._draggingTarget = draggingTarget;\n            draggingTarget.dragging = true;\n            this._x = e.offsetX;\n            this._y = e.offsetY;\n            this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragstart', e.event);\n        }\n    };\n    Draggable.prototype._drag = function (e) {\n        var draggingTarget = this._draggingTarget;\n        if (draggingTarget) {\n            var x = e.offsetX;\n            var y = e.offsetY;\n            var dx = x - this._x;\n            var dy = y - this._y;\n            this._x = x;\n            this._y = y;\n            draggingTarget.drift(dx, dy, e);\n            this.handler.dispatchToElement(new Param(draggingTarget, e), 'drag', e.event);\n            var dropTarget = this.handler.findHover(x, y, draggingTarget).target;\n            var lastDropTarget = this._dropTarget;\n            this._dropTarget = dropTarget;\n            if (draggingTarget !== dropTarget) {\n                if (lastDropTarget && dropTarget !== lastDropTarget) {\n                    this.handler.dispatchToElement(new Param(lastDropTarget, e), 'dragleave', e.event);\n                }\n                if (dropTarget && dropTarget !== lastDropTarget) {\n                    this.handler.dispatchToElement(new Param(dropTarget, e), 'dragenter', e.event);\n                }\n            }\n        }\n    };\n    Draggable.prototype._dragEnd = function (e) {\n        var draggingTarget = this._draggingTarget;\n        if (draggingTarget) {\n            draggingTarget.dragging = false;\n        }\n        this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragend', e.event);\n        if (this._dropTarget) {\n            this.handler.dispatchToElement(new Param(this._dropTarget, e), 'drop', e.event);\n        }\n        this._draggingTarget = null;\n        this._dropTarget = null;\n    };\n    return Draggable;\n}());\nexport default Draggable;\n","var Eventful = (function () {\n    function Eventful(eventProcessors) {\n        if (eventProcessors) {\n            this._$eventProcessor = eventProcessors;\n        }\n    }\n    Eventful.prototype.on = function (event, query, handler, context) {\n        if (!this._$handlers) {\n            this._$handlers = {};\n        }\n        var _h = this._$handlers;\n        if (typeof query === 'function') {\n            context = handler;\n            handler = query;\n            query = null;\n        }\n        if (!handler || !event) {\n            return this;\n        }\n        var eventProcessor = this._$eventProcessor;\n        if (query != null && eventProcessor && eventProcessor.normalizeQuery) {\n            query = eventProcessor.normalizeQuery(query);\n        }\n        if (!_h[event]) {\n            _h[event] = [];\n        }\n        for (var i = 0; i < _h[event].length; i++) {\n            if (_h[event][i].h === handler) {\n                return this;\n            }\n        }\n        var wrap = {\n            h: handler,\n            query: query,\n            ctx: (context || this),\n            callAtLast: handler.zrEventfulCallAtLast\n        };\n        var lastIndex = _h[event].length - 1;\n        var lastWrap = _h[event][lastIndex];\n        (lastWrap && lastWrap.callAtLast)\n            ? _h[event].splice(lastIndex, 0, wrap)\n            : _h[event].push(wrap);\n        return this;\n    };\n    Eventful.prototype.isSilent = function (eventName) {\n        var _h = this._$handlers;\n        return !_h || !_h[eventName] || !_h[eventName].length;\n    };\n    Eventful.prototype.off = function (eventType, handler) {\n        var _h = this._$handlers;\n        if (!_h) {\n            return this;\n        }\n        if (!eventType) {\n            this._$handlers = {};\n            return this;\n        }\n        if (handler) {\n            if (_h[eventType]) {\n                var newList = [];\n                for (var i = 0, l = _h[eventType].length; i < l; i++) {\n                    if (_h[eventType][i].h !== handler) {\n                        newList.push(_h[eventType][i]);\n                    }\n                }\n                _h[eventType] = newList;\n            }\n            if (_h[eventType] && _h[eventType].length === 0) {\n                delete _h[eventType];\n            }\n        }\n        else {\n            delete _h[eventType];\n        }\n        return this;\n    };\n    Eventful.prototype.trigger = function (eventType) {\n        var args = [];\n        for (var _i = 1; _i < arguments.length; _i++) {\n            args[_i - 1] = arguments[_i];\n        }\n        if (!this._$handlers) {\n            return this;\n        }\n        var _h = this._$handlers[eventType];\n        var eventProcessor = this._$eventProcessor;\n        if (_h) {\n            var argLen = args.length;\n            var len = _h.length;\n            for (var i = 0; i < len; i++) {\n                var hItem = _h[i];\n                if (eventProcessor\n                    && eventProcessor.filter\n                    && hItem.query != null\n                    && !eventProcessor.filter(eventType, hItem.query)) {\n                    continue;\n                }\n                switch (argLen) {\n                    case 0:\n                        hItem.h.call(hItem.ctx);\n                        break;\n                    case 1:\n                        hItem.h.call(hItem.ctx, args[0]);\n                        break;\n                    case 2:\n                        hItem.h.call(hItem.ctx, args[0], args[1]);\n                        break;\n                    default:\n                        hItem.h.apply(hItem.ctx, args);\n                        break;\n                }\n            }\n        }\n        eventProcessor && eventProcessor.afterTrigger\n            && eventProcessor.afterTrigger(eventType);\n        return this;\n    };\n    Eventful.prototype.triggerWithContext = function (type) {\n        if (!this._$handlers) {\n            return this;\n        }\n        var _h = this._$handlers[type];\n        var eventProcessor = this._$eventProcessor;\n        if (_h) {\n            var args = arguments;\n            var argLen = args.length;\n            var ctx = args[argLen - 1];\n            var len = _h.length;\n            for (var i = 0; i < len; i++) {\n                var hItem = _h[i];\n                if (eventProcessor\n                    && eventProcessor.filter\n                    && hItem.query != null\n                    && !eventProcessor.filter(type, hItem.query)) {\n                    continue;\n                }\n                switch (argLen) {\n                    case 0:\n                        hItem.h.call(ctx);\n                        break;\n                    case 1:\n                        hItem.h.call(ctx, args[0]);\n                        break;\n                    case 2:\n                        hItem.h.call(ctx, args[0], args[1]);\n                        break;\n                    default:\n                        hItem.h.apply(ctx, args.slice(1, argLen - 1));\n                        break;\n                }\n            }\n        }\n        eventProcessor && eventProcessor.afterTrigger\n            && eventProcessor.afterTrigger(type);\n        return this;\n    };\n    return Eventful;\n}());\nexport default Eventful;\n","var LN2 = Math.log(2);\nfunction determinant(rows, rank, rowStart, rowMask, colMask, detCache) {\n    var cacheKey = rowMask + '-' + colMask;\n    var fullRank = rows.length;\n    if (detCache.hasOwnProperty(cacheKey)) {\n        return detCache[cacheKey];\n    }\n    if (rank === 1) {\n        var colStart = Math.round(Math.log(((1 << fullRank) - 1) & ~colMask) / LN2);\n        return rows[rowStart][colStart];\n    }\n    var subRowMask = rowMask | (1 << rowStart);\n    var subRowStart = rowStart + 1;\n    while (rowMask & (1 << subRowStart)) {\n        subRowStart++;\n    }\n    var sum = 0;\n    for (var j = 0, colLocalIdx = 0; j < fullRank; j++) {\n        var colTag = 1 << j;\n        if (!(colTag & colMask)) {\n            sum += (colLocalIdx % 2 ? -1 : 1) * rows[rowStart][j]\n                * determinant(rows, rank - 1, subRowStart, subRowMask, colMask | colTag, detCache);\n            colLocalIdx++;\n        }\n    }\n    detCache[cacheKey] = sum;\n    return sum;\n}\nexport function buildTransformer(src, dest) {\n    var mA = [\n        [src[0], src[1], 1, 0, 0, 0, -dest[0] * src[0], -dest[0] * src[1]],\n        [0, 0, 0, src[0], src[1], 1, -dest[1] * src[0], -dest[1] * src[1]],\n        [src[2], src[3], 1, 0, 0, 0, -dest[2] * src[2], -dest[2] * src[3]],\n        [0, 0, 0, src[2], src[3], 1, -dest[3] * src[2], -dest[3] * src[3]],\n        [src[4], src[5], 1, 0, 0, 0, -dest[4] * src[4], -dest[4] * src[5]],\n        [0, 0, 0, src[4], src[5], 1, -dest[5] * src[4], -dest[5] * src[5]],\n        [src[6], src[7], 1, 0, 0, 0, -dest[6] * src[6], -dest[6] * src[7]],\n        [0, 0, 0, src[6], src[7], 1, -dest[7] * src[6], -dest[7] * src[7]]\n    ];\n    var detCache = {};\n    var det = determinant(mA, 8, 0, 0, 0, detCache);\n    if (det === 0) {\n        return;\n    }\n    var vh = [];\n    for (var i = 0; i < 8; i++) {\n        for (var j = 0; j < 8; j++) {\n            vh[j] == null && (vh[j] = 0);\n            vh[j] += ((i + j) % 2 ? -1 : 1)\n                * determinant(mA, 7, i === 0 ? 1 : 0, 1 << i, 1 << j, detCache)\n                / det * dest[i];\n        }\n    }\n    return function (out, srcPointX, srcPointY) {\n        var pk = srcPointX * vh[6] + srcPointY * vh[7] + 1;\n        out[0] = (srcPointX * vh[0] + srcPointY * vh[1] + vh[2]) / pk;\n        out[1] = (srcPointX * vh[3] + srcPointY * vh[4] + vh[5]) / pk;\n    };\n}\n","import env from './env';\nimport { buildTransformer } from './fourPointsTransform';\nvar EVENT_SAVED_PROP = '___zrEVENTSAVED';\nvar _calcOut = [];\nexport function transformLocalCoord(out, elFrom, elTarget, inX, inY) {\n    return transformCoordWithViewport(_calcOut, elFrom, inX, inY, true)\n        && transformCoordWithViewport(out, elTarget, _calcOut[0], _calcOut[1]);\n}\nexport function transformCoordWithViewport(out, el, inX, inY, inverse) {\n    if (el.getBoundingClientRect && env.domSupported && !isCanvasEl(el)) {\n        var saved = el[EVENT_SAVED_PROP] || (el[EVENT_SAVED_PROP] = {});\n        var markers = prepareCoordMarkers(el, saved);\n        var transformer = preparePointerTransformer(markers, saved, inverse);\n        if (transformer) {\n            transformer(out, inX, inY);\n            return true;\n        }\n    }\n    return false;\n}\nfunction prepareCoordMarkers(el, saved) {\n    var markers = saved.markers;\n    if (markers) {\n        return markers;\n    }\n    markers = saved.markers = [];\n    var propLR = ['left', 'right'];\n    var propTB = ['top', 'bottom'];\n    for (var i = 0; i < 4; i++) {\n        var marker = document.createElement('div');\n        var stl = marker.style;\n        var idxLR = i % 2;\n        var idxTB = (i >> 1) % 2;\n        stl.cssText = [\n            'position: absolute',\n            'visibility: hidden',\n            'padding: 0',\n            'margin: 0',\n            'border-width: 0',\n            'user-select: none',\n            'width:0',\n            'height:0',\n            propLR[idxLR] + ':0',\n            propTB[idxTB] + ':0',\n            propLR[1 - idxLR] + ':auto',\n            propTB[1 - idxTB] + ':auto',\n            ''\n        ].join('!important;');\n        el.appendChild(marker);\n        markers.push(marker);\n    }\n    return markers;\n}\nfunction preparePointerTransformer(markers, saved, inverse) {\n    var transformerName = inverse ? 'invTrans' : 'trans';\n    var transformer = saved[transformerName];\n    var oldSrcCoords = saved.srcCoords;\n    var srcCoords = [];\n    var destCoords = [];\n    var oldCoordTheSame = true;\n    for (var i = 0; i < 4; i++) {\n        var rect = markers[i].getBoundingClientRect();\n        var ii = 2 * i;\n        var x = rect.left;\n        var y = rect.top;\n        srcCoords.push(x, y);\n        oldCoordTheSame = oldCoordTheSame && oldSrcCoords && x === oldSrcCoords[ii] && y === oldSrcCoords[ii + 1];\n        destCoords.push(markers[i].offsetLeft, markers[i].offsetTop);\n    }\n    return (oldCoordTheSame && transformer)\n        ? transformer\n        : (saved.srcCoords = srcCoords,\n            saved[transformerName] = inverse\n                ? buildTransformer(destCoords, srcCoords)\n                : buildTransformer(srcCoords, destCoords));\n}\nexport function isCanvasEl(el) {\n    return el.nodeName.toUpperCase() === 'CANVAS';\n}\n","import Eventful from './Eventful';\nimport env from './env';\nimport { isCanvasEl, transformCoordWithViewport } from './dom';\nvar isDomLevel2 = (typeof window !== 'undefined') && !!window.addEventListener;\nvar MOUSE_EVENT_REG = /^(?:mouse|pointer|contextmenu|drag|drop)|click/;\nvar _calcOut = [];\nexport function clientToLocal(el, e, out, calculate) {\n    out = out || {};\n    if (calculate || !env.canvasSupported) {\n        calculateZrXY(el, e, out);\n    }\n    else if (env.browser.firefox\n        && e.layerX != null\n        && e.layerX !== e.offsetX) {\n        out.zrX = e.layerX;\n        out.zrY = e.layerY;\n    }\n    else if (e.offsetX != null) {\n        out.zrX = e.offsetX;\n        out.zrY = e.offsetY;\n    }\n    else {\n        calculateZrXY(el, e, out);\n    }\n    return out;\n}\nfunction calculateZrXY(el, e, out) {\n    if (env.domSupported && el.getBoundingClientRect) {\n        var ex = e.clientX;\n        var ey = e.clientY;\n        if (isCanvasEl(el)) {\n            var box = el.getBoundingClientRect();\n            out.zrX = ex - box.left;\n            out.zrY = ey - box.top;\n            return;\n        }\n        else {\n            if (transformCoordWithViewport(_calcOut, el, ex, ey)) {\n                out.zrX = _calcOut[0];\n                out.zrY = _calcOut[1];\n                return;\n            }\n        }\n    }\n    out.zrX = out.zrY = 0;\n}\nexport function getNativeEvent(e) {\n    return e\n        || window.event;\n}\nexport function normalizeEvent(el, e, calculate) {\n    e = getNativeEvent(e);\n    if (e.zrX != null) {\n        return e;\n    }\n    var eventType = e.type;\n    var isTouch = eventType && eventType.indexOf('touch') >= 0;\n    if (!isTouch) {\n        clientToLocal(el, e, e, calculate);\n        var wheelDelta = getWheelDeltaMayPolyfill(e);\n        e.zrDelta = wheelDelta ? wheelDelta / 120 : -(e.detail || 0) / 3;\n    }\n    else {\n        var touch = eventType !== 'touchend'\n            ? e.targetTouches[0]\n            : e.changedTouches[0];\n        touch && clientToLocal(el, touch, e, calculate);\n    }\n    var button = e.button;\n    if (e.which == null && button !== undefined && MOUSE_EVENT_REG.test(e.type)) {\n        e.which = (button & 1 ? 1 : (button & 2 ? 3 : (button & 4 ? 2 : 0)));\n    }\n    return e;\n}\nfunction getWheelDeltaMayPolyfill(e) {\n    var rawWheelDelta = e.wheelDelta;\n    if (rawWheelDelta) {\n        return rawWheelDelta;\n    }\n    var deltaX = e.deltaX;\n    var deltaY = e.deltaY;\n    if (deltaX == null || deltaY == null) {\n        return rawWheelDelta;\n    }\n    var delta = deltaY !== 0 ? Math.abs(deltaY) : Math.abs(deltaX);\n    var sign = deltaY > 0 ? -1\n        : deltaY < 0 ? 1\n            : deltaX > 0 ? -1\n                : 1;\n    return 3 * delta * sign;\n}\nexport function addEventListener(el, name, handler, opt) {\n    if (isDomLevel2) {\n        el.addEventListener(name, handler, opt);\n    }\n    else {\n        el.attachEvent('on' + name, handler);\n    }\n}\nexport function removeEventListener(el, name, handler, opt) {\n    if (isDomLevel2) {\n        el.removeEventListener(name, handler, opt);\n    }\n    else {\n        el.detachEvent('on' + name, handler);\n    }\n}\nexport var stop = isDomLevel2\n    ? function (e) {\n        e.preventDefault();\n        e.stopPropagation();\n        e.cancelBubble = true;\n    }\n    : function (e) {\n        e.returnValue = false;\n        e.cancelBubble = true;\n    };\nexport function isMiddleOrRightButtonOnMouseUpDown(e) {\n    return e.which === 2 || e.which === 3;\n}\nexport function notLeftMouse(e) {\n    return e.which > 1;\n}\nexport { Eventful as Dispatcher };\n","import * as eventUtil from './event';\nvar GestureMgr = (function () {\n    function GestureMgr() {\n        this._track = [];\n    }\n    GestureMgr.prototype.recognize = function (event, target, root) {\n        this._doTrack(event, target, root);\n        return this._recognize(event);\n    };\n    GestureMgr.prototype.clear = function () {\n        this._track.length = 0;\n        return this;\n    };\n    GestureMgr.prototype._doTrack = function (event, target, root) {\n        var touches = event.touches;\n        if (!touches) {\n            return;\n        }\n        var trackItem = {\n            points: [],\n            touches: [],\n            target: target,\n            event: event\n        };\n        for (var i = 0, len = touches.length; i < len; i++) {\n            var touch = touches[i];\n            var pos = eventUtil.clientToLocal(root, touch, {});\n            trackItem.points.push([pos.zrX, pos.zrY]);\n            trackItem.touches.push(touch);\n        }\n        this._track.push(trackItem);\n    };\n    GestureMgr.prototype._recognize = function (event) {\n        for (var eventName in recognizers) {\n            if (recognizers.hasOwnProperty(eventName)) {\n                var gestureInfo = recognizers[eventName](this._track, event);\n                if (gestureInfo) {\n                    return gestureInfo;\n                }\n            }\n        }\n    };\n    return GestureMgr;\n}());\nexport { GestureMgr };\nfunction dist(pointPair) {\n    var dx = pointPair[1][0] - pointPair[0][0];\n    var dy = pointPair[1][1] - pointPair[0][1];\n    return Math.sqrt(dx * dx + dy * dy);\n}\nfunction center(pointPair) {\n    return [\n        (pointPair[0][0] + pointPair[1][0]) / 2,\n        (pointPair[0][1] + pointPair[1][1]) / 2\n    ];\n}\nvar recognizers = {\n    pinch: function (tracks, event) {\n        var trackLen = tracks.length;\n        if (!trackLen) {\n            return;\n        }\n        var pinchEnd = (tracks[trackLen - 1] || {}).points;\n        var pinchPre = (tracks[trackLen - 2] || {}).points || pinchEnd;\n        if (pinchPre\n            && pinchPre.length > 1\n            && pinchEnd\n            && pinchEnd.length > 1) {\n            var pinchScale = dist(pinchEnd) / dist(pinchPre);\n            !isFinite(pinchScale) && (pinchScale = 1);\n            event.pinchScale = pinchScale;\n            var pinchCenter = center(pinchEnd);\n            event.pinchX = pinchCenter[0];\n            event.pinchY = pinchCenter[1];\n            return {\n                type: 'pinch',\n                target: tracks[0].target,\n                event: event\n            };\n        }\n    }\n};\n","import { __extends } from \"tslib\";\nimport * as util from './core/util';\nimport * as vec2 from './core/vector';\nimport Draggable from './mixin/Draggable';\nimport Eventful from './core/Eventful';\nimport * as eventTool from './core/event';\nimport { GestureMgr } from './core/GestureMgr';\nvar SILENT = 'silent';\nfunction makeEventPacket(eveType, targetInfo, event) {\n    return {\n        type: eveType,\n        event: event,\n        target: targetInfo.target,\n        topTarget: targetInfo.topTarget,\n        cancelBubble: false,\n        offsetX: event.zrX,\n        offsetY: event.zrY,\n        gestureEvent: event.gestureEvent,\n        pinchX: event.pinchX,\n        pinchY: event.pinchY,\n        pinchScale: event.pinchScale,\n        wheelDelta: event.zrDelta,\n        zrByTouch: event.zrByTouch,\n        which: event.which,\n        stop: stopEvent\n    };\n}\nfunction stopEvent() {\n    eventTool.stop(this.event);\n}\nvar EmptyProxy = (function (_super) {\n    __extends(EmptyProxy, _super);\n    function EmptyProxy() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.handler = null;\n        return _this;\n    }\n    EmptyProxy.prototype.dispose = function () { };\n    EmptyProxy.prototype.setCursor = function () { };\n    return EmptyProxy;\n}(Eventful));\nvar HoveredResult = (function () {\n    function HoveredResult(x, y) {\n        this.x = x;\n        this.y = y;\n    }\n    return HoveredResult;\n}());\nvar handlerNames = [\n    'click', 'dblclick', 'mousewheel', 'mouseout',\n    'mouseup', 'mousedown', 'mousemove', 'contextmenu'\n];\nvar Handler = (function (_super) {\n    __extends(Handler, _super);\n    function Handler(storage, painter, proxy, painterRoot) {\n        var _this = _super.call(this) || this;\n        _this._hovered = new HoveredResult(0, 0);\n        _this.storage = storage;\n        _this.painter = painter;\n        _this.painterRoot = painterRoot;\n        proxy = proxy || new EmptyProxy();\n        _this.proxy = null;\n        _this.setHandlerProxy(proxy);\n        _this._draggingMgr = new Draggable(_this);\n        return _this;\n    }\n    Handler.prototype.setHandlerProxy = function (proxy) {\n        if (this.proxy) {\n            this.proxy.dispose();\n        }\n        if (proxy) {\n            util.each(handlerNames, function (name) {\n                proxy.on && proxy.on(name, this[name], this);\n            }, this);\n            proxy.handler = this;\n        }\n        this.proxy = proxy;\n    };\n    Handler.prototype.mousemove = function (event) {\n        var x = event.zrX;\n        var y = event.zrY;\n        var isOutside = isOutsideBoundary(this, x, y);\n        var lastHovered = this._hovered;\n        var lastHoveredTarget = lastHovered.target;\n        if (lastHoveredTarget && !lastHoveredTarget.__zr) {\n            lastHovered = this.findHover(lastHovered.x, lastHovered.y);\n            lastHoveredTarget = lastHovered.target;\n        }\n        var hovered = this._hovered = isOutside ? new HoveredResult(x, y) : this.findHover(x, y);\n        var hoveredTarget = hovered.target;\n        var proxy = this.proxy;\n        proxy.setCursor && proxy.setCursor(hoveredTarget ? hoveredTarget.cursor : 'default');\n        if (lastHoveredTarget && hoveredTarget !== lastHoveredTarget) {\n            this.dispatchToElement(lastHovered, 'mouseout', event);\n        }\n        this.dispatchToElement(hovered, 'mousemove', event);\n        if (hoveredTarget && hoveredTarget !== lastHoveredTarget) {\n            this.dispatchToElement(hovered, 'mouseover', event);\n        }\n    };\n    Handler.prototype.mouseout = function (event) {\n        var eventControl = event.zrEventControl;\n        if (eventControl !== 'only_globalout') {\n            this.dispatchToElement(this._hovered, 'mouseout', event);\n        }\n        if (eventControl !== 'no_globalout') {\n            this.trigger('globalout', { type: 'globalout', event: event });\n        }\n    };\n    Handler.prototype.resize = function () {\n        this._hovered = new HoveredResult(0, 0);\n    };\n    Handler.prototype.dispatch = function (eventName, eventArgs) {\n        var handler = this[eventName];\n        handler && handler.call(this, eventArgs);\n    };\n    Handler.prototype.dispose = function () {\n        this.proxy.dispose();\n        this.storage = null;\n        this.proxy = null;\n        this.painter = null;\n    };\n    Handler.prototype.setCursorStyle = function (cursorStyle) {\n        var proxy = this.proxy;\n        proxy.setCursor && proxy.setCursor(cursorStyle);\n    };\n    Handler.prototype.dispatchToElement = function (targetInfo, eventName, event) {\n        targetInfo = targetInfo || {};\n        var el = targetInfo.target;\n        if (el && el.silent) {\n            return;\n        }\n        var eventKey = ('on' + eventName);\n        var eventPacket = makeEventPacket(eventName, targetInfo, event);\n        while (el) {\n            el[eventKey]\n                && (eventPacket.cancelBubble = !!el[eventKey].call(el, eventPacket));\n            el.trigger(eventName, eventPacket);\n            el = el.__hostTarget ? el.__hostTarget : el.parent;\n            if (eventPacket.cancelBubble) {\n                break;\n            }\n        }\n        if (!eventPacket.cancelBubble) {\n            this.trigger(eventName, eventPacket);\n            if (this.painter && this.painter.eachOtherLayer) {\n                this.painter.eachOtherLayer(function (layer) {\n                    if (typeof (layer[eventKey]) === 'function') {\n                        layer[eventKey].call(layer, eventPacket);\n                    }\n                    if (layer.trigger) {\n                        layer.trigger(eventName, eventPacket);\n                    }\n                });\n            }\n        }\n    };\n    Handler.prototype.findHover = function (x, y, exclude) {\n        var list = this.storage.getDisplayList();\n        var out = new HoveredResult(x, y);\n        for (var i = list.length - 1; i >= 0; i--) {\n            var hoverCheckResult = void 0;\n            if (list[i] !== exclude\n                && !list[i].ignore\n                && (hoverCheckResult = isHover(list[i], x, y))) {\n                !out.topTarget && (out.topTarget = list[i]);\n                if (hoverCheckResult !== SILENT) {\n                    out.target = list[i];\n                    break;\n                }\n            }\n        }\n        return out;\n    };\n    Handler.prototype.processGesture = function (event, stage) {\n        if (!this._gestureMgr) {\n            this._gestureMgr = new GestureMgr();\n        }\n        var gestureMgr = this._gestureMgr;\n        stage === 'start' && gestureMgr.clear();\n        var gestureInfo = gestureMgr.recognize(event, this.findHover(event.zrX, event.zrY, null).target, this.proxy.dom);\n        stage === 'end' && gestureMgr.clear();\n        if (gestureInfo) {\n            var type = gestureInfo.type;\n            event.gestureEvent = type;\n            var res = new HoveredResult();\n            res.target = gestureInfo.target;\n            this.dispatchToElement(res, type, gestureInfo.event);\n        }\n    };\n    return Handler;\n}(Eventful));\nutil.each(['click', 'mousedown', 'mouseup', 'mousewheel', 'dblclick', 'contextmenu'], function (name) {\n    Handler.prototype[name] = function (event) {\n        var x = event.zrX;\n        var y = event.zrY;\n        var isOutside = isOutsideBoundary(this, x, y);\n        var hovered;\n        var hoveredTarget;\n        if (name !== 'mouseup' || !isOutside) {\n            hovered = this.findHover(x, y);\n            hoveredTarget = hovered.target;\n        }\n        if (name === 'mousedown') {\n            this._downEl = hoveredTarget;\n            this._downPoint = [event.zrX, event.zrY];\n            this._upEl = hoveredTarget;\n        }\n        else if (name === 'mouseup') {\n            this._upEl = hoveredTarget;\n        }\n        else if (name === 'click') {\n            if (this._downEl !== this._upEl\n                || !this._downPoint\n                || vec2.dist(this._downPoint, [event.zrX, event.zrY]) > 4) {\n                return;\n            }\n            this._downPoint = null;\n        }\n        this.dispatchToElement(hovered, name, event);\n    };\n});\nfunction isHover(displayable, x, y) {\n    if (displayable[displayable.rectHover ? 'rectContain' : 'contain'](x, y)) {\n        var el = displayable;\n        var isSilent = void 0;\n        var ignoreClip = false;\n        while (el) {\n            if (el.ignoreClip) {\n                ignoreClip = true;\n            }\n            if (!ignoreClip) {\n                var clipPath = el.getClipPath();\n                if (clipPath && !clipPath.contain(x, y)) {\n                    return false;\n                }\n                if (el.silent) {\n                    isSilent = true;\n                }\n            }\n            var hostEl = el.__hostTarget;\n            el = hostEl ? hostEl : el.parent;\n        }\n        return isSilent ? SILENT : true;\n    }\n    return false;\n}\nfunction isOutsideBoundary(handlerInstance, x, y) {\n    var painter = handlerInstance.painter;\n    return x < 0 || x > painter.getWidth() || y < 0 || y > painter.getHeight();\n}\nexport default Handler;\n","export function create() {\n    return [1, 0, 0, 1, 0, 0];\n}\nexport function identity(out) {\n    out[0] = 1;\n    out[1] = 0;\n    out[2] = 0;\n    out[3] = 1;\n    out[4] = 0;\n    out[5] = 0;\n    return out;\n}\nexport function copy(out, m) {\n    out[0] = m[0];\n    out[1] = m[1];\n    out[2] = m[2];\n    out[3] = m[3];\n    out[4] = m[4];\n    out[5] = m[5];\n    return out;\n}\nexport function mul(out, m1, m2) {\n    var out0 = m1[0] * m2[0] + m1[2] * m2[1];\n    var out1 = m1[1] * m2[0] + m1[3] * m2[1];\n    var out2 = m1[0] * m2[2] + m1[2] * m2[3];\n    var out3 = m1[1] * m2[2] + m1[3] * m2[3];\n    var out4 = m1[0] * m2[4] + m1[2] * m2[5] + m1[4];\n    var out5 = m1[1] * m2[4] + m1[3] * m2[5] + m1[5];\n    out[0] = out0;\n    out[1] = out1;\n    out[2] = out2;\n    out[3] = out3;\n    out[4] = out4;\n    out[5] = out5;\n    return out;\n}\nexport function translate(out, a, v) {\n    out[0] = a[0];\n    out[1] = a[1];\n    out[2] = a[2];\n    out[3] = a[3];\n    out[4] = a[4] + v[0];\n    out[5] = a[5] + v[1];\n    return out;\n}\nexport function rotate(out, a, rad) {\n    var aa = a[0];\n    var ac = a[2];\n    var atx = a[4];\n    var ab = a[1];\n    var ad = a[3];\n    var aty = a[5];\n    var st = Math.sin(rad);\n    var ct = Math.cos(rad);\n    out[0] = aa * ct + ab * st;\n    out[1] = -aa * st + ab * ct;\n    out[2] = ac * ct + ad * st;\n    out[3] = -ac * st + ct * ad;\n    out[4] = ct * atx + st * aty;\n    out[5] = ct * aty - st * atx;\n    return out;\n}\nexport function scale(out, a, v) {\n    var vx = v[0];\n    var vy = v[1];\n    out[0] = a[0] * vx;\n    out[1] = a[1] * vy;\n    out[2] = a[2] * vx;\n    out[3] = a[3] * vy;\n    out[4] = a[4] * vx;\n    out[5] = a[5] * vy;\n    return out;\n}\nexport function invert(out, a) {\n    var aa = a[0];\n    var ac = a[2];\n    var atx = a[4];\n    var ab = a[1];\n    var ad = a[3];\n    var aty = a[5];\n    var det = aa * ad - ab * ac;\n    if (!det) {\n        return null;\n    }\n    det = 1.0 / det;\n    out[0] = ad * det;\n    out[1] = -ab * det;\n    out[2] = -ac * det;\n    out[3] = aa * det;\n    out[4] = (ac * aty - ad * atx) * det;\n    out[5] = (ab * atx - aa * aty) * det;\n    return out;\n}\nexport function clone(a) {\n    var b = create();\n    copy(b, a);\n    return b;\n}\n","import * as matrix from './matrix';\nimport * as vector from './vector';\nvar mIdentity = matrix.identity;\nvar EPSILON = 5e-5;\nfunction isNotAroundZero(val) {\n    return val > EPSILON || val < -EPSILON;\n}\nvar scaleTmp = [];\nvar tmpTransform = [];\nvar originTransform = matrix.create();\nvar abs = Math.abs;\nvar Transformable = (function () {\n    function Transformable() {\n    }\n    Transformable.prototype.setPosition = function (arr) {\n        this.x = arr[0];\n        this.y = arr[1];\n    };\n    Transformable.prototype.setScale = function (arr) {\n        this.scaleX = arr[0];\n        this.scaleY = arr[1];\n    };\n    Transformable.prototype.setOrigin = function (arr) {\n        this.originX = arr[0];\n        this.originY = arr[1];\n    };\n    Transformable.prototype.needLocalTransform = function () {\n        return isNotAroundZero(this.rotation)\n            || isNotAroundZero(this.x)\n            || isNotAroundZero(this.y)\n            || isNotAroundZero(this.scaleX - 1)\n            || isNotAroundZero(this.scaleY - 1);\n    };\n    Transformable.prototype.updateTransform = function () {\n        var parent = this.parent;\n        var parentHasTransform = parent && parent.transform;\n        var needLocalTransform = this.needLocalTransform();\n        var m = this.transform;\n        if (!(needLocalTransform || parentHasTransform)) {\n            m && mIdentity(m);\n            return;\n        }\n        m = m || matrix.create();\n        if (needLocalTransform) {\n            this.getLocalTransform(m);\n        }\n        else {\n            mIdentity(m);\n        }\n        if (parentHasTransform) {\n            if (needLocalTransform) {\n                matrix.mul(m, parent.transform, m);\n            }\n            else {\n                matrix.copy(m, parent.transform);\n            }\n        }\n        this.transform = m;\n        this._resolveGlobalScaleRatio(m);\n    };\n    Transformable.prototype._resolveGlobalScaleRatio = function (m) {\n        var globalScaleRatio = this.globalScaleRatio;\n        if (globalScaleRatio != null && globalScaleRatio !== 1) {\n            this.getGlobalScale(scaleTmp);\n            var relX = scaleTmp[0] < 0 ? -1 : 1;\n            var relY = scaleTmp[1] < 0 ? -1 : 1;\n            var sx = ((scaleTmp[0] - relX) * globalScaleRatio + relX) / scaleTmp[0] || 0;\n            var sy = ((scaleTmp[1] - relY) * globalScaleRatio + relY) / scaleTmp[1] || 0;\n            m[0] *= sx;\n            m[1] *= sx;\n            m[2] *= sy;\n            m[3] *= sy;\n        }\n        this.invTransform = this.invTransform || matrix.create();\n        matrix.invert(this.invTransform, m);\n    };\n    Transformable.prototype.getLocalTransform = function (m) {\n        return Transformable.getLocalTransform(this, m);\n    };\n    Transformable.prototype.getComputedTransform = function () {\n        var transformNode = this;\n        var ancestors = [];\n        while (transformNode) {\n            ancestors.push(transformNode);\n            transformNode = transformNode.parent;\n        }\n        while (transformNode = ancestors.pop()) {\n            transformNode.updateTransform();\n        }\n        return this.transform;\n    };\n    Transformable.prototype.setLocalTransform = function (m) {\n        if (!m) {\n            return;\n        }\n        var sx = m[0] * m[0] + m[1] * m[1];\n        var sy = m[2] * m[2] + m[3] * m[3];\n        if (isNotAroundZero(sx - 1)) {\n            sx = Math.sqrt(sx);\n        }\n        if (isNotAroundZero(sy - 1)) {\n            sy = Math.sqrt(sy);\n        }\n        if (m[0] < 0) {\n            sx = -sx;\n        }\n        if (m[3] < 0) {\n            sy = -sy;\n        }\n        this.rotation = Math.atan2(-m[1] / sy, m[0] / sx);\n        if (sx < 0 && sy < 0) {\n            this.rotation += Math.PI;\n            sx = -sx;\n            sy = -sy;\n        }\n        this.x = m[4];\n        this.y = m[5];\n        this.scaleX = sx;\n        this.scaleY = sy;\n    };\n    Transformable.prototype.decomposeTransform = function () {\n        if (!this.transform) {\n            return;\n        }\n        var parent = this.parent;\n        var m = this.transform;\n        if (parent && parent.transform) {\n            matrix.mul(tmpTransform, parent.invTransform, m);\n            m = tmpTransform;\n        }\n        var ox = this.originX;\n        var oy = this.originY;\n        if (ox || oy) {\n            originTransform[4] = ox;\n            originTransform[5] = oy;\n            matrix.mul(tmpTransform, m, originTransform);\n            tmpTransform[4] -= ox;\n            tmpTransform[5] -= oy;\n            m = tmpTransform;\n        }\n        this.setLocalTransform(m);\n    };\n    Transformable.prototype.getGlobalScale = function (out) {\n        var m = this.transform;\n        out = out || [];\n        if (!m) {\n            out[0] = 1;\n            out[1] = 1;\n            return out;\n        }\n        out[0] = Math.sqrt(m[0] * m[0] + m[1] * m[1]);\n        out[1] = Math.sqrt(m[2] * m[2] + m[3] * m[3]);\n        if (m[0] < 0) {\n            out[0] = -out[0];\n        }\n        if (m[3] < 0) {\n            out[1] = -out[1];\n        }\n        return out;\n    };\n    Transformable.prototype.transformCoordToLocal = function (x, y) {\n        var v2 = [x, y];\n        var invTransform = this.invTransform;\n        if (invTransform) {\n            vector.applyTransform(v2, v2, invTransform);\n        }\n        return v2;\n    };\n    Transformable.prototype.transformCoordToGlobal = function (x, y) {\n        var v2 = [x, y];\n        var transform = this.transform;\n        if (transform) {\n            vector.applyTransform(v2, v2, transform);\n        }\n        return v2;\n    };\n    Transformable.prototype.getLineScale = function () {\n        var m = this.transform;\n        return m && abs(m[0] - 1) > 1e-10 && abs(m[3] - 1) > 1e-10\n            ? Math.sqrt(abs(m[0] * m[3] - m[2] * m[1]))\n            : 1;\n    };\n    Transformable.getLocalTransform = function (target, m) {\n        m = m || [];\n        mIdentity(m);\n        var ox = target.originX || 0;\n        var oy = target.originY || 0;\n        var sx = target.scaleX;\n        var sy = target.scaleY;\n        var rotation = target.rotation || 0;\n        var x = target.x;\n        var y = target.y;\n        m[4] -= ox;\n        m[5] -= oy;\n        m[0] *= sx;\n        m[1] *= sy;\n        m[2] *= sx;\n        m[3] *= sy;\n        m[4] *= sx;\n        m[5] *= sy;\n        if (rotation) {\n            matrix.rotate(m, m, rotation);\n        }\n        m[4] += ox;\n        m[5] += oy;\n        m[4] += x;\n        m[5] += y;\n        return m;\n    };\n    Transformable.initDefaultProps = (function () {\n        var proto = Transformable.prototype;\n        proto.x = 0;\n        proto.y = 0;\n        proto.scaleX = 1;\n        proto.scaleY = 1;\n        proto.originX = 0;\n        proto.originY = 0;\n        proto.rotation = 0;\n        proto.globalScaleRatio = 1;\n    })();\n    return Transformable;\n}());\n;\nexport default Transformable;\n","var easing = {\n    linear: function (k) {\n        return k;\n    },\n    quadraticIn: function (k) {\n        return k * k;\n    },\n    quadraticOut: function (k) {\n        return k * (2 - k);\n    },\n    quadraticInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return 0.5 * k * k;\n        }\n        return -0.5 * (--k * (k - 2) - 1);\n    },\n    cubicIn: function (k) {\n        return k * k * k;\n    },\n    cubicOut: function (k) {\n        return --k * k * k + 1;\n    },\n    cubicInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return 0.5 * k * k * k;\n        }\n        return 0.5 * ((k -= 2) * k * k + 2);\n    },\n    quarticIn: function (k) {\n        return k * k * k * k;\n    },\n    quarticOut: function (k) {\n        return 1 - (--k * k * k * k);\n    },\n    quarticInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return 0.5 * k * k * k * k;\n        }\n        return -0.5 * ((k -= 2) * k * k * k - 2);\n    },\n    quinticIn: function (k) {\n        return k * k * k * k * k;\n    },\n    quinticOut: function (k) {\n        return --k * k * k * k * k + 1;\n    },\n    quinticInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return 0.5 * k * k * k * k * k;\n        }\n        return 0.5 * ((k -= 2) * k * k * k * k + 2);\n    },\n    sinusoidalIn: function (k) {\n        return 1 - Math.cos(k * Math.PI / 2);\n    },\n    sinusoidalOut: function (k) {\n        return Math.sin(k * Math.PI / 2);\n    },\n    sinusoidalInOut: function (k) {\n        return 0.5 * (1 - Math.cos(Math.PI * k));\n    },\n    exponentialIn: function (k) {\n        return k === 0 ? 0 : Math.pow(1024, k - 1);\n    },\n    exponentialOut: function (k) {\n        return k === 1 ? 1 : 1 - Math.pow(2, -10 * k);\n    },\n    exponentialInOut: function (k) {\n        if (k === 0) {\n            return 0;\n        }\n        if (k === 1) {\n            return 1;\n        }\n        if ((k *= 2) < 1) {\n            return 0.5 * Math.pow(1024, k - 1);\n        }\n        return 0.5 * (-Math.pow(2, -10 * (k - 1)) + 2);\n    },\n    circularIn: function (k) {\n        return 1 - Math.sqrt(1 - k * k);\n    },\n    circularOut: function (k) {\n        return Math.sqrt(1 - (--k * k));\n    },\n    circularInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return -0.5 * (Math.sqrt(1 - k * k) - 1);\n        }\n        return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1);\n    },\n    elasticIn: function (k) {\n        var s;\n        var a = 0.1;\n        var p = 0.4;\n        if (k === 0) {\n            return 0;\n        }\n        if (k === 1) {\n            return 1;\n        }\n        if (!a || a < 1) {\n            a = 1;\n            s = p / 4;\n        }\n        else {\n            s = p * Math.asin(1 / a) / (2 * Math.PI);\n        }\n        return -(a * Math.pow(2, 10 * (k -= 1))\n            * Math.sin((k - s) * (2 * Math.PI) / p));\n    },\n    elasticOut: function (k) {\n        var s;\n        var a = 0.1;\n        var p = 0.4;\n        if (k === 0) {\n            return 0;\n        }\n        if (k === 1) {\n            return 1;\n        }\n        if (!a || a < 1) {\n            a = 1;\n            s = p / 4;\n        }\n        else {\n            s = p * Math.asin(1 / a) / (2 * Math.PI);\n        }\n        return (a * Math.pow(2, -10 * k)\n            * Math.sin((k - s) * (2 * Math.PI) / p) + 1);\n    },\n    elasticInOut: function (k) {\n        var s;\n        var a = 0.1;\n        var p = 0.4;\n        if (k === 0) {\n            return 0;\n        }\n        if (k === 1) {\n            return 1;\n        }\n        if (!a || a < 1) {\n            a = 1;\n            s = p / 4;\n        }\n        else {\n            s = p * Math.asin(1 / a) / (2 * Math.PI);\n        }\n        if ((k *= 2) < 1) {\n            return -0.5 * (a * Math.pow(2, 10 * (k -= 1))\n                * Math.sin((k - s) * (2 * Math.PI) / p));\n        }\n        return a * Math.pow(2, -10 * (k -= 1))\n            * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1;\n    },\n    backIn: function (k) {\n        var s = 1.70158;\n        return k * k * ((s + 1) * k - s);\n    },\n    backOut: function (k) {\n        var s = 1.70158;\n        return --k * k * ((s + 1) * k + s) + 1;\n    },\n    backInOut: function (k) {\n        var s = 1.70158 * 1.525;\n        if ((k *= 2) < 1) {\n            return 0.5 * (k * k * ((s + 1) * k - s));\n        }\n        return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2);\n    },\n    bounceIn: function (k) {\n        return 1 - easing.bounceOut(1 - k);\n    },\n    bounceOut: function (k) {\n        if (k < (1 / 2.75)) {\n            return 7.5625 * k * k;\n        }\n        else if (k < (2 / 2.75)) {\n            return 7.5625 * (k -= (1.5 / 2.75)) * k + 0.75;\n        }\n        else if (k < (2.5 / 2.75)) {\n            return 7.5625 * (k -= (2.25 / 2.75)) * k + 0.9375;\n        }\n        else {\n            return 7.5625 * (k -= (2.625 / 2.75)) * k + 0.984375;\n        }\n    },\n    bounceInOut: function (k) {\n        if (k < 0.5) {\n            return easing.bounceIn(k * 2) * 0.5;\n        }\n        return easing.bounceOut(k * 2 - 1) * 0.5 + 0.5;\n    }\n};\nexport default easing;\n","import easingFuncs from './easing';\nvar Clip = (function () {\n    function Clip(opts) {\n        this._initialized = false;\n        this._startTime = 0;\n        this._pausedTime = 0;\n        this._paused = false;\n        this._life = opts.life || 1000;\n        this._delay = opts.delay || 0;\n        this.loop = opts.loop == null ? false : opts.loop;\n        this.gap = opts.gap || 0;\n        this.easing = opts.easing || 'linear';\n        this.onframe = opts.onframe;\n        this.ondestroy = opts.ondestroy;\n        this.onrestart = opts.onrestart;\n    }\n    Clip.prototype.step = function (globalTime, deltaTime) {\n        if (!this._initialized) {\n            this._startTime = globalTime + this._delay;\n            this._initialized = true;\n        }\n        if (this._paused) {\n            this._pausedTime += deltaTime;\n            return;\n        }\n        var percent = (globalTime - this._startTime - this._pausedTime) / this._life;\n        if (percent < 0) {\n            percent = 0;\n        }\n        percent = Math.min(percent, 1);\n        var easing = this.easing;\n        var easingFunc = typeof easing === 'string'\n            ? easingFuncs[easing] : easing;\n        var schedule = typeof easingFunc === 'function'\n            ? easingFunc(percent)\n            : percent;\n        this.onframe && this.onframe(schedule);\n        if (percent === 1) {\n            if (this.loop) {\n                this._restart(globalTime);\n                this.onrestart && this.onrestart();\n            }\n            else {\n                return true;\n            }\n        }\n        return false;\n    };\n    Clip.prototype._restart = function (globalTime) {\n        var remainder = (globalTime - this._startTime - this._pausedTime) % this._life;\n        this._startTime = globalTime - remainder + this.gap;\n        this._pausedTime = 0;\n    };\n    Clip.prototype.pause = function () {\n        this._paused = true;\n    };\n    Clip.prototype.resume = function () {\n        this._paused = false;\n    };\n    return Clip;\n}());\nexport default Clip;\n","var Entry = (function () {\n    function Entry(val) {\n        this.value = val;\n    }\n    return Entry;\n}());\nexport { Entry };\nvar LinkedList = (function () {\n    function LinkedList() {\n        this._len = 0;\n    }\n    LinkedList.prototype.insert = function (val) {\n        var entry = new Entry(val);\n        this.insertEntry(entry);\n        return entry;\n    };\n    LinkedList.prototype.insertEntry = function (entry) {\n        if (!this.head) {\n            this.head = this.tail = entry;\n        }\n        else {\n            this.tail.next = entry;\n            entry.prev = this.tail;\n            entry.next = null;\n            this.tail = entry;\n        }\n        this._len++;\n    };\n    LinkedList.prototype.remove = function (entry) {\n        var prev = entry.prev;\n        var next = entry.next;\n        if (prev) {\n            prev.next = next;\n        }\n        else {\n            this.head = next;\n        }\n        if (next) {\n            next.prev = prev;\n        }\n        else {\n            this.tail = prev;\n        }\n        entry.next = entry.prev = null;\n        this._len--;\n    };\n    LinkedList.prototype.len = function () {\n        return this._len;\n    };\n    LinkedList.prototype.clear = function () {\n        this.head = this.tail = null;\n        this._len = 0;\n    };\n    return LinkedList;\n}());\nexport { LinkedList };\nvar LRU = (function () {\n    function LRU(maxSize) {\n        this._list = new LinkedList();\n        this._maxSize = 10;\n        this._map = {};\n        this._maxSize = maxSize;\n    }\n    LRU.prototype.put = function (key, value) {\n        var list = this._list;\n        var map = this._map;\n        var removed = null;\n        if (map[key] == null) {\n            var len = list.len();\n            var entry = this._lastRemovedEntry;\n            if (len >= this._maxSize && len > 0) {\n                var leastUsedEntry = list.head;\n                list.remove(leastUsedEntry);\n                delete map[leastUsedEntry.key];\n                removed = leastUsedEntry.value;\n                this._lastRemovedEntry = leastUsedEntry;\n            }\n            if (entry) {\n                entry.value = value;\n            }\n            else {\n                entry = new Entry(value);\n            }\n            entry.key = key;\n            list.insertEntry(entry);\n            map[key] = entry;\n        }\n        return removed;\n    };\n    LRU.prototype.get = function (key) {\n        var entry = this._map[key];\n        var list = this._list;\n        if (entry != null) {\n            if (entry !== list.tail) {\n                list.remove(entry);\n                list.insertEntry(entry);\n            }\n            return entry.value;\n        }\n    };\n    LRU.prototype.clear = function () {\n        this._list.clear();\n        this._map = {};\n    };\n    LRU.prototype.len = function () {\n        return this._list.len();\n    };\n    return LRU;\n}());\nexport default LRU;\n","import LRU from '../core/LRU';\nvar kCSSColorTable = {\n    'transparent': [0, 0, 0, 0], 'aliceblue': [240, 248, 255, 1],\n    'antiquewhite': [250, 235, 215, 1], 'aqua': [0, 255, 255, 1],\n    'aquamarine': [127, 255, 212, 1], 'azure': [240, 255, 255, 1],\n    'beige': [245, 245, 220, 1], 'bisque': [255, 228, 196, 1],\n    'black': [0, 0, 0, 1], 'blanchedalmond': [255, 235, 205, 1],\n    'blue': [0, 0, 255, 1], 'blueviolet': [138, 43, 226, 1],\n    'brown': [165, 42, 42, 1], 'burlywood': [222, 184, 135, 1],\n    'cadetblue': [95, 158, 160, 1], 'chartreuse': [127, 255, 0, 1],\n    'chocolate': [210, 105, 30, 1], 'coral': [255, 127, 80, 1],\n    'cornflowerblue': [100, 149, 237, 1], 'cornsilk': [255, 248, 220, 1],\n    'crimson': [220, 20, 60, 1], 'cyan': [0, 255, 255, 1],\n    'darkblue': [0, 0, 139, 1], 'darkcyan': [0, 139, 139, 1],\n    'darkgoldenrod': [184, 134, 11, 1], 'darkgray': [169, 169, 169, 1],\n    'darkgreen': [0, 100, 0, 1], 'darkgrey': [169, 169, 169, 1],\n    'darkkhaki': [189, 183, 107, 1], 'darkmagenta': [139, 0, 139, 1],\n    'darkolivegreen': [85, 107, 47, 1], 'darkorange': [255, 140, 0, 1],\n    'darkorchid': [153, 50, 204, 1], 'darkred': [139, 0, 0, 1],\n    'darksalmon': [233, 150, 122, 1], 'darkseagreen': [143, 188, 143, 1],\n    'darkslateblue': [72, 61, 139, 1], 'darkslategray': [47, 79, 79, 1],\n    'darkslategrey': [47, 79, 79, 1], 'darkturquoise': [0, 206, 209, 1],\n    'darkviolet': [148, 0, 211, 1], 'deeppink': [255, 20, 147, 1],\n    'deepskyblue': [0, 191, 255, 1], 'dimgray': [105, 105, 105, 1],\n    'dimgrey': [105, 105, 105, 1], 'dodgerblue': [30, 144, 255, 1],\n    'firebrick': [178, 34, 34, 1], 'floralwhite': [255, 250, 240, 1],\n    'forestgreen': [34, 139, 34, 1], 'fuchsia': [255, 0, 255, 1],\n    'gainsboro': [220, 220, 220, 1], 'ghostwhite': [248, 248, 255, 1],\n    'gold': [255, 215, 0, 1], 'goldenrod': [218, 165, 32, 1],\n    'gray': [128, 128, 128, 1], 'green': [0, 128, 0, 1],\n    'greenyellow': [173, 255, 47, 1], 'grey': [128, 128, 128, 1],\n    'honeydew': [240, 255, 240, 1], 'hotpink': [255, 105, 180, 1],\n    'indianred': [205, 92, 92, 1], 'indigo': [75, 0, 130, 1],\n    'ivory': [255, 255, 240, 1], 'khaki': [240, 230, 140, 1],\n    'lavender': [230, 230, 250, 1], 'lavenderblush': [255, 240, 245, 1],\n    'lawngreen': [124, 252, 0, 1], 'lemonchiffon': [255, 250, 205, 1],\n    'lightblue': [173, 216, 230, 1], 'lightcoral': [240, 128, 128, 1],\n    'lightcyan': [224, 255, 255, 1], 'lightgoldenrodyellow': [250, 250, 210, 1],\n    'lightgray': [211, 211, 211, 1], 'lightgreen': [144, 238, 144, 1],\n    'lightgrey': [211, 211, 211, 1], 'lightpink': [255, 182, 193, 1],\n    'lightsalmon': [255, 160, 122, 1], 'lightseagreen': [32, 178, 170, 1],\n    'lightskyblue': [135, 206, 250, 1], 'lightslategray': [119, 136, 153, 1],\n    'lightslategrey': [119, 136, 153, 1], 'lightsteelblue': [176, 196, 222, 1],\n    'lightyellow': [255, 255, 224, 1], 'lime': [0, 255, 0, 1],\n    'limegreen': [50, 205, 50, 1], 'linen': [250, 240, 230, 1],\n    'magenta': [255, 0, 255, 1], 'maroon': [128, 0, 0, 1],\n    'mediumaquamarine': [102, 205, 170, 1], 'mediumblue': [0, 0, 205, 1],\n    'mediumorchid': [186, 85, 211, 1], 'mediumpurple': [147, 112, 219, 1],\n    'mediumseagreen': [60, 179, 113, 1], 'mediumslateblue': [123, 104, 238, 1],\n    'mediumspringgreen': [0, 250, 154, 1], 'mediumturquoise': [72, 209, 204, 1],\n    'mediumvioletred': [199, 21, 133, 1], 'midnightblue': [25, 25, 112, 1],\n    'mintcream': [245, 255, 250, 1], 'mistyrose': [255, 228, 225, 1],\n    'moccasin': [255, 228, 181, 1], 'navajowhite': [255, 222, 173, 1],\n    'navy': [0, 0, 128, 1], 'oldlace': [253, 245, 230, 1],\n    'olive': [128, 128, 0, 1], 'olivedrab': [107, 142, 35, 1],\n    'orange': [255, 165, 0, 1], 'orangered': [255, 69, 0, 1],\n    'orchid': [218, 112, 214, 1], 'palegoldenrod': [238, 232, 170, 1],\n    'palegreen': [152, 251, 152, 1], 'paleturquoise': [175, 238, 238, 1],\n    'palevioletred': [219, 112, 147, 1], 'papayawhip': [255, 239, 213, 1],\n    'peachpuff': [255, 218, 185, 1], 'peru': [205, 133, 63, 1],\n    'pink': [255, 192, 203, 1], 'plum': [221, 160, 221, 1],\n    'powderblue': [176, 224, 230, 1], 'purple': [128, 0, 128, 1],\n    'red': [255, 0, 0, 1], 'rosybrown': [188, 143, 143, 1],\n    'royalblue': [65, 105, 225, 1], 'saddlebrown': [139, 69, 19, 1],\n    'salmon': [250, 128, 114, 1], 'sandybrown': [244, 164, 96, 1],\n    'seagreen': [46, 139, 87, 1], 'seashell': [255, 245, 238, 1],\n    'sienna': [160, 82, 45, 1], 'silver': [192, 192, 192, 1],\n    'skyblue': [135, 206, 235, 1], 'slateblue': [106, 90, 205, 1],\n    'slategray': [112, 128, 144, 1], 'slategrey': [112, 128, 144, 1],\n    'snow': [255, 250, 250, 1], 'springgreen': [0, 255, 127, 1],\n    'steelblue': [70, 130, 180, 1], 'tan': [210, 180, 140, 1],\n    'teal': [0, 128, 128, 1], 'thistle': [216, 191, 216, 1],\n    'tomato': [255, 99, 71, 1], 'turquoise': [64, 224, 208, 1],\n    'violet': [238, 130, 238, 1], 'wheat': [245, 222, 179, 1],\n    'white': [255, 255, 255, 1], 'whitesmoke': [245, 245, 245, 1],\n    'yellow': [255, 255, 0, 1], 'yellowgreen': [154, 205, 50, 1]\n};\nfunction clampCssByte(i) {\n    i = Math.round(i);\n    return i < 0 ? 0 : i > 255 ? 255 : i;\n}\nfunction clampCssAngle(i) {\n    i = Math.round(i);\n    return i < 0 ? 0 : i > 360 ? 360 : i;\n}\nfunction clampCssFloat(f) {\n    return f < 0 ? 0 : f > 1 ? 1 : f;\n}\nfunction parseCssInt(val) {\n    var str = val;\n    if (str.length && str.charAt(str.length - 1) === '%') {\n        return clampCssByte(parseFloat(str) / 100 * 255);\n    }\n    return clampCssByte(parseInt(str, 10));\n}\nfunction parseCssFloat(val) {\n    var str = val;\n    if (str.length && str.charAt(str.length - 1) === '%') {\n        return clampCssFloat(parseFloat(str) / 100);\n    }\n    return clampCssFloat(parseFloat(str));\n}\nfunction cssHueToRgb(m1, m2, h) {\n    if (h < 0) {\n        h += 1;\n    }\n    else if (h > 1) {\n        h -= 1;\n    }\n    if (h * 6 < 1) {\n        return m1 + (m2 - m1) * h * 6;\n    }\n    if (h * 2 < 1) {\n        return m2;\n    }\n    if (h * 3 < 2) {\n        return m1 + (m2 - m1) * (2 / 3 - h) * 6;\n    }\n    return m1;\n}\nfunction lerpNumber(a, b, p) {\n    return a + (b - a) * p;\n}\nfunction setRgba(out, r, g, b, a) {\n    out[0] = r;\n    out[1] = g;\n    out[2] = b;\n    out[3] = a;\n    return out;\n}\nfunction copyRgba(out, a) {\n    out[0] = a[0];\n    out[1] = a[1];\n    out[2] = a[2];\n    out[3] = a[3];\n    return out;\n}\nvar colorCache = new LRU(20);\nvar lastRemovedArr = null;\nfunction putToCache(colorStr, rgbaArr) {\n    if (lastRemovedArr) {\n        copyRgba(lastRemovedArr, rgbaArr);\n    }\n    lastRemovedArr = colorCache.put(colorStr, lastRemovedArr || (rgbaArr.slice()));\n}\nexport function parse(colorStr, rgbaArr) {\n    if (!colorStr) {\n        return;\n    }\n    rgbaArr = rgbaArr || [];\n    var cached = colorCache.get(colorStr);\n    if (cached) {\n        return copyRgba(rgbaArr, cached);\n    }\n    colorStr = colorStr + '';\n    var str = colorStr.replace(/ /g, '').toLowerCase();\n    if (str in kCSSColorTable) {\n        copyRgba(rgbaArr, kCSSColorTable[str]);\n        putToCache(colorStr, rgbaArr);\n        return rgbaArr;\n    }\n    var strLen = str.length;\n    if (str.charAt(0) === '#') {\n        if (strLen === 4 || strLen === 5) {\n            var iv = parseInt(str.slice(1, 4), 16);\n            if (!(iv >= 0 && iv <= 0xfff)) {\n                setRgba(rgbaArr, 0, 0, 0, 1);\n                return;\n            }\n            setRgba(rgbaArr, ((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8), (iv & 0xf0) | ((iv & 0xf0) >> 4), (iv & 0xf) | ((iv & 0xf) << 4), strLen === 5 ? parseInt(str.slice(4), 16) / 0xf : 1);\n            putToCache(colorStr, rgbaArr);\n            return rgbaArr;\n        }\n        else if (strLen === 7 || strLen === 9) {\n            var iv = parseInt(str.slice(1, 7), 16);\n            if (!(iv >= 0 && iv <= 0xffffff)) {\n                setRgba(rgbaArr, 0, 0, 0, 1);\n                return;\n            }\n            setRgba(rgbaArr, (iv & 0xff0000) >> 16, (iv & 0xff00) >> 8, iv & 0xff, strLen === 9 ? parseInt(str.slice(7), 16) / 0xff : 1);\n            putToCache(colorStr, rgbaArr);\n            return rgbaArr;\n        }\n        return;\n    }\n    var op = str.indexOf('(');\n    var ep = str.indexOf(')');\n    if (op !== -1 && ep + 1 === strLen) {\n        var fname = str.substr(0, op);\n        var params = str.substr(op + 1, ep - (op + 1)).split(',');\n        var alpha = 1;\n        switch (fname) {\n            case 'rgba':\n                if (params.length !== 4) {\n                    return params.length === 3\n                        ? setRgba(rgbaArr, +params[0], +params[1], +params[2], 1)\n                        : setRgba(rgbaArr, 0, 0, 0, 1);\n                }\n                alpha = parseCssFloat(params.pop());\n            case 'rgb':\n                if (params.length !== 3) {\n                    setRgba(rgbaArr, 0, 0, 0, 1);\n                    return;\n                }\n                setRgba(rgbaArr, parseCssInt(params[0]), parseCssInt(params[1]), parseCssInt(params[2]), alpha);\n                putToCache(colorStr, rgbaArr);\n                return rgbaArr;\n            case 'hsla':\n                if (params.length !== 4) {\n                    setRgba(rgbaArr, 0, 0, 0, 1);\n                    return;\n                }\n                params[3] = parseCssFloat(params[3]);\n                hsla2rgba(params, rgbaArr);\n                putToCache(colorStr, rgbaArr);\n                return rgbaArr;\n            case 'hsl':\n                if (params.length !== 3) {\n                    setRgba(rgbaArr, 0, 0, 0, 1);\n                    return;\n                }\n                hsla2rgba(params, rgbaArr);\n                putToCache(colorStr, rgbaArr);\n                return rgbaArr;\n            default:\n                return;\n        }\n    }\n    setRgba(rgbaArr, 0, 0, 0, 1);\n    return;\n}\nfunction hsla2rgba(hsla, rgba) {\n    var h = (((parseFloat(hsla[0]) % 360) + 360) % 360) / 360;\n    var s = parseCssFloat(hsla[1]);\n    var l = parseCssFloat(hsla[2]);\n    var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n    var m1 = l * 2 - m2;\n    rgba = rgba || [];\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);\n    if (hsla.length === 4) {\n        rgba[3] = hsla[3];\n    }\n    return rgba;\n}\nfunction rgba2hsla(rgba) {\n    if (!rgba) {\n        return;\n    }\n    var R = rgba[0] / 255;\n    var G = rgba[1] / 255;\n    var B = rgba[2] / 255;\n    var vMin = Math.min(R, G, B);\n    var vMax = Math.max(R, G, B);\n    var delta = vMax - vMin;\n    var L = (vMax + vMin) / 2;\n    var H;\n    var S;\n    if (delta === 0) {\n        H = 0;\n        S = 0;\n    }\n    else {\n        if (L < 0.5) {\n            S = delta / (vMax + vMin);\n        }\n        else {\n            S = delta / (2 - vMax - vMin);\n        }\n        var deltaR = (((vMax - R) / 6) + (delta / 2)) / delta;\n        var deltaG = (((vMax - G) / 6) + (delta / 2)) / delta;\n        var deltaB = (((vMax - B) / 6) + (delta / 2)) / delta;\n        if (R === vMax) {\n            H = deltaB - deltaG;\n        }\n        else if (G === vMax) {\n            H = (1 / 3) + deltaR - deltaB;\n        }\n        else if (B === vMax) {\n            H = (2 / 3) + deltaG - deltaR;\n        }\n        if (H < 0) {\n            H += 1;\n        }\n        if (H > 1) {\n            H -= 1;\n        }\n    }\n    var hsla = [H * 360, S, L];\n    if (rgba[3] != null) {\n        hsla.push(rgba[3]);\n    }\n    return hsla;\n}\nexport function lift(color, level) {\n    var colorArr = parse(color);\n    if (colorArr) {\n        for (var i = 0; i < 3; i++) {\n            if (level < 0) {\n                colorArr[i] = colorArr[i] * (1 - level) | 0;\n            }\n            else {\n                colorArr[i] = ((255 - colorArr[i]) * level + colorArr[i]) | 0;\n            }\n            if (colorArr[i] > 255) {\n                colorArr[i] = 255;\n            }\n            else if (colorArr[i] < 0) {\n                colorArr[i] = 0;\n            }\n        }\n        return stringify(colorArr, colorArr.length === 4 ? 'rgba' : 'rgb');\n    }\n}\nexport function toHex(color) {\n    var colorArr = parse(color);\n    if (colorArr) {\n        return ((1 << 24) + (colorArr[0] << 16) + (colorArr[1] << 8) + (+colorArr[2])).toString(16).slice(1);\n    }\n}\nexport function fastLerp(normalizedValue, colors, out) {\n    if (!(colors && colors.length)\n        || !(normalizedValue >= 0 && normalizedValue <= 1)) {\n        return;\n    }\n    out = out || [];\n    var value = normalizedValue * (colors.length - 1);\n    var leftIndex = Math.floor(value);\n    var rightIndex = Math.ceil(value);\n    var leftColor = colors[leftIndex];\n    var rightColor = colors[rightIndex];\n    var dv = value - leftIndex;\n    out[0] = clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv));\n    out[1] = clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv));\n    out[2] = clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv));\n    out[3] = clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv));\n    return out;\n}\nexport var fastMapToColor = fastLerp;\nexport function lerp(normalizedValue, colors, fullOutput) {\n    if (!(colors && colors.length)\n        || !(normalizedValue >= 0 && normalizedValue <= 1)) {\n        return;\n    }\n    var value = normalizedValue * (colors.length - 1);\n    var leftIndex = Math.floor(value);\n    var rightIndex = Math.ceil(value);\n    var leftColor = parse(colors[leftIndex]);\n    var rightColor = parse(colors[rightIndex]);\n    var dv = value - leftIndex;\n    var color = stringify([\n        clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv)),\n        clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv)),\n        clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv)),\n        clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv))\n    ], 'rgba');\n    return fullOutput\n        ? {\n            color: color,\n            leftIndex: leftIndex,\n            rightIndex: rightIndex,\n            value: value\n        }\n        : color;\n}\nexport var mapToColor = lerp;\nexport function modifyHSL(color, h, s, l) {\n    var colorArr = parse(color);\n    if (color) {\n        colorArr = rgba2hsla(colorArr);\n        h != null && (colorArr[0] = clampCssAngle(h));\n        s != null && (colorArr[1] = parseCssFloat(s));\n        l != null && (colorArr[2] = parseCssFloat(l));\n        return stringify(hsla2rgba(colorArr), 'rgba');\n    }\n}\nexport function modifyAlpha(color, alpha) {\n    var colorArr = parse(color);\n    if (colorArr && alpha != null) {\n        colorArr[3] = clampCssFloat(alpha);\n        return stringify(colorArr, 'rgba');\n    }\n}\nexport function stringify(arrColor, type) {\n    if (!arrColor || !arrColor.length) {\n        return;\n    }\n    var colorStr = arrColor[0] + ',' + arrColor[1] + ',' + arrColor[2];\n    if (type === 'rgba' || type === 'hsva' || type === 'hsla') {\n        colorStr += ',' + arrColor[3];\n    }\n    return type + '(' + colorStr + ')';\n}\nexport function lum(color, backgroundLum) {\n    var arr = parse(color);\n    return arr\n        ? (0.299 * arr[0] + 0.587 * arr[1] + 0.114 * arr[2]) * arr[3] / 255\n            + (1 - arr[3]) * backgroundLum\n        : 0;\n}\nexport function random() {\n    var r = Math.round(Math.random() * 255);\n    var g = Math.round(Math.random() * 255);\n    var b = Math.round(Math.random() * 255);\n    return 'rgb(' + r + ',' + g + ',' + b + ')';\n}\n","import Clip from './Clip';\nimport * as color from '../tool/color';\nimport { isArrayLike, keys, logError } from '../core/util';\nvar arraySlice = Array.prototype.slice;\nexport function interpolateNumber(p0, p1, percent) {\n    return (p1 - p0) * percent + p0;\n}\nexport function step(p0, p1, percent) {\n    return percent > 0.5 ? p1 : p0;\n}\nexport function interpolate1DArray(out, p0, p1, percent) {\n    var len = p0.length;\n    for (var i = 0; i < len; i++) {\n        out[i] = interpolateNumber(p0[i], p1[i], percent);\n    }\n}\nexport function interpolate2DArray(out, p0, p1, percent) {\n    var len = p0.length;\n    var len2 = len && p0[0].length;\n    for (var i = 0; i < len; i++) {\n        if (!out[i]) {\n            out[i] = [];\n        }\n        for (var j = 0; j < len2; j++) {\n            out[i][j] = interpolateNumber(p0[i][j], p1[i][j], percent);\n        }\n    }\n}\nfunction add1DArray(out, p0, p1, sign) {\n    var len = p0.length;\n    for (var i = 0; i < len; i++) {\n        out[i] = p0[i] + p1[i] * sign;\n    }\n    return out;\n}\nfunction add2DArray(out, p0, p1, sign) {\n    var len = p0.length;\n    var len2 = len && p0[0].length;\n    for (var i = 0; i < len; i++) {\n        if (!out[i]) {\n            out[i] = [];\n        }\n        for (var j = 0; j < len2; j++) {\n            out[i][j] = p0[i][j] + p1[i][j] * sign;\n        }\n    }\n    return out;\n}\nfunction fillArray(val0, val1, arrDim) {\n    var arr0 = val0;\n    var arr1 = val1;\n    if (!arr0.push || !arr1.push) {\n        return;\n    }\n    var arr0Len = arr0.length;\n    var arr1Len = arr1.length;\n    if (arr0Len !== arr1Len) {\n        var isPreviousLarger = arr0Len > arr1Len;\n        if (isPreviousLarger) {\n            arr0.length = arr1Len;\n        }\n        else {\n            for (var i = arr0Len; i < arr1Len; i++) {\n                arr0.push(arrDim === 1 ? arr1[i] : arraySlice.call(arr1[i]));\n            }\n        }\n    }\n    var len2 = arr0[0] && arr0[0].length;\n    for (var i = 0; i < arr0.length; i++) {\n        if (arrDim === 1) {\n            if (isNaN(arr0[i])) {\n                arr0[i] = arr1[i];\n            }\n        }\n        else {\n            for (var j = 0; j < len2; j++) {\n                if (isNaN(arr0[i][j])) {\n                    arr0[i][j] = arr1[i][j];\n                }\n            }\n        }\n    }\n}\nfunction is1DArraySame(arr0, arr1) {\n    var len = arr0.length;\n    if (len !== arr1.length) {\n        return false;\n    }\n    for (var i = 0; i < len; i++) {\n        if (arr0[i] !== arr1[i]) {\n            return false;\n        }\n    }\n    return true;\n}\nfunction is2DArraySame(arr0, arr1) {\n    var len = arr0.length;\n    if (len !== arr1.length) {\n        return false;\n    }\n    var len2 = arr0[0].length;\n    for (var i = 0; i < len; i++) {\n        for (var j = 0; j < len2; j++) {\n            if (arr0[i][j] !== arr1[i][j]) {\n                return false;\n            }\n        }\n    }\n    return true;\n}\nfunction catmullRomInterpolate(p0, p1, p2, p3, t, t2, t3) {\n    var v0 = (p2 - p0) * 0.5;\n    var v1 = (p3 - p1) * 0.5;\n    return (2 * (p1 - p2) + v0 + v1) * t3\n        + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\n        + v0 * t + p1;\n}\nfunction catmullRomInterpolate1DArray(out, p0, p1, p2, p3, t, t2, t3) {\n    var len = p0.length;\n    for (var i = 0; i < len; i++) {\n        out[i] = catmullRomInterpolate(p0[i], p1[i], p2[i], p3[i], t, t2, t3);\n    }\n}\nfunction catmullRomInterpolate2DArray(out, p0, p1, p2, p3, t, t2, t3) {\n    var len = p0.length;\n    var len2 = p0[0].length;\n    for (var i = 0; i < len; i++) {\n        if (!out[i]) {\n            out[1] = [];\n        }\n        for (var j = 0; j < len2; j++) {\n            out[i][j] = catmullRomInterpolate(p0[i][j], p1[i][j], p2[i][j], p3[i][j], t, t2, t3);\n        }\n    }\n}\nexport function cloneValue(value) {\n    if (isArrayLike(value)) {\n        var len = value.length;\n        if (isArrayLike(value[0])) {\n            var ret = [];\n            for (var i = 0; i < len; i++) {\n                ret.push(arraySlice.call(value[i]));\n            }\n            return ret;\n        }\n        return arraySlice.call(value);\n    }\n    return value;\n}\nfunction rgba2String(rgba) {\n    rgba[0] = Math.floor(rgba[0]);\n    rgba[1] = Math.floor(rgba[1]);\n    rgba[2] = Math.floor(rgba[2]);\n    return 'rgba(' + rgba.join(',') + ')';\n}\nfunction guessArrayDim(value) {\n    return isArrayLike(value && value[0]) ? 2 : 1;\n}\nvar tmpRgba = [0, 0, 0, 0];\nvar Track = (function () {\n    function Track(propName) {\n        this.keyframes = [];\n        this.maxTime = 0;\n        this.arrDim = 0;\n        this.interpolable = true;\n        this._needsSort = false;\n        this._isAllValueEqual = true;\n        this._lastFrame = 0;\n        this._lastFramePercent = 0;\n        this.propName = propName;\n    }\n    Track.prototype.isFinished = function () {\n        return this._finished;\n    };\n    Track.prototype.setFinished = function () {\n        this._finished = true;\n        if (this._additiveTrack) {\n            this._additiveTrack.setFinished();\n        }\n    };\n    Track.prototype.needsAnimate = function () {\n        return !this._isAllValueEqual && this.keyframes.length >= 2 && this.interpolable;\n    };\n    Track.prototype.getAdditiveTrack = function () {\n        return this._additiveTrack;\n    };\n    Track.prototype.addKeyframe = function (time, value) {\n        if (time >= this.maxTime) {\n            this.maxTime = time;\n        }\n        else {\n            this._needsSort = true;\n        }\n        var keyframes = this.keyframes;\n        var len = keyframes.length;\n        if (this.interpolable) {\n            if (isArrayLike(value)) {\n                var arrayDim = guessArrayDim(value);\n                if (len > 0 && this.arrDim !== arrayDim) {\n                    this.interpolable = false;\n                    return;\n                }\n                if (arrayDim === 1 && typeof value[0] !== 'number'\n                    || arrayDim === 2 && typeof value[0][0] !== 'number') {\n                    this.interpolable = false;\n                    return;\n                }\n                if (len > 0) {\n                    var lastFrame = keyframes[len - 1];\n                    if (this._isAllValueEqual) {\n                        if (arrayDim === 1) {\n                            if (!is1DArraySame(value, lastFrame.value)) {\n                                this._isAllValueEqual = false;\n                            }\n                        }\n                        else {\n                            this._isAllValueEqual = false;\n                        }\n                    }\n                }\n                this.arrDim = arrayDim;\n            }\n            else {\n                if (this.arrDim > 0) {\n                    this.interpolable = false;\n                    return;\n                }\n                if (typeof value === 'string') {\n                    var colorArray = color.parse(value);\n                    if (colorArray) {\n                        value = colorArray;\n                        this.isValueColor = true;\n                    }\n                    else {\n                        this.interpolable = false;\n                    }\n                }\n                else if (typeof value !== 'number') {\n                    this.interpolable = false;\n                    return;\n                }\n                if (this._isAllValueEqual && len > 0) {\n                    var lastFrame = keyframes[len - 1];\n                    if (this.isValueColor && !is1DArraySame(lastFrame.value, value)) {\n                        this._isAllValueEqual = false;\n                    }\n                    else if (lastFrame.value !== value) {\n                        this._isAllValueEqual = false;\n                    }\n                }\n            }\n        }\n        var kf = {\n            time: time,\n            value: value,\n            percent: 0\n        };\n        this.keyframes.push(kf);\n        return kf;\n    };\n    Track.prototype.prepare = function (additiveTrack) {\n        var kfs = this.keyframes;\n        if (this._needsSort) {\n            kfs.sort(function (a, b) {\n                return a.time - b.time;\n            });\n        }\n        var arrDim = this.arrDim;\n        var kfsLen = kfs.length;\n        var lastKf = kfs[kfsLen - 1];\n        for (var i = 0; i < kfsLen; i++) {\n            kfs[i].percent = kfs[i].time / this.maxTime;\n            if (arrDim > 0 && i !== kfsLen - 1) {\n                fillArray(kfs[i].value, lastKf.value, arrDim);\n            }\n        }\n        if (additiveTrack\n            && this.needsAnimate()\n            && additiveTrack.needsAnimate()\n            && arrDim === additiveTrack.arrDim\n            && this.isValueColor === additiveTrack.isValueColor\n            && !additiveTrack._finished) {\n            this._additiveTrack = additiveTrack;\n            var startValue = kfs[0].value;\n            for (var i = 0; i < kfsLen; i++) {\n                if (arrDim === 0) {\n                    if (this.isValueColor) {\n                        kfs[i].additiveValue\n                            = add1DArray([], kfs[i].value, startValue, -1);\n                    }\n                    else {\n                        kfs[i].additiveValue = kfs[i].value - startValue;\n                    }\n                }\n                else if (arrDim === 1) {\n                    kfs[i].additiveValue = add1DArray([], kfs[i].value, startValue, -1);\n                }\n                else if (arrDim === 2) {\n                    kfs[i].additiveValue = add2DArray([], kfs[i].value, startValue, -1);\n                }\n            }\n        }\n    };\n    Track.prototype.step = function (target, percent) {\n        if (this._finished) {\n            return;\n        }\n        if (this._additiveTrack && this._additiveTrack._finished) {\n            this._additiveTrack = null;\n        }\n        var isAdditive = this._additiveTrack != null;\n        var valueKey = isAdditive ? 'additiveValue' : 'value';\n        var keyframes = this.keyframes;\n        var kfsNum = this.keyframes.length;\n        var propName = this.propName;\n        var arrDim = this.arrDim;\n        var isValueColor = this.isValueColor;\n        var frameIdx;\n        if (percent < 0) {\n            frameIdx = 0;\n        }\n        else if (percent < this._lastFramePercent) {\n            var start = Math.min(this._lastFrame + 1, kfsNum - 1);\n            for (frameIdx = start; frameIdx >= 0; frameIdx--) {\n                if (keyframes[frameIdx].percent <= percent) {\n                    break;\n                }\n            }\n            frameIdx = Math.min(frameIdx, kfsNum - 2);\n        }\n        else {\n            for (frameIdx = this._lastFrame; frameIdx < kfsNum; frameIdx++) {\n                if (keyframes[frameIdx].percent > percent) {\n                    break;\n                }\n            }\n            frameIdx = Math.min(frameIdx - 1, kfsNum - 2);\n        }\n        var nextFrame = keyframes[frameIdx + 1];\n        var frame = keyframes[frameIdx];\n        if (!(frame && nextFrame)) {\n            return;\n        }\n        this._lastFrame = frameIdx;\n        this._lastFramePercent = percent;\n        var range = (nextFrame.percent - frame.percent);\n        if (range === 0) {\n            return;\n        }\n        var w = (percent - frame.percent) / range;\n        var targetArr = isAdditive ? this._additiveValue\n            : (isValueColor ? tmpRgba : target[propName]);\n        if ((arrDim > 0 || isValueColor) && !targetArr) {\n            targetArr = this._additiveValue = [];\n        }\n        if (this.useSpline) {\n            var p1 = keyframes[frameIdx][valueKey];\n            var p0 = keyframes[frameIdx === 0 ? frameIdx : frameIdx - 1][valueKey];\n            var p2 = keyframes[frameIdx > kfsNum - 2 ? kfsNum - 1 : frameIdx + 1][valueKey];\n            var p3 = keyframes[frameIdx > kfsNum - 3 ? kfsNum - 1 : frameIdx + 2][valueKey];\n            if (arrDim > 0) {\n                arrDim === 1\n                    ? catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w)\n                    : catmullRomInterpolate2DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\n            }\n            else if (isValueColor) {\n                catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\n                if (!isAdditive) {\n                    target[propName] = rgba2String(targetArr);\n                }\n            }\n            else {\n                var value = void 0;\n                if (!this.interpolable) {\n                    value = p2;\n                }\n                else {\n                    value = catmullRomInterpolate(p0, p1, p2, p3, w, w * w, w * w * w);\n                }\n                if (isAdditive) {\n                    this._additiveValue = value;\n                }\n                else {\n                    target[propName] = value;\n                }\n            }\n        }\n        else {\n            if (arrDim > 0) {\n                arrDim === 1\n                    ? interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w)\n                    : interpolate2DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\n            }\n            else if (isValueColor) {\n                interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\n                if (!isAdditive) {\n                    target[propName] = rgba2String(targetArr);\n                }\n            }\n            else {\n                var value = void 0;\n                if (!this.interpolable) {\n                    value = step(frame[valueKey], nextFrame[valueKey], w);\n                }\n                else {\n                    value = interpolateNumber(frame[valueKey], nextFrame[valueKey], w);\n                }\n                if (isAdditive) {\n                    this._additiveValue = value;\n                }\n                else {\n                    target[propName] = value;\n                }\n            }\n        }\n        if (isAdditive) {\n            this._addToTarget(target);\n        }\n    };\n    Track.prototype._addToTarget = function (target) {\n        var arrDim = this.arrDim;\n        var propName = this.propName;\n        var additiveValue = this._additiveValue;\n        if (arrDim === 0) {\n            if (this.isValueColor) {\n                color.parse(target[propName], tmpRgba);\n                add1DArray(tmpRgba, tmpRgba, additiveValue, 1);\n                target[propName] = rgba2String(tmpRgba);\n            }\n            else {\n                target[propName] = target[propName] + additiveValue;\n            }\n        }\n        else if (arrDim === 1) {\n            add1DArray(target[propName], target[propName], additiveValue, 1);\n        }\n        else if (arrDim === 2) {\n            add2DArray(target[propName], target[propName], additiveValue, 1);\n        }\n    };\n    return Track;\n}());\nvar Animator = (function () {\n    function Animator(target, loop, additiveTo) {\n        this._tracks = {};\n        this._trackKeys = [];\n        this._delay = 0;\n        this._maxTime = 0;\n        this._paused = false;\n        this._started = 0;\n        this._clip = null;\n        this._target = target;\n        this._loop = loop;\n        if (loop && additiveTo) {\n            logError('Can\\' use additive animation on looped animation.');\n            return;\n        }\n        this._additiveAnimators = additiveTo;\n    }\n    Animator.prototype.getTarget = function () {\n        return this._target;\n    };\n    Animator.prototype.changeTarget = function (target) {\n        this._target = target;\n    };\n    Animator.prototype.when = function (time, props) {\n        return this.whenWithKeys(time, props, keys(props));\n    };\n    Animator.prototype.whenWithKeys = function (time, props, propNames) {\n        var tracks = this._tracks;\n        for (var i = 0; i < propNames.length; i++) {\n            var propName = propNames[i];\n            var track = tracks[propName];\n            if (!track) {\n                track = tracks[propName] = new Track(propName);\n                var initialValue = void 0;\n                var additiveTrack = this._getAdditiveTrack(propName);\n                if (additiveTrack) {\n                    var lastFinalKf = additiveTrack.keyframes[additiveTrack.keyframes.length - 1];\n                    initialValue = lastFinalKf && lastFinalKf.value;\n                    if (additiveTrack.isValueColor && initialValue) {\n                        initialValue = rgba2String(initialValue);\n                    }\n                }\n                else {\n                    initialValue = this._target[propName];\n                }\n                if (initialValue == null) {\n                    continue;\n                }\n                if (time !== 0) {\n                    track.addKeyframe(0, cloneValue(initialValue));\n                }\n                this._trackKeys.push(propName);\n            }\n            track.addKeyframe(time, cloneValue(props[propName]));\n        }\n        this._maxTime = Math.max(this._maxTime, time);\n        return this;\n    };\n    Animator.prototype.pause = function () {\n        this._clip.pause();\n        this._paused = true;\n    };\n    Animator.prototype.resume = function () {\n        this._clip.resume();\n        this._paused = false;\n    };\n    Animator.prototype.isPaused = function () {\n        return !!this._paused;\n    };\n    Animator.prototype._doneCallback = function () {\n        this._setTracksFinished();\n        this._clip = null;\n        var doneList = this._doneList;\n        if (doneList) {\n            var len = doneList.length;\n            for (var i = 0; i < len; i++) {\n                doneList[i].call(this);\n            }\n        }\n    };\n    Animator.prototype._abortedCallback = function () {\n        this._setTracksFinished();\n        var animation = this.animation;\n        var abortedList = this._abortedList;\n        if (animation) {\n            animation.removeClip(this._clip);\n        }\n        this._clip = null;\n        if (abortedList) {\n            for (var i = 0; i < abortedList.length; i++) {\n                abortedList[i].call(this);\n            }\n        }\n    };\n    Animator.prototype._setTracksFinished = function () {\n        var tracks = this._tracks;\n        var tracksKeys = this._trackKeys;\n        for (var i = 0; i < tracksKeys.length; i++) {\n            tracks[tracksKeys[i]].setFinished();\n        }\n    };\n    Animator.prototype._getAdditiveTrack = function (trackName) {\n        var additiveTrack;\n        var additiveAnimators = this._additiveAnimators;\n        if (additiveAnimators) {\n            for (var i = 0; i < additiveAnimators.length; i++) {\n                var track = additiveAnimators[i].getTrack(trackName);\n                if (track) {\n                    additiveTrack = track;\n                }\n            }\n        }\n        return additiveTrack;\n    };\n    Animator.prototype.start = function (easing, forceAnimate) {\n        if (this._started > 0) {\n            return;\n        }\n        this._started = 1;\n        var self = this;\n        var tracks = [];\n        for (var i = 0; i < this._trackKeys.length; i++) {\n            var propName = this._trackKeys[i];\n            var track = this._tracks[propName];\n            var additiveTrack = this._getAdditiveTrack(propName);\n            var kfs = track.keyframes;\n            track.prepare(additiveTrack);\n            if (track.needsAnimate()) {\n                tracks.push(track);\n            }\n            else if (!track.interpolable) {\n                var lastKf = kfs[kfs.length - 1];\n                if (lastKf) {\n                    self._target[track.propName] = lastKf.value;\n                }\n            }\n        }\n        if (tracks.length || forceAnimate) {\n            var clip = new Clip({\n                life: this._maxTime,\n                loop: this._loop,\n                delay: this._delay,\n                onframe: function (percent) {\n                    self._started = 2;\n                    var additiveAnimators = self._additiveAnimators;\n                    if (additiveAnimators) {\n                        var stillHasAdditiveAnimator = false;\n                        for (var i = 0; i < additiveAnimators.length; i++) {\n                            if (additiveAnimators[i]._clip) {\n                                stillHasAdditiveAnimator = true;\n                                break;\n                            }\n                        }\n                        if (!stillHasAdditiveAnimator) {\n                            self._additiveAnimators = null;\n                        }\n                    }\n                    for (var i = 0; i < tracks.length; i++) {\n                        tracks[i].step(self._target, percent);\n                    }\n                    var onframeList = self._onframeList;\n                    if (onframeList) {\n                        for (var i = 0; i < onframeList.length; i++) {\n                            onframeList[i](self._target, percent);\n                        }\n                    }\n                },\n                ondestroy: function () {\n                    self._doneCallback();\n                }\n            });\n            this._clip = clip;\n            if (this.animation) {\n                this.animation.addClip(clip);\n            }\n            if (easing && easing !== 'spline') {\n                clip.easing = easing;\n            }\n        }\n        else {\n            this._doneCallback();\n        }\n        return this;\n    };\n    Animator.prototype.stop = function (forwardToLast) {\n        if (!this._clip) {\n            return;\n        }\n        var clip = this._clip;\n        if (forwardToLast) {\n            clip.onframe(1);\n        }\n        this._abortedCallback();\n    };\n    Animator.prototype.delay = function (time) {\n        this._delay = time;\n        return this;\n    };\n    Animator.prototype.during = function (cb) {\n        if (cb) {\n            if (!this._onframeList) {\n                this._onframeList = [];\n            }\n            this._onframeList.push(cb);\n        }\n        return this;\n    };\n    Animator.prototype.done = function (cb) {\n        if (cb) {\n            if (!this._doneList) {\n                this._doneList = [];\n            }\n            this._doneList.push(cb);\n        }\n        return this;\n    };\n    Animator.prototype.aborted = function (cb) {\n        if (cb) {\n            if (!this._abortedList) {\n                this._abortedList = [];\n            }\n            this._abortedList.push(cb);\n        }\n        return this;\n    };\n    Animator.prototype.getClip = function () {\n        return this._clip;\n    };\n    Animator.prototype.getTrack = function (propName) {\n        return this._tracks[propName];\n    };\n    Animator.prototype.stopTracks = function (propNames, forwardToLast) {\n        if (!propNames.length || !this._clip) {\n            return true;\n        }\n        var tracks = this._tracks;\n        var tracksKeys = this._trackKeys;\n        for (var i = 0; i < propNames.length; i++) {\n            var track = tracks[propNames[i]];\n            if (track) {\n                if (forwardToLast) {\n                    track.step(this._target, 1);\n                }\n                else if (this._started === 1) {\n                    track.step(this._target, 0);\n                }\n                track.setFinished();\n            }\n        }\n        var allAborted = true;\n        for (var i = 0; i < tracksKeys.length; i++) {\n            if (!tracks[tracksKeys[i]].isFinished()) {\n                allAborted = false;\n                break;\n            }\n        }\n        if (allAborted) {\n            this._abortedCallback();\n        }\n        return allAborted;\n    };\n    Animator.prototype.saveFinalToTarget = function (target, trackKeys) {\n        if (!target) {\n            return;\n        }\n        trackKeys = trackKeys || this._trackKeys;\n        for (var i = 0; i < trackKeys.length; i++) {\n            var propName = trackKeys[i];\n            var track = this._tracks[propName];\n            if (!track || track.isFinished()) {\n                continue;\n            }\n            var kfs = track.keyframes;\n            var lastKf = kfs[kfs.length - 1];\n            if (lastKf) {\n                var val = cloneValue(lastKf.value);\n                if (track.isValueColor) {\n                    val = rgba2String(val);\n                }\n                target[propName] = val;\n            }\n        }\n    };\n    Animator.prototype.__changeFinalValue = function (finalProps, trackKeys) {\n        trackKeys = trackKeys || keys(finalProps);\n        for (var i = 0; i < trackKeys.length; i++) {\n            var propName = trackKeys[i];\n            var track = this._tracks[propName];\n            if (!track) {\n                continue;\n            }\n            var kfs = track.keyframes;\n            if (kfs.length > 1) {\n                var lastKf = kfs.pop();\n                track.addKeyframe(lastKf.time, finalProps[propName]);\n                track.prepare(track.getAdditiveTrack());\n            }\n        }\n    };\n    return Animator;\n}());\nexport default Animator;\n","var Point = (function () {\n    function Point(x, y) {\n        this.x = x || 0;\n        this.y = y || 0;\n    }\n    Point.prototype.copy = function (other) {\n        this.x = other.x;\n        this.y = other.y;\n        return this;\n    };\n    Point.prototype.clone = function () {\n        return new Point(this.x, this.y);\n    };\n    Point.prototype.set = function (x, y) {\n        this.x = x;\n        this.y = y;\n        return this;\n    };\n    Point.prototype.equal = function (other) {\n        return other.x === this.x && other.y === this.y;\n    };\n    Point.prototype.add = function (other) {\n        this.x += other.x;\n        this.y += other.y;\n        return this;\n    };\n    Point.prototype.scale = function (scalar) {\n        this.x *= scalar;\n        this.y *= scalar;\n    };\n    Point.prototype.scaleAndAdd = function (other, scalar) {\n        this.x += other.x * scalar;\n        this.y += other.y * scalar;\n    };\n    Point.prototype.sub = function (other) {\n        this.x -= other.x;\n        this.y -= other.y;\n        return this;\n    };\n    Point.prototype.dot = function (other) {\n        return this.x * other.x + this.y * other.y;\n    };\n    Point.prototype.len = function () {\n        return Math.sqrt(this.x * this.x + this.y * this.y);\n    };\n    Point.prototype.lenSquare = function () {\n        return this.x * this.x + this.y * this.y;\n    };\n    Point.prototype.normalize = function () {\n        var len = this.len();\n        this.x /= len;\n        this.y /= len;\n        return this;\n    };\n    Point.prototype.distance = function (other) {\n        var dx = this.x - other.x;\n        var dy = this.y - other.y;\n        return Math.sqrt(dx * dx + dy * dy);\n    };\n    Point.prototype.distanceSquare = function (other) {\n        var dx = this.x - other.x;\n        var dy = this.y - other.y;\n        return dx * dx + dy * dy;\n    };\n    Point.prototype.negate = function () {\n        this.x = -this.x;\n        this.y = -this.y;\n        return this;\n    };\n    Point.prototype.transform = function (m) {\n        if (!m) {\n            return;\n        }\n        var x = this.x;\n        var y = this.y;\n        this.x = m[0] * x + m[2] * y + m[4];\n        this.y = m[1] * x + m[3] * y + m[5];\n        return this;\n    };\n    Point.prototype.toArray = function (out) {\n        out[0] = this.x;\n        out[1] = this.y;\n        return out;\n    };\n    Point.prototype.fromArray = function (input) {\n        this.x = input[0];\n        this.y = input[1];\n    };\n    Point.set = function (p, x, y) {\n        p.x = x;\n        p.y = y;\n    };\n    Point.copy = function (p, p2) {\n        p.x = p2.x;\n        p.y = p2.y;\n    };\n    Point.len = function (p) {\n        return Math.sqrt(p.x * p.x + p.y * p.y);\n    };\n    Point.lenSquare = function (p) {\n        return p.x * p.x + p.y * p.y;\n    };\n    Point.dot = function (p0, p1) {\n        return p0.x * p1.x + p0.y * p1.y;\n    };\n    Point.add = function (out, p0, p1) {\n        out.x = p0.x + p1.x;\n        out.y = p0.y + p1.y;\n    };\n    Point.sub = function (out, p0, p1) {\n        out.x = p0.x - p1.x;\n        out.y = p0.y - p1.y;\n    };\n    Point.scale = function (out, p0, scalar) {\n        out.x = p0.x * scalar;\n        out.y = p0.y * scalar;\n    };\n    Point.scaleAndAdd = function (out, p0, p1, scalar) {\n        out.x = p0.x + p1.x * scalar;\n        out.y = p0.y + p1.y * scalar;\n    };\n    Point.lerp = function (out, p0, p1, t) {\n        var onet = 1 - t;\n        out.x = onet * p0.x + t * p1.x;\n        out.y = onet * p0.y + t * p1.y;\n    };\n    return Point;\n}());\nexport default Point;\n","import * as matrix from './matrix';\nimport Point from './Point';\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar lt = new Point();\nvar rb = new Point();\nvar lb = new Point();\nvar rt = new Point();\nvar minTv = new Point();\nvar maxTv = new Point();\nvar BoundingRect = (function () {\n    function BoundingRect(x, y, width, height) {\n        if (width < 0 && isFinite(width)) {\n            x = x + width;\n            width = -width;\n        }\n        if (height < 0 && isFinite(height)) {\n            y = y + height;\n            height = -height;\n        }\n        this.x = x;\n        this.y = y;\n        this.width = width;\n        this.height = height;\n    }\n    BoundingRect.prototype.union = function (other) {\n        var x = mathMin(other.x, this.x);\n        var y = mathMin(other.y, this.y);\n        if (isFinite(this.x) && isFinite(this.width)) {\n            this.width = mathMax(other.x + other.width, this.x + this.width) - x;\n        }\n        else {\n            this.width = other.width;\n        }\n        if (isFinite(this.y) && isFinite(this.height)) {\n            this.height = mathMax(other.y + other.height, this.y + this.height) - y;\n        }\n        else {\n            this.height = other.height;\n        }\n        this.x = x;\n        this.y = y;\n    };\n    BoundingRect.prototype.applyTransform = function (m) {\n        BoundingRect.applyTransform(this, this, m);\n    };\n    BoundingRect.prototype.calculateTransform = function (b) {\n        var a = this;\n        var sx = b.width / a.width;\n        var sy = b.height / a.height;\n        var m = matrix.create();\n        matrix.translate(m, m, [-a.x, -a.y]);\n        matrix.scale(m, m, [sx, sy]);\n        matrix.translate(m, m, [b.x, b.y]);\n        return m;\n    };\n    BoundingRect.prototype.intersect = function (b, mtv) {\n        if (!b) {\n            return false;\n        }\n        if (!(b instanceof BoundingRect)) {\n            b = BoundingRect.create(b);\n        }\n        var a = this;\n        var ax0 = a.x;\n        var ax1 = a.x + a.width;\n        var ay0 = a.y;\n        var ay1 = a.y + a.height;\n        var bx0 = b.x;\n        var bx1 = b.x + b.width;\n        var by0 = b.y;\n        var by1 = b.y + b.height;\n        var overlap = !(ax1 < bx0 || bx1 < ax0 || ay1 < by0 || by1 < ay0);\n        if (mtv) {\n            var dMin = Infinity;\n            var dMax = 0;\n            var d0 = Math.abs(ax1 - bx0);\n            var d1 = Math.abs(bx1 - ax0);\n            var d2 = Math.abs(ay1 - by0);\n            var d3 = Math.abs(by1 - ay0);\n            var dx = Math.min(d0, d1);\n            var dy = Math.min(d2, d3);\n            if (ax1 < bx0 || bx1 < ax0) {\n                if (dx > dMax) {\n                    dMax = dx;\n                    if (d0 < d1) {\n                        Point.set(maxTv, -d0, 0);\n                    }\n                    else {\n                        Point.set(maxTv, d1, 0);\n                    }\n                }\n            }\n            else {\n                if (dx < dMin) {\n                    dMin = dx;\n                    if (d0 < d1) {\n                        Point.set(minTv, d0, 0);\n                    }\n                    else {\n                        Point.set(minTv, -d1, 0);\n                    }\n                }\n            }\n            if (ay1 < by0 || by1 < ay0) {\n                if (dy > dMax) {\n                    dMax = dy;\n                    if (d2 < d3) {\n                        Point.set(maxTv, 0, -d2);\n                    }\n                    else {\n                        Point.set(maxTv, 0, d3);\n                    }\n                }\n            }\n            else {\n                if (dx < dMin) {\n                    dMin = dx;\n                    if (d2 < d3) {\n                        Point.set(minTv, 0, d2);\n                    }\n                    else {\n                        Point.set(minTv, 0, -d3);\n                    }\n                }\n            }\n        }\n        if (mtv) {\n            Point.copy(mtv, overlap ? minTv : maxTv);\n        }\n        return overlap;\n    };\n    BoundingRect.prototype.contain = function (x, y) {\n        var rect = this;\n        return x >= rect.x\n            && x <= (rect.x + rect.width)\n            && y >= rect.y\n            && y <= (rect.y + rect.height);\n    };\n    BoundingRect.prototype.clone = function () {\n        return new BoundingRect(this.x, this.y, this.width, this.height);\n    };\n    BoundingRect.prototype.copy = function (other) {\n        BoundingRect.copy(this, other);\n    };\n    BoundingRect.prototype.plain = function () {\n        return {\n            x: this.x,\n            y: this.y,\n            width: this.width,\n            height: this.height\n        };\n    };\n    BoundingRect.prototype.isFinite = function () {\n        return isFinite(this.x)\n            && isFinite(this.y)\n            && isFinite(this.width)\n            && isFinite(this.height);\n    };\n    BoundingRect.prototype.isZero = function () {\n        return this.width === 0 || this.height === 0;\n    };\n    BoundingRect.create = function (rect) {\n        return new BoundingRect(rect.x, rect.y, rect.width, rect.height);\n    };\n    BoundingRect.copy = function (target, source) {\n        target.x = source.x;\n        target.y = source.y;\n        target.width = source.width;\n        target.height = source.height;\n    };\n    BoundingRect.applyTransform = function (target, source, m) {\n        if (!m) {\n            if (target !== source) {\n                BoundingRect.copy(target, source);\n            }\n            return;\n        }\n        if (m[1] < 1e-5 && m[1] > -1e-5 && m[2] < 1e-5 && m[2] > -1e-5) {\n            var sx = m[0];\n            var sy = m[3];\n            var tx = m[4];\n            var ty = m[5];\n            target.x = source.x * sx + tx;\n            target.y = source.y * sy + ty;\n            target.width = source.width * sx;\n            target.height = source.height * sy;\n            if (target.width < 0) {\n                target.x += target.width;\n                target.width = -target.width;\n            }\n            if (target.height < 0) {\n                target.y += target.height;\n                target.height = -target.height;\n            }\n            return;\n        }\n        lt.x = lb.x = source.x;\n        lt.y = rt.y = source.y;\n        rb.x = rt.x = source.x + source.width;\n        rb.y = lb.y = source.y + source.height;\n        lt.transform(m);\n        rt.transform(m);\n        rb.transform(m);\n        lb.transform(m);\n        target.x = mathMin(lt.x, rb.x, lb.x, rt.x);\n        target.y = mathMin(lt.y, rb.y, lb.y, rt.y);\n        var maxX = mathMax(lt.x, rb.x, lb.x, rt.x);\n        var maxY = mathMax(lt.y, rb.y, lb.y, rt.y);\n        target.width = maxX - target.x;\n        target.height = maxY - target.y;\n    };\n    return BoundingRect;\n}());\nexport default BoundingRect;\n","import BoundingRect from '../core/BoundingRect';\nimport { createCanvas } from '../core/util';\nimport LRU from '../core/LRU';\nvar textWidthCache = {};\nexport var DEFAULT_FONT = '12px sans-serif';\nvar _ctx;\nvar _cachedFont;\nfunction defaultMeasureText(text, font) {\n    if (!_ctx) {\n        _ctx = createCanvas().getContext('2d');\n    }\n    if (_cachedFont !== font) {\n        _cachedFont = _ctx.font = font || DEFAULT_FONT;\n    }\n    return _ctx.measureText(text);\n}\nvar methods = {\n    measureText: defaultMeasureText\n};\nexport function $override(name, fn) {\n    methods[name] = fn;\n}\nexport function getWidth(text, font) {\n    font = font || DEFAULT_FONT;\n    var cacheOfFont = textWidthCache[font];\n    if (!cacheOfFont) {\n        cacheOfFont = textWidthCache[font] = new LRU(500);\n    }\n    var width = cacheOfFont.get(text);\n    if (width == null) {\n        width = methods.measureText(text, font).width;\n        cacheOfFont.put(text, width);\n    }\n    return width;\n}\nexport function innerGetBoundingRect(text, font, textAlign, textBaseline) {\n    var width = getWidth(text, font);\n    var height = getLineHeight(font);\n    var x = adjustTextX(0, width, textAlign);\n    var y = adjustTextY(0, height, textBaseline);\n    var rect = new BoundingRect(x, y, width, height);\n    return rect;\n}\nexport function getBoundingRect(text, font, textAlign, textBaseline) {\n    var textLines = ((text || '') + '').split('\\n');\n    var len = textLines.length;\n    if (len === 1) {\n        return innerGetBoundingRect(textLines[0], font, textAlign, textBaseline);\n    }\n    else {\n        var uniondRect = new BoundingRect(0, 0, 0, 0);\n        for (var i = 0; i < textLines.length; i++) {\n            var rect = innerGetBoundingRect(textLines[i], font, textAlign, textBaseline);\n            i === 0 ? uniondRect.copy(rect) : uniondRect.union(rect);\n        }\n        return uniondRect;\n    }\n}\nexport function adjustTextX(x, width, textAlign) {\n    if (textAlign === 'right') {\n        x -= width;\n    }\n    else if (textAlign === 'center') {\n        x -= width / 2;\n    }\n    return x;\n}\nexport function adjustTextY(y, height, verticalAlign) {\n    if (verticalAlign === 'middle') {\n        y -= height / 2;\n    }\n    else if (verticalAlign === 'bottom') {\n        y -= height;\n    }\n    return y;\n}\nexport function getLineHeight(font) {\n    return getWidth('国', font);\n}\nexport function measureText(text, font) {\n    return methods.measureText(text, font);\n}\nexport function parsePercent(value, maxValue) {\n    if (typeof value === 'string') {\n        if (value.lastIndexOf('%') >= 0) {\n            return parseFloat(value) / 100 * maxValue;\n        }\n        return parseFloat(value);\n    }\n    return value;\n}\nexport function calculateTextPosition(out, opts, rect) {\n    var textPosition = opts.position || 'inside';\n    var distance = opts.distance != null ? opts.distance : 5;\n    var height = rect.height;\n    var width = rect.width;\n    var halfHeight = height / 2;\n    var x = rect.x;\n    var y = rect.y;\n    var textAlign = 'left';\n    var textVerticalAlign = 'top';\n    if (textPosition instanceof Array) {\n        x += parsePercent(textPosition[0], rect.width);\n        y += parsePercent(textPosition[1], rect.height);\n        textAlign = null;\n        textVerticalAlign = null;\n    }\n    else {\n        switch (textPosition) {\n            case 'left':\n                x -= distance;\n                y += halfHeight;\n                textAlign = 'right';\n                textVerticalAlign = 'middle';\n                break;\n            case 'right':\n                x += distance + width;\n                y += halfHeight;\n                textVerticalAlign = 'middle';\n                break;\n            case 'top':\n                x += width / 2;\n                y -= distance;\n                textAlign = 'center';\n                textVerticalAlign = 'bottom';\n                break;\n            case 'bottom':\n                x += width / 2;\n                y += height + distance;\n                textAlign = 'center';\n                break;\n            case 'inside':\n                x += width / 2;\n                y += halfHeight;\n                textAlign = 'center';\n                textVerticalAlign = 'middle';\n                break;\n            case 'insideLeft':\n                x += distance;\n                y += halfHeight;\n                textVerticalAlign = 'middle';\n                break;\n            case 'insideRight':\n                x += width - distance;\n                y += halfHeight;\n                textAlign = 'right';\n                textVerticalAlign = 'middle';\n                break;\n            case 'insideTop':\n                x += width / 2;\n                y += distance;\n                textAlign = 'center';\n                break;\n            case 'insideBottom':\n                x += width / 2;\n                y += height - distance;\n                textAlign = 'center';\n                textVerticalAlign = 'bottom';\n                break;\n            case 'insideTopLeft':\n                x += distance;\n                y += distance;\n                break;\n            case 'insideTopRight':\n                x += width - distance;\n                y += distance;\n                textAlign = 'right';\n                break;\n            case 'insideBottomLeft':\n                x += distance;\n                y += height - distance;\n                textVerticalAlign = 'bottom';\n                break;\n            case 'insideBottomRight':\n                x += width - distance;\n                y += height - distance;\n                textAlign = 'right';\n                textVerticalAlign = 'bottom';\n                break;\n        }\n    }\n    out = out || {};\n    out.x = x;\n    out.y = y;\n    out.align = textAlign;\n    out.verticalAlign = textVerticalAlign;\n    return out;\n}\n","var dpr = 1;\nif (typeof window !== 'undefined') {\n    dpr = Math.max(window.devicePixelRatio\n        || (window.screen && window.screen.deviceXDPI / window.screen.logicalXDPI)\n        || 1, 1);\n}\nexport var debugMode = 0;\nexport var devicePixelRatio = dpr;\nexport var DARK_MODE_THRESHOLD = 0.4;\nexport var DARK_LABEL_COLOR = '#333';\nexport var LIGHT_LABEL_COLOR = '#ccc';\nexport var LIGHTER_LABEL_COLOR = '#eee';\n","import Transformable from './core/Transformable';\nimport Animator, { cloneValue } from './animation/Animator';\nimport BoundingRect from './core/BoundingRect';\nimport Eventful from './core/Eventful';\nimport { calculateTextPosition, parsePercent } from './contain/text';\nimport { guid, isObject, keys, extend, indexOf, logError, mixin, isArrayLike, isTypedArray } from './core/util';\nimport { LIGHT_LABEL_COLOR, DARK_LABEL_COLOR } from './config';\nimport { parse, stringify } from './tool/color';\nimport env from './core/env';\nexport var PRESERVED_NORMAL_STATE = '__zr_normal__';\nvar PRIMARY_STATES_KEYS = ['x', 'y', 'scaleX', 'scaleY', 'originX', 'originY', 'rotation', 'ignore'];\nvar DEFAULT_ANIMATABLE_MAP = {\n    x: true,\n    y: true,\n    scaleX: true,\n    scaleY: true,\n    originX: true,\n    originY: true,\n    rotation: true,\n    ignore: false\n};\nvar tmpTextPosCalcRes = {};\nvar tmpBoundingRect = new BoundingRect(0, 0, 0, 0);\nvar Element = (function () {\n    function Element(props) {\n        this.id = guid();\n        this.animators = [];\n        this.currentStates = [];\n        this.states = {};\n        this._init(props);\n    }\n    Element.prototype._init = function (props) {\n        this.attr(props);\n    };\n    Element.prototype.drift = function (dx, dy, e) {\n        switch (this.draggable) {\n            case 'horizontal':\n                dy = 0;\n                break;\n            case 'vertical':\n                dx = 0;\n                break;\n        }\n        var m = this.transform;\n        if (!m) {\n            m = this.transform = [1, 0, 0, 1, 0, 0];\n        }\n        m[4] += dx;\n        m[5] += dy;\n        this.decomposeTransform();\n        this.markRedraw();\n    };\n    Element.prototype.beforeUpdate = function () { };\n    Element.prototype.afterUpdate = function () { };\n    Element.prototype.update = function () {\n        this.updateTransform();\n        if (this.__dirty) {\n            this.updateInnerText();\n        }\n    };\n    Element.prototype.updateInnerText = function (forceUpdate) {\n        var textEl = this._textContent;\n        if (textEl && (!textEl.ignore || forceUpdate)) {\n            if (!this.textConfig) {\n                this.textConfig = {};\n            }\n            var textConfig = this.textConfig;\n            var isLocal = textConfig.local;\n            var attachedTransform = textEl.attachedTransform;\n            var textAlign = void 0;\n            var textVerticalAlign = void 0;\n            var textStyleChanged = false;\n            if (isLocal) {\n                attachedTransform.parent = this;\n            }\n            else {\n                attachedTransform.parent = null;\n            }\n            var innerOrigin = false;\n            attachedTransform.x = textEl.x;\n            attachedTransform.y = textEl.y;\n            attachedTransform.originX = textEl.originX;\n            attachedTransform.originY = textEl.originY;\n            attachedTransform.rotation = textEl.rotation;\n            attachedTransform.scaleX = textEl.scaleX;\n            attachedTransform.scaleY = textEl.scaleY;\n            if (textConfig.position != null) {\n                var layoutRect = tmpBoundingRect;\n                if (textConfig.layoutRect) {\n                    layoutRect.copy(textConfig.layoutRect);\n                }\n                else {\n                    layoutRect.copy(this.getBoundingRect());\n                }\n                if (!isLocal) {\n                    layoutRect.applyTransform(this.transform);\n                }\n                if (this.calculateTextPosition) {\n                    this.calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\n                }\n                else {\n                    calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\n                }\n                attachedTransform.x = tmpTextPosCalcRes.x;\n                attachedTransform.y = tmpTextPosCalcRes.y;\n                textAlign = tmpTextPosCalcRes.align;\n                textVerticalAlign = tmpTextPosCalcRes.verticalAlign;\n                var textOrigin = textConfig.origin;\n                if (textOrigin && textConfig.rotation != null) {\n                    var relOriginX = void 0;\n                    var relOriginY = void 0;\n                    if (textOrigin === 'center') {\n                        relOriginX = layoutRect.width * 0.5;\n                        relOriginY = layoutRect.height * 0.5;\n                    }\n                    else {\n                        relOriginX = parsePercent(textOrigin[0], layoutRect.width);\n                        relOriginY = parsePercent(textOrigin[1], layoutRect.height);\n                    }\n                    innerOrigin = true;\n                    attachedTransform.originX = -attachedTransform.x + relOriginX + (isLocal ? 0 : layoutRect.x);\n                    attachedTransform.originY = -attachedTransform.y + relOriginY + (isLocal ? 0 : layoutRect.y);\n                }\n            }\n            if (textConfig.rotation != null) {\n                attachedTransform.rotation = textConfig.rotation;\n            }\n            var textOffset = textConfig.offset;\n            if (textOffset) {\n                attachedTransform.x += textOffset[0];\n                attachedTransform.y += textOffset[1];\n                if (!innerOrigin) {\n                    attachedTransform.originX = -textOffset[0];\n                    attachedTransform.originY = -textOffset[1];\n                }\n            }\n            var isInside = textConfig.inside == null\n                ? (typeof textConfig.position === 'string' && textConfig.position.indexOf('inside') >= 0)\n                : textConfig.inside;\n            var innerTextDefaultStyle = this._innerTextDefaultStyle || (this._innerTextDefaultStyle = {});\n            var textFill = void 0;\n            var textStroke = void 0;\n            var autoStroke = void 0;\n            if (isInside && this.canBeInsideText()) {\n                textFill = textConfig.insideFill;\n                textStroke = textConfig.insideStroke;\n                if (textFill == null || textFill === 'auto') {\n                    textFill = this.getInsideTextFill();\n                }\n                if (textStroke == null || textStroke === 'auto') {\n                    textStroke = this.getInsideTextStroke(textFill);\n                    autoStroke = true;\n                }\n            }\n            else {\n                textFill = textConfig.outsideFill;\n                textStroke = textConfig.outsideStroke;\n                if (textFill == null || textFill === 'auto') {\n                    textFill = this.getOutsideFill();\n                }\n                if (textStroke == null || textStroke === 'auto') {\n                    textStroke = this.getOutsideStroke(textFill);\n                    autoStroke = true;\n                }\n            }\n            textFill = textFill || '#000';\n            if (textFill !== innerTextDefaultStyle.fill\n                || textStroke !== innerTextDefaultStyle.stroke\n                || autoStroke !== innerTextDefaultStyle.autoStroke\n                || textAlign !== innerTextDefaultStyle.align\n                || textVerticalAlign !== innerTextDefaultStyle.verticalAlign) {\n                textStyleChanged = true;\n                innerTextDefaultStyle.fill = textFill;\n                innerTextDefaultStyle.stroke = textStroke;\n                innerTextDefaultStyle.autoStroke = autoStroke;\n                innerTextDefaultStyle.align = textAlign;\n                innerTextDefaultStyle.verticalAlign = textVerticalAlign;\n                textEl.setDefaultTextStyle(innerTextDefaultStyle);\n            }\n            if (textStyleChanged) {\n                textEl.dirtyStyle();\n            }\n            textEl.markRedraw();\n        }\n    };\n    Element.prototype.canBeInsideText = function () {\n        return true;\n    };\n    Element.prototype.getInsideTextFill = function () {\n        return '#fff';\n    };\n    Element.prototype.getInsideTextStroke = function (textFill) {\n        return '#000';\n    };\n    Element.prototype.getOutsideFill = function () {\n        return this.__zr && this.__zr.isDarkMode() ? LIGHT_LABEL_COLOR : DARK_LABEL_COLOR;\n    };\n    Element.prototype.getOutsideStroke = function (textFill) {\n        var backgroundColor = this.__zr && this.__zr.getBackgroundColor();\n        var colorArr = typeof backgroundColor === 'string' && parse(backgroundColor);\n        if (!colorArr) {\n            colorArr = [255, 255, 255, 1];\n        }\n        var alpha = colorArr[3];\n        var isDark = this.__zr.isDarkMode();\n        for (var i = 0; i < 3; i++) {\n            colorArr[i] = colorArr[i] * alpha + (isDark ? 0 : 255) * (1 - alpha);\n        }\n        colorArr[3] = 1;\n        return stringify(colorArr, 'rgba');\n    };\n    Element.prototype.traverse = function (cb, context) { };\n    Element.prototype.attrKV = function (key, value) {\n        if (key === 'textConfig') {\n            this.setTextConfig(value);\n        }\n        else if (key === 'textContent') {\n            this.setTextContent(value);\n        }\n        else if (key === 'clipPath') {\n            this.setClipPath(value);\n        }\n        else if (key === 'extra') {\n            this.extra = this.extra || {};\n            extend(this.extra, value);\n        }\n        else {\n            this[key] = value;\n        }\n    };\n    Element.prototype.hide = function () {\n        this.ignore = true;\n        this.markRedraw();\n    };\n    Element.prototype.show = function () {\n        this.ignore = false;\n        this.markRedraw();\n    };\n    Element.prototype.attr = function (keyOrObj, value) {\n        if (typeof keyOrObj === 'string') {\n            this.attrKV(keyOrObj, value);\n        }\n        else if (isObject(keyOrObj)) {\n            var obj = keyOrObj;\n            var keysArr = keys(obj);\n            for (var i = 0; i < keysArr.length; i++) {\n                var key = keysArr[i];\n                this.attrKV(key, keyOrObj[key]);\n            }\n        }\n        this.markRedraw();\n        return this;\n    };\n    Element.prototype.saveCurrentToNormalState = function (toState) {\n        this._innerSaveToNormal(toState);\n        var normalState = this._normalState;\n        for (var i = 0; i < this.animators.length; i++) {\n            var animator = this.animators[i];\n            var fromStateTransition = animator.__fromStateTransition;\n            if (fromStateTransition && fromStateTransition !== PRESERVED_NORMAL_STATE) {\n                continue;\n            }\n            var targetName = animator.targetName;\n            var target = targetName\n                ? normalState[targetName] : normalState;\n            animator.saveFinalToTarget(target);\n        }\n    };\n    Element.prototype._innerSaveToNormal = function (toState) {\n        var normalState = this._normalState;\n        if (!normalState) {\n            normalState = this._normalState = {};\n        }\n        if (toState.textConfig && !normalState.textConfig) {\n            normalState.textConfig = this.textConfig;\n        }\n        this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS);\n    };\n    Element.prototype._savePrimaryToNormal = function (toState, normalState, primaryKeys) {\n        for (var i = 0; i < primaryKeys.length; i++) {\n            var key = primaryKeys[i];\n            if (toState[key] != null && !(key in normalState)) {\n                normalState[key] = this[key];\n            }\n        }\n    };\n    Element.prototype.hasState = function () {\n        return this.currentStates.length > 0;\n    };\n    Element.prototype.getState = function (name) {\n        return this.states[name];\n    };\n    Element.prototype.ensureState = function (name) {\n        var states = this.states;\n        if (!states[name]) {\n            states[name] = {};\n        }\n        return states[name];\n    };\n    Element.prototype.clearStates = function (noAnimation) {\n        this.useState(PRESERVED_NORMAL_STATE, false, noAnimation);\n    };\n    Element.prototype.useState = function (stateName, keepCurrentStates, noAnimation) {\n        var toNormalState = stateName === PRESERVED_NORMAL_STATE;\n        var hasStates = this.hasState();\n        if (!hasStates && toNormalState) {\n            return;\n        }\n        var currentStates = this.currentStates;\n        var animationCfg = this.stateTransition;\n        if (indexOf(currentStates, stateName) >= 0 && (keepCurrentStates || currentStates.length === 1)) {\n            return;\n        }\n        var state;\n        if (this.stateProxy && !toNormalState) {\n            state = this.stateProxy(stateName);\n        }\n        if (!state) {\n            state = (this.states && this.states[stateName]);\n        }\n        if (!state && !toNormalState) {\n            logError(\"State \" + stateName + \" not exists.\");\n            return;\n        }\n        if (!toNormalState) {\n            this.saveCurrentToNormalState(state);\n        }\n        var useHoverLayer = !!(state && state.hoverLayer);\n        if (useHoverLayer) {\n            this._toggleHoverLayerFlag(true);\n        }\n        this._applyStateObj(stateName, state, this._normalState, keepCurrentStates, !noAnimation && !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\n        if (this._textContent) {\n            this._textContent.useState(stateName, keepCurrentStates);\n        }\n        if (this._textGuide) {\n            this._textGuide.useState(stateName, keepCurrentStates);\n        }\n        if (toNormalState) {\n            this.currentStates = [];\n            this._normalState = {};\n        }\n        else {\n            if (!keepCurrentStates) {\n                this.currentStates = [stateName];\n            }\n            else {\n                this.currentStates.push(stateName);\n            }\n        }\n        this._updateAnimationTargets();\n        this.markRedraw();\n        if (!useHoverLayer && this.__inHover) {\n            this._toggleHoverLayerFlag(false);\n            this.__dirty &= ~Element.REDARAW_BIT;\n        }\n        return state;\n    };\n    Element.prototype.useStates = function (states, noAnimation) {\n        if (!states.length) {\n            this.clearStates();\n        }\n        else {\n            var stateObjects = [];\n            var currentStates = this.currentStates;\n            var len = states.length;\n            var notChange = len === currentStates.length;\n            if (notChange) {\n                for (var i = 0; i < len; i++) {\n                    if (states[i] !== currentStates[i]) {\n                        notChange = false;\n                        break;\n                    }\n                }\n            }\n            if (notChange) {\n                return;\n            }\n            for (var i = 0; i < len; i++) {\n                var stateName = states[i];\n                var stateObj = void 0;\n                if (this.stateProxy) {\n                    stateObj = this.stateProxy(stateName, states);\n                }\n                if (!stateObj) {\n                    stateObj = this.states[stateName];\n                }\n                if (stateObj) {\n                    stateObjects.push(stateObj);\n                }\n            }\n            var useHoverLayer = !!(stateObjects[len - 1] && stateObjects[len - 1].hoverLayer);\n            if (useHoverLayer) {\n                this._toggleHoverLayerFlag(true);\n            }\n            var mergedState = this._mergeStates(stateObjects);\n            var animationCfg = this.stateTransition;\n            this.saveCurrentToNormalState(mergedState);\n            this._applyStateObj(states.join(','), mergedState, this._normalState, false, !noAnimation && !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\n            if (this._textContent) {\n                this._textContent.useStates(states);\n            }\n            if (this._textGuide) {\n                this._textGuide.useStates(states);\n            }\n            this._updateAnimationTargets();\n            this.currentStates = states.slice();\n            this.markRedraw();\n            if (!useHoverLayer && this.__inHover) {\n                this._toggleHoverLayerFlag(false);\n                this.__dirty &= ~Element.REDARAW_BIT;\n            }\n        }\n    };\n    Element.prototype._updateAnimationTargets = function () {\n        for (var i = 0; i < this.animators.length; i++) {\n            var animator = this.animators[i];\n            if (animator.targetName) {\n                animator.changeTarget(this[animator.targetName]);\n            }\n        }\n    };\n    Element.prototype.removeState = function (state) {\n        var idx = indexOf(this.currentStates, state);\n        if (idx >= 0) {\n            var currentStates = this.currentStates.slice();\n            currentStates.splice(idx, 1);\n            this.useStates(currentStates);\n        }\n    };\n    Element.prototype.replaceState = function (oldState, newState, forceAdd) {\n        var currentStates = this.currentStates.slice();\n        var idx = indexOf(currentStates, oldState);\n        var newStateExists = indexOf(currentStates, newState) >= 0;\n        if (idx >= 0) {\n            if (!newStateExists) {\n                currentStates[idx] = newState;\n            }\n            else {\n                currentStates.splice(idx, 1);\n            }\n        }\n        else if (forceAdd && !newStateExists) {\n            currentStates.push(newState);\n        }\n        this.useStates(currentStates);\n    };\n    Element.prototype.toggleState = function (state, enable) {\n        if (enable) {\n            this.useState(state, true);\n        }\n        else {\n            this.removeState(state);\n        }\n    };\n    Element.prototype._mergeStates = function (states) {\n        var mergedState = {};\n        var mergedTextConfig;\n        for (var i = 0; i < states.length; i++) {\n            var state = states[i];\n            extend(mergedState, state);\n            if (state.textConfig) {\n                mergedTextConfig = mergedTextConfig || {};\n                extend(mergedTextConfig, state.textConfig);\n            }\n        }\n        if (mergedTextConfig) {\n            mergedState.textConfig = mergedTextConfig;\n        }\n        return mergedState;\n    };\n    Element.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\n        var needsRestoreToNormal = !(state && keepCurrentStates);\n        if (state && state.textConfig) {\n            this.textConfig = extend({}, keepCurrentStates ? this.textConfig : normalState.textConfig);\n            extend(this.textConfig, state.textConfig);\n        }\n        else if (needsRestoreToNormal) {\n            if (normalState.textConfig) {\n                this.textConfig = normalState.textConfig;\n            }\n        }\n        var transitionTarget = {};\n        var hasTransition = false;\n        for (var i = 0; i < PRIMARY_STATES_KEYS.length; i++) {\n            var key = PRIMARY_STATES_KEYS[i];\n            var propNeedsTransition = transition && DEFAULT_ANIMATABLE_MAP[key];\n            if (state && state[key] != null) {\n                if (propNeedsTransition) {\n                    hasTransition = true;\n                    transitionTarget[key] = state[key];\n                }\n                else {\n                    this[key] = state[key];\n                }\n            }\n            else if (needsRestoreToNormal) {\n                if (normalState[key] != null) {\n                    if (propNeedsTransition) {\n                        hasTransition = true;\n                        transitionTarget[key] = normalState[key];\n                    }\n                    else {\n                        this[key] = normalState[key];\n                    }\n                }\n            }\n        }\n        if (!transition) {\n            for (var i = 0; i < this.animators.length; i++) {\n                var animator = this.animators[i];\n                var targetName = animator.targetName;\n                animator.__changeFinalValue(targetName\n                    ? (state || normalState)[targetName]\n                    : (state || normalState));\n            }\n        }\n        if (hasTransition) {\n            this._transitionState(stateName, transitionTarget, animationCfg);\n        }\n    };\n    Element.prototype._attachComponent = function (componentEl) {\n        if (componentEl.__zr && !componentEl.__hostTarget) {\n            throw new Error('Text element has been added to zrender.');\n        }\n        if (componentEl === this) {\n            throw new Error('Recursive component attachment.');\n        }\n        var zr = this.__zr;\n        if (zr) {\n            componentEl.addSelfToZr(zr);\n        }\n        componentEl.__zr = zr;\n        componentEl.__hostTarget = this;\n    };\n    Element.prototype._detachComponent = function (componentEl) {\n        if (componentEl.__zr) {\n            componentEl.removeSelfFromZr(componentEl.__zr);\n        }\n        componentEl.__zr = null;\n        componentEl.__hostTarget = null;\n    };\n    Element.prototype.getClipPath = function () {\n        return this._clipPath;\n    };\n    Element.prototype.setClipPath = function (clipPath) {\n        if (this._clipPath && this._clipPath !== clipPath) {\n            this.removeClipPath();\n        }\n        this._attachComponent(clipPath);\n        this._clipPath = clipPath;\n        this.markRedraw();\n    };\n    Element.prototype.removeClipPath = function () {\n        var clipPath = this._clipPath;\n        if (clipPath) {\n            this._detachComponent(clipPath);\n            this._clipPath = null;\n            this.markRedraw();\n        }\n    };\n    Element.prototype.getTextContent = function () {\n        return this._textContent;\n    };\n    Element.prototype.setTextContent = function (textEl) {\n        var previousTextContent = this._textContent;\n        if (previousTextContent === textEl) {\n            return;\n        }\n        if (previousTextContent && previousTextContent !== textEl) {\n            this.removeTextContent();\n        }\n        if (textEl.__zr && !textEl.__hostTarget) {\n            throw new Error('Text element has been added to zrender.');\n        }\n        textEl.attachedTransform = new Transformable();\n        this._attachComponent(textEl);\n        this._textContent = textEl;\n        this.markRedraw();\n    };\n    Element.prototype.setTextConfig = function (cfg) {\n        if (!this.textConfig) {\n            this.textConfig = {};\n        }\n        extend(this.textConfig, cfg);\n        this.markRedraw();\n    };\n    Element.prototype.removeTextContent = function () {\n        var textEl = this._textContent;\n        if (textEl) {\n            textEl.attachedTransform = null;\n            this._detachComponent(textEl);\n            this._textContent = null;\n            this._innerTextDefaultStyle = null;\n            this.markRedraw();\n        }\n    };\n    Element.prototype.getTextGuideLine = function () {\n        return this._textGuide;\n    };\n    Element.prototype.setTextGuideLine = function (guideLine) {\n        if (this._textGuide && this._textGuide !== guideLine) {\n            this.removeTextGuideLine();\n        }\n        this._attachComponent(guideLine);\n        this._textGuide = guideLine;\n        this.markRedraw();\n    };\n    Element.prototype.removeTextGuideLine = function () {\n        var textGuide = this._textGuide;\n        if (textGuide) {\n            this._detachComponent(textGuide);\n            this._textGuide = null;\n            this.markRedraw();\n        }\n    };\n    Element.prototype.markRedraw = function () {\n        this.__dirty |= Element.REDARAW_BIT;\n        var zr = this.__zr;\n        if (zr) {\n            if (this.__inHover) {\n                zr.refreshHover();\n            }\n            else {\n                zr.refresh();\n            }\n        }\n        if (this.__hostTarget) {\n            this.__hostTarget.markRedraw();\n        }\n    };\n    Element.prototype.dirty = function () {\n        this.markRedraw();\n    };\n    Element.prototype._toggleHoverLayerFlag = function (inHover) {\n        this.__inHover = inHover;\n        var textContent = this._textContent;\n        var textGuide = this._textGuide;\n        if (textContent) {\n            textContent.__inHover = inHover;\n        }\n        if (textGuide) {\n            textGuide.__inHover = inHover;\n        }\n    };\n    Element.prototype.addSelfToZr = function (zr) {\n        this.__zr = zr;\n        var animators = this.animators;\n        if (animators) {\n            for (var i = 0; i < animators.length; i++) {\n                zr.animation.addAnimator(animators[i]);\n            }\n        }\n        if (this._clipPath) {\n            this._clipPath.addSelfToZr(zr);\n        }\n        if (this._textContent) {\n            this._textContent.addSelfToZr(zr);\n        }\n        if (this._textGuide) {\n            this._textGuide.addSelfToZr(zr);\n        }\n    };\n    Element.prototype.removeSelfFromZr = function (zr) {\n        this.__zr = null;\n        var animators = this.animators;\n        if (animators) {\n            for (var i = 0; i < animators.length; i++) {\n                zr.animation.removeAnimator(animators[i]);\n            }\n        }\n        if (this._clipPath) {\n            this._clipPath.removeSelfFromZr(zr);\n        }\n        if (this._textContent) {\n            this._textContent.removeSelfFromZr(zr);\n        }\n        if (this._textGuide) {\n            this._textGuide.removeSelfFromZr(zr);\n        }\n    };\n    Element.prototype.animate = function (key, loop) {\n        var target = key ? this[key] : this;\n        if (!target) {\n            logError('Property \"'\n                + key\n                + '\" is not existed in element '\n                + this.id);\n            return;\n        }\n        var animator = new Animator(target, loop);\n        this.addAnimator(animator, key);\n        return animator;\n    };\n    Element.prototype.addAnimator = function (animator, key) {\n        var zr = this.__zr;\n        var el = this;\n        animator.during(function () {\n            el.updateDuringAnimation(key);\n        }).done(function () {\n            var animators = el.animators;\n            var idx = indexOf(animators, animator);\n            if (idx >= 0) {\n                animators.splice(idx, 1);\n            }\n        });\n        this.animators.push(animator);\n        if (zr) {\n            zr.animation.addAnimator(animator);\n        }\n        zr && zr.wakeUp();\n    };\n    Element.prototype.updateDuringAnimation = function (key) {\n        this.markRedraw();\n    };\n    Element.prototype.stopAnimation = function (scope, forwardToLast) {\n        var animators = this.animators;\n        var len = animators.length;\n        var leftAnimators = [];\n        for (var i = 0; i < len; i++) {\n            var animator = animators[i];\n            if (!scope || scope === animator.scope) {\n                animator.stop(forwardToLast);\n            }\n            else {\n                leftAnimators.push(animator);\n            }\n        }\n        this.animators = leftAnimators;\n        return this;\n    };\n    Element.prototype.animateTo = function (target, cfg, animationProps) {\n        animateTo(this, target, cfg, animationProps);\n    };\n    Element.prototype.animateFrom = function (target, cfg, animationProps) {\n        animateTo(this, target, cfg, animationProps, true);\n    };\n    Element.prototype._transitionState = function (stateName, target, cfg, animationProps) {\n        var animators = animateTo(this, target, cfg, animationProps);\n        for (var i = 0; i < animators.length; i++) {\n            animators[i].__fromStateTransition = stateName;\n        }\n    };\n    Element.prototype.getBoundingRect = function () {\n        return null;\n    };\n    Element.prototype.getPaintRect = function () {\n        return null;\n    };\n    Element.REDARAW_BIT = 1;\n    Element.initDefaultProps = (function () {\n        var elProto = Element.prototype;\n        elProto.type = 'element';\n        elProto.name = '';\n        elProto.ignore = false;\n        elProto.silent = false;\n        elProto.isGroup = false;\n        elProto.draggable = false;\n        elProto.dragging = false;\n        elProto.ignoreClip = false;\n        elProto.__inHover = false;\n        elProto.__dirty = Element.REDARAW_BIT;\n        var logs = {};\n        function logDeprecatedError(key, xKey, yKey) {\n            if (!logs[key + xKey + yKey]) {\n                console.warn(\"DEPRECATED: '\" + key + \"' has been deprecated. use '\" + xKey + \"', '\" + yKey + \"' instead\");\n                logs[key + xKey + yKey] = true;\n            }\n        }\n        function createLegacyProperty(key, privateKey, xKey, yKey) {\n            Object.defineProperty(elProto, key, {\n                get: function () {\n                    logDeprecatedError(key, xKey, yKey);\n                    if (!this[privateKey]) {\n                        var pos = this[privateKey] = [];\n                        enhanceArray(this, pos);\n                    }\n                    return this[privateKey];\n                },\n                set: function (pos) {\n                    logDeprecatedError(key, xKey, yKey);\n                    this[xKey] = pos[0];\n                    this[yKey] = pos[1];\n                    this[privateKey] = pos;\n                    enhanceArray(this, pos);\n                }\n            });\n            function enhanceArray(self, pos) {\n                Object.defineProperty(pos, 0, {\n                    get: function () {\n                        return self[xKey];\n                    },\n                    set: function (val) {\n                        self[xKey] = val;\n                    }\n                });\n                Object.defineProperty(pos, 1, {\n                    get: function () {\n                        return self[yKey];\n                    },\n                    set: function (val) {\n                        self[yKey] = val;\n                    }\n                });\n            }\n        }\n        if (Object.defineProperty && (!env.browser.ie || env.browser.version > 8)) {\n            createLegacyProperty('position', '_legacyPos', 'x', 'y');\n            createLegacyProperty('scale', '_legacyScale', 'scaleX', 'scaleY');\n            createLegacyProperty('origin', '_legacyOrigin', 'originX', 'originY');\n        }\n    })();\n    return Element;\n}());\nmixin(Element, Eventful);\nmixin(Element, Transformable);\nfunction animateTo(animatable, target, cfg, animationProps, reverse) {\n    cfg = cfg || {};\n    var animators = [];\n    animateToShallow(animatable, '', animatable, target, cfg, animationProps, animators, reverse);\n    var finishCount = animators.length;\n    var doneHappened = false;\n    var cfgDone = cfg.done;\n    var cfgAborted = cfg.aborted;\n    var doneCb = function () {\n        doneHappened = true;\n        finishCount--;\n        if (finishCount <= 0) {\n            doneHappened\n                ? (cfgDone && cfgDone())\n                : (cfgAborted && cfgAborted());\n        }\n    };\n    var abortedCb = function () {\n        finishCount--;\n        if (finishCount <= 0) {\n            doneHappened\n                ? (cfgDone && cfgDone())\n                : (cfgAborted && cfgAborted());\n        }\n    };\n    if (!finishCount) {\n        cfgDone && cfgDone();\n    }\n    if (animators.length > 0 && cfg.during) {\n        animators[0].during(function (target, percent) {\n            cfg.during(percent);\n        });\n    }\n    for (var i = 0; i < animators.length; i++) {\n        var animator = animators[i];\n        if (doneCb) {\n            animator.done(doneCb);\n        }\n        if (abortedCb) {\n            animator.aborted(abortedCb);\n        }\n        animator.start(cfg.easing, cfg.force);\n    }\n    return animators;\n}\nfunction copyArrShallow(source, target, len) {\n    for (var i = 0; i < len; i++) {\n        source[i] = target[i];\n    }\n}\nfunction is2DArray(value) {\n    return isArrayLike(value[0]);\n}\nfunction copyValue(target, source, key) {\n    if (isArrayLike(source[key])) {\n        if (!isArrayLike(target[key])) {\n            target[key] = [];\n        }\n        if (isTypedArray(source[key])) {\n            var len = source[key].length;\n            if (target[key].length !== len) {\n                target[key] = new (source[key].constructor)(len);\n                copyArrShallow(target[key], source[key], len);\n            }\n        }\n        else {\n            var sourceArr = source[key];\n            var targetArr = target[key];\n            var len0 = sourceArr.length;\n            if (is2DArray(sourceArr)) {\n                var len1 = sourceArr[0].length;\n                for (var i = 0; i < len0; i++) {\n                    if (!targetArr[i]) {\n                        targetArr[i] = Array.prototype.slice.call(sourceArr[i]);\n                    }\n                    else {\n                        copyArrShallow(targetArr[i], sourceArr[i], len1);\n                    }\n                }\n            }\n            else {\n                copyArrShallow(targetArr, sourceArr, len0);\n            }\n            targetArr.length = sourceArr.length;\n        }\n    }\n    else {\n        target[key] = source[key];\n    }\n}\nfunction animateToShallow(animatable, topKey, source, target, cfg, animationProps, animators, reverse) {\n    var animatableKeys = [];\n    var changedKeys = [];\n    var targetKeys = keys(target);\n    var duration = cfg.duration;\n    var delay = cfg.delay;\n    var additive = cfg.additive;\n    var setToFinal = cfg.setToFinal;\n    var animateAll = !isObject(animationProps);\n    for (var k = 0; k < targetKeys.length; k++) {\n        var innerKey = targetKeys[k];\n        if (source[innerKey] != null\n            && target[innerKey] != null\n            && (animateAll || animationProps[innerKey])) {\n            if (isObject(target[innerKey]) && !isArrayLike(target[innerKey])) {\n                if (topKey) {\n                    if (!reverse) {\n                        source[innerKey] = target[innerKey];\n                        animatable.updateDuringAnimation(topKey);\n                    }\n                    continue;\n                }\n                animateToShallow(animatable, innerKey, source[innerKey], target[innerKey], cfg, animationProps && animationProps[innerKey], animators, reverse);\n            }\n            else {\n                animatableKeys.push(innerKey);\n                changedKeys.push(innerKey);\n            }\n        }\n        else if (!reverse) {\n            source[innerKey] = target[innerKey];\n            animatable.updateDuringAnimation(topKey);\n            changedKeys.push(innerKey);\n        }\n    }\n    var keyLen = animatableKeys.length;\n    if (keyLen > 0\n        || (cfg.force && !animators.length)) {\n        var existsAnimators = animatable.animators;\n        var existsAnimatorsOnSameTarget = [];\n        for (var i = 0; i < existsAnimators.length; i++) {\n            if (existsAnimators[i].targetName === topKey) {\n                existsAnimatorsOnSameTarget.push(existsAnimators[i]);\n            }\n        }\n        if (!additive && existsAnimatorsOnSameTarget.length) {\n            for (var i = 0; i < existsAnimatorsOnSameTarget.length; i++) {\n                var allAborted = existsAnimatorsOnSameTarget[i].stopTracks(changedKeys);\n                if (allAborted) {\n                    var idx = indexOf(existsAnimators, existsAnimatorsOnSameTarget[i]);\n                    existsAnimators.splice(idx, 1);\n                }\n            }\n        }\n        var revertedSource = void 0;\n        var reversedTarget = void 0;\n        var sourceClone = void 0;\n        if (reverse) {\n            reversedTarget = {};\n            if (setToFinal) {\n                revertedSource = {};\n            }\n            for (var i = 0; i < keyLen; i++) {\n                var innerKey = animatableKeys[i];\n                reversedTarget[innerKey] = source[innerKey];\n                if (setToFinal) {\n                    revertedSource[innerKey] = target[innerKey];\n                }\n                else {\n                    source[innerKey] = target[innerKey];\n                }\n            }\n        }\n        else if (setToFinal) {\n            sourceClone = {};\n            for (var i = 0; i < keyLen; i++) {\n                var innerKey = animatableKeys[i];\n                sourceClone[innerKey] = cloneValue(source[innerKey]);\n                copyValue(source, target, innerKey);\n            }\n        }\n        var animator = new Animator(source, false, additive ? existsAnimatorsOnSameTarget : null);\n        animator.targetName = topKey;\n        if (cfg.scope) {\n            animator.scope = cfg.scope;\n        }\n        if (setToFinal && revertedSource) {\n            animator.whenWithKeys(0, revertedSource, animatableKeys);\n        }\n        if (sourceClone) {\n            animator.whenWithKeys(0, sourceClone, animatableKeys);\n        }\n        animator.whenWithKeys(duration == null ? 500 : duration, reverse ? reversedTarget : target, animatableKeys).delay(delay || 0);\n        animatable.addAnimator(animator, topKey);\n        animators.push(animator);\n    }\n}\nexport default Element;\n","var DEFAULT_MIN_MERGE = 32;\nvar DEFAULT_MIN_GALLOPING = 7;\nvar DEFAULT_TMP_STORAGE_LENGTH = 256;\nfunction minRunLength(n) {\n    var r = 0;\n    while (n >= DEFAULT_MIN_MERGE) {\n        r |= n & 1;\n        n >>= 1;\n    }\n    return n + r;\n}\nfunction makeAscendingRun(array, lo, hi, compare) {\n    var runHi = lo + 1;\n    if (runHi === hi) {\n        return 1;\n    }\n    if (compare(array[runHi++], array[lo]) < 0) {\n        while (runHi < hi && compare(array[runHi], array[runHi - 1]) < 0) {\n            runHi++;\n        }\n        reverseRun(array, lo, runHi);\n    }\n    else {\n        while (runHi < hi && compare(array[runHi], array[runHi - 1]) >= 0) {\n            runHi++;\n        }\n    }\n    return runHi - lo;\n}\nfunction reverseRun(array, lo, hi) {\n    hi--;\n    while (lo < hi) {\n        var t = array[lo];\n        array[lo++] = array[hi];\n        array[hi--] = t;\n    }\n}\nfunction binaryInsertionSort(array, lo, hi, start, compare) {\n    if (start === lo) {\n        start++;\n    }\n    for (; start < hi; start++) {\n        var pivot = array[start];\n        var left = lo;\n        var right = start;\n        var mid;\n        while (left < right) {\n            mid = left + right >>> 1;\n            if (compare(pivot, array[mid]) < 0) {\n                right = mid;\n            }\n            else {\n                left = mid + 1;\n            }\n        }\n        var n = start - left;\n        switch (n) {\n            case 3:\n                array[left + 3] = array[left + 2];\n            case 2:\n                array[left + 2] = array[left + 1];\n            case 1:\n                array[left + 1] = array[left];\n                break;\n            default:\n                while (n > 0) {\n                    array[left + n] = array[left + n - 1];\n                    n--;\n                }\n        }\n        array[left] = pivot;\n    }\n}\nfunction gallopLeft(value, array, start, length, hint, compare) {\n    var lastOffset = 0;\n    var maxOffset = 0;\n    var offset = 1;\n    if (compare(value, array[start + hint]) > 0) {\n        maxOffset = length - hint;\n        while (offset < maxOffset && compare(value, array[start + hint + offset]) > 0) {\n            lastOffset = offset;\n            offset = (offset << 1) + 1;\n            if (offset <= 0) {\n                offset = maxOffset;\n            }\n        }\n        if (offset > maxOffset) {\n            offset = maxOffset;\n        }\n        lastOffset += hint;\n        offset += hint;\n    }\n    else {\n        maxOffset = hint + 1;\n        while (offset < maxOffset && compare(value, array[start + hint - offset]) <= 0) {\n            lastOffset = offset;\n            offset = (offset << 1) + 1;\n            if (offset <= 0) {\n                offset = maxOffset;\n            }\n        }\n        if (offset > maxOffset) {\n            offset = maxOffset;\n        }\n        var tmp = lastOffset;\n        lastOffset = hint - offset;\n        offset = hint - tmp;\n    }\n    lastOffset++;\n    while (lastOffset < offset) {\n        var m = lastOffset + (offset - lastOffset >>> 1);\n        if (compare(value, array[start + m]) > 0) {\n            lastOffset = m + 1;\n        }\n        else {\n            offset = m;\n        }\n    }\n    return offset;\n}\nfunction gallopRight(value, array, start, length, hint, compare) {\n    var lastOffset = 0;\n    var maxOffset = 0;\n    var offset = 1;\n    if (compare(value, array[start + hint]) < 0) {\n        maxOffset = hint + 1;\n        while (offset < maxOffset && compare(value, array[start + hint - offset]) < 0) {\n            lastOffset = offset;\n            offset = (offset << 1) + 1;\n            if (offset <= 0) {\n                offset = maxOffset;\n            }\n        }\n        if (offset > maxOffset) {\n            offset = maxOffset;\n        }\n        var tmp = lastOffset;\n        lastOffset = hint - offset;\n        offset = hint - tmp;\n    }\n    else {\n        maxOffset = length - hint;\n        while (offset < maxOffset && compare(value, array[start + hint + offset]) >= 0) {\n            lastOffset = offset;\n            offset = (offset << 1) + 1;\n            if (offset <= 0) {\n                offset = maxOffset;\n            }\n        }\n        if (offset > maxOffset) {\n            offset = maxOffset;\n        }\n        lastOffset += hint;\n        offset += hint;\n    }\n    lastOffset++;\n    while (lastOffset < offset) {\n        var m = lastOffset + (offset - lastOffset >>> 1);\n        if (compare(value, array[start + m]) < 0) {\n            offset = m;\n        }\n        else {\n            lastOffset = m + 1;\n        }\n    }\n    return offset;\n}\nfunction TimSort(array, compare) {\n    var minGallop = DEFAULT_MIN_GALLOPING;\n    var length = 0;\n    var tmpStorageLength = DEFAULT_TMP_STORAGE_LENGTH;\n    var stackLength = 0;\n    var runStart;\n    var runLength;\n    var stackSize = 0;\n    length = array.length;\n    if (length < 2 * DEFAULT_TMP_STORAGE_LENGTH) {\n        tmpStorageLength = length >>> 1;\n    }\n    var tmp = [];\n    stackLength = length < 120 ? 5 : length < 1542 ? 10 : length < 119151 ? 19 : 40;\n    runStart = [];\n    runLength = [];\n    function pushRun(_runStart, _runLength) {\n        runStart[stackSize] = _runStart;\n        runLength[stackSize] = _runLength;\n        stackSize += 1;\n    }\n    function mergeRuns() {\n        while (stackSize > 1) {\n            var n = stackSize - 2;\n            if ((n >= 1 && runLength[n - 1] <= runLength[n] + runLength[n + 1])\n                || (n >= 2 && runLength[n - 2] <= runLength[n] + runLength[n - 1])) {\n                if (runLength[n - 1] < runLength[n + 1]) {\n                    n--;\n                }\n            }\n            else if (runLength[n] > runLength[n + 1]) {\n                break;\n            }\n            mergeAt(n);\n        }\n    }\n    function forceMergeRuns() {\n        while (stackSize > 1) {\n            var n = stackSize - 2;\n            if (n > 0 && runLength[n - 1] < runLength[n + 1]) {\n                n--;\n            }\n            mergeAt(n);\n        }\n    }\n    function mergeAt(i) {\n        var start1 = runStart[i];\n        var length1 = runLength[i];\n        var start2 = runStart[i + 1];\n        var length2 = runLength[i + 1];\n        runLength[i] = length1 + length2;\n        if (i === stackSize - 3) {\n            runStart[i + 1] = runStart[i + 2];\n            runLength[i + 1] = runLength[i + 2];\n        }\n        stackSize--;\n        var k = gallopRight(array[start2], array, start1, length1, 0, compare);\n        start1 += k;\n        length1 -= k;\n        if (length1 === 0) {\n            return;\n        }\n        length2 = gallopLeft(array[start1 + length1 - 1], array, start2, length2, length2 - 1, compare);\n        if (length2 === 0) {\n            return;\n        }\n        if (length1 <= length2) {\n            mergeLow(start1, length1, start2, length2);\n        }\n        else {\n            mergeHigh(start1, length1, start2, length2);\n        }\n    }\n    function mergeLow(start1, length1, start2, length2) {\n        var i = 0;\n        for (i = 0; i < length1; i++) {\n            tmp[i] = array[start1 + i];\n        }\n        var cursor1 = 0;\n        var cursor2 = start2;\n        var dest = start1;\n        array[dest++] = array[cursor2++];\n        if (--length2 === 0) {\n            for (i = 0; i < length1; i++) {\n                array[dest + i] = tmp[cursor1 + i];\n            }\n            return;\n        }\n        if (length1 === 1) {\n            for (i = 0; i < length2; i++) {\n                array[dest + i] = array[cursor2 + i];\n            }\n            array[dest + length2] = tmp[cursor1];\n            return;\n        }\n        var _minGallop = minGallop;\n        var count1;\n        var count2;\n        var exit;\n        while (1) {\n            count1 = 0;\n            count2 = 0;\n            exit = false;\n            do {\n                if (compare(array[cursor2], tmp[cursor1]) < 0) {\n                    array[dest++] = array[cursor2++];\n                    count2++;\n                    count1 = 0;\n                    if (--length2 === 0) {\n                        exit = true;\n                        break;\n                    }\n                }\n                else {\n                    array[dest++] = tmp[cursor1++];\n                    count1++;\n                    count2 = 0;\n                    if (--length1 === 1) {\n                        exit = true;\n                        break;\n                    }\n                }\n            } while ((count1 | count2) < _minGallop);\n            if (exit) {\n                break;\n            }\n            do {\n                count1 = gallopRight(array[cursor2], tmp, cursor1, length1, 0, compare);\n                if (count1 !== 0) {\n                    for (i = 0; i < count1; i++) {\n                        array[dest + i] = tmp[cursor1 + i];\n                    }\n                    dest += count1;\n                    cursor1 += count1;\n                    length1 -= count1;\n                    if (length1 <= 1) {\n                        exit = true;\n                        break;\n                    }\n                }\n                array[dest++] = array[cursor2++];\n                if (--length2 === 0) {\n                    exit = true;\n                    break;\n                }\n                count2 = gallopLeft(tmp[cursor1], array, cursor2, length2, 0, compare);\n                if (count2 !== 0) {\n                    for (i = 0; i < count2; i++) {\n                        array[dest + i] = array[cursor2 + i];\n                    }\n                    dest += count2;\n                    cursor2 += count2;\n                    length2 -= count2;\n                    if (length2 === 0) {\n                        exit = true;\n                        break;\n                    }\n                }\n                array[dest++] = tmp[cursor1++];\n                if (--length1 === 1) {\n                    exit = true;\n                    break;\n                }\n                _minGallop--;\n            } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\n            if (exit) {\n                break;\n            }\n            if (_minGallop < 0) {\n                _minGallop = 0;\n            }\n            _minGallop += 2;\n        }\n        minGallop = _minGallop;\n        minGallop < 1 && (minGallop = 1);\n        if (length1 === 1) {\n            for (i = 0; i < length2; i++) {\n                array[dest + i] = array[cursor2 + i];\n            }\n            array[dest + length2] = tmp[cursor1];\n        }\n        else if (length1 === 0) {\n            throw new Error();\n        }\n        else {\n            for (i = 0; i < length1; i++) {\n                array[dest + i] = tmp[cursor1 + i];\n            }\n        }\n    }\n    function mergeHigh(start1, length1, start2, length2) {\n        var i = 0;\n        for (i = 0; i < length2; i++) {\n            tmp[i] = array[start2 + i];\n        }\n        var cursor1 = start1 + length1 - 1;\n        var cursor2 = length2 - 1;\n        var dest = start2 + length2 - 1;\n        var customCursor = 0;\n        var customDest = 0;\n        array[dest--] = array[cursor1--];\n        if (--length1 === 0) {\n            customCursor = dest - (length2 - 1);\n            for (i = 0; i < length2; i++) {\n                array[customCursor + i] = tmp[i];\n            }\n            return;\n        }\n        if (length2 === 1) {\n            dest -= length1;\n            cursor1 -= length1;\n            customDest = dest + 1;\n            customCursor = cursor1 + 1;\n            for (i = length1 - 1; i >= 0; i--) {\n                array[customDest + i] = array[customCursor + i];\n            }\n            array[dest] = tmp[cursor2];\n            return;\n        }\n        var _minGallop = minGallop;\n        while (true) {\n            var count1 = 0;\n            var count2 = 0;\n            var exit = false;\n            do {\n                if (compare(tmp[cursor2], array[cursor1]) < 0) {\n                    array[dest--] = array[cursor1--];\n                    count1++;\n                    count2 = 0;\n                    if (--length1 === 0) {\n                        exit = true;\n                        break;\n                    }\n                }\n                else {\n                    array[dest--] = tmp[cursor2--];\n                    count2++;\n                    count1 = 0;\n                    if (--length2 === 1) {\n                        exit = true;\n                        break;\n                    }\n                }\n            } while ((count1 | count2) < _minGallop);\n            if (exit) {\n                break;\n            }\n            do {\n                count1 = length1 - gallopRight(tmp[cursor2], array, start1, length1, length1 - 1, compare);\n                if (count1 !== 0) {\n                    dest -= count1;\n                    cursor1 -= count1;\n                    length1 -= count1;\n                    customDest = dest + 1;\n                    customCursor = cursor1 + 1;\n                    for (i = count1 - 1; i >= 0; i--) {\n                        array[customDest + i] = array[customCursor + i];\n                    }\n                    if (length1 === 0) {\n                        exit = true;\n                        break;\n                    }\n                }\n                array[dest--] = tmp[cursor2--];\n                if (--length2 === 1) {\n                    exit = true;\n                    break;\n                }\n                count2 = length2 - gallopLeft(array[cursor1], tmp, 0, length2, length2 - 1, compare);\n                if (count2 !== 0) {\n                    dest -= count2;\n                    cursor2 -= count2;\n                    length2 -= count2;\n                    customDest = dest + 1;\n                    customCursor = cursor2 + 1;\n                    for (i = 0; i < count2; i++) {\n                        array[customDest + i] = tmp[customCursor + i];\n                    }\n                    if (length2 <= 1) {\n                        exit = true;\n                        break;\n                    }\n                }\n                array[dest--] = array[cursor1--];\n                if (--length1 === 0) {\n                    exit = true;\n                    break;\n                }\n                _minGallop--;\n            } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\n            if (exit) {\n                break;\n            }\n            if (_minGallop < 0) {\n                _minGallop = 0;\n            }\n            _minGallop += 2;\n        }\n        minGallop = _minGallop;\n        if (minGallop < 1) {\n            minGallop = 1;\n        }\n        if (length2 === 1) {\n            dest -= length1;\n            cursor1 -= length1;\n            customDest = dest + 1;\n            customCursor = cursor1 + 1;\n            for (i = length1 - 1; i >= 0; i--) {\n                array[customDest + i] = array[customCursor + i];\n            }\n            array[dest] = tmp[cursor2];\n        }\n        else if (length2 === 0) {\n            throw new Error();\n        }\n        else {\n            customCursor = dest - (length2 - 1);\n            for (i = 0; i < length2; i++) {\n                array[customCursor + i] = tmp[i];\n            }\n        }\n    }\n    return {\n        mergeRuns: mergeRuns,\n        forceMergeRuns: forceMergeRuns,\n        pushRun: pushRun\n    };\n}\nexport default function sort(array, compare, lo, hi) {\n    if (!lo) {\n        lo = 0;\n    }\n    if (!hi) {\n        hi = array.length;\n    }\n    var remaining = hi - lo;\n    if (remaining < 2) {\n        return;\n    }\n    var runLength = 0;\n    if (remaining < DEFAULT_MIN_MERGE) {\n        runLength = makeAscendingRun(array, lo, hi, compare);\n        binaryInsertionSort(array, lo, hi, lo + runLength, compare);\n        return;\n    }\n    var ts = TimSort(array, compare);\n    var minRun = minRunLength(remaining);\n    do {\n        runLength = makeAscendingRun(array, lo, hi, compare);\n        if (runLength < minRun) {\n            var force = remaining;\n            if (force > minRun) {\n                force = minRun;\n            }\n            binaryInsertionSort(array, lo, lo + force, lo + runLength, compare);\n            runLength = force;\n        }\n        ts.pushRun(lo, runLength);\n        ts.mergeRuns();\n        remaining -= runLength;\n        lo += runLength;\n    } while (remaining !== 0);\n    ts.forceMergeRuns();\n}\n","import * as util from './core/util';\nimport env from './core/env';\nimport Element from './Element';\nimport timsort from './core/timsort';\nvar invalidZErrorLogged = false;\nfunction logInvalidZError() {\n    if (invalidZErrorLogged) {\n        return;\n    }\n    invalidZErrorLogged = true;\n    console.warn('z / z2 / zlevel of displayable is invalid, which may cause unexpected errors');\n}\nfunction shapeCompareFunc(a, b) {\n    if (a.zlevel === b.zlevel) {\n        if (a.z === b.z) {\n            return a.z2 - b.z2;\n        }\n        return a.z - b.z;\n    }\n    return a.zlevel - b.zlevel;\n}\nvar Storage = (function () {\n    function Storage() {\n        this._roots = [];\n        this._displayList = [];\n        this._displayListLen = 0;\n        this.displayableSortFunc = shapeCompareFunc;\n    }\n    Storage.prototype.traverse = function (cb, context) {\n        for (var i = 0; i < this._roots.length; i++) {\n            this._roots[i].traverse(cb, context);\n        }\n    };\n    Storage.prototype.getDisplayList = function (update, includeIgnore) {\n        includeIgnore = includeIgnore || false;\n        var displayList = this._displayList;\n        if (update || !displayList.length) {\n            this.updateDisplayList(includeIgnore);\n        }\n        return displayList;\n    };\n    Storage.prototype.updateDisplayList = function (includeIgnore) {\n        this._displayListLen = 0;\n        var roots = this._roots;\n        var displayList = this._displayList;\n        for (var i = 0, len = roots.length; i < len; i++) {\n            this._updateAndAddDisplayable(roots[i], null, includeIgnore);\n        }\n        displayList.length = this._displayListLen;\n        env.canvasSupported && timsort(displayList, shapeCompareFunc);\n    };\n    Storage.prototype._updateAndAddDisplayable = function (el, clipPaths, includeIgnore) {\n        if (el.ignore && !includeIgnore) {\n            return;\n        }\n        el.beforeUpdate();\n        el.update();\n        el.afterUpdate();\n        var userSetClipPath = el.getClipPath();\n        if (el.ignoreClip) {\n            clipPaths = null;\n        }\n        else if (userSetClipPath) {\n            if (clipPaths) {\n                clipPaths = clipPaths.slice();\n            }\n            else {\n                clipPaths = [];\n            }\n            var currentClipPath = userSetClipPath;\n            var parentClipPath = el;\n            while (currentClipPath) {\n                currentClipPath.parent = parentClipPath;\n                currentClipPath.updateTransform();\n                clipPaths.push(currentClipPath);\n                parentClipPath = currentClipPath;\n                currentClipPath = currentClipPath.getClipPath();\n            }\n        }\n        if (el.childrenRef) {\n            var children = el.childrenRef();\n            for (var i = 0; i < children.length; i++) {\n                var child = children[i];\n                if (el.__dirty) {\n                    child.__dirty |= Element.REDARAW_BIT;\n                }\n                this._updateAndAddDisplayable(child, clipPaths, includeIgnore);\n            }\n            el.__dirty = 0;\n        }\n        else {\n            var disp = el;\n            if (clipPaths && clipPaths.length) {\n                disp.__clipPaths = clipPaths;\n            }\n            else if (disp.__clipPaths && disp.__clipPaths.length > 0) {\n                disp.__clipPaths = [];\n            }\n            if (isNaN(disp.z)) {\n                logInvalidZError();\n                disp.z = 0;\n            }\n            if (isNaN(disp.z2)) {\n                logInvalidZError();\n                disp.z2 = 0;\n            }\n            if (isNaN(disp.zlevel)) {\n                logInvalidZError();\n                disp.zlevel = 0;\n            }\n            this._displayList[this._displayListLen++] = disp;\n        }\n        var decalEl = el.getDecalElement && el.getDecalElement();\n        if (decalEl) {\n            this._updateAndAddDisplayable(decalEl, clipPaths, includeIgnore);\n        }\n        var textGuide = el.getTextGuideLine();\n        if (textGuide) {\n            this._updateAndAddDisplayable(textGuide, clipPaths, includeIgnore);\n        }\n        var textEl = el.getTextContent();\n        if (textEl) {\n            this._updateAndAddDisplayable(textEl, clipPaths, includeIgnore);\n        }\n    };\n    Storage.prototype.addRoot = function (el) {\n        if (el.__zr && el.__zr.storage === this) {\n            return;\n        }\n        this._roots.push(el);\n    };\n    Storage.prototype.delRoot = function (el) {\n        if (el instanceof Array) {\n            for (var i = 0, l = el.length; i < l; i++) {\n                this.delRoot(el[i]);\n            }\n            return;\n        }\n        var idx = util.indexOf(this._roots, el);\n        if (idx >= 0) {\n            this._roots.splice(idx, 1);\n        }\n    };\n    Storage.prototype.delAllRoots = function () {\n        this._roots = [];\n        this._displayList = [];\n        this._displayListLen = 0;\n        return;\n    };\n    Storage.prototype.getRoots = function () {\n        return this._roots;\n    };\n    Storage.prototype.dispose = function () {\n        this._displayList = null;\n        this._roots = null;\n    };\n    return Storage;\n}());\nexport default Storage;\n","var requestAnimationFrame;\nrequestAnimationFrame = (typeof window !== 'undefined'\n    && ((window.requestAnimationFrame && window.requestAnimationFrame.bind(window))\n        || (window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window))\n        || window.mozRequestAnimationFrame\n        || window.webkitRequestAnimationFrame)) || function (func) {\n    return setTimeout(func, 16);\n};\nexport default requestAnimationFrame;\n","import { __extends } from \"tslib\";\nimport Eventful from '../core/Eventful';\nimport requestAnimationFrame from './requestAnimationFrame';\nimport Animator from './Animator';\nvar Animation = (function (_super) {\n    __extends(Animation, _super);\n    function Animation(opts) {\n        var _this = _super.call(this) || this;\n        _this._running = false;\n        _this._time = 0;\n        _this._pausedTime = 0;\n        _this._pauseStart = 0;\n        _this._paused = false;\n        opts = opts || {};\n        _this.stage = opts.stage || {};\n        _this.onframe = opts.onframe || function () { };\n        return _this;\n    }\n    Animation.prototype.addClip = function (clip) {\n        if (clip.animation) {\n            this.removeClip(clip);\n        }\n        if (!this._clipsHead) {\n            this._clipsHead = this._clipsTail = clip;\n        }\n        else {\n            this._clipsTail.next = clip;\n            clip.prev = this._clipsTail;\n            clip.next = null;\n            this._clipsTail = clip;\n        }\n        clip.animation = this;\n    };\n    Animation.prototype.addAnimator = function (animator) {\n        animator.animation = this;\n        var clip = animator.getClip();\n        if (clip) {\n            this.addClip(clip);\n        }\n    };\n    Animation.prototype.removeClip = function (clip) {\n        if (!clip.animation) {\n            return;\n        }\n        var prev = clip.prev;\n        var next = clip.next;\n        if (prev) {\n            prev.next = next;\n        }\n        else {\n            this._clipsHead = next;\n        }\n        if (next) {\n            next.prev = prev;\n        }\n        else {\n            this._clipsTail = prev;\n        }\n        clip.next = clip.prev = clip.animation = null;\n    };\n    Animation.prototype.removeAnimator = function (animator) {\n        var clip = animator.getClip();\n        if (clip) {\n            this.removeClip(clip);\n        }\n        animator.animation = null;\n    };\n    Animation.prototype.update = function (notTriggerFrameAndStageUpdate) {\n        var time = new Date().getTime() - this._pausedTime;\n        var delta = time - this._time;\n        var clip = this._clipsHead;\n        while (clip) {\n            var nextClip = clip.next;\n            var finished = clip.step(time, delta);\n            if (finished) {\n                clip.ondestroy && clip.ondestroy();\n                this.removeClip(clip);\n                clip = nextClip;\n            }\n            else {\n                clip = nextClip;\n            }\n        }\n        this._time = time;\n        if (!notTriggerFrameAndStageUpdate) {\n            this.onframe(delta);\n            this.trigger('frame', delta);\n            this.stage.update && this.stage.update();\n        }\n    };\n    Animation.prototype._startLoop = function () {\n        var self = this;\n        this._running = true;\n        function step() {\n            if (self._running) {\n                requestAnimationFrame(step);\n                !self._paused && self.update();\n            }\n        }\n        requestAnimationFrame(step);\n    };\n    Animation.prototype.start = function () {\n        if (this._running) {\n            return;\n        }\n        this._time = new Date().getTime();\n        this._pausedTime = 0;\n        this._startLoop();\n    };\n    Animation.prototype.stop = function () {\n        this._running = false;\n    };\n    Animation.prototype.pause = function () {\n        if (!this._paused) {\n            this._pauseStart = new Date().getTime();\n            this._paused = true;\n        }\n    };\n    Animation.prototype.resume = function () {\n        if (this._paused) {\n            this._pausedTime += (new Date().getTime()) - this._pauseStart;\n            this._paused = false;\n        }\n    };\n    Animation.prototype.clear = function () {\n        var clip = this._clipsHead;\n        while (clip) {\n            var nextClip = clip.next;\n            clip.prev = clip.next = clip.animation = null;\n            clip = nextClip;\n        }\n        this._clipsHead = this._clipsTail = null;\n    };\n    Animation.prototype.isFinished = function () {\n        return this._clipsHead == null;\n    };\n    Animation.prototype.animate = function (target, options) {\n        options = options || {};\n        this.start();\n        var animator = new Animator(target, options.loop);\n        this.addAnimator(animator);\n        return animator;\n    };\n    return Animation;\n}(Eventful));\nexport default Animation;\n","import { __extends } from \"tslib\";\nimport { addEventListener, removeEventListener, normalizeEvent, getNativeEvent } from '../core/event';\nimport * as zrUtil from '../core/util';\nimport Eventful from '../core/Eventful';\nimport env from '../core/env';\nvar TOUCH_CLICK_DELAY = 300;\nvar globalEventSupported = env.domSupported;\nvar localNativeListenerNames = (function () {\n    var mouseHandlerNames = [\n        'click', 'dblclick', 'mousewheel', 'wheel', 'mouseout',\n        'mouseup', 'mousedown', 'mousemove', 'contextmenu'\n    ];\n    var touchHandlerNames = [\n        'touchstart', 'touchend', 'touchmove'\n    ];\n    var pointerEventNameMap = {\n        pointerdown: 1, pointerup: 1, pointermove: 1, pointerout: 1\n    };\n    var pointerHandlerNames = zrUtil.map(mouseHandlerNames, function (name) {\n        var nm = name.replace('mouse', 'pointer');\n        return pointerEventNameMap.hasOwnProperty(nm) ? nm : name;\n    });\n    return {\n        mouse: mouseHandlerNames,\n        touch: touchHandlerNames,\n        pointer: pointerHandlerNames\n    };\n})();\nvar globalNativeListenerNames = {\n    mouse: ['mousemove', 'mouseup'],\n    pointer: ['pointermove', 'pointerup']\n};\nvar wheelEventSupported = false;\nfunction isPointerFromTouch(event) {\n    var pointerType = event.pointerType;\n    return pointerType === 'pen' || pointerType === 'touch';\n}\nfunction setTouchTimer(scope) {\n    scope.touching = true;\n    if (scope.touchTimer != null) {\n        clearTimeout(scope.touchTimer);\n        scope.touchTimer = null;\n    }\n    scope.touchTimer = setTimeout(function () {\n        scope.touching = false;\n        scope.touchTimer = null;\n    }, 700);\n}\nfunction markTouch(event) {\n    event && (event.zrByTouch = true);\n}\nfunction normalizeGlobalEvent(instance, event) {\n    return normalizeEvent(instance.dom, new FakeGlobalEvent(instance, event), true);\n}\nfunction isLocalEl(instance, el) {\n    var elTmp = el;\n    var isLocal = false;\n    while (elTmp && elTmp.nodeType !== 9\n        && !(isLocal = elTmp.domBelongToZr\n            || (elTmp !== el && elTmp === instance.painterRoot))) {\n        elTmp = elTmp.parentNode;\n    }\n    return isLocal;\n}\nvar FakeGlobalEvent = (function () {\n    function FakeGlobalEvent(instance, event) {\n        this.stopPropagation = zrUtil.noop;\n        this.stopImmediatePropagation = zrUtil.noop;\n        this.preventDefault = zrUtil.noop;\n        this.type = event.type;\n        this.target = this.currentTarget = instance.dom;\n        this.pointerType = event.pointerType;\n        this.clientX = event.clientX;\n        this.clientY = event.clientY;\n    }\n    return FakeGlobalEvent;\n}());\nvar localDOMHandlers = {\n    mousedown: function (event) {\n        event = normalizeEvent(this.dom, event);\n        this.__mayPointerCapture = [event.zrX, event.zrY];\n        this.trigger('mousedown', event);\n    },\n    mousemove: function (event) {\n        event = normalizeEvent(this.dom, event);\n        var downPoint = this.__mayPointerCapture;\n        if (downPoint && (event.zrX !== downPoint[0] || event.zrY !== downPoint[1])) {\n            this.__togglePointerCapture(true);\n        }\n        this.trigger('mousemove', event);\n    },\n    mouseup: function (event) {\n        event = normalizeEvent(this.dom, event);\n        this.__togglePointerCapture(false);\n        this.trigger('mouseup', event);\n    },\n    mouseout: function (event) {\n        event = normalizeEvent(this.dom, event);\n        var element = event.toElement || event.relatedTarget;\n        if (!isLocalEl(this, element)) {\n            if (this.__pointerCapturing) {\n                event.zrEventControl = 'no_globalout';\n            }\n            this.trigger('mouseout', event);\n        }\n    },\n    wheel: function (event) {\n        wheelEventSupported = true;\n        event = normalizeEvent(this.dom, event);\n        this.trigger('mousewheel', event);\n    },\n    mousewheel: function (event) {\n        if (wheelEventSupported) {\n            return;\n        }\n        event = normalizeEvent(this.dom, event);\n        this.trigger('mousewheel', event);\n    },\n    touchstart: function (event) {\n        event = normalizeEvent(this.dom, event);\n        markTouch(event);\n        this.__lastTouchMoment = new Date();\n        this.handler.processGesture(event, 'start');\n        localDOMHandlers.mousemove.call(this, event);\n        localDOMHandlers.mousedown.call(this, event);\n    },\n    touchmove: function (event) {\n        event = normalizeEvent(this.dom, event);\n        markTouch(event);\n        this.handler.processGesture(event, 'change');\n        localDOMHandlers.mousemove.call(this, event);\n    },\n    touchend: function (event) {\n        event = normalizeEvent(this.dom, event);\n        markTouch(event);\n        this.handler.processGesture(event, 'end');\n        localDOMHandlers.mouseup.call(this, event);\n        if (+new Date() - (+this.__lastTouchMoment) < TOUCH_CLICK_DELAY) {\n            localDOMHandlers.click.call(this, event);\n        }\n    },\n    pointerdown: function (event) {\n        localDOMHandlers.mousedown.call(this, event);\n    },\n    pointermove: function (event) {\n        if (!isPointerFromTouch(event)) {\n            localDOMHandlers.mousemove.call(this, event);\n        }\n    },\n    pointerup: function (event) {\n        localDOMHandlers.mouseup.call(this, event);\n    },\n    pointerout: function (event) {\n        if (!isPointerFromTouch(event)) {\n            localDOMHandlers.mouseout.call(this, event);\n        }\n    }\n};\nzrUtil.each(['click', 'dblclick', 'contextmenu'], function (name) {\n    localDOMHandlers[name] = function (event) {\n        event = normalizeEvent(this.dom, event);\n        this.trigger(name, event);\n    };\n});\nvar globalDOMHandlers = {\n    pointermove: function (event) {\n        if (!isPointerFromTouch(event)) {\n            globalDOMHandlers.mousemove.call(this, event);\n        }\n    },\n    pointerup: function (event) {\n        globalDOMHandlers.mouseup.call(this, event);\n    },\n    mousemove: function (event) {\n        this.trigger('mousemove', event);\n    },\n    mouseup: function (event) {\n        var pointerCaptureReleasing = this.__pointerCapturing;\n        this.__togglePointerCapture(false);\n        this.trigger('mouseup', event);\n        if (pointerCaptureReleasing) {\n            event.zrEventControl = 'only_globalout';\n            this.trigger('mouseout', event);\n        }\n    }\n};\nfunction mountLocalDOMEventListeners(instance, scope) {\n    var domHandlers = scope.domHandlers;\n    if (env.pointerEventsSupported) {\n        zrUtil.each(localNativeListenerNames.pointer, function (nativeEventName) {\n            mountSingleDOMEventListener(scope, nativeEventName, function (event) {\n                domHandlers[nativeEventName].call(instance, event);\n            });\n        });\n    }\n    else {\n        if (env.touchEventsSupported) {\n            zrUtil.each(localNativeListenerNames.touch, function (nativeEventName) {\n                mountSingleDOMEventListener(scope, nativeEventName, function (event) {\n                    domHandlers[nativeEventName].call(instance, event);\n                    setTouchTimer(scope);\n                });\n            });\n        }\n        zrUtil.each(localNativeListenerNames.mouse, function (nativeEventName) {\n            mountSingleDOMEventListener(scope, nativeEventName, function (event) {\n                event = getNativeEvent(event);\n                if (!scope.touching) {\n                    domHandlers[nativeEventName].call(instance, event);\n                }\n            });\n        });\n    }\n}\nfunction mountGlobalDOMEventListeners(instance, scope) {\n    if (env.pointerEventsSupported) {\n        zrUtil.each(globalNativeListenerNames.pointer, mount);\n    }\n    else if (!env.touchEventsSupported) {\n        zrUtil.each(globalNativeListenerNames.mouse, mount);\n    }\n    function mount(nativeEventName) {\n        function nativeEventListener(event) {\n            event = getNativeEvent(event);\n            if (!isLocalEl(instance, event.target)) {\n                event = normalizeGlobalEvent(instance, event);\n                scope.domHandlers[nativeEventName].call(instance, event);\n            }\n        }\n        mountSingleDOMEventListener(scope, nativeEventName, nativeEventListener, { capture: true });\n    }\n}\nfunction mountSingleDOMEventListener(scope, nativeEventName, listener, opt) {\n    scope.mounted[nativeEventName] = listener;\n    scope.listenerOpts[nativeEventName] = opt;\n    addEventListener(scope.domTarget, nativeEventName, listener, opt);\n}\nfunction unmountDOMEventListeners(scope) {\n    var mounted = scope.mounted;\n    for (var nativeEventName in mounted) {\n        if (mounted.hasOwnProperty(nativeEventName)) {\n            removeEventListener(scope.domTarget, nativeEventName, mounted[nativeEventName], scope.listenerOpts[nativeEventName]);\n        }\n    }\n    scope.mounted = {};\n}\nvar DOMHandlerScope = (function () {\n    function DOMHandlerScope(domTarget, domHandlers) {\n        this.mounted = {};\n        this.listenerOpts = {};\n        this.touching = false;\n        this.domTarget = domTarget;\n        this.domHandlers = domHandlers;\n    }\n    return DOMHandlerScope;\n}());\nvar HandlerDomProxy = (function (_super) {\n    __extends(HandlerDomProxy, _super);\n    function HandlerDomProxy(dom, painterRoot) {\n        var _this = _super.call(this) || this;\n        _this.__pointerCapturing = false;\n        _this.dom = dom;\n        _this.painterRoot = painterRoot;\n        _this._localHandlerScope = new DOMHandlerScope(dom, localDOMHandlers);\n        if (globalEventSupported) {\n            _this._globalHandlerScope = new DOMHandlerScope(document, globalDOMHandlers);\n        }\n        mountLocalDOMEventListeners(_this, _this._localHandlerScope);\n        return _this;\n    }\n    HandlerDomProxy.prototype.dispose = function () {\n        unmountDOMEventListeners(this._localHandlerScope);\n        if (globalEventSupported) {\n            unmountDOMEventListeners(this._globalHandlerScope);\n        }\n    };\n    HandlerDomProxy.prototype.setCursor = function (cursorStyle) {\n        this.dom.style && (this.dom.style.cursor = cursorStyle || 'default');\n    };\n    HandlerDomProxy.prototype.__togglePointerCapture = function (isPointerCapturing) {\n        this.__mayPointerCapture = null;\n        if (globalEventSupported\n            && ((+this.__pointerCapturing) ^ (+isPointerCapturing))) {\n            this.__pointerCapturing = isPointerCapturing;\n            var globalHandlerScope = this._globalHandlerScope;\n            isPointerCapturing\n                ? mountGlobalDOMEventListeners(this, globalHandlerScope)\n                : unmountDOMEventListeners(globalHandlerScope);\n        }\n    };\n    return HandlerDomProxy;\n}(Eventful));\nexport default HandlerDomProxy;\n","import { __extends } from \"tslib\";\nimport * as zrUtil from '../core/util';\nimport Element from '../Element';\nimport BoundingRect from '../core/BoundingRect';\nvar Group = (function (_super) {\n    __extends(Group, _super);\n    function Group(opts) {\n        var _this = _super.call(this) || this;\n        _this.isGroup = true;\n        _this._children = [];\n        _this.attr(opts);\n        return _this;\n    }\n    Group.prototype.childrenRef = function () {\n        return this._children;\n    };\n    Group.prototype.children = function () {\n        return this._children.slice();\n    };\n    Group.prototype.childAt = function (idx) {\n        return this._children[idx];\n    };\n    Group.prototype.childOfName = function (name) {\n        var children = this._children;\n        for (var i = 0; i < children.length; i++) {\n            if (children[i].name === name) {\n                return children[i];\n            }\n        }\n    };\n    Group.prototype.childCount = function () {\n        return this._children.length;\n    };\n    Group.prototype.add = function (child) {\n        if (child) {\n            if (child !== this && child.parent !== this) {\n                this._children.push(child);\n                this._doAdd(child);\n            }\n            if (child.__hostTarget) {\n                throw 'This elemenet has been used as an attachment';\n            }\n        }\n        return this;\n    };\n    Group.prototype.addBefore = function (child, nextSibling) {\n        if (child && child !== this && child.parent !== this\n            && nextSibling && nextSibling.parent === this) {\n            var children = this._children;\n            var idx = children.indexOf(nextSibling);\n            if (idx >= 0) {\n                children.splice(idx, 0, child);\n                this._doAdd(child);\n            }\n        }\n        return this;\n    };\n    Group.prototype.replaceAt = function (child, index) {\n        var children = this._children;\n        var old = children[index];\n        if (child && child !== this && child.parent !== this && child !== old) {\n            children[index] = child;\n            old.parent = null;\n            var zr = this.__zr;\n            if (zr) {\n                old.removeSelfFromZr(zr);\n            }\n            this._doAdd(child);\n        }\n        return this;\n    };\n    Group.prototype._doAdd = function (child) {\n        if (child.parent) {\n            child.parent.remove(child);\n        }\n        child.parent = this;\n        var zr = this.__zr;\n        if (zr && zr !== child.__zr) {\n            child.addSelfToZr(zr);\n        }\n        zr && zr.refresh();\n    };\n    Group.prototype.remove = function (child) {\n        var zr = this.__zr;\n        var children = this._children;\n        var idx = zrUtil.indexOf(children, child);\n        if (idx < 0) {\n            return this;\n        }\n        children.splice(idx, 1);\n        child.parent = null;\n        if (zr) {\n            child.removeSelfFromZr(zr);\n        }\n        zr && zr.refresh();\n        return this;\n    };\n    Group.prototype.removeAll = function () {\n        var children = this._children;\n        var zr = this.__zr;\n        for (var i = 0; i < children.length; i++) {\n            var child = children[i];\n            if (zr) {\n                child.removeSelfFromZr(zr);\n            }\n            child.parent = null;\n        }\n        children.length = 0;\n        return this;\n    };\n    Group.prototype.eachChild = function (cb, context) {\n        var children = this._children;\n        for (var i = 0; i < children.length; i++) {\n            var child = children[i];\n            cb.call(context, child, i);\n        }\n        return this;\n    };\n    Group.prototype.traverse = function (cb, context) {\n        for (var i = 0; i < this._children.length; i++) {\n            var child = this._children[i];\n            var stopped = cb.call(context, child);\n            if (child.isGroup && !stopped) {\n                child.traverse(cb, context);\n            }\n        }\n        return this;\n    };\n    Group.prototype.addSelfToZr = function (zr) {\n        _super.prototype.addSelfToZr.call(this, zr);\n        for (var i = 0; i < this._children.length; i++) {\n            var child = this._children[i];\n            child.addSelfToZr(zr);\n        }\n    };\n    Group.prototype.removeSelfFromZr = function (zr) {\n        _super.prototype.removeSelfFromZr.call(this, zr);\n        for (var i = 0; i < this._children.length; i++) {\n            var child = this._children[i];\n            child.removeSelfFromZr(zr);\n        }\n    };\n    Group.prototype.getBoundingRect = function (includeChildren) {\n        var tmpRect = new BoundingRect(0, 0, 0, 0);\n        var children = includeChildren || this._children;\n        var tmpMat = [];\n        var rect = null;\n        for (var i = 0; i < children.length; i++) {\n            var child = children[i];\n            if (child.ignore || child.invisible) {\n                continue;\n            }\n            var childRect = child.getBoundingRect();\n            var transform = child.getLocalTransform(tmpMat);\n            if (transform) {\n                BoundingRect.applyTransform(tmpRect, childRect, transform);\n                rect = rect || tmpRect.clone();\n                rect.union(tmpRect);\n            }\n            else {\n                rect = rect || childRect.clone();\n                rect.union(childRect);\n            }\n        }\n        return rect || tmpRect;\n    };\n    return Group;\n}(Element));\nGroup.prototype.type = 'group';\nexport default Group;\n","/*!\n* ZRender, a high performance 2d drawing library.\n*\n* Copyright (c) 2013, Baidu Inc.\n* All rights reserved.\n*\n* LICENSE\n* https://github.com/ecomfe/zrender/blob/master/LICENSE.txt\n*/\nimport env from './core/env';\nimport * as zrUtil from './core/util';\nimport Handler from './Handler';\nimport Storage from './Storage';\nimport Animation from './animation/Animation';\nimport HandlerProxy from './dom/HandlerProxy';\nimport { lum } from './tool/color';\nimport { DARK_MODE_THRESHOLD } from './config';\nimport Group from './graphic/Group';\nvar useVML = !env.canvasSupported;\nvar painterCtors = {};\nvar instances = {};\nfunction delInstance(id) {\n    delete instances[id];\n}\nfunction isDarkMode(backgroundColor) {\n    if (!backgroundColor) {\n        return false;\n    }\n    if (typeof backgroundColor === 'string') {\n        return lum(backgroundColor, 1) < DARK_MODE_THRESHOLD;\n    }\n    else if (backgroundColor.colorStops) {\n        var colorStops = backgroundColor.colorStops;\n        var totalLum = 0;\n        var len = colorStops.length;\n        for (var i = 0; i < len; i++) {\n            totalLum += lum(colorStops[i].color, 1);\n        }\n        totalLum /= len;\n        return totalLum < DARK_MODE_THRESHOLD;\n    }\n    return false;\n}\nvar ZRender = (function () {\n    function ZRender(id, dom, opts) {\n        var _this = this;\n        this._sleepAfterStill = 10;\n        this._stillFrameAccum = 0;\n        this._needsRefresh = true;\n        this._needsRefreshHover = true;\n        this._darkMode = false;\n        opts = opts || {};\n        this.dom = dom;\n        this.id = id;\n        var storage = new Storage();\n        var rendererType = opts.renderer || 'canvas';\n        if (useVML) {\n            throw new Error('IE8 support has been dropped since 5.0');\n        }\n        if (!painterCtors[rendererType]) {\n            rendererType = zrUtil.keys(painterCtors)[0];\n        }\n        if (!painterCtors[rendererType]) {\n            throw new Error(\"Renderer '\" + rendererType + \"' is not imported. Please import it first.\");\n        }\n        opts.useDirtyRect = opts.useDirtyRect == null\n            ? false\n            : opts.useDirtyRect;\n        var painter = new painterCtors[rendererType](dom, storage, opts, id);\n        this.storage = storage;\n        this.painter = painter;\n        var handerProxy = (!env.node && !env.worker)\n            ? new HandlerProxy(painter.getViewportRoot(), painter.root)\n            : null;\n        this.handler = new Handler(storage, painter, handerProxy, painter.root);\n        this.animation = new Animation({\n            stage: {\n                update: function () { return _this._flush(true); }\n            }\n        });\n        this.animation.start();\n    }\n    ZRender.prototype.add = function (el) {\n        if (!el) {\n            return;\n        }\n        this.storage.addRoot(el);\n        el.addSelfToZr(this);\n        this.refresh();\n    };\n    ZRender.prototype.remove = function (el) {\n        if (!el) {\n            return;\n        }\n        this.storage.delRoot(el);\n        el.removeSelfFromZr(this);\n        this.refresh();\n    };\n    ZRender.prototype.configLayer = function (zLevel, config) {\n        if (this.painter.configLayer) {\n            this.painter.configLayer(zLevel, config);\n        }\n        this.refresh();\n    };\n    ZRender.prototype.setBackgroundColor = function (backgroundColor) {\n        if (this.painter.setBackgroundColor) {\n            this.painter.setBackgroundColor(backgroundColor);\n        }\n        this.refresh();\n        this._backgroundColor = backgroundColor;\n        this._darkMode = isDarkMode(backgroundColor);\n    };\n    ZRender.prototype.getBackgroundColor = function () {\n        return this._backgroundColor;\n    };\n    ZRender.prototype.setDarkMode = function (darkMode) {\n        this._darkMode = darkMode;\n    };\n    ZRender.prototype.isDarkMode = function () {\n        return this._darkMode;\n    };\n    ZRender.prototype.refreshImmediately = function (fromInside) {\n        if (!fromInside) {\n            this.animation.update(true);\n        }\n        this._needsRefresh = false;\n        this.painter.refresh();\n        this._needsRefresh = false;\n    };\n    ZRender.prototype.refresh = function () {\n        this._needsRefresh = true;\n        this.animation.start();\n    };\n    ZRender.prototype.flush = function () {\n        this._flush(false);\n    };\n    ZRender.prototype._flush = function (fromInside) {\n        var triggerRendered;\n        var start = new Date().getTime();\n        if (this._needsRefresh) {\n            triggerRendered = true;\n            this.refreshImmediately(fromInside);\n        }\n        if (this._needsRefreshHover) {\n            triggerRendered = true;\n            this.refreshHoverImmediately();\n        }\n        var end = new Date().getTime();\n        if (triggerRendered) {\n            this._stillFrameAccum = 0;\n            this.trigger('rendered', {\n                elapsedTime: end - start\n            });\n        }\n        else if (this._sleepAfterStill > 0) {\n            this._stillFrameAccum++;\n            if (this._stillFrameAccum > this._sleepAfterStill) {\n                this.animation.stop();\n            }\n        }\n    };\n    ZRender.prototype.setSleepAfterStill = function (stillFramesCount) {\n        this._sleepAfterStill = stillFramesCount;\n    };\n    ZRender.prototype.wakeUp = function () {\n        this.animation.start();\n        this._stillFrameAccum = 0;\n    };\n    ZRender.prototype.addHover = function (el) {\n    };\n    ZRender.prototype.removeHover = function (el) {\n    };\n    ZRender.prototype.clearHover = function () {\n    };\n    ZRender.prototype.refreshHover = function () {\n        this._needsRefreshHover = true;\n    };\n    ZRender.prototype.refreshHoverImmediately = function () {\n        this._needsRefreshHover = false;\n        if (this.painter.refreshHover && this.painter.getType() === 'canvas') {\n            this.painter.refreshHover();\n        }\n    };\n    ZRender.prototype.resize = function (opts) {\n        opts = opts || {};\n        this.painter.resize(opts.width, opts.height);\n        this.handler.resize();\n    };\n    ZRender.prototype.clearAnimation = function () {\n        this.animation.clear();\n    };\n    ZRender.prototype.getWidth = function () {\n        return this.painter.getWidth();\n    };\n    ZRender.prototype.getHeight = function () {\n        return this.painter.getHeight();\n    };\n    ZRender.prototype.pathToImage = function (e, dpr) {\n        if (this.painter.pathToImage) {\n            return this.painter.pathToImage(e, dpr);\n        }\n    };\n    ZRender.prototype.setCursorStyle = function (cursorStyle) {\n        this.handler.setCursorStyle(cursorStyle);\n    };\n    ZRender.prototype.findHover = function (x, y) {\n        return this.handler.findHover(x, y);\n    };\n    ZRender.prototype.on = function (eventName, eventHandler, context) {\n        this.handler.on(eventName, eventHandler, context);\n        return this;\n    };\n    ZRender.prototype.off = function (eventName, eventHandler) {\n        this.handler.off(eventName, eventHandler);\n    };\n    ZRender.prototype.trigger = function (eventName, event) {\n        this.handler.trigger(eventName, event);\n    };\n    ZRender.prototype.clear = function () {\n        var roots = this.storage.getRoots();\n        for (var i = 0; i < roots.length; i++) {\n            if (roots[i] instanceof Group) {\n                roots[i].removeSelfFromZr(this);\n            }\n        }\n        this.storage.delAllRoots();\n        this.painter.clear();\n    };\n    ZRender.prototype.dispose = function () {\n        this.animation.stop();\n        this.clear();\n        this.storage.dispose();\n        this.painter.dispose();\n        this.handler.dispose();\n        this.animation =\n            this.storage =\n                this.painter =\n                    this.handler = null;\n        delInstance(this.id);\n    };\n    return ZRender;\n}());\nexport function init(dom, opts) {\n    var zr = new ZRender(zrUtil.guid(), dom, opts);\n    instances[zr.id] = zr;\n    return zr;\n}\nexport function dispose(zr) {\n    zr.dispose();\n}\nexport function disposeAll() {\n    for (var key in instances) {\n        if (instances.hasOwnProperty(key)) {\n            instances[key].dispose();\n        }\n    }\n    instances = {};\n}\nexport function getInstance(id) {\n    return instances[id];\n}\nexport function registerPainter(name, Ctor) {\n    painterCtors[name] = Ctor;\n}\nexport var version = '5.0.3';\n;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar RADIAN_EPSILON = 1e-4;\n\nfunction _trim(str) {\n  return str.replace(/^\\s+|\\s+$/g, '');\n}\n\nexport function linearMap(val, domain, range, clamp) {\n  var subDomain = domain[1] - domain[0];\n  var subRange = range[1] - range[0];\n\n  if (subDomain === 0) {\n    return subRange === 0 ? range[0] : (range[0] + range[1]) / 2;\n  }\n\n  if (clamp) {\n    if (subDomain > 0) {\n      if (val <= domain[0]) {\n        return range[0];\n      } else if (val >= domain[1]) {\n        return range[1];\n      }\n    } else {\n      if (val >= domain[0]) {\n        return range[0];\n      } else if (val <= domain[1]) {\n        return range[1];\n      }\n    }\n  } else {\n    if (val === domain[0]) {\n      return range[0];\n    }\n\n    if (val === domain[1]) {\n      return range[1];\n    }\n  }\n\n  return (val - domain[0]) / subDomain * subRange + range[0];\n}\nexport function parsePercent(percent, all) {\n  switch (percent) {\n    case 'center':\n    case 'middle':\n      percent = '50%';\n      break;\n\n    case 'left':\n    case 'top':\n      percent = '0%';\n      break;\n\n    case 'right':\n    case 'bottom':\n      percent = '100%';\n      break;\n  }\n\n  if (typeof percent === 'string') {\n    if (_trim(percent).match(/%$/)) {\n      return parseFloat(percent) / 100 * all;\n    }\n\n    return parseFloat(percent);\n  }\n\n  return percent == null ? NaN : +percent;\n}\nexport function round(x, precision, returnStr) {\n  if (precision == null) {\n    precision = 10;\n  }\n\n  precision = Math.min(Math.max(0, precision), 20);\n  x = (+x).toFixed(precision);\n  return returnStr ? x : +x;\n}\nexport function asc(arr) {\n  arr.sort(function (a, b) {\n    return a - b;\n  });\n  return arr;\n}\nexport function getPrecision(val) {\n  val = +val;\n\n  if (isNaN(val)) {\n    return 0;\n  }\n\n  var e = 1;\n  var count = 0;\n\n  while (Math.round(val * e) / e !== val) {\n    e *= 10;\n    count++;\n  }\n\n  return count;\n}\nexport function getPrecisionSafe(val) {\n  var str = val.toString();\n  var eIndex = str.indexOf('e');\n\n  if (eIndex > 0) {\n    var precision = +str.slice(eIndex + 1);\n    return precision < 0 ? -precision : 0;\n  } else {\n    var dotIndex = str.indexOf('.');\n    return dotIndex < 0 ? 0 : str.length - 1 - dotIndex;\n  }\n}\nexport function getPixelPrecision(dataExtent, pixelExtent) {\n  var log = Math.log;\n  var LN10 = Math.LN10;\n  var dataQuantity = Math.floor(log(dataExtent[1] - dataExtent[0]) / LN10);\n  var sizeQuantity = Math.round(log(Math.abs(pixelExtent[1] - pixelExtent[0])) / LN10);\n  var precision = Math.min(Math.max(-dataQuantity + sizeQuantity, 0), 20);\n  return !isFinite(precision) ? 20 : precision;\n}\nexport function getPercentWithPrecision(valueList, idx, precision) {\n  if (!valueList[idx]) {\n    return 0;\n  }\n\n  var sum = zrUtil.reduce(valueList, function (acc, val) {\n    return acc + (isNaN(val) ? 0 : val);\n  }, 0);\n\n  if (sum === 0) {\n    return 0;\n  }\n\n  var digits = Math.pow(10, precision);\n  var votesPerQuota = zrUtil.map(valueList, function (val) {\n    return (isNaN(val) ? 0 : val) / sum * digits * 100;\n  });\n  var targetSeats = digits * 100;\n  var seats = zrUtil.map(votesPerQuota, function (votes) {\n    return Math.floor(votes);\n  });\n  var currentSum = zrUtil.reduce(seats, function (acc, val) {\n    return acc + val;\n  }, 0);\n  var remainder = zrUtil.map(votesPerQuota, function (votes, idx) {\n    return votes - seats[idx];\n  });\n\n  while (currentSum < targetSeats) {\n    var max = Number.NEGATIVE_INFINITY;\n    var maxId = null;\n\n    for (var i = 0, len = remainder.length; i < len; ++i) {\n      if (remainder[i] > max) {\n        max = remainder[i];\n        maxId = i;\n      }\n    }\n\n    ++seats[maxId];\n    remainder[maxId] = 0;\n    ++currentSum;\n  }\n\n  return seats[idx] / digits;\n}\nexport var MAX_SAFE_INTEGER = 9007199254740991;\nexport function remRadian(radian) {\n  var pi2 = Math.PI * 2;\n  return (radian % pi2 + pi2) % pi2;\n}\nexport function isRadianAroundZero(val) {\n  return val > -RADIAN_EPSILON && val < RADIAN_EPSILON;\n}\nvar 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)?)?)?)?)?$/;\nexport function parseDate(value) {\n  if (value instanceof Date) {\n    return value;\n  } else if (typeof value === 'string') {\n    var match = TIME_REG.exec(value);\n\n    if (!match) {\n      return new Date(NaN);\n    }\n\n    if (!match[8]) {\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);\n    } else {\n      var hour = +match[4] || 0;\n\n      if (match[8].toUpperCase() !== 'Z') {\n        hour -= +match[8].slice(0, 3);\n      }\n\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));\n    }\n  } else if (value == null) {\n    return new Date(NaN);\n  }\n\n  return new Date(Math.round(value));\n}\nexport function quantity(val) {\n  return Math.pow(10, quantityExponent(val));\n}\nexport function quantityExponent(val) {\n  if (val === 0) {\n    return 0;\n  }\n\n  var exp = Math.floor(Math.log(val) / Math.LN10);\n\n  if (val / Math.pow(10, exp) >= 10) {\n    exp++;\n  }\n\n  return exp;\n}\nexport function nice(val, round) {\n  var exponent = quantityExponent(val);\n  var exp10 = Math.pow(10, exponent);\n  var f = val / exp10;\n  var nf;\n\n  if (round) {\n    if (f < 1.5) {\n      nf = 1;\n    } else if (f < 2.5) {\n      nf = 2;\n    } else if (f < 4) {\n      nf = 3;\n    } else if (f < 7) {\n      nf = 5;\n    } else {\n      nf = 10;\n    }\n  } else {\n    if (f < 1) {\n      nf = 1;\n    } else if (f < 2) {\n      nf = 2;\n    } else if (f < 3) {\n      nf = 3;\n    } else if (f < 5) {\n      nf = 5;\n    } else {\n      nf = 10;\n    }\n  }\n\n  val = nf * exp10;\n  return exponent >= -20 ? +val.toFixed(exponent < 0 ? -exponent : 0) : val;\n}\nexport function quantile(ascArr, p) {\n  var H = (ascArr.length - 1) * p + 1;\n  var h = Math.floor(H);\n  var v = +ascArr[h - 1];\n  var e = H - h;\n  return e ? v + e * (ascArr[h] - v) : v;\n}\nexport function reformIntervals(list) {\n  list.sort(function (a, b) {\n    return littleThan(a, b, 0) ? -1 : 1;\n  });\n  var curr = -Infinity;\n  var currClose = 1;\n\n  for (var i = 0; i < list.length;) {\n    var interval = list[i].interval;\n    var close_1 = list[i].close;\n\n    for (var lg = 0; lg < 2; lg++) {\n      if (interval[lg] <= curr) {\n        interval[lg] = curr;\n        close_1[lg] = !lg ? 1 - currClose : 1;\n      }\n\n      curr = interval[lg];\n      currClose = close_1[lg];\n    }\n\n    if (interval[0] === interval[1] && close_1[0] * close_1[1] !== 1) {\n      list.splice(i, 1);\n    } else {\n      i++;\n    }\n  }\n\n  return list;\n\n  function littleThan(a, b, lg) {\n    return a.interval[lg] < b.interval[lg] || a.interval[lg] === b.interval[lg] && (a.close[lg] - b.close[lg] === (!lg ? 1 : -1) || !lg && littleThan(a, b, 1));\n  }\n}\nexport function numericToNumber(val) {\n  var valFloat = parseFloat(val);\n  return valFloat == val && (valFloat !== 0 || typeof val !== 'string' || val.indexOf('x') <= 0) ? valFloat : NaN;\n}\nexport function isNumeric(val) {\n  return !isNaN(numericToNumber(val));\n}\nexport function getRandomIdBase() {\n  return Math.round(Math.random() * 9);\n}\nexport function getGreatestCommonDividor(a, b) {\n  if (b === 0) {\n    return a;\n  }\n\n  return getGreatestCommonDividor(b, a % b);\n}\nexport function getLeastCommonMultiple(a, b) {\n  if (a == null) {\n    return b;\n  }\n\n  if (b == null) {\n    return a;\n  }\n\n  return a * b / getGreatestCommonDividor(a, b);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { map, isString, isFunction, eqNaN, isRegExp } from 'zrender/lib/core/util';\nvar ECHARTS_PREFIX = '[ECharts] ';\nvar storedLogs = {};\nvar hasConsole = typeof console !== 'undefined' && console.warn && console.log;\nexport function log(str) {\n  if (hasConsole) {\n    console.log(ECHARTS_PREFIX + str);\n  }\n}\nexport function warn(str) {\n  if (hasConsole) {\n    console.warn(ECHARTS_PREFIX + str);\n  }\n}\nexport function error(str) {\n  if (hasConsole) {\n    console.error(ECHARTS_PREFIX + str);\n  }\n}\nexport function deprecateLog(str) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (storedLogs[str]) {\n      return;\n    }\n\n    if (hasConsole) {\n      storedLogs[str] = true;\n      console.warn(ECHARTS_PREFIX + 'DEPRECATED: ' + str);\n    }\n  }\n}\nexport function deprecateReplaceLog(oldOpt, newOpt, scope) {\n  if (process.env.NODE_ENV !== 'production') {\n    deprecateLog((scope ? \"[\" + scope + \"]\" : '') + (oldOpt + \" is deprecated, use \" + newOpt + \" instead.\"));\n  }\n}\nexport function consoleLog() {\n  var args = [];\n\n  for (var _i = 0; _i < arguments.length; _i++) {\n    args[_i] = arguments[_i];\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (typeof console !== 'undefined' && console.log) {\n      console.log.apply(console, args);\n    }\n  }\n}\nexport function makePrintable() {\n  var hintInfo = [];\n\n  for (var _i = 0; _i < arguments.length; _i++) {\n    hintInfo[_i] = arguments[_i];\n  }\n\n  var msg = '';\n\n  if (process.env.NODE_ENV !== 'production') {\n    var makePrintableStringIfPossible_1 = function (val) {\n      return val === void 0 ? 'undefined' : val === Infinity ? 'Infinity' : val === -Infinity ? '-Infinity' : eqNaN(val) ? 'NaN' : val instanceof Date ? 'Date(' + val.toISOString() + ')' : isFunction(val) ? 'function () { ... }' : isRegExp(val) ? val + '' : null;\n    };\n\n    msg = map(hintInfo, function (arg) {\n      if (isString(arg)) {\n        return arg;\n      } else {\n        var printableStr = makePrintableStringIfPossible_1(arg);\n\n        if (printableStr != null) {\n          return printableStr;\n        } else if (typeof JSON !== 'undefined' && JSON.stringify) {\n          try {\n            return JSON.stringify(arg, function (n, val) {\n              var printableStr = makePrintableStringIfPossible_1(val);\n              return printableStr == null ? val : printableStr;\n            });\n          } catch (err) {\n            return '?';\n          }\n        } else {\n          return '?';\n        }\n      }\n    }).join(' ');\n  }\n\n  return msg;\n}\nexport function throwError(msg) {\n  throw new Error(msg);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, isObject, isArray, createHashMap, map, assert, isString, indexOf, isStringSafe } from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport { isNumeric, getRandomIdBase, getPrecisionSafe, round } from './number';\nimport { interpolateNumber } from 'zrender/lib/animation/Animator';\nimport { warn } from './log';\nvar DUMMY_COMPONENT_NAME_PREFIX = 'series\\0';\nvar INTERNAL_COMPONENT_ID_PREFIX = '\\0_ec_\\0';\nexport function normalizeToArray(value) {\n  return value instanceof Array ? value : value == null ? [] : [value];\n}\nexport function defaultEmphasis(opt, key, subOpts) {\n  if (opt) {\n    opt[key] = opt[key] || {};\n    opt.emphasis = opt.emphasis || {};\n    opt.emphasis[key] = opt.emphasis[key] || {};\n\n    for (var i = 0, len = subOpts.length; i < len; i++) {\n      var subOptName = subOpts[i];\n\n      if (!opt.emphasis[key].hasOwnProperty(subOptName) && opt[key].hasOwnProperty(subOptName)) {\n        opt.emphasis[key][subOptName] = opt[key][subOptName];\n      }\n    }\n  }\n}\nexport var TEXT_STYLE_OPTIONS = ['fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'rich', 'tag', 'color', 'textBorderColor', 'textBorderWidth', 'width', 'height', 'lineHeight', 'align', 'verticalAlign', 'baseline', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY', 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY', 'backgroundColor', 'borderColor', 'borderWidth', 'borderRadius', 'padding'];\nexport function getDataItemValue(dataItem) {\n  return isObject(dataItem) && !isArray(dataItem) && !(dataItem instanceof Date) ? dataItem.value : dataItem;\n}\nexport function isDataItemOption(dataItem) {\n  return isObject(dataItem) && !(dataItem instanceof Array);\n}\n;\nexport function mappingToExists(existings, newCmptOptions, mode) {\n  var isNormalMergeMode = mode === 'normalMerge';\n  var isReplaceMergeMode = mode === 'replaceMerge';\n  var isReplaceAllMode = mode === 'replaceAll';\n  existings = existings || [];\n  newCmptOptions = (newCmptOptions || []).slice();\n  var existingIdIdxMap = createHashMap();\n  each(newCmptOptions, function (cmptOption, index) {\n    if (!isObject(cmptOption)) {\n      newCmptOptions[index] = null;\n      return;\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (cmptOption.id != null && !isValidIdOrName(cmptOption.id)) {\n        warnInvalidateIdOrName(cmptOption.id);\n      }\n\n      if (cmptOption.name != null && !isValidIdOrName(cmptOption.name)) {\n        warnInvalidateIdOrName(cmptOption.name);\n      }\n    }\n  });\n  var result = prepareResult(existings, existingIdIdxMap, mode);\n\n  if (isNormalMergeMode || isReplaceMergeMode) {\n    mappingById(result, existings, existingIdIdxMap, newCmptOptions);\n  }\n\n  if (isNormalMergeMode) {\n    mappingByName(result, newCmptOptions);\n  }\n\n  if (isNormalMergeMode || isReplaceMergeMode) {\n    mappingByIndex(result, newCmptOptions, isReplaceMergeMode);\n  } else if (isReplaceAllMode) {\n    mappingInReplaceAllMode(result, newCmptOptions);\n  }\n\n  makeIdAndName(result);\n  return result;\n}\n\nfunction prepareResult(existings, existingIdIdxMap, mode) {\n  var result = [];\n\n  if (mode === 'replaceAll') {\n    return result;\n  }\n\n  for (var index = 0; index < existings.length; index++) {\n    var existing = existings[index];\n\n    if (existing && existing.id != null) {\n      existingIdIdxMap.set(existing.id, index);\n    }\n\n    result.push({\n      existing: mode === 'replaceMerge' || isComponentIdInternal(existing) ? null : existing,\n      newOption: null,\n      keyInfo: null,\n      brandNew: null\n    });\n  }\n\n  return result;\n}\n\nfunction mappingById(result, existings, existingIdIdxMap, newCmptOptions) {\n  each(newCmptOptions, function (cmptOption, index) {\n    if (!cmptOption || cmptOption.id == null) {\n      return;\n    }\n\n    var optionId = makeComparableKey(cmptOption.id);\n    var existingIdx = existingIdIdxMap.get(optionId);\n\n    if (existingIdx != null) {\n      var resultItem = result[existingIdx];\n      assert(!resultItem.newOption, 'Duplicated option on id \"' + optionId + '\".');\n      resultItem.newOption = cmptOption;\n      resultItem.existing = existings[existingIdx];\n      newCmptOptions[index] = null;\n    }\n  });\n}\n\nfunction mappingByName(result, newCmptOptions) {\n  each(newCmptOptions, function (cmptOption, index) {\n    if (!cmptOption || cmptOption.name == null) {\n      return;\n    }\n\n    for (var i = 0; i < result.length; i++) {\n      var existing = result[i].existing;\n\n      if (!result[i].newOption && existing && (existing.id == null || cmptOption.id == null) && !isComponentIdInternal(cmptOption) && !isComponentIdInternal(existing) && keyExistAndEqual('name', existing, cmptOption)) {\n        result[i].newOption = cmptOption;\n        newCmptOptions[index] = null;\n        return;\n      }\n    }\n  });\n}\n\nfunction mappingByIndex(result, newCmptOptions, brandNew) {\n  each(newCmptOptions, function (cmptOption) {\n    if (!cmptOption) {\n      return;\n    }\n\n    var resultItem;\n    var nextIdx = 0;\n\n    while ((resultItem = result[nextIdx]) && (resultItem.newOption || isComponentIdInternal(resultItem.existing) || resultItem.existing && cmptOption.id != null && !keyExistAndEqual('id', cmptOption, resultItem.existing))) {\n      nextIdx++;\n    }\n\n    if (resultItem) {\n      resultItem.newOption = cmptOption;\n      resultItem.brandNew = brandNew;\n    } else {\n      result.push({\n        newOption: cmptOption,\n        brandNew: brandNew,\n        existing: null,\n        keyInfo: null\n      });\n    }\n\n    nextIdx++;\n  });\n}\n\nfunction mappingInReplaceAllMode(result, newCmptOptions) {\n  each(newCmptOptions, function (cmptOption) {\n    result.push({\n      newOption: cmptOption,\n      brandNew: true,\n      existing: null,\n      keyInfo: null\n    });\n  });\n}\n\nfunction makeIdAndName(mapResult) {\n  var idMap = createHashMap();\n  each(mapResult, function (item) {\n    var existing = item.existing;\n    existing && idMap.set(existing.id, item);\n  });\n  each(mapResult, function (item) {\n    var opt = item.newOption;\n    assert(!opt || opt.id == null || !idMap.get(opt.id) || idMap.get(opt.id) === item, 'id duplicates: ' + (opt && opt.id));\n    opt && opt.id != null && idMap.set(opt.id, item);\n    !item.keyInfo && (item.keyInfo = {});\n  });\n  each(mapResult, function (item, index) {\n    var existing = item.existing;\n    var opt = item.newOption;\n    var keyInfo = item.keyInfo;\n\n    if (!isObject(opt)) {\n      return;\n    }\n\n    keyInfo.name = opt.name != null ? makeComparableKey(opt.name) : existing ? existing.name : DUMMY_COMPONENT_NAME_PREFIX + index;\n\n    if (existing) {\n      keyInfo.id = makeComparableKey(existing.id);\n    } else if (opt.id != null) {\n      keyInfo.id = makeComparableKey(opt.id);\n    } else {\n      var idNum = 0;\n\n      do {\n        keyInfo.id = '\\0' + keyInfo.name + '\\0' + idNum++;\n      } while (idMap.get(keyInfo.id));\n    }\n\n    idMap.set(keyInfo.id, item);\n  });\n}\n\nfunction keyExistAndEqual(attr, obj1, obj2) {\n  var key1 = convertOptionIdName(obj1[attr], null);\n  var key2 = convertOptionIdName(obj2[attr], null);\n  return key1 != null && key2 != null && key1 === key2;\n}\n\nfunction makeComparableKey(val) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (val == null) {\n      throw new Error();\n    }\n  }\n\n  return convertOptionIdName(val, '');\n}\n\nexport function convertOptionIdName(idOrName, defaultValue) {\n  if (idOrName == null) {\n    return defaultValue;\n  }\n\n  var type = typeof idOrName;\n  return type === 'string' ? idOrName : type === 'number' || isStringSafe(idOrName) ? idOrName + '' : defaultValue;\n}\n\nfunction warnInvalidateIdOrName(idOrName) {\n  if (process.env.NODE_ENV !== 'production') {\n    warn('`' + idOrName + '` is invalid id or name. Must be a string or number.');\n  }\n}\n\nfunction isValidIdOrName(idOrName) {\n  return isStringSafe(idOrName) || isNumeric(idOrName);\n}\n\nexport function isNameSpecified(componentModel) {\n  var name = componentModel.name;\n  return !!(name && name.indexOf(DUMMY_COMPONENT_NAME_PREFIX));\n}\nexport function isComponentIdInternal(cmptOption) {\n  return cmptOption && cmptOption.id != null && makeComparableKey(cmptOption.id).indexOf(INTERNAL_COMPONENT_ID_PREFIX) === 0;\n}\nexport function makeInternalComponentId(idSuffix) {\n  return INTERNAL_COMPONENT_ID_PREFIX + idSuffix;\n}\nexport function setComponentTypeToKeyInfo(mappingResult, mainType, componentModelCtor) {\n  each(mappingResult, function (item) {\n    var newOption = item.newOption;\n\n    if (isObject(newOption)) {\n      item.keyInfo.mainType = mainType;\n      item.keyInfo.subType = determineSubType(mainType, newOption, item.existing, componentModelCtor);\n    }\n  });\n}\n\nfunction determineSubType(mainType, newCmptOption, existComponent, componentModelCtor) {\n  var subType = newCmptOption.type ? newCmptOption.type : existComponent ? existComponent.subType : componentModelCtor.determineSubType(mainType, newCmptOption);\n  return subType;\n}\n\nexport function compressBatches(batchA, batchB) {\n  var mapA = {};\n  var mapB = {};\n  makeMap(batchA || [], mapA);\n  makeMap(batchB || [], mapB, mapA);\n  return [mapToArray(mapA), mapToArray(mapB)];\n\n  function makeMap(sourceBatch, map, otherMap) {\n    for (var i = 0, len = sourceBatch.length; i < len; i++) {\n      var seriesId = convertOptionIdName(sourceBatch[i].seriesId, null);\n\n      if (seriesId == null) {\n        return;\n      }\n\n      var dataIndices = normalizeToArray(sourceBatch[i].dataIndex);\n      var otherDataIndices = otherMap && otherMap[seriesId];\n\n      for (var j = 0, lenj = dataIndices.length; j < lenj; j++) {\n        var dataIndex = dataIndices[j];\n\n        if (otherDataIndices && otherDataIndices[dataIndex]) {\n          otherDataIndices[dataIndex] = null;\n        } else {\n          (map[seriesId] || (map[seriesId] = {}))[dataIndex] = 1;\n        }\n      }\n    }\n  }\n\n  function mapToArray(map, isData) {\n    var result = [];\n\n    for (var i in map) {\n      if (map.hasOwnProperty(i) && map[i] != null) {\n        if (isData) {\n          result.push(+i);\n        } else {\n          var dataIndices = mapToArray(map[i], true);\n          dataIndices.length && result.push({\n            seriesId: i,\n            dataIndex: dataIndices\n          });\n        }\n      }\n    }\n\n    return result;\n  }\n}\nexport function queryDataIndex(data, payload) {\n  if (payload.dataIndexInside != null) {\n    return payload.dataIndexInside;\n  } else if (payload.dataIndex != null) {\n    return isArray(payload.dataIndex) ? map(payload.dataIndex, function (value) {\n      return data.indexOfRawIndex(value);\n    }) : data.indexOfRawIndex(payload.dataIndex);\n  } else if (payload.name != null) {\n    return isArray(payload.name) ? map(payload.name, function (value) {\n      return data.indexOfName(value);\n    }) : data.indexOfName(payload.name);\n  }\n}\nexport function makeInner() {\n  var key = '__ec_inner_' + innerUniqueIndex++;\n  return function (hostObj) {\n    return hostObj[key] || (hostObj[key] = {});\n  };\n}\nvar innerUniqueIndex = getRandomIdBase();\nexport function parseFinder(ecModel, finderInput, opt) {\n  var finder;\n\n  if (isString(finderInput)) {\n    var obj = {};\n    obj[finderInput + 'Index'] = 0;\n    finder = obj;\n  } else {\n    finder = finderInput;\n  }\n\n  var queryOptionMap = createHashMap();\n  var result = {};\n  var mainTypeSpecified = false;\n  each(finder, function (value, key) {\n    if (key === 'dataIndex' || key === 'dataIndexInside') {\n      result[key] = value;\n      return;\n    }\n\n    var parsedKey = key.match(/^(\\w+)(Index|Id|Name)$/) || [];\n    var mainType = parsedKey[1];\n    var queryType = (parsedKey[2] || '').toLowerCase();\n\n    if (!mainType || !queryType || opt && opt.includeMainTypes && indexOf(opt.includeMainTypes, mainType) < 0) {\n      return;\n    }\n\n    mainTypeSpecified = mainTypeSpecified || !!mainType;\n    var queryOption = queryOptionMap.get(mainType) || queryOptionMap.set(mainType, {});\n    queryOption[queryType] = value;\n  });\n  var defaultMainType = opt ? opt.defaultMainType : null;\n\n  if (!mainTypeSpecified && defaultMainType) {\n    queryOptionMap.set(defaultMainType, {});\n  }\n\n  queryOptionMap.each(function (queryOption, mainType) {\n    var queryResult = queryReferringComponents(ecModel, mainType, queryOption, {\n      useDefault: defaultMainType === mainType,\n      enableAll: opt && opt.enableAll != null ? opt.enableAll : true,\n      enableNone: opt && opt.enableNone != null ? opt.enableNone : true\n    });\n    result[mainType + 'Models'] = queryResult.models;\n    result[mainType + 'Model'] = queryResult.models[0];\n  });\n  return result;\n}\nexport var SINGLE_REFERRING = {\n  useDefault: true,\n  enableAll: false,\n  enableNone: false\n};\nexport var MULTIPLE_REFERRING = {\n  useDefault: false,\n  enableAll: true,\n  enableNone: true\n};\nexport function queryReferringComponents(ecModel, mainType, userOption, opt) {\n  opt = opt || SINGLE_REFERRING;\n  var indexOption = userOption.index;\n  var idOption = userOption.id;\n  var nameOption = userOption.name;\n  var result = {\n    models: null,\n    specified: indexOption != null || idOption != null || nameOption != null\n  };\n\n  if (!result.specified) {\n    var firstCmpt = void 0;\n    result.models = opt.useDefault && (firstCmpt = ecModel.getComponent(mainType)) ? [firstCmpt] : [];\n    return result;\n  }\n\n  if (indexOption === 'none' || indexOption === false) {\n    assert(opt.enableNone, '`\"none\"` or `false` is not a valid value on index option.');\n    result.models = [];\n    return result;\n  }\n\n  if (indexOption === 'all') {\n    assert(opt.enableAll, '`\"all\"` is not a valid value on index option.');\n    indexOption = idOption = nameOption = null;\n  }\n\n  result.models = ecModel.queryComponents({\n    mainType: mainType,\n    index: indexOption,\n    id: idOption,\n    name: nameOption\n  });\n  return result;\n}\nexport function setAttribute(dom, key, value) {\n  dom.setAttribute ? dom.setAttribute(key, value) : dom[key] = value;\n}\nexport function getAttribute(dom, key) {\n  return dom.getAttribute ? dom.getAttribute(key) : dom[key];\n}\nexport function getTooltipRenderMode(renderModeOption) {\n  if (renderModeOption === 'auto') {\n    return env.domSupported ? 'html' : 'richText';\n  } else {\n    return renderModeOption || 'html';\n  }\n}\nexport function groupData(array, getKey) {\n  var buckets = createHashMap();\n  var keys = [];\n  each(array, function (item) {\n    var key = getKey(item);\n    (buckets.get(key) || (keys.push(key), buckets.set(key, []))).push(item);\n  });\n  return {\n    keys: keys,\n    buckets: buckets\n  };\n}\nexport function interpolateRawValues(data, precision, sourceValue, targetValue, percent) {\n  var isAutoPrecision = precision == null || precision === 'auto';\n\n  if (targetValue == null) {\n    return targetValue;\n  }\n\n  if (typeof targetValue === 'number') {\n    var value = interpolateNumber(sourceValue || 0, targetValue, percent);\n    return round(value, isAutoPrecision ? Math.max(getPrecisionSafe(sourceValue || 0), getPrecisionSafe(targetValue)) : precision);\n  } else if (typeof targetValue === 'string') {\n    return percent < 1 ? sourceValue : targetValue;\n  } else {\n    var interpolated = [];\n    var leftArr = sourceValue;\n    var rightArr = targetValue;\n    var length_1 = Math.max(leftArr ? leftArr.length : 0, rightArr.length);\n\n    for (var i = 0; i < length_1; ++i) {\n      var info = data.getDimensionInfo(i);\n\n      if (info.type === 'ordinal') {\n        interpolated[i] = (percent < 1 && leftArr ? leftArr : rightArr)[i];\n      } else {\n        var leftVal = leftArr && leftArr[i] ? leftArr[i] : 0;\n        var rightVal = rightArr[i];\n        var value = interpolateNumber(leftVal, rightVal, percent);\n        interpolated[i] = round(value, isAutoPrecision ? Math.max(getPrecisionSafe(leftVal), getPrecisionSafe(rightVal)) : precision);\n      }\n    }\n\n    return interpolated;\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __spreadArrays } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nvar TYPE_DELIMITER = '.';\nvar IS_CONTAINER = '___EC__COMPONENT__CONTAINER___';\nvar IS_EXTENDED_CLASS = '___EC__EXTENDED_CLASS___';\nexport function parseClassType(componentType) {\n  var ret = {\n    main: '',\n    sub: ''\n  };\n\n  if (componentType) {\n    var typeArr = componentType.split(TYPE_DELIMITER);\n    ret.main = typeArr[0] || '';\n    ret.sub = typeArr[1] || '';\n  }\n\n  return ret;\n}\n\nfunction checkClassType(componentType) {\n  zrUtil.assert(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(componentType), 'componentType \"' + componentType + '\" illegal');\n}\n\nexport function isExtendedClass(clz) {\n  return !!(clz && clz[IS_EXTENDED_CLASS]);\n}\nexport function enableClassExtend(rootClz, mandatoryMethods) {\n  rootClz.$constructor = rootClz;\n\n  rootClz.extend = function (proto) {\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.each(mandatoryMethods, function (method) {\n        if (!proto[method]) {\n          console.warn('Method `' + method + '` should be implemented' + (proto.type ? ' in ' + proto.type : '') + '.');\n        }\n      });\n    }\n\n    var superClass = this;\n\n    function ExtendedClass() {\n      var args = [];\n\n      for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n      }\n\n      if (!proto.$constructor) {\n        if (!isESClass(superClass)) {\n          superClass.apply(this, arguments);\n        } else {\n          var ins = zrUtil.createObject(ExtendedClass.prototype, new (superClass.bind.apply(superClass, __spreadArrays([void 0], args)))());\n          return ins;\n        }\n      } else {\n        proto.$constructor.apply(this, arguments);\n      }\n    }\n\n    ExtendedClass[IS_EXTENDED_CLASS] = true;\n    zrUtil.extend(ExtendedClass.prototype, proto);\n    ExtendedClass.extend = this.extend;\n    ExtendedClass.superCall = superCall;\n    ExtendedClass.superApply = superApply;\n    zrUtil.inherits(ExtendedClass, this);\n    ExtendedClass.superClass = superClass;\n    return ExtendedClass;\n  };\n}\n\nfunction isESClass(fn) {\n  return typeof fn === 'function' && /^class\\s/.test(Function.prototype.toString.call(fn));\n}\n\nexport function mountExtend(SubClz, SupperClz) {\n  SubClz.extend = SupperClz.extend;\n}\nvar classBase = Math.round(Math.random() * 10);\nexport function enableClassCheck(target) {\n  var classAttr = ['__\\0is_clz', classBase++].join('_');\n  target.prototype[classAttr] = true;\n\n  if (process.env.NODE_ENV !== 'production') {\n    zrUtil.assert(!target.isInstance, 'The method \"is\" can not be defined.');\n  }\n\n  target.isInstance = function (obj) {\n    return !!(obj && obj[classAttr]);\n  };\n}\n\nfunction superCall(context, methodName) {\n  var args = [];\n\n  for (var _i = 2; _i < arguments.length; _i++) {\n    args[_i - 2] = arguments[_i];\n  }\n\n  return this.superClass.prototype[methodName].apply(context, args);\n}\n\nfunction superApply(context, methodName, args) {\n  return this.superClass.prototype[methodName].apply(context, args);\n}\n\nexport function enableClassManagement(target) {\n  var storage = {};\n\n  target.registerClass = function (clz) {\n    var componentFullType = clz.type || clz.prototype.type;\n\n    if (componentFullType) {\n      checkClassType(componentFullType);\n      clz.prototype.type = componentFullType;\n      var componentTypeInfo = parseClassType(componentFullType);\n\n      if (!componentTypeInfo.sub) {\n        if (process.env.NODE_ENV !== 'production') {\n          if (storage[componentTypeInfo.main]) {\n            console.warn(componentTypeInfo.main + ' exists.');\n          }\n        }\n\n        storage[componentTypeInfo.main] = clz;\n      } else if (componentTypeInfo.sub !== IS_CONTAINER) {\n        var container = makeContainer(componentTypeInfo);\n        container[componentTypeInfo.sub] = clz;\n      }\n    }\n\n    return clz;\n  };\n\n  target.getClass = function (mainType, subType, throwWhenNotFound) {\n    var clz = storage[mainType];\n\n    if (clz && clz[IS_CONTAINER]) {\n      clz = subType ? clz[subType] : null;\n    }\n\n    if (throwWhenNotFound && !clz) {\n      throw new Error(!subType ? mainType + '.' + 'type should be specified.' : 'Component ' + mainType + '.' + (subType || '') + ' not exists. Load it first.');\n    }\n\n    return clz;\n  };\n\n  target.getClassesByMainType = function (componentType) {\n    var componentTypeInfo = parseClassType(componentType);\n    var result = [];\n    var obj = storage[componentTypeInfo.main];\n\n    if (obj && obj[IS_CONTAINER]) {\n      zrUtil.each(obj, function (o, type) {\n        type !== IS_CONTAINER && result.push(o);\n      });\n    } else {\n      result.push(obj);\n    }\n\n    return result;\n  };\n\n  target.hasClass = function (componentType) {\n    var componentTypeInfo = parseClassType(componentType);\n    return !!storage[componentTypeInfo.main];\n  };\n\n  target.getAllClassMainTypes = function () {\n    var types = [];\n    zrUtil.each(storage, function (obj, type) {\n      types.push(type);\n    });\n    return types;\n  };\n\n  target.hasSubTypes = function (componentType) {\n    var componentTypeInfo = parseClassType(componentType);\n    var obj = storage[componentTypeInfo.main];\n    return obj && obj[IS_CONTAINER];\n  };\n\n  function makeContainer(componentTypeInfo) {\n    var container = storage[componentTypeInfo.main];\n\n    if (!container || !container[IS_CONTAINER]) {\n      container = storage[componentTypeInfo.main] = {};\n      container[IS_CONTAINER] = true;\n    }\n\n    return container;\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function makeStyleMapper(properties, ignoreParent) {\n  for (var i = 0; i < properties.length; i++) {\n    if (!properties[i][1]) {\n      properties[i][1] = properties[i][0];\n    }\n  }\n\n  ignoreParent = ignoreParent || false;\n  return function (model, excludes, includes) {\n    var style = {};\n\n    for (var i = 0; i < properties.length; i++) {\n      var propName = properties[i][1];\n\n      if (excludes && zrUtil.indexOf(excludes, propName) >= 0 || includes && zrUtil.indexOf(includes, propName) < 0) {\n        continue;\n      }\n\n      var val = model.getShallow(propName, ignoreParent);\n\n      if (val != null) {\n        style[properties[i][0]] = val;\n      }\n    }\n\n    return style;\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport makeStyleMapper from './makeStyleMapper';\nexport var AREA_STYLE_KEY_MAP = [['fill', 'color'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['opacity'], ['shadowColor']];\nvar getAreaStyle = makeStyleMapper(AREA_STYLE_KEY_MAP);\n\nvar AreaStyleMixin = function () {\n  function AreaStyleMixin() {}\n\n  AreaStyleMixin.prototype.getAreaStyle = function (excludes, includes) {\n    return getAreaStyle(this, excludes, includes);\n  };\n\n  return AreaStyleMixin;\n}();\n\n;\nexport { AreaStyleMixin };","import LRU from '../../core/LRU';\nvar globalImageCache = new LRU(50);\nexport function findExistImage(newImageOrSrc) {\n    if (typeof newImageOrSrc === 'string') {\n        var cachedImgObj = globalImageCache.get(newImageOrSrc);\n        return cachedImgObj && cachedImgObj.image;\n    }\n    else {\n        return newImageOrSrc;\n    }\n}\nexport function createOrUpdateImage(newImageOrSrc, image, hostEl, onload, cbPayload) {\n    if (!newImageOrSrc) {\n        return image;\n    }\n    else if (typeof newImageOrSrc === 'string') {\n        if ((image && image.__zrImageSrc === newImageOrSrc) || !hostEl) {\n            return image;\n        }\n        var cachedImgObj = globalImageCache.get(newImageOrSrc);\n        var pendingWrap = { hostEl: hostEl, cb: onload, cbPayload: cbPayload };\n        if (cachedImgObj) {\n            image = cachedImgObj.image;\n            !isImageReady(image) && cachedImgObj.pending.push(pendingWrap);\n        }\n        else {\n            image = new Image();\n            image.onload = image.onerror = imageOnLoad;\n            globalImageCache.put(newImageOrSrc, image.__cachedImgObj = {\n                image: image,\n                pending: [pendingWrap]\n            });\n            image.src = image.__zrImageSrc = newImageOrSrc;\n        }\n        return image;\n    }\n    else {\n        return newImageOrSrc;\n    }\n}\nfunction imageOnLoad() {\n    var cachedImgObj = this.__cachedImgObj;\n    this.onload = this.onerror = this.__cachedImgObj = null;\n    for (var i = 0; i < cachedImgObj.pending.length; i++) {\n        var pendingWrap = cachedImgObj.pending[i];\n        var cb = pendingWrap.cb;\n        cb && cb(this, pendingWrap.cbPayload);\n        pendingWrap.hostEl.dirty();\n    }\n    cachedImgObj.pending.length = 0;\n}\nexport function isImageReady(image) {\n    return image && image.width && image.height;\n}\n","import * as imageHelper from '../helper/image';\nimport { extend, retrieve2, retrieve3, reduce } from '../../core/util';\nimport { getLineHeight, getWidth } from '../../contain/text';\nvar STYLE_REG = /\\{([a-zA-Z0-9_]+)\\|([^}]*)\\}/g;\nexport function truncateText(text, containerWidth, font, ellipsis, options) {\n    if (!containerWidth) {\n        return '';\n    }\n    var textLines = (text + '').split('\\n');\n    options = prepareTruncateOptions(containerWidth, font, ellipsis, options);\n    for (var i = 0, len = textLines.length; i < len; i++) {\n        textLines[i] = truncateSingleLine(textLines[i], options);\n    }\n    return textLines.join('\\n');\n}\nfunction prepareTruncateOptions(containerWidth, font, ellipsis, options) {\n    options = options || {};\n    var preparedOpts = extend({}, options);\n    preparedOpts.font = font;\n    ellipsis = retrieve2(ellipsis, '...');\n    preparedOpts.maxIterations = retrieve2(options.maxIterations, 2);\n    var minChar = preparedOpts.minChar = retrieve2(options.minChar, 0);\n    preparedOpts.cnCharWidth = getWidth('国', font);\n    var ascCharWidth = preparedOpts.ascCharWidth = getWidth('a', font);\n    preparedOpts.placeholder = retrieve2(options.placeholder, '');\n    var contentWidth = containerWidth = Math.max(0, containerWidth - 1);\n    for (var i = 0; i < minChar && contentWidth >= ascCharWidth; i++) {\n        contentWidth -= ascCharWidth;\n    }\n    var ellipsisWidth = getWidth(ellipsis, font);\n    if (ellipsisWidth > contentWidth) {\n        ellipsis = '';\n        ellipsisWidth = 0;\n    }\n    contentWidth = containerWidth - ellipsisWidth;\n    preparedOpts.ellipsis = ellipsis;\n    preparedOpts.ellipsisWidth = ellipsisWidth;\n    preparedOpts.contentWidth = contentWidth;\n    preparedOpts.containerWidth = containerWidth;\n    return preparedOpts;\n}\nfunction truncateSingleLine(textLine, options) {\n    var containerWidth = options.containerWidth;\n    var font = options.font;\n    var contentWidth = options.contentWidth;\n    if (!containerWidth) {\n        return '';\n    }\n    var lineWidth = getWidth(textLine, font);\n    if (lineWidth <= containerWidth) {\n        return textLine;\n    }\n    for (var j = 0;; j++) {\n        if (lineWidth <= contentWidth || j >= options.maxIterations) {\n            textLine += options.ellipsis;\n            break;\n        }\n        var subLength = j === 0\n            ? estimateLength(textLine, contentWidth, options.ascCharWidth, options.cnCharWidth)\n            : lineWidth > 0\n                ? Math.floor(textLine.length * contentWidth / lineWidth)\n                : 0;\n        textLine = textLine.substr(0, subLength);\n        lineWidth = getWidth(textLine, font);\n    }\n    if (textLine === '') {\n        textLine = options.placeholder;\n    }\n    return textLine;\n}\nfunction estimateLength(text, contentWidth, ascCharWidth, cnCharWidth) {\n    var width = 0;\n    var i = 0;\n    for (var len = text.length; i < len && width < contentWidth; i++) {\n        var charCode = text.charCodeAt(i);\n        width += (0 <= charCode && charCode <= 127) ? ascCharWidth : cnCharWidth;\n    }\n    return i;\n}\nexport function parsePlainText(text, style) {\n    text != null && (text += '');\n    var overflow = style.overflow;\n    var padding = style.padding;\n    var font = style.font;\n    var truncate = overflow === 'truncate';\n    var calculatedLineHeight = getLineHeight(font);\n    var lineHeight = retrieve2(style.lineHeight, calculatedLineHeight);\n    var truncateLineOverflow = style.lineOverflow === 'truncate';\n    var width = style.width;\n    var lines;\n    if (width != null && overflow === 'break' || overflow === 'breakAll') {\n        lines = text ? wrapText(text, style.font, width, overflow === 'breakAll', 0).lines : [];\n    }\n    else {\n        lines = text ? text.split('\\n') : [];\n    }\n    var contentHeight = lines.length * lineHeight;\n    var height = retrieve2(style.height, contentHeight);\n    if (contentHeight > height && truncateLineOverflow) {\n        var lineCount = Math.floor(height / lineHeight);\n        lines = lines.slice(0, lineCount);\n    }\n    var outerHeight = height;\n    var outerWidth = width;\n    if (padding) {\n        outerHeight += padding[0] + padding[2];\n        if (outerWidth != null) {\n            outerWidth += padding[1] + padding[3];\n        }\n    }\n    if (text && truncate && outerWidth != null) {\n        var options = prepareTruncateOptions(width, font, style.ellipsis, {\n            minChar: style.truncateMinChar,\n            placeholder: style.placeholder\n        });\n        for (var i = 0; i < lines.length; i++) {\n            lines[i] = truncateSingleLine(lines[i], options);\n        }\n    }\n    if (width == null) {\n        var maxWidth = 0;\n        for (var i = 0; i < lines.length; i++) {\n            maxWidth = Math.max(getWidth(lines[i], font), maxWidth);\n        }\n        width = maxWidth;\n    }\n    return {\n        lines: lines,\n        height: height,\n        outerHeight: outerHeight,\n        lineHeight: lineHeight,\n        calculatedLineHeight: calculatedLineHeight,\n        contentHeight: contentHeight,\n        width: width\n    };\n}\nvar RichTextToken = (function () {\n    function RichTextToken() {\n    }\n    return RichTextToken;\n}());\nvar RichTextLine = (function () {\n    function RichTextLine(tokens) {\n        this.tokens = [];\n        if (tokens) {\n            this.tokens = tokens;\n        }\n    }\n    return RichTextLine;\n}());\nvar RichTextContentBlock = (function () {\n    function RichTextContentBlock() {\n        this.width = 0;\n        this.height = 0;\n        this.contentWidth = 0;\n        this.contentHeight = 0;\n        this.outerWidth = 0;\n        this.outerHeight = 0;\n        this.lines = [];\n    }\n    return RichTextContentBlock;\n}());\nexport { RichTextContentBlock };\nexport function parseRichText(text, style) {\n    var contentBlock = new RichTextContentBlock();\n    text != null && (text += '');\n    if (!text) {\n        return contentBlock;\n    }\n    var topWidth = style.width;\n    var topHeight = style.height;\n    var overflow = style.overflow;\n    var wrapInfo = (overflow === 'break' || overflow === 'breakAll') && topWidth != null\n        ? { width: topWidth, accumWidth: 0, breakAll: overflow === 'breakAll' }\n        : null;\n    var lastIndex = STYLE_REG.lastIndex = 0;\n    var result;\n    while ((result = STYLE_REG.exec(text)) != null) {\n        var matchedIndex = result.index;\n        if (matchedIndex > lastIndex) {\n            pushTokens(contentBlock, text.substring(lastIndex, matchedIndex), style, wrapInfo);\n        }\n        pushTokens(contentBlock, result[2], style, wrapInfo, result[1]);\n        lastIndex = STYLE_REG.lastIndex;\n    }\n    if (lastIndex < text.length) {\n        pushTokens(contentBlock, text.substring(lastIndex, text.length), style, wrapInfo);\n    }\n    var pendingList = [];\n    var calculatedHeight = 0;\n    var calculatedWidth = 0;\n    var stlPadding = style.padding;\n    var truncate = overflow === 'truncate';\n    var truncateLine = style.lineOverflow === 'truncate';\n    var prevToken;\n    function finishLine(line, lineWidth, lineHeight) {\n        line.width = lineWidth;\n        line.lineHeight = lineHeight;\n        calculatedHeight += lineHeight;\n        calculatedWidth = Math.max(calculatedWidth, lineWidth);\n    }\n    outer: for (var i = 0; i < contentBlock.lines.length; i++) {\n        var line = contentBlock.lines[i];\n        var lineHeight = 0;\n        var lineWidth = 0;\n        for (var j = 0; j < line.tokens.length; j++) {\n            var token = line.tokens[j];\n            var tokenStyle = token.styleName && style.rich[token.styleName] || {};\n            var textPadding = token.textPadding = tokenStyle.padding;\n            var paddingH = textPadding ? textPadding[1] + textPadding[3] : 0;\n            var font = token.font = tokenStyle.font || style.font;\n            token.contentHeight = getLineHeight(font);\n            var tokenHeight = retrieve2(tokenStyle.height, token.contentHeight);\n            token.innerHeight = tokenHeight;\n            textPadding && (tokenHeight += textPadding[0] + textPadding[2]);\n            token.height = tokenHeight;\n            token.lineHeight = retrieve3(tokenStyle.lineHeight, style.lineHeight, tokenHeight);\n            token.align = tokenStyle && tokenStyle.align || style.align;\n            token.verticalAlign = tokenStyle && tokenStyle.verticalAlign || 'middle';\n            if (truncateLine && topHeight != null && calculatedHeight + token.lineHeight > topHeight) {\n                if (j > 0) {\n                    line.tokens = line.tokens.slice(0, j);\n                    finishLine(line, lineWidth, lineHeight);\n                    contentBlock.lines = contentBlock.lines.slice(0, i + 1);\n                }\n                else {\n                    contentBlock.lines = contentBlock.lines.slice(0, i);\n                }\n                break outer;\n            }\n            var styleTokenWidth = tokenStyle.width;\n            var tokenWidthNotSpecified = styleTokenWidth == null || styleTokenWidth === 'auto';\n            if (typeof styleTokenWidth === 'string' && styleTokenWidth.charAt(styleTokenWidth.length - 1) === '%') {\n                token.percentWidth = styleTokenWidth;\n                pendingList.push(token);\n                token.contentWidth = getWidth(token.text, font);\n            }\n            else {\n                if (tokenWidthNotSpecified) {\n                    var textBackgroundColor = tokenStyle.backgroundColor;\n                    var bgImg = textBackgroundColor && textBackgroundColor.image;\n                    if (bgImg) {\n                        bgImg = imageHelper.findExistImage(bgImg);\n                        if (imageHelper.isImageReady(bgImg)) {\n                            token.width = Math.max(token.width, bgImg.width * tokenHeight / bgImg.height);\n                        }\n                    }\n                }\n                var remainTruncWidth = truncate && topWidth != null\n                    ? topWidth - lineWidth : null;\n                if (remainTruncWidth != null && remainTruncWidth < token.width) {\n                    if (!tokenWidthNotSpecified || remainTruncWidth < paddingH) {\n                        token.text = '';\n                        token.width = token.contentWidth = 0;\n                    }\n                    else {\n                        token.text = truncateText(token.text, remainTruncWidth - paddingH, font, style.ellipsis, { minChar: style.truncateMinChar });\n                        token.width = token.contentWidth = getWidth(token.text, font);\n                    }\n                }\n                else {\n                    token.contentWidth = getWidth(token.text, font);\n                }\n            }\n            token.width += paddingH;\n            lineWidth += token.width;\n            tokenStyle && (lineHeight = Math.max(lineHeight, token.lineHeight));\n            prevToken = token;\n        }\n        finishLine(line, lineWidth, lineHeight);\n    }\n    contentBlock.outerWidth = contentBlock.width = retrieve2(topWidth, calculatedWidth);\n    contentBlock.outerHeight = contentBlock.height = retrieve2(topHeight, calculatedHeight);\n    contentBlock.contentHeight = calculatedHeight;\n    contentBlock.contentWidth = calculatedWidth;\n    if (stlPadding) {\n        contentBlock.outerWidth += stlPadding[1] + stlPadding[3];\n        contentBlock.outerHeight += stlPadding[0] + stlPadding[2];\n    }\n    for (var i = 0; i < pendingList.length; i++) {\n        var token = pendingList[i];\n        var percentWidth = token.percentWidth;\n        token.width = parseInt(percentWidth, 10) / 100 * contentBlock.width;\n    }\n    return contentBlock;\n}\nfunction pushTokens(block, str, style, wrapInfo, styleName) {\n    var isEmptyStr = str === '';\n    var tokenStyle = styleName && style.rich[styleName] || {};\n    var lines = block.lines;\n    var font = tokenStyle.font || style.font;\n    var newLine = false;\n    var strLines;\n    var linesWidths;\n    if (wrapInfo) {\n        var tokenPadding = tokenStyle.padding;\n        var tokenPaddingH = tokenPadding ? tokenPadding[1] + tokenPadding[3] : 0;\n        if (tokenStyle.width != null && tokenStyle.width !== 'auto') {\n            var outerWidth_1 = parsePercent(tokenStyle.width, wrapInfo.width) + tokenPaddingH;\n            if (lines.length > 0) {\n                if (outerWidth_1 + wrapInfo.accumWidth > wrapInfo.width) {\n                    strLines = str.split('\\n');\n                    newLine = true;\n                }\n            }\n            wrapInfo.accumWidth = outerWidth_1;\n        }\n        else {\n            var res = wrapText(str, font, wrapInfo.width, wrapInfo.breakAll, wrapInfo.accumWidth);\n            wrapInfo.accumWidth = res.accumWidth + tokenPaddingH;\n            linesWidths = res.linesWidths;\n            strLines = res.lines;\n        }\n    }\n    else {\n        strLines = str.split('\\n');\n    }\n    for (var i = 0; i < strLines.length; i++) {\n        var text = strLines[i];\n        var token = new RichTextToken();\n        token.styleName = styleName;\n        token.text = text;\n        token.isLineHolder = !text && !isEmptyStr;\n        if (typeof tokenStyle.width === 'number') {\n            token.width = tokenStyle.width;\n        }\n        else {\n            token.width = linesWidths\n                ? linesWidths[i]\n                : getWidth(text, font);\n        }\n        if (!i && !newLine) {\n            var tokens = (lines[lines.length - 1] || (lines[0] = new RichTextLine())).tokens;\n            var tokensLen = tokens.length;\n            (tokensLen === 1 && tokens[0].isLineHolder)\n                ? (tokens[0] = token)\n                : ((text || !tokensLen || isEmptyStr) && tokens.push(token));\n        }\n        else {\n            lines.push(new RichTextLine([token]));\n        }\n    }\n}\nfunction isLatin(ch) {\n    var code = ch.charCodeAt(0);\n    return code >= 0x21 && code <= 0xFF;\n}\nvar breakCharMap = reduce(',&?/;] '.split(''), function (obj, ch) {\n    obj[ch] = true;\n    return obj;\n}, {});\nfunction isWordBreakChar(ch) {\n    if (isLatin(ch)) {\n        if (breakCharMap[ch]) {\n            return true;\n        }\n        return false;\n    }\n    return true;\n}\nfunction wrapText(text, font, lineWidth, isBreakAll, lastAccumWidth) {\n    var lines = [];\n    var linesWidths = [];\n    var line = '';\n    var currentWord = '';\n    var currentWordWidth = 0;\n    var accumWidth = 0;\n    for (var i = 0; i < text.length; i++) {\n        var ch = text.charAt(i);\n        if (ch === '\\n') {\n            if (currentWord) {\n                line += currentWord;\n                accumWidth += currentWordWidth;\n            }\n            lines.push(line);\n            linesWidths.push(accumWidth);\n            line = '';\n            currentWord = '';\n            currentWordWidth = 0;\n            accumWidth = 0;\n            continue;\n        }\n        var chWidth = getWidth(ch, font);\n        var inWord = isBreakAll ? false : !isWordBreakChar(ch);\n        if (!lines.length\n            ? lastAccumWidth + accumWidth + chWidth > lineWidth\n            : accumWidth + chWidth > lineWidth) {\n            if (!accumWidth) {\n                if (inWord) {\n                    lines.push(currentWord);\n                    linesWidths.push(currentWordWidth);\n                    currentWord = ch;\n                    currentWordWidth = chWidth;\n                }\n                else {\n                    lines.push(ch);\n                    linesWidths.push(chWidth);\n                }\n            }\n            else if (line || currentWord) {\n                if (inWord) {\n                    if (!line) {\n                        line = currentWord;\n                        currentWord = '';\n                        currentWordWidth = 0;\n                        accumWidth = currentWordWidth;\n                    }\n                    lines.push(line);\n                    linesWidths.push(accumWidth - currentWordWidth);\n                    currentWord += ch;\n                    currentWordWidth += chWidth;\n                    line = '';\n                    accumWidth = currentWordWidth;\n                }\n                else {\n                    if (currentWord) {\n                        line += currentWord;\n                        accumWidth += currentWordWidth;\n                        currentWord = '';\n                        currentWordWidth = 0;\n                    }\n                    lines.push(line);\n                    linesWidths.push(accumWidth);\n                    line = ch;\n                    accumWidth = chWidth;\n                }\n            }\n            continue;\n        }\n        accumWidth += chWidth;\n        if (inWord) {\n            currentWord += ch;\n            currentWordWidth += chWidth;\n        }\n        else {\n            if (currentWord) {\n                line += currentWord;\n                currentWord = '';\n                currentWordWidth = 0;\n            }\n            line += ch;\n        }\n    }\n    if (!lines.length && !line) {\n        line = text;\n        currentWord = '';\n        currentWordWidth = 0;\n    }\n    if (currentWord) {\n        line += currentWord;\n    }\n    if (line) {\n        lines.push(line);\n        linesWidths.push(accumWidth);\n    }\n    if (lines.length === 1) {\n        accumWidth += lastAccumWidth;\n    }\n    return {\n        accumWidth: accumWidth,\n        lines: lines,\n        linesWidths: linesWidths\n    };\n}\nfunction parsePercent(value, maxValue) {\n    if (typeof value === 'string') {\n        if (value.lastIndexOf('%') >= 0) {\n            return parseFloat(value) / 100 * maxValue;\n        }\n        return parseFloat(value);\n    }\n    return value;\n}\n","import { __extends } from \"tslib\";\nimport Element from '../Element';\nimport BoundingRect from '../core/BoundingRect';\nimport { keys, extend, createObject } from '../core/util';\nvar STYLE_MAGIC_KEY = '__zr_style_' + Math.round((Math.random() * 10));\nexport var DEFAULT_COMMON_STYLE = {\n    shadowBlur: 0,\n    shadowOffsetX: 0,\n    shadowOffsetY: 0,\n    shadowColor: '#000',\n    opacity: 1,\n    blend: 'source-over'\n};\nexport var DEFAULT_COMMON_ANIMATION_PROPS = {\n    style: {\n        shadowBlur: true,\n        shadowOffsetX: true,\n        shadowOffsetY: true,\n        shadowColor: true,\n        opacity: true\n    }\n};\nDEFAULT_COMMON_STYLE[STYLE_MAGIC_KEY] = true;\nvar PRIMARY_STATES_KEYS = ['z', 'z2', 'invisible'];\nvar Displayable = (function (_super) {\n    __extends(Displayable, _super);\n    function Displayable(props) {\n        return _super.call(this, props) || this;\n    }\n    Displayable.prototype._init = function (props) {\n        var keysArr = keys(props);\n        for (var i = 0; i < keysArr.length; i++) {\n            var key = keysArr[i];\n            if (key === 'style') {\n                this.useStyle(props[key]);\n            }\n            else {\n                _super.prototype.attrKV.call(this, key, props[key]);\n            }\n        }\n        if (!this.style) {\n            this.useStyle({});\n        }\n    };\n    Displayable.prototype.beforeBrush = function () { };\n    Displayable.prototype.afterBrush = function () { };\n    Displayable.prototype.innerBeforeBrush = function () { };\n    Displayable.prototype.innerAfterBrush = function () { };\n    Displayable.prototype.shouldBePainted = function (viewWidth, viewHeight, considerClipPath, considerAncestors) {\n        var m = this.transform;\n        if (this.ignore\n            || this.invisible\n            || this.style.opacity === 0\n            || (this.culling\n                && isDisplayableCulled(this, viewWidth, viewHeight))\n            || (m && !m[0] && !m[3])) {\n            return false;\n        }\n        if (considerClipPath && this.__clipPaths) {\n            for (var i = 0; i < this.__clipPaths.length; ++i) {\n                if (this.__clipPaths[i].isZeroArea()) {\n                    return false;\n                }\n            }\n        }\n        if (considerAncestors && this.parent) {\n            var parent_1 = this.parent;\n            while (parent_1) {\n                if (parent_1.ignore) {\n                    return false;\n                }\n                parent_1 = parent_1.parent;\n            }\n        }\n        return true;\n    };\n    Displayable.prototype.contain = function (x, y) {\n        return this.rectContain(x, y);\n    };\n    Displayable.prototype.traverse = function (cb, context) {\n        cb.call(context, this);\n    };\n    Displayable.prototype.rectContain = function (x, y) {\n        var coord = this.transformCoordToLocal(x, y);\n        var rect = this.getBoundingRect();\n        return rect.contain(coord[0], coord[1]);\n    };\n    Displayable.prototype.getPaintRect = function () {\n        var rect = this._paintRect;\n        if (!this._paintRect || this.__dirty) {\n            var transform = this.transform;\n            var elRect = this.getBoundingRect();\n            var style = this.style;\n            var shadowSize = style.shadowBlur || 0;\n            var shadowOffsetX = style.shadowOffsetX || 0;\n            var shadowOffsetY = style.shadowOffsetY || 0;\n            rect = this._paintRect || (this._paintRect = new BoundingRect(0, 0, 0, 0));\n            if (transform) {\n                BoundingRect.applyTransform(rect, elRect, transform);\n            }\n            else {\n                rect.copy(elRect);\n            }\n            if (shadowSize || shadowOffsetX || shadowOffsetY) {\n                rect.width += shadowSize * 2 + Math.abs(shadowOffsetX);\n                rect.height += shadowSize * 2 + Math.abs(shadowOffsetY);\n                rect.x = Math.min(rect.x, rect.x + shadowOffsetX - shadowSize);\n                rect.y = Math.min(rect.y, rect.y + shadowOffsetY - shadowSize);\n            }\n            var tolerance = this.dirtyRectTolerance;\n            if (!rect.isZero()) {\n                rect.x = Math.floor(rect.x - tolerance);\n                rect.y = Math.floor(rect.y - tolerance);\n                rect.width = Math.ceil(rect.width + 1 + tolerance * 2);\n                rect.height = Math.ceil(rect.height + 1 + tolerance * 2);\n            }\n        }\n        return rect;\n    };\n    Displayable.prototype.setPrevPaintRect = function (paintRect) {\n        if (paintRect) {\n            this._prevPaintRect = this._prevPaintRect || new BoundingRect(0, 0, 0, 0);\n            this._prevPaintRect.copy(paintRect);\n        }\n        else {\n            this._prevPaintRect = null;\n        }\n    };\n    Displayable.prototype.getPrevPaintRect = function () {\n        return this._prevPaintRect;\n    };\n    Displayable.prototype.animateStyle = function (loop) {\n        return this.animate('style', loop);\n    };\n    Displayable.prototype.updateDuringAnimation = function (targetKey) {\n        if (targetKey === 'style') {\n            this.dirtyStyle();\n        }\n        else {\n            this.markRedraw();\n        }\n    };\n    Displayable.prototype.attrKV = function (key, value) {\n        if (key !== 'style') {\n            _super.prototype.attrKV.call(this, key, value);\n        }\n        else {\n            if (!this.style) {\n                this.useStyle(value);\n            }\n            else {\n                this.setStyle(value);\n            }\n        }\n    };\n    Displayable.prototype.setStyle = function (keyOrObj, value) {\n        if (typeof keyOrObj === 'string') {\n            this.style[keyOrObj] = value;\n        }\n        else {\n            extend(this.style, keyOrObj);\n        }\n        this.dirtyStyle();\n        return this;\n    };\n    Displayable.prototype.dirtyStyle = function () {\n        this.markRedraw();\n        this.__dirty |= Displayable.STYLE_CHANGED_BIT;\n        if (this._rect) {\n            this._rect = null;\n        }\n    };\n    Displayable.prototype.dirty = function () {\n        this.dirtyStyle();\n    };\n    Displayable.prototype.styleChanged = function () {\n        return !!(this.__dirty & Displayable.STYLE_CHANGED_BIT);\n    };\n    Displayable.prototype.styleUpdated = function () {\n        this.__dirty &= ~Displayable.STYLE_CHANGED_BIT;\n    };\n    Displayable.prototype.createStyle = function (obj) {\n        return createObject(DEFAULT_COMMON_STYLE, obj);\n    };\n    Displayable.prototype.useStyle = function (obj) {\n        if (!obj[STYLE_MAGIC_KEY]) {\n            obj = this.createStyle(obj);\n        }\n        if (this.__inHover) {\n            this.__hoverStyle = obj;\n        }\n        else {\n            this.style = obj;\n        }\n        this.dirtyStyle();\n    };\n    Displayable.prototype.isStyleObject = function (obj) {\n        return obj[STYLE_MAGIC_KEY];\n    };\n    Displayable.prototype._innerSaveToNormal = function (toState) {\n        _super.prototype._innerSaveToNormal.call(this, toState);\n        var normalState = this._normalState;\n        if (toState.style && !normalState.style) {\n            normalState.style = this._mergeStyle(this.createStyle(), this.style);\n        }\n        this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS);\n    };\n    Displayable.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\n        _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\n        var needsRestoreToNormal = !(state && keepCurrentStates);\n        var targetStyle;\n        if (state && state.style) {\n            if (transition) {\n                if (keepCurrentStates) {\n                    targetStyle = state.style;\n                }\n                else {\n                    targetStyle = this._mergeStyle(this.createStyle(), normalState.style);\n                    this._mergeStyle(targetStyle, state.style);\n                }\n            }\n            else {\n                targetStyle = this._mergeStyle(this.createStyle(), keepCurrentStates ? this.style : normalState.style);\n                this._mergeStyle(targetStyle, state.style);\n            }\n        }\n        else if (needsRestoreToNormal) {\n            targetStyle = normalState.style;\n        }\n        if (targetStyle) {\n            if (transition) {\n                var sourceStyle = this.style;\n                this.style = this.createStyle(needsRestoreToNormal ? {} : sourceStyle);\n                if (needsRestoreToNormal) {\n                    var changedKeys = keys(sourceStyle);\n                    for (var i = 0; i < changedKeys.length; i++) {\n                        var key = changedKeys[i];\n                        if (key in targetStyle) {\n                            targetStyle[key] = targetStyle[key];\n                            this.style[key] = sourceStyle[key];\n                        }\n                    }\n                }\n                var targetKeys = keys(targetStyle);\n                for (var i = 0; i < targetKeys.length; i++) {\n                    var key = targetKeys[i];\n                    this.style[key] = this.style[key];\n                }\n                this._transitionState(stateName, {\n                    style: targetStyle\n                }, animationCfg, this.getAnimationStyleProps());\n            }\n            else {\n                this.useStyle(targetStyle);\n            }\n        }\n        for (var i = 0; i < PRIMARY_STATES_KEYS.length; i++) {\n            var key = PRIMARY_STATES_KEYS[i];\n            if (state && state[key] != null) {\n                this[key] = state[key];\n            }\n            else if (needsRestoreToNormal) {\n                if (normalState[key] != null) {\n                    this[key] = normalState[key];\n                }\n            }\n        }\n    };\n    Displayable.prototype._mergeStates = function (states) {\n        var mergedState = _super.prototype._mergeStates.call(this, states);\n        var mergedStyle;\n        for (var i = 0; i < states.length; i++) {\n            var state = states[i];\n            if (state.style) {\n                mergedStyle = mergedStyle || {};\n                this._mergeStyle(mergedStyle, state.style);\n            }\n        }\n        if (mergedStyle) {\n            mergedState.style = mergedStyle;\n        }\n        return mergedState;\n    };\n    Displayable.prototype._mergeStyle = function (targetStyle, sourceStyle) {\n        extend(targetStyle, sourceStyle);\n        return targetStyle;\n    };\n    Displayable.prototype.getAnimationStyleProps = function () {\n        return DEFAULT_COMMON_ANIMATION_PROPS;\n    };\n    Displayable.STYLE_CHANGED_BIT = 2;\n    Displayable.initDefaultProps = (function () {\n        var dispProto = Displayable.prototype;\n        dispProto.type = 'displayable';\n        dispProto.invisible = false;\n        dispProto.z = 0;\n        dispProto.z2 = 0;\n        dispProto.zlevel = 0;\n        dispProto.culling = false;\n        dispProto.cursor = 'pointer';\n        dispProto.rectHover = false;\n        dispProto.incremental = false;\n        dispProto._rect = null;\n        dispProto.dirtyRectTolerance = 0;\n        dispProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT;\n    })();\n    return Displayable;\n}(Element));\nvar tmpRect = new BoundingRect(0, 0, 0, 0);\nvar viewRect = new BoundingRect(0, 0, 0, 0);\nfunction isDisplayableCulled(el, width, height) {\n    tmpRect.copy(el.getBoundingRect());\n    if (el.transform) {\n        tmpRect.applyTransform(el.transform);\n    }\n    viewRect.width = width;\n    viewRect.height = height;\n    return !tmpRect.intersect(viewRect);\n}\nexport default Displayable;\n","import { create as v2Create, distSquare as v2DistSquare } from './vector';\nvar mathPow = Math.pow;\nvar mathSqrt = Math.sqrt;\nvar EPSILON = 1e-8;\nvar EPSILON_NUMERIC = 1e-4;\nvar THREE_SQRT = mathSqrt(3);\nvar ONE_THIRD = 1 / 3;\nvar _v0 = v2Create();\nvar _v1 = v2Create();\nvar _v2 = v2Create();\nfunction isAroundZero(val) {\n    return val > -EPSILON && val < EPSILON;\n}\nfunction isNotAroundZero(val) {\n    return val > EPSILON || val < -EPSILON;\n}\nexport function cubicAt(p0, p1, p2, p3, t) {\n    var onet = 1 - t;\n    return onet * onet * (onet * p0 + 3 * t * p1)\n        + t * t * (t * p3 + 3 * onet * p2);\n}\nexport function cubicDerivativeAt(p0, p1, p2, p3, t) {\n    var onet = 1 - t;\n    return 3 * (((p1 - p0) * onet + 2 * (p2 - p1) * t) * onet\n        + (p3 - p2) * t * t);\n}\nexport function cubicRootAt(p0, p1, p2, p3, val, roots) {\n    var a = p3 + 3 * (p1 - p2) - p0;\n    var b = 3 * (p2 - p1 * 2 + p0);\n    var c = 3 * (p1 - p0);\n    var d = p0 - val;\n    var A = b * b - 3 * a * c;\n    var B = b * c - 9 * a * d;\n    var C = c * c - 3 * b * d;\n    var n = 0;\n    if (isAroundZero(A) && isAroundZero(B)) {\n        if (isAroundZero(b)) {\n            roots[0] = 0;\n        }\n        else {\n            var t1 = -c / b;\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n        }\n    }\n    else {\n        var disc = B * B - 4 * A * C;\n        if (isAroundZero(disc)) {\n            var K = B / A;\n            var t1 = -b / a + K;\n            var t2 = -K / 2;\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n            if (t2 >= 0 && t2 <= 1) {\n                roots[n++] = t2;\n            }\n        }\n        else if (disc > 0) {\n            var discSqrt = mathSqrt(disc);\n            var Y1 = A * b + 1.5 * a * (-B + discSqrt);\n            var Y2 = A * b + 1.5 * a * (-B - discSqrt);\n            if (Y1 < 0) {\n                Y1 = -mathPow(-Y1, ONE_THIRD);\n            }\n            else {\n                Y1 = mathPow(Y1, ONE_THIRD);\n            }\n            if (Y2 < 0) {\n                Y2 = -mathPow(-Y2, ONE_THIRD);\n            }\n            else {\n                Y2 = mathPow(Y2, ONE_THIRD);\n            }\n            var t1 = (-b - (Y1 + Y2)) / (3 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n        }\n        else {\n            var T = (2 * A * b - 3 * a * B) / (2 * mathSqrt(A * A * A));\n            var theta = Math.acos(T) / 3;\n            var ASqrt = mathSqrt(A);\n            var tmp = Math.cos(theta);\n            var t1 = (-b - 2 * ASqrt * tmp) / (3 * a);\n            var t2 = (-b + ASqrt * (tmp + THREE_SQRT * Math.sin(theta))) / (3 * a);\n            var t3 = (-b + ASqrt * (tmp - THREE_SQRT * Math.sin(theta))) / (3 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n            if (t2 >= 0 && t2 <= 1) {\n                roots[n++] = t2;\n            }\n            if (t3 >= 0 && t3 <= 1) {\n                roots[n++] = t3;\n            }\n        }\n    }\n    return n;\n}\nexport function cubicExtrema(p0, p1, p2, p3, extrema) {\n    var b = 6 * p2 - 12 * p1 + 6 * p0;\n    var a = 9 * p1 + 3 * p3 - 3 * p0 - 9 * p2;\n    var c = 3 * p1 - 3 * p0;\n    var n = 0;\n    if (isAroundZero(a)) {\n        if (isNotAroundZero(b)) {\n            var t1 = -c / b;\n            if (t1 >= 0 && t1 <= 1) {\n                extrema[n++] = t1;\n            }\n        }\n    }\n    else {\n        var disc = b * b - 4 * a * c;\n        if (isAroundZero(disc)) {\n            extrema[0] = -b / (2 * a);\n        }\n        else if (disc > 0) {\n            var discSqrt = mathSqrt(disc);\n            var t1 = (-b + discSqrt) / (2 * a);\n            var t2 = (-b - discSqrt) / (2 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                extrema[n++] = t1;\n            }\n            if (t2 >= 0 && t2 <= 1) {\n                extrema[n++] = t2;\n            }\n        }\n    }\n    return n;\n}\nexport function cubicSubdivide(p0, p1, p2, p3, t, out) {\n    var p01 = (p1 - p0) * t + p0;\n    var p12 = (p2 - p1) * t + p1;\n    var p23 = (p3 - p2) * t + p2;\n    var p012 = (p12 - p01) * t + p01;\n    var p123 = (p23 - p12) * t + p12;\n    var p0123 = (p123 - p012) * t + p012;\n    out[0] = p0;\n    out[1] = p01;\n    out[2] = p012;\n    out[3] = p0123;\n    out[4] = p0123;\n    out[5] = p123;\n    out[6] = p23;\n    out[7] = p3;\n}\nexport function cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, out) {\n    var t;\n    var interval = 0.005;\n    var d = Infinity;\n    var prev;\n    var next;\n    var d1;\n    var d2;\n    _v0[0] = x;\n    _v0[1] = y;\n    for (var _t = 0; _t < 1; _t += 0.05) {\n        _v1[0] = cubicAt(x0, x1, x2, x3, _t);\n        _v1[1] = cubicAt(y0, y1, y2, y3, _t);\n        d1 = v2DistSquare(_v0, _v1);\n        if (d1 < d) {\n            t = _t;\n            d = d1;\n        }\n    }\n    d = Infinity;\n    for (var i = 0; i < 32; i++) {\n        if (interval < EPSILON_NUMERIC) {\n            break;\n        }\n        prev = t - interval;\n        next = t + interval;\n        _v1[0] = cubicAt(x0, x1, x2, x3, prev);\n        _v1[1] = cubicAt(y0, y1, y2, y3, prev);\n        d1 = v2DistSquare(_v1, _v0);\n        if (prev >= 0 && d1 < d) {\n            t = prev;\n            d = d1;\n        }\n        else {\n            _v2[0] = cubicAt(x0, x1, x2, x3, next);\n            _v2[1] = cubicAt(y0, y1, y2, y3, next);\n            d2 = v2DistSquare(_v2, _v0);\n            if (next <= 1 && d2 < d) {\n                t = next;\n                d = d2;\n            }\n            else {\n                interval *= 0.5;\n            }\n        }\n    }\n    if (out) {\n        out[0] = cubicAt(x0, x1, x2, x3, t);\n        out[1] = cubicAt(y0, y1, y2, y3, t);\n    }\n    return mathSqrt(d);\n}\nexport function cubicLength(x0, y0, x1, y1, x2, y2, x3, y3, iteration) {\n    var px = x0;\n    var py = y0;\n    var d = 0;\n    var step = 1 / iteration;\n    for (var i = 1; i <= iteration; i++) {\n        var t = i * step;\n        var x = cubicAt(x0, x1, x2, x3, t);\n        var y = cubicAt(y0, y1, y2, y3, t);\n        var dx = x - px;\n        var dy = y - py;\n        d += Math.sqrt(dx * dx + dy * dy);\n        px = x;\n        py = y;\n    }\n    return d;\n}\nexport function quadraticAt(p0, p1, p2, t) {\n    var onet = 1 - t;\n    return onet * (onet * p0 + 2 * t * p1) + t * t * p2;\n}\nexport function quadraticDerivativeAt(p0, p1, p2, t) {\n    return 2 * ((1 - t) * (p1 - p0) + t * (p2 - p1));\n}\nexport function quadraticRootAt(p0, p1, p2, val, roots) {\n    var a = p0 - 2 * p1 + p2;\n    var b = 2 * (p1 - p0);\n    var c = p0 - val;\n    var n = 0;\n    if (isAroundZero(a)) {\n        if (isNotAroundZero(b)) {\n            var t1 = -c / b;\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n        }\n    }\n    else {\n        var disc = b * b - 4 * a * c;\n        if (isAroundZero(disc)) {\n            var t1 = -b / (2 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n        }\n        else if (disc > 0) {\n            var discSqrt = mathSqrt(disc);\n            var t1 = (-b + discSqrt) / (2 * a);\n            var t2 = (-b - discSqrt) / (2 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n            if (t2 >= 0 && t2 <= 1) {\n                roots[n++] = t2;\n            }\n        }\n    }\n    return n;\n}\nexport function quadraticExtremum(p0, p1, p2) {\n    var divider = p0 + p2 - 2 * p1;\n    if (divider === 0) {\n        return 0.5;\n    }\n    else {\n        return (p0 - p1) / divider;\n    }\n}\nexport function quadraticSubdivide(p0, p1, p2, t, out) {\n    var p01 = (p1 - p0) * t + p0;\n    var p12 = (p2 - p1) * t + p1;\n    var p012 = (p12 - p01) * t + p01;\n    out[0] = p0;\n    out[1] = p01;\n    out[2] = p012;\n    out[3] = p012;\n    out[4] = p12;\n    out[5] = p2;\n}\nexport function quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, out) {\n    var t;\n    var interval = 0.005;\n    var d = Infinity;\n    _v0[0] = x;\n    _v0[1] = y;\n    for (var _t = 0; _t < 1; _t += 0.05) {\n        _v1[0] = quadraticAt(x0, x1, x2, _t);\n        _v1[1] = quadraticAt(y0, y1, y2, _t);\n        var d1 = v2DistSquare(_v0, _v1);\n        if (d1 < d) {\n            t = _t;\n            d = d1;\n        }\n    }\n    d = Infinity;\n    for (var i = 0; i < 32; i++) {\n        if (interval < EPSILON_NUMERIC) {\n            break;\n        }\n        var prev = t - interval;\n        var next = t + interval;\n        _v1[0] = quadraticAt(x0, x1, x2, prev);\n        _v1[1] = quadraticAt(y0, y1, y2, prev);\n        var d1 = v2DistSquare(_v1, _v0);\n        if (prev >= 0 && d1 < d) {\n            t = prev;\n            d = d1;\n        }\n        else {\n            _v2[0] = quadraticAt(x0, x1, x2, next);\n            _v2[1] = quadraticAt(y0, y1, y2, next);\n            var d2 = v2DistSquare(_v2, _v0);\n            if (next <= 1 && d2 < d) {\n                t = next;\n                d = d2;\n            }\n            else {\n                interval *= 0.5;\n            }\n        }\n    }\n    if (out) {\n        out[0] = quadraticAt(x0, x1, x2, t);\n        out[1] = quadraticAt(y0, y1, y2, t);\n    }\n    return mathSqrt(d);\n}\nexport function quadraticLength(x0, y0, x1, y1, x2, y2, iteration) {\n    var px = x0;\n    var py = y0;\n    var d = 0;\n    var step = 1 / iteration;\n    for (var i = 1; i <= iteration; i++) {\n        var t = i * step;\n        var x = quadraticAt(x0, x1, x2, t);\n        var y = quadraticAt(y0, y1, y2, t);\n        var dx = x - px;\n        var dy = y - py;\n        d += Math.sqrt(dx * dx + dy * dy);\n        px = x;\n        py = y;\n    }\n    return d;\n}\n","import * as vec2 from './vector';\nimport * as curve from './curve';\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI2 = Math.PI * 2;\nvar start = vec2.create();\nvar end = vec2.create();\nvar extremity = vec2.create();\nexport function fromPoints(points, min, max) {\n    if (points.length === 0) {\n        return;\n    }\n    var p = points[0];\n    var left = p[0];\n    var right = p[0];\n    var top = p[1];\n    var bottom = p[1];\n    for (var i = 1; i < points.length; i++) {\n        p = points[i];\n        left = mathMin(left, p[0]);\n        right = mathMax(right, p[0]);\n        top = mathMin(top, p[1]);\n        bottom = mathMax(bottom, p[1]);\n    }\n    min[0] = left;\n    min[1] = top;\n    max[0] = right;\n    max[1] = bottom;\n}\nexport function fromLine(x0, y0, x1, y1, min, max) {\n    min[0] = mathMin(x0, x1);\n    min[1] = mathMin(y0, y1);\n    max[0] = mathMax(x0, x1);\n    max[1] = mathMax(y0, y1);\n}\nvar xDim = [];\nvar yDim = [];\nexport function fromCubic(x0, y0, x1, y1, x2, y2, x3, y3, min, max) {\n    var cubicExtrema = curve.cubicExtrema;\n    var cubicAt = curve.cubicAt;\n    var n = cubicExtrema(x0, x1, x2, x3, xDim);\n    min[0] = Infinity;\n    min[1] = Infinity;\n    max[0] = -Infinity;\n    max[1] = -Infinity;\n    for (var i = 0; i < n; i++) {\n        var x = cubicAt(x0, x1, x2, x3, xDim[i]);\n        min[0] = mathMin(x, min[0]);\n        max[0] = mathMax(x, max[0]);\n    }\n    n = cubicExtrema(y0, y1, y2, y3, yDim);\n    for (var i = 0; i < n; i++) {\n        var y = cubicAt(y0, y1, y2, y3, yDim[i]);\n        min[1] = mathMin(y, min[1]);\n        max[1] = mathMax(y, max[1]);\n    }\n    min[0] = mathMin(x0, min[0]);\n    max[0] = mathMax(x0, max[0]);\n    min[0] = mathMin(x3, min[0]);\n    max[0] = mathMax(x3, max[0]);\n    min[1] = mathMin(y0, min[1]);\n    max[1] = mathMax(y0, max[1]);\n    min[1] = mathMin(y3, min[1]);\n    max[1] = mathMax(y3, max[1]);\n}\nexport function fromQuadratic(x0, y0, x1, y1, x2, y2, min, max) {\n    var quadraticExtremum = curve.quadraticExtremum;\n    var quadraticAt = curve.quadraticAt;\n    var tx = mathMax(mathMin(quadraticExtremum(x0, x1, x2), 1), 0);\n    var ty = mathMax(mathMin(quadraticExtremum(y0, y1, y2), 1), 0);\n    var x = quadraticAt(x0, x1, x2, tx);\n    var y = quadraticAt(y0, y1, y2, ty);\n    min[0] = mathMin(x0, x2, x);\n    min[1] = mathMin(y0, y2, y);\n    max[0] = mathMax(x0, x2, x);\n    max[1] = mathMax(y0, y2, y);\n}\nexport function fromArc(x, y, rx, ry, startAngle, endAngle, anticlockwise, min, max) {\n    var vec2Min = vec2.min;\n    var vec2Max = vec2.max;\n    var diff = Math.abs(startAngle - endAngle);\n    if (diff % PI2 < 1e-4 && diff > 1e-4) {\n        min[0] = x - rx;\n        min[1] = y - ry;\n        max[0] = x + rx;\n        max[1] = y + ry;\n        return;\n    }\n    start[0] = mathCos(startAngle) * rx + x;\n    start[1] = mathSin(startAngle) * ry + y;\n    end[0] = mathCos(endAngle) * rx + x;\n    end[1] = mathSin(endAngle) * ry + y;\n    vec2Min(min, start, end);\n    vec2Max(max, start, end);\n    startAngle = startAngle % (PI2);\n    if (startAngle < 0) {\n        startAngle = startAngle + PI2;\n    }\n    endAngle = endAngle % (PI2);\n    if (endAngle < 0) {\n        endAngle = endAngle + PI2;\n    }\n    if (startAngle > endAngle && !anticlockwise) {\n        endAngle += PI2;\n    }\n    else if (startAngle < endAngle && anticlockwise) {\n        startAngle += PI2;\n    }\n    if (anticlockwise) {\n        var tmp = endAngle;\n        endAngle = startAngle;\n        startAngle = tmp;\n    }\n    for (var angle = 0; angle < endAngle; angle += Math.PI / 2) {\n        if (angle > startAngle) {\n            extremity[0] = mathCos(angle) * rx + x;\n            extremity[1] = mathSin(angle) * ry + y;\n            vec2Min(min, extremity, min);\n            vec2Max(max, extremity, max);\n        }\n    }\n}\n","import * as vec2 from './vector';\nimport BoundingRect from './BoundingRect';\nimport { devicePixelRatio as dpr } from '../config';\nimport { fromLine, fromCubic, fromQuadratic, fromArc } from './bbox';\nimport { cubicAt, cubicLength, cubicSubdivide, quadraticLength, quadraticSubdivide } from './curve';\nvar CMD = {\n    M: 1,\n    L: 2,\n    C: 3,\n    Q: 4,\n    A: 5,\n    Z: 6,\n    R: 7\n};\nvar tmpOutX = [];\nvar tmpOutY = [];\nvar min = [];\nvar max = [];\nvar min2 = [];\nvar max2 = [];\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathCos = Math.cos;\nvar mathSin = Math.sin;\nvar mathSqrt = Math.sqrt;\nvar mathAbs = Math.abs;\nvar PI = Math.PI;\nvar PI2 = PI * 2;\nvar hasTypedArray = typeof Float32Array !== 'undefined';\nvar tmpAngles = [];\nfunction modPI2(radian) {\n    var n = Math.round(radian / PI * 1e8) / 1e8;\n    return (n % 2) * PI;\n}\nexport function normalizeArcAngles(angles, anticlockwise) {\n    var newStartAngle = modPI2(angles[0]);\n    if (newStartAngle < 0) {\n        newStartAngle += PI2;\n    }\n    var delta = newStartAngle - angles[0];\n    var newEndAngle = angles[1];\n    newEndAngle += delta;\n    if (!anticlockwise && newEndAngle - newStartAngle >= PI2) {\n        newEndAngle = newStartAngle + PI2;\n    }\n    else if (anticlockwise && newStartAngle - newEndAngle >= PI2) {\n        newEndAngle = newStartAngle - PI2;\n    }\n    else if (!anticlockwise && newStartAngle > newEndAngle) {\n        newEndAngle = newStartAngle +\n            (PI2 - modPI2(newStartAngle - newEndAngle));\n    }\n    else if (anticlockwise && newStartAngle < newEndAngle) {\n        newEndAngle = newStartAngle -\n            (PI2 - modPI2(newEndAngle - newStartAngle));\n    }\n    angles[0] = newStartAngle;\n    angles[1] = newEndAngle;\n}\nvar PathProxy = (function () {\n    function PathProxy(notSaveData) {\n        this.dpr = 1;\n        this._version = 0;\n        this._xi = 0;\n        this._yi = 0;\n        this._x0 = 0;\n        this._y0 = 0;\n        this._len = 0;\n        if (notSaveData) {\n            this._saveData = false;\n        }\n        if (this._saveData) {\n            this.data = [];\n        }\n    }\n    PathProxy.prototype.increaseVersion = function () {\n        this._version++;\n    };\n    PathProxy.prototype.getVersion = function () {\n        return this._version;\n    };\n    PathProxy.prototype.setScale = function (sx, sy, segmentIgnoreThreshold) {\n        segmentIgnoreThreshold = segmentIgnoreThreshold || 0;\n        if (segmentIgnoreThreshold > 0) {\n            this._ux = mathAbs(segmentIgnoreThreshold / dpr / sx) || 0;\n            this._uy = mathAbs(segmentIgnoreThreshold / dpr / sy) || 0;\n        }\n    };\n    PathProxy.prototype.setDPR = function (dpr) {\n        this.dpr = dpr;\n    };\n    PathProxy.prototype.setContext = function (ctx) {\n        this._ctx = ctx;\n    };\n    PathProxy.prototype.getContext = function () {\n        return this._ctx;\n    };\n    PathProxy.prototype.beginPath = function () {\n        this._ctx && this._ctx.beginPath();\n        this.reset();\n        return this;\n    };\n    PathProxy.prototype.reset = function () {\n        if (this._saveData) {\n            this._len = 0;\n        }\n        if (this._lineDash) {\n            this._lineDash = null;\n            this._dashOffset = 0;\n        }\n        if (this._pathSegLen) {\n            this._pathSegLen = null;\n            this._pathLen = 0;\n        }\n        this._version++;\n    };\n    PathProxy.prototype.moveTo = function (x, y) {\n        this.addData(CMD.M, x, y);\n        this._ctx && this._ctx.moveTo(x, y);\n        this._x0 = x;\n        this._y0 = y;\n        this._xi = x;\n        this._yi = y;\n        return this;\n    };\n    PathProxy.prototype.lineTo = function (x, y) {\n        var exceedUnit = mathAbs(x - this._xi) > this._ux\n            || mathAbs(y - this._yi) > this._uy\n            || this._len < 5;\n        this.addData(CMD.L, x, y);\n        if (this._ctx && exceedUnit) {\n            this._needsDash ? this._dashedLineTo(x, y)\n                : this._ctx.lineTo(x, y);\n        }\n        if (exceedUnit) {\n            this._xi = x;\n            this._yi = y;\n        }\n        return this;\n    };\n    PathProxy.prototype.bezierCurveTo = function (x1, y1, x2, y2, x3, y3) {\n        this.addData(CMD.C, x1, y1, x2, y2, x3, y3);\n        if (this._ctx) {\n            this._needsDash ? this._dashedBezierTo(x1, y1, x2, y2, x3, y3)\n                : this._ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\n        }\n        this._xi = x3;\n        this._yi = y3;\n        return this;\n    };\n    PathProxy.prototype.quadraticCurveTo = function (x1, y1, x2, y2) {\n        this.addData(CMD.Q, x1, y1, x2, y2);\n        if (this._ctx) {\n            this._needsDash ? this._dashedQuadraticTo(x1, y1, x2, y2)\n                : this._ctx.quadraticCurveTo(x1, y1, x2, y2);\n        }\n        this._xi = x2;\n        this._yi = y2;\n        return this;\n    };\n    PathProxy.prototype.arc = function (cx, cy, r, startAngle, endAngle, anticlockwise) {\n        tmpAngles[0] = startAngle;\n        tmpAngles[1] = endAngle;\n        normalizeArcAngles(tmpAngles, anticlockwise);\n        startAngle = tmpAngles[0];\n        endAngle = tmpAngles[1];\n        var delta = endAngle - startAngle;\n        this.addData(CMD.A, cx, cy, r, r, startAngle, delta, 0, anticlockwise ? 0 : 1);\n        this._ctx && this._ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\n        this._xi = mathCos(endAngle) * r + cx;\n        this._yi = mathSin(endAngle) * r + cy;\n        return this;\n    };\n    PathProxy.prototype.arcTo = function (x1, y1, x2, y2, radius) {\n        if (this._ctx) {\n            this._ctx.arcTo(x1, y1, x2, y2, radius);\n        }\n        return this;\n    };\n    PathProxy.prototype.rect = function (x, y, w, h) {\n        this._ctx && this._ctx.rect(x, y, w, h);\n        this.addData(CMD.R, x, y, w, h);\n        return this;\n    };\n    PathProxy.prototype.closePath = function () {\n        this.addData(CMD.Z);\n        var ctx = this._ctx;\n        var x0 = this._x0;\n        var y0 = this._y0;\n        if (ctx) {\n            this._needsDash && this._dashedLineTo(x0, y0);\n            ctx.closePath();\n        }\n        this._xi = x0;\n        this._yi = y0;\n        return this;\n    };\n    PathProxy.prototype.fill = function (ctx) {\n        ctx && ctx.fill();\n        this.toStatic();\n    };\n    PathProxy.prototype.stroke = function (ctx) {\n        ctx && ctx.stroke();\n        this.toStatic();\n    };\n    PathProxy.prototype.setLineDash = function (lineDash) {\n        if (lineDash instanceof Array) {\n            this._lineDash = lineDash;\n            this._dashIdx = 0;\n            var lineDashSum = 0;\n            for (var i = 0; i < lineDash.length; i++) {\n                lineDashSum += lineDash[i];\n            }\n            this._dashSum = lineDashSum;\n            this._needsDash = true;\n        }\n        else {\n            this._lineDash = null;\n            this._needsDash = false;\n        }\n        return this;\n    };\n    PathProxy.prototype.setLineDashOffset = function (offset) {\n        this._dashOffset = offset;\n        return this;\n    };\n    PathProxy.prototype.len = function () {\n        return this._len;\n    };\n    PathProxy.prototype.setData = function (data) {\n        var len = data.length;\n        if (!(this.data && this.data.length === len) && hasTypedArray) {\n            this.data = new Float32Array(len);\n        }\n        for (var i = 0; i < len; i++) {\n            this.data[i] = data[i];\n        }\n        this._len = len;\n    };\n    PathProxy.prototype.appendPath = function (path) {\n        if (!(path instanceof Array)) {\n            path = [path];\n        }\n        var len = path.length;\n        var appendSize = 0;\n        var offset = this._len;\n        for (var i = 0; i < len; i++) {\n            appendSize += path[i].len();\n        }\n        if (hasTypedArray && (this.data instanceof Float32Array)) {\n            this.data = new Float32Array(offset + appendSize);\n        }\n        for (var i = 0; i < len; i++) {\n            var appendPathData = path[i].data;\n            for (var k = 0; k < appendPathData.length; k++) {\n                this.data[offset++] = appendPathData[k];\n            }\n        }\n        this._len = offset;\n    };\n    PathProxy.prototype.addData = function (cmd, a, b, c, d, e, f, g, h) {\n        if (!this._saveData) {\n            return;\n        }\n        var data = this.data;\n        if (this._len + arguments.length > data.length) {\n            this._expandData();\n            data = this.data;\n        }\n        for (var i = 0; i < arguments.length; i++) {\n            data[this._len++] = arguments[i];\n        }\n    };\n    PathProxy.prototype._expandData = function () {\n        if (!(this.data instanceof Array)) {\n            var newData = [];\n            for (var i = 0; i < this._len; i++) {\n                newData[i] = this.data[i];\n            }\n            this.data = newData;\n        }\n    };\n    PathProxy.prototype._dashedLineTo = function (x1, y1) {\n        var dashSum = this._dashSum;\n        var lineDash = this._lineDash;\n        var ctx = this._ctx;\n        var offset = this._dashOffset;\n        var x0 = this._xi;\n        var y0 = this._yi;\n        var dx = x1 - x0;\n        var dy = y1 - y0;\n        var dist = mathSqrt(dx * dx + dy * dy);\n        var x = x0;\n        var y = y0;\n        var nDash = lineDash.length;\n        var dash;\n        var idx;\n        dx /= dist;\n        dy /= dist;\n        if (offset < 0) {\n            offset = dashSum + offset;\n        }\n        offset %= dashSum;\n        x -= offset * dx;\n        y -= offset * dy;\n        while ((dx > 0 && x <= x1) || (dx < 0 && x >= x1)\n            || (dx === 0 && ((dy > 0 && y <= y1) || (dy < 0 && y >= y1)))) {\n            idx = this._dashIdx;\n            dash = lineDash[idx];\n            x += dx * dash;\n            y += dy * dash;\n            this._dashIdx = (idx + 1) % nDash;\n            if ((dx > 0 && x < x0) || (dx < 0 && x > x0) || (dy > 0 && y < y0) || (dy < 0 && y > y0)) {\n                continue;\n            }\n            ctx[idx % 2 ? 'moveTo' : 'lineTo'](dx >= 0 ? mathMin(x, x1) : mathMax(x, x1), dy >= 0 ? mathMin(y, y1) : mathMax(y, y1));\n        }\n        dx = x - x1;\n        dy = y - y1;\n        this._dashOffset = -mathSqrt(dx * dx + dy * dy);\n    };\n    PathProxy.prototype._dashedBezierTo = function (x1, y1, x2, y2, x3, y3) {\n        var ctx = this._ctx;\n        var dashSum = this._dashSum;\n        var offset = this._dashOffset;\n        var lineDash = this._lineDash;\n        var x0 = this._xi;\n        var y0 = this._yi;\n        var bezierLen = 0;\n        var idx = this._dashIdx;\n        var nDash = lineDash.length;\n        var t;\n        var dx;\n        var dy;\n        var x;\n        var y;\n        var tmpLen = 0;\n        if (offset < 0) {\n            offset = dashSum + offset;\n        }\n        offset %= dashSum;\n        for (t = 0; t < 1; t += 0.1) {\n            dx = cubicAt(x0, x1, x2, x3, t + 0.1)\n                - cubicAt(x0, x1, x2, x3, t);\n            dy = cubicAt(y0, y1, y2, y3, t + 0.1)\n                - cubicAt(y0, y1, y2, y3, t);\n            bezierLen += mathSqrt(dx * dx + dy * dy);\n        }\n        for (; idx < nDash; idx++) {\n            tmpLen += lineDash[idx];\n            if (tmpLen > offset) {\n                break;\n            }\n        }\n        t = (tmpLen - offset) / bezierLen;\n        while (t <= 1) {\n            x = cubicAt(x0, x1, x2, x3, t);\n            y = cubicAt(y0, y1, y2, y3, t);\n            idx % 2 ? ctx.moveTo(x, y)\n                : ctx.lineTo(x, y);\n            t += lineDash[idx] / bezierLen;\n            idx = (idx + 1) % nDash;\n        }\n        (idx % 2 !== 0) && ctx.lineTo(x3, y3);\n        dx = x3 - x;\n        dy = y3 - y;\n        this._dashOffset = -mathSqrt(dx * dx + dy * dy);\n    };\n    PathProxy.prototype._dashedQuadraticTo = function (x1, y1, x2, y2) {\n        var x3 = x2;\n        var y3 = y2;\n        x2 = (x2 + 2 * x1) / 3;\n        y2 = (y2 + 2 * y1) / 3;\n        x1 = (this._xi + 2 * x1) / 3;\n        y1 = (this._yi + 2 * y1) / 3;\n        this._dashedBezierTo(x1, y1, x2, y2, x3, y3);\n    };\n    PathProxy.prototype.toStatic = function () {\n        if (!this._saveData) {\n            return;\n        }\n        var data = this.data;\n        if (data instanceof Array) {\n            data.length = this._len;\n            if (hasTypedArray && this._len > 11) {\n                this.data = new Float32Array(data);\n            }\n        }\n    };\n    PathProxy.prototype.getBoundingRect = function () {\n        min[0] = min[1] = min2[0] = min2[1] = Number.MAX_VALUE;\n        max[0] = max[1] = max2[0] = max2[1] = -Number.MAX_VALUE;\n        var data = this.data;\n        var xi = 0;\n        var yi = 0;\n        var x0 = 0;\n        var y0 = 0;\n        var i;\n        for (i = 0; i < this._len;) {\n            var cmd = data[i++];\n            var isFirst = i === 1;\n            if (isFirst) {\n                xi = data[i];\n                yi = data[i + 1];\n                x0 = xi;\n                y0 = yi;\n            }\n            switch (cmd) {\n                case CMD.M:\n                    xi = x0 = data[i++];\n                    yi = y0 = data[i++];\n                    min2[0] = x0;\n                    min2[1] = y0;\n                    max2[0] = x0;\n                    max2[1] = y0;\n                    break;\n                case CMD.L:\n                    fromLine(xi, yi, data[i], data[i + 1], min2, max2);\n                    xi = data[i++];\n                    yi = data[i++];\n                    break;\n                case CMD.C:\n                    fromCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], min2, max2);\n                    xi = data[i++];\n                    yi = data[i++];\n                    break;\n                case CMD.Q:\n                    fromQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], min2, max2);\n                    xi = data[i++];\n                    yi = data[i++];\n                    break;\n                case CMD.A:\n                    var cx = data[i++];\n                    var cy = data[i++];\n                    var rx = data[i++];\n                    var ry = data[i++];\n                    var startAngle = data[i++];\n                    var endAngle = data[i++] + startAngle;\n                    i += 1;\n                    var anticlockwise = !data[i++];\n                    if (isFirst) {\n                        x0 = mathCos(startAngle) * rx + cx;\n                        y0 = mathSin(startAngle) * ry + cy;\n                    }\n                    fromArc(cx, cy, rx, ry, startAngle, endAngle, anticlockwise, min2, max2);\n                    xi = mathCos(endAngle) * rx + cx;\n                    yi = mathSin(endAngle) * ry + cy;\n                    break;\n                case CMD.R:\n                    x0 = xi = data[i++];\n                    y0 = yi = data[i++];\n                    var width = data[i++];\n                    var height = data[i++];\n                    fromLine(x0, y0, x0 + width, y0 + height, min2, max2);\n                    break;\n                case CMD.Z:\n                    xi = x0;\n                    yi = y0;\n                    break;\n            }\n            vec2.min(min, min, min2);\n            vec2.max(max, max, max2);\n        }\n        if (i === 0) {\n            min[0] = min[1] = max[0] = max[1] = 0;\n        }\n        return new BoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n    };\n    PathProxy.prototype._calculateLength = function () {\n        var data = this.data;\n        var len = this._len;\n        var ux = this._ux;\n        var uy = this._uy;\n        var xi = 0;\n        var yi = 0;\n        var x0 = 0;\n        var y0 = 0;\n        if (!this._pathSegLen) {\n            this._pathSegLen = [];\n        }\n        var pathSegLen = this._pathSegLen;\n        var pathTotalLen = 0;\n        var segCount = 0;\n        for (var i = 0; i < len;) {\n            var cmd = data[i++];\n            var isFirst = i === 1;\n            if (isFirst) {\n                xi = data[i];\n                yi = data[i + 1];\n                x0 = xi;\n                y0 = yi;\n            }\n            var l = -1;\n            switch (cmd) {\n                case CMD.M:\n                    xi = x0 = data[i++];\n                    yi = y0 = data[i++];\n                    break;\n                case CMD.L: {\n                    var x2 = data[i++];\n                    var y2 = data[i++];\n                    var dx = x2 - xi;\n                    var dy = y2 - yi;\n                    if (mathAbs(dx) > ux || mathAbs(dy) > uy || i === len - 1) {\n                        l = Math.sqrt(dx * dx + dy * dy);\n                        xi = x2;\n                        yi = y2;\n                    }\n                    break;\n                }\n                case CMD.C: {\n                    var x1 = data[i++];\n                    var y1 = data[i++];\n                    var x2 = data[i++];\n                    var y2 = data[i++];\n                    var x3 = data[i++];\n                    var y3 = data[i++];\n                    l = cubicLength(xi, yi, x1, y1, x2, y2, x3, y3, 10);\n                    xi = x3;\n                    yi = y3;\n                    break;\n                }\n                case CMD.Q: {\n                    var x1 = data[i++];\n                    var y1 = data[i++];\n                    var x2 = data[i++];\n                    var y2 = data[i++];\n                    l = quadraticLength(xi, yi, x1, y1, x2, y2, 10);\n                    xi = x2;\n                    yi = y2;\n                    break;\n                }\n                case CMD.A:\n                    var cx = data[i++];\n                    var cy = data[i++];\n                    var rx = data[i++];\n                    var ry = data[i++];\n                    var startAngle = data[i++];\n                    var delta = data[i++];\n                    var endAngle = delta + startAngle;\n                    i += 1;\n                    var anticlockwise = !data[i++];\n                    if (isFirst) {\n                        x0 = mathCos(startAngle) * rx + cx;\n                        y0 = mathSin(startAngle) * ry + cy;\n                    }\n                    l = mathMax(rx, ry) * mathMin(PI2, Math.abs(delta));\n                    xi = mathCos(endAngle) * rx + cx;\n                    yi = mathSin(endAngle) * ry + cy;\n                    break;\n                case CMD.R: {\n                    x0 = xi = data[i++];\n                    y0 = yi = data[i++];\n                    var width = data[i++];\n                    var height = data[i++];\n                    l = width * 2 + height * 2;\n                    break;\n                }\n                case CMD.Z: {\n                    var dx = x0 - xi;\n                    var dy = y0 - yi;\n                    l = Math.sqrt(dx * dx + dy * dy);\n                    xi = x0;\n                    yi = y0;\n                    break;\n                }\n            }\n            if (l >= 0) {\n                pathSegLen[segCount++] = l;\n                pathTotalLen += l;\n            }\n        }\n        this._pathLen = pathTotalLen;\n        return pathTotalLen;\n    };\n    PathProxy.prototype.rebuildPath = function (ctx, percent) {\n        var d = this.data;\n        var ux = this._ux;\n        var uy = this._uy;\n        var len = this._len;\n        var x0;\n        var y0;\n        var xi;\n        var yi;\n        var x;\n        var y;\n        var drawPart = percent < 1;\n        var pathSegLen;\n        var pathTotalLen;\n        var accumLength = 0;\n        var segCount = 0;\n        var displayedLength;\n        if (drawPart) {\n            if (!this._pathSegLen) {\n                this._calculateLength();\n            }\n            pathSegLen = this._pathSegLen;\n            pathTotalLen = this._pathLen;\n            displayedLength = percent * pathTotalLen;\n            if (!displayedLength) {\n                return;\n            }\n        }\n        lo: for (var i = 0; i < len;) {\n            var cmd = d[i++];\n            var isFirst = i === 1;\n            if (isFirst) {\n                xi = d[i];\n                yi = d[i + 1];\n                x0 = xi;\n                y0 = yi;\n            }\n            switch (cmd) {\n                case CMD.M:\n                    x0 = xi = d[i++];\n                    y0 = yi = d[i++];\n                    ctx.moveTo(xi, yi);\n                    break;\n                case CMD.L: {\n                    x = d[i++];\n                    y = d[i++];\n                    if (mathAbs(x - xi) > ux || mathAbs(y - yi) > uy || i === len - 1) {\n                        if (drawPart) {\n                            var l = pathSegLen[segCount++];\n                            if (accumLength + l > displayedLength) {\n                                var t = (displayedLength - accumLength) / l;\n                                ctx.lineTo(xi * (1 - t) + x * t, yi * (1 - t) + y * t);\n                                break lo;\n                            }\n                            accumLength += l;\n                        }\n                        ctx.lineTo(x, y);\n                        xi = x;\n                        yi = y;\n                    }\n                    break;\n                }\n                case CMD.C: {\n                    var x1 = d[i++];\n                    var y1 = d[i++];\n                    var x2 = d[i++];\n                    var y2 = d[i++];\n                    var x3 = d[i++];\n                    var y3 = d[i++];\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            var t = (displayedLength - accumLength) / l;\n                            cubicSubdivide(xi, x1, x2, x3, t, tmpOutX);\n                            cubicSubdivide(yi, y1, y2, y3, t, tmpOutY);\n                            ctx.bezierCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2], tmpOutX[3], tmpOutY[3]);\n                            break lo;\n                        }\n                        accumLength += l;\n                    }\n                    ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\n                    xi = x3;\n                    yi = y3;\n                    break;\n                }\n                case CMD.Q: {\n                    var x1 = d[i++];\n                    var y1 = d[i++];\n                    var x2 = d[i++];\n                    var y2 = d[i++];\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            var t = (displayedLength - accumLength) / l;\n                            quadraticSubdivide(xi, x1, x2, t, tmpOutX);\n                            quadraticSubdivide(yi, y1, y2, t, tmpOutY);\n                            ctx.quadraticCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2]);\n                            break lo;\n                        }\n                        accumLength += l;\n                    }\n                    ctx.quadraticCurveTo(x1, y1, x2, y2);\n                    xi = x2;\n                    yi = y2;\n                    break;\n                }\n                case CMD.A:\n                    var cx = d[i++];\n                    var cy = d[i++];\n                    var rx = d[i++];\n                    var ry = d[i++];\n                    var startAngle = d[i++];\n                    var delta = d[i++];\n                    var psi = d[i++];\n                    var anticlockwise = !d[i++];\n                    var r = (rx > ry) ? rx : ry;\n                    var scaleX = (rx > ry) ? 1 : rx / ry;\n                    var scaleY = (rx > ry) ? ry / rx : 1;\n                    var isEllipse = mathAbs(rx - ry) > 1e-3;\n                    var endAngle = startAngle + delta;\n                    var breakBuild = false;\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            endAngle = startAngle + delta * (displayedLength - accumLength) / l;\n                            breakBuild = true;\n                        }\n                        accumLength += l;\n                    }\n                    if (isEllipse && ctx.ellipse) {\n                        ctx.ellipse(cx, cy, rx, ry, psi, startAngle, endAngle, anticlockwise);\n                    }\n                    else {\n                        ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\n                    }\n                    if (breakBuild) {\n                        break lo;\n                    }\n                    if (isFirst) {\n                        x0 = mathCos(startAngle) * rx + cx;\n                        y0 = mathSin(startAngle) * ry + cy;\n                    }\n                    xi = mathCos(endAngle) * rx + cx;\n                    yi = mathSin(endAngle) * ry + cy;\n                    break;\n                case CMD.R:\n                    x0 = xi = d[i];\n                    y0 = yi = d[i + 1];\n                    x = d[i++];\n                    y = d[i++];\n                    var width = d[i++];\n                    var height = d[i++];\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            var d_1 = displayedLength - accumLength;\n                            ctx.moveTo(x, y);\n                            ctx.lineTo(x + mathMin(d_1, width), y);\n                            d_1 -= width;\n                            if (d_1 > 0) {\n                                ctx.lineTo(x + width, y + mathMin(d_1, height));\n                            }\n                            d_1 -= height;\n                            if (d_1 > 0) {\n                                ctx.lineTo(x + mathMax(width - d_1, 0), y + height);\n                            }\n                            d_1 -= width;\n                            if (d_1 > 0) {\n                                ctx.lineTo(x, y + mathMax(height - d_1, 0));\n                            }\n                            break lo;\n                        }\n                        accumLength += l;\n                    }\n                    ctx.rect(x, y, width, height);\n                    break;\n                case CMD.Z:\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            var t = (displayedLength - accumLength) / l;\n                            ctx.lineTo(xi * (1 - t) + x0 * t, yi * (1 - t) + y0 * t);\n                            break lo;\n                        }\n                        accumLength += l;\n                    }\n                    ctx.closePath();\n                    xi = x0;\n                    yi = y0;\n            }\n        }\n    };\n    PathProxy.CMD = CMD;\n    PathProxy.initDefaultProps = (function () {\n        var proto = PathProxy.prototype;\n        proto._saveData = true;\n        proto._needsDash = false;\n        proto._dashOffset = 0;\n        proto._dashIdx = 0;\n        proto._dashSum = 0;\n        proto._ux = 0;\n        proto._uy = 0;\n    })();\n    return PathProxy;\n}());\nexport default PathProxy;\n","export function containStroke(x0, y0, x1, y1, lineWidth, x, y) {\n    if (lineWidth === 0) {\n        return false;\n    }\n    var _l = lineWidth;\n    var _a = 0;\n    var _b = x0;\n    if ((y > y0 + _l && y > y1 + _l)\n        || (y < y0 - _l && y < y1 - _l)\n        || (x > x0 + _l && x > x1 + _l)\n        || (x < x0 - _l && x < x1 - _l)) {\n        return false;\n    }\n    if (x0 !== x1) {\n        _a = (y0 - y1) / (x0 - x1);\n        _b = (x0 * y1 - x1 * y0) / (x0 - x1);\n    }\n    else {\n        return Math.abs(x - x0) <= _l / 2;\n    }\n    var tmp = _a * x - y + _b;\n    var _s = tmp * tmp / (_a * _a + 1);\n    return _s <= _l / 2 * _l / 2;\n}\n","import * as curve from '../core/curve';\nexport function containStroke(x0, y0, x1, y1, x2, y2, x3, y3, lineWidth, x, y) {\n    if (lineWidth === 0) {\n        return false;\n    }\n    var _l = lineWidth;\n    if ((y > y0 + _l && y > y1 + _l && y > y2 + _l && y > y3 + _l)\n        || (y < y0 - _l && y < y1 - _l && y < y2 - _l && y < y3 - _l)\n        || (x > x0 + _l && x > x1 + _l && x > x2 + _l && x > x3 + _l)\n        || (x < x0 - _l && x < x1 - _l && x < x2 - _l && x < x3 - _l)) {\n        return false;\n    }\n    var d = curve.cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, null);\n    return d <= _l / 2;\n}\n","import { quadraticProjectPoint } from '../core/curve';\nexport function containStroke(x0, y0, x1, y1, x2, y2, lineWidth, x, y) {\n    if (lineWidth === 0) {\n        return false;\n    }\n    var _l = lineWidth;\n    if ((y > y0 + _l && y > y1 + _l && y > y2 + _l)\n        || (y < y0 - _l && y < y1 - _l && y < y2 - _l)\n        || (x > x0 + _l && x > x1 + _l && x > x2 + _l)\n        || (x < x0 - _l && x < x1 - _l && x < x2 - _l)) {\n        return false;\n    }\n    var d = quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, null);\n    return d <= _l / 2;\n}\n","var PI2 = Math.PI * 2;\nexport function normalizeRadian(angle) {\n    angle %= PI2;\n    if (angle < 0) {\n        angle += PI2;\n    }\n    return angle;\n}\n","import { normalizeRadian } from './util';\nvar PI2 = Math.PI * 2;\nexport function containStroke(cx, cy, r, startAngle, endAngle, anticlockwise, lineWidth, x, y) {\n    if (lineWidth === 0) {\n        return false;\n    }\n    var _l = lineWidth;\n    x -= cx;\n    y -= cy;\n    var d = Math.sqrt(x * x + y * y);\n    if ((d - _l > r) || (d + _l < r)) {\n        return false;\n    }\n    if (Math.abs(startAngle - endAngle) % PI2 < 1e-4) {\n        return true;\n    }\n    if (anticlockwise) {\n        var tmp = startAngle;\n        startAngle = normalizeRadian(endAngle);\n        endAngle = normalizeRadian(tmp);\n    }\n    else {\n        startAngle = normalizeRadian(startAngle);\n        endAngle = normalizeRadian(endAngle);\n    }\n    if (startAngle > endAngle) {\n        endAngle += PI2;\n    }\n    var angle = Math.atan2(y, x);\n    if (angle < 0) {\n        angle += PI2;\n    }\n    return (angle >= startAngle && angle <= endAngle)\n        || (angle + PI2 >= startAngle && angle + PI2 <= endAngle);\n}\n","export default function windingLine(x0, y0, x1, y1, x, y) {\n    if ((y > y0 && y > y1) || (y < y0 && y < y1)) {\n        return 0;\n    }\n    if (y1 === y0) {\n        return 0;\n    }\n    var t = (y - y0) / (y1 - y0);\n    var dir = y1 < y0 ? 1 : -1;\n    if (t === 1 || t === 0) {\n        dir = y1 < y0 ? 0.5 : -0.5;\n    }\n    var x_ = t * (x1 - x0) + x0;\n    return x_ === x ? Infinity : x_ > x ? dir : 0;\n}\n","import PathProxy from '../core/PathProxy';\nimport * as line from './line';\nimport * as cubic from './cubic';\nimport * as quadratic from './quadratic';\nimport * as arc from './arc';\nimport * as curve from '../core/curve';\nimport windingLine from './windingLine';\nvar CMD = PathProxy.CMD;\nvar PI2 = Math.PI * 2;\nvar EPSILON = 1e-4;\nfunction isAroundEqual(a, b) {\n    return Math.abs(a - b) < EPSILON;\n}\nvar roots = [-1, -1, -1];\nvar extrema = [-1, -1];\nfunction swapExtrema() {\n    var tmp = extrema[0];\n    extrema[0] = extrema[1];\n    extrema[1] = tmp;\n}\nfunction windingCubic(x0, y0, x1, y1, x2, y2, x3, y3, x, y) {\n    if ((y > y0 && y > y1 && y > y2 && y > y3)\n        || (y < y0 && y < y1 && y < y2 && y < y3)) {\n        return 0;\n    }\n    var nRoots = curve.cubicRootAt(y0, y1, y2, y3, y, roots);\n    if (nRoots === 0) {\n        return 0;\n    }\n    else {\n        var w = 0;\n        var nExtrema = -1;\n        var y0_ = void 0;\n        var y1_ = void 0;\n        for (var i = 0; i < nRoots; i++) {\n            var t = roots[i];\n            var unit = (t === 0 || t === 1) ? 0.5 : 1;\n            var x_ = curve.cubicAt(x0, x1, x2, x3, t);\n            if (x_ < x) {\n                continue;\n            }\n            if (nExtrema < 0) {\n                nExtrema = curve.cubicExtrema(y0, y1, y2, y3, extrema);\n                if (extrema[1] < extrema[0] && nExtrema > 1) {\n                    swapExtrema();\n                }\n                y0_ = curve.cubicAt(y0, y1, y2, y3, extrema[0]);\n                if (nExtrema > 1) {\n                    y1_ = curve.cubicAt(y0, y1, y2, y3, extrema[1]);\n                }\n            }\n            if (nExtrema === 2) {\n                if (t < extrema[0]) {\n                    w += y0_ < y0 ? unit : -unit;\n                }\n                else if (t < extrema[1]) {\n                    w += y1_ < y0_ ? unit : -unit;\n                }\n                else {\n                    w += y3 < y1_ ? unit : -unit;\n                }\n            }\n            else {\n                if (t < extrema[0]) {\n                    w += y0_ < y0 ? unit : -unit;\n                }\n                else {\n                    w += y3 < y0_ ? unit : -unit;\n                }\n            }\n        }\n        return w;\n    }\n}\nfunction windingQuadratic(x0, y0, x1, y1, x2, y2, x, y) {\n    if ((y > y0 && y > y1 && y > y2)\n        || (y < y0 && y < y1 && y < y2)) {\n        return 0;\n    }\n    var nRoots = curve.quadraticRootAt(y0, y1, y2, y, roots);\n    if (nRoots === 0) {\n        return 0;\n    }\n    else {\n        var t = curve.quadraticExtremum(y0, y1, y2);\n        if (t >= 0 && t <= 1) {\n            var w = 0;\n            var y_ = curve.quadraticAt(y0, y1, y2, t);\n            for (var i = 0; i < nRoots; i++) {\n                var unit = (roots[i] === 0 || roots[i] === 1) ? 0.5 : 1;\n                var x_ = curve.quadraticAt(x0, x1, x2, roots[i]);\n                if (x_ < x) {\n                    continue;\n                }\n                if (roots[i] < t) {\n                    w += y_ < y0 ? unit : -unit;\n                }\n                else {\n                    w += y2 < y_ ? unit : -unit;\n                }\n            }\n            return w;\n        }\n        else {\n            var unit = (roots[0] === 0 || roots[0] === 1) ? 0.5 : 1;\n            var x_ = curve.quadraticAt(x0, x1, x2, roots[0]);\n            if (x_ < x) {\n                return 0;\n            }\n            return y2 < y0 ? unit : -unit;\n        }\n    }\n}\nfunction windingArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y) {\n    y -= cy;\n    if (y > r || y < -r) {\n        return 0;\n    }\n    var tmp = Math.sqrt(r * r - y * y);\n    roots[0] = -tmp;\n    roots[1] = tmp;\n    var dTheta = Math.abs(startAngle - endAngle);\n    if (dTheta < 1e-4) {\n        return 0;\n    }\n    if (dTheta >= PI2 - 1e-4) {\n        startAngle = 0;\n        endAngle = PI2;\n        var dir = anticlockwise ? 1 : -1;\n        if (x >= roots[0] + cx && x <= roots[1] + cx) {\n            return dir;\n        }\n        else {\n            return 0;\n        }\n    }\n    if (startAngle > endAngle) {\n        var tmp_1 = startAngle;\n        startAngle = endAngle;\n        endAngle = tmp_1;\n    }\n    if (startAngle < 0) {\n        startAngle += PI2;\n        endAngle += PI2;\n    }\n    var w = 0;\n    for (var i = 0; i < 2; i++) {\n        var x_ = roots[i];\n        if (x_ + cx > x) {\n            var angle = Math.atan2(y, x_);\n            var dir = anticlockwise ? 1 : -1;\n            if (angle < 0) {\n                angle = PI2 + angle;\n            }\n            if ((angle >= startAngle && angle <= endAngle)\n                || (angle + PI2 >= startAngle && angle + PI2 <= endAngle)) {\n                if (angle > Math.PI / 2 && angle < Math.PI * 1.5) {\n                    dir = -dir;\n                }\n                w += dir;\n            }\n        }\n    }\n    return w;\n}\nfunction containPath(path, lineWidth, isStroke, x, y) {\n    var data = path.data;\n    var len = path.len();\n    var w = 0;\n    var xi = 0;\n    var yi = 0;\n    var x0 = 0;\n    var y0 = 0;\n    var x1;\n    var y1;\n    for (var i = 0; i < len;) {\n        var cmd = data[i++];\n        var isFirst = i === 1;\n        if (cmd === CMD.M && i > 1) {\n            if (!isStroke) {\n                w += windingLine(xi, yi, x0, y0, x, y);\n            }\n        }\n        if (isFirst) {\n            xi = data[i];\n            yi = data[i + 1];\n            x0 = xi;\n            y0 = yi;\n        }\n        switch (cmd) {\n            case CMD.M:\n                x0 = data[i++];\n                y0 = data[i++];\n                xi = x0;\n                yi = y0;\n                break;\n            case CMD.L:\n                if (isStroke) {\n                    if (line.containStroke(xi, yi, data[i], data[i + 1], lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingLine(xi, yi, data[i], data[i + 1], x, y) || 0;\n                }\n                xi = data[i++];\n                yi = data[i++];\n                break;\n            case CMD.C:\n                if (isStroke) {\n                    if (cubic.containStroke(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\n                }\n                xi = data[i++];\n                yi = data[i++];\n                break;\n            case CMD.Q:\n                if (isStroke) {\n                    if (quadratic.containStroke(xi, yi, data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\n                }\n                xi = data[i++];\n                yi = data[i++];\n                break;\n            case CMD.A:\n                var cx = data[i++];\n                var cy = data[i++];\n                var rx = data[i++];\n                var ry = data[i++];\n                var theta = data[i++];\n                var dTheta = data[i++];\n                i += 1;\n                var anticlockwise = !!(1 - data[i++]);\n                x1 = Math.cos(theta) * rx + cx;\n                y1 = Math.sin(theta) * ry + cy;\n                if (!isFirst) {\n                    w += windingLine(xi, yi, x1, y1, x, y);\n                }\n                else {\n                    x0 = x1;\n                    y0 = y1;\n                }\n                var _x = (x - cx) * ry / rx + cx;\n                if (isStroke) {\n                    if (arc.containStroke(cx, cy, ry, theta, theta + dTheta, anticlockwise, lineWidth, _x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y);\n                }\n                xi = Math.cos(theta + dTheta) * rx + cx;\n                yi = Math.sin(theta + dTheta) * ry + cy;\n                break;\n            case CMD.R:\n                x0 = xi = data[i++];\n                y0 = yi = data[i++];\n                var width = data[i++];\n                var height = data[i++];\n                x1 = x0 + width;\n                y1 = y0 + height;\n                if (isStroke) {\n                    if (line.containStroke(x0, y0, x1, y0, lineWidth, x, y)\n                        || line.containStroke(x1, y0, x1, y1, lineWidth, x, y)\n                        || line.containStroke(x1, y1, x0, y1, lineWidth, x, y)\n                        || line.containStroke(x0, y1, x0, y0, lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingLine(x1, y0, x1, y1, x, y);\n                    w += windingLine(x0, y1, x0, y0, x, y);\n                }\n                break;\n            case CMD.Z:\n                if (isStroke) {\n                    if (line.containStroke(xi, yi, x0, y0, lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingLine(xi, yi, x0, y0, x, y);\n                }\n                xi = x0;\n                yi = y0;\n                break;\n        }\n    }\n    if (!isStroke && !isAroundEqual(yi, y0)) {\n        w += windingLine(xi, yi, x0, y0, x, y) || 0;\n    }\n    return w !== 0;\n}\nexport function contain(pathProxy, x, y) {\n    return containPath(pathProxy, 0, false, x, y);\n}\nexport function containStroke(pathProxy, lineWidth, x, y) {\n    return containPath(pathProxy, lineWidth, true, x, y);\n}\n","import { __extends } from \"tslib\";\nimport Displayable, { DEFAULT_COMMON_STYLE, DEFAULT_COMMON_ANIMATION_PROPS } from './Displayable';\nimport Element from '../Element';\nimport PathProxy from '../core/PathProxy';\nimport * as pathContain from '../contain/path';\nimport { defaults, keys, extend, clone, isString, createObject } from '../core/util';\nimport { lum } from '../tool/color';\nimport { DARK_LABEL_COLOR, LIGHT_LABEL_COLOR, DARK_MODE_THRESHOLD, LIGHTER_LABEL_COLOR } from '../config';\nexport var DEFAULT_PATH_STYLE = defaults({\n    fill: '#000',\n    stroke: null,\n    strokePercent: 1,\n    fillOpacity: 1,\n    strokeOpacity: 1,\n    lineDashOffset: 0,\n    lineWidth: 1,\n    lineCap: 'butt',\n    miterLimit: 10,\n    strokeNoScale: false,\n    strokeFirst: false\n}, DEFAULT_COMMON_STYLE);\nexport var DEFAULT_PATH_ANIMATION_PROPS = {\n    style: defaults({\n        fill: true,\n        stroke: true,\n        strokePercent: true,\n        fillOpacity: true,\n        strokeOpacity: true,\n        lineDashOffset: true,\n        lineWidth: true,\n        miterLimit: true\n    }, DEFAULT_COMMON_ANIMATION_PROPS.style)\n};\nvar pathCopyParams = [\n    'x', 'y', 'rotation', 'scaleX', 'scaleY', 'originX', 'originY', 'invisible',\n    'culling', 'z', 'z2', 'zlevel', 'parent'\n];\nvar Path = (function (_super) {\n    __extends(Path, _super);\n    function Path(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Path.prototype.update = function () {\n        var _this = this;\n        _super.prototype.update.call(this);\n        var style = this.style;\n        if (style.decal) {\n            var decalEl = this._decalEl\n                = this._decalEl || new Path();\n            if (decalEl.buildPath === Path.prototype.buildPath) {\n                decalEl.buildPath = function (ctx) {\n                    _this.buildPath(ctx, _this.shape);\n                };\n            }\n            decalEl.silent = true;\n            var decalElStyle = decalEl.style;\n            for (var key in style) {\n                if (decalElStyle[key] !== style[key]) {\n                    decalElStyle[key] = style[key];\n                }\n            }\n            decalElStyle.fill = style.fill ? style.decal : null;\n            decalElStyle.decal = null;\n            decalElStyle.shadowColor = null;\n            style.strokeFirst && (decalElStyle.stroke = null);\n            for (var i = 0; i < pathCopyParams.length; ++i) {\n                decalEl[pathCopyParams[i]] = this[pathCopyParams[i]];\n            }\n            decalEl.__dirty |= Element.REDARAW_BIT;\n        }\n        else if (this._decalEl) {\n            this._decalEl = null;\n        }\n    };\n    Path.prototype.getDecalElement = function () {\n        return this._decalEl;\n    };\n    Path.prototype._init = function (props) {\n        var keysArr = keys(props);\n        this.shape = this.getDefaultShape();\n        var defaultStyle = this.getDefaultStyle();\n        if (defaultStyle) {\n            this.useStyle(defaultStyle);\n        }\n        for (var i = 0; i < keysArr.length; i++) {\n            var key = keysArr[i];\n            var value = props[key];\n            if (key === 'style') {\n                if (!this.style) {\n                    this.useStyle(value);\n                }\n                else {\n                    extend(this.style, value);\n                }\n            }\n            else if (key === 'shape') {\n                extend(this.shape, value);\n            }\n            else {\n                _super.prototype.attrKV.call(this, key, value);\n            }\n        }\n        if (!this.style) {\n            this.useStyle({});\n        }\n    };\n    Path.prototype.getDefaultStyle = function () {\n        return null;\n    };\n    Path.prototype.getDefaultShape = function () {\n        return {};\n    };\n    Path.prototype.canBeInsideText = function () {\n        return this.hasFill();\n    };\n    Path.prototype.getInsideTextFill = function () {\n        var pathFill = this.style.fill;\n        if (pathFill !== 'none') {\n            if (isString(pathFill)) {\n                var fillLum = lum(pathFill, 0);\n                if (fillLum > 0.5) {\n                    return DARK_LABEL_COLOR;\n                }\n                else if (fillLum > 0.2) {\n                    return LIGHTER_LABEL_COLOR;\n                }\n                return LIGHT_LABEL_COLOR;\n            }\n            else if (pathFill) {\n                return LIGHT_LABEL_COLOR;\n            }\n        }\n        return DARK_LABEL_COLOR;\n    };\n    Path.prototype.getInsideTextStroke = function (textFill) {\n        var pathFill = this.style.fill;\n        if (isString(pathFill)) {\n            var zr = this.__zr;\n            var isDarkMode = !!(zr && zr.isDarkMode());\n            var isDarkLabel = lum(textFill, 0) < DARK_MODE_THRESHOLD;\n            if (isDarkMode === isDarkLabel) {\n                return pathFill;\n            }\n        }\n    };\n    Path.prototype.buildPath = function (ctx, shapeCfg, inBundle) { };\n    Path.prototype.pathUpdated = function () {\n        this.__dirty &= ~Path.SHAPE_CHANGED_BIT;\n    };\n    Path.prototype.createPathProxy = function () {\n        this.path = new PathProxy(false);\n    };\n    Path.prototype.hasStroke = function () {\n        var style = this.style;\n        var stroke = style.stroke;\n        return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\n    };\n    Path.prototype.hasFill = function () {\n        var style = this.style;\n        var fill = style.fill;\n        return fill != null && fill !== 'none';\n    };\n    Path.prototype.getBoundingRect = function () {\n        var rect = this._rect;\n        var style = this.style;\n        var needsUpdateRect = !rect;\n        if (needsUpdateRect) {\n            var firstInvoke = false;\n            if (!this.path) {\n                firstInvoke = true;\n                this.createPathProxy();\n            }\n            var path = this.path;\n            if (firstInvoke || (this.__dirty & Path.SHAPE_CHANGED_BIT)) {\n                path.beginPath();\n                this.buildPath(path, this.shape, false);\n                this.pathUpdated();\n            }\n            rect = path.getBoundingRect();\n        }\n        this._rect = rect;\n        if (this.hasStroke() && this.path && this.path.len() > 0) {\n            var rectWithStroke = this._rectWithStroke || (this._rectWithStroke = rect.clone());\n            if (this.__dirty || needsUpdateRect) {\n                rectWithStroke.copy(rect);\n                var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\n                var w = style.lineWidth;\n                if (!this.hasFill()) {\n                    var strokeContainThreshold = this.strokeContainThreshold;\n                    w = Math.max(w, strokeContainThreshold == null ? 4 : strokeContainThreshold);\n                }\n                if (lineScale > 1e-10) {\n                    rectWithStroke.width += w / lineScale;\n                    rectWithStroke.height += w / lineScale;\n                    rectWithStroke.x -= w / lineScale / 2;\n                    rectWithStroke.y -= w / lineScale / 2;\n                }\n            }\n            return rectWithStroke;\n        }\n        return rect;\n    };\n    Path.prototype.contain = function (x, y) {\n        var localPos = this.transformCoordToLocal(x, y);\n        var rect = this.getBoundingRect();\n        var style = this.style;\n        x = localPos[0];\n        y = localPos[1];\n        if (rect.contain(x, y)) {\n            var pathProxy = this.path;\n            if (this.hasStroke()) {\n                var lineWidth = style.lineWidth;\n                var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\n                if (lineScale > 1e-10) {\n                    if (!this.hasFill()) {\n                        lineWidth = Math.max(lineWidth, this.strokeContainThreshold);\n                    }\n                    if (pathContain.containStroke(pathProxy, lineWidth / lineScale, x, y)) {\n                        return true;\n                    }\n                }\n            }\n            if (this.hasFill()) {\n                return pathContain.contain(pathProxy, x, y);\n            }\n        }\n        return false;\n    };\n    Path.prototype.dirtyShape = function () {\n        this.__dirty |= Path.SHAPE_CHANGED_BIT;\n        if (this._rect) {\n            this._rect = null;\n        }\n        if (this._decalEl) {\n            this._decalEl.dirtyShape();\n        }\n        this.markRedraw();\n    };\n    Path.prototype.dirty = function () {\n        this.dirtyStyle();\n        this.dirtyShape();\n    };\n    Path.prototype.animateShape = function (loop) {\n        return this.animate('shape', loop);\n    };\n    Path.prototype.updateDuringAnimation = function (targetKey) {\n        if (targetKey === 'style') {\n            this.dirtyStyle();\n        }\n        else if (targetKey === 'shape') {\n            this.dirtyShape();\n        }\n        else {\n            this.markRedraw();\n        }\n    };\n    Path.prototype.attrKV = function (key, value) {\n        if (key === 'shape') {\n            this.setShape(value);\n        }\n        else {\n            _super.prototype.attrKV.call(this, key, value);\n        }\n    };\n    Path.prototype.setShape = function (keyOrObj, value) {\n        var shape = this.shape;\n        if (!shape) {\n            shape = this.shape = {};\n        }\n        if (typeof keyOrObj === 'string') {\n            shape[keyOrObj] = value;\n        }\n        else {\n            extend(shape, keyOrObj);\n        }\n        this.dirtyShape();\n        return this;\n    };\n    Path.prototype.shapeChanged = function () {\n        return !!(this.__dirty & Path.SHAPE_CHANGED_BIT);\n    };\n    Path.prototype.createStyle = function (obj) {\n        return createObject(DEFAULT_PATH_STYLE, obj);\n    };\n    Path.prototype._innerSaveToNormal = function (toState) {\n        _super.prototype._innerSaveToNormal.call(this, toState);\n        var normalState = this._normalState;\n        if (toState.shape && !normalState.shape) {\n            normalState.shape = extend({}, this.shape);\n        }\n    };\n    Path.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\n        _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\n        var needsRestoreToNormal = !(state && keepCurrentStates);\n        var targetShape;\n        if (state && state.shape) {\n            if (transition) {\n                if (keepCurrentStates) {\n                    targetShape = state.shape;\n                }\n                else {\n                    targetShape = extend({}, normalState.shape);\n                    extend(targetShape, state.shape);\n                }\n            }\n            else {\n                targetShape = extend({}, keepCurrentStates ? this.shape : normalState.shape);\n                extend(targetShape, state.shape);\n            }\n        }\n        else if (needsRestoreToNormal) {\n            targetShape = normalState.shape;\n        }\n        if (targetShape) {\n            if (transition) {\n                this.shape = extend({}, this.shape);\n                var targetShapePrimaryProps = {};\n                var shapeKeys = keys(targetShape);\n                for (var i = 0; i < shapeKeys.length; i++) {\n                    var key = shapeKeys[i];\n                    if (typeof targetShape[key] === 'object') {\n                        this.shape[key] = targetShape[key];\n                    }\n                    else {\n                        targetShapePrimaryProps[key] = targetShape[key];\n                    }\n                }\n                this._transitionState(stateName, {\n                    shape: targetShapePrimaryProps\n                }, animationCfg);\n            }\n            else {\n                this.shape = targetShape;\n                this.dirtyShape();\n            }\n        }\n    };\n    Path.prototype._mergeStates = function (states) {\n        var mergedState = _super.prototype._mergeStates.call(this, states);\n        var mergedShape;\n        for (var i = 0; i < states.length; i++) {\n            var state = states[i];\n            if (state.shape) {\n                mergedShape = mergedShape || {};\n                this._mergeStyle(mergedShape, state.shape);\n            }\n        }\n        if (mergedShape) {\n            mergedState.shape = mergedShape;\n        }\n        return mergedState;\n    };\n    Path.prototype.getAnimationStyleProps = function () {\n        return DEFAULT_PATH_ANIMATION_PROPS;\n    };\n    Path.prototype.isZeroArea = function () {\n        return false;\n    };\n    Path.extend = function (defaultProps) {\n        var Sub = (function (_super) {\n            __extends(Sub, _super);\n            function Sub(opts) {\n                var _this = _super.call(this, opts) || this;\n                defaultProps.init && defaultProps.init.call(_this, opts);\n                return _this;\n            }\n            Sub.prototype.getDefaultStyle = function () {\n                return clone(defaultProps.style);\n            };\n            Sub.prototype.getDefaultShape = function () {\n                return clone(defaultProps.shape);\n            };\n            return Sub;\n        }(Path));\n        for (var key in defaultProps) {\n            if (typeof defaultProps[key] === 'function') {\n                Sub.prototype[key] = defaultProps[key];\n            }\n        }\n        return Sub;\n    };\n    Path.SHAPE_CHANGED_BIT = 4;\n    Path.initDefaultProps = (function () {\n        var pathProto = Path.prototype;\n        pathProto.type = 'path';\n        pathProto.strokeContainThreshold = 5;\n        pathProto.segmentIgnoreThreshold = 0;\n        pathProto.subPixelOptimize = false;\n        pathProto.autoBatch = false;\n        pathProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT | Path.SHAPE_CHANGED_BIT;\n    })();\n    return Path;\n}(Displayable));\nexport default Path;\n","import { __extends } from \"tslib\";\nimport Displayable from './Displayable';\nimport { getBoundingRect, DEFAULT_FONT } from '../contain/text';\nimport { DEFAULT_PATH_STYLE } from './Path';\nimport { createObject, defaults } from '../core/util';\nexport var DEFAULT_TSPAN_STYLE = defaults({\n    strokeFirst: true,\n    font: DEFAULT_FONT,\n    x: 0,\n    y: 0,\n    textAlign: 'left',\n    textBaseline: 'top',\n    miterLimit: 2\n}, DEFAULT_PATH_STYLE);\nvar TSpan = (function (_super) {\n    __extends(TSpan, _super);\n    function TSpan() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    TSpan.prototype.hasStroke = function () {\n        var style = this.style;\n        var stroke = style.stroke;\n        return stroke != null && stroke !== 'none' && style.lineWidth > 0;\n    };\n    TSpan.prototype.hasFill = function () {\n        var style = this.style;\n        var fill = style.fill;\n        return fill != null && fill !== 'none';\n    };\n    TSpan.prototype.createStyle = function (obj) {\n        return createObject(DEFAULT_TSPAN_STYLE, obj);\n    };\n    TSpan.prototype.setBoundingRect = function (rect) {\n        this._rect = rect;\n    };\n    TSpan.prototype.getBoundingRect = function () {\n        var style = this.style;\n        if (!this._rect) {\n            var text = style.text;\n            text != null ? (text += '') : (text = '');\n            var rect = getBoundingRect(text, style.font, style.textAlign, style.textBaseline);\n            rect.x += style.x || 0;\n            rect.y += style.y || 0;\n            if (this.hasStroke()) {\n                var w = style.lineWidth;\n                rect.x -= w / 2;\n                rect.y -= w / 2;\n                rect.width += w;\n                rect.height += w;\n            }\n            this._rect = rect;\n        }\n        return this._rect;\n    };\n    TSpan.initDefaultProps = (function () {\n        var tspanProto = TSpan.prototype;\n        tspanProto.dirtyRectTolerance = 10;\n    })();\n    return TSpan;\n}(Displayable));\nTSpan.prototype.type = 'tspan';\nexport default TSpan;\n","import { __extends } from \"tslib\";\nimport Displayable, { DEFAULT_COMMON_STYLE, DEFAULT_COMMON_ANIMATION_PROPS } from './Displayable';\nimport BoundingRect from '../core/BoundingRect';\nimport { defaults, createObject } from '../core/util';\nexport var DEFAULT_IMAGE_STYLE = defaults({\n    x: 0,\n    y: 0\n}, DEFAULT_COMMON_STYLE);\nexport var DEFAULT_IMAGE_ANIMATION_PROPS = {\n    style: defaults({\n        x: true,\n        y: true,\n        width: true,\n        height: true,\n        sx: true,\n        sy: true,\n        sWidth: true,\n        sHeight: true\n    }, DEFAULT_COMMON_ANIMATION_PROPS.style)\n};\nfunction isImageLike(source) {\n    return !!(source\n        && typeof source !== 'string'\n        && source.width && source.height);\n}\nvar ZRImage = (function (_super) {\n    __extends(ZRImage, _super);\n    function ZRImage() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    ZRImage.prototype.createStyle = function (obj) {\n        return createObject(DEFAULT_IMAGE_STYLE, obj);\n    };\n    ZRImage.prototype._getSize = function (dim) {\n        var style = this.style;\n        var size = style[dim];\n        if (size != null) {\n            return size;\n        }\n        var imageSource = isImageLike(style.image)\n            ? style.image : this.__image;\n        if (!imageSource) {\n            return 0;\n        }\n        var otherDim = dim === 'width' ? 'height' : 'width';\n        var otherDimSize = style[otherDim];\n        if (otherDimSize == null) {\n            return imageSource[dim];\n        }\n        else {\n            return imageSource[dim] / imageSource[otherDim] * otherDimSize;\n        }\n    };\n    ZRImage.prototype.getWidth = function () {\n        return this._getSize('width');\n    };\n    ZRImage.prototype.getHeight = function () {\n        return this._getSize('height');\n    };\n    ZRImage.prototype.getAnimationStyleProps = function () {\n        return DEFAULT_IMAGE_ANIMATION_PROPS;\n    };\n    ZRImage.prototype.getBoundingRect = function () {\n        var style = this.style;\n        if (!this._rect) {\n            this._rect = new BoundingRect(style.x || 0, style.y || 0, this.getWidth(), this.getHeight());\n        }\n        return this._rect;\n    };\n    return ZRImage;\n}(Displayable));\nZRImage.prototype.type = 'image';\nexport default ZRImage;\n","export function buildPath(ctx, shape) {\n    var x = shape.x;\n    var y = shape.y;\n    var width = shape.width;\n    var height = shape.height;\n    var r = shape.r;\n    var r1;\n    var r2;\n    var r3;\n    var r4;\n    if (width < 0) {\n        x = x + width;\n        width = -width;\n    }\n    if (height < 0) {\n        y = y + height;\n        height = -height;\n    }\n    if (typeof r === 'number') {\n        r1 = r2 = r3 = r4 = r;\n    }\n    else if (r instanceof Array) {\n        if (r.length === 1) {\n            r1 = r2 = r3 = r4 = r[0];\n        }\n        else if (r.length === 2) {\n            r1 = r3 = r[0];\n            r2 = r4 = r[1];\n        }\n        else if (r.length === 3) {\n            r1 = r[0];\n            r2 = r4 = r[1];\n            r3 = r[2];\n        }\n        else {\n            r1 = r[0];\n            r2 = r[1];\n            r3 = r[2];\n            r4 = r[3];\n        }\n    }\n    else {\n        r1 = r2 = r3 = r4 = 0;\n    }\n    var total;\n    if (r1 + r2 > width) {\n        total = r1 + r2;\n        r1 *= width / total;\n        r2 *= width / total;\n    }\n    if (r3 + r4 > width) {\n        total = r3 + r4;\n        r3 *= width / total;\n        r4 *= width / total;\n    }\n    if (r2 + r3 > height) {\n        total = r2 + r3;\n        r2 *= height / total;\n        r3 *= height / total;\n    }\n    if (r1 + r4 > height) {\n        total = r1 + r4;\n        r1 *= height / total;\n        r4 *= height / total;\n    }\n    ctx.moveTo(x + r1, y);\n    ctx.lineTo(x + width - r2, y);\n    r2 !== 0 && ctx.arc(x + width - r2, y + r2, r2, -Math.PI / 2, 0);\n    ctx.lineTo(x + width, y + height - r3);\n    r3 !== 0 && ctx.arc(x + width - r3, y + height - r3, r3, 0, Math.PI / 2);\n    ctx.lineTo(x + r4, y + height);\n    r4 !== 0 && ctx.arc(x + r4, y + height - r4, r4, Math.PI / 2, Math.PI);\n    ctx.lineTo(x, y + r1);\n    r1 !== 0 && ctx.arc(x + r1, y + r1, r1, Math.PI, Math.PI * 1.5);\n}\n","var round = Math.round;\nexport function subPixelOptimizeLine(outputShape, inputShape, style) {\n    if (!inputShape) {\n        return;\n    }\n    var x1 = inputShape.x1;\n    var x2 = inputShape.x2;\n    var y1 = inputShape.y1;\n    var y2 = inputShape.y2;\n    outputShape.x1 = x1;\n    outputShape.x2 = x2;\n    outputShape.y1 = y1;\n    outputShape.y2 = y2;\n    var lineWidth = style && style.lineWidth;\n    if (!lineWidth) {\n        return outputShape;\n    }\n    if (round(x1 * 2) === round(x2 * 2)) {\n        outputShape.x1 = outputShape.x2 = subPixelOptimize(x1, lineWidth, true);\n    }\n    if (round(y1 * 2) === round(y2 * 2)) {\n        outputShape.y1 = outputShape.y2 = subPixelOptimize(y1, lineWidth, true);\n    }\n    return outputShape;\n}\nexport function subPixelOptimizeRect(outputShape, inputShape, style) {\n    if (!inputShape) {\n        return;\n    }\n    var originX = inputShape.x;\n    var originY = inputShape.y;\n    var originWidth = inputShape.width;\n    var originHeight = inputShape.height;\n    outputShape.x = originX;\n    outputShape.y = originY;\n    outputShape.width = originWidth;\n    outputShape.height = originHeight;\n    var lineWidth = style && style.lineWidth;\n    if (!lineWidth) {\n        return outputShape;\n    }\n    outputShape.x = subPixelOptimize(originX, lineWidth, true);\n    outputShape.y = subPixelOptimize(originY, lineWidth, true);\n    outputShape.width = Math.max(subPixelOptimize(originX + originWidth, lineWidth, false) - outputShape.x, originWidth === 0 ? 0 : 1);\n    outputShape.height = Math.max(subPixelOptimize(originY + originHeight, lineWidth, false) - outputShape.y, originHeight === 0 ? 0 : 1);\n    return outputShape;\n}\nexport function subPixelOptimize(position, lineWidth, positiveOrNegative) {\n    if (!lineWidth) {\n        return position;\n    }\n    var doubledPosition = round(position * 2);\n    return (doubledPosition + round(lineWidth)) % 2 === 0\n        ? doubledPosition / 2\n        : (doubledPosition + (positiveOrNegative ? 1 : -1)) / 2;\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as roundRectHelper from '../helper/roundRect';\nimport { subPixelOptimizeRect } from '../helper/subPixelOptimize';\nvar RectShape = (function () {\n    function RectShape() {\n        this.x = 0;\n        this.y = 0;\n        this.width = 0;\n        this.height = 0;\n    }\n    return RectShape;\n}());\nvar subPixelOptimizeOutputShape = {};\nvar Rect = (function (_super) {\n    __extends(Rect, _super);\n    function Rect(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Rect.prototype.getDefaultShape = function () {\n        return new RectShape();\n    };\n    Rect.prototype.buildPath = function (ctx, shape) {\n        var x;\n        var y;\n        var width;\n        var height;\n        if (this.subPixelOptimize) {\n            var optimizedShape = subPixelOptimizeRect(subPixelOptimizeOutputShape, shape, this.style);\n            x = optimizedShape.x;\n            y = optimizedShape.y;\n            width = optimizedShape.width;\n            height = optimizedShape.height;\n            optimizedShape.r = shape.r;\n            shape = optimizedShape;\n        }\n        else {\n            x = shape.x;\n            y = shape.y;\n            width = shape.width;\n            height = shape.height;\n        }\n        if (!shape.r) {\n            ctx.rect(x, y, width, height);\n        }\n        else {\n            roundRectHelper.buildPath(ctx, shape);\n        }\n    };\n    Rect.prototype.isZeroArea = function () {\n        return !this.shape.width || !this.shape.height;\n    };\n    return Rect;\n}(Path));\nRect.prototype.type = 'rect';\nexport default Rect;\n","import { __extends } from \"tslib\";\nimport { parseRichText, parsePlainText } from './helper/parseText';\nimport TSpan from './TSpan';\nimport { retrieve2, isString, each, normalizeCssArray, trim, retrieve3, extend, keys, defaults } from '../core/util';\nimport { DEFAULT_FONT, adjustTextX, adjustTextY } from '../contain/text';\nimport ZRImage from './Image';\nimport Rect from './shape/Rect';\nimport BoundingRect from '../core/BoundingRect';\nimport { copy } from '../core/matrix';\nimport Displayable, { DEFAULT_COMMON_ANIMATION_PROPS } from './Displayable';\nvar DEFAULT_RICH_TEXT_COLOR = {\n    fill: '#000'\n};\nvar DEFAULT_STROKE_LINE_WIDTH = 2;\nexport var DEFAULT_TEXT_ANIMATION_PROPS = {\n    style: defaults({\n        fill: true,\n        stroke: true,\n        fillOpacity: true,\n        strokeOpacity: true,\n        lineWidth: true,\n        fontSize: true,\n        lineHeight: true,\n        width: true,\n        height: true,\n        textShadowColor: true,\n        textShadowBlur: true,\n        textShadowOffsetX: true,\n        textShadowOffsetY: true,\n        backgroundColor: true,\n        padding: true,\n        borderColor: true,\n        borderWidth: true,\n        borderRadius: true\n    }, DEFAULT_COMMON_ANIMATION_PROPS.style)\n};\nvar ZRText = (function (_super) {\n    __extends(ZRText, _super);\n    function ZRText(opts) {\n        var _this = _super.call(this) || this;\n        _this.type = 'text';\n        _this._children = [];\n        _this._defaultStyle = DEFAULT_RICH_TEXT_COLOR;\n        _this.attr(opts);\n        return _this;\n    }\n    ZRText.prototype.childrenRef = function () {\n        return this._children;\n    };\n    ZRText.prototype.update = function () {\n        if (this.styleChanged()) {\n            this._updateSubTexts();\n        }\n        for (var i = 0; i < this._children.length; i++) {\n            var child = this._children[i];\n            child.zlevel = this.zlevel;\n            child.z = this.z;\n            child.z2 = this.z2;\n            child.culling = this.culling;\n            child.cursor = this.cursor;\n            child.invisible = this.invisible;\n        }\n        var attachedTransform = this.attachedTransform;\n        if (attachedTransform) {\n            attachedTransform.updateTransform();\n            var m = attachedTransform.transform;\n            if (m) {\n                this.transform = this.transform || [];\n                copy(this.transform, m);\n            }\n            else {\n                this.transform = null;\n            }\n        }\n        else {\n            _super.prototype.update.call(this);\n        }\n    };\n    ZRText.prototype.getComputedTransform = function () {\n        if (this.__hostTarget) {\n            this.__hostTarget.getComputedTransform();\n            this.__hostTarget.updateInnerText(true);\n        }\n        return this.attachedTransform ? this.attachedTransform.getComputedTransform()\n            : _super.prototype.getComputedTransform.call(this);\n    };\n    ZRText.prototype._updateSubTexts = function () {\n        this._childCursor = 0;\n        normalizeTextStyle(this.style);\n        this.style.rich\n            ? this._updateRichTexts()\n            : this._updatePlainTexts();\n        this._children.length = this._childCursor;\n        this.styleUpdated();\n    };\n    ZRText.prototype.addSelfToZr = function (zr) {\n        _super.prototype.addSelfToZr.call(this, zr);\n        for (var i = 0; i < this._children.length; i++) {\n            this._children[i].__zr = zr;\n        }\n    };\n    ZRText.prototype.removeSelfFromZr = function (zr) {\n        _super.prototype.removeSelfFromZr.call(this, zr);\n        for (var i = 0; i < this._children.length; i++) {\n            this._children[i].__zr = null;\n        }\n    };\n    ZRText.prototype.getBoundingRect = function () {\n        if (this.styleChanged()) {\n            this._updateSubTexts();\n        }\n        if (!this._rect) {\n            var tmpRect = new BoundingRect(0, 0, 0, 0);\n            var children = this._children;\n            var tmpMat = [];\n            var rect = null;\n            for (var i = 0; i < children.length; i++) {\n                var child = children[i];\n                var childRect = child.getBoundingRect();\n                var transform = child.getLocalTransform(tmpMat);\n                if (transform) {\n                    tmpRect.copy(childRect);\n                    tmpRect.applyTransform(transform);\n                    rect = rect || tmpRect.clone();\n                    rect.union(tmpRect);\n                }\n                else {\n                    rect = rect || childRect.clone();\n                    rect.union(childRect);\n                }\n            }\n            this._rect = rect || tmpRect;\n        }\n        return this._rect;\n    };\n    ZRText.prototype.setDefaultTextStyle = function (defaultTextStyle) {\n        this._defaultStyle = defaultTextStyle || DEFAULT_RICH_TEXT_COLOR;\n    };\n    ZRText.prototype.setTextContent = function (textContent) {\n        throw new Error('Can\\'t attach text on another text');\n    };\n    ZRText.prototype._mergeStyle = function (targetStyle, sourceStyle) {\n        if (!sourceStyle) {\n            return targetStyle;\n        }\n        var sourceRich = sourceStyle.rich;\n        var targetRich = targetStyle.rich || (sourceRich && {});\n        extend(targetStyle, sourceStyle);\n        if (sourceRich && targetRich) {\n            this._mergeRich(targetRich, sourceRich);\n            targetStyle.rich = targetRich;\n        }\n        else if (targetRich) {\n            targetStyle.rich = targetRich;\n        }\n        return targetStyle;\n    };\n    ZRText.prototype._mergeRich = function (targetRich, sourceRich) {\n        var richNames = keys(sourceRich);\n        for (var i = 0; i < richNames.length; i++) {\n            var richName = richNames[i];\n            targetRich[richName] = targetRich[richName] || {};\n            extend(targetRich[richName], sourceRich[richName]);\n        }\n    };\n    ZRText.prototype.getAnimationStyleProps = function () {\n        return DEFAULT_TEXT_ANIMATION_PROPS;\n    };\n    ZRText.prototype._getOrCreateChild = function (Ctor) {\n        var child = this._children[this._childCursor];\n        if (!child || !(child instanceof Ctor)) {\n            child = new Ctor();\n        }\n        this._children[this._childCursor++] = child;\n        child.__zr = this.__zr;\n        child.parent = this;\n        return child;\n    };\n    ZRText.prototype._updatePlainTexts = function () {\n        var style = this.style;\n        var textFont = style.font || DEFAULT_FONT;\n        var textPadding = style.padding;\n        var text = getStyleText(style);\n        var contentBlock = parsePlainText(text, style);\n        var needDrawBg = needDrawBackground(style);\n        var bgColorDrawn = !!(style.backgroundColor);\n        var outerHeight = contentBlock.outerHeight;\n        var textLines = contentBlock.lines;\n        var lineHeight = contentBlock.lineHeight;\n        var defaultStyle = this._defaultStyle;\n        var baseX = style.x || 0;\n        var baseY = style.y || 0;\n        var textAlign = style.align || defaultStyle.align || 'left';\n        var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign || 'top';\n        var textX = baseX;\n        var textY = adjustTextY(baseY, contentBlock.contentHeight, verticalAlign);\n        if (needDrawBg || textPadding) {\n            var outerWidth_1 = contentBlock.width;\n            textPadding && (outerWidth_1 += textPadding[1] + textPadding[3]);\n            var boxX = adjustTextX(baseX, outerWidth_1, textAlign);\n            var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\n            needDrawBg && this._renderBackground(style, style, boxX, boxY, outerWidth_1, outerHeight);\n        }\n        textY += lineHeight / 2;\n        if (textPadding) {\n            textX = getTextXForPadding(baseX, textAlign, textPadding);\n            if (verticalAlign === 'top') {\n                textY += textPadding[0];\n            }\n            else if (verticalAlign === 'bottom') {\n                textY -= textPadding[2];\n            }\n        }\n        var defaultLineWidth = 0;\n        var useDefaultFill = false;\n        var textFill = getFill('fill' in style\n            ? style.fill\n            : (useDefaultFill = true, defaultStyle.fill));\n        var textStroke = getStroke('stroke' in style\n            ? style.stroke\n            : (!bgColorDrawn\n                && (!defaultStyle.autoStroke || useDefaultFill))\n                ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\n                : null);\n        var hasShadow = style.textShadowBlur > 0;\n        var fixedBoundingRect = style.width != null\n            && (style.overflow === 'truncate' || style.overflow === 'break' || style.overflow === 'breakAll');\n        var calculatedLineHeight = contentBlock.calculatedLineHeight;\n        for (var i = 0; i < textLines.length; i++) {\n            var el = this._getOrCreateChild(TSpan);\n            var subElStyle = el.createStyle();\n            el.useStyle(subElStyle);\n            subElStyle.text = textLines[i];\n            subElStyle.x = textX;\n            subElStyle.y = textY;\n            if (textAlign) {\n                subElStyle.textAlign = textAlign;\n            }\n            subElStyle.textBaseline = 'middle';\n            subElStyle.opacity = style.opacity;\n            subElStyle.strokeFirst = true;\n            if (hasShadow) {\n                subElStyle.shadowBlur = style.textShadowBlur || 0;\n                subElStyle.shadowColor = style.textShadowColor || 'transparent';\n                subElStyle.shadowOffsetX = style.textShadowOffsetX || 0;\n                subElStyle.shadowOffsetY = style.textShadowOffsetY || 0;\n            }\n            if (textStroke) {\n                subElStyle.stroke = textStroke;\n                subElStyle.lineWidth = style.lineWidth || defaultLineWidth;\n                subElStyle.lineDash = style.lineDash;\n                subElStyle.lineDashOffset = style.lineDashOffset || 0;\n            }\n            if (textFill) {\n                subElStyle.fill = textFill;\n            }\n            subElStyle.font = textFont;\n            textY += lineHeight;\n            if (fixedBoundingRect) {\n                el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, style.width, subElStyle.textAlign), adjustTextY(subElStyle.y, calculatedLineHeight, subElStyle.textBaseline), style.width, calculatedLineHeight));\n            }\n        }\n    };\n    ZRText.prototype._updateRichTexts = function () {\n        var style = this.style;\n        var text = getStyleText(style);\n        var contentBlock = parseRichText(text, style);\n        var contentWidth = contentBlock.width;\n        var outerWidth = contentBlock.outerWidth;\n        var outerHeight = contentBlock.outerHeight;\n        var textPadding = style.padding;\n        var baseX = style.x || 0;\n        var baseY = style.y || 0;\n        var defaultStyle = this._defaultStyle;\n        var textAlign = style.align || defaultStyle.align;\n        var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign;\n        var boxX = adjustTextX(baseX, outerWidth, textAlign);\n        var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\n        var xLeft = boxX;\n        var lineTop = boxY;\n        if (textPadding) {\n            xLeft += textPadding[3];\n            lineTop += textPadding[0];\n        }\n        var xRight = xLeft + contentWidth;\n        if (needDrawBackground(style)) {\n            this._renderBackground(style, style, boxX, boxY, outerWidth, outerHeight);\n        }\n        var bgColorDrawn = !!(style.backgroundColor);\n        for (var i = 0; i < contentBlock.lines.length; i++) {\n            var line = contentBlock.lines[i];\n            var tokens = line.tokens;\n            var tokenCount = tokens.length;\n            var lineHeight = line.lineHeight;\n            var remainedWidth = line.width;\n            var leftIndex = 0;\n            var lineXLeft = xLeft;\n            var lineXRight = xRight;\n            var rightIndex = tokenCount - 1;\n            var token = void 0;\n            while (leftIndex < tokenCount\n                && (token = tokens[leftIndex], !token.align || token.align === 'left')) {\n                this._placeToken(token, style, lineHeight, lineTop, lineXLeft, 'left', bgColorDrawn);\n                remainedWidth -= token.width;\n                lineXLeft += token.width;\n                leftIndex++;\n            }\n            while (rightIndex >= 0\n                && (token = tokens[rightIndex], token.align === 'right')) {\n                this._placeToken(token, style, lineHeight, lineTop, lineXRight, 'right', bgColorDrawn);\n                remainedWidth -= token.width;\n                lineXRight -= token.width;\n                rightIndex--;\n            }\n            lineXLeft += (contentWidth - (lineXLeft - xLeft) - (xRight - lineXRight) - remainedWidth) / 2;\n            while (leftIndex <= rightIndex) {\n                token = tokens[leftIndex];\n                this._placeToken(token, style, lineHeight, lineTop, lineXLeft + token.width / 2, 'center', bgColorDrawn);\n                lineXLeft += token.width;\n                leftIndex++;\n            }\n            lineTop += lineHeight;\n        }\n    };\n    ZRText.prototype._placeToken = function (token, style, lineHeight, lineTop, x, textAlign, parentBgColorDrawn) {\n        var tokenStyle = style.rich[token.styleName] || {};\n        tokenStyle.text = token.text;\n        var verticalAlign = token.verticalAlign;\n        var y = lineTop + lineHeight / 2;\n        if (verticalAlign === 'top') {\n            y = lineTop + token.height / 2;\n        }\n        else if (verticalAlign === 'bottom') {\n            y = lineTop + lineHeight - token.height / 2;\n        }\n        var needDrawBg = !token.isLineHolder && needDrawBackground(tokenStyle);\n        needDrawBg && this._renderBackground(tokenStyle, style, textAlign === 'right'\n            ? x - token.width\n            : textAlign === 'center'\n                ? x - token.width / 2\n                : x, y - token.height / 2, token.width, token.height);\n        var bgColorDrawn = !!tokenStyle.backgroundColor;\n        var textPadding = token.textPadding;\n        if (textPadding) {\n            x = getTextXForPadding(x, textAlign, textPadding);\n            y -= token.height / 2 - textPadding[0] - token.innerHeight / 2;\n        }\n        var el = this._getOrCreateChild(TSpan);\n        var subElStyle = el.createStyle();\n        el.useStyle(subElStyle);\n        var defaultStyle = this._defaultStyle;\n        var useDefaultFill = false;\n        var defaultLineWidth = 0;\n        var textFill = getStroke('fill' in tokenStyle ? tokenStyle.fill\n            : 'fill' in style ? style.fill\n                : (useDefaultFill = true, defaultStyle.fill));\n        var textStroke = getStroke('stroke' in tokenStyle ? tokenStyle.stroke\n            : 'stroke' in style ? style.stroke\n                : (!bgColorDrawn\n                    && !parentBgColorDrawn\n                    && (!defaultStyle.autoStroke || useDefaultFill)) ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\n                    : null);\n        var hasShadow = tokenStyle.textShadowBlur > 0\n            || style.textShadowBlur > 0;\n        subElStyle.text = token.text;\n        subElStyle.x = x;\n        subElStyle.y = y;\n        if (hasShadow) {\n            subElStyle.shadowBlur = tokenStyle.textShadowBlur || style.textShadowBlur || 0;\n            subElStyle.shadowColor = tokenStyle.textShadowColor || style.textShadowColor || 'transparent';\n            subElStyle.shadowOffsetX = tokenStyle.textShadowOffsetX || style.textShadowOffsetX || 0;\n            subElStyle.shadowOffsetY = tokenStyle.textShadowOffsetY || style.textShadowOffsetY || 0;\n        }\n        subElStyle.textAlign = textAlign;\n        subElStyle.textBaseline = 'middle';\n        subElStyle.font = token.font || DEFAULT_FONT;\n        subElStyle.opacity = retrieve3(tokenStyle.opacity, style.opacity, 1);\n        if (textStroke) {\n            subElStyle.lineWidth = retrieve3(tokenStyle.lineWidth, style.lineWidth, defaultLineWidth);\n            subElStyle.lineDash = retrieve2(tokenStyle.lineDash, style.lineDash);\n            subElStyle.lineDashOffset = style.lineDashOffset || 0;\n            subElStyle.stroke = textStroke;\n        }\n        if (textFill) {\n            subElStyle.fill = textFill;\n        }\n        var textWidth = token.contentWidth;\n        var textHeight = token.contentHeight;\n        el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, textWidth, subElStyle.textAlign), adjustTextY(subElStyle.y, textHeight, subElStyle.textBaseline), textWidth, textHeight));\n    };\n    ZRText.prototype._renderBackground = function (style, topStyle, x, y, width, height) {\n        var textBackgroundColor = style.backgroundColor;\n        var textBorderWidth = style.borderWidth;\n        var textBorderColor = style.borderColor;\n        var isPlainBg = isString(textBackgroundColor);\n        var textBorderRadius = style.borderRadius;\n        var self = this;\n        var rectEl;\n        var imgEl;\n        if (isPlainBg || (textBorderWidth && textBorderColor)) {\n            rectEl = this._getOrCreateChild(Rect);\n            rectEl.useStyle(rectEl.createStyle());\n            rectEl.style.fill = null;\n            var rectShape = rectEl.shape;\n            rectShape.x = x;\n            rectShape.y = y;\n            rectShape.width = width;\n            rectShape.height = height;\n            rectShape.r = textBorderRadius;\n            rectEl.dirtyShape();\n        }\n        if (isPlainBg) {\n            var rectStyle = rectEl.style;\n            rectStyle.fill = textBackgroundColor || null;\n            rectStyle.fillOpacity = retrieve2(style.fillOpacity, 1);\n        }\n        else if (textBackgroundColor && textBackgroundColor.image) {\n            imgEl = this._getOrCreateChild(ZRImage);\n            imgEl.onload = function () {\n                self.dirtyStyle();\n            };\n            var imgStyle = imgEl.style;\n            imgStyle.image = textBackgroundColor.image;\n            imgStyle.x = x;\n            imgStyle.y = y;\n            imgStyle.width = width;\n            imgStyle.height = height;\n        }\n        if (textBorderWidth && textBorderColor) {\n            var rectStyle = rectEl.style;\n            rectStyle.lineWidth = textBorderWidth;\n            rectStyle.stroke = textBorderColor;\n            rectStyle.strokeOpacity = retrieve2(style.strokeOpacity, 1);\n            rectStyle.lineDash = style.borderDash;\n            rectStyle.lineDashOffset = style.borderDashOffset || 0;\n            rectEl.strokeContainThreshold = 0;\n            if (rectEl.hasFill() && rectEl.hasStroke()) {\n                rectStyle.strokeFirst = true;\n                rectStyle.lineWidth *= 2;\n            }\n        }\n        var commonStyle = (rectEl || imgEl).style;\n        commonStyle.shadowBlur = style.shadowBlur || 0;\n        commonStyle.shadowColor = style.shadowColor || 'transparent';\n        commonStyle.shadowOffsetX = style.shadowOffsetX || 0;\n        commonStyle.shadowOffsetY = style.shadowOffsetY || 0;\n        commonStyle.opacity = retrieve3(style.opacity, topStyle.opacity, 1);\n    };\n    ZRText.makeFont = function (style) {\n        var font = '';\n        if (style.fontSize || style.fontFamily || style.fontWeight) {\n            var fontSize = '';\n            if (typeof style.fontSize === 'string'\n                && (style.fontSize.indexOf('px') !== -1\n                    || style.fontSize.indexOf('rem') !== -1\n                    || style.fontSize.indexOf('em') !== -1)) {\n                fontSize = style.fontSize;\n            }\n            else if (!isNaN(+style.fontSize)) {\n                fontSize = style.fontSize + 'px';\n            }\n            else {\n                fontSize = '12px';\n            }\n            font = [\n                style.fontStyle,\n                style.fontWeight,\n                fontSize,\n                style.fontFamily || 'sans-serif'\n            ].join(' ');\n        }\n        return font && trim(font) || style.textFont || style.font;\n    };\n    return ZRText;\n}(Displayable));\nvar VALID_TEXT_ALIGN = { left: true, right: 1, center: 1 };\nvar VALID_TEXT_VERTICAL_ALIGN = { top: 1, bottom: 1, middle: 1 };\nexport function normalizeTextStyle(style) {\n    normalizeStyle(style);\n    each(style.rich, normalizeStyle);\n    return style;\n}\nfunction normalizeStyle(style) {\n    if (style) {\n        style.font = ZRText.makeFont(style);\n        var textAlign = style.align;\n        textAlign === 'middle' && (textAlign = 'center');\n        style.align = (textAlign == null || VALID_TEXT_ALIGN[textAlign]) ? textAlign : 'left';\n        var verticalAlign = style.verticalAlign;\n        verticalAlign === 'center' && (verticalAlign = 'middle');\n        style.verticalAlign = (verticalAlign == null || VALID_TEXT_VERTICAL_ALIGN[verticalAlign]) ? verticalAlign : 'top';\n        var textPadding = style.padding;\n        if (textPadding) {\n            style.padding = normalizeCssArray(style.padding);\n        }\n    }\n}\nfunction getStroke(stroke, lineWidth) {\n    return (stroke == null || lineWidth <= 0 || stroke === 'transparent' || stroke === 'none')\n        ? null\n        : (stroke.image || stroke.colorStops)\n            ? '#000'\n            : stroke;\n}\nfunction getFill(fill) {\n    return (fill == null || fill === 'none')\n        ? null\n        : (fill.image || fill.colorStops)\n            ? '#000'\n            : fill;\n}\nfunction getTextXForPadding(x, textAlign, textPadding) {\n    return textAlign === 'right'\n        ? (x - textPadding[1])\n        : textAlign === 'center'\n            ? (x + textPadding[3] / 2 - textPadding[1] / 2)\n            : (x + textPadding[3]);\n}\nfunction getStyleText(style) {\n    var text = style.text;\n    text != null && (text += '');\n    return text;\n}\nfunction needDrawBackground(style) {\n    return !!(style.backgroundColor\n        || (style.borderWidth && style.borderColor));\n}\nexport default ZRText;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner } from './model';\nexport var getECData = makeInner();","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport LRU from 'zrender/lib/core/LRU';\nimport { extend, indexOf, isArrayLike, isObject, keys, isArray, each } from 'zrender/lib/core/util';\nimport { getECData } from './innerStore';\nimport * as colorTool from 'zrender/lib/tool/color';\nimport { queryDataIndex, makeInner } from './model';\nimport Path from 'zrender/lib/graphic/Path';\nvar _highlightNextDigit = 1;\nvar _highlightKeyMap = {};\nvar getSavedStates = makeInner();\nexport var HOVER_STATE_NORMAL = 0;\nexport var HOVER_STATE_BLUR = 1;\nexport var HOVER_STATE_EMPHASIS = 2;\nexport var SPECIAL_STATES = ['emphasis', 'blur', 'select'];\nexport var DISPLAY_STATES = ['normal', 'emphasis', 'blur', 'select'];\nexport var Z2_EMPHASIS_LIFT = 10;\nexport var Z2_SELECT_LIFT = 9;\nexport var HIGHLIGHT_ACTION_TYPE = 'highlight';\nexport var DOWNPLAY_ACTION_TYPE = 'downplay';\nexport var SELECT_ACTION_TYPE = 'select';\nexport var UNSELECT_ACTION_TYPE = 'unselect';\nexport var TOGGLE_SELECT_ACTION_TYPE = 'toggleSelect';\n\nfunction hasFillOrStroke(fillOrStroke) {\n  return fillOrStroke != null && fillOrStroke !== 'none';\n}\n\nvar liftedColorCache = new LRU(100);\n\nfunction liftColor(color) {\n  if (typeof color !== 'string') {\n    return color;\n  }\n\n  var liftedColor = liftedColorCache.get(color);\n\n  if (!liftedColor) {\n    liftedColor = colorTool.lift(color, -0.1);\n    liftedColorCache.put(color, liftedColor);\n  }\n\n  return liftedColor;\n}\n\nfunction doChangeHoverState(el, stateName, hoverStateEnum) {\n  if (el.onHoverStateChange && (el.hoverState || 0) !== hoverStateEnum) {\n    el.onHoverStateChange(stateName);\n  }\n\n  el.hoverState = hoverStateEnum;\n}\n\nfunction singleEnterEmphasis(el) {\n  doChangeHoverState(el, 'emphasis', HOVER_STATE_EMPHASIS);\n}\n\nfunction singleLeaveEmphasis(el) {\n  if (el.hoverState === HOVER_STATE_EMPHASIS) {\n    doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\n  }\n}\n\nfunction singleEnterBlur(el) {\n  doChangeHoverState(el, 'blur', HOVER_STATE_BLUR);\n}\n\nfunction singleLeaveBlur(el) {\n  if (el.hoverState === HOVER_STATE_BLUR) {\n    doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\n  }\n}\n\nfunction singleEnterSelect(el) {\n  el.selected = true;\n}\n\nfunction singleLeaveSelect(el) {\n  el.selected = false;\n}\n\nfunction updateElementState(el, updater, commonParam) {\n  updater(el, commonParam);\n}\n\nfunction traverseUpdateState(el, updater, commonParam) {\n  updateElementState(el, updater, commonParam);\n  el.isGroup && el.traverse(function (child) {\n    updateElementState(child, updater, commonParam);\n  });\n}\n\nexport function setStatesFlag(el, stateName) {\n  switch (stateName) {\n    case 'emphasis':\n      el.hoverState = HOVER_STATE_EMPHASIS;\n      break;\n\n    case 'normal':\n      el.hoverState = HOVER_STATE_NORMAL;\n      break;\n\n    case 'blur':\n      el.hoverState = HOVER_STATE_BLUR;\n      break;\n\n    case 'select':\n      el.selected = true;\n  }\n}\nexport function clearStates(el) {\n  if (el.isGroup) {\n    el.traverse(function (child) {\n      child.clearStates();\n    });\n  } else {\n    el.clearStates();\n  }\n}\n\nfunction getFromStateStyle(el, props, toStateName, defaultValue) {\n  var style = el.style;\n  var fromState = {};\n\n  for (var i = 0; i < props.length; i++) {\n    var propName = props[i];\n    var val = style[propName];\n    fromState[propName] = val == null ? defaultValue && defaultValue[propName] : val;\n  }\n\n  for (var i = 0; i < el.animators.length; i++) {\n    var animator = el.animators[i];\n\n    if (animator.__fromStateTransition && animator.__fromStateTransition.indexOf(toStateName) < 0 && animator.targetName === 'style') {\n      animator.saveFinalToTarget(fromState, props);\n    }\n  }\n\n  return fromState;\n}\n\nfunction createEmphasisDefaultState(el, stateName, targetStates, state) {\n  var hasSelect = targetStates && indexOf(targetStates, 'select') >= 0;\n  var cloned = false;\n\n  if (el instanceof Path) {\n    var store = getSavedStates(el);\n    var fromFill = hasSelect ? store.selectFill || store.normalFill : store.normalFill;\n    var fromStroke = hasSelect ? store.selectStroke || store.normalStroke : store.normalStroke;\n\n    if (hasFillOrStroke(fromFill) || hasFillOrStroke(fromStroke)) {\n      state = state || {};\n      var emphasisStyle = state.style || {};\n\n      if (!hasFillOrStroke(emphasisStyle.fill) && hasFillOrStroke(fromFill)) {\n        cloned = true;\n        state = extend({}, state);\n        emphasisStyle = extend({}, emphasisStyle);\n        emphasisStyle.fill = liftColor(fromFill);\n      } else if (!hasFillOrStroke(emphasisStyle.stroke) && hasFillOrStroke(fromStroke)) {\n        if (!cloned) {\n          state = extend({}, state);\n          emphasisStyle = extend({}, emphasisStyle);\n        }\n\n        emphasisStyle.stroke = liftColor(fromStroke);\n      }\n\n      state.style = emphasisStyle;\n    }\n  }\n\n  if (state) {\n    if (state.z2 == null) {\n      if (!cloned) {\n        state = extend({}, state);\n      }\n\n      var z2EmphasisLift = el.z2EmphasisLift;\n      state.z2 = el.z2 + (z2EmphasisLift != null ? z2EmphasisLift : Z2_EMPHASIS_LIFT);\n    }\n  }\n\n  return state;\n}\n\nfunction createSelectDefaultState(el, stateName, state) {\n  if (state) {\n    if (state.z2 == null) {\n      state = extend({}, state);\n      var z2SelectLift = el.z2SelectLift;\n      state.z2 = el.z2 + (z2SelectLift != null ? z2SelectLift : Z2_SELECT_LIFT);\n    }\n  }\n\n  return state;\n}\n\nfunction createBlurDefaultState(el, stateName, state) {\n  var hasBlur = indexOf(el.currentStates, stateName) >= 0;\n  var currentOpacity = el.style.opacity;\n  var fromState = !hasBlur ? getFromStateStyle(el, ['opacity'], stateName, {\n    opacity: 1\n  }) : null;\n  state = state || {};\n  var blurStyle = state.style || {};\n\n  if (blurStyle.opacity == null) {\n    state = extend({}, state);\n    blurStyle = extend({\n      opacity: hasBlur ? currentOpacity : fromState.opacity * 0.1\n    }, blurStyle);\n    state.style = blurStyle;\n  }\n\n  return state;\n}\n\nfunction elementStateProxy(stateName, targetStates) {\n  var state = this.states[stateName];\n\n  if (this.style) {\n    if (stateName === 'emphasis') {\n      return createEmphasisDefaultState(this, stateName, targetStates, state);\n    } else if (stateName === 'blur') {\n      return createBlurDefaultState(this, stateName, state);\n    } else if (stateName === 'select') {\n      return createSelectDefaultState(this, stateName, state);\n    }\n  }\n\n  return state;\n}\n\nexport function setDefaultStateProxy(el) {\n  el.stateProxy = elementStateProxy;\n  var textContent = el.getTextContent();\n  var textGuide = el.getTextGuideLine();\n\n  if (textContent) {\n    textContent.stateProxy = elementStateProxy;\n  }\n\n  if (textGuide) {\n    textGuide.stateProxy = elementStateProxy;\n  }\n}\nexport function enterEmphasisWhenMouseOver(el, e) {\n  !shouldSilent(el, e) && !el.__highByOuter && traverseUpdateState(el, singleEnterEmphasis);\n}\nexport function leaveEmphasisWhenMouseOut(el, e) {\n  !shouldSilent(el, e) && !el.__highByOuter && traverseUpdateState(el, singleLeaveEmphasis);\n}\nexport function enterEmphasis(el, highlightDigit) {\n  el.__highByOuter |= 1 << (highlightDigit || 0);\n  traverseUpdateState(el, singleEnterEmphasis);\n}\nexport function leaveEmphasis(el, highlightDigit) {\n  !(el.__highByOuter &= ~(1 << (highlightDigit || 0))) && traverseUpdateState(el, singleLeaveEmphasis);\n}\nexport function enterBlur(el) {\n  traverseUpdateState(el, singleEnterBlur);\n}\nexport function leaveBlur(el) {\n  traverseUpdateState(el, singleLeaveBlur);\n}\nexport function enterSelect(el) {\n  traverseUpdateState(el, singleEnterSelect);\n}\nexport function leaveSelect(el) {\n  traverseUpdateState(el, singleLeaveSelect);\n}\n\nfunction shouldSilent(el, e) {\n  return el.__highDownSilentOnTouch && e.zrByTouch;\n}\n\nfunction allLeaveBlur(api) {\n  var model = api.getModel();\n  model.eachComponent(function (componentType, componentModel) {\n    var view = componentType === 'series' ? api.getViewOfSeriesModel(componentModel) : api.getViewOfComponentModel(componentModel);\n    view.group.traverse(function (child) {\n      singleLeaveBlur(child);\n    });\n  });\n}\n\nexport function toggleSeriesBlurState(targetSeriesIndex, focus, blurScope, api, isBlur) {\n  var ecModel = api.getModel();\n  blurScope = blurScope || 'coordinateSystem';\n\n  function leaveBlurOfIndices(data, dataIndices) {\n    for (var i = 0; i < dataIndices.length; i++) {\n      var itemEl = data.getItemGraphicEl(dataIndices[i]);\n      itemEl && leaveBlur(itemEl);\n    }\n  }\n\n  if (!isBlur) {\n    allLeaveBlur(api);\n    return;\n  }\n\n  if (targetSeriesIndex == null) {\n    return;\n  }\n\n  if (!focus || focus === 'none') {\n    return;\n  }\n\n  var targetSeriesModel = ecModel.getSeriesByIndex(targetSeriesIndex);\n  var targetCoordSys = targetSeriesModel.coordinateSystem;\n\n  if (targetCoordSys && targetCoordSys.master) {\n    targetCoordSys = targetCoordSys.master;\n  }\n\n  var blurredSeries = [];\n  ecModel.eachSeries(function (seriesModel) {\n    var sameSeries = targetSeriesModel === seriesModel;\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys && coordSys.master) {\n      coordSys = coordSys.master;\n    }\n\n    var sameCoordSys = coordSys && targetCoordSys ? coordSys === targetCoordSys : sameSeries;\n\n    if (!(blurScope === 'series' && !sameSeries || blurScope === 'coordinateSystem' && !sameCoordSys || focus === 'series' && sameSeries)) {\n      var view = api.getViewOfSeriesModel(seriesModel);\n      view.group.traverse(function (child) {\n        singleEnterBlur(child);\n      });\n\n      if (isArrayLike(focus)) {\n        leaveBlurOfIndices(seriesModel.getData(), focus);\n      } else if (isObject(focus)) {\n        var dataTypes = keys(focus);\n\n        for (var d = 0; d < dataTypes.length; d++) {\n          leaveBlurOfIndices(seriesModel.getData(dataTypes[d]), focus[dataTypes[d]]);\n        }\n      }\n\n      blurredSeries.push(seriesModel);\n    }\n  });\n  ecModel.eachComponent(function (componentType, componentModel) {\n    if (componentType === 'series') {\n      return;\n    }\n\n    var view = api.getViewOfComponentModel(componentModel);\n\n    if (view && view.blurSeries) {\n      view.blurSeries(blurredSeries, ecModel);\n    }\n  });\n}\nexport function toggleSeriesBlurStateFromPayload(seriesModel, payload, api) {\n  if (!isHighDownPayload(payload)) {\n    return;\n  }\n\n  var isHighlight = payload.type === HIGHLIGHT_ACTION_TYPE;\n  var seriesIndex = seriesModel.seriesIndex;\n  var data = seriesModel.getData(payload.dataType);\n  var dataIndex = queryDataIndex(data, payload);\n  dataIndex = (isArray(dataIndex) ? dataIndex[0] : dataIndex) || 0;\n  var el = data.getItemGraphicEl(dataIndex);\n\n  if (!el) {\n    var count = data.count();\n    var current = 0;\n\n    while (!el && current < count) {\n      el = data.getItemGraphicEl(current++);\n    }\n  }\n\n  if (el) {\n    var ecData = getECData(el);\n    toggleSeriesBlurState(seriesIndex, ecData.focus, ecData.blurScope, api, isHighlight);\n  } else {\n    var focus_1 = seriesModel.get(['emphasis', 'focus']);\n    var blurScope = seriesModel.get(['emphasis', 'blurScope']);\n\n    if (focus_1 != null) {\n      toggleSeriesBlurState(seriesIndex, focus_1, blurScope, api, isHighlight);\n    }\n  }\n}\nexport function toggleSelectionFromPayload(seriesModel, payload, api) {\n  if (!isSelectChangePayload(payload)) {\n    return;\n  }\n\n  var dataType = payload.dataType;\n  var data = seriesModel.getData(dataType);\n  var dataIndex = queryDataIndex(data, payload);\n\n  if (!isArray(dataIndex)) {\n    dataIndex = [dataIndex];\n  }\n\n  seriesModel[payload.type === TOGGLE_SELECT_ACTION_TYPE ? 'toggleSelect' : payload.type === SELECT_ACTION_TYPE ? 'select' : 'unselect'](dataIndex, dataType);\n}\nexport function updateSeriesElementSelection(seriesModel) {\n  var allData = seriesModel.getAllData();\n  each(allData, function (_a) {\n    var data = _a.data,\n        type = _a.type;\n    data.eachItemGraphicEl(function (el, idx) {\n      seriesModel.isSelected(idx, type) ? enterSelect(el) : leaveSelect(el);\n    });\n  });\n}\nexport function getAllSelectedIndices(ecModel) {\n  var ret = [];\n  ecModel.eachSeries(function (seriesModel) {\n    var allData = seriesModel.getAllData();\n    each(allData, function (_a) {\n      var data = _a.data,\n          type = _a.type;\n      var dataIndices = seriesModel.getSelectedDataIndices();\n\n      if (dataIndices.length > 0) {\n        var item = {\n          dataIndex: dataIndices,\n          seriesIndex: seriesModel.seriesIndex\n        };\n\n        if (type != null) {\n          item.dataType = type;\n        }\n\n        ret.push(item);\n      }\n    });\n  });\n  return ret;\n}\nexport function enableHoverEmphasis(el, focus, blurScope) {\n  setAsHighDownDispatcher(el, true);\n  traverseUpdateState(el, setDefaultStateProxy);\n  enableHoverFocus(el, focus, blurScope);\n}\nexport function enableHoverFocus(el, focus, blurScope) {\n  var ecData = getECData(el);\n\n  if (focus != null) {\n    ecData.focus = focus;\n    ecData.blurScope = blurScope;\n  } else if (ecData.focus) {\n    ecData.focus = null;\n  }\n}\nvar OTHER_STATES = ['emphasis', 'blur', 'select'];\nvar defaultStyleGetterMap = {\n  itemStyle: 'getItemStyle',\n  lineStyle: 'getLineStyle',\n  areaStyle: 'getAreaStyle'\n};\nexport function setStatesStylesFromModel(el, itemModel, styleType, getter) {\n  styleType = styleType || 'itemStyle';\n\n  for (var i = 0; i < OTHER_STATES.length; i++) {\n    var stateName = OTHER_STATES[i];\n    var model = itemModel.getModel([stateName, styleType]);\n    var state = el.ensureState(stateName);\n    state.style = getter ? getter(model) : model[defaultStyleGetterMap[styleType]]();\n  }\n}\nexport function setAsHighDownDispatcher(el, asDispatcher) {\n  var disable = asDispatcher === false;\n  var extendedEl = el;\n\n  if (el.highDownSilentOnTouch) {\n    extendedEl.__highDownSilentOnTouch = el.highDownSilentOnTouch;\n  }\n\n  if (!disable || extendedEl.__highDownDispatcher) {\n    extendedEl.__highByOuter = extendedEl.__highByOuter || 0;\n    extendedEl.__highDownDispatcher = !disable;\n  }\n}\nexport function isHighDownDispatcher(el) {\n  return !!(el && el.__highDownDispatcher);\n}\nexport function getHighlightDigit(highlightKey) {\n  var highlightDigit = _highlightKeyMap[highlightKey];\n\n  if (highlightDigit == null && _highlightNextDigit <= 32) {\n    highlightDigit = _highlightKeyMap[highlightKey] = _highlightNextDigit++;\n  }\n\n  return highlightDigit;\n}\nexport function isSelectChangePayload(payload) {\n  var payloadType = payload.type;\n  return payloadType === SELECT_ACTION_TYPE || payloadType === UNSELECT_ACTION_TYPE || payloadType === TOGGLE_SELECT_ACTION_TYPE;\n}\nexport function isHighDownPayload(payload) {\n  var payloadType = payload.type;\n  return payloadType === HIGHLIGHT_ACTION_TYPE || payloadType === DOWNPLAY_ACTION_TYPE;\n}\nexport function savePathStates(el) {\n  var store = getSavedStates(el);\n  store.normalFill = el.style.fill;\n  store.normalStroke = el.style.stroke;\n  var selectState = el.states.select || {};\n  store.selectFill = selectState.style && selectState.style.fill || null;\n  store.selectStroke = selectState.style && selectState.style.stroke || null;\n}","import PathProxy from '../core/PathProxy';\nimport { applyTransform as v2ApplyTransform } from '../core/vector';\nvar CMD = PathProxy.CMD;\nvar points = [[], [], []];\nvar mathSqrt = Math.sqrt;\nvar mathAtan2 = Math.atan2;\nexport default function transformPath(path, m) {\n    var data = path.data;\n    var len = path.len();\n    var cmd;\n    var nPoint;\n    var i;\n    var j;\n    var k;\n    var p;\n    var M = CMD.M;\n    var C = CMD.C;\n    var L = CMD.L;\n    var R = CMD.R;\n    var A = CMD.A;\n    var Q = CMD.Q;\n    for (i = 0, j = 0; i < len;) {\n        cmd = data[i++];\n        j = i;\n        nPoint = 0;\n        switch (cmd) {\n            case M:\n                nPoint = 1;\n                break;\n            case L:\n                nPoint = 1;\n                break;\n            case C:\n                nPoint = 3;\n                break;\n            case Q:\n                nPoint = 2;\n                break;\n            case A:\n                var x = m[4];\n                var y = m[5];\n                var sx = mathSqrt(m[0] * m[0] + m[1] * m[1]);\n                var sy = mathSqrt(m[2] * m[2] + m[3] * m[3]);\n                var angle = mathAtan2(-m[1] / sy, m[0] / sx);\n                data[i] *= sx;\n                data[i++] += x;\n                data[i] *= sy;\n                data[i++] += y;\n                data[i++] *= sx;\n                data[i++] *= sy;\n                data[i++] += angle;\n                data[i++] += angle;\n                i += 2;\n                j = i;\n                break;\n            case R:\n                p[0] = data[i++];\n                p[1] = data[i++];\n                v2ApplyTransform(p, p, m);\n                data[j++] = p[0];\n                data[j++] = p[1];\n                p[0] += data[i++];\n                p[1] += data[i++];\n                v2ApplyTransform(p, p, m);\n                data[j++] = p[0];\n                data[j++] = p[1];\n        }\n        for (k = 0; k < nPoint; k++) {\n            var p_1 = points[k];\n            p_1[0] = data[i++];\n            p_1[1] = data[i++];\n            v2ApplyTransform(p_1, p_1, m);\n            data[j++] = p_1[0];\n            data[j++] = p_1[1];\n        }\n    }\n    path.increaseVersion();\n}\n","import { __extends } from \"tslib\";\nimport Path from '../graphic/Path';\nimport PathProxy from '../core/PathProxy';\nimport transformPath from './transformPath';\nimport { extend } from '../core/util';\nvar mathSqrt = Math.sqrt;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI = Math.PI;\nfunction vMag(v) {\n    return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\n}\n;\nfunction vRatio(u, v) {\n    return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));\n}\n;\nfunction vAngle(u, v) {\n    return (u[0] * v[1] < u[1] * v[0] ? -1 : 1)\n        * Math.acos(vRatio(u, v));\n}\n;\nfunction processArc(x1, y1, x2, y2, fa, fs, rx, ry, psiDeg, cmd, path) {\n    var psi = psiDeg * (PI / 180.0);\n    var xp = mathCos(psi) * (x1 - x2) / 2.0\n        + mathSin(psi) * (y1 - y2) / 2.0;\n    var yp = -1 * mathSin(psi) * (x1 - x2) / 2.0\n        + mathCos(psi) * (y1 - y2) / 2.0;\n    var lambda = (xp * xp) / (rx * rx) + (yp * yp) / (ry * ry);\n    if (lambda > 1) {\n        rx *= mathSqrt(lambda);\n        ry *= mathSqrt(lambda);\n    }\n    var f = (fa === fs ? -1 : 1)\n        * mathSqrt((((rx * rx) * (ry * ry))\n            - ((rx * rx) * (yp * yp))\n            - ((ry * ry) * (xp * xp))) / ((rx * rx) * (yp * yp)\n            + (ry * ry) * (xp * xp))) || 0;\n    var cxp = f * rx * yp / ry;\n    var cyp = f * -ry * xp / rx;\n    var cx = (x1 + x2) / 2.0\n        + mathCos(psi) * cxp\n        - mathSin(psi) * cyp;\n    var cy = (y1 + y2) / 2.0\n        + mathSin(psi) * cxp\n        + mathCos(psi) * cyp;\n    var theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]);\n    var u = [(xp - cxp) / rx, (yp - cyp) / ry];\n    var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry];\n    var dTheta = vAngle(u, v);\n    if (vRatio(u, v) <= -1) {\n        dTheta = PI;\n    }\n    if (vRatio(u, v) >= 1) {\n        dTheta = 0;\n    }\n    if (dTheta < 0) {\n        var n = Math.round(dTheta / PI * 1e6) / 1e6;\n        dTheta = PI * 2 + (n % 2) * PI;\n    }\n    path.addData(cmd, cx, cy, rx, ry, theta, dTheta, psi, fs);\n}\nvar commandReg = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig;\nvar numberReg = /-?([0-9]*\\.)?[0-9]+([eE]-?[0-9]+)?/g;\nfunction createPathProxyFromString(data) {\n    var path = new PathProxy();\n    if (!data) {\n        return path;\n    }\n    var cpx = 0;\n    var cpy = 0;\n    var subpathX = cpx;\n    var subpathY = cpy;\n    var prevCmd;\n    var CMD = PathProxy.CMD;\n    var cmdList = data.match(commandReg);\n    if (!cmdList) {\n        return path;\n    }\n    for (var l = 0; l < cmdList.length; l++) {\n        var cmdText = cmdList[l];\n        var cmdStr = cmdText.charAt(0);\n        var cmd = void 0;\n        var p = cmdText.match(numberReg) || [];\n        var pLen = p.length;\n        for (var i = 0; i < pLen; i++) {\n            p[i] = parseFloat(p[i]);\n        }\n        var off = 0;\n        while (off < pLen) {\n            var ctlPtx = void 0;\n            var ctlPty = void 0;\n            var rx = void 0;\n            var ry = void 0;\n            var psi = void 0;\n            var fa = void 0;\n            var fs = void 0;\n            var x1 = cpx;\n            var y1 = cpy;\n            var len = void 0;\n            var pathData = void 0;\n            switch (cmdStr) {\n                case 'l':\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'L':\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'm':\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.M;\n                    path.addData(cmd, cpx, cpy);\n                    subpathX = cpx;\n                    subpathY = cpy;\n                    cmdStr = 'l';\n                    break;\n                case 'M':\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.M;\n                    path.addData(cmd, cpx, cpy);\n                    subpathX = cpx;\n                    subpathY = cpy;\n                    cmdStr = 'L';\n                    break;\n                case 'h':\n                    cpx += p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'H':\n                    cpx = p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'v':\n                    cpy += p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'V':\n                    cpy = p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'C':\n                    cmd = CMD.C;\n                    path.addData(cmd, p[off++], p[off++], p[off++], p[off++], p[off++], p[off++]);\n                    cpx = p[off - 2];\n                    cpy = p[off - 1];\n                    break;\n                case 'c':\n                    cmd = CMD.C;\n                    path.addData(cmd, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy);\n                    cpx += p[off - 2];\n                    cpy += p[off - 1];\n                    break;\n                case 'S':\n                    ctlPtx = cpx;\n                    ctlPty = cpy;\n                    len = path.len();\n                    pathData = path.data;\n                    if (prevCmd === CMD.C) {\n                        ctlPtx += cpx - pathData[len - 4];\n                        ctlPty += cpy - pathData[len - 3];\n                    }\n                    cmd = CMD.C;\n                    x1 = p[off++];\n                    y1 = p[off++];\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\n                    break;\n                case 's':\n                    ctlPtx = cpx;\n                    ctlPty = cpy;\n                    len = path.len();\n                    pathData = path.data;\n                    if (prevCmd === CMD.C) {\n                        ctlPtx += cpx - pathData[len - 4];\n                        ctlPty += cpy - pathData[len - 3];\n                    }\n                    cmd = CMD.C;\n                    x1 = cpx + p[off++];\n                    y1 = cpy + p[off++];\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\n                    break;\n                case 'Q':\n                    x1 = p[off++];\n                    y1 = p[off++];\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.Q;\n                    path.addData(cmd, x1, y1, cpx, cpy);\n                    break;\n                case 'q':\n                    x1 = p[off++] + cpx;\n                    y1 = p[off++] + cpy;\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.Q;\n                    path.addData(cmd, x1, y1, cpx, cpy);\n                    break;\n                case 'T':\n                    ctlPtx = cpx;\n                    ctlPty = cpy;\n                    len = path.len();\n                    pathData = path.data;\n                    if (prevCmd === CMD.Q) {\n                        ctlPtx += cpx - pathData[len - 4];\n                        ctlPty += cpy - pathData[len - 3];\n                    }\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.Q;\n                    path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n                    break;\n                case 't':\n                    ctlPtx = cpx;\n                    ctlPty = cpy;\n                    len = path.len();\n                    pathData = path.data;\n                    if (prevCmd === CMD.Q) {\n                        ctlPtx += cpx - pathData[len - 4];\n                        ctlPty += cpy - pathData[len - 3];\n                    }\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.Q;\n                    path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n                    break;\n                case 'A':\n                    rx = p[off++];\n                    ry = p[off++];\n                    psi = p[off++];\n                    fa = p[off++];\n                    fs = p[off++];\n                    x1 = cpx, y1 = cpy;\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.A;\n                    processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\n                    break;\n                case 'a':\n                    rx = p[off++];\n                    ry = p[off++];\n                    psi = p[off++];\n                    fa = p[off++];\n                    fs = p[off++];\n                    x1 = cpx, y1 = cpy;\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.A;\n                    processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\n                    break;\n            }\n        }\n        if (cmdStr === 'z' || cmdStr === 'Z') {\n            cmd = CMD.Z;\n            path.addData(cmd);\n            cpx = subpathX;\n            cpy = subpathY;\n        }\n        prevCmd = cmd;\n    }\n    path.toStatic();\n    return path;\n}\nvar SVGPath = (function (_super) {\n    __extends(SVGPath, _super);\n    function SVGPath() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    SVGPath.prototype.applyTransform = function (m) { };\n    return SVGPath;\n}(Path));\nfunction isPathProxy(path) {\n    return path.setData != null;\n}\nfunction createPathOptions(str, opts) {\n    var pathProxy = createPathProxyFromString(str);\n    var innerOpts = extend({}, opts);\n    innerOpts.buildPath = function (path) {\n        if (isPathProxy(path)) {\n            path.setData(pathProxy.data);\n            var ctx = path.getContext();\n            if (ctx) {\n                path.rebuildPath(ctx, 1);\n            }\n        }\n        else {\n            var ctx = path;\n            pathProxy.rebuildPath(ctx, 1);\n        }\n    };\n    innerOpts.applyTransform = function (m) {\n        transformPath(pathProxy, m);\n        this.dirtyShape();\n    };\n    return innerOpts;\n}\nexport function createFromString(str, opts) {\n    return new SVGPath(createPathOptions(str, opts));\n}\nexport function extendFromString(str, defaultOpts) {\n    var innerOpts = createPathOptions(str, defaultOpts);\n    var Sub = (function (_super) {\n        __extends(Sub, _super);\n        function Sub(opts) {\n            var _this = _super.call(this, opts) || this;\n            _this.applyTransform = innerOpts.applyTransform;\n            _this.buildPath = innerOpts.buildPath;\n            return _this;\n        }\n        return Sub;\n    }(SVGPath));\n    return Sub;\n}\nexport function mergePath(pathEls, opts) {\n    var pathList = [];\n    var len = pathEls.length;\n    for (var i = 0; i < len; i++) {\n        var pathEl = pathEls[i];\n        if (!pathEl.path) {\n            pathEl.createPathProxy();\n        }\n        if (pathEl.shapeChanged()) {\n            pathEl.buildPath(pathEl.path, pathEl.shape, true);\n        }\n        pathList.push(pathEl.path);\n    }\n    var pathBundle = new Path(opts);\n    pathBundle.createPathProxy();\n    pathBundle.buildPath = function (path) {\n        if (isPathProxy(path)) {\n            path.appendPath(pathList);\n            var ctx = path.getContext();\n            if (ctx) {\n                path.rebuildPath(ctx, 1);\n            }\n        }\n    };\n    return pathBundle;\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar CircleShape = (function () {\n    function CircleShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.r = 0;\n    }\n    return CircleShape;\n}());\nvar Circle = (function (_super) {\n    __extends(Circle, _super);\n    function Circle(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Circle.prototype.getDefaultShape = function () {\n        return new CircleShape();\n    };\n    Circle.prototype.buildPath = function (ctx, shape, inBundle) {\n        if (inBundle) {\n            ctx.moveTo(shape.cx + shape.r, shape.cy);\n        }\n        ctx.arc(shape.cx, shape.cy, shape.r, 0, Math.PI * 2);\n    };\n    return Circle;\n}(Path));\n;\nCircle.prototype.type = 'circle';\nexport default Circle;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar EllipseShape = (function () {\n    function EllipseShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.rx = 0;\n        this.ry = 0;\n    }\n    return EllipseShape;\n}());\nvar Ellipse = (function (_super) {\n    __extends(Ellipse, _super);\n    function Ellipse(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Ellipse.prototype.getDefaultShape = function () {\n        return new EllipseShape();\n    };\n    Ellipse.prototype.buildPath = function (ctx, shape) {\n        var k = 0.5522848;\n        var x = shape.cx;\n        var y = shape.cy;\n        var a = shape.rx;\n        var b = shape.ry;\n        var ox = a * k;\n        var oy = b * k;\n        ctx.moveTo(x - a, y);\n        ctx.bezierCurveTo(x - a, y - oy, x - ox, y - b, x, y - b);\n        ctx.bezierCurveTo(x + ox, y - b, x + a, y - oy, x + a, y);\n        ctx.bezierCurveTo(x + a, y + oy, x + ox, y + b, x, y + b);\n        ctx.bezierCurveTo(x - ox, y + b, x - a, y + oy, x - a, y);\n        ctx.closePath();\n    };\n    return Ellipse;\n}(Path));\nEllipse.prototype.type = 'ellipse';\nexport default Ellipse;\n","import { normalizeArcAngles } from '../../core/PathProxy';\nvar PI = Math.PI;\nvar PI2 = PI * 2;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar mathACos = Math.acos;\nvar mathATan2 = Math.atan2;\nvar mathAbs = Math.abs;\nvar mathSqrt = Math.sqrt;\nvar mathMax = Math.max;\nvar mathMin = Math.min;\nvar e = 1e-4;\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n    var x10 = x1 - x0;\n    var y10 = y1 - y0;\n    var x32 = x3 - x2;\n    var y32 = y3 - y2;\n    var t = y32 * x10 - x32 * y10;\n    if (t * t < e) {\n        return;\n    }\n    t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n    return [x0 + t * x10, y0 + t * y10];\n}\nfunction computeCornerTangents(x0, y0, x1, y1, radius, cr, clockwise) {\n    var x01 = x0 - x1;\n    var y01 = y0 - y1;\n    var lo = (clockwise ? cr : -cr) / mathSqrt(x01 * x01 + y01 * y01);\n    var ox = lo * y01;\n    var oy = -lo * x01;\n    var x11 = x0 + ox;\n    var y11 = y0 + oy;\n    var x10 = x1 + ox;\n    var y10 = y1 + oy;\n    var x00 = (x11 + x10) / 2;\n    var y00 = (y11 + y10) / 2;\n    var dx = x10 - x11;\n    var dy = y10 - y11;\n    var d2 = dx * dx + dy * dy;\n    var r = radius - cr;\n    var s = x11 * y10 - x10 * y11;\n    var d = (dy < 0 ? -1 : 1) * mathSqrt(mathMax(0, r * r * d2 - s * s));\n    var cx0 = (s * dy - dx * d) / d2;\n    var cy0 = (-s * dx - dy * d) / d2;\n    var cx1 = (s * dy + dx * d) / d2;\n    var cy1 = (-s * dx + dy * d) / d2;\n    var dx0 = cx0 - x00;\n    var dy0 = cy0 - y00;\n    var dx1 = cx1 - x00;\n    var dy1 = cy1 - y00;\n    if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) {\n        cx0 = cx1;\n        cy0 = cy1;\n    }\n    return {\n        cx: cx0,\n        cy: cy0,\n        x01: -ox,\n        y01: -oy,\n        x11: cx0 * (radius / r - 1),\n        y11: cy0 * (radius / r - 1)\n    };\n}\nexport function buildPath(ctx, shape) {\n    var radius = mathMax(shape.r, 0);\n    var innerRadius = mathMax(shape.r0 || 0, 0);\n    var hasRadius = radius > 0;\n    var hasInnerRadius = innerRadius > 0;\n    if (!hasRadius && !hasInnerRadius) {\n        return;\n    }\n    if (!hasRadius) {\n        radius = innerRadius;\n        innerRadius = 0;\n    }\n    if (innerRadius > radius) {\n        var tmp = radius;\n        radius = innerRadius;\n        innerRadius = tmp;\n    }\n    var clockwise = !!shape.clockwise;\n    var startAngle = shape.startAngle;\n    var endAngle = shape.endAngle;\n    var tmpAngles = [startAngle, endAngle];\n    normalizeArcAngles(tmpAngles, !clockwise);\n    var arc = mathAbs(tmpAngles[0] - tmpAngles[1]);\n    var x = shape.cx;\n    var y = shape.cy;\n    var cornerRadius = shape.cornerRadius || 0;\n    var innerCornerRadius = shape.innerCornerRadius || 0;\n    if (!(radius > e)) {\n        ctx.moveTo(x, y);\n    }\n    else if (arc > PI2 - e) {\n        ctx.moveTo(x + radius * mathCos(startAngle), y + radius * mathSin(startAngle));\n        ctx.arc(x, y, radius, startAngle, endAngle, !clockwise);\n        if (innerRadius > e) {\n            ctx.moveTo(x + innerRadius * mathCos(endAngle), y + innerRadius * mathSin(endAngle));\n            ctx.arc(x, y, innerRadius, endAngle, startAngle, clockwise);\n        }\n    }\n    else {\n        var halfRd = mathAbs(radius - innerRadius) / 2;\n        var cr = mathMin(halfRd, cornerRadius);\n        var icr = mathMin(halfRd, innerCornerRadius);\n        var cr0 = icr;\n        var cr1 = cr;\n        var xrs = radius * mathCos(startAngle);\n        var yrs = radius * mathSin(startAngle);\n        var xire = innerRadius * mathCos(endAngle);\n        var yire = innerRadius * mathSin(endAngle);\n        var xre = void 0;\n        var yre = void 0;\n        var xirs = void 0;\n        var yirs = void 0;\n        if (cr > e || icr > e) {\n            xre = radius * mathCos(endAngle);\n            yre = radius * mathSin(endAngle);\n            xirs = innerRadius * mathCos(startAngle);\n            yirs = innerRadius * mathSin(startAngle);\n            if (arc < PI) {\n                var it_1 = intersect(xrs, yrs, xirs, yirs, xre, yre, xire, yire);\n                if (it_1) {\n                    var x0 = xrs - it_1[0];\n                    var y0 = yrs - it_1[1];\n                    var x1 = xre - it_1[0];\n                    var y1 = yre - it_1[1];\n                    var a = 1 / mathSin(mathACos((x0 * x1 + y0 * y1) / (mathSqrt(x0 * x0 + y0 * y0) * mathSqrt(x1 * x1 + y1 * y1))) / 2);\n                    var b = mathSqrt(it_1[0] * it_1[0] + it_1[1] * it_1[1]);\n                    cr0 = mathMin(icr, (innerRadius - b) / (a - 1));\n                    cr1 = mathMin(cr, (radius - b) / (a + 1));\n                }\n            }\n        }\n        if (!(arc > e)) {\n            ctx.moveTo(x + xrs, y + yrs);\n        }\n        else if (cr1 > e) {\n            var ct0 = computeCornerTangents(xirs, yirs, xrs, yrs, radius, cr1, clockwise);\n            var ct1 = computeCornerTangents(xre, yre, xire, yire, radius, cr1, clockwise);\n            ctx.moveTo(x + ct0.cx + ct0.x01, y + ct0.cy + ct0.y01);\n            if (cr1 < cr) {\n                ctx.arc(x + ct0.cx, y + ct0.cy, cr1, mathATan2(ct0.y01, ct0.x01), mathATan2(ct1.y01, ct1.x01), !clockwise);\n            }\n            else {\n                ctx.arc(x + ct0.cx, y + ct0.cy, cr1, mathATan2(ct0.y01, ct0.x01), mathATan2(ct0.y11, ct0.x11), !clockwise);\n                ctx.arc(x, y, radius, mathATan2(ct0.cy + ct0.y11, ct0.cx + ct0.x11), mathATan2(ct1.cy + ct1.y11, ct1.cx + ct1.x11), !clockwise);\n                ctx.arc(x + ct1.cx, y + ct1.cy, cr1, mathATan2(ct1.y11, ct1.x11), mathATan2(ct1.y01, ct1.x01), !clockwise);\n            }\n        }\n        else {\n            ctx.moveTo(x + xrs, y + yrs);\n            ctx.arc(x, y, radius, startAngle, endAngle, !clockwise);\n        }\n        if (!(innerRadius > e) || !(arc > e)) {\n            ctx.lineTo(x + xire, y + yire);\n        }\n        else if (cr0 > e) {\n            var ct0 = computeCornerTangents(xire, yire, xre, yre, innerRadius, -cr0, clockwise);\n            var ct1 = computeCornerTangents(xrs, yrs, xirs, yirs, innerRadius, -cr0, clockwise);\n            ctx.lineTo(x + ct0.cx + ct0.x01, y + ct0.cy + ct0.y01);\n            if (cr0 < icr) {\n                ctx.arc(x + ct0.cx, y + ct0.cy, cr0, mathATan2(ct0.y01, ct0.x01), mathATan2(ct1.y01, ct1.x01), !clockwise);\n            }\n            else {\n                ctx.arc(x + ct0.cx, y + ct0.cy, cr0, mathATan2(ct0.y01, ct0.x01), mathATan2(ct0.y11, ct0.x11), !clockwise);\n                ctx.arc(x, y, innerRadius, mathATan2(ct0.cy + ct0.y11, ct0.cx + ct0.x11), mathATan2(ct1.cy + ct1.y11, ct1.cx + ct1.x11), clockwise);\n                ctx.arc(x + ct1.cx, y + ct1.cy, cr0, mathATan2(ct1.y11, ct1.x11), mathATan2(ct1.y01, ct1.x01), !clockwise);\n            }\n        }\n        else {\n            ctx.lineTo(x + xire, y + yire);\n            ctx.arc(x, y, innerRadius, endAngle, startAngle, clockwise);\n        }\n    }\n    ctx.closePath();\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as roundSectorHelper from '../helper/roundSector';\nvar SectorShape = (function () {\n    function SectorShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.r0 = 0;\n        this.r = 0;\n        this.startAngle = 0;\n        this.endAngle = Math.PI * 2;\n        this.clockwise = true;\n        this.cornerRadius = 0;\n        this.innerCornerRadius = 0;\n    }\n    return SectorShape;\n}());\nvar Sector = (function (_super) {\n    __extends(Sector, _super);\n    function Sector(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Sector.prototype.getDefaultShape = function () {\n        return new SectorShape();\n    };\n    Sector.prototype.buildPath = function (ctx, shape) {\n        roundSectorHelper.buildPath(ctx, shape);\n    };\n    Sector.prototype.isZeroArea = function () {\n        return this.shape.startAngle === this.shape.endAngle\n            || this.shape.r === this.shape.r0;\n    };\n    return Sector;\n}(Path));\nSector.prototype.type = 'sector';\nexport default Sector;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar RingShape = (function () {\n    function RingShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.r = 0;\n        this.r0 = 0;\n    }\n    return RingShape;\n}());\nvar Ring = (function (_super) {\n    __extends(Ring, _super);\n    function Ring(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Ring.prototype.getDefaultShape = function () {\n        return new RingShape();\n    };\n    Ring.prototype.buildPath = function (ctx, shape) {\n        var x = shape.cx;\n        var y = shape.cy;\n        var PI2 = Math.PI * 2;\n        ctx.moveTo(x + shape.r, y);\n        ctx.arc(x, y, shape.r, 0, PI2, false);\n        ctx.moveTo(x + shape.r0, y);\n        ctx.arc(x, y, shape.r0, 0, PI2, true);\n    };\n    return Ring;\n}(Path));\nRing.prototype.type = 'ring';\nexport default Ring;\n","import { distance as v2Distance } from '../../core/vector';\nfunction interpolate(p0, p1, p2, p3, t, t2, t3) {\n    var v0 = (p2 - p0) * 0.5;\n    var v1 = (p3 - p1) * 0.5;\n    return (2 * (p1 - p2) + v0 + v1) * t3\n        + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\n        + v0 * t + p1;\n}\nexport default function smoothSpline(points, isLoop) {\n    var len = points.length;\n    var ret = [];\n    var distance = 0;\n    for (var i = 1; i < len; i++) {\n        distance += v2Distance(points[i - 1], points[i]);\n    }\n    var segs = distance / 2;\n    segs = segs < len ? len : segs;\n    for (var i = 0; i < segs; i++) {\n        var pos = i / (segs - 1) * (isLoop ? len : len - 1);\n        var idx = Math.floor(pos);\n        var w = pos - idx;\n        var p0 = void 0;\n        var p1 = points[idx % len];\n        var p2 = void 0;\n        var p3 = void 0;\n        if (!isLoop) {\n            p0 = points[idx === 0 ? idx : idx - 1];\n            p2 = points[idx > len - 2 ? len - 1 : idx + 1];\n            p3 = points[idx > len - 3 ? len - 1 : idx + 2];\n        }\n        else {\n            p0 = points[(idx - 1 + len) % len];\n            p2 = points[(idx + 1) % len];\n            p3 = points[(idx + 2) % len];\n        }\n        var w2 = w * w;\n        var w3 = w * w2;\n        ret.push([\n            interpolate(p0[0], p1[0], p2[0], p3[0], w, w2, w3),\n            interpolate(p0[1], p1[1], p2[1], p3[1], w, w2, w3)\n        ]);\n    }\n    return ret;\n}\n","import { min as v2Min, max as v2Max, scale as v2Scale, distance as v2Distance, add as v2Add, clone as v2Clone, sub as v2Sub } from '../../core/vector';\nexport default function smoothBezier(points, smooth, isLoop, constraint) {\n    var cps = [];\n    var v = [];\n    var v1 = [];\n    var v2 = [];\n    var prevPoint;\n    var nextPoint;\n    var min;\n    var max;\n    if (constraint) {\n        min = [Infinity, Infinity];\n        max = [-Infinity, -Infinity];\n        for (var i = 0, len = points.length; i < len; i++) {\n            v2Min(min, min, points[i]);\n            v2Max(max, max, points[i]);\n        }\n        v2Min(min, min, constraint[0]);\n        v2Max(max, max, constraint[1]);\n    }\n    for (var i = 0, len = points.length; i < len; i++) {\n        var point = points[i];\n        if (isLoop) {\n            prevPoint = points[i ? i - 1 : len - 1];\n            nextPoint = points[(i + 1) % len];\n        }\n        else {\n            if (i === 0 || i === len - 1) {\n                cps.push(v2Clone(points[i]));\n                continue;\n            }\n            else {\n                prevPoint = points[i - 1];\n                nextPoint = points[i + 1];\n            }\n        }\n        v2Sub(v, nextPoint, prevPoint);\n        v2Scale(v, v, smooth);\n        var d0 = v2Distance(point, prevPoint);\n        var d1 = v2Distance(point, nextPoint);\n        var sum = d0 + d1;\n        if (sum !== 0) {\n            d0 /= sum;\n            d1 /= sum;\n        }\n        v2Scale(v1, v, -d0);\n        v2Scale(v2, v, d1);\n        var cp0 = v2Add([], point, v1);\n        var cp1 = v2Add([], point, v2);\n        if (constraint) {\n            v2Max(cp0, cp0, min);\n            v2Min(cp0, cp0, max);\n            v2Max(cp1, cp1, min);\n            v2Min(cp1, cp1, max);\n        }\n        cps.push(cp0);\n        cps.push(cp1);\n    }\n    if (isLoop) {\n        cps.push(cps.shift());\n    }\n    return cps;\n}\n","import smoothSpline from './smoothSpline';\nimport smoothBezier from './smoothBezier';\nexport function buildPath(ctx, shape, closePath) {\n    var smooth = shape.smooth;\n    var points = shape.points;\n    if (points && points.length >= 2) {\n        if (smooth && smooth !== 'spline') {\n            var controlPoints = smoothBezier(points, smooth, closePath, shape.smoothConstraint);\n            ctx.moveTo(points[0][0], points[0][1]);\n            var len = points.length;\n            for (var i = 0; i < (closePath ? len : len - 1); i++) {\n                var cp1 = controlPoints[i * 2];\n                var cp2 = controlPoints[i * 2 + 1];\n                var p = points[(i + 1) % len];\n                ctx.bezierCurveTo(cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]);\n            }\n        }\n        else {\n            if (smooth === 'spline') {\n                points = smoothSpline(points, closePath);\n            }\n            ctx.moveTo(points[0][0], points[0][1]);\n            for (var i = 1, l = points.length; i < l; i++) {\n                ctx.lineTo(points[i][0], points[i][1]);\n            }\n        }\n        closePath && ctx.closePath();\n    }\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as polyHelper from '../helper/poly';\nvar PolygonShape = (function () {\n    function PolygonShape() {\n        this.points = null;\n        this.smooth = 0;\n        this.smoothConstraint = null;\n    }\n    return PolygonShape;\n}());\nvar Polygon = (function (_super) {\n    __extends(Polygon, _super);\n    function Polygon(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Polygon.prototype.getDefaultShape = function () {\n        return new PolygonShape();\n    };\n    Polygon.prototype.buildPath = function (ctx, shape) {\n        polyHelper.buildPath(ctx, shape, true);\n    };\n    return Polygon;\n}(Path));\n;\nPolygon.prototype.type = 'polygon';\nexport default Polygon;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as polyHelper from '../helper/poly';\nvar PolylineShape = (function () {\n    function PolylineShape() {\n        this.points = null;\n        this.percent = 1;\n        this.smooth = 0;\n        this.smoothConstraint = null;\n    }\n    return PolylineShape;\n}());\nvar Polyline = (function (_super) {\n    __extends(Polyline, _super);\n    function Polyline(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Polyline.prototype.getDefaultStyle = function () {\n        return {\n            stroke: '#000',\n            fill: null\n        };\n    };\n    Polyline.prototype.getDefaultShape = function () {\n        return new PolylineShape();\n    };\n    Polyline.prototype.buildPath = function (ctx, shape) {\n        polyHelper.buildPath(ctx, shape, false);\n    };\n    return Polyline;\n}(Path));\nPolyline.prototype.type = 'polyline';\nexport default Polyline;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport { subPixelOptimizeLine } from '../helper/subPixelOptimize';\nvar subPixelOptimizeOutputShape = {};\nvar LineShape = (function () {\n    function LineShape() {\n        this.x1 = 0;\n        this.y1 = 0;\n        this.x2 = 0;\n        this.y2 = 0;\n        this.percent = 1;\n    }\n    return LineShape;\n}());\nvar Line = (function (_super) {\n    __extends(Line, _super);\n    function Line(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Line.prototype.getDefaultStyle = function () {\n        return {\n            stroke: '#000',\n            fill: null\n        };\n    };\n    Line.prototype.getDefaultShape = function () {\n        return new LineShape();\n    };\n    Line.prototype.buildPath = function (ctx, shape) {\n        var x1;\n        var y1;\n        var x2;\n        var y2;\n        if (this.subPixelOptimize) {\n            var optimizedShape = subPixelOptimizeLine(subPixelOptimizeOutputShape, shape, this.style);\n            x1 = optimizedShape.x1;\n            y1 = optimizedShape.y1;\n            x2 = optimizedShape.x2;\n            y2 = optimizedShape.y2;\n        }\n        else {\n            x1 = shape.x1;\n            y1 = shape.y1;\n            x2 = shape.x2;\n            y2 = shape.y2;\n        }\n        var percent = shape.percent;\n        if (percent === 0) {\n            return;\n        }\n        ctx.moveTo(x1, y1);\n        if (percent < 1) {\n            x2 = x1 * (1 - percent) + x2 * percent;\n            y2 = y1 * (1 - percent) + y2 * percent;\n        }\n        ctx.lineTo(x2, y2);\n    };\n    Line.prototype.pointAt = function (p) {\n        var shape = this.shape;\n        return [\n            shape.x1 * (1 - p) + shape.x2 * p,\n            shape.y1 * (1 - p) + shape.y2 * p\n        ];\n    };\n    return Line;\n}(Path));\nLine.prototype.type = 'line';\nexport default Line;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as vec2 from '../../core/vector';\nimport { quadraticSubdivide, cubicSubdivide, quadraticAt, cubicAt, quadraticDerivativeAt, cubicDerivativeAt } from '../../core/curve';\nvar out = [];\nvar BezierCurveShape = (function () {\n    function BezierCurveShape() {\n        this.x1 = 0;\n        this.y1 = 0;\n        this.x2 = 0;\n        this.y2 = 0;\n        this.cpx1 = 0;\n        this.cpy1 = 0;\n        this.percent = 1;\n    }\n    return BezierCurveShape;\n}());\nfunction someVectorAt(shape, t, isTangent) {\n    var cpx2 = shape.cpx2;\n    var cpy2 = shape.cpy2;\n    if (cpx2 === null || cpy2 === null) {\n        return [\n            (isTangent ? cubicDerivativeAt : cubicAt)(shape.x1, shape.cpx1, shape.cpx2, shape.x2, t),\n            (isTangent ? cubicDerivativeAt : cubicAt)(shape.y1, shape.cpy1, shape.cpy2, shape.y2, t)\n        ];\n    }\n    else {\n        return [\n            (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.x1, shape.cpx1, shape.x2, t),\n            (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.y1, shape.cpy1, shape.y2, t)\n        ];\n    }\n}\nvar BezierCurve = (function (_super) {\n    __extends(BezierCurve, _super);\n    function BezierCurve(opts) {\n        return _super.call(this, opts) || this;\n    }\n    BezierCurve.prototype.getDefaultStyle = function () {\n        return {\n            stroke: '#000',\n            fill: null\n        };\n    };\n    BezierCurve.prototype.getDefaultShape = function () {\n        return new BezierCurveShape();\n    };\n    BezierCurve.prototype.buildPath = function (ctx, shape) {\n        var x1 = shape.x1;\n        var y1 = shape.y1;\n        var x2 = shape.x2;\n        var y2 = shape.y2;\n        var cpx1 = shape.cpx1;\n        var cpy1 = shape.cpy1;\n        var cpx2 = shape.cpx2;\n        var cpy2 = shape.cpy2;\n        var percent = shape.percent;\n        if (percent === 0) {\n            return;\n        }\n        ctx.moveTo(x1, y1);\n        if (cpx2 == null || cpy2 == null) {\n            if (percent < 1) {\n                quadraticSubdivide(x1, cpx1, x2, percent, out);\n                cpx1 = out[1];\n                x2 = out[2];\n                quadraticSubdivide(y1, cpy1, y2, percent, out);\n                cpy1 = out[1];\n                y2 = out[2];\n            }\n            ctx.quadraticCurveTo(cpx1, cpy1, x2, y2);\n        }\n        else {\n            if (percent < 1) {\n                cubicSubdivide(x1, cpx1, cpx2, x2, percent, out);\n                cpx1 = out[1];\n                cpx2 = out[2];\n                x2 = out[3];\n                cubicSubdivide(y1, cpy1, cpy2, y2, percent, out);\n                cpy1 = out[1];\n                cpy2 = out[2];\n                y2 = out[3];\n            }\n            ctx.bezierCurveTo(cpx1, cpy1, cpx2, cpy2, x2, y2);\n        }\n    };\n    BezierCurve.prototype.pointAt = function (t) {\n        return someVectorAt(this.shape, t, false);\n    };\n    BezierCurve.prototype.tangentAt = function (t) {\n        var p = someVectorAt(this.shape, t, true);\n        return vec2.normalize(p, p);\n    };\n    return BezierCurve;\n}(Path));\n;\nBezierCurve.prototype.type = 'bezier-curve';\nexport default BezierCurve;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar ArcShape = (function () {\n    function ArcShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.r = 0;\n        this.startAngle = 0;\n        this.endAngle = Math.PI * 2;\n        this.clockwise = true;\n    }\n    return ArcShape;\n}());\nvar Arc = (function (_super) {\n    __extends(Arc, _super);\n    function Arc(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Arc.prototype.getDefaultStyle = function () {\n        return {\n            stroke: '#000',\n            fill: null\n        };\n    };\n    Arc.prototype.getDefaultShape = function () {\n        return new ArcShape();\n    };\n    Arc.prototype.buildPath = function (ctx, shape) {\n        var x = shape.cx;\n        var y = shape.cy;\n        var r = Math.max(shape.r, 0);\n        var startAngle = shape.startAngle;\n        var endAngle = shape.endAngle;\n        var clockwise = shape.clockwise;\n        var unitX = Math.cos(startAngle);\n        var unitY = Math.sin(startAngle);\n        ctx.moveTo(unitX * r + x, unitY * r + y);\n        ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\n    };\n    return Arc;\n}(Path));\nArc.prototype.type = 'arc';\nexport default Arc;\n","import { __extends } from \"tslib\";\nimport Path from './Path';\nvar CompoundPath = (function (_super) {\n    __extends(CompoundPath, _super);\n    function CompoundPath() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.type = 'compound';\n        return _this;\n    }\n    CompoundPath.prototype._updatePathDirty = function () {\n        var paths = this.shape.paths;\n        var dirtyPath = this.shapeChanged();\n        for (var i = 0; i < paths.length; i++) {\n            dirtyPath = dirtyPath || paths[i].shapeChanged();\n        }\n        if (dirtyPath) {\n            this.dirtyShape();\n        }\n    };\n    CompoundPath.prototype.beforeBrush = function () {\n        this._updatePathDirty();\n        var paths = this.shape.paths || [];\n        var scale = this.getGlobalScale();\n        for (var i = 0; i < paths.length; i++) {\n            if (!paths[i].path) {\n                paths[i].createPathProxy();\n            }\n            paths[i].path.setScale(scale[0], scale[1], paths[i].segmentIgnoreThreshold);\n        }\n    };\n    CompoundPath.prototype.buildPath = function (ctx, shape) {\n        var paths = shape.paths || [];\n        for (var i = 0; i < paths.length; i++) {\n            paths[i].buildPath(ctx, paths[i].shape, true);\n        }\n    };\n    CompoundPath.prototype.afterBrush = function () {\n        var paths = this.shape.paths || [];\n        for (var i = 0; i < paths.length; i++) {\n            paths[i].pathUpdated();\n        }\n    };\n    CompoundPath.prototype.getBoundingRect = function () {\n        this._updatePathDirty.call(this);\n        return Path.prototype.getBoundingRect.call(this);\n    };\n    return CompoundPath;\n}(Path));\nexport default CompoundPath;\n","var Gradient = (function () {\n    function Gradient(colorStops) {\n        this.colorStops = colorStops || [];\n    }\n    Gradient.prototype.addColorStop = function (offset, color) {\n        this.colorStops.push({\n            offset: offset,\n            color: color\n        });\n    };\n    return Gradient;\n}());\nexport default Gradient;\n","import { __extends } from \"tslib\";\nimport Gradient from './Gradient';\nvar LinearGradient = (function (_super) {\n    __extends(LinearGradient, _super);\n    function LinearGradient(x, y, x2, y2, colorStops, globalCoord) {\n        var _this = _super.call(this, colorStops) || this;\n        _this.x = x == null ? 0 : x;\n        _this.y = y == null ? 0 : y;\n        _this.x2 = x2 == null ? 1 : x2;\n        _this.y2 = y2 == null ? 0 : y2;\n        _this.type = 'linear';\n        _this.global = globalCoord || false;\n        return _this;\n    }\n    return LinearGradient;\n}(Gradient));\nexport default LinearGradient;\n;\n","import { __extends } from \"tslib\";\nimport Gradient from './Gradient';\nvar RadialGradient = (function (_super) {\n    __extends(RadialGradient, _super);\n    function RadialGradient(x, y, r, colorStops, globalCoord) {\n        var _this = _super.call(this, colorStops) || this;\n        _this.x = x == null ? 0.5 : x;\n        _this.y = y == null ? 0.5 : y;\n        _this.r = r == null ? 0.5 : r;\n        _this.type = 'radial';\n        _this.global = globalCoord || false;\n        return _this;\n    }\n    return RadialGradient;\n}(Gradient));\nexport default RadialGradient;\n","import Point from './Point';\nvar extent = [0, 0];\nvar extent2 = [0, 0];\nvar minTv = new Point();\nvar maxTv = new Point();\nvar OrientedBoundingRect = (function () {\n    function OrientedBoundingRect(rect, transform) {\n        this._corners = [];\n        this._axes = [];\n        this._origin = [0, 0];\n        for (var i = 0; i < 4; i++) {\n            this._corners[i] = new Point();\n        }\n        for (var i = 0; i < 2; i++) {\n            this._axes[i] = new Point();\n        }\n        if (rect) {\n            this.fromBoundingRect(rect, transform);\n        }\n    }\n    OrientedBoundingRect.prototype.fromBoundingRect = function (rect, transform) {\n        var corners = this._corners;\n        var axes = this._axes;\n        var x = rect.x;\n        var y = rect.y;\n        var x2 = x + rect.width;\n        var y2 = y + rect.height;\n        corners[0].set(x, y);\n        corners[1].set(x2, y);\n        corners[2].set(x2, y2);\n        corners[3].set(x, y2);\n        if (transform) {\n            for (var i = 0; i < 4; i++) {\n                corners[i].transform(transform);\n            }\n        }\n        Point.sub(axes[0], corners[1], corners[0]);\n        Point.sub(axes[1], corners[3], corners[0]);\n        axes[0].normalize();\n        axes[1].normalize();\n        for (var i = 0; i < 2; i++) {\n            this._origin[i] = axes[i].dot(corners[0]);\n        }\n    };\n    OrientedBoundingRect.prototype.intersect = function (other, mtv) {\n        var overlapped = true;\n        var noMtv = !mtv;\n        minTv.set(Infinity, Infinity);\n        maxTv.set(0, 0);\n        if (!this._intersectCheckOneSide(this, other, minTv, maxTv, noMtv, 1)) {\n            overlapped = false;\n            if (noMtv) {\n                return overlapped;\n            }\n        }\n        if (!this._intersectCheckOneSide(other, this, minTv, maxTv, noMtv, -1)) {\n            overlapped = false;\n            if (noMtv) {\n                return overlapped;\n            }\n        }\n        if (!noMtv) {\n            Point.copy(mtv, overlapped ? minTv : maxTv);\n        }\n        return overlapped;\n    };\n    OrientedBoundingRect.prototype._intersectCheckOneSide = function (self, other, minTv, maxTv, noMtv, inverse) {\n        var overlapped = true;\n        for (var i = 0; i < 2; i++) {\n            var axis = this._axes[i];\n            this._getProjMinMaxOnAxis(i, self._corners, extent);\n            this._getProjMinMaxOnAxis(i, other._corners, extent2);\n            if (extent[1] < extent2[0] || extent[0] > extent2[1]) {\n                overlapped = false;\n                if (noMtv) {\n                    return overlapped;\n                }\n                var dist0 = Math.abs(extent2[0] - extent[1]);\n                var dist1 = Math.abs(extent[0] - extent2[1]);\n                if (Math.min(dist0, dist1) > maxTv.len()) {\n                    if (dist0 < dist1) {\n                        Point.scale(maxTv, axis, -dist0 * inverse);\n                    }\n                    else {\n                        Point.scale(maxTv, axis, dist1 * inverse);\n                    }\n                }\n            }\n            else if (minTv) {\n                var dist0 = Math.abs(extent2[0] - extent[1]);\n                var dist1 = Math.abs(extent[0] - extent2[1]);\n                if (Math.min(dist0, dist1) < minTv.len()) {\n                    if (dist0 < dist1) {\n                        Point.scale(minTv, axis, dist0 * inverse);\n                    }\n                    else {\n                        Point.scale(minTv, axis, -dist1 * inverse);\n                    }\n                }\n            }\n        }\n        return overlapped;\n    };\n    OrientedBoundingRect.prototype._getProjMinMaxOnAxis = function (dim, corners, out) {\n        var axis = this._axes[dim];\n        var origin = this._origin;\n        var proj = corners[0].dot(axis) + origin[dim];\n        var min = proj;\n        var max = proj;\n        for (var i = 1; i < corners.length; i++) {\n            var proj_1 = corners[i].dot(axis) + origin[dim];\n            min = Math.min(proj_1, min);\n            max = Math.max(proj_1, max);\n        }\n        out[0] = min;\n        out[1] = max;\n    };\n    return OrientedBoundingRect;\n}());\nexport default OrientedBoundingRect;\n","import { __extends } from \"tslib\";\nimport Displayble from './Displayable';\nimport BoundingRect from '../core/BoundingRect';\nvar m = [];\nvar IncrementalDisplayable = (function (_super) {\n    __extends(IncrementalDisplayable, _super);\n    function IncrementalDisplayable() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.notClear = true;\n        _this.incremental = true;\n        _this._displayables = [];\n        _this._temporaryDisplayables = [];\n        _this._cursor = 0;\n        return _this;\n    }\n    IncrementalDisplayable.prototype.traverse = function (cb, context) {\n        cb.call(context, this);\n    };\n    IncrementalDisplayable.prototype.useStyle = function () {\n        this.style = {};\n    };\n    IncrementalDisplayable.prototype.getCursor = function () {\n        return this._cursor;\n    };\n    IncrementalDisplayable.prototype.innerAfterBrush = function () {\n        this._cursor = this._displayables.length;\n    };\n    IncrementalDisplayable.prototype.clearDisplaybles = function () {\n        this._displayables = [];\n        this._temporaryDisplayables = [];\n        this._cursor = 0;\n        this.markRedraw();\n        this.notClear = false;\n    };\n    IncrementalDisplayable.prototype.clearTemporalDisplayables = function () {\n        this._temporaryDisplayables = [];\n    };\n    IncrementalDisplayable.prototype.addDisplayable = function (displayable, notPersistent) {\n        if (notPersistent) {\n            this._temporaryDisplayables.push(displayable);\n        }\n        else {\n            this._displayables.push(displayable);\n        }\n        this.markRedraw();\n    };\n    IncrementalDisplayable.prototype.addDisplayables = function (displayables, notPersistent) {\n        notPersistent = notPersistent || false;\n        for (var i = 0; i < displayables.length; i++) {\n            this.addDisplayable(displayables[i], notPersistent);\n        }\n    };\n    IncrementalDisplayable.prototype.getDisplayables = function () {\n        return this._displayables;\n    };\n    IncrementalDisplayable.prototype.getTemporalDisplayables = function () {\n        return this._temporaryDisplayables;\n    };\n    IncrementalDisplayable.prototype.eachPendingDisplayable = function (cb) {\n        for (var i = this._cursor; i < this._displayables.length; i++) {\n            cb && cb(this._displayables[i]);\n        }\n        for (var i = 0; i < this._temporaryDisplayables.length; i++) {\n            cb && cb(this._temporaryDisplayables[i]);\n        }\n    };\n    IncrementalDisplayable.prototype.update = function () {\n        this.updateTransform();\n        for (var i = this._cursor; i < this._displayables.length; i++) {\n            var displayable = this._displayables[i];\n            displayable.parent = this;\n            displayable.update();\n            displayable.parent = null;\n        }\n        for (var i = 0; i < this._temporaryDisplayables.length; i++) {\n            var displayable = this._temporaryDisplayables[i];\n            displayable.parent = this;\n            displayable.update();\n            displayable.parent = null;\n        }\n    };\n    IncrementalDisplayable.prototype.getBoundingRect = function () {\n        if (!this._rect) {\n            var rect = new BoundingRect(Infinity, Infinity, -Infinity, -Infinity);\n            for (var i = 0; i < this._displayables.length; i++) {\n                var displayable = this._displayables[i];\n                var childRect = displayable.getBoundingRect().clone();\n                if (displayable.needLocalTransform()) {\n                    childRect.applyTransform(displayable.getLocalTransform(m));\n                }\n                rect.union(childRect);\n            }\n            this._rect = rect;\n        }\n        return this._rect;\n    };\n    IncrementalDisplayable.prototype.contain = function (x, y) {\n        var localPos = this.transformCoordToLocal(x, y);\n        var rect = this.getBoundingRect();\n        if (rect.contain(localPos[0], localPos[1])) {\n            for (var i = 0; i < this._displayables.length; i++) {\n                var displayable = this._displayables[i];\n                if (displayable.contain(x, y)) {\n                    return true;\n                }\n            }\n        }\n        return false;\n    };\n    return IncrementalDisplayable;\n}(Displayble));\nexport default IncrementalDisplayable;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as pathTool from 'zrender/lib/tool/path';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport * as vector from 'zrender/lib/core/vector';\nimport Path from 'zrender/lib/graphic/Path';\nimport Transformable from 'zrender/lib/core/Transformable';\nimport ZRImage from 'zrender/lib/graphic/Image';\nimport Group from 'zrender/lib/graphic/Group';\nimport ZRText from 'zrender/lib/graphic/Text';\nimport Circle from 'zrender/lib/graphic/shape/Circle';\nimport Ellipse from 'zrender/lib/graphic/shape/Ellipse';\nimport Sector from 'zrender/lib/graphic/shape/Sector';\nimport Ring from 'zrender/lib/graphic/shape/Ring';\nimport Polygon from 'zrender/lib/graphic/shape/Polygon';\nimport Polyline from 'zrender/lib/graphic/shape/Polyline';\nimport Rect from 'zrender/lib/graphic/shape/Rect';\nimport Line from 'zrender/lib/graphic/shape/Line';\nimport BezierCurve from 'zrender/lib/graphic/shape/BezierCurve';\nimport Arc from 'zrender/lib/graphic/shape/Arc';\nimport CompoundPath from 'zrender/lib/graphic/CompoundPath';\nimport LinearGradient from 'zrender/lib/graphic/LinearGradient';\nimport RadialGradient from 'zrender/lib/graphic/RadialGradient';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport OrientedBoundingRect from 'zrender/lib/core/OrientedBoundingRect';\nimport Point from 'zrender/lib/core/Point';\nimport IncrementalDisplayable from 'zrender/lib/graphic/IncrementalDisplayable';\nimport * as subPixelOptimizeUtil from 'zrender/lib/graphic/helper/subPixelOptimize';\nimport { extend, isArrayLike, map, defaults, isObject, retrieve2 } from 'zrender/lib/core/util';\nimport { getECData } from './innerStore';\nvar mathMax = Math.max;\nvar mathMin = Math.min;\nvar _customShapeMap = {};\nexport function extendShape(opts) {\n  return Path.extend(opts);\n}\nvar extendPathFromString = pathTool.extendFromString;\nexport function extendPath(pathData, opts) {\n  return extendPathFromString(pathData, opts);\n}\nexport function registerShape(name, ShapeClass) {\n  _customShapeMap[name] = ShapeClass;\n}\nexport function getShapeClass(name) {\n  if (_customShapeMap.hasOwnProperty(name)) {\n    return _customShapeMap[name];\n  }\n}\nexport function makePath(pathData, opts, rect, layout) {\n  var path = pathTool.createFromString(pathData, opts);\n\n  if (rect) {\n    if (layout === 'center') {\n      rect = centerGraphic(rect, path.getBoundingRect());\n    }\n\n    resizePath(path, rect);\n  }\n\n  return path;\n}\nexport function makeImage(imageUrl, rect, layout) {\n  var zrImg = new ZRImage({\n    style: {\n      image: imageUrl,\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height\n    },\n    onload: function (img) {\n      if (layout === 'center') {\n        var boundingRect = {\n          width: img.width,\n          height: img.height\n        };\n        zrImg.setStyle(centerGraphic(rect, boundingRect));\n      }\n    }\n  });\n  return zrImg;\n}\n\nfunction centerGraphic(rect, boundingRect) {\n  var aspect = boundingRect.width / boundingRect.height;\n  var width = rect.height * aspect;\n  var height;\n\n  if (width <= rect.width) {\n    height = rect.height;\n  } else {\n    width = rect.width;\n    height = width / aspect;\n  }\n\n  var cx = rect.x + rect.width / 2;\n  var cy = rect.y + rect.height / 2;\n  return {\n    x: cx - width / 2,\n    y: cy - height / 2,\n    width: width,\n    height: height\n  };\n}\n\nexport var mergePath = pathTool.mergePath;\nexport function resizePath(path, rect) {\n  if (!path.applyTransform) {\n    return;\n  }\n\n  var pathRect = path.getBoundingRect();\n  var m = pathRect.calculateTransform(rect);\n  path.applyTransform(m);\n}\nexport function subPixelOptimizeLine(param) {\n  subPixelOptimizeUtil.subPixelOptimizeLine(param.shape, param.shape, param.style);\n  return param;\n}\nexport function subPixelOptimizeRect(param) {\n  subPixelOptimizeUtil.subPixelOptimizeRect(param.shape, param.shape, param.style);\n  return param;\n}\nexport var subPixelOptimize = subPixelOptimizeUtil.subPixelOptimize;\n\nfunction animateOrSetProps(animationType, el, props, animatableModel, dataIndex, cb, during) {\n  var isFrom = false;\n  var removeOpt;\n\n  if (typeof dataIndex === 'function') {\n    during = cb;\n    cb = dataIndex;\n    dataIndex = null;\n  } else if (isObject(dataIndex)) {\n    cb = dataIndex.cb;\n    during = dataIndex.during;\n    isFrom = dataIndex.isFrom;\n    removeOpt = dataIndex.removeOpt;\n    dataIndex = dataIndex.dataIndex;\n  }\n\n  var isUpdate = animationType === 'update';\n  var isRemove = animationType === 'remove';\n  var animationPayload;\n\n  if (animatableModel && animatableModel.ecModel) {\n    var updatePayload = animatableModel.ecModel.getUpdatePayload();\n    animationPayload = updatePayload && updatePayload.animation;\n  }\n\n  var animationEnabled = animatableModel && animatableModel.isAnimationEnabled();\n\n  if (!isRemove) {\n    el.stopAnimation('remove');\n  }\n\n  if (animationEnabled) {\n    var duration = void 0;\n    var animationEasing = void 0;\n    var animationDelay = void 0;\n\n    if (animationPayload) {\n      duration = animationPayload.duration || 0;\n      animationEasing = animationPayload.easing || 'cubicOut';\n      animationDelay = animationPayload.delay || 0;\n    } else if (isRemove) {\n      removeOpt = removeOpt || {};\n      duration = retrieve2(removeOpt.duration, 200);\n      animationEasing = retrieve2(removeOpt.easing, 'cubicOut');\n      animationDelay = 0;\n    } else {\n      duration = animatableModel.getShallow(isUpdate ? 'animationDurationUpdate' : 'animationDuration');\n      animationEasing = animatableModel.getShallow(isUpdate ? 'animationEasingUpdate' : 'animationEasing');\n      animationDelay = animatableModel.getShallow(isUpdate ? 'animationDelayUpdate' : 'animationDelay');\n    }\n\n    if (typeof animationDelay === 'function') {\n      animationDelay = animationDelay(dataIndex, animatableModel.getAnimationDelayParams ? animatableModel.getAnimationDelayParams(el, dataIndex) : null);\n    }\n\n    if (typeof duration === 'function') {\n      duration = duration(dataIndex);\n    }\n\n    duration > 0 ? isFrom ? el.animateFrom(props, {\n      duration: duration,\n      delay: animationDelay || 0,\n      easing: animationEasing,\n      done: cb,\n      force: !!cb || !!during,\n      scope: animationType,\n      during: during\n    }) : el.animateTo(props, {\n      duration: duration,\n      delay: animationDelay || 0,\n      easing: animationEasing,\n      done: cb,\n      force: !!cb || !!during,\n      setToFinal: true,\n      scope: animationType,\n      during: during\n    }) : (el.stopAnimation(), !isFrom && el.attr(props), cb && cb());\n  } else {\n    el.stopAnimation();\n    !isFrom && el.attr(props);\n    during && during(1);\n    cb && cb();\n  }\n}\n\nfunction updateProps(el, props, animatableModel, dataIndex, cb, during) {\n  animateOrSetProps('update', el, props, animatableModel, dataIndex, cb, during);\n}\n\nexport { updateProps };\nexport function initProps(el, props, animatableModel, dataIndex, cb, during) {\n  animateOrSetProps('init', el, props, animatableModel, dataIndex, cb, during);\n}\nexport function removeElement(el, props, animatableModel, dataIndex, cb, during) {\n  if (isElementRemoved(el)) {\n    return;\n  }\n\n  animateOrSetProps('remove', el, props, animatableModel, dataIndex, cb, during);\n}\n\nfunction fadeOutDisplayable(el, animatableModel, dataIndex, done) {\n  el.removeTextContent();\n  el.removeTextGuideLine();\n  removeElement(el, {\n    style: {\n      opacity: 0\n    }\n  }, animatableModel, dataIndex, done);\n}\n\nexport function removeElementWithFadeOut(el, animatableModel, dataIndex) {\n  function doRemove() {\n    el.parent && el.parent.remove(el);\n  }\n\n  if (!el.isGroup) {\n    fadeOutDisplayable(el, animatableModel, dataIndex, doRemove);\n  } else {\n    el.traverse(function (disp) {\n      if (!disp.isGroup) {\n        fadeOutDisplayable(disp, animatableModel, dataIndex, doRemove);\n      }\n    });\n  }\n}\nexport function isElementRemoved(el) {\n  if (!el.__zr) {\n    return true;\n  }\n\n  for (var i = 0; i < el.animators.length; i++) {\n    var animator = el.animators[i];\n\n    if (animator.scope === 'remove') {\n      return true;\n    }\n  }\n\n  return false;\n}\nexport function getTransform(target, ancestor) {\n  var mat = matrix.identity([]);\n\n  while (target && target !== ancestor) {\n    matrix.mul(mat, target.getLocalTransform(), mat);\n    target = target.parent;\n  }\n\n  return mat;\n}\nexport function applyTransform(target, transform, invert) {\n  if (transform && !isArrayLike(transform)) {\n    transform = Transformable.getLocalTransform(transform);\n  }\n\n  if (invert) {\n    transform = matrix.invert([], transform);\n  }\n\n  return vector.applyTransform([], target, transform);\n}\nexport function transformDirection(direction, transform, invert) {\n  var hBase = transform[4] === 0 || transform[5] === 0 || transform[0] === 0 ? 1 : Math.abs(2 * transform[4] / transform[0]);\n  var vBase = transform[4] === 0 || transform[5] === 0 || transform[2] === 0 ? 1 : Math.abs(2 * transform[4] / transform[2]);\n  var vertex = [direction === 'left' ? -hBase : direction === 'right' ? hBase : 0, direction === 'top' ? -vBase : direction === 'bottom' ? vBase : 0];\n  vertex = applyTransform(vertex, transform, invert);\n  return Math.abs(vertex[0]) > Math.abs(vertex[1]) ? vertex[0] > 0 ? 'right' : 'left' : vertex[1] > 0 ? 'bottom' : 'top';\n}\n\nfunction isNotGroup(el) {\n  return !el.isGroup;\n}\n\nfunction isPath(el) {\n  return el.shape != null;\n}\n\nexport function groupTransition(g1, g2, animatableModel) {\n  if (!g1 || !g2) {\n    return;\n  }\n\n  function getElMap(g) {\n    var elMap = {};\n    g.traverse(function (el) {\n      if (isNotGroup(el) && el.anid) {\n        elMap[el.anid] = el;\n      }\n    });\n    return elMap;\n  }\n\n  function getAnimatableProps(el) {\n    var obj = {\n      x: el.x,\n      y: el.y,\n      rotation: el.rotation\n    };\n\n    if (isPath(el)) {\n      obj.shape = extend({}, el.shape);\n    }\n\n    return obj;\n  }\n\n  var elMap1 = getElMap(g1);\n  g2.traverse(function (el) {\n    if (isNotGroup(el) && el.anid) {\n      var oldEl = elMap1[el.anid];\n\n      if (oldEl) {\n        var newProp = getAnimatableProps(el);\n        el.attr(getAnimatableProps(oldEl));\n        updateProps(el, newProp, animatableModel, getECData(el).dataIndex);\n      }\n    }\n  });\n}\nexport function clipPointsByRect(points, rect) {\n  return map(points, function (point) {\n    var x = point[0];\n    x = mathMax(x, rect.x);\n    x = mathMin(x, rect.x + rect.width);\n    var y = point[1];\n    y = mathMax(y, rect.y);\n    y = mathMin(y, rect.y + rect.height);\n    return [x, y];\n  });\n}\nexport function clipRectByRect(targetRect, rect) {\n  var x = mathMax(targetRect.x, rect.x);\n  var x2 = mathMin(targetRect.x + targetRect.width, rect.x + rect.width);\n  var y = mathMax(targetRect.y, rect.y);\n  var y2 = mathMin(targetRect.y + targetRect.height, rect.y + rect.height);\n\n  if (x2 >= x && y2 >= y) {\n    return {\n      x: x,\n      y: y,\n      width: x2 - x,\n      height: y2 - y\n    };\n  }\n}\nexport function createIcon(iconStr, opt, rect) {\n  var innerOpts = extend({\n    rectHover: true\n  }, opt);\n  var style = innerOpts.style = {\n    strokeNoScale: true\n  };\n  rect = rect || {\n    x: -1,\n    y: -1,\n    width: 2,\n    height: 2\n  };\n\n  if (iconStr) {\n    return iconStr.indexOf('image://') === 0 ? (style.image = iconStr.slice(8), defaults(style, rect), new ZRImage(innerOpts)) : makePath(iconStr.replace('path://', ''), innerOpts, rect, 'center');\n  }\n}\nexport function linePolygonIntersect(a1x, a1y, a2x, a2y, points) {\n  for (var i = 0, p2 = points[points.length - 1]; i < points.length; i++) {\n    var p = points[i];\n\n    if (lineLineIntersect(a1x, a1y, a2x, a2y, p[0], p[1], p2[0], p2[1])) {\n      return true;\n    }\n\n    p2 = p;\n  }\n}\nexport function lineLineIntersect(a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y) {\n  var mx = a2x - a1x;\n  var my = a2y - a1y;\n  var nx = b2x - b1x;\n  var ny = b2y - b1y;\n  var nmCrossProduct = crossProduct2d(nx, ny, mx, my);\n\n  if (nearZero(nmCrossProduct)) {\n    return false;\n  }\n\n  var b1a1x = a1x - b1x;\n  var b1a1y = a1y - b1y;\n  var q = crossProduct2d(b1a1x, b1a1y, mx, my) / nmCrossProduct;\n\n  if (q < 0 || q > 1) {\n    return false;\n  }\n\n  var p = crossProduct2d(b1a1x, b1a1y, nx, ny) / nmCrossProduct;\n\n  if (p < 0 || p > 1) {\n    return false;\n  }\n\n  return true;\n}\n\nfunction crossProduct2d(x1, y1, x2, y2) {\n  return x1 * y2 - x2 * y1;\n}\n\nfunction nearZero(val) {\n  return val <= 1e-6 && val >= -1e-6;\n}\n\nregisterShape('circle', Circle);\nregisterShape('ellipse', Ellipse);\nregisterShape('sector', Sector);\nregisterShape('ring', Ring);\nregisterShape('polygon', Polygon);\nregisterShape('polyline', Polyline);\nregisterShape('rect', Rect);\nregisterShape('line', Line);\nregisterShape('bezierCurve', BezierCurve);\nregisterShape('arc', Arc);\nexport { Group, ZRImage as Image, ZRText as Text, Circle, Ellipse, Sector, Ring, Polygon, Polyline, Rect, Line, BezierCurve, Arc, IncrementalDisplayable, CompoundPath, LinearGradient, RadialGradient, BoundingRect, OrientedBoundingRect, Point, Path };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ZRText from 'zrender/lib/graphic/Text';\nimport { isFunction, retrieve2, extend, keys, trim } from 'zrender/lib/core/util';\nimport { SPECIAL_STATES, DISPLAY_STATES } from '../util/states';\nimport { deprecateReplaceLog } from '../util/log';\nimport { makeInner, interpolateRawValues } from '../util/model';\nimport { initProps, updateProps } from '../util/graphic';\nvar EMPTY_OBJ = {};\nexport function setLabelText(label, labelTexts) {\n  for (var i = 0; i < SPECIAL_STATES.length; i++) {\n    var stateName = SPECIAL_STATES[i];\n    var text = labelTexts[stateName];\n    var state = label.ensureState(stateName);\n    state.style = state.style || {};\n    state.style.text = text;\n  }\n\n  var oldStates = label.currentStates.slice();\n  label.clearStates(true);\n  label.setStyle({\n    text: labelTexts.normal\n  });\n  label.useStates(oldStates, true);\n}\n\nfunction getLabelText(opt, stateModels, interpolatedValue) {\n  var labelFetcher = opt.labelFetcher;\n  var labelDataIndex = opt.labelDataIndex;\n  var labelDimIndex = opt.labelDimIndex;\n  var normalModel = stateModels.normal;\n  var baseText;\n\n  if (labelFetcher) {\n    baseText = labelFetcher.getFormattedLabel(labelDataIndex, 'normal', null, labelDimIndex, normalModel && normalModel.get('formatter'), interpolatedValue != null ? {\n      interpolatedValue: interpolatedValue\n    } : null);\n  }\n\n  if (baseText == null) {\n    baseText = isFunction(opt.defaultText) ? opt.defaultText(labelDataIndex, opt, interpolatedValue) : opt.defaultText;\n  }\n\n  var statesText = {\n    normal: baseText\n  };\n\n  for (var i = 0; i < SPECIAL_STATES.length; i++) {\n    var stateName = SPECIAL_STATES[i];\n    var stateModel = stateModels[stateName];\n    statesText[stateName] = retrieve2(labelFetcher ? labelFetcher.getFormattedLabel(labelDataIndex, stateName, null, labelDimIndex, stateModel && stateModel.get('formatter')) : null, baseText);\n  }\n\n  return statesText;\n}\n\nfunction setLabelStyle(targetEl, labelStatesModels, opt, stateSpecified) {\n  opt = opt || EMPTY_OBJ;\n  var isSetOnText = targetEl instanceof ZRText;\n  var needsCreateText = false;\n\n  for (var i = 0; i < DISPLAY_STATES.length; i++) {\n    var stateModel = labelStatesModels[DISPLAY_STATES[i]];\n\n    if (stateModel && stateModel.getShallow('show')) {\n      needsCreateText = true;\n      break;\n    }\n  }\n\n  var textContent = isSetOnText ? targetEl : targetEl.getTextContent();\n\n  if (needsCreateText) {\n    if (!isSetOnText) {\n      if (!textContent) {\n        textContent = new ZRText();\n        targetEl.setTextContent(textContent);\n      }\n\n      if (targetEl.stateProxy) {\n        textContent.stateProxy = targetEl.stateProxy;\n      }\n    }\n\n    var labelStatesTexts = getLabelText(opt, labelStatesModels);\n    var normalModel = labelStatesModels.normal;\n    var showNormal = !!normalModel.getShallow('show');\n    var normalStyle = createTextStyle(normalModel, stateSpecified && stateSpecified.normal, opt, false, !isSetOnText);\n    normalStyle.text = labelStatesTexts.normal;\n\n    if (!isSetOnText) {\n      targetEl.setTextConfig(createTextConfig(normalModel, opt, false));\n    }\n\n    for (var i = 0; i < SPECIAL_STATES.length; i++) {\n      var stateName = SPECIAL_STATES[i];\n      var stateModel = labelStatesModels[stateName];\n\n      if (stateModel) {\n        var stateObj = textContent.ensureState(stateName);\n        var stateShow = !!retrieve2(stateModel.getShallow('show'), showNormal);\n\n        if (stateShow !== showNormal) {\n          stateObj.ignore = !stateShow;\n        }\n\n        stateObj.style = createTextStyle(stateModel, stateSpecified && stateSpecified[stateName], opt, true, !isSetOnText);\n        stateObj.style.text = labelStatesTexts[stateName];\n\n        if (!isSetOnText) {\n          var targetElEmphasisState = targetEl.ensureState(stateName);\n          targetElEmphasisState.textConfig = createTextConfig(stateModel, opt, true);\n        }\n      }\n    }\n\n    textContent.silent = !!normalModel.getShallow('silent');\n\n    if (textContent.style.x != null) {\n      normalStyle.x = textContent.style.x;\n    }\n\n    if (textContent.style.y != null) {\n      normalStyle.y = textContent.style.y;\n    }\n\n    textContent.ignore = !showNormal;\n    textContent.useStyle(normalStyle);\n    textContent.dirty();\n\n    if (opt.enableTextSetter) {\n      labelInner(textContent).setLabelText = function (interpolatedValue) {\n        var labelStatesTexts = getLabelText(opt, labelStatesModels, interpolatedValue);\n        setLabelText(textContent, labelStatesTexts);\n      };\n    }\n  } else if (textContent) {\n    textContent.ignore = true;\n  }\n\n  targetEl.dirty();\n}\n\nexport { setLabelStyle };\nexport function getLabelStatesModels(itemModel, labelName) {\n  labelName = labelName || 'label';\n  var statesModels = {\n    normal: itemModel.getModel(labelName)\n  };\n\n  for (var i = 0; i < SPECIAL_STATES.length; i++) {\n    var stateName = SPECIAL_STATES[i];\n    statesModels[stateName] = itemModel.getModel([stateName, labelName]);\n  }\n\n  return statesModels;\n}\nexport function createTextStyle(textStyleModel, specifiedTextStyle, opt, isNotNormal, isAttached) {\n  var textStyle = {};\n  setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached);\n  specifiedTextStyle && extend(textStyle, specifiedTextStyle);\n  return textStyle;\n}\nexport function createTextConfig(textStyleModel, opt, isNotNormal) {\n  opt = opt || {};\n  var textConfig = {};\n  var labelPosition;\n  var labelRotate = textStyleModel.getShallow('rotate');\n  var labelDistance = retrieve2(textStyleModel.getShallow('distance'), isNotNormal ? null : 5);\n  var labelOffset = textStyleModel.getShallow('offset');\n  labelPosition = textStyleModel.getShallow('position') || (isNotNormal ? null : 'inside');\n  labelPosition === 'outside' && (labelPosition = opt.defaultOutsidePosition || 'top');\n\n  if (labelPosition != null) {\n    textConfig.position = labelPosition;\n  }\n\n  if (labelOffset != null) {\n    textConfig.offset = labelOffset;\n  }\n\n  if (labelRotate != null) {\n    labelRotate *= Math.PI / 180;\n    textConfig.rotation = labelRotate;\n  }\n\n  if (labelDistance != null) {\n    textConfig.distance = labelDistance;\n  }\n\n  textConfig.outsideFill = textStyleModel.get('color') === 'inherit' ? opt.inheritColor || null : 'auto';\n  return textConfig;\n}\n\nfunction setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached) {\n  opt = opt || EMPTY_OBJ;\n  var ecModel = textStyleModel.ecModel;\n  var globalTextStyle = ecModel && ecModel.option.textStyle;\n  var richItemNames = getRichItemNames(textStyleModel);\n  var richResult;\n\n  if (richItemNames) {\n    richResult = {};\n\n    for (var name_1 in richItemNames) {\n      if (richItemNames.hasOwnProperty(name_1)) {\n        var richTextStyle = textStyleModel.getModel(['rich', name_1]);\n        setTokenTextStyle(richResult[name_1] = {}, richTextStyle, globalTextStyle, opt, isNotNormal, isAttached, false, true);\n      }\n    }\n  }\n\n  if (richResult) {\n    textStyle.rich = richResult;\n  }\n\n  var overflow = textStyleModel.get('overflow');\n\n  if (overflow) {\n    textStyle.overflow = overflow;\n  }\n\n  var margin = textStyleModel.get('minMargin');\n\n  if (margin != null) {\n    textStyle.margin = margin;\n  }\n\n  setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, true, false);\n}\n\nfunction getRichItemNames(textStyleModel) {\n  var richItemNameMap;\n\n  while (textStyleModel && textStyleModel !== textStyleModel.ecModel) {\n    var rich = (textStyleModel.option || EMPTY_OBJ).rich;\n\n    if (rich) {\n      richItemNameMap = richItemNameMap || {};\n      var richKeys = keys(rich);\n\n      for (var i = 0; i < richKeys.length; i++) {\n        var richKey = richKeys[i];\n        richItemNameMap[richKey] = 1;\n      }\n    }\n\n    textStyleModel = textStyleModel.parentModel;\n  }\n\n  return richItemNameMap;\n}\n\nvar TEXT_PROPS_WITH_GLOBAL = ['fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY'];\nvar TEXT_PROPS_SELF = ['align', 'lineHeight', 'width', 'height', 'tag', 'verticalAlign'];\nvar TEXT_PROPS_BOX = ['padding', 'borderWidth', 'borderRadius', 'borderDashOffset', 'backgroundColor', 'borderColor', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'];\n\nfunction setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, isBlock, inRich) {\n  globalTextStyle = !isNotNormal && globalTextStyle || EMPTY_OBJ;\n  var inheritColor = opt && opt.inheritColor;\n  var fillColor = textStyleModel.getShallow('color');\n  var strokeColor = textStyleModel.getShallow('textBorderColor');\n  var opacity = retrieve2(textStyleModel.getShallow('opacity'), globalTextStyle.opacity);\n\n  if (fillColor === 'inherit' || fillColor === 'auto') {\n    if (process.env.NODE_ENV !== 'production') {\n      if (fillColor === 'auto') {\n        deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\n      }\n    }\n\n    if (inheritColor) {\n      fillColor = inheritColor;\n    } else {\n      fillColor = null;\n    }\n  }\n\n  if (strokeColor === 'inherit' || strokeColor === 'auto') {\n    if (process.env.NODE_ENV !== 'production') {\n      if (strokeColor === 'auto') {\n        deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\n      }\n    }\n\n    if (inheritColor) {\n      strokeColor = inheritColor;\n    } else {\n      strokeColor = null;\n    }\n  }\n\n  if (!isAttached) {\n    fillColor = fillColor || globalTextStyle.color;\n    strokeColor = strokeColor || globalTextStyle.textBorderColor;\n  }\n\n  if (fillColor != null) {\n    textStyle.fill = fillColor;\n  }\n\n  if (strokeColor != null) {\n    textStyle.stroke = strokeColor;\n  }\n\n  var textBorderWidth = retrieve2(textStyleModel.getShallow('textBorderWidth'), globalTextStyle.textBorderWidth);\n\n  if (textBorderWidth != null) {\n    textStyle.lineWidth = textBorderWidth;\n  }\n\n  var textBorderType = retrieve2(textStyleModel.getShallow('textBorderType'), globalTextStyle.textBorderType);\n\n  if (textBorderType != null) {\n    textStyle.lineDash = textBorderType;\n  }\n\n  var textBorderDashOffset = retrieve2(textStyleModel.getShallow('textBorderDashOffset'), globalTextStyle.textBorderDashOffset);\n\n  if (textBorderDashOffset != null) {\n    textStyle.lineDashOffset = textBorderDashOffset;\n  }\n\n  if (!isNotNormal && opacity == null && !inRich) {\n    opacity = opt && opt.defaultOpacity;\n  }\n\n  if (opacity != null) {\n    textStyle.opacity = opacity;\n  }\n\n  if (!isNotNormal && !isAttached) {\n    if (textStyle.fill == null && opt.inheritColor) {\n      textStyle.fill = opt.inheritColor;\n    }\n  }\n\n  for (var i = 0; i < TEXT_PROPS_WITH_GLOBAL.length; i++) {\n    var key = TEXT_PROPS_WITH_GLOBAL[i];\n    var val = retrieve2(textStyleModel.getShallow(key), globalTextStyle[key]);\n\n    if (val != null) {\n      textStyle[key] = val;\n    }\n  }\n\n  for (var i = 0; i < TEXT_PROPS_SELF.length; i++) {\n    var key = TEXT_PROPS_SELF[i];\n    var val = textStyleModel.getShallow(key);\n\n    if (val != null) {\n      textStyle[key] = val;\n    }\n  }\n\n  if (textStyle.verticalAlign == null) {\n    var baseline = textStyleModel.getShallow('baseline');\n\n    if (baseline != null) {\n      textStyle.verticalAlign = baseline;\n    }\n  }\n\n  if (!isBlock || !opt.disableBox) {\n    for (var i = 0; i < TEXT_PROPS_BOX.length; i++) {\n      var key = TEXT_PROPS_BOX[i];\n      var val = textStyleModel.getShallow(key);\n\n      if (val != null) {\n        textStyle[key] = val;\n      }\n    }\n\n    var borderType = textStyleModel.getShallow('borderType');\n\n    if (borderType != null) {\n      textStyle.borderDash = borderType;\n    }\n\n    if ((textStyle.backgroundColor === 'auto' || textStyle.backgroundColor === 'inherit') && inheritColor) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (textStyle.backgroundColor === 'auto') {\n          deprecateReplaceLog('backgroundColor: \\'auto\\'', 'backgroundColor: \\'inherit\\'');\n        }\n      }\n\n      textStyle.backgroundColor = inheritColor;\n    }\n\n    if ((textStyle.borderColor === 'auto' || textStyle.borderColor === 'inherit') && inheritColor) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (textStyle.borderColor === 'auto') {\n          deprecateReplaceLog('borderColor: \\'auto\\'', 'borderColor: \\'inherit\\'');\n        }\n      }\n\n      textStyle.borderColor = inheritColor;\n    }\n  }\n}\n\nexport function getFont(opt, ecModel) {\n  var gTextStyleModel = ecModel && ecModel.getModel('textStyle');\n  return trim([opt.fontStyle || gTextStyleModel && gTextStyleModel.getShallow('fontStyle') || '', opt.fontWeight || gTextStyleModel && gTextStyleModel.getShallow('fontWeight') || '', (opt.fontSize || gTextStyleModel && gTextStyleModel.getShallow('fontSize') || 12) + 'px', opt.fontFamily || gTextStyleModel && gTextStyleModel.getShallow('fontFamily') || 'sans-serif'].join(' '));\n}\nexport var labelInner = makeInner();\nexport function setLabelValueAnimation(label, labelStatesModels, value, getDefaultText) {\n  if (!label) {\n    return;\n  }\n\n  var obj = labelInner(label);\n  obj.prevValue = obj.value;\n  obj.value = value;\n  var normalLabelModel = labelStatesModels.normal;\n  obj.valueAnimation = normalLabelModel.get('valueAnimation');\n\n  if (obj.valueAnimation) {\n    obj.precision = normalLabelModel.get('precision');\n    obj.defaultInterpolatedText = getDefaultText;\n    obj.statesModels = labelStatesModels;\n  }\n}\nexport function animateLabelValue(textEl, dataIndex, data, animatableModel, labelFetcher) {\n  var labelInnerStore = labelInner(textEl);\n\n  if (!labelInnerStore.valueAnimation) {\n    return;\n  }\n\n  var defaultInterpolatedText = labelInnerStore.defaultInterpolatedText;\n  var currValue = retrieve2(labelInnerStore.interpolatedValue, labelInnerStore.prevValue);\n  var targetValue = labelInnerStore.value;\n\n  function during(percent) {\n    var interpolated = interpolateRawValues(data, labelInnerStore.precision, currValue, targetValue, percent);\n    labelInnerStore.interpolatedValue = percent === 1 ? null : interpolated;\n    var labelText = getLabelText({\n      labelDataIndex: dataIndex,\n      labelFetcher: labelFetcher,\n      defaultText: defaultInterpolatedText ? defaultInterpolatedText(interpolated) : interpolated + ''\n    }, labelInnerStore.statesModels, interpolated);\n    setLabelText(textEl, labelText);\n  }\n\n  (currValue == null ? initProps : updateProps)(textEl, {}, animatableModel, dataIndex, null, during);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { getFont } from '../../label/labelStyle';\nimport ZRText from 'zrender/lib/graphic/Text';\nvar PATH_COLOR = ['textStyle', 'color'];\nvar tmpRichText = new ZRText();\n\nvar TextStyleMixin = function () {\n  function TextStyleMixin() {}\n\n  TextStyleMixin.prototype.getTextColor = function (isEmphasis) {\n    var ecModel = this.ecModel;\n    return this.getShallow('color') || (!isEmphasis && ecModel ? ecModel.get(PATH_COLOR) : null);\n  };\n\n  TextStyleMixin.prototype.getFont = function () {\n    return getFont({\n      fontStyle: this.getShallow('fontStyle'),\n      fontWeight: this.getShallow('fontWeight'),\n      fontSize: this.getShallow('fontSize'),\n      fontFamily: this.getShallow('fontFamily')\n    }, this.ecModel);\n  };\n\n  TextStyleMixin.prototype.getTextRect = function (text) {\n    tmpRichText.useStyle({\n      text: text,\n      fontStyle: this.getShallow('fontStyle'),\n      fontWeight: this.getShallow('fontWeight'),\n      fontSize: this.getShallow('fontSize'),\n      fontFamily: this.getShallow('fontFamily'),\n      verticalAlign: this.getShallow('verticalAlign') || this.getShallow('baseline'),\n      padding: this.getShallow('padding'),\n      lineHeight: this.getShallow('lineHeight'),\n      rich: this.getShallow('rich')\n    });\n    tmpRichText.update();\n    return tmpRichText.getBoundingRect();\n  };\n\n  return TextStyleMixin;\n}();\n\n;\nexport default TextStyleMixin;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport makeStyleMapper from './makeStyleMapper';\nexport var LINE_STYLE_KEY_MAP = [['lineWidth', 'width'], ['stroke', 'color'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor'], ['lineDash', 'type'], ['lineDashOffset', 'dashOffset'], ['lineCap', 'cap'], ['lineJoin', 'join'], ['miterLimit']];\nvar getLineStyle = makeStyleMapper(LINE_STYLE_KEY_MAP);\n\nvar LineStyleMixin = function () {\n  function LineStyleMixin() {}\n\n  LineStyleMixin.prototype.getLineStyle = function (excludes) {\n    return getLineStyle(this, excludes);\n  };\n\n  return LineStyleMixin;\n}();\n\n;\nexport { LineStyleMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport makeStyleMapper from './makeStyleMapper';\nexport var ITEM_STYLE_KEY_MAP = [['fill', 'color'], ['stroke', 'borderColor'], ['lineWidth', 'borderWidth'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor'], ['lineDash', 'borderType'], ['lineDashOffset', 'borderDashOffset'], ['lineCap', 'borderCap'], ['lineJoin', 'borderJoin'], ['miterLimit', 'borderMiterLimit']];\nvar getItemStyle = makeStyleMapper(ITEM_STYLE_KEY_MAP);\n\nvar ItemStyleMixin = function () {\n  function ItemStyleMixin() {}\n\n  ItemStyleMixin.prototype.getItemStyle = function (excludes, includes) {\n    return getItemStyle(this, excludes, includes);\n  };\n\n  return ItemStyleMixin;\n}();\n\nexport { ItemStyleMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport env from 'zrender/lib/core/env';\nimport { enableClassExtend, enableClassCheck } from '../util/clazz';\nimport { AreaStyleMixin } from './mixin/areaStyle';\nimport TextStyleMixin from './mixin/textStyle';\nimport { LineStyleMixin } from './mixin/lineStyle';\nimport { ItemStyleMixin } from './mixin/itemStyle';\nimport { mixin, clone, merge } from 'zrender/lib/core/util';\n\nvar Model = function () {\n  function Model(option, parentModel, ecModel) {\n    this.parentModel = parentModel;\n    this.ecModel = ecModel;\n    this.option = option;\n  }\n\n  Model.prototype.init = function (option, parentModel, ecModel) {\n    var rest = [];\n\n    for (var _i = 3; _i < arguments.length; _i++) {\n      rest[_i - 3] = arguments[_i];\n    }\n  };\n\n  Model.prototype.mergeOption = function (option, ecModel) {\n    merge(this.option, option, true);\n  };\n\n  Model.prototype.get = function (path, ignoreParent) {\n    if (path == null) {\n      return this.option;\n    }\n\n    return this._doGet(this.parsePath(path), !ignoreParent && this.parentModel);\n  };\n\n  Model.prototype.getShallow = function (key, ignoreParent) {\n    var option = this.option;\n    var val = option == null ? option : option[key];\n\n    if (val == null && !ignoreParent) {\n      var parentModel = this.parentModel;\n\n      if (parentModel) {\n        val = parentModel.getShallow(key);\n      }\n    }\n\n    return val;\n  };\n\n  Model.prototype.getModel = function (path, parentModel) {\n    var hasPath = path != null;\n    var pathFinal = hasPath ? this.parsePath(path) : null;\n    var obj = hasPath ? this._doGet(pathFinal) : this.option;\n    parentModel = parentModel || this.parentModel && this.parentModel.getModel(this.resolveParentPath(pathFinal));\n    return new Model(obj, parentModel, this.ecModel);\n  };\n\n  Model.prototype.isEmpty = function () {\n    return this.option == null;\n  };\n\n  Model.prototype.restoreData = function () {};\n\n  Model.prototype.clone = function () {\n    var Ctor = this.constructor;\n    return new Ctor(clone(this.option));\n  };\n\n  Model.prototype.parsePath = function (path) {\n    if (typeof path === 'string') {\n      return path.split('.');\n    }\n\n    return path;\n  };\n\n  Model.prototype.resolveParentPath = function (path) {\n    return path;\n  };\n\n  Model.prototype.isAnimationEnabled = function () {\n    if (!env.node && this.option) {\n      if (this.option.animation != null) {\n        return !!this.option.animation;\n      } else if (this.parentModel) {\n        return this.parentModel.isAnimationEnabled();\n      }\n    }\n  };\n\n  Model.prototype._doGet = function (pathArr, parentModel) {\n    var obj = this.option;\n\n    if (!pathArr) {\n      return obj;\n    }\n\n    for (var i = 0; i < pathArr.length; i++) {\n      if (!pathArr[i]) {\n        continue;\n      }\n\n      obj = obj && typeof obj === 'object' ? obj[pathArr[i]] : null;\n\n      if (obj == null) {\n        break;\n      }\n    }\n\n    if (obj == null && parentModel) {\n      obj = parentModel._doGet(this.resolveParentPath(pathArr), parentModel.parentModel);\n    }\n\n    return obj;\n  };\n\n  return Model;\n}();\n\n;\nenableClassExtend(Model);\nenableClassCheck(Model);\nmixin(Model, LineStyleMixin);\nmixin(Model, ItemStyleMixin);\nmixin(Model, AreaStyleMixin);\nmixin(Model, TextStyleMixin);\nexport default Model;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parseClassType } from './clazz';\nimport { makePrintable } from './log';\nvar base = Math.round(Math.random() * 10);\nexport function getUID(type) {\n  return [type || '', base++].join('_');\n}\nexport function enableSubTypeDefaulter(target) {\n  var subTypeDefaulters = {};\n\n  target.registerSubTypeDefaulter = function (componentType, defaulter) {\n    var componentTypeInfo = parseClassType(componentType);\n    subTypeDefaulters[componentTypeInfo.main] = defaulter;\n  };\n\n  target.determineSubType = function (componentType, option) {\n    var type = option.type;\n\n    if (!type) {\n      var componentTypeMain = parseClassType(componentType).main;\n\n      if (target.hasSubTypes(componentType) && subTypeDefaulters[componentTypeMain]) {\n        type = subTypeDefaulters[componentTypeMain](option);\n      }\n    }\n\n    return type;\n  };\n}\nexport function enableTopologicalTravel(entity, dependencyGetter) {\n  entity.topologicalTravel = function (targetNameList, fullNameList, callback, context) {\n    if (!targetNameList.length) {\n      return;\n    }\n\n    var result = makeDepndencyGraph(fullNameList);\n    var graph = result.graph;\n    var noEntryList = result.noEntryList;\n    var targetNameSet = {};\n    zrUtil.each(targetNameList, function (name) {\n      targetNameSet[name] = true;\n    });\n\n    while (noEntryList.length) {\n      var currComponentType = noEntryList.pop();\n      var currVertex = graph[currComponentType];\n      var isInTargetNameSet = !!targetNameSet[currComponentType];\n\n      if (isInTargetNameSet) {\n        callback.call(context, currComponentType, currVertex.originalDeps.slice());\n        delete targetNameSet[currComponentType];\n      }\n\n      zrUtil.each(currVertex.successor, isInTargetNameSet ? removeEdgeAndAdd : removeEdge);\n    }\n\n    zrUtil.each(targetNameSet, function () {\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = makePrintable('Circle dependency may exists: ', targetNameSet, targetNameList, fullNameList);\n      }\n\n      throw new Error(errMsg);\n    });\n\n    function removeEdge(succComponentType) {\n      graph[succComponentType].entryCount--;\n\n      if (graph[succComponentType].entryCount === 0) {\n        noEntryList.push(succComponentType);\n      }\n    }\n\n    function removeEdgeAndAdd(succComponentType) {\n      targetNameSet[succComponentType] = true;\n      removeEdge(succComponentType);\n    }\n  };\n\n  function makeDepndencyGraph(fullNameList) {\n    var graph = {};\n    var noEntryList = [];\n    zrUtil.each(fullNameList, function (name) {\n      var thisItem = createDependencyGraphItem(graph, name);\n      var originalDeps = thisItem.originalDeps = dependencyGetter(name);\n      var availableDeps = getAvailableDependencies(originalDeps, fullNameList);\n      thisItem.entryCount = availableDeps.length;\n\n      if (thisItem.entryCount === 0) {\n        noEntryList.push(name);\n      }\n\n      zrUtil.each(availableDeps, function (dependentName) {\n        if (zrUtil.indexOf(thisItem.predecessor, dependentName) < 0) {\n          thisItem.predecessor.push(dependentName);\n        }\n\n        var thatItem = createDependencyGraphItem(graph, dependentName);\n\n        if (zrUtil.indexOf(thatItem.successor, dependentName) < 0) {\n          thatItem.successor.push(name);\n        }\n      });\n    });\n    return {\n      graph: graph,\n      noEntryList: noEntryList\n    };\n  }\n\n  function createDependencyGraphItem(graph, name) {\n    if (!graph[name]) {\n      graph[name] = {\n        predecessor: [],\n        successor: []\n      };\n    }\n\n    return graph[name];\n  }\n\n  function getAvailableDependencies(originalDeps, fullNameList) {\n    var availableDeps = [];\n    zrUtil.each(originalDeps, function (dep) {\n      zrUtil.indexOf(fullNameList, dep) >= 0 && availableDeps.push(dep);\n    });\n    return availableDeps;\n  }\n}\nexport function inheritDefaultOption(superOption, subOption) {\n  return zrUtil.merge(zrUtil.merge({}, superOption, true), subOption, true);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default {\n  time: {\n    month: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n    monthAbbr: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n    dayOfWeek: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n    dayOfWeekAbbr: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\n  },\n  legend: {\n    selector: {\n      all: 'All',\n      inverse: 'Inv'\n    }\n  },\n  toolbox: {\n    brush: {\n      title: {\n        rect: 'Box Select',\n        polygon: 'Lasso Select',\n        lineX: 'Horizontally Select',\n        lineY: 'Vertically Select',\n        keep: 'Keep Selections',\n        clear: 'Clear Selections'\n      }\n    },\n    dataView: {\n      title: 'Data View',\n      lang: ['Data View', 'Close', 'Refresh']\n    },\n    dataZoom: {\n      title: {\n        zoom: 'Zoom',\n        back: 'Zoom Reset'\n      }\n    },\n    magicType: {\n      title: {\n        line: 'Switch to Line Chart',\n        bar: 'Switch to Bar Chart',\n        stack: 'Stack',\n        tiled: 'Tile'\n      }\n    },\n    restore: {\n      title: 'Restore'\n    },\n    saveAsImage: {\n      title: 'Save as Image',\n      lang: ['Right Click to Save Image']\n    }\n  },\n  series: {\n    typeNames: {\n      pie: 'Pie chart',\n      bar: 'Bar chart',\n      line: 'Line chart',\n      scatter: 'Scatter plot',\n      effectScatter: 'Ripple scatter plot',\n      radar: 'Radar chart',\n      tree: 'Tree',\n      treemap: 'Treemap',\n      boxplot: 'Boxplot',\n      candlestick: 'Candlestick',\n      k: 'K line chart',\n      heatmap: 'Heat map',\n      map: 'Map',\n      parallel: 'Parallel coordinate map',\n      lines: 'Line graph',\n      graph: 'Relationship graph',\n      sankey: 'Sankey diagram',\n      funnel: 'Funnel chart',\n      gauge: 'Guage',\n      pictorialBar: 'Pictorial bar',\n      themeRiver: 'Theme River Map',\n      sunburst: 'Sunburst'\n    }\n  },\n  aria: {\n    general: {\n      withTitle: 'This is a chart about \"{title}\"',\n      withoutTitle: 'This is a chart'\n    },\n    series: {\n      single: {\n        prefix: '',\n        withName: ' with type {seriesType} named {seriesName}.',\n        withoutName: ' with type {seriesType}.'\n      },\n      multiple: {\n        prefix: '. It consists of {seriesCount} series count.',\n        withName: ' The {seriesId} series is a {seriesType} representing {seriesName}.',\n        withoutName: ' The {seriesId} series is a {seriesType}.',\n        separator: {\n          middle: '',\n          end: ''\n        }\n      }\n    },\n    data: {\n      allData: 'The data is as follows: ',\n      partialData: 'The first {displayCnt} items are: ',\n      withName: 'the data for {name} is {value}',\n      withoutName: '{value}',\n      separator: {\n        middle: ', ',\n        end: '. '\n      }\n    }\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default {\n  time: {\n    month: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],\n    monthAbbr: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\n    dayOfWeek: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],\n    dayOfWeekAbbr: ['日', '一', '二', '三', '四', '五', '六']\n  },\n  legend: {\n    selector: {\n      all: '全选',\n      inverse: '反选'\n    }\n  },\n  toolbox: {\n    brush: {\n      title: {\n        rect: '矩形选择',\n        polygon: '圈选',\n        lineX: '横向选择',\n        lineY: '纵向选择',\n        keep: '保持选择',\n        clear: '清除选择'\n      }\n    },\n    dataView: {\n      title: '数据视图',\n      lang: ['数据视图', '关闭', '刷新']\n    },\n    dataZoom: {\n      title: {\n        zoom: '区域缩放',\n        back: '区域缩放还原'\n      }\n    },\n    magicType: {\n      title: {\n        line: '切换为折线图',\n        bar: '切换为柱状图',\n        stack: '切换为堆叠',\n        tiled: '切换为平铺'\n      }\n    },\n    restore: {\n      title: '还原'\n    },\n    saveAsImage: {\n      title: '保存为图片',\n      lang: ['右键另存为图片']\n    }\n  },\n  series: {\n    typeNames: {\n      pie: '饼图',\n      bar: '柱状图',\n      line: '折线图',\n      scatter: '散点图',\n      effectScatter: '涟漪散点图',\n      radar: '雷达图',\n      tree: '树图',\n      treemap: '矩形树图',\n      boxplot: '箱型图',\n      candlestick: 'K线图',\n      k: 'K线图',\n      heatmap: '热力图',\n      map: '地图',\n      parallel: '平行坐标图',\n      lines: '线图',\n      graph: '关系图',\n      sankey: '桑基图',\n      funnel: '漏斗图',\n      gauge: '仪表盘图',\n      pictorialBar: '象形柱图',\n      themeRiver: '主题河流图',\n      sunburst: '旭日图'\n    }\n  },\n  aria: {\n    general: {\n      withTitle: '这是一个关于“{title}”的图表。',\n      withoutTitle: '这是一个图表,'\n    },\n    series: {\n      single: {\n        prefix: '',\n        withName: '图表类型是{seriesType},表示{seriesName}。',\n        withoutName: '图表类型是{seriesType}。'\n      },\n      multiple: {\n        prefix: '它由{seriesCount}个图表系列组成。',\n        withName: '第{seriesId}个系列是一个表示{seriesName}的{seriesType},',\n        withoutName: '第{seriesId}个系列是一个{seriesType},',\n        separator: {\n          middle: ';',\n          end: '。'\n        }\n      }\n    },\n    data: {\n      allData: '其数据是——',\n      partialData: '其中,前{displayCnt}项是——',\n      withName: '{name}的数据是{value}',\n      withoutName: '{value}',\n      separator: {\n        middle: ',',\n        end: ''\n      }\n    }\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Model from '../model/Model';\nimport env from 'zrender/lib/core/env';\nimport langEN from '../i18n/langEN';\nimport langZH from '../i18n/langZH';\nimport { isString, clone, merge } from 'zrender/lib/core/util';\nvar LOCALE_ZH = 'ZH';\nvar LOCALE_EN = 'EN';\nvar DEFAULT_LOCALE = LOCALE_EN;\nvar localeStorage = {};\nvar localeModels = {};\nexport var SYSTEM_LANG = !env.domSupported ? DEFAULT_LOCALE : function () {\n  var langStr = (document.documentElement.lang || navigator.language || navigator.browserLanguage).toUpperCase();\n  return langStr.indexOf(LOCALE_ZH) > -1 ? LOCALE_ZH : DEFAULT_LOCALE;\n}();\nexport function registerLocale(locale, localeObj) {\n  locale = locale.toUpperCase();\n  localeModels[locale] = new Model(localeObj);\n  localeStorage[locale] = localeObj;\n}\nexport function createLocaleObject(locale) {\n  if (isString(locale)) {\n    var localeObj = localeStorage[locale.toUpperCase()] || {};\n\n    if (locale === LOCALE_ZH || locale === LOCALE_EN) {\n      return clone(localeObj);\n    } else {\n      return merge(clone(localeObj), clone(localeStorage[DEFAULT_LOCALE]), false);\n    }\n  } else {\n    return merge(clone(locale), clone(localeStorage[DEFAULT_LOCALE]), false);\n  }\n}\nexport function getLocaleModel(lang) {\n  return localeModels[lang];\n}\nexport function getDefaultLocaleModel() {\n  return localeModels[DEFAULT_LOCALE];\n}\nregisterLocale(LOCALE_EN, langEN);\nregisterLocale(LOCALE_ZH, langZH);","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as numberUtil from './number';\nimport { getDefaultLocaleModel, getLocaleModel, SYSTEM_LANG } from '../core/locale';\nimport Model from '../model/Model';\nexport var ONE_SECOND = 1000;\nexport var ONE_MINUTE = ONE_SECOND * 60;\nexport var ONE_HOUR = ONE_MINUTE * 60;\nexport var ONE_DAY = ONE_HOUR * 24;\nexport var ONE_YEAR = ONE_DAY * 365;\nexport var defaultLeveledFormatter = {\n  year: '{yyyy}',\n  month: '{MMM}',\n  day: '{d}',\n  hour: '{HH}:{mm}',\n  minute: '{HH}:{mm}',\n  second: '{HH}:{mm}:{ss}',\n  millisecond: '{hh}:{mm}:{ss} {SSS}',\n  none: '{yyyy}-{MM}-{dd} {hh}:{mm}:{ss} {SSS}'\n};\nvar fullDayFormatter = '{yyyy}-{MM}-{dd}';\nexport var fullLeveledFormatter = {\n  year: '{yyyy}',\n  month: '{yyyy}-{MM}',\n  day: fullDayFormatter,\n  hour: fullDayFormatter + ' ' + defaultLeveledFormatter.hour,\n  minute: fullDayFormatter + ' ' + defaultLeveledFormatter.minute,\n  second: fullDayFormatter + ' ' + defaultLeveledFormatter.second,\n  millisecond: defaultLeveledFormatter.none\n};\nexport var primaryTimeUnits = ['year', 'month', 'day', 'hour', 'minute', 'second', 'millisecond'];\nexport var timeUnits = ['year', 'half-year', 'quarter', 'month', 'week', 'half-week', 'day', 'half-day', 'quarter-day', 'hour', 'minute', 'second', 'millisecond'];\nexport function pad(str, len) {\n  str += '';\n  return '0000'.substr(0, len - str.length) + str;\n}\nexport function getPrimaryTimeUnit(timeUnit) {\n  switch (timeUnit) {\n    case 'half-year':\n    case 'quarter':\n      return 'month';\n\n    case 'week':\n    case 'half-week':\n      return 'day';\n\n    case 'half-day':\n    case 'quarter-day':\n      return 'hour';\n\n    default:\n      return timeUnit;\n  }\n}\nexport function isPrimaryTimeUnit(timeUnit) {\n  return timeUnit === getPrimaryTimeUnit(timeUnit);\n}\nexport function getDefaultFormatPrecisionOfInterval(timeUnit) {\n  switch (timeUnit) {\n    case 'year':\n    case 'month':\n      return 'day';\n\n    case 'millisecond':\n      return 'millisecond';\n\n    default:\n      return 'second';\n  }\n}\nexport function format(time, template, isUTC, lang) {\n  var date = numberUtil.parseDate(time);\n  var y = date[fullYearGetterName(isUTC)]();\n  var M = date[monthGetterName(isUTC)]() + 1;\n  var q = Math.floor((M - 1) / 4) + 1;\n  var d = date[dateGetterName(isUTC)]();\n  var e = date['get' + (isUTC ? 'UTC' : '') + 'Day']();\n  var H = date[hoursGetterName(isUTC)]();\n  var h = (H - 1) % 12 + 1;\n  var m = date[minutesGetterName(isUTC)]();\n  var s = date[secondsGetterName(isUTC)]();\n  var S = date[millisecondsGetterName(isUTC)]();\n  var localeModel = lang instanceof Model ? lang : getLocaleModel(lang || SYSTEM_LANG) || getDefaultLocaleModel();\n  var timeModel = localeModel.getModel('time');\n  var month = timeModel.get('month');\n  var monthAbbr = timeModel.get('monthAbbr');\n  var dayOfWeek = timeModel.get('dayOfWeek');\n  var dayOfWeekAbbr = timeModel.get('dayOfWeekAbbr');\n  return (template || '').replace(/{yyyy}/g, y + '').replace(/{yy}/g, y % 100 + '').replace(/{Q}/g, q + '').replace(/{MMMM}/g, month[M - 1]).replace(/{MMM}/g, monthAbbr[M - 1]).replace(/{MM}/g, pad(M, 2)).replace(/{M}/g, M + '').replace(/{dd}/g, pad(d, 2)).replace(/{d}/g, d + '').replace(/{eeee}/g, dayOfWeek[e]).replace(/{ee}/g, dayOfWeekAbbr[e]).replace(/{e}/g, e + '').replace(/{HH}/g, pad(H, 2)).replace(/{H}/g, H + '').replace(/{hh}/g, pad(h + '', 2)).replace(/{h}/g, h + '').replace(/{mm}/g, pad(m, 2)).replace(/{m}/g, m + '').replace(/{ss}/g, pad(s, 2)).replace(/{s}/g, s + '').replace(/{SSS}/g, pad(S, 3)).replace(/{S}/g, S + '');\n}\nexport function leveledFormat(tick, idx, formatter, lang, isUTC) {\n  var template = null;\n\n  if (typeof formatter === 'string') {\n    template = formatter;\n  } else if (typeof formatter === 'function') {\n    template = formatter(tick.value, idx, {\n      level: tick.level\n    });\n  } else {\n    var defaults = zrUtil.extend({}, defaultLeveledFormatter);\n\n    if (tick.level > 0) {\n      for (var i = 0; i < primaryTimeUnits.length; ++i) {\n        defaults[primaryTimeUnits[i]] = \"{primary|\" + defaults[primaryTimeUnits[i]] + \"}\";\n      }\n    }\n\n    var mergedFormatter = formatter ? formatter.inherit === false ? formatter : zrUtil.defaults(formatter, defaults) : defaults;\n    var unit = getUnitFromValue(tick.value, isUTC);\n\n    if (mergedFormatter[unit]) {\n      template = mergedFormatter[unit];\n    } else if (mergedFormatter.inherit) {\n      var targetId = timeUnits.indexOf(unit);\n\n      for (var i = targetId - 1; i >= 0; --i) {\n        if (mergedFormatter[unit]) {\n          template = mergedFormatter[unit];\n          break;\n        }\n      }\n\n      template = template || defaults.none;\n    }\n\n    if (zrUtil.isArray(template)) {\n      var levelId = tick.level == null ? 0 : tick.level >= 0 ? tick.level : template.length + tick.level;\n      levelId = Math.min(levelId, template.length - 1);\n      template = template[levelId];\n    }\n  }\n\n  return format(new Date(tick.value), template, isUTC, lang);\n}\nexport function getUnitFromValue(value, isUTC) {\n  var date = numberUtil.parseDate(value);\n  var M = date[monthGetterName(isUTC)]() + 1;\n  var d = date[dateGetterName(isUTC)]();\n  var h = date[hoursGetterName(isUTC)]();\n  var m = date[minutesGetterName(isUTC)]();\n  var s = date[secondsGetterName(isUTC)]();\n  var S = date[millisecondsGetterName(isUTC)]();\n  var isSecond = S === 0;\n  var isMinute = isSecond && s === 0;\n  var isHour = isMinute && m === 0;\n  var isDay = isHour && h === 0;\n  var isMonth = isDay && d === 1;\n  var isYear = isMonth && M === 1;\n\n  if (isYear) {\n    return 'year';\n  } else if (isMonth) {\n    return 'month';\n  } else if (isDay) {\n    return 'day';\n  } else if (isHour) {\n    return 'hour';\n  } else if (isMinute) {\n    return 'minute';\n  } else if (isSecond) {\n    return 'second';\n  } else {\n    return 'millisecond';\n  }\n}\nexport function getUnitValue(value, unit, isUTC) {\n  var date = typeof value === 'number' ? numberUtil.parseDate(value) : value;\n  unit = unit || getUnitFromValue(value, isUTC);\n\n  switch (unit) {\n    case 'year':\n      return date[fullYearGetterName(isUTC)]();\n\n    case 'half-year':\n      return date[monthGetterName(isUTC)]() >= 6 ? 1 : 0;\n\n    case 'quarter':\n      return Math.floor((date[monthGetterName(isUTC)]() + 1) / 4);\n\n    case 'month':\n      return date[monthGetterName(isUTC)]();\n\n    case 'day':\n      return date[dateGetterName(isUTC)]();\n\n    case 'half-day':\n      return date[hoursGetterName(isUTC)]() / 24;\n\n    case 'hour':\n      return date[hoursGetterName(isUTC)]();\n\n    case 'minute':\n      return date[minutesGetterName(isUTC)]();\n\n    case 'second':\n      return date[secondsGetterName(isUTC)]();\n\n    case 'millisecond':\n      return date[millisecondsGetterName(isUTC)]();\n  }\n}\nexport function fullYearGetterName(isUTC) {\n  return isUTC ? 'getUTCFullYear' : 'getFullYear';\n}\nexport function monthGetterName(isUTC) {\n  return isUTC ? 'getUTCMonth' : 'getMonth';\n}\nexport function dateGetterName(isUTC) {\n  return isUTC ? 'getUTCDate' : 'getDate';\n}\nexport function hoursGetterName(isUTC) {\n  return isUTC ? 'getUTCHours' : 'getHours';\n}\nexport function minutesGetterName(isUTC) {\n  return isUTC ? 'getUTCMinutes' : 'getMinutes';\n}\nexport function secondsGetterName(isUTC) {\n  return isUTC ? 'getUTCSeconds' : 'getSeconds';\n}\nexport function millisecondsGetterName(isUTC) {\n  return isUTC ? 'getUTCSeconds' : 'getSeconds';\n}\nexport function fullYearSetterName(isUTC) {\n  return isUTC ? 'setUTCFullYear' : 'setFullYear';\n}\nexport function monthSetterName(isUTC) {\n  return isUTC ? 'setUTCMonth' : 'setMonth';\n}\nexport function dateSetterName(isUTC) {\n  return isUTC ? 'setUTCDate' : 'setDate';\n}\nexport function hoursSetterName(isUTC) {\n  return isUTC ? 'setUTCHours' : 'setHours';\n}\nexport function minutesSetterName(isUTC) {\n  return isUTC ? 'setUTCMinutes' : 'setMinutes';\n}\nexport function secondsSetterName(isUTC) {\n  return isUTC ? 'setUTCSeconds' : 'setSeconds';\n}\nexport function millisecondsSetterName(isUTC) {\n  return isUTC ? 'setUTCSeconds' : 'setSeconds';\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { Text } from '../util/graphic';\nimport { deprecateLog } from '../util/log';\nexport function getTextRect(text, font, align, verticalAlign, padding, rich, truncate, lineHeight) {\n  deprecateLog('getTextRect is deprecated.');\n  var textEl = new Text({\n    style: {\n      text: text,\n      font: font,\n      align: align,\n      verticalAlign: verticalAlign,\n      padding: padding,\n      rich: rich,\n      overflow: truncate ? 'truncate' : null,\n      lineHeight: lineHeight\n    }\n  });\n  return textEl.getBoundingRect();\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parseDate, isNumeric, numericToNumber } from './number';\nimport { format as timeFormat, pad } from './time';\nimport { deprecateReplaceLog } from './log';\nexport function addCommas(x) {\n  if (!isNumeric(x)) {\n    return zrUtil.isString(x) ? x : '-';\n  }\n\n  var parts = (x + '').split('.');\n  return parts[0].replace(/(\\d{1,3})(?=(?:\\d{3})+(?!\\d))/g, '$1,') + (parts.length > 1 ? '.' + parts[1] : '');\n}\nexport function toCamelCase(str, upperCaseFirst) {\n  str = (str || '').toLowerCase().replace(/-(.)/g, function (match, group1) {\n    return group1.toUpperCase();\n  });\n\n  if (upperCaseFirst && str) {\n    str = str.charAt(0).toUpperCase() + str.slice(1);\n  }\n\n  return str;\n}\nexport var normalizeCssArray = zrUtil.normalizeCssArray;\nvar replaceReg = /([&<>\"'])/g;\nvar replaceMap = {\n  '&': '&amp;',\n  '<': '&lt;',\n  '>': '&gt;',\n  '\"': '&quot;',\n  '\\'': '&#39;'\n};\nexport function encodeHTML(source) {\n  return source == null ? '' : (source + '').replace(replaceReg, function (str, c) {\n    return replaceMap[c];\n  });\n}\nexport function makeValueReadable(value, valueType, useUTC) {\n  var USER_READABLE_DEFUALT_TIME_PATTERN = 'yyyy-MM-dd hh:mm:ss';\n\n  function stringToUserReadable(str) {\n    return str && zrUtil.trim(str) ? str : '-';\n  }\n\n  function isNumberUserReadable(num) {\n    return !!(num != null && !isNaN(num) && isFinite(num));\n  }\n\n  var isTypeTime = valueType === 'time';\n  var isValueDate = value instanceof Date;\n\n  if (isTypeTime || isValueDate) {\n    var date = isTypeTime ? parseDate(value) : value;\n\n    if (!isNaN(+date)) {\n      return timeFormat(date, USER_READABLE_DEFUALT_TIME_PATTERN, useUTC);\n    } else if (isValueDate) {\n      return '-';\n    }\n  }\n\n  if (valueType === 'ordinal') {\n    return zrUtil.isStringSafe(value) ? stringToUserReadable(value) : zrUtil.isNumber(value) ? isNumberUserReadable(value) ? value + '' : '-' : '-';\n  }\n\n  var numericResult = numericToNumber(value);\n  return isNumberUserReadable(numericResult) ? addCommas(numericResult) : zrUtil.isStringSafe(value) ? stringToUserReadable(value) : '-';\n}\nvar TPL_VAR_ALIAS = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];\n\nvar wrapVar = function (varName, seriesIdx) {\n  return '{' + varName + (seriesIdx == null ? '' : seriesIdx) + '}';\n};\n\nexport function formatTpl(tpl, paramsList, encode) {\n  if (!zrUtil.isArray(paramsList)) {\n    paramsList = [paramsList];\n  }\n\n  var seriesLen = paramsList.length;\n\n  if (!seriesLen) {\n    return '';\n  }\n\n  var $vars = paramsList[0].$vars || [];\n\n  for (var i = 0; i < $vars.length; i++) {\n    var alias = TPL_VAR_ALIAS[i];\n    tpl = tpl.replace(wrapVar(alias), wrapVar(alias, 0));\n  }\n\n  for (var seriesIdx = 0; seriesIdx < seriesLen; seriesIdx++) {\n    for (var k = 0; k < $vars.length; k++) {\n      var val = paramsList[seriesIdx][$vars[k]];\n      tpl = tpl.replace(wrapVar(TPL_VAR_ALIAS[k], seriesIdx), encode ? encodeHTML(val) : val);\n    }\n  }\n\n  return tpl;\n}\nexport function formatTplSimple(tpl, param, encode) {\n  zrUtil.each(param, function (value, key) {\n    tpl = tpl.replace('{' + key + '}', encode ? encodeHTML(value) : value);\n  });\n  return tpl;\n}\nexport function getTooltipMarker(inOpt, extraCssText) {\n  var opt = zrUtil.isString(inOpt) ? {\n    color: inOpt,\n    extraCssText: extraCssText\n  } : inOpt || {};\n  var color = opt.color;\n  var type = opt.type;\n  extraCssText = opt.extraCssText;\n  var renderMode = opt.renderMode || 'html';\n\n  if (!color) {\n    return '';\n  }\n\n  if (renderMode === 'html') {\n    return type === 'subItem' ? '<span style=\"display:inline-block;vertical-align:middle;margin-right:8px;margin-left:3px;' + 'border-radius:4px;width:4px;height:4px;background-color:' + encodeHTML(color) + ';' + (extraCssText || '') + '\"></span>' : '<span style=\"display:inline-block;margin-right:4px;' + 'border-radius:10px;width:10px;height:10px;background-color:' + encodeHTML(color) + ';' + (extraCssText || '') + '\"></span>';\n  } else {\n    var markerId = opt.markerId || 'markerX';\n    return {\n      renderMode: renderMode,\n      content: '{' + markerId + '|}  ',\n      style: type === 'subItem' ? {\n        width: 4,\n        height: 4,\n        borderRadius: 2,\n        backgroundColor: color\n      } : {\n        width: 10,\n        height: 10,\n        borderRadius: 5,\n        backgroundColor: color\n      }\n    };\n  }\n}\nexport function formatTime(tpl, value, isUTC) {\n  if (process.env.NODE_ENV !== 'production') {\n    deprecateReplaceLog('echarts.format.formatTime', 'echarts.time.format');\n  }\n\n  if (tpl === 'week' || tpl === 'month' || tpl === 'quarter' || tpl === 'half-year' || tpl === 'year') {\n    tpl = 'MM-dd\\nyyyy';\n  }\n\n  var date = parseDate(value);\n  var utc = isUTC ? 'UTC' : '';\n  var y = date['get' + utc + 'FullYear']();\n  var M = date['get' + utc + 'Month']() + 1;\n  var d = date['get' + utc + 'Date']();\n  var h = date['get' + utc + 'Hours']();\n  var m = date['get' + utc + 'Minutes']();\n  var s = date['get' + utc + 'Seconds']();\n  var S = date['get' + utc + 'Milliseconds']();\n  tpl = tpl.replace('MM', pad(M, 2)).replace('M', M).replace('yyyy', y).replace('yy', y % 100 + '').replace('dd', pad(d, 2)).replace('d', d).replace('hh', pad(h, 2)).replace('h', h).replace('mm', pad(m, 2)).replace('m', m).replace('ss', pad(s, 2)).replace('s', s).replace('SSS', pad(S, 3));\n  return tpl;\n}\nexport function capitalFirst(str) {\n  return str ? str.charAt(0).toUpperCase() + str.substr(1) : str;\n}\nexport function convertToColorString(color, defaultColor) {\n  defaultColor = defaultColor || 'transparent';\n  return zrUtil.isString(color) ? color : zrUtil.isObject(color) ? color.colorStops && (color.colorStops[0] || {}).color || defaultColor : defaultColor;\n}\nexport { truncateText } from 'zrender/lib/graphic/helper/parseText';\nexport function windowOpen(link, target) {\n  if (target === '_blank' || target === 'blank') {\n    var blank = window.open();\n    blank.opener = null;\n    blank.location.href = link;\n  } else {\n    window.open(link, target);\n  }\n}\nexport { getTextRect } from '../legacy/getTextRect';","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { parsePercent } from './number';\nimport * as formatUtil from './format';\nvar each = zrUtil.each;\nexport var LOCATION_PARAMS = ['left', 'right', 'top', 'bottom', 'width', 'height'];\nexport var HV_NAMES = [['width', 'left', 'right'], ['height', 'top', 'bottom']];\n\nfunction boxLayout(orient, group, gap, maxWidth, maxHeight) {\n  var x = 0;\n  var y = 0;\n\n  if (maxWidth == null) {\n    maxWidth = Infinity;\n  }\n\n  if (maxHeight == null) {\n    maxHeight = Infinity;\n  }\n\n  var currentLineMaxSize = 0;\n  group.eachChild(function (child, idx) {\n    var rect = child.getBoundingRect();\n    var nextChild = group.childAt(idx + 1);\n    var nextChildRect = nextChild && nextChild.getBoundingRect();\n    var nextX;\n    var nextY;\n\n    if (orient === 'horizontal') {\n      var moveX = rect.width + (nextChildRect ? -nextChildRect.x + rect.x : 0);\n      nextX = x + moveX;\n\n      if (nextX > maxWidth || child.newline) {\n        x = 0;\n        nextX = moveX;\n        y += currentLineMaxSize + gap;\n        currentLineMaxSize = rect.height;\n      } else {\n        currentLineMaxSize = Math.max(currentLineMaxSize, rect.height);\n      }\n    } else {\n      var moveY = rect.height + (nextChildRect ? -nextChildRect.y + rect.y : 0);\n      nextY = y + moveY;\n\n      if (nextY > maxHeight || child.newline) {\n        x += currentLineMaxSize + gap;\n        y = 0;\n        nextY = moveY;\n        currentLineMaxSize = rect.width;\n      } else {\n        currentLineMaxSize = Math.max(currentLineMaxSize, rect.width);\n      }\n    }\n\n    if (child.newline) {\n      return;\n    }\n\n    child.x = x;\n    child.y = y;\n    child.markRedraw();\n    orient === 'horizontal' ? x = nextX + gap : y = nextY + gap;\n  });\n}\n\nexport var box = boxLayout;\nexport var vbox = zrUtil.curry(boxLayout, 'vertical');\nexport var hbox = zrUtil.curry(boxLayout, 'horizontal');\nexport function getAvailableSize(positionInfo, containerRect, margin) {\n  var containerWidth = containerRect.width;\n  var containerHeight = containerRect.height;\n  var x = parsePercent(positionInfo.left, containerWidth);\n  var y = parsePercent(positionInfo.top, containerHeight);\n  var x2 = parsePercent(positionInfo.right, containerWidth);\n  var y2 = parsePercent(positionInfo.bottom, containerHeight);\n  (isNaN(x) || isNaN(parseFloat(positionInfo.left))) && (x = 0);\n  (isNaN(x2) || isNaN(parseFloat(positionInfo.right))) && (x2 = containerWidth);\n  (isNaN(y) || isNaN(parseFloat(positionInfo.top))) && (y = 0);\n  (isNaN(y2) || isNaN(parseFloat(positionInfo.bottom))) && (y2 = containerHeight);\n  margin = formatUtil.normalizeCssArray(margin || 0);\n  return {\n    width: Math.max(x2 - x - margin[1] - margin[3], 0),\n    height: Math.max(y2 - y - margin[0] - margin[2], 0)\n  };\n}\nexport function getLayoutRect(positionInfo, containerRect, margin) {\n  margin = formatUtil.normalizeCssArray(margin || 0);\n  var containerWidth = containerRect.width;\n  var containerHeight = containerRect.height;\n  var left = parsePercent(positionInfo.left, containerWidth);\n  var top = parsePercent(positionInfo.top, containerHeight);\n  var right = parsePercent(positionInfo.right, containerWidth);\n  var bottom = parsePercent(positionInfo.bottom, containerHeight);\n  var width = parsePercent(positionInfo.width, containerWidth);\n  var height = parsePercent(positionInfo.height, containerHeight);\n  var verticalMargin = margin[2] + margin[0];\n  var horizontalMargin = margin[1] + margin[3];\n  var aspect = positionInfo.aspect;\n\n  if (isNaN(width)) {\n    width = containerWidth - right - horizontalMargin - left;\n  }\n\n  if (isNaN(height)) {\n    height = containerHeight - bottom - verticalMargin - top;\n  }\n\n  if (aspect != null) {\n    if (isNaN(width) && isNaN(height)) {\n      if (aspect > containerWidth / containerHeight) {\n        width = containerWidth * 0.8;\n      } else {\n        height = containerHeight * 0.8;\n      }\n    }\n\n    if (isNaN(width)) {\n      width = aspect * height;\n    }\n\n    if (isNaN(height)) {\n      height = width / aspect;\n    }\n  }\n\n  if (isNaN(left)) {\n    left = containerWidth - right - width - horizontalMargin;\n  }\n\n  if (isNaN(top)) {\n    top = containerHeight - bottom - height - verticalMargin;\n  }\n\n  switch (positionInfo.left || positionInfo.right) {\n    case 'center':\n      left = containerWidth / 2 - width / 2 - margin[3];\n      break;\n\n    case 'right':\n      left = containerWidth - width - horizontalMargin;\n      break;\n  }\n\n  switch (positionInfo.top || positionInfo.bottom) {\n    case 'middle':\n    case 'center':\n      top = containerHeight / 2 - height / 2 - margin[0];\n      break;\n\n    case 'bottom':\n      top = containerHeight - height - verticalMargin;\n      break;\n  }\n\n  left = left || 0;\n  top = top || 0;\n\n  if (isNaN(width)) {\n    width = containerWidth - horizontalMargin - left - (right || 0);\n  }\n\n  if (isNaN(height)) {\n    height = containerHeight - verticalMargin - top - (bottom || 0);\n  }\n\n  var rect = new BoundingRect(left + margin[3], top + margin[0], width, height);\n  rect.margin = margin;\n  return rect;\n}\nexport function positionElement(el, positionInfo, containerRect, margin, opt) {\n  var h = !opt || !opt.hv || opt.hv[0];\n  var v = !opt || !opt.hv || opt.hv[1];\n  var boundingMode = opt && opt.boundingMode || 'all';\n\n  if (!h && !v) {\n    return;\n  }\n\n  var rect;\n\n  if (boundingMode === 'raw') {\n    rect = el.type === 'group' ? new BoundingRect(0, 0, +positionInfo.width || 0, +positionInfo.height || 0) : el.getBoundingRect();\n  } else {\n    rect = el.getBoundingRect();\n\n    if (el.needLocalTransform()) {\n      var transform = el.getLocalTransform();\n      rect = rect.clone();\n      rect.applyTransform(transform);\n    }\n  }\n\n  var layoutRect = getLayoutRect(zrUtil.defaults({\n    width: rect.width,\n    height: rect.height\n  }, positionInfo), containerRect, margin);\n  var dx = h ? layoutRect.x - rect.x : 0;\n  var dy = v ? layoutRect.y - rect.y : 0;\n\n  if (boundingMode === 'raw') {\n    el.x = dx;\n    el.y = dy;\n  } else {\n    el.x += dx;\n    el.y += dy;\n  }\n\n  el.markRedraw();\n}\nexport function sizeCalculable(option, hvIdx) {\n  return option[HV_NAMES[hvIdx][0]] != null || option[HV_NAMES[hvIdx][1]] != null && option[HV_NAMES[hvIdx][2]] != null;\n}\nexport function fetchLayoutMode(ins) {\n  var layoutMode = ins.layoutMode || ins.constructor.layoutMode;\n  return zrUtil.isObject(layoutMode) ? layoutMode : layoutMode ? {\n    type: layoutMode\n  } : null;\n}\nexport function mergeLayoutParam(targetOption, newOption, opt) {\n  var ignoreSize = opt && opt.ignoreSize;\n  !zrUtil.isArray(ignoreSize) && (ignoreSize = [ignoreSize, ignoreSize]);\n  var hResult = merge(HV_NAMES[0], 0);\n  var vResult = merge(HV_NAMES[1], 1);\n  copy(HV_NAMES[0], targetOption, hResult);\n  copy(HV_NAMES[1], targetOption, vResult);\n\n  function merge(names, hvIdx) {\n    var newParams = {};\n    var newValueCount = 0;\n    var merged = {};\n    var mergedValueCount = 0;\n    var enoughParamNumber = 2;\n    each(names, function (name) {\n      merged[name] = targetOption[name];\n    });\n    each(names, function (name) {\n      hasProp(newOption, name) && (newParams[name] = merged[name] = newOption[name]);\n      hasValue(newParams, name) && newValueCount++;\n      hasValue(merged, name) && mergedValueCount++;\n    });\n\n    if (ignoreSize[hvIdx]) {\n      if (hasValue(newOption, names[1])) {\n        merged[names[2]] = null;\n      } else if (hasValue(newOption, names[2])) {\n        merged[names[1]] = null;\n      }\n\n      return merged;\n    }\n\n    if (mergedValueCount === enoughParamNumber || !newValueCount) {\n      return merged;\n    } else if (newValueCount >= enoughParamNumber) {\n      return newParams;\n    } else {\n      for (var i = 0; i < names.length; i++) {\n        var name_1 = names[i];\n\n        if (!hasProp(newParams, name_1) && hasProp(targetOption, name_1)) {\n          newParams[name_1] = targetOption[name_1];\n          break;\n        }\n      }\n\n      return newParams;\n    }\n  }\n\n  function hasProp(obj, name) {\n    return obj.hasOwnProperty(name);\n  }\n\n  function hasValue(obj, name) {\n    return obj[name] != null && obj[name] !== 'auto';\n  }\n\n  function copy(names, target, source) {\n    each(names, function (name) {\n      target[name] = source[name];\n    });\n  }\n}\nexport function getLayoutParams(source) {\n  return copyLayoutParams({}, source);\n}\nexport function copyLayoutParams(target, source) {\n  source && target && each(LOCATION_PARAMS, function (name) {\n    source.hasOwnProperty(name) && (target[name] = source[name]);\n  });\n  return target;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Model from './Model';\nimport * as componentUtil from '../util/component';\nimport { enableClassManagement, parseClassType, isExtendedClass, mountExtend } from '../util/clazz';\nimport { makeInner, queryReferringComponents } from '../util/model';\nimport * as layout from '../util/layout';\nvar inner = makeInner();\n\nvar ComponentModel = function (_super) {\n  __extends(ComponentModel, _super);\n\n  function ComponentModel(option, parentModel, ecModel) {\n    var _this = _super.call(this, option, parentModel, ecModel) || this;\n\n    _this.uid = componentUtil.getUID('ec_cpt_model');\n    return _this;\n  }\n\n  ComponentModel.prototype.init = function (option, parentModel, ecModel) {\n    this.mergeDefaultAndTheme(option, ecModel);\n  };\n\n  ComponentModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n    var layoutMode = layout.fetchLayoutMode(this);\n    var inputPositionParams = layoutMode ? layout.getLayoutParams(option) : {};\n    var themeModel = ecModel.getTheme();\n    zrUtil.merge(option, themeModel.get(this.mainType));\n    zrUtil.merge(option, this.getDefaultOption());\n\n    if (layoutMode) {\n      layout.mergeLayoutParam(option, inputPositionParams, layoutMode);\n    }\n  };\n\n  ComponentModel.prototype.mergeOption = function (option, ecModel) {\n    zrUtil.merge(this.option, option, true);\n    var layoutMode = layout.fetchLayoutMode(this);\n\n    if (layoutMode) {\n      layout.mergeLayoutParam(this.option, option, layoutMode);\n    }\n  };\n\n  ComponentModel.prototype.optionUpdated = function (newCptOption, isInit) {};\n\n  ComponentModel.prototype.getDefaultOption = function () {\n    var ctor = this.constructor;\n\n    if (!isExtendedClass(ctor)) {\n      return ctor.defaultOption;\n    }\n\n    var fields = inner(this);\n\n    if (!fields.defaultOption) {\n      var optList = [];\n      var clz = ctor;\n\n      while (clz) {\n        var opt = clz.prototype.defaultOption;\n        opt && optList.push(opt);\n        clz = clz.superClass;\n      }\n\n      var defaultOption = {};\n\n      for (var i = optList.length - 1; i >= 0; i--) {\n        defaultOption = zrUtil.merge(defaultOption, optList[i], true);\n      }\n\n      fields.defaultOption = defaultOption;\n    }\n\n    return fields.defaultOption;\n  };\n\n  ComponentModel.prototype.getReferringComponents = function (mainType, opt) {\n    var indexKey = mainType + 'Index';\n    var idKey = mainType + 'Id';\n    return queryReferringComponents(this.ecModel, mainType, {\n      index: this.get(indexKey, true),\n      id: this.get(idKey, true)\n    }, opt);\n  };\n\n  ComponentModel.prototype.getBoxLayoutParams = function () {\n    var boxLayoutModel = this;\n    return {\n      left: boxLayoutModel.get('left'),\n      top: boxLayoutModel.get('top'),\n      right: boxLayoutModel.get('right'),\n      bottom: boxLayoutModel.get('bottom'),\n      width: boxLayoutModel.get('width'),\n      height: boxLayoutModel.get('height')\n    };\n  };\n\n  ComponentModel.protoInitialize = function () {\n    var proto = ComponentModel.prototype;\n    proto.type = 'component';\n    proto.id = '';\n    proto.name = '';\n    proto.mainType = '';\n    proto.subType = '';\n    proto.componentIndex = 0;\n  }();\n\n  return ComponentModel;\n}(Model);\n\nmountExtend(ComponentModel, Model);\nenableClassManagement(ComponentModel);\ncomponentUtil.enableSubTypeDefaulter(ComponentModel);\ncomponentUtil.enableTopologicalTravel(ComponentModel, getDependencies);\n\nfunction getDependencies(componentType) {\n  var deps = [];\n  zrUtil.each(ComponentModel.getClassesByMainType(componentType), function (clz) {\n    deps = deps.concat(clz.dependencies || clz.prototype.dependencies || []);\n  });\n  deps = zrUtil.map(deps, function (type) {\n    return parseClassType(type).main;\n  });\n\n  if (componentType !== 'dataset' && zrUtil.indexOf(deps, 'dataset') <= 0) {\n    deps.unshift('dataset');\n  }\n\n  return deps;\n}\n\nexport default ComponentModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar platform = '';\n\nif (typeof navigator !== 'undefined') {\n  platform = navigator.platform || '';\n}\n\nvar decalColor = 'rgba(0, 0, 0, 0.2)';\nexport default {\n  darkMode: 'auto',\n  color: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],\n  gradientColor: ['#f6efa6', '#d88273', '#bf444c'],\n  aria: {\n    decal: {\n      decals: [{\n        color: decalColor,\n        dashArrayX: [1, 0],\n        dashArrayY: [2, 5],\n        symbolSize: 1,\n        rotation: Math.PI / 6\n      }, {\n        color: decalColor,\n        symbol: 'circle',\n        dashArrayX: [[8, 8], [0, 8, 8, 0]],\n        dashArrayY: [6, 0],\n        symbolSize: 0.8\n      }, {\n        color: decalColor,\n        dashArrayX: [1, 0],\n        dashArrayY: [4, 3],\n        rotation: -Math.PI / 4\n      }, {\n        color: decalColor,\n        dashArrayX: [[6, 6], [0, 6, 6, 0]],\n        dashArrayY: [6, 0]\n      }, {\n        color: decalColor,\n        dashArrayX: [[1, 0], [1, 6]],\n        dashArrayY: [1, 0, 6, 0],\n        rotation: Math.PI / 4\n      }, {\n        color: decalColor,\n        symbol: 'triangle',\n        dashArrayX: [[9, 9], [0, 9, 9, 0]],\n        dashArrayY: [7, 2],\n        symbolSize: 0.75\n      }]\n    }\n  },\n  textStyle: {\n    fontFamily: platform.match(/^Win/) ? 'Microsoft YaHei' : 'sans-serif',\n    fontSize: 12,\n    fontStyle: 'normal',\n    fontWeight: 'normal'\n  },\n  blendMode: null,\n  stateAnimation: {\n    duration: 300,\n    easing: 'cubicOut'\n  },\n  animation: 'auto',\n  animationDuration: 1000,\n  animationDurationUpdate: 500,\n  animationEasing: 'cubicInOut',\n  animationEasingUpdate: 'cubicInOut',\n  animationThreshold: 2000,\n  progressiveThreshold: 3000,\n  progressive: 400,\n  hoverLayerThreshold: 3000,\n  useUTC: false\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap } from 'zrender/lib/core/util';\n;\n;\n;\nexport var VISUAL_DIMENSIONS = createHashMap(['tooltip', 'label', 'itemName', 'itemId', 'seriesName']);\nexport var SOURCE_FORMAT_ORIGINAL = 'original';\nexport var SOURCE_FORMAT_ARRAY_ROWS = 'arrayRows';\nexport var SOURCE_FORMAT_OBJECT_ROWS = 'objectRows';\nexport var SOURCE_FORMAT_KEYED_COLUMNS = 'keyedColumns';\nexport var SOURCE_FORMAT_TYPED_ARRAY = 'typedArray';\nexport var SOURCE_FORMAT_UNKNOWN = 'unknown';\nexport var SERIES_LAYOUT_BY_COLUMN = 'column';\nexport var SERIES_LAYOUT_BY_ROW = 'row';\n;\n;\n;\n;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner, getDataItemValue, queryReferringComponents, SINGLE_REFERRING } from '../../util/model';\nimport { createHashMap, each, isArray, isString, isObject, isTypedArray } from 'zrender/lib/core/util';\nimport { SOURCE_FORMAT_ORIGINAL, SOURCE_FORMAT_ARRAY_ROWS, SOURCE_FORMAT_OBJECT_ROWS, SERIES_LAYOUT_BY_ROW, SOURCE_FORMAT_KEYED_COLUMNS } from '../../util/types';\nexport var BE_ORDINAL = {\n  Must: 1,\n  Might: 2,\n  Not: 3\n};\nvar innerGlobalModel = makeInner();\nexport function resetSourceDefaulter(ecModel) {\n  innerGlobalModel(ecModel).datasetMap = createHashMap();\n}\nexport function makeSeriesEncodeForAxisCoordSys(coordDimensions, seriesModel, source) {\n  var encode = {};\n  var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\n\n  if (!datasetModel || !coordDimensions) {\n    return encode;\n  }\n\n  var encodeItemName = [];\n  var encodeSeriesName = [];\n  var ecModel = seriesModel.ecModel;\n  var datasetMap = innerGlobalModel(ecModel).datasetMap;\n  var key = datasetModel.uid + '_' + source.seriesLayoutBy;\n  var baseCategoryDimIndex;\n  var categoryWayValueDimStart;\n  coordDimensions = coordDimensions.slice();\n  each(coordDimensions, function (coordDimInfoLoose, coordDimIdx) {\n    var coordDimInfo = isObject(coordDimInfoLoose) ? coordDimInfoLoose : coordDimensions[coordDimIdx] = {\n      name: coordDimInfoLoose\n    };\n\n    if (coordDimInfo.type === 'ordinal' && baseCategoryDimIndex == null) {\n      baseCategoryDimIndex = coordDimIdx;\n      categoryWayValueDimStart = getDataDimCountOnCoordDim(coordDimInfo);\n    }\n\n    encode[coordDimInfo.name] = [];\n  });\n  var datasetRecord = datasetMap.get(key) || datasetMap.set(key, {\n    categoryWayDim: categoryWayValueDimStart,\n    valueWayDim: 0\n  });\n  each(coordDimensions, function (coordDimInfo, coordDimIdx) {\n    var coordDimName = coordDimInfo.name;\n    var count = getDataDimCountOnCoordDim(coordDimInfo);\n\n    if (baseCategoryDimIndex == null) {\n      var start = datasetRecord.valueWayDim;\n      pushDim(encode[coordDimName], start, count);\n      pushDim(encodeSeriesName, start, count);\n      datasetRecord.valueWayDim += count;\n    } else if (baseCategoryDimIndex === coordDimIdx) {\n      pushDim(encode[coordDimName], 0, count);\n      pushDim(encodeItemName, 0, count);\n    } else {\n      var start = datasetRecord.categoryWayDim;\n      pushDim(encode[coordDimName], start, count);\n      pushDim(encodeSeriesName, start, count);\n      datasetRecord.categoryWayDim += count;\n    }\n  });\n\n  function pushDim(dimIdxArr, idxFrom, idxCount) {\n    for (var i = 0; i < idxCount; i++) {\n      dimIdxArr.push(idxFrom + i);\n    }\n  }\n\n  function getDataDimCountOnCoordDim(coordDimInfo) {\n    var dimsDef = coordDimInfo.dimsDef;\n    return dimsDef ? dimsDef.length : 1;\n  }\n\n  encodeItemName.length && (encode.itemName = encodeItemName);\n  encodeSeriesName.length && (encode.seriesName = encodeSeriesName);\n  return encode;\n}\nexport function makeSeriesEncodeForNameBased(seriesModel, source, dimCount) {\n  var encode = {};\n  var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\n\n  if (!datasetModel) {\n    return encode;\n  }\n\n  var sourceFormat = source.sourceFormat;\n  var dimensionsDefine = source.dimensionsDefine;\n  var potentialNameDimIndex;\n\n  if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS || sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n    each(dimensionsDefine, function (dim, idx) {\n      if ((isObject(dim) ? dim.name : dim) === 'name') {\n        potentialNameDimIndex = idx;\n      }\n    });\n  }\n\n  var idxResult = function () {\n    var idxRes0 = {};\n    var idxRes1 = {};\n    var guessRecords = [];\n\n    for (var i = 0, len = Math.min(5, dimCount); i < len; i++) {\n      var guessResult = doGuessOrdinal(source.data, sourceFormat, source.seriesLayoutBy, dimensionsDefine, source.startIndex, i);\n      guessRecords.push(guessResult);\n      var isPureNumber = guessResult === BE_ORDINAL.Not;\n\n      if (isPureNumber && idxRes0.v == null && i !== potentialNameDimIndex) {\n        idxRes0.v = i;\n      }\n\n      if (idxRes0.n == null || idxRes0.n === idxRes0.v || !isPureNumber && guessRecords[idxRes0.n] === BE_ORDINAL.Not) {\n        idxRes0.n = i;\n      }\n\n      if (fulfilled(idxRes0) && guessRecords[idxRes0.n] !== BE_ORDINAL.Not) {\n        return idxRes0;\n      }\n\n      if (!isPureNumber) {\n        if (guessResult === BE_ORDINAL.Might && idxRes1.v == null && i !== potentialNameDimIndex) {\n          idxRes1.v = i;\n        }\n\n        if (idxRes1.n == null || idxRes1.n === idxRes1.v) {\n          idxRes1.n = i;\n        }\n      }\n    }\n\n    function fulfilled(idxResult) {\n      return idxResult.v != null && idxResult.n != null;\n    }\n\n    return fulfilled(idxRes0) ? idxRes0 : fulfilled(idxRes1) ? idxRes1 : null;\n  }();\n\n  if (idxResult) {\n    encode.value = [idxResult.v];\n    var nameDimIndex = potentialNameDimIndex != null ? potentialNameDimIndex : idxResult.n;\n    encode.itemName = [nameDimIndex];\n    encode.seriesName = [nameDimIndex];\n  }\n\n  return encode;\n}\nexport function querySeriesUpstreamDatasetModel(seriesModel) {\n  var thisData = seriesModel.get('data', true);\n\n  if (!thisData) {\n    return queryReferringComponents(seriesModel.ecModel, 'dataset', {\n      index: seriesModel.get('datasetIndex', true),\n      id: seriesModel.get('datasetId', true)\n    }, SINGLE_REFERRING).models[0];\n  }\n}\nexport function queryDatasetUpstreamDatasetModels(datasetModel) {\n  if (!datasetModel.get('transform', true) && !datasetModel.get('fromTransformResult', true)) {\n    return [];\n  }\n\n  return queryReferringComponents(datasetModel.ecModel, 'dataset', {\n    index: datasetModel.get('fromDatasetIndex', true),\n    id: datasetModel.get('fromDatasetId', true)\n  }, SINGLE_REFERRING).models;\n}\nexport function guessOrdinal(source, dimIndex) {\n  return doGuessOrdinal(source.data, source.sourceFormat, source.seriesLayoutBy, source.dimensionsDefine, source.startIndex, dimIndex);\n}\n\nfunction doGuessOrdinal(data, sourceFormat, seriesLayoutBy, dimensionsDefine, startIndex, dimIndex) {\n  var result;\n  var maxLoop = 5;\n\n  if (isTypedArray(data)) {\n    return BE_ORDINAL.Not;\n  }\n\n  var dimName;\n  var dimType;\n\n  if (dimensionsDefine) {\n    var dimDefItem = dimensionsDefine[dimIndex];\n\n    if (isObject(dimDefItem)) {\n      dimName = dimDefItem.name;\n      dimType = dimDefItem.type;\n    } else if (isString(dimDefItem)) {\n      dimName = dimDefItem;\n    }\n  }\n\n  if (dimType != null) {\n    return dimType === 'ordinal' ? BE_ORDINAL.Must : BE_ORDINAL.Not;\n  }\n\n  if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n    var dataArrayRows = data;\n\n    if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\n      var sample = dataArrayRows[dimIndex];\n\n      for (var i = 0; i < (sample || []).length && i < maxLoop; i++) {\n        if ((result = detectValue(sample[startIndex + i])) != null) {\n          return result;\n        }\n      }\n    } else {\n      for (var i = 0; i < dataArrayRows.length && i < maxLoop; i++) {\n        var row = dataArrayRows[startIndex + i];\n\n        if (row && (result = detectValue(row[dimIndex])) != null) {\n          return result;\n        }\n      }\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n    var dataObjectRows = data;\n\n    if (!dimName) {\n      return BE_ORDINAL.Not;\n    }\n\n    for (var i = 0; i < dataObjectRows.length && i < maxLoop; i++) {\n      var item = dataObjectRows[i];\n\n      if (item && (result = detectValue(item[dimName])) != null) {\n        return result;\n      }\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n    var dataKeyedColumns = data;\n\n    if (!dimName) {\n      return BE_ORDINAL.Not;\n    }\n\n    var sample = dataKeyedColumns[dimName];\n\n    if (!sample || isTypedArray(sample)) {\n      return BE_ORDINAL.Not;\n    }\n\n    for (var i = 0; i < sample.length && i < maxLoop; i++) {\n      if ((result = detectValue(sample[i])) != null) {\n        return result;\n      }\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n    var dataOriginal = data;\n\n    for (var i = 0; i < dataOriginal.length && i < maxLoop; i++) {\n      var item = dataOriginal[i];\n      var val = getDataItemValue(item);\n\n      if (!isArray(val)) {\n        return BE_ORDINAL.Not;\n      }\n\n      if ((result = detectValue(val[dimIndex])) != null) {\n        return result;\n      }\n    }\n  }\n\n  function detectValue(val) {\n    var beStr = isString(val);\n\n    if (val != null && isFinite(val) && val !== '') {\n      return beStr ? BE_ORDINAL.Might : BE_ORDINAL.Not;\n    } else if (beStr && val !== '-') {\n      return BE_ORDINAL.Must;\n    }\n  }\n\n  return BE_ORDINAL.Not;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, assert } from 'zrender/lib/core/util';\nimport { isComponentIdInternal } from '../util/model';\nvar internalOptionCreatorMap = createHashMap();\nexport function registerInternalOptionCreator(mainType, creator) {\n  assert(internalOptionCreatorMap.get(mainType) == null && creator);\n  internalOptionCreatorMap.set(mainType, creator);\n}\nexport function concatInternalOptions(ecModel, mainType, newCmptOptionList) {\n  var internalOptionCreator = internalOptionCreatorMap.get(mainType);\n\n  if (!internalOptionCreator) {\n    return newCmptOptionList;\n  }\n\n  var internalOptions = internalOptionCreator(ecModel);\n\n  if (!internalOptions) {\n    return newCmptOptionList;\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    for (var i = 0; i < internalOptions.length; i++) {\n      assert(isComponentIdInternal(internalOptions[i]));\n    }\n  }\n\n  return newCmptOptionList.concat(internalOptions);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner, normalizeToArray } from '../../util/model';\nvar innerColor = makeInner();\nvar innerDecal = makeInner();\n\nvar PaletteMixin = function () {\n  function PaletteMixin() {}\n\n  PaletteMixin.prototype.getColorFromPalette = function (name, scope, requestNum) {\n    var defaultPalette = normalizeToArray(this.get('color', true));\n    var layeredPalette = this.get('colorLayer', true);\n    return getFromPalette(this, innerColor, defaultPalette, layeredPalette, name, scope, requestNum);\n  };\n\n  PaletteMixin.prototype.clearColorPalette = function () {\n    clearPalette(this, innerColor);\n  };\n\n  return PaletteMixin;\n}();\n\nexport function getDecalFromPalette(ecModel, name, scope, requestNum) {\n  var defaultDecals = normalizeToArray(ecModel.get(['aria', 'decal', 'decals']));\n  return getFromPalette(ecModel, innerDecal, defaultDecals, null, name, scope, requestNum);\n}\n\nfunction getNearestPalette(palettes, requestColorNum) {\n  var paletteNum = palettes.length;\n\n  for (var i = 0; i < paletteNum; i++) {\n    if (palettes[i].length > requestColorNum) {\n      return palettes[i];\n    }\n  }\n\n  return palettes[paletteNum - 1];\n}\n\nfunction getFromPalette(that, inner, defaultPalette, layeredPalette, name, scope, requestNum) {\n  scope = scope || that;\n  var scopeFields = inner(scope);\n  var paletteIdx = scopeFields.paletteIdx || 0;\n  var paletteNameMap = scopeFields.paletteNameMap = scopeFields.paletteNameMap || {};\n\n  if (paletteNameMap.hasOwnProperty(name)) {\n    return paletteNameMap[name];\n  }\n\n  var palette = requestNum == null || !layeredPalette ? defaultPalette : getNearestPalette(layeredPalette, requestNum);\n  palette = palette || defaultPalette;\n\n  if (!palette || !palette.length) {\n    return;\n  }\n\n  var pickedPaletteItem = palette[paletteIdx];\n\n  if (name) {\n    paletteNameMap[name] = pickedPaletteItem;\n  }\n\n  scopeFields.paletteIdx = (paletteIdx + 1) % palette.length;\n  return pickedPaletteItem;\n}\n\nfunction clearPalette(that, inner) {\n  inner(that).paletteIdx = 0;\n  inner(that).paletteNameMap = {};\n}\n\nexport { PaletteMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { each, filter, isArray, isObject, isString, createHashMap, assert, clone, merge, extend, mixin, isFunction } from 'zrender/lib/core/util';\nimport * as modelUtil from '../util/model';\nimport Model from './Model';\nimport ComponentModel from './Component';\nimport globalDefault from './globalDefault';\nimport { resetSourceDefaulter } from '../data/helper/sourceHelper';\nimport { concatInternalOptions } from './internalComponentCreator';\nimport { PaletteMixin } from './mixin/palette';\nvar reCreateSeriesIndices;\nvar assertSeriesInitialized;\nvar initBase;\nvar OPTION_INNER_KEY = '\\0_ec_inner';\nvar OPTION_INNER_VALUE = 1;\n\nvar GlobalModel = function (_super) {\n  __extends(GlobalModel, _super);\n\n  function GlobalModel() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  GlobalModel.prototype.init = function (option, parentModel, ecModel, theme, locale, optionManager) {\n    theme = theme || {};\n    this.option = null;\n    this._theme = new Model(theme);\n    this._locale = new Model(locale);\n    this._optionManager = optionManager;\n  };\n\n  GlobalModel.prototype.setOption = function (option, opts, optionPreprocessorFuncs) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(option != null, 'option is null/undefined');\n      assert(option[OPTION_INNER_KEY] !== OPTION_INNER_VALUE, 'please use chart.getOption()');\n    }\n\n    var innerOpt = normalizeSetOptionInput(opts);\n\n    this._optionManager.setOption(option, optionPreprocessorFuncs, innerOpt);\n\n    this._resetOption(null, innerOpt);\n  };\n\n  GlobalModel.prototype.resetOption = function (type, opt) {\n    return this._resetOption(type, normalizeSetOptionInput(opt));\n  };\n\n  GlobalModel.prototype._resetOption = function (type, opt) {\n    var optionChanged = false;\n    var optionManager = this._optionManager;\n\n    if (!type || type === 'recreate') {\n      var baseOption = optionManager.mountOption(type === 'recreate');\n\n      if (!this.option || type === 'recreate') {\n        initBase(this, baseOption);\n      } else {\n        this.restoreData();\n\n        this._mergeOption(baseOption, opt);\n      }\n\n      optionChanged = true;\n    }\n\n    if (type === 'timeline' || type === 'media') {\n      this.restoreData();\n    }\n\n    if (!type || type === 'recreate' || type === 'timeline') {\n      var timelineOption = optionManager.getTimelineOption(this);\n\n      if (timelineOption) {\n        optionChanged = true;\n\n        this._mergeOption(timelineOption, opt);\n      }\n    }\n\n    if (!type || type === 'recreate' || type === 'media') {\n      var mediaOptions = optionManager.getMediaOption(this);\n\n      if (mediaOptions.length) {\n        each(mediaOptions, function (mediaOption) {\n          optionChanged = true;\n\n          this._mergeOption(mediaOption, opt);\n        }, this);\n      }\n    }\n\n    return optionChanged;\n  };\n\n  GlobalModel.prototype.mergeOption = function (option) {\n    this._mergeOption(option, null);\n  };\n\n  GlobalModel.prototype._mergeOption = function (newOption, opt) {\n    var option = this.option;\n    var componentsMap = this._componentsMap;\n    var componentsCount = this._componentsCount;\n    var newCmptTypes = [];\n    var newCmptTypeMap = createHashMap();\n    var replaceMergeMainTypeMap = opt && opt.replaceMergeMainTypeMap;\n    resetSourceDefaulter(this);\n    each(newOption, function (componentOption, mainType) {\n      if (componentOption == null) {\n        return;\n      }\n\n      if (!ComponentModel.hasClass(mainType)) {\n        option[mainType] = option[mainType] == null ? clone(componentOption) : merge(option[mainType], componentOption, true);\n      } else if (mainType) {\n        newCmptTypes.push(mainType);\n        newCmptTypeMap.set(mainType, true);\n      }\n    });\n\n    if (replaceMergeMainTypeMap) {\n      replaceMergeMainTypeMap.each(function (val, mainTypeInReplaceMerge) {\n        if (ComponentModel.hasClass(mainTypeInReplaceMerge) && !newCmptTypeMap.get(mainTypeInReplaceMerge)) {\n          newCmptTypes.push(mainTypeInReplaceMerge);\n          newCmptTypeMap.set(mainTypeInReplaceMerge, true);\n        }\n      });\n    }\n\n    ComponentModel.topologicalTravel(newCmptTypes, ComponentModel.getAllClassMainTypes(), visitComponent, this);\n\n    function visitComponent(mainType) {\n      var newCmptOptionList = concatInternalOptions(this, mainType, modelUtil.normalizeToArray(newOption[mainType]));\n      var oldCmptList = componentsMap.get(mainType);\n      var mergeMode = !oldCmptList ? 'replaceAll' : replaceMergeMainTypeMap && replaceMergeMainTypeMap.get(mainType) ? 'replaceMerge' : 'normalMerge';\n      var mappingResult = modelUtil.mappingToExists(oldCmptList, newCmptOptionList, mergeMode);\n      modelUtil.setComponentTypeToKeyInfo(mappingResult, mainType, ComponentModel);\n      option[mainType] = null;\n      componentsMap.set(mainType, null);\n      componentsCount.set(mainType, 0);\n      var optionsByMainType = [];\n      var cmptsByMainType = [];\n      var cmptsCountByMainType = 0;\n      each(mappingResult, function (resultItem, index) {\n        var componentModel = resultItem.existing;\n        var newCmptOption = resultItem.newOption;\n\n        if (!newCmptOption) {\n          if (componentModel) {\n            componentModel.mergeOption({}, this);\n            componentModel.optionUpdated({}, false);\n          }\n        } else {\n          var ComponentModelClass = ComponentModel.getClass(mainType, resultItem.keyInfo.subType, true);\n\n          if (componentModel && componentModel.constructor === ComponentModelClass) {\n            componentModel.name = resultItem.keyInfo.name;\n            componentModel.mergeOption(newCmptOption, this);\n            componentModel.optionUpdated(newCmptOption, false);\n          } else {\n            var extraOpt = extend({\n              componentIndex: index\n            }, resultItem.keyInfo);\n            componentModel = new ComponentModelClass(newCmptOption, this, this, extraOpt);\n            extend(componentModel, extraOpt);\n\n            if (resultItem.brandNew) {\n              componentModel.__requireNewView = true;\n            }\n\n            componentModel.init(newCmptOption, this, this);\n            componentModel.optionUpdated(null, true);\n          }\n        }\n\n        if (componentModel) {\n          optionsByMainType.push(componentModel.option);\n          cmptsByMainType.push(componentModel);\n          cmptsCountByMainType++;\n        } else {\n          optionsByMainType.push(void 0);\n          cmptsByMainType.push(void 0);\n        }\n      }, this);\n      option[mainType] = optionsByMainType;\n      componentsMap.set(mainType, cmptsByMainType);\n      componentsCount.set(mainType, cmptsCountByMainType);\n\n      if (mainType === 'series') {\n        reCreateSeriesIndices(this);\n      }\n    }\n\n    if (!this._seriesIndices) {\n      reCreateSeriesIndices(this);\n    }\n  };\n\n  GlobalModel.prototype.getOption = function () {\n    var option = clone(this.option);\n    each(option, function (optInMainType, mainType) {\n      if (ComponentModel.hasClass(mainType)) {\n        var opts = modelUtil.normalizeToArray(optInMainType);\n        var realLen = opts.length;\n        var metNonInner = false;\n\n        for (var i = realLen - 1; i >= 0; i--) {\n          if (opts[i] && !modelUtil.isComponentIdInternal(opts[i])) {\n            metNonInner = true;\n          } else {\n            opts[i] = null;\n            !metNonInner && realLen--;\n          }\n        }\n\n        opts.length = realLen;\n        option[mainType] = opts;\n      }\n    });\n    delete option[OPTION_INNER_KEY];\n    return option;\n  };\n\n  GlobalModel.prototype.getTheme = function () {\n    return this._theme;\n  };\n\n  GlobalModel.prototype.getLocaleModel = function () {\n    return this._locale;\n  };\n\n  GlobalModel.prototype.getLocale = function (localePosition) {\n    var locale = this.getLocaleModel();\n    return locale.get(localePosition);\n  };\n\n  GlobalModel.prototype.setUpdatePayload = function (payload) {\n    this._payload = payload;\n  };\n\n  GlobalModel.prototype.getUpdatePayload = function () {\n    return this._payload;\n  };\n\n  GlobalModel.prototype.getComponent = function (mainType, idx) {\n    var list = this._componentsMap.get(mainType);\n\n    if (list) {\n      var cmpt = list[idx || 0];\n\n      if (cmpt) {\n        return cmpt;\n      } else if (idx == null) {\n        for (var i = 0; i < list.length; i++) {\n          if (list[i]) {\n            return list[i];\n          }\n        }\n      }\n    }\n  };\n\n  GlobalModel.prototype.queryComponents = function (condition) {\n    var mainType = condition.mainType;\n\n    if (!mainType) {\n      return [];\n    }\n\n    var index = condition.index;\n    var id = condition.id;\n    var name = condition.name;\n\n    var cmpts = this._componentsMap.get(mainType);\n\n    if (!cmpts || !cmpts.length) {\n      return [];\n    }\n\n    var result;\n\n    if (index != null) {\n      result = [];\n      each(modelUtil.normalizeToArray(index), function (idx) {\n        cmpts[idx] && result.push(cmpts[idx]);\n      });\n    } else if (id != null) {\n      result = queryByIdOrName('id', id, cmpts);\n    } else if (name != null) {\n      result = queryByIdOrName('name', name, cmpts);\n    } else {\n      result = filter(cmpts, function (cmpt) {\n        return !!cmpt;\n      });\n    }\n\n    return filterBySubType(result, condition);\n  };\n\n  GlobalModel.prototype.findComponents = function (condition) {\n    var query = condition.query;\n    var mainType = condition.mainType;\n    var queryCond = getQueryCond(query);\n    var result = queryCond ? this.queryComponents(queryCond) : filter(this._componentsMap.get(mainType), function (cmpt) {\n      return !!cmpt;\n    });\n    return doFilter(filterBySubType(result, condition));\n\n    function getQueryCond(q) {\n      var indexAttr = mainType + 'Index';\n      var idAttr = mainType + 'Id';\n      var nameAttr = mainType + 'Name';\n      return q && (q[indexAttr] != null || q[idAttr] != null || q[nameAttr] != null) ? {\n        mainType: mainType,\n        index: q[indexAttr],\n        id: q[idAttr],\n        name: q[nameAttr]\n      } : null;\n    }\n\n    function doFilter(res) {\n      return condition.filter ? filter(res, condition.filter) : res;\n    }\n  };\n\n  GlobalModel.prototype.eachComponent = function (mainType, cb, context) {\n    var componentsMap = this._componentsMap;\n\n    if (isFunction(mainType)) {\n      var ctxForAll_1 = cb;\n      var cbForAll_1 = mainType;\n      componentsMap.each(function (cmpts, componentType) {\n        for (var i = 0; cmpts && i < cmpts.length; i++) {\n          var cmpt = cmpts[i];\n          cmpt && cbForAll_1.call(ctxForAll_1, componentType, cmpt, cmpt.componentIndex);\n        }\n      });\n    } else {\n      var cmpts = isString(mainType) ? componentsMap.get(mainType) : isObject(mainType) ? this.findComponents(mainType) : null;\n\n      for (var i = 0; cmpts && i < cmpts.length; i++) {\n        var cmpt = cmpts[i];\n        cmpt && cb.call(context, cmpt, cmpt.componentIndex);\n      }\n    }\n  };\n\n  GlobalModel.prototype.getSeriesByName = function (name) {\n    var nameStr = modelUtil.convertOptionIdName(name, null);\n    return filter(this._componentsMap.get('series'), function (oneSeries) {\n      return !!oneSeries && nameStr != null && oneSeries.name === nameStr;\n    });\n  };\n\n  GlobalModel.prototype.getSeriesByIndex = function (seriesIndex) {\n    return this._componentsMap.get('series')[seriesIndex];\n  };\n\n  GlobalModel.prototype.getSeriesByType = function (subType) {\n    return filter(this._componentsMap.get('series'), function (oneSeries) {\n      return !!oneSeries && oneSeries.subType === subType;\n    });\n  };\n\n  GlobalModel.prototype.getSeries = function () {\n    return filter(this._componentsMap.get('series').slice(), function (oneSeries) {\n      return !!oneSeries;\n    });\n  };\n\n  GlobalModel.prototype.getSeriesCount = function () {\n    return this._componentsCount.get('series');\n  };\n\n  GlobalModel.prototype.eachSeries = function (cb, context) {\n    assertSeriesInitialized(this);\n    each(this._seriesIndices, function (rawSeriesIndex) {\n      var series = this._componentsMap.get('series')[rawSeriesIndex];\n\n      cb.call(context, series, rawSeriesIndex);\n    }, this);\n  };\n\n  GlobalModel.prototype.eachRawSeries = function (cb, context) {\n    each(this._componentsMap.get('series'), function (series) {\n      series && cb.call(context, series, series.componentIndex);\n    });\n  };\n\n  GlobalModel.prototype.eachSeriesByType = function (subType, cb, context) {\n    assertSeriesInitialized(this);\n    each(this._seriesIndices, function (rawSeriesIndex) {\n      var series = this._componentsMap.get('series')[rawSeriesIndex];\n\n      if (series.subType === subType) {\n        cb.call(context, series, rawSeriesIndex);\n      }\n    }, this);\n  };\n\n  GlobalModel.prototype.eachRawSeriesByType = function (subType, cb, context) {\n    return each(this.getSeriesByType(subType), cb, context);\n  };\n\n  GlobalModel.prototype.isSeriesFiltered = function (seriesModel) {\n    assertSeriesInitialized(this);\n    return this._seriesIndicesMap.get(seriesModel.componentIndex) == null;\n  };\n\n  GlobalModel.prototype.getCurrentSeriesIndices = function () {\n    return (this._seriesIndices || []).slice();\n  };\n\n  GlobalModel.prototype.filterSeries = function (cb, context) {\n    assertSeriesInitialized(this);\n    var newSeriesIndices = [];\n    each(this._seriesIndices, function (seriesRawIdx) {\n      var series = this._componentsMap.get('series')[seriesRawIdx];\n\n      cb.call(context, series, seriesRawIdx) && newSeriesIndices.push(seriesRawIdx);\n    }, this);\n    this._seriesIndices = newSeriesIndices;\n    this._seriesIndicesMap = createHashMap(newSeriesIndices);\n  };\n\n  GlobalModel.prototype.restoreData = function (payload) {\n    reCreateSeriesIndices(this);\n    var componentsMap = this._componentsMap;\n    var componentTypes = [];\n    componentsMap.each(function (components, componentType) {\n      if (ComponentModel.hasClass(componentType)) {\n        componentTypes.push(componentType);\n      }\n    });\n    ComponentModel.topologicalTravel(componentTypes, ComponentModel.getAllClassMainTypes(), function (componentType) {\n      each(componentsMap.get(componentType), function (component) {\n        if (component && (componentType !== 'series' || !isNotTargetSeries(component, payload))) {\n          component.restoreData();\n        }\n      });\n    });\n  };\n\n  GlobalModel.internalField = function () {\n    reCreateSeriesIndices = function (ecModel) {\n      var seriesIndices = ecModel._seriesIndices = [];\n      each(ecModel._componentsMap.get('series'), function (series) {\n        series && seriesIndices.push(series.componentIndex);\n      });\n      ecModel._seriesIndicesMap = createHashMap(seriesIndices);\n    };\n\n    assertSeriesInitialized = function (ecModel) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (!ecModel._seriesIndices) {\n          throw new Error('Option should contains series.');\n        }\n      }\n    };\n\n    initBase = function (ecModel, baseOption) {\n      ecModel.option = {};\n      ecModel.option[OPTION_INNER_KEY] = OPTION_INNER_VALUE;\n      ecModel._componentsMap = createHashMap({\n        series: []\n      });\n      ecModel._componentsCount = createHashMap();\n      var airaOption = baseOption.aria;\n\n      if (isObject(airaOption) && airaOption.enabled == null) {\n        airaOption.enabled = true;\n      }\n\n      mergeTheme(baseOption, ecModel._theme.option);\n      merge(baseOption, globalDefault, false);\n\n      ecModel._mergeOption(baseOption, null);\n    };\n  }();\n\n  return GlobalModel;\n}(Model);\n\nfunction isNotTargetSeries(seriesModel, payload) {\n  if (payload) {\n    var index = payload.seriesIndex;\n    var id = payload.seriesId;\n    var name_1 = payload.seriesName;\n    return index != null && seriesModel.componentIndex !== index || id != null && seriesModel.id !== id || name_1 != null && seriesModel.name !== name_1;\n  }\n}\n\nfunction mergeTheme(option, theme) {\n  var notMergeColorLayer = option.color && !option.colorLayer;\n  each(theme, function (themeItem, name) {\n    if (name === 'colorLayer' && notMergeColorLayer) {\n      return;\n    }\n\n    if (!ComponentModel.hasClass(name)) {\n      if (typeof themeItem === 'object') {\n        option[name] = !option[name] ? clone(themeItem) : merge(option[name], themeItem, false);\n      } else {\n        if (option[name] == null) {\n          option[name] = themeItem;\n        }\n      }\n    }\n  });\n}\n\nfunction queryByIdOrName(attr, idOrName, cmpts) {\n  if (isArray(idOrName)) {\n    var keyMap_1 = createHashMap();\n    each(idOrName, function (idOrNameItem) {\n      if (idOrNameItem != null) {\n        var idName = modelUtil.convertOptionIdName(idOrNameItem, null);\n        idName != null && keyMap_1.set(idOrNameItem, true);\n      }\n    });\n    return filter(cmpts, function (cmpt) {\n      return cmpt && keyMap_1.get(cmpt[attr]);\n    });\n  } else {\n    var idName_1 = modelUtil.convertOptionIdName(idOrName, null);\n    return filter(cmpts, function (cmpt) {\n      return cmpt && idName_1 != null && cmpt[attr] === idName_1;\n    });\n  }\n}\n\nfunction filterBySubType(components, condition) {\n  return condition.hasOwnProperty('subType') ? filter(components, function (cmpt) {\n    return cmpt && cmpt.subType === condition.subType;\n  }) : components;\n}\n\nfunction normalizeSetOptionInput(opts) {\n  var replaceMergeMainTypeMap = createHashMap();\n  opts && each(modelUtil.normalizeToArray(opts.replaceMerge), function (mainType) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(ComponentModel.hasClass(mainType), '\"' + mainType + '\" is not valid component main type in \"replaceMerge\"');\n    }\n\n    replaceMergeMainTypeMap.set(mainType, true);\n  });\n  return {\n    replaceMergeMainTypeMap: replaceMergeMainTypeMap\n  };\n}\n\nmixin(GlobalModel, PaletteMixin);\nexport default GlobalModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar availableMethods = ['getDom', 'getZr', 'getWidth', 'getHeight', 'getDevicePixelRatio', 'dispatchAction', 'isDisposed', 'on', 'off', 'getDataURL', 'getConnectedDataURL', 'getOption', 'getId', 'updateLabelLayout'];\n\nvar ExtensionAPI = function () {\n  function ExtensionAPI(ecInstance) {\n    zrUtil.each(availableMethods, function (methodName) {\n      this[methodName] = zrUtil.bind(ecInstance[methodName], ecInstance);\n    }, this);\n  }\n\n  return ExtensionAPI;\n}();\n\nexport default ExtensionAPI;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar coordinateSystemCreators = {};\n\nvar CoordinateSystemManager = function () {\n  function CoordinateSystemManager() {\n    this._coordinateSystems = [];\n  }\n\n  CoordinateSystemManager.prototype.create = function (ecModel, api) {\n    var coordinateSystems = [];\n    zrUtil.each(coordinateSystemCreators, function (creater, type) {\n      var list = creater.create(ecModel, api);\n      coordinateSystems = coordinateSystems.concat(list || []);\n    });\n    this._coordinateSystems = coordinateSystems;\n  };\n\n  CoordinateSystemManager.prototype.update = function (ecModel, api) {\n    zrUtil.each(this._coordinateSystems, function (coordSys) {\n      coordSys.update && coordSys.update(ecModel, api);\n    });\n  };\n\n  CoordinateSystemManager.prototype.getCoordinateSystems = function () {\n    return this._coordinateSystems.slice();\n  };\n\n  CoordinateSystemManager.register = function (type, creator) {\n    coordinateSystemCreators[type] = creator;\n  };\n\n  CoordinateSystemManager.get = function (type) {\n    return coordinateSystemCreators[type];\n  };\n\n  return CoordinateSystemManager;\n}();\n\nexport default CoordinateSystemManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { normalizeToArray } from '../util/model';\nimport { each, clone, map, isTypedArray, setAsPrimitive, isArray, isObject } from 'zrender/lib/core/util';\nimport { error } from '../util/log';\nvar QUERY_REG = /^(min|max)?(.+)$/;\n\nvar OptionManager = function () {\n  function OptionManager(api) {\n    this._timelineOptions = [];\n    this._mediaList = [];\n    this._currentMediaIndices = [];\n    this._api = api;\n  }\n\n  OptionManager.prototype.setOption = function (rawOption, optionPreprocessorFuncs, opt) {\n    if (rawOption) {\n      each(normalizeToArray(rawOption.series), function (series) {\n        series && series.data && isTypedArray(series.data) && setAsPrimitive(series.data);\n      });\n      each(normalizeToArray(rawOption.dataset), function (dataset) {\n        dataset && dataset.source && isTypedArray(dataset.source) && setAsPrimitive(dataset.source);\n      });\n    }\n\n    rawOption = clone(rawOption);\n    var optionBackup = this._optionBackup;\n    var newParsedOption = parseRawOption(rawOption, optionPreprocessorFuncs, !optionBackup);\n    this._newBaseOption = newParsedOption.baseOption;\n\n    if (optionBackup) {\n      if (newParsedOption.timelineOptions.length) {\n        optionBackup.timelineOptions = newParsedOption.timelineOptions;\n      }\n\n      if (newParsedOption.mediaList.length) {\n        optionBackup.mediaList = newParsedOption.mediaList;\n      }\n\n      if (newParsedOption.mediaDefault) {\n        optionBackup.mediaDefault = newParsedOption.mediaDefault;\n      }\n    } else {\n      this._optionBackup = newParsedOption;\n    }\n  };\n\n  OptionManager.prototype.mountOption = function (isRecreate) {\n    var optionBackup = this._optionBackup;\n    this._timelineOptions = optionBackup.timelineOptions;\n    this._mediaList = optionBackup.mediaList;\n    this._mediaDefault = optionBackup.mediaDefault;\n    this._currentMediaIndices = [];\n    return clone(isRecreate ? optionBackup.baseOption : this._newBaseOption);\n  };\n\n  OptionManager.prototype.getTimelineOption = function (ecModel) {\n    var option;\n    var timelineOptions = this._timelineOptions;\n\n    if (timelineOptions.length) {\n      var timelineModel = ecModel.getComponent('timeline');\n\n      if (timelineModel) {\n        option = clone(timelineOptions[timelineModel.getCurrentIndex()]);\n      }\n    }\n\n    return option;\n  };\n\n  OptionManager.prototype.getMediaOption = function (ecModel) {\n    var ecWidth = this._api.getWidth();\n\n    var ecHeight = this._api.getHeight();\n\n    var mediaList = this._mediaList;\n    var mediaDefault = this._mediaDefault;\n    var indices = [];\n    var result = [];\n\n    if (!mediaList.length && !mediaDefault) {\n      return result;\n    }\n\n    for (var i = 0, len = mediaList.length; i < len; i++) {\n      if (applyMediaQuery(mediaList[i].query, ecWidth, ecHeight)) {\n        indices.push(i);\n      }\n    }\n\n    if (!indices.length && mediaDefault) {\n      indices = [-1];\n    }\n\n    if (indices.length && !indicesEquals(indices, this._currentMediaIndices)) {\n      result = map(indices, function (index) {\n        return clone(index === -1 ? mediaDefault.option : mediaList[index].option);\n      });\n    }\n\n    this._currentMediaIndices = indices;\n    return result;\n  };\n\n  return OptionManager;\n}();\n\nfunction parseRawOption(rawOption, optionPreprocessorFuncs, isNew) {\n  var mediaList = [];\n  var mediaDefault;\n  var baseOption;\n  var declaredBaseOption = rawOption.baseOption;\n  var timelineOnRoot = rawOption.timeline;\n  var timelineOptionsOnRoot = rawOption.options;\n  var mediaOnRoot = rawOption.media;\n  var hasMedia = !!rawOption.media;\n  var hasTimeline = !!(timelineOptionsOnRoot || timelineOnRoot || declaredBaseOption && declaredBaseOption.timeline);\n\n  if (declaredBaseOption) {\n    baseOption = declaredBaseOption;\n\n    if (!baseOption.timeline) {\n      baseOption.timeline = timelineOnRoot;\n    }\n  } else {\n    if (hasTimeline || hasMedia) {\n      rawOption.options = rawOption.media = null;\n    }\n\n    baseOption = rawOption;\n  }\n\n  if (hasMedia) {\n    if (isArray(mediaOnRoot)) {\n      each(mediaOnRoot, function (singleMedia) {\n        if (process.env.NODE_ENV !== 'production') {\n          if (singleMedia && !singleMedia.option && isObject(singleMedia.query) && isObject(singleMedia.query.option)) {\n            error('Illegal media option. Must be like { media: [ { query: {}, option: {} } ] }');\n          }\n        }\n\n        if (singleMedia && singleMedia.option) {\n          if (singleMedia.query) {\n            mediaList.push(singleMedia);\n          } else if (!mediaDefault) {\n            mediaDefault = singleMedia;\n          }\n        }\n      });\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        error('Illegal media option. Must be an array. Like { media: [ {...}, {...} ] }');\n      }\n    }\n  }\n\n  doPreprocess(baseOption);\n  each(timelineOptionsOnRoot, function (option) {\n    return doPreprocess(option);\n  });\n  each(mediaList, function (media) {\n    return doPreprocess(media.option);\n  });\n\n  function doPreprocess(option) {\n    each(optionPreprocessorFuncs, function (preProcess) {\n      preProcess(option, isNew);\n    });\n  }\n\n  return {\n    baseOption: baseOption,\n    timelineOptions: timelineOptionsOnRoot || [],\n    mediaDefault: mediaDefault,\n    mediaList: mediaList\n  };\n}\n\nfunction applyMediaQuery(query, ecWidth, ecHeight) {\n  var realMap = {\n    width: ecWidth,\n    height: ecHeight,\n    aspectratio: ecWidth / ecHeight\n  };\n  var applicatable = true;\n  each(query, function (value, attr) {\n    var matched = attr.match(QUERY_REG);\n\n    if (!matched || !matched[1] || !matched[2]) {\n      return;\n    }\n\n    var operator = matched[1];\n    var realAttr = matched[2].toLowerCase();\n\n    if (!compare(realMap[realAttr], value, operator)) {\n      applicatable = false;\n    }\n  });\n  return applicatable;\n}\n\nfunction compare(real, expect, operator) {\n  if (operator === 'min') {\n    return real >= expect;\n  } else if (operator === 'max') {\n    return real <= expect;\n  } else {\n    return real === expect;\n  }\n}\n\nfunction indicesEquals(indices1, indices2) {\n  return indices1.join(',') === indices2.join(',');\n}\n\nexport default OptionManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nimport { deprecateLog, deprecateReplaceLog } from '../../util/log';\nvar each = zrUtil.each;\nvar isObject = zrUtil.isObject;\nvar POSSIBLE_STYLES = ['areaStyle', 'lineStyle', 'nodeStyle', 'linkStyle', 'chordStyle', 'label', 'labelLine'];\n\nfunction compatEC2ItemStyle(opt) {\n  var itemStyleOpt = opt && opt.itemStyle;\n\n  if (!itemStyleOpt) {\n    return;\n  }\n\n  for (var i = 0, len = POSSIBLE_STYLES.length; i < len; i++) {\n    var styleName = POSSIBLE_STYLES[i];\n    var normalItemStyleOpt = itemStyleOpt.normal;\n    var emphasisItemStyleOpt = itemStyleOpt.emphasis;\n\n    if (normalItemStyleOpt && normalItemStyleOpt[styleName]) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateReplaceLog(\"itemStyle.normal.\" + styleName, styleName);\n      }\n\n      opt[styleName] = opt[styleName] || {};\n\n      if (!opt[styleName].normal) {\n        opt[styleName].normal = normalItemStyleOpt[styleName];\n      } else {\n        zrUtil.merge(opt[styleName].normal, normalItemStyleOpt[styleName]);\n      }\n\n      normalItemStyleOpt[styleName] = null;\n    }\n\n    if (emphasisItemStyleOpt && emphasisItemStyleOpt[styleName]) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateReplaceLog(\"itemStyle.emphasis.\" + styleName, \"emphasis.\" + styleName);\n      }\n\n      opt[styleName] = opt[styleName] || {};\n\n      if (!opt[styleName].emphasis) {\n        opt[styleName].emphasis = emphasisItemStyleOpt[styleName];\n      } else {\n        zrUtil.merge(opt[styleName].emphasis, emphasisItemStyleOpt[styleName]);\n      }\n\n      emphasisItemStyleOpt[styleName] = null;\n    }\n  }\n}\n\nfunction convertNormalEmphasis(opt, optType, useExtend) {\n  if (opt && opt[optType] && (opt[optType].normal || opt[optType].emphasis)) {\n    var normalOpt = opt[optType].normal;\n    var emphasisOpt = opt[optType].emphasis;\n\n    if (normalOpt) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateLog(\"'normal' hierarchy in \" + optType + \" has been removed since 4.0. All style properties are configured in \" + optType + \" directly now.\");\n      }\n\n      if (useExtend) {\n        opt[optType].normal = opt[optType].emphasis = null;\n        zrUtil.defaults(opt[optType], normalOpt);\n      } else {\n        opt[optType] = normalOpt;\n      }\n    }\n\n    if (emphasisOpt) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateLog(optType + \".emphasis has been changed to emphasis.\" + optType + \" since 4.0\");\n      }\n\n      opt.emphasis = opt.emphasis || {};\n      opt.emphasis[optType] = emphasisOpt;\n\n      if (emphasisOpt.focus) {\n        opt.emphasis.focus = emphasisOpt.focus;\n      }\n\n      if (emphasisOpt.blurScope) {\n        opt.emphasis.blurScope = emphasisOpt.blurScope;\n      }\n    }\n  }\n}\n\nfunction removeEC3NormalStatus(opt) {\n  convertNormalEmphasis(opt, 'itemStyle');\n  convertNormalEmphasis(opt, 'lineStyle');\n  convertNormalEmphasis(opt, 'areaStyle');\n  convertNormalEmphasis(opt, 'label');\n  convertNormalEmphasis(opt, 'labelLine');\n  convertNormalEmphasis(opt, 'upperLabel');\n  convertNormalEmphasis(opt, 'edgeLabel');\n}\n\nfunction compatTextStyle(opt, propName) {\n  var labelOptSingle = isObject(opt) && opt[propName];\n  var textStyle = isObject(labelOptSingle) && labelOptSingle.textStyle;\n\n  if (textStyle) {\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateLog(\"textStyle hierarchy in \" + propName + \" has been removed since 4.0. All textStyle properties are configured in \" + propName + \" directly now.\");\n    }\n\n    for (var i = 0, len = modelUtil.TEXT_STYLE_OPTIONS.length; i < len; i++) {\n      var textPropName = modelUtil.TEXT_STYLE_OPTIONS[i];\n\n      if (textStyle.hasOwnProperty(textPropName)) {\n        labelOptSingle[textPropName] = textStyle[textPropName];\n      }\n    }\n  }\n}\n\nfunction compatEC3CommonStyles(opt) {\n  if (opt) {\n    removeEC3NormalStatus(opt);\n    compatTextStyle(opt, 'label');\n    opt.emphasis && compatTextStyle(opt.emphasis, 'label');\n  }\n}\n\nfunction processSeries(seriesOpt) {\n  if (!isObject(seriesOpt)) {\n    return;\n  }\n\n  compatEC2ItemStyle(seriesOpt);\n  removeEC3NormalStatus(seriesOpt);\n  compatTextStyle(seriesOpt, 'label');\n  compatTextStyle(seriesOpt, 'upperLabel');\n  compatTextStyle(seriesOpt, 'edgeLabel');\n\n  if (seriesOpt.emphasis) {\n    compatTextStyle(seriesOpt.emphasis, 'label');\n    compatTextStyle(seriesOpt.emphasis, 'upperLabel');\n    compatTextStyle(seriesOpt.emphasis, 'edgeLabel');\n  }\n\n  var markPoint = seriesOpt.markPoint;\n\n  if (markPoint) {\n    compatEC2ItemStyle(markPoint);\n    compatEC3CommonStyles(markPoint);\n  }\n\n  var markLine = seriesOpt.markLine;\n\n  if (markLine) {\n    compatEC2ItemStyle(markLine);\n    compatEC3CommonStyles(markLine);\n  }\n\n  var markArea = seriesOpt.markArea;\n\n  if (markArea) {\n    compatEC3CommonStyles(markArea);\n  }\n\n  var data = seriesOpt.data;\n\n  if (seriesOpt.type === 'graph') {\n    data = data || seriesOpt.nodes;\n    var edgeData = seriesOpt.links || seriesOpt.edges;\n\n    if (edgeData && !zrUtil.isTypedArray(edgeData)) {\n      for (var i = 0; i < edgeData.length; i++) {\n        compatEC3CommonStyles(edgeData[i]);\n      }\n    }\n\n    zrUtil.each(seriesOpt.categories, function (opt) {\n      removeEC3NormalStatus(opt);\n    });\n  }\n\n  if (data && !zrUtil.isTypedArray(data)) {\n    for (var i = 0; i < data.length; i++) {\n      compatEC3CommonStyles(data[i]);\n    }\n  }\n\n  markPoint = seriesOpt.markPoint;\n\n  if (markPoint && markPoint.data) {\n    var mpData = markPoint.data;\n\n    for (var i = 0; i < mpData.length; i++) {\n      compatEC3CommonStyles(mpData[i]);\n    }\n  }\n\n  markLine = seriesOpt.markLine;\n\n  if (markLine && markLine.data) {\n    var mlData = markLine.data;\n\n    for (var i = 0; i < mlData.length; i++) {\n      if (zrUtil.isArray(mlData[i])) {\n        compatEC3CommonStyles(mlData[i][0]);\n        compatEC3CommonStyles(mlData[i][1]);\n      } else {\n        compatEC3CommonStyles(mlData[i]);\n      }\n    }\n  }\n\n  if (seriesOpt.type === 'gauge') {\n    compatTextStyle(seriesOpt, 'axisLabel');\n    compatTextStyle(seriesOpt, 'title');\n    compatTextStyle(seriesOpt, 'detail');\n  } else if (seriesOpt.type === 'treemap') {\n    convertNormalEmphasis(seriesOpt.breadcrumb, 'itemStyle');\n    zrUtil.each(seriesOpt.levels, function (opt) {\n      removeEC3NormalStatus(opt);\n    });\n  } else if (seriesOpt.type === 'tree') {\n    removeEC3NormalStatus(seriesOpt.leaves);\n  }\n}\n\nfunction toArr(o) {\n  return zrUtil.isArray(o) ? o : o ? [o] : [];\n}\n\nfunction toObj(o) {\n  return (zrUtil.isArray(o) ? o[0] : o) || {};\n}\n\nexport default function globalCompatStyle(option, isTheme) {\n  each(toArr(option.series), function (seriesOpt) {\n    isObject(seriesOpt) && processSeries(seriesOpt);\n  });\n  var axes = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'parallelAxis', 'radar'];\n  isTheme && axes.push('valueAxis', 'categoryAxis', 'logAxis', 'timeAxis');\n  each(axes, function (axisName) {\n    each(toArr(option[axisName]), function (axisOpt) {\n      if (axisOpt) {\n        compatTextStyle(axisOpt, 'axisLabel');\n        compatTextStyle(axisOpt.axisPointer, 'label');\n      }\n    });\n  });\n  each(toArr(option.parallel), function (parallelOpt) {\n    var parallelAxisDefault = parallelOpt && parallelOpt.parallelAxisDefault;\n    compatTextStyle(parallelAxisDefault, 'axisLabel');\n    compatTextStyle(parallelAxisDefault && parallelAxisDefault.axisPointer, 'label');\n  });\n  each(toArr(option.calendar), function (calendarOpt) {\n    convertNormalEmphasis(calendarOpt, 'itemStyle');\n    compatTextStyle(calendarOpt, 'dayLabel');\n    compatTextStyle(calendarOpt, 'monthLabel');\n    compatTextStyle(calendarOpt, 'yearLabel');\n  });\n  each(toArr(option.radar), function (radarOpt) {\n    compatTextStyle(radarOpt, 'name');\n\n    if (radarOpt.name && radarOpt.axisName == null) {\n      radarOpt.axisName = radarOpt.name;\n      delete radarOpt.name;\n\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateLog('name property in radar component has been changed to axisName');\n      }\n    }\n\n    if (radarOpt.nameGap != null && radarOpt.axisNameGap == null) {\n      radarOpt.axisNameGap = radarOpt.nameGap;\n      delete radarOpt.nameGap;\n\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateLog('nameGap property in radar component has been changed to axisNameGap');\n      }\n    }\n  });\n  each(toArr(option.geo), function (geoOpt) {\n    if (isObject(geoOpt)) {\n      compatEC3CommonStyles(geoOpt);\n      each(toArr(geoOpt.regions), function (regionObj) {\n        compatEC3CommonStyles(regionObj);\n      });\n    }\n  });\n  each(toArr(option.timeline), function (timelineOpt) {\n    compatEC3CommonStyles(timelineOpt);\n    convertNormalEmphasis(timelineOpt, 'label');\n    convertNormalEmphasis(timelineOpt, 'itemStyle');\n    convertNormalEmphasis(timelineOpt, 'controlStyle', true);\n    var data = timelineOpt.data;\n    zrUtil.isArray(data) && zrUtil.each(data, function (item) {\n      if (zrUtil.isObject(item)) {\n        convertNormalEmphasis(item, 'label');\n        convertNormalEmphasis(item, 'itemStyle');\n      }\n    });\n  });\n  each(toArr(option.toolbox), function (toolboxOpt) {\n    convertNormalEmphasis(toolboxOpt, 'iconStyle');\n    each(toolboxOpt.feature, function (featureOpt) {\n      convertNormalEmphasis(featureOpt, 'iconStyle');\n    });\n  });\n  compatTextStyle(toObj(option.axisPointer), 'label');\n  compatTextStyle(toObj(option.tooltip).axisPointer, 'label');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, isArray, isObject, isTypedArray, defaults } from 'zrender/lib/core/util';\nimport compatStyle from './helper/compatStyle';\nimport { normalizeToArray } from '../util/model';\nimport { deprecateLog, deprecateReplaceLog } from '../util/log';\n\nfunction get(opt, path) {\n  var pathArr = path.split(',');\n  var obj = opt;\n\n  for (var i = 0; i < pathArr.length; i++) {\n    obj = obj && obj[pathArr[i]];\n\n    if (obj == null) {\n      break;\n    }\n  }\n\n  return obj;\n}\n\nfunction set(opt, path, val, overwrite) {\n  var pathArr = path.split(',');\n  var obj = opt;\n  var key;\n  var i = 0;\n\n  for (; i < pathArr.length - 1; i++) {\n    key = pathArr[i];\n\n    if (obj[key] == null) {\n      obj[key] = {};\n    }\n\n    obj = obj[key];\n  }\n\n  if (overwrite || obj[pathArr[i]] == null) {\n    obj[pathArr[i]] = val;\n  }\n}\n\nfunction compatLayoutProperties(option) {\n  option && each(LAYOUT_PROPERTIES, function (prop) {\n    if (prop[0] in option && !(prop[1] in option)) {\n      option[prop[1]] = option[prop[0]];\n    }\n  });\n}\n\nvar LAYOUT_PROPERTIES = [['x', 'left'], ['y', 'top'], ['x2', 'right'], ['y2', 'bottom']];\nvar COMPATITABLE_COMPONENTS = ['grid', 'geo', 'parallel', 'legend', 'toolbox', 'title', 'visualMap', 'dataZoom', 'timeline'];\nvar BAR_ITEM_STYLE_MAP = [['borderRadius', 'barBorderRadius'], ['borderColor', 'barBorderColor'], ['borderWidth', 'barBorderWidth']];\n\nfunction compatBarItemStyle(option) {\n  var itemStyle = option && option.itemStyle;\n\n  if (itemStyle) {\n    for (var i = 0; i < BAR_ITEM_STYLE_MAP.length; i++) {\n      var oldName = BAR_ITEM_STYLE_MAP[i][1];\n      var newName = BAR_ITEM_STYLE_MAP[i][0];\n\n      if (itemStyle[oldName] != null) {\n        itemStyle[newName] = itemStyle[oldName];\n\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog(oldName, newName);\n        }\n      }\n    }\n  }\n}\n\nfunction compatPieLabel(option) {\n  if (!option) {\n    return;\n  }\n\n  if (option.alignTo === 'edge' && option.margin != null && option.edgeDistance == null) {\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateReplaceLog('label.margin', 'label.edgeDistance', 'pie');\n    }\n\n    option.edgeDistance = option.margin;\n  }\n}\n\nfunction compatSunburstState(option) {\n  if (!option) {\n    return;\n  }\n\n  if (option.downplay && !option.blur) {\n    option.blur = option.downplay;\n\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateReplaceLog('downplay', 'blur', 'sunburst');\n    }\n  }\n}\n\nfunction compatGraphFocus(option) {\n  if (!option) {\n    return;\n  }\n\n  if (option.focusNodeAdjacency != null) {\n    option.emphasis = option.emphasis || {};\n\n    if (option.emphasis.focus == null) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateReplaceLog('focusNodeAdjacency', 'emphasis: { focus: \\'adjacency\\'}', 'graph/sankey');\n      }\n\n      option.emphasis.focus = 'adjacency';\n    }\n  }\n}\n\nfunction traverseTree(data, cb) {\n  if (data) {\n    for (var i = 0; i < data.length; i++) {\n      cb(data[i]);\n      data[i] && traverseTree(data[i].children, cb);\n    }\n  }\n}\n\nexport default function globalBackwardCompat(option, isTheme) {\n  compatStyle(option, isTheme);\n  option.series = normalizeToArray(option.series);\n  each(option.series, function (seriesOpt) {\n    if (!isObject(seriesOpt)) {\n      return;\n    }\n\n    var seriesType = seriesOpt.type;\n\n    if (seriesType === 'line') {\n      if (seriesOpt.clipOverflow != null) {\n        seriesOpt.clip = seriesOpt.clipOverflow;\n\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog('clipOverflow', 'clip', 'line');\n        }\n      }\n    } else if (seriesType === 'pie' || seriesType === 'gauge') {\n      if (seriesOpt.clockWise != null) {\n        seriesOpt.clockwise = seriesOpt.clockWise;\n\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog('clockWise', 'clockwise');\n        }\n      }\n\n      compatPieLabel(seriesOpt.label);\n      var data = seriesOpt.data;\n\n      if (data && !isTypedArray(data)) {\n        for (var i = 0; i < data.length; i++) {\n          compatPieLabel(data[i]);\n        }\n      }\n\n      if (seriesOpt.hoverOffset != null) {\n        seriesOpt.emphasis = seriesOpt.emphasis || {};\n\n        if (seriesOpt.emphasis.scaleSize = null) {\n          if (process.env.NODE_ENV !== 'production') {\n            deprecateReplaceLog('hoverOffset', 'emphasis.scaleSize');\n          }\n\n          seriesOpt.emphasis.scaleSize = seriesOpt.hoverOffset;\n        }\n      }\n    } else if (seriesType === 'gauge') {\n      var pointerColor = get(seriesOpt, 'pointer.color');\n      pointerColor != null && set(seriesOpt, 'itemStyle.color', pointerColor);\n    } else if (seriesType === 'bar') {\n      compatBarItemStyle(seriesOpt);\n      compatBarItemStyle(seriesOpt.backgroundStyle);\n      compatBarItemStyle(seriesOpt.emphasis);\n      var data = seriesOpt.data;\n\n      if (data && !isTypedArray(data)) {\n        for (var i = 0; i < data.length; i++) {\n          if (typeof data[i] === 'object') {\n            compatBarItemStyle(data[i]);\n            compatBarItemStyle(data[i] && data[i].emphasis);\n          }\n        }\n      }\n    } else if (seriesType === 'sunburst') {\n      var highlightPolicy = seriesOpt.highlightPolicy;\n\n      if (highlightPolicy) {\n        seriesOpt.emphasis = seriesOpt.emphasis || {};\n\n        if (!seriesOpt.emphasis.focus) {\n          seriesOpt.emphasis.focus = highlightPolicy;\n\n          if (process.env.NODE_ENV !== 'production') {\n            deprecateReplaceLog('highlightPolicy', 'emphasis.focus', 'sunburst');\n          }\n        }\n      }\n\n      compatSunburstState(seriesOpt);\n      traverseTree(seriesOpt.data, compatSunburstState);\n    } else if (seriesType === 'graph' || seriesType === 'sankey') {\n      compatGraphFocus(seriesOpt);\n    } else if (seriesType === 'map') {\n      if (seriesOpt.mapType && !seriesOpt.map) {\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog('mapType', 'map', 'map');\n        }\n\n        seriesOpt.map = seriesOpt.mapType;\n      }\n\n      if (seriesOpt.mapLocation) {\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateLog('`mapLocation` is not used anymore.');\n        }\n\n        defaults(seriesOpt, seriesOpt.mapLocation);\n      }\n    }\n\n    if (seriesOpt.hoverAnimation != null) {\n      seriesOpt.emphasis = seriesOpt.emphasis || {};\n\n      if (seriesOpt.emphasis && seriesOpt.emphasis.scale == null) {\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog('hoverAnimation', 'emphasis.scale');\n        }\n\n        seriesOpt.emphasis.scale = seriesOpt.hoverAnimation;\n      }\n    }\n\n    compatLayoutProperties(seriesOpt);\n  });\n\n  if (option.dataRange) {\n    option.visualMap = option.dataRange;\n  }\n\n  each(COMPATITABLE_COMPONENTS, function (componentName) {\n    var options = option[componentName];\n\n    if (options) {\n      if (!isArray(options)) {\n        options = [options];\n      }\n\n      each(options, function (option) {\n        compatLayoutProperties(option);\n      });\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, each } from 'zrender/lib/core/util';\nexport default function dataStack(ecModel) {\n  var stackInfoMap = createHashMap();\n  ecModel.eachSeries(function (seriesModel) {\n    var stack = seriesModel.get('stack');\n\n    if (stack) {\n      var stackInfoList = stackInfoMap.get(stack) || stackInfoMap.set(stack, []);\n      var data = seriesModel.getData();\n      var stackInfo = {\n        stackResultDimension: data.getCalculationInfo('stackResultDimension'),\n        stackedOverDimension: data.getCalculationInfo('stackedOverDimension'),\n        stackedDimension: data.getCalculationInfo('stackedDimension'),\n        stackedByDimension: data.getCalculationInfo('stackedByDimension'),\n        isStackedByIndex: data.getCalculationInfo('isStackedByIndex'),\n        data: data,\n        seriesModel: seriesModel\n      };\n\n      if (!stackInfo.stackedDimension || !(stackInfo.isStackedByIndex || stackInfo.stackedByDimension)) {\n        return;\n      }\n\n      stackInfoList.length && data.setCalculationInfo('stackedOnSeries', stackInfoList[stackInfoList.length - 1].seriesModel);\n      stackInfoList.push(stackInfo);\n    }\n  });\n  stackInfoMap.each(calculateStack);\n}\n\nfunction calculateStack(stackInfoList) {\n  each(stackInfoList, function (targetStackInfo, idxInStack) {\n    var resultVal = [];\n    var resultNaN = [NaN, NaN];\n    var dims = [targetStackInfo.stackResultDimension, targetStackInfo.stackedOverDimension];\n    var targetData = targetStackInfo.data;\n    var isStackedByIndex = targetStackInfo.isStackedByIndex;\n    var newData = targetData.map(dims, function (v0, v1, dataIndex) {\n      var sum = targetData.get(targetStackInfo.stackedDimension, dataIndex);\n\n      if (isNaN(sum)) {\n        return resultNaN;\n      }\n\n      var byValue;\n      var stackedDataRawIndex;\n\n      if (isStackedByIndex) {\n        stackedDataRawIndex = targetData.getRawIndex(dataIndex);\n      } else {\n        byValue = targetData.get(targetStackInfo.stackedByDimension, dataIndex);\n      }\n\n      var stackedOver = NaN;\n\n      for (var j = idxInStack - 1; j >= 0; j--) {\n        var stackInfo = stackInfoList[j];\n\n        if (!isStackedByIndex) {\n          stackedDataRawIndex = stackInfo.data.rawIndexOf(stackInfo.stackedByDimension, byValue);\n        }\n\n        if (stackedDataRawIndex >= 0) {\n          var val = stackInfo.data.getByRawIndex(stackInfo.stackResultDimension, stackedDataRawIndex);\n\n          if (sum >= 0 && val > 0 || sum <= 0 && val < 0) {\n            sum += val;\n            stackedOver = val;\n            break;\n          }\n        }\n      }\n\n      resultVal[0] = sum;\n      resultVal[1] = stackedOver;\n      return resultVal;\n    });\n    targetData.hostModel.setData(newData);\n    targetStackInfo.data = newData;\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isTypedArray, clone, createHashMap, isArray, isObject, isArrayLike, hasOwn, assert, each, map, isNumber, isString } from 'zrender/lib/core/util';\nimport { SOURCE_FORMAT_ORIGINAL, SERIES_LAYOUT_BY_COLUMN, SOURCE_FORMAT_UNKNOWN, SOURCE_FORMAT_KEYED_COLUMNS, SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ARRAY_ROWS, SOURCE_FORMAT_OBJECT_ROWS, SERIES_LAYOUT_BY_ROW } from '../util/types';\nimport { getDataItemValue } from '../util/model';\n;\n\nvar SourceImpl = function () {\n  function SourceImpl(fields) {\n    this.data = fields.data || (fields.sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS ? {} : []);\n    this.sourceFormat = fields.sourceFormat || SOURCE_FORMAT_UNKNOWN;\n    this.seriesLayoutBy = fields.seriesLayoutBy || SERIES_LAYOUT_BY_COLUMN;\n    this.startIndex = fields.startIndex || 0;\n    this.dimensionsDefine = fields.dimensionsDefine;\n    this.dimensionsDetectedCount = fields.dimensionsDetectedCount;\n    this.encodeDefine = fields.encodeDefine;\n    this.metaRawOption = fields.metaRawOption;\n  }\n\n  return SourceImpl;\n}();\n\nexport function isSourceInstance(val) {\n  return val instanceof SourceImpl;\n}\nexport function createSource(sourceData, thisMetaRawOption, sourceFormat, encodeDefine) {\n  sourceFormat = sourceFormat || detectSourceFormat(sourceData);\n  var seriesLayoutBy = thisMetaRawOption.seriesLayoutBy;\n  var determined = determineSourceDimensions(sourceData, sourceFormat, seriesLayoutBy, thisMetaRawOption.sourceHeader, thisMetaRawOption.dimensions);\n  var source = new SourceImpl({\n    data: sourceData,\n    sourceFormat: sourceFormat,\n    seriesLayoutBy: seriesLayoutBy,\n    dimensionsDefine: determined.dimensionsDefine,\n    startIndex: determined.startIndex,\n    dimensionsDetectedCount: determined.dimensionsDetectedCount,\n    encodeDefine: makeEncodeDefine(encodeDefine),\n    metaRawOption: clone(thisMetaRawOption)\n  });\n  return source;\n}\nexport function createSourceFromSeriesDataOption(data) {\n  return new SourceImpl({\n    data: data,\n    sourceFormat: isTypedArray(data) ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL\n  });\n}\nexport function cloneSourceShallow(source) {\n  return new SourceImpl({\n    data: source.data,\n    sourceFormat: source.sourceFormat,\n    seriesLayoutBy: source.seriesLayoutBy,\n    dimensionsDefine: clone(source.dimensionsDefine),\n    startIndex: source.startIndex,\n    dimensionsDetectedCount: source.dimensionsDetectedCount,\n    encodeDefine: makeEncodeDefine(source.encodeDefine)\n  });\n}\n\nfunction makeEncodeDefine(encodeDefine) {\n  return encodeDefine ? createHashMap(encodeDefine) : null;\n}\n\nexport function detectSourceFormat(data) {\n  var sourceFormat = SOURCE_FORMAT_UNKNOWN;\n\n  if (isTypedArray(data)) {\n    sourceFormat = SOURCE_FORMAT_TYPED_ARRAY;\n  } else if (isArray(data)) {\n    if (data.length === 0) {\n      sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\n    }\n\n    for (var i = 0, len = data.length; i < len; i++) {\n      var item = data[i];\n\n      if (item == null) {\n        continue;\n      } else if (isArray(item)) {\n        sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\n        break;\n      } else if (isObject(item)) {\n        sourceFormat = SOURCE_FORMAT_OBJECT_ROWS;\n        break;\n      }\n    }\n  } else if (isObject(data)) {\n    for (var key in data) {\n      if (hasOwn(data, key) && isArrayLike(data[key])) {\n        sourceFormat = SOURCE_FORMAT_KEYED_COLUMNS;\n        break;\n      }\n    }\n  }\n\n  return sourceFormat;\n}\n\nfunction determineSourceDimensions(data, sourceFormat, seriesLayoutBy, sourceHeader, dimensionsDefine) {\n  var dimensionsDetectedCount;\n  var startIndex;\n\n  if (!data) {\n    return {\n      dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\n      startIndex: startIndex,\n      dimensionsDetectedCount: dimensionsDetectedCount\n    };\n  }\n\n  if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n    var dataArrayRows = data;\n\n    if (sourceHeader === 'auto' || sourceHeader == null) {\n      arrayRowsTravelFirst(function (val) {\n        if (val != null && val !== '-') {\n          if (isString(val)) {\n            startIndex == null && (startIndex = 1);\n          } else {\n            startIndex = 0;\n          }\n        }\n      }, seriesLayoutBy, dataArrayRows, 10);\n    } else {\n      startIndex = isNumber(sourceHeader) ? sourceHeader : sourceHeader ? 1 : 0;\n    }\n\n    if (!dimensionsDefine && startIndex === 1) {\n      dimensionsDefine = [];\n      arrayRowsTravelFirst(function (val, index) {\n        dimensionsDefine[index] = val != null ? val + '' : '';\n      }, seriesLayoutBy, dataArrayRows, Infinity);\n    }\n\n    dimensionsDetectedCount = dimensionsDefine ? dimensionsDefine.length : seriesLayoutBy === SERIES_LAYOUT_BY_ROW ? dataArrayRows.length : dataArrayRows[0] ? dataArrayRows[0].length : null;\n  } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n    if (!dimensionsDefine) {\n      dimensionsDefine = objectRowsCollectDimensions(data);\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n    if (!dimensionsDefine) {\n      dimensionsDefine = [];\n      each(data, function (colArr, key) {\n        dimensionsDefine.push(key);\n      });\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n    var value0 = getDataItemValue(data[0]);\n    dimensionsDetectedCount = isArray(value0) && value0.length || 1;\n  } else if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!!dimensionsDefine, 'dimensions must be given if data is TypedArray.');\n    }\n  }\n\n  return {\n    startIndex: startIndex,\n    dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\n    dimensionsDetectedCount: dimensionsDetectedCount\n  };\n}\n\nfunction objectRowsCollectDimensions(data) {\n  var firstIndex = 0;\n  var obj;\n\n  while (firstIndex < data.length && !(obj = data[firstIndex++])) {}\n\n  if (obj) {\n    var dimensions_1 = [];\n    each(obj, function (value, key) {\n      dimensions_1.push(key);\n    });\n    return dimensions_1;\n  }\n}\n\nfunction normalizeDimensionsOption(dimensionsDefine) {\n  if (!dimensionsDefine) {\n    return;\n  }\n\n  var nameMap = createHashMap();\n  return map(dimensionsDefine, function (rawItem, index) {\n    rawItem = isObject(rawItem) ? rawItem : {\n      name: rawItem\n    };\n    var item = {\n      name: rawItem.name,\n      displayName: rawItem.displayName,\n      type: rawItem.type\n    };\n\n    if (item.name == null) {\n      return item;\n    }\n\n    item.name += '';\n\n    if (item.displayName == null) {\n      item.displayName = item.name;\n    }\n\n    var exist = nameMap.get(item.name);\n\n    if (!exist) {\n      nameMap.set(item.name, {\n        count: 1\n      });\n    } else {\n      item.name += '-' + exist.count++;\n    }\n\n    return item;\n  });\n}\n\nfunction arrayRowsTravelFirst(cb, seriesLayoutBy, data, maxLoop) {\n  if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\n    for (var i = 0; i < data.length && i < maxLoop; i++) {\n      cb(data[i] ? data[i][0] : null, i);\n    }\n  } else {\n    var value0 = data[0] || [];\n\n    for (var i = 0; i < value0.length && i < maxLoop; i++) {\n      cb(value0[i], i);\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar _a, _b, _c;\n\nimport { isTypedArray, extend, assert, each, isObject, bind } from 'zrender/lib/core/util';\nimport { getDataItemValue } from '../../util/model';\nimport { createSourceFromSeriesDataOption, isSourceInstance } from '../Source';\nimport { SOURCE_FORMAT_ORIGINAL, SOURCE_FORMAT_OBJECT_ROWS, SOURCE_FORMAT_KEYED_COLUMNS, SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ARRAY_ROWS, SERIES_LAYOUT_BY_COLUMN, SERIES_LAYOUT_BY_ROW } from '../../util/types';\nvar providerMethods;\nvar mountMethods;\n\nvar DefaultDataProvider = function () {\n  function DefaultDataProvider(sourceParam, dimSize) {\n    var source = !isSourceInstance(sourceParam) ? createSourceFromSeriesDataOption(sourceParam) : sourceParam;\n    this._source = source;\n    var data = this._data = source.data;\n\n    if (source.sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (dimSize == null) {\n          throw new Error('Typed array data must specify dimension size');\n        }\n      }\n\n      this._offset = 0;\n      this._dimSize = dimSize;\n      this._data = data;\n    }\n\n    mountMethods(this, data, source);\n  }\n\n  DefaultDataProvider.prototype.getSource = function () {\n    return this._source;\n  };\n\n  DefaultDataProvider.prototype.count = function () {\n    return 0;\n  };\n\n  DefaultDataProvider.prototype.getItem = function (idx, out) {\n    return;\n  };\n\n  DefaultDataProvider.prototype.appendData = function (newData) {};\n\n  DefaultDataProvider.prototype.clean = function () {};\n\n  DefaultDataProvider.protoInitialize = function () {\n    var proto = DefaultDataProvider.prototype;\n    proto.pure = false;\n    proto.persistent = true;\n  }();\n\n  DefaultDataProvider.internalField = function () {\n    var _a;\n\n    mountMethods = function (provider, data, source) {\n      var sourceFormat = source.sourceFormat;\n      var seriesLayoutBy = source.seriesLayoutBy;\n      var startIndex = source.startIndex;\n      var dimsDef = source.dimensionsDefine;\n      var methods = providerMethods[getMethodMapKey(sourceFormat, seriesLayoutBy)];\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(methods, 'Invalide sourceFormat: ' + sourceFormat);\n      }\n\n      extend(provider, methods);\n\n      if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n        provider.getItem = getItemForTypedArray;\n        provider.count = countForTypedArray;\n        provider.fillStorage = fillStorageForTypedArray;\n      } else {\n        var rawItemGetter = getRawSourceItemGetter(sourceFormat, seriesLayoutBy);\n        provider.getItem = bind(rawItemGetter, null, data, startIndex, dimsDef);\n        var rawCounter = getRawSourceDataCounter(sourceFormat, seriesLayoutBy);\n        provider.count = bind(rawCounter, null, data, startIndex, dimsDef);\n      }\n    };\n\n    var getItemForTypedArray = function (idx, out) {\n      idx = idx - this._offset;\n      out = out || [];\n      var data = this._data;\n      var dimSize = this._dimSize;\n      var offset = dimSize * idx;\n\n      for (var i = 0; i < dimSize; i++) {\n        out[i] = data[offset + i];\n      }\n\n      return out;\n    };\n\n    var fillStorageForTypedArray = function (start, end, storage, extent) {\n      var data = this._data;\n      var dimSize = this._dimSize;\n\n      for (var dim = 0; dim < dimSize; dim++) {\n        var dimExtent = extent[dim];\n        var min = dimExtent[0] == null ? Infinity : dimExtent[0];\n        var max = dimExtent[1] == null ? -Infinity : dimExtent[1];\n        var count = end - start;\n        var arr = storage[dim];\n\n        for (var i = 0; i < count; i++) {\n          var val = data[i * dimSize + dim];\n          arr[start + i] = val;\n          val < min && (min = val);\n          val > max && (max = val);\n        }\n\n        dimExtent[0] = min;\n        dimExtent[1] = max;\n      }\n    };\n\n    var countForTypedArray = function () {\n      return this._data ? this._data.length / this._dimSize : 0;\n    };\n\n    providerMethods = (_a = {}, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = {\n      pure: true,\n      appendData: appendDataSimply\n    }, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = {\n      pure: true,\n      appendData: function () {\n        throw new Error('Do not support appendData when set seriesLayoutBy: \"row\".');\n      }\n    }, _a[SOURCE_FORMAT_OBJECT_ROWS] = {\n      pure: true,\n      appendData: appendDataSimply\n    }, _a[SOURCE_FORMAT_KEYED_COLUMNS] = {\n      pure: true,\n      appendData: function (newData) {\n        var data = this._data;\n        each(newData, function (newCol, key) {\n          var oldCol = data[key] || (data[key] = []);\n\n          for (var i = 0; i < (newCol || []).length; i++) {\n            oldCol.push(newCol[i]);\n          }\n        });\n      }\n    }, _a[SOURCE_FORMAT_ORIGINAL] = {\n      appendData: appendDataSimply\n    }, _a[SOURCE_FORMAT_TYPED_ARRAY] = {\n      persistent: false,\n      pure: true,\n      appendData: function (newData) {\n        if (process.env.NODE_ENV !== 'production') {\n          assert(isTypedArray(newData), 'Added data must be TypedArray if data in initialization is TypedArray');\n        }\n\n        this._data = newData;\n      },\n      clean: function () {\n        this._offset += this.count();\n        this._data = null;\n      }\n    }, _a);\n\n    function appendDataSimply(newData) {\n      for (var i = 0; i < newData.length; i++) {\n        this._data.push(newData[i]);\n      }\n    }\n  }();\n\n  return DefaultDataProvider;\n}();\n\nexport { DefaultDataProvider };\n\nvar getItemSimply = function (rawData, startIndex, dimsDef, idx) {\n  return rawData[idx];\n};\n\nvar rawSourceItemGetterMap = (_a = {}, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef, idx) {\n  return rawData[idx + startIndex];\n}, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef, idx) {\n  idx += startIndex;\n  var item = [];\n  var data = rawData;\n\n  for (var i = 0; i < data.length; i++) {\n    var row = data[i];\n    item.push(row ? row[idx] : null);\n  }\n\n  return item;\n}, _a[SOURCE_FORMAT_OBJECT_ROWS] = getItemSimply, _a[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef, idx) {\n  var item = [];\n\n  for (var i = 0; i < dimsDef.length; i++) {\n    var dimName = dimsDef[i].name;\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (dimName == null) {\n        throw new Error();\n      }\n    }\n\n    var col = rawData[dimName];\n    item.push(col ? col[idx] : null);\n  }\n\n  return item;\n}, _a[SOURCE_FORMAT_ORIGINAL] = getItemSimply, _a);\nexport function getRawSourceItemGetter(sourceFormat, seriesLayoutBy) {\n  var method = rawSourceItemGetterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\n\n  if (process.env.NODE_ENV !== 'production') {\n    assert(method, 'Do not suppport get item on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\n  }\n\n  return method;\n}\n\nvar countSimply = function (rawData, startIndex, dimsDef) {\n  return rawData.length;\n};\n\nvar rawSourceDataCounterMap = (_b = {}, _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef) {\n  return Math.max(0, rawData.length - startIndex);\n}, _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef) {\n  var row = rawData[0];\n  return row ? Math.max(0, row.length - startIndex) : 0;\n}, _b[SOURCE_FORMAT_OBJECT_ROWS] = countSimply, _b[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef) {\n  var dimName = dimsDef[0].name;\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (dimName == null) {\n      throw new Error();\n    }\n  }\n\n  var col = rawData[dimName];\n  return col ? col.length : 0;\n}, _b[SOURCE_FORMAT_ORIGINAL] = countSimply, _b);\nexport function getRawSourceDataCounter(sourceFormat, seriesLayoutBy) {\n  var method = rawSourceDataCounterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\n\n  if (process.env.NODE_ENV !== 'production') {\n    assert(method, 'Do not suppport count on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\n  }\n\n  return method;\n}\n\nvar getRawValueSimply = function (dataItem, dimIndex, dimName) {\n  return dimIndex != null ? dataItem[dimIndex] : dataItem;\n};\n\nvar rawSourceValueGetterMap = (_c = {}, _c[SOURCE_FORMAT_ARRAY_ROWS] = getRawValueSimply, _c[SOURCE_FORMAT_OBJECT_ROWS] = function (dataItem, dimIndex, dimName) {\n  return dimIndex != null ? dataItem[dimName] : dataItem;\n}, _c[SOURCE_FORMAT_KEYED_COLUMNS] = getRawValueSimply, _c[SOURCE_FORMAT_ORIGINAL] = function (dataItem, dimIndex, dimName) {\n  var value = getDataItemValue(dataItem);\n  return dimIndex == null || !(value instanceof Array) ? value : value[dimIndex];\n}, _c[SOURCE_FORMAT_TYPED_ARRAY] = getRawValueSimply, _c);\nexport function getRawSourceValueGetter(sourceFormat) {\n  var method = rawSourceValueGetterMap[sourceFormat];\n\n  if (process.env.NODE_ENV !== 'production') {\n    assert(method, 'Do not suppport get value on \"' + sourceFormat + '\".');\n  }\n\n  return method;\n}\n\nfunction getMethodMapKey(sourceFormat, seriesLayoutBy) {\n  return sourceFormat === SOURCE_FORMAT_ARRAY_ROWS ? sourceFormat + '_' + seriesLayoutBy : sourceFormat;\n}\n\nexport function retrieveRawValue(data, dataIndex, dim) {\n  if (!data) {\n    return;\n  }\n\n  var dataItem = data.getRawDataItem(dataIndex);\n\n  if (dataItem == null) {\n    return;\n  }\n\n  var sourceFormat = data.getProvider().getSource().sourceFormat;\n  var dimName;\n  var dimIndex;\n  var dimInfo = data.getDimensionInfo(dim);\n\n  if (dimInfo) {\n    dimName = dimInfo.name;\n    dimIndex = dimInfo.index;\n  }\n\n  return getRawSourceValueGetter(sourceFormat)(dataItem, dimIndex, dimName);\n}\nexport function retrieveRawAttr(data, dataIndex, attr) {\n  if (!data) {\n    return;\n  }\n\n  var sourceFormat = data.getProvider().getSource().sourceFormat;\n\n  if (sourceFormat !== SOURCE_FORMAT_ORIGINAL && sourceFormat !== SOURCE_FORMAT_OBJECT_ROWS) {\n    return;\n  }\n\n  var dataItem = data.getRawDataItem(dataIndex);\n\n  if (sourceFormat === SOURCE_FORMAT_ORIGINAL && !isObject(dataItem)) {\n    dataItem = null;\n  }\n\n  if (dataItem) {\n    return dataItem[attr];\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { retrieveRawValue } from '../../data/helper/dataProvider';\nimport { formatTpl } from '../../util/format';\nimport { makePrintable } from '../../util/log';\nvar DIMENSION_LABEL_REG = /\\{@(.+?)\\}/g;\n\nvar DataFormatMixin = function () {\n  function DataFormatMixin() {}\n\n  DataFormatMixin.prototype.getDataParams = function (dataIndex, dataType) {\n    var data = this.getData(dataType);\n    var rawValue = this.getRawValue(dataIndex, dataType);\n    var rawDataIndex = data.getRawIndex(dataIndex);\n    var name = data.getName(dataIndex);\n    var itemOpt = data.getRawDataItem(dataIndex);\n    var style = data.getItemVisual(dataIndex, 'style');\n    var color = style && style[data.getItemVisual(dataIndex, 'drawType') || 'fill'];\n    var borderColor = style && style.stroke;\n    var mainType = this.mainType;\n    var isSeries = mainType === 'series';\n    var userOutput = data.userOutput;\n    return {\n      componentType: mainType,\n      componentSubType: this.subType,\n      componentIndex: this.componentIndex,\n      seriesType: isSeries ? this.subType : null,\n      seriesIndex: this.seriesIndex,\n      seriesId: isSeries ? this.id : null,\n      seriesName: isSeries ? this.name : null,\n      name: name,\n      dataIndex: rawDataIndex,\n      data: itemOpt,\n      dataType: dataType,\n      value: rawValue,\n      color: color,\n      borderColor: borderColor,\n      dimensionNames: userOutput ? userOutput.dimensionNames : null,\n      encode: userOutput ? userOutput.encode : null,\n      $vars: ['seriesName', 'name', 'value']\n    };\n  };\n\n  DataFormatMixin.prototype.getFormattedLabel = function (dataIndex, status, dataType, labelDimIndex, formatter, extendParams) {\n    status = status || 'normal';\n    var data = this.getData(dataType);\n    var params = this.getDataParams(dataIndex, dataType);\n\n    if (extendParams) {\n      params.value = extendParams.interpolatedValue;\n    }\n\n    if (labelDimIndex != null && zrUtil.isArray(params.value)) {\n      params.value = params.value[labelDimIndex];\n    }\n\n    if (!formatter) {\n      var itemModel = data.getItemModel(dataIndex);\n      formatter = itemModel.get(status === 'normal' ? ['label', 'formatter'] : [status, 'label', 'formatter']);\n    }\n\n    if (typeof formatter === 'function') {\n      params.status = status;\n      params.dimensionIndex = labelDimIndex;\n      return formatter(params);\n    } else if (typeof formatter === 'string') {\n      var str = formatTpl(formatter, params);\n      return str.replace(DIMENSION_LABEL_REG, function (origin, dimStr) {\n        var len = dimStr.length;\n        var dimLoose = dimStr.charAt(0) === '[' && dimStr.charAt(len - 1) === ']' ? +dimStr.slice(1, len - 1) : dimStr;\n        var val = retrieveRawValue(data, dataIndex, dimLoose);\n\n        if (extendParams && zrUtil.isArray(extendParams.interpolatedValue)) {\n          var dimInfo = data.getDimensionInfo(dimLoose);\n\n          if (dimInfo) {\n            val = extendParams.interpolatedValue[dimInfo.index];\n          }\n        }\n\n        return val != null ? val + '' : '';\n      });\n    }\n  };\n\n  DataFormatMixin.prototype.getRawValue = function (idx, dataType) {\n    return retrieveRawValue(this.getData(dataType), idx);\n  };\n\n  DataFormatMixin.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    return;\n  };\n\n  return DataFormatMixin;\n}();\n\nexport { DataFormatMixin };\n;\nexport function normalizeTooltipFormatResult(result) {\n  var markupText;\n  var markupFragment;\n\n  if (zrUtil.isObject(result)) {\n    if (result.type) {\n      markupFragment = result;\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn('The return type of `formatTooltip` is not supported: ' + makePrintable(result));\n      }\n    }\n  } else {\n    markupText = result;\n  }\n\n  return {\n    markupText: markupText,\n    markupFragment: markupFragment\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { assert, isArray } from 'zrender/lib/core/util';\n;\nexport function createTask(define) {\n  return new Task(define);\n}\n\nvar Task = function () {\n  function Task(define) {\n    define = define || {};\n    this._reset = define.reset;\n    this._plan = define.plan;\n    this._count = define.count;\n    this._onDirty = define.onDirty;\n    this._dirty = true;\n  }\n\n  Task.prototype.perform = function (performArgs) {\n    var upTask = this._upstream;\n    var skip = performArgs && performArgs.skip;\n\n    if (this._dirty && upTask) {\n      var context = this.context;\n      context.data = context.outputData = upTask.context.outputData;\n    }\n\n    if (this.__pipeline) {\n      this.__pipeline.currentTask = this;\n    }\n\n    var planResult;\n\n    if (this._plan && !skip) {\n      planResult = this._plan(this.context);\n    }\n\n    var lastModBy = normalizeModBy(this._modBy);\n    var lastModDataCount = this._modDataCount || 0;\n    var modBy = normalizeModBy(performArgs && performArgs.modBy);\n    var modDataCount = performArgs && performArgs.modDataCount || 0;\n\n    if (lastModBy !== modBy || lastModDataCount !== modDataCount) {\n      planResult = 'reset';\n    }\n\n    function normalizeModBy(val) {\n      !(val >= 1) && (val = 1);\n      return val;\n    }\n\n    var forceFirstProgress;\n\n    if (this._dirty || planResult === 'reset') {\n      this._dirty = false;\n      forceFirstProgress = this._doReset(skip);\n    }\n\n    this._modBy = modBy;\n    this._modDataCount = modDataCount;\n    var step = performArgs && performArgs.step;\n\n    if (upTask) {\n      if (process.env.NODE_ENV !== 'production') {\n        assert(upTask._outputDueEnd != null);\n      }\n\n      this._dueEnd = upTask._outputDueEnd;\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        assert(!this._progress || this._count);\n      }\n\n      this._dueEnd = this._count ? this._count(this.context) : Infinity;\n    }\n\n    if (this._progress) {\n      var start = this._dueIndex;\n      var end = Math.min(step != null ? this._dueIndex + step : Infinity, this._dueEnd);\n\n      if (!skip && (forceFirstProgress || start < end)) {\n        var progress = this._progress;\n\n        if (isArray(progress)) {\n          for (var i = 0; i < progress.length; i++) {\n            this._doProgress(progress[i], start, end, modBy, modDataCount);\n          }\n        } else {\n          this._doProgress(progress, start, end, modBy, modDataCount);\n        }\n      }\n\n      this._dueIndex = end;\n      var outputDueEnd = this._settedOutputEnd != null ? this._settedOutputEnd : end;\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(outputDueEnd >= this._outputDueEnd);\n      }\n\n      this._outputDueEnd = outputDueEnd;\n    } else {\n      this._dueIndex = this._outputDueEnd = this._settedOutputEnd != null ? this._settedOutputEnd : this._dueEnd;\n    }\n\n    return this.unfinished();\n  };\n\n  Task.prototype.dirty = function () {\n    this._dirty = true;\n    this._onDirty && this._onDirty(this.context);\n  };\n\n  Task.prototype._doProgress = function (progress, start, end, modBy, modDataCount) {\n    iterator.reset(start, end, modBy, modDataCount);\n    this._callingProgress = progress;\n\n    this._callingProgress({\n      start: start,\n      end: end,\n      count: end - start,\n      next: iterator.next\n    }, this.context);\n  };\n\n  Task.prototype._doReset = function (skip) {\n    this._dueIndex = this._outputDueEnd = this._dueEnd = 0;\n    this._settedOutputEnd = null;\n    var progress;\n    var forceFirstProgress;\n\n    if (!skip && this._reset) {\n      progress = this._reset(this.context);\n\n      if (progress && progress.progress) {\n        forceFirstProgress = progress.forceFirstProgress;\n        progress = progress.progress;\n      }\n\n      if (isArray(progress) && !progress.length) {\n        progress = null;\n      }\n    }\n\n    this._progress = progress;\n    this._modBy = this._modDataCount = null;\n    var downstream = this._downstream;\n    downstream && downstream.dirty();\n    return forceFirstProgress;\n  };\n\n  Task.prototype.unfinished = function () {\n    return this._progress && this._dueIndex < this._dueEnd;\n  };\n\n  Task.prototype.pipe = function (downTask) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(downTask && !downTask._disposed && downTask !== this);\n    }\n\n    if (this._downstream !== downTask || this._dirty) {\n      this._downstream = downTask;\n      downTask._upstream = this;\n      downTask.dirty();\n    }\n  };\n\n  Task.prototype.dispose = function () {\n    if (this._disposed) {\n      return;\n    }\n\n    this._upstream && (this._upstream._downstream = null);\n    this._downstream && (this._downstream._upstream = null);\n    this._dirty = false;\n    this._disposed = true;\n  };\n\n  Task.prototype.getUpstream = function () {\n    return this._upstream;\n  };\n\n  Task.prototype.getDownstream = function () {\n    return this._downstream;\n  };\n\n  Task.prototype.setOutputEnd = function (end) {\n    this._outputDueEnd = this._settedOutputEnd = end;\n  };\n\n  return Task;\n}();\n\nexport { Task };\n\nvar iterator = function () {\n  var end;\n  var current;\n  var modBy;\n  var modDataCount;\n  var winCount;\n  var it = {\n    reset: function (s, e, sStep, sCount) {\n      current = s;\n      end = e;\n      modBy = sStep;\n      modDataCount = sCount;\n      winCount = Math.ceil(modDataCount / modBy);\n      it.next = modBy > 1 && modDataCount > 0 ? modNext : sequentialNext;\n    }\n  };\n  return it;\n\n  function sequentialNext() {\n    return current < end ? current++ : null;\n  }\n\n  function modNext() {\n    var dataIndex = current % winCount * modBy + Math.ceil(current / winCount);\n    var result = current >= end ? null : dataIndex < modDataCount ? dataIndex : current;\n    current++;\n    return result;\n  }\n}();","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parseDate, numericToNumber } from '../../util/number';\nimport { createHashMap, trim, hasOwn } from 'zrender/lib/core/util';\nimport { throwError } from '../../util/log';\nexport function parseDataValue(value, opt) {\n  var dimType = opt && opt.type;\n\n  if (dimType === 'ordinal') {\n    var ordinalMeta = opt && opt.ordinalMeta;\n    return ordinalMeta ? ordinalMeta.parseAndCollect(value) : value;\n  }\n\n  if (dimType === 'time' && typeof value !== 'number' && value != null && value !== '-') {\n    value = +parseDate(value);\n  }\n\n  return value == null || value === '' ? NaN : +value;\n}\n;\nvar valueParserMap = createHashMap({\n  'number': function (val) {\n    return parseFloat(val);\n  },\n  'time': function (val) {\n    return +parseDate(val);\n  },\n  'trim': function (val) {\n    return typeof val === 'string' ? trim(val) : val;\n  }\n});\nexport function getRawValueParser(type) {\n  return valueParserMap.get(type);\n}\nvar ORDER_COMPARISON_OP_MAP = {\n  lt: function (lval, rval) {\n    return lval < rval;\n  },\n  lte: function (lval, rval) {\n    return lval <= rval;\n  },\n  gt: function (lval, rval) {\n    return lval > rval;\n  },\n  gte: function (lval, rval) {\n    return lval >= rval;\n  }\n};\n\nvar FilterOrderComparator = function () {\n  function FilterOrderComparator(op, rval) {\n    if (typeof rval !== 'number') {\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'rvalue of \"<\", \">\", \"<=\", \">=\" can only be number in filter.';\n      }\n\n      throwError(errMsg);\n    }\n\n    this._opFn = ORDER_COMPARISON_OP_MAP[op];\n    this._rvalFloat = numericToNumber(rval);\n  }\n\n  FilterOrderComparator.prototype.evaluate = function (lval) {\n    return typeof lval === 'number' ? this._opFn(lval, this._rvalFloat) : this._opFn(numericToNumber(lval), this._rvalFloat);\n  };\n\n  return FilterOrderComparator;\n}();\n\nvar SortOrderComparator = function () {\n  function SortOrderComparator(order, incomparable) {\n    var isDesc = order === 'desc';\n    this._resultLT = isDesc ? 1 : -1;\n\n    if (incomparable == null) {\n      incomparable = isDesc ? 'min' : 'max';\n    }\n\n    this._incomparable = incomparable === 'min' ? -Infinity : Infinity;\n  }\n\n  SortOrderComparator.prototype.evaluate = function (lval, rval) {\n    var lvalTypeof = typeof lval;\n    var rvalTypeof = typeof rval;\n    var lvalFloat = lvalTypeof === 'number' ? lval : numericToNumber(lval);\n    var rvalFloat = rvalTypeof === 'number' ? rval : numericToNumber(rval);\n    var lvalNotNumeric = isNaN(lvalFloat);\n    var rvalNotNumeric = isNaN(rvalFloat);\n\n    if (lvalNotNumeric) {\n      lvalFloat = this._incomparable;\n    }\n\n    if (rvalNotNumeric) {\n      rvalFloat = this._incomparable;\n    }\n\n    if (lvalNotNumeric && rvalNotNumeric) {\n      var lvalIsStr = lvalTypeof === 'string';\n      var rvalIsStr = rvalTypeof === 'string';\n\n      if (lvalIsStr) {\n        lvalFloat = rvalIsStr ? lval : 0;\n      }\n\n      if (rvalIsStr) {\n        rvalFloat = lvalIsStr ? rval : 0;\n      }\n    }\n\n    return lvalFloat < rvalFloat ? this._resultLT : lvalFloat > rvalFloat ? -this._resultLT : 0;\n  };\n\n  return SortOrderComparator;\n}();\n\nexport { SortOrderComparator };\n\nvar FilterEqualityComparator = function () {\n  function FilterEqualityComparator(isEq, rval) {\n    this._rval = rval;\n    this._isEQ = isEq;\n    this._rvalTypeof = typeof rval;\n    this._rvalFloat = numericToNumber(rval);\n  }\n\n  FilterEqualityComparator.prototype.evaluate = function (lval) {\n    var eqResult = lval === this._rval;\n\n    if (!eqResult) {\n      var lvalTypeof = typeof lval;\n\n      if (lvalTypeof !== this._rvalTypeof && (lvalTypeof === 'number' || this._rvalTypeof === 'number')) {\n        eqResult = numericToNumber(lval) === this._rvalFloat;\n      }\n    }\n\n    return this._isEQ ? eqResult : !eqResult;\n  };\n\n  return FilterEqualityComparator;\n}();\n\nexport function createFilterComparator(op, rval) {\n  return op === 'eq' || op === 'ne' ? new FilterEqualityComparator(op === 'eq', rval) : hasOwn(ORDER_COMPARISON_OP_MAP, op) ? new FilterOrderComparator(op, rval) : null;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { SERIES_LAYOUT_BY_COLUMN, SOURCE_FORMAT_OBJECT_ROWS, SOURCE_FORMAT_ARRAY_ROWS } from '../../util/types';\nimport { normalizeToArray } from '../../util/model';\nimport { createHashMap, bind, each, hasOwn, map, clone, isObject, extend } from 'zrender/lib/core/util';\nimport { getRawSourceItemGetter, getRawSourceDataCounter, getRawSourceValueGetter } from './dataProvider';\nimport { parseDataValue } from './dataValueHelper';\nimport { consoleLog, makePrintable, throwError } from '../../util/log';\nimport { createSource, detectSourceFormat } from '../Source';\n\nvar ExternalSource = function () {\n  function ExternalSource() {}\n\n  ExternalSource.prototype.getRawData = function () {\n    throw new Error('not supported');\n  };\n\n  ExternalSource.prototype.getRawDataItem = function (dataIndex) {\n    throw new Error('not supported');\n  };\n\n  ExternalSource.prototype.cloneRawData = function () {\n    return;\n  };\n\n  ExternalSource.prototype.getDimensionInfo = function (dim) {\n    return;\n  };\n\n  ExternalSource.prototype.cloneAllDimensionInfo = function () {\n    return;\n  };\n\n  ExternalSource.prototype.count = function () {\n    return;\n  };\n\n  ExternalSource.prototype.retrieveValue = function (dataIndex, dimIndex) {\n    return;\n  };\n\n  ExternalSource.prototype.retrieveValueFromItem = function (dataItem, dimIndex) {\n    return;\n  };\n\n  ExternalSource.prototype.convertValue = function (rawVal, dimInfo) {\n    return parseDataValue(rawVal, dimInfo);\n  };\n\n  return ExternalSource;\n}();\n\nexport { ExternalSource };\n\nfunction createExternalSource(internalSource, externalTransform) {\n  var extSource = new ExternalSource();\n  var data = internalSource.data;\n  var sourceFormat = extSource.sourceFormat = internalSource.sourceFormat;\n  var sourceHeaderCount = internalSource.startIndex;\n  var errMsg = '';\n\n  if (internalSource.seriesLayoutBy !== SERIES_LAYOUT_BY_COLUMN) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = '`seriesLayoutBy` of upstream dataset can only be \"column\" in data transform.';\n    }\n\n    throwError(errMsg);\n  }\n\n  var dimensions = [];\n  var dimsByName = {};\n  var dimsDef = internalSource.dimensionsDefine;\n\n  if (dimsDef) {\n    each(dimsDef, function (dimDef, idx) {\n      var name = dimDef.name;\n      var dimDefExt = {\n        index: idx,\n        name: name,\n        displayName: dimDef.displayName\n      };\n      dimensions.push(dimDefExt);\n\n      if (name != null) {\n        var errMsg_1 = '';\n\n        if (hasOwn(dimsByName, name)) {\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg_1 = 'dimension name \"' + name + '\" duplicated.';\n          }\n\n          throwError(errMsg_1);\n        }\n\n        dimsByName[name] = dimDefExt;\n      }\n    });\n  } else {\n    for (var i = 0; i < internalSource.dimensionsDetectedCount || 0; i++) {\n      dimensions.push({\n        index: i\n      });\n    }\n  }\n\n  var rawItemGetter = getRawSourceItemGetter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\n\n  if (externalTransform.__isBuiltIn) {\n    extSource.getRawDataItem = function (dataIndex) {\n      return rawItemGetter(data, sourceHeaderCount, dimensions, dataIndex);\n    };\n\n    extSource.getRawData = bind(getRawData, null, internalSource);\n  }\n\n  extSource.cloneRawData = bind(cloneRawData, null, internalSource);\n  var rawCounter = getRawSourceDataCounter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\n  extSource.count = bind(rawCounter, null, data, sourceHeaderCount, dimensions);\n  var rawValueGetter = getRawSourceValueGetter(sourceFormat);\n\n  extSource.retrieveValue = function (dataIndex, dimIndex) {\n    var rawItem = rawItemGetter(data, sourceHeaderCount, dimensions, dataIndex);\n    return retrieveValueFromItem(rawItem, dimIndex);\n  };\n\n  var retrieveValueFromItem = extSource.retrieveValueFromItem = function (dataItem, dimIndex) {\n    if (dataItem == null) {\n      return;\n    }\n\n    var dimDef = dimensions[dimIndex];\n\n    if (dimDef) {\n      return rawValueGetter(dataItem, dimIndex, dimDef.name);\n    }\n  };\n\n  extSource.getDimensionInfo = bind(getDimensionInfo, null, dimensions, dimsByName);\n  extSource.cloneAllDimensionInfo = bind(cloneAllDimensionInfo, null, dimensions);\n  return extSource;\n}\n\nfunction getRawData(upstream) {\n  var sourceFormat = upstream.sourceFormat;\n\n  if (!isSupportedSourceFormat(sourceFormat)) {\n    var errMsg = '';\n\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = '`getRawData` is not supported in source format ' + sourceFormat;\n    }\n\n    throwError(errMsg);\n  }\n\n  return upstream.data;\n}\n\nfunction cloneRawData(upstream) {\n  var sourceFormat = upstream.sourceFormat;\n  var data = upstream.data;\n\n  if (!isSupportedSourceFormat(sourceFormat)) {\n    var errMsg = '';\n\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = '`cloneRawData` is not supported in source format ' + sourceFormat;\n    }\n\n    throwError(errMsg);\n  }\n\n  if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n    var result = [];\n\n    for (var i = 0, len = data.length; i < len; i++) {\n      result.push(data[i].slice());\n    }\n\n    return result;\n  } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n    var result = [];\n\n    for (var i = 0, len = data.length; i < len; i++) {\n      result.push(extend({}, data[i]));\n    }\n\n    return result;\n  }\n}\n\nfunction getDimensionInfo(dimensions, dimsByName, dim) {\n  if (dim == null) {\n    return;\n  }\n\n  if (typeof dim === 'number' || !isNaN(dim) && !hasOwn(dimsByName, dim)) {\n    return dimensions[dim];\n  } else if (hasOwn(dimsByName, dim)) {\n    return dimsByName[dim];\n  }\n}\n\nfunction cloneAllDimensionInfo(dimensions) {\n  return clone(dimensions);\n}\n\nvar externalTransformMap = createHashMap();\nexport function registerExternalTransform(externalTransform) {\n  externalTransform = clone(externalTransform);\n  var type = externalTransform.type;\n  var errMsg = '';\n\n  if (!type) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'Must have a `type` when `registerTransform`.';\n    }\n\n    throwError(errMsg);\n  }\n\n  var typeParsed = type.split(':');\n\n  if (typeParsed.length !== 2) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'Name must include namespace like \"ns:regression\".';\n    }\n\n    throwError(errMsg);\n  }\n\n  var isBuiltIn = false;\n\n  if (typeParsed[0] === 'echarts') {\n    type = typeParsed[1];\n    isBuiltIn = true;\n  }\n\n  externalTransform.__isBuiltIn = isBuiltIn;\n  externalTransformMap.set(type, externalTransform);\n}\nexport function applyDataTransform(rawTransOption, sourceList, infoForPrint) {\n  var pipedTransOption = normalizeToArray(rawTransOption);\n  var pipeLen = pipedTransOption.length;\n  var errMsg = '';\n\n  if (!pipeLen) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'If `transform` declared, it should at least contain one transform.';\n    }\n\n    throwError(errMsg);\n  }\n\n  for (var i = 0, len = pipeLen; i < len; i++) {\n    var transOption = pipedTransOption[i];\n    sourceList = applySingleDataTransform(transOption, sourceList, infoForPrint, pipeLen === 1 ? null : i);\n\n    if (i !== len - 1) {\n      sourceList.length = Math.max(sourceList.length, 1);\n    }\n  }\n\n  return sourceList;\n}\n\nfunction applySingleDataTransform(transOption, upSourceList, infoForPrint, pipeIndex) {\n  var errMsg = '';\n\n  if (!upSourceList.length) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'Must have at least one upstream dataset.';\n    }\n\n    throwError(errMsg);\n  }\n\n  if (!isObject(transOption)) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'transform declaration must be an object rather than ' + typeof transOption + '.';\n    }\n\n    throwError(errMsg);\n  }\n\n  var transType = transOption.type;\n  var externalTransform = externalTransformMap.get(transType);\n\n  if (!externalTransform) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'Can not find transform on type \"' + transType + '\".';\n    }\n\n    throwError(errMsg);\n  }\n\n  var extUpSourceList = map(upSourceList, function (upSource) {\n    return createExternalSource(upSource, externalTransform);\n  });\n  var resultList = normalizeToArray(externalTransform.transform({\n    upstream: extUpSourceList[0],\n    upstreamList: extUpSourceList,\n    config: clone(transOption.config)\n  }));\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (transOption.print) {\n      var printStrArr = map(resultList, function (extSource) {\n        var pipeIndexStr = pipeIndex != null ? ' === pipe index: ' + pipeIndex : '';\n        return ['=== dataset index: ' + infoForPrint.datasetIndex + pipeIndexStr + ' ===', '- transform result data:', makePrintable(extSource.data), '- transform result dimensions:', makePrintable(extSource.dimensions)].join('\\n');\n      }).join('\\n');\n      consoleLog(printStrArr);\n    }\n  }\n\n  return map(resultList, function (result, resultIndex) {\n    var errMsg = '';\n\n    if (!isObject(result)) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'A transform should not return some empty results.';\n      }\n\n      throwError(errMsg);\n    }\n\n    if (!result.data) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'Transform result data should be not be null or undefined';\n      }\n\n      throwError(errMsg);\n    }\n\n    var sourceFormat = detectSourceFormat(result.data);\n\n    if (!isSupportedSourceFormat(sourceFormat)) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'Transform result data should be array rows or object rows.';\n      }\n\n      throwError(errMsg);\n    }\n\n    var resultMetaRawOption;\n    var firstUpSource = upSourceList[0];\n\n    if (firstUpSource && resultIndex === 0 && !result.dimensions) {\n      var startIndex = firstUpSource.startIndex;\n\n      if (startIndex) {\n        result.data = firstUpSource.data.slice(0, startIndex).concat(result.data);\n      }\n\n      resultMetaRawOption = {\n        seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN,\n        sourceHeader: startIndex,\n        dimensions: firstUpSource.metaRawOption.dimensions\n      };\n    } else {\n      resultMetaRawOption = {\n        seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN,\n        sourceHeader: 0,\n        dimensions: result.dimensions\n      };\n    }\n\n    return createSource(result.data, resultMetaRawOption, null, null);\n  });\n}\n\nfunction isSupportedSourceFormat(sourceFormat) {\n  return sourceFormat === SOURCE_FORMAT_ARRAY_ROWS || sourceFormat === SOURCE_FORMAT_OBJECT_ROWS;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { setAsPrimitive, map, isTypedArray, assert, each, retrieve2 } from 'zrender/lib/core/util';\nimport { createSource, cloneSourceShallow } from '../Source';\nimport { SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ORIGINAL } from '../../util/types';\nimport { querySeriesUpstreamDatasetModel, queryDatasetUpstreamDatasetModels } from './sourceHelper';\nimport { applyDataTransform } from './transform';\n\nvar SourceManager = function () {\n  function SourceManager(sourceHost) {\n    this._sourceList = [];\n    this._upstreamSignList = [];\n    this._versionSignBase = 0;\n    this._sourceHost = sourceHost;\n  }\n\n  SourceManager.prototype.dirty = function () {\n    this._setLocalSource([], []);\n  };\n\n  SourceManager.prototype._setLocalSource = function (sourceList, upstreamSignList) {\n    this._sourceList = sourceList;\n    this._upstreamSignList = upstreamSignList;\n    this._versionSignBase++;\n\n    if (this._versionSignBase > 9e10) {\n      this._versionSignBase = 0;\n    }\n  };\n\n  SourceManager.prototype._getVersionSign = function () {\n    return this._sourceHost.uid + '_' + this._versionSignBase;\n  };\n\n  SourceManager.prototype.prepareSource = function () {\n    if (this._isDirty()) {\n      this._createSource();\n    }\n  };\n\n  SourceManager.prototype._createSource = function () {\n    this._setLocalSource([], []);\n\n    var sourceHost = this._sourceHost;\n\n    var upSourceMgrList = this._getUpstreamSourceManagers();\n\n    var hasUpstream = !!upSourceMgrList.length;\n    var resultSourceList;\n    var upstreamSignList;\n\n    if (isSeries(sourceHost)) {\n      var seriesModel = sourceHost;\n      var data = void 0;\n      var sourceFormat = void 0;\n      var upSource = void 0;\n\n      if (hasUpstream) {\n        var upSourceMgr = upSourceMgrList[0];\n        upSourceMgr.prepareSource();\n        upSource = upSourceMgr.getSource();\n        data = upSource.data;\n        sourceFormat = upSource.sourceFormat;\n        upstreamSignList = [upSourceMgr._getVersionSign()];\n      } else {\n        data = seriesModel.get('data', true);\n        sourceFormat = isTypedArray(data) ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL;\n        upstreamSignList = [];\n      }\n\n      var newMetaRawOption = this._getSourceMetaRawOption();\n\n      var upMetaRawOption = upSource ? upSource.metaRawOption : null;\n      var seriesLayoutBy = retrieve2(newMetaRawOption.seriesLayoutBy, upMetaRawOption ? upMetaRawOption.seriesLayoutBy : null);\n      var sourceHeader = retrieve2(newMetaRawOption.sourceHeader, upMetaRawOption ? upMetaRawOption.sourceHeader : null);\n      var dimensions = retrieve2(newMetaRawOption.dimensions, upMetaRawOption ? upMetaRawOption.dimensions : null);\n      resultSourceList = [createSource(data, {\n        seriesLayoutBy: seriesLayoutBy,\n        sourceHeader: sourceHeader,\n        dimensions: dimensions\n      }, sourceFormat, seriesModel.get('encode', true))];\n    } else {\n      var datasetModel = sourceHost;\n\n      if (hasUpstream) {\n        var result = this._applyTransform(upSourceMgrList);\n\n        resultSourceList = result.sourceList;\n        upstreamSignList = result.upstreamSignList;\n      } else {\n        var sourceData = datasetModel.get('source', true);\n        resultSourceList = [createSource(sourceData, this._getSourceMetaRawOption(), null, null)];\n        upstreamSignList = [];\n      }\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(resultSourceList && upstreamSignList);\n    }\n\n    this._setLocalSource(resultSourceList, upstreamSignList);\n  };\n\n  SourceManager.prototype._applyTransform = function (upMgrList) {\n    var datasetModel = this._sourceHost;\n    var transformOption = datasetModel.get('transform', true);\n    var fromTransformResult = datasetModel.get('fromTransformResult', true);\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(fromTransformResult != null || transformOption != null);\n    }\n\n    if (fromTransformResult != null) {\n      var errMsg = '';\n\n      if (upMgrList.length !== 1) {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = 'When using `fromTransformResult`, there should be only one upstream dataset';\n        }\n\n        doThrow(errMsg);\n      }\n    }\n\n    var sourceList;\n    var upSourceList = [];\n    var upstreamSignList = [];\n    each(upMgrList, function (upMgr) {\n      upMgr.prepareSource();\n      var upSource = upMgr.getSource(fromTransformResult || 0);\n      var errMsg = '';\n\n      if (fromTransformResult != null && !upSource) {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = 'Can not retrieve result by `fromTransformResult`: ' + fromTransformResult;\n        }\n\n        doThrow(errMsg);\n      }\n\n      upSourceList.push(upSource);\n      upstreamSignList.push(upMgr._getVersionSign());\n    });\n\n    if (transformOption) {\n      sourceList = applyDataTransform(transformOption, upSourceList, {\n        datasetIndex: datasetModel.componentIndex\n      });\n    } else if (fromTransformResult != null) {\n      sourceList = [cloneSourceShallow(upSourceList[0])];\n    }\n\n    return {\n      sourceList: sourceList,\n      upstreamSignList: upstreamSignList\n    };\n  };\n\n  SourceManager.prototype._isDirty = function () {\n    var sourceList = this._sourceList;\n\n    if (!sourceList.length) {\n      return true;\n    }\n\n    var upSourceMgrList = this._getUpstreamSourceManagers();\n\n    for (var i = 0; i < upSourceMgrList.length; i++) {\n      var upSrcMgr = upSourceMgrList[i];\n\n      if (upSrcMgr._isDirty() || this._upstreamSignList[i] !== upSrcMgr._getVersionSign()) {\n        return true;\n      }\n    }\n  };\n\n  SourceManager.prototype.getSource = function (sourceIndex) {\n    return this._sourceList[sourceIndex || 0];\n  };\n\n  SourceManager.prototype._getUpstreamSourceManagers = function () {\n    var sourceHost = this._sourceHost;\n\n    if (isSeries(sourceHost)) {\n      var datasetModel = querySeriesUpstreamDatasetModel(sourceHost);\n      return !datasetModel ? [] : [datasetModel.getSourceManager()];\n    } else {\n      return map(queryDatasetUpstreamDatasetModels(sourceHost), function (datasetModel) {\n        return datasetModel.getSourceManager();\n      });\n    }\n  };\n\n  SourceManager.prototype._getSourceMetaRawOption = function () {\n    var sourceHost = this._sourceHost;\n    var seriesLayoutBy;\n    var sourceHeader;\n    var dimensions;\n\n    if (isSeries(sourceHost)) {\n      seriesLayoutBy = sourceHost.get('seriesLayoutBy', true);\n      sourceHeader = sourceHost.get('sourceHeader', true);\n      dimensions = sourceHost.get('dimensions', true);\n    } else if (!this._getUpstreamSourceManagers().length) {\n      var model = sourceHost;\n      seriesLayoutBy = model.get('seriesLayoutBy', true);\n      sourceHeader = model.get('sourceHeader', true);\n      dimensions = model.get('dimensions', true);\n    }\n\n    return {\n      seriesLayoutBy: seriesLayoutBy,\n      sourceHeader: sourceHeader,\n      dimensions: dimensions\n    };\n  };\n\n  return SourceManager;\n}();\n\nexport { SourceManager };\nexport function disableTransformOptionMerge(datasetModel) {\n  var transformOption = datasetModel.option.transform;\n  transformOption && setAsPrimitive(datasetModel.option.transform);\n}\n\nfunction isSeries(sourceHost) {\n  return sourceHost.mainType === 'series';\n}\n\nfunction doThrow(errMsg) {\n  throw new Error(errMsg);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { getTooltipMarker, encodeHTML, makeValueReadable, convertToColorString } from '../../util/format';\nimport { isString, each, hasOwn, isArray, map, assert, extend } from 'zrender/lib/core/util';\nimport { SortOrderComparator } from '../../data/helper/dataValueHelper';\nimport { getRandomIdBase } from '../../util/number';\nvar TOOLTIP_LINE_HEIGHT_CSS = 'line-height:1';\n\nfunction getTooltipTextStyle(textStyle, renderMode) {\n  var nameFontColor = textStyle.color || '#6e7079';\n  var nameFontSize = textStyle.fontSize || 12;\n  var nameFontWeight = textStyle.fontWeight || '400';\n  var valueFontColor = textStyle.color || '#464646';\n  var valueFontSize = textStyle.fontSize || 14;\n  var valueFontWeight = textStyle.fontWeight || '900';\n\n  if (renderMode === 'html') {\n    return {\n      nameStyle: \"font-size:\" + nameFontSize + \"px;color:\" + nameFontColor + \";font-weight:\" + nameFontWeight,\n      valueStyle: \"font-size:\" + valueFontSize + \"px;color:\" + valueFontColor + \";font-weight:\" + valueFontWeight\n    };\n  } else {\n    return {\n      nameStyle: {\n        fontSize: nameFontSize,\n        fill: nameFontColor,\n        fontWeight: nameFontWeight\n      },\n      valueStyle: {\n        fontSize: valueFontSize,\n        fill: valueFontColor,\n        fontWeight: valueFontWeight\n      }\n    };\n  }\n}\n\nvar HTML_GAPS = [0, 10, 20, 30];\nvar RICH_TEXT_GAPS = ['', '\\n', '\\n\\n', '\\n\\n\\n'];\nexport function createTooltipMarkup(type, option) {\n  option.type = type;\n  return option;\n}\n\nfunction getBuilder(fragment) {\n  return hasOwn(builderMap, fragment.type) && builderMap[fragment.type];\n}\n\nvar builderMap = {\n  section: {\n    planLayout: function (fragment) {\n      var subBlockLen = fragment.blocks.length;\n      var thisBlockHasInnerGap = subBlockLen > 1 || subBlockLen > 0 && !fragment.noHeader;\n      var thisGapLevelBetweenSubBlocks = 0;\n      each(fragment.blocks, function (subBlock) {\n        getBuilder(subBlock).planLayout(subBlock);\n        var subGapLevel = subBlock.__gapLevelBetweenSubBlocks;\n\n        if (subGapLevel >= thisGapLevelBetweenSubBlocks) {\n          thisGapLevelBetweenSubBlocks = subGapLevel + (thisBlockHasInnerGap && (!subGapLevel || subBlock.type === 'section' && !subBlock.noHeader) ? 1 : 0);\n        }\n      });\n      fragment.__gapLevelBetweenSubBlocks = thisGapLevelBetweenSubBlocks;\n    },\n    build: function (ctx, fragment, topMarginForOuterGap, toolTipTextStyle) {\n      var noHeader = fragment.noHeader;\n      var gaps = getGap(fragment);\n      var subMarkupText = buildSubBlocks(ctx, fragment, noHeader ? topMarginForOuterGap : gaps.html, toolTipTextStyle);\n\n      if (noHeader) {\n        return subMarkupText;\n      }\n\n      var displayableHeader = makeValueReadable(fragment.header, 'ordinal', ctx.useUTC);\n      var nameStyle = getTooltipTextStyle(toolTipTextStyle, ctx.renderMode).nameStyle;\n\n      if (ctx.renderMode === 'richText') {\n        return wrapInlineNameRichText(ctx, displayableHeader, nameStyle) + gaps.richText + subMarkupText;\n      } else {\n        return wrapBlockHTML(\"<div style=\\\"\" + nameStyle + \";\" + TOOLTIP_LINE_HEIGHT_CSS + \";\\\">\" + encodeHTML(displayableHeader) + '</div>' + subMarkupText, topMarginForOuterGap);\n      }\n    }\n  },\n  nameValue: {\n    planLayout: function (fragment) {\n      fragment.__gapLevelBetweenSubBlocks = 0;\n    },\n    build: function (ctx, fragment, topMarginForOuterGap, toolTipTextStyle) {\n      var renderMode = ctx.renderMode;\n      var noName = fragment.noName;\n      var noValue = fragment.noValue;\n      var noMarker = !fragment.markerType;\n      var name = fragment.name;\n      var value = fragment.value;\n      var useUTC = ctx.useUTC;\n\n      if (noName && noValue) {\n        return;\n      }\n\n      var markerStr = noMarker ? '' : ctx.markupStyleCreator.makeTooltipMarker(fragment.markerType, fragment.markerColor || '#333', renderMode);\n      var readableName = noName ? '' : makeValueReadable(name, 'ordinal', useUTC);\n      var valueTypeOption = fragment.valueType;\n      var readableValueList = noValue ? [] : isArray(value) ? map(value, function (val, idx) {\n        return makeValueReadable(val, isArray(valueTypeOption) ? valueTypeOption[idx] : valueTypeOption, useUTC);\n      }) : [makeValueReadable(value, isArray(valueTypeOption) ? valueTypeOption[0] : valueTypeOption, useUTC)];\n      var valueAlignRight = !noMarker || !noName;\n      var valueCloseToMarker = !noMarker && noName;\n\n      var _a = getTooltipTextStyle(toolTipTextStyle, renderMode),\n          nameStyle = _a.nameStyle,\n          valueStyle = _a.valueStyle;\n\n      return renderMode === 'richText' ? (noMarker ? '' : markerStr) + (noName ? '' : wrapInlineNameRichText(ctx, readableName, nameStyle)) + (noValue ? '' : wrapInlineValueRichText(ctx, readableValueList, valueAlignRight, valueCloseToMarker, valueStyle)) : wrapBlockHTML((noMarker ? '' : markerStr) + (noName ? '' : wrapInlineNameHTML(readableName, !noMarker, nameStyle)) + (noValue ? '' : wrapInlineValueHTML(readableValueList, valueAlignRight, valueCloseToMarker, valueStyle)), topMarginForOuterGap);\n    }\n  }\n};\n\nfunction buildSubBlocks(ctx, fragment, topMarginForOuterGap, tooltipTextStyle) {\n  var subMarkupTextList = [];\n  var subBlocks = fragment.blocks || [];\n  assert(!subBlocks || isArray(subBlocks));\n  subBlocks = subBlocks || [];\n  var orderMode = ctx.orderMode;\n\n  if (fragment.sortBlocks && orderMode) {\n    subBlocks = subBlocks.slice();\n    var orderMap = {\n      valueAsc: 'asc',\n      valueDesc: 'desc'\n    };\n\n    if (hasOwn(orderMap, orderMode)) {\n      var comparator_1 = new SortOrderComparator(orderMap[orderMode], null);\n      subBlocks.sort(function (a, b) {\n        return comparator_1.evaluate(a.sortParam, b.sortParam);\n      });\n    } else if (orderMode === 'seriesDesc') {\n      subBlocks.reverse();\n    }\n  }\n\n  var gaps = getGap(fragment);\n  each(subBlocks, function (subBlock, idx) {\n    var subMarkupText = getBuilder(subBlock).build(ctx, subBlock, idx > 0 ? gaps.html : 0, tooltipTextStyle);\n    subMarkupText != null && subMarkupTextList.push(subMarkupText);\n  });\n\n  if (!subMarkupTextList.length) {\n    return;\n  }\n\n  return ctx.renderMode === 'richText' ? subMarkupTextList.join(gaps.richText) : wrapBlockHTML(subMarkupTextList.join(''), topMarginForOuterGap);\n}\n\nexport function buildTooltipMarkup(fragment, markupStyleCreator, renderMode, orderMode, useUTC, toolTipTextStyle) {\n  if (!fragment) {\n    return;\n  }\n\n  var builder = getBuilder(fragment);\n  builder.planLayout(fragment);\n  var ctx = {\n    useUTC: useUTC,\n    renderMode: renderMode,\n    orderMode: orderMode,\n    markupStyleCreator: markupStyleCreator\n  };\n  return builder.build(ctx, fragment, 0, toolTipTextStyle);\n}\n\nfunction getGap(fragment) {\n  var gapLevelBetweenSubBlocks = fragment.__gapLevelBetweenSubBlocks;\n  return {\n    html: HTML_GAPS[gapLevelBetweenSubBlocks],\n    richText: RICH_TEXT_GAPS[gapLevelBetweenSubBlocks]\n  };\n}\n\nfunction wrapBlockHTML(encodedContent, topGap) {\n  var clearfix = '<div style=\"clear:both\"></div>';\n  var marginCSS = \"margin: \" + topGap + \"px 0 0\";\n  return \"<div style=\\\"\" + marginCSS + \";\" + TOOLTIP_LINE_HEIGHT_CSS + \";\\\">\" + encodedContent + clearfix + '</div>';\n}\n\nfunction wrapInlineNameHTML(name, leftHasMarker, style) {\n  var marginCss = leftHasMarker ? 'margin-left:2px' : '';\n  return \"<span style=\\\"\" + style + \";\" + marginCss + \"\\\">\" + encodeHTML(name) + '</span>';\n}\n\nfunction wrapInlineValueHTML(valueList, alignRight, valueCloseToMarker, style) {\n  var paddingStr = valueCloseToMarker ? '10px' : '20px';\n  var alignCSS = alignRight ? \"float:right;margin-left:\" + paddingStr : '';\n  return \"<span style=\\\"\" + alignCSS + \";\" + style + \"\\\">\" + map(valueList, function (value) {\n    return encodeHTML(value);\n  }).join('&nbsp;&nbsp;') + '</span>';\n}\n\nfunction wrapInlineNameRichText(ctx, name, style) {\n  return ctx.markupStyleCreator.wrapRichTextStyle(name, style);\n}\n\nfunction wrapInlineValueRichText(ctx, valueList, alignRight, valueCloseToMarker, style) {\n  var styles = [style];\n  var paddingLeft = valueCloseToMarker ? 10 : 20;\n  alignRight && styles.push({\n    padding: [0, 0, 0, paddingLeft],\n    align: 'right'\n  });\n  return ctx.markupStyleCreator.wrapRichTextStyle(valueList.join('  '), styles);\n}\n\nexport function retrieveVisualColorForTooltipMarker(series, dataIndex) {\n  var style = series.getData().getItemVisual(dataIndex, 'style');\n  var color = style[series.visualDrawType];\n  return convertToColorString(color);\n}\nexport function getPaddingFromTooltipModel(model, renderMode) {\n  var padding = model.get('padding');\n  return padding != null ? padding : renderMode === 'richText' ? [8, 10] : 10;\n}\n\nvar TooltipMarkupStyleCreator = function () {\n  function TooltipMarkupStyleCreator() {\n    this.richTextStyles = {};\n    this._nextStyleNameId = getRandomIdBase();\n  }\n\n  TooltipMarkupStyleCreator.prototype._generateStyleName = function () {\n    return '__EC_aUTo_' + this._nextStyleNameId++;\n  };\n\n  TooltipMarkupStyleCreator.prototype.makeTooltipMarker = function (markerType, colorStr, renderMode) {\n    var markerId = renderMode === 'richText' ? this._generateStyleName() : null;\n    var marker = getTooltipMarker({\n      color: colorStr,\n      type: markerType,\n      renderMode: renderMode,\n      markerId: markerId\n    });\n\n    if (isString(marker)) {\n      return marker;\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        assert(markerId);\n      }\n\n      this.richTextStyles[markerId] = marker.style;\n      return marker.content;\n    }\n  };\n\n  TooltipMarkupStyleCreator.prototype.wrapRichTextStyle = function (text, styles) {\n    var finalStl = {};\n\n    if (isArray(styles)) {\n      each(styles, function (stl) {\n        return extend(finalStl, stl);\n      });\n    } else {\n      extend(finalStl, styles);\n    }\n\n    var styleName = this._generateStyleName();\n\n    this.richTextStyles[styleName] = finalStl;\n    return \"{\" + styleName + \"|\" + text + \"}\";\n  };\n\n  return TooltipMarkupStyleCreator;\n}();\n\nexport { TooltipMarkupStyleCreator };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { trim, isArray, each, reduce } from 'zrender/lib/core/util';\nimport { retrieveVisualColorForTooltipMarker, createTooltipMarkup } from './tooltipMarkup';\nimport { retrieveRawValue } from '../../data/helper/dataProvider';\nimport { isNameSpecified } from '../../util/model';\nexport function defaultSeriesFormatTooltip(opt) {\n  var series = opt.series;\n  var dataIndex = opt.dataIndex;\n  var multipleSeries = opt.multipleSeries;\n  var data = series.getData();\n  var tooltipDims = data.mapDimensionsAll('defaultedTooltip');\n  var tooltipDimLen = tooltipDims.length;\n  var value = series.getRawValue(dataIndex);\n  var isValueArr = isArray(value);\n  var markerColor = retrieveVisualColorForTooltipMarker(series, dataIndex);\n  var inlineValue;\n  var inlineValueType;\n  var subBlocks;\n  var sortParam;\n\n  if (tooltipDimLen > 1 || isValueArr && !tooltipDimLen) {\n    var formatArrResult = formatTooltipArrayValue(value, series, dataIndex, tooltipDims, markerColor);\n    inlineValue = formatArrResult.inlineValues;\n    inlineValueType = formatArrResult.inlineValueTypes;\n    subBlocks = formatArrResult.blocks;\n    sortParam = formatArrResult.inlineValues[0];\n  } else if (tooltipDimLen) {\n    var dimInfo = data.getDimensionInfo(tooltipDims[0]);\n    sortParam = inlineValue = retrieveRawValue(data, dataIndex, tooltipDims[0]);\n    inlineValueType = dimInfo.type;\n  } else {\n    sortParam = inlineValue = isValueArr ? value[0] : value;\n  }\n\n  var seriesNameSpecified = isNameSpecified(series);\n  var seriesName = seriesNameSpecified && series.name || '';\n  var itemName = data.getName(dataIndex);\n  var inlineName = multipleSeries ? seriesName : itemName;\n  return createTooltipMarkup('section', {\n    header: seriesName,\n    noHeader: multipleSeries || !seriesNameSpecified,\n    sortParam: sortParam,\n    blocks: [createTooltipMarkup('nameValue', {\n      markerType: 'item',\n      markerColor: markerColor,\n      name: inlineName,\n      noName: !trim(inlineName),\n      value: inlineValue,\n      valueType: inlineValueType\n    })].concat(subBlocks || [])\n  });\n}\n\nfunction formatTooltipArrayValue(value, series, dataIndex, tooltipDims, colorStr) {\n  var data = series.getData();\n  var isValueMultipleLine = reduce(value, function (isValueMultipleLine, val, idx) {\n    var dimItem = data.getDimensionInfo(idx);\n    return isValueMultipleLine = isValueMultipleLine || dimItem && dimItem.tooltip !== false && dimItem.displayName != null;\n  }, false);\n  var inlineValues = [];\n  var inlineValueTypes = [];\n  var blocks = [];\n  tooltipDims.length ? each(tooltipDims, function (dim) {\n    setEachItem(retrieveRawValue(data, dataIndex, dim), dim);\n  }) : each(value, setEachItem);\n\n  function setEachItem(val, dim) {\n    var dimInfo = data.getDimensionInfo(dim);\n\n    if (!dimInfo || dimInfo.otherDims.tooltip === false) {\n      return;\n    }\n\n    if (isValueMultipleLine) {\n      blocks.push(createTooltipMarkup('nameValue', {\n        markerType: 'subItem',\n        markerColor: colorStr,\n        name: dimInfo.displayName,\n        value: val,\n        valueType: dimInfo.type\n      }));\n    } else {\n      inlineValues.push(val);\n      inlineValueTypes.push(dimInfo.type);\n    }\n  }\n\n  return {\n    inlineValues: inlineValues,\n    inlineValueTypes: inlineValueTypes,\n    blocks: blocks\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends, __spreadArrays } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport * as modelUtil from '../util/model';\nimport ComponentModel from './Component';\nimport { PaletteMixin } from './mixin/palette';\nimport { DataFormatMixin } from '../model/mixin/dataFormat';\nimport { getLayoutParams, mergeLayoutParam, fetchLayoutMode } from '../util/layout';\nimport { createTask } from '../core/task';\nimport { mountExtend } from '../util/clazz';\nimport { SourceManager } from '../data/helper/sourceManager';\nimport { defaultSeriesFormatTooltip } from '../component/tooltip/seriesFormatTooltip';\nvar inner = modelUtil.makeInner();\n\nfunction getSelectionKey(data, dataIndex) {\n  return data.getName(dataIndex) || data.getId(dataIndex);\n}\n\nvar SeriesModel = function (_super) {\n  __extends(SeriesModel, _super);\n\n  function SeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this._selectedDataIndicesMap = {};\n    return _this;\n  }\n\n  SeriesModel.prototype.init = function (option, parentModel, ecModel) {\n    this.seriesIndex = this.componentIndex;\n    this.dataTask = createTask({\n      count: dataTaskCount,\n      reset: dataTaskReset\n    });\n    this.dataTask.context = {\n      model: this\n    };\n    this.mergeDefaultAndTheme(option, ecModel);\n    var sourceManager = inner(this).sourceManager = new SourceManager(this);\n    sourceManager.prepareSource();\n    var data = this.getInitialData(option, ecModel);\n    wrapData(data, this);\n    this.dataTask.context.data = data;\n\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.assert(data, 'getInitialData returned invalid data.');\n    }\n\n    inner(this).dataBeforeProcessed = data;\n    autoSeriesName(this);\n\n    this._initSelectedMapFromData(data);\n  };\n\n  SeriesModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n    var layoutMode = fetchLayoutMode(this);\n    var inputPositionParams = layoutMode ? getLayoutParams(option) : {};\n    var themeSubType = this.subType;\n\n    if (ComponentModel.hasClass(themeSubType)) {\n      themeSubType += 'Series';\n    }\n\n    zrUtil.merge(option, ecModel.getTheme().get(this.subType));\n    zrUtil.merge(option, this.getDefaultOption());\n    modelUtil.defaultEmphasis(option, 'label', ['show']);\n    this.fillDataTextStyle(option.data);\n\n    if (layoutMode) {\n      mergeLayoutParam(option, inputPositionParams, layoutMode);\n    }\n  };\n\n  SeriesModel.prototype.mergeOption = function (newSeriesOption, ecModel) {\n    newSeriesOption = zrUtil.merge(this.option, newSeriesOption, true);\n    this.fillDataTextStyle(newSeriesOption.data);\n    var layoutMode = fetchLayoutMode(this);\n\n    if (layoutMode) {\n      mergeLayoutParam(this.option, newSeriesOption, layoutMode);\n    }\n\n    var sourceManager = inner(this).sourceManager;\n    sourceManager.dirty();\n    sourceManager.prepareSource();\n    var data = this.getInitialData(newSeriesOption, ecModel);\n    wrapData(data, this);\n    this.dataTask.dirty();\n    this.dataTask.context.data = data;\n    inner(this).dataBeforeProcessed = data;\n    autoSeriesName(this);\n\n    this._initSelectedMapFromData(data);\n  };\n\n  SeriesModel.prototype.fillDataTextStyle = function (data) {\n    if (data && !zrUtil.isTypedArray(data)) {\n      var props = ['show'];\n\n      for (var i = 0; i < data.length; i++) {\n        if (data[i] && data[i].label) {\n          modelUtil.defaultEmphasis(data[i], 'label', props);\n        }\n      }\n    }\n  };\n\n  SeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return;\n  };\n\n  SeriesModel.prototype.appendData = function (params) {\n    var data = this.getRawData();\n    data.appendData(params.data);\n  };\n\n  SeriesModel.prototype.getData = function (dataType) {\n    var task = getCurrentTask(this);\n\n    if (task) {\n      var data = task.context.data;\n      return dataType == null ? data : data.getLinkedData(dataType);\n    } else {\n      return inner(this).data;\n    }\n  };\n\n  SeriesModel.prototype.getAllData = function () {\n    var mainData = this.getData();\n    return mainData && mainData.getLinkedDataAll ? mainData.getLinkedDataAll() : [{\n      data: mainData\n    }];\n  };\n\n  SeriesModel.prototype.setData = function (data) {\n    var task = getCurrentTask(this);\n\n    if (task) {\n      var context = task.context;\n      context.outputData = data;\n\n      if (task !== this.dataTask) {\n        context.data = data;\n      }\n    }\n\n    inner(this).data = data;\n  };\n\n  SeriesModel.prototype.getSource = function () {\n    return inner(this).sourceManager.getSource();\n  };\n\n  SeriesModel.prototype.getRawData = function () {\n    return inner(this).dataBeforeProcessed;\n  };\n\n  SeriesModel.prototype.getBaseAxis = function () {\n    var coordSys = this.coordinateSystem;\n    return coordSys && coordSys.getBaseAxis && coordSys.getBaseAxis();\n  };\n\n  SeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    return defaultSeriesFormatTooltip({\n      series: this,\n      dataIndex: dataIndex,\n      multipleSeries: multipleSeries\n    });\n  };\n\n  SeriesModel.prototype.isAnimationEnabled = function () {\n    if (env.node) {\n      return false;\n    }\n\n    var animationEnabled = this.getShallow('animation');\n\n    if (animationEnabled) {\n      if (this.getData().count() > this.getShallow('animationThreshold')) {\n        animationEnabled = false;\n      }\n    }\n\n    return !!animationEnabled;\n  };\n\n  SeriesModel.prototype.restoreData = function () {\n    this.dataTask.dirty();\n  };\n\n  SeriesModel.prototype.getColorFromPalette = function (name, scope, requestColorNum) {\n    var ecModel = this.ecModel;\n    var color = PaletteMixin.prototype.getColorFromPalette.call(this, name, scope, requestColorNum);\n\n    if (!color) {\n      color = ecModel.getColorFromPalette(name, scope, requestColorNum);\n    }\n\n    return color;\n  };\n\n  SeriesModel.prototype.coordDimToDataDim = function (coordDim) {\n    return this.getRawData().mapDimensionsAll(coordDim);\n  };\n\n  SeriesModel.prototype.getProgressive = function () {\n    return this.get('progressive');\n  };\n\n  SeriesModel.prototype.getProgressiveThreshold = function () {\n    return this.get('progressiveThreshold');\n  };\n\n  SeriesModel.prototype.select = function (innerDataIndices, dataType) {\n    this._innerSelect(this.getData(dataType), innerDataIndices);\n  };\n\n  SeriesModel.prototype.unselect = function (innerDataIndices, dataType) {\n    var selectedMap = this.option.selectedMap;\n\n    if (!selectedMap) {\n      return;\n    }\n\n    var data = this.getData(dataType);\n\n    for (var i = 0; i < innerDataIndices.length; i++) {\n      var dataIndex = innerDataIndices[i];\n      var nameOrId = getSelectionKey(data, dataIndex);\n      selectedMap[nameOrId] = false;\n      this._selectedDataIndicesMap[nameOrId] = -1;\n    }\n  };\n\n  SeriesModel.prototype.toggleSelect = function (innerDataIndices, dataType) {\n    var tmpArr = [];\n\n    for (var i = 0; i < innerDataIndices.length; i++) {\n      tmpArr[0] = innerDataIndices[i];\n      this.isSelected(innerDataIndices[i], dataType) ? this.unselect(tmpArr, dataType) : this.select(tmpArr, dataType);\n    }\n  };\n\n  SeriesModel.prototype.getSelectedDataIndices = function () {\n    var selectedDataIndicesMap = this._selectedDataIndicesMap;\n    var nameOrIds = zrUtil.keys(selectedDataIndicesMap);\n    var dataIndices = [];\n\n    for (var i = 0; i < nameOrIds.length; i++) {\n      var dataIndex = selectedDataIndicesMap[nameOrIds[i]];\n\n      if (dataIndex >= 0) {\n        dataIndices.push(dataIndex);\n      }\n    }\n\n    return dataIndices;\n  };\n\n  SeriesModel.prototype.isSelected = function (dataIndex, dataType) {\n    var selectedMap = this.option.selectedMap;\n\n    if (!selectedMap) {\n      return false;\n    }\n\n    var data = this.getData(dataType);\n    var nameOrId = getSelectionKey(data, dataIndex);\n    return selectedMap[nameOrId] || false;\n  };\n\n  SeriesModel.prototype._innerSelect = function (data, innerDataIndices) {\n    var _a, _b;\n\n    var selectedMode = this.option.selectedMode;\n    var len = innerDataIndices.length;\n\n    if (!selectedMode || !len) {\n      return;\n    }\n\n    if (selectedMode === 'multiple') {\n      var selectedMap = this.option.selectedMap || (this.option.selectedMap = {});\n\n      for (var i = 0; i < len; i++) {\n        var dataIndex = innerDataIndices[i];\n        var nameOrId = getSelectionKey(data, dataIndex);\n        selectedMap[nameOrId] = true;\n        this._selectedDataIndicesMap[nameOrId] = data.getRawIndex(dataIndex);\n      }\n    } else if (selectedMode === 'single' || selectedMode === true) {\n      var lastDataIndex = innerDataIndices[len - 1];\n      var nameOrId = getSelectionKey(data, lastDataIndex);\n      this.option.selectedMap = (_a = {}, _a[nameOrId] = true, _a);\n      this._selectedDataIndicesMap = (_b = {}, _b[nameOrId] = data.getRawIndex(lastDataIndex), _b);\n    }\n  };\n\n  SeriesModel.prototype._initSelectedMapFromData = function (data) {\n    if (this.option.selectedMap) {\n      return;\n    }\n\n    var dataIndices = [];\n\n    if (data.hasItemOption) {\n      data.each(function (idx) {\n        var rawItem = data.getRawDataItem(idx);\n\n        if (typeof rawItem === 'object' && rawItem.selected) {\n          dataIndices.push(idx);\n        }\n      });\n    }\n\n    if (dataIndices.length > 0) {\n      this._innerSelect(data, dataIndices);\n    }\n  };\n\n  SeriesModel.registerClass = function (clz) {\n    return ComponentModel.registerClass(clz);\n  };\n\n  SeriesModel.protoInitialize = function () {\n    var proto = SeriesModel.prototype;\n    proto.type = 'series.__base__';\n    proto.seriesIndex = 0;\n    proto.useColorPaletteOnData = false;\n    proto.ignoreStyleOnData = false;\n    proto.hasSymbolVisual = false;\n    proto.defaultSymbol = 'circle';\n    proto.visualStyleAccessPath = 'itemStyle';\n    proto.visualDrawType = 'fill';\n  }();\n\n  return SeriesModel;\n}(ComponentModel);\n\nzrUtil.mixin(SeriesModel, DataFormatMixin);\nzrUtil.mixin(SeriesModel, PaletteMixin);\nmountExtend(SeriesModel, ComponentModel);\n\nfunction autoSeriesName(seriesModel) {\n  var name = seriesModel.name;\n\n  if (!modelUtil.isNameSpecified(seriesModel)) {\n    seriesModel.name = getSeriesAutoName(seriesModel) || name;\n  }\n}\n\nfunction getSeriesAutoName(seriesModel) {\n  var data = seriesModel.getRawData();\n  var dataDims = data.mapDimensionsAll('seriesName');\n  var nameArr = [];\n  zrUtil.each(dataDims, function (dataDim) {\n    var dimInfo = data.getDimensionInfo(dataDim);\n    dimInfo.displayName && nameArr.push(dimInfo.displayName);\n  });\n  return nameArr.join(' ');\n}\n\nfunction dataTaskCount(context) {\n  return context.model.getRawData().count();\n}\n\nfunction dataTaskReset(context) {\n  var seriesModel = context.model;\n  seriesModel.setData(seriesModel.getRawData().cloneShallow());\n  return dataTaskProgress;\n}\n\nfunction dataTaskProgress(param, context) {\n  if (context.outputData && param.end > context.outputData.count()) {\n    context.model.getRawData().cloneShallow(context.outputData);\n  }\n}\n\nfunction wrapData(data, seriesModel) {\n  zrUtil.each(__spreadArrays(data.CHANGABLE_METHODS, data.DOWNSAMPLE_METHODS), function (methodName) {\n    data.wrapMethod(methodName, zrUtil.curry(onDataChange, seriesModel));\n  });\n}\n\nfunction onDataChange(seriesModel, newList) {\n  var task = getCurrentTask(seriesModel);\n\n  if (task) {\n    task.setOutputEnd((newList || this).count());\n  }\n\n  return newList;\n}\n\nfunction getCurrentTask(seriesModel) {\n  var scheduler = (seriesModel.ecModel || {}).scheduler;\n  var pipeline = scheduler && scheduler.getPipeline(seriesModel.uid);\n\n  if (pipeline) {\n    var task = pipeline.currentTask;\n\n    if (task) {\n      var agentStubMap = task.agentStubMap;\n\n      if (agentStubMap) {\n        task = agentStubMap.get(seriesModel.uid);\n      }\n    }\n\n    return task;\n  }\n}\n\nexport default SeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Group from 'zrender/lib/graphic/Group';\nimport * as componentUtil from '../util/component';\nimport * as clazzUtil from '../util/clazz';\n\nvar ComponentView = function () {\n  function ComponentView() {\n    this.group = new Group();\n    this.uid = componentUtil.getUID('viewComponent');\n  }\n\n  ComponentView.prototype.init = function (ecModel, api) {};\n\n  ComponentView.prototype.render = function (model, ecModel, api, payload) {};\n\n  ComponentView.prototype.dispose = function (ecModel, api) {};\n\n  ComponentView.prototype.updateView = function (model, ecModel, api, payload) {};\n\n  ComponentView.prototype.updateLayout = function (model, ecModel, api, payload) {};\n\n  ComponentView.prototype.updateVisual = function (model, ecModel, api, payload) {};\n\n  ComponentView.prototype.blurSeries = function (seriesModels, ecModel) {};\n\n  return ComponentView;\n}();\n\n;\nclazzUtil.enableClassExtend(ComponentView);\nclazzUtil.enableClassManagement(ComponentView);\nexport default ComponentView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner } from '../../util/model';\nexport default function createRenderPlanner() {\n  var inner = makeInner();\n  return function (seriesModel) {\n    var fields = inner(seriesModel);\n    var pipelineContext = seriesModel.pipelineContext;\n    var originalLarge = !!fields.large;\n    var originalProgressive = !!fields.progressiveRender;\n    var large = fields.large = !!(pipelineContext && pipelineContext.large);\n    var progressive = fields.progressiveRender = !!(pipelineContext && pipelineContext.progressiveRender);\n    return !!(originalLarge !== large || originalProgressive !== progressive) && 'reset';\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each } from 'zrender/lib/core/util';\nimport Group from 'zrender/lib/graphic/Group';\nimport * as componentUtil from '../util/component';\nimport * as clazzUtil from '../util/clazz';\nimport * as modelUtil from '../util/model';\nimport { enterEmphasis, leaveEmphasis, getHighlightDigit } from '../util/states';\nimport { createTask } from '../core/task';\nimport createRenderPlanner from '../chart/helper/createRenderPlanner';\nvar inner = modelUtil.makeInner();\nvar renderPlanner = createRenderPlanner();\n\nvar ChartView = function () {\n  function ChartView() {\n    this.group = new Group();\n    this.uid = componentUtil.getUID('viewChart');\n    this.renderTask = createTask({\n      plan: renderTaskPlan,\n      reset: renderTaskReset\n    });\n    this.renderTask.context = {\n      view: this\n    };\n  }\n\n  ChartView.prototype.init = function (ecModel, api) {};\n\n  ChartView.prototype.render = function (seriesModel, ecModel, api, payload) {};\n\n  ChartView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\n    toggleHighlight(seriesModel.getData(), payload, 'emphasis');\n  };\n\n  ChartView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\n    toggleHighlight(seriesModel.getData(), payload, 'normal');\n  };\n\n  ChartView.prototype.remove = function (ecModel, api) {\n    this.group.removeAll();\n  };\n\n  ChartView.prototype.dispose = function (ecModel, api) {};\n\n  ChartView.prototype.updateView = function (seriesModel, ecModel, api, payload) {\n    this.render(seriesModel, ecModel, api, payload);\n  };\n\n  ChartView.prototype.updateLayout = function (seriesModel, ecModel, api, payload) {\n    this.render(seriesModel, ecModel, api, payload);\n  };\n\n  ChartView.prototype.updateVisual = function (seriesModel, ecModel, api, payload) {\n    this.render(seriesModel, ecModel, api, payload);\n  };\n\n  ChartView.markUpdateMethod = function (payload, methodName) {\n    inner(payload).updateMethod = methodName;\n  };\n\n  ChartView.protoInitialize = function () {\n    var proto = ChartView.prototype;\n    proto.type = 'chart';\n  }();\n\n  return ChartView;\n}();\n\n;\n\nfunction elSetState(el, state, highlightDigit) {\n  if (el) {\n    (state === 'emphasis' ? enterEmphasis : leaveEmphasis)(el, highlightDigit);\n  }\n}\n\nfunction toggleHighlight(data, payload, state) {\n  var dataIndex = modelUtil.queryDataIndex(data, payload);\n  var highlightDigit = payload && payload.highlightKey != null ? getHighlightDigit(payload.highlightKey) : null;\n\n  if (dataIndex != null) {\n    each(modelUtil.normalizeToArray(dataIndex), function (dataIdx) {\n      elSetState(data.getItemGraphicEl(dataIdx), state, highlightDigit);\n    });\n  } else {\n    data.eachItemGraphicEl(function (el) {\n      elSetState(el, state, highlightDigit);\n    });\n  }\n}\n\nclazzUtil.enableClassExtend(ChartView, ['dispose']);\nclazzUtil.enableClassManagement(ChartView);\n\nfunction renderTaskPlan(context) {\n  return renderPlanner(context.model);\n}\n\nfunction renderTaskReset(context) {\n  var seriesModel = context.model;\n  var ecModel = context.ecModel;\n  var api = context.api;\n  var payload = context.payload;\n  var progressiveRender = seriesModel.pipelineContext.progressiveRender;\n  var view = context.view;\n  var updateMethod = payload && inner(payload).updateMethod;\n  var methodName = progressiveRender ? 'incrementalPrepareRender' : updateMethod && view[updateMethod] ? updateMethod : 'render';\n\n  if (methodName !== 'render') {\n    view[methodName](seriesModel, ecModel, api, payload);\n  }\n\n  return progressMethodMap[methodName];\n}\n\nvar progressMethodMap = {\n  incrementalPrepareRender: {\n    progress: function (params, context) {\n      context.view.incrementalRender(params, context.model, context.ecModel, context.api, context.payload);\n    }\n  },\n  render: {\n    forceFirstProgress: true,\n    progress: function (params, context) {\n      context.view.render(context.model, context.ecModel, context.api, context.payload);\n    }\n  }\n};\nexport default ChartView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar ORIGIN_METHOD = '\\0__throttleOriginMethod';\nvar RATE = '\\0__throttleRate';\nvar THROTTLE_TYPE = '\\0__throttleType';\n;\nexport function throttle(fn, delay, debounce) {\n  var currCall;\n  var lastCall = 0;\n  var lastExec = 0;\n  var timer = null;\n  var diff;\n  var scope;\n  var args;\n  var debounceNextCall;\n  delay = delay || 0;\n\n  function exec() {\n    lastExec = new Date().getTime();\n    timer = null;\n    fn.apply(scope, args || []);\n  }\n\n  var cb = function () {\n    var cbArgs = [];\n\n    for (var _i = 0; _i < arguments.length; _i++) {\n      cbArgs[_i] = arguments[_i];\n    }\n\n    currCall = new Date().getTime();\n    scope = this;\n    args = cbArgs;\n    var thisDelay = debounceNextCall || delay;\n    var thisDebounce = debounceNextCall || debounce;\n    debounceNextCall = null;\n    diff = currCall - (thisDebounce ? lastCall : lastExec) - thisDelay;\n    clearTimeout(timer);\n\n    if (thisDebounce) {\n      timer = setTimeout(exec, thisDelay);\n    } else {\n      if (diff >= 0) {\n        exec();\n      } else {\n        timer = setTimeout(exec, -diff);\n      }\n    }\n\n    lastCall = currCall;\n  };\n\n  cb.clear = function () {\n    if (timer) {\n      clearTimeout(timer);\n      timer = null;\n    }\n  };\n\n  cb.debounceNextCall = function (debounceDelay) {\n    debounceNextCall = debounceDelay;\n  };\n\n  return cb;\n}\nexport function createOrUpdate(obj, fnAttr, rate, throttleType) {\n  var fn = obj[fnAttr];\n\n  if (!fn) {\n    return;\n  }\n\n  var originFn = fn[ORIGIN_METHOD] || fn;\n  var lastThrottleType = fn[THROTTLE_TYPE];\n  var lastRate = fn[RATE];\n\n  if (lastRate !== rate || lastThrottleType !== throttleType) {\n    if (rate == null || !throttleType) {\n      return obj[fnAttr] = originFn;\n    }\n\n    fn = obj[fnAttr] = throttle(originFn, rate, throttleType === 'debounce');\n    fn[ORIGIN_METHOD] = originFn;\n    fn[THROTTLE_TYPE] = throttleType;\n    fn[RATE] = rate;\n  }\n\n  return fn;\n}\nexport function clear(obj, fnAttr) {\n  var fn = obj[fnAttr];\n\n  if (fn && fn[ORIGIN_METHOD]) {\n    obj[fnAttr] = fn[ORIGIN_METHOD];\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isFunction, extend, createHashMap } from 'zrender/lib/core/util';\nimport makeStyleMapper from '../model/mixin/makeStyleMapper';\nimport { ITEM_STYLE_KEY_MAP } from '../model/mixin/itemStyle';\nimport { LINE_STYLE_KEY_MAP } from '../model/mixin/lineStyle';\nimport Model from '../model/Model';\nimport { makeInner } from '../util/model';\nvar inner = makeInner();\nvar defaultStyleMappers = {\n  itemStyle: makeStyleMapper(ITEM_STYLE_KEY_MAP, true),\n  lineStyle: makeStyleMapper(LINE_STYLE_KEY_MAP, true)\n};\nvar defaultColorKey = {\n  lineStyle: 'stroke',\n  itemStyle: 'fill'\n};\n\nfunction getStyleMapper(seriesModel, stylePath) {\n  var styleMapper = seriesModel.visualStyleMapper || defaultStyleMappers[stylePath];\n\n  if (!styleMapper) {\n    console.warn(\"Unkown style type '\" + stylePath + \"'.\");\n    return defaultStyleMappers.itemStyle;\n  }\n\n  return styleMapper;\n}\n\nfunction getDefaultColorKey(seriesModel, stylePath) {\n  var colorKey = seriesModel.visualDrawType || defaultColorKey[stylePath];\n\n  if (!colorKey) {\n    console.warn(\"Unkown style type '\" + stylePath + \"'.\");\n    return 'fill';\n  }\n\n  return colorKey;\n}\n\nvar seriesStyleTask = {\n  createOnAllSeries: true,\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    var data = seriesModel.getData();\n    var stylePath = seriesModel.visualStyleAccessPath || 'itemStyle';\n    var styleModel = seriesModel.getModel(stylePath);\n    var getStyle = getStyleMapper(seriesModel, stylePath);\n    var globalStyle = getStyle(styleModel);\n    var decalOption = styleModel.getShallow('decal');\n\n    if (decalOption) {\n      data.setVisual('decal', decalOption);\n      decalOption.dirty = true;\n    }\n\n    var colorKey = getDefaultColorKey(seriesModel, stylePath);\n    var color = globalStyle[colorKey];\n    var colorCallback = isFunction(color) ? color : null;\n\n    if (!globalStyle[colorKey] || colorCallback) {\n      globalStyle[colorKey] = seriesModel.getColorFromPalette(seriesModel.name, null, ecModel.getSeriesCount());\n      data.setVisual('colorFromPalette', true);\n    }\n\n    data.setVisual('style', globalStyle);\n    data.setVisual('drawType', colorKey);\n\n    if (!ecModel.isSeriesFiltered(seriesModel) && colorCallback) {\n      data.setVisual('colorFromPalette', false);\n      return {\n        dataEach: function (data, idx) {\n          var dataParams = seriesModel.getDataParams(idx);\n          var itemStyle = extend({}, globalStyle);\n          itemStyle[colorKey] = colorCallback(dataParams);\n          data.setItemVisual(idx, 'style', itemStyle);\n        }\n      };\n    }\n  }\n};\nvar sharedModel = new Model();\nvar dataStyleTask = {\n  createOnAllSeries: true,\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    if (seriesModel.ignoreStyleOnData || ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var stylePath = seriesModel.visualStyleAccessPath || 'itemStyle';\n    var getStyle = getStyleMapper(seriesModel, stylePath);\n    var colorKey = data.getVisual('drawType');\n    return {\n      dataEach: data.hasItemOption ? function (data, idx) {\n        var rawItem = data.getRawDataItem(idx);\n\n        if (rawItem && rawItem[stylePath]) {\n          sharedModel.option = rawItem[stylePath];\n          var style = getStyle(sharedModel);\n          var existsStyle = data.ensureUniqueItemVisual(idx, 'style');\n          extend(existsStyle, style);\n\n          if (sharedModel.option.decal) {\n            data.setItemVisual(idx, 'decal', sharedModel.option.decal);\n            sharedModel.option.decal.dirty = true;\n          }\n\n          if (colorKey in style) {\n            data.setItemVisual(idx, 'colorFromPalette', false);\n          }\n        }\n      } : null\n    };\n  }\n};\nvar dataColorPaletteTask = {\n  performRawSeries: true,\n  overallReset: function (ecModel) {\n    var paletteScopeGroupByType = createHashMap();\n    ecModel.eachSeries(function (seriesModel) {\n      if (!seriesModel.useColorPaletteOnData) {\n        return;\n      }\n\n      var colorScope = paletteScopeGroupByType.get(seriesModel.type);\n\n      if (!colorScope) {\n        colorScope = {};\n        paletteScopeGroupByType.set(seriesModel.type, colorScope);\n      }\n\n      inner(seriesModel).scope = colorScope;\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      if (!seriesModel.useColorPaletteOnData || ecModel.isSeriesFiltered(seriesModel)) {\n        return;\n      }\n\n      var dataAll = seriesModel.getRawData();\n      var idxMap = {};\n      var data = seriesModel.getData();\n      var colorScope = inner(seriesModel).scope;\n      var stylePath = seriesModel.visualStyleAccessPath || 'itemStyle';\n      var colorKey = getDefaultColorKey(seriesModel, stylePath);\n      data.each(function (idx) {\n        var rawIdx = data.getRawIndex(idx);\n        idxMap[rawIdx] = idx;\n      });\n      dataAll.each(function (rawIdx) {\n        var idx = idxMap[rawIdx];\n        var fromPalette = data.getItemVisual(idx, 'colorFromPalette');\n\n        if (fromPalette) {\n          var itemStyle = data.ensureUniqueItemVisual(idx, 'style');\n          var name_1 = dataAll.getName(rawIdx) || rawIdx + '';\n          var dataCount = dataAll.count();\n          itemStyle[colorKey] = seriesModel.getColorFromPalette(name_1, colorScope, dataCount);\n        }\n      });\n    });\n  }\n};\nexport { seriesStyleTask, dataStyleTask, dataColorPaletteTask };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../util/graphic';\nvar PI = Math.PI;\nexport default function defaultLoading(api, opts) {\n  opts = opts || {};\n  zrUtil.defaults(opts, {\n    text: 'loading',\n    textColor: '#000',\n    fontSize: 12,\n    fontWeight: 'normal',\n    fontStyle: 'normal',\n    fontFamily: 'sans-serif',\n    maskColor: 'rgba(255, 255, 255, 0.8)',\n    showSpinner: true,\n    color: '#5470c6',\n    spinnerRadius: 10,\n    lineWidth: 5,\n    zlevel: 0\n  });\n  var group = new graphic.Group();\n  var mask = new graphic.Rect({\n    style: {\n      fill: opts.maskColor\n    },\n    zlevel: opts.zlevel,\n    z: 10000\n  });\n  group.add(mask);\n  var textContent = new graphic.Text({\n    style: {\n      text: opts.text,\n      fill: opts.textColor,\n      fontSize: opts.fontSize,\n      fontWeight: opts.fontWeight,\n      fontStyle: opts.fontStyle,\n      fontFamily: opts.fontFamily\n    }\n  });\n  var labelRect = new graphic.Rect({\n    style: {\n      fill: 'none'\n    },\n    textContent: textContent,\n    textConfig: {\n      position: 'right',\n      distance: 10\n    },\n    zlevel: opts.zlevel,\n    z: 10001\n  });\n  group.add(labelRect);\n  var arc;\n\n  if (opts.showSpinner) {\n    arc = new graphic.Arc({\n      shape: {\n        startAngle: -PI / 2,\n        endAngle: -PI / 2 + 0.1,\n        r: opts.spinnerRadius\n      },\n      style: {\n        stroke: opts.color,\n        lineCap: 'round',\n        lineWidth: opts.lineWidth\n      },\n      zlevel: opts.zlevel,\n      z: 10001\n    });\n    arc.animateShape(true).when(1000, {\n      endAngle: PI * 3 / 2\n    }).start('circularInOut');\n    arc.animateShape(true).when(1000, {\n      startAngle: PI * 3 / 2\n    }).delay(300).start('circularInOut');\n    group.add(arc);\n  }\n\n  group.resize = function () {\n    var textWidth = textContent.getBoundingRect().width;\n    var r = opts.showSpinner ? opts.spinnerRadius : 0;\n    var cx = (api.getWidth() - r * 2 - (opts.showSpinner && textWidth ? 10 : 0) - textWidth) / 2 - (opts.showSpinner && textWidth ? 0 : 5 + textWidth / 2) + (opts.showSpinner ? 0 : textWidth / 2) + (textWidth ? 0 : r);\n    var cy = api.getHeight() / 2;\n    opts.showSpinner && arc.setShape({\n      cx: cx,\n      cy: cy\n    });\n    labelRect.setShape({\n      x: cx - r,\n      y: cy - r,\n      width: r * 2,\n      height: r * 2\n    });\n    mask.setShape({\n      x: 0,\n      y: 0,\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n  };\n\n  group.resize();\n  return group;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, map, isFunction, createHashMap, noop, assert } from 'zrender/lib/core/util';\nimport { createTask } from './task';\nimport { getUID } from '../util/component';\nimport GlobalModel from '../model/Global';\nimport ExtensionAPI from './ExtensionAPI';\nimport { normalizeToArray } from '../util/model';\n;\n\nvar Scheduler = function () {\n  function Scheduler(ecInstance, api, dataProcessorHandlers, visualHandlers) {\n    this._stageTaskMap = createHashMap();\n    this.ecInstance = ecInstance;\n    this.api = api;\n    dataProcessorHandlers = this._dataProcessorHandlers = dataProcessorHandlers.slice();\n    visualHandlers = this._visualHandlers = visualHandlers.slice();\n    this._allHandlers = dataProcessorHandlers.concat(visualHandlers);\n  }\n\n  Scheduler.prototype.restoreData = function (ecModel, payload) {\n    ecModel.restoreData(payload);\n\n    this._stageTaskMap.each(function (taskRecord) {\n      var overallTask = taskRecord.overallTask;\n      overallTask && overallTask.dirty();\n    });\n  };\n\n  Scheduler.prototype.getPerformArgs = function (task, isBlock) {\n    if (!task.__pipeline) {\n      return;\n    }\n\n    var pipeline = this._pipelineMap.get(task.__pipeline.id);\n\n    var pCtx = pipeline.context;\n    var incremental = !isBlock && pipeline.progressiveEnabled && (!pCtx || pCtx.progressiveRender) && task.__idxInPipeline > pipeline.blockIndex;\n    var step = incremental ? pipeline.step : null;\n    var modDataCount = pCtx && pCtx.modDataCount;\n    var modBy = modDataCount != null ? Math.ceil(modDataCount / step) : null;\n    return {\n      step: step,\n      modBy: modBy,\n      modDataCount: modDataCount\n    };\n  };\n\n  Scheduler.prototype.getPipeline = function (pipelineId) {\n    return this._pipelineMap.get(pipelineId);\n  };\n\n  Scheduler.prototype.updateStreamModes = function (seriesModel, view) {\n    var pipeline = this._pipelineMap.get(seriesModel.uid);\n\n    var data = seriesModel.getData();\n    var dataLen = data.count();\n    var progressiveRender = pipeline.progressiveEnabled && view.incrementalPrepareRender && dataLen >= pipeline.threshold;\n    var large = seriesModel.get('large') && dataLen >= seriesModel.get('largeThreshold');\n    var modDataCount = seriesModel.get('progressiveChunkMode') === 'mod' ? dataLen : null;\n    seriesModel.pipelineContext = pipeline.context = {\n      progressiveRender: progressiveRender,\n      modDataCount: modDataCount,\n      large: large\n    };\n  };\n\n  Scheduler.prototype.restorePipelines = function (ecModel) {\n    var scheduler = this;\n    var pipelineMap = scheduler._pipelineMap = createHashMap();\n    ecModel.eachSeries(function (seriesModel) {\n      var progressive = seriesModel.getProgressive();\n      var pipelineId = seriesModel.uid;\n      pipelineMap.set(pipelineId, {\n        id: pipelineId,\n        head: null,\n        tail: null,\n        threshold: seriesModel.getProgressiveThreshold(),\n        progressiveEnabled: progressive && !(seriesModel.preventIncremental && seriesModel.preventIncremental()),\n        blockIndex: -1,\n        step: Math.round(progressive || 700),\n        count: 0\n      });\n\n      scheduler._pipe(seriesModel, seriesModel.dataTask);\n    });\n  };\n\n  Scheduler.prototype.prepareStageTasks = function () {\n    var stageTaskMap = this._stageTaskMap;\n    var ecModel = this.api.getModel();\n    var api = this.api;\n    each(this._allHandlers, function (handler) {\n      var record = stageTaskMap.get(handler.uid) || stageTaskMap.set(handler.uid, {});\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = '\"reset\" and \"overallReset\" must not be both specified.';\n      }\n\n      assert(!(handler.reset && handler.overallReset), errMsg);\n      handler.reset && this._createSeriesStageTask(handler, record, ecModel, api);\n      handler.overallReset && this._createOverallStageTask(handler, record, ecModel, api);\n    }, this);\n  };\n\n  Scheduler.prototype.prepareView = function (view, model, ecModel, api) {\n    var renderTask = view.renderTask;\n    var context = renderTask.context;\n    context.model = model;\n    context.ecModel = ecModel;\n    context.api = api;\n    renderTask.__block = !view.incrementalPrepareRender;\n\n    this._pipe(model, renderTask);\n  };\n\n  Scheduler.prototype.performDataProcessorTasks = function (ecModel, payload) {\n    this._performStageTasks(this._dataProcessorHandlers, ecModel, payload, {\n      block: true\n    });\n  };\n\n  Scheduler.prototype.performVisualTasks = function (ecModel, payload, opt) {\n    this._performStageTasks(this._visualHandlers, ecModel, payload, opt);\n  };\n\n  Scheduler.prototype._performStageTasks = function (stageHandlers, ecModel, payload, opt) {\n    opt = opt || {};\n    var unfinished = false;\n    var scheduler = this;\n    each(stageHandlers, function (stageHandler, idx) {\n      if (opt.visualType && opt.visualType !== stageHandler.visualType) {\n        return;\n      }\n\n      var stageHandlerRecord = scheduler._stageTaskMap.get(stageHandler.uid);\n\n      var seriesTaskMap = stageHandlerRecord.seriesTaskMap;\n      var overallTask = stageHandlerRecord.overallTask;\n\n      if (overallTask) {\n        var overallNeedDirty_1;\n        var agentStubMap = overallTask.agentStubMap;\n        agentStubMap.each(function (stub) {\n          if (needSetDirty(opt, stub)) {\n            stub.dirty();\n            overallNeedDirty_1 = true;\n          }\n        });\n        overallNeedDirty_1 && overallTask.dirty();\n        scheduler.updatePayload(overallTask, payload);\n        var performArgs_1 = scheduler.getPerformArgs(overallTask, opt.block);\n        agentStubMap.each(function (stub) {\n          stub.perform(performArgs_1);\n        });\n\n        if (overallTask.perform(performArgs_1)) {\n          unfinished = true;\n        }\n      } else if (seriesTaskMap) {\n        seriesTaskMap.each(function (task, pipelineId) {\n          if (needSetDirty(opt, task)) {\n            task.dirty();\n          }\n\n          var performArgs = scheduler.getPerformArgs(task, opt.block);\n          performArgs.skip = !stageHandler.performRawSeries && ecModel.isSeriesFiltered(task.context.model);\n          scheduler.updatePayload(task, payload);\n\n          if (task.perform(performArgs)) {\n            unfinished = true;\n          }\n        });\n      }\n    });\n\n    function needSetDirty(opt, task) {\n      return opt.setDirty && (!opt.dirtyMap || opt.dirtyMap.get(task.__pipeline.id));\n    }\n\n    this.unfinished = unfinished || this.unfinished;\n  };\n\n  Scheduler.prototype.performSeriesTasks = function (ecModel) {\n    var unfinished;\n    ecModel.eachSeries(function (seriesModel) {\n      unfinished = seriesModel.dataTask.perform() || unfinished;\n    });\n    this.unfinished = unfinished || this.unfinished;\n  };\n\n  Scheduler.prototype.plan = function () {\n    this._pipelineMap.each(function (pipeline) {\n      var task = pipeline.tail;\n\n      do {\n        if (task.__block) {\n          pipeline.blockIndex = task.__idxInPipeline;\n          break;\n        }\n\n        task = task.getUpstream();\n      } while (task);\n    });\n  };\n\n  Scheduler.prototype.updatePayload = function (task, payload) {\n    payload !== 'remain' && (task.context.payload = payload);\n  };\n\n  Scheduler.prototype._createSeriesStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\n    var scheduler = this;\n    var oldSeriesTaskMap = stageHandlerRecord.seriesTaskMap;\n    var newSeriesTaskMap = stageHandlerRecord.seriesTaskMap = createHashMap();\n    var seriesType = stageHandler.seriesType;\n    var getTargetSeries = stageHandler.getTargetSeries;\n\n    if (stageHandler.createOnAllSeries) {\n      ecModel.eachRawSeries(create);\n    } else if (seriesType) {\n      ecModel.eachRawSeriesByType(seriesType, create);\n    } else if (getTargetSeries) {\n      getTargetSeries(ecModel, api).each(create);\n    }\n\n    function create(seriesModel) {\n      var pipelineId = seriesModel.uid;\n      var task = newSeriesTaskMap.set(pipelineId, oldSeriesTaskMap && oldSeriesTaskMap.get(pipelineId) || createTask({\n        plan: seriesTaskPlan,\n        reset: seriesTaskReset,\n        count: seriesTaskCount\n      }));\n      task.context = {\n        model: seriesModel,\n        ecModel: ecModel,\n        api: api,\n        useClearVisual: stageHandler.isVisual && !stageHandler.isLayout,\n        plan: stageHandler.plan,\n        reset: stageHandler.reset,\n        scheduler: scheduler\n      };\n\n      scheduler._pipe(seriesModel, task);\n    }\n  };\n\n  Scheduler.prototype._createOverallStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\n    var scheduler = this;\n    var overallTask = stageHandlerRecord.overallTask = stageHandlerRecord.overallTask || createTask({\n      reset: overallTaskReset\n    });\n    overallTask.context = {\n      ecModel: ecModel,\n      api: api,\n      overallReset: stageHandler.overallReset,\n      scheduler: scheduler\n    };\n    var oldAgentStubMap = overallTask.agentStubMap;\n    var newAgentStubMap = overallTask.agentStubMap = createHashMap();\n    var seriesType = stageHandler.seriesType;\n    var getTargetSeries = stageHandler.getTargetSeries;\n    var overallProgress = true;\n    var shouldOverallTaskDirty = false;\n    var errMsg = '';\n\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = '\"createOnAllSeries\" do not supported for \"overallReset\", ' + 'becuase it will block all streams.';\n    }\n\n    assert(!stageHandler.createOnAllSeries, errMsg);\n\n    if (seriesType) {\n      ecModel.eachRawSeriesByType(seriesType, createStub);\n    } else if (getTargetSeries) {\n      getTargetSeries(ecModel, api).each(createStub);\n    } else {\n      overallProgress = false;\n      each(ecModel.getSeries(), createStub);\n    }\n\n    function createStub(seriesModel) {\n      var pipelineId = seriesModel.uid;\n      var stub = newAgentStubMap.set(pipelineId, oldAgentStubMap && oldAgentStubMap.get(pipelineId) || (shouldOverallTaskDirty = true, createTask({\n        reset: stubReset,\n        onDirty: stubOnDirty\n      })));\n      stub.context = {\n        model: seriesModel,\n        overallProgress: overallProgress\n      };\n      stub.agent = overallTask;\n      stub.__block = overallProgress;\n\n      scheduler._pipe(seriesModel, stub);\n    }\n\n    if (shouldOverallTaskDirty) {\n      overallTask.dirty();\n    }\n  };\n\n  Scheduler.prototype._pipe = function (seriesModel, task) {\n    var pipelineId = seriesModel.uid;\n\n    var pipeline = this._pipelineMap.get(pipelineId);\n\n    !pipeline.head && (pipeline.head = task);\n    pipeline.tail && pipeline.tail.pipe(task);\n    pipeline.tail = task;\n    task.__idxInPipeline = pipeline.count++;\n    task.__pipeline = pipeline;\n  };\n\n  Scheduler.wrapStageHandler = function (stageHandler, visualType) {\n    if (isFunction(stageHandler)) {\n      stageHandler = {\n        overallReset: stageHandler,\n        seriesType: detectSeriseType(stageHandler)\n      };\n    }\n\n    stageHandler.uid = getUID('stageHandler');\n    visualType && (stageHandler.visualType = visualType);\n    return stageHandler;\n  };\n\n  ;\n  return Scheduler;\n}();\n\nfunction overallTaskReset(context) {\n  context.overallReset(context.ecModel, context.api, context.payload);\n}\n\nfunction stubReset(context) {\n  return context.overallProgress && stubProgress;\n}\n\nfunction stubProgress() {\n  this.agent.dirty();\n  this.getDownstream().dirty();\n}\n\nfunction stubOnDirty() {\n  this.agent && this.agent.dirty();\n}\n\nfunction seriesTaskPlan(context) {\n  return context.plan ? context.plan(context.model, context.ecModel, context.api, context.payload) : null;\n}\n\nfunction seriesTaskReset(context) {\n  if (context.useClearVisual) {\n    context.data.clearAllVisual();\n  }\n\n  var resetDefines = context.resetDefines = normalizeToArray(context.reset(context.model, context.ecModel, context.api, context.payload));\n  return resetDefines.length > 1 ? map(resetDefines, function (v, idx) {\n    return makeSeriesTaskProgress(idx);\n  }) : singleSeriesTaskProgress;\n}\n\nvar singleSeriesTaskProgress = makeSeriesTaskProgress(0);\n\nfunction makeSeriesTaskProgress(resetDefineIdx) {\n  return function (params, context) {\n    var data = context.data;\n    var resetDefine = context.resetDefines[resetDefineIdx];\n\n    if (resetDefine && resetDefine.dataEach) {\n      for (var i = params.start; i < params.end; i++) {\n        resetDefine.dataEach(data, i);\n      }\n    } else if (resetDefine && resetDefine.progress) {\n      resetDefine.progress(params, data);\n    }\n  };\n}\n\nfunction seriesTaskCount(context) {\n  return context.data.count();\n}\n\nfunction detectSeriseType(legacyFunc) {\n  seriesType = null;\n\n  try {\n    legacyFunc(ecModelMock, apiMock);\n  } catch (e) {}\n\n  return seriesType;\n}\n\nvar ecModelMock = {};\nvar apiMock = {};\nvar seriesType;\nmockMethods(ecModelMock, GlobalModel);\nmockMethods(apiMock, ExtensionAPI);\n\necModelMock.eachSeriesByType = ecModelMock.eachRawSeriesByType = function (type) {\n  seriesType = type;\n};\n\necModelMock.eachComponent = function (cond) {\n  if (cond.mainType === 'series' && cond.subType) {\n    seriesType = cond.subType;\n  }\n};\n\nfunction mockMethods(target, Clz) {\n  for (var name_1 in Clz.prototype) {\n    target[name_1] = noop;\n  }\n}\n\nexport default Scheduler;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar colorAll = ['#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'];\nexport default {\n  color: colorAll,\n  colorLayer: [['#37A2DA', '#ffd85c', '#fd7b5f'], ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'], ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'], colorAll]\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar contrastColor = '#B9B8CE';\nvar backgroundColor = '#100C2A';\n\nvar axisCommon = function () {\n  return {\n    axisLine: {\n      lineStyle: {\n        color: contrastColor\n      }\n    },\n    splitLine: {\n      lineStyle: {\n        color: '#484753'\n      }\n    },\n    splitArea: {\n      areaStyle: {\n        color: ['rgba(255,255,255,0.02)', 'rgba(255,255,255,0.05)']\n      }\n    },\n    minorSplitLine: {\n      lineStyle: {\n        color: '#20203B'\n      }\n    }\n  };\n};\n\nvar colorPalette = ['#4992ff', '#7cffb2', '#fddd60', '#ff6e76', '#58d9f9', '#05c091', '#ff8a45', '#8d48e3', '#dd79ff'];\nvar theme = {\n  darkMode: true,\n  color: colorPalette,\n  backgroundColor: backgroundColor,\n  axisPointer: {\n    lineStyle: {\n      color: '#817f91'\n    },\n    crossStyle: {\n      color: '#817f91'\n    },\n    label: {\n      color: '#fff'\n    }\n  },\n  legend: {\n    textStyle: {\n      color: contrastColor\n    }\n  },\n  textStyle: {\n    color: contrastColor\n  },\n  title: {\n    textStyle: {\n      color: '#EEF1FA'\n    },\n    subtextStyle: {\n      color: '#B9B8CE'\n    }\n  },\n  toolbox: {\n    iconStyle: {\n      borderColor: contrastColor\n    }\n  },\n  dataZoom: {\n    borderColor: '#71708A',\n    textStyle: {\n      color: contrastColor\n    },\n    brushStyle: {\n      color: 'rgba(135,163,206,0.3)'\n    },\n    handleStyle: {\n      color: '#353450',\n      borderColor: '#C5CBE3'\n    },\n    moveHandleStyle: {\n      color: '#B0B6C3',\n      opacity: 0.3\n    },\n    fillerColor: 'rgba(135,163,206,0.2)',\n    emphasis: {\n      handleStyle: {\n        borderColor: '#91B7F2',\n        color: '#4D587D'\n      },\n      moveHandleStyle: {\n        color: '#636D9A',\n        opacity: 0.7\n      }\n    },\n    dataBackground: {\n      lineStyle: {\n        color: '#71708A',\n        width: 1\n      },\n      areaStyle: {\n        color: '#71708A'\n      }\n    },\n    selectedDataBackground: {\n      lineStyle: {\n        color: '#87A3CE'\n      },\n      areaStyle: {\n        color: '#87A3CE'\n      }\n    }\n  },\n  visualMap: {\n    textStyle: {\n      color: contrastColor\n    }\n  },\n  timeline: {\n    lineStyle: {\n      color: contrastColor\n    },\n    label: {\n      color: contrastColor\n    },\n    controlStyle: {\n      color: contrastColor,\n      borderColor: contrastColor\n    }\n  },\n  calendar: {\n    itemStyle: {\n      color: backgroundColor\n    },\n    dayLabel: {\n      color: contrastColor\n    },\n    monthLabel: {\n      color: contrastColor\n    },\n    yearLabel: {\n      color: contrastColor\n    }\n  },\n  timeAxis: axisCommon(),\n  logAxis: axisCommon(),\n  valueAxis: axisCommon(),\n  categoryAxis: axisCommon(),\n  line: {\n    symbol: 'circle'\n  },\n  graph: {\n    color: colorPalette\n  },\n  gauge: {\n    title: {\n      color: contrastColor\n    },\n    axisLine: {\n      lineStyle: {\n        color: [[1, 'rgba(207,212,219,0.2)']]\n      }\n    },\n    axisLabel: {\n      color: contrastColor\n    },\n    detail: {\n      color: '#EEF1FA'\n    }\n  },\n  candlestick: {\n    itemStyle: {\n      color: '#f64e56',\n      color0: '#54ea92',\n      borderColor: '#f64e56',\n      borderColor0: '#54ea92'\n    }\n  }\n};\ntheme.categoryAxis.splitLine.show = false;\nexport default theme;","import { isString } from '../core/util';\nexport function parseXML(svg) {\n    if (isString(svg)) {\n        var parser = new DOMParser();\n        svg = parser.parseFromString(svg, 'text/xml');\n    }\n    var svgNode = svg;\n    if (svgNode.nodeType === 9) {\n        svgNode = svgNode.firstChild;\n    }\n    while (svgNode.nodeName.toLowerCase() !== 'svg' || svgNode.nodeType !== 1) {\n        svgNode = svgNode.nextSibling;\n    }\n    return svgNode;\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, isString, isArray, each, assert } from 'zrender/lib/core/util';\nimport { parseXML } from 'zrender/lib/tool/parseXML';\nvar storage = createHashMap();\nexport default {\n  registerMap: function (mapName, rawDef, rawSpecialAreas) {\n    var records;\n\n    if (isArray(rawDef)) {\n      records = rawDef;\n    } else if (rawDef.svg) {\n      records = [{\n        type: 'svg',\n        source: rawDef.svg,\n        specialAreas: rawDef.specialAreas\n      }];\n    } else {\n      var geoSource = rawDef.geoJson || rawDef.geoJSON;\n\n      if (geoSource && !rawDef.features) {\n        rawSpecialAreas = rawDef.specialAreas;\n        rawDef = geoSource;\n      }\n\n      records = [{\n        type: 'geoJSON',\n        source: rawDef,\n        specialAreas: rawSpecialAreas\n      }];\n    }\n\n    each(records, function (record) {\n      var type = record.type;\n      type === 'geoJson' && (type = record.type = 'geoJSON');\n      var parse = parsers[type];\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(parse, 'Illegal map type: ' + type);\n      }\n\n      parse(record);\n    });\n    return storage.set(mapName, records);\n  },\n  retrieveMap: function (mapName) {\n    return storage.get(mapName);\n  }\n};\nvar parsers = {\n  geoJSON: function (record) {\n    var source = record.source;\n    record.geoJSON = !isString(source) ? source : typeof JSON !== 'undefined' && JSON.parse ? JSON.parse(source) : new Function('return (' + source + ');')();\n  },\n  svg: function (record) {\n    record.svgXML = parseXML(record.source);\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parseClassType } from './clazz';\n\nvar ECEventProcessor = function () {\n  function ECEventProcessor() {}\n\n  ECEventProcessor.prototype.normalizeQuery = function (query) {\n    var cptQuery = {};\n    var dataQuery = {};\n    var otherQuery = {};\n\n    if (zrUtil.isString(query)) {\n      var condCptType = parseClassType(query);\n      cptQuery.mainType = condCptType.main || null;\n      cptQuery.subType = condCptType.sub || null;\n    } else {\n      var suffixes_1 = ['Index', 'Name', 'Id'];\n      var dataKeys_1 = {\n        name: 1,\n        dataIndex: 1,\n        dataType: 1\n      };\n      zrUtil.each(query, function (val, key) {\n        var reserved = false;\n\n        for (var i = 0; i < suffixes_1.length; i++) {\n          var propSuffix = suffixes_1[i];\n          var suffixPos = key.lastIndexOf(propSuffix);\n\n          if (suffixPos > 0 && suffixPos === key.length - propSuffix.length) {\n            var mainType = key.slice(0, suffixPos);\n\n            if (mainType !== 'data') {\n              cptQuery.mainType = mainType;\n              cptQuery[propSuffix.toLowerCase()] = val;\n              reserved = true;\n            }\n          }\n        }\n\n        if (dataKeys_1.hasOwnProperty(key)) {\n          dataQuery[key] = val;\n          reserved = true;\n        }\n\n        if (!reserved) {\n          otherQuery[key] = val;\n        }\n      });\n    }\n\n    return {\n      cptQuery: cptQuery,\n      dataQuery: dataQuery,\n      otherQuery: otherQuery\n    };\n  };\n\n  ECEventProcessor.prototype.filter = function (eventType, query) {\n    var eventInfo = this.eventInfo;\n\n    if (!eventInfo) {\n      return true;\n    }\n\n    var targetEl = eventInfo.targetEl;\n    var packedEvent = eventInfo.packedEvent;\n    var model = eventInfo.model;\n    var view = eventInfo.view;\n\n    if (!model || !view) {\n      return true;\n    }\n\n    var cptQuery = query.cptQuery;\n    var dataQuery = query.dataQuery;\n    return check(cptQuery, model, 'mainType') && check(cptQuery, model, 'subType') && check(cptQuery, model, 'index', 'componentIndex') && check(cptQuery, model, 'name') && check(cptQuery, model, 'id') && check(dataQuery, packedEvent, 'name') && check(dataQuery, packedEvent, 'dataIndex') && check(dataQuery, packedEvent, 'dataType') && (!view.filterForExposedEvent || view.filterForExposedEvent(eventType, query.otherQuery, targetEl, packedEvent));\n\n    function check(query, host, prop, propOnHost) {\n      return query[prop] == null || host[propOnHost || prop] === query[prop];\n    }\n  };\n\n  ECEventProcessor.prototype.afterTrigger = function () {\n    this.eventInfo = null;\n  };\n\n  return ECEventProcessor;\n}();\n\nexport { ECEventProcessor };\n;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isFunction } from 'zrender/lib/core/util';\nvar seriesSymbolTask = {\n  createOnAllSeries: true,\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    var data = seriesModel.getData();\n\n    if (seriesModel.legendSymbol) {\n      data.setVisual('legendSymbol', seriesModel.legendSymbol);\n    }\n\n    if (!seriesModel.hasSymbolVisual) {\n      return;\n    }\n\n    var symbolType = seriesModel.get('symbol');\n    var symbolSize = seriesModel.get('symbolSize');\n    var keepAspect = seriesModel.get('symbolKeepAspect');\n    var symbolRotate = seriesModel.get('symbolRotate');\n    var hasSymbolTypeCallback = isFunction(symbolType);\n    var hasSymbolSizeCallback = isFunction(symbolSize);\n    var hasSymbolRotateCallback = isFunction(symbolRotate);\n    var hasCallback = hasSymbolTypeCallback || hasSymbolSizeCallback || hasSymbolRotateCallback;\n    var seriesSymbol = !hasSymbolTypeCallback && symbolType ? symbolType : seriesModel.defaultSymbol;\n    var seriesSymbolSize = !hasSymbolSizeCallback ? symbolSize : null;\n    var seriesSymbolRotate = !hasSymbolRotateCallback ? symbolRotate : null;\n    data.setVisual({\n      legendSymbol: seriesModel.legendSymbol || seriesSymbol,\n      symbol: seriesSymbol,\n      symbolSize: seriesSymbolSize,\n      symbolKeepAspect: keepAspect,\n      symbolRotate: seriesSymbolRotate\n    });\n\n    if (ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    function dataEach(data, idx) {\n      var rawValue = seriesModel.getRawValue(idx);\n      var params = seriesModel.getDataParams(idx);\n      hasSymbolTypeCallback && data.setItemVisual(idx, 'symbol', symbolType(rawValue, params));\n      hasSymbolSizeCallback && data.setItemVisual(idx, 'symbolSize', symbolSize(rawValue, params));\n      hasSymbolRotateCallback && data.setItemVisual(idx, 'symbolRotate', symbolRotate(rawValue, params));\n    }\n\n    return {\n      dataEach: hasCallback ? dataEach : null\n    };\n  }\n};\nvar dataSymbolTask = {\n  createOnAllSeries: true,\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    if (!seriesModel.hasSymbolVisual) {\n      return;\n    }\n\n    if (ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n\n    function dataEach(data, idx) {\n      var itemModel = data.getItemModel(idx);\n      var itemSymbolType = itemModel.getShallow('symbol', true);\n      var itemSymbolSize = itemModel.getShallow('symbolSize', true);\n      var itemSymbolRotate = itemModel.getShallow('symbolRotate', true);\n      var itemSymbolKeepAspect = itemModel.getShallow('symbolKeepAspect', true);\n\n      if (itemSymbolType != null) {\n        data.setItemVisual(idx, 'symbol', itemSymbolType);\n      }\n\n      if (itemSymbolSize != null) {\n        data.setItemVisual(idx, 'symbolSize', itemSymbolSize);\n      }\n\n      if (itemSymbolRotate != null) {\n        data.setItemVisual(idx, 'symbolRotate', itemSymbolRotate);\n      }\n\n      if (itemSymbolKeepAspect != null) {\n        data.setItemVisual(idx, 'symbolKeepAspect', itemSymbolKeepAspect);\n      }\n    }\n\n    return {\n      dataEach: data.hasItemOption ? dataEach : null\n    };\n  }\n};\nexport { seriesSymbolTask, dataSymbolTask };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function getItemVisualFromData(data, dataIndex, key) {\n  switch (key) {\n    case 'color':\n      var style = data.getItemVisual(dataIndex, 'style');\n      return style[data.getVisual('drawType')];\n\n    case 'opacity':\n      return data.getItemVisual(dataIndex, 'style').opacity;\n\n    case 'symbol':\n    case 'symbolSize':\n    case 'liftZ':\n      return data.getItemVisual(dataIndex, key);\n\n    default:\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn(\"Unknown visual type \" + key);\n      }\n\n  }\n}\nexport function getVisualFromData(data, key) {\n  switch (key) {\n    case 'color':\n      var style = data.getVisual('style');\n      return style[data.getVisual('drawType')];\n\n    case 'opacity':\n      return data.getVisual('style').opacity;\n\n    case 'symbol':\n    case 'symbolSize':\n    case 'liftZ':\n      return data.getVisual(key);\n\n    default:\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn(\"Unknown visual type \" + key);\n      }\n\n  }\n}\nexport function setItemVisualFromData(data, dataIndex, key, value) {\n  switch (key) {\n    case 'color':\n      var style = data.ensureUniqueItemVisual(dataIndex, 'style');\n      style[data.getVisual('drawType')] = value;\n      data.setItemVisual(dataIndex, 'colorFromPalette', false);\n      break;\n\n    case 'opacity':\n      data.ensureUniqueItemVisual(dataIndex, 'style').opacity = value;\n      break;\n\n    case 'symbol':\n    case 'symbolSize':\n    case 'liftZ':\n      data.setItemVisual(dataIndex, key, value);\n      break;\n\n    default:\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn(\"Unknown visual type \" + key);\n      }\n\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { Point, Path, Polyline } from '../util/graphic';\nimport PathProxy from 'zrender/lib/core/PathProxy';\nimport { normalizeRadian } from 'zrender/lib/contain/util';\nimport { cubicProjectPoint, quadraticProjectPoint } from 'zrender/lib/core/curve';\nimport { defaults, retrieve2 } from 'zrender/lib/core/util';\nimport { invert } from 'zrender/lib/core/matrix';\nimport * as vector from 'zrender/lib/core/vector';\nimport { DISPLAY_STATES, SPECIAL_STATES } from '../util/states';\nvar PI2 = Math.PI * 2;\nvar CMD = PathProxy.CMD;\nvar DEFAULT_SEARCH_SPACE = ['top', 'right', 'bottom', 'left'];\n\nfunction getCandidateAnchor(pos, distance, rect, outPt, outDir) {\n  var width = rect.width;\n  var height = rect.height;\n\n  switch (pos) {\n    case 'top':\n      outPt.set(rect.x + width / 2, rect.y - distance);\n      outDir.set(0, -1);\n      break;\n\n    case 'bottom':\n      outPt.set(rect.x + width / 2, rect.y + height + distance);\n      outDir.set(0, 1);\n      break;\n\n    case 'left':\n      outPt.set(rect.x - distance, rect.y + height / 2);\n      outDir.set(-1, 0);\n      break;\n\n    case 'right':\n      outPt.set(rect.x + width + distance, rect.y + height / 2);\n      outDir.set(1, 0);\n      break;\n  }\n}\n\nfunction projectPointToArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y, out) {\n  x -= cx;\n  y -= cy;\n  var d = Math.sqrt(x * x + y * y);\n  x /= d;\n  y /= d;\n  var ox = x * r + cx;\n  var oy = y * r + cy;\n\n  if (Math.abs(startAngle - endAngle) % PI2 < 1e-4) {\n    out[0] = ox;\n    out[1] = oy;\n    return d - r;\n  }\n\n  if (anticlockwise) {\n    var tmp = startAngle;\n    startAngle = normalizeRadian(endAngle);\n    endAngle = normalizeRadian(tmp);\n  } else {\n    startAngle = normalizeRadian(startAngle);\n    endAngle = normalizeRadian(endAngle);\n  }\n\n  if (startAngle > endAngle) {\n    endAngle += PI2;\n  }\n\n  var angle = Math.atan2(y, x);\n\n  if (angle < 0) {\n    angle += PI2;\n  }\n\n  if (angle >= startAngle && angle <= endAngle || angle + PI2 >= startAngle && angle + PI2 <= endAngle) {\n    out[0] = ox;\n    out[1] = oy;\n    return d - r;\n  }\n\n  var x1 = r * Math.cos(startAngle) + cx;\n  var y1 = r * Math.sin(startAngle) + cy;\n  var x2 = r * Math.cos(endAngle) + cx;\n  var y2 = r * Math.sin(endAngle) + cy;\n  var d1 = (x1 - x) * (x1 - x) + (y1 - y) * (y1 - y);\n  var d2 = (x2 - x) * (x2 - x) + (y2 - y) * (y2 - y);\n\n  if (d1 < d2) {\n    out[0] = x1;\n    out[1] = y1;\n    return Math.sqrt(d1);\n  } else {\n    out[0] = x2;\n    out[1] = y2;\n    return Math.sqrt(d2);\n  }\n}\n\nfunction projectPointToLine(x1, y1, x2, y2, x, y, out, limitToEnds) {\n  var dx = x - x1;\n  var dy = y - y1;\n  var dx1 = x2 - x1;\n  var dy1 = y2 - y1;\n  var lineLen = Math.sqrt(dx1 * dx1 + dy1 * dy1);\n  dx1 /= lineLen;\n  dy1 /= lineLen;\n  var projectedLen = dx * dx1 + dy * dy1;\n  var t = projectedLen / lineLen;\n\n  if (limitToEnds) {\n    t = Math.min(Math.max(t, 0), 1);\n  }\n\n  t *= lineLen;\n  var ox = out[0] = x1 + t * dx1;\n  var oy = out[1] = y1 + t * dy1;\n  return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\n}\n\nfunction projectPointToRect(x1, y1, width, height, x, y, out) {\n  if (width < 0) {\n    x1 = x1 + width;\n    width = -width;\n  }\n\n  if (height < 0) {\n    y1 = y1 + height;\n    height = -height;\n  }\n\n  var x2 = x1 + width;\n  var y2 = y1 + height;\n  var ox = out[0] = Math.min(Math.max(x, x1), x2);\n  var oy = out[1] = Math.min(Math.max(y, y1), y2);\n  return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\n}\n\nvar tmpPt = [];\n\nfunction nearestPointOnRect(pt, rect, out) {\n  var dist = projectPointToRect(rect.x, rect.y, rect.width, rect.height, pt.x, pt.y, tmpPt);\n  out.set(tmpPt[0], tmpPt[1]);\n  return dist;\n}\n\nfunction nearestPointOnPath(pt, path, out) {\n  var xi = 0;\n  var yi = 0;\n  var x0 = 0;\n  var y0 = 0;\n  var x1;\n  var y1;\n  var minDist = Infinity;\n  var data = path.data;\n  var x = pt.x;\n  var y = pt.y;\n\n  for (var i = 0; i < data.length;) {\n    var cmd = data[i++];\n\n    if (i === 1) {\n      xi = data[i];\n      yi = data[i + 1];\n      x0 = xi;\n      y0 = yi;\n    }\n\n    var d = minDist;\n\n    switch (cmd) {\n      case CMD.M:\n        x0 = data[i++];\n        y0 = data[i++];\n        xi = x0;\n        yi = y0;\n        break;\n\n      case CMD.L:\n        d = projectPointToLine(xi, yi, data[i], data[i + 1], x, y, tmpPt, true);\n        xi = data[i++];\n        yi = data[i++];\n        break;\n\n      case CMD.C:\n        d = cubicProjectPoint(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\n        xi = data[i++];\n        yi = data[i++];\n        break;\n\n      case CMD.Q:\n        d = quadraticProjectPoint(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\n        xi = data[i++];\n        yi = data[i++];\n        break;\n\n      case CMD.A:\n        var cx = data[i++];\n        var cy = data[i++];\n        var rx = data[i++];\n        var ry = data[i++];\n        var theta = data[i++];\n        var dTheta = data[i++];\n        i += 1;\n        var anticlockwise = !!(1 - data[i++]);\n        x1 = Math.cos(theta) * rx + cx;\n        y1 = Math.sin(theta) * ry + cy;\n\n        if (i <= 1) {\n          x0 = x1;\n          y0 = y1;\n        }\n\n        var _x = (x - cx) * ry / rx + cx;\n\n        d = projectPointToArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y, tmpPt);\n        xi = Math.cos(theta + dTheta) * rx + cx;\n        yi = Math.sin(theta + dTheta) * ry + cy;\n        break;\n\n      case CMD.R:\n        x0 = xi = data[i++];\n        y0 = yi = data[i++];\n        var width = data[i++];\n        var height = data[i++];\n        d = projectPointToRect(x0, y0, width, height, x, y, tmpPt);\n        break;\n\n      case CMD.Z:\n        d = projectPointToLine(xi, yi, x0, y0, x, y, tmpPt, true);\n        xi = x0;\n        yi = y0;\n        break;\n    }\n\n    if (d < minDist) {\n      minDist = d;\n      out.set(tmpPt[0], tmpPt[1]);\n    }\n  }\n\n  return minDist;\n}\n\nvar pt0 = new Point();\nvar pt1 = new Point();\nvar pt2 = new Point();\nvar dir = new Point();\nvar dir2 = new Point();\nexport function updateLabelLinePoints(target, labelLineModel) {\n  if (!target) {\n    return;\n  }\n\n  var labelLine = target.getTextGuideLine();\n  var label = target.getTextContent();\n\n  if (!(label && labelLine)) {\n    return;\n  }\n\n  var labelGuideConfig = target.textGuideLineConfig || {};\n  var points = [[0, 0], [0, 0], [0, 0]];\n  var searchSpace = labelGuideConfig.candidates || DEFAULT_SEARCH_SPACE;\n  var labelRect = label.getBoundingRect().clone();\n  labelRect.applyTransform(label.getComputedTransform());\n  var minDist = Infinity;\n  var anchorPoint = labelGuideConfig.anchor;\n  var targetTransform = target.getComputedTransform();\n  var targetInversedTransform = targetTransform && invert([], targetTransform);\n  var len = labelLineModel.get('length2') || 0;\n\n  if (anchorPoint) {\n    pt2.copy(anchorPoint);\n  }\n\n  for (var i = 0; i < searchSpace.length; i++) {\n    var candidate = searchSpace[i];\n    getCandidateAnchor(candidate, 0, labelRect, pt0, dir);\n    Point.scaleAndAdd(pt1, pt0, dir, len);\n    pt1.transform(targetInversedTransform);\n    var boundingRect = target.getBoundingRect();\n    var dist = anchorPoint ? anchorPoint.distance(pt1) : target instanceof Path ? nearestPointOnPath(pt1, target.path, pt2) : nearestPointOnRect(pt1, boundingRect, pt2);\n\n    if (dist < minDist) {\n      minDist = dist;\n      pt1.transform(targetTransform);\n      pt2.transform(targetTransform);\n      pt2.toArray(points[0]);\n      pt1.toArray(points[1]);\n      pt0.toArray(points[2]);\n    }\n  }\n\n  limitTurnAngle(points, labelLineModel.get('minTurnAngle'));\n  labelLine.setShape({\n    points: points\n  });\n}\nvar tmpArr = [];\nvar tmpProjPoint = new Point();\nexport function limitTurnAngle(linePoints, minTurnAngle) {\n  if (!(minTurnAngle <= 180 && minTurnAngle > 0)) {\n    return;\n  }\n\n  minTurnAngle = minTurnAngle / 180 * Math.PI;\n  pt0.fromArray(linePoints[0]);\n  pt1.fromArray(linePoints[1]);\n  pt2.fromArray(linePoints[2]);\n  Point.sub(dir, pt0, pt1);\n  Point.sub(dir2, pt2, pt1);\n  var len1 = dir.len();\n  var len2 = dir2.len();\n\n  if (len1 < 1e-3 || len2 < 1e-3) {\n    return;\n  }\n\n  dir.scale(1 / len1);\n  dir2.scale(1 / len2);\n  var angleCos = dir.dot(dir2);\n  var minTurnAngleCos = Math.cos(minTurnAngle);\n\n  if (minTurnAngleCos < angleCos) {\n    var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\n    tmpProjPoint.fromArray(tmpArr);\n    tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI - minTurnAngle));\n    var t = pt2.x !== pt1.x ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x) : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\n\n    if (isNaN(t)) {\n      return;\n    }\n\n    if (t < 0) {\n      Point.copy(tmpProjPoint, pt1);\n    } else if (t > 1) {\n      Point.copy(tmpProjPoint, pt2);\n    }\n\n    tmpProjPoint.toArray(linePoints[1]);\n  }\n}\nexport function limitSurfaceAngle(linePoints, surfaceNormal, maxSurfaceAngle) {\n  if (!(maxSurfaceAngle <= 180 && maxSurfaceAngle > 0)) {\n    return;\n  }\n\n  maxSurfaceAngle = maxSurfaceAngle / 180 * Math.PI;\n  pt0.fromArray(linePoints[0]);\n  pt1.fromArray(linePoints[1]);\n  pt2.fromArray(linePoints[2]);\n  Point.sub(dir, pt1, pt0);\n  Point.sub(dir2, pt2, pt1);\n  var len1 = dir.len();\n  var len2 = dir2.len();\n\n  if (len1 < 1e-3 || len2 < 1e-3) {\n    return;\n  }\n\n  dir.scale(1 / len1);\n  dir2.scale(1 / len2);\n  var angleCos = dir.dot(surfaceNormal);\n  var maxSurfaceAngleCos = Math.cos(maxSurfaceAngle);\n\n  if (angleCos < maxSurfaceAngleCos) {\n    var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\n    tmpProjPoint.fromArray(tmpArr);\n    var HALF_PI = Math.PI / 2;\n    var angle2 = Math.acos(dir2.dot(surfaceNormal));\n    var newAngle = HALF_PI + angle2 - maxSurfaceAngle;\n\n    if (newAngle >= HALF_PI) {\n      Point.copy(tmpProjPoint, pt2);\n    } else {\n      tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI / 2 - newAngle));\n      var t = pt2.x !== pt1.x ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x) : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\n\n      if (isNaN(t)) {\n        return;\n      }\n\n      if (t < 0) {\n        Point.copy(tmpProjPoint, pt1);\n      } else if (t > 1) {\n        Point.copy(tmpProjPoint, pt2);\n      }\n    }\n\n    tmpProjPoint.toArray(linePoints[1]);\n  }\n}\n\nfunction setLabelLineState(labelLine, ignore, stateName, stateModel) {\n  var isNormal = stateName === 'normal';\n  var stateObj = isNormal ? labelLine : labelLine.ensureState(stateName);\n  stateObj.ignore = ignore;\n  var smooth = stateModel.get('smooth');\n\n  if (smooth && smooth === true) {\n    smooth = 0.3;\n  }\n\n  stateObj.shape = stateObj.shape || {};\n\n  if (smooth > 0) {\n    stateObj.shape.smooth = smooth;\n  }\n\n  var styleObj = stateModel.getModel('lineStyle').getLineStyle();\n  isNormal ? labelLine.useStyle(styleObj) : stateObj.style = styleObj;\n}\n\nfunction buildLabelLinePath(path, shape) {\n  var smooth = shape.smooth;\n  var points = shape.points;\n\n  if (!points) {\n    return;\n  }\n\n  path.moveTo(points[0][0], points[0][1]);\n\n  if (smooth > 0 && points.length >= 3) {\n    var len1 = vector.dist(points[0], points[1]);\n    var len2 = vector.dist(points[1], points[2]);\n\n    if (!len1 || !len2) {\n      path.lineTo(points[1][0], points[1][1]);\n      path.lineTo(points[2][0], points[2][1]);\n      return;\n    }\n\n    var moveLen = Math.min(len1, len2) * smooth;\n    var midPoint0 = vector.lerp([], points[1], points[0], moveLen / len1);\n    var midPoint2 = vector.lerp([], points[1], points[2], moveLen / len2);\n    var midPoint1 = vector.lerp([], midPoint0, midPoint2, 0.5);\n    path.bezierCurveTo(midPoint0[0], midPoint0[1], midPoint0[0], midPoint0[1], midPoint1[0], midPoint1[1]);\n    path.bezierCurveTo(midPoint2[0], midPoint2[1], midPoint2[0], midPoint2[1], points[2][0], points[2][1]);\n  } else {\n    for (var i = 1; i < points.length; i++) {\n      path.lineTo(points[i][0], points[i][1]);\n    }\n  }\n}\n\nexport function setLabelLineStyle(targetEl, statesModels, defaultStyle) {\n  var labelLine = targetEl.getTextGuideLine();\n  var label = targetEl.getTextContent();\n\n  if (!label) {\n    if (labelLine) {\n      targetEl.removeTextGuideLine();\n    }\n\n    return;\n  }\n\n  var normalModel = statesModels.normal;\n  var showNormal = normalModel.get('show');\n  var labelIgnoreNormal = label.ignore;\n\n  for (var i = 0; i < DISPLAY_STATES.length; i++) {\n    var stateName = DISPLAY_STATES[i];\n    var stateModel = statesModels[stateName];\n    var isNormal = stateName === 'normal';\n\n    if (stateModel) {\n      var stateShow = stateModel.get('show');\n      var isLabelIgnored = isNormal ? labelIgnoreNormal : retrieve2(label.states[stateName] && label.states[stateName].ignore, labelIgnoreNormal);\n\n      if (isLabelIgnored || !retrieve2(stateShow, showNormal)) {\n        var stateObj = isNormal ? labelLine : labelLine && labelLine.states.normal;\n\n        if (stateObj) {\n          stateObj.ignore = true;\n        }\n\n        continue;\n      }\n\n      if (!labelLine) {\n        labelLine = new Polyline();\n        targetEl.setTextGuideLine(labelLine);\n\n        if (!isNormal && (labelIgnoreNormal || !showNormal)) {\n          setLabelLineState(labelLine, true, 'normal', statesModels.normal);\n        }\n\n        if (targetEl.stateProxy) {\n          labelLine.stateProxy = targetEl.stateProxy;\n        }\n      }\n\n      setLabelLineState(labelLine, false, stateName, stateModel);\n    }\n  }\n\n  if (labelLine) {\n    defaults(labelLine.style, defaultStyle);\n    labelLine.style.fill = null;\n    var showAbove = normalModel.get('showAbove');\n    var labelLineConfig = targetEl.textGuideLineConfig = targetEl.textGuideLineConfig || {};\n    labelLineConfig.showAbove = showAbove || false;\n    labelLine.buildPath = buildLabelLinePath;\n  }\n}\nexport function getLabelLineStatesModels(itemModel, labelLineName) {\n  labelLineName = labelLineName || 'labelLine';\n  var statesModels = {\n    normal: itemModel.getModel(labelLineName)\n  };\n\n  for (var i = 0; i < SPECIAL_STATES.length; i++) {\n    var stateName = SPECIAL_STATES[i];\n    statesModels[stateName] = itemModel.getModel([stateName, labelLineName]);\n  }\n\n  return statesModels;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { BoundingRect, OrientedBoundingRect } from '../util/graphic';\nexport function prepareLayoutList(input) {\n  var list = [];\n\n  for (var i = 0; i < input.length; i++) {\n    var rawItem = input[i];\n\n    if (rawItem.defaultAttr.ignore) {\n      continue;\n    }\n\n    var label = rawItem.label;\n    var transform = label.getComputedTransform();\n    var localRect = label.getBoundingRect();\n    var isAxisAligned = !transform || transform[1] < 1e-5 && transform[2] < 1e-5;\n    var minMargin = label.style.margin || 0;\n    var globalRect = localRect.clone();\n    globalRect.applyTransform(transform);\n    globalRect.x -= minMargin / 2;\n    globalRect.y -= minMargin / 2;\n    globalRect.width += minMargin;\n    globalRect.height += minMargin;\n    var obb = isAxisAligned ? new OrientedBoundingRect(localRect, transform) : null;\n    list.push({\n      label: label,\n      labelLine: rawItem.labelLine,\n      rect: globalRect,\n      localRect: localRect,\n      obb: obb,\n      priority: rawItem.priority,\n      defaultAttr: rawItem.defaultAttr,\n      layoutOption: rawItem.computedLayoutOption,\n      axisAligned: isAxisAligned,\n      transform: transform\n    });\n  }\n\n  return list;\n}\n\nfunction shiftLayout(list, xyDim, sizeDim, minBound, maxBound, balanceShift) {\n  var len = list.length;\n\n  if (len < 2) {\n    return;\n  }\n\n  list.sort(function (a, b) {\n    return a.rect[xyDim] - b.rect[xyDim];\n  });\n  var lastPos = 0;\n  var delta;\n  var adjusted = false;\n  var shifts = [];\n  var totalShifts = 0;\n\n  for (var i = 0; i < len; i++) {\n    var item = list[i];\n    var rect = item.rect;\n    delta = rect[xyDim] - lastPos;\n\n    if (delta < 0) {\n      rect[xyDim] -= delta;\n      item.label[xyDim] -= delta;\n      adjusted = true;\n    }\n\n    var shift = Math.max(-delta, 0);\n    shifts.push(shift);\n    totalShifts += shift;\n    lastPos = rect[xyDim] + rect[sizeDim];\n  }\n\n  if (totalShifts > 0 && balanceShift) {\n    shiftList(-totalShifts / len, 0, len);\n  }\n\n  var first = list[0];\n  var last = list[len - 1];\n  var minGap;\n  var maxGap;\n  updateMinMaxGap();\n  minGap < 0 && squeezeGaps(-minGap, 0.8);\n  maxGap < 0 && squeezeGaps(maxGap, 0.8);\n  updateMinMaxGap();\n  takeBoundsGap(minGap, maxGap, 1);\n  takeBoundsGap(maxGap, minGap, -1);\n  updateMinMaxGap();\n\n  if (minGap < 0) {\n    squeezeWhenBailout(-minGap);\n  }\n\n  if (maxGap < 0) {\n    squeezeWhenBailout(maxGap);\n  }\n\n  function updateMinMaxGap() {\n    minGap = first.rect[xyDim] - minBound;\n    maxGap = maxBound - last.rect[xyDim] - last.rect[sizeDim];\n  }\n\n  function takeBoundsGap(gapThisBound, gapOtherBound, moveDir) {\n    if (gapThisBound < 0) {\n      var moveFromMaxGap = Math.min(gapOtherBound, -gapThisBound);\n\n      if (moveFromMaxGap > 0) {\n        shiftList(moveFromMaxGap * moveDir, 0, len);\n        var remained = moveFromMaxGap + gapThisBound;\n\n        if (remained < 0) {\n          squeezeGaps(-remained * moveDir, 1);\n        }\n      } else {\n        squeezeGaps(-gapThisBound * moveDir, 1);\n      }\n    }\n  }\n\n  function shiftList(delta, start, end) {\n    if (delta !== 0) {\n      adjusted = true;\n    }\n\n    for (var i = start; i < end; i++) {\n      var item = list[i];\n      var rect = item.rect;\n      rect[xyDim] += delta;\n      item.label[xyDim] += delta;\n    }\n  }\n\n  function squeezeGaps(delta, maxSqeezePercent) {\n    var gaps = [];\n    var totalGaps = 0;\n\n    for (var i = 1; i < len; i++) {\n      var prevItemRect = list[i - 1].rect;\n      var gap = Math.max(list[i].rect[xyDim] - prevItemRect[xyDim] - prevItemRect[sizeDim], 0);\n      gaps.push(gap);\n      totalGaps += gap;\n    }\n\n    if (!totalGaps) {\n      return;\n    }\n\n    var squeezePercent = Math.min(Math.abs(delta) / totalGaps, maxSqeezePercent);\n\n    if (delta > 0) {\n      for (var i = 0; i < len - 1; i++) {\n        var movement = gaps[i] * squeezePercent;\n        shiftList(movement, 0, i + 1);\n      }\n    } else {\n      for (var i = len - 1; i > 0; i--) {\n        var movement = gaps[i - 1] * squeezePercent;\n        shiftList(-movement, i, len);\n      }\n    }\n  }\n\n  function squeezeWhenBailout(delta) {\n    var dir = delta < 0 ? -1 : 1;\n    delta = Math.abs(delta);\n    var moveForEachLabel = Math.ceil(delta / (len - 1));\n\n    for (var i = 0; i < len - 1; i++) {\n      if (dir > 0) {\n        shiftList(moveForEachLabel, 0, i + 1);\n      } else {\n        shiftList(-moveForEachLabel, len - i - 1, len);\n      }\n\n      delta -= moveForEachLabel;\n\n      if (delta <= 0) {\n        return;\n      }\n    }\n  }\n\n  return adjusted;\n}\n\nexport function shiftLayoutOnX(list, leftBound, rightBound, balanceShift) {\n  return shiftLayout(list, 'x', 'width', leftBound, rightBound, balanceShift);\n}\nexport function shiftLayoutOnY(list, topBound, bottomBound, balanceShift) {\n  return shiftLayout(list, 'y', 'height', topBound, bottomBound, balanceShift);\n}\nexport function hideOverlap(labelList) {\n  var displayedLabels = [];\n  labelList.sort(function (a, b) {\n    return b.priority - a.priority;\n  });\n  var globalRect = new BoundingRect(0, 0, 0, 0);\n\n  function hideEl(el) {\n    if (!el.ignore) {\n      var emphasisState = el.ensureState('emphasis');\n\n      if (emphasisState.ignore == null) {\n        emphasisState.ignore = false;\n      }\n    }\n\n    el.ignore = true;\n  }\n\n  for (var i = 0; i < labelList.length; i++) {\n    var labelItem = labelList[i];\n    var isAxisAligned = labelItem.axisAligned;\n    var localRect = labelItem.localRect;\n    var transform = labelItem.transform;\n    var label = labelItem.label;\n    var labelLine = labelItem.labelLine;\n    globalRect.copy(labelItem.rect);\n    globalRect.width -= 0.1;\n    globalRect.height -= 0.1;\n    globalRect.x += 0.05;\n    globalRect.y += 0.05;\n    var obb = labelItem.obb;\n    var overlapped = false;\n\n    for (var j = 0; j < displayedLabels.length; j++) {\n      var existsTextCfg = displayedLabels[j];\n\n      if (!globalRect.intersect(existsTextCfg.rect)) {\n        continue;\n      }\n\n      if (isAxisAligned && existsTextCfg.axisAligned) {\n        overlapped = true;\n        break;\n      }\n\n      if (!existsTextCfg.obb) {\n        existsTextCfg.obb = new OrientedBoundingRect(existsTextCfg.localRect, existsTextCfg.transform);\n      }\n\n      if (!obb) {\n        obb = new OrientedBoundingRect(localRect, transform);\n      }\n\n      if (obb.intersect(existsTextCfg.obb)) {\n        overlapped = true;\n        break;\n      }\n    }\n\n    if (overlapped) {\n      hideEl(label);\n      labelLine && hideEl(labelLine);\n    } else {\n      label.attr('ignore', labelItem.defaultAttr.ignore);\n      labelLine && labelLine.attr('ignore', labelItem.defaultAttr.labelGuideIgnore);\n      displayedLabels.push(labelItem);\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { BoundingRect, updateProps, initProps, isElementRemoved } from '../util/graphic';\nimport { getECData } from '../util/innerStore';\nimport { parsePercent } from '../util/number';\nimport Transformable from 'zrender/lib/core/Transformable';\nimport { updateLabelLinePoints, setLabelLineStyle, getLabelLineStatesModels } from './labelGuideHelper';\nimport { makeInner } from '../util/model';\nimport { retrieve2, each, keys, isFunction, filter, indexOf } from 'zrender/lib/core/util';\nimport { prepareLayoutList, hideOverlap, shiftLayoutOnX, shiftLayoutOnY } from './labelLayoutHelper';\nimport { labelInner, animateLabelValue } from './labelStyle';\n\nfunction cloneArr(points) {\n  if (points) {\n    var newPoints = [];\n\n    for (var i = 0; i < points.length; i++) {\n      newPoints.push(points[i].slice());\n    }\n\n    return newPoints;\n  }\n}\n\nfunction prepareLayoutCallbackParams(labelItem, hostEl) {\n  var label = labelItem.label;\n  var labelLine = hostEl && hostEl.getTextGuideLine();\n  return {\n    dataIndex: labelItem.dataIndex,\n    dataType: labelItem.dataType,\n    seriesIndex: labelItem.seriesModel.seriesIndex,\n    text: labelItem.label.style.text,\n    rect: labelItem.hostRect,\n    labelRect: labelItem.rect,\n    align: label.style.align,\n    verticalAlign: label.style.verticalAlign,\n    labelLinePoints: cloneArr(labelLine && labelLine.shape.points)\n  };\n}\n\nvar LABEL_OPTION_TO_STYLE_KEYS = ['align', 'verticalAlign', 'width', 'height', 'fontSize'];\nvar dummyTransformable = new Transformable();\nvar labelLayoutInnerStore = makeInner();\nvar labelLineAnimationStore = makeInner();\n\nfunction extendWithKeys(target, source, keys) {\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n\n    if (source[key] != null) {\n      target[key] = source[key];\n    }\n  }\n}\n\nvar LABEL_LAYOUT_PROPS = ['x', 'y', 'rotation'];\n\nvar LabelManager = function () {\n  function LabelManager() {\n    this._labelList = [];\n    this._chartViewList = [];\n  }\n\n  LabelManager.prototype.clearLabels = function () {\n    this._labelList = [];\n    this._chartViewList = [];\n  };\n\n  LabelManager.prototype._addLabel = function (dataIndex, dataType, seriesModel, label, layoutOption) {\n    var labelStyle = label.style;\n    var hostEl = label.__hostTarget;\n    var textConfig = hostEl.textConfig || {};\n    var labelTransform = label.getComputedTransform();\n    var labelRect = label.getBoundingRect().plain();\n    BoundingRect.applyTransform(labelRect, labelRect, labelTransform);\n\n    if (labelTransform) {\n      dummyTransformable.setLocalTransform(labelTransform);\n    } else {\n      dummyTransformable.x = dummyTransformable.y = dummyTransformable.rotation = dummyTransformable.originX = dummyTransformable.originY = 0;\n      dummyTransformable.scaleX = dummyTransformable.scaleY = 1;\n    }\n\n    var host = label.__hostTarget;\n    var hostRect;\n\n    if (host) {\n      hostRect = host.getBoundingRect().plain();\n      var transform = host.getComputedTransform();\n      BoundingRect.applyTransform(hostRect, hostRect, transform);\n    }\n\n    var labelGuide = hostRect && host.getTextGuideLine();\n\n    this._labelList.push({\n      label: label,\n      labelLine: labelGuide,\n      seriesModel: seriesModel,\n      dataIndex: dataIndex,\n      dataType: dataType,\n      layoutOption: layoutOption,\n      computedLayoutOption: null,\n      rect: labelRect,\n      hostRect: hostRect,\n      priority: hostRect ? hostRect.width * hostRect.height : 0,\n      defaultAttr: {\n        ignore: label.ignore,\n        labelGuideIgnore: labelGuide && labelGuide.ignore,\n        x: dummyTransformable.x,\n        y: dummyTransformable.y,\n        rotation: dummyTransformable.rotation,\n        style: {\n          x: labelStyle.x,\n          y: labelStyle.y,\n          align: labelStyle.align,\n          verticalAlign: labelStyle.verticalAlign,\n          width: labelStyle.width,\n          height: labelStyle.height,\n          fontSize: labelStyle.fontSize\n        },\n        cursor: label.cursor,\n        attachedPos: textConfig.position,\n        attachedRot: textConfig.rotation\n      }\n    });\n  };\n\n  LabelManager.prototype.addLabelsOfSeries = function (chartView) {\n    var _this = this;\n\n    this._chartViewList.push(chartView);\n\n    var seriesModel = chartView.__model;\n    var layoutOption = seriesModel.get('labelLayout');\n\n    if (!(isFunction(layoutOption) || keys(layoutOption).length)) {\n      return;\n    }\n\n    chartView.group.traverse(function (child) {\n      if (child.ignore) {\n        return true;\n      }\n\n      var textEl = child.getTextContent();\n      var ecData = getECData(child);\n\n      if (textEl && !textEl.disableLabelLayout) {\n        _this._addLabel(ecData.dataIndex, ecData.dataType, seriesModel, textEl, layoutOption);\n      }\n    });\n  };\n\n  LabelManager.prototype.updateLayoutConfig = function (api) {\n    var width = api.getWidth();\n    var height = api.getHeight();\n\n    function createDragHandler(el, labelLineModel) {\n      return function () {\n        updateLabelLinePoints(el, labelLineModel);\n      };\n    }\n\n    for (var i = 0; i < this._labelList.length; i++) {\n      var labelItem = this._labelList[i];\n      var label = labelItem.label;\n      var hostEl = label.__hostTarget;\n      var defaultLabelAttr = labelItem.defaultAttr;\n      var layoutOption = void 0;\n\n      if (typeof labelItem.layoutOption === 'function') {\n        layoutOption = labelItem.layoutOption(prepareLayoutCallbackParams(labelItem, hostEl));\n      } else {\n        layoutOption = labelItem.layoutOption;\n      }\n\n      layoutOption = layoutOption || {};\n      labelItem.computedLayoutOption = layoutOption;\n      var degreeToRadian = Math.PI / 180;\n\n      if (hostEl) {\n        hostEl.setTextConfig({\n          local: false,\n          position: layoutOption.x != null || layoutOption.y != null ? null : defaultLabelAttr.attachedPos,\n          rotation: layoutOption.rotate != null ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.attachedRot,\n          offset: [layoutOption.dx || 0, layoutOption.dy || 0]\n        });\n      }\n\n      var needsUpdateLabelLine = false;\n\n      if (layoutOption.x != null) {\n        label.x = parsePercent(layoutOption.x, width);\n        label.setStyle('x', 0);\n        needsUpdateLabelLine = true;\n      } else {\n        label.x = defaultLabelAttr.x;\n        label.setStyle('x', defaultLabelAttr.style.x);\n      }\n\n      if (layoutOption.y != null) {\n        label.y = parsePercent(layoutOption.y, height);\n        label.setStyle('y', 0);\n        needsUpdateLabelLine = true;\n      } else {\n        label.y = defaultLabelAttr.y;\n        label.setStyle('y', defaultLabelAttr.style.y);\n      }\n\n      if (layoutOption.labelLinePoints) {\n        var guideLine = hostEl.getTextGuideLine();\n\n        if (guideLine) {\n          guideLine.setShape({\n            points: layoutOption.labelLinePoints\n          });\n          needsUpdateLabelLine = false;\n        }\n      }\n\n      var labelLayoutStore = labelLayoutInnerStore(label);\n      labelLayoutStore.needsUpdateLabelLine = needsUpdateLabelLine;\n      label.rotation = layoutOption.rotate != null ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.rotation;\n\n      for (var k = 0; k < LABEL_OPTION_TO_STYLE_KEYS.length; k++) {\n        var key = LABEL_OPTION_TO_STYLE_KEYS[k];\n        label.setStyle(key, layoutOption[key] != null ? layoutOption[key] : defaultLabelAttr.style[key]);\n      }\n\n      if (layoutOption.draggable) {\n        label.draggable = true;\n        label.cursor = 'move';\n\n        if (hostEl) {\n          var hostModel = labelItem.seriesModel;\n\n          if (labelItem.dataIndex != null) {\n            var data = labelItem.seriesModel.getData(labelItem.dataType);\n            hostModel = data.getItemModel(labelItem.dataIndex);\n          }\n\n          label.on('drag', createDragHandler(hostEl, hostModel.getModel('labelLine')));\n        }\n      } else {\n        label.off('drag');\n        label.cursor = defaultLabelAttr.cursor;\n      }\n    }\n  };\n\n  LabelManager.prototype.layout = function (api) {\n    var width = api.getWidth();\n    var height = api.getHeight();\n    var labelList = prepareLayoutList(this._labelList);\n    var labelsNeedsAdjustOnX = filter(labelList, function (item) {\n      return item.layoutOption.moveOverlap === 'shiftX';\n    });\n    var labelsNeedsAdjustOnY = filter(labelList, function (item) {\n      return item.layoutOption.moveOverlap === 'shiftY';\n    });\n    shiftLayoutOnX(labelsNeedsAdjustOnX, 0, width);\n    shiftLayoutOnY(labelsNeedsAdjustOnY, 0, height);\n    var labelsNeedsHideOverlap = filter(labelList, function (item) {\n      return item.layoutOption.hideOverlap;\n    });\n    hideOverlap(labelsNeedsHideOverlap);\n  };\n\n  LabelManager.prototype.processLabelsOverall = function () {\n    var _this = this;\n\n    each(this._chartViewList, function (chartView) {\n      var seriesModel = chartView.__model;\n      var ignoreLabelLineUpdate = chartView.ignoreLabelLineUpdate;\n      var animationEnabled = seriesModel.isAnimationEnabled();\n      chartView.group.traverse(function (child) {\n        if (child.ignore) {\n          return true;\n        }\n\n        var needsUpdateLabelLine = !ignoreLabelLineUpdate;\n        var label = child.getTextContent();\n\n        if (!needsUpdateLabelLine && label) {\n          needsUpdateLabelLine = labelLayoutInnerStore(label).needsUpdateLabelLine;\n        }\n\n        if (needsUpdateLabelLine) {\n          _this._updateLabelLine(child, seriesModel);\n        }\n\n        if (animationEnabled) {\n          _this._animateLabels(child, seriesModel);\n        }\n      });\n    });\n  };\n\n  LabelManager.prototype._updateLabelLine = function (el, seriesModel) {\n    var textEl = el.getTextContent();\n    var ecData = getECData(el);\n    var dataIndex = ecData.dataIndex;\n\n    if (textEl && dataIndex != null) {\n      var data = seriesModel.getData(ecData.dataType);\n      var itemModel = data.getItemModel(dataIndex);\n      var defaultStyle = {};\n      var visualStyle = data.getItemVisual(dataIndex, 'style');\n      var visualType = data.getVisual('drawType');\n      defaultStyle.stroke = visualStyle[visualType];\n      var labelLineModel = itemModel.getModel('labelLine');\n      setLabelLineStyle(el, getLabelLineStatesModels(itemModel), defaultStyle);\n      updateLabelLinePoints(el, labelLineModel);\n    }\n  };\n\n  LabelManager.prototype._animateLabels = function (el, seriesModel) {\n    var textEl = el.getTextContent();\n    var guideLine = el.getTextGuideLine();\n\n    if (textEl && !textEl.ignore && !textEl.invisible && !el.disableLabelAnimation && !isElementRemoved(el)) {\n      var layoutStore = labelLayoutInnerStore(textEl);\n      var oldLayout = layoutStore.oldLayout;\n      var ecData = getECData(el);\n      var dataIndex = ecData.dataIndex;\n      var newProps = {\n        x: textEl.x,\n        y: textEl.y,\n        rotation: textEl.rotation\n      };\n      var data = seriesModel.getData(ecData.dataType);\n\n      if (!oldLayout) {\n        textEl.attr(newProps);\n\n        if (!labelInner(textEl).valueAnimation) {\n          var oldOpacity = retrieve2(textEl.style.opacity, 1);\n          textEl.style.opacity = 0;\n          initProps(textEl, {\n            style: {\n              opacity: oldOpacity\n            }\n          }, seriesModel, dataIndex);\n        }\n      } else {\n        textEl.attr(oldLayout);\n        var prevStates = el.prevStates;\n\n        if (prevStates) {\n          if (indexOf(prevStates, 'select') >= 0) {\n            textEl.attr(layoutStore.oldLayoutSelect);\n          }\n\n          if (indexOf(prevStates, 'emphasis') >= 0) {\n            textEl.attr(layoutStore.oldLayoutEmphasis);\n          }\n        }\n\n        updateProps(textEl, newProps, seriesModel, dataIndex);\n      }\n\n      layoutStore.oldLayout = newProps;\n\n      if (textEl.states.select) {\n        var layoutSelect = layoutStore.oldLayoutSelect = {};\n        extendWithKeys(layoutSelect, newProps, LABEL_LAYOUT_PROPS);\n        extendWithKeys(layoutSelect, textEl.states.select, LABEL_LAYOUT_PROPS);\n      }\n\n      if (textEl.states.emphasis) {\n        var layoutEmphasis = layoutStore.oldLayoutEmphasis = {};\n        extendWithKeys(layoutEmphasis, newProps, LABEL_LAYOUT_PROPS);\n        extendWithKeys(layoutEmphasis, textEl.states.emphasis, LABEL_LAYOUT_PROPS);\n      }\n\n      animateLabelValue(textEl, dataIndex, data, seriesModel, seriesModel);\n    }\n\n    if (guideLine && !guideLine.ignore && !guideLine.invisible) {\n      var layoutStore = labelLineAnimationStore(guideLine);\n      var oldLayout = layoutStore.oldLayout;\n      var newLayout = {\n        points: guideLine.shape.points\n      };\n\n      if (!oldLayout) {\n        guideLine.setShape(newLayout);\n        guideLine.style.strokePercent = 0;\n        initProps(guideLine, {\n          style: {\n            strokePercent: 1\n          }\n        }, seriesModel);\n      } else {\n        guideLine.attr({\n          shape: oldLayout\n        });\n        updateProps(guideLine, {\n          shape: newLayout\n        }, seriesModel);\n      }\n\n      layoutStore.oldLayout = newLayout;\n    }\n  };\n\n  return LabelManager;\n}();\n\nexport default LabelManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { extend, each, isArray } from 'zrender/lib/core/util';\nimport { deprecateReplaceLog, deprecateLog } from '../util/log';\nimport { queryDataIndex } from '../util/model';\nexport function createLegacyDataSelectAction(seriesType, ecRegisterAction) {\n  function getSeriesIndices(ecModel, payload) {\n    var seriesIndices = [];\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: seriesType,\n      query: payload\n    }, function (seriesModel) {\n      seriesIndices.push(seriesModel.seriesIndex);\n    });\n    return seriesIndices;\n  }\n\n  each([[seriesType + 'ToggleSelect', 'toggleSelect'], [seriesType + 'Select', 'select'], [seriesType + 'UnSelect', 'unselect']], function (eventsMap) {\n    ecRegisterAction(eventsMap[0], function (payload, ecModel, api) {\n      payload = extend({}, payload);\n\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateReplaceLog(payload.type, eventsMap[1]);\n      }\n\n      api.dispatchAction(extend(payload, {\n        type: eventsMap[1],\n        seriesIndex: getSeriesIndices(ecModel, payload)\n      }));\n    });\n  });\n}\n\nfunction handleSeriesLegacySelectEvents(type, eventPostfix, ecIns, ecModel, payload) {\n  var legacyEventName = type + eventPostfix;\n\n  if (!ecIns.isSilent(legacyEventName)) {\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateLog(\"event \" + legacyEventName + \" is deprecated.\");\n    }\n\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'pie'\n    }, function (seriesModel) {\n      var seriesIndex = seriesModel.seriesIndex;\n      var selected = payload.selected;\n\n      for (var i = 0; i < selected.length; i++) {\n        if (selected[i].seriesIndex === seriesIndex) {\n          var data = seriesModel.getData();\n          var dataIndex = queryDataIndex(data, payload.fromActionPayload);\n          ecIns.trigger(legacyEventName, {\n            type: legacyEventName,\n            seriesId: seriesModel.id,\n            name: isArray(dataIndex) ? data.getName(dataIndex[0]) : data.getName(dataIndex),\n            selected: extend({}, seriesModel.option.selectedMap)\n          });\n        }\n      }\n    });\n  }\n}\n\nexport function handleLegacySelectEvents(messageCenter, ecIns, api) {\n  messageCenter.on('selectchanged', function (params) {\n    var ecModel = api.getModel();\n\n    if (params.isFromClick) {\n      handleSeriesLegacySelectEvents('map', 'selectchanged', ecIns, ecModel, params);\n      handleSeriesLegacySelectEvents('pie', 'selectchanged', ecIns, ecModel, params);\n    } else if (params.fromAction === 'select') {\n      handleSeriesLegacySelectEvents('map', 'selected', ecIns, ecModel, params);\n      handleSeriesLegacySelectEvents('pie', 'selected', ecIns, ecModel, params);\n    } else if (params.fromAction === 'unselect') {\n      handleSeriesLegacySelectEvents('map', 'unselected', ecIns, ecModel, params);\n      handleSeriesLegacySelectEvents('pie', 'unselected', ecIns, ecModel, params);\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function findEventDispatcher(target, det, returnFirstMatch) {\n  var found;\n\n  while (target) {\n    if (det(target)) {\n      found = target;\n\n      if (returnFirstMatch) {\n        break;\n      }\n    }\n\n    target = target.__hostTarget || target.parent;\n  }\n\n  return found;\n}","var wmUniqueIndex = Math.round(Math.random() * 9);\nvar WeakMap = (function () {\n    function WeakMap() {\n        this._id = '__ec_inner_' + wmUniqueIndex++;\n    }\n    WeakMap.prototype.get = function (key) {\n        return this._guard(key)[this._id];\n    };\n    WeakMap.prototype.set = function (key, value) {\n        var target = this._guard(key);\n        if (typeof Object.defineProperty === 'function') {\n            Object.defineProperty(target, this._id, {\n                value: value,\n                enumerable: false,\n                configurable: true\n            });\n        }\n        else {\n            target[this._id] = value;\n        }\n        return this;\n    };\n    WeakMap.prototype[\"delete\"] = function (key) {\n        if (this.has(key)) {\n            delete this._guard(key)[this._id];\n            return true;\n        }\n        return false;\n    };\n    WeakMap.prototype.has = function (key) {\n        return !!this._guard(key)[this._id];\n    };\n    WeakMap.prototype._guard = function (key) {\n        if (key !== Object(key)) {\n            throw TypeError('Value of WeakMap is not a non-null object.');\n        }\n        return key;\n    };\n    return WeakMap;\n}());\nexport default WeakMap;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from './graphic';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { calculateTextPosition } from 'zrender/lib/contain/text';\nvar Triangle = graphic.Path.extend({\n  type: 'triangle',\n  shape: {\n    cx: 0,\n    cy: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (path, shape) {\n    var cx = shape.cx;\n    var cy = shape.cy;\n    var width = shape.width / 2;\n    var height = shape.height / 2;\n    path.moveTo(cx, cy - height);\n    path.lineTo(cx + width, cy + height);\n    path.lineTo(cx - width, cy + height);\n    path.closePath();\n  }\n});\nvar Diamond = graphic.Path.extend({\n  type: 'diamond',\n  shape: {\n    cx: 0,\n    cy: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (path, shape) {\n    var cx = shape.cx;\n    var cy = shape.cy;\n    var width = shape.width / 2;\n    var height = shape.height / 2;\n    path.moveTo(cx, cy - height);\n    path.lineTo(cx + width, cy);\n    path.lineTo(cx, cy + height);\n    path.lineTo(cx - width, cy);\n    path.closePath();\n  }\n});\nvar Pin = graphic.Path.extend({\n  type: 'pin',\n  shape: {\n    x: 0,\n    y: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (path, shape) {\n    var x = shape.x;\n    var y = shape.y;\n    var w = shape.width / 5 * 3;\n    var h = Math.max(w, shape.height);\n    var r = w / 2;\n    var dy = r * r / (h - r);\n    var cy = y - h + r + dy;\n    var angle = Math.asin(dy / r);\n    var dx = Math.cos(angle) * r;\n    var tanX = Math.sin(angle);\n    var tanY = Math.cos(angle);\n    var cpLen = r * 0.6;\n    var cpLen2 = r * 0.7;\n    path.moveTo(x - dx, cy + dy);\n    path.arc(x, cy, r, Math.PI - angle, Math.PI * 2 + angle);\n    path.bezierCurveTo(x + dx - tanX * cpLen, cy + dy + tanY * cpLen, x, y - cpLen2, x, y);\n    path.bezierCurveTo(x, y - cpLen2, x - dx + tanX * cpLen, cy + dy + tanY * cpLen, x - dx, cy + dy);\n    path.closePath();\n  }\n});\nvar Arrow = graphic.Path.extend({\n  type: 'arrow',\n  shape: {\n    x: 0,\n    y: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (ctx, shape) {\n    var height = shape.height;\n    var width = shape.width;\n    var x = shape.x;\n    var y = shape.y;\n    var dx = width / 3 * 2;\n    ctx.moveTo(x, y);\n    ctx.lineTo(x + dx, y + height);\n    ctx.lineTo(x, y + height / 4 * 3);\n    ctx.lineTo(x - dx, y + height);\n    ctx.lineTo(x, y);\n    ctx.closePath();\n  }\n});\nvar symbolCtors = {\n  line: graphic.Rect,\n  rect: graphic.Rect,\n  roundRect: graphic.Rect,\n  square: graphic.Rect,\n  circle: graphic.Circle,\n  diamond: Diamond,\n  pin: Pin,\n  arrow: Arrow,\n  triangle: Triangle\n};\nvar symbolShapeMakers = {\n  line: function (x, y, w, h, shape) {\n    var thickness = 2;\n    shape.x = x;\n    shape.y = y + h / 2 - thickness / 2;\n    shape.width = w;\n    shape.height = thickness;\n  },\n  rect: function (x, y, w, h, shape) {\n    shape.x = x;\n    shape.y = y;\n    shape.width = w;\n    shape.height = h;\n  },\n  roundRect: function (x, y, w, h, shape) {\n    shape.x = x;\n    shape.y = y;\n    shape.width = w;\n    shape.height = h;\n    shape.r = Math.min(w, h) / 4;\n  },\n  square: function (x, y, w, h, shape) {\n    var size = Math.min(w, h);\n    shape.x = x;\n    shape.y = y;\n    shape.width = size;\n    shape.height = size;\n  },\n  circle: function (x, y, w, h, shape) {\n    shape.cx = x + w / 2;\n    shape.cy = y + h / 2;\n    shape.r = Math.min(w, h) / 2;\n  },\n  diamond: function (x, y, w, h, shape) {\n    shape.cx = x + w / 2;\n    shape.cy = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  },\n  pin: function (x, y, w, h, shape) {\n    shape.x = x + w / 2;\n    shape.y = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  },\n  arrow: function (x, y, w, h, shape) {\n    shape.x = x + w / 2;\n    shape.y = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  },\n  triangle: function (x, y, w, h, shape) {\n    shape.cx = x + w / 2;\n    shape.cy = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  }\n};\nexport var symbolBuildProxies = {};\nzrUtil.each(symbolCtors, function (Ctor, name) {\n  symbolBuildProxies[name] = new Ctor();\n});\nvar SymbolClz = graphic.Path.extend({\n  type: 'symbol',\n  shape: {\n    symbolType: '',\n    x: 0,\n    y: 0,\n    width: 0,\n    height: 0\n  },\n  calculateTextPosition: function (out, config, rect) {\n    var res = calculateTextPosition(out, config, rect);\n    var shape = this.shape;\n\n    if (shape && shape.symbolType === 'pin' && config.position === 'inside') {\n      res.y = rect.y + rect.height * 0.4;\n    }\n\n    return res;\n  },\n  buildPath: function (ctx, shape, inBundle) {\n    var symbolType = shape.symbolType;\n\n    if (symbolType !== 'none') {\n      var proxySymbol = symbolBuildProxies[symbolType];\n\n      if (!proxySymbol) {\n        symbolType = 'rect';\n        proxySymbol = symbolBuildProxies[symbolType];\n      }\n\n      symbolShapeMakers[symbolType](shape.x, shape.y, shape.width, shape.height, proxySymbol.shape);\n      proxySymbol.buildPath(ctx, proxySymbol.shape, inBundle);\n    }\n  }\n});\n\nfunction symbolPathSetColor(color, innerColor) {\n  if (this.type !== 'image') {\n    var symbolStyle = this.style;\n\n    if (this.__isEmptyBrush) {\n      symbolStyle.stroke = color;\n      symbolStyle.fill = innerColor || '#fff';\n      symbolStyle.lineWidth = 2;\n    } else {\n      symbolStyle.fill = color;\n    }\n\n    this.markRedraw();\n  }\n}\n\nexport function createSymbol(symbolType, x, y, w, h, color, keepAspect) {\n  var isEmpty = symbolType.indexOf('empty') === 0;\n\n  if (isEmpty) {\n    symbolType = symbolType.substr(5, 1).toLowerCase() + symbolType.substr(6);\n  }\n\n  var symbolPath;\n\n  if (symbolType.indexOf('image://') === 0) {\n    symbolPath = graphic.makeImage(symbolType.slice(8), new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\n  } else if (symbolType.indexOf('path://') === 0) {\n    symbolPath = graphic.makePath(symbolType.slice(7), {}, new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\n  } else {\n    symbolPath = new SymbolClz({\n      shape: {\n        symbolType: symbolType,\n        x: x,\n        y: y,\n        width: w,\n        height: h\n      }\n    });\n  }\n\n  symbolPath.__isEmptyBrush = isEmpty;\n  symbolPath.setColor = symbolPathSetColor;\n\n  if (color) {\n    symbolPath.setColor(color);\n  }\n\n  return symbolPath;\n}","export function createLinearGradient(ctx, obj, rect) {\n    var x = obj.x == null ? 0 : obj.x;\n    var x2 = obj.x2 == null ? 1 : obj.x2;\n    var y = obj.y == null ? 0 : obj.y;\n    var y2 = obj.y2 == null ? 0 : obj.y2;\n    if (!obj.global) {\n        x = x * rect.width + rect.x;\n        x2 = x2 * rect.width + rect.x;\n        y = y * rect.height + rect.y;\n        y2 = y2 * rect.height + rect.y;\n    }\n    x = isNaN(x) ? 0 : x;\n    x2 = isNaN(x2) ? 1 : x2;\n    y = isNaN(y) ? 0 : y;\n    y2 = isNaN(y2) ? 0 : y2;\n    var canvasGradient = ctx.createLinearGradient(x, y, x2, y2);\n    return canvasGradient;\n}\nexport function createRadialGradient(ctx, obj, rect) {\n    var width = rect.width;\n    var height = rect.height;\n    var min = Math.min(width, height);\n    var x = obj.x == null ? 0.5 : obj.x;\n    var y = obj.y == null ? 0.5 : obj.y;\n    var r = obj.r == null ? 0.5 : obj.r;\n    if (!obj.global) {\n        x = x * width + rect.x;\n        y = y * height + rect.y;\n        r = r * min;\n    }\n    var canvasGradient = ctx.createRadialGradient(x, y, 0, x, y, r);\n    return canvasGradient;\n}\nexport function getCanvasGradient(ctx, obj, rect) {\n    var canvasGradient = obj.type === 'radial'\n        ? createRadialGradient(ctx, obj, rect)\n        : createLinearGradient(ctx, obj, rect);\n    var colorStops = obj.colorStops;\n    for (var i = 0; i < colorStops.length; i++) {\n        canvasGradient.addColorStop(colorStops[i].offset, colorStops[i].color);\n    }\n    return canvasGradient;\n}\nexport function isClipPathChanged(clipPaths, prevClipPaths) {\n    if (clipPaths === prevClipPaths || (!clipPaths && !prevClipPaths)) {\n        return false;\n    }\n    if (!clipPaths || !prevClipPaths || (clipPaths.length !== prevClipPaths.length)) {\n        return true;\n    }\n    for (var i = 0; i < clipPaths.length; i++) {\n        if (clipPaths[i] !== prevClipPaths[i]) {\n            return true;\n        }\n    }\n    return false;\n}\n","import { isArray, isNumber } from '../../core/util';\nexport function normalizeLineDash(lineType, lineWidth) {\n    if (!lineType || lineType === 'solid' || !(lineWidth > 0)) {\n        return null;\n    }\n    lineWidth = lineWidth || 1;\n    return lineType === 'dashed'\n        ? [4 * lineWidth, 2 * lineWidth]\n        : lineType === 'dotted'\n            ? [lineWidth]\n            : isNumber(lineType)\n                ? [lineType] : isArray(lineType) ? lineType : null;\n}\n","import { DEFAULT_COMMON_STYLE } from '../graphic/Displayable';\nimport PathProxy from '../core/PathProxy';\nimport { createOrUpdateImage, isImageReady } from '../graphic/helper/image';\nimport { getCanvasGradient, isClipPathChanged } from './helper';\nimport Path from '../graphic/Path';\nimport ZRImage from '../graphic/Image';\nimport TSpan from '../graphic/TSpan';\nimport { DEFAULT_FONT } from '../contain/text';\nimport { map } from '../core/util';\nimport { normalizeLineDash } from '../graphic/helper/dashStyle';\nimport Element from '../Element';\nimport IncrementalDisplayable from '../graphic/IncrementalDisplayable';\nvar pathProxyForDraw = new PathProxy(true);\nfunction styleHasStroke(style) {\n    var stroke = style.stroke;\n    return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\n}\nfunction styleHasFill(style) {\n    var fill = style.fill;\n    return fill != null && fill !== 'none';\n}\nfunction doFillPath(ctx, style) {\n    if (style.fillOpacity != null && style.fillOpacity !== 1) {\n        var originalGlobalAlpha = ctx.globalAlpha;\n        ctx.globalAlpha = style.fillOpacity * style.opacity;\n        ctx.fill();\n        ctx.globalAlpha = originalGlobalAlpha;\n    }\n    else {\n        ctx.fill();\n    }\n}\nfunction doStrokePath(ctx, style) {\n    if (style.strokeOpacity != null && style.strokeOpacity !== 1) {\n        var originalGlobalAlpha = ctx.globalAlpha;\n        ctx.globalAlpha = style.strokeOpacity * style.opacity;\n        ctx.stroke();\n        ctx.globalAlpha = originalGlobalAlpha;\n    }\n    else {\n        ctx.stroke();\n    }\n}\nexport function createCanvasPattern(ctx, pattern, el) {\n    var image = createOrUpdateImage(pattern.image, pattern.__image, el);\n    if (isImageReady(image)) {\n        var canvasPattern = ctx.createPattern(image, pattern.repeat || 'repeat');\n        if (typeof DOMMatrix === 'function') {\n            var matrix = new DOMMatrix();\n            matrix.rotateSelf(0, 0, (pattern.rotation || 0) / Math.PI * 180);\n            matrix.scaleSelf((pattern.scaleX || 1), (pattern.scaleY || 1));\n            matrix.translateSelf((pattern.x || 0), (pattern.y || 0));\n            canvasPattern.setTransform(matrix);\n        }\n        return canvasPattern;\n    }\n}\nfunction brushPath(ctx, el, style, inBatch) {\n    var hasStroke = styleHasStroke(style);\n    var hasFill = styleHasFill(style);\n    var strokePercent = style.strokePercent;\n    var strokePart = strokePercent < 1;\n    var firstDraw = !el.path;\n    if ((!el.silent || strokePart) && firstDraw) {\n        el.createPathProxy();\n    }\n    var path = el.path || pathProxyForDraw;\n    if (!inBatch) {\n        var fill = style.fill;\n        var stroke = style.stroke;\n        var hasFillGradient = hasFill && !!fill.colorStops;\n        var hasStrokeGradient = hasStroke && !!stroke.colorStops;\n        var hasFillPattern = hasFill && !!fill.image;\n        var hasStrokePattern = hasStroke && !!stroke.image;\n        var fillGradient = void 0;\n        var strokeGradient = void 0;\n        var fillPattern = void 0;\n        var strokePattern = void 0;\n        var rect = void 0;\n        if (hasFillGradient || hasStrokeGradient) {\n            rect = el.getBoundingRect();\n        }\n        if (hasFillGradient) {\n            fillGradient = el.__dirty\n                ? getCanvasGradient(ctx, fill, rect)\n                : el.__canvasFillGradient;\n            el.__canvasFillGradient = fillGradient;\n        }\n        if (hasStrokeGradient) {\n            strokeGradient = el.__dirty\n                ? getCanvasGradient(ctx, stroke, rect)\n                : el.__canvasStrokeGradient;\n            el.__canvasStrokeGradient = strokeGradient;\n        }\n        if (hasFillPattern) {\n            fillPattern = (el.__dirty || !el.__canvasFillPattern)\n                ? createCanvasPattern(ctx, fill, el)\n                : el.__canvasFillPattern;\n            el.__canvasFillPattern = fillPattern;\n        }\n        if (hasStrokePattern) {\n            strokePattern = (el.__dirty || !el.__canvasStrokePattern)\n                ? createCanvasPattern(ctx, stroke, el)\n                : el.__canvasStrokePattern;\n            el.__canvasStrokePattern = fillPattern;\n        }\n        if (hasFillGradient) {\n            ctx.fillStyle = fillGradient;\n        }\n        else if (hasFillPattern) {\n            if (fillPattern) {\n                ctx.fillStyle = fillPattern;\n            }\n            else {\n                hasFill = false;\n            }\n        }\n        if (hasStrokeGradient) {\n            ctx.strokeStyle = strokeGradient;\n        }\n        else if (hasStrokePattern) {\n            if (strokePattern) {\n                ctx.strokeStyle = strokePattern;\n            }\n            else {\n                hasStroke = false;\n            }\n        }\n    }\n    var lineDash = style.lineDash && style.lineWidth > 0 && normalizeLineDash(style.lineDash, style.lineWidth);\n    var lineDashOffset = style.lineDashOffset;\n    var ctxLineDash = !!ctx.setLineDash;\n    var scale = el.getGlobalScale();\n    path.setScale(scale[0], scale[1], el.segmentIgnoreThreshold);\n    if (lineDash) {\n        var lineScale_1 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\n        if (lineScale_1 && lineScale_1 !== 1) {\n            lineDash = map(lineDash, function (rawVal) {\n                return rawVal / lineScale_1;\n            });\n            lineDashOffset /= lineScale_1;\n        }\n    }\n    var needsRebuild = true;\n    if (firstDraw || (el.__dirty & Path.SHAPE_CHANGED_BIT)\n        || (lineDash && !ctxLineDash && hasStroke)) {\n        path.setDPR(ctx.dpr);\n        if (strokePart) {\n            path.setContext(null);\n        }\n        else {\n            path.setContext(ctx);\n            needsRebuild = false;\n        }\n        path.reset();\n        if (lineDash && !ctxLineDash) {\n            path.setLineDash(lineDash);\n            path.setLineDashOffset(lineDashOffset);\n        }\n        el.buildPath(path, el.shape, inBatch);\n        path.toStatic();\n        el.pathUpdated();\n    }\n    if (needsRebuild) {\n        path.rebuildPath(ctx, strokePart ? strokePercent : 1);\n    }\n    if (lineDash && ctxLineDash) {\n        ctx.setLineDash(lineDash);\n        ctx.lineDashOffset = lineDashOffset;\n    }\n    if (!inBatch) {\n        if (style.strokeFirst) {\n            if (hasStroke) {\n                doStrokePath(ctx, style);\n            }\n            if (hasFill) {\n                doFillPath(ctx, style);\n            }\n        }\n        else {\n            if (hasFill) {\n                doFillPath(ctx, style);\n            }\n            if (hasStroke) {\n                doStrokePath(ctx, style);\n            }\n        }\n    }\n    if (lineDash && ctxLineDash) {\n        ctx.setLineDash([]);\n    }\n}\nfunction brushImage(ctx, el, style) {\n    var image = el.__image = createOrUpdateImage(style.image, el.__image, el, el.onload);\n    if (!image || !isImageReady(image)) {\n        return;\n    }\n    var x = style.x || 0;\n    var y = style.y || 0;\n    var width = el.getWidth();\n    var height = el.getHeight();\n    var aspect = image.width / image.height;\n    if (width == null && height != null) {\n        width = height * aspect;\n    }\n    else if (height == null && width != null) {\n        height = width / aspect;\n    }\n    else if (width == null && height == null) {\n        width = image.width;\n        height = image.height;\n    }\n    if (style.sWidth && style.sHeight) {\n        var sx = style.sx || 0;\n        var sy = style.sy || 0;\n        ctx.drawImage(image, sx, sy, style.sWidth, style.sHeight, x, y, width, height);\n    }\n    else if (style.sx && style.sy) {\n        var sx = style.sx;\n        var sy = style.sy;\n        var sWidth = width - sx;\n        var sHeight = height - sy;\n        ctx.drawImage(image, sx, sy, sWidth, sHeight, x, y, width, height);\n    }\n    else {\n        ctx.drawImage(image, x, y, width, height);\n    }\n}\nfunction brushText(ctx, el, style) {\n    var text = style.text;\n    text != null && (text += '');\n    if (text) {\n        ctx.font = style.font || DEFAULT_FONT;\n        ctx.textAlign = style.textAlign;\n        ctx.textBaseline = style.textBaseline;\n        var hasLineDash = void 0;\n        if (ctx.setLineDash) {\n            var lineDash = style.lineDash && style.lineWidth > 0 && normalizeLineDash(style.lineDash, style.lineWidth);\n            var lineDashOffset = style.lineDashOffset;\n            if (lineDash) {\n                var lineScale_2 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\n                if (lineScale_2 && lineScale_2 !== 1) {\n                    lineDash = map(lineDash, function (rawVal) {\n                        return rawVal / lineScale_2;\n                    });\n                    lineDashOffset /= lineScale_2;\n                }\n                ctx.setLineDash(lineDash);\n                ctx.lineDashOffset = lineDashOffset;\n                hasLineDash = true;\n            }\n        }\n        if (style.strokeFirst) {\n            if (styleHasStroke(style)) {\n                ctx.strokeText(text, style.x, style.y);\n            }\n            if (styleHasFill(style)) {\n                ctx.fillText(text, style.x, style.y);\n            }\n        }\n        else {\n            if (styleHasFill(style)) {\n                ctx.fillText(text, style.x, style.y);\n            }\n            if (styleHasStroke(style)) {\n                ctx.strokeText(text, style.x, style.y);\n            }\n        }\n        if (hasLineDash) {\n            ctx.setLineDash([]);\n        }\n    }\n}\nvar SHADOW_NUMBER_PROPS = ['shadowBlur', 'shadowOffsetX', 'shadowOffsetY'];\nvar STROKE_PROPS = [\n    ['lineCap', 'butt'], ['lineJoin', 'miter'], ['miterLimit', 10]\n];\nfunction bindCommonProps(ctx, style, prevStyle, forceSetAll, scope) {\n    var styleChanged = false;\n    if (!forceSetAll) {\n        prevStyle = prevStyle || {};\n        if (style === prevStyle) {\n            return false;\n        }\n    }\n    if (forceSetAll || style.opacity !== prevStyle.opacity) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.globalAlpha = style.opacity == null ? DEFAULT_COMMON_STYLE.opacity : style.opacity;\n    }\n    if (forceSetAll || style.blend !== prevStyle.blend) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.globalCompositeOperation = style.blend || DEFAULT_COMMON_STYLE.blend;\n    }\n    for (var i = 0; i < SHADOW_NUMBER_PROPS.length; i++) {\n        var propName = SHADOW_NUMBER_PROPS[i];\n        if (forceSetAll || style[propName] !== prevStyle[propName]) {\n            if (!styleChanged) {\n                flushPathDrawn(ctx, scope);\n                styleChanged = true;\n            }\n            ctx[propName] = ctx.dpr * (style[propName] || 0);\n        }\n    }\n    if (forceSetAll || style.shadowColor !== prevStyle.shadowColor) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.shadowColor = style.shadowColor || DEFAULT_COMMON_STYLE.shadowColor;\n    }\n    return styleChanged;\n}\nfunction bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetAll, scope) {\n    var style = getStyle(el, scope.inHover);\n    var prevStyle = forceSetAll\n        ? null\n        : (prevEl && getStyle(prevEl, scope.inHover) || {});\n    if (style === prevStyle) {\n        return false;\n    }\n    var styleChanged = bindCommonProps(ctx, style, prevStyle, forceSetAll, scope);\n    if (forceSetAll || style.fill !== prevStyle.fill) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.fillStyle = style.fill;\n    }\n    if (forceSetAll || style.stroke !== prevStyle.stroke) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.strokeStyle = style.stroke;\n    }\n    if (forceSetAll || style.opacity !== prevStyle.opacity) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.globalAlpha = style.opacity == null ? 1 : style.opacity;\n    }\n    if (el.hasStroke()) {\n        var lineWidth = style.lineWidth;\n        var newLineWidth = lineWidth / ((style.strokeNoScale && el && el.getLineScale) ? el.getLineScale() : 1);\n        if (ctx.lineWidth !== newLineWidth) {\n            if (!styleChanged) {\n                flushPathDrawn(ctx, scope);\n                styleChanged = true;\n            }\n            ctx.lineWidth = newLineWidth;\n        }\n    }\n    for (var i = 0; i < STROKE_PROPS.length; i++) {\n        var prop = STROKE_PROPS[i];\n        var propName = prop[0];\n        if (forceSetAll || style[propName] !== prevStyle[propName]) {\n            if (!styleChanged) {\n                flushPathDrawn(ctx, scope);\n                styleChanged = true;\n            }\n            ctx[propName] = style[propName] || prop[1];\n        }\n    }\n    return styleChanged;\n}\nfunction bindImageStyle(ctx, el, prevEl, forceSetAll, scope) {\n    return bindCommonProps(ctx, getStyle(el, scope.inHover), prevEl && getStyle(prevEl, scope.inHover), forceSetAll, scope);\n}\nfunction setContextTransform(ctx, el) {\n    var m = el.transform;\n    var dpr = ctx.dpr || 1;\n    if (m) {\n        ctx.setTransform(dpr * m[0], dpr * m[1], dpr * m[2], dpr * m[3], dpr * m[4], dpr * m[5]);\n    }\n    else {\n        ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n    }\n}\nfunction updateClipStatus(clipPaths, ctx, scope) {\n    var allClipped = false;\n    for (var i = 0; i < clipPaths.length; i++) {\n        var clipPath = clipPaths[i];\n        allClipped = allClipped || clipPath.isZeroArea();\n        setContextTransform(ctx, clipPath);\n        ctx.beginPath();\n        clipPath.buildPath(ctx, clipPath.shape);\n        ctx.clip();\n    }\n    scope.allClipped = allClipped;\n}\nfunction isTransformChanged(m0, m1) {\n    if (m0 && m1) {\n        return m0[0] !== m1[0]\n            || m0[1] !== m1[1]\n            || m0[2] !== m1[2]\n            || m0[3] !== m1[3]\n            || m0[4] !== m1[4]\n            || m0[5] !== m1[5];\n    }\n    else if (!m0 && !m1) {\n        return false;\n    }\n    return true;\n}\nvar DRAW_TYPE_PATH = 1;\nvar DRAW_TYPE_IMAGE = 2;\nvar DRAW_TYPE_TEXT = 3;\nvar DRAW_TYPE_INCREMENTAL = 4;\nfunction canPathBatch(style) {\n    var hasFill = styleHasFill(style);\n    var hasStroke = styleHasStroke(style);\n    return !(style.lineDash\n        || !(+hasFill ^ +hasStroke)\n        || (hasFill && typeof style.fill !== 'string')\n        || (hasStroke && typeof style.stroke !== 'string')\n        || style.strokePercent < 1\n        || style.strokeOpacity < 1\n        || style.fillOpacity < 1);\n}\nfunction flushPathDrawn(ctx, scope) {\n    scope.batchFill && ctx.fill();\n    scope.batchStroke && ctx.stroke();\n    scope.batchFill = '';\n    scope.batchStroke = '';\n}\nfunction getStyle(el, inHover) {\n    return inHover ? (el.__hoverStyle || el.style) : el.style;\n}\nexport function brushSingle(ctx, el) {\n    brush(ctx, el, { inHover: false, viewWidth: 0, viewHeight: 0 }, true);\n}\nexport function brush(ctx, el, scope, isLast) {\n    var m = el.transform;\n    if (!el.shouldBePainted(scope.viewWidth, scope.viewHeight, false, false)) {\n        el.__dirty &= ~Element.REDARAW_BIT;\n        el.__isRendered = false;\n        return;\n    }\n    var clipPaths = el.__clipPaths;\n    var prevElClipPaths = scope.prevElClipPaths;\n    var forceSetTransform = false;\n    var forceSetStyle = false;\n    if (!prevElClipPaths || isClipPathChanged(clipPaths, prevElClipPaths)) {\n        if (prevElClipPaths && prevElClipPaths.length) {\n            flushPathDrawn(ctx, scope);\n            ctx.restore();\n            forceSetStyle = forceSetTransform = true;\n            scope.prevElClipPaths = null;\n            scope.allClipped = false;\n            scope.prevEl = null;\n        }\n        if (clipPaths && clipPaths.length) {\n            flushPathDrawn(ctx, scope);\n            ctx.save();\n            updateClipStatus(clipPaths, ctx, scope);\n            forceSetTransform = true;\n        }\n        scope.prevElClipPaths = clipPaths;\n    }\n    if (scope.allClipped) {\n        el.__isRendered = false;\n        return;\n    }\n    el.beforeBrush && el.beforeBrush();\n    el.innerBeforeBrush();\n    var prevEl = scope.prevEl;\n    if (!prevEl) {\n        forceSetStyle = forceSetTransform = true;\n    }\n    var canBatchPath = el instanceof Path\n        && el.autoBatch\n        && canPathBatch(el.style);\n    if (forceSetTransform || isTransformChanged(m, prevEl.transform)) {\n        flushPathDrawn(ctx, scope);\n        setContextTransform(ctx, el);\n    }\n    else if (!canBatchPath) {\n        flushPathDrawn(ctx, scope);\n    }\n    var style = getStyle(el, scope.inHover);\n    if (el instanceof Path) {\n        if (scope.lastDrawType !== DRAW_TYPE_PATH) {\n            forceSetStyle = true;\n            scope.lastDrawType = DRAW_TYPE_PATH;\n        }\n        bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\n        if (!canBatchPath || (!scope.batchFill && !scope.batchStroke)) {\n            ctx.beginPath();\n        }\n        brushPath(ctx, el, style, canBatchPath);\n        if (canBatchPath) {\n            scope.batchFill = style.fill || '';\n            scope.batchStroke = style.stroke || '';\n        }\n    }\n    else {\n        if (el instanceof TSpan) {\n            if (scope.lastDrawType !== DRAW_TYPE_TEXT) {\n                forceSetStyle = true;\n                scope.lastDrawType = DRAW_TYPE_TEXT;\n            }\n            bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\n            brushText(ctx, el, style);\n        }\n        else if (el instanceof ZRImage) {\n            if (scope.lastDrawType !== DRAW_TYPE_IMAGE) {\n                forceSetStyle = true;\n                scope.lastDrawType = DRAW_TYPE_IMAGE;\n            }\n            bindImageStyle(ctx, el, prevEl, forceSetStyle, scope);\n            brushImage(ctx, el, style);\n        }\n        else if (el instanceof IncrementalDisplayable) {\n            if (scope.lastDrawType !== DRAW_TYPE_INCREMENTAL) {\n                forceSetStyle = true;\n                scope.lastDrawType = DRAW_TYPE_INCREMENTAL;\n            }\n            brushIncremental(ctx, el, scope);\n        }\n    }\n    if (canBatchPath && isLast) {\n        flushPathDrawn(ctx, scope);\n    }\n    el.innerAfterBrush();\n    el.afterBrush && el.afterBrush();\n    scope.prevEl = el;\n    el.__dirty = 0;\n    el.__isRendered = true;\n}\nfunction brushIncremental(ctx, el, scope) {\n    var displayables = el.getDisplayables();\n    var temporalDisplayables = el.getTemporalDisplayables();\n    ctx.save();\n    var innerScope = {\n        prevElClipPaths: null,\n        prevEl: null,\n        allClipped: false,\n        viewWidth: scope.viewWidth,\n        viewHeight: scope.viewHeight,\n        inHover: scope.inHover\n    };\n    var i;\n    var len;\n    for (i = el.getCursor(), len = displayables.length; i < len; i++) {\n        var displayable = displayables[i];\n        displayable.beforeBrush && displayable.beforeBrush();\n        displayable.innerBeforeBrush();\n        brush(ctx, displayable, innerScope, i === len - 1);\n        displayable.innerAfterBrush();\n        displayable.afterBrush && displayable.afterBrush();\n        innerScope.prevEl = displayable;\n    }\n    for (var i_1 = 0, len_1 = temporalDisplayables.length; i_1 < len_1; i_1++) {\n        var displayable = temporalDisplayables[i_1];\n        displayable.beforeBrush && displayable.beforeBrush();\n        displayable.innerBeforeBrush();\n        brush(ctx, displayable, innerScope, i_1 === len_1 - 1);\n        displayable.innerAfterBrush();\n        displayable.afterBrush && displayable.afterBrush();\n        innerScope.prevEl = displayable;\n    }\n    el.clearTemporalDisplayables();\n    el.notClear = true;\n    ctx.restore();\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport WeakMap from 'zrender/lib/core/WeakMap';\nimport LRU from 'zrender/lib/core/LRU';\nimport { defaults, createCanvas, map, isArray } from 'zrender/lib/core/util';\nimport { getLeastCommonMultiple } from './number';\nimport { createSymbol } from './symbol';\nimport { brushSingle } from 'zrender/lib/canvas/graphic';\nvar decalMap = new WeakMap();\nvar decalCache = new LRU(100);\nvar decalKeys = ['symbol', 'symbolSize', 'symbolKeepAspect', 'color', 'backgroundColor', 'dashArrayX', 'dashArrayY', 'maxTileWidth', 'maxTileHeight'];\nexport function createOrUpdatePatternFromDecal(decalObject, api) {\n  if (decalObject === 'none') {\n    return null;\n  }\n\n  var dpr = api.getDevicePixelRatio();\n  var zr = api.getZr();\n  var isSVG = zr.painter.type === 'svg';\n\n  if (decalObject.dirty) {\n    decalMap[\"delete\"](decalObject);\n  }\n\n  var oldPattern = decalMap.get(decalObject);\n\n  if (oldPattern) {\n    return oldPattern;\n  }\n\n  var decalOpt = defaults(decalObject, {\n    symbol: 'rect',\n    symbolSize: 1,\n    symbolKeepAspect: true,\n    color: 'rgba(0, 0, 0, 0.2)',\n    backgroundColor: null,\n    dashArrayX: 5,\n    dashArrayY: 5,\n    rotation: 0,\n    maxTileWidth: 512,\n    maxTileHeight: 512\n  });\n\n  if (decalOpt.backgroundColor === 'none') {\n    decalOpt.backgroundColor = null;\n  }\n\n  var pattern = {\n    repeat: 'repeat'\n  };\n  setPatternnSource(pattern);\n  pattern.rotation = decalOpt.rotation;\n  pattern.scaleX = pattern.scaleY = isSVG ? 1 : 1 / dpr;\n  decalMap.set(decalObject, pattern);\n  decalObject.dirty = false;\n  return pattern;\n\n  function setPatternnSource(pattern) {\n    var keys = [dpr];\n    var isValidKey = true;\n\n    for (var i = 0; i < decalKeys.length; ++i) {\n      var value = decalOpt[decalKeys[i]];\n      var valueType = typeof value;\n\n      if (value != null && !isArray(value) && valueType !== 'string' && valueType !== 'number' && valueType !== 'boolean') {\n        isValidKey = false;\n        break;\n      }\n\n      keys.push(value);\n    }\n\n    var cacheKey;\n\n    if (isValidKey) {\n      cacheKey = keys.join(',') + (isSVG ? '-svg' : '');\n      var cache = decalCache.get(cacheKey);\n\n      if (cache) {\n        isSVG ? pattern.svgElement = cache : pattern.image = cache;\n      }\n    }\n\n    var dashArrayX = normalizeDashArrayX(decalOpt.dashArrayX);\n    var dashArrayY = normalizeDashArrayY(decalOpt.dashArrayY);\n    var symbolArray = normalizeSymbolArray(decalOpt.symbol);\n    var lineBlockLengthsX = getLineBlockLengthX(dashArrayX);\n    var lineBlockLengthY = getLineBlockLengthY(dashArrayY);\n    var canvas = !isSVG && createCanvas();\n    var svgRoot = isSVG && zr.painter.createSVGElement('g');\n    var pSize = getPatternSize();\n    var ctx;\n\n    if (canvas) {\n      canvas.width = pSize.width * dpr;\n      canvas.height = pSize.height * dpr;\n      ctx = canvas.getContext('2d');\n    }\n\n    brushDecal();\n\n    if (isValidKey) {\n      decalCache.put(cacheKey, canvas || svgRoot);\n    }\n\n    pattern.image = canvas;\n    pattern.svgElement = svgRoot;\n    pattern.svgWidth = pSize.width;\n    pattern.svgHeight = pSize.height;\n\n    function getPatternSize() {\n      var width = 1;\n\n      for (var i = 0, xlen = lineBlockLengthsX.length; i < xlen; ++i) {\n        width = getLeastCommonMultiple(width, lineBlockLengthsX[i]);\n      }\n\n      var symbolRepeats = 1;\n\n      for (var i = 0, xlen = symbolArray.length; i < xlen; ++i) {\n        symbolRepeats = getLeastCommonMultiple(symbolRepeats, symbolArray[i].length);\n      }\n\n      width *= symbolRepeats;\n      var height = lineBlockLengthY * lineBlockLengthsX.length * symbolArray.length;\n\n      if (process.env.NODE_ENV !== 'production') {\n        var warn = function (attrName) {\n          console.warn(\"Calculated decal size is greater than \" + attrName + \" due to decal option settings so \" + attrName + \" is used for the decal size. Please consider changing the decal option to make a smaller decal or set \" + attrName + \" to be larger to avoid incontinuity.\");\n        };\n\n        if (width > decalOpt.maxTileWidth) {\n          warn('maxTileWidth');\n        }\n\n        if (height > decalOpt.maxTileHeight) {\n          warn('maxTileHeight');\n        }\n      }\n\n      return {\n        width: Math.max(1, Math.min(width, decalOpt.maxTileWidth)),\n        height: Math.max(1, Math.min(height, decalOpt.maxTileHeight))\n      };\n    }\n\n    function brushDecal() {\n      if (ctx) {\n        ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n        if (decalOpt.backgroundColor) {\n          ctx.fillStyle = decalOpt.backgroundColor;\n          ctx.fillRect(0, 0, canvas.width, canvas.height);\n        }\n      }\n\n      var ySum = 0;\n\n      for (var i = 0; i < dashArrayY.length; ++i) {\n        ySum += dashArrayY[i];\n      }\n\n      if (ySum <= 0) {\n        return;\n      }\n\n      var y = -lineBlockLengthY;\n      var yId = 0;\n      var yIdTotal = 0;\n      var xId0 = 0;\n\n      while (y < pSize.height) {\n        if (yId % 2 === 0) {\n          var symbolYId = yIdTotal / 2 % symbolArray.length;\n          var x = 0;\n          var xId1 = 0;\n          var xId1Total = 0;\n\n          while (x < pSize.width * 2) {\n            var xSum = 0;\n\n            for (var i = 0; i < dashArrayX[xId0].length; ++i) {\n              xSum += dashArrayX[xId0][i];\n            }\n\n            if (xSum <= 0) {\n              break;\n            }\n\n            if (xId1 % 2 === 0) {\n              var size = (1 - decalOpt.symbolSize) * 0.5;\n              var left = x + dashArrayX[xId0][xId1] * size;\n              var top_1 = y + dashArrayY[yId] * size;\n              var width = dashArrayX[xId0][xId1] * decalOpt.symbolSize;\n              var height = dashArrayY[yId] * decalOpt.symbolSize;\n              var symbolXId = xId1Total / 2 % symbolArray[symbolYId].length;\n              brushSymbol(left, top_1, width, height, symbolArray[symbolYId][symbolXId]);\n            }\n\n            x += dashArrayX[xId0][xId1];\n            ++xId1Total;\n            ++xId1;\n\n            if (xId1 === dashArrayX[xId0].length) {\n              xId1 = 0;\n            }\n          }\n\n          ++xId0;\n\n          if (xId0 === dashArrayX.length) {\n            xId0 = 0;\n          }\n        }\n\n        y += dashArrayY[yId];\n        ++yIdTotal;\n        ++yId;\n\n        if (yId === dashArrayY.length) {\n          yId = 0;\n        }\n      }\n\n      function brushSymbol(x, y, width, height, symbolType) {\n        var scale = isSVG ? 1 : dpr;\n        var symbol = createSymbol(symbolType, x * scale, y * scale, width * scale, height * scale, decalOpt.color, decalOpt.symbolKeepAspect);\n\n        if (isSVG) {\n          svgRoot.appendChild(zr.painter.paintOne(symbol));\n        } else {\n          brushSingle(ctx, symbol);\n        }\n      }\n    }\n  }\n}\n\nfunction normalizeSymbolArray(symbol) {\n  if (!symbol || symbol.length === 0) {\n    return [['rect']];\n  }\n\n  if (typeof symbol === 'string') {\n    return [[symbol]];\n  }\n\n  var isAllString = true;\n\n  for (var i = 0; i < symbol.length; ++i) {\n    if (typeof symbol[i] !== 'string') {\n      isAllString = false;\n      break;\n    }\n  }\n\n  if (isAllString) {\n    return normalizeSymbolArray([symbol]);\n  }\n\n  var result = [];\n\n  for (var i = 0; i < symbol.length; ++i) {\n    if (typeof symbol[i] === 'string') {\n      result.push([symbol[i]]);\n    } else {\n      result.push(symbol[i]);\n    }\n  }\n\n  return result;\n}\n\nfunction normalizeDashArrayX(dash) {\n  if (!dash || dash.length === 0) {\n    return [[0, 0]];\n  }\n\n  if (typeof dash === 'number') {\n    var dashValue = Math.ceil(dash);\n    return [[dashValue, dashValue]];\n  }\n\n  var isAllNumber = true;\n\n  for (var i = 0; i < dash.length; ++i) {\n    if (typeof dash[i] !== 'number') {\n      isAllNumber = false;\n      break;\n    }\n  }\n\n  if (isAllNumber) {\n    return normalizeDashArrayX([dash]);\n  }\n\n  var result = [];\n\n  for (var i = 0; i < dash.length; ++i) {\n    if (typeof dash[i] === 'number') {\n      var dashValue = Math.ceil(dash[i]);\n      result.push([dashValue, dashValue]);\n    } else {\n      var dashValue = map(dash[i], function (n) {\n        return Math.ceil(n);\n      });\n\n      if (dashValue.length % 2 === 1) {\n        result.push(dashValue.concat(dashValue));\n      } else {\n        result.push(dashValue);\n      }\n    }\n  }\n\n  return result;\n}\n\nfunction normalizeDashArrayY(dash) {\n  if (!dash || typeof dash === 'object' && dash.length === 0) {\n    return [0, 0];\n  }\n\n  if (typeof dash === 'number') {\n    var dashValue_1 = Math.ceil(dash);\n    return [dashValue_1, dashValue_1];\n  }\n\n  var dashValue = map(dash, function (n) {\n    return Math.ceil(n);\n  });\n  return dash.length % 2 ? dashValue.concat(dashValue) : dashValue;\n}\n\nfunction getLineBlockLengthX(dash) {\n  return map(dash, function (line) {\n    return getLineBlockLengthY(line);\n  });\n}\n\nfunction getLineBlockLengthY(dash) {\n  var blockLength = 0;\n\n  for (var i = 0; i < dash.length; ++i) {\n    blockLength += dash[i];\n  }\n\n  if (dash.length % 2 === 1) {\n    return blockLength * 2;\n  }\n\n  return blockLength;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createOrUpdatePatternFromDecal } from '../util/decal';\nexport default function decalVisual(ecModel, api) {\n  ecModel.eachRawSeries(function (seriesModel) {\n    if (ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n\n    if (data.hasItemVisual()) {\n      data.each(function (idx) {\n        var decal = data.getItemVisual(idx, 'decal');\n\n        if (decal) {\n          var itemStyle = data.ensureUniqueItemVisual(idx, 'style');\n          itemStyle.decal = createOrUpdatePatternFromDecal(decal, api);\n        }\n      });\n    }\n\n    var decal = data.getVisual('decal');\n\n    if (decal) {\n      var style = data.getVisual('style');\n      style.decal = createOrUpdatePatternFromDecal(decal, api);\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrender from 'zrender/lib/zrender';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as colorTool from 'zrender/lib/tool/color';\nimport env from 'zrender/lib/core/env';\nimport timsort from 'zrender/lib/core/timsort';\nimport Eventful from 'zrender/lib/core/Eventful';\nimport GlobalModel from '../model/Global';\nimport ExtensionAPI from './ExtensionAPI';\nimport CoordinateSystemManager from './CoordinateSystem';\nimport OptionManager from '../model/OptionManager';\nimport backwardCompat from '../preprocessor/backwardCompat';\nimport dataStack from '../processor/dataStack';\nimport SeriesModel from '../model/Series';\nimport ComponentView from '../view/Component';\nimport ChartView from '../view/Chart';\nimport * as graphic from '../util/graphic';\nimport { getECData } from '../util/innerStore';\nimport { enterEmphasisWhenMouseOver, leaveEmphasisWhenMouseOut, isHighDownDispatcher, HOVER_STATE_EMPHASIS, HOVER_STATE_BLUR, toggleSeriesBlurState, toggleSeriesBlurStateFromPayload, toggleSelectionFromPayload, updateSeriesElementSelection, getAllSelectedIndices, isSelectChangePayload, isHighDownPayload, HIGHLIGHT_ACTION_TYPE, DOWNPLAY_ACTION_TYPE, SELECT_ACTION_TYPE, UNSELECT_ACTION_TYPE, TOGGLE_SELECT_ACTION_TYPE, savePathStates, enterEmphasis, leaveEmphasis, leaveBlur, enterSelect, leaveSelect, enterBlur } from '../util/states';\nimport * as modelUtil from '../util/model';\nimport { throttle } from '../util/throttle';\nimport { seriesStyleTask, dataStyleTask, dataColorPaletteTask } from '../visual/style';\nimport loadingDefault from '../loading/default';\nimport Scheduler from './Scheduler';\nimport lightTheme from '../theme/light';\nimport darkTheme from '../theme/dark';\nimport mapDataStorage from '../coord/geo/mapDataStorage';\nimport { parseClassType } from '../util/clazz';\nimport { ECEventProcessor } from '../util/ECEventProcessor';\nimport { seriesSymbolTask, dataSymbolTask } from '../visual/symbol';\nimport { getVisualFromData, getItemVisualFromData } from '../visual/helper';\nimport LabelManager from '../label/LabelManager';\nimport { deprecateLog, throwError } from '../util/log';\nimport { handleLegacySelectEvents } from '../legacy/dataSelectAction';\nimport { registerExternalTransform } from '../data/helper/transform';\nimport { createLocaleObject, SYSTEM_LANG } from './locale';\nimport { findEventDispatcher } from '../util/event';\nimport decal from '../visual/decal';\nvar assert = zrUtil.assert;\nvar each = zrUtil.each;\nvar isFunction = zrUtil.isFunction;\nvar isObject = zrUtil.isObject;\nvar indexOf = zrUtil.indexOf;\nvar hasWindow = typeof window !== 'undefined';\nexport var version = '5.0.1';\nexport var dependencies = {\n  zrender: '5.0.3'\n};\nvar TEST_FRAME_REMAIN_TIME = 1;\nvar PRIORITY_PROCESSOR_SERIES_FILTER = 800;\nvar PRIORITY_PROCESSOR_DATASTACK = 900;\nvar PRIORITY_PROCESSOR_FILTER = 1000;\nvar PRIORITY_PROCESSOR_DEFAULT = 2000;\nvar PRIORITY_PROCESSOR_STATISTIC = 5000;\nvar PRIORITY_VISUAL_LAYOUT = 1000;\nvar PRIORITY_VISUAL_PROGRESSIVE_LAYOUT = 1100;\nvar PRIORITY_VISUAL_GLOBAL = 2000;\nvar PRIORITY_VISUAL_CHART = 3000;\nvar PRIORITY_VISUAL_COMPONENT = 4000;\nvar PRIORITY_VISUAL_CHART_DATA_CUSTOM = 4500;\nvar PRIORITY_VISUAL_POST_CHART_LAYOUT = 4600;\nvar PRIORITY_VISUAL_BRUSH = 5000;\nvar PRIORITY_VISUAL_ARIA = 6000;\nvar PRIORITY_VISUAL_DECAL = 7000;\nexport var PRIORITY = {\n  PROCESSOR: {\n    FILTER: PRIORITY_PROCESSOR_FILTER,\n    SERIES_FILTER: PRIORITY_PROCESSOR_SERIES_FILTER,\n    STATISTIC: PRIORITY_PROCESSOR_STATISTIC\n  },\n  VISUAL: {\n    LAYOUT: PRIORITY_VISUAL_LAYOUT,\n    PROGRESSIVE_LAYOUT: PRIORITY_VISUAL_PROGRESSIVE_LAYOUT,\n    GLOBAL: PRIORITY_VISUAL_GLOBAL,\n    CHART: PRIORITY_VISUAL_CHART,\n    POST_CHART_LAYOUT: PRIORITY_VISUAL_POST_CHART_LAYOUT,\n    COMPONENT: PRIORITY_VISUAL_COMPONENT,\n    BRUSH: PRIORITY_VISUAL_BRUSH,\n    CHART_ITEM: PRIORITY_VISUAL_CHART_DATA_CUSTOM,\n    ARIA: PRIORITY_VISUAL_ARIA,\n    DECAL: PRIORITY_VISUAL_DECAL\n  }\n};\nvar IN_MAIN_PROCESS_KEY = '__flagInMainProcess';\nvar OPTION_UPDATED_KEY = '__optionUpdated';\nvar STATUS_NEEDS_UPDATE_KEY = '__needsUpdateStatus';\nvar ACTION_REG = /^[a-zA-Z0-9_]+$/;\nvar CONNECT_STATUS_KEY = '__connectUpdateStatus';\nvar CONNECT_STATUS_PENDING = 0;\nvar CONNECT_STATUS_UPDATING = 1;\nvar CONNECT_STATUS_UPDATED = 2;\n;\n\nfunction createRegisterEventWithLowercaseECharts(method) {\n  return function () {\n    var args = [];\n\n    for (var _i = 0; _i < arguments.length; _i++) {\n      args[_i] = arguments[_i];\n    }\n\n    if (this.isDisposed()) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    return toLowercaseNameAndCallEventful(this, method, args);\n  };\n}\n\nfunction createRegisterEventWithLowercaseMessageCenter(method) {\n  return function () {\n    var args = [];\n\n    for (var _i = 0; _i < arguments.length; _i++) {\n      args[_i] = arguments[_i];\n    }\n\n    return toLowercaseNameAndCallEventful(this, method, args);\n  };\n}\n\nfunction toLowercaseNameAndCallEventful(host, method, args) {\n  args[0] = args[0] && args[0].toLowerCase();\n  return Eventful.prototype[method].apply(host, args);\n}\n\nvar MessageCenter = function (_super) {\n  __extends(MessageCenter, _super);\n\n  function MessageCenter() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  return MessageCenter;\n}(Eventful);\n\nvar messageCenterProto = MessageCenter.prototype;\nmessageCenterProto.on = createRegisterEventWithLowercaseMessageCenter('on');\nmessageCenterProto.off = createRegisterEventWithLowercaseMessageCenter('off');\nvar prepare;\nvar prepareView;\nvar updateDirectly;\nvar updateMethods;\nvar doConvertPixel;\nvar updateStreamModes;\nvar doDispatchAction;\nvar flushPendingActions;\nvar triggerUpdatedEvent;\nvar bindRenderedEvent;\nvar bindMouseEvent;\nvar clearColorPalette;\nvar render;\nvar renderComponents;\nvar renderSeries;\nvar performPostUpdateFuncs;\nvar createExtensionAPI;\nvar enableConnect;\nvar setTransitionOpt;\nvar markStatusToUpdate;\nvar applyChangedStates;\n\nvar ECharts = function (_super) {\n  __extends(ECharts, _super);\n\n  function ECharts(dom, theme, opts) {\n    var _this = _super.call(this, new ECEventProcessor()) || this;\n\n    _this._chartsViews = [];\n    _this._chartsMap = {};\n    _this._componentsViews = [];\n    _this._componentsMap = {};\n    _this._pendingActions = [];\n    opts = opts || {};\n\n    if (typeof theme === 'string') {\n      theme = themeStorage[theme];\n    }\n\n    _this._dom = dom;\n    var defaultRenderer = 'canvas';\n    var defaultUseDirtyRect = false;\n\n    if (process.env.NODE_ENV !== 'production') {\n      var root = hasWindow ? window : global;\n      defaultRenderer = root.__ECHARTS__DEFAULT__RENDERER__ || defaultRenderer;\n      var devUseDirtyRect = root.__ECHARTS__DEFAULT__USE_DIRTY_RECT__;\n      defaultUseDirtyRect = devUseDirtyRect == null ? defaultUseDirtyRect : devUseDirtyRect;\n    }\n\n    var zr = _this._zr = zrender.init(dom, {\n      renderer: opts.renderer || defaultRenderer,\n      devicePixelRatio: opts.devicePixelRatio,\n      width: opts.width,\n      height: opts.height,\n      useDirtyRect: opts.useDirtyRect == null ? defaultUseDirtyRect : opts.useDirtyRect\n    });\n    _this._throttledZrFlush = throttle(zrUtil.bind(zr.flush, zr), 17);\n    theme = zrUtil.clone(theme);\n    theme && backwardCompat(theme, true);\n    _this._theme = theme;\n    _this._locale = createLocaleObject(opts.locale || SYSTEM_LANG);\n    _this._coordSysMgr = new CoordinateSystemManager();\n    var api = _this._api = createExtensionAPI(_this);\n\n    function prioritySortFunc(a, b) {\n      return a.__prio - b.__prio;\n    }\n\n    timsort(visualFuncs, prioritySortFunc);\n    timsort(dataProcessorFuncs, prioritySortFunc);\n    _this._scheduler = new Scheduler(_this, api, dataProcessorFuncs, visualFuncs);\n    _this._messageCenter = new MessageCenter();\n    _this._labelManager = new LabelManager();\n\n    _this._initEvents();\n\n    _this.resize = zrUtil.bind(_this.resize, _this);\n    zr.animation.on('frame', _this._onframe, _this);\n    bindRenderedEvent(zr, _this);\n    bindMouseEvent(zr, _this);\n    zrUtil.setAsPrimitive(_this);\n    return _this;\n  }\n\n  ECharts.prototype._onframe = function () {\n    if (this._disposed) {\n      return;\n    }\n\n    applyChangedStates(this);\n    var scheduler = this._scheduler;\n\n    if (this[OPTION_UPDATED_KEY]) {\n      var silent = this[OPTION_UPDATED_KEY].silent;\n      this[IN_MAIN_PROCESS_KEY] = true;\n      prepare(this);\n      updateMethods.update.call(this);\n\n      this._zr.flush();\n\n      this[IN_MAIN_PROCESS_KEY] = false;\n      this[OPTION_UPDATED_KEY] = false;\n      flushPendingActions.call(this, silent);\n      triggerUpdatedEvent.call(this, silent);\n    } else if (scheduler.unfinished) {\n      var remainTime = TEST_FRAME_REMAIN_TIME;\n      var ecModel = this._model;\n      var api = this._api;\n      scheduler.unfinished = false;\n\n      do {\n        var startTime = +new Date();\n        scheduler.performSeriesTasks(ecModel);\n        scheduler.performDataProcessorTasks(ecModel);\n        updateStreamModes(this, ecModel);\n        scheduler.performVisualTasks(ecModel);\n        renderSeries(this, this._model, api, 'remain');\n        remainTime -= +new Date() - startTime;\n      } while (remainTime > 0 && scheduler.unfinished);\n\n      if (!scheduler.unfinished) {\n        this._zr.flush();\n      }\n    }\n  };\n\n  ECharts.prototype.getDom = function () {\n    return this._dom;\n  };\n\n  ECharts.prototype.getId = function () {\n    return this.id;\n  };\n\n  ECharts.prototype.getZr = function () {\n    return this._zr;\n  };\n\n  ECharts.prototype.setOption = function (option, notMerge, lazyUpdate) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!this[IN_MAIN_PROCESS_KEY], '`setOption` should not be called during main process.');\n    }\n\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    var silent;\n    var replaceMerge;\n    var transitionOpt;\n\n    if (isObject(notMerge)) {\n      lazyUpdate = notMerge.lazyUpdate;\n      silent = notMerge.silent;\n      replaceMerge = notMerge.replaceMerge;\n      transitionOpt = notMerge.transition;\n      notMerge = notMerge.notMerge;\n    }\n\n    this[IN_MAIN_PROCESS_KEY] = true;\n\n    if (!this._model || notMerge) {\n      var optionManager = new OptionManager(this._api);\n      var theme = this._theme;\n      var ecModel = this._model = new GlobalModel();\n      ecModel.scheduler = this._scheduler;\n      ecModel.init(null, null, null, theme, this._locale, optionManager);\n    }\n\n    this._model.setOption(option, {\n      replaceMerge: replaceMerge\n    }, optionPreprocessorFuncs);\n\n    setTransitionOpt(this, transitionOpt);\n\n    if (lazyUpdate) {\n      this[OPTION_UPDATED_KEY] = {\n        silent: silent\n      };\n      this[IN_MAIN_PROCESS_KEY] = false;\n      this.getZr().wakeUp();\n    } else {\n      prepare(this);\n      updateMethods.update.call(this);\n\n      this._zr.flush();\n\n      this[OPTION_UPDATED_KEY] = false;\n      this[IN_MAIN_PROCESS_KEY] = false;\n      flushPendingActions.call(this, silent);\n      triggerUpdatedEvent.call(this, silent);\n    }\n  };\n\n  ECharts.prototype.setTheme = function () {\n    console.error('ECharts#setTheme() is DEPRECATED in ECharts 3.0');\n  };\n\n  ECharts.prototype.getModel = function () {\n    return this._model;\n  };\n\n  ECharts.prototype.getOption = function () {\n    return this._model && this._model.getOption();\n  };\n\n  ECharts.prototype.getWidth = function () {\n    return this._zr.getWidth();\n  };\n\n  ECharts.prototype.getHeight = function () {\n    return this._zr.getHeight();\n  };\n\n  ECharts.prototype.getDevicePixelRatio = function () {\n    return this._zr.painter.dpr || hasWindow && window.devicePixelRatio || 1;\n  };\n\n  ECharts.prototype.getRenderedCanvas = function (opts) {\n    if (!env.canvasSupported) {\n      return;\n    }\n\n    opts = zrUtil.extend({}, opts || {});\n    opts.pixelRatio = opts.pixelRatio || 1;\n    opts.backgroundColor = opts.backgroundColor || this._model.get('backgroundColor');\n    var zr = this._zr;\n    return zr.painter.getRenderedCanvas(opts);\n  };\n\n  ECharts.prototype.getSvgDataURL = function () {\n    if (!env.svgSupported) {\n      return;\n    }\n\n    var zr = this._zr;\n    var list = zr.storage.getDisplayList();\n    zrUtil.each(list, function (el) {\n      el.stopAnimation(null, true);\n    });\n    return zr.painter.toDataURL();\n  };\n\n  ECharts.prototype.getDataURL = function (opts) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    opts = opts || {};\n    var excludeComponents = opts.excludeComponents;\n    var ecModel = this._model;\n    var excludesComponentViews = [];\n    var self = this;\n    each(excludeComponents, function (componentType) {\n      ecModel.eachComponent({\n        mainType: componentType\n      }, function (component) {\n        var view = self._componentsMap[component.__viewId];\n\n        if (!view.group.ignore) {\n          excludesComponentViews.push(view);\n          view.group.ignore = true;\n        }\n      });\n    });\n    var url = this._zr.painter.getType() === 'svg' ? this.getSvgDataURL() : this.getRenderedCanvas(opts).toDataURL('image/' + (opts && opts.type || 'png'));\n    each(excludesComponentViews, function (view) {\n      view.group.ignore = false;\n    });\n    return url;\n  };\n\n  ECharts.prototype.getConnectedDataURL = function (opts) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    if (!env.canvasSupported) {\n      return;\n    }\n\n    var isSvg = opts.type === 'svg';\n    var groupId = this.group;\n    var mathMin = Math.min;\n    var mathMax = Math.max;\n    var MAX_NUMBER = Infinity;\n\n    if (connectedGroups[groupId]) {\n      var left_1 = MAX_NUMBER;\n      var top_1 = MAX_NUMBER;\n      var right_1 = -MAX_NUMBER;\n      var bottom_1 = -MAX_NUMBER;\n      var canvasList_1 = [];\n      var dpr_1 = opts && opts.pixelRatio || 1;\n      zrUtil.each(instances, function (chart, id) {\n        if (chart.group === groupId) {\n          var canvas = isSvg ? chart.getZr().painter.getSvgDom().innerHTML : chart.getRenderedCanvas(zrUtil.clone(opts));\n          var boundingRect = chart.getDom().getBoundingClientRect();\n          left_1 = mathMin(boundingRect.left, left_1);\n          top_1 = mathMin(boundingRect.top, top_1);\n          right_1 = mathMax(boundingRect.right, right_1);\n          bottom_1 = mathMax(boundingRect.bottom, bottom_1);\n          canvasList_1.push({\n            dom: canvas,\n            left: boundingRect.left,\n            top: boundingRect.top\n          });\n        }\n      });\n      left_1 *= dpr_1;\n      top_1 *= dpr_1;\n      right_1 *= dpr_1;\n      bottom_1 *= dpr_1;\n      var width = right_1 - left_1;\n      var height = bottom_1 - top_1;\n      var targetCanvas = zrUtil.createCanvas();\n      var zr_1 = zrender.init(targetCanvas, {\n        renderer: isSvg ? 'svg' : 'canvas'\n      });\n      zr_1.resize({\n        width: width,\n        height: height\n      });\n\n      if (isSvg) {\n        var content_1 = '';\n        each(canvasList_1, function (item) {\n          var x = item.left - left_1;\n          var y = item.top - top_1;\n          content_1 += '<g transform=\"translate(' + x + ',' + y + ')\">' + item.dom + '</g>';\n        });\n        zr_1.painter.getSvgRoot().innerHTML = content_1;\n\n        if (opts.connectedBackgroundColor) {\n          zr_1.painter.setBackgroundColor(opts.connectedBackgroundColor);\n        }\n\n        zr_1.refreshImmediately();\n        return zr_1.painter.toDataURL();\n      } else {\n        if (opts.connectedBackgroundColor) {\n          zr_1.add(new graphic.Rect({\n            shape: {\n              x: 0,\n              y: 0,\n              width: width,\n              height: height\n            },\n            style: {\n              fill: opts.connectedBackgroundColor\n            }\n          }));\n        }\n\n        each(canvasList_1, function (item) {\n          var img = new graphic.Image({\n            style: {\n              x: item.left * dpr_1 - left_1,\n              y: item.top * dpr_1 - top_1,\n              image: item.dom\n            }\n          });\n          zr_1.add(img);\n        });\n        zr_1.refreshImmediately();\n        return targetCanvas.toDataURL('image/' + (opts && opts.type || 'png'));\n      }\n    } else {\n      return this.getDataURL(opts);\n    }\n  };\n\n  ECharts.prototype.convertToPixel = function (finder, value) {\n    return doConvertPixel(this, 'convertToPixel', finder, value);\n  };\n\n  ECharts.prototype.convertFromPixel = function (finder, value) {\n    return doConvertPixel(this, 'convertFromPixel', finder, value);\n  };\n\n  ECharts.prototype.containPixel = function (finder, value) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    var ecModel = this._model;\n    var result;\n    var findResult = modelUtil.parseFinder(ecModel, finder);\n    zrUtil.each(findResult, function (models, key) {\n      key.indexOf('Models') >= 0 && zrUtil.each(models, function (model) {\n        var coordSys = model.coordinateSystem;\n\n        if (coordSys && coordSys.containPoint) {\n          result = result || !!coordSys.containPoint(value);\n        } else if (key === 'seriesModels') {\n          var view = this._chartsMap[model.__viewId];\n\n          if (view && view.containPoint) {\n            result = result || view.containPoint(value, model);\n          } else {\n            if (process.env.NODE_ENV !== 'production') {\n              console.warn(key + ': ' + (view ? 'The found component do not support containPoint.' : 'No view mapping to the found component.'));\n            }\n          }\n        } else {\n          if (process.env.NODE_ENV !== 'production') {\n            console.warn(key + ': containPoint is not supported');\n          }\n        }\n      }, this);\n    }, this);\n    return !!result;\n  };\n\n  ECharts.prototype.getVisual = function (finder, visualType) {\n    var ecModel = this._model;\n    var parsedFinder = modelUtil.parseFinder(ecModel, finder, {\n      defaultMainType: 'series'\n    });\n    var seriesModel = parsedFinder.seriesModel;\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!seriesModel) {\n        console.warn('There is no specified seires model');\n      }\n    }\n\n    var data = seriesModel.getData();\n    var dataIndexInside = parsedFinder.hasOwnProperty('dataIndexInside') ? parsedFinder.dataIndexInside : parsedFinder.hasOwnProperty('dataIndex') ? data.indexOfRawIndex(parsedFinder.dataIndex) : null;\n    return dataIndexInside != null ? getItemVisualFromData(data, dataIndexInside, visualType) : getVisualFromData(data, visualType);\n  };\n\n  ECharts.prototype.getViewOfComponentModel = function (componentModel) {\n    return this._componentsMap[componentModel.__viewId];\n  };\n\n  ECharts.prototype.getViewOfSeriesModel = function (seriesModel) {\n    return this._chartsMap[seriesModel.__viewId];\n  };\n\n  ECharts.prototype._initEvents = function () {\n    var _this = this;\n\n    each(MOUSE_EVENT_NAMES, function (eveName) {\n      var handler = function (e) {\n        var ecModel = _this.getModel();\n\n        var el = e.target;\n        var params;\n        var isGlobalOut = eveName === 'globalout';\n\n        if (isGlobalOut) {\n          params = {};\n        } else {\n          el && findEventDispatcher(el, function (parent) {\n            var ecData = getECData(parent);\n\n            if (ecData && ecData.dataIndex != null) {\n              var dataModel = ecData.dataModel || ecModel.getSeriesByIndex(ecData.seriesIndex);\n              params = dataModel && dataModel.getDataParams(ecData.dataIndex, ecData.dataType) || {};\n              return true;\n            } else if (ecData.eventData) {\n              params = zrUtil.extend({}, ecData.eventData);\n              return true;\n            }\n          }, true);\n        }\n\n        if (params) {\n          var componentType = params.componentType;\n          var componentIndex = params.componentIndex;\n\n          if (componentType === 'markLine' || componentType === 'markPoint' || componentType === 'markArea') {\n            componentType = 'series';\n            componentIndex = params.seriesIndex;\n          }\n\n          var model = componentType && componentIndex != null && ecModel.getComponent(componentType, componentIndex);\n          var view = model && _this[model.mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId];\n\n          if (process.env.NODE_ENV !== 'production') {\n            if (!isGlobalOut && !(model && view)) {\n              console.warn('model or view can not be found by params');\n            }\n          }\n\n          params.event = e;\n          params.type = eveName;\n          _this._$eventProcessor.eventInfo = {\n            targetEl: el,\n            packedEvent: params,\n            model: model,\n            view: view\n          };\n\n          _this.trigger(eveName, params);\n        }\n      };\n\n      handler.zrEventfulCallAtLast = true;\n\n      _this._zr.on(eveName, handler, _this);\n    });\n    each(eventActionMap, function (actionType, eventType) {\n      _this._messageCenter.on(eventType, function (event) {\n        this.trigger(eventType, event);\n      }, _this);\n    });\n    each(['selectchanged'], function (eventType) {\n      _this._messageCenter.on(eventType, function (event) {\n        this.trigger(eventType, event);\n      }, _this);\n    });\n    handleLegacySelectEvents(this._messageCenter, this, this._api);\n  };\n\n  ECharts.prototype.isDisposed = function () {\n    return this._disposed;\n  };\n\n  ECharts.prototype.clear = function () {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    this.setOption({\n      series: []\n    }, true);\n  };\n\n  ECharts.prototype.dispose = function () {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    this._disposed = true;\n    modelUtil.setAttribute(this.getDom(), DOM_ATTRIBUTE_KEY, '');\n    var api = this._api;\n    var ecModel = this._model;\n    each(this._componentsViews, function (component) {\n      component.dispose(ecModel, api);\n    });\n    each(this._chartsViews, function (chart) {\n      chart.dispose(ecModel, api);\n    });\n\n    this._zr.dispose();\n\n    delete instances[this.id];\n  };\n\n  ECharts.prototype.resize = function (opts) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!this[IN_MAIN_PROCESS_KEY], '`resize` should not be called during main process.');\n    }\n\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    this._zr.resize(opts);\n\n    var ecModel = this._model;\n    this._loadingFX && this._loadingFX.resize();\n\n    if (!ecModel) {\n      return;\n    }\n\n    var optionChanged = ecModel.resetOption('media');\n    var silent = opts && opts.silent;\n    this[IN_MAIN_PROCESS_KEY] = true;\n    optionChanged && prepare(this);\n    updateMethods.update.call(this, {\n      type: 'resize',\n      animation: {\n        duration: 0\n      }\n    });\n    this[IN_MAIN_PROCESS_KEY] = false;\n    flushPendingActions.call(this, silent);\n    triggerUpdatedEvent.call(this, silent);\n  };\n\n  ECharts.prototype.showLoading = function (name, cfg) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    if (isObject(name)) {\n      cfg = name;\n      name = '';\n    }\n\n    name = name || 'default';\n    this.hideLoading();\n\n    if (!loadingEffects[name]) {\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn('Loading effects ' + name + ' not exists.');\n      }\n\n      return;\n    }\n\n    var el = loadingEffects[name](this._api, cfg);\n    var zr = this._zr;\n    this._loadingFX = el;\n    zr.add(el);\n  };\n\n  ECharts.prototype.hideLoading = function () {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    this._loadingFX && this._zr.remove(this._loadingFX);\n    this._loadingFX = null;\n  };\n\n  ECharts.prototype.makeActionFromEvent = function (eventObj) {\n    var payload = zrUtil.extend({}, eventObj);\n    payload.type = eventActionMap[eventObj.type];\n    return payload;\n  };\n\n  ECharts.prototype.dispatchAction = function (payload, opt) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    if (!isObject(opt)) {\n      opt = {\n        silent: !!opt\n      };\n    }\n\n    if (!actions[payload.type]) {\n      return;\n    }\n\n    if (!this._model) {\n      return;\n    }\n\n    if (this[IN_MAIN_PROCESS_KEY]) {\n      this._pendingActions.push(payload);\n\n      return;\n    }\n\n    var silent = opt.silent;\n    doDispatchAction.call(this, payload, silent);\n    var flush = opt.flush;\n\n    if (flush) {\n      this._zr.flush();\n    } else if (flush !== false && env.browser.weChat) {\n      this._throttledZrFlush();\n    }\n\n    flushPendingActions.call(this, silent);\n    triggerUpdatedEvent.call(this, silent);\n  };\n\n  ECharts.prototype.updateLabelLayout = function () {\n    var labelManager = this._labelManager;\n    labelManager.updateLayoutConfig(this._api);\n    labelManager.layout(this._api);\n    labelManager.processLabelsOverall();\n  };\n\n  ECharts.prototype.appendData = function (params) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    var seriesIndex = params.seriesIndex;\n    var ecModel = this.getModel();\n    var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(params.data && seriesModel);\n    }\n\n    seriesModel.appendData(params);\n    this._scheduler.unfinished = true;\n    this.getZr().wakeUp();\n  };\n\n  ECharts.internalField = function () {\n    prepare = function (ecIns) {\n      var scheduler = ecIns._scheduler;\n      scheduler.restorePipelines(ecIns._model);\n      scheduler.prepareStageTasks();\n      prepareView(ecIns, true);\n      prepareView(ecIns, false);\n      scheduler.plan();\n    };\n\n    prepareView = function (ecIns, isComponent) {\n      var ecModel = ecIns._model;\n      var scheduler = ecIns._scheduler;\n      var viewList = isComponent ? ecIns._componentsViews : ecIns._chartsViews;\n      var viewMap = isComponent ? ecIns._componentsMap : ecIns._chartsMap;\n      var zr = ecIns._zr;\n      var api = ecIns._api;\n\n      for (var i = 0; i < viewList.length; i++) {\n        viewList[i].__alive = false;\n      }\n\n      isComponent ? ecModel.eachComponent(function (componentType, model) {\n        componentType !== 'series' && doPrepare(model);\n      }) : ecModel.eachSeries(doPrepare);\n\n      function doPrepare(model) {\n        var requireNewView = model.__requireNewView;\n        model.__requireNewView = false;\n        var viewId = '_ec_' + model.id + '_' + model.type;\n        var view = !requireNewView && viewMap[viewId];\n\n        if (!view) {\n          var classType = parseClassType(model.type);\n          var Clazz = isComponent ? ComponentView.getClass(classType.main, classType.sub) : ChartView.getClass(classType.sub);\n\n          if (process.env.NODE_ENV !== 'production') {\n            assert(Clazz, classType.sub + ' does not exist.');\n          }\n\n          view = new Clazz();\n          view.init(ecModel, api);\n          viewMap[viewId] = view;\n          viewList.push(view);\n          zr.add(view.group);\n        }\n\n        model.__viewId = view.__id = viewId;\n        view.__alive = true;\n        view.__model = model;\n        view.group.__ecComponentInfo = {\n          mainType: model.mainType,\n          index: model.componentIndex\n        };\n        !isComponent && scheduler.prepareView(view, model, ecModel, api);\n      }\n\n      for (var i = 0; i < viewList.length;) {\n        var view = viewList[i];\n\n        if (!view.__alive) {\n          !isComponent && view.renderTask.dispose();\n          zr.remove(view.group);\n          view.dispose(ecModel, api);\n          viewList.splice(i, 1);\n\n          if (viewMap[view.__id] === view) {\n            delete viewMap[view.__id];\n          }\n\n          view.__id = view.group.__ecComponentInfo = null;\n        } else {\n          i++;\n        }\n      }\n    };\n\n    updateDirectly = function (ecIns, method, payload, mainType, subType) {\n      var ecModel = ecIns._model;\n      ecModel.setUpdatePayload(payload);\n\n      if (!mainType) {\n        each([].concat(ecIns._componentsViews).concat(ecIns._chartsViews), callView);\n        return;\n      }\n\n      var query = {};\n      query[mainType + 'Id'] = payload[mainType + 'Id'];\n      query[mainType + 'Index'] = payload[mainType + 'Index'];\n      query[mainType + 'Name'] = payload[mainType + 'Name'];\n      var condition = {\n        mainType: mainType,\n        query: query\n      };\n      subType && (condition.subType = subType);\n      var excludeSeriesId = payload.excludeSeriesId;\n      var excludeSeriesIdMap;\n\n      if (excludeSeriesId != null) {\n        excludeSeriesIdMap = zrUtil.createHashMap();\n        each(modelUtil.normalizeToArray(excludeSeriesId), function (id) {\n          var modelId = modelUtil.convertOptionIdName(id, null);\n\n          if (modelId != null) {\n            excludeSeriesIdMap.set(modelId, true);\n          }\n        });\n      }\n\n      ecModel && ecModel.eachComponent(condition, function (model) {\n        if (!excludeSeriesIdMap || excludeSeriesIdMap.get(model.id) == null) {\n          if (isHighDownPayload(payload) && !payload.notBlur) {\n            if (model instanceof SeriesModel) {\n              toggleSeriesBlurStateFromPayload(model, payload, ecIns._api);\n            }\n          } else if (isSelectChangePayload(payload)) {\n            if (model instanceof SeriesModel) {\n              toggleSelectionFromPayload(model, payload, ecIns._api);\n              updateSeriesElementSelection(model);\n              markStatusToUpdate(ecIns);\n            }\n          }\n\n          callView(ecIns[mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId]);\n        }\n      }, ecIns);\n\n      function callView(view) {\n        view && view.__alive && view[method] && view[method](view.__model, ecModel, ecIns._api, payload);\n      }\n    };\n\n    updateMethods = {\n      prepareAndUpdate: function (payload) {\n        prepare(this);\n        updateMethods.update.call(this, payload);\n      },\n      update: function (payload) {\n        var ecModel = this._model;\n        var api = this._api;\n        var zr = this._zr;\n        var coordSysMgr = this._coordSysMgr;\n        var scheduler = this._scheduler;\n\n        if (!ecModel) {\n          return;\n        }\n\n        ecModel.setUpdatePayload(payload);\n        scheduler.restoreData(ecModel, payload);\n        scheduler.performSeriesTasks(ecModel);\n        coordSysMgr.create(ecModel, api);\n        scheduler.performDataProcessorTasks(ecModel, payload);\n        updateStreamModes(this, ecModel);\n        coordSysMgr.update(ecModel, api);\n        clearColorPalette(ecModel);\n        scheduler.performVisualTasks(ecModel, payload);\n        render(this, ecModel, api, payload);\n        var backgroundColor = ecModel.get('backgroundColor') || 'transparent';\n        var darkMode = ecModel.get('darkMode');\n\n        if (!env.canvasSupported) {\n          var colorArr = colorTool.parse(backgroundColor);\n          backgroundColor = colorTool.stringify(colorArr, 'rgb');\n\n          if (colorArr[3] === 0) {\n            backgroundColor = 'transparent';\n          }\n        } else {\n          zr.setBackgroundColor(backgroundColor);\n\n          if (darkMode != null && darkMode !== 'auto') {\n            zr.setDarkMode(darkMode);\n          }\n        }\n\n        performPostUpdateFuncs(ecModel, api);\n      },\n      updateTransform: function (payload) {\n        var _this = this;\n\n        var ecModel = this._model;\n        var api = this._api;\n\n        if (!ecModel) {\n          return;\n        }\n\n        ecModel.setUpdatePayload(payload);\n        var componentDirtyList = [];\n        ecModel.eachComponent(function (componentType, componentModel) {\n          if (componentType === 'series') {\n            return;\n          }\n\n          var componentView = _this.getViewOfComponentModel(componentModel);\n\n          if (componentView && componentView.__alive) {\n            if (componentView.updateTransform) {\n              var result = componentView.updateTransform(componentModel, ecModel, api, payload);\n              result && result.update && componentDirtyList.push(componentView);\n            } else {\n              componentDirtyList.push(componentView);\n            }\n          }\n        });\n        var seriesDirtyMap = zrUtil.createHashMap();\n        ecModel.eachSeries(function (seriesModel) {\n          var chartView = _this._chartsMap[seriesModel.__viewId];\n\n          if (chartView.updateTransform) {\n            var result = chartView.updateTransform(seriesModel, ecModel, api, payload);\n            result && result.update && seriesDirtyMap.set(seriesModel.uid, 1);\n          } else {\n            seriesDirtyMap.set(seriesModel.uid, 1);\n          }\n        });\n        clearColorPalette(ecModel);\n\n        this._scheduler.performVisualTasks(ecModel, payload, {\n          setDirty: true,\n          dirtyMap: seriesDirtyMap\n        });\n\n        renderSeries(this, ecModel, api, payload, seriesDirtyMap);\n        performPostUpdateFuncs(ecModel, this._api);\n      },\n      updateView: function (payload) {\n        var ecModel = this._model;\n\n        if (!ecModel) {\n          return;\n        }\n\n        ecModel.setUpdatePayload(payload);\n        ChartView.markUpdateMethod(payload, 'updateView');\n        clearColorPalette(ecModel);\n\n        this._scheduler.performVisualTasks(ecModel, payload, {\n          setDirty: true\n        });\n\n        render(this, this._model, this._api, payload);\n        performPostUpdateFuncs(ecModel, this._api);\n      },\n      updateVisual: function (payload) {\n        var _this = this;\n\n        var ecModel = this._model;\n\n        if (!ecModel) {\n          return;\n        }\n\n        ecModel.setUpdatePayload(payload);\n        ecModel.eachSeries(function (seriesModel) {\n          seriesModel.getData().clearAllVisual();\n        });\n        ChartView.markUpdateMethod(payload, 'updateVisual');\n        clearColorPalette(ecModel);\n\n        this._scheduler.performVisualTasks(ecModel, payload, {\n          visualType: 'visual',\n          setDirty: true\n        });\n\n        ecModel.eachComponent(function (componentType, componentModel) {\n          if (componentType !== 'series') {\n            var componentView = _this.getViewOfComponentModel(componentModel);\n\n            componentView && componentView.__alive && componentView.updateVisual(componentModel, ecModel, _this._api, payload);\n          }\n        });\n        ecModel.eachSeries(function (seriesModel) {\n          var chartView = _this._chartsMap[seriesModel.__viewId];\n          chartView.updateVisual(seriesModel, ecModel, _this._api, payload);\n        });\n        performPostUpdateFuncs(ecModel, this._api);\n      },\n      updateLayout: function (payload) {\n        updateMethods.update.call(this, payload);\n      }\n    };\n\n    doConvertPixel = function (ecIns, methodName, finder, value) {\n      if (ecIns._disposed) {\n        disposedWarning(ecIns.id);\n        return;\n      }\n\n      var ecModel = ecIns._model;\n\n      var coordSysList = ecIns._coordSysMgr.getCoordinateSystems();\n\n      var result;\n      var parsedFinder = modelUtil.parseFinder(ecModel, finder);\n\n      for (var i = 0; i < coordSysList.length; i++) {\n        var coordSys = coordSysList[i];\n\n        if (coordSys[methodName] && (result = coordSys[methodName](ecModel, parsedFinder, value)) != null) {\n          return result;\n        }\n      }\n\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn('No coordinate system that supports ' + methodName + ' found by the given finder.');\n      }\n    };\n\n    updateStreamModes = function (ecIns, ecModel) {\n      var chartsMap = ecIns._chartsMap;\n      var scheduler = ecIns._scheduler;\n      ecModel.eachSeries(function (seriesModel) {\n        scheduler.updateStreamModes(seriesModel, chartsMap[seriesModel.__viewId]);\n      });\n    };\n\n    doDispatchAction = function (payload, silent) {\n      var _this = this;\n\n      var ecModel = this.getModel();\n      var payloadType = payload.type;\n      var escapeConnect = payload.escapeConnect;\n      var actionWrap = actions[payloadType];\n      var actionInfo = actionWrap.actionInfo;\n      var cptTypeTmp = (actionInfo.update || 'update').split(':');\n      var updateMethod = cptTypeTmp.pop();\n      var cptType = cptTypeTmp[0] != null && parseClassType(cptTypeTmp[0]);\n      this[IN_MAIN_PROCESS_KEY] = true;\n      var payloads = [payload];\n      var batched = false;\n\n      if (payload.batch) {\n        batched = true;\n        payloads = zrUtil.map(payload.batch, function (item) {\n          item = zrUtil.defaults(zrUtil.extend({}, item), payload);\n          item.batch = null;\n          return item;\n        });\n      }\n\n      var eventObjBatch = [];\n      var eventObj;\n      var isSelectChange = isSelectChangePayload(payload);\n      var isStatusChange = isHighDownPayload(payload) || isSelectChange;\n      each(payloads, function (batchItem) {\n        eventObj = actionWrap.action(batchItem, _this._model, _this._api);\n        eventObj = eventObj || zrUtil.extend({}, batchItem);\n        eventObj.type = actionInfo.event || eventObj.type;\n        eventObjBatch.push(eventObj);\n\n        if (isStatusChange) {\n          updateDirectly(_this, updateMethod, batchItem, 'series');\n          markStatusToUpdate(_this);\n        } else if (cptType) {\n          updateDirectly(_this, updateMethod, batchItem, cptType.main, cptType.sub);\n        }\n      });\n\n      if (updateMethod !== 'none' && !isStatusChange && !cptType) {\n        if (this[OPTION_UPDATED_KEY]) {\n          prepare(this);\n          updateMethods.update.call(this, payload);\n          this[OPTION_UPDATED_KEY] = false;\n        } else {\n          updateMethods[updateMethod].call(this, payload);\n        }\n      }\n\n      if (batched) {\n        eventObj = {\n          type: actionInfo.event || payloadType,\n          escapeConnect: escapeConnect,\n          batch: eventObjBatch\n        };\n      } else {\n        eventObj = eventObjBatch[0];\n      }\n\n      this[IN_MAIN_PROCESS_KEY] = false;\n\n      if (!silent) {\n        var messageCenter = this._messageCenter;\n        messageCenter.trigger(eventObj.type, eventObj);\n\n        if (isSelectChange) {\n          var newObj = {\n            type: 'selectchanged',\n            escapeConnect: escapeConnect,\n            selected: getAllSelectedIndices(ecModel),\n            isFromClick: payload.isFromClick || false,\n            fromAction: payload.type,\n            fromActionPayload: payload\n          };\n          messageCenter.trigger(newObj.type, newObj);\n        }\n      }\n    };\n\n    flushPendingActions = function (silent) {\n      var pendingActions = this._pendingActions;\n\n      while (pendingActions.length) {\n        var payload = pendingActions.shift();\n        doDispatchAction.call(this, payload, silent);\n      }\n    };\n\n    triggerUpdatedEvent = function (silent) {\n      !silent && this.trigger('updated');\n    };\n\n    bindRenderedEvent = function (zr, ecIns) {\n      zr.on('rendered', function (params) {\n        ecIns.trigger('rendered', params);\n\n        if (zr.animation.isFinished() && !ecIns[OPTION_UPDATED_KEY] && !ecIns._scheduler.unfinished && !ecIns._pendingActions.length) {\n          ecIns.trigger('finished');\n        }\n      });\n    };\n\n    bindMouseEvent = function (zr, ecIns) {\n      zr.on('mouseover', function (e) {\n        var el = e.target;\n        var dispatcher = findEventDispatcher(el, isHighDownDispatcher);\n\n        if (dispatcher) {\n          var ecData = getECData(dispatcher);\n          toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns._api, true);\n          enterEmphasisWhenMouseOver(dispatcher, e);\n          markStatusToUpdate(ecIns);\n        }\n      }).on('mouseout', function (e) {\n        var el = e.target;\n        var dispatcher = findEventDispatcher(el, isHighDownDispatcher);\n\n        if (dispatcher) {\n          var ecData = getECData(dispatcher);\n          toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns._api, false);\n          leaveEmphasisWhenMouseOut(dispatcher, e);\n          markStatusToUpdate(ecIns);\n        }\n      }).on('click', function (e) {\n        var el = e.target;\n        var dispatcher = findEventDispatcher(el, function (target) {\n          return getECData(target).dataIndex != null;\n        }, true);\n\n        if (dispatcher) {\n          var actionType = dispatcher.selected ? 'unselect' : 'select';\n          var ecData = getECData(dispatcher);\n\n          ecIns._api.dispatchAction({\n            type: actionType,\n            dataType: ecData.dataType,\n            dataIndexInside: ecData.dataIndex,\n            seriesIndex: ecData.seriesIndex,\n            isFromClick: true\n          });\n        }\n      });\n    };\n\n    clearColorPalette = function (ecModel) {\n      ecModel.clearColorPalette();\n      ecModel.eachSeries(function (seriesModel) {\n        seriesModel.clearColorPalette();\n      });\n    };\n\n    render = function (ecIns, ecModel, api, payload) {\n      renderComponents(ecIns, ecModel, api, payload);\n      each(ecIns._chartsViews, function (chart) {\n        chart.__alive = false;\n      });\n      renderSeries(ecIns, ecModel, api, payload);\n      each(ecIns._chartsViews, function (chart) {\n        if (!chart.__alive) {\n          chart.remove(ecModel, api);\n        }\n      });\n    };\n\n    renderComponents = function (ecIns, ecModel, api, payload, dirtyList) {\n      each(dirtyList || ecIns._componentsViews, function (componentView) {\n        var componentModel = componentView.__model;\n        clearStates(componentModel, componentView);\n        componentView.render(componentModel, ecModel, api, payload);\n        updateZ(componentModel, componentView);\n        updateStates(componentModel, componentView);\n      });\n    };\n\n    renderSeries = function (ecIns, ecModel, api, payload, dirtyMap) {\n      var scheduler = ecIns._scheduler;\n      var labelManager = ecIns._labelManager;\n      labelManager.clearLabels();\n      var unfinished = false;\n      ecModel.eachSeries(function (seriesModel) {\n        var chartView = ecIns._chartsMap[seriesModel.__viewId];\n        chartView.__alive = true;\n        var renderTask = chartView.renderTask;\n        scheduler.updatePayload(renderTask, payload);\n        clearStates(seriesModel, chartView);\n\n        if (dirtyMap && dirtyMap.get(seriesModel.uid)) {\n          renderTask.dirty();\n        }\n\n        if (renderTask.perform(scheduler.getPerformArgs(renderTask))) {\n          unfinished = true;\n        }\n\n        seriesModel.__transientTransitionOpt = null;\n        chartView.group.silent = !!seriesModel.get('silent');\n        updateBlend(seriesModel, chartView);\n        updateSeriesElementSelection(seriesModel);\n        labelManager.addLabelsOfSeries(chartView);\n      });\n      scheduler.unfinished = unfinished || scheduler.unfinished;\n      labelManager.updateLayoutConfig(api);\n      labelManager.layout(api);\n      labelManager.processLabelsOverall();\n      ecModel.eachSeries(function (seriesModel) {\n        var chartView = ecIns._chartsMap[seriesModel.__viewId];\n        updateZ(seriesModel, chartView);\n        updateStates(seriesModel, chartView);\n      });\n      updateHoverLayerStatus(ecIns, ecModel);\n    };\n\n    performPostUpdateFuncs = function (ecModel, api) {\n      each(postUpdateFuncs, function (func) {\n        func(ecModel, api);\n      });\n    };\n\n    markStatusToUpdate = function (ecIns) {\n      ecIns[STATUS_NEEDS_UPDATE_KEY] = true;\n      ecIns.getZr().wakeUp();\n    };\n\n    applyChangedStates = function (ecIns) {\n      if (!ecIns[STATUS_NEEDS_UPDATE_KEY]) {\n        return;\n      }\n\n      ecIns.getZr().storage.traverse(function (el) {\n        if (graphic.isElementRemoved(el)) {\n          return;\n        }\n\n        applyElementStates(el);\n      });\n      ecIns[STATUS_NEEDS_UPDATE_KEY] = false;\n    };\n\n    function applyElementStates(el) {\n      var newStates = [];\n      var oldStates = el.currentStates;\n\n      for (var i = 0; i < oldStates.length; i++) {\n        var stateName = oldStates[i];\n\n        if (!(stateName === 'emphasis' || stateName === 'blur' || stateName === 'select')) {\n          newStates.push(stateName);\n        }\n      }\n\n      if (el.selected && el.states.select) {\n        newStates.push('select');\n      }\n\n      if (el.hoverState === HOVER_STATE_EMPHASIS && el.states.emphasis) {\n        newStates.push('emphasis');\n      } else if (el.hoverState === HOVER_STATE_BLUR && el.states.blur) {\n        newStates.push('blur');\n      }\n\n      el.useStates(newStates);\n    }\n\n    function updateHoverLayerStatus(ecIns, ecModel) {\n      var zr = ecIns._zr;\n      var storage = zr.storage;\n      var elCount = 0;\n      storage.traverse(function (el) {\n        if (!el.isGroup) {\n          elCount++;\n        }\n      });\n\n      if (elCount > ecModel.get('hoverLayerThreshold') && !env.node && !env.worker) {\n        ecModel.eachSeries(function (seriesModel) {\n          if (seriesModel.preventUsingHoverLayer) {\n            return;\n          }\n\n          var chartView = ecIns._chartsMap[seriesModel.__viewId];\n\n          if (chartView.__alive) {\n            chartView.group.traverse(function (el) {\n              if (el.states.emphasis) {\n                el.states.emphasis.hoverLayer = true;\n              }\n            });\n          }\n        });\n      }\n    }\n\n    ;\n\n    function updateBlend(seriesModel, chartView) {\n      var blendMode = seriesModel.get('blendMode') || null;\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (!env.canvasSupported && blendMode && blendMode !== 'source-over') {\n          console.warn('Only canvas support blendMode');\n        }\n      }\n\n      chartView.group.traverse(function (el) {\n        if (!el.isGroup) {\n          el.style.blend = blendMode;\n        }\n\n        if (el.eachPendingDisplayable) {\n          el.eachPendingDisplayable(function (displayable) {\n            displayable.style.blend = blendMode;\n          });\n        }\n      });\n    }\n\n    ;\n\n    function updateZ(model, view) {\n      if (model.preventAutoZ) {\n        return;\n      }\n\n      var z = model.get('z');\n      var zlevel = model.get('zlevel');\n      view.group.traverse(function (el) {\n        if (!el.isGroup) {\n          z != null && (el.z = z);\n          zlevel != null && (el.zlevel = zlevel);\n          var label = el.getTextContent();\n          var labelLine = el.getTextGuideLine();\n\n          if (label) {\n            label.z = el.z;\n            label.zlevel = el.zlevel;\n            label.z2 = el.z2 + 2;\n          }\n\n          if (labelLine) {\n            var showAbove = el.textGuideLineConfig && el.textGuideLineConfig.showAbove;\n            labelLine.z = el.z;\n            labelLine.zlevel = el.zlevel;\n            labelLine.z2 = el.z2 + (showAbove ? 1 : -1);\n          }\n        }\n      });\n    }\n\n    ;\n\n    function clearStates(model, view) {\n      view.group.traverse(function (el) {\n        if (graphic.isElementRemoved(el)) {\n          return;\n        }\n\n        var textContent = el.getTextContent();\n        var textGuide = el.getTextGuideLine();\n\n        if (el.stateTransition) {\n          el.stateTransition = null;\n        }\n\n        if (textContent && textContent.stateTransition) {\n          textContent.stateTransition = null;\n        }\n\n        if (textGuide && textGuide.stateTransition) {\n          textGuide.stateTransition = null;\n        }\n\n        if (el.hasState()) {\n          el.prevStates = el.currentStates;\n          el.clearStates();\n        } else if (el.prevStates) {\n          el.prevStates = null;\n        }\n      });\n    }\n\n    function updateStates(model, view) {\n      var stateAnimationModel = model.getModel('stateAnimation');\n      var enableAnimation = model.isAnimationEnabled();\n      var duration = stateAnimationModel.get('duration');\n      var stateTransition = duration > 0 ? {\n        duration: duration,\n        delay: stateAnimationModel.get('delay'),\n        easing: stateAnimationModel.get('easing')\n      } : null;\n      view.group.traverse(function (el) {\n        if (el.states && el.states.emphasis) {\n          if (graphic.isElementRemoved(el)) {\n            return;\n          }\n\n          if (el instanceof graphic.Path) {\n            savePathStates(el);\n          }\n\n          if (el.__dirty) {\n            var prevStates = el.prevStates;\n\n            if (prevStates) {\n              el.useStates(prevStates);\n            }\n          }\n\n          if (enableAnimation) {\n            el.stateTransition = stateTransition;\n            var textContent = el.getTextContent();\n            var textGuide = el.getTextGuideLine();\n\n            if (textContent) {\n              textContent.stateTransition = stateTransition;\n            }\n\n            if (textGuide) {\n              textGuide.stateTransition = stateTransition;\n            }\n          }\n\n          if (el.__dirty) {\n            applyElementStates(el);\n          }\n        }\n      });\n    }\n\n    ;\n\n    createExtensionAPI = function (ecIns) {\n      return new (function (_super) {\n        __extends(class_1, _super);\n\n        function class_1() {\n          return _super !== null && _super.apply(this, arguments) || this;\n        }\n\n        class_1.prototype.getCoordinateSystems = function () {\n          return ecIns._coordSysMgr.getCoordinateSystems();\n        };\n\n        class_1.prototype.getComponentByElement = function (el) {\n          while (el) {\n            var modelInfo = el.__ecComponentInfo;\n\n            if (modelInfo != null) {\n              return ecIns._model.getComponent(modelInfo.mainType, modelInfo.index);\n            }\n\n            el = el.parent;\n          }\n        };\n\n        class_1.prototype.enterEmphasis = function (el, highlightDigit) {\n          enterEmphasis(el, highlightDigit);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.leaveEmphasis = function (el, highlightDigit) {\n          leaveEmphasis(el, highlightDigit);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.enterBlur = function (el) {\n          enterBlur(el);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.leaveBlur = function (el) {\n          leaveBlur(el);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.enterSelect = function (el) {\n          enterSelect(el);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.leaveSelect = function (el) {\n          leaveSelect(el);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.getModel = function () {\n          return ecIns.getModel();\n        };\n\n        class_1.prototype.getViewOfComponentModel = function (componentModel) {\n          return ecIns.getViewOfComponentModel(componentModel);\n        };\n\n        class_1.prototype.getViewOfSeriesModel = function (seriesModel) {\n          return ecIns.getViewOfSeriesModel(seriesModel);\n        };\n\n        return class_1;\n      }(ExtensionAPI))(ecIns);\n    };\n\n    enableConnect = function (chart) {\n      function updateConnectedChartsStatus(charts, status) {\n        for (var i = 0; i < charts.length; i++) {\n          var otherChart = charts[i];\n          otherChart[CONNECT_STATUS_KEY] = status;\n        }\n      }\n\n      each(eventActionMap, function (actionType, eventType) {\n        chart._messageCenter.on(eventType, function (event) {\n          if (connectedGroups[chart.group] && chart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_PENDING) {\n            if (event && event.escapeConnect) {\n              return;\n            }\n\n            var action_1 = chart.makeActionFromEvent(event);\n            var otherCharts_1 = [];\n            each(instances, function (otherChart) {\n              if (otherChart !== chart && otherChart.group === chart.group) {\n                otherCharts_1.push(otherChart);\n              }\n            });\n            updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_PENDING);\n            each(otherCharts_1, function (otherChart) {\n              if (otherChart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_UPDATING) {\n                otherChart.dispatchAction(action_1);\n              }\n            });\n            updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_UPDATED);\n          }\n        });\n      });\n    };\n\n    setTransitionOpt = function (chart, transitionOpt) {\n      var ecModel = chart._model;\n      zrUtil.each(modelUtil.normalizeToArray(transitionOpt), function (transOpt) {\n        var errMsg;\n        var fromOpt = transOpt.from;\n        var toOpt = transOpt.to;\n\n        if (toOpt == null) {\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg = '`transition.to` must be specified.';\n          }\n\n          throwError(errMsg);\n        }\n\n        var finderOpt = {\n          includeMainTypes: ['series'],\n          enableAll: false,\n          enableNone: false\n        };\n        var fromResult = fromOpt ? modelUtil.parseFinder(ecModel, fromOpt, finderOpt) : null;\n        var toResult = modelUtil.parseFinder(ecModel, toOpt, finderOpt);\n        var toSeries = toResult.seriesModel;\n\n        if (toSeries == null) {\n          errMsg = '';\n\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg = '`transition` is only supported on series.';\n          }\n        }\n\n        if (fromResult && fromResult.seriesModel !== toSeries) {\n          errMsg = '';\n\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg = '`transition.from` and `transition.to` must be specified to the same series.';\n          }\n        }\n\n        if (errMsg != null) {\n          throwError(errMsg);\n        }\n\n        toSeries.__transientTransitionOpt = {\n          from: fromOpt ? fromOpt.dimension : null,\n          to: toOpt.dimension,\n          dividingMethod: transOpt.dividingMethod\n        };\n      });\n    };\n  }();\n\n  return ECharts;\n}(Eventful);\n\nvar echartsProto = ECharts.prototype;\nechartsProto.on = createRegisterEventWithLowercaseECharts('on');\nechartsProto.off = createRegisterEventWithLowercaseECharts('off');\n\nechartsProto.one = function (eventName, cb, ctx) {\n  var self = this;\n  deprecateLog('ECharts#one is deprecated.');\n\n  function wrapped() {\n    var args2 = [];\n\n    for (var _i = 0; _i < arguments.length; _i++) {\n      args2[_i] = arguments[_i];\n    }\n\n    cb && cb.apply && cb.apply(this, args2);\n    self.off(eventName, wrapped);\n  }\n\n  ;\n  this.on.call(this, eventName, wrapped, ctx);\n};\n\nvar MOUSE_EVENT_NAMES = ['click', 'dblclick', 'mouseover', 'mouseout', 'mousemove', 'mousedown', 'mouseup', 'globalout', 'contextmenu'];\n\nfunction disposedWarning(id) {\n  if (process.env.NODE_ENV !== 'production') {\n    console.warn('Instance ' + id + ' has been disposed');\n  }\n}\n\nvar actions = {};\nvar eventActionMap = {};\nvar dataProcessorFuncs = [];\nvar optionPreprocessorFuncs = [];\nvar postInitFuncs = [];\nvar postUpdateFuncs = [];\nvar visualFuncs = [];\nvar themeStorage = {};\nvar loadingEffects = {};\nvar instances = {};\nvar connectedGroups = {};\nvar idBase = +new Date() - 0;\nvar groupIdBase = +new Date() - 0;\nvar DOM_ATTRIBUTE_KEY = '_echarts_instance_';\nexport function init(dom, theme, opts) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (!dom) {\n      throw new Error('Initialize failed: invalid dom.');\n    }\n  }\n\n  var existInstance = getInstanceByDom(dom);\n\n  if (existInstance) {\n    if (process.env.NODE_ENV !== 'production') {\n      console.warn('There is a chart instance already initialized on the dom.');\n    }\n\n    return existInstance;\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (zrUtil.isDom(dom) && dom.nodeName.toUpperCase() !== 'CANVAS' && (!dom.clientWidth && (!opts || opts.width == null) || !dom.clientHeight && (!opts || opts.height == null))) {\n      console.warn('Can\\'t get DOM width or height. Please check ' + 'dom.clientWidth and dom.clientHeight. They should not be 0.' + 'For example, you may need to call this in the callback ' + 'of window.onload.');\n    }\n  }\n\n  var chart = new ECharts(dom, theme, opts);\n  chart.id = 'ec_' + idBase++;\n  instances[chart.id] = chart;\n  modelUtil.setAttribute(dom, DOM_ATTRIBUTE_KEY, chart.id);\n  enableConnect(chart);\n  each(postInitFuncs, function (postInitFunc) {\n    postInitFunc(chart);\n  });\n  return chart;\n}\nexport function connect(groupId) {\n  if (zrUtil.isArray(groupId)) {\n    var charts = groupId;\n    groupId = null;\n    each(charts, function (chart) {\n      if (chart.group != null) {\n        groupId = chart.group;\n      }\n    });\n    groupId = groupId || 'g_' + groupIdBase++;\n    each(charts, function (chart) {\n      chart.group = groupId;\n    });\n  }\n\n  connectedGroups[groupId] = true;\n  return groupId;\n}\nexport function disConnect(groupId) {\n  connectedGroups[groupId] = false;\n}\nexport var disconnect = disConnect;\nexport function dispose(chart) {\n  if (typeof chart === 'string') {\n    chart = instances[chart];\n  } else if (!(chart instanceof ECharts)) {\n    chart = getInstanceByDom(chart);\n  }\n\n  if (chart instanceof ECharts && !chart.isDisposed()) {\n    chart.dispose();\n  }\n}\nexport function getInstanceByDom(dom) {\n  return instances[modelUtil.getAttribute(dom, DOM_ATTRIBUTE_KEY)];\n}\nexport function getInstanceById(key) {\n  return instances[key];\n}\nexport function registerTheme(name, theme) {\n  themeStorage[name] = theme;\n}\nexport function registerPreprocessor(preprocessorFunc) {\n  if (indexOf(optionPreprocessorFuncs, preprocessorFunc) < 0) {\n    optionPreprocessorFuncs.push(preprocessorFunc);\n  }\n}\nexport function registerProcessor(priority, processor) {\n  normalizeRegister(dataProcessorFuncs, priority, processor, PRIORITY_PROCESSOR_DEFAULT);\n}\nexport function registerPostInit(postInitFunc) {\n  if (indexOf(postInitFuncs, postInitFunc) < 0) {\n    postInitFunc && postInitFuncs.push(postInitFunc);\n  }\n}\nexport function registerPostUpdate(postUpdateFunc) {\n  if (indexOf(postUpdateFuncs, postUpdateFunc) < 0) {\n    postUpdateFunc && postUpdateFuncs.push(postUpdateFunc);\n  }\n}\nexport function registerAction(actionInfo, eventName, action) {\n  if (typeof eventName === 'function') {\n    action = eventName;\n    eventName = '';\n  }\n\n  var actionType = isObject(actionInfo) ? actionInfo.type : [actionInfo, actionInfo = {\n    event: eventName\n  }][0];\n  actionInfo.event = (actionInfo.event || actionType).toLowerCase();\n  eventName = actionInfo.event;\n\n  if (eventActionMap[eventName]) {\n    return;\n  }\n\n  assert(ACTION_REG.test(actionType) && ACTION_REG.test(eventName));\n\n  if (!actions[actionType]) {\n    actions[actionType] = {\n      action: action,\n      actionInfo: actionInfo\n    };\n  }\n\n  eventActionMap[eventName] = actionType;\n}\nexport function registerCoordinateSystem(type, coordSysCreator) {\n  CoordinateSystemManager.register(type, coordSysCreator);\n}\nexport function getCoordinateSystemDimensions(type) {\n  var coordSysCreator = CoordinateSystemManager.get(type);\n\n  if (coordSysCreator) {\n    return coordSysCreator.getDimensionsInfo ? coordSysCreator.getDimensionsInfo() : coordSysCreator.dimensions.slice();\n  }\n}\nexport { registerLocale } from './locale';\n\nfunction registerLayout(priority, layoutTask) {\n  normalizeRegister(visualFuncs, priority, layoutTask, PRIORITY_VISUAL_LAYOUT, 'layout');\n}\n\nfunction registerVisual(priority, visualTask) {\n  normalizeRegister(visualFuncs, priority, visualTask, PRIORITY_VISUAL_CHART, 'visual');\n}\n\nexport { registerLayout, registerVisual };\nvar registeredTasks = [];\n\nfunction normalizeRegister(targetList, priority, fn, defaultPriority, visualType) {\n  if (isFunction(priority) || isObject(priority)) {\n    fn = priority;\n    priority = defaultPriority;\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (isNaN(priority) || priority == null) {\n      throw new Error('Illegal priority');\n    }\n\n    each(targetList, function (wrap) {\n      assert(wrap.__raw !== fn);\n    });\n  }\n\n  if (indexOf(registeredTasks, fn) >= 0) {\n    return;\n  }\n\n  registeredTasks.push(fn);\n  var stageHandler = Scheduler.wrapStageHandler(fn, visualType);\n  stageHandler.__prio = priority;\n  stageHandler.__raw = fn;\n  targetList.push(stageHandler);\n}\n\nexport function registerLoading(name, loadingFx) {\n  loadingEffects[name] = loadingFx;\n}\nexport function setCanvasCreator(creator) {\n  zrUtil.$override('createCanvas', creator);\n}\nexport function registerMap(mapName, geoJson, specialAreas) {\n  mapDataStorage.registerMap(mapName, geoJson, specialAreas);\n}\nexport function getMap(mapName) {\n  var records = mapDataStorage.retrieveMap(mapName);\n  return records && records[0] && {\n    geoJson: records[0].geoJSON,\n    specialAreas: records[0].specialAreas\n  };\n}\nexport var registerTransform = registerExternalTransform;\nregisterVisual(PRIORITY_VISUAL_GLOBAL, seriesStyleTask);\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataStyleTask);\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataColorPaletteTask);\nregisterVisual(PRIORITY_VISUAL_GLOBAL, seriesSymbolTask);\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataSymbolTask);\nregisterVisual(PRIORITY_VISUAL_DECAL, decal);\nregisterPreprocessor(backwardCompat);\nregisterProcessor(PRIORITY_PROCESSOR_DATASTACK, dataStack);\nregisterLoading('default', loadingDefault);\nregisterAction({\n  type: HIGHLIGHT_ACTION_TYPE,\n  event: HIGHLIGHT_ACTION_TYPE,\n  update: HIGHLIGHT_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n  type: DOWNPLAY_ACTION_TYPE,\n  event: DOWNPLAY_ACTION_TYPE,\n  update: DOWNPLAY_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n  type: SELECT_ACTION_TYPE,\n  event: SELECT_ACTION_TYPE,\n  update: SELECT_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n  type: UNSELECT_ACTION_TYPE,\n  event: UNSELECT_ACTION_TYPE,\n  update: UNSELECT_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n  type: TOGGLE_SELECT_ACTION_TYPE,\n  event: TOGGLE_SELECT_ACTION_TYPE,\n  update: TOGGLE_SELECT_ACTION_TYPE\n}, zrUtil.noop);\nregisterTheme('light', lightTheme);\nregisterTheme('dark', darkTheme);\nexport var dataTool = {};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { registerPreprocessor, registerProcessor, registerPostInit, registerPostUpdate, registerAction, registerCoordinateSystem, registerLayout, registerVisual, registerTransform, registerLoading, registerMap, PRIORITY } from './core/echarts';\nimport ComponentView from './view/Component';\nimport ChartView from './view/Chart';\nimport ComponentModel from './model/Component';\nimport SeriesModel from './model/Series';\nimport { isFunction, indexOf, isArray, each } from 'zrender/lib/core/util';\nimport { registerPainter } from 'zrender/lib/zrender';\nvar extensions = [];\nvar extensionRegisters = {\n  registerPreprocessor: registerPreprocessor,\n  registerProcessor: registerProcessor,\n  registerPostInit: registerPostInit,\n  registerPostUpdate: registerPostUpdate,\n  registerAction: registerAction,\n  registerCoordinateSystem: registerCoordinateSystem,\n  registerLayout: registerLayout,\n  registerVisual: registerVisual,\n  registerTransform: registerTransform,\n  registerLoading: registerLoading,\n  registerMap: registerMap,\n  PRIORITY: PRIORITY,\n  ComponentModel: ComponentModel,\n  ComponentView: ComponentView,\n  SeriesModel: SeriesModel,\n  ChartView: ChartView,\n  registerComponentModel: function (ComponentModelClass) {\n    ComponentModel.registerClass(ComponentModelClass);\n  },\n  registerComponentView: function (ComponentViewClass) {\n    ComponentView.registerClass(ComponentViewClass);\n  },\n  registerSeriesModel: function (SeriesModelClass) {\n    SeriesModel.registerClass(SeriesModelClass);\n  },\n  registerChartView: function (ChartViewClass) {\n    ChartView.registerClass(ChartViewClass);\n  },\n  registerSubTypeDefaulter: function (componentType, defaulter) {\n    ComponentModel.registerSubTypeDefaulter(componentType, defaulter);\n  },\n  registerPainter: function (painterType, PainterCtor) {\n    registerPainter(painterType, PainterCtor);\n  }\n};\nexport function use(ext) {\n  if (isArray(ext)) {\n    each(ext, function (singleExt) {\n      use(singleExt);\n    });\n    return;\n  }\n\n  if (indexOf(extensions, ext) >= 0) {\n    return;\n  }\n\n  extensions.push(ext);\n\n  if (isFunction(ext)) {\n    ext = {\n      install: ext\n    };\n  }\n\n  ext.install(extensionRegisters);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nfunction dataIndexMapValueLength(valNumOrArrLengthMoreThan2) {\n  return valNumOrArrLengthMoreThan2 == null ? 0 : valNumOrArrLengthMoreThan2.length || 1;\n}\n\nfunction defaultKeyGetter(item) {\n  return item;\n}\n\nvar DataDiffer = function () {\n  function DataDiffer(oldArr, newArr, oldKeyGetter, newKeyGetter, context, diffMode) {\n    this._old = oldArr;\n    this._new = newArr;\n    this._oldKeyGetter = oldKeyGetter || defaultKeyGetter;\n    this._newKeyGetter = newKeyGetter || defaultKeyGetter;\n    this.context = context;\n    this._diffModeMultiple = diffMode === 'multiple';\n  }\n\n  DataDiffer.prototype.add = function (func) {\n    this._add = func;\n    return this;\n  };\n\n  DataDiffer.prototype.update = function (func) {\n    this._update = func;\n    return this;\n  };\n\n  DataDiffer.prototype.updateManyToOne = function (func) {\n    this._updateManyToOne = func;\n    return this;\n  };\n\n  DataDiffer.prototype.updateOneToMany = function (func) {\n    this._updateOneToMany = func;\n    return this;\n  };\n\n  DataDiffer.prototype.remove = function (func) {\n    this._remove = func;\n    return this;\n  };\n\n  DataDiffer.prototype.execute = function () {\n    this[this._diffModeMultiple ? '_executeMultiple' : '_executeOneToOne']();\n  };\n\n  DataDiffer.prototype._executeOneToOne = function () {\n    var oldArr = this._old;\n    var newArr = this._new;\n    var newDataIndexMap = {};\n    var oldDataKeyArr = new Array(oldArr.length);\n    var newDataKeyArr = new Array(newArr.length);\n\n    this._initIndexMap(oldArr, null, oldDataKeyArr, '_oldKeyGetter');\n\n    this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, '_newKeyGetter');\n\n    for (var i = 0; i < oldArr.length; i++) {\n      var oldKey = oldDataKeyArr[i];\n      var newIdxMapVal = newDataIndexMap[oldKey];\n      var newIdxMapValLen = dataIndexMapValueLength(newIdxMapVal);\n\n      if (newIdxMapValLen > 1) {\n        var newIdx = newIdxMapVal.shift();\n\n        if (newIdxMapVal.length === 1) {\n          newDataIndexMap[oldKey] = newIdxMapVal[0];\n        }\n\n        this._update && this._update(newIdx, i);\n      } else if (newIdxMapValLen === 1) {\n        newDataIndexMap[oldKey] = null;\n        this._update && this._update(newIdxMapVal, i);\n      } else {\n        this._remove && this._remove(i);\n      }\n    }\n\n    this._performRestAdd(newDataKeyArr, newDataIndexMap);\n  };\n\n  DataDiffer.prototype._executeMultiple = function () {\n    var oldArr = this._old;\n    var newArr = this._new;\n    var oldDataIndexMap = {};\n    var newDataIndexMap = {};\n    var oldDataKeyArr = [];\n    var newDataKeyArr = [];\n\n    this._initIndexMap(oldArr, oldDataIndexMap, oldDataKeyArr, '_oldKeyGetter');\n\n    this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, '_newKeyGetter');\n\n    for (var i = 0; i < oldDataKeyArr.length; i++) {\n      var oldKey = oldDataKeyArr[i];\n      var oldIdxMapVal = oldDataIndexMap[oldKey];\n      var newIdxMapVal = newDataIndexMap[oldKey];\n      var oldIdxMapValLen = dataIndexMapValueLength(oldIdxMapVal);\n      var newIdxMapValLen = dataIndexMapValueLength(newIdxMapVal);\n\n      if (oldIdxMapValLen > 1 && newIdxMapValLen === 1) {\n        this._updateManyToOne && this._updateManyToOne(newIdxMapVal, oldIdxMapVal);\n        newDataIndexMap[oldKey] = null;\n      } else if (oldIdxMapValLen === 1 && newIdxMapValLen > 1) {\n        this._updateOneToMany && this._updateOneToMany(newIdxMapVal, oldIdxMapVal);\n        newDataIndexMap[oldKey] = null;\n      } else if (oldIdxMapValLen === 1 && newIdxMapValLen === 1) {\n        this._update && this._update(newIdxMapVal, oldIdxMapVal);\n        newDataIndexMap[oldKey] = null;\n      } else if (oldIdxMapValLen > 1) {\n        for (var i_1 = 0; i_1 < oldIdxMapValLen; i_1++) {\n          this._remove && this._remove(oldIdxMapVal[i_1]);\n        }\n      } else {\n        this._remove && this._remove(oldIdxMapVal);\n      }\n    }\n\n    this._performRestAdd(newDataKeyArr, newDataIndexMap);\n  };\n\n  DataDiffer.prototype._performRestAdd = function (newDataKeyArr, newDataIndexMap) {\n    for (var i = 0; i < newDataKeyArr.length; i++) {\n      var newKey = newDataKeyArr[i];\n      var newIdxMapVal = newDataIndexMap[newKey];\n      var idxMapValLen = dataIndexMapValueLength(newIdxMapVal);\n\n      if (idxMapValLen > 1) {\n        for (var j = 0; j < idxMapValLen; j++) {\n          this._add && this._add(newIdxMapVal[j]);\n        }\n      } else if (idxMapValLen === 1) {\n        this._add && this._add(newIdxMapVal);\n      }\n\n      newDataIndexMap[newKey] = null;\n    }\n  };\n\n  DataDiffer.prototype._initIndexMap = function (arr, map, keyArr, keyGetterName) {\n    var cbModeMultiple = this._diffModeMultiple;\n\n    for (var i = 0; i < arr.length; i++) {\n      var key = '_ec_' + this[keyGetterName](arr[i], i);\n\n      if (!cbModeMultiple) {\n        keyArr[i] = key;\n      }\n\n      if (!map) {\n        continue;\n      }\n\n      var idxMapVal = map[key];\n      var idxMapValLen = dataIndexMapValueLength(idxMapVal);\n\n      if (idxMapValLen === 0) {\n        map[key] = i;\n\n        if (cbModeMultiple) {\n          keyArr.push(key);\n        }\n      } else if (idxMapValLen === 1) {\n        map[key] = [idxMapVal, i];\n      } else {\n        idxMapVal.push(i);\n      }\n    }\n  };\n\n  return DataDiffer;\n}();\n\nexport default DataDiffer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, createHashMap, assert } from 'zrender/lib/core/util';\nimport { VISUAL_DIMENSIONS } from '../../util/types';\nexport function summarizeDimensions(data) {\n  var summary = {};\n  var encode = summary.encode = {};\n  var notExtraCoordDimMap = createHashMap();\n  var defaultedLabel = [];\n  var defaultedTooltip = [];\n  var userOutput = summary.userOutput = {\n    dimensionNames: data.dimensions.slice(),\n    encode: {}\n  };\n  each(data.dimensions, function (dimName) {\n    var dimItem = data.getDimensionInfo(dimName);\n    var coordDim = dimItem.coordDim;\n\n    if (coordDim) {\n      if (process.env.NODE_ENV !== 'production') {\n        assert(VISUAL_DIMENSIONS.get(coordDim) == null);\n      }\n\n      var coordDimIndex = dimItem.coordDimIndex;\n      getOrCreateEncodeArr(encode, coordDim)[coordDimIndex] = dimName;\n\n      if (!dimItem.isExtraCoord) {\n        notExtraCoordDimMap.set(coordDim, 1);\n\n        if (mayLabelDimType(dimItem.type)) {\n          defaultedLabel[0] = dimName;\n        }\n\n        getOrCreateEncodeArr(userOutput.encode, coordDim)[coordDimIndex] = dimItem.index;\n      }\n\n      if (dimItem.defaultTooltip) {\n        defaultedTooltip.push(dimName);\n      }\n    }\n\n    VISUAL_DIMENSIONS.each(function (v, otherDim) {\n      var encodeArr = getOrCreateEncodeArr(encode, otherDim);\n      var dimIndex = dimItem.otherDims[otherDim];\n\n      if (dimIndex != null && dimIndex !== false) {\n        encodeArr[dimIndex] = dimItem.name;\n      }\n    });\n  });\n  var dataDimsOnCoord = [];\n  var encodeFirstDimNotExtra = {};\n  notExtraCoordDimMap.each(function (v, coordDim) {\n    var dimArr = encode[coordDim];\n    encodeFirstDimNotExtra[coordDim] = dimArr[0];\n    dataDimsOnCoord = dataDimsOnCoord.concat(dimArr);\n  });\n  summary.dataDimsOnCoord = dataDimsOnCoord;\n  summary.encodeFirstDimNotExtra = encodeFirstDimNotExtra;\n  var encodeLabel = encode.label;\n\n  if (encodeLabel && encodeLabel.length) {\n    defaultedLabel = encodeLabel.slice();\n  }\n\n  var encodeTooltip = encode.tooltip;\n\n  if (encodeTooltip && encodeTooltip.length) {\n    defaultedTooltip = encodeTooltip.slice();\n  } else if (!defaultedTooltip.length) {\n    defaultedTooltip = defaultedLabel.slice();\n  }\n\n  encode.defaultedLabel = defaultedLabel;\n  encode.defaultedTooltip = defaultedTooltip;\n  return summary;\n}\n\nfunction getOrCreateEncodeArr(encode, dim) {\n  if (!encode.hasOwnProperty(dim)) {\n    encode[dim] = [];\n  }\n\n  return encode[dim];\n}\n\nexport function getDimensionTypeByAxis(axisType) {\n  return axisType === 'category' ? 'ordinal' : axisType === 'time' ? 'time' : 'float';\n}\n\nfunction mayLabelDimType(dimType) {\n  return !(dimType === 'ordinal' || dimType === 'time');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nvar DataDimensionInfo = function () {\n  function DataDimensionInfo(opt) {\n    this.otherDims = {};\n\n    if (opt != null) {\n      zrUtil.extend(this, opt);\n    }\n  }\n\n  return DataDimensionInfo;\n}();\n\n;\nexport default DataDimensionInfo;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Model from '../model/Model';\nimport DataDiffer from './DataDiffer';\nimport { DefaultDataProvider } from './helper/dataProvider';\nimport { summarizeDimensions } from './helper/dimensionHelper';\nimport DataDimensionInfo from './DataDimensionInfo';\nimport { SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ORIGINAL } from '../util/types';\nimport { isDataItemOption, convertOptionIdName } from '../util/model';\nimport { getECData } from '../util/innerStore';\nimport { parseDataValue } from './helper/dataValueHelper';\nimport { isSourceInstance } from './Source';\nvar mathFloor = Math.floor;\nvar isObject = zrUtil.isObject;\nvar map = zrUtil.map;\nvar UNDEFINED = 'undefined';\nvar INDEX_NOT_FOUND = -1;\nvar ID_PREFIX = 'e\\0\\0';\nvar dataCtors = {\n  'float': typeof Float64Array === UNDEFINED ? Array : Float64Array,\n  'int': typeof Int32Array === UNDEFINED ? Array : Int32Array,\n  'ordinal': Array,\n  'number': Array,\n  'time': Array\n};\nvar CtorUint32Array = typeof Uint32Array === UNDEFINED ? Array : Uint32Array;\nvar CtorInt32Array = typeof Int32Array === UNDEFINED ? Array : Int32Array;\nvar CtorUint16Array = typeof Uint16Array === UNDEFINED ? Array : Uint16Array;\nvar TRANSFERABLE_PROPERTIES = ['hasItemOption', '_nameList', '_idList', '_invertedIndicesMap', '_rawData', '_dimValueGetter', '_count', '_rawCount', '_nameDimIdx', '_idDimIdx', '_nameRepeatCount'];\nvar CLONE_PROPERTIES = ['_extent', '_approximateExtent', '_rawExtent'];\nvar defaultDimValueGetters;\nvar prepareInvertedIndex;\nvar getIndicesCtor;\nvar prepareStorage;\nvar getRawIndexWithoutIndices;\nvar getRawIndexWithIndices;\nvar getId;\nvar getIdNameFromStore;\nvar makeIdFromName;\nvar normalizeDimensions;\nvar validateDimensions;\nvar cloneListForMapAndSample;\nvar getInitialExtent;\nvar setItemDataAndSeriesIndex;\nvar transferProperties;\n\nvar List = function () {\n  function List(dimensions, hostModel) {\n    this.type = 'list';\n    this._count = 0;\n    this._rawCount = 0;\n    this._storage = {};\n    this._storageArr = [];\n    this._nameList = [];\n    this._idList = [];\n    this._visual = {};\n    this._layout = {};\n    this._itemVisuals = [];\n    this._itemLayouts = [];\n    this._graphicEls = [];\n    this._rawExtent = {};\n    this._extent = {};\n    this._approximateExtent = {};\n    this._calculationInfo = {};\n    this.hasItemOption = true;\n    this.TRANSFERABLE_METHODS = ['cloneShallow', 'downSample', 'lttbDownSample', 'map'];\n    this.CHANGABLE_METHODS = ['filterSelf', 'selectRange'];\n    this.DOWNSAMPLE_METHODS = ['downSample', 'lttbDownSample'];\n    this.getRawIndex = getRawIndexWithoutIndices;\n    dimensions = dimensions || ['x', 'y'];\n    var dimensionInfos = {};\n    var dimensionNames = [];\n    var invertedIndicesMap = {};\n\n    for (var i = 0; i < dimensions.length; i++) {\n      var dimInfoInput = dimensions[i];\n      var dimensionInfo = zrUtil.isString(dimInfoInput) ? new DataDimensionInfo({\n        name: dimInfoInput\n      }) : !(dimInfoInput instanceof DataDimensionInfo) ? new DataDimensionInfo(dimInfoInput) : dimInfoInput;\n      var dimensionName = dimensionInfo.name;\n      dimensionInfo.type = dimensionInfo.type || 'float';\n\n      if (!dimensionInfo.coordDim) {\n        dimensionInfo.coordDim = dimensionName;\n        dimensionInfo.coordDimIndex = 0;\n      }\n\n      var otherDims = dimensionInfo.otherDims = dimensionInfo.otherDims || {};\n      dimensionNames.push(dimensionName);\n      dimensionInfos[dimensionName] = dimensionInfo;\n      dimensionInfo.index = i;\n\n      if (dimensionInfo.createInvertedIndices) {\n        invertedIndicesMap[dimensionName] = [];\n      }\n\n      if (otherDims.itemName === 0) {\n        this._nameDimIdx = i;\n        this._nameOrdinalMeta = dimensionInfo.ordinalMeta;\n      }\n\n      if (otherDims.itemId === 0) {\n        this._idDimIdx = i;\n        this._idOrdinalMeta = dimensionInfo.ordinalMeta;\n      }\n    }\n\n    this.dimensions = dimensionNames;\n    this._dimensionInfos = dimensionInfos;\n    this.hostModel = hostModel;\n    this._dimensionsSummary = summarizeDimensions(this);\n    this._invertedIndicesMap = invertedIndicesMap;\n    this.userOutput = this._dimensionsSummary.userOutput;\n  }\n\n  List.prototype.getDimension = function (dim) {\n    if (typeof dim === 'number' || !isNaN(dim) && !this._dimensionInfos.hasOwnProperty(dim)) {\n      dim = this.dimensions[dim];\n    }\n\n    return dim;\n  };\n\n  List.prototype.getDimensionInfo = function (dim) {\n    return this._dimensionInfos[this.getDimension(dim)];\n  };\n\n  List.prototype.getDimensionsOnCoord = function () {\n    return this._dimensionsSummary.dataDimsOnCoord.slice();\n  };\n\n  List.prototype.mapDimension = function (coordDim, idx) {\n    var dimensionsSummary = this._dimensionsSummary;\n\n    if (idx == null) {\n      return dimensionsSummary.encodeFirstDimNotExtra[coordDim];\n    }\n\n    var dims = dimensionsSummary.encode[coordDim];\n    return dims ? dims[idx] : null;\n  };\n\n  List.prototype.mapDimensionsAll = function (coordDim) {\n    var dimensionsSummary = this._dimensionsSummary;\n    var dims = dimensionsSummary.encode[coordDim];\n    return (dims || []).slice();\n  };\n\n  List.prototype.initData = function (data, nameList, dimValueGetter) {\n    var notProvider = isSourceInstance(data) || zrUtil.isArrayLike(data);\n    var provider = notProvider ? new DefaultDataProvider(data, this.dimensions.length) : data;\n\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.assert(notProvider || zrUtil.isFunction(provider.getItem) && zrUtil.isFunction(provider.count), 'Inavlid data provider.');\n    }\n\n    this._rawData = provider;\n    var sourceFormat = provider.getSource().sourceFormat;\n    this._storage = {};\n    this._indices = null;\n    this._dontMakeIdFromName = this._idDimIdx != null || sourceFormat === SOURCE_FORMAT_TYPED_ARRAY || !!provider.fillStorage;\n    this._nameList = (nameList || []).slice();\n    this._idList = [];\n    this._nameRepeatCount = {};\n\n    if (!dimValueGetter) {\n      this.hasItemOption = false;\n    }\n\n    this.defaultDimValueGetter = defaultDimValueGetters[sourceFormat];\n    this._dimValueGetter = dimValueGetter = dimValueGetter || this.defaultDimValueGetter;\n    this._dimValueGetterArrayRows = defaultDimValueGetters.arrayRows;\n    this._rawExtent = {};\n\n    this._initDataFromProvider(0, provider.count());\n\n    if (provider.pure) {\n      this.hasItemOption = false;\n    }\n  };\n\n  List.prototype.getProvider = function () {\n    return this._rawData;\n  };\n\n  List.prototype.appendData = function (data) {\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.assert(!this._indices, 'appendData can only be called on raw data.');\n    }\n\n    var rawData = this._rawData;\n    var start = this.count();\n    rawData.appendData(data);\n    var end = rawData.count();\n\n    if (!rawData.persistent) {\n      end += start;\n    }\n\n    this._initDataFromProvider(start, end, true);\n  };\n\n  List.prototype.appendValues = function (values, names) {\n    var storage = this._storage;\n    var dimensions = this.dimensions;\n    var dimLen = dimensions.length;\n    var rawExtent = this._rawExtent;\n    var start = this.count();\n    var end = start + Math.max(values.length, names ? names.length : 0);\n\n    for (var i = 0; i < dimLen; i++) {\n      var dim = dimensions[i];\n\n      if (!rawExtent[dim]) {\n        rawExtent[dim] = getInitialExtent();\n      }\n\n      prepareStorage(storage, this._dimensionInfos[dim], end, true);\n    }\n\n    var rawExtentArr = map(dimensions, function (dim) {\n      return rawExtent[dim];\n    });\n    var storageArr = this._storageArr = map(dimensions, function (dim) {\n      return storage[dim];\n    });\n    var emptyDataItem = [];\n\n    for (var idx = start; idx < end; idx++) {\n      var sourceIdx = idx - start;\n\n      for (var dimIdx = 0; dimIdx < dimLen; dimIdx++) {\n        var dim = dimensions[dimIdx];\n\n        var val = this._dimValueGetterArrayRows(values[sourceIdx] || emptyDataItem, dim, sourceIdx, dimIdx);\n\n        storageArr[dimIdx][idx] = val;\n        var dimRawExtent = rawExtentArr[dimIdx];\n        val < dimRawExtent[0] && (dimRawExtent[0] = val);\n        val > dimRawExtent[1] && (dimRawExtent[1] = val);\n      }\n\n      if (names) {\n        this._nameList[idx] = names[sourceIdx];\n\n        if (!this._dontMakeIdFromName) {\n          makeIdFromName(this, idx);\n        }\n      }\n    }\n\n    this._rawCount = this._count = end;\n    this._extent = {};\n    prepareInvertedIndex(this);\n  };\n\n  List.prototype._initDataFromProvider = function (start, end, append) {\n    if (start >= end) {\n      return;\n    }\n\n    var rawData = this._rawData;\n    var storage = this._storage;\n    var dimensions = this.dimensions;\n    var dimLen = dimensions.length;\n    var dimensionInfoMap = this._dimensionInfos;\n    var nameList = this._nameList;\n    var idList = this._idList;\n    var rawExtent = this._rawExtent;\n    var sourceFormat = rawData.getSource().sourceFormat;\n    var isFormatOriginal = sourceFormat === SOURCE_FORMAT_ORIGINAL;\n\n    for (var i = 0; i < dimLen; i++) {\n      var dim = dimensions[i];\n\n      if (!rawExtent[dim]) {\n        rawExtent[dim] = getInitialExtent();\n      }\n\n      prepareStorage(storage, dimensionInfoMap[dim], end, append);\n    }\n\n    var storageArr = this._storageArr = map(dimensions, function (dim) {\n      return storage[dim];\n    });\n    var rawExtentArr = map(dimensions, function (dim) {\n      return rawExtent[dim];\n    });\n\n    if (rawData.fillStorage) {\n      rawData.fillStorage(start, end, storageArr, rawExtentArr);\n    } else {\n      var dataItem = [];\n\n      for (var idx = start; idx < end; idx++) {\n        dataItem = rawData.getItem(idx, dataItem);\n\n        for (var dimIdx = 0; dimIdx < dimLen; dimIdx++) {\n          var dim = dimensions[dimIdx];\n          var dimStorage = storageArr[dimIdx];\n\n          var val = this._dimValueGetter(dataItem, dim, idx, dimIdx);\n\n          dimStorage[idx] = val;\n          var dimRawExtent = rawExtentArr[dimIdx];\n          val < dimRawExtent[0] && (dimRawExtent[0] = val);\n          val > dimRawExtent[1] && (dimRawExtent[1] = val);\n        }\n\n        if (isFormatOriginal && !rawData.pure && dataItem) {\n          var itemName = dataItem.name;\n\n          if (nameList[idx] == null && itemName != null) {\n            nameList[idx] = convertOptionIdName(itemName, null);\n          }\n\n          var itemId = dataItem.id;\n\n          if (idList[idx] == null && itemId != null) {\n            idList[idx] = convertOptionIdName(itemId, null);\n          }\n        }\n\n        if (!this._dontMakeIdFromName) {\n          makeIdFromName(this, idx);\n        }\n      }\n    }\n\n    if (!rawData.persistent && rawData.clean) {\n      rawData.clean();\n    }\n\n    this._rawCount = this._count = end;\n    this._extent = {};\n    prepareInvertedIndex(this);\n  };\n\n  List.prototype.count = function () {\n    return this._count;\n  };\n\n  List.prototype.getIndices = function () {\n    var newIndices;\n    var indices = this._indices;\n\n    if (indices) {\n      var Ctor = indices.constructor;\n      var thisCount = this._count;\n\n      if (Ctor === Array) {\n        newIndices = new Ctor(thisCount);\n\n        for (var i = 0; i < thisCount; i++) {\n          newIndices[i] = indices[i];\n        }\n      } else {\n        newIndices = new Ctor(indices.buffer, 0, thisCount);\n      }\n    } else {\n      var Ctor = getIndicesCtor(this);\n      newIndices = new Ctor(this.count());\n\n      for (var i = 0; i < newIndices.length; i++) {\n        newIndices[i] = i;\n      }\n    }\n\n    return newIndices;\n  };\n\n  List.prototype.getByDimIdx = function (dimIdx, idx) {\n    if (!(idx >= 0 && idx < this._count)) {\n      return NaN;\n    }\n\n    var dimStore = this._storageArr[dimIdx];\n    return dimStore ? dimStore[this.getRawIndex(idx)] : NaN;\n  };\n\n  List.prototype.get = function (dim, idx) {\n    if (!(idx >= 0 && idx < this._count)) {\n      return NaN;\n    }\n\n    var dimStore = this._storage[dim];\n    return dimStore ? dimStore[this.getRawIndex(idx)] : NaN;\n  };\n\n  List.prototype.getByRawIndex = function (dim, rawIdx) {\n    if (!(rawIdx >= 0 && rawIdx < this._rawCount)) {\n      return NaN;\n    }\n\n    var dimStore = this._storage[dim];\n    return dimStore ? dimStore[rawIdx] : NaN;\n  };\n\n  List.prototype.getValues = function (dimensions, idx) {\n    var values = [];\n\n    if (!zrUtil.isArray(dimensions)) {\n      idx = dimensions;\n      dimensions = this.dimensions;\n    }\n\n    for (var i = 0, len = dimensions.length; i < len; i++) {\n      values.push(this.get(dimensions[i], idx));\n    }\n\n    return values;\n  };\n\n  List.prototype.hasValue = function (idx) {\n    var dataDimsOnCoord = this._dimensionsSummary.dataDimsOnCoord;\n\n    for (var i = 0, len = dataDimsOnCoord.length; i < len; i++) {\n      if (isNaN(this.get(dataDimsOnCoord[i], idx))) {\n        return false;\n      }\n    }\n\n    return true;\n  };\n\n  List.prototype.getDataExtent = function (dim) {\n    dim = this.getDimension(dim);\n    var dimData = this._storage[dim];\n    var initialExtent = getInitialExtent();\n\n    if (!dimData) {\n      return initialExtent;\n    }\n\n    var currEnd = this.count();\n    var useRaw = !this._indices;\n    var dimExtent;\n\n    if (useRaw) {\n      return this._rawExtent[dim].slice();\n    }\n\n    dimExtent = this._extent[dim];\n\n    if (dimExtent) {\n      return dimExtent.slice();\n    }\n\n    dimExtent = initialExtent;\n    var min = dimExtent[0];\n    var max = dimExtent[1];\n\n    for (var i = 0; i < currEnd; i++) {\n      var rawIdx = this.getRawIndex(i);\n      var value = dimData[rawIdx];\n      value < min && (min = value);\n      value > max && (max = value);\n    }\n\n    dimExtent = [min, max];\n    this._extent[dim] = dimExtent;\n    return dimExtent;\n  };\n\n  List.prototype.getApproximateExtent = function (dim) {\n    dim = this.getDimension(dim);\n    return this._approximateExtent[dim] || this.getDataExtent(dim);\n  };\n\n  List.prototype.setApproximateExtent = function (extent, dim) {\n    dim = this.getDimension(dim);\n    this._approximateExtent[dim] = extent.slice();\n  };\n\n  List.prototype.getCalculationInfo = function (key) {\n    return this._calculationInfo[key];\n  };\n\n  List.prototype.setCalculationInfo = function (key, value) {\n    isObject(key) ? zrUtil.extend(this._calculationInfo, key) : this._calculationInfo[key] = value;\n  };\n\n  List.prototype.getSum = function (dim) {\n    var dimData = this._storage[dim];\n    var sum = 0;\n\n    if (dimData) {\n      for (var i = 0, len = this.count(); i < len; i++) {\n        var value = this.get(dim, i);\n\n        if (!isNaN(value)) {\n          sum += value;\n        }\n      }\n    }\n\n    return sum;\n  };\n\n  List.prototype.getMedian = function (dim) {\n    var dimDataArray = [];\n    this.each(dim, function (val) {\n      if (!isNaN(val)) {\n        dimDataArray.push(val);\n      }\n    });\n    var sortedDimDataArray = dimDataArray.sort(function (a, b) {\n      return a - b;\n    });\n    var len = this.count();\n    return len === 0 ? 0 : len % 2 === 1 ? sortedDimDataArray[(len - 1) / 2] : (sortedDimDataArray[len / 2] + sortedDimDataArray[len / 2 - 1]) / 2;\n  };\n\n  List.prototype.rawIndexOf = function (dim, value) {\n    var invertedIndices = dim && this._invertedIndicesMap[dim];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!invertedIndices) {\n        throw new Error('Do not supported yet');\n      }\n    }\n\n    var rawIndex = invertedIndices[value];\n\n    if (rawIndex == null || isNaN(rawIndex)) {\n      return INDEX_NOT_FOUND;\n    }\n\n    return rawIndex;\n  };\n\n  List.prototype.indexOfName = function (name) {\n    for (var i = 0, len = this.count(); i < len; i++) {\n      if (this.getName(i) === name) {\n        return i;\n      }\n    }\n\n    return -1;\n  };\n\n  List.prototype.indexOfRawIndex = function (rawIndex) {\n    if (rawIndex >= this._rawCount || rawIndex < 0) {\n      return -1;\n    }\n\n    if (!this._indices) {\n      return rawIndex;\n    }\n\n    var indices = this._indices;\n    var rawDataIndex = indices[rawIndex];\n\n    if (rawDataIndex != null && rawDataIndex < this._count && rawDataIndex === rawIndex) {\n      return rawIndex;\n    }\n\n    var left = 0;\n    var right = this._count - 1;\n\n    while (left <= right) {\n      var mid = (left + right) / 2 | 0;\n\n      if (indices[mid] < rawIndex) {\n        left = mid + 1;\n      } else if (indices[mid] > rawIndex) {\n        right = mid - 1;\n      } else {\n        return mid;\n      }\n    }\n\n    return -1;\n  };\n\n  List.prototype.indicesOfNearest = function (dim, value, maxDistance) {\n    var storage = this._storage;\n    var dimData = storage[dim];\n    var nearestIndices = [];\n\n    if (!dimData) {\n      return nearestIndices;\n    }\n\n    if (maxDistance == null) {\n      maxDistance = Infinity;\n    }\n\n    var minDist = Infinity;\n    var minDiff = -1;\n    var nearestIndicesLen = 0;\n\n    for (var i = 0, len = this.count(); i < len; i++) {\n      var dataIndex = this.getRawIndex(i);\n      var diff = value - dimData[dataIndex];\n      var dist = Math.abs(diff);\n\n      if (dist <= maxDistance) {\n        if (dist < minDist || dist === minDist && diff >= 0 && minDiff < 0) {\n          minDist = dist;\n          minDiff = diff;\n          nearestIndicesLen = 0;\n        }\n\n        if (diff === minDiff) {\n          nearestIndices[nearestIndicesLen++] = i;\n        }\n      }\n    }\n\n    nearestIndices.length = nearestIndicesLen;\n    return nearestIndices;\n  };\n\n  List.prototype.getRawDataItem = function (idx) {\n    if (!this._rawData.persistent) {\n      var val = [];\n\n      for (var i = 0; i < this.dimensions.length; i++) {\n        var dim = this.dimensions[i];\n        val.push(this.get(dim, idx));\n      }\n\n      return val;\n    } else {\n      return this._rawData.getItem(this.getRawIndex(idx));\n    }\n  };\n\n  List.prototype.getName = function (idx) {\n    var rawIndex = this.getRawIndex(idx);\n    var name = this._nameList[rawIndex];\n\n    if (name == null && this._nameDimIdx != null) {\n      name = getIdNameFromStore(this, this._nameDimIdx, this._nameOrdinalMeta, rawIndex);\n    }\n\n    if (name == null) {\n      name = '';\n    }\n\n    return name;\n  };\n\n  List.prototype.getId = function (idx) {\n    return getId(this, this.getRawIndex(idx));\n  };\n\n  List.prototype.each = function (dims, cb, ctx, ctxCompat) {\n    'use strict';\n\n    var _this = this;\n\n    if (!this._count) {\n      return;\n    }\n\n    if (typeof dims === 'function') {\n      ctxCompat = ctx;\n      ctx = cb;\n      cb = dims;\n      dims = [];\n    }\n\n    var fCtx = ctx || ctxCompat || this;\n    var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\n\n    if (process.env.NODE_ENV !== 'production') {\n      validateDimensions(this, dimNames);\n    }\n\n    var dimSize = dimNames.length;\n    var dimIndices = map(dimNames, function (dimName) {\n      return _this._dimensionInfos[dimName].index;\n    });\n    var storageArr = this._storageArr;\n\n    for (var i = 0, len = this.count(); i < len; i++) {\n      var rawIdx = this.getRawIndex(i);\n\n      switch (dimSize) {\n        case 0:\n          cb.call(fCtx, i);\n          break;\n\n        case 1:\n          cb.call(fCtx, storageArr[dimIndices[0]][rawIdx], i);\n          break;\n\n        case 2:\n          cb.call(fCtx, storageArr[dimIndices[0]][rawIdx], storageArr[dimIndices[1]][rawIdx], i);\n          break;\n\n        default:\n          var k = 0;\n          var value = [];\n\n          for (; k < dimSize; k++) {\n            value[k] = storageArr[dimIndices[k]][rawIdx];\n          }\n\n          value[k] = i;\n          cb.apply(fCtx, value);\n      }\n    }\n  };\n\n  List.prototype.filterSelf = function (dims, cb, ctx, ctxCompat) {\n    'use strict';\n\n    var _this = this;\n\n    if (!this._count) {\n      return;\n    }\n\n    if (typeof dims === 'function') {\n      ctxCompat = ctx;\n      ctx = cb;\n      cb = dims;\n      dims = [];\n    }\n\n    var fCtx = ctx || ctxCompat || this;\n    var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\n\n    if (process.env.NODE_ENV !== 'production') {\n      validateDimensions(this, dimNames);\n    }\n\n    var count = this.count();\n    var Ctor = getIndicesCtor(this);\n    var newIndices = new Ctor(count);\n    var value = [];\n    var dimSize = dimNames.length;\n    var offset = 0;\n    var dimIndices = map(dimNames, function (dimName) {\n      return _this._dimensionInfos[dimName].index;\n    });\n    var dim0 = dimIndices[0];\n    var storageArr = this._storageArr;\n\n    for (var i = 0; i < count; i++) {\n      var keep = void 0;\n      var rawIdx = this.getRawIndex(i);\n\n      if (dimSize === 0) {\n        keep = cb.call(fCtx, i);\n      } else if (dimSize === 1) {\n        var val = storageArr[dim0][rawIdx];\n        keep = cb.call(fCtx, val, i);\n      } else {\n        var k = 0;\n\n        for (; k < dimSize; k++) {\n          value[k] = storageArr[dimIndices[k]][rawIdx];\n        }\n\n        value[k] = i;\n        keep = cb.apply(fCtx, value);\n      }\n\n      if (keep) {\n        newIndices[offset++] = rawIdx;\n      }\n    }\n\n    if (offset < count) {\n      this._indices = newIndices;\n    }\n\n    this._count = offset;\n    this._extent = {};\n    this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n    return this;\n  };\n\n  List.prototype.selectRange = function (range) {\n    'use strict';\n\n    var _this = this;\n\n    var len = this._count;\n\n    if (!len) {\n      return;\n    }\n\n    var dimensions = [];\n\n    for (var dim in range) {\n      if (range.hasOwnProperty(dim)) {\n        dimensions.push(dim);\n      }\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      validateDimensions(this, dimensions);\n    }\n\n    var dimSize = dimensions.length;\n\n    if (!dimSize) {\n      return;\n    }\n\n    var originalCount = this.count();\n    var Ctor = getIndicesCtor(this);\n    var newIndices = new Ctor(originalCount);\n    var offset = 0;\n    var dim0 = dimensions[0];\n    var dimIndices = map(dimensions, function (dimName) {\n      return _this._dimensionInfos[dimName].index;\n    });\n    var min = range[dim0][0];\n    var max = range[dim0][1];\n    var storageArr = this._storageArr;\n    var quickFinished = false;\n\n    if (!this._indices) {\n      var idx = 0;\n\n      if (dimSize === 1) {\n        var dimStorage = storageArr[dimIndices[0]];\n\n        for (var i = 0; i < len; i++) {\n          var val = dimStorage[i];\n\n          if (val >= min && val <= max || isNaN(val)) {\n            newIndices[offset++] = idx;\n          }\n\n          idx++;\n        }\n\n        quickFinished = true;\n      } else if (dimSize === 2) {\n        var dimStorage = storageArr[dimIndices[0]];\n        var dimStorage2 = storageArr[dimIndices[1]];\n        var min2 = range[dimensions[1]][0];\n        var max2 = range[dimensions[1]][1];\n\n        for (var i = 0; i < len; i++) {\n          var val = dimStorage[i];\n          var val2 = dimStorage2[i];\n\n          if ((val >= min && val <= max || isNaN(val)) && (val2 >= min2 && val2 <= max2 || isNaN(val2))) {\n            newIndices[offset++] = idx;\n          }\n\n          idx++;\n        }\n\n        quickFinished = true;\n      }\n    }\n\n    if (!quickFinished) {\n      if (dimSize === 1) {\n        for (var i = 0; i < originalCount; i++) {\n          var rawIndex = this.getRawIndex(i);\n          var val = storageArr[dimIndices[0]][rawIndex];\n\n          if (val >= min && val <= max || isNaN(val)) {\n            newIndices[offset++] = rawIndex;\n          }\n        }\n      } else {\n        for (var i = 0; i < originalCount; i++) {\n          var keep = true;\n          var rawIndex = this.getRawIndex(i);\n\n          for (var k = 0; k < dimSize; k++) {\n            var dimk = dimensions[k];\n            var val = storageArr[dimIndices[k]][rawIndex];\n\n            if (val < range[dimk][0] || val > range[dimk][1]) {\n              keep = false;\n            }\n          }\n\n          if (keep) {\n            newIndices[offset++] = this.getRawIndex(i);\n          }\n        }\n      }\n    }\n\n    if (offset < originalCount) {\n      this._indices = newIndices;\n    }\n\n    this._count = offset;\n    this._extent = {};\n    this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n    return this;\n  };\n\n  List.prototype.mapArray = function (dims, cb, ctx, ctxCompat) {\n    'use strict';\n\n    if (typeof dims === 'function') {\n      ctxCompat = ctx;\n      ctx = cb;\n      cb = dims;\n      dims = [];\n    }\n\n    ctx = ctx || ctxCompat || this;\n    var result = [];\n    this.each(dims, function () {\n      result.push(cb && cb.apply(this, arguments));\n    }, ctx);\n    return result;\n  };\n\n  List.prototype.map = function (dims, cb, ctx, ctxCompat) {\n    'use strict';\n\n    var fCtx = ctx || ctxCompat || this;\n    var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\n\n    if (process.env.NODE_ENV !== 'production') {\n      validateDimensions(this, dimNames);\n    }\n\n    var list = cloneListForMapAndSample(this, dimNames);\n    var storage = list._storage;\n    list._indices = this._indices;\n    list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n    var tmpRetValue = [];\n    var dimSize = dimNames.length;\n    var dataCount = this.count();\n    var values = [];\n    var rawExtent = list._rawExtent;\n\n    for (var dataIndex = 0; dataIndex < dataCount; dataIndex++) {\n      for (var dimIndex = 0; dimIndex < dimSize; dimIndex++) {\n        values[dimIndex] = this.get(dimNames[dimIndex], dataIndex);\n      }\n\n      values[dimSize] = dataIndex;\n      var retValue = cb && cb.apply(fCtx, values);\n\n      if (retValue != null) {\n        if (typeof retValue !== 'object') {\n          tmpRetValue[0] = retValue;\n          retValue = tmpRetValue;\n        }\n\n        var rawIndex = this.getRawIndex(dataIndex);\n\n        for (var i = 0; i < retValue.length; i++) {\n          var dim = dimNames[i];\n          var val = retValue[i];\n          var rawExtentOnDim = rawExtent[dim];\n          var dimStore = storage[dim];\n\n          if (dimStore) {\n            dimStore[rawIndex] = val;\n          }\n\n          if (val < rawExtentOnDim[0]) {\n            rawExtentOnDim[0] = val;\n          }\n\n          if (val > rawExtentOnDim[1]) {\n            rawExtentOnDim[1] = val;\n          }\n        }\n      }\n    }\n\n    return list;\n  };\n\n  List.prototype.downSample = function (dimension, rate, sampleValue, sampleIndex) {\n    var list = cloneListForMapAndSample(this, [dimension]);\n    var targetStorage = list._storage;\n    var frameValues = [];\n    var frameSize = mathFloor(1 / rate);\n    var dimStore = targetStorage[dimension];\n    var len = this.count();\n    var rawExtentOnDim = list._rawExtent[dimension];\n    var newIndices = new (getIndicesCtor(this))(len);\n    var offset = 0;\n\n    for (var i = 0; i < len; i += frameSize) {\n      if (frameSize > len - i) {\n        frameSize = len - i;\n        frameValues.length = frameSize;\n      }\n\n      for (var k = 0; k < frameSize; k++) {\n        var dataIdx = this.getRawIndex(i + k);\n        frameValues[k] = dimStore[dataIdx];\n      }\n\n      var value = sampleValue(frameValues);\n      var sampleFrameIdx = this.getRawIndex(Math.min(i + sampleIndex(frameValues, value) || 0, len - 1));\n      dimStore[sampleFrameIdx] = value;\n\n      if (value < rawExtentOnDim[0]) {\n        rawExtentOnDim[0] = value;\n      }\n\n      if (value > rawExtentOnDim[1]) {\n        rawExtentOnDim[1] = value;\n      }\n\n      newIndices[offset++] = sampleFrameIdx;\n    }\n\n    list._count = offset;\n    list._indices = newIndices;\n    list.getRawIndex = getRawIndexWithIndices;\n    return list;\n  };\n\n  List.prototype.lttbDownSample = function (valueDimension, rate) {\n    var list = cloneListForMapAndSample(this, []);\n    var targetStorage = list._storage;\n    var dimStore = targetStorage[valueDimension];\n    var len = this.count();\n    var newIndices = new (getIndicesCtor(this))(len);\n    var sampledIndex = 0;\n    var frameSize = mathFloor(1 / rate);\n    var currentRawIndex = this.getRawIndex(0);\n    var maxArea;\n    var area;\n    var nextRawIndex;\n    newIndices[sampledIndex++] = currentRawIndex;\n\n    for (var i = 1; i < len - 1; i += frameSize) {\n      var nextFrameStart = Math.min(i + frameSize, len - 1);\n      var nextFrameEnd = Math.min(i + frameSize * 2, len);\n      var avgX = (nextFrameEnd + nextFrameStart) / 2;\n      var avgY = 0;\n\n      for (var idx = nextFrameStart; idx < nextFrameEnd; idx++) {\n        var rawIndex = this.getRawIndex(idx);\n        var y = dimStore[rawIndex];\n\n        if (isNaN(y)) {\n          continue;\n        }\n\n        avgY += y;\n      }\n\n      avgY /= nextFrameEnd - nextFrameStart;\n      var frameStart = i;\n      var frameEnd = Math.min(i + frameSize, len);\n      var pointAX = i - 1;\n      var pointAY = dimStore[currentRawIndex];\n      maxArea = -1;\n      nextRawIndex = frameStart;\n\n      for (var idx = frameStart; idx < frameEnd; idx++) {\n        var rawIndex = this.getRawIndex(idx);\n        var y = dimStore[rawIndex];\n\n        if (isNaN(y)) {\n          continue;\n        }\n\n        area = Math.abs((pointAX - avgX) * (y - pointAY) - (pointAX - idx) * (avgY - pointAY));\n\n        if (area > maxArea) {\n          maxArea = area;\n          nextRawIndex = rawIndex;\n        }\n      }\n\n      newIndices[sampledIndex++] = nextRawIndex;\n      currentRawIndex = nextRawIndex;\n    }\n\n    newIndices[sampledIndex++] = this.getRawIndex(len - 1);\n    list._count = sampledIndex;\n    list._indices = newIndices;\n    list.getRawIndex = getRawIndexWithIndices;\n    return list;\n  };\n\n  List.prototype.getItemModel = function (idx) {\n    var hostModel = this.hostModel;\n    var dataItem = this.getRawDataItem(idx);\n    return new Model(dataItem, hostModel, hostModel && hostModel.ecModel);\n  };\n\n  List.prototype.diff = function (otherList) {\n    var thisList = this;\n    return new DataDiffer(otherList ? otherList.getIndices() : [], this.getIndices(), function (idx) {\n      return getId(otherList, idx);\n    }, function (idx) {\n      return getId(thisList, idx);\n    });\n  };\n\n  List.prototype.getVisual = function (key) {\n    var visual = this._visual;\n    return visual && visual[key];\n  };\n\n  List.prototype.setVisual = function (kvObj, val) {\n    this._visual = this._visual || {};\n\n    if (isObject(kvObj)) {\n      zrUtil.extend(this._visual, kvObj);\n    } else {\n      this._visual[kvObj] = val;\n    }\n  };\n\n  List.prototype.getItemVisual = function (idx, key) {\n    var itemVisual = this._itemVisuals[idx];\n    var val = itemVisual && itemVisual[key];\n\n    if (val == null) {\n      return this.getVisual(key);\n    }\n\n    return val;\n  };\n\n  List.prototype.hasItemVisual = function () {\n    return this._itemVisuals.length > 0;\n  };\n\n  List.prototype.ensureUniqueItemVisual = function (idx, key) {\n    var itemVisuals = this._itemVisuals;\n    var itemVisual = itemVisuals[idx];\n\n    if (!itemVisual) {\n      itemVisual = itemVisuals[idx] = {};\n    }\n\n    var val = itemVisual[key];\n\n    if (val == null) {\n      val = this.getVisual(key);\n\n      if (zrUtil.isArray(val)) {\n        val = val.slice();\n      } else if (isObject(val)) {\n        val = zrUtil.extend({}, val);\n      }\n\n      itemVisual[key] = val;\n    }\n\n    return val;\n  };\n\n  List.prototype.setItemVisual = function (idx, key, value) {\n    var itemVisual = this._itemVisuals[idx] || {};\n    this._itemVisuals[idx] = itemVisual;\n\n    if (isObject(key)) {\n      zrUtil.extend(itemVisual, key);\n    } else {\n      itemVisual[key] = value;\n    }\n  };\n\n  List.prototype.clearAllVisual = function () {\n    this._visual = {};\n    this._itemVisuals = [];\n  };\n\n  List.prototype.setLayout = function (key, val) {\n    if (isObject(key)) {\n      for (var name_1 in key) {\n        if (key.hasOwnProperty(name_1)) {\n          this.setLayout(name_1, key[name_1]);\n        }\n      }\n\n      return;\n    }\n\n    this._layout[key] = val;\n  };\n\n  List.prototype.getLayout = function (key) {\n    return this._layout[key];\n  };\n\n  List.prototype.getItemLayout = function (idx) {\n    return this._itemLayouts[idx];\n  };\n\n  List.prototype.setItemLayout = function (idx, layout, merge) {\n    this._itemLayouts[idx] = merge ? zrUtil.extend(this._itemLayouts[idx] || {}, layout) : layout;\n  };\n\n  List.prototype.clearItemLayouts = function () {\n    this._itemLayouts.length = 0;\n  };\n\n  List.prototype.setItemGraphicEl = function (idx, el) {\n    var hostModel = this.hostModel;\n\n    if (el) {\n      var ecData = getECData(el);\n      ecData.dataIndex = idx;\n      ecData.dataType = this.dataType;\n      ecData.seriesIndex = hostModel && hostModel.seriesIndex;\n\n      if (el.type === 'group') {\n        el.traverse(setItemDataAndSeriesIndex, el);\n      }\n    }\n\n    this._graphicEls[idx] = el;\n  };\n\n  List.prototype.getItemGraphicEl = function (idx) {\n    return this._graphicEls[idx];\n  };\n\n  List.prototype.eachItemGraphicEl = function (cb, context) {\n    zrUtil.each(this._graphicEls, function (el, idx) {\n      if (el) {\n        cb && cb.call(context, el, idx);\n      }\n    });\n  };\n\n  List.prototype.cloneShallow = function (list) {\n    if (!list) {\n      var dimensionInfoList = map(this.dimensions, this.getDimensionInfo, this);\n      list = new List(dimensionInfoList, this.hostModel);\n    }\n\n    list._storage = this._storage;\n    list._storageArr = this._storageArr;\n    transferProperties(list, this);\n\n    if (this._indices) {\n      var Ctor = this._indices.constructor;\n\n      if (Ctor === Array) {\n        var thisCount = this._indices.length;\n        list._indices = new Ctor(thisCount);\n\n        for (var i = 0; i < thisCount; i++) {\n          list._indices[i] = this._indices[i];\n        }\n      } else {\n        list._indices = new Ctor(this._indices);\n      }\n    } else {\n      list._indices = null;\n    }\n\n    list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n    return list;\n  };\n\n  List.prototype.wrapMethod = function (methodName, injectFunction) {\n    var originalMethod = this[methodName];\n\n    if (typeof originalMethod !== 'function') {\n      return;\n    }\n\n    this.__wrappedMethods = this.__wrappedMethods || [];\n\n    this.__wrappedMethods.push(methodName);\n\n    this[methodName] = function () {\n      var res = originalMethod.apply(this, arguments);\n      return injectFunction.apply(this, [res].concat(zrUtil.slice(arguments)));\n    };\n  };\n\n  List.internalField = function () {\n    defaultDimValueGetters = {\n      arrayRows: getDimValueSimply,\n      objectRows: function (dataItem, dimName, dataIndex, dimIndex) {\n        return parseDataValue(dataItem[dimName], this._dimensionInfos[dimName]);\n      },\n      keyedColumns: getDimValueSimply,\n      original: function (dataItem, dimName, dataIndex, dimIndex) {\n        var value = dataItem && (dataItem.value == null ? dataItem : dataItem.value);\n\n        if (!this._rawData.pure && isDataItemOption(dataItem)) {\n          this.hasItemOption = true;\n        }\n\n        return parseDataValue(value instanceof Array ? value[dimIndex] : value, this._dimensionInfos[dimName]);\n      },\n      typedArray: function (dataItem, dimName, dataIndex, dimIndex) {\n        return dataItem[dimIndex];\n      }\n    };\n\n    function getDimValueSimply(dataItem, dimName, dataIndex, dimIndex) {\n      return parseDataValue(dataItem[dimIndex], this._dimensionInfos[dimName]);\n    }\n\n    prepareInvertedIndex = function (list) {\n      var invertedIndicesMap = list._invertedIndicesMap;\n      zrUtil.each(invertedIndicesMap, function (invertedIndices, dim) {\n        var dimInfo = list._dimensionInfos[dim];\n        var ordinalMeta = dimInfo.ordinalMeta;\n\n        if (ordinalMeta) {\n          invertedIndices = invertedIndicesMap[dim] = new CtorInt32Array(ordinalMeta.categories.length);\n\n          for (var i = 0; i < invertedIndices.length; i++) {\n            invertedIndices[i] = INDEX_NOT_FOUND;\n          }\n\n          for (var i = 0; i < list._count; i++) {\n            invertedIndices[list.get(dim, i)] = i;\n          }\n        }\n      });\n    };\n\n    getIdNameFromStore = function (list, dimIdx, ordinalMeta, rawIndex) {\n      var val;\n      var chunk = list._storageArr[dimIdx];\n\n      if (chunk) {\n        val = chunk[rawIndex];\n\n        if (ordinalMeta && ordinalMeta.categories.length) {\n          val = ordinalMeta.categories[val];\n        }\n      }\n\n      return convertOptionIdName(val, null);\n    };\n\n    getIndicesCtor = function (list) {\n      return list._rawCount > 65535 ? CtorUint32Array : CtorUint16Array;\n    };\n\n    prepareStorage = function (storage, dimInfo, end, append) {\n      var DataCtor = dataCtors[dimInfo.type];\n      var dim = dimInfo.name;\n\n      if (append) {\n        var oldStore = storage[dim];\n        var oldLen = oldStore && oldStore.length;\n\n        if (!(oldLen === end)) {\n          var newStore = new DataCtor(end);\n\n          for (var j = 0; j < oldLen; j++) {\n            newStore[j] = oldStore[j];\n          }\n\n          storage[dim] = newStore;\n        }\n      } else {\n        storage[dim] = new DataCtor(end);\n      }\n    };\n\n    getRawIndexWithoutIndices = function (idx) {\n      return idx;\n    };\n\n    getRawIndexWithIndices = function (idx) {\n      if (idx < this._count && idx >= 0) {\n        return this._indices[idx];\n      }\n\n      return -1;\n    };\n\n    getId = function (list, rawIndex) {\n      var id = list._idList[rawIndex];\n\n      if (id == null && list._idDimIdx != null) {\n        id = getIdNameFromStore(list, list._idDimIdx, list._idOrdinalMeta, rawIndex);\n      }\n\n      if (id == null) {\n        id = ID_PREFIX + rawIndex;\n      }\n\n      return id;\n    };\n\n    normalizeDimensions = function (dimensions) {\n      if (!zrUtil.isArray(dimensions)) {\n        dimensions = dimensions != null ? [dimensions] : [];\n      }\n\n      return dimensions;\n    };\n\n    validateDimensions = function (list, dims) {\n      for (var i = 0; i < dims.length; i++) {\n        if (!list._dimensionInfos[dims[i]]) {\n          console.error('Unkown dimension ' + dims[i]);\n        }\n      }\n    };\n\n    cloneListForMapAndSample = function (original, excludeDimensions) {\n      var allDimensions = original.dimensions;\n      var list = new List(map(allDimensions, original.getDimensionInfo, original), original.hostModel);\n      transferProperties(list, original);\n      var storage = list._storage = {};\n      var originalStorage = original._storage;\n      var storageArr = list._storageArr = [];\n\n      for (var i = 0; i < allDimensions.length; i++) {\n        var dim = allDimensions[i];\n\n        if (originalStorage[dim]) {\n          if (zrUtil.indexOf(excludeDimensions, dim) >= 0) {\n            storage[dim] = cloneChunk(originalStorage[dim]);\n            list._rawExtent[dim] = getInitialExtent();\n            list._extent[dim] = null;\n          } else {\n            storage[dim] = originalStorage[dim];\n          }\n\n          storageArr.push(storage[dim]);\n        }\n      }\n\n      return list;\n    };\n\n    function cloneChunk(originalChunk) {\n      var Ctor = originalChunk.constructor;\n      return Ctor === Array ? originalChunk.slice() : new Ctor(originalChunk);\n    }\n\n    getInitialExtent = function () {\n      return [Infinity, -Infinity];\n    };\n\n    setItemDataAndSeriesIndex = function (child) {\n      var childECData = getECData(child);\n      var thisECData = getECData(this);\n      childECData.seriesIndex = thisECData.seriesIndex;\n      childECData.dataIndex = thisECData.dataIndex;\n      childECData.dataType = thisECData.dataType;\n    };\n\n    transferProperties = function (target, source) {\n      zrUtil.each(TRANSFERABLE_PROPERTIES.concat(source.__wrappedMethods || []), function (propName) {\n        if (source.hasOwnProperty(propName)) {\n          target[propName] = source[propName];\n        }\n      });\n      target.__wrappedMethods = source.__wrappedMethods;\n      zrUtil.each(CLONE_PROPERTIES, function (propName) {\n        target[propName] = zrUtil.clone(source[propName]);\n      });\n      target._calculationInfo = zrUtil.extend({}, source._calculationInfo);\n    };\n\n    makeIdFromName = function (list, idx) {\n      var nameList = list._nameList;\n      var idList = list._idList;\n      var nameDimIdx = list._nameDimIdx;\n      var idDimIdx = list._idDimIdx;\n      var name = nameList[idx];\n      var id = idList[idx];\n\n      if (name == null && nameDimIdx != null) {\n        nameList[idx] = name = getIdNameFromStore(list, nameDimIdx, list._nameOrdinalMeta, idx);\n      }\n\n      if (id == null && idDimIdx != null) {\n        idList[idx] = id = getIdNameFromStore(list, idDimIdx, list._idOrdinalMeta, idx);\n      }\n\n      if (id == null && name != null) {\n        var nameRepeatCount = list._nameRepeatCount;\n        var nmCnt = nameRepeatCount[name] = (nameRepeatCount[name] || 0) + 1;\n        id = name;\n\n        if (nmCnt > 1) {\n          id += '__ec__' + nmCnt;\n        }\n\n        idList[idx] = id;\n      }\n    };\n  }();\n\n  return List;\n}();\n\nexport default List;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, each, isString, defaults, extend, isObject, clone } from 'zrender/lib/core/util';\nimport { normalizeToArray } from '../../util/model';\nimport { guessOrdinal, BE_ORDINAL } from './sourceHelper';\nimport { createSourceFromSeriesDataOption, isSourceInstance } from '../Source';\nimport { VISUAL_DIMENSIONS } from '../../util/types';\nimport DataDimensionInfo from '../DataDimensionInfo';\n\nfunction completeDimensions(sysDims, source, opt) {\n  if (!isSourceInstance(source)) {\n    source = createSourceFromSeriesDataOption(source);\n  }\n\n  opt = opt || {};\n  sysDims = (sysDims || []).slice();\n  var dimsDef = (opt.dimsDef || []).slice();\n  var dataDimNameMap = createHashMap();\n  var coordDimNameMap = createHashMap();\n  var result = [];\n  var dimCount = getDimCount(source, sysDims, dimsDef, opt.dimCount);\n\n  for (var i = 0; i < dimCount; i++) {\n    var dimDefItemRaw = dimsDef[i];\n    var dimDefItem = dimsDef[i] = extend({}, isObject(dimDefItemRaw) ? dimDefItemRaw : {\n      name: dimDefItemRaw\n    });\n    var userDimName = dimDefItem.name;\n    var resultItem = result[i] = new DataDimensionInfo();\n\n    if (userDimName != null && dataDimNameMap.get(userDimName) == null) {\n      resultItem.name = resultItem.displayName = userDimName;\n      dataDimNameMap.set(userDimName, i);\n    }\n\n    dimDefItem.type != null && (resultItem.type = dimDefItem.type);\n    dimDefItem.displayName != null && (resultItem.displayName = dimDefItem.displayName);\n  }\n\n  var encodeDef = opt.encodeDef;\n\n  if (!encodeDef && opt.encodeDefaulter) {\n    encodeDef = opt.encodeDefaulter(source, dimCount);\n  }\n\n  var encodeDefMap = createHashMap(encodeDef);\n  encodeDefMap.each(function (dataDimsRaw, coordDim) {\n    var dataDims = normalizeToArray(dataDimsRaw).slice();\n\n    if (dataDims.length === 1 && !isString(dataDims[0]) && dataDims[0] < 0) {\n      encodeDefMap.set(coordDim, false);\n      return;\n    }\n\n    var validDataDims = encodeDefMap.set(coordDim, []);\n    each(dataDims, function (resultDimIdxOrName, idx) {\n      var resultDimIdx = isString(resultDimIdxOrName) ? dataDimNameMap.get(resultDimIdxOrName) : resultDimIdxOrName;\n\n      if (resultDimIdx != null && resultDimIdx < dimCount) {\n        validDataDims[idx] = resultDimIdx;\n        applyDim(result[resultDimIdx], coordDim, idx);\n      }\n    });\n  });\n  var availDimIdx = 0;\n  each(sysDims, function (sysDimItemRaw) {\n    var coordDim;\n    var sysDimItemDimsDef;\n    var sysDimItemOtherDims;\n    var sysDimItem;\n\n    if (isString(sysDimItemRaw)) {\n      coordDim = sysDimItemRaw;\n      sysDimItem = {};\n    } else {\n      sysDimItem = sysDimItemRaw;\n      coordDim = sysDimItem.name;\n      var ordinalMeta = sysDimItem.ordinalMeta;\n      sysDimItem.ordinalMeta = null;\n      sysDimItem = clone(sysDimItem);\n      sysDimItem.ordinalMeta = ordinalMeta;\n      sysDimItemDimsDef = sysDimItem.dimsDef;\n      sysDimItemOtherDims = sysDimItem.otherDims;\n      sysDimItem.name = sysDimItem.coordDim = sysDimItem.coordDimIndex = sysDimItem.dimsDef = sysDimItem.otherDims = null;\n    }\n\n    var dataDims = encodeDefMap.get(coordDim);\n\n    if (dataDims === false) {\n      return;\n    }\n\n    dataDims = normalizeToArray(dataDims);\n\n    if (!dataDims.length) {\n      for (var i = 0; i < (sysDimItemDimsDef && sysDimItemDimsDef.length || 1); i++) {\n        while (availDimIdx < result.length && result[availDimIdx].coordDim != null) {\n          availDimIdx++;\n        }\n\n        availDimIdx < result.length && dataDims.push(availDimIdx++);\n      }\n    }\n\n    each(dataDims, function (resultDimIdx, coordDimIndex) {\n      var resultItem = result[resultDimIdx];\n      applyDim(defaults(resultItem, sysDimItem), coordDim, coordDimIndex);\n\n      if (resultItem.name == null && sysDimItemDimsDef) {\n        var sysDimItemDimsDefItem = sysDimItemDimsDef[coordDimIndex];\n        !isObject(sysDimItemDimsDefItem) && (sysDimItemDimsDefItem = {\n          name: sysDimItemDimsDefItem\n        });\n        resultItem.name = resultItem.displayName = sysDimItemDimsDefItem.name;\n        resultItem.defaultTooltip = sysDimItemDimsDefItem.defaultTooltip;\n      }\n\n      sysDimItemOtherDims && defaults(resultItem.otherDims, sysDimItemOtherDims);\n    });\n  });\n\n  function applyDim(resultItem, coordDim, coordDimIndex) {\n    if (VISUAL_DIMENSIONS.get(coordDim) != null) {\n      resultItem.otherDims[coordDim] = coordDimIndex;\n    } else {\n      resultItem.coordDim = coordDim;\n      resultItem.coordDimIndex = coordDimIndex;\n      coordDimNameMap.set(coordDim, true);\n    }\n  }\n\n  var generateCoord = opt.generateCoord;\n  var generateCoordCount = opt.generateCoordCount;\n  var fromZero = generateCoordCount != null;\n  generateCoordCount = generateCoord ? generateCoordCount || 1 : 0;\n  var extra = generateCoord || 'value';\n\n  for (var resultDimIdx = 0; resultDimIdx < dimCount; resultDimIdx++) {\n    var resultItem = result[resultDimIdx] = result[resultDimIdx] || new DataDimensionInfo();\n    var coordDim = resultItem.coordDim;\n\n    if (coordDim == null) {\n      resultItem.coordDim = genName(extra, coordDimNameMap, fromZero);\n      resultItem.coordDimIndex = 0;\n\n      if (!generateCoord || generateCoordCount <= 0) {\n        resultItem.isExtraCoord = true;\n      }\n\n      generateCoordCount--;\n    }\n\n    resultItem.name == null && (resultItem.name = genName(resultItem.coordDim, dataDimNameMap, false));\n\n    if (resultItem.type == null && (guessOrdinal(source, resultDimIdx) === BE_ORDINAL.Must || resultItem.isExtraCoord && (resultItem.otherDims.itemName != null || resultItem.otherDims.seriesName != null))) {\n      resultItem.type = 'ordinal';\n    }\n  }\n\n  return result;\n}\n\nfunction getDimCount(source, sysDims, dimsDef, optDimCount) {\n  var dimCount = Math.max(source.dimensionsDetectedCount || 1, sysDims.length, dimsDef.length, optDimCount || 0);\n  each(sysDims, function (sysDimItem) {\n    var sysDimItemDimsDef;\n\n    if (isObject(sysDimItem) && (sysDimItemDimsDef = sysDimItem.dimsDef)) {\n      dimCount = Math.max(dimCount, sysDimItemDimsDef.length);\n    }\n  });\n  return dimCount;\n}\n\nfunction genName(name, map, fromZero) {\n  if (fromZero || map.get(name) != null) {\n    var i = 0;\n\n    while (map.get(name + i) != null) {\n      i++;\n    }\n\n    name += i;\n  }\n\n  map.set(name, true);\n  return name;\n}\n\nexport default completeDimensions;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport completeDimensions from './completeDimensions';\nexport default function createDimensions(source, opt) {\n  opt = opt || {};\n  return completeDimensions(opt.coordDimensions || [], source, {\n    dimsDef: opt.dimensionsDefine || source.dimensionsDefine,\n    encodeDef: opt.encodeDefine || source.encodeDefine,\n    dimCount: opt.dimensionsCount,\n    encodeDefaulter: opt.encodeDefaulter,\n    generateCoord: opt.generateCoord,\n    generateCoordCount: opt.generateCoordCount\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, retrieve, each } from 'zrender/lib/core/util';\nimport { SINGLE_REFERRING } from '../util/model';\n\nvar CoordSysInfo = function () {\n  function CoordSysInfo(coordSysName) {\n    this.coordSysDims = [];\n    this.axisMap = createHashMap();\n    this.categoryAxisMap = createHashMap();\n    this.coordSysName = coordSysName;\n  }\n\n  return CoordSysInfo;\n}();\n\nexport function getCoordSysInfoBySeries(seriesModel) {\n  var coordSysName = seriesModel.get('coordinateSystem');\n  var result = new CoordSysInfo(coordSysName);\n  var fetch = fetchers[coordSysName];\n\n  if (fetch) {\n    fetch(seriesModel, result, result.axisMap, result.categoryAxisMap);\n    return result;\n  }\n}\nvar fetchers = {\n  cartesian2d: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var xAxisModel = seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0];\n    var yAxisModel = seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!xAxisModel) {\n        throw new Error('xAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('xAxisId'), 0) + '\" not found');\n      }\n\n      if (!yAxisModel) {\n        throw new Error('yAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('yAxisId'), 0) + '\" not found');\n      }\n    }\n\n    result.coordSysDims = ['x', 'y'];\n    axisMap.set('x', xAxisModel);\n    axisMap.set('y', yAxisModel);\n\n    if (isCategory(xAxisModel)) {\n      categoryAxisMap.set('x', xAxisModel);\n      result.firstCategoryDimIndex = 0;\n    }\n\n    if (isCategory(yAxisModel)) {\n      categoryAxisMap.set('y', yAxisModel);\n      result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\n    }\n  },\n  singleAxis: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var singleAxisModel = seriesModel.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!singleAxisModel) {\n        throw new Error('singleAxis should be specified.');\n      }\n    }\n\n    result.coordSysDims = ['single'];\n    axisMap.set('single', singleAxisModel);\n\n    if (isCategory(singleAxisModel)) {\n      categoryAxisMap.set('single', singleAxisModel);\n      result.firstCategoryDimIndex = 0;\n    }\n  },\n  polar: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var polarModel = seriesModel.getReferringComponents('polar', SINGLE_REFERRING).models[0];\n    var radiusAxisModel = polarModel.findAxisModel('radiusAxis');\n    var angleAxisModel = polarModel.findAxisModel('angleAxis');\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!angleAxisModel) {\n        throw new Error('angleAxis option not found');\n      }\n\n      if (!radiusAxisModel) {\n        throw new Error('radiusAxis option not found');\n      }\n    }\n\n    result.coordSysDims = ['radius', 'angle'];\n    axisMap.set('radius', radiusAxisModel);\n    axisMap.set('angle', angleAxisModel);\n\n    if (isCategory(radiusAxisModel)) {\n      categoryAxisMap.set('radius', radiusAxisModel);\n      result.firstCategoryDimIndex = 0;\n    }\n\n    if (isCategory(angleAxisModel)) {\n      categoryAxisMap.set('angle', angleAxisModel);\n      result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\n    }\n  },\n  geo: function (seriesModel, result, axisMap, categoryAxisMap) {\n    result.coordSysDims = ['lng', 'lat'];\n  },\n  parallel: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var ecModel = seriesModel.ecModel;\n    var parallelModel = ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\n    var coordSysDims = result.coordSysDims = parallelModel.dimensions.slice();\n    each(parallelModel.parallelAxisIndex, function (axisIndex, index) {\n      var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\n      var axisDim = coordSysDims[index];\n      axisMap.set(axisDim, axisModel);\n\n      if (isCategory(axisModel)) {\n        categoryAxisMap.set(axisDim, axisModel);\n\n        if (result.firstCategoryDimIndex == null) {\n          result.firstCategoryDimIndex = index;\n        }\n      }\n    });\n  }\n};\n\nfunction isCategory(axisModel) {\n  return axisModel.get('type') === 'category';\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, isString } from 'zrender/lib/core/util';\nexport function enableDataStack(seriesModel, dimensionInfoList, opt) {\n  opt = opt || {};\n  var byIndex = opt.byIndex;\n  var stackedCoordDimension = opt.stackedCoordDimension;\n  var mayStack = !!(seriesModel && seriesModel.get('stack'));\n  var stackedByDimInfo;\n  var stackedDimInfo;\n  var stackResultDimension;\n  var stackedOverDimension;\n  each(dimensionInfoList, function (dimensionInfo, index) {\n    if (isString(dimensionInfo)) {\n      dimensionInfoList[index] = dimensionInfo = {\n        name: dimensionInfo\n      };\n    }\n\n    if (mayStack && !dimensionInfo.isExtraCoord) {\n      if (!byIndex && !stackedByDimInfo && dimensionInfo.ordinalMeta) {\n        stackedByDimInfo = dimensionInfo;\n      }\n\n      if (!stackedDimInfo && dimensionInfo.type !== 'ordinal' && dimensionInfo.type !== 'time' && (!stackedCoordDimension || stackedCoordDimension === dimensionInfo.coordDim)) {\n        stackedDimInfo = dimensionInfo;\n      }\n    }\n  });\n\n  if (stackedDimInfo && !byIndex && !stackedByDimInfo) {\n    byIndex = true;\n  }\n\n  if (stackedDimInfo) {\n    stackResultDimension = '__\\0ecstackresult';\n    stackedOverDimension = '__\\0ecstackedover';\n\n    if (stackedByDimInfo) {\n      stackedByDimInfo.createInvertedIndices = true;\n    }\n\n    var stackedDimCoordDim_1 = stackedDimInfo.coordDim;\n    var stackedDimType = stackedDimInfo.type;\n    var stackedDimCoordIndex_1 = 0;\n    each(dimensionInfoList, function (dimensionInfo) {\n      if (dimensionInfo.coordDim === stackedDimCoordDim_1) {\n        stackedDimCoordIndex_1++;\n      }\n    });\n    dimensionInfoList.push({\n      name: stackResultDimension,\n      coordDim: stackedDimCoordDim_1,\n      coordDimIndex: stackedDimCoordIndex_1,\n      type: stackedDimType,\n      isExtraCoord: true,\n      isCalculationCoord: true\n    });\n    stackedDimCoordIndex_1++;\n    dimensionInfoList.push({\n      name: stackedOverDimension,\n      coordDim: stackedOverDimension,\n      coordDimIndex: stackedDimCoordIndex_1,\n      type: stackedDimType,\n      isExtraCoord: true,\n      isCalculationCoord: true\n    });\n  }\n\n  return {\n    stackedDimension: stackedDimInfo && stackedDimInfo.name,\n    stackedByDimension: stackedByDimInfo && stackedByDimInfo.name,\n    isStackedByIndex: byIndex,\n    stackedOverDimension: stackedOverDimension,\n    stackResultDimension: stackResultDimension\n  };\n}\nexport function isDimensionStacked(data, stackedDim) {\n  return !!stackedDim && stackedDim === data.getCalculationInfo('stackedDimension');\n}\nexport function getStackedDimension(data, targetDim) {\n  return isDimensionStacked(data, targetDim) ? data.getCalculationInfo('stackResultDimension') : targetDim;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport List from '../../data/List';\nimport createDimensions from '../../data/helper/createDimensions';\nimport { getDimensionTypeByAxis } from '../../data/helper/dimensionHelper';\nimport { getDataItemValue } from '../../util/model';\nimport CoordinateSystem from '../../core/CoordinateSystem';\nimport { getCoordSysInfoBySeries } from '../../model/referHelper';\nimport { createSourceFromSeriesDataOption, isSourceInstance } from '../../data/Source';\nimport { enableDataStack } from '../../data/helper/dataStackHelper';\nimport { makeSeriesEncodeForAxisCoordSys } from '../../data/helper/sourceHelper';\nimport { SOURCE_FORMAT_ORIGINAL } from '../../util/types';\n\nfunction createListFromArray(source, seriesModel, opt) {\n  opt = opt || {};\n\n  if (!isSourceInstance(source)) {\n    source = createSourceFromSeriesDataOption(source);\n  }\n\n  var coordSysName = seriesModel.get('coordinateSystem');\n  var registeredCoordSys = CoordinateSystem.get(coordSysName);\n  var coordSysInfo = getCoordSysInfoBySeries(seriesModel);\n  var coordSysDimDefs;\n\n  if (coordSysInfo && coordSysInfo.coordSysDims) {\n    coordSysDimDefs = zrUtil.map(coordSysInfo.coordSysDims, function (dim) {\n      var dimInfo = {\n        name: dim\n      };\n      var axisModel = coordSysInfo.axisMap.get(dim);\n\n      if (axisModel) {\n        var axisType = axisModel.get('type');\n        dimInfo.type = getDimensionTypeByAxis(axisType);\n      }\n\n      return dimInfo;\n    });\n  }\n\n  if (!coordSysDimDefs) {\n    coordSysDimDefs = registeredCoordSys && (registeredCoordSys.getDimensionsInfo ? registeredCoordSys.getDimensionsInfo() : registeredCoordSys.dimensions.slice()) || ['x', 'y'];\n  }\n\n  var useEncodeDefaulter = opt.useEncodeDefaulter;\n  var dimInfoList = createDimensions(source, {\n    coordDimensions: coordSysDimDefs,\n    generateCoord: opt.generateCoord,\n    encodeDefaulter: zrUtil.isFunction(useEncodeDefaulter) ? useEncodeDefaulter : useEncodeDefaulter ? zrUtil.curry(makeSeriesEncodeForAxisCoordSys, coordSysDimDefs, seriesModel) : null\n  });\n  var firstCategoryDimIndex;\n  var hasNameEncode;\n  coordSysInfo && zrUtil.each(dimInfoList, function (dimInfo, dimIndex) {\n    var coordDim = dimInfo.coordDim;\n    var categoryAxisModel = coordSysInfo.categoryAxisMap.get(coordDim);\n\n    if (categoryAxisModel) {\n      if (firstCategoryDimIndex == null) {\n        firstCategoryDimIndex = dimIndex;\n      }\n\n      dimInfo.ordinalMeta = categoryAxisModel.getOrdinalMeta();\n\n      if (opt.createInvertedIndices) {\n        dimInfo.createInvertedIndices = true;\n      }\n    }\n\n    if (dimInfo.otherDims.itemName != null) {\n      hasNameEncode = true;\n    }\n  });\n\n  if (!hasNameEncode && firstCategoryDimIndex != null) {\n    dimInfoList[firstCategoryDimIndex].otherDims.itemName = 0;\n  }\n\n  var stackCalculationInfo = enableDataStack(seriesModel, dimInfoList);\n  var list = new List(dimInfoList, seriesModel);\n  list.setCalculationInfo(stackCalculationInfo);\n  var dimValueGetter = firstCategoryDimIndex != null && isNeedCompleteOrdinalData(source) ? function (itemOpt, dimName, dataIndex, dimIndex) {\n    return dimIndex === firstCategoryDimIndex ? dataIndex : this.defaultDimValueGetter(itemOpt, dimName, dataIndex, dimIndex);\n  } : null;\n  list.hasItemOption = false;\n  list.initData(source, null, dimValueGetter);\n  return list;\n}\n\nfunction isNeedCompleteOrdinalData(source) {\n  if (source.sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n    var sampleItem = firstDataNotNull(source.data || []);\n    return sampleItem != null && !zrUtil.isArray(getDataItemValue(sampleItem));\n  }\n}\n\nfunction firstDataNotNull(data) {\n  var i = 0;\n\n  while (i < data.length && data[i] == null) {\n    i++;\n  }\n\n  return data[i];\n}\n\nexport default createListFromArray;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as clazzUtil from '../util/clazz';\n\nvar Scale = function () {\n  function Scale(setting) {\n    this._setting = setting || {};\n    this._extent = [Infinity, -Infinity];\n  }\n\n  Scale.prototype.getSetting = function (name) {\n    return this._setting[name];\n  };\n\n  Scale.prototype.unionExtent = function (other) {\n    var extent = this._extent;\n    other[0] < extent[0] && (extent[0] = other[0]);\n    other[1] > extent[1] && (extent[1] = other[1]);\n  };\n\n  Scale.prototype.unionExtentFromData = function (data, dim) {\n    this.unionExtent(data.getApproximateExtent(dim));\n  };\n\n  Scale.prototype.getExtent = function () {\n    return this._extent.slice();\n  };\n\n  Scale.prototype.setExtent = function (start, end) {\n    var thisExtent = this._extent;\n\n    if (!isNaN(start)) {\n      thisExtent[0] = start;\n    }\n\n    if (!isNaN(end)) {\n      thisExtent[1] = end;\n    }\n  };\n\n  Scale.prototype.isInExtentRange = function (value) {\n    return this._extent[0] <= value && this._extent[1] >= value;\n  };\n\n  Scale.prototype.isBlank = function () {\n    return this._isBlank;\n  };\n\n  Scale.prototype.setBlank = function (isBlank) {\n    this._isBlank = isBlank;\n  };\n\n  return Scale;\n}();\n\nclazzUtil.enableClassManagement(Scale);\nexport default Scale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, isObject, map } from 'zrender/lib/core/util';\n\nvar OrdinalMeta = function () {\n  function OrdinalMeta(opt) {\n    this.categories = opt.categories || [];\n    this._needCollect = opt.needCollect;\n    this._deduplication = opt.deduplication;\n  }\n\n  OrdinalMeta.createByAxisModel = function (axisModel) {\n    var option = axisModel.option;\n    var data = option.data;\n    var categories = data && map(data, getName);\n    return new OrdinalMeta({\n      categories: categories,\n      needCollect: !categories,\n      deduplication: option.dedplication !== false\n    });\n  };\n\n  ;\n\n  OrdinalMeta.prototype.getOrdinal = function (category) {\n    return this._getOrCreateMap().get(category);\n  };\n\n  OrdinalMeta.prototype.parseAndCollect = function (category) {\n    var index;\n    var needCollect = this._needCollect;\n\n    if (typeof category !== 'string' && !needCollect) {\n      return category;\n    }\n\n    if (needCollect && !this._deduplication) {\n      index = this.categories.length;\n      this.categories[index] = category;\n      return index;\n    }\n\n    var map = this._getOrCreateMap();\n\n    index = map.get(category);\n\n    if (index == null) {\n      if (needCollect) {\n        index = this.categories.length;\n        this.categories[index] = category;\n        map.set(category, index);\n      } else {\n        index = NaN;\n      }\n    }\n\n    return index;\n  };\n\n  OrdinalMeta.prototype._getOrCreateMap = function () {\n    return this._map || (this._map = createHashMap(this.categories));\n  };\n\n  return OrdinalMeta;\n}();\n\nfunction getName(obj) {\n  if (isObject(obj) && obj.value != null) {\n    return obj.value;\n  } else {\n    return obj + '';\n  }\n}\n\nexport default OrdinalMeta;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as numberUtil from '../util/number';\nvar roundNumber = numberUtil.round;\nexport function intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval) {\n  var result = {};\n  var span = extent[1] - extent[0];\n  var interval = result.interval = numberUtil.nice(span / splitNumber, true);\n\n  if (minInterval != null && interval < minInterval) {\n    interval = result.interval = minInterval;\n  }\n\n  if (maxInterval != null && interval > maxInterval) {\n    interval = result.interval = maxInterval;\n  }\n\n  var precision = result.intervalPrecision = getIntervalPrecision(interval);\n  var niceTickExtent = result.niceTickExtent = [roundNumber(Math.ceil(extent[0] / interval) * interval, precision), roundNumber(Math.floor(extent[1] / interval) * interval, precision)];\n  fixExtent(niceTickExtent, extent);\n  return result;\n}\nexport function getIntervalPrecision(interval) {\n  return numberUtil.getPrecisionSafe(interval) + 2;\n}\n\nfunction clamp(niceTickExtent, idx, extent) {\n  niceTickExtent[idx] = Math.max(Math.min(niceTickExtent[idx], extent[1]), extent[0]);\n}\n\nexport function fixExtent(niceTickExtent, extent) {\n  !isFinite(niceTickExtent[0]) && (niceTickExtent[0] = extent[0]);\n  !isFinite(niceTickExtent[1]) && (niceTickExtent[1] = extent[1]);\n  clamp(niceTickExtent, 0, extent);\n  clamp(niceTickExtent, 1, extent);\n\n  if (niceTickExtent[0] > niceTickExtent[1]) {\n    niceTickExtent[0] = niceTickExtent[1];\n  }\n}\nexport function contain(val, extent) {\n  return val >= extent[0] && val <= extent[1];\n}\nexport function normalize(val, extent) {\n  if (extent[1] === extent[0]) {\n    return 0.5;\n  }\n\n  return (val - extent[0]) / (extent[1] - extent[0]);\n}\nexport function scale(val, extent) {\n  return val * (extent[1] - extent[0]) + extent[0];\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Scale from './Scale';\nimport OrdinalMeta from '../data/OrdinalMeta';\nimport * as scaleHelper from './helper';\nimport { isArray, map, isObject } from 'zrender/lib/core/util';\n\nvar OrdinalScale = function (_super) {\n  __extends(OrdinalScale, _super);\n\n  function OrdinalScale(setting) {\n    var _this = _super.call(this, setting) || this;\n\n    _this.type = 'ordinal';\n\n    var ordinalMeta = _this.getSetting('ordinalMeta');\n\n    if (!ordinalMeta) {\n      ordinalMeta = new OrdinalMeta({});\n    }\n\n    if (isArray(ordinalMeta)) {\n      ordinalMeta = new OrdinalMeta({\n        categories: map(ordinalMeta, function (item) {\n          return isObject(item) ? item.value : item;\n        })\n      });\n    }\n\n    _this._ordinalMeta = ordinalMeta;\n    _this._extent = _this.getSetting('extent') || [0, ordinalMeta.categories.length - 1];\n    return _this;\n  }\n\n  OrdinalScale.prototype.parse = function (val) {\n    return typeof val === 'string' ? this._ordinalMeta.getOrdinal(val) : Math.round(val);\n  };\n\n  OrdinalScale.prototype.contain = function (rank) {\n    rank = this.parse(rank);\n    return scaleHelper.contain(rank, this._extent) && this._ordinalMeta.categories[rank] != null;\n  };\n\n  OrdinalScale.prototype.normalize = function (val) {\n    val = this._getTickNumber(this.parse(val));\n    return scaleHelper.normalize(val, this._extent);\n  };\n\n  OrdinalScale.prototype.scale = function (val) {\n    val = Math.round(scaleHelper.scale(val, this._extent));\n    return this.getRawOrdinalNumber(val);\n  };\n\n  OrdinalScale.prototype.getTicks = function () {\n    var ticks = [];\n    var extent = this._extent;\n    var rank = extent[0];\n\n    while (rank <= extent[1]) {\n      ticks.push({\n        value: rank\n      });\n      rank++;\n    }\n\n    return ticks;\n  };\n\n  OrdinalScale.prototype.getMinorTicks = function (splitNumber) {\n    return;\n  };\n\n  OrdinalScale.prototype.setSortInfo = function (info) {\n    if (info == null) {\n      this._ordinalNumbersByTick = this._ticksByOrdinalNumber = null;\n      return;\n    }\n\n    var infoOrdinalNumbers = info.ordinalNumbers;\n    var ordinalsByTick = this._ordinalNumbersByTick = [];\n    var ticksByOrdinal = this._ticksByOrdinalNumber = [];\n    var tickNum = 0;\n    var allCategoryLen = this._ordinalMeta.categories.length;\n\n    for (var len = Math.min(allCategoryLen, infoOrdinalNumbers.length); tickNum < len; ++tickNum) {\n      var ordinalNumber = infoOrdinalNumbers[tickNum];\n      ordinalsByTick[tickNum] = ordinalNumber;\n      ticksByOrdinal[ordinalNumber] = tickNum;\n    }\n\n    var unusedOrdinal = 0;\n\n    for (; tickNum < allCategoryLen; ++tickNum) {\n      while (ticksByOrdinal[unusedOrdinal] != null) {\n        unusedOrdinal++;\n      }\n\n      ;\n      ordinalsByTick.push(unusedOrdinal);\n      ticksByOrdinal[unusedOrdinal] = tickNum;\n    }\n  };\n\n  OrdinalScale.prototype._getTickNumber = function (ordinal) {\n    var ticksByOrdinalNumber = this._ticksByOrdinalNumber;\n    return ticksByOrdinalNumber && ordinal >= 0 && ordinal < ticksByOrdinalNumber.length ? ticksByOrdinalNumber[ordinal] : ordinal;\n  };\n\n  OrdinalScale.prototype.getRawOrdinalNumber = function (tickNumber) {\n    var ordinalNumbersByTick = this._ordinalNumbersByTick;\n    return ordinalNumbersByTick && tickNumber >= 0 && tickNumber < ordinalNumbersByTick.length ? ordinalNumbersByTick[tickNumber] : tickNumber;\n  };\n\n  OrdinalScale.prototype.getLabel = function (tick) {\n    if (!this.isBlank()) {\n      var ordinalNumber = this.getRawOrdinalNumber(tick.value);\n      var cateogry = this._ordinalMeta.categories[ordinalNumber];\n      return cateogry == null ? '' : cateogry + '';\n    }\n  };\n\n  OrdinalScale.prototype.count = function () {\n    return this._extent[1] - this._extent[0] + 1;\n  };\n\n  OrdinalScale.prototype.unionExtentFromData = function (data, dim) {\n    this.unionExtent(data.getApproximateExtent(dim));\n  };\n\n  OrdinalScale.prototype.isInExtentRange = function (value) {\n    value = this._getTickNumber(value);\n    return this._extent[0] <= value && this._extent[1] >= value;\n  };\n\n  OrdinalScale.prototype.getOrdinalMeta = function () {\n    return this._ordinalMeta;\n  };\n\n  OrdinalScale.prototype.niceTicks = function () {};\n\n  OrdinalScale.prototype.niceExtent = function () {};\n\n  OrdinalScale.type = 'ordinal';\n  return OrdinalScale;\n}(Scale);\n\nScale.registerClass(OrdinalScale);\nexport default OrdinalScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as numberUtil from '../util/number';\nimport * as formatUtil from '../util/format';\nimport Scale from './Scale';\nimport * as helper from './helper';\nvar roundNumber = numberUtil.round;\n\nvar IntervalScale = function (_super) {\n  __extends(IntervalScale, _super);\n\n  function IntervalScale() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'interval';\n    _this._interval = 0;\n    _this._intervalPrecision = 2;\n    return _this;\n  }\n\n  IntervalScale.prototype.parse = function (val) {\n    return val;\n  };\n\n  IntervalScale.prototype.contain = function (val) {\n    return helper.contain(val, this._extent);\n  };\n\n  IntervalScale.prototype.normalize = function (val) {\n    return helper.normalize(val, this._extent);\n  };\n\n  IntervalScale.prototype.scale = function (val) {\n    return helper.scale(val, this._extent);\n  };\n\n  IntervalScale.prototype.setExtent = function (start, end) {\n    var thisExtent = this._extent;\n\n    if (!isNaN(start)) {\n      thisExtent[0] = parseFloat(start);\n    }\n\n    if (!isNaN(end)) {\n      thisExtent[1] = parseFloat(end);\n    }\n  };\n\n  IntervalScale.prototype.unionExtent = function (other) {\n    var extent = this._extent;\n    other[0] < extent[0] && (extent[0] = other[0]);\n    other[1] > extent[1] && (extent[1] = other[1]);\n    this.setExtent(extent[0], extent[1]);\n  };\n\n  IntervalScale.prototype.getInterval = function () {\n    return this._interval;\n  };\n\n  IntervalScale.prototype.setInterval = function (interval) {\n    this._interval = interval;\n    this._niceExtent = this._extent.slice();\n    this._intervalPrecision = helper.getIntervalPrecision(interval);\n  };\n\n  IntervalScale.prototype.getTicks = function (expandToNicedExtent) {\n    var interval = this._interval;\n    var extent = this._extent;\n    var niceTickExtent = this._niceExtent;\n    var intervalPrecision = this._intervalPrecision;\n    var ticks = [];\n\n    if (!interval) {\n      return ticks;\n    }\n\n    var safeLimit = 10000;\n\n    if (extent[0] < niceTickExtent[0]) {\n      if (expandToNicedExtent) {\n        ticks.push({\n          value: roundNumber(niceTickExtent[0] - interval, intervalPrecision)\n        });\n      } else {\n        ticks.push({\n          value: extent[0]\n        });\n      }\n    }\n\n    var tick = niceTickExtent[0];\n\n    while (tick <= niceTickExtent[1]) {\n      ticks.push({\n        value: tick\n      });\n      tick = roundNumber(tick + interval, intervalPrecision);\n\n      if (tick === ticks[ticks.length - 1].value) {\n        break;\n      }\n\n      if (ticks.length > safeLimit) {\n        return [];\n      }\n    }\n\n    var lastNiceTick = ticks.length ? ticks[ticks.length - 1].value : niceTickExtent[1];\n\n    if (extent[1] > lastNiceTick) {\n      if (expandToNicedExtent) {\n        ticks.push({\n          value: roundNumber(lastNiceTick + interval, intervalPrecision)\n        });\n      } else {\n        ticks.push({\n          value: extent[1]\n        });\n      }\n    }\n\n    return ticks;\n  };\n\n  IntervalScale.prototype.getMinorTicks = function (splitNumber) {\n    var ticks = this.getTicks(true);\n    var minorTicks = [];\n    var extent = this.getExtent();\n\n    for (var i = 1; i < ticks.length; i++) {\n      var nextTick = ticks[i];\n      var prevTick = ticks[i - 1];\n      var count = 0;\n      var minorTicksGroup = [];\n      var interval = nextTick.value - prevTick.value;\n      var minorInterval = interval / splitNumber;\n\n      while (count < splitNumber - 1) {\n        var minorTick = roundNumber(prevTick.value + (count + 1) * minorInterval);\n\n        if (minorTick > extent[0] && minorTick < extent[1]) {\n          minorTicksGroup.push(minorTick);\n        }\n\n        count++;\n      }\n\n      minorTicks.push(minorTicksGroup);\n    }\n\n    return minorTicks;\n  };\n\n  IntervalScale.prototype.getLabel = function (data, opt) {\n    if (data == null) {\n      return '';\n    }\n\n    var precision = opt && opt.precision;\n\n    if (precision == null) {\n      precision = numberUtil.getPrecisionSafe(data.value) || 0;\n    } else if (precision === 'auto') {\n      precision = this._intervalPrecision;\n    }\n\n    var dataNum = roundNumber(data.value, precision, true);\n    return formatUtil.addCommas(dataNum);\n  };\n\n  IntervalScale.prototype.niceTicks = function (splitNumber, minInterval, maxInterval) {\n    splitNumber = splitNumber || 5;\n    var extent = this._extent;\n    var span = extent[1] - extent[0];\n\n    if (!isFinite(span)) {\n      return;\n    }\n\n    if (span < 0) {\n      span = -span;\n      extent.reverse();\n    }\n\n    var result = helper.intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval);\n    this._intervalPrecision = result.intervalPrecision;\n    this._interval = result.interval;\n    this._niceExtent = result.niceTickExtent;\n  };\n\n  IntervalScale.prototype.niceExtent = function (opt) {\n    var extent = this._extent;\n\n    if (extent[0] === extent[1]) {\n      if (extent[0] !== 0) {\n        var expandSize = extent[0];\n\n        if (!opt.fixMax) {\n          extent[1] += expandSize / 2;\n          extent[0] -= expandSize / 2;\n        } else {\n          extent[0] -= expandSize / 2;\n        }\n      } else {\n        extent[1] = 1;\n      }\n    }\n\n    var span = extent[1] - extent[0];\n\n    if (!isFinite(span)) {\n      extent[0] = 0;\n      extent[1] = 1;\n    }\n\n    this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\n    var interval = this._interval;\n\n    if (!opt.fixMin) {\n      extent[0] = roundNumber(Math.floor(extent[0] / interval) * interval);\n    }\n\n    if (!opt.fixMax) {\n      extent[1] = roundNumber(Math.ceil(extent[1] / interval) * interval);\n    }\n  };\n\n  IntervalScale.type = 'interval';\n  return IntervalScale;\n}(Scale);\n\nScale.registerClass(IntervalScale);\nexport default IntervalScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parsePercent } from '../util/number';\nimport { isDimensionStacked } from '../data/helper/dataStackHelper';\nimport createRenderPlanner from '../chart/helper/createRenderPlanner';\nvar STACK_PREFIX = '__ec_stack_';\nvar LARGE_BAR_MIN_WIDTH = 0.5;\nvar LargeArr = typeof Float32Array !== 'undefined' ? Float32Array : Array;\n\nfunction getSeriesStackId(seriesModel) {\n  return seriesModel.get('stack') || STACK_PREFIX + seriesModel.seriesIndex;\n}\n\nfunction getAxisKey(axis) {\n  return axis.dim + axis.index;\n}\n\nexport function getLayoutOnAxis(opt) {\n  var params = [];\n  var baseAxis = opt.axis;\n  var axisKey = 'axis0';\n\n  if (baseAxis.type !== 'category') {\n    return;\n  }\n\n  var bandWidth = baseAxis.getBandWidth();\n\n  for (var i = 0; i < opt.count || 0; i++) {\n    params.push(zrUtil.defaults({\n      bandWidth: bandWidth,\n      axisKey: axisKey,\n      stackId: STACK_PREFIX + i\n    }, opt));\n  }\n\n  var widthAndOffsets = doCalBarWidthAndOffset(params);\n  var result = [];\n\n  for (var i = 0; i < opt.count; i++) {\n    var item = widthAndOffsets[axisKey][STACK_PREFIX + i];\n    item.offsetCenter = item.offset + item.width / 2;\n    result.push(item);\n  }\n\n  return result;\n}\nexport function prepareLayoutBarSeries(seriesType, ecModel) {\n  var seriesModels = [];\n  ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n    if (isOnCartesian(seriesModel) && !isInLargeMode(seriesModel)) {\n      seriesModels.push(seriesModel);\n    }\n  });\n  return seriesModels;\n}\n\nfunction getValueAxesMinGaps(barSeries) {\n  var axisValues = {};\n  zrUtil.each(barSeries, function (seriesModel) {\n    var cartesian = seriesModel.coordinateSystem;\n    var baseAxis = cartesian.getBaseAxis();\n\n    if (baseAxis.type !== 'time' && baseAxis.type !== 'value') {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var key = baseAxis.dim + '_' + baseAxis.index;\n    var dim = data.mapDimension(baseAxis.dim);\n\n    for (var i = 0, cnt = data.count(); i < cnt; ++i) {\n      var value = data.get(dim, i);\n\n      if (!axisValues[key]) {\n        axisValues[key] = [value];\n      } else {\n        axisValues[key].push(value);\n      }\n    }\n  });\n  var axisMinGaps = {};\n\n  for (var key in axisValues) {\n    if (axisValues.hasOwnProperty(key)) {\n      var valuesInAxis = axisValues[key];\n\n      if (valuesInAxis) {\n        valuesInAxis.sort(function (a, b) {\n          return a - b;\n        });\n        var min = null;\n\n        for (var j = 1; j < valuesInAxis.length; ++j) {\n          var delta = valuesInAxis[j] - valuesInAxis[j - 1];\n\n          if (delta > 0) {\n            min = min === null ? delta : Math.min(min, delta);\n          }\n        }\n\n        axisMinGaps[key] = min;\n      }\n    }\n  }\n\n  return axisMinGaps;\n}\n\nexport function makeColumnLayout(barSeries) {\n  var axisMinGaps = getValueAxesMinGaps(barSeries);\n  var seriesInfoList = [];\n  zrUtil.each(barSeries, function (seriesModel) {\n    var cartesian = seriesModel.coordinateSystem;\n    var baseAxis = cartesian.getBaseAxis();\n    var axisExtent = baseAxis.getExtent();\n    var bandWidth;\n\n    if (baseAxis.type === 'category') {\n      bandWidth = baseAxis.getBandWidth();\n    } else if (baseAxis.type === 'value' || baseAxis.type === 'time') {\n      var key = baseAxis.dim + '_' + baseAxis.index;\n      var minGap = axisMinGaps[key];\n      var extentSpan = Math.abs(axisExtent[1] - axisExtent[0]);\n      var scale = baseAxis.scale.getExtent();\n      var scaleSpan = Math.abs(scale[1] - scale[0]);\n      bandWidth = minGap ? extentSpan / scaleSpan * minGap : extentSpan;\n    } else {\n      var data = seriesModel.getData();\n      bandWidth = Math.abs(axisExtent[1] - axisExtent[0]) / data.count();\n    }\n\n    var barWidth = parsePercent(seriesModel.get('barWidth'), bandWidth);\n    var barMaxWidth = parsePercent(seriesModel.get('barMaxWidth'), bandWidth);\n    var barMinWidth = parsePercent(seriesModel.get('barMinWidth') || 1, bandWidth);\n    var barGap = seriesModel.get('barGap');\n    var barCategoryGap = seriesModel.get('barCategoryGap');\n    seriesInfoList.push({\n      bandWidth: bandWidth,\n      barWidth: barWidth,\n      barMaxWidth: barMaxWidth,\n      barMinWidth: barMinWidth,\n      barGap: barGap,\n      barCategoryGap: barCategoryGap,\n      axisKey: getAxisKey(baseAxis),\n      stackId: getSeriesStackId(seriesModel)\n    });\n  });\n  return doCalBarWidthAndOffset(seriesInfoList);\n}\n\nfunction doCalBarWidthAndOffset(seriesInfoList) {\n  var columnsMap = {};\n  zrUtil.each(seriesInfoList, function (seriesInfo, idx) {\n    var axisKey = seriesInfo.axisKey;\n    var bandWidth = seriesInfo.bandWidth;\n    var columnsOnAxis = columnsMap[axisKey] || {\n      bandWidth: bandWidth,\n      remainedWidth: bandWidth,\n      autoWidthCount: 0,\n      categoryGap: null,\n      gap: '20%',\n      stacks: {}\n    };\n    var stacks = columnsOnAxis.stacks;\n    columnsMap[axisKey] = columnsOnAxis;\n    var stackId = seriesInfo.stackId;\n\n    if (!stacks[stackId]) {\n      columnsOnAxis.autoWidthCount++;\n    }\n\n    stacks[stackId] = stacks[stackId] || {\n      width: 0,\n      maxWidth: 0\n    };\n    var barWidth = seriesInfo.barWidth;\n\n    if (barWidth && !stacks[stackId].width) {\n      stacks[stackId].width = barWidth;\n      barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\n      columnsOnAxis.remainedWidth -= barWidth;\n    }\n\n    var barMaxWidth = seriesInfo.barMaxWidth;\n    barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\n    var barMinWidth = seriesInfo.barMinWidth;\n    barMinWidth && (stacks[stackId].minWidth = barMinWidth);\n    var barGap = seriesInfo.barGap;\n    barGap != null && (columnsOnAxis.gap = barGap);\n    var barCategoryGap = seriesInfo.barCategoryGap;\n    barCategoryGap != null && (columnsOnAxis.categoryGap = barCategoryGap);\n  });\n  var result = {};\n  zrUtil.each(columnsMap, function (columnsOnAxis, coordSysName) {\n    result[coordSysName] = {};\n    var stacks = columnsOnAxis.stacks;\n    var bandWidth = columnsOnAxis.bandWidth;\n    var categoryGapPercent = columnsOnAxis.categoryGap;\n\n    if (categoryGapPercent == null) {\n      var columnCount = zrUtil.keys(stacks).length;\n      categoryGapPercent = Math.max(35 - columnCount * 4, 15) + '%';\n    }\n\n    var categoryGap = parsePercent(categoryGapPercent, bandWidth);\n    var barGapPercent = parsePercent(columnsOnAxis.gap, 1);\n    var remainedWidth = columnsOnAxis.remainedWidth;\n    var autoWidthCount = columnsOnAxis.autoWidthCount;\n    var autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n    autoWidth = Math.max(autoWidth, 0);\n    zrUtil.each(stacks, function (column) {\n      var maxWidth = column.maxWidth;\n      var minWidth = column.minWidth;\n\n      if (!column.width) {\n        var finalWidth = autoWidth;\n\n        if (maxWidth && maxWidth < finalWidth) {\n          finalWidth = Math.min(maxWidth, remainedWidth);\n        }\n\n        if (minWidth && minWidth > finalWidth) {\n          finalWidth = minWidth;\n        }\n\n        if (finalWidth !== autoWidth) {\n          column.width = finalWidth;\n          remainedWidth -= finalWidth + barGapPercent * finalWidth;\n          autoWidthCount--;\n        }\n      } else {\n        var finalWidth = column.width;\n\n        if (maxWidth) {\n          finalWidth = Math.min(finalWidth, maxWidth);\n        }\n\n        if (minWidth) {\n          finalWidth = Math.max(finalWidth, minWidth);\n        }\n\n        column.width = finalWidth;\n        remainedWidth -= finalWidth + barGapPercent * finalWidth;\n        autoWidthCount--;\n      }\n    });\n    autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n    autoWidth = Math.max(autoWidth, 0);\n    var widthSum = 0;\n    var lastColumn;\n    zrUtil.each(stacks, function (column, idx) {\n      if (!column.width) {\n        column.width = autoWidth;\n      }\n\n      lastColumn = column;\n      widthSum += column.width * (1 + barGapPercent);\n    });\n\n    if (lastColumn) {\n      widthSum -= lastColumn.width * barGapPercent;\n    }\n\n    var offset = -widthSum / 2;\n    zrUtil.each(stacks, function (column, stackId) {\n      result[coordSysName][stackId] = result[coordSysName][stackId] || {\n        bandWidth: bandWidth,\n        offset: offset,\n        width: column.width\n      };\n      offset += column.width * (1 + barGapPercent);\n    });\n  });\n  return result;\n}\n\nfunction retrieveColumnLayout(barWidthAndOffset, axis, seriesModel) {\n  if (barWidthAndOffset && axis) {\n    var result = barWidthAndOffset[getAxisKey(axis)];\n\n    if (result != null && seriesModel != null) {\n      return result[getSeriesStackId(seriesModel)];\n    }\n\n    return result;\n  }\n}\n\nexport { retrieveColumnLayout };\nexport function layout(seriesType, ecModel) {\n  var seriesModels = prepareLayoutBarSeries(seriesType, ecModel);\n  var barWidthAndOffset = makeColumnLayout(seriesModels);\n  var lastStackCoords = {};\n  zrUtil.each(seriesModels, function (seriesModel) {\n    var data = seriesModel.getData();\n    var cartesian = seriesModel.coordinateSystem;\n    var baseAxis = cartesian.getBaseAxis();\n    var stackId = getSeriesStackId(seriesModel);\n    var columnLayoutInfo = barWidthAndOffset[getAxisKey(baseAxis)][stackId];\n    var columnOffset = columnLayoutInfo.offset;\n    var columnWidth = columnLayoutInfo.width;\n    var valueAxis = cartesian.getOtherAxis(baseAxis);\n    var barMinHeight = seriesModel.get('barMinHeight') || 0;\n    lastStackCoords[stackId] = lastStackCoords[stackId] || [];\n    data.setLayout({\n      bandWidth: columnLayoutInfo.bandWidth,\n      offset: columnOffset,\n      size: columnWidth\n    });\n    var valueDim = data.mapDimension(valueAxis.dim);\n    var baseDim = data.mapDimension(baseAxis.dim);\n    var stacked = isDimensionStacked(data, valueDim);\n    var isValueAxisH = valueAxis.isHorizontal();\n    var valueAxisStart = getValueAxisStart(baseAxis, valueAxis, stacked);\n\n    for (var idx = 0, len = data.count(); idx < len; idx++) {\n      var value = data.get(valueDim, idx);\n      var baseValue = data.get(baseDim, idx);\n      var sign = value >= 0 ? 'p' : 'n';\n      var baseCoord = valueAxisStart;\n\n      if (stacked) {\n        if (!lastStackCoords[stackId][baseValue]) {\n          lastStackCoords[stackId][baseValue] = {\n            p: valueAxisStart,\n            n: valueAxisStart\n          };\n        }\n\n        baseCoord = lastStackCoords[stackId][baseValue][sign];\n      }\n\n      var x = void 0;\n      var y = void 0;\n      var width = void 0;\n      var height = void 0;\n\n      if (isValueAxisH) {\n        var coord = cartesian.dataToPoint([value, baseValue]);\n        x = baseCoord;\n        y = coord[1] + columnOffset;\n        width = coord[0] - valueAxisStart;\n        height = columnWidth;\n\n        if (Math.abs(width) < barMinHeight) {\n          width = (width < 0 ? -1 : 1) * barMinHeight;\n        }\n\n        if (!isNaN(width)) {\n          stacked && (lastStackCoords[stackId][baseValue][sign] += width);\n        }\n      } else {\n        var coord = cartesian.dataToPoint([baseValue, value]);\n        x = coord[0] + columnOffset;\n        y = baseCoord;\n        width = columnWidth;\n        height = coord[1] - valueAxisStart;\n\n        if (Math.abs(height) < barMinHeight) {\n          height = (height <= 0 ? -1 : 1) * barMinHeight;\n        }\n\n        if (!isNaN(height)) {\n          stacked && (lastStackCoords[stackId][baseValue][sign] += height);\n        }\n      }\n\n      data.setItemLayout(idx, {\n        x: x,\n        y: y,\n        width: width,\n        height: height\n      });\n    }\n  });\n}\nexport var largeLayout = {\n  seriesType: 'bar',\n  plan: createRenderPlanner(),\n  reset: function (seriesModel) {\n    if (!isOnCartesian(seriesModel) || !isInLargeMode(seriesModel)) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var cartesian = seriesModel.coordinateSystem;\n    var coordLayout = cartesian.master.getRect();\n    var baseAxis = cartesian.getBaseAxis();\n    var valueAxis = cartesian.getOtherAxis(baseAxis);\n    var valueDim = data.mapDimension(valueAxis.dim);\n    var baseDim = data.mapDimension(baseAxis.dim);\n    var valueAxisHorizontal = valueAxis.isHorizontal();\n    var valueDimIdx = valueAxisHorizontal ? 0 : 1;\n    var barWidth = retrieveColumnLayout(makeColumnLayout([seriesModel]), baseAxis, seriesModel).width;\n\n    if (!(barWidth > LARGE_BAR_MIN_WIDTH)) {\n      barWidth = LARGE_BAR_MIN_WIDTH;\n    }\n\n    return {\n      progress: function (params, data) {\n        var count = params.count;\n        var largePoints = new LargeArr(count * 2);\n        var largeBackgroundPoints = new LargeArr(count * 2);\n        var largeDataIndices = new LargeArr(count);\n        var dataIndex;\n        var coord = [];\n        var valuePair = [];\n        var pointsOffset = 0;\n        var idxOffset = 0;\n\n        while ((dataIndex = params.next()) != null) {\n          valuePair[valueDimIdx] = data.get(valueDim, dataIndex);\n          valuePair[1 - valueDimIdx] = data.get(baseDim, dataIndex);\n          coord = cartesian.dataToPoint(valuePair, null, coord);\n          largeBackgroundPoints[pointsOffset] = valueAxisHorizontal ? coordLayout.x + coordLayout.width : coord[0];\n          largePoints[pointsOffset++] = coord[0];\n          largeBackgroundPoints[pointsOffset] = valueAxisHorizontal ? coord[1] : coordLayout.y + coordLayout.height;\n          largePoints[pointsOffset++] = coord[1];\n          largeDataIndices[idxOffset++] = dataIndex;\n        }\n\n        data.setLayout({\n          largePoints: largePoints,\n          largeDataIndices: largeDataIndices,\n          largeBackgroundPoints: largeBackgroundPoints,\n          barWidth: barWidth,\n          valueAxisStart: getValueAxisStart(baseAxis, valueAxis, false),\n          backgroundStart: valueAxisHorizontal ? coordLayout.x : coordLayout.y,\n          valueAxisHorizontal: valueAxisHorizontal\n        });\n      }\n    };\n  }\n};\n\nfunction isOnCartesian(seriesModel) {\n  return seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'cartesian2d';\n}\n\nfunction isInLargeMode(seriesModel) {\n  return seriesModel.pipelineContext && seriesModel.pipelineContext.large;\n}\n\nfunction getValueAxisStart(baseAxis, valueAxis, stacked) {\n  return valueAxis.toGlobalCoord(valueAxis.dataToCoord(valueAxis.type === 'log' ? 1 : 0));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as numberUtil from '../util/number';\nimport { ONE_SECOND, ONE_MINUTE, ONE_HOUR, ONE_DAY, ONE_YEAR, format, leveledFormat, getUnitValue, timeUnits, fullLeveledFormatter, getPrimaryTimeUnit, isPrimaryTimeUnit, getDefaultFormatPrecisionOfInterval, fullYearGetterName, monthSetterName, fullYearSetterName, dateSetterName, hoursGetterName, hoursSetterName, minutesSetterName, secondsSetterName, millisecondsSetterName, monthGetterName, dateGetterName, minutesGetterName, secondsGetterName, millisecondsGetterName } from '../util/time';\nimport * as scaleHelper from './helper';\nimport IntervalScale from './Interval';\nimport Scale from './Scale';\nimport { warn } from '../util/log';\nimport { filter, map } from 'zrender/lib/core/util';\n\nvar bisect = function (a, x, lo, hi) {\n  while (lo < hi) {\n    var mid = lo + hi >>> 1;\n\n    if (a[mid][1] < x) {\n      lo = mid + 1;\n    } else {\n      hi = mid;\n    }\n  }\n\n  return lo;\n};\n\nvar TimeScale = function (_super) {\n  __extends(TimeScale, _super);\n\n  function TimeScale(settings) {\n    var _this = _super.call(this, settings) || this;\n\n    _this.type = 'time';\n    return _this;\n  }\n\n  TimeScale.prototype.getLabel = function (tick) {\n    var useUTC = this.getSetting('useUTC');\n    return format(tick.value, fullLeveledFormatter[getDefaultFormatPrecisionOfInterval(getPrimaryTimeUnit(this._minLevelUnit))] || fullLeveledFormatter.second, useUTC, this.getSetting('locale'));\n  };\n\n  TimeScale.prototype.getFormattedLabel = function (tick, idx, labelFormatter) {\n    var isUTC = this.getSetting('useUTC');\n    var lang = this.getSetting('locale');\n    return leveledFormat(tick, idx, labelFormatter, lang, isUTC);\n  };\n\n  TimeScale.prototype.getTicks = function (expandToNicedExtent) {\n    var interval = this._interval;\n    var extent = this._extent;\n    var ticks = [];\n\n    if (!interval) {\n      return ticks;\n    }\n\n    ticks.push({\n      value: extent[0],\n      level: 0\n    });\n    var useUTC = this.getSetting('useUTC');\n    var innerTicks = getIntervalTicks(this._minLevelUnit, this._approxInterval, useUTC, extent);\n    ticks = ticks.concat(innerTicks);\n    ticks.push({\n      value: extent[1],\n      level: 0\n    });\n    return ticks;\n  };\n\n  TimeScale.prototype.niceExtent = function (opt) {\n    var extent = this._extent;\n\n    if (extent[0] === extent[1]) {\n      extent[0] -= ONE_DAY;\n      extent[1] += ONE_DAY;\n    }\n\n    if (extent[1] === -Infinity && extent[0] === Infinity) {\n      var d = new Date();\n      extent[1] = +new Date(d.getFullYear(), d.getMonth(), d.getDate());\n      extent[0] = extent[1] - ONE_DAY;\n    }\n\n    this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\n  };\n\n  TimeScale.prototype.niceTicks = function (approxTickNum, minInterval, maxInterval) {\n    approxTickNum = approxTickNum || 10;\n    var extent = this._extent;\n    var span = extent[1] - extent[0];\n    this._approxInterval = span / approxTickNum;\n\n    if (minInterval != null && this._approxInterval < minInterval) {\n      this._approxInterval = minInterval;\n    }\n\n    if (maxInterval != null && this._approxInterval > maxInterval) {\n      this._approxInterval = maxInterval;\n    }\n\n    var scaleIntervalsLen = scaleIntervals.length;\n    var idx = Math.min(bisect(scaleIntervals, this._approxInterval, 0, scaleIntervalsLen), scaleIntervalsLen - 1);\n    this._interval = scaleIntervals[idx][1];\n    this._minLevelUnit = scaleIntervals[Math.max(idx - 1, 0)][0];\n  };\n\n  TimeScale.prototype.parse = function (val) {\n    return typeof val === 'number' ? val : +numberUtil.parseDate(val);\n  };\n\n  TimeScale.prototype.contain = function (val) {\n    return scaleHelper.contain(this.parse(val), this._extent);\n  };\n\n  TimeScale.prototype.normalize = function (val) {\n    return scaleHelper.normalize(this.parse(val), this._extent);\n  };\n\n  TimeScale.prototype.scale = function (val) {\n    return scaleHelper.scale(val, this._extent);\n  };\n\n  TimeScale.type = 'time';\n  return TimeScale;\n}(IntervalScale);\n\nvar scaleIntervals = [['second', ONE_SECOND], ['minute', ONE_MINUTE], ['hour', ONE_HOUR], ['quarter-day', ONE_HOUR * 6], ['half-day', ONE_HOUR * 12], ['day', ONE_DAY * 1.2], ['half-week', ONE_DAY * 3.5], ['week', ONE_DAY * 7], ['month', ONE_DAY * 31], ['quarter', ONE_DAY * 95], ['half-year', ONE_YEAR / 2], ['year', ONE_YEAR]];\n\nfunction isUnitValueSame(unit, valueA, valueB, isUTC) {\n  var dateA = numberUtil.parseDate(valueA);\n  var dateB = numberUtil.parseDate(valueB);\n\n  var isSame = function (unit) {\n    return getUnitValue(dateA, unit, isUTC) === getUnitValue(dateB, unit, isUTC);\n  };\n\n  var isSameYear = function () {\n    return isSame('year');\n  };\n\n  var isSameMonth = function () {\n    return isSameYear() && isSame('month');\n  };\n\n  var isSameDay = function () {\n    return isSameMonth() && isSame('day');\n  };\n\n  var isSameHour = function () {\n    return isSameDay() && isSame('hour');\n  };\n\n  var isSameMinute = function () {\n    return isSameHour() && isSame('minute');\n  };\n\n  var isSameSecond = function () {\n    return isSameMinute() && isSame('second');\n  };\n\n  var isSameMilliSecond = function () {\n    return isSameSecond() && isSame('millisecond');\n  };\n\n  switch (unit) {\n    case 'year':\n      return isSameYear();\n\n    case 'month':\n      return isSameMonth();\n\n    case 'day':\n      return isSameDay();\n\n    case 'hour':\n      return isSameHour();\n\n    case 'minute':\n      return isSameMinute();\n\n    case 'second':\n      return isSameSecond();\n\n    case 'millisecond':\n      return isSameMilliSecond();\n  }\n}\n\nfunction getDateInterval(approxInterval, daysInMonth) {\n  approxInterval /= ONE_DAY;\n  return approxInterval > 16 ? 16 : approxInterval > 7.5 ? 7 : approxInterval > 3.5 ? 4 : approxInterval > 1.5 ? 2 : 1;\n}\n\nfunction getMonthInterval(approxInterval) {\n  var APPROX_ONE_MONTH = 30 * ONE_DAY;\n  approxInterval /= APPROX_ONE_MONTH;\n  return approxInterval > 6 ? 6 : approxInterval > 3 ? 3 : approxInterval > 2 ? 2 : 1;\n}\n\nfunction getHourInterval(approxInterval) {\n  approxInterval /= ONE_HOUR;\n  return approxInterval > 12 ? 12 : approxInterval > 6 ? 6 : approxInterval > 3.5 ? 4 : approxInterval > 2 ? 2 : 1;\n}\n\nfunction getMinutesAndSecondsInterval(approxInterval, isMinutes) {\n  approxInterval /= isMinutes ? ONE_MINUTE : ONE_SECOND;\n  return approxInterval > 30 ? 30 : approxInterval > 20 ? 20 : approxInterval > 15 ? 15 : approxInterval > 10 ? 10 : approxInterval > 5 ? 5 : approxInterval > 2 ? 2 : 1;\n}\n\nfunction getMillisecondsInterval(approxInterval) {\n  return numberUtil.nice(approxInterval, true);\n}\n\nfunction getFirstTimestampOfUnit(date, unitName, isUTC) {\n  var outDate = new Date(date);\n\n  switch (getPrimaryTimeUnit(unitName)) {\n    case 'year':\n    case 'month':\n      outDate[monthSetterName(isUTC)](0);\n\n    case 'day':\n      outDate[dateSetterName(isUTC)](1);\n\n    case 'hour':\n      outDate[hoursSetterName(isUTC)](0);\n\n    case 'minute':\n      outDate[minutesSetterName(isUTC)](0);\n\n    case 'second':\n      outDate[secondsSetterName(isUTC)](0);\n      outDate[millisecondsSetterName(isUTC)](0);\n  }\n\n  return outDate.getTime();\n}\n\nfunction getIntervalTicks(bottomUnitName, approxInterval, isUTC, extent) {\n  var safeLimit = 10000;\n  var unitNames = timeUnits;\n  var iter = 0;\n\n  function addTicksInSpan(interval, minTimestamp, maxTimestamp, getMethodName, setMethodName, isDate, out) {\n    var date = new Date(minTimestamp);\n    var dateTime = minTimestamp;\n    var d = date[getMethodName]();\n\n    while (dateTime < maxTimestamp && dateTime <= extent[1]) {\n      out.push({\n        value: dateTime\n      });\n      d += interval;\n      date[setMethodName](d);\n      dateTime = date.getTime();\n    }\n\n    out.push({\n      value: dateTime,\n      notAdd: true\n    });\n  }\n\n  function addLevelTicks(unitName, lastLevelTicks, levelTicks) {\n    var newAddedTicks = [];\n    var isFirstLevel = !lastLevelTicks.length;\n\n    if (isUnitValueSame(getPrimaryTimeUnit(unitName), extent[0], extent[1], isUTC)) {\n      return;\n    }\n\n    if (isFirstLevel) {\n      lastLevelTicks = [{\n        value: getFirstTimestampOfUnit(new Date(extent[0]), unitName, isUTC)\n      }, {\n        value: extent[1]\n      }];\n    }\n\n    for (var i = 0; i < lastLevelTicks.length - 1; i++) {\n      var startTick = lastLevelTicks[i].value;\n      var endTick = lastLevelTicks[i + 1].value;\n\n      if (startTick === endTick) {\n        continue;\n      }\n\n      var interval = void 0;\n      var getterName = void 0;\n      var setterName = void 0;\n      var isDate = false;\n\n      switch (unitName) {\n        case 'year':\n          interval = Math.max(1, Math.round(approxInterval / ONE_DAY / 365));\n          getterName = fullYearGetterName(isUTC);\n          setterName = fullYearSetterName(isUTC);\n          break;\n\n        case 'half-year':\n        case 'quarter':\n        case 'month':\n          interval = getMonthInterval(approxInterval);\n          getterName = monthGetterName(isUTC);\n          setterName = monthSetterName(isUTC);\n          break;\n\n        case 'week':\n        case 'half-week':\n        case 'day':\n          interval = getDateInterval(approxInterval, 31);\n          getterName = dateGetterName(isUTC);\n          setterName = dateSetterName(isUTC);\n          isDate = true;\n          break;\n\n        case 'half-day':\n        case 'quarter-day':\n        case 'hour':\n          interval = getHourInterval(approxInterval);\n          getterName = hoursGetterName(isUTC);\n          setterName = hoursSetterName(isUTC);\n          break;\n\n        case 'minute':\n          interval = getMinutesAndSecondsInterval(approxInterval, true);\n          getterName = minutesGetterName(isUTC);\n          setterName = minutesSetterName(isUTC);\n          break;\n\n        case 'second':\n          interval = getMinutesAndSecondsInterval(approxInterval, false);\n          getterName = secondsGetterName(isUTC);\n          setterName = secondsSetterName(isUTC);\n          break;\n\n        case 'millisecond':\n          interval = getMillisecondsInterval(approxInterval);\n          getterName = millisecondsGetterName(isUTC);\n          setterName = millisecondsSetterName(isUTC);\n          break;\n      }\n\n      addTicksInSpan(interval, startTick, endTick, getterName, setterName, isDate, newAddedTicks);\n\n      if (unitName === 'year' && levelTicks.length > 1 && i === 0) {\n        levelTicks.unshift({\n          value: levelTicks[0].value - interval\n        });\n      }\n    }\n\n    for (var i = 0; i < newAddedTicks.length; i++) {\n      levelTicks.push(newAddedTicks[i]);\n    }\n\n    return newAddedTicks;\n  }\n\n  var levelsTicks = [];\n  var currentLevelTicks = [];\n  var tickCount = 0;\n  var lastLevelTickCount = 0;\n\n  for (var i = 0; i < unitNames.length && iter++ < safeLimit; ++i) {\n    var primaryTimeUnit = getPrimaryTimeUnit(unitNames[i]);\n\n    if (!isPrimaryTimeUnit(unitNames[i])) {\n      continue;\n    }\n\n    addLevelTicks(unitNames[i], levelsTicks[levelsTicks.length - 1] || [], currentLevelTicks);\n    var nextPrimaryTimeUnit = unitNames[i + 1] ? getPrimaryTimeUnit(unitNames[i + 1]) : null;\n\n    if (primaryTimeUnit !== nextPrimaryTimeUnit) {\n      if (currentLevelTicks.length) {\n        lastLevelTickCount = tickCount;\n        currentLevelTicks.sort(function (a, b) {\n          return a.value - b.value;\n        });\n        var levelTicksRemoveDuplicated = [];\n\n        for (var i_1 = 0; i_1 < currentLevelTicks.length; ++i_1) {\n          var tickValue = currentLevelTicks[i_1].value;\n\n          if (i_1 === 0 || currentLevelTicks[i_1 - 1].value !== tickValue) {\n            levelTicksRemoveDuplicated.push(currentLevelTicks[i_1]);\n\n            if (tickValue >= extent[0] && tickValue <= extent[1]) {\n              tickCount++;\n            }\n          }\n        }\n\n        var targetTickNum = (extent[1] - extent[0]) / approxInterval;\n\n        if (tickCount > targetTickNum * 1.5 && lastLevelTickCount > targetTickNum / 1.5) {\n          break;\n        }\n\n        levelsTicks.push(levelTicksRemoveDuplicated);\n\n        if (tickCount > targetTickNum || bottomUnitName === unitNames[i]) {\n          break;\n        }\n      }\n\n      currentLevelTicks = [];\n    }\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (iter >= safeLimit) {\n      warn('Exceed safe limit.');\n    }\n  }\n\n  var levelsTicksInExtent = filter(map(levelsTicks, function (levelTicks) {\n    return filter(levelTicks, function (tick) {\n      return tick.value >= extent[0] && tick.value <= extent[1] && !tick.notAdd;\n    });\n  }), function (levelTicks) {\n    return levelTicks.length > 0;\n  });\n  var ticks = [];\n  var maxLevel = levelsTicksInExtent.length - 1;\n\n  for (var i = 0; i < levelsTicksInExtent.length; ++i) {\n    var levelTicks = levelsTicksInExtent[i];\n\n    for (var k = 0; k < levelTicks.length; ++k) {\n      ticks.push({\n        value: levelTicks[k].value,\n        level: maxLevel - i\n      });\n    }\n  }\n\n  ticks.sort(function (a, b) {\n    return a.value - b.value;\n  });\n  var result = [];\n\n  for (var i = 0; i < ticks.length; ++i) {\n    if (i === 0 || ticks[i].value !== ticks[i - 1].value) {\n      result.push(ticks[i]);\n    }\n  }\n\n  return result;\n}\n\nScale.registerClass(TimeScale);\nexport default TimeScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Scale from './Scale';\nimport * as numberUtil from '../util/number';\nimport * as scaleHelper from './helper';\nimport IntervalScale from './Interval';\nvar scaleProto = Scale.prototype;\nvar intervalScaleProto = IntervalScale.prototype;\nvar getPrecisionSafe = numberUtil.getPrecisionSafe;\nvar roundingErrorFix = numberUtil.round;\nvar mathFloor = Math.floor;\nvar mathCeil = Math.ceil;\nvar mathPow = Math.pow;\nvar mathLog = Math.log;\n\nvar LogScale = function (_super) {\n  __extends(LogScale, _super);\n\n  function LogScale() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'log';\n    _this.base = 10;\n    _this._originalScale = new IntervalScale();\n    _this._interval = 0;\n    return _this;\n  }\n\n  LogScale.prototype.getTicks = function (expandToNicedExtent) {\n    var originalScale = this._originalScale;\n    var extent = this._extent;\n    var originalExtent = originalScale.getExtent();\n    var ticks = intervalScaleProto.getTicks.call(this, expandToNicedExtent);\n    return zrUtil.map(ticks, function (tick) {\n      var val = tick.value;\n      var powVal = numberUtil.round(mathPow(this.base, val));\n      powVal = val === extent[0] && this._fixMin ? fixRoundingError(powVal, originalExtent[0]) : powVal;\n      powVal = val === extent[1] && this._fixMax ? fixRoundingError(powVal, originalExtent[1]) : powVal;\n      return {\n        value: powVal\n      };\n    }, this);\n  };\n\n  LogScale.prototype.setExtent = function (start, end) {\n    var base = this.base;\n    start = mathLog(start) / mathLog(base);\n    end = mathLog(end) / mathLog(base);\n    intervalScaleProto.setExtent.call(this, start, end);\n  };\n\n  LogScale.prototype.getExtent = function () {\n    var base = this.base;\n    var extent = scaleProto.getExtent.call(this);\n    extent[0] = mathPow(base, extent[0]);\n    extent[1] = mathPow(base, extent[1]);\n    var originalScale = this._originalScale;\n    var originalExtent = originalScale.getExtent();\n    this._fixMin && (extent[0] = fixRoundingError(extent[0], originalExtent[0]));\n    this._fixMax && (extent[1] = fixRoundingError(extent[1], originalExtent[1]));\n    return extent;\n  };\n\n  LogScale.prototype.unionExtent = function (extent) {\n    this._originalScale.unionExtent(extent);\n\n    var base = this.base;\n    extent[0] = mathLog(extent[0]) / mathLog(base);\n    extent[1] = mathLog(extent[1]) / mathLog(base);\n    scaleProto.unionExtent.call(this, extent);\n  };\n\n  LogScale.prototype.unionExtentFromData = function (data, dim) {\n    this.unionExtent(data.getApproximateExtent(dim));\n  };\n\n  LogScale.prototype.niceTicks = function (approxTickNum) {\n    approxTickNum = approxTickNum || 10;\n    var extent = this._extent;\n    var span = extent[1] - extent[0];\n\n    if (span === Infinity || span <= 0) {\n      return;\n    }\n\n    var interval = numberUtil.quantity(span);\n    var err = approxTickNum / span * interval;\n\n    if (err <= 0.5) {\n      interval *= 10;\n    }\n\n    while (!isNaN(interval) && Math.abs(interval) < 1 && Math.abs(interval) > 0) {\n      interval *= 10;\n    }\n\n    var niceExtent = [numberUtil.round(mathCeil(extent[0] / interval) * interval), numberUtil.round(mathFloor(extent[1] / interval) * interval)];\n    this._interval = interval;\n    this._niceExtent = niceExtent;\n  };\n\n  LogScale.prototype.niceExtent = function (opt) {\n    intervalScaleProto.niceExtent.call(this, opt);\n    this._fixMin = opt.fixMin;\n    this._fixMax = opt.fixMax;\n  };\n\n  LogScale.prototype.parse = function (val) {\n    return val;\n  };\n\n  LogScale.prototype.contain = function (val) {\n    val = mathLog(val) / mathLog(this.base);\n    return scaleHelper.contain(val, this._extent);\n  };\n\n  LogScale.prototype.normalize = function (val) {\n    val = mathLog(val) / mathLog(this.base);\n    return scaleHelper.normalize(val, this._extent);\n  };\n\n  LogScale.prototype.scale = function (val) {\n    val = scaleHelper.scale(val, this._extent);\n    return mathPow(this.base, val);\n  };\n\n  LogScale.type = 'log';\n  return LogScale;\n}(Scale);\n\nvar proto = LogScale.prototype;\nproto.getMinorTicks = intervalScaleProto.getMinorTicks;\nproto.getLabel = intervalScaleProto.getLabel;\n\nfunction fixRoundingError(val, originalVal) {\n  return roundingErrorFix(val, getPrecisionSafe(originalVal));\n}\n\nScale.registerClass(LogScale);\nexport default LogScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { assert, isArray, eqNaN, isFunction } from 'zrender/lib/core/util';\nimport { parsePercent } from 'zrender/lib/contain/text';\n\nvar ScaleRawExtentInfo = function () {\n  function ScaleRawExtentInfo(scale, model, originalExtent) {\n    this._prepareParams(scale, model, originalExtent);\n  }\n\n  ScaleRawExtentInfo.prototype._prepareParams = function (scale, model, dataExtent) {\n    if (dataExtent[1] < dataExtent[0]) {\n      dataExtent = [NaN, NaN];\n    }\n\n    this._dataMin = dataExtent[0];\n    this._dataMax = dataExtent[1];\n    var isOrdinal = this._isOrdinal = scale.type === 'ordinal';\n    this._needCrossZero = model.getNeedCrossZero && model.getNeedCrossZero();\n    var modelMinRaw = this._modelMinRaw = model.get('min', true);\n\n    if (isFunction(modelMinRaw)) {\n      this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw({\n        min: dataExtent[0],\n        max: dataExtent[1]\n      }));\n    } else if (modelMinRaw !== 'dataMin') {\n      this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw);\n    }\n\n    var modelMaxRaw = this._modelMaxRaw = model.get('max', true);\n\n    if (isFunction(modelMaxRaw)) {\n      this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw({\n        min: dataExtent[0],\n        max: dataExtent[1]\n      }));\n    } else if (modelMaxRaw !== 'dataMax') {\n      this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw);\n    }\n\n    if (isOrdinal) {\n      this._axisDataLen = model.getCategories().length;\n    } else {\n      var boundaryGap = model.get('boundaryGap');\n      var boundaryGapArr = isArray(boundaryGap) ? boundaryGap : [boundaryGap || 0, boundaryGap || 0];\n\n      if (typeof boundaryGapArr[0] === 'boolean' || typeof boundaryGapArr[1] === 'boolean') {\n        if (process.env.NODE_ENV !== 'production') {\n          console.warn('Boolean type for boundaryGap is only ' + 'allowed for ordinal axis. Please use string in ' + 'percentage instead, e.g., \"20%\". Currently, ' + 'boundaryGap is set to be 0.');\n        }\n\n        this._boundaryGapInner = [0, 0];\n      } else {\n        this._boundaryGapInner = [parsePercent(boundaryGapArr[0], 1), parsePercent(boundaryGapArr[1], 1)];\n      }\n    }\n  };\n\n  ScaleRawExtentInfo.prototype.calculate = function () {\n    var isOrdinal = this._isOrdinal;\n    var dataMin = this._dataMin;\n    var dataMax = this._dataMax;\n    var axisDataLen = this._axisDataLen;\n    var boundaryGapInner = this._boundaryGapInner;\n    var span = !isOrdinal ? dataMax - dataMin || Math.abs(dataMin) : null;\n    var min = this._modelMinRaw === 'dataMin' ? dataMin : this._modelMinNum;\n    var max = this._modelMaxRaw === 'dataMax' ? dataMax : this._modelMaxNum;\n    var minFixed = min != null;\n    var maxFixed = max != null;\n\n    if (min == null) {\n      min = isOrdinal ? axisDataLen ? 0 : NaN : dataMin - boundaryGapInner[0] * span;\n    }\n\n    if (max == null) {\n      max = isOrdinal ? axisDataLen ? axisDataLen - 1 : NaN : dataMax + boundaryGapInner[1] * span;\n    }\n\n    (min == null || !isFinite(min)) && (min = NaN);\n    (max == null || !isFinite(max)) && (max = NaN);\n\n    if (min > max) {\n      min = NaN;\n      max = NaN;\n    }\n\n    var isBlank = eqNaN(min) || eqNaN(max) || isOrdinal && !axisDataLen;\n\n    if (this._needCrossZero) {\n      if (min > 0 && max > 0 && !minFixed) {\n        min = 0;\n      }\n\n      if (min < 0 && max < 0 && !maxFixed) {\n        max = 0;\n      }\n    }\n\n    var determinedMin = this._determinedMin;\n    var determinedMax = this._determinedMax;\n\n    if (determinedMin != null) {\n      min = determinedMin;\n      minFixed = true;\n    }\n\n    if (determinedMax != null) {\n      max = determinedMax;\n      maxFixed = true;\n    }\n\n    return {\n      min: min,\n      max: max,\n      minFixed: minFixed,\n      maxFixed: maxFixed,\n      isBlank: isBlank\n    };\n  };\n\n  ScaleRawExtentInfo.prototype.modifyDataMinMax = function (minMaxName, val) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!this.frozen);\n    }\n\n    this[DATA_MIN_MAX_ATTR[minMaxName]] = val;\n  };\n\n  ScaleRawExtentInfo.prototype.setDeterminedMinMax = function (minMaxName, val) {\n    var attr = DETERMINED_MIN_MAX_ATTR[minMaxName];\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!this.frozen && this[attr] == null);\n    }\n\n    this[attr] = val;\n  };\n\n  ScaleRawExtentInfo.prototype.freeze = function () {\n    this.frozen = true;\n  };\n\n  return ScaleRawExtentInfo;\n}();\n\nexport { ScaleRawExtentInfo };\nvar DETERMINED_MIN_MAX_ATTR = {\n  min: '_determinedMin',\n  max: '_determinedMax'\n};\nvar DATA_MIN_MAX_ATTR = {\n  min: '_dataMin',\n  max: '_dataMax'\n};\nexport function ensureScaleRawExtentInfo(scale, model, originalExtent) {\n  var rawExtentInfo = scale.rawExtentInfo;\n\n  if (rawExtentInfo) {\n    return rawExtentInfo;\n  }\n\n  rawExtentInfo = new ScaleRawExtentInfo(scale, model, originalExtent);\n  scale.rawExtentInfo = rawExtentInfo;\n  return rawExtentInfo;\n}\nexport function parseAxisModelMinMax(scale, minMax) {\n  return minMax == null ? null : eqNaN(minMax) ? NaN : scale.parse(minMax);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport OrdinalScale from '../scale/Ordinal';\nimport IntervalScale from '../scale/Interval';\nimport Scale from '../scale/Scale';\nimport { prepareLayoutBarSeries, makeColumnLayout, retrieveColumnLayout } from '../layout/barGrid';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport TimeScale from '../scale/Time';\nimport LogScale from '../scale/Log';\nimport { getStackedDimension } from '../data/helper/dataStackHelper';\nimport { ensureScaleRawExtentInfo } from './scaleRawExtentInfo';\nexport function getScaleExtent(scale, model) {\n  var scaleType = scale.type;\n  var rawExtentResult = ensureScaleRawExtentInfo(scale, model, scale.getExtent()).calculate();\n  scale.setBlank(rawExtentResult.isBlank);\n  var min = rawExtentResult.min;\n  var max = rawExtentResult.max;\n  var ecModel = model.ecModel;\n\n  if (ecModel && scaleType === 'time') {\n    var barSeriesModels = prepareLayoutBarSeries('bar', ecModel);\n    var isBaseAxisAndHasBarSeries_1 = false;\n    zrUtil.each(barSeriesModels, function (seriesModel) {\n      isBaseAxisAndHasBarSeries_1 = isBaseAxisAndHasBarSeries_1 || seriesModel.getBaseAxis() === model.axis;\n    });\n\n    if (isBaseAxisAndHasBarSeries_1) {\n      var barWidthAndOffset = makeColumnLayout(barSeriesModels);\n      var adjustedScale = adjustScaleForOverflow(min, max, model, barWidthAndOffset);\n      min = adjustedScale.min;\n      max = adjustedScale.max;\n    }\n  }\n\n  return {\n    extent: [min, max],\n    fixMin: rawExtentResult.minFixed,\n    fixMax: rawExtentResult.maxFixed\n  };\n}\n\nfunction adjustScaleForOverflow(min, max, model, barWidthAndOffset) {\n  var axisExtent = model.axis.getExtent();\n  var axisLength = axisExtent[1] - axisExtent[0];\n  var barsOnCurrentAxis = retrieveColumnLayout(barWidthAndOffset, model.axis);\n\n  if (barsOnCurrentAxis === undefined) {\n    return {\n      min: min,\n      max: max\n    };\n  }\n\n  var minOverflow = Infinity;\n  zrUtil.each(barsOnCurrentAxis, function (item) {\n    minOverflow = Math.min(item.offset, minOverflow);\n  });\n  var maxOverflow = -Infinity;\n  zrUtil.each(barsOnCurrentAxis, function (item) {\n    maxOverflow = Math.max(item.offset + item.width, maxOverflow);\n  });\n  minOverflow = Math.abs(minOverflow);\n  maxOverflow = Math.abs(maxOverflow);\n  var totalOverFlow = minOverflow + maxOverflow;\n  var oldRange = max - min;\n  var oldRangePercentOfNew = 1 - (minOverflow + maxOverflow) / axisLength;\n  var overflowBuffer = oldRange / oldRangePercentOfNew - oldRange;\n  max += overflowBuffer * (maxOverflow / totalOverFlow);\n  min -= overflowBuffer * (minOverflow / totalOverFlow);\n  return {\n    min: min,\n    max: max\n  };\n}\n\nexport function niceScaleExtent(scale, model) {\n  var extentInfo = getScaleExtent(scale, model);\n  var extent = extentInfo.extent;\n  var splitNumber = model.get('splitNumber');\n\n  if (scale instanceof LogScale) {\n    scale.base = model.get('logBase');\n  }\n\n  var scaleType = scale.type;\n  scale.setExtent(extent[0], extent[1]);\n  scale.niceExtent({\n    splitNumber: splitNumber,\n    fixMin: extentInfo.fixMin,\n    fixMax: extentInfo.fixMax,\n    minInterval: scaleType === 'interval' || scaleType === 'time' ? model.get('minInterval') : null,\n    maxInterval: scaleType === 'interval' || scaleType === 'time' ? model.get('maxInterval') : null\n  });\n  var interval = model.get('interval');\n\n  if (interval != null) {\n    scale.setInterval && scale.setInterval(interval);\n  }\n}\nexport function createScaleByModel(model, axisType) {\n  axisType = axisType || model.get('type');\n\n  if (axisType) {\n    switch (axisType) {\n      case 'category':\n        return new OrdinalScale({\n          ordinalMeta: model.getOrdinalMeta ? model.getOrdinalMeta() : model.getCategories(),\n          extent: [Infinity, -Infinity]\n        });\n\n      case 'time':\n        return new TimeScale({\n          locale: model.ecModel.getLocaleModel(),\n          useUTC: model.ecModel.get('useUTC')\n        });\n\n      default:\n        return new (Scale.getClass(axisType) || IntervalScale)();\n    }\n  }\n}\nexport function ifAxisCrossZero(axis) {\n  var dataExtent = axis.scale.getExtent();\n  var min = dataExtent[0];\n  var max = dataExtent[1];\n  return !(min > 0 && max > 0 || min < 0 && max < 0);\n}\nexport function makeLabelFormatter(axis) {\n  var labelFormatter = axis.getLabelModel().get('formatter');\n  var categoryTickStart = axis.type === 'category' ? axis.scale.getExtent()[0] : null;\n\n  if (axis.scale.type === 'time') {\n    return function (tpl) {\n      return function (tick, idx) {\n        return axis.scale.getFormattedLabel(tick, idx, tpl);\n      };\n    }(labelFormatter);\n  } else if (typeof labelFormatter === 'string') {\n    return function (tpl) {\n      return function (tick) {\n        var label = axis.scale.getLabel(tick);\n        var text = tpl.replace('{value}', label != null ? label : '');\n        return text;\n      };\n    }(labelFormatter);\n  } else if (typeof labelFormatter === 'function') {\n    return function (cb) {\n      return function (tick, idx) {\n        if (categoryTickStart != null) {\n          idx = tick.value - categoryTickStart;\n        }\n\n        return cb(getAxisRawValue(axis, tick), idx, tick.level != null ? {\n          level: tick.level\n        } : null);\n      };\n    }(labelFormatter);\n  } else {\n    return function (tick) {\n      return axis.scale.getLabel(tick);\n    };\n  }\n}\nexport function getAxisRawValue(axis, tick) {\n  return axis.type === 'category' ? axis.scale.getLabel(tick) : tick.value;\n}\nexport function estimateLabelUnionRect(axis) {\n  var axisModel = axis.model;\n  var scale = axis.scale;\n\n  if (!axisModel.get(['axisLabel', 'show']) || scale.isBlank()) {\n    return;\n  }\n\n  var realNumberScaleTicks;\n  var tickCount;\n  var categoryScaleExtent = scale.getExtent();\n\n  if (scale instanceof OrdinalScale) {\n    tickCount = scale.count();\n  } else {\n    realNumberScaleTicks = scale.getTicks();\n    tickCount = realNumberScaleTicks.length;\n  }\n\n  var axisLabelModel = axis.getLabelModel();\n  var labelFormatter = makeLabelFormatter(axis);\n  var rect;\n  var step = 1;\n\n  if (tickCount > 40) {\n    step = Math.ceil(tickCount / 40);\n  }\n\n  for (var i = 0; i < tickCount; i += step) {\n    var tick = realNumberScaleTicks ? realNumberScaleTicks[i] : {\n      value: categoryScaleExtent[0] + i\n    };\n    var label = labelFormatter(tick, i);\n    var unrotatedSingleRect = axisLabelModel.getTextRect(label);\n    var singleRect = rotateTextRect(unrotatedSingleRect, axisLabelModel.get('rotate') || 0);\n    rect ? rect.union(singleRect) : rect = singleRect;\n  }\n\n  return rect;\n}\n\nfunction rotateTextRect(textRect, rotate) {\n  var rotateRadians = rotate * Math.PI / 180;\n  var beforeWidth = textRect.width;\n  var beforeHeight = textRect.height;\n  var afterWidth = beforeWidth * Math.abs(Math.cos(rotateRadians)) + Math.abs(beforeHeight * Math.sin(rotateRadians));\n  var afterHeight = beforeWidth * Math.abs(Math.sin(rotateRadians)) + Math.abs(beforeHeight * Math.cos(rotateRadians));\n  var rotatedRect = new BoundingRect(textRect.x, textRect.y, afterWidth, afterHeight);\n  return rotatedRect;\n}\n\nexport function getOptionCategoryInterval(model) {\n  var interval = model.get('interval');\n  return interval == null ? 'auto' : interval;\n}\nexport function shouldShowAllLabels(axis) {\n  return axis.type === 'category' && getOptionCategoryInterval(axis.getLabelModel()) === 0;\n}\nexport function getDataDimensionsOnAxis(data, axisDim) {\n  var dataDimMap = {};\n  zrUtil.each(data.mapDimensionsAll(axisDim), function (dataDim) {\n    dataDimMap[getStackedDimension(data, dataDim)] = true;\n  });\n  return zrUtil.keys(dataDimMap);\n}\nexport function unionAxisExtentFromData(dataExtent, data, axisDim) {\n  if (data) {\n    zrUtil.each(getDataDimensionsOnAxis(data, axisDim), function (dim) {\n      var seriesExtent = data.getApproximateExtent(dim);\n      seriesExtent[0] < dataExtent[0] && (dataExtent[0] = seriesExtent[0]);\n      seriesExtent[1] > dataExtent[1] && (dataExtent[1] = seriesExtent[1]);\n    });\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar AxisModelCommonMixin = function () {\n  function AxisModelCommonMixin() {}\n\n  AxisModelCommonMixin.prototype.getNeedCrossZero = function () {\n    var option = this.option;\n    return !option.scale;\n  };\n\n  AxisModelCommonMixin.prototype.getCoordSysModel = function () {\n    return;\n  };\n\n  return AxisModelCommonMixin;\n}();\n\nexport { AxisModelCommonMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport createListFromArray from '../../chart/helper/createListFromArray';\nimport * as axisHelper from '../../coord/axisHelper';\nimport { AxisModelCommonMixin } from '../../coord/axisModelCommonMixin';\nimport Model from '../../model/Model';\nimport { getLayoutRect } from '../../util/layout';\nimport { enableDataStack, isDimensionStacked, getStackedDimension } from '../../data/helper/dataStackHelper';\nimport { getECData } from '../../util/innerStore';\nimport { createTextStyle as innerCreateTextStyle } from '../../label/labelStyle';\nexport function createList(seriesModel) {\n  return createListFromArray(seriesModel.getSource(), seriesModel);\n}\nexport { getLayoutRect };\nexport { default as createDimensions } from '../../data/helper/createDimensions';\nexport var dataStack = {\n  isDimensionStacked: isDimensionStacked,\n  enableDataStack: enableDataStack,\n  getStackedDimension: getStackedDimension\n};\nexport { createSymbol } from '../../util/symbol';\nexport function createScale(dataExtent, option) {\n  var axisModel = option;\n\n  if (!(option instanceof Model)) {\n    axisModel = new Model(option);\n  }\n\n  var scale = axisHelper.createScaleByModel(axisModel);\n  scale.setExtent(dataExtent[0], dataExtent[1]);\n  axisHelper.niceScaleExtent(scale, axisModel);\n  return scale;\n}\nexport function mixinAxisModelCommonMethods(Model) {\n  zrUtil.mixin(Model, AxisModelCommonMixin);\n}\nexport { getECData };\nexport { enableHoverEmphasis } from '../../util/states';\nexport function createTextStyle(textStyleModel, opts) {\n  opts = opts || {};\n  return innerCreateTextStyle(textStyleModel, null, null, opts.state !== 'normal');\n}","import windingLine from './windingLine';\nvar EPSILON = 1e-8;\nfunction isAroundEqual(a, b) {\n    return Math.abs(a - b) < EPSILON;\n}\nexport function contain(points, x, y) {\n    var w = 0;\n    var p = points[0];\n    if (!p) {\n        return false;\n    }\n    for (var i = 1; i < points.length; i++) {\n        var p2 = points[i];\n        w += windingLine(p[0], p[1], p2[0], p2[1], x, y);\n        p = p2;\n    }\n    var p0 = points[0];\n    if (!isAroundEqual(p[0], p0[0]) || !isAroundEqual(p[1], p0[1])) {\n        w += windingLine(p[0], p[1], p0[0], p0[1], x, y);\n    }\n    return w !== 0;\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport * as bbox from 'zrender/lib/core/bbox';\nimport * as vec2 from 'zrender/lib/core/vector';\nimport * as polygonContain from 'zrender/lib/contain/polygon';\n\nvar Region = function () {\n  function Region(name, geometries, cp) {\n    this.name = name;\n    this.geometries = geometries;\n\n    if (!cp) {\n      var rect = this.getBoundingRect();\n      cp = [rect.x + rect.width / 2, rect.y + rect.height / 2];\n    } else {\n      cp = [cp[0], cp[1]];\n    }\n\n    this.center = cp;\n  }\n\n  Region.prototype.getBoundingRect = function () {\n    var rect = this._rect;\n\n    if (rect) {\n      return rect;\n    }\n\n    var MAX_NUMBER = Number.MAX_VALUE;\n    var min = [MAX_NUMBER, MAX_NUMBER];\n    var max = [-MAX_NUMBER, -MAX_NUMBER];\n    var min2 = [];\n    var max2 = [];\n    var geometries = this.geometries;\n    var i = 0;\n\n    for (; i < geometries.length; i++) {\n      if (geometries[i].type !== 'polygon') {\n        continue;\n      }\n\n      var exterior = geometries[i].exterior;\n      bbox.fromPoints(exterior, min2, max2);\n      vec2.min(min, min, min2);\n      vec2.max(max, max, max2);\n    }\n\n    if (i === 0) {\n      min[0] = min[1] = max[0] = max[1] = 0;\n    }\n\n    return this._rect = new BoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n  };\n\n  Region.prototype.contain = function (coord) {\n    var rect = this.getBoundingRect();\n    var geometries = this.geometries;\n\n    if (!rect.contain(coord[0], coord[1])) {\n      return false;\n    }\n\n    loopGeo: for (var i = 0, len = geometries.length; i < len; i++) {\n      if (geometries[i].type !== 'polygon') {\n        continue;\n      }\n\n      var exterior = geometries[i].exterior;\n      var interiors = geometries[i].interiors;\n\n      if (polygonContain.contain(exterior, coord[0], coord[1])) {\n        for (var k = 0; k < (interiors ? interiors.length : 0); k++) {\n          if (polygonContain.contain(interiors[k], coord[0], coord[1])) {\n            continue loopGeo;\n          }\n        }\n\n        return true;\n      }\n    }\n\n    return false;\n  };\n\n  Region.prototype.transformTo = function (x, y, width, height) {\n    var rect = this.getBoundingRect();\n    var aspect = rect.width / rect.height;\n\n    if (!width) {\n      width = aspect * height;\n    } else if (!height) {\n      height = width / aspect;\n    }\n\n    var target = new BoundingRect(x, y, width, height);\n    var transform = rect.calculateTransform(target);\n    var geometries = this.geometries;\n\n    for (var i = 0; i < geometries.length; i++) {\n      if (geometries[i].type !== 'polygon') {\n        continue;\n      }\n\n      var exterior = geometries[i].exterior;\n      var interiors = geometries[i].interiors;\n\n      for (var p = 0; p < exterior.length; p++) {\n        vec2.applyTransform(exterior[p], exterior[p], transform);\n      }\n\n      for (var h = 0; h < (interiors ? interiors.length : 0); h++) {\n        for (var p = 0; p < interiors[h].length; p++) {\n          vec2.applyTransform(interiors[h][p], interiors[h][p], transform);\n        }\n      }\n    }\n\n    rect = this._rect;\n    rect.copy(target);\n    this.center = [rect.x + rect.width / 2, rect.y + rect.height / 2];\n  };\n\n  Region.prototype.cloneShallow = function (name) {\n    name == null && (name = this.name);\n    var newRegion = new Region(name, this.geometries, this.center);\n    newRegion._rect = this._rect;\n    newRegion.transformTo = null;\n    return newRegion;\n  };\n\n  return Region;\n}();\n\nexport default Region;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Region from './Region';\n\nfunction decode(json) {\n  if (!json.UTF8Encoding) {\n    return json;\n  }\n\n  var jsonCompressed = json;\n  var encodeScale = jsonCompressed.UTF8Scale;\n\n  if (encodeScale == null) {\n    encodeScale = 1024;\n  }\n\n  var features = jsonCompressed.features;\n\n  for (var f = 0; f < features.length; f++) {\n    var feature = features[f];\n    var geometry = feature.geometry;\n\n    if (geometry.type === 'Polygon') {\n      var coordinates = geometry.coordinates;\n\n      for (var c = 0; c < coordinates.length; c++) {\n        coordinates[c] = decodePolygon(coordinates[c], geometry.encodeOffsets[c], encodeScale);\n      }\n    } else if (geometry.type === 'MultiPolygon') {\n      var coordinates = geometry.coordinates;\n\n      for (var c = 0; c < coordinates.length; c++) {\n        var coordinate = coordinates[c];\n\n        for (var c2 = 0; c2 < coordinate.length; c2++) {\n          coordinate[c2] = decodePolygon(coordinate[c2], geometry.encodeOffsets[c][c2], encodeScale);\n        }\n      }\n    }\n  }\n\n  jsonCompressed.UTF8Encoding = false;\n  return jsonCompressed;\n}\n\nfunction decodePolygon(coordinate, encodeOffsets, encodeScale) {\n  var result = [];\n  var prevX = encodeOffsets[0];\n  var prevY = encodeOffsets[1];\n\n  for (var i = 0; i < coordinate.length; i += 2) {\n    var x = coordinate.charCodeAt(i) - 64;\n    var y = coordinate.charCodeAt(i + 1) - 64;\n    x = x >> 1 ^ -(x & 1);\n    y = y >> 1 ^ -(y & 1);\n    x += prevX;\n    y += prevY;\n    prevX = x;\n    prevY = y;\n    result.push([x / encodeScale, y / encodeScale]);\n  }\n\n  return result;\n}\n\nexport default function parseGeoJSON(geoJson, nameProperty) {\n  geoJson = decode(geoJson);\n  return zrUtil.map(zrUtil.filter(geoJson.features, function (featureObj) {\n    return featureObj.geometry && featureObj.properties && featureObj.geometry.coordinates.length > 0;\n  }), function (featureObj) {\n    var properties = featureObj.properties;\n    var geo = featureObj.geometry;\n    var geometries = [];\n\n    if (geo.type === 'Polygon') {\n      var coordinates = geo.coordinates;\n      geometries.push({\n        type: 'polygon',\n        exterior: coordinates[0],\n        interiors: coordinates.slice(1)\n      });\n    }\n\n    if (geo.type === 'MultiPolygon') {\n      var coordinates = geo.coordinates;\n      zrUtil.each(coordinates, function (item) {\n        if (item[0]) {\n          geometries.push({\n            type: 'polygon',\n            exterior: item[0],\n            interiors: item.slice(1)\n          });\n        }\n      });\n    }\n\n    var region = new Region(properties[nameProperty || 'name'], geometries, properties.cp);\n    region.properties = properties;\n    return region;\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as textContain from 'zrender/lib/contain/text';\nimport { makeInner } from '../util/model';\nimport { makeLabelFormatter, getOptionCategoryInterval, shouldShowAllLabels } from './axisHelper';\nvar inner = makeInner();\nexport function createAxisLabels(axis) {\n  return axis.type === 'category' ? makeCategoryLabels(axis) : makeRealNumberLabels(axis);\n}\nexport function createAxisTicks(axis, tickModel) {\n  return axis.type === 'category' ? makeCategoryTicks(axis, tickModel) : {\n    ticks: zrUtil.map(axis.scale.getTicks(), function (tick) {\n      return tick.value;\n    })\n  };\n}\n\nfunction makeCategoryLabels(axis) {\n  var labelModel = axis.getLabelModel();\n  var result = makeCategoryLabelsActually(axis, labelModel);\n  return !labelModel.get('show') || axis.scale.isBlank() ? {\n    labels: [],\n    labelCategoryInterval: result.labelCategoryInterval\n  } : result;\n}\n\nfunction makeCategoryLabelsActually(axis, labelModel) {\n  var labelsCache = getListCache(axis, 'labels');\n  var optionLabelInterval = getOptionCategoryInterval(labelModel);\n  var result = listCacheGet(labelsCache, optionLabelInterval);\n\n  if (result) {\n    return result;\n  }\n\n  var labels;\n  var numericLabelInterval;\n\n  if (zrUtil.isFunction(optionLabelInterval)) {\n    labels = makeLabelsByCustomizedCategoryInterval(axis, optionLabelInterval);\n  } else {\n    numericLabelInterval = optionLabelInterval === 'auto' ? makeAutoCategoryInterval(axis) : optionLabelInterval;\n    labels = makeLabelsByNumericCategoryInterval(axis, numericLabelInterval);\n  }\n\n  return listCacheSet(labelsCache, optionLabelInterval, {\n    labels: labels,\n    labelCategoryInterval: numericLabelInterval\n  });\n}\n\nfunction makeCategoryTicks(axis, tickModel) {\n  var ticksCache = getListCache(axis, 'ticks');\n  var optionTickInterval = getOptionCategoryInterval(tickModel);\n  var result = listCacheGet(ticksCache, optionTickInterval);\n\n  if (result) {\n    return result;\n  }\n\n  var ticks;\n  var tickCategoryInterval;\n\n  if (!tickModel.get('show') || axis.scale.isBlank()) {\n    ticks = [];\n  }\n\n  if (zrUtil.isFunction(optionTickInterval)) {\n    ticks = makeLabelsByCustomizedCategoryInterval(axis, optionTickInterval, true);\n  } else if (optionTickInterval === 'auto') {\n    var labelsResult = makeCategoryLabelsActually(axis, axis.getLabelModel());\n    tickCategoryInterval = labelsResult.labelCategoryInterval;\n    ticks = zrUtil.map(labelsResult.labels, function (labelItem) {\n      return labelItem.tickValue;\n    });\n  } else {\n    tickCategoryInterval = optionTickInterval;\n    ticks = makeLabelsByNumericCategoryInterval(axis, tickCategoryInterval, true);\n  }\n\n  return listCacheSet(ticksCache, optionTickInterval, {\n    ticks: ticks,\n    tickCategoryInterval: tickCategoryInterval\n  });\n}\n\nfunction makeRealNumberLabels(axis) {\n  var ticks = axis.scale.getTicks();\n  var labelFormatter = makeLabelFormatter(axis);\n  return {\n    labels: zrUtil.map(ticks, function (tick, idx) {\n      return {\n        formattedLabel: labelFormatter(tick, idx),\n        rawLabel: axis.scale.getLabel(tick),\n        tickValue: tick.value\n      };\n    })\n  };\n}\n\nfunction getListCache(axis, prop) {\n  return inner(axis)[prop] || (inner(axis)[prop] = []);\n}\n\nfunction listCacheGet(cache, key) {\n  for (var i = 0; i < cache.length; i++) {\n    if (cache[i].key === key) {\n      return cache[i].value;\n    }\n  }\n}\n\nfunction listCacheSet(cache, key, value) {\n  cache.push({\n    key: key,\n    value: value\n  });\n  return value;\n}\n\nfunction makeAutoCategoryInterval(axis) {\n  var result = inner(axis).autoInterval;\n  return result != null ? result : inner(axis).autoInterval = axis.calculateCategoryInterval();\n}\n\nexport function calculateCategoryInterval(axis) {\n  var params = fetchAutoCategoryIntervalCalculationParams(axis);\n  var labelFormatter = makeLabelFormatter(axis);\n  var rotation = (params.axisRotate - params.labelRotate) / 180 * Math.PI;\n  var ordinalScale = axis.scale;\n  var ordinalExtent = ordinalScale.getExtent();\n  var tickCount = ordinalScale.count();\n\n  if (ordinalExtent[1] - ordinalExtent[0] < 1) {\n    return 0;\n  }\n\n  var step = 1;\n\n  if (tickCount > 40) {\n    step = Math.max(1, Math.floor(tickCount / 40));\n  }\n\n  var tickValue = ordinalExtent[0];\n  var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue);\n  var unitW = Math.abs(unitSpan * Math.cos(rotation));\n  var unitH = Math.abs(unitSpan * Math.sin(rotation));\n  var maxW = 0;\n  var maxH = 0;\n\n  for (; tickValue <= ordinalExtent[1]; tickValue += step) {\n    var width = 0;\n    var height = 0;\n    var rect = textContain.getBoundingRect(labelFormatter({\n      value: tickValue\n    }), params.font, 'center', 'top');\n    width = rect.width * 1.3;\n    height = rect.height * 1.3;\n    maxW = Math.max(maxW, width, 7);\n    maxH = Math.max(maxH, height, 7);\n  }\n\n  var dw = maxW / unitW;\n  var dh = maxH / unitH;\n  isNaN(dw) && (dw = Infinity);\n  isNaN(dh) && (dh = Infinity);\n  var interval = Math.max(0, Math.floor(Math.min(dw, dh)));\n  var cache = inner(axis.model);\n  var axisExtent = axis.getExtent();\n  var lastAutoInterval = cache.lastAutoInterval;\n  var lastTickCount = cache.lastTickCount;\n\n  if (lastAutoInterval != null && lastTickCount != null && Math.abs(lastAutoInterval - interval) <= 1 && Math.abs(lastTickCount - tickCount) <= 1 && lastAutoInterval > interval && cache.axisExtent0 === axisExtent[0] && cache.axisExtent1 === axisExtent[1]) {\n    interval = lastAutoInterval;\n  } else {\n    cache.lastTickCount = tickCount;\n    cache.lastAutoInterval = interval;\n    cache.axisExtent0 = axisExtent[0];\n    cache.axisExtent1 = axisExtent[1];\n  }\n\n  return interval;\n}\n\nfunction fetchAutoCategoryIntervalCalculationParams(axis) {\n  var labelModel = axis.getLabelModel();\n  return {\n    axisRotate: axis.getRotate ? axis.getRotate() : axis.isHorizontal && !axis.isHorizontal() ? 90 : 0,\n    labelRotate: labelModel.get('rotate') || 0,\n    font: labelModel.getFont()\n  };\n}\n\nfunction makeLabelsByNumericCategoryInterval(axis, categoryInterval, onlyTick) {\n  var labelFormatter = makeLabelFormatter(axis);\n  var ordinalScale = axis.scale;\n  var ordinalExtent = ordinalScale.getExtent();\n  var labelModel = axis.getLabelModel();\n  var result = [];\n  var step = Math.max((categoryInterval || 0) + 1, 1);\n  var startTick = ordinalExtent[0];\n  var tickCount = ordinalScale.count();\n\n  if (startTick !== 0 && step > 1 && tickCount / step > 2) {\n    startTick = Math.round(Math.ceil(startTick / step) * step);\n  }\n\n  var showAllLabel = shouldShowAllLabels(axis);\n  var includeMinLabel = labelModel.get('showMinLabel') || showAllLabel;\n  var includeMaxLabel = labelModel.get('showMaxLabel') || showAllLabel;\n\n  if (includeMinLabel && startTick !== ordinalExtent[0]) {\n    addItem(ordinalExtent[0]);\n  }\n\n  var tickValue = startTick;\n\n  for (; tickValue <= ordinalExtent[1]; tickValue += step) {\n    addItem(tickValue);\n  }\n\n  if (includeMaxLabel && tickValue - step !== ordinalExtent[1]) {\n    addItem(ordinalExtent[1]);\n  }\n\n  function addItem(tickValue) {\n    var tickObj = {\n      value: tickValue\n    };\n    result.push(onlyTick ? tickValue : {\n      formattedLabel: labelFormatter(tickObj),\n      rawLabel: ordinalScale.getLabel(tickObj),\n      tickValue: tickValue\n    });\n  }\n\n  return result;\n}\n\nfunction makeLabelsByCustomizedCategoryInterval(axis, categoryInterval, onlyTick) {\n  var ordinalScale = axis.scale;\n  var labelFormatter = makeLabelFormatter(axis);\n  var result = [];\n  zrUtil.each(ordinalScale.getTicks(), function (tick) {\n    var rawLabel = ordinalScale.getLabel(tick);\n    var tickValue = tick.value;\n\n    if (categoryInterval(tick.value, rawLabel)) {\n      result.push(onlyTick ? tickValue : {\n        formattedLabel: labelFormatter(tick),\n        rawLabel: rawLabel,\n        tickValue: tickValue\n      });\n    }\n  });\n  return result;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, map } from 'zrender/lib/core/util';\nimport { linearMap, getPixelPrecision, round } from '../util/number';\nimport { createAxisTicks, createAxisLabels, calculateCategoryInterval } from './axisTickLabelBuilder';\nvar NORMALIZED_EXTENT = [0, 1];\n\nvar Axis = function () {\n  function Axis(dim, scale, extent) {\n    this.onBand = false;\n    this.inverse = false;\n    this.dim = dim;\n    this.scale = scale;\n    this._extent = extent || [0, 0];\n  }\n\n  Axis.prototype.contain = function (coord) {\n    var extent = this._extent;\n    var min = Math.min(extent[0], extent[1]);\n    var max = Math.max(extent[0], extent[1]);\n    return coord >= min && coord <= max;\n  };\n\n  Axis.prototype.containData = function (data) {\n    return this.scale.contain(data);\n  };\n\n  Axis.prototype.getExtent = function () {\n    return this._extent.slice();\n  };\n\n  Axis.prototype.getPixelPrecision = function (dataExtent) {\n    return getPixelPrecision(dataExtent || this.scale.getExtent(), this._extent);\n  };\n\n  Axis.prototype.setExtent = function (start, end) {\n    var extent = this._extent;\n    extent[0] = start;\n    extent[1] = end;\n  };\n\n  Axis.prototype.dataToCoord = function (data, clamp) {\n    var extent = this._extent;\n    var scale = this.scale;\n    data = scale.normalize(data);\n\n    if (this.onBand && scale.type === 'ordinal') {\n      extent = extent.slice();\n      fixExtentWithBands(extent, scale.count());\n    }\n\n    return linearMap(data, NORMALIZED_EXTENT, extent, clamp);\n  };\n\n  Axis.prototype.coordToData = function (coord, clamp) {\n    var extent = this._extent;\n    var scale = this.scale;\n\n    if (this.onBand && scale.type === 'ordinal') {\n      extent = extent.slice();\n      fixExtentWithBands(extent, scale.count());\n    }\n\n    var t = linearMap(coord, extent, NORMALIZED_EXTENT, clamp);\n    return this.scale.scale(t);\n  };\n\n  Axis.prototype.pointToData = function (point, clamp) {\n    return;\n  };\n\n  Axis.prototype.getTicksCoords = function (opt) {\n    opt = opt || {};\n    var tickModel = opt.tickModel || this.getTickModel();\n    var result = createAxisTicks(this, tickModel);\n    var ticks = result.ticks;\n    var ticksCoords = map(ticks, function (tickVal) {\n      return {\n        coord: this.dataToCoord(this.scale.type === 'ordinal' ? this.scale.getRawOrdinalNumber(tickVal) : tickVal),\n        tickValue: tickVal\n      };\n    }, this);\n    var alignWithLabel = tickModel.get('alignWithLabel');\n    fixOnBandTicksCoords(this, ticksCoords, alignWithLabel, opt.clamp);\n    return ticksCoords;\n  };\n\n  Axis.prototype.getMinorTicksCoords = function () {\n    if (this.scale.type === 'ordinal') {\n      return [];\n    }\n\n    var minorTickModel = this.model.getModel('minorTick');\n    var splitNumber = minorTickModel.get('splitNumber');\n\n    if (!(splitNumber > 0 && splitNumber < 100)) {\n      splitNumber = 5;\n    }\n\n    var minorTicks = this.scale.getMinorTicks(splitNumber);\n    var minorTicksCoords = map(minorTicks, function (minorTicksGroup) {\n      return map(minorTicksGroup, function (minorTick) {\n        return {\n          coord: this.dataToCoord(minorTick),\n          tickValue: minorTick\n        };\n      }, this);\n    }, this);\n    return minorTicksCoords;\n  };\n\n  Axis.prototype.getViewLabels = function () {\n    return createAxisLabels(this).labels;\n  };\n\n  Axis.prototype.getLabelModel = function () {\n    return this.model.getModel('axisLabel');\n  };\n\n  Axis.prototype.getTickModel = function () {\n    return this.model.getModel('axisTick');\n  };\n\n  Axis.prototype.getBandWidth = function () {\n    var axisExtent = this._extent;\n    var dataExtent = this.scale.getExtent();\n    var len = dataExtent[1] - dataExtent[0] + (this.onBand ? 1 : 0);\n    len === 0 && (len = 1);\n    var size = Math.abs(axisExtent[1] - axisExtent[0]);\n    return Math.abs(size) / len;\n  };\n\n  Axis.prototype.calculateCategoryInterval = function () {\n    return calculateCategoryInterval(this);\n  };\n\n  return Axis;\n}();\n\nfunction fixExtentWithBands(extent, nTick) {\n  var size = extent[1] - extent[0];\n  var len = nTick;\n  var margin = size / len / 2;\n  extent[0] += margin;\n  extent[1] -= margin;\n}\n\nfunction fixOnBandTicksCoords(axis, ticksCoords, alignWithLabel, clamp) {\n  var ticksLen = ticksCoords.length;\n\n  if (!axis.onBand || alignWithLabel || !ticksLen) {\n    return;\n  }\n\n  var axisExtent = axis.getExtent();\n  var last;\n  var diffSize;\n\n  if (ticksLen === 1) {\n    ticksCoords[0].coord = axisExtent[0];\n    last = ticksCoords[1] = {\n      coord: axisExtent[0]\n    };\n  } else {\n    var crossLen = ticksCoords[ticksLen - 1].tickValue - ticksCoords[0].tickValue;\n    var shift_1 = (ticksCoords[ticksLen - 1].coord - ticksCoords[0].coord) / crossLen;\n    each(ticksCoords, function (ticksItem) {\n      ticksItem.coord -= shift_1 / 2;\n    });\n    var dataExtent = axis.scale.getExtent();\n    diffSize = 1 + dataExtent[1] - ticksCoords[ticksLen - 1].tickValue;\n    last = {\n      coord: ticksCoords[ticksLen - 1].coord + shift_1 * diffSize\n    };\n    ticksCoords.push(last);\n  }\n\n  var inverse = axisExtent[0] > axisExtent[1];\n\n  if (littleThan(ticksCoords[0].coord, axisExtent[0])) {\n    clamp ? ticksCoords[0].coord = axisExtent[0] : ticksCoords.shift();\n  }\n\n  if (clamp && littleThan(axisExtent[0], ticksCoords[0].coord)) {\n    ticksCoords.unshift({\n      coord: axisExtent[0]\n    });\n  }\n\n  if (littleThan(axisExtent[1], last.coord)) {\n    clamp ? last.coord = axisExtent[1] : ticksCoords.pop();\n  }\n\n  if (clamp && littleThan(last.coord, axisExtent[1])) {\n    ticksCoords.push({\n      coord: axisExtent[1]\n    });\n  }\n\n  function littleThan(a, b) {\n    a = round(a);\n    b = round(b);\n    return inverse ? a > b : a < b;\n  }\n}\n\nexport default Axis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ComponentModel from '../model/Component';\nimport ComponentView from '../view/Component';\nimport SeriesModel from '../model/Series';\nimport ChartView from '../view/Chart';\nimport * as zrender_1 from 'zrender/lib/zrender';\nexport { zrender_1 as zrender };\nimport * as matrix_1 from 'zrender/lib/core/matrix';\nexport { matrix_1 as matrix };\nimport * as vector_1 from 'zrender/lib/core/vector';\nexport { vector_1 as vector };\nimport * as zrUtil_1 from 'zrender/lib/core/util';\nexport { zrUtil_1 as zrUtil };\nimport * as color_1 from 'zrender/lib/tool/color';\nexport { color_1 as color };\nexport { throttle } from '../util/throttle';\nimport * as helper_1 from './api/helper';\nexport { helper_1 as helper };\nexport { use } from '../extension';\nexport { default as parseGeoJSON } from '../coord/geo/parseGeoJson';\nexport { default as parseGeoJson } from '../coord/geo/parseGeoJson';\nimport * as number_1 from './api/number';\nexport { number_1 as number };\nimport * as time_1 from './api/time';\nexport { time_1 as time };\nimport * as graphic_1 from './api/graphic';\nexport { graphic_1 as graphic };\nimport * as format_1 from './api/format';\nexport { format_1 as format };\nimport * as util_1 from './api/util';\nexport { util_1 as util };\nexport { default as env } from 'zrender/lib/core/env';\nexport { default as List } from '../data/List';\nexport { default as Model } from '../model/Model';\nexport { default as Axis } from '../coord/Axis';\nexport { ComponentModel, ComponentView, SeriesModel, ChartView };\nexport { brushSingle as innerDrawElementOnCanvas } from 'zrender/lib/canvas/graphic';\nexport function extendComponentModel(proto) {\n  var Model = ComponentModel.extend(proto);\n  ComponentModel.registerClass(Model);\n  return Model;\n}\nexport function extendComponentView(proto) {\n  var View = ComponentView.extend(proto);\n  ComponentView.registerClass(View);\n  return View;\n}\nexport function extendSeriesModel(proto) {\n  var Model = SeriesModel.extend(proto);\n  SeriesModel.registerClass(Model);\n  return Model;\n}\nexport function extendChartView(proto) {\n  var View = ChartView.extend(proto);\n  ChartView.registerClass(View);\n  return View;\n}","export function createElement(name) {\n    return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\n","function diff(oldArr, newArr, equals) {\n    if (!equals) {\n        equals = function (a, b) {\n            return a === b;\n        };\n    }\n    oldArr = oldArr.slice();\n    newArr = newArr.slice();\n    var newLen = newArr.length;\n    var oldLen = oldArr.length;\n    var editLength = 1;\n    var maxEditLength = newLen + oldLen;\n    var bestPath = [{ newPos: -1, components: [] }];\n    var oldPos = extractCommon(bestPath[0], newArr, oldArr, 0, equals);\n    if (bestPath[0].newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n        var indices = [];\n        for (var i = 0; i < newArr.length; i++) {\n            indices.push(i);\n        }\n        return [{\n                indices: indices,\n                count: newArr.length,\n                added: false,\n                removed: false\n            }];\n    }\n    function execEditLength() {\n        for (var diagonalPath = -1 * editLength; diagonalPath <= editLength; diagonalPath += 2) {\n            var basePath;\n            var addPath = bestPath[diagonalPath - 1];\n            var removePath = bestPath[diagonalPath + 1];\n            var oldPos = (removePath ? removePath.newPos : 0) - diagonalPath;\n            if (addPath) {\n                bestPath[diagonalPath - 1] = undefined;\n            }\n            var canAdd = addPath && addPath.newPos + 1 < newLen;\n            var canRemove = removePath && 0 <= oldPos && oldPos < oldLen;\n            if (!canAdd && !canRemove) {\n                bestPath[diagonalPath] = undefined;\n                continue;\n            }\n            if (!canAdd || (canRemove && addPath.newPos < removePath.newPos)) {\n                basePath = clonePath(removePath);\n                pushComponent(basePath.components, false, true);\n            }\n            else {\n                basePath = addPath;\n                basePath.newPos++;\n                pushComponent(basePath.components, true, false);\n            }\n            oldPos = extractCommon(basePath, newArr, oldArr, diagonalPath, equals);\n            if (basePath.newPos + 1 >= newLen && oldPos + 1 >= oldLen) {\n                return buildValues(basePath.components);\n            }\n            else {\n                bestPath[diagonalPath] = basePath;\n            }\n        }\n        editLength++;\n    }\n    while (editLength <= maxEditLength) {\n        var ret = execEditLength();\n        if (ret) {\n            return ret;\n        }\n    }\n}\nfunction extractCommon(basePath, newArr, oldArr, diagonalPath, equals) {\n    var newLen = newArr.length;\n    var oldLen = oldArr.length;\n    var newPos = basePath.newPos;\n    var oldPos = newPos - diagonalPath;\n    var commonCount = 0;\n    while (newPos + 1 < newLen && oldPos + 1 < oldLen && equals(newArr[newPos + 1], oldArr[oldPos + 1])) {\n        newPos++;\n        oldPos++;\n        commonCount++;\n    }\n    if (commonCount) {\n        basePath.components.push({\n            count: commonCount,\n            added: false,\n            removed: false,\n            indices: []\n        });\n    }\n    basePath.newPos = newPos;\n    return oldPos;\n}\nfunction pushComponent(components, added, removed) {\n    var last = components[components.length - 1];\n    if (last && last.added === added && last.removed === removed) {\n        components[components.length - 1] = {\n            count: last.count + 1,\n            added: added,\n            removed: removed,\n            indices: []\n        };\n    }\n    else {\n        components.push({\n            count: 1,\n            added: added,\n            removed: removed,\n            indices: []\n        });\n    }\n}\nfunction buildValues(components) {\n    var componentPos = 0;\n    var componentLen = components.length;\n    var newPos = 0;\n    var oldPos = 0;\n    for (; componentPos < componentLen; componentPos++) {\n        var component = components[componentPos];\n        if (!component.removed) {\n            var indices = [];\n            for (var i = newPos; i < newPos + component.count; i++) {\n                indices.push(i);\n            }\n            component.indices = indices;\n            newPos += component.count;\n            if (!component.added) {\n                oldPos += component.count;\n            }\n        }\n        else {\n            for (var i = oldPos; i < oldPos + component.count; i++) {\n                component.indices.push(i);\n            }\n            oldPos += component.count;\n        }\n    }\n    return components;\n}\nfunction clonePath(path) {\n    return { newPos: path.newPos, components: path.components.slice(0) };\n}\nexport default function arrayDiff(oldArr, newArr, equal) {\n    return diff(oldArr, newArr, equal);\n}\n","import { createElement } from './core';\nimport ZRImage from '../graphic/Image';\nimport { DEFAULT_FONT, getLineHeight } from '../contain/text';\nimport { map } from '../core/util';\nimport { normalizeLineDash } from '../graphic/helper/dashStyle';\nvar NONE = 'none';\nvar mathRound = Math.round;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI = Math.PI;\nvar PI2 = Math.PI * 2;\nvar degree = 180 / PI;\nvar EPSILON = 1e-4;\nfunction round3(val) {\n    return mathRound(val * 1e3) / 1e3;\n}\nfunction round4(val) {\n    return mathRound(val * 1e4) / 1e4;\n}\nfunction isAroundZero(val) {\n    return val < EPSILON && val > -EPSILON;\n}\nfunction pathHasFill(style) {\n    var fill = style.fill;\n    return fill != null && fill !== NONE;\n}\nfunction pathHasStroke(style) {\n    var stroke = style.stroke;\n    return stroke != null && stroke !== NONE;\n}\nfunction setTransform(svgEl, m) {\n    if (m) {\n        attr(svgEl, 'transform', 'matrix('\n            + round3(m[0]) + ','\n            + round3(m[1]) + ','\n            + round3(m[2]) + ','\n            + round3(m[3]) + ','\n            + round4(m[4]) + ','\n            + round4(m[5])\n            + ')');\n    }\n}\nfunction attr(el, key, val) {\n    if (!val || val.type !== 'linear' && val.type !== 'radial') {\n        el.setAttribute(key, val);\n    }\n}\nfunction attrXLink(el, key, val) {\n    el.setAttributeNS('http://www.w3.org/1999/xlink', key, val);\n}\nfunction attrXML(el, key, val) {\n    el.setAttributeNS('http://www.w3.org/XML/1998/namespace', key, val);\n}\nfunction bindStyle(svgEl, style, el) {\n    var opacity = style.opacity == null ? 1 : style.opacity;\n    if (el instanceof ZRImage) {\n        svgEl.style.opacity = opacity + '';\n        return;\n    }\n    if (pathHasFill(style)) {\n        var fill = style.fill;\n        fill = fill === 'transparent' ? NONE : fill;\n        attr(svgEl, 'fill', fill);\n        attr(svgEl, 'fill-opacity', (style.fillOpacity != null ? style.fillOpacity * opacity : opacity) + '');\n    }\n    else {\n        attr(svgEl, 'fill', NONE);\n    }\n    if (pathHasStroke(style)) {\n        var stroke = style.stroke;\n        stroke = stroke === 'transparent' ? NONE : stroke;\n        attr(svgEl, 'stroke', stroke);\n        var strokeWidth = style.lineWidth;\n        var strokeScale_1 = style.strokeNoScale\n            ? el.getLineScale()\n            : 1;\n        attr(svgEl, 'stroke-width', (strokeScale_1 ? strokeWidth / strokeScale_1 : 0) + '');\n        attr(svgEl, 'paint-order', style.strokeFirst ? 'stroke' : 'fill');\n        attr(svgEl, 'stroke-opacity', (style.strokeOpacity != null ? style.strokeOpacity * opacity : opacity) + '');\n        var lineDash = style.lineDash && strokeWidth > 0 && normalizeLineDash(style.lineDash, strokeWidth);\n        if (lineDash) {\n            var lineDashOffset = style.lineDashOffset;\n            if (strokeScale_1 && strokeScale_1 !== 1) {\n                lineDash = map(lineDash, function (rawVal) {\n                    return rawVal / strokeScale_1;\n                });\n                if (lineDashOffset) {\n                    lineDashOffset /= strokeScale_1;\n                    lineDashOffset = mathRound(lineDashOffset);\n                }\n            }\n            attr(svgEl, 'stroke-dasharray', lineDash.join(','));\n            attr(svgEl, 'stroke-dashoffset', (lineDashOffset || 0) + '');\n        }\n        else {\n            attr(svgEl, 'stroke-dasharray', '');\n        }\n        style.lineCap && attr(svgEl, 'stroke-linecap', style.lineCap);\n        style.lineJoin && attr(svgEl, 'stroke-linejoin', style.lineJoin);\n        style.miterLimit && attr(svgEl, 'stroke-miterlimit', style.miterLimit + '');\n    }\n    else {\n        attr(svgEl, 'stroke', NONE);\n    }\n}\nvar SVGPathRebuilder = (function () {\n    function SVGPathRebuilder() {\n    }\n    SVGPathRebuilder.prototype.reset = function () {\n        this._d = [];\n        this._str = '';\n    };\n    SVGPathRebuilder.prototype.moveTo = function (x, y) {\n        this._add('M', x, y);\n    };\n    SVGPathRebuilder.prototype.lineTo = function (x, y) {\n        this._add('L', x, y);\n    };\n    SVGPathRebuilder.prototype.bezierCurveTo = function (x, y, x2, y2, x3, y3) {\n        this._add('C', x, y, x2, y2, x3, y3);\n    };\n    SVGPathRebuilder.prototype.quadraticCurveTo = function (x, y, x2, y2) {\n        this._add('Q', x, y, x2, y2);\n    };\n    SVGPathRebuilder.prototype.arc = function (cx, cy, r, startAngle, endAngle, anticlockwise) {\n        this.ellipse(cx, cy, r, r, 0, startAngle, endAngle, anticlockwise);\n    };\n    SVGPathRebuilder.prototype.ellipse = function (cx, cy, rx, ry, psi, startAngle, endAngle, anticlockwise) {\n        var firstCmd = this._d.length === 0;\n        var dTheta = endAngle - startAngle;\n        var clockwise = !anticlockwise;\n        var dThetaPositive = Math.abs(dTheta);\n        var isCircle = isAroundZero(dThetaPositive - PI2)\n            || (clockwise ? dTheta >= PI2 : -dTheta >= PI2);\n        var unifiedTheta = dTheta > 0 ? dTheta % PI2 : (dTheta % PI2 + PI2);\n        var large = false;\n        if (isCircle) {\n            large = true;\n        }\n        else if (isAroundZero(dThetaPositive)) {\n            large = false;\n        }\n        else {\n            large = (unifiedTheta >= PI) === !!clockwise;\n        }\n        var x0 = round4(cx + rx * mathCos(startAngle));\n        var y0 = round4(cy + ry * mathSin(startAngle));\n        if (isCircle) {\n            if (clockwise) {\n                dTheta = PI2 - 1e-4;\n            }\n            else {\n                dTheta = -PI2 + 1e-4;\n            }\n            large = true;\n            if (firstCmd) {\n                this._d.push('M', x0, y0);\n            }\n        }\n        var x = round4(cx + rx * mathCos(startAngle + dTheta));\n        var y = round4(cy + ry * mathSin(startAngle + dTheta));\n        if (isNaN(x0) || isNaN(y0) || isNaN(rx) || isNaN(ry) || isNaN(psi) || isNaN(degree) || isNaN(x) || isNaN(y)) {\n            return '';\n        }\n        this._d.push('A', round4(rx), round4(ry), mathRound(psi * degree), +large, +clockwise, x, y);\n    };\n    SVGPathRebuilder.prototype.rect = function (x, y, w, h) {\n        this._add('M', x, y);\n        this._add('L', x + w, y);\n        this._add('L', x + w, y + h);\n        this._add('L', x, y + h);\n        this._add('L', x, y);\n    };\n    SVGPathRebuilder.prototype.closePath = function () {\n        if (this._d.length > 0) {\n            this._add('Z');\n        }\n    };\n    SVGPathRebuilder.prototype._add = function (cmd, a, b, c, d, e, f, g, h) {\n        this._d.push(cmd);\n        for (var i = 1; i < arguments.length; i++) {\n            var val = arguments[i];\n            if (isNaN(val)) {\n                this._invalid = true;\n                return;\n            }\n            this._d.push(round4(val));\n        }\n    };\n    SVGPathRebuilder.prototype.generateStr = function () {\n        this._str = this._invalid ? '' : this._d.join(' ');\n        this._d = [];\n    };\n    SVGPathRebuilder.prototype.getStr = function () {\n        return this._str;\n    };\n    return SVGPathRebuilder;\n}());\nvar svgPath = {\n    brush: function (el) {\n        var style = el.style;\n        var svgEl = el.__svgEl;\n        if (!svgEl) {\n            svgEl = createElement('path');\n            el.__svgEl = svgEl;\n        }\n        if (!el.path) {\n            el.createPathProxy();\n        }\n        var path = el.path;\n        if (el.shapeChanged()) {\n            path.beginPath();\n            el.buildPath(path, el.shape);\n            el.pathUpdated();\n        }\n        var pathVersion = path.getVersion();\n        var elExt = el;\n        var svgPathBuilder = elExt.__svgPathBuilder;\n        if (elExt.__svgPathVersion !== pathVersion || !svgPathBuilder || el.style.strokePercent < 1) {\n            if (!svgPathBuilder) {\n                svgPathBuilder = elExt.__svgPathBuilder = new SVGPathRebuilder();\n            }\n            svgPathBuilder.reset();\n            path.rebuildPath(svgPathBuilder, el.style.strokePercent);\n            svgPathBuilder.generateStr();\n            elExt.__svgPathVersion = pathVersion;\n        }\n        attr(svgEl, 'd', svgPathBuilder.getStr());\n        bindStyle(svgEl, style, el);\n        setTransform(svgEl, el.transform);\n    }\n};\nexport { svgPath as path };\nvar svgImage = {\n    brush: function (el) {\n        var style = el.style;\n        var image = style.image;\n        if (image instanceof HTMLImageElement) {\n            image = image.src;\n        }\n        else if (image instanceof HTMLCanvasElement) {\n            image = image.toDataURL();\n        }\n        if (!image) {\n            return;\n        }\n        var x = style.x || 0;\n        var y = style.y || 0;\n        var dw = style.width;\n        var dh = style.height;\n        var svgEl = el.__svgEl;\n        if (!svgEl) {\n            svgEl = createElement('image');\n            el.__svgEl = svgEl;\n        }\n        if (image !== el.__imageSrc) {\n            attrXLink(svgEl, 'href', image);\n            el.__imageSrc = image;\n        }\n        attr(svgEl, 'width', dw + '');\n        attr(svgEl, 'height', dh + '');\n        attr(svgEl, 'x', x + '');\n        attr(svgEl, 'y', y + '');\n        bindStyle(svgEl, style, el);\n        setTransform(svgEl, el.transform);\n    }\n};\nexport { svgImage as image };\nvar TEXT_ALIGN_TO_ANCHOR = {\n    left: 'start',\n    right: 'end',\n    center: 'middle',\n    middle: 'middle'\n};\nfunction adjustTextY(y, lineHeight, textBaseline) {\n    if (textBaseline === 'top') {\n        y += lineHeight / 2;\n    }\n    else if (textBaseline === 'bottom') {\n        y -= lineHeight / 2;\n    }\n    return y;\n}\nvar svgText = {\n    brush: function (el) {\n        var style = el.style;\n        var text = style.text;\n        text != null && (text += '');\n        if (!text || isNaN(style.x) || isNaN(style.y)) {\n            return;\n        }\n        var textSvgEl = el.__svgEl;\n        if (!textSvgEl) {\n            textSvgEl = createElement('text');\n            attrXML(textSvgEl, 'xml:space', 'preserve');\n            el.__svgEl = textSvgEl;\n        }\n        var font = style.font || DEFAULT_FONT;\n        var textSvgElStyle = textSvgEl.style;\n        textSvgElStyle.font = font;\n        textSvgEl.textContent = text;\n        bindStyle(textSvgEl, style, el);\n        setTransform(textSvgEl, el.transform);\n        var x = style.x || 0;\n        var y = adjustTextY(style.y || 0, getLineHeight(font), style.textBaseline);\n        var textAlign = TEXT_ALIGN_TO_ANCHOR[style.textAlign]\n            || style.textAlign;\n        attr(textSvgEl, 'dominant-baseline', 'central');\n        attr(textSvgEl, 'text-anchor', textAlign);\n        attr(textSvgEl, 'x', x + '');\n        attr(textSvgEl, 'y', y + '');\n    }\n};\nexport { svgText as text };\n","import { createElement } from '../core';\nimport * as zrUtil from '../../core/util';\nimport Path from '../../graphic/Path';\nimport ZRImage from '../../graphic/Image';\nimport TSpan from '../../graphic/TSpan';\nimport { path as svgPath, image as svgImage, text as svgText } from '../graphic';\nvar MARK_UNUSED = '0';\nvar MARK_USED = '1';\nvar Definable = (function () {\n    function Definable(zrId, svgRoot, tagNames, markLabel, domName) {\n        this.nextId = 0;\n        this._domName = '_dom';\n        this.createElement = createElement;\n        this._zrId = zrId;\n        this._svgRoot = svgRoot;\n        this._tagNames = typeof tagNames === 'string' ? [tagNames] : tagNames;\n        this._markLabel = markLabel;\n        if (domName) {\n            this._domName = domName;\n        }\n    }\n    Definable.prototype.getDefs = function (isForceCreating) {\n        var svgRoot = this._svgRoot;\n        var defs = this._svgRoot.getElementsByTagName('defs');\n        if (defs.length === 0) {\n            if (isForceCreating) {\n                var defs_1 = svgRoot.insertBefore(this.createElement('defs'), svgRoot.firstChild);\n                if (!defs_1.contains) {\n                    defs_1.contains = function (el) {\n                        var children = defs_1.children;\n                        if (!children) {\n                            return false;\n                        }\n                        for (var i = children.length - 1; i >= 0; --i) {\n                            if (children[i] === el) {\n                                return true;\n                            }\n                        }\n                        return false;\n                    };\n                }\n                return defs_1;\n            }\n            else {\n                return null;\n            }\n        }\n        else {\n            return defs[0];\n        }\n    };\n    Definable.prototype.doUpdate = function (target, onUpdate) {\n        if (!target) {\n            return;\n        }\n        var defs = this.getDefs(false);\n        if (target[this._domName] && defs.contains(target[this._domName])) {\n            if (typeof onUpdate === 'function') {\n                onUpdate(target);\n            }\n        }\n        else {\n            var dom = this.add(target);\n            if (dom) {\n                target[this._domName] = dom;\n            }\n        }\n    };\n    Definable.prototype.add = function (target) {\n        return null;\n    };\n    Definable.prototype.addDom = function (dom) {\n        var defs = this.getDefs(true);\n        if (dom.parentNode !== defs) {\n            defs.appendChild(dom);\n        }\n    };\n    Definable.prototype.removeDom = function (target) {\n        var defs = this.getDefs(false);\n        if (defs && target[this._domName]) {\n            defs.removeChild(target[this._domName]);\n            target[this._domName] = null;\n        }\n    };\n    Definable.prototype.getDoms = function () {\n        var defs = this.getDefs(false);\n        if (!defs) {\n            return [];\n        }\n        var doms = [];\n        zrUtil.each(this._tagNames, function (tagName) {\n            var tags = defs.getElementsByTagName(tagName);\n            for (var i = 0; i < tags.length; i++) {\n                doms.push(tags[i]);\n            }\n        });\n        return doms;\n    };\n    Definable.prototype.markAllUnused = function () {\n        var doms = this.getDoms();\n        var that = this;\n        zrUtil.each(doms, function (dom) {\n            dom[that._markLabel] = MARK_UNUSED;\n        });\n    };\n    Definable.prototype.markDomUsed = function (dom) {\n        dom && (dom[this._markLabel] = MARK_USED);\n    };\n    ;\n    Definable.prototype.markDomUnused = function (dom) {\n        dom && (dom[this._markLabel] = MARK_UNUSED);\n    };\n    ;\n    Definable.prototype.isDomUnused = function (dom) {\n        return dom && dom[this._markLabel] !== MARK_USED;\n    };\n    Definable.prototype.removeUnused = function () {\n        var _this = this;\n        var defs = this.getDefs(false);\n        if (!defs) {\n            return;\n        }\n        var doms = this.getDoms();\n        zrUtil.each(doms, function (dom) {\n            if (_this.isDomUnused(dom)) {\n                defs.removeChild(dom);\n            }\n        });\n    };\n    Definable.prototype.getSvgProxy = function (displayable) {\n        if (displayable instanceof Path) {\n            return svgPath;\n        }\n        else if (displayable instanceof ZRImage) {\n            return svgImage;\n        }\n        else if (displayable instanceof TSpan) {\n            return svgText;\n        }\n        else {\n            return svgPath;\n        }\n    };\n    Definable.prototype.getSvgElement = function (displayable) {\n        return displayable.__svgEl;\n    };\n    return Definable;\n}());\nexport default Definable;\n","import { __extends } from \"tslib\";\nimport Definable from './Definable';\nimport * as zrUtil from '../../core/util';\nimport * as colorTool from '../../tool/color';\nfunction isLinearGradient(value) {\n    return value.type === 'linear';\n}\nfunction isRadialGradient(value) {\n    return value.type === 'radial';\n}\nfunction isGradient(value) {\n    return value && (value.type === 'linear'\n        || value.type === 'radial');\n}\nvar GradientManager = (function (_super) {\n    __extends(GradientManager, _super);\n    function GradientManager(zrId, svgRoot) {\n        return _super.call(this, zrId, svgRoot, ['linearGradient', 'radialGradient'], '__gradient_in_use__') || this;\n    }\n    GradientManager.prototype.addWithoutUpdate = function (svgElement, displayable) {\n        if (displayable && displayable.style) {\n            var that_1 = this;\n            zrUtil.each(['fill', 'stroke'], function (fillOrStroke) {\n                var value = displayable.style[fillOrStroke];\n                if (isGradient(value)) {\n                    var gradient = value;\n                    var defs = that_1.getDefs(true);\n                    var dom = void 0;\n                    if (gradient.__dom) {\n                        dom = gradient.__dom;\n                        if (!defs.contains(gradient.__dom)) {\n                            that_1.addDom(dom);\n                        }\n                    }\n                    else {\n                        dom = that_1.add(gradient);\n                    }\n                    that_1.markUsed(displayable);\n                    var id = dom.getAttribute('id');\n                    svgElement.setAttribute(fillOrStroke, 'url(#' + id + ')');\n                }\n            });\n        }\n    };\n    GradientManager.prototype.add = function (gradient) {\n        var dom;\n        if (isLinearGradient(gradient)) {\n            dom = this.createElement('linearGradient');\n        }\n        else if (isRadialGradient(gradient)) {\n            dom = this.createElement('radialGradient');\n        }\n        else {\n            zrUtil.logError('Illegal gradient type.');\n            return null;\n        }\n        gradient.id = gradient.id || this.nextId++;\n        dom.setAttribute('id', 'zr' + this._zrId\n            + '-gradient-' + gradient.id);\n        this.updateDom(gradient, dom);\n        this.addDom(dom);\n        return dom;\n    };\n    GradientManager.prototype.update = function (gradient) {\n        if (!isGradient(gradient)) {\n            return;\n        }\n        var that = this;\n        this.doUpdate(gradient, function () {\n            var dom = gradient.__dom;\n            if (!dom) {\n                return;\n            }\n            var tagName = dom.tagName;\n            var type = gradient.type;\n            if (type === 'linear' && tagName === 'linearGradient'\n                || type === 'radial' && tagName === 'radialGradient') {\n                that.updateDom(gradient, gradient.__dom);\n            }\n            else {\n                that.removeDom(gradient);\n                that.add(gradient);\n            }\n        });\n    };\n    GradientManager.prototype.updateDom = function (gradient, dom) {\n        if (isLinearGradient(gradient)) {\n            dom.setAttribute('x1', gradient.x + '');\n            dom.setAttribute('y1', gradient.y + '');\n            dom.setAttribute('x2', gradient.x2 + '');\n            dom.setAttribute('y2', gradient.y2 + '');\n        }\n        else if (isRadialGradient(gradient)) {\n            dom.setAttribute('cx', gradient.x + '');\n            dom.setAttribute('cy', gradient.y + '');\n            dom.setAttribute('r', gradient.r + '');\n        }\n        else {\n            zrUtil.logError('Illegal gradient type.');\n            return;\n        }\n        if (gradient.global) {\n            dom.setAttribute('gradientUnits', 'userSpaceOnUse');\n        }\n        else {\n            dom.setAttribute('gradientUnits', 'objectBoundingBox');\n        }\n        dom.innerHTML = '';\n        var colors = gradient.colorStops;\n        for (var i = 0, len = colors.length; i < len; ++i) {\n            var stop_1 = this.createElement('stop');\n            stop_1.setAttribute('offset', colors[i].offset * 100 + '%');\n            var color = colors[i].color;\n            if (color.indexOf('rgba') > -1) {\n                var opacity = colorTool.parse(color)[3];\n                var hex = colorTool.toHex(color);\n                stop_1.setAttribute('stop-color', '#' + hex);\n                stop_1.setAttribute('stop-opacity', opacity + '');\n            }\n            else {\n                stop_1.setAttribute('stop-color', colors[i].color);\n            }\n            dom.appendChild(stop_1);\n        }\n        gradient.__dom = dom;\n    };\n    GradientManager.prototype.markUsed = function (displayable) {\n        if (displayable.style) {\n            var gradient = displayable.style.fill;\n            if (gradient && gradient.__dom) {\n                _super.prototype.markDomUsed.call(this, gradient.__dom);\n            }\n            gradient = displayable.style.stroke;\n            if (gradient && gradient.__dom) {\n                _super.prototype.markDomUsed.call(this, gradient.__dom);\n            }\n        }\n    };\n    return GradientManager;\n}(Definable));\nexport default GradientManager;\n","import { __extends } from \"tslib\";\nimport Definable from './Definable';\nimport * as zrUtil from '../../core/util';\nimport LRU from '../../core/LRU';\nimport { createOrUpdateImage } from '../../graphic/helper/image';\nimport WeakMap from '../../core/WeakMap';\nfunction isPattern(value) {\n    return value && (!!value.image || !!value.svgElement);\n}\nvar patternDomMap = new WeakMap();\nvar PatternManager = (function (_super) {\n    __extends(PatternManager, _super);\n    function PatternManager(zrId, svgRoot) {\n        return _super.call(this, zrId, svgRoot, ['pattern'], '__pattern_in_use__') || this;\n    }\n    PatternManager.prototype.addWithoutUpdate = function (svgElement, displayable) {\n        if (displayable && displayable.style) {\n            var that_1 = this;\n            zrUtil.each(['fill', 'stroke'], function (fillOrStroke) {\n                var pattern = displayable.style[fillOrStroke];\n                if (isPattern(pattern)) {\n                    var defs = that_1.getDefs(true);\n                    var dom = patternDomMap.get(pattern);\n                    if (dom) {\n                        if (!defs.contains(dom)) {\n                            that_1.addDom(dom);\n                        }\n                    }\n                    else {\n                        dom = that_1.add(pattern);\n                    }\n                    that_1.markUsed(displayable);\n                    var id = dom.getAttribute('id');\n                    svgElement.setAttribute(fillOrStroke, 'url(#' + id + ')');\n                }\n            });\n        }\n    };\n    PatternManager.prototype.add = function (pattern) {\n        if (!isPattern(pattern)) {\n            return;\n        }\n        var dom = this.createElement('pattern');\n        pattern.id = pattern.id == null ? this.nextId++ : pattern.id;\n        dom.setAttribute('id', 'zr' + this._zrId\n            + '-pattern-' + pattern.id);\n        dom.setAttribute('x', '0');\n        dom.setAttribute('y', '0');\n        dom.setAttribute('patternUnits', 'userSpaceOnUse');\n        this.updateDom(pattern, dom);\n        this.addDom(dom);\n        return dom;\n    };\n    PatternManager.prototype.update = function (pattern) {\n        if (!isPattern(pattern)) {\n            return;\n        }\n        var that = this;\n        this.doUpdate(pattern, function () {\n            var dom = patternDomMap.get(pattern);\n            that.updateDom(pattern, dom);\n        });\n    };\n    PatternManager.prototype.updateDom = function (pattern, patternDom) {\n        var svgElement = pattern.svgElement;\n        if (svgElement instanceof SVGElement) {\n            if (svgElement.parentNode !== patternDom) {\n                patternDom.innerHTML = '';\n                patternDom.appendChild(svgElement);\n                patternDom.setAttribute('width', pattern.svgWidth + '');\n                patternDom.setAttribute('height', pattern.svgHeight + '');\n            }\n        }\n        else {\n            var img = void 0;\n            var prevImage = patternDom.getElementsByTagName('image');\n            if (prevImage.length) {\n                if (pattern.image) {\n                    img = prevImage[0];\n                }\n                else {\n                    patternDom.removeChild(prevImage[0]);\n                    return;\n                }\n            }\n            else if (pattern.image) {\n                img = this.createElement('image');\n            }\n            if (img) {\n                var imageSrc = void 0;\n                if (typeof pattern.image === 'string') {\n                    imageSrc = pattern.image;\n                }\n                else if (pattern.image instanceof HTMLImageElement) {\n                    imageSrc = pattern.image.src;\n                }\n                else if (pattern.image instanceof HTMLCanvasElement) {\n                    imageSrc = pattern.image.toDataURL();\n                }\n                if (imageSrc) {\n                    img.setAttribute('href', imageSrc);\n                    img.setAttribute('x', '0');\n                    img.setAttribute('y', '0');\n                    var hostEl = {\n                        dirty: function () { }\n                    };\n                    var createdImage = createOrUpdateImage(imageSrc, img, hostEl, function (img) {\n                        patternDom.setAttribute('width', img.width + '');\n                        patternDom.setAttribute('height', img.height + '');\n                    });\n                    if (createdImage && createdImage.width && createdImage.height) {\n                        patternDom.setAttribute('width', createdImage.width + '');\n                        patternDom.setAttribute('height', createdImage.height + '');\n                    }\n                    patternDom.appendChild(img);\n                }\n            }\n        }\n        var x = pattern.x || 0;\n        var y = pattern.y || 0;\n        var rotation = (pattern.rotation || 0) / Math.PI * 180;\n        var scaleX = pattern.scaleX || 1;\n        var scaleY = pattern.scaleY || 1;\n        var transform = \"translate(\" + x + \", \" + y + \") rotate(\" + rotation + \") scale(\" + scaleX + \", \" + scaleY + \")\";\n        patternDom.setAttribute('patternTransform', transform);\n        patternDomMap.set(pattern, patternDom);\n    };\n    PatternManager.prototype.markUsed = function (displayable) {\n        if (displayable.style) {\n            if (isPattern(displayable.style.fill)) {\n                _super.prototype.markDomUsed.call(this, patternDomMap.get(displayable.style.fill));\n            }\n            if (isPattern(displayable.style.stroke)) {\n                _super.prototype.markDomUsed.call(this, patternDomMap.get(displayable.style.stroke));\n            }\n        }\n    };\n    return PatternManager;\n}(Definable));\nexport default PatternManager;\nvar patternSizeCache = new LRU(50);\n","import { __extends } from \"tslib\";\nimport Definable from './Definable';\nimport * as zrUtil from '../../core/util';\nimport { isClipPathChanged } from '../../canvas/helper';\nfunction generateClipPathsKey(clipPaths) {\n    var key = [];\n    if (clipPaths) {\n        for (var i = 0; i < clipPaths.length; i++) {\n            var clipPath = clipPaths[i];\n            key.push(clipPath.id);\n        }\n    }\n    return key.join(',');\n}\nexport function hasClipPath(displayable) {\n    var clipPaths = displayable.__clipPaths;\n    return clipPaths && clipPaths.length > 0;\n}\nvar ClippathManager = (function (_super) {\n    __extends(ClippathManager, _super);\n    function ClippathManager(zrId, svgRoot) {\n        var _this = _super.call(this, zrId, svgRoot, 'clipPath', '__clippath_in_use__') || this;\n        _this._refGroups = {};\n        _this._keyDuplicateCount = {};\n        return _this;\n    }\n    ClippathManager.prototype.markAllUnused = function () {\n        _super.prototype.markAllUnused.call(this);\n        for (var key in this._refGroups) {\n            this.markDomUnused(this._refGroups[key]);\n        }\n        this._keyDuplicateCount = {};\n    };\n    ClippathManager.prototype._getClipPathGroup = function (displayable, prevDisplayable) {\n        if (!hasClipPath(displayable)) {\n            return;\n        }\n        var clipPaths = displayable.__clipPaths;\n        var keyDuplicateCount = this._keyDuplicateCount;\n        var clipPathKey = generateClipPathsKey(clipPaths);\n        if (isClipPathChanged(clipPaths, prevDisplayable && prevDisplayable.__clipPaths)) {\n            keyDuplicateCount[clipPathKey] = keyDuplicateCount[clipPathKey] || 0;\n            keyDuplicateCount[clipPathKey] && (clipPathKey += '-' + keyDuplicateCount[clipPathKey]);\n            keyDuplicateCount[clipPathKey]++;\n        }\n        return this._refGroups[clipPathKey]\n            || (this._refGroups[clipPathKey] = this.createElement('g'));\n    };\n    ClippathManager.prototype.update = function (displayable, prevDisplayable) {\n        var clipGroup = this._getClipPathGroup(displayable, prevDisplayable);\n        if (clipGroup) {\n            this.markDomUsed(clipGroup);\n            this.updateDom(clipGroup, displayable.__clipPaths);\n        }\n        return clipGroup;\n    };\n    ;\n    ClippathManager.prototype.updateDom = function (parentEl, clipPaths) {\n        if (clipPaths && clipPaths.length > 0) {\n            var defs = this.getDefs(true);\n            var clipPath = clipPaths[0];\n            var clipPathEl = void 0;\n            var id = void 0;\n            if (clipPath._dom) {\n                id = clipPath._dom.getAttribute('id');\n                clipPathEl = clipPath._dom;\n                if (!defs.contains(clipPathEl)) {\n                    defs.appendChild(clipPathEl);\n                }\n            }\n            else {\n                id = 'zr' + this._zrId + '-clip-' + this.nextId;\n                ++this.nextId;\n                clipPathEl = this.createElement('clipPath');\n                clipPathEl.setAttribute('id', id);\n                defs.appendChild(clipPathEl);\n                clipPath._dom = clipPathEl;\n            }\n            var svgProxy = this.getSvgProxy(clipPath);\n            svgProxy.brush(clipPath);\n            var pathEl = this.getSvgElement(clipPath);\n            clipPathEl.innerHTML = '';\n            clipPathEl.appendChild(pathEl);\n            parentEl.setAttribute('clip-path', 'url(#' + id + ')');\n            if (clipPaths.length > 1) {\n                this.updateDom(clipPathEl, clipPaths.slice(1));\n            }\n        }\n        else {\n            if (parentEl) {\n                parentEl.setAttribute('clip-path', 'none');\n            }\n        }\n    };\n    ;\n    ClippathManager.prototype.markUsed = function (displayable) {\n        var _this = this;\n        if (displayable.__clipPaths) {\n            zrUtil.each(displayable.__clipPaths, function (clipPath) {\n                if (clipPath._dom) {\n                    _super.prototype.markDomUsed.call(_this, clipPath._dom);\n                }\n            });\n        }\n    };\n    ;\n    ClippathManager.prototype.removeUnused = function () {\n        _super.prototype.removeUnused.call(this);\n        var newRefGroupsMap = {};\n        for (var key in this._refGroups) {\n            var group = this._refGroups[key];\n            if (!this.isDomUnused(group)) {\n                newRefGroupsMap[key] = group;\n            }\n            else if (group.parentNode) {\n                group.parentNode.removeChild(group);\n            }\n        }\n        this._refGroups = newRefGroupsMap;\n    };\n    return ClippathManager;\n}(Definable));\nexport default ClippathManager;\n","import { __extends } from \"tslib\";\nimport Definable from './Definable';\nvar ShadowManager = (function (_super) {\n    __extends(ShadowManager, _super);\n    function ShadowManager(zrId, svgRoot) {\n        var _this = _super.call(this, zrId, svgRoot, ['filter'], '__filter_in_use__', '_shadowDom') || this;\n        _this._shadowDomMap = {};\n        _this._shadowDomPool = [];\n        return _this;\n    }\n    ShadowManager.prototype._getFromPool = function () {\n        var shadowDom = this._shadowDomPool.pop();\n        if (!shadowDom) {\n            shadowDom = this.createElement('filter');\n            shadowDom.setAttribute('id', 'zr' + this._zrId + '-shadow-' + this.nextId++);\n            var domChild = this.createElement('feDropShadow');\n            shadowDom.appendChild(domChild);\n            this.addDom(shadowDom);\n        }\n        return shadowDom;\n    };\n    ShadowManager.prototype.update = function (svgElement, displayable) {\n        var style = displayable.style;\n        if (hasShadow(style)) {\n            var shadowKey = getShadowKey(displayable);\n            var shadowDom = displayable._shadowDom = this._shadowDomMap[shadowKey];\n            if (!shadowDom) {\n                shadowDom = this._getFromPool();\n                this._shadowDomMap[shadowKey] = shadowDom;\n            }\n            this.updateDom(svgElement, displayable, shadowDom);\n        }\n        else {\n            this.remove(svgElement, displayable);\n        }\n    };\n    ShadowManager.prototype.remove = function (svgElement, displayable) {\n        if (displayable._shadowDom != null) {\n            displayable._shadowDom = null;\n            svgElement.style.filter = '';\n        }\n    };\n    ShadowManager.prototype.updateDom = function (svgElement, displayable, shadowDom) {\n        var domChild = shadowDom.children[0];\n        var style = displayable.style;\n        var globalScale = displayable.getGlobalScale();\n        var scaleX = globalScale[0];\n        var scaleY = globalScale[1];\n        if (!scaleX || !scaleY) {\n            return;\n        }\n        var offsetX = style.shadowOffsetX || 0;\n        var offsetY = style.shadowOffsetY || 0;\n        var blur = style.shadowBlur;\n        var color = style.shadowColor;\n        domChild.setAttribute('dx', offsetX / scaleX + '');\n        domChild.setAttribute('dy', offsetY / scaleY + '');\n        domChild.setAttribute('flood-color', color);\n        var stdDx = blur / 2 / scaleX;\n        var stdDy = blur / 2 / scaleY;\n        var stdDeviation = stdDx + ' ' + stdDy;\n        domChild.setAttribute('stdDeviation', stdDeviation);\n        shadowDom.setAttribute('x', '-100%');\n        shadowDom.setAttribute('y', '-100%');\n        shadowDom.setAttribute('width', '300%');\n        shadowDom.setAttribute('height', '300%');\n        displayable._shadowDom = shadowDom;\n        var id = shadowDom.getAttribute('id');\n        svgElement.style.filter = 'url(#' + id + ')';\n    };\n    ShadowManager.prototype.removeUnused = function () {\n        var defs = this.getDefs(false);\n        if (!defs) {\n            return;\n        }\n        var shadowDomsPool = this._shadowDomPool;\n        var currentUsedShadow = 0;\n        for (var key in this._shadowDomMap) {\n            var dom = this._shadowDomMap[key];\n            shadowDomsPool.push(dom);\n            currentUsedShadow++;\n        }\n        this._shadowDomMap = {};\n    };\n    return ShadowManager;\n}(Definable));\nexport default ShadowManager;\nfunction hasShadow(style) {\n    return style\n        && (style.shadowBlur || style.shadowOffsetX || style.shadowOffsetY);\n}\nfunction getShadowKey(displayable) {\n    var style = displayable.style;\n    var globalScale = displayable.getGlobalScale();\n    return [\n        style.shadowColor,\n        (style.shadowBlur || 0).toFixed(2),\n        (style.shadowOffsetX || 0).toFixed(2),\n        (style.shadowOffsetY || 0).toFixed(2),\n        globalScale[0],\n        globalScale[1]\n    ].join(',');\n}\n","import { createElement } from './core';\nimport * as util from '../core/util';\nimport Path from '../graphic/Path';\nimport ZRImage from '../graphic/Image';\nimport TSpan from '../graphic/TSpan';\nimport arrayDiff from '../core/arrayDiff';\nimport GradientManager from './helper/GradientManager';\nimport PatternManager from './helper/PatternManager';\nimport ClippathManager, { hasClipPath } from './helper/ClippathManager';\nimport ShadowManager from './helper/ShadowManager';\nimport { path as svgPath, image as svgImage, text as svgText } from './graphic';\nfunction parseInt10(val) {\n    return parseInt(val, 10);\n}\nfunction getSvgProxy(el) {\n    if (el instanceof Path) {\n        return svgPath;\n    }\n    else if (el instanceof ZRImage) {\n        return svgImage;\n    }\n    else if (el instanceof TSpan) {\n        return svgText;\n    }\n    else {\n        return svgPath;\n    }\n}\nfunction checkParentAvailable(parent, child) {\n    return child && parent && child.parentNode !== parent;\n}\nfunction insertAfter(parent, child, prevSibling) {\n    if (checkParentAvailable(parent, child) && prevSibling) {\n        var nextSibling = prevSibling.nextSibling;\n        nextSibling ? parent.insertBefore(child, nextSibling)\n            : parent.appendChild(child);\n    }\n}\nfunction prepend(parent, child) {\n    if (checkParentAvailable(parent, child)) {\n        var firstChild = parent.firstChild;\n        firstChild ? parent.insertBefore(child, firstChild)\n            : parent.appendChild(child);\n    }\n}\nfunction remove(parent, child) {\n    if (child && parent && child.parentNode === parent) {\n        parent.removeChild(child);\n    }\n}\nfunction removeFromMyParent(child) {\n    if (child && child.parentNode) {\n        child.parentNode.removeChild(child);\n    }\n}\nfunction getSvgElement(displayable) {\n    return displayable.__svgEl;\n}\nvar SVGPainter = (function () {\n    function SVGPainter(root, storage, opts, zrId) {\n        this.type = 'svg';\n        this.refreshHover = createMethodNotSupport('refreshHover');\n        this.pathToImage = createMethodNotSupport('pathToImage');\n        this.configLayer = createMethodNotSupport('configLayer');\n        this.root = root;\n        this.storage = storage;\n        this._opts = opts = util.extend({}, opts || {});\n        var svgDom = createElement('svg');\n        svgDom.setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns', 'http://www.w3.org/2000/svg');\n        svgDom.setAttributeNS('http://www.w3.org/2000/xmlns/', 'xmlns:xlink', 'http://www.w3.org/1999/xlink');\n        svgDom.setAttribute('version', '1.1');\n        svgDom.setAttribute('baseProfile', 'full');\n        svgDom.style.cssText = 'user-select:none;position:absolute;left:0;top:0;';\n        var bgRoot = createElement('g');\n        svgDom.appendChild(bgRoot);\n        var svgRoot = createElement('g');\n        svgDom.appendChild(svgRoot);\n        this._gradientManager = new GradientManager(zrId, svgRoot);\n        this._patternManager = new PatternManager(zrId, svgRoot);\n        this._clipPathManager = new ClippathManager(zrId, svgRoot);\n        this._shadowManager = new ShadowManager(zrId, svgRoot);\n        var viewport = document.createElement('div');\n        viewport.style.cssText = 'overflow:hidden;position:relative';\n        this._svgDom = svgDom;\n        this._svgRoot = svgRoot;\n        this._backgroundRoot = bgRoot;\n        this._viewport = viewport;\n        root.appendChild(viewport);\n        viewport.appendChild(svgDom);\n        this.resize(opts.width, opts.height);\n        this._visibleList = [];\n    }\n    SVGPainter.prototype.getType = function () {\n        return 'svg';\n    };\n    SVGPainter.prototype.getViewportRoot = function () {\n        return this._viewport;\n    };\n    SVGPainter.prototype.getSvgDom = function () {\n        return this._svgDom;\n    };\n    SVGPainter.prototype.getSvgRoot = function () {\n        return this._svgRoot;\n    };\n    SVGPainter.prototype.getViewportRootOffset = function () {\n        var viewportRoot = this.getViewportRoot();\n        if (viewportRoot) {\n            return {\n                offsetLeft: viewportRoot.offsetLeft || 0,\n                offsetTop: viewportRoot.offsetTop || 0\n            };\n        }\n    };\n    SVGPainter.prototype.refresh = function () {\n        var list = this.storage.getDisplayList(true);\n        this._paintList(list);\n    };\n    SVGPainter.prototype.setBackgroundColor = function (backgroundColor) {\n        if (this._backgroundRoot && this._backgroundNode) {\n            this._backgroundRoot.removeChild(this._backgroundNode);\n        }\n        var bgNode = createElement('rect');\n        bgNode.setAttribute('width', this.getWidth());\n        bgNode.setAttribute('height', this.getHeight());\n        bgNode.setAttribute('x', 0);\n        bgNode.setAttribute('y', 0);\n        bgNode.setAttribute('id', 0);\n        bgNode.style.fill = backgroundColor;\n        this._backgroundRoot.appendChild(bgNode);\n        this._backgroundNode = bgNode;\n    };\n    SVGPainter.prototype.createSVGElement = function (tag) {\n        return createElement(tag);\n    };\n    SVGPainter.prototype.paintOne = function (el) {\n        var svgProxy = getSvgProxy(el);\n        svgProxy && svgProxy.brush(el);\n        return getSvgElement(el);\n    };\n    SVGPainter.prototype._paintList = function (list) {\n        var gradientManager = this._gradientManager;\n        var patternManager = this._patternManager;\n        var clipPathManager = this._clipPathManager;\n        var shadowManager = this._shadowManager;\n        gradientManager.markAllUnused();\n        patternManager.markAllUnused();\n        clipPathManager.markAllUnused();\n        shadowManager.markAllUnused();\n        var svgRoot = this._svgRoot;\n        var visibleList = this._visibleList;\n        var listLen = list.length;\n        var newVisibleList = [];\n        for (var i = 0; i < listLen; i++) {\n            var displayable = list[i];\n            var svgProxy = getSvgProxy(displayable);\n            var svgElement = getSvgElement(displayable);\n            if (!displayable.invisible) {\n                if (displayable.__dirty || !svgElement) {\n                    svgProxy && svgProxy.brush(displayable);\n                    svgElement = getSvgElement(displayable);\n                    if (svgElement && displayable.style) {\n                        gradientManager.update(displayable.style.fill);\n                        gradientManager.update(displayable.style.stroke);\n                        patternManager.update(displayable.style.fill);\n                        patternManager.update(displayable.style.stroke);\n                        shadowManager.update(svgElement, displayable);\n                    }\n                    displayable.__dirty = 0;\n                }\n                if (svgElement) {\n                    newVisibleList.push(displayable);\n                }\n            }\n        }\n        var diff = arrayDiff(visibleList, newVisibleList);\n        var prevSvgElement;\n        var topPrevSvgElement;\n        for (var i = 0; i < diff.length; i++) {\n            var item = diff[i];\n            if (item.removed) {\n                for (var k = 0; k < item.count; k++) {\n                    var displayable = visibleList[item.indices[k]];\n                    var svgElement = getSvgElement(displayable);\n                    hasClipPath(displayable) ? removeFromMyParent(svgElement)\n                        : remove(svgRoot, svgElement);\n                }\n            }\n        }\n        var prevDisplayable;\n        var currentClipGroup;\n        for (var i = 0; i < diff.length; i++) {\n            var item = diff[i];\n            var isAdd = item.added;\n            if (item.removed) {\n                continue;\n            }\n            for (var k = 0; k < item.count; k++) {\n                var displayable = newVisibleList[item.indices[k]];\n                var clipGroup = clipPathManager.update(displayable, prevDisplayable);\n                if (clipGroup !== currentClipGroup) {\n                    prevSvgElement = topPrevSvgElement;\n                    if (clipGroup) {\n                        prevSvgElement ? insertAfter(svgRoot, clipGroup, prevSvgElement)\n                            : prepend(svgRoot, clipGroup);\n                        topPrevSvgElement = clipGroup;\n                        prevSvgElement = null;\n                    }\n                    currentClipGroup = clipGroup;\n                }\n                var svgElement = getSvgElement(displayable);\n                prevSvgElement\n                    ? insertAfter(currentClipGroup || svgRoot, svgElement, prevSvgElement)\n                    : prepend(currentClipGroup || svgRoot, svgElement);\n                prevSvgElement = svgElement || prevSvgElement;\n                if (!currentClipGroup) {\n                    topPrevSvgElement = prevSvgElement;\n                }\n                gradientManager.markUsed(displayable);\n                gradientManager.addWithoutUpdate(svgElement, displayable);\n                patternManager.markUsed(displayable);\n                patternManager.addWithoutUpdate(svgElement, displayable);\n                clipPathManager.markUsed(displayable);\n                prevDisplayable = displayable;\n            }\n        }\n        gradientManager.removeUnused();\n        patternManager.removeUnused();\n        clipPathManager.removeUnused();\n        shadowManager.removeUnused();\n        this._visibleList = newVisibleList;\n    };\n    SVGPainter.prototype._getDefs = function (isForceCreating) {\n        var svgRoot = this._svgDom;\n        var defs = svgRoot.getElementsByTagName('defs');\n        if (defs.length === 0) {\n            if (isForceCreating) {\n                var defs_1 = svgRoot.insertBefore(createElement('defs'), svgRoot.firstChild);\n                if (!defs_1.contains) {\n                    defs_1.contains = function (el) {\n                        var children = defs_1.children;\n                        if (!children) {\n                            return false;\n                        }\n                        for (var i = children.length - 1; i >= 0; --i) {\n                            if (children[i] === el) {\n                                return true;\n                            }\n                        }\n                        return false;\n                    };\n                }\n                return defs_1;\n            }\n            else {\n                return null;\n            }\n        }\n        else {\n            return defs[0];\n        }\n    };\n    SVGPainter.prototype.resize = function (width, height) {\n        var viewport = this._viewport;\n        viewport.style.display = 'none';\n        var opts = this._opts;\n        width != null && (opts.width = width);\n        height != null && (opts.height = height);\n        width = this._getSize(0);\n        height = this._getSize(1);\n        viewport.style.display = '';\n        if (this._width !== width || this._height !== height) {\n            this._width = width;\n            this._height = height;\n            var viewportStyle = viewport.style;\n            viewportStyle.width = width + 'px';\n            viewportStyle.height = height + 'px';\n            var svgRoot = this._svgDom;\n            svgRoot.setAttribute('width', width + '');\n            svgRoot.setAttribute('height', height + '');\n        }\n        if (this._backgroundNode) {\n            this._backgroundNode.setAttribute('width', width);\n            this._backgroundNode.setAttribute('height', height);\n        }\n    };\n    SVGPainter.prototype.getWidth = function () {\n        return this._width;\n    };\n    SVGPainter.prototype.getHeight = function () {\n        return this._height;\n    };\n    SVGPainter.prototype._getSize = function (whIdx) {\n        var opts = this._opts;\n        var wh = ['width', 'height'][whIdx];\n        var cwh = ['clientWidth', 'clientHeight'][whIdx];\n        var plt = ['paddingLeft', 'paddingTop'][whIdx];\n        var prb = ['paddingRight', 'paddingBottom'][whIdx];\n        if (opts[wh] != null && opts[wh] !== 'auto') {\n            return parseFloat(opts[wh]);\n        }\n        var root = this.root;\n        var stl = document.defaultView.getComputedStyle(root);\n        return ((root[cwh] || parseInt10(stl[wh]) || parseInt10(root.style[wh]))\n            - (parseInt10(stl[plt]) || 0)\n            - (parseInt10(stl[prb]) || 0)) | 0;\n    };\n    SVGPainter.prototype.dispose = function () {\n        this.root.innerHTML = '';\n        this._svgRoot\n            = this._backgroundRoot\n                = this._svgDom\n                    = this._backgroundNode\n                        = this._viewport\n                            = this.storage\n                                = null;\n    };\n    SVGPainter.prototype.clear = function () {\n        var viewportNode = this._viewport;\n        if (viewportNode && viewportNode.parentNode) {\n            viewportNode.parentNode.removeChild(viewportNode);\n        }\n    };\n    SVGPainter.prototype.toDataURL = function () {\n        this.refresh();\n        var svgDom = this._svgDom;\n        var outerHTML = svgDom.outerHTML\n            || (svgDom.parentNode && svgDom.parentNode).innerHTML;\n        var html = encodeURIComponent(outerHTML.replace(/></g, '>\\n\\r<'));\n        return 'data:image/svg+xml;charset=UTF-8,' + html;\n    };\n    return SVGPainter;\n}());\nfunction createMethodNotSupport(method) {\n    return function () {\n        util.logError('In SVG mode painter not support method \"' + method + '\"');\n    };\n}\nexport default SVGPainter;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SVGPainter from 'zrender/lib/svg/Painter';\nexport function install(registers) {\n  registers.registerPainter('svg', SVGPainter);\n}","import { __extends } from \"tslib\";\nimport * as util from '../core/util';\nimport { devicePixelRatio } from '../config';\nimport Eventful from '../core/Eventful';\nimport Element from '../Element';\nimport { getCanvasGradient } from './helper';\nimport { createCanvasPattern } from './graphic';\nimport BoundingRect from '../core/BoundingRect';\nfunction returnFalse() {\n    return false;\n}\nfunction createDom(id, painter, dpr) {\n    var newDom = util.createCanvas();\n    var width = painter.getWidth();\n    var height = painter.getHeight();\n    var newDomStyle = newDom.style;\n    if (newDomStyle) {\n        newDomStyle.position = 'absolute';\n        newDomStyle.left = '0';\n        newDomStyle.top = '0';\n        newDomStyle.width = width + 'px';\n        newDomStyle.height = height + 'px';\n        newDom.setAttribute('data-zr-dom-id', id);\n    }\n    newDom.width = width * dpr;\n    newDom.height = height * dpr;\n    return newDom;\n}\n;\nvar Layer = (function (_super) {\n    __extends(Layer, _super);\n    function Layer(id, painter, dpr) {\n        var _this = _super.call(this) || this;\n        _this.motionBlur = false;\n        _this.lastFrameAlpha = 0.7;\n        _this.dpr = 1;\n        _this.virtual = false;\n        _this.config = {};\n        _this.incremental = false;\n        _this.zlevel = 0;\n        _this.maxRepaintRectCount = 5;\n        _this.__dirty = true;\n        _this.__firstTimePaint = true;\n        _this.__used = false;\n        _this.__drawIndex = 0;\n        _this.__startIndex = 0;\n        _this.__endIndex = 0;\n        _this.__prevStartIndex = null;\n        _this.__prevEndIndex = null;\n        var dom;\n        dpr = dpr || devicePixelRatio;\n        if (typeof id === 'string') {\n            dom = createDom(id, painter, dpr);\n        }\n        else if (util.isObject(id)) {\n            dom = id;\n            id = dom.id;\n        }\n        _this.id = id;\n        _this.dom = dom;\n        var domStyle = dom.style;\n        if (domStyle) {\n            dom.onselectstart = returnFalse;\n            domStyle.webkitUserSelect = 'none';\n            domStyle.userSelect = 'none';\n            domStyle.webkitTapHighlightColor = 'rgba(0,0,0,0)';\n            domStyle['-webkit-touch-callout'] = 'none';\n            domStyle.padding = '0';\n            domStyle.margin = '0';\n            domStyle.borderWidth = '0';\n        }\n        _this.domBack = null;\n        _this.ctxBack = null;\n        _this.painter = painter;\n        _this.config = null;\n        _this.dpr = dpr;\n        return _this;\n    }\n    Layer.prototype.getElementCount = function () {\n        return this.__endIndex - this.__startIndex;\n    };\n    Layer.prototype.afterBrush = function () {\n        this.__prevStartIndex = this.__startIndex;\n        this.__prevEndIndex = this.__endIndex;\n    };\n    Layer.prototype.initContext = function () {\n        this.ctx = this.dom.getContext('2d');\n        this.ctx.dpr = this.dpr;\n    };\n    Layer.prototype.setUnpainted = function () {\n        this.__firstTimePaint = true;\n    };\n    Layer.prototype.createBackBuffer = function () {\n        var dpr = this.dpr;\n        this.domBack = createDom('back-' + this.id, this.painter, dpr);\n        this.ctxBack = this.domBack.getContext('2d');\n        if (dpr !== 1) {\n            this.ctxBack.scale(dpr, dpr);\n        }\n    };\n    Layer.prototype.createRepaintRects = function (displayList, prevList, viewWidth, viewHeight) {\n        if (this.__firstTimePaint) {\n            this.__firstTimePaint = false;\n            return null;\n        }\n        var mergedRepaintRects = [];\n        var maxRepaintRectCount = this.maxRepaintRectCount;\n        var full = false;\n        var pendingRect = new BoundingRect(0, 0, 0, 0);\n        function addRectToMergePool(rect) {\n            if (!rect.isFinite() || rect.isZero()) {\n                return;\n            }\n            if (mergedRepaintRects.length === 0) {\n                var boundingRect = new BoundingRect(0, 0, 0, 0);\n                boundingRect.copy(rect);\n                mergedRepaintRects.push(boundingRect);\n            }\n            else {\n                var isMerged = false;\n                var minDeltaArea = Infinity;\n                var bestRectToMergeIdx = 0;\n                for (var i = 0; i < mergedRepaintRects.length; ++i) {\n                    var mergedRect = mergedRepaintRects[i];\n                    if (mergedRect.intersect(rect)) {\n                        var pendingRect_1 = new BoundingRect(0, 0, 0, 0);\n                        pendingRect_1.copy(mergedRect);\n                        pendingRect_1.union(rect);\n                        mergedRepaintRects[i] = pendingRect_1;\n                        isMerged = true;\n                        break;\n                    }\n                    else if (full) {\n                        pendingRect.copy(rect);\n                        pendingRect.union(mergedRect);\n                        var aArea = rect.width * rect.height;\n                        var bArea = mergedRect.width * mergedRect.height;\n                        var pendingArea = pendingRect.width * pendingRect.height;\n                        var deltaArea = pendingArea - aArea - bArea;\n                        if (deltaArea < minDeltaArea) {\n                            minDeltaArea = deltaArea;\n                            bestRectToMergeIdx = i;\n                        }\n                    }\n                }\n                if (full) {\n                    mergedRepaintRects[bestRectToMergeIdx].union(rect);\n                    isMerged = true;\n                }\n                if (!isMerged) {\n                    var boundingRect = new BoundingRect(0, 0, 0, 0);\n                    boundingRect.copy(rect);\n                    mergedRepaintRects.push(boundingRect);\n                }\n                if (!full) {\n                    full = mergedRepaintRects.length >= maxRepaintRectCount;\n                }\n            }\n        }\n        for (var i = this.__startIndex; i < this.__endIndex; ++i) {\n            var el = displayList[i];\n            if (el) {\n                var shouldPaint = el.shouldBePainted(viewWidth, viewHeight, true, true);\n                var prevRect = el.__isRendered && ((el.__dirty & Element.REDARAW_BIT) || !shouldPaint)\n                    ? el.getPrevPaintRect()\n                    : null;\n                if (prevRect) {\n                    addRectToMergePool(prevRect);\n                }\n                var curRect = shouldPaint && ((el.__dirty & Element.REDARAW_BIT) || !el.__isRendered)\n                    ? el.getPaintRect()\n                    : null;\n                if (curRect) {\n                    addRectToMergePool(curRect);\n                }\n            }\n        }\n        for (var i = this.__prevStartIndex; i < this.__prevEndIndex; ++i) {\n            var el = prevList[i];\n            var shouldPaint = el.shouldBePainted(viewWidth, viewHeight, true, true);\n            if (el && (!shouldPaint || !el.__zr) && el.__isRendered) {\n                var prevRect = el.getPrevPaintRect();\n                if (prevRect) {\n                    addRectToMergePool(prevRect);\n                }\n            }\n        }\n        var hasIntersections;\n        do {\n            hasIntersections = false;\n            for (var i = 0; i < mergedRepaintRects.length;) {\n                if (mergedRepaintRects[i].isZero()) {\n                    mergedRepaintRects.splice(i, 1);\n                    continue;\n                }\n                for (var j = i + 1; j < mergedRepaintRects.length;) {\n                    if (mergedRepaintRects[i].intersect(mergedRepaintRects[j])) {\n                        hasIntersections = true;\n                        mergedRepaintRects[i].union(mergedRepaintRects[j]);\n                        mergedRepaintRects.splice(j, 1);\n                    }\n                    else {\n                        j++;\n                    }\n                }\n                i++;\n            }\n        } while (hasIntersections);\n        this._paintRects = mergedRepaintRects;\n        return mergedRepaintRects;\n    };\n    Layer.prototype.debugGetPaintRects = function () {\n        return (this._paintRects || []).slice();\n    };\n    Layer.prototype.resize = function (width, height) {\n        var dpr = this.dpr;\n        var dom = this.dom;\n        var domStyle = dom.style;\n        var domBack = this.domBack;\n        if (domStyle) {\n            domStyle.width = width + 'px';\n            domStyle.height = height + 'px';\n        }\n        dom.width = width * dpr;\n        dom.height = height * dpr;\n        if (domBack) {\n            domBack.width = width * dpr;\n            domBack.height = height * dpr;\n            if (dpr !== 1) {\n                this.ctxBack.scale(dpr, dpr);\n            }\n        }\n    };\n    Layer.prototype.clear = function (clearAll, clearColor, repaintRects) {\n        var dom = this.dom;\n        var ctx = this.ctx;\n        var width = dom.width;\n        var height = dom.height;\n        clearColor = clearColor || this.clearColor;\n        var haveMotionBLur = this.motionBlur && !clearAll;\n        var lastFrameAlpha = this.lastFrameAlpha;\n        var dpr = this.dpr;\n        var self = this;\n        if (haveMotionBLur) {\n            if (!this.domBack) {\n                this.createBackBuffer();\n            }\n            this.ctxBack.globalCompositeOperation = 'copy';\n            this.ctxBack.drawImage(dom, 0, 0, width / dpr, height / dpr);\n        }\n        var domBack = this.domBack;\n        function doClear(x, y, width, height) {\n            ctx.clearRect(x, y, width, height);\n            if (clearColor && clearColor !== 'transparent') {\n                var clearColorGradientOrPattern = void 0;\n                if (util.isGradientObject(clearColor)) {\n                    clearColorGradientOrPattern = clearColor.__canvasGradient\n                        || getCanvasGradient(ctx, clearColor, {\n                            x: 0,\n                            y: 0,\n                            width: width,\n                            height: height\n                        });\n                    clearColor.__canvasGradient = clearColorGradientOrPattern;\n                }\n                else if (util.isPatternObject(clearColor)) {\n                    clearColorGradientOrPattern = createCanvasPattern(ctx, clearColor, {\n                        dirty: function () {\n                            self.setUnpainted();\n                            self.__painter.refresh();\n                        }\n                    });\n                }\n                ctx.save();\n                ctx.fillStyle = clearColorGradientOrPattern || clearColor;\n                ctx.fillRect(x, y, width, height);\n                ctx.restore();\n            }\n            if (haveMotionBLur) {\n                ctx.save();\n                ctx.globalAlpha = lastFrameAlpha;\n                ctx.drawImage(domBack, x, y, width, height);\n                ctx.restore();\n            }\n        }\n        ;\n        if (!repaintRects || haveMotionBLur) {\n            doClear(0, 0, width, height);\n        }\n        else if (repaintRects.length) {\n            util.each(repaintRects, function (rect) {\n                doClear(rect.x * dpr, rect.y * dpr, rect.width * dpr, rect.height * dpr);\n            });\n        }\n    };\n    return Layer;\n}(Eventful));\nexport default Layer;\n","import { devicePixelRatio } from '../config';\nimport * as util from '../core/util';\nimport Layer from './Layer';\nimport requestAnimationFrame from '../animation/requestAnimationFrame';\nimport ZRImage from '../graphic/Image';\nimport env from '../core/env';\nimport { brush, brushSingle } from './graphic';\nimport Element from '../Element';\nvar HOVER_LAYER_ZLEVEL = 1e5;\nvar CANVAS_ZLEVEL = 314159;\nvar EL_AFTER_INCREMENTAL_INC = 0.01;\nvar INCREMENTAL_INC = 0.001;\nfunction parseInt10(val) {\n    return parseInt(val, 10);\n}\nfunction isLayerValid(layer) {\n    if (!layer) {\n        return false;\n    }\n    if (layer.__builtin__) {\n        return true;\n    }\n    if (typeof (layer.resize) !== 'function'\n        || typeof (layer.refresh) !== 'function') {\n        return false;\n    }\n    return true;\n}\nfunction createRoot(width, height) {\n    var domRoot = document.createElement('div');\n    domRoot.style.cssText = [\n        'position:relative',\n        'width:' + width + 'px',\n        'height:' + height + 'px',\n        'padding:0',\n        'margin:0',\n        'border-width:0'\n    ].join(';') + ';';\n    return domRoot;\n}\nvar CanvasPainter = (function () {\n    function CanvasPainter(root, storage, opts, id) {\n        this.type = 'canvas';\n        this._zlevelList = [];\n        this._prevDisplayList = [];\n        this._layers = {};\n        this._layerConfig = {};\n        this._needsManuallyCompositing = false;\n        this.type = 'canvas';\n        var singleCanvas = !root.nodeName\n            || root.nodeName.toUpperCase() === 'CANVAS';\n        this._opts = opts = util.extend({}, opts || {});\n        this.dpr = opts.devicePixelRatio || devicePixelRatio;\n        this._singleCanvas = singleCanvas;\n        this.root = root;\n        var rootStyle = root.style;\n        if (rootStyle) {\n            rootStyle.webkitTapHighlightColor = 'transparent';\n            rootStyle.webkitUserSelect = 'none';\n            rootStyle.userSelect = 'none';\n            rootStyle['-webkit-touch-callout'] = 'none';\n            root.innerHTML = '';\n        }\n        this.storage = storage;\n        var zlevelList = this._zlevelList;\n        this._prevDisplayList = [];\n        var layers = this._layers;\n        if (!singleCanvas) {\n            this._width = this._getSize(0);\n            this._height = this._getSize(1);\n            var domRoot = this._domRoot = createRoot(this._width, this._height);\n            root.appendChild(domRoot);\n        }\n        else {\n            var rootCanvas = root;\n            var width = rootCanvas.width;\n            var height = rootCanvas.height;\n            if (opts.width != null) {\n                width = opts.width;\n            }\n            if (opts.height != null) {\n                height = opts.height;\n            }\n            this.dpr = opts.devicePixelRatio || 1;\n            rootCanvas.width = width * this.dpr;\n            rootCanvas.height = height * this.dpr;\n            this._width = width;\n            this._height = height;\n            var mainLayer = new Layer(rootCanvas, this, this.dpr);\n            mainLayer.__builtin__ = true;\n            mainLayer.initContext();\n            layers[CANVAS_ZLEVEL] = mainLayer;\n            mainLayer.zlevel = CANVAS_ZLEVEL;\n            zlevelList.push(CANVAS_ZLEVEL);\n            this._domRoot = root;\n        }\n    }\n    CanvasPainter.prototype.getType = function () {\n        return 'canvas';\n    };\n    CanvasPainter.prototype.isSingleCanvas = function () {\n        return this._singleCanvas;\n    };\n    CanvasPainter.prototype.getViewportRoot = function () {\n        return this._domRoot;\n    };\n    CanvasPainter.prototype.getViewportRootOffset = function () {\n        var viewportRoot = this.getViewportRoot();\n        if (viewportRoot) {\n            return {\n                offsetLeft: viewportRoot.offsetLeft || 0,\n                offsetTop: viewportRoot.offsetTop || 0\n            };\n        }\n    };\n    CanvasPainter.prototype.refresh = function (paintAll) {\n        var list = this.storage.getDisplayList(true);\n        var prevList = this._prevDisplayList;\n        var zlevelList = this._zlevelList;\n        this._redrawId = Math.random();\n        this._paintList(list, prevList, paintAll, this._redrawId);\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            var layer = this._layers[z];\n            if (!layer.__builtin__ && layer.refresh) {\n                var clearColor = i === 0 ? this._backgroundColor : null;\n                layer.refresh(clearColor);\n            }\n        }\n        if (this._opts.useDirtyRect) {\n            this._prevDisplayList = list.slice();\n        }\n        return this;\n    };\n    CanvasPainter.prototype.refreshHover = function () {\n        this._paintHoverList(this.storage.getDisplayList(false));\n    };\n    CanvasPainter.prototype._paintHoverList = function (list) {\n        var len = list.length;\n        var hoverLayer = this._hoverlayer;\n        hoverLayer && hoverLayer.clear();\n        if (!len) {\n            return;\n        }\n        var scope = {\n            inHover: true,\n            viewWidth: this._width,\n            viewHeight: this._height\n        };\n        var ctx;\n        for (var i = 0; i < len; i++) {\n            var el = list[i];\n            if (el.__inHover) {\n                if (!hoverLayer) {\n                    hoverLayer = this._hoverlayer = this.getLayer(HOVER_LAYER_ZLEVEL);\n                }\n                if (!ctx) {\n                    ctx = hoverLayer.ctx;\n                    ctx.save();\n                }\n                brush(ctx, el, scope, i === len - 1);\n            }\n        }\n        if (ctx) {\n            ctx.restore();\n        }\n    };\n    CanvasPainter.prototype.getHoverLayer = function () {\n        return this.getLayer(HOVER_LAYER_ZLEVEL);\n    };\n    CanvasPainter.prototype.paintOne = function (ctx, el) {\n        brushSingle(ctx, el);\n    };\n    CanvasPainter.prototype._paintList = function (list, prevList, paintAll, redrawId) {\n        if (this._redrawId !== redrawId) {\n            return;\n        }\n        paintAll = paintAll || false;\n        this._updateLayerStatus(list);\n        var _a = this._doPaintList(list, prevList, paintAll), finished = _a.finished, needsRefreshHover = _a.needsRefreshHover;\n        if (this._needsManuallyCompositing) {\n            this._compositeManually();\n        }\n        if (needsRefreshHover) {\n            this._paintHoverList(list);\n        }\n        if (!finished) {\n            var self_1 = this;\n            requestAnimationFrame(function () {\n                self_1._paintList(list, prevList, paintAll, redrawId);\n            });\n        }\n        else {\n            this.eachLayer(function (layer) {\n                layer.afterBrush && layer.afterBrush();\n            });\n        }\n    };\n    CanvasPainter.prototype._compositeManually = function () {\n        var ctx = this.getLayer(CANVAS_ZLEVEL).ctx;\n        var width = this._domRoot.width;\n        var height = this._domRoot.height;\n        ctx.clearRect(0, 0, width, height);\n        this.eachBuiltinLayer(function (layer) {\n            if (layer.virtual) {\n                ctx.drawImage(layer.dom, 0, 0, width, height);\n            }\n        });\n    };\n    CanvasPainter.prototype._doPaintList = function (list, prevList, paintAll) {\n        var _this = this;\n        var layerList = [];\n        var useDirtyRect = this._opts.useDirtyRect;\n        for (var zi = 0; zi < this._zlevelList.length; zi++) {\n            var zlevel = this._zlevelList[zi];\n            var layer = this._layers[zlevel];\n            if (layer.__builtin__\n                && layer !== this._hoverlayer\n                && (layer.__dirty || paintAll)) {\n                layerList.push(layer);\n            }\n        }\n        var finished = true;\n        var needsRefreshHover = false;\n        var _loop_1 = function (k) {\n            var layer = layerList[k];\n            var ctx = layer.ctx;\n            var repaintRects = useDirtyRect\n                && layer.createRepaintRects(list, prevList, this_1._width, this_1._height);\n            ctx.save();\n            var start = paintAll ? layer.__startIndex : layer.__drawIndex;\n            var useTimer = !paintAll && layer.incremental && Date.now;\n            var startTime = useTimer && Date.now();\n            var clearColor = layer.zlevel === this_1._zlevelList[0]\n                ? this_1._backgroundColor : null;\n            if (layer.__startIndex === layer.__endIndex) {\n                layer.clear(false, clearColor, repaintRects);\n            }\n            else if (start === layer.__startIndex) {\n                var firstEl = list[start];\n                if (!firstEl.incremental || !firstEl.notClear || paintAll) {\n                    layer.clear(false, clearColor, repaintRects);\n                }\n            }\n            if (start === -1) {\n                console.error('For some unknown reason. drawIndex is -1');\n                start = layer.__startIndex;\n            }\n            var i;\n            var repaint = function (repaintRect) {\n                var scope = {\n                    inHover: false,\n                    allClipped: false,\n                    prevEl: null,\n                    viewWidth: _this._width,\n                    viewHeight: _this._height\n                };\n                for (i = start; i < layer.__endIndex; i++) {\n                    var el = list[i];\n                    if (el.__inHover) {\n                        needsRefreshHover = true;\n                    }\n                    _this._doPaintEl(el, layer, useDirtyRect, repaintRect, scope, i === layer.__endIndex - 1);\n                    if (useTimer) {\n                        var dTime = Date.now() - startTime;\n                        if (dTime > 15) {\n                            break;\n                        }\n                    }\n                }\n                if (scope.prevElClipPaths) {\n                    ctx.restore();\n                }\n            };\n            if (repaintRects) {\n                if (repaintRects.length === 0) {\n                    i = layer.__endIndex;\n                }\n                else {\n                    var dpr = this_1.dpr;\n                    for (var r = 0; r < repaintRects.length; ++r) {\n                        var rect = repaintRects[r];\n                        ctx.save();\n                        ctx.beginPath();\n                        ctx.rect(rect.x * dpr, rect.y * dpr, rect.width * dpr, rect.height * dpr);\n                        ctx.clip();\n                        repaint(rect);\n                        ctx.restore();\n                    }\n                }\n            }\n            else {\n                ctx.save();\n                repaint();\n                ctx.restore();\n            }\n            layer.__drawIndex = i;\n            if (layer.__drawIndex < layer.__endIndex) {\n                finished = false;\n            }\n        };\n        var this_1 = this;\n        for (var k = 0; k < layerList.length; k++) {\n            _loop_1(k);\n        }\n        if (env.wxa) {\n            util.each(this._layers, function (layer) {\n                if (layer && layer.ctx && layer.ctx.draw) {\n                    layer.ctx.draw();\n                }\n            });\n        }\n        return {\n            finished: finished,\n            needsRefreshHover: needsRefreshHover\n        };\n    };\n    CanvasPainter.prototype._doPaintEl = function (el, currentLayer, useDirtyRect, repaintRect, scope, isLast) {\n        var ctx = currentLayer.ctx;\n        if (useDirtyRect) {\n            var paintRect = el.getPaintRect();\n            if (!repaintRect || paintRect && paintRect.intersect(repaintRect)) {\n                brush(ctx, el, scope, isLast);\n                el.setPrevPaintRect(paintRect);\n            }\n        }\n        else {\n            brush(ctx, el, scope, isLast);\n        }\n    };\n    CanvasPainter.prototype.getLayer = function (zlevel, virtual) {\n        if (this._singleCanvas && !this._needsManuallyCompositing) {\n            zlevel = CANVAS_ZLEVEL;\n        }\n        var layer = this._layers[zlevel];\n        if (!layer) {\n            layer = new Layer('zr_' + zlevel, this, this.dpr);\n            layer.zlevel = zlevel;\n            layer.__builtin__ = true;\n            if (this._layerConfig[zlevel]) {\n                util.merge(layer, this._layerConfig[zlevel], true);\n            }\n            else if (this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC]) {\n                util.merge(layer, this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC], true);\n            }\n            if (virtual) {\n                layer.virtual = virtual;\n            }\n            this.insertLayer(zlevel, layer);\n            layer.initContext();\n        }\n        return layer;\n    };\n    CanvasPainter.prototype.insertLayer = function (zlevel, layer) {\n        var layersMap = this._layers;\n        var zlevelList = this._zlevelList;\n        var len = zlevelList.length;\n        var domRoot = this._domRoot;\n        var prevLayer = null;\n        var i = -1;\n        if (layersMap[zlevel]) {\n            util.logError('ZLevel ' + zlevel + ' has been used already');\n            return;\n        }\n        if (!isLayerValid(layer)) {\n            util.logError('Layer of zlevel ' + zlevel + ' is not valid');\n            return;\n        }\n        if (len > 0 && zlevel > zlevelList[0]) {\n            for (i = 0; i < len - 1; i++) {\n                if (zlevelList[i] < zlevel\n                    && zlevelList[i + 1] > zlevel) {\n                    break;\n                }\n            }\n            prevLayer = layersMap[zlevelList[i]];\n        }\n        zlevelList.splice(i + 1, 0, zlevel);\n        layersMap[zlevel] = layer;\n        if (!layer.virtual) {\n            if (prevLayer) {\n                var prevDom = prevLayer.dom;\n                if (prevDom.nextSibling) {\n                    domRoot.insertBefore(layer.dom, prevDom.nextSibling);\n                }\n                else {\n                    domRoot.appendChild(layer.dom);\n                }\n            }\n            else {\n                if (domRoot.firstChild) {\n                    domRoot.insertBefore(layer.dom, domRoot.firstChild);\n                }\n                else {\n                    domRoot.appendChild(layer.dom);\n                }\n            }\n        }\n        layer.__painter = this;\n    };\n    CanvasPainter.prototype.eachLayer = function (cb, context) {\n        var zlevelList = this._zlevelList;\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            cb.call(context, this._layers[z], z);\n        }\n    };\n    CanvasPainter.prototype.eachBuiltinLayer = function (cb, context) {\n        var zlevelList = this._zlevelList;\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            var layer = this._layers[z];\n            if (layer.__builtin__) {\n                cb.call(context, layer, z);\n            }\n        }\n    };\n    CanvasPainter.prototype.eachOtherLayer = function (cb, context) {\n        var zlevelList = this._zlevelList;\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            var layer = this._layers[z];\n            if (!layer.__builtin__) {\n                cb.call(context, layer, z);\n            }\n        }\n    };\n    CanvasPainter.prototype.getLayers = function () {\n        return this._layers;\n    };\n    CanvasPainter.prototype._updateLayerStatus = function (list) {\n        this.eachBuiltinLayer(function (layer, z) {\n            layer.__dirty = layer.__used = false;\n        });\n        function updatePrevLayer(idx) {\n            if (prevLayer) {\n                if (prevLayer.__endIndex !== idx) {\n                    prevLayer.__dirty = true;\n                }\n                prevLayer.__endIndex = idx;\n            }\n        }\n        if (this._singleCanvas) {\n            for (var i_1 = 1; i_1 < list.length; i_1++) {\n                var el = list[i_1];\n                if (el.zlevel !== list[i_1 - 1].zlevel || el.incremental) {\n                    this._needsManuallyCompositing = true;\n                    break;\n                }\n            }\n        }\n        var prevLayer = null;\n        var incrementalLayerCount = 0;\n        var prevZlevel;\n        var i;\n        for (i = 0; i < list.length; i++) {\n            var el = list[i];\n            var zlevel = el.zlevel;\n            var layer = void 0;\n            if (prevZlevel !== zlevel) {\n                prevZlevel = zlevel;\n                incrementalLayerCount = 0;\n            }\n            if (el.incremental) {\n                layer = this.getLayer(zlevel + INCREMENTAL_INC, this._needsManuallyCompositing);\n                layer.incremental = true;\n                incrementalLayerCount = 1;\n            }\n            else {\n                layer = this.getLayer(zlevel + (incrementalLayerCount > 0 ? EL_AFTER_INCREMENTAL_INC : 0), this._needsManuallyCompositing);\n            }\n            if (!layer.__builtin__) {\n                util.logError('ZLevel ' + zlevel + ' has been used by unkown layer ' + layer.id);\n            }\n            if (layer !== prevLayer) {\n                layer.__used = true;\n                if (layer.__startIndex !== i) {\n                    layer.__dirty = true;\n                }\n                layer.__startIndex = i;\n                if (!layer.incremental) {\n                    layer.__drawIndex = i;\n                }\n                else {\n                    layer.__drawIndex = -1;\n                }\n                updatePrevLayer(i);\n                prevLayer = layer;\n            }\n            if ((el.__dirty & Element.REDARAW_BIT) && !el.__inHover) {\n                layer.__dirty = true;\n                if (layer.incremental && layer.__drawIndex < 0) {\n                    layer.__drawIndex = i;\n                }\n            }\n        }\n        updatePrevLayer(i);\n        this.eachBuiltinLayer(function (layer, z) {\n            if (!layer.__used && layer.getElementCount() > 0) {\n                layer.__dirty = true;\n                layer.__startIndex = layer.__endIndex = layer.__drawIndex = 0;\n            }\n            if (layer.__dirty && layer.__drawIndex < 0) {\n                layer.__drawIndex = layer.__startIndex;\n            }\n        });\n    };\n    CanvasPainter.prototype.clear = function () {\n        this.eachBuiltinLayer(this._clearLayer);\n        return this;\n    };\n    CanvasPainter.prototype._clearLayer = function (layer) {\n        layer.clear();\n    };\n    CanvasPainter.prototype.setBackgroundColor = function (backgroundColor) {\n        this._backgroundColor = backgroundColor;\n        util.each(this._layers, function (layer) {\n            layer.setUnpainted();\n        });\n    };\n    CanvasPainter.prototype.configLayer = function (zlevel, config) {\n        if (config) {\n            var layerConfig = this._layerConfig;\n            if (!layerConfig[zlevel]) {\n                layerConfig[zlevel] = config;\n            }\n            else {\n                util.merge(layerConfig[zlevel], config, true);\n            }\n            for (var i = 0; i < this._zlevelList.length; i++) {\n                var _zlevel = this._zlevelList[i];\n                if (_zlevel === zlevel || _zlevel === zlevel + EL_AFTER_INCREMENTAL_INC) {\n                    var layer = this._layers[_zlevel];\n                    util.merge(layer, layerConfig[zlevel], true);\n                }\n            }\n        }\n    };\n    CanvasPainter.prototype.delLayer = function (zlevel) {\n        var layers = this._layers;\n        var zlevelList = this._zlevelList;\n        var layer = layers[zlevel];\n        if (!layer) {\n            return;\n        }\n        layer.dom.parentNode.removeChild(layer.dom);\n        delete layers[zlevel];\n        zlevelList.splice(util.indexOf(zlevelList, zlevel), 1);\n    };\n    CanvasPainter.prototype.resize = function (width, height) {\n        if (!this._domRoot.style) {\n            if (width == null || height == null) {\n                return;\n            }\n            this._width = width;\n            this._height = height;\n            this.getLayer(CANVAS_ZLEVEL).resize(width, height);\n        }\n        else {\n            var domRoot = this._domRoot;\n            domRoot.style.display = 'none';\n            var opts = this._opts;\n            width != null && (opts.width = width);\n            height != null && (opts.height = height);\n            width = this._getSize(0);\n            height = this._getSize(1);\n            domRoot.style.display = '';\n            if (this._width !== width || height !== this._height) {\n                domRoot.style.width = width + 'px';\n                domRoot.style.height = height + 'px';\n                for (var id in this._layers) {\n                    if (this._layers.hasOwnProperty(id)) {\n                        this._layers[id].resize(width, height);\n                    }\n                }\n                this.refresh(true);\n            }\n            this._width = width;\n            this._height = height;\n        }\n        return this;\n    };\n    CanvasPainter.prototype.clearLayer = function (zlevel) {\n        var layer = this._layers[zlevel];\n        if (layer) {\n            layer.clear();\n        }\n    };\n    CanvasPainter.prototype.dispose = function () {\n        this.root.innerHTML = '';\n        this.root =\n            this.storage =\n                this._domRoot =\n                    this._layers = null;\n    };\n    CanvasPainter.prototype.getRenderedCanvas = function (opts) {\n        opts = opts || {};\n        if (this._singleCanvas && !this._compositeManually) {\n            return this._layers[CANVAS_ZLEVEL].dom;\n        }\n        var imageLayer = new Layer('image', this, opts.pixelRatio || this.dpr);\n        var ctx = imageLayer.ctx;\n        imageLayer.initContext();\n        imageLayer.clear(false, opts.backgroundColor || this._backgroundColor);\n        if (opts.pixelRatio <= this.dpr) {\n            this.refresh();\n            var width_1 = imageLayer.dom.width;\n            var height_1 = imageLayer.dom.height;\n            var ctx_1 = imageLayer.ctx;\n            this.eachLayer(function (layer) {\n                if (layer.__builtin__) {\n                    ctx_1.drawImage(layer.dom, 0, 0, width_1, height_1);\n                }\n                else if (layer.renderToCanvas) {\n                    imageLayer.ctx.save();\n                    layer.renderToCanvas(imageLayer.ctx);\n                    imageLayer.ctx.restore();\n                }\n            });\n        }\n        else {\n            var scope = {\n                inHover: false,\n                viewWidth: this._width,\n                viewHeight: this._height\n            };\n            var displayList = this.storage.getDisplayList(true);\n            for (var i = 0, len = displayList.length; i < len; i++) {\n                var el = displayList[i];\n                brush(ctx, el, scope, i === len - 1);\n            }\n        }\n        return imageLayer.dom;\n    };\n    CanvasPainter.prototype.getWidth = function () {\n        return this._width;\n    };\n    CanvasPainter.prototype.getHeight = function () {\n        return this._height;\n    };\n    CanvasPainter.prototype._getSize = function (whIdx) {\n        var opts = this._opts;\n        var wh = ['width', 'height'][whIdx];\n        var cwh = ['clientWidth', 'clientHeight'][whIdx];\n        var plt = ['paddingLeft', 'paddingTop'][whIdx];\n        var prb = ['paddingRight', 'paddingBottom'][whIdx];\n        if (opts[wh] != null && opts[wh] !== 'auto') {\n            return parseFloat(opts[wh]);\n        }\n        var root = this.root;\n        var stl = document.defaultView.getComputedStyle(root);\n        return ((root[cwh] || parseInt10(stl[wh]) || parseInt10(root.style[wh]))\n            - (parseInt10(stl[plt]) || 0)\n            - (parseInt10(stl[prb]) || 0)) | 0;\n    };\n    CanvasPainter.prototype.pathToImage = function (path, dpr) {\n        dpr = dpr || this.dpr;\n        var canvas = document.createElement('canvas');\n        var ctx = canvas.getContext('2d');\n        var rect = path.getBoundingRect();\n        var style = path.style;\n        var shadowBlurSize = style.shadowBlur * dpr;\n        var shadowOffsetX = style.shadowOffsetX * dpr;\n        var shadowOffsetY = style.shadowOffsetY * dpr;\n        var lineWidth = path.hasStroke() ? style.lineWidth : 0;\n        var leftMargin = Math.max(lineWidth / 2, -shadowOffsetX + shadowBlurSize);\n        var rightMargin = Math.max(lineWidth / 2, shadowOffsetX + shadowBlurSize);\n        var topMargin = Math.max(lineWidth / 2, -shadowOffsetY + shadowBlurSize);\n        var bottomMargin = Math.max(lineWidth / 2, shadowOffsetY + shadowBlurSize);\n        var width = rect.width + leftMargin + rightMargin;\n        var height = rect.height + topMargin + bottomMargin;\n        canvas.width = width * dpr;\n        canvas.height = height * dpr;\n        ctx.scale(dpr, dpr);\n        ctx.clearRect(0, 0, width, height);\n        ctx.dpr = dpr;\n        var pathTransform = {\n            x: path.x,\n            y: path.y,\n            scaleX: path.scaleX,\n            scaleY: path.scaleY,\n            rotation: path.rotation,\n            originX: path.originX,\n            originY: path.originY\n        };\n        path.x = leftMargin - rect.x;\n        path.y = topMargin - rect.y;\n        path.rotation = 0;\n        path.scaleX = 1;\n        path.scaleY = 1;\n        path.updateTransform();\n        if (path) {\n            brush(ctx, path, {\n                inHover: false,\n                viewWidth: this._width,\n                viewHeight: this._height\n            }, true);\n        }\n        var imgShape = new ZRImage({\n            style: {\n                x: 0,\n                y: 0,\n                image: canvas\n            }\n        });\n        util.extend(path, pathTransform);\n        return imgShape;\n    };\n    return CanvasPainter;\n}());\nexport default CanvasPainter;\n;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport CanvasPainter from 'zrender/lib/canvas/Painter';\nexport function install(registers) {\n  registers.registerPainter('canvas', CanvasPainter);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListFromArray from '../helper/createListFromArray';\nimport SeriesModel from '../../model/Series';\n\nvar LineSeriesModel = function (_super) {\n  __extends(LineSeriesModel, _super);\n\n  function LineSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = LineSeriesModel.type;\n    _this.hasSymbolVisual = true;\n    _this.legendSymbol = 'line';\n    return _this;\n  }\n\n  LineSeriesModel.prototype.getInitialData = function (option) {\n    if (process.env.NODE_ENV !== 'production') {\n      var coordSys = option.coordinateSystem;\n\n      if (coordSys !== 'polar' && coordSys !== 'cartesian2d') {\n        throw new Error('Line not support coordinateSystem besides cartesian and polar');\n      }\n    }\n\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: true\n    });\n  };\n\n  LineSeriesModel.type = 'series.line';\n  LineSeriesModel.dependencies = ['grid', 'polar'];\n  LineSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 3,\n    coordinateSystem: 'cartesian2d',\n    legendHoverLink: true,\n    clip: true,\n    label: {\n      position: 'top'\n    },\n    endLabel: {\n      show: false,\n      valueAnimation: true,\n      distance: 8\n    },\n    lineStyle: {\n      width: 2,\n      type: 'solid'\n    },\n    emphasis: {\n      scale: true,\n      lineStyle: {\n        width: 'bolder'\n      }\n    },\n    step: false,\n    smooth: false,\n    smoothMonotone: null,\n    symbol: 'emptyCircle',\n    symbolSize: 4,\n    symbolRotate: null,\n    showSymbol: true,\n    showAllSymbol: 'auto',\n    connectNulls: false,\n    sampling: 'none',\n    animationEasing: 'linear',\n    progressive: 0,\n    hoverLayerThreshold: Infinity\n  };\n  return LineSeriesModel;\n}(SeriesModel);\n\nexport default LineSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { retrieveRawValue } from '../../data/helper/dataProvider';\nimport { isArray } from 'zrender/lib/core/util';\nexport function getDefaultLabel(data, dataIndex) {\n  var labelDims = data.mapDimensionsAll('defaultedLabel');\n  var len = labelDims.length;\n\n  if (len === 1) {\n    var rawVal = retrieveRawValue(data, dataIndex, labelDims[0]);\n    return rawVal != null ? rawVal + '' : null;\n  } else if (len) {\n    var vals = [];\n\n    for (var i = 0; i < labelDims.length; i++) {\n      vals.push(retrieveRawValue(data, dataIndex, labelDims[i]));\n    }\n\n    return vals.join(' ');\n  }\n}\nexport function getDefaultInterpolatedLabel(data, interpolatedValue) {\n  var labelDims = data.mapDimensionsAll('defaultedLabel');\n\n  if (!isArray(interpolatedValue)) {\n    return interpolatedValue + '';\n  }\n\n  var vals = [];\n\n  for (var i = 0; i < labelDims.length; i++) {\n    var dimInfo = data.getDimensionInfo(labelDims[i]);\n\n    if (dimInfo) {\n      vals.push(interpolatedValue[dimInfo.index]);\n    }\n  }\n\n  return vals.join(' ');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { createSymbol } from '../../util/symbol';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { enterEmphasis, leaveEmphasis, enableHoverEmphasis } from '../../util/states';\nimport { parsePercent } from '../../util/number';\nimport { getDefaultLabel } from './labelHelper';\nimport { extend } from 'zrender/lib/core/util';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport ZRImage from 'zrender/lib/graphic/Image';\n\nvar Symbol = function (_super) {\n  __extends(Symbol, _super);\n\n  function Symbol(data, idx, seriesScope, opts) {\n    var _this = _super.call(this) || this;\n\n    _this.updateData(data, idx, seriesScope, opts);\n\n    return _this;\n  }\n\n  Symbol.prototype._createSymbol = function (symbolType, data, idx, symbolSize, keepAspect) {\n    this.removeAll();\n    var symbolPath = createSymbol(symbolType, -1, -1, 2, 2, null, keepAspect);\n    symbolPath.attr({\n      z2: 100,\n      culling: true,\n      scaleX: symbolSize[0] / 2,\n      scaleY: symbolSize[1] / 2\n    });\n    symbolPath.drift = driftSymbol;\n    this._symbolType = symbolType;\n    this.add(symbolPath);\n  };\n\n  Symbol.prototype.stopSymbolAnimation = function (toLastFrame) {\n    this.childAt(0).stopAnimation(null, toLastFrame);\n  };\n\n  Symbol.prototype.getSymbolPath = function () {\n    return this.childAt(0);\n  };\n\n  Symbol.prototype.highlight = function () {\n    enterEmphasis(this.childAt(0));\n  };\n\n  Symbol.prototype.downplay = function () {\n    leaveEmphasis(this.childAt(0));\n  };\n\n  Symbol.prototype.setZ = function (zlevel, z) {\n    var symbolPath = this.childAt(0);\n    symbolPath.zlevel = zlevel;\n    symbolPath.z = z;\n  };\n\n  Symbol.prototype.setDraggable = function (draggable) {\n    var symbolPath = this.childAt(0);\n    symbolPath.draggable = draggable;\n    symbolPath.cursor = draggable ? 'move' : symbolPath.cursor;\n  };\n\n  Symbol.prototype.updateData = function (data, idx, seriesScope, opts) {\n    this.silent = false;\n    var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\n    var seriesModel = data.hostModel;\n    var symbolSize = Symbol.getSymbolSize(data, idx);\n    var isInit = symbolType !== this._symbolType;\n    var disableAnimation = opts && opts.disableAnimation;\n\n    if (isInit) {\n      var keepAspect = data.getItemVisual(idx, 'symbolKeepAspect');\n\n      this._createSymbol(symbolType, data, idx, symbolSize, keepAspect);\n    } else {\n      var symbolPath = this.childAt(0);\n      symbolPath.silent = false;\n      var target = {\n        scaleX: symbolSize[0] / 2,\n        scaleY: symbolSize[1] / 2\n      };\n      disableAnimation ? symbolPath.attr(target) : graphic.updateProps(symbolPath, target, seriesModel, idx);\n    }\n\n    this._updateCommon(data, idx, symbolSize, seriesScope, opts);\n\n    if (isInit) {\n      var symbolPath = this.childAt(0);\n\n      if (!disableAnimation) {\n        var target = {\n          scaleX: this._sizeX,\n          scaleY: this._sizeY,\n          style: {\n            opacity: symbolPath.style.opacity\n          }\n        };\n        symbolPath.scaleX = symbolPath.scaleY = 0;\n        symbolPath.style.opacity = 0;\n        graphic.initProps(symbolPath, target, seriesModel, idx);\n      }\n    }\n\n    if (disableAnimation) {\n      this.childAt(0).stopAnimation('remove');\n    }\n\n    this._seriesModel = seriesModel;\n  };\n\n  Symbol.prototype._updateCommon = function (data, idx, symbolSize, seriesScope, opts) {\n    var symbolPath = this.childAt(0);\n    var seriesModel = data.hostModel;\n    var emphasisItemStyle;\n    var blurItemStyle;\n    var selectItemStyle;\n    var focus;\n    var blurScope;\n    var symbolOffset;\n    var labelStatesModels;\n    var hoverScale;\n    var cursorStyle;\n\n    if (seriesScope) {\n      emphasisItemStyle = seriesScope.emphasisItemStyle;\n      blurItemStyle = seriesScope.blurItemStyle;\n      selectItemStyle = seriesScope.selectItemStyle;\n      focus = seriesScope.focus;\n      blurScope = seriesScope.blurScope;\n      symbolOffset = seriesScope.symbolOffset;\n      labelStatesModels = seriesScope.labelStatesModels;\n      hoverScale = seriesScope.hoverScale;\n      cursorStyle = seriesScope.cursorStyle;\n    }\n\n    if (!seriesScope || data.hasItemOption) {\n      var itemModel = seriesScope && seriesScope.itemModel ? seriesScope.itemModel : data.getItemModel(idx);\n      var emphasisModel = itemModel.getModel('emphasis');\n      emphasisItemStyle = emphasisModel.getModel('itemStyle').getItemStyle();\n      selectItemStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\n      blurItemStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\n      focus = emphasisModel.get('focus');\n      blurScope = emphasisModel.get('blurScope');\n      symbolOffset = itemModel.getShallow('symbolOffset');\n      labelStatesModels = getLabelStatesModels(itemModel);\n      hoverScale = emphasisModel.getShallow('scale');\n      cursorStyle = itemModel.getShallow('cursor');\n    }\n\n    var symbolRotate = data.getItemVisual(idx, 'symbolRotate');\n    symbolPath.attr('rotation', (symbolRotate || 0) * Math.PI / 180 || 0);\n\n    if (symbolOffset) {\n      symbolPath.x = parsePercent(symbolOffset[0], symbolSize[0]);\n      symbolPath.y = parsePercent(symbolOffset[1], symbolSize[1]);\n    }\n\n    cursorStyle && symbolPath.attr('cursor', cursorStyle);\n    var symbolStyle = data.getItemVisual(idx, 'style');\n    var visualColor = symbolStyle.fill;\n\n    if (symbolPath instanceof ZRImage) {\n      var pathStyle = symbolPath.style;\n      symbolPath.useStyle(extend({\n        image: pathStyle.image,\n        x: pathStyle.x,\n        y: pathStyle.y,\n        width: pathStyle.width,\n        height: pathStyle.height\n      }, symbolStyle));\n    } else {\n      if (symbolPath.__isEmptyBrush) {\n        symbolPath.useStyle(extend({}, symbolStyle));\n      } else {\n        symbolPath.useStyle(symbolStyle);\n      }\n\n      symbolPath.style.decal = null;\n      symbolPath.setColor(visualColor, opts && opts.symbolInnerColor);\n      symbolPath.style.strokeNoScale = true;\n    }\n\n    var liftZ = data.getItemVisual(idx, 'liftZ');\n    var z2Origin = this._z2;\n\n    if (liftZ != null) {\n      if (z2Origin == null) {\n        this._z2 = symbolPath.z2;\n        symbolPath.z2 += liftZ;\n      }\n    } else if (z2Origin != null) {\n      symbolPath.z2 = z2Origin;\n      this._z2 = null;\n    }\n\n    var useNameLabel = opts && opts.useNameLabel;\n    setLabelStyle(symbolPath, labelStatesModels, {\n      labelFetcher: seriesModel,\n      labelDataIndex: idx,\n      defaultText: getLabelDefaultText,\n      inheritColor: visualColor,\n      defaultOpacity: symbolStyle.opacity\n    });\n\n    function getLabelDefaultText(idx) {\n      return useNameLabel ? data.getName(idx) : getDefaultLabel(data, idx);\n    }\n\n    this._sizeX = symbolSize[0] / 2;\n    this._sizeY = symbolSize[1] / 2;\n    var emphasisState = symbolPath.ensureState('emphasis');\n    emphasisState.style = emphasisItemStyle;\n    symbolPath.ensureState('select').style = selectItemStyle;\n    symbolPath.ensureState('blur').style = blurItemStyle;\n\n    if (hoverScale) {\n      var scaleRatio = Math.max(1.1, 3 / this._sizeY);\n      emphasisState.scaleX = this._sizeX * scaleRatio;\n      emphasisState.scaleY = this._sizeY * scaleRatio;\n    }\n\n    this.setSymbolScale(1);\n    enableHoverEmphasis(this, focus, blurScope);\n  };\n\n  Symbol.prototype.setSymbolScale = function (scale) {\n    this.scaleX = this.scaleY = scale;\n  };\n\n  Symbol.prototype.fadeOut = function (cb, opt) {\n    var symbolPath = this.childAt(0);\n    var seriesModel = this._seriesModel;\n    var dataIndex = getECData(this).dataIndex;\n    var animationOpt = opt && opt.animation;\n    this.silent = symbolPath.silent = true;\n\n    if (opt && opt.fadeLabel) {\n      var textContent = symbolPath.getTextContent();\n\n      if (textContent) {\n        graphic.removeElement(textContent, {\n          style: {\n            opacity: 0\n          }\n        }, seriesModel, {\n          dataIndex: dataIndex,\n          removeOpt: animationOpt,\n          cb: function () {\n            symbolPath.removeTextContent();\n          }\n        });\n      }\n    } else {\n      symbolPath.removeTextContent();\n    }\n\n    graphic.removeElement(symbolPath, {\n      style: {\n        opacity: 0\n      },\n      scaleX: 0,\n      scaleY: 0\n    }, seriesModel, {\n      dataIndex: dataIndex,\n      cb: cb,\n      removeOpt: animationOpt\n    });\n  };\n\n  Symbol.getSymbolSize = function (data, idx) {\n    var symbolSize = data.getItemVisual(idx, 'symbolSize');\n    return symbolSize instanceof Array ? symbolSize.slice() : [+symbolSize, +symbolSize];\n  };\n\n  return Symbol;\n}(graphic.Group);\n\nfunction driftSymbol(dx, dy) {\n  this.parent.drift(dx, dy);\n}\n\nexport default Symbol;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as graphic from '../../util/graphic';\nimport SymbolClz from './Symbol';\nimport { isObject } from 'zrender/lib/core/util';\nimport { getLabelStatesModels } from '../../label/labelStyle';\n\nfunction symbolNeedsDraw(data, point, idx, opt) {\n  return point && !isNaN(point[0]) && !isNaN(point[1]) && !(opt.isIgnore && opt.isIgnore(idx)) && !(opt.clipShape && !opt.clipShape.contain(point[0], point[1])) && data.getItemVisual(idx, 'symbol') !== 'none';\n}\n\nfunction normalizeUpdateOpt(opt) {\n  if (opt != null && !isObject(opt)) {\n    opt = {\n      isIgnore: opt\n    };\n  }\n\n  return opt || {};\n}\n\nfunction makeSeriesScope(data) {\n  var seriesModel = data.hostModel;\n  var emphasisModel = seriesModel.getModel('emphasis');\n  return {\n    emphasisItemStyle: emphasisModel.getModel('itemStyle').getItemStyle(),\n    blurItemStyle: seriesModel.getModel(['blur', 'itemStyle']).getItemStyle(),\n    selectItemStyle: seriesModel.getModel(['select', 'itemStyle']).getItemStyle(),\n    focus: emphasisModel.get('focus'),\n    blurScope: emphasisModel.get('blurScope'),\n    symbolRotate: seriesModel.get('symbolRotate'),\n    symbolOffset: seriesModel.get('symbolOffset'),\n    hoverScale: emphasisModel.get('scale'),\n    labelStatesModels: getLabelStatesModels(seriesModel),\n    cursorStyle: seriesModel.get('cursor')\n  };\n}\n\nvar SymbolDraw = function () {\n  function SymbolDraw(SymbolCtor) {\n    this.group = new graphic.Group();\n    this._SymbolCtor = SymbolCtor || SymbolClz;\n  }\n\n  SymbolDraw.prototype.updateData = function (data, opt) {\n    opt = normalizeUpdateOpt(opt);\n    var group = this.group;\n    var seriesModel = data.hostModel;\n    var oldData = this._data;\n    var SymbolCtor = this._SymbolCtor;\n    var disableAnimation = opt.disableAnimation;\n    var seriesScope = makeSeriesScope(data);\n    var symbolUpdateOpt = {\n      disableAnimation: disableAnimation\n    };\n\n    var getSymbolPoint = opt.getSymbolPoint || function (idx) {\n      return data.getItemLayout(idx);\n    };\n\n    if (!oldData) {\n      group.removeAll();\n    }\n\n    data.diff(oldData).add(function (newIdx) {\n      var point = getSymbolPoint(newIdx);\n\n      if (symbolNeedsDraw(data, point, newIdx, opt)) {\n        var symbolEl = new SymbolCtor(data, newIdx, seriesScope, symbolUpdateOpt);\n        symbolEl.setPosition(point);\n        data.setItemGraphicEl(newIdx, symbolEl);\n        group.add(symbolEl);\n      }\n    }).update(function (newIdx, oldIdx) {\n      var symbolEl = oldData.getItemGraphicEl(oldIdx);\n      var point = getSymbolPoint(newIdx);\n\n      if (!symbolNeedsDraw(data, point, newIdx, opt)) {\n        group.remove(symbolEl);\n        return;\n      }\n\n      if (!symbolEl) {\n        symbolEl = new SymbolCtor(data, newIdx);\n        symbolEl.setPosition(point);\n      } else {\n        symbolEl.updateData(data, newIdx, seriesScope, symbolUpdateOpt);\n        var target = {\n          x: point[0],\n          y: point[1]\n        };\n        disableAnimation ? symbolEl.attr(target) : graphic.updateProps(symbolEl, target, seriesModel);\n      }\n\n      group.add(symbolEl);\n      data.setItemGraphicEl(newIdx, symbolEl);\n    }).remove(function (oldIdx) {\n      var el = oldData.getItemGraphicEl(oldIdx);\n      el && el.fadeOut(function () {\n        group.remove(el);\n      });\n    }).execute();\n    this._getSymbolPoint = getSymbolPoint;\n    this._data = data;\n  };\n\n  ;\n\n  SymbolDraw.prototype.isPersistent = function () {\n    return true;\n  };\n\n  ;\n\n  SymbolDraw.prototype.updateLayout = function () {\n    var _this = this;\n\n    var data = this._data;\n\n    if (data) {\n      data.eachItemGraphicEl(function (el, idx) {\n        var point = _this._getSymbolPoint(idx);\n\n        el.setPosition(point);\n        el.markRedraw();\n      });\n    }\n  };\n\n  ;\n\n  SymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\n    this._seriesScope = makeSeriesScope(data);\n    this._data = null;\n    this.group.removeAll();\n  };\n\n  ;\n\n  SymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\n    opt = normalizeUpdateOpt(opt);\n\n    function updateIncrementalAndHover(el) {\n      if (!el.isGroup) {\n        el.incremental = true;\n        el.ensureState('emphasis').hoverLayer = true;\n      }\n    }\n\n    for (var idx = taskParams.start; idx < taskParams.end; idx++) {\n      var point = data.getItemLayout(idx);\n\n      if (symbolNeedsDraw(data, point, idx, opt)) {\n        var el = new this._SymbolCtor(data, idx, this._seriesScope);\n        el.traverse(updateIncrementalAndHover);\n        el.setPosition(point);\n        this.group.add(el);\n        data.setItemGraphicEl(idx, el);\n      }\n    }\n  };\n\n  ;\n\n  SymbolDraw.prototype.remove = function (enableAnimation) {\n    var group = this.group;\n    var data = this._data;\n\n    if (data && enableAnimation) {\n      data.eachItemGraphicEl(function (el) {\n        el.fadeOut(function () {\n          group.remove(el);\n        });\n      });\n    } else {\n      group.removeAll();\n    }\n  };\n\n  ;\n  return SymbolDraw;\n}();\n\nexport default SymbolDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isDimensionStacked } from '../../data/helper/dataStackHelper';\nimport { map } from 'zrender/lib/core/util';\nexport function prepareDataCoordInfo(coordSys, data, valueOrigin) {\n  var baseAxis = coordSys.getBaseAxis();\n  var valueAxis = coordSys.getOtherAxis(baseAxis);\n  var valueStart = getValueStart(valueAxis, valueOrigin);\n  var baseAxisDim = baseAxis.dim;\n  var valueAxisDim = valueAxis.dim;\n  var valueDim = data.mapDimension(valueAxisDim);\n  var baseDim = data.mapDimension(baseAxisDim);\n  var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\n  var dims = map(coordSys.dimensions, function (coordDim) {\n    return data.mapDimension(coordDim);\n  });\n  var stacked = false;\n  var stackResultDim = data.getCalculationInfo('stackResultDimension');\n\n  if (isDimensionStacked(data, dims[0])) {\n    stacked = true;\n    dims[0] = stackResultDim;\n  }\n\n  if (isDimensionStacked(data, dims[1])) {\n    stacked = true;\n    dims[1] = stackResultDim;\n  }\n\n  return {\n    dataDimsForPoint: dims,\n    valueStart: valueStart,\n    valueAxisDim: valueAxisDim,\n    baseAxisDim: baseAxisDim,\n    stacked: !!stacked,\n    valueDim: valueDim,\n    baseDim: baseDim,\n    baseDataOffset: baseDataOffset,\n    stackedOverDimension: data.getCalculationInfo('stackedOverDimension')\n  };\n}\n\nfunction getValueStart(valueAxis, valueOrigin) {\n  var valueStart = 0;\n  var extent = valueAxis.scale.getExtent();\n\n  if (valueOrigin === 'start') {\n    valueStart = extent[0];\n  } else if (valueOrigin === 'end') {\n    valueStart = extent[1];\n  } else {\n    if (extent[0] > 0) {\n      valueStart = extent[0];\n    } else if (extent[1] < 0) {\n      valueStart = extent[1];\n    }\n  }\n\n  return valueStart;\n}\n\nexport function getStackedOnPoint(dataCoordInfo, coordSys, data, idx) {\n  var value = NaN;\n\n  if (dataCoordInfo.stacked) {\n    value = data.get(data.getCalculationInfo('stackedOverDimension'), idx);\n  }\n\n  if (isNaN(value)) {\n    value = dataCoordInfo.valueStart;\n  }\n\n  var baseDataOffset = dataCoordInfo.baseDataOffset;\n  var stackedData = [];\n  stackedData[baseDataOffset] = data.get(dataCoordInfo.baseDim, idx);\n  stackedData[1 - baseDataOffset] = value;\n  return coordSys.dataToPoint(stackedData);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isArray } from 'zrender/lib/core/util';\nvar supportFloat32Array = typeof Float32Array !== 'undefined';\nvar Float32ArrayCtor = !supportFloat32Array ? Array : Float32Array;\nexport function createFloat32Array(arg) {\n  if (isArray(arg)) {\n    return supportFloat32Array ? new Float32Array(arg) : arg;\n  }\n\n  return new Float32ArrayCtor(arg);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { prepareDataCoordInfo, getStackedOnPoint } from './helper';\nimport { createFloat32Array } from '../../util/vendor';\n\nfunction diffData(oldData, newData) {\n  var diffResult = [];\n  newData.diff(oldData).add(function (idx) {\n    diffResult.push({\n      cmd: '+',\n      idx: idx\n    });\n  }).update(function (newIdx, oldIdx) {\n    diffResult.push({\n      cmd: '=',\n      idx: oldIdx,\n      idx1: newIdx\n    });\n  }).remove(function (idx) {\n    diffResult.push({\n      cmd: '-',\n      idx: idx\n    });\n  }).execute();\n  return diffResult;\n}\n\nexport default function lineAnimationDiff(oldData, newData, oldStackedOnPoints, newStackedOnPoints, oldCoordSys, newCoordSys, oldValueOrigin, newValueOrigin) {\n  var diff = diffData(oldData, newData);\n  var currPoints = [];\n  var nextPoints = [];\n  var currStackedPoints = [];\n  var nextStackedPoints = [];\n  var status = [];\n  var sortedIndices = [];\n  var rawIndices = [];\n  var newDataOldCoordInfo = prepareDataCoordInfo(oldCoordSys, newData, oldValueOrigin);\n  var oldDataNewCoordInfo = prepareDataCoordInfo(newCoordSys, oldData, newValueOrigin);\n  var oldPoints = oldData.getLayout('points') || [];\n  var newPoints = newData.getLayout('points') || [];\n\n  for (var i = 0; i < diff.length; i++) {\n    var diffItem = diff[i];\n    var pointAdded = true;\n    var oldIdx2 = void 0;\n    var newIdx2 = void 0;\n\n    switch (diffItem.cmd) {\n      case '=':\n        oldIdx2 = diffItem.idx * 2;\n        newIdx2 = diffItem.idx1 * 2;\n        var currentX = oldPoints[oldIdx2];\n        var currentY = oldPoints[oldIdx2 + 1];\n        var nextX = newPoints[newIdx2];\n        var nextY = newPoints[newIdx2 + 1];\n\n        if (isNaN(currentX) || isNaN(currentY)) {\n          currentX = nextX;\n          currentY = nextY;\n        }\n\n        currPoints.push(currentX, currentY);\n        nextPoints.push(nextX, nextY);\n        currStackedPoints.push(oldStackedOnPoints[oldIdx2], oldStackedOnPoints[oldIdx2 + 1]);\n        nextStackedPoints.push(newStackedOnPoints[newIdx2], newStackedOnPoints[newIdx2 + 1]);\n        rawIndices.push(newData.getRawIndex(diffItem.idx1));\n        break;\n\n      case '+':\n        var newIdx = diffItem.idx;\n        var newDataDimsForPoint = newDataOldCoordInfo.dataDimsForPoint;\n        var oldPt = oldCoordSys.dataToPoint([newData.get(newDataDimsForPoint[0], newIdx), newData.get(newDataDimsForPoint[1], newIdx)]);\n        newIdx2 = newIdx * 2;\n        currPoints.push(oldPt[0], oldPt[1]);\n        nextPoints.push(newPoints[newIdx2], newPoints[newIdx2 + 1]);\n        var stackedOnPoint = getStackedOnPoint(newDataOldCoordInfo, oldCoordSys, newData, newIdx);\n        currStackedPoints.push(stackedOnPoint[0], stackedOnPoint[1]);\n        nextStackedPoints.push(newStackedOnPoints[newIdx2], newStackedOnPoints[newIdx2 + 1]);\n        rawIndices.push(newData.getRawIndex(newIdx));\n        break;\n\n      case '-':\n        var oldIdx = diffItem.idx;\n        var rawIndex = oldData.getRawIndex(oldIdx);\n        var oldDataDimsForPoint = oldDataNewCoordInfo.dataDimsForPoint;\n        oldIdx2 = oldIdx * 2;\n\n        if (rawIndex !== oldIdx) {\n          var newPt = newCoordSys.dataToPoint([oldData.get(oldDataDimsForPoint[0], oldIdx), oldData.get(oldDataDimsForPoint[1], oldIdx)]);\n          var newStackedOnPt = getStackedOnPoint(oldDataNewCoordInfo, newCoordSys, oldData, oldIdx);\n          currPoints.push(oldPoints[oldIdx2], oldPoints[oldIdx2 + 1]);\n          nextPoints.push(newPt[0], newPt[1]);\n          currStackedPoints.push(oldStackedOnPoints[oldIdx2], oldStackedOnPoints[oldIdx2 + 1]);\n          nextStackedPoints.push(newStackedOnPt[0], newStackedOnPt[1]);\n          rawIndices.push(rawIndex);\n        } else {\n          pointAdded = false;\n        }\n\n    }\n\n    if (pointAdded) {\n      status.push(diffItem);\n      sortedIndices.push(sortedIndices.length);\n    }\n  }\n\n  sortedIndices.sort(function (a, b) {\n    return rawIndices[a] - rawIndices[b];\n  });\n  var len = currPoints.length;\n  var sortedCurrPoints = createFloat32Array(len);\n  var sortedNextPoints = createFloat32Array(len);\n  var sortedCurrStackedPoints = createFloat32Array(len);\n  var sortedNextStackedPoints = createFloat32Array(len);\n  var sortedStatus = [];\n\n  for (var i = 0; i < sortedIndices.length; i++) {\n    var idx = sortedIndices[i];\n    var i2 = i * 2;\n    var idx2 = idx * 2;\n    sortedCurrPoints[i2] = currPoints[idx2];\n    sortedCurrPoints[i2 + 1] = currPoints[idx2 + 1];\n    sortedNextPoints[i2] = nextPoints[idx2];\n    sortedNextPoints[i2 + 1] = nextPoints[idx2 + 1];\n    sortedCurrStackedPoints[i2] = currStackedPoints[idx2];\n    sortedCurrStackedPoints[i2 + 1] = currStackedPoints[idx2 + 1];\n    sortedNextStackedPoints[i2] = nextStackedPoints[idx2];\n    sortedNextStackedPoints[i2 + 1] = nextStackedPoints[idx2 + 1];\n    sortedStatus[i] = status[idx];\n  }\n\n  return {\n    current: sortedCurrPoints,\n    next: sortedNextPoints,\n    stackedOnCurrent: sortedCurrStackedPoints,\n    stackedOnNext: sortedNextStackedPoints,\n    status: sortedStatus\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Path from 'zrender/lib/graphic/Path';\nimport PathProxy from 'zrender/lib/core/PathProxy';\nimport { cubicRootAt, cubicAt } from 'zrender/lib/core/curve';\nvar mathMin = Math.min;\nvar mathMax = Math.max;\n\nfunction isPointNull(x, y) {\n  return isNaN(x) || isNaN(y);\n}\n\nfunction drawSegment(ctx, points, start, segLen, allLen, dir, smooth, smoothMonotone, connectNulls) {\n  var prevX;\n  var prevY;\n  var cpx0;\n  var cpy0;\n  var cpx1;\n  var cpy1;\n  var idx = start;\n  var k = 0;\n\n  for (; k < segLen; k++) {\n    var x = points[idx * 2];\n    var y = points[idx * 2 + 1];\n\n    if (idx >= allLen || idx < 0) {\n      break;\n    }\n\n    if (isPointNull(x, y)) {\n      if (connectNulls) {\n        idx += dir;\n        continue;\n      }\n\n      break;\n    }\n\n    if (idx === start) {\n      ctx[dir > 0 ? 'moveTo' : 'lineTo'](x, y);\n      cpx0 = x;\n      cpy0 = y;\n    } else {\n      var dx = x - prevX;\n      var dy = y - prevY;\n\n      if (dx * dx + dy * dy < 0.5) {\n        idx += dir;\n        continue;\n      }\n\n      if (smooth > 0) {\n        var nextIdx = idx + dir;\n        var nextX = points[nextIdx * 2];\n        var nextY = points[nextIdx * 2 + 1];\n        var tmpK = k + 1;\n\n        if (connectNulls) {\n          while (isPointNull(nextX, nextY) && tmpK < segLen) {\n            tmpK++;\n            nextIdx += dir;\n            nextX = points[nextIdx * 2];\n            nextY = points[nextIdx * 2 + 1];\n          }\n        }\n\n        var ratioNextSeg = 0.5;\n        var vx = 0;\n        var vy = 0;\n        var nextCpx0 = void 0;\n        var nextCpy0 = void 0;\n\n        if (tmpK >= segLen || isPointNull(nextX, nextY)) {\n          cpx1 = x;\n          cpy1 = y;\n        } else {\n          vx = nextX - prevX;\n          vy = nextY - prevY;\n          var dx0 = x - prevX;\n          var dx1 = nextX - x;\n          var dy0 = y - prevY;\n          var dy1 = nextY - y;\n          var lenPrevSeg = void 0;\n          var lenNextSeg = void 0;\n\n          if (smoothMonotone === 'x') {\n            lenPrevSeg = Math.abs(dx0);\n            lenNextSeg = Math.abs(dx1);\n            cpx1 = x - lenPrevSeg * smooth;\n            cpy1 = y;\n            nextCpx0 = x + lenPrevSeg * smooth;\n            nextCpy0 = y;\n          } else if (smoothMonotone === 'y') {\n            lenPrevSeg = Math.abs(dy0);\n            lenNextSeg = Math.abs(dy1);\n            cpx1 = x;\n            cpy1 = y - lenPrevSeg * smooth;\n            nextCpx0 = x;\n            nextCpy0 = y + lenPrevSeg * smooth;\n          } else {\n            lenPrevSeg = Math.sqrt(dx0 * dx0 + dy0 * dy0);\n            lenNextSeg = Math.sqrt(dx1 * dx1 + dy1 * dy1);\n            ratioNextSeg = lenNextSeg / (lenNextSeg + lenPrevSeg);\n            cpx1 = x - vx * smooth * (1 - ratioNextSeg);\n            cpy1 = y - vy * smooth * (1 - ratioNextSeg);\n            nextCpx0 = x + vx * smooth * ratioNextSeg;\n            nextCpy0 = y + vy * smooth * ratioNextSeg;\n            nextCpx0 = mathMin(nextCpx0, mathMax(nextX, x));\n            nextCpy0 = mathMin(nextCpy0, mathMax(nextY, y));\n            nextCpx0 = mathMax(nextCpx0, mathMin(nextX, x));\n            nextCpy0 = mathMax(nextCpy0, mathMin(nextY, y));\n            vx = nextCpx0 - x;\n            vy = nextCpy0 - y;\n            cpx1 = x - vx * lenPrevSeg / lenNextSeg;\n            cpy1 = y - vy * lenPrevSeg / lenNextSeg;\n            cpx1 = mathMin(cpx1, mathMax(prevX, x));\n            cpy1 = mathMin(cpy1, mathMax(prevY, y));\n            cpx1 = mathMax(cpx1, mathMin(prevX, x));\n            cpy1 = mathMax(cpy1, mathMin(prevY, y));\n            vx = x - cpx1;\n            vy = y - cpy1;\n            nextCpx0 = x + vx * lenNextSeg / lenPrevSeg;\n            nextCpy0 = y + vy * lenNextSeg / lenPrevSeg;\n          }\n        }\n\n        ctx.bezierCurveTo(cpx0, cpy0, cpx1, cpy1, x, y);\n        cpx0 = nextCpx0;\n        cpy0 = nextCpy0;\n      } else {\n        ctx.lineTo(x, y);\n      }\n    }\n\n    prevX = x;\n    prevY = y;\n    idx += dir;\n  }\n\n  return k;\n}\n\nvar ECPolylineShape = function () {\n  function ECPolylineShape() {\n    this.smooth = 0;\n    this.smoothConstraint = true;\n  }\n\n  return ECPolylineShape;\n}();\n\nvar ECPolyline = function (_super) {\n  __extends(ECPolyline, _super);\n\n  function ECPolyline(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'ec-polyline';\n    return _this;\n  }\n\n  ECPolyline.prototype.getDefaultStyle = function () {\n    return {\n      stroke: '#000',\n      fill: null\n    };\n  };\n\n  ECPolyline.prototype.getDefaultShape = function () {\n    return new ECPolylineShape();\n  };\n\n  ECPolyline.prototype.buildPath = function (ctx, shape) {\n    var points = shape.points;\n    var i = 0;\n    var len = points.length / 2;\n\n    if (shape.connectNulls) {\n      for (; len > 0; len--) {\n        if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n          break;\n        }\n      }\n\n      for (; i < len; i++) {\n        if (!isPointNull(points[i * 2], points[i * 2 + 1])) {\n          break;\n        }\n      }\n    }\n\n    while (i < len) {\n      i += drawSegment(ctx, points, i, len, len, 1, shape.smooth, shape.smoothMonotone, shape.connectNulls) + 1;\n    }\n  };\n\n  ECPolyline.prototype.getPointOn = function (xOrY, dim) {\n    if (!this.path) {\n      this.createPathProxy();\n      this.buildPath(this.path, this.shape);\n    }\n\n    var path = this.path;\n    var data = path.data;\n    var CMD = PathProxy.CMD;\n    var x0;\n    var y0;\n    var isDimX = dim === 'x';\n    var roots = [];\n\n    for (var i = 0; i < data.length;) {\n      var cmd = data[i++];\n      var x = void 0;\n      var y = void 0;\n      var x2 = void 0;\n      var y2 = void 0;\n      var x3 = void 0;\n      var y3 = void 0;\n      var t = void 0;\n\n      switch (cmd) {\n        case CMD.M:\n          x0 = data[i++];\n          y0 = data[i++];\n          break;\n\n        case CMD.L:\n          x = data[i++];\n          y = data[i++];\n          t = isDimX ? (xOrY - x0) / (x - x0) : (xOrY - y0) / (y - y0);\n\n          if (t <= 1 && t >= 0) {\n            var val = isDimX ? (y - y0) * t + y0 : (x - x0) * t + x0;\n            return isDimX ? [xOrY, val] : [val, xOrY];\n          }\n\n          x0 = x;\n          y0 = y;\n          break;\n\n        case CMD.C:\n          x = data[i++];\n          y = data[i++];\n          x2 = data[i++];\n          y2 = data[i++];\n          x3 = data[i++];\n          y3 = data[i++];\n          var nRoot = isDimX ? cubicRootAt(x0, x, x2, x3, xOrY, roots) : cubicRootAt(y0, y, y2, y3, xOrY, roots);\n\n          if (nRoot > 0) {\n            for (var i_1 = 0; i_1 < nRoot; i_1++) {\n              var t_1 = roots[i_1];\n\n              if (t_1 <= 1 && t_1 >= 0) {\n                var val = isDimX ? cubicAt(y0, y, y2, y3, t_1) : cubicAt(x0, x, x2, x3, t_1);\n                return isDimX ? [xOrY, val] : [val, xOrY];\n              }\n            }\n          }\n\n          x0 = x3;\n          y0 = y3;\n          break;\n      }\n    }\n  };\n\n  return ECPolyline;\n}(Path);\n\nexport { ECPolyline };\n\nvar ECPolygonShape = function (_super) {\n  __extends(ECPolygonShape, _super);\n\n  function ECPolygonShape() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  return ECPolygonShape;\n}(ECPolylineShape);\n\nvar ECPolygon = function (_super) {\n  __extends(ECPolygon, _super);\n\n  function ECPolygon(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'ec-polygon';\n    return _this;\n  }\n\n  ECPolygon.prototype.getDefaultShape = function () {\n    return new ECPolygonShape();\n  };\n\n  ECPolygon.prototype.buildPath = function (ctx, shape) {\n    var points = shape.points;\n    var stackedOnPoints = shape.stackedOnPoints;\n    var i = 0;\n    var len = points.length / 2;\n    var smoothMonotone = shape.smoothMonotone;\n\n    if (shape.connectNulls) {\n      for (; len > 0; len--) {\n        if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n          break;\n        }\n      }\n\n      for (; i < len; i++) {\n        if (!isPointNull(points[i * 2], points[i * 2 + 1])) {\n          break;\n        }\n      }\n    }\n\n    while (i < len) {\n      var k = drawSegment(ctx, points, i, len, len, 1, shape.smooth, smoothMonotone, shape.connectNulls);\n      drawSegment(ctx, stackedOnPoints, i + k - 1, k, len, -1, shape.stackedOnSmooth, smoothMonotone, shape.connectNulls);\n      i += k + 1;\n      ctx.closePath();\n    }\n  };\n\n  return ECPolygon;\n}(Path);\n\nexport { ECPolygon };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as graphic from '../../util/graphic';\nimport { round } from '../../util/number';\n\nfunction createGridClipPath(cartesian, hasAnimation, seriesModel, done, during) {\n  var rect = cartesian.getArea();\n  var x = rect.x;\n  var y = rect.y;\n  var width = rect.width;\n  var height = rect.height;\n  var lineWidth = seriesModel.get(['lineStyle', 'width']) || 2;\n  x -= lineWidth / 2;\n  y -= lineWidth / 2;\n  width += lineWidth;\n  height += lineWidth;\n  x = Math.floor(x);\n  width = Math.round(width);\n  var clipPath = new graphic.Rect({\n    shape: {\n      x: x,\n      y: y,\n      width: width,\n      height: height\n    }\n  });\n\n  if (hasAnimation) {\n    var baseAxis = cartesian.getBaseAxis();\n    var isHorizontal = baseAxis.isHorizontal();\n    var isAxisInversed = baseAxis.inverse;\n\n    if (isHorizontal) {\n      if (isAxisInversed) {\n        clipPath.shape.x += width;\n      }\n\n      clipPath.shape.width = 0;\n    } else {\n      if (!isAxisInversed) {\n        clipPath.shape.y += height;\n      }\n\n      clipPath.shape.height = 0;\n    }\n\n    var duringCb = typeof during === 'function' ? function (percent) {\n      during(percent, clipPath);\n    } : null;\n    graphic.initProps(clipPath, {\n      shape: {\n        width: width,\n        height: height,\n        x: x,\n        y: y\n      }\n    }, seriesModel, null, done, duringCb);\n  }\n\n  return clipPath;\n}\n\nfunction createPolarClipPath(polar, hasAnimation, seriesModel) {\n  var sectorArea = polar.getArea();\n  var r0 = round(sectorArea.r0, 1);\n  var r = round(sectorArea.r, 1);\n  var clipPath = new graphic.Sector({\n    shape: {\n      cx: round(polar.cx, 1),\n      cy: round(polar.cy, 1),\n      r0: r0,\n      r: r,\n      startAngle: sectorArea.startAngle,\n      endAngle: sectorArea.endAngle,\n      clockwise: sectorArea.clockwise\n    }\n  });\n\n  if (hasAnimation) {\n    var isRadial = polar.getBaseAxis().dim === 'angle';\n\n    if (isRadial) {\n      clipPath.shape.endAngle = sectorArea.startAngle;\n    } else {\n      clipPath.shape.r = r0;\n    }\n\n    graphic.initProps(clipPath, {\n      shape: {\n        endAngle: sectorArea.endAngle,\n        r: r\n      }\n    }, seriesModel);\n  }\n\n  return clipPath;\n}\n\nfunction createClipPath(coordSys, hasAnimation, seriesModel, done, during) {\n  if (!coordSys) {\n    return null;\n  } else if (coordSys.type === 'polar') {\n    return createPolarClipPath(coordSys, hasAnimation, seriesModel);\n  } else if (coordSys.type === 'cartesian2d') {\n    return createGridClipPath(coordSys, hasAnimation, seriesModel, done, during);\n  }\n\n  return null;\n}\n\nexport { createGridClipPath, createPolarClipPath, createClipPath };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function isCoordinateSystemType(coordSys, type) {\n  return coordSys.type === type;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport SymbolDraw from '../helper/SymbolDraw';\nimport SymbolClz from '../helper/Symbol';\nimport lineAnimationDiff from './lineAnimationDiff';\nimport * as graphic from '../../util/graphic';\nimport * as modelUtil from '../../util/model';\nimport { ECPolyline, ECPolygon } from './poly';\nimport ChartView from '../../view/Chart';\nimport { prepareDataCoordInfo, getStackedOnPoint } from './helper';\nimport { createGridClipPath, createPolarClipPath } from '../helper/createClipPathFromCoordSys';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport { setStatesStylesFromModel, setStatesFlag, enableHoverEmphasis } from '../../util/states';\nimport { setLabelStyle, getLabelStatesModels, labelInner } from '../../label/labelStyle';\nimport { getDefaultLabel, getDefaultInterpolatedLabel } from '../helper/labelHelper';\nimport { getECData } from '../../util/innerStore';\nimport { createFloat32Array } from '../../util/vendor';\n\nfunction isPointsSame(points1, points2) {\n  if (points1.length !== points2.length) {\n    return;\n  }\n\n  for (var i = 0; i < points1.length; i++) {\n    if (points1[i] !== points2[i]) {\n      return;\n    }\n  }\n\n  return true;\n}\n\nfunction bboxFromPoints(points) {\n  var minX = Infinity;\n  var minY = Infinity;\n  var maxX = -Infinity;\n  var maxY = -Infinity;\n\n  for (var i = 0; i < points.length;) {\n    var x = points[i++];\n    var y = points[i++];\n\n    if (!isNaN(x)) {\n      minX = Math.min(x, minX);\n      maxX = Math.max(x, maxX);\n    }\n\n    if (!isNaN(y)) {\n      minY = Math.min(y, minY);\n      maxY = Math.max(y, maxY);\n    }\n  }\n\n  return [[minX, minY], [maxX, maxY]];\n}\n\nfunction getBoundingDiff(points1, points2) {\n  var _a = bboxFromPoints(points1),\n      min1 = _a[0],\n      max1 = _a[1];\n\n  var _b = bboxFromPoints(points2),\n      min2 = _b[0],\n      max2 = _b[1];\n\n  return Math.max(Math.abs(min1[0] - min2[0]), Math.abs(min1[1] - min2[1]), Math.abs(max1[0] - max2[0]), Math.abs(max1[1] - max2[1]));\n}\n\nfunction getSmooth(smooth) {\n  return typeof smooth === 'number' ? smooth : smooth ? 0.5 : 0;\n}\n\nfunction getStackedOnPoints(coordSys, data, dataCoordInfo) {\n  if (!dataCoordInfo.valueDim) {\n    return [];\n  }\n\n  var len = data.count();\n  var points = createFloat32Array(len * 2);\n\n  for (var idx = 0; idx < len; idx++) {\n    var pt = getStackedOnPoint(dataCoordInfo, coordSys, data, idx);\n    points[idx * 2] = pt[0];\n    points[idx * 2 + 1] = pt[1];\n  }\n\n  return points;\n}\n\nfunction turnPointsIntoStep(points, coordSys, stepTurnAt) {\n  var baseAxis = coordSys.getBaseAxis();\n  var baseIndex = baseAxis.dim === 'x' || baseAxis.dim === 'radius' ? 0 : 1;\n  var stepPoints = [];\n  var i = 0;\n  var stepPt = [];\n  var pt = [];\n  var nextPt = [];\n\n  for (; i < points.length - 2; i += 2) {\n    nextPt[0] = points[i + 2];\n    nextPt[1] = points[i + 3];\n    pt[0] = points[i];\n    pt[1] = points[i + 1];\n    stepPoints.push(pt[0], pt[1]);\n\n    switch (stepTurnAt) {\n      case 'end':\n        stepPt[baseIndex] = nextPt[baseIndex];\n        stepPt[1 - baseIndex] = pt[1 - baseIndex];\n        stepPoints.push(stepPt[0], stepPt[1]);\n        break;\n\n      case 'middle':\n        var middle = (pt[baseIndex] + nextPt[baseIndex]) / 2;\n        var stepPt2 = [];\n        stepPt[baseIndex] = stepPt2[baseIndex] = middle;\n        stepPt[1 - baseIndex] = pt[1 - baseIndex];\n        stepPt2[1 - baseIndex] = nextPt[1 - baseIndex];\n        stepPoints.push(stepPt[0], stepPt[1]);\n        stepPoints.push(stepPt2[0], stepPt2[1]);\n        break;\n\n      default:\n        stepPt[baseIndex] = pt[baseIndex];\n        stepPt[1 - baseIndex] = nextPt[1 - baseIndex];\n        stepPoints.push(stepPt[0], stepPt[1]);\n    }\n  }\n\n  stepPoints.push(points[i++], points[i++]);\n  return stepPoints;\n}\n\nfunction getVisualGradient(data, coordSys) {\n  var visualMetaList = data.getVisual('visualMeta');\n\n  if (!visualMetaList || !visualMetaList.length || !data.count()) {\n    return;\n  }\n\n  if (coordSys.type !== 'cartesian2d') {\n    if (process.env.NODE_ENV !== 'production') {\n      console.warn('Visual map on line style is only supported on cartesian2d.');\n    }\n\n    return;\n  }\n\n  var coordDim;\n  var visualMeta;\n\n  for (var i = visualMetaList.length - 1; i >= 0; i--) {\n    var dimIndex = visualMetaList[i].dimension;\n    var dimName = data.dimensions[dimIndex];\n    var dimInfo = data.getDimensionInfo(dimName);\n    coordDim = dimInfo && dimInfo.coordDim;\n\n    if (coordDim === 'x' || coordDim === 'y') {\n      visualMeta = visualMetaList[i];\n      break;\n    }\n  }\n\n  if (!visualMeta) {\n    if (process.env.NODE_ENV !== 'production') {\n      console.warn('Visual map on line style only support x or y dimension.');\n    }\n\n    return;\n  }\n\n  var axis = coordSys.getAxis(coordDim);\n  var colorStops = zrUtil.map(visualMeta.stops, function (stop) {\n    return {\n      offset: 0,\n      coord: axis.toGlobalCoord(axis.dataToCoord(stop.value)),\n      color: stop.color\n    };\n  });\n  var stopLen = colorStops.length;\n  var outerColors = visualMeta.outerColors.slice();\n\n  if (stopLen && colorStops[0].coord > colorStops[stopLen - 1].coord) {\n    colorStops.reverse();\n    outerColors.reverse();\n  }\n\n  var tinyExtent = 10;\n  var minCoord = colorStops[0].coord - tinyExtent;\n  var maxCoord = colorStops[stopLen - 1].coord + tinyExtent;\n  var coordSpan = maxCoord - minCoord;\n\n  if (coordSpan < 1e-3) {\n    return 'transparent';\n  }\n\n  zrUtil.each(colorStops, function (stop) {\n    stop.offset = (stop.coord - minCoord) / coordSpan;\n  });\n  colorStops.push({\n    offset: stopLen ? colorStops[stopLen - 1].offset : 0.5,\n    color: outerColors[1] || 'transparent'\n  });\n  colorStops.unshift({\n    offset: stopLen ? colorStops[0].offset : 0.5,\n    color: outerColors[0] || 'transparent'\n  });\n  var gradient = new graphic.LinearGradient(0, 0, 0, 0, colorStops, true);\n  gradient[coordDim] = minCoord;\n  gradient[coordDim + '2'] = maxCoord;\n  return gradient;\n}\n\nfunction getIsIgnoreFunc(seriesModel, data, coordSys) {\n  var showAllSymbol = seriesModel.get('showAllSymbol');\n  var isAuto = showAllSymbol === 'auto';\n\n  if (showAllSymbol && !isAuto) {\n    return;\n  }\n\n  var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\n\n  if (!categoryAxis) {\n    return;\n  }\n\n  if (isAuto && canShowAllSymbolForCategory(categoryAxis, data)) {\n    return;\n  }\n\n  var categoryDataDim = data.mapDimension(categoryAxis.dim);\n  var labelMap = {};\n  zrUtil.each(categoryAxis.getViewLabels(), function (labelItem) {\n    var ordinalNumber = categoryAxis.scale.getRawOrdinalNumber(labelItem.tickValue);\n    labelMap[ordinalNumber] = 1;\n  });\n  return function (dataIndex) {\n    return !labelMap.hasOwnProperty(data.get(categoryDataDim, dataIndex));\n  };\n}\n\nfunction canShowAllSymbolForCategory(categoryAxis, data) {\n  var axisExtent = categoryAxis.getExtent();\n  var availSize = Math.abs(axisExtent[1] - axisExtent[0]) / categoryAxis.scale.count();\n  isNaN(availSize) && (availSize = 0);\n  var dataLen = data.count();\n  var step = Math.max(1, Math.round(dataLen / 5));\n\n  for (var dataIndex = 0; dataIndex < dataLen; dataIndex += step) {\n    if (SymbolClz.getSymbolSize(data, dataIndex)[categoryAxis.isHorizontal() ? 1 : 0] * 1.5 > availSize) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nfunction isPointNull(x, y) {\n  return isNaN(x) || isNaN(y);\n}\n\nfunction getLastIndexNotNull(points) {\n  var len = points.length / 2;\n\n  for (; len > 0; len--) {\n    if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n      break;\n    }\n  }\n\n  return len - 1;\n}\n\nfunction getPointAtIndex(points, idx) {\n  return [points[idx * 2], points[idx * 2 + 1]];\n}\n\nfunction getIndexRange(points, xOrY, dim) {\n  var len = points.length / 2;\n  var dimIdx = dim === 'x' ? 0 : 1;\n  var a;\n  var b;\n  var prevIndex = 0;\n  var nextIndex = -1;\n\n  for (var i = 0; i < len; i++) {\n    b = points[i * 2 + dimIdx];\n\n    if (isNaN(b) || isNaN(points[i * 2 + 1 - dimIdx])) {\n      continue;\n    }\n\n    if (i === 0) {\n      a = b;\n      continue;\n    }\n\n    if (a <= xOrY && b >= xOrY || a >= xOrY && b <= xOrY) {\n      nextIndex = i;\n      break;\n    }\n\n    prevIndex = i;\n    a = b;\n  }\n\n  return {\n    range: [prevIndex, nextIndex],\n    t: (xOrY - a) / (b - a)\n  };\n}\n\nfunction createLineClipPath(lineView, coordSys, hasAnimation, seriesModel) {\n  if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n    var endLabelModel_1 = seriesModel.getModel('endLabel');\n    var showEndLabel = endLabelModel_1.get('show');\n    var valueAnimation_1 = endLabelModel_1.get('valueAnimation');\n    var data_1 = seriesModel.getData();\n    var labelAnimationRecord_1 = {\n      lastFrameIndex: 0\n    };\n    var during = showEndLabel ? function (percent, clipRect) {\n      lineView._endLabelOnDuring(percent, clipRect, data_1, labelAnimationRecord_1, valueAnimation_1, endLabelModel_1, coordSys);\n    } : null;\n    var isHorizontal = coordSys.getBaseAxis().isHorizontal();\n    var clipPath = createGridClipPath(coordSys, hasAnimation, seriesModel, function () {\n      var endLabel = lineView._endLabel;\n\n      if (endLabel && hasAnimation) {\n        if (labelAnimationRecord_1.originalX != null) {\n          endLabel.attr({\n            x: labelAnimationRecord_1.originalX,\n            y: labelAnimationRecord_1.originalY\n          });\n        }\n      }\n    }, during);\n\n    if (!seriesModel.get('clip', true)) {\n      var rectShape = clipPath.shape;\n      var expandSize = Math.max(rectShape.width, rectShape.height);\n\n      if (isHorizontal) {\n        rectShape.y -= expandSize;\n        rectShape.height += expandSize * 2;\n      } else {\n        rectShape.x -= expandSize;\n        rectShape.width += expandSize * 2;\n      }\n    }\n\n    if (during) {\n      during(1, clipPath);\n    }\n\n    return clipPath;\n  } else {\n    if (process.env.NODE_ENV !== 'production') {\n      if (seriesModel.get(['endLabel', 'show'])) {\n        console.warn('endLabel is not supported for lines in polar systems.');\n      }\n    }\n\n    return createPolarClipPath(coordSys, hasAnimation, seriesModel);\n  }\n}\n\nfunction getEndLabelStateSpecified(endLabelModel, coordSys) {\n  var baseAxis = coordSys.getBaseAxis();\n  var isHorizontal = baseAxis.isHorizontal();\n  var isBaseInversed = baseAxis.inverse;\n  var align = isHorizontal ? isBaseInversed ? 'right' : 'left' : 'center';\n  var verticalAlign = isHorizontal ? 'middle' : isBaseInversed ? 'top' : 'bottom';\n  return {\n    normal: {\n      align: endLabelModel.get('align') || align,\n      verticalAlign: endLabelModel.get('verticalAlign') || verticalAlign\n    }\n  };\n}\n\nvar LineView = function (_super) {\n  __extends(LineView, _super);\n\n  function LineView() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  LineView.prototype.init = function () {\n    var lineGroup = new graphic.Group();\n    var symbolDraw = new SymbolDraw();\n    this.group.add(symbolDraw.group);\n    this._symbolDraw = symbolDraw;\n    this._lineGroup = lineGroup;\n  };\n\n  LineView.prototype.render = function (seriesModel, ecModel, api) {\n    var _this = this;\n\n    var coordSys = seriesModel.coordinateSystem;\n    var group = this.group;\n    var data = seriesModel.getData();\n    var lineStyleModel = seriesModel.getModel('lineStyle');\n    var areaStyleModel = seriesModel.getModel('areaStyle');\n    var points = data.getLayout('points') || [];\n    var isCoordSysPolar = coordSys.type === 'polar';\n    var prevCoordSys = this._coordSys;\n    var symbolDraw = this._symbolDraw;\n    var polyline = this._polyline;\n    var polygon = this._polygon;\n    var lineGroup = this._lineGroup;\n    var hasAnimation = seriesModel.get('animation');\n    var isAreaChart = !areaStyleModel.isEmpty();\n    var valueOrigin = areaStyleModel.get('origin');\n    var dataCoordInfo = prepareDataCoordInfo(coordSys, data, valueOrigin);\n    var stackedOnPoints = isAreaChart && getStackedOnPoints(coordSys, data, dataCoordInfo);\n    var showSymbol = seriesModel.get('showSymbol');\n    var isIgnoreFunc = showSymbol && !isCoordSysPolar && getIsIgnoreFunc(seriesModel, data, coordSys);\n    var oldData = this._data;\n    oldData && oldData.eachItemGraphicEl(function (el, idx) {\n      if (el.__temp) {\n        group.remove(el);\n        oldData.setItemGraphicEl(idx, null);\n      }\n    });\n\n    if (!showSymbol) {\n      symbolDraw.remove();\n    }\n\n    group.add(lineGroup);\n    var step = !isCoordSysPolar ? seriesModel.get('step') : false;\n    var clipShapeForSymbol;\n\n    if (coordSys && coordSys.getArea && seriesModel.get('clip', true)) {\n      clipShapeForSymbol = coordSys.getArea();\n\n      if (clipShapeForSymbol.width != null) {\n        clipShapeForSymbol.x -= 0.1;\n        clipShapeForSymbol.y -= 0.1;\n        clipShapeForSymbol.width += 0.2;\n        clipShapeForSymbol.height += 0.2;\n      } else if (clipShapeForSymbol.r0) {\n        clipShapeForSymbol.r0 -= 0.5;\n        clipShapeForSymbol.r += 0.5;\n      }\n    }\n\n    this._clipShapeForSymbol = clipShapeForSymbol;\n\n    if (!(polyline && prevCoordSys.type === coordSys.type && step === this._step)) {\n      showSymbol && symbolDraw.updateData(data, {\n        isIgnore: isIgnoreFunc,\n        clipShape: clipShapeForSymbol,\n        disableAnimation: true,\n        getSymbolPoint: function (idx) {\n          return [points[idx * 2], points[idx * 2 + 1]];\n        }\n      });\n      hasAnimation && this._initSymbolLabelAnimation(data, coordSys, clipShapeForSymbol);\n\n      if (step) {\n        points = turnPointsIntoStep(points, coordSys, step);\n\n        if (stackedOnPoints) {\n          stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\n        }\n      }\n\n      polyline = this._newPolyline(points);\n\n      if (isAreaChart) {\n        polygon = this._newPolygon(points, stackedOnPoints);\n      }\n\n      if (!isCoordSysPolar) {\n        this._initOrUpdateEndLabel(seriesModel, coordSys);\n      }\n\n      lineGroup.setClipPath(createLineClipPath(this, coordSys, true, seriesModel));\n    } else {\n      if (isAreaChart && !polygon) {\n        polygon = this._newPolygon(points, stackedOnPoints);\n      } else if (polygon && !isAreaChart) {\n        lineGroup.remove(polygon);\n        polygon = this._polygon = null;\n      }\n\n      if (!isCoordSysPolar) {\n        this._initOrUpdateEndLabel(seriesModel, coordSys);\n      }\n\n      lineGroup.setClipPath(createLineClipPath(this, coordSys, false, seriesModel));\n      showSymbol && symbolDraw.updateData(data, {\n        isIgnore: isIgnoreFunc,\n        clipShape: clipShapeForSymbol,\n        disableAnimation: true,\n        getSymbolPoint: function (idx) {\n          return [points[idx * 2], points[idx * 2 + 1]];\n        }\n      });\n\n      if (!isPointsSame(this._stackedOnPoints, stackedOnPoints) || !isPointsSame(this._points, points)) {\n        if (hasAnimation) {\n          this._doUpdateAnimation(data, stackedOnPoints, coordSys, api, step, valueOrigin);\n        } else {\n          if (step) {\n            points = turnPointsIntoStep(points, coordSys, step);\n\n            if (stackedOnPoints) {\n              stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\n            }\n          }\n\n          polyline.setShape({\n            points: points\n          });\n          polygon && polygon.setShape({\n            points: points,\n            stackedOnPoints: stackedOnPoints\n          });\n        }\n      }\n    }\n\n    var visualColor = getVisualGradient(data, coordSys) || data.getVisual('style')[data.getVisual('drawType')];\n    var focus = seriesModel.get(['emphasis', 'focus']);\n    var blurScope = seriesModel.get(['emphasis', 'blurScope']);\n    polyline.useStyle(zrUtil.defaults(lineStyleModel.getLineStyle(), {\n      fill: 'none',\n      stroke: visualColor,\n      lineJoin: 'bevel'\n    }));\n    setStatesStylesFromModel(polyline, seriesModel, 'lineStyle');\n\n    if (polyline.style.lineWidth > 0 && seriesModel.get(['emphasis', 'lineStyle', 'width']) === 'bolder') {\n      var emphasisLineStyle = polyline.getState('emphasis').style;\n      emphasisLineStyle.lineWidth = polyline.style.lineWidth + 1;\n    }\n\n    getECData(polyline).seriesIndex = seriesModel.seriesIndex;\n    enableHoverEmphasis(polyline, focus, blurScope);\n    var smooth = getSmooth(seriesModel.get('smooth'));\n    var smoothMonotone = seriesModel.get('smoothMonotone');\n    var connectNulls = seriesModel.get('connectNulls');\n    polyline.setShape({\n      smooth: smooth,\n      smoothMonotone: smoothMonotone,\n      connectNulls: connectNulls\n    });\n\n    if (polygon) {\n      var stackedOnSeries = data.getCalculationInfo('stackedOnSeries');\n      var stackedOnSmooth = 0;\n      polygon.useStyle(zrUtil.defaults(areaStyleModel.getAreaStyle(), {\n        fill: visualColor,\n        opacity: 0.7,\n        lineJoin: 'bevel',\n        decal: data.getVisual('style').decal\n      }));\n\n      if (stackedOnSeries) {\n        stackedOnSmooth = getSmooth(stackedOnSeries.get('smooth'));\n      }\n\n      polygon.setShape({\n        smooth: smooth,\n        stackedOnSmooth: stackedOnSmooth,\n        smoothMonotone: smoothMonotone,\n        connectNulls: connectNulls\n      });\n      setStatesStylesFromModel(polygon, seriesModel, 'areaStyle');\n      getECData(polygon).seriesIndex = seriesModel.seriesIndex;\n      enableHoverEmphasis(polygon, focus, blurScope);\n    }\n\n    var changePolyState = function (toState) {\n      _this._changePolyState(toState);\n    };\n\n    data.eachItemGraphicEl(function (el) {\n      el && (el.onHoverStateChange = changePolyState);\n    });\n    this._polyline.onHoverStateChange = changePolyState;\n    this._data = data;\n    this._coordSys = coordSys;\n    this._stackedOnPoints = stackedOnPoints;\n    this._points = points;\n    this._step = step;\n    this._valueOrigin = valueOrigin;\n  };\n\n  LineView.prototype.dispose = function () {};\n\n  LineView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\n    var data = seriesModel.getData();\n    var dataIndex = modelUtil.queryDataIndex(data, payload);\n\n    this._changePolyState('emphasis');\n\n    if (!(dataIndex instanceof Array) && dataIndex != null && dataIndex >= 0) {\n      var points = data.getLayout('points');\n      var symbol = data.getItemGraphicEl(dataIndex);\n\n      if (!symbol) {\n        var x = points[dataIndex * 2];\n        var y = points[dataIndex * 2 + 1];\n\n        if (isNaN(x) || isNaN(y)) {\n          return;\n        }\n\n        if (this._clipShapeForSymbol && !this._clipShapeForSymbol.contain(x, y)) {\n          return;\n        }\n\n        symbol = new SymbolClz(data, dataIndex);\n        symbol.x = x;\n        symbol.y = y;\n        symbol.setZ(seriesModel.get('zlevel'), seriesModel.get('z'));\n        symbol.__temp = true;\n        data.setItemGraphicEl(dataIndex, symbol);\n        symbol.stopSymbolAnimation(true);\n        this.group.add(symbol);\n      }\n\n      symbol.highlight();\n    } else {\n      ChartView.prototype.highlight.call(this, seriesModel, ecModel, api, payload);\n    }\n  };\n\n  LineView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\n    var data = seriesModel.getData();\n    var dataIndex = modelUtil.queryDataIndex(data, payload);\n\n    this._changePolyState('normal');\n\n    if (dataIndex != null && dataIndex >= 0) {\n      var symbol = data.getItemGraphicEl(dataIndex);\n\n      if (symbol) {\n        if (symbol.__temp) {\n          data.setItemGraphicEl(dataIndex, null);\n          this.group.remove(symbol);\n        } else {\n          symbol.downplay();\n        }\n      }\n    } else {\n      ChartView.prototype.downplay.call(this, seriesModel, ecModel, api, payload);\n    }\n  };\n\n  LineView.prototype._changePolyState = function (toState) {\n    var polygon = this._polygon;\n    setStatesFlag(this._polyline, toState);\n    polygon && setStatesFlag(polygon, toState);\n  };\n\n  LineView.prototype._newPolyline = function (points) {\n    var polyline = this._polyline;\n\n    if (polyline) {\n      this._lineGroup.remove(polyline);\n    }\n\n    polyline = new ECPolyline({\n      shape: {\n        points: points\n      },\n      segmentIgnoreThreshold: 2,\n      z2: 10\n    });\n\n    this._lineGroup.add(polyline);\n\n    this._polyline = polyline;\n    return polyline;\n  };\n\n  LineView.prototype._newPolygon = function (points, stackedOnPoints) {\n    var polygon = this._polygon;\n\n    if (polygon) {\n      this._lineGroup.remove(polygon);\n    }\n\n    polygon = new ECPolygon({\n      shape: {\n        points: points,\n        stackedOnPoints: stackedOnPoints\n      },\n      segmentIgnoreThreshold: 2\n    });\n\n    this._lineGroup.add(polygon);\n\n    this._polygon = polygon;\n    return polygon;\n  };\n\n  LineView.prototype._initSymbolLabelAnimation = function (data, coordSys, clipShape) {\n    var isHorizontalOrRadial;\n    var isCoordSysPolar;\n    var baseAxis = coordSys.getBaseAxis();\n    var isAxisInverse = baseAxis.inverse;\n\n    if (coordSys.type === 'cartesian2d') {\n      isHorizontalOrRadial = baseAxis.isHorizontal();\n      isCoordSysPolar = false;\n    } else if (coordSys.type === 'polar') {\n      isHorizontalOrRadial = baseAxis.dim === 'angle';\n      isCoordSysPolar = true;\n    }\n\n    var seriesModel = data.hostModel;\n    var seriesDuration = seriesModel.get('animationDuration');\n\n    if (typeof seriesDuration === 'function') {\n      seriesDuration = seriesDuration(null);\n    }\n\n    var seriesDalay = seriesModel.get('animationDelay') || 0;\n    var seriesDalayValue = typeof seriesDalay === 'function' ? seriesDalay(null) : seriesDalay;\n    data.eachItemGraphicEl(function (symbol, idx) {\n      var el = symbol;\n\n      if (el) {\n        var point = [symbol.x, symbol.y];\n        var start = void 0;\n        var end = void 0;\n        var current = void 0;\n\n        if (isCoordSysPolar) {\n          var polarClip = clipShape;\n          var coord = coordSys.pointToCoord(point);\n\n          if (isHorizontalOrRadial) {\n            start = polarClip.startAngle;\n            end = polarClip.endAngle;\n            current = -coord[1] / 180 * Math.PI;\n          } else {\n            start = polarClip.r0;\n            end = polarClip.r;\n            current = coord[0];\n          }\n        } else {\n          var gridClip = clipShape;\n\n          if (isHorizontalOrRadial) {\n            start = gridClip.x;\n            end = gridClip.x + gridClip.width;\n            current = symbol.x;\n          } else {\n            start = gridClip.y + gridClip.height;\n            end = gridClip.y;\n            current = symbol.y;\n          }\n        }\n\n        var ratio = end === start ? 0 : (current - start) / (end - start);\n\n        if (isAxisInverse) {\n          ratio = 1 - ratio;\n        }\n\n        var delay = typeof seriesDalay === 'function' ? seriesDalay(idx) : seriesDuration * ratio + seriesDalayValue;\n        var symbolPath = el.getSymbolPath();\n        var text = symbolPath.getTextContent();\n        el.attr({\n          scaleX: 0,\n          scaleY: 0\n        });\n        el.animateTo({\n          scaleX: 1,\n          scaleY: 1\n        }, {\n          duration: 200,\n          delay: delay\n        });\n\n        if (text) {\n          text.animateFrom({\n            style: {\n              opacity: 0\n            }\n          }, {\n            duration: 300,\n            delay: delay\n          });\n        }\n\n        symbolPath.disableLabelAnimation = true;\n      }\n    });\n  };\n\n  LineView.prototype._initOrUpdateEndLabel = function (seriesModel, coordSys) {\n    var endLabelModel = seriesModel.getModel('endLabel');\n\n    if (endLabelModel.get('show')) {\n      var data_2 = seriesModel.getData();\n      var polyline = this._polyline;\n      var endLabel = this._endLabel;\n\n      if (!endLabel) {\n        endLabel = this._endLabel = new graphic.Text({\n          z2: 200\n        });\n        endLabel.ignoreClip = true;\n        polyline.setTextContent(this._endLabel);\n        polyline.disableLabelAnimation = true;\n      }\n\n      var dataIndex = getLastIndexNotNull(data_2.getLayout('points'));\n\n      if (dataIndex >= 0) {\n        setLabelStyle(polyline, getLabelStatesModels(seriesModel, 'endLabel'), {\n          labelFetcher: seriesModel,\n          labelDataIndex: dataIndex,\n          defaultText: function (dataIndex, opt, interpolatedValue) {\n            return interpolatedValue != null ? getDefaultInterpolatedLabel(data_2, interpolatedValue) : getDefaultLabel(data_2, dataIndex);\n          },\n          enableTextSetter: true\n        }, getEndLabelStateSpecified(endLabelModel, coordSys));\n        polyline.textConfig.position = null;\n      }\n    } else if (this._endLabel) {\n      this._polyline.removeTextContent();\n\n      this._endLabel = null;\n    }\n  };\n\n  LineView.prototype._endLabelOnDuring = function (percent, clipRect, data, animationRecord, valueAnimation, endLabelModel, coordSys) {\n    var endLabel = this._endLabel;\n    var polyline = this._polyline;\n\n    if (endLabel) {\n      if (percent < 1 && animationRecord.originalX == null) {\n        animationRecord.originalX = endLabel.x;\n        animationRecord.originalY = endLabel.y;\n      }\n\n      var points = data.getLayout('points');\n      var seriesModel = data.hostModel;\n      var connectNulls = seriesModel.get('connectNulls');\n      var precision = endLabelModel.get('precision');\n      var distance = endLabelModel.get('distance') || 0;\n      var baseAxis = coordSys.getBaseAxis();\n      var isHorizontal = baseAxis.isHorizontal();\n      var isBaseInversed = baseAxis.inverse;\n      var clipShape = clipRect.shape;\n      var xOrY = isBaseInversed ? isHorizontal ? clipShape.x : clipShape.y + clipShape.height : isHorizontal ? clipShape.x + clipShape.width : clipShape.y;\n      var distanceX = (isHorizontal ? distance : 0) * (isBaseInversed ? -1 : 1);\n      var distanceY = (isHorizontal ? 0 : -distance) * (isBaseInversed ? -1 : 1);\n      var dim = isHorizontal ? 'x' : 'y';\n      var dataIndexRange = getIndexRange(points, xOrY, dim);\n      var indices = dataIndexRange.range;\n      var diff = indices[1] - indices[0];\n      var value = void 0;\n\n      if (diff >= 1) {\n        if (diff > 1 && !connectNulls) {\n          var pt = getPointAtIndex(points, indices[0]);\n          endLabel.attr({\n            x: pt[0] + distanceX,\n            y: pt[1] + distanceY\n          });\n          valueAnimation && (value = seriesModel.getRawValue(indices[0]));\n        } else {\n          var pt = polyline.getPointOn(xOrY, dim);\n          pt && endLabel.attr({\n            x: pt[0] + distanceX,\n            y: pt[1] + distanceY\n          });\n          var startValue = seriesModel.getRawValue(indices[0]);\n          var endValue = seriesModel.getRawValue(indices[1]);\n          valueAnimation && (value = modelUtil.interpolateRawValues(data, precision, startValue, endValue, dataIndexRange.t));\n        }\n\n        animationRecord.lastFrameIndex = indices[0];\n      } else {\n        var idx = percent === 1 || animationRecord.lastFrameIndex > 0 ? indices[0] : 0;\n        var pt = getPointAtIndex(points, idx);\n        valueAnimation && (value = seriesModel.getRawValue(idx));\n        endLabel.attr({\n          x: pt[0] + distanceX,\n          y: pt[1] + distanceY\n        });\n      }\n\n      if (valueAnimation) {\n        labelInner(endLabel).setLabelText(value);\n      }\n    }\n  };\n\n  LineView.prototype._doUpdateAnimation = function (data, stackedOnPoints, coordSys, api, step, valueOrigin) {\n    var polyline = this._polyline;\n    var polygon = this._polygon;\n    var seriesModel = data.hostModel;\n    var diff = lineAnimationDiff(this._data, data, this._stackedOnPoints, stackedOnPoints, this._coordSys, coordSys, this._valueOrigin, valueOrigin);\n    var current = diff.current;\n    var stackedOnCurrent = diff.stackedOnCurrent;\n    var next = diff.next;\n    var stackedOnNext = diff.stackedOnNext;\n\n    if (step) {\n      current = turnPointsIntoStep(diff.current, coordSys, step);\n      stackedOnCurrent = turnPointsIntoStep(diff.stackedOnCurrent, coordSys, step);\n      next = turnPointsIntoStep(diff.next, coordSys, step);\n      stackedOnNext = turnPointsIntoStep(diff.stackedOnNext, coordSys, step);\n    }\n\n    if (getBoundingDiff(current, next) > 3000 || polygon && getBoundingDiff(stackedOnCurrent, stackedOnNext) > 3000) {\n      polyline.setShape({\n        points: next\n      });\n\n      if (polygon) {\n        polygon.setShape({\n          points: next,\n          stackedOnPoints: stackedOnNext\n        });\n      }\n\n      return;\n    }\n\n    polyline.shape.__points = diff.current;\n    polyline.shape.points = current;\n    var target = {\n      shape: {\n        points: next\n      }\n    };\n\n    if (diff.current !== current) {\n      target.shape.__points = diff.next;\n    }\n\n    polyline.stopAnimation();\n    graphic.updateProps(polyline, target, seriesModel);\n\n    if (polygon) {\n      polygon.setShape({\n        points: current,\n        stackedOnPoints: stackedOnCurrent\n      });\n      polygon.stopAnimation();\n      graphic.updateProps(polygon, {\n        shape: {\n          stackedOnPoints: stackedOnNext\n        }\n      }, seriesModel);\n\n      if (polyline.shape.points !== polygon.shape.points) {\n        polygon.shape.points = polyline.shape.points;\n      }\n    }\n\n    var updatedDataInfo = [];\n    var diffStatus = diff.status;\n\n    for (var i = 0; i < diffStatus.length; i++) {\n      var cmd = diffStatus[i].cmd;\n\n      if (cmd === '=') {\n        var el = data.getItemGraphicEl(diffStatus[i].idx1);\n\n        if (el) {\n          updatedDataInfo.push({\n            el: el,\n            ptIdx: i\n          });\n        }\n      }\n    }\n\n    if (polyline.animators && polyline.animators.length) {\n      polyline.animators[0].during(function () {\n        polygon && polygon.dirtyShape();\n        var points = polyline.shape.__points;\n\n        for (var i = 0; i < updatedDataInfo.length; i++) {\n          var el = updatedDataInfo[i].el;\n          var offset = updatedDataInfo[i].ptIdx * 2;\n          el.x = points[offset];\n          el.y = points[offset + 1];\n          el.markRedraw();\n        }\n      });\n    }\n  };\n\n  LineView.prototype.remove = function (ecModel) {\n    var group = this.group;\n    var oldData = this._data;\n\n    this._lineGroup.removeAll();\n\n    this._symbolDraw.remove(true);\n\n    oldData && oldData.eachItemGraphicEl(function (el, idx) {\n      if (el.__temp) {\n        group.remove(el);\n        oldData.setItemGraphicEl(idx, null);\n      }\n    });\n    this._polyline = this._polygon = this._coordSys = this._points = this._stackedOnPoints = this._endLabel = this._data = null;\n  };\n\n  LineView.type = 'line';\n  return LineView;\n}(ChartView);\n\nexport default LineView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { map } from 'zrender/lib/core/util';\nimport createRenderPlanner from '../chart/helper/createRenderPlanner';\nimport { isDimensionStacked } from '../data/helper/dataStackHelper';\nimport { createFloat32Array } from '../util/vendor';\nexport default function pointsLayout(seriesType, forceStoreInTypedArray) {\n  return {\n    seriesType: seriesType,\n    plan: createRenderPlanner(),\n    reset: function (seriesModel) {\n      var data = seriesModel.getData();\n      var coordSys = seriesModel.coordinateSystem;\n      var pipelineContext = seriesModel.pipelineContext;\n      var useTypedArray = forceStoreInTypedArray || pipelineContext.large;\n\n      if (!coordSys) {\n        return;\n      }\n\n      var dims = map(coordSys.dimensions, function (dim) {\n        return data.mapDimension(dim);\n      }).slice(0, 2);\n      var dimLen = dims.length;\n      var stackResultDim = data.getCalculationInfo('stackResultDimension');\n\n      if (isDimensionStacked(data, dims[0])) {\n        dims[0] = stackResultDim;\n      }\n\n      if (isDimensionStacked(data, dims[1])) {\n        dims[1] = stackResultDim;\n      }\n\n      var dimInfo0 = data.getDimensionInfo(dims[0]);\n      var dimInfo1 = data.getDimensionInfo(dims[1]);\n      var dimIdx0 = dimInfo0 && dimInfo0.index;\n      var dimIdx1 = dimInfo1 && dimInfo1.index;\n      return dimLen && {\n        progress: function (params, data) {\n          var segCount = params.end - params.start;\n          var points = useTypedArray && createFloat32Array(segCount * dimLen);\n          var tmpIn = [];\n          var tmpOut = [];\n\n          for (var i = params.start, offset = 0; i < params.end; i++) {\n            var point = void 0;\n\n            if (dimLen === 1) {\n              var x = data.getByDimIdx(dimIdx0, i);\n              point = coordSys.dataToPoint(x, null, tmpOut);\n            } else {\n              tmpIn[0] = data.getByDimIdx(dimIdx0, i);\n              tmpIn[1] = data.getByDimIdx(dimIdx1, i);\n              point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n            }\n\n            if (useTypedArray) {\n              points[offset++] = point[0];\n              points[offset++] = point[1];\n            } else {\n              data.setItemLayout(i, point.slice());\n            }\n          }\n\n          useTypedArray && data.setLayout('points', points);\n        }\n      };\n    }\n  };\n}\n;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar samplers = {\n  average: function (frame) {\n    var sum = 0;\n    var count = 0;\n\n    for (var i = 0; i < frame.length; i++) {\n      if (!isNaN(frame[i])) {\n        sum += frame[i];\n        count++;\n      }\n    }\n\n    return count === 0 ? NaN : sum / count;\n  },\n  sum: function (frame) {\n    var sum = 0;\n\n    for (var i = 0; i < frame.length; i++) {\n      sum += frame[i] || 0;\n    }\n\n    return sum;\n  },\n  max: function (frame) {\n    var max = -Infinity;\n\n    for (var i = 0; i < frame.length; i++) {\n      frame[i] > max && (max = frame[i]);\n    }\n\n    return isFinite(max) ? max : NaN;\n  },\n  min: function (frame) {\n    var min = Infinity;\n\n    for (var i = 0; i < frame.length; i++) {\n      frame[i] < min && (min = frame[i]);\n    }\n\n    return isFinite(min) ? min : NaN;\n  },\n  nearest: function (frame) {\n    return frame[0];\n  }\n};\n\nvar indexSampler = function (frame) {\n  return Math.round(frame.length / 2);\n};\n\nexport default function dataSample(seriesType) {\n  return {\n    seriesType: seriesType,\n    reset: function (seriesModel, ecModel, api) {\n      var data = seriesModel.getData();\n      var sampling = seriesModel.get('sampling');\n      var coordSys = seriesModel.coordinateSystem;\n      var count = data.count();\n\n      if (count > 10 && coordSys.type === 'cartesian2d' && sampling) {\n        var baseAxis = coordSys.getBaseAxis();\n        var valueAxis = coordSys.getOtherAxis(baseAxis);\n        var extent = baseAxis.getExtent();\n        var dpr = api.getDevicePixelRatio();\n        var size = Math.abs(extent[1] - extent[0]) * (dpr || 1);\n        var rate = Math.round(count / size);\n\n        if (rate > 1) {\n          if (sampling === 'lttb') {\n            seriesModel.setData(data.lttbDownSample(data.mapDimension(valueAxis.dim), 1 / rate));\n          }\n\n          var sampler = void 0;\n\n          if (typeof sampling === 'string') {\n            sampler = samplers[sampling];\n          } else if (typeof sampling === 'function') {\n            sampler = sampling;\n          }\n\n          if (sampler) {\n            seriesModel.setData(data.downSample(data.mapDimension(valueAxis.dim), 1 / rate, sampler, indexSampler));\n          }\n        }\n      }\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport LineSeries from './LineSeries';\nimport LineView from './LineView';\nimport layoutPoints from '../../layout/points';\nimport dataSample from '../../processor/dataSample';\nexport function install(registers) {\n  registers.registerChartView(LineView);\n  registers.registerSeriesModel(LineSeries);\n  registers.registerLayout(layoutPoints('line', true));\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, dataSample('line'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport createListFromArray from '../helper/createListFromArray';\n\nvar BaseBarSeriesModel = function (_super) {\n  __extends(BaseBarSeriesModel, _super);\n\n  function BaseBarSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BaseBarSeriesModel.type;\n    return _this;\n  }\n\n  BaseBarSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: true\n    });\n  };\n\n  BaseBarSeriesModel.prototype.getMarkerPosition = function (value) {\n    var coordSys = this.coordinateSystem;\n\n    if (coordSys) {\n      var pt = coordSys.dataToPoint(coordSys.clampData(value));\n      var data = this.getData();\n      var offset = data.getLayout('offset');\n      var size = data.getLayout('size');\n      var offsetIndex = coordSys.getBaseAxis().isHorizontal() ? 0 : 1;\n      pt[offsetIndex] += offset + size / 2;\n      return pt;\n    }\n\n    return [NaN, NaN];\n  };\n\n  BaseBarSeriesModel.type = 'series.__base_bar__';\n  BaseBarSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'cartesian2d',\n    legendHoverLink: true,\n    barMinHeight: 0,\n    barMinAngle: 0,\n    large: false,\n    largeThreshold: 400,\n    progressive: 3e3,\n    progressiveChunkMode: 'mod'\n  };\n  return BaseBarSeriesModel;\n}(SeriesModel);\n\nSeriesModel.registerClass(BaseBarSeriesModel);\nexport default BaseBarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BaseBarSeriesModel from './BaseBarSeries';\nimport createListFromArray from '../helper/createListFromArray';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar BarSeriesModel = function (_super) {\n  __extends(BarSeriesModel, _super);\n\n  function BarSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BarSeriesModel.type;\n    return _this;\n  }\n\n  BarSeriesModel.prototype.getInitialData = function () {\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: true,\n      createInvertedIndices: !!this.get('realtimeSort', true) || null\n    });\n  };\n\n  BarSeriesModel.prototype.getProgressive = function () {\n    return this.get('large') ? this.get('progressive') : false;\n  };\n\n  BarSeriesModel.prototype.getProgressiveThreshold = function () {\n    var progressiveThreshold = this.get('progressiveThreshold');\n    var largeThreshold = this.get('largeThreshold');\n\n    if (largeThreshold > progressiveThreshold) {\n      progressiveThreshold = largeThreshold;\n    }\n\n    return progressiveThreshold;\n  };\n\n  BarSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n    return selectors.rect(data.getItemLayout(dataIndex));\n  };\n\n  BarSeriesModel.type = 'series.bar';\n  BarSeriesModel.dependencies = ['grid', 'polar'];\n  BarSeriesModel.defaultOption = inheritDefaultOption(BaseBarSeriesModel.defaultOption, {\n    clip: true,\n    roundCap: false,\n    showBackground: false,\n    backgroundStyle: {\n      color: 'rgba(180, 180, 180, 0.2)',\n      borderColor: null,\n      borderWidth: 0,\n      borderType: 'solid',\n      borderRadius: 0,\n      shadowBlur: 0,\n      shadowColor: null,\n      shadowOffsetX: 0,\n      shadowOffsetY: 0,\n      opacity: 1\n    },\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    },\n    realtimeSort: false\n  });\n  return BarSeriesModel;\n}(BaseBarSeriesModel);\n\nexport default BarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { Path } from '../graphic';\n\nvar SausageShape = function () {\n  function SausageShape() {\n    this.cx = 0;\n    this.cy = 0;\n    this.r0 = 0;\n    this.r = 0;\n    this.startAngle = 0;\n    this.endAngle = Math.PI * 2;\n    this.clockwise = true;\n  }\n\n  return SausageShape;\n}();\n\nvar SausagePath = function (_super) {\n  __extends(SausagePath, _super);\n\n  function SausagePath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'sausage';\n    return _this;\n  }\n\n  SausagePath.prototype.getDefaultShape = function () {\n    return new SausageShape();\n  };\n\n  SausagePath.prototype.buildPath = function (ctx, shape) {\n    var x = shape.cx;\n    var y = shape.cy;\n    var r0 = Math.max(shape.r0 || 0, 0);\n    var r = Math.max(shape.r, 0);\n    var dr = (r - r0) * 0.5;\n    var rCenter = r0 + dr;\n    var startAngle = shape.startAngle;\n    var endAngle = shape.endAngle;\n    var clockwise = shape.clockwise;\n    var unitStartX = Math.cos(startAngle);\n    var unitStartY = Math.sin(startAngle);\n    var unitEndX = Math.cos(endAngle);\n    var unitEndY = Math.sin(endAngle);\n    var lessThanCircle = clockwise ? endAngle - startAngle < Math.PI * 2 : startAngle - endAngle < Math.PI * 2;\n\n    if (lessThanCircle) {\n      ctx.moveTo(unitStartX * r0 + x, unitStartY * r0 + y);\n      ctx.arc(unitStartX * rCenter + x, unitStartY * rCenter + y, dr, -Math.PI + startAngle, startAngle, !clockwise);\n    }\n\n    ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\n    ctx.moveTo(unitEndX * r + x, unitEndY * r + y);\n    ctx.arc(unitEndX * rCenter + x, unitEndY * rCenter + y, dr, endAngle - Math.PI * 2, endAngle - Math.PI, !clockwise);\n\n    if (r0 !== 0) {\n      ctx.arc(x, y, r0, endAngle, startAngle, clockwise);\n      ctx.moveTo(unitStartX * r0 + x, unitEndY * r0 + y);\n    }\n\n    ctx.closePath();\n  };\n\n  return SausagePath;\n}(Path);\n\nexport default SausagePath;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Path from 'zrender/lib/graphic/Path';\nimport Group from 'zrender/lib/graphic/Group';\nimport { extend, defaults, each, map } from 'zrender/lib/core/util';\nimport { Rect, Sector, updateProps, initProps, removeElementWithFadeOut } from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { enableHoverEmphasis, setStatesStylesFromModel } from '../../util/states';\nimport { setLabelStyle, getLabelStatesModels, setLabelValueAnimation } from '../../label/labelStyle';\nimport { throttle } from '../../util/throttle';\nimport { createClipPath } from '../helper/createClipPathFromCoordSys';\nimport Sausage from '../../util/shape/sausage';\nimport ChartView from '../../view/Chart';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport { getDefaultLabel, getDefaultInterpolatedLabel } from '../helper/labelHelper';\nimport { warn } from '../../util/log';\nvar BAR_BORDER_WIDTH_QUERY = ['itemStyle', 'borderWidth'];\nvar BAR_BORDER_RADIUS_QUERY = ['itemStyle', 'borderRadius'];\nvar _eventPos = [0, 0];\nvar mathMax = Math.max;\nvar mathMin = Math.min;\n\nfunction getClipArea(coord, data) {\n  var coordSysClipArea = coord.getArea && coord.getArea();\n\n  if (isCoordinateSystemType(coord, 'cartesian2d')) {\n    var baseAxis = coord.getBaseAxis();\n\n    if (baseAxis.type !== 'category' || !baseAxis.onBand) {\n      var expandWidth = data.getLayout('bandWidth');\n\n      if (baseAxis.isHorizontal()) {\n        coordSysClipArea.x -= expandWidth;\n        coordSysClipArea.width += expandWidth * 2;\n      } else {\n        coordSysClipArea.y -= expandWidth;\n        coordSysClipArea.height += expandWidth * 2;\n      }\n    }\n  }\n\n  return coordSysClipArea;\n}\n\nvar BarView = function (_super) {\n  __extends(BarView, _super);\n\n  function BarView() {\n    var _this = _super.call(this) || this;\n\n    _this.type = BarView.type;\n    _this._isFirstFrame = true;\n    return _this;\n  }\n\n  BarView.prototype.render = function (seriesModel, ecModel, api, payload) {\n    this._model = seriesModel;\n\n    this._removeOnRenderedListener(api);\n\n    this._updateDrawMode(seriesModel);\n\n    var coordinateSystemType = seriesModel.get('coordinateSystem');\n\n    if (coordinateSystemType === 'cartesian2d' || coordinateSystemType === 'polar') {\n      this._isLargeDraw ? this._renderLarge(seriesModel, ecModel, api) : this._renderNormal(seriesModel, ecModel, api, payload);\n    } else if (process.env.NODE_ENV !== 'production') {\n      warn('Only cartesian2d and polar supported for bar.');\n    }\n  };\n\n  BarView.prototype.incrementalPrepareRender = function (seriesModel) {\n    this._clear();\n\n    this._updateDrawMode(seriesModel);\n\n    this._updateLargeClip(seriesModel);\n  };\n\n  BarView.prototype.incrementalRender = function (params, seriesModel) {\n    this._incrementalRenderLarge(params, seriesModel);\n  };\n\n  BarView.prototype._updateDrawMode = function (seriesModel) {\n    var isLargeDraw = seriesModel.pipelineContext.large;\n\n    if (this._isLargeDraw == null || isLargeDraw !== this._isLargeDraw) {\n      this._isLargeDraw = isLargeDraw;\n\n      this._clear();\n    }\n  };\n\n  BarView.prototype._renderNormal = function (seriesModel, ecModel, api, payload) {\n    var group = this.group;\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var coord = seriesModel.coordinateSystem;\n    var baseAxis = coord.getBaseAxis();\n    var isHorizontalOrRadial;\n\n    if (coord.type === 'cartesian2d') {\n      isHorizontalOrRadial = baseAxis.isHorizontal();\n    } else if (coord.type === 'polar') {\n      isHorizontalOrRadial = baseAxis.dim === 'angle';\n    }\n\n    var animationModel = seriesModel.isAnimationEnabled() ? seriesModel : null;\n    var realtimeSortCfg = shouldRealtimeSort(seriesModel, coord);\n\n    if (realtimeSortCfg) {\n      this._enableRealtimeSort(realtimeSortCfg, data, api);\n    }\n\n    var needsClip = seriesModel.get('clip', true) || realtimeSortCfg;\n    var coordSysClipArea = getClipArea(coord, data);\n    group.removeClipPath();\n    var roundCap = seriesModel.get('roundCap', true);\n    var drawBackground = seriesModel.get('showBackground', true);\n    var backgroundModel = seriesModel.getModel('backgroundStyle');\n    var barBorderRadius = backgroundModel.get('borderRadius') || 0;\n    var bgEls = [];\n    var oldBgEls = this._backgroundEls;\n    var isInitSort = payload && payload.isInitSort;\n    var isChangeOrder = payload && payload.type === 'changeAxisOrder';\n\n    function createBackground(dataIndex) {\n      var bgLayout = getLayout[coord.type](data, dataIndex);\n      var bgEl = createBackgroundEl(coord, isHorizontalOrRadial, bgLayout);\n      bgEl.useStyle(backgroundModel.getItemStyle());\n\n      if (coord.type === 'cartesian2d') {\n        bgEl.setShape('r', barBorderRadius);\n      }\n\n      bgEls[dataIndex] = bgEl;\n      return bgEl;\n    }\n\n    ;\n    data.diff(oldData).add(function (dataIndex) {\n      var itemModel = data.getItemModel(dataIndex);\n      var layout = getLayout[coord.type](data, dataIndex, itemModel);\n\n      if (drawBackground) {\n        createBackground(dataIndex);\n      }\n\n      if (!data.hasValue(dataIndex)) {\n        return;\n      }\n\n      var isClipped = false;\n\n      if (needsClip) {\n        isClipped = clip[coord.type](coordSysClipArea, layout);\n      }\n\n      var el = elementCreator[coord.type](seriesModel, data, dataIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, false, roundCap);\n      updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\n\n      if (isInitSort) {\n        el.attr({\n          shape: layout\n        });\n      } else if (realtimeSortCfg) {\n        updateRealtimeAnimation(realtimeSortCfg, animationModel, el, layout, dataIndex, isHorizontalOrRadial, false, false);\n      } else {\n        initProps(el, {\n          shape: layout\n        }, seriesModel, dataIndex);\n      }\n\n      data.setItemGraphicEl(dataIndex, el);\n      group.add(el);\n      el.ignore = isClipped;\n    }).update(function (newIndex, oldIndex) {\n      var itemModel = data.getItemModel(newIndex);\n      var layout = getLayout[coord.type](data, newIndex, itemModel);\n\n      if (drawBackground) {\n        var bgEl = void 0;\n\n        if (oldBgEls.length === 0) {\n          bgEl = createBackground(oldIndex);\n        } else {\n          bgEl = oldBgEls[oldIndex];\n          bgEl.useStyle(backgroundModel.getItemStyle());\n\n          if (coord.type === 'cartesian2d') {\n            bgEl.setShape('r', barBorderRadius);\n          }\n\n          bgEls[newIndex] = bgEl;\n        }\n\n        var bgLayout = getLayout[coord.type](data, newIndex);\n        var shape = createBackgroundShape(isHorizontalOrRadial, bgLayout, coord);\n        updateProps(bgEl, {\n          shape: shape\n        }, animationModel, newIndex);\n      }\n\n      var el = oldData.getItemGraphicEl(oldIndex);\n\n      if (!data.hasValue(newIndex)) {\n        group.remove(el);\n        el = null;\n        return;\n      }\n\n      var isClipped = false;\n\n      if (needsClip) {\n        isClipped = clip[coord.type](coordSysClipArea, layout);\n\n        if (isClipped) {\n          group.remove(el);\n        }\n      }\n\n      if (!el) {\n        el = elementCreator[coord.type](seriesModel, data, newIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, !!el, roundCap);\n      }\n\n      if (!isChangeOrder) {\n        updateStyle(el, data, newIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\n      }\n\n      if (isInitSort) {\n        el.attr({\n          shape: layout\n        });\n      } else if (realtimeSortCfg) {\n        updateRealtimeAnimation(realtimeSortCfg, animationModel, el, layout, newIndex, isHorizontalOrRadial, true, isChangeOrder);\n      } else {\n        updateProps(el, {\n          shape: layout\n        }, seriesModel, newIndex, null);\n      }\n\n      data.setItemGraphicEl(newIndex, el);\n      el.ignore = isClipped;\n      group.add(el);\n    }).remove(function (dataIndex) {\n      var el = oldData.getItemGraphicEl(dataIndex);\n      el && removeElementWithFadeOut(el, seriesModel, dataIndex);\n    }).execute();\n    var bgGroup = this._backgroundGroup || (this._backgroundGroup = new Group());\n    bgGroup.removeAll();\n\n    for (var i = 0; i < bgEls.length; ++i) {\n      bgGroup.add(bgEls[i]);\n    }\n\n    group.add(bgGroup);\n    this._backgroundEls = bgEls;\n    this._data = data;\n  };\n\n  BarView.prototype._renderLarge = function (seriesModel, ecModel, api) {\n    this._clear();\n\n    createLarge(seriesModel, this.group);\n\n    this._updateLargeClip(seriesModel);\n  };\n\n  BarView.prototype._incrementalRenderLarge = function (params, seriesModel) {\n    this._removeBackground();\n\n    createLarge(seriesModel, this.group, true);\n  };\n\n  BarView.prototype._updateLargeClip = function (seriesModel) {\n    var clipPath = seriesModel.get('clip', true) ? createClipPath(seriesModel.coordinateSystem, false, seriesModel) : null;\n\n    if (clipPath) {\n      this.group.setClipPath(clipPath);\n    } else {\n      this.group.removeClipPath();\n    }\n  };\n\n  BarView.prototype._enableRealtimeSort = function (realtimeSortCfg, data, api) {\n    var _this = this;\n\n    if (!data.count()) {\n      return;\n    }\n\n    var baseAxis = realtimeSortCfg.baseAxis;\n\n    if (this._isFirstFrame) {\n      this._dispatchInitSort(data, realtimeSortCfg, api);\n\n      this._isFirstFrame = false;\n    } else {\n      var orderMapping_1 = function (idx) {\n        var el = data.getItemGraphicEl(idx);\n\n        if (el) {\n          var shape = el.shape;\n          return (baseAxis.isHorizontal() ? Math.abs(shape.height) : Math.abs(shape.width)) || 0;\n        } else {\n          return 0;\n        }\n      };\n\n      this._onRendered = function () {\n        _this._updateSortWithinSameData(data, orderMapping_1, baseAxis, api);\n      };\n\n      api.getZr().on('rendered', this._onRendered);\n    }\n  };\n\n  BarView.prototype._dataSort = function (data, baseAxis, orderMapping) {\n    var info = [];\n    data.each(data.mapDimension(baseAxis.dim), function (ordinalNumber, dataIdx) {\n      var mappedValue = orderMapping(dataIdx);\n      mappedValue = mappedValue == null ? NaN : mappedValue;\n      info.push({\n        dataIndex: dataIdx,\n        mappedValue: mappedValue,\n        ordinalNumber: ordinalNumber\n      });\n    });\n    info.sort(function (a, b) {\n      return b.mappedValue - a.mappedValue;\n    });\n    return {\n      ordinalNumbers: map(info, function (item) {\n        return item.ordinalNumber;\n      })\n    };\n  };\n\n  BarView.prototype._isOrderChangedWithinSameData = function (data, orderMapping, baseAxis) {\n    var scale = baseAxis.scale;\n    var ordinalDataDim = data.mapDimension(baseAxis.dim);\n    var lastValue = Number.MAX_VALUE;\n\n    for (var tickNum = 0, len = scale.getOrdinalMeta().categories.length; tickNum < len; ++tickNum) {\n      var rawIdx = data.rawIndexOf(ordinalDataDim, scale.getRawOrdinalNumber(tickNum));\n      var value = rawIdx < 0 ? Number.MIN_VALUE : orderMapping(data.indexOfRawIndex(rawIdx));\n\n      if (value > lastValue) {\n        return true;\n      }\n\n      lastValue = value;\n    }\n\n    return false;\n  };\n\n  BarView.prototype._isOrderDifferentInView = function (orderInfo, baseAxis) {\n    var scale = baseAxis.scale;\n    var extent = scale.getExtent();\n    var tickNum = Math.max(0, extent[0]);\n    var tickMax = Math.min(extent[1], scale.getOrdinalMeta().categories.length - 1);\n\n    for (; tickNum <= tickMax; ++tickNum) {\n      if (orderInfo.ordinalNumbers[tickNum] !== scale.getRawOrdinalNumber(tickNum)) {\n        return true;\n      }\n    }\n  };\n\n  BarView.prototype._updateSortWithinSameData = function (data, orderMapping, baseAxis, api) {\n    if (!this._isOrderChangedWithinSameData(data, orderMapping, baseAxis)) {\n      return;\n    }\n\n    var sortInfo = this._dataSort(data, baseAxis, orderMapping);\n\n    if (this._isOrderDifferentInView(sortInfo, baseAxis)) {\n      this._removeOnRenderedListener(api);\n\n      api.dispatchAction({\n        type: 'changeAxisOrder',\n        componentType: baseAxis.dim + 'Axis',\n        axisId: baseAxis.index,\n        sortInfo: sortInfo\n      });\n    }\n  };\n\n  BarView.prototype._dispatchInitSort = function (data, realtimeSortCfg, api) {\n    var baseAxis = realtimeSortCfg.baseAxis;\n\n    var sortResult = this._dataSort(data, baseAxis, function (dataIdx) {\n      return data.get(data.mapDimension(realtimeSortCfg.otherAxis.dim), dataIdx);\n    });\n\n    api.dispatchAction({\n      type: 'changeAxisOrder',\n      componentType: baseAxis.dim + 'Axis',\n      isInitSort: true,\n      axisId: baseAxis.index,\n      sortInfo: sortResult,\n      animation: {\n        duration: 0\n      }\n    });\n  };\n\n  BarView.prototype.remove = function (ecModel, api) {\n    this._clear(this._model);\n\n    this._removeOnRenderedListener(api);\n  };\n\n  BarView.prototype.dispose = function (ecModel, api) {\n    this._removeOnRenderedListener(api);\n  };\n\n  BarView.prototype._removeOnRenderedListener = function (api) {\n    if (this._onRendered) {\n      api.getZr().off('rendered', this._onRendered);\n      this._onRendered = null;\n    }\n  };\n\n  BarView.prototype._clear = function (model) {\n    var group = this.group;\n    var data = this._data;\n\n    if (model && model.isAnimationEnabled() && data && !this._isLargeDraw) {\n      this._removeBackground();\n\n      this._backgroundEls = [];\n      data.eachItemGraphicEl(function (el) {\n        removeElementWithFadeOut(el, model, getECData(el).dataIndex);\n      });\n    } else {\n      group.removeAll();\n    }\n\n    this._data = null;\n    this._isFirstFrame = true;\n  };\n\n  BarView.prototype._removeBackground = function () {\n    this.group.remove(this._backgroundGroup);\n    this._backgroundGroup = null;\n  };\n\n  BarView.type = 'bar';\n  return BarView;\n}(ChartView);\n\nvar clip = {\n  cartesian2d: function (coordSysBoundingRect, layout) {\n    var signWidth = layout.width < 0 ? -1 : 1;\n    var signHeight = layout.height < 0 ? -1 : 1;\n\n    if (signWidth < 0) {\n      layout.x += layout.width;\n      layout.width = -layout.width;\n    }\n\n    if (signHeight < 0) {\n      layout.y += layout.height;\n      layout.height = -layout.height;\n    }\n\n    var coordSysX2 = coordSysBoundingRect.x + coordSysBoundingRect.width;\n    var coordSysY2 = coordSysBoundingRect.y + coordSysBoundingRect.height;\n    var x = mathMax(layout.x, coordSysBoundingRect.x);\n    var x2 = mathMin(layout.x + layout.width, coordSysX2);\n    var y = mathMax(layout.y, coordSysBoundingRect.y);\n    var y2 = mathMin(layout.y + layout.height, coordSysY2);\n    var xClipped = x2 < x;\n    var yClipped = y2 < y;\n    layout.x = xClipped && x > coordSysX2 ? x2 : x;\n    layout.y = yClipped && y > coordSysY2 ? y2 : y;\n    layout.width = xClipped ? 0 : x2 - x;\n    layout.height = yClipped ? 0 : y2 - y;\n\n    if (signWidth < 0) {\n      layout.x += layout.width;\n      layout.width = -layout.width;\n    }\n\n    if (signHeight < 0) {\n      layout.y += layout.height;\n      layout.height = -layout.height;\n    }\n\n    return xClipped || yClipped;\n  },\n  polar: function (coordSysClipArea, layout) {\n    var signR = layout.r0 <= layout.r ? 1 : -1;\n\n    if (signR < 0) {\n      var tmp = layout.r;\n      layout.r = layout.r0;\n      layout.r0 = tmp;\n    }\n\n    var r = mathMin(layout.r, coordSysClipArea.r);\n    var r0 = mathMax(layout.r0, coordSysClipArea.r0);\n    layout.r = r;\n    layout.r0 = r0;\n    var clipped = r - r0 < 0;\n\n    if (signR < 0) {\n      var tmp = layout.r;\n      layout.r = layout.r0;\n      layout.r0 = tmp;\n    }\n\n    return clipped;\n  }\n};\nvar elementCreator = {\n  cartesian2d: function (seriesModel, data, newIndex, layout, isHorizontal, animationModel, axisModel, isUpdate, roundCap) {\n    var rect = new Rect({\n      shape: extend({}, layout),\n      z2: 1\n    });\n    rect.__dataIndex = newIndex;\n    rect.name = 'item';\n\n    if (animationModel) {\n      var rectShape = rect.shape;\n      var animateProperty = isHorizontal ? 'height' : 'width';\n      rectShape[animateProperty] = 0;\n    }\n\n    return rect;\n  },\n  polar: function (seriesModel, data, newIndex, layout, isRadial, animationModel, axisModel, isUpdate, roundCap) {\n    var clockwise = layout.startAngle < layout.endAngle;\n    var ShapeClass = !isRadial && roundCap ? Sausage : Sector;\n    var sector = new ShapeClass({\n      shape: defaults({\n        clockwise: clockwise\n      }, layout),\n      z2: 1\n    });\n    sector.name = 'item';\n\n    if (animationModel) {\n      var sectorShape = sector.shape;\n      var animateProperty = isRadial ? 'r' : 'endAngle';\n      var animateTarget = {};\n      sectorShape[animateProperty] = isRadial ? 0 : layout.startAngle;\n      animateTarget[animateProperty] = layout[animateProperty];\n      (isUpdate ? updateProps : initProps)(sector, {\n        shape: animateTarget\n      }, animationModel);\n    }\n\n    return sector;\n  }\n};\n\nfunction shouldRealtimeSort(seriesModel, coordSys) {\n  var realtimeSortOption = seriesModel.get('realtimeSort', true);\n  var baseAxis = coordSys.getBaseAxis();\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (realtimeSortOption) {\n      if (baseAxis.type !== 'category') {\n        warn('`realtimeSort` will not work because this bar series is not based on a category axis.');\n      }\n\n      if (coordSys.type !== 'cartesian2d') {\n        warn('`realtimeSort` will not work because this bar series is not on cartesian2d.');\n      }\n    }\n  }\n\n  if (realtimeSortOption && baseAxis.type === 'category' && coordSys.type === 'cartesian2d') {\n    return {\n      baseAxis: baseAxis,\n      otherAxis: coordSys.getOtherAxis(baseAxis)\n    };\n  }\n}\n\nfunction updateRealtimeAnimation(realtimeSortCfg, seriesAnimationModel, el, layout, newIndex, isHorizontal, isUpdate, isChangeOrder) {\n  var seriesTarget;\n  var axisTarget;\n\n  if (isHorizontal) {\n    axisTarget = {\n      x: layout.x,\n      width: layout.width\n    };\n    seriesTarget = {\n      y: layout.y,\n      height: layout.height\n    };\n  } else {\n    axisTarget = {\n      y: layout.y,\n      height: layout.height\n    };\n    seriesTarget = {\n      x: layout.x,\n      width: layout.width\n    };\n  }\n\n  if (!isChangeOrder) {\n    (isUpdate ? updateProps : initProps)(el, {\n      shape: seriesTarget\n    }, seriesAnimationModel, newIndex, null);\n  }\n\n  var axisAnimationModel = seriesAnimationModel ? realtimeSortCfg.baseAxis.model : null;\n  (isUpdate ? updateProps : initProps)(el, {\n    shape: axisTarget\n  }, axisAnimationModel, newIndex);\n}\n\nvar getLayout = {\n  cartesian2d: function (data, dataIndex, itemModel) {\n    var layout = data.getItemLayout(dataIndex);\n    var fixedLineWidth = itemModel ? getLineWidth(itemModel, layout) : 0;\n    var signX = layout.width > 0 ? 1 : -1;\n    var signY = layout.height > 0 ? 1 : -1;\n    return {\n      x: layout.x + signX * fixedLineWidth / 2,\n      y: layout.y + signY * fixedLineWidth / 2,\n      width: layout.width - signX * fixedLineWidth,\n      height: layout.height - signY * fixedLineWidth\n    };\n  },\n  polar: function (data, dataIndex, itemModel) {\n    var layout = data.getItemLayout(dataIndex);\n    return {\n      cx: layout.cx,\n      cy: layout.cy,\n      r0: layout.r0,\n      r: layout.r,\n      startAngle: layout.startAngle,\n      endAngle: layout.endAngle\n    };\n  }\n};\n\nfunction isZeroOnPolar(layout) {\n  return layout.startAngle != null && layout.endAngle != null && layout.startAngle === layout.endAngle;\n}\n\nfunction updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontal, isPolar) {\n  var style = data.getItemVisual(dataIndex, 'style');\n\n  if (!isPolar) {\n    el.setShape('r', itemModel.get(BAR_BORDER_RADIUS_QUERY) || 0);\n  }\n\n  el.useStyle(style);\n  var cursorStyle = itemModel.getShallow('cursor');\n  cursorStyle && el.attr('cursor', cursorStyle);\n\n  if (!isPolar) {\n    var labelPositionOutside = isHorizontal ? layout.height > 0 ? 'bottom' : 'top' : layout.width > 0 ? 'left' : 'right';\n    var labelStatesModels = getLabelStatesModels(itemModel);\n    setLabelStyle(el, labelStatesModels, {\n      labelFetcher: seriesModel,\n      labelDataIndex: dataIndex,\n      defaultText: getDefaultLabel(seriesModel.getData(), dataIndex),\n      inheritColor: style.fill,\n      defaultOpacity: style.opacity,\n      defaultOutsidePosition: labelPositionOutside\n    });\n    var label = el.getTextContent();\n    setLabelValueAnimation(label, labelStatesModels, seriesModel.getRawValue(dataIndex), function (value) {\n      return getDefaultInterpolatedLabel(data, value);\n    });\n  }\n\n  var emphasisModel = itemModel.getModel(['emphasis']);\n  enableHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n  setStatesStylesFromModel(el, itemModel);\n\n  if (isZeroOnPolar(layout)) {\n    el.style.fill = 'none';\n    el.style.stroke = 'none';\n    each(el.states, function (state) {\n      if (state.style) {\n        state.style.fill = state.style.stroke = 'none';\n      }\n    });\n  }\n}\n\nfunction getLineWidth(itemModel, rawLayout) {\n  var lineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0;\n  var width = isNaN(rawLayout.width) ? Number.MAX_VALUE : Math.abs(rawLayout.width);\n  var height = isNaN(rawLayout.height) ? Number.MAX_VALUE : Math.abs(rawLayout.height);\n  return Math.min(lineWidth, width, height);\n}\n\nvar LagePathShape = function () {\n  function LagePathShape() {}\n\n  return LagePathShape;\n}();\n\nvar LargePath = function (_super) {\n  __extends(LargePath, _super);\n\n  function LargePath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'largeBar';\n    return _this;\n  }\n\n  ;\n\n  LargePath.prototype.getDefaultShape = function () {\n    return new LagePathShape();\n  };\n\n  LargePath.prototype.buildPath = function (ctx, shape) {\n    var points = shape.points;\n    var startPoint = this.__startPoint;\n    var baseDimIdx = this.__baseDimIdx;\n\n    for (var i = 0; i < points.length; i += 2) {\n      startPoint[baseDimIdx] = points[i + baseDimIdx];\n      ctx.moveTo(startPoint[0], startPoint[1]);\n      ctx.lineTo(points[i], points[i + 1]);\n    }\n  };\n\n  return LargePath;\n}(Path);\n\nfunction createLarge(seriesModel, group, incremental) {\n  var data = seriesModel.getData();\n  var startPoint = [];\n  var baseDimIdx = data.getLayout('valueAxisHorizontal') ? 1 : 0;\n  startPoint[1 - baseDimIdx] = data.getLayout('valueAxisStart');\n  var largeDataIndices = data.getLayout('largeDataIndices');\n  var barWidth = data.getLayout('barWidth');\n  var backgroundModel = seriesModel.getModel('backgroundStyle');\n  var drawBackground = seriesModel.get('showBackground', true);\n\n  if (drawBackground) {\n    var points = data.getLayout('largeBackgroundPoints');\n    var backgroundStartPoint = [];\n    backgroundStartPoint[1 - baseDimIdx] = data.getLayout('backgroundStart');\n    var bgEl = new LargePath({\n      shape: {\n        points: points\n      },\n      incremental: !!incremental,\n      silent: true,\n      z2: 0\n    });\n    bgEl.__startPoint = backgroundStartPoint;\n    bgEl.__baseDimIdx = baseDimIdx;\n    bgEl.__largeDataIndices = largeDataIndices;\n    bgEl.__barWidth = barWidth;\n    setLargeBackgroundStyle(bgEl, backgroundModel, data);\n    group.add(bgEl);\n  }\n\n  var el = new LargePath({\n    shape: {\n      points: data.getLayout('largePoints')\n    },\n    incremental: !!incremental\n  });\n  el.__startPoint = startPoint;\n  el.__baseDimIdx = baseDimIdx;\n  el.__largeDataIndices = largeDataIndices;\n  el.__barWidth = barWidth;\n  group.add(el);\n  setLargeStyle(el, seriesModel, data);\n  getECData(el).seriesIndex = seriesModel.seriesIndex;\n\n  if (!seriesModel.get('silent')) {\n    el.on('mousedown', largePathUpdateDataIndex);\n    el.on('mousemove', largePathUpdateDataIndex);\n  }\n}\n\nvar largePathUpdateDataIndex = throttle(function (event) {\n  var largePath = this;\n  var dataIndex = largePathFindDataIndex(largePath, event.offsetX, event.offsetY);\n  getECData(largePath).dataIndex = dataIndex >= 0 ? dataIndex : null;\n}, 30, false);\n\nfunction largePathFindDataIndex(largePath, x, y) {\n  var baseDimIdx = largePath.__baseDimIdx;\n  var valueDimIdx = 1 - baseDimIdx;\n  var points = largePath.shape.points;\n  var largeDataIndices = largePath.__largeDataIndices;\n  var barWidthHalf = Math.abs(largePath.__barWidth / 2);\n  var startValueVal = largePath.__startPoint[valueDimIdx];\n  _eventPos[0] = x;\n  _eventPos[1] = y;\n  var pointerBaseVal = _eventPos[baseDimIdx];\n  var pointerValueVal = _eventPos[1 - baseDimIdx];\n  var baseLowerBound = pointerBaseVal - barWidthHalf;\n  var baseUpperBound = pointerBaseVal + barWidthHalf;\n\n  for (var i = 0, len = points.length / 2; i < len; i++) {\n    var ii = i * 2;\n    var barBaseVal = points[ii + baseDimIdx];\n    var barValueVal = points[ii + valueDimIdx];\n\n    if (barBaseVal >= baseLowerBound && barBaseVal <= baseUpperBound && (startValueVal <= barValueVal ? pointerValueVal >= startValueVal && pointerValueVal <= barValueVal : pointerValueVal >= barValueVal && pointerValueVal <= startValueVal)) {\n      return largeDataIndices[i];\n    }\n  }\n\n  return -1;\n}\n\nfunction setLargeStyle(el, seriesModel, data) {\n  var globalStyle = data.getVisual('style');\n  el.useStyle(extend({}, globalStyle));\n  el.style.fill = null;\n  el.style.stroke = globalStyle.fill;\n  el.style.lineWidth = data.getLayout('barWidth');\n}\n\nfunction setLargeBackgroundStyle(el, backgroundModel, data) {\n  var borderColor = backgroundModel.get('borderColor') || backgroundModel.get('color');\n  var itemStyle = backgroundModel.getItemStyle();\n  el.useStyle(itemStyle);\n  el.style.fill = null;\n  el.style.stroke = borderColor;\n  el.style.lineWidth = data.getLayout('barWidth');\n}\n\nfunction createBackgroundShape(isHorizontalOrRadial, layout, coord) {\n  if (isCoordinateSystemType(coord, 'cartesian2d')) {\n    var rectShape = layout;\n    var coordLayout = coord.getArea();\n    return {\n      x: isHorizontalOrRadial ? rectShape.x : coordLayout.x,\n      y: isHorizontalOrRadial ? coordLayout.y : rectShape.y,\n      width: isHorizontalOrRadial ? rectShape.width : coordLayout.width,\n      height: isHorizontalOrRadial ? coordLayout.height : rectShape.height\n    };\n  } else {\n    var coordLayout = coord.getArea();\n    var sectorShape = layout;\n    return {\n      cx: coordLayout.cx,\n      cy: coordLayout.cy,\n      r0: isHorizontalOrRadial ? coordLayout.r0 : sectorShape.r0,\n      r: isHorizontalOrRadial ? coordLayout.r : sectorShape.r,\n      startAngle: isHorizontalOrRadial ? sectorShape.startAngle : 0,\n      endAngle: isHorizontalOrRadial ? sectorShape.endAngle : Math.PI * 2\n    };\n  }\n}\n\nfunction createBackgroundEl(coord, isHorizontalOrRadial, layout) {\n  var ElementClz = coord.type === 'polar' ? Sector : Rect;\n  return new ElementClz({\n    shape: createBackgroundShape(isHorizontalOrRadial, layout, coord),\n    silent: true,\n    z2: 0\n  });\n}\n\nexport default BarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { layout, largeLayout } from '../../layout/barGrid';\nimport dataSample from '../../processor/dataSample';\nimport BarSeries from './BarSeries';\nimport BarView from './BarView';\nexport function install(registers) {\n  registers.registerChartView(BarView);\n  registers.registerSeriesModel(BarSeries);\n  registers.registerLayout(registers.PRIORITY.VISUAL.LAYOUT, zrUtil.curry(layout, 'bar'));\n  registers.registerLayout(registers.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT, largeLayout);\n  registers.registerVisual({\n    seriesType: 'bar',\n    reset: function (seriesModel) {\n      seriesModel.getData().setVisual('legendSymbol', 'roundRect');\n    }\n  });\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, dataSample('bar'));\n  registers.registerAction({\n    type: 'changeAxisOrder',\n    event: 'changeAxisOrder',\n    update: 'update'\n  }, function (payload, ecModel) {\n    var componentType = payload.componentType || 'series';\n    ecModel.eachComponent({\n      mainType: componentType,\n      query: payload\n    }, function (componentModel) {\n      if (payload.sortInfo) {\n        componentModel.axis.setCategorySortInfo(payload.sortInfo);\n      }\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parsePercent, linearMap } from '../../util/number';\nimport * as layout from '../../util/layout';\nimport * as zrUtil from 'zrender/lib/core/util';\nvar PI2 = Math.PI * 2;\nvar RADIAN = Math.PI / 180;\n\nfunction getViewRect(seriesModel, api) {\n  return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n}\n\nexport default function pieLayout(seriesType, ecModel, api) {\n  ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n    var data = seriesModel.getData();\n    var valueDim = data.mapDimension('value');\n    var viewRect = getViewRect(seriesModel, api);\n    var center = seriesModel.get('center');\n    var radius = seriesModel.get('radius');\n\n    if (!zrUtil.isArray(radius)) {\n      radius = [0, radius];\n    }\n\n    if (!zrUtil.isArray(center)) {\n      center = [center, center];\n    }\n\n    var width = parsePercent(viewRect.width, api.getWidth());\n    var height = parsePercent(viewRect.height, api.getHeight());\n    var size = Math.min(width, height);\n    var cx = parsePercent(center[0], width) + viewRect.x;\n    var cy = parsePercent(center[1], height) + viewRect.y;\n    var r0 = parsePercent(radius[0], size / 2);\n    var r = parsePercent(radius[1], size / 2);\n    var startAngle = -seriesModel.get('startAngle') * RADIAN;\n    var minAngle = seriesModel.get('minAngle') * RADIAN;\n    var validDataCount = 0;\n    data.each(valueDim, function (value) {\n      !isNaN(value) && validDataCount++;\n    });\n    var sum = data.getSum(valueDim);\n    var unitRadian = Math.PI / (sum || validDataCount) * 2;\n    var clockwise = seriesModel.get('clockwise');\n    var roseType = seriesModel.get('roseType');\n    var stillShowZeroSum = seriesModel.get('stillShowZeroSum');\n    var extent = data.getDataExtent(valueDim);\n    extent[0] = 0;\n    var restAngle = PI2;\n    var valueSumLargerThanMinAngle = 0;\n    var currentAngle = startAngle;\n    var dir = clockwise ? 1 : -1;\n    data.setLayout({\n      viewRect: viewRect,\n      r: r\n    });\n    data.each(valueDim, function (value, idx) {\n      var angle;\n\n      if (isNaN(value)) {\n        data.setItemLayout(idx, {\n          angle: NaN,\n          startAngle: NaN,\n          endAngle: NaN,\n          clockwise: clockwise,\n          cx: cx,\n          cy: cy,\n          r0: r0,\n          r: roseType ? NaN : r\n        });\n        return;\n      }\n\n      if (roseType !== 'area') {\n        angle = sum === 0 && stillShowZeroSum ? unitRadian : value * unitRadian;\n      } else {\n        angle = PI2 / validDataCount;\n      }\n\n      if (angle < minAngle) {\n        angle = minAngle;\n        restAngle -= minAngle;\n      } else {\n        valueSumLargerThanMinAngle += value;\n      }\n\n      var endAngle = currentAngle + dir * angle;\n      data.setItemLayout(idx, {\n        angle: angle,\n        startAngle: currentAngle,\n        endAngle: endAngle,\n        clockwise: clockwise,\n        cx: cx,\n        cy: cy,\n        r0: r0,\n        r: roseType ? linearMap(value, extent, [r0, r]) : r\n      });\n      currentAngle = endAngle;\n    });\n\n    if (restAngle < PI2 && validDataCount) {\n      if (restAngle <= 1e-3) {\n        var angle_1 = PI2 / validDataCount;\n        data.each(valueDim, function (value, idx) {\n          if (!isNaN(value)) {\n            var layout_1 = data.getItemLayout(idx);\n            layout_1.angle = angle_1;\n            layout_1.startAngle = startAngle + dir * idx * angle_1;\n            layout_1.endAngle = startAngle + dir * (idx + 1) * angle_1;\n          }\n        });\n      } else {\n        unitRadian = restAngle / valueSumLargerThanMinAngle;\n        currentAngle = startAngle;\n        data.each(valueDim, function (value, idx) {\n          if (!isNaN(value)) {\n            var layout_2 = data.getItemLayout(idx);\n            var angle = layout_2.angle === minAngle ? minAngle : value * unitRadian;\n            layout_2.startAngle = currentAngle;\n            layout_2.endAngle = currentAngle + dir * angle;\n            currentAngle += dir * angle;\n          }\n        });\n      }\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function dataFilter(seriesType) {\n  return {\n    seriesType: seriesType,\n    reset: function (seriesModel, ecModel) {\n      var legendModels = ecModel.findComponents({\n        mainType: 'legend'\n      });\n\n      if (!legendModels || !legendModels.length) {\n        return;\n      }\n\n      var data = seriesModel.getData();\n      data.filterSelf(function (idx) {\n        var name = data.getName(idx);\n\n        for (var i = 0; i < legendModels.length; i++) {\n          if (!legendModels[i].isSelected(name)) {\n            return false;\n          }\n        }\n\n        return true;\n      });\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parsePercent } from '../../util/number';\nimport { Point } from '../../util/graphic';\nimport { each } from 'zrender/lib/core/util';\nimport { limitTurnAngle, limitSurfaceAngle } from '../../label/labelGuideHelper';\nimport { shiftLayoutOnY } from '../../label/labelLayoutHelper';\nvar RADIAN = Math.PI / 180;\n\nfunction adjustSingleSide(list, cx, cy, r, dir, viewWidth, viewHeight, viewLeft, viewTop, farthestX) {\n  if (list.length < 2) {\n    return;\n  }\n\n  ;\n\n  function recalculateXOnSemiToAlignOnEllipseCurve(semi) {\n    var rB = semi.rB;\n    var rB2 = rB * rB;\n\n    for (var i = 0; i < semi.list.length; i++) {\n      var item = semi.list[i];\n      var dy = Math.abs(item.label.y - cy);\n      var rA = r + item.len;\n      var rA2 = rA * rA;\n      var dx = Math.sqrt((1 - Math.abs(dy * dy / rB2)) * rA2);\n      item.label.x = cx + (dx + item.len2) * dir;\n    }\n  }\n\n  function recalculateX(items) {\n    var topSemi = {\n      list: [],\n      maxY: 0\n    };\n    var bottomSemi = {\n      list: [],\n      maxY: 0\n    };\n\n    for (var i = 0; i < items.length; i++) {\n      if (items[i].labelAlignTo !== 'none') {\n        continue;\n      }\n\n      var item = items[i];\n      var semi = item.label.y > cy ? bottomSemi : topSemi;\n      var dy = Math.abs(item.label.y - cy);\n\n      if (dy > semi.maxY) {\n        var dx = item.label.x - cx - item.len2 * dir;\n        var rA = r + item.len;\n        var rB = dx < rA ? Math.sqrt(dy * dy / (1 - dx * dx / rA / rA)) : rA;\n        semi.rB = rB;\n        semi.maxY = dy;\n      }\n\n      semi.list.push(item);\n    }\n\n    recalculateXOnSemiToAlignOnEllipseCurve(topSemi);\n    recalculateXOnSemiToAlignOnEllipseCurve(bottomSemi);\n  }\n\n  var len = list.length;\n\n  for (var i = 0; i < len; i++) {\n    if (list[i].position === 'outer' && list[i].labelAlignTo === 'labelLine') {\n      var dx = list[i].label.x - farthestX;\n      list[i].linePoints[1][0] += dx;\n      list[i].label.x = farthestX;\n    }\n  }\n\n  if (shiftLayoutOnY(list, viewTop, viewTop + viewHeight)) {\n    recalculateX(list);\n  }\n}\n\nfunction avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop) {\n  var leftList = [];\n  var rightList = [];\n  var leftmostX = Number.MAX_VALUE;\n  var rightmostX = -Number.MAX_VALUE;\n\n  for (var i = 0; i < labelLayoutList.length; i++) {\n    var label = labelLayoutList[i].label;\n\n    if (isPositionCenter(labelLayoutList[i])) {\n      continue;\n    }\n\n    if (label.x < cx) {\n      leftmostX = Math.min(leftmostX, label.x);\n      leftList.push(labelLayoutList[i]);\n    } else {\n      rightmostX = Math.max(rightmostX, label.x);\n      rightList.push(labelLayoutList[i]);\n    }\n  }\n\n  adjustSingleSide(rightList, cx, cy, r, 1, viewWidth, viewHeight, viewLeft, viewTop, rightmostX);\n  adjustSingleSide(leftList, cx, cy, r, -1, viewWidth, viewHeight, viewLeft, viewTop, leftmostX);\n\n  for (var i = 0; i < labelLayoutList.length; i++) {\n    var layout = labelLayoutList[i];\n    var label = layout.label;\n\n    if (isPositionCenter(layout)) {\n      continue;\n    }\n\n    var linePoints = layout.linePoints;\n\n    if (linePoints) {\n      var isAlignToEdge = layout.labelAlignTo === 'edge';\n      var realTextWidth = layout.rect.width;\n      var targetTextWidth = void 0;\n\n      if (isAlignToEdge) {\n        if (label.x < cx) {\n          targetTextWidth = linePoints[2][0] - layout.labelDistance - viewLeft - layout.edgeDistance;\n        } else {\n          targetTextWidth = viewLeft + viewWidth - layout.edgeDistance - linePoints[2][0] - layout.labelDistance;\n        }\n      } else {\n        if (label.x < cx) {\n          targetTextWidth = label.x - viewLeft - layout.bleedMargin;\n        } else {\n          targetTextWidth = viewLeft + viewWidth - label.x - layout.bleedMargin;\n        }\n      }\n\n      if (targetTextWidth < layout.rect.width) {\n        layout.label.style.width = targetTextWidth;\n\n        if (layout.labelAlignTo === 'edge') {\n          realTextWidth = targetTextWidth;\n        }\n      }\n\n      var dist = linePoints[1][0] - linePoints[2][0];\n\n      if (isAlignToEdge) {\n        if (label.x < cx) {\n          linePoints[2][0] = viewLeft + layout.edgeDistance + realTextWidth + layout.labelDistance;\n        } else {\n          linePoints[2][0] = viewLeft + viewWidth - layout.edgeDistance - realTextWidth - layout.labelDistance;\n        }\n      } else {\n        if (label.x < cx) {\n          linePoints[2][0] = label.x + layout.labelDistance;\n        } else {\n          linePoints[2][0] = label.x - layout.labelDistance;\n        }\n\n        linePoints[1][0] = linePoints[2][0] + dist;\n      }\n\n      linePoints[1][1] = linePoints[2][1] = label.y;\n    }\n  }\n}\n\nfunction isPositionCenter(sectorShape) {\n  return sectorShape.position === 'center';\n}\n\nexport default function pieLabelLayout(seriesModel) {\n  var data = seriesModel.getData();\n  var labelLayoutList = [];\n  var cx;\n  var cy;\n  var hasLabelRotate = false;\n  var minShowLabelRadian = (seriesModel.get('minShowLabelAngle') || 0) * RADIAN;\n  var viewRect = data.getLayout('viewRect');\n  var r = data.getLayout('r');\n  var viewWidth = viewRect.width;\n  var viewLeft = viewRect.x;\n  var viewTop = viewRect.y;\n  var viewHeight = viewRect.height;\n\n  function setNotShow(el) {\n    el.ignore = true;\n  }\n\n  function isLabelShown(label) {\n    if (!label.ignore) {\n      return true;\n    }\n\n    for (var key in label.states) {\n      if (label.states[key].ignore === false) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  data.each(function (idx) {\n    var sector = data.getItemGraphicEl(idx);\n    var sectorShape = sector.shape;\n    var label = sector.getTextContent();\n    var labelLine = sector.getTextGuideLine();\n    var itemModel = data.getItemModel(idx);\n    var labelModel = itemModel.getModel('label');\n    var labelPosition = labelModel.get('position') || itemModel.get(['emphasis', 'label', 'position']);\n    var labelDistance = labelModel.get('distanceToLabelLine');\n    var labelAlignTo = labelModel.get('alignTo');\n    var edgeDistance = parsePercent(labelModel.get('edgeDistance'), viewWidth);\n    var bleedMargin = labelModel.get('bleedMargin');\n    var labelLineModel = itemModel.getModel('labelLine');\n    var labelLineLen = labelLineModel.get('length');\n    labelLineLen = parsePercent(labelLineLen, viewWidth);\n    var labelLineLen2 = labelLineModel.get('length2');\n    labelLineLen2 = parsePercent(labelLineLen2, viewWidth);\n\n    if (Math.abs(sectorShape.endAngle - sectorShape.startAngle) < minShowLabelRadian) {\n      each(label.states, setNotShow);\n      label.ignore = true;\n      return;\n    }\n\n    if (!isLabelShown(label)) {\n      return;\n    }\n\n    var midAngle = (sectorShape.startAngle + sectorShape.endAngle) / 2;\n    var nx = Math.cos(midAngle);\n    var ny = Math.sin(midAngle);\n    var textX;\n    var textY;\n    var linePoints;\n    var textAlign;\n    cx = sectorShape.cx;\n    cy = sectorShape.cy;\n    var isLabelInside = labelPosition === 'inside' || labelPosition === 'inner';\n\n    if (labelPosition === 'center') {\n      textX = sectorShape.cx;\n      textY = sectorShape.cy;\n      textAlign = 'center';\n    } else {\n      var x1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * nx : sectorShape.r * nx) + cx;\n      var y1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * ny : sectorShape.r * ny) + cy;\n      textX = x1 + nx * 3;\n      textY = y1 + ny * 3;\n\n      if (!isLabelInside) {\n        var x2 = x1 + nx * (labelLineLen + r - sectorShape.r);\n        var y2 = y1 + ny * (labelLineLen + r - sectorShape.r);\n        var x3 = x2 + (nx < 0 ? -1 : 1) * labelLineLen2;\n        var y3 = y2;\n\n        if (labelAlignTo === 'edge') {\n          textX = nx < 0 ? viewLeft + edgeDistance : viewLeft + viewWidth - edgeDistance;\n        } else {\n          textX = x3 + (nx < 0 ? -labelDistance : labelDistance);\n        }\n\n        textY = y3;\n        linePoints = [[x1, y1], [x2, y2], [x3, y3]];\n      }\n\n      textAlign = isLabelInside ? 'center' : labelAlignTo === 'edge' ? nx > 0 ? 'right' : 'left' : nx > 0 ? 'left' : 'right';\n    }\n\n    var labelRotate;\n    var rotate = labelModel.get('rotate');\n\n    if (typeof rotate === 'number') {\n      labelRotate = rotate * (Math.PI / 180);\n    } else {\n      labelRotate = rotate ? nx < 0 ? -midAngle + Math.PI : -midAngle : 0;\n    }\n\n    hasLabelRotate = !!labelRotate;\n    label.x = textX;\n    label.y = textY;\n    label.rotation = labelRotate;\n    label.setStyle({\n      verticalAlign: 'middle'\n    });\n\n    if (!isLabelInside) {\n      var textRect = label.getBoundingRect().clone();\n      textRect.applyTransform(label.getComputedTransform());\n      var margin = (label.style.margin || 0) + 2.1;\n      textRect.y -= margin / 2;\n      textRect.height += margin;\n      labelLayoutList.push({\n        label: label,\n        labelLine: labelLine,\n        position: labelPosition,\n        len: labelLineLen,\n        len2: labelLineLen2,\n        minTurnAngle: labelLineModel.get('minTurnAngle'),\n        maxSurfaceAngle: labelLineModel.get('maxSurfaceAngle'),\n        surfaceNormal: new Point(nx, ny),\n        linePoints: linePoints,\n        textAlign: textAlign,\n        labelDistance: labelDistance,\n        labelAlignTo: labelAlignTo,\n        edgeDistance: edgeDistance,\n        bleedMargin: bleedMargin,\n        rect: textRect\n      });\n    } else {\n      label.setStyle({\n        align: textAlign\n      });\n      var selectState = label.states.select;\n\n      if (selectState) {\n        selectState.x += label.x;\n        selectState.y += label.y;\n      }\n    }\n\n    sector.setTextConfig({\n      inside: isLabelInside\n    });\n  });\n\n  if (!hasLabelRotate && seriesModel.get('avoidLabelOverlap')) {\n    avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop);\n  }\n\n  for (var i = 0; i < labelLayoutList.length; i++) {\n    var layout = labelLayoutList[i];\n    var label = layout.label;\n    var labelLine = layout.labelLine;\n    var notShowLabel = isNaN(label.x) || isNaN(label.y);\n\n    if (label) {\n      label.setStyle({\n        align: layout.textAlign\n      });\n\n      if (notShowLabel) {\n        each(label.states, setNotShow);\n        label.ignore = true;\n      }\n\n      var selectState = label.states.select;\n\n      if (selectState) {\n        selectState.x += label.x;\n        selectState.y += label.y;\n      }\n    }\n\n    if (labelLine) {\n      var linePoints = layout.linePoints;\n\n      if (notShowLabel || !linePoints) {\n        each(labelLine.states, setNotShow);\n        labelLine.ignore = true;\n      } else {\n        limitTurnAngle(linePoints, layout.minTurnAngle);\n        limitSurfaceAngle(linePoints, layout.surfaceNormal, layout.maxSurfaceAngle);\n        labelLine.setShape({\n          points: linePoints\n        });\n        label.__hostTarget.textGuideLineConfig = {\n          anchor: new Point(linePoints[0][0], linePoints[0][1])\n        };\n      }\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isArray } from 'zrender/lib/core/util';\nimport { parsePercent } from 'zrender/lib/contain/text';\nexport function getSectorCornerRadius(model, shape) {\n  var cornerRadius = model.get('borderRadius');\n\n  if (cornerRadius == null) {\n    return null;\n  }\n\n  if (!isArray(cornerRadius)) {\n    cornerRadius = [cornerRadius, cornerRadius];\n  }\n\n  return {\n    innerCornerRadius: parsePercent(cornerRadius[0], shape.r0),\n    cornerRadius: parsePercent(cornerRadius[1], shape.r)\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __assign, __extends } from \"tslib\";\nimport { extend, retrieve3 } from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport ChartView from '../../view/Chart';\nimport labelLayout from './labelLayout';\nimport { setLabelLineStyle, getLabelLineStatesModels } from '../../label/labelGuideHelper';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { getSectorCornerRadius } from '../helper/pieHelper';\n\nvar PiePiece = function (_super) {\n  __extends(PiePiece, _super);\n\n  function PiePiece(data, idx, startAngle) {\n    var _this = _super.call(this) || this;\n\n    _this.z2 = 2;\n    var polyline = new graphic.Polyline();\n    var text = new graphic.Text();\n\n    _this.setTextGuideLine(polyline);\n\n    _this.setTextContent(text);\n\n    _this.updateData(data, idx, startAngle, true);\n\n    return _this;\n  }\n\n  PiePiece.prototype.updateData = function (data, idx, startAngle, firstCreate) {\n    var sector = this;\n    var seriesModel = data.hostModel;\n    var itemModel = data.getItemModel(idx);\n    var emphasisModel = itemModel.getModel('emphasis');\n    var layout = data.getItemLayout(idx);\n    var sectorShape = extend(getSectorCornerRadius(itemModel.getModel('itemStyle'), layout) || {}, layout);\n\n    if (firstCreate) {\n      sector.setShape(sectorShape);\n      var animationType = seriesModel.getShallow('animationType');\n\n      if (animationType === 'scale') {\n        sector.shape.r = layout.r0;\n        graphic.initProps(sector, {\n          shape: {\n            r: layout.r\n          }\n        }, seriesModel, idx);\n      } else {\n        if (startAngle != null) {\n          sector.setShape({\n            startAngle: startAngle,\n            endAngle: startAngle\n          });\n          graphic.initProps(sector, {\n            shape: {\n              startAngle: layout.startAngle,\n              endAngle: layout.endAngle\n            }\n          }, seriesModel, idx);\n        } else {\n          sector.shape.endAngle = layout.startAngle;\n          graphic.updateProps(sector, {\n            shape: {\n              endAngle: layout.endAngle\n            }\n          }, seriesModel, idx);\n        }\n      }\n    } else {\n      graphic.updateProps(sector, {\n        shape: sectorShape\n      }, seriesModel, idx);\n    }\n\n    sector.useStyle(data.getItemVisual(idx, 'style'));\n    setStatesStylesFromModel(sector, itemModel);\n    var midAngle = (layout.startAngle + layout.endAngle) / 2;\n    var offset = seriesModel.get('selectedOffset');\n    var dx = Math.cos(midAngle) * offset;\n    var dy = Math.sin(midAngle) * offset;\n    var cursorStyle = itemModel.getShallow('cursor');\n    cursorStyle && sector.attr('cursor', cursorStyle);\n\n    this._updateLabel(seriesModel, data, idx);\n\n    sector.ensureState('emphasis').shape = __assign({\n      r: layout.r + (emphasisModel.get('scale') ? emphasisModel.get('scaleSize') || 0 : 0)\n    }, getSectorCornerRadius(emphasisModel.getModel('itemStyle'), layout));\n    extend(sector.ensureState('select'), {\n      x: dx,\n      y: dy,\n      shape: getSectorCornerRadius(itemModel.getModel(['select', 'itemStyle']), layout)\n    });\n    extend(sector.ensureState('blur'), {\n      shape: getSectorCornerRadius(itemModel.getModel(['blur', 'itemStyle']), layout)\n    });\n    var labelLine = sector.getTextGuideLine();\n    var labelText = sector.getTextContent();\n    extend(labelLine.ensureState('select'), {\n      x: dx,\n      y: dy\n    });\n    extend(labelText.ensureState('select'), {\n      x: dx,\n      y: dy\n    });\n    enableHoverEmphasis(this, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n  };\n\n  PiePiece.prototype._updateLabel = function (seriesModel, data, idx) {\n    var sector = this;\n    var itemModel = data.getItemModel(idx);\n    var labelLineModel = itemModel.getModel('labelLine');\n    var style = data.getItemVisual(idx, 'style');\n    var visualColor = style && style.fill;\n    var visualOpacity = style && style.opacity;\n    setLabelStyle(sector, getLabelStatesModels(itemModel), {\n      labelFetcher: data.hostModel,\n      labelDataIndex: idx,\n      inheritColor: visualColor,\n      defaultOpacity: visualOpacity,\n      defaultText: seriesModel.getFormattedLabel(idx, 'normal') || data.getName(idx)\n    });\n    var labelText = sector.getTextContent();\n    sector.setTextConfig({\n      position: null,\n      rotation: null\n    });\n    labelText.attr({\n      z2: 10\n    });\n    setLabelLineStyle(this, getLabelLineStatesModels(itemModel), {\n      stroke: visualColor,\n      opacity: retrieve3(labelLineModel.get(['lineStyle', 'opacity']), visualOpacity, 1)\n    });\n  };\n\n  return PiePiece;\n}(graphic.Sector);\n\nvar PieView = function (_super) {\n  __extends(PieView, _super);\n\n  function PieView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.ignoreLabelLineUpdate = true;\n    return _this;\n  }\n\n  PieView.prototype.init = function () {\n    var sectorGroup = new graphic.Group();\n    this._sectorGroup = sectorGroup;\n  };\n\n  PieView.prototype.render = function (seriesModel, ecModel, api, payload) {\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var group = this.group;\n    var startAngle;\n\n    if (!oldData && data.count() > 0) {\n      var shape = data.getItemLayout(0);\n\n      for (var s = 1; isNaN(shape && shape.startAngle) && s < data.count(); ++s) {\n        shape = data.getItemLayout(s);\n      }\n\n      if (shape) {\n        startAngle = shape.startAngle;\n      }\n    }\n\n    data.diff(oldData).add(function (idx) {\n      var piePiece = new PiePiece(data, idx, startAngle);\n      data.setItemGraphicEl(idx, piePiece);\n      group.add(piePiece);\n    }).update(function (newIdx, oldIdx) {\n      var piePiece = oldData.getItemGraphicEl(oldIdx);\n      piePiece.updateData(data, newIdx, startAngle);\n      piePiece.off('click');\n      group.add(piePiece);\n      data.setItemGraphicEl(newIdx, piePiece);\n    }).remove(function (idx) {\n      var piePiece = oldData.getItemGraphicEl(idx);\n      graphic.removeElementWithFadeOut(piePiece, seriesModel, idx);\n    }).execute();\n    labelLayout(seriesModel);\n\n    if (seriesModel.get('animationTypeUpdate') !== 'expansion') {\n      this._data = data;\n    }\n  };\n\n  PieView.prototype.dispose = function () {};\n\n  PieView.prototype.containPoint = function (point, seriesModel) {\n    var data = seriesModel.getData();\n    var itemLayout = data.getItemLayout(0);\n\n    if (itemLayout) {\n      var dx = point[0] - itemLayout.cx;\n      var dy = point[1] - itemLayout.cy;\n      var radius = Math.sqrt(dx * dx + dy * dy);\n      return radius <= itemLayout.r && radius >= itemLayout.r0;\n    }\n  };\n\n  PieView.type = 'pie';\n  return PieView;\n}(ChartView);\n\nexport default PieView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport createDimensions from '../../data/helper/createDimensions';\nimport List from '../../data/List';\nimport { extend, isArray } from 'zrender/lib/core/util';\nexport default function createListSimply(seriesModel, opt, nameList) {\n  opt = isArray(opt) && {\n    coordDimensions: opt\n  } || extend({}, opt);\n  var source = seriesModel.getSource();\n  var dimensionsInfo = createDimensions(source, opt);\n  var list = new List(dimensionsInfo, seriesModel);\n  list.initData(source, nameList);\n  return list;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar LegendVisualProvider = function () {\n  function LegendVisualProvider(getDataWithEncodedVisual, getRawData) {\n    this._getDataWithEncodedVisual = getDataWithEncodedVisual;\n    this._getRawData = getRawData;\n  }\n\n  LegendVisualProvider.prototype.getAllNames = function () {\n    var rawData = this._getRawData();\n\n    return rawData.mapArray(rawData.getName);\n  };\n\n  LegendVisualProvider.prototype.containName = function (name) {\n    var rawData = this._getRawData();\n\n    return rawData.indexOfName(name) >= 0;\n  };\n\n  LegendVisualProvider.prototype.indexOfName = function (name) {\n    var dataWithEncodedVisual = this._getDataWithEncodedVisual();\n\n    return dataWithEncodedVisual.indexOfName(name);\n  };\n\n  LegendVisualProvider.prototype.getItemVisual = function (dataIndex, key) {\n    var dataWithEncodedVisual = this._getDataWithEncodedVisual();\n\n    return dataWithEncodedVisual.getItemVisual(dataIndex, key);\n  };\n\n  return LegendVisualProvider;\n}();\n\nexport default LegendVisualProvider;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListSimply from '../helper/createListSimply';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nimport { getPercentWithPrecision } from '../../util/number';\nimport { makeSeriesEncodeForNameBased } from '../../data/helper/sourceHelper';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider';\nimport SeriesModel from '../../model/Series';\n\nvar PieSeriesModel = function (_super) {\n  __extends(PieSeriesModel, _super);\n\n  function PieSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.useColorPaletteOnData = true;\n    return _this;\n  }\n\n  PieSeriesModel.prototype.init = function (option) {\n    _super.prototype.init.apply(this, arguments);\n\n    this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));\n\n    this._defaultLabelLine(option);\n  };\n\n  PieSeriesModel.prototype.mergeOption = function () {\n    _super.prototype.mergeOption.apply(this, arguments);\n  };\n\n  PieSeriesModel.prototype.getInitialData = function () {\n    return createListSimply(this, {\n      coordDimensions: ['value'],\n      encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)\n    });\n  };\n\n  PieSeriesModel.prototype.getDataParams = function (dataIndex) {\n    var data = this.getData();\n\n    var params = _super.prototype.getDataParams.call(this, dataIndex);\n\n    var valueList = [];\n    data.each(data.mapDimension('value'), function (value) {\n      valueList.push(value);\n    });\n    params.percent = getPercentWithPrecision(valueList, dataIndex, data.hostModel.get('percentPrecision'));\n    params.$vars.push('percent');\n    return params;\n  };\n\n  PieSeriesModel.prototype._defaultLabelLine = function (option) {\n    modelUtil.defaultEmphasis(option, 'labelLine', ['show']);\n    var labelLineNormalOpt = option.labelLine;\n    var labelLineEmphasisOpt = option.emphasis.labelLine;\n    labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show;\n    labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show;\n  };\n\n  PieSeriesModel.type = 'series.pie';\n  PieSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    center: ['50%', '50%'],\n    radius: [0, '75%'],\n    clockwise: true,\n    startAngle: 90,\n    minAngle: 0,\n    minShowLabelAngle: 0,\n    selectedOffset: 10,\n    percentPrecision: 2,\n    stillShowZeroSum: true,\n    left: 0,\n    top: 0,\n    right: 0,\n    bottom: 0,\n    width: null,\n    height: null,\n    label: {\n      rotate: 0,\n      show: true,\n      overflow: 'truncate',\n      position: 'outer',\n      alignTo: 'none',\n      edgeDistance: '25%',\n      bleedMargin: 10,\n      distanceToLabelLine: 5\n    },\n    labelLine: {\n      show: true,\n      length: 15,\n      length2: 15,\n      smooth: false,\n      minTurnAngle: 90,\n      maxSurfaceAngle: 90,\n      lineStyle: {\n        width: 1,\n        type: 'solid'\n      }\n    },\n    itemStyle: {\n      borderWidth: 1\n    },\n    labelLayout: {\n      hideOverlap: true\n    },\n    emphasis: {\n      scale: true,\n      scaleSize: 5\n    },\n    avoidLabelOverlap: true,\n    animationType: 'expansion',\n    animationDuration: 1000,\n    animationTypeUpdate: 'transition',\n    animationEasingUpdate: 'cubicInOut',\n    animationDurationUpdate: 500,\n    animationEasing: 'cubicInOut'\n  };\n  return PieSeriesModel;\n}(SeriesModel);\n\nexport default PieSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createLegacyDataSelectAction } from '../../legacy/dataSelectAction';\nimport pieLayout from '../pie/pieLayout';\nimport dataFilter from '../../processor/dataFilter';\nimport { curry } from 'zrender/lib/core/util';\nimport PieView from './PieView';\nimport PieSeriesModel from './PieSeries';\nexport function install(registers) {\n  registers.registerChartView(PieView);\n  registers.registerSeriesModel(PieSeriesModel);\n  createLegacyDataSelectAction('pie', registers.registerAction);\n  registers.registerLayout(curry(pieLayout, 'pie'));\n  registers.registerProcessor(dataFilter('pie'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListFromArray from '../helper/createListFromArray';\nimport SeriesModel from '../../model/Series';\n\nvar ScatterSeriesModel = function (_super) {\n  __extends(ScatterSeriesModel, _super);\n\n  function ScatterSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ScatterSeriesModel.type;\n    _this.hasSymbolVisual = true;\n    return _this;\n  }\n\n  ScatterSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: true\n    });\n  };\n\n  ScatterSeriesModel.prototype.getProgressive = function () {\n    var progressive = this.option.progressive;\n\n    if (progressive == null) {\n      return this.option.large ? 5e3 : this.get('progressive');\n    }\n\n    return progressive;\n  };\n\n  ScatterSeriesModel.prototype.getProgressiveThreshold = function () {\n    var progressiveThreshold = this.option.progressiveThreshold;\n\n    if (progressiveThreshold == null) {\n      return this.option.large ? 1e4 : this.get('progressiveThreshold');\n    }\n\n    return progressiveThreshold;\n  };\n\n  ScatterSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n    return selectors.point(data.getItemLayout(dataIndex));\n  };\n\n  ScatterSeriesModel.type = 'series.scatter';\n  ScatterSeriesModel.dependencies = ['grid', 'polar', 'geo', 'singleAxis', 'calendar'];\n  ScatterSeriesModel.defaultOption = {\n    coordinateSystem: 'cartesian2d',\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    symbolSize: 10,\n    large: false,\n    largeThreshold: 2000,\n    itemStyle: {\n      opacity: 0.8\n    },\n    emphasis: {\n      scale: true\n    },\n    clip: true,\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    }\n  };\n  return ScatterSeriesModel;\n}(SeriesModel);\n\nexport default ScatterSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { createSymbol } from '../../util/symbol';\nimport IncrementalDisplayable from 'zrender/lib/graphic/IncrementalDisplayable';\nimport { getECData } from '../../util/innerStore';\nvar BOOST_SIZE_THRESHOLD = 4;\n\nvar LargeSymbolPathShape = function () {\n  function LargeSymbolPathShape() {}\n\n  return LargeSymbolPathShape;\n}();\n\nvar LargeSymbolPath = function (_super) {\n  __extends(LargeSymbolPath, _super);\n\n  function LargeSymbolPath(opts) {\n    return _super.call(this, opts) || this;\n  }\n\n  LargeSymbolPath.prototype.getDefaultShape = function () {\n    return new LargeSymbolPathShape();\n  };\n\n  LargeSymbolPath.prototype.buildPath = function (path, shape) {\n    var points = shape.points;\n    var size = shape.size;\n    var symbolProxy = this.symbolProxy;\n    var symbolProxyShape = symbolProxy.shape;\n    var ctx = path.getContext ? path.getContext() : path;\n    var canBoost = ctx && size[0] < BOOST_SIZE_THRESHOLD;\n\n    if (canBoost) {\n      this._ctx = ctx;\n      return;\n    }\n\n    this._ctx = null;\n\n    for (var i = 0; i < points.length;) {\n      var x = points[i++];\n      var y = points[i++];\n\n      if (isNaN(x) || isNaN(y)) {\n        continue;\n      }\n\n      if (this.softClipShape && !this.softClipShape.contain(x, y)) {\n        continue;\n      }\n\n      symbolProxyShape.x = x - size[0] / 2;\n      symbolProxyShape.y = y - size[1] / 2;\n      symbolProxyShape.width = size[0];\n      symbolProxyShape.height = size[1];\n      symbolProxy.buildPath(path, symbolProxyShape, true);\n    }\n  };\n\n  LargeSymbolPath.prototype.afterBrush = function () {\n    var shape = this.shape;\n    var points = shape.points;\n    var size = shape.size;\n    var ctx = this._ctx;\n\n    if (!ctx) {\n      return;\n    }\n\n    for (var i = 0; i < points.length;) {\n      var x = points[i++];\n      var y = points[i++];\n\n      if (isNaN(x) || isNaN(y)) {\n        continue;\n      }\n\n      if (this.softClipShape && !this.softClipShape.contain(x, y)) {\n        continue;\n      }\n\n      ctx.fillRect(x - size[0] / 2, y - size[1] / 2, size[0], size[1]);\n    }\n  };\n\n  LargeSymbolPath.prototype.findDataIndex = function (x, y) {\n    var shape = this.shape;\n    var points = shape.points;\n    var size = shape.size;\n    var w = Math.max(size[0], 4);\n    var h = Math.max(size[1], 4);\n\n    for (var idx = points.length / 2 - 1; idx >= 0; idx--) {\n      var i = idx * 2;\n      var x0 = points[i] - w / 2;\n      var y0 = points[i + 1] - h / 2;\n\n      if (x >= x0 && y >= y0 && x <= x0 + w && y <= y0 + h) {\n        return idx;\n      }\n    }\n\n    return -1;\n  };\n\n  return LargeSymbolPath;\n}(graphic.Path);\n\nvar LargeSymbolDraw = function () {\n  function LargeSymbolDraw() {\n    this.group = new graphic.Group();\n  }\n\n  LargeSymbolDraw.prototype.isPersistent = function () {\n    return !this._incremental;\n  };\n\n  ;\n\n  LargeSymbolDraw.prototype.updateData = function (data, opt) {\n    this.group.removeAll();\n    var symbolEl = new LargeSymbolPath({\n      rectHover: true,\n      cursor: 'default'\n    });\n    symbolEl.setShape({\n      points: data.getLayout('points')\n    });\n\n    this._setCommon(symbolEl, data, false, opt);\n\n    this.group.add(symbolEl);\n    this._incremental = null;\n  };\n\n  LargeSymbolDraw.prototype.updateLayout = function (data) {\n    if (this._incremental) {\n      return;\n    }\n\n    var points = data.getLayout('points');\n    this.group.eachChild(function (child) {\n      if (child.startIndex != null) {\n        var len = (child.endIndex - child.startIndex) * 2;\n        var byteOffset = child.startIndex * 4 * 2;\n        points = new Float32Array(points.buffer, byteOffset, len);\n      }\n\n      child.setShape('points', points);\n    });\n  };\n\n  LargeSymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\n    this.group.removeAll();\n\n    this._clearIncremental();\n\n    if (data.count() > 2e6) {\n      if (!this._incremental) {\n        this._incremental = new IncrementalDisplayable({\n          silent: true\n        });\n      }\n\n      this.group.add(this._incremental);\n    } else {\n      this._incremental = null;\n    }\n  };\n\n  LargeSymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\n    var symbolEl;\n\n    if (this._incremental) {\n      symbolEl = new LargeSymbolPath();\n\n      this._incremental.addDisplayable(symbolEl, true);\n    } else {\n      symbolEl = new LargeSymbolPath({\n        rectHover: true,\n        cursor: 'default',\n        startIndex: taskParams.start,\n        endIndex: taskParams.end\n      });\n      symbolEl.incremental = true;\n      this.group.add(symbolEl);\n    }\n\n    symbolEl.setShape({\n      points: data.getLayout('points')\n    });\n\n    this._setCommon(symbolEl, data, !!this._incremental, opt);\n  };\n\n  LargeSymbolDraw.prototype._setCommon = function (symbolEl, data, isIncremental, opt) {\n    var hostModel = data.hostModel;\n    opt = opt || {};\n    var size = data.getVisual('symbolSize');\n    symbolEl.setShape('size', size instanceof Array ? size : [size, size]);\n    symbolEl.softClipShape = opt.clipShape || null;\n    symbolEl.symbolProxy = createSymbol(data.getVisual('symbol'), 0, 0, 0, 0);\n    symbolEl.setColor = symbolEl.symbolProxy.setColor;\n    var extrudeShadow = symbolEl.shape.size[0] < BOOST_SIZE_THRESHOLD;\n    symbolEl.useStyle(hostModel.getModel('itemStyle').getItemStyle(extrudeShadow ? ['color', 'shadowBlur', 'shadowColor'] : ['color']));\n    var globalStyle = data.getVisual('style');\n    var visualColor = globalStyle && globalStyle.fill;\n\n    if (visualColor) {\n      symbolEl.setColor(visualColor);\n    }\n\n    if (!isIncremental) {\n      var ecData_1 = getECData(symbolEl);\n      ecData_1.seriesIndex = hostModel.seriesIndex;\n      symbolEl.on('mousemove', function (e) {\n        ecData_1.dataIndex = null;\n        var dataIndex = symbolEl.findDataIndex(e.offsetX, e.offsetY);\n\n        if (dataIndex >= 0) {\n          ecData_1.dataIndex = dataIndex + (symbolEl.startIndex || 0);\n        }\n      });\n    }\n  };\n\n  LargeSymbolDraw.prototype.remove = function () {\n    this._clearIncremental();\n\n    this._incremental = null;\n    this.group.removeAll();\n  };\n\n  LargeSymbolDraw.prototype._clearIncremental = function () {\n    var incremental = this._incremental;\n\n    if (incremental) {\n      incremental.clearDisplaybles();\n    }\n  };\n\n  return LargeSymbolDraw;\n}();\n\nexport default LargeSymbolDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SymbolDraw from '../helper/SymbolDraw';\nimport LargeSymbolDraw from '../helper/LargeSymbolDraw';\nimport pointsLayout from '../../layout/points';\nimport ChartView from '../../view/Chart';\n\nvar ScatterView = function (_super) {\n  __extends(ScatterView, _super);\n\n  function ScatterView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ScatterView.type;\n    return _this;\n  }\n\n  ScatterView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n\n    var symbolDraw = this._updateSymbolDraw(data, seriesModel);\n\n    symbolDraw.updateData(data, {\n      clipShape: this._getClipShape(seriesModel)\n    });\n    this._finished = true;\n  };\n\n  ScatterView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n\n    var symbolDraw = this._updateSymbolDraw(data, seriesModel);\n\n    symbolDraw.incrementalPrepareUpdate(data);\n    this._finished = false;\n  };\n\n  ScatterView.prototype.incrementalRender = function (taskParams, seriesModel, ecModel) {\n    this._symbolDraw.incrementalUpdate(taskParams, seriesModel.getData(), {\n      clipShape: this._getClipShape(seriesModel)\n    });\n\n    this._finished = taskParams.end === seriesModel.getData().count();\n  };\n\n  ScatterView.prototype.updateTransform = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    this.group.dirty();\n\n    if (!this._finished || data.count() > 1e4 || !this._symbolDraw.isPersistent()) {\n      return {\n        update: true\n      };\n    } else {\n      var res = pointsLayout('').reset(seriesModel, ecModel, api);\n\n      if (res.progress) {\n        res.progress({\n          start: 0,\n          end: data.count(),\n          count: data.count()\n        }, data);\n      }\n\n      this._symbolDraw.updateLayout(data);\n    }\n  };\n\n  ScatterView.prototype._getClipShape = function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n    var clipArea = coordSys && coordSys.getArea && coordSys.getArea();\n    return seriesModel.get('clip', true) ? clipArea : null;\n  };\n\n  ScatterView.prototype._updateSymbolDraw = function (data, seriesModel) {\n    var symbolDraw = this._symbolDraw;\n    var pipelineContext = seriesModel.pipelineContext;\n    var isLargeDraw = pipelineContext.large;\n\n    if (!symbolDraw || isLargeDraw !== this._isLargeDraw) {\n      symbolDraw && symbolDraw.remove();\n      symbolDraw = this._symbolDraw = isLargeDraw ? new LargeSymbolDraw() : new SymbolDraw();\n      this._isLargeDraw = isLargeDraw;\n      this.group.removeAll();\n    }\n\n    this.group.add(symbolDraw.group);\n    return symbolDraw;\n  };\n\n  ScatterView.prototype.remove = function (ecModel, api) {\n    this._symbolDraw && this._symbolDraw.remove(true);\n    this._symbolDraw = null;\n  };\n\n  ScatterView.prototype.dispose = function () {};\n\n  ScatterView.type = 'scatter';\n  return ScatterView;\n}(ChartView);\n\nexport default ScatterView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\n\nvar GridModel = function (_super) {\n  __extends(GridModel, _super);\n\n  function GridModel() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  GridModel.type = 'grid';\n  GridModel.dependencies = ['xAxis', 'yAxis'];\n  GridModel.layoutMode = 'box';\n  GridModel.defaultOption = {\n    show: false,\n    zlevel: 0,\n    z: 0,\n    left: '10%',\n    top: 60,\n    right: '10%',\n    bottom: 70,\n    containLabel: false,\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderWidth: 1,\n    borderColor: '#ccc'\n  };\n  return GridModel;\n}(ComponentModel);\n\nexport default GridModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin';\nimport { SINGLE_REFERRING } from '../../util/model';\n\nvar CartesianAxisModel = function (_super) {\n  __extends(CartesianAxisModel, _super);\n\n  function CartesianAxisModel() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  CartesianAxisModel.prototype.getCoordSysModel = function () {\n    return this.getReferringComponents('grid', SINGLE_REFERRING).models[0];\n  };\n\n  CartesianAxisModel.type = 'cartesian2dAxis';\n  return CartesianAxisModel;\n}(ComponentModel);\n\nexport { CartesianAxisModel };\nzrUtil.mixin(CartesianAxisModel, AxisModelCommonMixin);\nexport default CartesianAxisModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar defaultOption = {\n  show: true,\n  zlevel: 0,\n  z: 0,\n  inverse: false,\n  name: '',\n  nameLocation: 'end',\n  nameRotate: null,\n  nameTruncate: {\n    maxWidth: null,\n    ellipsis: '...',\n    placeholder: '.'\n  },\n  nameTextStyle: {},\n  nameGap: 15,\n  silent: false,\n  triggerEvent: false,\n  tooltip: {\n    show: false\n  },\n  axisPointer: {},\n  axisLine: {\n    show: true,\n    onZero: true,\n    onZeroAxisIndex: null,\n    lineStyle: {\n      color: '#6E7079',\n      width: 1,\n      type: 'solid'\n    },\n    symbol: ['none', 'none'],\n    symbolSize: [10, 15]\n  },\n  axisTick: {\n    show: true,\n    inside: false,\n    length: 5,\n    lineStyle: {\n      width: 1\n    }\n  },\n  axisLabel: {\n    show: true,\n    inside: false,\n    rotate: 0,\n    showMinLabel: null,\n    showMaxLabel: null,\n    margin: 8,\n    fontSize: 12\n  },\n  splitLine: {\n    show: true,\n    lineStyle: {\n      color: ['#E0E6F1'],\n      width: 1,\n      type: 'solid'\n    }\n  },\n  splitArea: {\n    show: false,\n    areaStyle: {\n      color: ['rgba(250,250,250,0.2)', 'rgba(210,219,238,0.2)']\n    }\n  }\n};\nvar categoryAxis = zrUtil.merge({\n  boundaryGap: true,\n  deduplication: null,\n  splitLine: {\n    show: false\n  },\n  axisTick: {\n    alignWithLabel: false,\n    interval: 'auto'\n  },\n  axisLabel: {\n    interval: 'auto'\n  }\n}, defaultOption);\nvar valueAxis = zrUtil.merge({\n  boundaryGap: [0, 0],\n  axisLine: {\n    show: 'auto'\n  },\n  axisTick: {\n    show: 'auto'\n  },\n  splitNumber: 5,\n  minorTick: {\n    show: false,\n    splitNumber: 5,\n    length: 3,\n    lineStyle: {}\n  },\n  minorSplitLine: {\n    show: false,\n    lineStyle: {\n      color: '#F4F7FD',\n      width: 1\n    }\n  }\n}, defaultOption);\nvar timeAxis = zrUtil.merge({\n  scale: true,\n  splitNumber: 6,\n  axisLabel: {\n    showMinLabel: false,\n    showMaxLabel: false,\n    rich: {\n      primary: {\n        fontWeight: 'bold'\n      }\n    }\n  },\n  splitLine: {\n    show: false\n  }\n}, valueAxis);\nvar logAxis = zrUtil.defaults({\n  scale: true,\n  logBase: 10\n}, valueAxis);\nexport default {\n  category: categoryAxis,\n  value: valueAxis,\n  time: timeAxis,\n  log: logAxis\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport var AXIS_TYPES = {\n  value: 1,\n  category: 1,\n  time: 1,\n  log: 1\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport axisDefault from './axisDefault';\nimport { getLayoutParams, mergeLayoutParam, fetchLayoutMode } from '../util/layout';\nimport OrdinalMeta from '../data/OrdinalMeta';\nimport { AXIS_TYPES } from './axisCommonTypes';\nimport { each, merge } from 'zrender/lib/core/util';\nexport default function axisModelCreator(registers, axisName, BaseAxisModelClass, extraDefaultOption) {\n  each(AXIS_TYPES, function (v, axisType) {\n    var defaultOption = merge(merge({}, axisDefault[axisType], true), extraDefaultOption, true);\n\n    var AxisModel = function (_super) {\n      __extends(AxisModel, _super);\n\n      function AxisModel() {\n        var args = [];\n\n        for (var _i = 0; _i < arguments.length; _i++) {\n          args[_i] = arguments[_i];\n        }\n\n        var _this = _super.apply(this, args) || this;\n\n        _this.type = axisName + 'Axis.' + axisType;\n        return _this;\n      }\n\n      AxisModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n        var layoutMode = fetchLayoutMode(this);\n        var inputPositionParams = layoutMode ? getLayoutParams(option) : {};\n        var themeModel = ecModel.getTheme();\n        merge(option, themeModel.get(axisType + 'Axis'));\n        merge(option, this.getDefaultOption());\n        option.type = getAxisType(option);\n\n        if (layoutMode) {\n          mergeLayoutParam(option, inputPositionParams, layoutMode);\n        }\n      };\n\n      AxisModel.prototype.optionUpdated = function () {\n        var thisOption = this.option;\n\n        if (thisOption.type === 'category') {\n          this.__ordinalMeta = OrdinalMeta.createByAxisModel(this);\n        }\n      };\n\n      AxisModel.prototype.getCategories = function (rawData) {\n        var option = this.option;\n\n        if (option.type === 'category') {\n          if (rawData) {\n            return option.data;\n          }\n\n          return this.__ordinalMeta.categories;\n        }\n      };\n\n      AxisModel.prototype.getOrdinalMeta = function () {\n        return this.__ordinalMeta;\n      };\n\n      AxisModel.type = axisName + 'Axis.' + axisType;\n      AxisModel.defaultOption = defaultOption;\n      return AxisModel;\n    }(BaseAxisModelClass);\n\n    registers.registerComponentModel(AxisModel);\n  });\n  registers.registerSubTypeDefaulter(axisName + 'Axis', getAxisType);\n}\n\nfunction getAxisType(option) {\n  return option.type || (option.data ? 'category' : 'value');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nvar Cartesian = function () {\n  function Cartesian(name) {\n    this.type = 'cartesian';\n    this._dimList = [];\n    this._axes = {};\n    this.name = name || '';\n  }\n\n  Cartesian.prototype.getAxis = function (dim) {\n    return this._axes[dim];\n  };\n\n  Cartesian.prototype.getAxes = function () {\n    return zrUtil.map(this._dimList, function (dim) {\n      return this._axes[dim];\n    }, this);\n  };\n\n  Cartesian.prototype.getAxesByScale = function (scaleType) {\n    scaleType = scaleType.toLowerCase();\n    return zrUtil.filter(this.getAxes(), function (axis) {\n      return axis.scale.type === scaleType;\n    });\n  };\n\n  Cartesian.prototype.addAxis = function (axis) {\n    var dim = axis.dim;\n    this._axes[dim] = axis;\n\n    this._dimList.push(dim);\n  };\n\n  return Cartesian;\n}();\n\n;\nexport default Cartesian;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport Cartesian from './Cartesian';\nimport { invert } from 'zrender/lib/core/matrix';\nimport { applyTransform } from 'zrender/lib/core/vector';\nexport var cartesian2DDimensions = ['x', 'y'];\n\nfunction canCalculateAffineTransform(scale) {\n  return scale.type === 'interval' || scale.type === 'time';\n}\n\nvar Cartesian2D = function (_super) {\n  __extends(Cartesian2D, _super);\n\n  function Cartesian2D() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'cartesian2d';\n    _this.dimensions = cartesian2DDimensions;\n    return _this;\n  }\n\n  Cartesian2D.prototype.calcAffineTransform = function () {\n    this._transform = this._invTransform = null;\n    var xAxisScale = this.getAxis('x').scale;\n    var yAxisScale = this.getAxis('y').scale;\n\n    if (!canCalculateAffineTransform(xAxisScale) || !canCalculateAffineTransform(yAxisScale)) {\n      return;\n    }\n\n    var xScaleExtent = xAxisScale.getExtent();\n    var yScaleExtent = yAxisScale.getExtent();\n    var start = this.dataToPoint([xScaleExtent[0], yScaleExtent[0]]);\n    var end = this.dataToPoint([xScaleExtent[1], yScaleExtent[1]]);\n    var xScaleSpan = xScaleExtent[1] - xScaleExtent[0];\n    var yScaleSpan = yScaleExtent[1] - yScaleExtent[0];\n\n    if (!xScaleSpan || !yScaleSpan) {\n      return;\n    }\n\n    var scaleX = (end[0] - start[0]) / xScaleSpan;\n    var scaleY = (end[1] - start[1]) / yScaleSpan;\n    var translateX = start[0] - xScaleExtent[0] * scaleX;\n    var translateY = start[1] - yScaleExtent[0] * scaleY;\n    var m = this._transform = [scaleX, 0, 0, scaleY, translateX, translateY];\n    this._invTransform = invert([], m);\n  };\n\n  Cartesian2D.prototype.getBaseAxis = function () {\n    return this.getAxesByScale('ordinal')[0] || this.getAxesByScale('time')[0] || this.getAxis('x');\n  };\n\n  Cartesian2D.prototype.containPoint = function (point) {\n    var axisX = this.getAxis('x');\n    var axisY = this.getAxis('y');\n    return axisX.contain(axisX.toLocalCoord(point[0])) && axisY.contain(axisY.toLocalCoord(point[1]));\n  };\n\n  Cartesian2D.prototype.containData = function (data) {\n    return this.getAxis('x').containData(data[0]) && this.getAxis('y').containData(data[1]);\n  };\n\n  Cartesian2D.prototype.dataToPoint = function (data, reserved, out) {\n    out = out || [];\n    var xVal = data[0];\n    var yVal = data[1];\n\n    if (this._transform && xVal != null && isFinite(xVal) && yVal != null && isFinite(yVal)) {\n      return applyTransform(out, data, this._transform);\n    }\n\n    var xAxis = this.getAxis('x');\n    var yAxis = this.getAxis('y');\n    out[0] = xAxis.toGlobalCoord(xAxis.dataToCoord(xVal));\n    out[1] = yAxis.toGlobalCoord(yAxis.dataToCoord(yVal));\n    return out;\n  };\n\n  Cartesian2D.prototype.clampData = function (data, out) {\n    var xScale = this.getAxis('x').scale;\n    var yScale = this.getAxis('y').scale;\n    var xAxisExtent = xScale.getExtent();\n    var yAxisExtent = yScale.getExtent();\n    var x = xScale.parse(data[0]);\n    var y = yScale.parse(data[1]);\n    out = out || [];\n    out[0] = Math.min(Math.max(Math.min(xAxisExtent[0], xAxisExtent[1]), x), Math.max(xAxisExtent[0], xAxisExtent[1]));\n    out[1] = Math.min(Math.max(Math.min(yAxisExtent[0], yAxisExtent[1]), y), Math.max(yAxisExtent[0], yAxisExtent[1]));\n    return out;\n  };\n\n  Cartesian2D.prototype.pointToData = function (point, out) {\n    out = out || [];\n\n    if (this._invTransform) {\n      return applyTransform(out, point, this._invTransform);\n    }\n\n    var xAxis = this.getAxis('x');\n    var yAxis = this.getAxis('y');\n    out[0] = xAxis.coordToData(xAxis.toLocalCoord(point[0]));\n    out[1] = yAxis.coordToData(yAxis.toLocalCoord(point[1]));\n    return out;\n  };\n\n  Cartesian2D.prototype.getOtherAxis = function (axis) {\n    return this.getAxis(axis.dim === 'x' ? 'y' : 'x');\n  };\n\n  Cartesian2D.prototype.getArea = function () {\n    var xExtent = this.getAxis('x').getGlobalExtent();\n    var yExtent = this.getAxis('y').getGlobalExtent();\n    var x = Math.min(xExtent[0], xExtent[1]);\n    var y = Math.min(yExtent[0], yExtent[1]);\n    var width = Math.max(xExtent[0], xExtent[1]) - x;\n    var height = Math.max(yExtent[0], yExtent[1]) - y;\n    return new BoundingRect(x, y, width, height);\n  };\n\n  return Cartesian2D;\n}(Cartesian);\n\n;\nexport default Cartesian2D;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis';\n\nvar Axis2D = function (_super) {\n  __extends(Axis2D, _super);\n\n  function Axis2D(dim, scale, coordExtent, axisType, position) {\n    var _this = _super.call(this, dim, scale, coordExtent) || this;\n\n    _this.index = 0;\n    _this.type = axisType || 'value';\n    _this.position = position || 'bottom';\n    return _this;\n  }\n\n  Axis2D.prototype.isHorizontal = function () {\n    var position = this.position;\n    return position === 'top' || position === 'bottom';\n  };\n\n  Axis2D.prototype.getGlobalExtent = function (asc) {\n    var ret = this.getExtent();\n    ret[0] = this.toGlobalCoord(ret[0]);\n    ret[1] = this.toGlobalCoord(ret[1]);\n    asc && ret[0] > ret[1] && ret.reverse();\n    return ret;\n  };\n\n  Axis2D.prototype.pointToData = function (point, clamp) {\n    return this.coordToData(this.toLocalCoord(point[this.dim === 'x' ? 0 : 1]), clamp);\n  };\n\n  Axis2D.prototype.setCategorySortInfo = function (info) {\n    if (this.type !== 'category') {\n      return false;\n    }\n\n    this.model.option.categorySortInfo = info;\n    this.scale.setSortInfo(info);\n  };\n\n  return Axis2D;\n}(Axis);\n\nexport default Axis2D;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { SINGLE_REFERRING } from '../../util/model';\nexport function layout(gridModel, axisModel, opt) {\n  opt = opt || {};\n  var grid = gridModel.coordinateSystem;\n  var axis = axisModel.axis;\n  var layout = {};\n  var otherAxisOnZeroOf = axis.getAxesOnZeroOf()[0];\n  var rawAxisPosition = axis.position;\n  var axisPosition = otherAxisOnZeroOf ? 'onZero' : rawAxisPosition;\n  var axisDim = axis.dim;\n  var rect = grid.getRect();\n  var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height];\n  var idx = {\n    left: 0,\n    right: 1,\n    top: 0,\n    bottom: 1,\n    onZero: 2\n  };\n  var axisOffset = axisModel.get('offset') || 0;\n  var posBound = axisDim === 'x' ? [rectBound[2] - axisOffset, rectBound[3] + axisOffset] : [rectBound[0] - axisOffset, rectBound[1] + axisOffset];\n\n  if (otherAxisOnZeroOf) {\n    var onZeroCoord = otherAxisOnZeroOf.toGlobalCoord(otherAxisOnZeroOf.dataToCoord(0));\n    posBound[idx.onZero] = Math.max(Math.min(onZeroCoord, posBound[1]), posBound[0]);\n  }\n\n  layout.position = [axisDim === 'y' ? posBound[idx[axisPosition]] : rectBound[0], axisDim === 'x' ? posBound[idx[axisPosition]] : rectBound[3]];\n  layout.rotation = Math.PI / 2 * (axisDim === 'x' ? 0 : 1);\n  var dirMap = {\n    top: -1,\n    bottom: 1,\n    left: -1,\n    right: 1\n  };\n  layout.labelDirection = layout.tickDirection = layout.nameDirection = dirMap[rawAxisPosition];\n  layout.labelOffset = otherAxisOnZeroOf ? posBound[idx[rawAxisPosition]] - posBound[idx.onZero] : 0;\n\n  if (axisModel.get(['axisTick', 'inside'])) {\n    layout.tickDirection = -layout.tickDirection;\n  }\n\n  if (zrUtil.retrieve(opt.labelInside, axisModel.get(['axisLabel', 'inside']))) {\n    layout.labelDirection = -layout.labelDirection;\n  }\n\n  var labelRotate = axisModel.get(['axisLabel', 'rotate']);\n  layout.labelRotate = axisPosition === 'top' ? -labelRotate : labelRotate;\n  layout.z2 = 1;\n  return layout;\n}\nexport function isCartesian2DSeries(seriesModel) {\n  return seriesModel.get('coordinateSystem') === 'cartesian2d';\n}\nexport function findAxisModels(seriesModel) {\n  var axisModelMap = {\n    xAxisModel: null,\n    yAxisModel: null\n  };\n  zrUtil.each(axisModelMap, function (v, key) {\n    var axisType = key.replace(/Model$/, '');\n    var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!axisModel) {\n        throw new Error(axisType + ' \"' + zrUtil.retrieve3(seriesModel.get(axisType + 'Index'), seriesModel.get(axisType + 'Id'), 0) + '\" not found');\n      }\n    }\n\n    axisModelMap[key] = axisModel;\n  });\n  return axisModelMap;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isObject, each, indexOf, retrieve3 } from 'zrender/lib/core/util';\nimport { getLayoutRect } from '../../util/layout';\nimport { createScaleByModel, ifAxisCrossZero, niceScaleExtent, estimateLabelUnionRect, getDataDimensionsOnAxis } from '../../coord/axisHelper';\nimport Cartesian2D, { cartesian2DDimensions } from './Cartesian2D';\nimport Axis2D from './Axis2D';\nimport { SINGLE_REFERRING } from '../../util/model';\nimport { isCartesian2DSeries, findAxisModels } from './cartesianAxisHelper';\n\nvar Grid = function () {\n  function Grid(gridModel, ecModel, api) {\n    this.type = 'grid';\n    this._coordsMap = {};\n    this._coordsList = [];\n    this._axesMap = {};\n    this._axesList = [];\n    this.axisPointerEnabled = true;\n    this.dimensions = cartesian2DDimensions;\n\n    this._initCartesian(gridModel, ecModel, api);\n\n    this.model = gridModel;\n  }\n\n  Grid.prototype.getRect = function () {\n    return this._rect;\n  };\n\n  Grid.prototype.update = function (ecModel, api) {\n    var axesMap = this._axesMap;\n\n    this._updateScale(ecModel, this.model);\n\n    each(axesMap.x, function (xAxis) {\n      niceScaleExtent(xAxis.scale, xAxis.model);\n    });\n    each(axesMap.y, function (yAxis) {\n      niceScaleExtent(yAxis.scale, yAxis.model);\n    });\n    var onZeroRecords = {};\n    each(axesMap.x, function (xAxis) {\n      fixAxisOnZero(axesMap, 'y', xAxis, onZeroRecords);\n    });\n    each(axesMap.y, function (yAxis) {\n      fixAxisOnZero(axesMap, 'x', yAxis, onZeroRecords);\n    });\n    this.resize(this.model, api);\n  };\n\n  Grid.prototype.resize = function (gridModel, api, ignoreContainLabel) {\n    var boxLayoutParams = gridModel.getBoxLayoutParams();\n    var isContainLabel = !ignoreContainLabel && gridModel.get('containLabel');\n    var gridRect = getLayoutRect(boxLayoutParams, {\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n    this._rect = gridRect;\n    var axesList = this._axesList;\n    adjustAxes();\n\n    if (isContainLabel) {\n      each(axesList, function (axis) {\n        if (!axis.model.get(['axisLabel', 'inside'])) {\n          var labelUnionRect = estimateLabelUnionRect(axis);\n\n          if (labelUnionRect) {\n            var dim = axis.isHorizontal() ? 'height' : 'width';\n            var margin = axis.model.get(['axisLabel', 'margin']);\n            gridRect[dim] -= labelUnionRect[dim] + margin;\n\n            if (axis.position === 'top') {\n              gridRect.y += labelUnionRect.height + margin;\n            } else if (axis.position === 'left') {\n              gridRect.x += labelUnionRect.width + margin;\n            }\n          }\n        }\n      });\n      adjustAxes();\n    }\n\n    each(this._coordsList, function (coord) {\n      coord.calcAffineTransform();\n    });\n\n    function adjustAxes() {\n      each(axesList, function (axis) {\n        var isHorizontal = axis.isHorizontal();\n        var extent = isHorizontal ? [0, gridRect.width] : [0, gridRect.height];\n        var idx = axis.inverse ? 1 : 0;\n        axis.setExtent(extent[idx], extent[1 - idx]);\n        updateAxisTransform(axis, isHorizontal ? gridRect.x : gridRect.y);\n      });\n    }\n  };\n\n  Grid.prototype.getAxis = function (dim, axisIndex) {\n    var axesMapOnDim = this._axesMap[dim];\n\n    if (axesMapOnDim != null) {\n      return axesMapOnDim[axisIndex || 0];\n    }\n  };\n\n  Grid.prototype.getAxes = function () {\n    return this._axesList.slice();\n  };\n\n  Grid.prototype.getCartesian = function (xAxisIndex, yAxisIndex) {\n    if (xAxisIndex != null && yAxisIndex != null) {\n      var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\n      return this._coordsMap[key];\n    }\n\n    if (isObject(xAxisIndex)) {\n      yAxisIndex = xAxisIndex.yAxisIndex;\n      xAxisIndex = xAxisIndex.xAxisIndex;\n    }\n\n    for (var i = 0, coordList = this._coordsList; i < coordList.length; i++) {\n      if (coordList[i].getAxis('x').index === xAxisIndex || coordList[i].getAxis('y').index === yAxisIndex) {\n        return coordList[i];\n      }\n    }\n  };\n\n  Grid.prototype.getCartesians = function () {\n    return this._coordsList.slice();\n  };\n\n  Grid.prototype.convertToPixel = function (ecModel, finder, value) {\n    var target = this._findConvertTarget(finder);\n\n    return target.cartesian ? target.cartesian.dataToPoint(value) : target.axis ? target.axis.toGlobalCoord(target.axis.dataToCoord(value)) : null;\n  };\n\n  Grid.prototype.convertFromPixel = function (ecModel, finder, value) {\n    var target = this._findConvertTarget(finder);\n\n    return target.cartesian ? target.cartesian.pointToData(value) : target.axis ? target.axis.coordToData(target.axis.toLocalCoord(value)) : null;\n  };\n\n  Grid.prototype._findConvertTarget = function (finder) {\n    var seriesModel = finder.seriesModel;\n    var xAxisModel = finder.xAxisModel || seriesModel && seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0];\n    var yAxisModel = finder.yAxisModel || seriesModel && seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0];\n    var gridModel = finder.gridModel;\n    var coordsList = this._coordsList;\n    var cartesian;\n    var axis;\n\n    if (seriesModel) {\n      cartesian = seriesModel.coordinateSystem;\n      indexOf(coordsList, cartesian) < 0 && (cartesian = null);\n    } else if (xAxisModel && yAxisModel) {\n      cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n    } else if (xAxisModel) {\n      axis = this.getAxis('x', xAxisModel.componentIndex);\n    } else if (yAxisModel) {\n      axis = this.getAxis('y', yAxisModel.componentIndex);\n    } else if (gridModel) {\n      var grid = gridModel.coordinateSystem;\n\n      if (grid === this) {\n        cartesian = this._coordsList[0];\n      }\n    }\n\n    return {\n      cartesian: cartesian,\n      axis: axis\n    };\n  };\n\n  Grid.prototype.containPoint = function (point) {\n    var coord = this._coordsList[0];\n\n    if (coord) {\n      return coord.containPoint(point);\n    }\n  };\n\n  Grid.prototype._initCartesian = function (gridModel, ecModel, api) {\n    var _this = this;\n\n    var grid = this;\n    var axisPositionUsed = {\n      left: false,\n      right: false,\n      top: false,\n      bottom: false\n    };\n    var axesMap = {\n      x: {},\n      y: {}\n    };\n    var axesCount = {\n      x: 0,\n      y: 0\n    };\n    ecModel.eachComponent('xAxis', createAxisCreator('x'), this);\n    ecModel.eachComponent('yAxis', createAxisCreator('y'), this);\n\n    if (!axesCount.x || !axesCount.y) {\n      this._axesMap = {};\n      this._axesList = [];\n      return;\n    }\n\n    this._axesMap = axesMap;\n    each(axesMap.x, function (xAxis, xAxisIndex) {\n      each(axesMap.y, function (yAxis, yAxisIndex) {\n        var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\n        var cartesian = new Cartesian2D(key);\n        cartesian.master = _this;\n        cartesian.model = gridModel;\n        _this._coordsMap[key] = cartesian;\n\n        _this._coordsList.push(cartesian);\n\n        cartesian.addAxis(xAxis);\n        cartesian.addAxis(yAxis);\n      });\n    });\n\n    function createAxisCreator(dimName) {\n      return function (axisModel, idx) {\n        if (!isAxisUsedInTheGrid(axisModel, gridModel)) {\n          return;\n        }\n\n        var axisPosition = axisModel.get('position');\n\n        if (dimName === 'x') {\n          if (axisPosition !== 'top' && axisPosition !== 'bottom') {\n            axisPosition = axisPositionUsed.bottom ? 'top' : 'bottom';\n          }\n        } else {\n          if (axisPosition !== 'left' && axisPosition !== 'right') {\n            axisPosition = axisPositionUsed.left ? 'right' : 'left';\n          }\n        }\n\n        axisPositionUsed[axisPosition] = true;\n        var axis = new Axis2D(dimName, createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisPosition);\n        var isCategory = axis.type === 'category';\n        axis.onBand = isCategory && axisModel.get('boundaryGap');\n        axis.inverse = axisModel.get('inverse');\n        axisModel.axis = axis;\n        axis.model = axisModel;\n        axis.grid = grid;\n        axis.index = idx;\n\n        grid._axesList.push(axis);\n\n        axesMap[dimName][idx] = axis;\n        axesCount[dimName]++;\n      };\n    }\n  };\n\n  Grid.prototype._updateScale = function (ecModel, gridModel) {\n    each(this._axesList, function (axis) {\n      axis.scale.setExtent(Infinity, -Infinity);\n\n      if (axis.type === 'category') {\n        var categorySortInfo = axis.model.get('categorySortInfo');\n        axis.scale.setSortInfo(categorySortInfo);\n      }\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      if (isCartesian2DSeries(seriesModel)) {\n        var axesModelMap = findAxisModels(seriesModel);\n        var xAxisModel = axesModelMap.xAxisModel;\n        var yAxisModel = axesModelMap.yAxisModel;\n\n        if (!isAxisUsedInTheGrid(xAxisModel, gridModel) || !isAxisUsedInTheGrid(yAxisModel, gridModel)) {\n          return;\n        }\n\n        var cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n        var data = seriesModel.getData();\n        var xAxis = cartesian.getAxis('x');\n        var yAxis = cartesian.getAxis('y');\n\n        if (data.type === 'list') {\n          unionExtent(data, xAxis);\n          unionExtent(data, yAxis);\n        }\n      }\n    }, this);\n\n    function unionExtent(data, axis) {\n      each(getDataDimensionsOnAxis(data, axis.dim), function (dim) {\n        axis.scale.unionExtentFromData(data, dim);\n      });\n    }\n  };\n\n  Grid.prototype.getTooltipAxes = function (dim) {\n    var baseAxes = [];\n    var otherAxes = [];\n    each(this.getCartesians(), function (cartesian) {\n      var baseAxis = dim != null && dim !== 'auto' ? cartesian.getAxis(dim) : cartesian.getBaseAxis();\n      var otherAxis = cartesian.getOtherAxis(baseAxis);\n      indexOf(baseAxes, baseAxis) < 0 && baseAxes.push(baseAxis);\n      indexOf(otherAxes, otherAxis) < 0 && otherAxes.push(otherAxis);\n    });\n    return {\n      baseAxes: baseAxes,\n      otherAxes: otherAxes\n    };\n  };\n\n  Grid.create = function (ecModel, api) {\n    var grids = [];\n    ecModel.eachComponent('grid', function (gridModel, idx) {\n      var grid = new Grid(gridModel, ecModel, api);\n      grid.name = 'grid_' + idx;\n      grid.resize(gridModel, api, true);\n      gridModel.coordinateSystem = grid;\n      grids.push(grid);\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      if (!isCartesian2DSeries(seriesModel)) {\n        return;\n      }\n\n      var axesModelMap = findAxisModels(seriesModel);\n      var xAxisModel = axesModelMap.xAxisModel;\n      var yAxisModel = axesModelMap.yAxisModel;\n      var gridModel = xAxisModel.getCoordSysModel();\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (!gridModel) {\n          throw new Error('Grid \"' + retrieve3(xAxisModel.get('gridIndex'), xAxisModel.get('gridId'), 0) + '\" not found');\n        }\n\n        if (xAxisModel.getCoordSysModel() !== yAxisModel.getCoordSysModel()) {\n          throw new Error('xAxis and yAxis must use the same grid');\n        }\n      }\n\n      var grid = gridModel.coordinateSystem;\n      seriesModel.coordinateSystem = grid.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n    });\n    return grids;\n  };\n\n  Grid.dimensions = cartesian2DDimensions;\n  return Grid;\n}();\n\nfunction isAxisUsedInTheGrid(axisModel, gridModel) {\n  return axisModel.getCoordSysModel() === gridModel;\n}\n\nfunction fixAxisOnZero(axesMap, otherAxisDim, axis, onZeroRecords) {\n  axis.getAxesOnZeroOf = function () {\n    return otherAxisOnZeroOf ? [otherAxisOnZeroOf] : [];\n  };\n\n  var otherAxes = axesMap[otherAxisDim];\n  var otherAxisOnZeroOf;\n  var axisModel = axis.model;\n  var onZero = axisModel.get(['axisLine', 'onZero']);\n  var onZeroAxisIndex = axisModel.get(['axisLine', 'onZeroAxisIndex']);\n\n  if (!onZero) {\n    return;\n  }\n\n  if (onZeroAxisIndex != null) {\n    if (canOnZeroToAxis(otherAxes[onZeroAxisIndex])) {\n      otherAxisOnZeroOf = otherAxes[onZeroAxisIndex];\n    }\n  } else {\n    for (var idx in otherAxes) {\n      if (otherAxes.hasOwnProperty(idx) && canOnZeroToAxis(otherAxes[idx]) && !onZeroRecords[getOnZeroRecordKey(otherAxes[idx])]) {\n        otherAxisOnZeroOf = otherAxes[idx];\n        break;\n      }\n    }\n  }\n\n  if (otherAxisOnZeroOf) {\n    onZeroRecords[getOnZeroRecordKey(otherAxisOnZeroOf)] = true;\n  }\n\n  function getOnZeroRecordKey(axis) {\n    return axis.dim + '_' + axis.index;\n  }\n}\n\nfunction canOnZeroToAxis(axis) {\n  return axis && axis.type !== 'category' && axis.type !== 'time' && ifAxisCrossZero(axis);\n}\n\nfunction updateAxisTransform(axis, coordBase) {\n  var axisExtent = axis.getExtent();\n  var axisExtentSum = axisExtent[0] + axisExtent[1];\n  axis.toGlobalCoord = axis.dim === 'x' ? function (coord) {\n    return coord + coordBase;\n  } : function (coord) {\n    return axisExtentSum - coord + coordBase;\n  };\n  axis.toLocalCoord = axis.dim === 'x' ? function (coord) {\n    return coord - coordBase;\n  } : function (coord) {\n    return axisExtentSum - coord + coordBase;\n  };\n}\n\nexport default Grid;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { retrieve, defaults, extend, each, isObject } from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { createTextStyle } from '../../label/labelStyle';\nimport Model from '../../model/Model';\nimport { isRadianAroundZero, remRadian } from '../../util/number';\nimport { createSymbol } from '../../util/symbol';\nimport * as matrixUtil from 'zrender/lib/core/matrix';\nimport { applyTransform as v2ApplyTransform } from 'zrender/lib/core/vector';\nimport { shouldShowAllLabels } from '../../coord/axisHelper';\nvar PI = Math.PI;\n\nvar AxisBuilder = function () {\n  function AxisBuilder(axisModel, opt) {\n    this.group = new graphic.Group();\n    this.opt = opt;\n    this.axisModel = axisModel;\n    defaults(opt, {\n      labelOffset: 0,\n      nameDirection: 1,\n      tickDirection: 1,\n      labelDirection: 1,\n      silent: true,\n      handleAutoShown: function () {\n        return true;\n      }\n    });\n    var transformGroup = new graphic.Group({\n      x: opt.position[0],\n      y: opt.position[1],\n      rotation: opt.rotation\n    });\n    transformGroup.updateTransform();\n    this._transformGroup = transformGroup;\n  }\n\n  AxisBuilder.prototype.hasBuilder = function (name) {\n    return !!builders[name];\n  };\n\n  AxisBuilder.prototype.add = function (name) {\n    builders[name](this.opt, this.axisModel, this.group, this._transformGroup);\n  };\n\n  AxisBuilder.prototype.getGroup = function () {\n    return this.group;\n  };\n\n  AxisBuilder.innerTextLayout = function (axisRotation, textRotation, direction) {\n    var rotationDiff = remRadian(textRotation - axisRotation);\n    var textAlign;\n    var textVerticalAlign;\n\n    if (isRadianAroundZero(rotationDiff)) {\n      textVerticalAlign = direction > 0 ? 'top' : 'bottom';\n      textAlign = 'center';\n    } else if (isRadianAroundZero(rotationDiff - PI)) {\n      textVerticalAlign = direction > 0 ? 'bottom' : 'top';\n      textAlign = 'center';\n    } else {\n      textVerticalAlign = 'middle';\n\n      if (rotationDiff > 0 && rotationDiff < PI) {\n        textAlign = direction > 0 ? 'right' : 'left';\n      } else {\n        textAlign = direction > 0 ? 'left' : 'right';\n      }\n    }\n\n    return {\n      rotation: rotationDiff,\n      textAlign: textAlign,\n      textVerticalAlign: textVerticalAlign\n    };\n  };\n\n  AxisBuilder.makeAxisEventDataBase = function (axisModel) {\n    var eventData = {\n      componentType: axisModel.mainType,\n      componentIndex: axisModel.componentIndex\n    };\n    eventData[axisModel.mainType + 'Index'] = axisModel.componentIndex;\n    return eventData;\n  };\n\n  AxisBuilder.isLabelSilent = function (axisModel) {\n    var tooltipOpt = axisModel.get('tooltip');\n    return axisModel.get('silent') || !(axisModel.get('triggerEvent') || tooltipOpt && tooltipOpt.show);\n  };\n\n  return AxisBuilder;\n}();\n\n;\nvar builders = {\n  axisLine: function (opt, axisModel, group, transformGroup) {\n    var shown = axisModel.get(['axisLine', 'show']);\n\n    if (shown === 'auto' && opt.handleAutoShown) {\n      shown = opt.handleAutoShown('axisLine');\n    }\n\n    if (!shown) {\n      return;\n    }\n\n    var extent = axisModel.axis.getExtent();\n    var matrix = transformGroup.transform;\n    var pt1 = [extent[0], 0];\n    var pt2 = [extent[1], 0];\n\n    if (matrix) {\n      v2ApplyTransform(pt1, pt1, matrix);\n      v2ApplyTransform(pt2, pt2, matrix);\n    }\n\n    var lineStyle = extend({\n      lineCap: 'round'\n    }, axisModel.getModel(['axisLine', 'lineStyle']).getLineStyle());\n    var line = new graphic.Line({\n      subPixelOptimize: true,\n      shape: {\n        x1: pt1[0],\n        y1: pt1[1],\n        x2: pt2[0],\n        y2: pt2[1]\n      },\n      style: lineStyle,\n      strokeContainThreshold: opt.strokeContainThreshold || 5,\n      silent: true,\n      z2: 1\n    });\n    line.anid = 'line';\n    group.add(line);\n    var arrows = axisModel.get(['axisLine', 'symbol']);\n    var arrowSize = axisModel.get(['axisLine', 'symbolSize']);\n    var arrowOffset = axisModel.get(['axisLine', 'symbolOffset']) || 0;\n\n    if (typeof arrowOffset === 'number') {\n      arrowOffset = [arrowOffset, arrowOffset];\n    }\n\n    if (arrows != null) {\n      if (typeof arrows === 'string') {\n        arrows = [arrows, arrows];\n      }\n\n      if (typeof arrowSize === 'string' || typeof arrowSize === 'number') {\n        arrowSize = [arrowSize, arrowSize];\n      }\n\n      var symbolWidth_1 = arrowSize[0];\n      var symbolHeight_1 = arrowSize[1];\n      each([{\n        rotate: opt.rotation + Math.PI / 2,\n        offset: arrowOffset[0],\n        r: 0\n      }, {\n        rotate: opt.rotation - Math.PI / 2,\n        offset: arrowOffset[1],\n        r: Math.sqrt((pt1[0] - pt2[0]) * (pt1[0] - pt2[0]) + (pt1[1] - pt2[1]) * (pt1[1] - pt2[1]))\n      }], function (point, index) {\n        if (arrows[index] !== 'none' && arrows[index] != null) {\n          var symbol = createSymbol(arrows[index], -symbolWidth_1 / 2, -symbolHeight_1 / 2, symbolWidth_1, symbolHeight_1, lineStyle.stroke, true);\n          var r = point.r + point.offset;\n          symbol.attr({\n            rotation: point.rotate,\n            x: pt1[0] + r * Math.cos(opt.rotation),\n            y: pt1[1] - r * Math.sin(opt.rotation),\n            silent: true,\n            z2: 11\n          });\n          group.add(symbol);\n        }\n      });\n    }\n  },\n  axisTickLabel: function (opt, axisModel, group, transformGroup) {\n    var ticksEls = buildAxisMajorTicks(group, transformGroup, axisModel, opt);\n    var labelEls = buildAxisLabel(group, transformGroup, axisModel, opt);\n    fixMinMaxLabelShow(axisModel, labelEls, ticksEls);\n    buildAxisMinorTicks(group, transformGroup, axisModel, opt.tickDirection);\n  },\n  axisName: function (opt, axisModel, group, transformGroup) {\n    var name = retrieve(opt.axisName, axisModel.get('name'));\n\n    if (!name) {\n      return;\n    }\n\n    var nameLocation = axisModel.get('nameLocation');\n    var nameDirection = opt.nameDirection;\n    var textStyleModel = axisModel.getModel('nameTextStyle');\n    var gap = axisModel.get('nameGap') || 0;\n    var extent = axisModel.axis.getExtent();\n    var gapSignal = extent[0] > extent[1] ? -1 : 1;\n    var pos = [nameLocation === 'start' ? extent[0] - gapSignal * gap : nameLocation === 'end' ? extent[1] + gapSignal * gap : (extent[0] + extent[1]) / 2, isNameLocationCenter(nameLocation) ? opt.labelOffset + nameDirection * gap : 0];\n    var labelLayout;\n    var nameRotation = axisModel.get('nameRotate');\n\n    if (nameRotation != null) {\n      nameRotation = nameRotation * PI / 180;\n    }\n\n    var axisNameAvailableWidth;\n\n    if (isNameLocationCenter(nameLocation)) {\n      labelLayout = AxisBuilder.innerTextLayout(opt.rotation, nameRotation != null ? nameRotation : opt.rotation, nameDirection);\n    } else {\n      labelLayout = endTextLayout(opt.rotation, nameLocation, nameRotation || 0, extent);\n      axisNameAvailableWidth = opt.axisNameAvailableWidth;\n\n      if (axisNameAvailableWidth != null) {\n        axisNameAvailableWidth = Math.abs(axisNameAvailableWidth / Math.sin(labelLayout.rotation));\n        !isFinite(axisNameAvailableWidth) && (axisNameAvailableWidth = null);\n      }\n    }\n\n    var textFont = textStyleModel.getFont();\n    var truncateOpt = axisModel.get('nameTruncate', true) || {};\n    var ellipsis = truncateOpt.ellipsis;\n    var maxWidth = retrieve(opt.nameTruncateMaxWidth, truncateOpt.maxWidth, axisNameAvailableWidth);\n    var tooltipOpt = axisModel.get('tooltip', true);\n    var mainType = axisModel.mainType;\n    var formatterParams = {\n      componentType: mainType,\n      name: name,\n      $vars: ['name']\n    };\n    formatterParams[mainType + 'Index'] = axisModel.componentIndex;\n    var textEl = new graphic.Text({\n      x: pos[0],\n      y: pos[1],\n      rotation: labelLayout.rotation,\n      silent: AxisBuilder.isLabelSilent(axisModel),\n      style: createTextStyle(textStyleModel, {\n        text: name,\n        font: textFont,\n        overflow: 'truncate',\n        width: maxWidth,\n        ellipsis: ellipsis,\n        fill: textStyleModel.getTextColor() || axisModel.get(['axisLine', 'lineStyle', 'color']),\n        align: textStyleModel.get('align') || labelLayout.textAlign,\n        verticalAlign: textStyleModel.get('verticalAlign') || labelLayout.textVerticalAlign\n      }),\n      z2: 1\n    });\n    textEl.tooltip = tooltipOpt && tooltipOpt.show ? extend({\n      content: name,\n      formatter: function () {\n        return name;\n      },\n      formatterParams: formatterParams\n    }, tooltipOpt) : null;\n    textEl.__fullText = name;\n    textEl.anid = 'name';\n\n    if (axisModel.get('triggerEvent')) {\n      var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\n      eventData.targetType = 'axisName';\n      eventData.name = name;\n      getECData(textEl).eventData = eventData;\n    }\n\n    transformGroup.add(textEl);\n    textEl.updateTransform();\n    group.add(textEl);\n    textEl.decomposeTransform();\n  }\n};\n\nfunction endTextLayout(rotation, textPosition, textRotate, extent) {\n  var rotationDiff = remRadian(textRotate - rotation);\n  var textAlign;\n  var textVerticalAlign;\n  var inverse = extent[0] > extent[1];\n  var onLeft = textPosition === 'start' && !inverse || textPosition !== 'start' && inverse;\n\n  if (isRadianAroundZero(rotationDiff - PI / 2)) {\n    textVerticalAlign = onLeft ? 'bottom' : 'top';\n    textAlign = 'center';\n  } else if (isRadianAroundZero(rotationDiff - PI * 1.5)) {\n    textVerticalAlign = onLeft ? 'top' : 'bottom';\n    textAlign = 'center';\n  } else {\n    textVerticalAlign = 'middle';\n\n    if (rotationDiff < PI * 1.5 && rotationDiff > PI / 2) {\n      textAlign = onLeft ? 'left' : 'right';\n    } else {\n      textAlign = onLeft ? 'right' : 'left';\n    }\n  }\n\n  return {\n    rotation: rotationDiff,\n    textAlign: textAlign,\n    textVerticalAlign: textVerticalAlign\n  };\n}\n\nfunction fixMinMaxLabelShow(axisModel, labelEls, tickEls) {\n  if (shouldShowAllLabels(axisModel.axis)) {\n    return;\n  }\n\n  var showMinLabel = axisModel.get(['axisLabel', 'showMinLabel']);\n  var showMaxLabel = axisModel.get(['axisLabel', 'showMaxLabel']);\n  labelEls = labelEls || [];\n  tickEls = tickEls || [];\n  var firstLabel = labelEls[0];\n  var nextLabel = labelEls[1];\n  var lastLabel = labelEls[labelEls.length - 1];\n  var prevLabel = labelEls[labelEls.length - 2];\n  var firstTick = tickEls[0];\n  var nextTick = tickEls[1];\n  var lastTick = tickEls[tickEls.length - 1];\n  var prevTick = tickEls[tickEls.length - 2];\n\n  if (showMinLabel === false) {\n    ignoreEl(firstLabel);\n    ignoreEl(firstTick);\n  } else if (isTwoLabelOverlapped(firstLabel, nextLabel)) {\n    if (showMinLabel) {\n      ignoreEl(nextLabel);\n      ignoreEl(nextTick);\n    } else {\n      ignoreEl(firstLabel);\n      ignoreEl(firstTick);\n    }\n  }\n\n  if (showMaxLabel === false) {\n    ignoreEl(lastLabel);\n    ignoreEl(lastTick);\n  } else if (isTwoLabelOverlapped(prevLabel, lastLabel)) {\n    if (showMaxLabel) {\n      ignoreEl(prevLabel);\n      ignoreEl(prevTick);\n    } else {\n      ignoreEl(lastLabel);\n      ignoreEl(lastTick);\n    }\n  }\n}\n\nfunction ignoreEl(el) {\n  el && (el.ignore = true);\n}\n\nfunction isTwoLabelOverlapped(current, next) {\n  var firstRect = current && current.getBoundingRect().clone();\n  var nextRect = next && next.getBoundingRect().clone();\n\n  if (!firstRect || !nextRect) {\n    return;\n  }\n\n  var mRotationBack = matrixUtil.identity([]);\n  matrixUtil.rotate(mRotationBack, mRotationBack, -current.rotation);\n  firstRect.applyTransform(matrixUtil.mul([], mRotationBack, current.getLocalTransform()));\n  nextRect.applyTransform(matrixUtil.mul([], mRotationBack, next.getLocalTransform()));\n  return firstRect.intersect(nextRect);\n}\n\nfunction isNameLocationCenter(nameLocation) {\n  return nameLocation === 'middle' || nameLocation === 'center';\n}\n\nfunction createTicks(ticksCoords, tickTransform, tickEndCoord, tickLineStyle, anidPrefix) {\n  var tickEls = [];\n  var pt1 = [];\n  var pt2 = [];\n\n  for (var i = 0; i < ticksCoords.length; i++) {\n    var tickCoord = ticksCoords[i].coord;\n    pt1[0] = tickCoord;\n    pt1[1] = 0;\n    pt2[0] = tickCoord;\n    pt2[1] = tickEndCoord;\n\n    if (tickTransform) {\n      v2ApplyTransform(pt1, pt1, tickTransform);\n      v2ApplyTransform(pt2, pt2, tickTransform);\n    }\n\n    var tickEl = new graphic.Line({\n      subPixelOptimize: true,\n      shape: {\n        x1: pt1[0],\n        y1: pt1[1],\n        x2: pt2[0],\n        y2: pt2[1]\n      },\n      style: tickLineStyle,\n      z2: 2,\n      autoBatch: true,\n      silent: true\n    });\n    tickEl.anid = anidPrefix + '_' + ticksCoords[i].tickValue;\n    tickEls.push(tickEl);\n  }\n\n  return tickEls;\n}\n\nfunction buildAxisMajorTicks(group, transformGroup, axisModel, opt) {\n  var axis = axisModel.axis;\n  var tickModel = axisModel.getModel('axisTick');\n  var shown = tickModel.get('show');\n\n  if (shown === 'auto' && opt.handleAutoShown) {\n    shown = opt.handleAutoShown('axisTick');\n  }\n\n  if (!shown || axis.scale.isBlank()) {\n    return;\n  }\n\n  var lineStyleModel = tickModel.getModel('lineStyle');\n  var tickEndCoord = opt.tickDirection * tickModel.get('length');\n  var ticksCoords = axis.getTicksCoords();\n  var ticksEls = createTicks(ticksCoords, transformGroup.transform, tickEndCoord, defaults(lineStyleModel.getLineStyle(), {\n    stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\n  }), 'ticks');\n\n  for (var i = 0; i < ticksEls.length; i++) {\n    group.add(ticksEls[i]);\n  }\n\n  return ticksEls;\n}\n\nfunction buildAxisMinorTicks(group, transformGroup, axisModel, tickDirection) {\n  var axis = axisModel.axis;\n  var minorTickModel = axisModel.getModel('minorTick');\n\n  if (!minorTickModel.get('show') || axis.scale.isBlank()) {\n    return;\n  }\n\n  var minorTicksCoords = axis.getMinorTicksCoords();\n\n  if (!minorTicksCoords.length) {\n    return;\n  }\n\n  var lineStyleModel = minorTickModel.getModel('lineStyle');\n  var tickEndCoord = tickDirection * minorTickModel.get('length');\n  var minorTickLineStyle = defaults(lineStyleModel.getLineStyle(), defaults(axisModel.getModel('axisTick').getLineStyle(), {\n    stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\n  }));\n\n  for (var i = 0; i < minorTicksCoords.length; i++) {\n    var minorTicksEls = createTicks(minorTicksCoords[i], transformGroup.transform, tickEndCoord, minorTickLineStyle, 'minorticks_' + i);\n\n    for (var k = 0; k < minorTicksEls.length; k++) {\n      group.add(minorTicksEls[k]);\n    }\n  }\n}\n\nfunction buildAxisLabel(group, transformGroup, axisModel, opt) {\n  var axis = axisModel.axis;\n  var show = retrieve(opt.axisLabelShow, axisModel.get(['axisLabel', 'show']));\n\n  if (!show || axis.scale.isBlank()) {\n    return;\n  }\n\n  var labelModel = axisModel.getModel('axisLabel');\n  var labelMargin = labelModel.get('margin');\n  var labels = axis.getViewLabels();\n  var labelRotation = (retrieve(opt.labelRotate, labelModel.get('rotate')) || 0) * PI / 180;\n  var labelLayout = AxisBuilder.innerTextLayout(opt.rotation, labelRotation, opt.labelDirection);\n  var rawCategoryData = axisModel.getCategories && axisModel.getCategories(true);\n  var labelEls = [];\n  var silent = AxisBuilder.isLabelSilent(axisModel);\n  var triggerEvent = axisModel.get('triggerEvent');\n  each(labels, function (labelItem, index) {\n    var tickValue = axis.scale.type === 'ordinal' ? axis.scale.getRawOrdinalNumber(labelItem.tickValue) : labelItem.tickValue;\n    var formattedLabel = labelItem.formattedLabel;\n    var rawLabel = labelItem.rawLabel;\n    var itemLabelModel = labelModel;\n\n    if (rawCategoryData && rawCategoryData[tickValue]) {\n      var rawCategoryItem = rawCategoryData[tickValue];\n\n      if (isObject(rawCategoryItem) && rawCategoryItem.textStyle) {\n        itemLabelModel = new Model(rawCategoryItem.textStyle, labelModel, axisModel.ecModel);\n      }\n    }\n\n    var textColor = itemLabelModel.getTextColor() || axisModel.get(['axisLine', 'lineStyle', 'color']);\n    var tickCoord = axis.dataToCoord(tickValue);\n    var textEl = new graphic.Text({\n      x: tickCoord,\n      y: opt.labelOffset + opt.labelDirection * labelMargin,\n      rotation: labelLayout.rotation,\n      silent: silent,\n      z2: 10,\n      style: createTextStyle(itemLabelModel, {\n        text: formattedLabel,\n        align: itemLabelModel.getShallow('align', true) || labelLayout.textAlign,\n        verticalAlign: itemLabelModel.getShallow('verticalAlign', true) || itemLabelModel.getShallow('baseline', true) || labelLayout.textVerticalAlign,\n        fill: typeof textColor === 'function' ? textColor(axis.type === 'category' ? rawLabel : axis.type === 'value' ? tickValue + '' : tickValue, index) : textColor\n      })\n    });\n    textEl.anid = 'label_' + tickValue;\n\n    if (triggerEvent) {\n      var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\n      eventData.targetType = 'axisLabel';\n      eventData.value = rawLabel;\n      getECData(textEl).eventData = eventData;\n    }\n\n    transformGroup.add(textEl);\n    textEl.updateTransform();\n    labelEls.push(textEl);\n    group.add(textEl);\n    textEl.decomposeTransform();\n  });\n  return labelEls;\n}\n\nexport default AxisBuilder;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Model from '../../model/Model';\nimport { each, curry, clone, defaults, isArray, indexOf } from 'zrender/lib/core/util';\nexport function collect(ecModel, api) {\n  var result = {\n    axesInfo: {},\n    seriesInvolved: false,\n    coordSysAxesInfo: {},\n    coordSysMap: {}\n  };\n  collectAxesInfo(result, ecModel, api);\n  result.seriesInvolved && collectSeriesInfo(result, ecModel);\n  return result;\n}\n\nfunction collectAxesInfo(result, ecModel, api) {\n  var globalTooltipModel = ecModel.getComponent('tooltip');\n  var globalAxisPointerModel = ecModel.getComponent('axisPointer');\n  var linksOption = globalAxisPointerModel.get('link', true) || [];\n  var linkGroups = [];\n  each(api.getCoordinateSystems(), function (coordSys) {\n    if (!coordSys.axisPointerEnabled) {\n      return;\n    }\n\n    var coordSysKey = makeKey(coordSys.model);\n    var axesInfoInCoordSys = result.coordSysAxesInfo[coordSysKey] = {};\n    result.coordSysMap[coordSysKey] = coordSys;\n    var coordSysModel = coordSys.model;\n    var baseTooltipModel = coordSysModel.getModel('tooltip', globalTooltipModel);\n    each(coordSys.getAxes(), curry(saveTooltipAxisInfo, false, null));\n\n    if (coordSys.getTooltipAxes && globalTooltipModel && baseTooltipModel.get('show')) {\n      var triggerAxis = baseTooltipModel.get('trigger') === 'axis';\n      var cross = baseTooltipModel.get(['axisPointer', 'type']) === 'cross';\n      var tooltipAxes = coordSys.getTooltipAxes(baseTooltipModel.get(['axisPointer', 'axis']));\n\n      if (triggerAxis || cross) {\n        each(tooltipAxes.baseAxes, curry(saveTooltipAxisInfo, cross ? 'cross' : true, triggerAxis));\n      }\n\n      if (cross) {\n        each(tooltipAxes.otherAxes, curry(saveTooltipAxisInfo, 'cross', false));\n      }\n    }\n\n    function saveTooltipAxisInfo(fromTooltip, triggerTooltip, axis) {\n      var axisPointerModel = axis.model.getModel('axisPointer', globalAxisPointerModel);\n      var axisPointerShow = axisPointerModel.get('show');\n\n      if (!axisPointerShow || axisPointerShow === 'auto' && !fromTooltip && !isHandleTrigger(axisPointerModel)) {\n        return;\n      }\n\n      if (triggerTooltip == null) {\n        triggerTooltip = axisPointerModel.get('triggerTooltip');\n      }\n\n      axisPointerModel = fromTooltip ? makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) : axisPointerModel;\n      var snap = axisPointerModel.get('snap');\n      var axisKey = makeKey(axis.model);\n      var involveSeries = triggerTooltip || snap || axis.type === 'category';\n      var axisInfo = result.axesInfo[axisKey] = {\n        key: axisKey,\n        axis: axis,\n        coordSys: coordSys,\n        axisPointerModel: axisPointerModel,\n        triggerTooltip: triggerTooltip,\n        involveSeries: involveSeries,\n        snap: snap,\n        useHandle: isHandleTrigger(axisPointerModel),\n        seriesModels: [],\n        linkGroup: null\n      };\n      axesInfoInCoordSys[axisKey] = axisInfo;\n      result.seriesInvolved = result.seriesInvolved || involveSeries;\n      var groupIndex = getLinkGroupIndex(linksOption, axis);\n\n      if (groupIndex != null) {\n        var linkGroup = linkGroups[groupIndex] || (linkGroups[groupIndex] = {\n          axesInfo: {}\n        });\n        linkGroup.axesInfo[axisKey] = axisInfo;\n        linkGroup.mapper = linksOption[groupIndex].mapper;\n        axisInfo.linkGroup = linkGroup;\n      }\n    }\n  });\n}\n\nfunction makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) {\n  var tooltipAxisPointerModel = baseTooltipModel.getModel('axisPointer');\n  var fields = ['type', 'snap', 'lineStyle', 'shadowStyle', 'label', 'animation', 'animationDurationUpdate', 'animationEasingUpdate', 'z'];\n  var volatileOption = {};\n  each(fields, function (field) {\n    volatileOption[field] = clone(tooltipAxisPointerModel.get(field));\n  });\n  volatileOption.snap = axis.type !== 'category' && !!triggerTooltip;\n\n  if (tooltipAxisPointerModel.get('type') === 'cross') {\n    volatileOption.type = 'line';\n  }\n\n  var labelOption = volatileOption.label || (volatileOption.label = {});\n  labelOption.show == null && (labelOption.show = false);\n\n  if (fromTooltip === 'cross') {\n    var tooltipAxisPointerLabelShow = tooltipAxisPointerModel.get(['label', 'show']);\n    labelOption.show = tooltipAxisPointerLabelShow != null ? tooltipAxisPointerLabelShow : true;\n\n    if (!triggerTooltip) {\n      var crossStyle = volatileOption.lineStyle = tooltipAxisPointerModel.get('crossStyle');\n      crossStyle && defaults(labelOption, crossStyle.textStyle);\n    }\n  }\n\n  return axis.model.getModel('axisPointer', new Model(volatileOption, globalAxisPointerModel, ecModel));\n}\n\nfunction collectSeriesInfo(result, ecModel) {\n  ecModel.eachSeries(function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n    var seriesTooltipTrigger = seriesModel.get(['tooltip', 'trigger'], true);\n    var seriesTooltipShow = seriesModel.get(['tooltip', 'show'], true);\n\n    if (!coordSys || seriesTooltipTrigger === 'none' || seriesTooltipTrigger === false || seriesTooltipTrigger === 'item' || seriesTooltipShow === false || seriesModel.get(['axisPointer', 'show'], true) === false) {\n      return;\n    }\n\n    each(result.coordSysAxesInfo[makeKey(coordSys.model)], function (axisInfo) {\n      var axis = axisInfo.axis;\n\n      if (coordSys.getAxis(axis.dim) === axis) {\n        axisInfo.seriesModels.push(seriesModel);\n        axisInfo.seriesDataCount == null && (axisInfo.seriesDataCount = 0);\n        axisInfo.seriesDataCount += seriesModel.getData().count();\n      }\n    });\n  });\n}\n\nfunction getLinkGroupIndex(linksOption, axis) {\n  var axisModel = axis.model;\n  var dim = axis.dim;\n\n  for (var i = 0; i < linksOption.length; i++) {\n    var linkOption = linksOption[i] || {};\n\n    if (checkPropInLink(linkOption[dim + 'AxisId'], axisModel.id) || checkPropInLink(linkOption[dim + 'AxisIndex'], axisModel.componentIndex) || checkPropInLink(linkOption[dim + 'AxisName'], axisModel.name)) {\n      return i;\n    }\n  }\n}\n\nfunction checkPropInLink(linkPropValue, axisPropValue) {\n  return linkPropValue === 'all' || isArray(linkPropValue) && indexOf(linkPropValue, axisPropValue) >= 0 || linkPropValue === axisPropValue;\n}\n\nexport function fixValue(axisModel) {\n  var axisInfo = getAxisInfo(axisModel);\n\n  if (!axisInfo) {\n    return;\n  }\n\n  var axisPointerModel = axisInfo.axisPointerModel;\n  var scale = axisInfo.axis.scale;\n  var option = axisPointerModel.option;\n  var status = axisPointerModel.get('status');\n  var value = axisPointerModel.get('value');\n\n  if (value != null) {\n    value = scale.parse(value);\n  }\n\n  var useHandle = isHandleTrigger(axisPointerModel);\n\n  if (status == null) {\n    option.status = useHandle ? 'show' : 'hide';\n  }\n\n  var extent = scale.getExtent().slice();\n  extent[0] > extent[1] && extent.reverse();\n\n  if (value == null || value > extent[1]) {\n    value = extent[1];\n  }\n\n  if (value < extent[0]) {\n    value = extent[0];\n  }\n\n  option.value = value;\n\n  if (useHandle) {\n    option.status = axisInfo.axis.scale.isBlank() ? 'hide' : 'show';\n  }\n}\nexport function getAxisInfo(axisModel) {\n  var coordSysAxesInfo = (axisModel.ecModel.getComponent('axisPointer') || {}).coordSysAxesInfo;\n  return coordSysAxesInfo && coordSysAxesInfo.axesInfo[makeKey(axisModel)];\n}\nexport function getAxisPointerModel(axisModel) {\n  var axisInfo = getAxisInfo(axisModel);\n  return axisInfo && axisInfo.axisPointerModel;\n}\n\nfunction isHandleTrigger(axisPointerModel) {\n  return !!axisPointerModel.get(['handle', 'show']);\n}\n\nexport function makeKey(model) {\n  return model.type + '||' + model.id;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as axisPointerModelHelper from '../axisPointer/modelHelper';\nimport ComponentView from '../../view/Component';\nvar axisPointerClazz = {};\n\nvar AxisView = function (_super) {\n  __extends(AxisView, _super);\n\n  function AxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = AxisView.type;\n    return _this;\n  }\n\n  AxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n    this.axisPointerClass && axisPointerModelHelper.fixValue(axisModel);\n\n    _super.prototype.render.apply(this, arguments);\n\n    this._doUpdateAxisPointerClass(axisModel, api, true);\n  };\n\n  AxisView.prototype.updateAxisPointer = function (axisModel, ecModel, api, payload) {\n    this._doUpdateAxisPointerClass(axisModel, api, false);\n  };\n\n  AxisView.prototype.remove = function (ecModel, api) {\n    var axisPointer = this._axisPointer;\n    axisPointer && axisPointer.remove(api);\n  };\n\n  AxisView.prototype.dispose = function (ecModel, api) {\n    this._disposeAxisPointer(api);\n\n    _super.prototype.dispose.apply(this, arguments);\n  };\n\n  AxisView.prototype._doUpdateAxisPointerClass = function (axisModel, api, forceRender) {\n    var Clazz = AxisView.getAxisPointerClass(this.axisPointerClass);\n\n    if (!Clazz) {\n      return;\n    }\n\n    var axisPointerModel = axisPointerModelHelper.getAxisPointerModel(axisModel);\n    axisPointerModel ? (this._axisPointer || (this._axisPointer = new Clazz())).render(axisModel, axisPointerModel, api, forceRender) : this._disposeAxisPointer(api);\n  };\n\n  AxisView.prototype._disposeAxisPointer = function (api) {\n    this._axisPointer && this._axisPointer.dispose(api);\n    this._axisPointer = null;\n  };\n\n  AxisView.registerAxisPointerClass = function (type, clazz) {\n    if (process.env.NODE_ENV !== 'production') {\n      if (axisPointerClazz[type]) {\n        throw new Error('axisPointer ' + type + ' exists');\n      }\n    }\n\n    axisPointerClazz[type] = clazz;\n  };\n\n  ;\n\n  AxisView.getAxisPointerClass = function (type) {\n    return type && axisPointerClazz[type];\n  };\n\n  ;\n  AxisView.type = 'axis';\n  return AxisView;\n}(ComponentView);\n\nexport default AxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\nexport function rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel) {\n  var axis = axisModel.axis;\n\n  if (axis.scale.isBlank()) {\n    return;\n  }\n\n  var splitAreaModel = axisModel.getModel('splitArea');\n  var areaStyleModel = splitAreaModel.getModel('areaStyle');\n  var areaColors = areaStyleModel.get('color');\n  var gridRect = gridModel.coordinateSystem.getRect();\n  var ticksCoords = axis.getTicksCoords({\n    tickModel: splitAreaModel,\n    clamp: true\n  });\n\n  if (!ticksCoords.length) {\n    return;\n  }\n\n  var areaColorsLen = areaColors.length;\n  var lastSplitAreaColors = inner(axisView).splitAreaColors;\n  var newSplitAreaColors = zrUtil.createHashMap();\n  var colorIndex = 0;\n\n  if (lastSplitAreaColors) {\n    for (var i = 0; i < ticksCoords.length; i++) {\n      var cIndex = lastSplitAreaColors.get(ticksCoords[i].tickValue);\n\n      if (cIndex != null) {\n        colorIndex = (cIndex + (areaColorsLen - 1) * i) % areaColorsLen;\n        break;\n      }\n    }\n  }\n\n  var prev = axis.toGlobalCoord(ticksCoords[0].coord);\n  var areaStyle = areaStyleModel.getAreaStyle();\n  areaColors = zrUtil.isArray(areaColors) ? areaColors : [areaColors];\n\n  for (var i = 1; i < ticksCoords.length; i++) {\n    var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n    var x = void 0;\n    var y = void 0;\n    var width = void 0;\n    var height = void 0;\n\n    if (axis.isHorizontal()) {\n      x = prev;\n      y = gridRect.y;\n      width = tickCoord - x;\n      height = gridRect.height;\n      prev = x + width;\n    } else {\n      x = gridRect.x;\n      y = prev;\n      width = gridRect.width;\n      height = tickCoord - y;\n      prev = y + height;\n    }\n\n    var tickValue = ticksCoords[i - 1].tickValue;\n    tickValue != null && newSplitAreaColors.set(tickValue, colorIndex);\n    axisGroup.add(new graphic.Rect({\n      anid: tickValue != null ? 'area_' + tickValue : null,\n      shape: {\n        x: x,\n        y: y,\n        width: width,\n        height: height\n      },\n      style: zrUtil.defaults({\n        fill: areaColors[colorIndex]\n      }, areaStyle),\n      autoBatch: true,\n      silent: true\n    }));\n    colorIndex = (colorIndex + 1) % areaColorsLen;\n  }\n\n  inner(axisView).splitAreaColors = newSplitAreaColors;\n}\nexport function rectCoordAxisHandleRemove(axisView) {\n  inner(axisView).splitAreaColors = null;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport AxisBuilder from './AxisBuilder';\nimport AxisView from './AxisView';\nimport * as cartesianAxisHelper from '../../coord/cartesian/cartesianAxisHelper';\nimport { rectCoordAxisBuildSplitArea, rectCoordAxisHandleRemove } from './axisSplitHelper';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitArea', 'splitLine', 'minorSplitLine'];\n\nvar CartesianAxisView = function (_super) {\n  __extends(CartesianAxisView, _super);\n\n  function CartesianAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CartesianAxisView.type;\n    _this.axisPointerClass = 'CartesianAxisPointer';\n    return _this;\n  }\n\n  CartesianAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n    this.group.removeAll();\n    var oldAxisGroup = this._axisGroup;\n    this._axisGroup = new graphic.Group();\n    this.group.add(this._axisGroup);\n\n    if (!axisModel.get('show')) {\n      return;\n    }\n\n    var gridModel = axisModel.getCoordSysModel();\n    var layout = cartesianAxisHelper.layout(gridModel, axisModel);\n    var axisBuilder = new AxisBuilder(axisModel, zrUtil.extend({\n      handleAutoShown: function (elementType) {\n        var cartesians = gridModel.coordinateSystem.getCartesians();\n\n        for (var i = 0; i < cartesians.length; i++) {\n          var otherAxisType = cartesians[i].getOtherAxis(axisModel.axis).type;\n\n          if (otherAxisType === 'value' || otherAxisType === 'log') {\n            return true;\n          }\n        }\n\n        return false;\n      }\n    }, layout));\n    zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n\n    this._axisGroup.add(axisBuilder.getGroup());\n\n    zrUtil.each(selfBuilderAttrs, function (name) {\n      if (axisModel.get([name, 'show'])) {\n        axisElementBuilders[name](this, this._axisGroup, axisModel, gridModel);\n      }\n    }, this);\n    graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel);\n\n    _super.prototype.render.call(this, axisModel, ecModel, api, payload);\n  };\n\n  CartesianAxisView.prototype.remove = function () {\n    rectCoordAxisHandleRemove(this);\n  };\n\n  CartesianAxisView.type = 'cartesianAxis';\n  return CartesianAxisView;\n}(AxisView);\n\nvar axisElementBuilders = {\n  splitLine: function (axisView, axisGroup, axisModel, gridModel) {\n    var axis = axisModel.axis;\n\n    if (axis.scale.isBlank()) {\n      return;\n    }\n\n    var splitLineModel = axisModel.getModel('splitLine');\n    var lineStyleModel = splitLineModel.getModel('lineStyle');\n    var lineColors = lineStyleModel.get('color');\n    lineColors = zrUtil.isArray(lineColors) ? lineColors : [lineColors];\n    var gridRect = gridModel.coordinateSystem.getRect();\n    var isHorizontal = axis.isHorizontal();\n    var lineCount = 0;\n    var ticksCoords = axis.getTicksCoords({\n      tickModel: splitLineModel\n    });\n    var p1 = [];\n    var p2 = [];\n    var lineStyle = lineStyleModel.getLineStyle();\n\n    for (var i = 0; i < ticksCoords.length; i++) {\n      var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n\n      if (isHorizontal) {\n        p1[0] = tickCoord;\n        p1[1] = gridRect.y;\n        p2[0] = tickCoord;\n        p2[1] = gridRect.y + gridRect.height;\n      } else {\n        p1[0] = gridRect.x;\n        p1[1] = tickCoord;\n        p2[0] = gridRect.x + gridRect.width;\n        p2[1] = tickCoord;\n      }\n\n      var colorIndex = lineCount++ % lineColors.length;\n      var tickValue = ticksCoords[i].tickValue;\n      axisGroup.add(new graphic.Line({\n        anid: tickValue != null ? 'line_' + ticksCoords[i].tickValue : null,\n        subPixelOptimize: true,\n        autoBatch: true,\n        shape: {\n          x1: p1[0],\n          y1: p1[1],\n          x2: p2[0],\n          y2: p2[1]\n        },\n        style: zrUtil.defaults({\n          stroke: lineColors[colorIndex]\n        }, lineStyle),\n        silent: true\n      }));\n    }\n  },\n  minorSplitLine: function (axisView, axisGroup, axisModel, gridModel) {\n    var axis = axisModel.axis;\n    var minorSplitLineModel = axisModel.getModel('minorSplitLine');\n    var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\n    var gridRect = gridModel.coordinateSystem.getRect();\n    var isHorizontal = axis.isHorizontal();\n    var minorTicksCoords = axis.getMinorTicksCoords();\n\n    if (!minorTicksCoords.length) {\n      return;\n    }\n\n    var p1 = [];\n    var p2 = [];\n    var lineStyle = lineStyleModel.getLineStyle();\n\n    for (var i = 0; i < minorTicksCoords.length; i++) {\n      for (var k = 0; k < minorTicksCoords[i].length; k++) {\n        var tickCoord = axis.toGlobalCoord(minorTicksCoords[i][k].coord);\n\n        if (isHorizontal) {\n          p1[0] = tickCoord;\n          p1[1] = gridRect.y;\n          p2[0] = tickCoord;\n          p2[1] = gridRect.y + gridRect.height;\n        } else {\n          p1[0] = gridRect.x;\n          p1[1] = tickCoord;\n          p2[0] = gridRect.x + gridRect.width;\n          p2[1] = tickCoord;\n        }\n\n        axisGroup.add(new graphic.Line({\n          anid: 'minor_line_' + minorTicksCoords[i][k].tickValue,\n          subPixelOptimize: true,\n          autoBatch: true,\n          shape: {\n            x1: p1[0],\n            y1: p1[1],\n            x2: p2[0],\n            y2: p2[1]\n          },\n          style: lineStyle,\n          silent: true\n        }));\n      }\n    }\n  },\n  splitArea: function (axisView, axisGroup, axisModel, gridModel) {\n    rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel);\n  }\n};\n\nvar CartesianXAxisView = function (_super) {\n  __extends(CartesianXAxisView, _super);\n\n  function CartesianXAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CartesianXAxisView.type;\n    return _this;\n  }\n\n  CartesianXAxisView.type = 'xAxis';\n  return CartesianXAxisView;\n}(CartesianAxisView);\n\nexport { CartesianXAxisView };\n\nvar CartesianYAxisView = function (_super) {\n  __extends(CartesianYAxisView, _super);\n\n  function CartesianYAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CartesianXAxisView.type;\n    return _this;\n  }\n\n  CartesianYAxisView.type = 'yAxis';\n  return CartesianYAxisView;\n}(CartesianAxisView);\n\nexport { CartesianYAxisView };\nexport default CartesianAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component';\nimport GridModel from '../../coord/cartesian/GridModel';\nimport { Rect } from '../../util/graphic';\nimport { defaults } from 'zrender/lib/core/util';\nimport { CartesianAxisModel } from '../../coord/cartesian/AxisModel';\nimport axisModelCreator from '../../coord/axisModelCreator';\nimport Grid from '../../coord/cartesian/Grid';\nimport { CartesianXAxisView, CartesianYAxisView } from '../axis/CartesianAxisView';\n\nvar GridView = function (_super) {\n  __extends(GridView, _super);\n\n  function GridView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'grid';\n    return _this;\n  }\n\n  GridView.prototype.render = function (gridModel, ecModel) {\n    this.group.removeAll();\n\n    if (gridModel.get('show')) {\n      this.group.add(new Rect({\n        shape: gridModel.coordinateSystem.getRect(),\n        style: defaults({\n          fill: gridModel.get('backgroundColor')\n        }, gridModel.getItemStyle()),\n        silent: true,\n        z2: -1\n      }));\n    }\n  };\n\n  GridView.type = 'grid';\n  return GridView;\n}(ComponentView);\n\nvar extraOption = {\n  offset: 0\n};\nexport function install(registers) {\n  registers.registerComponentView(GridView);\n  registers.registerComponentModel(GridModel);\n  registers.registerCoordinateSystem('cartesian2d', Grid);\n  axisModelCreator(registers, 'x', CartesianAxisModel, extraOption);\n  axisModelCreator(registers, 'y', CartesianAxisModel, extraOption);\n  registers.registerComponentView(CartesianXAxisView);\n  registers.registerComponentView(CartesianYAxisView);\n  registers.registerPreprocessor(function (option) {\n    if (option.xAxis && option.yAxis && !option.grid) {\n      option.grid = {};\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport ScatterSeriesModel from './ScatterSeries';\nimport ScatterView from './ScatterView';\nimport { install as installGridSimple } from '../../component/grid/installSimple';\nimport layoutPoints from '../../layout/points';\nexport function install(registers) {\n  use(installGridSimple);\n  registers.registerSeriesModel(ScatterSeriesModel);\n  registers.registerChartView(ScatterView);\n  registers.registerLayout(layoutPoints('scatter'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function radarLayout(ecModel) {\n  ecModel.eachSeriesByType('radar', function (seriesModel) {\n    var data = seriesModel.getData();\n    var points = [];\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (!coordSys) {\n      return;\n    }\n\n    var axes = coordSys.getIndicatorAxes();\n    zrUtil.each(axes, function (axis, axisIndex) {\n      data.each(data.mapDimension(axes[axisIndex].dim), function (val, dataIndex) {\n        points[dataIndex] = points[dataIndex] || [];\n        var point = coordSys.dataToPoint(val, axisIndex);\n        points[dataIndex][axisIndex] = isValidPoint(point) ? point : getValueMissingPoint(coordSys);\n      });\n    });\n    data.each(function (idx) {\n      var firstPoint = zrUtil.find(points[idx], function (point) {\n        return isValidPoint(point);\n      }) || getValueMissingPoint(coordSys);\n      points[idx].push(firstPoint.slice());\n      data.setItemLayout(idx, points[idx]);\n    });\n  });\n}\n\nfunction isValidPoint(point) {\n  return !isNaN(point[0]) && !isNaN(point[1]);\n}\n\nfunction getValueMissingPoint(coordSys) {\n  return [coordSys.cx, coordSys.cy];\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function radarBackwardCompat(option) {\n  var polarOptArr = option.polar;\n\n  if (polarOptArr) {\n    if (!zrUtil.isArray(polarOptArr)) {\n      polarOptArr = [polarOptArr];\n    }\n\n    var polarNotRadar_1 = [];\n    zrUtil.each(polarOptArr, function (polarOpt, idx) {\n      if (polarOpt.indicator) {\n        if (polarOpt.type && !polarOpt.shape) {\n          polarOpt.shape = polarOpt.type;\n        }\n\n        option.radar = option.radar || [];\n\n        if (!zrUtil.isArray(option.radar)) {\n          option.radar = [option.radar];\n        }\n\n        option.radar.push(polarOpt);\n      } else {\n        polarNotRadar_1.push(polarOpt);\n      }\n    });\n    option.polar = polarNotRadar_1;\n  }\n\n  zrUtil.each(option.series, function (seriesOpt) {\n    if (seriesOpt && seriesOpt.type === 'radar' && seriesOpt.polarIndex) {\n      seriesOpt.radarIndex = seriesOpt.polarIndex;\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as symbolUtil from '../../util/symbol';\nimport ChartView from '../../view/Chart';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport ZRImage from 'zrender/lib/graphic/Image';\n\nfunction normalizeSymbolSize(symbolSize) {\n  if (!zrUtil.isArray(symbolSize)) {\n    symbolSize = [+symbolSize, +symbolSize];\n  }\n\n  return symbolSize;\n}\n\nvar RadarView = function (_super) {\n  __extends(RadarView, _super);\n\n  function RadarView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = RadarView.type;\n    return _this;\n  }\n\n  RadarView.prototype.render = function (seriesModel, ecModel, api) {\n    var polar = seriesModel.coordinateSystem;\n    var group = this.group;\n    var data = seriesModel.getData();\n    var oldData = this._data;\n\n    function createSymbol(data, idx) {\n      var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\n\n      if (symbolType === 'none') {\n        return;\n      }\n\n      var symbolSize = normalizeSymbolSize(data.getItemVisual(idx, 'symbolSize'));\n      var symbolPath = symbolUtil.createSymbol(symbolType, -1, -1, 2, 2);\n      var symbolRotate = data.getItemVisual(idx, 'symbolRotate') || 0;\n      symbolPath.attr({\n        style: {\n          strokeNoScale: true\n        },\n        z2: 100,\n        scaleX: symbolSize[0] / 2,\n        scaleY: symbolSize[1] / 2,\n        rotation: symbolRotate * Math.PI / 180 || 0\n      });\n      return symbolPath;\n    }\n\n    function updateSymbols(oldPoints, newPoints, symbolGroup, data, idx, isInit) {\n      symbolGroup.removeAll();\n\n      for (var i = 0; i < newPoints.length - 1; i++) {\n        var symbolPath = createSymbol(data, idx);\n\n        if (symbolPath) {\n          symbolPath.__dimIdx = i;\n\n          if (oldPoints[i]) {\n            symbolPath.setPosition(oldPoints[i]);\n            graphic[isInit ? 'initProps' : 'updateProps'](symbolPath, {\n              x: newPoints[i][0],\n              y: newPoints[i][1]\n            }, seriesModel, idx);\n          } else {\n            symbolPath.setPosition(newPoints[i]);\n          }\n\n          symbolGroup.add(symbolPath);\n        }\n      }\n    }\n\n    function getInitialPoints(points) {\n      return zrUtil.map(points, function (pt) {\n        return [polar.cx, polar.cy];\n      });\n    }\n\n    data.diff(oldData).add(function (idx) {\n      var points = data.getItemLayout(idx);\n\n      if (!points) {\n        return;\n      }\n\n      var polygon = new graphic.Polygon();\n      var polyline = new graphic.Polyline();\n      var target = {\n        shape: {\n          points: points\n        }\n      };\n      polygon.shape.points = getInitialPoints(points);\n      polyline.shape.points = getInitialPoints(points);\n      graphic.initProps(polygon, target, seriesModel, idx);\n      graphic.initProps(polyline, target, seriesModel, idx);\n      var itemGroup = new graphic.Group();\n      var symbolGroup = new graphic.Group();\n      itemGroup.add(polyline);\n      itemGroup.add(polygon);\n      itemGroup.add(symbolGroup);\n      updateSymbols(polyline.shape.points, points, symbolGroup, data, idx, true);\n      data.setItemGraphicEl(idx, itemGroup);\n    }).update(function (newIdx, oldIdx) {\n      var itemGroup = oldData.getItemGraphicEl(oldIdx);\n      var polyline = itemGroup.childAt(0);\n      var polygon = itemGroup.childAt(1);\n      var symbolGroup = itemGroup.childAt(2);\n      var target = {\n        shape: {\n          points: data.getItemLayout(newIdx)\n        }\n      };\n\n      if (!target.shape.points) {\n        return;\n      }\n\n      updateSymbols(polyline.shape.points, target.shape.points, symbolGroup, data, newIdx, false);\n      graphic.updateProps(polyline, target, seriesModel);\n      graphic.updateProps(polygon, target, seriesModel);\n      data.setItemGraphicEl(newIdx, itemGroup);\n    }).remove(function (idx) {\n      group.remove(oldData.getItemGraphicEl(idx));\n    }).execute();\n    data.eachItemGraphicEl(function (itemGroup, idx) {\n      var itemModel = data.getItemModel(idx);\n      var polyline = itemGroup.childAt(0);\n      var polygon = itemGroup.childAt(1);\n      var symbolGroup = itemGroup.childAt(2);\n      var itemStyle = data.getItemVisual(idx, 'style');\n      var color = itemStyle.fill;\n      group.add(itemGroup);\n      polyline.useStyle(zrUtil.defaults(itemModel.getModel('lineStyle').getLineStyle(), {\n        fill: 'none',\n        stroke: color\n      }));\n      setStatesStylesFromModel(polyline, itemModel, 'lineStyle');\n      setStatesStylesFromModel(polygon, itemModel, 'areaStyle');\n      var areaStyleModel = itemModel.getModel('areaStyle');\n      var polygonIgnore = areaStyleModel.isEmpty() && areaStyleModel.parentModel.isEmpty();\n      polygon.ignore = polygonIgnore;\n      zrUtil.each(['emphasis', 'select', 'blur'], function (stateName) {\n        var stateModel = itemModel.getModel([stateName, 'areaStyle']);\n        var stateIgnore = stateModel.isEmpty() && stateModel.parentModel.isEmpty();\n        polygon.ensureState(stateName).ignore = stateIgnore && polygonIgnore;\n      });\n      polygon.useStyle(zrUtil.defaults(areaStyleModel.getAreaStyle(), {\n        fill: color,\n        opacity: 0.7,\n        decal: itemStyle.decal\n      }));\n      var emphasisModel = itemModel.getModel('emphasis');\n      var itemHoverStyle = emphasisModel.getModel('itemStyle').getItemStyle();\n      symbolGroup.eachChild(function (symbolPath) {\n        if (symbolPath instanceof ZRImage) {\n          var pathStyle = symbolPath.style;\n          symbolPath.useStyle(zrUtil.extend({\n            image: pathStyle.image,\n            x: pathStyle.x,\n            y: pathStyle.y,\n            width: pathStyle.width,\n            height: pathStyle.height\n          }, itemStyle));\n        } else {\n          symbolPath.useStyle(itemStyle);\n          symbolPath.setColor(color);\n        }\n\n        var pathEmphasisState = symbolPath.ensureState('emphasis');\n        pathEmphasisState.style = zrUtil.clone(itemHoverStyle);\n        var defaultText = data.get(data.dimensions[symbolPath.__dimIdx], idx);\n        (defaultText == null || isNaN(defaultText)) && (defaultText = '');\n        setLabelStyle(symbolPath, getLabelStatesModels(itemModel), {\n          labelFetcher: data.hostModel,\n          labelDataIndex: idx,\n          labelDimIndex: symbolPath.__dimIdx,\n          defaultText: defaultText,\n          inheritColor: color,\n          defaultOpacity: itemStyle.opacity\n        });\n      });\n      enableHoverEmphasis(itemGroup, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n    });\n    this._data = data;\n  };\n\n  RadarView.prototype.remove = function () {\n    this.group.removeAll();\n    this._data = null;\n  };\n\n  RadarView.type = 'radar';\n  return RadarView;\n}(ChartView);\n\nexport default RadarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport createListSimply from '../helper/createListSimply';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider';\nimport { createTooltipMarkup, retrieveVisualColorForTooltipMarker } from '../../component/tooltip/tooltipMarkup';\n\nvar RadarSeriesModel = function (_super) {\n  __extends(RadarSeriesModel, _super);\n\n  function RadarSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = RadarSeriesModel.type;\n    _this.useColorPaletteOnData = true;\n    _this.hasSymbolVisual = true;\n    return _this;\n  }\n\n  RadarSeriesModel.prototype.init = function (option) {\n    _super.prototype.init.apply(this, arguments);\n\n    this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));\n  };\n\n  RadarSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListSimply(this, {\n      generateCoord: 'indicator_',\n      generateCoordCount: Infinity\n    });\n  };\n\n  RadarSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var data = this.getData();\n    var coordSys = this.coordinateSystem;\n    var indicatorAxes = coordSys.getIndicatorAxes();\n    var name = this.getData().getName(dataIndex);\n    var nameToDisplay = name === '' ? this.name : name;\n    var markerColor = retrieveVisualColorForTooltipMarker(this, dataIndex);\n    return createTooltipMarkup('section', {\n      header: nameToDisplay,\n      sortBlocks: true,\n      blocks: zrUtil.map(indicatorAxes, function (axis) {\n        var val = data.get(data.mapDimension(axis.dim), dataIndex);\n        return createTooltipMarkup('nameValue', {\n          markerType: 'subItem',\n          markerColor: markerColor,\n          name: axis.name,\n          value: val,\n          sortParam: val\n        });\n      })\n    });\n  };\n\n  RadarSeriesModel.prototype.getTooltipPosition = function (dataIndex) {\n    if (dataIndex != null) {\n      var data_1 = this.getData();\n      var coordSys = this.coordinateSystem;\n      var values = data_1.getValues(zrUtil.map(coordSys.dimensions, function (dim) {\n        return data_1.mapDimension(dim);\n      }), dataIndex);\n\n      for (var i = 0, len = values.length; i < len; i++) {\n        if (!isNaN(values[i])) {\n          var indicatorAxes = coordSys.getIndicatorAxes();\n          return coordSys.coordToPoint(indicatorAxes[i].dataToCoord(values[i]), i);\n        }\n      }\n    }\n  };\n\n  RadarSeriesModel.type = 'series.radar';\n  RadarSeriesModel.dependencies = ['radar'];\n  RadarSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'radar',\n    legendHoverLink: true,\n    radarIndex: 0,\n    lineStyle: {\n      width: 2,\n      type: 'solid'\n    },\n    label: {\n      position: 'top'\n    },\n    symbol: 'emptyCircle',\n    symbolSize: 4\n  };\n  return RadarSeriesModel;\n}(SeriesModel);\n\nexport default RadarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport axisDefault from '../axisDefault';\nimport Model from '../../model/Model';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin';\nimport ComponentModel from '../../model/Component';\nvar valueAxisDefault = axisDefault.value;\n\nfunction defaultsShow(opt, show) {\n  return zrUtil.defaults({\n    show: show\n  }, opt);\n}\n\nvar RadarModel = function (_super) {\n  __extends(RadarModel, _super);\n\n  function RadarModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = RadarModel.type;\n    return _this;\n  }\n\n  RadarModel.prototype.optionUpdated = function () {\n    var boundaryGap = this.get('boundaryGap');\n    var splitNumber = this.get('splitNumber');\n    var scale = this.get('scale');\n    var axisLine = this.get('axisLine');\n    var axisTick = this.get('axisTick');\n    var axisLabel = this.get('axisLabel');\n    var nameTextStyle = this.get('axisName');\n    var showName = this.get(['axisName', 'show']);\n    var nameFormatter = this.get(['axisName', 'formatter']);\n    var nameGap = this.get('axisNameGap');\n    var triggerEvent = this.get('triggerEvent');\n    var indicatorModels = zrUtil.map(this.get('indicator') || [], function (indicatorOpt) {\n      if (indicatorOpt.max != null && indicatorOpt.max > 0 && !indicatorOpt.min) {\n        indicatorOpt.min = 0;\n      } else if (indicatorOpt.min != null && indicatorOpt.min < 0 && !indicatorOpt.max) {\n        indicatorOpt.max = 0;\n      }\n\n      var iNameTextStyle = nameTextStyle;\n\n      if (indicatorOpt.color != null) {\n        iNameTextStyle = zrUtil.defaults({\n          color: indicatorOpt.color\n        }, nameTextStyle);\n      }\n\n      var innerIndicatorOpt = zrUtil.merge(zrUtil.clone(indicatorOpt), {\n        boundaryGap: boundaryGap,\n        splitNumber: splitNumber,\n        scale: scale,\n        axisLine: axisLine,\n        axisTick: axisTick,\n        axisLabel: axisLabel,\n        name: indicatorOpt.text,\n        nameLocation: 'end',\n        nameGap: nameGap,\n        nameTextStyle: iNameTextStyle,\n        triggerEvent: triggerEvent\n      }, false);\n\n      if (!showName) {\n        innerIndicatorOpt.name = '';\n      }\n\n      if (typeof nameFormatter === 'string') {\n        var indName = innerIndicatorOpt.name;\n        innerIndicatorOpt.name = nameFormatter.replace('{value}', indName != null ? indName : '');\n      } else if (typeof nameFormatter === 'function') {\n        innerIndicatorOpt.name = nameFormatter(innerIndicatorOpt.name, innerIndicatorOpt);\n      }\n\n      var model = new Model(innerIndicatorOpt, null, this.ecModel);\n      zrUtil.mixin(model, AxisModelCommonMixin.prototype);\n      model.mainType = 'radar';\n      model.componentIndex = this.componentIndex;\n      return model;\n    }, this);\n    this._indicatorModels = indicatorModels;\n  };\n\n  RadarModel.prototype.getIndicatorModels = function () {\n    return this._indicatorModels;\n  };\n\n  RadarModel.type = 'radar';\n  RadarModel.defaultOption = {\n    zlevel: 0,\n    z: 0,\n    center: ['50%', '50%'],\n    radius: '75%',\n    startAngle: 90,\n    axisName: {\n      show: true\n    },\n    boundaryGap: [0, 0],\n    splitNumber: 5,\n    axisNameGap: 15,\n    scale: false,\n    shape: 'polygon',\n    axisLine: zrUtil.merge({\n      lineStyle: {\n        color: '#bbb'\n      }\n    }, valueAxisDefault.axisLine),\n    axisLabel: defaultsShow(valueAxisDefault.axisLabel, false),\n    axisTick: defaultsShow(valueAxisDefault.axisTick, false),\n    splitLine: defaultsShow(valueAxisDefault.splitLine, true),\n    splitArea: defaultsShow(valueAxisDefault.splitArea, true),\n    indicator: []\n  };\n  return RadarModel;\n}(ComponentModel);\n\nexport default RadarModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport AxisBuilder from '../axis/AxisBuilder';\nimport * as graphic from '../../util/graphic';\nimport ComponentView from '../../view/Component';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\n\nvar RadarView = function (_super) {\n  __extends(RadarView, _super);\n\n  function RadarView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = RadarView.type;\n    return _this;\n  }\n\n  RadarView.prototype.render = function (radarModel, ecModel, api) {\n    var group = this.group;\n    group.removeAll();\n\n    this._buildAxes(radarModel);\n\n    this._buildSplitLineAndArea(radarModel);\n  };\n\n  RadarView.prototype._buildAxes = function (radarModel) {\n    var radar = radarModel.coordinateSystem;\n    var indicatorAxes = radar.getIndicatorAxes();\n    var axisBuilders = zrUtil.map(indicatorAxes, function (indicatorAxis) {\n      var axisBuilder = new AxisBuilder(indicatorAxis.model, {\n        position: [radar.cx, radar.cy],\n        rotation: indicatorAxis.angle,\n        labelDirection: -1,\n        tickDirection: -1,\n        nameDirection: 1\n      });\n      return axisBuilder;\n    });\n    zrUtil.each(axisBuilders, function (axisBuilder) {\n      zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n      this.group.add(axisBuilder.getGroup());\n    }, this);\n  };\n\n  RadarView.prototype._buildSplitLineAndArea = function (radarModel) {\n    var radar = radarModel.coordinateSystem;\n    var indicatorAxes = radar.getIndicatorAxes();\n\n    if (!indicatorAxes.length) {\n      return;\n    }\n\n    var shape = radarModel.get('shape');\n    var splitLineModel = radarModel.getModel('splitLine');\n    var splitAreaModel = radarModel.getModel('splitArea');\n    var lineStyleModel = splitLineModel.getModel('lineStyle');\n    var areaStyleModel = splitAreaModel.getModel('areaStyle');\n    var showSplitLine = splitLineModel.get('show');\n    var showSplitArea = splitAreaModel.get('show');\n    var splitLineColors = lineStyleModel.get('color');\n    var splitAreaColors = areaStyleModel.get('color');\n    var splitLineColorsArr = zrUtil.isArray(splitLineColors) ? splitLineColors : [splitLineColors];\n    var splitAreaColorsArr = zrUtil.isArray(splitAreaColors) ? splitAreaColors : [splitAreaColors];\n    var splitLines = [];\n    var splitAreas = [];\n\n    function getColorIndex(areaOrLine, areaOrLineColorList, idx) {\n      var colorIndex = idx % areaOrLineColorList.length;\n      areaOrLine[colorIndex] = areaOrLine[colorIndex] || [];\n      return colorIndex;\n    }\n\n    if (shape === 'circle') {\n      var ticksRadius = indicatorAxes[0].getTicksCoords();\n      var cx = radar.cx;\n      var cy = radar.cy;\n\n      for (var i = 0; i < ticksRadius.length; i++) {\n        if (showSplitLine) {\n          var colorIndex = getColorIndex(splitLines, splitLineColorsArr, i);\n          splitLines[colorIndex].push(new graphic.Circle({\n            shape: {\n              cx: cx,\n              cy: cy,\n              r: ticksRadius[i].coord\n            }\n          }));\n        }\n\n        if (showSplitArea && i < ticksRadius.length - 1) {\n          var colorIndex = getColorIndex(splitAreas, splitAreaColorsArr, i);\n          splitAreas[colorIndex].push(new graphic.Ring({\n            shape: {\n              cx: cx,\n              cy: cy,\n              r0: ticksRadius[i].coord,\n              r: ticksRadius[i + 1].coord\n            }\n          }));\n        }\n      }\n    } else {\n      var realSplitNumber_1;\n      var axesTicksPoints = zrUtil.map(indicatorAxes, function (indicatorAxis, idx) {\n        var ticksCoords = indicatorAxis.getTicksCoords();\n        realSplitNumber_1 = realSplitNumber_1 == null ? ticksCoords.length - 1 : Math.min(ticksCoords.length - 1, realSplitNumber_1);\n        return zrUtil.map(ticksCoords, function (tickCoord) {\n          return radar.coordToPoint(tickCoord.coord, idx);\n        });\n      });\n      var prevPoints = [];\n\n      for (var i = 0; i <= realSplitNumber_1; i++) {\n        var points = [];\n\n        for (var j = 0; j < indicatorAxes.length; j++) {\n          points.push(axesTicksPoints[j][i]);\n        }\n\n        if (points[0]) {\n          points.push(points[0].slice());\n        } else {\n          if (process.env.NODE_ENV !== 'production') {\n            console.error('Can\\'t draw value axis ' + i);\n          }\n        }\n\n        if (showSplitLine) {\n          var colorIndex = getColorIndex(splitLines, splitLineColorsArr, i);\n          splitLines[colorIndex].push(new graphic.Polyline({\n            shape: {\n              points: points\n            }\n          }));\n        }\n\n        if (showSplitArea && prevPoints) {\n          var colorIndex = getColorIndex(splitAreas, splitAreaColorsArr, i - 1);\n          splitAreas[colorIndex].push(new graphic.Polygon({\n            shape: {\n              points: points.concat(prevPoints)\n            }\n          }));\n        }\n\n        prevPoints = points.slice().reverse();\n      }\n    }\n\n    var lineStyle = lineStyleModel.getLineStyle();\n    var areaStyle = areaStyleModel.getAreaStyle();\n    zrUtil.each(splitAreas, function (splitAreas, idx) {\n      this.group.add(graphic.mergePath(splitAreas, {\n        style: zrUtil.defaults({\n          stroke: 'none',\n          fill: splitAreaColorsArr[idx % splitAreaColorsArr.length]\n        }, areaStyle),\n        silent: true\n      }));\n    }, this);\n    zrUtil.each(splitLines, function (splitLines, idx) {\n      this.group.add(graphic.mergePath(splitLines, {\n        style: zrUtil.defaults({\n          fill: 'none',\n          stroke: splitLineColorsArr[idx % splitLineColorsArr.length]\n        }, lineStyle),\n        silent: true\n      }));\n    }, this);\n  };\n\n  RadarView.type = 'radar';\n  return RadarView;\n}(ComponentView);\n\nexport default RadarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis';\n\nvar IndicatorAxis = function (_super) {\n  __extends(IndicatorAxis, _super);\n\n  function IndicatorAxis(dim, scale, radiusExtent) {\n    var _this = _super.call(this, dim, scale, radiusExtent) || this;\n\n    _this.type = 'value';\n    _this.angle = 0;\n    _this.name = '';\n    return _this;\n  }\n\n  return IndicatorAxis;\n}(Axis);\n\nexport default IndicatorAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport IndicatorAxis from './IndicatorAxis';\nimport IntervalScale from '../../scale/Interval';\nimport * as numberUtil from '../../util/number';\nimport { getScaleExtent, niceScaleExtent } from '../axisHelper';\nimport { parseAxisModelMinMax } from '../scaleRawExtentInfo';\nimport { map, each } from 'zrender/lib/core/util';\n\nvar Radar = function () {\n  function Radar(radarModel, ecModel, api) {\n    this.dimensions = [];\n    this._model = radarModel;\n    this._indicatorAxes = map(radarModel.getIndicatorModels(), function (indicatorModel, idx) {\n      var dim = 'indicator_' + idx;\n      var indicatorAxis = new IndicatorAxis(dim, new IntervalScale());\n      indicatorAxis.name = indicatorModel.get('name');\n      indicatorAxis.model = indicatorModel;\n      indicatorModel.axis = indicatorAxis;\n      this.dimensions.push(dim);\n      return indicatorAxis;\n    }, this);\n    this.resize(radarModel, api);\n  }\n\n  Radar.prototype.getIndicatorAxes = function () {\n    return this._indicatorAxes;\n  };\n\n  Radar.prototype.dataToPoint = function (value, indicatorIndex) {\n    var indicatorAxis = this._indicatorAxes[indicatorIndex];\n    return this.coordToPoint(indicatorAxis.dataToCoord(value), indicatorIndex);\n  };\n\n  Radar.prototype.coordToPoint = function (coord, indicatorIndex) {\n    var indicatorAxis = this._indicatorAxes[indicatorIndex];\n    var angle = indicatorAxis.angle;\n    var x = this.cx + coord * Math.cos(angle);\n    var y = this.cy - coord * Math.sin(angle);\n    return [x, y];\n  };\n\n  Radar.prototype.pointToData = function (pt) {\n    var dx = pt[0] - this.cx;\n    var dy = pt[1] - this.cy;\n    var radius = Math.sqrt(dx * dx + dy * dy);\n    dx /= radius;\n    dy /= radius;\n    var radian = Math.atan2(-dy, dx);\n    var minRadianDiff = Infinity;\n    var closestAxis;\n    var closestAxisIdx = -1;\n\n    for (var i = 0; i < this._indicatorAxes.length; i++) {\n      var indicatorAxis = this._indicatorAxes[i];\n      var diff = Math.abs(radian - indicatorAxis.angle);\n\n      if (diff < minRadianDiff) {\n        closestAxis = indicatorAxis;\n        closestAxisIdx = i;\n        minRadianDiff = diff;\n      }\n    }\n\n    return [closestAxisIdx, +(closestAxis && closestAxis.coordToData(radius))];\n  };\n\n  Radar.prototype.resize = function (radarModel, api) {\n    var center = radarModel.get('center');\n    var viewWidth = api.getWidth();\n    var viewHeight = api.getHeight();\n    var viewSize = Math.min(viewWidth, viewHeight) / 2;\n    this.cx = numberUtil.parsePercent(center[0], viewWidth);\n    this.cy = numberUtil.parsePercent(center[1], viewHeight);\n    this.startAngle = radarModel.get('startAngle') * Math.PI / 180;\n    var radius = radarModel.get('radius');\n\n    if (typeof radius === 'string' || typeof radius === 'number') {\n      radius = [0, radius];\n    }\n\n    this.r0 = numberUtil.parsePercent(radius[0], viewSize);\n    this.r = numberUtil.parsePercent(radius[1], viewSize);\n    each(this._indicatorAxes, function (indicatorAxis, idx) {\n      indicatorAxis.setExtent(this.r0, this.r);\n      var angle = this.startAngle + idx * Math.PI * 2 / this._indicatorAxes.length;\n      angle = Math.atan2(Math.sin(angle), Math.cos(angle));\n      indicatorAxis.angle = angle;\n    }, this);\n  };\n\n  Radar.prototype.update = function (ecModel, api) {\n    var indicatorAxes = this._indicatorAxes;\n    var radarModel = this._model;\n    each(indicatorAxes, function (indicatorAxis) {\n      indicatorAxis.scale.setExtent(Infinity, -Infinity);\n    });\n    ecModel.eachSeriesByType('radar', function (radarSeries, idx) {\n      if (radarSeries.get('coordinateSystem') !== 'radar' || ecModel.getComponent('radar', radarSeries.get('radarIndex')) !== radarModel) {\n        return;\n      }\n\n      var data = radarSeries.getData();\n      each(indicatorAxes, function (indicatorAxis) {\n        indicatorAxis.scale.unionExtentFromData(data, data.mapDimension(indicatorAxis.dim));\n      });\n    }, this);\n    var splitNumber = radarModel.get('splitNumber');\n\n    function increaseInterval(interval) {\n      var exp10 = Math.pow(10, Math.floor(Math.log(interval) / Math.LN10));\n      var f = interval / exp10;\n\n      if (f === 2) {\n        f = 5;\n      } else {\n        f *= 2;\n      }\n\n      return f * exp10;\n    }\n\n    each(indicatorAxes, function (indicatorAxis, idx) {\n      var rawExtent = getScaleExtent(indicatorAxis.scale, indicatorAxis.model).extent;\n      niceScaleExtent(indicatorAxis.scale, indicatorAxis.model);\n      var axisModel = indicatorAxis.model;\n      var scale = indicatorAxis.scale;\n      var fixedMin = parseAxisModelMinMax(scale, axisModel.get('min', true));\n      var fixedMax = parseAxisModelMinMax(scale, axisModel.get('max', true));\n      var interval = scale.getInterval();\n\n      if (fixedMin != null && fixedMax != null) {\n        scale.setExtent(+fixedMin, +fixedMax);\n        scale.setInterval((fixedMax - fixedMin) / splitNumber);\n      } else if (fixedMin != null) {\n        var max = void 0;\n\n        do {\n          max = fixedMin + interval * splitNumber;\n          scale.setExtent(+fixedMin, max);\n          scale.setInterval(interval);\n          interval = increaseInterval(interval);\n        } while (max < rawExtent[1] && isFinite(max) && isFinite(rawExtent[1]));\n      } else if (fixedMax != null) {\n        var min = void 0;\n\n        do {\n          min = fixedMax - interval * splitNumber;\n          scale.setExtent(min, +fixedMax);\n          scale.setInterval(interval);\n          interval = increaseInterval(interval);\n        } while (min > rawExtent[0] && isFinite(min) && isFinite(rawExtent[0]));\n      } else {\n        var nicedSplitNumber = scale.getTicks().length - 1;\n\n        if (nicedSplitNumber > splitNumber) {\n          interval = increaseInterval(interval);\n        }\n\n        var max = Math.ceil(rawExtent[1] / interval) * interval;\n        var min = numberUtil.round(max - interval * splitNumber);\n        scale.setExtent(min, max);\n        scale.setInterval(interval);\n      }\n    });\n  };\n\n  Radar.prototype.convertToPixel = function (ecModel, finder, value) {\n    console.warn('Not implemented.');\n    return null;\n  };\n\n  Radar.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n    console.warn('Not implemented.');\n    return null;\n  };\n\n  Radar.prototype.containPoint = function (point) {\n    console.warn('Not implemented.');\n    return false;\n  };\n\n  Radar.create = function (ecModel, api) {\n    var radarList = [];\n    ecModel.eachComponent('radar', function (radarModel) {\n      var radar = new Radar(radarModel, ecModel, api);\n      radarList.push(radar);\n      radarModel.coordinateSystem = radar;\n    });\n    ecModel.eachSeriesByType('radar', function (radarSeries) {\n      if (radarSeries.get('coordinateSystem') === 'radar') {\n        radarSeries.coordinateSystem = radarList[radarSeries.get('radarIndex') || 0];\n      }\n    });\n    return radarList;\n  };\n\n  Radar.dimensions = [];\n  return Radar;\n}();\n\nexport default Radar;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport RadarModel from '../../coord/radar/RadarModel';\nimport RadarView from './RadarView';\nimport Radar from '../../coord/radar/Radar';\nexport function install(registers) {\n  registers.registerCoordinateSystem('radar', Radar);\n  registers.registerComponentModel(RadarModel);\n  registers.registerComponentView(RadarView);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport radarLayout from '../radar/radarLayout';\nimport dataFilter from '../../processor/dataFilter';\nimport backwardCompat from '../radar/backwardCompat';\nimport RadarView from './RadarView';\nimport RadarSeriesModel from './RadarSeries';\nimport { install as installRadarComponent } from '../../component/radar/install';\nexport function install(registers) {\n  use(installRadarComponent);\n  registers.registerChartView(RadarView);\n  registers.registerSeriesModel(RadarSeriesModel);\n  registers.registerLayout(radarLayout);\n  registers.registerProcessor(dataFilter('radar'));\n  registers.registerPreprocessor(backwardCompat);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as echarts from '../../core/echarts';\nvar ATTR = '\\0_ec_interaction_mutex';\nexport function take(zr, resourceKey, userKey) {\n  var store = getStore(zr);\n  store[resourceKey] = userKey;\n}\nexport function release(zr, resourceKey, userKey) {\n  var store = getStore(zr);\n  var uKey = store[resourceKey];\n\n  if (uKey === userKey) {\n    store[resourceKey] = null;\n  }\n}\nexport function isTaken(zr, resourceKey) {\n  return !!getStore(zr)[resourceKey];\n}\n\nfunction getStore(zr) {\n  return zr[ATTR] || (zr[ATTR] = {});\n}\n\necharts.registerAction({\n  type: 'takeGlobalCursor',\n  event: 'globalCursorTaken',\n  update: 'update'\n}, function () {});","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Eventful from 'zrender/lib/core/Eventful';\nimport * as eventTool from 'zrender/lib/core/event';\nimport * as interactionMutex from './interactionMutex';\nimport { isString, bind, defaults, clone } from 'zrender/lib/core/util';\n\nvar RoamController = function (_super) {\n  __extends(RoamController, _super);\n\n  function RoamController(zr) {\n    var _this = _super.call(this) || this;\n\n    _this._zr = zr;\n    var mousedownHandler = bind(_this._mousedownHandler, _this);\n    var mousemoveHandler = bind(_this._mousemoveHandler, _this);\n    var mouseupHandler = bind(_this._mouseupHandler, _this);\n    var mousewheelHandler = bind(_this._mousewheelHandler, _this);\n    var pinchHandler = bind(_this._pinchHandler, _this);\n\n    _this.enable = function (controlType, opt) {\n      this.disable();\n      this._opt = defaults(clone(opt) || {}, {\n        zoomOnMouseWheel: true,\n        moveOnMouseMove: true,\n        moveOnMouseWheel: false,\n        preventDefaultMouseMove: true\n      });\n\n      if (controlType == null) {\n        controlType = true;\n      }\n\n      if (controlType === true || controlType === 'move' || controlType === 'pan') {\n        zr.on('mousedown', mousedownHandler);\n        zr.on('mousemove', mousemoveHandler);\n        zr.on('mouseup', mouseupHandler);\n      }\n\n      if (controlType === true || controlType === 'scale' || controlType === 'zoom') {\n        zr.on('mousewheel', mousewheelHandler);\n        zr.on('pinch', pinchHandler);\n      }\n    };\n\n    _this.disable = function () {\n      zr.off('mousedown', mousedownHandler);\n      zr.off('mousemove', mousemoveHandler);\n      zr.off('mouseup', mouseupHandler);\n      zr.off('mousewheel', mousewheelHandler);\n      zr.off('pinch', pinchHandler);\n    };\n\n    return _this;\n  }\n\n  RoamController.prototype.isDragging = function () {\n    return this._dragging;\n  };\n\n  RoamController.prototype.isPinching = function () {\n    return this._pinching;\n  };\n\n  RoamController.prototype.setPointerChecker = function (pointerChecker) {\n    this.pointerChecker = pointerChecker;\n  };\n\n  RoamController.prototype.dispose = function () {\n    this.disable();\n  };\n\n  RoamController.prototype._mousedownHandler = function (e) {\n    if (eventTool.isMiddleOrRightButtonOnMouseUpDown(e) || e.target && e.target.draggable) {\n      return;\n    }\n\n    var x = e.offsetX;\n    var y = e.offsetY;\n\n    if (this.pointerChecker && this.pointerChecker(e, x, y)) {\n      this._x = x;\n      this._y = y;\n      this._dragging = true;\n    }\n  };\n\n  RoamController.prototype._mousemoveHandler = function (e) {\n    if (!this._dragging || !isAvailableBehavior('moveOnMouseMove', e, this._opt) || e.gestureEvent === 'pinch' || interactionMutex.isTaken(this._zr, 'globalPan')) {\n      return;\n    }\n\n    var x = e.offsetX;\n    var y = e.offsetY;\n    var oldX = this._x;\n    var oldY = this._y;\n    var dx = x - oldX;\n    var dy = y - oldY;\n    this._x = x;\n    this._y = y;\n    this._opt.preventDefaultMouseMove && eventTool.stop(e.event);\n    trigger(this, 'pan', 'moveOnMouseMove', e, {\n      dx: dx,\n      dy: dy,\n      oldX: oldX,\n      oldY: oldY,\n      newX: x,\n      newY: y,\n      isAvailableBehavior: null\n    });\n  };\n\n  RoamController.prototype._mouseupHandler = function (e) {\n    if (!eventTool.isMiddleOrRightButtonOnMouseUpDown(e)) {\n      this._dragging = false;\n    }\n  };\n\n  RoamController.prototype._mousewheelHandler = function (e) {\n    var shouldZoom = isAvailableBehavior('zoomOnMouseWheel', e, this._opt);\n    var shouldMove = isAvailableBehavior('moveOnMouseWheel', e, this._opt);\n    var wheelDelta = e.wheelDelta;\n    var absWheelDeltaDelta = Math.abs(wheelDelta);\n    var originX = e.offsetX;\n    var originY = e.offsetY;\n\n    if (wheelDelta === 0 || !shouldZoom && !shouldMove) {\n      return;\n    }\n\n    if (shouldZoom) {\n      var factor = absWheelDeltaDelta > 3 ? 1.4 : absWheelDeltaDelta > 1 ? 1.2 : 1.1;\n      var scale = wheelDelta > 0 ? factor : 1 / factor;\n      checkPointerAndTrigger(this, 'zoom', 'zoomOnMouseWheel', e, {\n        scale: scale,\n        originX: originX,\n        originY: originY,\n        isAvailableBehavior: null\n      });\n    }\n\n    if (shouldMove) {\n      var absDelta = Math.abs(wheelDelta);\n      var scrollDelta = (wheelDelta > 0 ? 1 : -1) * (absDelta > 3 ? 0.4 : absDelta > 1 ? 0.15 : 0.05);\n      checkPointerAndTrigger(this, 'scrollMove', 'moveOnMouseWheel', e, {\n        scrollDelta: scrollDelta,\n        originX: originX,\n        originY: originY,\n        isAvailableBehavior: null\n      });\n    }\n  };\n\n  RoamController.prototype._pinchHandler = function (e) {\n    if (interactionMutex.isTaken(this._zr, 'globalPan')) {\n      return;\n    }\n\n    var scale = e.pinchScale > 1 ? 1.1 : 1 / 1.1;\n    checkPointerAndTrigger(this, 'zoom', null, e, {\n      scale: scale,\n      originX: e.pinchX,\n      originY: e.pinchY,\n      isAvailableBehavior: null\n    });\n  };\n\n  return RoamController;\n}(Eventful);\n\nfunction checkPointerAndTrigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\n  if (controller.pointerChecker && controller.pointerChecker(e, contollerEvent.originX, contollerEvent.originY)) {\n    eventTool.stop(e.event);\n    trigger(controller, eventName, behaviorToCheck, e, contollerEvent);\n  }\n}\n\nfunction trigger(controller, eventName, behaviorToCheck, e, contollerEvent) {\n  contollerEvent.isAvailableBehavior = bind(isAvailableBehavior, null, behaviorToCheck, e);\n  controller.trigger(eventName, contollerEvent);\n}\n\nfunction isAvailableBehavior(behaviorToCheck, e, settings) {\n  var setting = settings[behaviorToCheck];\n  return !behaviorToCheck || setting && (!isString(setting) || e.event[setting + 'Key']);\n}\n\nexport default RoamController;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function updateViewOnPan(controllerHost, dx, dy) {\n  var target = controllerHost.target;\n  target.x += dx;\n  target.y += dy;\n  target.dirty();\n}\nexport function updateViewOnZoom(controllerHost, zoomDelta, zoomX, zoomY) {\n  var target = controllerHost.target;\n  var zoomLimit = controllerHost.zoomLimit;\n  var newZoom = controllerHost.zoom = controllerHost.zoom || 1;\n  newZoom *= zoomDelta;\n\n  if (zoomLimit) {\n    var zoomMin = zoomLimit.min || 0;\n    var zoomMax = zoomLimit.max || Infinity;\n    newZoom = Math.max(Math.min(zoomMax, newZoom), zoomMin);\n  }\n\n  var zoomScale = newZoom / controllerHost.zoom;\n  controllerHost.zoom = newZoom;\n  target.x -= (zoomX - target.x) * (zoomScale - 1);\n  target.y -= (zoomY - target.y) * (zoomScale - 1);\n  target.scaleX *= zoomScale;\n  target.scaleY *= zoomScale;\n  target.dirty();\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar IRRELEVANT_EXCLUDES = {\n  'axisPointer': 1,\n  'tooltip': 1,\n  'brush': 1\n};\nexport function onIrrelevantElement(e, api, targetCoordSysModel) {\n  var model = api.getComponentByElement(e.topTarget);\n  var coordSys = model && model.coordinateSystem;\n  return model && model !== targetCoordSysModel && !IRRELEVANT_EXCLUDES.hasOwnProperty(model.mainType) && coordSys && coordSys.model !== targetCoordSysModel;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Region from '../Region';\nvar geoCoord = [126, 25];\nvar points = [[[0, 3.5], [7, 11.2], [15, 11.9], [30, 7], [42, 0.7], [52, 0.7], [56, 7.7], [59, 0.7], [64, 0.7], [64, 0], [5, 0], [0, 3.5]], [[13, 16.1], [19, 14.7], [16, 21.7], [11, 23.1], [13, 16.1]], [[12, 32.2], [14, 38.5], [15, 38.5], [13, 32.2], [12, 32.2]], [[16, 47.6], [12, 53.2], [13, 53.2], [18, 47.6], [16, 47.6]], [[6, 64.4], [8, 70], [9, 70], [8, 64.4], [6, 64.4]], [[23, 82.6], [29, 79.8], [30, 79.8], [25, 82.6], [23, 82.6]], [[37, 70.7], [43, 62.3], [44, 62.3], [39, 70.7], [37, 70.7]], [[48, 51.1], [51, 45.5], [53, 45.5], [50, 51.1], [48, 51.1]], [[51, 35], [51, 28.7], [53, 28.7], [53, 35], [51, 35]], [[52, 22.4], [55, 17.5], [56, 17.5], [53, 22.4], [52, 22.4]], [[58, 12.6], [62, 7], [63, 7], [60, 12.6], [58, 12.6]], [[0, 3.5], [0, 93.1], [64, 93.1], [64, 0], [63, 0], [63, 92.4], [1, 92.4], [1, 3.5], [0, 3.5]]];\n\nfor (var i = 0; i < points.length; i++) {\n  for (var k = 0; k < points[i].length; k++) {\n    points[i][k][0] /= 10.5;\n    points[i][k][1] /= -10.5 / 0.75;\n    points[i][k][0] += geoCoord[0];\n    points[i][k][1] += geoCoord[1];\n  }\n}\n\nexport default function fixNanhai(mapType, regions) {\n  if (mapType === 'china') {\n    regions.push(new Region('南海诸岛', zrUtil.map(points, function (exterior) {\n      return {\n        type: 'polygon',\n        exterior: exterior\n      };\n    }), geoCoord));\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar coordsOffsetMap = {\n  '南海诸岛': [32, 80],\n  '广东': [0, -10],\n  '香港': [10, 5],\n  '澳门': [-10, 10],\n  '天津': [5, 5]\n};\nexport default function fixTextCoords(mapType, region) {\n  if (mapType === 'china') {\n    var coordFix = coordsOffsetMap[region.name];\n\n    if (coordFix) {\n      var cp = region.center;\n      cp[0] += coordFix[0] / 10.5;\n      cp[1] += -coordFix[1] / (10.5 / 0.75);\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar geoCoordMap = {\n  'Russia': [100, 60],\n  'United States': [-99, 38],\n  'United States of America': [-99, 38]\n};\nexport default function fixGeoCoords(mapType, region) {\n  if (mapType === 'world') {\n    var geoCoord = geoCoordMap[region.name];\n\n    if (geoCoord) {\n      var cp = region.center;\n      cp[0] = geoCoord[0];\n      cp[1] = geoCoord[1];\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar points = [[[123.45165252685547, 25.73527164402261], [123.49731445312499, 25.73527164402261], [123.49731445312499, 25.750734064600884], [123.45165252685547, 25.750734064600884], [123.45165252685547, 25.73527164402261]]];\nexport default function fixDiaoyuIsland(mapType, region) {\n  if (mapType === 'china' && region.name === '台湾') {\n    region.geometries.push({\n      type: 'polygon',\n      exterior: points[0]\n    });\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each } from 'zrender/lib/core/util';\nimport parseGeoJson from './parseGeoJson';\nimport { makeInner } from '../../util/model';\nimport fixNanhai from './fix/nanhai';\nimport fixTextCoord from './fix/textCoord';\nimport fixGeoCoord from './fix/geoCoord';\nimport fixDiaoyuIsland from './fix/diaoyuIsland';\nvar inner = makeInner();\nexport default {\n  load: function (mapName, mapRecord, nameProperty) {\n    var parsed = inner(mapRecord).parsed;\n\n    if (parsed) {\n      return parsed;\n    }\n\n    var specialAreas = mapRecord.specialAreas || {};\n    var geoJSON = mapRecord.geoJSON;\n    var regions;\n\n    try {\n      regions = geoJSON ? parseGeoJson(geoJSON, nameProperty) : [];\n    } catch (e) {\n      throw new Error('Invalid geoJson format\\n' + e.message);\n    }\n\n    fixNanhai(mapName, regions);\n    each(regions, function (region) {\n      var regionName = region.name;\n      fixTextCoord(mapName, region);\n      fixGeoCoord(mapName, region);\n      fixDiaoyuIsland(mapName, region);\n      var specialArea = specialAreas[regionName];\n\n      if (specialArea) {\n        region.transformTo(specialArea.left, specialArea.top, specialArea.width, specialArea.height);\n      }\n    });\n    return inner(mapRecord).parsed = {\n      regions: regions,\n      boundingRect: getBoundingRect(regions)\n    };\n  }\n};\n\nfunction getBoundingRect(regions) {\n  var rect;\n\n  for (var i = 0; i < regions.length; i++) {\n    var regionRect = regions[i].getBoundingRect();\n    rect = rect || regionRect.clone();\n    rect.union(regionRect);\n  }\n\n  return rect;\n}","import Group from '../graphic/Group';\nimport ZRImage from '../graphic/Image';\nimport Circle from '../graphic/shape/Circle';\nimport Rect from '../graphic/shape/Rect';\nimport Ellipse from '../graphic/shape/Ellipse';\nimport Line from '../graphic/shape/Line';\nimport Path from '../graphic/Path';\nimport Polygon from '../graphic/shape/Polygon';\nimport Polyline from '../graphic/shape/Polyline';\nimport * as matrix from '../core/matrix';\nimport { createFromString } from './path';\nimport { extend, defaults, trim, each, map } from '../core/util';\nimport LinearGradient from '../graphic/LinearGradient';\nimport TSpan from '../graphic/TSpan';\nimport { parseXML } from './parseXML';\nvar DILIMITER_REG = /[\\s,]+/;\nvar nodeParsers;\nvar SVGParser = (function () {\n    function SVGParser() {\n        this._defs = {};\n        this._root = null;\n        this._isDefine = false;\n        this._isText = false;\n    }\n    SVGParser.prototype.parse = function (xml, opt) {\n        opt = opt || {};\n        var svg = parseXML(xml);\n        if (!svg) {\n            throw new Error('Illegal svg');\n        }\n        var root = new Group();\n        this._root = root;\n        var viewBox = svg.getAttribute('viewBox') || '';\n        var width = parseFloat((svg.getAttribute('width') || opt.width));\n        var height = parseFloat((svg.getAttribute('height') || opt.height));\n        isNaN(width) && (width = null);\n        isNaN(height) && (height = null);\n        parseAttributes(svg, root, null, true);\n        var child = svg.firstChild;\n        while (child) {\n            this._parseNode(child, root);\n            child = child.nextSibling;\n        }\n        var viewBoxRect;\n        var viewBoxTransform;\n        if (viewBox) {\n            var viewBoxArr = trim(viewBox).split(DILIMITER_REG);\n            if (viewBoxArr.length >= 4) {\n                viewBoxRect = {\n                    x: parseFloat((viewBoxArr[0] || 0)),\n                    y: parseFloat((viewBoxArr[1] || 0)),\n                    width: parseFloat(viewBoxArr[2]),\n                    height: parseFloat(viewBoxArr[3])\n                };\n            }\n        }\n        if (viewBoxRect && width != null && height != null) {\n            viewBoxTransform = makeViewBoxTransform(viewBoxRect, width, height);\n            if (!opt.ignoreViewBox) {\n                var elRoot = root;\n                root = new Group();\n                root.add(elRoot);\n                elRoot.scaleX = elRoot.scaleY = viewBoxTransform.scale;\n                elRoot.x = viewBoxTransform.x;\n                elRoot.y = viewBoxTransform.y;\n            }\n        }\n        if (!opt.ignoreRootClip && width != null && height != null) {\n            root.setClipPath(new Rect({\n                shape: { x: 0, y: 0, width: width, height: height }\n            }));\n        }\n        return {\n            root: root,\n            width: width,\n            height: height,\n            viewBoxRect: viewBoxRect,\n            viewBoxTransform: viewBoxTransform\n        };\n    };\n    SVGParser.prototype._parseNode = function (xmlNode, parentGroup) {\n        var nodeName = xmlNode.nodeName.toLowerCase();\n        if (nodeName === 'defs') {\n            this._isDefine = true;\n        }\n        else if (nodeName === 'text') {\n            this._isText = true;\n        }\n        var el;\n        if (this._isDefine) {\n            var parser = defineParsers[nodeName];\n            if (parser) {\n                var def = parser.call(this, xmlNode);\n                var id = xmlNode.getAttribute('id');\n                if (id) {\n                    this._defs[id] = def;\n                }\n            }\n        }\n        else {\n            var parser = nodeParsers[nodeName];\n            if (parser) {\n                el = parser.call(this, xmlNode, parentGroup);\n                parentGroup.add(el);\n            }\n        }\n        if (el) {\n            var child = xmlNode.firstChild;\n            while (child) {\n                if (child.nodeType === 1) {\n                    this._parseNode(child, el);\n                }\n                if (child.nodeType === 3 && this._isText) {\n                    this._parseText(child, el);\n                }\n                child = child.nextSibling;\n            }\n        }\n        if (nodeName === 'defs') {\n            this._isDefine = false;\n        }\n        else if (nodeName === 'text') {\n            this._isText = false;\n        }\n    };\n    SVGParser.prototype._parseText = function (xmlNode, parentGroup) {\n        if (xmlNode.nodeType === 1) {\n            var dx = xmlNode.getAttribute('dx') || 0;\n            var dy = xmlNode.getAttribute('dy') || 0;\n            this._textX += parseFloat(dx);\n            this._textY += parseFloat(dy);\n        }\n        var text = new TSpan({\n            style: {\n                text: xmlNode.textContent\n            },\n            x: this._textX || 0,\n            y: this._textY || 0\n        });\n        inheritStyle(parentGroup, text);\n        parseAttributes(xmlNode, text, this._defs);\n        var textStyle = text.style;\n        var fontSize = textStyle.fontSize;\n        if (fontSize && fontSize < 9) {\n            textStyle.fontSize = 9;\n            text.scaleX *= fontSize / 9;\n            text.scaleY *= fontSize / 9;\n        }\n        var font = (textStyle.fontSize || textStyle.fontFamily) && [\n            textStyle.fontStyle,\n            textStyle.fontWeight,\n            (textStyle.fontSize || 12) + 'px',\n            textStyle.fontFamily || 'sans-serif'\n        ].join(' ');\n        textStyle.font = font;\n        var rect = text.getBoundingRect();\n        this._textX += rect.width;\n        parentGroup.add(text);\n        return text;\n    };\n    SVGParser.internalField = (function () {\n        nodeParsers = {\n            'g': function (xmlNode, parentGroup) {\n                var g = new Group();\n                inheritStyle(parentGroup, g);\n                parseAttributes(xmlNode, g, this._defs);\n                return g;\n            },\n            'rect': function (xmlNode, parentGroup) {\n                var rect = new Rect();\n                inheritStyle(parentGroup, rect);\n                parseAttributes(xmlNode, rect, this._defs);\n                rect.setShape({\n                    x: parseFloat(xmlNode.getAttribute('x') || '0'),\n                    y: parseFloat(xmlNode.getAttribute('y') || '0'),\n                    width: parseFloat(xmlNode.getAttribute('width') || '0'),\n                    height: parseFloat(xmlNode.getAttribute('height') || '0')\n                });\n                return rect;\n            },\n            'circle': function (xmlNode, parentGroup) {\n                var circle = new Circle();\n                inheritStyle(parentGroup, circle);\n                parseAttributes(xmlNode, circle, this._defs);\n                circle.setShape({\n                    cx: parseFloat(xmlNode.getAttribute('cx') || '0'),\n                    cy: parseFloat(xmlNode.getAttribute('cy') || '0'),\n                    r: parseFloat(xmlNode.getAttribute('r') || '0')\n                });\n                return circle;\n            },\n            'line': function (xmlNode, parentGroup) {\n                var line = new Line();\n                inheritStyle(parentGroup, line);\n                parseAttributes(xmlNode, line, this._defs);\n                line.setShape({\n                    x1: parseFloat(xmlNode.getAttribute('x1') || '0'),\n                    y1: parseFloat(xmlNode.getAttribute('y1') || '0'),\n                    x2: parseFloat(xmlNode.getAttribute('x2') || '0'),\n                    y2: parseFloat(xmlNode.getAttribute('y2') || '0')\n                });\n                return line;\n            },\n            'ellipse': function (xmlNode, parentGroup) {\n                var ellipse = new Ellipse();\n                inheritStyle(parentGroup, ellipse);\n                parseAttributes(xmlNode, ellipse, this._defs);\n                ellipse.setShape({\n                    cx: parseFloat(xmlNode.getAttribute('cx') || '0'),\n                    cy: parseFloat(xmlNode.getAttribute('cy') || '0'),\n                    rx: parseFloat(xmlNode.getAttribute('rx') || '0'),\n                    ry: parseFloat(xmlNode.getAttribute('ry') || '0')\n                });\n                return ellipse;\n            },\n            'polygon': function (xmlNode, parentGroup) {\n                var pointsStr = xmlNode.getAttribute('points');\n                var pointsArr;\n                if (pointsStr) {\n                    pointsArr = parsePoints(pointsStr);\n                }\n                var polygon = new Polygon({\n                    shape: {\n                        points: pointsArr || []\n                    }\n                });\n                inheritStyle(parentGroup, polygon);\n                parseAttributes(xmlNode, polygon, this._defs);\n                return polygon;\n            },\n            'polyline': function (xmlNode, parentGroup) {\n                var path = new Path();\n                inheritStyle(parentGroup, path);\n                parseAttributes(xmlNode, path, this._defs);\n                var pointsStr = xmlNode.getAttribute('points');\n                var pointsArr;\n                if (pointsStr) {\n                    pointsArr = parsePoints(pointsStr);\n                }\n                var polyline = new Polyline({\n                    shape: {\n                        points: pointsArr || []\n                    }\n                });\n                return polyline;\n            },\n            'image': function (xmlNode, parentGroup) {\n                var img = new ZRImage();\n                inheritStyle(parentGroup, img);\n                parseAttributes(xmlNode, img, this._defs);\n                img.setStyle({\n                    image: xmlNode.getAttribute('xlink:href'),\n                    x: +xmlNode.getAttribute('x'),\n                    y: +xmlNode.getAttribute('y'),\n                    width: +xmlNode.getAttribute('width'),\n                    height: +xmlNode.getAttribute('height')\n                });\n                return img;\n            },\n            'text': function (xmlNode, parentGroup) {\n                var x = xmlNode.getAttribute('x') || '0';\n                var y = xmlNode.getAttribute('y') || '0';\n                var dx = xmlNode.getAttribute('dx') || '0';\n                var dy = xmlNode.getAttribute('dy') || '0';\n                this._textX = parseFloat(x) + parseFloat(dx);\n                this._textY = parseFloat(y) + parseFloat(dy);\n                var g = new Group();\n                inheritStyle(parentGroup, g);\n                parseAttributes(xmlNode, g, this._defs);\n                return g;\n            },\n            'tspan': function (xmlNode, parentGroup) {\n                var x = xmlNode.getAttribute('x');\n                var y = xmlNode.getAttribute('y');\n                if (x != null) {\n                    this._textX = parseFloat(x);\n                }\n                if (y != null) {\n                    this._textY = parseFloat(y);\n                }\n                var dx = xmlNode.getAttribute('dx') || 0;\n                var dy = xmlNode.getAttribute('dy') || 0;\n                var g = new Group();\n                inheritStyle(parentGroup, g);\n                parseAttributes(xmlNode, g, this._defs);\n                this._textX += dx;\n                this._textY += dy;\n                return g;\n            },\n            'path': function (xmlNode, parentGroup) {\n                var d = xmlNode.getAttribute('d') || '';\n                var path = createFromString(d);\n                inheritStyle(parentGroup, path);\n                parseAttributes(xmlNode, path, this._defs);\n                return path;\n            }\n        };\n    })();\n    return SVGParser;\n}());\nvar defineParsers = {\n    'lineargradient': function (xmlNode) {\n        var x1 = parseInt(xmlNode.getAttribute('x1') || '0', 10);\n        var y1 = parseInt(xmlNode.getAttribute('y1') || '0', 10);\n        var x2 = parseInt(xmlNode.getAttribute('x2') || '10', 10);\n        var y2 = parseInt(xmlNode.getAttribute('y2') || '0', 10);\n        var gradient = new LinearGradient(x1, y1, x2, y2);\n        _parseGradientColorStops(xmlNode, gradient);\n        return gradient;\n    }\n};\nfunction _parseGradientColorStops(xmlNode, gradient) {\n    var stop = xmlNode.firstChild;\n    while (stop) {\n        if (stop.nodeType === 1) {\n            var offsetStr = stop.getAttribute('offset');\n            var offset = void 0;\n            if (offsetStr.indexOf('%') > 0) {\n                offset = parseInt(offsetStr, 10) / 100;\n            }\n            else if (offsetStr) {\n                offset = parseFloat(offsetStr);\n            }\n            else {\n                offset = 0;\n            }\n            var stopColor = stop.getAttribute('stop-color') || '#000000';\n            gradient.colorStops.push({\n                offset: offset,\n                color: stopColor\n            });\n        }\n        stop = stop.nextSibling;\n    }\n}\nfunction inheritStyle(parent, child) {\n    if (parent && parent.__inheritedStyle) {\n        if (!child.__inheritedStyle) {\n            child.__inheritedStyle = {};\n        }\n        defaults(child.__inheritedStyle, parent.__inheritedStyle);\n    }\n}\nfunction parsePoints(pointsString) {\n    var list = trim(pointsString).split(DILIMITER_REG);\n    var points = [];\n    for (var i = 0; i < list.length; i += 2) {\n        var x = parseFloat(list[i]);\n        var y = parseFloat(list[i + 1]);\n        points.push([x, y]);\n    }\n    return points;\n}\nvar attributesMap = {\n    'fill': 'fill',\n    'stroke': 'stroke',\n    'stroke-width': 'lineWidth',\n    'opacity': 'opacity',\n    'fill-opacity': 'fillOpacity',\n    'stroke-opacity': 'strokeOpacity',\n    'stroke-dasharray': 'lineDash',\n    'stroke-dashoffset': 'lineDashOffset',\n    'stroke-linecap': 'lineCap',\n    'stroke-linejoin': 'lineJoin',\n    'stroke-miterlimit': 'miterLimit',\n    'font-family': 'fontFamily',\n    'font-size': 'fontSize',\n    'font-style': 'fontStyle',\n    'font-weight': 'fontWeight',\n    'text-align': 'textAlign',\n    'alignment-baseline': 'textBaseline'\n};\nfunction parseAttributes(xmlNode, el, defs, onlyInlineStyle) {\n    var disp = el;\n    var zrStyle = disp.__inheritedStyle || {};\n    if (xmlNode.nodeType === 1) {\n        parseTransformAttribute(xmlNode, el);\n        extend(zrStyle, parseStyleAttribute(xmlNode));\n        if (!onlyInlineStyle) {\n            for (var svgAttrName in attributesMap) {\n                if (attributesMap.hasOwnProperty(svgAttrName)) {\n                    var attrValue = xmlNode.getAttribute(svgAttrName);\n                    if (attrValue != null) {\n                        zrStyle[attributesMap[svgAttrName]] = attrValue;\n                    }\n                }\n            }\n        }\n    }\n    disp.style = disp.style || {};\n    zrStyle.fill != null && (disp.style.fill = getPaint(zrStyle.fill, defs));\n    zrStyle.stroke != null && (disp.style.stroke = getPaint(zrStyle.stroke, defs));\n    each([\n        'lineWidth', 'opacity', 'fillOpacity', 'strokeOpacity', 'miterLimit', 'fontSize'\n    ], function (propName) {\n        zrStyle[propName] != null && (disp.style[propName] = parseFloat(zrStyle[propName]));\n    });\n    if (!zrStyle.textBaseline || zrStyle.textBaseline === 'auto') {\n        zrStyle.textBaseline = 'alphabetic';\n    }\n    if (zrStyle.textBaseline === 'alphabetic') {\n        zrStyle.textBaseline = 'bottom';\n    }\n    if (zrStyle.textAlign === 'start') {\n        zrStyle.textAlign = 'left';\n    }\n    if (zrStyle.textAlign === 'end') {\n        zrStyle.textAlign = 'right';\n    }\n    each(['lineDashOffset', 'lineCap', 'lineJoin',\n        'fontWeight', 'fontFamily', 'fontStyle', 'textAlign', 'textBaseline'\n    ], function (propName) {\n        zrStyle[propName] != null && (disp.style[propName] = zrStyle[propName]);\n    });\n    if (zrStyle.lineDash) {\n        disp.style.lineDash = map(trim(zrStyle.lineDash).split(DILIMITER_REG), function (str) {\n            return parseFloat(str);\n        });\n    }\n    disp.__inheritedStyle = zrStyle;\n}\nvar urlRegex = /url\\(\\s*#(.*?)\\)/;\nfunction getPaint(str, defs) {\n    var urlMatch = defs && str && str.match(urlRegex);\n    if (urlMatch) {\n        var url = trim(urlMatch[1]);\n        var def = defs[url];\n        return def;\n    }\n    return str;\n}\nvar transformRegex = /(translate|scale|rotate|skewX|skewY|matrix)\\(([\\-\\s0-9\\.e,]*)\\)/g;\nfunction parseTransformAttribute(xmlNode, node) {\n    var transform = xmlNode.getAttribute('transform');\n    if (transform) {\n        transform = transform.replace(/,/g, ' ');\n        var transformOps_1 = [];\n        var m = null;\n        transform.replace(transformRegex, function (str, type, value) {\n            transformOps_1.push(type, value);\n            return '';\n        });\n        for (var i = transformOps_1.length - 1; i > 0; i -= 2) {\n            var value = transformOps_1[i];\n            var type = transformOps_1[i - 1];\n            var valueArr = void 0;\n            m = m || matrix.create();\n            switch (type) {\n                case 'translate':\n                    valueArr = trim(value).split(DILIMITER_REG);\n                    matrix.translate(m, m, [parseFloat(valueArr[0]), parseFloat(valueArr[1] || '0')]);\n                    break;\n                case 'scale':\n                    valueArr = trim(value).split(DILIMITER_REG);\n                    matrix.scale(m, m, [parseFloat(valueArr[0]), parseFloat(valueArr[1] || valueArr[0])]);\n                    break;\n                case 'rotate':\n                    valueArr = trim(value).split(DILIMITER_REG);\n                    matrix.rotate(m, m, parseFloat(valueArr[0]));\n                    break;\n                case 'skew':\n                    valueArr = trim(value).split(DILIMITER_REG);\n                    console.warn('Skew transform is not supported yet');\n                    break;\n                case 'matrix':\n                    valueArr = trim(value).split(DILIMITER_REG);\n                    m[0] = parseFloat(valueArr[0]);\n                    m[1] = parseFloat(valueArr[1]);\n                    m[2] = parseFloat(valueArr[2]);\n                    m[3] = parseFloat(valueArr[3]);\n                    m[4] = parseFloat(valueArr[4]);\n                    m[5] = parseFloat(valueArr[5]);\n                    break;\n            }\n        }\n        node.setLocalTransform(m);\n    }\n}\nvar styleRegex = /([^\\s:;]+)\\s*:\\s*([^:;]+)/g;\nfunction parseStyleAttribute(xmlNode) {\n    var style = xmlNode.getAttribute('style');\n    var result = {};\n    if (!style) {\n        return result;\n    }\n    var styleList = {};\n    styleRegex.lastIndex = 0;\n    var styleRegResult;\n    while ((styleRegResult = styleRegex.exec(style)) != null) {\n        styleList[styleRegResult[1]] = styleRegResult[2];\n    }\n    for (var svgAttrName in attributesMap) {\n        if (attributesMap.hasOwnProperty(svgAttrName) && styleList[svgAttrName] != null) {\n            result[attributesMap[svgAttrName]] = styleList[svgAttrName];\n        }\n    }\n    return result;\n}\nexport function makeViewBoxTransform(viewBoxRect, width, height) {\n    var scaleX = width / viewBoxRect.width;\n    var scaleY = height / viewBoxRect.height;\n    var scale = Math.min(scaleX, scaleY);\n    return {\n        scale: scale,\n        x: -(viewBoxRect.x + viewBoxRect.width / 2) * scale + width / 2,\n        y: -(viewBoxRect.y + viewBoxRect.height / 2) * scale + height / 2\n    };\n}\nexport function parseSVG(xml, opt) {\n    var parser = new SVGParser();\n    return parser.parse(xml, opt);\n}\nexport { parseXML };\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parseSVG, makeViewBoxTransform } from 'zrender/lib/tool/parseSVG';\nimport Group from 'zrender/lib/graphic/Group';\nimport Rect from 'zrender/lib/graphic/shape/Rect';\nimport { assert, createHashMap } from 'zrender/lib/core/util';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\nexport default {\n  load: function (mapName, mapRecord) {\n    var originRoot = inner(mapRecord).originRoot;\n\n    if (originRoot) {\n      return {\n        root: originRoot,\n        boundingRect: inner(mapRecord).boundingRect\n      };\n    }\n\n    var graphic = buildGraphic(mapRecord);\n    inner(mapRecord).originRoot = graphic.root;\n    inner(mapRecord).boundingRect = graphic.boundingRect;\n    return graphic;\n  },\n  makeGraphic: function (mapName, mapRecord, hostKey) {\n    var field = inner(mapRecord);\n    var rootMap = field.rootMap || (field.rootMap = createHashMap());\n    var root = rootMap.get(hostKey);\n\n    if (root) {\n      return root;\n    }\n\n    var originRoot = field.originRoot;\n    var boundingRect = field.boundingRect;\n\n    if (!field.originRootHostKey) {\n      field.originRootHostKey = hostKey;\n      root = originRoot;\n    } else {\n      root = buildGraphic(mapRecord, boundingRect).root;\n    }\n\n    return rootMap.set(hostKey, root);\n  },\n  removeGraphic: function (mapName, mapRecord, hostKey) {\n    var field = inner(mapRecord);\n    var rootMap = field.rootMap;\n    rootMap && rootMap.removeKey(hostKey);\n\n    if (hostKey === field.originRootHostKey) {\n      field.originRootHostKey = null;\n    }\n  }\n};\n\nfunction buildGraphic(mapRecord, boundingRect) {\n  var svgXML = mapRecord.svgXML;\n  var result;\n  var root;\n\n  try {\n    result = svgXML && parseSVG(svgXML, {\n      ignoreViewBox: true,\n      ignoreRootClip: true\n    }) || {};\n    root = result.root;\n    assert(root != null);\n  } catch (e) {\n    throw new Error('Invalid svg format\\n' + e.message);\n  }\n\n  var svgWidth = result.width;\n  var svgHeight = result.height;\n  var viewBoxRect = result.viewBoxRect;\n\n  if (!boundingRect) {\n    boundingRect = svgWidth == null || svgHeight == null ? root.getBoundingRect() : new BoundingRect(0, 0, 0, 0);\n\n    if (svgWidth != null) {\n      boundingRect.width = svgWidth;\n    }\n\n    if (svgHeight != null) {\n      boundingRect.height = svgHeight;\n    }\n  }\n\n  if (viewBoxRect) {\n    var viewBoxTransform = makeViewBoxTransform(viewBoxRect, boundingRect.width, boundingRect.height);\n    var elRoot = root;\n    root = new Group();\n    root.add(elRoot);\n    elRoot.scaleX = elRoot.scaleY = viewBoxTransform.scale;\n    elRoot.x = viewBoxTransform.x;\n    elRoot.y = viewBoxTransform.y;\n  }\n\n  root.setClipPath(new Rect({\n    shape: boundingRect.plain()\n  }));\n  return {\n    root: root,\n    boundingRect: boundingRect\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, createHashMap } from 'zrender/lib/core/util';\nimport mapDataStorage from './mapDataStorage';\nimport geoJSONLoader from './geoJSONLoader';\nimport geoSVGLoader from './geoSVGLoader';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nvar loaders = {\n  geoJSON: geoJSONLoader,\n  svg: geoSVGLoader\n};\nexport default {\n  load: function (mapName, nameMap, nameProperty) {\n    var regions = [];\n    var regionsMap = createHashMap();\n    var nameCoordMap = createHashMap();\n    var boundingRect;\n    var mapRecords = retrieveMap(mapName);\n    each(mapRecords, function (record) {\n      var singleSource = loaders[record.type].load(mapName, record, nameProperty);\n      each(singleSource.regions, function (region) {\n        var regionName = region.name;\n\n        if (nameMap && nameMap.hasOwnProperty(regionName)) {\n          region = region.cloneShallow(regionName = nameMap[regionName]);\n        }\n\n        regions.push(region);\n        regionsMap.set(regionName, region);\n        nameCoordMap.set(regionName, region.center);\n      });\n      var rect = singleSource.boundingRect;\n\n      if (rect) {\n        boundingRect ? boundingRect.union(rect) : boundingRect = rect.clone();\n      }\n    });\n    return {\n      regions: regions,\n      regionsMap: regionsMap,\n      nameCoordMap: nameCoordMap,\n      boundingRect: boundingRect || new BoundingRect(0, 0, 0, 0)\n    };\n  },\n  makeGraphic: function (mapName, hostKey) {\n    var mapRecords = retrieveMap(mapName);\n    var results = [];\n    each(mapRecords, function (record) {\n      var method = loaders[record.type].makeGraphic;\n      method && results.push(method(mapName, record, hostKey));\n    });\n    return results;\n  },\n  removeGraphic: function (mapName, hostKey) {\n    var mapRecords = retrieveMap(mapName);\n    each(mapRecords, function (record) {\n      var method = loaders[record.type].makeGraphic;\n      method && method(mapName, record, hostKey);\n    });\n  }\n};\n\nfunction mapNotExistsError(mapName) {\n  if (process.env.NODE_ENV !== 'production') {\n    console.error('Map ' + mapName + ' not exists. The GeoJSON of the map must be provided.');\n  }\n}\n\nfunction retrieveMap(mapName) {\n  var mapRecords = mapDataStorage.retrieveMap(mapName) || [];\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (!mapRecords.length) {\n      mapNotExistsError(mapName);\n    }\n  }\n\n  return mapRecords;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport RoamController from './RoamController';\nimport * as roamHelper from '../../component/helper/roamHelper';\nimport { onIrrelevantElement } from '../../component/helper/cursorHelper';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis, DISPLAY_STATES } from '../../util/states';\nimport geoSourceManager from '../../coord/geo/geoSourceManager';\nimport { getUID } from '../../util/component';\nimport Transformable from 'zrender/lib/core/Transformable';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { getECData } from '../../util/innerStore';\nimport { createOrUpdatePatternFromDecal } from '../../util/decal';\n\nfunction getFixedItemStyle(model) {\n  var itemStyle = model.getItemStyle();\n  var areaColor = model.get('areaColor');\n\n  if (areaColor != null) {\n    itemStyle.fill = areaColor;\n  }\n\n  return itemStyle;\n}\n\nvar MapDraw = function () {\n  function MapDraw(api) {\n    var group = new graphic.Group();\n    this.uid = getUID('ec_map_draw');\n    this._controller = new RoamController(api.getZr());\n    this._controllerHost = {\n      target: group\n    };\n    this.group = group;\n    group.add(this._regionsGroup = new graphic.Group());\n    group.add(this._backgroundGroup = new graphic.Group());\n  }\n\n  MapDraw.prototype.draw = function (mapOrGeoModel, ecModel, api, fromView, payload) {\n    var isGeo = mapOrGeoModel.mainType === 'geo';\n    var data = mapOrGeoModel.getData && mapOrGeoModel.getData();\n    isGeo && ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'map'\n    }, function (mapSeries) {\n      if (!data && mapSeries.getHostGeoModel() === mapOrGeoModel) {\n        data = mapSeries.getData();\n      }\n    });\n    var geo = mapOrGeoModel.coordinateSystem;\n\n    this._updateBackground(geo);\n\n    var regionsGroup = this._regionsGroup;\n    var group = this.group;\n    var transformInfo = geo.getTransformInfo();\n    var isFirstDraw = !regionsGroup.childAt(0) || payload;\n    var targetScaleX;\n    var targetScaleY;\n\n    if (isFirstDraw) {\n      group.transform = transformInfo.roamTransform;\n      group.decomposeTransform();\n      group.dirty();\n    } else {\n      var target = new Transformable();\n      target.transform = transformInfo.roamTransform;\n      target.decomposeTransform();\n      var props = {\n        scaleX: target.scaleX,\n        scaleY: target.scaleY,\n        x: target.x,\n        y: target.y\n      };\n      targetScaleX = target.scaleX;\n      targetScaleY = target.scaleY;\n      graphic.updateProps(group, props, mapOrGeoModel);\n    }\n\n    regionsGroup.removeAll();\n    var nameMap = zrUtil.createHashMap();\n    var isVisualEncodedByVisualMap = data && data.getVisual('visualMeta') && data.getVisual('visualMeta').length > 0;\n    zrUtil.each(geo.regions, function (region) {\n      var regionGroup = nameMap.get(region.name) || nameMap.set(region.name, new graphic.Group());\n      var compoundPath = new graphic.CompoundPath({\n        segmentIgnoreThreshold: 1,\n        shape: {\n          paths: []\n        }\n      });\n      regionGroup.add(compoundPath);\n      var regionModel = mapOrGeoModel.getRegionModel(region.name) || mapOrGeoModel;\n      var itemStyleModel = regionModel.getModel('itemStyle');\n      var emphasisModel = regionModel.getModel('emphasis');\n      var emphasisItemStyleModel = emphasisModel.getModel('itemStyle');\n      var blurItemStyleModel = regionModel.getModel(['blur', 'itemStyle']);\n      var selectItemStyleModel = regionModel.getModel(['select', 'itemStyle']);\n      var itemStyle = getFixedItemStyle(itemStyleModel);\n      var emphasisItemStyle = getFixedItemStyle(emphasisItemStyleModel);\n      var blurItemStyle = getFixedItemStyle(blurItemStyleModel);\n      var selectItemStyle = getFixedItemStyle(selectItemStyleModel);\n      var dataIdx;\n\n      if (data) {\n        dataIdx = data.indexOfName(region.name);\n        var style = data.getItemVisual(dataIdx, 'style');\n        var decal = data.getItemVisual(dataIdx, 'decal');\n\n        if (isVisualEncodedByVisualMap && style.fill) {\n          itemStyle.fill = style.fill;\n        }\n\n        if (decal) {\n          itemStyle.decal = createOrUpdatePatternFromDecal(decal, api);\n        }\n      }\n\n      var sx = transformInfo.rawScaleX;\n      var sy = transformInfo.rawScaleY;\n      var offsetX = transformInfo.rawX;\n      var offsetY = transformInfo.rawY;\n\n      var transformPoint = function (point) {\n        return [point[0] * sx + offsetX, point[1] * sy + offsetY];\n      };\n\n      zrUtil.each(region.geometries, function (geometry) {\n        if (geometry.type !== 'polygon') {\n          return;\n        }\n\n        var points = [];\n\n        for (var i = 0; i < geometry.exterior.length; ++i) {\n          points.push(transformPoint(geometry.exterior[i]));\n        }\n\n        compoundPath.shape.paths.push(new graphic.Polygon({\n          segmentIgnoreThreshold: 1,\n          shape: {\n            points: points\n          }\n        }));\n\n        for (var i = 0; i < (geometry.interiors ? geometry.interiors.length : 0); ++i) {\n          var interior = geometry.interiors[i];\n          var points_1 = [];\n\n          for (var j = 0; j < interior.length; ++j) {\n            points_1.push(transformPoint(interior[j]));\n          }\n\n          compoundPath.shape.paths.push(new graphic.Polygon({\n            segmentIgnoreThreshold: 1,\n            shape: {\n              points: points_1\n            }\n          }));\n        }\n      });\n      compoundPath.setStyle(itemStyle);\n      compoundPath.style.strokeNoScale = true;\n      compoundPath.culling = true;\n      compoundPath.ensureState('emphasis').style = emphasisItemStyle;\n      compoundPath.ensureState('blur').style = blurItemStyle;\n      compoundPath.ensureState('select').style = selectItemStyle;\n      var showLabel = false;\n\n      for (var i = 0; i < DISPLAY_STATES.length; i++) {\n        var stateName = DISPLAY_STATES[i];\n\n        if (regionModel.get(stateName === 'normal' ? ['label', 'show'] : [stateName, 'label', 'show'])) {\n          showLabel = true;\n          break;\n        }\n      }\n\n      var isDataNaN = data && isNaN(data.get(data.mapDimension('value'), dataIdx));\n      var itemLayout = data && data.getItemLayout(dataIdx);\n\n      if (isGeo || isDataNaN && showLabel || itemLayout && itemLayout.showLabel) {\n        var query = !isGeo ? dataIdx : region.name;\n        var labelFetcher = void 0;\n\n        if (!data || dataIdx >= 0) {\n          labelFetcher = mapOrGeoModel;\n        }\n\n        var centerPt = transformPoint(region.center);\n        var textEl = new graphic.Text({\n          x: centerPt[0],\n          y: centerPt[1],\n          scaleX: 1 / group.scaleX,\n          scaleY: 1 / group.scaleY,\n          z2: 10,\n          silent: true\n        });\n        setLabelStyle(textEl, getLabelStatesModels(regionModel), {\n          labelFetcher: labelFetcher,\n          labelDataIndex: query,\n          defaultText: region.name\n        }, {\n          normal: {\n            align: 'center',\n            verticalAlign: 'middle'\n          }\n        });\n        compoundPath.setTextContent(textEl);\n        compoundPath.setTextConfig({\n          local: true\n        });\n        compoundPath.disableLabelAnimation = true;\n\n        if (!isFirstDraw) {\n          graphic.updateProps(textEl, {\n            scaleX: 1 / targetScaleX,\n            scaleY: 1 / targetScaleY\n          }, mapOrGeoModel);\n        }\n      }\n\n      if (data) {\n        data.setItemGraphicEl(dataIdx, regionGroup);\n      } else {\n        var regionModel_1 = mapOrGeoModel.getRegionModel(region.name);\n        getECData(compoundPath).eventData = {\n          componentType: 'geo',\n          componentIndex: mapOrGeoModel.componentIndex,\n          geoIndex: mapOrGeoModel.componentIndex,\n          name: region.name,\n          region: regionModel_1 && regionModel_1.option || {}\n        };\n      }\n\n      var groupRegions = regionGroup.__regions || (regionGroup.__regions = []);\n      groupRegions.push(region);\n      regionGroup.highDownSilentOnTouch = !!mapOrGeoModel.get('selectedMode');\n      enableHoverEmphasis(regionGroup, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n      regionsGroup.add(regionGroup);\n    });\n\n    this._updateController(mapOrGeoModel, ecModel, api);\n\n    this._updateMapSelectHandler(mapOrGeoModel, regionsGroup, api, fromView);\n  };\n\n  MapDraw.prototype.remove = function () {\n    this._regionsGroup.removeAll();\n\n    this._backgroundGroup.removeAll();\n\n    this._controller.dispose();\n\n    this._mapName && geoSourceManager.removeGraphic(this._mapName, this.uid);\n    this._mapName = null;\n    this._controllerHost = null;\n  };\n\n  MapDraw.prototype._updateBackground = function (geo) {\n    var mapName = geo.map;\n\n    if (this._mapName !== mapName) {\n      zrUtil.each(geoSourceManager.makeGraphic(mapName, this.uid), function (root) {\n        this._backgroundGroup.add(root);\n      }, this);\n    }\n\n    this._mapName = mapName;\n  };\n\n  MapDraw.prototype._updateController = function (mapOrGeoModel, ecModel, api) {\n    var geo = mapOrGeoModel.coordinateSystem;\n    var controller = this._controller;\n    var controllerHost = this._controllerHost;\n    controllerHost.zoomLimit = mapOrGeoModel.get('scaleLimit');\n    controllerHost.zoom = geo.getZoom();\n    controller.enable(mapOrGeoModel.get('roam') || false);\n    var mainType = mapOrGeoModel.mainType;\n\n    function makeActionBase() {\n      var action = {\n        type: 'geoRoam',\n        componentType: mainType\n      };\n      action[mainType + 'Id'] = mapOrGeoModel.id;\n      return action;\n    }\n\n    controller.off('pan').on('pan', function (e) {\n      this._mouseDownFlag = false;\n      roamHelper.updateViewOnPan(controllerHost, e.dx, e.dy);\n      api.dispatchAction(zrUtil.extend(makeActionBase(), {\n        dx: e.dx,\n        dy: e.dy\n      }));\n    }, this);\n    controller.off('zoom').on('zoom', function (e) {\n      this._mouseDownFlag = false;\n      roamHelper.updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\n      api.dispatchAction(zrUtil.extend(makeActionBase(), {\n        zoom: e.scale,\n        originX: e.originX,\n        originY: e.originY\n      }));\n      var group = this.group;\n\n      this._regionsGroup.traverse(function (el) {\n        var textContent = el.getTextContent();\n\n        if (textContent) {\n          textContent.scaleX = 1 / group.scaleX;\n          textContent.scaleY = 1 / group.scaleY;\n          textContent.markRedraw();\n        }\n      });\n    }, this);\n    controller.setPointerChecker(function (e, x, y) {\n      return geo.getViewRectAfterRoam().contain(x, y) && !onIrrelevantElement(e, api, mapOrGeoModel);\n    });\n  };\n\n  MapDraw.prototype._updateMapSelectHandler = function (mapOrGeoModel, regionsGroup, api, fromView) {\n    var mapDraw = this;\n    regionsGroup.off('mousedown');\n\n    if (mapOrGeoModel.get('selectedMode')) {\n      regionsGroup.on('mousedown', function () {\n        mapDraw._mouseDownFlag = true;\n      });\n      regionsGroup.on('click', function (e) {\n        if (!mapDraw._mouseDownFlag) {\n          return;\n        }\n\n        mapDraw._mouseDownFlag = false;\n      });\n    }\n  };\n\n  return MapDraw;\n}();\n\n;\nexport default MapDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport MapDraw from '../../component/helper/MapDraw';\nimport ChartView from '../../view/Chart';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { Z2_EMPHASIS_LIFT } from '../../util/states';\n;\n\nvar MapView = function (_super) {\n  __extends(MapView, _super);\n\n  function MapView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MapView.type;\n    return _this;\n  }\n\n  MapView.prototype.render = function (mapModel, ecModel, api, payload) {\n    if (payload && payload.type === 'mapToggleSelect' && payload.from === this.uid) {\n      return;\n    }\n\n    var group = this.group;\n    group.removeAll();\n\n    if (mapModel.getHostGeoModel()) {\n      return;\n    }\n\n    if (!(payload && payload.type === 'geoRoam' && payload.componentType === 'series' && payload.seriesId === mapModel.id)) {\n      if (mapModel.needsDrawMap) {\n        var mapDraw = this._mapDraw || new MapDraw(api);\n        group.add(mapDraw.group);\n        mapDraw.draw(mapModel, ecModel, api, this, payload);\n        this._mapDraw = mapDraw;\n      } else {\n        this._mapDraw && this._mapDraw.remove();\n        this._mapDraw = null;\n      }\n    } else {\n      var mapDraw = this._mapDraw;\n      mapDraw && group.add(mapDraw.group);\n    }\n\n    mapModel.get('showLegendSymbol') && ecModel.getComponent('legend') && this._renderSymbols(mapModel, ecModel, api);\n  };\n\n  MapView.prototype.remove = function () {\n    this._mapDraw && this._mapDraw.remove();\n    this._mapDraw = null;\n    this.group.removeAll();\n  };\n\n  MapView.prototype.dispose = function () {\n    this._mapDraw && this._mapDraw.remove();\n    this._mapDraw = null;\n  };\n\n  MapView.prototype._renderSymbols = function (mapModel, ecModel, api) {\n    var originalData = mapModel.originalData;\n    var group = this.group;\n    originalData.each(originalData.mapDimension('value'), function (value, originalDataIndex) {\n      if (isNaN(value)) {\n        return;\n      }\n\n      var layout = originalData.getItemLayout(originalDataIndex);\n\n      if (!layout || !layout.point) {\n        return;\n      }\n\n      var point = layout.point;\n      var offset = layout.offset;\n      var circle = new graphic.Circle({\n        style: {\n          fill: mapModel.getData().getVisual('style').fill\n        },\n        shape: {\n          cx: point[0] + offset * 9,\n          cy: point[1],\n          r: 3\n        },\n        silent: true,\n        z2: 8 + (!offset ? Z2_EMPHASIS_LIFT + 1 : 0)\n      });\n\n      if (!offset) {\n        var fullData = mapModel.mainSeries.getData();\n        var name_1 = originalData.getName(originalDataIndex);\n        var fullIndex_1 = fullData.indexOfName(name_1);\n        var itemModel = originalData.getItemModel(originalDataIndex);\n        var labelModel = itemModel.getModel('label');\n        var regionGroup = fullData.getItemGraphicEl(fullIndex_1);\n        setLabelStyle(circle, getLabelStatesModels(itemModel), {\n          labelFetcher: {\n            getFormattedLabel: function (idx, state) {\n              return mapModel.getFormattedLabel(fullIndex_1, state);\n            }\n          }\n        });\n        circle.disableLabelAnimation = true;\n\n        if (!labelModel.get('position')) {\n          circle.setTextConfig({\n            position: 'bottom'\n          });\n        }\n\n        regionGroup.onHoverStateChange = function (toState) {\n          circle.useState(toState);\n        };\n      }\n\n      group.add(circle);\n    });\n  };\n\n  MapView.type = 'map';\n  return MapView;\n}(ChartView);\n\nexport default MapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport createListSimply from '../helper/createListSimply';\nimport SeriesModel from '../../model/Series';\nimport geoSourceManager from '../../coord/geo/geoSourceManager';\nimport { makeSeriesEncodeForNameBased } from '../../data/helper/sourceHelper';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup';\n\nvar MapSeries = function (_super) {\n  __extends(MapSeries, _super);\n\n  function MapSeries() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MapSeries.type;\n    _this.needsDrawMap = false;\n    _this.seriesGroup = [];\n\n    _this.getTooltipPosition = function (dataIndex) {\n      if (dataIndex != null) {\n        var name_1 = this.getData().getName(dataIndex);\n        var geo = this.coordinateSystem;\n        var region = geo.getRegion(name_1);\n        return region && geo.dataToPoint(region.center);\n      }\n    };\n\n    return _this;\n  }\n\n  MapSeries.prototype.getInitialData = function (option) {\n    var data = createListSimply(this, {\n      coordDimensions: ['value'],\n      encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)\n    });\n    var dataNameMap = zrUtil.createHashMap();\n    var toAppendNames = [];\n\n    for (var i = 0, len = data.count(); i < len; i++) {\n      var name_2 = data.getName(i);\n      dataNameMap.set(name_2, true);\n    }\n\n    var geoSource = geoSourceManager.load(this.getMapType(), this.option.nameMap, this.option.nameProperty);\n    zrUtil.each(geoSource.regions, function (region) {\n      var name = region.name;\n\n      if (!dataNameMap.get(name)) {\n        toAppendNames.push(name);\n      }\n    });\n    data.appendValues([], toAppendNames);\n    return data;\n  };\n\n  MapSeries.prototype.getHostGeoModel = function () {\n    var geoIndex = this.option.geoIndex;\n    return geoIndex != null ? this.ecModel.getComponent('geo', geoIndex) : null;\n  };\n\n  MapSeries.prototype.getMapType = function () {\n    return (this.getHostGeoModel() || this).option.map;\n  };\n\n  MapSeries.prototype.getRawValue = function (dataIndex) {\n    var data = this.getData();\n    return data.get(data.mapDimension('value'), dataIndex);\n  };\n\n  MapSeries.prototype.getRegionModel = function (regionName) {\n    var data = this.getData();\n    return data.getItemModel(data.indexOfName(regionName));\n  };\n\n  MapSeries.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var data = this.getData();\n    var value = this.getRawValue(dataIndex);\n    var name = data.getName(dataIndex);\n    var seriesGroup = this.seriesGroup;\n    var seriesNames = [];\n\n    for (var i = 0; i < seriesGroup.length; i++) {\n      var otherIndex = seriesGroup[i].originalData.indexOfName(name);\n      var valueDim = data.mapDimension('value');\n\n      if (!isNaN(seriesGroup[i].originalData.get(valueDim, otherIndex))) {\n        seriesNames.push(seriesGroup[i].name);\n      }\n    }\n\n    return createTooltipMarkup('section', {\n      header: seriesNames.join(', '),\n      noHeader: !seriesNames.length,\n      blocks: [createTooltipMarkup('nameValue', {\n        name: name,\n        value: value\n      })]\n    });\n  };\n\n  MapSeries.prototype.setZoom = function (zoom) {\n    this.option.zoom = zoom;\n  };\n\n  MapSeries.prototype.setCenter = function (center) {\n    this.option.center = center;\n  };\n\n  MapSeries.type = 'series.map';\n  MapSeries.dependencies = ['geo'];\n  MapSeries.layoutMode = 'box';\n  MapSeries.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'geo',\n    map: '',\n    left: 'center',\n    top: 'center',\n    aspectScale: 0.75,\n    showLegendSymbol: true,\n    boundingCoords: null,\n    center: null,\n    zoom: 1,\n    scaleLimit: null,\n    selectedMode: true,\n    label: {\n      show: false,\n      color: '#000'\n    },\n    itemStyle: {\n      borderWidth: 0.5,\n      borderColor: '#444',\n      areaColor: '#eee'\n    },\n    emphasis: {\n      label: {\n        show: true,\n        color: 'rgb(100,0,0)'\n      },\n      itemStyle: {\n        areaColor: 'rgba(255,215,0,0.8)'\n      }\n    },\n    select: {\n      label: {\n        show: true,\n        color: 'rgb(100,0,0)'\n      },\n      itemStyle: {\n        color: 'rgba(255,215,0,0.8)'\n      }\n    },\n    nameProperty: 'name'\n  };\n  return MapSeries;\n}(SeriesModel);\n\nexport default MapSeries;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nfunction dataStatistics(datas, statisticType) {\n  var dataNameMap = {};\n  zrUtil.each(datas, function (data) {\n    data.each(data.mapDimension('value'), function (value, idx) {\n      var mapKey = 'ec-' + data.getName(idx);\n      dataNameMap[mapKey] = dataNameMap[mapKey] || [];\n\n      if (!isNaN(value)) {\n        dataNameMap[mapKey].push(value);\n      }\n    });\n  });\n  return datas[0].map(datas[0].mapDimension('value'), function (value, idx) {\n    var mapKey = 'ec-' + datas[0].getName(idx);\n    var sum = 0;\n    var min = Infinity;\n    var max = -Infinity;\n    var len = dataNameMap[mapKey].length;\n\n    for (var i = 0; i < len; i++) {\n      min = Math.min(min, dataNameMap[mapKey][i]);\n      max = Math.max(max, dataNameMap[mapKey][i]);\n      sum += dataNameMap[mapKey][i];\n    }\n\n    var result;\n\n    if (statisticType === 'min') {\n      result = min;\n    } else if (statisticType === 'max') {\n      result = max;\n    } else if (statisticType === 'average') {\n      result = sum / len;\n    } else {\n      result = sum;\n    }\n\n    return len === 0 ? NaN : result;\n  });\n}\n\nexport default function mapDataStatistic(ecModel) {\n  var seriesGroups = {};\n  ecModel.eachSeriesByType('map', function (seriesModel) {\n    var hostGeoModel = seriesModel.getHostGeoModel();\n    var key = hostGeoModel ? 'o' + hostGeoModel.id : 'i' + seriesModel.getMapType();\n    (seriesGroups[key] = seriesGroups[key] || []).push(seriesModel);\n  });\n  zrUtil.each(seriesGroups, function (seriesList, key) {\n    var data = dataStatistics(zrUtil.map(seriesList, function (seriesModel) {\n      return seriesModel.getData();\n    }), seriesList[0].get('mapValueCalculation'));\n\n    for (var i = 0; i < seriesList.length; i++) {\n      seriesList[i].originalData = seriesList[i].getData();\n    }\n\n    for (var i = 0; i < seriesList.length; i++) {\n      seriesList[i].seriesGroup = seriesList;\n      seriesList[i].needsDrawMap = i === 0 && !seriesList[i].getHostGeoModel();\n      seriesList[i].setData(data.cloneShallow());\n      seriesList[i].mainSeries = seriesList[0];\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function mapSymbolLayout(ecModel) {\n  var processedMapType = {};\n  ecModel.eachSeriesByType('map', function (mapSeries) {\n    var mapType = mapSeries.getMapType();\n\n    if (mapSeries.getHostGeoModel() || processedMapType[mapType]) {\n      return;\n    }\n\n    var mapSymbolOffsets = {};\n    zrUtil.each(mapSeries.seriesGroup, function (subMapSeries) {\n      var geo = subMapSeries.coordinateSystem;\n      var data = subMapSeries.originalData;\n\n      if (subMapSeries.get('showLegendSymbol') && ecModel.getComponent('legend')) {\n        data.each(data.mapDimension('value'), function (value, idx) {\n          var name = data.getName(idx);\n          var region = geo.getRegion(name);\n\n          if (!region || isNaN(value)) {\n            return;\n          }\n\n          var offset = mapSymbolOffsets[name] || 0;\n          var point = geo.dataToPoint(region.center);\n          mapSymbolOffsets[name] = offset + 1;\n          data.setItemLayout(idx, {\n            point: point,\n            offset: offset\n          });\n        });\n      }\n    });\n    var data = mapSeries.getData();\n    data.each(function (idx) {\n      var name = data.getName(idx);\n      var layout = data.getItemLayout(idx) || {};\n      layout.showLabel = !mapSymbolOffsets[name];\n      data.setItemLayout(idx, layout);\n    });\n    processedMapType[mapType] = true;\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport MapView from './MapView';\nimport MapSeries from './MapSeries';\nimport mapDataStatistic from './mapDataStatistic';\nimport mapSymbolLayout from './mapSymbolLayout';\nimport { createLegacyDataSelectAction } from '../../legacy/dataSelectAction';\nexport function install(registers) {\n  registers.registerChartView(MapView);\n  registers.registerSeriesModel(MapSeries);\n  registers.registerLayout(mapSymbolLayout);\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, mapDataStatistic);\n  createLegacyDataSelectAction('map', registers.registerAction);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as layout from '../../util/layout';\nexport function init(inRoot) {\n  var root = inRoot;\n  root.hierNode = {\n    defaultAncestor: null,\n    ancestor: root,\n    prelim: 0,\n    modifier: 0,\n    change: 0,\n    shift: 0,\n    i: 0,\n    thread: null\n  };\n  var nodes = [root];\n  var node;\n  var children;\n\n  while (node = nodes.pop()) {\n    children = node.children;\n\n    if (node.isExpand && children.length) {\n      var n = children.length;\n\n      for (var i = n - 1; i >= 0; i--) {\n        var child = children[i];\n        child.hierNode = {\n          defaultAncestor: null,\n          ancestor: child,\n          prelim: 0,\n          modifier: 0,\n          change: 0,\n          shift: 0,\n          i: i,\n          thread: null\n        };\n        nodes.push(child);\n      }\n    }\n  }\n}\nexport function firstWalk(node, separation) {\n  var children = node.isExpand ? node.children : [];\n  var siblings = node.parentNode.children;\n  var subtreeW = node.hierNode.i ? siblings[node.hierNode.i - 1] : null;\n\n  if (children.length) {\n    executeShifts(node);\n    var midPoint = (children[0].hierNode.prelim + children[children.length - 1].hierNode.prelim) / 2;\n\n    if (subtreeW) {\n      node.hierNode.prelim = subtreeW.hierNode.prelim + separation(node, subtreeW);\n      node.hierNode.modifier = node.hierNode.prelim - midPoint;\n    } else {\n      node.hierNode.prelim = midPoint;\n    }\n  } else if (subtreeW) {\n    node.hierNode.prelim = subtreeW.hierNode.prelim + separation(node, subtreeW);\n  }\n\n  node.parentNode.hierNode.defaultAncestor = apportion(node, subtreeW, node.parentNode.hierNode.defaultAncestor || siblings[0], separation);\n}\nexport function secondWalk(node) {\n  var nodeX = node.hierNode.prelim + node.parentNode.hierNode.modifier;\n  node.setLayout({\n    x: nodeX\n  }, true);\n  node.hierNode.modifier += node.parentNode.hierNode.modifier;\n}\nexport function separation(cb) {\n  return arguments.length ? cb : defaultSeparation;\n}\nexport function radialCoordinate(rad, r) {\n  rad -= Math.PI / 2;\n  return {\n    x: r * Math.cos(rad),\n    y: r * Math.sin(rad)\n  };\n}\nexport function getViewRect(seriesModel, api) {\n  return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n}\n\nfunction executeShifts(node) {\n  var children = node.children;\n  var n = children.length;\n  var shift = 0;\n  var change = 0;\n\n  while (--n >= 0) {\n    var child = children[n];\n    child.hierNode.prelim += shift;\n    child.hierNode.modifier += shift;\n    change += child.hierNode.change;\n    shift += child.hierNode.shift + change;\n  }\n}\n\nfunction apportion(subtreeV, subtreeW, ancestor, separation) {\n  if (subtreeW) {\n    var nodeOutRight = subtreeV;\n    var nodeInRight = subtreeV;\n    var nodeOutLeft = nodeInRight.parentNode.children[0];\n    var nodeInLeft = subtreeW;\n    var sumOutRight = nodeOutRight.hierNode.modifier;\n    var sumInRight = nodeInRight.hierNode.modifier;\n    var sumOutLeft = nodeOutLeft.hierNode.modifier;\n    var sumInLeft = nodeInLeft.hierNode.modifier;\n\n    while (nodeInLeft = nextRight(nodeInLeft), nodeInRight = nextLeft(nodeInRight), nodeInLeft && nodeInRight) {\n      nodeOutRight = nextRight(nodeOutRight);\n      nodeOutLeft = nextLeft(nodeOutLeft);\n      nodeOutRight.hierNode.ancestor = subtreeV;\n      var shift = nodeInLeft.hierNode.prelim + sumInLeft - nodeInRight.hierNode.prelim - sumInRight + separation(nodeInLeft, nodeInRight);\n\n      if (shift > 0) {\n        moveSubtree(nextAncestor(nodeInLeft, subtreeV, ancestor), subtreeV, shift);\n        sumInRight += shift;\n        sumOutRight += shift;\n      }\n\n      sumInLeft += nodeInLeft.hierNode.modifier;\n      sumInRight += nodeInRight.hierNode.modifier;\n      sumOutRight += nodeOutRight.hierNode.modifier;\n      sumOutLeft += nodeOutLeft.hierNode.modifier;\n    }\n\n    if (nodeInLeft && !nextRight(nodeOutRight)) {\n      nodeOutRight.hierNode.thread = nodeInLeft;\n      nodeOutRight.hierNode.modifier += sumInLeft - sumOutRight;\n    }\n\n    if (nodeInRight && !nextLeft(nodeOutLeft)) {\n      nodeOutLeft.hierNode.thread = nodeInRight;\n      nodeOutLeft.hierNode.modifier += sumInRight - sumOutLeft;\n      ancestor = subtreeV;\n    }\n  }\n\n  return ancestor;\n}\n\nfunction nextRight(node) {\n  var children = node.children;\n  return children.length && node.isExpand ? children[children.length - 1] : node.hierNode.thread;\n}\n\nfunction nextLeft(node) {\n  var children = node.children;\n  return children.length && node.isExpand ? children[0] : node.hierNode.thread;\n}\n\nfunction nextAncestor(nodeInLeft, node, ancestor) {\n  return nodeInLeft.hierNode.ancestor.parentNode === node.parentNode ? nodeInLeft.hierNode.ancestor : ancestor;\n}\n\nfunction moveSubtree(wl, wr, shift) {\n  var change = shift / (wr.hierNode.i - wl.hierNode.i);\n  wr.hierNode.change -= change;\n  wr.hierNode.shift += shift;\n  wr.hierNode.modifier += shift;\n  wr.hierNode.prelim += shift;\n  wl.hierNode.change += change;\n}\n\nfunction defaultSeparation(node1, node2) {\n  return node1.parentNode === node2.parentNode ? 1 : 2;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as vector from 'zrender/lib/core/vector';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport Transformable from 'zrender/lib/core/Transformable';\nvar v2ApplyTransform = vector.applyTransform;\n\nvar View = function (_super) {\n  __extends(View, _super);\n\n  function View(name) {\n    var _this = _super.call(this) || this;\n\n    _this.type = 'view';\n    _this.dimensions = ['x', 'y'];\n    _this._roamTransformable = new Transformable();\n    _this._rawTransformable = new Transformable();\n    _this.name = name;\n    return _this;\n  }\n\n  View.prototype.setBoundingRect = function (x, y, width, height) {\n    this._rect = new BoundingRect(x, y, width, height);\n    return this._rect;\n  };\n\n  View.prototype.getBoundingRect = function () {\n    return this._rect;\n  };\n\n  View.prototype.setViewRect = function (x, y, width, height) {\n    this.transformTo(x, y, width, height);\n    this._viewRect = new BoundingRect(x, y, width, height);\n  };\n\n  View.prototype.transformTo = function (x, y, width, height) {\n    var rect = this.getBoundingRect();\n    var rawTransform = this._rawTransformable;\n    rawTransform.transform = rect.calculateTransform(new BoundingRect(x, y, width, height));\n    rawTransform.decomposeTransform();\n\n    this._updateTransform();\n  };\n\n  View.prototype.setCenter = function (centerCoord) {\n    if (!centerCoord) {\n      return;\n    }\n\n    this._center = centerCoord;\n\n    this._updateCenterAndZoom();\n  };\n\n  View.prototype.setZoom = function (zoom) {\n    zoom = zoom || 1;\n    var zoomLimit = this.zoomLimit;\n\n    if (zoomLimit) {\n      if (zoomLimit.max != null) {\n        zoom = Math.min(zoomLimit.max, zoom);\n      }\n\n      if (zoomLimit.min != null) {\n        zoom = Math.max(zoomLimit.min, zoom);\n      }\n    }\n\n    this._zoom = zoom;\n\n    this._updateCenterAndZoom();\n  };\n\n  View.prototype.getDefaultCenter = function () {\n    var rawRect = this.getBoundingRect();\n    var cx = rawRect.x + rawRect.width / 2;\n    var cy = rawRect.y + rawRect.height / 2;\n    return [cx, cy];\n  };\n\n  View.prototype.getCenter = function () {\n    return this._center || this.getDefaultCenter();\n  };\n\n  View.prototype.getZoom = function () {\n    return this._zoom || 1;\n  };\n\n  View.prototype.getRoamTransform = function () {\n    return this._roamTransformable.getLocalTransform();\n  };\n\n  View.prototype._updateCenterAndZoom = function () {\n    var rawTransformMatrix = this._rawTransformable.getLocalTransform();\n\n    var roamTransform = this._roamTransformable;\n    var defaultCenter = this.getDefaultCenter();\n    var center = this.getCenter();\n    var zoom = this.getZoom();\n    center = vector.applyTransform([], center, rawTransformMatrix);\n    defaultCenter = vector.applyTransform([], defaultCenter, rawTransformMatrix);\n    roamTransform.originX = center[0];\n    roamTransform.originY = center[1];\n    roamTransform.x = defaultCenter[0] - center[0];\n    roamTransform.y = defaultCenter[1] - center[1];\n    roamTransform.scaleX = roamTransform.scaleY = zoom;\n\n    this._updateTransform();\n  };\n\n  View.prototype._updateTransform = function () {\n    var roamTransformable = this._roamTransformable;\n    var rawTransformable = this._rawTransformable;\n    rawTransformable.parent = roamTransformable;\n    roamTransformable.updateTransform();\n    rawTransformable.updateTransform();\n    matrix.copy(this.transform || (this.transform = []), rawTransformable.transform || matrix.create());\n    this._rawTransform = rawTransformable.getLocalTransform();\n    this.invTransform = this.invTransform || [];\n    matrix.invert(this.invTransform, this.transform);\n    this.decomposeTransform();\n  };\n\n  View.prototype.getTransformInfo = function () {\n    var roamTransform = this._roamTransformable.transform;\n    var rawTransformable = this._rawTransformable;\n    return {\n      roamTransform: roamTransform ? zrUtil.slice(roamTransform) : matrix.create(),\n      rawScaleX: rawTransformable.scaleX,\n      rawScaleY: rawTransformable.scaleY,\n      rawX: rawTransformable.x,\n      rawY: rawTransformable.y\n    };\n  };\n\n  View.prototype.getViewRect = function () {\n    return this._viewRect;\n  };\n\n  View.prototype.getViewRectAfterRoam = function () {\n    var rect = this.getBoundingRect().clone();\n    rect.applyTransform(this.transform);\n    return rect;\n  };\n\n  View.prototype.dataToPoint = function (data, noRoam, out) {\n    var transform = noRoam ? this._rawTransform : this.transform;\n    out = out || [];\n    return transform ? v2ApplyTransform(out, data, transform) : vector.copy(out, data);\n  };\n\n  View.prototype.pointToData = function (point) {\n    var invTransform = this.invTransform;\n    return invTransform ? v2ApplyTransform([], point, invTransform) : [point[0], point[1]];\n  };\n\n  View.prototype.convertToPixel = function (ecModel, finder, value) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? coordSys.dataToPoint(value) : null;\n  };\n\n  View.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? coordSys.pointToData(pixel) : null;\n  };\n\n  View.prototype.containPoint = function (point) {\n    return this.getViewRectAfterRoam().contain(point[0], point[1]);\n  };\n\n  View.dimensions = ['x', 'y'];\n  return View;\n}(Transformable);\n\nfunction getCoordSys(finder) {\n  var seriesModel = finder.seriesModel;\n  return seriesModel ? seriesModel.coordinateSystem : null;\n}\n\nexport default View;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport SymbolClz from '../helper/Symbol';\nimport { radialCoordinate } from './layoutHelper';\nimport * as bbox from 'zrender/lib/core/bbox';\nimport View from '../../coord/View';\nimport * as roamHelper from '../../component/helper/roamHelper';\nimport RoamController from '../../component/helper/RoamController';\nimport { onIrrelevantElement } from '../../component/helper/cursorHelper';\nimport { parsePercent } from '../../util/number';\nimport ChartView from '../../view/Chart';\nimport Path from 'zrender/lib/graphic/Path';\nimport { setStatesStylesFromModel, setStatesFlag, setDefaultStateProxy, HOVER_STATE_BLUR } from '../../util/states';\n\nvar TreeEdgeShape = function () {\n  function TreeEdgeShape() {\n    this.parentPoint = [];\n    this.childPoints = [];\n  }\n\n  return TreeEdgeShape;\n}();\n\nvar TreePath = function (_super) {\n  __extends(TreePath, _super);\n\n  function TreePath(opts) {\n    return _super.call(this, opts) || this;\n  }\n\n  TreePath.prototype.getDefaultStyle = function () {\n    return {\n      stroke: '#000',\n      fill: null\n    };\n  };\n\n  TreePath.prototype.getDefaultShape = function () {\n    return new TreeEdgeShape();\n  };\n\n  TreePath.prototype.buildPath = function (ctx, shape) {\n    var childPoints = shape.childPoints;\n    var childLen = childPoints.length;\n    var parentPoint = shape.parentPoint;\n    var firstChildPos = childPoints[0];\n    var lastChildPos = childPoints[childLen - 1];\n\n    if (childLen === 1) {\n      ctx.moveTo(parentPoint[0], parentPoint[1]);\n      ctx.lineTo(firstChildPos[0], firstChildPos[1]);\n      return;\n    }\n\n    var orient = shape.orient;\n    var forkDim = orient === 'TB' || orient === 'BT' ? 0 : 1;\n    var otherDim = 1 - forkDim;\n    var forkPosition = parsePercent(shape.forkPosition, 1);\n    var tmpPoint = [];\n    tmpPoint[forkDim] = parentPoint[forkDim];\n    tmpPoint[otherDim] = parentPoint[otherDim] + (lastChildPos[otherDim] - parentPoint[otherDim]) * forkPosition;\n    ctx.moveTo(parentPoint[0], parentPoint[1]);\n    ctx.lineTo(tmpPoint[0], tmpPoint[1]);\n    ctx.moveTo(firstChildPos[0], firstChildPos[1]);\n    tmpPoint[forkDim] = firstChildPos[forkDim];\n    ctx.lineTo(tmpPoint[0], tmpPoint[1]);\n    tmpPoint[forkDim] = lastChildPos[forkDim];\n    ctx.lineTo(tmpPoint[0], tmpPoint[1]);\n    ctx.lineTo(lastChildPos[0], lastChildPos[1]);\n\n    for (var i = 1; i < childLen - 1; i++) {\n      var point = childPoints[i];\n      ctx.moveTo(point[0], point[1]);\n      tmpPoint[forkDim] = point[forkDim];\n      ctx.lineTo(tmpPoint[0], tmpPoint[1]);\n    }\n  };\n\n  return TreePath;\n}(Path);\n\nvar TreeView = function (_super) {\n  __extends(TreeView, _super);\n\n  function TreeView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TreeView.type;\n    _this._mainGroup = new graphic.Group();\n    return _this;\n  }\n\n  TreeView.prototype.init = function (ecModel, api) {\n    this._controller = new RoamController(api.getZr());\n    this._controllerHost = {\n      target: this.group\n    };\n    this.group.add(this._mainGroup);\n  };\n\n  TreeView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    var layoutInfo = seriesModel.layoutInfo;\n    var group = this._mainGroup;\n    var layout = seriesModel.get('layout');\n\n    if (layout === 'radial') {\n      group.x = layoutInfo.x + layoutInfo.width / 2;\n      group.y = layoutInfo.y + layoutInfo.height / 2;\n    } else {\n      group.x = layoutInfo.x;\n      group.y = layoutInfo.y;\n    }\n\n    this._updateViewCoordSys(seriesModel);\n\n    this._updateController(seriesModel, ecModel, api);\n\n    var oldData = this._data;\n    data.diff(oldData).add(function (newIdx) {\n      if (symbolNeedsDraw(data, newIdx)) {\n        updateNode(data, newIdx, null, group, seriesModel);\n      }\n    }).update(function (newIdx, oldIdx) {\n      var symbolEl = oldData.getItemGraphicEl(oldIdx);\n\n      if (!symbolNeedsDraw(data, newIdx)) {\n        symbolEl && removeNode(oldData, oldIdx, symbolEl, group, seriesModel);\n        return;\n      }\n\n      updateNode(data, newIdx, symbolEl, group, seriesModel);\n    }).remove(function (oldIdx) {\n      var symbolEl = oldData.getItemGraphicEl(oldIdx);\n\n      if (symbolEl) {\n        removeNode(oldData, oldIdx, symbolEl, group, seriesModel);\n      }\n    }).execute();\n    this._nodeScaleRatio = seriesModel.get('nodeScaleRatio');\n\n    this._updateNodeAndLinkScale(seriesModel);\n\n    if (seriesModel.get('expandAndCollapse') === true) {\n      data.eachItemGraphicEl(function (el, dataIndex) {\n        el.off('click').on('click', function () {\n          api.dispatchAction({\n            type: 'treeExpandAndCollapse',\n            seriesId: seriesModel.id,\n            dataIndex: dataIndex\n          });\n        });\n      });\n    }\n\n    this._data = data;\n  };\n\n  TreeView.prototype._updateViewCoordSys = function (seriesModel) {\n    var data = seriesModel.getData();\n    var points = [];\n    data.each(function (idx) {\n      var layout = data.getItemLayout(idx);\n\n      if (layout && !isNaN(layout.x) && !isNaN(layout.y)) {\n        points.push([+layout.x, +layout.y]);\n      }\n    });\n    var min = [];\n    var max = [];\n    bbox.fromPoints(points, min, max);\n    var oldMin = this._min;\n    var oldMax = this._max;\n\n    if (max[0] - min[0] === 0) {\n      min[0] = oldMin ? oldMin[0] : min[0] - 1;\n      max[0] = oldMax ? oldMax[0] : max[0] + 1;\n    }\n\n    if (max[1] - min[1] === 0) {\n      min[1] = oldMin ? oldMin[1] : min[1] - 1;\n      max[1] = oldMax ? oldMax[1] : max[1] + 1;\n    }\n\n    var viewCoordSys = seriesModel.coordinateSystem = new View();\n    viewCoordSys.zoomLimit = seriesModel.get('scaleLimit');\n    viewCoordSys.setBoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n    viewCoordSys.setCenter(seriesModel.get('center'));\n    viewCoordSys.setZoom(seriesModel.get('zoom'));\n    this.group.attr({\n      x: viewCoordSys.x,\n      y: viewCoordSys.y,\n      scaleX: viewCoordSys.scaleX,\n      scaleY: viewCoordSys.scaleY\n    });\n    this._min = min;\n    this._max = max;\n  };\n\n  TreeView.prototype._updateController = function (seriesModel, ecModel, api) {\n    var _this = this;\n\n    var controller = this._controller;\n    var controllerHost = this._controllerHost;\n    var group = this.group;\n    controller.setPointerChecker(function (e, x, y) {\n      var rect = group.getBoundingRect();\n      rect.applyTransform(group.transform);\n      return rect.contain(x, y) && !onIrrelevantElement(e, api, seriesModel);\n    });\n    controller.enable(seriesModel.get('roam'));\n    controllerHost.zoomLimit = seriesModel.get('scaleLimit');\n    controllerHost.zoom = seriesModel.coordinateSystem.getZoom();\n    controller.off('pan').off('zoom').on('pan', function (e) {\n      roamHelper.updateViewOnPan(controllerHost, e.dx, e.dy);\n      api.dispatchAction({\n        seriesId: seriesModel.id,\n        type: 'treeRoam',\n        dx: e.dx,\n        dy: e.dy\n      });\n    }).on('zoom', function (e) {\n      roamHelper.updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\n      api.dispatchAction({\n        seriesId: seriesModel.id,\n        type: 'treeRoam',\n        zoom: e.scale,\n        originX: e.originX,\n        originY: e.originY\n      });\n\n      _this._updateNodeAndLinkScale(seriesModel);\n\n      api.updateLabelLayout();\n    });\n  };\n\n  TreeView.prototype._updateNodeAndLinkScale = function (seriesModel) {\n    var data = seriesModel.getData();\n\n    var nodeScale = this._getNodeGlobalScale(seriesModel);\n\n    data.eachItemGraphicEl(function (el, idx) {\n      el.setSymbolScale(nodeScale);\n    });\n  };\n\n  TreeView.prototype._getNodeGlobalScale = function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys.type !== 'view') {\n      return 1;\n    }\n\n    var nodeScaleRatio = this._nodeScaleRatio;\n    var groupZoom = coordSys.scaleX || 1;\n    var roamZoom = coordSys.getZoom();\n    var nodeScale = (roamZoom - 1) * nodeScaleRatio + 1;\n    return nodeScale / groupZoom;\n  };\n\n  TreeView.prototype.dispose = function () {\n    this._controller && this._controller.dispose();\n    this._controllerHost = null;\n  };\n\n  TreeView.prototype.remove = function () {\n    this._mainGroup.removeAll();\n\n    this._data = null;\n  };\n\n  TreeView.type = 'tree';\n  return TreeView;\n}(ChartView);\n\nfunction symbolNeedsDraw(data, dataIndex) {\n  var layout = data.getItemLayout(dataIndex);\n  return layout && !isNaN(layout.x) && !isNaN(layout.y);\n}\n\nfunction updateNode(data, dataIndex, symbolEl, group, seriesModel) {\n  var isInit = !symbolEl;\n  var node = data.tree.getNodeByDataIndex(dataIndex);\n  var itemModel = node.getModel();\n  var visualColor = node.getVisual('style').fill;\n  var symbolInnerColor = node.isExpand === false && node.children.length !== 0 ? visualColor : '#fff';\n  var virtualRoot = data.tree.root;\n  var source = node.parentNode === virtualRoot ? node : node.parentNode || node;\n  var sourceSymbolEl = data.getItemGraphicEl(source.dataIndex);\n  var sourceLayout = source.getLayout();\n  var sourceOldLayout = sourceSymbolEl ? {\n    x: sourceSymbolEl.__oldX,\n    y: sourceSymbolEl.__oldY,\n    rawX: sourceSymbolEl.__radialOldRawX,\n    rawY: sourceSymbolEl.__radialOldRawY\n  } : sourceLayout;\n  var targetLayout = node.getLayout();\n\n  if (isInit) {\n    symbolEl = new SymbolClz(data, dataIndex, null, {\n      symbolInnerColor: symbolInnerColor,\n      useNameLabel: true\n    });\n    symbolEl.x = sourceOldLayout.x;\n    symbolEl.y = sourceOldLayout.y;\n  } else {\n    symbolEl.updateData(data, dataIndex, null, {\n      symbolInnerColor: symbolInnerColor,\n      useNameLabel: true\n    });\n  }\n\n  symbolEl.__radialOldRawX = symbolEl.__radialRawX;\n  symbolEl.__radialOldRawY = symbolEl.__radialRawY;\n  symbolEl.__radialRawX = targetLayout.rawX;\n  symbolEl.__radialRawY = targetLayout.rawY;\n  group.add(symbolEl);\n  data.setItemGraphicEl(dataIndex, symbolEl);\n  symbolEl.__oldX = symbolEl.x;\n  symbolEl.__oldY = symbolEl.y;\n  graphic.updateProps(symbolEl, {\n    x: targetLayout.x,\n    y: targetLayout.y\n  }, seriesModel);\n  var symbolPath = symbolEl.getSymbolPath();\n\n  if (seriesModel.get('layout') === 'radial') {\n    var realRoot = virtualRoot.children[0];\n    var rootLayout = realRoot.getLayout();\n    var length_1 = realRoot.children.length;\n    var rad = void 0;\n    var isLeft = void 0;\n\n    if (targetLayout.x === rootLayout.x && node.isExpand === true) {\n      var center = {\n        x: (realRoot.children[0].getLayout().x + realRoot.children[length_1 - 1].getLayout().x) / 2,\n        y: (realRoot.children[0].getLayout().y + realRoot.children[length_1 - 1].getLayout().y) / 2\n      };\n      rad = Math.atan2(center.y - rootLayout.y, center.x - rootLayout.x);\n\n      if (rad < 0) {\n        rad = Math.PI * 2 + rad;\n      }\n\n      isLeft = center.x < rootLayout.x;\n\n      if (isLeft) {\n        rad = rad - Math.PI;\n      }\n    } else {\n      rad = Math.atan2(targetLayout.y - rootLayout.y, targetLayout.x - rootLayout.x);\n\n      if (rad < 0) {\n        rad = Math.PI * 2 + rad;\n      }\n\n      if (node.children.length === 0 || node.children.length !== 0 && node.isExpand === false) {\n        isLeft = targetLayout.x < rootLayout.x;\n\n        if (isLeft) {\n          rad = rad - Math.PI;\n        }\n      } else {\n        isLeft = targetLayout.x > rootLayout.x;\n\n        if (!isLeft) {\n          rad = rad - Math.PI;\n        }\n      }\n    }\n\n    var textPosition = isLeft ? 'left' : 'right';\n    var normalLabelModel = itemModel.getModel('label');\n    var rotate = normalLabelModel.get('rotate');\n    var labelRotateRadian = rotate * (Math.PI / 180);\n    var textContent = symbolPath.getTextContent();\n\n    if (textContent) {\n      symbolPath.setTextConfig({\n        position: normalLabelModel.get('position') || textPosition,\n        rotation: rotate == null ? -rad : labelRotateRadian,\n        origin: 'center'\n      });\n      textContent.setStyle('verticalAlign', 'middle');\n    }\n  }\n\n  var focus = itemModel.get(['emphasis', 'focus']);\n  var focusDataIndices = focus === 'ancestor' ? node.getAncestorsIndices() : focus === 'descendant' ? node.getDescendantIndices() : null;\n\n  if (focusDataIndices) {\n    getECData(symbolEl).focus = focusDataIndices;\n  }\n\n  drawEdge(seriesModel, node, virtualRoot, symbolEl, sourceOldLayout, sourceLayout, targetLayout, group);\n\n  if (symbolEl.__edge) {\n    symbolEl.onHoverStateChange = function (toState) {\n      if (toState !== 'blur') {\n        var parentEl = node.parentNode && data.getItemGraphicEl(node.parentNode.dataIndex);\n\n        if (!(parentEl && parentEl.hoverState === HOVER_STATE_BLUR)) {\n          setStatesFlag(symbolEl.__edge, toState);\n        }\n      }\n    };\n  }\n}\n\nfunction drawEdge(seriesModel, node, virtualRoot, symbolEl, sourceOldLayout, sourceLayout, targetLayout, group) {\n  var itemModel = node.getModel();\n  var edgeShape = seriesModel.get('edgeShape');\n  var layout = seriesModel.get('layout');\n  var orient = seriesModel.getOrient();\n  var curvature = seriesModel.get(['lineStyle', 'curveness']);\n  var edgeForkPosition = seriesModel.get('edgeForkPosition');\n  var lineStyle = itemModel.getModel('lineStyle').getLineStyle();\n  var edge = symbolEl.__edge;\n\n  if (edgeShape === 'curve') {\n    if (node.parentNode && node.parentNode !== virtualRoot) {\n      if (!edge) {\n        edge = symbolEl.__edge = new graphic.BezierCurve({\n          shape: getEdgeShape(layout, orient, curvature, sourceOldLayout, sourceOldLayout)\n        });\n      }\n\n      graphic.updateProps(edge, {\n        shape: getEdgeShape(layout, orient, curvature, sourceLayout, targetLayout)\n      }, seriesModel);\n    }\n  } else if (edgeShape === 'polyline') {\n    if (layout === 'orthogonal') {\n      if (node !== virtualRoot && node.children && node.children.length !== 0 && node.isExpand === true) {\n        var children = node.children;\n        var childPoints = [];\n\n        for (var i = 0; i < children.length; i++) {\n          var childLayout = children[i].getLayout();\n          childPoints.push([childLayout.x, childLayout.y]);\n        }\n\n        if (!edge) {\n          edge = symbolEl.__edge = new TreePath({\n            shape: {\n              parentPoint: [targetLayout.x, targetLayout.y],\n              childPoints: [[targetLayout.x, targetLayout.y]],\n              orient: orient,\n              forkPosition: edgeForkPosition\n            }\n          });\n        }\n\n        graphic.updateProps(edge, {\n          shape: {\n            parentPoint: [targetLayout.x, targetLayout.y],\n            childPoints: childPoints\n          }\n        }, seriesModel);\n      }\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        throw new Error('The polyline edgeShape can only be used in orthogonal layout');\n      }\n    }\n  }\n\n  if (edge) {\n    edge.useStyle(zrUtil.defaults({\n      strokeNoScale: true,\n      fill: null\n    }, lineStyle));\n    setStatesStylesFromModel(edge, itemModel, 'lineStyle');\n    setDefaultStateProxy(edge);\n    group.add(edge);\n  }\n}\n\nfunction removeNode(data, dataIndex, symbolEl, group, seriesModel) {\n  var node = data.tree.getNodeByDataIndex(dataIndex);\n  var virtualRoot = data.tree.root;\n  var source = node.parentNode === virtualRoot ? node : node.parentNode || node;\n  var sourceLayout;\n\n  while (sourceLayout = source.getLayout(), sourceLayout == null) {\n    source = source.parentNode === virtualRoot ? source : source.parentNode || source;\n  }\n\n  var removeAnimationOpt = {\n    duration: seriesModel.get('animationDurationUpdate'),\n    easing: seriesModel.get('animationEasingUpdate')\n  };\n  graphic.removeElement(symbolEl, {\n    x: sourceLayout.x + 1,\n    y: sourceLayout.y + 1\n  }, seriesModel, {\n    cb: function () {\n      group.remove(symbolEl);\n      data.setItemGraphicEl(dataIndex, null);\n    },\n    removeOpt: removeAnimationOpt\n  });\n  symbolEl.fadeOut(null, {\n    fadeLabel: true,\n    animation: removeAnimationOpt\n  });\n  var sourceSymbolEl = data.getItemGraphicEl(source.dataIndex);\n  var sourceEdge = sourceSymbolEl.__edge;\n  var edge = symbolEl.__edge || (source.isExpand === false || source.children.length === 1 ? sourceEdge : undefined);\n  var edgeShape = seriesModel.get('edgeShape');\n  var layoutOpt = seriesModel.get('layout');\n  var orient = seriesModel.get('orient');\n  var curvature = seriesModel.get(['lineStyle', 'curveness']);\n\n  if (edge) {\n    if (edgeShape === 'curve') {\n      graphic.removeElement(edge, {\n        shape: getEdgeShape(layoutOpt, orient, curvature, sourceLayout, sourceLayout),\n        style: {\n          opacity: 0\n        }\n      }, seriesModel, {\n        cb: function () {\n          group.remove(edge);\n        },\n        removeOpt: removeAnimationOpt\n      });\n    } else if (edgeShape === 'polyline' && seriesModel.get('layout') === 'orthogonal') {\n      graphic.removeElement(edge, {\n        shape: {\n          parentPoint: [sourceLayout.x, sourceLayout.y],\n          childPoints: [[sourceLayout.x, sourceLayout.y]]\n        },\n        style: {\n          opacity: 0\n        }\n      }, seriesModel, {\n        cb: function () {\n          group.remove(edge);\n        },\n        removeOpt: removeAnimationOpt\n      });\n    }\n  }\n}\n\nfunction getEdgeShape(layoutOpt, orient, curvature, sourceLayout, targetLayout) {\n  var cpx1;\n  var cpy1;\n  var cpx2;\n  var cpy2;\n  var x1;\n  var x2;\n  var y1;\n  var y2;\n\n  if (layoutOpt === 'radial') {\n    x1 = sourceLayout.rawX;\n    y1 = sourceLayout.rawY;\n    x2 = targetLayout.rawX;\n    y2 = targetLayout.rawY;\n    var radialCoor1 = radialCoordinate(x1, y1);\n    var radialCoor2 = radialCoordinate(x1, y1 + (y2 - y1) * curvature);\n    var radialCoor3 = radialCoordinate(x2, y2 + (y1 - y2) * curvature);\n    var radialCoor4 = radialCoordinate(x2, y2);\n    return {\n      x1: radialCoor1.x || 0,\n      y1: radialCoor1.y || 0,\n      x2: radialCoor4.x || 0,\n      y2: radialCoor4.y || 0,\n      cpx1: radialCoor2.x || 0,\n      cpy1: radialCoor2.y || 0,\n      cpx2: radialCoor3.x || 0,\n      cpy2: radialCoor3.y || 0\n    };\n  } else {\n    x1 = sourceLayout.x;\n    y1 = sourceLayout.y;\n    x2 = targetLayout.x;\n    y2 = targetLayout.y;\n\n    if (orient === 'LR' || orient === 'RL') {\n      cpx1 = x1 + (x2 - x1) * curvature;\n      cpy1 = y1;\n      cpx2 = x2 + (x1 - x2) * curvature;\n      cpy2 = y2;\n    }\n\n    if (orient === 'TB' || orient === 'BT') {\n      cpx1 = x1;\n      cpy1 = y1 + (y2 - y1) * curvature;\n      cpx2 = x2;\n      cpy2 = y2 + (y1 - y2) * curvature;\n    }\n  }\n\n  return {\n    x1: x1,\n    y1: y1,\n    x2: x2,\n    y2: y2,\n    cpx1: cpx1,\n    cpy1: cpy1,\n    cpx2: cpx2,\n    cpy2: cpy2\n  };\n}\n\nexport default TreeView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { curry, each, assert, extend, map, keys } from 'zrender/lib/core/util';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\n\nfunction linkList(opt) {\n  var mainData = opt.mainData;\n  var datas = opt.datas;\n\n  if (!datas) {\n    datas = {\n      main: mainData\n    };\n    opt.datasAttr = {\n      main: 'data'\n    };\n  }\n\n  opt.datas = opt.mainData = null;\n  linkAll(mainData, datas, opt);\n  each(datas, function (data) {\n    each(mainData.TRANSFERABLE_METHODS, function (methodName) {\n      data.wrapMethod(methodName, curry(transferInjection, opt));\n    });\n  });\n  mainData.wrapMethod('cloneShallow', curry(cloneShallowInjection, opt));\n  each(mainData.CHANGABLE_METHODS, function (methodName) {\n    mainData.wrapMethod(methodName, curry(changeInjection, opt));\n  });\n  assert(datas[mainData.dataType] === mainData);\n}\n\nfunction transferInjection(opt, res) {\n  if (isMainData(this)) {\n    var datas = extend({}, inner(this).datas);\n    datas[this.dataType] = res;\n    linkAll(res, datas, opt);\n  } else {\n    linkSingle(res, this.dataType, inner(this).mainData, opt);\n  }\n\n  return res;\n}\n\nfunction changeInjection(opt, res) {\n  opt.struct && opt.struct.update();\n  return res;\n}\n\nfunction cloneShallowInjection(opt, res) {\n  each(inner(res).datas, function (data, dataType) {\n    data !== res && linkSingle(data.cloneShallow(), dataType, res, opt);\n  });\n  return res;\n}\n\nfunction getLinkedData(dataType) {\n  var mainData = inner(this).mainData;\n  return dataType == null || mainData == null ? mainData : inner(mainData).datas[dataType];\n}\n\nfunction getLinkedDataAll() {\n  var mainData = inner(this).mainData;\n  return mainData == null ? [{\n    data: mainData\n  }] : map(keys(inner(mainData).datas), function (type) {\n    return {\n      type: type,\n      data: inner(mainData).datas[type]\n    };\n  });\n}\n\nfunction isMainData(data) {\n  return inner(data).mainData === data;\n}\n\nfunction linkAll(mainData, datas, opt) {\n  inner(mainData).datas = {};\n  each(datas, function (data, dataType) {\n    linkSingle(data, dataType, mainData, opt);\n  });\n}\n\nfunction linkSingle(data, dataType, mainData, opt) {\n  inner(mainData).datas[dataType] = data;\n  inner(data).mainData = mainData;\n  data.dataType = dataType;\n\n  if (opt.struct) {\n    data[opt.structAttr] = opt.struct;\n    opt.struct[opt.datasAttr[dataType]] = data;\n  }\n\n  data.getLinkedData = getLinkedData;\n  data.getLinkedDataAll = getLinkedDataAll;\n}\n\nexport default linkList;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport linkList from './helper/linkList';\nimport List from './List';\nimport createDimensions from './helper/createDimensions';\nimport { convertOptionIdName } from '../util/model';\n\nvar TreeNode = function () {\n  function TreeNode(name, hostTree) {\n    this.depth = 0;\n    this.height = 0;\n    this.dataIndex = -1;\n    this.children = [];\n    this.viewChildren = [];\n    this.isExpand = false;\n    this.name = name || '';\n    this.hostTree = hostTree;\n  }\n\n  TreeNode.prototype.isRemoved = function () {\n    return this.dataIndex < 0;\n  };\n\n  TreeNode.prototype.eachNode = function (options, cb, context) {\n    if (typeof options === 'function') {\n      context = cb;\n      cb = options;\n      options = null;\n    }\n\n    options = options || {};\n\n    if (zrUtil.isString(options)) {\n      options = {\n        order: options\n      };\n    }\n\n    var order = options.order || 'preorder';\n    var children = this[options.attr || 'children'];\n    var suppressVisitSub;\n    order === 'preorder' && (suppressVisitSub = cb.call(context, this));\n\n    for (var i = 0; !suppressVisitSub && i < children.length; i++) {\n      children[i].eachNode(options, cb, context);\n    }\n\n    order === 'postorder' && cb.call(context, this);\n  };\n\n  TreeNode.prototype.updateDepthAndHeight = function (depth) {\n    var height = 0;\n    this.depth = depth;\n\n    for (var i = 0; i < this.children.length; i++) {\n      var child = this.children[i];\n      child.updateDepthAndHeight(depth + 1);\n\n      if (child.height > height) {\n        height = child.height;\n      }\n    }\n\n    this.height = height + 1;\n  };\n\n  TreeNode.prototype.getNodeById = function (id) {\n    if (this.getId() === id) {\n      return this;\n    }\n\n    for (var i = 0, children = this.children, len = children.length; i < len; i++) {\n      var res = children[i].getNodeById(id);\n\n      if (res) {\n        return res;\n      }\n    }\n  };\n\n  TreeNode.prototype.contains = function (node) {\n    if (node === this) {\n      return true;\n    }\n\n    for (var i = 0, children = this.children, len = children.length; i < len; i++) {\n      var res = children[i].contains(node);\n\n      if (res) {\n        return res;\n      }\n    }\n  };\n\n  TreeNode.prototype.getAncestors = function (includeSelf) {\n    var ancestors = [];\n    var node = includeSelf ? this : this.parentNode;\n\n    while (node) {\n      ancestors.push(node);\n      node = node.parentNode;\n    }\n\n    ancestors.reverse();\n    return ancestors;\n  };\n\n  TreeNode.prototype.getAncestorsIndices = function () {\n    var indices = [];\n    var currNode = this;\n\n    while (currNode) {\n      indices.push(currNode.dataIndex);\n      currNode = currNode.parentNode;\n    }\n\n    indices.reverse();\n    return indices;\n  };\n\n  TreeNode.prototype.getDescendantIndices = function () {\n    var indices = [];\n    this.eachNode(function (childNode) {\n      indices.push(childNode.dataIndex);\n    });\n    return indices;\n  };\n\n  TreeNode.prototype.getValue = function (dimension) {\n    var data = this.hostTree.data;\n    return data.get(data.getDimension(dimension || 'value'), this.dataIndex);\n  };\n\n  TreeNode.prototype.setLayout = function (layout, merge) {\n    this.dataIndex >= 0 && this.hostTree.data.setItemLayout(this.dataIndex, layout, merge);\n  };\n\n  TreeNode.prototype.getLayout = function () {\n    return this.hostTree.data.getItemLayout(this.dataIndex);\n  };\n\n  TreeNode.prototype.getModel = function (path) {\n    if (this.dataIndex < 0) {\n      return;\n    }\n\n    var hostTree = this.hostTree;\n    var itemModel = hostTree.data.getItemModel(this.dataIndex);\n    return itemModel.getModel(path);\n  };\n\n  TreeNode.prototype.getLevelModel = function () {\n    return (this.hostTree.levelModels || [])[this.depth];\n  };\n\n  TreeNode.prototype.setVisual = function (key, value) {\n    this.dataIndex >= 0 && this.hostTree.data.setItemVisual(this.dataIndex, key, value);\n  };\n\n  TreeNode.prototype.getVisual = function (key) {\n    return this.hostTree.data.getItemVisual(this.dataIndex, key);\n  };\n\n  TreeNode.prototype.getRawIndex = function () {\n    return this.hostTree.data.getRawIndex(this.dataIndex);\n  };\n\n  TreeNode.prototype.getId = function () {\n    return this.hostTree.data.getId(this.dataIndex);\n  };\n\n  TreeNode.prototype.isAncestorOf = function (node) {\n    var parent = node.parentNode;\n\n    while (parent) {\n      if (parent === this) {\n        return true;\n      }\n\n      parent = parent.parentNode;\n    }\n\n    return false;\n  };\n\n  TreeNode.prototype.isDescendantOf = function (node) {\n    return node !== this && node.isAncestorOf(this);\n  };\n\n  return TreeNode;\n}();\n\nexport { TreeNode };\n;\n\nvar Tree = function () {\n  function Tree(hostModel) {\n    this.type = 'tree';\n    this._nodes = [];\n    this.hostModel = hostModel;\n  }\n\n  Tree.prototype.eachNode = function (options, cb, context) {\n    this.root.eachNode(options, cb, context);\n  };\n\n  Tree.prototype.getNodeByDataIndex = function (dataIndex) {\n    var rawIndex = this.data.getRawIndex(dataIndex);\n    return this._nodes[rawIndex];\n  };\n\n  Tree.prototype.getNodeById = function (name) {\n    return this.root.getNodeById(name);\n  };\n\n  Tree.prototype.update = function () {\n    var data = this.data;\n    var nodes = this._nodes;\n\n    for (var i = 0, len = nodes.length; i < len; i++) {\n      nodes[i].dataIndex = -1;\n    }\n\n    for (var i = 0, len = data.count(); i < len; i++) {\n      nodes[data.getRawIndex(i)].dataIndex = i;\n    }\n  };\n\n  Tree.prototype.clearLayouts = function () {\n    this.data.clearItemLayouts();\n  };\n\n  Tree.createTree = function (dataRoot, hostModel, beforeLink) {\n    var tree = new Tree(hostModel);\n    var listData = [];\n    var dimMax = 1;\n    buildHierarchy(dataRoot);\n\n    function buildHierarchy(dataNode, parentNode) {\n      var value = dataNode.value;\n      dimMax = Math.max(dimMax, zrUtil.isArray(value) ? value.length : 1);\n      listData.push(dataNode);\n      var node = new TreeNode(convertOptionIdName(dataNode.name, ''), tree);\n      parentNode ? addChild(node, parentNode) : tree.root = node;\n\n      tree._nodes.push(node);\n\n      var children = dataNode.children;\n\n      if (children) {\n        for (var i = 0; i < children.length; i++) {\n          buildHierarchy(children[i], node);\n        }\n      }\n    }\n\n    tree.root.updateDepthAndHeight(0);\n    var dimensionsInfo = createDimensions(listData, {\n      coordDimensions: ['value'],\n      dimensionsCount: dimMax\n    });\n    var list = new List(dimensionsInfo, hostModel);\n    list.initData(listData);\n    beforeLink && beforeLink(list);\n    linkList({\n      mainData: list,\n      struct: tree,\n      structAttr: 'tree'\n    });\n    tree.update();\n    return tree;\n  };\n\n  return Tree;\n}();\n\nfunction addChild(child, node) {\n  var children = node.children;\n\n  if (child.parentNode === node) {\n    return;\n  }\n\n  children.push(child);\n  child.parentNode = node;\n}\n\nexport default Tree;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport Tree from '../../data/Tree';\nimport Model from '../../model/Model';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup';\n\nvar TreeSeriesModel = function (_super) {\n  __extends(TreeSeriesModel, _super);\n\n  function TreeSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.hasSymbolVisual = true;\n    _this.ignoreStyleOnData = true;\n    return _this;\n  }\n\n  TreeSeriesModel.prototype.getInitialData = function (option) {\n    var root = {\n      name: option.name,\n      children: option.data\n    };\n    var leaves = option.leaves || {};\n    var leavesModel = new Model(leaves, this, this.ecModel);\n    var tree = Tree.createTree(root, this, beforeLink);\n\n    function beforeLink(nodeData) {\n      nodeData.wrapMethod('getItemModel', function (model, idx) {\n        var node = tree.getNodeByDataIndex(idx);\n\n        if (!node.children.length || !node.isExpand) {\n          model.parentModel = leavesModel;\n        }\n\n        return model;\n      });\n    }\n\n    var treeDepth = 0;\n    tree.eachNode('preorder', function (node) {\n      if (node.depth > treeDepth) {\n        treeDepth = node.depth;\n      }\n    });\n    var expandAndCollapse = option.expandAndCollapse;\n    var expandTreeDepth = expandAndCollapse && option.initialTreeDepth >= 0 ? option.initialTreeDepth : treeDepth;\n    tree.root.eachNode('preorder', function (node) {\n      var item = node.hostTree.data.getRawDataItem(node.dataIndex);\n      node.isExpand = item && item.collapsed != null ? !item.collapsed : node.depth <= expandTreeDepth;\n    });\n    return tree.data;\n  };\n\n  TreeSeriesModel.prototype.getOrient = function () {\n    var orient = this.get('orient');\n\n    if (orient === 'horizontal') {\n      orient = 'LR';\n    } else if (orient === 'vertical') {\n      orient = 'TB';\n    }\n\n    return orient;\n  };\n\n  TreeSeriesModel.prototype.setZoom = function (zoom) {\n    this.option.zoom = zoom;\n  };\n\n  TreeSeriesModel.prototype.setCenter = function (center) {\n    this.option.center = center;\n  };\n\n  TreeSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var tree = this.getData().tree;\n    var realRoot = tree.root.children[0];\n    var node = tree.getNodeByDataIndex(dataIndex);\n    var value = node.getValue();\n    var name = node.name;\n\n    while (node && node !== realRoot) {\n      name = node.parentNode.name + '.' + name;\n      node = node.parentNode;\n    }\n\n    return createTooltipMarkup('nameValue', {\n      name: name,\n      value: value,\n      noValue: isNaN(value) || value == null\n    });\n  };\n\n  TreeSeriesModel.type = 'series.tree';\n  TreeSeriesModel.layoutMode = 'box';\n  TreeSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'view',\n    left: '12%',\n    top: '12%',\n    right: '12%',\n    bottom: '12%',\n    layout: 'orthogonal',\n    edgeShape: 'curve',\n    edgeForkPosition: '50%',\n    roam: false,\n    nodeScaleRatio: 0.4,\n    center: null,\n    zoom: 1,\n    orient: 'LR',\n    symbol: 'emptyCircle',\n    symbolSize: 7,\n    expandAndCollapse: true,\n    initialTreeDepth: 2,\n    lineStyle: {\n      color: '#ccc',\n      width: 1.5,\n      curveness: 0.5\n    },\n    itemStyle: {\n      color: 'lightsteelblue',\n      borderColor: '#c23531',\n      borderWidth: 1.5\n    },\n    label: {\n      show: true\n    },\n    animationEasing: 'linear',\n    animationDuration: 700,\n    animationDurationUpdate: 500\n  };\n  return TreeSeriesModel;\n}(SeriesModel);\n\nexport default TreeSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nfunction eachAfter(root, callback, separation) {\n  var nodes = [root];\n  var next = [];\n  var node;\n\n  while (node = nodes.pop()) {\n    next.push(node);\n\n    if (node.isExpand) {\n      var children = node.children;\n\n      if (children.length) {\n        for (var i = 0; i < children.length; i++) {\n          nodes.push(children[i]);\n        }\n      }\n    }\n  }\n\n  while (node = next.pop()) {\n    callback(node, separation);\n  }\n}\n\nfunction eachBefore(root, callback) {\n  var nodes = [root];\n  var node;\n\n  while (node = nodes.pop()) {\n    callback(node);\n\n    if (node.isExpand) {\n      var children = node.children;\n\n      if (children.length) {\n        for (var i = children.length - 1; i >= 0; i--) {\n          nodes.push(children[i]);\n        }\n      }\n    }\n  }\n}\n\nexport { eachAfter, eachBefore };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { eachAfter, eachBefore } from './traversalHelper';\nimport { init, firstWalk, secondWalk, separation as sep, radialCoordinate, getViewRect } from './layoutHelper';\nexport default function treeLayout(ecModel, api) {\n  ecModel.eachSeriesByType('tree', function (seriesModel) {\n    commonLayout(seriesModel, api);\n  });\n}\n\nfunction commonLayout(seriesModel, api) {\n  var layoutInfo = getViewRect(seriesModel, api);\n  seriesModel.layoutInfo = layoutInfo;\n  var layout = seriesModel.get('layout');\n  var width = 0;\n  var height = 0;\n  var separation = null;\n\n  if (layout === 'radial') {\n    width = 2 * Math.PI;\n    height = Math.min(layoutInfo.height, layoutInfo.width) / 2;\n    separation = sep(function (node1, node2) {\n      return (node1.parentNode === node2.parentNode ? 1 : 2) / node1.depth;\n    });\n  } else {\n    width = layoutInfo.width;\n    height = layoutInfo.height;\n    separation = sep();\n  }\n\n  var virtualRoot = seriesModel.getData().tree.root;\n  var realRoot = virtualRoot.children[0];\n\n  if (realRoot) {\n    init(virtualRoot);\n    eachAfter(realRoot, firstWalk, separation);\n    virtualRoot.hierNode.modifier = -realRoot.hierNode.prelim;\n    eachBefore(realRoot, secondWalk);\n    var left_1 = realRoot;\n    var right_1 = realRoot;\n    var bottom_1 = realRoot;\n    eachBefore(realRoot, function (node) {\n      var x = node.getLayout().x;\n\n      if (x < left_1.getLayout().x) {\n        left_1 = node;\n      }\n\n      if (x > right_1.getLayout().x) {\n        right_1 = node;\n      }\n\n      if (node.depth > bottom_1.depth) {\n        bottom_1 = node;\n      }\n    });\n    var delta = left_1 === right_1 ? 1 : separation(left_1, right_1) / 2;\n    var tx_1 = delta - left_1.getLayout().x;\n    var kx_1 = 0;\n    var ky_1 = 0;\n    var coorX_1 = 0;\n    var coorY_1 = 0;\n\n    if (layout === 'radial') {\n      kx_1 = width / (right_1.getLayout().x + delta + tx_1);\n      ky_1 = height / (bottom_1.depth - 1 || 1);\n      eachBefore(realRoot, function (node) {\n        coorX_1 = (node.getLayout().x + tx_1) * kx_1;\n        coorY_1 = (node.depth - 1) * ky_1;\n        var finalCoor = radialCoordinate(coorX_1, coorY_1);\n        node.setLayout({\n          x: finalCoor.x,\n          y: finalCoor.y,\n          rawX: coorX_1,\n          rawY: coorY_1\n        }, true);\n      });\n    } else {\n      var orient_1 = seriesModel.getOrient();\n\n      if (orient_1 === 'RL' || orient_1 === 'LR') {\n        ky_1 = height / (right_1.getLayout().x + delta + tx_1);\n        kx_1 = width / (bottom_1.depth - 1 || 1);\n        eachBefore(realRoot, function (node) {\n          coorY_1 = (node.getLayout().x + tx_1) * ky_1;\n          coorX_1 = orient_1 === 'LR' ? (node.depth - 1) * kx_1 : width - (node.depth - 1) * kx_1;\n          node.setLayout({\n            x: coorX_1,\n            y: coorY_1\n          }, true);\n        });\n      } else if (orient_1 === 'TB' || orient_1 === 'BT') {\n        kx_1 = width / (right_1.getLayout().x + delta + tx_1);\n        ky_1 = height / (bottom_1.depth - 1 || 1);\n        eachBefore(realRoot, function (node) {\n          coorX_1 = (node.getLayout().x + tx_1) * kx_1;\n          coorY_1 = orient_1 === 'TB' ? (node.depth - 1) * ky_1 : height - (node.depth - 1) * ky_1;\n          node.setLayout({\n            x: coorX_1,\n            y: coorY_1\n          }, true);\n        });\n      }\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { extend } from 'zrender/lib/core/util';\nexport default function treeVisual(ecModel) {\n  ecModel.eachSeriesByType('tree', function (seriesModel) {\n    var data = seriesModel.getData();\n    var tree = data.tree;\n    tree.eachNode(function (node) {\n      var model = node.getModel();\n      var style = model.getModel('itemStyle').getItemStyle();\n      var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, 'style');\n      extend(existsStyle, style);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function updateCenterAndZoom(view, payload, zoomLimit) {\n  var previousZoom = view.getZoom();\n  var center = view.getCenter();\n  var zoom = payload.zoom;\n  var point = view.dataToPoint(center);\n\n  if (payload.dx != null && payload.dy != null) {\n    point[0] -= payload.dx;\n    point[1] -= payload.dy;\n    view.setCenter(view.pointToData(point));\n  }\n\n  if (zoom != null) {\n    if (zoomLimit) {\n      var zoomMin = zoomLimit.min || 0;\n      var zoomMax = zoomLimit.max || Infinity;\n      zoom = Math.max(Math.min(previousZoom * zoom, zoomMax), zoomMin) / previousZoom;\n    }\n\n    view.scaleX *= zoom;\n    view.scaleY *= zoom;\n    var fixX = (payload.originX - view.x) * (zoom - 1);\n    var fixY = (payload.originY - view.y) * (zoom - 1);\n    view.x -= fixX;\n    view.y -= fixY;\n    view.updateTransform();\n    view.setCenter(view.pointToData(point));\n    view.setZoom(zoom * previousZoom);\n  }\n\n  return {\n    center: view.getCenter(),\n    zoom: view.getZoom()\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { updateCenterAndZoom } from '../../action/roamHelper';\nexport function installTreeAction(registers) {\n  registers.registerAction({\n    type: 'treeExpandAndCollapse',\n    event: 'treeExpandAndCollapse',\n    update: 'update'\n  }, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'tree',\n      query: payload\n    }, function (seriesModel) {\n      var dataIndex = payload.dataIndex;\n      var tree = seriesModel.getData().tree;\n      var node = tree.getNodeByDataIndex(dataIndex);\n      node.isExpand = !node.isExpand;\n    });\n  });\n  registers.registerAction({\n    type: 'treeRoam',\n    event: 'treeRoam',\n    update: 'none'\n  }, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'tree',\n      query: payload\n    }, function (seriesModel) {\n      var coordSys = seriesModel.coordinateSystem;\n      var res = updateCenterAndZoom(coordSys, payload);\n      seriesModel.setCenter && seriesModel.setCenter(res.center);\n      seriesModel.setZoom && seriesModel.setZoom(res.zoom);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport TreeView from './TreeView';\nimport TreeSeriesModel from './TreeSeries';\nimport treeLayout from './treeLayout';\nimport treeVisual from './treeVisual';\nimport { installTreeAction } from './treeAction';\nexport function install(registers) {\n  registers.registerChartView(TreeView);\n  registers.registerSeriesModel(TreeSeriesModel);\n  registers.registerLayout(treeLayout);\n  registers.registerVisual(treeVisual);\n  installTreeAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport function retrieveTargetInfo(payload, validPayloadTypes, seriesModel) {\n  if (payload && zrUtil.indexOf(validPayloadTypes, payload.type) >= 0) {\n    var root = seriesModel.getData().tree.root;\n    var targetNode = payload.targetNode;\n\n    if (typeof targetNode === 'string') {\n      targetNode = root.getNodeById(targetNode);\n    }\n\n    if (targetNode && root.contains(targetNode)) {\n      return {\n        node: targetNode\n      };\n    }\n\n    var targetNodeId = payload.targetNodeId;\n\n    if (targetNodeId != null && (targetNode = root.getNodeById(targetNodeId))) {\n      return {\n        node: targetNode\n      };\n    }\n  }\n}\nexport function getPathToRoot(node) {\n  var path = [];\n\n  while (node) {\n    node = node.parentNode;\n    node && path.push(node);\n  }\n\n  return path.reverse();\n}\nexport function aboveViewRoot(viewRoot, node) {\n  var viewPath = getPathToRoot(viewRoot);\n  return zrUtil.indexOf(viewPath, node) >= 0;\n}\nexport function wrapTreePathInfo(node, seriesModel) {\n  var treePathInfo = [];\n\n  while (node) {\n    var nodeDataIndex = node.dataIndex;\n    treePathInfo.push({\n      name: node.name,\n      dataIndex: nodeDataIndex,\n      value: seriesModel.getRawValue(nodeDataIndex)\n    });\n    node = node.parentNode;\n  }\n\n  treePathInfo.reverse();\n  return treePathInfo;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as helper from '../helper/treeHelper';\n\nvar noop = function () {};\n\nvar actionTypes = ['treemapZoomToNode', 'treemapRender', 'treemapMove'];\nexport function installTreemapAction(registers) {\n  for (var i = 0; i < actionTypes.length; i++) {\n    registers.registerAction({\n      type: actionTypes[i],\n      update: 'updateView'\n    }, noop);\n  }\n\n  registers.registerAction({\n    type: 'treemapRootToNode',\n    update: 'updateView'\n  }, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'treemap',\n      query: payload\n    }, handleRootToNode);\n\n    function handleRootToNode(model, index) {\n      var types = ['treemapZoomToNode', 'treemapRootToNode'];\n      var targetInfo = helper.retrieveTargetInfo(payload, types, model);\n\n      if (targetInfo) {\n        var originViewRoot = model.getViewRoot();\n\n        if (originViewRoot) {\n          payload.direction = helper.aboveViewRoot(originViewRoot, targetInfo.node) ? 'rollUp' : 'drillDown';\n        }\n\n        model.resetViewRoot(targetInfo.node);\n      }\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { getDecalFromPalette } from '../../model/mixin/palette';\nexport default function enableAriaDecalForTree(seriesModel) {\n  var data = seriesModel.getData();\n  var tree = data.tree;\n  var decalPaletteScope = {};\n  tree.eachNode(function (node) {\n    var current = node;\n\n    while (current && current.depth > 1) {\n      current = current.parentNode;\n    }\n\n    var decal = getDecalFromPalette(seriesModel.ecModel, current.name || current.dataIndex + '', decalPaletteScope);\n    node.setVisual('decal', decal);\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport SeriesModel from '../../model/Series';\nimport Tree from '../../data/Tree';\nimport Model from '../../model/Model';\nimport { wrapTreePathInfo } from '../helper/treeHelper';\nimport { normalizeToArray } from '../../util/model';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup';\nimport enableAriaDecalForTree from '../helper/enableAriaDecalForTree';\n\nvar TreemapSeriesModel = function (_super) {\n  __extends(TreemapSeriesModel, _super);\n\n  function TreemapSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TreemapSeriesModel.type;\n    _this.preventUsingHoverLayer = true;\n    return _this;\n  }\n\n  TreemapSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    var root = {\n      name: option.name,\n      children: option.data\n    };\n    completeTreeValue(root);\n    var levels = option.levels || [];\n    var designatedVisualItemStyle = this.designatedVisualItemStyle = {};\n    var designatedVisualModel = new Model({\n      itemStyle: designatedVisualItemStyle\n    }, this, ecModel);\n    levels = option.levels = setDefault(levels, ecModel);\n    var levelModels = zrUtil.map(levels || [], function (levelDefine) {\n      return new Model(levelDefine, designatedVisualModel, ecModel);\n    }, this);\n    var tree = Tree.createTree(root, this, beforeLink);\n\n    function beforeLink(nodeData) {\n      nodeData.wrapMethod('getItemModel', function (model, idx) {\n        var node = tree.getNodeByDataIndex(idx);\n        var levelModel = levelModels[node.depth];\n        model.parentModel = levelModel || designatedVisualModel;\n        return model;\n      });\n    }\n\n    return tree.data;\n  };\n\n  TreemapSeriesModel.prototype.optionUpdated = function () {\n    this.resetViewRoot();\n  };\n\n  TreemapSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var data = this.getData();\n    var value = this.getRawValue(dataIndex);\n    var name = data.getName(dataIndex);\n    return createTooltipMarkup('nameValue', {\n      name: name,\n      value: value\n    });\n  };\n\n  TreemapSeriesModel.prototype.getDataParams = function (dataIndex) {\n    var params = _super.prototype.getDataParams.apply(this, arguments);\n\n    var node = this.getData().tree.getNodeByDataIndex(dataIndex);\n    params.treePathInfo = wrapTreePathInfo(node, this);\n    return params;\n  };\n\n  TreemapSeriesModel.prototype.setLayoutInfo = function (layoutInfo) {\n    this.layoutInfo = this.layoutInfo || {};\n    zrUtil.extend(this.layoutInfo, layoutInfo);\n  };\n\n  TreemapSeriesModel.prototype.mapIdToIndex = function (id) {\n    var idIndexMap = this._idIndexMap;\n\n    if (!idIndexMap) {\n      idIndexMap = this._idIndexMap = zrUtil.createHashMap();\n      this._idIndexMapCount = 0;\n    }\n\n    var index = idIndexMap.get(id);\n\n    if (index == null) {\n      idIndexMap.set(id, index = this._idIndexMapCount++);\n    }\n\n    return index;\n  };\n\n  TreemapSeriesModel.prototype.getViewRoot = function () {\n    return this._viewRoot;\n  };\n\n  TreemapSeriesModel.prototype.resetViewRoot = function (viewRoot) {\n    viewRoot ? this._viewRoot = viewRoot : viewRoot = this._viewRoot;\n    var root = this.getRawData().tree.root;\n\n    if (!viewRoot || viewRoot !== root && !root.contains(viewRoot)) {\n      this._viewRoot = root;\n    }\n  };\n\n  TreemapSeriesModel.prototype.enableAriaDecal = function () {\n    enableAriaDecalForTree(this);\n  };\n\n  TreemapSeriesModel.type = 'series.treemap';\n  TreemapSeriesModel.layoutMode = 'box';\n  TreemapSeriesModel.defaultOption = {\n    progressive: 0,\n    left: 'center',\n    top: 'middle',\n    width: '80%',\n    height: '80%',\n    sort: true,\n    clipWindow: 'origin',\n    squareRatio: 0.5 * (1 + Math.sqrt(5)),\n    leafDepth: null,\n    drillDownIcon: '▶',\n    zoomToNodeRatio: 0.32 * 0.32,\n    roam: true,\n    nodeClick: 'zoomToNode',\n    animation: true,\n    animationDurationUpdate: 900,\n    animationEasing: 'quinticInOut',\n    breadcrumb: {\n      show: true,\n      height: 22,\n      left: 'center',\n      top: 'bottom',\n      emptyItemWidth: 25,\n      itemStyle: {\n        color: 'rgba(0,0,0,0.7)',\n        textStyle: {\n          color: '#fff'\n        }\n      }\n    },\n    label: {\n      show: true,\n      distance: 0,\n      padding: 5,\n      position: 'inside',\n      color: '#fff',\n      overflow: 'truncate'\n    },\n    upperLabel: {\n      show: false,\n      position: [0, '50%'],\n      height: 20,\n      overflow: 'truncate',\n      verticalAlign: 'middle'\n    },\n    itemStyle: {\n      color: null,\n      colorAlpha: null,\n      colorSaturation: null,\n      borderWidth: 0,\n      gapWidth: 0,\n      borderColor: '#fff',\n      borderColorSaturation: null\n    },\n    emphasis: {\n      upperLabel: {\n        show: true,\n        position: [0, '50%'],\n        ellipsis: true,\n        verticalAlign: 'middle'\n      }\n    },\n    visualDimension: 0,\n    visualMin: null,\n    visualMax: null,\n    color: [],\n    colorAlpha: null,\n    colorSaturation: null,\n    colorMappingBy: 'index',\n    visibleMin: 10,\n    childrenVisibleMin: null,\n    levels: []\n  };\n  return TreemapSeriesModel;\n}(SeriesModel);\n\nfunction completeTreeValue(dataNode) {\n  var sum = 0;\n  zrUtil.each(dataNode.children, function (child) {\n    completeTreeValue(child);\n    var childValue = child.value;\n    zrUtil.isArray(childValue) && (childValue = childValue[0]);\n    sum += childValue;\n  });\n  var thisValue = dataNode.value;\n\n  if (zrUtil.isArray(thisValue)) {\n    thisValue = thisValue[0];\n  }\n\n  if (thisValue == null || isNaN(thisValue)) {\n    thisValue = sum;\n  }\n\n  if (thisValue < 0) {\n    thisValue = 0;\n  }\n\n  zrUtil.isArray(dataNode.value) ? dataNode.value[0] = thisValue : dataNode.value = thisValue;\n}\n\nfunction setDefault(levels, ecModel) {\n  var globalColorList = normalizeToArray(ecModel.get('color'));\n  var globalDecalList = normalizeToArray(ecModel.get(['aria', 'decal', 'decals']));\n\n  if (!globalColorList) {\n    return;\n  }\n\n  levels = levels || [];\n  var hasColorDefine;\n  var hasDecalDefine;\n  zrUtil.each(levels, function (levelDefine) {\n    var model = new Model(levelDefine);\n    var modelColor = model.get('color');\n    var modelDecal = model.get('decal');\n\n    if (model.get(['itemStyle', 'color']) || modelColor && modelColor !== 'none') {\n      hasColorDefine = true;\n    }\n\n    if (model.get(['itemStyle', 'decal']) || modelDecal && modelDecal !== 'none') {\n      hasDecalDefine = true;\n    }\n  });\n  var level0 = levels[0] || (levels[0] = {});\n\n  if (!hasColorDefine) {\n    level0.color = globalColorList.slice();\n  }\n\n  if (!hasDecalDefine && globalDecalList) {\n    level0.decal = globalDecalList.slice();\n  }\n\n  return levels;\n}\n\nexport default TreemapSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport * as layout from '../../util/layout';\nimport { wrapTreePathInfo } from '../helper/treeHelper';\nimport { curry, defaults } from 'zrender/lib/core/util';\nimport { convertOptionIdName } from '../../util/model';\nvar TEXT_PADDING = 8;\nvar ITEM_GAP = 8;\nvar ARRAY_LENGTH = 5;\n\nvar Breadcrumb = function () {\n  function Breadcrumb(containerGroup) {\n    this.group = new graphic.Group();\n    containerGroup.add(this.group);\n  }\n\n  Breadcrumb.prototype.render = function (seriesModel, api, targetNode, onSelect) {\n    var model = seriesModel.getModel('breadcrumb');\n    var thisGroup = this.group;\n    thisGroup.removeAll();\n\n    if (!model.get('show') || !targetNode) {\n      return;\n    }\n\n    var normalStyleModel = model.getModel('itemStyle');\n    var textStyleModel = normalStyleModel.getModel('textStyle');\n    var layoutParam = {\n      pos: {\n        left: model.get('left'),\n        right: model.get('right'),\n        top: model.get('top'),\n        bottom: model.get('bottom')\n      },\n      box: {\n        width: api.getWidth(),\n        height: api.getHeight()\n      },\n      emptyItemWidth: model.get('emptyItemWidth'),\n      totalWidth: 0,\n      renderList: []\n    };\n\n    this._prepare(targetNode, layoutParam, textStyleModel);\n\n    this._renderContent(seriesModel, layoutParam, normalStyleModel, textStyleModel, onSelect);\n\n    layout.positionElement(thisGroup, layoutParam.pos, layoutParam.box);\n  };\n\n  Breadcrumb.prototype._prepare = function (targetNode, layoutParam, textStyleModel) {\n    for (var node = targetNode; node; node = node.parentNode) {\n      var text = convertOptionIdName(node.getModel().get('name'), '');\n      var textRect = textStyleModel.getTextRect(text);\n      var itemWidth = Math.max(textRect.width + TEXT_PADDING * 2, layoutParam.emptyItemWidth);\n      layoutParam.totalWidth += itemWidth + ITEM_GAP;\n      layoutParam.renderList.push({\n        node: node,\n        text: text,\n        width: itemWidth\n      });\n    }\n  };\n\n  Breadcrumb.prototype._renderContent = function (seriesModel, layoutParam, normalStyleModel, textStyleModel, onSelect) {\n    var lastX = 0;\n    var emptyItemWidth = layoutParam.emptyItemWidth;\n    var height = seriesModel.get(['breadcrumb', 'height']);\n    var availableSize = layout.getAvailableSize(layoutParam.pos, layoutParam.box);\n    var totalWidth = layoutParam.totalWidth;\n    var renderList = layoutParam.renderList;\n\n    for (var i = renderList.length - 1; i >= 0; i--) {\n      var item = renderList[i];\n      var itemNode = item.node;\n      var itemWidth = item.width;\n      var text = item.text;\n\n      if (totalWidth > availableSize.width) {\n        totalWidth -= itemWidth - emptyItemWidth;\n        itemWidth = emptyItemWidth;\n        text = null;\n      }\n\n      var el = new graphic.Polygon({\n        shape: {\n          points: makeItemPoints(lastX, 0, itemWidth, height, i === renderList.length - 1, i === 0)\n        },\n        style: defaults(normalStyleModel.getItemStyle(), {\n          lineJoin: 'bevel'\n        }),\n        textContent: new graphic.Text({\n          style: {\n            text: text,\n            fill: textStyleModel.getTextColor(),\n            font: textStyleModel.getFont()\n          }\n        }),\n        textConfig: {\n          position: 'inside'\n        },\n        z: 10,\n        onclick: curry(onSelect, itemNode)\n      });\n      el.disableLabelAnimation = true;\n      this.group.add(el);\n      packEventData(el, seriesModel, itemNode);\n      lastX += itemWidth + ITEM_GAP;\n    }\n  };\n\n  Breadcrumb.prototype.remove = function () {\n    this.group.removeAll();\n  };\n\n  return Breadcrumb;\n}();\n\nfunction makeItemPoints(x, y, itemWidth, itemHeight, head, tail) {\n  var points = [[head ? x : x - ARRAY_LENGTH, y], [x + itemWidth, y], [x + itemWidth, y + itemHeight], [head ? x : x - ARRAY_LENGTH, y + itemHeight]];\n  !tail && points.splice(2, 0, [x + itemWidth + ARRAY_LENGTH, y + itemHeight / 2]);\n  !head && points.push([x, y + itemHeight / 2]);\n  return points;\n}\n\nfunction packEventData(el, seriesModel, itemNode) {\n  getECData(el).eventData = {\n    componentType: 'series',\n    componentSubType: 'treemap',\n    componentIndex: seriesModel.componentIndex,\n    seriesIndex: seriesModel.componentIndex,\n    seriesName: seriesModel.name,\n    seriesType: 'treemap',\n    selfType: 'breadcrumb',\n    nodeData: {\n      dataIndex: itemNode && itemNode.dataIndex,\n      name: itemNode && itemNode.name\n    },\n    treePathInfo: itemNode && wrapTreePathInfo(itemNode, seriesModel)\n  };\n}\n\nexport default Breadcrumb;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar AnimationWrap = function () {\n  function AnimationWrap() {\n    this._storage = [];\n    this._elExistsMap = {};\n  }\n\n  AnimationWrap.prototype.add = function (el, target, duration, delay, easing) {\n    if (this._elExistsMap[el.id]) {\n      return false;\n    }\n\n    this._elExistsMap[el.id] = true;\n\n    this._storage.push({\n      el: el,\n      target: target,\n      duration: duration,\n      delay: delay,\n      easing: easing\n    });\n\n    return true;\n  };\n\n  AnimationWrap.prototype.finished = function (callback) {\n    this._finishedCallback = callback;\n    return this;\n  };\n\n  AnimationWrap.prototype.start = function () {\n    var _this = this;\n\n    var count = this._storage.length;\n\n    var checkTerminate = function () {\n      count--;\n\n      if (count <= 0) {\n        _this._storage.length = 0;\n        _this._elExistsMap = {};\n        _this._finishedCallback && _this._finishedCallback();\n      }\n    };\n\n    for (var i = 0, len = this._storage.length; i < len; i++) {\n      var item = this._storage[i];\n      item.el.animateTo(item.target, {\n        duration: item.duration,\n        delay: item.delay,\n        easing: item.easing,\n        setToFinal: true,\n        done: checkTerminate,\n        aborted: checkTerminate\n      });\n    }\n\n    return this;\n  };\n\n  return AnimationWrap;\n}();\n\nexport function createWrap() {\n  return new AnimationWrap();\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { bind, each, indexOf, curry, extend, retrieve, normalizeCssArray, isFunction } from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { isHighDownDispatcher, setAsHighDownDispatcher, setDefaultStateProxy, enableHoverFocus } from '../../util/states';\nimport DataDiffer from '../../data/DataDiffer';\nimport * as helper from '../helper/treeHelper';\nimport Breadcrumb from './Breadcrumb';\nimport RoamController from '../../component/helper/RoamController';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport * as animationUtil from '../../util/animation';\nimport makeStyleMapper from '../../model/mixin/makeStyleMapper';\nimport ChartView from '../../view/Chart';\nimport Displayable from 'zrender/lib/graphic/Displayable';\nimport { makeInner, convertOptionIdName } from '../../util/model';\nimport { windowOpen } from '../../util/format';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nvar Group = graphic.Group;\nvar Rect = graphic.Rect;\nvar DRAG_THRESHOLD = 3;\nvar PATH_LABEL_NOAMAL = 'label';\nvar PATH_UPPERLABEL_NORMAL = 'upperLabel';\nvar Z_BASE = 10;\nvar Z_BG = 1;\nvar Z_CONTENT = 2;\nvar getStateItemStyle = makeStyleMapper([['fill', 'color'], ['stroke', 'strokeColor'], ['lineWidth', 'strokeWidth'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor']]);\n\nvar getItemStyleNormal = function (model) {\n  var itemStyle = getStateItemStyle(model);\n  itemStyle.stroke = itemStyle.fill = itemStyle.lineWidth = null;\n  return itemStyle;\n};\n\nvar inner = makeInner();\n\nvar TreemapView = function (_super) {\n  __extends(TreemapView, _super);\n\n  function TreemapView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TreemapView.type;\n    _this._state = 'ready';\n    _this._storage = createStorage();\n    return _this;\n  }\n\n  TreemapView.prototype.render = function (seriesModel, ecModel, api, payload) {\n    var models = ecModel.findComponents({\n      mainType: 'series',\n      subType: 'treemap',\n      query: payload\n    });\n\n    if (indexOf(models, seriesModel) < 0) {\n      return;\n    }\n\n    this.seriesModel = seriesModel;\n    this.api = api;\n    this.ecModel = ecModel;\n    var types = ['treemapZoomToNode', 'treemapRootToNode'];\n    var targetInfo = helper.retrieveTargetInfo(payload, types, seriesModel);\n    var payloadType = payload && payload.type;\n    var layoutInfo = seriesModel.layoutInfo;\n    var isInit = !this._oldTree;\n    var thisStorage = this._storage;\n    var reRoot = payloadType === 'treemapRootToNode' && targetInfo && thisStorage ? {\n      rootNodeGroup: thisStorage.nodeGroup[targetInfo.node.getRawIndex()],\n      direction: payload.direction\n    } : null;\n\n    var containerGroup = this._giveContainerGroup(layoutInfo);\n\n    var renderResult = this._doRender(containerGroup, seriesModel, reRoot);\n\n    !isInit && (!payloadType || payloadType === 'treemapZoomToNode' || payloadType === 'treemapRootToNode') ? this._doAnimation(containerGroup, renderResult, seriesModel, reRoot) : renderResult.renderFinally();\n\n    this._resetController(api);\n\n    this._renderBreadcrumb(seriesModel, api, targetInfo);\n  };\n\n  TreemapView.prototype._giveContainerGroup = function (layoutInfo) {\n    var containerGroup = this._containerGroup;\n\n    if (!containerGroup) {\n      containerGroup = this._containerGroup = new Group();\n\n      this._initEvents(containerGroup);\n\n      this.group.add(containerGroup);\n    }\n\n    containerGroup.x = layoutInfo.x;\n    containerGroup.y = layoutInfo.y;\n    return containerGroup;\n  };\n\n  TreemapView.prototype._doRender = function (containerGroup, seriesModel, reRoot) {\n    var thisTree = seriesModel.getData().tree;\n    var oldTree = this._oldTree;\n    var lastsForAnimation = createStorage();\n    var thisStorage = createStorage();\n    var oldStorage = this._storage;\n    var willInvisibleEls = [];\n\n    function doRenderNode(thisNode, oldNode, parentGroup, depth) {\n      return renderNode(seriesModel, thisStorage, oldStorage, reRoot, lastsForAnimation, willInvisibleEls, thisNode, oldNode, parentGroup, depth);\n    }\n\n    dualTravel(thisTree.root ? [thisTree.root] : [], oldTree && oldTree.root ? [oldTree.root] : [], containerGroup, thisTree === oldTree || !oldTree, 0);\n    var willDeleteEls = clearStorage(oldStorage);\n    this._oldTree = thisTree;\n    this._storage = thisStorage;\n    return {\n      lastsForAnimation: lastsForAnimation,\n      willDeleteEls: willDeleteEls,\n      renderFinally: renderFinally\n    };\n\n    function dualTravel(thisViewChildren, oldViewChildren, parentGroup, sameTree, depth) {\n      if (sameTree) {\n        oldViewChildren = thisViewChildren;\n        each(thisViewChildren, function (child, index) {\n          !child.isRemoved() && processNode(index, index);\n        });\n      } else {\n        new DataDiffer(oldViewChildren, thisViewChildren, getKey, getKey).add(processNode).update(processNode).remove(curry(processNode, null)).execute();\n      }\n\n      function getKey(node) {\n        return node.getId();\n      }\n\n      function processNode(newIndex, oldIndex) {\n        var thisNode = newIndex != null ? thisViewChildren[newIndex] : null;\n        var oldNode = oldIndex != null ? oldViewChildren[oldIndex] : null;\n        var group = doRenderNode(thisNode, oldNode, parentGroup, depth);\n        group && dualTravel(thisNode && thisNode.viewChildren || [], oldNode && oldNode.viewChildren || [], group, sameTree, depth + 1);\n      }\n    }\n\n    function clearStorage(storage) {\n      var willDeleteEls = createStorage();\n      storage && each(storage, function (store, storageName) {\n        var delEls = willDeleteEls[storageName];\n        each(store, function (el) {\n          el && (delEls.push(el), inner(el).willDelete = true);\n        });\n      });\n      return willDeleteEls;\n    }\n\n    function renderFinally() {\n      each(willDeleteEls, function (els) {\n        each(els, function (el) {\n          el.parent && el.parent.remove(el);\n        });\n      });\n      each(willInvisibleEls, function (el) {\n        el.invisible = true;\n        el.dirty();\n      });\n    }\n  };\n\n  TreemapView.prototype._doAnimation = function (containerGroup, renderResult, seriesModel, reRoot) {\n    if (!seriesModel.get('animation')) {\n      return;\n    }\n\n    var durationOption = seriesModel.get('animationDurationUpdate');\n    var easingOption = seriesModel.get('animationEasing');\n    var duration = (isFunction(durationOption) ? 0 : durationOption) || 0;\n    var easing = (isFunction(easingOption) ? null : easingOption) || 'cubicOut';\n    var animationWrap = animationUtil.createWrap();\n    each(renderResult.willDeleteEls, function (store, storageName) {\n      each(store, function (el, rawIndex) {\n        if (el.invisible) {\n          return;\n        }\n\n        var parent = el.parent;\n        var target;\n        var innerStore = inner(parent);\n\n        if (reRoot && reRoot.direction === 'drillDown') {\n          target = parent === reRoot.rootNodeGroup ? {\n            shape: {\n              x: 0,\n              y: 0,\n              width: innerStore.nodeWidth,\n              height: innerStore.nodeHeight\n            },\n            style: {\n              opacity: 0\n            }\n          } : {\n            style: {\n              opacity: 0\n            }\n          };\n        } else {\n          var targetX = 0;\n          var targetY = 0;\n\n          if (!innerStore.willDelete) {\n            targetX = innerStore.nodeWidth / 2;\n            targetY = innerStore.nodeHeight / 2;\n          }\n\n          target = storageName === 'nodeGroup' ? {\n            x: targetX,\n            y: targetY,\n            style: {\n              opacity: 0\n            }\n          } : {\n            shape: {\n              x: targetX,\n              y: targetY,\n              width: 0,\n              height: 0\n            },\n            style: {\n              opacity: 0\n            }\n          };\n        }\n\n        target && animationWrap.add(el, target, duration, 0, easing);\n      });\n    });\n    each(this._storage, function (store, storageName) {\n      each(store, function (el, rawIndex) {\n        var last = renderResult.lastsForAnimation[storageName][rawIndex];\n        var target = {};\n\n        if (!last) {\n          return;\n        }\n\n        if (el instanceof graphic.Group) {\n          if (last.oldX != null) {\n            target.x = el.x;\n            target.y = el.y;\n            el.x = last.oldX;\n            el.y = last.oldY;\n          }\n        } else {\n          if (last.oldShape) {\n            target.shape = extend({}, el.shape);\n            el.setShape(last.oldShape);\n          }\n\n          if (last.fadein) {\n            el.setStyle('opacity', 0);\n            target.style = {\n              opacity: 1\n            };\n          } else if (el.style.opacity !== 1) {\n            target.style = {\n              opacity: 1\n            };\n          }\n        }\n\n        animationWrap.add(el, target, duration, 0, easing);\n      });\n    }, this);\n    this._state = 'animating';\n    animationWrap.finished(bind(function () {\n      this._state = 'ready';\n      renderResult.renderFinally();\n    }, this)).start();\n  };\n\n  TreemapView.prototype._resetController = function (api) {\n    var controller = this._controller;\n\n    if (!controller) {\n      controller = this._controller = new RoamController(api.getZr());\n      controller.enable(this.seriesModel.get('roam'));\n      controller.on('pan', bind(this._onPan, this));\n      controller.on('zoom', bind(this._onZoom, this));\n    }\n\n    var rect = new BoundingRect(0, 0, api.getWidth(), api.getHeight());\n    controller.setPointerChecker(function (e, x, y) {\n      return rect.contain(x, y);\n    });\n  };\n\n  TreemapView.prototype._clearController = function () {\n    var controller = this._controller;\n\n    if (controller) {\n      controller.dispose();\n      controller = null;\n    }\n  };\n\n  TreemapView.prototype._onPan = function (e) {\n    if (this._state !== 'animating' && (Math.abs(e.dx) > DRAG_THRESHOLD || Math.abs(e.dy) > DRAG_THRESHOLD)) {\n      var root = this.seriesModel.getData().tree.root;\n\n      if (!root) {\n        return;\n      }\n\n      var rootLayout = root.getLayout();\n\n      if (!rootLayout) {\n        return;\n      }\n\n      this.api.dispatchAction({\n        type: 'treemapMove',\n        from: this.uid,\n        seriesId: this.seriesModel.id,\n        rootRect: {\n          x: rootLayout.x + e.dx,\n          y: rootLayout.y + e.dy,\n          width: rootLayout.width,\n          height: rootLayout.height\n        }\n      });\n    }\n  };\n\n  TreemapView.prototype._onZoom = function (e) {\n    var mouseX = e.originX;\n    var mouseY = e.originY;\n\n    if (this._state !== 'animating') {\n      var root = this.seriesModel.getData().tree.root;\n\n      if (!root) {\n        return;\n      }\n\n      var rootLayout = root.getLayout();\n\n      if (!rootLayout) {\n        return;\n      }\n\n      var rect = new BoundingRect(rootLayout.x, rootLayout.y, rootLayout.width, rootLayout.height);\n      var layoutInfo = this.seriesModel.layoutInfo;\n      mouseX -= layoutInfo.x;\n      mouseY -= layoutInfo.y;\n      var m = matrix.create();\n      matrix.translate(m, m, [-mouseX, -mouseY]);\n      matrix.scale(m, m, [e.scale, e.scale]);\n      matrix.translate(m, m, [mouseX, mouseY]);\n      rect.applyTransform(m);\n      this.api.dispatchAction({\n        type: 'treemapRender',\n        from: this.uid,\n        seriesId: this.seriesModel.id,\n        rootRect: {\n          x: rect.x,\n          y: rect.y,\n          width: rect.width,\n          height: rect.height\n        }\n      });\n    }\n  };\n\n  TreemapView.prototype._initEvents = function (containerGroup) {\n    var _this = this;\n\n    containerGroup.on('click', function (e) {\n      if (_this._state !== 'ready') {\n        return;\n      }\n\n      var nodeClick = _this.seriesModel.get('nodeClick', true);\n\n      if (!nodeClick) {\n        return;\n      }\n\n      var targetInfo = _this.findTarget(e.offsetX, e.offsetY);\n\n      if (!targetInfo) {\n        return;\n      }\n\n      var node = targetInfo.node;\n\n      if (node.getLayout().isLeafRoot) {\n        _this._rootToNode(targetInfo);\n      } else {\n        if (nodeClick === 'zoomToNode') {\n          _this._zoomToNode(targetInfo);\n        } else if (nodeClick === 'link') {\n          var itemModel = node.hostTree.data.getItemModel(node.dataIndex);\n          var link = itemModel.get('link', true);\n          var linkTarget = itemModel.get('target', true) || 'blank';\n          link && windowOpen(link, linkTarget);\n        }\n      }\n    }, this);\n  };\n\n  TreemapView.prototype._renderBreadcrumb = function (seriesModel, api, targetInfo) {\n    var _this = this;\n\n    if (!targetInfo) {\n      targetInfo = seriesModel.get('leafDepth', true) != null ? {\n        node: seriesModel.getViewRoot()\n      } : this.findTarget(api.getWidth() / 2, api.getHeight() / 2);\n\n      if (!targetInfo) {\n        targetInfo = {\n          node: seriesModel.getData().tree.root\n        };\n      }\n    }\n\n    (this._breadcrumb || (this._breadcrumb = new Breadcrumb(this.group))).render(seriesModel, api, targetInfo.node, function (node) {\n      if (_this._state !== 'animating') {\n        helper.aboveViewRoot(seriesModel.getViewRoot(), node) ? _this._rootToNode({\n          node: node\n        }) : _this._zoomToNode({\n          node: node\n        });\n      }\n    });\n  };\n\n  TreemapView.prototype.remove = function () {\n    this._clearController();\n\n    this._containerGroup && this._containerGroup.removeAll();\n    this._storage = createStorage();\n    this._state = 'ready';\n    this._breadcrumb && this._breadcrumb.remove();\n  };\n\n  TreemapView.prototype.dispose = function () {\n    this._clearController();\n  };\n\n  TreemapView.prototype._zoomToNode = function (targetInfo) {\n    this.api.dispatchAction({\n      type: 'treemapZoomToNode',\n      from: this.uid,\n      seriesId: this.seriesModel.id,\n      targetNode: targetInfo.node\n    });\n  };\n\n  TreemapView.prototype._rootToNode = function (targetInfo) {\n    this.api.dispatchAction({\n      type: 'treemapRootToNode',\n      from: this.uid,\n      seriesId: this.seriesModel.id,\n      targetNode: targetInfo.node\n    });\n  };\n\n  TreemapView.prototype.findTarget = function (x, y) {\n    var targetInfo;\n    var viewRoot = this.seriesModel.getViewRoot();\n    viewRoot.eachNode({\n      attr: 'viewChildren',\n      order: 'preorder'\n    }, function (node) {\n      var bgEl = this._storage.background[node.getRawIndex()];\n\n      if (bgEl) {\n        var point = bgEl.transformCoordToLocal(x, y);\n        var shape = bgEl.shape;\n\n        if (shape.x <= point[0] && point[0] <= shape.x + shape.width && shape.y <= point[1] && point[1] <= shape.y + shape.height) {\n          targetInfo = {\n            node: node,\n            offsetX: point[0],\n            offsetY: point[1]\n          };\n        } else {\n          return false;\n        }\n      }\n    }, this);\n    return targetInfo;\n  };\n\n  TreemapView.type = 'treemap';\n  return TreemapView;\n}(ChartView);\n\nfunction createStorage() {\n  return {\n    nodeGroup: [],\n    background: [],\n    content: []\n  };\n}\n\nfunction renderNode(seriesModel, thisStorage, oldStorage, reRoot, lastsForAnimation, willInvisibleEls, thisNode, oldNode, parentGroup, depth) {\n  if (!thisNode) {\n    return;\n  }\n\n  var thisLayout = thisNode.getLayout();\n  var data = seriesModel.getData();\n  var nodeModel = thisNode.getModel();\n  data.setItemGraphicEl(thisNode.dataIndex, null);\n\n  if (!thisLayout || !thisLayout.isInView) {\n    return;\n  }\n\n  var thisWidth = thisLayout.width;\n  var thisHeight = thisLayout.height;\n  var borderWidth = thisLayout.borderWidth;\n  var thisInvisible = thisLayout.invisible;\n  var thisRawIndex = thisNode.getRawIndex();\n  var oldRawIndex = oldNode && oldNode.getRawIndex();\n  var thisViewChildren = thisNode.viewChildren;\n  var upperHeight = thisLayout.upperHeight;\n  var isParent = thisViewChildren && thisViewChildren.length;\n  var itemStyleNormalModel = nodeModel.getModel('itemStyle');\n  var itemStyleEmphasisModel = nodeModel.getModel(['emphasis', 'itemStyle']);\n  var itemStyleBlurModel = nodeModel.getModel(['blur', 'itemStyle']);\n  var itemStyleSelectModel = nodeModel.getModel(['select', 'itemStyle']);\n  var borderRadius = itemStyleNormalModel.get('borderRadius') || 0;\n  var group = giveGraphic('nodeGroup', Group);\n\n  if (!group) {\n    return;\n  }\n\n  parentGroup.add(group);\n  group.x = thisLayout.x || 0;\n  group.y = thisLayout.y || 0;\n  group.markRedraw();\n  inner(group).nodeWidth = thisWidth;\n  inner(group).nodeHeight = thisHeight;\n\n  if (thisLayout.isAboveViewRoot) {\n    return group;\n  }\n\n  var bg = giveGraphic('background', Rect, depth, Z_BG);\n  bg && renderBackground(group, bg, isParent && thisLayout.upperLabelHeight);\n  var focus = nodeModel.get(['emphasis', 'focus']);\n  var blurScope = nodeModel.get(['emphasis', 'blurScope']);\n  var focusDataIndices = focus === 'ancestor' ? thisNode.getAncestorsIndices() : focus === 'descendant' ? thisNode.getDescendantIndices() : null;\n\n  if (isParent) {\n    if (isHighDownDispatcher(group)) {\n      setAsHighDownDispatcher(group, false);\n    }\n\n    if (bg) {\n      setAsHighDownDispatcher(bg, true);\n      data.setItemGraphicEl(thisNode.dataIndex, bg);\n      enableHoverFocus(bg, focusDataIndices || focus, blurScope);\n    }\n  } else {\n    var content = giveGraphic('content', Rect, depth, Z_CONTENT);\n    content && renderContent(group, content);\n\n    if (bg && isHighDownDispatcher(bg)) {\n      setAsHighDownDispatcher(bg, false);\n    }\n\n    setAsHighDownDispatcher(group, true);\n    data.setItemGraphicEl(thisNode.dataIndex, group);\n    enableHoverFocus(group, focusDataIndices || focus, blurScope);\n  }\n\n  return group;\n\n  function renderBackground(group, bg, useUpperLabel) {\n    var ecData = getECData(bg);\n    ecData.dataIndex = thisNode.dataIndex;\n    ecData.seriesIndex = seriesModel.seriesIndex;\n    bg.setShape({\n      x: 0,\n      y: 0,\n      width: thisWidth,\n      height: thisHeight,\n      r: borderRadius\n    });\n\n    if (thisInvisible) {\n      processInvisible(bg);\n    } else {\n      bg.invisible = false;\n      var style = thisNode.getVisual('style');\n      var visualBorderColor = style.stroke;\n      var normalStyle = getItemStyleNormal(itemStyleNormalModel);\n      normalStyle.fill = visualBorderColor;\n      var emphasisStyle = getStateItemStyle(itemStyleEmphasisModel);\n      emphasisStyle.fill = itemStyleEmphasisModel.get('borderColor');\n      var blurStyle = getStateItemStyle(itemStyleBlurModel);\n      blurStyle.fill = itemStyleBlurModel.get('borderColor');\n      var selectStyle = getStateItemStyle(itemStyleSelectModel);\n      selectStyle.fill = itemStyleSelectModel.get('borderColor');\n\n      if (useUpperLabel) {\n        var upperLabelWidth = thisWidth - 2 * borderWidth;\n        prepareText(bg, visualBorderColor, upperLabelWidth, upperHeight, style.opacity, {\n          x: borderWidth,\n          y: 0,\n          width: upperLabelWidth,\n          height: upperHeight\n        });\n      } else {\n        bg.removeTextContent();\n      }\n\n      bg.setStyle(normalStyle);\n      bg.ensureState('emphasis').style = emphasisStyle;\n      bg.ensureState('blur').style = blurStyle;\n      bg.ensureState('select').style = selectStyle;\n      setDefaultStateProxy(bg);\n    }\n\n    group.add(bg);\n  }\n\n  function renderContent(group, content) {\n    var ecData = getECData(content);\n    ecData.dataIndex = thisNode.dataIndex;\n    ecData.seriesIndex = seriesModel.seriesIndex;\n    var contentWidth = Math.max(thisWidth - 2 * borderWidth, 0);\n    var contentHeight = Math.max(thisHeight - 2 * borderWidth, 0);\n    content.culling = true;\n    content.setShape({\n      x: borderWidth,\n      y: borderWidth,\n      width: contentWidth,\n      height: contentHeight,\n      r: borderRadius\n    });\n\n    if (thisInvisible) {\n      processInvisible(content);\n    } else {\n      content.invisible = false;\n      var nodeStyle = thisNode.getVisual('style');\n      var visualColor = nodeStyle.fill;\n      var normalStyle = getItemStyleNormal(itemStyleNormalModel);\n      normalStyle.fill = visualColor;\n      normalStyle.decal = nodeStyle.decal;\n      var emphasisStyle = getStateItemStyle(itemStyleEmphasisModel);\n      var blurStyle = getStateItemStyle(itemStyleBlurModel);\n      var selectStyle = getStateItemStyle(itemStyleSelectModel);\n      prepareText(content, visualColor, contentWidth, nodeStyle.opacity, contentHeight);\n      content.setStyle(normalStyle);\n      content.ensureState('emphasis').style = emphasisStyle;\n      content.ensureState('blur').style = blurStyle;\n      content.ensureState('select').style = selectStyle;\n      setDefaultStateProxy(content);\n    }\n\n    group.add(content);\n  }\n\n  function processInvisible(element) {\n    !element.invisible && willInvisibleEls.push(element);\n  }\n\n  function prepareText(rectEl, visualColor, visualOpacity, width, height, upperLabelRect) {\n    var normalLabelModel = nodeModel.getModel(upperLabelRect ? PATH_UPPERLABEL_NORMAL : PATH_LABEL_NOAMAL);\n    var text = retrieve(seriesModel.getFormattedLabel(thisNode.dataIndex, 'normal', null, null, normalLabelModel.get('formatter')), convertOptionIdName(nodeModel.get('name'), null));\n\n    if (!upperLabelRect && thisLayout.isLeafRoot) {\n      var iconChar = seriesModel.get('drillDownIcon', true);\n      text = iconChar ? iconChar + ' ' + text : text;\n    }\n\n    var isShow = normalLabelModel.getShallow('show');\n    setLabelStyle(rectEl, getLabelStatesModels(nodeModel, upperLabelRect ? PATH_UPPERLABEL_NORMAL : PATH_LABEL_NOAMAL), {\n      defaultText: isShow ? text : null,\n      inheritColor: visualColor,\n      defaultOpacity: visualOpacity,\n      labelFetcher: seriesModel,\n      labelDataIndex: thisNode.dataIndex\n    });\n    var textEl = rectEl.getTextContent();\n    var textStyle = textEl.style;\n    var textPadding = normalizeCssArray(textStyle.padding || 0);\n\n    if (upperLabelRect) {\n      rectEl.setTextConfig({\n        layoutRect: upperLabelRect\n      });\n      textEl.disableLabelLayout = true;\n    }\n\n    textEl.beforeUpdate = function () {\n      var width = Math.max((upperLabelRect ? upperLabelRect.width : rectEl.shape.width) - textPadding[1] - textPadding[3], 0);\n      var height = Math.max((upperLabelRect ? upperLabelRect.height : rectEl.shape.height) - textPadding[0] - textPadding[2], 0);\n\n      if (textStyle.width !== width || textStyle.height !== height) {\n        textEl.setStyle({\n          width: width,\n          height: height\n        });\n      }\n    };\n\n    textStyle.truncateMinChar = 2;\n    textStyle.lineOverflow = 'truncate';\n    addDrillDownIcon(textStyle, upperLabelRect, thisLayout);\n    var textEmphasisState = textEl.getState('emphasis');\n    addDrillDownIcon(textEmphasisState ? textEmphasisState.style : null, upperLabelRect, thisLayout);\n  }\n\n  function addDrillDownIcon(style, upperLabelRect, thisLayout) {\n    var text = style ? style.text : null;\n\n    if (!upperLabelRect && thisLayout.isLeafRoot && text != null) {\n      var iconChar = seriesModel.get('drillDownIcon', true);\n      style.text = iconChar ? iconChar + ' ' + text : text;\n    }\n  }\n\n  function giveGraphic(storageName, Ctor, depth, z) {\n    var element = oldRawIndex != null && oldStorage[storageName][oldRawIndex];\n    var lasts = lastsForAnimation[storageName];\n\n    if (element) {\n      oldStorage[storageName][oldRawIndex] = null;\n      prepareAnimationWhenHasOld(lasts, element);\n    } else if (!thisInvisible) {\n      element = new Ctor();\n\n      if (element instanceof Displayable) {\n        element.z = calculateZ(depth, z);\n      }\n\n      prepareAnimationWhenNoOld(lasts, element);\n    }\n\n    return thisStorage[storageName][thisRawIndex] = element;\n  }\n\n  function prepareAnimationWhenHasOld(lasts, element) {\n    var lastCfg = lasts[thisRawIndex] = {};\n\n    if (element instanceof Group) {\n      lastCfg.oldX = element.x;\n      lastCfg.oldY = element.y;\n    } else {\n      lastCfg.oldShape = extend({}, element.shape);\n    }\n  }\n\n  function prepareAnimationWhenNoOld(lasts, element) {\n    var lastCfg = lasts[thisRawIndex] = {};\n    var parentNode = thisNode.parentNode;\n    var isGroup = element instanceof graphic.Group;\n\n    if (parentNode && (!reRoot || reRoot.direction === 'drillDown')) {\n      var parentOldX = 0;\n      var parentOldY = 0;\n      var parentOldBg = lastsForAnimation.background[parentNode.getRawIndex()];\n\n      if (!reRoot && parentOldBg && parentOldBg.oldShape) {\n        parentOldX = parentOldBg.oldShape.width;\n        parentOldY = parentOldBg.oldShape.height;\n      }\n\n      if (isGroup) {\n        lastCfg.oldX = 0;\n        lastCfg.oldY = parentOldY;\n      } else {\n        lastCfg.oldShape = {\n          x: parentOldX,\n          y: parentOldY,\n          width: 0,\n          height: 0\n        };\n      }\n    }\n\n    lastCfg.fadein = !isGroup;\n  }\n}\n\nfunction calculateZ(depth, zInLevel) {\n  var zb = depth * Z_BASE + zInLevel;\n  return (zb - 1) / zb;\n}\n\nexport default TreemapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as zrColor from 'zrender/lib/tool/color';\nimport { linearMap } from '../util/number';\nvar each = zrUtil.each;\nvar isObject = zrUtil.isObject;\nvar CATEGORY_DEFAULT_VISUAL_INDEX = -1;\n\nvar VisualMapping = function () {\n  function VisualMapping(option) {\n    var mappingMethod = option.mappingMethod;\n    var visualType = option.type;\n    var thisOption = this.option = zrUtil.clone(option);\n    this.type = visualType;\n    this.mappingMethod = mappingMethod;\n    this._normalizeData = normalizers[mappingMethod];\n    var visualHandler = VisualMapping.visualHandlers[visualType];\n    this.applyVisual = visualHandler.applyVisual;\n    this.getColorMapper = visualHandler.getColorMapper;\n    this._normalizedToVisual = visualHandler._normalizedToVisual[mappingMethod];\n\n    if (mappingMethod === 'piecewise') {\n      normalizeVisualRange(thisOption);\n      preprocessForPiecewise(thisOption);\n    } else if (mappingMethod === 'category') {\n      thisOption.categories ? preprocessForSpecifiedCategory(thisOption) : normalizeVisualRange(thisOption, true);\n    } else {\n      zrUtil.assert(mappingMethod !== 'linear' || thisOption.dataExtent);\n      normalizeVisualRange(thisOption);\n    }\n  }\n\n  VisualMapping.prototype.mapValueToVisual = function (value) {\n    var normalized = this._normalizeData(value);\n\n    return this._normalizedToVisual(normalized, value);\n  };\n\n  VisualMapping.prototype.getNormalizer = function () {\n    return zrUtil.bind(this._normalizeData, this);\n  };\n\n  VisualMapping.listVisualTypes = function () {\n    return zrUtil.keys(VisualMapping.visualHandlers);\n  };\n\n  VisualMapping.isValidType = function (visualType) {\n    return VisualMapping.visualHandlers.hasOwnProperty(visualType);\n  };\n\n  VisualMapping.eachVisual = function (visual, callback, context) {\n    if (zrUtil.isObject(visual)) {\n      zrUtil.each(visual, callback, context);\n    } else {\n      callback.call(context, visual);\n    }\n  };\n\n  VisualMapping.mapVisual = function (visual, callback, context) {\n    var isPrimary;\n    var newVisual = zrUtil.isArray(visual) ? [] : zrUtil.isObject(visual) ? {} : (isPrimary = true, null);\n    VisualMapping.eachVisual(visual, function (v, key) {\n      var newVal = callback.call(context, v, key);\n      isPrimary ? newVisual = newVal : newVisual[key] = newVal;\n    });\n    return newVisual;\n  };\n\n  VisualMapping.retrieveVisuals = function (obj) {\n    var ret = {};\n    var hasVisual;\n    obj && each(VisualMapping.visualHandlers, function (h, visualType) {\n      if (obj.hasOwnProperty(visualType)) {\n        ret[visualType] = obj[visualType];\n        hasVisual = true;\n      }\n    });\n    return hasVisual ? ret : null;\n  };\n\n  VisualMapping.prepareVisualTypes = function (visualTypes) {\n    if (zrUtil.isArray(visualTypes)) {\n      visualTypes = visualTypes.slice();\n    } else if (isObject(visualTypes)) {\n      var types_1 = [];\n      each(visualTypes, function (item, type) {\n        types_1.push(type);\n      });\n      visualTypes = types_1;\n    } else {\n      return [];\n    }\n\n    visualTypes.sort(function (type1, type2) {\n      return type2 === 'color' && type1 !== 'color' && type1.indexOf('color') === 0 ? 1 : -1;\n    });\n    return visualTypes;\n  };\n\n  VisualMapping.dependsOn = function (visualType1, visualType2) {\n    return visualType2 === 'color' ? !!(visualType1 && visualType1.indexOf(visualType2) === 0) : visualType1 === visualType2;\n  };\n\n  VisualMapping.findPieceIndex = function (value, pieceList, findClosestWhenOutside) {\n    var possibleI;\n    var abs = Infinity;\n\n    for (var i = 0, len = pieceList.length; i < len; i++) {\n      var pieceValue = pieceList[i].value;\n\n      if (pieceValue != null) {\n        if (pieceValue === value || typeof pieceValue === 'string' && pieceValue === value + '') {\n          return i;\n        }\n\n        findClosestWhenOutside && updatePossible(pieceValue, i);\n      }\n    }\n\n    for (var i = 0, len = pieceList.length; i < len; i++) {\n      var piece = pieceList[i];\n      var interval = piece.interval;\n      var close_1 = piece.close;\n\n      if (interval) {\n        if (interval[0] === -Infinity) {\n          if (littleThan(close_1[1], value, interval[1])) {\n            return i;\n          }\n        } else if (interval[1] === Infinity) {\n          if (littleThan(close_1[0], interval[0], value)) {\n            return i;\n          }\n        } else if (littleThan(close_1[0], interval[0], value) && littleThan(close_1[1], value, interval[1])) {\n          return i;\n        }\n\n        findClosestWhenOutside && updatePossible(interval[0], i);\n        findClosestWhenOutside && updatePossible(interval[1], i);\n      }\n    }\n\n    if (findClosestWhenOutside) {\n      return value === Infinity ? pieceList.length - 1 : value === -Infinity ? 0 : possibleI;\n    }\n\n    function updatePossible(val, index) {\n      var newAbs = Math.abs(val - value);\n\n      if (newAbs < abs) {\n        abs = newAbs;\n        possibleI = index;\n      }\n    }\n  };\n\n  VisualMapping.visualHandlers = {\n    color: {\n      applyVisual: makeApplyVisual('color'),\n      getColorMapper: function () {\n        var thisOption = this.option;\n        return zrUtil.bind(thisOption.mappingMethod === 'category' ? function (value, isNormalized) {\n          !isNormalized && (value = this._normalizeData(value));\n          return doMapCategory.call(this, value);\n        } : function (value, isNormalized, out) {\n          var returnRGBArray = !!out;\n          !isNormalized && (value = this._normalizeData(value));\n          out = zrColor.fastLerp(value, thisOption.parsedVisual, out);\n          return returnRGBArray ? out : zrColor.stringify(out, 'rgba');\n        }, this);\n      },\n      _normalizedToVisual: {\n        linear: function (normalized) {\n          return zrColor.stringify(zrColor.fastLerp(normalized, this.option.parsedVisual), 'rgba');\n        },\n        category: doMapCategory,\n        piecewise: function (normalized, value) {\n          var result = getSpecifiedVisual.call(this, value);\n\n          if (result == null) {\n            result = zrColor.stringify(zrColor.fastLerp(normalized, this.option.parsedVisual), 'rgba');\n          }\n\n          return result;\n        },\n        fixed: doMapFixed\n      }\n    },\n    colorHue: makePartialColorVisualHandler(function (color, value) {\n      return zrColor.modifyHSL(color, value);\n    }),\n    colorSaturation: makePartialColorVisualHandler(function (color, value) {\n      return zrColor.modifyHSL(color, null, value);\n    }),\n    colorLightness: makePartialColorVisualHandler(function (color, value) {\n      return zrColor.modifyHSL(color, null, null, value);\n    }),\n    colorAlpha: makePartialColorVisualHandler(function (color, value) {\n      return zrColor.modifyAlpha(color, value);\n    }),\n    decal: {\n      applyVisual: makeApplyVisual('decal'),\n      _normalizedToVisual: {\n        linear: null,\n        category: doMapCategory,\n        piecewise: null,\n        fixed: null\n      }\n    },\n    opacity: {\n      applyVisual: makeApplyVisual('opacity'),\n      _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\n    },\n    liftZ: {\n      applyVisual: makeApplyVisual('liftZ'),\n      _normalizedToVisual: {\n        linear: doMapFixed,\n        category: doMapFixed,\n        piecewise: doMapFixed,\n        fixed: doMapFixed\n      }\n    },\n    symbol: {\n      applyVisual: function (value, getter, setter) {\n        var symbolCfg = this.mapValueToVisual(value);\n        setter('symbol', symbolCfg);\n      },\n      _normalizedToVisual: {\n        linear: doMapToArray,\n        category: doMapCategory,\n        piecewise: function (normalized, value) {\n          var result = getSpecifiedVisual.call(this, value);\n\n          if (result == null) {\n            result = doMapToArray.call(this, normalized);\n          }\n\n          return result;\n        },\n        fixed: doMapFixed\n      }\n    },\n    symbolSize: {\n      applyVisual: makeApplyVisual('symbolSize'),\n      _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\n    }\n  };\n  return VisualMapping;\n}();\n\nfunction preprocessForPiecewise(thisOption) {\n  var pieceList = thisOption.pieceList;\n  thisOption.hasSpecialVisual = false;\n  zrUtil.each(pieceList, function (piece, index) {\n    piece.originIndex = index;\n\n    if (piece.visual != null) {\n      thisOption.hasSpecialVisual = true;\n    }\n  });\n}\n\nfunction preprocessForSpecifiedCategory(thisOption) {\n  var categories = thisOption.categories;\n  var categoryMap = thisOption.categoryMap = {};\n  var visual = thisOption.visual;\n  each(categories, function (cate, index) {\n    categoryMap[cate] = index;\n  });\n\n  if (!zrUtil.isArray(visual)) {\n    var visualArr_1 = [];\n\n    if (zrUtil.isObject(visual)) {\n      each(visual, function (v, cate) {\n        var index = categoryMap[cate];\n        visualArr_1[index != null ? index : CATEGORY_DEFAULT_VISUAL_INDEX] = v;\n      });\n    } else {\n      visualArr_1[CATEGORY_DEFAULT_VISUAL_INDEX] = visual;\n    }\n\n    visual = setVisualToOption(thisOption, visualArr_1);\n  }\n\n  for (var i = categories.length - 1; i >= 0; i--) {\n    if (visual[i] == null) {\n      delete categoryMap[categories[i]];\n      categories.pop();\n    }\n  }\n}\n\nfunction normalizeVisualRange(thisOption, isCategory) {\n  var visual = thisOption.visual;\n  var visualArr = [];\n\n  if (zrUtil.isObject(visual)) {\n    each(visual, function (v) {\n      visualArr.push(v);\n    });\n  } else if (visual != null) {\n    visualArr.push(visual);\n  }\n\n  var doNotNeedPair = {\n    color: 1,\n    symbol: 1\n  };\n\n  if (!isCategory && visualArr.length === 1 && !doNotNeedPair.hasOwnProperty(thisOption.type)) {\n    visualArr[1] = visualArr[0];\n  }\n\n  setVisualToOption(thisOption, visualArr);\n}\n\nfunction makePartialColorVisualHandler(applyValue) {\n  return {\n    applyVisual: function (value, getter, setter) {\n      var colorChannel = this.mapValueToVisual(value);\n      setter('color', applyValue(getter('color'), colorChannel));\n    },\n    _normalizedToVisual: createNormalizedToNumericVisual([0, 1])\n  };\n}\n\nfunction doMapToArray(normalized) {\n  var visual = this.option.visual;\n  return visual[Math.round(linearMap(normalized, [0, 1], [0, visual.length - 1], true))] || {};\n}\n\nfunction makeApplyVisual(visualType) {\n  return function (value, getter, setter) {\n    setter(visualType, this.mapValueToVisual(value));\n  };\n}\n\nfunction doMapCategory(normalized) {\n  var visual = this.option.visual;\n  return visual[this.option.loop && normalized !== CATEGORY_DEFAULT_VISUAL_INDEX ? normalized % visual.length : normalized];\n}\n\nfunction doMapFixed() {\n  return this.option.visual[0];\n}\n\nfunction createNormalizedToNumericVisual(sourceExtent) {\n  return {\n    linear: function (normalized) {\n      return linearMap(normalized, sourceExtent, this.option.visual, true);\n    },\n    category: doMapCategory,\n    piecewise: function (normalized, value) {\n      var result = getSpecifiedVisual.call(this, value);\n\n      if (result == null) {\n        result = linearMap(normalized, sourceExtent, this.option.visual, true);\n      }\n\n      return result;\n    },\n    fixed: doMapFixed\n  };\n}\n\nfunction getSpecifiedVisual(value) {\n  var thisOption = this.option;\n  var pieceList = thisOption.pieceList;\n\n  if (thisOption.hasSpecialVisual) {\n    var pieceIndex = VisualMapping.findPieceIndex(value, pieceList);\n    var piece = pieceList[pieceIndex];\n\n    if (piece && piece.visual) {\n      return piece.visual[this.type];\n    }\n  }\n}\n\nfunction setVisualToOption(thisOption, visualArr) {\n  thisOption.visual = visualArr;\n\n  if (thisOption.type === 'color') {\n    thisOption.parsedVisual = zrUtil.map(visualArr, function (item) {\n      return zrColor.parse(item);\n    });\n  }\n\n  return visualArr;\n}\n\nvar normalizers = {\n  linear: function (value) {\n    return linearMap(value, this.option.dataExtent, [0, 1], true);\n  },\n  piecewise: function (value) {\n    var pieceList = this.option.pieceList;\n    var pieceIndex = VisualMapping.findPieceIndex(value, pieceList, true);\n\n    if (pieceIndex != null) {\n      return linearMap(pieceIndex, [0, pieceList.length - 1], [0, 1], true);\n    }\n  },\n  category: function (value) {\n    var index = this.option.categories ? this.option.categoryMap[value] : value;\n    return index == null ? CATEGORY_DEFAULT_VISUAL_INDEX : index;\n  },\n  fixed: zrUtil.noop\n};\n\nfunction littleThan(close, a, b) {\n  return close ? a <= b : a < b;\n}\n\nexport default VisualMapping;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport VisualMapping from '../../visual/VisualMapping';\nimport { each, extend, isArray } from 'zrender/lib/core/util';\nimport { modifyHSL, modifyAlpha } from 'zrender/lib/tool/color';\nimport { makeInner } from '../../util/model';\nvar ITEM_STYLE_NORMAL = 'itemStyle';\nvar inner = makeInner();\nexport default {\n  seriesType: 'treemap',\n  reset: function (seriesModel) {\n    var tree = seriesModel.getData().tree;\n    var root = tree.root;\n\n    if (root.isRemoved()) {\n      return;\n    }\n\n    travelTree(root, {}, seriesModel.getViewRoot().getAncestors(), seriesModel);\n  }\n};\n\nfunction travelTree(node, designatedVisual, viewRootAncestors, seriesModel) {\n  var nodeModel = node.getModel();\n  var nodeLayout = node.getLayout();\n  var data = node.hostTree.data;\n\n  if (!nodeLayout || nodeLayout.invisible || !nodeLayout.isInView) {\n    return;\n  }\n\n  var nodeItemStyleModel = nodeModel.getModel(ITEM_STYLE_NORMAL);\n  var visuals = buildVisuals(nodeItemStyleModel, designatedVisual, seriesModel);\n  var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, 'style');\n  var borderColor = nodeItemStyleModel.get('borderColor');\n  var borderColorSaturation = nodeItemStyleModel.get('borderColorSaturation');\n  var thisNodeColor;\n\n  if (borderColorSaturation != null) {\n    thisNodeColor = calculateColor(visuals);\n    borderColor = calculateBorderColor(borderColorSaturation, thisNodeColor);\n  }\n\n  existsStyle.stroke = borderColor;\n  var viewChildren = node.viewChildren;\n\n  if (!viewChildren || !viewChildren.length) {\n    thisNodeColor = calculateColor(visuals);\n    existsStyle.fill = thisNodeColor;\n  } else {\n    var mapping_1 = buildVisualMapping(node, nodeModel, nodeLayout, nodeItemStyleModel, visuals, viewChildren);\n    each(viewChildren, function (child, index) {\n      if (child.depth >= viewRootAncestors.length || child === viewRootAncestors[child.depth]) {\n        var childVisual = mapVisual(nodeModel, visuals, child, index, mapping_1, seriesModel);\n        travelTree(child, childVisual, viewRootAncestors, seriesModel);\n      }\n    });\n  }\n}\n\nfunction buildVisuals(nodeItemStyleModel, designatedVisual, seriesModel) {\n  var visuals = extend({}, designatedVisual);\n  var designatedVisualItemStyle = seriesModel.designatedVisualItemStyle;\n  each(['color', 'colorAlpha', 'colorSaturation'], function (visualName) {\n    designatedVisualItemStyle[visualName] = designatedVisual[visualName];\n    var val = nodeItemStyleModel.get(visualName);\n    designatedVisualItemStyle[visualName] = null;\n    val != null && (visuals[visualName] = val);\n  });\n  return visuals;\n}\n\nfunction calculateColor(visuals) {\n  var color = getValueVisualDefine(visuals, 'color');\n\n  if (color) {\n    var colorAlpha = getValueVisualDefine(visuals, 'colorAlpha');\n    var colorSaturation = getValueVisualDefine(visuals, 'colorSaturation');\n\n    if (colorSaturation) {\n      color = modifyHSL(color, null, null, colorSaturation);\n    }\n\n    if (colorAlpha) {\n      color = modifyAlpha(color, colorAlpha);\n    }\n\n    return color;\n  }\n}\n\nfunction calculateBorderColor(borderColorSaturation, thisNodeColor) {\n  return thisNodeColor != null ? modifyHSL(thisNodeColor, null, null, borderColorSaturation) : null;\n}\n\nfunction getValueVisualDefine(visuals, name) {\n  var value = visuals[name];\n\n  if (value != null && value !== 'none') {\n    return value;\n  }\n}\n\nfunction buildVisualMapping(node, nodeModel, nodeLayout, nodeItemStyleModel, visuals, viewChildren) {\n  if (!viewChildren || !viewChildren.length) {\n    return;\n  }\n\n  var rangeVisual = getRangeVisual(nodeModel, 'color') || visuals.color != null && visuals.color !== 'none' && (getRangeVisual(nodeModel, 'colorAlpha') || getRangeVisual(nodeModel, 'colorSaturation'));\n\n  if (!rangeVisual) {\n    return;\n  }\n\n  var visualMin = nodeModel.get('visualMin');\n  var visualMax = nodeModel.get('visualMax');\n  var dataExtent = nodeLayout.dataExtent.slice();\n  visualMin != null && visualMin < dataExtent[0] && (dataExtent[0] = visualMin);\n  visualMax != null && visualMax > dataExtent[1] && (dataExtent[1] = visualMax);\n  var colorMappingBy = nodeModel.get('colorMappingBy');\n  var opt = {\n    type: rangeVisual.name,\n    dataExtent: dataExtent,\n    visual: rangeVisual.range\n  };\n\n  if (opt.type === 'color' && (colorMappingBy === 'index' || colorMappingBy === 'id')) {\n    opt.mappingMethod = 'category';\n    opt.loop = true;\n  } else {\n    opt.mappingMethod = 'linear';\n  }\n\n  var mapping = new VisualMapping(opt);\n  inner(mapping).drColorMappingBy = colorMappingBy;\n  return mapping;\n}\n\nfunction getRangeVisual(nodeModel, name) {\n  var range = nodeModel.get(name);\n  return isArray(range) && range.length ? {\n    name: name,\n    range: range\n  } : null;\n}\n\nfunction mapVisual(nodeModel, visuals, child, index, mapping, seriesModel) {\n  var childVisuals = extend({}, visuals);\n\n  if (mapping) {\n    var mappingType = mapping.type;\n    var colorMappingBy = mappingType === 'color' && inner(mapping).drColorMappingBy;\n    var value = colorMappingBy === 'index' ? index : colorMappingBy === 'id' ? seriesModel.mapIdToIndex(child.getId()) : child.getValue(nodeModel.get('visualDimension'));\n    childVisuals[mappingType] = mapping.mapValueToVisual(value);\n  }\n\n  return childVisuals;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { parsePercent, MAX_SAFE_INTEGER } from '../../util/number';\nimport * as layout from '../../util/layout';\nimport * as helper from '../helper/treeHelper';\nvar mathMax = Math.max;\nvar mathMin = Math.min;\nvar retrieveValue = zrUtil.retrieve;\nvar each = zrUtil.each;\nvar PATH_BORDER_WIDTH = ['itemStyle', 'borderWidth'];\nvar PATH_GAP_WIDTH = ['itemStyle', 'gapWidth'];\nvar PATH_UPPER_LABEL_SHOW = ['upperLabel', 'show'];\nvar PATH_UPPER_LABEL_HEIGHT = ['upperLabel', 'height'];\n;\nexport default {\n  seriesType: 'treemap',\n  reset: function (seriesModel, ecModel, api, payload) {\n    var ecWidth = api.getWidth();\n    var ecHeight = api.getHeight();\n    var seriesOption = seriesModel.option;\n    var layoutInfo = layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n    var size = seriesOption.size || [];\n    var containerWidth = parsePercent(retrieveValue(layoutInfo.width, size[0]), ecWidth);\n    var containerHeight = parsePercent(retrieveValue(layoutInfo.height, size[1]), ecHeight);\n    var payloadType = payload && payload.type;\n    var types = ['treemapZoomToNode', 'treemapRootToNode'];\n    var targetInfo = helper.retrieveTargetInfo(payload, types, seriesModel);\n    var rootRect = payloadType === 'treemapRender' || payloadType === 'treemapMove' ? payload.rootRect : null;\n    var viewRoot = seriesModel.getViewRoot();\n    var viewAbovePath = helper.getPathToRoot(viewRoot);\n\n    if (payloadType !== 'treemapMove') {\n      var rootSize = payloadType === 'treemapZoomToNode' ? estimateRootSize(seriesModel, targetInfo, viewRoot, containerWidth, containerHeight) : rootRect ? [rootRect.width, rootRect.height] : [containerWidth, containerHeight];\n      var sort_1 = seriesOption.sort;\n\n      if (sort_1 && sort_1 !== 'asc' && sort_1 !== 'desc') {\n        sort_1 = 'desc';\n      }\n\n      var options = {\n        squareRatio: seriesOption.squareRatio,\n        sort: sort_1,\n        leafDepth: seriesOption.leafDepth\n      };\n      viewRoot.hostTree.clearLayouts();\n      var viewRootLayout_1 = {\n        x: 0,\n        y: 0,\n        width: rootSize[0],\n        height: rootSize[1],\n        area: rootSize[0] * rootSize[1]\n      };\n      viewRoot.setLayout(viewRootLayout_1);\n      squarify(viewRoot, options, false, 0);\n      viewRootLayout_1 = viewRoot.getLayout();\n      each(viewAbovePath, function (node, index) {\n        var childValue = (viewAbovePath[index + 1] || viewRoot).getValue();\n        node.setLayout(zrUtil.extend({\n          dataExtent: [childValue, childValue],\n          borderWidth: 0,\n          upperHeight: 0\n        }, viewRootLayout_1));\n      });\n    }\n\n    var treeRoot = seriesModel.getData().tree.root;\n    treeRoot.setLayout(calculateRootPosition(layoutInfo, rootRect, targetInfo), true);\n    seriesModel.setLayoutInfo(layoutInfo);\n    prunning(treeRoot, new BoundingRect(-layoutInfo.x, -layoutInfo.y, ecWidth, ecHeight), viewAbovePath, viewRoot, 0);\n  }\n};\n\nfunction squarify(node, options, hideChildren, depth) {\n  var width;\n  var height;\n\n  if (node.isRemoved()) {\n    return;\n  }\n\n  var thisLayout = node.getLayout();\n  width = thisLayout.width;\n  height = thisLayout.height;\n  var nodeModel = node.getModel();\n  var borderWidth = nodeModel.get(PATH_BORDER_WIDTH);\n  var halfGapWidth = nodeModel.get(PATH_GAP_WIDTH) / 2;\n  var upperLabelHeight = getUpperLabelHeight(nodeModel);\n  var upperHeight = Math.max(borderWidth, upperLabelHeight);\n  var layoutOffset = borderWidth - halfGapWidth;\n  var layoutOffsetUpper = upperHeight - halfGapWidth;\n  node.setLayout({\n    borderWidth: borderWidth,\n    upperHeight: upperHeight,\n    upperLabelHeight: upperLabelHeight\n  }, true);\n  width = mathMax(width - 2 * layoutOffset, 0);\n  height = mathMax(height - layoutOffset - layoutOffsetUpper, 0);\n  var totalArea = width * height;\n  var viewChildren = initChildren(node, nodeModel, totalArea, options, hideChildren, depth);\n\n  if (!viewChildren.length) {\n    return;\n  }\n\n  var rect = {\n    x: layoutOffset,\n    y: layoutOffsetUpper,\n    width: width,\n    height: height\n  };\n  var rowFixedLength = mathMin(width, height);\n  var best = Infinity;\n  var row = [];\n  row.area = 0;\n\n  for (var i = 0, len = viewChildren.length; i < len;) {\n    var child = viewChildren[i];\n    row.push(child);\n    row.area += child.getLayout().area;\n    var score = worst(row, rowFixedLength, options.squareRatio);\n\n    if (score <= best) {\n      i++;\n      best = score;\n    } else {\n      row.area -= row.pop().getLayout().area;\n      position(row, rowFixedLength, rect, halfGapWidth, false);\n      rowFixedLength = mathMin(rect.width, rect.height);\n      row.length = row.area = 0;\n      best = Infinity;\n    }\n  }\n\n  if (row.length) {\n    position(row, rowFixedLength, rect, halfGapWidth, true);\n  }\n\n  if (!hideChildren) {\n    var childrenVisibleMin = nodeModel.get('childrenVisibleMin');\n\n    if (childrenVisibleMin != null && totalArea < childrenVisibleMin) {\n      hideChildren = true;\n    }\n  }\n\n  for (var i = 0, len = viewChildren.length; i < len; i++) {\n    squarify(viewChildren[i], options, hideChildren, depth + 1);\n  }\n}\n\nfunction initChildren(node, nodeModel, totalArea, options, hideChildren, depth) {\n  var viewChildren = node.children || [];\n  var orderBy = options.sort;\n  orderBy !== 'asc' && orderBy !== 'desc' && (orderBy = null);\n  var overLeafDepth = options.leafDepth != null && options.leafDepth <= depth;\n\n  if (hideChildren && !overLeafDepth) {\n    return node.viewChildren = [];\n  }\n\n  viewChildren = zrUtil.filter(viewChildren, function (child) {\n    return !child.isRemoved();\n  });\n  sort(viewChildren, orderBy);\n  var info = statistic(nodeModel, viewChildren, orderBy);\n\n  if (info.sum === 0) {\n    return node.viewChildren = [];\n  }\n\n  info.sum = filterByThreshold(nodeModel, totalArea, info.sum, orderBy, viewChildren);\n\n  if (info.sum === 0) {\n    return node.viewChildren = [];\n  }\n\n  for (var i = 0, len = viewChildren.length; i < len; i++) {\n    var area = viewChildren[i].getValue() / info.sum * totalArea;\n    viewChildren[i].setLayout({\n      area: area\n    });\n  }\n\n  if (overLeafDepth) {\n    viewChildren.length && node.setLayout({\n      isLeafRoot: true\n    }, true);\n    viewChildren.length = 0;\n  }\n\n  node.viewChildren = viewChildren;\n  node.setLayout({\n    dataExtent: info.dataExtent\n  }, true);\n  return viewChildren;\n}\n\nfunction filterByThreshold(nodeModel, totalArea, sum, orderBy, orderedChildren) {\n  if (!orderBy) {\n    return sum;\n  }\n\n  var visibleMin = nodeModel.get('visibleMin');\n  var len = orderedChildren.length;\n  var deletePoint = len;\n\n  for (var i = len - 1; i >= 0; i--) {\n    var value = orderedChildren[orderBy === 'asc' ? len - i - 1 : i].getValue();\n\n    if (value / sum * totalArea < visibleMin) {\n      deletePoint = i;\n      sum -= value;\n    }\n  }\n\n  orderBy === 'asc' ? orderedChildren.splice(0, len - deletePoint) : orderedChildren.splice(deletePoint, len - deletePoint);\n  return sum;\n}\n\nfunction sort(viewChildren, orderBy) {\n  if (orderBy) {\n    viewChildren.sort(function (a, b) {\n      var diff = orderBy === 'asc' ? a.getValue() - b.getValue() : b.getValue() - a.getValue();\n      return diff === 0 ? orderBy === 'asc' ? a.dataIndex - b.dataIndex : b.dataIndex - a.dataIndex : diff;\n    });\n  }\n\n  return viewChildren;\n}\n\nfunction statistic(nodeModel, children, orderBy) {\n  var sum = 0;\n\n  for (var i = 0, len = children.length; i < len; i++) {\n    sum += children[i].getValue();\n  }\n\n  var dimension = nodeModel.get('visualDimension');\n  var dataExtent;\n\n  if (!children || !children.length) {\n    dataExtent = [NaN, NaN];\n  } else if (dimension === 'value' && orderBy) {\n    dataExtent = [children[children.length - 1].getValue(), children[0].getValue()];\n    orderBy === 'asc' && dataExtent.reverse();\n  } else {\n    dataExtent = [Infinity, -Infinity];\n    each(children, function (child) {\n      var value = child.getValue(dimension);\n      value < dataExtent[0] && (dataExtent[0] = value);\n      value > dataExtent[1] && (dataExtent[1] = value);\n    });\n  }\n\n  return {\n    sum: sum,\n    dataExtent: dataExtent\n  };\n}\n\nfunction worst(row, rowFixedLength, ratio) {\n  var areaMax = 0;\n  var areaMin = Infinity;\n\n  for (var i = 0, area = void 0, len = row.length; i < len; i++) {\n    area = row[i].getLayout().area;\n\n    if (area) {\n      area < areaMin && (areaMin = area);\n      area > areaMax && (areaMax = area);\n    }\n  }\n\n  var squareArea = row.area * row.area;\n  var f = rowFixedLength * rowFixedLength * ratio;\n  return squareArea ? mathMax(f * areaMax / squareArea, squareArea / (f * areaMin)) : Infinity;\n}\n\nfunction position(row, rowFixedLength, rect, halfGapWidth, flush) {\n  var idx0WhenH = rowFixedLength === rect.width ? 0 : 1;\n  var idx1WhenH = 1 - idx0WhenH;\n  var xy = ['x', 'y'];\n  var wh = ['width', 'height'];\n  var last = rect[xy[idx0WhenH]];\n  var rowOtherLength = rowFixedLength ? row.area / rowFixedLength : 0;\n\n  if (flush || rowOtherLength > rect[wh[idx1WhenH]]) {\n    rowOtherLength = rect[wh[idx1WhenH]];\n  }\n\n  for (var i = 0, rowLen = row.length; i < rowLen; i++) {\n    var node = row[i];\n    var nodeLayout = {};\n    var step = rowOtherLength ? node.getLayout().area / rowOtherLength : 0;\n    var wh1 = nodeLayout[wh[idx1WhenH]] = mathMax(rowOtherLength - 2 * halfGapWidth, 0);\n    var remain = rect[xy[idx0WhenH]] + rect[wh[idx0WhenH]] - last;\n    var modWH = i === rowLen - 1 || remain < step ? remain : step;\n    var wh0 = nodeLayout[wh[idx0WhenH]] = mathMax(modWH - 2 * halfGapWidth, 0);\n    nodeLayout[xy[idx1WhenH]] = rect[xy[idx1WhenH]] + mathMin(halfGapWidth, wh1 / 2);\n    nodeLayout[xy[idx0WhenH]] = last + mathMin(halfGapWidth, wh0 / 2);\n    last += modWH;\n    node.setLayout(nodeLayout, true);\n  }\n\n  rect[xy[idx1WhenH]] += rowOtherLength;\n  rect[wh[idx1WhenH]] -= rowOtherLength;\n}\n\nfunction estimateRootSize(seriesModel, targetInfo, viewRoot, containerWidth, containerHeight) {\n  var currNode = (targetInfo || {}).node;\n  var defaultSize = [containerWidth, containerHeight];\n\n  if (!currNode || currNode === viewRoot) {\n    return defaultSize;\n  }\n\n  var parent;\n  var viewArea = containerWidth * containerHeight;\n  var area = viewArea * seriesModel.option.zoomToNodeRatio;\n\n  while (parent = currNode.parentNode) {\n    var sum = 0;\n    var siblings = parent.children;\n\n    for (var i = 0, len = siblings.length; i < len; i++) {\n      sum += siblings[i].getValue();\n    }\n\n    var currNodeValue = currNode.getValue();\n\n    if (currNodeValue === 0) {\n      return defaultSize;\n    }\n\n    area *= sum / currNodeValue;\n    var parentModel = parent.getModel();\n    var borderWidth = parentModel.get(PATH_BORDER_WIDTH);\n    var upperHeight = Math.max(borderWidth, getUpperLabelHeight(parentModel));\n    area += 4 * borderWidth * borderWidth + (3 * borderWidth + upperHeight) * Math.pow(area, 0.5);\n    area > MAX_SAFE_INTEGER && (area = MAX_SAFE_INTEGER);\n    currNode = parent;\n  }\n\n  area < viewArea && (area = viewArea);\n  var scale = Math.pow(area / viewArea, 0.5);\n  return [containerWidth * scale, containerHeight * scale];\n}\n\nfunction calculateRootPosition(layoutInfo, rootRect, targetInfo) {\n  if (rootRect) {\n    return {\n      x: rootRect.x,\n      y: rootRect.y\n    };\n  }\n\n  var defaultPosition = {\n    x: 0,\n    y: 0\n  };\n\n  if (!targetInfo) {\n    return defaultPosition;\n  }\n\n  var targetNode = targetInfo.node;\n  var layout = targetNode.getLayout();\n\n  if (!layout) {\n    return defaultPosition;\n  }\n\n  var targetCenter = [layout.width / 2, layout.height / 2];\n  var node = targetNode;\n\n  while (node) {\n    var nodeLayout = node.getLayout();\n    targetCenter[0] += nodeLayout.x;\n    targetCenter[1] += nodeLayout.y;\n    node = node.parentNode;\n  }\n\n  return {\n    x: layoutInfo.width / 2 - targetCenter[0],\n    y: layoutInfo.height / 2 - targetCenter[1]\n  };\n}\n\nfunction prunning(node, clipRect, viewAbovePath, viewRoot, depth) {\n  var nodeLayout = node.getLayout();\n  var nodeInViewAbovePath = viewAbovePath[depth];\n  var isAboveViewRoot = nodeInViewAbovePath && nodeInViewAbovePath === node;\n\n  if (nodeInViewAbovePath && !isAboveViewRoot || depth === viewAbovePath.length && node !== viewRoot) {\n    return;\n  }\n\n  node.setLayout({\n    isInView: true,\n    invisible: !isAboveViewRoot && !clipRect.intersect(nodeLayout),\n    isAboveViewRoot: isAboveViewRoot\n  }, true);\n  var childClipRect = new BoundingRect(clipRect.x - nodeLayout.x, clipRect.y - nodeLayout.y, clipRect.width, clipRect.height);\n  each(node.viewChildren || [], function (child) {\n    prunning(child, childClipRect, viewAbovePath, viewRoot, depth + 1);\n  });\n}\n\nfunction getUpperLabelHeight(model) {\n  return model.get(PATH_UPPER_LABEL_SHOW) ? model.get(PATH_UPPER_LABEL_HEIGHT) : 0;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { installTreemapAction } from './treemapAction';\nimport TreemapSeriesModel from './TreemapSeries';\nimport TreemapView from './TreemapView';\nimport treemapVisual from './treemapVisual';\nimport treemapLayout from './treemapLayout';\nexport function install(registers) {\n  registers.registerSeriesModel(TreemapSeriesModel);\n  registers.registerChartView(TreemapView);\n  registers.registerVisual(treemapVisual);\n  registers.registerLayout(treemapLayout);\n  installTreemapAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function categoryFilter(ecModel) {\n  var legendModels = ecModel.findComponents({\n    mainType: 'legend'\n  });\n\n  if (!legendModels || !legendModels.length) {\n    return;\n  }\n\n  ecModel.eachSeriesByType('graph', function (graphSeries) {\n    var categoriesData = graphSeries.getCategoriesData();\n    var graph = graphSeries.getGraph();\n    var data = graph.data;\n    var categoryNames = categoriesData.mapArray(categoriesData.getName);\n    data.filterSelf(function (idx) {\n      var model = data.getItemModel(idx);\n      var category = model.getShallow('category');\n\n      if (category != null) {\n        if (typeof category === 'number') {\n          category = categoryNames[category];\n        }\n\n        for (var i = 0; i < legendModels.length; i++) {\n          if (!legendModels[i].isSelected(category)) {\n            return false;\n          }\n        }\n      }\n\n      return true;\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { extend } from 'zrender/lib/core/util';\nexport default function categoryVisual(ecModel) {\n  var paletteScope = {};\n  ecModel.eachSeriesByType('graph', function (seriesModel) {\n    var categoriesData = seriesModel.getCategoriesData();\n    var data = seriesModel.getData();\n    var categoryNameIdxMap = {};\n    categoriesData.each(function (idx) {\n      var name = categoriesData.getName(idx);\n      categoryNameIdxMap['ec-' + name] = idx;\n      var itemModel = categoriesData.getItemModel(idx);\n      var style = itemModel.getModel('itemStyle').getItemStyle();\n\n      if (!style.fill) {\n        style.fill = seriesModel.getColorFromPalette(name, paletteScope);\n      }\n\n      categoriesData.setItemVisual(idx, 'style', style);\n      var symbolVisualList = ['symbol', 'symbolSize', 'symbolKeepAspect'];\n\n      for (var i = 0; i < symbolVisualList.length; i++) {\n        var symbolVisual = itemModel.getShallow(symbolVisualList[i], true);\n\n        if (symbolVisual != null) {\n          categoriesData.setItemVisual(idx, symbolVisualList[i], symbolVisual);\n        }\n      }\n    });\n\n    if (categoriesData.count()) {\n      data.each(function (idx) {\n        var model = data.getItemModel(idx);\n        var categoryIdx = model.getShallow('category');\n\n        if (categoryIdx != null) {\n          if (typeof categoryIdx === 'string') {\n            categoryIdx = categoryNameIdxMap['ec-' + categoryIdx];\n          }\n\n          var categoryStyle = categoriesData.getItemVisual(categoryIdx, 'style');\n          var style = data.ensureUniqueItemVisual(idx, 'style');\n          extend(style, categoryStyle);\n          var visualList = ['symbol', 'symbolSize', 'symbolKeepAspect'];\n\n          for (var i = 0; i < visualList.length; i++) {\n            data.setItemVisual(idx, visualList[i], categoriesData.getItemVisual(categoryIdx, visualList[i]));\n          }\n        }\n      });\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { extend } from 'zrender/lib/core/util';\n\nfunction normalize(a) {\n  if (!(a instanceof Array)) {\n    a = [a, a];\n  }\n\n  return a;\n}\n\nexport default function graphEdgeVisual(ecModel) {\n  ecModel.eachSeriesByType('graph', function (seriesModel) {\n    var graph = seriesModel.getGraph();\n    var edgeData = seriesModel.getEdgeData();\n    var symbolType = normalize(seriesModel.get('edgeSymbol'));\n    var symbolSize = normalize(seriesModel.get('edgeSymbolSize'));\n    edgeData.setVisual('fromSymbol', symbolType && symbolType[0]);\n    edgeData.setVisual('toSymbol', symbolType && symbolType[1]);\n    edgeData.setVisual('fromSymbolSize', symbolSize && symbolSize[0]);\n    edgeData.setVisual('toSymbolSize', symbolSize && symbolSize[1]);\n    edgeData.setVisual('style', seriesModel.getModel('lineStyle').getLineStyle());\n    edgeData.each(function (idx) {\n      var itemModel = edgeData.getItemModel(idx);\n      var edge = graph.getEdgeByIndex(idx);\n      var symbolType = normalize(itemModel.getShallow('symbol', true));\n      var symbolSize = normalize(itemModel.getShallow('symbolSize', true));\n      var style = itemModel.getModel('lineStyle').getLineStyle();\n      var existsStyle = edgeData.ensureUniqueItemVisual(idx, 'style');\n      extend(existsStyle, style);\n\n      switch (existsStyle.stroke) {\n        case 'source':\n          {\n            var nodeStyle = edge.node1.getVisual('style');\n            existsStyle.stroke = nodeStyle && nodeStyle.fill;\n            break;\n          }\n\n        case 'target':\n          {\n            var nodeStyle = edge.node2.getVisual('style');\n            existsStyle.stroke = nodeStyle && nodeStyle.fill;\n            break;\n          }\n      }\n\n      symbolType[0] && edge.setVisual('fromSymbol', symbolType[0]);\n      symbolType[1] && edge.setVisual('toSymbol', symbolType[1]);\n      symbolSize[0] && edge.setVisual('fromSymbolSize', symbolSize[0]);\n      symbolSize[1] && edge.setVisual('toSymbolSize', symbolSize[1]);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar KEY_DELIMITER = '-->';\n\nvar getAutoCurvenessParams = function (seriesModel) {\n  return seriesModel.get('autoCurveness') || null;\n};\n\nvar createCurveness = function (seriesModel, appendLength) {\n  var autoCurvenessParmas = getAutoCurvenessParams(seriesModel);\n  var length = 20;\n  var curvenessList = [];\n\n  if (typeof autoCurvenessParmas === 'number') {\n    length = autoCurvenessParmas;\n  } else if (zrUtil.isArray(autoCurvenessParmas)) {\n    seriesModel.__curvenessList = autoCurvenessParmas;\n    return;\n  }\n\n  if (appendLength > length) {\n    length = appendLength;\n  }\n\n  var len = length % 2 ? length + 2 : length + 3;\n  curvenessList = [];\n\n  for (var i = 0; i < len; i++) {\n    curvenessList.push((i % 2 ? i + 1 : i) / 10 * (i % 2 ? -1 : 1));\n  }\n\n  seriesModel.__curvenessList = curvenessList;\n};\n\nvar getKeyOfEdges = function (n1, n2, seriesModel) {\n  var source = [n1.id, n1.dataIndex].join('.');\n  var target = [n2.id, n2.dataIndex].join('.');\n  return [seriesModel.uid, source, target].join(KEY_DELIMITER);\n};\n\nvar getOppositeKey = function (key) {\n  var keys = key.split(KEY_DELIMITER);\n  return [keys[0], keys[2], keys[1]].join(KEY_DELIMITER);\n};\n\nvar getEdgeFromMap = function (edge, seriesModel) {\n  var key = getKeyOfEdges(edge.node1, edge.node2, seriesModel);\n  return seriesModel.__edgeMap[key];\n};\n\nvar getTotalLengthBetweenNodes = function (edge, seriesModel) {\n  var len = getEdgeMapLengthWithKey(getKeyOfEdges(edge.node1, edge.node2, seriesModel), seriesModel);\n  var lenV = getEdgeMapLengthWithKey(getKeyOfEdges(edge.node2, edge.node1, seriesModel), seriesModel);\n  return len + lenV;\n};\n\nvar getEdgeMapLengthWithKey = function (key, seriesModel) {\n  var edgeMap = seriesModel.__edgeMap;\n  return edgeMap[key] ? edgeMap[key].length : 0;\n};\n\nexport function initCurvenessList(seriesModel) {\n  if (!getAutoCurvenessParams(seriesModel)) {\n    return;\n  }\n\n  seriesModel.__curvenessList = [];\n  seriesModel.__edgeMap = {};\n  createCurveness(seriesModel);\n}\nexport function createEdgeMapForCurveness(n1, n2, seriesModel, index) {\n  if (!getAutoCurvenessParams(seriesModel)) {\n    return;\n  }\n\n  var key = getKeyOfEdges(n1, n2, seriesModel);\n  var edgeMap = seriesModel.__edgeMap;\n  var oppositeEdges = edgeMap[getOppositeKey(key)];\n\n  if (edgeMap[key] && !oppositeEdges) {\n    edgeMap[key].isForward = true;\n  } else if (oppositeEdges && edgeMap[key]) {\n    oppositeEdges.isForward = true;\n    edgeMap[key].isForward = false;\n  }\n\n  edgeMap[key] = edgeMap[key] || [];\n  edgeMap[key].push(index);\n}\nexport function getCurvenessForEdge(edge, seriesModel, index, needReverse) {\n  var autoCurvenessParams = getAutoCurvenessParams(seriesModel);\n  var isArrayParam = zrUtil.isArray(autoCurvenessParams);\n\n  if (!autoCurvenessParams) {\n    return null;\n  }\n\n  var edgeArray = getEdgeFromMap(edge, seriesModel);\n\n  if (!edgeArray) {\n    return null;\n  }\n\n  var edgeIndex = -1;\n\n  for (var i = 0; i < edgeArray.length; i++) {\n    if (edgeArray[i] === index) {\n      edgeIndex = i;\n      break;\n    }\n  }\n\n  var totalLen = getTotalLengthBetweenNodes(edge, seriesModel);\n  createCurveness(seriesModel, totalLen);\n  edge.lineStyle = edge.lineStyle || {};\n  var curKey = getKeyOfEdges(edge.node1, edge.node2, seriesModel);\n  var curvenessList = seriesModel.__curvenessList;\n  var parityCorrection = isArrayParam ? 0 : totalLen % 2 ? 0 : 1;\n\n  if (!edgeArray.isForward) {\n    var oppositeKey = getOppositeKey(curKey);\n    var len = getEdgeMapLengthWithKey(oppositeKey, seriesModel);\n    var resValue = curvenessList[edgeIndex + len + parityCorrection];\n\n    if (needReverse) {\n      if (isArrayParam) {\n        if (autoCurvenessParams && autoCurvenessParams[0] === 0) {\n          return (len + parityCorrection) % 2 ? resValue : -resValue;\n        } else {\n          return ((len % 2 ? 0 : 1) + parityCorrection) % 2 ? resValue : -resValue;\n        }\n      } else {\n        return (len + parityCorrection) % 2 ? resValue : -resValue;\n      }\n    } else {\n      return curvenessList[edgeIndex + len + parityCorrection];\n    }\n  } else {\n    return curvenessList[parityCorrection + edgeIndex];\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as vec2 from 'zrender/lib/core/vector';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { getCurvenessForEdge } from '../helper/multipleGraphEdgeHelper';\nexport function simpleLayout(seriesModel) {\n  var coordSys = seriesModel.coordinateSystem;\n\n  if (coordSys && coordSys.type !== 'view') {\n    return;\n  }\n\n  var graph = seriesModel.getGraph();\n  graph.eachNode(function (node) {\n    var model = node.getModel();\n    node.setLayout([+model.get('x'), +model.get('y')]);\n  });\n  simpleLayoutEdge(graph, seriesModel);\n}\nexport function simpleLayoutEdge(graph, seriesModel) {\n  graph.eachEdge(function (edge, index) {\n    var curveness = zrUtil.retrieve3(edge.getModel().get(['lineStyle', 'curveness']), -getCurvenessForEdge(edge, seriesModel, index, true), 0);\n    var p1 = vec2.clone(edge.node1.getLayout());\n    var p2 = vec2.clone(edge.node2.getLayout());\n    var points = [p1, p2];\n\n    if (+curveness) {\n      points.push([(p1[0] + p2[0]) / 2 - (p1[1] - p2[1]) * curveness, (p1[1] + p2[1]) / 2 - (p2[0] - p1[0]) * curveness]);\n    }\n\n    edge.setLayout(points);\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each } from 'zrender/lib/core/util';\nimport { simpleLayout, simpleLayoutEdge } from './simpleLayoutHelper';\nexport default function graphSimpleLayout(ecModel, api) {\n  ecModel.eachSeriesByType('graph', function (seriesModel) {\n    var layout = seriesModel.get('layout');\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys && coordSys.type !== 'view') {\n      var data_1 = seriesModel.getData();\n      var dimensions_1 = [];\n      each(coordSys.dimensions, function (coordDim) {\n        dimensions_1 = dimensions_1.concat(data_1.mapDimensionsAll(coordDim));\n      });\n\n      for (var dataIndex = 0; dataIndex < data_1.count(); dataIndex++) {\n        var value = [];\n        var hasValue = false;\n\n        for (var i = 0; i < dimensions_1.length; i++) {\n          var val = data_1.get(dimensions_1[i], dataIndex);\n\n          if (!isNaN(val)) {\n            hasValue = true;\n          }\n\n          value.push(val);\n        }\n\n        if (hasValue) {\n          data_1.setItemLayout(dataIndex, coordSys.dataToPoint(value));\n        } else {\n          data_1.setItemLayout(dataIndex, [NaN, NaN]);\n        }\n      }\n\n      simpleLayoutEdge(data_1.graph, seriesModel);\n    } else if (!layout || layout === 'none') {\n      simpleLayout(seriesModel);\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function getNodeGlobalScale(seriesModel) {\n  var coordSys = seriesModel.coordinateSystem;\n\n  if (coordSys.type !== 'view') {\n    return 1;\n  }\n\n  var nodeScaleRatio = seriesModel.option.nodeScaleRatio;\n  var groupZoom = coordSys.scaleX;\n  var roamZoom = coordSys.getZoom();\n  var nodeScale = (roamZoom - 1) * nodeScaleRatio + 1;\n  return nodeScale / groupZoom;\n}\nexport function getSymbolSize(node) {\n  var symbolSize = node.getVisual('symbolSize');\n\n  if (symbolSize instanceof Array) {\n    symbolSize = (symbolSize[0] + symbolSize[1]) / 2;\n  }\n\n  return +symbolSize;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as vec2 from 'zrender/lib/core/vector';\nimport { getSymbolSize, getNodeGlobalScale } from './graphHelper';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { getCurvenessForEdge } from '../helper/multipleGraphEdgeHelper';\nvar PI = Math.PI;\nvar _symbolRadiansHalf = [];\nexport function circularLayout(seriesModel, basedOn) {\n  var coordSys = seriesModel.coordinateSystem;\n\n  if (coordSys && coordSys.type !== 'view') {\n    return;\n  }\n\n  var rect = coordSys.getBoundingRect();\n  var nodeData = seriesModel.getData();\n  var graph = nodeData.graph;\n  var cx = rect.width / 2 + rect.x;\n  var cy = rect.height / 2 + rect.y;\n  var r = Math.min(rect.width, rect.height) / 2;\n  var count = nodeData.count();\n  nodeData.setLayout({\n    cx: cx,\n    cy: cy\n  });\n\n  if (!count) {\n    return;\n  }\n\n  _layoutNodesBasedOn[basedOn](seriesModel, graph, nodeData, r, cx, cy, count);\n\n  graph.eachEdge(function (edge, index) {\n    var curveness = zrUtil.retrieve3(edge.getModel().get(['lineStyle', 'curveness']), getCurvenessForEdge(edge, seriesModel, index), 0);\n    var p1 = vec2.clone(edge.node1.getLayout());\n    var p2 = vec2.clone(edge.node2.getLayout());\n    var cp1;\n    var x12 = (p1[0] + p2[0]) / 2;\n    var y12 = (p1[1] + p2[1]) / 2;\n\n    if (+curveness) {\n      curveness *= 3;\n      cp1 = [cx * curveness + x12 * (1 - curveness), cy * curveness + y12 * (1 - curveness)];\n    }\n\n    edge.setLayout([p1, p2, cp1]);\n  });\n}\nvar _layoutNodesBasedOn = {\n  value: function (seriesModel, graph, nodeData, r, cx, cy, count) {\n    var angle = 0;\n    var sum = nodeData.getSum('value');\n    var unitAngle = Math.PI * 2 / (sum || count);\n    graph.eachNode(function (node) {\n      var value = node.getValue('value');\n      var radianHalf = unitAngle * (sum ? value : 1) / 2;\n      angle += radianHalf;\n      node.setLayout([r * Math.cos(angle) + cx, r * Math.sin(angle) + cy]);\n      angle += radianHalf;\n    });\n  },\n  symbolSize: function (seriesModel, graph, nodeData, r, cx, cy, count) {\n    var sumRadian = 0;\n    _symbolRadiansHalf.length = count;\n    var nodeScale = getNodeGlobalScale(seriesModel);\n    graph.eachNode(function (node) {\n      var symbolSize = getSymbolSize(node);\n      isNaN(symbolSize) && (symbolSize = 2);\n      symbolSize < 0 && (symbolSize = 0);\n      symbolSize *= nodeScale;\n      var symbolRadianHalf = Math.asin(symbolSize / 2 / r);\n      isNaN(symbolRadianHalf) && (symbolRadianHalf = PI / 2);\n      _symbolRadiansHalf[node.dataIndex] = symbolRadianHalf;\n      sumRadian += symbolRadianHalf * 2;\n    });\n    var halfRemainRadian = (2 * PI - sumRadian) / count / 2;\n    var angle = 0;\n    graph.eachNode(function (node) {\n      var radianHalf = halfRemainRadian + _symbolRadiansHalf[node.dataIndex];\n      angle += radianHalf;\n      node.setLayout([r * Math.cos(angle) + cx, r * Math.sin(angle) + cy]);\n      angle += radianHalf;\n    });\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { circularLayout } from './circularLayoutHelper';\nexport default function graphCircularLayout(ecModel) {\n  ecModel.eachSeriesByType('graph', function (seriesModel) {\n    if (seriesModel.get('layout') === 'circular') {\n      circularLayout(seriesModel, 'symbolSize');\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as vec2 from 'zrender/lib/core/vector';\nvar scaleAndAdd = vec2.scaleAndAdd;\nexport function forceLayout(inNodes, inEdges, opts) {\n  var nodes = inNodes;\n  var edges = inEdges;\n  var rect = opts.rect;\n  var width = rect.width;\n  var height = rect.height;\n  var center = [rect.x + width / 2, rect.y + height / 2];\n  var gravity = opts.gravity == null ? 0.1 : opts.gravity;\n\n  for (var i = 0; i < nodes.length; i++) {\n    var n = nodes[i];\n\n    if (!n.p) {\n      n.p = vec2.create(width * (Math.random() - 0.5) + center[0], height * (Math.random() - 0.5) + center[1]);\n    }\n\n    n.pp = vec2.clone(n.p);\n    n.edges = null;\n  }\n\n  var initialFriction = opts.friction == null ? 0.6 : opts.friction;\n  var friction = initialFriction;\n  var beforeStepCallback;\n  var afterStepCallback;\n  return {\n    warmUp: function () {\n      friction = initialFriction * 0.8;\n    },\n    setFixed: function (idx) {\n      nodes[idx].fixed = true;\n    },\n    setUnfixed: function (idx) {\n      nodes[idx].fixed = false;\n    },\n    beforeStep: function (cb) {\n      beforeStepCallback = cb;\n    },\n    afterStep: function (cb) {\n      afterStepCallback = cb;\n    },\n    step: function (cb) {\n      beforeStepCallback && beforeStepCallback(nodes, edges);\n      var v12 = [];\n      var nLen = nodes.length;\n\n      for (var i = 0; i < edges.length; i++) {\n        var e = edges[i];\n\n        if (e.ignoreForceLayout) {\n          continue;\n        }\n\n        var n1 = e.n1;\n        var n2 = e.n2;\n        vec2.sub(v12, n2.p, n1.p);\n        var d = vec2.len(v12) - e.d;\n        var w = n2.w / (n1.w + n2.w);\n\n        if (isNaN(w)) {\n          w = 0;\n        }\n\n        vec2.normalize(v12, v12);\n        !n1.fixed && scaleAndAdd(n1.p, n1.p, v12, w * d * friction);\n        !n2.fixed && scaleAndAdd(n2.p, n2.p, v12, -(1 - w) * d * friction);\n      }\n\n      for (var i = 0; i < nLen; i++) {\n        var n = nodes[i];\n\n        if (!n.fixed) {\n          vec2.sub(v12, center, n.p);\n          scaleAndAdd(n.p, n.p, v12, gravity * friction);\n        }\n      }\n\n      for (var i = 0; i < nLen; i++) {\n        var n1 = nodes[i];\n\n        for (var j = i + 1; j < nLen; j++) {\n          var n2 = nodes[j];\n          vec2.sub(v12, n2.p, n1.p);\n          var d = vec2.len(v12);\n\n          if (d === 0) {\n            vec2.set(v12, Math.random() - 0.5, Math.random() - 0.5);\n            d = 1;\n          }\n\n          var repFact = (n1.rep + n2.rep) / d / d;\n          !n1.fixed && scaleAndAdd(n1.pp, n1.pp, v12, repFact);\n          !n2.fixed && scaleAndAdd(n2.pp, n2.pp, v12, -repFact);\n        }\n      }\n\n      var v = [];\n\n      for (var i = 0; i < nLen; i++) {\n        var n = nodes[i];\n\n        if (!n.fixed) {\n          vec2.sub(v, n.p, n.pp);\n          scaleAndAdd(n.p, n.p, v, friction);\n          vec2.copy(n.pp, n.p);\n        }\n      }\n\n      friction = friction * 0.992;\n      var finished = friction < 0.01;\n      afterStepCallback && afterStepCallback(nodes, edges, finished);\n      cb && cb(finished);\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { forceLayout } from './forceHelper';\nimport { simpleLayout } from './simpleLayoutHelper';\nimport { circularLayout } from './circularLayoutHelper';\nimport { linearMap } from '../../util/number';\nimport * as vec2 from 'zrender/lib/core/vector';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { getCurvenessForEdge } from '../helper/multipleGraphEdgeHelper';\nexport default function graphForceLayout(ecModel) {\n  ecModel.eachSeriesByType('graph', function (graphSeries) {\n    var coordSys = graphSeries.coordinateSystem;\n\n    if (coordSys && coordSys.type !== 'view') {\n      return;\n    }\n\n    if (graphSeries.get('layout') === 'force') {\n      var preservedPoints_1 = graphSeries.preservedPoints || {};\n      var graph_1 = graphSeries.getGraph();\n      var nodeData_1 = graph_1.data;\n      var edgeData = graph_1.edgeData;\n      var forceModel = graphSeries.getModel('force');\n      var initLayout = forceModel.get('initLayout');\n\n      if (graphSeries.preservedPoints) {\n        nodeData_1.each(function (idx) {\n          var id = nodeData_1.getId(idx);\n          nodeData_1.setItemLayout(idx, preservedPoints_1[id] || [NaN, NaN]);\n        });\n      } else if (!initLayout || initLayout === 'none') {\n        simpleLayout(graphSeries);\n      } else if (initLayout === 'circular') {\n        circularLayout(graphSeries, 'value');\n      }\n\n      var nodeDataExtent_1 = nodeData_1.getDataExtent('value');\n      var edgeDataExtent_1 = edgeData.getDataExtent('value');\n      var repulsion = forceModel.get('repulsion');\n      var edgeLength = forceModel.get('edgeLength');\n      var repulsionArr_1 = zrUtil.isArray(repulsion) ? repulsion : [repulsion, repulsion];\n      var edgeLengthArr_1 = zrUtil.isArray(edgeLength) ? edgeLength : [edgeLength, edgeLength];\n      edgeLengthArr_1 = [edgeLengthArr_1[1], edgeLengthArr_1[0]];\n      var nodes_1 = nodeData_1.mapArray('value', function (value, idx) {\n        var point = nodeData_1.getItemLayout(idx);\n        var rep = linearMap(value, nodeDataExtent_1, repulsionArr_1);\n\n        if (isNaN(rep)) {\n          rep = (repulsionArr_1[0] + repulsionArr_1[1]) / 2;\n        }\n\n        return {\n          w: rep,\n          rep: rep,\n          fixed: nodeData_1.getItemModel(idx).get('fixed'),\n          p: !point || isNaN(point[0]) || isNaN(point[1]) ? null : point\n        };\n      });\n      var edges = edgeData.mapArray('value', function (value, idx) {\n        var edge = graph_1.getEdgeByIndex(idx);\n        var d = linearMap(value, edgeDataExtent_1, edgeLengthArr_1);\n\n        if (isNaN(d)) {\n          d = (edgeLengthArr_1[0] + edgeLengthArr_1[1]) / 2;\n        }\n\n        var edgeModel = edge.getModel();\n        var curveness = zrUtil.retrieve3(edge.getModel().get(['lineStyle', 'curveness']), -getCurvenessForEdge(edge, graphSeries, idx, true), 0);\n        return {\n          n1: nodes_1[edge.node1.dataIndex],\n          n2: nodes_1[edge.node2.dataIndex],\n          d: d,\n          curveness: curveness,\n          ignoreForceLayout: edgeModel.get('ignoreForceLayout')\n        };\n      });\n      var rect = coordSys.getBoundingRect();\n      var forceInstance = forceLayout(nodes_1, edges, {\n        rect: rect,\n        gravity: forceModel.get('gravity'),\n        friction: forceModel.get('friction')\n      });\n      forceInstance.beforeStep(function (nodes, edges) {\n        for (var i = 0, l = nodes.length; i < l; i++) {\n          if (nodes[i].fixed) {\n            vec2.copy(nodes[i].p, graph_1.getNodeByIndex(i).getLayout());\n          }\n        }\n      });\n      forceInstance.afterStep(function (nodes, edges, stopped) {\n        for (var i = 0, l = nodes.length; i < l; i++) {\n          if (!nodes[i].fixed) {\n            graph_1.getNodeByIndex(i).setLayout(nodes[i].p);\n          }\n\n          preservedPoints_1[nodeData_1.getId(i)] = nodes[i].p;\n        }\n\n        for (var i = 0, l = edges.length; i < l; i++) {\n          var e = edges[i];\n          var edge = graph_1.getEdgeByIndex(i);\n          var p1 = e.n1.p;\n          var p2 = e.n2.p;\n          var points = edge.getLayout();\n          points = points ? points.slice() : [];\n          points[0] = points[0] || [];\n          points[1] = points[1] || [];\n          vec2.copy(points[0], p1);\n          vec2.copy(points[1], p2);\n\n          if (+e.curveness) {\n            points[2] = [(p1[0] + p2[0]) / 2 - (p1[1] - p2[1]) * e.curveness, (p1[1] + p2[1]) / 2 - (p2[0] - p1[0]) * e.curveness];\n          }\n\n          edge.setLayout(points);\n        }\n      });\n      graphSeries.forceLayout = forceInstance;\n      graphSeries.preservedPoints = preservedPoints_1;\n      forceInstance.step();\n    } else {\n      graphSeries.forceLayout = null;\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport View from '../../coord/View';\nimport { getLayoutRect } from '../../util/layout';\nimport * as bbox from 'zrender/lib/core/bbox';\nimport { extend } from 'zrender/lib/core/util';\n\nfunction getViewRect(seriesModel, api, aspect) {\n  var option = extend(seriesModel.getBoxLayoutParams(), {\n    aspect: aspect\n  });\n  return getLayoutRect(option, {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n}\n\nexport default function createViewCoordSys(ecModel, api) {\n  var viewList = [];\n  ecModel.eachSeriesByType('graph', function (seriesModel) {\n    var coordSysType = seriesModel.get('coordinateSystem');\n\n    if (!coordSysType || coordSysType === 'view') {\n      var data_1 = seriesModel.getData();\n      var positions = data_1.mapArray(function (idx) {\n        var itemModel = data_1.getItemModel(idx);\n        return [+itemModel.get('x'), +itemModel.get('y')];\n      });\n      var min = [];\n      var max = [];\n      bbox.fromPoints(positions, min, max);\n\n      if (max[0] - min[0] === 0) {\n        max[0] += 1;\n        min[0] -= 1;\n      }\n\n      if (max[1] - min[1] === 0) {\n        max[1] += 1;\n        min[1] -= 1;\n      }\n\n      var aspect = (max[0] - min[0]) / (max[1] - min[1]);\n      var viewRect = getViewRect(seriesModel, api, aspect);\n\n      if (isNaN(aspect)) {\n        min = [viewRect.x, viewRect.y];\n        max = [viewRect.x + viewRect.width, viewRect.y + viewRect.height];\n      }\n\n      var bbWidth = max[0] - min[0];\n      var bbHeight = max[1] - min[1];\n      var viewWidth = viewRect.width;\n      var viewHeight = viewRect.height;\n      var viewCoordSys = seriesModel.coordinateSystem = new View();\n      viewCoordSys.zoomLimit = seriesModel.get('scaleLimit');\n      viewCoordSys.setBoundingRect(min[0], min[1], bbWidth, bbHeight);\n      viewCoordSys.setViewRect(viewRect.x, viewRect.y, viewWidth, viewHeight);\n      viewCoordSys.setCenter(seriesModel.get('center'));\n      viewCoordSys.setZoom(seriesModel.get('zoom'));\n      viewList.push(viewCoordSys);\n    }\n  });\n  return viewList;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport * as vec2 from 'zrender/lib/core/vector';\nvar straightLineProto = graphic.Line.prototype;\nvar bezierCurveProto = graphic.BezierCurve.prototype;\n\nvar StraightLineShape = function () {\n  function StraightLineShape() {\n    this.x1 = 0;\n    this.y1 = 0;\n    this.x2 = 0;\n    this.y2 = 0;\n    this.percent = 1;\n  }\n\n  return StraightLineShape;\n}();\n\nvar CurveShape = function (_super) {\n  __extends(CurveShape, _super);\n\n  function CurveShape() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  return CurveShape;\n}(StraightLineShape);\n\nfunction isStraightLine(shape) {\n  return isNaN(+shape.cpx1) || isNaN(+shape.cpy1);\n}\n\nvar ECLinePath = function (_super) {\n  __extends(ECLinePath, _super);\n\n  function ECLinePath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'ec-line';\n    return _this;\n  }\n\n  ECLinePath.prototype.getDefaultStyle = function () {\n    return {\n      stroke: '#000',\n      fill: null\n    };\n  };\n\n  ECLinePath.prototype.getDefaultShape = function () {\n    return new StraightLineShape();\n  };\n\n  ECLinePath.prototype.buildPath = function (ctx, shape) {\n    if (isStraightLine(shape)) {\n      straightLineProto.buildPath.call(this, ctx, shape);\n    } else {\n      bezierCurveProto.buildPath.call(this, ctx, shape);\n    }\n  };\n\n  ECLinePath.prototype.pointAt = function (t) {\n    if (isStraightLine(this.shape)) {\n      return straightLineProto.pointAt.call(this, t);\n    } else {\n      return bezierCurveProto.pointAt.call(this, t);\n    }\n  };\n\n  ECLinePath.prototype.tangentAt = function (t) {\n    var shape = this.shape;\n    var p = isStraightLine(shape) ? [shape.x2 - shape.x1, shape.y2 - shape.y1] : bezierCurveProto.tangentAt.call(this, t);\n    return vec2.normalize(p, p);\n  };\n\n  return ECLinePath;\n}(graphic.Path);\n\nexport default ECLinePath;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as vector from 'zrender/lib/core/vector';\nimport * as symbolUtil from '../../util/symbol';\nimport ECLinePath from './LinePath';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis, enterEmphasis, leaveEmphasis, SPECIAL_STATES } from '../../util/states';\nimport { getLabelStatesModels, setLabelStyle } from '../../label/labelStyle';\nimport { round } from '../../util/number';\nvar SYMBOL_CATEGORIES = ['fromSymbol', 'toSymbol'];\n\nfunction makeSymbolTypeKey(symbolCategory) {\n  return '_' + symbolCategory + 'Type';\n}\n\nfunction createSymbol(name, lineData, idx) {\n  var symbolType = lineData.getItemVisual(idx, name);\n\n  if (!symbolType || symbolType === 'none') {\n    return;\n  }\n\n  var symbolSize = lineData.getItemVisual(idx, name + 'Size');\n  var symbolRotate = lineData.getItemVisual(idx, name + 'Rotate');\n  var symbolSizeArr = zrUtil.isArray(symbolSize) ? symbolSize : [symbolSize, symbolSize];\n  var symbolPath = symbolUtil.createSymbol(symbolType, -symbolSizeArr[0] / 2, -symbolSizeArr[1] / 2, symbolSizeArr[0], symbolSizeArr[1]);\n  symbolPath.__specifiedRotation = symbolRotate == null || isNaN(symbolRotate) ? void 0 : +symbolRotate * Math.PI / 180 || 0;\n  symbolPath.name = name;\n  return symbolPath;\n}\n\nfunction createLine(points) {\n  var line = new ECLinePath({\n    name: 'line',\n    subPixelOptimize: true\n  });\n  setLinePoints(line.shape, points);\n  return line;\n}\n\nfunction setLinePoints(targetShape, points) {\n  targetShape.x1 = points[0][0];\n  targetShape.y1 = points[0][1];\n  targetShape.x2 = points[1][0];\n  targetShape.y2 = points[1][1];\n  targetShape.percent = 1;\n  var cp1 = points[2];\n\n  if (cp1) {\n    targetShape.cpx1 = cp1[0];\n    targetShape.cpy1 = cp1[1];\n  } else {\n    targetShape.cpx1 = NaN;\n    targetShape.cpy1 = NaN;\n  }\n}\n\nvar Line = function (_super) {\n  __extends(Line, _super);\n\n  function Line(lineData, idx, seriesScope) {\n    var _this = _super.call(this) || this;\n\n    _this._createLine(lineData, idx, seriesScope);\n\n    return _this;\n  }\n\n  Line.prototype._createLine = function (lineData, idx, seriesScope) {\n    var seriesModel = lineData.hostModel;\n    var linePoints = lineData.getItemLayout(idx);\n    var line = createLine(linePoints);\n    line.shape.percent = 0;\n    graphic.initProps(line, {\n      shape: {\n        percent: 1\n      }\n    }, seriesModel, idx);\n    this.add(line);\n    zrUtil.each(SYMBOL_CATEGORIES, function (symbolCategory) {\n      var symbol = createSymbol(symbolCategory, lineData, idx);\n      this.add(symbol);\n      this[makeSymbolTypeKey(symbolCategory)] = lineData.getItemVisual(idx, symbolCategory);\n    }, this);\n\n    this._updateCommonStl(lineData, idx, seriesScope);\n  };\n\n  Line.prototype.updateData = function (lineData, idx, seriesScope) {\n    var seriesModel = lineData.hostModel;\n    var line = this.childOfName('line');\n    var linePoints = lineData.getItemLayout(idx);\n    var target = {\n      shape: {}\n    };\n    setLinePoints(target.shape, linePoints);\n    graphic.updateProps(line, target, seriesModel, idx);\n    zrUtil.each(SYMBOL_CATEGORIES, function (symbolCategory) {\n      var symbolType = lineData.getItemVisual(idx, symbolCategory);\n      var key = makeSymbolTypeKey(symbolCategory);\n\n      if (this[key] !== symbolType) {\n        this.remove(this.childOfName(symbolCategory));\n        var symbol = createSymbol(symbolCategory, lineData, idx);\n        this.add(symbol);\n      }\n\n      this[key] = symbolType;\n    }, this);\n\n    this._updateCommonStl(lineData, idx, seriesScope);\n  };\n\n  ;\n\n  Line.prototype.getLinePath = function () {\n    return this.childAt(0);\n  };\n\n  Line.prototype._updateCommonStl = function (lineData, idx, seriesScope) {\n    var seriesModel = lineData.hostModel;\n    var line = this.childOfName('line');\n    var emphasisLineStyle = seriesScope && seriesScope.emphasisLineStyle;\n    var blurLineStyle = seriesScope && seriesScope.blurLineStyle;\n    var selectLineStyle = seriesScope && seriesScope.selectLineStyle;\n    var labelStatesModels = seriesScope && seriesScope.labelStatesModels;\n\n    if (!seriesScope || lineData.hasItemOption) {\n      var itemModel = lineData.getItemModel(idx);\n      emphasisLineStyle = itemModel.getModel(['emphasis', 'lineStyle']).getLineStyle();\n      blurLineStyle = itemModel.getModel(['blur', 'lineStyle']).getLineStyle();\n      selectLineStyle = itemModel.getModel(['select', 'lineStyle']).getLineStyle();\n      labelStatesModels = getLabelStatesModels(itemModel);\n    }\n\n    var lineStyle = lineData.getItemVisual(idx, 'style');\n    var visualColor = lineStyle.stroke;\n    line.useStyle(lineStyle);\n    line.style.fill = null;\n    line.style.strokeNoScale = true;\n    line.ensureState('emphasis').style = emphasisLineStyle;\n    line.ensureState('blur').style = blurLineStyle;\n    line.ensureState('select').style = selectLineStyle;\n    zrUtil.each(SYMBOL_CATEGORIES, function (symbolCategory) {\n      var symbol = this.childOfName(symbolCategory);\n\n      if (symbol) {\n        symbol.setColor(visualColor);\n        symbol.style.opacity = lineStyle.opacity;\n\n        for (var i = 0; i < SPECIAL_STATES.length; i++) {\n          var stateName = SPECIAL_STATES[i];\n          var lineState = line.getState(stateName);\n\n          if (lineState) {\n            var lineStateStyle = lineState.style || {};\n            var state = symbol.ensureState(stateName);\n            var stateStyle = state.style || (state.style = {});\n\n            if (lineStateStyle.stroke != null) {\n              stateStyle[symbol.__isEmptyBrush ? 'stroke' : 'fill'] = lineStateStyle.stroke;\n            }\n\n            if (lineStateStyle.opacity != null) {\n              stateStyle.opacity = lineStateStyle.opacity;\n            }\n          }\n        }\n\n        symbol.markRedraw();\n      }\n    }, this);\n    var rawVal = seriesModel.getRawValue(idx);\n    setLabelStyle(this, labelStatesModels, {\n      labelDataIndex: idx,\n      labelFetcher: {\n        getFormattedLabel: function (dataIndex, stateName) {\n          return seriesModel.getFormattedLabel(dataIndex, stateName, lineData.dataType);\n        }\n      },\n      inheritColor: visualColor || '#000',\n      defaultOpacity: lineStyle.opacity,\n      defaultText: (rawVal == null ? lineData.getName(idx) : isFinite(rawVal) ? round(rawVal) : rawVal) + ''\n    });\n    var label = this.getTextContent();\n\n    if (label) {\n      var labelNormalModel = labelStatesModels.normal;\n      label.__align = label.style.align;\n      label.__verticalAlign = label.style.verticalAlign;\n      label.__position = labelNormalModel.get('position') || 'middle';\n      var distance = labelNormalModel.get('distance');\n\n      if (!zrUtil.isArray(distance)) {\n        distance = [distance, distance];\n      }\n\n      label.__labelDistance = distance;\n    }\n\n    this.setTextConfig({\n      position: null,\n      local: true,\n      inside: false\n    });\n    enableHoverEmphasis(this);\n  };\n\n  Line.prototype.highlight = function () {\n    enterEmphasis(this);\n  };\n\n  Line.prototype.downplay = function () {\n    leaveEmphasis(this);\n  };\n\n  Line.prototype.updateLayout = function (lineData, idx) {\n    this.setLinePoints(lineData.getItemLayout(idx));\n  };\n\n  Line.prototype.setLinePoints = function (points) {\n    var linePath = this.childOfName('line');\n    setLinePoints(linePath.shape, points);\n    linePath.dirty();\n  };\n\n  Line.prototype.beforeUpdate = function () {\n    var lineGroup = this;\n    var symbolFrom = lineGroup.childOfName('fromSymbol');\n    var symbolTo = lineGroup.childOfName('toSymbol');\n    var label = lineGroup.getTextContent();\n\n    if (!symbolFrom && !symbolTo && (!label || label.ignore)) {\n      return;\n    }\n\n    var invScale = 1;\n    var parentNode = this.parent;\n\n    while (parentNode) {\n      if (parentNode.scaleX) {\n        invScale /= parentNode.scaleX;\n      }\n\n      parentNode = parentNode.parent;\n    }\n\n    var line = lineGroup.childOfName('line');\n\n    if (!this.__dirty && !line.__dirty) {\n      return;\n    }\n\n    var percent = line.shape.percent;\n    var fromPos = line.pointAt(0);\n    var toPos = line.pointAt(percent);\n    var d = vector.sub([], toPos, fromPos);\n    vector.normalize(d, d);\n\n    function setSymbolRotation(symbol, percent) {\n      var specifiedRotation = symbol.__specifiedRotation;\n\n      if (specifiedRotation == null) {\n        var tangent = line.tangentAt(percent);\n        symbol.attr('rotation', (percent === 1 ? -1 : 1) * Math.PI / 2 - Math.atan2(tangent[1], tangent[0]));\n      } else {\n        symbol.attr('rotation', specifiedRotation);\n      }\n    }\n\n    if (symbolFrom) {\n      symbolFrom.setPosition(fromPos);\n      setSymbolRotation(symbolFrom, 0);\n      symbolFrom.scaleX = symbolFrom.scaleY = invScale * percent;\n      symbolFrom.markRedraw();\n    }\n\n    if (symbolTo) {\n      symbolTo.setPosition(toPos);\n      setSymbolRotation(symbolTo, 1);\n      symbolTo.scaleX = symbolTo.scaleY = invScale * percent;\n      symbolTo.markRedraw();\n    }\n\n    if (label && !label.ignore) {\n      label.x = label.y = 0;\n      label.originX = label.originY = 0;\n      var textAlign = void 0;\n      var textVerticalAlign = void 0;\n      var distance = label.__labelDistance;\n      var distanceX = distance[0] * invScale;\n      var distanceY = distance[1] * invScale;\n      var halfPercent = percent / 2;\n      var tangent = line.tangentAt(halfPercent);\n      var n = [tangent[1], -tangent[0]];\n      var cp = line.pointAt(halfPercent);\n\n      if (n[1] > 0) {\n        n[0] = -n[0];\n        n[1] = -n[1];\n      }\n\n      var dir = tangent[0] < 0 ? -1 : 1;\n\n      if (label.__position !== 'start' && label.__position !== 'end') {\n        var rotation = -Math.atan2(tangent[1], tangent[0]);\n\n        if (toPos[0] < fromPos[0]) {\n          rotation = Math.PI + rotation;\n        }\n\n        label.rotation = rotation;\n      }\n\n      var dy = void 0;\n\n      switch (label.__position) {\n        case 'insideStartTop':\n        case 'insideMiddleTop':\n        case 'insideEndTop':\n        case 'middle':\n          dy = -distanceY;\n          textVerticalAlign = 'bottom';\n          break;\n\n        case 'insideStartBottom':\n        case 'insideMiddleBottom':\n        case 'insideEndBottom':\n          dy = distanceY;\n          textVerticalAlign = 'top';\n          break;\n\n        default:\n          dy = 0;\n          textVerticalAlign = 'middle';\n      }\n\n      switch (label.__position) {\n        case 'end':\n          label.x = d[0] * distanceX + toPos[0];\n          label.y = d[1] * distanceY + toPos[1];\n          textAlign = d[0] > 0.8 ? 'left' : d[0] < -0.8 ? 'right' : 'center';\n          textVerticalAlign = d[1] > 0.8 ? 'top' : d[1] < -0.8 ? 'bottom' : 'middle';\n          break;\n\n        case 'start':\n          label.x = -d[0] * distanceX + fromPos[0];\n          label.y = -d[1] * distanceY + fromPos[1];\n          textAlign = d[0] > 0.8 ? 'right' : d[0] < -0.8 ? 'left' : 'center';\n          textVerticalAlign = d[1] > 0.8 ? 'bottom' : d[1] < -0.8 ? 'top' : 'middle';\n          break;\n\n        case 'insideStartTop':\n        case 'insideStart':\n        case 'insideStartBottom':\n          label.x = distanceX * dir + fromPos[0];\n          label.y = fromPos[1] + dy;\n          textAlign = tangent[0] < 0 ? 'right' : 'left';\n          label.originX = -distanceX * dir;\n          label.originY = -dy;\n          break;\n\n        case 'insideMiddleTop':\n        case 'insideMiddle':\n        case 'insideMiddleBottom':\n        case 'middle':\n          label.x = cp[0];\n          label.y = cp[1] + dy;\n          textAlign = 'center';\n          label.originY = -dy;\n          break;\n\n        case 'insideEndTop':\n        case 'insideEnd':\n        case 'insideEndBottom':\n          label.x = -distanceX * dir + toPos[0];\n          label.y = toPos[1] + dy;\n          textAlign = tangent[0] >= 0 ? 'right' : 'left';\n          label.originX = distanceX * dir;\n          label.originY = -dy;\n          break;\n      }\n\n      label.scaleX = label.scaleY = invScale;\n      label.setStyle({\n        verticalAlign: label.__verticalAlign || textVerticalAlign,\n        align: label.__align || textAlign\n      });\n    }\n  };\n\n  return Line;\n}(graphic.Group);\n\nexport default Line;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as graphic from '../../util/graphic';\nimport LineGroup from './Line';\nimport { getLabelStatesModels } from '../../label/labelStyle';\n\nvar LineDraw = function () {\n  function LineDraw(LineCtor) {\n    this.group = new graphic.Group();\n    this._LineCtor = LineCtor || LineGroup;\n  }\n\n  LineDraw.prototype.isPersistent = function () {\n    return true;\n  };\n\n  ;\n\n  LineDraw.prototype.updateData = function (lineData) {\n    var _this = this;\n\n    var lineDraw = this;\n    var group = lineDraw.group;\n    var oldLineData = lineDraw._lineData;\n    lineDraw._lineData = lineData;\n\n    if (!oldLineData) {\n      group.removeAll();\n    }\n\n    var seriesScope = makeSeriesScope(lineData);\n    lineData.diff(oldLineData).add(function (idx) {\n      _this._doAdd(lineData, idx, seriesScope);\n    }).update(function (newIdx, oldIdx) {\n      _this._doUpdate(oldLineData, lineData, oldIdx, newIdx, seriesScope);\n    }).remove(function (idx) {\n      group.remove(oldLineData.getItemGraphicEl(idx));\n    }).execute();\n  };\n\n  ;\n\n  LineDraw.prototype.updateLayout = function () {\n    var lineData = this._lineData;\n\n    if (!lineData) {\n      return;\n    }\n\n    lineData.eachItemGraphicEl(function (el, idx) {\n      el.updateLayout(lineData, idx);\n    }, this);\n  };\n\n  ;\n\n  LineDraw.prototype.incrementalPrepareUpdate = function (lineData) {\n    this._seriesScope = makeSeriesScope(lineData);\n    this._lineData = null;\n    this.group.removeAll();\n  };\n\n  ;\n\n  LineDraw.prototype.incrementalUpdate = function (taskParams, lineData) {\n    function updateIncrementalAndHover(el) {\n      if (!el.isGroup && !isEffectObject(el)) {\n        el.incremental = true;\n        el.ensureState('emphasis').hoverLayer = true;\n      }\n    }\n\n    for (var idx = taskParams.start; idx < taskParams.end; idx++) {\n      var itemLayout = lineData.getItemLayout(idx);\n\n      if (lineNeedsDraw(itemLayout)) {\n        var el = new this._LineCtor(lineData, idx, this._seriesScope);\n        el.traverse(updateIncrementalAndHover);\n        this.group.add(el);\n        lineData.setItemGraphicEl(idx, el);\n      }\n    }\n  };\n\n  ;\n\n  LineDraw.prototype.remove = function () {\n    this.group.removeAll();\n  };\n\n  ;\n\n  LineDraw.prototype._doAdd = function (lineData, idx, seriesScope) {\n    var itemLayout = lineData.getItemLayout(idx);\n\n    if (!lineNeedsDraw(itemLayout)) {\n      return;\n    }\n\n    var el = new this._LineCtor(lineData, idx, seriesScope);\n    lineData.setItemGraphicEl(idx, el);\n    this.group.add(el);\n  };\n\n  LineDraw.prototype._doUpdate = function (oldLineData, newLineData, oldIdx, newIdx, seriesScope) {\n    var itemEl = oldLineData.getItemGraphicEl(oldIdx);\n\n    if (!lineNeedsDraw(newLineData.getItemLayout(newIdx))) {\n      this.group.remove(itemEl);\n      return;\n    }\n\n    if (!itemEl) {\n      itemEl = new this._LineCtor(newLineData, newIdx, seriesScope);\n    } else {\n      itemEl.updateData(newLineData, newIdx, seriesScope);\n    }\n\n    newLineData.setItemGraphicEl(newIdx, itemEl);\n    this.group.add(itemEl);\n  };\n\n  return LineDraw;\n}();\n\nfunction isEffectObject(el) {\n  return el.animators && el.animators.length > 0;\n}\n\nfunction makeSeriesScope(lineData) {\n  var hostModel = lineData.hostModel;\n  return {\n    lineStyle: hostModel.getModel('lineStyle').getLineStyle(),\n    emphasisLineStyle: hostModel.getModel(['emphasis', 'lineStyle']).getLineStyle(),\n    blurLineStyle: hostModel.getModel(['blur', 'lineStyle']).getLineStyle(),\n    selectLineStyle: hostModel.getModel(['select', 'lineStyle']).getLineStyle(),\n    labelStatesModels: getLabelStatesModels(hostModel)\n  };\n}\n\nfunction isPointNaN(pt) {\n  return isNaN(pt[0]) || isNaN(pt[1]);\n}\n\nfunction lineNeedsDraw(pts) {\n  return !isPointNaN(pts[0]) && !isPointNaN(pts[1]);\n}\n\nexport default LineDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as curveTool from 'zrender/lib/core/curve';\nimport * as vec2 from 'zrender/lib/core/vector';\nimport { getSymbolSize } from './graphHelper';\nvar v1 = [];\nvar v2 = [];\nvar v3 = [];\nvar quadraticAt = curveTool.quadraticAt;\nvar v2DistSquare = vec2.distSquare;\nvar mathAbs = Math.abs;\n\nfunction intersectCurveCircle(curvePoints, center, radius) {\n  var p0 = curvePoints[0];\n  var p1 = curvePoints[1];\n  var p2 = curvePoints[2];\n  var d = Infinity;\n  var t;\n  var radiusSquare = radius * radius;\n  var interval = 0.1;\n\n  for (var _t = 0.1; _t <= 0.9; _t += 0.1) {\n    v1[0] = quadraticAt(p0[0], p1[0], p2[0], _t);\n    v1[1] = quadraticAt(p0[1], p1[1], p2[1], _t);\n    var diff = mathAbs(v2DistSquare(v1, center) - radiusSquare);\n\n    if (diff < d) {\n      d = diff;\n      t = _t;\n    }\n  }\n\n  for (var i = 0; i < 32; i++) {\n    var next = t + interval;\n    v2[0] = quadraticAt(p0[0], p1[0], p2[0], t);\n    v2[1] = quadraticAt(p0[1], p1[1], p2[1], t);\n    v3[0] = quadraticAt(p0[0], p1[0], p2[0], next);\n    v3[1] = quadraticAt(p0[1], p1[1], p2[1], next);\n    var diff = v2DistSquare(v2, center) - radiusSquare;\n\n    if (mathAbs(diff) < 1e-2) {\n      break;\n    }\n\n    var nextDiff = v2DistSquare(v3, center) - radiusSquare;\n    interval /= 2;\n\n    if (diff < 0) {\n      if (nextDiff >= 0) {\n        t = t + interval;\n      } else {\n        t = t - interval;\n      }\n    } else {\n      if (nextDiff >= 0) {\n        t = t - interval;\n      } else {\n        t = t + interval;\n      }\n    }\n  }\n\n  return t;\n}\n\nexport default function adjustEdge(graph, scale) {\n  var tmp0 = [];\n  var quadraticSubdivide = curveTool.quadraticSubdivide;\n  var pts = [[], [], []];\n  var pts2 = [[], []];\n  var v = [];\n  scale /= 2;\n  graph.eachEdge(function (edge, idx) {\n    var linePoints = edge.getLayout();\n    var fromSymbol = edge.getVisual('fromSymbol');\n    var toSymbol = edge.getVisual('toSymbol');\n\n    if (!linePoints.__original) {\n      linePoints.__original = [vec2.clone(linePoints[0]), vec2.clone(linePoints[1])];\n\n      if (linePoints[2]) {\n        linePoints.__original.push(vec2.clone(linePoints[2]));\n      }\n    }\n\n    var originalPoints = linePoints.__original;\n\n    if (linePoints[2] != null) {\n      vec2.copy(pts[0], originalPoints[0]);\n      vec2.copy(pts[1], originalPoints[2]);\n      vec2.copy(pts[2], originalPoints[1]);\n\n      if (fromSymbol && fromSymbol !== 'none') {\n        var symbolSize = getSymbolSize(edge.node1);\n        var t = intersectCurveCircle(pts, originalPoints[0], symbolSize * scale);\n        quadraticSubdivide(pts[0][0], pts[1][0], pts[2][0], t, tmp0);\n        pts[0][0] = tmp0[3];\n        pts[1][0] = tmp0[4];\n        quadraticSubdivide(pts[0][1], pts[1][1], pts[2][1], t, tmp0);\n        pts[0][1] = tmp0[3];\n        pts[1][1] = tmp0[4];\n      }\n\n      if (toSymbol && toSymbol !== 'none') {\n        var symbolSize = getSymbolSize(edge.node2);\n        var t = intersectCurveCircle(pts, originalPoints[1], symbolSize * scale);\n        quadraticSubdivide(pts[0][0], pts[1][0], pts[2][0], t, tmp0);\n        pts[1][0] = tmp0[1];\n        pts[2][0] = tmp0[2];\n        quadraticSubdivide(pts[0][1], pts[1][1], pts[2][1], t, tmp0);\n        pts[1][1] = tmp0[1];\n        pts[2][1] = tmp0[2];\n      }\n\n      vec2.copy(linePoints[0], pts[0]);\n      vec2.copy(linePoints[1], pts[2]);\n      vec2.copy(linePoints[2], pts[1]);\n    } else {\n      vec2.copy(pts2[0], originalPoints[0]);\n      vec2.copy(pts2[1], originalPoints[1]);\n      vec2.sub(v, pts2[1], pts2[0]);\n      vec2.normalize(v, v);\n\n      if (fromSymbol && fromSymbol !== 'none') {\n        var symbolSize = getSymbolSize(edge.node1);\n        vec2.scaleAndAdd(pts2[0], pts2[0], v, symbolSize * scale);\n      }\n\n      if (toSymbol && toSymbol !== 'none') {\n        var symbolSize = getSymbolSize(edge.node2);\n        vec2.scaleAndAdd(pts2[1], pts2[1], v, -symbolSize * scale);\n      }\n\n      vec2.copy(linePoints[0], pts2[0]);\n      vec2.copy(linePoints[1], pts2[1]);\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport SymbolDraw from '../helper/SymbolDraw';\nimport LineDraw from '../helper/LineDraw';\nimport RoamController from '../../component/helper/RoamController';\nimport * as roamHelper from '../../component/helper/roamHelper';\nimport { onIrrelevantElement } from '../../component/helper/cursorHelper';\nimport * as graphic from '../../util/graphic';\nimport adjustEdge from './adjustEdge';\nimport { getNodeGlobalScale } from './graphHelper';\nimport ChartView from '../../view/Chart';\nimport { getECData } from '../../util/innerStore';\n\nfunction isViewCoordSys(coordSys) {\n  return coordSys.type === 'view';\n}\n\nvar GraphView = function (_super) {\n  __extends(GraphView, _super);\n\n  function GraphView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GraphView.type;\n    return _this;\n  }\n\n  GraphView.prototype.init = function (ecModel, api) {\n    var symbolDraw = new SymbolDraw();\n    var lineDraw = new LineDraw();\n    var group = this.group;\n    this._controller = new RoamController(api.getZr());\n    this._controllerHost = {\n      target: group\n    };\n    group.add(symbolDraw.group);\n    group.add(lineDraw.group);\n    this._symbolDraw = symbolDraw;\n    this._lineDraw = lineDraw;\n    this._firstRender = true;\n  };\n\n  GraphView.prototype.render = function (seriesModel, ecModel, api) {\n    var _this = this;\n\n    var coordSys = seriesModel.coordinateSystem;\n    this._model = seriesModel;\n    var symbolDraw = this._symbolDraw;\n    var lineDraw = this._lineDraw;\n    var group = this.group;\n\n    if (isViewCoordSys(coordSys)) {\n      var groupNewProp = {\n        x: coordSys.x,\n        y: coordSys.y,\n        scaleX: coordSys.scaleX,\n        scaleY: coordSys.scaleY\n      };\n\n      if (this._firstRender) {\n        group.attr(groupNewProp);\n      } else {\n        graphic.updateProps(group, groupNewProp, seriesModel);\n      }\n    }\n\n    adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));\n    var data = seriesModel.getData();\n    symbolDraw.updateData(data);\n    var edgeData = seriesModel.getEdgeData();\n    lineDraw.updateData(edgeData);\n\n    this._updateNodeAndLinkScale();\n\n    this._updateController(seriesModel, ecModel, api);\n\n    clearTimeout(this._layoutTimeout);\n    var forceLayout = seriesModel.forceLayout;\n    var layoutAnimation = seriesModel.get(['force', 'layoutAnimation']);\n\n    if (forceLayout) {\n      this._startForceLayoutIteration(forceLayout, layoutAnimation);\n    }\n\n    data.graph.eachNode(function (node) {\n      var idx = node.dataIndex;\n      var el = node.getGraphicEl();\n      var itemModel = node.getModel();\n      el.off('drag').off('dragend');\n      var draggable = itemModel.get('draggable');\n\n      if (draggable) {\n        el.on('drag', function () {\n          if (forceLayout) {\n            forceLayout.warmUp();\n            !_this._layouting && _this._startForceLayoutIteration(forceLayout, layoutAnimation);\n            forceLayout.setFixed(idx);\n            data.setItemLayout(idx, [el.x, el.y]);\n          }\n        }).on('dragend', function () {\n          if (forceLayout) {\n            forceLayout.setUnfixed(idx);\n          }\n        });\n      }\n\n      el.setDraggable(draggable && !!forceLayout);\n      var focus = itemModel.get(['emphasis', 'focus']);\n\n      if (focus === 'adjacency') {\n        getECData(el).focus = node.getAdjacentDataIndices();\n      }\n    });\n    data.graph.eachEdge(function (edge) {\n      var el = edge.getGraphicEl();\n      var focus = edge.getModel().get(['emphasis', 'focus']);\n\n      if (focus === 'adjacency') {\n        getECData(el).focus = {\n          edge: [edge.dataIndex],\n          node: [edge.node1.dataIndex, edge.node2.dataIndex]\n        };\n      }\n    });\n    var circularRotateLabel = seriesModel.get('layout') === 'circular' && seriesModel.get(['circular', 'rotateLabel']);\n    var cx = data.getLayout('cx');\n    var cy = data.getLayout('cy');\n    data.eachItemGraphicEl(function (el, idx) {\n      var itemModel = data.getItemModel(idx);\n      var labelRotate = itemModel.get(['label', 'rotate']) || 0;\n      var symbolPath = el.getSymbolPath();\n\n      if (circularRotateLabel) {\n        var pos = data.getItemLayout(idx);\n        var rad = Math.atan2(pos[1] - cy, pos[0] - cx);\n\n        if (rad < 0) {\n          rad = Math.PI * 2 + rad;\n        }\n\n        var isLeft = pos[0] < cx;\n\n        if (isLeft) {\n          rad = rad - Math.PI;\n        }\n\n        var textPosition = isLeft ? 'left' : 'right';\n        symbolPath.setTextConfig({\n          rotation: -rad,\n          position: textPosition,\n          origin: 'center'\n        });\n        var emphasisState = symbolPath.ensureState('emphasis');\n        zrUtil.extend(emphasisState.textConfig || (emphasisState.textConfig = {}), {\n          position: textPosition\n        });\n      } else {\n        symbolPath.setTextConfig({\n          rotation: labelRotate *= Math.PI / 180\n        });\n      }\n    });\n    this._firstRender = false;\n  };\n\n  GraphView.prototype.dispose = function () {\n    this._controller && this._controller.dispose();\n    this._controllerHost = null;\n  };\n\n  GraphView.prototype._startForceLayoutIteration = function (forceLayout, layoutAnimation) {\n    var self = this;\n\n    (function step() {\n      forceLayout.step(function (stopped) {\n        self.updateLayout(self._model);\n        (self._layouting = !stopped) && (layoutAnimation ? self._layoutTimeout = setTimeout(step, 16) : step());\n      });\n    })();\n  };\n\n  GraphView.prototype._updateController = function (seriesModel, ecModel, api) {\n    var _this = this;\n\n    var controller = this._controller;\n    var controllerHost = this._controllerHost;\n    var group = this.group;\n    controller.setPointerChecker(function (e, x, y) {\n      var rect = group.getBoundingRect();\n      rect.applyTransform(group.transform);\n      return rect.contain(x, y) && !onIrrelevantElement(e, api, seriesModel);\n    });\n\n    if (!isViewCoordSys(seriesModel.coordinateSystem)) {\n      controller.disable();\n      return;\n    }\n\n    controller.enable(seriesModel.get('roam'));\n    controllerHost.zoomLimit = seriesModel.get('scaleLimit');\n    controllerHost.zoom = seriesModel.coordinateSystem.getZoom();\n    controller.off('pan').off('zoom').on('pan', function (e) {\n      roamHelper.updateViewOnPan(controllerHost, e.dx, e.dy);\n      api.dispatchAction({\n        seriesId: seriesModel.id,\n        type: 'graphRoam',\n        dx: e.dx,\n        dy: e.dy\n      });\n    }).on('zoom', function (e) {\n      roamHelper.updateViewOnZoom(controllerHost, e.scale, e.originX, e.originY);\n      api.dispatchAction({\n        seriesId: seriesModel.id,\n        type: 'graphRoam',\n        zoom: e.scale,\n        originX: e.originX,\n        originY: e.originY\n      });\n\n      _this._updateNodeAndLinkScale();\n\n      adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));\n\n      _this._lineDraw.updateLayout();\n\n      api.updateLabelLayout();\n    });\n  };\n\n  GraphView.prototype._updateNodeAndLinkScale = function () {\n    var seriesModel = this._model;\n    var data = seriesModel.getData();\n    var nodeScale = getNodeGlobalScale(seriesModel);\n    data.eachItemGraphicEl(function (el, idx) {\n      el.setSymbolScale(nodeScale);\n    });\n  };\n\n  GraphView.prototype.updateLayout = function (seriesModel) {\n    adjustEdge(seriesModel.getGraph(), getNodeGlobalScale(seriesModel));\n\n    this._symbolDraw.updateLayout();\n\n    this._lineDraw.updateLayout();\n  };\n\n  GraphView.prototype.remove = function (ecModel, api) {\n    this._symbolDraw && this._symbolDraw.remove();\n    this._lineDraw && this._lineDraw.remove();\n  };\n\n  GraphView.type = 'graph';\n  return GraphView;\n}(ChartView);\n\nexport default GraphView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nfunction generateNodeKey(id) {\n  return '_EC_' + id;\n}\n\nvar Graph = function () {\n  function Graph(directed) {\n    this.type = 'graph';\n    this.nodes = [];\n    this.edges = [];\n    this._nodesMap = {};\n    this._edgesMap = {};\n    this._directed = directed || false;\n  }\n\n  Graph.prototype.isDirected = function () {\n    return this._directed;\n  };\n\n  ;\n\n  Graph.prototype.addNode = function (id, dataIndex) {\n    id = id == null ? '' + dataIndex : '' + id;\n    var nodesMap = this._nodesMap;\n\n    if (nodesMap[generateNodeKey(id)]) {\n      if (process.env.NODE_ENV !== 'production') {\n        console.error('Graph nodes have duplicate name or id');\n      }\n\n      return;\n    }\n\n    var node = new GraphNode(id, dataIndex);\n    node.hostGraph = this;\n    this.nodes.push(node);\n    nodesMap[generateNodeKey(id)] = node;\n    return node;\n  };\n\n  ;\n\n  Graph.prototype.getNodeByIndex = function (dataIndex) {\n    var rawIdx = this.data.getRawIndex(dataIndex);\n    return this.nodes[rawIdx];\n  };\n\n  ;\n\n  Graph.prototype.getNodeById = function (id) {\n    return this._nodesMap[generateNodeKey(id)];\n  };\n\n  ;\n\n  Graph.prototype.addEdge = function (n1, n2, dataIndex) {\n    var nodesMap = this._nodesMap;\n    var edgesMap = this._edgesMap;\n\n    if (typeof n1 === 'number') {\n      n1 = this.nodes[n1];\n    }\n\n    if (typeof n2 === 'number') {\n      n2 = this.nodes[n2];\n    }\n\n    if (!(n1 instanceof GraphNode)) {\n      n1 = nodesMap[generateNodeKey(n1)];\n    }\n\n    if (!(n2 instanceof GraphNode)) {\n      n2 = nodesMap[generateNodeKey(n2)];\n    }\n\n    if (!n1 || !n2) {\n      return;\n    }\n\n    var key = n1.id + '-' + n2.id;\n    var edge = new GraphEdge(n1, n2, dataIndex);\n    edge.hostGraph = this;\n\n    if (this._directed) {\n      n1.outEdges.push(edge);\n      n2.inEdges.push(edge);\n    }\n\n    n1.edges.push(edge);\n\n    if (n1 !== n2) {\n      n2.edges.push(edge);\n    }\n\n    this.edges.push(edge);\n    edgesMap[key] = edge;\n    return edge;\n  };\n\n  ;\n\n  Graph.prototype.getEdgeByIndex = function (dataIndex) {\n    var rawIdx = this.edgeData.getRawIndex(dataIndex);\n    return this.edges[rawIdx];\n  };\n\n  ;\n\n  Graph.prototype.getEdge = function (n1, n2) {\n    if (n1 instanceof GraphNode) {\n      n1 = n1.id;\n    }\n\n    if (n2 instanceof GraphNode) {\n      n2 = n2.id;\n    }\n\n    var edgesMap = this._edgesMap;\n\n    if (this._directed) {\n      return edgesMap[n1 + '-' + n2];\n    } else {\n      return edgesMap[n1 + '-' + n2] || edgesMap[n2 + '-' + n1];\n    }\n  };\n\n  ;\n\n  Graph.prototype.eachNode = function (cb, context) {\n    var nodes = this.nodes;\n    var len = nodes.length;\n\n    for (var i = 0; i < len; i++) {\n      if (nodes[i].dataIndex >= 0) {\n        cb.call(context, nodes[i], i);\n      }\n    }\n  };\n\n  ;\n\n  Graph.prototype.eachEdge = function (cb, context) {\n    var edges = this.edges;\n    var len = edges.length;\n\n    for (var i = 0; i < len; i++) {\n      if (edges[i].dataIndex >= 0 && edges[i].node1.dataIndex >= 0 && edges[i].node2.dataIndex >= 0) {\n        cb.call(context, edges[i], i);\n      }\n    }\n  };\n\n  ;\n\n  Graph.prototype.breadthFirstTraverse = function (cb, startNode, direction, context) {\n    if (!(startNode instanceof GraphNode)) {\n      startNode = this._nodesMap[generateNodeKey(startNode)];\n    }\n\n    if (!startNode) {\n      return;\n    }\n\n    var edgeType = direction === 'out' ? 'outEdges' : direction === 'in' ? 'inEdges' : 'edges';\n\n    for (var i = 0; i < this.nodes.length; i++) {\n      this.nodes[i].__visited = false;\n    }\n\n    if (cb.call(context, startNode, null)) {\n      return;\n    }\n\n    var queue = [startNode];\n\n    while (queue.length) {\n      var currentNode = queue.shift();\n      var edges = currentNode[edgeType];\n\n      for (var i = 0; i < edges.length; i++) {\n        var e = edges[i];\n        var otherNode = e.node1 === currentNode ? e.node2 : e.node1;\n\n        if (!otherNode.__visited) {\n          if (cb.call(context, otherNode, currentNode)) {\n            return;\n          }\n\n          queue.push(otherNode);\n          otherNode.__visited = true;\n        }\n      }\n    }\n  };\n\n  ;\n\n  Graph.prototype.update = function () {\n    var data = this.data;\n    var edgeData = this.edgeData;\n    var nodes = this.nodes;\n    var edges = this.edges;\n\n    for (var i = 0, len = nodes.length; i < len; i++) {\n      nodes[i].dataIndex = -1;\n    }\n\n    for (var i = 0, len = data.count(); i < len; i++) {\n      nodes[data.getRawIndex(i)].dataIndex = i;\n    }\n\n    edgeData.filterSelf(function (idx) {\n      var edge = edges[edgeData.getRawIndex(idx)];\n      return edge.node1.dataIndex >= 0 && edge.node2.dataIndex >= 0;\n    });\n\n    for (var i = 0, len = edges.length; i < len; i++) {\n      edges[i].dataIndex = -1;\n    }\n\n    for (var i = 0, len = edgeData.count(); i < len; i++) {\n      edges[edgeData.getRawIndex(i)].dataIndex = i;\n    }\n  };\n\n  ;\n\n  Graph.prototype.clone = function () {\n    var graph = new Graph(this._directed);\n    var nodes = this.nodes;\n    var edges = this.edges;\n\n    for (var i = 0; i < nodes.length; i++) {\n      graph.addNode(nodes[i].id, nodes[i].dataIndex);\n    }\n\n    for (var i = 0; i < edges.length; i++) {\n      var e = edges[i];\n      graph.addEdge(e.node1.id, e.node2.id, e.dataIndex);\n    }\n\n    return graph;\n  };\n\n  ;\n  return Graph;\n}();\n\nvar GraphNode = function () {\n  function GraphNode(id, dataIndex) {\n    this.inEdges = [];\n    this.outEdges = [];\n    this.edges = [];\n    this.dataIndex = -1;\n    this.id = id == null ? '' : id;\n    this.dataIndex = dataIndex == null ? -1 : dataIndex;\n  }\n\n  GraphNode.prototype.degree = function () {\n    return this.edges.length;\n  };\n\n  GraphNode.prototype.inDegree = function () {\n    return this.inEdges.length;\n  };\n\n  GraphNode.prototype.outDegree = function () {\n    return this.outEdges.length;\n  };\n\n  GraphNode.prototype.getModel = function (path) {\n    if (this.dataIndex < 0) {\n      return;\n    }\n\n    var graph = this.hostGraph;\n    var itemModel = graph.data.getItemModel(this.dataIndex);\n    return itemModel.getModel(path);\n  };\n\n  GraphNode.prototype.getAdjacentDataIndices = function () {\n    var dataIndices = {\n      edge: [],\n      node: []\n    };\n\n    for (var i = 0; i < this.edges.length; i++) {\n      var adjacentEdge = this.edges[i];\n\n      if (adjacentEdge.dataIndex < 0) {\n        continue;\n      }\n\n      dataIndices.edge.push(adjacentEdge.dataIndex);\n      dataIndices.node.push(adjacentEdge.node1.dataIndex, adjacentEdge.node2.dataIndex);\n    }\n\n    return dataIndices;\n  };\n\n  return GraphNode;\n}();\n\nvar GraphEdge = function () {\n  function GraphEdge(n1, n2, dataIndex) {\n    this.dataIndex = -1;\n    this.node1 = n1;\n    this.node2 = n2;\n    this.dataIndex = dataIndex == null ? -1 : dataIndex;\n  }\n\n  GraphEdge.prototype.getModel = function (path) {\n    if (this.dataIndex < 0) {\n      return;\n    }\n\n    var graph = this.hostGraph;\n    var itemModel = graph.edgeData.getItemModel(this.dataIndex);\n    return itemModel.getModel(path);\n  };\n\n  GraphEdge.prototype.getAdjacentDataIndices = function () {\n    return {\n      edge: [this.dataIndex],\n      node: [this.node1.dataIndex, this.node2.dataIndex]\n    };\n  };\n\n  return GraphEdge;\n}();\n\nfunction createGraphDataProxyMixin(hostName, dataName) {\n  return {\n    getValue: function (dimension) {\n      var data = this[hostName][dataName];\n      return data.get(data.getDimension(dimension || 'value'), this.dataIndex);\n    },\n    setVisual: function (key, value) {\n      this.dataIndex >= 0 && this[hostName][dataName].setItemVisual(this.dataIndex, key, value);\n    },\n    getVisual: function (key) {\n      return this[hostName][dataName].getItemVisual(this.dataIndex, key);\n    },\n    setLayout: function (layout, merge) {\n      this.dataIndex >= 0 && this[hostName][dataName].setItemLayout(this.dataIndex, layout, merge);\n    },\n    getLayout: function () {\n      return this[hostName][dataName].getItemLayout(this.dataIndex);\n    },\n    getGraphicEl: function () {\n      return this[hostName][dataName].getItemGraphicEl(this.dataIndex);\n    },\n    getRawIndex: function () {\n      return this[hostName][dataName].getRawIndex(this.dataIndex);\n    }\n  };\n}\n\n;\n;\n;\nzrUtil.mixin(GraphNode, createGraphDataProxyMixin('hostGraph', 'data'));\nzrUtil.mixin(GraphEdge, createGraphDataProxyMixin('hostGraph', 'edgeData'));\nexport default Graph;\nexport { GraphNode, GraphEdge };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport List from '../../data/List';\nimport Graph from '../../data/Graph';\nimport linkList from '../../data/helper/linkList';\nimport createDimensions from '../../data/helper/createDimensions';\nimport CoordinateSystem from '../../core/CoordinateSystem';\nimport createListFromArray from './createListFromArray';\nimport { convertOptionIdName } from '../../util/model';\nexport default function createGraphFromNodeEdge(nodes, edges, seriesModel, directed, beforeLink) {\n  var graph = new Graph(directed);\n\n  for (var i = 0; i < nodes.length; i++) {\n    graph.addNode(zrUtil.retrieve(nodes[i].id, nodes[i].name, i), i);\n  }\n\n  var linkNameList = [];\n  var validEdges = [];\n  var linkCount = 0;\n\n  for (var i = 0; i < edges.length; i++) {\n    var link = edges[i];\n    var source = link.source;\n    var target = link.target;\n\n    if (graph.addEdge(source, target, linkCount)) {\n      validEdges.push(link);\n      linkNameList.push(zrUtil.retrieve(convertOptionIdName(link.id, null), source + ' > ' + target));\n      linkCount++;\n    }\n  }\n\n  var coordSys = seriesModel.get('coordinateSystem');\n  var nodeData;\n\n  if (coordSys === 'cartesian2d' || coordSys === 'polar') {\n    nodeData = createListFromArray(nodes, seriesModel);\n  } else {\n    var coordSysCtor = CoordinateSystem.get(coordSys);\n    var coordDimensions = coordSysCtor ? coordSysCtor.dimensions || [] : [];\n\n    if (zrUtil.indexOf(coordDimensions, 'value') < 0) {\n      coordDimensions.concat(['value']);\n    }\n\n    var dimensionNames = createDimensions(nodes, {\n      coordDimensions: coordDimensions\n    });\n    nodeData = new List(dimensionNames, seriesModel);\n    nodeData.initData(nodes);\n  }\n\n  var edgeData = new List(['value'], seriesModel);\n  edgeData.initData(validEdges, linkNameList);\n  beforeLink && beforeLink(nodeData, edgeData);\n  linkList({\n    mainData: nodeData,\n    struct: graph,\n    structAttr: 'graph',\n    datas: {\n      node: nodeData,\n      edge: edgeData\n    },\n    datasAttr: {\n      node: 'data',\n      edge: 'edgeData'\n    }\n  });\n  graph.update();\n  return graph;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport List from '../../data/List';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { defaultEmphasis } from '../../util/model';\nimport Model from '../../model/Model';\nimport createGraphFromNodeEdge from '../helper/createGraphFromNodeEdge';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider';\nimport SeriesModel from '../../model/Series';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup';\nimport { defaultSeriesFormatTooltip } from '../../component/tooltip/seriesFormatTooltip';\nimport { initCurvenessList, createEdgeMapForCurveness } from '../helper/multipleGraphEdgeHelper';\n\nvar GraphSeriesModel = function (_super) {\n  __extends(GraphSeriesModel, _super);\n\n  function GraphSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GraphSeriesModel.type;\n    _this.hasSymbolVisual = true;\n    return _this;\n  }\n\n  GraphSeriesModel.prototype.init = function (option) {\n    _super.prototype.init.apply(this, arguments);\n\n    var self = this;\n\n    function getCategoriesData() {\n      return self._categoriesData;\n    }\n\n    this.legendVisualProvider = new LegendVisualProvider(getCategoriesData, getCategoriesData);\n    this.fillDataTextStyle(option.edges || option.links);\n\n    this._updateCategoriesData();\n  };\n\n  GraphSeriesModel.prototype.mergeOption = function (option) {\n    _super.prototype.mergeOption.apply(this, arguments);\n\n    this.fillDataTextStyle(option.edges || option.links);\n\n    this._updateCategoriesData();\n  };\n\n  GraphSeriesModel.prototype.mergeDefaultAndTheme = function (option) {\n    _super.prototype.mergeDefaultAndTheme.apply(this, arguments);\n\n    defaultEmphasis(option, 'edgeLabel', ['show']);\n  };\n\n  GraphSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    var edges = option.edges || option.links || [];\n    var nodes = option.data || option.nodes || [];\n    var self = this;\n\n    if (nodes && edges) {\n      initCurvenessList(this);\n      var graph = createGraphFromNodeEdge(nodes, edges, this, true, beforeLink);\n      zrUtil.each(graph.edges, function (edge) {\n        createEdgeMapForCurveness(edge.node1, edge.node2, this, edge.dataIndex);\n      }, this);\n      return graph.data;\n    }\n\n    function beforeLink(nodeData, edgeData) {\n      nodeData.wrapMethod('getItemModel', function (model) {\n        var categoriesModels = self._categoriesModels;\n        var categoryIdx = model.getShallow('category');\n        var categoryModel = categoriesModels[categoryIdx];\n\n        if (categoryModel) {\n          categoryModel.parentModel = model.parentModel;\n          model.parentModel = categoryModel;\n        }\n\n        return model;\n      });\n      var oldGetModel = Model.prototype.getModel;\n\n      function newGetModel(path, parentModel) {\n        var model = oldGetModel.call(this, path, parentModel);\n        model.resolveParentPath = resolveParentPath;\n        return model;\n      }\n\n      edgeData.wrapMethod('getItemModel', function (model) {\n        model.resolveParentPath = resolveParentPath;\n        model.getModel = newGetModel;\n        return model;\n      });\n\n      function resolveParentPath(pathArr) {\n        if (pathArr && (pathArr[0] === 'label' || pathArr[1] === 'label')) {\n          var newPathArr = pathArr.slice();\n\n          if (pathArr[0] === 'label') {\n            newPathArr[0] = 'edgeLabel';\n          } else if (pathArr[1] === 'label') {\n            newPathArr[1] = 'edgeLabel';\n          }\n\n          return newPathArr;\n        }\n\n        return pathArr;\n      }\n    }\n  };\n\n  GraphSeriesModel.prototype.getGraph = function () {\n    return this.getData().graph;\n  };\n\n  GraphSeriesModel.prototype.getEdgeData = function () {\n    return this.getGraph().edgeData;\n  };\n\n  GraphSeriesModel.prototype.getCategoriesData = function () {\n    return this._categoriesData;\n  };\n\n  GraphSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    if (dataType === 'edge') {\n      var nodeData = this.getData();\n      var params = this.getDataParams(dataIndex, dataType);\n      var edge = nodeData.graph.getEdgeByIndex(dataIndex);\n      var sourceName = nodeData.getName(edge.node1.dataIndex);\n      var targetName = nodeData.getName(edge.node2.dataIndex);\n      var nameArr = [];\n      sourceName != null && nameArr.push(sourceName);\n      targetName != null && nameArr.push(targetName);\n      return createTooltipMarkup('nameValue', {\n        name: nameArr.join(' > '),\n        value: params.value,\n        noValue: params.value == null\n      });\n    }\n\n    var nodeMarkup = defaultSeriesFormatTooltip({\n      series: this,\n      dataIndex: dataIndex,\n      multipleSeries: multipleSeries\n    });\n    return nodeMarkup;\n  };\n\n  GraphSeriesModel.prototype._updateCategoriesData = function () {\n    var categories = zrUtil.map(this.option.categories || [], function (category) {\n      return category.value != null ? category : zrUtil.extend({\n        value: 0\n      }, category);\n    });\n    var categoriesData = new List(['value'], this);\n    categoriesData.initData(categories);\n    this._categoriesData = categoriesData;\n    this._categoriesModels = categoriesData.mapArray(function (idx) {\n      return categoriesData.getItemModel(idx);\n    });\n  };\n\n  GraphSeriesModel.prototype.setZoom = function (zoom) {\n    this.option.zoom = zoom;\n  };\n\n  GraphSeriesModel.prototype.setCenter = function (center) {\n    this.option.center = center;\n  };\n\n  GraphSeriesModel.prototype.isAnimationEnabled = function () {\n    return _super.prototype.isAnimationEnabled.call(this) && !(this.get('layout') === 'force' && this.get(['force', 'layoutAnimation']));\n  };\n\n  GraphSeriesModel.type = 'series.graph';\n  GraphSeriesModel.dependencies = ['grid', 'polar', 'geo', 'singleAxis', 'calendar'];\n  GraphSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'view',\n    legendHoverLink: true,\n    layout: null,\n    focusNodeAdjacency: false,\n    circular: {\n      rotateLabel: false\n    },\n    force: {\n      initLayout: null,\n      repulsion: [0, 50],\n      gravity: 0.1,\n      friction: 0.6,\n      edgeLength: 30,\n      layoutAnimation: true\n    },\n    left: 'center',\n    top: 'center',\n    symbol: 'circle',\n    symbolSize: 10,\n    edgeSymbol: ['none', 'none'],\n    edgeSymbolSize: 10,\n    edgeLabel: {\n      position: 'middle',\n      distance: 5\n    },\n    draggable: false,\n    roam: false,\n    center: null,\n    zoom: 1,\n    nodeScaleRatio: 0.6,\n    label: {\n      show: false,\n      formatter: '{b}'\n    },\n    itemStyle: {},\n    lineStyle: {\n      color: '#aaa',\n      width: 1,\n      opacity: 0.5\n    },\n    emphasis: {\n      scale: true,\n      label: {\n        show: true\n      }\n    },\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    }\n  };\n  return GraphSeriesModel;\n}(SeriesModel);\n\nexport default GraphSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport categoryFilter from './categoryFilter';\nimport categoryVisual from './categoryVisual';\nimport edgeVisual from './edgeVisual';\nimport simpleLayout from './simpleLayout';\nimport circularLayout from './circularLayout';\nimport forceLayout from './forceLayout';\nimport createView from './createView';\nimport View from '../../coord/View';\nimport GraphView from './GraphView';\nimport GraphSeriesModel from './GraphSeries';\nimport { updateCenterAndZoom } from '../../action/roamHelper';\nvar actionInfo = {\n  type: 'graphRoam',\n  event: 'graphRoam',\n  update: 'none'\n};\nexport function install(registers) {\n  registers.registerChartView(GraphView);\n  registers.registerSeriesModel(GraphSeriesModel);\n  registers.registerProcessor(categoryFilter);\n  registers.registerVisual(categoryVisual);\n  registers.registerVisual(edgeVisual);\n  registers.registerLayout(simpleLayout);\n  registers.registerLayout(registers.PRIORITY.VISUAL.POST_CHART_LAYOUT, circularLayout);\n  registers.registerLayout(forceLayout);\n  registers.registerCoordinateSystem('graphView', {\n    dimensions: View.dimensions,\n    create: createView\n  });\n  registers.registerAction({\n    type: 'focusNodeAdjacency',\n    event: 'focusNodeAdjacency',\n    update: 'series:focusNodeAdjacency'\n  }, function () {});\n  registers.registerAction({\n    type: 'unfocusNodeAdjacency',\n    event: 'unfocusNodeAdjacency',\n    update: 'series:unfocusNodeAdjacency'\n  }, function () {});\n  registers.registerAction(actionInfo, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'series',\n      query: payload\n    }, function (seriesModel) {\n      var coordSys = seriesModel.coordinateSystem;\n      var res = updateCenterAndZoom(coordSys, payload);\n      seriesModel.setCenter && seriesModel.setCenter(res.center);\n      seriesModel.setZoom && seriesModel.setZoom(res.zoom);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Path from 'zrender/lib/graphic/Path';\n\nvar PointerShape = function () {\n  function PointerShape() {\n    this.angle = 0;\n    this.width = 10;\n    this.r = 10;\n    this.x = 0;\n    this.y = 0;\n  }\n\n  return PointerShape;\n}();\n\nvar PointerPath = function (_super) {\n  __extends(PointerPath, _super);\n\n  function PointerPath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'pointer';\n    return _this;\n  }\n\n  PointerPath.prototype.getDefaultShape = function () {\n    return new PointerShape();\n  };\n\n  PointerPath.prototype.buildPath = function (ctx, shape) {\n    var mathCos = Math.cos;\n    var mathSin = Math.sin;\n    var r = shape.r;\n    var width = shape.width;\n    var angle = shape.angle;\n    var x = shape.x - mathCos(angle) * width * (width >= r / 3 ? 1 : 2);\n    var y = shape.y - mathSin(angle) * width * (width >= r / 3 ? 1 : 2);\n    angle = shape.angle - Math.PI / 2;\n    ctx.moveTo(x, y);\n    ctx.lineTo(shape.x + mathCos(angle) * width, shape.y + mathSin(angle) * width);\n    ctx.lineTo(shape.x + mathCos(shape.angle) * r, shape.y + mathSin(shape.angle) * r);\n    ctx.lineTo(shape.x - mathCos(angle) * width, shape.y - mathSin(angle) * width);\n    ctx.lineTo(x, y);\n  };\n\n  return PointerPath;\n}(Path);\n\nexport default PointerPath;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport PointerPath from './PointerPath';\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport { createTextStyle, setLabelValueAnimation, animateLabelValue } from '../../label/labelStyle';\nimport ChartView from '../../view/Chart';\nimport { parsePercent, round, linearMap } from '../../util/number';\nimport Sausage from '../../util/shape/sausage';\nimport { createSymbol } from '../../util/symbol';\n\nfunction parsePosition(seriesModel, api) {\n  var center = seriesModel.get('center');\n  var width = api.getWidth();\n  var height = api.getHeight();\n  var size = Math.min(width, height);\n  var cx = parsePercent(center[0], api.getWidth());\n  var cy = parsePercent(center[1], api.getHeight());\n  var r = parsePercent(seriesModel.get('radius'), size / 2);\n  return {\n    cx: cx,\n    cy: cy,\n    r: r\n  };\n}\n\nfunction formatLabel(value, labelFormatter) {\n  var label = value == null ? '' : value + '';\n\n  if (labelFormatter) {\n    if (typeof labelFormatter === 'string') {\n      label = labelFormatter.replace('{value}', label);\n    } else if (typeof labelFormatter === 'function') {\n      label = labelFormatter(value);\n    }\n  }\n\n  return label;\n}\n\nvar PI2 = Math.PI * 2;\n\nvar GaugeView = function (_super) {\n  __extends(GaugeView, _super);\n\n  function GaugeView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GaugeView.type;\n    return _this;\n  }\n\n  GaugeView.prototype.render = function (seriesModel, ecModel, api) {\n    this.group.removeAll();\n    var colorList = seriesModel.get(['axisLine', 'lineStyle', 'color']);\n    var posInfo = parsePosition(seriesModel, api);\n\n    this._renderMain(seriesModel, ecModel, api, colorList, posInfo);\n\n    this._data = seriesModel.getData();\n  };\n\n  GaugeView.prototype.dispose = function () {};\n\n  GaugeView.prototype._renderMain = function (seriesModel, ecModel, api, colorList, posInfo) {\n    var group = this.group;\n    var clockwise = seriesModel.get('clockwise');\n    var startAngle = -seriesModel.get('startAngle') / 180 * Math.PI;\n    var endAngle = -seriesModel.get('endAngle') / 180 * Math.PI;\n    var axisLineModel = seriesModel.getModel('axisLine');\n    var roundCap = axisLineModel.get('roundCap');\n    var MainPath = roundCap ? Sausage : graphic.Sector;\n    var showAxis = axisLineModel.get('show');\n    var lineStyleModel = axisLineModel.getModel('lineStyle');\n    var axisLineWidth = lineStyleModel.get('width');\n    var angleRangeSpan = !((endAngle - startAngle) % PI2) && endAngle !== startAngle ? PI2 : (endAngle - startAngle) % PI2;\n    var prevEndAngle = startAngle;\n\n    for (var i = 0; showAxis && i < colorList.length; i++) {\n      var percent = Math.min(Math.max(colorList[i][0], 0), 1);\n      endAngle = startAngle + angleRangeSpan * percent;\n      var sector = new MainPath({\n        shape: {\n          startAngle: prevEndAngle,\n          endAngle: endAngle,\n          cx: posInfo.cx,\n          cy: posInfo.cy,\n          clockwise: clockwise,\n          r0: posInfo.r - axisLineWidth,\n          r: posInfo.r\n        },\n        silent: true\n      });\n      sector.setStyle({\n        fill: colorList[i][1]\n      });\n      sector.setStyle(lineStyleModel.getLineStyle(['color', 'width']));\n      group.add(sector);\n      prevEndAngle = endAngle;\n    }\n\n    var getColor = function (percent) {\n      if (percent <= 0) {\n        return colorList[0][1];\n      }\n\n      var i;\n\n      for (i = 0; i < colorList.length; i++) {\n        if (colorList[i][0] >= percent && (i === 0 ? 0 : colorList[i - 1][0]) < percent) {\n          return colorList[i][1];\n        }\n      }\n\n      return colorList[i - 1][1];\n    };\n\n    if (!clockwise) {\n      var tmp = startAngle;\n      startAngle = endAngle;\n      endAngle = tmp;\n    }\n\n    this._renderTicks(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth);\n\n    this._renderTitleAndDetail(seriesModel, ecModel, api, getColor, posInfo);\n\n    this._renderAnchor(seriesModel, posInfo);\n\n    this._renderPointer(seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth);\n  };\n\n  GaugeView.prototype._renderTicks = function (seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth) {\n    var group = this.group;\n    var cx = posInfo.cx;\n    var cy = posInfo.cy;\n    var r = posInfo.r;\n    var minVal = +seriesModel.get('min');\n    var maxVal = +seriesModel.get('max');\n    var splitLineModel = seriesModel.getModel('splitLine');\n    var tickModel = seriesModel.getModel('axisTick');\n    var labelModel = seriesModel.getModel('axisLabel');\n    var splitNumber = seriesModel.get('splitNumber');\n    var subSplitNumber = tickModel.get('splitNumber');\n    var splitLineLen = parsePercent(splitLineModel.get('length'), r);\n    var tickLen = parsePercent(tickModel.get('length'), r);\n    var angle = startAngle;\n    var step = (endAngle - startAngle) / splitNumber;\n    var subStep = step / subSplitNumber;\n    var splitLineStyle = splitLineModel.getModel('lineStyle').getLineStyle();\n    var tickLineStyle = tickModel.getModel('lineStyle').getLineStyle();\n    var splitLineDistance = splitLineModel.get('distance');\n    var unitX;\n    var unitY;\n\n    for (var i = 0; i <= splitNumber; i++) {\n      unitX = Math.cos(angle);\n      unitY = Math.sin(angle);\n\n      if (splitLineModel.get('show')) {\n        var distance = splitLineDistance ? splitLineDistance + axisLineWidth : axisLineWidth;\n        var splitLine = new graphic.Line({\n          shape: {\n            x1: unitX * (r - distance) + cx,\n            y1: unitY * (r - distance) + cy,\n            x2: unitX * (r - splitLineLen - distance) + cx,\n            y2: unitY * (r - splitLineLen - distance) + cy\n          },\n          style: splitLineStyle,\n          silent: true\n        });\n\n        if (splitLineStyle.stroke === 'auto') {\n          splitLine.setStyle({\n            stroke: getColor(i / splitNumber)\n          });\n        }\n\n        group.add(splitLine);\n      }\n\n      if (labelModel.get('show')) {\n        var distance = labelModel.get('distance') + splitLineDistance;\n        var label = formatLabel(round(i / splitNumber * (maxVal - minVal) + minVal), labelModel.get('formatter'));\n        var autoColor = getColor(i / splitNumber);\n        group.add(new graphic.Text({\n          style: createTextStyle(labelModel, {\n            text: label,\n            x: unitX * (r - splitLineLen - distance) + cx,\n            y: unitY * (r - splitLineLen - distance) + cy,\n            verticalAlign: unitY < -0.8 ? 'top' : unitY > 0.8 ? 'bottom' : 'middle',\n            align: unitX < -0.4 ? 'left' : unitX > 0.4 ? 'right' : 'center'\n          }, {\n            inheritColor: autoColor\n          }),\n          silent: true\n        }));\n      }\n\n      if (tickModel.get('show') && i !== splitNumber) {\n        var distance = tickModel.get('distance');\n        distance = distance ? distance + axisLineWidth : axisLineWidth;\n\n        for (var j = 0; j <= subSplitNumber; j++) {\n          unitX = Math.cos(angle);\n          unitY = Math.sin(angle);\n          var tickLine = new graphic.Line({\n            shape: {\n              x1: unitX * (r - distance) + cx,\n              y1: unitY * (r - distance) + cy,\n              x2: unitX * (r - tickLen - distance) + cx,\n              y2: unitY * (r - tickLen - distance) + cy\n            },\n            silent: true,\n            style: tickLineStyle\n          });\n\n          if (tickLineStyle.stroke === 'auto') {\n            tickLine.setStyle({\n              stroke: getColor((i + j / subSplitNumber) / splitNumber)\n            });\n          }\n\n          group.add(tickLine);\n          angle += subStep;\n        }\n\n        angle -= subStep;\n      } else {\n        angle += step;\n      }\n    }\n  };\n\n  GaugeView.prototype._renderPointer = function (seriesModel, ecModel, api, getColor, posInfo, startAngle, endAngle, clockwise, axisLineWidth) {\n    var group = this.group;\n    var oldData = this._data;\n    var oldProgressData = this._progressEls;\n    var progressList = [];\n    var showPointer = seriesModel.get(['pointer', 'show']);\n    var progressModel = seriesModel.getModel('progress');\n    var showProgress = progressModel.get('show');\n    var data = seriesModel.getData();\n    var valueDim = data.mapDimension('value');\n    var minVal = +seriesModel.get('min');\n    var maxVal = +seriesModel.get('max');\n    var valueExtent = [minVal, maxVal];\n    var angleExtent = [startAngle, endAngle];\n\n    function createPointer(idx, angle) {\n      var itemModel = data.getItemModel(idx);\n      var pointerModel = itemModel.getModel('pointer');\n      var pointerWidth = parsePercent(pointerModel.get('width'), posInfo.r);\n      var pointerLength = parsePercent(pointerModel.get('length'), posInfo.r);\n      var pointerStr = seriesModel.get(['pointer', 'icon']);\n      var pointerOffset = pointerModel.get('offsetCenter');\n      var pointerOffsetX = parsePercent(pointerOffset[0], posInfo.r);\n      var pointerOffsetY = parsePercent(pointerOffset[1], posInfo.r);\n      var pointerKeepAspect = pointerModel.get('keepAspect');\n      var pointer;\n\n      if (pointerStr) {\n        pointer = createSymbol(pointerStr, pointerOffsetX - pointerWidth / 2, pointerOffsetY - pointerLength, pointerWidth, pointerLength, null, pointerKeepAspect);\n      } else {\n        pointer = new PointerPath({\n          shape: {\n            angle: -Math.PI / 2,\n            width: pointerWidth,\n            r: pointerLength,\n            x: pointerOffsetX,\n            y: pointerOffsetY\n          }\n        });\n      }\n\n      pointer.rotation = -(angle + Math.PI / 2);\n      pointer.x = posInfo.cx;\n      pointer.y = posInfo.cy;\n      return pointer;\n    }\n\n    function createProgress(idx, endAngle) {\n      var roundCap = progressModel.get('roundCap');\n      var ProgressPath = roundCap ? Sausage : graphic.Sector;\n      var isOverlap = progressModel.get('overlap');\n      var progressWidth = isOverlap ? progressModel.get('width') : axisLineWidth / data.count();\n      var r0 = isOverlap ? posInfo.r - progressWidth : posInfo.r - (idx + 1) * progressWidth;\n      var r = isOverlap ? posInfo.r : posInfo.r - idx * progressWidth;\n      var progress = new ProgressPath({\n        shape: {\n          startAngle: startAngle,\n          endAngle: endAngle,\n          cx: posInfo.cx,\n          cy: posInfo.cy,\n          clockwise: clockwise,\n          r0: r0,\n          r: r\n        }\n      });\n      isOverlap && (progress.z2 = maxVal - data.get(valueDim, idx) % maxVal);\n      return progress;\n    }\n\n    if (showProgress || showPointer) {\n      data.diff(oldData).add(function (idx) {\n        if (showPointer) {\n          var pointer = createPointer(idx, startAngle);\n          graphic.initProps(pointer, {\n            rotation: -(linearMap(data.get(valueDim, idx), valueExtent, angleExtent, true) + Math.PI / 2)\n          }, seriesModel);\n          group.add(pointer);\n          data.setItemGraphicEl(idx, pointer);\n        }\n\n        if (showProgress) {\n          var progress = createProgress(idx, startAngle);\n          var isClip = progressModel.get('clip');\n          graphic.initProps(progress, {\n            shape: {\n              endAngle: linearMap(data.get(valueDim, idx), valueExtent, angleExtent, isClip)\n            }\n          }, seriesModel);\n          group.add(progress);\n          progressList[idx] = progress;\n        }\n      }).update(function (newIdx, oldIdx) {\n        if (showPointer) {\n          var previousPointer = oldData.getItemGraphicEl(oldIdx);\n          var previousRotate = previousPointer ? previousPointer.rotation : startAngle;\n          var pointer = createPointer(newIdx, previousRotate);\n          pointer.rotation = previousRotate;\n          graphic.updateProps(pointer, {\n            rotation: -(linearMap(data.get(valueDim, newIdx), valueExtent, angleExtent, true) + Math.PI / 2)\n          }, seriesModel);\n          group.add(pointer);\n          data.setItemGraphicEl(newIdx, pointer);\n        }\n\n        if (showProgress) {\n          var previousProgress = oldProgressData[oldIdx];\n          var previousEndAngle = previousProgress ? previousProgress.shape.endAngle : startAngle;\n          var progress = createProgress(newIdx, previousEndAngle);\n          var isClip = progressModel.get('clip');\n          graphic.updateProps(progress, {\n            shape: {\n              endAngle: linearMap(data.get(valueDim, newIdx), valueExtent, angleExtent, isClip)\n            }\n          }, seriesModel);\n          group.add(progress);\n          progressList[newIdx] = progress;\n        }\n      }).execute();\n      data.each(function (idx) {\n        var itemModel = data.getItemModel(idx);\n        var emphasisModel = itemModel.getModel('emphasis');\n\n        if (showPointer) {\n          var pointer = data.getItemGraphicEl(idx);\n          pointer.useStyle(data.getItemVisual(idx, 'style'));\n          pointer.setStyle(itemModel.getModel(['pointer', 'itemStyle']).getItemStyle());\n\n          if (pointer.style.fill === 'auto') {\n            pointer.setStyle('fill', getColor(linearMap(data.get(valueDim, idx), valueExtent, [0, 1], true)));\n          }\n\n          pointer.z2EmphasisLift = 0;\n          setStatesStylesFromModel(pointer, itemModel);\n          enableHoverEmphasis(pointer, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n        }\n\n        if (showProgress) {\n          var progress = progressList[idx];\n          progress.useStyle(data.getItemVisual(idx, 'style'));\n          progress.setStyle(itemModel.getModel(['progress', 'itemStyle']).getItemStyle());\n          progress.z2EmphasisLift = 0;\n          setStatesStylesFromModel(progress, itemModel);\n          enableHoverEmphasis(progress, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n        }\n      });\n      this._progressEls = progressList;\n    }\n  };\n\n  GaugeView.prototype._renderAnchor = function (seriesModel, posInfo) {\n    var anchorModel = seriesModel.getModel('anchor');\n    var showAnchor = anchorModel.get('show');\n\n    if (showAnchor) {\n      var anchorSize = anchorModel.get('size');\n      var anchorType = anchorModel.get('icon');\n      var offsetCenter = anchorModel.get('offsetCenter');\n      var anchorKeepAspect = anchorModel.get('keepAspect');\n      var anchor = createSymbol(anchorType, posInfo.cx - anchorSize / 2 + parsePercent(offsetCenter[0], posInfo.r), posInfo.cy - anchorSize / 2 + parsePercent(offsetCenter[1], posInfo.r), anchorSize, anchorSize, null, anchorKeepAspect);\n      anchor.z2 = anchorModel.get('showAbove') ? 1 : 0;\n      anchor.setStyle(anchorModel.getModel('itemStyle').getItemStyle());\n      this.group.add(anchor);\n    }\n  };\n\n  GaugeView.prototype._renderTitleAndDetail = function (seriesModel, ecModel, api, getColor, posInfo) {\n    var _this = this;\n\n    var data = seriesModel.getData();\n    var valueDim = data.mapDimension('value');\n    var minVal = +seriesModel.get('min');\n    var maxVal = +seriesModel.get('max');\n    var contentGroup = new graphic.Group();\n    var newTitleEls = [];\n    var newDetailEls = [];\n    var hasAnimation = seriesModel.isAnimationEnabled();\n    data.diff(this._data).add(function (idx) {\n      newTitleEls[idx] = new graphic.Text({\n        silent: true\n      });\n      newDetailEls[idx] = new graphic.Text({\n        silent: true\n      });\n    }).update(function (idx, oldIdx) {\n      newTitleEls[idx] = _this._titleEls[oldIdx];\n      newDetailEls[idx] = _this._detailEls[oldIdx];\n    }).execute();\n    data.each(function (idx) {\n      var itemModel = data.getItemModel(idx);\n      var value = data.get(valueDim, idx);\n      var itemGroup = new graphic.Group();\n      var autoColor = getColor(linearMap(value, [minVal, maxVal], [0, 1], true));\n      var itemTitleModel = itemModel.getModel('title');\n\n      if (itemTitleModel.get('show')) {\n        var titleOffsetCenter = itemTitleModel.get('offsetCenter');\n        var titleX = posInfo.cx + parsePercent(titleOffsetCenter[0], posInfo.r);\n        var titleY = posInfo.cy + parsePercent(titleOffsetCenter[1], posInfo.r);\n        var labelEl = newTitleEls[idx];\n        labelEl.attr({\n          style: createTextStyle(itemTitleModel, {\n            x: titleX,\n            y: titleY,\n            text: data.getName(idx),\n            align: 'center',\n            verticalAlign: 'middle'\n          }, {\n            inheritColor: autoColor\n          })\n        });\n        itemGroup.add(labelEl);\n      }\n\n      var itemDetailModel = itemModel.getModel('detail');\n\n      if (itemDetailModel.get('show')) {\n        var detailOffsetCenter = itemDetailModel.get('offsetCenter');\n        var detailX = posInfo.cx + parsePercent(detailOffsetCenter[0], posInfo.r);\n        var detailY = posInfo.cy + parsePercent(detailOffsetCenter[1], posInfo.r);\n        var width = parsePercent(itemDetailModel.get('width'), posInfo.r);\n        var height = parsePercent(itemDetailModel.get('height'), posInfo.r);\n        var detailColor = seriesModel.get(['progress', 'show']) ? data.getItemVisual(idx, 'style').fill : autoColor;\n        var labelEl = newDetailEls[idx];\n        var formatter_1 = itemDetailModel.get('formatter');\n        labelEl.attr({\n          style: createTextStyle(itemDetailModel, {\n            x: detailX,\n            y: detailY,\n            text: formatLabel(value, formatter_1),\n            width: isNaN(width) ? null : width,\n            height: isNaN(height) ? null : height,\n            align: 'center',\n            verticalAlign: 'middle'\n          }, {\n            inheritColor: detailColor\n          })\n        });\n        setLabelValueAnimation(labelEl, {\n          normal: itemDetailModel\n        }, value, function (value) {\n          return formatLabel(value, formatter_1);\n        });\n        hasAnimation && animateLabelValue(labelEl, idx, data, seriesModel, {\n          getFormattedLabel: function (labelDataIndex, status, dataType, labelDimIndex, fmt, extendParams) {\n            return formatLabel(extendParams ? extendParams.interpolatedValue : value, formatter_1);\n          }\n        });\n        itemGroup.add(labelEl);\n      }\n\n      contentGroup.add(itemGroup);\n    });\n    this.group.add(contentGroup);\n    this._titleEls = newTitleEls;\n    this._detailEls = newDetailEls;\n  };\n\n  GaugeView.type = 'gauge';\n  return GaugeView;\n}(ChartView);\n\nexport default GaugeView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListSimply from '../helper/createListSimply';\nimport SeriesModel from '../../model/Series';\n\nvar GaugeSeriesModel = function (_super) {\n  __extends(GaugeSeriesModel, _super);\n\n  function GaugeSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GaugeSeriesModel.type;\n    _this.visualStyleAccessPath = 'itemStyle';\n    _this.useColorPaletteOnData = true;\n    return _this;\n  }\n\n  GaugeSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListSimply(this, ['value']);\n  };\n\n  GaugeSeriesModel.type = 'series.gauge';\n  GaugeSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    center: ['50%', '50%'],\n    legendHoverLink: true,\n    radius: '75%',\n    startAngle: 225,\n    endAngle: -45,\n    clockwise: true,\n    min: 0,\n    max: 100,\n    splitNumber: 10,\n    axisLine: {\n      show: true,\n      roundCap: false,\n      lineStyle: {\n        color: [[1, '#E6EBF8']],\n        width: 10\n      }\n    },\n    progress: {\n      show: false,\n      overlap: true,\n      width: 10,\n      roundCap: false,\n      clip: true\n    },\n    splitLine: {\n      show: true,\n      length: 10,\n      distance: 10,\n      lineStyle: {\n        color: '#63677A',\n        width: 3,\n        type: 'solid'\n      }\n    },\n    axisTick: {\n      show: true,\n      splitNumber: 5,\n      length: 6,\n      distance: 10,\n      lineStyle: {\n        color: '#63677A',\n        width: 1,\n        type: 'solid'\n      }\n    },\n    axisLabel: {\n      show: true,\n      distance: 15,\n      color: '#464646',\n      fontSize: 12\n    },\n    pointer: {\n      icon: null,\n      offsetCenter: [0, 0],\n      show: true,\n      length: '60%',\n      width: 6,\n      keepAspect: false\n    },\n    anchor: {\n      show: false,\n      showAbove: false,\n      size: 6,\n      icon: 'circle',\n      offsetCenter: [0, 0],\n      keepAspect: false,\n      itemStyle: {\n        color: '#fff',\n        borderWidth: 0,\n        borderColor: '#5470c6'\n      }\n    },\n    title: {\n      show: true,\n      offsetCenter: [0, '20%'],\n      color: '#464646',\n      fontSize: 16,\n      valueAnimation: false\n    },\n    detail: {\n      show: true,\n      backgroundColor: 'rgba(0,0,0,0)',\n      borderWidth: 0,\n      borderColor: '#ccc',\n      width: 100,\n      height: null,\n      padding: [5, 10],\n      offsetCenter: [0, '40%'],\n      color: '#464646',\n      fontSize: 30,\n      fontWeight: 'bold',\n      lineHeight: 30,\n      valueAnimation: false\n    }\n  };\n  return GaugeSeriesModel;\n}(SeriesModel);\n\nexport default GaugeSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport GaugeView from './GaugeView';\nimport GaugeSeriesModel from './GaugeSeries';\nexport function install(registers) {\n  registers.registerChartView(GaugeView);\n  registers.registerSeriesModel(GaugeSeriesModel);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport ChartView from '../../view/Chart';\nimport { setLabelLineStyle, getLabelLineStatesModels } from '../../label/labelGuideHelper';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nvar opacityAccessPath = ['itemStyle', 'opacity'];\n\nvar FunnelPiece = function (_super) {\n  __extends(FunnelPiece, _super);\n\n  function FunnelPiece(data, idx) {\n    var _this = _super.call(this) || this;\n\n    var polygon = _this;\n    var labelLine = new graphic.Polyline();\n    var text = new graphic.Text();\n    polygon.setTextContent(text);\n\n    _this.setTextGuideLine(labelLine);\n\n    _this.updateData(data, idx, true);\n\n    return _this;\n  }\n\n  FunnelPiece.prototype.updateData = function (data, idx, firstCreate) {\n    var polygon = this;\n    var seriesModel = data.hostModel;\n    var itemModel = data.getItemModel(idx);\n    var layout = data.getItemLayout(idx);\n    var emphasisModel = itemModel.getModel('emphasis');\n    var opacity = itemModel.get(opacityAccessPath);\n    opacity = opacity == null ? 1 : opacity;\n    polygon.useStyle(data.getItemVisual(idx, 'style'));\n    polygon.style.lineJoin = 'round';\n\n    if (firstCreate) {\n      polygon.setShape({\n        points: layout.points\n      });\n      polygon.style.opacity = 0;\n      graphic.initProps(polygon, {\n        style: {\n          opacity: opacity\n        }\n      }, seriesModel, idx);\n    } else {\n      graphic.updateProps(polygon, {\n        style: {\n          opacity: opacity\n        },\n        shape: {\n          points: layout.points\n        }\n      }, seriesModel, idx);\n    }\n\n    setStatesStylesFromModel(polygon, itemModel);\n\n    this._updateLabel(data, idx);\n\n    enableHoverEmphasis(this, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n  };\n\n  FunnelPiece.prototype._updateLabel = function (data, idx) {\n    var polygon = this;\n    var labelLine = this.getTextGuideLine();\n    var labelText = polygon.getTextContent();\n    var seriesModel = data.hostModel;\n    var itemModel = data.getItemModel(idx);\n    var layout = data.getItemLayout(idx);\n    var labelLayout = layout.label;\n    var style = data.getItemVisual(idx, 'style');\n    var visualColor = style.fill;\n    setLabelStyle(labelText, getLabelStatesModels(itemModel), {\n      labelFetcher: data.hostModel,\n      labelDataIndex: idx,\n      defaultOpacity: style.opacity,\n      defaultText: data.getName(idx)\n    }, {\n      normal: {\n        align: labelLayout.textAlign,\n        verticalAlign: labelLayout.verticalAlign\n      }\n    });\n    polygon.setTextConfig({\n      local: true,\n      inside: !!labelLayout.inside,\n      insideStroke: visualColor,\n      outsideFill: visualColor\n    });\n    var linePoints = labelLayout.linePoints;\n    labelLine.setShape({\n      points: linePoints\n    });\n    polygon.textGuideLineConfig = {\n      anchor: linePoints ? new graphic.Point(linePoints[0][0], linePoints[0][1]) : null\n    };\n    graphic.updateProps(labelText, {\n      style: {\n        x: labelLayout.x,\n        y: labelLayout.y\n      }\n    }, seriesModel, idx);\n    labelText.attr({\n      rotation: labelLayout.rotation,\n      originX: labelLayout.x,\n      originY: labelLayout.y,\n      z2: 10\n    });\n    setLabelLineStyle(polygon, getLabelLineStatesModels(itemModel), {\n      stroke: visualColor\n    });\n  };\n\n  return FunnelPiece;\n}(graphic.Polygon);\n\nvar FunnelView = function (_super) {\n  __extends(FunnelView, _super);\n\n  function FunnelView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = FunnelView.type;\n    _this.ignoreLabelLineUpdate = true;\n    return _this;\n  }\n\n  FunnelView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var group = this.group;\n    data.diff(oldData).add(function (idx) {\n      var funnelPiece = new FunnelPiece(data, idx);\n      data.setItemGraphicEl(idx, funnelPiece);\n      group.add(funnelPiece);\n    }).update(function (newIdx, oldIdx) {\n      var piece = oldData.getItemGraphicEl(oldIdx);\n      piece.updateData(data, newIdx);\n      group.add(piece);\n      data.setItemGraphicEl(newIdx, piece);\n    }).remove(function (idx) {\n      var piece = oldData.getItemGraphicEl(idx);\n      graphic.removeElementWithFadeOut(piece, seriesModel, idx);\n    }).execute();\n    this._data = data;\n  };\n\n  FunnelView.prototype.remove = function () {\n    this.group.removeAll();\n    this._data = null;\n  };\n\n  FunnelView.prototype.dispose = function () {};\n\n  FunnelView.type = 'funnel';\n  return FunnelView;\n}(ChartView);\n\nexport default FunnelView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport createListSimply from '../helper/createListSimply';\nimport { defaultEmphasis } from '../../util/model';\nimport { makeSeriesEncodeForNameBased } from '../../data/helper/sourceHelper';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider';\nimport SeriesModel from '../../model/Series';\n\nvar FunnelSeriesModel = function (_super) {\n  __extends(FunnelSeriesModel, _super);\n\n  function FunnelSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = FunnelSeriesModel.type;\n    _this.useColorPaletteOnData = true;\n    return _this;\n  }\n\n  FunnelSeriesModel.prototype.init = function (option) {\n    _super.prototype.init.apply(this, arguments);\n\n    this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));\n\n    this._defaultLabelLine(option);\n  };\n\n  FunnelSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListSimply(this, {\n      coordDimensions: ['value'],\n      encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)\n    });\n  };\n\n  FunnelSeriesModel.prototype._defaultLabelLine = function (option) {\n    defaultEmphasis(option, 'labelLine', ['show']);\n    var labelLineNormalOpt = option.labelLine;\n    var labelLineEmphasisOpt = option.emphasis.labelLine;\n    labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show;\n    labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show;\n  };\n\n  FunnelSeriesModel.prototype.getDataParams = function (dataIndex) {\n    var data = this.getData();\n\n    var params = _super.prototype.getDataParams.call(this, dataIndex);\n\n    var valueDim = data.mapDimension('value');\n    var sum = data.getSum(valueDim);\n    params.percent = !sum ? 0 : +(data.get(valueDim, dataIndex) / sum * 100).toFixed(2);\n    params.$vars.push('percent');\n    return params;\n  };\n\n  FunnelSeriesModel.type = 'series.funnel';\n  FunnelSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    left: 80,\n    top: 60,\n    right: 80,\n    bottom: 60,\n    minSize: '0%',\n    maxSize: '100%',\n    sort: 'descending',\n    orient: 'vertical',\n    gap: 0,\n    funnelAlign: 'center',\n    label: {\n      show: true,\n      position: 'outer'\n    },\n    labelLine: {\n      show: true,\n      length: 20,\n      lineStyle: {\n        width: 1\n      }\n    },\n    itemStyle: {\n      borderColor: '#fff',\n      borderWidth: 1\n    },\n    emphasis: {\n      label: {\n        show: true\n      }\n    },\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    }\n  };\n  return FunnelSeriesModel;\n}(SeriesModel);\n\nexport default FunnelSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as layout from '../../util/layout';\nimport { parsePercent, linearMap } from '../../util/number';\n\nfunction getViewRect(seriesModel, api) {\n  return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n}\n\nfunction getSortedIndices(data, sort) {\n  var valueDim = data.mapDimension('value');\n  var valueArr = data.mapArray(valueDim, function (val) {\n    return val;\n  });\n  var indices = [];\n  var isAscending = sort === 'ascending';\n\n  for (var i = 0, len = data.count(); i < len; i++) {\n    indices[i] = i;\n  }\n\n  if (typeof sort === 'function') {\n    indices.sort(sort);\n  } else if (sort !== 'none') {\n    indices.sort(function (a, b) {\n      return isAscending ? valueArr[a] - valueArr[b] : valueArr[b] - valueArr[a];\n    });\n  }\n\n  return indices;\n}\n\nfunction labelLayout(data) {\n  var seriesModel = data.hostModel;\n  var orient = seriesModel.get('orient');\n  data.each(function (idx) {\n    var itemModel = data.getItemModel(idx);\n    var labelModel = itemModel.getModel('label');\n    var labelPosition = labelModel.get('position');\n    var labelLineModel = itemModel.getModel('labelLine');\n    var layout = data.getItemLayout(idx);\n    var points = layout.points;\n    var isLabelInside = labelPosition === 'inner' || labelPosition === 'inside' || labelPosition === 'center' || labelPosition === 'insideLeft' || labelPosition === 'insideRight';\n    var textAlign;\n    var textX;\n    var textY;\n    var linePoints;\n\n    if (isLabelInside) {\n      if (labelPosition === 'insideLeft') {\n        textX = (points[0][0] + points[3][0]) / 2 + 5;\n        textY = (points[0][1] + points[3][1]) / 2;\n        textAlign = 'left';\n      } else if (labelPosition === 'insideRight') {\n        textX = (points[1][0] + points[2][0]) / 2 - 5;\n        textY = (points[1][1] + points[2][1]) / 2;\n        textAlign = 'right';\n      } else {\n        textX = (points[0][0] + points[1][0] + points[2][0] + points[3][0]) / 4;\n        textY = (points[0][1] + points[1][1] + points[2][1] + points[3][1]) / 4;\n        textAlign = 'center';\n      }\n\n      linePoints = [[textX, textY], [textX, textY]];\n    } else {\n      var x1 = void 0;\n      var y1 = void 0;\n      var x2 = void 0;\n      var y2 = void 0;\n      var labelLineLen = labelLineModel.get('length');\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (orient === 'vertical' && ['top', 'bottom'].indexOf(labelPosition) > -1) {\n          labelPosition = 'left';\n          console.warn('Position error: Funnel chart on vertical orient dose not support top and bottom.');\n        }\n\n        if (orient === 'horizontal' && ['left', 'right'].indexOf(labelPosition) > -1) {\n          labelPosition = 'bottom';\n          console.warn('Position error: Funnel chart on horizontal orient dose not support left and right.');\n        }\n      }\n\n      if (labelPosition === 'left') {\n        x1 = (points[3][0] + points[0][0]) / 2;\n        y1 = (points[3][1] + points[0][1]) / 2;\n        x2 = x1 - labelLineLen;\n        textX = x2 - 5;\n        textAlign = 'right';\n      } else if (labelPosition === 'right') {\n        x1 = (points[1][0] + points[2][0]) / 2;\n        y1 = (points[1][1] + points[2][1]) / 2;\n        x2 = x1 + labelLineLen;\n        textX = x2 + 5;\n        textAlign = 'left';\n      } else if (labelPosition === 'top') {\n        x1 = (points[3][0] + points[0][0]) / 2;\n        y1 = (points[3][1] + points[0][1]) / 2;\n        y2 = y1 - labelLineLen;\n        textY = y2 - 5;\n        textAlign = 'center';\n      } else if (labelPosition === 'bottom') {\n        x1 = (points[1][0] + points[2][0]) / 2;\n        y1 = (points[1][1] + points[2][1]) / 2;\n        y2 = y1 + labelLineLen;\n        textY = y2 + 5;\n        textAlign = 'center';\n      } else if (labelPosition === 'rightTop') {\n        x1 = orient === 'horizontal' ? points[3][0] : points[1][0];\n        y1 = orient === 'horizontal' ? points[3][1] : points[1][1];\n\n        if (orient === 'horizontal') {\n          y2 = y1 - labelLineLen;\n          textY = y2 - 5;\n          textAlign = 'center';\n        } else {\n          x2 = x1 + labelLineLen;\n          textX = x2 + 5;\n          textAlign = 'top';\n        }\n      } else if (labelPosition === 'rightBottom') {\n        x1 = points[2][0];\n        y1 = points[2][1];\n\n        if (orient === 'horizontal') {\n          y2 = y1 + labelLineLen;\n          textY = y2 + 5;\n          textAlign = 'center';\n        } else {\n          x2 = x1 + labelLineLen;\n          textX = x2 + 5;\n          textAlign = 'bottom';\n        }\n      } else if (labelPosition === 'leftTop') {\n        x1 = points[0][0];\n        y1 = orient === 'horizontal' ? points[0][1] : points[1][1];\n\n        if (orient === 'horizontal') {\n          y2 = y1 - labelLineLen;\n          textY = y2 - 5;\n          textAlign = 'center';\n        } else {\n          x2 = x1 - labelLineLen;\n          textX = x2 - 5;\n          textAlign = 'right';\n        }\n      } else if (labelPosition === 'leftBottom') {\n        x1 = orient === 'horizontal' ? points[1][0] : points[3][0];\n        y1 = orient === 'horizontal' ? points[1][1] : points[2][1];\n\n        if (orient === 'horizontal') {\n          y2 = y1 + labelLineLen;\n          textY = y2 + 5;\n          textAlign = 'center';\n        } else {\n          x2 = x1 - labelLineLen;\n          textX = x2 - 5;\n          textAlign = 'right';\n        }\n      } else {\n        x1 = (points[1][0] + points[2][0]) / 2;\n        y1 = (points[1][1] + points[2][1]) / 2;\n\n        if (orient === 'horizontal') {\n          y2 = y1 + labelLineLen;\n          textY = y2 + 5;\n          textAlign = 'center';\n        } else {\n          x2 = x1 + labelLineLen;\n          textX = x2 + 5;\n          textAlign = 'left';\n        }\n      }\n\n      if (orient === 'horizontal') {\n        x2 = x1;\n        textX = x2;\n      } else {\n        y2 = y1;\n        textY = y2;\n      }\n\n      linePoints = [[x1, y1], [x2, y2]];\n    }\n\n    layout.label = {\n      linePoints: linePoints,\n      x: textX,\n      y: textY,\n      verticalAlign: 'middle',\n      textAlign: textAlign,\n      inside: isLabelInside\n    };\n  });\n}\n\nexport default function funnelLayout(ecModel, api) {\n  ecModel.eachSeriesByType('funnel', function (seriesModel) {\n    var data = seriesModel.getData();\n    var valueDim = data.mapDimension('value');\n    var sort = seriesModel.get('sort');\n    var viewRect = getViewRect(seriesModel, api);\n    var orient = seriesModel.get('orient');\n    var viewWidth = viewRect.width;\n    var viewHeight = viewRect.height;\n    var indices = getSortedIndices(data, sort);\n    var x = viewRect.x;\n    var y = viewRect.y;\n    var sizeExtent = orient === 'horizontal' ? [parsePercent(seriesModel.get('minSize'), viewHeight), parsePercent(seriesModel.get('maxSize'), viewHeight)] : [parsePercent(seriesModel.get('minSize'), viewWidth), parsePercent(seriesModel.get('maxSize'), viewWidth)];\n    var dataExtent = data.getDataExtent(valueDim);\n    var min = seriesModel.get('min');\n    var max = seriesModel.get('max');\n\n    if (min == null) {\n      min = Math.min(dataExtent[0], 0);\n    }\n\n    if (max == null) {\n      max = dataExtent[1];\n    }\n\n    var funnelAlign = seriesModel.get('funnelAlign');\n    var gap = seriesModel.get('gap');\n    var viewSize = orient === 'horizontal' ? viewWidth : viewHeight;\n    var itemSize = (viewSize - gap * (data.count() - 1)) / data.count();\n\n    var getLinePoints = function (idx, offset) {\n      if (orient === 'horizontal') {\n        var val_1 = data.get(valueDim, idx) || 0;\n        var itemHeight = linearMap(val_1, [min, max], sizeExtent, true);\n        var y0 = void 0;\n\n        switch (funnelAlign) {\n          case 'top':\n            y0 = y;\n            break;\n\n          case 'center':\n            y0 = y + (viewHeight - itemHeight) / 2;\n            break;\n\n          case 'bottom':\n            y0 = y + (viewHeight - itemHeight);\n            break;\n        }\n\n        return [[offset, y0], [offset, y0 + itemHeight]];\n      }\n\n      var val = data.get(valueDim, idx) || 0;\n      var itemWidth = linearMap(val, [min, max], sizeExtent, true);\n      var x0;\n\n      switch (funnelAlign) {\n        case 'left':\n          x0 = x;\n          break;\n\n        case 'center':\n          x0 = x + (viewWidth - itemWidth) / 2;\n          break;\n\n        case 'right':\n          x0 = x + viewWidth - itemWidth;\n          break;\n      }\n\n      return [[x0, offset], [x0 + itemWidth, offset]];\n    };\n\n    if (sort === 'ascending') {\n      itemSize = -itemSize;\n      gap = -gap;\n\n      if (orient === 'horizontal') {\n        x += viewWidth;\n      } else {\n        y += viewHeight;\n      }\n\n      indices = indices.reverse();\n    }\n\n    for (var i = 0; i < indices.length; i++) {\n      var idx = indices[i];\n      var nextIdx = indices[i + 1];\n      var itemModel = data.getItemModel(idx);\n\n      if (orient === 'horizontal') {\n        var width = itemModel.get(['itemStyle', 'width']);\n\n        if (width == null) {\n          width = itemSize;\n        } else {\n          width = parsePercent(width, viewWidth);\n\n          if (sort === 'ascending') {\n            width = -width;\n          }\n        }\n\n        var start = getLinePoints(idx, x);\n        var end = getLinePoints(nextIdx, x + width);\n        x += width + gap;\n        data.setItemLayout(idx, {\n          points: start.concat(end.slice().reverse())\n        });\n      } else {\n        var height = itemModel.get(['itemStyle', 'height']);\n\n        if (height == null) {\n          height = itemSize;\n        } else {\n          height = parsePercent(height, viewHeight);\n\n          if (sort === 'ascending') {\n            height = -height;\n          }\n        }\n\n        var start = getLinePoints(idx, y);\n        var end = getLinePoints(nextIdx, y + height);\n        y += height + gap;\n        data.setItemLayout(idx, {\n          points: start.concat(end.slice().reverse())\n        });\n      }\n    }\n\n    labelLayout(data);\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport FunnelView from './FunnelView';\nimport FunnelSeriesModel from './FunnelSeries';\nimport funnelLayout from './funnelLayout';\nimport dataFilter from '../../processor/dataFilter';\nexport function install(registers) {\n  registers.registerChartView(FunnelView);\n  registers.registerSeriesModel(FunnelSeriesModel);\n  registers.registerLayout(funnelLayout);\n  registers.registerProcessor(dataFilter('funnel'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport ChartView from '../../view/Chart';\nimport { numericToNumber } from '../../util/number';\nimport { eqNaN } from 'zrender/lib/core/util';\nvar DEFAULT_SMOOTH = 0.3;\n\nvar ParallelView = function (_super) {\n  __extends(ParallelView, _super);\n\n  function ParallelView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ParallelView.type;\n    _this._dataGroup = new graphic.Group();\n    _this._initialized = false;\n    return _this;\n  }\n\n  ParallelView.prototype.init = function () {\n    this.group.add(this._dataGroup);\n  };\n\n  ParallelView.prototype.render = function (seriesModel, ecModel, api, payload) {\n    var dataGroup = this._dataGroup;\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var coordSys = seriesModel.coordinateSystem;\n    var dimensions = coordSys.dimensions;\n    var seriesScope = makeSeriesScope(seriesModel);\n    data.diff(oldData).add(add).update(update).remove(remove).execute();\n\n    function add(newDataIndex) {\n      var line = addEl(data, dataGroup, newDataIndex, dimensions, coordSys);\n      updateElCommon(line, data, newDataIndex, seriesScope);\n    }\n\n    function update(newDataIndex, oldDataIndex) {\n      var line = oldData.getItemGraphicEl(oldDataIndex);\n      var points = createLinePoints(data, newDataIndex, dimensions, coordSys);\n      data.setItemGraphicEl(newDataIndex, line);\n      graphic.updateProps(line, {\n        shape: {\n          points: points\n        }\n      }, seriesModel, newDataIndex);\n      updateElCommon(line, data, newDataIndex, seriesScope);\n    }\n\n    function remove(oldDataIndex) {\n      var line = oldData.getItemGraphicEl(oldDataIndex);\n      dataGroup.remove(line);\n    }\n\n    if (!this._initialized) {\n      this._initialized = true;\n      var clipPath = createGridClipShape(coordSys, seriesModel, function () {\n        setTimeout(function () {\n          dataGroup.removeClipPath();\n        });\n      });\n      dataGroup.setClipPath(clipPath);\n    }\n\n    this._data = data;\n  };\n\n  ParallelView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n    this._initialized = true;\n    this._data = null;\n\n    this._dataGroup.removeAll();\n  };\n\n  ParallelView.prototype.incrementalRender = function (taskParams, seriesModel, ecModel) {\n    var data = seriesModel.getData();\n    var coordSys = seriesModel.coordinateSystem;\n    var dimensions = coordSys.dimensions;\n    var seriesScope = makeSeriesScope(seriesModel);\n\n    for (var dataIndex = taskParams.start; dataIndex < taskParams.end; dataIndex++) {\n      var line = addEl(data, this._dataGroup, dataIndex, dimensions, coordSys);\n      line.incremental = true;\n      updateElCommon(line, data, dataIndex, seriesScope);\n    }\n  };\n\n  ParallelView.prototype.remove = function () {\n    this._dataGroup && this._dataGroup.removeAll();\n    this._data = null;\n  };\n\n  ParallelView.type = 'parallel';\n  return ParallelView;\n}(ChartView);\n\nfunction createGridClipShape(coordSys, seriesModel, cb) {\n  var parallelModel = coordSys.model;\n  var rect = coordSys.getRect();\n  var rectEl = new graphic.Rect({\n    shape: {\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height\n    }\n  });\n  var dim = parallelModel.get('layout') === 'horizontal' ? 'width' : 'height';\n  rectEl.setShape(dim, 0);\n  graphic.initProps(rectEl, {\n    shape: {\n      width: rect.width,\n      height: rect.height\n    }\n  }, seriesModel, cb);\n  return rectEl;\n}\n\nfunction createLinePoints(data, dataIndex, dimensions, coordSys) {\n  var points = [];\n\n  for (var i = 0; i < dimensions.length; i++) {\n    var dimName = dimensions[i];\n    var value = data.get(data.mapDimension(dimName), dataIndex);\n\n    if (!isEmptyValue(value, coordSys.getAxis(dimName).type)) {\n      points.push(coordSys.dataToPoint(value, dimName));\n    }\n  }\n\n  return points;\n}\n\nfunction addEl(data, dataGroup, dataIndex, dimensions, coordSys) {\n  var points = createLinePoints(data, dataIndex, dimensions, coordSys);\n  var line = new graphic.Polyline({\n    shape: {\n      points: points\n    },\n    z2: 10\n  });\n  dataGroup.add(line);\n  data.setItemGraphicEl(dataIndex, line);\n  return line;\n}\n\nfunction makeSeriesScope(seriesModel) {\n  var smooth = seriesModel.get('smooth', true);\n  smooth === true && (smooth = DEFAULT_SMOOTH);\n  smooth = numericToNumber(smooth);\n  eqNaN(smooth) && (smooth = 0);\n  return {\n    smooth: smooth\n  };\n}\n\nfunction updateElCommon(el, data, dataIndex, seriesScope) {\n  el.useStyle(data.getItemVisual(dataIndex, 'style'));\n  el.style.fill = null;\n  el.setShape('smooth', seriesScope.smooth);\n  var itemModel = data.getItemModel(dataIndex);\n  var emphasisModel = itemModel.getModel('emphasis');\n  setStatesStylesFromModel(el, itemModel, 'lineStyle');\n  enableHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n}\n\nfunction isEmptyValue(val, axisType) {\n  return axisType === 'category' ? val == null : val == null || isNaN(val);\n}\n\nexport default ParallelView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { each, bind } from 'zrender/lib/core/util';\nimport SeriesModel from '../../model/Series';\nimport createListFromArray from '../helper/createListFromArray';\n\nvar ParallelSeriesModel = function (_super) {\n  __extends(ParallelSeriesModel, _super);\n\n  function ParallelSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ParallelSeriesModel.type;\n    _this.visualStyleAccessPath = 'lineStyle';\n    _this.visualDrawType = 'stroke';\n    return _this;\n  }\n\n  ParallelSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: bind(makeDefaultEncode, null, this)\n    });\n  };\n\n  ParallelSeriesModel.prototype.getRawIndicesByActiveState = function (activeState) {\n    var coordSys = this.coordinateSystem;\n    var data = this.getData();\n    var indices = [];\n    coordSys.eachActiveState(data, function (theActiveState, dataIndex) {\n      if (activeState === theActiveState) {\n        indices.push(data.getRawIndex(dataIndex));\n      }\n    });\n    return indices;\n  };\n\n  ParallelSeriesModel.type = 'series.parallel';\n  ParallelSeriesModel.dependencies = ['parallel'];\n  ParallelSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'parallel',\n    parallelIndex: 0,\n    label: {\n      show: false\n    },\n    inactiveOpacity: 0.05,\n    activeOpacity: 1,\n    lineStyle: {\n      width: 1,\n      opacity: 0.45,\n      type: 'solid'\n    },\n    emphasis: {\n      label: {\n        show: false\n      }\n    },\n    progressive: 500,\n    smooth: false,\n    animationEasing: 'linear'\n  };\n  return ParallelSeriesModel;\n}(SeriesModel);\n\nfunction makeDefaultEncode(seriesModel) {\n  var parallelModel = seriesModel.ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\n\n  if (!parallelModel) {\n    return;\n  }\n\n  var encodeDefine = {};\n  each(parallelModel.dimensions, function (axisDim) {\n    var dataDimIndex = convertDimNameToNumber(axisDim);\n    encodeDefine[axisDim] = dataDimIndex;\n  });\n  return encodeDefine;\n}\n\nfunction convertDimNameToNumber(dimName) {\n  return +dimName.replace('dim', '');\n}\n\nexport default ParallelSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar opacityAccessPath = ['lineStyle', 'opacity'];\nvar parallelVisual = {\n  seriesType: 'parallel',\n  reset: function (seriesModel, ecModel) {\n    var coordSys = seriesModel.coordinateSystem;\n    var opacityMap = {\n      normal: seriesModel.get(['lineStyle', 'opacity']),\n      active: seriesModel.get('activeOpacity'),\n      inactive: seriesModel.get('inactiveOpacity')\n    };\n    return {\n      progress: function (params, data) {\n        coordSys.eachActiveState(data, function (activeState, dataIndex) {\n          var opacity = opacityMap[activeState];\n\n          if (activeState === 'normal' && data.hasItemOption) {\n            var itemOpacity = data.getItemModel(dataIndex).get(opacityAccessPath, true);\n            itemOpacity != null && (opacity = itemOpacity);\n          }\n\n          var existsStyle = data.ensureUniqueItemVisual(dataIndex, 'style');\n          existsStyle.opacity = opacity;\n        }, params.start, params.end);\n      }\n    };\n  }\n};\nexport default parallelVisual;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nexport default function parallelPreprocessor(option) {\n  createParallelIfNeeded(option);\n  mergeAxisOptionFromParallel(option);\n}\n\nfunction createParallelIfNeeded(option) {\n  if (option.parallel) {\n    return;\n  }\n\n  var hasParallelSeries = false;\n  zrUtil.each(option.series, function (seriesOpt) {\n    if (seriesOpt && seriesOpt.type === 'parallel') {\n      hasParallelSeries = true;\n    }\n  });\n\n  if (hasParallelSeries) {\n    option.parallel = [{}];\n  }\n}\n\nfunction mergeAxisOptionFromParallel(option) {\n  var axes = modelUtil.normalizeToArray(option.parallelAxis);\n  zrUtil.each(axes, function (axisOption) {\n    if (!zrUtil.isObject(axisOption)) {\n      return;\n    }\n\n    var parallelIndex = axisOption.parallelIndex || 0;\n    var parallelOption = modelUtil.normalizeToArray(option.parallel)[parallelIndex];\n\n    if (parallelOption && parallelOption.parallelAxisDefault) {\n      zrUtil.merge(axisOption, parallelOption.parallelAxisDefault, false);\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component';\nimport { each, bind, extend } from 'zrender/lib/core/util';\nimport { createOrUpdate } from '../../util/throttle';\nvar CLICK_THRESHOLD = 5;\n\nvar ParallelView = function (_super) {\n  __extends(ParallelView, _super);\n\n  function ParallelView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ParallelView.type;\n    return _this;\n  }\n\n  ParallelView.prototype.render = function (parallelModel, ecModel, api) {\n    this._model = parallelModel;\n    this._api = api;\n\n    if (!this._handlers) {\n      this._handlers = {};\n      each(handlers, function (handler, eventName) {\n        api.getZr().on(eventName, this._handlers[eventName] = bind(handler, this));\n      }, this);\n    }\n\n    createOrUpdate(this, '_throttledDispatchExpand', parallelModel.get('axisExpandRate'), 'fixRate');\n  };\n\n  ParallelView.prototype.dispose = function (ecModel, api) {\n    each(this._handlers, function (handler, eventName) {\n      api.getZr().off(eventName, handler);\n    });\n    this._handlers = null;\n  };\n\n  ParallelView.prototype._throttledDispatchExpand = function (opt) {\n    this._dispatchExpand(opt);\n  };\n\n  ParallelView.prototype._dispatchExpand = function (opt) {\n    opt && this._api.dispatchAction(extend({\n      type: 'parallelAxisExpand'\n    }, opt));\n  };\n\n  ParallelView.type = 'parallel';\n  return ParallelView;\n}(ComponentView);\n\nvar handlers = {\n  mousedown: function (e) {\n    if (checkTrigger(this, 'click')) {\n      this._mouseDownPoint = [e.offsetX, e.offsetY];\n    }\n  },\n  mouseup: function (e) {\n    var mouseDownPoint = this._mouseDownPoint;\n\n    if (checkTrigger(this, 'click') && mouseDownPoint) {\n      var point = [e.offsetX, e.offsetY];\n      var dist = Math.pow(mouseDownPoint[0] - point[0], 2) + Math.pow(mouseDownPoint[1] - point[1], 2);\n\n      if (dist > CLICK_THRESHOLD) {\n        return;\n      }\n\n      var result = this._model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX, e.offsetY]);\n\n      result.behavior !== 'none' && this._dispatchExpand({\n        axisExpandWindow: result.axisExpandWindow\n      });\n    }\n\n    this._mouseDownPoint = null;\n  },\n  mousemove: function (e) {\n    if (this._mouseDownPoint || !checkTrigger(this, 'mousemove')) {\n      return;\n    }\n\n    var model = this._model;\n    var result = model.coordinateSystem.getSlidedAxisExpandWindow([e.offsetX, e.offsetY]);\n    var behavior = result.behavior;\n    behavior === 'jump' && this._throttledDispatchExpand.debounceNextCall(model.get('axisExpandDebounce'));\n\n    this._throttledDispatchExpand(behavior === 'none' ? null : {\n      axisExpandWindow: result.axisExpandWindow,\n      animation: behavior === 'jump' ? null : {\n        duration: 0\n      }\n    });\n  }\n};\n\nfunction checkTrigger(view, triggerOn) {\n  var model = view._model;\n  return model.get('axisExpandable') && model.get('axisExpandTriggerOn') === triggerOn;\n}\n\nexport default ParallelView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\n\nvar ParallelModel = function (_super) {\n  __extends(ParallelModel, _super);\n\n  function ParallelModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ParallelModel.type;\n    return _this;\n  }\n\n  ParallelModel.prototype.init = function () {\n    _super.prototype.init.apply(this, arguments);\n\n    this.mergeOption({});\n  };\n\n  ParallelModel.prototype.mergeOption = function (newOption) {\n    var thisOption = this.option;\n    newOption && zrUtil.merge(thisOption, newOption, true);\n\n    this._initDimensions();\n  };\n\n  ParallelModel.prototype.contains = function (model, ecModel) {\n    var parallelIndex = model.get('parallelIndex');\n    return parallelIndex != null && ecModel.getComponent('parallel', parallelIndex) === this;\n  };\n\n  ParallelModel.prototype.setAxisExpand = function (opt) {\n    zrUtil.each(['axisExpandable', 'axisExpandCenter', 'axisExpandCount', 'axisExpandWidth', 'axisExpandWindow'], function (name) {\n      if (opt.hasOwnProperty(name)) {\n        this.option[name] = opt[name];\n      }\n    }, this);\n  };\n\n  ParallelModel.prototype._initDimensions = function () {\n    var dimensions = this.dimensions = [];\n    var parallelAxisIndex = this.parallelAxisIndex = [];\n    var axisModels = zrUtil.filter(this.ecModel.queryComponents({\n      mainType: 'parallelAxis'\n    }), function (axisModel) {\n      return (axisModel.get('parallelIndex') || 0) === this.componentIndex;\n    }, this);\n    zrUtil.each(axisModels, function (axisModel) {\n      dimensions.push('dim' + axisModel.get('dim'));\n      parallelAxisIndex.push(axisModel.componentIndex);\n    });\n  };\n\n  ParallelModel.type = 'parallel';\n  ParallelModel.dependencies = ['parallelAxis'];\n  ParallelModel.layoutMode = 'box';\n  ParallelModel.defaultOption = {\n    zlevel: 0,\n    z: 0,\n    left: 80,\n    top: 60,\n    right: 80,\n    bottom: 60,\n    layout: 'horizontal',\n    axisExpandable: false,\n    axisExpandCenter: null,\n    axisExpandCount: 0,\n    axisExpandWidth: 50,\n    axisExpandRate: 17,\n    axisExpandDebounce: 50,\n    axisExpandSlideTriggerArea: [-0.15, 0.05, 0.4],\n    axisExpandTriggerOn: 'click',\n    parallelAxisDefault: null\n  };\n  return ParallelModel;\n}(ComponentModel);\n\nexport default ParallelModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis';\n\nvar ParallelAxis = function (_super) {\n  __extends(ParallelAxis, _super);\n\n  function ParallelAxis(dim, scale, coordExtent, axisType, axisIndex) {\n    var _this = _super.call(this, dim, scale, coordExtent) || this;\n\n    _this.type = axisType || 'value';\n    _this.axisIndex = axisIndex;\n    return _this;\n  }\n\n  ParallelAxis.prototype.isHorizontal = function () {\n    return this.coordinateSystem.getModel().get('layout') !== 'horizontal';\n  };\n\n  return ParallelAxis;\n}(Axis);\n\nexport default ParallelAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function sliderMove(delta, handleEnds, extent, handleIndex, minSpan, maxSpan) {\n  delta = delta || 0;\n  var extentSpan = extent[1] - extent[0];\n\n  if (minSpan != null) {\n    minSpan = restrict(minSpan, [0, extentSpan]);\n  }\n\n  if (maxSpan != null) {\n    maxSpan = Math.max(maxSpan, minSpan != null ? minSpan : 0);\n  }\n\n  if (handleIndex === 'all') {\n    var handleSpan = Math.abs(handleEnds[1] - handleEnds[0]);\n    handleSpan = restrict(handleSpan, [0, extentSpan]);\n    minSpan = maxSpan = restrict(handleSpan, [minSpan, maxSpan]);\n    handleIndex = 0;\n  }\n\n  handleEnds[0] = restrict(handleEnds[0], extent);\n  handleEnds[1] = restrict(handleEnds[1], extent);\n  var originalDistSign = getSpanSign(handleEnds, handleIndex);\n  handleEnds[handleIndex] += delta;\n  var extentMinSpan = minSpan || 0;\n  var realExtent = extent.slice();\n  originalDistSign.sign < 0 ? realExtent[0] += extentMinSpan : realExtent[1] -= extentMinSpan;\n  handleEnds[handleIndex] = restrict(handleEnds[handleIndex], realExtent);\n  var currDistSign;\n  currDistSign = getSpanSign(handleEnds, handleIndex);\n\n  if (minSpan != null && (currDistSign.sign !== originalDistSign.sign || currDistSign.span < minSpan)) {\n    handleEnds[1 - handleIndex] = handleEnds[handleIndex] + originalDistSign.sign * minSpan;\n  }\n\n  currDistSign = getSpanSign(handleEnds, handleIndex);\n\n  if (maxSpan != null && currDistSign.span > maxSpan) {\n    handleEnds[1 - handleIndex] = handleEnds[handleIndex] + currDistSign.sign * maxSpan;\n  }\n\n  return handleEnds;\n}\n\nfunction getSpanSign(handleEnds, handleIndex) {\n  var dist = handleEnds[handleIndex] - handleEnds[1 - handleIndex];\n  return {\n    span: Math.abs(dist),\n    sign: dist > 0 ? -1 : dist < 0 ? 1 : handleIndex ? -1 : 1\n  };\n}\n\nfunction restrict(value, extend) {\n  return Math.min(extend[1] != null ? extend[1] : Infinity, Math.max(extend[0] != null ? extend[0] : -Infinity, value));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport * as layoutUtil from '../../util/layout';\nimport * as axisHelper from '../../coord/axisHelper';\nimport ParallelAxis from './ParallelAxis';\nimport * as graphic from '../../util/graphic';\nimport * as numberUtil from '../../util/number';\nimport sliderMove from '../../component/helper/sliderMove';\nvar each = zrUtil.each;\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathFloor = Math.floor;\nvar mathCeil = Math.ceil;\nvar round = numberUtil.round;\nvar PI = Math.PI;\n\nvar Parallel = function () {\n  function Parallel(parallelModel, ecModel, api) {\n    this.type = 'parallel';\n    this._axesMap = zrUtil.createHashMap();\n    this._axesLayout = {};\n    this.dimensions = parallelModel.dimensions;\n    this._model = parallelModel;\n\n    this._init(parallelModel, ecModel, api);\n  }\n\n  Parallel.prototype._init = function (parallelModel, ecModel, api) {\n    var dimensions = parallelModel.dimensions;\n    var parallelAxisIndex = parallelModel.parallelAxisIndex;\n    each(dimensions, function (dim, idx) {\n      var axisIndex = parallelAxisIndex[idx];\n      var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\n\n      var axis = this._axesMap.set(dim, new ParallelAxis(dim, axisHelper.createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisIndex));\n\n      var isCategory = axis.type === 'category';\n      axis.onBand = isCategory && axisModel.get('boundaryGap');\n      axis.inverse = axisModel.get('inverse');\n      axisModel.axis = axis;\n      axis.model = axisModel;\n      axis.coordinateSystem = axisModel.coordinateSystem = this;\n    }, this);\n  };\n\n  Parallel.prototype.update = function (ecModel, api) {\n    this._updateAxesFromSeries(this._model, ecModel);\n  };\n\n  Parallel.prototype.containPoint = function (point) {\n    var layoutInfo = this._makeLayoutInfo();\n\n    var axisBase = layoutInfo.axisBase;\n    var layoutBase = layoutInfo.layoutBase;\n    var pixelDimIndex = layoutInfo.pixelDimIndex;\n    var pAxis = point[1 - pixelDimIndex];\n    var pLayout = point[pixelDimIndex];\n    return pAxis >= axisBase && pAxis <= axisBase + layoutInfo.axisLength && pLayout >= layoutBase && pLayout <= layoutBase + layoutInfo.layoutLength;\n  };\n\n  Parallel.prototype.getModel = function () {\n    return this._model;\n  };\n\n  Parallel.prototype._updateAxesFromSeries = function (parallelModel, ecModel) {\n    ecModel.eachSeries(function (seriesModel) {\n      if (!parallelModel.contains(seriesModel, ecModel)) {\n        return;\n      }\n\n      var data = seriesModel.getData();\n      each(this.dimensions, function (dim) {\n        var axis = this._axesMap.get(dim);\n\n        axis.scale.unionExtentFromData(data, data.mapDimension(dim));\n        axisHelper.niceScaleExtent(axis.scale, axis.model);\n      }, this);\n    }, this);\n  };\n\n  Parallel.prototype.resize = function (parallelModel, api) {\n    this._rect = layoutUtil.getLayoutRect(parallelModel.getBoxLayoutParams(), {\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n\n    this._layoutAxes();\n  };\n\n  Parallel.prototype.getRect = function () {\n    return this._rect;\n  };\n\n  Parallel.prototype._makeLayoutInfo = function () {\n    var parallelModel = this._model;\n    var rect = this._rect;\n    var xy = ['x', 'y'];\n    var wh = ['width', 'height'];\n    var layout = parallelModel.get('layout');\n    var pixelDimIndex = layout === 'horizontal' ? 0 : 1;\n    var layoutLength = rect[wh[pixelDimIndex]];\n    var layoutExtent = [0, layoutLength];\n    var axisCount = this.dimensions.length;\n    var axisExpandWidth = restrict(parallelModel.get('axisExpandWidth'), layoutExtent);\n    var axisExpandCount = restrict(parallelModel.get('axisExpandCount') || 0, [0, axisCount]);\n    var axisExpandable = parallelModel.get('axisExpandable') && axisCount > 3 && axisCount > axisExpandCount && axisExpandCount > 1 && axisExpandWidth > 0 && layoutLength > 0;\n    var axisExpandWindow = parallelModel.get('axisExpandWindow');\n    var winSize;\n\n    if (!axisExpandWindow) {\n      winSize = restrict(axisExpandWidth * (axisExpandCount - 1), layoutExtent);\n      var axisExpandCenter = parallelModel.get('axisExpandCenter') || mathFloor(axisCount / 2);\n      axisExpandWindow = [axisExpandWidth * axisExpandCenter - winSize / 2];\n      axisExpandWindow[1] = axisExpandWindow[0] + winSize;\n    } else {\n      winSize = restrict(axisExpandWindow[1] - axisExpandWindow[0], layoutExtent);\n      axisExpandWindow[1] = axisExpandWindow[0] + winSize;\n    }\n\n    var axisCollapseWidth = (layoutLength - winSize) / (axisCount - axisExpandCount);\n    axisCollapseWidth < 3 && (axisCollapseWidth = 0);\n    var winInnerIndices = [mathFloor(round(axisExpandWindow[0] / axisExpandWidth, 1)) + 1, mathCeil(round(axisExpandWindow[1] / axisExpandWidth, 1)) - 1];\n    var axisExpandWindow0Pos = axisCollapseWidth / axisExpandWidth * axisExpandWindow[0];\n    return {\n      layout: layout,\n      pixelDimIndex: pixelDimIndex,\n      layoutBase: rect[xy[pixelDimIndex]],\n      layoutLength: layoutLength,\n      axisBase: rect[xy[1 - pixelDimIndex]],\n      axisLength: rect[wh[1 - pixelDimIndex]],\n      axisExpandable: axisExpandable,\n      axisExpandWidth: axisExpandWidth,\n      axisCollapseWidth: axisCollapseWidth,\n      axisExpandWindow: axisExpandWindow,\n      axisCount: axisCount,\n      winInnerIndices: winInnerIndices,\n      axisExpandWindow0Pos: axisExpandWindow0Pos\n    };\n  };\n\n  Parallel.prototype._layoutAxes = function () {\n    var rect = this._rect;\n    var axes = this._axesMap;\n    var dimensions = this.dimensions;\n\n    var layoutInfo = this._makeLayoutInfo();\n\n    var layout = layoutInfo.layout;\n    axes.each(function (axis) {\n      var axisExtent = [0, layoutInfo.axisLength];\n      var idx = axis.inverse ? 1 : 0;\n      axis.setExtent(axisExtent[idx], axisExtent[1 - idx]);\n    });\n    each(dimensions, function (dim, idx) {\n      var posInfo = (layoutInfo.axisExpandable ? layoutAxisWithExpand : layoutAxisWithoutExpand)(idx, layoutInfo);\n      var positionTable = {\n        horizontal: {\n          x: posInfo.position,\n          y: layoutInfo.axisLength\n        },\n        vertical: {\n          x: 0,\n          y: posInfo.position\n        }\n      };\n      var rotationTable = {\n        horizontal: PI / 2,\n        vertical: 0\n      };\n      var position = [positionTable[layout].x + rect.x, positionTable[layout].y + rect.y];\n      var rotation = rotationTable[layout];\n      var transform = matrix.create();\n      matrix.rotate(transform, transform, rotation);\n      matrix.translate(transform, transform, position);\n      this._axesLayout[dim] = {\n        position: position,\n        rotation: rotation,\n        transform: transform,\n        axisNameAvailableWidth: posInfo.axisNameAvailableWidth,\n        axisLabelShow: posInfo.axisLabelShow,\n        nameTruncateMaxWidth: posInfo.nameTruncateMaxWidth,\n        tickDirection: 1,\n        labelDirection: 1\n      };\n    }, this);\n  };\n\n  Parallel.prototype.getAxis = function (dim) {\n    return this._axesMap.get(dim);\n  };\n\n  Parallel.prototype.dataToPoint = function (value, dim) {\n    return this.axisCoordToPoint(this._axesMap.get(dim).dataToCoord(value), dim);\n  };\n\n  Parallel.prototype.eachActiveState = function (data, callback, start, end) {\n    start == null && (start = 0);\n    end == null && (end = data.count());\n    var axesMap = this._axesMap;\n    var dimensions = this.dimensions;\n    var dataDimensions = [];\n    var axisModels = [];\n    zrUtil.each(dimensions, function (axisDim) {\n      dataDimensions.push(data.mapDimension(axisDim));\n      axisModels.push(axesMap.get(axisDim).model);\n    });\n    var hasActiveSet = this.hasAxisBrushed();\n\n    for (var dataIndex = start; dataIndex < end; dataIndex++) {\n      var activeState = void 0;\n\n      if (!hasActiveSet) {\n        activeState = 'normal';\n      } else {\n        activeState = 'active';\n        var values = data.getValues(dataDimensions, dataIndex);\n\n        for (var j = 0, lenj = dimensions.length; j < lenj; j++) {\n          var state = axisModels[j].getActiveState(values[j]);\n\n          if (state === 'inactive') {\n            activeState = 'inactive';\n            break;\n          }\n        }\n      }\n\n      callback(activeState, dataIndex);\n    }\n  };\n\n  Parallel.prototype.hasAxisBrushed = function () {\n    var dimensions = this.dimensions;\n    var axesMap = this._axesMap;\n    var hasActiveSet = false;\n\n    for (var j = 0, lenj = dimensions.length; j < lenj; j++) {\n      if (axesMap.get(dimensions[j]).model.getActiveState() !== 'normal') {\n        hasActiveSet = true;\n      }\n    }\n\n    return hasActiveSet;\n  };\n\n  Parallel.prototype.axisCoordToPoint = function (coord, dim) {\n    var axisLayout = this._axesLayout[dim];\n    return graphic.applyTransform([coord, 0], axisLayout.transform);\n  };\n\n  Parallel.prototype.getAxisLayout = function (dim) {\n    return zrUtil.clone(this._axesLayout[dim]);\n  };\n\n  Parallel.prototype.getSlidedAxisExpandWindow = function (point) {\n    var layoutInfo = this._makeLayoutInfo();\n\n    var pixelDimIndex = layoutInfo.pixelDimIndex;\n    var axisExpandWindow = layoutInfo.axisExpandWindow.slice();\n    var winSize = axisExpandWindow[1] - axisExpandWindow[0];\n    var extent = [0, layoutInfo.axisExpandWidth * (layoutInfo.axisCount - 1)];\n\n    if (!this.containPoint(point)) {\n      return {\n        behavior: 'none',\n        axisExpandWindow: axisExpandWindow\n      };\n    }\n\n    var pointCoord = point[pixelDimIndex] - layoutInfo.layoutBase - layoutInfo.axisExpandWindow0Pos;\n    var delta;\n    var behavior = 'slide';\n    var axisCollapseWidth = layoutInfo.axisCollapseWidth;\n\n    var triggerArea = this._model.get('axisExpandSlideTriggerArea');\n\n    var useJump = triggerArea[0] != null;\n\n    if (axisCollapseWidth) {\n      if (useJump && axisCollapseWidth && pointCoord < winSize * triggerArea[0]) {\n        behavior = 'jump';\n        delta = pointCoord - winSize * triggerArea[2];\n      } else if (useJump && axisCollapseWidth && pointCoord > winSize * (1 - triggerArea[0])) {\n        behavior = 'jump';\n        delta = pointCoord - winSize * (1 - triggerArea[2]);\n      } else {\n        (delta = pointCoord - winSize * triggerArea[1]) >= 0 && (delta = pointCoord - winSize * (1 - triggerArea[1])) <= 0 && (delta = 0);\n      }\n\n      delta *= layoutInfo.axisExpandWidth / axisCollapseWidth;\n      delta ? sliderMove(delta, axisExpandWindow, extent, 'all') : behavior = 'none';\n    } else {\n      var winSize2 = axisExpandWindow[1] - axisExpandWindow[0];\n      var pos = extent[1] * pointCoord / winSize2;\n      axisExpandWindow = [mathMax(0, pos - winSize2 / 2)];\n      axisExpandWindow[1] = mathMin(extent[1], axisExpandWindow[0] + winSize2);\n      axisExpandWindow[0] = axisExpandWindow[1] - winSize2;\n    }\n\n    return {\n      axisExpandWindow: axisExpandWindow,\n      behavior: behavior\n    };\n  };\n\n  return Parallel;\n}();\n\nfunction restrict(len, extent) {\n  return mathMin(mathMax(len, extent[0]), extent[1]);\n}\n\nfunction layoutAxisWithoutExpand(axisIndex, layoutInfo) {\n  var step = layoutInfo.layoutLength / (layoutInfo.axisCount - 1);\n  return {\n    position: step * axisIndex,\n    axisNameAvailableWidth: step,\n    axisLabelShow: true\n  };\n}\n\nfunction layoutAxisWithExpand(axisIndex, layoutInfo) {\n  var layoutLength = layoutInfo.layoutLength;\n  var axisExpandWidth = layoutInfo.axisExpandWidth;\n  var axisCount = layoutInfo.axisCount;\n  var axisCollapseWidth = layoutInfo.axisCollapseWidth;\n  var winInnerIndices = layoutInfo.winInnerIndices;\n  var position;\n  var axisNameAvailableWidth = axisCollapseWidth;\n  var axisLabelShow = false;\n  var nameTruncateMaxWidth;\n\n  if (axisIndex < winInnerIndices[0]) {\n    position = axisIndex * axisCollapseWidth;\n    nameTruncateMaxWidth = axisCollapseWidth;\n  } else if (axisIndex <= winInnerIndices[1]) {\n    position = layoutInfo.axisExpandWindow0Pos + axisIndex * axisExpandWidth - layoutInfo.axisExpandWindow[0];\n    axisNameAvailableWidth = axisExpandWidth;\n    axisLabelShow = true;\n  } else {\n    position = layoutLength - (axisCount - 1 - axisIndex) * axisCollapseWidth;\n    nameTruncateMaxWidth = axisCollapseWidth;\n  }\n\n  return {\n    position: position,\n    axisNameAvailableWidth: axisNameAvailableWidth,\n    axisLabelShow: axisLabelShow,\n    nameTruncateMaxWidth: nameTruncateMaxWidth\n  };\n}\n\nexport default Parallel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Parallel from './Parallel';\nimport { SINGLE_REFERRING } from '../../util/model';\n\nfunction createParallelCoordSys(ecModel, api) {\n  var coordSysList = [];\n  ecModel.eachComponent('parallel', function (parallelModel, idx) {\n    var coordSys = new Parallel(parallelModel, ecModel, api);\n    coordSys.name = 'parallel_' + idx;\n    coordSys.resize(parallelModel, api);\n    parallelModel.coordinateSystem = coordSys;\n    coordSys.model = parallelModel;\n    coordSysList.push(coordSys);\n  });\n  ecModel.eachSeries(function (seriesModel) {\n    if (seriesModel.get('coordinateSystem') === 'parallel') {\n      var parallelModel = seriesModel.getReferringComponents('parallel', SINGLE_REFERRING).models[0];\n      seriesModel.coordinateSystem = parallelModel.coordinateSystem;\n    }\n  });\n  return coordSysList;\n}\n\nvar parallelCoordSysCreator = {\n  create: createParallelCoordSys\n};\nexport default parallelCoordSysCreator;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\nimport makeStyleMapper from '../../model/mixin/makeStyleMapper';\nimport * as numberUtil from '../../util/number';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin';\n\nvar ParallelAxisModel = function (_super) {\n  __extends(ParallelAxisModel, _super);\n\n  function ParallelAxisModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ParallelAxisModel.type;\n    _this.activeIntervals = [];\n    return _this;\n  }\n\n  ParallelAxisModel.prototype.getAreaSelectStyle = function () {\n    return makeStyleMapper([['fill', 'color'], ['lineWidth', 'borderWidth'], ['stroke', 'borderColor'], ['width', 'width'], ['opacity', 'opacity']])(this.getModel('areaSelectStyle'));\n  };\n\n  ParallelAxisModel.prototype.setActiveIntervals = function (intervals) {\n    var activeIntervals = this.activeIntervals = zrUtil.clone(intervals);\n\n    if (activeIntervals) {\n      for (var i = activeIntervals.length - 1; i >= 0; i--) {\n        numberUtil.asc(activeIntervals[i]);\n      }\n    }\n  };\n\n  ParallelAxisModel.prototype.getActiveState = function (value) {\n    var activeIntervals = this.activeIntervals;\n\n    if (!activeIntervals.length) {\n      return 'normal';\n    }\n\n    if (value == null || isNaN(+value)) {\n      return 'inactive';\n    }\n\n    if (activeIntervals.length === 1) {\n      var interval = activeIntervals[0];\n\n      if (interval[0] <= value && value <= interval[1]) {\n        return 'active';\n      }\n    } else {\n      for (var i = 0, len = activeIntervals.length; i < len; i++) {\n        if (activeIntervals[i][0] <= value && value <= activeIntervals[i][1]) {\n          return 'active';\n        }\n      }\n    }\n\n    return 'inactive';\n  };\n\n  return ParallelAxisModel;\n}(ComponentModel);\n\nzrUtil.mixin(ParallelAxisModel, AxisModelCommonMixin);\nexport default ParallelAxisModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { curry, each, map, bind, merge, clone, defaults, assert } from 'zrender/lib/core/util';\nimport Eventful from 'zrender/lib/core/Eventful';\nimport * as graphic from '../../util/graphic';\nimport * as interactionMutex from './interactionMutex';\nimport DataDiffer from '../../data/DataDiffer';\nvar BRUSH_PANEL_GLOBAL = true;\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathPow = Math.pow;\nvar COVER_Z = 10000;\nvar UNSELECT_THRESHOLD = 6;\nvar MIN_RESIZE_LINE_WIDTH = 6;\nvar MUTEX_RESOURCE_KEY = 'globalPan';\nvar DIRECTION_MAP = {\n  w: [0, 0],\n  e: [0, 1],\n  n: [1, 0],\n  s: [1, 1]\n};\nvar CURSOR_MAP = {\n  w: 'ew',\n  e: 'ew',\n  n: 'ns',\n  s: 'ns',\n  ne: 'nesw',\n  sw: 'nesw',\n  nw: 'nwse',\n  se: 'nwse'\n};\nvar DEFAULT_BRUSH_OPT = {\n  brushStyle: {\n    lineWidth: 2,\n    stroke: 'rgba(210,219,238,0.3)',\n    fill: '#D2DBEE'\n  },\n  transformable: true,\n  brushMode: 'single',\n  removeOnClick: false\n};\nvar baseUID = 0;\n\nvar BrushController = function (_super) {\n  __extends(BrushController, _super);\n\n  function BrushController(zr) {\n    var _this = _super.call(this) || this;\n\n    _this._track = [];\n    _this._covers = [];\n    _this._handlers = {};\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(zr);\n    }\n\n    _this._zr = zr;\n    _this.group = new graphic.Group();\n    _this._uid = 'brushController_' + baseUID++;\n    each(pointerHandlers, function (handler, eventName) {\n      this._handlers[eventName] = bind(handler, this);\n    }, _this);\n    return _this;\n  }\n\n  BrushController.prototype.enableBrush = function (brushOption) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(this._mounted);\n    }\n\n    this._brushType && this._doDisableBrush();\n    brushOption.brushType && this._doEnableBrush(brushOption);\n    return this;\n  };\n\n  BrushController.prototype._doEnableBrush = function (brushOption) {\n    var zr = this._zr;\n\n    if (!this._enableGlobalPan) {\n      interactionMutex.take(zr, MUTEX_RESOURCE_KEY, this._uid);\n    }\n\n    each(this._handlers, function (handler, eventName) {\n      zr.on(eventName, handler);\n    });\n    this._brushType = brushOption.brushType;\n    this._brushOption = merge(clone(DEFAULT_BRUSH_OPT), brushOption, true);\n  };\n\n  BrushController.prototype._doDisableBrush = function () {\n    var zr = this._zr;\n    interactionMutex.release(zr, MUTEX_RESOURCE_KEY, this._uid);\n    each(this._handlers, function (handler, eventName) {\n      zr.off(eventName, handler);\n    });\n    this._brushType = this._brushOption = null;\n  };\n\n  BrushController.prototype.setPanels = function (panelOpts) {\n    if (panelOpts && panelOpts.length) {\n      var panels_1 = this._panels = {};\n      each(panelOpts, function (panelOpts) {\n        panels_1[panelOpts.panelId] = clone(panelOpts);\n      });\n    } else {\n      this._panels = null;\n    }\n\n    return this;\n  };\n\n  BrushController.prototype.mount = function (opt) {\n    opt = opt || {};\n\n    if (process.env.NODE_ENV !== 'production') {\n      this._mounted = true;\n    }\n\n    this._enableGlobalPan = opt.enableGlobalPan;\n    var thisGroup = this.group;\n\n    this._zr.add(thisGroup);\n\n    thisGroup.attr({\n      x: opt.x || 0,\n      y: opt.y || 0,\n      rotation: opt.rotation || 0,\n      scaleX: opt.scaleX || 1,\n      scaleY: opt.scaleY || 1\n    });\n    this._transform = thisGroup.getLocalTransform();\n    return this;\n  };\n\n  BrushController.prototype.updateCovers = function (coverConfigList) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(this._mounted);\n    }\n\n    coverConfigList = map(coverConfigList, function (coverConfig) {\n      return merge(clone(DEFAULT_BRUSH_OPT), coverConfig, true);\n    });\n    var tmpIdPrefix = '\\0-brush-index-';\n    var oldCovers = this._covers;\n    var newCovers = this._covers = [];\n    var controller = this;\n    var creatingCover = this._creatingCover;\n    new DataDiffer(oldCovers, coverConfigList, oldGetKey, getKey).add(addOrUpdate).update(addOrUpdate).remove(remove).execute();\n    return this;\n\n    function getKey(brushOption, index) {\n      return (brushOption.id != null ? brushOption.id : tmpIdPrefix + index) + '-' + brushOption.brushType;\n    }\n\n    function oldGetKey(cover, index) {\n      return getKey(cover.__brushOption, index);\n    }\n\n    function addOrUpdate(newIndex, oldIndex) {\n      var newBrushInternal = coverConfigList[newIndex];\n\n      if (oldIndex != null && oldCovers[oldIndex] === creatingCover) {\n        newCovers[newIndex] = oldCovers[oldIndex];\n      } else {\n        var cover = newCovers[newIndex] = oldIndex != null ? (oldCovers[oldIndex].__brushOption = newBrushInternal, oldCovers[oldIndex]) : endCreating(controller, createCover(controller, newBrushInternal));\n        updateCoverAfterCreation(controller, cover);\n      }\n    }\n\n    function remove(oldIndex) {\n      if (oldCovers[oldIndex] !== creatingCover) {\n        controller.group.remove(oldCovers[oldIndex]);\n      }\n    }\n  };\n\n  BrushController.prototype.unmount = function () {\n    if (process.env.NODE_ENV !== 'production') {\n      if (!this._mounted) {\n        return;\n      }\n    }\n\n    this.enableBrush(false);\n    clearCovers(this);\n\n    this._zr.remove(this.group);\n\n    if (process.env.NODE_ENV !== 'production') {\n      this._mounted = false;\n    }\n\n    return this;\n  };\n\n  BrushController.prototype.dispose = function () {\n    this.unmount();\n    this.off();\n  };\n\n  return BrushController;\n}(Eventful);\n\nfunction createCover(controller, brushOption) {\n  var cover = coverRenderers[brushOption.brushType].createCover(controller, brushOption);\n  cover.__brushOption = brushOption;\n  updateZ(cover, brushOption);\n  controller.group.add(cover);\n  return cover;\n}\n\nfunction endCreating(controller, creatingCover) {\n  var coverRenderer = getCoverRenderer(creatingCover);\n\n  if (coverRenderer.endCreating) {\n    coverRenderer.endCreating(controller, creatingCover);\n    updateZ(creatingCover, creatingCover.__brushOption);\n  }\n\n  return creatingCover;\n}\n\nfunction updateCoverShape(controller, cover) {\n  var brushOption = cover.__brushOption;\n  getCoverRenderer(cover).updateCoverShape(controller, cover, brushOption.range, brushOption);\n}\n\nfunction updateZ(cover, brushOption) {\n  var z = brushOption.z;\n  z == null && (z = COVER_Z);\n  cover.traverse(function (el) {\n    el.z = z;\n    el.z2 = z;\n  });\n}\n\nfunction updateCoverAfterCreation(controller, cover) {\n  getCoverRenderer(cover).updateCommon(controller, cover);\n  updateCoverShape(controller, cover);\n}\n\nfunction getCoverRenderer(cover) {\n  return coverRenderers[cover.__brushOption.brushType];\n}\n\nfunction getPanelByPoint(controller, e, localCursorPoint) {\n  var panels = controller._panels;\n\n  if (!panels) {\n    return BRUSH_PANEL_GLOBAL;\n  }\n\n  var panel;\n  var transform = controller._transform;\n  each(panels, function (pn) {\n    pn.isTargetByCursor(e, localCursorPoint, transform) && (panel = pn);\n  });\n  return panel;\n}\n\nfunction getPanelByCover(controller, cover) {\n  var panels = controller._panels;\n\n  if (!panels) {\n    return BRUSH_PANEL_GLOBAL;\n  }\n\n  var panelId = cover.__brushOption.panelId;\n  return panelId != null ? panels[panelId] : BRUSH_PANEL_GLOBAL;\n}\n\nfunction clearCovers(controller) {\n  var covers = controller._covers;\n  var originalLength = covers.length;\n  each(covers, function (cover) {\n    controller.group.remove(cover);\n  }, controller);\n  covers.length = 0;\n  return !!originalLength;\n}\n\nfunction trigger(controller, opt) {\n  var areas = map(controller._covers, function (cover) {\n    var brushOption = cover.__brushOption;\n    var range = clone(brushOption.range);\n    return {\n      brushType: brushOption.brushType,\n      panelId: brushOption.panelId,\n      range: range\n    };\n  });\n  controller.trigger('brush', {\n    areas: areas,\n    isEnd: !!opt.isEnd,\n    removeOnClick: !!opt.removeOnClick\n  });\n}\n\nfunction shouldShowCover(controller) {\n  var track = controller._track;\n\n  if (!track.length) {\n    return false;\n  }\n\n  var p2 = track[track.length - 1];\n  var p1 = track[0];\n  var dx = p2[0] - p1[0];\n  var dy = p2[1] - p1[1];\n  var dist = mathPow(dx * dx + dy * dy, 0.5);\n  return dist > UNSELECT_THRESHOLD;\n}\n\nfunction getTrackEnds(track) {\n  var tail = track.length - 1;\n  tail < 0 && (tail = 0);\n  return [track[0], track[tail]];\n}\n\n;\n\nfunction createBaseRectCover(rectRangeConverter, controller, brushOption, edgeNameSequences) {\n  var cover = new graphic.Group();\n  cover.add(new graphic.Rect({\n    name: 'main',\n    style: makeStyle(brushOption),\n    silent: true,\n    draggable: true,\n    cursor: 'move',\n    drift: curry(driftRect, rectRangeConverter, controller, cover, ['n', 's', 'w', 'e']),\n    ondragend: curry(trigger, controller, {\n      isEnd: true\n    })\n  }));\n  each(edgeNameSequences, function (nameSequence) {\n    cover.add(new graphic.Rect({\n      name: nameSequence.join(''),\n      style: {\n        opacity: 0\n      },\n      draggable: true,\n      silent: true,\n      invisible: true,\n      drift: curry(driftRect, rectRangeConverter, controller, cover, nameSequence),\n      ondragend: curry(trigger, controller, {\n        isEnd: true\n      })\n    }));\n  });\n  return cover;\n}\n\nfunction updateBaseRect(controller, cover, localRange, brushOption) {\n  var lineWidth = brushOption.brushStyle.lineWidth || 0;\n  var handleSize = mathMax(lineWidth, MIN_RESIZE_LINE_WIDTH);\n  var x = localRange[0][0];\n  var y = localRange[1][0];\n  var xa = x - lineWidth / 2;\n  var ya = y - lineWidth / 2;\n  var x2 = localRange[0][1];\n  var y2 = localRange[1][1];\n  var x2a = x2 - handleSize + lineWidth / 2;\n  var y2a = y2 - handleSize + lineWidth / 2;\n  var width = x2 - x;\n  var height = y2 - y;\n  var widtha = width + lineWidth;\n  var heighta = height + lineWidth;\n  updateRectShape(controller, cover, 'main', x, y, width, height);\n\n  if (brushOption.transformable) {\n    updateRectShape(controller, cover, 'w', xa, ya, handleSize, heighta);\n    updateRectShape(controller, cover, 'e', x2a, ya, handleSize, heighta);\n    updateRectShape(controller, cover, 'n', xa, ya, widtha, handleSize);\n    updateRectShape(controller, cover, 's', xa, y2a, widtha, handleSize);\n    updateRectShape(controller, cover, 'nw', xa, ya, handleSize, handleSize);\n    updateRectShape(controller, cover, 'ne', x2a, ya, handleSize, handleSize);\n    updateRectShape(controller, cover, 'sw', xa, y2a, handleSize, handleSize);\n    updateRectShape(controller, cover, 'se', x2a, y2a, handleSize, handleSize);\n  }\n}\n\nfunction updateCommon(controller, cover) {\n  var brushOption = cover.__brushOption;\n  var transformable = brushOption.transformable;\n  var mainEl = cover.childAt(0);\n  mainEl.useStyle(makeStyle(brushOption));\n  mainEl.attr({\n    silent: !transformable,\n    cursor: transformable ? 'move' : 'default'\n  });\n  each([['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w']], function (nameSequence) {\n    var el = cover.childOfName(nameSequence.join(''));\n    var globalDir = nameSequence.length === 1 ? getGlobalDirection1(controller, nameSequence[0]) : getGlobalDirection2(controller, nameSequence);\n    el && el.attr({\n      silent: !transformable,\n      invisible: !transformable,\n      cursor: transformable ? CURSOR_MAP[globalDir] + '-resize' : null\n    });\n  });\n}\n\nfunction updateRectShape(controller, cover, name, x, y, w, h) {\n  var el = cover.childOfName(name);\n  el && el.setShape(pointsToRect(clipByPanel(controller, cover, [[x, y], [x + w, y + h]])));\n}\n\nfunction makeStyle(brushOption) {\n  return defaults({\n    strokeNoScale: true\n  }, brushOption.brushStyle);\n}\n\nfunction formatRectRange(x, y, x2, y2) {\n  var min = [mathMin(x, x2), mathMin(y, y2)];\n  var max = [mathMax(x, x2), mathMax(y, y2)];\n  return [[min[0], max[0]], [min[1], max[1]]];\n}\n\nfunction getTransform(controller) {\n  return graphic.getTransform(controller.group);\n}\n\nfunction getGlobalDirection1(controller, localDirName) {\n  var map = {\n    w: 'left',\n    e: 'right',\n    n: 'top',\n    s: 'bottom'\n  };\n  var inverseMap = {\n    left: 'w',\n    right: 'e',\n    top: 'n',\n    bottom: 's'\n  };\n  var dir = graphic.transformDirection(map[localDirName], getTransform(controller));\n  return inverseMap[dir];\n}\n\nfunction getGlobalDirection2(controller, localDirNameSeq) {\n  var globalDir = [getGlobalDirection1(controller, localDirNameSeq[0]), getGlobalDirection1(controller, localDirNameSeq[1])];\n  (globalDir[0] === 'e' || globalDir[0] === 'w') && globalDir.reverse();\n  return globalDir.join('');\n}\n\nfunction driftRect(rectRangeConverter, controller, cover, dirNameSequence, dx, dy) {\n  var brushOption = cover.__brushOption;\n  var rectRange = rectRangeConverter.toRectRange(brushOption.range);\n  var localDelta = toLocalDelta(controller, dx, dy);\n  each(dirNameSequence, function (dirName) {\n    var ind = DIRECTION_MAP[dirName];\n    rectRange[ind[0]][ind[1]] += localDelta[ind[0]];\n  });\n  brushOption.range = rectRangeConverter.fromRectRange(formatRectRange(rectRange[0][0], rectRange[1][0], rectRange[0][1], rectRange[1][1]));\n  updateCoverAfterCreation(controller, cover);\n  trigger(controller, {\n    isEnd: false\n  });\n}\n\nfunction driftPolygon(controller, cover, dx, dy) {\n  var range = cover.__brushOption.range;\n  var localDelta = toLocalDelta(controller, dx, dy);\n  each(range, function (point) {\n    point[0] += localDelta[0];\n    point[1] += localDelta[1];\n  });\n  updateCoverAfterCreation(controller, cover);\n  trigger(controller, {\n    isEnd: false\n  });\n}\n\nfunction toLocalDelta(controller, dx, dy) {\n  var thisGroup = controller.group;\n  var localD = thisGroup.transformCoordToLocal(dx, dy);\n  var localZero = thisGroup.transformCoordToLocal(0, 0);\n  return [localD[0] - localZero[0], localD[1] - localZero[1]];\n}\n\nfunction clipByPanel(controller, cover, data) {\n  var panel = getPanelByCover(controller, cover);\n  return panel && panel !== BRUSH_PANEL_GLOBAL ? panel.clipPath(data, controller._transform) : clone(data);\n}\n\nfunction pointsToRect(points) {\n  var xmin = mathMin(points[0][0], points[1][0]);\n  var ymin = mathMin(points[0][1], points[1][1]);\n  var xmax = mathMax(points[0][0], points[1][0]);\n  var ymax = mathMax(points[0][1], points[1][1]);\n  return {\n    x: xmin,\n    y: ymin,\n    width: xmax - xmin,\n    height: ymax - ymin\n  };\n}\n\nfunction resetCursor(controller, e, localCursorPoint) {\n  if (!controller._brushType || isOutsideZrArea(controller, e.offsetX, e.offsetY)) {\n    return;\n  }\n\n  var zr = controller._zr;\n  var covers = controller._covers;\n  var currPanel = getPanelByPoint(controller, e, localCursorPoint);\n\n  if (!controller._dragging) {\n    for (var i = 0; i < covers.length; i++) {\n      var brushOption = covers[i].__brushOption;\n\n      if (currPanel && (currPanel === BRUSH_PANEL_GLOBAL || brushOption.panelId === currPanel.panelId) && coverRenderers[brushOption.brushType].contain(covers[i], localCursorPoint[0], localCursorPoint[1])) {\n        return;\n      }\n    }\n  }\n\n  currPanel && zr.setCursorStyle('crosshair');\n}\n\nfunction preventDefault(e) {\n  var rawE = e.event;\n  rawE.preventDefault && rawE.preventDefault();\n}\n\nfunction mainShapeContain(cover, x, y) {\n  return cover.childOfName('main').contain(x, y);\n}\n\nfunction updateCoverByMouse(controller, e, localCursorPoint, isEnd) {\n  var creatingCover = controller._creatingCover;\n  var panel = controller._creatingPanel;\n  var thisBrushOption = controller._brushOption;\n  var eventParams;\n\n  controller._track.push(localCursorPoint.slice());\n\n  if (shouldShowCover(controller) || creatingCover) {\n    if (panel && !creatingCover) {\n      thisBrushOption.brushMode === 'single' && clearCovers(controller);\n      var brushOption = clone(thisBrushOption);\n      brushOption.brushType = determineBrushType(brushOption.brushType, panel);\n      brushOption.panelId = panel === BRUSH_PANEL_GLOBAL ? null : panel.panelId;\n      creatingCover = controller._creatingCover = createCover(controller, brushOption);\n\n      controller._covers.push(creatingCover);\n    }\n\n    if (creatingCover) {\n      var coverRenderer = coverRenderers[determineBrushType(controller._brushType, panel)];\n      var coverBrushOption = creatingCover.__brushOption;\n      coverBrushOption.range = coverRenderer.getCreatingRange(clipByPanel(controller, creatingCover, controller._track));\n\n      if (isEnd) {\n        endCreating(controller, creatingCover);\n        coverRenderer.updateCommon(controller, creatingCover);\n      }\n\n      updateCoverShape(controller, creatingCover);\n      eventParams = {\n        isEnd: isEnd\n      };\n    }\n  } else if (isEnd && thisBrushOption.brushMode === 'single' && thisBrushOption.removeOnClick) {\n    if (getPanelByPoint(controller, e, localCursorPoint) && clearCovers(controller)) {\n      eventParams = {\n        isEnd: isEnd,\n        removeOnClick: true\n      };\n    }\n  }\n\n  return eventParams;\n}\n\nfunction determineBrushType(brushType, panel) {\n  if (brushType === 'auto') {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(panel && panel.defaultBrushType, 'MUST have defaultBrushType when brushType is \"atuo\"');\n    }\n\n    return panel.defaultBrushType;\n  }\n\n  return brushType;\n}\n\nvar pointerHandlers = {\n  mousedown: function (e) {\n    if (this._dragging) {\n      handleDragEnd(this, e);\n    } else if (!e.target || !e.target.draggable) {\n      preventDefault(e);\n      var localCursorPoint = this.group.transformCoordToLocal(e.offsetX, e.offsetY);\n      this._creatingCover = null;\n      var panel = this._creatingPanel = getPanelByPoint(this, e, localCursorPoint);\n\n      if (panel) {\n        this._dragging = true;\n        this._track = [localCursorPoint.slice()];\n      }\n    }\n  },\n  mousemove: function (e) {\n    var x = e.offsetX;\n    var y = e.offsetY;\n    var localCursorPoint = this.group.transformCoordToLocal(x, y);\n    resetCursor(this, e, localCursorPoint);\n\n    if (this._dragging) {\n      preventDefault(e);\n      var eventParams = updateCoverByMouse(this, e, localCursorPoint, false);\n      eventParams && trigger(this, eventParams);\n    }\n  },\n  mouseup: function (e) {\n    handleDragEnd(this, e);\n  }\n};\n\nfunction handleDragEnd(controller, e) {\n  if (controller._dragging) {\n    preventDefault(e);\n    var x = e.offsetX;\n    var y = e.offsetY;\n    var localCursorPoint = controller.group.transformCoordToLocal(x, y);\n    var eventParams = updateCoverByMouse(controller, e, localCursorPoint, true);\n    controller._dragging = false;\n    controller._track = [];\n    controller._creatingCover = null;\n    eventParams && trigger(controller, eventParams);\n  }\n}\n\nfunction isOutsideZrArea(controller, x, y) {\n  var zr = controller._zr;\n  return x < 0 || x > zr.getWidth() || y < 0 || y > zr.getHeight();\n}\n\nvar coverRenderers = {\n  lineX: getLineRenderer(0),\n  lineY: getLineRenderer(1),\n  rect: {\n    createCover: function (controller, brushOption) {\n      function returnInput(range) {\n        return range;\n      }\n\n      return createBaseRectCover({\n        toRectRange: returnInput,\n        fromRectRange: returnInput\n      }, controller, brushOption, [['w'], ['e'], ['n'], ['s'], ['s', 'e'], ['s', 'w'], ['n', 'e'], ['n', 'w']]);\n    },\n    getCreatingRange: function (localTrack) {\n      var ends = getTrackEnds(localTrack);\n      return formatRectRange(ends[1][0], ends[1][1], ends[0][0], ends[0][1]);\n    },\n    updateCoverShape: function (controller, cover, localRange, brushOption) {\n      updateBaseRect(controller, cover, localRange, brushOption);\n    },\n    updateCommon: updateCommon,\n    contain: mainShapeContain\n  },\n  polygon: {\n    createCover: function (controller, brushOption) {\n      var cover = new graphic.Group();\n      cover.add(new graphic.Polyline({\n        name: 'main',\n        style: makeStyle(brushOption),\n        silent: true\n      }));\n      return cover;\n    },\n    getCreatingRange: function (localTrack) {\n      return localTrack;\n    },\n    endCreating: function (controller, cover) {\n      cover.remove(cover.childAt(0));\n      cover.add(new graphic.Polygon({\n        name: 'main',\n        draggable: true,\n        drift: curry(driftPolygon, controller, cover),\n        ondragend: curry(trigger, controller, {\n          isEnd: true\n        })\n      }));\n    },\n    updateCoverShape: function (controller, cover, localRange, brushOption) {\n      cover.childAt(0).setShape({\n        points: clipByPanel(controller, cover, localRange)\n      });\n    },\n    updateCommon: updateCommon,\n    contain: mainShapeContain\n  }\n};\n\nfunction getLineRenderer(xyIndex) {\n  return {\n    createCover: function (controller, brushOption) {\n      return createBaseRectCover({\n        toRectRange: function (range) {\n          var rectRange = [range, [0, 100]];\n          xyIndex && rectRange.reverse();\n          return rectRange;\n        },\n        fromRectRange: function (rectRange) {\n          return rectRange[xyIndex];\n        }\n      }, controller, brushOption, [[['w'], ['e']], [['n'], ['s']]][xyIndex]);\n    },\n    getCreatingRange: function (localTrack) {\n      var ends = getTrackEnds(localTrack);\n      var min = mathMin(ends[0][xyIndex], ends[1][xyIndex]);\n      var max = mathMax(ends[0][xyIndex], ends[1][xyIndex]);\n      return [min, max];\n    },\n    updateCoverShape: function (controller, cover, localRange, brushOption) {\n      var otherExtent;\n      var panel = getPanelByCover(controller, cover);\n\n      if (panel !== BRUSH_PANEL_GLOBAL && panel.getLinearBrushOtherExtent) {\n        otherExtent = panel.getLinearBrushOtherExtent(xyIndex);\n      } else {\n        var zr = controller._zr;\n        otherExtent = [0, [zr.getWidth(), zr.getHeight()][1 - xyIndex]];\n      }\n\n      var rectRange = [localRange, otherExtent];\n      xyIndex && rectRange.reverse();\n      updateBaseRect(controller, cover, rectRange, brushOption);\n    },\n    updateCommon: updateCommon,\n    contain: mainShapeContain\n  };\n}\n\nexport default BrushController;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { onIrrelevantElement } from './cursorHelper';\nimport * as graphicUtil from '../../util/graphic';\nexport function makeRectPanelClipPath(rect) {\n  rect = normalizeRect(rect);\n  return function (localPoints) {\n    return graphicUtil.clipPointsByRect(localPoints, rect);\n  };\n}\nexport function makeLinearBrushOtherExtent(rect, specifiedXYIndex) {\n  rect = normalizeRect(rect);\n  return function (xyIndex) {\n    var idx = specifiedXYIndex != null ? specifiedXYIndex : xyIndex;\n    var brushWidth = idx ? rect.width : rect.height;\n    var base = idx ? rect.x : rect.y;\n    return [base, base + (brushWidth || 0)];\n  };\n}\nexport function makeRectIsTargetByCursor(rect, api, targetModel) {\n  var boundingRect = normalizeRect(rect);\n  return function (e, localCursorPoint) {\n    return boundingRect.contain(localCursorPoint[0], localCursorPoint[1]) && !onIrrelevantElement(e, api, targetModel);\n  };\n}\n\nfunction normalizeRect(rect) {\n  return BoundingRect.create(rect);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport AxisBuilder from './AxisBuilder';\nimport BrushController from '../helper/BrushController';\nimport * as brushHelper from '../helper/brushHelper';\nimport * as graphic from '../../util/graphic';\nimport ComponentView from '../../view/Component';\nvar elementList = ['axisLine', 'axisTickLabel', 'axisName'];\n\nvar ParallelAxisView = function (_super) {\n  __extends(ParallelAxisView, _super);\n\n  function ParallelAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ParallelAxisView.type;\n    return _this;\n  }\n\n  ParallelAxisView.prototype.init = function (ecModel, api) {\n    _super.prototype.init.apply(this, arguments);\n\n    (this._brushController = new BrushController(api.getZr())).on('brush', zrUtil.bind(this._onBrush, this));\n  };\n\n  ParallelAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n    if (fromAxisAreaSelect(axisModel, ecModel, payload)) {\n      return;\n    }\n\n    this.axisModel = axisModel;\n    this.api = api;\n    this.group.removeAll();\n    var oldAxisGroup = this._axisGroup;\n    this._axisGroup = new graphic.Group();\n    this.group.add(this._axisGroup);\n\n    if (!axisModel.get('show')) {\n      return;\n    }\n\n    var coordSysModel = getCoordSysModel(axisModel, ecModel);\n    var coordSys = coordSysModel.coordinateSystem;\n    var areaSelectStyle = axisModel.getAreaSelectStyle();\n    var areaWidth = areaSelectStyle.width;\n    var dim = axisModel.axis.dim;\n    var axisLayout = coordSys.getAxisLayout(dim);\n    var builderOpt = zrUtil.extend({\n      strokeContainThreshold: areaWidth\n    }, axisLayout);\n    var axisBuilder = new AxisBuilder(axisModel, builderOpt);\n    zrUtil.each(elementList, axisBuilder.add, axisBuilder);\n\n    this._axisGroup.add(axisBuilder.getGroup());\n\n    this._refreshBrushController(builderOpt, areaSelectStyle, axisModel, coordSysModel, areaWidth, api);\n\n    graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel);\n  };\n\n  ParallelAxisView.prototype._refreshBrushController = function (builderOpt, areaSelectStyle, axisModel, coordSysModel, areaWidth, api) {\n    var extent = axisModel.axis.getExtent();\n    var extentLen = extent[1] - extent[0];\n    var extra = Math.min(30, Math.abs(extentLen) * 0.1);\n    var rect = graphic.BoundingRect.create({\n      x: extent[0],\n      y: -areaWidth / 2,\n      width: extentLen,\n      height: areaWidth\n    });\n    rect.x -= extra;\n    rect.width += 2 * extra;\n\n    this._brushController.mount({\n      enableGlobalPan: true,\n      rotation: builderOpt.rotation,\n      x: builderOpt.position[0],\n      y: builderOpt.position[1]\n    }).setPanels([{\n      panelId: 'pl',\n      clipPath: brushHelper.makeRectPanelClipPath(rect),\n      isTargetByCursor: brushHelper.makeRectIsTargetByCursor(rect, api, coordSysModel),\n      getLinearBrushOtherExtent: brushHelper.makeLinearBrushOtherExtent(rect, 0)\n    }]).enableBrush({\n      brushType: 'lineX',\n      brushStyle: areaSelectStyle,\n      removeOnClick: true\n    }).updateCovers(getCoverInfoList(axisModel));\n  };\n\n  ParallelAxisView.prototype._onBrush = function (eventParam) {\n    var coverInfoList = eventParam.areas;\n    var axisModel = this.axisModel;\n    var axis = axisModel.axis;\n    var intervals = zrUtil.map(coverInfoList, function (coverInfo) {\n      return [axis.coordToData(coverInfo.range[0], true), axis.coordToData(coverInfo.range[1], true)];\n    });\n\n    if (!axisModel.option.realtime === eventParam.isEnd || eventParam.removeOnClick) {\n      this.api.dispatchAction({\n        type: 'axisAreaSelect',\n        parallelAxisId: axisModel.id,\n        intervals: intervals\n      });\n    }\n  };\n\n  ParallelAxisView.prototype.dispose = function () {\n    this._brushController.dispose();\n  };\n\n  ParallelAxisView.type = 'parallelAxis';\n  return ParallelAxisView;\n}(ComponentView);\n\nfunction fromAxisAreaSelect(axisModel, ecModel, payload) {\n  return payload && payload.type === 'axisAreaSelect' && ecModel.findComponents({\n    mainType: 'parallelAxis',\n    query: payload\n  })[0] === axisModel;\n}\n\nfunction getCoverInfoList(axisModel) {\n  var axis = axisModel.axis;\n  return zrUtil.map(axisModel.activeIntervals, function (interval) {\n    return {\n      brushType: 'lineX',\n      panelId: 'pl',\n      range: [axis.dataToCoord(interval[0], true), axis.dataToCoord(interval[1], true)]\n    };\n  });\n}\n\nfunction getCoordSysModel(axisModel, ecModel) {\n  return ecModel.getComponent('parallel', axisModel.get('parallelIndex'));\n}\n\nexport default ParallelAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar actionInfo = {\n  type: 'axisAreaSelect',\n  event: 'axisAreaSelected'\n};\nexport function installParallelActions(registers) {\n  registers.registerAction(actionInfo, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'parallelAxis',\n      query: payload\n    }, function (parallelAxisModel) {\n      parallelAxisModel.axis.model.setActiveIntervals(payload.intervals);\n    });\n  });\n  registers.registerAction('parallelAxisExpand', function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'parallel',\n      query: payload\n    }, function (parallelModel) {\n      parallelModel.setAxisExpand(payload);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport parallelPreprocessor from '../../coord/parallel/parallelPreprocessor';\nimport ParallelView from './ParallelView';\nimport ParallelModel from '../../coord/parallel/ParallelModel';\nimport parallelCoordSysCreator from '../../coord/parallel/parallelCreator';\nimport axisModelCreator from '../../coord/axisModelCreator';\nimport ParallelAxisModel from '../../coord/parallel/AxisModel';\nimport ParallelAxisView from '../axis/ParallelAxisView';\nimport { installParallelActions } from '../axis/parallelAxisAction';\nvar defaultAxisOption = {\n  type: 'value',\n  areaSelectStyle: {\n    width: 20,\n    borderWidth: 1,\n    borderColor: 'rgba(160,197,232)',\n    color: 'rgba(160,197,232)',\n    opacity: 0.3\n  },\n  realtime: true,\n  z: 10\n};\nexport function install(registers) {\n  registers.registerComponentView(ParallelView);\n  registers.registerComponentModel(ParallelModel);\n  registers.registerCoordinateSystem('parallel', parallelCoordSysCreator);\n  registers.registerPreprocessor(parallelPreprocessor);\n  registers.registerComponentModel(ParallelAxisModel);\n  registers.registerComponentView(ParallelAxisView);\n  axisModelCreator(registers, 'parallel', ParallelAxisModel, defaultAxisOption);\n  installParallelActions(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport ParallelView from './ParallelView';\nimport ParallelSeriesModel from './ParallelSeries';\nimport parallelVisual from './parallelVisual';\nimport { install as installParallelComponent } from '../../component/parallel/install';\nexport function install(registers) {\n  use(installParallelComponent);\n  registers.registerChartView(ParallelView);\n  registers.registerSeriesModel(ParallelSeriesModel);\n  registers.registerVisual(registers.PRIORITY.VISUAL.BRUSH, parallelVisual);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { enterEmphasis, leaveEmphasis, enableHoverEmphasis, setStatesStylesFromModel } from '../../util/states';\nimport ChartView from '../../view/Chart';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { getECData } from '../../util/innerStore';\n\nvar SankeyPathShape = function () {\n  function SankeyPathShape() {\n    this.x1 = 0;\n    this.y1 = 0;\n    this.x2 = 0;\n    this.y2 = 0;\n    this.cpx1 = 0;\n    this.cpy1 = 0;\n    this.cpx2 = 0;\n    this.cpy2 = 0;\n    this.extent = 0;\n  }\n\n  return SankeyPathShape;\n}();\n\nvar SankeyPath = function (_super) {\n  __extends(SankeyPath, _super);\n\n  function SankeyPath(opts) {\n    return _super.call(this, opts) || this;\n  }\n\n  SankeyPath.prototype.getDefaultShape = function () {\n    return new SankeyPathShape();\n  };\n\n  SankeyPath.prototype.buildPath = function (ctx, shape) {\n    var extent = shape.extent;\n    ctx.moveTo(shape.x1, shape.y1);\n    ctx.bezierCurveTo(shape.cpx1, shape.cpy1, shape.cpx2, shape.cpy2, shape.x2, shape.y2);\n\n    if (shape.orient === 'vertical') {\n      ctx.lineTo(shape.x2 + extent, shape.y2);\n      ctx.bezierCurveTo(shape.cpx2 + extent, shape.cpy2, shape.cpx1 + extent, shape.cpy1, shape.x1 + extent, shape.y1);\n    } else {\n      ctx.lineTo(shape.x2, shape.y2 + extent);\n      ctx.bezierCurveTo(shape.cpx2, shape.cpy2 + extent, shape.cpx1, shape.cpy1 + extent, shape.x1, shape.y1 + extent);\n    }\n\n    ctx.closePath();\n  };\n\n  SankeyPath.prototype.highlight = function () {\n    enterEmphasis(this);\n  };\n\n  SankeyPath.prototype.downplay = function () {\n    leaveEmphasis(this);\n  };\n\n  return SankeyPath;\n}(graphic.Path);\n\nvar SankeyView = function (_super) {\n  __extends(SankeyView, _super);\n\n  function SankeyView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SankeyView.type;\n    _this._focusAdjacencyDisabled = false;\n    return _this;\n  }\n\n  SankeyView.prototype.render = function (seriesModel, ecModel, api) {\n    var sankeyView = this;\n    var graph = seriesModel.getGraph();\n    var group = this.group;\n    var layoutInfo = seriesModel.layoutInfo;\n    var width = layoutInfo.width;\n    var height = layoutInfo.height;\n    var nodeData = seriesModel.getData();\n    var edgeData = seriesModel.getData('edge');\n    var orient = seriesModel.get('orient');\n    this._model = seriesModel;\n    group.removeAll();\n    group.x = layoutInfo.x;\n    group.y = layoutInfo.y;\n    graph.eachEdge(function (edge) {\n      var curve = new SankeyPath();\n      var ecData = getECData(curve);\n      ecData.dataIndex = edge.dataIndex;\n      ecData.seriesIndex = seriesModel.seriesIndex;\n      ecData.dataType = 'edge';\n      var edgeModel = edge.getModel();\n      var lineStyleModel = edgeModel.getModel('lineStyle');\n      var curvature = lineStyleModel.get('curveness');\n      var n1Layout = edge.node1.getLayout();\n      var node1Model = edge.node1.getModel();\n      var dragX1 = node1Model.get('localX');\n      var dragY1 = node1Model.get('localY');\n      var n2Layout = edge.node2.getLayout();\n      var node2Model = edge.node2.getModel();\n      var dragX2 = node2Model.get('localX');\n      var dragY2 = node2Model.get('localY');\n      var edgeLayout = edge.getLayout();\n      var x1;\n      var y1;\n      var x2;\n      var y2;\n      var cpx1;\n      var cpy1;\n      var cpx2;\n      var cpy2;\n      curve.shape.extent = Math.max(1, edgeLayout.dy);\n      curve.shape.orient = orient;\n\n      if (orient === 'vertical') {\n        x1 = (dragX1 != null ? dragX1 * width : n1Layout.x) + edgeLayout.sy;\n        y1 = (dragY1 != null ? dragY1 * height : n1Layout.y) + n1Layout.dy;\n        x2 = (dragX2 != null ? dragX2 * width : n2Layout.x) + edgeLayout.ty;\n        y2 = dragY2 != null ? dragY2 * height : n2Layout.y;\n        cpx1 = x1;\n        cpy1 = y1 * (1 - curvature) + y2 * curvature;\n        cpx2 = x2;\n        cpy2 = y1 * curvature + y2 * (1 - curvature);\n      } else {\n        x1 = (dragX1 != null ? dragX1 * width : n1Layout.x) + n1Layout.dx;\n        y1 = (dragY1 != null ? dragY1 * height : n1Layout.y) + edgeLayout.sy;\n        x2 = dragX2 != null ? dragX2 * width : n2Layout.x;\n        y2 = (dragY2 != null ? dragY2 * height : n2Layout.y) + edgeLayout.ty;\n        cpx1 = x1 * (1 - curvature) + x2 * curvature;\n        cpy1 = y1;\n        cpx2 = x1 * curvature + x2 * (1 - curvature);\n        cpy2 = y2;\n      }\n\n      curve.setShape({\n        x1: x1,\n        y1: y1,\n        x2: x2,\n        y2: y2,\n        cpx1: cpx1,\n        cpy1: cpy1,\n        cpx2: cpx2,\n        cpy2: cpy2\n      });\n      curve.useStyle(lineStyleModel.getItemStyle());\n\n      switch (curve.style.fill) {\n        case 'source':\n          curve.style.fill = edge.node1.getVisual('color');\n          curve.style.decal = edge.node1.getVisual('style').decal;\n          break;\n\n        case 'target':\n          curve.style.fill = edge.node2.getVisual('color');\n          curve.style.decal = edge.node2.getVisual('style').decal;\n          break;\n\n        case 'gradient':\n          var sourceColor = edge.node1.getVisual('color');\n          var targetColor = edge.node2.getVisual('color');\n\n          if (typeof sourceColor === 'string' && typeof targetColor === 'string') {\n            curve.style.fill = new graphic.LinearGradient(0, 0, 1, 0, [{\n              color: sourceColor,\n              offset: 0\n            }, {\n              color: targetColor,\n              offset: 1\n            }]);\n          }\n\n      }\n\n      var emphasisModel = edgeModel.getModel('emphasis');\n      setStatesStylesFromModel(curve, edgeModel, 'lineStyle', function (model) {\n        return model.getItemStyle();\n      });\n      group.add(curve);\n      edgeData.setItemGraphicEl(edge.dataIndex, curve);\n      var focus = emphasisModel.get('focus');\n      enableHoverEmphasis(curve, focus === 'adjacency' ? edge.getAdjacentDataIndices() : focus, emphasisModel.get('blurScope'));\n      getECData(curve).dataType = 'edge';\n    });\n    graph.eachNode(function (node) {\n      var layout = node.getLayout();\n      var itemModel = node.getModel();\n      var dragX = itemModel.get('localX');\n      var dragY = itemModel.get('localY');\n      var emphasisModel = itemModel.getModel('emphasis');\n      var rect = new graphic.Rect({\n        shape: {\n          x: dragX != null ? dragX * width : layout.x,\n          y: dragY != null ? dragY * height : layout.y,\n          width: layout.dx,\n          height: layout.dy\n        },\n        style: itemModel.getModel('itemStyle').getItemStyle()\n      });\n      setLabelStyle(rect, getLabelStatesModels(itemModel), {\n        labelFetcher: seriesModel,\n        labelDataIndex: node.dataIndex,\n        defaultText: node.id\n      });\n      rect.disableLabelAnimation = true;\n      rect.setStyle('fill', node.getVisual('color'));\n      rect.setStyle('decal', node.getVisual('style').decal);\n      setStatesStylesFromModel(rect, itemModel);\n      group.add(rect);\n      nodeData.setItemGraphicEl(node.dataIndex, rect);\n      getECData(rect).dataType = 'node';\n      var focus = emphasisModel.get('focus');\n      enableHoverEmphasis(rect, focus === 'adjacency' ? node.getAdjacentDataIndices() : focus, emphasisModel.get('blurScope'));\n    });\n    nodeData.eachItemGraphicEl(function (el, dataIndex) {\n      var itemModel = nodeData.getItemModel(dataIndex);\n\n      if (itemModel.get('draggable')) {\n        el.drift = function (dx, dy) {\n          sankeyView._focusAdjacencyDisabled = true;\n          this.shape.x += dx;\n          this.shape.y += dy;\n          this.dirty();\n          api.dispatchAction({\n            type: 'dragNode',\n            seriesId: seriesModel.id,\n            dataIndex: nodeData.getRawIndex(dataIndex),\n            localX: this.shape.x / width,\n            localY: this.shape.y / height\n          });\n        };\n\n        el.ondragend = function () {\n          sankeyView._focusAdjacencyDisabled = false;\n        };\n\n        el.draggable = true;\n        el.cursor = 'move';\n      }\n    });\n\n    if (!this._data && seriesModel.isAnimationEnabled()) {\n      group.setClipPath(createGridClipShape(group.getBoundingRect(), seriesModel, function () {\n        group.removeClipPath();\n      }));\n    }\n\n    this._data = seriesModel.getData();\n  };\n\n  SankeyView.prototype.dispose = function () {};\n\n  SankeyView.type = 'sankey';\n  return SankeyView;\n}(ChartView);\n\nfunction createGridClipShape(rect, seriesModel, cb) {\n  var rectEl = new graphic.Rect({\n    shape: {\n      x: rect.x - 10,\n      y: rect.y - 10,\n      width: 0,\n      height: rect.height + 20\n    }\n  });\n  graphic.initProps(rectEl, {\n    shape: {\n      width: rect.width + 20\n    }\n  }, seriesModel, cb);\n  return rectEl;\n}\n\nexport default SankeyView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport createGraphFromNodeEdge from '../helper/createGraphFromNodeEdge';\nimport Model from '../../model/Model';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup';\n\nvar SankeySeriesModel = function (_super) {\n  __extends(SankeySeriesModel, _super);\n\n  function SankeySeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SankeySeriesModel.type;\n    return _this;\n  }\n\n  SankeySeriesModel.prototype.getInitialData = function (option, ecModel) {\n    var links = option.edges || option.links;\n    var nodes = option.data || option.nodes;\n    var levels = option.levels;\n    this.levelModels = [];\n    var levelModels = this.levelModels;\n\n    for (var i = 0; i < levels.length; i++) {\n      if (levels[i].depth != null && levels[i].depth >= 0) {\n        levelModels[levels[i].depth] = new Model(levels[i], this, ecModel);\n      } else {\n        if (process.env.NODE_ENV !== 'production') {\n          throw new Error('levels[i].depth is mandatory and should be natural number');\n        }\n      }\n    }\n\n    if (nodes && links) {\n      var graph = createGraphFromNodeEdge(nodes, links, this, true, beforeLink);\n      return graph.data;\n    }\n\n    function beforeLink(nodeData, edgeData) {\n      nodeData.wrapMethod('getItemModel', function (model, idx) {\n        var seriesModel = model.parentModel;\n        var layout = seriesModel.getData().getItemLayout(idx);\n\n        if (layout) {\n          var nodeDepth = layout.depth;\n          var levelModel = seriesModel.levelModels[nodeDepth];\n\n          if (levelModel) {\n            model.parentModel = levelModel;\n          }\n        }\n\n        return model;\n      });\n      edgeData.wrapMethod('getItemModel', function (model, idx) {\n        var seriesModel = model.parentModel;\n        var edge = seriesModel.getGraph().getEdgeByIndex(idx);\n        var layout = edge.node1.getLayout();\n\n        if (layout) {\n          var depth = layout.depth;\n          var levelModel = seriesModel.levelModels[depth];\n\n          if (levelModel) {\n            model.parentModel = levelModel;\n          }\n        }\n\n        return model;\n      });\n    }\n  };\n\n  SankeySeriesModel.prototype.setNodePosition = function (dataIndex, localPosition) {\n    var dataItem = this.option.data[dataIndex];\n    dataItem.localX = localPosition[0];\n    dataItem.localY = localPosition[1];\n  };\n\n  SankeySeriesModel.prototype.getGraph = function () {\n    return this.getData().graph;\n  };\n\n  SankeySeriesModel.prototype.getEdgeData = function () {\n    return this.getGraph().edgeData;\n  };\n\n  SankeySeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    function noValue(val) {\n      return isNaN(val) || val == null;\n    }\n\n    if (dataType === 'edge') {\n      var params = this.getDataParams(dataIndex, dataType);\n      var rawDataOpt = params.data;\n      var edgeValue = params.value;\n      var edgeName = rawDataOpt.source + ' -- ' + rawDataOpt.target;\n      return createTooltipMarkup('nameValue', {\n        name: edgeName,\n        value: edgeValue,\n        noValue: noValue(edgeValue)\n      });\n    } else {\n      var node = this.getGraph().getNodeByIndex(dataIndex);\n      var value = node.getLayout().value;\n      var name_1 = this.getDataParams(dataIndex, dataType).data.name;\n      return createTooltipMarkup('nameValue', {\n        name: name_1 != null ? name_1 + '' : null,\n        value: value,\n        noValue: noValue(value)\n      });\n    }\n  };\n\n  SankeySeriesModel.prototype.optionUpdated = function () {\n    var option = this.option;\n\n    if (option.focusNodeAdjacency === true) {\n      option.focusNodeAdjacency = 'allEdges';\n    }\n  };\n\n  SankeySeriesModel.prototype.getDataParams = function (dataIndex, dataType) {\n    var params = _super.prototype.getDataParams.call(this, dataIndex, dataType);\n\n    if (params.value == null && dataType === 'node') {\n      var node = this.getGraph().getNodeByIndex(dataIndex);\n      var nodeValue = node.getLayout().value;\n      params.value = nodeValue;\n    }\n\n    return params;\n  };\n\n  SankeySeriesModel.type = 'series.sankey';\n  SankeySeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'view',\n    left: '5%',\n    top: '5%',\n    right: '20%',\n    bottom: '5%',\n    orient: 'horizontal',\n    nodeWidth: 20,\n    nodeGap: 8,\n    draggable: true,\n    focusNodeAdjacency: false,\n    layoutIterations: 32,\n    label: {\n      show: true,\n      position: 'right',\n      fontSize: 12\n    },\n    levels: [],\n    nodeAlign: 'justify',\n    lineStyle: {\n      color: '#314656',\n      opacity: 0.2,\n      curveness: 0.5\n    },\n    emphasis: {\n      label: {\n        show: true\n      },\n      lineStyle: {\n        opacity: 0.5\n      }\n    },\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    },\n    animationEasing: 'linear',\n    animationDuration: 1000\n  };\n  return SankeySeriesModel;\n}(SeriesModel);\n\nexport default SankeySeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as layout from '../../util/layout';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { groupData } from '../../util/model';\nexport default function sankeyLayout(ecModel, api) {\n  ecModel.eachSeriesByType('sankey', function (seriesModel) {\n    var nodeWidth = seriesModel.get('nodeWidth');\n    var nodeGap = seriesModel.get('nodeGap');\n    var layoutInfo = getViewRect(seriesModel, api);\n    seriesModel.layoutInfo = layoutInfo;\n    var width = layoutInfo.width;\n    var height = layoutInfo.height;\n    var graph = seriesModel.getGraph();\n    var nodes = graph.nodes;\n    var edges = graph.edges;\n    computeNodeValues(nodes);\n    var filteredNodes = zrUtil.filter(nodes, function (node) {\n      return node.getLayout().value === 0;\n    });\n    var iterations = filteredNodes.length !== 0 ? 0 : seriesModel.get('layoutIterations');\n    var orient = seriesModel.get('orient');\n    var nodeAlign = seriesModel.get('nodeAlign');\n    layoutSankey(nodes, edges, nodeWidth, nodeGap, width, height, iterations, orient, nodeAlign);\n  });\n}\n\nfunction getViewRect(seriesModel, api) {\n  return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n}\n\nfunction layoutSankey(nodes, edges, nodeWidth, nodeGap, width, height, iterations, orient, nodeAlign) {\n  computeNodeBreadths(nodes, edges, nodeWidth, width, height, orient, nodeAlign);\n  computeNodeDepths(nodes, edges, height, width, nodeGap, iterations, orient);\n  computeEdgeDepths(nodes, orient);\n}\n\nfunction computeNodeValues(nodes) {\n  zrUtil.each(nodes, function (node) {\n    var value1 = sum(node.outEdges, getEdgeValue);\n    var value2 = sum(node.inEdges, getEdgeValue);\n    var nodeRawValue = node.getValue() || 0;\n    var value = Math.max(value1, value2, nodeRawValue);\n    node.setLayout({\n      value: value\n    }, true);\n  });\n}\n\nfunction computeNodeBreadths(nodes, edges, nodeWidth, width, height, orient, nodeAlign) {\n  var remainEdges = [];\n  var indegreeArr = [];\n  var zeroIndegrees = [];\n  var nextTargetNode = [];\n  var x = 0;\n\n  for (var i = 0; i < edges.length; i++) {\n    remainEdges[i] = 1;\n  }\n\n  for (var i = 0; i < nodes.length; i++) {\n    indegreeArr[i] = nodes[i].inEdges.length;\n\n    if (indegreeArr[i] === 0) {\n      zeroIndegrees.push(nodes[i]);\n    }\n  }\n\n  var maxNodeDepth = -1;\n\n  while (zeroIndegrees.length) {\n    for (var idx = 0; idx < zeroIndegrees.length; idx++) {\n      var node = zeroIndegrees[idx];\n      var item = node.hostGraph.data.getRawDataItem(node.dataIndex);\n      var isItemDepth = item.depth != null && item.depth >= 0;\n\n      if (isItemDepth && item.depth > maxNodeDepth) {\n        maxNodeDepth = item.depth;\n      }\n\n      node.setLayout({\n        depth: isItemDepth ? item.depth : x\n      }, true);\n      orient === 'vertical' ? node.setLayout({\n        dy: nodeWidth\n      }, true) : node.setLayout({\n        dx: nodeWidth\n      }, true);\n\n      for (var edgeIdx = 0; edgeIdx < node.outEdges.length; edgeIdx++) {\n        var edge = node.outEdges[edgeIdx];\n        var indexEdge = edges.indexOf(edge);\n        remainEdges[indexEdge] = 0;\n        var targetNode = edge.node2;\n        var nodeIndex = nodes.indexOf(targetNode);\n\n        if (--indegreeArr[nodeIndex] === 0 && nextTargetNode.indexOf(targetNode) < 0) {\n          nextTargetNode.push(targetNode);\n        }\n      }\n    }\n\n    ++x;\n    zeroIndegrees = nextTargetNode;\n    nextTargetNode = [];\n  }\n\n  for (var i = 0; i < remainEdges.length; i++) {\n    if (remainEdges[i] === 1) {\n      throw new Error('Sankey is a DAG, the original data has cycle!');\n    }\n  }\n\n  var maxDepth = maxNodeDepth > x - 1 ? maxNodeDepth : x - 1;\n\n  if (nodeAlign && nodeAlign !== 'left') {\n    adjustNodeWithNodeAlign(nodes, nodeAlign, orient, maxDepth);\n  }\n\n  var kx = orient === 'vertical' ? (height - nodeWidth) / maxDepth : (width - nodeWidth) / maxDepth;\n  scaleNodeBreadths(nodes, kx, orient);\n}\n\nfunction isNodeDepth(node) {\n  var item = node.hostGraph.data.getRawDataItem(node.dataIndex);\n  return item.depth != null && item.depth >= 0;\n}\n\nfunction adjustNodeWithNodeAlign(nodes, nodeAlign, orient, maxDepth) {\n  if (nodeAlign === 'right') {\n    var nextSourceNode = [];\n    var remainNodes = nodes;\n    var nodeHeight = 0;\n\n    while (remainNodes.length) {\n      for (var i = 0; i < remainNodes.length; i++) {\n        var node = remainNodes[i];\n        node.setLayout({\n          skNodeHeight: nodeHeight\n        }, true);\n\n        for (var j = 0; j < node.inEdges.length; j++) {\n          var edge = node.inEdges[j];\n\n          if (nextSourceNode.indexOf(edge.node1) < 0) {\n            nextSourceNode.push(edge.node1);\n          }\n        }\n      }\n\n      remainNodes = nextSourceNode;\n      nextSourceNode = [];\n      ++nodeHeight;\n    }\n\n    zrUtil.each(nodes, function (node) {\n      if (!isNodeDepth(node)) {\n        node.setLayout({\n          depth: Math.max(0, maxDepth - node.getLayout().skNodeHeight)\n        }, true);\n      }\n    });\n  } else if (nodeAlign === 'justify') {\n    moveSinksRight(nodes, maxDepth);\n  }\n}\n\nfunction moveSinksRight(nodes, maxDepth) {\n  zrUtil.each(nodes, function (node) {\n    if (!isNodeDepth(node) && !node.outEdges.length) {\n      node.setLayout({\n        depth: maxDepth\n      }, true);\n    }\n  });\n}\n\nfunction scaleNodeBreadths(nodes, kx, orient) {\n  zrUtil.each(nodes, function (node) {\n    var nodeDepth = node.getLayout().depth * kx;\n    orient === 'vertical' ? node.setLayout({\n      y: nodeDepth\n    }, true) : node.setLayout({\n      x: nodeDepth\n    }, true);\n  });\n}\n\nfunction computeNodeDepths(nodes, edges, height, width, nodeGap, iterations, orient) {\n  var nodesByBreadth = prepareNodesByBreadth(nodes, orient);\n  initializeNodeDepth(nodesByBreadth, edges, height, width, nodeGap, orient);\n  resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\n\n  for (var alpha = 1; iterations > 0; iterations--) {\n    alpha *= 0.99;\n    relaxRightToLeft(nodesByBreadth, alpha, orient);\n    resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\n    relaxLeftToRight(nodesByBreadth, alpha, orient);\n    resolveCollisions(nodesByBreadth, nodeGap, height, width, orient);\n  }\n}\n\nfunction prepareNodesByBreadth(nodes, orient) {\n  var nodesByBreadth = [];\n  var keyAttr = orient === 'vertical' ? 'y' : 'x';\n  var groupResult = groupData(nodes, function (node) {\n    return node.getLayout()[keyAttr];\n  });\n  groupResult.keys.sort(function (a, b) {\n    return a - b;\n  });\n  zrUtil.each(groupResult.keys, function (key) {\n    nodesByBreadth.push(groupResult.buckets.get(key));\n  });\n  return nodesByBreadth;\n}\n\nfunction initializeNodeDepth(nodesByBreadth, edges, height, width, nodeGap, orient) {\n  var minKy = Infinity;\n  zrUtil.each(nodesByBreadth, function (nodes) {\n    var n = nodes.length;\n    var sum = 0;\n    zrUtil.each(nodes, function (node) {\n      sum += node.getLayout().value;\n    });\n    var ky = orient === 'vertical' ? (width - (n - 1) * nodeGap) / sum : (height - (n - 1) * nodeGap) / sum;\n\n    if (ky < minKy) {\n      minKy = ky;\n    }\n  });\n  zrUtil.each(nodesByBreadth, function (nodes) {\n    zrUtil.each(nodes, function (node, i) {\n      var nodeDy = node.getLayout().value * minKy;\n\n      if (orient === 'vertical') {\n        node.setLayout({\n          x: i\n        }, true);\n        node.setLayout({\n          dx: nodeDy\n        }, true);\n      } else {\n        node.setLayout({\n          y: i\n        }, true);\n        node.setLayout({\n          dy: nodeDy\n        }, true);\n      }\n    });\n  });\n  zrUtil.each(edges, function (edge) {\n    var edgeDy = +edge.getValue() * minKy;\n    edge.setLayout({\n      dy: edgeDy\n    }, true);\n  });\n}\n\nfunction resolveCollisions(nodesByBreadth, nodeGap, height, width, orient) {\n  var keyAttr = orient === 'vertical' ? 'x' : 'y';\n  zrUtil.each(nodesByBreadth, function (nodes) {\n    nodes.sort(function (a, b) {\n      return a.getLayout()[keyAttr] - b.getLayout()[keyAttr];\n    });\n    var nodeX;\n    var node;\n    var dy;\n    var y0 = 0;\n    var n = nodes.length;\n    var nodeDyAttr = orient === 'vertical' ? 'dx' : 'dy';\n\n    for (var i = 0; i < n; i++) {\n      node = nodes[i];\n      dy = y0 - node.getLayout()[keyAttr];\n\n      if (dy > 0) {\n        nodeX = node.getLayout()[keyAttr] + dy;\n        orient === 'vertical' ? node.setLayout({\n          x: nodeX\n        }, true) : node.setLayout({\n          y: nodeX\n        }, true);\n      }\n\n      y0 = node.getLayout()[keyAttr] + node.getLayout()[nodeDyAttr] + nodeGap;\n    }\n\n    var viewWidth = orient === 'vertical' ? width : height;\n    dy = y0 - nodeGap - viewWidth;\n\n    if (dy > 0) {\n      nodeX = node.getLayout()[keyAttr] - dy;\n      orient === 'vertical' ? node.setLayout({\n        x: nodeX\n      }, true) : node.setLayout({\n        y: nodeX\n      }, true);\n      y0 = nodeX;\n\n      for (var i = n - 2; i >= 0; --i) {\n        node = nodes[i];\n        dy = node.getLayout()[keyAttr] + node.getLayout()[nodeDyAttr] + nodeGap - y0;\n\n        if (dy > 0) {\n          nodeX = node.getLayout()[keyAttr] - dy;\n          orient === 'vertical' ? node.setLayout({\n            x: nodeX\n          }, true) : node.setLayout({\n            y: nodeX\n          }, true);\n        }\n\n        y0 = node.getLayout()[keyAttr];\n      }\n    }\n  });\n}\n\nfunction relaxRightToLeft(nodesByBreadth, alpha, orient) {\n  zrUtil.each(nodesByBreadth.slice().reverse(), function (nodes) {\n    zrUtil.each(nodes, function (node) {\n      if (node.outEdges.length) {\n        var y = sum(node.outEdges, weightedTarget, orient) / sum(node.outEdges, getEdgeValue);\n\n        if (isNaN(y)) {\n          var len = node.outEdges.length;\n          y = len ? sum(node.outEdges, centerTarget, orient) / len : 0;\n        }\n\n        if (orient === 'vertical') {\n          var nodeX = node.getLayout().x + (y - center(node, orient)) * alpha;\n          node.setLayout({\n            x: nodeX\n          }, true);\n        } else {\n          var nodeY = node.getLayout().y + (y - center(node, orient)) * alpha;\n          node.setLayout({\n            y: nodeY\n          }, true);\n        }\n      }\n    });\n  });\n}\n\nfunction weightedTarget(edge, orient) {\n  return center(edge.node2, orient) * edge.getValue();\n}\n\nfunction centerTarget(edge, orient) {\n  return center(edge.node2, orient);\n}\n\nfunction weightedSource(edge, orient) {\n  return center(edge.node1, orient) * edge.getValue();\n}\n\nfunction centerSource(edge, orient) {\n  return center(edge.node1, orient);\n}\n\nfunction center(node, orient) {\n  return orient === 'vertical' ? node.getLayout().x + node.getLayout().dx / 2 : node.getLayout().y + node.getLayout().dy / 2;\n}\n\nfunction getEdgeValue(edge) {\n  return edge.getValue();\n}\n\nfunction sum(array, cb, orient) {\n  var sum = 0;\n  var len = array.length;\n  var i = -1;\n\n  while (++i < len) {\n    var value = +cb(array[i], orient);\n\n    if (!isNaN(value)) {\n      sum += value;\n    }\n  }\n\n  return sum;\n}\n\nfunction relaxLeftToRight(nodesByBreadth, alpha, orient) {\n  zrUtil.each(nodesByBreadth, function (nodes) {\n    zrUtil.each(nodes, function (node) {\n      if (node.inEdges.length) {\n        var y = sum(node.inEdges, weightedSource, orient) / sum(node.inEdges, getEdgeValue);\n\n        if (isNaN(y)) {\n          var len = node.inEdges.length;\n          y = len ? sum(node.inEdges, centerSource, orient) / len : 0;\n        }\n\n        if (orient === 'vertical') {\n          var nodeX = node.getLayout().x + (y - center(node, orient)) * alpha;\n          node.setLayout({\n            x: nodeX\n          }, true);\n        } else {\n          var nodeY = node.getLayout().y + (y - center(node, orient)) * alpha;\n          node.setLayout({\n            y: nodeY\n          }, true);\n        }\n      }\n    });\n  });\n}\n\nfunction computeEdgeDepths(nodes, orient) {\n  var keyAttr = orient === 'vertical' ? 'x' : 'y';\n  zrUtil.each(nodes, function (node) {\n    node.outEdges.sort(function (a, b) {\n      return a.node2.getLayout()[keyAttr] - b.node2.getLayout()[keyAttr];\n    });\n    node.inEdges.sort(function (a, b) {\n      return a.node1.getLayout()[keyAttr] - b.node1.getLayout()[keyAttr];\n    });\n  });\n  zrUtil.each(nodes, function (node) {\n    var sy = 0;\n    var ty = 0;\n    zrUtil.each(node.outEdges, function (edge) {\n      edge.setLayout({\n        sy: sy\n      }, true);\n      sy += edge.getLayout().dy;\n    });\n    zrUtil.each(node.inEdges, function (edge) {\n      edge.setLayout({\n        ty: ty\n      }, true);\n      ty += edge.getLayout().dy;\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport VisualMapping from '../../visual/VisualMapping';\nexport default function sankeyVisual(ecModel) {\n  ecModel.eachSeriesByType('sankey', function (seriesModel) {\n    var graph = seriesModel.getGraph();\n    var nodes = graph.nodes;\n\n    if (nodes.length) {\n      var minValue_1 = Infinity;\n      var maxValue_1 = -Infinity;\n      zrUtil.each(nodes, function (node) {\n        var nodeValue = node.getLayout().value;\n\n        if (nodeValue < minValue_1) {\n          minValue_1 = nodeValue;\n        }\n\n        if (nodeValue > maxValue_1) {\n          maxValue_1 = nodeValue;\n        }\n      });\n      zrUtil.each(nodes, function (node) {\n        var mapping = new VisualMapping({\n          type: 'color',\n          mappingMethod: 'linear',\n          dataExtent: [minValue_1, maxValue_1],\n          visual: seriesModel.get('color')\n        });\n        var mapValueToColor = mapping.mapValueToVisual(node.getLayout().value);\n        var customColor = node.getModel().get(['itemStyle', 'color']);\n\n        if (customColor != null) {\n          node.setVisual('color', customColor);\n          node.setVisual('style', {\n            fill: customColor\n          });\n        } else {\n          node.setVisual('color', mapValueToColor);\n          node.setVisual('style', {\n            fill: mapValueToColor\n          });\n        }\n      });\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SankeyView from './SankeyView';\nimport SankeySeriesModel from './SankeySeries';\nimport sankeyLayout from './sankeyLayout';\nimport sankeyVisual from './sankeyVisual';\nexport function install(registers) {\n  registers.registerChartView(SankeyView);\n  registers.registerSeriesModel(SankeySeriesModel);\n  registers.registerLayout(sankeyLayout);\n  registers.registerVisual(sankeyVisual);\n  registers.registerAction({\n    type: 'dragNode',\n    event: 'dragnode',\n    update: 'update'\n  }, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'sankey',\n      query: payload\n    }, function (seriesModel) {\n      seriesModel.setNodePosition(payload.dataIndex, [payload.localX, payload.localY]);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport createListSimply from '../helper/createListSimply';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { getDimensionTypeByAxis } from '../../data/helper/dimensionHelper';\nimport { makeSeriesEncodeForAxisCoordSys } from '../../data/helper/sourceHelper';\n\nvar WhiskerBoxCommonMixin = function () {\n  function WhiskerBoxCommonMixin() {}\n\n  WhiskerBoxCommonMixin.prototype.getInitialData = function (option, ecModel) {\n    var ordinalMeta;\n    var xAxisModel = ecModel.getComponent('xAxis', this.get('xAxisIndex'));\n    var yAxisModel = ecModel.getComponent('yAxis', this.get('yAxisIndex'));\n    var xAxisType = xAxisModel.get('type');\n    var yAxisType = yAxisModel.get('type');\n    var addOrdinal;\n\n    if (xAxisType === 'category') {\n      option.layout = 'horizontal';\n      ordinalMeta = xAxisModel.getOrdinalMeta();\n      addOrdinal = true;\n    } else if (yAxisType === 'category') {\n      option.layout = 'vertical';\n      ordinalMeta = yAxisModel.getOrdinalMeta();\n      addOrdinal = true;\n    } else {\n      option.layout = option.layout || 'horizontal';\n    }\n\n    var coordDims = ['x', 'y'];\n    var baseAxisDimIndex = option.layout === 'horizontal' ? 0 : 1;\n    var baseAxisDim = this._baseAxisDim = coordDims[baseAxisDimIndex];\n    var otherAxisDim = coordDims[1 - baseAxisDimIndex];\n    var axisModels = [xAxisModel, yAxisModel];\n    var baseAxisType = axisModels[baseAxisDimIndex].get('type');\n    var otherAxisType = axisModels[1 - baseAxisDimIndex].get('type');\n    var data = option.data;\n\n    if (data && addOrdinal) {\n      var newOptionData_1 = [];\n      zrUtil.each(data, function (item, index) {\n        var newItem;\n\n        if (zrUtil.isArray(item)) {\n          newItem = item.slice();\n          item.unshift(index);\n        } else if (zrUtil.isArray(item.value)) {\n          newItem = item.value.slice();\n          item.value.unshift(index);\n        } else {\n          newItem = item;\n        }\n\n        newOptionData_1.push(newItem);\n      });\n      option.data = newOptionData_1;\n    }\n\n    var defaultValueDimensions = this.defaultValueDimensions;\n    var coordDimensions = [{\n      name: baseAxisDim,\n      type: getDimensionTypeByAxis(baseAxisType),\n      ordinalMeta: ordinalMeta,\n      otherDims: {\n        tooltip: false,\n        itemName: 0\n      },\n      dimsDef: ['base']\n    }, {\n      name: otherAxisDim,\n      type: getDimensionTypeByAxis(otherAxisType),\n      dimsDef: defaultValueDimensions.slice()\n    }];\n    return createListSimply(this, {\n      coordDimensions: coordDimensions,\n      dimensionsCount: defaultValueDimensions.length + 1,\n      encodeDefaulter: zrUtil.curry(makeSeriesEncodeForAxisCoordSys, coordDimensions, this)\n    });\n  };\n\n  WhiskerBoxCommonMixin.prototype.getBaseAxis = function () {\n    var dim = this._baseAxisDim;\n    return this.ecModel.getComponent(dim + 'Axis', this.get(dim + 'AxisIndex')).axis;\n  };\n\n  return WhiskerBoxCommonMixin;\n}();\n\n;\nexport { WhiskerBoxCommonMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport { WhiskerBoxCommonMixin } from '../helper/whiskerBoxCommon';\nimport { mixin } from 'zrender/lib/core/util';\n\nvar BoxplotSeriesModel = function (_super) {\n  __extends(BoxplotSeriesModel, _super);\n\n  function BoxplotSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BoxplotSeriesModel.type;\n    _this.defaultValueDimensions = [{\n      name: 'min',\n      defaultTooltip: true\n    }, {\n      name: 'Q1',\n      defaultTooltip: true\n    }, {\n      name: 'median',\n      defaultTooltip: true\n    }, {\n      name: 'Q3',\n      defaultTooltip: true\n    }, {\n      name: 'max',\n      defaultTooltip: true\n    }];\n    _this.visualDrawType = 'stroke';\n    return _this;\n  }\n\n  BoxplotSeriesModel.type = 'series.boxplot';\n  BoxplotSeriesModel.dependencies = ['xAxis', 'yAxis', 'grid'];\n  BoxplotSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'cartesian2d',\n    legendHoverLink: true,\n    layout: null,\n    boxWidth: [7, 50],\n    itemStyle: {\n      color: '#fff',\n      borderWidth: 1\n    },\n    emphasis: {\n      scale: true,\n      itemStyle: {\n        borderWidth: 2,\n        shadowBlur: 5,\n        shadowOffsetX: 1,\n        shadowOffsetY: 1,\n        shadowColor: 'rgba(0,0,0,0.2)'\n      }\n    },\n    animationDuration: 800\n  };\n  return BoxplotSeriesModel;\n}(SeriesModel);\n\nmixin(BoxplotSeriesModel, WhiskerBoxCommonMixin, true);\nexport default BoxplotSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ChartView from '../../view/Chart';\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport Path from 'zrender/lib/graphic/Path';\n\nvar BoxplotView = function (_super) {\n  __extends(BoxplotView, _super);\n\n  function BoxplotView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BoxplotView.type;\n    return _this;\n  }\n\n  BoxplotView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    var group = this.group;\n    var oldData = this._data;\n\n    if (!this._data) {\n      group.removeAll();\n    }\n\n    var constDim = seriesModel.get('layout') === 'horizontal' ? 1 : 0;\n    data.diff(oldData).add(function (newIdx) {\n      if (data.hasValue(newIdx)) {\n        var itemLayout = data.getItemLayout(newIdx);\n        var symbolEl = createNormalBox(itemLayout, data, newIdx, constDim, true);\n        data.setItemGraphicEl(newIdx, symbolEl);\n        group.add(symbolEl);\n      }\n    }).update(function (newIdx, oldIdx) {\n      var symbolEl = oldData.getItemGraphicEl(oldIdx);\n\n      if (!data.hasValue(newIdx)) {\n        group.remove(symbolEl);\n        return;\n      }\n\n      var itemLayout = data.getItemLayout(newIdx);\n\n      if (!symbolEl) {\n        symbolEl = createNormalBox(itemLayout, data, newIdx, constDim);\n      } else {\n        updateNormalBoxData(itemLayout, symbolEl, data, newIdx);\n      }\n\n      group.add(symbolEl);\n      data.setItemGraphicEl(newIdx, symbolEl);\n    }).remove(function (oldIdx) {\n      var el = oldData.getItemGraphicEl(oldIdx);\n      el && group.remove(el);\n    }).execute();\n    this._data = data;\n  };\n\n  BoxplotView.prototype.remove = function (ecModel) {\n    var group = this.group;\n    var data = this._data;\n    this._data = null;\n    data && data.eachItemGraphicEl(function (el) {\n      el && group.remove(el);\n    });\n  };\n\n  BoxplotView.type = 'boxplot';\n  return BoxplotView;\n}(ChartView);\n\nvar BoxPathShape = function () {\n  function BoxPathShape() {}\n\n  return BoxPathShape;\n}();\n\nvar BoxPath = function (_super) {\n  __extends(BoxPath, _super);\n\n  function BoxPath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'boxplotBoxPath';\n    return _this;\n  }\n\n  BoxPath.prototype.getDefaultShape = function () {\n    return new BoxPathShape();\n  };\n\n  BoxPath.prototype.buildPath = function (ctx, shape) {\n    var ends = shape.points;\n    var i = 0;\n    ctx.moveTo(ends[i][0], ends[i][1]);\n    i++;\n\n    for (; i < 4; i++) {\n      ctx.lineTo(ends[i][0], ends[i][1]);\n    }\n\n    ctx.closePath();\n\n    for (; i < ends.length; i++) {\n      ctx.moveTo(ends[i][0], ends[i][1]);\n      i++;\n      ctx.lineTo(ends[i][0], ends[i][1]);\n    }\n  };\n\n  return BoxPath;\n}(Path);\n\nfunction createNormalBox(itemLayout, data, dataIndex, constDim, isInit) {\n  var ends = itemLayout.ends;\n  var el = new BoxPath({\n    shape: {\n      points: isInit ? transInit(ends, constDim, itemLayout) : ends\n    }\n  });\n  updateNormalBoxData(itemLayout, el, data, dataIndex, isInit);\n  return el;\n}\n\nfunction updateNormalBoxData(itemLayout, el, data, dataIndex, isInit) {\n  var seriesModel = data.hostModel;\n  var updateMethod = graphic[isInit ? 'initProps' : 'updateProps'];\n  updateMethod(el, {\n    shape: {\n      points: itemLayout.ends\n    }\n  }, seriesModel, dataIndex);\n  el.useStyle(data.getItemVisual(dataIndex, 'style'));\n  el.style.strokeNoScale = true;\n  el.z2 = 100;\n  var itemModel = data.getItemModel(dataIndex);\n  setStatesStylesFromModel(el, itemModel);\n  enableHoverEmphasis(el, itemModel.get(['emphasis', 'focus']), itemModel.get(['emphasis', 'blurScope']));\n}\n\nfunction transInit(points, dim, itemLayout) {\n  return zrUtil.map(points, function (point) {\n    point = point.slice();\n    point[dim] = itemLayout.initBaseline;\n    return point;\n  });\n}\n\nexport default BoxplotView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function boxplotVisual(ecModel, api) {\n  ecModel.eachRawSeriesByType('boxplot', function (seriesModel) {\n    seriesModel.getData().setVisual('legendSymbol', 'roundRect');\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parsePercent } from '../../util/number';\nvar each = zrUtil.each;\nexport default function boxplotLayout(ecModel) {\n  var groupResult = groupSeriesByAxis(ecModel);\n  each(groupResult, function (groupItem) {\n    var seriesModels = groupItem.seriesModels;\n\n    if (!seriesModels.length) {\n      return;\n    }\n\n    calculateBase(groupItem);\n    each(seriesModels, function (seriesModel, idx) {\n      layoutSingleSeries(seriesModel, groupItem.boxOffsetList[idx], groupItem.boxWidthList[idx]);\n    });\n  });\n}\n\nfunction groupSeriesByAxis(ecModel) {\n  var result = [];\n  var axisList = [];\n  ecModel.eachSeriesByType('boxplot', function (seriesModel) {\n    var baseAxis = seriesModel.getBaseAxis();\n    var idx = zrUtil.indexOf(axisList, baseAxis);\n\n    if (idx < 0) {\n      idx = axisList.length;\n      axisList[idx] = baseAxis;\n      result[idx] = {\n        axis: baseAxis,\n        seriesModels: []\n      };\n    }\n\n    result[idx].seriesModels.push(seriesModel);\n  });\n  return result;\n}\n\nfunction calculateBase(groupItem) {\n  var extent;\n  var baseAxis = groupItem.axis;\n  var seriesModels = groupItem.seriesModels;\n  var seriesCount = seriesModels.length;\n  var boxWidthList = groupItem.boxWidthList = [];\n  var boxOffsetList = groupItem.boxOffsetList = [];\n  var boundList = [];\n  var bandWidth;\n\n  if (baseAxis.type === 'category') {\n    bandWidth = baseAxis.getBandWidth();\n  } else {\n    var maxDataCount_1 = 0;\n    each(seriesModels, function (seriesModel) {\n      maxDataCount_1 = Math.max(maxDataCount_1, seriesModel.getData().count());\n    });\n    extent = baseAxis.getExtent(), Math.abs(extent[1] - extent[0]) / maxDataCount_1;\n  }\n\n  each(seriesModels, function (seriesModel) {\n    var boxWidthBound = seriesModel.get('boxWidth');\n\n    if (!zrUtil.isArray(boxWidthBound)) {\n      boxWidthBound = [boxWidthBound, boxWidthBound];\n    }\n\n    boundList.push([parsePercent(boxWidthBound[0], bandWidth) || 0, parsePercent(boxWidthBound[1], bandWidth) || 0]);\n  });\n  var availableWidth = bandWidth * 0.8 - 2;\n  var boxGap = availableWidth / seriesCount * 0.3;\n  var boxWidth = (availableWidth - boxGap * (seriesCount - 1)) / seriesCount;\n  var base = boxWidth / 2 - availableWidth / 2;\n  each(seriesModels, function (seriesModel, idx) {\n    boxOffsetList.push(base);\n    base += boxGap + boxWidth;\n    boxWidthList.push(Math.min(Math.max(boxWidth, boundList[idx][0]), boundList[idx][1]));\n  });\n}\n\nfunction layoutSingleSeries(seriesModel, offset, boxWidth) {\n  var coordSys = seriesModel.coordinateSystem;\n  var data = seriesModel.getData();\n  var halfWidth = boxWidth / 2;\n  var cDimIdx = seriesModel.get('layout') === 'horizontal' ? 0 : 1;\n  var vDimIdx = 1 - cDimIdx;\n  var coordDims = ['x', 'y'];\n  var cDim = data.mapDimension(coordDims[cDimIdx]);\n  var vDims = data.mapDimensionsAll(coordDims[vDimIdx]);\n\n  if (cDim == null || vDims.length < 5) {\n    return;\n  }\n\n  for (var dataIndex = 0; dataIndex < data.count(); dataIndex++) {\n    var axisDimVal = data.get(cDim, dataIndex);\n    var median = getPoint(axisDimVal, vDims[2], dataIndex);\n    var end1 = getPoint(axisDimVal, vDims[0], dataIndex);\n    var end2 = getPoint(axisDimVal, vDims[1], dataIndex);\n    var end4 = getPoint(axisDimVal, vDims[3], dataIndex);\n    var end5 = getPoint(axisDimVal, vDims[4], dataIndex);\n    var ends = [];\n    addBodyEnd(ends, end2, false);\n    addBodyEnd(ends, end4, true);\n    ends.push(end1, end2, end5, end4);\n    layEndLine(ends, end1);\n    layEndLine(ends, end5);\n    layEndLine(ends, median);\n    data.setItemLayout(dataIndex, {\n      initBaseline: median[vDimIdx],\n      ends: ends\n    });\n  }\n\n  function getPoint(axisDimVal, dim, dataIndex) {\n    var val = data.get(dim, dataIndex);\n    var p = [];\n    p[cDimIdx] = axisDimVal;\n    p[vDimIdx] = val;\n    var point;\n\n    if (isNaN(axisDimVal) || isNaN(val)) {\n      point = [NaN, NaN];\n    } else {\n      point = coordSys.dataToPoint(p);\n      point[cDimIdx] += offset;\n    }\n\n    return point;\n  }\n\n  function addBodyEnd(ends, point, start) {\n    var point1 = point.slice();\n    var point2 = point.slice();\n    point1[cDimIdx] += halfWidth;\n    point2[cDimIdx] -= halfWidth;\n    start ? ends.push(point1, point2) : ends.push(point2, point1);\n  }\n\n  function layEndLine(ends, endCenter) {\n    var from = endCenter.slice();\n    var to = endCenter.slice();\n    from[cDimIdx] -= halfWidth;\n    to[cDimIdx] += halfWidth;\n    ends.push(from, to);\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { quantile, asc } from '../../util/number';\nimport { isFunction, isString } from 'zrender/lib/core/util';\nexport default function prepareBoxplotData(rawData, opt) {\n  opt = opt || {};\n  var boxData = [];\n  var outliers = [];\n  var boundIQR = opt.boundIQR;\n  var useExtreme = boundIQR === 'none' || boundIQR === 0;\n\n  for (var i = 0; i < rawData.length; i++) {\n    var ascList = asc(rawData[i].slice());\n    var Q1 = quantile(ascList, 0.25);\n    var Q2 = quantile(ascList, 0.5);\n    var Q3 = quantile(ascList, 0.75);\n    var min = ascList[0];\n    var max = ascList[ascList.length - 1];\n    var bound = (boundIQR == null ? 1.5 : boundIQR) * (Q3 - Q1);\n    var low = useExtreme ? min : Math.max(min, Q1 - bound);\n    var high = useExtreme ? max : Math.min(max, Q3 + bound);\n    var itemNameFormatter = opt.itemNameFormatter;\n    var itemName = isFunction(itemNameFormatter) ? itemNameFormatter({\n      value: i\n    }) : isString(itemNameFormatter) ? itemNameFormatter.replace('{value}', i + '') : i + '';\n    boxData.push([itemName, low, Q1, Q2, Q3, high]);\n\n    for (var j = 0; j < ascList.length; j++) {\n      var dataItem = ascList[j];\n\n      if (dataItem < low || dataItem > high) {\n        var outlier = [itemName, dataItem];\n        outliers.push(outlier);\n      }\n    }\n  }\n\n  return {\n    boxData: boxData,\n    outliers: outliers\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport prepareBoxplotData from './prepareBoxplotData';\nimport { throwError, makePrintable } from '../../util/log';\nimport { SOURCE_FORMAT_ARRAY_ROWS } from '../../util/types';\nexport var boxplotTransform = {\n  type: 'echarts:boxplot',\n  transform: function transform(params) {\n    var upstream = params.upstream;\n\n    if (upstream.sourceFormat !== SOURCE_FORMAT_ARRAY_ROWS) {\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = makePrintable('source data is not applicable for this boxplot transform. Expect number[][].');\n      }\n\n      throwError(errMsg);\n    }\n\n    var result = prepareBoxplotData(upstream.getRawData(), params.config);\n    return [{\n      dimensions: ['ItemName', 'Low', 'Q1', 'Q2', 'Q3', 'High'],\n      data: result.boxData\n    }, {\n      data: result.outliers\n    }];\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport BoxplotSeriesModel from './BoxplotSeries';\nimport BoxplotView from './BoxplotView';\nimport boxplotVisual from './boxplotVisual';\nimport boxplotLayout from './boxplotLayout';\nimport { boxplotTransform } from './boxplotTransform';\nexport function install(registers) {\n  registers.registerSeriesModel(BoxplotSeriesModel);\n  registers.registerChartView(BoxplotView);\n  registers.registerVisual(boxplotVisual);\n  registers.registerLayout(boxplotLayout);\n  registers.registerTransform(boxplotTransform);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ChartView from '../../view/Chart';\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel } from '../../util/states';\nimport Path from 'zrender/lib/graphic/Path';\nimport { createClipPath } from '../helper/createClipPathFromCoordSys';\nvar SKIP_PROPS = ['color', 'borderColor'];\n\nvar CandlestickView = function (_super) {\n  __extends(CandlestickView, _super);\n\n  function CandlestickView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CandlestickView.type;\n    return _this;\n  }\n\n  CandlestickView.prototype.render = function (seriesModel, ecModel, api) {\n    this.group.removeClipPath();\n\n    this._updateDrawMode(seriesModel);\n\n    this._isLargeDraw ? this._renderLarge(seriesModel) : this._renderNormal(seriesModel);\n  };\n\n  CandlestickView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n    this._clear();\n\n    this._updateDrawMode(seriesModel);\n  };\n\n  CandlestickView.prototype.incrementalRender = function (params, seriesModel, ecModel, api) {\n    this._isLargeDraw ? this._incrementalRenderLarge(params, seriesModel) : this._incrementalRenderNormal(params, seriesModel);\n  };\n\n  CandlestickView.prototype._updateDrawMode = function (seriesModel) {\n    var isLargeDraw = seriesModel.pipelineContext.large;\n\n    if (this._isLargeDraw == null || isLargeDraw !== this._isLargeDraw) {\n      this._isLargeDraw = isLargeDraw;\n\n      this._clear();\n    }\n  };\n\n  CandlestickView.prototype._renderNormal = function (seriesModel) {\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var group = this.group;\n    var isSimpleBox = data.getLayout('isSimpleBox');\n    var needsClip = seriesModel.get('clip', true);\n    var coord = seriesModel.coordinateSystem;\n    var clipArea = coord.getArea && coord.getArea();\n\n    if (!this._data) {\n      group.removeAll();\n    }\n\n    data.diff(oldData).add(function (newIdx) {\n      if (data.hasValue(newIdx)) {\n        var itemLayout = data.getItemLayout(newIdx);\n\n        if (needsClip && isNormalBoxClipped(clipArea, itemLayout)) {\n          return;\n        }\n\n        var el = createNormalBox(itemLayout, newIdx, true);\n        graphic.initProps(el, {\n          shape: {\n            points: itemLayout.ends\n          }\n        }, seriesModel, newIdx);\n        setBoxCommon(el, data, newIdx, isSimpleBox);\n        group.add(el);\n        data.setItemGraphicEl(newIdx, el);\n      }\n    }).update(function (newIdx, oldIdx) {\n      var el = oldData.getItemGraphicEl(oldIdx);\n\n      if (!data.hasValue(newIdx)) {\n        group.remove(el);\n        return;\n      }\n\n      var itemLayout = data.getItemLayout(newIdx);\n\n      if (needsClip && isNormalBoxClipped(clipArea, itemLayout)) {\n        group.remove(el);\n        return;\n      }\n\n      if (!el) {\n        el = createNormalBox(itemLayout, newIdx);\n      } else {\n        graphic.updateProps(el, {\n          shape: {\n            points: itemLayout.ends\n          }\n        }, seriesModel, newIdx);\n      }\n\n      setBoxCommon(el, data, newIdx, isSimpleBox);\n      group.add(el);\n      data.setItemGraphicEl(newIdx, el);\n    }).remove(function (oldIdx) {\n      var el = oldData.getItemGraphicEl(oldIdx);\n      el && group.remove(el);\n    }).execute();\n    this._data = data;\n  };\n\n  CandlestickView.prototype._renderLarge = function (seriesModel) {\n    this._clear();\n\n    createLarge(seriesModel, this.group);\n    var clipPath = seriesModel.get('clip', true) ? createClipPath(seriesModel.coordinateSystem, false, seriesModel) : null;\n\n    if (clipPath) {\n      this.group.setClipPath(clipPath);\n    } else {\n      this.group.removeClipPath();\n    }\n  };\n\n  CandlestickView.prototype._incrementalRenderNormal = function (params, seriesModel) {\n    var data = seriesModel.getData();\n    var isSimpleBox = data.getLayout('isSimpleBox');\n    var dataIndex;\n\n    while ((dataIndex = params.next()) != null) {\n      var itemLayout = data.getItemLayout(dataIndex);\n      var el = createNormalBox(itemLayout, dataIndex);\n      setBoxCommon(el, data, dataIndex, isSimpleBox);\n      el.incremental = true;\n      this.group.add(el);\n    }\n  };\n\n  CandlestickView.prototype._incrementalRenderLarge = function (params, seriesModel) {\n    createLarge(seriesModel, this.group, true);\n  };\n\n  CandlestickView.prototype.remove = function (ecModel) {\n    this._clear();\n  };\n\n  CandlestickView.prototype._clear = function () {\n    this.group.removeAll();\n    this._data = null;\n  };\n\n  CandlestickView.type = 'candlestick';\n  return CandlestickView;\n}(ChartView);\n\nvar NormalBoxPathShape = function () {\n  function NormalBoxPathShape() {}\n\n  return NormalBoxPathShape;\n}();\n\nvar NormalBoxPath = function (_super) {\n  __extends(NormalBoxPath, _super);\n\n  function NormalBoxPath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'normalCandlestickBox';\n    return _this;\n  }\n\n  NormalBoxPath.prototype.getDefaultShape = function () {\n    return new NormalBoxPathShape();\n  };\n\n  NormalBoxPath.prototype.buildPath = function (ctx, shape) {\n    var ends = shape.points;\n\n    if (this.__simpleBox) {\n      ctx.moveTo(ends[4][0], ends[4][1]);\n      ctx.lineTo(ends[6][0], ends[6][1]);\n    } else {\n      ctx.moveTo(ends[0][0], ends[0][1]);\n      ctx.lineTo(ends[1][0], ends[1][1]);\n      ctx.lineTo(ends[2][0], ends[2][1]);\n      ctx.lineTo(ends[3][0], ends[3][1]);\n      ctx.closePath();\n      ctx.moveTo(ends[4][0], ends[4][1]);\n      ctx.lineTo(ends[5][0], ends[5][1]);\n      ctx.moveTo(ends[6][0], ends[6][1]);\n      ctx.lineTo(ends[7][0], ends[7][1]);\n    }\n  };\n\n  return NormalBoxPath;\n}(Path);\n\nfunction createNormalBox(itemLayout, dataIndex, isInit) {\n  var ends = itemLayout.ends;\n  return new NormalBoxPath({\n    shape: {\n      points: isInit ? transInit(ends, itemLayout) : ends\n    },\n    z2: 100\n  });\n}\n\nfunction isNormalBoxClipped(clipArea, itemLayout) {\n  var clipped = true;\n\n  for (var i = 0; i < itemLayout.ends.length; i++) {\n    if (clipArea.contain(itemLayout.ends[i][0], itemLayout.ends[i][1])) {\n      clipped = false;\n      break;\n    }\n  }\n\n  return clipped;\n}\n\nfunction setBoxCommon(el, data, dataIndex, isSimpleBox) {\n  var itemModel = data.getItemModel(dataIndex);\n  el.useStyle(data.getItemVisual(dataIndex, 'style'));\n  el.style.strokeNoScale = true;\n  el.__simpleBox = isSimpleBox;\n  setStatesStylesFromModel(el, itemModel);\n}\n\nfunction transInit(points, itemLayout) {\n  return zrUtil.map(points, function (point) {\n    point = point.slice();\n    point[1] = itemLayout.initBaseline;\n    return point;\n  });\n}\n\nvar LargeBoxPathShape = function () {\n  function LargeBoxPathShape() {}\n\n  return LargeBoxPathShape;\n}();\n\nvar LargeBoxPath = function (_super) {\n  __extends(LargeBoxPath, _super);\n\n  function LargeBoxPath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'largeCandlestickBox';\n    return _this;\n  }\n\n  LargeBoxPath.prototype.getDefaultShape = function () {\n    return new LargeBoxPathShape();\n  };\n\n  LargeBoxPath.prototype.buildPath = function (ctx, shape) {\n    var points = shape.points;\n\n    for (var i = 0; i < points.length;) {\n      if (this.__sign === points[i++]) {\n        var x = points[i++];\n        ctx.moveTo(x, points[i++]);\n        ctx.lineTo(x, points[i++]);\n      } else {\n        i += 3;\n      }\n    }\n  };\n\n  return LargeBoxPath;\n}(Path);\n\nfunction createLarge(seriesModel, group, incremental) {\n  var data = seriesModel.getData();\n  var largePoints = data.getLayout('largePoints');\n  var elP = new LargeBoxPath({\n    shape: {\n      points: largePoints\n    },\n    __sign: 1\n  });\n  group.add(elP);\n  var elN = new LargeBoxPath({\n    shape: {\n      points: largePoints\n    },\n    __sign: -1\n  });\n  group.add(elN);\n  setLargeStyle(1, elP, seriesModel, data);\n  setLargeStyle(-1, elN, seriesModel, data);\n\n  if (incremental) {\n    elP.incremental = true;\n    elN.incremental = true;\n  }\n}\n\nfunction setLargeStyle(sign, el, seriesModel, data) {\n  var borderColor = seriesModel.get(['itemStyle', sign > 0 ? 'borderColor' : 'borderColor0']) || seriesModel.get(['itemStyle', sign > 0 ? 'color' : 'color0']);\n  var itemStyle = seriesModel.getModel('itemStyle').getItemStyle(SKIP_PROPS);\n  el.useStyle(itemStyle);\n  el.style.fill = null;\n  el.style.stroke = borderColor;\n}\n\nexport default CandlestickView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport { WhiskerBoxCommonMixin } from '../helper/whiskerBoxCommon';\nimport { mixin } from 'zrender/lib/core/util';\n\nvar CandlestickSeriesModel = function (_super) {\n  __extends(CandlestickSeriesModel, _super);\n\n  function CandlestickSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CandlestickSeriesModel.type;\n    _this.defaultValueDimensions = [{\n      name: 'open',\n      defaultTooltip: true\n    }, {\n      name: 'close',\n      defaultTooltip: true\n    }, {\n      name: 'lowest',\n      defaultTooltip: true\n    }, {\n      name: 'highest',\n      defaultTooltip: true\n    }];\n    return _this;\n  }\n\n  CandlestickSeriesModel.prototype.getShadowDim = function () {\n    return 'open';\n  };\n\n  CandlestickSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n    var itemLayout = data.getItemLayout(dataIndex);\n    return itemLayout && selectors.rect(itemLayout.brushRect);\n  };\n\n  CandlestickSeriesModel.type = 'series.candlestick';\n  CandlestickSeriesModel.dependencies = ['xAxis', 'yAxis', 'grid'];\n  CandlestickSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'cartesian2d',\n    legendHoverLink: true,\n    layout: null,\n    clip: true,\n    itemStyle: {\n      color: '#eb5454',\n      color0: '#47b262',\n      borderColor: '#eb5454',\n      borderColor0: '#47b262',\n      borderWidth: 1\n    },\n    emphasis: {\n      scale: true,\n      itemStyle: {\n        borderWidth: 2\n      }\n    },\n    barMaxWidth: null,\n    barMinWidth: null,\n    barWidth: null,\n    large: true,\n    largeThreshold: 600,\n    progressive: 3e3,\n    progressiveThreshold: 1e4,\n    progressiveChunkMode: 'mod',\n    animationEasing: 'linear',\n    animationDuration: 300\n  };\n  return CandlestickSeriesModel;\n}(SeriesModel);\n\nmixin(CandlestickSeriesModel, WhiskerBoxCommonMixin, true);\nexport default CandlestickSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function candlestickPreprocessor(option) {\n  if (!option || !zrUtil.isArray(option.series)) {\n    return;\n  }\n\n  zrUtil.each(option.series, function (seriesItem) {\n    if (zrUtil.isObject(seriesItem) && seriesItem.type === 'k') {\n      seriesItem.type = 'candlestick';\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport createRenderPlanner from '../helper/createRenderPlanner';\nimport { extend } from 'zrender/lib/core/util';\nvar positiveBorderColorQuery = ['itemStyle', 'borderColor'];\nvar negativeBorderColorQuery = ['itemStyle', 'borderColor0'];\nvar positiveColorQuery = ['itemStyle', 'color'];\nvar negativeColorQuery = ['itemStyle', 'color0'];\nvar candlestickVisual = {\n  seriesType: 'candlestick',\n  plan: createRenderPlanner(),\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    function getColor(sign, model) {\n      return model.get(sign > 0 ? positiveColorQuery : negativeColorQuery);\n    }\n\n    function getBorderColor(sign, model) {\n      return model.get(sign > 0 ? positiveBorderColorQuery : negativeBorderColorQuery);\n    }\n\n    var data = seriesModel.getData();\n    data.setVisual('legendSymbol', 'roundRect');\n\n    if (ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    var isLargeRender = seriesModel.pipelineContext.large;\n    return !isLargeRender && {\n      progress: function (params, data) {\n        var dataIndex;\n\n        while ((dataIndex = params.next()) != null) {\n          var itemModel = data.getItemModel(dataIndex);\n          var sign = data.getItemLayout(dataIndex).sign;\n          var style = itemModel.getItemStyle();\n          style.fill = getColor(sign, itemModel);\n          style.stroke = getBorderColor(sign, itemModel) || style.fill;\n          var existsStyle = data.ensureUniqueItemVisual(dataIndex, 'style');\n          extend(existsStyle, style);\n        }\n      }\n    };\n  }\n};\nexport default candlestickVisual;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { subPixelOptimize } from '../../util/graphic';\nimport createRenderPlanner from '../helper/createRenderPlanner';\nimport { parsePercent } from '../../util/number';\nimport { retrieve2 } from 'zrender/lib/core/util';\nvar LargeArr = typeof Float32Array !== 'undefined' ? Float32Array : Array;\nvar candlestickLayout = {\n  seriesType: 'candlestick',\n  plan: createRenderPlanner(),\n  reset: function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n    var data = seriesModel.getData();\n    var candleWidth = calculateCandleWidth(seriesModel, data);\n    var cDimIdx = 0;\n    var vDimIdx = 1;\n    var coordDims = ['x', 'y'];\n    var cDim = data.mapDimension(coordDims[cDimIdx]);\n    var vDims = data.mapDimensionsAll(coordDims[vDimIdx]);\n    var openDim = vDims[0];\n    var closeDim = vDims[1];\n    var lowestDim = vDims[2];\n    var highestDim = vDims[3];\n    data.setLayout({\n      candleWidth: candleWidth,\n      isSimpleBox: candleWidth <= 1.3\n    });\n\n    if (cDim == null || vDims.length < 4) {\n      return;\n    }\n\n    return {\n      progress: seriesModel.pipelineContext.large ? largeProgress : normalProgress\n    };\n\n    function normalProgress(params, data) {\n      var dataIndex;\n\n      while ((dataIndex = params.next()) != null) {\n        var axisDimVal = data.get(cDim, dataIndex);\n        var openVal = data.get(openDim, dataIndex);\n        var closeVal = data.get(closeDim, dataIndex);\n        var lowestVal = data.get(lowestDim, dataIndex);\n        var highestVal = data.get(highestDim, dataIndex);\n        var ocLow = Math.min(openVal, closeVal);\n        var ocHigh = Math.max(openVal, closeVal);\n        var ocLowPoint = getPoint(ocLow, axisDimVal);\n        var ocHighPoint = getPoint(ocHigh, axisDimVal);\n        var lowestPoint = getPoint(lowestVal, axisDimVal);\n        var highestPoint = getPoint(highestVal, axisDimVal);\n        var ends = [];\n        addBodyEnd(ends, ocHighPoint, 0);\n        addBodyEnd(ends, ocLowPoint, 1);\n        ends.push(subPixelOptimizePoint(highestPoint), subPixelOptimizePoint(ocHighPoint), subPixelOptimizePoint(lowestPoint), subPixelOptimizePoint(ocLowPoint));\n        data.setItemLayout(dataIndex, {\n          sign: getSign(data, dataIndex, openVal, closeVal, closeDim),\n          initBaseline: openVal > closeVal ? ocHighPoint[vDimIdx] : ocLowPoint[vDimIdx],\n          ends: ends,\n          brushRect: makeBrushRect(lowestVal, highestVal, axisDimVal)\n        });\n      }\n\n      function getPoint(val, axisDimVal) {\n        var p = [];\n        p[cDimIdx] = axisDimVal;\n        p[vDimIdx] = val;\n        return isNaN(axisDimVal) || isNaN(val) ? [NaN, NaN] : coordSys.dataToPoint(p);\n      }\n\n      function addBodyEnd(ends, point, start) {\n        var point1 = point.slice();\n        var point2 = point.slice();\n        point1[cDimIdx] = subPixelOptimize(point1[cDimIdx] + candleWidth / 2, 1, false);\n        point2[cDimIdx] = subPixelOptimize(point2[cDimIdx] - candleWidth / 2, 1, true);\n        start ? ends.push(point1, point2) : ends.push(point2, point1);\n      }\n\n      function makeBrushRect(lowestVal, highestVal, axisDimVal) {\n        var pmin = getPoint(lowestVal, axisDimVal);\n        var pmax = getPoint(highestVal, axisDimVal);\n        pmin[cDimIdx] -= candleWidth / 2;\n        pmax[cDimIdx] -= candleWidth / 2;\n        return {\n          x: pmin[0],\n          y: pmin[1],\n          width: vDimIdx ? candleWidth : pmax[0] - pmin[0],\n          height: vDimIdx ? pmax[1] - pmin[1] : candleWidth\n        };\n      }\n\n      function subPixelOptimizePoint(point) {\n        point[cDimIdx] = subPixelOptimize(point[cDimIdx], 1);\n        return point;\n      }\n    }\n\n    function largeProgress(params, data) {\n      var points = new LargeArr(params.count * 4);\n      var offset = 0;\n      var point;\n      var tmpIn = [];\n      var tmpOut = [];\n      var dataIndex;\n\n      while ((dataIndex = params.next()) != null) {\n        var axisDimVal = data.get(cDim, dataIndex);\n        var openVal = data.get(openDim, dataIndex);\n        var closeVal = data.get(closeDim, dataIndex);\n        var lowestVal = data.get(lowestDim, dataIndex);\n        var highestVal = data.get(highestDim, dataIndex);\n\n        if (isNaN(axisDimVal) || isNaN(lowestVal) || isNaN(highestVal)) {\n          points[offset++] = NaN;\n          offset += 3;\n          continue;\n        }\n\n        points[offset++] = getSign(data, dataIndex, openVal, closeVal, closeDim);\n        tmpIn[cDimIdx] = axisDimVal;\n        tmpIn[vDimIdx] = lowestVal;\n        point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n        points[offset++] = point ? point[0] : NaN;\n        points[offset++] = point ? point[1] : NaN;\n        tmpIn[vDimIdx] = highestVal;\n        point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n        points[offset++] = point ? point[1] : NaN;\n      }\n\n      data.setLayout('largePoints', points);\n    }\n  }\n};\n\nfunction getSign(data, dataIndex, openVal, closeVal, closeDim) {\n  var sign;\n\n  if (openVal > closeVal) {\n    sign = -1;\n  } else if (openVal < closeVal) {\n    sign = 1;\n  } else {\n    sign = dataIndex > 0 ? data.get(closeDim, dataIndex - 1) <= closeVal ? 1 : -1 : 1;\n  }\n\n  return sign;\n}\n\nfunction calculateCandleWidth(seriesModel, data) {\n  var baseAxis = seriesModel.getBaseAxis();\n  var extent;\n  var bandWidth = baseAxis.type === 'category' ? baseAxis.getBandWidth() : (extent = baseAxis.getExtent(), Math.abs(extent[1] - extent[0]) / data.count());\n  var barMaxWidth = parsePercent(retrieve2(seriesModel.get('barMaxWidth'), bandWidth), bandWidth);\n  var barMinWidth = parsePercent(retrieve2(seriesModel.get('barMinWidth'), 1), bandWidth);\n  var barWidth = seriesModel.get('barWidth');\n  return barWidth != null ? parsePercent(barWidth, bandWidth) : Math.max(Math.min(bandWidth / 2, barMaxWidth), barMinWidth);\n}\n\nexport default candlestickLayout;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport CandlestickView from './CandlestickView';\nimport CandlestickSeriesModel from './CandlestickSeries';\nimport preprocessor from './preprocessor';\nimport candlestickVisual from './candlestickVisual';\nimport candlestickLayout from './candlestickLayout';\nexport function install(registers) {\n  registers.registerChartView(CandlestickView);\n  registers.registerSeriesModel(CandlestickSeriesModel);\n  registers.registerPreprocessor(preprocessor);\n  registers.registerVisual(candlestickVisual);\n  registers.registerLayout(candlestickLayout);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { createSymbol } from '../../util/symbol';\nimport { Group } from '../../util/graphic';\nimport { enterEmphasis, leaveEmphasis, enableHoverEmphasis } from '../../util/states';\nimport { parsePercent } from '../../util/number';\nimport SymbolClz from './Symbol';\nvar EFFECT_RIPPLE_NUMBER = 3;\n\nfunction normalizeSymbolSize(symbolSize) {\n  if (!zrUtil.isArray(symbolSize)) {\n    symbolSize = [+symbolSize, +symbolSize];\n  }\n\n  return symbolSize;\n}\n\nfunction updateRipplePath(rippleGroup, effectCfg) {\n  var color = effectCfg.rippleEffectColor || effectCfg.color;\n  rippleGroup.eachChild(function (ripplePath) {\n    ripplePath.attr({\n      z: effectCfg.z,\n      zlevel: effectCfg.zlevel,\n      style: {\n        stroke: effectCfg.brushType === 'stroke' ? color : null,\n        fill: effectCfg.brushType === 'fill' ? color : null\n      }\n    });\n  });\n}\n\nvar EffectSymbol = function (_super) {\n  __extends(EffectSymbol, _super);\n\n  function EffectSymbol(data, idx) {\n    var _this = _super.call(this) || this;\n\n    var symbol = new SymbolClz(data, idx);\n    var rippleGroup = new Group();\n\n    _this.add(symbol);\n\n    _this.add(rippleGroup);\n\n    _this.updateData(data, idx);\n\n    return _this;\n  }\n\n  EffectSymbol.prototype.stopEffectAnimation = function () {\n    this.childAt(1).removeAll();\n  };\n\n  EffectSymbol.prototype.startEffectAnimation = function (effectCfg) {\n    var symbolType = effectCfg.symbolType;\n    var color = effectCfg.color;\n    var rippleGroup = this.childAt(1);\n\n    for (var i = 0; i < EFFECT_RIPPLE_NUMBER; i++) {\n      var ripplePath = createSymbol(symbolType, -1, -1, 2, 2, color);\n      ripplePath.attr({\n        style: {\n          strokeNoScale: true\n        },\n        z2: 99,\n        silent: true,\n        scaleX: 0.5,\n        scaleY: 0.5\n      });\n      var delay = -i / EFFECT_RIPPLE_NUMBER * effectCfg.period + effectCfg.effectOffset;\n      ripplePath.animate('', true).when(effectCfg.period, {\n        scale: [effectCfg.rippleScale / 2, effectCfg.rippleScale / 2]\n      }).delay(delay).start();\n      ripplePath.animateStyle(true).when(effectCfg.period, {\n        opacity: 0\n      }).delay(delay).start();\n      rippleGroup.add(ripplePath);\n    }\n\n    updateRipplePath(rippleGroup, effectCfg);\n  };\n\n  EffectSymbol.prototype.updateEffectAnimation = function (effectCfg) {\n    var oldEffectCfg = this._effectCfg;\n    var rippleGroup = this.childAt(1);\n    var DIFFICULT_PROPS = ['symbolType', 'period', 'rippleScale'];\n\n    for (var i = 0; i < DIFFICULT_PROPS.length; i++) {\n      var propName = DIFFICULT_PROPS[i];\n\n      if (oldEffectCfg[propName] !== effectCfg[propName]) {\n        this.stopEffectAnimation();\n        this.startEffectAnimation(effectCfg);\n        return;\n      }\n    }\n\n    updateRipplePath(rippleGroup, effectCfg);\n  };\n\n  EffectSymbol.prototype.highlight = function () {\n    enterEmphasis(this);\n  };\n\n  EffectSymbol.prototype.downplay = function () {\n    leaveEmphasis(this);\n  };\n\n  EffectSymbol.prototype.updateData = function (data, idx) {\n    var _this = this;\n\n    var seriesModel = data.hostModel;\n    this.childAt(0).updateData(data, idx);\n    var rippleGroup = this.childAt(1);\n    var itemModel = data.getItemModel(idx);\n    var symbolType = data.getItemVisual(idx, 'symbol');\n    var symbolSize = normalizeSymbolSize(data.getItemVisual(idx, 'symbolSize'));\n    var symbolStyle = data.getItemVisual(idx, 'style');\n    var color = symbolStyle && symbolStyle.fill;\n    rippleGroup.setScale(symbolSize);\n    rippleGroup.traverse(function (ripplePath) {\n      ripplePath.setStyle('fill', color);\n    });\n    var symbolOffset = itemModel.getShallow('symbolOffset');\n\n    if (symbolOffset) {\n      rippleGroup.x = parsePercent(symbolOffset[0], symbolSize[0]);\n      rippleGroup.y = parsePercent(symbolOffset[1], symbolSize[1]);\n    }\n\n    var symbolRotate = data.getItemVisual(idx, 'symbolRotate');\n    rippleGroup.rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\n    var effectCfg = {};\n    effectCfg.showEffectOn = seriesModel.get('showEffectOn');\n    effectCfg.rippleScale = itemModel.get(['rippleEffect', 'scale']);\n    effectCfg.brushType = itemModel.get(['rippleEffect', 'brushType']);\n    effectCfg.period = itemModel.get(['rippleEffect', 'period']) * 1000;\n    effectCfg.effectOffset = idx / data.count();\n    effectCfg.z = seriesModel.getShallow('z') || 0;\n    effectCfg.zlevel = seriesModel.getShallow('zlevel') || 0;\n    effectCfg.symbolType = symbolType;\n    effectCfg.color = color;\n    effectCfg.rippleEffectColor = itemModel.get(['rippleEffect', 'color']);\n    this.off('mouseover').off('mouseout').off('emphasis').off('normal');\n\n    if (effectCfg.showEffectOn === 'render') {\n      this._effectCfg ? this.updateEffectAnimation(effectCfg) : this.startEffectAnimation(effectCfg);\n      this._effectCfg = effectCfg;\n    } else {\n      this._effectCfg = null;\n      this.stopEffectAnimation();\n\n      this.onHoverStateChange = function (toState) {\n        if (toState === 'emphasis') {\n          if (effectCfg.showEffectOn !== 'render') {\n            _this.startEffectAnimation(effectCfg);\n          }\n        } else if (toState === 'normal') {\n          if (effectCfg.showEffectOn !== 'render') {\n            _this.stopEffectAnimation();\n          }\n        }\n      };\n    }\n\n    this._effectCfg = effectCfg;\n    enableHoverEmphasis(this);\n  };\n\n  ;\n\n  EffectSymbol.prototype.fadeOut = function (cb) {\n    this.off('mouseover').off('mouseout');\n    cb && cb();\n  };\n\n  ;\n  return EffectSymbol;\n}(Group);\n\nzrUtil.inherits(EffectSymbol, Group);\nexport default EffectSymbol;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SymbolDraw from '../helper/SymbolDraw';\nimport EffectSymbol from '../helper/EffectSymbol';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport pointsLayout from '../../layout/points';\nimport ChartView from '../../view/Chart';\n\nvar EffectScatterView = function (_super) {\n  __extends(EffectScatterView, _super);\n\n  function EffectScatterView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = EffectScatterView.type;\n    return _this;\n  }\n\n  EffectScatterView.prototype.init = function () {\n    this._symbolDraw = new SymbolDraw(EffectSymbol);\n  };\n\n  EffectScatterView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    var effectSymbolDraw = this._symbolDraw;\n    effectSymbolDraw.updateData(data);\n    this.group.add(effectSymbolDraw.group);\n  };\n\n  EffectScatterView.prototype.updateTransform = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    this.group.dirty();\n    var res = pointsLayout('').reset(seriesModel, ecModel, api);\n\n    if (res.progress) {\n      res.progress({\n        start: 0,\n        end: data.count(),\n        count: data.count()\n      }, data);\n    }\n\n    this._symbolDraw.updateLayout();\n  };\n\n  EffectScatterView.prototype._updateGroupTransform = function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys && coordSys.getRoamTransform) {\n      this.group.transform = matrix.clone(coordSys.getRoamTransform());\n      this.group.decomposeTransform();\n    }\n  };\n\n  EffectScatterView.prototype.remove = function (ecModel, api) {\n    this._symbolDraw && this._symbolDraw.remove(true);\n  };\n\n  EffectScatterView.type = 'effectScatter';\n  return EffectScatterView;\n}(ChartView);\n\nexport default EffectScatterView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListFromArray from '../helper/createListFromArray';\nimport SeriesModel from '../../model/Series';\n\nvar EffectScatterSeriesModel = function (_super) {\n  __extends(EffectScatterSeriesModel, _super);\n\n  function EffectScatterSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = EffectScatterSeriesModel.type;\n    _this.hasSymbolVisual = true;\n    return _this;\n  }\n\n  EffectScatterSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: true\n    });\n  };\n\n  EffectScatterSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n    return selectors.point(data.getItemLayout(dataIndex));\n  };\n\n  EffectScatterSeriesModel.type = 'series.effectScatter';\n  EffectScatterSeriesModel.dependencies = ['grid', 'polar'];\n  EffectScatterSeriesModel.defaultOption = {\n    coordinateSystem: 'cartesian2d',\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    effectType: 'ripple',\n    progressive: 0,\n    showEffectOn: 'render',\n    rippleEffect: {\n      period: 4,\n      scale: 2.5,\n      brushType: 'fill'\n    },\n    symbolSize: 10\n  };\n  return EffectScatterSeriesModel;\n}(SeriesModel);\n\nexport default EffectScatterSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport EffectScatterView from './EffectScatterView';\nimport EffectScatterSeriesModel from './EffectScatterSeries';\nimport layoutPoints from '../../layout/points';\nexport function install(registers) {\n  registers.registerChartView(EffectScatterView);\n  registers.registerSeriesModel(EffectScatterSeriesModel);\n  registers.registerLayout(layoutPoints('effectScatter'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport Line from './Line';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { createSymbol } from '../../util/symbol';\nimport * as vec2 from 'zrender/lib/core/vector';\nimport * as curveUtil from 'zrender/lib/core/curve';\n\nvar EffectLine = function (_super) {\n  __extends(EffectLine, _super);\n\n  function EffectLine(lineData, idx, seriesScope) {\n    var _this = _super.call(this) || this;\n\n    _this.add(_this.createLine(lineData, idx, seriesScope));\n\n    _this._updateEffectSymbol(lineData, idx);\n\n    return _this;\n  }\n\n  EffectLine.prototype.createLine = function (lineData, idx, seriesScope) {\n    return new Line(lineData, idx, seriesScope);\n  };\n\n  EffectLine.prototype._updateEffectSymbol = function (lineData, idx) {\n    var itemModel = lineData.getItemModel(idx);\n    var effectModel = itemModel.getModel('effect');\n    var size = effectModel.get('symbolSize');\n    var symbolType = effectModel.get('symbol');\n\n    if (!zrUtil.isArray(size)) {\n      size = [size, size];\n    }\n\n    var lineStyle = lineData.getItemVisual(idx, 'style');\n    var color = effectModel.get('color') || lineStyle && lineStyle.stroke;\n    var symbol = this.childAt(1);\n\n    if (this._symbolType !== symbolType) {\n      this.remove(symbol);\n      symbol = createSymbol(symbolType, -0.5, -0.5, 1, 1, color);\n      symbol.z2 = 100;\n      symbol.culling = true;\n      this.add(symbol);\n    }\n\n    if (!symbol) {\n      return;\n    }\n\n    symbol.setStyle('shadowColor', color);\n    symbol.setStyle(effectModel.getItemStyle(['color']));\n    symbol.scaleX = size[0];\n    symbol.scaleY = size[1];\n    symbol.setColor(color);\n    this._symbolType = symbolType;\n    this._symbolScale = size;\n\n    this._updateEffectAnimation(lineData, effectModel, idx);\n  };\n\n  EffectLine.prototype._updateEffectAnimation = function (lineData, effectModel, idx) {\n    var symbol = this.childAt(1);\n\n    if (!symbol) {\n      return;\n    }\n\n    var self = this;\n    var points = lineData.getItemLayout(idx);\n    var period = effectModel.get('period') * 1000;\n    var loop = effectModel.get('loop');\n    var constantSpeed = effectModel.get('constantSpeed');\n    var delayExpr = zrUtil.retrieve(effectModel.get('delay'), function (idx) {\n      return idx / lineData.count() * period / 3;\n    });\n    symbol.ignore = true;\n\n    this._updateAnimationPoints(symbol, points);\n\n    if (constantSpeed > 0) {\n      period = this._getLineLength(symbol) / constantSpeed * 1000;\n    }\n\n    if (period !== this._period || loop !== this._loop) {\n      symbol.stopAnimation();\n\n      if (period > 0) {\n        var delayNum = void 0;\n\n        if (typeof delayExpr === 'function') {\n          delayNum = delayExpr(idx);\n        } else {\n          delayNum = delayExpr;\n        }\n\n        if (symbol.__t > 0) {\n          delayNum = -period * symbol.__t;\n        }\n\n        symbol.__t = 0;\n        var animator = symbol.animate('', loop).when(period, {\n          __t: 1\n        }).delay(delayNum).during(function () {\n          self._updateSymbolPosition(symbol);\n        });\n\n        if (!loop) {\n          animator.done(function () {\n            self.remove(symbol);\n          });\n        }\n\n        animator.start();\n      }\n    }\n\n    this._period = period;\n    this._loop = loop;\n  };\n\n  EffectLine.prototype._getLineLength = function (symbol) {\n    return vec2.dist(symbol.__p1, symbol.__cp1) + vec2.dist(symbol.__cp1, symbol.__p2);\n  };\n\n  EffectLine.prototype._updateAnimationPoints = function (symbol, points) {\n    symbol.__p1 = points[0];\n    symbol.__p2 = points[1];\n    symbol.__cp1 = points[2] || [(points[0][0] + points[1][0]) / 2, (points[0][1] + points[1][1]) / 2];\n  };\n\n  EffectLine.prototype.updateData = function (lineData, idx, seriesScope) {\n    this.childAt(0).updateData(lineData, idx, seriesScope);\n\n    this._updateEffectSymbol(lineData, idx);\n  };\n\n  EffectLine.prototype._updateSymbolPosition = function (symbol) {\n    var p1 = symbol.__p1;\n    var p2 = symbol.__p2;\n    var cp1 = symbol.__cp1;\n    var t = symbol.__t;\n    var pos = [symbol.x, symbol.y];\n    var lastPos = pos.slice();\n    var quadraticAt = curveUtil.quadraticAt;\n    var quadraticDerivativeAt = curveUtil.quadraticDerivativeAt;\n    pos[0] = quadraticAt(p1[0], cp1[0], p2[0], t);\n    pos[1] = quadraticAt(p1[1], cp1[1], p2[1], t);\n    var tx = quadraticDerivativeAt(p1[0], cp1[0], p2[0], t);\n    var ty = quadraticDerivativeAt(p1[1], cp1[1], p2[1], t);\n    symbol.rotation = -Math.atan2(ty, tx) - Math.PI / 2;\n\n    if (this._symbolType === 'line' || this._symbolType === 'rect' || this._symbolType === 'roundRect') {\n      if (symbol.__lastT !== undefined && symbol.__lastT < symbol.__t) {\n        symbol.scaleY = vec2.dist(lastPos, pos) * 1.05;\n\n        if (t === 1) {\n          pos[0] = lastPos[0] + (pos[0] - lastPos[0]) / 2;\n          pos[1] = lastPos[1] + (pos[1] - lastPos[1]) / 2;\n        }\n      } else if (symbol.__lastT === 1) {\n        symbol.scaleY = 2 * vec2.dist(p1, pos);\n      } else {\n        symbol.scaleY = this._symbolScale[1];\n      }\n    }\n\n    symbol.__lastT = symbol.__t;\n    symbol.ignore = false;\n    symbol.x = pos[0];\n    symbol.y = pos[1];\n  };\n\n  EffectLine.prototype.updateLayout = function (lineData, idx) {\n    this.childAt(0).updateLayout(lineData, idx);\n    var effectModel = lineData.getItemModel(idx).getModel('effect');\n\n    this._updateEffectAnimation(lineData, effectModel, idx);\n  };\n\n  return EffectLine;\n}(graphic.Group);\n\nexport default EffectLine;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis } from '../../util/states';\n\nvar Polyline = function (_super) {\n  __extends(Polyline, _super);\n\n  function Polyline(lineData, idx, seriesScope) {\n    var _this = _super.call(this) || this;\n\n    _this._createPolyline(lineData, idx, seriesScope);\n\n    return _this;\n  }\n\n  Polyline.prototype._createPolyline = function (lineData, idx, seriesScope) {\n    var points = lineData.getItemLayout(idx);\n    var line = new graphic.Polyline({\n      shape: {\n        points: points\n      }\n    });\n    this.add(line);\n\n    this._updateCommonStl(lineData, idx, seriesScope);\n  };\n\n  ;\n\n  Polyline.prototype.updateData = function (lineData, idx, seriesScope) {\n    var seriesModel = lineData.hostModel;\n    var line = this.childAt(0);\n    var target = {\n      shape: {\n        points: lineData.getItemLayout(idx)\n      }\n    };\n    graphic.updateProps(line, target, seriesModel, idx);\n\n    this._updateCommonStl(lineData, idx, seriesScope);\n  };\n\n  ;\n\n  Polyline.prototype._updateCommonStl = function (lineData, idx, seriesScope) {\n    var line = this.childAt(0);\n    var itemModel = lineData.getItemModel(idx);\n    var hoverLineStyle = seriesScope && seriesScope.emphasisLineStyle;\n\n    if (!seriesScope || lineData.hasItemOption) {\n      hoverLineStyle = itemModel.getModel(['emphasis', 'lineStyle']).getLineStyle();\n    }\n\n    line.useStyle(lineData.getItemVisual(idx, 'style'));\n    line.style.fill = null;\n    line.style.strokeNoScale = true;\n    var lineEmphasisState = line.ensureState('emphasis');\n    lineEmphasisState.style = hoverLineStyle;\n    enableHoverEmphasis(this);\n  };\n\n  ;\n\n  Polyline.prototype.updateLayout = function (lineData, idx) {\n    var polyline = this.childAt(0);\n    polyline.setShape('points', lineData.getItemLayout(idx));\n  };\n\n  ;\n  return Polyline;\n}(graphic.Group);\n\nexport default Polyline;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Polyline from './Polyline';\nimport EffectLine from './EffectLine';\nimport * as vec2 from 'zrender/lib/core/vector';\n\nvar EffectPolyline = function (_super) {\n  __extends(EffectPolyline, _super);\n\n  function EffectPolyline() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this._lastFrame = 0;\n    _this._lastFramePercent = 0;\n    return _this;\n  }\n\n  EffectPolyline.prototype.createLine = function (lineData, idx, seriesScope) {\n    return new Polyline(lineData, idx, seriesScope);\n  };\n\n  ;\n\n  EffectPolyline.prototype._updateAnimationPoints = function (symbol, points) {\n    this._points = points;\n    var accLenArr = [0];\n    var len = 0;\n\n    for (var i = 1; i < points.length; i++) {\n      var p1 = points[i - 1];\n      var p2 = points[i];\n      len += vec2.dist(p1, p2);\n      accLenArr.push(len);\n    }\n\n    if (len === 0) {\n      this._length = 0;\n      return;\n    }\n\n    for (var i = 0; i < accLenArr.length; i++) {\n      accLenArr[i] /= len;\n    }\n\n    this._offsets = accLenArr;\n    this._length = len;\n  };\n\n  ;\n\n  EffectPolyline.prototype._getLineLength = function () {\n    return this._length;\n  };\n\n  ;\n\n  EffectPolyline.prototype._updateSymbolPosition = function (symbol) {\n    var t = symbol.__t;\n    var points = this._points;\n    var offsets = this._offsets;\n    var len = points.length;\n\n    if (!offsets) {\n      return;\n    }\n\n    var lastFrame = this._lastFrame;\n    var frame;\n\n    if (t < this._lastFramePercent) {\n      var start = Math.min(lastFrame + 1, len - 1);\n\n      for (frame = start; frame >= 0; frame--) {\n        if (offsets[frame] <= t) {\n          break;\n        }\n      }\n\n      frame = Math.min(frame, len - 2);\n    } else {\n      for (frame = lastFrame; frame < len; frame++) {\n        if (offsets[frame] > t) {\n          break;\n        }\n      }\n\n      frame = Math.min(frame - 1, len - 2);\n    }\n\n    var p = (t - offsets[frame]) / (offsets[frame + 1] - offsets[frame]);\n    var p0 = points[frame];\n    var p1 = points[frame + 1];\n    symbol.x = p0[0] * (1 - p) + p * p1[0];\n    symbol.y = p0[1] * (1 - p) + p * p1[1];\n    var tx = p1[0] - p0[0];\n    var ty = p1[1] - p0[1];\n    symbol.rotation = -Math.atan2(ty, tx) - Math.PI / 2;\n    this._lastFrame = frame;\n    this._lastFramePercent = t;\n    symbol.ignore = false;\n  };\n\n  ;\n  return EffectPolyline;\n}(EffectLine);\n\nexport default EffectPolyline;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport IncrementalDisplayable from 'zrender/lib/graphic/IncrementalDisplayable';\nimport * as lineContain from 'zrender/lib/contain/line';\nimport * as quadraticContain from 'zrender/lib/contain/quadratic';\nimport { getECData } from '../../util/innerStore';\n\nvar LargeLinesPathShape = function () {\n  function LargeLinesPathShape() {\n    this.polyline = false;\n    this.curveness = 0;\n    this.segs = [];\n  }\n\n  return LargeLinesPathShape;\n}();\n\nvar LargeLinesPath = function (_super) {\n  __extends(LargeLinesPath, _super);\n\n  function LargeLinesPath(opts) {\n    return _super.call(this, opts) || this;\n  }\n\n  LargeLinesPath.prototype.getDefaultStyle = function () {\n    return {\n      stroke: '#000',\n      fill: null\n    };\n  };\n\n  LargeLinesPath.prototype.getDefaultShape = function () {\n    return new LargeLinesPathShape();\n  };\n\n  LargeLinesPath.prototype.buildPath = function (ctx, shape) {\n    var segs = shape.segs;\n    var curveness = shape.curveness;\n\n    if (shape.polyline) {\n      for (var i = 0; i < segs.length;) {\n        var count = segs[i++];\n\n        if (count > 0) {\n          ctx.moveTo(segs[i++], segs[i++]);\n\n          for (var k = 1; k < count; k++) {\n            ctx.lineTo(segs[i++], segs[i++]);\n          }\n        }\n      }\n    } else {\n      for (var i = 0; i < segs.length;) {\n        var x0 = segs[i++];\n        var y0 = segs[i++];\n        var x1 = segs[i++];\n        var y1 = segs[i++];\n        ctx.moveTo(x0, y0);\n\n        if (curveness > 0) {\n          var x2 = (x0 + x1) / 2 - (y0 - y1) * curveness;\n          var y2 = (y0 + y1) / 2 - (x1 - x0) * curveness;\n          ctx.quadraticCurveTo(x2, y2, x1, y1);\n        } else {\n          ctx.lineTo(x1, y1);\n        }\n      }\n    }\n  };\n\n  LargeLinesPath.prototype.findDataIndex = function (x, y) {\n    var shape = this.shape;\n    var segs = shape.segs;\n    var curveness = shape.curveness;\n    var lineWidth = this.style.lineWidth;\n\n    if (shape.polyline) {\n      var dataIndex = 0;\n\n      for (var i = 0; i < segs.length;) {\n        var count = segs[i++];\n\n        if (count > 0) {\n          var x0 = segs[i++];\n          var y0 = segs[i++];\n\n          for (var k = 1; k < count; k++) {\n            var x1 = segs[i++];\n            var y1 = segs[i++];\n\n            if (lineContain.containStroke(x0, y0, x1, y1, lineWidth, x, y)) {\n              return dataIndex;\n            }\n          }\n        }\n\n        dataIndex++;\n      }\n    } else {\n      var dataIndex = 0;\n\n      for (var i = 0; i < segs.length;) {\n        var x0 = segs[i++];\n        var y0 = segs[i++];\n        var x1 = segs[i++];\n        var y1 = segs[i++];\n\n        if (curveness > 0) {\n          var x2 = (x0 + x1) / 2 - (y0 - y1) * curveness;\n          var y2 = (y0 + y1) / 2 - (x1 - x0) * curveness;\n\n          if (quadraticContain.containStroke(x0, y0, x2, y2, x1, y1, lineWidth, x, y)) {\n            return dataIndex;\n          }\n        } else {\n          if (lineContain.containStroke(x0, y0, x1, y1, lineWidth, x, y)) {\n            return dataIndex;\n          }\n        }\n\n        dataIndex++;\n      }\n    }\n\n    return -1;\n  };\n\n  return LargeLinesPath;\n}(graphic.Path);\n\nvar LargeLineDraw = function () {\n  function LargeLineDraw() {\n    this.group = new graphic.Group();\n  }\n\n  LargeLineDraw.prototype.isPersistent = function () {\n    return !this._incremental;\n  };\n\n  ;\n\n  LargeLineDraw.prototype.updateData = function (data) {\n    this.group.removeAll();\n    var lineEl = new LargeLinesPath({\n      rectHover: true,\n      cursor: 'default'\n    });\n    lineEl.setShape({\n      segs: data.getLayout('linesPoints')\n    });\n\n    this._setCommon(lineEl, data);\n\n    this.group.add(lineEl);\n    this._incremental = null;\n  };\n\n  ;\n\n  LargeLineDraw.prototype.incrementalPrepareUpdate = function (data) {\n    this.group.removeAll();\n\n    this._clearIncremental();\n\n    if (data.count() > 5e5) {\n      if (!this._incremental) {\n        this._incremental = new IncrementalDisplayable({\n          silent: true\n        });\n      }\n\n      this.group.add(this._incremental);\n    } else {\n      this._incremental = null;\n    }\n  };\n\n  ;\n\n  LargeLineDraw.prototype.incrementalUpdate = function (taskParams, data) {\n    var lineEl = new LargeLinesPath();\n    lineEl.setShape({\n      segs: data.getLayout('linesPoints')\n    });\n\n    this._setCommon(lineEl, data, !!this._incremental);\n\n    if (!this._incremental) {\n      lineEl.rectHover = true;\n      lineEl.cursor = 'default';\n      lineEl.__startIndex = taskParams.start;\n      this.group.add(lineEl);\n    } else {\n      this._incremental.addDisplayable(lineEl, true);\n    }\n  };\n\n  ;\n\n  LargeLineDraw.prototype.remove = function () {\n    this._clearIncremental();\n\n    this._incremental = null;\n    this.group.removeAll();\n  };\n\n  ;\n\n  LargeLineDraw.prototype._setCommon = function (lineEl, data, isIncremental) {\n    var hostModel = data.hostModel;\n    lineEl.setShape({\n      polyline: hostModel.get('polyline'),\n      curveness: hostModel.get(['lineStyle', 'curveness'])\n    });\n    lineEl.useStyle(hostModel.getModel('lineStyle').getLineStyle());\n    lineEl.style.strokeNoScale = true;\n    var style = data.getVisual('style');\n\n    if (style && style.stroke) {\n      lineEl.setStyle('stroke', style.stroke);\n    }\n\n    lineEl.setStyle('fill', null);\n\n    if (!isIncremental) {\n      var ecData_1 = getECData(lineEl);\n      ecData_1.seriesIndex = hostModel.seriesIndex;\n      lineEl.on('mousemove', function (e) {\n        ecData_1.dataIndex = null;\n        var dataIndex = lineEl.findDataIndex(e.offsetX, e.offsetY);\n\n        if (dataIndex > 0) {\n          ecData_1.dataIndex = dataIndex + lineEl.__startIndex;\n        }\n      });\n    }\n  };\n\n  ;\n\n  LargeLineDraw.prototype._clearIncremental = function () {\n    var incremental = this._incremental;\n\n    if (incremental) {\n      incremental.clearDisplaybles();\n    }\n  };\n\n  ;\n  return LargeLineDraw;\n}();\n\nexport default LargeLineDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport createRenderPlanner from '../helper/createRenderPlanner';\nvar linesLayout = {\n  seriesType: 'lines',\n  plan: createRenderPlanner(),\n  reset: function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n    var isPolyline = seriesModel.get('polyline');\n    var isLarge = seriesModel.pipelineContext.large;\n    return {\n      progress: function (params, lineData) {\n        var lineCoords = [];\n\n        if (isLarge) {\n          var points = void 0;\n          var segCount = params.end - params.start;\n\n          if (isPolyline) {\n            var totalCoordsCount = 0;\n\n            for (var i = params.start; i < params.end; i++) {\n              totalCoordsCount += seriesModel.getLineCoordsCount(i);\n            }\n\n            points = new Float32Array(segCount + totalCoordsCount * 2);\n          } else {\n            points = new Float32Array(segCount * 4);\n          }\n\n          var offset = 0;\n          var pt = [];\n\n          for (var i = params.start; i < params.end; i++) {\n            var len = seriesModel.getLineCoords(i, lineCoords);\n\n            if (isPolyline) {\n              points[offset++] = len;\n            }\n\n            for (var k = 0; k < len; k++) {\n              pt = coordSys.dataToPoint(lineCoords[k], false, pt);\n              points[offset++] = pt[0];\n              points[offset++] = pt[1];\n            }\n          }\n\n          lineData.setLayout('linesPoints', points);\n        } else {\n          for (var i = params.start; i < params.end; i++) {\n            var itemModel = lineData.getItemModel(i);\n            var len = seriesModel.getLineCoords(i, lineCoords);\n            var pts = [];\n\n            if (isPolyline) {\n              for (var j = 0; j < len; j++) {\n                pts.push(coordSys.dataToPoint(lineCoords[j]));\n              }\n            } else {\n              pts[0] = coordSys.dataToPoint(lineCoords[0]);\n              pts[1] = coordSys.dataToPoint(lineCoords[1]);\n              var curveness = itemModel.get(['lineStyle', 'curveness']);\n\n              if (+curveness) {\n                pts[2] = [(pts[0][0] + pts[1][0]) / 2 - (pts[0][1] - pts[1][1]) * curveness, (pts[0][1] + pts[1][1]) / 2 - (pts[1][0] - pts[0][0]) * curveness];\n              }\n            }\n\n            lineData.setItemLayout(i, pts);\n          }\n        }\n      }\n    };\n  }\n};\nexport default linesLayout;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport LineDraw from '../helper/LineDraw';\nimport EffectLine from '../helper/EffectLine';\nimport Line from '../helper/Line';\nimport Polyline from '../helper/Polyline';\nimport EffectPolyline from '../helper/EffectPolyline';\nimport LargeLineDraw from '../helper/LargeLineDraw';\nimport linesLayout from './linesLayout';\nimport { createClipPath } from '../helper/createClipPathFromCoordSys';\nimport ChartView from '../../view/Chart';\n\nvar LinesView = function (_super) {\n  __extends(LinesView, _super);\n\n  function LinesView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = LinesView.type;\n    return _this;\n  }\n\n  LinesView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n\n    var lineDraw = this._updateLineDraw(data, seriesModel);\n\n    var zlevel = seriesModel.get('zlevel');\n    var trailLength = seriesModel.get(['effect', 'trailLength']);\n    var zr = api.getZr();\n    var isSvg = zr.painter.getType() === 'svg';\n\n    if (!isSvg) {\n      zr.painter.getLayer(zlevel).clear(true);\n    }\n\n    if (this._lastZlevel != null && !isSvg) {\n      zr.configLayer(this._lastZlevel, {\n        motionBlur: false\n      });\n    }\n\n    if (this._showEffect(seriesModel) && trailLength) {\n      if (process.env.NODE_ENV !== 'production') {\n        var notInIndividual_1 = false;\n        ecModel.eachSeries(function (otherSeriesModel) {\n          if (otherSeriesModel !== seriesModel && otherSeriesModel.get('zlevel') === zlevel) {\n            notInIndividual_1 = true;\n          }\n        });\n        notInIndividual_1 && console.warn('Lines with trail effect should have an individual zlevel');\n      }\n\n      if (!isSvg) {\n        zr.configLayer(zlevel, {\n          motionBlur: true,\n          lastFrameAlpha: Math.max(Math.min(trailLength / 10 + 0.9, 1), 0)\n        });\n      }\n    }\n\n    lineDraw.updateData(data);\n    var clipPath = seriesModel.get('clip', true) && createClipPath(seriesModel.coordinateSystem, false, seriesModel);\n\n    if (clipPath) {\n      this.group.setClipPath(clipPath);\n    } else {\n      this.group.removeClipPath();\n    }\n\n    this._lastZlevel = zlevel;\n    this._finished = true;\n  };\n\n  LinesView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n\n    var lineDraw = this._updateLineDraw(data, seriesModel);\n\n    lineDraw.incrementalPrepareUpdate(data);\n\n    this._clearLayer(api);\n\n    this._finished = false;\n  };\n\n  LinesView.prototype.incrementalRender = function (taskParams, seriesModel, ecModel) {\n    this._lineDraw.incrementalUpdate(taskParams, seriesModel.getData());\n\n    this._finished = taskParams.end === seriesModel.getData().count();\n  };\n\n  LinesView.prototype.updateTransform = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    var pipelineContext = seriesModel.pipelineContext;\n\n    if (!this._finished || pipelineContext.large || pipelineContext.progressiveRender) {\n      return {\n        update: true\n      };\n    } else {\n      var res = linesLayout.reset(seriesModel, ecModel, api);\n\n      if (res.progress) {\n        res.progress({\n          start: 0,\n          end: data.count(),\n          count: data.count()\n        }, data);\n      }\n\n      this._lineDraw.updateLayout();\n\n      this._clearLayer(api);\n    }\n  };\n\n  LinesView.prototype._updateLineDraw = function (data, seriesModel) {\n    var lineDraw = this._lineDraw;\n\n    var hasEffect = this._showEffect(seriesModel);\n\n    var isPolyline = !!seriesModel.get('polyline');\n    var pipelineContext = seriesModel.pipelineContext;\n    var isLargeDraw = pipelineContext.large;\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (hasEffect && isLargeDraw) {\n        console.warn('Large lines not support effect');\n      }\n    }\n\n    if (!lineDraw || hasEffect !== this._hasEffet || isPolyline !== this._isPolyline || isLargeDraw !== this._isLargeDraw) {\n      if (lineDraw) {\n        lineDraw.remove();\n      }\n\n      lineDraw = this._lineDraw = isLargeDraw ? new LargeLineDraw() : new LineDraw(isPolyline ? hasEffect ? EffectPolyline : Polyline : hasEffect ? EffectLine : Line);\n      this._hasEffet = hasEffect;\n      this._isPolyline = isPolyline;\n      this._isLargeDraw = isLargeDraw;\n      this.group.removeAll();\n    }\n\n    this.group.add(lineDraw.group);\n    return lineDraw;\n  };\n\n  LinesView.prototype._showEffect = function (seriesModel) {\n    return !!seriesModel.get(['effect', 'show']);\n  };\n\n  LinesView.prototype._clearLayer = function (api) {\n    var zr = api.getZr();\n    var isSvg = zr.painter.getType() === 'svg';\n\n    if (!isSvg && this._lastZlevel != null) {\n      zr.painter.getLayer(this._lastZlevel).clear(true);\n    }\n  };\n\n  LinesView.prototype.remove = function (ecModel, api) {\n    this._lineDraw && this._lineDraw.remove();\n    this._lineDraw = null;\n\n    this._clearLayer(api);\n  };\n\n  LinesView.type = 'lines';\n  return LinesView;\n}(ChartView);\n\nexport default LinesView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport List from '../../data/List';\nimport { concatArray, mergeAll, map } from 'zrender/lib/core/util';\nimport CoordinateSystem from '../../core/CoordinateSystem';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup';\nvar Uint32Arr = typeof Uint32Array === 'undefined' ? Array : Uint32Array;\nvar Float64Arr = typeof Float64Array === 'undefined' ? Array : Float64Array;\n\nfunction compatEc2(seriesOpt) {\n  var data = seriesOpt.data;\n\n  if (data && data[0] && data[0][0] && data[0][0].coord) {\n    if (process.env.NODE_ENV !== 'production') {\n      console.warn('Lines data configuration has been changed to' + ' { coords:[[1,2],[2,3]] }');\n    }\n\n    seriesOpt.data = map(data, function (itemOpt) {\n      var coords = [itemOpt[0].coord, itemOpt[1].coord];\n      var target = {\n        coords: coords\n      };\n\n      if (itemOpt[0].name) {\n        target.fromName = itemOpt[0].name;\n      }\n\n      if (itemOpt[1].name) {\n        target.toName = itemOpt[1].name;\n      }\n\n      return mergeAll([target, itemOpt[0], itemOpt[1]]);\n    });\n  }\n}\n\nvar LinesSeriesModel = function (_super) {\n  __extends(LinesSeriesModel, _super);\n\n  function LinesSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = LinesSeriesModel.type;\n    _this.visualStyleAccessPath = 'lineStyle';\n    _this.visualDrawType = 'stroke';\n    return _this;\n  }\n\n  LinesSeriesModel.prototype.init = function (option) {\n    option.data = option.data || [];\n    compatEc2(option);\n\n    var result = this._processFlatCoordsArray(option.data);\n\n    this._flatCoords = result.flatCoords;\n    this._flatCoordsOffset = result.flatCoordsOffset;\n\n    if (result.flatCoords) {\n      option.data = new Float32Array(result.count);\n    }\n\n    _super.prototype.init.apply(this, arguments);\n  };\n\n  LinesSeriesModel.prototype.mergeOption = function (option) {\n    compatEc2(option);\n\n    if (option.data) {\n      var result = this._processFlatCoordsArray(option.data);\n\n      this._flatCoords = result.flatCoords;\n      this._flatCoordsOffset = result.flatCoordsOffset;\n\n      if (result.flatCoords) {\n        option.data = new Float32Array(result.count);\n      }\n    }\n\n    _super.prototype.mergeOption.apply(this, arguments);\n  };\n\n  LinesSeriesModel.prototype.appendData = function (params) {\n    var result = this._processFlatCoordsArray(params.data);\n\n    if (result.flatCoords) {\n      if (!this._flatCoords) {\n        this._flatCoords = result.flatCoords;\n        this._flatCoordsOffset = result.flatCoordsOffset;\n      } else {\n        this._flatCoords = concatArray(this._flatCoords, result.flatCoords);\n        this._flatCoordsOffset = concatArray(this._flatCoordsOffset, result.flatCoordsOffset);\n      }\n\n      params.data = new Float32Array(result.count);\n    }\n\n    this.getRawData().appendData(params.data);\n  };\n\n  LinesSeriesModel.prototype._getCoordsFromItemModel = function (idx) {\n    var itemModel = this.getData().getItemModel(idx);\n    var coords = itemModel.option instanceof Array ? itemModel.option : itemModel.getShallow('coords');\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!(coords instanceof Array && coords.length > 0 && coords[0] instanceof Array)) {\n        throw new Error('Invalid coords ' + JSON.stringify(coords) + '. Lines must have 2d coords array in data item.');\n      }\n    }\n\n    return coords;\n  };\n\n  LinesSeriesModel.prototype.getLineCoordsCount = function (idx) {\n    if (this._flatCoordsOffset) {\n      return this._flatCoordsOffset[idx * 2 + 1];\n    } else {\n      return this._getCoordsFromItemModel(idx).length;\n    }\n  };\n\n  LinesSeriesModel.prototype.getLineCoords = function (idx, out) {\n    if (this._flatCoordsOffset) {\n      var offset = this._flatCoordsOffset[idx * 2];\n      var len = this._flatCoordsOffset[idx * 2 + 1];\n\n      for (var i = 0; i < len; i++) {\n        out[i] = out[i] || [];\n        out[i][0] = this._flatCoords[offset + i * 2];\n        out[i][1] = this._flatCoords[offset + i * 2 + 1];\n      }\n\n      return len;\n    } else {\n      var coords = this._getCoordsFromItemModel(idx);\n\n      for (var i = 0; i < coords.length; i++) {\n        out[i] = out[i] || [];\n        out[i][0] = coords[i][0];\n        out[i][1] = coords[i][1];\n      }\n\n      return coords.length;\n    }\n  };\n\n  LinesSeriesModel.prototype._processFlatCoordsArray = function (data) {\n    var startOffset = 0;\n\n    if (this._flatCoords) {\n      startOffset = this._flatCoords.length;\n    }\n\n    if (typeof data[0] === 'number') {\n      var len = data.length;\n      var coordsOffsetAndLenStorage = new Uint32Arr(len);\n      var coordsStorage = new Float64Arr(len);\n      var coordsCursor = 0;\n      var offsetCursor = 0;\n      var dataCount = 0;\n\n      for (var i = 0; i < len;) {\n        dataCount++;\n        var count = data[i++];\n        coordsOffsetAndLenStorage[offsetCursor++] = coordsCursor + startOffset;\n        coordsOffsetAndLenStorage[offsetCursor++] = count;\n\n        for (var k = 0; k < count; k++) {\n          var x = data[i++];\n          var y = data[i++];\n          coordsStorage[coordsCursor++] = x;\n          coordsStorage[coordsCursor++] = y;\n\n          if (i > len) {\n            if (process.env.NODE_ENV !== 'production') {\n              throw new Error('Invalid data format.');\n            }\n          }\n        }\n      }\n\n      return {\n        flatCoordsOffset: new Uint32Array(coordsOffsetAndLenStorage.buffer, 0, offsetCursor),\n        flatCoords: coordsStorage,\n        count: dataCount\n      };\n    }\n\n    return {\n      flatCoordsOffset: null,\n      flatCoords: null,\n      count: data.length\n    };\n  };\n\n  LinesSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    if (process.env.NODE_ENV !== 'production') {\n      var CoordSys = CoordinateSystem.get(option.coordinateSystem);\n\n      if (!CoordSys) {\n        throw new Error('Unkown coordinate system ' + option.coordinateSystem);\n      }\n    }\n\n    var lineData = new List(['value'], this);\n    lineData.hasItemOption = false;\n    lineData.initData(option.data, [], function (dataItem, dimName, dataIndex, dimIndex) {\n      if (dataItem instanceof Array) {\n        return NaN;\n      } else {\n        lineData.hasItemOption = true;\n        var value = dataItem.value;\n\n        if (value != null) {\n          return value instanceof Array ? value[dimIndex] : value;\n        }\n      }\n    });\n    return lineData;\n  };\n\n  LinesSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var data = this.getData();\n    var itemModel = data.getItemModel(dataIndex);\n    var name = itemModel.get('name');\n\n    if (name) {\n      return name;\n    }\n\n    var fromName = itemModel.get('fromName');\n    var toName = itemModel.get('toName');\n    var nameArr = [];\n    fromName != null && nameArr.push(fromName);\n    toName != null && nameArr.push(toName);\n    return createTooltipMarkup('nameValue', {\n      name: nameArr.join(' > ')\n    });\n  };\n\n  LinesSeriesModel.prototype.preventIncremental = function () {\n    return !!this.get(['effect', 'show']);\n  };\n\n  LinesSeriesModel.prototype.getProgressive = function () {\n    var progressive = this.option.progressive;\n\n    if (progressive == null) {\n      return this.option.large ? 1e4 : this.get('progressive');\n    }\n\n    return progressive;\n  };\n\n  LinesSeriesModel.prototype.getProgressiveThreshold = function () {\n    var progressiveThreshold = this.option.progressiveThreshold;\n\n    if (progressiveThreshold == null) {\n      return this.option.large ? 2e4 : this.get('progressiveThreshold');\n    }\n\n    return progressiveThreshold;\n  };\n\n  LinesSeriesModel.type = 'series.lines';\n  LinesSeriesModel.dependencies = ['grid', 'polar', 'geo', 'calendar'];\n  LinesSeriesModel.defaultOption = {\n    coordinateSystem: 'geo',\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    xAxisIndex: 0,\n    yAxisIndex: 0,\n    symbol: ['none', 'none'],\n    symbolSize: [10, 10],\n    geoIndex: 0,\n    effect: {\n      show: false,\n      period: 4,\n      constantSpeed: 0,\n      symbol: 'circle',\n      symbolSize: 3,\n      loop: true,\n      trailLength: 0.2\n    },\n    large: false,\n    largeThreshold: 2000,\n    polyline: false,\n    clip: true,\n    label: {\n      show: false,\n      position: 'end'\n    },\n    lineStyle: {\n      opacity: 0.5\n    }\n  };\n  return LinesSeriesModel;\n}(SeriesModel);\n\nexport default LinesSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nfunction normalize(a) {\n  if (!(a instanceof Array)) {\n    a = [a, a];\n  }\n\n  return a;\n}\n\nvar linesVisual = {\n  seriesType: 'lines',\n  reset: function (seriesModel) {\n    var symbolType = normalize(seriesModel.get('symbol'));\n    var symbolSize = normalize(seriesModel.get('symbolSize'));\n    var data = seriesModel.getData();\n    data.setVisual('fromSymbol', symbolType && symbolType[0]);\n    data.setVisual('toSymbol', symbolType && symbolType[1]);\n    data.setVisual('fromSymbolSize', symbolSize && symbolSize[0]);\n    data.setVisual('toSymbolSize', symbolSize && symbolSize[1]);\n\n    function dataEach(data, idx) {\n      var itemModel = data.getItemModel(idx);\n      var symbolType = normalize(itemModel.getShallow('symbol', true));\n      var symbolSize = normalize(itemModel.getShallow('symbolSize', true));\n      symbolType[0] && data.setItemVisual(idx, 'fromSymbol', symbolType[0]);\n      symbolType[1] && data.setItemVisual(idx, 'toSymbol', symbolType[1]);\n      symbolSize[0] && data.setItemVisual(idx, 'fromSymbolSize', symbolSize[0]);\n      symbolSize[1] && data.setItemVisual(idx, 'toSymbolSize', symbolSize[1]);\n    }\n\n    return {\n      dataEach: data.hasItemOption ? dataEach : null\n    };\n  }\n};\nexport default linesVisual;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport LinesView from './LinesView';\nimport LinesSeriesModel from './LinesSeries';\nimport linesLayout from './linesLayout';\nimport linesVisual from './linesVisual';\nexport function install(registers) {\n  registers.registerChartView(LinesView);\n  registers.registerSeriesModel(LinesSeriesModel);\n  registers.registerLayout(linesLayout);\n  registers.registerVisual(linesVisual);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar GRADIENT_LEVELS = 256;\n\nvar HeatmapLayer = function () {\n  function HeatmapLayer() {\n    this.blurSize = 30;\n    this.pointSize = 20;\n    this.maxOpacity = 1;\n    this.minOpacity = 0;\n    this._gradientPixels = {\n      inRange: null,\n      outOfRange: null\n    };\n    var canvas = zrUtil.createCanvas();\n    this.canvas = canvas;\n  }\n\n  HeatmapLayer.prototype.update = function (data, width, height, normalize, colorFunc, isInRange) {\n    var brush = this._getBrush();\n\n    var gradientInRange = this._getGradient(colorFunc, 'inRange');\n\n    var gradientOutOfRange = this._getGradient(colorFunc, 'outOfRange');\n\n    var r = this.pointSize + this.blurSize;\n    var canvas = this.canvas;\n    var ctx = canvas.getContext('2d');\n    var len = data.length;\n    canvas.width = width;\n    canvas.height = height;\n\n    for (var i = 0; i < len; ++i) {\n      var p = data[i];\n      var x = p[0];\n      var y = p[1];\n      var value = p[2];\n      var alpha = normalize(value);\n      ctx.globalAlpha = alpha;\n      ctx.drawImage(brush, x - r, y - r);\n    }\n\n    if (!canvas.width || !canvas.height) {\n      return canvas;\n    }\n\n    var imageData = ctx.getImageData(0, 0, canvas.width, canvas.height);\n    var pixels = imageData.data;\n    var offset = 0;\n    var pixelLen = pixels.length;\n    var minOpacity = this.minOpacity;\n    var maxOpacity = this.maxOpacity;\n    var diffOpacity = maxOpacity - minOpacity;\n\n    while (offset < pixelLen) {\n      var alpha = pixels[offset + 3] / 256;\n      var gradientOffset = Math.floor(alpha * (GRADIENT_LEVELS - 1)) * 4;\n\n      if (alpha > 0) {\n        var gradient = isInRange(alpha) ? gradientInRange : gradientOutOfRange;\n        alpha > 0 && (alpha = alpha * diffOpacity + minOpacity);\n        pixels[offset++] = gradient[gradientOffset];\n        pixels[offset++] = gradient[gradientOffset + 1];\n        pixels[offset++] = gradient[gradientOffset + 2];\n        pixels[offset++] = gradient[gradientOffset + 3] * alpha * 256;\n      } else {\n        offset += 4;\n      }\n    }\n\n    ctx.putImageData(imageData, 0, 0);\n    return canvas;\n  };\n\n  HeatmapLayer.prototype._getBrush = function () {\n    var brushCanvas = this._brushCanvas || (this._brushCanvas = zrUtil.createCanvas());\n    var r = this.pointSize + this.blurSize;\n    var d = r * 2;\n    brushCanvas.width = d;\n    brushCanvas.height = d;\n    var ctx = brushCanvas.getContext('2d');\n    ctx.clearRect(0, 0, d, d);\n    ctx.shadowOffsetX = d;\n    ctx.shadowBlur = this.blurSize;\n    ctx.shadowColor = '#000';\n    ctx.beginPath();\n    ctx.arc(-r, r, this.pointSize, 0, Math.PI * 2, true);\n    ctx.closePath();\n    ctx.fill();\n    return brushCanvas;\n  };\n\n  HeatmapLayer.prototype._getGradient = function (colorFunc, state) {\n    var gradientPixels = this._gradientPixels;\n    var pixelsSingleState = gradientPixels[state] || (gradientPixels[state] = new Uint8ClampedArray(256 * 4));\n    var color = [0, 0, 0, 0];\n    var off = 0;\n\n    for (var i = 0; i < 256; i++) {\n      colorFunc[state](i / 255, true, color);\n      pixelsSingleState[off++] = color[0];\n      pixelsSingleState[off++] = color[1];\n      pixelsSingleState[off++] = color[2];\n      pixelsSingleState[off++] = color[3];\n    }\n\n    return pixelsSingleState;\n  };\n\n  return HeatmapLayer;\n}();\n\nexport default HeatmapLayer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis } from '../../util/states';\nimport HeatmapLayer from './HeatmapLayer';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ChartView from '../../view/Chart';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\n\nfunction getIsInPiecewiseRange(dataExtent, pieceList, selected) {\n  var dataSpan = dataExtent[1] - dataExtent[0];\n  pieceList = zrUtil.map(pieceList, function (piece) {\n    return {\n      interval: [(piece.interval[0] - dataExtent[0]) / dataSpan, (piece.interval[1] - dataExtent[0]) / dataSpan]\n    };\n  });\n  var len = pieceList.length;\n  var lastIndex = 0;\n  return function (val) {\n    var i;\n\n    for (i = lastIndex; i < len; i++) {\n      var interval = pieceList[i].interval;\n\n      if (interval[0] <= val && val <= interval[1]) {\n        lastIndex = i;\n        break;\n      }\n    }\n\n    if (i === len) {\n      for (i = lastIndex - 1; i >= 0; i--) {\n        var interval = pieceList[i].interval;\n\n        if (interval[0] <= val && val <= interval[1]) {\n          lastIndex = i;\n          break;\n        }\n      }\n    }\n\n    return i >= 0 && i < len && selected[i];\n  };\n}\n\nfunction getIsInContinuousRange(dataExtent, range) {\n  var dataSpan = dataExtent[1] - dataExtent[0];\n  range = [(range[0] - dataExtent[0]) / dataSpan, (range[1] - dataExtent[0]) / dataSpan];\n  return function (val) {\n    return val >= range[0] && val <= range[1];\n  };\n}\n\nfunction isGeoCoordSys(coordSys) {\n  var dimensions = coordSys.dimensions;\n  return dimensions[0] === 'lng' && dimensions[1] === 'lat';\n}\n\nvar HeatmapView = function (_super) {\n  __extends(HeatmapView, _super);\n\n  function HeatmapView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = HeatmapView.type;\n    return _this;\n  }\n\n  HeatmapView.prototype.render = function (seriesModel, ecModel, api) {\n    var visualMapOfThisSeries;\n    ecModel.eachComponent('visualMap', function (visualMap) {\n      visualMap.eachTargetSeries(function (targetSeries) {\n        if (targetSeries === seriesModel) {\n          visualMapOfThisSeries = visualMap;\n        }\n      });\n    });\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!visualMapOfThisSeries) {\n        throw new Error('Heatmap must use with visualMap');\n      }\n    }\n\n    this.group.removeAll();\n    this._incrementalDisplayable = null;\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys.type === 'cartesian2d' || coordSys.type === 'calendar') {\n      this._renderOnCartesianAndCalendar(seriesModel, api, 0, seriesModel.getData().count());\n    } else if (isGeoCoordSys(coordSys)) {\n      this._renderOnGeo(coordSys, seriesModel, visualMapOfThisSeries, api);\n    }\n  };\n\n  HeatmapView.prototype.incrementalPrepareRender = function (seriesModel, ecModel, api) {\n    this.group.removeAll();\n  };\n\n  HeatmapView.prototype.incrementalRender = function (params, seriesModel, ecModel, api) {\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys) {\n      if (isGeoCoordSys(coordSys)) {\n        this.render(seriesModel, ecModel, api);\n      } else {\n        this._renderOnCartesianAndCalendar(seriesModel, api, params.start, params.end, true);\n      }\n    }\n  };\n\n  HeatmapView.prototype._renderOnCartesianAndCalendar = function (seriesModel, api, start, end, incremental) {\n    var coordSys = seriesModel.coordinateSystem;\n    var width;\n    var height;\n    var xAxisExtent;\n    var yAxisExtent;\n\n    if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n      var xAxis = coordSys.getAxis('x');\n      var yAxis = coordSys.getAxis('y');\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (!(xAxis.type === 'category' && yAxis.type === 'category')) {\n          throw new Error('Heatmap on cartesian must have two category axes');\n        }\n\n        if (!(xAxis.onBand && yAxis.onBand)) {\n          throw new Error('Heatmap on cartesian must have two axes with boundaryGap true');\n        }\n      }\n\n      width = xAxis.getBandWidth();\n      height = yAxis.getBandWidth();\n      xAxisExtent = xAxis.scale.getExtent();\n      yAxisExtent = yAxis.scale.getExtent();\n    }\n\n    var group = this.group;\n    var data = seriesModel.getData();\n    var emphasisStyle = seriesModel.getModel(['emphasis', 'itemStyle']).getItemStyle();\n    var blurStyle = seriesModel.getModel(['blur', 'itemStyle']).getItemStyle();\n    var selectStyle = seriesModel.getModel(['select', 'itemStyle']).getItemStyle();\n    var labelStatesModels = getLabelStatesModels(seriesModel);\n    var focus = seriesModel.get(['emphasis', 'focus']);\n    var blurScope = seriesModel.get(['emphasis', 'blurScope']);\n    var dataDims = isCoordinateSystemType(coordSys, 'cartesian2d') ? [data.mapDimension('x'), data.mapDimension('y'), data.mapDimension('value')] : [data.mapDimension('time'), data.mapDimension('value')];\n\n    for (var idx = start; idx < end; idx++) {\n      var rect = void 0;\n      var style = data.getItemVisual(idx, 'style');\n\n      if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n        var dataDimX = data.get(dataDims[0], idx);\n        var dataDimY = data.get(dataDims[1], idx);\n\n        if (isNaN(data.get(dataDims[2], idx)) || dataDimX < xAxisExtent[0] || dataDimX > xAxisExtent[1] || dataDimY < yAxisExtent[0] || dataDimY > yAxisExtent[1]) {\n          continue;\n        }\n\n        var point = coordSys.dataToPoint([dataDimX, dataDimY]);\n        rect = new graphic.Rect({\n          shape: {\n            x: Math.floor(Math.round(point[0]) - width / 2),\n            y: Math.floor(Math.round(point[1]) - height / 2),\n            width: Math.ceil(width),\n            height: Math.ceil(height)\n          },\n          style: style\n        });\n      } else {\n        if (isNaN(data.get(dataDims[1], idx))) {\n          continue;\n        }\n\n        rect = new graphic.Rect({\n          z2: 1,\n          shape: coordSys.dataToRect([data.get(dataDims[0], idx)]).contentShape,\n          style: style\n        });\n      }\n\n      var itemModel = data.getItemModel(idx);\n\n      if (data.hasItemOption) {\n        var emphasisModel = itemModel.getModel('emphasis');\n        emphasisStyle = emphasisModel.getModel('itemStyle').getItemStyle();\n        blurStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\n        selectStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\n        focus = emphasisModel.get('focus');\n        blurScope = emphasisModel.get('blurScope');\n        labelStatesModels = getLabelStatesModels(itemModel);\n      }\n\n      var rawValue = seriesModel.getRawValue(idx);\n      var defaultText = '-';\n\n      if (rawValue && rawValue[2] != null) {\n        defaultText = rawValue[2] + '';\n      }\n\n      setLabelStyle(rect, labelStatesModels, {\n        labelFetcher: seriesModel,\n        labelDataIndex: idx,\n        defaultOpacity: style.opacity,\n        defaultText: defaultText\n      });\n      rect.ensureState('emphasis').style = emphasisStyle;\n      rect.ensureState('blur').style = blurStyle;\n      rect.ensureState('select').style = selectStyle;\n      enableHoverEmphasis(rect, focus, blurScope);\n      rect.incremental = incremental;\n\n      if (incremental) {\n        rect.states.emphasis.hoverLayer = true;\n      }\n\n      group.add(rect);\n      data.setItemGraphicEl(idx, rect);\n    }\n  };\n\n  HeatmapView.prototype._renderOnGeo = function (geo, seriesModel, visualMapModel, api) {\n    var inRangeVisuals = visualMapModel.targetVisuals.inRange;\n    var outOfRangeVisuals = visualMapModel.targetVisuals.outOfRange;\n    var data = seriesModel.getData();\n    var hmLayer = this._hmLayer || this._hmLayer || new HeatmapLayer();\n    hmLayer.blurSize = seriesModel.get('blurSize');\n    hmLayer.pointSize = seriesModel.get('pointSize');\n    hmLayer.minOpacity = seriesModel.get('minOpacity');\n    hmLayer.maxOpacity = seriesModel.get('maxOpacity');\n    var rect = geo.getViewRect().clone();\n    var roamTransform = geo.getRoamTransform();\n    rect.applyTransform(roamTransform);\n    var x = Math.max(rect.x, 0);\n    var y = Math.max(rect.y, 0);\n    var x2 = Math.min(rect.width + rect.x, api.getWidth());\n    var y2 = Math.min(rect.height + rect.y, api.getHeight());\n    var width = x2 - x;\n    var height = y2 - y;\n    var dims = [data.mapDimension('lng'), data.mapDimension('lat'), data.mapDimension('value')];\n    var points = data.mapArray(dims, function (lng, lat, value) {\n      var pt = geo.dataToPoint([lng, lat]);\n      pt[0] -= x;\n      pt[1] -= y;\n      pt.push(value);\n      return pt;\n    });\n    var dataExtent = visualMapModel.getExtent();\n    var isInRange = visualMapModel.type === 'visualMap.continuous' ? getIsInContinuousRange(dataExtent, visualMapModel.option.range) : getIsInPiecewiseRange(dataExtent, visualMapModel.getPieceList(), visualMapModel.option.selected);\n    hmLayer.update(points, width, height, inRangeVisuals.color.getNormalizer(), {\n      inRange: inRangeVisuals.color.getColorMapper(),\n      outOfRange: outOfRangeVisuals.color.getColorMapper()\n    }, isInRange);\n    var img = new graphic.Image({\n      style: {\n        width: width,\n        height: height,\n        x: x,\n        y: y,\n        image: hmLayer.canvas\n      },\n      silent: true\n    });\n    this.group.add(img);\n  };\n\n  HeatmapView.type = 'heatmap';\n  return HeatmapView;\n}(ChartView);\n\nexport default HeatmapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport createListFromArray from '../helper/createListFromArray';\nimport CoordinateSystem from '../../core/CoordinateSystem';\n\nvar HeatmapSeriesModel = function (_super) {\n  __extends(HeatmapSeriesModel, _super);\n\n  function HeatmapSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = HeatmapSeriesModel.type;\n    return _this;\n  }\n\n  HeatmapSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListFromArray(this.getSource(), this, {\n      generateCoord: 'value'\n    });\n  };\n\n  HeatmapSeriesModel.prototype.preventIncremental = function () {\n    var coordSysCreator = CoordinateSystem.get(this.get('coordinateSystem'));\n\n    if (coordSysCreator && coordSysCreator.dimensions) {\n      return coordSysCreator.dimensions[0] === 'lng' && coordSysCreator.dimensions[1] === 'lat';\n    }\n  };\n\n  HeatmapSeriesModel.type = 'series.heatmap';\n  HeatmapSeriesModel.dependencies = ['grid', 'geo', 'calendar'];\n  HeatmapSeriesModel.defaultOption = {\n    coordinateSystem: 'cartesian2d',\n    zlevel: 0,\n    z: 2,\n    geoIndex: 0,\n    blurSize: 30,\n    pointSize: 20,\n    maxOpacity: 1,\n    minOpacity: 0,\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    }\n  };\n  return HeatmapSeriesModel;\n}(SeriesModel);\n\nexport default HeatmapSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport HeatmapView from './HeatmapView';\nimport HeatmapSeriesModel from './HeatmapSeries';\nexport function install(registers) {\n  registers.registerChartView(HeatmapView);\n  registers.registerSeriesModel(HeatmapSeriesModel);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis } from '../../util/states';\nimport { createSymbol } from '../../util/symbol';\nimport { parsePercent, isNumeric } from '../../util/number';\nimport ChartView from '../../view/Chart';\nimport { getDefaultLabel } from '../helper/labelHelper';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport ZRImage from 'zrender/lib/graphic/Image';\nimport { getECData } from '../../util/innerStore';\nvar BAR_BORDER_WIDTH_QUERY = ['itemStyle', 'borderWidth'];\nvar LAYOUT_ATTRS = [{\n  xy: 'x',\n  wh: 'width',\n  index: 0,\n  posDesc: ['left', 'right']\n}, {\n  xy: 'y',\n  wh: 'height',\n  index: 1,\n  posDesc: ['top', 'bottom']\n}];\nvar pathForLineWidth = new graphic.Circle();\n\nvar PictorialBarView = function (_super) {\n  __extends(PictorialBarView, _super);\n\n  function PictorialBarView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = PictorialBarView.type;\n    return _this;\n  }\n\n  PictorialBarView.prototype.render = function (seriesModel, ecModel, api) {\n    var group = this.group;\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var cartesian = seriesModel.coordinateSystem;\n    var baseAxis = cartesian.getBaseAxis();\n    var isHorizontal = baseAxis.isHorizontal();\n    var coordSysRect = cartesian.master.getRect();\n    var opt = {\n      ecSize: {\n        width: api.getWidth(),\n        height: api.getHeight()\n      },\n      seriesModel: seriesModel,\n      coordSys: cartesian,\n      coordSysExtent: [[coordSysRect.x, coordSysRect.x + coordSysRect.width], [coordSysRect.y, coordSysRect.y + coordSysRect.height]],\n      isHorizontal: isHorizontal,\n      valueDim: LAYOUT_ATTRS[+isHorizontal],\n      categoryDim: LAYOUT_ATTRS[1 - +isHorizontal]\n    };\n    data.diff(oldData).add(function (dataIndex) {\n      if (!data.hasValue(dataIndex)) {\n        return;\n      }\n\n      var itemModel = getItemModel(data, dataIndex);\n      var symbolMeta = getSymbolMeta(data, dataIndex, itemModel, opt);\n      var bar = createBar(data, opt, symbolMeta);\n      data.setItemGraphicEl(dataIndex, bar);\n      group.add(bar);\n      updateCommon(bar, opt, symbolMeta);\n    }).update(function (newIndex, oldIndex) {\n      var bar = oldData.getItemGraphicEl(oldIndex);\n\n      if (!data.hasValue(newIndex)) {\n        group.remove(bar);\n        return;\n      }\n\n      var itemModel = getItemModel(data, newIndex);\n      var symbolMeta = getSymbolMeta(data, newIndex, itemModel, opt);\n      var pictorialShapeStr = getShapeStr(data, symbolMeta);\n\n      if (bar && pictorialShapeStr !== bar.__pictorialShapeStr) {\n        group.remove(bar);\n        data.setItemGraphicEl(newIndex, null);\n        bar = null;\n      }\n\n      if (bar) {\n        updateBar(bar, opt, symbolMeta);\n      } else {\n        bar = createBar(data, opt, symbolMeta, true);\n      }\n\n      data.setItemGraphicEl(newIndex, bar);\n      bar.__pictorialSymbolMeta = symbolMeta;\n      group.add(bar);\n      updateCommon(bar, opt, symbolMeta);\n    }).remove(function (dataIndex) {\n      var bar = oldData.getItemGraphicEl(dataIndex);\n      bar && removeBar(oldData, dataIndex, bar.__pictorialSymbolMeta.animationModel, bar);\n    }).execute();\n    this._data = data;\n    return this.group;\n  };\n\n  PictorialBarView.prototype.remove = function (ecModel, api) {\n    var group = this.group;\n    var data = this._data;\n\n    if (ecModel.get('animation')) {\n      if (data) {\n        data.eachItemGraphicEl(function (bar) {\n          removeBar(data, getECData(bar).dataIndex, ecModel, bar);\n        });\n      }\n    } else {\n      group.removeAll();\n    }\n  };\n\n  PictorialBarView.type = 'pictorialBar';\n  return PictorialBarView;\n}(ChartView);\n\nfunction getSymbolMeta(data, dataIndex, itemModel, opt) {\n  var layout = data.getItemLayout(dataIndex);\n  var symbolRepeat = itemModel.get('symbolRepeat');\n  var symbolClip = itemModel.get('symbolClip');\n  var symbolPosition = itemModel.get('symbolPosition') || 'start';\n  var symbolRotate = itemModel.get('symbolRotate');\n  var rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\n  var symbolPatternSize = itemModel.get('symbolPatternSize') || 2;\n  var isAnimationEnabled = itemModel.isAnimationEnabled();\n  var symbolMeta = {\n    dataIndex: dataIndex,\n    layout: layout,\n    itemModel: itemModel,\n    symbolType: data.getItemVisual(dataIndex, 'symbol') || 'circle',\n    style: data.getItemVisual(dataIndex, 'style'),\n    symbolClip: symbolClip,\n    symbolRepeat: symbolRepeat,\n    symbolRepeatDirection: itemModel.get('symbolRepeatDirection'),\n    symbolPatternSize: symbolPatternSize,\n    rotation: rotation,\n    animationModel: isAnimationEnabled ? itemModel : null,\n    hoverScale: isAnimationEnabled && itemModel.get(['emphasis', 'scale']),\n    z2: itemModel.getShallow('z', true) || 0\n  };\n  prepareBarLength(itemModel, symbolRepeat, layout, opt, symbolMeta);\n  prepareSymbolSize(data, dataIndex, layout, symbolRepeat, symbolClip, symbolMeta.boundingLength, symbolMeta.pxSign, symbolPatternSize, opt, symbolMeta);\n  prepareLineWidth(itemModel, symbolMeta.symbolScale, rotation, opt, symbolMeta);\n  var symbolSize = symbolMeta.symbolSize;\n  var symbolOffset = itemModel.get('symbolOffset');\n\n  if (zrUtil.isArray(symbolOffset)) {\n    symbolOffset = [parsePercent(symbolOffset[0], symbolSize[0]), parsePercent(symbolOffset[1], symbolSize[1])];\n  }\n\n  prepareLayoutInfo(itemModel, symbolSize, layout, symbolRepeat, symbolClip, symbolOffset, symbolPosition, symbolMeta.valueLineWidth, symbolMeta.boundingLength, symbolMeta.repeatCutLength, opt, symbolMeta);\n  return symbolMeta;\n}\n\nfunction prepareBarLength(itemModel, symbolRepeat, layout, opt, outputSymbolMeta) {\n  var valueDim = opt.valueDim;\n  var symbolBoundingData = itemModel.get('symbolBoundingData');\n  var valueAxis = opt.coordSys.getOtherAxis(opt.coordSys.getBaseAxis());\n  var zeroPx = valueAxis.toGlobalCoord(valueAxis.dataToCoord(0));\n  var pxSignIdx = 1 - +(layout[valueDim.wh] <= 0);\n  var boundingLength;\n\n  if (zrUtil.isArray(symbolBoundingData)) {\n    var symbolBoundingExtent = [convertToCoordOnAxis(valueAxis, symbolBoundingData[0]) - zeroPx, convertToCoordOnAxis(valueAxis, symbolBoundingData[1]) - zeroPx];\n    symbolBoundingExtent[1] < symbolBoundingExtent[0] && symbolBoundingExtent.reverse();\n    boundingLength = symbolBoundingExtent[pxSignIdx];\n  } else if (symbolBoundingData != null) {\n    boundingLength = convertToCoordOnAxis(valueAxis, symbolBoundingData) - zeroPx;\n  } else if (symbolRepeat) {\n    boundingLength = opt.coordSysExtent[valueDim.index][pxSignIdx] - zeroPx;\n  } else {\n    boundingLength = layout[valueDim.wh];\n  }\n\n  outputSymbolMeta.boundingLength = boundingLength;\n\n  if (symbolRepeat) {\n    outputSymbolMeta.repeatCutLength = layout[valueDim.wh];\n  }\n\n  outputSymbolMeta.pxSign = boundingLength > 0 ? 1 : boundingLength < 0 ? -1 : 0;\n}\n\nfunction convertToCoordOnAxis(axis, value) {\n  return axis.toGlobalCoord(axis.dataToCoord(axis.scale.parse(value)));\n}\n\nfunction prepareSymbolSize(data, dataIndex, layout, symbolRepeat, symbolClip, boundingLength, pxSign, symbolPatternSize, opt, outputSymbolMeta) {\n  var valueDim = opt.valueDim;\n  var categoryDim = opt.categoryDim;\n  var categorySize = Math.abs(layout[categoryDim.wh]);\n  var symbolSize = data.getItemVisual(dataIndex, 'symbolSize');\n  var parsedSymbolSize;\n\n  if (zrUtil.isArray(symbolSize)) {\n    parsedSymbolSize = symbolSize.slice();\n  } else {\n    if (symbolSize == null) {\n      parsedSymbolSize = ['100%', '100%'];\n    } else {\n      parsedSymbolSize = [symbolSize, symbolSize];\n    }\n  }\n\n  parsedSymbolSize[categoryDim.index] = parsePercent(parsedSymbolSize[categoryDim.index], categorySize);\n  parsedSymbolSize[valueDim.index] = parsePercent(parsedSymbolSize[valueDim.index], symbolRepeat ? categorySize : Math.abs(boundingLength));\n  outputSymbolMeta.symbolSize = parsedSymbolSize;\n  var symbolScale = outputSymbolMeta.symbolScale = [parsedSymbolSize[0] / symbolPatternSize, parsedSymbolSize[1] / symbolPatternSize];\n  symbolScale[valueDim.index] *= (opt.isHorizontal ? -1 : 1) * pxSign;\n}\n\nfunction prepareLineWidth(itemModel, symbolScale, rotation, opt, outputSymbolMeta) {\n  var valueLineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0;\n\n  if (valueLineWidth) {\n    pathForLineWidth.attr({\n      scaleX: symbolScale[0],\n      scaleY: symbolScale[1],\n      rotation: rotation\n    });\n    pathForLineWidth.updateTransform();\n    valueLineWidth /= pathForLineWidth.getLineScale();\n    valueLineWidth *= symbolScale[opt.valueDim.index];\n  }\n\n  outputSymbolMeta.valueLineWidth = valueLineWidth;\n}\n\nfunction prepareLayoutInfo(itemModel, symbolSize, layout, symbolRepeat, symbolClip, symbolOffset, symbolPosition, valueLineWidth, boundingLength, repeatCutLength, opt, outputSymbolMeta) {\n  var categoryDim = opt.categoryDim;\n  var valueDim = opt.valueDim;\n  var pxSign = outputSymbolMeta.pxSign;\n  var unitLength = Math.max(symbolSize[valueDim.index] + valueLineWidth, 0);\n  var pathLen = unitLength;\n\n  if (symbolRepeat) {\n    var absBoundingLength = Math.abs(boundingLength);\n    var symbolMargin = zrUtil.retrieve(itemModel.get('symbolMargin'), '15%') + '';\n    var hasEndGap = false;\n\n    if (symbolMargin.lastIndexOf('!') === symbolMargin.length - 1) {\n      hasEndGap = true;\n      symbolMargin = symbolMargin.slice(0, symbolMargin.length - 1);\n    }\n\n    var symbolMarginNumeric = parsePercent(symbolMargin, symbolSize[valueDim.index]);\n    var uLenWithMargin = Math.max(unitLength + symbolMarginNumeric * 2, 0);\n    var endFix = hasEndGap ? 0 : symbolMarginNumeric * 2;\n    var repeatSpecified = isNumeric(symbolRepeat);\n    var repeatTimes = repeatSpecified ? symbolRepeat : toIntTimes((absBoundingLength + endFix) / uLenWithMargin);\n    var mDiff = absBoundingLength - repeatTimes * unitLength;\n    symbolMarginNumeric = mDiff / 2 / (hasEndGap ? repeatTimes : repeatTimes - 1);\n    uLenWithMargin = unitLength + symbolMarginNumeric * 2;\n    endFix = hasEndGap ? 0 : symbolMarginNumeric * 2;\n\n    if (!repeatSpecified && symbolRepeat !== 'fixed') {\n      repeatTimes = repeatCutLength ? toIntTimes((Math.abs(repeatCutLength) + endFix) / uLenWithMargin) : 0;\n    }\n\n    pathLen = repeatTimes * uLenWithMargin - endFix;\n    outputSymbolMeta.repeatTimes = repeatTimes;\n    outputSymbolMeta.symbolMargin = symbolMarginNumeric;\n  }\n\n  var sizeFix = pxSign * (pathLen / 2);\n  var pathPosition = outputSymbolMeta.pathPosition = [];\n  pathPosition[categoryDim.index] = layout[categoryDim.wh] / 2;\n  pathPosition[valueDim.index] = symbolPosition === 'start' ? sizeFix : symbolPosition === 'end' ? boundingLength - sizeFix : boundingLength / 2;\n\n  if (symbolOffset) {\n    pathPosition[0] += symbolOffset[0];\n    pathPosition[1] += symbolOffset[1];\n  }\n\n  var bundlePosition = outputSymbolMeta.bundlePosition = [];\n  bundlePosition[categoryDim.index] = layout[categoryDim.xy];\n  bundlePosition[valueDim.index] = layout[valueDim.xy];\n  var barRectShape = outputSymbolMeta.barRectShape = zrUtil.extend({}, layout);\n  barRectShape[valueDim.wh] = pxSign * Math.max(Math.abs(layout[valueDim.wh]), Math.abs(pathPosition[valueDim.index] + sizeFix));\n  barRectShape[categoryDim.wh] = layout[categoryDim.wh];\n  var clipShape = outputSymbolMeta.clipShape = {};\n  clipShape[categoryDim.xy] = -layout[categoryDim.xy];\n  clipShape[categoryDim.wh] = opt.ecSize[categoryDim.wh];\n  clipShape[valueDim.xy] = 0;\n  clipShape[valueDim.wh] = layout[valueDim.wh];\n}\n\nfunction createPath(symbolMeta) {\n  var symbolPatternSize = symbolMeta.symbolPatternSize;\n  var path = createSymbol(symbolMeta.symbolType, -symbolPatternSize / 2, -symbolPatternSize / 2, symbolPatternSize, symbolPatternSize);\n  path.attr({\n    culling: true\n  });\n  path.type !== 'image' && path.setStyle({\n    strokeNoScale: true\n  });\n  return path;\n}\n\nfunction createOrUpdateRepeatSymbols(bar, opt, symbolMeta, isUpdate) {\n  var bundle = bar.__pictorialBundle;\n  var symbolSize = symbolMeta.symbolSize;\n  var valueLineWidth = symbolMeta.valueLineWidth;\n  var pathPosition = symbolMeta.pathPosition;\n  var valueDim = opt.valueDim;\n  var repeatTimes = symbolMeta.repeatTimes || 0;\n  var index = 0;\n  var unit = symbolSize[opt.valueDim.index] + valueLineWidth + symbolMeta.symbolMargin * 2;\n  eachPath(bar, function (path) {\n    path.__pictorialAnimationIndex = index;\n    path.__pictorialRepeatTimes = repeatTimes;\n\n    if (index < repeatTimes) {\n      updateAttr(path, null, makeTarget(index), symbolMeta, isUpdate);\n    } else {\n      updateAttr(path, null, {\n        scaleX: 0,\n        scaleY: 0\n      }, symbolMeta, isUpdate, function () {\n        bundle.remove(path);\n      });\n    }\n\n    index++;\n  });\n\n  for (; index < repeatTimes; index++) {\n    var path = createPath(symbolMeta);\n    path.__pictorialAnimationIndex = index;\n    path.__pictorialRepeatTimes = repeatTimes;\n    bundle.add(path);\n    var target = makeTarget(index);\n    updateAttr(path, {\n      x: target.x,\n      y: target.y,\n      scaleX: 0,\n      scaleY: 0\n    }, {\n      scaleX: target.scaleX,\n      scaleY: target.scaleY,\n      rotation: target.rotation\n    }, symbolMeta, isUpdate);\n  }\n\n  function makeTarget(index) {\n    var position = pathPosition.slice();\n    var pxSign = symbolMeta.pxSign;\n    var i = index;\n\n    if (symbolMeta.symbolRepeatDirection === 'start' ? pxSign > 0 : pxSign < 0) {\n      i = repeatTimes - 1 - index;\n    }\n\n    position[valueDim.index] = unit * (i - repeatTimes / 2 + 0.5) + pathPosition[valueDim.index];\n    return {\n      x: position[0],\n      y: position[1],\n      scaleX: symbolMeta.symbolScale[0],\n      scaleY: symbolMeta.symbolScale[1],\n      rotation: symbolMeta.rotation\n    };\n  }\n}\n\nfunction createOrUpdateSingleSymbol(bar, opt, symbolMeta, isUpdate) {\n  var bundle = bar.__pictorialBundle;\n  var mainPath = bar.__pictorialMainPath;\n\n  if (!mainPath) {\n    mainPath = bar.__pictorialMainPath = createPath(symbolMeta);\n    bundle.add(mainPath);\n    updateAttr(mainPath, {\n      x: symbolMeta.pathPosition[0],\n      y: symbolMeta.pathPosition[1],\n      scaleX: 0,\n      scaleY: 0,\n      rotation: symbolMeta.rotation\n    }, {\n      scaleX: symbolMeta.symbolScale[0],\n      scaleY: symbolMeta.symbolScale[1]\n    }, symbolMeta, isUpdate);\n  } else {\n    updateAttr(mainPath, null, {\n      x: symbolMeta.pathPosition[0],\n      y: symbolMeta.pathPosition[1],\n      scaleX: symbolMeta.symbolScale[0],\n      scaleY: symbolMeta.symbolScale[1],\n      rotation: symbolMeta.rotation\n    }, symbolMeta, isUpdate);\n  }\n}\n\nfunction createOrUpdateBarRect(bar, symbolMeta, isUpdate) {\n  var rectShape = zrUtil.extend({}, symbolMeta.barRectShape);\n  var barRect = bar.__pictorialBarRect;\n\n  if (!barRect) {\n    barRect = bar.__pictorialBarRect = new graphic.Rect({\n      z2: 2,\n      shape: rectShape,\n      silent: true,\n      style: {\n        stroke: 'transparent',\n        fill: 'transparent',\n        lineWidth: 0\n      }\n    });\n    bar.add(barRect);\n  } else {\n    updateAttr(barRect, null, {\n      shape: rectShape\n    }, symbolMeta, isUpdate);\n  }\n}\n\nfunction createOrUpdateClip(bar, opt, symbolMeta, isUpdate) {\n  if (symbolMeta.symbolClip) {\n    var clipPath = bar.__pictorialClipPath;\n    var clipShape = zrUtil.extend({}, symbolMeta.clipShape);\n    var valueDim = opt.valueDim;\n    var animationModel = symbolMeta.animationModel;\n    var dataIndex = symbolMeta.dataIndex;\n\n    if (clipPath) {\n      graphic.updateProps(clipPath, {\n        shape: clipShape\n      }, animationModel, dataIndex);\n    } else {\n      clipShape[valueDim.wh] = 0;\n      clipPath = new graphic.Rect({\n        shape: clipShape\n      });\n\n      bar.__pictorialBundle.setClipPath(clipPath);\n\n      bar.__pictorialClipPath = clipPath;\n      var target = {};\n      target[valueDim.wh] = symbolMeta.clipShape[valueDim.wh];\n      graphic[isUpdate ? 'updateProps' : 'initProps'](clipPath, {\n        shape: target\n      }, animationModel, dataIndex);\n    }\n  }\n}\n\nfunction getItemModel(data, dataIndex) {\n  var itemModel = data.getItemModel(dataIndex);\n  itemModel.getAnimationDelayParams = getAnimationDelayParams;\n  itemModel.isAnimationEnabled = isAnimationEnabled;\n  return itemModel;\n}\n\nfunction getAnimationDelayParams(path) {\n  return {\n    index: path.__pictorialAnimationIndex,\n    count: path.__pictorialRepeatTimes\n  };\n}\n\nfunction isAnimationEnabled() {\n  return this.parentModel.isAnimationEnabled() && !!this.getShallow('animation');\n}\n\nfunction createBar(data, opt, symbolMeta, isUpdate) {\n  var bar = new graphic.Group();\n  var bundle = new graphic.Group();\n  bar.add(bundle);\n  bar.__pictorialBundle = bundle;\n  bundle.x = symbolMeta.bundlePosition[0];\n  bundle.y = symbolMeta.bundlePosition[1];\n\n  if (symbolMeta.symbolRepeat) {\n    createOrUpdateRepeatSymbols(bar, opt, symbolMeta);\n  } else {\n    createOrUpdateSingleSymbol(bar, opt, symbolMeta);\n  }\n\n  createOrUpdateBarRect(bar, symbolMeta, isUpdate);\n  createOrUpdateClip(bar, opt, symbolMeta, isUpdate);\n  bar.__pictorialShapeStr = getShapeStr(data, symbolMeta);\n  bar.__pictorialSymbolMeta = symbolMeta;\n  return bar;\n}\n\nfunction updateBar(bar, opt, symbolMeta) {\n  var animationModel = symbolMeta.animationModel;\n  var dataIndex = symbolMeta.dataIndex;\n  var bundle = bar.__pictorialBundle;\n  graphic.updateProps(bundle, {\n    x: symbolMeta.bundlePosition[0],\n    y: symbolMeta.bundlePosition[1]\n  }, animationModel, dataIndex);\n\n  if (symbolMeta.symbolRepeat) {\n    createOrUpdateRepeatSymbols(bar, opt, symbolMeta, true);\n  } else {\n    createOrUpdateSingleSymbol(bar, opt, symbolMeta, true);\n  }\n\n  createOrUpdateBarRect(bar, symbolMeta, true);\n  createOrUpdateClip(bar, opt, symbolMeta, true);\n}\n\nfunction removeBar(data, dataIndex, animationModel, bar) {\n  var labelRect = bar.__pictorialBarRect;\n  labelRect && labelRect.removeTextContent();\n  var pathes = [];\n  eachPath(bar, function (path) {\n    pathes.push(path);\n  });\n  bar.__pictorialMainPath && pathes.push(bar.__pictorialMainPath);\n  bar.__pictorialClipPath && (animationModel = null);\n  zrUtil.each(pathes, function (path) {\n    graphic.removeElement(path, {\n      scaleX: 0,\n      scaleY: 0\n    }, animationModel, dataIndex, function () {\n      bar.parent && bar.parent.remove(bar);\n    });\n  });\n  data.setItemGraphicEl(dataIndex, null);\n}\n\nfunction getShapeStr(data, symbolMeta) {\n  return [data.getItemVisual(symbolMeta.dataIndex, 'symbol') || 'none', !!symbolMeta.symbolRepeat, !!symbolMeta.symbolClip].join(':');\n}\n\nfunction eachPath(bar, cb, context) {\n  zrUtil.each(bar.__pictorialBundle.children(), function (el) {\n    el !== bar.__pictorialBarRect && cb.call(context, el);\n  });\n}\n\nfunction updateAttr(el, immediateAttrs, animationAttrs, symbolMeta, isUpdate, cb) {\n  immediateAttrs && el.attr(immediateAttrs);\n\n  if (symbolMeta.symbolClip && !isUpdate) {\n    animationAttrs && el.attr(animationAttrs);\n  } else {\n    animationAttrs && graphic[isUpdate ? 'updateProps' : 'initProps'](el, animationAttrs, symbolMeta.animationModel, symbolMeta.dataIndex, cb);\n  }\n}\n\nfunction updateCommon(bar, opt, symbolMeta) {\n  var dataIndex = symbolMeta.dataIndex;\n  var itemModel = symbolMeta.itemModel;\n  var emphasisModel = itemModel.getModel('emphasis');\n  var emphasisStyle = emphasisModel.getModel('itemStyle').getItemStyle();\n  var blurStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\n  var selectStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\n  var cursorStyle = itemModel.getShallow('cursor');\n  var focus = emphasisModel.get('focus');\n  var blurScope = emphasisModel.get('blurScope');\n  var hoverScale = emphasisModel.get('scale');\n  eachPath(bar, function (path) {\n    if (path instanceof ZRImage) {\n      var pathStyle = path.style;\n      path.useStyle(zrUtil.extend({\n        image: pathStyle.image,\n        x: pathStyle.x,\n        y: pathStyle.y,\n        width: pathStyle.width,\n        height: pathStyle.height\n      }, symbolMeta.style));\n    } else {\n      path.useStyle(symbolMeta.style);\n    }\n\n    var emphasisState = path.ensureState('emphasis');\n    emphasisState.style = emphasisStyle;\n\n    if (hoverScale) {\n      emphasisState.scaleX = path.scaleX * 1.1;\n      emphasisState.scaleY = path.scaleY * 1.1;\n    }\n\n    path.ensureState('blur').style = blurStyle;\n    path.ensureState('select').style = selectStyle;\n    cursorStyle && (path.cursor = cursorStyle);\n    path.z2 = symbolMeta.z2;\n  });\n  var barPositionOutside = opt.valueDim.posDesc[+(symbolMeta.boundingLength > 0)];\n  var barRect = bar.__pictorialBarRect;\n  setLabelStyle(barRect, getLabelStatesModels(itemModel), {\n    labelFetcher: opt.seriesModel,\n    labelDataIndex: dataIndex,\n    defaultText: getDefaultLabel(opt.seriesModel.getData(), dataIndex),\n    inheritColor: symbolMeta.style.fill,\n    defaultOpacity: symbolMeta.style.opacity,\n    defaultOutsidePosition: barPositionOutside\n  });\n  enableHoverEmphasis(bar, focus, blurScope);\n}\n\nfunction toIntTimes(times) {\n  var roundedTimes = Math.round(times);\n  return Math.abs(times - roundedTimes) < 1e-4 ? roundedTimes : Math.ceil(times);\n}\n\nexport default PictorialBarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BaseBarSeriesModel from './BaseBarSeries';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar PictorialBarSeriesModel = function (_super) {\n  __extends(PictorialBarSeriesModel, _super);\n\n  function PictorialBarSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = PictorialBarSeriesModel.type;\n    _this.hasSymbolVisual = true;\n    _this.defaultSymbol = 'roundRect';\n    return _this;\n  }\n\n  PictorialBarSeriesModel.prototype.getInitialData = function (option) {\n    option.stack = null;\n    return _super.prototype.getInitialData.apply(this, arguments);\n  };\n\n  PictorialBarSeriesModel.type = 'series.pictorialBar';\n  PictorialBarSeriesModel.dependencies = ['grid'];\n  PictorialBarSeriesModel.defaultOption = inheritDefaultOption(BaseBarSeriesModel.defaultOption, {\n    symbol: 'circle',\n    symbolSize: null,\n    symbolRotate: null,\n    symbolPosition: null,\n    symbolOffset: null,\n    symbolMargin: null,\n    symbolRepeat: false,\n    symbolRepeatDirection: 'end',\n    symbolClip: false,\n    symbolBoundingData: null,\n    symbolPatternSize: 400,\n    barGap: '-100%',\n    progressive: 0,\n    emphasis: {\n      scale: false\n    },\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    }\n  });\n  return PictorialBarSeriesModel;\n}(BaseBarSeriesModel);\n\nexport default PictorialBarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport PictorialBarView from './PictorialBarView';\nimport PictorialBarSeriesModel from './PictorialBarSeries';\nimport { layout } from '../../layout/barGrid';\nimport { curry } from 'zrender/lib/core/util';\nexport function install(registers) {\n  registers.registerChartView(PictorialBarView);\n  registers.registerSeriesModel(PictorialBarSeriesModel);\n  registers.registerLayout(curry(layout, 'pictorialBar'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { ECPolygon } from '../line/poly';\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { bind } from 'zrender/lib/core/util';\nimport DataDiffer from '../../data/DataDiffer';\nimport ChartView from '../../view/Chart';\n\nvar ThemeRiverView = function (_super) {\n  __extends(ThemeRiverView, _super);\n\n  function ThemeRiverView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ThemeRiverView.type;\n    _this._layers = [];\n    return _this;\n  }\n\n  ThemeRiverView.prototype.render = function (seriesModel, ecModel, api) {\n    var data = seriesModel.getData();\n    var self = this;\n    var group = this.group;\n    var layersSeries = seriesModel.getLayerSeries();\n    var layoutInfo = data.getLayout('layoutInfo');\n    var rect = layoutInfo.rect;\n    var boundaryGap = layoutInfo.boundaryGap;\n    group.x = 0;\n    group.y = rect.y + boundaryGap[0];\n\n    function keyGetter(item) {\n      return item.name;\n    }\n\n    var dataDiffer = new DataDiffer(this._layersSeries || [], layersSeries, keyGetter, keyGetter);\n    var newLayersGroups = [];\n    dataDiffer.add(bind(process, this, 'add')).update(bind(process, this, 'update')).remove(bind(process, this, 'remove')).execute();\n\n    function process(status, idx, oldIdx) {\n      var oldLayersGroups = self._layers;\n\n      if (status === 'remove') {\n        group.remove(oldLayersGroups[idx]);\n        return;\n      }\n\n      var points0 = [];\n      var points1 = [];\n      var style;\n      var indices = layersSeries[idx].indices;\n      var j = 0;\n\n      for (; j < indices.length; j++) {\n        var layout = data.getItemLayout(indices[j]);\n        var x = layout.x;\n        var y0 = layout.y0;\n        var y = layout.y;\n        points0.push(x, y0);\n        points1.push(x, y0 + y);\n        style = data.getItemVisual(indices[j], 'style');\n      }\n\n      var polygon;\n      var textLayout = data.getItemLayout(indices[0]);\n      var labelModel = seriesModel.getModel('label');\n      var margin = labelModel.get('margin');\n      var emphasisModel = seriesModel.getModel('emphasis');\n\n      if (status === 'add') {\n        var layerGroup = newLayersGroups[idx] = new graphic.Group();\n        polygon = new ECPolygon({\n          shape: {\n            points: points0,\n            stackedOnPoints: points1,\n            smooth: 0.4,\n            stackedOnSmooth: 0.4,\n            smoothConstraint: false\n          },\n          z2: 0\n        });\n        layerGroup.add(polygon);\n        group.add(layerGroup);\n\n        if (seriesModel.isAnimationEnabled()) {\n          polygon.setClipPath(createGridClipShape(polygon.getBoundingRect(), seriesModel, function () {\n            polygon.removeClipPath();\n          }));\n        }\n      } else {\n        var layerGroup = oldLayersGroups[oldIdx];\n        polygon = layerGroup.childAt(0);\n        group.add(layerGroup);\n        newLayersGroups[idx] = layerGroup;\n        graphic.updateProps(polygon, {\n          shape: {\n            points: points0,\n            stackedOnPoints: points1\n          }\n        }, seriesModel);\n      }\n\n      setLabelStyle(polygon, getLabelStatesModels(seriesModel), {\n        labelDataIndex: indices[j - 1],\n        defaultText: data.getName(indices[j - 1]),\n        inheritColor: style.fill\n      }, {\n        normal: {\n          verticalAlign: 'middle'\n        }\n      });\n      polygon.setTextConfig({\n        position: null,\n        local: true\n      });\n      var labelEl = polygon.getTextContent();\n\n      if (labelEl) {\n        labelEl.x = textLayout.x - margin;\n        labelEl.y = textLayout.y0 + textLayout.y / 2;\n      }\n\n      polygon.useStyle(style);\n      data.setItemGraphicEl(idx, polygon);\n      setStatesStylesFromModel(polygon, seriesModel);\n      enableHoverEmphasis(polygon, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n    }\n\n    this._layersSeries = layersSeries;\n    this._layers = newLayersGroups;\n  };\n\n  ThemeRiverView.type = 'themeRiver';\n  return ThemeRiverView;\n}(ChartView);\n\n;\n\nfunction createGridClipShape(rect, seriesModel, cb) {\n  var rectEl = new graphic.Rect({\n    shape: {\n      x: rect.x - 10,\n      y: rect.y - 10,\n      width: 0,\n      height: rect.height + 20\n    }\n  });\n  graphic.initProps(rectEl, {\n    shape: {\n      x: rect.x - 50,\n      width: rect.width + 100,\n      height: rect.height + 20\n    }\n  }, seriesModel, cb);\n  return rectEl;\n}\n\nexport default ThemeRiverView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport createDimensions from '../../data/helper/createDimensions';\nimport { getDimensionTypeByAxis } from '../../data/helper/dimensionHelper';\nimport List from '../../data/List';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { groupData, SINGLE_REFERRING } from '../../util/model';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider';\nimport { createTooltipMarkup } from '../../component/tooltip/tooltipMarkup';\nvar DATA_NAME_INDEX = 2;\n\nvar ThemeRiverSeriesModel = function (_super) {\n  __extends(ThemeRiverSeriesModel, _super);\n\n  function ThemeRiverSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ThemeRiverSeriesModel.type;\n    _this.useColorPaletteOnData = true;\n    return _this;\n  }\n\n  ThemeRiverSeriesModel.prototype.init = function (option) {\n    _super.prototype.init.apply(this, arguments);\n\n    this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));\n  };\n\n  ThemeRiverSeriesModel.prototype.fixData = function (data) {\n    var rawDataLength = data.length;\n    var timeValueKeys = {};\n    var groupResult = groupData(data, function (item) {\n      if (!timeValueKeys.hasOwnProperty(item[0] + '')) {\n        timeValueKeys[item[0] + ''] = -1;\n      }\n\n      return item[2];\n    });\n    var layerData = [];\n    groupResult.buckets.each(function (items, key) {\n      layerData.push({\n        name: key,\n        dataList: items\n      });\n    });\n    var layerNum = layerData.length;\n\n    for (var k = 0; k < layerNum; ++k) {\n      var name_1 = layerData[k].name;\n\n      for (var j = 0; j < layerData[k].dataList.length; ++j) {\n        var timeValue = layerData[k].dataList[j][0] + '';\n        timeValueKeys[timeValue] = k;\n      }\n\n      for (var timeValue in timeValueKeys) {\n        if (timeValueKeys.hasOwnProperty(timeValue) && timeValueKeys[timeValue] !== k) {\n          timeValueKeys[timeValue] = k;\n          data[rawDataLength] = [timeValue, 0, name_1];\n          rawDataLength++;\n        }\n      }\n    }\n\n    return data;\n  };\n\n  ThemeRiverSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    var singleAxisModel = this.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\n    var axisType = singleAxisModel.get('type');\n    var filterData = zrUtil.filter(option.data, function (dataItem) {\n      return dataItem[2] !== undefined;\n    });\n    var data = this.fixData(filterData || []);\n    var nameList = [];\n    var nameMap = this.nameMap = zrUtil.createHashMap();\n    var count = 0;\n\n    for (var i = 0; i < data.length; ++i) {\n      nameList.push(data[i][DATA_NAME_INDEX]);\n\n      if (!nameMap.get(data[i][DATA_NAME_INDEX])) {\n        nameMap.set(data[i][DATA_NAME_INDEX], count);\n        count++;\n      }\n    }\n\n    var dimensionsInfo = createDimensions(data, {\n      coordDimensions: ['single'],\n      dimensionsDefine: [{\n        name: 'time',\n        type: getDimensionTypeByAxis(axisType)\n      }, {\n        name: 'value',\n        type: 'float'\n      }, {\n        name: 'name',\n        type: 'ordinal'\n      }],\n      encodeDefine: {\n        single: 0,\n        value: 1,\n        itemName: 2\n      }\n    });\n    var list = new List(dimensionsInfo, this);\n    list.initData(data);\n    return list;\n  };\n\n  ThemeRiverSeriesModel.prototype.getLayerSeries = function () {\n    var data = this.getData();\n    var lenCount = data.count();\n    var indexArr = [];\n\n    for (var i = 0; i < lenCount; ++i) {\n      indexArr[i] = i;\n    }\n\n    var timeDim = data.mapDimension('single');\n    var groupResult = groupData(indexArr, function (index) {\n      return data.get('name', index);\n    });\n    var layerSeries = [];\n    groupResult.buckets.each(function (items, key) {\n      items.sort(function (index1, index2) {\n        return data.get(timeDim, index1) - data.get(timeDim, index2);\n      });\n      layerSeries.push({\n        name: key,\n        indices: items\n      });\n    });\n    return layerSeries;\n  };\n\n  ThemeRiverSeriesModel.prototype.getAxisTooltipData = function (dim, value, baseAxis) {\n    if (!zrUtil.isArray(dim)) {\n      dim = dim ? [dim] : [];\n    }\n\n    var data = this.getData();\n    var layerSeries = this.getLayerSeries();\n    var indices = [];\n    var layerNum = layerSeries.length;\n    var nestestValue;\n\n    for (var i = 0; i < layerNum; ++i) {\n      var minDist = Number.MAX_VALUE;\n      var nearestIdx = -1;\n      var pointNum = layerSeries[i].indices.length;\n\n      for (var j = 0; j < pointNum; ++j) {\n        var theValue = data.get(dim[0], layerSeries[i].indices[j]);\n        var dist = Math.abs(theValue - value);\n\n        if (dist <= minDist) {\n          nestestValue = theValue;\n          minDist = dist;\n          nearestIdx = layerSeries[i].indices[j];\n        }\n      }\n\n      indices.push(nearestIdx);\n    }\n\n    return {\n      dataIndices: indices,\n      nestestValue: nestestValue\n    };\n  };\n\n  ThemeRiverSeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var data = this.getData();\n    var name = data.getName(dataIndex);\n    var value = data.get(data.mapDimension('value'), dataIndex);\n    return createTooltipMarkup('nameValue', {\n      name: name,\n      value: value\n    });\n  };\n\n  ThemeRiverSeriesModel.type = 'series.themeRiver';\n  ThemeRiverSeriesModel.dependencies = ['singleAxis'];\n  ThemeRiverSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'singleAxis',\n    boundaryGap: ['10%', '10%'],\n    singleAxisIndex: 0,\n    animationEasing: 'linear',\n    label: {\n      margin: 4,\n      show: true,\n      position: 'left',\n      fontSize: 11\n    },\n    emphasis: {\n      label: {\n        show: true\n      }\n    }\n  };\n  return ThemeRiverSeriesModel;\n}(SeriesModel);\n\nexport default ThemeRiverSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as numberUtil from '../../util/number';\nexport default function themeRiverLayout(ecModel, api) {\n  ecModel.eachSeriesByType('themeRiver', function (seriesModel) {\n    var data = seriesModel.getData();\n    var single = seriesModel.coordinateSystem;\n    var layoutInfo = {};\n    var rect = single.getRect();\n    layoutInfo.rect = rect;\n    var boundaryGap = seriesModel.get('boundaryGap');\n    var axis = single.getAxis();\n    layoutInfo.boundaryGap = boundaryGap;\n\n    if (axis.orient === 'horizontal') {\n      boundaryGap[0] = numberUtil.parsePercent(boundaryGap[0], rect.height);\n      boundaryGap[1] = numberUtil.parsePercent(boundaryGap[1], rect.height);\n      var height = rect.height - boundaryGap[0] - boundaryGap[1];\n      doThemeRiverLayout(data, seriesModel, height);\n    } else {\n      boundaryGap[0] = numberUtil.parsePercent(boundaryGap[0], rect.width);\n      boundaryGap[1] = numberUtil.parsePercent(boundaryGap[1], rect.width);\n      var width = rect.width - boundaryGap[0] - boundaryGap[1];\n      doThemeRiverLayout(data, seriesModel, width);\n    }\n\n    data.setLayout('layoutInfo', layoutInfo);\n  });\n}\n\nfunction doThemeRiverLayout(data, seriesModel, height) {\n  if (!data.count()) {\n    return;\n  }\n\n  var coordSys = seriesModel.coordinateSystem;\n  var layerSeries = seriesModel.getLayerSeries();\n  var timeDim = data.mapDimension('single');\n  var valueDim = data.mapDimension('value');\n  var layerPoints = zrUtil.map(layerSeries, function (singleLayer) {\n    return zrUtil.map(singleLayer.indices, function (idx) {\n      var pt = coordSys.dataToPoint(data.get(timeDim, idx));\n      pt[1] = data.get(valueDim, idx);\n      return pt;\n    });\n  });\n  var base = computeBaseline(layerPoints);\n  var baseLine = base.y0;\n  var ky = height / base.max;\n  var n = layerSeries.length;\n  var m = layerSeries[0].indices.length;\n  var baseY0;\n\n  for (var j = 0; j < m; ++j) {\n    baseY0 = baseLine[j] * ky;\n    data.setItemLayout(layerSeries[0].indices[j], {\n      layerIndex: 0,\n      x: layerPoints[0][j][0],\n      y0: baseY0,\n      y: layerPoints[0][j][1] * ky\n    });\n\n    for (var i = 1; i < n; ++i) {\n      baseY0 += layerPoints[i - 1][j][1] * ky;\n      data.setItemLayout(layerSeries[i].indices[j], {\n        layerIndex: i,\n        x: layerPoints[i][j][0],\n        y0: baseY0,\n        y: layerPoints[i][j][1] * ky\n      });\n    }\n  }\n}\n\nfunction computeBaseline(data) {\n  var layerNum = data.length;\n  var pointNum = data[0].length;\n  var sums = [];\n  var y0 = [];\n  var max = 0;\n\n  for (var i = 0; i < pointNum; ++i) {\n    var temp = 0;\n\n    for (var j = 0; j < layerNum; ++j) {\n      temp += data[j][i][1];\n    }\n\n    if (temp > max) {\n      max = temp;\n    }\n\n    sums.push(temp);\n  }\n\n  for (var k = 0; k < pointNum; ++k) {\n    y0[k] = (max - sums[k]) / 2;\n  }\n\n  max = 0;\n\n  for (var l = 0; l < pointNum; ++l) {\n    var sum = sums[l] + y0[l];\n\n    if (sum > max) {\n      max = sum;\n    }\n  }\n\n  return {\n    y0: y0,\n    max: max\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ThemeRiverView from './ThemeRiverView';\nimport ThemeRiverSeriesModel from './ThemeRiverSeries';\nimport themeRiverLayout from './themeRiverLayout';\nimport dataFilter from '../../processor/dataFilter';\nexport function install(registers) {\n  registers.registerChartView(ThemeRiverView);\n  registers.registerSeriesModel(ThemeRiverSeriesModel);\n  registers.registerLayout(themeRiverLayout);\n  registers.registerProcessor(dataFilter('themeRiver'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis, SPECIAL_STATES, DISPLAY_STATES } from '../../util/states';\nimport { createTextStyle } from '../../label/labelStyle';\nimport { getECData } from '../../util/innerStore';\nimport { getSectorCornerRadius } from '../helper/pieHelper';\nimport { createOrUpdatePatternFromDecal } from '../../util/decal';\nvar DEFAULT_SECTOR_Z = 2;\nvar DEFAULT_TEXT_Z = 4;\n\nvar SunburstPiece = function (_super) {\n  __extends(SunburstPiece, _super);\n\n  function SunburstPiece(node, seriesModel, ecModel, api) {\n    var _this = _super.call(this) || this;\n\n    _this.z2 = DEFAULT_SECTOR_Z;\n    _this.textConfig = {\n      inside: true\n    };\n    getECData(_this).seriesIndex = seriesModel.seriesIndex;\n    var text = new graphic.Text({\n      z2: DEFAULT_TEXT_Z,\n      silent: node.getModel().get(['label', 'silent'])\n    });\n\n    _this.setTextContent(text);\n\n    _this.updateData(true, node, seriesModel, ecModel, api);\n\n    return _this;\n  }\n\n  SunburstPiece.prototype.updateData = function (firstCreate, node, seriesModel, ecModel, api) {\n    this.node = node;\n    node.piece = this;\n    seriesModel = seriesModel || this._seriesModel;\n    ecModel = ecModel || this._ecModel;\n    var sector = this;\n    getECData(sector).dataIndex = node.dataIndex;\n    var itemModel = node.getModel();\n    var emphasisModel = itemModel.getModel('emphasis');\n    var layout = node.getLayout();\n    var sectorShape = zrUtil.extend({}, layout);\n    sectorShape.label = null;\n    var normalStyle = node.getVisual('style');\n    normalStyle.lineJoin = 'bevel';\n    var decal = node.getVisual('decal');\n\n    if (decal) {\n      normalStyle.decal = createOrUpdatePatternFromDecal(decal, api);\n    }\n\n    var cornerRadius = getSectorCornerRadius(itemModel.getModel('itemStyle'), sectorShape);\n    zrUtil.extend(sectorShape, cornerRadius);\n    zrUtil.each(SPECIAL_STATES, function (stateName) {\n      var state = sector.ensureState(stateName);\n      var itemStyleModel = itemModel.getModel([stateName, 'itemStyle']);\n      state.style = itemStyleModel.getItemStyle();\n      var cornerRadius = getSectorCornerRadius(itemStyleModel, sectorShape);\n\n      if (cornerRadius) {\n        state.shape = cornerRadius;\n      }\n    });\n\n    if (firstCreate) {\n      sector.setShape(sectorShape);\n      sector.shape.r = layout.r0;\n      graphic.updateProps(sector, {\n        shape: {\n          r: layout.r\n        }\n      }, seriesModel, node.dataIndex);\n    } else {\n      graphic.updateProps(sector, {\n        shape: sectorShape\n      }, seriesModel);\n    }\n\n    sector.useStyle(normalStyle);\n\n    this._updateLabel(seriesModel);\n\n    var cursorStyle = itemModel.getShallow('cursor');\n    cursorStyle && sector.attr('cursor', cursorStyle);\n    this._seriesModel = seriesModel || this._seriesModel;\n    this._ecModel = ecModel || this._ecModel;\n    var focus = emphasisModel.get('focus');\n    var focusDataIndices = focus === 'ancestor' ? node.getAncestorsIndices() : focus === 'descendant' ? node.getDescendantIndices() : null;\n    enableHoverEmphasis(this, focusDataIndices || focus, emphasisModel.get('blurScope'));\n  };\n\n  SunburstPiece.prototype._updateLabel = function (seriesModel) {\n    var _this = this;\n\n    var itemModel = this.node.getModel();\n    var normalLabelModel = itemModel.getModel('label');\n    var layout = this.node.getLayout();\n    var angle = layout.endAngle - layout.startAngle;\n    var midAngle = (layout.startAngle + layout.endAngle) / 2;\n    var dx = Math.cos(midAngle);\n    var dy = Math.sin(midAngle);\n    var sector = this;\n    var label = sector.getTextContent();\n    var dataIndex = this.node.dataIndex;\n    var labelMinAngle = normalLabelModel.get('minAngle') / 180 * Math.PI;\n    var isNormalShown = normalLabelModel.get('show') && !(labelMinAngle != null && Math.abs(angle) < labelMinAngle);\n    label.ignore = !isNormalShown;\n    zrUtil.each(DISPLAY_STATES, function (stateName) {\n      var labelStateModel = stateName === 'normal' ? itemModel.getModel('label') : itemModel.getModel([stateName, 'label']);\n      var isNormal = stateName === 'normal';\n      var state = isNormal ? label : label.ensureState(stateName);\n      var text = seriesModel.getFormattedLabel(dataIndex, stateName);\n\n      if (isNormal) {\n        text = text || _this.node.name;\n      }\n\n      state.style = createTextStyle(labelStateModel, {}, null, stateName !== 'normal', true);\n\n      if (text) {\n        state.style.text = text;\n      }\n\n      var isShown = labelStateModel.get('show');\n\n      if (isShown != null && !isNormal) {\n        state.ignore = !isShown;\n      }\n\n      var labelPosition = getLabelAttr(labelStateModel, 'position');\n      var sectorState = isNormal ? sector : sector.states[stateName];\n      var labelColor = sectorState.style.fill;\n      sectorState.textConfig = {\n        outsideFill: labelStateModel.get('color') === 'inherit' ? labelColor : null,\n        inside: labelPosition !== 'outside'\n      };\n      var r;\n      var labelPadding = getLabelAttr(labelStateModel, 'distance') || 0;\n      var textAlign = getLabelAttr(labelStateModel, 'align');\n\n      if (labelPosition === 'outside') {\n        r = layout.r + labelPadding;\n        textAlign = midAngle > Math.PI / 2 ? 'right' : 'left';\n      } else {\n        if (!textAlign || textAlign === 'center') {\n          r = (layout.r + layout.r0) / 2;\n          textAlign = 'center';\n        } else if (textAlign === 'left') {\n          r = layout.r0 + labelPadding;\n\n          if (midAngle > Math.PI / 2) {\n            textAlign = 'right';\n          }\n        } else if (textAlign === 'right') {\n          r = layout.r - labelPadding;\n\n          if (midAngle > Math.PI / 2) {\n            textAlign = 'left';\n          }\n        }\n      }\n\n      state.style.align = textAlign;\n      state.style.verticalAlign = getLabelAttr(labelStateModel, 'verticalAlign') || 'middle';\n      state.x = r * dx + layout.cx;\n      state.y = r * dy + layout.cy;\n      var rotateType = getLabelAttr(labelStateModel, 'rotate');\n      var rotate = 0;\n\n      if (rotateType === 'radial') {\n        rotate = -midAngle;\n\n        if (rotate < -Math.PI / 2) {\n          rotate += Math.PI;\n        }\n      } else if (rotateType === 'tangential') {\n        rotate = Math.PI / 2 - midAngle;\n\n        if (rotate > Math.PI / 2) {\n          rotate -= Math.PI;\n        } else if (rotate < -Math.PI / 2) {\n          rotate += Math.PI;\n        }\n      } else if (typeof rotateType === 'number') {\n        rotate = rotateType * Math.PI / 180;\n      }\n\n      state.rotation = rotate;\n    });\n\n    function getLabelAttr(model, name) {\n      var stateAttr = model.get(name);\n\n      if (stateAttr == null) {\n        return normalLabelModel.get(name);\n      }\n\n      return stateAttr;\n    }\n\n    label.dirtyStyle();\n  };\n\n  return SunburstPiece;\n}(graphic.Sector);\n\nexport default SunburstPiece;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { extend } from 'zrender/lib/core/util';\nimport { deprecateReplaceLog } from '../../util/log';\nimport { retrieveTargetInfo, aboveViewRoot } from '../helper/treeHelper';\nexport var ROOT_TO_NODE_ACTION = 'sunburstRootToNode';\nvar HIGHLIGHT_ACTION = 'sunburstHighlight';\nvar UNHIGHLIGHT_ACTION = 'sunburstUnhighlight';\nexport function installSunburstAction(registers) {\n  registers.registerAction({\n    type: ROOT_TO_NODE_ACTION,\n    update: 'updateView'\n  }, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'sunburst',\n      query: payload\n    }, handleRootToNode);\n\n    function handleRootToNode(model, index) {\n      var targetInfo = retrieveTargetInfo(payload, [ROOT_TO_NODE_ACTION], model);\n\n      if (targetInfo) {\n        var originViewRoot = model.getViewRoot();\n\n        if (originViewRoot) {\n          payload.direction = aboveViewRoot(originViewRoot, targetInfo.node) ? 'rollUp' : 'drillDown';\n        }\n\n        model.resetViewRoot(targetInfo.node);\n      }\n    }\n  });\n  registers.registerAction({\n    type: HIGHLIGHT_ACTION,\n    update: 'none'\n  }, function (payload, ecModel, api) {\n    payload = extend({}, payload);\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'sunburst',\n      query: payload\n    }, handleHighlight);\n\n    function handleHighlight(model) {\n      var targetInfo = retrieveTargetInfo(payload, [HIGHLIGHT_ACTION], model);\n\n      if (targetInfo) {\n        payload.dataIndex = targetInfo.node.dataIndex;\n      }\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateReplaceLog('highlight', 'sunburstHighlight');\n    }\n\n    api.dispatchAction(extend(payload, {\n      type: 'highlight'\n    }));\n  });\n  registers.registerAction({\n    type: UNHIGHLIGHT_ACTION,\n    update: 'updateView'\n  }, function (payload, ecModel, api) {\n    payload = extend({}, payload);\n\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateReplaceLog('downplay', 'sunburstUnhighlight');\n    }\n\n    api.dispatchAction(extend(payload, {\n      type: 'downplay'\n    }));\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ChartView from '../../view/Chart';\nimport SunburstPiece from './SunburstPiece';\nimport DataDiffer from '../../data/DataDiffer';\nimport { ROOT_TO_NODE_ACTION } from './sunburstAction';\nimport { windowOpen } from '../../util/format';\n\nvar SunburstView = function (_super) {\n  __extends(SunburstView, _super);\n\n  function SunburstView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SunburstView.type;\n    return _this;\n  }\n\n  SunburstView.prototype.render = function (seriesModel, ecModel, api, payload) {\n    var self = this;\n    this.seriesModel = seriesModel;\n    this.api = api;\n    this.ecModel = ecModel;\n    var data = seriesModel.getData();\n    var virtualRoot = data.tree.root;\n    var newRoot = seriesModel.getViewRoot();\n    var group = this.group;\n    var renderLabelForZeroData = seriesModel.get('renderLabelForZeroData');\n    var newChildren = [];\n    newRoot.eachNode(function (node) {\n      newChildren.push(node);\n    });\n    var oldChildren = this._oldChildren || [];\n    dualTravel(newChildren, oldChildren);\n    renderRollUp(virtualRoot, newRoot);\n\n    this._initEvents();\n\n    this._oldChildren = newChildren;\n\n    function dualTravel(newChildren, oldChildren) {\n      if (newChildren.length === 0 && oldChildren.length === 0) {\n        return;\n      }\n\n      new DataDiffer(oldChildren, newChildren, getKey, getKey).add(processNode).update(processNode).remove(zrUtil.curry(processNode, null)).execute();\n\n      function getKey(node) {\n        return node.getId();\n      }\n\n      function processNode(newIdx, oldIdx) {\n        var newNode = newIdx == null ? null : newChildren[newIdx];\n        var oldNode = oldIdx == null ? null : oldChildren[oldIdx];\n        doRenderNode(newNode, oldNode);\n      }\n    }\n\n    function doRenderNode(newNode, oldNode) {\n      if (!renderLabelForZeroData && newNode && !newNode.getValue()) {\n        newNode = null;\n      }\n\n      if (newNode !== virtualRoot && oldNode !== virtualRoot) {\n        if (oldNode && oldNode.piece) {\n          if (newNode) {\n            oldNode.piece.updateData(false, newNode, seriesModel, ecModel, api);\n            data.setItemGraphicEl(newNode.dataIndex, oldNode.piece);\n          } else {\n            removeNode(oldNode);\n          }\n        } else if (newNode) {\n          var piece = new SunburstPiece(newNode, seriesModel, ecModel, api);\n          group.add(piece);\n          data.setItemGraphicEl(newNode.dataIndex, piece);\n        }\n      }\n    }\n\n    function removeNode(node) {\n      if (!node) {\n        return;\n      }\n\n      if (node.piece) {\n        group.remove(node.piece);\n        node.piece = null;\n      }\n    }\n\n    function renderRollUp(virtualRoot, viewRoot) {\n      if (viewRoot.depth > 0) {\n        if (self.virtualPiece) {\n          self.virtualPiece.updateData(false, virtualRoot, seriesModel, ecModel, api);\n        } else {\n          self.virtualPiece = new SunburstPiece(virtualRoot, seriesModel, ecModel, api);\n          group.add(self.virtualPiece);\n        }\n\n        viewRoot.piece.off('click');\n        self.virtualPiece.on('click', function (e) {\n          self._rootToNode(viewRoot.parentNode);\n        });\n      } else if (self.virtualPiece) {\n        group.remove(self.virtualPiece);\n        self.virtualPiece = null;\n      }\n    }\n  };\n\n  SunburstView.prototype._initEvents = function () {\n    var _this = this;\n\n    this.group.off('click');\n    this.group.on('click', function (e) {\n      var targetFound = false;\n\n      var viewRoot = _this.seriesModel.getViewRoot();\n\n      viewRoot.eachNode(function (node) {\n        if (!targetFound && node.piece && node.piece === e.target) {\n          var nodeClick = node.getModel().get('nodeClick');\n\n          if (nodeClick === 'rootToNode') {\n            _this._rootToNode(node);\n          } else if (nodeClick === 'link') {\n            var itemModel = node.getModel();\n            var link = itemModel.get('link');\n\n            if (link) {\n              var linkTarget = itemModel.get('target', true) || '_blank';\n              windowOpen(link, linkTarget);\n            }\n          }\n\n          targetFound = true;\n        }\n      });\n    });\n  };\n\n  SunburstView.prototype._rootToNode = function (node) {\n    if (node !== this.seriesModel.getViewRoot()) {\n      this.api.dispatchAction({\n        type: ROOT_TO_NODE_ACTION,\n        from: this.uid,\n        seriesId: this.seriesModel.id,\n        targetNode: node\n      });\n    }\n  };\n\n  SunburstView.prototype.containPoint = function (point, seriesModel) {\n    var treeRoot = seriesModel.getData();\n    var itemLayout = treeRoot.getItemLayout(0);\n\n    if (itemLayout) {\n      var dx = point[0] - itemLayout.cx;\n      var dy = point[1] - itemLayout.cy;\n      var radius = Math.sqrt(dx * dx + dy * dy);\n      return radius <= itemLayout.r && radius >= itemLayout.r0;\n    }\n  };\n\n  SunburstView.type = 'sunburst';\n  return SunburstView;\n}(ChartView);\n\nexport default SunburstView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport SeriesModel from '../../model/Series';\nimport Tree from '../../data/Tree';\nimport { wrapTreePathInfo } from '../helper/treeHelper';\nimport Model from '../../model/Model';\nimport enableAriaDecalForTree from '../helper/enableAriaDecalForTree';\n\nvar SunburstSeriesModel = function (_super) {\n  __extends(SunburstSeriesModel, _super);\n\n  function SunburstSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SunburstSeriesModel.type;\n    _this.ignoreStyleOnData = true;\n    return _this;\n  }\n\n  SunburstSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    var root = {\n      name: option.name,\n      children: option.data\n    };\n    completeTreeValue(root);\n    var levelModels = zrUtil.map(option.levels || [], function (levelDefine) {\n      return new Model(levelDefine, this, ecModel);\n    }, this);\n    var tree = Tree.createTree(root, this, beforeLink);\n\n    function beforeLink(nodeData) {\n      nodeData.wrapMethod('getItemModel', function (model, idx) {\n        var node = tree.getNodeByDataIndex(idx);\n        var levelModel = levelModels[node.depth];\n        levelModel && (model.parentModel = levelModel);\n        return model;\n      });\n    }\n\n    return tree.data;\n  };\n\n  SunburstSeriesModel.prototype.optionUpdated = function () {\n    this.resetViewRoot();\n  };\n\n  SunburstSeriesModel.prototype.getDataParams = function (dataIndex) {\n    var params = _super.prototype.getDataParams.apply(this, arguments);\n\n    var node = this.getData().tree.getNodeByDataIndex(dataIndex);\n    params.treePathInfo = wrapTreePathInfo(node, this);\n    return params;\n  };\n\n  SunburstSeriesModel.prototype.getViewRoot = function () {\n    return this._viewRoot;\n  };\n\n  SunburstSeriesModel.prototype.resetViewRoot = function (viewRoot) {\n    viewRoot ? this._viewRoot = viewRoot : viewRoot = this._viewRoot;\n    var root = this.getRawData().tree.root;\n\n    if (!viewRoot || viewRoot !== root && !root.contains(viewRoot)) {\n      this._viewRoot = root;\n    }\n  };\n\n  SunburstSeriesModel.prototype.enableAriaDecal = function () {\n    enableAriaDecalForTree(this);\n  };\n\n  SunburstSeriesModel.type = 'series.sunburst';\n  SunburstSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    center: ['50%', '50%'],\n    radius: [0, '75%'],\n    clockwise: true,\n    startAngle: 90,\n    minAngle: 0,\n    stillShowZeroSum: true,\n    nodeClick: 'rootToNode',\n    renderLabelForZeroData: false,\n    label: {\n      rotate: 'radial',\n      show: true,\n      opacity: 1,\n      align: 'center',\n      position: 'inside',\n      distance: 5,\n      silent: true\n    },\n    itemStyle: {\n      borderWidth: 1,\n      borderColor: 'white',\n      borderType: 'solid',\n      shadowBlur: 0,\n      shadowColor: 'rgba(0, 0, 0, 0.2)',\n      shadowOffsetX: 0,\n      shadowOffsetY: 0,\n      opacity: 1\n    },\n    emphasis: {\n      focus: 'descendant'\n    },\n    blur: {\n      itemStyle: {\n        opacity: 0.2\n      },\n      label: {\n        opacity: 0.1\n      }\n    },\n    animationType: 'expansion',\n    animationDuration: 1000,\n    animationDurationUpdate: 500,\n    data: [],\n    levels: [],\n    sort: 'desc'\n  };\n  return SunburstSeriesModel;\n}(SeriesModel);\n\nfunction completeTreeValue(dataNode) {\n  var sum = 0;\n  zrUtil.each(dataNode.children, function (child) {\n    completeTreeValue(child);\n    var childValue = child.value;\n    zrUtil.isArray(childValue) && (childValue = childValue[0]);\n    sum += childValue;\n  });\n  var thisValue = dataNode.value;\n\n  if (zrUtil.isArray(thisValue)) {\n    thisValue = thisValue[0];\n  }\n\n  if (thisValue == null || isNaN(thisValue)) {\n    thisValue = sum;\n  }\n\n  if (thisValue < 0) {\n    thisValue = 0;\n  }\n\n  zrUtil.isArray(dataNode.value) ? dataNode.value[0] = thisValue : dataNode.value = thisValue;\n}\n\nexport default SunburstSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parsePercent } from '../../util/number';\nimport * as zrUtil from 'zrender/lib/core/util';\nvar RADIAN = Math.PI / 180;\nexport default function sunburstLayout(seriesType, ecModel, api) {\n  ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n    var center = seriesModel.get('center');\n    var radius = seriesModel.get('radius');\n\n    if (!zrUtil.isArray(radius)) {\n      radius = [0, radius];\n    }\n\n    if (!zrUtil.isArray(center)) {\n      center = [center, center];\n    }\n\n    var width = api.getWidth();\n    var height = api.getHeight();\n    var size = Math.min(width, height);\n    var cx = parsePercent(center[0], width);\n    var cy = parsePercent(center[1], height);\n    var r0 = parsePercent(radius[0], size / 2);\n    var r = parsePercent(radius[1], size / 2);\n    var startAngle = -seriesModel.get('startAngle') * RADIAN;\n    var minAngle = seriesModel.get('minAngle') * RADIAN;\n    var virtualRoot = seriesModel.getData().tree.root;\n    var treeRoot = seriesModel.getViewRoot();\n    var rootDepth = treeRoot.depth;\n    var sort = seriesModel.get('sort');\n\n    if (sort != null) {\n      initChildren(treeRoot, sort);\n    }\n\n    var validDataCount = 0;\n    zrUtil.each(treeRoot.children, function (child) {\n      !isNaN(child.getValue()) && validDataCount++;\n    });\n    var sum = treeRoot.getValue();\n    var unitRadian = Math.PI / (sum || validDataCount) * 2;\n    var renderRollupNode = treeRoot.depth > 0;\n    var levels = treeRoot.height - (renderRollupNode ? -1 : 1);\n    var rPerLevel = (r - r0) / (levels || 1);\n    var clockwise = seriesModel.get('clockwise');\n    var stillShowZeroSum = seriesModel.get('stillShowZeroSum');\n    var dir = clockwise ? 1 : -1;\n\n    var renderNode = function (node, startAngle) {\n      if (!node) {\n        return;\n      }\n\n      var endAngle = startAngle;\n\n      if (node !== virtualRoot) {\n        var value = node.getValue();\n        var angle = sum === 0 && stillShowZeroSum ? unitRadian : value * unitRadian;\n\n        if (angle < minAngle) {\n          angle = minAngle;\n        }\n\n        endAngle = startAngle + dir * angle;\n        var depth = node.depth - rootDepth - (renderRollupNode ? -1 : 1);\n        var rStart = r0 + rPerLevel * depth;\n        var rEnd = r0 + rPerLevel * (depth + 1);\n        var itemModel = node.getModel();\n\n        if (itemModel.get('r0') != null) {\n          rStart = parsePercent(itemModel.get('r0'), size / 2);\n        }\n\n        if (itemModel.get('r') != null) {\n          rEnd = parsePercent(itemModel.get('r'), size / 2);\n        }\n\n        node.setLayout({\n          angle: angle,\n          startAngle: startAngle,\n          endAngle: endAngle,\n          clockwise: clockwise,\n          cx: cx,\n          cy: cy,\n          r0: rStart,\n          r: rEnd\n        });\n      }\n\n      if (node.children && node.children.length) {\n        var siblingAngle_1 = 0;\n        zrUtil.each(node.children, function (node) {\n          siblingAngle_1 += renderNode(node, startAngle + siblingAngle_1);\n        });\n      }\n\n      return endAngle - startAngle;\n    };\n\n    if (renderRollupNode) {\n      var rStart = r0;\n      var rEnd = r0 + rPerLevel;\n      var angle = Math.PI * 2;\n      virtualRoot.setLayout({\n        angle: angle,\n        startAngle: startAngle,\n        endAngle: startAngle + angle,\n        clockwise: clockwise,\n        cx: cx,\n        cy: cy,\n        r0: rStart,\n        r: rEnd\n      });\n    }\n\n    renderNode(treeRoot, startAngle);\n  });\n}\n\nfunction initChildren(node, sortOrder) {\n  var children = node.children || [];\n  node.children = sort(children, sortOrder);\n\n  if (children.length) {\n    zrUtil.each(node.children, function (child) {\n      initChildren(child, sortOrder);\n    });\n  }\n}\n\nfunction sort(children, sortOrder) {\n  if (typeof sortOrder === 'function') {\n    var sortTargets = zrUtil.map(children, function (child, idx) {\n      var value = child.getValue();\n      return {\n        params: {\n          depth: child.depth,\n          height: child.height,\n          dataIndex: child.dataIndex,\n          getValue: function () {\n            return value;\n          }\n        },\n        index: idx\n      };\n    });\n    sortTargets.sort(function (a, b) {\n      return sortOrder(a.params, b.params);\n    });\n    return zrUtil.map(sortTargets, function (target) {\n      return children[target.index];\n    });\n  } else {\n    var isAsc_1 = sortOrder === 'asc';\n    return children.sort(function (a, b) {\n      var diff = (a.getValue() - b.getValue()) * (isAsc_1 ? 1 : -1);\n      return diff === 0 ? (a.dataIndex - b.dataIndex) * (isAsc_1 ? -1 : 1) : diff;\n    });\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { extend } from 'zrender/lib/core/util';\nimport { lift } from 'zrender/lib/tool/color';\nexport default function sunburstVisual(ecModel) {\n  var paletteScope = {};\n\n  function pickColor(node, seriesModel, treeHeight) {\n    var current = node;\n\n    while (current && current.depth > 1) {\n      current = current.parentNode;\n    }\n\n    var color = seriesModel.getColorFromPalette(current.name || current.dataIndex + '', paletteScope);\n\n    if (node.depth > 1 && typeof color === 'string') {\n      color = lift(color, (node.depth - 1) / (treeHeight - 1) * 0.5);\n    }\n\n    return color;\n  }\n\n  ecModel.eachSeriesByType('sunburst', function (seriesModel) {\n    var data = seriesModel.getData();\n    var tree = data.tree;\n    tree.eachNode(function (node) {\n      var model = node.getModel();\n      var style = model.getModel('itemStyle').getItemStyle();\n\n      if (!style.fill) {\n        style.fill = pickColor(node, seriesModel, tree.root.height);\n      }\n\n      var existsStyle = data.ensureUniqueItemVisual(node.dataIndex, 'style');\n      extend(existsStyle, style);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SunburstView from './SunburstView';\nimport SunburstSeriesModel from './SunburstSeries';\nimport sunburstLayout from './sunburstLayout';\nimport sunburstVisual from './sunburstVisual';\nimport dataFilter from '../../processor/dataFilter';\nimport { curry } from 'zrender/lib/core/util';\nimport { installSunburstAction } from './sunburstAction';\nexport function install(registers) {\n  registers.registerChartView(SunburstView);\n  registers.registerSeriesModel(SunburstSeriesModel);\n  registers.registerLayout(curry(sunburstLayout, 'sunburst'));\n  registers.registerProcessor(curry(dataFilter, 'sunburst'));\n  registers.registerVisual(sunburstVisual);\n  installSunburstAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nfunction dataToCoordSize(dataSize, dataItem) {\n  dataItem = dataItem || [0, 0];\n  return zrUtil.map(['x', 'y'], function (dim, dimIdx) {\n    var axis = this.getAxis(dim);\n    var val = dataItem[dimIdx];\n    var halfSize = dataSize[dimIdx] / 2;\n    return axis.type === 'category' ? axis.getBandWidth() : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));\n  }, this);\n}\n\nexport default function cartesianPrepareCustom(coordSys) {\n  var rect = coordSys.master.getRect();\n  return {\n    coordSys: {\n      type: 'cartesian2d',\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height\n    },\n    api: {\n      coord: function (data) {\n        return coordSys.dataToPoint(data);\n      },\n      size: zrUtil.bind(dataToCoordSize, coordSys)\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nfunction dataToCoordSize(dataSize, dataItem) {\n  dataItem = dataItem || [0, 0];\n  return zrUtil.map([0, 1], function (dimIdx) {\n    var val = dataItem[dimIdx];\n    var halfSize = dataSize[dimIdx] / 2;\n    var p1 = [];\n    var p2 = [];\n    p1[dimIdx] = val - halfSize;\n    p2[dimIdx] = val + halfSize;\n    p1[1 - dimIdx] = p2[1 - dimIdx] = dataItem[1 - dimIdx];\n    return Math.abs(this.dataToPoint(p1)[dimIdx] - this.dataToPoint(p2)[dimIdx]);\n  }, this);\n}\n\nexport default function geoPrepareCustom(coordSys) {\n  var rect = coordSys.getBoundingRect();\n  return {\n    coordSys: {\n      type: 'geo',\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height,\n      zoom: coordSys.getZoom()\n    },\n    api: {\n      coord: function (data) {\n        return coordSys.dataToPoint(data);\n      },\n      size: zrUtil.bind(dataToCoordSize, coordSys)\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { bind } from 'zrender/lib/core/util';\n\nfunction dataToCoordSize(dataSize, dataItem) {\n  var axis = this.getAxis();\n  var val = dataItem instanceof Array ? dataItem[0] : dataItem;\n  var halfSize = (dataSize instanceof Array ? dataSize[0] : dataSize) / 2;\n  return axis.type === 'category' ? axis.getBandWidth() : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));\n}\n\nexport default function singlePrepareCustom(coordSys) {\n  var rect = coordSys.getRect();\n  return {\n    coordSys: {\n      type: 'singleAxis',\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height\n    },\n    api: {\n      coord: function (val) {\n        return coordSys.dataToPoint(val);\n      },\n      size: bind(dataToCoordSize, coordSys)\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nfunction dataToCoordSize(dataSize, dataItem) {\n  dataItem = dataItem || [0, 0];\n  return zrUtil.map(['Radius', 'Angle'], function (dim, dimIdx) {\n    var getterName = 'get' + dim + 'Axis';\n    var axis = this[getterName]();\n    var val = dataItem[dimIdx];\n    var halfSize = dataSize[dimIdx] / 2;\n    var result = axis.type === 'category' ? axis.getBandWidth() : Math.abs(axis.dataToCoord(val - halfSize) - axis.dataToCoord(val + halfSize));\n\n    if (dim === 'Angle') {\n      result = result * Math.PI / 180;\n    }\n\n    return result;\n  }, this);\n}\n\nexport default function polarPrepareCustom(coordSys) {\n  var radiusAxis = coordSys.getRadiusAxis();\n  var angleAxis = coordSys.getAngleAxis();\n  var radius = radiusAxis.getExtent();\n  radius[0] > radius[1] && radius.reverse();\n  return {\n    coordSys: {\n      type: 'polar',\n      cx: coordSys.cx,\n      cy: coordSys.cy,\n      r: radius[1],\n      r0: radius[0]\n    },\n    api: {\n      coord: function (data) {\n        var radius = radiusAxis.dataToRadius(data[0]);\n        var angle = angleAxis.dataToAngle(data[1]);\n        var coord = coordSys.coordToPoint([radius, angle]);\n        coord.push(radius, angle * Math.PI / 180);\n        return coord;\n      },\n      size: zrUtil.bind(dataToCoordSize, coordSys)\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function calendarPrepareCustom(coordSys) {\n  var rect = coordSys.getRect();\n  var rangeInfo = coordSys.getRangeInfo();\n  return {\n    coordSys: {\n      type: 'calendar',\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height,\n      cellWidth: coordSys.getCellWidth(),\n      cellHeight: coordSys.getCellHeight(),\n      rangeInfo: {\n        start: rangeInfo.start,\n        end: rangeInfo.end,\n        weeks: rangeInfo.weeks,\n        dayCount: rangeInfo.allDay\n      }\n    },\n    api: {\n      coord: function (data, clamp) {\n        return coordSys.dataToPoint(data, clamp);\n      }\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, hasOwn } from 'zrender/lib/core/util';\nvar deprecatedLogs = {};\nexport function isEC4CompatibleStyle(style, elType, hasOwnTextContentOption, hasOwnTextConfig) {\n  return style && (style.legacy || style.legacy !== false && !hasOwnTextContentOption && !hasOwnTextConfig && elType !== 'tspan' && (elType === 'text' || hasOwn(style, 'text')));\n}\nexport function convertFromEC4CompatibleStyle(hostStyle, elType, isNormal) {\n  var srcStyle = hostStyle;\n  var textConfig;\n  var textContent;\n  var textContentStyle;\n\n  if (elType === 'text') {\n    textContentStyle = srcStyle;\n  } else {\n    textContentStyle = {};\n    hasOwn(srcStyle, 'text') && (textContentStyle.text = srcStyle.text);\n    hasOwn(srcStyle, 'rich') && (textContentStyle.rich = srcStyle.rich);\n    hasOwn(srcStyle, 'textFill') && (textContentStyle.fill = srcStyle.textFill);\n    hasOwn(srcStyle, 'textStroke') && (textContentStyle.stroke = srcStyle.textStroke);\n    textContent = {\n      type: 'text',\n      style: textContentStyle,\n      silent: true\n    };\n    textConfig = {};\n    var hasOwnPos = hasOwn(srcStyle, 'textPosition');\n\n    if (isNormal) {\n      textConfig.position = hasOwnPos ? srcStyle.textPosition : 'inside';\n    } else {\n      hasOwnPos && (textConfig.position = srcStyle.textPosition);\n    }\n\n    hasOwn(srcStyle, 'textPosition') && (textConfig.position = srcStyle.textPosition);\n    hasOwn(srcStyle, 'textOffset') && (textConfig.offset = srcStyle.textOffset);\n    hasOwn(srcStyle, 'textRotation') && (textConfig.rotation = srcStyle.textRotation);\n    hasOwn(srcStyle, 'textDistance') && (textConfig.distance = srcStyle.textDistance);\n  }\n\n  convertEC4CompatibleRichItem(textContentStyle, hostStyle);\n  each(textContentStyle.rich, function (richItem) {\n    convertEC4CompatibleRichItem(richItem, richItem);\n  });\n  return {\n    textConfig: textConfig,\n    textContent: textContent\n  };\n}\n\nfunction convertEC4CompatibleRichItem(out, richItem) {\n  if (!richItem) {\n    return;\n  }\n\n  richItem.font = richItem.textFont || richItem.font;\n  hasOwn(richItem, 'textStrokeWidth') && (out.lineWidth = richItem.textStrokeWidth);\n  hasOwn(richItem, 'textAlign') && (out.align = richItem.textAlign);\n  hasOwn(richItem, 'textVerticalAlign') && (out.verticalAlign = richItem.textVerticalAlign);\n  hasOwn(richItem, 'textLineHeight') && (out.lineHeight = richItem.textLineHeight);\n  hasOwn(richItem, 'textWidth') && (out.width = richItem.textWidth);\n  hasOwn(richItem, 'textHeight') && (out.height = richItem.textHeight);\n  hasOwn(richItem, 'textBackgroundColor') && (out.backgroundColor = richItem.textBackgroundColor);\n  hasOwn(richItem, 'textPadding') && (out.padding = richItem.textPadding);\n  hasOwn(richItem, 'textBorderColor') && (out.borderColor = richItem.textBorderColor);\n  hasOwn(richItem, 'textBorderWidth') && (out.borderWidth = richItem.textBorderWidth);\n  hasOwn(richItem, 'textBorderRadius') && (out.borderRadius = richItem.textBorderRadius);\n  hasOwn(richItem, 'textBoxShadowColor') && (out.shadowColor = richItem.textBoxShadowColor);\n  hasOwn(richItem, 'textBoxShadowBlur') && (out.shadowBlur = richItem.textBoxShadowBlur);\n  hasOwn(richItem, 'textBoxShadowOffsetX') && (out.shadowOffsetX = richItem.textBoxShadowOffsetX);\n  hasOwn(richItem, 'textBoxShadowOffsetY') && (out.shadowOffsetY = richItem.textBoxShadowOffsetY);\n}\n\nexport function convertToEC4StyleForCustomSerise(itemStl, txStl, txCfg) {\n  var out = itemStl;\n  out.textPosition = out.textPosition || txCfg.position || 'inside';\n  txCfg.offset != null && (out.textOffset = txCfg.offset);\n  txCfg.rotation != null && (out.textRotation = txCfg.rotation);\n  txCfg.distance != null && (out.textDistance = txCfg.distance);\n  var isInside = out.textPosition.indexOf('inside') >= 0;\n  var hostFill = itemStl.fill || '#000';\n  convertToEC4RichItem(out, txStl);\n  var textFillNotSet = out.textFill == null;\n\n  if (isInside) {\n    if (textFillNotSet) {\n      out.textFill = txCfg.insideFill || '#fff';\n      !out.textStroke && txCfg.insideStroke && (out.textStroke = txCfg.insideStroke);\n      !out.textStroke && (out.textStroke = hostFill);\n      out.textStrokeWidth == null && (out.textStrokeWidth = 2);\n    }\n  } else {\n    if (textFillNotSet) {\n      out.textFill = txCfg.outsideFill || hostFill;\n    }\n\n    !out.textStroke && txCfg.outsideStroke && (out.textStroke = txCfg.outsideStroke);\n  }\n\n  out.text = txStl.text;\n  out.rich = txStl.rich;\n  each(txStl.rich, function (richItem) {\n    convertToEC4RichItem(richItem, richItem);\n  });\n  return out;\n}\n\nfunction convertToEC4RichItem(out, richItem) {\n  if (!richItem) {\n    return;\n  }\n\n  hasOwn(richItem, 'fill') && (out.textFill = richItem.fill);\n  hasOwn(richItem, 'stroke') && (out.textStroke = richItem.fill);\n  hasOwn(richItem, 'lineWidth') && (out.textStrokeWidth = richItem.lineWidth);\n  hasOwn(richItem, 'font') && (out.font = richItem.font);\n  hasOwn(richItem, 'fontStyle') && (out.fontStyle = richItem.fontStyle);\n  hasOwn(richItem, 'fontWeight') && (out.fontWeight = richItem.fontWeight);\n  hasOwn(richItem, 'fontSize') && (out.fontSize = richItem.fontSize);\n  hasOwn(richItem, 'fontFamily') && (out.fontFamily = richItem.fontFamily);\n  hasOwn(richItem, 'align') && (out.textAlign = richItem.align);\n  hasOwn(richItem, 'verticalAlign') && (out.textVerticalAlign = richItem.verticalAlign);\n  hasOwn(richItem, 'lineHeight') && (out.textLineHeight = richItem.lineHeight);\n  hasOwn(richItem, 'width') && (out.textWidth = richItem.width);\n  hasOwn(richItem, 'height') && (out.textHeight = richItem.height);\n  hasOwn(richItem, 'backgroundColor') && (out.textBackgroundColor = richItem.backgroundColor);\n  hasOwn(richItem, 'padding') && (out.textPadding = richItem.padding);\n  hasOwn(richItem, 'borderColor') && (out.textBorderColor = richItem.borderColor);\n  hasOwn(richItem, 'borderWidth') && (out.textBorderWidth = richItem.borderWidth);\n  hasOwn(richItem, 'borderRadius') && (out.textBorderRadius = richItem.borderRadius);\n  hasOwn(richItem, 'shadowColor') && (out.textBoxShadowColor = richItem.shadowColor);\n  hasOwn(richItem, 'shadowBlur') && (out.textBoxShadowBlur = richItem.shadowBlur);\n  hasOwn(richItem, 'shadowOffsetX') && (out.textBoxShadowOffsetX = richItem.shadowOffsetX);\n  hasOwn(richItem, 'shadowOffsetY') && (out.textBoxShadowOffsetY = richItem.shadowOffsetY);\n  hasOwn(richItem, 'textShadowColor') && (out.textShadowColor = richItem.textShadowColor);\n  hasOwn(richItem, 'textShadowBlur') && (out.textShadowBlur = richItem.textShadowBlur);\n  hasOwn(richItem, 'textShadowOffsetX') && (out.textShadowOffsetX = richItem.textShadowOffsetX);\n  hasOwn(richItem, 'textShadowOffsetY') && (out.textShadowOffsetY = richItem.textShadowOffsetY);\n}\n\nexport function warnDeprecated(deprecated, insteadApproach) {\n  if (process.env.NODE_ENV !== 'production') {\n    var key = deprecated + '^_^' + insteadApproach;\n\n    if (!deprecatedLogs[key]) {\n      console.warn(\"[ECharts] DEPRECATED: \\\"\" + deprecated + \"\\\" has been deprecated. \" + insteadApproach);\n      deprecatedLogs[key] = true;\n    }\n  }\n}","import PathProxy from '../core/PathProxy';\nimport { cubicSubdivide } from '../core/curve';\nimport { defaults, assert, noop, clone } from '../core/util';\nimport { lerp } from '../core/vector';\nimport Rect from '../graphic/shape/Rect';\nimport Sector from '../graphic/shape/Sector';\nvar CMD = PathProxy.CMD;\nvar PI2 = Math.PI * 2;\nvar PROP_XY = ['x', 'y'];\nvar PROP_WH = ['width', 'height'];\nvar tmpArr = [];\nfunction aroundEqual(a, b) {\n    return Math.abs(a - b) < 1e-5;\n}\nexport function pathToBezierCurves(path) {\n    var data = path.data;\n    var len = path.len();\n    var bezierArray = [];\n    var currentSubpath;\n    var xi = 0;\n    var yi = 0;\n    var x0 = 0;\n    var y0 = 0;\n    function createNewSubpath(x, y) {\n        if (currentSubpath && currentSubpath.length > 2) {\n            bezierArray.push(currentSubpath);\n        }\n        currentSubpath = [x, y];\n    }\n    function addLine(x0, y0, x1, y1) {\n        if (!(aroundEqual(x0, x1) && aroundEqual(y0, y1))) {\n            currentSubpath.push(x0, y0, x1, y1, x1, y1);\n        }\n    }\n    function addArc(startAngle, endAngle, cx, cy, rx, ry) {\n        var delta = Math.abs(endAngle - startAngle);\n        var len = Math.tan(delta / 4) * 4 / 3;\n        var dir = endAngle < startAngle ? -1 : 1;\n        var c1 = Math.cos(startAngle);\n        var s1 = Math.sin(startAngle);\n        var c2 = Math.cos(endAngle);\n        var s2 = Math.sin(endAngle);\n        var x1 = c1 * rx + cx;\n        var y1 = s1 * ry + cy;\n        var x4 = c2 * rx + cx;\n        var y4 = s2 * ry + cy;\n        var hx = rx * len * dir;\n        var hy = ry * len * dir;\n        currentSubpath.push(x1 - hx * s1, y1 + hy * c1, x4 + hx * s2, y4 - hy * c2, x4, y4);\n    }\n    var x1;\n    var y1;\n    var x2;\n    var y2;\n    for (var i = 0; i < len;) {\n        var cmd = data[i++];\n        var isFirst = i === 1;\n        if (isFirst) {\n            xi = data[i];\n            yi = data[i + 1];\n            x0 = xi;\n            y0 = yi;\n            if (cmd === CMD.L || cmd === CMD.C || cmd === CMD.Q) {\n                currentSubpath = [x0, y0];\n            }\n        }\n        switch (cmd) {\n            case CMD.M:\n                xi = x0 = data[i++];\n                yi = y0 = data[i++];\n                createNewSubpath(x0, y0);\n                break;\n            case CMD.L:\n                x1 = data[i++];\n                y1 = data[i++];\n                addLine(xi, yi, x1, y1);\n                xi = x1;\n                yi = y1;\n                break;\n            case CMD.C:\n                currentSubpath.push(data[i++], data[i++], data[i++], data[i++], xi = data[i++], yi = data[i++]);\n                break;\n            case CMD.Q:\n                x1 = data[i++];\n                y1 = data[i++];\n                x2 = data[i++];\n                y2 = data[i++];\n                currentSubpath.push(xi + 2 / 3 * (x1 - xi), yi + 2 / 3 * (y1 - yi), x2 + 2 / 3 * (x1 - x2), y2 + 2 / 3 * (y1 - y2), x2, y2);\n                xi = x2;\n                yi = y2;\n                break;\n            case CMD.A:\n                var cx = data[i++];\n                var cy = data[i++];\n                var rx = data[i++];\n                var ry = data[i++];\n                var startAngle = data[i++];\n                var endAngle = data[i++] + startAngle;\n                i += 1;\n                var anticlockwise = !data[i++];\n                x1 = Math.cos(startAngle) * rx + cx;\n                y1 = Math.sin(startAngle) * ry + cy;\n                if (isFirst) {\n                    x0 = x1;\n                    y0 = y1;\n                    createNewSubpath(x0, y0);\n                }\n                else {\n                    addLine(xi, yi, x1, y1);\n                }\n                xi = Math.cos(endAngle) * rx + cx;\n                yi = Math.sin(endAngle) * ry + cy;\n                var step = (anticlockwise ? -1 : 1) * Math.PI / 2;\n                for (var angle = startAngle; anticlockwise ? angle > endAngle : angle < endAngle; angle += step) {\n                    var nextAngle = anticlockwise ? Math.max(angle + step, endAngle)\n                        : Math.min(angle + step, endAngle);\n                    addArc(angle, nextAngle, cx, cy, rx, ry);\n                }\n                break;\n            case CMD.R:\n                x0 = xi = data[i++];\n                y0 = yi = data[i++];\n                x1 = x0 + data[i++];\n                y1 = y0 + data[i++];\n                createNewSubpath(x1, y0);\n                addLine(x1, y0, x1, y1);\n                addLine(x1, y1, x0, y1);\n                addLine(x0, y1, x0, y0);\n                addLine(x0, y0, x1, y0);\n                break;\n            case CMD.Z:\n                currentSubpath && addLine(xi, yi, x0, y0);\n                xi = x0;\n                yi = y0;\n                break;\n        }\n    }\n    if (currentSubpath && currentSubpath.length > 2) {\n        bezierArray.push(currentSubpath);\n    }\n    return bezierArray;\n}\nfunction alignSubpath(subpath1, subpath2) {\n    var len1 = subpath1.length;\n    var len2 = subpath2.length;\n    if (len1 === len2) {\n        return [subpath1, subpath2];\n    }\n    var shorterPath = len1 < len2 ? subpath1 : subpath2;\n    var shorterLen = Math.min(len1, len2);\n    var diff = Math.abs(len2 - len1) / 6;\n    var shorterBezierCount = (shorterLen - 2) / 6;\n    var eachCurveSubDivCount = Math.ceil(diff / shorterBezierCount) + 1;\n    var newSubpath = [shorterPath[0], shorterPath[1]];\n    var remained = diff;\n    var tmpSegX = [];\n    var tmpSegY = [];\n    for (var i = 2; i < shorterLen;) {\n        var x0 = shorterPath[i - 2];\n        var y0 = shorterPath[i - 1];\n        var x1 = shorterPath[i++];\n        var y1 = shorterPath[i++];\n        var x2 = shorterPath[i++];\n        var y2 = shorterPath[i++];\n        var x3 = shorterPath[i++];\n        var y3 = shorterPath[i++];\n        if (remained <= 0) {\n            newSubpath.push(x1, y1, x2, y2, x3, y3);\n            continue;\n        }\n        var actualSubDivCount = Math.min(remained, eachCurveSubDivCount - 1) + 1;\n        for (var k = 1; k <= actualSubDivCount; k++) {\n            var p = k / actualSubDivCount;\n            cubicSubdivide(x0, x1, x2, x3, p, tmpSegX);\n            cubicSubdivide(y0, y1, y2, y3, p, tmpSegY);\n            x0 = tmpSegX[3];\n            y0 = tmpSegY[3];\n            newSubpath.push(tmpSegX[1], tmpSegY[1], tmpSegX[2], tmpSegY[2], x0, y0);\n            x1 = tmpSegX[5];\n            y1 = tmpSegY[5];\n            x2 = tmpSegX[6];\n            y2 = tmpSegY[6];\n        }\n        remained -= actualSubDivCount - 1;\n    }\n    return shorterPath === subpath1 ? [newSubpath, subpath2] : [subpath1, newSubpath];\n}\nfunction createSubpath(lastSubpathSubpath, otherSubpath) {\n    var len = lastSubpathSubpath.length;\n    var lastX = lastSubpathSubpath[len - 2];\n    var lastY = lastSubpathSubpath[len - 1];\n    var newSubpath = [];\n    for (var i = 0; i < otherSubpath.length;) {\n        newSubpath[i++] = lastX;\n        newSubpath[i++] = lastY;\n    }\n    return newSubpath;\n}\nexport function alignBezierCurves(array1, array2) {\n    var _a;\n    var lastSubpath1;\n    var lastSubpath2;\n    var newArray1 = [];\n    var newArray2 = [];\n    for (var i = 0; i < Math.max(array1.length, array2.length); i++) {\n        var subpath1 = array1[i];\n        var subpath2 = array2[i];\n        var newSubpath1 = void 0;\n        var newSubpath2 = void 0;\n        if (!subpath1) {\n            newSubpath1 = createSubpath(lastSubpath1 || subpath2, subpath2);\n            newSubpath2 = subpath2;\n        }\n        else if (!subpath2) {\n            newSubpath2 = createSubpath(lastSubpath2 || subpath1, subpath1);\n            newSubpath1 = subpath1;\n        }\n        else {\n            _a = alignSubpath(subpath1, subpath2), newSubpath1 = _a[0], newSubpath2 = _a[1];\n            lastSubpath1 = newSubpath1;\n            lastSubpath2 = newSubpath2;\n        }\n        newArray1.push(newSubpath1);\n        newArray2.push(newSubpath2);\n    }\n    return [newArray1, newArray2];\n}\nexport function centroid(array) {\n    var signedArea = 0;\n    var cx = 0;\n    var cy = 0;\n    var len = array.length;\n    for (var i = 0, j = len - 2; i < len; j = i, i += 2) {\n        var x0 = array[j];\n        var y0 = array[j + 1];\n        var x1 = array[i];\n        var y1 = array[i + 1];\n        var a = x0 * y1 - x1 * y0;\n        signedArea += a;\n        cx += (x0 + x1) * a;\n        cy += (y0 + y1) * a;\n    }\n    if (signedArea === 0) {\n        return [array[0] || 0, array[1] || 0];\n    }\n    return [cx / signedArea / 3, cy / signedArea / 3, signedArea];\n}\nfunction findBestRingOffset(fromSubBeziers, toSubBeziers, fromCp, toCp) {\n    var bezierCount = (fromSubBeziers.length - 2) / 6;\n    var bestScore = Infinity;\n    var bestOffset = 0;\n    var len = fromSubBeziers.length;\n    var len2 = len - 2;\n    for (var offset = 0; offset < bezierCount; offset++) {\n        var cursorOffset = offset * 6;\n        var score = 0;\n        for (var k = 0; k < len; k += 2) {\n            var idx = k === 0 ? cursorOffset : ((cursorOffset + k - 2) % len2 + 2);\n            var x0 = fromSubBeziers[idx] - fromCp[0];\n            var y0 = fromSubBeziers[idx + 1] - fromCp[1];\n            var x1 = toSubBeziers[k] - toCp[0];\n            var y1 = toSubBeziers[k + 1] - toCp[1];\n            var dx = x1 - x0;\n            var dy = y1 - y0;\n            score += dx * dx + dy * dy;\n        }\n        if (score < bestScore) {\n            bestScore = score;\n            bestOffset = offset;\n        }\n    }\n    return bestOffset;\n}\nfunction reverse(array) {\n    var newArr = [];\n    var len = array.length;\n    for (var i = 0; i < len; i += 2) {\n        newArr[i] = array[len - i - 2];\n        newArr[i + 1] = array[len - i - 1];\n    }\n    return newArr;\n}\nfunction findBestMorphingRotation(fromArr, toArr, searchAngleIteration, searchAngleRange) {\n    var result = [];\n    var fromNeedsReverse;\n    for (var i = 0; i < fromArr.length; i++) {\n        var fromSubpathBezier = fromArr[i];\n        var toSubpathBezier = toArr[i];\n        var fromCp = centroid(fromSubpathBezier);\n        var toCp = centroid(toSubpathBezier);\n        if (fromNeedsReverse == null) {\n            fromNeedsReverse = fromCp[2] < 0 !== toCp[2] < 0;\n        }\n        var newFromSubpathBezier = [];\n        var newToSubpathBezier = [];\n        var bestAngle = 0;\n        var bestScore = Infinity;\n        var tmpArr_1 = [];\n        var len = fromSubpathBezier.length;\n        if (fromNeedsReverse) {\n            fromSubpathBezier = reverse(fromSubpathBezier);\n        }\n        var offset = findBestRingOffset(fromSubpathBezier, toSubpathBezier, fromCp, toCp) * 6;\n        var len2 = len - 2;\n        for (var k = 0; k < len2; k += 2) {\n            var idx = (offset + k) % len2 + 2;\n            newFromSubpathBezier[k + 2] = fromSubpathBezier[idx] - fromCp[0];\n            newFromSubpathBezier[k + 3] = fromSubpathBezier[idx + 1] - fromCp[1];\n        }\n        newFromSubpathBezier[0] = fromSubpathBezier[offset] - fromCp[0];\n        newFromSubpathBezier[1] = fromSubpathBezier[offset + 1] - fromCp[1];\n        if (searchAngleIteration > 0) {\n            var step = searchAngleRange / searchAngleIteration;\n            for (var angle = -searchAngleRange / 2; angle <= searchAngleRange / 2; angle += step) {\n                var sa = Math.sin(angle);\n                var ca = Math.cos(angle);\n                var score = 0;\n                for (var k = 0; k < fromSubpathBezier.length; k += 2) {\n                    var x0 = newFromSubpathBezier[k];\n                    var y0 = newFromSubpathBezier[k + 1];\n                    var x1 = toSubpathBezier[k] - toCp[0];\n                    var y1 = toSubpathBezier[k + 1] - toCp[1];\n                    var newX1 = x1 * ca - y1 * sa;\n                    var newY1 = x1 * sa + y1 * ca;\n                    tmpArr_1[k] = newX1;\n                    tmpArr_1[k + 1] = newY1;\n                    var dx = newX1 - x0;\n                    var dy = newY1 - y0;\n                    score += dx * dx + dy * dy;\n                }\n                if (score < bestScore) {\n                    bestScore = score;\n                    bestAngle = angle;\n                    for (var m = 0; m < tmpArr_1.length; m++) {\n                        newToSubpathBezier[m] = tmpArr_1[m];\n                    }\n                }\n            }\n        }\n        else {\n            for (var i_1 = 0; i_1 < len; i_1 += 2) {\n                newToSubpathBezier[i_1] = toSubpathBezier[i_1] - toCp[0];\n                newToSubpathBezier[i_1 + 1] = toSubpathBezier[i_1 + 1] - toCp[1];\n            }\n        }\n        result.push({\n            from: newFromSubpathBezier,\n            to: newToSubpathBezier,\n            fromCp: fromCp,\n            toCp: toCp,\n            rotation: -bestAngle\n        });\n    }\n    return result;\n}\nexport function morphPath(fromPath, toPath, animationOpts) {\n    var fromPathProxy;\n    var toPathProxy;\n    if (!fromPath || !toPath) {\n        return toPath;\n    }\n    !fromPath.path && fromPath.createPathProxy();\n    fromPathProxy = fromPath.path;\n    fromPathProxy.beginPath();\n    fromPath.buildPath(fromPathProxy, fromPath.shape);\n    !toPath.path && toPath.createPathProxy();\n    toPathProxy = toPath.path;\n    toPathProxy === fromPathProxy && (toPathProxy = new PathProxy(false));\n    toPathProxy.beginPath();\n    if (isIndividualMorphingPath(toPath)) {\n        toPath.__oldBuildPath(toPathProxy, toPath.shape);\n    }\n    else {\n        toPath.buildPath(toPathProxy, toPath.shape);\n    }\n    var _a = alignBezierCurves(pathToBezierCurves(fromPathProxy), pathToBezierCurves(toPathProxy)), fromBezierCurves = _a[0], toBezierCurves = _a[1];\n    var morphingData = findBestMorphingRotation(fromBezierCurves, toBezierCurves, 10, Math.PI);\n    becomeIndividualMorphingPath(toPath, morphingData, 0);\n    var oldDone = animationOpts && animationOpts.done;\n    var oldAborted = animationOpts && animationOpts.aborted;\n    var oldDuring = animationOpts && animationOpts.during;\n    toPath.animateTo({\n        __morphT: 1\n    }, defaults({\n        during: function (p) {\n            toPath.dirtyShape();\n            oldDuring && oldDuring(p);\n        },\n        done: function () {\n            restoreIndividualMorphingPath(toPath);\n            toPath.createPathProxy();\n            toPath.dirtyShape();\n            oldDone && oldDone();\n        },\n        aborted: function () {\n            oldAborted && oldAborted();\n        }\n    }, animationOpts));\n    return toPath;\n}\nfunction morphingPathBuildPath(path) {\n    var morphingData = this.__morphingData;\n    var t = this.__morphT;\n    var onet = 1 - t;\n    var newCp = [];\n    for (var i = 0; i < morphingData.length; i++) {\n        var item = morphingData[i];\n        var from = item.from;\n        var to = item.to;\n        var angle = item.rotation * t;\n        var fromCp = item.fromCp;\n        var toCp = item.toCp;\n        var sa = Math.sin(angle);\n        var ca = Math.cos(angle);\n        lerp(newCp, fromCp, toCp, t);\n        for (var m = 0; m < from.length; m += 2) {\n            var x0 = from[m];\n            var y0 = from[m + 1];\n            var x1 = to[m];\n            var y1 = to[m + 1];\n            var x = x0 * onet + x1 * t;\n            var y = y0 * onet + y1 * t;\n            tmpArr[m] = (x * ca - y * sa) + newCp[0];\n            tmpArr[m + 1] = (x * sa + y * ca) + newCp[1];\n        }\n        for (var m = 0; m < from.length;) {\n            if (m === 0) {\n                path.moveTo(tmpArr[m++], tmpArr[m++]);\n            }\n            path.bezierCurveTo(tmpArr[m++], tmpArr[m++], tmpArr[m++], tmpArr[m++], tmpArr[m++], tmpArr[m++]);\n        }\n    }\n}\n;\nfunction becomeIndividualMorphingPath(path, morphingData, morphT) {\n    if (isIndividualMorphingPath(path)) {\n        updateIndividualMorphingPath(path, morphingData, morphT);\n        return;\n    }\n    var morphingPath = path;\n    morphingPath.__oldBuildPath = morphingPath.buildPath;\n    morphingPath.buildPath = morphingPathBuildPath;\n    updateIndividualMorphingPath(morphingPath, morphingData, morphT);\n}\nfunction updateIndividualMorphingPath(morphingPath, morphingData, morphT) {\n    morphingPath.__morphingData = morphingData;\n    morphingPath.__morphT = morphT;\n}\nfunction restoreIndividualMorphingPath(path) {\n    if (isIndividualMorphingPath(path)) {\n        path.buildPath = path.__oldBuildPath;\n        path.__oldBuildPath = path.__morphingData = null;\n    }\n}\nfunction isIndividualMorphingPath(path) {\n    return path.__oldBuildPath != null;\n}\nexport function isCombiningPath(path) {\n    return !!path.__combiningSubList;\n}\nexport function isInAnyMorphing(path) {\n    return isIndividualMorphingPath(path) || isCombiningPath(path);\n}\nexport function combine(fromPathList, toPath, animationOpts, copyPropsIfDivided) {\n    var fromIndividuals = [];\n    var separateCount = 0;\n    for (var i = 0; i < fromPathList.length; i++) {\n        var fromPath = fromPathList[i];\n        if (isCombiningPath(fromPath)) {\n            var fromCombiningSubList = fromPath.__combiningSubList;\n            for (var j = 0; j < fromCombiningSubList.length; j++) {\n                fromIndividuals.push(fromCombiningSubList[j]);\n            }\n            separateCount += fromCombiningSubList.length;\n        }\n        else {\n            fromIndividuals.push(fromPath);\n            separateCount++;\n        }\n    }\n    if (!separateCount) {\n        return;\n    }\n    var dividingMethod = animationOpts ? animationOpts.dividingMethod : null;\n    var toPathSplittedList = divideShape(toPath, separateCount, dividingMethod);\n    assert(toPathSplittedList.length === separateCount);\n    var oldDone = animationOpts && animationOpts.done;\n    var oldAborted = animationOpts && animationOpts.aborted;\n    var oldDuring = animationOpts && animationOpts.during;\n    var doneCount = 0;\n    var abortedCalled = false;\n    var morphAnimationOpts = defaults({\n        during: function (p) {\n            oldDuring && oldDuring(p);\n        },\n        done: function () {\n            doneCount++;\n            if (doneCount === toPathSplittedList.length) {\n                restoreCombiningPath(toPath);\n                oldDone && oldDone();\n            }\n        },\n        aborted: function () {\n            if (!abortedCalled) {\n                abortedCalled = true;\n                oldAborted && oldAborted();\n            }\n        }\n    }, animationOpts);\n    for (var i = 0; i < separateCount; i++) {\n        var from = fromIndividuals[i];\n        var to = toPathSplittedList[i];\n        copyPropsIfDivided && copyPropsIfDivided(toPath, to, true);\n        morphPath(from, to, morphAnimationOpts);\n    }\n    becomeCombiningPath(toPath, toPathSplittedList);\n    return {\n        fromIndividuals: fromIndividuals,\n        toIndividuals: toPathSplittedList,\n        count: separateCount\n    };\n}\nfunction becomeCombiningPath(path, combiningSubList) {\n    if (isCombiningPath(path)) {\n        updateCombiningPathSubList(path, combiningSubList);\n        return;\n    }\n    var combiningPath = path;\n    updateCombiningPathSubList(combiningPath, combiningSubList);\n    combiningPath.__oldAddSelfToZr = path.addSelfToZr;\n    combiningPath.__oldRemoveSelfFromZr = path.removeSelfFromZr;\n    combiningPath.addSelfToZr = combiningAddSelfToZr;\n    combiningPath.removeSelfFromZr = combiningRemoveSelfFromZr;\n    combiningPath.__oldBuildPath = combiningPath.buildPath;\n    combiningPath.buildPath = noop;\n    combiningPath.childrenRef = combiningChildrenRef;\n}\nfunction restoreCombiningPath(path) {\n    if (!isCombiningPath(path)) {\n        return;\n    }\n    var combiningPath = path;\n    updateCombiningPathSubList(combiningPath, null);\n    combiningPath.addSelfToZr = combiningPath.__oldAddSelfToZr;\n    combiningPath.removeSelfFromZr = combiningPath.__oldRemoveSelfFromZr;\n    combiningPath.buildPath = combiningPath.__oldBuildPath;\n    combiningPath.childrenRef =\n        combiningPath.__combiningSubList =\n            combiningPath.__oldAddSelfToZr =\n                combiningPath.__oldRemoveSelfFromZr =\n                    combiningPath.__oldBuildPath = null;\n}\nfunction updateCombiningPathSubList(combiningPath, combiningSubList) {\n    if (combiningPath.__combiningSubList !== combiningSubList) {\n        combiningPathSubListAddRemoveWithZr(combiningPath, 'removeSelfFromZr');\n        combiningPath.__combiningSubList = combiningSubList;\n        if (combiningSubList) {\n            for (var i = 0; i < combiningSubList.length; i++) {\n                combiningSubList[i].parent = combiningPath;\n            }\n        }\n        combiningPathSubListAddRemoveWithZr(combiningPath, 'addSelfToZr');\n    }\n}\nfunction combiningAddSelfToZr(zr) {\n    this.__oldAddSelfToZr(zr);\n    combiningPathSubListAddRemoveWithZr(this, 'addSelfToZr');\n}\nfunction combiningPathSubListAddRemoveWithZr(path, method) {\n    var combiningSubList = path.__combiningSubList;\n    var zr = path.__zr;\n    if (combiningSubList && zr) {\n        for (var i = 0; i < combiningSubList.length; i++) {\n            var child = combiningSubList[i];\n            child[method](zr);\n        }\n    }\n}\nfunction combiningRemoveSelfFromZr(zr) {\n    this.__oldRemoveSelfFromZr(zr);\n    var combiningSubList = this.__combiningSubList;\n    for (var i = 0; i < combiningSubList.length; i++) {\n        var child = combiningSubList[i];\n        child.removeSelfFromZr(zr);\n    }\n}\nfunction combiningChildrenRef() {\n    return this.__combiningSubList;\n}\nexport function separate(fromPath, toPathList, animationOpts, copyPropsIfDivided) {\n    var toPathListLen = toPathList.length;\n    var fromPathList;\n    var dividingMethod = animationOpts ? animationOpts.dividingMethod : null;\n    var copyProps = false;\n    if (isCombiningPath(fromPath)) {\n        var fromCombiningSubList = fromPath.__combiningSubList;\n        if (fromCombiningSubList.length === toPathListLen) {\n            fromPathList = fromCombiningSubList;\n        }\n        else {\n            fromPathList = divideShape(fromPath, toPathListLen, dividingMethod);\n            copyProps = true;\n        }\n    }\n    else {\n        fromPathList = divideShape(fromPath, toPathListLen, dividingMethod);\n        copyProps = true;\n    }\n    assert(fromPathList.length === toPathListLen);\n    for (var i = 0; i < toPathListLen; i++) {\n        if (copyProps && copyPropsIfDivided) {\n            copyPropsIfDivided(fromPath, fromPathList[i], false);\n        }\n        morphPath(fromPathList[i], toPathList[i], animationOpts);\n    }\n    return {\n        fromIndividuals: fromPathList,\n        toIndividuals: toPathList,\n        count: toPathListLen\n    };\n}\nfunction divideShape(path, separateCount, dividingMethod) {\n    return dividingMethod === 'duplicate'\n        ? duplicateShape(path, separateCount)\n        : splitShape(path, separateCount);\n}\nfunction splitShape(path, separateCount) {\n    var resultPaths = [];\n    if (separateCount <= 0) {\n        return resultPaths;\n    }\n    if (separateCount === 1) {\n        return duplicateShape(path, separateCount);\n    }\n    if (path instanceof Rect) {\n        var toPathShape = path.shape;\n        var splitPropIdx = toPathShape.height > toPathShape.width ? 1 : 0;\n        var propWH = PROP_WH[splitPropIdx];\n        var propXY = PROP_XY[splitPropIdx];\n        var subWH = toPathShape[propWH] / separateCount;\n        var xyCurr = toPathShape[propXY];\n        for (var i = 0; i < separateCount; i++, xyCurr += subWH) {\n            var subShape = {\n                x: toPathShape.x,\n                y: toPathShape.y,\n                width: toPathShape.width,\n                height: toPathShape.height\n            };\n            subShape[propXY] = xyCurr;\n            subShape[propWH] = i < separateCount - 1\n                ? subWH\n                : toPathShape[propXY] + toPathShape[propWH] - xyCurr;\n            var splitted = new Rect({ shape: subShape });\n            resultPaths.push(splitted);\n        }\n    }\n    else if (path instanceof Sector) {\n        var toPathShape = path.shape;\n        var clockwise = toPathShape.clockwise;\n        var startAngle = toPathShape.startAngle;\n        var endAngle = toPathShape.endAngle;\n        var endAngleNormalized = normalizeRadian(startAngle, toPathShape.endAngle, clockwise);\n        var step = (endAngleNormalized - startAngle) / separateCount;\n        var angleCurr = startAngle;\n        for (var i = 0; i < separateCount; i++, angleCurr += step) {\n            var splitted = new Sector({\n                shape: {\n                    cx: toPathShape.cx,\n                    cy: toPathShape.cy,\n                    r: toPathShape.r,\n                    r0: toPathShape.r0,\n                    clockwise: clockwise,\n                    startAngle: angleCurr,\n                    endAngle: i === separateCount - 1 ? endAngle : angleCurr + step\n                }\n            });\n            resultPaths.push(splitted);\n        }\n    }\n    else {\n        return duplicateShape(path, separateCount);\n    }\n    return resultPaths;\n}\nfunction duplicateShape(path, separateCount) {\n    var resultPaths = [];\n    if (separateCount <= 0) {\n        return resultPaths;\n    }\n    var ctor = path.constructor;\n    for (var i = 0; i < separateCount; i++) {\n        var sub = new ctor({\n            shape: clone(path.shape)\n        });\n        resultPaths.push(sub);\n    }\n    return resultPaths;\n}\nfunction normalizeRadian(start, end, clockwise) {\n    return end + PI2 * (Math[clockwise ? 'ceil' : 'floor']((start - end) / PI2));\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { hasOwn, assert, isString, retrieve2, retrieve3, defaults, each, keys, isArrayLike, bind, isFunction, eqNaN, indexOf, clone } from 'zrender/lib/core/util';\nimport * as graphicUtil from '../../util/graphic';\nimport { setDefaultStateProxy, enableHoverEmphasis } from '../../util/states';\nimport * as labelStyleHelper from '../../label/labelStyle';\nimport { getDefaultLabel } from '../helper/labelHelper';\nimport createListFromArray from '../helper/createListFromArray';\nimport { getLayoutOnAxis } from '../../layout/barGrid';\nimport DataDiffer from '../../data/DataDiffer';\nimport SeriesModel from '../../model/Series';\nimport ChartView from '../../view/Chart';\nimport { createClipPath } from '../helper/createClipPathFromCoordSys';\nimport prepareCartesian2d from '../../coord/cartesian/prepareCustom';\nimport prepareGeo from '../../coord/geo/prepareCustom';\nimport prepareSingleAxis from '../../coord/single/prepareCustom';\nimport preparePolar from '../../coord/polar/prepareCustom';\nimport prepareCalendar from '../../coord/calendar/prepareCustom';\nimport { makeInner, normalizeToArray } from '../../util/model';\nimport { convertToEC4StyleForCustomSerise, isEC4CompatibleStyle, convertFromEC4CompatibleStyle, warnDeprecated } from '../../util/styleCompat';\nimport Transformable from 'zrender/lib/core/Transformable';\nimport { cloneValue } from 'zrender/lib/animation/Animator';\nimport { warn, throwError } from '../../util/log';\nimport { combine, isInAnyMorphing, morphPath, isCombiningPath, separate } from 'zrender/lib/tool/morphPath';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport { createOrUpdatePatternFromDecal } from '../../util/decal';\nvar inner = makeInner();\nvar TRANSFORM_PROPS = {\n  x: 1,\n  y: 1,\n  scaleX: 1,\n  scaleY: 1,\n  originX: 1,\n  originY: 1,\n  rotation: 1\n};\nvar transformPropNamesStr = keys(TRANSFORM_PROPS).join(', ');\n;\nvar STYLE_VISUAL_TYPE = {\n  color: 'fill',\n  borderColor: 'stroke'\n};\nvar NON_STYLE_VISUAL_PROPS = {\n  symbol: 1,\n  symbolSize: 1,\n  symbolKeepAspect: 1,\n  legendSymbol: 1,\n  visualMeta: 1,\n  liftZ: 1,\n  decal: 1\n};\nvar EMPHASIS = 'emphasis';\nvar NORMAL = 'normal';\nvar BLUR = 'blur';\nvar SELECT = 'select';\nvar STATES = [NORMAL, EMPHASIS, BLUR, SELECT];\nvar PATH_ITEM_STYLE = {\n  normal: ['itemStyle'],\n  emphasis: [EMPHASIS, 'itemStyle'],\n  blur: [BLUR, 'itemStyle'],\n  select: [SELECT, 'itemStyle']\n};\nvar PATH_LABEL = {\n  normal: ['label'],\n  emphasis: [EMPHASIS, 'label'],\n  blur: [BLUR, 'label'],\n  select: [SELECT, 'label']\n};\nvar GROUP_DIFF_PREFIX = 'e\\0\\0';\nvar attachedTxInfoTmp = {\n  normal: {},\n  emphasis: {},\n  blur: {},\n  select: {}\n};\nvar LEGACY_TRANSFORM_PROPS = {\n  position: ['x', 'y'],\n  scale: ['scaleX', 'scaleY'],\n  origin: ['originX', 'originY']\n};\nvar tmpTransformable = new Transformable();\nvar prepareCustoms = {\n  cartesian2d: prepareCartesian2d,\n  geo: prepareGeo,\n  singleAxis: prepareSingleAxis,\n  polar: preparePolar,\n  calendar: prepareCalendar\n};\n\nvar CustomSeriesModel = function (_super) {\n  __extends(CustomSeriesModel, _super);\n\n  function CustomSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CustomSeriesModel.type;\n    return _this;\n  }\n\n  CustomSeriesModel.prototype.optionUpdated = function () {\n    this.currentZLevel = this.get('zlevel', true);\n    this.currentZ = this.get('z', true);\n  };\n\n  CustomSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListFromArray(this.getSource(), this);\n  };\n\n  CustomSeriesModel.prototype.getDataParams = function (dataIndex, dataType, el) {\n    var params = _super.prototype.getDataParams.call(this, dataIndex, dataType);\n\n    el && (params.info = inner(el).info);\n    return params;\n  };\n\n  CustomSeriesModel.type = 'series.custom';\n  CustomSeriesModel.dependencies = ['grid', 'polar', 'geo', 'singleAxis', 'calendar'];\n  CustomSeriesModel.defaultOption = {\n    coordinateSystem: 'cartesian2d',\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    clip: false\n  };\n  return CustomSeriesModel;\n}(SeriesModel);\n\nvar CustomSeriesView = function (_super) {\n  __extends(CustomSeriesView, _super);\n\n  function CustomSeriesView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CustomSeriesView.type;\n    return _this;\n  }\n\n  CustomSeriesView.prototype.render = function (customSeries, ecModel, api, payload) {\n    var oldData = this._data;\n    var data = customSeries.getData();\n    var group = this.group;\n    var renderItem = makeRenderItem(customSeries, data, ecModel, api);\n    var transOpt = customSeries.__transientTransitionOpt;\n\n    if (transOpt && (transOpt.from == null || transOpt.to == null)) {\n      oldData && oldData.each(function (oldIdx) {\n        doRemoveEl(oldData.getItemGraphicEl(oldIdx), customSeries, group);\n      });\n      data.each(function (newIdx) {\n        createOrUpdateItem(api, null, newIdx, renderItem(newIdx, payload), customSeries, group, data, null);\n      });\n    } else {\n      var morphPreparation_1 = new MorphPreparation(customSeries, transOpt);\n      var diffMode = transOpt ? 'multiple' : 'oneToOne';\n      new DataDiffer(oldData ? oldData.getIndices() : [], data.getIndices(), createGetKey(oldData, diffMode, transOpt && transOpt.from), createGetKey(data, diffMode, transOpt && transOpt.to), null, diffMode).add(function (newIdx) {\n        createOrUpdateItem(api, null, newIdx, renderItem(newIdx, payload), customSeries, group, data, null);\n      }).remove(function (oldIdx) {\n        doRemoveEl(oldData.getItemGraphicEl(oldIdx), customSeries, group);\n      }).update(function (newIdx, oldIdx) {\n        morphPreparation_1.reset('oneToOne');\n        var oldEl = oldData.getItemGraphicEl(oldIdx);\n        morphPreparation_1.findAndAddFrom(oldEl);\n\n        if (morphPreparation_1.hasFrom()) {\n          removeElementDirectly(oldEl, group);\n          oldEl = null;\n        }\n\n        createOrUpdateItem(api, oldEl, newIdx, renderItem(newIdx, payload), customSeries, group, data, morphPreparation_1);\n        morphPreparation_1.applyMorphing();\n      }).updateManyToOne(function (newIdx, oldIndices) {\n        morphPreparation_1.reset('manyToOne');\n\n        for (var i = 0; i < oldIndices.length; i++) {\n          var oldEl = oldData.getItemGraphicEl(oldIndices[i]);\n          morphPreparation_1.findAndAddFrom(oldEl);\n          removeElementDirectly(oldEl, group);\n        }\n\n        createOrUpdateItem(api, null, newIdx, renderItem(newIdx, payload), customSeries, group, data, morphPreparation_1);\n        morphPreparation_1.applyMorphing();\n      }).updateOneToMany(function (newIndices, oldIdx) {\n        morphPreparation_1.reset('oneToMany');\n        var newLen = newIndices.length;\n        var oldEl = oldData.getItemGraphicEl(oldIdx);\n        morphPreparation_1.findAndAddFrom(oldEl);\n        removeElementDirectly(oldEl, group);\n\n        for (var i = 0; i < newLen; i++) {\n          createOrUpdateItem(api, null, newIndices[i], renderItem(newIndices[i], payload), customSeries, group, data, morphPreparation_1);\n        }\n\n        morphPreparation_1.applyMorphing();\n      }).execute();\n    }\n\n    var clipPath = customSeries.get('clip', true) ? createClipPath(customSeries.coordinateSystem, false, customSeries) : null;\n\n    if (clipPath) {\n      group.setClipPath(clipPath);\n    } else {\n      group.removeClipPath();\n    }\n\n    this._data = data;\n  };\n\n  CustomSeriesView.prototype.incrementalPrepareRender = function (customSeries, ecModel, api) {\n    this.group.removeAll();\n    this._data = null;\n  };\n\n  CustomSeriesView.prototype.incrementalRender = function (params, customSeries, ecModel, api, payload) {\n    var data = customSeries.getData();\n    var renderItem = makeRenderItem(customSeries, data, ecModel, api);\n\n    function setIncrementalAndHoverLayer(el) {\n      if (!el.isGroup) {\n        el.incremental = true;\n        el.ensureState('emphasis').hoverLayer = true;\n      }\n    }\n\n    for (var idx = params.start; idx < params.end; idx++) {\n      var el = createOrUpdateItem(null, null, idx, renderItem(idx, payload), customSeries, this.group, data, null);\n      el.traverse(setIncrementalAndHoverLayer);\n    }\n  };\n\n  CustomSeriesView.prototype.filterForExposedEvent = function (eventType, query, targetEl, packedEvent) {\n    var elementName = query.element;\n\n    if (elementName == null || targetEl.name === elementName) {\n      return true;\n    }\n\n    while ((targetEl = targetEl.__hostTarget || targetEl.parent) && targetEl !== this.group) {\n      if (targetEl.name === elementName) {\n        return true;\n      }\n    }\n\n    return false;\n  };\n\n  CustomSeriesView.type = 'custom';\n  return CustomSeriesView;\n}(ChartView);\n\nfunction createGetKey(data, diffMode, dimension) {\n  if (!data) {\n    return;\n  }\n\n  if (diffMode === 'oneToOne') {\n    return function (rawIdx, dataIndex) {\n      return data.getId(dataIndex);\n    };\n  }\n\n  var diffByDimName = data.getDimension(dimension);\n  var dimInfo = data.getDimensionInfo(diffByDimName);\n\n  if (!dimInfo) {\n    var errMsg = '';\n\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = dimension + \" is not a valid dimension.\";\n    }\n\n    throwError(errMsg);\n  }\n\n  var ordinalMeta = dimInfo.ordinalMeta;\n  return function (rawIdx, dataIndex) {\n    var key = data.get(diffByDimName, dataIndex);\n\n    if (ordinalMeta) {\n      key = ordinalMeta.categories[key];\n    }\n\n    return key == null || eqNaN(key) ? rawIdx + '' : '_ec_' + key;\n  };\n}\n\nfunction createEl(elOption) {\n  var graphicType = elOption.type;\n  var el;\n\n  if (graphicType === 'path') {\n    var shape = elOption.shape;\n    var pathRect = shape.width != null && shape.height != null ? {\n      x: shape.x || 0,\n      y: shape.y || 0,\n      width: shape.width,\n      height: shape.height\n    } : null;\n    var pathData = getPathData(shape);\n    el = graphicUtil.makePath(pathData, null, pathRect, shape.layout || 'center');\n    inner(el).customPathData = pathData;\n  } else if (graphicType === 'image') {\n    el = new graphicUtil.Image({});\n    inner(el).customImagePath = elOption.style.image;\n  } else if (graphicType === 'text') {\n    el = new graphicUtil.Text({});\n  } else if (graphicType === 'group') {\n    el = new graphicUtil.Group();\n  } else if (graphicType === 'compoundPath') {\n    throw new Error('\"compoundPath\" is not supported yet.');\n  } else {\n    var Clz = graphicUtil.getShapeClass(graphicType);\n\n    if (!Clz) {\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'graphic type \"' + graphicType + '\" can not be found.';\n      }\n\n      throwError(errMsg);\n    }\n\n    el = new Clz();\n  }\n\n  inner(el).customGraphicType = graphicType;\n  el.name = elOption.name;\n  el.z2EmphasisLift = 1;\n  el.z2SelectLift = 1;\n  return el;\n}\n\nfunction updateElNormal(api, el, isMorphTo, dataIndex, elOption, styleOpt, attachedTxInfo, seriesModel, isInit, isTextContent) {\n  var transFromProps = {};\n  var allPropsFinal = {};\n  var elDisplayable = el.isGroup ? null : el;\n  !isMorphTo && prepareShapeOrExtraTransitionFrom('shape', el, null, elOption, transFromProps, isInit);\n  prepareShapeOrExtraAllPropsFinal('shape', elOption, allPropsFinal);\n  !isMorphTo && prepareShapeOrExtraTransitionFrom('extra', el, null, elOption, transFromProps, isInit);\n  prepareShapeOrExtraAllPropsFinal('extra', elOption, allPropsFinal);\n  !isMorphTo && prepareTransformTransitionFrom(el, null, elOption, transFromProps, isInit);\n  prepareTransformAllPropsFinal(elOption, allPropsFinal);\n  var txCfgOpt = attachedTxInfo && attachedTxInfo.normal.cfg;\n\n  if (txCfgOpt) {\n    el.setTextConfig(txCfgOpt);\n  }\n\n  if (el.type === 'text' && styleOpt) {\n    var textOptionStyle = styleOpt;\n    hasOwn(textOptionStyle, 'textFill') && (textOptionStyle.fill = textOptionStyle.textFill);\n    hasOwn(textOptionStyle, 'textStroke') && (textOptionStyle.stroke = textOptionStyle.textStroke);\n  }\n\n  if (styleOpt) {\n    var decalPattern = void 0;\n    var decalObj = isPath(el) ? styleOpt.decal : null;\n\n    if (api && decalObj) {\n      decalObj.dirty = true;\n      decalPattern = createOrUpdatePatternFromDecal(decalObj, api);\n    }\n\n    styleOpt.__decalPattern = decalPattern;\n  }\n\n  !isMorphTo && prepareStyleTransitionFrom(el, null, elOption, styleOpt, transFromProps, isInit);\n\n  if (elDisplayable) {\n    hasOwn(elOption, 'invisible') && (elDisplayable.invisible = elOption.invisible);\n  }\n\n  if (!isMorphTo) {\n    applyPropsFinal(el, allPropsFinal, styleOpt);\n    applyTransitionFrom(el, dataIndex, elOption, seriesModel, transFromProps, isInit);\n  }\n\n  hasOwn(elOption, 'silent') && (el.silent = elOption.silent);\n  hasOwn(elOption, 'ignore') && (el.ignore = elOption.ignore);\n\n  if (!isTextContent) {\n    hasOwn(elOption, 'info') && (inner(el).info = elOption.info);\n  }\n\n  styleOpt ? el.dirty() : el.markRedraw();\n  return isMorphTo ? allPropsFinal : null;\n}\n\nfunction applyPropsFinal(el, allPropsFinal, styleOpt) {\n  var elDisplayable = el.isGroup ? null : el;\n\n  if (elDisplayable && styleOpt) {\n    var decalPattern = styleOpt.__decalPattern;\n    var originalDecalObj = void 0;\n\n    if (decalPattern) {\n      originalDecalObj = styleOpt.decal;\n      styleOpt.decal = decalPattern;\n    }\n\n    elDisplayable.useStyle(styleOpt);\n\n    if (decalPattern) {\n      styleOpt.decal = originalDecalObj;\n    }\n\n    var animators = elDisplayable.animators;\n\n    for (var i = 0; i < animators.length; i++) {\n      var animator = animators[i];\n\n      if (animator.targetName === 'style') {\n        animator.changeTarget(elDisplayable.style);\n      }\n    }\n  }\n\n  allPropsFinal && el.attr(allPropsFinal);\n}\n\nfunction applyTransitionFrom(el, dataIndex, elOption, seriesModel, transFromProps, isInit) {\n  if (transFromProps) {\n    var userDuring = elOption.during;\n    inner(el).userDuring = userDuring;\n    var cfgDuringCall = userDuring ? bind(duringCall, {\n      el: el,\n      userDuring: userDuring\n    }) : null;\n    var cfg = {\n      dataIndex: dataIndex,\n      isFrom: true,\n      during: cfgDuringCall\n    };\n    isInit ? graphicUtil.initProps(el, transFromProps, seriesModel, cfg) : graphicUtil.updateProps(el, transFromProps, seriesModel, cfg);\n  }\n}\n\nfunction prepareShapeOrExtraTransitionFrom(mainAttr, el, morphFromEl, elOption, transFromProps, isInit) {\n  var attrOpt = elOption[mainAttr];\n\n  if (!attrOpt) {\n    return;\n  }\n\n  var elPropsInAttr = el[mainAttr];\n  var transFromPropsInAttr;\n  var enterFrom = attrOpt.enterFrom;\n\n  if (isInit && enterFrom) {\n    !transFromPropsInAttr && (transFromPropsInAttr = transFromProps[mainAttr] = {});\n    var enterFromKeys = keys(enterFrom);\n\n    for (var i = 0; i < enterFromKeys.length; i++) {\n      var key = enterFromKeys[i];\n      transFromPropsInAttr[key] = enterFrom[key];\n    }\n  }\n\n  if (!isInit && elPropsInAttr && !(morphFromEl != null && mainAttr === 'shape')) {\n    if (attrOpt.transition) {\n      !transFromPropsInAttr && (transFromPropsInAttr = transFromProps[mainAttr] = {});\n      var transitionKeys = normalizeToArray(attrOpt.transition);\n\n      for (var i = 0; i < transitionKeys.length; i++) {\n        var key = transitionKeys[i];\n        var elVal = elPropsInAttr[key];\n\n        if (process.env.NODE_ENV !== 'production') {\n          checkNonStyleTansitionRefer(key, attrOpt[key], elVal);\n        }\n\n        transFromPropsInAttr[key] = elVal;\n      }\n    } else if (indexOf(elOption.transition, mainAttr) >= 0) {\n      !transFromPropsInAttr && (transFromPropsInAttr = transFromProps[mainAttr] = {});\n      var elPropsInAttrKeys = keys(elPropsInAttr);\n\n      for (var i = 0; i < elPropsInAttrKeys.length; i++) {\n        var key = elPropsInAttrKeys[i];\n        var elVal = elPropsInAttr[key];\n\n        if (isNonStyleTransitionEnabled(attrOpt[key], elVal)) {\n          transFromPropsInAttr[key] = elVal;\n        }\n      }\n    }\n  }\n\n  var leaveTo = attrOpt.leaveTo;\n\n  if (leaveTo) {\n    var leaveToProps = getOrCreateLeaveToPropsFromEl(el);\n    var leaveToPropsInAttr = leaveToProps[mainAttr] || (leaveToProps[mainAttr] = {});\n    var leaveToKeys = keys(leaveTo);\n\n    for (var i = 0; i < leaveToKeys.length; i++) {\n      var key = leaveToKeys[i];\n      leaveToPropsInAttr[key] = leaveTo[key];\n    }\n  }\n}\n\nfunction prepareShapeOrExtraAllPropsFinal(mainAttr, elOption, allProps) {\n  var attrOpt = elOption[mainAttr];\n\n  if (!attrOpt) {\n    return;\n  }\n\n  var allPropsInAttr = allProps[mainAttr] = {};\n  var keysInAttr = keys(attrOpt);\n\n  for (var i = 0; i < keysInAttr.length; i++) {\n    var key = keysInAttr[i];\n    allPropsInAttr[key] = cloneValue(attrOpt[key]);\n  }\n}\n\nfunction prepareTransformTransitionFrom(el, morphFromEl, elOption, transFromProps, isInit) {\n  var enterFrom = elOption.enterFrom;\n\n  if (isInit && enterFrom) {\n    var enterFromKeys = keys(enterFrom);\n\n    for (var i = 0; i < enterFromKeys.length; i++) {\n      var key = enterFromKeys[i];\n\n      if (process.env.NODE_ENV !== 'production') {\n        checkTransformPropRefer(key, 'el.enterFrom');\n      }\n\n      transFromProps[key] = enterFrom[key];\n    }\n  }\n\n  if (!isInit) {\n    if (morphFromEl) {\n      var fromTransformable = calcOldElLocalTransformBasedOnNewElParent(morphFromEl, el);\n      setTransformPropToTransitionFrom(transFromProps, 'x', fromTransformable);\n      setTransformPropToTransitionFrom(transFromProps, 'y', fromTransformable);\n      setTransformPropToTransitionFrom(transFromProps, 'scaleX', fromTransformable);\n      setTransformPropToTransitionFrom(transFromProps, 'scaleY', fromTransformable);\n      setTransformPropToTransitionFrom(transFromProps, 'originX', fromTransformable);\n      setTransformPropToTransitionFrom(transFromProps, 'originY', fromTransformable);\n      setTransformPropToTransitionFrom(transFromProps, 'rotation', fromTransformable);\n    } else if (elOption.transition) {\n      var transitionKeys = normalizeToArray(elOption.transition);\n\n      for (var i = 0; i < transitionKeys.length; i++) {\n        var key = transitionKeys[i];\n\n        if (key === 'style' || key === 'shape' || key === 'extra') {\n          continue;\n        }\n\n        var elVal = el[key];\n\n        if (process.env.NODE_ENV !== 'production') {\n          checkTransformPropRefer(key, 'el.transition');\n          checkNonStyleTansitionRefer(key, elOption[key], elVal);\n        }\n\n        transFromProps[key] = elVal;\n      }\n    } else {\n      setTransformPropToTransitionFrom(transFromProps, 'x', el);\n      setTransformPropToTransitionFrom(transFromProps, 'y', el);\n    }\n  }\n\n  var leaveTo = elOption.leaveTo;\n\n  if (leaveTo) {\n    var leaveToProps = getOrCreateLeaveToPropsFromEl(el);\n    var leaveToKeys = keys(leaveTo);\n\n    for (var i = 0; i < leaveToKeys.length; i++) {\n      var key = leaveToKeys[i];\n\n      if (process.env.NODE_ENV !== 'production') {\n        checkTransformPropRefer(key, 'el.leaveTo');\n      }\n\n      leaveToProps[key] = leaveTo[key];\n    }\n  }\n}\n\nfunction prepareTransformAllPropsFinal(elOption, allProps) {\n  setLagecyTransformProp(elOption, allProps, 'position');\n  setLagecyTransformProp(elOption, allProps, 'scale');\n  setLagecyTransformProp(elOption, allProps, 'origin');\n  setTransformProp(elOption, allProps, 'x');\n  setTransformProp(elOption, allProps, 'y');\n  setTransformProp(elOption, allProps, 'scaleX');\n  setTransformProp(elOption, allProps, 'scaleY');\n  setTransformProp(elOption, allProps, 'originX');\n  setTransformProp(elOption, allProps, 'originY');\n  setTransformProp(elOption, allProps, 'rotation');\n}\n\nfunction prepareStyleTransitionFrom(el, morphFromEl, elOption, styleOpt, transFromProps, isInit) {\n  if (!styleOpt) {\n    return;\n  }\n\n  var fromEl = morphFromEl || el;\n  var fromElStyle = fromEl.style;\n  var transFromStyleProps;\n  var enterFrom = styleOpt.enterFrom;\n\n  if (isInit && enterFrom) {\n    var enterFromKeys = keys(enterFrom);\n    !transFromStyleProps && (transFromStyleProps = transFromProps.style = {});\n\n    for (var i = 0; i < enterFromKeys.length; i++) {\n      var key = enterFromKeys[i];\n      transFromStyleProps[key] = enterFrom[key];\n    }\n  }\n\n  if (!isInit && fromElStyle) {\n    if (styleOpt.transition) {\n      var transitionKeys = normalizeToArray(styleOpt.transition);\n      !transFromStyleProps && (transFromStyleProps = transFromProps.style = {});\n\n      for (var i = 0; i < transitionKeys.length; i++) {\n        var key = transitionKeys[i];\n        var elVal = fromElStyle[key];\n        transFromStyleProps[key] = elVal;\n      }\n    } else if (el.getAnimationStyleProps && indexOf(elOption.transition, 'style') >= 0) {\n      var animationProps = el.getAnimationStyleProps();\n      var animationStyleProps = animationProps ? animationProps.style : null;\n\n      if (animationStyleProps) {\n        !transFromStyleProps && (transFromStyleProps = transFromProps.style = {});\n        var styleKeys = keys(styleOpt);\n\n        for (var i = 0; i < styleKeys.length; i++) {\n          var key = styleKeys[i];\n\n          if (animationStyleProps[key]) {\n            var elVal = fromElStyle[key];\n            transFromStyleProps[key] = elVal;\n          }\n        }\n      }\n    }\n  }\n\n  var leaveTo = styleOpt.leaveTo;\n\n  if (leaveTo) {\n    var leaveToKeys = keys(leaveTo);\n    var leaveToProps = getOrCreateLeaveToPropsFromEl(el);\n    var leaveToStyleProps = leaveToProps.style || (leaveToProps.style = {});\n\n    for (var i = 0; i < leaveToKeys.length; i++) {\n      var key = leaveToKeys[i];\n      leaveToStyleProps[key] = leaveTo[key];\n    }\n  }\n}\n\nfunction calcOldElLocalTransformBasedOnNewElParent(oldEl, newEl) {\n  if (!oldEl || oldEl === newEl || oldEl.parent === newEl.parent) {\n    return oldEl;\n  }\n\n  var tmpM = tmpTransformable.transform || (tmpTransformable.transform = matrix.identity([]));\n  var oldGlobalTransform = oldEl.getComputedTransform();\n  oldGlobalTransform ? matrix.copy(tmpM, oldGlobalTransform) : matrix.identity(tmpM);\n  var newParent = newEl.parent;\n\n  if (newParent) {\n    newParent.getComputedTransform();\n  }\n\n  tmpTransformable.originX = oldEl.originX;\n  tmpTransformable.originY = oldEl.originY;\n  tmpTransformable.parent = newParent;\n  tmpTransformable.decomposeTransform();\n  return tmpTransformable;\n}\n\nvar checkNonStyleTansitionRefer;\n\nif (process.env.NODE_ENV !== 'production') {\n  checkNonStyleTansitionRefer = function (propName, optVal, elVal) {\n    if (!isArrayLike(optVal)) {\n      assert(optVal != null && isFinite(optVal), 'Prop `' + propName + '` must refer to a finite number or ArrayLike for transition.');\n    } else {\n      assert(optVal !== elVal, 'Prop `' + propName + '` must use different Array object each time for transition.');\n    }\n  };\n}\n\nfunction isNonStyleTransitionEnabled(optVal, elVal) {\n  return !isArrayLike(optVal) ? optVal != null && isFinite(optVal) : optVal !== elVal;\n}\n\nvar checkTransformPropRefer;\n\nif (process.env.NODE_ENV !== 'production') {\n  checkTransformPropRefer = function (key, usedIn) {\n    assert(hasOwn(TRANSFORM_PROPS, key), 'Prop `' + key + '` is not a permitted in `' + usedIn + '`. ' + 'Only `' + keys(TRANSFORM_PROPS).join('`, `') + '` are permitted.');\n  };\n}\n\nfunction getOrCreateLeaveToPropsFromEl(el) {\n  var innerEl = inner(el);\n  return innerEl.leaveToProps || (innerEl.leaveToProps = {});\n}\n\nvar tmpDuringScope = {};\nvar customDuringAPI = {\n  setTransform: function (key, val) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(hasOwn(TRANSFORM_PROPS, key), 'Only ' + transformPropNamesStr + ' available in `setTransform`.');\n    }\n\n    tmpDuringScope.el[key] = val;\n    return this;\n  },\n  getTransform: function (key) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(hasOwn(TRANSFORM_PROPS, key), 'Only ' + transformPropNamesStr + ' available in `getTransform`.');\n    }\n\n    return tmpDuringScope.el[key];\n  },\n  setShape: function (key, val) {\n    if (process.env.NODE_ENV !== 'production') {\n      assertNotReserved(key);\n    }\n\n    var shape = tmpDuringScope.el.shape || (tmpDuringScope.el.shape = {});\n    shape[key] = val;\n    tmpDuringScope.isShapeDirty = true;\n    return this;\n  },\n  getShape: function (key) {\n    if (process.env.NODE_ENV !== 'production') {\n      assertNotReserved(key);\n    }\n\n    var shape = tmpDuringScope.el.shape;\n\n    if (shape) {\n      return shape[key];\n    }\n  },\n  setStyle: function (key, val) {\n    if (process.env.NODE_ENV !== 'production') {\n      assertNotReserved(key);\n    }\n\n    var style = tmpDuringScope.el.style;\n\n    if (style) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (eqNaN(val)) {\n          warn('style.' + key + ' must not be assigned with NaN.');\n        }\n      }\n\n      style[key] = val;\n      tmpDuringScope.isStyleDirty = true;\n    }\n\n    return this;\n  },\n  getStyle: function (key) {\n    if (process.env.NODE_ENV !== 'production') {\n      assertNotReserved(key);\n    }\n\n    var style = tmpDuringScope.el.style;\n\n    if (style) {\n      return style[key];\n    }\n  },\n  setExtra: function (key, val) {\n    if (process.env.NODE_ENV !== 'production') {\n      assertNotReserved(key);\n    }\n\n    var extra = tmpDuringScope.el.extra || (tmpDuringScope.el.extra = {});\n    extra[key] = val;\n    return this;\n  },\n  getExtra: function (key) {\n    if (process.env.NODE_ENV !== 'production') {\n      assertNotReserved(key);\n    }\n\n    var extra = tmpDuringScope.el.extra;\n\n    if (extra) {\n      return extra[key];\n    }\n  }\n};\n\nfunction assertNotReserved(key) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (key === 'transition' || key === 'enterFrom' || key === 'leaveTo') {\n      throw new Error('key must not be \"' + key + '\"');\n    }\n  }\n}\n\nfunction duringCall() {\n  var scope = this;\n  var el = scope.el;\n\n  if (!el) {\n    return;\n  }\n\n  var newstUserDuring = inner(el).userDuring;\n  var scopeUserDuring = scope.userDuring;\n\n  if (newstUserDuring !== scopeUserDuring) {\n    scope.el = scope.userDuring = null;\n    return;\n  }\n\n  tmpDuringScope.el = el;\n  tmpDuringScope.isShapeDirty = false;\n  tmpDuringScope.isStyleDirty = false;\n  scopeUserDuring(customDuringAPI);\n\n  if (tmpDuringScope.isShapeDirty && el.dirtyShape) {\n    el.dirtyShape();\n  }\n\n  if (tmpDuringScope.isStyleDirty && el.dirtyStyle) {\n    el.dirtyStyle();\n  }\n}\n\nfunction updateElOnState(state, el, elStateOpt, styleOpt, attachedTxInfo, isRoot, isTextContent) {\n  var elDisplayable = el.isGroup ? null : el;\n  var txCfgOpt = attachedTxInfo && attachedTxInfo[state].cfg;\n\n  if (elDisplayable) {\n    var stateObj = elDisplayable.ensureState(state);\n\n    if (styleOpt === false) {\n      var existingEmphasisState = elDisplayable.getState(state);\n\n      if (existingEmphasisState) {\n        existingEmphasisState.style = null;\n      }\n    } else {\n      stateObj.style = styleOpt || null;\n    }\n\n    if (txCfgOpt) {\n      stateObj.textConfig = txCfgOpt;\n    }\n\n    setDefaultStateProxy(elDisplayable);\n  }\n}\n\nfunction updateZ(el, elOption, seriesModel, attachedTxInfo) {\n  if (el.isGroup) {\n    return;\n  }\n\n  var elDisplayable = el;\n  var currentZ = seriesModel.currentZ;\n  var currentZLevel = seriesModel.currentZLevel;\n  elDisplayable.z = currentZ;\n  elDisplayable.zlevel = currentZLevel;\n  var optZ2 = elOption.z2;\n  optZ2 != null && (elDisplayable.z2 = optZ2 || 0);\n\n  for (var i = 0; i < STATES.length; i++) {\n    updateZForEachState(elDisplayable, elOption, STATES[i]);\n  }\n}\n\nfunction updateZForEachState(elDisplayable, elOption, state) {\n  var isNormal = state === NORMAL;\n  var elStateOpt = isNormal ? elOption : retrieveStateOption(elOption, state);\n  var optZ2 = elStateOpt ? elStateOpt.z2 : null;\n  var stateObj;\n\n  if (optZ2 != null) {\n    stateObj = isNormal ? elDisplayable : elDisplayable.ensureState(state);\n    stateObj.z2 = optZ2 || 0;\n  }\n}\n\nfunction setLagecyTransformProp(elOption, targetProps, legacyName, fromTransformable) {\n  var legacyArr = elOption[legacyName];\n  var xyName = LEGACY_TRANSFORM_PROPS[legacyName];\n\n  if (legacyArr) {\n    if (fromTransformable) {\n      targetProps[xyName[0]] = fromTransformable[xyName[0]];\n      targetProps[xyName[1]] = fromTransformable[xyName[1]];\n    } else {\n      targetProps[xyName[0]] = legacyArr[0];\n      targetProps[xyName[1]] = legacyArr[1];\n    }\n  }\n}\n\nfunction setTransformProp(elOption, allProps, name, fromTransformable) {\n  if (elOption[name] != null) {\n    allProps[name] = fromTransformable ? fromTransformable[name] : elOption[name];\n  }\n}\n\nfunction setTransformPropToTransitionFrom(transitionFrom, name, fromTransformable) {\n  if (fromTransformable) {\n    transitionFrom[name] = fromTransformable[name];\n  }\n}\n\nfunction makeRenderItem(customSeries, data, ecModel, api) {\n  var renderItem = customSeries.get('renderItem');\n  var coordSys = customSeries.coordinateSystem;\n  var prepareResult = {};\n\n  if (coordSys) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(renderItem, 'series.render is required.');\n      assert(coordSys.prepareCustoms || prepareCustoms[coordSys.type], 'This coordSys does not support custom series.');\n    }\n\n    prepareResult = coordSys.prepareCustoms ? coordSys.prepareCustoms(coordSys) : prepareCustoms[coordSys.type](coordSys);\n  }\n\n  var userAPI = defaults({\n    getWidth: api.getWidth,\n    getHeight: api.getHeight,\n    getZr: api.getZr,\n    getDevicePixelRatio: api.getDevicePixelRatio,\n    value: value,\n    style: style,\n    ordinalRawValue: ordinalRawValue,\n    styleEmphasis: styleEmphasis,\n    visual: visual,\n    barLayout: barLayout,\n    currentSeriesIndices: currentSeriesIndices,\n    font: font\n  }, prepareResult.api || {});\n  var userParams = {\n    context: {},\n    seriesId: customSeries.id,\n    seriesName: customSeries.name,\n    seriesIndex: customSeries.seriesIndex,\n    coordSys: prepareResult.coordSys,\n    dataInsideLength: data.count(),\n    encode: wrapEncodeDef(customSeries.getData())\n  };\n  var currDataIndexInside;\n  var currItemModel;\n  var currItemStyleModels = {};\n  var currLabelModels = {};\n  var seriesItemStyleModels = {};\n  var seriesLabelModels = {};\n\n  for (var i = 0; i < STATES.length; i++) {\n    var stateName = STATES[i];\n    seriesItemStyleModels[stateName] = customSeries.getModel(PATH_ITEM_STYLE[stateName]);\n    seriesLabelModels[stateName] = customSeries.getModel(PATH_LABEL[stateName]);\n  }\n\n  function getItemModel(dataIndexInside) {\n    return dataIndexInside === currDataIndexInside ? currItemModel || (currItemModel = data.getItemModel(dataIndexInside)) : data.getItemModel(dataIndexInside);\n  }\n\n  function getItemStyleModel(dataIndexInside, state) {\n    return !data.hasItemOption ? seriesItemStyleModels[state] : dataIndexInside === currDataIndexInside ? currItemStyleModels[state] || (currItemStyleModels[state] = getItemModel(dataIndexInside).getModel(PATH_ITEM_STYLE[state])) : getItemModel(dataIndexInside).getModel(PATH_ITEM_STYLE[state]);\n  }\n\n  function getLabelModel(dataIndexInside, state) {\n    return !data.hasItemOption ? seriesLabelModels[state] : dataIndexInside === currDataIndexInside ? currLabelModels[state] || (currLabelModels[state] = getItemModel(dataIndexInside).getModel(PATH_LABEL[state])) : getItemModel(dataIndexInside).getModel(PATH_LABEL[state]);\n  }\n\n  return function (dataIndexInside, payload) {\n    currDataIndexInside = dataIndexInside;\n    currItemModel = null;\n    currItemStyleModels = {};\n    currLabelModels = {};\n    return renderItem && renderItem(defaults({\n      dataIndexInside: dataIndexInside,\n      dataIndex: data.getRawIndex(dataIndexInside),\n      actionType: payload ? payload.type : null\n    }, userParams), userAPI);\n  };\n\n  function value(dim, dataIndexInside) {\n    dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n    return data.get(data.getDimension(dim || 0), dataIndexInside);\n  }\n\n  function ordinalRawValue(dim, dataIndexInside) {\n    dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n    var dimInfo = data.getDimensionInfo(dim || 0);\n\n    if (!dimInfo) {\n      return;\n    }\n\n    var val = data.get(dimInfo.name, dataIndexInside);\n    var ordinalMeta = dimInfo && dimInfo.ordinalMeta;\n    return ordinalMeta ? ordinalMeta.categories[val] : val;\n  }\n\n  function style(userProps, dataIndexInside) {\n    if (process.env.NODE_ENV !== 'production') {\n      warnDeprecated('api.style', 'Please write literal style directly instead.');\n    }\n\n    dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n    var style = data.getItemVisual(dataIndexInside, 'style');\n    var visualColor = style && style.fill;\n    var opacity = style && style.opacity;\n    var itemStyle = getItemStyleModel(dataIndexInside, NORMAL).getItemStyle();\n    visualColor != null && (itemStyle.fill = visualColor);\n    opacity != null && (itemStyle.opacity = opacity);\n    var opt = {\n      inheritColor: isString(visualColor) ? visualColor : '#000'\n    };\n    var labelModel = getLabelModel(dataIndexInside, NORMAL);\n    var textStyle = labelStyleHelper.createTextStyle(labelModel, null, opt, false, true);\n    textStyle.text = labelModel.getShallow('show') ? retrieve2(customSeries.getFormattedLabel(dataIndexInside, NORMAL), getDefaultLabel(data, dataIndexInside)) : null;\n    var textConfig = labelStyleHelper.createTextConfig(labelModel, opt, false);\n    preFetchFromExtra(userProps, itemStyle);\n    itemStyle = convertToEC4StyleForCustomSerise(itemStyle, textStyle, textConfig);\n    userProps && applyUserPropsAfter(itemStyle, userProps);\n    itemStyle.legacy = true;\n    return itemStyle;\n  }\n\n  function styleEmphasis(userProps, dataIndexInside) {\n    if (process.env.NODE_ENV !== 'production') {\n      warnDeprecated('api.styleEmphasis', 'Please write literal style directly instead.');\n    }\n\n    dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n    var itemStyle = getItemStyleModel(dataIndexInside, EMPHASIS).getItemStyle();\n    var labelModel = getLabelModel(dataIndexInside, EMPHASIS);\n    var textStyle = labelStyleHelper.createTextStyle(labelModel, null, null, true, true);\n    textStyle.text = labelModel.getShallow('show') ? retrieve3(customSeries.getFormattedLabel(dataIndexInside, EMPHASIS), customSeries.getFormattedLabel(dataIndexInside, NORMAL), getDefaultLabel(data, dataIndexInside)) : null;\n    var textConfig = labelStyleHelper.createTextConfig(labelModel, null, true);\n    preFetchFromExtra(userProps, itemStyle);\n    itemStyle = convertToEC4StyleForCustomSerise(itemStyle, textStyle, textConfig);\n    userProps && applyUserPropsAfter(itemStyle, userProps);\n    itemStyle.legacy = true;\n    return itemStyle;\n  }\n\n  function applyUserPropsAfter(itemStyle, extra) {\n    for (var key in extra) {\n      if (hasOwn(extra, key)) {\n        itemStyle[key] = extra[key];\n      }\n    }\n  }\n\n  function preFetchFromExtra(extra, itemStyle) {\n    if (extra) {\n      extra.textFill && (itemStyle.textFill = extra.textFill);\n      extra.textPosition && (itemStyle.textPosition = extra.textPosition);\n    }\n  }\n\n  function visual(visualType, dataIndexInside) {\n    dataIndexInside == null && (dataIndexInside = currDataIndexInside);\n\n    if (hasOwn(STYLE_VISUAL_TYPE, visualType)) {\n      var style_1 = data.getItemVisual(dataIndexInside, 'style');\n      return style_1 ? style_1[STYLE_VISUAL_TYPE[visualType]] : null;\n    }\n\n    if (hasOwn(NON_STYLE_VISUAL_PROPS, visualType)) {\n      return data.getItemVisual(dataIndexInside, visualType);\n    }\n  }\n\n  function barLayout(opt) {\n    if (coordSys.type === 'cartesian2d') {\n      var baseAxis = coordSys.getBaseAxis();\n      return getLayoutOnAxis(defaults({\n        axis: baseAxis\n      }, opt));\n    }\n  }\n\n  function currentSeriesIndices() {\n    return ecModel.getCurrentSeriesIndices();\n  }\n\n  function font(opt) {\n    return labelStyleHelper.getFont(opt, ecModel);\n  }\n}\n\nfunction wrapEncodeDef(data) {\n  var encodeDef = {};\n  each(data.dimensions, function (dimName, dataDimIndex) {\n    var dimInfo = data.getDimensionInfo(dimName);\n\n    if (!dimInfo.isExtraCoord) {\n      var coordDim = dimInfo.coordDim;\n      var dataDims = encodeDef[coordDim] = encodeDef[coordDim] || [];\n      dataDims[dimInfo.coordDimIndex] = dataDimIndex;\n    }\n  });\n  return encodeDef;\n}\n\nfunction createOrUpdateItem(api, el, dataIndex, elOption, seriesModel, group, data, morphPreparation) {\n  if (!elOption) {\n    removeElementDirectly(el, group);\n    return;\n  }\n\n  el = doCreateOrUpdateEl(api, el, dataIndex, elOption, seriesModel, group, true, morphPreparation);\n  el && data.setItemGraphicEl(dataIndex, el);\n  enableHoverEmphasis(el, elOption.focus, elOption.blurScope);\n  return el;\n}\n\nfunction doCreateOrUpdateEl(api, el, dataIndex, elOption, seriesModel, group, isRoot, morphPreparation) {\n  if (process.env.NODE_ENV !== 'production') {\n    assert(elOption, 'should not have an null/undefined element setting');\n  }\n\n  var toBeReplacedIdx = -1;\n\n  if (el && doesElNeedRecreate(el, elOption)) {\n    toBeReplacedIdx = group.childrenRef().indexOf(el);\n    el = null;\n  }\n\n  var elIsNewCreated = !el;\n\n  if (!el) {\n    el = createEl(elOption);\n  } else {\n    el.clearStates();\n  }\n\n  var canMorph = inner(el).canMorph = elOption.morph && isPath(el);\n  var thisElIsMorphTo = canMorph && morphPreparation && morphPreparation.hasFrom();\n  var isInit = elIsNewCreated && !thisElIsMorphTo;\n  attachedTxInfoTmp.normal.cfg = attachedTxInfoTmp.normal.conOpt = attachedTxInfoTmp.emphasis.cfg = attachedTxInfoTmp.emphasis.conOpt = attachedTxInfoTmp.blur.cfg = attachedTxInfoTmp.blur.conOpt = attachedTxInfoTmp.select.cfg = attachedTxInfoTmp.select.conOpt = null;\n  attachedTxInfoTmp.isLegacy = false;\n  doCreateOrUpdateAttachedTx(el, dataIndex, elOption, seriesModel, isInit, attachedTxInfoTmp);\n  doCreateOrUpdateClipPath(el, dataIndex, elOption, seriesModel, isInit);\n  var pendingAllPropsFinal = updateElNormal(api, el, thisElIsMorphTo, dataIndex, elOption, elOption.style, attachedTxInfoTmp, seriesModel, isInit, false);\n\n  if (thisElIsMorphTo) {\n    morphPreparation.addTo(el, elOption, dataIndex, pendingAllPropsFinal);\n  }\n\n  for (var i = 0; i < STATES.length; i++) {\n    var stateName = STATES[i];\n\n    if (stateName !== NORMAL) {\n      var otherStateOpt = retrieveStateOption(elOption, stateName);\n      var otherStyleOpt = retrieveStyleOptionOnState(elOption, otherStateOpt, stateName);\n      updateElOnState(stateName, el, otherStateOpt, otherStyleOpt, attachedTxInfoTmp, isRoot, false);\n    }\n  }\n\n  updateZ(el, elOption, seriesModel, attachedTxInfoTmp);\n\n  if (elOption.type === 'group') {\n    mergeChildren(api, el, dataIndex, elOption, seriesModel, morphPreparation);\n  }\n\n  if (toBeReplacedIdx >= 0) {\n    group.replaceAt(el, toBeReplacedIdx);\n  } else {\n    group.add(el);\n  }\n\n  return el;\n}\n\nfunction doesElNeedRecreate(el, elOption) {\n  var elInner = inner(el);\n  var elOptionType = elOption.type;\n  var elOptionShape = elOption.shape;\n  var elOptionStyle = elOption.style;\n  return elOptionType != null && elOptionType !== elInner.customGraphicType || elOptionType === 'path' && hasOwnPathData(elOptionShape) && getPathData(elOptionShape) !== elInner.customPathData || elOptionType === 'image' && hasOwn(elOptionStyle, 'image') && elOptionStyle.image !== elInner.customImagePath;\n}\n\nfunction doCreateOrUpdateClipPath(el, dataIndex, elOption, seriesModel, isInit) {\n  var clipPathOpt = elOption.clipPath;\n\n  if (clipPathOpt === false) {\n    if (el && el.getClipPath()) {\n      el.removeClipPath();\n    }\n  } else if (clipPathOpt) {\n    var clipPath = el.getClipPath();\n\n    if (clipPath && doesElNeedRecreate(clipPath, clipPathOpt)) {\n      clipPath = null;\n    }\n\n    if (!clipPath) {\n      clipPath = createEl(clipPathOpt);\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(clipPath instanceof graphicUtil.Path, 'Only any type of `path` can be used in `clipPath`, rather than ' + clipPath.type + '.');\n      }\n\n      el.setClipPath(clipPath);\n    }\n\n    updateElNormal(null, clipPath, null, dataIndex, clipPathOpt, null, null, seriesModel, isInit, false);\n  }\n}\n\nfunction doCreateOrUpdateAttachedTx(el, dataIndex, elOption, seriesModel, isInit, attachedTxInfo) {\n  if (el.isGroup) {\n    return;\n  }\n\n  processTxInfo(elOption, null, attachedTxInfo);\n  processTxInfo(elOption, EMPHASIS, attachedTxInfo);\n  var txConOptNormal = attachedTxInfo.normal.conOpt;\n  var txConOptEmphasis = attachedTxInfo.emphasis.conOpt;\n  var txConOptBlur = attachedTxInfo.blur.conOpt;\n  var txConOptSelect = attachedTxInfo.select.conOpt;\n\n  if (txConOptNormal != null || txConOptEmphasis != null || txConOptSelect != null || txConOptBlur != null) {\n    var textContent = el.getTextContent();\n\n    if (txConOptNormal === false) {\n      textContent && el.removeTextContent();\n    } else {\n      txConOptNormal = attachedTxInfo.normal.conOpt = txConOptNormal || {\n        type: 'text'\n      };\n\n      if (!textContent) {\n        textContent = createEl(txConOptNormal);\n        el.setTextContent(textContent);\n      } else {\n        textContent.clearStates();\n      }\n\n      var txConStlOptNormal = txConOptNormal && txConOptNormal.style;\n      updateElNormal(null, textContent, null, dataIndex, txConOptNormal, txConStlOptNormal, null, seriesModel, isInit, true);\n\n      for (var i = 0; i < STATES.length; i++) {\n        var stateName = STATES[i];\n\n        if (stateName !== NORMAL) {\n          var txConOptOtherState = attachedTxInfo[stateName].conOpt;\n          updateElOnState(stateName, textContent, txConOptOtherState, retrieveStyleOptionOnState(txConOptNormal, txConOptOtherState, stateName), null, false, true);\n        }\n      }\n\n      txConStlOptNormal ? textContent.dirty() : textContent.markRedraw();\n    }\n  }\n}\n\nfunction processTxInfo(elOption, state, attachedTxInfo) {\n  var stateOpt = !state ? elOption : retrieveStateOption(elOption, state);\n  var styleOpt = !state ? elOption.style : retrieveStyleOptionOnState(elOption, stateOpt, EMPHASIS);\n  var elType = elOption.type;\n  var txCfg = stateOpt ? stateOpt.textConfig : null;\n  var txConOptNormal = elOption.textContent;\n  var txConOpt = !txConOptNormal ? null : !state ? txConOptNormal : retrieveStateOption(txConOptNormal, state);\n\n  if (styleOpt && (attachedTxInfo.isLegacy || isEC4CompatibleStyle(styleOpt, elType, !!txCfg, !!txConOpt))) {\n    attachedTxInfo.isLegacy = true;\n    var convertResult = convertFromEC4CompatibleStyle(styleOpt, elType, !state);\n\n    if (!txCfg && convertResult.textConfig) {\n      txCfg = convertResult.textConfig;\n    }\n\n    if (!txConOpt && convertResult.textContent) {\n      txConOpt = convertResult.textContent;\n    }\n  }\n\n  if (!state && txConOpt) {\n    var txConOptNormal_1 = txConOpt;\n    !txConOptNormal_1.type && (txConOptNormal_1.type = 'text');\n\n    if (process.env.NODE_ENV !== 'production') {\n      txConOptNormal_1.type !== 'text' && assert(txConOptNormal_1.type === 'text', 'textContent.type must be \"text\"');\n    }\n  }\n\n  var info = !state ? attachedTxInfo.normal : attachedTxInfo[state];\n  info.cfg = txCfg;\n  info.conOpt = txConOpt;\n}\n\nfunction retrieveStateOption(elOption, state) {\n  return !state ? elOption : elOption ? elOption[state] : null;\n}\n\nfunction retrieveStyleOptionOnState(stateOptionNormal, stateOption, state) {\n  var style = stateOption && stateOption.style;\n\n  if (style == null && state === EMPHASIS && stateOptionNormal) {\n    style = stateOptionNormal.styleEmphasis;\n  }\n\n  return style;\n}\n\nfunction mergeChildren(api, el, dataIndex, elOption, seriesModel, morphPreparation) {\n  var newChildren = elOption.children;\n  var newLen = newChildren ? newChildren.length : 0;\n  var mergeChildren = elOption.$mergeChildren;\n  var byName = mergeChildren === 'byName' || elOption.diffChildrenByName;\n  var notMerge = mergeChildren === false;\n\n  if (!newLen && !byName && !notMerge) {\n    return;\n  }\n\n  if (byName) {\n    diffGroupChildren({\n      api: api,\n      oldChildren: el.children() || [],\n      newChildren: newChildren || [],\n      dataIndex: dataIndex,\n      seriesModel: seriesModel,\n      group: el,\n      morphPreparation: morphPreparation\n    });\n    return;\n  }\n\n  notMerge && el.removeAll();\n  var index = 0;\n\n  for (; index < newLen; index++) {\n    newChildren[index] && doCreateOrUpdateEl(api, el.childAt(index), dataIndex, newChildren[index], seriesModel, el, false, morphPreparation);\n  }\n\n  for (var i = el.childCount() - 1; i >= index; i--) {\n    doRemoveEl(el.childAt(i), seriesModel, el);\n  }\n}\n\nfunction diffGroupChildren(context) {\n  new DataDiffer(context.oldChildren, context.newChildren, getKey, getKey, context).add(processAddUpdate).update(processAddUpdate).remove(processRemove).execute();\n}\n\nfunction getKey(item, idx) {\n  var name = item && item.name;\n  return name != null ? name : GROUP_DIFF_PREFIX + idx;\n}\n\nfunction processAddUpdate(newIndex, oldIndex) {\n  var context = this.context;\n  var childOption = newIndex != null ? context.newChildren[newIndex] : null;\n  var child = oldIndex != null ? context.oldChildren[oldIndex] : null;\n  doCreateOrUpdateEl(context.api, child, context.dataIndex, childOption, context.seriesModel, context.group, false, context.morphPreparation);\n}\n\nfunction processRemove(oldIndex) {\n  var context = this.context;\n  var child = context.oldChildren[oldIndex];\n  doRemoveEl(child, context.seriesModel, context.group);\n}\n\nfunction doRemoveEl(el, seriesModel, group) {\n  if (el) {\n    var leaveToProps = inner(el).leaveToProps;\n    leaveToProps ? graphicUtil.updateProps(el, leaveToProps, seriesModel, {\n      cb: function () {\n        group.remove(el);\n      }\n    }) : group.remove(el);\n  }\n}\n\nfunction getPathData(shape) {\n  return shape && (shape.pathData || shape.d);\n}\n\nfunction hasOwnPathData(shape) {\n  return shape && (hasOwn(shape, 'pathData') || hasOwn(shape, 'd'));\n}\n\nfunction isPath(el) {\n  return el && el instanceof graphicUtil.Path;\n}\n\nfunction removeElementDirectly(el, group) {\n  el && group.remove(el);\n}\n\nvar MorphPreparation = function () {\n  function MorphPreparation(seriesModel, transOpt) {\n    this._fromList = [];\n    this._toList = [];\n    this._toElOptionList = [];\n    this._allPropsFinalList = [];\n    this._toDataIndices = [];\n    this._morphConfigList = [];\n    this._seriesModel = seriesModel;\n    this._transOpt = transOpt;\n  }\n\n  MorphPreparation.prototype.hasFrom = function () {\n    return !!this._fromList.length;\n  };\n\n  MorphPreparation.prototype.findAndAddFrom = function (el) {\n    if (!el) {\n      return;\n    }\n\n    if (inner(el).canMorph) {\n      this._fromList.push(el);\n    }\n\n    if (el.isGroup) {\n      var children = el.childrenRef();\n\n      for (var i = 0; i < children.length; i++) {\n        this.findAndAddFrom(children[i]);\n      }\n    }\n  };\n\n  MorphPreparation.prototype.addTo = function (path, elOption, dataIndex, allPropsFinal) {\n    if (path) {\n      this._toList.push(path);\n\n      this._toElOptionList.push(elOption);\n\n      this._toDataIndices.push(dataIndex);\n\n      this._allPropsFinalList.push(allPropsFinal);\n    }\n  };\n\n  MorphPreparation.prototype.applyMorphing = function () {\n    var type = this._type;\n    var fromList = this._fromList;\n    var toList = this._toList;\n    var toListLen = toList.length;\n    var fromListLen = fromList.length;\n\n    if (!fromListLen || !toListLen) {\n      return;\n    }\n\n    if (type === 'oneToOne') {\n      for (var toIdx = 0; toIdx < toListLen; toIdx++) {\n        this._oneToOneForSingleTo(toIdx, toIdx);\n      }\n    } else if (type === 'manyToOne') {\n      var fromSingleSegLen = Math.max(1, Math.floor(fromListLen / toListLen));\n\n      for (var toIdx = 0, fromIdxStart = 0; toIdx < toListLen; toIdx++, fromIdxStart += fromSingleSegLen) {\n        var fromCount = toIdx + 1 >= toListLen ? fromListLen - fromIdxStart : fromSingleSegLen;\n\n        this._manyToOneForSingleTo(toIdx, fromIdxStart >= fromListLen ? null : fromIdxStart, fromCount);\n      }\n    } else if (type === 'oneToMany') {\n      var toSingleSegLen = Math.max(1, Math.floor(toListLen / fromListLen));\n\n      for (var toIdxStart = 0, fromIdx = 0; toIdxStart < toListLen; toIdxStart += toSingleSegLen, fromIdx++) {\n        var toCount = toIdxStart + toSingleSegLen >= toListLen ? toListLen - toIdxStart : toSingleSegLen;\n\n        this._oneToManyForSingleFrom(toIdxStart, toCount, fromIdx >= fromListLen ? null : fromIdx);\n      }\n    }\n  };\n\n  MorphPreparation.prototype._oneToOneForSingleTo = function (toIdx, fromIdx) {\n    var to = this._toList[toIdx];\n    var toElOption = this._toElOptionList[toIdx];\n    var toDataIndex = this._toDataIndices[toIdx];\n    var allPropsFinal = this._allPropsFinalList[toIdx];\n    var from = this._fromList[fromIdx];\n\n    var elAnimationConfig = this._getOrCreateMorphConfig(toDataIndex);\n\n    var morphDuration = elAnimationConfig.duration;\n\n    if (from && isCombiningPath(from)) {\n      applyPropsFinal(to, allPropsFinal, toElOption.style);\n\n      if (morphDuration) {\n        var combineResult = combine([from], to, elAnimationConfig, copyPropsWhenDivided);\n\n        this._processResultIndividuals(combineResult, toIdx, null);\n      }\n    } else {\n      var morphFrom = morphDuration && from && (from !== to || isInAnyMorphing(from)) ? from : null;\n      var transFromProps = {};\n      prepareShapeOrExtraTransitionFrom('shape', to, morphFrom, toElOption, transFromProps, false);\n      prepareShapeOrExtraTransitionFrom('extra', to, morphFrom, toElOption, transFromProps, false);\n      prepareTransformTransitionFrom(to, morphFrom, toElOption, transFromProps, false);\n      prepareStyleTransitionFrom(to, morphFrom, toElOption, toElOption.style, transFromProps, false);\n      applyPropsFinal(to, allPropsFinal, toElOption.style);\n\n      if (morphFrom) {\n        morphPath(morphFrom, to, elAnimationConfig);\n      }\n\n      applyTransitionFrom(to, toDataIndex, toElOption, this._seriesModel, transFromProps, false);\n    }\n  };\n\n  MorphPreparation.prototype._manyToOneForSingleTo = function (toIdx, fromIdxStart, fromCount) {\n    var to = this._toList[toIdx];\n    var toElOption = this._toElOptionList[toIdx];\n    var allPropsFinal = this._allPropsFinalList[toIdx];\n    applyPropsFinal(to, allPropsFinal, toElOption.style);\n\n    var elAnimationConfig = this._getOrCreateMorphConfig(this._toDataIndices[toIdx]);\n\n    if (elAnimationConfig.duration && fromIdxStart != null) {\n      var combineFromList = [];\n\n      for (var fromIdx = fromIdxStart; fromIdx < fromCount; fromIdx++) {\n        combineFromList.push(this._fromList[fromIdx]);\n      }\n\n      var combineResult = combine(combineFromList, to, elAnimationConfig, copyPropsWhenDivided);\n\n      this._processResultIndividuals(combineResult, toIdx, null);\n    }\n  };\n\n  MorphPreparation.prototype._oneToManyForSingleFrom = function (toIdxStart, toCount, fromIdx) {\n    var from = fromIdx == null ? null : this._fromList[fromIdx];\n    var toList = this._toList;\n    var separateToList = [];\n\n    for (var toIdx = toIdxStart; toIdx < toCount; toIdx++) {\n      var to = toList[toIdx];\n      applyPropsFinal(to, this._allPropsFinalList[toIdx], this._toElOptionList[toIdx].style);\n      separateToList.push(to);\n    }\n\n    var elAnimationConfig = this._getOrCreateMorphConfig(this._toDataIndices[toIdxStart]);\n\n    if (elAnimationConfig.duration && from) {\n      var separateResult = separate(from, separateToList, elAnimationConfig, copyPropsWhenDivided);\n\n      this._processResultIndividuals(separateResult, toIdxStart, toCount);\n    }\n  };\n\n  MorphPreparation.prototype._processResultIndividuals = function (combineSeparateResult, toIdxStart, toCount) {\n    var isSeparate = toCount != null;\n\n    for (var i = 0; i < combineSeparateResult.count; i++) {\n      var fromIndividual = combineSeparateResult.fromIndividuals[i];\n      var toIndividual = combineSeparateResult.toIndividuals[i];\n      var toIdx = toIdxStart + (isSeparate ? i : 0);\n      var toElOption = this._toElOptionList[toIdx];\n      var dataIndex = this._toDataIndices[toIdx];\n      var transFromProps = {};\n      prepareTransformTransitionFrom(toIndividual, fromIndividual, toElOption, transFromProps, false);\n      prepareStyleTransitionFrom(toIndividual, fromIndividual, toElOption, toElOption.style, transFromProps, false);\n      applyTransitionFrom(toIndividual, dataIndex, toElOption, this._seriesModel, transFromProps, false);\n    }\n  };\n\n  MorphPreparation.prototype._getOrCreateMorphConfig = function (dataIndex) {\n    var morphConfigList = this._morphConfigList;\n    var config = morphConfigList[dataIndex];\n\n    if (config) {\n      return config;\n    }\n\n    var duration;\n    var easing;\n    var delay;\n    var seriesModel = this._seriesModel;\n    var transOpt = this._transOpt;\n\n    if (seriesModel.isAnimationEnabled()) {\n      var animationPayload = void 0;\n\n      if (seriesModel && seriesModel.ecModel) {\n        var updatePayload = seriesModel.ecModel.getUpdatePayload();\n        animationPayload = updatePayload && updatePayload.animation;\n      }\n\n      if (animationPayload) {\n        duration = animationPayload.duration || 0;\n        easing = animationPayload.easing || 'cubicOut';\n        delay = animationPayload.delay || 0;\n      } else {\n        easing = seriesModel.get('animationEasingUpdate');\n        var delayOption = seriesModel.get('animationDelayUpdate');\n        delay = isFunction(delayOption) ? delayOption(dataIndex) : delayOption;\n        var durationOption = seriesModel.get('animationDurationUpdate');\n        duration = isFunction(durationOption) ? durationOption(dataIndex) : durationOption;\n      }\n    }\n\n    config = {\n      duration: duration || 0,\n      delay: delay,\n      easing: easing,\n      dividingMethod: transOpt ? transOpt.dividingMethod : null\n    };\n    morphConfigList[dataIndex] = config;\n    return config;\n  };\n\n  MorphPreparation.prototype.reset = function (type) {\n    this._type = type;\n    this._fromList.length = this._toList.length = this._toElOptionList.length = this._allPropsFinalList.length = this._toDataIndices.length = 0;\n  };\n\n  return MorphPreparation;\n}();\n\nfunction copyPropsWhenDivided(srcPath, tarPath, willClone) {\n  tarPath.style = willClone ? clone(srcPath.style) : srcPath.style;\n  tarPath.zlevel = srcPath.zlevel;\n  tarPath.z = srcPath.z;\n  tarPath.z2 = srcPath.z2;\n}\n\nexport function install(registers) {\n  registers.registerChartView(CustomSeriesView);\n  registers.registerSeriesModel(CustomSeriesModel);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport * as axisPointerModelHelper from './modelHelper';\nimport * as eventTool from 'zrender/lib/core/event';\nimport * as throttleUtil from '../../util/throttle';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\nvar clone = zrUtil.clone;\nvar bind = zrUtil.bind;\n\nvar BaseAxisPointer = function () {\n  function BaseAxisPointer() {\n    this._dragging = false;\n    this.animationThreshold = 15;\n  }\n\n  BaseAxisPointer.prototype.render = function (axisModel, axisPointerModel, api, forceRender) {\n    var value = axisPointerModel.get('value');\n    var status = axisPointerModel.get('status');\n    this._axisModel = axisModel;\n    this._axisPointerModel = axisPointerModel;\n    this._api = api;\n\n    if (!forceRender && this._lastValue === value && this._lastStatus === status) {\n      return;\n    }\n\n    this._lastValue = value;\n    this._lastStatus = status;\n    var group = this._group;\n    var handle = this._handle;\n\n    if (!status || status === 'hide') {\n      group && group.hide();\n      handle && handle.hide();\n      return;\n    }\n\n    group && group.show();\n    handle && handle.show();\n    var elOption = {};\n    this.makeElOption(elOption, value, axisModel, axisPointerModel, api);\n    var graphicKey = elOption.graphicKey;\n\n    if (graphicKey !== this._lastGraphicKey) {\n      this.clear(api);\n    }\n\n    this._lastGraphicKey = graphicKey;\n    var moveAnimation = this._moveAnimation = this.determineAnimation(axisModel, axisPointerModel);\n\n    if (!group) {\n      group = this._group = new graphic.Group();\n      this.createPointerEl(group, elOption, axisModel, axisPointerModel);\n      this.createLabelEl(group, elOption, axisModel, axisPointerModel);\n      api.getZr().add(group);\n    } else {\n      var doUpdateProps = zrUtil.curry(updateProps, axisPointerModel, moveAnimation);\n      this.updatePointerEl(group, elOption, doUpdateProps);\n      this.updateLabelEl(group, elOption, doUpdateProps, axisPointerModel);\n    }\n\n    updateMandatoryProps(group, axisPointerModel, true);\n\n    this._renderHandle(value);\n  };\n\n  BaseAxisPointer.prototype.remove = function (api) {\n    this.clear(api);\n  };\n\n  BaseAxisPointer.prototype.dispose = function (api) {\n    this.clear(api);\n  };\n\n  BaseAxisPointer.prototype.determineAnimation = function (axisModel, axisPointerModel) {\n    var animation = axisPointerModel.get('animation');\n    var axis = axisModel.axis;\n    var isCategoryAxis = axis.type === 'category';\n    var useSnap = axisPointerModel.get('snap');\n\n    if (!useSnap && !isCategoryAxis) {\n      return false;\n    }\n\n    if (animation === 'auto' || animation == null) {\n      var animationThreshold = this.animationThreshold;\n\n      if (isCategoryAxis && axis.getBandWidth() > animationThreshold) {\n        return true;\n      }\n\n      if (useSnap) {\n        var seriesDataCount = axisPointerModelHelper.getAxisInfo(axisModel).seriesDataCount;\n        var axisExtent = axis.getExtent();\n        return Math.abs(axisExtent[0] - axisExtent[1]) / seriesDataCount > animationThreshold;\n      }\n\n      return false;\n    }\n\n    return animation === true;\n  };\n\n  BaseAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {};\n\n  BaseAxisPointer.prototype.createPointerEl = function (group, elOption, axisModel, axisPointerModel) {\n    var pointerOption = elOption.pointer;\n\n    if (pointerOption) {\n      var pointerEl = inner(group).pointerEl = new graphic[pointerOption.type](clone(elOption.pointer));\n      group.add(pointerEl);\n    }\n  };\n\n  BaseAxisPointer.prototype.createLabelEl = function (group, elOption, axisModel, axisPointerModel) {\n    if (elOption.label) {\n      var labelEl = inner(group).labelEl = new graphic.Text(clone(elOption.label));\n      group.add(labelEl);\n      updateLabelShowHide(labelEl, axisPointerModel);\n    }\n  };\n\n  BaseAxisPointer.prototype.updatePointerEl = function (group, elOption, updateProps) {\n    var pointerEl = inner(group).pointerEl;\n\n    if (pointerEl && elOption.pointer) {\n      pointerEl.setStyle(elOption.pointer.style);\n      updateProps(pointerEl, {\n        shape: elOption.pointer.shape\n      });\n    }\n  };\n\n  BaseAxisPointer.prototype.updateLabelEl = function (group, elOption, updateProps, axisPointerModel) {\n    var labelEl = inner(group).labelEl;\n\n    if (labelEl) {\n      labelEl.setStyle(elOption.label.style);\n      updateProps(labelEl, {\n        x: elOption.label.x,\n        y: elOption.label.y\n      });\n      updateLabelShowHide(labelEl, axisPointerModel);\n    }\n  };\n\n  BaseAxisPointer.prototype._renderHandle = function (value) {\n    if (this._dragging || !this.updateHandleTransform) {\n      return;\n    }\n\n    var axisPointerModel = this._axisPointerModel;\n\n    var zr = this._api.getZr();\n\n    var handle = this._handle;\n    var handleModel = axisPointerModel.getModel('handle');\n    var status = axisPointerModel.get('status');\n\n    if (!handleModel.get('show') || !status || status === 'hide') {\n      handle && zr.remove(handle);\n      this._handle = null;\n      return;\n    }\n\n    var isInit;\n\n    if (!this._handle) {\n      isInit = true;\n      handle = this._handle = graphic.createIcon(handleModel.get('icon'), {\n        cursor: 'move',\n        draggable: true,\n        onmousemove: function (e) {\n          eventTool.stop(e.event);\n        },\n        onmousedown: bind(this._onHandleDragMove, this, 0, 0),\n        drift: bind(this._onHandleDragMove, this),\n        ondragend: bind(this._onHandleDragEnd, this)\n      });\n      zr.add(handle);\n    }\n\n    updateMandatoryProps(handle, axisPointerModel, false);\n    handle.setStyle(handleModel.getItemStyle(null, ['color', 'borderColor', 'borderWidth', 'opacity', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY']));\n    var handleSize = handleModel.get('size');\n\n    if (!zrUtil.isArray(handleSize)) {\n      handleSize = [handleSize, handleSize];\n    }\n\n    handle.scaleX = handleSize[0] / 2;\n    handle.scaleY = handleSize[1] / 2;\n    throttleUtil.createOrUpdate(this, '_doDispatchAxisPointer', handleModel.get('throttle') || 0, 'fixRate');\n\n    this._moveHandleToValue(value, isInit);\n  };\n\n  BaseAxisPointer.prototype._moveHandleToValue = function (value, isInit) {\n    updateProps(this._axisPointerModel, !isInit && this._moveAnimation, this._handle, getHandleTransProps(this.getHandleTransform(value, this._axisModel, this._axisPointerModel)));\n  };\n\n  BaseAxisPointer.prototype._onHandleDragMove = function (dx, dy) {\n    var handle = this._handle;\n\n    if (!handle) {\n      return;\n    }\n\n    this._dragging = true;\n    var trans = this.updateHandleTransform(getHandleTransProps(handle), [dx, dy], this._axisModel, this._axisPointerModel);\n    this._payloadInfo = trans;\n    handle.stopAnimation();\n    handle.attr(getHandleTransProps(trans));\n    inner(handle).lastProp = null;\n\n    this._doDispatchAxisPointer();\n  };\n\n  BaseAxisPointer.prototype._doDispatchAxisPointer = function () {\n    var handle = this._handle;\n\n    if (!handle) {\n      return;\n    }\n\n    var payloadInfo = this._payloadInfo;\n    var axisModel = this._axisModel;\n\n    this._api.dispatchAction({\n      type: 'updateAxisPointer',\n      x: payloadInfo.cursorPoint[0],\n      y: payloadInfo.cursorPoint[1],\n      tooltipOption: payloadInfo.tooltipOption,\n      axesInfo: [{\n        axisDim: axisModel.axis.dim,\n        axisIndex: axisModel.componentIndex\n      }]\n    });\n  };\n\n  BaseAxisPointer.prototype._onHandleDragEnd = function () {\n    this._dragging = false;\n    var handle = this._handle;\n\n    if (!handle) {\n      return;\n    }\n\n    var value = this._axisPointerModel.get('value');\n\n    this._moveHandleToValue(value);\n\n    this._api.dispatchAction({\n      type: 'hideTip'\n    });\n  };\n\n  BaseAxisPointer.prototype.clear = function (api) {\n    this._lastValue = null;\n    this._lastStatus = null;\n    var zr = api.getZr();\n    var group = this._group;\n    var handle = this._handle;\n\n    if (zr && group) {\n      this._lastGraphicKey = null;\n      group && zr.remove(group);\n      handle && zr.remove(handle);\n      this._group = null;\n      this._handle = null;\n      this._payloadInfo = null;\n    }\n  };\n\n  BaseAxisPointer.prototype.doClear = function () {};\n\n  BaseAxisPointer.prototype.buildLabel = function (xy, wh, xDimIndex) {\n    xDimIndex = xDimIndex || 0;\n    return {\n      x: xy[xDimIndex],\n      y: xy[1 - xDimIndex],\n      width: wh[xDimIndex],\n      height: wh[1 - xDimIndex]\n    };\n  };\n\n  return BaseAxisPointer;\n}();\n\nfunction updateProps(animationModel, moveAnimation, el, props) {\n  if (!propsEqual(inner(el).lastProp, props)) {\n    inner(el).lastProp = props;\n    moveAnimation ? graphic.updateProps(el, props, animationModel) : (el.stopAnimation(), el.attr(props));\n  }\n}\n\nfunction propsEqual(lastProps, newProps) {\n  if (zrUtil.isObject(lastProps) && zrUtil.isObject(newProps)) {\n    var equals_1 = true;\n    zrUtil.each(newProps, function (item, key) {\n      equals_1 = equals_1 && propsEqual(lastProps[key], item);\n    });\n    return !!equals_1;\n  } else {\n    return lastProps === newProps;\n  }\n}\n\nfunction updateLabelShowHide(labelEl, axisPointerModel) {\n  labelEl[axisPointerModel.get(['label', 'show']) ? 'show' : 'hide']();\n}\n\nfunction getHandleTransProps(trans) {\n  return {\n    x: trans.x || 0,\n    y: trans.y || 0,\n    rotation: trans.rotation || 0\n  };\n}\n\nfunction updateMandatoryProps(group, axisPointerModel, silent) {\n  var z = axisPointerModel.get('z');\n  var zlevel = axisPointerModel.get('zlevel');\n  group && group.traverse(function (el) {\n    if (el.type !== 'group') {\n      z != null && (el.z = z);\n      zlevel != null && (el.zlevel = zlevel);\n      el.silent = silent;\n    }\n  });\n}\n\nexport default BaseAxisPointer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport * as textContain from 'zrender/lib/contain/text';\nimport * as formatUtil from '../../util/format';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport * as axisHelper from '../../coord/axisHelper';\nimport AxisBuilder from '../axis/AxisBuilder';\nimport { createTextStyle } from '../../label/labelStyle';\nexport function buildElStyle(axisPointerModel) {\n  var axisPointerType = axisPointerModel.get('type');\n  var styleModel = axisPointerModel.getModel(axisPointerType + 'Style');\n  var style;\n\n  if (axisPointerType === 'line') {\n    style = styleModel.getLineStyle();\n    style.fill = null;\n  } else if (axisPointerType === 'shadow') {\n    style = styleModel.getAreaStyle();\n    style.stroke = null;\n  }\n\n  return style;\n}\nexport function buildLabelElOption(elOption, axisModel, axisPointerModel, api, labelPos) {\n  var value = axisPointerModel.get('value');\n  var text = getValueLabel(value, axisModel.axis, axisModel.ecModel, axisPointerModel.get('seriesDataIndices'), {\n    precision: axisPointerModel.get(['label', 'precision']),\n    formatter: axisPointerModel.get(['label', 'formatter'])\n  });\n  var labelModel = axisPointerModel.getModel('label');\n  var paddings = formatUtil.normalizeCssArray(labelModel.get('padding') || 0);\n  var font = labelModel.getFont();\n  var textRect = textContain.getBoundingRect(text, font);\n  var position = labelPos.position;\n  var width = textRect.width + paddings[1] + paddings[3];\n  var height = textRect.height + paddings[0] + paddings[2];\n  var align = labelPos.align;\n  align === 'right' && (position[0] -= width);\n  align === 'center' && (position[0] -= width / 2);\n  var verticalAlign = labelPos.verticalAlign;\n  verticalAlign === 'bottom' && (position[1] -= height);\n  verticalAlign === 'middle' && (position[1] -= height / 2);\n  confineInContainer(position, width, height, api);\n  var bgColor = labelModel.get('backgroundColor');\n\n  if (!bgColor || bgColor === 'auto') {\n    bgColor = axisModel.get(['axisLine', 'lineStyle', 'color']);\n  }\n\n  elOption.label = {\n    x: position[0],\n    y: position[1],\n    style: createTextStyle(labelModel, {\n      text: text,\n      font: font,\n      fill: labelModel.getTextColor(),\n      padding: paddings,\n      backgroundColor: bgColor\n    }),\n    z2: 10\n  };\n}\n\nfunction confineInContainer(position, width, height, api) {\n  var viewWidth = api.getWidth();\n  var viewHeight = api.getHeight();\n  position[0] = Math.min(position[0] + width, viewWidth) - width;\n  position[1] = Math.min(position[1] + height, viewHeight) - height;\n  position[0] = Math.max(position[0], 0);\n  position[1] = Math.max(position[1], 0);\n}\n\nexport function getValueLabel(value, axis, ecModel, seriesDataIndices, opt) {\n  value = axis.scale.parse(value);\n  var text = axis.scale.getLabel({\n    value: value\n  }, {\n    precision: opt.precision\n  });\n  var formatter = opt.formatter;\n\n  if (formatter) {\n    var params_1 = {\n      value: axisHelper.getAxisRawValue(axis, {\n        value: value\n      }),\n      axisDimension: axis.dim,\n      axisIndex: axis.index,\n      seriesData: []\n    };\n    zrUtil.each(seriesDataIndices, function (idxItem) {\n      var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\n      var dataIndex = idxItem.dataIndexInside;\n      var dataParams = series && series.getDataParams(dataIndex);\n      dataParams && params_1.seriesData.push(dataParams);\n    });\n\n    if (zrUtil.isString(formatter)) {\n      text = formatter.replace('{value}', text);\n    } else if (zrUtil.isFunction(formatter)) {\n      text = formatter(params_1);\n    }\n  }\n\n  return text;\n}\nexport function getTransformedPosition(axis, value, layoutInfo) {\n  var transform = matrix.create();\n  matrix.rotate(transform, transform, layoutInfo.rotation);\n  matrix.translate(transform, transform, layoutInfo.position);\n  return graphic.applyTransform([axis.dataToCoord(value), (layoutInfo.labelOffset || 0) + (layoutInfo.labelDirection || 1) * (layoutInfo.labelMargin || 0)], transform);\n}\nexport function buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api) {\n  var textLayout = AxisBuilder.innerTextLayout(layoutInfo.rotation, 0, layoutInfo.labelDirection);\n  layoutInfo.labelMargin = axisPointerModel.get(['label', 'margin']);\n  buildLabelElOption(elOption, axisModel, axisPointerModel, api, {\n    position: getTransformedPosition(axisModel.axis, value, layoutInfo),\n    align: textLayout.textAlign,\n    verticalAlign: textLayout.textVerticalAlign\n  });\n}\nexport function makeLineShape(p1, p2, xDimIndex) {\n  xDimIndex = xDimIndex || 0;\n  return {\n    x1: p1[xDimIndex],\n    y1: p1[1 - xDimIndex],\n    x2: p2[xDimIndex],\n    y2: p2[1 - xDimIndex]\n  };\n}\nexport function makeRectShape(xy, wh, xDimIndex) {\n  xDimIndex = xDimIndex || 0;\n  return {\n    x: xy[xDimIndex],\n    y: xy[1 - xDimIndex],\n    width: wh[xDimIndex],\n    height: wh[1 - xDimIndex]\n  };\n}\nexport function makeSectorShape(cx, cy, r0, r, startAngle, endAngle) {\n  return {\n    cx: cx,\n    cy: cy,\n    r0: r0,\n    r: r,\n    startAngle: startAngle,\n    endAngle: endAngle,\n    clockwise: true\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BaseAxisPointer from './BaseAxisPointer';\nimport * as viewHelper from './viewHelper';\nimport * as cartesianAxisHelper from '../../coord/cartesian/cartesianAxisHelper';\n\nvar CartesianAxisPointer = function (_super) {\n  __extends(CartesianAxisPointer, _super);\n\n  function CartesianAxisPointer() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  CartesianAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\n    var axis = axisModel.axis;\n    var grid = axis.grid;\n    var axisPointerType = axisPointerModel.get('type');\n    var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent();\n    var pixelValue = axis.toGlobalCoord(axis.dataToCoord(value, true));\n\n    if (axisPointerType && axisPointerType !== 'none') {\n      var elStyle = viewHelper.buildElStyle(axisPointerModel);\n      var pointerOption = pointerShapeBuilder[axisPointerType](axis, pixelValue, otherExtent);\n      pointerOption.style = elStyle;\n      elOption.graphicKey = pointerOption.type;\n      elOption.pointer = pointerOption;\n    }\n\n    var layoutInfo = cartesianAxisHelper.layout(grid.model, axisModel);\n    viewHelper.buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api);\n  };\n\n  CartesianAxisPointer.prototype.getHandleTransform = function (value, axisModel, axisPointerModel) {\n    var layoutInfo = cartesianAxisHelper.layout(axisModel.axis.grid.model, axisModel, {\n      labelInside: false\n    });\n    layoutInfo.labelMargin = axisPointerModel.get(['handle', 'margin']);\n    var pos = viewHelper.getTransformedPosition(axisModel.axis, value, layoutInfo);\n    return {\n      x: pos[0],\n      y: pos[1],\n      rotation: layoutInfo.rotation + (layoutInfo.labelDirection < 0 ? Math.PI : 0)\n    };\n  };\n\n  CartesianAxisPointer.prototype.updateHandleTransform = function (transform, delta, axisModel, axisPointerModel) {\n    var axis = axisModel.axis;\n    var grid = axis.grid;\n    var axisExtent = axis.getGlobalExtent(true);\n    var otherExtent = getCartesian(grid, axis).getOtherAxis(axis).getGlobalExtent();\n    var dimIndex = axis.dim === 'x' ? 0 : 1;\n    var currPosition = [transform.x, transform.y];\n    currPosition[dimIndex] += delta[dimIndex];\n    currPosition[dimIndex] = Math.min(axisExtent[1], currPosition[dimIndex]);\n    currPosition[dimIndex] = Math.max(axisExtent[0], currPosition[dimIndex]);\n    var cursorOtherValue = (otherExtent[1] + otherExtent[0]) / 2;\n    var cursorPoint = [cursorOtherValue, cursorOtherValue];\n    cursorPoint[dimIndex] = currPosition[dimIndex];\n    var tooltipOptions = [{\n      verticalAlign: 'middle'\n    }, {\n      align: 'center'\n    }];\n    return {\n      x: currPosition[0],\n      y: currPosition[1],\n      rotation: transform.rotation,\n      cursorPoint: cursorPoint,\n      tooltipOption: tooltipOptions[dimIndex]\n    };\n  };\n\n  return CartesianAxisPointer;\n}(BaseAxisPointer);\n\nfunction getCartesian(grid, axis) {\n  var opt = {};\n  opt[axis.dim + 'AxisIndex'] = axis.index;\n  return grid.getCartesian(opt);\n}\n\nvar pointerShapeBuilder = {\n  line: function (axis, pixelValue, otherExtent) {\n    var targetShape = viewHelper.makeLineShape([pixelValue, otherExtent[0]], [pixelValue, otherExtent[1]], getAxisDimIndex(axis));\n    return {\n      type: 'Line',\n      subPixelOptimize: true,\n      shape: targetShape\n    };\n  },\n  shadow: function (axis, pixelValue, otherExtent) {\n    var bandWidth = Math.max(1, axis.getBandWidth());\n    var span = otherExtent[1] - otherExtent[0];\n    return {\n      type: 'Rect',\n      shape: viewHelper.makeRectShape([pixelValue - bandWidth / 2, otherExtent[0]], [bandWidth, span], getAxisDimIndex(axis))\n    };\n  }\n};\n\nfunction getAxisDimIndex(axis) {\n  return axis.dim === 'x' ? 0 : 1;\n}\n\nexport default CartesianAxisPointer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\n\nvar AxisPointerModel = function (_super) {\n  __extends(AxisPointerModel, _super);\n\n  function AxisPointerModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = AxisPointerModel.type;\n    return _this;\n  }\n\n  AxisPointerModel.type = 'axisPointer';\n  AxisPointerModel.defaultOption = {\n    show: 'auto',\n    zlevel: 0,\n    z: 50,\n    type: 'line',\n    snap: false,\n    triggerTooltip: true,\n    value: null,\n    status: null,\n    link: [],\n    animation: null,\n    animationDurationUpdate: 200,\n    lineStyle: {\n      color: '#B9BEC9',\n      width: 1,\n      type: 'dashed'\n    },\n    shadowStyle: {\n      color: 'rgba(210,219,238,0.2)'\n    },\n    label: {\n      show: true,\n      formatter: null,\n      precision: 'auto',\n      margin: 3,\n      color: '#fff',\n      padding: [5, 7, 5, 7],\n      backgroundColor: 'auto',\n      borderColor: null,\n      borderWidth: 0,\n      borderRadius: 3\n    },\n    handle: {\n      show: false,\n      icon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z',\n      size: 45,\n      margin: 50,\n      color: '#333',\n      shadowBlur: 3,\n      shadowColor: '#aaa',\n      shadowOffsetX: 0,\n      shadowOffsetY: 2,\n      throttle: 40\n    }\n  };\n  return AxisPointerModel;\n}(ComponentModel);\n\nexport default AxisPointerModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\nvar each = zrUtil.each;\nexport function register(key, api, handler) {\n  if (env.node) {\n    return;\n  }\n\n  var zr = api.getZr();\n  inner(zr).records || (inner(zr).records = {});\n  initGlobalListeners(zr, api);\n  var record = inner(zr).records[key] || (inner(zr).records[key] = {});\n  record.handler = handler;\n}\n\nfunction initGlobalListeners(zr, api) {\n  if (inner(zr).initialized) {\n    return;\n  }\n\n  inner(zr).initialized = true;\n  useHandler('click', zrUtil.curry(doEnter, 'click'));\n  useHandler('mousemove', zrUtil.curry(doEnter, 'mousemove'));\n  useHandler('globalout', onLeave);\n\n  function useHandler(eventType, cb) {\n    zr.on(eventType, function (e) {\n      var dis = makeDispatchAction(api);\n      each(inner(zr).records, function (record) {\n        record && cb(record, e, dis.dispatchAction);\n      });\n      dispatchTooltipFinally(dis.pendings, api);\n    });\n  }\n}\n\nfunction dispatchTooltipFinally(pendings, api) {\n  var showLen = pendings.showTip.length;\n  var hideLen = pendings.hideTip.length;\n  var actuallyPayload;\n\n  if (showLen) {\n    actuallyPayload = pendings.showTip[showLen - 1];\n  } else if (hideLen) {\n    actuallyPayload = pendings.hideTip[hideLen - 1];\n  }\n\n  if (actuallyPayload) {\n    actuallyPayload.dispatchAction = null;\n    api.dispatchAction(actuallyPayload);\n  }\n}\n\nfunction onLeave(record, e, dispatchAction) {\n  record.handler('leave', null, dispatchAction);\n}\n\nfunction doEnter(currTrigger, record, e, dispatchAction) {\n  record.handler(currTrigger, e, dispatchAction);\n}\n\nfunction makeDispatchAction(api) {\n  var pendings = {\n    showTip: [],\n    hideTip: []\n  };\n\n  var dispatchAction = function (payload) {\n    var pendingList = pendings[payload.type];\n\n    if (pendingList) {\n      pendingList.push(payload);\n    } else {\n      payload.dispatchAction = dispatchAction;\n      api.dispatchAction(payload);\n    }\n  };\n\n  return {\n    dispatchAction: dispatchAction,\n    pendings: pendings\n  };\n}\n\nexport function unregister(key, api) {\n  if (env.node) {\n    return;\n  }\n\n  var zr = api.getZr();\n  var record = (inner(zr).records || {})[key];\n\n  if (record) {\n    inner(zr).records[key] = null;\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as globalListener from './globalListener';\nimport ComponentView from '../../view/Component';\n\nvar AxisPointerView = function (_super) {\n  __extends(AxisPointerView, _super);\n\n  function AxisPointerView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = AxisPointerView.type;\n    return _this;\n  }\n\n  AxisPointerView.prototype.render = function (globalAxisPointerModel, ecModel, api) {\n    var globalTooltipModel = ecModel.getComponent('tooltip');\n    var triggerOn = globalAxisPointerModel.get('triggerOn') || globalTooltipModel && globalTooltipModel.get('triggerOn') || 'mousemove|click';\n    globalListener.register('axisPointer', api, function (currTrigger, e, dispatchAction) {\n      if (triggerOn !== 'none' && (currTrigger === 'leave' || triggerOn.indexOf(currTrigger) >= 0)) {\n        dispatchAction({\n          type: 'updateAxisPointer',\n          currTrigger: currTrigger,\n          x: e && e.offsetX,\n          y: e && e.offsetY\n        });\n      }\n    });\n  };\n\n  AxisPointerView.prototype.remove = function (ecModel, api) {\n    globalListener.unregister('axisPointer', api);\n  };\n\n  AxisPointerView.prototype.dispose = function (ecModel, api) {\n    globalListener.unregister('axisPointer', api);\n  };\n\n  AxisPointerView.type = 'axisPointer';\n  return AxisPointerView;\n}(ComponentView);\n\nexport default AxisPointerView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nexport default function findPointFromSeries(finder, ecModel) {\n  var point = [];\n  var seriesIndex = finder.seriesIndex;\n  var seriesModel;\n\n  if (seriesIndex == null || !(seriesModel = ecModel.getSeriesByIndex(seriesIndex))) {\n    return {\n      point: []\n    };\n  }\n\n  var data = seriesModel.getData();\n  var dataIndex = modelUtil.queryDataIndex(data, finder);\n\n  if (dataIndex == null || dataIndex < 0 || zrUtil.isArray(dataIndex)) {\n    return {\n      point: []\n    };\n  }\n\n  var el = data.getItemGraphicEl(dataIndex);\n  var coordSys = seriesModel.coordinateSystem;\n\n  if (seriesModel.getTooltipPosition) {\n    point = seriesModel.getTooltipPosition(dataIndex) || [];\n  } else if (coordSys && coordSys.dataToPoint) {\n    if (finder.isStacked) {\n      var baseAxis = coordSys.getBaseAxis();\n      var valueAxis = coordSys.getOtherAxis(baseAxis);\n      var valueAxisDim = valueAxis.dim;\n      var baseAxisDim = baseAxis.dim;\n      var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\n      var baseDim = data.mapDimension(baseAxisDim);\n      var stackedData = [];\n      stackedData[baseDataOffset] = data.get(baseDim, dataIndex);\n      stackedData[1 - baseDataOffset] = data.get(data.getCalculationInfo('stackResultDimension'), dataIndex);\n      point = coordSys.dataToPoint(stackedData) || [];\n    } else {\n      point = coordSys.dataToPoint(data.getValues(zrUtil.map(coordSys.dimensions, function (dim) {\n        return data.mapDimension(dim);\n      }), dataIndex)) || [];\n    }\n  } else if (el) {\n    var rect = el.getBoundingRect().clone();\n    rect.applyTransform(el.transform);\n    point = [rect.x + rect.width / 2, rect.y + rect.height / 2];\n  }\n\n  return {\n    point: point,\n    el: el\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner } from '../../util/model';\nimport * as modelHelper from './modelHelper';\nimport findPointFromSeries from './findPointFromSeries';\nimport { each, curry, bind, extend } from 'zrender/lib/core/util';\nvar inner = makeInner();\nexport default function axisTrigger(payload, ecModel, api) {\n  var currTrigger = payload.currTrigger;\n  var point = [payload.x, payload.y];\n  var finder = payload;\n  var dispatchAction = payload.dispatchAction || bind(api.dispatchAction, api);\n  var coordSysAxesInfo = ecModel.getComponent('axisPointer').coordSysAxesInfo;\n\n  if (!coordSysAxesInfo) {\n    return;\n  }\n\n  if (illegalPoint(point)) {\n    point = findPointFromSeries({\n      seriesIndex: finder.seriesIndex,\n      dataIndex: finder.dataIndex\n    }, ecModel).point;\n  }\n\n  var isIllegalPoint = illegalPoint(point);\n  var inputAxesInfo = finder.axesInfo;\n  var axesInfo = coordSysAxesInfo.axesInfo;\n  var shouldHide = currTrigger === 'leave' || illegalPoint(point);\n  var outputPayload = {};\n  var showValueMap = {};\n  var dataByCoordSys = {\n    list: [],\n    map: {}\n  };\n  var updaters = {\n    showPointer: curry(showPointer, showValueMap),\n    showTooltip: curry(showTooltip, dataByCoordSys)\n  };\n  each(coordSysAxesInfo.coordSysMap, function (coordSys, coordSysKey) {\n    var coordSysContainsPoint = isIllegalPoint || coordSys.containPoint(point);\n    each(coordSysAxesInfo.coordSysAxesInfo[coordSysKey], function (axisInfo, key) {\n      var axis = axisInfo.axis;\n      var inputAxisInfo = findInputAxisInfo(inputAxesInfo, axisInfo);\n\n      if (!shouldHide && coordSysContainsPoint && (!inputAxesInfo || inputAxisInfo)) {\n        var val = inputAxisInfo && inputAxisInfo.value;\n\n        if (val == null && !isIllegalPoint) {\n          val = axis.pointToData(point);\n        }\n\n        val != null && processOnAxis(axisInfo, val, updaters, false, outputPayload);\n      }\n    });\n  });\n  var linkTriggers = {};\n  each(axesInfo, function (tarAxisInfo, tarKey) {\n    var linkGroup = tarAxisInfo.linkGroup;\n\n    if (linkGroup && !showValueMap[tarKey]) {\n      each(linkGroup.axesInfo, function (srcAxisInfo, srcKey) {\n        var srcValItem = showValueMap[srcKey];\n\n        if (srcAxisInfo !== tarAxisInfo && srcValItem) {\n          var val = srcValItem.value;\n          linkGroup.mapper && (val = tarAxisInfo.axis.scale.parse(linkGroup.mapper(val, makeMapperParam(srcAxisInfo), makeMapperParam(tarAxisInfo))));\n          linkTriggers[tarAxisInfo.key] = val;\n        }\n      });\n    }\n  });\n  each(linkTriggers, function (val, tarKey) {\n    processOnAxis(axesInfo[tarKey], val, updaters, true, outputPayload);\n  });\n  updateModelActually(showValueMap, axesInfo, outputPayload);\n  dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction);\n  dispatchHighDownActually(axesInfo, dispatchAction, api);\n  return outputPayload;\n}\n\nfunction processOnAxis(axisInfo, newValue, updaters, noSnap, outputFinder) {\n  var axis = axisInfo.axis;\n\n  if (axis.scale.isBlank() || !axis.containData(newValue)) {\n    return;\n  }\n\n  if (!axisInfo.involveSeries) {\n    updaters.showPointer(axisInfo, newValue);\n    return;\n  }\n\n  var payloadInfo = buildPayloadsBySeries(newValue, axisInfo);\n  var payloadBatch = payloadInfo.payloadBatch;\n  var snapToValue = payloadInfo.snapToValue;\n\n  if (payloadBatch[0] && outputFinder.seriesIndex == null) {\n    extend(outputFinder, payloadBatch[0]);\n  }\n\n  if (!noSnap && axisInfo.snap) {\n    if (axis.containData(snapToValue) && snapToValue != null) {\n      newValue = snapToValue;\n    }\n  }\n\n  updaters.showPointer(axisInfo, newValue, payloadBatch);\n  updaters.showTooltip(axisInfo, payloadInfo, snapToValue);\n}\n\nfunction buildPayloadsBySeries(value, axisInfo) {\n  var axis = axisInfo.axis;\n  var dim = axis.dim;\n  var snapToValue = value;\n  var payloadBatch = [];\n  var minDist = Number.MAX_VALUE;\n  var minDiff = -1;\n  each(axisInfo.seriesModels, function (series, idx) {\n    var dataDim = series.getData().mapDimensionsAll(dim);\n    var seriesNestestValue;\n    var dataIndices;\n\n    if (series.getAxisTooltipData) {\n      var result = series.getAxisTooltipData(dataDim, value, axis);\n      dataIndices = result.dataIndices;\n      seriesNestestValue = result.nestestValue;\n    } else {\n      dataIndices = series.getData().indicesOfNearest(dataDim[0], value, axis.type === 'category' ? 0.5 : null);\n\n      if (!dataIndices.length) {\n        return;\n      }\n\n      seriesNestestValue = series.getData().get(dataDim[0], dataIndices[0]);\n    }\n\n    if (seriesNestestValue == null || !isFinite(seriesNestestValue)) {\n      return;\n    }\n\n    var diff = value - seriesNestestValue;\n    var dist = Math.abs(diff);\n\n    if (dist <= minDist) {\n      if (dist < minDist || diff >= 0 && minDiff < 0) {\n        minDist = dist;\n        minDiff = diff;\n        snapToValue = seriesNestestValue;\n        payloadBatch.length = 0;\n      }\n\n      each(dataIndices, function (dataIndex) {\n        payloadBatch.push({\n          seriesIndex: series.seriesIndex,\n          dataIndexInside: dataIndex,\n          dataIndex: series.getData().getRawIndex(dataIndex)\n        });\n      });\n    }\n  });\n  return {\n    payloadBatch: payloadBatch,\n    snapToValue: snapToValue\n  };\n}\n\nfunction showPointer(showValueMap, axisInfo, value, payloadBatch) {\n  showValueMap[axisInfo.key] = {\n    value: value,\n    payloadBatch: payloadBatch\n  };\n}\n\nfunction showTooltip(dataByCoordSys, axisInfo, payloadInfo, value) {\n  var payloadBatch = payloadInfo.payloadBatch;\n  var axis = axisInfo.axis;\n  var axisModel = axis.model;\n  var axisPointerModel = axisInfo.axisPointerModel;\n\n  if (!axisInfo.triggerTooltip || !payloadBatch.length) {\n    return;\n  }\n\n  var coordSysModel = axisInfo.coordSys.model;\n  var coordSysKey = modelHelper.makeKey(coordSysModel);\n  var coordSysItem = dataByCoordSys.map[coordSysKey];\n\n  if (!coordSysItem) {\n    coordSysItem = dataByCoordSys.map[coordSysKey] = {\n      coordSysId: coordSysModel.id,\n      coordSysIndex: coordSysModel.componentIndex,\n      coordSysType: coordSysModel.type,\n      coordSysMainType: coordSysModel.mainType,\n      dataByAxis: []\n    };\n    dataByCoordSys.list.push(coordSysItem);\n  }\n\n  coordSysItem.dataByAxis.push({\n    axisDim: axis.dim,\n    axisIndex: axisModel.componentIndex,\n    axisType: axisModel.type,\n    axisId: axisModel.id,\n    value: value,\n    valueLabelOpt: {\n      precision: axisPointerModel.get(['label', 'precision']),\n      formatter: axisPointerModel.get(['label', 'formatter'])\n    },\n    seriesDataIndices: payloadBatch.slice()\n  });\n}\n\nfunction updateModelActually(showValueMap, axesInfo, outputPayload) {\n  var outputAxesInfo = outputPayload.axesInfo = [];\n  each(axesInfo, function (axisInfo, key) {\n    var option = axisInfo.axisPointerModel.option;\n    var valItem = showValueMap[key];\n\n    if (valItem) {\n      !axisInfo.useHandle && (option.status = 'show');\n      option.value = valItem.value;\n      option.seriesDataIndices = (valItem.payloadBatch || []).slice();\n    } else {\n      !axisInfo.useHandle && (option.status = 'hide');\n    }\n\n    option.status === 'show' && outputAxesInfo.push({\n      axisDim: axisInfo.axis.dim,\n      axisIndex: axisInfo.axis.model.componentIndex,\n      value: option.value\n    });\n  });\n}\n\nfunction dispatchTooltipActually(dataByCoordSys, point, payload, dispatchAction) {\n  if (illegalPoint(point) || !dataByCoordSys.list.length) {\n    dispatchAction({\n      type: 'hideTip'\n    });\n    return;\n  }\n\n  var sampleItem = ((dataByCoordSys.list[0].dataByAxis[0] || {}).seriesDataIndices || [])[0] || {};\n  dispatchAction({\n    type: 'showTip',\n    escapeConnect: true,\n    x: point[0],\n    y: point[1],\n    tooltipOption: payload.tooltipOption,\n    position: payload.position,\n    dataIndexInside: sampleItem.dataIndexInside,\n    dataIndex: sampleItem.dataIndex,\n    seriesIndex: sampleItem.seriesIndex,\n    dataByCoordSys: dataByCoordSys.list\n  });\n}\n\nfunction dispatchHighDownActually(axesInfo, dispatchAction, api) {\n  var zr = api.getZr();\n  var highDownKey = 'axisPointerLastHighlights';\n  var lastHighlights = inner(zr)[highDownKey] || {};\n  var newHighlights = inner(zr)[highDownKey] = {};\n  each(axesInfo, function (axisInfo, key) {\n    var option = axisInfo.axisPointerModel.option;\n    option.status === 'show' && each(option.seriesDataIndices, function (batchItem) {\n      var key = batchItem.seriesIndex + ' | ' + batchItem.dataIndex;\n      newHighlights[key] = batchItem;\n    });\n  });\n  var toHighlight = [];\n  var toDownplay = [];\n  each(lastHighlights, function (batchItem, key) {\n    !newHighlights[key] && toDownplay.push(batchItem);\n  });\n  each(newHighlights, function (batchItem, key) {\n    !lastHighlights[key] && toHighlight.push(batchItem);\n  });\n  toDownplay.length && api.dispatchAction({\n    type: 'downplay',\n    escapeConnect: true,\n    notBlur: true,\n    batch: toDownplay\n  });\n  toHighlight.length && api.dispatchAction({\n    type: 'highlight',\n    escapeConnect: true,\n    notBlur: true,\n    batch: toHighlight\n  });\n}\n\nfunction findInputAxisInfo(inputAxesInfo, axisInfo) {\n  for (var i = 0; i < (inputAxesInfo || []).length; i++) {\n    var inputAxisInfo = inputAxesInfo[i];\n\n    if (axisInfo.axis.dim === inputAxisInfo.axisDim && axisInfo.axis.model.componentIndex === inputAxisInfo.axisIndex) {\n      return inputAxisInfo;\n    }\n  }\n}\n\nfunction makeMapperParam(axisInfo) {\n  var axisModel = axisInfo.axis.model;\n  var item = {};\n  var dim = item.axisDim = axisInfo.axis.dim;\n  item.axisIndex = item[dim + 'AxisIndex'] = axisModel.componentIndex;\n  item.axisName = item[dim + 'AxisName'] = axisModel.name;\n  item.axisId = item[dim + 'AxisId'] = axisModel.id;\n  return item;\n}\n\nfunction illegalPoint(point) {\n  return !point || point[0] == null || isNaN(point[0]) || point[1] == null || isNaN(point[1]);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport AxisView from '../axis/AxisView';\nimport CartesianAxisPointer from './CartesianAxisPointer';\nimport AxisPointerModel from './AxisPointerModel';\nimport AxisPointerView from './AxisPointerView';\nimport { isArray } from 'zrender/lib/core/util';\nimport { collect } from './modelHelper';\nimport axisTrigger from './axisTrigger';\nexport function install(registers) {\n  AxisView.registerAxisPointerClass('CartesianAxisPointer', CartesianAxisPointer);\n  registers.registerComponentModel(AxisPointerModel);\n  registers.registerComponentView(AxisPointerView);\n  registers.registerPreprocessor(function (option) {\n    if (option) {\n      (!option.axisPointer || option.axisPointer.length === 0) && (option.axisPointer = {});\n      var link = option.axisPointer.link;\n\n      if (link && !isArray(link)) {\n        option.axisPointer.link = [link];\n      }\n    }\n  });\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, function (ecModel, api) {\n    ecModel.getComponent('axisPointer').coordSysAxesInfo = collect(ecModel, api);\n  });\n  registers.registerAction({\n    type: 'updateAxisPointer',\n    event: 'updateAxisPointer',\n    update: ':updateAxisPointer'\n  }, axisTrigger);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { install as installSimple } from './installSimple';\nimport { install as installAxisPointer } from '../axisPointer/install';\nimport { use } from '../../extension';\nexport function install(registers) {\n  use(installSimple);\n  use(installAxisPointer);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BaseAxisPointer from './BaseAxisPointer';\nimport * as graphic from '../../util/graphic';\nimport * as viewHelper from './viewHelper';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport AxisBuilder from '../axis/AxisBuilder';\n\nvar PolarAxisPointer = function (_super) {\n  __extends(PolarAxisPointer, _super);\n\n  function PolarAxisPointer() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  PolarAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\n    var axis = axisModel.axis;\n\n    if (axis.dim === 'angle') {\n      this.animationThreshold = Math.PI / 18;\n    }\n\n    var polar = axis.polar;\n    var otherAxis = polar.getOtherAxis(axis);\n    var otherExtent = otherAxis.getExtent();\n    var coordValue = axis.dataToCoord(value);\n    var axisPointerType = axisPointerModel.get('type');\n\n    if (axisPointerType && axisPointerType !== 'none') {\n      var elStyle = viewHelper.buildElStyle(axisPointerModel);\n      var pointerOption = pointerShapeBuilder[axisPointerType](axis, polar, coordValue, otherExtent);\n      pointerOption.style = elStyle;\n      elOption.graphicKey = pointerOption.type;\n      elOption.pointer = pointerOption;\n    }\n\n    var labelMargin = axisPointerModel.get(['label', 'margin']);\n    var labelPos = getLabelPosition(value, axisModel, axisPointerModel, polar, labelMargin);\n    viewHelper.buildLabelElOption(elOption, axisModel, axisPointerModel, api, labelPos);\n  };\n\n  return PolarAxisPointer;\n}(BaseAxisPointer);\n\n;\n\nfunction getLabelPosition(value, axisModel, axisPointerModel, polar, labelMargin) {\n  var axis = axisModel.axis;\n  var coord = axis.dataToCoord(value);\n  var axisAngle = polar.getAngleAxis().getExtent()[0];\n  axisAngle = axisAngle / 180 * Math.PI;\n  var radiusExtent = polar.getRadiusAxis().getExtent();\n  var position;\n  var align;\n  var verticalAlign;\n\n  if (axis.dim === 'radius') {\n    var transform = matrix.create();\n    matrix.rotate(transform, transform, axisAngle);\n    matrix.translate(transform, transform, [polar.cx, polar.cy]);\n    position = graphic.applyTransform([coord, -labelMargin], transform);\n    var labelRotation = axisModel.getModel('axisLabel').get('rotate') || 0;\n    var labelLayout = AxisBuilder.innerTextLayout(axisAngle, labelRotation * Math.PI / 180, -1);\n    align = labelLayout.textAlign;\n    verticalAlign = labelLayout.textVerticalAlign;\n  } else {\n    var r = radiusExtent[1];\n    position = polar.coordToPoint([r + labelMargin, coord]);\n    var cx = polar.cx;\n    var cy = polar.cy;\n    align = Math.abs(position[0] - cx) / r < 0.3 ? 'center' : position[0] > cx ? 'left' : 'right';\n    verticalAlign = Math.abs(position[1] - cy) / r < 0.3 ? 'middle' : position[1] > cy ? 'top' : 'bottom';\n  }\n\n  return {\n    position: position,\n    align: align,\n    verticalAlign: verticalAlign\n  };\n}\n\nvar pointerShapeBuilder = {\n  line: function (axis, polar, coordValue, otherExtent) {\n    return axis.dim === 'angle' ? {\n      type: 'Line',\n      shape: viewHelper.makeLineShape(polar.coordToPoint([otherExtent[0], coordValue]), polar.coordToPoint([otherExtent[1], coordValue]))\n    } : {\n      type: 'Circle',\n      shape: {\n        cx: polar.cx,\n        cy: polar.cy,\n        r: coordValue\n      }\n    };\n  },\n  shadow: function (axis, polar, coordValue, otherExtent) {\n    var bandWidth = Math.max(1, axis.getBandWidth());\n    var radian = Math.PI / 180;\n    return axis.dim === 'angle' ? {\n      type: 'Sector',\n      shape: viewHelper.makeSectorShape(polar.cx, polar.cy, otherExtent[0], otherExtent[1], (-coordValue - bandWidth / 2) * radian, (-coordValue + bandWidth / 2) * radian)\n    } : {\n      type: 'Sector',\n      shape: viewHelper.makeSectorShape(polar.cx, polar.cy, coordValue - bandWidth / 2, coordValue + bandWidth / 2, 0, Math.PI * 2)\n    };\n  }\n};\nexport default PolarAxisPointer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\n\nvar PolarModel = function (_super) {\n  __extends(PolarModel, _super);\n\n  function PolarModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = PolarModel.type;\n    return _this;\n  }\n\n  PolarModel.prototype.findAxisModel = function (axisType) {\n    var foundAxisModel;\n    var ecModel = this.ecModel;\n    ecModel.eachComponent(axisType, function (axisModel) {\n      if (axisModel.getCoordSysModel() === this) {\n        foundAxisModel = axisModel;\n      }\n    }, this);\n    return foundAxisModel;\n  };\n\n  PolarModel.type = 'polar';\n  PolarModel.dependencies = ['radiusAxis', 'angleAxis'];\n  PolarModel.defaultOption = {\n    zlevel: 0,\n    z: 0,\n    center: ['50%', '50%'],\n    radius: '80%'\n  };\n  return PolarModel;\n}(ComponentModel);\n\nexport default PolarModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin';\nimport { SINGLE_REFERRING } from '../../util/model';\n\nvar PolarAxisModel = function (_super) {\n  __extends(PolarAxisModel, _super);\n\n  function PolarAxisModel() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  PolarAxisModel.prototype.getCoordSysModel = function () {\n    return this.getReferringComponents('polar', SINGLE_REFERRING).models[0];\n  };\n\n  PolarAxisModel.type = 'polarAxis';\n  return PolarAxisModel;\n}(ComponentModel);\n\nzrUtil.mixin(PolarAxisModel, AxisModelCommonMixin);\nexport { PolarAxisModel };\n\nvar AngleAxisModel = function (_super) {\n  __extends(AngleAxisModel, _super);\n\n  function AngleAxisModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = AngleAxisModel.type;\n    return _this;\n  }\n\n  AngleAxisModel.type = 'angleAxis';\n  return AngleAxisModel;\n}(PolarAxisModel);\n\nexport { AngleAxisModel };\n\nvar RadiusAxisModel = function (_super) {\n  __extends(RadiusAxisModel, _super);\n\n  function RadiusAxisModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = RadiusAxisModel.type;\n    return _this;\n  }\n\n  RadiusAxisModel.type = 'radiusAxis';\n  return RadiusAxisModel;\n}(PolarAxisModel);\n\nexport { RadiusAxisModel };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis';\n\nvar RadiusAxis = function (_super) {\n  __extends(RadiusAxis, _super);\n\n  function RadiusAxis(scale, radiusExtent) {\n    return _super.call(this, 'radius', scale, radiusExtent) || this;\n  }\n\n  RadiusAxis.prototype.pointToData = function (point, clamp) {\n    return this.polar.pointToData(point, clamp)[this.dim === 'radius' ? 0 : 1];\n  };\n\n  return RadiusAxis;\n}(Axis);\n\nRadiusAxis.prototype.dataToRadius = Axis.prototype.dataToCoord;\nRadiusAxis.prototype.radiusToData = Axis.prototype.coordToData;\nexport default RadiusAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as textContain from 'zrender/lib/contain/text';\nimport Axis from '../Axis';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\n\nvar AngleAxis = function (_super) {\n  __extends(AngleAxis, _super);\n\n  function AngleAxis(scale, angleExtent) {\n    return _super.call(this, 'angle', scale, angleExtent || [0, 360]) || this;\n  }\n\n  AngleAxis.prototype.pointToData = function (point, clamp) {\n    return this.polar.pointToData(point, clamp)[this.dim === 'radius' ? 0 : 1];\n  };\n\n  AngleAxis.prototype.calculateCategoryInterval = function () {\n    var axis = this;\n    var labelModel = axis.getLabelModel();\n    var ordinalScale = axis.scale;\n    var ordinalExtent = ordinalScale.getExtent();\n    var tickCount = ordinalScale.count();\n\n    if (ordinalExtent[1] - ordinalExtent[0] < 1) {\n      return 0;\n    }\n\n    var tickValue = ordinalExtent[0];\n    var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue);\n    var unitH = Math.abs(unitSpan);\n    var rect = textContain.getBoundingRect(tickValue == null ? '' : tickValue + '', labelModel.getFont(), 'center', 'top');\n    var maxH = Math.max(rect.height, 7);\n    var dh = maxH / unitH;\n    isNaN(dh) && (dh = Infinity);\n    var interval = Math.max(0, Math.floor(dh));\n    var cache = inner(axis.model);\n    var lastAutoInterval = cache.lastAutoInterval;\n    var lastTickCount = cache.lastTickCount;\n\n    if (lastAutoInterval != null && lastTickCount != null && Math.abs(lastAutoInterval - interval) <= 1 && Math.abs(lastTickCount - tickCount) <= 1 && lastAutoInterval > interval) {\n      interval = lastAutoInterval;\n    } else {\n      cache.lastTickCount = tickCount;\n      cache.lastAutoInterval = interval;\n    }\n\n    return interval;\n  };\n\n  return AngleAxis;\n}(Axis);\n\nAngleAxis.prototype.dataToAngle = Axis.prototype.dataToCoord;\nAngleAxis.prototype.angleToData = Axis.prototype.coordToData;\nexport default AngleAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport RadiusAxis from './RadiusAxis';\nimport AngleAxis from './AngleAxis';\n\nvar Polar = function () {\n  function Polar(name) {\n    this.dimensions = ['radius', 'angle'];\n    this.type = 'polar';\n    this.cx = 0;\n    this.cy = 0;\n    this._radiusAxis = new RadiusAxis();\n    this._angleAxis = new AngleAxis();\n    this.axisPointerEnabled = true;\n    this.name = name || '';\n    this._radiusAxis.polar = this._angleAxis.polar = this;\n  }\n\n  Polar.prototype.containPoint = function (point) {\n    var coord = this.pointToCoord(point);\n    return this._radiusAxis.contain(coord[0]) && this._angleAxis.contain(coord[1]);\n  };\n\n  Polar.prototype.containData = function (data) {\n    return this._radiusAxis.containData(data[0]) && this._angleAxis.containData(data[1]);\n  };\n\n  Polar.prototype.getAxis = function (dim) {\n    var key = '_' + dim + 'Axis';\n    return this[key];\n  };\n\n  Polar.prototype.getAxes = function () {\n    return [this._radiusAxis, this._angleAxis];\n  };\n\n  Polar.prototype.getAxesByScale = function (scaleType) {\n    var axes = [];\n    var angleAxis = this._angleAxis;\n    var radiusAxis = this._radiusAxis;\n    angleAxis.scale.type === scaleType && axes.push(angleAxis);\n    radiusAxis.scale.type === scaleType && axes.push(radiusAxis);\n    return axes;\n  };\n\n  Polar.prototype.getAngleAxis = function () {\n    return this._angleAxis;\n  };\n\n  Polar.prototype.getRadiusAxis = function () {\n    return this._radiusAxis;\n  };\n\n  Polar.prototype.getOtherAxis = function (axis) {\n    var angleAxis = this._angleAxis;\n    return axis === angleAxis ? this._radiusAxis : angleAxis;\n  };\n\n  Polar.prototype.getBaseAxis = function () {\n    return this.getAxesByScale('ordinal')[0] || this.getAxesByScale('time')[0] || this.getAngleAxis();\n  };\n\n  Polar.prototype.getTooltipAxes = function (dim) {\n    var baseAxis = dim != null && dim !== 'auto' ? this.getAxis(dim) : this.getBaseAxis();\n    return {\n      baseAxes: [baseAxis],\n      otherAxes: [this.getOtherAxis(baseAxis)]\n    };\n  };\n\n  Polar.prototype.dataToPoint = function (data, clamp) {\n    return this.coordToPoint([this._radiusAxis.dataToRadius(data[0], clamp), this._angleAxis.dataToAngle(data[1], clamp)]);\n  };\n\n  Polar.prototype.pointToData = function (point, clamp) {\n    var coord = this.pointToCoord(point);\n    return [this._radiusAxis.radiusToData(coord[0], clamp), this._angleAxis.angleToData(coord[1], clamp)];\n  };\n\n  Polar.prototype.pointToCoord = function (point) {\n    var dx = point[0] - this.cx;\n    var dy = point[1] - this.cy;\n    var angleAxis = this.getAngleAxis();\n    var extent = angleAxis.getExtent();\n    var minAngle = Math.min(extent[0], extent[1]);\n    var maxAngle = Math.max(extent[0], extent[1]);\n    angleAxis.inverse ? minAngle = maxAngle - 360 : maxAngle = minAngle + 360;\n    var radius = Math.sqrt(dx * dx + dy * dy);\n    dx /= radius;\n    dy /= radius;\n    var radian = Math.atan2(-dy, dx) / Math.PI * 180;\n    var dir = radian < minAngle ? 1 : -1;\n\n    while (radian < minAngle || radian > maxAngle) {\n      radian += dir * 360;\n    }\n\n    return [radius, radian];\n  };\n\n  Polar.prototype.coordToPoint = function (coord) {\n    var radius = coord[0];\n    var radian = coord[1] / 180 * Math.PI;\n    var x = Math.cos(radian) * radius + this.cx;\n    var y = -Math.sin(radian) * radius + this.cy;\n    return [x, y];\n  };\n\n  Polar.prototype.getArea = function () {\n    var angleAxis = this.getAngleAxis();\n    var radiusAxis = this.getRadiusAxis();\n    var radiusExtent = radiusAxis.getExtent().slice();\n    radiusExtent[0] > radiusExtent[1] && radiusExtent.reverse();\n    var angleExtent = angleAxis.getExtent();\n    var RADIAN = Math.PI / 180;\n    return {\n      cx: this.cx,\n      cy: this.cy,\n      r0: radiusExtent[0],\n      r: radiusExtent[1],\n      startAngle: -angleExtent[0] * RADIAN,\n      endAngle: -angleExtent[1] * RADIAN,\n      clockwise: angleAxis.inverse,\n      contain: function (x, y) {\n        var dx = x - this.cx;\n        var dy = y - this.cy;\n        var d2 = dx * dx + dy * dy;\n        var r = this.r;\n        var r0 = this.r0;\n        return d2 <= r * r && d2 >= r0 * r0;\n      }\n    };\n  };\n\n  Polar.prototype.convertToPixel = function (ecModel, finder, value) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? this.dataToPoint(value) : null;\n  };\n\n  Polar.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? this.pointToData(pixel) : null;\n  };\n\n  return Polar;\n}();\n\nfunction getCoordSys(finder) {\n  var seriesModel = finder.seriesModel;\n  var polarModel = finder.polarModel;\n  return polarModel && polarModel.coordinateSystem || seriesModel && seriesModel.coordinateSystem;\n}\n\nexport default Polar;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Polar from './Polar';\nimport { parsePercent } from '../../util/number';\nimport { createScaleByModel, niceScaleExtent, getDataDimensionsOnAxis } from '../../coord/axisHelper';\nimport { SINGLE_REFERRING } from '../../util/model';\n\nfunction resizePolar(polar, polarModel, api) {\n  var center = polarModel.get('center');\n  var width = api.getWidth();\n  var height = api.getHeight();\n  polar.cx = parsePercent(center[0], width);\n  polar.cy = parsePercent(center[1], height);\n  var radiusAxis = polar.getRadiusAxis();\n  var size = Math.min(width, height) / 2;\n  var radius = polarModel.get('radius');\n\n  if (radius == null) {\n    radius = [0, '100%'];\n  } else if (!zrUtil.isArray(radius)) {\n    radius = [0, radius];\n  }\n\n  var parsedRadius = [parsePercent(radius[0], size), parsePercent(radius[1], size)];\n  radiusAxis.inverse ? radiusAxis.setExtent(parsedRadius[1], parsedRadius[0]) : radiusAxis.setExtent(parsedRadius[0], parsedRadius[1]);\n}\n\nfunction updatePolarScale(ecModel, api) {\n  var polar = this;\n  var angleAxis = polar.getAngleAxis();\n  var radiusAxis = polar.getRadiusAxis();\n  angleAxis.scale.setExtent(Infinity, -Infinity);\n  radiusAxis.scale.setExtent(Infinity, -Infinity);\n  ecModel.eachSeries(function (seriesModel) {\n    if (seriesModel.coordinateSystem === polar) {\n      var data_1 = seriesModel.getData();\n      zrUtil.each(getDataDimensionsOnAxis(data_1, 'radius'), function (dim) {\n        radiusAxis.scale.unionExtentFromData(data_1, dim);\n      });\n      zrUtil.each(getDataDimensionsOnAxis(data_1, 'angle'), function (dim) {\n        angleAxis.scale.unionExtentFromData(data_1, dim);\n      });\n    }\n  });\n  niceScaleExtent(angleAxis.scale, angleAxis.model);\n  niceScaleExtent(radiusAxis.scale, radiusAxis.model);\n\n  if (angleAxis.type === 'category' && !angleAxis.onBand) {\n    var extent = angleAxis.getExtent();\n    var diff = 360 / angleAxis.scale.count();\n    angleAxis.inverse ? extent[1] += diff : extent[1] -= diff;\n    angleAxis.setExtent(extent[0], extent[1]);\n  }\n}\n\nfunction isAngleAxisModel(axisModel) {\n  return axisModel.mainType === 'angleAxis';\n}\n\nfunction setAxis(axis, axisModel) {\n  axis.type = axisModel.get('type');\n  axis.scale = createScaleByModel(axisModel);\n  axis.onBand = axisModel.get('boundaryGap') && axis.type === 'category';\n  axis.inverse = axisModel.get('inverse');\n\n  if (isAngleAxisModel(axisModel)) {\n    axis.inverse = axis.inverse !== axisModel.get('clockwise');\n    var startAngle = axisModel.get('startAngle');\n    axis.setExtent(startAngle, startAngle + (axis.inverse ? -360 : 360));\n  }\n\n  axisModel.axis = axis;\n  axis.model = axisModel;\n}\n\nvar polarCreator = {\n  dimensions: Polar.prototype.dimensions,\n  create: function (ecModel, api) {\n    var polarList = [];\n    ecModel.eachComponent('polar', function (polarModel, idx) {\n      var polar = new Polar(idx + '');\n      polar.update = updatePolarScale;\n      var radiusAxis = polar.getRadiusAxis();\n      var angleAxis = polar.getAngleAxis();\n      var radiusAxisModel = polarModel.findAxisModel('radiusAxis');\n      var angleAxisModel = polarModel.findAxisModel('angleAxis');\n      setAxis(radiusAxis, radiusAxisModel);\n      setAxis(angleAxis, angleAxisModel);\n      resizePolar(polar, polarModel, api);\n      polarList.push(polar);\n      polarModel.coordinateSystem = polar;\n      polar.model = polarModel;\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      if (seriesModel.get('coordinateSystem') === 'polar') {\n        var polarModel = seriesModel.getReferringComponents('polar', SINGLE_REFERRING).models[0];\n\n        if (process.env.NODE_ENV !== 'production') {\n          if (!polarModel) {\n            throw new Error('Polar \"' + zrUtil.retrieve(seriesModel.get('polarIndex'), seriesModel.get('polarId'), 0) + '\" not found');\n          }\n        }\n\n        seriesModel.coordinateSystem = polarModel.coordinateSystem;\n      }\n    });\n    return polarList;\n  }\n};\nexport default polarCreator;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { createTextStyle } from '../../label/labelStyle';\nimport Model from '../../model/Model';\nimport AxisView from './AxisView';\nimport AxisBuilder from './AxisBuilder';\nimport { getECData } from '../../util/innerStore';\nvar elementList = ['axisLine', 'axisLabel', 'axisTick', 'minorTick', 'splitLine', 'minorSplitLine', 'splitArea'];\n\nfunction getAxisLineShape(polar, rExtent, angle) {\n  rExtent[1] > rExtent[0] && (rExtent = rExtent.slice().reverse());\n  var start = polar.coordToPoint([rExtent[0], angle]);\n  var end = polar.coordToPoint([rExtent[1], angle]);\n  return {\n    x1: start[0],\n    y1: start[1],\n    x2: end[0],\n    y2: end[1]\n  };\n}\n\nfunction getRadiusIdx(polar) {\n  var radiusAxis = polar.getRadiusAxis();\n  return radiusAxis.inverse ? 0 : 1;\n}\n\nfunction fixAngleOverlap(list) {\n  var firstItem = list[0];\n  var lastItem = list[list.length - 1];\n\n  if (firstItem && lastItem && Math.abs(Math.abs(firstItem.coord - lastItem.coord) - 360) < 1e-4) {\n    list.pop();\n  }\n}\n\nvar AngleAxisView = function (_super) {\n  __extends(AngleAxisView, _super);\n\n  function AngleAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = AngleAxisView.type;\n    _this.axisPointerClass = 'PolarAxisPointer';\n    return _this;\n  }\n\n  AngleAxisView.prototype.render = function (angleAxisModel, ecModel) {\n    this.group.removeAll();\n\n    if (!angleAxisModel.get('show')) {\n      return;\n    }\n\n    var angleAxis = angleAxisModel.axis;\n    var polar = angleAxis.polar;\n    var radiusExtent = polar.getRadiusAxis().getExtent();\n    var ticksAngles = angleAxis.getTicksCoords();\n    var minorTickAngles = angleAxis.getMinorTicksCoords();\n    var labels = zrUtil.map(angleAxis.getViewLabels(), function (labelItem) {\n      labelItem = zrUtil.clone(labelItem);\n      var scale = angleAxis.scale;\n      var tickValue = scale.type === 'ordinal' ? scale.getRawOrdinalNumber(labelItem.tickValue) : labelItem.tickValue;\n      labelItem.coord = angleAxis.dataToCoord(tickValue);\n      return labelItem;\n    });\n    fixAngleOverlap(labels);\n    fixAngleOverlap(ticksAngles);\n    zrUtil.each(elementList, function (name) {\n      if (angleAxisModel.get([name, 'show']) && (!angleAxis.scale.isBlank() || name === 'axisLine')) {\n        angelAxisElementsBuilders[name](this.group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent, labels);\n      }\n    }, this);\n  };\n\n  AngleAxisView.type = 'angleAxis';\n  return AngleAxisView;\n}(AxisView);\n\nvar angelAxisElementsBuilders = {\n  axisLine: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n    var lineStyleModel = angleAxisModel.getModel(['axisLine', 'lineStyle']);\n    var rId = getRadiusIdx(polar);\n    var r0Id = rId ? 0 : 1;\n    var shape;\n\n    if (radiusExtent[r0Id] === 0) {\n      shape = new graphic.Circle({\n        shape: {\n          cx: polar.cx,\n          cy: polar.cy,\n          r: radiusExtent[rId]\n        },\n        style: lineStyleModel.getLineStyle(),\n        z2: 1,\n        silent: true\n      });\n    } else {\n      shape = new graphic.Ring({\n        shape: {\n          cx: polar.cx,\n          cy: polar.cy,\n          r: radiusExtent[rId],\n          r0: radiusExtent[r0Id]\n        },\n        style: lineStyleModel.getLineStyle(),\n        z2: 1,\n        silent: true\n      });\n    }\n\n    shape.style.fill = null;\n    group.add(shape);\n  },\n  axisTick: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n    var tickModel = angleAxisModel.getModel('axisTick');\n    var tickLen = (tickModel.get('inside') ? -1 : 1) * tickModel.get('length');\n    var radius = radiusExtent[getRadiusIdx(polar)];\n    var lines = zrUtil.map(ticksAngles, function (tickAngleItem) {\n      return new graphic.Line({\n        shape: getAxisLineShape(polar, [radius, radius + tickLen], tickAngleItem.coord)\n      });\n    });\n    group.add(graphic.mergePath(lines, {\n      style: zrUtil.defaults(tickModel.getModel('lineStyle').getLineStyle(), {\n        stroke: angleAxisModel.get(['axisLine', 'lineStyle', 'color'])\n      })\n    }));\n  },\n  minorTick: function (group, angleAxisModel, polar, tickAngles, minorTickAngles, radiusExtent) {\n    if (!minorTickAngles.length) {\n      return;\n    }\n\n    var tickModel = angleAxisModel.getModel('axisTick');\n    var minorTickModel = angleAxisModel.getModel('minorTick');\n    var tickLen = (tickModel.get('inside') ? -1 : 1) * minorTickModel.get('length');\n    var radius = radiusExtent[getRadiusIdx(polar)];\n    var lines = [];\n\n    for (var i = 0; i < minorTickAngles.length; i++) {\n      for (var k = 0; k < minorTickAngles[i].length; k++) {\n        lines.push(new graphic.Line({\n          shape: getAxisLineShape(polar, [radius, radius + tickLen], minorTickAngles[i][k].coord)\n        }));\n      }\n    }\n\n    group.add(graphic.mergePath(lines, {\n      style: zrUtil.defaults(minorTickModel.getModel('lineStyle').getLineStyle(), zrUtil.defaults(tickModel.getLineStyle(), {\n        stroke: angleAxisModel.get(['axisLine', 'lineStyle', 'color'])\n      }))\n    }));\n  },\n  axisLabel: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent, labels) {\n    var rawCategoryData = angleAxisModel.getCategories(true);\n    var commonLabelModel = angleAxisModel.getModel('axisLabel');\n    var labelMargin = commonLabelModel.get('margin');\n    var triggerEvent = angleAxisModel.get('triggerEvent');\n    zrUtil.each(labels, function (labelItem, idx) {\n      var labelModel = commonLabelModel;\n      var tickValue = labelItem.tickValue;\n      var r = radiusExtent[getRadiusIdx(polar)];\n      var p = polar.coordToPoint([r + labelMargin, labelItem.coord]);\n      var cx = polar.cx;\n      var cy = polar.cy;\n      var labelTextAlign = Math.abs(p[0] - cx) / r < 0.3 ? 'center' : p[0] > cx ? 'left' : 'right';\n      var labelTextVerticalAlign = Math.abs(p[1] - cy) / r < 0.3 ? 'middle' : p[1] > cy ? 'top' : 'bottom';\n\n      if (rawCategoryData && rawCategoryData[tickValue]) {\n        var rawCategoryItem = rawCategoryData[tickValue];\n\n        if (zrUtil.isObject(rawCategoryItem) && rawCategoryItem.textStyle) {\n          labelModel = new Model(rawCategoryItem.textStyle, commonLabelModel, commonLabelModel.ecModel);\n        }\n      }\n\n      var textEl = new graphic.Text({\n        silent: AxisBuilder.isLabelSilent(angleAxisModel),\n        style: createTextStyle(labelModel, {\n          x: p[0],\n          y: p[1],\n          fill: labelModel.getTextColor() || angleAxisModel.get(['axisLine', 'lineStyle', 'color']),\n          text: labelItem.formattedLabel,\n          align: labelTextAlign,\n          verticalAlign: labelTextVerticalAlign\n        })\n      });\n      group.add(textEl);\n\n      if (triggerEvent) {\n        var eventData = AxisBuilder.makeAxisEventDataBase(angleAxisModel);\n        eventData.targetType = 'axisLabel';\n        eventData.value = labelItem.rawLabel;\n        getECData(textEl).eventData = eventData;\n      }\n    }, this);\n  },\n  splitLine: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n    var splitLineModel = angleAxisModel.getModel('splitLine');\n    var lineStyleModel = splitLineModel.getModel('lineStyle');\n    var lineColors = lineStyleModel.get('color');\n    var lineCount = 0;\n    lineColors = lineColors instanceof Array ? lineColors : [lineColors];\n    var splitLines = [];\n\n    for (var i = 0; i < ticksAngles.length; i++) {\n      var colorIndex = lineCount++ % lineColors.length;\n      splitLines[colorIndex] = splitLines[colorIndex] || [];\n      splitLines[colorIndex].push(new graphic.Line({\n        shape: getAxisLineShape(polar, radiusExtent, ticksAngles[i].coord)\n      }));\n    }\n\n    for (var i = 0; i < splitLines.length; i++) {\n      group.add(graphic.mergePath(splitLines[i], {\n        style: zrUtil.defaults({\n          stroke: lineColors[i % lineColors.length]\n        }, lineStyleModel.getLineStyle()),\n        silent: true,\n        z: angleAxisModel.get('z')\n      }));\n    }\n  },\n  minorSplitLine: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n    if (!minorTickAngles.length) {\n      return;\n    }\n\n    var minorSplitLineModel = angleAxisModel.getModel('minorSplitLine');\n    var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\n    var lines = [];\n\n    for (var i = 0; i < minorTickAngles.length; i++) {\n      for (var k = 0; k < minorTickAngles[i].length; k++) {\n        lines.push(new graphic.Line({\n          shape: getAxisLineShape(polar, radiusExtent, minorTickAngles[i][k].coord)\n        }));\n      }\n    }\n\n    group.add(graphic.mergePath(lines, {\n      style: lineStyleModel.getLineStyle(),\n      silent: true,\n      z: angleAxisModel.get('z')\n    }));\n  },\n  splitArea: function (group, angleAxisModel, polar, ticksAngles, minorTickAngles, radiusExtent) {\n    if (!ticksAngles.length) {\n      return;\n    }\n\n    var splitAreaModel = angleAxisModel.getModel('splitArea');\n    var areaStyleModel = splitAreaModel.getModel('areaStyle');\n    var areaColors = areaStyleModel.get('color');\n    var lineCount = 0;\n    areaColors = areaColors instanceof Array ? areaColors : [areaColors];\n    var splitAreas = [];\n    var RADIAN = Math.PI / 180;\n    var prevAngle = -ticksAngles[0].coord * RADIAN;\n    var r0 = Math.min(radiusExtent[0], radiusExtent[1]);\n    var r1 = Math.max(radiusExtent[0], radiusExtent[1]);\n    var clockwise = angleAxisModel.get('clockwise');\n\n    for (var i = 1, len = ticksAngles.length; i <= len; i++) {\n      var coord = i === len ? ticksAngles[0].coord : ticksAngles[i].coord;\n      var colorIndex = lineCount++ % areaColors.length;\n      splitAreas[colorIndex] = splitAreas[colorIndex] || [];\n      splitAreas[colorIndex].push(new graphic.Sector({\n        shape: {\n          cx: polar.cx,\n          cy: polar.cy,\n          r0: r0,\n          r: r1,\n          startAngle: prevAngle,\n          endAngle: -coord * RADIAN,\n          clockwise: clockwise\n        },\n        silent: true\n      }));\n      prevAngle = -coord * RADIAN;\n    }\n\n    for (var i = 0; i < splitAreas.length; i++) {\n      group.add(graphic.mergePath(splitAreas[i], {\n        style: zrUtil.defaults({\n          fill: areaColors[i % areaColors.length]\n        }, areaStyleModel.getAreaStyle()),\n        silent: true\n      }));\n    }\n  }\n};\nexport default AngleAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport AxisBuilder from './AxisBuilder';\nimport AxisView from './AxisView';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitLine', 'splitArea', 'minorSplitLine'];\n\nvar RadiusAxisView = function (_super) {\n  __extends(RadiusAxisView, _super);\n\n  function RadiusAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = RadiusAxisView.type;\n    _this.axisPointerClass = 'PolarAxisPointer';\n    return _this;\n  }\n\n  RadiusAxisView.prototype.render = function (radiusAxisModel, ecModel) {\n    this.group.removeAll();\n\n    if (!radiusAxisModel.get('show')) {\n      return;\n    }\n\n    var oldAxisGroup = this._axisGroup;\n    var newAxisGroup = this._axisGroup = new graphic.Group();\n    this.group.add(newAxisGroup);\n    var radiusAxis = radiusAxisModel.axis;\n    var polar = radiusAxis.polar;\n    var angleAxis = polar.getAngleAxis();\n    var ticksCoords = radiusAxis.getTicksCoords();\n    var minorTicksCoords = radiusAxis.getMinorTicksCoords();\n    var axisAngle = angleAxis.getExtent()[0];\n    var radiusExtent = radiusAxis.getExtent();\n    var layout = layoutAxis(polar, radiusAxisModel, axisAngle);\n    var axisBuilder = new AxisBuilder(radiusAxisModel, layout);\n    zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n    newAxisGroup.add(axisBuilder.getGroup());\n    graphic.groupTransition(oldAxisGroup, newAxisGroup, radiusAxisModel);\n    zrUtil.each(selfBuilderAttrs, function (name) {\n      if (radiusAxisModel.get([name, 'show']) && !radiusAxis.scale.isBlank()) {\n        axisElementBuilders[name](this.group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords, minorTicksCoords);\n      }\n    }, this);\n  };\n\n  RadiusAxisView.type = 'radiusAxis';\n  return RadiusAxisView;\n}(AxisView);\n\nvar axisElementBuilders = {\n  splitLine: function (group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords) {\n    var splitLineModel = radiusAxisModel.getModel('splitLine');\n    var lineStyleModel = splitLineModel.getModel('lineStyle');\n    var lineColors = lineStyleModel.get('color');\n    var lineCount = 0;\n    lineColors = lineColors instanceof Array ? lineColors : [lineColors];\n    var splitLines = [];\n\n    for (var i = 0; i < ticksCoords.length; i++) {\n      var colorIndex = lineCount++ % lineColors.length;\n      splitLines[colorIndex] = splitLines[colorIndex] || [];\n      splitLines[colorIndex].push(new graphic.Circle({\n        shape: {\n          cx: polar.cx,\n          cy: polar.cy,\n          r: ticksCoords[i].coord\n        }\n      }));\n    }\n\n    for (var i = 0; i < splitLines.length; i++) {\n      group.add(graphic.mergePath(splitLines[i], {\n        style: zrUtil.defaults({\n          stroke: lineColors[i % lineColors.length],\n          fill: null\n        }, lineStyleModel.getLineStyle()),\n        silent: true\n      }));\n    }\n  },\n  minorSplitLine: function (group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords, minorTicksCoords) {\n    if (!minorTicksCoords.length) {\n      return;\n    }\n\n    var minorSplitLineModel = radiusAxisModel.getModel('minorSplitLine');\n    var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\n    var lines = [];\n\n    for (var i = 0; i < minorTicksCoords.length; i++) {\n      for (var k = 0; k < minorTicksCoords[i].length; k++) {\n        lines.push(new graphic.Circle({\n          shape: {\n            cx: polar.cx,\n            cy: polar.cy,\n            r: minorTicksCoords[i][k].coord\n          }\n        }));\n      }\n    }\n\n    group.add(graphic.mergePath(lines, {\n      style: zrUtil.defaults({\n        fill: null\n      }, lineStyleModel.getLineStyle()),\n      silent: true\n    }));\n  },\n  splitArea: function (group, radiusAxisModel, polar, axisAngle, radiusExtent, ticksCoords) {\n    if (!ticksCoords.length) {\n      return;\n    }\n\n    var splitAreaModel = radiusAxisModel.getModel('splitArea');\n    var areaStyleModel = splitAreaModel.getModel('areaStyle');\n    var areaColors = areaStyleModel.get('color');\n    var lineCount = 0;\n    areaColors = areaColors instanceof Array ? areaColors : [areaColors];\n    var splitAreas = [];\n    var prevRadius = ticksCoords[0].coord;\n\n    for (var i = 1; i < ticksCoords.length; i++) {\n      var colorIndex = lineCount++ % areaColors.length;\n      splitAreas[colorIndex] = splitAreas[colorIndex] || [];\n      splitAreas[colorIndex].push(new graphic.Sector({\n        shape: {\n          cx: polar.cx,\n          cy: polar.cy,\n          r0: prevRadius,\n          r: ticksCoords[i].coord,\n          startAngle: 0,\n          endAngle: Math.PI * 2\n        },\n        silent: true\n      }));\n      prevRadius = ticksCoords[i].coord;\n    }\n\n    for (var i = 0; i < splitAreas.length; i++) {\n      group.add(graphic.mergePath(splitAreas[i], {\n        style: zrUtil.defaults({\n          fill: areaColors[i % areaColors.length]\n        }, areaStyleModel.getAreaStyle()),\n        silent: true\n      }));\n    }\n  }\n};\n\nfunction layoutAxis(polar, radiusAxisModel, axisAngle) {\n  return {\n    position: [polar.cx, polar.cy],\n    rotation: axisAngle / 180 * Math.PI,\n    labelDirection: -1,\n    tickDirection: -1,\n    nameDirection: 1,\n    labelRotate: radiusAxisModel.getModel('axisLabel').get('rotate'),\n    z2: 1\n  };\n}\n\nexport default RadiusAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parsePercent } from '../util/number';\nimport { isDimensionStacked } from '../data/helper/dataStackHelper';\n\nfunction getSeriesStackId(seriesModel) {\n  return seriesModel.get('stack') || '__ec_stack_' + seriesModel.seriesIndex;\n}\n\nfunction getAxisKey(polar, axis) {\n  return axis.dim + polar.model.componentIndex;\n}\n\nfunction barLayoutPolar(seriesType, ecModel, api) {\n  var lastStackCoords = {};\n  var barWidthAndOffset = calRadialBar(zrUtil.filter(ecModel.getSeriesByType(seriesType), function (seriesModel) {\n    return !ecModel.isSeriesFiltered(seriesModel) && seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'polar';\n  }));\n  ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n    if (seriesModel.coordinateSystem.type !== 'polar') {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var polar = seriesModel.coordinateSystem;\n    var baseAxis = polar.getBaseAxis();\n    var axisKey = getAxisKey(polar, baseAxis);\n    var stackId = getSeriesStackId(seriesModel);\n    var columnLayoutInfo = barWidthAndOffset[axisKey][stackId];\n    var columnOffset = columnLayoutInfo.offset;\n    var columnWidth = columnLayoutInfo.width;\n    var valueAxis = polar.getOtherAxis(baseAxis);\n    var cx = seriesModel.coordinateSystem.cx;\n    var cy = seriesModel.coordinateSystem.cy;\n    var barMinHeight = seriesModel.get('barMinHeight') || 0;\n    var barMinAngle = seriesModel.get('barMinAngle') || 0;\n    lastStackCoords[stackId] = lastStackCoords[stackId] || [];\n    var valueDim = data.mapDimension(valueAxis.dim);\n    var baseDim = data.mapDimension(baseAxis.dim);\n    var stacked = isDimensionStacked(data, valueDim);\n    var clampLayout = baseAxis.dim !== 'radius' || !seriesModel.get('roundCap', true);\n    var valueAxisStart = valueAxis.dataToCoord(0);\n\n    for (var idx = 0, len = data.count(); idx < len; idx++) {\n      var value = data.get(valueDim, idx);\n      var baseValue = data.get(baseDim, idx);\n      var sign = value >= 0 ? 'p' : 'n';\n      var baseCoord = valueAxisStart;\n\n      if (stacked) {\n        if (!lastStackCoords[stackId][baseValue]) {\n          lastStackCoords[stackId][baseValue] = {\n            p: valueAxisStart,\n            n: valueAxisStart\n          };\n        }\n\n        baseCoord = lastStackCoords[stackId][baseValue][sign];\n      }\n\n      var r0 = void 0;\n      var r = void 0;\n      var startAngle = void 0;\n      var endAngle = void 0;\n\n      if (valueAxis.dim === 'radius') {\n        var radiusSpan = valueAxis.dataToCoord(value) - valueAxisStart;\n        var angle = baseAxis.dataToCoord(baseValue);\n\n        if (Math.abs(radiusSpan) < barMinHeight) {\n          radiusSpan = (radiusSpan < 0 ? -1 : 1) * barMinHeight;\n        }\n\n        r0 = baseCoord;\n        r = baseCoord + radiusSpan;\n        startAngle = angle - columnOffset;\n        endAngle = startAngle - columnWidth;\n        stacked && (lastStackCoords[stackId][baseValue][sign] = r);\n      } else {\n        var angleSpan = valueAxis.dataToCoord(value, clampLayout) - valueAxisStart;\n        var radius = baseAxis.dataToCoord(baseValue);\n\n        if (Math.abs(angleSpan) < barMinAngle) {\n          angleSpan = (angleSpan < 0 ? -1 : 1) * barMinAngle;\n        }\n\n        r0 = radius + columnOffset;\n        r = r0 + columnWidth;\n        startAngle = baseCoord;\n        endAngle = baseCoord + angleSpan;\n        stacked && (lastStackCoords[stackId][baseValue][sign] = endAngle);\n      }\n\n      data.setItemLayout(idx, {\n        cx: cx,\n        cy: cy,\n        r0: r0,\n        r: r,\n        startAngle: -startAngle * Math.PI / 180,\n        endAngle: -endAngle * Math.PI / 180\n      });\n    }\n  });\n}\n\nfunction calRadialBar(barSeries) {\n  var columnsMap = {};\n  zrUtil.each(barSeries, function (seriesModel, idx) {\n    var data = seriesModel.getData();\n    var polar = seriesModel.coordinateSystem;\n    var baseAxis = polar.getBaseAxis();\n    var axisKey = getAxisKey(polar, baseAxis);\n    var axisExtent = baseAxis.getExtent();\n    var bandWidth = baseAxis.type === 'category' ? baseAxis.getBandWidth() : Math.abs(axisExtent[1] - axisExtent[0]) / data.count();\n    var columnsOnAxis = columnsMap[axisKey] || {\n      bandWidth: bandWidth,\n      remainedWidth: bandWidth,\n      autoWidthCount: 0,\n      categoryGap: '20%',\n      gap: '30%',\n      stacks: {}\n    };\n    var stacks = columnsOnAxis.stacks;\n    columnsMap[axisKey] = columnsOnAxis;\n    var stackId = getSeriesStackId(seriesModel);\n\n    if (!stacks[stackId]) {\n      columnsOnAxis.autoWidthCount++;\n    }\n\n    stacks[stackId] = stacks[stackId] || {\n      width: 0,\n      maxWidth: 0\n    };\n    var barWidth = parsePercent(seriesModel.get('barWidth'), bandWidth);\n    var barMaxWidth = parsePercent(seriesModel.get('barMaxWidth'), bandWidth);\n    var barGap = seriesModel.get('barGap');\n    var barCategoryGap = seriesModel.get('barCategoryGap');\n\n    if (barWidth && !stacks[stackId].width) {\n      barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\n      stacks[stackId].width = barWidth;\n      columnsOnAxis.remainedWidth -= barWidth;\n    }\n\n    barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\n    barGap != null && (columnsOnAxis.gap = barGap);\n    barCategoryGap != null && (columnsOnAxis.categoryGap = barCategoryGap);\n  });\n  var result = {};\n  zrUtil.each(columnsMap, function (columnsOnAxis, coordSysName) {\n    result[coordSysName] = {};\n    var stacks = columnsOnAxis.stacks;\n    var bandWidth = columnsOnAxis.bandWidth;\n    var categoryGap = parsePercent(columnsOnAxis.categoryGap, bandWidth);\n    var barGapPercent = parsePercent(columnsOnAxis.gap, 1);\n    var remainedWidth = columnsOnAxis.remainedWidth;\n    var autoWidthCount = columnsOnAxis.autoWidthCount;\n    var autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n    autoWidth = Math.max(autoWidth, 0);\n    zrUtil.each(stacks, function (column, stack) {\n      var maxWidth = column.maxWidth;\n\n      if (maxWidth && maxWidth < autoWidth) {\n        maxWidth = Math.min(maxWidth, remainedWidth);\n\n        if (column.width) {\n          maxWidth = Math.min(maxWidth, column.width);\n        }\n\n        remainedWidth -= maxWidth;\n        column.width = maxWidth;\n        autoWidthCount--;\n      }\n    });\n    autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n    autoWidth = Math.max(autoWidth, 0);\n    var widthSum = 0;\n    var lastColumn;\n    zrUtil.each(stacks, function (column, idx) {\n      if (!column.width) {\n        column.width = autoWidth;\n      }\n\n      lastColumn = column;\n      widthSum += column.width * (1 + barGapPercent);\n    });\n\n    if (lastColumn) {\n      widthSum -= lastColumn.width * barGapPercent;\n    }\n\n    var offset = -widthSum / 2;\n    zrUtil.each(stacks, function (column, stackId) {\n      result[coordSysName][stackId] = result[coordSysName][stackId] || {\n        offset: offset,\n        width: column.width\n      };\n      offset += column.width * (1 + barGapPercent);\n    });\n  });\n  return result;\n}\n\nexport default barLayoutPolar;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { use } from '../../extension';\nimport AxisView from '../axis/AxisView';\nimport PolarAxisPointer from '../axisPointer/PolarAxisPointer';\nimport { install as installAxisPointer } from '../axisPointer/install';\nimport PolarModel from '../../coord/polar/PolarModel';\nimport axisModelCreator from '../../coord/axisModelCreator';\nimport { AngleAxisModel, RadiusAxisModel } from '../../coord/polar/AxisModel';\nimport polarCreator from '../../coord/polar/polarCreator';\nimport AngleAxisView from '../axis/AngleAxisView';\nimport RadiusAxisView from '../axis/RadiusAxisView';\nimport ComponentView from '../../view/Component';\nimport { curry } from 'zrender/lib/core/util';\nimport barLayoutPolar from '../../layout/barPolar';\nvar angleAxisExtraOption = {\n  startAngle: 90,\n  clockwise: true,\n  splitNumber: 12,\n  axisLabel: {\n    rotate: 0\n  }\n};\nvar radiusAxisExtraOption = {\n  splitNumber: 5\n};\n\nvar PolarView = function (_super) {\n  __extends(PolarView, _super);\n\n  function PolarView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = PolarView.type;\n    return _this;\n  }\n\n  PolarView.type = 'polar';\n  return PolarView;\n}(ComponentView);\n\nexport function install(registers) {\n  use(installAxisPointer);\n  AxisView.registerAxisPointerClass('PolarAxisPointer', PolarAxisPointer);\n  registers.registerCoordinateSystem('polar', polarCreator);\n  registers.registerComponentModel(PolarModel);\n  registers.registerComponentView(PolarView);\n  axisModelCreator(registers, 'angle', AngleAxisModel, angleAxisExtraOption);\n  axisModelCreator(registers, 'radius', RadiusAxisModel, radiusAxisExtraOption);\n  registers.registerComponentView(AngleAxisView);\n  registers.registerComponentView(RadiusAxisView);\n  registers.registerLayout(curry(barLayoutPolar, 'bar'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport View from '../View';\nimport geoSourceManager from './geoSourceManager';\nimport { SINGLE_REFERRING } from '../../util/model';\n\nvar Geo = function (_super) {\n  __extends(Geo, _super);\n\n  function Geo(name, map, nameMap, invertLongitute) {\n    var _this = _super.call(this, name) || this;\n\n    _this.dimensions = ['lng', 'lat'];\n    _this.type = 'geo';\n    _this.map = map;\n    var source = geoSourceManager.load(map, nameMap);\n    _this._nameCoordMap = source.nameCoordMap;\n    _this._regionsMap = source.regionsMap;\n    _this._invertLongitute = invertLongitute == null ? true : invertLongitute;\n    _this.regions = source.regions;\n    _this._rect = source.boundingRect;\n    return _this;\n  }\n\n  Geo.prototype.containCoord = function (coord) {\n    var regions = this.regions;\n\n    for (var i = 0; i < regions.length; i++) {\n      if (regions[i].contain(coord)) {\n        return true;\n      }\n    }\n\n    return false;\n  };\n\n  Geo.prototype.transformTo = function (x, y, width, height) {\n    var rect = this.getBoundingRect();\n    var invertLongitute = this._invertLongitute;\n    rect = rect.clone();\n\n    if (invertLongitute) {\n      rect.y = -rect.y - rect.height;\n    }\n\n    var rawTransformable = this._rawTransformable;\n    rawTransformable.transform = rect.calculateTransform(new BoundingRect(x, y, width, height));\n    rawTransformable.decomposeTransform();\n\n    if (invertLongitute) {\n      rawTransformable.scaleY = -rawTransformable.scaleY;\n    }\n\n    rawTransformable.updateTransform();\n\n    this._updateTransform();\n  };\n\n  Geo.prototype.getRegion = function (name) {\n    return this._regionsMap.get(name);\n  };\n\n  Geo.prototype.getRegionByCoord = function (coord) {\n    var regions = this.regions;\n\n    for (var i = 0; i < regions.length; i++) {\n      if (regions[i].contain(coord)) {\n        return regions[i];\n      }\n    }\n  };\n\n  Geo.prototype.addGeoCoord = function (name, geoCoord) {\n    this._nameCoordMap.set(name, geoCoord);\n  };\n\n  Geo.prototype.getGeoCoord = function (name) {\n    return this._nameCoordMap.get(name);\n  };\n\n  Geo.prototype.getBoundingRect = function () {\n    return this._rect;\n  };\n\n  Geo.prototype.dataToPoint = function (data, noRoam, out) {\n    if (typeof data === 'string') {\n      data = this.getGeoCoord(data);\n    }\n\n    if (data) {\n      return View.prototype.dataToPoint.call(this, data, noRoam, out);\n    }\n  };\n\n  Geo.prototype.convertToPixel = function (ecModel, finder, value) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? coordSys.dataToPoint(value) : null;\n  };\n\n  Geo.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? coordSys.pointToData(pixel) : null;\n  };\n\n  return Geo;\n}(View);\n\n;\nzrUtil.mixin(Geo, View);\n\nfunction getCoordSys(finder) {\n  var geoModel = finder.geoModel;\n  var seriesModel = finder.seriesModel;\n  return geoModel ? geoModel.coordinateSystem : seriesModel ? seriesModel.coordinateSystem || (seriesModel.getReferringComponents('geo', SINGLE_REFERRING).models[0] || {}).coordinateSystem : null;\n}\n\nexport default Geo;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Geo from './Geo';\nimport * as layout from '../../util/layout';\nimport * as numberUtil from '../../util/number';\nimport geoSourceManager from './geoSourceManager';\nimport mapDataStorage from './mapDataStorage';\n\nfunction resizeGeo(geoModel, api) {\n  var boundingCoords = geoModel.get('boundingCoords');\n\n  if (boundingCoords != null) {\n    var leftTop = boundingCoords[0];\n    var rightBottom = boundingCoords[1];\n\n    if (isNaN(leftTop[0]) || isNaN(leftTop[1]) || isNaN(rightBottom[0]) || isNaN(rightBottom[1])) {\n      if (process.env.NODE_ENV !== 'production') {\n        console.error('Invalid boundingCoords');\n      }\n    } else {\n      this.setBoundingRect(leftTop[0], leftTop[1], rightBottom[0] - leftTop[0], rightBottom[1] - leftTop[1]);\n    }\n  }\n\n  var rect = this.getBoundingRect();\n  var centerOption = geoModel.get('layoutCenter');\n  var sizeOption = geoModel.get('layoutSize');\n  var viewWidth = api.getWidth();\n  var viewHeight = api.getHeight();\n  var aspect = rect.width / rect.height * this.aspectScale;\n  var useCenterAndSize = false;\n  var center;\n  var size;\n\n  if (centerOption && sizeOption) {\n    center = [numberUtil.parsePercent(centerOption[0], viewWidth), numberUtil.parsePercent(centerOption[1], viewHeight)];\n    size = numberUtil.parsePercent(sizeOption, Math.min(viewWidth, viewHeight));\n\n    if (!isNaN(center[0]) && !isNaN(center[1]) && !isNaN(size)) {\n      useCenterAndSize = true;\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn('Given layoutCenter or layoutSize data are invalid. Use left/top/width/height instead.');\n      }\n    }\n  }\n\n  var viewRect;\n\n  if (useCenterAndSize) {\n    viewRect = {};\n\n    if (aspect > 1) {\n      viewRect.width = size;\n      viewRect.height = size / aspect;\n    } else {\n      viewRect.height = size;\n      viewRect.width = size * aspect;\n    }\n\n    viewRect.y = center[1] - viewRect.height / 2;\n    viewRect.x = center[0] - viewRect.width / 2;\n  } else {\n    var boxLayoutOption = geoModel.getBoxLayoutParams();\n    boxLayoutOption.aspect = aspect;\n    viewRect = layout.getLayoutRect(boxLayoutOption, {\n      width: viewWidth,\n      height: viewHeight\n    });\n  }\n\n  this.setViewRect(viewRect.x, viewRect.y, viewRect.width, viewRect.height);\n  this.setCenter(geoModel.get('center'));\n  this.setZoom(geoModel.get('zoom'));\n}\n\nfunction setGeoCoords(geo, model) {\n  zrUtil.each(model.get('geoCoord'), function (geoCoord, name) {\n    geo.addGeoCoord(name, geoCoord);\n  });\n}\n\nvar GeoCreator = function () {\n  function GeoCreator() {\n    this.dimensions = Geo.prototype.dimensions;\n  }\n\n  GeoCreator.prototype.create = function (ecModel, api) {\n    var geoList = [];\n    ecModel.eachComponent('geo', function (geoModel, idx) {\n      var name = geoModel.get('map');\n      var aspectScale = geoModel.get('aspectScale');\n      var invertLongitute = true;\n      var mapRecords = mapDataStorage.retrieveMap(name);\n\n      if (mapRecords && mapRecords[0] && mapRecords[0].type === 'svg') {\n        aspectScale == null && (aspectScale = 1);\n        invertLongitute = false;\n      } else {\n        aspectScale == null && (aspectScale = 0.75);\n      }\n\n      var geo = new Geo(name + idx, name, geoModel.get('nameMap'), invertLongitute);\n      geo.aspectScale = aspectScale;\n      geo.zoomLimit = geoModel.get('scaleLimit');\n      geoList.push(geo);\n      geoModel.coordinateSystem = geo;\n      geo.model = geoModel;\n      geo.resize = resizeGeo;\n      geo.resize(geoModel, api);\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      var coordSys = seriesModel.get('coordinateSystem');\n\n      if (coordSys === 'geo') {\n        var geoIndex = seriesModel.get('geoIndex') || 0;\n        seriesModel.coordinateSystem = geoList[geoIndex];\n      }\n    });\n    var mapModelGroupBySeries = {};\n    ecModel.eachSeriesByType('map', function (seriesModel) {\n      if (!seriesModel.getHostGeoModel()) {\n        var mapType = seriesModel.getMapType();\n        mapModelGroupBySeries[mapType] = mapModelGroupBySeries[mapType] || [];\n        mapModelGroupBySeries[mapType].push(seriesModel);\n      }\n    });\n    zrUtil.each(mapModelGroupBySeries, function (mapSeries, mapType) {\n      var nameMapList = zrUtil.map(mapSeries, function (singleMapSeries) {\n        return singleMapSeries.get('nameMap');\n      });\n      var geo = new Geo(mapType, mapType, zrUtil.mergeAll(nameMapList));\n      geo.zoomLimit = zrUtil.retrieve.apply(null, zrUtil.map(mapSeries, function (singleMapSeries) {\n        return singleMapSeries.get('scaleLimit');\n      }));\n      geoList.push(geo);\n      geo.resize = resizeGeo;\n      geo.aspectScale = mapSeries[0].get('aspectScale');\n      geo.resize(mapSeries[0], api);\n      zrUtil.each(mapSeries, function (singleMapSeries) {\n        singleMapSeries.coordinateSystem = geo;\n        setGeoCoords(geo, singleMapSeries);\n      });\n    });\n    return geoList;\n  };\n\n  GeoCreator.prototype.getFilledRegions = function (originRegionArr, mapName, nameMap) {\n    var regionsArr = (originRegionArr || []).slice();\n    var dataNameMap = zrUtil.createHashMap();\n\n    for (var i = 0; i < regionsArr.length; i++) {\n      dataNameMap.set(regionsArr[i].name, regionsArr[i]);\n    }\n\n    var source = geoSourceManager.load(mapName, nameMap);\n    zrUtil.each(source.regions, function (region) {\n      var name = region.name;\n      !dataNameMap.get(name) && regionsArr.push({\n        name: name\n      });\n    });\n    return regionsArr;\n  };\n\n  return GeoCreator;\n}();\n\nvar geoCreator = new GeoCreator();\nexport default geoCreator;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nimport ComponentModel from '../../model/Component';\nimport Model from '../../model/Model';\nimport geoCreator from './geoCreator';\n;\n;\n\nvar GeoModel = function (_super) {\n  __extends(GeoModel, _super);\n\n  function GeoModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GeoModel.type;\n    return _this;\n  }\n\n  GeoModel.prototype.init = function (option, parentModel, ecModel) {\n    _super.prototype.init.call(this, option, parentModel, ecModel);\n\n    modelUtil.defaultEmphasis(option, 'label', ['show']);\n  };\n\n  GeoModel.prototype.optionUpdated = function () {\n    var option = this.option;\n    var self = this;\n    option.regions = geoCreator.getFilledRegions(option.regions, option.map, option.nameMap);\n    var selectedMap = {};\n    this._optionModelMap = zrUtil.reduce(option.regions || [], function (optionModelMap, regionOpt) {\n      var regionName = regionOpt.name;\n\n      if (regionName) {\n        optionModelMap.set(regionName, new Model(regionOpt, self));\n\n        if (regionOpt.selected) {\n          selectedMap[regionName] = true;\n        }\n      }\n\n      return optionModelMap;\n    }, zrUtil.createHashMap());\n\n    if (!option.selectedMap) {\n      option.selectedMap = selectedMap;\n    }\n  };\n\n  GeoModel.prototype.getRegionModel = function (name) {\n    return this._optionModelMap.get(name) || new Model(null, this, this.ecModel);\n  };\n\n  GeoModel.prototype.getFormattedLabel = function (name, status) {\n    var regionModel = this.getRegionModel(name);\n    var formatter = status === 'normal' ? regionModel.get(['label', 'formatter']) : regionModel.get(['emphasis', 'label', 'formatter']);\n    var params = {\n      name: name\n    };\n\n    if (typeof formatter === 'function') {\n      params.status = status;\n      return formatter(params);\n    } else if (typeof formatter === 'string') {\n      return formatter.replace('{a}', name != null ? name : '');\n    }\n  };\n\n  GeoModel.prototype.setZoom = function (zoom) {\n    this.option.zoom = zoom;\n  };\n\n  GeoModel.prototype.setCenter = function (center) {\n    this.option.center = center;\n  };\n\n  GeoModel.prototype.select = function (name) {\n    var option = this.option;\n    var selectedMode = option.selectedMode;\n\n    if (!selectedMode) {\n      return;\n    }\n\n    if (selectedMode !== 'multiple') {\n      option.selectedMap = null;\n    }\n\n    var selectedMap = option.selectedMap || (option.selectedMap = {});\n    selectedMap[name] = true;\n  };\n\n  GeoModel.prototype.unSelect = function (name) {\n    var selectedMap = this.option.selectedMap;\n\n    if (selectedMap) {\n      selectedMap[name] = false;\n    }\n  };\n\n  GeoModel.prototype.toggleSelected = function (name) {\n    this[this.isSelected(name) ? 'unSelect' : 'select'](name);\n  };\n\n  GeoModel.prototype.isSelected = function (name) {\n    var selectedMap = this.option.selectedMap;\n    return !!(selectedMap && selectedMap[name]);\n  };\n\n  GeoModel.prototype._initSelectedMapFromData = function () {};\n\n  GeoModel.type = 'geo';\n  GeoModel.layoutMode = 'box';\n  GeoModel.defaultOption = {\n    zlevel: 0,\n    z: 0,\n    show: true,\n    left: 'center',\n    top: 'center',\n    aspectScale: null,\n    silent: false,\n    map: '',\n    boundingCoords: null,\n    center: null,\n    zoom: 1,\n    scaleLimit: null,\n    label: {\n      show: false,\n      color: '#000'\n    },\n    itemStyle: {\n      borderWidth: 0.5,\n      borderColor: '#444',\n      color: '#eee'\n    },\n    emphasis: {\n      label: {\n        show: true,\n        color: 'rgb(100,0,0)'\n      },\n      itemStyle: {\n        color: 'rgba(255,215,0,0.8)'\n      }\n    },\n    select: {\n      label: {\n        show: true,\n        color: 'rgb(100,0,0)'\n      },\n      itemStyle: {\n        color: 'rgba(255,215,0,0.8)'\n      }\n    },\n    regions: []\n  };\n  return GeoModel;\n}(ComponentModel);\n\nexport default GeoModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport MapDraw from '../helper/MapDraw';\nimport ComponentView from '../../view/Component';\nimport { getECData } from '../../util/innerStore';\n\nvar GeoView = function (_super) {\n  __extends(GeoView, _super);\n\n  function GeoView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GeoView.type;\n    return _this;\n  }\n\n  GeoView.prototype.init = function (ecModel, api) {\n    var mapDraw = new MapDraw(api);\n    this._mapDraw = mapDraw;\n    this.group.add(mapDraw.group);\n    this._api = api;\n  };\n\n  GeoView.prototype.render = function (geoModel, ecModel, api, payload) {\n    var mapDraw = this._mapDraw;\n\n    if (geoModel.get('show')) {\n      mapDraw.draw(geoModel, ecModel, api, this, payload);\n    } else {\n      this._mapDraw.group.removeAll();\n    }\n\n    mapDraw.group.on('click', this._handleRegionClick, this);\n    mapDraw.group.silent = geoModel.get('silent');\n    this._model = geoModel;\n    this.updateSelectStatus(geoModel, ecModel, api);\n  };\n\n  GeoView.prototype._handleRegionClick = function (e) {\n    var current = e.target;\n    var eventData;\n\n    while (current && (eventData = getECData(current).eventData) == null) {\n      current = current.__hostTarget || current.parent;\n    }\n\n    if (eventData) {\n      this._api.dispatchAction({\n        type: 'geoToggleSelect',\n        geoId: this._model.id,\n        name: eventData.name\n      });\n    }\n  };\n\n  GeoView.prototype.updateSelectStatus = function (model, ecModel, api) {\n    var _this = this;\n\n    this._mapDraw.group.traverse(function (node) {\n      var eventData = getECData(node).eventData;\n\n      if (eventData) {\n        _this._model.isSelected(eventData.name) ? api.enterSelect(node) : api.leaveSelect(node);\n        return true;\n      }\n    });\n  };\n\n  GeoView.prototype.dispose = function () {\n    this._mapDraw && this._mapDraw.remove();\n  };\n\n  GeoView.type = 'geo';\n  return GeoView;\n}(ComponentView);\n\nexport default GeoView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport GeoModel from '../../coord/geo/GeoModel';\nimport geoCreator from '../../coord/geo/geoCreator';\nimport { each } from 'zrender/lib/core/util';\nimport { updateCenterAndZoom } from '../../action/roamHelper';\nimport GeoView from './GeoView';\nexport function install(registers) {\n  registers.registerCoordinateSystem('geo', geoCreator);\n  registers.registerComponentModel(GeoModel);\n  registers.registerComponentView(GeoView);\n\n  function makeAction(method, actionInfo) {\n    actionInfo.update = 'geo:updateSelectStatus';\n    registers.registerAction(actionInfo, function (payload, ecModel) {\n      var selected = {};\n      ecModel.eachComponent({\n        mainType: 'geo',\n        query: payload\n      }, function (geoModel) {\n        geoModel[method](payload.name);\n        var geo = geoModel.coordinateSystem;\n        each(geo.regions, function (region) {\n          selected[region.name] = geoModel.isSelected(region.name) || false;\n        });\n      });\n      return {\n        selected: selected,\n        name: payload.name\n      };\n    });\n  }\n\n  makeAction('toggleSelected', {\n    type: 'geoToggleSelect',\n    event: 'geoselectchanged'\n  });\n  makeAction('select', {\n    type: 'geoSelect',\n    event: 'geoselected'\n  });\n  makeAction('unSelect', {\n    type: 'geoUnSelect',\n    event: 'geounselected'\n  });\n  registers.registerAction({\n    type: 'geoRoam',\n    event: 'geoRoam',\n    update: 'updateTransform'\n  }, function (payload, ecModel) {\n    var componentType = payload.componentType || 'series';\n    ecModel.eachComponent({\n      mainType: componentType,\n      query: payload\n    }, function (componentModel) {\n      var geo = componentModel.coordinateSystem;\n\n      if (geo.type !== 'geo') {\n        return;\n      }\n\n      var res = updateCenterAndZoom(geo, payload, componentModel.get('scaleLimit'));\n      componentModel.setCenter && componentModel.setCenter(res.center);\n      componentModel.setZoom && componentModel.setZoom(res.zoom);\n\n      if (componentType === 'series') {\n        each(componentModel.seriesGroup, function (seriesModel) {\n          seriesModel.setCenter(res.center);\n          seriesModel.setZoom(res.zoom);\n        });\n      }\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport function layout(axisModel, opt) {\n  opt = opt || {};\n  var single = axisModel.coordinateSystem;\n  var axis = axisModel.axis;\n  var layout = {};\n  var axisPosition = axis.position;\n  var orient = axis.orient;\n  var rect = single.getRect();\n  var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height];\n  var positionMap = {\n    horizontal: {\n      top: rectBound[2],\n      bottom: rectBound[3]\n    },\n    vertical: {\n      left: rectBound[0],\n      right: rectBound[1]\n    }\n  };\n  layout.position = [orient === 'vertical' ? positionMap.vertical[axisPosition] : rectBound[0], orient === 'horizontal' ? positionMap.horizontal[axisPosition] : rectBound[3]];\n  var r = {\n    horizontal: 0,\n    vertical: 1\n  };\n  layout.rotation = Math.PI / 2 * r[orient];\n  var directionMap = {\n    top: -1,\n    bottom: 1,\n    right: 1,\n    left: -1\n  };\n  layout.labelDirection = layout.tickDirection = layout.nameDirection = directionMap[axisPosition];\n\n  if (axisModel.get(['axisTick', 'inside'])) {\n    layout.tickDirection = -layout.tickDirection;\n  }\n\n  if (zrUtil.retrieve(opt.labelInside, axisModel.get(['axisLabel', 'inside']))) {\n    layout.labelDirection = -layout.labelDirection;\n  }\n\n  var labelRotation = opt.rotate;\n  labelRotation == null && (labelRotation = axisModel.get(['axisLabel', 'rotate']));\n  layout.labelRotation = axisPosition === 'top' ? -labelRotation : labelRotation;\n  layout.z2 = 1;\n  return layout;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport AxisBuilder from './AxisBuilder';\nimport * as graphic from '../../util/graphic';\nimport * as singleAxisHelper from '../../coord/single/singleAxisHelper';\nimport AxisView from './AxisView';\nimport { rectCoordAxisBuildSplitArea, rectCoordAxisHandleRemove } from './axisSplitHelper';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitArea', 'splitLine'];\n\nvar SingleAxisView = function (_super) {\n  __extends(SingleAxisView, _super);\n\n  function SingleAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SingleAxisView.type;\n    _this.axisPointerClass = 'SingleAxisPointer';\n    return _this;\n  }\n\n  SingleAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n    var group = this.group;\n    group.removeAll();\n    var oldAxisGroup = this._axisGroup;\n    this._axisGroup = new graphic.Group();\n    var layout = singleAxisHelper.layout(axisModel);\n    var axisBuilder = new AxisBuilder(axisModel, layout);\n    zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n    group.add(this._axisGroup);\n    group.add(axisBuilder.getGroup());\n    zrUtil.each(selfBuilderAttrs, function (name) {\n      if (axisModel.get([name, 'show'])) {\n        axisElementBuilders[name](this, this.group, this._axisGroup, axisModel);\n      }\n    }, this);\n    graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel);\n\n    _super.prototype.render.call(this, axisModel, ecModel, api, payload);\n  };\n\n  SingleAxisView.prototype.remove = function () {\n    rectCoordAxisHandleRemove(this);\n  };\n\n  SingleAxisView.type = 'singleAxis';\n  return SingleAxisView;\n}(AxisView);\n\nvar axisElementBuilders = {\n  splitLine: function (axisView, group, axisGroup, axisModel) {\n    var axis = axisModel.axis;\n\n    if (axis.scale.isBlank()) {\n      return;\n    }\n\n    var splitLineModel = axisModel.getModel('splitLine');\n    var lineStyleModel = splitLineModel.getModel('lineStyle');\n    var lineColors = lineStyleModel.get('color');\n    lineColors = lineColors instanceof Array ? lineColors : [lineColors];\n    var gridRect = axisModel.coordinateSystem.getRect();\n    var isHorizontal = axis.isHorizontal();\n    var splitLines = [];\n    var lineCount = 0;\n    var ticksCoords = axis.getTicksCoords({\n      tickModel: splitLineModel\n    });\n    var p1 = [];\n    var p2 = [];\n\n    for (var i = 0; i < ticksCoords.length; ++i) {\n      var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n\n      if (isHorizontal) {\n        p1[0] = tickCoord;\n        p1[1] = gridRect.y;\n        p2[0] = tickCoord;\n        p2[1] = gridRect.y + gridRect.height;\n      } else {\n        p1[0] = gridRect.x;\n        p1[1] = tickCoord;\n        p2[0] = gridRect.x + gridRect.width;\n        p2[1] = tickCoord;\n      }\n\n      var colorIndex = lineCount++ % lineColors.length;\n      splitLines[colorIndex] = splitLines[colorIndex] || [];\n      splitLines[colorIndex].push(new graphic.Line({\n        subPixelOptimize: true,\n        shape: {\n          x1: p1[0],\n          y1: p1[1],\n          x2: p2[0],\n          y2: p2[1]\n        },\n        silent: true\n      }));\n    }\n\n    var lineStyle = lineStyleModel.getLineStyle(['color']);\n\n    for (var i = 0; i < splitLines.length; ++i) {\n      group.add(graphic.mergePath(splitLines[i], {\n        style: zrUtil.defaults({\n          stroke: lineColors[i % lineColors.length]\n        }, lineStyle),\n        silent: true\n      }));\n    }\n  },\n  splitArea: function (axisView, group, axisGroup, axisModel) {\n    rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, axisModel);\n  }\n};\nexport default SingleAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin';\nimport { mixin } from 'zrender/lib/core/util';\n\nvar SingleAxisModel = function (_super) {\n  __extends(SingleAxisModel, _super);\n\n  function SingleAxisModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SingleAxisModel.type;\n    return _this;\n  }\n\n  SingleAxisModel.prototype.getCoordSysModel = function () {\n    return this;\n  };\n\n  SingleAxisModel.type = 'singleAxis';\n  SingleAxisModel.layoutMode = 'box';\n  SingleAxisModel.defaultOption = {\n    left: '5%',\n    top: '5%',\n    right: '5%',\n    bottom: '5%',\n    type: 'value',\n    position: 'bottom',\n    orient: 'horizontal',\n    axisLine: {\n      show: true,\n      lineStyle: {\n        width: 1,\n        type: 'solid'\n      }\n    },\n    tooltip: {\n      show: true\n    },\n    axisTick: {\n      show: true,\n      length: 6,\n      lineStyle: {\n        width: 1\n      }\n    },\n    axisLabel: {\n      show: true,\n      interval: 'auto'\n    },\n    splitLine: {\n      show: true,\n      lineStyle: {\n        type: 'dashed',\n        opacity: 0.2\n      }\n    }\n  };\n  return SingleAxisModel;\n}(ComponentModel);\n\nmixin(SingleAxisModel, AxisModelCommonMixin.prototype);\nexport default SingleAxisModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis';\n\nvar SingleAxis = function (_super) {\n  __extends(SingleAxis, _super);\n\n  function SingleAxis(dim, scale, coordExtent, axisType, position) {\n    var _this = _super.call(this, dim, scale, coordExtent) || this;\n\n    _this.type = axisType || 'value';\n    _this.position = position || 'bottom';\n    return _this;\n  }\n\n  SingleAxis.prototype.isHorizontal = function () {\n    var position = this.position;\n    return position === 'top' || position === 'bottom';\n  };\n\n  SingleAxis.prototype.pointToData = function (point, clamp) {\n    return this.coordinateSystem.pointToData(point)[0];\n  };\n\n  return SingleAxis;\n}(Axis);\n\nexport default SingleAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SingleAxis from './SingleAxis';\nimport * as axisHelper from '../axisHelper';\nimport { getLayoutRect } from '../../util/layout';\nimport { each } from 'zrender/lib/core/util';\n\nvar Single = function () {\n  function Single(axisModel, ecModel, api) {\n    this.type = 'single';\n    this.dimension = 'single';\n    this.dimensions = ['single'];\n    this.axisPointerEnabled = true;\n    this.model = axisModel;\n\n    this._init(axisModel, ecModel, api);\n  }\n\n  Single.prototype._init = function (axisModel, ecModel, api) {\n    var dim = this.dimension;\n    var axis = new SingleAxis(dim, axisHelper.createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisModel.get('position'));\n    var isCategory = axis.type === 'category';\n    axis.onBand = isCategory && axisModel.get('boundaryGap');\n    axis.inverse = axisModel.get('inverse');\n    axis.orient = axisModel.get('orient');\n    axisModel.axis = axis;\n    axis.model = axisModel;\n    axis.coordinateSystem = this;\n    this._axis = axis;\n  };\n\n  Single.prototype.update = function (ecModel, api) {\n    ecModel.eachSeries(function (seriesModel) {\n      if (seriesModel.coordinateSystem === this) {\n        var data_1 = seriesModel.getData();\n        each(data_1.mapDimensionsAll(this.dimension), function (dim) {\n          this._axis.scale.unionExtentFromData(data_1, dim);\n        }, this);\n        axisHelper.niceScaleExtent(this._axis.scale, this._axis.model);\n      }\n    }, this);\n  };\n\n  Single.prototype.resize = function (axisModel, api) {\n    this._rect = getLayoutRect({\n      left: axisModel.get('left'),\n      top: axisModel.get('top'),\n      right: axisModel.get('right'),\n      bottom: axisModel.get('bottom'),\n      width: axisModel.get('width'),\n      height: axisModel.get('height')\n    }, {\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n\n    this._adjustAxis();\n  };\n\n  Single.prototype.getRect = function () {\n    return this._rect;\n  };\n\n  Single.prototype._adjustAxis = function () {\n    var rect = this._rect;\n    var axis = this._axis;\n    var isHorizontal = axis.isHorizontal();\n    var extent = isHorizontal ? [0, rect.width] : [0, rect.height];\n    var idx = axis.reverse ? 1 : 0;\n    axis.setExtent(extent[idx], extent[1 - idx]);\n\n    this._updateAxisTransform(axis, isHorizontal ? rect.x : rect.y);\n  };\n\n  Single.prototype._updateAxisTransform = function (axis, coordBase) {\n    var axisExtent = axis.getExtent();\n    var extentSum = axisExtent[0] + axisExtent[1];\n    var isHorizontal = axis.isHorizontal();\n    axis.toGlobalCoord = isHorizontal ? function (coord) {\n      return coord + coordBase;\n    } : function (coord) {\n      return extentSum - coord + coordBase;\n    };\n    axis.toLocalCoord = isHorizontal ? function (coord) {\n      return coord - coordBase;\n    } : function (coord) {\n      return extentSum - coord + coordBase;\n    };\n  };\n\n  Single.prototype.getAxis = function () {\n    return this._axis;\n  };\n\n  Single.prototype.getBaseAxis = function () {\n    return this._axis;\n  };\n\n  Single.prototype.getAxes = function () {\n    return [this._axis];\n  };\n\n  Single.prototype.getTooltipAxes = function () {\n    return {\n      baseAxes: [this.getAxis()],\n      otherAxes: []\n    };\n  };\n\n  Single.prototype.containPoint = function (point) {\n    var rect = this.getRect();\n    var axis = this.getAxis();\n    var orient = axis.orient;\n\n    if (orient === 'horizontal') {\n      return axis.contain(axis.toLocalCoord(point[0])) && point[1] >= rect.y && point[1] <= rect.y + rect.height;\n    } else {\n      return axis.contain(axis.toLocalCoord(point[1])) && point[0] >= rect.y && point[0] <= rect.y + rect.height;\n    }\n  };\n\n  Single.prototype.pointToData = function (point) {\n    var axis = this.getAxis();\n    return [axis.coordToData(axis.toLocalCoord(point[axis.orient === 'horizontal' ? 0 : 1]))];\n  };\n\n  Single.prototype.dataToPoint = function (val) {\n    var axis = this.getAxis();\n    var rect = this.getRect();\n    var pt = [];\n    var idx = axis.orient === 'horizontal' ? 0 : 1;\n\n    if (val instanceof Array) {\n      val = val[0];\n    }\n\n    pt[idx] = axis.toGlobalCoord(axis.dataToCoord(+val));\n    pt[1 - idx] = idx === 0 ? rect.y + rect.height / 2 : rect.x + rect.width / 2;\n    return pt;\n  };\n\n  Single.prototype.convertToPixel = function (ecModel, finder, value) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? this.dataToPoint(value) : null;\n  };\n\n  Single.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? this.pointToData(pixel) : null;\n  };\n\n  return Single;\n}();\n\nfunction getCoordSys(finder) {\n  var seriesModel = finder.seriesModel;\n  var singleModel = finder.singleAxisModel;\n  return singleModel && singleModel.coordinateSystem || seriesModel && seriesModel.coordinateSystem;\n}\n\nexport default Single;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Single from './Single';\nimport { SINGLE_REFERRING } from '../../util/model';\n\nfunction create(ecModel, api) {\n  var singles = [];\n  ecModel.eachComponent('singleAxis', function (axisModel, idx) {\n    var single = new Single(axisModel, ecModel, api);\n    single.name = 'single_' + idx;\n    single.resize(axisModel, api);\n    axisModel.coordinateSystem = single;\n    singles.push(single);\n  });\n  ecModel.eachSeries(function (seriesModel) {\n    if (seriesModel.get('coordinateSystem') === 'singleAxis') {\n      var singleAxisModel = seriesModel.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\n      seriesModel.coordinateSystem = singleAxisModel && singleAxisModel.coordinateSystem;\n    }\n  });\n  return singles;\n}\n\nvar singleCreator = {\n  create: create,\n  dimensions: Single.prototype.dimensions\n};\nexport default singleCreator;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BaseAxisPointer from './BaseAxisPointer';\nimport * as viewHelper from './viewHelper';\nimport * as singleAxisHelper from '../../coord/single/singleAxisHelper';\nvar XY = ['x', 'y'];\nvar WH = ['width', 'height'];\n\nvar SingleAxisPointer = function (_super) {\n  __extends(SingleAxisPointer, _super);\n\n  function SingleAxisPointer() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  SingleAxisPointer.prototype.makeElOption = function (elOption, value, axisModel, axisPointerModel, api) {\n    var axis = axisModel.axis;\n    var coordSys = axis.coordinateSystem;\n    var otherExtent = getGlobalExtent(coordSys, 1 - getPointDimIndex(axis));\n    var pixelValue = coordSys.dataToPoint(value)[0];\n    var axisPointerType = axisPointerModel.get('type');\n\n    if (axisPointerType && axisPointerType !== 'none') {\n      var elStyle = viewHelper.buildElStyle(axisPointerModel);\n      var pointerOption = pointerShapeBuilder[axisPointerType](axis, pixelValue, otherExtent);\n      pointerOption.style = elStyle;\n      elOption.graphicKey = pointerOption.type;\n      elOption.pointer = pointerOption;\n    }\n\n    var layoutInfo = singleAxisHelper.layout(axisModel);\n    viewHelper.buildCartesianSingleLabelElOption(value, elOption, layoutInfo, axisModel, axisPointerModel, api);\n  };\n\n  SingleAxisPointer.prototype.getHandleTransform = function (value, axisModel, axisPointerModel) {\n    var layoutInfo = singleAxisHelper.layout(axisModel, {\n      labelInside: false\n    });\n    layoutInfo.labelMargin = axisPointerModel.get(['handle', 'margin']);\n    var position = viewHelper.getTransformedPosition(axisModel.axis, value, layoutInfo);\n    return {\n      x: position[0],\n      y: position[1],\n      rotation: layoutInfo.rotation + (layoutInfo.labelDirection < 0 ? Math.PI : 0)\n    };\n  };\n\n  SingleAxisPointer.prototype.updateHandleTransform = function (transform, delta, axisModel, axisPointerModel) {\n    var axis = axisModel.axis;\n    var coordSys = axis.coordinateSystem;\n    var dimIndex = getPointDimIndex(axis);\n    var axisExtent = getGlobalExtent(coordSys, dimIndex);\n    var currPosition = [transform.x, transform.y];\n    currPosition[dimIndex] += delta[dimIndex];\n    currPosition[dimIndex] = Math.min(axisExtent[1], currPosition[dimIndex]);\n    currPosition[dimIndex] = Math.max(axisExtent[0], currPosition[dimIndex]);\n    var otherExtent = getGlobalExtent(coordSys, 1 - dimIndex);\n    var cursorOtherValue = (otherExtent[1] + otherExtent[0]) / 2;\n    var cursorPoint = [cursorOtherValue, cursorOtherValue];\n    cursorPoint[dimIndex] = currPosition[dimIndex];\n    return {\n      x: currPosition[0],\n      y: currPosition[1],\n      rotation: transform.rotation,\n      cursorPoint: cursorPoint,\n      tooltipOption: {\n        verticalAlign: 'middle'\n      }\n    };\n  };\n\n  return SingleAxisPointer;\n}(BaseAxisPointer);\n\nvar pointerShapeBuilder = {\n  line: function (axis, pixelValue, otherExtent) {\n    var targetShape = viewHelper.makeLineShape([pixelValue, otherExtent[0]], [pixelValue, otherExtent[1]], getPointDimIndex(axis));\n    return {\n      type: 'Line',\n      subPixelOptimize: true,\n      shape: targetShape\n    };\n  },\n  shadow: function (axis, pixelValue, otherExtent) {\n    var bandWidth = axis.getBandWidth();\n    var span = otherExtent[1] - otherExtent[0];\n    return {\n      type: 'Rect',\n      shape: viewHelper.makeRectShape([pixelValue - bandWidth / 2, otherExtent[0]], [bandWidth, span], getPointDimIndex(axis))\n    };\n  }\n};\n\nfunction getPointDimIndex(axis) {\n  return axis.isHorizontal() ? 0 : 1;\n}\n\nfunction getGlobalExtent(coordSys, dimIndex) {\n  var rect = coordSys.getRect();\n  return [rect[XY[dimIndex]], rect[XY[dimIndex]] + rect[WH[dimIndex]]];\n}\n\nexport default SingleAxisPointer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { use } from '../../extension';\nimport ComponentView from '../../view/Component';\nimport SingleAxisView from '../axis/SingleAxisView';\nimport axisModelCreator from '../../coord/axisModelCreator';\nimport SingleAxisModel from '../../coord/single/AxisModel';\nimport singleCreator from '../../coord/single/singleCreator';\nimport { install as installAxisPointer } from '../axisPointer/install';\nimport AxisView from '../axis/AxisView';\nimport SingleAxisPointer from '../axisPointer/SingleAxisPointer';\n\nvar SingleView = function (_super) {\n  __extends(SingleView, _super);\n\n  function SingleView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SingleView.type;\n    return _this;\n  }\n\n  SingleView.type = 'single';\n  return SingleView;\n}(ComponentView);\n\nexport function install(registers) {\n  use(installAxisPointer);\n  AxisView.registerAxisPointerClass('SingleAxisPointer', SingleAxisPointer);\n  registers.registerComponentView(SingleView);\n  registers.registerComponentView(SingleAxisView);\n  registers.registerComponentModel(SingleAxisModel);\n  axisModelCreator(registers, 'single', SingleAxisModel, SingleAxisModel.defaultOption);\n  registers.registerCoordinateSystem('single', singleCreator);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\nimport { getLayoutParams, sizeCalculable, mergeLayoutParam } from '../../util/layout';\n\nvar CalendarModel = function (_super) {\n  __extends(CalendarModel, _super);\n\n  function CalendarModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CalendarModel.type;\n    return _this;\n  }\n\n  CalendarModel.prototype.init = function (option, parentModel, ecModel) {\n    var inputPositionParams = getLayoutParams(option);\n\n    _super.prototype.init.apply(this, arguments);\n\n    mergeAndNormalizeLayoutParams(option, inputPositionParams);\n  };\n\n  CalendarModel.prototype.mergeOption = function (option) {\n    _super.prototype.mergeOption.apply(this, arguments);\n\n    mergeAndNormalizeLayoutParams(this.option, option);\n  };\n\n  CalendarModel.prototype.getCellSize = function () {\n    return this.option.cellSize;\n  };\n\n  CalendarModel.type = 'calendar';\n  CalendarModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    left: 80,\n    top: 60,\n    cellSize: 20,\n    orient: 'horizontal',\n    splitLine: {\n      show: true,\n      lineStyle: {\n        color: '#000',\n        width: 1,\n        type: 'solid'\n      }\n    },\n    itemStyle: {\n      color: '#fff',\n      borderWidth: 1,\n      borderColor: '#ccc'\n    },\n    dayLabel: {\n      show: true,\n      firstDay: 0,\n      position: 'start',\n      margin: '50%',\n      nameMap: 'en',\n      color: '#000'\n    },\n    monthLabel: {\n      show: true,\n      position: 'start',\n      margin: 5,\n      align: 'center',\n      nameMap: 'en',\n      formatter: null,\n      color: '#000'\n    },\n    yearLabel: {\n      show: true,\n      position: null,\n      margin: 30,\n      formatter: null,\n      color: '#ccc',\n      fontFamily: 'sans-serif',\n      fontWeight: 'bolder',\n      fontSize: 20\n    }\n  };\n  return CalendarModel;\n}(ComponentModel);\n\nfunction mergeAndNormalizeLayoutParams(target, raw) {\n  var cellSize = target.cellSize;\n  var cellSizeArr;\n\n  if (!zrUtil.isArray(cellSize)) {\n    cellSizeArr = target.cellSize = [cellSize, cellSize];\n  } else {\n    cellSizeArr = cellSize;\n  }\n\n  if (cellSizeArr.length === 1) {\n    cellSizeArr[1] = cellSizeArr[0];\n  }\n\n  var ignoreSize = zrUtil.map([0, 1], function (hvIdx) {\n    if (sizeCalculable(raw, hvIdx)) {\n      cellSizeArr[hvIdx] = 'auto';\n    }\n\n    return cellSizeArr[hvIdx] != null && cellSizeArr[hvIdx] !== 'auto';\n  });\n  mergeLayoutParam(target, raw, {\n    type: 'box',\n    ignoreSize: ignoreSize\n  });\n}\n\nexport default CalendarModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { createTextStyle } from '../../label/labelStyle';\nimport * as formatUtil from '../../util/format';\nimport * as numberUtil from '../../util/number';\nimport ComponentView from '../../view/Component';\nvar MONTH_TEXT = {\n  EN: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n  CN: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月']\n};\nvar WEEK_TEXT = {\n  EN: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n  CN: ['日', '一', '二', '三', '四', '五', '六']\n};\n\nvar CalendarView = function (_super) {\n  __extends(CalendarView, _super);\n\n  function CalendarView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CalendarView.type;\n    return _this;\n  }\n\n  CalendarView.prototype.render = function (calendarModel, ecModel, api) {\n    var group = this.group;\n    group.removeAll();\n    var coordSys = calendarModel.coordinateSystem;\n    var rangeData = coordSys.getRangeInfo();\n    var orient = coordSys.getOrient();\n\n    this._renderDayRect(calendarModel, rangeData, group);\n\n    this._renderLines(calendarModel, rangeData, orient, group);\n\n    this._renderYearText(calendarModel, rangeData, orient, group);\n\n    this._renderMonthText(calendarModel, orient, group);\n\n    this._renderWeekText(calendarModel, rangeData, orient, group);\n  };\n\n  CalendarView.prototype._renderDayRect = function (calendarModel, rangeData, group) {\n    var coordSys = calendarModel.coordinateSystem;\n    var itemRectStyleModel = calendarModel.getModel('itemStyle').getItemStyle();\n    var sw = coordSys.getCellWidth();\n    var sh = coordSys.getCellHeight();\n\n    for (var i = rangeData.start.time; i <= rangeData.end.time; i = coordSys.getNextNDay(i, 1).time) {\n      var point = coordSys.dataToRect([i], false).tl;\n      var rect = new graphic.Rect({\n        shape: {\n          x: point[0],\n          y: point[1],\n          width: sw,\n          height: sh\n        },\n        cursor: 'default',\n        style: itemRectStyleModel\n      });\n      group.add(rect);\n    }\n  };\n\n  CalendarView.prototype._renderLines = function (calendarModel, rangeData, orient, group) {\n    var self = this;\n    var coordSys = calendarModel.coordinateSystem;\n    var lineStyleModel = calendarModel.getModel(['splitLine', 'lineStyle']).getLineStyle();\n    var show = calendarModel.get(['splitLine', 'show']);\n    var lineWidth = lineStyleModel.lineWidth;\n    this._tlpoints = [];\n    this._blpoints = [];\n    this._firstDayOfMonth = [];\n    this._firstDayPoints = [];\n    var firstDay = rangeData.start;\n\n    for (var i = 0; firstDay.time <= rangeData.end.time; i++) {\n      addPoints(firstDay.formatedDate);\n\n      if (i === 0) {\n        firstDay = coordSys.getDateInfo(rangeData.start.y + '-' + rangeData.start.m);\n      }\n\n      var date = firstDay.date;\n      date.setMonth(date.getMonth() + 1);\n      firstDay = coordSys.getDateInfo(date);\n    }\n\n    addPoints(coordSys.getNextNDay(rangeData.end.time, 1).formatedDate);\n\n    function addPoints(date) {\n      self._firstDayOfMonth.push(coordSys.getDateInfo(date));\n\n      self._firstDayPoints.push(coordSys.dataToRect([date], false).tl);\n\n      var points = self._getLinePointsOfOneWeek(calendarModel, date, orient);\n\n      self._tlpoints.push(points[0]);\n\n      self._blpoints.push(points[points.length - 1]);\n\n      show && self._drawSplitline(points, lineStyleModel, group);\n    }\n\n    show && this._drawSplitline(self._getEdgesPoints(self._tlpoints, lineWidth, orient), lineStyleModel, group);\n    show && this._drawSplitline(self._getEdgesPoints(self._blpoints, lineWidth, orient), lineStyleModel, group);\n  };\n\n  CalendarView.prototype._getEdgesPoints = function (points, lineWidth, orient) {\n    var rs = [points[0].slice(), points[points.length - 1].slice()];\n    var idx = orient === 'horizontal' ? 0 : 1;\n    rs[0][idx] = rs[0][idx] - lineWidth / 2;\n    rs[1][idx] = rs[1][idx] + lineWidth / 2;\n    return rs;\n  };\n\n  CalendarView.prototype._drawSplitline = function (points, lineStyle, group) {\n    var poyline = new graphic.Polyline({\n      z2: 20,\n      shape: {\n        points: points\n      },\n      style: lineStyle\n    });\n    group.add(poyline);\n  };\n\n  CalendarView.prototype._getLinePointsOfOneWeek = function (calendarModel, date, orient) {\n    var coordSys = calendarModel.coordinateSystem;\n    var parsedDate = coordSys.getDateInfo(date);\n    var points = [];\n\n    for (var i = 0; i < 7; i++) {\n      var tmpD = coordSys.getNextNDay(parsedDate.time, i);\n      var point = coordSys.dataToRect([tmpD.time], false);\n      points[2 * tmpD.day] = point.tl;\n      points[2 * tmpD.day + 1] = point[orient === 'horizontal' ? 'bl' : 'tr'];\n    }\n\n    return points;\n  };\n\n  CalendarView.prototype._formatterLabel = function (formatter, params) {\n    if (typeof formatter === 'string' && formatter) {\n      return formatUtil.formatTplSimple(formatter, params);\n    }\n\n    if (typeof formatter === 'function') {\n      return formatter(params);\n    }\n\n    return params.nameMap;\n  };\n\n  CalendarView.prototype._yearTextPositionControl = function (textEl, point, orient, position, margin) {\n    var x = point[0];\n    var y = point[1];\n    var aligns = ['center', 'bottom'];\n\n    if (position === 'bottom') {\n      y += margin;\n      aligns = ['center', 'top'];\n    } else if (position === 'left') {\n      x -= margin;\n    } else if (position === 'right') {\n      x += margin;\n      aligns = ['center', 'top'];\n    } else {\n      y -= margin;\n    }\n\n    var rotate = 0;\n\n    if (position === 'left' || position === 'right') {\n      rotate = Math.PI / 2;\n    }\n\n    return {\n      rotation: rotate,\n      x: x,\n      y: y,\n      style: {\n        align: aligns[0],\n        verticalAlign: aligns[1]\n      }\n    };\n  };\n\n  CalendarView.prototype._renderYearText = function (calendarModel, rangeData, orient, group) {\n    var yearLabel = calendarModel.getModel('yearLabel');\n\n    if (!yearLabel.get('show')) {\n      return;\n    }\n\n    var margin = yearLabel.get('margin');\n    var pos = yearLabel.get('position');\n\n    if (!pos) {\n      pos = orient !== 'horizontal' ? 'top' : 'left';\n    }\n\n    var points = [this._tlpoints[this._tlpoints.length - 1], this._blpoints[0]];\n    var xc = (points[0][0] + points[1][0]) / 2;\n    var yc = (points[0][1] + points[1][1]) / 2;\n    var idx = orient === 'horizontal' ? 0 : 1;\n    var posPoints = {\n      top: [xc, points[idx][1]],\n      bottom: [xc, points[1 - idx][1]],\n      left: [points[1 - idx][0], yc],\n      right: [points[idx][0], yc]\n    };\n    var name = rangeData.start.y;\n\n    if (+rangeData.end.y > +rangeData.start.y) {\n      name = name + '-' + rangeData.end.y;\n    }\n\n    var formatter = yearLabel.get('formatter');\n    var params = {\n      start: rangeData.start.y,\n      end: rangeData.end.y,\n      nameMap: name\n    };\n\n    var content = this._formatterLabel(formatter, params);\n\n    var yearText = new graphic.Text({\n      z2: 30,\n      style: createTextStyle(yearLabel, {\n        text: content\n      })\n    });\n    yearText.attr(this._yearTextPositionControl(yearText, posPoints[pos], orient, pos, margin));\n    group.add(yearText);\n  };\n\n  CalendarView.prototype._monthTextPositionControl = function (point, isCenter, orient, position, margin) {\n    var align = 'left';\n    var vAlign = 'top';\n    var x = point[0];\n    var y = point[1];\n\n    if (orient === 'horizontal') {\n      y = y + margin;\n\n      if (isCenter) {\n        align = 'center';\n      }\n\n      if (position === 'start') {\n        vAlign = 'bottom';\n      }\n    } else {\n      x = x + margin;\n\n      if (isCenter) {\n        vAlign = 'middle';\n      }\n\n      if (position === 'start') {\n        align = 'right';\n      }\n    }\n\n    return {\n      x: x,\n      y: y,\n      align: align,\n      verticalAlign: vAlign\n    };\n  };\n\n  CalendarView.prototype._renderMonthText = function (calendarModel, orient, group) {\n    var monthLabel = calendarModel.getModel('monthLabel');\n\n    if (!monthLabel.get('show')) {\n      return;\n    }\n\n    var nameMap = monthLabel.get('nameMap');\n    var margin = monthLabel.get('margin');\n    var pos = monthLabel.get('position');\n    var align = monthLabel.get('align');\n    var termPoints = [this._tlpoints, this._blpoints];\n\n    if (zrUtil.isString(nameMap)) {\n      nameMap = MONTH_TEXT[nameMap.toUpperCase()] || [];\n    }\n\n    var idx = pos === 'start' ? 0 : 1;\n    var axis = orient === 'horizontal' ? 0 : 1;\n    margin = pos === 'start' ? -margin : margin;\n    var isCenter = align === 'center';\n\n    for (var i = 0; i < termPoints[idx].length - 1; i++) {\n      var tmp = termPoints[idx][i].slice();\n      var firstDay = this._firstDayOfMonth[i];\n\n      if (isCenter) {\n        var firstDayPoints = this._firstDayPoints[i];\n        tmp[axis] = (firstDayPoints[axis] + termPoints[0][i + 1][axis]) / 2;\n      }\n\n      var formatter = monthLabel.get('formatter');\n      var name_1 = nameMap[+firstDay.m - 1];\n      var params = {\n        yyyy: firstDay.y,\n        yy: (firstDay.y + '').slice(2),\n        MM: firstDay.m,\n        M: +firstDay.m,\n        nameMap: name_1\n      };\n\n      var content = this._formatterLabel(formatter, params);\n\n      var monthText = new graphic.Text({\n        z2: 30,\n        style: zrUtil.extend(createTextStyle(monthLabel, {\n          text: content\n        }), this._monthTextPositionControl(tmp, isCenter, orient, pos, margin))\n      });\n      group.add(monthText);\n    }\n  };\n\n  CalendarView.prototype._weekTextPositionControl = function (point, orient, position, margin, cellSize) {\n    var align = 'center';\n    var vAlign = 'middle';\n    var x = point[0];\n    var y = point[1];\n    var isStart = position === 'start';\n\n    if (orient === 'horizontal') {\n      x = x + margin + (isStart ? 1 : -1) * cellSize[0] / 2;\n      align = isStart ? 'right' : 'left';\n    } else {\n      y = y + margin + (isStart ? 1 : -1) * cellSize[1] / 2;\n      vAlign = isStart ? 'bottom' : 'top';\n    }\n\n    return {\n      x: x,\n      y: y,\n      align: align,\n      verticalAlign: vAlign\n    };\n  };\n\n  CalendarView.prototype._renderWeekText = function (calendarModel, rangeData, orient, group) {\n    var dayLabel = calendarModel.getModel('dayLabel');\n\n    if (!dayLabel.get('show')) {\n      return;\n    }\n\n    var coordSys = calendarModel.coordinateSystem;\n    var pos = dayLabel.get('position');\n    var nameMap = dayLabel.get('nameMap');\n    var margin = dayLabel.get('margin');\n    var firstDayOfWeek = coordSys.getFirstDayOfWeek();\n\n    if (zrUtil.isString(nameMap)) {\n      nameMap = WEEK_TEXT[nameMap.toUpperCase()] || [];\n    }\n\n    var start = coordSys.getNextNDay(rangeData.end.time, 7 - rangeData.lweek).time;\n    var cellSize = [coordSys.getCellWidth(), coordSys.getCellHeight()];\n    margin = numberUtil.parsePercent(margin, cellSize[orient === 'horizontal' ? 0 : 1]);\n\n    if (pos === 'start') {\n      start = coordSys.getNextNDay(rangeData.start.time, -(7 + rangeData.fweek)).time;\n      margin = -margin;\n    }\n\n    for (var i = 0; i < 7; i++) {\n      var tmpD = coordSys.getNextNDay(start, i);\n      var point = coordSys.dataToRect([tmpD.time], false).center;\n      var day = i;\n      day = Math.abs((i + firstDayOfWeek) % 7);\n      var weekText = new graphic.Text({\n        z2: 30,\n        style: zrUtil.extend(createTextStyle(dayLabel, {\n          text: nameMap[day]\n        }), this._weekTextPositionControl(point, orient, pos, margin, cellSize))\n      });\n      group.add(weekText);\n    }\n  };\n\n  CalendarView.type = 'calendar';\n  return CalendarView;\n}(ComponentView);\n\nexport default CalendarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as layout from '../../util/layout';\nimport * as numberUtil from '../../util/number';\nvar PROXIMATE_ONE_DAY = 86400000;\n\nvar Calendar = function () {\n  function Calendar(calendarModel, ecModel, api) {\n    this.type = 'calendar';\n    this.dimensions = Calendar.dimensions;\n    this.getDimensionsInfo = Calendar.getDimensionsInfo;\n    this._model = calendarModel;\n  }\n\n  Calendar.getDimensionsInfo = function () {\n    return [{\n      name: 'time',\n      type: 'time'\n    }, 'value'];\n  };\n\n  Calendar.prototype.getRangeInfo = function () {\n    return this._rangeInfo;\n  };\n\n  Calendar.prototype.getModel = function () {\n    return this._model;\n  };\n\n  Calendar.prototype.getRect = function () {\n    return this._rect;\n  };\n\n  Calendar.prototype.getCellWidth = function () {\n    return this._sw;\n  };\n\n  Calendar.prototype.getCellHeight = function () {\n    return this._sh;\n  };\n\n  Calendar.prototype.getOrient = function () {\n    return this._orient;\n  };\n\n  Calendar.prototype.getFirstDayOfWeek = function () {\n    return this._firstDayOfWeek;\n  };\n\n  Calendar.prototype.getDateInfo = function (date) {\n    date = numberUtil.parseDate(date);\n    var y = date.getFullYear();\n    var m = date.getMonth() + 1;\n    var mStr = m < 10 ? '0' + m : '' + m;\n    var d = date.getDate();\n    var dStr = d < 10 ? '0' + d : '' + d;\n    var day = date.getDay();\n    day = Math.abs((day + 7 - this.getFirstDayOfWeek()) % 7);\n    return {\n      y: y + '',\n      m: mStr,\n      d: dStr,\n      day: day,\n      time: date.getTime(),\n      formatedDate: y + '-' + mStr + '-' + dStr,\n      date: date\n    };\n  };\n\n  Calendar.prototype.getNextNDay = function (date, n) {\n    n = n || 0;\n\n    if (n === 0) {\n      return this.getDateInfo(date);\n    }\n\n    date = new Date(this.getDateInfo(date).time);\n    date.setDate(date.getDate() + n);\n    return this.getDateInfo(date);\n  };\n\n  Calendar.prototype.update = function (ecModel, api) {\n    this._firstDayOfWeek = +this._model.getModel('dayLabel').get('firstDay');\n    this._orient = this._model.get('orient');\n    this._lineWidth = this._model.getModel('itemStyle').getItemStyle().lineWidth || 0;\n    this._rangeInfo = this._getRangeInfo(this._initRangeOption());\n    var weeks = this._rangeInfo.weeks || 1;\n    var whNames = ['width', 'height'];\n\n    var cellSize = this._model.getCellSize().slice();\n\n    var layoutParams = this._model.getBoxLayoutParams();\n\n    var cellNumbers = this._orient === 'horizontal' ? [weeks, 7] : [7, weeks];\n    zrUtil.each([0, 1], function (idx) {\n      if (cellSizeSpecified(cellSize, idx)) {\n        layoutParams[whNames[idx]] = cellSize[idx] * cellNumbers[idx];\n      }\n    });\n    var whGlobal = {\n      width: api.getWidth(),\n      height: api.getHeight()\n    };\n    var calendarRect = this._rect = layout.getLayoutRect(layoutParams, whGlobal);\n    zrUtil.each([0, 1], function (idx) {\n      if (!cellSizeSpecified(cellSize, idx)) {\n        cellSize[idx] = calendarRect[whNames[idx]] / cellNumbers[idx];\n      }\n    });\n\n    function cellSizeSpecified(cellSize, idx) {\n      return cellSize[idx] != null && cellSize[idx] !== 'auto';\n    }\n\n    this._sw = cellSize[0];\n    this._sh = cellSize[1];\n  };\n\n  Calendar.prototype.dataToPoint = function (data, clamp) {\n    zrUtil.isArray(data) && (data = data[0]);\n    clamp == null && (clamp = true);\n    var dayInfo = this.getDateInfo(data);\n    var range = this._rangeInfo;\n    var date = dayInfo.formatedDate;\n\n    if (clamp && !(dayInfo.time >= range.start.time && dayInfo.time < range.end.time + PROXIMATE_ONE_DAY)) {\n      return [NaN, NaN];\n    }\n\n    var week = dayInfo.day;\n\n    var nthWeek = this._getRangeInfo([range.start.time, date]).nthWeek;\n\n    if (this._orient === 'vertical') {\n      return [this._rect.x + week * this._sw + this._sw / 2, this._rect.y + nthWeek * this._sh + this._sh / 2];\n    }\n\n    return [this._rect.x + nthWeek * this._sw + this._sw / 2, this._rect.y + week * this._sh + this._sh / 2];\n  };\n\n  Calendar.prototype.pointToData = function (point) {\n    var date = this.pointToDate(point);\n    return date && date.time;\n  };\n\n  Calendar.prototype.dataToRect = function (data, clamp) {\n    var point = this.dataToPoint(data, clamp);\n    return {\n      contentShape: {\n        x: point[0] - (this._sw - this._lineWidth) / 2,\n        y: point[1] - (this._sh - this._lineWidth) / 2,\n        width: this._sw - this._lineWidth,\n        height: this._sh - this._lineWidth\n      },\n      center: point,\n      tl: [point[0] - this._sw / 2, point[1] - this._sh / 2],\n      tr: [point[0] + this._sw / 2, point[1] - this._sh / 2],\n      br: [point[0] + this._sw / 2, point[1] + this._sh / 2],\n      bl: [point[0] - this._sw / 2, point[1] + this._sh / 2]\n    };\n  };\n\n  Calendar.prototype.pointToDate = function (point) {\n    var nthX = Math.floor((point[0] - this._rect.x) / this._sw) + 1;\n    var nthY = Math.floor((point[1] - this._rect.y) / this._sh) + 1;\n    var range = this._rangeInfo.range;\n\n    if (this._orient === 'vertical') {\n      return this._getDateByWeeksAndDay(nthY, nthX - 1, range);\n    }\n\n    return this._getDateByWeeksAndDay(nthX, nthY - 1, range);\n  };\n\n  Calendar.prototype.convertToPixel = function (ecModel, finder, value) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? coordSys.dataToPoint(value) : null;\n  };\n\n  Calendar.prototype.convertFromPixel = function (ecModel, finder, pixel) {\n    var coordSys = getCoordSys(finder);\n    return coordSys === this ? coordSys.pointToData(pixel) : null;\n  };\n\n  Calendar.prototype.containPoint = function (point) {\n    console.warn('Not implemented.');\n    return false;\n  };\n\n  Calendar.prototype._initRangeOption = function () {\n    var range = this._model.get('range');\n\n    var normalizedRange;\n\n    if (zrUtil.isArray(range) && range.length === 1) {\n      range = range[0];\n    }\n\n    if (!zrUtil.isArray(range)) {\n      var rangeStr = range.toString();\n\n      if (/^\\d{4}$/.test(rangeStr)) {\n        normalizedRange = [rangeStr + '-01-01', rangeStr + '-12-31'];\n      }\n\n      if (/^\\d{4}[\\/|-]\\d{1,2}$/.test(rangeStr)) {\n        var start = this.getDateInfo(rangeStr);\n        var firstDay = start.date;\n        firstDay.setMonth(firstDay.getMonth() + 1);\n        var end = this.getNextNDay(firstDay, -1);\n        normalizedRange = [start.formatedDate, end.formatedDate];\n      }\n\n      if (/^\\d{4}[\\/|-]\\d{1,2}[\\/|-]\\d{1,2}$/.test(rangeStr)) {\n        normalizedRange = [rangeStr, rangeStr];\n      }\n    } else {\n      normalizedRange = range;\n    }\n\n    if (!normalizedRange) {\n      if (process.env.NODE_ENV !== 'production') {\n        zrUtil.logError('Invalid date range.');\n      }\n\n      return range;\n    }\n\n    var tmp = this._getRangeInfo(normalizedRange);\n\n    if (tmp.start.time > tmp.end.time) {\n      normalizedRange.reverse();\n    }\n\n    return normalizedRange;\n  };\n\n  Calendar.prototype._getRangeInfo = function (range) {\n    var parsedRange = [this.getDateInfo(range[0]), this.getDateInfo(range[1])];\n    var reversed;\n\n    if (parsedRange[0].time > parsedRange[1].time) {\n      reversed = true;\n      parsedRange.reverse();\n    }\n\n    var allDay = Math.floor(parsedRange[1].time / PROXIMATE_ONE_DAY) - Math.floor(parsedRange[0].time / PROXIMATE_ONE_DAY) + 1;\n    var date = new Date(parsedRange[0].time);\n    var startDateNum = date.getDate();\n    var endDateNum = parsedRange[1].date.getDate();\n    date.setDate(startDateNum + allDay - 1);\n    var dateNum = date.getDate();\n\n    if (dateNum !== endDateNum) {\n      var sign = date.getTime() - parsedRange[1].time > 0 ? 1 : -1;\n\n      while ((dateNum = date.getDate()) !== endDateNum && (date.getTime() - parsedRange[1].time) * sign > 0) {\n        allDay -= sign;\n        date.setDate(dateNum - sign);\n      }\n    }\n\n    var weeks = Math.floor((allDay + parsedRange[0].day + 6) / 7);\n    var nthWeek = reversed ? -weeks + 1 : weeks - 1;\n    reversed && parsedRange.reverse();\n    return {\n      range: [parsedRange[0].formatedDate, parsedRange[1].formatedDate],\n      start: parsedRange[0],\n      end: parsedRange[1],\n      allDay: allDay,\n      weeks: weeks,\n      nthWeek: nthWeek,\n      fweek: parsedRange[0].day,\n      lweek: parsedRange[1].day\n    };\n  };\n\n  Calendar.prototype._getDateByWeeksAndDay = function (nthWeek, day, range) {\n    var rangeInfo = this._getRangeInfo(range);\n\n    if (nthWeek > rangeInfo.weeks || nthWeek === 0 && day < rangeInfo.fweek || nthWeek === rangeInfo.weeks && day > rangeInfo.lweek) {\n      return null;\n    }\n\n    var nthDay = (nthWeek - 1) * 7 - rangeInfo.fweek + day;\n    var date = new Date(rangeInfo.start.time);\n    date.setDate(+rangeInfo.start.d + nthDay);\n    return this.getDateInfo(date);\n  };\n\n  Calendar.create = function (ecModel, api) {\n    var calendarList = [];\n    ecModel.eachComponent('calendar', function (calendarModel) {\n      var calendar = new Calendar(calendarModel, ecModel, api);\n      calendarList.push(calendar);\n      calendarModel.coordinateSystem = calendar;\n    });\n    ecModel.eachSeries(function (calendarSeries) {\n      if (calendarSeries.get('coordinateSystem') === 'calendar') {\n        calendarSeries.coordinateSystem = calendarList[calendarSeries.get('calendarIndex') || 0];\n      }\n    });\n    return calendarList;\n  };\n\n  Calendar.dimensions = ['time', 'value'];\n  return Calendar;\n}();\n\nfunction getCoordSys(finder) {\n  var calendarModel = finder.calendarModel;\n  var seriesModel = finder.seriesModel;\n  var coordSys = calendarModel ? calendarModel.coordinateSystem : seriesModel ? seriesModel.coordinateSystem : null;\n  return coordSys;\n}\n\nexport default Calendar;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport CalendarModel from '../../coord/calendar/CalendarModel';\nimport CalendarView from './CalendarView';\nimport Calendar from '../../coord/calendar/Calendar';\nexport function install(registers) {\n  registers.registerComponentModel(CalendarModel);\n  registers.registerComponentView(CalendarView);\n  registers.registerCoordinateSystem('calendar', Calendar);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nimport * as graphicUtil from '../../util/graphic';\nimport * as layoutUtil from '../../util/layout';\nimport { parsePercent } from '../../util/number';\nimport ComponentModel from '../../model/Component';\nimport ComponentView from '../../view/Component';\nimport { getECData } from '../../util/innerStore';\nimport { isEC4CompatibleStyle, convertFromEC4CompatibleStyle } from '../../util/styleCompat';\nvar TRANSFORM_PROPS = {\n  x: 1,\n  y: 1,\n  scaleX: 1,\n  scaleY: 1,\n  originX: 1,\n  originY: 1,\n  rotation: 1\n};\n;\nvar inner = modelUtil.makeInner();\nvar _nonShapeGraphicElements = {\n  path: null,\n  compoundPath: null,\n  group: graphicUtil.Group,\n  image: graphicUtil.Image,\n  text: graphicUtil.Text\n};\n\nvar preprocessor = function (option) {\n  var graphicOption = option.graphic;\n\n  if (zrUtil.isArray(graphicOption)) {\n    if (!graphicOption[0] || !graphicOption[0].elements) {\n      option.graphic = [{\n        elements: graphicOption\n      }];\n    } else {\n      option.graphic = [option.graphic[0]];\n    }\n  } else if (graphicOption && !graphicOption.elements) {\n    option.graphic = [{\n      elements: [graphicOption]\n    }];\n  }\n};\n\n;\n\nvar GraphicComponentModel = function (_super) {\n  __extends(GraphicComponentModel, _super);\n\n  function GraphicComponentModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GraphicComponentModel.type;\n    return _this;\n  }\n\n  GraphicComponentModel.prototype.mergeOption = function (option, ecModel) {\n    var elements = this.option.elements;\n    this.option.elements = null;\n\n    _super.prototype.mergeOption.call(this, option, ecModel);\n\n    this.option.elements = elements;\n  };\n\n  GraphicComponentModel.prototype.optionUpdated = function (newOption, isInit) {\n    var thisOption = this.option;\n    var newList = (isInit ? thisOption : newOption).elements;\n    var existList = thisOption.elements = isInit ? [] : thisOption.elements;\n    var flattenedList = [];\n\n    this._flatten(newList, flattenedList, null);\n\n    var mappingResult = modelUtil.mappingToExists(existList, flattenedList, 'normalMerge');\n    var elOptionsToUpdate = this._elOptionsToUpdate = [];\n    zrUtil.each(mappingResult, function (resultItem, index) {\n      var newElOption = resultItem.newOption;\n\n      if (process.env.NODE_ENV !== 'production') {\n        zrUtil.assert(zrUtil.isObject(newElOption) || resultItem.existing, 'Empty graphic option definition');\n      }\n\n      if (!newElOption) {\n        return;\n      }\n\n      elOptionsToUpdate.push(newElOption);\n      setKeyInfoToNewElOption(resultItem, newElOption);\n      mergeNewElOptionToExist(existList, index, newElOption);\n      setLayoutInfoToExist(existList[index], newElOption);\n    }, this);\n\n    for (var i = existList.length - 1; i >= 0; i--) {\n      if (existList[i] == null) {\n        existList.splice(i, 1);\n      } else {\n        delete existList[i].$action;\n      }\n    }\n  };\n\n  GraphicComponentModel.prototype._flatten = function (optionList, result, parentOption) {\n    zrUtil.each(optionList, function (option) {\n      if (!option) {\n        return;\n      }\n\n      if (parentOption) {\n        option.parentOption = parentOption;\n      }\n\n      result.push(option);\n      var children = option.children;\n\n      if (option.type === 'group' && children) {\n        this._flatten(children, result, option);\n      }\n\n      delete option.children;\n    }, this);\n  };\n\n  GraphicComponentModel.prototype.useElOptionsToUpdate = function () {\n    var els = this._elOptionsToUpdate;\n    this._elOptionsToUpdate = null;\n    return els;\n  };\n\n  GraphicComponentModel.type = 'graphic';\n  GraphicComponentModel.defaultOption = {\n    elements: []\n  };\n  return GraphicComponentModel;\n}(ComponentModel);\n\nvar GraphicComponentView = function (_super) {\n  __extends(GraphicComponentView, _super);\n\n  function GraphicComponentView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = GraphicComponentView.type;\n    return _this;\n  }\n\n  GraphicComponentView.prototype.init = function () {\n    this._elMap = zrUtil.createHashMap();\n  };\n\n  GraphicComponentView.prototype.render = function (graphicModel, ecModel, api) {\n    if (graphicModel !== this._lastGraphicModel) {\n      this._clear();\n    }\n\n    this._lastGraphicModel = graphicModel;\n\n    this._updateElements(graphicModel);\n\n    this._relocate(graphicModel, api);\n  };\n\n  GraphicComponentView.prototype._updateElements = function (graphicModel) {\n    var elOptionsToUpdate = graphicModel.useElOptionsToUpdate();\n\n    if (!elOptionsToUpdate) {\n      return;\n    }\n\n    var elMap = this._elMap;\n    var rootGroup = this.group;\n    zrUtil.each(elOptionsToUpdate, function (elOption) {\n      var id = modelUtil.convertOptionIdName(elOption.id, null);\n      var elExisting = id != null ? elMap.get(id) : null;\n      var parentId = modelUtil.convertOptionIdName(elOption.parentId, null);\n      var targetElParent = parentId != null ? elMap.get(parentId) : rootGroup;\n      var elType = elOption.type;\n      var elOptionStyle = elOption.style;\n\n      if (elType === 'text' && elOptionStyle) {\n        if (elOption.hv && elOption.hv[1]) {\n          elOptionStyle.textVerticalAlign = elOptionStyle.textBaseline = elOptionStyle.verticalAlign = elOptionStyle.align = null;\n        }\n      }\n\n      var textContentOption = elOption.textContent;\n      var textConfig = elOption.textConfig;\n\n      if (elOptionStyle && isEC4CompatibleStyle(elOptionStyle, elType, !!textConfig, !!textContentOption)) {\n        var convertResult = convertFromEC4CompatibleStyle(elOptionStyle, elType, true);\n\n        if (!textConfig && convertResult.textConfig) {\n          textConfig = elOption.textConfig = convertResult.textConfig;\n        }\n\n        if (!textContentOption && convertResult.textContent) {\n          textContentOption = convertResult.textContent;\n        }\n      }\n\n      var elOptionCleaned = getCleanedElOption(elOption);\n\n      if (process.env.NODE_ENV !== 'production') {\n        elExisting && zrUtil.assert(targetElParent === elExisting.parent, 'Changing parent is not supported.');\n      }\n\n      var $action = elOption.$action || 'merge';\n\n      if ($action === 'merge') {\n        elExisting ? elExisting.attr(elOptionCleaned) : createEl(id, targetElParent, elOptionCleaned, elMap);\n      } else if ($action === 'replace') {\n        removeEl(elExisting, elMap);\n        createEl(id, targetElParent, elOptionCleaned, elMap);\n      } else if ($action === 'remove') {\n        removeEl(elExisting, elMap);\n      }\n\n      var el = elMap.get(id);\n\n      if (el && textContentOption) {\n        if ($action === 'merge') {\n          var textContentExisting = el.getTextContent();\n          textContentExisting ? textContentExisting.attr(textContentOption) : el.setTextContent(new graphicUtil.Text(textContentOption));\n        } else if ($action === 'replace') {\n          el.setTextContent(new graphicUtil.Text(textContentOption));\n        }\n      }\n\n      if (el) {\n        var elInner = inner(el);\n        elInner.__ecGraphicWidthOption = elOption.width;\n        elInner.__ecGraphicHeightOption = elOption.height;\n        setEventData(el, graphicModel, elOption);\n      }\n    });\n  };\n\n  GraphicComponentView.prototype._relocate = function (graphicModel, api) {\n    var elOptions = graphicModel.option.elements;\n    var rootGroup = this.group;\n    var elMap = this._elMap;\n    var apiWidth = api.getWidth();\n    var apiHeight = api.getHeight();\n\n    for (var i = 0; i < elOptions.length; i++) {\n      var elOption = elOptions[i];\n      var id = modelUtil.convertOptionIdName(elOption.id, null);\n      var el = id != null ? elMap.get(id) : null;\n\n      if (!el || !el.isGroup) {\n        continue;\n      }\n\n      var parentEl = el.parent;\n      var isParentRoot = parentEl === rootGroup;\n      var elInner = inner(el);\n      var parentElInner = inner(parentEl);\n      elInner.__ecGraphicWidth = parsePercent(elInner.__ecGraphicWidthOption, isParentRoot ? apiWidth : parentElInner.__ecGraphicWidth) || 0;\n      elInner.__ecGraphicHeight = parsePercent(elInner.__ecGraphicHeightOption, isParentRoot ? apiHeight : parentElInner.__ecGraphicHeight) || 0;\n    }\n\n    for (var i = elOptions.length - 1; i >= 0; i--) {\n      var elOption = elOptions[i];\n      var id = modelUtil.convertOptionIdName(elOption.id, null);\n      var el = id != null ? elMap.get(id) : null;\n\n      if (!el) {\n        continue;\n      }\n\n      var parentEl = el.parent;\n      var parentElInner = inner(parentEl);\n      var containerInfo = parentEl === rootGroup ? {\n        width: apiWidth,\n        height: apiHeight\n      } : {\n        width: parentElInner.__ecGraphicWidth,\n        height: parentElInner.__ecGraphicHeight\n      };\n      layoutUtil.positionElement(el, elOption, containerInfo, null, {\n        hv: elOption.hv,\n        boundingMode: elOption.bounding\n      });\n    }\n  };\n\n  GraphicComponentView.prototype._clear = function () {\n    var elMap = this._elMap;\n    elMap.each(function (el) {\n      removeEl(el, elMap);\n    });\n    this._elMap = zrUtil.createHashMap();\n  };\n\n  GraphicComponentView.prototype.dispose = function () {\n    this._clear();\n  };\n\n  GraphicComponentView.type = 'graphic';\n  return GraphicComponentView;\n}(ComponentView);\n\nfunction createEl(id, targetElParent, elOption, elMap) {\n  var graphicType = elOption.type;\n\n  if (process.env.NODE_ENV !== 'production') {\n    zrUtil.assert(graphicType, 'graphic type MUST be set');\n  }\n\n  var Clz = zrUtil.hasOwn(_nonShapeGraphicElements, graphicType) ? _nonShapeGraphicElements[graphicType] : graphicUtil.getShapeClass(graphicType);\n\n  if (process.env.NODE_ENV !== 'production') {\n    zrUtil.assert(Clz, 'graphic type can not be found');\n  }\n\n  var el = new Clz(elOption);\n  targetElParent.add(el);\n  elMap.set(id, el);\n  inner(el).__ecGraphicId = id;\n}\n\nfunction removeEl(elExisting, elMap) {\n  var existElParent = elExisting && elExisting.parent;\n\n  if (existElParent) {\n    elExisting.type === 'group' && elExisting.traverse(function (el) {\n      removeEl(el, elMap);\n    });\n    elMap.removeKey(inner(elExisting).__ecGraphicId);\n    existElParent.remove(elExisting);\n  }\n}\n\nfunction getCleanedElOption(elOption) {\n  elOption = zrUtil.extend({}, elOption);\n  zrUtil.each(['id', 'parentId', '$action', 'hv', 'bounding', 'textContent'].concat(layoutUtil.LOCATION_PARAMS), function (name) {\n    delete elOption[name];\n  });\n  return elOption;\n}\n\nfunction isSetLoc(obj, props) {\n  var isSet;\n  zrUtil.each(props, function (prop) {\n    obj[prop] != null && obj[prop] !== 'auto' && (isSet = true);\n  });\n  return isSet;\n}\n\nfunction setKeyInfoToNewElOption(resultItem, newElOption) {\n  var existElOption = resultItem.existing;\n  newElOption.id = resultItem.keyInfo.id;\n  !newElOption.type && existElOption && (newElOption.type = existElOption.type);\n\n  if (newElOption.parentId == null) {\n    var newElParentOption = newElOption.parentOption;\n\n    if (newElParentOption) {\n      newElOption.parentId = newElParentOption.id;\n    } else if (existElOption) {\n      newElOption.parentId = existElOption.parentId;\n    }\n  }\n\n  newElOption.parentOption = null;\n}\n\nfunction mergeNewElOptionToExist(existList, index, newElOption) {\n  var newElOptCopy = zrUtil.extend({}, newElOption);\n  var existElOption = existList[index];\n  var $action = newElOption.$action || 'merge';\n\n  if ($action === 'merge') {\n    if (existElOption) {\n      if (process.env.NODE_ENV !== 'production') {\n        var newType = newElOption.type;\n        zrUtil.assert(!newType || existElOption.type === newType, 'Please set $action: \"replace\" to change `type`');\n      }\n\n      zrUtil.merge(existElOption, newElOptCopy, true);\n      layoutUtil.mergeLayoutParam(existElOption, newElOptCopy, {\n        ignoreSize: true\n      });\n      layoutUtil.copyLayoutParams(newElOption, existElOption);\n    } else {\n      existList[index] = newElOptCopy;\n    }\n  } else if ($action === 'replace') {\n    existList[index] = newElOptCopy;\n  } else if ($action === 'remove') {\n    existElOption && (existList[index] = null);\n  }\n}\n\nfunction setLayoutInfoToExist(existItem, newElOption) {\n  if (!existItem) {\n    return;\n  }\n\n  existItem.hv = newElOption.hv = [isSetLoc(newElOption, ['left', 'right']), isSetLoc(newElOption, ['top', 'bottom'])];\n\n  if (existItem.type === 'group') {\n    var existingGroupOpt = existItem;\n    var newGroupOpt = newElOption;\n    existingGroupOpt.width == null && (existingGroupOpt.width = newGroupOpt.width = 0);\n    existingGroupOpt.height == null && (existingGroupOpt.height = newGroupOpt.height = 0);\n  }\n}\n\nfunction setEventData(el, graphicModel, elOption) {\n  var eventData = getECData(el).eventData;\n\n  if (!el.silent && !el.ignore && !eventData) {\n    eventData = getECData(el).eventData = {\n      componentType: 'graphic',\n      componentIndex: graphicModel.componentIndex,\n      name: el.name\n    };\n  }\n\n  if (eventData) {\n    eventData.info = elOption.info;\n  }\n}\n\nexport function install(registers) {\n  registers.registerComponentModel(GraphicComponentModel);\n  registers.registerComponentView(GraphicComponentView);\n  registers.registerPreprocessor(preprocessor);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { indexOf, createHashMap, assert } from 'zrender/lib/core/util';\nexport var DATA_ZOOM_AXIS_DIMENSIONS = ['x', 'y', 'radius', 'angle', 'single'];\nvar SERIES_COORDS = ['cartesian2d', 'polar', 'singleAxis'];\nexport function isCoordSupported(seriesModel) {\n  var coordType = seriesModel.get('coordinateSystem');\n  return indexOf(SERIES_COORDS, coordType) >= 0;\n}\nexport function getAxisMainType(axisDim) {\n  if (process.env.NODE_ENV !== 'production') {\n    assert(axisDim);\n  }\n\n  return axisDim + 'Axis';\n}\nexport function getAxisIndexPropName(axisDim) {\n  if (process.env.NODE_ENV !== 'production') {\n    assert(axisDim);\n  }\n\n  return axisDim + 'AxisIndex';\n}\nexport function getAxisIdPropName(axisDim) {\n  if (process.env.NODE_ENV !== 'production') {\n    assert(axisDim);\n  }\n\n  return axisDim + 'AxisId';\n}\nexport function findEffectedDataZooms(ecModel, payload) {\n  var axisRecords = createHashMap();\n  var effectedModels = [];\n  var effectedModelMap = createHashMap();\n  ecModel.eachComponent({\n    mainType: 'dataZoom',\n    query: payload\n  }, function (dataZoomModel) {\n    if (!effectedModelMap.get(dataZoomModel.uid)) {\n      addToEffected(dataZoomModel);\n    }\n  });\n  var foundNewLink;\n\n  do {\n    foundNewLink = false;\n    ecModel.eachComponent('dataZoom', processSingle);\n  } while (foundNewLink);\n\n  function processSingle(dataZoomModel) {\n    if (!effectedModelMap.get(dataZoomModel.uid) && isLinked(dataZoomModel)) {\n      addToEffected(dataZoomModel);\n      foundNewLink = true;\n    }\n  }\n\n  function addToEffected(dataZoom) {\n    effectedModelMap.set(dataZoom.uid, true);\n    effectedModels.push(dataZoom);\n    markAxisControlled(dataZoom);\n  }\n\n  function isLinked(dataZoomModel) {\n    var isLink = false;\n    dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n      var axisIdxArr = axisRecords.get(axisDim);\n\n      if (axisIdxArr && axisIdxArr[axisIndex]) {\n        isLink = true;\n      }\n    });\n    return isLink;\n  }\n\n  function markAxisControlled(dataZoomModel) {\n    dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n      (axisRecords.get(axisDim) || axisRecords.set(axisDim, []))[axisIndex] = true;\n    });\n  }\n\n  return effectedModels;\n}\nexport function collectReferCoordSysModelInfo(dataZoomModel) {\n  var ecModel = dataZoomModel.ecModel;\n  var coordSysInfoWrap = {\n    infoList: [],\n    infoMap: createHashMap()\n  };\n  dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n    var axisModel = ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n\n    if (!axisModel) {\n      return;\n    }\n\n    var coordSysModel = axisModel.getCoordSysModel();\n\n    if (!coordSysModel) {\n      return;\n    }\n\n    var coordSysUid = coordSysModel.uid;\n    var coordSysInfo = coordSysInfoWrap.infoMap.get(coordSysUid);\n\n    if (!coordSysInfo) {\n      coordSysInfo = {\n        model: coordSysModel,\n        axisModels: []\n      };\n      coordSysInfoWrap.infoList.push(coordSysInfo);\n      coordSysInfoWrap.infoMap.set(coordSysUid, coordSysInfo);\n    }\n\n    coordSysInfo.axisModels.push(axisModel);\n  });\n  return coordSysInfoWrap;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { each, createHashMap, merge, assert } from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\nimport { getAxisMainType, DATA_ZOOM_AXIS_DIMENSIONS } from './helper';\nimport { MULTIPLE_REFERRING, SINGLE_REFERRING } from '../../util/model';\n\nvar DataZoomAxisInfo = function () {\n  function DataZoomAxisInfo() {\n    this.indexList = [];\n    this.indexMap = [];\n  }\n\n  DataZoomAxisInfo.prototype.add = function (axisCmptIdx) {\n    if (!this.indexMap[axisCmptIdx]) {\n      this.indexList.push(axisCmptIdx);\n      this.indexMap[axisCmptIdx] = true;\n    }\n  };\n\n  return DataZoomAxisInfo;\n}();\n\nvar DataZoomModel = function (_super) {\n  __extends(DataZoomModel, _super);\n\n  function DataZoomModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = DataZoomModel.type;\n    _this._autoThrottle = true;\n    _this._noTarget = true;\n    _this._rangePropMode = ['percent', 'percent'];\n    return _this;\n  }\n\n  DataZoomModel.prototype.init = function (option, parentModel, ecModel) {\n    var inputRawOption = retrieveRawOption(option);\n    this.settledOption = inputRawOption;\n    this.mergeDefaultAndTheme(option, ecModel);\n\n    this._doInit(inputRawOption);\n  };\n\n  DataZoomModel.prototype.mergeOption = function (newOption) {\n    var inputRawOption = retrieveRawOption(newOption);\n    merge(this.option, newOption, true);\n    merge(this.settledOption, inputRawOption, true);\n\n    this._doInit(inputRawOption);\n  };\n\n  DataZoomModel.prototype._doInit = function (inputRawOption) {\n    var thisOption = this.option;\n\n    this._setDefaultThrottle(inputRawOption);\n\n    this._updateRangeUse(inputRawOption);\n\n    var settledOption = this.settledOption;\n    each([['start', 'startValue'], ['end', 'endValue']], function (names, index) {\n      if (this._rangePropMode[index] === 'value') {\n        thisOption[names[0]] = settledOption[names[0]] = null;\n      }\n    }, this);\n\n    this._resetTarget();\n  };\n\n  DataZoomModel.prototype._resetTarget = function () {\n    var optionOrient = this.get('orient', true);\n    var targetAxisIndexMap = this._targetAxisInfoMap = createHashMap();\n\n    var hasAxisSpecified = this._fillSpecifiedTargetAxis(targetAxisIndexMap);\n\n    if (hasAxisSpecified) {\n      this._orient = optionOrient || this._makeAutoOrientByTargetAxis();\n    } else {\n      this._orient = optionOrient || 'horizontal';\n\n      this._fillAutoTargetAxisByOrient(targetAxisIndexMap, this._orient);\n    }\n\n    this._noTarget = true;\n    targetAxisIndexMap.each(function (axisInfo) {\n      if (axisInfo.indexList.length) {\n        this._noTarget = false;\n      }\n    }, this);\n  };\n\n  DataZoomModel.prototype._fillSpecifiedTargetAxis = function (targetAxisIndexMap) {\n    var hasAxisSpecified = false;\n    each(DATA_ZOOM_AXIS_DIMENSIONS, function (axisDim) {\n      var refering = this.getReferringComponents(getAxisMainType(axisDim), MULTIPLE_REFERRING);\n\n      if (!refering.specified) {\n        return;\n      }\n\n      hasAxisSpecified = true;\n      var axisInfo = new DataZoomAxisInfo();\n      each(refering.models, function (axisModel) {\n        axisInfo.add(axisModel.componentIndex);\n      });\n      targetAxisIndexMap.set(axisDim, axisInfo);\n    }, this);\n    return hasAxisSpecified;\n  };\n\n  DataZoomModel.prototype._fillAutoTargetAxisByOrient = function (targetAxisIndexMap, orient) {\n    var ecModel = this.ecModel;\n    var needAuto = true;\n\n    if (needAuto) {\n      var axisDim = orient === 'vertical' ? 'y' : 'x';\n      var axisModels = ecModel.findComponents({\n        mainType: axisDim + 'Axis'\n      });\n      setParallelAxis(axisModels, axisDim);\n    }\n\n    if (needAuto) {\n      var axisModels = ecModel.findComponents({\n        mainType: 'singleAxis',\n        filter: function (axisModel) {\n          return axisModel.get('orient', true) === orient;\n        }\n      });\n      setParallelAxis(axisModels, 'single');\n    }\n\n    function setParallelAxis(axisModels, axisDim) {\n      var axisModel = axisModels[0];\n\n      if (!axisModel) {\n        return;\n      }\n\n      var axisInfo = new DataZoomAxisInfo();\n      axisInfo.add(axisModel.componentIndex);\n      targetAxisIndexMap.set(axisDim, axisInfo);\n      needAuto = false;\n\n      if (axisDim === 'x' || axisDim === 'y') {\n        var gridModel_1 = axisModel.getReferringComponents('grid', SINGLE_REFERRING).models[0];\n        gridModel_1 && each(axisModels, function (axModel) {\n          if (axisModel.componentIndex !== axModel.componentIndex && gridModel_1 === axModel.getReferringComponents('grid', SINGLE_REFERRING).models[0]) {\n            axisInfo.add(axModel.componentIndex);\n          }\n        });\n      }\n    }\n\n    if (needAuto) {\n      each(DATA_ZOOM_AXIS_DIMENSIONS, function (axisDim) {\n        if (!needAuto) {\n          return;\n        }\n\n        var axisModels = ecModel.findComponents({\n          mainType: getAxisMainType(axisDim),\n          filter: function (axisModel) {\n            return axisModel.get('type', true) === 'category';\n          }\n        });\n\n        if (axisModels[0]) {\n          var axisInfo = new DataZoomAxisInfo();\n          axisInfo.add(axisModels[0].componentIndex);\n          targetAxisIndexMap.set(axisDim, axisInfo);\n          needAuto = false;\n        }\n      }, this);\n    }\n  };\n\n  DataZoomModel.prototype._makeAutoOrientByTargetAxis = function () {\n    var dim;\n    this.eachTargetAxis(function (axisDim) {\n      !dim && (dim = axisDim);\n    }, this);\n    return dim === 'y' ? 'vertical' : 'horizontal';\n  };\n\n  DataZoomModel.prototype._setDefaultThrottle = function (inputRawOption) {\n    if (inputRawOption.hasOwnProperty('throttle')) {\n      this._autoThrottle = false;\n    }\n\n    if (this._autoThrottle) {\n      var globalOption = this.ecModel.option;\n      this.option.throttle = globalOption.animation && globalOption.animationDurationUpdate > 0 ? 100 : 20;\n    }\n  };\n\n  DataZoomModel.prototype._updateRangeUse = function (inputRawOption) {\n    var rangePropMode = this._rangePropMode;\n    var rangeModeInOption = this.get('rangeMode');\n    each([['start', 'startValue'], ['end', 'endValue']], function (names, index) {\n      var percentSpecified = inputRawOption[names[0]] != null;\n      var valueSpecified = inputRawOption[names[1]] != null;\n\n      if (percentSpecified && !valueSpecified) {\n        rangePropMode[index] = 'percent';\n      } else if (!percentSpecified && valueSpecified) {\n        rangePropMode[index] = 'value';\n      } else if (rangeModeInOption) {\n        rangePropMode[index] = rangeModeInOption[index];\n      } else if (percentSpecified) {\n        rangePropMode[index] = 'percent';\n      }\n    });\n  };\n\n  DataZoomModel.prototype.noTarget = function () {\n    return this._noTarget;\n  };\n\n  DataZoomModel.prototype.getFirstTargetAxisModel = function () {\n    var firstAxisModel;\n    this.eachTargetAxis(function (axisDim, axisIndex) {\n      if (firstAxisModel == null) {\n        firstAxisModel = this.ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n      }\n    }, this);\n    return firstAxisModel;\n  };\n\n  DataZoomModel.prototype.eachTargetAxis = function (callback, context) {\n    this._targetAxisInfoMap.each(function (axisInfo, axisDim) {\n      each(axisInfo.indexList, function (axisIndex) {\n        callback.call(context, axisDim, axisIndex);\n      });\n    });\n  };\n\n  DataZoomModel.prototype.getAxisProxy = function (axisDim, axisIndex) {\n    var axisModel = this.getAxisModel(axisDim, axisIndex);\n\n    if (axisModel) {\n      return axisModel.__dzAxisProxy;\n    }\n  };\n\n  DataZoomModel.prototype.getAxisModel = function (axisDim, axisIndex) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(axisDim && axisIndex != null);\n    }\n\n    var axisInfo = this._targetAxisInfoMap.get(axisDim);\n\n    if (axisInfo && axisInfo.indexMap[axisIndex]) {\n      return this.ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n    }\n  };\n\n  DataZoomModel.prototype.setRawRange = function (opt) {\n    var thisOption = this.option;\n    var settledOption = this.settledOption;\n    each([['start', 'startValue'], ['end', 'endValue']], function (names) {\n      if (opt[names[0]] != null || opt[names[1]] != null) {\n        thisOption[names[0]] = settledOption[names[0]] = opt[names[0]];\n        thisOption[names[1]] = settledOption[names[1]] = opt[names[1]];\n      }\n    }, this);\n\n    this._updateRangeUse(opt);\n  };\n\n  DataZoomModel.prototype.setCalculatedRange = function (opt) {\n    var option = this.option;\n    each(['start', 'startValue', 'end', 'endValue'], function (name) {\n      option[name] = opt[name];\n    });\n  };\n\n  DataZoomModel.prototype.getPercentRange = function () {\n    var axisProxy = this.findRepresentativeAxisProxy();\n\n    if (axisProxy) {\n      return axisProxy.getDataPercentWindow();\n    }\n  };\n\n  DataZoomModel.prototype.getValueRange = function (axisDim, axisIndex) {\n    if (axisDim == null && axisIndex == null) {\n      var axisProxy = this.findRepresentativeAxisProxy();\n\n      if (axisProxy) {\n        return axisProxy.getDataValueWindow();\n      }\n    } else {\n      return this.getAxisProxy(axisDim, axisIndex).getDataValueWindow();\n    }\n  };\n\n  DataZoomModel.prototype.findRepresentativeAxisProxy = function (axisModel) {\n    if (axisModel) {\n      return axisModel.__dzAxisProxy;\n    }\n\n    var firstProxy;\n\n    var axisDimList = this._targetAxisInfoMap.keys();\n\n    for (var i = 0; i < axisDimList.length; i++) {\n      var axisDim = axisDimList[i];\n\n      var axisInfo = this._targetAxisInfoMap.get(axisDim);\n\n      for (var j = 0; j < axisInfo.indexList.length; j++) {\n        var proxy = this.getAxisProxy(axisDim, axisInfo.indexList[j]);\n\n        if (proxy.hostedBy(this)) {\n          return proxy;\n        }\n\n        if (!firstProxy) {\n          firstProxy = proxy;\n        }\n      }\n    }\n\n    return firstProxy;\n  };\n\n  DataZoomModel.prototype.getRangePropMode = function () {\n    return this._rangePropMode.slice();\n  };\n\n  DataZoomModel.prototype.getOrient = function () {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(this._orient);\n    }\n\n    return this._orient;\n  };\n\n  DataZoomModel.type = 'dataZoom';\n  DataZoomModel.dependencies = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'series', 'toolbox'];\n  DataZoomModel.defaultOption = {\n    zlevel: 0,\n    z: 4,\n    filterMode: 'filter',\n    start: 0,\n    end: 100\n  };\n  return DataZoomModel;\n}(ComponentModel);\n\nfunction retrieveRawOption(option) {\n  var ret = {};\n  each(['start', 'end', 'startValue', 'endValue', 'throttle'], function (name) {\n    option.hasOwnProperty(name) && (ret[name] = option[name]);\n  });\n  return ret;\n}\n\nexport default DataZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport DataZoomModel from './DataZoomModel';\n\nvar SelectDataZoomModel = function (_super) {\n  __extends(SelectDataZoomModel, _super);\n\n  function SelectDataZoomModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SelectDataZoomModel.type;\n    return _this;\n  }\n\n  SelectDataZoomModel.type = 'dataZoom.select';\n  return SelectDataZoomModel;\n}(DataZoomModel);\n\nexport default SelectDataZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component';\n\nvar DataZoomView = function (_super) {\n  __extends(DataZoomView, _super);\n\n  function DataZoomView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = DataZoomView.type;\n    return _this;\n  }\n\n  DataZoomView.prototype.render = function (dataZoomModel, ecModel, api, payload) {\n    this.dataZoomModel = dataZoomModel;\n    this.ecModel = ecModel;\n    this.api = api;\n  };\n\n  DataZoomView.type = 'dataZoom';\n  return DataZoomView;\n}(ComponentView);\n\nexport default DataZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport DataZoomView from './DataZoomView';\n\nvar SelectDataZoomView = function (_super) {\n  __extends(SelectDataZoomView, _super);\n\n  function SelectDataZoomView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SelectDataZoomView.type;\n    return _this;\n  }\n\n  SelectDataZoomView.type = 'dataZoom.select';\n  return SelectDataZoomView;\n}(DataZoomView);\n\nexport default SelectDataZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as numberUtil from '../../util/number';\nimport sliderMove from '../helper/sliderMove';\nimport { unionAxisExtentFromData } from '../../coord/axisHelper';\nimport { ensureScaleRawExtentInfo } from '../../coord/scaleRawExtentInfo';\nimport { getAxisMainType, isCoordSupported } from './helper';\nimport { SINGLE_REFERRING } from '../../util/model';\nvar each = zrUtil.each;\nvar asc = numberUtil.asc;\n\nvar AxisProxy = function () {\n  function AxisProxy(dimName, axisIndex, dataZoomModel, ecModel) {\n    this._dimName = dimName;\n    this._axisIndex = axisIndex;\n    this.ecModel = ecModel;\n    this._dataZoomModel = dataZoomModel;\n  }\n\n  AxisProxy.prototype.hostedBy = function (dataZoomModel) {\n    return this._dataZoomModel === dataZoomModel;\n  };\n\n  AxisProxy.prototype.getDataValueWindow = function () {\n    return this._valueWindow.slice();\n  };\n\n  AxisProxy.prototype.getDataPercentWindow = function () {\n    return this._percentWindow.slice();\n  };\n\n  AxisProxy.prototype.getTargetSeriesModels = function () {\n    var seriesModels = [];\n    this.ecModel.eachSeries(function (seriesModel) {\n      if (isCoordSupported(seriesModel)) {\n        var axisMainType = getAxisMainType(this._dimName);\n        var axisModel = seriesModel.getReferringComponents(axisMainType, SINGLE_REFERRING).models[0];\n\n        if (axisModel && this._axisIndex === axisModel.componentIndex) {\n          seriesModels.push(seriesModel);\n        }\n      }\n    }, this);\n    return seriesModels;\n  };\n\n  AxisProxy.prototype.getAxisModel = function () {\n    return this.ecModel.getComponent(this._dimName + 'Axis', this._axisIndex);\n  };\n\n  AxisProxy.prototype.getMinMaxSpan = function () {\n    return zrUtil.clone(this._minMaxSpan);\n  };\n\n  AxisProxy.prototype.calculateDataWindow = function (opt) {\n    var dataExtent = this._dataExtent;\n    var axisModel = this.getAxisModel();\n    var scale = axisModel.axis.scale;\n\n    var rangePropMode = this._dataZoomModel.getRangePropMode();\n\n    var percentExtent = [0, 100];\n    var percentWindow = [];\n    var valueWindow = [];\n    var hasPropModeValue;\n    each(['start', 'end'], function (prop, idx) {\n      var boundPercent = opt[prop];\n      var boundValue = opt[prop + 'Value'];\n\n      if (rangePropMode[idx] === 'percent') {\n        boundPercent == null && (boundPercent = percentExtent[idx]);\n        boundValue = scale.parse(numberUtil.linearMap(boundPercent, percentExtent, dataExtent));\n      } else {\n        hasPropModeValue = true;\n        boundValue = boundValue == null ? dataExtent[idx] : scale.parse(boundValue);\n        boundPercent = numberUtil.linearMap(boundValue, dataExtent, percentExtent);\n      }\n\n      valueWindow[idx] = boundValue;\n      percentWindow[idx] = boundPercent;\n    });\n    asc(valueWindow);\n    asc(percentWindow);\n    var spans = this._minMaxSpan;\n    hasPropModeValue ? restrictSet(valueWindow, percentWindow, dataExtent, percentExtent, false) : restrictSet(percentWindow, valueWindow, percentExtent, dataExtent, true);\n\n    function restrictSet(fromWindow, toWindow, fromExtent, toExtent, toValue) {\n      var suffix = toValue ? 'Span' : 'ValueSpan';\n      sliderMove(0, fromWindow, fromExtent, 'all', spans['min' + suffix], spans['max' + suffix]);\n\n      for (var i = 0; i < 2; i++) {\n        toWindow[i] = numberUtil.linearMap(fromWindow[i], fromExtent, toExtent, true);\n        toValue && (toWindow[i] = scale.parse(toWindow[i]));\n      }\n    }\n\n    return {\n      valueWindow: valueWindow,\n      percentWindow: percentWindow\n    };\n  };\n\n  AxisProxy.prototype.reset = function (dataZoomModel) {\n    if (dataZoomModel !== this._dataZoomModel) {\n      return;\n    }\n\n    var targetSeries = this.getTargetSeriesModels();\n    this._dataExtent = calculateDataExtent(this, this._dimName, targetSeries);\n\n    this._updateMinMaxSpan();\n\n    var dataWindow = this.calculateDataWindow(dataZoomModel.settledOption);\n    this._valueWindow = dataWindow.valueWindow;\n    this._percentWindow = dataWindow.percentWindow;\n\n    this._setAxisModel();\n  };\n\n  AxisProxy.prototype.filterData = function (dataZoomModel, api) {\n    if (dataZoomModel !== this._dataZoomModel) {\n      return;\n    }\n\n    var axisDim = this._dimName;\n    var seriesModels = this.getTargetSeriesModels();\n    var filterMode = dataZoomModel.get('filterMode');\n    var valueWindow = this._valueWindow;\n\n    if (filterMode === 'none') {\n      return;\n    }\n\n    each(seriesModels, function (seriesModel) {\n      var seriesData = seriesModel.getData();\n      var dataDims = seriesData.mapDimensionsAll(axisDim);\n\n      if (!dataDims.length) {\n        return;\n      }\n\n      if (filterMode === 'weakFilter') {\n        seriesData.filterSelf(function (dataIndex) {\n          var leftOut;\n          var rightOut;\n          var hasValue;\n\n          for (var i = 0; i < dataDims.length; i++) {\n            var value = seriesData.get(dataDims[i], dataIndex);\n            var thisHasValue = !isNaN(value);\n            var thisLeftOut = value < valueWindow[0];\n            var thisRightOut = value > valueWindow[1];\n\n            if (thisHasValue && !thisLeftOut && !thisRightOut) {\n              return true;\n            }\n\n            thisHasValue && (hasValue = true);\n            thisLeftOut && (leftOut = true);\n            thisRightOut && (rightOut = true);\n          }\n\n          return hasValue && leftOut && rightOut;\n        });\n      } else {\n        each(dataDims, function (dim) {\n          if (filterMode === 'empty') {\n            seriesModel.setData(seriesData = seriesData.map(dim, function (value) {\n              return !isInWindow(value) ? NaN : value;\n            }));\n          } else {\n            var range = {};\n            range[dim] = valueWindow;\n            seriesData.selectRange(range);\n          }\n        });\n      }\n\n      each(dataDims, function (dim) {\n        seriesData.setApproximateExtent(valueWindow, dim);\n      });\n    });\n\n    function isInWindow(value) {\n      return value >= valueWindow[0] && value <= valueWindow[1];\n    }\n  };\n\n  AxisProxy.prototype._updateMinMaxSpan = function () {\n    var minMaxSpan = this._minMaxSpan = {};\n    var dataZoomModel = this._dataZoomModel;\n    var dataExtent = this._dataExtent;\n    each(['min', 'max'], function (minMax) {\n      var percentSpan = dataZoomModel.get(minMax + 'Span');\n      var valueSpan = dataZoomModel.get(minMax + 'ValueSpan');\n      valueSpan != null && (valueSpan = this.getAxisModel().axis.scale.parse(valueSpan));\n\n      if (valueSpan != null) {\n        percentSpan = numberUtil.linearMap(dataExtent[0] + valueSpan, dataExtent, [0, 100], true);\n      } else if (percentSpan != null) {\n        valueSpan = numberUtil.linearMap(percentSpan, [0, 100], dataExtent, true) - dataExtent[0];\n      }\n\n      minMaxSpan[minMax + 'Span'] = percentSpan;\n      minMaxSpan[minMax + 'ValueSpan'] = valueSpan;\n    }, this);\n  };\n\n  AxisProxy.prototype._setAxisModel = function () {\n    var axisModel = this.getAxisModel();\n    var percentWindow = this._percentWindow;\n    var valueWindow = this._valueWindow;\n\n    if (!percentWindow) {\n      return;\n    }\n\n    var precision = numberUtil.getPixelPrecision(valueWindow, [0, 500]);\n    precision = Math.min(precision, 20);\n    var rawExtentInfo = axisModel.axis.scale.rawExtentInfo;\n\n    if (percentWindow[0] !== 0) {\n      rawExtentInfo.setDeterminedMinMax('min', +valueWindow[0].toFixed(precision));\n    }\n\n    if (percentWindow[1] !== 100) {\n      rawExtentInfo.setDeterminedMinMax('max', +valueWindow[1].toFixed(precision));\n    }\n\n    rawExtentInfo.freeze();\n  };\n\n  return AxisProxy;\n}();\n\nfunction calculateDataExtent(axisProxy, axisDim, seriesModels) {\n  var dataExtent = [Infinity, -Infinity];\n  each(seriesModels, function (seriesModel) {\n    unionAxisExtentFromData(dataExtent, seriesModel.getData(), axisDim);\n  });\n  var axisModel = axisProxy.getAxisModel();\n  var rawExtentResult = ensureScaleRawExtentInfo(axisModel.axis.scale, axisModel, dataExtent).calculate();\n  return [rawExtentResult.min, rawExtentResult.max];\n}\n\nexport default AxisProxy;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, each } from 'zrender/lib/core/util';\nimport { getAxisMainType } from './helper';\nimport AxisProxy from './AxisProxy';\nvar dataZoomProcessor = {\n  getTargetSeries: function (ecModel) {\n    function eachAxisModel(cb) {\n      ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n        dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n          var axisModel = ecModel.getComponent(getAxisMainType(axisDim), axisIndex);\n          cb(axisDim, axisIndex, axisModel, dataZoomModel);\n        });\n      });\n    }\n\n    eachAxisModel(function (axisDim, axisIndex, axisModel, dataZoomModel) {\n      axisModel.__dzAxisProxy = null;\n    });\n    var proxyList = [];\n    eachAxisModel(function (axisDim, axisIndex, axisModel, dataZoomModel) {\n      if (!axisModel.__dzAxisProxy) {\n        axisModel.__dzAxisProxy = new AxisProxy(axisDim, axisIndex, dataZoomModel, ecModel);\n        proxyList.push(axisModel.__dzAxisProxy);\n      }\n    });\n    var seriesModelMap = createHashMap();\n    each(proxyList, function (axisProxy) {\n      each(axisProxy.getTargetSeriesModels(), function (seriesModel) {\n        seriesModelMap.set(seriesModel.uid, seriesModel);\n      });\n    });\n    return seriesModelMap;\n  },\n  overallReset: function (ecModel, api) {\n    ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n      dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n        dataZoomModel.getAxisProxy(axisDim, axisIndex).reset(dataZoomModel);\n      });\n      dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n        dataZoomModel.getAxisProxy(axisDim, axisIndex).filterData(dataZoomModel, api);\n      });\n    });\n    ecModel.eachComponent('dataZoom', function (dataZoomModel) {\n      var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\n\n      if (axisProxy) {\n        var percentRange = axisProxy.getDataPercentWindow();\n        var valueRange = axisProxy.getDataValueWindow();\n        dataZoomModel.setCalculatedRange({\n          start: percentRange[0],\n          end: percentRange[1],\n          startValue: valueRange[0],\n          endValue: valueRange[1]\n        });\n      }\n    });\n  }\n};\nexport default dataZoomProcessor;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { findEffectedDataZooms } from './helper';\nimport { each } from 'zrender/lib/core/util';\nexport default function installDataZoomAction(registers) {\n  registers.registerAction('dataZoom', function (payload, ecModel) {\n    var effectedModels = findEffectedDataZooms(ecModel, payload);\n    each(effectedModels, function (dataZoomModel) {\n      dataZoomModel.setRawRange({\n        start: payload.start,\n        end: payload.end,\n        startValue: payload.startValue,\n        endValue: payload.endValue\n      });\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport dataZoomProcessor from './dataZoomProcessor';\nimport installDataZoomAction from './dataZoomAction';\nvar installed = false;\nexport default function installCommon(registers) {\n  if (installed) {\n    return;\n  }\n\n  installed = true;\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.FILTER, dataZoomProcessor);\n  installDataZoomAction(registers);\n  registers.registerSubTypeDefaulter('dataZoom', function () {\n    return 'slider';\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SelectZoomModel from './SelectZoomModel';\nimport SelectZoomView from './SelectZoomView';\nimport installCommon from './installCommon';\nexport function install(registers) {\n  registers.registerComponentModel(SelectZoomModel);\n  registers.registerComponentView(SelectZoomView);\n  installCommon(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar ToolboxFeature = function () {\n  function ToolboxFeature() {}\n\n  return ToolboxFeature;\n}();\n\nexport { ToolboxFeature };\nvar features = {};\nexport function registerFeature(name, ctor) {\n  features[name] = ctor;\n}\nexport function getFeature(name) {\n  return features[name];\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as featureManager from './featureManager';\nimport ComponentModel from '../../model/Component';\n\nvar ToolboxModel = function (_super) {\n  __extends(ToolboxModel, _super);\n\n  function ToolboxModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ToolboxModel.type;\n    return _this;\n  }\n\n  ToolboxModel.prototype.optionUpdated = function () {\n    _super.prototype.optionUpdated.apply(this, arguments);\n\n    var ecModel = this.ecModel;\n    zrUtil.each(this.option.feature, function (featureOpt, featureName) {\n      var Feature = featureManager.getFeature(featureName);\n\n      if (Feature) {\n        if (Feature.getDefaultOption) {\n          Feature.defaultOption = Feature.getDefaultOption(ecModel);\n        }\n\n        zrUtil.merge(featureOpt, Feature.defaultOption);\n      }\n    });\n  };\n\n  ToolboxModel.type = 'toolbox';\n  ToolboxModel.layoutMode = {\n    type: 'box',\n    ignoreSize: true\n  };\n  ToolboxModel.defaultOption = {\n    show: true,\n    z: 6,\n    zlevel: 0,\n    orient: 'horizontal',\n    left: 'right',\n    top: 'top',\n    backgroundColor: 'transparent',\n    borderColor: '#ccc',\n    borderRadius: 0,\n    borderWidth: 0,\n    padding: 5,\n    itemSize: 15,\n    itemGap: 8,\n    showTitle: true,\n    iconStyle: {\n      borderColor: '#666',\n      color: 'none'\n    },\n    emphasis: {\n      iconStyle: {\n        borderColor: '#3E98C5'\n      }\n    },\n    tooltip: {\n      show: false\n    }\n  };\n  return ToolboxModel;\n}(ComponentModel);\n\nexport default ToolboxModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { getLayoutRect, box as layoutBox, positionElement } from '../../util/layout';\nimport * as formatUtil from '../../util/format';\nimport * as graphic from '../../util/graphic';\nexport function layout(group, componentModel, api) {\n  var boxLayoutParams = componentModel.getBoxLayoutParams();\n  var padding = componentModel.get('padding');\n  var viewportSize = {\n    width: api.getWidth(),\n    height: api.getHeight()\n  };\n  var rect = getLayoutRect(boxLayoutParams, viewportSize, padding);\n  layoutBox(componentModel.get('orient'), group, componentModel.get('itemGap'), rect.width, rect.height);\n  positionElement(group, boxLayoutParams, viewportSize, padding);\n}\nexport function makeBackground(rect, componentModel) {\n  var padding = formatUtil.normalizeCssArray(componentModel.get('padding'));\n  var style = componentModel.getItemStyle(['color', 'opacity']);\n  style.fill = componentModel.get('backgroundColor');\n  rect = new graphic.Rect({\n    shape: {\n      x: rect.x - padding[3],\n      y: rect.y - padding[0],\n      width: rect.width + padding[1] + padding[3],\n      height: rect.height + padding[0] + padding[2],\n      r: componentModel.get('borderRadius')\n    },\n    style: style,\n    silent: true,\n    z2: -1\n  });\n  return rect;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as textContain from 'zrender/lib/contain/text';\nimport * as graphic from '../../util/graphic';\nimport { enterEmphasis, leaveEmphasis } from '../../util/states';\nimport Model from '../../model/Model';\nimport DataDiffer from '../../data/DataDiffer';\nimport * as listComponentHelper from '../helper/listComponent';\nimport ComponentView from '../../view/Component';\nimport { ToolboxFeature, getFeature } from './featureManager';\nimport { getUID } from '../../util/component';\nimport ZRText from 'zrender/lib/graphic/Text';\n\nvar ToolboxView = function (_super) {\n  __extends(ToolboxView, _super);\n\n  function ToolboxView() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  ToolboxView.prototype.render = function (toolboxModel, ecModel, api, payload) {\n    var group = this.group;\n    group.removeAll();\n\n    if (!toolboxModel.get('show')) {\n      return;\n    }\n\n    var itemSize = +toolboxModel.get('itemSize');\n    var featureOpts = toolboxModel.get('feature') || {};\n    var features = this._features || (this._features = {});\n    var featureNames = [];\n    zrUtil.each(featureOpts, function (opt, name) {\n      featureNames.push(name);\n    });\n    new DataDiffer(this._featureNames || [], featureNames).add(processFeature).update(processFeature).remove(zrUtil.curry(processFeature, null)).execute();\n    this._featureNames = featureNames;\n\n    function processFeature(newIndex, oldIndex) {\n      var featureName = featureNames[newIndex];\n      var oldName = featureNames[oldIndex];\n      var featureOpt = featureOpts[featureName];\n      var featureModel = new Model(featureOpt, toolboxModel, toolboxModel.ecModel);\n      var feature;\n\n      if (payload && payload.newTitle != null && payload.featureName === featureName) {\n        featureOpt.title = payload.newTitle;\n      }\n\n      if (featureName && !oldName) {\n        if (isUserFeatureName(featureName)) {\n          feature = {\n            onclick: featureModel.option.onclick,\n            featureName: featureName\n          };\n        } else {\n          var Feature = getFeature(featureName);\n\n          if (!Feature) {\n            return;\n          }\n\n          feature = new Feature();\n        }\n\n        features[featureName] = feature;\n      } else {\n        feature = features[oldName];\n\n        if (!feature) {\n          return;\n        }\n      }\n\n      feature.uid = getUID('toolbox-feature');\n      feature.model = featureModel;\n      feature.ecModel = ecModel;\n      feature.api = api;\n\n      if (feature instanceof ToolboxFeature) {\n        if (!featureName && oldName) {\n          feature.dispose && feature.dispose(ecModel, api);\n          return;\n        }\n\n        if (!featureModel.get('show') || feature.unusable) {\n          feature.remove && feature.remove(ecModel, api);\n          return;\n        }\n      }\n\n      createIconPaths(featureModel, feature, featureName);\n\n      featureModel.setIconStatus = function (iconName, status) {\n        var option = this.option;\n        var iconPaths = this.iconPaths;\n        option.iconStatus = option.iconStatus || {};\n        option.iconStatus[iconName] = status;\n\n        if (iconPaths[iconName]) {\n          (status === 'emphasis' ? enterEmphasis : leaveEmphasis)(iconPaths[iconName]);\n        }\n      };\n\n      if (feature instanceof ToolboxFeature) {\n        if (feature.render) {\n          feature.render(featureModel, ecModel, api, payload);\n        }\n      }\n    }\n\n    function createIconPaths(featureModel, feature, featureName) {\n      var iconStyleModel = featureModel.getModel('iconStyle');\n      var iconStyleEmphasisModel = featureModel.getModel(['emphasis', 'iconStyle']);\n      var icons = feature instanceof ToolboxFeature && feature.getIcons ? feature.getIcons() : featureModel.get('icon');\n      var titles = featureModel.get('title') || {};\n      var iconsMap;\n      var titlesMap;\n\n      if (typeof icons === 'string') {\n        iconsMap = {};\n        iconsMap[featureName] = icons;\n      } else {\n        iconsMap = icons;\n      }\n\n      if (typeof titles === 'string') {\n        titlesMap = {};\n        titlesMap[featureName] = titles;\n      } else {\n        titlesMap = titles;\n      }\n\n      var iconPaths = featureModel.iconPaths = {};\n      zrUtil.each(iconsMap, function (iconStr, iconName) {\n        var path = graphic.createIcon(iconStr, {}, {\n          x: -itemSize / 2,\n          y: -itemSize / 2,\n          width: itemSize,\n          height: itemSize\n        });\n        path.setStyle(iconStyleModel.getItemStyle());\n        var pathEmphasisState = path.ensureState('emphasis');\n        pathEmphasisState.style = iconStyleEmphasisModel.getItemStyle();\n        var textContent = new ZRText({\n          style: {\n            text: titlesMap[iconName],\n            align: iconStyleEmphasisModel.get('textAlign'),\n            borderRadius: iconStyleEmphasisModel.get('textBorderRadius'),\n            padding: iconStyleEmphasisModel.get('textPadding'),\n            fill: null\n          },\n          ignore: true\n        });\n        path.setTextContent(textContent);\n        var tooltipModel = toolboxModel.getModel('tooltip');\n\n        if (tooltipModel && tooltipModel.get('show')) {\n          path.tooltip = zrUtil.extend({\n            content: titlesMap[iconName],\n            formatter: tooltipModel.get('formatter', true) || function () {\n              return titlesMap[iconName];\n            },\n            formatterParams: {\n              componentType: 'toolbox',\n              name: iconName,\n              title: titlesMap[iconName],\n              $vars: ['name', 'title']\n            },\n            position: tooltipModel.get('position', true) || 'bottom'\n          }, tooltipModel.option);\n        }\n\n        path.__title = titlesMap[iconName];\n        path.on('mouseover', function () {\n          var hoverStyle = iconStyleEmphasisModel.getItemStyle();\n          var defaultTextPosition = toolboxModel.get('orient') === 'vertical' ? toolboxModel.get('right') == null ? 'right' : 'left' : toolboxModel.get('bottom') == null ? 'bottom' : 'top';\n          textContent.setStyle({\n            fill: iconStyleEmphasisModel.get('textFill') || hoverStyle.fill || hoverStyle.stroke || '#000',\n            backgroundColor: iconStyleEmphasisModel.get('textBackgroundColor')\n          });\n          path.setTextConfig({\n            position: iconStyleEmphasisModel.get('textPosition') || defaultTextPosition\n          });\n          textContent.ignore = !toolboxModel.get('showTitle');\n          enterEmphasis(this);\n        }).on('mouseout', function () {\n          if (featureModel.get(['iconStatus', iconName]) !== 'emphasis') {\n            leaveEmphasis(this);\n          }\n\n          textContent.hide();\n        });\n        (featureModel.get(['iconStatus', iconName]) === 'emphasis' ? enterEmphasis : leaveEmphasis)(path);\n        group.add(path);\n        path.on('click', zrUtil.bind(feature.onclick, feature, ecModel, api, iconName));\n        iconPaths[iconName] = path;\n      });\n    }\n\n    listComponentHelper.layout(group, toolboxModel, api);\n    group.add(listComponentHelper.makeBackground(group.getBoundingRect(), toolboxModel));\n    group.eachChild(function (icon) {\n      var titleText = icon.__title;\n      var emphasisState = icon.ensureState('emphasis');\n      var emphasisTextConfig = emphasisState.textConfig || (emphasisState.textConfig = {});\n      var textContent = icon.getTextContent();\n      var emphasisTextState = textContent && textContent.states.emphasis;\n\n      if (emphasisTextState && !zrUtil.isFunction(emphasisTextState) && titleText) {\n        var emphasisTextStyle = emphasisTextState.style || (emphasisTextState.style = {});\n        var rect = textContain.getBoundingRect(titleText, ZRText.makeFont(emphasisTextStyle));\n        var offsetX = icon.x + group.x;\n        var offsetY = icon.y + group.y + itemSize;\n        var needPutOnTop = false;\n\n        if (offsetY + rect.height > api.getHeight()) {\n          emphasisTextConfig.position = 'top';\n          needPutOnTop = true;\n        }\n\n        var topOffset = needPutOnTop ? -5 - rect.height : itemSize + 8;\n\n        if (offsetX + rect.width / 2 > api.getWidth()) {\n          emphasisTextConfig.position = ['100%', topOffset];\n          emphasisTextStyle.align = 'right';\n        } else if (offsetX - rect.width / 2 < 0) {\n          emphasisTextConfig.position = [0, topOffset];\n          emphasisTextStyle.align = 'left';\n        }\n      }\n    });\n  };\n\n  ToolboxView.prototype.updateView = function (toolboxModel, ecModel, api, payload) {\n    zrUtil.each(this._features, function (feature) {\n      feature instanceof ToolboxFeature && feature.updateView && feature.updateView(feature.model, ecModel, api, payload);\n    });\n  };\n\n  ToolboxView.prototype.remove = function (ecModel, api) {\n    zrUtil.each(this._features, function (feature) {\n      feature instanceof ToolboxFeature && feature.remove && feature.remove(ecModel, api);\n    });\n    this.group.removeAll();\n  };\n\n  ToolboxView.prototype.dispose = function (ecModel, api) {\n    zrUtil.each(this._features, function (feature) {\n      feature instanceof ToolboxFeature && feature.dispose && feature.dispose(ecModel, api);\n    });\n  };\n\n  ToolboxView.type = 'toolbox';\n  return ToolboxView;\n}(ComponentView);\n\nfunction isUserFeatureName(featureName) {\n  return featureName.indexOf('my') === 0;\n}\n\nexport default ToolboxView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport env from 'zrender/lib/core/env';\nimport { ToolboxFeature } from '../featureManager';\n\nvar SaveAsImage = function (_super) {\n  __extends(SaveAsImage, _super);\n\n  function SaveAsImage() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  SaveAsImage.prototype.onclick = function (ecModel, api) {\n    var model = this.model;\n    var title = model.get('name') || ecModel.get('title.0.text') || 'echarts';\n    var isSvg = api.getZr().painter.getType() === 'svg';\n    var type = isSvg ? 'svg' : model.get('type', true) || 'png';\n    var url = api.getConnectedDataURL({\n      type: type,\n      backgroundColor: model.get('backgroundColor', true) || ecModel.get('backgroundColor') || '#fff',\n      connectedBackgroundColor: model.get('connectedBackgroundColor'),\n      excludeComponents: model.get('excludeComponents'),\n      pixelRatio: model.get('pixelRatio')\n    });\n\n    if (typeof MouseEvent === 'function' && (env.browser.newEdge || !env.browser.ie && !env.browser.edge)) {\n      var $a = document.createElement('a');\n      $a.download = title + '.' + type;\n      $a.target = '_blank';\n      $a.href = url;\n      var evt = new MouseEvent('click', {\n        view: document.defaultView,\n        bubbles: true,\n        cancelable: false\n      });\n      $a.dispatchEvent(evt);\n    } else {\n      if (window.navigator.msSaveOrOpenBlob || isSvg) {\n        var parts = url.split(',');\n        var base64Encoded = parts[0].indexOf('base64') > -1;\n        var bstr = isSvg ? decodeURIComponent(parts[1]) : parts[1];\n        base64Encoded && (bstr = atob(bstr));\n        var filename = title + '.' + type;\n\n        if (window.navigator.msSaveOrOpenBlob) {\n          var n = bstr.length;\n          var u8arr = new Uint8Array(n);\n\n          while (n--) {\n            u8arr[n] = bstr.charCodeAt(n);\n          }\n\n          var blob = new Blob([u8arr]);\n          window.navigator.msSaveOrOpenBlob(blob, filename);\n        } else {\n          var frame = document.createElement('iframe');\n          document.body.appendChild(frame);\n          var cw = frame.contentWindow;\n          var doc = cw.document;\n          doc.open('image/svg+xml', 'replace');\n          doc.write(bstr);\n          doc.close();\n          cw.focus();\n          doc.execCommand('SaveAs', true, filename);\n          document.body.removeChild(frame);\n        }\n      } else {\n        var lang = model.get('lang');\n        var html = '' + '<body style=\"margin:0;\">' + '<img src=\"' + url + '\" style=\"max-width:100%;\" title=\"' + (lang && lang[0] || '') + '\" />' + '</body>';\n        var tab = window.open();\n        tab.document.write(html);\n        tab.document.title = title;\n      }\n    }\n  };\n\n  SaveAsImage.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      icon: 'M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0',\n      title: ecModel.getLocale(['toolbox', 'saveAsImage', 'title']),\n      type: 'png',\n      connectedBackgroundColor: '#fff',\n      name: '',\n      excludeComponents: ['toolbox'],\n      pixelRatio: 1,\n      lang: ecModel.getLocale(['toolbox', 'saveAsImage', 'lang'])\n    };\n    return defaultOption;\n  };\n\n  return SaveAsImage;\n}(ToolboxFeature);\n\nSaveAsImage.prototype.unusable = !env.canvasSupported;\nexport default SaveAsImage;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as echarts from '../../../core/echarts';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { ToolboxFeature } from '../featureManager';\nimport { SINGLE_REFERRING } from '../../../util/model';\nvar INNER_STACK_KEYWORD = '__ec_magicType_stack__';\nvar ICON_TYPES = ['line', 'bar', 'stack'];\nvar TITLE_TYPES = ['line', 'bar', 'stack', 'tiled'];\nvar radioTypes = [['line', 'bar'], ['stack']];\n\nvar MagicType = function (_super) {\n  __extends(MagicType, _super);\n\n  function MagicType() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  MagicType.prototype.getIcons = function () {\n    var model = this.model;\n    var availableIcons = model.get('icon');\n    var icons = {};\n    zrUtil.each(model.get('type'), function (type) {\n      if (availableIcons[type]) {\n        icons[type] = availableIcons[type];\n      }\n    });\n    return icons;\n  };\n\n  MagicType.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      type: [],\n      icon: {\n        line: 'M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4',\n        bar: 'M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7',\n        stack: 'M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z'\n      },\n      title: ecModel.getLocale(['toolbox', 'magicType', 'title']),\n      option: {},\n      seriesIndex: {}\n    };\n    return defaultOption;\n  };\n\n  MagicType.prototype.onclick = function (ecModel, api, type) {\n    var model = this.model;\n    var seriesIndex = model.get(['seriesIndex', type]);\n\n    if (!seriesOptGenreator[type]) {\n      return;\n    }\n\n    var newOption = {\n      series: []\n    };\n\n    var generateNewSeriesTypes = function (seriesModel) {\n      var seriesType = seriesModel.subType;\n      var seriesId = seriesModel.id;\n      var newSeriesOpt = seriesOptGenreator[type](seriesType, seriesId, seriesModel, model);\n\n      if (newSeriesOpt) {\n        zrUtil.defaults(newSeriesOpt, seriesModel.option);\n        newOption.series.push(newSeriesOpt);\n      }\n\n      var coordSys = seriesModel.coordinateSystem;\n\n      if (coordSys && coordSys.type === 'cartesian2d' && (type === 'line' || type === 'bar')) {\n        var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\n\n        if (categoryAxis) {\n          var axisDim = categoryAxis.dim;\n          var axisType = axisDim + 'Axis';\n          var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\n          var axisIndex = axisModel.componentIndex;\n          newOption[axisType] = newOption[axisType] || [];\n\n          for (var i = 0; i <= axisIndex; i++) {\n            newOption[axisType][axisIndex] = newOption[axisType][axisIndex] || {};\n          }\n\n          newOption[axisType][axisIndex].boundaryGap = type === 'bar';\n        }\n      }\n    };\n\n    zrUtil.each(radioTypes, function (radio) {\n      if (zrUtil.indexOf(radio, type) >= 0) {\n        zrUtil.each(radio, function (item) {\n          model.setIconStatus(item, 'normal');\n        });\n      }\n    });\n    model.setIconStatus(type, 'emphasis');\n    ecModel.eachComponent({\n      mainType: 'series',\n      query: seriesIndex == null ? null : {\n        seriesIndex: seriesIndex\n      }\n    }, generateNewSeriesTypes);\n    var newTitle;\n\n    if (type === 'stack') {\n      newTitle = zrUtil.merge({\n        stack: model.option.title.tiled,\n        tiled: model.option.title.stack\n      }, model.option.title);\n    }\n\n    api.dispatchAction({\n      type: 'changeMagicType',\n      currentType: type,\n      newOption: newOption,\n      newTitle: newTitle,\n      featureName: 'magicType'\n    });\n  };\n\n  return MagicType;\n}(ToolboxFeature);\n\nvar seriesOptGenreator = {\n  'line': function (seriesType, seriesId, seriesModel, model) {\n    if (seriesType === 'bar') {\n      return zrUtil.merge({\n        id: seriesId,\n        type: 'line',\n        data: seriesModel.get('data'),\n        stack: seriesModel.get('stack'),\n        markPoint: seriesModel.get('markPoint'),\n        markLine: seriesModel.get('markLine')\n      }, model.get(['option', 'line']) || {}, true);\n    }\n  },\n  'bar': function (seriesType, seriesId, seriesModel, model) {\n    if (seriesType === 'line') {\n      return zrUtil.merge({\n        id: seriesId,\n        type: 'bar',\n        data: seriesModel.get('data'),\n        stack: seriesModel.get('stack'),\n        markPoint: seriesModel.get('markPoint'),\n        markLine: seriesModel.get('markLine')\n      }, model.get(['option', 'bar']) || {}, true);\n    }\n  },\n  'stack': function (seriesType, seriesId, seriesModel, model) {\n    var isStack = seriesModel.get('stack') === INNER_STACK_KEYWORD;\n\n    if (seriesType === 'line' || seriesType === 'bar') {\n      model.setIconStatus('stack', isStack ? 'normal' : 'emphasis');\n      return zrUtil.merge({\n        id: seriesId,\n        stack: isStack ? '' : INNER_STACK_KEYWORD\n      }, model.get(['option', 'stack']) || {}, true);\n    }\n  }\n};\necharts.registerAction({\n  type: 'changeMagicType',\n  event: 'magicTypeChanged',\n  update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n  ecModel.mergeOption(payload.newOption);\n});\nexport default MagicType;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as echarts from '../../../core/echarts';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { ToolboxFeature } from '../featureManager';\nimport { addEventListener } from 'zrender/lib/core/event';\nvar BLOCK_SPLITER = new Array(60).join('-');\nvar ITEM_SPLITER = '\\t';\n\nfunction groupSeries(ecModel) {\n  var seriesGroupByCategoryAxis = {};\n  var otherSeries = [];\n  var meta = [];\n  ecModel.eachRawSeries(function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys && (coordSys.type === 'cartesian2d' || coordSys.type === 'polar')) {\n      var baseAxis = coordSys.getBaseAxis();\n\n      if (baseAxis.type === 'category') {\n        var key = baseAxis.dim + '_' + baseAxis.index;\n\n        if (!seriesGroupByCategoryAxis[key]) {\n          seriesGroupByCategoryAxis[key] = {\n            categoryAxis: baseAxis,\n            valueAxis: coordSys.getOtherAxis(baseAxis),\n            series: []\n          };\n          meta.push({\n            axisDim: baseAxis.dim,\n            axisIndex: baseAxis.index\n          });\n        }\n\n        seriesGroupByCategoryAxis[key].series.push(seriesModel);\n      } else {\n        otherSeries.push(seriesModel);\n      }\n    } else {\n      otherSeries.push(seriesModel);\n    }\n  });\n  return {\n    seriesGroupByCategoryAxis: seriesGroupByCategoryAxis,\n    other: otherSeries,\n    meta: meta\n  };\n}\n\nfunction assembleSeriesWithCategoryAxis(groups) {\n  var tables = [];\n  zrUtil.each(groups, function (group, key) {\n    var categoryAxis = group.categoryAxis;\n    var valueAxis = group.valueAxis;\n    var valueAxisDim = valueAxis.dim;\n    var headers = [' '].concat(zrUtil.map(group.series, function (series) {\n      return series.name;\n    }));\n    var columns = [categoryAxis.model.getCategories()];\n    zrUtil.each(group.series, function (series) {\n      var rawData = series.getRawData();\n      columns.push(series.getRawData().mapArray(rawData.mapDimension(valueAxisDim), function (val) {\n        return val;\n      }));\n    });\n    var lines = [headers.join(ITEM_SPLITER)];\n\n    for (var i = 0; i < columns[0].length; i++) {\n      var items = [];\n\n      for (var j = 0; j < columns.length; j++) {\n        items.push(columns[j][i]);\n      }\n\n      lines.push(items.join(ITEM_SPLITER));\n    }\n\n    tables.push(lines.join('\\n'));\n  });\n  return tables.join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\n}\n\nfunction assembleOtherSeries(series) {\n  return zrUtil.map(series, function (series) {\n    var data = series.getRawData();\n    var lines = [series.name];\n    var vals = [];\n    data.each(data.dimensions, function () {\n      var argLen = arguments.length;\n      var dataIndex = arguments[argLen - 1];\n      var name = data.getName(dataIndex);\n\n      for (var i = 0; i < argLen - 1; i++) {\n        vals[i] = arguments[i];\n      }\n\n      lines.push((name ? name + ITEM_SPLITER : '') + vals.join(ITEM_SPLITER));\n    });\n    return lines.join('\\n');\n  }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n');\n}\n\nfunction getContentFromModel(ecModel) {\n  var result = groupSeries(ecModel);\n  return {\n    value: zrUtil.filter([assembleSeriesWithCategoryAxis(result.seriesGroupByCategoryAxis), assembleOtherSeries(result.other)], function (str) {\n      return !!str.replace(/[\\n\\t\\s]/g, '');\n    }).join('\\n\\n' + BLOCK_SPLITER + '\\n\\n'),\n    meta: result.meta\n  };\n}\n\nfunction trim(str) {\n  return str.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n}\n\nfunction isTSVFormat(block) {\n  var firstLine = block.slice(0, block.indexOf('\\n'));\n\n  if (firstLine.indexOf(ITEM_SPLITER) >= 0) {\n    return true;\n  }\n}\n\nvar itemSplitRegex = new RegExp('[' + ITEM_SPLITER + ']+', 'g');\n\nfunction parseTSVContents(tsv) {\n  var tsvLines = tsv.split(/\\n+/g);\n  var headers = trim(tsvLines.shift()).split(itemSplitRegex);\n  var categories = [];\n  var series = zrUtil.map(headers, function (header) {\n    return {\n      name: header,\n      data: []\n    };\n  });\n\n  for (var i = 0; i < tsvLines.length; i++) {\n    var items = trim(tsvLines[i]).split(itemSplitRegex);\n    categories.push(items.shift());\n\n    for (var j = 0; j < items.length; j++) {\n      series[j] && (series[j].data[i] = items[j]);\n    }\n  }\n\n  return {\n    series: series,\n    categories: categories\n  };\n}\n\nfunction parseListContents(str) {\n  var lines = str.split(/\\n+/g);\n  var seriesName = trim(lines.shift());\n  var data = [];\n\n  for (var i = 0; i < lines.length; i++) {\n    var line = trim(lines[i]);\n\n    if (!line) {\n      continue;\n    }\n\n    var items = line.split(itemSplitRegex);\n    var name_1 = '';\n    var value = void 0;\n    var hasName = false;\n\n    if (isNaN(items[0])) {\n      hasName = true;\n      name_1 = items[0];\n      items = items.slice(1);\n      data[i] = {\n        name: name_1,\n        value: []\n      };\n      value = data[i].value;\n    } else {\n      value = data[i] = [];\n    }\n\n    for (var j = 0; j < items.length; j++) {\n      value.push(+items[j]);\n    }\n\n    if (value.length === 1) {\n      hasName ? data[i].value = value[0] : data[i] = value[0];\n    }\n  }\n\n  return {\n    name: seriesName,\n    data: data\n  };\n}\n\nfunction parseContents(str, blockMetaList) {\n  var blocks = str.split(new RegExp('\\n*' + BLOCK_SPLITER + '\\n*', 'g'));\n  var newOption = {\n    series: []\n  };\n  zrUtil.each(blocks, function (block, idx) {\n    if (isTSVFormat(block)) {\n      var result = parseTSVContents(block);\n      var blockMeta = blockMetaList[idx];\n      var axisKey = blockMeta.axisDim + 'Axis';\n\n      if (blockMeta) {\n        newOption[axisKey] = newOption[axisKey] || [];\n        newOption[axisKey][blockMeta.axisIndex] = {\n          data: result.categories\n        };\n        newOption.series = newOption.series.concat(result.series);\n      }\n    } else {\n      var result = parseListContents(block);\n      newOption.series.push(result);\n    }\n  });\n  return newOption;\n}\n\nvar DataView = function (_super) {\n  __extends(DataView, _super);\n\n  function DataView() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  DataView.prototype.onclick = function (ecModel, api) {\n    var container = api.getDom();\n    var model = this.model;\n\n    if (this._dom) {\n      container.removeChild(this._dom);\n    }\n\n    var root = document.createElement('div');\n    root.style.cssText = 'position:absolute;left:5px;top:5px;bottom:5px;right:5px;';\n    root.style.backgroundColor = model.get('backgroundColor') || '#fff';\n    var header = document.createElement('h4');\n    var lang = model.get('lang') || [];\n    header.innerHTML = lang[0] || model.get('title');\n    header.style.cssText = 'margin: 10px 20px;';\n    header.style.color = model.get('textColor');\n    var viewMain = document.createElement('div');\n    var textarea = document.createElement('textarea');\n    viewMain.style.cssText = 'display:block;width:100%;overflow:auto;';\n    var optionToContent = model.get('optionToContent');\n    var contentToOption = model.get('contentToOption');\n    var result = getContentFromModel(ecModel);\n\n    if (typeof optionToContent === 'function') {\n      var htmlOrDom = optionToContent(api.getOption());\n\n      if (typeof htmlOrDom === 'string') {\n        viewMain.innerHTML = htmlOrDom;\n      } else if (zrUtil.isDom(htmlOrDom)) {\n        viewMain.appendChild(htmlOrDom);\n      }\n    } else {\n      viewMain.appendChild(textarea);\n      textarea.readOnly = model.get('readOnly');\n      textarea.style.cssText = 'width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;';\n      textarea.style.color = model.get('textColor');\n      textarea.style.borderColor = model.get('textareaBorderColor');\n      textarea.style.backgroundColor = model.get('textareaColor');\n      textarea.value = result.value;\n    }\n\n    var blockMetaList = result.meta;\n    var buttonContainer = document.createElement('div');\n    buttonContainer.style.cssText = 'position:absolute;bottom:0;left:0;right:0;';\n    var buttonStyle = 'float:right;margin-right:20px;border:none;' + 'cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px';\n    var closeButton = document.createElement('div');\n    var refreshButton = document.createElement('div');\n    buttonStyle += ';background-color:' + model.get('buttonColor');\n    buttonStyle += ';color:' + model.get('buttonTextColor');\n    var self = this;\n\n    function close() {\n      container.removeChild(root);\n      self._dom = null;\n    }\n\n    addEventListener(closeButton, 'click', close);\n    addEventListener(refreshButton, 'click', function () {\n      if (contentToOption == null && optionToContent != null || contentToOption != null && optionToContent == null) {\n        if (process.env.NODE_ENV !== 'production') {\n          console.warn('It seems you have just provided one of `contentToOption` and `optionToContent` functions but missed the other one. Data change is ignored.');\n        }\n\n        close();\n        return;\n      }\n\n      var newOption;\n\n      try {\n        if (typeof contentToOption === 'function') {\n          newOption = contentToOption(viewMain, api.getOption());\n        } else {\n          newOption = parseContents(textarea.value, blockMetaList);\n        }\n      } catch (e) {\n        close();\n        throw new Error('Data view format error ' + e);\n      }\n\n      if (newOption) {\n        api.dispatchAction({\n          type: 'changeDataView',\n          newOption: newOption\n        });\n      }\n\n      close();\n    });\n    closeButton.innerHTML = lang[1];\n    refreshButton.innerHTML = lang[2];\n    refreshButton.style.cssText = buttonStyle;\n    closeButton.style.cssText = buttonStyle;\n    !model.get('readOnly') && buttonContainer.appendChild(refreshButton);\n    buttonContainer.appendChild(closeButton);\n    root.appendChild(header);\n    root.appendChild(viewMain);\n    root.appendChild(buttonContainer);\n    viewMain.style.height = container.clientHeight - 80 + 'px';\n    container.appendChild(root);\n    this._dom = root;\n  };\n\n  DataView.prototype.remove = function (ecModel, api) {\n    this._dom && api.getDom().removeChild(this._dom);\n  };\n\n  DataView.prototype.dispose = function (ecModel, api) {\n    this.remove(ecModel, api);\n  };\n\n  DataView.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      readOnly: false,\n      optionToContent: null,\n      contentToOption: null,\n      icon: 'M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28',\n      title: ecModel.getLocale(['toolbox', 'dataView', 'title']),\n      lang: ecModel.getLocale(['toolbox', 'dataView', 'lang']),\n      backgroundColor: '#fff',\n      textColor: '#000',\n      textareaColor: '#fff',\n      textareaBorderColor: '#333',\n      buttonColor: '#c23531',\n      buttonTextColor: '#fff'\n    };\n    return defaultOption;\n  };\n\n  return DataView;\n}(ToolboxFeature);\n\nfunction tryMergeDataOption(newData, originalData) {\n  return zrUtil.map(newData, function (newVal, idx) {\n    var original = originalData && originalData[idx];\n\n    if (zrUtil.isObject(original) && !zrUtil.isArray(original)) {\n      var newValIsObject = zrUtil.isObject(newVal) && !zrUtil.isArray(newVal);\n\n      if (!newValIsObject) {\n        newVal = {\n          value: newVal\n        };\n      }\n\n      var shouldDeleteName = original.name != null && newVal.name == null;\n      newVal = zrUtil.defaults(newVal, original);\n      shouldDeleteName && delete newVal.name;\n      return newVal;\n    } else {\n      return newVal;\n    }\n  });\n}\n\necharts.registerAction({\n  type: 'changeDataView',\n  event: 'dataViewChanged',\n  update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n  var newSeriesOptList = [];\n  zrUtil.each(payload.newOption.series, function (seriesOpt) {\n    var seriesModel = ecModel.getSeriesByName(seriesOpt.name)[0];\n\n    if (!seriesModel) {\n      newSeriesOptList.push(zrUtil.extend({\n        type: 'scatter'\n      }, seriesOpt));\n    } else {\n      var originalData = seriesModel.get('data');\n      newSeriesOptList.push({\n        name: seriesOpt.name,\n        data: tryMergeDataOption(seriesOpt.data, originalData)\n      });\n    }\n  });\n  ecModel.mergeOption(zrUtil.defaults({\n    series: newSeriesOptList\n  }, payload.newOption));\n});\nexport default DataView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { makeInner } from '../../util/model';\nvar each = zrUtil.each;\nvar inner = makeInner();\nexport function push(ecModel, newSnapshot) {\n  var storedSnapshots = getStoreSnapshots(ecModel);\n  each(newSnapshot, function (batchItem, dataZoomId) {\n    var i = storedSnapshots.length - 1;\n\n    for (; i >= 0; i--) {\n      var snapshot = storedSnapshots[i];\n\n      if (snapshot[dataZoomId]) {\n        break;\n      }\n    }\n\n    if (i < 0) {\n      var dataZoomModel = ecModel.queryComponents({\n        mainType: 'dataZoom',\n        subType: 'select',\n        id: dataZoomId\n      })[0];\n\n      if (dataZoomModel) {\n        var percentRange = dataZoomModel.getPercentRange();\n        storedSnapshots[0][dataZoomId] = {\n          dataZoomId: dataZoomId,\n          start: percentRange[0],\n          end: percentRange[1]\n        };\n      }\n    }\n  });\n  storedSnapshots.push(newSnapshot);\n}\nexport function pop(ecModel) {\n  var storedSnapshots = getStoreSnapshots(ecModel);\n  var head = storedSnapshots[storedSnapshots.length - 1];\n  storedSnapshots.length > 1 && storedSnapshots.pop();\n  var snapshot = {};\n  each(head, function (batchItem, dataZoomId) {\n    for (var i = storedSnapshots.length - 1; i >= 0; i--) {\n      batchItem = storedSnapshots[i][dataZoomId];\n\n      if (batchItem) {\n        snapshot[dataZoomId] = batchItem;\n        break;\n      }\n    }\n  });\n  return snapshot;\n}\nexport function clear(ecModel) {\n  inner(ecModel).snapshots = null;\n}\nexport function count(ecModel) {\n  return getStoreSnapshots(ecModel).length;\n}\n\nfunction getStoreSnapshots(ecModel) {\n  var store = inner(ecModel);\n\n  if (!store.snapshots) {\n    store.snapshots = [{}];\n  }\n\n  return store.snapshots;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as echarts from '../../../core/echarts';\nimport * as history from '../../dataZoom/history';\nimport { ToolboxFeature } from '../featureManager';\n\nvar RestoreOption = function (_super) {\n  __extends(RestoreOption, _super);\n\n  function RestoreOption() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  RestoreOption.prototype.onclick = function (ecModel, api) {\n    history.clear(ecModel);\n    api.dispatchAction({\n      type: 'restore',\n      from: this.uid\n    });\n  };\n\n  RestoreOption.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      icon: 'M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5',\n      title: ecModel.getLocale(['toolbox', 'restore', 'title'])\n    };\n    return defaultOption;\n  };\n\n  return RestoreOption;\n}(ToolboxFeature);\n\necharts.registerAction({\n  type: 'restore',\n  event: 'restore',\n  update: 'prepareAndUpdate'\n}, function (payload, ecModel) {\n  ecModel.resetOption('recreate');\n});\nexport default RestoreOption;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, indexOf, curry, assert, map, createHashMap } from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport * as brushHelper from './brushHelper';\nimport { parseFinder as modelUtilParseFinder } from '../../util/model';\nvar COORD_CONVERTS = ['dataToPoint', 'pointToData'];\nvar INCLUDE_FINDER_MAIN_TYPES = ['grid', 'xAxis', 'yAxis', 'geo', 'graph', 'polar', 'radiusAxis', 'angleAxis', 'bmap'];\n\nvar BrushTargetManager = function () {\n  function BrushTargetManager(finder, ecModel, opt) {\n    var _this = this;\n\n    this._targetInfoList = [];\n    var foundCpts = parseFinder(ecModel, finder);\n    each(targetInfoBuilders, function (builder, type) {\n      if (!opt || !opt.include || indexOf(opt.include, type) >= 0) {\n        builder(foundCpts, _this._targetInfoList);\n      }\n    });\n  }\n\n  BrushTargetManager.prototype.setOutputRanges = function (areas, ecModel) {\n    this.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) {\n      (area.coordRanges || (area.coordRanges = [])).push(coordRange);\n\n      if (!area.coordRange) {\n        area.coordRange = coordRange;\n        var result = coordConvert[area.brushType](0, coordSys, coordRange);\n        area.__rangeOffset = {\n          offset: diffProcessor[area.brushType](result.values, area.range, [1, 1]),\n          xyMinMax: result.xyMinMax\n        };\n      }\n    });\n    return areas;\n  };\n\n  BrushTargetManager.prototype.matchOutputRanges = function (areas, ecModel, cb) {\n    each(areas, function (area) {\n      var targetInfo = this.findTargetInfo(area, ecModel);\n\n      if (targetInfo && targetInfo !== true) {\n        each(targetInfo.coordSyses, function (coordSys) {\n          var result = coordConvert[area.brushType](1, coordSys, area.range);\n          cb(area, result.values, coordSys, ecModel);\n        });\n      }\n    }, this);\n  };\n\n  BrushTargetManager.prototype.setInputRanges = function (areas, ecModel) {\n    each(areas, function (area) {\n      var targetInfo = this.findTargetInfo(area, ecModel);\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(!targetInfo || targetInfo === true || area.coordRange, 'coordRange must be specified when coord index specified.');\n        assert(!targetInfo || targetInfo !== true || area.range, 'range must be specified in global brush.');\n      }\n\n      area.range = area.range || [];\n\n      if (targetInfo && targetInfo !== true) {\n        area.panelId = targetInfo.panelId;\n        var result = coordConvert[area.brushType](0, targetInfo.coordSys, area.coordRange);\n        var rangeOffset = area.__rangeOffset;\n        area.range = rangeOffset ? diffProcessor[area.brushType](result.values, rangeOffset.offset, getScales(result.xyMinMax, rangeOffset.xyMinMax)) : result.values;\n      }\n    }, this);\n  };\n\n  BrushTargetManager.prototype.makePanelOpts = function (api, getDefaultBrushType) {\n    return map(this._targetInfoList, function (targetInfo) {\n      var rect = targetInfo.getPanelRect();\n      return {\n        panelId: targetInfo.panelId,\n        defaultBrushType: getDefaultBrushType ? getDefaultBrushType(targetInfo) : null,\n        clipPath: brushHelper.makeRectPanelClipPath(rect),\n        isTargetByCursor: brushHelper.makeRectIsTargetByCursor(rect, api, targetInfo.coordSysModel),\n        getLinearBrushOtherExtent: brushHelper.makeLinearBrushOtherExtent(rect)\n      };\n    });\n  };\n\n  BrushTargetManager.prototype.controlSeries = function (area, seriesModel, ecModel) {\n    var targetInfo = this.findTargetInfo(area, ecModel);\n    return targetInfo === true || targetInfo && indexOf(targetInfo.coordSyses, seriesModel.coordinateSystem) >= 0;\n  };\n\n  BrushTargetManager.prototype.findTargetInfo = function (area, ecModel) {\n    var targetInfoList = this._targetInfoList;\n    var foundCpts = parseFinder(ecModel, area);\n\n    for (var i = 0; i < targetInfoList.length; i++) {\n      var targetInfo = targetInfoList[i];\n      var areaPanelId = area.panelId;\n\n      if (areaPanelId) {\n        if (targetInfo.panelId === areaPanelId) {\n          return targetInfo;\n        }\n      } else {\n        for (var j = 0; j < targetInfoMatchers.length; j++) {\n          if (targetInfoMatchers[j](foundCpts, targetInfo)) {\n            return targetInfo;\n          }\n        }\n      }\n    }\n\n    return true;\n  };\n\n  return BrushTargetManager;\n}();\n\nfunction formatMinMax(minMax) {\n  minMax[0] > minMax[1] && minMax.reverse();\n  return minMax;\n}\n\nfunction parseFinder(ecModel, finder) {\n  return modelUtilParseFinder(ecModel, finder, {\n    includeMainTypes: INCLUDE_FINDER_MAIN_TYPES\n  });\n}\n\nvar targetInfoBuilders = {\n  grid: function (foundCpts, targetInfoList) {\n    var xAxisModels = foundCpts.xAxisModels;\n    var yAxisModels = foundCpts.yAxisModels;\n    var gridModels = foundCpts.gridModels;\n    var gridModelMap = createHashMap();\n    var xAxesHas = {};\n    var yAxesHas = {};\n\n    if (!xAxisModels && !yAxisModels && !gridModels) {\n      return;\n    }\n\n    each(xAxisModels, function (axisModel) {\n      var gridModel = axisModel.axis.grid.model;\n      gridModelMap.set(gridModel.id, gridModel);\n      xAxesHas[gridModel.id] = true;\n    });\n    each(yAxisModels, function (axisModel) {\n      var gridModel = axisModel.axis.grid.model;\n      gridModelMap.set(gridModel.id, gridModel);\n      yAxesHas[gridModel.id] = true;\n    });\n    each(gridModels, function (gridModel) {\n      gridModelMap.set(gridModel.id, gridModel);\n      xAxesHas[gridModel.id] = true;\n      yAxesHas[gridModel.id] = true;\n    });\n    gridModelMap.each(function (gridModel) {\n      var grid = gridModel.coordinateSystem;\n      var cartesians = [];\n      each(grid.getCartesians(), function (cartesian, index) {\n        if (indexOf(xAxisModels, cartesian.getAxis('x').model) >= 0 || indexOf(yAxisModels, cartesian.getAxis('y').model) >= 0) {\n          cartesians.push(cartesian);\n        }\n      });\n      targetInfoList.push({\n        panelId: 'grid--' + gridModel.id,\n        gridModel: gridModel,\n        coordSysModel: gridModel,\n        coordSys: cartesians[0],\n        coordSyses: cartesians,\n        getPanelRect: panelRectBuilders.grid,\n        xAxisDeclared: xAxesHas[gridModel.id],\n        yAxisDeclared: yAxesHas[gridModel.id]\n      });\n    });\n  },\n  geo: function (foundCpts, targetInfoList) {\n    each(foundCpts.geoModels, function (geoModel) {\n      var coordSys = geoModel.coordinateSystem;\n      targetInfoList.push({\n        panelId: 'geo--' + geoModel.id,\n        geoModel: geoModel,\n        coordSysModel: geoModel,\n        coordSys: coordSys,\n        coordSyses: [coordSys],\n        getPanelRect: panelRectBuilders.geo\n      });\n    });\n  }\n};\nvar targetInfoMatchers = [function (foundCpts, targetInfo) {\n  var xAxisModel = foundCpts.xAxisModel;\n  var yAxisModel = foundCpts.yAxisModel;\n  var gridModel = foundCpts.gridModel;\n  !gridModel && xAxisModel && (gridModel = xAxisModel.axis.grid.model);\n  !gridModel && yAxisModel && (gridModel = yAxisModel.axis.grid.model);\n  return gridModel && gridModel === targetInfo.gridModel;\n}, function (foundCpts, targetInfo) {\n  var geoModel = foundCpts.geoModel;\n  return geoModel && geoModel === targetInfo.geoModel;\n}];\nvar panelRectBuilders = {\n  grid: function () {\n    return this.coordSys.master.getRect().clone();\n  },\n  geo: function () {\n    var coordSys = this.coordSys;\n    var rect = coordSys.getBoundingRect().clone();\n    rect.applyTransform(graphic.getTransform(coordSys));\n    return rect;\n  }\n};\nvar coordConvert = {\n  lineX: curry(axisConvert, 0),\n  lineY: curry(axisConvert, 1),\n  rect: function (to, coordSys, rangeOrCoordRange) {\n    var xminymin = coordSys[COORD_CONVERTS[to]]([rangeOrCoordRange[0][0], rangeOrCoordRange[1][0]]);\n    var xmaxymax = coordSys[COORD_CONVERTS[to]]([rangeOrCoordRange[0][1], rangeOrCoordRange[1][1]]);\n    var values = [formatMinMax([xminymin[0], xmaxymax[0]]), formatMinMax([xminymin[1], xmaxymax[1]])];\n    return {\n      values: values,\n      xyMinMax: values\n    };\n  },\n  polygon: function (to, coordSys, rangeOrCoordRange) {\n    var xyMinMax = [[Infinity, -Infinity], [Infinity, -Infinity]];\n    var values = map(rangeOrCoordRange, function (item) {\n      var p = coordSys[COORD_CONVERTS[to]](item);\n      xyMinMax[0][0] = Math.min(xyMinMax[0][0], p[0]);\n      xyMinMax[1][0] = Math.min(xyMinMax[1][0], p[1]);\n      xyMinMax[0][1] = Math.max(xyMinMax[0][1], p[0]);\n      xyMinMax[1][1] = Math.max(xyMinMax[1][1], p[1]);\n      return p;\n    });\n    return {\n      values: values,\n      xyMinMax: xyMinMax\n    };\n  }\n};\n\nfunction axisConvert(axisNameIndex, to, coordSys, rangeOrCoordRange) {\n  if (process.env.NODE_ENV !== 'production') {\n    assert(coordSys.type === 'cartesian2d', 'lineX/lineY brush is available only in cartesian2d.');\n  }\n\n  var axis = coordSys.getAxis(['x', 'y'][axisNameIndex]);\n  var values = formatMinMax(map([0, 1], function (i) {\n    return to ? axis.coordToData(axis.toLocalCoord(rangeOrCoordRange[i])) : axis.toGlobalCoord(axis.dataToCoord(rangeOrCoordRange[i]));\n  }));\n  var xyMinMax = [];\n  xyMinMax[axisNameIndex] = values;\n  xyMinMax[1 - axisNameIndex] = [NaN, NaN];\n  return {\n    values: values,\n    xyMinMax: xyMinMax\n  };\n}\n\nvar diffProcessor = {\n  lineX: curry(axisDiffProcessor, 0),\n  lineY: curry(axisDiffProcessor, 1),\n  rect: function (values, refer, scales) {\n    return [[values[0][0] - scales[0] * refer[0][0], values[0][1] - scales[0] * refer[0][1]], [values[1][0] - scales[1] * refer[1][0], values[1][1] - scales[1] * refer[1][1]]];\n  },\n  polygon: function (values, refer, scales) {\n    return map(values, function (item, idx) {\n      return [item[0] - scales[0] * refer[idx][0], item[1] - scales[1] * refer[idx][1]];\n    });\n  }\n};\n\nfunction axisDiffProcessor(axisNameIndex, values, refer, scales) {\n  return [values[0] - scales[axisNameIndex] * refer[0], values[1] - scales[axisNameIndex] * refer[1]];\n}\n\nfunction getScales(xyMinMaxCurr, xyMinMaxOrigin) {\n  var sizeCurr = getSize(xyMinMaxCurr);\n  var sizeOrigin = getSize(xyMinMaxOrigin);\n  var scales = [sizeCurr[0] / sizeOrigin[0], sizeCurr[1] / sizeOrigin[1]];\n  isNaN(scales[0]) && (scales[0] = 1);\n  isNaN(scales[1]) && (scales[1] = 1);\n  return scales;\n}\n\nfunction getSize(xyMinMax) {\n  return xyMinMax ? [xyMinMax[0][1] - xyMinMax[0][0], xyMinMax[1][1] - xyMinMax[1][0]] : [NaN, NaN];\n}\n\nexport default BrushTargetManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BrushController from '../../helper/BrushController';\nimport BrushTargetManager from '../../helper/BrushTargetManager';\nimport * as history from '../../dataZoom/history';\nimport sliderMove from '../../helper/sliderMove';\nimport { ToolboxFeature } from '../featureManager';\nimport { makeInternalComponentId, parseFinder } from '../../../util/model';\nimport { registerInternalOptionCreator } from '../../../model/internalComponentCreator';\nvar each = zrUtil.each;\nvar DATA_ZOOM_ID_BASE = makeInternalComponentId('toolbox-dataZoom_');\nvar ICON_TYPES = ['zoom', 'back'];\n\nvar DataZoomFeature = function (_super) {\n  __extends(DataZoomFeature, _super);\n\n  function DataZoomFeature() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  DataZoomFeature.prototype.render = function (featureModel, ecModel, api, payload) {\n    if (!this.brushController) {\n      this.brushController = new BrushController(api.getZr());\n      this.brushController.on('brush', zrUtil.bind(this._onBrush, this)).mount();\n    }\n\n    updateZoomBtnStatus(featureModel, ecModel, this, payload, api);\n    updateBackBtnStatus(featureModel, ecModel);\n  };\n\n  DataZoomFeature.prototype.onclick = function (ecModel, api, type) {\n    handlers[type].call(this);\n  };\n\n  DataZoomFeature.prototype.remove = function (ecModel, api) {\n    this.brushController.unmount();\n  };\n\n  DataZoomFeature.prototype.dispose = function (ecModel, api) {\n    this.brushController.dispose();\n  };\n\n  DataZoomFeature.prototype._onBrush = function (eventParam) {\n    var areas = eventParam.areas;\n\n    if (!eventParam.isEnd || !areas.length) {\n      return;\n    }\n\n    var snapshot = {};\n    var ecModel = this.ecModel;\n    this.brushController.updateCovers([]);\n    var brushTargetManager = new BrushTargetManager(makeAxisFinder(this.model), ecModel, {\n      include: ['grid']\n    });\n    brushTargetManager.matchOutputRanges(areas, ecModel, function (area, coordRange, coordSys) {\n      if (coordSys.type !== 'cartesian2d') {\n        return;\n      }\n\n      var brushType = area.brushType;\n\n      if (brushType === 'rect') {\n        setBatch('x', coordSys, coordRange[0]);\n        setBatch('y', coordSys, coordRange[1]);\n      } else {\n        setBatch({\n          lineX: 'x',\n          lineY: 'y'\n        }[brushType], coordSys, coordRange);\n      }\n    });\n    history.push(ecModel, snapshot);\n\n    this._dispatchZoomAction(snapshot);\n\n    function setBatch(dimName, coordSys, minMax) {\n      var axis = coordSys.getAxis(dimName);\n      var axisModel = axis.model;\n      var dataZoomModel = findDataZoom(dimName, axisModel, ecModel);\n      var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy(axisModel).getMinMaxSpan();\n\n      if (minMaxSpan.minValueSpan != null || minMaxSpan.maxValueSpan != null) {\n        minMax = sliderMove(0, minMax.slice(), axis.scale.getExtent(), 0, minMaxSpan.minValueSpan, minMaxSpan.maxValueSpan);\n      }\n\n      dataZoomModel && (snapshot[dataZoomModel.id] = {\n        dataZoomId: dataZoomModel.id,\n        startValue: minMax[0],\n        endValue: minMax[1]\n      });\n    }\n\n    function findDataZoom(dimName, axisModel, ecModel) {\n      var found;\n      ecModel.eachComponent({\n        mainType: 'dataZoom',\n        subType: 'select'\n      }, function (dzModel) {\n        var has = dzModel.getAxisModel(dimName, axisModel.componentIndex);\n        has && (found = dzModel);\n      });\n      return found;\n    }\n  };\n\n  ;\n\n  DataZoomFeature.prototype._dispatchZoomAction = function (snapshot) {\n    var batch = [];\n    each(snapshot, function (batchItem, dataZoomId) {\n      batch.push(zrUtil.clone(batchItem));\n    });\n    batch.length && this.api.dispatchAction({\n      type: 'dataZoom',\n      from: this.uid,\n      batch: batch\n    });\n  };\n\n  DataZoomFeature.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      filterMode: 'filter',\n      icon: {\n        zoom: 'M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1',\n        back: 'M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26'\n      },\n      title: ecModel.getLocale(['toolbox', 'dataZoom', 'title']),\n      brushStyle: {\n        borderWidth: 0,\n        color: 'rgba(210,219,238,0.2)'\n      }\n    };\n    return defaultOption;\n  };\n\n  return DataZoomFeature;\n}(ToolboxFeature);\n\nvar handlers = {\n  zoom: function () {\n    var nextActive = !this.isZoomActive;\n    this.api.dispatchAction({\n      type: 'takeGlobalCursor',\n      key: 'dataZoomSelect',\n      dataZoomSelectActive: nextActive\n    });\n  },\n  back: function () {\n    this._dispatchZoomAction(history.pop(this.ecModel));\n  }\n};\n\nfunction makeAxisFinder(dzFeatureModel) {\n  var setting = {\n    xAxisIndex: dzFeatureModel.get('xAxisIndex', true),\n    yAxisIndex: dzFeatureModel.get('yAxisIndex', true),\n    xAxisId: dzFeatureModel.get('xAxisId', true),\n    yAxisId: dzFeatureModel.get('yAxisId', true)\n  };\n\n  if (setting.xAxisIndex == null && setting.xAxisId == null) {\n    setting.xAxisIndex = 'all';\n  }\n\n  if (setting.yAxisIndex == null && setting.yAxisId == null) {\n    setting.yAxisIndex = 'all';\n  }\n\n  return setting;\n}\n\nfunction updateBackBtnStatus(featureModel, ecModel) {\n  featureModel.setIconStatus('back', history.count(ecModel) > 1 ? 'emphasis' : 'normal');\n}\n\nfunction updateZoomBtnStatus(featureModel, ecModel, view, payload, api) {\n  var zoomActive = view.isZoomActive;\n\n  if (payload && payload.type === 'takeGlobalCursor') {\n    zoomActive = payload.key === 'dataZoomSelect' ? payload.dataZoomSelectActive : false;\n  }\n\n  view.isZoomActive = zoomActive;\n  featureModel.setIconStatus('zoom', zoomActive ? 'emphasis' : 'normal');\n  var brushTargetManager = new BrushTargetManager(makeAxisFinder(featureModel), ecModel, {\n    include: ['grid']\n  });\n  var panels = brushTargetManager.makePanelOpts(api, function (targetInfo) {\n    return targetInfo.xAxisDeclared && !targetInfo.yAxisDeclared ? 'lineX' : !targetInfo.xAxisDeclared && targetInfo.yAxisDeclared ? 'lineY' : 'rect';\n  });\n  view.brushController.setPanels(panels).enableBrush(zoomActive && panels.length ? {\n    brushType: 'auto',\n    brushStyle: featureModel.getModel('brushStyle').getItemStyle()\n  } : false);\n}\n\nregisterInternalOptionCreator('dataZoom', function (ecModel) {\n  var toolboxModel = ecModel.getComponent('toolbox', 0);\n\n  if (!toolboxModel) {\n    return;\n  }\n\n  var dzFeatureModel = toolboxModel.getModel(['feature', 'dataZoom']);\n  var dzOptions = [];\n  var finder = makeAxisFinder(dzFeatureModel);\n  var finderResult = parseFinder(ecModel, finder);\n  each(finderResult.xAxisModels, function (axisModel) {\n    return buildInternalOptions(axisModel, 'xAxis', 'xAxisIndex');\n  });\n  each(finderResult.yAxisModels, function (axisModel) {\n    return buildInternalOptions(axisModel, 'yAxis', 'yAxisIndex');\n  });\n\n  function buildInternalOptions(axisModel, axisMainType, axisIndexPropName) {\n    var axisIndex = axisModel.componentIndex;\n    var newOpt = {\n      type: 'select',\n      $fromToolbox: true,\n      filterMode: dzFeatureModel.get('filterMode', true) || 'filter',\n      id: DATA_ZOOM_ID_BASE + axisMainType + axisIndex\n    };\n    newOpt[axisIndexPropName] = axisIndex;\n    dzOptions.push(newOpt);\n  }\n\n  return dzOptions;\n});\nexport default DataZoomFeature;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport { install as installDataZoomSelect } from '../../component/dataZoom/installDataZoomSelect';\nimport ToolboxModel from './ToolboxModel';\nimport ToolboxView from './ToolboxView';\nimport { registerFeature } from './featureManager';\nimport SaveAsImage from './feature/SaveAsImage';\nimport MagicType from './feature/MagicType';\nimport DataView from './feature/DataView';\nimport Restore from './feature/Restore';\nimport DataZoom from './feature/DataZoom';\nexport function install(registers) {\n  registers.registerComponentModel(ToolboxModel);\n  registers.registerComponentView(ToolboxView);\n  registerFeature('saveAsImage', SaveAsImage);\n  registerFeature('magicType', MagicType);\n  registerFeature('dataView', DataView);\n  registerFeature('dataZoom', DataZoom);\n  registerFeature('restore', Restore);\n  use(installDataZoomSelect);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\n\nvar TooltipModel = function (_super) {\n  __extends(TooltipModel, _super);\n\n  function TooltipModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TooltipModel.type;\n    return _this;\n  }\n\n  TooltipModel.type = 'tooltip';\n  TooltipModel.dependencies = ['axisPointer'];\n  TooltipModel.defaultOption = {\n    zlevel: 0,\n    z: 60,\n    show: true,\n    showContent: true,\n    trigger: 'item',\n    triggerOn: 'mousemove|click',\n    alwaysShowContent: false,\n    displayMode: 'single',\n    renderMode: 'auto',\n    confine: null,\n    showDelay: 0,\n    hideDelay: 100,\n    transitionDuration: 0.4,\n    enterable: false,\n    backgroundColor: '#fff',\n    shadowBlur: 10,\n    shadowColor: 'rgba(0, 0, 0, .2)',\n    shadowOffsetX: 1,\n    shadowOffsetY: 2,\n    borderRadius: 4,\n    borderWidth: 1,\n    padding: null,\n    extraCssText: '',\n    axisPointer: {\n      type: 'line',\n      axis: 'auto',\n      animation: 'auto',\n      animationDurationUpdate: 200,\n      animationEasingUpdate: 'exponentialOut',\n      crossStyle: {\n        color: '#999',\n        width: 1,\n        type: 'dashed',\n        textStyle: {}\n      }\n    },\n    textStyle: {\n      color: '#666',\n      fontSize: 14\n    }\n  };\n  return TooltipModel;\n}(ComponentModel);\n\nexport default TooltipModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function shouldTooltipConfine(tooltipModel) {\n  var confineOption = tooltipModel.get('confine');\n  return confineOption != null ? !!confineOption : tooltipModel.get('renderMode') === 'richText';\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isString, indexOf, map, each, bind, isArray, isDom } from 'zrender/lib/core/util';\nimport { toHex } from 'zrender/lib/tool/color';\nimport { normalizeEvent } from 'zrender/lib/core/event';\nimport { transformLocalCoord } from 'zrender/lib/core/dom';\nimport env from 'zrender/lib/core/env';\nimport { convertToColorString, toCamelCase, normalizeCssArray } from '../../util/format';\nimport { shouldTooltipConfine } from './helper';\nimport { getPaddingFromTooltipModel } from './tooltipMarkup';\nvar vendors = ['-ms-', '-moz-', '-o-', '-webkit-', ''];\nvar gCssText = 'position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;';\n\nfunction mirrorPos(pos) {\n  pos = pos === 'left' ? 'right' : pos === 'right' ? 'left' : pos === 'top' ? 'bottom' : 'top';\n  return pos;\n}\n\nfunction assembleArrow(backgroundColor, borderColor, arrowPosition) {\n  if (!isString(arrowPosition) || arrowPosition === 'inside') {\n    return '';\n  }\n\n  borderColor = convertToColorString(borderColor);\n  var arrowPos = mirrorPos(arrowPosition);\n  var positionStyle = '';\n  var transformStyle = '';\n\n  if (indexOf(['left', 'right'], arrowPos) > -1) {\n    positionStyle = arrowPos + \":-6px;top:50%;\";\n    transformStyle = \"translateY(-50%) rotate(\" + (arrowPos === 'left' ? -225 : -45) + \"deg)\";\n  } else {\n    positionStyle = arrowPos + \":-6px;left:50%;\";\n    transformStyle = \"translateX(-50%) rotate(\" + (arrowPos === 'top' ? 225 : 45) + \"deg)\";\n  }\n\n  transformStyle = map(vendors, function (vendorPrefix) {\n    return vendorPrefix + 'transform:' + transformStyle;\n  }).join(';');\n  var styleCss = ['position:absolute;width:10px;height:10px;', \"\" + positionStyle + transformStyle + \";\", \"border-bottom: \" + borderColor + \" solid 1px;\", \"border-right: \" + borderColor + \" solid 1px;\", \"background-color: \" + backgroundColor + \";\", 'box-shadow: 8px 8px 16px -3px #000;'];\n  return \"<div style=\\\"\" + styleCss.join('') + \"\\\"></div>\";\n}\n\nfunction assembleTransition(duration, onlyFade) {\n  var transitionCurve = 'cubic-bezier(0.23, 1, 0.32, 1)';\n  var transitionText = 'opacity ' + duration / 2 + 's ' + transitionCurve + ',' + 'visibility ' + duration / 2 + 's ' + transitionCurve;\n\n  if (!onlyFade) {\n    transitionText += ',left ' + duration + 's ' + transitionCurve + ',top ' + duration + 's ' + transitionCurve;\n  }\n\n  return map(vendors, function (vendorPrefix) {\n    return vendorPrefix + 'transition:' + transitionText;\n  }).join(';');\n}\n\nfunction assembleFont(textStyleModel) {\n  var cssText = [];\n  var fontSize = textStyleModel.get('fontSize');\n  var color = textStyleModel.getTextColor();\n  color && cssText.push('color:' + color);\n  cssText.push('font:' + textStyleModel.getFont());\n  fontSize && cssText.push('line-height:' + Math.round(fontSize * 3 / 2) + 'px');\n  var shadowColor = textStyleModel.get('textShadowColor');\n  var shadowBlur = textStyleModel.get('textShadowBlur') || 0;\n  var shadowOffsetX = textStyleModel.get('textShadowOffsetX') || 0;\n  var shadowOffsetY = textStyleModel.get('textShadowOffsetY') || 0;\n  shadowColor && shadowBlur && cssText.push('text-shadow:' + shadowOffsetX + 'px ' + shadowOffsetY + 'px ' + shadowBlur + 'px ' + shadowColor);\n  each(['decoration', 'align'], function (name) {\n    var val = textStyleModel.get(name);\n    val && cssText.push('text-' + name + ':' + val);\n  });\n  return cssText.join(';');\n}\n\nfunction assembleCssText(tooltipModel, enableTransition, onlyFade) {\n  var cssText = [];\n  var transitionDuration = tooltipModel.get('transitionDuration');\n  var backgroundColor = tooltipModel.get('backgroundColor');\n  var shadowBlur = tooltipModel.get('shadowBlur');\n  var shadowColor = tooltipModel.get('shadowColor');\n  var shadowOffsetX = tooltipModel.get('shadowOffsetX');\n  var shadowOffsetY = tooltipModel.get('shadowOffsetY');\n  var textStyleModel = tooltipModel.getModel('textStyle');\n  var padding = getPaddingFromTooltipModel(tooltipModel, 'html');\n  var boxShadow = shadowOffsetX + \"px \" + shadowOffsetY + \"px \" + shadowBlur + \"px \" + shadowColor;\n  cssText.push('box-shadow:' + boxShadow);\n  enableTransition && transitionDuration && cssText.push(assembleTransition(transitionDuration, onlyFade));\n\n  if (backgroundColor) {\n    if (env.canvasSupported) {\n      cssText.push('background-Color:' + backgroundColor);\n    } else {\n      cssText.push('background-Color:#' + toHex(backgroundColor));\n      cssText.push('filter:alpha(opacity=70)');\n    }\n  }\n\n  each(['width', 'color', 'radius'], function (name) {\n    var borderName = 'border-' + name;\n    var camelCase = toCamelCase(borderName);\n    var val = tooltipModel.get(camelCase);\n    val != null && cssText.push(borderName + ':' + val + (name === 'color' ? '' : 'px'));\n  });\n  cssText.push(assembleFont(textStyleModel));\n\n  if (padding != null) {\n    cssText.push('padding:' + normalizeCssArray(padding).join('px ') + 'px');\n  }\n\n  return cssText.join(';') + ';';\n}\n\nfunction makeStyleCoord(out, zr, appendToBody, zrX, zrY) {\n  var zrPainter = zr && zr.painter;\n\n  if (appendToBody) {\n    var zrViewportRoot = zrPainter && zrPainter.getViewportRoot();\n\n    if (zrViewportRoot) {\n      transformLocalCoord(out, zrViewportRoot, document.body, zrX, zrY);\n    }\n  } else {\n    out[0] = zrX;\n    out[1] = zrY;\n    var viewportRootOffset = zrPainter && zrPainter.getViewportRootOffset();\n\n    if (viewportRootOffset) {\n      out[0] += viewportRootOffset.offsetLeft;\n      out[1] += viewportRootOffset.offsetTop;\n    }\n  }\n\n  out[2] = out[0] / zr.getWidth();\n  out[3] = out[1] / zr.getHeight();\n}\n\nvar TooltipHTMLContent = function () {\n  function TooltipHTMLContent(container, api, opt) {\n    this._show = false;\n    this._styleCoord = [0, 0, 0, 0];\n    this._enterable = true;\n    this._firstShow = true;\n    this._longHide = true;\n\n    if (env.wxa) {\n      return null;\n    }\n\n    var el = document.createElement('div');\n    el.domBelongToZr = true;\n    this.el = el;\n    var zr = this._zr = api.getZr();\n    var appendToBody = this._appendToBody = opt && opt.appendToBody;\n    makeStyleCoord(this._styleCoord, zr, appendToBody, api.getWidth() / 2, api.getHeight() / 2);\n\n    if (appendToBody) {\n      document.body.appendChild(el);\n    } else {\n      container.appendChild(el);\n    }\n\n    this._container = container;\n    var self = this;\n\n    el.onmouseenter = function () {\n      if (self._enterable) {\n        clearTimeout(self._hideTimeout);\n        self._show = true;\n      }\n\n      self._inContent = true;\n    };\n\n    el.onmousemove = function (e) {\n      e = e || window.event;\n\n      if (!self._enterable) {\n        var handler = zr.handler;\n        var zrViewportRoot = zr.painter.getViewportRoot();\n        normalizeEvent(zrViewportRoot, e, true);\n        handler.dispatch('mousemove', e);\n      }\n    };\n\n    el.onmouseleave = function () {\n      self._inContent = false;\n\n      if (self._enterable) {\n        if (self._show) {\n          self.hideLater(self._hideDelay);\n        }\n      }\n    };\n  }\n\n  TooltipHTMLContent.prototype.update = function (tooltipModel) {\n    var container = this._container;\n    var stl = container.currentStyle || document.defaultView.getComputedStyle(container);\n    var domStyle = container.style;\n\n    if (domStyle.position !== 'absolute' && stl.position !== 'absolute') {\n      domStyle.position = 'relative';\n    }\n\n    var alwaysShowContent = tooltipModel.get('alwaysShowContent');\n    alwaysShowContent && this._moveIfResized();\n    this.el.className = tooltipModel.get('className') || '';\n  };\n\n  TooltipHTMLContent.prototype.show = function (tooltipModel, nearPointColor) {\n    clearTimeout(this._hideTimeout);\n    clearTimeout(this._longHideTimeout);\n    var el = this.el;\n    var styleCoord = this._styleCoord;\n    var offset = el.offsetHeight / 2;\n    nearPointColor = convertToColorString(nearPointColor);\n    el.style.cssText = gCssText + assembleCssText(tooltipModel, !this._firstShow, this._longHide) + ';left:' + styleCoord[0] + 'px;top:' + (styleCoord[1] - offset) + 'px;' + (\"border-color: \" + nearPointColor + \";\") + (tooltipModel.get('extraCssText') || '');\n    el.style.display = el.innerHTML ? 'block' : 'none';\n    el.style.pointerEvents = this._enterable ? 'auto' : 'none';\n    this._show = true;\n    this._firstShow = false;\n    this._longHide = false;\n  };\n\n  TooltipHTMLContent.prototype.setContent = function (content, markers, tooltipModel, borderColor, arrowPosition) {\n    if (content == null) {\n      return;\n    }\n\n    var el = this.el;\n\n    if (isString(arrowPosition) && tooltipModel.get('trigger') === 'item' && !shouldTooltipConfine(tooltipModel)) {\n      content += assembleArrow(tooltipModel.get('backgroundColor'), borderColor, arrowPosition);\n    }\n\n    if (isString(content)) {\n      el.innerHTML = content;\n    } else if (content) {\n      el.innerHTML = '';\n\n      if (!isArray(content)) {\n        content = [content];\n      }\n\n      for (var i = 0; i < content.length; i++) {\n        if (isDom(content[i]) && content[i].parentNode !== el) {\n          el.appendChild(content[i]);\n        }\n      }\n    }\n  };\n\n  TooltipHTMLContent.prototype.setEnterable = function (enterable) {\n    this._enterable = enterable;\n  };\n\n  TooltipHTMLContent.prototype.getSize = function () {\n    var el = this.el;\n    return [el.clientWidth, el.clientHeight];\n  };\n\n  TooltipHTMLContent.prototype.moveTo = function (zrX, zrY) {\n    var styleCoord = this._styleCoord;\n    makeStyleCoord(styleCoord, this._zr, this._appendToBody, zrX, zrY);\n\n    if (styleCoord[0] != null && styleCoord[1] != null) {\n      var style = this.el.style;\n      style.left = styleCoord[0].toFixed(0) + 'px';\n      style.top = styleCoord[1].toFixed(0) + 'px';\n    }\n  };\n\n  TooltipHTMLContent.prototype._moveIfResized = function () {\n    var ratioX = this._styleCoord[2];\n    var ratioY = this._styleCoord[3];\n    this.moveTo(ratioX * this._zr.getWidth(), ratioY * this._zr.getHeight());\n  };\n\n  TooltipHTMLContent.prototype.hide = function () {\n    var _this = this;\n\n    this.el.style.visibility = 'hidden';\n    this.el.style.opacity = '0';\n    this._show = false;\n    this._longHideTimeout = setTimeout(function () {\n      return _this._longHide = true;\n    }, 500);\n  };\n\n  TooltipHTMLContent.prototype.hideLater = function (time) {\n    if (this._show && !(this._inContent && this._enterable)) {\n      if (time) {\n        this._hideDelay = time;\n        this._show = false;\n        this._hideTimeout = setTimeout(bind(this.hide, this), time);\n      } else {\n        this.hide();\n      }\n    }\n  };\n\n  TooltipHTMLContent.prototype.isShow = function () {\n    return this._show;\n  };\n\n  TooltipHTMLContent.prototype.dispose = function () {\n    this.el.parentNode.removeChild(this.el);\n  };\n\n  TooltipHTMLContent.prototype.getOuterSize = function () {\n    var width = this.el.clientWidth;\n    var height = this.el.clientHeight;\n\n    if (document.defaultView && document.defaultView.getComputedStyle) {\n      var stl = document.defaultView.getComputedStyle(this.el);\n\n      if (stl) {\n        width += parseInt(stl.borderLeftWidth, 10) + parseInt(stl.borderRightWidth, 10);\n        height += parseInt(stl.borderTopWidth, 10) + parseInt(stl.borderBottomWidth, 10);\n      }\n    }\n\n    return {\n      width: width,\n      height: height\n    };\n  };\n\n  return TooltipHTMLContent;\n}();\n\nexport default TooltipHTMLContent;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ZRText from 'zrender/lib/graphic/Text';\nimport { getPaddingFromTooltipModel } from './tooltipMarkup';\nimport { throwError } from '../../util/log';\n\nvar TooltipRichContent = function () {\n  function TooltipRichContent(api) {\n    this._show = false;\n    this._styleCoord = [0, 0, 0, 0];\n    this._enterable = true;\n    this._zr = api.getZr();\n    makeStyleCoord(this._styleCoord, this._zr, api.getWidth() / 2, api.getHeight() / 2);\n  }\n\n  TooltipRichContent.prototype.update = function (tooltipModel) {\n    var alwaysShowContent = tooltipModel.get('alwaysShowContent');\n    alwaysShowContent && this._moveIfResized();\n  };\n\n  TooltipRichContent.prototype.show = function () {\n    if (this._hideTimeout) {\n      clearTimeout(this._hideTimeout);\n    }\n\n    this.el.show();\n    this._show = true;\n  };\n\n  TooltipRichContent.prototype.setContent = function (content, markupStyleCreator, tooltipModel, borderColor, arrowPosition) {\n    if (zrUtil.isObject(content)) {\n      throwError(process.env.NODE_ENV !== 'production' ? 'Passing DOM nodes as content is not supported in richText tooltip!' : '');\n    }\n\n    if (this.el) {\n      this._zr.remove(this.el);\n    }\n\n    var textStyleModel = tooltipModel.getModel('textStyle');\n    this.el = new ZRText({\n      style: {\n        rich: markupStyleCreator.richTextStyles,\n        text: content,\n        lineHeight: 22,\n        backgroundColor: tooltipModel.get('backgroundColor'),\n        borderRadius: tooltipModel.get('borderRadius'),\n        borderWidth: 1,\n        borderColor: borderColor,\n        shadowColor: tooltipModel.get('shadowColor'),\n        shadowBlur: tooltipModel.get('shadowBlur'),\n        shadowOffsetX: tooltipModel.get('shadowOffsetX'),\n        shadowOffsetY: tooltipModel.get('shadowOffsetY'),\n        textShadowColor: textStyleModel.get('textShadowColor'),\n        textShadowBlur: textStyleModel.get('textShadowBlur') || 0,\n        textShadowOffsetX: textStyleModel.get('textShadowOffsetX') || 0,\n        textShadowOffsetY: textStyleModel.get('textShadowOffsetY') || 0,\n        fill: tooltipModel.get(['textStyle', 'color']),\n        padding: getPaddingFromTooltipModel(tooltipModel, 'richText'),\n        verticalAlign: 'top',\n        align: 'left'\n      },\n      z: tooltipModel.get('z')\n    });\n\n    this._zr.add(this.el);\n\n    var self = this;\n    this.el.on('mouseover', function () {\n      if (self._enterable) {\n        clearTimeout(self._hideTimeout);\n        self._show = true;\n      }\n\n      self._inContent = true;\n    });\n    this.el.on('mouseout', function () {\n      if (self._enterable) {\n        if (self._show) {\n          self.hideLater(self._hideDelay);\n        }\n      }\n\n      self._inContent = false;\n    });\n  };\n\n  TooltipRichContent.prototype.setEnterable = function (enterable) {\n    this._enterable = enterable;\n  };\n\n  TooltipRichContent.prototype.getSize = function () {\n    var el = this.el;\n    var bounding = this.el.getBoundingRect();\n    var shadowOuterSize = calcShadowOuterSize(el.style);\n    return [bounding.width + shadowOuterSize.left + shadowOuterSize.right, bounding.height + shadowOuterSize.top + shadowOuterSize.bottom];\n  };\n\n  TooltipRichContent.prototype.moveTo = function (x, y) {\n    var el = this.el;\n\n    if (el) {\n      var styleCoord = this._styleCoord;\n      makeStyleCoord(styleCoord, this._zr, x, y);\n      x = styleCoord[0];\n      y = styleCoord[1];\n      var style = el.style;\n      var borderWidth = mathMaxWith0(style.borderWidth || 0);\n      var shadowOuterSize = calcShadowOuterSize(style);\n      el.x = x + borderWidth + shadowOuterSize.left;\n      el.y = y + borderWidth + shadowOuterSize.top;\n      el.markRedraw();\n    }\n  };\n\n  TooltipRichContent.prototype._moveIfResized = function () {\n    var ratioX = this._styleCoord[2];\n    var ratioY = this._styleCoord[3];\n    this.moveTo(ratioX * this._zr.getWidth(), ratioY * this._zr.getHeight());\n  };\n\n  TooltipRichContent.prototype.hide = function () {\n    if (this.el) {\n      this.el.hide();\n    }\n\n    this._show = false;\n  };\n\n  TooltipRichContent.prototype.hideLater = function (time) {\n    if (this._show && !(this._inContent && this._enterable)) {\n      if (time) {\n        this._hideDelay = time;\n        this._show = false;\n        this._hideTimeout = setTimeout(zrUtil.bind(this.hide, this), time);\n      } else {\n        this.hide();\n      }\n    }\n  };\n\n  TooltipRichContent.prototype.isShow = function () {\n    return this._show;\n  };\n\n  TooltipRichContent.prototype.getOuterSize = function () {\n    var size = this.getSize();\n    return {\n      width: size[0],\n      height: size[1]\n    };\n  };\n\n  TooltipRichContent.prototype.dispose = function () {\n    this._zr.remove(this.el);\n  };\n\n  return TooltipRichContent;\n}();\n\nfunction mathMaxWith0(val) {\n  return Math.max(0, val);\n}\n\nfunction calcShadowOuterSize(style) {\n  var shadowBlur = mathMaxWith0(style.shadowBlur || 0);\n  var shadowOffsetX = mathMaxWith0(style.shadowOffsetX || 0);\n  var shadowOffsetY = mathMaxWith0(style.shadowOffsetY || 0);\n  return {\n    left: mathMaxWith0(shadowBlur - shadowOffsetX),\n    right: mathMaxWith0(shadowBlur + shadowOffsetX),\n    top: mathMaxWith0(shadowBlur - shadowOffsetY),\n    bottom: mathMaxWith0(shadowBlur + shadowOffsetY)\n  };\n}\n\nfunction makeStyleCoord(out, zr, zrX, zrY) {\n  out[0] = zrX;\n  out[1] = zrY;\n  out[2] = out[0] / zr.getWidth();\n  out[3] = out[1] / zr.getHeight();\n}\n\nexport default TooltipRichContent;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport TooltipHTMLContent from './TooltipHTMLContent';\nimport TooltipRichContent from './TooltipRichContent';\nimport * as formatUtil from '../../util/format';\nimport * as numberUtil from '../../util/number';\nimport * as graphic from '../../util/graphic';\nimport findPointFromSeries from '../axisPointer/findPointFromSeries';\nimport * as layoutUtil from '../../util/layout';\nimport Model from '../../model/Model';\nimport * as globalListener from '../axisPointer/globalListener';\nimport * as axisHelper from '../../coord/axisHelper';\nimport * as axisPointerViewHelper from '../axisPointer/viewHelper';\nimport { getTooltipRenderMode } from '../../util/model';\nimport ComponentView from '../../view/Component';\nimport { format as timeFormat } from '../../util/time';\nimport { getECData } from '../../util/innerStore';\nimport { shouldTooltipConfine } from './helper';\nimport { normalizeTooltipFormatResult } from '../../model/mixin/dataFormat';\nimport { createTooltipMarkup, buildTooltipMarkup, TooltipMarkupStyleCreator } from './tooltipMarkup';\nimport { findEventDispatcher } from '../../util/event';\nvar bind = zrUtil.bind;\nvar each = zrUtil.each;\nvar parsePercent = numberUtil.parsePercent;\nvar proxyRect = new graphic.Rect({\n  shape: {\n    x: -1,\n    y: -1,\n    width: 2,\n    height: 2\n  }\n});\n\nvar TooltipView = function (_super) {\n  __extends(TooltipView, _super);\n\n  function TooltipView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TooltipView.type;\n    return _this;\n  }\n\n  TooltipView.prototype.init = function (ecModel, api) {\n    if (env.node) {\n      return;\n    }\n\n    var tooltipModel = ecModel.getComponent('tooltip');\n    var renderMode = tooltipModel.get('renderMode');\n    this._renderMode = getTooltipRenderMode(renderMode);\n    this._tooltipContent = this._renderMode === 'richText' ? new TooltipRichContent(api) : new TooltipHTMLContent(api.getDom(), api, {\n      appendToBody: tooltipModel.get('appendToBody', true)\n    });\n  };\n\n  TooltipView.prototype.render = function (tooltipModel, ecModel, api) {\n    if (env.node) {\n      return;\n    }\n\n    this.group.removeAll();\n    this._tooltipModel = tooltipModel;\n    this._ecModel = ecModel;\n    this._api = api;\n    this._alwaysShowContent = tooltipModel.get('alwaysShowContent');\n    var tooltipContent = this._tooltipContent;\n    tooltipContent.update(tooltipModel);\n    tooltipContent.setEnterable(tooltipModel.get('enterable'));\n\n    this._initGlobalListener();\n\n    this._keepShow();\n  };\n\n  TooltipView.prototype._initGlobalListener = function () {\n    var tooltipModel = this._tooltipModel;\n    var triggerOn = tooltipModel.get('triggerOn');\n    globalListener.register('itemTooltip', this._api, bind(function (currTrigger, e, dispatchAction) {\n      if (triggerOn !== 'none') {\n        if (triggerOn.indexOf(currTrigger) >= 0) {\n          this._tryShow(e, dispatchAction);\n        } else if (currTrigger === 'leave') {\n          this._hide(dispatchAction);\n        }\n      }\n    }, this));\n  };\n\n  TooltipView.prototype._keepShow = function () {\n    var tooltipModel = this._tooltipModel;\n    var ecModel = this._ecModel;\n    var api = this._api;\n\n    if (this._lastX != null && this._lastY != null && tooltipModel.get('triggerOn') !== 'none') {\n      var self_1 = this;\n      clearTimeout(this._refreshUpdateTimeout);\n      this._refreshUpdateTimeout = setTimeout(function () {\n        !api.isDisposed() && self_1.manuallyShowTip(tooltipModel, ecModel, api, {\n          x: self_1._lastX,\n          y: self_1._lastY,\n          dataByCoordSys: self_1._lastDataByCoordSys\n        });\n      });\n    }\n  };\n\n  TooltipView.prototype.manuallyShowTip = function (tooltipModel, ecModel, api, payload) {\n    if (payload.from === this.uid || env.node) {\n      return;\n    }\n\n    var dispatchAction = makeDispatchAction(payload, api);\n    this._ticket = '';\n    var dataByCoordSys = payload.dataByCoordSys;\n\n    if (payload.tooltip && payload.x != null && payload.y != null) {\n      var el = proxyRect;\n      el.x = payload.x;\n      el.y = payload.y;\n      el.update();\n      el.tooltip = payload.tooltip;\n\n      this._tryShow({\n        offsetX: payload.x,\n        offsetY: payload.y,\n        target: el\n      }, dispatchAction);\n    } else if (dataByCoordSys) {\n      this._tryShow({\n        offsetX: payload.x,\n        offsetY: payload.y,\n        position: payload.position,\n        dataByCoordSys: dataByCoordSys,\n        tooltipOption: payload.tooltipOption\n      }, dispatchAction);\n    } else if (payload.seriesIndex != null) {\n      if (this._manuallyAxisShowTip(tooltipModel, ecModel, api, payload)) {\n        return;\n      }\n\n      var pointInfo = findPointFromSeries(payload, ecModel);\n      var cx = pointInfo.point[0];\n      var cy = pointInfo.point[1];\n\n      if (cx != null && cy != null) {\n        this._tryShow({\n          offsetX: cx,\n          offsetY: cy,\n          position: payload.position,\n          target: pointInfo.el\n        }, dispatchAction);\n      }\n    } else if (payload.x != null && payload.y != null) {\n      api.dispatchAction({\n        type: 'updateAxisPointer',\n        x: payload.x,\n        y: payload.y\n      });\n\n      this._tryShow({\n        offsetX: payload.x,\n        offsetY: payload.y,\n        position: payload.position,\n        target: api.getZr().findHover(payload.x, payload.y).target\n      }, dispatchAction);\n    }\n  };\n\n  TooltipView.prototype.manuallyHideTip = function (tooltipModel, ecModel, api, payload) {\n    var tooltipContent = this._tooltipContent;\n\n    if (!this._alwaysShowContent && this._tooltipModel) {\n      tooltipContent.hideLater(this._tooltipModel.get('hideDelay'));\n    }\n\n    this._lastX = this._lastY = this._lastDataByCoordSys = null;\n\n    if (payload.from !== this.uid) {\n      this._hide(makeDispatchAction(payload, api));\n    }\n  };\n\n  TooltipView.prototype._manuallyAxisShowTip = function (tooltipModel, ecModel, api, payload) {\n    var seriesIndex = payload.seriesIndex;\n    var dataIndex = payload.dataIndex;\n    var coordSysAxesInfo = ecModel.getComponent('axisPointer').coordSysAxesInfo;\n\n    if (seriesIndex == null || dataIndex == null || coordSysAxesInfo == null) {\n      return;\n    }\n\n    var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n\n    if (!seriesModel) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var tooltipCascadedModel = buildTooltipModel([data.getItemModel(dataIndex), seriesModel, (seriesModel.coordinateSystem || {}).model, tooltipModel]);\n\n    if (tooltipCascadedModel.get('trigger') !== 'axis') {\n      return;\n    }\n\n    api.dispatchAction({\n      type: 'updateAxisPointer',\n      seriesIndex: seriesIndex,\n      dataIndex: dataIndex,\n      position: payload.position\n    });\n    return true;\n  };\n\n  TooltipView.prototype._tryShow = function (e, dispatchAction) {\n    var el = e.target;\n    var tooltipModel = this._tooltipModel;\n\n    if (!tooltipModel) {\n      return;\n    }\n\n    this._lastX = e.offsetX;\n    this._lastY = e.offsetY;\n    var dataByCoordSys = e.dataByCoordSys;\n\n    if (dataByCoordSys && dataByCoordSys.length) {\n      this._showAxisTooltip(dataByCoordSys, e);\n    } else if (el && findEventDispatcher(el, function (target) {\n      return getECData(target).dataIndex != null;\n    }, true)) {\n      this._lastDataByCoordSys = null;\n\n      this._showSeriesItemTooltip(e, el, dispatchAction);\n    } else if (el && el.tooltip) {\n      this._lastDataByCoordSys = null;\n\n      this._showComponentItemTooltip(e, el, dispatchAction);\n    } else {\n      this._lastDataByCoordSys = null;\n\n      this._hide(dispatchAction);\n    }\n  };\n\n  TooltipView.prototype._showOrMove = function (tooltipModel, cb) {\n    var delay = tooltipModel.get('showDelay');\n    cb = zrUtil.bind(cb, this);\n    clearTimeout(this._showTimout);\n    delay > 0 ? this._showTimout = setTimeout(cb, delay) : cb();\n  };\n\n  TooltipView.prototype._showAxisTooltip = function (dataByCoordSys, e) {\n    var ecModel = this._ecModel;\n    var globalTooltipModel = this._tooltipModel;\n    var point = [e.offsetX, e.offsetY];\n    var singleTooltipModel = buildTooltipModel([e.tooltipOption, globalTooltipModel]);\n    var renderMode = this._renderMode;\n    var cbParamsList = [];\n    var articleMarkup = createTooltipMarkup('section', {\n      blocks: [],\n      noHeader: true\n    });\n    var markupTextArrLegacy = [];\n    var markupStyleCreator = new TooltipMarkupStyleCreator();\n    each(dataByCoordSys, function (itemCoordSys) {\n      each(itemCoordSys.dataByAxis, function (axisItem) {\n        var axisModel = ecModel.getComponent(axisItem.axisDim + 'Axis', axisItem.axisIndex);\n        var axisValue = axisItem.value;\n\n        if (!axisModel || axisValue == null) {\n          return;\n        }\n\n        var axisValueLabel = axisPointerViewHelper.getValueLabel(axisValue, axisModel.axis, ecModel, axisItem.seriesDataIndices, axisItem.valueLabelOpt);\n        var axisSectionMarkup = createTooltipMarkup('section', {\n          header: axisValueLabel,\n          noHeader: !zrUtil.trim(axisValueLabel),\n          sortBlocks: true,\n          blocks: []\n        });\n        articleMarkup.blocks.push(axisSectionMarkup);\n        zrUtil.each(axisItem.seriesDataIndices, function (idxItem) {\n          var series = ecModel.getSeriesByIndex(idxItem.seriesIndex);\n          var dataIndex = idxItem.dataIndexInside;\n          var cbParams = series.getDataParams(dataIndex);\n          cbParams.axisDim = axisItem.axisDim;\n          cbParams.axisIndex = axisItem.axisIndex;\n          cbParams.axisType = axisItem.axisType;\n          cbParams.axisId = axisItem.axisId;\n          cbParams.axisValue = axisHelper.getAxisRawValue(axisModel.axis, {\n            value: axisValue\n          });\n          cbParams.axisValueLabel = axisValueLabel;\n          cbParams.marker = markupStyleCreator.makeTooltipMarker('item', formatUtil.convertToColorString(cbParams.color), renderMode);\n          var seriesTooltipResult = normalizeTooltipFormatResult(series.formatTooltip(dataIndex, true, null));\n\n          if (seriesTooltipResult.markupFragment) {\n            axisSectionMarkup.blocks.push(seriesTooltipResult.markupFragment);\n          }\n\n          if (seriesTooltipResult.markupText) {\n            markupTextArrLegacy.push(seriesTooltipResult.markupText);\n          }\n\n          cbParamsList.push(cbParams);\n        });\n      });\n    });\n    articleMarkup.blocks.reverse();\n    markupTextArrLegacy.reverse();\n    var positionExpr = e.position;\n    var orderMode = singleTooltipModel.get('order');\n    var builtMarkupText = buildTooltipMarkup(articleMarkup, markupStyleCreator, renderMode, orderMode, ecModel.get('useUTC'), singleTooltipModel.get('textStyle'));\n    builtMarkupText && markupTextArrLegacy.unshift(builtMarkupText);\n    var blockBreak = renderMode === 'richText' ? '\\n\\n' : '<br/>';\n    var allMarkupText = markupTextArrLegacy.join(blockBreak);\n\n    this._showOrMove(singleTooltipModel, function () {\n      if (this._updateContentNotChangedOnAxis(dataByCoordSys)) {\n        this._updatePosition(singleTooltipModel, positionExpr, point[0], point[1], this._tooltipContent, cbParamsList);\n      } else {\n        this._showTooltipContent(singleTooltipModel, allMarkupText, cbParamsList, Math.random() + '', point[0], point[1], positionExpr, null, markupStyleCreator);\n      }\n    });\n  };\n\n  TooltipView.prototype._showSeriesItemTooltip = function (e, el, dispatchAction) {\n    var dispatcher = findEventDispatcher(el, function (target) {\n      return getECData(target).dataIndex != null;\n    }, true);\n    var ecModel = this._ecModel;\n    var ecData = getECData(dispatcher);\n    var seriesIndex = ecData.seriesIndex;\n    var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n    var dataModel = ecData.dataModel || seriesModel;\n    var dataIndex = ecData.dataIndex;\n    var dataType = ecData.dataType;\n    var data = dataModel.getData(dataType);\n    var renderMode = this._renderMode;\n    var tooltipModel = buildTooltipModel([data.getItemModel(dataIndex), dataModel, seriesModel && (seriesModel.coordinateSystem || {}).model, this._tooltipModel]);\n    var tooltipTrigger = tooltipModel.get('trigger');\n\n    if (tooltipTrigger != null && tooltipTrigger !== 'item') {\n      return;\n    }\n\n    var params = dataModel.getDataParams(dataIndex, dataType);\n    var markupStyleCreator = new TooltipMarkupStyleCreator();\n    params.marker = markupStyleCreator.makeTooltipMarker('item', formatUtil.convertToColorString(params.color), renderMode);\n    var seriesTooltipResult = normalizeTooltipFormatResult(dataModel.formatTooltip(dataIndex, false, dataType));\n    var orderMode = tooltipModel.get('order');\n    var markupText = seriesTooltipResult.markupFragment ? buildTooltipMarkup(seriesTooltipResult.markupFragment, markupStyleCreator, renderMode, orderMode, ecModel.get('useUTC'), tooltipModel.get('textStyle')) : seriesTooltipResult.markupText;\n    var asyncTicket = 'item_' + dataModel.name + '_' + dataIndex;\n\n    this._showOrMove(tooltipModel, function () {\n      this._showTooltipContent(tooltipModel, markupText, params, asyncTicket, e.offsetX, e.offsetY, e.position, e.target, markupStyleCreator);\n    });\n\n    dispatchAction({\n      type: 'showTip',\n      dataIndexInside: dataIndex,\n      dataIndex: data.getRawIndex(dataIndex),\n      seriesIndex: seriesIndex,\n      from: this.uid\n    });\n  };\n\n  TooltipView.prototype._showComponentItemTooltip = function (e, el, dispatchAction) {\n    var tooltipOpt = el.tooltip;\n\n    if (zrUtil.isString(tooltipOpt)) {\n      var content = tooltipOpt;\n      tooltipOpt = {\n        content: content,\n        formatter: content\n      };\n    }\n\n    var subTooltipModel = new Model(tooltipOpt, this._tooltipModel, this._ecModel);\n    var defaultHtml = subTooltipModel.get('content');\n    var asyncTicket = Math.random() + '';\n    var markupStyleCreator = new TooltipMarkupStyleCreator();\n\n    this._showOrMove(subTooltipModel, function () {\n      this._showTooltipContent(subTooltipModel, defaultHtml, subTooltipModel.get('formatterParams') || {}, asyncTicket, e.offsetX, e.offsetY, e.position, el, markupStyleCreator);\n    });\n\n    dispatchAction({\n      type: 'showTip',\n      from: this.uid\n    });\n  };\n\n  TooltipView.prototype._showTooltipContent = function (tooltipModel, defaultHtml, params, asyncTicket, x, y, positionExpr, el, markupStyleCreator) {\n    this._ticket = '';\n\n    if (!tooltipModel.get('showContent') || !tooltipModel.get('show')) {\n      return;\n    }\n\n    var tooltipContent = this._tooltipContent;\n    var formatter = tooltipModel.get('formatter');\n    positionExpr = positionExpr || tooltipModel.get('position');\n    var html = defaultHtml;\n\n    var nearPoint = this._getNearestPoint([x, y], params, tooltipModel.get('trigger'), tooltipModel.get('borderColor'));\n\n    if (formatter && zrUtil.isString(formatter)) {\n      var useUTC = tooltipModel.ecModel.get('useUTC');\n      var params0 = zrUtil.isArray(params) ? params[0] : params;\n      var isTimeAxis = params0 && params0.axisType && params0.axisType.indexOf('time') >= 0;\n      html = formatter;\n\n      if (isTimeAxis) {\n        html = timeFormat(params0.axisValue, html, useUTC);\n      }\n\n      html = formatUtil.formatTpl(html, params, true);\n    } else if (zrUtil.isFunction(formatter)) {\n      var callback = bind(function (cbTicket, html) {\n        if (cbTicket === this._ticket) {\n          tooltipContent.setContent(html, markupStyleCreator, tooltipModel, nearPoint.color, positionExpr);\n\n          this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\n        }\n      }, this);\n      this._ticket = asyncTicket;\n      html = formatter(params, asyncTicket, callback);\n    }\n\n    tooltipContent.setContent(html, markupStyleCreator, tooltipModel, nearPoint.color, positionExpr);\n    tooltipContent.show(tooltipModel, nearPoint.color);\n\n    this._updatePosition(tooltipModel, positionExpr, x, y, tooltipContent, params, el);\n  };\n\n  TooltipView.prototype._getNearestPoint = function (point, tooltipDataParams, trigger, borderColor) {\n    if (trigger === 'axis' || zrUtil.isArray(tooltipDataParams)) {\n      return {\n        color: borderColor || (this._renderMode === 'html' ? '#fff' : 'none')\n      };\n    }\n\n    if (!zrUtil.isArray(tooltipDataParams)) {\n      return {\n        color: borderColor || tooltipDataParams.color || tooltipDataParams.borderColor\n      };\n    }\n  };\n\n  TooltipView.prototype._updatePosition = function (tooltipModel, positionExpr, x, y, content, params, el) {\n    var viewWidth = this._api.getWidth();\n\n    var viewHeight = this._api.getHeight();\n\n    positionExpr = positionExpr || tooltipModel.get('position');\n    var contentSize = content.getSize();\n    var align = tooltipModel.get('align');\n    var vAlign = tooltipModel.get('verticalAlign');\n    var rect = el && el.getBoundingRect().clone();\n    el && rect.applyTransform(el.transform);\n\n    if (zrUtil.isFunction(positionExpr)) {\n      positionExpr = positionExpr([x, y], params, content.el, rect, {\n        viewSize: [viewWidth, viewHeight],\n        contentSize: contentSize.slice()\n      });\n    }\n\n    if (zrUtil.isArray(positionExpr)) {\n      x = parsePercent(positionExpr[0], viewWidth);\n      y = parsePercent(positionExpr[1], viewHeight);\n    } else if (zrUtil.isObject(positionExpr)) {\n      var boxLayoutPosition = positionExpr;\n      boxLayoutPosition.width = contentSize[0];\n      boxLayoutPosition.height = contentSize[1];\n      var layoutRect = layoutUtil.getLayoutRect(boxLayoutPosition, {\n        width: viewWidth,\n        height: viewHeight\n      });\n      x = layoutRect.x;\n      y = layoutRect.y;\n      align = null;\n      vAlign = null;\n    } else if (zrUtil.isString(positionExpr) && el) {\n      var pos = calcTooltipPosition(positionExpr, rect, contentSize);\n      x = pos[0];\n      y = pos[1];\n    } else {\n      var pos = refixTooltipPosition(x, y, content, viewWidth, viewHeight, align ? null : 20, vAlign ? null : 20);\n      x = pos[0];\n      y = pos[1];\n    }\n\n    align && (x -= isCenterAlign(align) ? contentSize[0] / 2 : align === 'right' ? contentSize[0] : 0);\n    vAlign && (y -= isCenterAlign(vAlign) ? contentSize[1] / 2 : vAlign === 'bottom' ? contentSize[1] : 0);\n\n    if (shouldTooltipConfine(tooltipModel)) {\n      var pos = confineTooltipPosition(x, y, content, viewWidth, viewHeight);\n      x = pos[0];\n      y = pos[1];\n    }\n\n    content.moveTo(x, y);\n  };\n\n  TooltipView.prototype._updateContentNotChangedOnAxis = function (dataByCoordSys) {\n    var lastCoordSys = this._lastDataByCoordSys;\n    var contentNotChanged = !!lastCoordSys && lastCoordSys.length === dataByCoordSys.length;\n    contentNotChanged && each(lastCoordSys, function (lastItemCoordSys, indexCoordSys) {\n      var lastDataByAxis = lastItemCoordSys.dataByAxis || [];\n      var thisItemCoordSys = dataByCoordSys[indexCoordSys] || {};\n      var thisDataByAxis = thisItemCoordSys.dataByAxis || [];\n      contentNotChanged = contentNotChanged && lastDataByAxis.length === thisDataByAxis.length;\n      contentNotChanged && each(lastDataByAxis, function (lastItem, indexAxis) {\n        var thisItem = thisDataByAxis[indexAxis] || {};\n        var lastIndices = lastItem.seriesDataIndices || [];\n        var newIndices = thisItem.seriesDataIndices || [];\n        contentNotChanged = contentNotChanged && lastItem.value === thisItem.value && lastItem.axisType === thisItem.axisType && lastItem.axisId === thisItem.axisId && lastIndices.length === newIndices.length;\n        contentNotChanged && each(lastIndices, function (lastIdxItem, j) {\n          var newIdxItem = newIndices[j];\n          contentNotChanged = contentNotChanged && lastIdxItem.seriesIndex === newIdxItem.seriesIndex && lastIdxItem.dataIndex === newIdxItem.dataIndex;\n        });\n      });\n    });\n    this._lastDataByCoordSys = dataByCoordSys;\n    return !!contentNotChanged;\n  };\n\n  TooltipView.prototype._hide = function (dispatchAction) {\n    this._lastDataByCoordSys = null;\n    dispatchAction({\n      type: 'hideTip',\n      from: this.uid\n    });\n  };\n\n  TooltipView.prototype.dispose = function (ecModel, api) {\n    if (env.node) {\n      return;\n    }\n\n    this._tooltipContent.dispose();\n\n    globalListener.unregister('itemTooltip', api);\n  };\n\n  TooltipView.type = 'tooltip';\n  return TooltipView;\n}(ComponentView);\n\nfunction buildTooltipModel(modelCascade) {\n  var resultModel = modelCascade.pop();\n\n  while (modelCascade.length) {\n    var tooltipOpt = modelCascade.pop();\n\n    if (tooltipOpt) {\n      if (tooltipOpt instanceof Model) {\n        tooltipOpt = tooltipOpt.get('tooltip', true);\n      }\n\n      if (zrUtil.isString(tooltipOpt)) {\n        tooltipOpt = {\n          formatter: tooltipOpt\n        };\n      }\n\n      resultModel = new Model(tooltipOpt, resultModel, resultModel.ecModel);\n    }\n  }\n\n  return resultModel;\n}\n\nfunction makeDispatchAction(payload, api) {\n  return payload.dispatchAction || zrUtil.bind(api.dispatchAction, api);\n}\n\nfunction refixTooltipPosition(x, y, content, viewWidth, viewHeight, gapH, gapV) {\n  var size = content.getOuterSize();\n  var width = size.width;\n  var height = size.height;\n\n  if (gapH != null) {\n    if (x + width + gapH + 2 > viewWidth) {\n      x -= width + gapH;\n    } else {\n      x += gapH;\n    }\n  }\n\n  if (gapV != null) {\n    if (y + height + gapV > viewHeight) {\n      y -= height + gapV;\n    } else {\n      y += gapV;\n    }\n  }\n\n  return [x, y];\n}\n\nfunction confineTooltipPosition(x, y, content, viewWidth, viewHeight) {\n  var size = content.getOuterSize();\n  var width = size.width;\n  var height = size.height;\n  x = Math.min(x + width, viewWidth) - width;\n  y = Math.min(y + height, viewHeight) - height;\n  x = Math.max(x, 0);\n  y = Math.max(y, 0);\n  return [x, y];\n}\n\nfunction calcTooltipPosition(position, rect, contentSize) {\n  var domWidth = contentSize[0];\n  var domHeight = contentSize[1];\n  var gap = 10;\n  var offset = 5;\n  var x = 0;\n  var y = 0;\n  var rectWidth = rect.width;\n  var rectHeight = rect.height;\n\n  switch (position) {\n    case 'inside':\n      x = rect.x + rectWidth / 2 - domWidth / 2;\n      y = rect.y + rectHeight / 2 - domHeight / 2;\n      break;\n\n    case 'top':\n      x = rect.x + rectWidth / 2 - domWidth / 2;\n      y = rect.y - domHeight - gap;\n      break;\n\n    case 'bottom':\n      x = rect.x + rectWidth / 2 - domWidth / 2;\n      y = rect.y + rectHeight + gap;\n      break;\n\n    case 'left':\n      x = rect.x - domWidth - gap - offset;\n      y = rect.y + rectHeight / 2 - domHeight / 2;\n      break;\n\n    case 'right':\n      x = rect.x + rectWidth + gap + offset;\n      y = rect.y + rectHeight / 2 - domHeight / 2;\n  }\n\n  return [x, y];\n}\n\nfunction isCenterAlign(align) {\n  return align === 'center' || align === 'middle';\n}\n\nexport default TooltipView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { install as installAxisPointer } from '../axisPointer/install';\nimport { use } from '../../extension';\nimport TooltipModel from './TooltipModel';\nimport TooltipView from './TooltipView';\nexport function install(registers) {\n  use(installAxisPointer);\n  registers.registerComponentModel(TooltipModel);\n  registers.registerComponentView(TooltipView);\n  registers.registerAction({\n    type: 'showTip',\n    event: 'showTip',\n    update: 'tooltip:manuallyShowTip'\n  }, function () {});\n  registers.registerAction({\n    type: 'hideTip',\n    event: 'hideTip',\n    update: 'tooltip:manuallyHideTip'\n  }, function () {});\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { normalizeToArray } from '../../util/model';\nvar DEFAULT_TOOLBOX_BTNS = ['rect', 'polygon', 'keep', 'clear'];\nexport default function brushPreprocessor(option, isNew) {\n  var brushComponents = normalizeToArray(option ? option.brush : []);\n\n  if (!brushComponents.length) {\n    return;\n  }\n\n  var brushComponentSpecifiedBtns = [];\n  zrUtil.each(brushComponents, function (brushOpt) {\n    var tbs = brushOpt.hasOwnProperty('toolbox') ? brushOpt.toolbox : [];\n\n    if (tbs instanceof Array) {\n      brushComponentSpecifiedBtns = brushComponentSpecifiedBtns.concat(tbs);\n    }\n  });\n  var toolbox = option && option.toolbox;\n\n  if (zrUtil.isArray(toolbox)) {\n    toolbox = toolbox[0];\n  }\n\n  if (!toolbox) {\n    toolbox = {\n      feature: {}\n    };\n    option.toolbox = [toolbox];\n  }\n\n  var toolboxFeature = toolbox.feature || (toolbox.feature = {});\n  var toolboxBrush = toolboxFeature.brush || (toolboxFeature.brush = {});\n  var brushTypes = toolboxBrush.type || (toolboxBrush.type = []);\n  brushTypes.push.apply(brushTypes, brushComponentSpecifiedBtns);\n  removeDuplicate(brushTypes);\n\n  if (isNew && !brushTypes.length) {\n    brushTypes.push.apply(brushTypes, DEFAULT_TOOLBOX_BTNS);\n  }\n}\n\nfunction removeDuplicate(arr) {\n  var map = {};\n  zrUtil.each(arr, function (val) {\n    map[val] = 1;\n  });\n  arr.length = 0;\n  zrUtil.each(map, function (flag, val) {\n    arr.push(val);\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport VisualMapping from './VisualMapping';\nimport { getItemVisualFromData, setItemVisualFromData } from './helper';\nvar each = zrUtil.each;\n\nfunction hasKeys(obj) {\n  if (obj) {\n    for (var name_1 in obj) {\n      if (obj.hasOwnProperty(name_1)) {\n        return true;\n      }\n    }\n  }\n}\n\nexport function createVisualMappings(option, stateList, supplementVisualOption) {\n  var visualMappings = {};\n  each(stateList, function (state) {\n    var mappings = visualMappings[state] = createMappings();\n    each(option[state], function (visualData, visualType) {\n      if (!VisualMapping.isValidType(visualType)) {\n        return;\n      }\n\n      var mappingOption = {\n        type: visualType,\n        visual: visualData\n      };\n      supplementVisualOption && supplementVisualOption(mappingOption, state);\n      mappings[visualType] = new VisualMapping(mappingOption);\n\n      if (visualType === 'opacity') {\n        mappingOption = zrUtil.clone(mappingOption);\n        mappingOption.type = 'colorAlpha';\n        mappings.__hidden.__alphaForOpacity = new VisualMapping(mappingOption);\n      }\n    });\n  });\n  return visualMappings;\n\n  function createMappings() {\n    var Creater = function () {};\n\n    Creater.prototype.__hidden = Creater.prototype;\n    var obj = new Creater();\n    return obj;\n  }\n}\nexport function replaceVisualOption(thisOption, newOption, keys) {\n  var has;\n  zrUtil.each(keys, function (key) {\n    if (newOption.hasOwnProperty(key) && hasKeys(newOption[key])) {\n      has = true;\n    }\n  });\n  has && zrUtil.each(keys, function (key) {\n    if (newOption.hasOwnProperty(key) && hasKeys(newOption[key])) {\n      thisOption[key] = zrUtil.clone(newOption[key]);\n    } else {\n      delete thisOption[key];\n    }\n  });\n}\nexport function applyVisual(stateList, visualMappings, data, getValueState, scope, dimension) {\n  var visualTypesMap = {};\n  zrUtil.each(stateList, function (state) {\n    var visualTypes = VisualMapping.prepareVisualTypes(visualMappings[state]);\n    visualTypesMap[state] = visualTypes;\n  });\n  var dataIndex;\n\n  function getVisual(key) {\n    return getItemVisualFromData(data, dataIndex, key);\n  }\n\n  function setVisual(key, value) {\n    setItemVisualFromData(data, dataIndex, key, value);\n  }\n\n  if (dimension == null) {\n    data.each(eachItem);\n  } else {\n    data.each([dimension], eachItem);\n  }\n\n  function eachItem(valueOrIndex, index) {\n    dataIndex = dimension == null ? valueOrIndex : index;\n    var rawDataItem = data.getRawDataItem(dataIndex);\n\n    if (rawDataItem && rawDataItem.visualMap === false) {\n      return;\n    }\n\n    var valueState = getValueState.call(scope, valueOrIndex);\n    var mappings = visualMappings[valueState];\n    var visualTypes = visualTypesMap[valueState];\n\n    for (var i = 0, len = visualTypes.length; i < len; i++) {\n      var type = visualTypes[i];\n      mappings[type] && mappings[type].applyVisual(valueOrIndex, getVisual, setVisual);\n    }\n  }\n}\nexport function incrementalApplyVisual(stateList, visualMappings, getValueState, dim) {\n  var visualTypesMap = {};\n  zrUtil.each(stateList, function (state) {\n    var visualTypes = VisualMapping.prepareVisualTypes(visualMappings[state]);\n    visualTypesMap[state] = visualTypes;\n  });\n  return {\n    progress: function progress(params, data) {\n      var dimName;\n\n      if (dim != null) {\n        dimName = data.getDimension(dim);\n      }\n\n      function getVisual(key) {\n        return getItemVisualFromData(data, dataIndex, key);\n      }\n\n      function setVisual(key, value) {\n        setItemVisualFromData(data, dataIndex, key, value);\n      }\n\n      var dataIndex;\n\n      while ((dataIndex = params.next()) != null) {\n        var rawDataItem = data.getRawDataItem(dataIndex);\n\n        if (rawDataItem && rawDataItem.visualMap === false) {\n          continue;\n        }\n\n        var value = dim != null ? data.get(dimName, dataIndex) : dataIndex;\n        var valueState = getValueState(value);\n        var mappings = visualMappings[valueState];\n        var visualTypes = visualTypesMap[valueState];\n\n        for (var i = 0, len = visualTypes.length; i < len; i++) {\n          var type = visualTypes[i];\n          mappings[type] && mappings[type].applyVisual(value, getVisual, setVisual);\n        }\n      }\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as polygonContain from 'zrender/lib/contain/polygon';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { linePolygonIntersect } from '../../util/graphic';\nexport function makeBrushCommonSelectorForSeries(area) {\n  var brushType = area.brushType;\n  var selectors = {\n    point: function (itemLayout) {\n      return selector[brushType].point(itemLayout, selectors, area);\n    },\n    rect: function (itemLayout) {\n      return selector[brushType].rect(itemLayout, selectors, area);\n    }\n  };\n  return selectors;\n}\nvar selector = {\n  lineX: getLineSelectors(0),\n  lineY: getLineSelectors(1),\n  rect: {\n    point: function (itemLayout, selectors, area) {\n      return itemLayout && area.boundingRect.contain(itemLayout[0], itemLayout[1]);\n    },\n    rect: function (itemLayout, selectors, area) {\n      return itemLayout && area.boundingRect.intersect(itemLayout);\n    }\n  },\n  polygon: {\n    point: function (itemLayout, selectors, area) {\n      return itemLayout && area.boundingRect.contain(itemLayout[0], itemLayout[1]) && polygonContain.contain(area.range, itemLayout[0], itemLayout[1]);\n    },\n    rect: function (itemLayout, selectors, area) {\n      var points = area.range;\n\n      if (!itemLayout || points.length <= 1) {\n        return false;\n      }\n\n      var x = itemLayout.x;\n      var y = itemLayout.y;\n      var width = itemLayout.width;\n      var height = itemLayout.height;\n      var p = points[0];\n\n      if (polygonContain.contain(points, x, y) || polygonContain.contain(points, x + width, y) || polygonContain.contain(points, x, y + height) || polygonContain.contain(points, x + width, y + height) || BoundingRect.create(itemLayout).contain(p[0], p[1]) || linePolygonIntersect(x, y, x + width, y, points) || linePolygonIntersect(x, y, x, y + height, points) || linePolygonIntersect(x + width, y, x + width, y + height, points) || linePolygonIntersect(x, y + height, x + width, y + height, points)) {\n        return true;\n      }\n    }\n  }\n};\n\nfunction getLineSelectors(xyIndex) {\n  var xy = ['x', 'y'];\n  var wh = ['width', 'height'];\n  return {\n    point: function (itemLayout, selectors, area) {\n      if (itemLayout) {\n        var range = area.range;\n        var p = itemLayout[xyIndex];\n        return inLineRange(p, range);\n      }\n    },\n    rect: function (itemLayout, selectors, area) {\n      if (itemLayout) {\n        var range = area.range;\n        var layoutRange = [itemLayout[xy[xyIndex]], itemLayout[xy[xyIndex]] + itemLayout[wh[xyIndex]]];\n        layoutRange[1] < layoutRange[0] && layoutRange.reverse();\n        return inLineRange(layoutRange[0], range) || inLineRange(layoutRange[1], range) || inLineRange(range[0], layoutRange) || inLineRange(range[1], layoutRange);\n      }\n    }\n  };\n}\n\nfunction inLineRange(p, range) {\n  return range[0] <= p && p <= range[1];\n}\n\nexport default selector;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport * as visualSolution from '../../visual/visualSolution';\nimport { makeBrushCommonSelectorForSeries } from './selector';\nimport * as throttleUtil from '../../util/throttle';\nimport BrushTargetManager from '../helper/BrushTargetManager';\nvar STATE_LIST = ['inBrush', 'outOfBrush'];\nvar DISPATCH_METHOD = '__ecBrushSelect';\nvar DISPATCH_FLAG = '__ecInBrushSelectEvent';\n;\nexport function layoutCovers(ecModel) {\n  ecModel.eachComponent({\n    mainType: 'brush'\n  }, function (brushModel) {\n    var brushTargetManager = brushModel.brushTargetManager = new BrushTargetManager(brushModel.option, ecModel);\n    brushTargetManager.setInputRanges(brushModel.areas, ecModel);\n  });\n}\nexport default function brushVisual(ecModel, api, payload) {\n  var brushSelected = [];\n  var throttleType;\n  var throttleDelay;\n  ecModel.eachComponent({\n    mainType: 'brush'\n  }, function (brushModel) {\n    payload && payload.type === 'takeGlobalCursor' && brushModel.setBrushOption(payload.key === 'brush' ? payload.brushOption : {\n      brushType: false\n    });\n  });\n  layoutCovers(ecModel);\n  ecModel.eachComponent({\n    mainType: 'brush'\n  }, function (brushModel, brushIndex) {\n    var thisBrushSelected = {\n      brushId: brushModel.id,\n      brushIndex: brushIndex,\n      brushName: brushModel.name,\n      areas: zrUtil.clone(brushModel.areas),\n      selected: []\n    };\n    brushSelected.push(thisBrushSelected);\n    var brushOption = brushModel.option;\n    var brushLink = brushOption.brushLink;\n    var linkedSeriesMap = [];\n    var selectedDataIndexForLink = [];\n    var rangeInfoBySeries = [];\n    var hasBrushExists = false;\n\n    if (!brushIndex) {\n      throttleType = brushOption.throttleType;\n      throttleDelay = brushOption.throttleDelay;\n    }\n\n    var areas = zrUtil.map(brushModel.areas, function (area) {\n      var builder = boundingRectBuilders[area.brushType];\n      var selectableArea = zrUtil.defaults({\n        boundingRect: builder ? builder(area) : void 0\n      }, area);\n      selectableArea.selectors = makeBrushCommonSelectorForSeries(selectableArea);\n      return selectableArea;\n    });\n    var visualMappings = visualSolution.createVisualMappings(brushModel.option, STATE_LIST, function (mappingOption) {\n      mappingOption.mappingMethod = 'fixed';\n    });\n    zrUtil.isArray(brushLink) && zrUtil.each(brushLink, function (seriesIndex) {\n      linkedSeriesMap[seriesIndex] = 1;\n    });\n\n    function linkOthers(seriesIndex) {\n      return brushLink === 'all' || !!linkedSeriesMap[seriesIndex];\n    }\n\n    function brushed(rangeInfoList) {\n      return !!rangeInfoList.length;\n    }\n\n    ecModel.eachSeries(function (seriesModel, seriesIndex) {\n      var rangeInfoList = rangeInfoBySeries[seriesIndex] = [];\n      seriesModel.subType === 'parallel' ? stepAParallel(seriesModel, seriesIndex) : stepAOthers(seriesModel, seriesIndex, rangeInfoList);\n    });\n\n    function stepAParallel(seriesModel, seriesIndex) {\n      var coordSys = seriesModel.coordinateSystem;\n      hasBrushExists = hasBrushExists || coordSys.hasAxisBrushed();\n      linkOthers(seriesIndex) && coordSys.eachActiveState(seriesModel.getData(), function (activeState, dataIndex) {\n        activeState === 'active' && (selectedDataIndexForLink[dataIndex] = 1);\n      });\n    }\n\n    function stepAOthers(seriesModel, seriesIndex, rangeInfoList) {\n      if (!seriesModel.brushSelector || brushModelNotControll(brushModel, seriesIndex)) {\n        return;\n      }\n\n      zrUtil.each(areas, function (area) {\n        if (brushModel.brushTargetManager.controlSeries(area, seriesModel, ecModel)) {\n          rangeInfoList.push(area);\n        }\n\n        hasBrushExists = hasBrushExists || brushed(rangeInfoList);\n      });\n\n      if (linkOthers(seriesIndex) && brushed(rangeInfoList)) {\n        var data_1 = seriesModel.getData();\n        data_1.each(function (dataIndex) {\n          if (checkInRange(seriesModel, rangeInfoList, data_1, dataIndex)) {\n            selectedDataIndexForLink[dataIndex] = 1;\n          }\n        });\n      }\n    }\n\n    ecModel.eachSeries(function (seriesModel, seriesIndex) {\n      var seriesBrushSelected = {\n        seriesId: seriesModel.id,\n        seriesIndex: seriesIndex,\n        seriesName: seriesModel.name,\n        dataIndex: []\n      };\n      thisBrushSelected.selected.push(seriesBrushSelected);\n      var rangeInfoList = rangeInfoBySeries[seriesIndex];\n      var data = seriesModel.getData();\n      var getValueState = linkOthers(seriesIndex) ? function (dataIndex) {\n        return selectedDataIndexForLink[dataIndex] ? (seriesBrushSelected.dataIndex.push(data.getRawIndex(dataIndex)), 'inBrush') : 'outOfBrush';\n      } : function (dataIndex) {\n        return checkInRange(seriesModel, rangeInfoList, data, dataIndex) ? (seriesBrushSelected.dataIndex.push(data.getRawIndex(dataIndex)), 'inBrush') : 'outOfBrush';\n      };\n      (linkOthers(seriesIndex) ? hasBrushExists : brushed(rangeInfoList)) && visualSolution.applyVisual(STATE_LIST, visualMappings, data, getValueState);\n    });\n  });\n  dispatchAction(api, throttleType, throttleDelay, brushSelected, payload);\n}\n;\n\nfunction dispatchAction(api, throttleType, throttleDelay, brushSelected, payload) {\n  if (!payload) {\n    return;\n  }\n\n  var zr = api.getZr();\n\n  if (zr[DISPATCH_FLAG]) {\n    return;\n  }\n\n  if (!zr[DISPATCH_METHOD]) {\n    zr[DISPATCH_METHOD] = doDispatch;\n  }\n\n  var fn = throttleUtil.createOrUpdate(zr, DISPATCH_METHOD, throttleDelay, throttleType);\n  fn(api, brushSelected);\n}\n\nfunction doDispatch(api, brushSelected) {\n  if (!api.isDisposed()) {\n    var zr = api.getZr();\n    zr[DISPATCH_FLAG] = true;\n    api.dispatchAction({\n      type: 'brushSelect',\n      batch: brushSelected\n    });\n    zr[DISPATCH_FLAG] = false;\n  }\n}\n\nfunction checkInRange(seriesModel, rangeInfoList, data, dataIndex) {\n  for (var i = 0, len = rangeInfoList.length; i < len; i++) {\n    var area = rangeInfoList[i];\n\n    if (seriesModel.brushSelector(dataIndex, data, area.selectors, area)) {\n      return true;\n    }\n  }\n}\n\nfunction brushModelNotControll(brushModel, seriesIndex) {\n  var seriesIndices = brushModel.option.seriesIndex;\n  return seriesIndices != null && seriesIndices !== 'all' && (zrUtil.isArray(seriesIndices) ? zrUtil.indexOf(seriesIndices, seriesIndex) < 0 : seriesIndex !== seriesIndices);\n}\n\nvar boundingRectBuilders = {\n  rect: function (area) {\n    return getBoundingRectFromMinMax(area.range);\n  },\n  polygon: function (area) {\n    var minMax;\n    var range = area.range;\n\n    for (var i = 0, len = range.length; i < len; i++) {\n      minMax = minMax || [[Infinity, -Infinity], [Infinity, -Infinity]];\n      var rg = range[i];\n      rg[0] < minMax[0][0] && (minMax[0][0] = rg[0]);\n      rg[0] > minMax[0][1] && (minMax[0][1] = rg[0]);\n      rg[1] < minMax[1][0] && (minMax[1][0] = rg[1]);\n      rg[1] > minMax[1][1] && (minMax[1][1] = rg[1]);\n    }\n\n    return minMax && getBoundingRectFromMinMax(minMax);\n  }\n};\n\nfunction getBoundingRectFromMinMax(minMax) {\n  return new BoundingRect(minMax[0][0], minMax[1][0], minMax[0][1] - minMax[0][0], minMax[1][1] - minMax[1][0]);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BrushController from '../helper/BrushController';\nimport { layoutCovers } from './visualEncoding';\nimport ComponentView from '../../view/Component';\n\nvar BrushView = function (_super) {\n  __extends(BrushView, _super);\n\n  function BrushView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BrushView.type;\n    return _this;\n  }\n\n  BrushView.prototype.init = function (ecModel, api) {\n    this.ecModel = ecModel;\n    this.api = api;\n    this.model;\n    (this._brushController = new BrushController(api.getZr())).on('brush', zrUtil.bind(this._onBrush, this)).mount();\n  };\n\n  BrushView.prototype.render = function (brushModel, ecModel, api, payload) {\n    this.model = brushModel;\n\n    this._updateController(brushModel, ecModel, api, payload);\n  };\n\n  BrushView.prototype.updateTransform = function (brushModel, ecModel, api, payload) {\n    layoutCovers(ecModel);\n\n    this._updateController(brushModel, ecModel, api, payload);\n  };\n\n  BrushView.prototype.updateVisual = function (brushModel, ecModel, api, payload) {\n    this.updateTransform(brushModel, ecModel, api, payload);\n  };\n\n  BrushView.prototype.updateView = function (brushModel, ecModel, api, payload) {\n    this._updateController(brushModel, ecModel, api, payload);\n  };\n\n  BrushView.prototype._updateController = function (brushModel, ecModel, api, payload) {\n    (!payload || payload.$from !== brushModel.id) && this._brushController.setPanels(brushModel.brushTargetManager.makePanelOpts(api)).enableBrush(brushModel.brushOption).updateCovers(brushModel.areas.slice());\n  };\n\n  BrushView.prototype.dispose = function () {\n    this._brushController.dispose();\n  };\n\n  BrushView.prototype._onBrush = function (eventParam) {\n    var modelId = this.model.id;\n    var areas = this.model.brushTargetManager.setOutputRanges(eventParam.areas, this.ecModel);\n    (!eventParam.isEnd || eventParam.removeOnClick) && this.api.dispatchAction({\n      type: 'brush',\n      brushId: modelId,\n      areas: zrUtil.clone(areas),\n      $from: modelId\n    });\n    eventParam.isEnd && this.api.dispatchAction({\n      type: 'brushEnd',\n      brushId: modelId,\n      areas: zrUtil.clone(areas),\n      $from: modelId\n    });\n  };\n\n  BrushView.type = 'brush';\n  return BrushView;\n}(ComponentView);\n\nexport default BrushView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as visualSolution from '../../visual/visualSolution';\nimport Model from '../../model/Model';\nimport ComponentModel from '../../model/Component';\nvar DEFAULT_OUT_OF_BRUSH_COLOR = '#ddd';\n\nvar BrushModel = function (_super) {\n  __extends(BrushModel, _super);\n\n  function BrushModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BrushModel.type;\n    _this.areas = [];\n    _this.brushOption = {};\n    return _this;\n  }\n\n  BrushModel.prototype.optionUpdated = function (newOption, isInit) {\n    var thisOption = this.option;\n    !isInit && visualSolution.replaceVisualOption(thisOption, newOption, ['inBrush', 'outOfBrush']);\n    var inBrush = thisOption.inBrush = thisOption.inBrush || {};\n    thisOption.outOfBrush = thisOption.outOfBrush || {\n      color: DEFAULT_OUT_OF_BRUSH_COLOR\n    };\n\n    if (!inBrush.hasOwnProperty('liftZ')) {\n      inBrush.liftZ = 5;\n    }\n  };\n\n  BrushModel.prototype.setAreas = function (areas) {\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.assert(zrUtil.isArray(areas));\n      zrUtil.each(areas, function (area) {\n        zrUtil.assert(area.brushType, 'Illegal areas');\n      });\n    }\n\n    if (!areas) {\n      return;\n    }\n\n    this.areas = zrUtil.map(areas, function (area) {\n      return generateBrushOption(this.option, area);\n    }, this);\n  };\n\n  BrushModel.prototype.setBrushOption = function (brushOption) {\n    this.brushOption = generateBrushOption(this.option, brushOption);\n    this.brushType = this.brushOption.brushType;\n  };\n\n  BrushModel.type = 'brush';\n  BrushModel.dependencies = ['geo', 'grid', 'xAxis', 'yAxis', 'parallel', 'series'];\n  BrushModel.defaultOption = {\n    seriesIndex: 'all',\n    brushType: 'rect',\n    brushMode: 'single',\n    transformable: true,\n    brushStyle: {\n      borderWidth: 1,\n      color: 'rgba(210,219,238,0.3)',\n      borderColor: '#D2DBEE'\n    },\n    throttleType: 'fixRate',\n    throttleDelay: 0,\n    removeOnClick: true,\n    z: 10000\n  };\n  return BrushModel;\n}(ComponentModel);\n\nfunction generateBrushOption(option, brushOption) {\n  return zrUtil.merge({\n    brushType: option.brushType,\n    brushMode: option.brushMode,\n    transformable: option.transformable,\n    brushStyle: new Model(option.brushStyle).getItemStyle(),\n    removeOnClick: option.removeOnClick,\n    z: option.z\n  }, brushOption, true);\n}\n\nexport default BrushModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { ToolboxFeature } from '../featureManager';\nvar ICON_TYPES = ['rect', 'polygon', 'lineX', 'lineY', 'keep', 'clear'];\n\nvar BrushFeature = function (_super) {\n  __extends(BrushFeature, _super);\n\n  function BrushFeature() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  BrushFeature.prototype.render = function (featureModel, ecModel, api) {\n    var brushType;\n    var brushMode;\n    var isBrushed;\n    ecModel.eachComponent({\n      mainType: 'brush'\n    }, function (brushModel) {\n      brushType = brushModel.brushType;\n      brushMode = brushModel.brushOption.brushMode || 'single';\n      isBrushed = isBrushed || !!brushModel.areas.length;\n    });\n    this._brushType = brushType;\n    this._brushMode = brushMode;\n    zrUtil.each(featureModel.get('type', true), function (type) {\n      featureModel.setIconStatus(type, (type === 'keep' ? brushMode === 'multiple' : type === 'clear' ? isBrushed : type === brushType) ? 'emphasis' : 'normal');\n    });\n  };\n\n  BrushFeature.prototype.updateView = function (featureModel, ecModel, api) {\n    this.render(featureModel, ecModel, api);\n  };\n\n  BrushFeature.prototype.getIcons = function () {\n    var model = this.model;\n    var availableIcons = model.get('icon', true);\n    var icons = {};\n    zrUtil.each(model.get('type', true), function (type) {\n      if (availableIcons[type]) {\n        icons[type] = availableIcons[type];\n      }\n    });\n    return icons;\n  };\n\n  ;\n\n  BrushFeature.prototype.onclick = function (ecModel, api, type) {\n    var brushType = this._brushType;\n    var brushMode = this._brushMode;\n\n    if (type === 'clear') {\n      api.dispatchAction({\n        type: 'axisAreaSelect',\n        intervals: []\n      });\n      api.dispatchAction({\n        type: 'brush',\n        command: 'clear',\n        areas: []\n      });\n    } else {\n      api.dispatchAction({\n        type: 'takeGlobalCursor',\n        key: 'brush',\n        brushOption: {\n          brushType: type === 'keep' ? brushType : brushType === type ? false : type,\n          brushMode: type === 'keep' ? brushMode === 'multiple' ? 'single' : 'multiple' : brushMode\n        }\n      });\n    }\n  };\n\n  ;\n\n  BrushFeature.getDefaultOption = function (ecModel) {\n    var defaultOption = {\n      show: true,\n      type: ICON_TYPES.slice(),\n      icon: {\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',\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',\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',\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',\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',\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'\n      },\n      title: ecModel.getLocale(['toolbox', 'brush', 'title'])\n    };\n    return defaultOption;\n  };\n\n  return BrushFeature;\n}(ToolboxFeature);\n\nexport default BrushFeature;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport brushPreprocessor from './preprocessor';\nimport BrushView from './BrushView';\nimport BrushModel from './BrushModel';\nimport brushVisual from './visualEncoding';\nimport BrushFeature from '../toolbox/feature/Brush';\nimport { registerFeature } from '../toolbox/featureManager';\nexport function install(registers) {\n  registers.registerComponentView(BrushView);\n  registers.registerComponentModel(BrushModel);\n  registers.registerPreprocessor(brushPreprocessor);\n  registers.registerVisual(registers.PRIORITY.VISUAL.BRUSH, brushVisual);\n  registers.registerAction({\n    type: 'brush',\n    event: 'brush',\n    update: 'updateVisual'\n  }, function (payload, ecModel) {\n    ecModel.eachComponent({\n      mainType: 'brush',\n      query: payload\n    }, function (brushModel) {\n      brushModel.setAreas(payload.areas);\n    });\n  });\n  registers.registerAction({\n    type: 'brushSelect',\n    event: 'brushSelected',\n    update: 'none'\n  }, function () {});\n  registers.registerAction({\n    type: 'brushEnd',\n    event: 'brushEnd',\n    update: 'none'\n  }, function () {});\n  registerFeature('brush', BrushFeature);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { createTextStyle } from '../../label/labelStyle';\nimport { getLayoutRect } from '../../util/layout';\nimport ComponentModel from '../../model/Component';\nimport ComponentView from '../../view/Component';\nimport { windowOpen } from '../../util/format';\n\nvar TitleModel = function (_super) {\n  __extends(TitleModel, _super);\n\n  function TitleModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TitleModel.type;\n    _this.layoutMode = {\n      type: 'box',\n      ignoreSize: true\n    };\n    return _this;\n  }\n\n  TitleModel.type = 'title';\n  TitleModel.defaultOption = {\n    zlevel: 0,\n    z: 6,\n    show: true,\n    text: '',\n    target: 'blank',\n    subtext: '',\n    subtarget: 'blank',\n    left: 0,\n    top: 0,\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderColor: '#ccc',\n    borderWidth: 0,\n    padding: 5,\n    itemGap: 10,\n    textStyle: {\n      fontSize: 18,\n      fontWeight: 'bold',\n      color: '#464646'\n    },\n    subtextStyle: {\n      fontSize: 12,\n      color: '#6E7079'\n    }\n  };\n  return TitleModel;\n}(ComponentModel);\n\nvar TitleView = function (_super) {\n  __extends(TitleView, _super);\n\n  function TitleView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TitleView.type;\n    return _this;\n  }\n\n  TitleView.prototype.render = function (titleModel, ecModel, api) {\n    this.group.removeAll();\n\n    if (!titleModel.get('show')) {\n      return;\n    }\n\n    var group = this.group;\n    var textStyleModel = titleModel.getModel('textStyle');\n    var subtextStyleModel = titleModel.getModel('subtextStyle');\n    var textAlign = titleModel.get('textAlign');\n    var textVerticalAlign = zrUtil.retrieve2(titleModel.get('textBaseline'), titleModel.get('textVerticalAlign'));\n    var textEl = new graphic.Text({\n      style: createTextStyle(textStyleModel, {\n        text: titleModel.get('text'),\n        fill: textStyleModel.getTextColor()\n      }, {\n        disableBox: true\n      }),\n      z2: 10\n    });\n    var textRect = textEl.getBoundingRect();\n    var subText = titleModel.get('subtext');\n    var subTextEl = new graphic.Text({\n      style: createTextStyle(subtextStyleModel, {\n        text: subText,\n        fill: subtextStyleModel.getTextColor(),\n        y: textRect.height + titleModel.get('itemGap'),\n        verticalAlign: 'top'\n      }, {\n        disableBox: true\n      }),\n      z2: 10\n    });\n    var link = titleModel.get('link');\n    var sublink = titleModel.get('sublink');\n    var triggerEvent = titleModel.get('triggerEvent', true);\n    textEl.silent = !link && !triggerEvent;\n    subTextEl.silent = !sublink && !triggerEvent;\n\n    if (link) {\n      textEl.on('click', function () {\n        windowOpen(link, '_' + titleModel.get('target'));\n      });\n    }\n\n    if (sublink) {\n      subTextEl.on('click', function () {\n        windowOpen(sublink, '_' + titleModel.get('subtarget'));\n      });\n    }\n\n    getECData(textEl).eventData = getECData(subTextEl).eventData = triggerEvent ? {\n      componentType: 'title',\n      componentIndex: titleModel.componentIndex\n    } : null;\n    group.add(textEl);\n    subText && group.add(subTextEl);\n    var groupRect = group.getBoundingRect();\n    var layoutOption = titleModel.getBoxLayoutParams();\n    layoutOption.width = groupRect.width;\n    layoutOption.height = groupRect.height;\n    var layoutRect = getLayoutRect(layoutOption, {\n      width: api.getWidth(),\n      height: api.getHeight()\n    }, titleModel.get('padding'));\n\n    if (!textAlign) {\n      textAlign = titleModel.get('left') || titleModel.get('right');\n\n      if (textAlign === 'middle') {\n        textAlign = 'center';\n      }\n\n      if (textAlign === 'right') {\n        layoutRect.x += layoutRect.width;\n      } else if (textAlign === 'center') {\n        layoutRect.x += layoutRect.width / 2;\n      }\n    }\n\n    if (!textVerticalAlign) {\n      textVerticalAlign = titleModel.get('top') || titleModel.get('bottom');\n\n      if (textVerticalAlign === 'center') {\n        textVerticalAlign = 'middle';\n      }\n\n      if (textVerticalAlign === 'bottom') {\n        layoutRect.y += layoutRect.height;\n      } else if (textVerticalAlign === 'middle') {\n        layoutRect.y += layoutRect.height / 2;\n      }\n\n      textVerticalAlign = textVerticalAlign || 'top';\n    }\n\n    group.x = layoutRect.x;\n    group.y = layoutRect.y;\n    group.markRedraw();\n    var alignStyle = {\n      align: textAlign,\n      verticalAlign: textVerticalAlign\n    };\n    textEl.setStyle(alignStyle);\n    subTextEl.setStyle(alignStyle);\n    groupRect = group.getBoundingRect();\n    var padding = layoutRect.margin;\n    var style = titleModel.getItemStyle(['color', 'opacity']);\n    style.fill = titleModel.get('backgroundColor');\n    var rect = new graphic.Rect({\n      shape: {\n        x: groupRect.x - padding[3],\n        y: groupRect.y - padding[0],\n        width: groupRect.width + padding[1] + padding[3],\n        height: groupRect.height + padding[0] + padding[2],\n        r: titleModel.get('borderRadius')\n      },\n      style: style,\n      subPixelOptimize: true,\n      silent: true\n    });\n    group.add(rect);\n  };\n\n  TitleView.type = 'title';\n  return TitleView;\n}(ComponentView);\n\nexport function install(registers) {\n  registers.registerComponentModel(TitleModel);\n  registers.registerComponentView(TitleView);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\nimport List from '../../data/List';\nimport { each, isObject, clone } from 'zrender/lib/core/util';\nimport { convertOptionIdName, getDataItemValue } from '../../util/model';\n\nvar TimelineModel = function (_super) {\n  __extends(TimelineModel, _super);\n\n  function TimelineModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TimelineModel.type;\n    _this.layoutMode = 'box';\n    return _this;\n  }\n\n  TimelineModel.prototype.init = function (option, parentModel, ecModel) {\n    this.mergeDefaultAndTheme(option, ecModel);\n\n    this._initData();\n  };\n\n  TimelineModel.prototype.mergeOption = function (option) {\n    _super.prototype.mergeOption.apply(this, arguments);\n\n    this._initData();\n  };\n\n  TimelineModel.prototype.setCurrentIndex = function (currentIndex) {\n    if (currentIndex == null) {\n      currentIndex = this.option.currentIndex;\n    }\n\n    var count = this._data.count();\n\n    if (this.option.loop) {\n      currentIndex = (currentIndex % count + count) % count;\n    } else {\n      currentIndex >= count && (currentIndex = count - 1);\n      currentIndex < 0 && (currentIndex = 0);\n    }\n\n    this.option.currentIndex = currentIndex;\n  };\n\n  TimelineModel.prototype.getCurrentIndex = function () {\n    return this.option.currentIndex;\n  };\n\n  TimelineModel.prototype.isIndexMax = function () {\n    return this.getCurrentIndex() >= this._data.count() - 1;\n  };\n\n  TimelineModel.prototype.setPlayState = function (state) {\n    this.option.autoPlay = !!state;\n  };\n\n  TimelineModel.prototype.getPlayState = function () {\n    return !!this.option.autoPlay;\n  };\n\n  TimelineModel.prototype._initData = function () {\n    var thisOption = this.option;\n    var dataArr = thisOption.data || [];\n    var axisType = thisOption.axisType;\n    var names = this._names = [];\n    var processedDataArr;\n\n    if (axisType === 'category') {\n      processedDataArr = [];\n      each(dataArr, function (item, index) {\n        var value = convertOptionIdName(getDataItemValue(item), '');\n        var newItem;\n\n        if (isObject(item)) {\n          newItem = clone(item);\n          newItem.value = index;\n        } else {\n          newItem = index;\n        }\n\n        processedDataArr.push(newItem);\n        names.push(value);\n      });\n    } else {\n      processedDataArr = dataArr;\n    }\n\n    var dimType = {\n      category: 'ordinal',\n      time: 'time',\n      value: 'number'\n    }[axisType] || 'number';\n    var data = this._data = new List([{\n      name: 'value',\n      type: dimType\n    }], this);\n    data.initData(processedDataArr, names);\n  };\n\n  TimelineModel.prototype.getData = function () {\n    return this._data;\n  };\n\n  TimelineModel.prototype.getCategories = function () {\n    if (this.get('axisType') === 'category') {\n      return this._names.slice();\n    }\n  };\n\n  TimelineModel.type = 'timeline';\n  TimelineModel.defaultOption = {\n    zlevel: 0,\n    z: 4,\n    show: true,\n    axisType: 'time',\n    realtime: true,\n    left: '20%',\n    top: null,\n    right: '20%',\n    bottom: 0,\n    width: null,\n    height: 40,\n    padding: 5,\n    controlPosition: 'left',\n    autoPlay: false,\n    rewind: false,\n    loop: true,\n    playInterval: 2000,\n    currentIndex: 0,\n    itemStyle: {},\n    label: {\n      color: '#000'\n    },\n    data: []\n  };\n  return TimelineModel;\n}(ComponentModel);\n\nexport default TimelineModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport TimelineModel from './TimelineModel';\nimport { DataFormatMixin } from '../../model/mixin/dataFormat';\nimport { mixin } from 'zrender/lib/core/util';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar SliderTimelineModel = function (_super) {\n  __extends(SliderTimelineModel, _super);\n\n  function SliderTimelineModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SliderTimelineModel.type;\n    return _this;\n  }\n\n  SliderTimelineModel.type = 'timeline.slider';\n  SliderTimelineModel.defaultOption = inheritDefaultOption(TimelineModel.defaultOption, {\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderColor: '#ccc',\n    borderWidth: 0,\n    orient: 'horizontal',\n    inverse: false,\n    tooltip: {\n      trigger: 'item'\n    },\n    symbol: 'circle',\n    symbolSize: 12,\n    lineStyle: {\n      show: true,\n      width: 2,\n      color: '#DAE1F5'\n    },\n    label: {\n      position: 'auto',\n      show: true,\n      interval: 'auto',\n      rotate: 0,\n      color: '#A4B1D7'\n    },\n    itemStyle: {\n      color: '#A4B1D7',\n      borderWidth: 1\n    },\n    checkpointStyle: {\n      symbol: 'circle',\n      symbolSize: 15,\n      color: '#316bf3',\n      borderColor: '#fff',\n      borderWidth: 2,\n      shadowBlur: 2,\n      shadowOffsetX: 1,\n      shadowOffsetY: 1,\n      shadowColor: 'rgba(0, 0, 0, 0.3)',\n      animation: true,\n      animationDuration: 300,\n      animationEasing: 'quinticInOut'\n    },\n    controlStyle: {\n      show: true,\n      showPlayBtn: true,\n      showPrevBtn: true,\n      showNextBtn: true,\n      itemSize: 24,\n      itemGap: 12,\n      position: 'left',\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',\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',\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',\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',\n      prevBtnSize: 18,\n      nextBtnSize: 18,\n      color: '#A4B1D7',\n      borderColor: '#A4B1D7',\n      borderWidth: 1\n    },\n    emphasis: {\n      label: {\n        show: true,\n        color: '#6f778d'\n      },\n      itemStyle: {\n        color: '#316BF3'\n      },\n      controlStyle: {\n        color: '#316BF3',\n        borderColor: '#316BF3',\n        borderWidth: 2\n      }\n    },\n    progress: {\n      lineStyle: {\n        color: '#316BF3'\n      },\n      itemStyle: {\n        color: '#316BF3'\n      },\n      label: {\n        color: '#6f778d'\n      }\n    },\n    data: []\n  });\n  return SliderTimelineModel;\n}(TimelineModel);\n\nmixin(SliderTimelineModel, DataFormatMixin.prototype);\nexport default SliderTimelineModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component';\n\nvar TimelineView = function (_super) {\n  __extends(TimelineView, _super);\n\n  function TimelineView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = TimelineView.type;\n    return _this;\n  }\n\n  TimelineView.type = 'timeline';\n  return TimelineView;\n}(ComponentView);\n\nexport default TimelineView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Axis from '../../coord/Axis';\n\nvar TimelineAxis = function (_super) {\n  __extends(TimelineAxis, _super);\n\n  function TimelineAxis(dim, scale, coordExtent, axisType) {\n    var _this = _super.call(this, dim, scale, coordExtent) || this;\n\n    _this.type = axisType || 'value';\n    return _this;\n  }\n\n  TimelineAxis.prototype.getLabelModel = function () {\n    return this.model.getModel('label');\n  };\n\n  TimelineAxis.prototype.isHorizontal = function () {\n    return this.model.get('orient') === 'horizontal';\n  };\n\n  return TimelineAxis;\n}(Axis);\n\nexport default TimelineAxis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport * as graphic from '../../util/graphic';\nimport { createTextStyle } from '../../label/labelStyle';\nimport * as layout from '../../util/layout';\nimport TimelineView from './TimelineView';\nimport TimelineAxis from './TimelineAxis';\nimport { createSymbol } from '../../util/symbol';\nimport * as numberUtil from '../../util/number';\nimport { merge, each, extend, isString, bind, defaults, retrieve2 } from 'zrender/lib/core/util';\nimport OrdinalScale from '../../scale/Ordinal';\nimport TimeScale from '../../scale/Time';\nimport IntervalScale from '../../scale/Interval';\nimport { parsePercent } from 'zrender/lib/contain/text';\nimport { makeInner } from '../../util/model';\nimport { getECData } from '../../util/innerStore';\nimport { enableHoverEmphasis } from '../../util/states';\nimport { createTooltipMarkup } from '../tooltip/tooltipMarkup';\nvar PI = Math.PI;\nvar labelDataIndexStore = makeInner();\n\nvar SliderTimelineView = function (_super) {\n  __extends(SliderTimelineView, _super);\n\n  function SliderTimelineView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SliderTimelineView.type;\n    return _this;\n  }\n\n  SliderTimelineView.prototype.init = function (ecModel, api) {\n    this.api = api;\n  };\n\n  SliderTimelineView.prototype.render = function (timelineModel, ecModel, api) {\n    this.model = timelineModel;\n    this.api = api;\n    this.ecModel = ecModel;\n    this.group.removeAll();\n\n    if (timelineModel.get('show', true)) {\n      var layoutInfo_1 = this._layout(timelineModel, api);\n\n      var mainGroup_1 = this._createGroup('_mainGroup');\n\n      var labelGroup = this._createGroup('_labelGroup');\n\n      var axis_1 = this._axis = this._createAxis(layoutInfo_1, timelineModel);\n\n      timelineModel.formatTooltip = function (dataIndex) {\n        var name = axis_1.scale.getLabel({\n          value: dataIndex\n        });\n        return createTooltipMarkup('nameValue', {\n          noName: true,\n          value: name\n        });\n      };\n\n      each(['AxisLine', 'AxisTick', 'Control', 'CurrentPointer'], function (name) {\n        this['_render' + name](layoutInfo_1, mainGroup_1, axis_1, timelineModel);\n      }, this);\n\n      this._renderAxisLabel(layoutInfo_1, labelGroup, axis_1, timelineModel);\n\n      this._position(layoutInfo_1, timelineModel);\n    }\n\n    this._doPlayStop();\n\n    this._updateTicksStatus();\n  };\n\n  SliderTimelineView.prototype.remove = function () {\n    this._clearTimer();\n\n    this.group.removeAll();\n  };\n\n  SliderTimelineView.prototype.dispose = function () {\n    this._clearTimer();\n  };\n\n  SliderTimelineView.prototype._layout = function (timelineModel, api) {\n    var labelPosOpt = timelineModel.get(['label', 'position']);\n    var orient = timelineModel.get('orient');\n    var viewRect = getViewRect(timelineModel, api);\n    var parsedLabelPos;\n\n    if (labelPosOpt == null || labelPosOpt === 'auto') {\n      parsedLabelPos = orient === 'horizontal' ? viewRect.y + viewRect.height / 2 < api.getHeight() / 2 ? '-' : '+' : viewRect.x + viewRect.width / 2 < api.getWidth() / 2 ? '+' : '-';\n    } else if (isString(labelPosOpt)) {\n      parsedLabelPos = {\n        horizontal: {\n          top: '-',\n          bottom: '+'\n        },\n        vertical: {\n          left: '-',\n          right: '+'\n        }\n      }[orient][labelPosOpt];\n    } else {\n      parsedLabelPos = labelPosOpt;\n    }\n\n    var labelAlignMap = {\n      horizontal: 'center',\n      vertical: parsedLabelPos >= 0 || parsedLabelPos === '+' ? 'left' : 'right'\n    };\n    var labelBaselineMap = {\n      horizontal: parsedLabelPos >= 0 || parsedLabelPos === '+' ? 'top' : 'bottom',\n      vertical: 'middle'\n    };\n    var rotationMap = {\n      horizontal: 0,\n      vertical: PI / 2\n    };\n    var mainLength = orient === 'vertical' ? viewRect.height : viewRect.width;\n    var controlModel = timelineModel.getModel('controlStyle');\n    var showControl = controlModel.get('show', true);\n    var controlSize = showControl ? controlModel.get('itemSize') : 0;\n    var controlGap = showControl ? controlModel.get('itemGap') : 0;\n    var sizePlusGap = controlSize + controlGap;\n    var labelRotation = timelineModel.get(['label', 'rotate']) || 0;\n    labelRotation = labelRotation * PI / 180;\n    var playPosition;\n    var prevBtnPosition;\n    var nextBtnPosition;\n    var controlPosition = controlModel.get('position', true);\n    var showPlayBtn = showControl && controlModel.get('showPlayBtn', true);\n    var showPrevBtn = showControl && controlModel.get('showPrevBtn', true);\n    var showNextBtn = showControl && controlModel.get('showNextBtn', true);\n    var xLeft = 0;\n    var xRight = mainLength;\n\n    if (controlPosition === 'left' || controlPosition === 'bottom') {\n      showPlayBtn && (playPosition = [0, 0], xLeft += sizePlusGap);\n      showPrevBtn && (prevBtnPosition = [xLeft, 0], xLeft += sizePlusGap);\n      showNextBtn && (nextBtnPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\n    } else {\n      showPlayBtn && (playPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\n      showPrevBtn && (prevBtnPosition = [0, 0], xLeft += sizePlusGap);\n      showNextBtn && (nextBtnPosition = [xRight - controlSize, 0], xRight -= sizePlusGap);\n    }\n\n    var axisExtent = [xLeft, xRight];\n\n    if (timelineModel.get('inverse')) {\n      axisExtent.reverse();\n    }\n\n    return {\n      viewRect: viewRect,\n      mainLength: mainLength,\n      orient: orient,\n      rotation: rotationMap[orient],\n      labelRotation: labelRotation,\n      labelPosOpt: parsedLabelPos,\n      labelAlign: timelineModel.get(['label', 'align']) || labelAlignMap[orient],\n      labelBaseline: timelineModel.get(['label', 'verticalAlign']) || timelineModel.get(['label', 'baseline']) || labelBaselineMap[orient],\n      playPosition: playPosition,\n      prevBtnPosition: prevBtnPosition,\n      nextBtnPosition: nextBtnPosition,\n      axisExtent: axisExtent,\n      controlSize: controlSize,\n      controlGap: controlGap\n    };\n  };\n\n  SliderTimelineView.prototype._position = function (layoutInfo, timelineModel) {\n    var mainGroup = this._mainGroup;\n    var labelGroup = this._labelGroup;\n    var viewRect = layoutInfo.viewRect;\n\n    if (layoutInfo.orient === 'vertical') {\n      var m = matrix.create();\n      var rotateOriginX = viewRect.x;\n      var rotateOriginY = viewRect.y + viewRect.height;\n      matrix.translate(m, m, [-rotateOriginX, -rotateOriginY]);\n      matrix.rotate(m, m, -PI / 2);\n      matrix.translate(m, m, [rotateOriginX, rotateOriginY]);\n      viewRect = viewRect.clone();\n      viewRect.applyTransform(m);\n    }\n\n    var viewBound = getBound(viewRect);\n    var mainBound = getBound(mainGroup.getBoundingRect());\n    var labelBound = getBound(labelGroup.getBoundingRect());\n    var mainPosition = [mainGroup.x, mainGroup.y];\n    var labelsPosition = [labelGroup.x, labelGroup.y];\n    labelsPosition[0] = mainPosition[0] = viewBound[0][0];\n    var labelPosOpt = layoutInfo.labelPosOpt;\n\n    if (labelPosOpt == null || isString(labelPosOpt)) {\n      var mainBoundIdx = labelPosOpt === '+' ? 0 : 1;\n      toBound(mainPosition, mainBound, viewBound, 1, mainBoundIdx);\n      toBound(labelsPosition, labelBound, viewBound, 1, 1 - mainBoundIdx);\n    } else {\n      var mainBoundIdx = labelPosOpt >= 0 ? 0 : 1;\n      toBound(mainPosition, mainBound, viewBound, 1, mainBoundIdx);\n      labelsPosition[1] = mainPosition[1] + labelPosOpt;\n    }\n\n    mainGroup.setPosition(mainPosition);\n    labelGroup.setPosition(labelsPosition);\n    mainGroup.rotation = labelGroup.rotation = layoutInfo.rotation;\n    setOrigin(mainGroup);\n    setOrigin(labelGroup);\n\n    function setOrigin(targetGroup) {\n      targetGroup.originX = viewBound[0][0] - targetGroup.x;\n      targetGroup.originY = viewBound[1][0] - targetGroup.y;\n    }\n\n    function getBound(rect) {\n      return [[rect.x, rect.x + rect.width], [rect.y, rect.y + rect.height]];\n    }\n\n    function toBound(fromPos, from, to, dimIdx, boundIdx) {\n      fromPos[dimIdx] += to[dimIdx][boundIdx] - from[dimIdx][boundIdx];\n    }\n  };\n\n  SliderTimelineView.prototype._createAxis = function (layoutInfo, timelineModel) {\n    var data = timelineModel.getData();\n    var axisType = timelineModel.get('axisType');\n    var scale = createScaleByModel(timelineModel, axisType);\n\n    scale.getTicks = function () {\n      return data.mapArray(['value'], function (value) {\n        return {\n          value: value\n        };\n      });\n    };\n\n    var dataExtent = data.getDataExtent('value');\n    scale.setExtent(dataExtent[0], dataExtent[1]);\n    scale.niceTicks();\n    var axis = new TimelineAxis('value', scale, layoutInfo.axisExtent, axisType);\n    axis.model = timelineModel;\n    return axis;\n  };\n\n  SliderTimelineView.prototype._createGroup = function (key) {\n    var newGroup = this[key] = new graphic.Group();\n    this.group.add(newGroup);\n    return newGroup;\n  };\n\n  SliderTimelineView.prototype._renderAxisLine = function (layoutInfo, group, axis, timelineModel) {\n    var axisExtent = axis.getExtent();\n\n    if (!timelineModel.get(['lineStyle', 'show'])) {\n      return;\n    }\n\n    var line = new graphic.Line({\n      shape: {\n        x1: axisExtent[0],\n        y1: 0,\n        x2: axisExtent[1],\n        y2: 0\n      },\n      style: extend({\n        lineCap: 'round'\n      }, timelineModel.getModel('lineStyle').getLineStyle()),\n      silent: true,\n      z2: 1\n    });\n    group.add(line);\n    var progressLine = this._progressLine = new graphic.Line({\n      shape: {\n        x1: axisExtent[0],\n        x2: this._currentPointer ? this._currentPointer.x : axisExtent[0],\n        y1: 0,\n        y2: 0\n      },\n      style: defaults({\n        lineCap: 'round',\n        lineWidth: line.style.lineWidth\n      }, timelineModel.getModel(['progress', 'lineStyle']).getLineStyle()),\n      silent: true,\n      z2: 1\n    });\n    group.add(progressLine);\n  };\n\n  SliderTimelineView.prototype._renderAxisTick = function (layoutInfo, group, axis, timelineModel) {\n    var _this = this;\n\n    var data = timelineModel.getData();\n    var ticks = axis.scale.getTicks();\n    this._tickSymbols = [];\n    each(ticks, function (tick) {\n      var tickCoord = axis.dataToCoord(tick.value);\n      var itemModel = data.getItemModel(tick.value);\n      var itemStyleModel = itemModel.getModel('itemStyle');\n      var hoverStyleModel = itemModel.getModel(['emphasis', 'itemStyle']);\n      var progressStyleModel = itemModel.getModel(['progress', 'itemStyle']);\n      var symbolOpt = {\n        x: tickCoord,\n        y: 0,\n        onclick: bind(_this._changeTimeline, _this, tick.value)\n      };\n      var el = giveSymbol(itemModel, itemStyleModel, group, symbolOpt);\n      el.ensureState('emphasis').style = hoverStyleModel.getItemStyle();\n      el.ensureState('progress').style = progressStyleModel.getItemStyle();\n      enableHoverEmphasis(el);\n      var ecData = getECData(el);\n\n      if (itemModel.get('tooltip')) {\n        ecData.dataIndex = tick.value;\n        ecData.dataModel = timelineModel;\n      } else {\n        ecData.dataIndex = ecData.dataModel = null;\n      }\n\n      _this._tickSymbols.push(el);\n    });\n  };\n\n  SliderTimelineView.prototype._renderAxisLabel = function (layoutInfo, group, axis, timelineModel) {\n    var _this = this;\n\n    var labelModel = axis.getLabelModel();\n\n    if (!labelModel.get('show')) {\n      return;\n    }\n\n    var data = timelineModel.getData();\n    var labels = axis.getViewLabels();\n    this._tickLabels = [];\n    each(labels, function (labelItem) {\n      var dataIndex = labelItem.tickValue;\n      var itemModel = data.getItemModel(dataIndex);\n      var normalLabelModel = itemModel.getModel('label');\n      var hoverLabelModel = itemModel.getModel(['emphasis', 'label']);\n      var progressLabelModel = itemModel.getModel(['progress', 'label']);\n      var tickCoord = axis.dataToCoord(labelItem.tickValue);\n      var textEl = new graphic.Text({\n        x: tickCoord,\n        y: 0,\n        rotation: layoutInfo.labelRotation - layoutInfo.rotation,\n        onclick: bind(_this._changeTimeline, _this, dataIndex),\n        silent: false,\n        style: createTextStyle(normalLabelModel, {\n          text: labelItem.formattedLabel,\n          align: layoutInfo.labelAlign,\n          verticalAlign: layoutInfo.labelBaseline\n        })\n      });\n      textEl.ensureState('emphasis').style = createTextStyle(hoverLabelModel);\n      textEl.ensureState('progress').style = createTextStyle(progressLabelModel);\n      group.add(textEl);\n      enableHoverEmphasis(textEl);\n      labelDataIndexStore(textEl).dataIndex = dataIndex;\n\n      _this._tickLabels.push(textEl);\n    });\n  };\n\n  SliderTimelineView.prototype._renderControl = function (layoutInfo, group, axis, timelineModel) {\n    var controlSize = layoutInfo.controlSize;\n    var rotation = layoutInfo.rotation;\n    var itemStyle = timelineModel.getModel('controlStyle').getItemStyle();\n    var hoverStyle = timelineModel.getModel(['emphasis', 'controlStyle']).getItemStyle();\n    var playState = timelineModel.getPlayState();\n    var inverse = timelineModel.get('inverse', true);\n    makeBtn(layoutInfo.nextBtnPosition, 'next', bind(this._changeTimeline, this, inverse ? '-' : '+'));\n    makeBtn(layoutInfo.prevBtnPosition, 'prev', bind(this._changeTimeline, this, inverse ? '+' : '-'));\n    makeBtn(layoutInfo.playPosition, playState ? 'stop' : 'play', bind(this._handlePlayClick, this, !playState), true);\n\n    function makeBtn(position, iconName, onclick, willRotate) {\n      if (!position) {\n        return;\n      }\n\n      var iconSize = parsePercent(retrieve2(timelineModel.get(['controlStyle', iconName + 'BtnSize']), controlSize), controlSize);\n      var rect = [0, -iconSize / 2, iconSize, iconSize];\n      var opt = {\n        position: position,\n        origin: [controlSize / 2, 0],\n        rotation: willRotate ? -rotation : 0,\n        rectHover: true,\n        style: itemStyle,\n        onclick: onclick\n      };\n      var btn = makeControlIcon(timelineModel, iconName + 'Icon', rect, opt);\n      btn.ensureState('emphasis').style = hoverStyle;\n      group.add(btn);\n      enableHoverEmphasis(btn);\n    }\n  };\n\n  SliderTimelineView.prototype._renderCurrentPointer = function (layoutInfo, group, axis, timelineModel) {\n    var data = timelineModel.getData();\n    var currentIndex = timelineModel.getCurrentIndex();\n    var pointerModel = data.getItemModel(currentIndex).getModel('checkpointStyle');\n    var me = this;\n    var callback = {\n      onCreate: function (pointer) {\n        pointer.draggable = true;\n        pointer.drift = bind(me._handlePointerDrag, me);\n        pointer.ondragend = bind(me._handlePointerDragend, me);\n        pointerMoveTo(pointer, me._progressLine, currentIndex, axis, timelineModel, true);\n      },\n      onUpdate: function (pointer) {\n        pointerMoveTo(pointer, me._progressLine, currentIndex, axis, timelineModel);\n      }\n    };\n    this._currentPointer = giveSymbol(pointerModel, pointerModel, this._mainGroup, {}, this._currentPointer, callback);\n  };\n\n  SliderTimelineView.prototype._handlePlayClick = function (nextState) {\n    this._clearTimer();\n\n    this.api.dispatchAction({\n      type: 'timelinePlayChange',\n      playState: nextState,\n      from: this.uid\n    });\n  };\n\n  SliderTimelineView.prototype._handlePointerDrag = function (dx, dy, e) {\n    this._clearTimer();\n\n    this._pointerChangeTimeline([e.offsetX, e.offsetY]);\n  };\n\n  SliderTimelineView.prototype._handlePointerDragend = function (e) {\n    this._pointerChangeTimeline([e.offsetX, e.offsetY], true);\n  };\n\n  SliderTimelineView.prototype._pointerChangeTimeline = function (mousePos, trigger) {\n    var toCoord = this._toAxisCoord(mousePos)[0];\n\n    var axis = this._axis;\n    var axisExtent = numberUtil.asc(axis.getExtent().slice());\n    toCoord > axisExtent[1] && (toCoord = axisExtent[1]);\n    toCoord < axisExtent[0] && (toCoord = axisExtent[0]);\n    this._currentPointer.x = toCoord;\n\n    this._currentPointer.markRedraw();\n\n    this._progressLine.shape.x2 = toCoord;\n\n    this._progressLine.dirty();\n\n    var targetDataIndex = this._findNearestTick(toCoord);\n\n    var timelineModel = this.model;\n\n    if (trigger || targetDataIndex !== timelineModel.getCurrentIndex() && timelineModel.get('realtime')) {\n      this._changeTimeline(targetDataIndex);\n    }\n  };\n\n  SliderTimelineView.prototype._doPlayStop = function () {\n    var _this = this;\n\n    this._clearTimer();\n\n    if (this.model.getPlayState()) {\n      this._timer = setTimeout(function () {\n        var timelineModel = _this.model;\n\n        _this._changeTimeline(timelineModel.getCurrentIndex() + (timelineModel.get('rewind', true) ? -1 : 1));\n      }, this.model.get('playInterval'));\n    }\n  };\n\n  SliderTimelineView.prototype._toAxisCoord = function (vertex) {\n    var trans = this._mainGroup.getLocalTransform();\n\n    return graphic.applyTransform(vertex, trans, true);\n  };\n\n  SliderTimelineView.prototype._findNearestTick = function (axisCoord) {\n    var data = this.model.getData();\n    var dist = Infinity;\n    var targetDataIndex;\n    var axis = this._axis;\n    data.each(['value'], function (value, dataIndex) {\n      var coord = axis.dataToCoord(value);\n      var d = Math.abs(coord - axisCoord);\n\n      if (d < dist) {\n        dist = d;\n        targetDataIndex = dataIndex;\n      }\n    });\n    return targetDataIndex;\n  };\n\n  SliderTimelineView.prototype._clearTimer = function () {\n    if (this._timer) {\n      clearTimeout(this._timer);\n      this._timer = null;\n    }\n  };\n\n  SliderTimelineView.prototype._changeTimeline = function (nextIndex) {\n    var currentIndex = this.model.getCurrentIndex();\n\n    if (nextIndex === '+') {\n      nextIndex = currentIndex + 1;\n    } else if (nextIndex === '-') {\n      nextIndex = currentIndex - 1;\n    }\n\n    this.api.dispatchAction({\n      type: 'timelineChange',\n      currentIndex: nextIndex,\n      from: this.uid\n    });\n  };\n\n  SliderTimelineView.prototype._updateTicksStatus = function () {\n    var currentIndex = this.model.getCurrentIndex();\n    var tickSymbols = this._tickSymbols;\n    var tickLabels = this._tickLabels;\n\n    if (tickSymbols) {\n      for (var i = 0; i < tickSymbols.length; i++) {\n        tickSymbols && tickSymbols[i] && tickSymbols[i].toggleState('progress', i < currentIndex);\n      }\n    }\n\n    if (tickLabels) {\n      for (var i = 0; i < tickLabels.length; i++) {\n        tickLabels && tickLabels[i] && tickLabels[i].toggleState('progress', labelDataIndexStore(tickLabels[i]).dataIndex <= currentIndex);\n      }\n    }\n  };\n\n  SliderTimelineView.type = 'timeline.slider';\n  return SliderTimelineView;\n}(TimelineView);\n\nfunction createScaleByModel(model, axisType) {\n  axisType = axisType || model.get('type');\n\n  if (axisType) {\n    switch (axisType) {\n      case 'category':\n        return new OrdinalScale({\n          ordinalMeta: model.getCategories(),\n          extent: [Infinity, -Infinity]\n        });\n\n      case 'time':\n        return new TimeScale({\n          locale: model.ecModel.getLocaleModel(),\n          useUTC: model.ecModel.get('useUTC')\n        });\n\n      default:\n        return new IntervalScale();\n    }\n  }\n}\n\nfunction getViewRect(model, api) {\n  return layout.getLayoutRect(model.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  }, model.get('padding'));\n}\n\nfunction makeControlIcon(timelineModel, objPath, rect, opts) {\n  var style = opts.style;\n  var icon = graphic.createIcon(timelineModel.get(['controlStyle', objPath]), opts || {}, new BoundingRect(rect[0], rect[1], rect[2], rect[3]));\n\n  if (style) {\n    icon.setStyle(style);\n  }\n\n  return icon;\n}\n\nfunction giveSymbol(hostModel, itemStyleModel, group, opt, symbol, callback) {\n  var color = itemStyleModel.get('color');\n\n  if (!symbol) {\n    var symbolType = hostModel.get('symbol');\n    symbol = createSymbol(symbolType, -1, -1, 2, 2, color);\n    symbol.setStyle('strokeNoScale', true);\n    group.add(symbol);\n    callback && callback.onCreate(symbol);\n  } else {\n    symbol.setColor(color);\n    group.add(symbol);\n    callback && callback.onUpdate(symbol);\n  }\n\n  var itemStyle = itemStyleModel.getItemStyle(['color']);\n  symbol.setStyle(itemStyle);\n  opt = merge({\n    rectHover: true,\n    z2: 100\n  }, opt, true);\n  var symbolSize = hostModel.get('symbolSize');\n  symbolSize = symbolSize instanceof Array ? symbolSize.slice() : [+symbolSize, +symbolSize];\n  opt.scaleX = symbolSize[0] / 2;\n  opt.scaleY = symbolSize[1] / 2;\n  var symbolOffset = hostModel.get('symbolOffset');\n\n  if (symbolOffset) {\n    opt.x = opt.x || 0;\n    opt.y = opt.y || 0;\n    opt.x += numberUtil.parsePercent(symbolOffset[0], symbolSize[0]);\n    opt.y += numberUtil.parsePercent(symbolOffset[1], symbolSize[1]);\n  }\n\n  var symbolRotate = hostModel.get('symbolRotate');\n  opt.rotation = (symbolRotate || 0) * Math.PI / 180 || 0;\n  symbol.attr(opt);\n  symbol.updateTransform();\n  return symbol;\n}\n\nfunction pointerMoveTo(pointer, progressLine, dataIndex, axis, timelineModel, noAnimation) {\n  if (pointer.dragging) {\n    return;\n  }\n\n  var pointerModel = timelineModel.getModel('checkpointStyle');\n  var toCoord = axis.dataToCoord(timelineModel.getData().get('value', dataIndex));\n\n  if (noAnimation || !pointerModel.get('animation', true)) {\n    pointer.attr({\n      x: toCoord,\n      y: 0\n    });\n    progressLine && progressLine.attr({\n      shape: {\n        x2: toCoord\n      }\n    });\n  } else {\n    var animationCfg = {\n      duration: pointerModel.get('animationDuration', true),\n      easing: pointerModel.get('animationEasing', true)\n    };\n    pointer.stopAnimation(null, true);\n    pointer.animateTo({\n      x: toCoord,\n      y: 0\n    }, animationCfg);\n    progressLine && progressLine.animateTo({\n      shape: {\n        x2: toCoord\n      }\n    }, animationCfg);\n  }\n}\n\nexport default SliderTimelineView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { defaults } from 'zrender/lib/core/util';\nexport function installTimelineAction(registers) {\n  registers.registerAction({\n    type: 'timelineChange',\n    event: 'timelineChanged',\n    update: 'prepareAndUpdate'\n  }, function (payload, ecModel) {\n    var timelineModel = ecModel.getComponent('timeline');\n\n    if (timelineModel && payload.currentIndex != null) {\n      timelineModel.setCurrentIndex(payload.currentIndex);\n\n      if (!timelineModel.get('loop', true) && timelineModel.isIndexMax()) {\n        timelineModel.setPlayState(false);\n      }\n    }\n\n    ecModel.resetOption('timeline', {\n      replaceMerge: timelineModel.get('replaceMerge', true)\n    });\n    return defaults({\n      currentIndex: timelineModel.option.currentIndex\n    }, payload);\n  });\n  registers.registerAction({\n    type: 'timelinePlayChange',\n    event: 'timelinePlayChanged',\n    update: 'update'\n  }, function (payload, ecModel) {\n    var timelineModel = ecModel.getComponent('timeline');\n\n    if (timelineModel && payload.playState != null) {\n      timelineModel.setPlayState(payload.playState);\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function timelinePreprocessor(option) {\n  var timelineOpt = option && option.timeline;\n\n  if (!zrUtil.isArray(timelineOpt)) {\n    timelineOpt = timelineOpt ? [timelineOpt] : [];\n  }\n\n  zrUtil.each(timelineOpt, function (opt) {\n    if (!opt) {\n      return;\n    }\n\n    compatibleEC2(opt);\n  });\n}\n\nfunction compatibleEC2(opt) {\n  var type = opt.type;\n  var ec2Types = {\n    'number': 'value',\n    'time': 'time'\n  };\n\n  if (ec2Types[type]) {\n    opt.axisType = ec2Types[type];\n    delete opt.type;\n  }\n\n  transferItem(opt);\n\n  if (has(opt, 'controlPosition')) {\n    var controlStyle = opt.controlStyle || (opt.controlStyle = {});\n\n    if (!has(controlStyle, 'position')) {\n      controlStyle.position = opt.controlPosition;\n    }\n\n    if (controlStyle.position === 'none' && !has(controlStyle, 'show')) {\n      controlStyle.show = false;\n      delete controlStyle.position;\n    }\n\n    delete opt.controlPosition;\n  }\n\n  zrUtil.each(opt.data || [], function (dataItem) {\n    if (zrUtil.isObject(dataItem) && !zrUtil.isArray(dataItem)) {\n      if (!has(dataItem, 'value') && has(dataItem, 'name')) {\n        dataItem.value = dataItem.name;\n      }\n\n      transferItem(dataItem);\n    }\n  });\n}\n\nfunction transferItem(opt) {\n  var itemStyle = opt.itemStyle || (opt.itemStyle = {});\n  var itemStyleEmphasis = itemStyle.emphasis || (itemStyle.emphasis = {});\n  var label = opt.label || opt.label || {};\n  var labelNormal = label.normal || (label.normal = {});\n  var excludeLabelAttr = {\n    normal: 1,\n    emphasis: 1\n  };\n  zrUtil.each(label, function (value, name) {\n    if (!excludeLabelAttr[name] && !has(labelNormal, name)) {\n      labelNormal[name] = value;\n    }\n  });\n\n  if (itemStyleEmphasis.label && !has(label, 'emphasis')) {\n    label.emphasis = itemStyleEmphasis.label;\n    delete itemStyleEmphasis.label;\n  }\n}\n\nfunction has(obj, attr) {\n  return obj.hasOwnProperty(attr);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SliderTimelineModel from './SliderTimelineModel';\nimport SliderTimelineView from './SliderTimelineView';\nimport { installTimelineAction } from './timelineAction';\nimport preprocessor from './preprocessor';\nexport function install(registers) {\n  registers.registerComponentModel(SliderTimelineModel);\n  registers.registerComponentView(SliderTimelineView);\n  registers.registerSubTypeDefaulter('timeline', function () {\n    return 'slider';\n  });\n  installTimelineAction(registers);\n  registers.registerPreprocessor(preprocessor);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport { DataFormatMixin } from '../../model/mixin/dataFormat';\nimport ComponentModel from '../../model/Component';\nimport { makeInner, defaultEmphasis } from '../../util/model';\nimport { createTooltipMarkup } from '../tooltip/tooltipMarkup';\n\nfunction fillLabel(opt) {\n  defaultEmphasis(opt, 'label', ['show']);\n}\n\nvar inner = makeInner();\n\nvar MarkerModel = function (_super) {\n  __extends(MarkerModel, _super);\n\n  function MarkerModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkerModel.type;\n    _this.createdBySelf = false;\n    return _this;\n  }\n\n  MarkerModel.prototype.init = function (option, parentModel, ecModel) {\n    if (process.env.NODE_ENV !== 'production') {\n      if (this.type === 'marker') {\n        throw new Error('Marker component is abstract component. Use markLine, markPoint, markArea instead.');\n      }\n    }\n\n    this.mergeDefaultAndTheme(option, ecModel);\n\n    this._mergeOption(option, ecModel, false, true);\n  };\n\n  MarkerModel.prototype.isAnimationEnabled = function () {\n    if (env.node) {\n      return false;\n    }\n\n    var hostSeries = this.__hostSeries;\n    return this.getShallow('animation') && hostSeries && hostSeries.isAnimationEnabled();\n  };\n\n  MarkerModel.prototype.mergeOption = function (newOpt, ecModel) {\n    this._mergeOption(newOpt, ecModel, false, false);\n  };\n\n  MarkerModel.prototype._mergeOption = function (newOpt, ecModel, createdBySelf, isInit) {\n    var componentType = this.mainType;\n\n    if (!createdBySelf) {\n      ecModel.eachSeries(function (seriesModel) {\n        var markerOpt = seriesModel.get(this.mainType, true);\n        var markerModel = inner(seriesModel)[componentType];\n\n        if (!markerOpt || !markerOpt.data) {\n          inner(seriesModel)[componentType] = null;\n          return;\n        }\n\n        if (!markerModel) {\n          if (isInit) {\n            fillLabel(markerOpt);\n          }\n\n          zrUtil.each(markerOpt.data, function (item) {\n            if (item instanceof Array) {\n              fillLabel(item[0]);\n              fillLabel(item[1]);\n            } else {\n              fillLabel(item);\n            }\n          });\n          markerModel = this.createMarkerModelFromSeries(markerOpt, this, ecModel);\n          zrUtil.extend(markerModel, {\n            mainType: this.mainType,\n            seriesIndex: seriesModel.seriesIndex,\n            name: seriesModel.name,\n            createdBySelf: true\n          });\n          markerModel.__hostSeries = seriesModel;\n        } else {\n          markerModel._mergeOption(markerOpt, ecModel, true);\n        }\n\n        inner(seriesModel)[componentType] = markerModel;\n      }, this);\n    }\n  };\n\n  MarkerModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    var data = this.getData();\n    var value = this.getRawValue(dataIndex);\n    var itemName = data.getName(dataIndex);\n    return createTooltipMarkup('section', {\n      header: this.name,\n      blocks: [createTooltipMarkup('nameValue', {\n        name: itemName,\n        value: value,\n        noName: !itemName,\n        noValue: value == null\n      })]\n    });\n  };\n\n  MarkerModel.prototype.getData = function () {\n    return this._data;\n  };\n\n  MarkerModel.prototype.setData = function (data) {\n    this._data = data;\n  };\n\n  MarkerModel.getMarkerModelFromSeries = function (seriesModel, componentType) {\n    return inner(seriesModel)[componentType];\n  };\n\n  MarkerModel.type = 'marker';\n  MarkerModel.dependencies = ['series', 'grid', 'polar', 'geo'];\n  return MarkerModel;\n}(ComponentModel);\n\nzrUtil.mixin(MarkerModel, DataFormatMixin.prototype);\nexport default MarkerModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport MarkerModel from './MarkerModel';\n\nvar MarkPointModel = function (_super) {\n  __extends(MarkPointModel, _super);\n\n  function MarkPointModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkPointModel.type;\n    return _this;\n  }\n\n  MarkPointModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\n    return new MarkPointModel(markerOpt, masterMarkerModel, ecModel);\n  };\n\n  MarkPointModel.type = 'markPoint';\n  MarkPointModel.defaultOption = {\n    zlevel: 0,\n    z: 5,\n    symbol: 'pin',\n    symbolSize: 50,\n    tooltip: {\n      trigger: 'item'\n    },\n    label: {\n      show: true,\n      position: 'inside'\n    },\n    itemStyle: {\n      borderWidth: 2\n    },\n    emphasis: {\n      label: {\n        show: true\n      }\n    }\n  };\n  return MarkPointModel;\n}(MarkerModel);\n\nexport default MarkPointModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as numberUtil from '../../util/number';\nimport { isDimensionStacked } from '../../data/helper/dataStackHelper';\nimport { indexOf, curry, clone, isArray } from 'zrender/lib/core/util';\n\nfunction hasXOrY(item) {\n  return !(isNaN(parseFloat(item.x)) && isNaN(parseFloat(item.y)));\n}\n\nfunction hasXAndY(item) {\n  return !isNaN(parseFloat(item.x)) && !isNaN(parseFloat(item.y));\n}\n\nfunction markerTypeCalculatorWithExtent(markerType, data, otherDataDim, targetDataDim, otherCoordIndex, targetCoordIndex) {\n  var coordArr = [];\n  var stacked = isDimensionStacked(data, targetDataDim);\n  var calcDataDim = stacked ? data.getCalculationInfo('stackResultDimension') : targetDataDim;\n  var value = numCalculate(data, calcDataDim, markerType);\n  var dataIndex = data.indicesOfNearest(calcDataDim, value)[0];\n  coordArr[otherCoordIndex] = data.get(otherDataDim, dataIndex);\n  coordArr[targetCoordIndex] = data.get(calcDataDim, dataIndex);\n  var coordArrValue = data.get(targetDataDim, dataIndex);\n  var precision = numberUtil.getPrecision(data.get(targetDataDim, dataIndex));\n  precision = Math.min(precision, 20);\n\n  if (precision >= 0) {\n    coordArr[targetCoordIndex] = +coordArr[targetCoordIndex].toFixed(precision);\n  }\n\n  return [coordArr, coordArrValue];\n}\n\nvar markerTypeCalculator = {\n  min: curry(markerTypeCalculatorWithExtent, 'min'),\n  max: curry(markerTypeCalculatorWithExtent, 'max'),\n  average: curry(markerTypeCalculatorWithExtent, 'average'),\n  median: curry(markerTypeCalculatorWithExtent, 'median')\n};\nexport function dataTransform(seriesModel, item) {\n  var data = seriesModel.getData();\n  var coordSys = seriesModel.coordinateSystem;\n\n  if (item && !hasXAndY(item) && !isArray(item.coord) && coordSys) {\n    var dims = coordSys.dimensions;\n    var axisInfo = getAxisInfo(item, data, coordSys, seriesModel);\n    item = clone(item);\n\n    if (item.type && markerTypeCalculator[item.type] && axisInfo.baseAxis && axisInfo.valueAxis) {\n      var otherCoordIndex = indexOf(dims, axisInfo.baseAxis.dim);\n      var targetCoordIndex = indexOf(dims, axisInfo.valueAxis.dim);\n      var coordInfo = markerTypeCalculator[item.type](data, axisInfo.baseDataDim, axisInfo.valueDataDim, otherCoordIndex, targetCoordIndex);\n      item.coord = coordInfo[0];\n      item.value = coordInfo[1];\n    } else {\n      var coord = [item.xAxis != null ? item.xAxis : item.radiusAxis, item.yAxis != null ? item.yAxis : item.angleAxis];\n\n      for (var i = 0; i < 2; i++) {\n        if (markerTypeCalculator[coord[i]]) {\n          coord[i] = numCalculate(data, data.mapDimension(dims[i]), coord[i]);\n        }\n      }\n\n      item.coord = coord;\n    }\n  }\n\n  return item;\n}\nexport function getAxisInfo(item, data, coordSys, seriesModel) {\n  var ret = {};\n\n  if (item.valueIndex != null || item.valueDim != null) {\n    ret.valueDataDim = item.valueIndex != null ? data.getDimension(item.valueIndex) : item.valueDim;\n    ret.valueAxis = coordSys.getAxis(dataDimToCoordDim(seriesModel, ret.valueDataDim));\n    ret.baseAxis = coordSys.getOtherAxis(ret.valueAxis);\n    ret.baseDataDim = data.mapDimension(ret.baseAxis.dim);\n  } else {\n    ret.baseAxis = seriesModel.getBaseAxis();\n    ret.valueAxis = coordSys.getOtherAxis(ret.baseAxis);\n    ret.baseDataDim = data.mapDimension(ret.baseAxis.dim);\n    ret.valueDataDim = data.mapDimension(ret.valueAxis.dim);\n  }\n\n  return ret;\n}\n\nfunction dataDimToCoordDim(seriesModel, dataDim) {\n  var data = seriesModel.getData();\n  var dimensions = data.dimensions;\n  dataDim = data.getDimension(dataDim);\n\n  for (var i = 0; i < dimensions.length; i++) {\n    var dimItem = data.getDimensionInfo(dimensions[i]);\n\n    if (dimItem.name === dataDim) {\n      return dimItem.coordDim;\n    }\n  }\n}\n\nexport function dataFilter(coordSys, item) {\n  return coordSys && coordSys.containData && item.coord && !hasXOrY(item) ? coordSys.containData(item.coord) : true;\n}\nexport function dimValueGetter(item, dimName, dataIndex, dimIndex) {\n  if (dimIndex < 2) {\n    return item.coord && item.coord[dimIndex];\n  }\n\n  return item.value;\n}\nexport function numCalculate(data, valueDataDim, type) {\n  if (type === 'average') {\n    var sum_1 = 0;\n    var count_1 = 0;\n    data.each(valueDataDim, function (val, idx) {\n      if (!isNaN(val)) {\n        sum_1 += val;\n        count_1++;\n      }\n    });\n    return sum_1 / count_1;\n  } else if (type === 'median') {\n    return data.getMedian(valueDataDim);\n  } else {\n    return data.getDataExtent(valueDataDim)[type === 'max' ? 1 : 0];\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component';\nimport { createHashMap, each } from 'zrender/lib/core/util';\nimport MarkerModel from './MarkerModel';\nimport { makeInner } from '../../util/model';\nimport { enterBlur } from '../../util/states';\nvar inner = makeInner();\n\nvar MarkerView = function (_super) {\n  __extends(MarkerView, _super);\n\n  function MarkerView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkerView.type;\n    return _this;\n  }\n\n  MarkerView.prototype.init = function () {\n    this.markerGroupMap = createHashMap();\n  };\n\n  MarkerView.prototype.render = function (markerModel, ecModel, api) {\n    var _this = this;\n\n    var markerGroupMap = this.markerGroupMap;\n    markerGroupMap.each(function (item) {\n      inner(item).keep = false;\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      var markerModel = MarkerModel.getMarkerModelFromSeries(seriesModel, _this.type);\n      markerModel && _this.renderSeries(seriesModel, markerModel, ecModel, api);\n    });\n    markerGroupMap.each(function (item) {\n      !inner(item).keep && _this.group.remove(item.group);\n    });\n  };\n\n  MarkerView.prototype.markKeep = function (drawGroup) {\n    inner(drawGroup).keep = true;\n  };\n\n  MarkerView.prototype.blurSeries = function (seriesModelList) {\n    var _this = this;\n\n    each(seriesModelList, function (seriesModel) {\n      var markerModel = MarkerModel.getMarkerModelFromSeries(seriesModel, _this.type);\n\n      if (markerModel) {\n        var data = markerModel.getData();\n        data.eachItemGraphicEl(function (el) {\n          if (el) {\n            enterBlur(el);\n          }\n        });\n      }\n    });\n  };\n\n  MarkerView.type = 'marker';\n  return MarkerView;\n}(ComponentView);\n\nexport default MarkerView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SymbolDraw from '../../chart/helper/SymbolDraw';\nimport * as numberUtil from '../../util/number';\nimport List from '../../data/List';\nimport * as markerHelper from './markerHelper';\nimport MarkerView from './MarkerView';\nimport MarkerModel from './MarkerModel';\nimport { isFunction, map, defaults, filter, curry } from 'zrender/lib/core/util';\nimport { getECData } from '../../util/innerStore';\nimport { getVisualFromData } from '../../visual/helper';\n\nfunction updateMarkerLayout(mpData, seriesModel, api) {\n  var coordSys = seriesModel.coordinateSystem;\n  mpData.each(function (idx) {\n    var itemModel = mpData.getItemModel(idx);\n    var point;\n    var xPx = numberUtil.parsePercent(itemModel.get('x'), api.getWidth());\n    var yPx = numberUtil.parsePercent(itemModel.get('y'), api.getHeight());\n\n    if (!isNaN(xPx) && !isNaN(yPx)) {\n      point = [xPx, yPx];\n    } else if (seriesModel.getMarkerPosition) {\n      point = seriesModel.getMarkerPosition(mpData.getValues(mpData.dimensions, idx));\n    } else if (coordSys) {\n      var x = mpData.get(coordSys.dimensions[0], idx);\n      var y = mpData.get(coordSys.dimensions[1], idx);\n      point = coordSys.dataToPoint([x, y]);\n    }\n\n    if (!isNaN(xPx)) {\n      point[0] = xPx;\n    }\n\n    if (!isNaN(yPx)) {\n      point[1] = yPx;\n    }\n\n    mpData.setItemLayout(idx, point);\n  });\n}\n\nvar MarkPointView = function (_super) {\n  __extends(MarkPointView, _super);\n\n  function MarkPointView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkPointView.type;\n    return _this;\n  }\n\n  MarkPointView.prototype.updateTransform = function (markPointModel, ecModel, api) {\n    ecModel.eachSeries(function (seriesModel) {\n      var mpModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markPoint');\n\n      if (mpModel) {\n        updateMarkerLayout(mpModel.getData(), seriesModel, api);\n        this.markerGroupMap.get(seriesModel.id).updateLayout();\n      }\n    }, this);\n  };\n\n  MarkPointView.prototype.renderSeries = function (seriesModel, mpModel, ecModel, api) {\n    var coordSys = seriesModel.coordinateSystem;\n    var seriesId = seriesModel.id;\n    var seriesData = seriesModel.getData();\n    var symbolDrawMap = this.markerGroupMap;\n    var symbolDraw = symbolDrawMap.get(seriesId) || symbolDrawMap.set(seriesId, new SymbolDraw());\n    var mpData = createList(coordSys, seriesModel, mpModel);\n    mpModel.setData(mpData);\n    updateMarkerLayout(mpModel.getData(), seriesModel, api);\n    mpData.each(function (idx) {\n      var itemModel = mpData.getItemModel(idx);\n      var symbol = itemModel.getShallow('symbol');\n      var symbolSize = itemModel.getShallow('symbolSize');\n      var symbolRotate = itemModel.getShallow('symbolRotate');\n\n      if (isFunction(symbol) || isFunction(symbolSize) || isFunction(symbolRotate)) {\n        var rawIdx = mpModel.getRawValue(idx);\n        var dataParams = mpModel.getDataParams(idx);\n\n        if (isFunction(symbol)) {\n          symbol = symbol(rawIdx, dataParams);\n        }\n\n        if (isFunction(symbolSize)) {\n          symbolSize = symbolSize(rawIdx, dataParams);\n        }\n\n        if (isFunction(symbolRotate)) {\n          symbolRotate = symbolRotate(rawIdx, dataParams);\n        }\n      }\n\n      var style = itemModel.getModel('itemStyle').getItemStyle();\n      var color = getVisualFromData(seriesData, 'color');\n\n      if (!style.fill) {\n        style.fill = color;\n      }\n\n      mpData.setItemVisual(idx, {\n        symbol: symbol,\n        symbolSize: symbolSize,\n        symbolRotate: symbolRotate,\n        style: style\n      });\n    });\n    symbolDraw.updateData(mpData);\n    this.group.add(symbolDraw.group);\n    mpData.eachItemGraphicEl(function (el) {\n      el.traverse(function (child) {\n        getECData(child).dataModel = mpModel;\n      });\n    });\n    this.markKeep(symbolDraw);\n    symbolDraw.group.silent = mpModel.get('silent') || seriesModel.get('silent');\n  };\n\n  MarkPointView.type = 'markPoint';\n  return MarkPointView;\n}(MarkerView);\n\nfunction createList(coordSys, seriesModel, mpModel) {\n  var coordDimsInfos;\n\n  if (coordSys) {\n    coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\n      var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {};\n      return defaults({\n        name: coordDim\n      }, info);\n    });\n  } else {\n    coordDimsInfos = [{\n      name: 'value',\n      type: 'float'\n    }];\n  }\n\n  var mpData = new List(coordDimsInfos, mpModel);\n  var dataOpt = map(mpModel.get('data'), curry(markerHelper.dataTransform, seriesModel));\n\n  if (coordSys) {\n    dataOpt = filter(dataOpt, curry(markerHelper.dataFilter, coordSys));\n  }\n\n  mpData.initData(dataOpt, null, coordSys ? markerHelper.dimValueGetter : function (item) {\n    return item.value;\n  });\n  return mpData;\n}\n\nexport default MarkPointView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport MarkPointModel from './MarkPointModel';\nimport MarkPointView from './MarkPointView';\nexport function install(registers) {\n  registers.registerComponentModel(MarkPointModel);\n  registers.registerComponentView(MarkPointView);\n  registers.registerPreprocessor(function (opt) {\n    opt.markPoint = opt.markPoint || {};\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport MarkerModel from './MarkerModel';\n\nvar MarkLineModel = function (_super) {\n  __extends(MarkLineModel, _super);\n\n  function MarkLineModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkLineModel.type;\n    return _this;\n  }\n\n  MarkLineModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\n    return new MarkLineModel(markerOpt, masterMarkerModel, ecModel);\n  };\n\n  MarkLineModel.type = 'markLine';\n  MarkLineModel.defaultOption = {\n    zlevel: 0,\n    z: 5,\n    symbol: ['circle', 'arrow'],\n    symbolSize: [8, 16],\n    precision: 2,\n    tooltip: {\n      trigger: 'item'\n    },\n    label: {\n      show: true,\n      position: 'end',\n      distance: 5\n    },\n    lineStyle: {\n      type: 'dashed'\n    },\n    emphasis: {\n      label: {\n        show: true\n      },\n      lineStyle: {\n        width: 3\n      }\n    },\n    animationEasing: 'linear'\n  };\n  return MarkLineModel;\n}(MarkerModel);\n\nexport default MarkLineModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport List from '../../data/List';\nimport * as numberUtil from '../../util/number';\nimport * as markerHelper from './markerHelper';\nimport LineDraw from '../../chart/helper/LineDraw';\nimport MarkerView from './MarkerView';\nimport { getStackedDimension } from '../../data/helper/dataStackHelper';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport { getECData } from '../../util/innerStore';\nimport MarkerModel from './MarkerModel';\nimport { isArray, retrieve, clone, extend, logError, merge, map, defaults, curry, filter } from 'zrender/lib/core/util';\nimport { makeInner } from '../../util/model';\nimport { getVisualFromData } from '../../visual/helper';\nvar inner = makeInner();\n\nvar markLineTransform = function (seriesModel, coordSys, mlModel, item) {\n  var data = seriesModel.getData();\n  var itemArray;\n\n  if (!isArray(item)) {\n    var mlType = item.type;\n\n    if (mlType === 'min' || mlType === 'max' || mlType === 'average' || mlType === 'median' || item.xAxis != null || item.yAxis != null) {\n      var valueAxis = void 0;\n      var value = void 0;\n\n      if (item.yAxis != null || item.xAxis != null) {\n        valueAxis = coordSys.getAxis(item.yAxis != null ? 'y' : 'x');\n        value = retrieve(item.yAxis, item.xAxis);\n      } else {\n        var axisInfo = markerHelper.getAxisInfo(item, data, coordSys, seriesModel);\n        valueAxis = axisInfo.valueAxis;\n        var valueDataDim = getStackedDimension(data, axisInfo.valueDataDim);\n        value = markerHelper.numCalculate(data, valueDataDim, mlType);\n      }\n\n      var valueIndex = valueAxis.dim === 'x' ? 0 : 1;\n      var baseIndex = 1 - valueIndex;\n      var mlFrom = clone(item);\n      var mlTo = {\n        coord: []\n      };\n      mlFrom.type = null;\n      mlFrom.coord = [];\n      mlFrom.coord[baseIndex] = -Infinity;\n      mlTo.coord[baseIndex] = Infinity;\n      var precision = mlModel.get('precision');\n\n      if (precision >= 0 && typeof value === 'number') {\n        value = +value.toFixed(Math.min(precision, 20));\n      }\n\n      mlFrom.coord[valueIndex] = mlTo.coord[valueIndex] = value;\n      itemArray = [mlFrom, mlTo, {\n        type: mlType,\n        valueIndex: item.valueIndex,\n        value: value\n      }];\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        logError('Invalid markLine data.');\n      }\n\n      itemArray = [];\n    }\n  } else {\n    itemArray = item;\n  }\n\n  var normalizedItem = [markerHelper.dataTransform(seriesModel, itemArray[0]), markerHelper.dataTransform(seriesModel, itemArray[1]), extend({}, itemArray[2])];\n  normalizedItem[2].type = normalizedItem[2].type || null;\n  merge(normalizedItem[2], normalizedItem[0]);\n  merge(normalizedItem[2], normalizedItem[1]);\n  return normalizedItem;\n};\n\nfunction isInifinity(val) {\n  return !isNaN(val) && !isFinite(val);\n}\n\nfunction ifMarkLineHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\n  var otherDimIndex = 1 - dimIndex;\n  var dimName = coordSys.dimensions[dimIndex];\n  return isInifinity(fromCoord[otherDimIndex]) && isInifinity(toCoord[otherDimIndex]) && fromCoord[dimIndex] === toCoord[dimIndex] && coordSys.getAxis(dimName).containData(fromCoord[dimIndex]);\n}\n\nfunction markLineFilter(coordSys, item) {\n  if (coordSys.type === 'cartesian2d') {\n    var fromCoord = item[0].coord;\n    var toCoord = item[1].coord;\n\n    if (fromCoord && toCoord && (ifMarkLineHasOnlyDim(1, fromCoord, toCoord, coordSys) || ifMarkLineHasOnlyDim(0, fromCoord, toCoord, coordSys))) {\n      return true;\n    }\n  }\n\n  return markerHelper.dataFilter(coordSys, item[0]) && markerHelper.dataFilter(coordSys, item[1]);\n}\n\nfunction updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api) {\n  var coordSys = seriesModel.coordinateSystem;\n  var itemModel = data.getItemModel(idx);\n  var point;\n  var xPx = numberUtil.parsePercent(itemModel.get('x'), api.getWidth());\n  var yPx = numberUtil.parsePercent(itemModel.get('y'), api.getHeight());\n\n  if (!isNaN(xPx) && !isNaN(yPx)) {\n    point = [xPx, yPx];\n  } else {\n    if (seriesModel.getMarkerPosition) {\n      point = seriesModel.getMarkerPosition(data.getValues(data.dimensions, idx));\n    } else {\n      var dims = coordSys.dimensions;\n      var x = data.get(dims[0], idx);\n      var y = data.get(dims[1], idx);\n      point = coordSys.dataToPoint([x, y]);\n    }\n\n    if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n      var xAxis = coordSys.getAxis('x');\n      var yAxis = coordSys.getAxis('y');\n      var dims = coordSys.dimensions;\n\n      if (isInifinity(data.get(dims[0], idx))) {\n        point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[isFrom ? 0 : 1]);\n      } else if (isInifinity(data.get(dims[1], idx))) {\n        point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[isFrom ? 0 : 1]);\n      }\n    }\n\n    if (!isNaN(xPx)) {\n      point[0] = xPx;\n    }\n\n    if (!isNaN(yPx)) {\n      point[1] = yPx;\n    }\n  }\n\n  data.setItemLayout(idx, point);\n}\n\nvar MarkLineView = function (_super) {\n  __extends(MarkLineView, _super);\n\n  function MarkLineView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkLineView.type;\n    return _this;\n  }\n\n  MarkLineView.prototype.updateTransform = function (markLineModel, ecModel, api) {\n    ecModel.eachSeries(function (seriesModel) {\n      var mlModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markLine');\n\n      if (mlModel) {\n        var mlData_1 = mlModel.getData();\n        var fromData_1 = inner(mlModel).from;\n        var toData_1 = inner(mlModel).to;\n        fromData_1.each(function (idx) {\n          updateSingleMarkerEndLayout(fromData_1, idx, true, seriesModel, api);\n          updateSingleMarkerEndLayout(toData_1, idx, false, seriesModel, api);\n        });\n        mlData_1.each(function (idx) {\n          mlData_1.setItemLayout(idx, [fromData_1.getItemLayout(idx), toData_1.getItemLayout(idx)]);\n        });\n        this.markerGroupMap.get(seriesModel.id).updateLayout();\n      }\n    }, this);\n  };\n\n  MarkLineView.prototype.renderSeries = function (seriesModel, mlModel, ecModel, api) {\n    var coordSys = seriesModel.coordinateSystem;\n    var seriesId = seriesModel.id;\n    var seriesData = seriesModel.getData();\n    var lineDrawMap = this.markerGroupMap;\n    var lineDraw = lineDrawMap.get(seriesId) || lineDrawMap.set(seriesId, new LineDraw());\n    this.group.add(lineDraw.group);\n    var mlData = createList(coordSys, seriesModel, mlModel);\n    var fromData = mlData.from;\n    var toData = mlData.to;\n    var lineData = mlData.line;\n    inner(mlModel).from = fromData;\n    inner(mlModel).to = toData;\n    mlModel.setData(lineData);\n    var symbolType = mlModel.get('symbol');\n    var symbolSize = mlModel.get('symbolSize');\n\n    if (!isArray(symbolType)) {\n      symbolType = [symbolType, symbolType];\n    }\n\n    if (!isArray(symbolSize)) {\n      symbolSize = [symbolSize, symbolSize];\n    }\n\n    mlData.from.each(function (idx) {\n      updateDataVisualAndLayout(fromData, idx, true);\n      updateDataVisualAndLayout(toData, idx, false);\n    });\n    lineData.each(function (idx) {\n      var lineStyle = lineData.getItemModel(idx).getModel('lineStyle').getLineStyle();\n      lineData.setItemLayout(idx, [fromData.getItemLayout(idx), toData.getItemLayout(idx)]);\n\n      if (lineStyle.stroke == null) {\n        lineStyle.stroke = fromData.getItemVisual(idx, 'style').fill;\n      }\n\n      lineData.setItemVisual(idx, {\n        fromSymbolRotate: fromData.getItemVisual(idx, 'symbolRotate'),\n        fromSymbolSize: fromData.getItemVisual(idx, 'symbolSize'),\n        fromSymbol: fromData.getItemVisual(idx, 'symbol'),\n        toSymbolRotate: toData.getItemVisual(idx, 'symbolRotate'),\n        toSymbolSize: toData.getItemVisual(idx, 'symbolSize'),\n        toSymbol: toData.getItemVisual(idx, 'symbol'),\n        style: lineStyle\n      });\n    });\n    lineDraw.updateData(lineData);\n    mlData.line.eachItemGraphicEl(function (el, idx) {\n      el.traverse(function (child) {\n        getECData(child).dataModel = mlModel;\n      });\n    });\n\n    function updateDataVisualAndLayout(data, idx, isFrom) {\n      var itemModel = data.getItemModel(idx);\n      updateSingleMarkerEndLayout(data, idx, isFrom, seriesModel, api);\n      var style = itemModel.getModel('itemStyle').getItemStyle();\n\n      if (style.fill == null) {\n        style.fill = getVisualFromData(seriesData, 'color');\n      }\n\n      data.setItemVisual(idx, {\n        symbolRotate: itemModel.get('symbolRotate'),\n        symbolSize: itemModel.get('symbolSize') || symbolSize[isFrom ? 0 : 1],\n        symbol: itemModel.get('symbol', true) || symbolType[isFrom ? 0 : 1],\n        style: style\n      });\n    }\n\n    this.markKeep(lineDraw);\n    lineDraw.group.silent = mlModel.get('silent') || seriesModel.get('silent');\n  };\n\n  MarkLineView.type = 'markLine';\n  return MarkLineView;\n}(MarkerView);\n\nfunction createList(coordSys, seriesModel, mlModel) {\n  var coordDimsInfos;\n\n  if (coordSys) {\n    coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\n      var info = seriesModel.getData().getDimensionInfo(seriesModel.getData().mapDimension(coordDim)) || {};\n      return defaults({\n        name: coordDim\n      }, info);\n    });\n  } else {\n    coordDimsInfos = [{\n      name: 'value',\n      type: 'float'\n    }];\n  }\n\n  var fromData = new List(coordDimsInfos, mlModel);\n  var toData = new List(coordDimsInfos, mlModel);\n  var lineData = new List([], mlModel);\n  var optData = map(mlModel.get('data'), curry(markLineTransform, seriesModel, coordSys, mlModel));\n\n  if (coordSys) {\n    optData = filter(optData, curry(markLineFilter, coordSys));\n  }\n\n  var dimValueGetter = coordSys ? markerHelper.dimValueGetter : function (item) {\n    return item.value;\n  };\n  fromData.initData(map(optData, function (item) {\n    return item[0];\n  }), null, dimValueGetter);\n  toData.initData(map(optData, function (item) {\n    return item[1];\n  }), null, dimValueGetter);\n  lineData.initData(map(optData, function (item) {\n    return item[2];\n  }));\n  lineData.hasItemOption = true;\n  return {\n    from: fromData,\n    to: toData,\n    line: lineData\n  };\n}\n\nexport default MarkLineView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport MarkLineModel from './MarkLineModel';\nimport MarkLineView from './MarkLineView';\nexport function install(registers) {\n  registers.registerComponentModel(MarkLineModel);\n  registers.registerComponentView(MarkLineView);\n  registers.registerPreprocessor(function (opt) {\n    opt.markLine = opt.markLine || {};\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport MarkerModel from './MarkerModel';\n\nvar MarkAreaModel = function (_super) {\n  __extends(MarkAreaModel, _super);\n\n  function MarkAreaModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkAreaModel.type;\n    return _this;\n  }\n\n  MarkAreaModel.prototype.createMarkerModelFromSeries = function (markerOpt, masterMarkerModel, ecModel) {\n    return new MarkAreaModel(markerOpt, masterMarkerModel, ecModel);\n  };\n\n  MarkAreaModel.type = 'markArea';\n  MarkAreaModel.defaultOption = {\n    zlevel: 0,\n    z: 1,\n    tooltip: {\n      trigger: 'item'\n    },\n    animation: false,\n    label: {\n      show: true,\n      position: 'top'\n    },\n    itemStyle: {\n      borderWidth: 0\n    },\n    emphasis: {\n      label: {\n        show: true,\n        position: 'top'\n      }\n    }\n  };\n  return MarkAreaModel;\n}(MarkerModel);\n\nexport default MarkAreaModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as colorUtil from 'zrender/lib/tool/color';\nimport List from '../../data/List';\nimport * as numberUtil from '../../util/number';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis, setStatesStylesFromModel } from '../../util/states';\nimport * as markerHelper from './markerHelper';\nimport MarkerView from './MarkerView';\nimport { retrieve, mergeAll, map, defaults, curry, filter, each } from 'zrender/lib/core/util';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport MarkerModel from './MarkerModel';\nimport { makeInner } from '../../util/model';\nimport { getVisualFromData } from '../../visual/helper';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { getECData } from '../../util/innerStore';\nvar inner = makeInner();\n\nvar markAreaTransform = function (seriesModel, coordSys, maModel, item) {\n  var lt = markerHelper.dataTransform(seriesModel, item[0]);\n  var rb = markerHelper.dataTransform(seriesModel, item[1]);\n  var ltCoord = lt.coord;\n  var rbCoord = rb.coord;\n  ltCoord[0] = retrieve(ltCoord[0], -Infinity);\n  ltCoord[1] = retrieve(ltCoord[1], -Infinity);\n  rbCoord[0] = retrieve(rbCoord[0], Infinity);\n  rbCoord[1] = retrieve(rbCoord[1], Infinity);\n  var result = mergeAll([{}, lt, rb]);\n  result.coord = [lt.coord, rb.coord];\n  result.x0 = lt.x;\n  result.y0 = lt.y;\n  result.x1 = rb.x;\n  result.y1 = rb.y;\n  return result;\n};\n\nfunction isInifinity(val) {\n  return !isNaN(val) && !isFinite(val);\n}\n\nfunction ifMarkAreaHasOnlyDim(dimIndex, fromCoord, toCoord, coordSys) {\n  var otherDimIndex = 1 - dimIndex;\n  return isInifinity(fromCoord[otherDimIndex]) && isInifinity(toCoord[otherDimIndex]);\n}\n\nfunction markAreaFilter(coordSys, item) {\n  var fromCoord = item.coord[0];\n  var toCoord = item.coord[1];\n\n  if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n    if (fromCoord && toCoord && (ifMarkAreaHasOnlyDim(1, fromCoord, toCoord, coordSys) || ifMarkAreaHasOnlyDim(0, fromCoord, toCoord, coordSys))) {\n      return true;\n    }\n  }\n\n  return markerHelper.dataFilter(coordSys, {\n    coord: fromCoord,\n    x: item.x0,\n    y: item.y0\n  }) || markerHelper.dataFilter(coordSys, {\n    coord: toCoord,\n    x: item.x1,\n    y: item.y1\n  });\n}\n\nfunction getSingleMarkerEndPoint(data, idx, dims, seriesModel, api) {\n  var coordSys = seriesModel.coordinateSystem;\n  var itemModel = data.getItemModel(idx);\n  var point;\n  var xPx = numberUtil.parsePercent(itemModel.get(dims[0]), api.getWidth());\n  var yPx = numberUtil.parsePercent(itemModel.get(dims[1]), api.getHeight());\n\n  if (!isNaN(xPx) && !isNaN(yPx)) {\n    point = [xPx, yPx];\n  } else {\n    if (seriesModel.getMarkerPosition) {\n      point = seriesModel.getMarkerPosition(data.getValues(dims, idx));\n    } else {\n      var x = data.get(dims[0], idx);\n      var y = data.get(dims[1], idx);\n      var pt = [x, y];\n      coordSys.clampData && coordSys.clampData(pt, pt);\n      point = coordSys.dataToPoint(pt, true);\n    }\n\n    if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n      var xAxis = coordSys.getAxis('x');\n      var yAxis = coordSys.getAxis('y');\n      var x = data.get(dims[0], idx);\n      var y = data.get(dims[1], idx);\n\n      if (isInifinity(x)) {\n        point[0] = xAxis.toGlobalCoord(xAxis.getExtent()[dims[0] === 'x0' ? 0 : 1]);\n      } else if (isInifinity(y)) {\n        point[1] = yAxis.toGlobalCoord(yAxis.getExtent()[dims[1] === 'y0' ? 0 : 1]);\n      }\n    }\n\n    if (!isNaN(xPx)) {\n      point[0] = xPx;\n    }\n\n    if (!isNaN(yPx)) {\n      point[1] = yPx;\n    }\n  }\n\n  return point;\n}\n\nvar dimPermutations = [['x0', 'y0'], ['x1', 'y0'], ['x1', 'y1'], ['x0', 'y1']];\n\nvar MarkAreaView = function (_super) {\n  __extends(MarkAreaView, _super);\n\n  function MarkAreaView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = MarkAreaView.type;\n    return _this;\n  }\n\n  MarkAreaView.prototype.updateTransform = function (markAreaModel, ecModel, api) {\n    ecModel.eachSeries(function (seriesModel) {\n      var maModel = MarkerModel.getMarkerModelFromSeries(seriesModel, 'markArea');\n\n      if (maModel) {\n        var areaData_1 = maModel.getData();\n        areaData_1.each(function (idx) {\n          var points = map(dimPermutations, function (dim) {\n            return getSingleMarkerEndPoint(areaData_1, idx, dim, seriesModel, api);\n          });\n          areaData_1.setItemLayout(idx, points);\n          var el = areaData_1.getItemGraphicEl(idx);\n          el.setShape('points', points);\n        });\n      }\n    }, this);\n  };\n\n  MarkAreaView.prototype.renderSeries = function (seriesModel, maModel, ecModel, api) {\n    var coordSys = seriesModel.coordinateSystem;\n    var seriesId = seriesModel.id;\n    var seriesData = seriesModel.getData();\n    var areaGroupMap = this.markerGroupMap;\n    var polygonGroup = areaGroupMap.get(seriesId) || areaGroupMap.set(seriesId, {\n      group: new graphic.Group()\n    });\n    this.group.add(polygonGroup.group);\n    this.markKeep(polygonGroup);\n    var areaData = createList(coordSys, seriesModel, maModel);\n    maModel.setData(areaData);\n    areaData.each(function (idx) {\n      var points = map(dimPermutations, function (dim) {\n        return getSingleMarkerEndPoint(areaData, idx, dim, seriesModel, api);\n      });\n      var allClipped = true;\n      each(dimPermutations, function (dim) {\n        if (!allClipped) {\n          return;\n        }\n\n        var xValue = areaData.get(dim[0], idx);\n        var yValue = areaData.get(dim[1], idx);\n\n        if ((isInifinity(xValue) || coordSys.getAxis('x').containData(xValue)) && (isInifinity(yValue) || coordSys.getAxis('y').containData(yValue))) {\n          allClipped = false;\n        }\n      });\n      areaData.setItemLayout(idx, {\n        points: points,\n        allClipped: allClipped\n      });\n      var style = areaData.getItemModel(idx).getModel('itemStyle').getItemStyle();\n      var color = getVisualFromData(seriesData, 'color');\n\n      if (!style.fill) {\n        style.fill = color;\n\n        if (typeof style.fill === 'string') {\n          style.fill = colorUtil.modifyAlpha(style.fill, 0.4);\n        }\n      }\n\n      if (!style.stroke) {\n        style.stroke = color;\n      }\n\n      areaData.setItemVisual(idx, 'style', style);\n    });\n    areaData.diff(inner(polygonGroup).data).add(function (idx) {\n      var layout = areaData.getItemLayout(idx);\n\n      if (!layout.allClipped) {\n        var polygon = new graphic.Polygon({\n          shape: {\n            points: layout.points\n          }\n        });\n        areaData.setItemGraphicEl(idx, polygon);\n        polygonGroup.group.add(polygon);\n      }\n    }).update(function (newIdx, oldIdx) {\n      var polygon = inner(polygonGroup).data.getItemGraphicEl(oldIdx);\n      var layout = areaData.getItemLayout(newIdx);\n\n      if (!layout.allClipped) {\n        if (polygon) {\n          graphic.updateProps(polygon, {\n            shape: {\n              points: layout.points\n            }\n          }, maModel, newIdx);\n        } else {\n          polygon = new graphic.Polygon({\n            shape: {\n              points: layout.points\n            }\n          });\n        }\n\n        areaData.setItemGraphicEl(newIdx, polygon);\n        polygonGroup.group.add(polygon);\n      } else if (polygon) {\n        polygonGroup.group.remove(polygon);\n      }\n    }).remove(function (idx) {\n      var polygon = inner(polygonGroup).data.getItemGraphicEl(idx);\n      polygonGroup.group.remove(polygon);\n    }).execute();\n    areaData.eachItemGraphicEl(function (polygon, idx) {\n      var itemModel = areaData.getItemModel(idx);\n      var style = areaData.getItemVisual(idx, 'style');\n      polygon.useStyle(areaData.getItemVisual(idx, 'style'));\n      setLabelStyle(polygon, getLabelStatesModels(itemModel), {\n        labelFetcher: maModel,\n        labelDataIndex: idx,\n        defaultText: areaData.getName(idx) || '',\n        inheritColor: typeof style.fill === 'string' ? colorUtil.modifyAlpha(style.fill, 1) : '#000'\n      });\n      setStatesStylesFromModel(polygon, itemModel);\n      enableHoverEmphasis(polygon);\n      getECData(polygon).dataModel = maModel;\n    });\n    inner(polygonGroup).data = areaData;\n    polygonGroup.group.silent = maModel.get('silent') || seriesModel.get('silent');\n  };\n\n  MarkAreaView.type = 'markArea';\n  return MarkAreaView;\n}(MarkerView);\n\nfunction createList(coordSys, seriesModel, maModel) {\n  var coordDimsInfos;\n  var areaData;\n  var dims = ['x0', 'y0', 'x1', 'y1'];\n\n  if (coordSys) {\n    coordDimsInfos = map(coordSys && coordSys.dimensions, function (coordDim) {\n      var data = seriesModel.getData();\n      var info = data.getDimensionInfo(data.mapDimension(coordDim)) || {};\n      return defaults({\n        name: coordDim\n      }, info);\n    });\n    areaData = new List(map(dims, function (dim, idx) {\n      return {\n        name: dim,\n        type: coordDimsInfos[idx % 2].type\n      };\n    }), maModel);\n  } else {\n    coordDimsInfos = [{\n      name: 'value',\n      type: 'float'\n    }];\n    areaData = new List(coordDimsInfos, maModel);\n  }\n\n  var optData = map(maModel.get('data'), curry(markAreaTransform, seriesModel, coordSys, maModel));\n\n  if (coordSys) {\n    optData = filter(optData, curry(markAreaFilter, coordSys));\n  }\n\n  var dimValueGetter = coordSys ? function (item, dimName, dataIndex, dimIndex) {\n    return item.coord[Math.floor(dimIndex / 2)][dimIndex % 2];\n  } : function (item) {\n    return item.value;\n  };\n  areaData.initData(optData, null, dimValueGetter);\n  areaData.hasItemOption = true;\n  return areaData;\n}\n\nexport default MarkAreaView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport MarkAreaModel from './MarkAreaModel';\nimport MarkAreaView from './MarkAreaView';\nexport function install(registers) {\n  registers.registerComponentModel(MarkAreaModel);\n  registers.registerComponentView(MarkAreaView);\n  registers.registerPreprocessor(function (opt) {\n    opt.markArea = opt.markArea || {};\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Model from '../../model/Model';\nimport { isNameSpecified } from '../../util/model';\nimport ComponentModel from '../../model/Component';\n\nvar getDefaultSelectorOptions = function (ecModel, type) {\n  if (type === 'all') {\n    return {\n      type: 'all',\n      title: ecModel.getLocale(['legend', 'selector', 'all'])\n    };\n  } else if (type === 'inverse') {\n    return {\n      type: 'inverse',\n      title: ecModel.getLocale(['legend', 'selector', 'inverse'])\n    };\n  }\n};\n\nvar LegendModel = function (_super) {\n  __extends(LegendModel, _super);\n\n  function LegendModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = LegendModel.type;\n    _this.layoutMode = {\n      type: 'box',\n      ignoreSize: true\n    };\n    return _this;\n  }\n\n  LegendModel.prototype.init = function (option, parentModel, ecModel) {\n    this.mergeDefaultAndTheme(option, ecModel);\n    option.selected = option.selected || {};\n\n    this._updateSelector(option);\n  };\n\n  LegendModel.prototype.mergeOption = function (option, ecModel) {\n    _super.prototype.mergeOption.call(this, option, ecModel);\n\n    this._updateSelector(option);\n  };\n\n  LegendModel.prototype._updateSelector = function (option) {\n    var selector = option.selector;\n    var ecModel = this.ecModel;\n\n    if (selector === true) {\n      selector = option.selector = ['all', 'inverse'];\n    }\n\n    if (zrUtil.isArray(selector)) {\n      zrUtil.each(selector, function (item, index) {\n        zrUtil.isString(item) && (item = {\n          type: item\n        });\n        selector[index] = zrUtil.merge(item, getDefaultSelectorOptions(ecModel, item.type));\n      });\n    }\n  };\n\n  LegendModel.prototype.optionUpdated = function () {\n    this._updateData(this.ecModel);\n\n    var legendData = this._data;\n\n    if (legendData[0] && this.get('selectedMode') === 'single') {\n      var hasSelected = false;\n\n      for (var i = 0; i < legendData.length; i++) {\n        var name_1 = legendData[i].get('name');\n\n        if (this.isSelected(name_1)) {\n          this.select(name_1);\n          hasSelected = true;\n          break;\n        }\n      }\n\n      !hasSelected && this.select(legendData[0].get('name'));\n    }\n  };\n\n  LegendModel.prototype._updateData = function (ecModel) {\n    var potentialData = [];\n    var availableNames = [];\n    ecModel.eachRawSeries(function (seriesModel) {\n      var seriesName = seriesModel.name;\n      availableNames.push(seriesName);\n      var isPotential;\n\n      if (seriesModel.legendVisualProvider) {\n        var provider = seriesModel.legendVisualProvider;\n        var names = provider.getAllNames();\n\n        if (!ecModel.isSeriesFiltered(seriesModel)) {\n          availableNames = availableNames.concat(names);\n        }\n\n        if (names.length) {\n          potentialData = potentialData.concat(names);\n        } else {\n          isPotential = true;\n        }\n      } else {\n        isPotential = true;\n      }\n\n      if (isPotential && isNameSpecified(seriesModel)) {\n        potentialData.push(seriesModel.name);\n      }\n    });\n    this._availableNames = availableNames;\n    var rawData = this.get('data') || potentialData;\n    var legendData = zrUtil.map(rawData, function (dataItem) {\n      if (typeof dataItem === 'string' || typeof dataItem === 'number') {\n        dataItem = {\n          name: dataItem\n        };\n      }\n\n      return new Model(dataItem, this, this.ecModel);\n    }, this);\n    this._data = legendData;\n  };\n\n  LegendModel.prototype.getData = function () {\n    return this._data;\n  };\n\n  LegendModel.prototype.select = function (name) {\n    var selected = this.option.selected;\n    var selectedMode = this.get('selectedMode');\n\n    if (selectedMode === 'single') {\n      var data = this._data;\n      zrUtil.each(data, function (dataItem) {\n        selected[dataItem.get('name')] = false;\n      });\n    }\n\n    selected[name] = true;\n  };\n\n  LegendModel.prototype.unSelect = function (name) {\n    if (this.get('selectedMode') !== 'single') {\n      this.option.selected[name] = false;\n    }\n  };\n\n  LegendModel.prototype.toggleSelected = function (name) {\n    var selected = this.option.selected;\n\n    if (!selected.hasOwnProperty(name)) {\n      selected[name] = true;\n    }\n\n    this[selected[name] ? 'unSelect' : 'select'](name);\n  };\n\n  LegendModel.prototype.allSelect = function () {\n    var data = this._data;\n    var selected = this.option.selected;\n    zrUtil.each(data, function (dataItem) {\n      selected[dataItem.get('name', true)] = true;\n    });\n  };\n\n  LegendModel.prototype.inverseSelect = function () {\n    var data = this._data;\n    var selected = this.option.selected;\n    zrUtil.each(data, function (dataItem) {\n      var name = dataItem.get('name', true);\n\n      if (!selected.hasOwnProperty(name)) {\n        selected[name] = true;\n      }\n\n      selected[name] = !selected[name];\n    });\n  };\n\n  LegendModel.prototype.isSelected = function (name) {\n    var selected = this.option.selected;\n    return !(selected.hasOwnProperty(name) && !selected[name]) && zrUtil.indexOf(this._availableNames, name) >= 0;\n  };\n\n  LegendModel.prototype.getOrient = function () {\n    return this.get('orient') === 'vertical' ? {\n      index: 1,\n      name: 'vertical'\n    } : {\n      index: 0,\n      name: 'horizontal'\n    };\n  };\n\n  LegendModel.type = 'legend.plain';\n  LegendModel.dependencies = ['series'];\n  LegendModel.defaultOption = {\n    zlevel: 0,\n    z: 4,\n    show: true,\n    orient: 'horizontal',\n    left: 'center',\n    top: 0,\n    align: 'auto',\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderColor: '#ccc',\n    borderRadius: 0,\n    borderWidth: 0,\n    padding: 5,\n    itemGap: 10,\n    itemWidth: 25,\n    itemHeight: 14,\n    inactiveColor: '#ccc',\n    inactiveBorderColor: '#ccc',\n    itemStyle: {\n      borderWidth: 0\n    },\n    textStyle: {\n      color: '#333'\n    },\n    selectedMode: true,\n    selector: false,\n    selectorLabel: {\n      show: true,\n      borderRadius: 10,\n      padding: [3, 5, 3, 5],\n      fontSize: 12,\n      fontFamily: ' sans-serif',\n      color: '#666',\n      borderWidth: 1,\n      borderColor: '#666'\n    },\n    emphasis: {\n      selectorLabel: {\n        show: true,\n        color: '#eee',\n        backgroundColor: '#666'\n      }\n    },\n    selectorPosition: 'auto',\n    selectorItemGap: 7,\n    selectorButtonGap: 10,\n    tooltip: {\n      show: false\n    }\n  };\n  return LegendModel;\n}(ComponentModel);\n\nexport default LegendModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { createSymbol } from '../../util/symbol';\nimport * as graphic from '../../util/graphic';\nimport { enableHoverEmphasis } from '../../util/states';\nimport { setLabelStyle, createTextStyle } from '../../label/labelStyle';\nimport { makeBackground } from '../helper/listComponent';\nimport * as layoutUtil from '../../util/layout';\nimport ComponentView from '../../view/Component';\nimport { parse, stringify } from 'zrender/lib/tool/color';\nvar curry = zrUtil.curry;\nvar each = zrUtil.each;\nvar Group = graphic.Group;\n\nvar LegendView = function (_super) {\n  __extends(LegendView, _super);\n\n  function LegendView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = LegendView.type;\n    _this.newlineDisabled = false;\n    return _this;\n  }\n\n  LegendView.prototype.init = function () {\n    this.group.add(this._contentGroup = new Group());\n    this.group.add(this._selectorGroup = new Group());\n    this._isFirstRender = true;\n  };\n\n  LegendView.prototype.getContentGroup = function () {\n    return this._contentGroup;\n  };\n\n  LegendView.prototype.getSelectorGroup = function () {\n    return this._selectorGroup;\n  };\n\n  LegendView.prototype.render = function (legendModel, ecModel, api) {\n    var isFirstRender = this._isFirstRender;\n    this._isFirstRender = false;\n    this.resetInner();\n\n    if (!legendModel.get('show', true)) {\n      return;\n    }\n\n    var itemAlign = legendModel.get('align');\n    var orient = legendModel.get('orient');\n\n    if (!itemAlign || itemAlign === 'auto') {\n      itemAlign = legendModel.get('left') === 'right' && orient === 'vertical' ? 'right' : 'left';\n    }\n\n    var selector = legendModel.get('selector', true);\n    var selectorPosition = legendModel.get('selectorPosition', true);\n\n    if (selector && (!selectorPosition || selectorPosition === 'auto')) {\n      selectorPosition = orient === 'horizontal' ? 'end' : 'start';\n    }\n\n    this.renderInner(itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\n    var positionInfo = legendModel.getBoxLayoutParams();\n    var viewportSize = {\n      width: api.getWidth(),\n      height: api.getHeight()\n    };\n    var padding = legendModel.get('padding');\n    var maxSize = layoutUtil.getLayoutRect(positionInfo, viewportSize, padding);\n    var mainRect = this.layoutInner(legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition);\n    var layoutRect = layoutUtil.getLayoutRect(zrUtil.defaults({\n      width: mainRect.width,\n      height: mainRect.height\n    }, positionInfo), viewportSize, padding);\n    this.group.x = layoutRect.x - mainRect.x;\n    this.group.y = layoutRect.y - mainRect.y;\n    this.group.markRedraw();\n    this.group.add(this._backgroundEl = makeBackground(mainRect, legendModel));\n  };\n\n  LegendView.prototype.resetInner = function () {\n    this.getContentGroup().removeAll();\n    this._backgroundEl && this.group.remove(this._backgroundEl);\n    this.getSelectorGroup().removeAll();\n  };\n\n  LegendView.prototype.renderInner = function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\n    var contentGroup = this.getContentGroup();\n    var legendDrawnMap = zrUtil.createHashMap();\n    var selectMode = legendModel.get('selectedMode');\n    var excludeSeriesId = [];\n    ecModel.eachRawSeries(function (seriesModel) {\n      !seriesModel.get('legendHoverLink') && excludeSeriesId.push(seriesModel.id);\n    });\n    each(legendModel.getData(), function (itemModel, dataIndex) {\n      var name = itemModel.get('name');\n\n      if (!this.newlineDisabled && (name === '' || name === '\\n')) {\n        var g = new Group();\n        g.newline = true;\n        contentGroup.add(g);\n        return;\n      }\n\n      var seriesModel = ecModel.getSeriesByName(name)[0];\n\n      if (legendDrawnMap.get(name)) {\n        return;\n      }\n\n      if (seriesModel) {\n        var data = seriesModel.getData();\n        var style = data.getVisual('style');\n        var color = style[data.getVisual('drawType')] || style.fill;\n        var borderColor = style.stroke;\n        var decal = style.decal;\n        var legendSymbolType = data.getVisual('legendSymbol') || 'roundRect';\n        var symbolType = data.getVisual('symbol');\n\n        var itemGroup = this._createItem(name, dataIndex, itemModel, legendModel, legendSymbolType, symbolType, itemAlign, color, borderColor, decal, selectMode);\n\n        itemGroup.on('click', curry(dispatchSelectAction, name, null, api, excludeSeriesId)).on('mouseover', curry(dispatchHighlightAction, seriesModel.name, null, api, excludeSeriesId)).on('mouseout', curry(dispatchDownplayAction, seriesModel.name, null, api, excludeSeriesId));\n        legendDrawnMap.set(name, true);\n      } else {\n        ecModel.eachRawSeries(function (seriesModel) {\n          if (legendDrawnMap.get(name)) {\n            return;\n          }\n\n          if (seriesModel.legendVisualProvider) {\n            var provider = seriesModel.legendVisualProvider;\n\n            if (!provider.containName(name)) {\n              return;\n            }\n\n            var idx = provider.indexOfName(name);\n            var style = provider.getItemVisual(idx, 'style');\n            var borderColor = style.stroke;\n            var decal = style.decal;\n            var color = style.fill;\n            var colorArr = parse(style.fill);\n\n            if (colorArr && colorArr[3] === 0) {\n              colorArr[3] = 0.2;\n              color = stringify(colorArr, 'rgba');\n            }\n\n            var legendSymbolType = 'roundRect';\n\n            var itemGroup = this._createItem(name, dataIndex, itemModel, legendModel, legendSymbolType, null, itemAlign, color, borderColor, decal, selectMode);\n\n            itemGroup.on('click', curry(dispatchSelectAction, null, name, api, excludeSeriesId)).on('mouseover', curry(dispatchHighlightAction, null, name, api, excludeSeriesId)).on('mouseout', curry(dispatchDownplayAction, null, name, api, excludeSeriesId));\n            legendDrawnMap.set(name, true);\n          }\n        }, this);\n      }\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (!legendDrawnMap.get(name)) {\n          console.warn(name + ' series not exists. Legend data should be same with series name or data name.');\n        }\n      }\n    }, this);\n\n    if (selector) {\n      this._createSelector(selector, legendModel, api, orient, selectorPosition);\n    }\n  };\n\n  LegendView.prototype._createSelector = function (selector, legendModel, api, orient, selectorPosition) {\n    var selectorGroup = this.getSelectorGroup();\n    each(selector, function createSelectorButton(selectorItem) {\n      var type = selectorItem.type;\n      var labelText = new graphic.Text({\n        style: {\n          x: 0,\n          y: 0,\n          align: 'center',\n          verticalAlign: 'middle'\n        },\n        onclick: function () {\n          api.dispatchAction({\n            type: type === 'all' ? 'legendAllSelect' : 'legendInverseSelect'\n          });\n        }\n      });\n      selectorGroup.add(labelText);\n      var labelModel = legendModel.getModel('selectorLabel');\n      var emphasisLabelModel = legendModel.getModel(['emphasis', 'selectorLabel']);\n      setLabelStyle(labelText, {\n        normal: labelModel,\n        emphasis: emphasisLabelModel\n      }, {\n        defaultText: selectorItem.title\n      });\n      enableHoverEmphasis(labelText);\n    });\n  };\n\n  LegendView.prototype._createItem = function (name, dataIndex, itemModel, legendModel, legendSymbolType, symbolType, itemAlign, color, borderColor, decal, selectMode) {\n    var itemWidth = legendModel.get('itemWidth');\n    var itemHeight = legendModel.get('itemHeight');\n    var inactiveColor = legendModel.get('inactiveColor');\n    var inactiveBorderColor = legendModel.get('inactiveBorderColor');\n    var symbolKeepAspect = legendModel.get('symbolKeepAspect');\n    var legendModelItemStyle = legendModel.getModel('itemStyle');\n    var isSelected = legendModel.isSelected(name);\n    var itemGroup = new Group();\n    var textStyleModel = itemModel.getModel('textStyle');\n    var itemIcon = itemModel.get('icon');\n    var tooltipModel = itemModel.getModel('tooltip');\n    var legendGlobalTooltipModel = tooltipModel.parentModel;\n    legendSymbolType = itemIcon || legendSymbolType;\n    var legendSymbol = createSymbol(legendSymbolType, 0, 0, itemWidth, itemHeight, isSelected ? color : inactiveColor, symbolKeepAspect == null ? true : symbolKeepAspect);\n    itemGroup.add(setSymbolStyle(legendSymbol, legendSymbolType, legendModelItemStyle, borderColor, inactiveBorderColor, decal, isSelected));\n\n    if (!itemIcon && symbolType && (symbolType !== legendSymbolType || symbolType === 'none')) {\n      var size = itemHeight * 0.8;\n\n      if (symbolType === 'none') {\n        symbolType = 'circle';\n      }\n\n      var legendSymbolCenter = createSymbol(symbolType, (itemWidth - size) / 2, (itemHeight - size) / 2, size, size, isSelected ? color : inactiveColor, symbolKeepAspect == null ? true : symbolKeepAspect);\n      itemGroup.add(setSymbolStyle(legendSymbolCenter, symbolType, legendModelItemStyle, borderColor, inactiveBorderColor, decal, isSelected));\n    }\n\n    var textX = itemAlign === 'left' ? itemWidth + 5 : -5;\n    var textAlign = itemAlign;\n    var formatter = legendModel.get('formatter');\n    var content = name;\n\n    if (typeof formatter === 'string' && formatter) {\n      content = formatter.replace('{name}', name != null ? name : '');\n    } else if (typeof formatter === 'function') {\n      content = formatter(name);\n    }\n\n    itemGroup.add(new graphic.Text({\n      style: createTextStyle(textStyleModel, {\n        text: content,\n        x: textX,\n        y: itemHeight / 2,\n        fill: isSelected ? textStyleModel.getTextColor() : inactiveColor,\n        align: textAlign,\n        verticalAlign: 'middle'\n      })\n    }));\n    var hitRect = new graphic.Rect({\n      shape: itemGroup.getBoundingRect(),\n      invisible: true\n    });\n\n    if (tooltipModel.get('show')) {\n      var formatterParams = {\n        componentType: 'legend',\n        legendIndex: legendModel.componentIndex,\n        name: name,\n        $vars: ['name']\n      };\n      hitRect.tooltip = zrUtil.extend({\n        content: name,\n        formatter: legendGlobalTooltipModel.get('formatter', true) || function (params) {\n          return params.name;\n        },\n        formatterParams: formatterParams\n      }, tooltipModel.option);\n    }\n\n    itemGroup.add(hitRect);\n    itemGroup.eachChild(function (child) {\n      child.silent = true;\n    });\n    hitRect.silent = !selectMode;\n    this.getContentGroup().add(itemGroup);\n    enableHoverEmphasis(itemGroup);\n    itemGroup.__legendDataIndex = dataIndex;\n    return itemGroup;\n  };\n\n  LegendView.prototype.layoutInner = function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\n    var contentGroup = this.getContentGroup();\n    var selectorGroup = this.getSelectorGroup();\n    layoutUtil.box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), maxSize.width, maxSize.height);\n    var contentRect = contentGroup.getBoundingRect();\n    var contentPos = [-contentRect.x, -contentRect.y];\n    selectorGroup.markRedraw();\n    contentGroup.markRedraw();\n\n    if (selector) {\n      layoutUtil.box('horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\n      var selectorRect = selectorGroup.getBoundingRect();\n      var selectorPos = [-selectorRect.x, -selectorRect.y];\n      var selectorButtonGap = legendModel.get('selectorButtonGap', true);\n      var orientIdx = legendModel.getOrient().index;\n      var wh = orientIdx === 0 ? 'width' : 'height';\n      var hw = orientIdx === 0 ? 'height' : 'width';\n      var yx = orientIdx === 0 ? 'y' : 'x';\n\n      if (selectorPosition === 'end') {\n        selectorPos[orientIdx] += contentRect[wh] + selectorButtonGap;\n      } else {\n        contentPos[orientIdx] += selectorRect[wh] + selectorButtonGap;\n      }\n\n      selectorPos[1 - orientIdx] += contentRect[hw] / 2 - selectorRect[hw] / 2;\n      selectorGroup.x = selectorPos[0];\n      selectorGroup.y = selectorPos[1];\n      contentGroup.x = contentPos[0];\n      contentGroup.y = contentPos[1];\n      var mainRect = {\n        x: 0,\n        y: 0\n      };\n      mainRect[wh] = contentRect[wh] + selectorButtonGap + selectorRect[wh];\n      mainRect[hw] = Math.max(contentRect[hw], selectorRect[hw]);\n      mainRect[yx] = Math.min(0, selectorRect[yx] + selectorPos[1 - orientIdx]);\n      return mainRect;\n    } else {\n      contentGroup.x = contentPos[0];\n      contentGroup.y = contentPos[1];\n      return this.group.getBoundingRect();\n    }\n  };\n\n  LegendView.prototype.remove = function () {\n    this.getContentGroup().removeAll();\n    this._isFirstRender = true;\n  };\n\n  LegendView.type = 'legend.plain';\n  return LegendView;\n}(ComponentView);\n\nfunction setSymbolStyle(symbol, symbolType, legendModelItemStyle, borderColor, inactiveBorderColor, decal, isSelected) {\n  var itemStyle;\n\n  if (symbolType !== 'line' && symbolType.indexOf('empty') < 0) {\n    itemStyle = legendModelItemStyle.getItemStyle();\n    symbol.style.stroke = borderColor;\n    symbol.style.decal = decal;\n\n    if (!isSelected) {\n      itemStyle.stroke = inactiveBorderColor;\n    }\n  } else {\n    itemStyle = legendModelItemStyle.getItemStyle(['borderWidth', 'borderColor']);\n  }\n\n  symbol.setStyle(itemStyle);\n  return symbol;\n}\n\nfunction dispatchSelectAction(seriesName, dataName, api, excludeSeriesId) {\n  dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId);\n  api.dispatchAction({\n    type: 'legendToggleSelect',\n    name: seriesName != null ? seriesName : dataName\n  });\n  dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId);\n}\n\nfunction isUseHoverLayer(api) {\n  var list = api.getZr().storage.getDisplayList();\n  var emphasisState;\n  var i = 0;\n  var len = list.length;\n\n  while (i < len && !(emphasisState = list[i].states.emphasis)) {\n    i++;\n  }\n\n  return emphasisState && emphasisState.hoverLayer;\n}\n\nfunction dispatchHighlightAction(seriesName, dataName, api, excludeSeriesId) {\n  if (!isUseHoverLayer(api)) {\n    api.dispatchAction({\n      type: 'highlight',\n      seriesName: seriesName,\n      name: dataName,\n      excludeSeriesId: excludeSeriesId\n    });\n  }\n}\n\nfunction dispatchDownplayAction(seriesName, dataName, api, excludeSeriesId) {\n  if (!isUseHoverLayer(api)) {\n    api.dispatchAction({\n      type: 'downplay',\n      seriesName: seriesName,\n      name: dataName,\n      excludeSeriesId: excludeSeriesId\n    });\n  }\n}\n\nexport default LegendView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function legendFilter(ecModel) {\n  var legendModels = ecModel.findComponents({\n    mainType: 'legend'\n  });\n\n  if (legendModels && legendModels.length) {\n    ecModel.filterSeries(function (series) {\n      for (var i = 0; i < legendModels.length; i++) {\n        if (!legendModels[i].isSelected(series.name)) {\n          return false;\n        }\n      }\n\n      return true;\n    });\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { curry, each } from 'zrender/lib/core/util';\n\nfunction legendSelectActionHandler(methodName, payload, ecModel) {\n  var selectedMap = {};\n  var isToggleSelect = methodName === 'toggleSelected';\n  var isSelected;\n  ecModel.eachComponent('legend', function (legendModel) {\n    if (isToggleSelect && isSelected != null) {\n      legendModel[isSelected ? 'select' : 'unSelect'](payload.name);\n    } else if (methodName === 'allSelect' || methodName === 'inverseSelect') {\n      legendModel[methodName]();\n    } else {\n      legendModel[methodName](payload.name);\n      isSelected = legendModel.isSelected(payload.name);\n    }\n\n    var legendData = legendModel.getData();\n    each(legendData, function (model) {\n      var name = model.get('name');\n\n      if (name === '\\n' || name === '') {\n        return;\n      }\n\n      var isItemSelected = legendModel.isSelected(name);\n\n      if (selectedMap.hasOwnProperty(name)) {\n        selectedMap[name] = selectedMap[name] && isItemSelected;\n      } else {\n        selectedMap[name] = isItemSelected;\n      }\n    });\n  });\n  return methodName === 'allSelect' || methodName === 'inverseSelect' ? {\n    selected: selectedMap\n  } : {\n    name: payload.name,\n    selected: selectedMap\n  };\n}\n\nexport function installLegendAction(registers) {\n  registers.registerAction('legendToggleSelect', 'legendselectchanged', curry(legendSelectActionHandler, 'toggleSelected'));\n  registers.registerAction('legendAllSelect', 'legendselectall', curry(legendSelectActionHandler, 'allSelect'));\n  registers.registerAction('legendInverseSelect', 'legendinverseselect', curry(legendSelectActionHandler, 'inverseSelect'));\n  registers.registerAction('legendSelect', 'legendselected', curry(legendSelectActionHandler, 'select'));\n  registers.registerAction('legendUnSelect', 'legendunselected', curry(legendSelectActionHandler, 'unSelect'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport LegendModel from './LegendModel';\nimport LegendView from './LegendView';\nimport legendFilter from './legendFilter';\nimport { installLegendAction } from './legendAction';\nexport function install(registers) {\n  registers.registerComponentModel(LegendModel);\n  registers.registerComponentView(LegendView);\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.SERIES_FILTER, legendFilter);\n  registers.registerSubTypeDefaulter('legend', function () {\n    return 'plain';\n  });\n  installLegendAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport LegendModel from './LegendModel';\nimport { mergeLayoutParam, getLayoutParams } from '../../util/layout';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar ScrollableLegendModel = function (_super) {\n  __extends(ScrollableLegendModel, _super);\n\n  function ScrollableLegendModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ScrollableLegendModel.type;\n    return _this;\n  }\n\n  ScrollableLegendModel.prototype.setScrollDataIndex = function (scrollDataIndex) {\n    this.option.scrollDataIndex = scrollDataIndex;\n  };\n\n  ScrollableLegendModel.prototype.init = function (option, parentModel, ecModel) {\n    var inputPositionParams = getLayoutParams(option);\n\n    _super.prototype.init.call(this, option, parentModel, ecModel);\n\n    mergeAndNormalizeLayoutParams(this, option, inputPositionParams);\n  };\n\n  ScrollableLegendModel.prototype.mergeOption = function (option, ecModel) {\n    _super.prototype.mergeOption.call(this, option, ecModel);\n\n    mergeAndNormalizeLayoutParams(this, this.option, option);\n  };\n\n  ScrollableLegendModel.type = 'legend.scroll';\n  ScrollableLegendModel.defaultOption = inheritDefaultOption(LegendModel.defaultOption, {\n    scrollDataIndex: 0,\n    pageButtonItemGap: 5,\n    pageButtonGap: null,\n    pageButtonPosition: 'end',\n    pageFormatter: '{current}/{total}',\n    pageIcons: {\n      horizontal: ['M0,0L12,-10L12,10z', 'M0,0L-12,-10L-12,10z'],\n      vertical: ['M0,0L20,0L10,-20z', 'M0,0L20,0L10,20z']\n    },\n    pageIconColor: '#2f4554',\n    pageIconInactiveColor: '#aaa',\n    pageIconSize: 15,\n    pageTextStyle: {\n      color: '#333'\n    },\n    animationDurationUpdate: 800\n  });\n  return ScrollableLegendModel;\n}(LegendModel);\n\n;\n\nfunction mergeAndNormalizeLayoutParams(legendModel, target, raw) {\n  var orient = legendModel.getOrient();\n  var ignoreSize = [1, 1];\n  ignoreSize[orient.index] = 0;\n  mergeLayoutParam(target, raw, {\n    type: 'box',\n    ignoreSize: !!ignoreSize\n  });\n}\n\nexport default ScrollableLegendModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport * as layoutUtil from '../../util/layout';\nimport LegendView from './LegendView';\nvar Group = graphic.Group;\nvar WH = ['width', 'height'];\nvar XY = ['x', 'y'];\n\nvar ScrollableLegendView = function (_super) {\n  __extends(ScrollableLegendView, _super);\n\n  function ScrollableLegendView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ScrollableLegendView.type;\n    _this.newlineDisabled = true;\n    _this._currentIndex = 0;\n    return _this;\n  }\n\n  ScrollableLegendView.prototype.init = function () {\n    _super.prototype.init.call(this);\n\n    this.group.add(this._containerGroup = new Group());\n\n    this._containerGroup.add(this.getContentGroup());\n\n    this.group.add(this._controllerGroup = new Group());\n  };\n\n  ScrollableLegendView.prototype.resetInner = function () {\n    _super.prototype.resetInner.call(this);\n\n    this._controllerGroup.removeAll();\n\n    this._containerGroup.removeClipPath();\n\n    this._containerGroup.__rectSize = null;\n  };\n\n  ScrollableLegendView.prototype.renderInner = function (itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition) {\n    var self = this;\n\n    _super.prototype.renderInner.call(this, itemAlign, legendModel, ecModel, api, selector, orient, selectorPosition);\n\n    var controllerGroup = this._controllerGroup;\n    var pageIconSize = legendModel.get('pageIconSize', true);\n    var pageIconSizeArr = zrUtil.isArray(pageIconSize) ? pageIconSize : [pageIconSize, pageIconSize];\n    createPageButton('pagePrev', 0);\n    var pageTextStyleModel = legendModel.getModel('pageTextStyle');\n    controllerGroup.add(new graphic.Text({\n      name: 'pageText',\n      style: {\n        text: 'xx/xx',\n        fill: pageTextStyleModel.getTextColor(),\n        font: pageTextStyleModel.getFont(),\n        verticalAlign: 'middle',\n        align: 'center'\n      },\n      silent: true\n    }));\n    createPageButton('pageNext', 1);\n\n    function createPageButton(name, iconIdx) {\n      var pageDataIndexName = name + 'DataIndex';\n      var icon = graphic.createIcon(legendModel.get('pageIcons', true)[legendModel.getOrient().name][iconIdx], {\n        onclick: zrUtil.bind(self._pageGo, self, pageDataIndexName, legendModel, api)\n      }, {\n        x: -pageIconSizeArr[0] / 2,\n        y: -pageIconSizeArr[1] / 2,\n        width: pageIconSizeArr[0],\n        height: pageIconSizeArr[1]\n      });\n      icon.name = name;\n      controllerGroup.add(icon);\n    }\n  };\n\n  ScrollableLegendView.prototype.layoutInner = function (legendModel, itemAlign, maxSize, isFirstRender, selector, selectorPosition) {\n    var selectorGroup = this.getSelectorGroup();\n    var orientIdx = legendModel.getOrient().index;\n    var wh = WH[orientIdx];\n    var xy = XY[orientIdx];\n    var hw = WH[1 - orientIdx];\n    var yx = XY[1 - orientIdx];\n    selector && layoutUtil.box('horizontal', selectorGroup, legendModel.get('selectorItemGap', true));\n    var selectorButtonGap = legendModel.get('selectorButtonGap', true);\n    var selectorRect = selectorGroup.getBoundingRect();\n    var selectorPos = [-selectorRect.x, -selectorRect.y];\n    var processMaxSize = zrUtil.clone(maxSize);\n    selector && (processMaxSize[wh] = maxSize[wh] - selectorRect[wh] - selectorButtonGap);\n\n    var mainRect = this._layoutContentAndController(legendModel, isFirstRender, processMaxSize, orientIdx, wh, hw, yx, xy);\n\n    if (selector) {\n      if (selectorPosition === 'end') {\n        selectorPos[orientIdx] += mainRect[wh] + selectorButtonGap;\n      } else {\n        var offset = selectorRect[wh] + selectorButtonGap;\n        selectorPos[orientIdx] -= offset;\n        mainRect[xy] -= offset;\n      }\n\n      mainRect[wh] += selectorRect[wh] + selectorButtonGap;\n      selectorPos[1 - orientIdx] += mainRect[yx] + mainRect[hw] / 2 - selectorRect[hw] / 2;\n      mainRect[hw] = Math.max(mainRect[hw], selectorRect[hw]);\n      mainRect[yx] = Math.min(mainRect[yx], selectorRect[yx] + selectorPos[1 - orientIdx]);\n      selectorGroup.x = selectorPos[0];\n      selectorGroup.y = selectorPos[1];\n      selectorGroup.markRedraw();\n    }\n\n    return mainRect;\n  };\n\n  ScrollableLegendView.prototype._layoutContentAndController = function (legendModel, isFirstRender, maxSize, orientIdx, wh, hw, yx, xy) {\n    var contentGroup = this.getContentGroup();\n    var containerGroup = this._containerGroup;\n    var controllerGroup = this._controllerGroup;\n    layoutUtil.box(legendModel.get('orient'), contentGroup, legendModel.get('itemGap'), !orientIdx ? null : maxSize.width, orientIdx ? null : maxSize.height);\n    layoutUtil.box('horizontal', controllerGroup, legendModel.get('pageButtonItemGap', true));\n    var contentRect = contentGroup.getBoundingRect();\n    var controllerRect = controllerGroup.getBoundingRect();\n    var showController = this._showController = contentRect[wh] > maxSize[wh];\n    var contentPos = [-contentRect.x, -contentRect.y];\n\n    if (!isFirstRender) {\n      contentPos[orientIdx] = contentGroup[xy];\n    }\n\n    var containerPos = [0, 0];\n    var controllerPos = [-controllerRect.x, -controllerRect.y];\n    var pageButtonGap = zrUtil.retrieve2(legendModel.get('pageButtonGap', true), legendModel.get('itemGap', true));\n\n    if (showController) {\n      var pageButtonPosition = legendModel.get('pageButtonPosition', true);\n\n      if (pageButtonPosition === 'end') {\n        controllerPos[orientIdx] += maxSize[wh] - controllerRect[wh];\n      } else {\n        containerPos[orientIdx] += controllerRect[wh] + pageButtonGap;\n      }\n    }\n\n    controllerPos[1 - orientIdx] += contentRect[hw] / 2 - controllerRect[hw] / 2;\n    contentGroup.setPosition(contentPos);\n    containerGroup.setPosition(containerPos);\n    controllerGroup.setPosition(controllerPos);\n    var mainRect = {\n      x: 0,\n      y: 0\n    };\n    mainRect[wh] = showController ? maxSize[wh] : contentRect[wh];\n    mainRect[hw] = Math.max(contentRect[hw], controllerRect[hw]);\n    mainRect[yx] = Math.min(0, controllerRect[yx] + controllerPos[1 - orientIdx]);\n    containerGroup.__rectSize = maxSize[wh];\n\n    if (showController) {\n      var clipShape = {\n        x: 0,\n        y: 0\n      };\n      clipShape[wh] = Math.max(maxSize[wh] - controllerRect[wh] - pageButtonGap, 0);\n      clipShape[hw] = mainRect[hw];\n      containerGroup.setClipPath(new graphic.Rect({\n        shape: clipShape\n      }));\n      containerGroup.__rectSize = clipShape[wh];\n    } else {\n      controllerGroup.eachChild(function (child) {\n        child.attr({\n          invisible: true,\n          silent: true\n        });\n      });\n    }\n\n    var pageInfo = this._getPageInfo(legendModel);\n\n    pageInfo.pageIndex != null && graphic.updateProps(contentGroup, {\n      x: pageInfo.contentPosition[0],\n      y: pageInfo.contentPosition[1]\n    }, showController ? legendModel : null);\n\n    this._updatePageInfoView(legendModel, pageInfo);\n\n    return mainRect;\n  };\n\n  ScrollableLegendView.prototype._pageGo = function (to, legendModel, api) {\n    var scrollDataIndex = this._getPageInfo(legendModel)[to];\n\n    scrollDataIndex != null && api.dispatchAction({\n      type: 'legendScroll',\n      scrollDataIndex: scrollDataIndex,\n      legendId: legendModel.id\n    });\n  };\n\n  ScrollableLegendView.prototype._updatePageInfoView = function (legendModel, pageInfo) {\n    var controllerGroup = this._controllerGroup;\n    zrUtil.each(['pagePrev', 'pageNext'], function (name) {\n      var key = name + 'DataIndex';\n      var canJump = pageInfo[key] != null;\n      var icon = controllerGroup.childOfName(name);\n\n      if (icon) {\n        icon.setStyle('fill', canJump ? legendModel.get('pageIconColor', true) : legendModel.get('pageIconInactiveColor', true));\n        icon.cursor = canJump ? 'pointer' : 'default';\n      }\n    });\n    var pageText = controllerGroup.childOfName('pageText');\n    var pageFormatter = legendModel.get('pageFormatter');\n    var pageIndex = pageInfo.pageIndex;\n    var current = pageIndex != null ? pageIndex + 1 : 0;\n    var total = pageInfo.pageCount;\n    pageText && pageFormatter && pageText.setStyle('text', zrUtil.isString(pageFormatter) ? pageFormatter.replace('{current}', current == null ? '' : current + '').replace('{total}', total == null ? '' : total + '') : pageFormatter({\n      current: current,\n      total: total\n    }));\n  };\n\n  ScrollableLegendView.prototype._getPageInfo = function (legendModel) {\n    var scrollDataIndex = legendModel.get('scrollDataIndex', true);\n    var contentGroup = this.getContentGroup();\n    var containerRectSize = this._containerGroup.__rectSize;\n    var orientIdx = legendModel.getOrient().index;\n    var wh = WH[orientIdx];\n    var xy = XY[orientIdx];\n\n    var targetItemIndex = this._findTargetItemIndex(scrollDataIndex);\n\n    var children = contentGroup.children();\n    var targetItem = children[targetItemIndex];\n    var itemCount = children.length;\n    var pCount = !itemCount ? 0 : 1;\n    var result = {\n      contentPosition: [contentGroup.x, contentGroup.y],\n      pageCount: pCount,\n      pageIndex: pCount - 1,\n      pagePrevDataIndex: null,\n      pageNextDataIndex: null\n    };\n\n    if (!targetItem) {\n      return result;\n    }\n\n    var targetItemInfo = getItemInfo(targetItem);\n    result.contentPosition[orientIdx] = -targetItemInfo.s;\n\n    for (var i = targetItemIndex + 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i <= itemCount; ++i) {\n      currItemInfo = getItemInfo(children[i]);\n\n      if (!currItemInfo && winEndItemInfo.e > winStartItemInfo.s + containerRectSize || currItemInfo && !intersect(currItemInfo, winStartItemInfo.s)) {\n        if (winEndItemInfo.i > winStartItemInfo.i) {\n          winStartItemInfo = winEndItemInfo;\n        } else {\n          winStartItemInfo = currItemInfo;\n        }\n\n        if (winStartItemInfo) {\n          if (result.pageNextDataIndex == null) {\n            result.pageNextDataIndex = winStartItemInfo.i;\n          }\n\n          ++result.pageCount;\n        }\n      }\n\n      winEndItemInfo = currItemInfo;\n    }\n\n    for (var i = targetItemIndex - 1, winStartItemInfo = targetItemInfo, winEndItemInfo = targetItemInfo, currItemInfo = null; i >= -1; --i) {\n      currItemInfo = getItemInfo(children[i]);\n\n      if ((!currItemInfo || !intersect(winEndItemInfo, currItemInfo.s)) && winStartItemInfo.i < winEndItemInfo.i) {\n        winEndItemInfo = winStartItemInfo;\n\n        if (result.pagePrevDataIndex == null) {\n          result.pagePrevDataIndex = winStartItemInfo.i;\n        }\n\n        ++result.pageCount;\n        ++result.pageIndex;\n      }\n\n      winStartItemInfo = currItemInfo;\n    }\n\n    return result;\n\n    function getItemInfo(el) {\n      if (el) {\n        var itemRect = el.getBoundingRect();\n        var start = itemRect[xy] + el[xy];\n        return {\n          s: start,\n          e: start + itemRect[wh],\n          i: el.__legendDataIndex\n        };\n      }\n    }\n\n    function intersect(itemInfo, winStart) {\n      return itemInfo.e >= winStart && itemInfo.s <= winStart + containerRectSize;\n    }\n  };\n\n  ScrollableLegendView.prototype._findTargetItemIndex = function (targetDataIndex) {\n    if (!this._showController) {\n      return 0;\n    }\n\n    var index;\n    var contentGroup = this.getContentGroup();\n    var defaultIndex;\n    contentGroup.eachChild(function (child, idx) {\n      var legendDataIdx = child.__legendDataIndex;\n\n      if (defaultIndex == null && legendDataIdx != null) {\n        defaultIndex = idx;\n      }\n\n      if (legendDataIdx === targetDataIndex) {\n        index = idx;\n      }\n    });\n    return index != null ? index : defaultIndex;\n  };\n\n  ScrollableLegendView.type = 'legend.scroll';\n  return ScrollableLegendView;\n}(LegendView);\n\nexport default ScrollableLegendView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function installScrollableLegendAction(registers) {\n  registers.registerAction('legendScroll', 'legendscroll', function (payload, ecModel) {\n    var scrollDataIndex = payload.scrollDataIndex;\n    scrollDataIndex != null && ecModel.eachComponent({\n      mainType: 'legend',\n      subType: 'scroll',\n      query: payload\n    }, function (legendModel) {\n      legendModel.setScrollDataIndex(scrollDataIndex);\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport { install as installLegendPlain } from './installLegendPlain';\nimport ScrollableLegendModel from './ScrollableLegendModel';\nimport ScrollableLegendView from './ScrollableLegendView';\nimport installScrollableLegendAction from './scrollableLegendAction';\nexport function install(registers) {\n  use(installLegendPlain);\n  registers.registerComponentModel(ScrollableLegendModel);\n  registers.registerComponentView(ScrollableLegendView);\n  installScrollableLegendAction(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport { install as installLegendPlain } from './installLegendPlain';\nimport { install as installLegendScroll } from './installLegendScroll';\nexport function install(registers) {\n  use(installLegendPlain);\n  use(installLegendScroll);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport DataZoomModel from './DataZoomModel';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar InsideZoomModel = function (_super) {\n  __extends(InsideZoomModel, _super);\n\n  function InsideZoomModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = InsideZoomModel.type;\n    return _this;\n  }\n\n  InsideZoomModel.type = 'dataZoom.inside';\n  InsideZoomModel.defaultOption = inheritDefaultOption(DataZoomModel.defaultOption, {\n    disabled: false,\n    zoomLock: false,\n    zoomOnMouseWheel: true,\n    moveOnMouseMove: true,\n    moveOnMouseWheel: false,\n    preventDefaultMouseMove: true\n  });\n  return InsideZoomModel;\n}(DataZoomModel);\n\nexport default InsideZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport RoamController from '../../component/helper/RoamController';\nimport * as throttleUtil from '../../util/throttle';\nimport { makeInner } from '../../util/model';\nimport { each, curry, createHashMap } from 'zrender/lib/core/util';\nimport { collectReferCoordSysModelInfo } from './helper';\nvar inner = makeInner();\nexport function setViewInfoToCoordSysRecord(api, dataZoomModel, getRange) {\n  inner(api).coordSysRecordMap.each(function (coordSysRecord) {\n    var dzInfo = coordSysRecord.dataZoomInfoMap.get(dataZoomModel.uid);\n\n    if (dzInfo) {\n      dzInfo.getRange = getRange;\n    }\n  });\n}\nexport function disposeCoordSysRecordIfNeeded(api, dataZoomModel) {\n  var coordSysRecordMap = inner(api).coordSysRecordMap;\n  var coordSysKeyArr = coordSysRecordMap.keys();\n\n  for (var i = 0; i < coordSysKeyArr.length; i++) {\n    var coordSysKey = coordSysKeyArr[i];\n    var coordSysRecord = coordSysRecordMap.get(coordSysKey);\n    var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap;\n\n    if (dataZoomInfoMap) {\n      var dzUid = dataZoomModel.uid;\n      var dzInfo = dataZoomInfoMap.get(dzUid);\n\n      if (dzInfo) {\n        dataZoomInfoMap.removeKey(dzUid);\n\n        if (!dataZoomInfoMap.keys().length) {\n          disposeCoordSysRecord(coordSysRecordMap, coordSysRecord);\n        }\n      }\n    }\n  }\n}\n\nfunction disposeCoordSysRecord(coordSysRecordMap, coordSysRecord) {\n  if (coordSysRecord) {\n    coordSysRecordMap.removeKey(coordSysRecord.model.uid);\n    var controller = coordSysRecord.controller;\n    controller && controller.dispose();\n  }\n}\n\nfunction createCoordSysRecord(api, coordSysModel) {\n  var coordSysRecord = {\n    model: coordSysModel,\n    containsPoint: curry(containsPoint, coordSysModel),\n    dispatchAction: curry(dispatchAction, api),\n    dataZoomInfoMap: null,\n    controller: null\n  };\n  var controller = coordSysRecord.controller = new RoamController(api.getZr());\n  each(['pan', 'zoom', 'scrollMove'], function (eventName) {\n    controller.on(eventName, function (event) {\n      var batch = [];\n      coordSysRecord.dataZoomInfoMap.each(function (dzInfo) {\n        if (!event.isAvailableBehavior(dzInfo.model.option)) {\n          return;\n        }\n\n        var method = (dzInfo.getRange || {})[eventName];\n        var range = method && method(dzInfo.dzReferCoordSysInfo, coordSysRecord.model.mainType, coordSysRecord.controller, event);\n        !dzInfo.model.get('disabled', true) && range && batch.push({\n          dataZoomId: dzInfo.model.id,\n          start: range[0],\n          end: range[1]\n        });\n      });\n      batch.length && coordSysRecord.dispatchAction(batch);\n    });\n  });\n  return coordSysRecord;\n}\n\nfunction dispatchAction(api, batch) {\n  api.dispatchAction({\n    type: 'dataZoom',\n    animation: {\n      easing: 'cubicOut',\n      duration: 100\n    },\n    batch: batch\n  });\n}\n\nfunction containsPoint(coordSysModel, e, x, y) {\n  return coordSysModel.coordinateSystem.containPoint([x, y]);\n}\n\nfunction mergeControllerParams(dataZoomInfoMap) {\n  var controlType;\n  var prefix = 'type_';\n  var typePriority = {\n    'type_true': 2,\n    'type_move': 1,\n    'type_false': 0,\n    'type_undefined': -1\n  };\n  var preventDefaultMouseMove = true;\n  dataZoomInfoMap.each(function (dataZoomInfo) {\n    var dataZoomModel = dataZoomInfo.model;\n    var oneType = dataZoomModel.get('disabled', true) ? false : dataZoomModel.get('zoomLock', true) ? 'move' : true;\n\n    if (typePriority[prefix + oneType] > typePriority[prefix + controlType]) {\n      controlType = oneType;\n    }\n\n    preventDefaultMouseMove = preventDefaultMouseMove && dataZoomModel.get('preventDefaultMouseMove', true);\n  });\n  return {\n    controlType: controlType,\n    opt: {\n      zoomOnMouseWheel: true,\n      moveOnMouseMove: true,\n      moveOnMouseWheel: true,\n      preventDefaultMouseMove: !!preventDefaultMouseMove\n    }\n  };\n}\n\nexport function installDataZoomRoamProcessor(registers) {\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.FILTER, function (ecModel, api) {\n    var apiInner = inner(api);\n    var coordSysRecordMap = apiInner.coordSysRecordMap || (apiInner.coordSysRecordMap = createHashMap());\n    coordSysRecordMap.each(function (coordSysRecord) {\n      coordSysRecord.dataZoomInfoMap = null;\n    });\n    ecModel.eachComponent({\n      mainType: 'dataZoom',\n      subType: 'inside'\n    }, function (dataZoomModel) {\n      var dzReferCoordSysWrap = collectReferCoordSysModelInfo(dataZoomModel);\n      each(dzReferCoordSysWrap.infoList, function (dzCoordSysInfo) {\n        var coordSysUid = dzCoordSysInfo.model.uid;\n        var coordSysRecord = coordSysRecordMap.get(coordSysUid) || coordSysRecordMap.set(coordSysUid, createCoordSysRecord(api, dzCoordSysInfo.model));\n        var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap || (coordSysRecord.dataZoomInfoMap = createHashMap());\n        dataZoomInfoMap.set(dataZoomModel.uid, {\n          dzReferCoordSysInfo: dzCoordSysInfo,\n          model: dataZoomModel,\n          getRange: null\n        });\n      });\n    });\n    coordSysRecordMap.each(function (coordSysRecord) {\n      var controller = coordSysRecord.controller;\n      var firstDzInfo;\n      var dataZoomInfoMap = coordSysRecord.dataZoomInfoMap;\n\n      if (dataZoomInfoMap) {\n        var firstDzKey = dataZoomInfoMap.keys()[0];\n\n        if (firstDzKey != null) {\n          firstDzInfo = dataZoomInfoMap.get(firstDzKey);\n        }\n      }\n\n      if (!firstDzInfo) {\n        disposeCoordSysRecord(coordSysRecordMap, coordSysRecord);\n        return;\n      }\n\n      var controllerParams = mergeControllerParams(dataZoomInfoMap);\n      controller.enable(controllerParams.controlType, controllerParams.opt);\n      controller.setPointerChecker(coordSysRecord.containsPoint);\n      throttleUtil.createOrUpdate(coordSysRecord, 'dispatchAction', firstDzInfo.model.get('throttle', true), 'fixRate');\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport DataZoomView from './DataZoomView';\nimport sliderMove from '../helper/sliderMove';\nimport * as roams from './roams';\nimport { bind } from 'zrender/lib/core/util';\n\nvar InsideZoomView = function (_super) {\n  __extends(InsideZoomView, _super);\n\n  function InsideZoomView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'dataZoom.inside';\n    return _this;\n  }\n\n  InsideZoomView.prototype.render = function (dataZoomModel, ecModel, api) {\n    _super.prototype.render.apply(this, arguments);\n\n    if (dataZoomModel.noTarget()) {\n      this._clear();\n\n      return;\n    }\n\n    this.range = dataZoomModel.getPercentRange();\n    roams.setViewInfoToCoordSysRecord(api, dataZoomModel, {\n      pan: bind(getRangeHandlers.pan, this),\n      zoom: bind(getRangeHandlers.zoom, this),\n      scrollMove: bind(getRangeHandlers.scrollMove, this)\n    });\n  };\n\n  InsideZoomView.prototype.dispose = function () {\n    this._clear();\n\n    _super.prototype.dispose.apply(this, arguments);\n  };\n\n  InsideZoomView.prototype._clear = function () {\n    roams.disposeCoordSysRecordIfNeeded(this.api, this.dataZoomModel);\n    this.range = null;\n  };\n\n  InsideZoomView.type = 'dataZoom.inside';\n  return InsideZoomView;\n}(DataZoomView);\n\nvar getRangeHandlers = {\n  zoom: function (coordSysInfo, coordSysMainType, controller, e) {\n    var lastRange = this.range;\n    var range = lastRange.slice();\n    var axisModel = coordSysInfo.axisModels[0];\n\n    if (!axisModel) {\n      return;\n    }\n\n    var directionInfo = getDirectionInfo[coordSysMainType](null, [e.originX, e.originY], axisModel, controller, coordSysInfo);\n    var percentPoint = (directionInfo.signal > 0 ? directionInfo.pixelStart + directionInfo.pixelLength - directionInfo.pixel : directionInfo.pixel - directionInfo.pixelStart) / directionInfo.pixelLength * (range[1] - range[0]) + range[0];\n    var scale = Math.max(1 / e.scale, 0);\n    range[0] = (range[0] - percentPoint) * scale + percentPoint;\n    range[1] = (range[1] - percentPoint) * scale + percentPoint;\n    var minMaxSpan = this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\n    sliderMove(0, range, [0, 100], 0, minMaxSpan.minSpan, minMaxSpan.maxSpan);\n    this.range = range;\n\n    if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\n      return range;\n    }\n  },\n  pan: makeMover(function (range, axisModel, coordSysInfo, coordSysMainType, controller, e) {\n    var directionInfo = getDirectionInfo[coordSysMainType]([e.oldX, e.oldY], [e.newX, e.newY], axisModel, controller, coordSysInfo);\n    return directionInfo.signal * (range[1] - range[0]) * directionInfo.pixel / directionInfo.pixelLength;\n  }),\n  scrollMove: makeMover(function (range, axisModel, coordSysInfo, coordSysMainType, controller, e) {\n    var directionInfo = getDirectionInfo[coordSysMainType]([0, 0], [e.scrollDelta, e.scrollDelta], axisModel, controller, coordSysInfo);\n    return directionInfo.signal * (range[1] - range[0]) * e.scrollDelta;\n  })\n};\n\nfunction makeMover(getPercentDelta) {\n  return function (coordSysInfo, coordSysMainType, controller, e) {\n    var lastRange = this.range;\n    var range = lastRange.slice();\n    var axisModel = coordSysInfo.axisModels[0];\n\n    if (!axisModel) {\n      return;\n    }\n\n    var percentDelta = getPercentDelta(range, axisModel, coordSysInfo, coordSysMainType, controller, e);\n    sliderMove(percentDelta, range, [0, 100], 'all');\n    this.range = range;\n\n    if (lastRange[0] !== range[0] || lastRange[1] !== range[1]) {\n      return range;\n    }\n  };\n}\n\nvar getDirectionInfo = {\n  grid: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\n    var axis = axisModel.axis;\n    var ret = {};\n    var rect = coordSysInfo.model.coordinateSystem.getRect();\n    oldPoint = oldPoint || [0, 0];\n\n    if (axis.dim === 'x') {\n      ret.pixel = newPoint[0] - oldPoint[0];\n      ret.pixelLength = rect.width;\n      ret.pixelStart = rect.x;\n      ret.signal = axis.inverse ? 1 : -1;\n    } else {\n      ret.pixel = newPoint[1] - oldPoint[1];\n      ret.pixelLength = rect.height;\n      ret.pixelStart = rect.y;\n      ret.signal = axis.inverse ? -1 : 1;\n    }\n\n    return ret;\n  },\n  polar: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\n    var axis = axisModel.axis;\n    var ret = {};\n    var polar = coordSysInfo.model.coordinateSystem;\n    var radiusExtent = polar.getRadiusAxis().getExtent();\n    var angleExtent = polar.getAngleAxis().getExtent();\n    oldPoint = oldPoint ? polar.pointToCoord(oldPoint) : [0, 0];\n    newPoint = polar.pointToCoord(newPoint);\n\n    if (axisModel.mainType === 'radiusAxis') {\n      ret.pixel = newPoint[0] - oldPoint[0];\n      ret.pixelLength = radiusExtent[1] - radiusExtent[0];\n      ret.pixelStart = radiusExtent[0];\n      ret.signal = axis.inverse ? 1 : -1;\n    } else {\n      ret.pixel = newPoint[1] - oldPoint[1];\n      ret.pixelLength = angleExtent[1] - angleExtent[0];\n      ret.pixelStart = angleExtent[0];\n      ret.signal = axis.inverse ? -1 : 1;\n    }\n\n    return ret;\n  },\n  singleAxis: function (oldPoint, newPoint, axisModel, controller, coordSysInfo) {\n    var axis = axisModel.axis;\n    var rect = coordSysInfo.model.coordinateSystem.getRect();\n    var ret = {};\n    oldPoint = oldPoint || [0, 0];\n\n    if (axis.orient === 'horizontal') {\n      ret.pixel = newPoint[0] - oldPoint[0];\n      ret.pixelLength = rect.width;\n      ret.pixelStart = rect.x;\n      ret.signal = axis.inverse ? 1 : -1;\n    } else {\n      ret.pixel = newPoint[1] - oldPoint[1];\n      ret.pixelLength = rect.height;\n      ret.pixelStart = rect.y;\n      ret.signal = axis.inverse ? -1 : 1;\n    }\n\n    return ret;\n  }\n};\nexport default InsideZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport InsideZoomModel from './InsideZoomModel';\nimport InsideZoomView from './InsideZoomView';\nimport { installDataZoomRoamProcessor } from './roams';\nimport installCommon from './installCommon';\nexport function install(registers) {\n  installCommon(registers);\n  registers.registerComponentModel(InsideZoomModel);\n  registers.registerComponentView(InsideZoomView);\n  installDataZoomRoamProcessor(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport DataZoomModel from './DataZoomModel';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar SliderZoomModel = function (_super) {\n  __extends(SliderZoomModel, _super);\n\n  function SliderZoomModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SliderZoomModel.type;\n    return _this;\n  }\n\n  SliderZoomModel.type = 'dataZoom.slider';\n  SliderZoomModel.layoutMode = 'box';\n  SliderZoomModel.defaultOption = inheritDefaultOption(DataZoomModel.defaultOption, {\n    show: true,\n    right: 'ph',\n    top: 'ph',\n    width: 'ph',\n    height: 'ph',\n    left: null,\n    bottom: null,\n    borderColor: '#d2dbee',\n    borderRadius: 3,\n    backgroundColor: 'rgba(47,69,84,0)',\n    dataBackground: {\n      lineStyle: {\n        color: '#d2dbee',\n        width: 0.5\n      },\n      areaStyle: {\n        color: '#d2dbee',\n        opacity: 0.2\n      }\n    },\n    selectedDataBackground: {\n      lineStyle: {\n        color: '#8fb0f7',\n        width: 0.5\n      },\n      areaStyle: {\n        color: '#8fb0f7',\n        opacity: 0.2\n      }\n    },\n    fillerColor: 'rgba(135,175,274,0.2)',\n    handleIcon: 'path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z',\n    handleSize: '100%',\n    handleStyle: {\n      color: '#fff',\n      borderColor: '#ACB8D1'\n    },\n    moveHandleSize: 7,\n    moveHandleIcon: 'path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z',\n    moveHandleStyle: {\n      color: '#D2DBEE',\n      opacity: 0.7\n    },\n    showDetail: true,\n    showDataShadow: 'auto',\n    realtime: true,\n    zoomLock: false,\n    textStyle: {\n      color: '#6E7079'\n    },\n    brushSelect: true,\n    brushStyle: {\n      color: 'rgba(135,175,274,0.15)'\n    },\n    emphasis: {\n      handleStyle: {\n        borderColor: '#8FB0F7'\n      },\n      moveHandleStyle: {\n        color: '#8FB0F7'\n      }\n    }\n  });\n  return SliderZoomModel;\n}(DataZoomModel);\n\nexport default SliderZoomModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { bind, each, isFunction, isString, indexOf } from 'zrender/lib/core/util';\nimport * as eventTool from 'zrender/lib/core/event';\nimport * as graphic from '../../util/graphic';\nimport * as throttle from '../../util/throttle';\nimport DataZoomView from './DataZoomView';\nimport { linearMap, asc, parsePercent } from '../../util/number';\nimport * as layout from '../../util/layout';\nimport sliderMove from '../helper/sliderMove';\nimport { getAxisMainType, collectReferCoordSysModelInfo } from './helper';\nimport { enableHoverEmphasis } from '../../util/states';\nimport { createSymbol, symbolBuildProxies } from '../../util/symbol';\nimport { deprecateLog } from '../../util/log';\nvar Rect = graphic.Rect;\nvar DEFAULT_LOCATION_EDGE_GAP = 7;\nvar DEFAULT_FRAME_BORDER_WIDTH = 1;\nvar DEFAULT_FILLER_SIZE = 30;\nvar DEFAULT_MOVE_HANDLE_SIZE = 7;\nvar HORIZONTAL = 'horizontal';\nvar VERTICAL = 'vertical';\nvar LABEL_GAP = 5;\nvar SHOW_DATA_SHADOW_SERIES_TYPE = ['line', 'bar', 'candlestick', 'scatter'];\nvar REALTIME_ANIMATION_CONFIG = {\n  easing: 'cubicOut',\n  duration: 100\n};\n\nvar SliderZoomView = function (_super) {\n  __extends(SliderZoomView, _super);\n\n  function SliderZoomView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = SliderZoomView.type;\n    _this._displayables = {};\n    return _this;\n  }\n\n  SliderZoomView.prototype.init = function (ecModel, api) {\n    this.api = api;\n    this._onBrush = bind(this._onBrush, this);\n    this._onBrushEnd = bind(this._onBrushEnd, this);\n  };\n\n  SliderZoomView.prototype.render = function (dataZoomModel, ecModel, api, payload) {\n    _super.prototype.render.apply(this, arguments);\n\n    throttle.createOrUpdate(this, '_dispatchZoomAction', dataZoomModel.get('throttle'), 'fixRate');\n    this._orient = dataZoomModel.getOrient();\n\n    if (dataZoomModel.get('show') === false) {\n      this.group.removeAll();\n      return;\n    }\n\n    if (dataZoomModel.noTarget()) {\n      this._clear();\n\n      this.group.removeAll();\n      return;\n    }\n\n    if (!payload || payload.type !== 'dataZoom' || payload.from !== this.uid) {\n      this._buildView();\n    }\n\n    this._updateView();\n  };\n\n  SliderZoomView.prototype.dispose = function () {\n    this._clear();\n\n    _super.prototype.dispose.apply(this, arguments);\n  };\n\n  SliderZoomView.prototype._clear = function () {\n    throttle.clear(this, '_dispatchZoomAction');\n    var zr = this.api.getZr();\n    zr.off('mousemove', this._onBrush);\n    zr.off('mouseup', this._onBrushEnd);\n  };\n\n  SliderZoomView.prototype._buildView = function () {\n    var thisGroup = this.group;\n    thisGroup.removeAll();\n    this._brushing = false;\n    this._displayables.brushRect = null;\n\n    this._resetLocation();\n\n    this._resetInterval();\n\n    var barGroup = this._displayables.sliderGroup = new graphic.Group();\n\n    this._renderBackground();\n\n    this._renderHandle();\n\n    this._renderDataShadow();\n\n    thisGroup.add(barGroup);\n\n    this._positionGroup();\n  };\n\n  SliderZoomView.prototype._resetLocation = function () {\n    var dataZoomModel = this.dataZoomModel;\n    var api = this.api;\n    var showMoveHandle = dataZoomModel.get('brushSelect');\n    var moveHandleSize = showMoveHandle ? DEFAULT_MOVE_HANDLE_SIZE : 0;\n\n    var coordRect = this._findCoordRect();\n\n    var ecSize = {\n      width: api.getWidth(),\n      height: api.getHeight()\n    };\n    var positionInfo = this._orient === HORIZONTAL ? {\n      right: ecSize.width - coordRect.x - coordRect.width,\n      top: ecSize.height - DEFAULT_FILLER_SIZE - DEFAULT_LOCATION_EDGE_GAP - moveHandleSize,\n      width: coordRect.width,\n      height: DEFAULT_FILLER_SIZE\n    } : {\n      right: DEFAULT_LOCATION_EDGE_GAP,\n      top: coordRect.y,\n      width: DEFAULT_FILLER_SIZE,\n      height: coordRect.height\n    };\n    var layoutParams = layout.getLayoutParams(dataZoomModel.option);\n    each(['right', 'top', 'width', 'height'], function (name) {\n      if (layoutParams[name] === 'ph') {\n        layoutParams[name] = positionInfo[name];\n      }\n    });\n    var layoutRect = layout.getLayoutRect(layoutParams, ecSize);\n    this._location = {\n      x: layoutRect.x,\n      y: layoutRect.y\n    };\n    this._size = [layoutRect.width, layoutRect.height];\n    this._orient === VERTICAL && this._size.reverse();\n  };\n\n  SliderZoomView.prototype._positionGroup = function () {\n    var thisGroup = this.group;\n    var location = this._location;\n    var orient = this._orient;\n    var targetAxisModel = this.dataZoomModel.getFirstTargetAxisModel();\n    var inverse = targetAxisModel && targetAxisModel.get('inverse');\n    var sliderGroup = this._displayables.sliderGroup;\n    var otherAxisInverse = (this._dataShadowInfo || {}).otherAxisInverse;\n    sliderGroup.attr(orient === HORIZONTAL && !inverse ? {\n      scaleY: otherAxisInverse ? 1 : -1,\n      scaleX: 1\n    } : orient === HORIZONTAL && inverse ? {\n      scaleY: otherAxisInverse ? 1 : -1,\n      scaleX: -1\n    } : orient === VERTICAL && !inverse ? {\n      scaleY: otherAxisInverse ? -1 : 1,\n      scaleX: 1,\n      rotation: Math.PI / 2\n    } : {\n      scaleY: otherAxisInverse ? -1 : 1,\n      scaleX: -1,\n      rotation: Math.PI / 2\n    });\n    var rect = thisGroup.getBoundingRect([sliderGroup]);\n    thisGroup.x = location.x - rect.x;\n    thisGroup.y = location.y - rect.y;\n    thisGroup.markRedraw();\n  };\n\n  SliderZoomView.prototype._getViewExtent = function () {\n    return [0, this._size[0]];\n  };\n\n  SliderZoomView.prototype._renderBackground = function () {\n    var dataZoomModel = this.dataZoomModel;\n    var size = this._size;\n    var barGroup = this._displayables.sliderGroup;\n    var brushSelect = dataZoomModel.get('brushSelect');\n    barGroup.add(new Rect({\n      silent: true,\n      shape: {\n        x: 0,\n        y: 0,\n        width: size[0],\n        height: size[1]\n      },\n      style: {\n        fill: dataZoomModel.get('backgroundColor')\n      },\n      z2: -40\n    }));\n    var clickPanel = new Rect({\n      shape: {\n        x: 0,\n        y: 0,\n        width: size[0],\n        height: size[1]\n      },\n      style: {\n        fill: 'transparent'\n      },\n      z2: 0,\n      onclick: bind(this._onClickPanel, this)\n    });\n    var zr = this.api.getZr();\n\n    if (brushSelect) {\n      clickPanel.on('mousedown', this._onBrushStart, this);\n      clickPanel.cursor = 'crosshair';\n      zr.on('mousemove', this._onBrush);\n      zr.on('mouseup', this._onBrushEnd);\n    } else {\n      zr.off('mousemove', this._onBrush);\n      zr.off('mouseup', this._onBrushEnd);\n    }\n\n    barGroup.add(clickPanel);\n  };\n\n  SliderZoomView.prototype._renderDataShadow = function () {\n    var info = this._dataShadowInfo = this._prepareDataShadowInfo();\n\n    this._displayables.dataShadowSegs = [];\n\n    if (!info) {\n      return;\n    }\n\n    var size = this._size;\n    var seriesModel = info.series;\n    var data = seriesModel.getRawData();\n    var otherDim = seriesModel.getShadowDim ? seriesModel.getShadowDim() : info.otherDim;\n\n    if (otherDim == null) {\n      return;\n    }\n\n    var otherDataExtent = data.getDataExtent(otherDim);\n    var otherOffset = (otherDataExtent[1] - otherDataExtent[0]) * 0.3;\n    otherDataExtent = [otherDataExtent[0] - otherOffset, otherDataExtent[1] + otherOffset];\n    var otherShadowExtent = [0, size[1]];\n    var thisShadowExtent = [0, size[0]];\n    var areaPoints = [[size[0], 0], [0, 0]];\n    var linePoints = [];\n    var step = thisShadowExtent[1] / (data.count() - 1);\n    var thisCoord = 0;\n    var stride = Math.round(data.count() / size[0]);\n    var lastIsEmpty;\n    data.each([otherDim], function (value, index) {\n      if (stride > 0 && index % stride) {\n        thisCoord += step;\n        return;\n      }\n\n      var isEmpty = value == null || isNaN(value) || value === '';\n      var otherCoord = isEmpty ? 0 : linearMap(value, otherDataExtent, otherShadowExtent, true);\n\n      if (isEmpty && !lastIsEmpty && index) {\n        areaPoints.push([areaPoints[areaPoints.length - 1][0], 0]);\n        linePoints.push([linePoints[linePoints.length - 1][0], 0]);\n      } else if (!isEmpty && lastIsEmpty) {\n        areaPoints.push([thisCoord, 0]);\n        linePoints.push([thisCoord, 0]);\n      }\n\n      areaPoints.push([thisCoord, otherCoord]);\n      linePoints.push([thisCoord, otherCoord]);\n      thisCoord += step;\n      lastIsEmpty = isEmpty;\n    });\n    var dataZoomModel = this.dataZoomModel;\n\n    function createDataShadowGroup(isSelectedArea) {\n      var model = dataZoomModel.getModel(isSelectedArea ? 'selectedDataBackground' : 'dataBackground');\n      var group = new graphic.Group();\n      var polygon = new graphic.Polygon({\n        shape: {\n          points: areaPoints\n        },\n        segmentIgnoreThreshold: 1,\n        style: model.getModel('areaStyle').getAreaStyle(),\n        silent: true,\n        z2: -20\n      });\n      var polyline = new graphic.Polyline({\n        shape: {\n          points: linePoints\n        },\n        segmentIgnoreThreshold: 1,\n        style: model.getModel('lineStyle').getLineStyle(),\n        silent: true,\n        z2: -19\n      });\n      group.add(polygon);\n      group.add(polyline);\n      return group;\n    }\n\n    for (var i = 0; i < 3; i++) {\n      var group = createDataShadowGroup(i === 1);\n\n      this._displayables.sliderGroup.add(group);\n\n      this._displayables.dataShadowSegs.push(group);\n    }\n  };\n\n  SliderZoomView.prototype._prepareDataShadowInfo = function () {\n    var dataZoomModel = this.dataZoomModel;\n    var showDataShadow = dataZoomModel.get('showDataShadow');\n\n    if (showDataShadow === false) {\n      return;\n    }\n\n    var result;\n    var ecModel = this.ecModel;\n    dataZoomModel.eachTargetAxis(function (axisDim, axisIndex) {\n      var seriesModels = dataZoomModel.getAxisProxy(axisDim, axisIndex).getTargetSeriesModels();\n      each(seriesModels, function (seriesModel) {\n        if (result) {\n          return;\n        }\n\n        if (showDataShadow !== true && indexOf(SHOW_DATA_SHADOW_SERIES_TYPE, seriesModel.get('type')) < 0) {\n          return;\n        }\n\n        var thisAxis = ecModel.getComponent(getAxisMainType(axisDim), axisIndex).axis;\n        var otherDim = getOtherDim(axisDim);\n        var otherAxisInverse;\n        var coordSys = seriesModel.coordinateSystem;\n\n        if (otherDim != null && coordSys.getOtherAxis) {\n          otherAxisInverse = coordSys.getOtherAxis(thisAxis).inverse;\n        }\n\n        otherDim = seriesModel.getData().mapDimension(otherDim);\n        result = {\n          thisAxis: thisAxis,\n          series: seriesModel,\n          thisDim: axisDim,\n          otherDim: otherDim,\n          otherAxisInverse: otherAxisInverse\n        };\n      }, this);\n    }, this);\n    return result;\n  };\n\n  SliderZoomView.prototype._renderHandle = function () {\n    var thisGroup = this.group;\n    var displayables = this._displayables;\n    var handles = displayables.handles = [null, null];\n    var handleLabels = displayables.handleLabels = [null, null];\n    var sliderGroup = this._displayables.sliderGroup;\n    var size = this._size;\n    var dataZoomModel = this.dataZoomModel;\n    var api = this.api;\n    var borderRadius = dataZoomModel.get('borderRadius') || 0;\n    var brushSelect = dataZoomModel.get('brushSelect');\n    var filler = displayables.filler = new Rect({\n      silent: brushSelect,\n      style: {\n        fill: dataZoomModel.get('fillerColor')\n      },\n      textConfig: {\n        position: 'inside'\n      }\n    });\n    sliderGroup.add(filler);\n    sliderGroup.add(new Rect({\n      silent: true,\n      subPixelOptimize: true,\n      shape: {\n        x: 0,\n        y: 0,\n        width: size[0],\n        height: size[1],\n        r: borderRadius\n      },\n      style: {\n        stroke: dataZoomModel.get('dataBackgroundColor') || dataZoomModel.get('borderColor'),\n        lineWidth: DEFAULT_FRAME_BORDER_WIDTH,\n        fill: 'rgba(0,0,0,0)'\n      }\n    }));\n    each([0, 1], function (handleIndex) {\n      var iconStr = dataZoomModel.get('handleIcon');\n\n      if (!symbolBuildProxies[iconStr] && iconStr.indexOf('path://') < 0) {\n        iconStr = 'path://' + iconStr;\n\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateLog('handleIcon now needs \\'path://\\' prefix when using a path string');\n        }\n      }\n\n      var path = createSymbol(iconStr, -1, 0, 2, 2, null, true);\n      path.attr({\n        cursor: getCursor(this._orient),\n        draggable: true,\n        drift: bind(this._onDragMove, this, handleIndex),\n        ondragend: bind(this._onDragEnd, this),\n        onmouseover: bind(this._showDataInfo, this, true),\n        onmouseout: bind(this._showDataInfo, this, false),\n        z2: 5\n      });\n      var bRect = path.getBoundingRect();\n      var handleSize = dataZoomModel.get('handleSize');\n      this._handleHeight = parsePercent(handleSize, this._size[1]);\n      this._handleWidth = bRect.width / bRect.height * this._handleHeight;\n      path.setStyle(dataZoomModel.getModel('handleStyle').getItemStyle());\n      path.style.strokeNoScale = true;\n      path.rectHover = true;\n      path.ensureState('emphasis').style = dataZoomModel.getModel(['emphasis', 'handleStyle']).getItemStyle();\n      enableHoverEmphasis(path);\n      var handleColor = dataZoomModel.get('handleColor');\n\n      if (handleColor != null) {\n        path.style.fill = handleColor;\n      }\n\n      sliderGroup.add(handles[handleIndex] = path);\n      var textStyleModel = dataZoomModel.getModel('textStyle');\n      thisGroup.add(handleLabels[handleIndex] = new graphic.Text({\n        silent: true,\n        invisible: true,\n        style: {\n          x: 0,\n          y: 0,\n          text: '',\n          verticalAlign: 'middle',\n          align: 'center',\n          fill: textStyleModel.getTextColor(),\n          font: textStyleModel.getFont()\n        },\n        z2: 10\n      }));\n    }, this);\n    var actualMoveZone = filler;\n\n    if (brushSelect) {\n      var moveHandleHeight = parsePercent(dataZoomModel.get('moveHandleSize'), size[1]);\n      var moveHandle_1 = displayables.moveHandle = new graphic.Rect({\n        style: dataZoomModel.getModel('moveHandleStyle').getItemStyle(),\n        silent: true,\n        shape: {\n          r: [0, 0, 2, 2],\n          y: size[1] - 0.5,\n          height: moveHandleHeight\n        }\n      });\n      var iconSize = moveHandleHeight * 0.8;\n      var moveHandleIcon = displayables.moveHandleIcon = createSymbol(dataZoomModel.get('moveHandleIcon'), -iconSize / 2, -iconSize / 2, iconSize, iconSize, '#fff', true);\n      moveHandleIcon.silent = true;\n      moveHandleIcon.y = size[1] + moveHandleHeight / 2 - 0.5;\n      moveHandle_1.ensureState('emphasis').style = dataZoomModel.getModel(['emphasis', 'moveHandleStyle']).getItemStyle();\n      var moveZoneExpandSize = Math.min(size[1] / 2, Math.max(moveHandleHeight, 10));\n      actualMoveZone = displayables.moveZone = new graphic.Rect({\n        invisible: true,\n        shape: {\n          y: size[1] - moveZoneExpandSize,\n          height: moveHandleHeight + moveZoneExpandSize\n        }\n      });\n      actualMoveZone.on('mouseover', function () {\n        api.enterEmphasis(moveHandle_1);\n      }).on('mouseout', function () {\n        api.leaveEmphasis(moveHandle_1);\n      });\n      sliderGroup.add(moveHandle_1);\n      sliderGroup.add(moveHandleIcon);\n      sliderGroup.add(actualMoveZone);\n    }\n\n    actualMoveZone.attr({\n      draggable: true,\n      cursor: getCursor(this._orient),\n      drift: bind(this._onDragMove, this, 'all'),\n      ondragstart: bind(this._showDataInfo, this, true),\n      ondragend: bind(this._onDragEnd, this),\n      onmouseover: bind(this._showDataInfo, this, true),\n      onmouseout: bind(this._showDataInfo, this, false)\n    });\n  };\n\n  SliderZoomView.prototype._resetInterval = function () {\n    var range = this._range = this.dataZoomModel.getPercentRange();\n\n    var viewExtent = this._getViewExtent();\n\n    this._handleEnds = [linearMap(range[0], [0, 100], viewExtent, true), linearMap(range[1], [0, 100], viewExtent, true)];\n  };\n\n  SliderZoomView.prototype._updateInterval = function (handleIndex, delta) {\n    var dataZoomModel = this.dataZoomModel;\n    var handleEnds = this._handleEnds;\n\n    var viewExtend = this._getViewExtent();\n\n    var minMaxSpan = dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();\n    var percentExtent = [0, 100];\n    sliderMove(delta, handleEnds, viewExtend, dataZoomModel.get('zoomLock') ? 'all' : handleIndex, minMaxSpan.minSpan != null ? linearMap(minMaxSpan.minSpan, percentExtent, viewExtend, true) : null, minMaxSpan.maxSpan != null ? linearMap(minMaxSpan.maxSpan, percentExtent, viewExtend, true) : null);\n    var lastRange = this._range;\n    var range = this._range = asc([linearMap(handleEnds[0], viewExtend, percentExtent, true), linearMap(handleEnds[1], viewExtend, percentExtent, true)]);\n    return !lastRange || lastRange[0] !== range[0] || lastRange[1] !== range[1];\n  };\n\n  SliderZoomView.prototype._updateView = function (nonRealtime) {\n    var displaybles = this._displayables;\n    var handleEnds = this._handleEnds;\n    var handleInterval = asc(handleEnds.slice());\n    var size = this._size;\n    each([0, 1], function (handleIndex) {\n      var handle = displaybles.handles[handleIndex];\n      var handleHeight = this._handleHeight;\n      handle.attr({\n        scaleX: handleHeight / 2,\n        scaleY: handleHeight / 2,\n        x: handleEnds[handleIndex] + (handleIndex ? -1 : 1),\n        y: size[1] / 2 - handleHeight / 2\n      });\n    }, this);\n    displaybles.filler.setShape({\n      x: handleInterval[0],\n      y: 0,\n      width: handleInterval[1] - handleInterval[0],\n      height: size[1]\n    });\n    var viewExtent = {\n      x: handleInterval[0],\n      width: handleInterval[1] - handleInterval[0]\n    };\n\n    if (displaybles.moveHandle) {\n      displaybles.moveHandle.setShape(viewExtent);\n      displaybles.moveZone.setShape(viewExtent);\n      displaybles.moveZone.getBoundingRect();\n      displaybles.moveHandleIcon && displaybles.moveHandleIcon.attr('x', viewExtent.x + viewExtent.width / 2);\n    }\n\n    var dataShadowSegs = displaybles.dataShadowSegs;\n    var segIntervals = [0, handleInterval[0], handleInterval[1], size[0]];\n\n    for (var i = 0; i < dataShadowSegs.length; i++) {\n      var segGroup = dataShadowSegs[i];\n      var clipPath = segGroup.getClipPath();\n\n      if (!clipPath) {\n        clipPath = new graphic.Rect();\n        segGroup.setClipPath(clipPath);\n      }\n\n      clipPath.setShape({\n        x: segIntervals[i],\n        y: 0,\n        width: segIntervals[i + 1] - segIntervals[i],\n        height: size[1]\n      });\n    }\n\n    this._updateDataInfo(nonRealtime);\n  };\n\n  SliderZoomView.prototype._updateDataInfo = function (nonRealtime) {\n    var dataZoomModel = this.dataZoomModel;\n    var displaybles = this._displayables;\n    var handleLabels = displaybles.handleLabels;\n    var orient = this._orient;\n    var labelTexts = ['', ''];\n\n    if (dataZoomModel.get('showDetail')) {\n      var axisProxy = dataZoomModel.findRepresentativeAxisProxy();\n\n      if (axisProxy) {\n        var axis = axisProxy.getAxisModel().axis;\n        var range = this._range;\n        var dataInterval = nonRealtime ? axisProxy.calculateDataWindow({\n          start: range[0],\n          end: range[1]\n        }).valueWindow : axisProxy.getDataValueWindow();\n        labelTexts = [this._formatLabel(dataInterval[0], axis), this._formatLabel(dataInterval[1], axis)];\n      }\n    }\n\n    var orderedHandleEnds = asc(this._handleEnds.slice());\n    setLabel.call(this, 0);\n    setLabel.call(this, 1);\n\n    function setLabel(handleIndex) {\n      var barTransform = graphic.getTransform(displaybles.handles[handleIndex].parent, this.group);\n      var direction = graphic.transformDirection(handleIndex === 0 ? 'right' : 'left', barTransform);\n      var offset = this._handleWidth / 2 + LABEL_GAP;\n      var textPoint = graphic.applyTransform([orderedHandleEnds[handleIndex] + (handleIndex === 0 ? -offset : offset), this._size[1] / 2], barTransform);\n      handleLabels[handleIndex].setStyle({\n        x: textPoint[0],\n        y: textPoint[1],\n        verticalAlign: orient === HORIZONTAL ? 'middle' : direction,\n        align: orient === HORIZONTAL ? direction : 'center',\n        text: labelTexts[handleIndex]\n      });\n    }\n  };\n\n  SliderZoomView.prototype._formatLabel = function (value, axis) {\n    var dataZoomModel = this.dataZoomModel;\n    var labelFormatter = dataZoomModel.get('labelFormatter');\n    var labelPrecision = dataZoomModel.get('labelPrecision');\n\n    if (labelPrecision == null || labelPrecision === 'auto') {\n      labelPrecision = axis.getPixelPrecision();\n    }\n\n    var valueStr = value == null || isNaN(value) ? '' : axis.type === 'category' || axis.type === 'time' ? axis.scale.getLabel({\n      value: Math.round(value)\n    }) : value.toFixed(Math.min(labelPrecision, 20));\n    return isFunction(labelFormatter) ? labelFormatter(value, valueStr) : isString(labelFormatter) ? labelFormatter.replace('{value}', valueStr) : valueStr;\n  };\n\n  SliderZoomView.prototype._showDataInfo = function (showOrHide) {\n    showOrHide = this._dragging || showOrHide;\n    var displayables = this._displayables;\n    var handleLabels = displayables.handleLabels;\n    handleLabels[0].attr('invisible', !showOrHide);\n    handleLabels[1].attr('invisible', !showOrHide);\n    displayables.moveHandle && this.api[showOrHide ? 'enterEmphasis' : 'leaveEmphasis'](displayables.moveHandle, 1);\n  };\n\n  SliderZoomView.prototype._onDragMove = function (handleIndex, dx, dy, event) {\n    this._dragging = true;\n    eventTool.stop(event.event);\n\n    var barTransform = this._displayables.sliderGroup.getLocalTransform();\n\n    var vertex = graphic.applyTransform([dx, dy], barTransform, true);\n\n    var changed = this._updateInterval(handleIndex, vertex[0]);\n\n    var realtime = this.dataZoomModel.get('realtime');\n\n    this._updateView(!realtime);\n\n    changed && realtime && this._dispatchZoomAction(true);\n  };\n\n  SliderZoomView.prototype._onDragEnd = function () {\n    this._dragging = false;\n\n    this._showDataInfo(false);\n\n    var realtime = this.dataZoomModel.get('realtime');\n    !realtime && this._dispatchZoomAction(false);\n  };\n\n  SliderZoomView.prototype._onClickPanel = function (e) {\n    var size = this._size;\n\n    var localPoint = this._displayables.sliderGroup.transformCoordToLocal(e.offsetX, e.offsetY);\n\n    if (localPoint[0] < 0 || localPoint[0] > size[0] || localPoint[1] < 0 || localPoint[1] > size[1]) {\n      return;\n    }\n\n    var handleEnds = this._handleEnds;\n    var center = (handleEnds[0] + handleEnds[1]) / 2;\n\n    var changed = this._updateInterval('all', localPoint[0] - center);\n\n    this._updateView();\n\n    changed && this._dispatchZoomAction(false);\n  };\n\n  SliderZoomView.prototype._onBrushStart = function (e) {\n    var x = e.offsetX;\n    var y = e.offsetY;\n    this._brushStart = new graphic.Point(x, y);\n    this._brushing = true;\n    this._brushStartTime = +new Date();\n  };\n\n  SliderZoomView.prototype._onBrushEnd = function (e) {\n    if (!this._brushing) {\n      return;\n    }\n\n    var brushRect = this._displayables.brushRect;\n    this._brushing = false;\n\n    if (!brushRect) {\n      return;\n    }\n\n    brushRect.attr('ignore', true);\n    var brushShape = brushRect.shape;\n    var brushEndTime = +new Date();\n\n    if (brushEndTime - this._brushStartTime < 200 && Math.abs(brushShape.width) < 5) {\n      return;\n    }\n\n    var viewExtend = this._getViewExtent();\n\n    var percentExtent = [0, 100];\n    this._range = asc([linearMap(brushShape.x, viewExtend, percentExtent, true), linearMap(brushShape.x + brushShape.width, viewExtend, percentExtent, true)]);\n    this._handleEnds = [brushShape.x, brushShape.x + brushShape.width];\n\n    this._updateView();\n\n    this._dispatchZoomAction(false);\n  };\n\n  SliderZoomView.prototype._onBrush = function (e) {\n    if (this._brushing) {\n      eventTool.stop(e.event);\n\n      this._updateBrushRect(e.offsetX, e.offsetY);\n    }\n  };\n\n  SliderZoomView.prototype._updateBrushRect = function (mouseX, mouseY) {\n    var displayables = this._displayables;\n    var dataZoomModel = this.dataZoomModel;\n    var brushRect = displayables.brushRect;\n\n    if (!brushRect) {\n      brushRect = displayables.brushRect = new Rect({\n        silent: true,\n        style: dataZoomModel.getModel('brushStyle').getItemStyle()\n      });\n      displayables.sliderGroup.add(brushRect);\n    }\n\n    brushRect.attr('ignore', false);\n    var brushStart = this._brushStart;\n    var sliderGroup = this._displayables.sliderGroup;\n    var endPoint = sliderGroup.transformCoordToLocal(mouseX, mouseY);\n    var startPoint = sliderGroup.transformCoordToLocal(brushStart.x, brushStart.y);\n    var size = this._size;\n    endPoint[0] = Math.max(Math.min(size[0], endPoint[0]), 0);\n    brushRect.setShape({\n      x: startPoint[0],\n      y: 0,\n      width: endPoint[0] - startPoint[0],\n      height: size[1]\n    });\n  };\n\n  SliderZoomView.prototype._dispatchZoomAction = function (realtime) {\n    var range = this._range;\n    this.api.dispatchAction({\n      type: 'dataZoom',\n      from: this.uid,\n      dataZoomId: this.dataZoomModel.id,\n      animation: realtime ? REALTIME_ANIMATION_CONFIG : null,\n      start: range[0],\n      end: range[1]\n    });\n  };\n\n  SliderZoomView.prototype._findCoordRect = function () {\n    var rect;\n    var coordSysInfoList = collectReferCoordSysModelInfo(this.dataZoomModel).infoList;\n\n    if (!rect && coordSysInfoList.length) {\n      var coordSys = coordSysInfoList[0].model.coordinateSystem;\n      rect = coordSys.getRect && coordSys.getRect();\n    }\n\n    if (!rect) {\n      var width = this.api.getWidth();\n      var height = this.api.getHeight();\n      rect = {\n        x: width * 0.2,\n        y: height * 0.2,\n        width: width * 0.6,\n        height: height * 0.6\n      };\n    }\n\n    return rect;\n  };\n\n  SliderZoomView.type = 'dataZoom.slider';\n  return SliderZoomView;\n}(DataZoomView);\n\nfunction getOtherDim(thisDim) {\n  var map = {\n    x: 'y',\n    y: 'x',\n    radius: 'angle',\n    angle: 'radius'\n  };\n  return map[thisDim];\n}\n\nfunction getCursor(orient) {\n  return orient === 'vertical' ? 'ns-resize' : 'ew-resize';\n}\n\nexport default SliderZoomView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport SliderZoomModel from './SliderZoomModel';\nimport SliderZoomView from './SliderZoomView';\nimport installCommon from './installCommon';\nexport function install(registers) {\n  registers.registerComponentModel(SliderZoomModel);\n  registers.registerComponentView(SliderZoomView);\n  installCommon(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport { install as installDataZoomInside } from './installDataZoomInside';\nimport { install as installDataZoomSlider } from './installDataZoomSlider';\nexport function install(registers) {\n  use(installDataZoomInside);\n  use(installDataZoomSlider);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar visualDefault = {\n  get: function (visualType, key, isCategory) {\n    var value = zrUtil.clone((defaultOption[visualType] || {})[key]);\n    return isCategory ? zrUtil.isArray(value) ? value[value.length - 1] : value : value;\n  }\n};\nvar defaultOption = {\n  color: {\n    active: ['#006edd', '#e0ffff'],\n    inactive: ['rgba(0,0,0,0)']\n  },\n  colorHue: {\n    active: [0, 360],\n    inactive: [0, 0]\n  },\n  colorSaturation: {\n    active: [0.3, 1],\n    inactive: [0, 0]\n  },\n  colorLightness: {\n    active: [0.9, 0.5],\n    inactive: [0, 0]\n  },\n  colorAlpha: {\n    active: [0.3, 1],\n    inactive: [0, 0]\n  },\n  opacity: {\n    active: [0.3, 1],\n    inactive: [0, 0]\n  },\n  symbol: {\n    active: ['circle', 'roundRect', 'diamond'],\n    inactive: ['none']\n  },\n  symbolSize: {\n    active: [10, 50],\n    inactive: [0, 0]\n  }\n};\nexport default visualDefault;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport visualDefault from '../../visual/visualDefault';\nimport VisualMapping from '../../visual/VisualMapping';\nimport * as visualSolution from '../../visual/visualSolution';\nimport * as modelUtil from '../../util/model';\nimport * as numberUtil from '../../util/number';\nimport ComponentModel from '../../model/Component';\nvar mapVisual = VisualMapping.mapVisual;\nvar eachVisual = VisualMapping.eachVisual;\nvar isArray = zrUtil.isArray;\nvar each = zrUtil.each;\nvar asc = numberUtil.asc;\nvar linearMap = numberUtil.linearMap;\n\nvar VisualMapModel = function (_super) {\n  __extends(VisualMapModel, _super);\n\n  function VisualMapModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = VisualMapModel.type;\n    _this.stateList = ['inRange', 'outOfRange'];\n    _this.replacableOptionKeys = ['inRange', 'outOfRange', 'target', 'controller', 'color'];\n    _this.layoutMode = {\n      type: 'box',\n      ignoreSize: true\n    };\n    _this.dataBound = [-Infinity, Infinity];\n    _this.targetVisuals = {};\n    _this.controllerVisuals = {};\n    return _this;\n  }\n\n  VisualMapModel.prototype.init = function (option, parentModel, ecModel) {\n    this.mergeDefaultAndTheme(option, ecModel);\n  };\n\n  VisualMapModel.prototype.optionUpdated = function (newOption, isInit) {\n    var thisOption = this.option;\n\n    if (!env.canvasSupported) {\n      thisOption.realtime = false;\n    }\n\n    !isInit && visualSolution.replaceVisualOption(thisOption, newOption, this.replacableOptionKeys);\n    this.textStyleModel = this.getModel('textStyle');\n    this.resetItemSize();\n    this.completeVisualOption();\n  };\n\n  VisualMapModel.prototype.resetVisual = function (supplementVisualOption) {\n    var stateList = this.stateList;\n    supplementVisualOption = zrUtil.bind(supplementVisualOption, this);\n    this.controllerVisuals = visualSolution.createVisualMappings(this.option.controller, stateList, supplementVisualOption);\n    this.targetVisuals = visualSolution.createVisualMappings(this.option.target, stateList, supplementVisualOption);\n  };\n\n  VisualMapModel.prototype.getTargetSeriesIndices = function () {\n    var optionSeriesIndex = this.option.seriesIndex;\n    var seriesIndices = [];\n\n    if (optionSeriesIndex == null || optionSeriesIndex === 'all') {\n      this.ecModel.eachSeries(function (seriesModel, index) {\n        seriesIndices.push(index);\n      });\n    } else {\n      seriesIndices = modelUtil.normalizeToArray(optionSeriesIndex);\n    }\n\n    return seriesIndices;\n  };\n\n  VisualMapModel.prototype.eachTargetSeries = function (callback, context) {\n    zrUtil.each(this.getTargetSeriesIndices(), function (seriesIndex) {\n      var seriesModel = this.ecModel.getSeriesByIndex(seriesIndex);\n\n      if (seriesModel) {\n        callback.call(context, seriesModel);\n      }\n    }, this);\n  };\n\n  VisualMapModel.prototype.isTargetSeries = function (seriesModel) {\n    var is = false;\n    this.eachTargetSeries(function (model) {\n      model === seriesModel && (is = true);\n    });\n    return is;\n  };\n\n  VisualMapModel.prototype.formatValueText = function (value, isCategory, edgeSymbols) {\n    var option = this.option;\n    var precision = option.precision;\n    var dataBound = this.dataBound;\n    var formatter = option.formatter;\n    var isMinMax;\n    edgeSymbols = edgeSymbols || ['<', '>'];\n\n    if (zrUtil.isArray(value)) {\n      value = value.slice();\n      isMinMax = true;\n    }\n\n    var textValue = isCategory ? value : isMinMax ? [toFixed(value[0]), toFixed(value[1])] : toFixed(value);\n\n    if (zrUtil.isString(formatter)) {\n      return formatter.replace('{value}', isMinMax ? textValue[0] : textValue).replace('{value2}', isMinMax ? textValue[1] : textValue);\n    } else if (zrUtil.isFunction(formatter)) {\n      return isMinMax ? formatter(value[0], value[1]) : formatter(value);\n    }\n\n    if (isMinMax) {\n      if (value[0] === dataBound[0]) {\n        return edgeSymbols[0] + ' ' + textValue[1];\n      } else if (value[1] === dataBound[1]) {\n        return edgeSymbols[1] + ' ' + textValue[0];\n      } else {\n        return textValue[0] + ' - ' + textValue[1];\n      }\n    } else {\n      return textValue;\n    }\n\n    function toFixed(val) {\n      return val === dataBound[0] ? 'min' : val === dataBound[1] ? 'max' : (+val).toFixed(Math.min(precision, 20));\n    }\n  };\n\n  VisualMapModel.prototype.resetExtent = function () {\n    var thisOption = this.option;\n    var extent = asc([thisOption.min, thisOption.max]);\n    this._dataExtent = extent;\n  };\n\n  VisualMapModel.prototype.getDataDimension = function (list) {\n    var optDim = this.option.dimension;\n    var listDimensions = list.dimensions;\n\n    if (optDim == null && !listDimensions.length) {\n      return;\n    }\n\n    if (optDim != null) {\n      return list.getDimension(optDim);\n    }\n\n    var dimNames = list.dimensions;\n\n    for (var i = dimNames.length - 1; i >= 0; i--) {\n      var dimName = dimNames[i];\n      var dimInfo = list.getDimensionInfo(dimName);\n\n      if (!dimInfo.isCalculationCoord) {\n        return dimName;\n      }\n    }\n  };\n\n  VisualMapModel.prototype.getExtent = function () {\n    return this._dataExtent.slice();\n  };\n\n  VisualMapModel.prototype.completeVisualOption = function () {\n    var ecModel = this.ecModel;\n    var thisOption = this.option;\n    var base = {\n      inRange: thisOption.inRange,\n      outOfRange: thisOption.outOfRange\n    };\n    var target = thisOption.target || (thisOption.target = {});\n    var controller = thisOption.controller || (thisOption.controller = {});\n    zrUtil.merge(target, base);\n    zrUtil.merge(controller, base);\n    var isCategory = this.isCategory();\n    completeSingle.call(this, target);\n    completeSingle.call(this, controller);\n    completeInactive.call(this, target, 'inRange', 'outOfRange');\n    completeController.call(this, controller);\n\n    function completeSingle(base) {\n      if (isArray(thisOption.color) && !base.inRange) {\n        base.inRange = {\n          color: thisOption.color.slice().reverse()\n        };\n      }\n\n      base.inRange = base.inRange || {\n        color: ecModel.get('gradientColor')\n      };\n    }\n\n    function completeInactive(base, stateExist, stateAbsent) {\n      var optExist = base[stateExist];\n      var optAbsent = base[stateAbsent];\n\n      if (optExist && !optAbsent) {\n        optAbsent = base[stateAbsent] = {};\n        each(optExist, function (visualData, visualType) {\n          if (!VisualMapping.isValidType(visualType)) {\n            return;\n          }\n\n          var defa = visualDefault.get(visualType, 'inactive', isCategory);\n\n          if (defa != null) {\n            optAbsent[visualType] = defa;\n\n            if (visualType === 'color' && !optAbsent.hasOwnProperty('opacity') && !optAbsent.hasOwnProperty('colorAlpha')) {\n              optAbsent.opacity = [0, 0];\n            }\n          }\n        });\n      }\n    }\n\n    function completeController(controller) {\n      var symbolExists = (controller.inRange || {}).symbol || (controller.outOfRange || {}).symbol;\n      var symbolSizeExists = (controller.inRange || {}).symbolSize || (controller.outOfRange || {}).symbolSize;\n      var inactiveColor = this.get('inactiveColor');\n      each(this.stateList, function (state) {\n        var itemSize = this.itemSize;\n        var visuals = controller[state];\n\n        if (!visuals) {\n          visuals = controller[state] = {\n            color: isCategory ? inactiveColor : [inactiveColor]\n          };\n        }\n\n        if (visuals.symbol == null) {\n          visuals.symbol = symbolExists && zrUtil.clone(symbolExists) || (isCategory ? 'roundRect' : ['roundRect']);\n        }\n\n        if (visuals.symbolSize == null) {\n          visuals.symbolSize = symbolSizeExists && zrUtil.clone(symbolSizeExists) || (isCategory ? itemSize[0] : [itemSize[0], itemSize[0]]);\n        }\n\n        visuals.symbol = mapVisual(visuals.symbol, function (symbol) {\n          return symbol === 'none' || symbol === 'square' ? 'roundRect' : symbol;\n        });\n        var symbolSize = visuals.symbolSize;\n\n        if (symbolSize != null) {\n          var max_1 = -Infinity;\n          eachVisual(symbolSize, function (value) {\n            value > max_1 && (max_1 = value);\n          });\n          visuals.symbolSize = mapVisual(symbolSize, function (value) {\n            return linearMap(value, [0, max_1], [0, itemSize[0]], true);\n          });\n        }\n      }, this);\n    }\n  };\n\n  VisualMapModel.prototype.resetItemSize = function () {\n    this.itemSize = [parseFloat(this.get('itemWidth')), parseFloat(this.get('itemHeight'))];\n  };\n\n  VisualMapModel.prototype.isCategory = function () {\n    return !!this.option.categories;\n  };\n\n  VisualMapModel.prototype.setSelected = function (selected) {};\n\n  VisualMapModel.prototype.getSelected = function () {\n    return null;\n  };\n\n  VisualMapModel.prototype.getValueState = function (value) {\n    return null;\n  };\n\n  VisualMapModel.prototype.getVisualMeta = function (getColorVisual) {\n    return null;\n  };\n\n  VisualMapModel.type = 'visualMap';\n  VisualMapModel.dependencies = ['series'];\n  VisualMapModel.defaultOption = {\n    show: true,\n    zlevel: 0,\n    z: 4,\n    seriesIndex: 'all',\n    min: 0,\n    max: 200,\n    left: 0,\n    right: null,\n    top: null,\n    bottom: 0,\n    itemWidth: null,\n    itemHeight: null,\n    inverse: false,\n    orient: 'vertical',\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderColor: '#ccc',\n    contentColor: '#5793f3',\n    inactiveColor: '#aaa',\n    borderWidth: 0,\n    padding: 5,\n    textGap: 10,\n    precision: 0,\n    textStyle: {\n      color: '#333'\n    }\n  };\n  return VisualMapModel;\n}(ComponentModel);\n\nexport default VisualMapModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport VisualMapModel from './VisualMapModel';\nimport * as numberUtil from '../../util/number';\nimport { inheritDefaultOption } from '../../util/component';\nvar DEFAULT_BAR_BOUND = [20, 140];\n\nvar ContinuousModel = function (_super) {\n  __extends(ContinuousModel, _super);\n\n  function ContinuousModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ContinuousModel.type;\n    return _this;\n  }\n\n  ContinuousModel.prototype.optionUpdated = function (newOption, isInit) {\n    _super.prototype.optionUpdated.apply(this, arguments);\n\n    this.resetExtent();\n    this.resetVisual(function (mappingOption) {\n      mappingOption.mappingMethod = 'linear';\n      mappingOption.dataExtent = this.getExtent();\n    });\n\n    this._resetRange();\n  };\n\n  ContinuousModel.prototype.resetItemSize = function () {\n    _super.prototype.resetItemSize.apply(this, arguments);\n\n    var itemSize = this.itemSize;\n    (itemSize[0] == null || isNaN(itemSize[0])) && (itemSize[0] = DEFAULT_BAR_BOUND[0]);\n    (itemSize[1] == null || isNaN(itemSize[1])) && (itemSize[1] = DEFAULT_BAR_BOUND[1]);\n  };\n\n  ContinuousModel.prototype._resetRange = function () {\n    var dataExtent = this.getExtent();\n    var range = this.option.range;\n\n    if (!range || range.auto) {\n      dataExtent.auto = 1;\n      this.option.range = dataExtent;\n    } else if (zrUtil.isArray(range)) {\n      if (range[0] > range[1]) {\n        range.reverse();\n      }\n\n      range[0] = Math.max(range[0], dataExtent[0]);\n      range[1] = Math.min(range[1], dataExtent[1]);\n    }\n  };\n\n  ContinuousModel.prototype.completeVisualOption = function () {\n    _super.prototype.completeVisualOption.apply(this, arguments);\n\n    zrUtil.each(this.stateList, function (state) {\n      var symbolSize = this.option.controller[state].symbolSize;\n\n      if (symbolSize && symbolSize[0] !== symbolSize[1]) {\n        symbolSize[0] = symbolSize[1] / 3;\n      }\n    }, this);\n  };\n\n  ContinuousModel.prototype.setSelected = function (selected) {\n    this.option.range = selected.slice();\n\n    this._resetRange();\n  };\n\n  ContinuousModel.prototype.getSelected = function () {\n    var dataExtent = this.getExtent();\n    var dataInterval = numberUtil.asc((this.get('range') || []).slice());\n    dataInterval[0] > dataExtent[1] && (dataInterval[0] = dataExtent[1]);\n    dataInterval[1] > dataExtent[1] && (dataInterval[1] = dataExtent[1]);\n    dataInterval[0] < dataExtent[0] && (dataInterval[0] = dataExtent[0]);\n    dataInterval[1] < dataExtent[0] && (dataInterval[1] = dataExtent[0]);\n    return dataInterval;\n  };\n\n  ContinuousModel.prototype.getValueState = function (value) {\n    var range = this.option.range;\n    var dataExtent = this.getExtent();\n    return (range[0] <= dataExtent[0] || range[0] <= value) && (range[1] >= dataExtent[1] || value <= range[1]) ? 'inRange' : 'outOfRange';\n  };\n\n  ContinuousModel.prototype.findTargetDataIndices = function (range) {\n    var result = [];\n    this.eachTargetSeries(function (seriesModel) {\n      var dataIndices = [];\n      var data = seriesModel.getData();\n      data.each(this.getDataDimension(data), function (value, dataIndex) {\n        range[0] <= value && value <= range[1] && dataIndices.push(dataIndex);\n      }, this);\n      result.push({\n        seriesId: seriesModel.id,\n        dataIndex: dataIndices\n      });\n    }, this);\n    return result;\n  };\n\n  ContinuousModel.prototype.getVisualMeta = function (getColorVisual) {\n    var oVals = getColorStopValues(this, 'outOfRange', this.getExtent());\n    var iVals = getColorStopValues(this, 'inRange', this.option.range.slice());\n    var stops = [];\n\n    function setStop(value, valueState) {\n      stops.push({\n        value: value,\n        color: getColorVisual(value, valueState)\n      });\n    }\n\n    var iIdx = 0;\n    var oIdx = 0;\n    var iLen = iVals.length;\n    var oLen = oVals.length;\n\n    for (; oIdx < oLen && (!iVals.length || oVals[oIdx] <= iVals[0]); oIdx++) {\n      if (oVals[oIdx] < iVals[iIdx]) {\n        setStop(oVals[oIdx], 'outOfRange');\n      }\n    }\n\n    for (var first = 1; iIdx < iLen; iIdx++, first = 0) {\n      first && stops.length && setStop(iVals[iIdx], 'outOfRange');\n      setStop(iVals[iIdx], 'inRange');\n    }\n\n    for (var first = 1; oIdx < oLen; oIdx++) {\n      if (!iVals.length || iVals[iVals.length - 1] < oVals[oIdx]) {\n        if (first) {\n          stops.length && setStop(stops[stops.length - 1].value, 'outOfRange');\n          first = 0;\n        }\n\n        setStop(oVals[oIdx], 'outOfRange');\n      }\n    }\n\n    var stopsLen = stops.length;\n    return {\n      stops: stops,\n      outerColors: [stopsLen ? stops[0].color : 'transparent', stopsLen ? stops[stopsLen - 1].color : 'transparent']\n    };\n  };\n\n  ContinuousModel.type = 'visualMap.continuous';\n  ContinuousModel.defaultOption = inheritDefaultOption(VisualMapModel.defaultOption, {\n    align: 'auto',\n    calculable: false,\n    hoverLink: true,\n    realtime: true,\n    handleIcon: 'path://M-11.39,9.77h0a3.5,3.5,0,0,1-3.5,3.5h-22a3.5,3.5,0,0,1-3.5-3.5h0a3.5,3.5,0,0,1,3.5-3.5h22A3.5,3.5,0,0,1-11.39,9.77Z',\n    handleSize: '120%',\n    handleStyle: {\n      borderColor: '#fff',\n      borderWidth: 1\n    },\n    indicatorIcon: 'circle',\n    indicatorSize: '50%',\n    indicatorStyle: {\n      borderColor: '#fff',\n      borderWidth: 2,\n      shadowBlur: 2,\n      shadowOffsetX: 1,\n      shadowOffsetY: 1,\n      shadowColor: 'rgba(0,0,0,0.2)'\n    }\n  });\n  return ContinuousModel;\n}(VisualMapModel);\n\nfunction getColorStopValues(visualMapModel, valueState, dataExtent) {\n  if (dataExtent[0] === dataExtent[1]) {\n    return dataExtent.slice();\n  }\n\n  var count = 200;\n  var step = (dataExtent[1] - dataExtent[0]) / count;\n  var value = dataExtent[0];\n  var stopValues = [];\n\n  for (var i = 0; i <= count && value < dataExtent[1]; i++) {\n    stopValues.push(value);\n    value += step;\n  }\n\n  stopValues.push(dataExtent[1]);\n  return stopValues;\n}\n\nexport default ContinuousModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { Rect } from '../../util/graphic';\nimport * as formatUtil from '../../util/format';\nimport * as layout from '../../util/layout';\nimport VisualMapping from '../../visual/VisualMapping';\nimport ComponentView from '../../view/Component';\n\nvar VisualMapView = function (_super) {\n  __extends(VisualMapView, _super);\n\n  function VisualMapView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = VisualMapView.type;\n    _this.autoPositionValues = {\n      left: 1,\n      right: 1,\n      top: 1,\n      bottom: 1\n    };\n    return _this;\n  }\n\n  VisualMapView.prototype.init = function (ecModel, api) {\n    this.ecModel = ecModel;\n    this.api = api;\n  };\n\n  VisualMapView.prototype.render = function (visualMapModel, ecModel, api, payload) {\n    this.visualMapModel = visualMapModel;\n\n    if (visualMapModel.get('show') === false) {\n      this.group.removeAll();\n      return;\n    }\n\n    this.doRender(visualMapModel, ecModel, api, payload);\n  };\n\n  VisualMapView.prototype.renderBackground = function (group) {\n    var visualMapModel = this.visualMapModel;\n    var padding = formatUtil.normalizeCssArray(visualMapModel.get('padding') || 0);\n    var rect = group.getBoundingRect();\n    group.add(new Rect({\n      z2: -1,\n      silent: true,\n      shape: {\n        x: rect.x - padding[3],\n        y: rect.y - padding[0],\n        width: rect.width + padding[3] + padding[1],\n        height: rect.height + padding[0] + padding[2]\n      },\n      style: {\n        fill: visualMapModel.get('backgroundColor'),\n        stroke: visualMapModel.get('borderColor'),\n        lineWidth: visualMapModel.get('borderWidth')\n      }\n    }));\n  };\n\n  VisualMapView.prototype.getControllerVisual = function (targetValue, visualCluster, opts) {\n    opts = opts || {};\n    var forceState = opts.forceState;\n    var visualMapModel = this.visualMapModel;\n    var visualObj = {};\n\n    if (visualCluster === 'symbol') {\n      visualObj.symbol = visualMapModel.get('itemSymbol');\n    }\n\n    if (visualCluster === 'color') {\n      var defaultColor = visualMapModel.get('contentColor');\n      visualObj.color = defaultColor;\n    }\n\n    function getter(key) {\n      return visualObj[key];\n    }\n\n    function setter(key, value) {\n      visualObj[key] = value;\n    }\n\n    var mappings = visualMapModel.controllerVisuals[forceState || visualMapModel.getValueState(targetValue)];\n    var visualTypes = VisualMapping.prepareVisualTypes(mappings);\n    zrUtil.each(visualTypes, function (type) {\n      var visualMapping = mappings[type];\n\n      if (opts.convertOpacityToAlpha && type === 'opacity') {\n        type = 'colorAlpha';\n        visualMapping = mappings.__alphaForOpacity;\n      }\n\n      if (VisualMapping.dependsOn(type, visualCluster)) {\n        visualMapping && visualMapping.applyVisual(targetValue, getter, setter);\n      }\n    });\n    return visualObj[visualCluster];\n  };\n\n  VisualMapView.prototype.positionGroup = function (group) {\n    var model = this.visualMapModel;\n    var api = this.api;\n    layout.positionElement(group, model.getBoxLayoutParams(), {\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n  };\n\n  VisualMapView.prototype.doRender = function (visualMapModel, ecModel, api, payload) {};\n\n  VisualMapView.type = 'visualMap';\n  return VisualMapView;\n}(ComponentView);\n\nexport default VisualMapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { getLayoutRect } from '../../util/layout';\nvar paramsSet = [['left', 'right', 'width'], ['top', 'bottom', 'height']];\nexport function getItemAlign(visualMapModel, api, itemSize) {\n  var modelOption = visualMapModel.option;\n  var itemAlign = modelOption.align;\n\n  if (itemAlign != null && itemAlign !== 'auto') {\n    return itemAlign;\n  }\n\n  var ecSize = {\n    width: api.getWidth(),\n    height: api.getHeight()\n  };\n  var realIndex = modelOption.orient === 'horizontal' ? 1 : 0;\n  var reals = paramsSet[realIndex];\n  var fakeValue = [0, null, 10];\n  var layoutInput = {};\n\n  for (var i = 0; i < 3; i++) {\n    layoutInput[paramsSet[1 - realIndex][i]] = fakeValue[i];\n    layoutInput[reals[i]] = i === 2 ? itemSize[0] : modelOption[reals[i]];\n  }\n\n  var rParam = [['x', 'width', 3], ['y', 'height', 0]][realIndex];\n  var rect = getLayoutRect(layoutInput, ecSize, modelOption.padding);\n  return reals[(rect.margin[rParam[2]] || 0) + rect[rParam[0]] + rect[rParam[1]] * 0.5 < ecSize[rParam[1]] * 0.5 ? 0 : 1];\n}\nexport function makeHighDownBatch(batch, visualMapModel) {\n  zrUtil.each(batch || [], function (batchItem) {\n    if (batchItem.dataIndex != null) {\n      batchItem.dataIndexInside = batchItem.dataIndex;\n      batchItem.dataIndex = null;\n    }\n\n    batchItem.highlightKey = 'visualMap' + (visualMapModel ? visualMapModel.componentIndex : '');\n  });\n  return batch;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport LinearGradient from 'zrender/lib/graphic/LinearGradient';\nimport * as eventTool from 'zrender/lib/core/event';\nimport VisualMapView from './VisualMapView';\nimport * as graphic from '../../util/graphic';\nimport * as numberUtil from '../../util/number';\nimport sliderMove from '../helper/sliderMove';\nimport * as helper from './helper';\nimport * as modelUtil from '../../util/model';\nimport { parsePercent } from 'zrender/lib/contain/text';\nimport { setAsHighDownDispatcher } from '../../util/states';\nimport { createSymbol } from '../../util/symbol';\nimport ZRImage from 'zrender/lib/graphic/Image';\nimport { getECData } from '../../util/innerStore';\nvar linearMap = numberUtil.linearMap;\nvar each = zrUtil.each;\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar HOVER_LINK_SIZE = 12;\nvar HOVER_LINK_OUT = 6;\n\nvar ContinuousView = function (_super) {\n  __extends(ContinuousView, _super);\n\n  function ContinuousView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = ContinuousView.type;\n    _this._shapes = {};\n    _this._dataInterval = [];\n    _this._handleEnds = [];\n    _this._hoverLinkDataIndices = [];\n    return _this;\n  }\n\n  ContinuousView.prototype.doRender = function (visualMapModel, ecModel, api, payload) {\n    this._api = api;\n\n    if (!payload || payload.type !== 'selectDataRange' || payload.from !== this.uid) {\n      this._buildView();\n    }\n  };\n\n  ContinuousView.prototype._buildView = function () {\n    this.group.removeAll();\n    var visualMapModel = this.visualMapModel;\n    var thisGroup = this.group;\n    this._orient = visualMapModel.get('orient');\n    this._useHandle = visualMapModel.get('calculable');\n\n    this._resetInterval();\n\n    this._renderBar(thisGroup);\n\n    var dataRangeText = visualMapModel.get('text');\n\n    this._renderEndsText(thisGroup, dataRangeText, 0);\n\n    this._renderEndsText(thisGroup, dataRangeText, 1);\n\n    this._updateView(true);\n\n    this.renderBackground(thisGroup);\n\n    this._updateView();\n\n    this._enableHoverLinkToSeries();\n\n    this._enableHoverLinkFromSeries();\n\n    this.positionGroup(thisGroup);\n  };\n\n  ContinuousView.prototype._renderEndsText = function (group, dataRangeText, endsIndex) {\n    if (!dataRangeText) {\n      return;\n    }\n\n    var text = dataRangeText[1 - endsIndex];\n    text = text != null ? text + '' : '';\n    var visualMapModel = this.visualMapModel;\n    var textGap = visualMapModel.get('textGap');\n    var itemSize = visualMapModel.itemSize;\n    var barGroup = this._shapes.mainGroup;\n\n    var position = this._applyTransform([itemSize[0] / 2, endsIndex === 0 ? -textGap : itemSize[1] + textGap], barGroup);\n\n    var align = this._applyTransform(endsIndex === 0 ? 'bottom' : 'top', barGroup);\n\n    var orient = this._orient;\n    var textStyleModel = this.visualMapModel.textStyleModel;\n    this.group.add(new graphic.Text({\n      style: {\n        x: position[0],\n        y: position[1],\n        verticalAlign: orient === 'horizontal' ? 'middle' : align,\n        align: orient === 'horizontal' ? align : 'center',\n        text: text,\n        font: textStyleModel.getFont(),\n        fill: textStyleModel.getTextColor()\n      }\n    }));\n  };\n\n  ContinuousView.prototype._renderBar = function (targetGroup) {\n    var visualMapModel = this.visualMapModel;\n    var shapes = this._shapes;\n    var itemSize = visualMapModel.itemSize;\n    var orient = this._orient;\n    var useHandle = this._useHandle;\n    var itemAlign = helper.getItemAlign(visualMapModel, this.api, itemSize);\n\n    var mainGroup = shapes.mainGroup = this._createBarGroup(itemAlign);\n\n    var gradientBarGroup = new graphic.Group();\n    mainGroup.add(gradientBarGroup);\n    gradientBarGroup.add(shapes.outOfRange = createPolygon());\n    gradientBarGroup.add(shapes.inRange = createPolygon(null, useHandle ? getCursor(this._orient) : null, zrUtil.bind(this._dragHandle, this, 'all', false), zrUtil.bind(this._dragHandle, this, 'all', true)));\n    gradientBarGroup.setClipPath(new graphic.Rect({\n      shape: {\n        x: 0,\n        y: 0,\n        width: itemSize[0],\n        height: itemSize[1],\n        r: 3\n      }\n    }));\n    var textRect = visualMapModel.textStyleModel.getTextRect('国');\n    var textSize = mathMax(textRect.width, textRect.height);\n\n    if (useHandle) {\n      shapes.handleThumbs = [];\n      shapes.handleLabels = [];\n      shapes.handleLabelPoints = [];\n\n      this._createHandle(visualMapModel, mainGroup, 0, itemSize, textSize, orient);\n\n      this._createHandle(visualMapModel, mainGroup, 1, itemSize, textSize, orient);\n    }\n\n    this._createIndicator(visualMapModel, mainGroup, itemSize, textSize, orient);\n\n    targetGroup.add(mainGroup);\n  };\n\n  ContinuousView.prototype._createHandle = function (visualMapModel, mainGroup, handleIndex, itemSize, textSize, orient) {\n    var onDrift = zrUtil.bind(this._dragHandle, this, handleIndex, false);\n    var onDragEnd = zrUtil.bind(this._dragHandle, this, handleIndex, true);\n    var handleSize = parsePercent(visualMapModel.get('handleSize'), itemSize[0]);\n    var handleThumb = createSymbol(visualMapModel.get('handleIcon'), -handleSize / 2, -handleSize / 2, handleSize, handleSize, null, true);\n    var cursor = getCursor(this._orient);\n    handleThumb.attr({\n      cursor: cursor,\n      draggable: true,\n      drift: onDrift,\n      ondragend: onDragEnd,\n      onmousemove: function (e) {\n        eventTool.stop(e.event);\n      }\n    });\n    handleThumb.x = itemSize[0] / 2;\n    handleThumb.useStyle(visualMapModel.getModel('handleStyle').getItemStyle());\n    handleThumb.setStyle({\n      strokeNoScale: true,\n      strokeFirst: true\n    });\n    handleThumb.style.lineWidth *= 2;\n    handleThumb.ensureState('emphasis').style = visualMapModel.getModel(['emphasis', 'handleStyle']).getItemStyle();\n    setAsHighDownDispatcher(handleThumb, true);\n    mainGroup.add(handleThumb);\n    var textStyleModel = this.visualMapModel.textStyleModel;\n    var handleLabel = new graphic.Text({\n      cursor: cursor,\n      draggable: true,\n      drift: onDrift,\n      onmousemove: function (e) {\n        eventTool.stop(e.event);\n      },\n      ondragend: onDragEnd,\n      style: {\n        x: 0,\n        y: 0,\n        text: '',\n        font: textStyleModel.getFont(),\n        fill: textStyleModel.getTextColor()\n      }\n    });\n    handleLabel.ensureState('blur').style = {\n      opacity: 0.1\n    };\n    handleLabel.stateTransition = {\n      duration: 200\n    };\n    this.group.add(handleLabel);\n    var handleLabelPoint = [handleSize, 0];\n    var shapes = this._shapes;\n    shapes.handleThumbs[handleIndex] = handleThumb;\n    shapes.handleLabelPoints[handleIndex] = handleLabelPoint;\n    shapes.handleLabels[handleIndex] = handleLabel;\n  };\n\n  ContinuousView.prototype._createIndicator = function (visualMapModel, mainGroup, itemSize, textSize, orient) {\n    var scale = parsePercent(visualMapModel.get('indicatorSize'), itemSize[0]);\n    var indicator = createSymbol(visualMapModel.get('indicatorIcon'), -scale / 2, -scale / 2, scale, scale, null, true);\n    indicator.attr({\n      cursor: 'move',\n      invisible: true,\n      silent: true,\n      x: itemSize[0] / 2\n    });\n    var indicatorStyle = visualMapModel.getModel('indicatorStyle').getItemStyle();\n\n    if (indicator instanceof ZRImage) {\n      var pathStyle = indicator.style;\n      indicator.useStyle(zrUtil.extend({\n        image: pathStyle.image,\n        x: pathStyle.x,\n        y: pathStyle.y,\n        width: pathStyle.width,\n        height: pathStyle.height\n      }, indicatorStyle));\n    } else {\n      indicator.useStyle(indicatorStyle);\n    }\n\n    mainGroup.add(indicator);\n    var textStyleModel = this.visualMapModel.textStyleModel;\n    var indicatorLabel = new graphic.Text({\n      silent: true,\n      invisible: true,\n      style: {\n        x: 0,\n        y: 0,\n        text: '',\n        font: textStyleModel.getFont(),\n        fill: textStyleModel.getTextColor()\n      }\n    });\n    this.group.add(indicatorLabel);\n    var indicatorLabelPoint = [(orient === 'horizontal' ? textSize / 2 : HOVER_LINK_OUT) + itemSize[0] / 2, 0];\n    var shapes = this._shapes;\n    shapes.indicator = indicator;\n    shapes.indicatorLabel = indicatorLabel;\n    shapes.indicatorLabelPoint = indicatorLabelPoint;\n    this._firstShowIndicator = true;\n  };\n\n  ContinuousView.prototype._dragHandle = function (handleIndex, isEnd, dx, dy) {\n    if (!this._useHandle) {\n      return;\n    }\n\n    this._dragging = !isEnd;\n\n    if (!isEnd) {\n      var vertex = this._applyTransform([dx, dy], this._shapes.mainGroup, true);\n\n      this._updateInterval(handleIndex, vertex[1]);\n\n      this._hideIndicator();\n\n      this._updateView();\n    }\n\n    if (isEnd === !this.visualMapModel.get('realtime')) {\n      this.api.dispatchAction({\n        type: 'selectDataRange',\n        from: this.uid,\n        visualMapId: this.visualMapModel.id,\n        selected: this._dataInterval.slice()\n      });\n    }\n\n    if (isEnd) {\n      !this._hovering && this._clearHoverLinkToSeries();\n    } else if (useHoverLinkOnHandle(this.visualMapModel)) {\n      this._doHoverLinkToSeries(this._handleEnds[handleIndex], false);\n    }\n  };\n\n  ContinuousView.prototype._resetInterval = function () {\n    var visualMapModel = this.visualMapModel;\n    var dataInterval = this._dataInterval = visualMapModel.getSelected();\n    var dataExtent = visualMapModel.getExtent();\n    var sizeExtent = [0, visualMapModel.itemSize[1]];\n    this._handleEnds = [linearMap(dataInterval[0], dataExtent, sizeExtent, true), linearMap(dataInterval[1], dataExtent, sizeExtent, true)];\n  };\n\n  ContinuousView.prototype._updateInterval = function (handleIndex, delta) {\n    delta = delta || 0;\n    var visualMapModel = this.visualMapModel;\n    var handleEnds = this._handleEnds;\n    var sizeExtent = [0, visualMapModel.itemSize[1]];\n    sliderMove(delta, handleEnds, sizeExtent, handleIndex, 0);\n    var dataExtent = visualMapModel.getExtent();\n    this._dataInterval = [linearMap(handleEnds[0], sizeExtent, dataExtent, true), linearMap(handleEnds[1], sizeExtent, dataExtent, true)];\n  };\n\n  ContinuousView.prototype._updateView = function (forSketch) {\n    var visualMapModel = this.visualMapModel;\n    var dataExtent = visualMapModel.getExtent();\n    var shapes = this._shapes;\n    var outOfRangeHandleEnds = [0, visualMapModel.itemSize[1]];\n    var inRangeHandleEnds = forSketch ? outOfRangeHandleEnds : this._handleEnds;\n\n    var visualInRange = this._createBarVisual(this._dataInterval, dataExtent, inRangeHandleEnds, 'inRange');\n\n    var visualOutOfRange = this._createBarVisual(dataExtent, dataExtent, outOfRangeHandleEnds, 'outOfRange');\n\n    shapes.inRange.setStyle({\n      fill: visualInRange.barColor\n    }).setShape('points', visualInRange.barPoints);\n    shapes.outOfRange.setStyle({\n      fill: visualOutOfRange.barColor\n    }).setShape('points', visualOutOfRange.barPoints);\n\n    this._updateHandle(inRangeHandleEnds, visualInRange);\n  };\n\n  ContinuousView.prototype._createBarVisual = function (dataInterval, dataExtent, handleEnds, forceState) {\n    var opts = {\n      forceState: forceState,\n      convertOpacityToAlpha: true\n    };\n\n    var colorStops = this._makeColorGradient(dataInterval, opts);\n\n    var symbolSizes = [this.getControllerVisual(dataInterval[0], 'symbolSize', opts), this.getControllerVisual(dataInterval[1], 'symbolSize', opts)];\n\n    var barPoints = this._createBarPoints(handleEnds, symbolSizes);\n\n    return {\n      barColor: new LinearGradient(0, 0, 0, 1, colorStops),\n      barPoints: barPoints,\n      handlesColor: [colorStops[0].color, colorStops[colorStops.length - 1].color]\n    };\n  };\n\n  ContinuousView.prototype._makeColorGradient = function (dataInterval, opts) {\n    var sampleNumber = 100;\n    var colorStops = [];\n    var step = (dataInterval[1] - dataInterval[0]) / sampleNumber;\n    colorStops.push({\n      color: this.getControllerVisual(dataInterval[0], 'color', opts),\n      offset: 0\n    });\n\n    for (var i = 1; i < sampleNumber; i++) {\n      var currValue = dataInterval[0] + step * i;\n\n      if (currValue > dataInterval[1]) {\n        break;\n      }\n\n      colorStops.push({\n        color: this.getControllerVisual(currValue, 'color', opts),\n        offset: i / sampleNumber\n      });\n    }\n\n    colorStops.push({\n      color: this.getControllerVisual(dataInterval[1], 'color', opts),\n      offset: 1\n    });\n    return colorStops;\n  };\n\n  ContinuousView.prototype._createBarPoints = function (handleEnds, symbolSizes) {\n    var itemSize = this.visualMapModel.itemSize;\n    return [[itemSize[0] - symbolSizes[0], handleEnds[0]], [itemSize[0], handleEnds[0]], [itemSize[0], handleEnds[1]], [itemSize[0] - symbolSizes[1], handleEnds[1]]];\n  };\n\n  ContinuousView.prototype._createBarGroup = function (itemAlign) {\n    var orient = this._orient;\n    var inverse = this.visualMapModel.get('inverse');\n    return new graphic.Group(orient === 'horizontal' && !inverse ? {\n      scaleX: itemAlign === 'bottom' ? 1 : -1,\n      rotation: Math.PI / 2\n    } : orient === 'horizontal' && inverse ? {\n      scaleX: itemAlign === 'bottom' ? -1 : 1,\n      rotation: -Math.PI / 2\n    } : orient === 'vertical' && !inverse ? {\n      scaleX: itemAlign === 'left' ? 1 : -1,\n      scaleY: -1\n    } : {\n      scaleX: itemAlign === 'left' ? 1 : -1\n    });\n  };\n\n  ContinuousView.prototype._updateHandle = function (handleEnds, visualInRange) {\n    if (!this._useHandle) {\n      return;\n    }\n\n    var shapes = this._shapes;\n    var visualMapModel = this.visualMapModel;\n    var handleThumbs = shapes.handleThumbs;\n    var handleLabels = shapes.handleLabels;\n    var itemSize = visualMapModel.itemSize;\n    var dataExtent = visualMapModel.getExtent();\n    each([0, 1], function (handleIndex) {\n      var handleThumb = handleThumbs[handleIndex];\n      handleThumb.setStyle('fill', visualInRange.handlesColor[handleIndex]);\n      handleThumb.y = handleEnds[handleIndex];\n      var val = linearMap(handleEnds[handleIndex], [0, itemSize[1]], dataExtent, true);\n      var symbolSize = this.getControllerVisual(val, 'symbolSize');\n      handleThumb.scaleX = handleThumb.scaleY = symbolSize / itemSize[0];\n      handleThumb.x = itemSize[0] - symbolSize / 2;\n      var textPoint = graphic.applyTransform(shapes.handleLabelPoints[handleIndex], graphic.getTransform(handleThumb, this.group));\n      handleLabels[handleIndex].setStyle({\n        x: textPoint[0],\n        y: textPoint[1],\n        text: visualMapModel.formatValueText(this._dataInterval[handleIndex]),\n        verticalAlign: 'middle',\n        align: this._orient === 'vertical' ? this._applyTransform('left', shapes.mainGroup) : 'center'\n      });\n    }, this);\n  };\n\n  ContinuousView.prototype._showIndicator = function (cursorValue, textValue, rangeSymbol, halfHoverLinkSize) {\n    var visualMapModel = this.visualMapModel;\n    var dataExtent = visualMapModel.getExtent();\n    var itemSize = visualMapModel.itemSize;\n    var sizeExtent = [0, itemSize[1]];\n    var shapes = this._shapes;\n    var indicator = shapes.indicator;\n\n    if (!indicator) {\n      return;\n    }\n\n    indicator.attr('invisible', false);\n    var opts = {\n      convertOpacityToAlpha: true\n    };\n    var color = this.getControllerVisual(cursorValue, 'color', opts);\n    var symbolSize = this.getControllerVisual(cursorValue, 'symbolSize');\n    var y = linearMap(cursorValue, dataExtent, sizeExtent, true);\n    var x = itemSize[0] - symbolSize / 2;\n    var oldIndicatorPos = {\n      x: indicator.x,\n      y: indicator.y\n    };\n    indicator.y = y;\n    indicator.x = x;\n    var textPoint = graphic.applyTransform(shapes.indicatorLabelPoint, graphic.getTransform(indicator, this.group));\n    var indicatorLabel = shapes.indicatorLabel;\n    indicatorLabel.attr('invisible', false);\n\n    var align = this._applyTransform('left', shapes.mainGroup);\n\n    var orient = this._orient;\n    var isHorizontal = orient === 'horizontal';\n    indicatorLabel.setStyle({\n      text: (rangeSymbol ? rangeSymbol : '') + visualMapModel.formatValueText(textValue),\n      verticalAlign: isHorizontal ? align : 'middle',\n      align: isHorizontal ? 'center' : align\n    });\n    var indicatorNewProps = {\n      x: x,\n      y: y,\n      style: {\n        fill: color\n      }\n    };\n    var labelNewProps = {\n      style: {\n        x: textPoint[0],\n        y: textPoint[1]\n      }\n    };\n\n    if (visualMapModel.ecModel.isAnimationEnabled() && !this._firstShowIndicator) {\n      var animationCfg = {\n        duration: 100,\n        easing: 'cubicInOut',\n        additive: true\n      };\n      indicator.x = oldIndicatorPos.x;\n      indicator.y = oldIndicatorPos.y;\n      indicator.animateTo(indicatorNewProps, animationCfg);\n      indicatorLabel.animateTo(labelNewProps, animationCfg);\n    } else {\n      indicator.attr(indicatorNewProps);\n      indicatorLabel.attr(labelNewProps);\n    }\n\n    this._firstShowIndicator = false;\n    var handleLabels = this._shapes.handleLabels;\n\n    if (handleLabels) {\n      for (var i = 0; i < handleLabels.length; i++) {\n        this._api.enterBlur(handleLabels[i]);\n      }\n    }\n  };\n\n  ContinuousView.prototype._enableHoverLinkToSeries = function () {\n    var self = this;\n\n    this._shapes.mainGroup.on('mousemove', function (e) {\n      self._hovering = true;\n\n      if (!self._dragging) {\n        var itemSize = self.visualMapModel.itemSize;\n\n        var pos = self._applyTransform([e.offsetX, e.offsetY], self._shapes.mainGroup, true, true);\n\n        pos[1] = mathMin(mathMax(0, pos[1]), itemSize[1]);\n\n        self._doHoverLinkToSeries(pos[1], 0 <= pos[0] && pos[0] <= itemSize[0]);\n      }\n    }).on('mouseout', function () {\n      self._hovering = false;\n      !self._dragging && self._clearHoverLinkToSeries();\n    });\n  };\n\n  ContinuousView.prototype._enableHoverLinkFromSeries = function () {\n    var zr = this.api.getZr();\n\n    if (this.visualMapModel.option.hoverLink) {\n      zr.on('mouseover', this._hoverLinkFromSeriesMouseOver, this);\n      zr.on('mouseout', this._hideIndicator, this);\n    } else {\n      this._clearHoverLinkFromSeries();\n    }\n  };\n\n  ContinuousView.prototype._doHoverLinkToSeries = function (cursorPos, hoverOnBar) {\n    var visualMapModel = this.visualMapModel;\n    var itemSize = visualMapModel.itemSize;\n\n    if (!visualMapModel.option.hoverLink) {\n      return;\n    }\n\n    var sizeExtent = [0, itemSize[1]];\n    var dataExtent = visualMapModel.getExtent();\n    cursorPos = mathMin(mathMax(sizeExtent[0], cursorPos), sizeExtent[1]);\n    var halfHoverLinkSize = getHalfHoverLinkSize(visualMapModel, dataExtent, sizeExtent);\n    var hoverRange = [cursorPos - halfHoverLinkSize, cursorPos + halfHoverLinkSize];\n    var cursorValue = linearMap(cursorPos, sizeExtent, dataExtent, true);\n    var valueRange = [linearMap(hoverRange[0], sizeExtent, dataExtent, true), linearMap(hoverRange[1], sizeExtent, dataExtent, true)];\n    hoverRange[0] < sizeExtent[0] && (valueRange[0] = -Infinity);\n    hoverRange[1] > sizeExtent[1] && (valueRange[1] = Infinity);\n\n    if (hoverOnBar) {\n      if (valueRange[0] === -Infinity) {\n        this._showIndicator(cursorValue, valueRange[1], '< ', halfHoverLinkSize);\n      } else if (valueRange[1] === Infinity) {\n        this._showIndicator(cursorValue, valueRange[0], '> ', halfHoverLinkSize);\n      } else {\n        this._showIndicator(cursorValue, cursorValue, '≈ ', halfHoverLinkSize);\n      }\n    }\n\n    var oldBatch = this._hoverLinkDataIndices;\n    var newBatch = [];\n\n    if (hoverOnBar || useHoverLinkOnHandle(visualMapModel)) {\n      newBatch = this._hoverLinkDataIndices = visualMapModel.findTargetDataIndices(valueRange);\n    }\n\n    var resultBatches = modelUtil.compressBatches(oldBatch, newBatch);\n\n    this._dispatchHighDown('downplay', helper.makeHighDownBatch(resultBatches[0], visualMapModel));\n\n    this._dispatchHighDown('highlight', helper.makeHighDownBatch(resultBatches[1], visualMapModel));\n  };\n\n  ContinuousView.prototype._hoverLinkFromSeriesMouseOver = function (e) {\n    var el = e.target;\n    var visualMapModel = this.visualMapModel;\n\n    if (!el || getECData(el).dataIndex == null) {\n      return;\n    }\n\n    var ecData = getECData(el);\n    var dataModel = this.ecModel.getSeriesByIndex(ecData.seriesIndex);\n\n    if (!visualMapModel.isTargetSeries(dataModel)) {\n      return;\n    }\n\n    var data = dataModel.getData(ecData.dataType);\n    var value = data.get(visualMapModel.getDataDimension(data), ecData.dataIndex);\n\n    if (!isNaN(value)) {\n      this._showIndicator(value, value);\n    }\n  };\n\n  ContinuousView.prototype._hideIndicator = function () {\n    var shapes = this._shapes;\n    shapes.indicator && shapes.indicator.attr('invisible', true);\n    shapes.indicatorLabel && shapes.indicatorLabel.attr('invisible', true);\n    var handleLabels = this._shapes.handleLabels;\n\n    if (handleLabels) {\n      for (var i = 0; i < handleLabels.length; i++) {\n        this._api.leaveBlur(handleLabels[i]);\n      }\n    }\n  };\n\n  ContinuousView.prototype._clearHoverLinkToSeries = function () {\n    this._hideIndicator();\n\n    var indices = this._hoverLinkDataIndices;\n\n    this._dispatchHighDown('downplay', helper.makeHighDownBatch(indices, this.visualMapModel));\n\n    indices.length = 0;\n  };\n\n  ContinuousView.prototype._clearHoverLinkFromSeries = function () {\n    this._hideIndicator();\n\n    var zr = this.api.getZr();\n    zr.off('mouseover', this._hoverLinkFromSeriesMouseOver);\n    zr.off('mouseout', this._hideIndicator);\n  };\n\n  ContinuousView.prototype._applyTransform = function (vertex, element, inverse, global) {\n    var transform = graphic.getTransform(element, global ? null : this.group);\n    return zrUtil.isArray(vertex) ? graphic.applyTransform(vertex, transform, inverse) : graphic.transformDirection(vertex, transform, inverse);\n  };\n\n  ContinuousView.prototype._dispatchHighDown = function (type, batch) {\n    batch && batch.length && this.api.dispatchAction({\n      type: type,\n      batch: batch\n    });\n  };\n\n  ContinuousView.prototype.dispose = function () {\n    this._clearHoverLinkFromSeries();\n\n    this._clearHoverLinkToSeries();\n  };\n\n  ContinuousView.prototype.remove = function () {\n    this._clearHoverLinkFromSeries();\n\n    this._clearHoverLinkToSeries();\n  };\n\n  ContinuousView.type = 'visualMap.continuous';\n  return ContinuousView;\n}(VisualMapView);\n\nfunction createPolygon(points, cursor, onDrift, onDragEnd) {\n  return new graphic.Polygon({\n    shape: {\n      points: points\n    },\n    draggable: !!onDrift,\n    cursor: cursor,\n    drift: onDrift,\n    onmousemove: function (e) {\n      eventTool.stop(e.event);\n    },\n    ondragend: onDragEnd\n  });\n}\n\nfunction getHalfHoverLinkSize(visualMapModel, dataExtent, sizeExtent) {\n  var halfHoverLinkSize = HOVER_LINK_SIZE / 2;\n  var hoverLinkDataSize = visualMapModel.get('hoverLinkDataSize');\n\n  if (hoverLinkDataSize) {\n    halfHoverLinkSize = linearMap(hoverLinkDataSize, dataExtent, sizeExtent, true) / 2;\n  }\n\n  return halfHoverLinkSize;\n}\n\nfunction useHoverLinkOnHandle(visualMapModel) {\n  var hoverLinkOnHandle = visualMapModel.get('hoverLinkOnHandle');\n  return !!(hoverLinkOnHandle == null ? visualMapModel.get('realtime') : hoverLinkOnHandle);\n}\n\nfunction getCursor(orient) {\n  return orient === 'vertical' ? 'ns-resize' : 'ew-resize';\n}\n\nexport default ContinuousView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport var visualMapActionInfo = {\n  type: 'selectDataRange',\n  event: 'dataRangeSelected',\n  update: 'update'\n};\nexport var visualMapActionHander = function (payload, ecModel) {\n  ecModel.eachComponent({\n    mainType: 'visualMap',\n    query: payload\n  }, function (model) {\n    model.setSelected(payload.selected);\n  });\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as visualSolution from '../../visual/visualSolution';\nimport VisualMapping from '../../visual/VisualMapping';\nimport { getVisualFromData } from '../../visual/helper';\nexport var visualMapEncodingHandlers = [{\n  createOnAllSeries: true,\n  reset: function (seriesModel, ecModel) {\n    var resetDefines = [];\n    ecModel.eachComponent('visualMap', function (visualMapModel) {\n      var pipelineContext = seriesModel.pipelineContext;\n\n      if (!visualMapModel.isTargetSeries(seriesModel) || pipelineContext && pipelineContext.large) {\n        return;\n      }\n\n      resetDefines.push(visualSolution.incrementalApplyVisual(visualMapModel.stateList, visualMapModel.targetVisuals, zrUtil.bind(visualMapModel.getValueState, visualMapModel), visualMapModel.getDataDimension(seriesModel.getData())));\n    });\n    return resetDefines;\n  }\n}, {\n  createOnAllSeries: true,\n  reset: function (seriesModel, ecModel) {\n    var data = seriesModel.getData();\n    var visualMetaList = [];\n    ecModel.eachComponent('visualMap', function (visualMapModel) {\n      if (visualMapModel.isTargetSeries(seriesModel)) {\n        var visualMeta = visualMapModel.getVisualMeta(zrUtil.bind(getColorVisual, null, seriesModel, visualMapModel)) || {\n          stops: [],\n          outerColors: []\n        };\n        var concreteDim = visualMapModel.getDataDimension(data);\n        var dimInfo = data.getDimensionInfo(concreteDim);\n\n        if (dimInfo != null) {\n          visualMeta.dimension = dimInfo.index;\n          visualMetaList.push(visualMeta);\n        }\n      }\n    });\n    seriesModel.getData().setVisual('visualMeta', visualMetaList);\n  }\n}];\n\nfunction getColorVisual(seriesModel, visualMapModel, value, valueState) {\n  var mappings = visualMapModel.targetVisuals[valueState];\n  var visualTypes = VisualMapping.prepareVisualTypes(mappings);\n  var resultVisual = {\n    color: getVisualFromData(seriesModel.getData(), 'color')\n  };\n\n  for (var i = 0, len = visualTypes.length; i < len; i++) {\n    var type = visualTypes[i];\n    var mapping = mappings[type === 'opacity' ? '__alphaForOpacity' : type];\n    mapping && mapping.applyVisual(value, getVisual, setVisual);\n  }\n\n  return resultVisual.color;\n\n  function getVisual(key) {\n    return resultVisual[key];\n  }\n\n  function setVisual(key, value) {\n    resultVisual[key] = value;\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar each = zrUtil.each;\nexport default function visualMapPreprocessor(option) {\n  var visualMap = option && option.visualMap;\n\n  if (!zrUtil.isArray(visualMap)) {\n    visualMap = visualMap ? [visualMap] : [];\n  }\n\n  each(visualMap, function (opt) {\n    if (!opt) {\n      return;\n    }\n\n    if (has(opt, 'splitList') && !has(opt, 'pieces')) {\n      opt.pieces = opt.splitList;\n      delete opt.splitList;\n    }\n\n    var pieces = opt.pieces;\n\n    if (pieces && zrUtil.isArray(pieces)) {\n      each(pieces, function (piece) {\n        if (zrUtil.isObject(piece)) {\n          if (has(piece, 'start') && !has(piece, 'min')) {\n            piece.min = piece.start;\n          }\n\n          if (has(piece, 'end') && !has(piece, 'max')) {\n            piece.max = piece.end;\n          }\n        }\n      });\n    }\n  });\n}\n\nfunction has(obj, name) {\n  return obj && obj.hasOwnProperty && obj.hasOwnProperty(name);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { visualMapActionInfo, visualMapActionHander } from './visualMapAction';\nimport { visualMapEncodingHandlers } from './visualEncoding';\nimport { each } from 'zrender/lib/core/util';\nimport preprocessor from './preprocessor';\nvar installed = false;\nexport default function installCommon(registers) {\n  if (installed) {\n    return;\n  }\n\n  installed = true;\n  registers.registerSubTypeDefaulter('visualMap', function (option) {\n    return !option.categories && (!(option.pieces ? option.pieces.length > 0 : option.splitNumber > 0) || option.calculable) ? 'continuous' : 'piecewise';\n  });\n  registers.registerAction(visualMapActionInfo, visualMapActionHander);\n  each(visualMapEncodingHandlers, function (handler) {\n    registers.registerVisual(registers.PRIORITY.VISUAL.COMPONENT, handler);\n  });\n  registers.registerPreprocessor(preprocessor);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ContinuousModel from './ContinuousModel';\nimport ContinuousView from './ContinuousView';\nimport installCommon from './installCommon';\nexport function install(registers) {\n  registers.registerComponentModel(ContinuousModel);\n  registers.registerComponentView(ContinuousView);\n  installCommon(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport VisualMapModel from './VisualMapModel';\nimport VisualMapping from '../../visual/VisualMapping';\nimport visualDefault from '../../visual/visualDefault';\nimport { reformIntervals } from '../../util/number';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar PiecewiseModel = function (_super) {\n  __extends(PiecewiseModel, _super);\n\n  function PiecewiseModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = PiecewiseModel.type;\n    _this._pieceList = [];\n    return _this;\n  }\n\n  PiecewiseModel.prototype.optionUpdated = function (newOption, isInit) {\n    _super.prototype.optionUpdated.apply(this, arguments);\n\n    this.resetExtent();\n\n    var mode = this._mode = this._determineMode();\n\n    this._pieceList = [];\n\n    resetMethods[this._mode].call(this, this._pieceList);\n\n    this._resetSelected(newOption, isInit);\n\n    var categories = this.option.categories;\n    this.resetVisual(function (mappingOption, state) {\n      if (mode === 'categories') {\n        mappingOption.mappingMethod = 'category';\n        mappingOption.categories = zrUtil.clone(categories);\n      } else {\n        mappingOption.dataExtent = this.getExtent();\n        mappingOption.mappingMethod = 'piecewise';\n        mappingOption.pieceList = zrUtil.map(this._pieceList, function (piece) {\n          piece = zrUtil.clone(piece);\n\n          if (state !== 'inRange') {\n            piece.visual = null;\n          }\n\n          return piece;\n        });\n      }\n    });\n  };\n\n  PiecewiseModel.prototype.completeVisualOption = function () {\n    var option = this.option;\n    var visualTypesInPieces = {};\n    var visualTypes = VisualMapping.listVisualTypes();\n    var isCategory = this.isCategory();\n    zrUtil.each(option.pieces, function (piece) {\n      zrUtil.each(visualTypes, function (visualType) {\n        if (piece.hasOwnProperty(visualType)) {\n          visualTypesInPieces[visualType] = 1;\n        }\n      });\n    });\n    zrUtil.each(visualTypesInPieces, function (v, visualType) {\n      var exists = false;\n      zrUtil.each(this.stateList, function (state) {\n        exists = exists || has(option, state, visualType) || has(option.target, state, visualType);\n      }, this);\n      !exists && zrUtil.each(this.stateList, function (state) {\n        (option[state] || (option[state] = {}))[visualType] = visualDefault.get(visualType, state === 'inRange' ? 'active' : 'inactive', isCategory);\n      });\n    }, this);\n\n    function has(obj, state, visualType) {\n      return obj && obj[state] && obj[state].hasOwnProperty(visualType);\n    }\n\n    _super.prototype.completeVisualOption.apply(this, arguments);\n  };\n\n  PiecewiseModel.prototype._resetSelected = function (newOption, isInit) {\n    var thisOption = this.option;\n    var pieceList = this._pieceList;\n    var selected = (isInit ? thisOption : newOption).selected || {};\n    thisOption.selected = selected;\n    zrUtil.each(pieceList, function (piece, index) {\n      var key = this.getSelectedMapKey(piece);\n\n      if (!selected.hasOwnProperty(key)) {\n        selected[key] = true;\n      }\n    }, this);\n\n    if (thisOption.selectedMode === 'single') {\n      var hasSel_1 = false;\n      zrUtil.each(pieceList, function (piece, index) {\n        var key = this.getSelectedMapKey(piece);\n\n        if (selected[key]) {\n          hasSel_1 ? selected[key] = false : hasSel_1 = true;\n        }\n      }, this);\n    }\n  };\n\n  PiecewiseModel.prototype.getSelectedMapKey = function (piece) {\n    return this._mode === 'categories' ? piece.value + '' : piece.index + '';\n  };\n\n  PiecewiseModel.prototype.getPieceList = function () {\n    return this._pieceList;\n  };\n\n  PiecewiseModel.prototype._determineMode = function () {\n    var option = this.option;\n    return option.pieces && option.pieces.length > 0 ? 'pieces' : this.option.categories ? 'categories' : 'splitNumber';\n  };\n\n  PiecewiseModel.prototype.setSelected = function (selected) {\n    this.option.selected = zrUtil.clone(selected);\n  };\n\n  PiecewiseModel.prototype.getValueState = function (value) {\n    var index = VisualMapping.findPieceIndex(value, this._pieceList);\n    return index != null ? this.option.selected[this.getSelectedMapKey(this._pieceList[index])] ? 'inRange' : 'outOfRange' : 'outOfRange';\n  };\n\n  PiecewiseModel.prototype.findTargetDataIndices = function (pieceIndex) {\n    var result = [];\n    var pieceList = this._pieceList;\n    this.eachTargetSeries(function (seriesModel) {\n      var dataIndices = [];\n      var data = seriesModel.getData();\n      data.each(this.getDataDimension(data), function (value, dataIndex) {\n        var pIdx = VisualMapping.findPieceIndex(value, pieceList);\n        pIdx === pieceIndex && dataIndices.push(dataIndex);\n      }, this);\n      result.push({\n        seriesId: seriesModel.id,\n        dataIndex: dataIndices\n      });\n    }, this);\n    return result;\n  };\n\n  PiecewiseModel.prototype.getRepresentValue = function (piece) {\n    var representValue;\n\n    if (this.isCategory()) {\n      representValue = piece.value;\n    } else {\n      if (piece.value != null) {\n        representValue = piece.value;\n      } else {\n        var pieceInterval = piece.interval || [];\n        representValue = pieceInterval[0] === -Infinity && pieceInterval[1] === Infinity ? 0 : (pieceInterval[0] + pieceInterval[1]) / 2;\n      }\n    }\n\n    return representValue;\n  };\n\n  PiecewiseModel.prototype.getVisualMeta = function (getColorVisual) {\n    if (this.isCategory()) {\n      return;\n    }\n\n    var stops = [];\n    var outerColors = ['', ''];\n    var visualMapModel = this;\n\n    function setStop(interval, valueState) {\n      var representValue = visualMapModel.getRepresentValue({\n        interval: interval\n      });\n\n      if (!valueState) {\n        valueState = visualMapModel.getValueState(representValue);\n      }\n\n      var color = getColorVisual(representValue, valueState);\n\n      if (interval[0] === -Infinity) {\n        outerColors[0] = color;\n      } else if (interval[1] === Infinity) {\n        outerColors[1] = color;\n      } else {\n        stops.push({\n          value: interval[0],\n          color: color\n        }, {\n          value: interval[1],\n          color: color\n        });\n      }\n    }\n\n    var pieceList = this._pieceList.slice();\n\n    if (!pieceList.length) {\n      pieceList.push({\n        interval: [-Infinity, Infinity]\n      });\n    } else {\n      var edge = pieceList[0].interval[0];\n      edge !== -Infinity && pieceList.unshift({\n        interval: [-Infinity, edge]\n      });\n      edge = pieceList[pieceList.length - 1].interval[1];\n      edge !== Infinity && pieceList.push({\n        interval: [edge, Infinity]\n      });\n    }\n\n    var curr = -Infinity;\n    zrUtil.each(pieceList, function (piece) {\n      var interval = piece.interval;\n\n      if (interval) {\n        interval[0] > curr && setStop([curr, interval[0]], 'outOfRange');\n        setStop(interval.slice());\n        curr = interval[1];\n      }\n    }, this);\n    return {\n      stops: stops,\n      outerColors: outerColors\n    };\n  };\n\n  PiecewiseModel.type = 'visualMap.piecewise';\n  PiecewiseModel.defaultOption = inheritDefaultOption(VisualMapModel.defaultOption, {\n    selected: null,\n    minOpen: false,\n    maxOpen: false,\n    align: 'auto',\n    itemWidth: 20,\n    itemHeight: 14,\n    itemSymbol: 'roundRect',\n    pieces: null,\n    categories: null,\n    splitNumber: 5,\n    selectedMode: 'multiple',\n    itemGap: 10,\n    hoverLink: true\n  });\n  return PiecewiseModel;\n}(VisualMapModel);\n\n;\nvar resetMethods = {\n  splitNumber: function (outPieceList) {\n    var thisOption = this.option;\n    var precision = Math.min(thisOption.precision, 20);\n    var dataExtent = this.getExtent();\n    var splitNumber = thisOption.splitNumber;\n    splitNumber = Math.max(parseInt(splitNumber, 10), 1);\n    thisOption.splitNumber = splitNumber;\n    var splitStep = (dataExtent[1] - dataExtent[0]) / splitNumber;\n\n    while (+splitStep.toFixed(precision) !== splitStep && precision < 5) {\n      precision++;\n    }\n\n    thisOption.precision = precision;\n    splitStep = +splitStep.toFixed(precision);\n\n    if (thisOption.minOpen) {\n      outPieceList.push({\n        interval: [-Infinity, dataExtent[0]],\n        close: [0, 0]\n      });\n    }\n\n    for (var index = 0, curr = dataExtent[0]; index < splitNumber; curr += splitStep, index++) {\n      var max = index === splitNumber - 1 ? dataExtent[1] : curr + splitStep;\n      outPieceList.push({\n        interval: [curr, max],\n        close: [1, 1]\n      });\n    }\n\n    if (thisOption.maxOpen) {\n      outPieceList.push({\n        interval: [dataExtent[1], Infinity],\n        close: [0, 0]\n      });\n    }\n\n    reformIntervals(outPieceList);\n    zrUtil.each(outPieceList, function (piece, index) {\n      piece.index = index;\n      piece.text = this.formatValueText(piece.interval);\n    }, this);\n  },\n  categories: function (outPieceList) {\n    var thisOption = this.option;\n    zrUtil.each(thisOption.categories, function (cate) {\n      outPieceList.push({\n        text: this.formatValueText(cate, true),\n        value: cate\n      });\n    }, this);\n    normalizeReverse(thisOption, outPieceList);\n  },\n  pieces: function (outPieceList) {\n    var thisOption = this.option;\n    zrUtil.each(thisOption.pieces, function (pieceListItem, index) {\n      if (!zrUtil.isObject(pieceListItem)) {\n        pieceListItem = {\n          value: pieceListItem\n        };\n      }\n\n      var item = {\n        text: '',\n        index: index\n      };\n\n      if (pieceListItem.label != null) {\n        item.text = pieceListItem.label;\n      }\n\n      if (pieceListItem.hasOwnProperty('value')) {\n        var value = item.value = pieceListItem.value;\n        item.interval = [value, value];\n        item.close = [1, 1];\n      } else {\n        var interval = item.interval = [];\n        var close_1 = item.close = [0, 0];\n        var closeList = [1, 0, 1];\n        var infinityList = [-Infinity, Infinity];\n        var useMinMax = [];\n\n        for (var lg = 0; lg < 2; lg++) {\n          var names = [['gte', 'gt', 'min'], ['lte', 'lt', 'max']][lg];\n\n          for (var i = 0; i < 3 && interval[lg] == null; i++) {\n            interval[lg] = pieceListItem[names[i]];\n            close_1[lg] = closeList[i];\n            useMinMax[lg] = i === 2;\n          }\n\n          interval[lg] == null && (interval[lg] = infinityList[lg]);\n        }\n\n        useMinMax[0] && interval[1] === Infinity && (close_1[0] = 0);\n        useMinMax[1] && interval[0] === -Infinity && (close_1[1] = 0);\n\n        if (process.env.NODE_ENV !== 'production') {\n          if (interval[0] > interval[1]) {\n            console.warn('Piece ' + index + 'is illegal: ' + interval + ' lower bound should not greater then uppper bound.');\n          }\n        }\n\n        if (interval[0] === interval[1] && close_1[0] && close_1[1]) {\n          item.value = interval[0];\n        }\n      }\n\n      item.visual = VisualMapping.retrieveVisuals(pieceListItem);\n      outPieceList.push(item);\n    }, this);\n    normalizeReverse(thisOption, outPieceList);\n    reformIntervals(outPieceList);\n    zrUtil.each(outPieceList, function (piece) {\n      var close = piece.close;\n      var edgeSymbols = [['<', '≤'][close[1]], ['>', '≥'][close[0]]];\n      piece.text = piece.text || this.formatValueText(piece.value != null ? piece.value : piece.interval, false, edgeSymbols);\n    }, this);\n  }\n};\n\nfunction normalizeReverse(thisOption, pieceList) {\n  var inverse = thisOption.inverse;\n\n  if (thisOption.orient === 'vertical' ? !inverse : inverse) {\n    pieceList.reverse();\n  }\n}\n\nexport default PiecewiseModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport VisualMapView from './VisualMapView';\nimport * as graphic from '../../util/graphic';\nimport { createSymbol } from '../../util/symbol';\nimport * as layout from '../../util/layout';\nimport * as helper from './helper';\n\nvar PiecewiseVisualMapView = function (_super) {\n  __extends(PiecewiseVisualMapView, _super);\n\n  function PiecewiseVisualMapView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = PiecewiseVisualMapView.type;\n    return _this;\n  }\n\n  PiecewiseVisualMapView.prototype.doRender = function () {\n    var thisGroup = this.group;\n    thisGroup.removeAll();\n    var visualMapModel = this.visualMapModel;\n    var textGap = visualMapModel.get('textGap');\n    var textStyleModel = visualMapModel.textStyleModel;\n    var textFont = textStyleModel.getFont();\n    var textFill = textStyleModel.getTextColor();\n\n    var itemAlign = this._getItemAlign();\n\n    var itemSize = visualMapModel.itemSize;\n\n    var viewData = this._getViewData();\n\n    var endsText = viewData.endsText;\n    var showLabel = zrUtil.retrieve(visualMapModel.get('showLabel', true), !endsText);\n    endsText && this._renderEndsText(thisGroup, endsText[0], itemSize, showLabel, itemAlign);\n    zrUtil.each(viewData.viewPieceList, function (item) {\n      var piece = item.piece;\n      var itemGroup = new graphic.Group();\n      itemGroup.onclick = zrUtil.bind(this._onItemClick, this, piece);\n\n      this._enableHoverLink(itemGroup, item.indexInModelPieceList);\n\n      var representValue = visualMapModel.getRepresentValue(piece);\n\n      this._createItemSymbol(itemGroup, representValue, [0, 0, itemSize[0], itemSize[1]]);\n\n      if (showLabel) {\n        var visualState = this.visualMapModel.getValueState(representValue);\n        itemGroup.add(new graphic.Text({\n          style: {\n            x: itemAlign === 'right' ? -textGap : itemSize[0] + textGap,\n            y: itemSize[1] / 2,\n            text: piece.text,\n            verticalAlign: 'middle',\n            align: itemAlign,\n            font: textFont,\n            fill: textFill,\n            opacity: visualState === 'outOfRange' ? 0.5 : 1\n          }\n        }));\n      }\n\n      thisGroup.add(itemGroup);\n    }, this);\n    endsText && this._renderEndsText(thisGroup, endsText[1], itemSize, showLabel, itemAlign);\n    layout.box(visualMapModel.get('orient'), thisGroup, visualMapModel.get('itemGap'));\n    this.renderBackground(thisGroup);\n    this.positionGroup(thisGroup);\n  };\n\n  PiecewiseVisualMapView.prototype._enableHoverLink = function (itemGroup, pieceIndex) {\n    var _this = this;\n\n    itemGroup.on('mouseover', function () {\n      return onHoverLink('highlight');\n    }).on('mouseout', function () {\n      return onHoverLink('downplay');\n    });\n\n    var onHoverLink = function (method) {\n      var visualMapModel = _this.visualMapModel;\n      visualMapModel.option.hoverLink && _this.api.dispatchAction({\n        type: method,\n        batch: helper.makeHighDownBatch(visualMapModel.findTargetDataIndices(pieceIndex), visualMapModel)\n      });\n    };\n  };\n\n  PiecewiseVisualMapView.prototype._getItemAlign = function () {\n    var visualMapModel = this.visualMapModel;\n    var modelOption = visualMapModel.option;\n\n    if (modelOption.orient === 'vertical') {\n      return helper.getItemAlign(visualMapModel, this.api, visualMapModel.itemSize);\n    } else {\n      var align = modelOption.align;\n\n      if (!align || align === 'auto') {\n        align = 'left';\n      }\n\n      return align;\n    }\n  };\n\n  PiecewiseVisualMapView.prototype._renderEndsText = function (group, text, itemSize, showLabel, itemAlign) {\n    if (!text) {\n      return;\n    }\n\n    var itemGroup = new graphic.Group();\n    var textStyleModel = this.visualMapModel.textStyleModel;\n    itemGroup.add(new graphic.Text({\n      style: {\n        x: showLabel ? itemAlign === 'right' ? itemSize[0] : 0 : itemSize[0] / 2,\n        y: itemSize[1] / 2,\n        verticalAlign: 'middle',\n        align: showLabel ? itemAlign : 'center',\n        text: text,\n        font: textStyleModel.getFont(),\n        fill: textStyleModel.getTextColor()\n      }\n    }));\n    group.add(itemGroup);\n  };\n\n  PiecewiseVisualMapView.prototype._getViewData = function () {\n    var visualMapModel = this.visualMapModel;\n    var viewPieceList = zrUtil.map(visualMapModel.getPieceList(), function (piece, index) {\n      return {\n        piece: piece,\n        indexInModelPieceList: index\n      };\n    });\n    var endsText = visualMapModel.get('text');\n    var orient = visualMapModel.get('orient');\n    var inverse = visualMapModel.get('inverse');\n\n    if (orient === 'horizontal' ? inverse : !inverse) {\n      viewPieceList.reverse();\n    } else if (endsText) {\n      endsText = endsText.slice().reverse();\n    }\n\n    return {\n      viewPieceList: viewPieceList,\n      endsText: endsText\n    };\n  };\n\n  PiecewiseVisualMapView.prototype._createItemSymbol = function (group, representValue, shapeParam) {\n    group.add(createSymbol(this.getControllerVisual(representValue, 'symbol'), shapeParam[0], shapeParam[1], shapeParam[2], shapeParam[3], this.getControllerVisual(representValue, 'color')));\n  };\n\n  PiecewiseVisualMapView.prototype._onItemClick = function (piece) {\n    var visualMapModel = this.visualMapModel;\n    var option = visualMapModel.option;\n    var selected = zrUtil.clone(option.selected);\n    var newKey = visualMapModel.getSelectedMapKey(piece);\n\n    if (option.selectedMode === 'single') {\n      selected[newKey] = true;\n      zrUtil.each(selected, function (o, key) {\n        selected[key] = key === newKey;\n      });\n    } else {\n      selected[newKey] = !selected[newKey];\n    }\n\n    this.api.dispatchAction({\n      type: 'selectDataRange',\n      from: this.uid,\n      visualMapId: this.visualMapModel.id,\n      selected: selected\n    });\n  };\n\n  PiecewiseVisualMapView.type = 'visualMap.piecewise';\n  return PiecewiseVisualMapView;\n}(VisualMapView);\n\nexport default PiecewiseVisualMapView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport PiecewiseModel from './PiecewiseModel';\nimport PiecewiseView from './PiecewiseView';\nimport installCommon from './installCommon';\nexport function install(registers) {\n  registers.registerComponentModel(PiecewiseModel);\n  registers.registerComponentView(PiecewiseView);\n  installCommon(registers);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from '../../extension';\nimport { install as installVisualMapContinuous } from './installVisualMapContinuous';\nimport { install as installVisualMapPiecewise } from './installVisualMapPiecewise';\nexport function install(registers) {\n  use(installVisualMapContinuous);\n  use(installVisualMapPiecewise);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { retrieveRawValue } from '../data/helper/dataProvider';\nimport { makeInner } from '../util/model';\nimport { getDecalFromPalette } from '../model/mixin/palette';\nvar DEFAULT_OPTION = {\n  label: {\n    enabled: true\n  },\n  decal: {\n    show: false\n  }\n};\nvar inner = makeInner();\nvar decalPaletteScope = {};\nexport default function ariaVisual(ecModel, api) {\n  var ariaModel = ecModel.getModel('aria');\n\n  if (!ariaModel.get('enabled')) {\n    return;\n  }\n\n  var defaultOption = zrUtil.clone(DEFAULT_OPTION);\n  zrUtil.merge(defaultOption.label, ecModel.getLocaleModel().get('aria'), false);\n  zrUtil.merge(ariaModel.option, defaultOption, false);\n  setDecal();\n  setLabel();\n\n  function setDecal() {\n    var decalModel = ariaModel.getModel('decal');\n    var useDecal = decalModel.get('show');\n\n    if (useDecal) {\n      var paletteScopeGroupByType_1 = zrUtil.createHashMap();\n      ecModel.eachSeries(function (seriesModel) {\n        if (!seriesModel.useColorPaletteOnData) {\n          return;\n        }\n\n        var decalScope = paletteScopeGroupByType_1.get(seriesModel.type);\n\n        if (!decalScope) {\n          decalScope = {};\n          paletteScopeGroupByType_1.set(seriesModel.type, decalScope);\n        }\n\n        inner(seriesModel).scope = decalScope;\n      });\n      ecModel.eachRawSeries(function (seriesModel) {\n        if (ecModel.isSeriesFiltered(seriesModel)) {\n          return;\n        }\n\n        if (typeof seriesModel.enableAriaDecal === 'function') {\n          seriesModel.enableAriaDecal();\n          return;\n        }\n\n        var data = seriesModel.getData();\n\n        if (seriesModel.useColorPaletteOnData) {\n          var dataAll_1 = seriesModel.getRawData();\n          var idxMap_1 = {};\n          var decalScope_1 = inner(seriesModel).scope;\n          data.each(function (idx) {\n            var rawIdx = data.getRawIndex(idx);\n            idxMap_1[rawIdx] = idx;\n          });\n          var dataCount_1 = dataAll_1.count();\n          dataAll_1.each(function (rawIdx) {\n            var idx = idxMap_1[rawIdx];\n            var name = dataAll_1.getName(rawIdx) || rawIdx + '';\n            var paletteDecal = getDecalFromPalette(seriesModel.ecModel, name, decalScope_1, dataCount_1);\n            var specifiedDecal = data.getItemVisual(idx, 'decal');\n            data.setItemVisual(idx, 'decal', mergeDecal(specifiedDecal, paletteDecal));\n          });\n        } else {\n          var paletteDecal = getDecalFromPalette(seriesModel.ecModel, seriesModel.name, decalPaletteScope, ecModel.getSeriesCount());\n          var specifiedDecal = data.getVisual('decal');\n          data.setVisual('decal', mergeDecal(specifiedDecal, paletteDecal));\n        }\n\n        function mergeDecal(specifiedDecal, paletteDecal) {\n          var resultDecal = specifiedDecal ? zrUtil.extend(zrUtil.extend({}, paletteDecal), specifiedDecal) : paletteDecal;\n          resultDecal.dirty = true;\n          return resultDecal;\n        }\n      });\n    }\n  }\n\n  function setLabel() {\n    var labelLocale = ecModel.getLocaleModel().get('aria');\n    var labelModel = ariaModel.getModel('label');\n    labelModel.option = zrUtil.defaults(labelModel.option, labelLocale);\n\n    if (!labelModel.get('enabled')) {\n      return;\n    }\n\n    var dom = api.getZr().dom;\n\n    if (labelModel.get('description')) {\n      dom.setAttribute('aria-label', labelModel.get('description'));\n      return;\n    }\n\n    var seriesCnt = ecModel.getSeriesCount();\n    var maxDataCnt = labelModel.get(['data', 'maxCount']) || 10;\n    var maxSeriesCnt = labelModel.get(['series', 'maxCount']) || 10;\n    var displaySeriesCnt = Math.min(seriesCnt, maxSeriesCnt);\n    var ariaLabel;\n\n    if (seriesCnt < 1) {\n      return;\n    } else {\n      var title = getTitle();\n\n      if (title) {\n        var withTitle = labelModel.get(['general', 'withTitle']);\n        ariaLabel = replace(withTitle, {\n          title: title\n        });\n      } else {\n        ariaLabel = labelModel.get(['general', 'withoutTitle']);\n      }\n\n      var seriesLabels_1 = [];\n      var prefix = seriesCnt > 1 ? labelModel.get(['series', 'multiple', 'prefix']) : labelModel.get(['series', 'single', 'prefix']);\n      ariaLabel += replace(prefix, {\n        seriesCount: seriesCnt\n      });\n      ecModel.eachSeries(function (seriesModel, idx) {\n        if (idx < displaySeriesCnt) {\n          var seriesLabel = void 0;\n          var seriesName = seriesModel.get('name');\n          var withName = seriesName ? 'withName' : 'withoutName';\n          seriesLabel = seriesCnt > 1 ? labelModel.get(['series', 'multiple', withName]) : labelModel.get(['series', 'single', withName]);\n          seriesLabel = replace(seriesLabel, {\n            seriesId: seriesModel.seriesIndex,\n            seriesName: seriesModel.get('name'),\n            seriesType: getSeriesTypeName(seriesModel.subType)\n          });\n          var data = seriesModel.getData();\n\n          if (data.count() > maxDataCnt) {\n            var partialLabel = labelModel.get(['data', 'partialData']);\n            seriesLabel += replace(partialLabel, {\n              displayCnt: maxDataCnt\n            });\n          } else {\n            seriesLabel += labelModel.get(['data', 'allData']);\n          }\n\n          var dataLabels = [];\n\n          for (var i = 0; i < data.count(); i++) {\n            if (i < maxDataCnt) {\n              var name_1 = data.getName(i);\n              var value = retrieveRawValue(data, i);\n              var dataLabel = labelModel.get(['data', name_1 ? 'withName' : 'withoutName']);\n              dataLabels.push(replace(dataLabel, {\n                name: name_1,\n                value: value\n              }));\n            }\n          }\n\n          var middleSeparator_1 = labelModel.get(['data', 'separator', 'middle']);\n          var endSeparator_1 = labelModel.get(['data', 'separator', 'end']);\n          seriesLabel += dataLabels.join(middleSeparator_1) + endSeparator_1;\n          seriesLabels_1.push(seriesLabel);\n        }\n      });\n      var separatorModel = labelModel.getModel(['series', 'multiple', 'separator']);\n      var middleSeparator = separatorModel.get('middle');\n      var endSeparator = separatorModel.get('end');\n      ariaLabel += seriesLabels_1.join(middleSeparator) + endSeparator;\n      dom.setAttribute('aria-label', ariaLabel);\n    }\n  }\n\n  function replace(str, keyValues) {\n    if (typeof str !== 'string') {\n      return str;\n    }\n\n    var result = str;\n    zrUtil.each(keyValues, function (value, key) {\n      result = result.replace(new RegExp('\\\\{\\\\s*' + key + '\\\\s*\\\\}', 'g'), value);\n    });\n    return result;\n  }\n\n  function getTitle() {\n    var title = ecModel.get('title');\n\n    if (title && title.length) {\n      title = title[0];\n    }\n\n    return title && title.text;\n  }\n\n  function getSeriesTypeName(type) {\n    return ecModel.getLocaleModel().get(['series', 'typeNames'])[type] || '自定义图';\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function ariaPreprocessor(option) {\n  if (!option || !option.aria) {\n    return;\n  }\n\n  var aria = option.aria;\n\n  if (aria.show != null) {\n    aria.enabled = aria.show;\n  }\n\n  aria.label = aria.label || {};\n  zrUtil.each(['description', 'general', 'series', 'data'], function (name) {\n    if (aria[name] != null) {\n      aria.label[name] = aria[name];\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ariaVisual from '../../visual/aria';\nimport ariaPreprocessor from './preprocessor';\nexport function install(registers) {\n  registers.registerPreprocessor(ariaPreprocessor);\n  registers.registerVisual(registers.PRIORITY.VISUAL.ARIA, ariaVisual);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { keys, isArray, map, isObject, isString, isRegExp, isArrayLike, hasOwn } from 'zrender/lib/core/util';\nimport { throwError, makePrintable } from './log';\nimport { getRawValueParser, createFilterComparator } from '../data/helper/dataValueHelper';\n;\nvar RELATIONAL_EXPRESSION_OP_ALIAS_MAP = {\n  value: 'eq',\n  '<': 'lt',\n  '<=': 'lte',\n  '>': 'gt',\n  '>=': 'gte',\n  '=': 'eq',\n  '!=': 'ne',\n  '<>': 'ne'\n};\n\nvar RegExpEvaluator = function () {\n  function RegExpEvaluator(rVal) {\n    var condValue = this._condVal = isString(rVal) ? new RegExp(rVal) : isRegExp(rVal) ? rVal : null;\n\n    if (condValue == null) {\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = makePrintable('Illegal regexp', rVal, 'in');\n      }\n\n      throwError(errMsg);\n    }\n  }\n\n  RegExpEvaluator.prototype.evaluate = function (lVal) {\n    var type = typeof lVal;\n    return type === 'string' ? this._condVal.test(lVal) : type === 'number' ? this._condVal.test(lVal + '') : false;\n  };\n\n  return RegExpEvaluator;\n}();\n\nvar ConstConditionInternal = function () {\n  function ConstConditionInternal() {}\n\n  ConstConditionInternal.prototype.evaluate = function () {\n    return this.value;\n  };\n\n  return ConstConditionInternal;\n}();\n\nvar AndConditionInternal = function () {\n  function AndConditionInternal() {}\n\n  AndConditionInternal.prototype.evaluate = function () {\n    var children = this.children;\n\n    for (var i = 0; i < children.length; i++) {\n      if (!children[i].evaluate()) {\n        return false;\n      }\n    }\n\n    return true;\n  };\n\n  return AndConditionInternal;\n}();\n\nvar OrConditionInternal = function () {\n  function OrConditionInternal() {}\n\n  OrConditionInternal.prototype.evaluate = function () {\n    var children = this.children;\n\n    for (var i = 0; i < children.length; i++) {\n      if (children[i].evaluate()) {\n        return true;\n      }\n    }\n\n    return false;\n  };\n\n  return OrConditionInternal;\n}();\n\nvar NotConditionInternal = function () {\n  function NotConditionInternal() {}\n\n  NotConditionInternal.prototype.evaluate = function () {\n    return !this.child.evaluate();\n  };\n\n  return NotConditionInternal;\n}();\n\nvar RelationalConditionInternal = function () {\n  function RelationalConditionInternal() {}\n\n  RelationalConditionInternal.prototype.evaluate = function () {\n    var needParse = !!this.valueParser;\n    var getValue = this.getValue;\n    var tarValRaw = getValue(this.valueGetterParam);\n    var tarValParsed = needParse ? this.valueParser(tarValRaw) : null;\n\n    for (var i = 0; i < this.subCondList.length; i++) {\n      if (!this.subCondList[i].evaluate(needParse ? tarValParsed : tarValRaw)) {\n        return false;\n      }\n    }\n\n    return true;\n  };\n\n  return RelationalConditionInternal;\n}();\n\nfunction parseOption(exprOption, getters) {\n  if (exprOption === true || exprOption === false) {\n    var cond = new ConstConditionInternal();\n    cond.value = exprOption;\n    return cond;\n  }\n\n  var errMsg = '';\n\n  if (!isObjectNotArray(exprOption)) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = makePrintable('Illegal config. Expect a plain object but actually', exprOption);\n    }\n\n    throwError(errMsg);\n  }\n\n  if (exprOption.and) {\n    return parseAndOrOption('and', exprOption, getters);\n  } else if (exprOption.or) {\n    return parseAndOrOption('or', exprOption, getters);\n  } else if (exprOption.not) {\n    return parseNotOption(exprOption, getters);\n  }\n\n  return parseRelationalOption(exprOption, getters);\n}\n\nfunction parseAndOrOption(op, exprOption, getters) {\n  var subOptionArr = exprOption[op];\n  var errMsg = '';\n\n  if (process.env.NODE_ENV !== 'production') {\n    errMsg = makePrintable('\"and\"/\"or\" condition should only be `' + op + ': [...]` and must not be empty array.', 'Illegal condition:', exprOption);\n  }\n\n  if (!isArray(subOptionArr)) {\n    throwError(errMsg);\n  }\n\n  if (!subOptionArr.length) {\n    throwError(errMsg);\n  }\n\n  var cond = op === 'and' ? new AndConditionInternal() : new OrConditionInternal();\n  cond.children = map(subOptionArr, function (subOption) {\n    return parseOption(subOption, getters);\n  });\n\n  if (!cond.children.length) {\n    throwError(errMsg);\n  }\n\n  return cond;\n}\n\nfunction parseNotOption(exprOption, getters) {\n  var subOption = exprOption.not;\n  var errMsg = '';\n\n  if (process.env.NODE_ENV !== 'production') {\n    errMsg = makePrintable('\"not\" condition should only be `not: {}`.', 'Illegal condition:', exprOption);\n  }\n\n  if (!isObjectNotArray(subOption)) {\n    throwError(errMsg);\n  }\n\n  var cond = new NotConditionInternal();\n  cond.child = parseOption(subOption, getters);\n\n  if (!cond.child) {\n    throwError(errMsg);\n  }\n\n  return cond;\n}\n\nfunction parseRelationalOption(exprOption, getters) {\n  var errMsg = '';\n  var valueGetterParam = getters.prepareGetValue(exprOption);\n  var subCondList = [];\n  var exprKeys = keys(exprOption);\n  var parserName = exprOption.parser;\n  var valueParser = parserName ? getRawValueParser(parserName) : null;\n\n  for (var i = 0; i < exprKeys.length; i++) {\n    var keyRaw = exprKeys[i];\n\n    if (keyRaw === 'parser' || getters.valueGetterAttrMap.get(keyRaw)) {\n      continue;\n    }\n\n    var op = hasOwn(RELATIONAL_EXPRESSION_OP_ALIAS_MAP, keyRaw) ? RELATIONAL_EXPRESSION_OP_ALIAS_MAP[keyRaw] : keyRaw;\n    var condValueRaw = exprOption[keyRaw];\n    var condValueParsed = valueParser ? valueParser(condValueRaw) : condValueRaw;\n    var evaluator = createFilterComparator(op, condValueParsed) || op === 'reg' && new RegExpEvaluator(condValueParsed);\n\n    if (!evaluator) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = makePrintable('Illegal relational operation: \"' + keyRaw + '\" in condition:', exprOption);\n      }\n\n      throwError(errMsg);\n    }\n\n    subCondList.push(evaluator);\n  }\n\n  if (!subCondList.length) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = makePrintable('Relational condition must have at least one operator.', 'Illegal condition:', exprOption);\n    }\n\n    throwError(errMsg);\n  }\n\n  var cond = new RelationalConditionInternal();\n  cond.valueGetterParam = valueGetterParam;\n  cond.valueParser = valueParser;\n  cond.getValue = getters.getValue;\n  cond.subCondList = subCondList;\n  return cond;\n}\n\nfunction isObjectNotArray(val) {\n  return isObject(val) && !isArrayLike(val);\n}\n\nvar ConditionalExpressionParsed = function () {\n  function ConditionalExpressionParsed(exprOption, getters) {\n    this._cond = parseOption(exprOption, getters);\n  }\n\n  ConditionalExpressionParsed.prototype.evaluate = function () {\n    return this._cond.evaluate();\n  };\n\n  return ConditionalExpressionParsed;\n}();\n\n;\nexport function parseConditionalExpression(exprOption, getters) {\n  return new ConditionalExpressionParsed(exprOption, getters);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parseConditionalExpression } from '../../util/conditionalExpression';\nimport { hasOwn, createHashMap } from 'zrender/lib/core/util';\nimport { makePrintable, throwError } from '../../util/log';\nexport var filterTransform = {\n  type: 'echarts:filter',\n  transform: function (params) {\n    var upstream = params.upstream;\n    var rawItem;\n    var condition = parseConditionalExpression(params.config, {\n      valueGetterAttrMap: createHashMap({\n        dimension: true\n      }),\n      prepareGetValue: function (exprOption) {\n        var errMsg = '';\n        var dimLoose = exprOption.dimension;\n\n        if (!hasOwn(exprOption, 'dimension')) {\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg = makePrintable('Relation condition must has prop \"dimension\" specified.', 'Illegal condition:', exprOption);\n          }\n\n          throwError(errMsg);\n        }\n\n        var dimInfo = upstream.getDimensionInfo(dimLoose);\n\n        if (!dimInfo) {\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg = makePrintable('Can not find dimension info via: ' + dimLoose + '.\\n', 'Existing dimensions: ', upstream.cloneAllDimensionInfo(), '.\\n', 'Illegal condition:', exprOption, '.\\n');\n          }\n\n          throwError(errMsg);\n        }\n\n        return {\n          dimIdx: dimInfo.index\n        };\n      },\n      getValue: function (param) {\n        return upstream.retrieveValueFromItem(rawItem, param.dimIdx);\n      }\n    });\n    var resultData = [];\n\n    for (var i = 0, len = upstream.count(); i < len; i++) {\n      rawItem = upstream.getRawDataItem(i);\n\n      if (condition.evaluate()) {\n        resultData.push(rawItem);\n      }\n    }\n\n    return {\n      data: resultData\n    };\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { SOURCE_FORMAT_ARRAY_ROWS, SOURCE_FORMAT_OBJECT_ROWS } from '../../util/types';\nimport { makePrintable, throwError } from '../../util/log';\nimport { each } from 'zrender/lib/core/util';\nimport { normalizeToArray } from '../../util/model';\nimport { getRawValueParser, SortOrderComparator } from '../../data/helper/dataValueHelper';\nvar sampleLog = '';\n\nif (process.env.NODE_ENV !== 'production') {\n  sampleLog = ['Valid config is like:', '{ dimension: \"age\", order: \"asc\" }', 'or [{ dimension: \"age\", order: \"asc\"], { dimension: \"date\", order: \"desc\" }]'].join(' ');\n}\n\nexport var sortTransform = {\n  type: 'echarts:sort',\n  transform: function (params) {\n    var upstream = params.upstream;\n    var config = params.config;\n    var errMsg = '';\n    var orderExprList = normalizeToArray(config);\n\n    if (!orderExprList.length) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'Empty `config` in sort transform.';\n      }\n\n      throwError(errMsg);\n    }\n\n    var orderDefList = [];\n    each(orderExprList, function (orderExpr) {\n      var dimLoose = orderExpr.dimension;\n      var order = orderExpr.order;\n      var parserName = orderExpr.parser;\n      var incomparable = orderExpr.incomparable;\n\n      if (dimLoose == null) {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = 'Sort transform config must has \"dimension\" specified.' + sampleLog;\n        }\n\n        throwError(errMsg);\n      }\n\n      if (order !== 'asc' && order !== 'desc') {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = 'Sort transform config must has \"order\" specified.' + sampleLog;\n        }\n\n        throwError(errMsg);\n      }\n\n      if (incomparable && incomparable !== 'min' && incomparable !== 'max') {\n        var errMsg_1 = '';\n\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg_1 = 'incomparable must be \"min\" or \"max\" rather than \"' + incomparable + '\".';\n        }\n\n        throwError(errMsg_1);\n      }\n\n      if (order !== 'asc' && order !== 'desc') {\n        var errMsg_2 = '';\n\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg_2 = 'order must be \"asc\" or \"desc\" rather than \"' + order + '\".';\n        }\n\n        throwError(errMsg_2);\n      }\n\n      var dimInfo = upstream.getDimensionInfo(dimLoose);\n\n      if (!dimInfo) {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = makePrintable('Can not find dimension info via: ' + dimLoose + '.\\n', 'Existing dimensions: ', upstream.cloneAllDimensionInfo(), '.\\n', 'Illegal config:', orderExpr, '.\\n');\n        }\n\n        throwError(errMsg);\n      }\n\n      var parser = parserName ? getRawValueParser(parserName) : null;\n\n      if (parserName && !parser) {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = makePrintable('Invalid parser name ' + parserName + '.\\n', 'Illegal config:', orderExpr, '.\\n');\n        }\n\n        throwError(errMsg);\n      }\n\n      orderDefList.push({\n        dimIdx: dimInfo.index,\n        parser: parser,\n        comparator: new SortOrderComparator(order, incomparable)\n      });\n    });\n    var sourceFormat = upstream.sourceFormat;\n\n    if (sourceFormat !== SOURCE_FORMAT_ARRAY_ROWS && sourceFormat !== SOURCE_FORMAT_OBJECT_ROWS) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'sourceFormat \"' + sourceFormat + '\" is not supported yet';\n      }\n\n      throwError(errMsg);\n    }\n\n    var resultData = [];\n\n    for (var i = 0, len = upstream.count(); i < len; i++) {\n      resultData.push(upstream.getRawDataItem(i));\n    }\n\n    resultData.sort(function (item0, item1) {\n      for (var i = 0; i < orderDefList.length; i++) {\n        var orderDef = orderDefList[i];\n        var val0 = upstream.retrieveValueFromItem(item0, orderDef.dimIdx);\n        var val1 = upstream.retrieveValueFromItem(item1, orderDef.dimIdx);\n\n        if (orderDef.parser) {\n          val0 = orderDef.parser(val0);\n          val1 = orderDef.parser(val1);\n        }\n\n        var result = orderDef.comparator.evaluate(val0, val1);\n\n        if (result !== 0) {\n          return result;\n        }\n      }\n\n      return 0;\n    });\n    return {\n      data: resultData\n    };\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { filterTransform } from './filterTransform';\nimport { sortTransform } from './sortTransform';\nexport function install(registers) {\n  registers.registerTransform(filterTransform);\n  registers.registerTransform(sortTransform);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\nimport ComponentView from '../../view/Component';\nimport { SERIES_LAYOUT_BY_COLUMN } from '../../util/types';\nimport { disableTransformOptionMerge, SourceManager } from '../../data/helper/sourceManager';\n\nvar DatasetModel = function (_super) {\n  __extends(DatasetModel, _super);\n\n  function DatasetModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'dataset';\n    return _this;\n  }\n\n  DatasetModel.prototype.init = function (option, parentModel, ecModel) {\n    _super.prototype.init.call(this, option, parentModel, ecModel);\n\n    this._sourceManager = new SourceManager(this);\n    disableTransformOptionMerge(this);\n  };\n\n  DatasetModel.prototype.mergeOption = function (newOption, ecModel) {\n    _super.prototype.mergeOption.call(this, newOption, ecModel);\n\n    disableTransformOptionMerge(this);\n  };\n\n  DatasetModel.prototype.optionUpdated = function () {\n    this._sourceManager.dirty();\n  };\n\n  DatasetModel.prototype.getSourceManager = function () {\n    return this._sourceManager;\n  };\n\n  DatasetModel.type = 'dataset';\n  DatasetModel.defaultOption = {\n    seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN\n  };\n  return DatasetModel;\n}(ComponentModel);\n\nexport { DatasetModel };\n\nvar DatasetView = function (_super) {\n  __extends(DatasetView, _super);\n\n  function DatasetView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'dataset';\n    return _this;\n  }\n\n  DatasetView.type = 'dataset';\n  return DatasetView;\n}(ComponentView);\n\nexport function install(registers) {\n  registers.registerComponentModel(DatasetModel);\n  registers.registerComponentView(DatasetView);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from './lib/extension';\nexport * from './lib/export/core';\nimport { SVGRenderer, CanvasRenderer } from './lib/export/renderers';\nimport { LineChart, BarChart, PieChart, ScatterChart, RadarChart, MapChart, TreeChart, TreemapChart, GraphChart, GaugeChart, FunnelChart, ParallelChart, SankeyChart, BoxplotChart, CandlestickChart, EffectScatterChart, LinesChart, HeatmapChart, PictorialBarChart, ThemeRiverChart, SunburstChart, CustomChart } from './lib/export/charts';\nimport { GridComponent, PolarComponent, GeoComponent, SingleAxisComponent, ParallelComponent, CalendarComponent, GraphicComponent, ToolboxComponent, TooltipComponent, AxisPointerComponent, BrushComponent, TitleComponent, TimelineComponent, MarkPointComponent, MarkLineComponent, MarkAreaComponent, LegendComponent, DataZoomComponent, DataZoomInsideComponent, DataZoomSliderComponent, VisualMapComponent, VisualMapContinuousComponent, VisualMapPiecewiseComponent, AriaComponent, DatasetComponent, TransformComponent } from './lib/export/components';\nuse([CanvasRenderer]);\nuse([SVGRenderer]);\nuse([LineChart, BarChart, PieChart, ScatterChart, RadarChart, MapChart, TreeChart, TreemapChart, GraphChart, GaugeChart, FunnelChart, ParallelChart, SankeyChart, BoxplotChart, CandlestickChart, EffectScatterChart, LinesChart, HeatmapChart, PictorialBarChart, ThemeRiverChart, SunburstChart, CustomChart]);\nuse(GridComponent);\nuse(PolarComponent);\nuse(GeoComponent);\nuse(SingleAxisComponent);\nuse(ParallelComponent);\nuse(CalendarComponent);\nuse(GraphicComponent);\nuse(ToolboxComponent);\nuse(TooltipComponent);\nuse(AxisPointerComponent);\nuse(BrushComponent);\nuse(TitleComponent);\nuse(TimelineComponent);\nuse(MarkPointComponent);\nuse(MarkLineComponent);\nuse(MarkAreaComponent);\nuse(LegendComponent);\nuse(DataZoomComponent);\nuse(DataZoomInsideComponent);\nuse(DataZoomSliderComponent);\nuse(VisualMapComponent);\nuse(VisualMapContinuousComponent);\nuse(VisualMapPiecewiseComponent);\nuse(AriaComponent);\nuse(TransformComponent);\nuse(DatasetComponent);"],"names":["clone","_calcOut","eventUtil.clientToLocal","dist","eventTool.stop","util.each","vec2.dist","create","copy","mul","scale","matrix.identity","matrix.create","matrix.mul","matrix.copy","matrix.invert","vector.applyTransform","matrix.rotate","easing","easingFuncs","lerp","color.parse","matrix.translate","matrix.scale","methods","timsort","util.indexOf","requestAnimationFrame","zrUtil.map","zrUtil.noop","zrUtil.each","zrUtil.indexOf","zrUtil.keys","HandlerProxy","zrUtil.guid","parsePercent","zrUtil.reduce","zrUtil.assert","zrUtil.createObject","zrUtil.extend","zrUtil.inherits","imageHelper.findExistImage","imageHelper.isImageReady","PRIMARY_STATES_KEYS","EPSILON","v2Create","isNotAroundZero","v2DistSquare","mathMin","mathMax","vec2.create","cubicExtrema","curve.cubicExtrema","cubicAt","curve.cubicAt","quadraticExtremum","curve.quadraticExtremum","quadraticAt","curve.quadraticAt","min","max","vec2.min","vec2.max","mathCos","mathSin","mathSqrt","PI2","dpr","containStroke","curve.cubicProjectPoint","CMD","curve.cubicRootAt","curve.quadraticRootAt","line.containStroke","cubic.containStroke","quadratic.containStroke","arc.containStroke","pathContain.containStroke","pathContain.contain","round","roundRectHelper.buildPath","color","colorTool.lift","v2ApplyTransform","PI","mathAbs","buildPath","roundSectorHelper.buildPath","distance","v2Distance","v2Min","v2Max","v2Clone","v2Sub","v2Scale","v2Add","polyHelper.buildPath","subPixelOptimizeOutputShape","vec2.normalize","minTv","maxTv","Displayble","pathTool.extendFromString","pathTool.createFromString","mergePath","pathTool.mergePath","subPixelOptimizeLine","subPixelOptimizeUtil.subPixelOptimizeLine","subPixelOptimizeRect","subPixelOptimizeUtil.subPixelOptimizeRect","subPixelOptimize","subPixelOptimizeUtil.subPixelOptimize","applyTransform","invert","zrUtil.merge","numberUtil.parseDate","defaults","zrUtil.defaults","zrUtil.isArray","Text","zrUtil.isString","normalizeCssArray","zrUtil.normalizeCssArray","zrUtil.trim","timeFormat","zrUtil.isStringSafe","zrUtil.isNumber","zrUtil.isObject","each","zrUtil.curry","formatUtil.normalizeCssArray","componentUtil.getUID","layout.fetchLayoutMode","layout.getLayoutParams","layout.mergeLayoutParam","componentUtil.enableSubTypeDefaulter","componentUtil.enableTopologicalTravel","modelUtil.normalizeToArray","modelUtil.mappingToExists","modelUtil.setComponentTypeToKeyInfo","modelUtil.isComponentIdInternal","modelUtil.convertOptionIdName","zrUtil.bind","isObject","modelUtil.TEXT_STYLE_OPTIONS","zrUtil.isTypedArray","set","compatStyle","inner","modelUtil.makeInner","modelUtil.defaultEmphasis","zrUtil.mixin","modelUtil.isNameSpecified","clazzUtil.enableClassExtend","clazzUtil.enableClassManagement","modelUtil.queryDataIndex","graphic.Group","graphic.Rect","graphic.Text","graphic.Arc","vector.dist","vector.lerp","graphic.Path","graphic.Circle","graphic.makeImage","graphic.makePath","assert","isFunction","zrUtil.isFunction","indexOf","version","zrender.init","zrUtil.clone","backwardCompat","zrUtil.setAsPrimitive","instances","zrUtil.createCanvas","graphic.Image","modelUtil.parseFinder","modelUtil.setAttribute","zrUtil.createHashMap","colorTool.parse","colorTool.stringify","graphic.isElementRemoved","init","zrUtil.isDom","dispose","modelUtil.getAttribute","zrUtil.$override","decal","loadingDefault","darkTheme","map","zrUtil.isArrayLike","zrUtil.slice","CoordinateSystem","numberUtil.round","numberUtil.nice","numberUtil.getPrecisionSafe","contain","normalize","scaleHelper.contain","scaleHelper.normalize","scaleHelper.scale","roundNumber","helper.contain","helper.normalize","helper.scale","helper.getIntervalPrecision","formatUtil.addCommas","helper.intervalScaleNiceTicks","getPrecisionSafe","mathFloor","mathPow","numberUtil.quantity","dataStack","axisHelper.createScaleByModel","axisHelper.niceScaleExtent","createTextStyle","innerCreateTextStyle","isAroundEqual","bbox.fromPoints","polygonContain.contain","vec2.applyTransform","zrUtil.filter","textContain.getBoundingRect","isAroundZero","adjustTextY","zrUtil.logError","colorTool.toHex","util.extend","util.logError","util.createCanvas","util.isObject","util.isGradientObject","util.isPatternObject","parseInt10","util.merge","install","graphic.updateProps","graphic.initProps","graphic.removeElement","SymbolClz","graphic.Sector","graphic.LinearGradient","isPointNull","modelUtil.interpolateRawValues","LineSeries","layoutPoints","Sausage","BarSeries","layout.getLayoutRect","RADIAN","graphic.Polyline","graphic.removeElementWithFadeOut","labelLayout","layout","zrUtil.retrieve","zrUtil.retrieve3","graphic.Line","matrixUtil.identity","matrixUtil.rotate","matrixUtil.mul","axisPointerModelHelper.fixValue","axisPointerModelHelper.getAxisPointerModel","cartesianAxisHelper.layout","graphic.groupTransition","installGridSimple","zrUtil.find","createSymbol","symbolUtil.createSymbol","graphic.Polygon","axisBuilderAttrs","RadarView","graphic.Ring","graphic.mergePath","numberUtil.parsePercent","installRadarComponent","echarts.registerAction","eventTool.isMiddleOrRightButtonOnMouseUpDown","interactionMutex.isTaken","points","parseGeoJson","fixTextCoord","fixGeoCoord","getBoundingRect","graphic.CompoundPath","roamHelper.updateViewOnPan","roamHelper.updateViewOnZoom","getViewRect","vector.copy","symbolNeedsDraw","graphic.BezierCurve","separation","sep","noop","helper.retrieveTargetInfo","helper.aboveViewRoot","layout.positionElement","layout.getAvailableSize","Group","Rect","animationUtil.createWrap","zrColor.fastLerp","zrColor.stringify","zrColor.modifyHSL","zrColor.modifyAlpha","zrColor.parse","helper.getPathToRoot","sort","vec2.clone","scaleAndAdd","vec2.scaleAndAdd","vec2.sub","vec2.len","vec2.set","vec2.copy","Line","vector.sub","vector.normalize","LineGroup","makeSeriesScope","curveTool.quadraticAt","vec2.distSquare","quadraticSubdivide","curveTool.quadraticSubdivide","edgeVisual","simpleLayout","circularLayout","forceLayout","createView","graphic.Point","opacityAccessPath","ParallelView","mathCeil","layoutUtil.getLayoutRect","restrict","graphic.applyTransform","numberUtil.asc","interactionMutex.take","interactionMutex.release","trigger","getTransform","graphic.getTransform","graphic.transformDirection","graphicUtil.clipPointsByRect","graphic.BoundingRect","brushHelper.makeRectPanelClipPath","brushHelper.makeRectIsTargetByCursor","brushHelper.makeLinearBrushOtherExtent","actionInfo","installParallelComponent","createGridClipShape","center","createNormalBox","createLarge","transInit","setLargeStyle","LargeArr","preprocessor","normalizeSymbolSize","matrix.clone","curveUtil.quadraticAt","quadraticDerivativeAt","curveUtil.quadraticDerivativeAt","Polyline","lineContain.containStroke","quadraticContain.containStroke","BAR_BORDER_WIDTH_QUERY","updateCommon","completeTreeValue","initChildren","dataToCoordSize","tmpArr","normalizeRadian","prepareCartesian2d","prepareGeo","prepareSingleAxis","preparePolar","prepareCalendar","graphicUtil.makePath","graphicUtil.Image","graphicUtil.Text","graphicUtil.Group","graphicUtil.getShapeClass","isPath","graphicUtil.initProps","graphicUtil.updateProps","updateZ","labelStyleHelper.createTextStyle","labelStyleHelper.createTextConfig","labelStyleHelper.getFont","graphicUtil.Path","bind","updateProps","axisPointerModelHelper.getAxisInfo","graphic.createIcon","throttleUtil.createOrUpdate","axisHelper.getAxisRawValue","viewHelper.buildElStyle","viewHelper.buildCartesianSingleLabelElOption","viewHelper.getTransformedPosition","viewHelper.makeLineShape","viewHelper.makeRectShape","globalListener.register","globalListener.unregister","modelHelper.makeKey","installSimple","installAxisPointer","pointerShapeBuilder","viewHelper.buildLabelElOption","viewHelper.makeSectorShape","getCoordSys","elementList","selfBuilderAttrs","axisElementBuilders","getSeriesStackId","getAxisKey","zrUtil.mergeAll","singleAxisHelper.layout","formatUtil.formatTplSimple","createEl","layoutUtil.positionElement","zrUtil.hasOwn","layoutUtil.LOCATION_PARAMS","layoutUtil.mergeLayoutParam","layoutUtil.copyLayoutParams","asc","numberUtil.linearMap","numberUtil.getPixelPrecision","SelectZoomModel","SelectZoomView","featureManager.getFeature","layoutBox","listComponentHelper.layout","listComponentHelper.makeBackground","trim","clear","history.clear","parseFinder","modelUtilParseFinder","handlers","history.push","history.pop","history.count","DataZoom","Restore","installDataZoomSelect","makeStyleCoord","makeDispatchAction","axisPointerViewHelper.getValueLabel","formatUtil.convertToColorString","formatUtil.formatTpl","visualSolution.createVisualMappings","visualSolution.applyVisual","visualSolution.replaceVisualOption","zrUtil.retrieve2","createScaleByModel","numberUtil.getPrecision","getAxisInfo","dataFilter","createList","markerHelper.dataTransform","markerHelper.dataFilter","markerHelper.dimValueGetter","markerHelper.getAxisInfo","markerHelper.numCalculate","dimValueGetter","isInifinity","colorUtil.modifyAlpha","curry","layoutUtil.box","mergeAndNormalizeLayoutParams","WH","XY","installLegendPlain","installLegendScroll","dispatchAction","roams.setViewInfoToCoordSysRecord","roams.disposeCoordSysRecordIfNeeded","throttle.createOrUpdate","throttle.clear","installDataZoomInside","installDataZoomSlider","defaultOption","mapVisual","isArray","linearMap","helper.getItemAlign","getCursor","modelUtil.compressBatches","helper.makeHighDownBatch","visualSolution.incrementalApplyVisual","has","installed","installCommon","layout.box","PiecewiseView","installVisualMapContinuous","installVisualMapPiecewise","CanvasRenderer","SVGRenderer","LineChart","BarChart","PieChart","ScatterChart","RadarChart","MapChart","TreeChart","TreemapChart","GraphChart","GaugeChart","FunnelChart","ParallelChart","SankeyChart","BoxplotChart","CandlestickChart","EffectScatterChart","LinesChart","HeatmapChart","PictorialBarChart","ThemeRiverChart","SunburstChart","CustomChart","GridComponent","PolarComponent","GeoComponent","SingleAxisComponent","ParallelComponent","CalendarComponent","GraphicComponent","ToolboxComponent","TooltipComponent","AxisPointerComponent","BrushComponent","TitleComponent","TimelineComponent","MarkPointComponent","MarkLineComponent","MarkAreaComponent","LegendComponent","DataZoomComponent","DataZoomInsideComponent","DataZoomSliderComponent","VisualMapComponent","VisualMapContinuousComponent","VisualMapPiecewiseComponent","AriaComponent","TransformComponent","DatasetComponent"],"mappings":"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,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC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"}
\ No newline at end of file
diff --git a/dist/echarts.min.js b/dist/echarts.min.js
index e32dec2..ddefdb6 100644
--- a/dist/echarts.min.js
+++ b/dist/echarts.min.js
@@ -32,21 +32,7 @@
     LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
     OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
     PERFORMANCE OF THIS SOFTWARE.
-    ***************************************************************************** */var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])})(t,n)};function n(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}var i=function(){return(i=Object.assign||function(t){for(var e,n=1,i=arguments.length;n<i;n++)for(var r in e=arguments[n])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)};function r(){for(var t=0,e=0,n=arguments.length;e<n;e++)t+=arguments[e].length;var i=Array(t),r=0;for(e=0;e<n;e++)for(var o=arguments[e],a=0,s=o.length;a<s;a++,r++)i[r]=o[a];return i}var o=function(){this.firefox=!1,this.ie=!1,this.edge=!1,this.newEdge=!1,this.weChat=!1},a=new function(){this.browser=new o,this.node=!1,this.wxa=!1,this.worker=!1,this.canvasSupported=!1,this.svgSupported=!1,this.touchEventsSupported=!1,this.pointerEventsSupported=!1,this.domSupported=!1};"object"==typeof wx&&"function"==typeof wx.getSystemInfoSync?(a.wxa=!0,a.canvasSupported=!0,a.touchEventsSupported=!0):"undefined"==typeof document&&"undefined"!=typeof self?(a.worker=!0,a.canvasSupported=!0):"undefined"==typeof navigator?(a.node=!0,a.canvasSupported=!0,a.svgSupported=!0):function(t,e){var n=e.browser,i=t.match(/Firefox\/([\d.]+)/),r=t.match(/MSIE\s([\d.]+)/)||t.match(/Trident\/.+?rv:(([\d.]+))/),o=t.match(/Edge?\/([\d.]+)/),a=/micromessenger/i.test(t);i&&(n.firefox=!0,n.version=i[1]);r&&(n.ie=!0,n.version=r[1]);o&&(n.edge=!0,n.version=o[1],n.newEdge=+o[1].split(".")[0]>18);a&&(n.weChat=!0);e.canvasSupported=!!document.createElement("canvas").getContext,e.svgSupported="undefined"!=typeof SVGRect,e.touchEventsSupported="ontouchstart"in window&&!n.ie&&!n.edge,e.pointerEventsSupported="onpointerdown"in window&&(n.edge||n.ie&&+n.version>=11),e.domSupported="undefined"!=typeof document}(navigator.userAgent,a);var s={"[object Function]":!0,"[object RegExp]":!0,"[object Date]":!0,"[object Error]":!0,"[object CanvasGradient]":!0,"[object CanvasPattern]":!0,"[object Image]":!0,"[object Canvas]":!0},l={"[object Int8Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Int16Array]":!0,"[object Uint16Array]":!0,"[object Int32Array]":!0,"[object Uint32Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0},u=Object.prototype.toString,h=Array.prototype,c=h.forEach,p=h.filter,d=h.slice,f=h.map,g=function(){}.constructor,y=g?g.prototype:null,v={};function m(t,e){v[t]=e}var _=2311;function x(){return _++}function b(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];"undefined"!=typeof console&&console.error.apply(console,t)}function w(t){if(null==t||"object"!=typeof t)return t;var e=t,n=u.call(t);if("[object Array]"===n){if(!lt(t)){e=[];for(var i=0,r=t.length;i<r;i++)e[i]=w(t[i])}}else if(l[n]){if(!lt(t)){var o=t.constructor;if(o.from)e=o.from(t);else{e=new o(t.length);for(i=0,r=t.length;i<r;i++)e[i]=w(t[i])}}}else if(!s[n]&&!lt(t)&&!j(t))for(var a in e={},t)t.hasOwnProperty(a)&&(e[a]=w(t[a]));return e}function S(t,e,n){if(!X(e)||!X(t))return n?w(e):t;for(var i in e)if(e.hasOwnProperty(i)){var r=t[i],o=e[i];!X(o)||!X(r)||F(o)||F(r)||j(o)||j(r)||U(o)||U(r)||lt(o)||lt(r)?!n&&i in t||(t[i]=w(e[i])):S(r,o,n)}return t}function M(t,e){for(var n=t[0],i=1,r=t.length;i<r;i++)n=S(n,t[i],e);return n}function I(t,e){if(Object.assign)Object.assign(t,e);else for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}function T(t,e,n){for(var i=z(e),r=0;r<i.length;r++){var o=i[r];(n?null!=e[o]:null==t[o])&&(t[o]=e[o])}return t}var C=function(){return v.createCanvas()};function A(t,e){if(t){if(t.indexOf)return t.indexOf(e);for(var n=0,i=t.length;n<i;n++)if(t[n]===e)return n}return-1}function D(t,e){var n=t.prototype;function i(){}for(var r in i.prototype=e.prototype,t.prototype=new i,n)n.hasOwnProperty(r)&&(t.prototype[r]=n[r]);t.prototype.constructor=t,t.superClass=e}function L(t,e,n){if(t="prototype"in t?t.prototype:t,e="prototype"in e?e.prototype:e,Object.getOwnPropertyNames)for(var i=Object.getOwnPropertyNames(e),r=0;r<i.length;r++){var o=i[r];"constructor"!==o&&(n?null!=e[o]:null==t[o])&&(t[o]=e[o])}else T(t,e,n)}function k(t){return!!t&&("string"!=typeof t&&"number"==typeof t.length)}function P(t,e,n){if(t&&e)if(t.forEach&&t.forEach===c)t.forEach(e,n);else if(t.length===+t.length)for(var i=0,r=t.length;i<r;i++)e.call(n,t[i],i,t);else for(var o in t)t.hasOwnProperty(o)&&e.call(n,t[o],o,t)}function O(t,e,n){if(!t)return[];if(!e)return nt(t);if(t.map&&t.map===f)return t.map(e,n);for(var i=[],r=0,o=t.length;r<o;r++)i.push(e.call(n,t[r],r,t));return i}function R(t,e,n,i){if(t&&e){for(var r=0,o=t.length;r<o;r++)n=e.call(i,n,t[r],r,t);return n}}function N(t,e,n){if(!t)return[];if(!e)return nt(t);if(t.filter&&t.filter===p)return t.filter(e,n);for(var i=[],r=0,o=t.length;r<o;r++)e.call(n,t[r],r,t)&&i.push(t[r]);return i}function E(t,e,n){if(t&&e)for(var i=0,r=t.length;i<r;i++)if(e.call(n,t[i],i,t))return t[i]}function z(t){if(!t)return[];if(Object.keys)return Object.keys(t);var e=[];for(var n in t)t.hasOwnProperty(n)&&e.push(n);return e}v.createCanvas=function(){return document.createElement("canvas")};var B=y&&G(y.bind)?y.call.bind(y.bind):function(t,e){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];return function(){return t.apply(e,n.concat(d.call(arguments)))}};function V(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return function(){return t.apply(this,e.concat(d.call(arguments)))}}function F(t){return Array.isArray?Array.isArray(t):"[object Array]"===u.call(t)}function G(t){return"function"==typeof t}function H(t){return"string"==typeof t}function W(t){return"[object String]"===u.call(t)}function Y(t){return"number"==typeof t}function X(t){var e=typeof t;return"function"===e||!!t&&"object"===e}function U(t){return!!s[u.call(t)]}function Z(t){return!!l[u.call(t)]}function j(t){return"object"==typeof t&&"number"==typeof t.nodeType&&"object"==typeof t.ownerDocument}function q(t){return null!=t.colorStops}function K(t){return null!=t.image}function $(t){return"[object RegExp]"===u.call(t)}function J(t){return t!=t}function Q(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];for(var n=0,i=t.length;n<i;n++)if(null!=t[n])return t[n]}function tt(t,e){return null!=t?t:e}function et(t,e,n){return null!=t?t:null!=e?e:n}function nt(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return d.apply(t,e)}function it(t){if("number"==typeof t)return[t,t,t,t];var e=t.length;return 2===e?[t[0],t[1],t[0],t[1]]:3===e?[t[0],t[1],t[2],t[1]]:t}function rt(t,e){if(!t)throw new Error(e)}function ot(t){return null==t?null:"function"==typeof t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}var at="__ec_primitive__";function st(t){t[at]=!0}function lt(t){return t[at]}var ut=function(){function t(e){this.data={};var n=F(e);this.data={};var i=this;function r(t,e){n?i.set(t,e):i.set(e,t)}e instanceof t?e.each(r):e&&P(e,r)}return t.prototype.get=function(t){return this.data.hasOwnProperty(t)?this.data[t]:null},t.prototype.set=function(t,e){return this.data[t]=e},t.prototype.each=function(t,e){for(var n in this.data)this.data.hasOwnProperty(n)&&t.call(e,this.data[n],n)},t.prototype.keys=function(){return z(this.data)},t.prototype.removeKey=function(t){delete this.data[t]},t}();function ht(t){return new ut(t)}function ct(t,e){for(var n=new t.constructor(t.length+e.length),i=0;i<t.length;i++)n[i]=t[i];var r=t.length;for(i=0;i<e.length;i++)n[i+r]=e[i];return n}function pt(t,e){var n;if(Object.create)n=Object.create(t);else{var i=function(){};i.prototype=t,n=new i}return e&&I(n,e),n}function dt(t,e){return t.hasOwnProperty(e)}function ft(){}var gt=Object.freeze({__proto__:null,$override:m,guid:x,logError:b,clone:w,merge:S,mergeAll:M,extend:I,defaults:T,createCanvas:C,indexOf:A,inherits:D,mixin:L,isArrayLike:k,each:P,map:O,reduce:R,filter:N,find:E,keys:z,bind:B,curry:V,isArray:F,isFunction:G,isString:H,isStringSafe:W,isNumber:Y,isObject:X,isBuiltInObject:U,isTypedArray:Z,isDom:j,isGradientObject:q,isPatternObject:K,isRegExp:$,eqNaN:J,retrieve:Q,retrieve2:tt,retrieve3:et,slice:nt,normalizeCssArray:it,assert:rt,trim:ot,setAsPrimitive:st,isPrimitive:lt,HashMap:ut,createHashMap:ht,concatArray:ct,createObject:pt,hasOwn:dt,noop:ft}),yt=function(t,e){return(yt=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])})(t,e)};
-/*! *****************************************************************************
-    Copyright (c) Microsoft Corporation.
-
-    Permission to use, copy, modify, and/or distribute this software for any
-    purpose with or without fee is hereby granted.
-
-    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-    REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-    AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-    INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-    LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-    OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-    PERFORMANCE OF THIS SOFTWARE.
-    ***************************************************************************** */function vt(t,e){function n(){this.constructor=t}yt(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}function mt(t,e){return null==t&&(t=0),null==e&&(e=0),[t,e]}function _t(t,e){return t[0]=e[0],t[1]=e[1],t}function xt(t){return[t[0],t[1]]}function bt(t,e,n){return t[0]=e,t[1]=n,t}function wt(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t}function St(t,e,n,i){return t[0]=e[0]+n[0]*i,t[1]=e[1]+n[1]*i,t}function Mt(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t}function It(t){return Math.sqrt(Ct(t))}var Tt=It;function Ct(t){return t[0]*t[0]+t[1]*t[1]}var At=Ct;function Dt(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t}function Lt(t,e){var n=It(e);return 0===n?(t[0]=0,t[1]=0):(t[0]=e[0]/n,t[1]=e[1]/n),t}function kt(t,e){return Math.sqrt((t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1]))}var Pt=kt;function Ot(t,e){return(t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1])}var Rt=Ot;function Nt(t,e,n,i){return t[0]=e[0]+i*(n[0]-e[0]),t[1]=e[1]+i*(n[1]-e[1]),t}function Et(t,e,n){var i=e[0],r=e[1];return t[0]=n[0]*i+n[2]*r+n[4],t[1]=n[1]*i+n[3]*r+n[5],t}function zt(t,e,n){return t[0]=Math.min(e[0],n[0]),t[1]=Math.min(e[1],n[1]),t}function Bt(t,e,n){return t[0]=Math.max(e[0],n[0]),t[1]=Math.max(e[1],n[1]),t}var Vt=Object.freeze({__proto__:null,create:mt,copy:_t,clone:xt,set:bt,add:wt,scaleAndAdd:St,sub:Mt,len:It,length:Tt,lenSquare:Ct,lengthSquare:At,mul:function(t,e,n){return t[0]=e[0]*n[0],t[1]=e[1]*n[1],t},div:function(t,e,n){return t[0]=e[0]/n[0],t[1]=e[1]/n[1],t},dot:function(t,e){return t[0]*e[0]+t[1]*e[1]},scale:Dt,normalize:Lt,distance:kt,dist:Pt,distanceSquare:Ot,distSquare:Rt,negate:function(t,e){return t[0]=-e[0],t[1]=-e[1],t},lerp:Nt,applyTransform:Et,min:zt,max:Bt}),Ft=function(t,e){this.target=t,this.topTarget=e&&e.topTarget},Gt=function(){function t(t){this.handler=t,t.on("mousedown",this._dragStart,this),t.on("mousemove",this._drag,this),t.on("mouseup",this._dragEnd,this)}return t.prototype._dragStart=function(t){for(var e=t.target;e&&!e.draggable;)e=e.parent;e&&(this._draggingTarget=e,e.dragging=!0,this._x=t.offsetX,this._y=t.offsetY,this.handler.dispatchToElement(new Ft(e,t),"dragstart",t.event))},t.prototype._drag=function(t){var e=this._draggingTarget;if(e){var n=t.offsetX,i=t.offsetY,r=n-this._x,o=i-this._y;this._x=n,this._y=i,e.drift(r,o,t),this.handler.dispatchToElement(new Ft(e,t),"drag",t.event);var a=this.handler.findHover(n,i,e).target,s=this._dropTarget;this._dropTarget=a,e!==a&&(s&&a!==s&&this.handler.dispatchToElement(new Ft(s,t),"dragleave",t.event),a&&a!==s&&this.handler.dispatchToElement(new Ft(a,t),"dragenter",t.event))}},t.prototype._dragEnd=function(t){var e=this._draggingTarget;e&&(e.dragging=!1),this.handler.dispatchToElement(new Ft(e,t),"dragend",t.event),this._dropTarget&&this.handler.dispatchToElement(new Ft(this._dropTarget,t),"drop",t.event),this._draggingTarget=null,this._dropTarget=null},t}(),Ht=function(){function t(t){t&&(this._$eventProcessor=t)}return t.prototype.on=function(t,e,n,i){this._$handlers||(this._$handlers={});var r=this._$handlers;if("function"==typeof e&&(i=n,n=e,e=null),!n||!t)return this;var o=this._$eventProcessor;null!=e&&o&&o.normalizeQuery&&(e=o.normalizeQuery(e)),r[t]||(r[t]=[]);for(var a=0;a<r[t].length;a++)if(r[t][a].h===n)return this;var s={h:n,query:e,ctx:i||this,callAtLast:n.zrEventfulCallAtLast},l=r[t].length-1,u=r[t][l];return u&&u.callAtLast?r[t].splice(l,0,s):r[t].push(s),this},t.prototype.isSilent=function(t){var e=this._$handlers;return!e||!e[t]||!e[t].length},t.prototype.off=function(t,e){var n=this._$handlers;if(!n)return this;if(!t)return this._$handlers={},this;if(e){if(n[t]){for(var i=[],r=0,o=n[t].length;r<o;r++)n[t][r].h!==e&&i.push(n[t][r]);n[t]=i}n[t]&&0===n[t].length&&delete n[t]}else delete n[t];return this},t.prototype.trigger=function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];if(!this._$handlers)return this;var i=this._$handlers[t],r=this._$eventProcessor;if(i)for(var o=e.length,a=i.length,s=0;s<a;s++){var l=i[s];if(!r||!r.filter||null==l.query||r.filter(t,l.query))switch(o){case 0:l.h.call(l.ctx);break;case 1:l.h.call(l.ctx,e[0]);break;case 2:l.h.call(l.ctx,e[0],e[1]);break;default:l.h.apply(l.ctx,e)}}return r&&r.afterTrigger&&r.afterTrigger(t),this},t.prototype.triggerWithContext=function(t){if(!this._$handlers)return this;var e=this._$handlers[t],n=this._$eventProcessor;if(e)for(var i=arguments,r=i.length,o=i[r-1],a=e.length,s=0;s<a;s++){var l=e[s];if(!n||!n.filter||null==l.query||n.filter(t,l.query))switch(r){case 0:l.h.call(o);break;case 1:l.h.call(o,i[0]);break;case 2:l.h.call(o,i[0],i[1]);break;default:l.h.apply(o,i.slice(1,r-1))}}return n&&n.afterTrigger&&n.afterTrigger(t),this},t}(),Wt=Math.log(2);function Yt(t,e,n,i,r,o){var a=i+"-"+r,s=t.length;if(o.hasOwnProperty(a))return o[a];if(1===e){var l=Math.round(Math.log((1<<s)-1&~r)/Wt);return t[n][l]}for(var u=i|1<<n,h=n+1;i&1<<h;)h++;for(var c=0,p=0,d=0;p<s;p++){var f=1<<p;f&r||(c+=(d%2?-1:1)*t[n][p]*Yt(t,e-1,h,u,r|f,o),d++)}return o[a]=c,c}function Xt(t,e){var n=[[t[0],t[1],1,0,0,0,-e[0]*t[0],-e[0]*t[1]],[0,0,0,t[0],t[1],1,-e[1]*t[0],-e[1]*t[1]],[t[2],t[3],1,0,0,0,-e[2]*t[2],-e[2]*t[3]],[0,0,0,t[2],t[3],1,-e[3]*t[2],-e[3]*t[3]],[t[4],t[5],1,0,0,0,-e[4]*t[4],-e[4]*t[5]],[0,0,0,t[4],t[5],1,-e[5]*t[4],-e[5]*t[5]],[t[6],t[7],1,0,0,0,-e[6]*t[6],-e[6]*t[7]],[0,0,0,t[6],t[7],1,-e[7]*t[6],-e[7]*t[7]]],i={},r=Yt(n,8,0,0,0,i);if(0!==r){for(var o=[],a=0;a<8;a++)for(var s=0;s<8;s++)null==o[s]&&(o[s]=0),o[s]+=((a+s)%2?-1:1)*Yt(n,7,0===a?1:0,1<<a,1<<s,i)/r*e[a];return function(t,e,n){var i=e*o[6]+n*o[7]+1;t[0]=(e*o[0]+n*o[1]+o[2])/i,t[1]=(e*o[3]+n*o[4]+o[5])/i}}}var Ut=[];function Zt(t,e,n,i,r){if(e.getBoundingClientRect&&a.domSupported&&!jt(e)){var o=e.___zrEVENTSAVED||(e.___zrEVENTSAVED={}),s=function(t,e,n){for(var i=n?"invTrans":"trans",r=e[i],o=e.srcCoords,a=[],s=[],l=!0,u=0;u<4;u++){var h=t[u].getBoundingClientRect(),c=2*u,p=h.left,d=h.top;a.push(p,d),l=l&&o&&p===o[c]&&d===o[c+1],s.push(t[u].offsetLeft,t[u].offsetTop)}return l&&r?r:(e.srcCoords=a,e[i]=n?Xt(s,a):Xt(a,s))}(function(t,e){var n=e.markers;if(n)return n;n=e.markers=[];for(var i=["left","right"],r=["top","bottom"],o=0;o<4;o++){var a=document.createElement("div"),s=o%2,l=(o>>1)%2;a.style.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",i[s]+":0",r[l]+":0",i[1-s]+":auto",r[1-l]+":auto",""].join("!important;"),t.appendChild(a),n.push(a)}return n}(e,o),o,r);if(s)return s(t,n,i),!0}return!1}function jt(t){return"CANVAS"===t.nodeName.toUpperCase()}var qt="undefined"!=typeof window&&!!window.addEventListener,Kt=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,$t=[];function Jt(t,e,n,i){return n=n||{},i||!a.canvasSupported?Qt(t,e,n):a.browser.firefox&&null!=e.layerX&&e.layerX!==e.offsetX?(n.zrX=e.layerX,n.zrY=e.layerY):null!=e.offsetX?(n.zrX=e.offsetX,n.zrY=e.offsetY):Qt(t,e,n),n}function Qt(t,e,n){if(a.domSupported&&t.getBoundingClientRect){var i=e.clientX,r=e.clientY;if(jt(t)){var o=t.getBoundingClientRect();return n.zrX=i-o.left,void(n.zrY=r-o.top)}if(Zt($t,t,i,r))return n.zrX=$t[0],void(n.zrY=$t[1])}n.zrX=n.zrY=0}function te(t){return t||window.event}function ee(t,e,n){if(null!=(e=te(e)).zrX)return e;var i=e.type;if(i&&i.indexOf("touch")>=0){var r="touchend"!==i?e.targetTouches[0]:e.changedTouches[0];r&&Jt(t,r,e,n)}else{Jt(t,e,e,n);var o=function(t){var e=t.wheelDelta;if(e)return e;var n=t.deltaX,i=t.deltaY;if(null==n||null==i)return e;return 3*(0!==i?Math.abs(i):Math.abs(n))*(i>0?-1:i<0?1:n>0?-1:1)}(e);e.zrDelta=o?o/120:-(e.detail||0)/3}var a=e.button;return null==e.which&&void 0!==a&&Kt.test(e.type)&&(e.which=1&a?1:2&a?3:4&a?2:0),e}function ne(t,e,n,i){qt?t.addEventListener(e,n,i):t.attachEvent("on"+e,n)}var ie=qt?function(t){t.preventDefault(),t.stopPropagation(),t.cancelBubble=!0}:function(t){t.returnValue=!1,t.cancelBubble=!0};function re(t){return 2===t.which||3===t.which}var oe=function(){function t(){this._track=[]}return t.prototype.recognize=function(t,e,n){return this._doTrack(t,e,n),this._recognize(t)},t.prototype.clear=function(){return this._track.length=0,this},t.prototype._doTrack=function(t,e,n){var i=t.touches;if(i){for(var r={points:[],touches:[],target:e,event:t},o=0,a=i.length;o<a;o++){var s=i[o],l=Jt(n,s,{});r.points.push([l.zrX,l.zrY]),r.touches.push(s)}this._track.push(r)}},t.prototype._recognize=function(t){for(var e in se)if(se.hasOwnProperty(e)){var n=se[e](this._track,t);if(n)return n}},t}();function ae(t){var e=t[1][0]-t[0][0],n=t[1][1]-t[0][1];return Math.sqrt(e*e+n*n)}var se={pinch:function(t,e){var n=t.length;if(n){var i,r=(t[n-1]||{}).points,o=(t[n-2]||{}).points||r;if(o&&o.length>1&&r&&r.length>1){var a=ae(r)/ae(o);!isFinite(a)&&(a=1),e.pinchScale=a;var s=[((i=r)[0][0]+i[1][0])/2,(i[0][1]+i[1][1])/2];return e.pinchX=s[0],e.pinchY=s[1],{type:"pinch",target:t[0].target,event:e}}}}},le="silent";function ue(){ie(this.event)}var he=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.handler=null,e}return vt(e,t),e.prototype.dispose=function(){},e.prototype.setCursor=function(){},e}(Ht),ce=function(t,e){this.x=t,this.y=e},pe=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],de=function(t){function e(e,n,i,r){var o=t.call(this)||this;return o._hovered=new ce(0,0),o.storage=e,o.painter=n,o.painterRoot=r,i=i||new he,o.proxy=null,o.setHandlerProxy(i),o._draggingMgr=new Gt(o),o}return vt(e,t),e.prototype.setHandlerProxy=function(t){this.proxy&&this.proxy.dispose(),t&&(P(pe,(function(e){t.on&&t.on(e,this[e],this)}),this),t.handler=this),this.proxy=t},e.prototype.mousemove=function(t){var e=t.zrX,n=t.zrY,i=ge(this,e,n),r=this._hovered,o=r.target;o&&!o.__zr&&(o=(r=this.findHover(r.x,r.y)).target);var a=this._hovered=i?new ce(e,n):this.findHover(e,n),s=a.target,l=this.proxy;l.setCursor&&l.setCursor(s?s.cursor:"default"),o&&s!==o&&this.dispatchToElement(r,"mouseout",t),this.dispatchToElement(a,"mousemove",t),s&&s!==o&&this.dispatchToElement(a,"mouseover",t)},e.prototype.mouseout=function(t){var e=t.zrEventControl;"only_globalout"!==e&&this.dispatchToElement(this._hovered,"mouseout",t),"no_globalout"!==e&&this.trigger("globalout",{type:"globalout",event:t})},e.prototype.resize=function(){this._hovered=new ce(0,0)},e.prototype.dispatch=function(t,e){var n=this[t];n&&n.call(this,e)},e.prototype.dispose=function(){this.proxy.dispose(),this.storage=null,this.proxy=null,this.painter=null},e.prototype.setCursorStyle=function(t){var e=this.proxy;e.setCursor&&e.setCursor(t)},e.prototype.dispatchToElement=function(t,e,n){var i=(t=t||{}).target;if(!i||!i.silent){for(var r="on"+e,o=function(t,e,n){return{type:t,event:n,target:e.target,topTarget:e.topTarget,cancelBubble:!1,offsetX:n.zrX,offsetY:n.zrY,gestureEvent:n.gestureEvent,pinchX:n.pinchX,pinchY:n.pinchY,pinchScale:n.pinchScale,wheelDelta:n.zrDelta,zrByTouch:n.zrByTouch,which:n.which,stop:ue}}(e,t,n);i&&(i[r]&&(o.cancelBubble=!!i[r].call(i,o)),i.trigger(e,o),i=i.__hostTarget?i.__hostTarget:i.parent,!o.cancelBubble););o.cancelBubble||(this.trigger(e,o),this.painter&&this.painter.eachOtherLayer&&this.painter.eachOtherLayer((function(t){"function"==typeof t[r]&&t[r].call(t,o),t.trigger&&t.trigger(e,o)})))}},e.prototype.findHover=function(t,e,n){for(var i=this.storage.getDisplayList(),r=new ce(t,e),o=i.length-1;o>=0;o--){var a=void 0;if(i[o]!==n&&!i[o].ignore&&(a=fe(i[o],t,e))&&(!r.topTarget&&(r.topTarget=i[o]),a!==le)){r.target=i[o];break}}return r},e.prototype.processGesture=function(t,e){this._gestureMgr||(this._gestureMgr=new oe);var n=this._gestureMgr;"start"===e&&n.clear();var i=n.recognize(t,this.findHover(t.zrX,t.zrY,null).target,this.proxy.dom);if("end"===e&&n.clear(),i){var r=i.type;t.gestureEvent=r;var o=new ce;o.target=i.target,this.dispatchToElement(o,r,i.event)}},e}(Ht);function fe(t,e,n){if(t[t.rectHover?"rectContain":"contain"](e,n)){for(var i=t,r=void 0,o=!1;i;){if(i.ignoreClip&&(o=!0),!o){var a=i.getClipPath();if(a&&!a.contain(e,n))return!1;i.silent&&(r=!0)}var s=i.__hostTarget;i=s||i.parent}return!r||le}return!1}function ge(t,e,n){var i=t.painter;return e<0||e>i.getWidth()||n<0||n>i.getHeight()}function ye(){return[1,0,0,1,0,0]}function ve(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t}function me(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function _e(t,e,n){var i=e[0]*n[0]+e[2]*n[1],r=e[1]*n[0]+e[3]*n[1],o=e[0]*n[2]+e[2]*n[3],a=e[1]*n[2]+e[3]*n[3],s=e[0]*n[4]+e[2]*n[5]+e[4],l=e[1]*n[4]+e[3]*n[5]+e[5];return t[0]=i,t[1]=r,t[2]=o,t[3]=a,t[4]=s,t[5]=l,t}function xe(t,e,n){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4]+n[0],t[5]=e[5]+n[1],t}function be(t,e,n){var i=e[0],r=e[2],o=e[4],a=e[1],s=e[3],l=e[5],u=Math.sin(n),h=Math.cos(n);return t[0]=i*h+a*u,t[1]=-i*u+a*h,t[2]=r*h+s*u,t[3]=-r*u+h*s,t[4]=h*o+u*l,t[5]=h*l-u*o,t}function we(t,e,n){var i=n[0],r=n[1];return t[0]=e[0]*i,t[1]=e[1]*r,t[2]=e[2]*i,t[3]=e[3]*r,t[4]=e[4]*i,t[5]=e[5]*r,t}function Se(t,e){var n=e[0],i=e[2],r=e[4],o=e[1],a=e[3],s=e[5],l=n*a-o*i;return l?(l=1/l,t[0]=a*l,t[1]=-o*l,t[2]=-i*l,t[3]=n*l,t[4]=(i*s-a*r)*l,t[5]=(o*r-n*s)*l,t):null}function Me(t){var e=[1,0,0,1,0,0];return me(e,t),e}P(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],(function(t){de.prototype[t]=function(e){var n,i,r=e.zrX,o=e.zrY,a=ge(this,r,o);if("mouseup"===t&&a||(i=(n=this.findHover(r,o)).target),"mousedown"===t)this._downEl=i,this._downPoint=[e.zrX,e.zrY],this._upEl=i;else if("mouseup"===t)this._upEl=i;else if("click"===t){if(this._downEl!==this._upEl||!this._downPoint||Pt(this._downPoint,[e.zrX,e.zrY])>4)return;this._downPoint=null}this.dispatchToElement(n,t,e)}}));var Ie=Object.freeze({__proto__:null,create:ye,identity:ve,copy:me,mul:_e,translate:xe,rotate:be,scale:we,invert:Se,clone:Me}),Te=ve,Ce=5e-5;function Ae(t){return t>Ce||t<-5e-5}var De=[],Le=[],ke=[1,0,0,1,0,0],Pe=Math.abs,Oe=function(){function t(){}return t.prototype.setPosition=function(t){this.x=t[0],this.y=t[1]},t.prototype.setScale=function(t){this.scaleX=t[0],this.scaleY=t[1]},t.prototype.setOrigin=function(t){this.originX=t[0],this.originY=t[1]},t.prototype.needLocalTransform=function(){return Ae(this.rotation)||Ae(this.x)||Ae(this.y)||Ae(this.scaleX-1)||Ae(this.scaleY-1)},t.prototype.updateTransform=function(){var t=this.parent,e=t&&t.transform,n=this.needLocalTransform(),i=this.transform;n||e?(i=i||[1,0,0,1,0,0],n?this.getLocalTransform(i):Te(i),e&&(n?_e(i,t.transform,i):me(i,t.transform)),this.transform=i,this._resolveGlobalScaleRatio(i)):i&&Te(i)},t.prototype._resolveGlobalScaleRatio=function(t){var e=this.globalScaleRatio;if(null!=e&&1!==e){this.getGlobalScale(De);var n=De[0]<0?-1:1,i=De[1]<0?-1:1,r=((De[0]-n)*e+n)/De[0]||0,o=((De[1]-i)*e+i)/De[1]||0;t[0]*=r,t[1]*=r,t[2]*=o,t[3]*=o}this.invTransform=this.invTransform||[1,0,0,1,0,0],Se(this.invTransform,t)},t.prototype.getLocalTransform=function(e){return t.getLocalTransform(this,e)},t.prototype.getComputedTransform=function(){for(var t=this,e=[];t;)e.push(t),t=t.parent;for(;t=e.pop();)t.updateTransform();return this.transform},t.prototype.setLocalTransform=function(t){if(t){var e=t[0]*t[0]+t[1]*t[1],n=t[2]*t[2]+t[3]*t[3];Ae(e-1)&&(e=Math.sqrt(e)),Ae(n-1)&&(n=Math.sqrt(n)),t[0]<0&&(e=-e),t[3]<0&&(n=-n),this.rotation=Math.atan2(-t[1]/n,t[0]/e),e<0&&n<0&&(this.rotation+=Math.PI,e=-e,n=-n),this.x=t[4],this.y=t[5],this.scaleX=e,this.scaleY=n}},t.prototype.decomposeTransform=function(){if(this.transform){var t=this.parent,e=this.transform;t&&t.transform&&(_e(Le,t.invTransform,e),e=Le);var n=this.originX,i=this.originY;(n||i)&&(ke[4]=n,ke[5]=i,_e(Le,e,ke),Le[4]-=n,Le[5]-=i,e=Le),this.setLocalTransform(e)}},t.prototype.getGlobalScale=function(t){var e=this.transform;return t=t||[],e?(t[0]=Math.sqrt(e[0]*e[0]+e[1]*e[1]),t[1]=Math.sqrt(e[2]*e[2]+e[3]*e[3]),e[0]<0&&(t[0]=-t[0]),e[3]<0&&(t[1]=-t[1]),t):(t[0]=1,t[1]=1,t)},t.prototype.transformCoordToLocal=function(t,e){var n=[t,e],i=this.invTransform;return i&&Et(n,n,i),n},t.prototype.transformCoordToGlobal=function(t,e){var n=[t,e],i=this.transform;return i&&Et(n,n,i),n},t.prototype.getLineScale=function(){var t=this.transform;return t&&Pe(t[0]-1)>1e-10&&Pe(t[3]-1)>1e-10?Math.sqrt(Pe(t[0]*t[3]-t[2]*t[1])):1},t.getLocalTransform=function(t,e){Te(e=e||[]);var n=t.originX||0,i=t.originY||0,r=t.scaleX,o=t.scaleY,a=t.rotation||0,s=t.x,l=t.y;return e[4]-=n,e[5]-=i,e[0]*=r,e[1]*=o,e[2]*=r,e[3]*=o,e[4]*=r,e[5]*=o,a&&be(e,e,a),e[4]+=n,e[5]+=i,e[4]+=s,e[5]+=l,e},t.initDefaultProps=function(){var e=t.prototype;e.x=0,e.y=0,e.scaleX=1,e.scaleY=1,e.originX=0,e.originY=0,e.rotation=0,e.globalScaleRatio=1}(),t}(),Re={linear:function(t){return t},quadraticIn:function(t){return t*t},quadraticOut:function(t){return t*(2-t)},quadraticInOut:function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)},cubicIn:function(t){return t*t*t},cubicOut:function(t){return--t*t*t+1},cubicInOut:function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},quarticIn:function(t){return t*t*t*t},quarticOut:function(t){return 1- --t*t*t*t},quarticInOut:function(t){return(t*=2)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},quinticIn:function(t){return t*t*t*t*t},quinticOut:function(t){return--t*t*t*t*t+1},quinticInOut:function(t){return(t*=2)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},sinusoidalIn:function(t){return 1-Math.cos(t*Math.PI/2)},sinusoidalOut:function(t){return Math.sin(t*Math.PI/2)},sinusoidalInOut:function(t){return.5*(1-Math.cos(Math.PI*t))},exponentialIn:function(t){return 0===t?0:Math.pow(1024,t-1)},exponentialOut:function(t){return 1===t?1:1-Math.pow(2,-10*t)},exponentialInOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(2-Math.pow(2,-10*(t-1)))},circularIn:function(t){return 1-Math.sqrt(1-t*t)},circularOut:function(t){return Math.sqrt(1- --t*t)},circularInOut:function(t){return(t*=2)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},elasticIn:function(t){var e,n=.1;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=.4*Math.asin(1/n)/(2*Math.PI),-n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/.4))},elasticOut:function(t){var e,n=.1;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=.4*Math.asin(1/n)/(2*Math.PI),n*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/.4)+1)},elasticInOut:function(t){var e,n=.1,i=.4;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=i*Math.asin(1/n)/(2*Math.PI),(t*=2)<1?n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*-.5:n*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*.5+1)},backIn:function(t){var e=1.70158;return t*t*((e+1)*t-e)},backOut:function(t){var e=1.70158;return--t*t*((e+1)*t+e)+1},backInOut:function(t){var e=2.5949095;return(t*=2)<1?t*t*((e+1)*t-e)*.5:.5*((t-=2)*t*((e+1)*t+e)+2)},bounceIn:function(t){return 1-Re.bounceOut(1-t)},bounceOut:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},bounceInOut:function(t){return t<.5?.5*Re.bounceIn(2*t):.5*Re.bounceOut(2*t-1)+.5}},Ne=function(){function t(t){this._initialized=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=t.life||1e3,this._delay=t.delay||0,this.loop=null!=t.loop&&t.loop,this.gap=t.gap||0,this.easing=t.easing||"linear",this.onframe=t.onframe,this.ondestroy=t.ondestroy,this.onrestart=t.onrestart}return t.prototype.step=function(t,e){if(this._initialized||(this._startTime=t+this._delay,this._initialized=!0),!this._paused){var n=(t-this._startTime-this._pausedTime)/this._life;n<0&&(n=0),n=Math.min(n,1);var i=this.easing,r="string"==typeof i?Re[i]:i,o="function"==typeof r?r(n):n;if(this.onframe&&this.onframe(o),1===n){if(!this.loop)return!0;this._restart(t),this.onrestart&&this.onrestart()}return!1}this._pausedTime+=e},t.prototype._restart=function(t){var e=(t-this._startTime-this._pausedTime)%this._life;this._startTime=t-e+this.gap,this._pausedTime=0},t.prototype.pause=function(){this._paused=!0},t.prototype.resume=function(){this._paused=!1},t}(),Ee=function(t){this.value=t},ze=function(){function t(){this._len=0}return t.prototype.insert=function(t){var e=new Ee(t);return this.insertEntry(e),e},t.prototype.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t):this.head=this.tail=t,this._len++},t.prototype.remove=function(t){var e=t.prev,n=t.next;e?e.next=n:this.head=n,n?n.prev=e:this.tail=e,t.next=t.prev=null,this._len--},t.prototype.len=function(){return this._len},t.prototype.clear=function(){this.head=this.tail=null,this._len=0},t}(),Be=function(){function t(t){this._list=new ze,this._maxSize=10,this._map={},this._maxSize=t}return t.prototype.put=function(t,e){var n=this._list,i=this._map,r=null;if(null==i[t]){var o=n.len(),a=this._lastRemovedEntry;if(o>=this._maxSize&&o>0){var s=n.head;n.remove(s),delete i[s.key],r=s.value,this._lastRemovedEntry=s}a?a.value=e:a=new Ee(e),a.key=t,n.insertEntry(a),i[t]=a}return r},t.prototype.get=function(t){var e=this._map[t],n=this._list;if(null!=e)return e!==n.tail&&(n.remove(e),n.insertEntry(e)),e.value},t.prototype.clear=function(){this._list.clear(),this._map={}},t.prototype.len=function(){return this._list.len()},t}(),Ve={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function Fe(t){return(t=Math.round(t))<0?0:t>255?255:t}function Ge(t){return t<0?0:t>1?1:t}function He(t){var e=t;return e.length&&"%"===e.charAt(e.length-1)?Fe(parseFloat(e)/100*255):Fe(parseInt(e,10))}function We(t){var e=t;return e.length&&"%"===e.charAt(e.length-1)?Ge(parseFloat(e)/100):Ge(parseFloat(e))}function Ye(t,e,n){return n<0?n+=1:n>1&&(n-=1),6*n<1?t+(e-t)*n*6:2*n<1?e:3*n<2?t+(e-t)*(2/3-n)*6:t}function Xe(t,e,n){return t+(e-t)*n}function Ue(t,e,n,i,r){return t[0]=e,t[1]=n,t[2]=i,t[3]=r,t}function Ze(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}var je=new Be(20),qe=null;function Ke(t,e){qe&&Ze(qe,e),qe=je.put(t,qe||e.slice())}function $e(t,e){if(t){e=e||[];var n=je.get(t);if(n)return Ze(e,n);var i=(t+="").replace(/ /g,"").toLowerCase();if(i in Ve)return Ze(e,Ve[i]),Ke(t,e),e;var r,o=i.length;if("#"===i.charAt(0))return 4===o||5===o?(r=parseInt(i.slice(1,4),16))>=0&&r<=4095?(Ue(e,(3840&r)>>4|(3840&r)>>8,240&r|(240&r)>>4,15&r|(15&r)<<4,5===o?parseInt(i.slice(4),16)/15:1),Ke(t,e),e):void Ue(e,0,0,0,1):7===o||9===o?(r=parseInt(i.slice(1,7),16))>=0&&r<=16777215?(Ue(e,(16711680&r)>>16,(65280&r)>>8,255&r,9===o?parseInt(i.slice(7),16)/255:1),Ke(t,e),e):void Ue(e,0,0,0,1):void 0;var a=i.indexOf("("),s=i.indexOf(")");if(-1!==a&&s+1===o){var l=i.substr(0,a),u=i.substr(a+1,s-(a+1)).split(","),h=1;switch(l){case"rgba":if(4!==u.length)return 3===u.length?Ue(e,+u[0],+u[1],+u[2],1):Ue(e,0,0,0,1);h=We(u.pop());case"rgb":return 3!==u.length?void Ue(e,0,0,0,1):(Ue(e,He(u[0]),He(u[1]),He(u[2]),h),Ke(t,e),e);case"hsla":return 4!==u.length?void Ue(e,0,0,0,1):(u[3]=We(u[3]),Je(u,e),Ke(t,e),e);case"hsl":return 3!==u.length?void Ue(e,0,0,0,1):(Je(u,e),Ke(t,e),e);default:return}}Ue(e,0,0,0,1)}}function Je(t,e){var n=(parseFloat(t[0])%360+360)%360/360,i=We(t[1]),r=We(t[2]),o=r<=.5?r*(i+1):r+i-r*i,a=2*r-o;return Ue(e=e||[],Fe(255*Ye(a,o,n+1/3)),Fe(255*Ye(a,o,n)),Fe(255*Ye(a,o,n-1/3)),1),4===t.length&&(e[3]=t[3]),e}function Qe(t,e){var n=$e(t);if(n){for(var i=0;i<3;i++)n[i]=e<0?n[i]*(1-e)|0:(255-n[i])*e+n[i]|0,n[i]>255?n[i]=255:n[i]<0&&(n[i]=0);return ln(n,4===n.length?"rgba":"rgb")}}function tn(t){var e=$e(t);if(e)return((1<<24)+(e[0]<<16)+(e[1]<<8)+ +e[2]).toString(16).slice(1)}function en(t,e,n){if(e&&e.length&&t>=0&&t<=1){n=n||[];var i=t*(e.length-1),r=Math.floor(i),o=Math.ceil(i),a=e[r],s=e[o],l=i-r;return n[0]=Fe(Xe(a[0],s[0],l)),n[1]=Fe(Xe(a[1],s[1],l)),n[2]=Fe(Xe(a[2],s[2],l)),n[3]=Ge(Xe(a[3],s[3],l)),n}}var nn=en;function rn(t,e,n){if(e&&e.length&&t>=0&&t<=1){var i=t*(e.length-1),r=Math.floor(i),o=Math.ceil(i),a=$e(e[r]),s=$e(e[o]),l=i-r,u=ln([Fe(Xe(a[0],s[0],l)),Fe(Xe(a[1],s[1],l)),Fe(Xe(a[2],s[2],l)),Ge(Xe(a[3],s[3],l))],"rgba");return n?{color:u,leftIndex:r,rightIndex:o,value:i}:u}}var on=rn;function an(t,e,n,i){var r=$e(t);if(t)return r=function(t){if(t){var e,n,i=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.min(i,r,o),s=Math.max(i,r,o),l=s-a,u=(s+a)/2;if(0===l)e=0,n=0;else{n=u<.5?l/(s+a):l/(2-s-a);var h=((s-i)/6+l/2)/l,c=((s-r)/6+l/2)/l,p=((s-o)/6+l/2)/l;i===s?e=p-c:r===s?e=1/3+h-p:o===s&&(e=2/3+c-h),e<0&&(e+=1),e>1&&(e-=1)}var d=[360*e,n,u];return null!=t[3]&&d.push(t[3]),d}}(r),null!=e&&(r[0]=function(t){return(t=Math.round(t))<0?0:t>360?360:t}(e)),null!=n&&(r[1]=We(n)),null!=i&&(r[2]=We(i)),ln(Je(r),"rgba")}function sn(t,e){var n=$e(t);if(n&&null!=e)return n[3]=Ge(e),ln(n,"rgba")}function ln(t,e){if(t&&t.length){var n=t[0]+","+t[1]+","+t[2];return"rgba"!==e&&"hsva"!==e&&"hsla"!==e||(n+=","+t[3]),e+"("+n+")"}}function un(t,e){var n=$e(t);return n?(.299*n[0]+.587*n[1]+.114*n[2])*n[3]/255+(1-n[3])*e:0}var hn=Object.freeze({__proto__:null,parse:$e,lift:Qe,toHex:tn,fastLerp:en,fastMapToColor:nn,lerp:rn,mapToColor:on,modifyHSL:an,modifyAlpha:sn,stringify:ln,lum:un,random:function(){return"rgb("+Math.round(255*Math.random())+","+Math.round(255*Math.random())+","+Math.round(255*Math.random())+")"}}),cn=Array.prototype.slice;function pn(t,e,n){return(e-t)*n+t}function dn(t,e,n,i){for(var r=e.length,o=0;o<r;o++)t[o]=pn(e[o],n[o],i)}function fn(t,e,n,i){for(var r=e.length,o=0;o<r;o++)t[o]=e[o]+n[o]*i;return t}function gn(t,e,n,i){for(var r=e.length,o=r&&e[0].length,a=0;a<r;a++){t[a]||(t[a]=[]);for(var s=0;s<o;s++)t[a][s]=e[a][s]+n[a][s]*i}return t}function yn(t,e,n){var i=t,r=e;if(i.push&&r.push){var o=i.length,a=r.length;if(o!==a)if(o>a)i.length=a;else for(var s=o;s<a;s++)i.push(1===n?r[s]:cn.call(r[s]));var l=i[0]&&i[0].length;for(s=0;s<i.length;s++)if(1===n)isNaN(i[s])&&(i[s]=r[s]);else for(var u=0;u<l;u++)isNaN(i[s][u])&&(i[s][u]=r[s][u])}}function vn(t,e){var n=t.length;if(n!==e.length)return!1;for(var i=0;i<n;i++)if(t[i]!==e[i])return!1;return!0}function mn(t,e,n,i,r,o,a){var s=.5*(n-t),l=.5*(i-e);return(2*(e-n)+s+l)*a+(-3*(e-n)-2*s-l)*o+s*r+e}function _n(t,e,n,i,r,o,a,s){for(var l=e.length,u=0;u<l;u++)t[u]=mn(e[u],n[u],i[u],r[u],o,a,s)}function xn(t){if(k(t)){var e=t.length;if(k(t[0])){for(var n=[],i=0;i<e;i++)n.push(cn.call(t[i]));return n}return cn.call(t)}return t}function bn(t){return t[0]=Math.floor(t[0]),t[1]=Math.floor(t[1]),t[2]=Math.floor(t[2]),"rgba("+t.join(",")+")"}var wn,Sn,Mn=[0,0,0,0],In=function(){function t(t){this.keyframes=[],this.maxTime=0,this.arrDim=0,this.interpolable=!0,this._needsSort=!1,this._isAllValueEqual=!0,this._lastFrame=0,this._lastFramePercent=0,this.propName=t}return t.prototype.isFinished=function(){return this._finished},t.prototype.setFinished=function(){this._finished=!0,this._additiveTrack&&this._additiveTrack.setFinished()},t.prototype.needsAnimate=function(){return!this._isAllValueEqual&&this.keyframes.length>=2&&this.interpolable},t.prototype.getAdditiveTrack=function(){return this._additiveTrack},t.prototype.addKeyframe=function(t,e){t>=this.maxTime?this.maxTime=t:this._needsSort=!0;var n=this.keyframes,i=n.length;if(this.interpolable)if(k(e)){var r=function(t){return k(t&&t[0])?2:1}(e);if(i>0&&this.arrDim!==r)return void(this.interpolable=!1);if(1===r&&"number"!=typeof e[0]||2===r&&"number"!=typeof e[0][0])return void(this.interpolable=!1);if(i>0){var o=n[i-1];this._isAllValueEqual&&(1===r&&vn(e,o.value)||(this._isAllValueEqual=!1))}this.arrDim=r}else{if(this.arrDim>0)return void(this.interpolable=!1);if("string"==typeof e){var a=$e(e);a?(e=a,this.isValueColor=!0):this.interpolable=!1}else if("number"!=typeof e)return void(this.interpolable=!1);if(this._isAllValueEqual&&i>0){o=n[i-1];(this.isValueColor&&!vn(o.value,e)||o.value!==e)&&(this._isAllValueEqual=!1)}}var s={time:t,value:e,percent:0};return this.keyframes.push(s),s},t.prototype.prepare=function(t){var e=this.keyframes;this._needsSort&&e.sort((function(t,e){return t.time-e.time}));for(var n=this.arrDim,i=e.length,r=e[i-1],o=0;o<i;o++)e[o].percent=e[o].time/this.maxTime,n>0&&o!==i-1&&yn(e[o].value,r.value,n);if(t&&this.needsAnimate()&&t.needsAnimate()&&n===t.arrDim&&this.isValueColor===t.isValueColor&&!t._finished){this._additiveTrack=t;var a=e[0].value;for(o=0;o<i;o++)0===n?this.isValueColor?e[o].additiveValue=fn([],e[o].value,a,-1):e[o].additiveValue=e[o].value-a:1===n?e[o].additiveValue=fn([],e[o].value,a,-1):2===n&&(e[o].additiveValue=gn([],e[o].value,a,-1))}},t.prototype.step=function(t,e){if(!this._finished){this._additiveTrack&&this._additiveTrack._finished&&(this._additiveTrack=null);var n,i=null!=this._additiveTrack,r=i?"additiveValue":"value",o=this.keyframes,a=this.keyframes.length,s=this.propName,l=this.arrDim,u=this.isValueColor;if(e<0)n=0;else if(e<this._lastFramePercent){for(n=Math.min(this._lastFrame+1,a-1);n>=0&&!(o[n].percent<=e);n--);n=Math.min(n,a-2)}else{for(n=this._lastFrame;n<a&&!(o[n].percent>e);n++);n=Math.min(n-1,a-2)}var h=o[n+1],c=o[n];if(c&&h){this._lastFrame=n,this._lastFramePercent=e;var p=h.percent-c.percent;if(0!==p){var d=(e-c.percent)/p,f=i?this._additiveValue:u?Mn:t[s];if((l>0||u)&&!f&&(f=this._additiveValue=[]),this.useSpline){var g=o[n][r],y=o[0===n?n:n-1][r],v=o[n>a-2?a-1:n+1][r],m=o[n>a-3?a-1:n+2][r];if(l>0)1===l?_n(f,y,g,v,m,d,d*d,d*d*d):function(t,e,n,i,r,o,a,s){for(var l=e.length,u=e[0].length,h=0;h<l;h++){t[h]||(t[1]=[]);for(var c=0;c<u;c++)t[h][c]=mn(e[h][c],n[h][c],i[h][c],r[h][c],o,a,s)}}(f,y,g,v,m,d,d*d,d*d*d);else if(u)_n(f,y,g,v,m,d,d*d,d*d*d),i||(t[s]=bn(f));else{var _=void 0;_=this.interpolable?mn(y,g,v,m,d,d*d,d*d*d):v,i?this._additiveValue=_:t[s]=_}}else if(l>0)1===l?dn(f,c[r],h[r],d):function(t,e,n,i){for(var r=e.length,o=r&&e[0].length,a=0;a<r;a++){t[a]||(t[a]=[]);for(var s=0;s<o;s++)t[a][s]=pn(e[a][s],n[a][s],i)}}(f,c[r],h[r],d);else if(u)dn(f,c[r],h[r],d),i||(t[s]=bn(f));else{_=void 0;_=this.interpolable?pn(c[r],h[r],d):function(t,e,n){return n>.5?e:t}(c[r],h[r],d),i?this._additiveValue=_:t[s]=_}i&&this._addToTarget(t)}}}},t.prototype._addToTarget=function(t){var e=this.arrDim,n=this.propName,i=this._additiveValue;0===e?this.isValueColor?($e(t[n],Mn),fn(Mn,Mn,i,1),t[n]=bn(Mn)):t[n]=t[n]+i:1===e?fn(t[n],t[n],i,1):2===e&&gn(t[n],t[n],i,1)},t}(),Tn=function(){function t(t,e,n){this._tracks={},this._trackKeys=[],this._delay=0,this._maxTime=0,this._paused=!1,this._started=0,this._clip=null,this._target=t,this._loop=e,e&&n?b("Can' use additive animation on looped animation."):this._additiveAnimators=n}return t.prototype.getTarget=function(){return this._target},t.prototype.changeTarget=function(t){this._target=t},t.prototype.when=function(t,e){return this.whenWithKeys(t,e,z(e))},t.prototype.whenWithKeys=function(t,e,n){for(var i=this._tracks,r=0;r<n.length;r++){var o=n[r],a=i[o];if(!a){a=i[o]=new In(o);var s=void 0,l=this._getAdditiveTrack(o);if(l){var u=l.keyframes[l.keyframes.length-1];s=u&&u.value,l.isValueColor&&s&&(s=bn(s))}else s=this._target[o];if(null==s)continue;0!==t&&a.addKeyframe(0,xn(s)),this._trackKeys.push(o)}a.addKeyframe(t,xn(e[o]))}return this._maxTime=Math.max(this._maxTime,t),this},t.prototype.pause=function(){this._clip.pause(),this._paused=!0},t.prototype.resume=function(){this._clip.resume(),this._paused=!1},t.prototype.isPaused=function(){return!!this._paused},t.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var t=this._doneList;if(t)for(var e=t.length,n=0;n<e;n++)t[n].call(this)},t.prototype._abortedCallback=function(){this._setTracksFinished();var t=this.animation,e=this._abortedList;if(t&&t.removeClip(this._clip),this._clip=null,e)for(var n=0;n<e.length;n++)e[n].call(this)},t.prototype._setTracksFinished=function(){for(var t=this._tracks,e=this._trackKeys,n=0;n<e.length;n++)t[e[n]].setFinished()},t.prototype._getAdditiveTrack=function(t){var e,n=this._additiveAnimators;if(n)for(var i=0;i<n.length;i++){var r=n[i].getTrack(t);r&&(e=r)}return e},t.prototype.start=function(t,e){if(!(this._started>0)){this._started=1;for(var n=this,i=[],r=0;r<this._trackKeys.length;r++){var o=this._trackKeys[r],a=this._tracks[o],s=this._getAdditiveTrack(o),l=a.keyframes;if(a.prepare(s),a.needsAnimate())i.push(a);else if(!a.interpolable){var u=l[l.length-1];u&&(n._target[a.propName]=u.value)}}if(i.length||e){var h=new Ne({life:this._maxTime,loop:this._loop,delay:this._delay,onframe:function(t){n._started=2;var e=n._additiveAnimators;if(e){for(var r=!1,o=0;o<e.length;o++)if(e[o]._clip){r=!0;break}r||(n._additiveAnimators=null)}for(o=0;o<i.length;o++)i[o].step(n._target,t);var a=n._onframeList;if(a)for(o=0;o<a.length;o++)a[o](n._target,t)},ondestroy:function(){n._doneCallback()}});this._clip=h,this.animation&&this.animation.addClip(h),t&&"spline"!==t&&(h.easing=t)}else this._doneCallback();return this}},t.prototype.stop=function(t){if(this._clip){var e=this._clip;t&&e.onframe(1),this._abortedCallback()}},t.prototype.delay=function(t){return this._delay=t,this},t.prototype.during=function(t){return t&&(this._onframeList||(this._onframeList=[]),this._onframeList.push(t)),this},t.prototype.done=function(t){return t&&(this._doneList||(this._doneList=[]),this._doneList.push(t)),this},t.prototype.aborted=function(t){return t&&(this._abortedList||(this._abortedList=[]),this._abortedList.push(t)),this},t.prototype.getClip=function(){return this._clip},t.prototype.getTrack=function(t){return this._tracks[t]},t.prototype.stopTracks=function(t,e){if(!t.length||!this._clip)return!0;for(var n=this._tracks,i=this._trackKeys,r=0;r<t.length;r++){var o=n[t[r]];o&&(e?o.step(this._target,1):1===this._started&&o.step(this._target,0),o.setFinished())}var a=!0;for(r=0;r<i.length;r++)if(!n[i[r]].isFinished()){a=!1;break}return a&&this._abortedCallback(),a},t.prototype.saveFinalToTarget=function(t,e){if(t){e=e||this._trackKeys;for(var n=0;n<e.length;n++){var i=e[n],r=this._tracks[i];if(r&&!r.isFinished()){var o=r.keyframes,a=o[o.length-1];if(a){var s=xn(a.value);r.isValueColor&&(s=bn(s)),t[i]=s}}}}},t.prototype.__changeFinalValue=function(t,e){e=e||z(t);for(var n=0;n<e.length;n++){var i=e[n],r=this._tracks[i];if(r){var o=r.keyframes;if(o.length>1){var a=o.pop();r.addKeyframe(a.time,t[i]),r.prepare(r.getAdditiveTrack())}}}},t}(),Cn=function(){function t(t,e){this.x=t||0,this.y=e||0}return t.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this},t.prototype.clone=function(){return new t(this.x,this.y)},t.prototype.set=function(t,e){return this.x=t,this.y=e,this},t.prototype.equal=function(t){return t.x===this.x&&t.y===this.y},t.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this},t.prototype.scale=function(t){this.x*=t,this.y*=t},t.prototype.scaleAndAdd=function(t,e){this.x+=t.x*e,this.y+=t.y*e},t.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this},t.prototype.dot=function(t){return this.x*t.x+this.y*t.y},t.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},t.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},t.prototype.normalize=function(){var t=this.len();return this.x/=t,this.y/=t,this},t.prototype.distance=function(t){var e=this.x-t.x,n=this.y-t.y;return Math.sqrt(e*e+n*n)},t.prototype.distanceSquare=function(t){var e=this.x-t.x,n=this.y-t.y;return e*e+n*n},t.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},t.prototype.transform=function(t){if(t){var e=this.x,n=this.y;return this.x=t[0]*e+t[2]*n+t[4],this.y=t[1]*e+t[3]*n+t[5],this}},t.prototype.toArray=function(t){return t[0]=this.x,t[1]=this.y,t},t.prototype.fromArray=function(t){this.x=t[0],this.y=t[1]},t.set=function(t,e,n){t.x=e,t.y=n},t.copy=function(t,e){t.x=e.x,t.y=e.y},t.len=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)},t.lenSquare=function(t){return t.x*t.x+t.y*t.y},t.dot=function(t,e){return t.x*e.x+t.y*e.y},t.add=function(t,e,n){t.x=e.x+n.x,t.y=e.y+n.y},t.sub=function(t,e,n){t.x=e.x-n.x,t.y=e.y-n.y},t.scale=function(t,e,n){t.x=e.x*n,t.y=e.y*n},t.scaleAndAdd=function(t,e,n,i){t.x=e.x+n.x*i,t.y=e.y+n.y*i},t.lerp=function(t,e,n,i){var r=1-i;t.x=r*e.x+i*n.x,t.y=r*e.y+i*n.y},t}(),An=Math.min,Dn=Math.max,Ln=new Cn,kn=new Cn,Pn=new Cn,On=new Cn,Rn=new Cn,Nn=new Cn,En=function(){function t(t,e,n,i){n<0&&isFinite(n)&&(t+=n,n=-n),i<0&&isFinite(i)&&(e+=i,i=-i),this.x=t,this.y=e,this.width=n,this.height=i}return t.prototype.union=function(t){var e=An(t.x,this.x),n=An(t.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=Dn(t.x+t.width,this.x+this.width)-e:this.width=t.width,isFinite(this.y)&&isFinite(this.height)?this.height=Dn(t.y+t.height,this.y+this.height)-n:this.height=t.height,this.x=e,this.y=n},t.prototype.applyTransform=function(e){t.applyTransform(this,this,e)},t.prototype.calculateTransform=function(t){var e=this,n=t.width/e.width,i=t.height/e.height,r=[1,0,0,1,0,0];return xe(r,r,[-e.x,-e.y]),we(r,r,[n,i]),xe(r,r,[t.x,t.y]),r},t.prototype.intersect=function(e,n){if(!e)return!1;e instanceof t||(e=t.create(e));var i=this,r=i.x,o=i.x+i.width,a=i.y,s=i.y+i.height,l=e.x,u=e.x+e.width,h=e.y,c=e.y+e.height,p=!(o<l||u<r||s<h||c<a);if(n){var d=1/0,f=0,g=Math.abs(o-l),y=Math.abs(u-r),v=Math.abs(s-h),m=Math.abs(c-a),_=Math.min(g,y),x=Math.min(v,m);o<l||u<r?_>f&&(f=_,g<y?Cn.set(Nn,-g,0):Cn.set(Nn,y,0)):_<d&&(d=_,g<y?Cn.set(Rn,g,0):Cn.set(Rn,-y,0)),s<h||c<a?x>f&&(f=x,v<m?Cn.set(Nn,0,-v):Cn.set(Nn,0,m)):_<d&&(d=_,v<m?Cn.set(Rn,0,v):Cn.set(Rn,0,-m))}return n&&Cn.copy(n,p?Rn:Nn),p},t.prototype.contain=function(t,e){var n=this;return t>=n.x&&t<=n.x+n.width&&e>=n.y&&e<=n.y+n.height},t.prototype.clone=function(){return new t(this.x,this.y,this.width,this.height)},t.prototype.copy=function(e){t.copy(this,e)},t.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},t.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},t.prototype.isZero=function(){return 0===this.width||0===this.height},t.create=function(e){return new t(e.x,e.y,e.width,e.height)},t.copy=function(t,e){t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height},t.applyTransform=function(e,n,i){if(i){if(i[1]<1e-5&&i[1]>-1e-5&&i[2]<1e-5&&i[2]>-1e-5){var r=i[0],o=i[3],a=i[4],s=i[5];return e.x=n.x*r+a,e.y=n.y*o+s,e.width=n.width*r,e.height=n.height*o,e.width<0&&(e.x+=e.width,e.width=-e.width),void(e.height<0&&(e.y+=e.height,e.height=-e.height))}Ln.x=Pn.x=n.x,Ln.y=On.y=n.y,kn.x=On.x=n.x+n.width,kn.y=Pn.y=n.y+n.height,Ln.transform(i),On.transform(i),kn.transform(i),Pn.transform(i),e.x=An(Ln.x,kn.x,Pn.x,On.x),e.y=An(Ln.y,kn.y,Pn.y,On.y);var l=Dn(Ln.x,kn.x,Pn.x,On.x),u=Dn(Ln.y,kn.y,Pn.y,On.y);e.width=l-e.x,e.height=u-e.y}else e!==n&&t.copy(e,n)},t}(),zn={},Bn="12px sans-serif";var Vn={measureText:function(t,e){return wn||(wn=C().getContext("2d")),Sn!==e&&(Sn=wn.font=e||Bn),wn.measureText(t)}};function Fn(t,e){var n=zn[e=e||Bn];n||(n=zn[e]=new Be(500));var i=n.get(t);return null==i&&(i=Vn.measureText(t,e).width,n.put(t,i)),i}function Gn(t,e,n,i){var r=Fn(t,e),o=Xn(e),a=Wn(0,r,n),s=Yn(0,o,i);return new En(a,s,r,o)}function Hn(t,e,n,i){var r=((t||"")+"").split("\n");if(1===r.length)return Gn(r[0],e,n,i);for(var o=new En(0,0,0,0),a=0;a<r.length;a++){var s=Gn(r[a],e,n,i);0===a?o.copy(s):o.union(s)}return o}function Wn(t,e,n){return"right"===n?t-=e:"center"===n&&(t-=e/2),t}function Yn(t,e,n){return"middle"===n?t-=e/2:"bottom"===n&&(t-=e),t}function Xn(t){return Fn("国",t)}function Un(t,e){return"string"==typeof t?t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t):t}function Zn(t,e,n){var i=e.position||"inside",r=null!=e.distance?e.distance:5,o=n.height,a=n.width,s=o/2,l=n.x,u=n.y,h="left",c="top";if(i instanceof Array)l+=Un(i[0],n.width),u+=Un(i[1],n.height),h=null,c=null;else switch(i){case"left":l-=r,u+=s,h="right",c="middle";break;case"right":l+=r+a,u+=s,c="middle";break;case"top":l+=a/2,u-=r,h="center",c="bottom";break;case"bottom":l+=a/2,u+=o+r,h="center";break;case"inside":l+=a/2,u+=s,h="center",c="middle";break;case"insideLeft":l+=r,u+=s,c="middle";break;case"insideRight":l+=a-r,u+=s,h="right",c="middle";break;case"insideTop":l+=a/2,u+=r,h="center";break;case"insideBottom":l+=a/2,u+=o-r,h="center",c="bottom";break;case"insideTopLeft":l+=r,u+=r;break;case"insideTopRight":l+=a-r,u+=r,h="right";break;case"insideBottomLeft":l+=r,u+=o-r,c="bottom";break;case"insideBottomRight":l+=a-r,u+=o-r,h="right",c="bottom"}return(t=t||{}).x=l,t.y=u,t.align=h,t.verticalAlign=c,t}var jn=1;"undefined"!=typeof window&&(jn=Math.max(window.devicePixelRatio||window.screen&&window.screen.deviceXDPI/window.screen.logicalXDPI||1,1));var qn=jn,Kn="#333",$n="#ccc",Jn="__zr_normal__",Qn=["x","y","scaleX","scaleY","originX","originY","rotation","ignore"],ti={x:!0,y:!0,scaleX:!0,scaleY:!0,originX:!0,originY:!0,rotation:!0,ignore:!1},ei={},ni=new En(0,0,0,0),ii=function(){function t(t){this.id=x(),this.animators=[],this.currentStates=[],this.states={},this._init(t)}return t.prototype._init=function(t){this.attr(t)},t.prototype.drift=function(t,e,n){switch(this.draggable){case"horizontal":e=0;break;case"vertical":t=0}var i=this.transform;i||(i=this.transform=[1,0,0,1,0,0]),i[4]+=t,i[5]+=e,this.decomposeTransform(),this.markRedraw()},t.prototype.beforeUpdate=function(){},t.prototype.afterUpdate=function(){},t.prototype.update=function(){this.updateTransform(),this.__dirty&&this.updateInnerText()},t.prototype.updateInnerText=function(t){var e=this._textContent;if(e&&(!e.ignore||t)){this.textConfig||(this.textConfig={});var n=this.textConfig,i=n.local,r=e.attachedTransform,o=void 0,a=void 0,s=!1;r.parent=i?this:null;var l=!1;if(r.x=e.x,r.y=e.y,r.originX=e.originX,r.originY=e.originY,r.rotation=e.rotation,r.scaleX=e.scaleX,r.scaleY=e.scaleY,null!=n.position){var u=ni;n.layoutRect?u.copy(n.layoutRect):u.copy(this.getBoundingRect()),i||u.applyTransform(this.transform),this.calculateTextPosition?this.calculateTextPosition(ei,n,u):Zn(ei,n,u),r.x=ei.x,r.y=ei.y,o=ei.align,a=ei.verticalAlign;var h=n.origin;if(h&&null!=n.rotation){var c=void 0,p=void 0;"center"===h?(c=.5*u.width,p=.5*u.height):(c=Un(h[0],u.width),p=Un(h[1],u.height)),l=!0,r.originX=-r.x+c+(i?0:u.x),r.originY=-r.y+p+(i?0:u.y)}}null!=n.rotation&&(r.rotation=n.rotation);var d=n.offset;d&&(r.x+=d[0],r.y+=d[1],l||(r.originX=-d[0],r.originY=-d[1]));var f=null==n.inside?"string"==typeof n.position&&n.position.indexOf("inside")>=0:n.inside,g=this._innerTextDefaultStyle||(this._innerTextDefaultStyle={}),y=void 0,v=void 0,m=void 0;f&&this.canBeInsideText()?(y=n.insideFill,v=n.insideStroke,null!=y&&"auto"!==y||(y=this.getInsideTextFill()),null!=v&&"auto"!==v||(v=this.getInsideTextStroke(y),m=!0)):(y=n.outsideFill,v=n.outsideStroke,null!=y&&"auto"!==y||(y=this.getOutsideFill()),null!=v&&"auto"!==v||(v=this.getOutsideStroke(y),m=!0)),(y=y||"#000")===g.fill&&v===g.stroke&&m===g.autoStroke&&o===g.align&&a===g.verticalAlign||(s=!0,g.fill=y,g.stroke=v,g.autoStroke=m,g.align=o,g.verticalAlign=a,e.setDefaultTextStyle(g)),s&&e.dirtyStyle(),e.markRedraw()}},t.prototype.canBeInsideText=function(){return!0},t.prototype.getInsideTextFill=function(){return"#fff"},t.prototype.getInsideTextStroke=function(t){return"#000"},t.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?$n:Kn},t.prototype.getOutsideStroke=function(t){var e=this.__zr&&this.__zr.getBackgroundColor(),n="string"==typeof e&&$e(e);n||(n=[255,255,255,1]);for(var i=n[3],r=this.__zr.isDarkMode(),o=0;o<3;o++)n[o]=n[o]*i+(r?0:255)*(1-i);return n[3]=1,ln(n,"rgba")},t.prototype.traverse=function(t,e){},t.prototype.attrKV=function(t,e){"textConfig"===t?this.setTextConfig(e):"textContent"===t?this.setTextContent(e):"clipPath"===t?this.setClipPath(e):"extra"===t?(this.extra=this.extra||{},I(this.extra,e)):this[t]=e},t.prototype.hide=function(){this.ignore=!0,this.markRedraw()},t.prototype.show=function(){this.ignore=!1,this.markRedraw()},t.prototype.attr=function(t,e){if("string"==typeof t)this.attrKV(t,e);else if(X(t))for(var n=z(t),i=0;i<n.length;i++){var r=n[i];this.attrKV(r,t[r])}return this.markRedraw(),this},t.prototype.saveCurrentToNormalState=function(t){this._innerSaveToNormal(t);for(var e=this._normalState,n=0;n<this.animators.length;n++){var i=this.animators[n],r=i.__fromStateTransition;if(!r||r===Jn){var o=i.targetName,a=o?e[o]:e;i.saveFinalToTarget(a)}}},t.prototype._innerSaveToNormal=function(t){var e=this._normalState;e||(e=this._normalState={}),t.textConfig&&!e.textConfig&&(e.textConfig=this.textConfig),this._savePrimaryToNormal(t,e,Qn)},t.prototype._savePrimaryToNormal=function(t,e,n){for(var i=0;i<n.length;i++){var r=n[i];null==t[r]||r in e||(e[r]=this[r])}},t.prototype.hasState=function(){return this.currentStates.length>0},t.prototype.getState=function(t){return this.states[t]},t.prototype.ensureState=function(t){var e=this.states;return e[t]||(e[t]={}),e[t]},t.prototype.clearStates=function(t){this.useState(Jn,!1,t)},t.prototype.useState=function(e,n,i){var r=e===Jn;if(this.hasState()||!r){var o=this.currentStates,a=this.stateTransition;if(!(A(o,e)>=0)||!n&&1!==o.length){var s;if(this.stateProxy&&!r&&(s=this.stateProxy(e)),s||(s=this.states&&this.states[e]),s||r){r||this.saveCurrentToNormalState(s);var l=!(!s||!s.hoverLayer);return l&&this._toggleHoverLayerFlag(!0),this._applyStateObj(e,s,this._normalState,n,!i&&!this.__inHover&&a&&a.duration>0,a),this._textContent&&this._textContent.useState(e,n),this._textGuide&&this._textGuide.useState(e,n),r?(this.currentStates=[],this._normalState={}):n?this.currentStates.push(e):this.currentStates=[e],this._updateAnimationTargets(),this.markRedraw(),!l&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~t.REDARAW_BIT),s}b("State "+e+" not exists.")}}},t.prototype.useStates=function(e,n){if(e.length){var i=[],r=this.currentStates,o=e.length,a=o===r.length;if(a)for(var s=0;s<o;s++)if(e[s]!==r[s]){a=!1;break}if(a)return;for(s=0;s<o;s++){var l=e[s],u=void 0;this.stateProxy&&(u=this.stateProxy(l,e)),u||(u=this.states[l]),u&&i.push(u)}var h=!(!i[o-1]||!i[o-1].hoverLayer);h&&this._toggleHoverLayerFlag(!0);var c=this._mergeStates(i),p=this.stateTransition;this.saveCurrentToNormalState(c),this._applyStateObj(e.join(","),c,this._normalState,!1,!n&&!this.__inHover&&p&&p.duration>0,p),this._textContent&&this._textContent.useStates(e),this._textGuide&&this._textGuide.useStates(e),this._updateAnimationTargets(),this.currentStates=e.slice(),this.markRedraw(),!h&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~t.REDARAW_BIT)}else this.clearStates()},t.prototype._updateAnimationTargets=function(){for(var t=0;t<this.animators.length;t++){var e=this.animators[t];e.targetName&&e.changeTarget(this[e.targetName])}},t.prototype.removeState=function(t){var e=A(this.currentStates,t);if(e>=0){var n=this.currentStates.slice();n.splice(e,1),this.useStates(n)}},t.prototype.replaceState=function(t,e,n){var i=this.currentStates.slice(),r=A(i,t),o=A(i,e)>=0;r>=0?o?i.splice(r,1):i[r]=e:n&&!o&&i.push(e),this.useStates(i)},t.prototype.toggleState=function(t,e){e?this.useState(t,!0):this.removeState(t)},t.prototype._mergeStates=function(t){for(var e,n={},i=0;i<t.length;i++){var r=t[i];I(n,r),r.textConfig&&I(e=e||{},r.textConfig)}return e&&(n.textConfig=e),n},t.prototype._applyStateObj=function(t,e,n,i,r,o){var a=!(e&&i);e&&e.textConfig?(this.textConfig=I({},i?this.textConfig:n.textConfig),I(this.textConfig,e.textConfig)):a&&n.textConfig&&(this.textConfig=n.textConfig);for(var s={},l=!1,u=0;u<Qn.length;u++){var h=Qn[u],c=r&&ti[h];e&&null!=e[h]?c?(l=!0,s[h]=e[h]):this[h]=e[h]:a&&null!=n[h]&&(c?(l=!0,s[h]=n[h]):this[h]=n[h])}if(!r)for(u=0;u<this.animators.length;u++){var p=this.animators[u],d=p.targetName;p.__changeFinalValue(d?(e||n)[d]:e||n)}l&&this._transitionState(t,s,o)},t.prototype._attachComponent=function(t){if(t.__zr&&!t.__hostTarget)throw new Error("Text element has been added to zrender.");if(t===this)throw new Error("Recursive component attachment.");var e=this.__zr;e&&t.addSelfToZr(e),t.__zr=e,t.__hostTarget=this},t.prototype._detachComponent=function(t){t.__zr&&t.removeSelfFromZr(t.__zr),t.__zr=null,t.__hostTarget=null},t.prototype.getClipPath=function(){return this._clipPath},t.prototype.setClipPath=function(t){this._clipPath&&this._clipPath!==t&&this.removeClipPath(),this._attachComponent(t),this._clipPath=t,this.markRedraw()},t.prototype.removeClipPath=function(){var t=this._clipPath;t&&(this._detachComponent(t),this._clipPath=null,this.markRedraw())},t.prototype.getTextContent=function(){return this._textContent},t.prototype.setTextContent=function(t){var e=this._textContent;if(e!==t){if(e&&e!==t&&this.removeTextContent(),t.__zr&&!t.__hostTarget)throw new Error("Text element has been added to zrender.");t.attachedTransform=new Oe,this._attachComponent(t),this._textContent=t,this.markRedraw()}},t.prototype.setTextConfig=function(t){this.textConfig||(this.textConfig={}),I(this.textConfig,t),this.markRedraw()},t.prototype.removeTextContent=function(){var t=this._textContent;t&&(t.attachedTransform=null,this._detachComponent(t),this._textContent=null,this._innerTextDefaultStyle=null,this.markRedraw())},t.prototype.getTextGuideLine=function(){return this._textGuide},t.prototype.setTextGuideLine=function(t){this._textGuide&&this._textGuide!==t&&this.removeTextGuideLine(),this._attachComponent(t),this._textGuide=t,this.markRedraw()},t.prototype.removeTextGuideLine=function(){var t=this._textGuide;t&&(this._detachComponent(t),this._textGuide=null,this.markRedraw())},t.prototype.markRedraw=function(){this.__dirty|=t.REDARAW_BIT;var e=this.__zr;e&&(this.__inHover?e.refreshHover():e.refresh()),this.__hostTarget&&this.__hostTarget.markRedraw()},t.prototype.dirty=function(){this.markRedraw()},t.prototype._toggleHoverLayerFlag=function(t){this.__inHover=t;var e=this._textContent,n=this._textGuide;e&&(e.__inHover=t),n&&(n.__inHover=t)},t.prototype.addSelfToZr=function(t){this.__zr=t;var e=this.animators;if(e)for(var n=0;n<e.length;n++)t.animation.addAnimator(e[n]);this._clipPath&&this._clipPath.addSelfToZr(t),this._textContent&&this._textContent.addSelfToZr(t),this._textGuide&&this._textGuide.addSelfToZr(t)},t.prototype.removeSelfFromZr=function(t){this.__zr=null;var e=this.animators;if(e)for(var n=0;n<e.length;n++)t.animation.removeAnimator(e[n]);this._clipPath&&this._clipPath.removeSelfFromZr(t),this._textContent&&this._textContent.removeSelfFromZr(t),this._textGuide&&this._textGuide.removeSelfFromZr(t)},t.prototype.animate=function(t,e){var n=t?this[t]:this;if(n){var i=new Tn(n,e);return this.addAnimator(i,t),i}b('Property "'+t+'" is not existed in element '+this.id)},t.prototype.addAnimator=function(t,e){var n=this.__zr,i=this;t.during((function(){i.updateDuringAnimation(e)})).done((function(){var e=i.animators,n=A(e,t);n>=0&&e.splice(n,1)})),this.animators.push(t),n&&n.animation.addAnimator(t),n&&n.wakeUp()},t.prototype.updateDuringAnimation=function(t){this.markRedraw()},t.prototype.stopAnimation=function(t,e){for(var n=this.animators,i=n.length,r=[],o=0;o<i;o++){var a=n[o];t&&t!==a.scope?r.push(a):a.stop(e)}return this.animators=r,this},t.prototype.animateTo=function(t,e,n){ri(this,t,e,n)},t.prototype.animateFrom=function(t,e,n){ri(this,t,e,n,!0)},t.prototype._transitionState=function(t,e,n,i){for(var r=ri(this,e,n,i),o=0;o<r.length;o++)r[o].__fromStateTransition=t},t.prototype.getBoundingRect=function(){return null},t.prototype.getPaintRect=function(){return null},t.REDARAW_BIT=1,t.initDefaultProps=function(){var e=t.prototype;e.type="element",e.name="",e.ignore=!1,e.silent=!1,e.isGroup=!1,e.draggable=!1,e.dragging=!1,e.ignoreClip=!1,e.__inHover=!1,e.__dirty=t.REDARAW_BIT;var n={};function i(t,e,i){n[t+e+i]||(console.warn("DEPRECATED: '"+t+"' has been deprecated. use '"+e+"', '"+i+"' instead"),n[t+e+i]=!0)}function r(t,n,r,o){function a(t,e){Object.defineProperty(e,0,{get:function(){return t[r]},set:function(e){t[r]=e}}),Object.defineProperty(e,1,{get:function(){return t[o]},set:function(e){t[o]=e}})}Object.defineProperty(e,t,{get:function(){(i(t,r,o),this[n])||a(this,this[n]=[]);return this[n]},set:function(e){i(t,r,o),this[r]=e[0],this[o]=e[1],this[n]=e,a(this,e)}})}Object.defineProperty&&(!a.browser.ie||a.browser.version>8)&&(r("position","_legacyPos","x","y"),r("scale","_legacyScale","scaleX","scaleY"),r("origin","_legacyOrigin","originX","originY"))}(),t}();function ri(t,e,n,i,r){var o=[];si(t,"",t,e,n=n||{},i,o,r);var a=o.length,s=!1,l=n.done,u=n.aborted,h=function(){s=!0,--a<=0&&(s?l&&l():u&&u())},c=function(){--a<=0&&(s?l&&l():u&&u())};a||l&&l(),o.length>0&&n.during&&o[0].during((function(t,e){n.during(e)}));for(var p=0;p<o.length;p++){var d=o[p];h&&d.done(h),c&&d.aborted(c),d.start(n.easing,n.force)}return o}function oi(t,e,n){for(var i=0;i<n;i++)t[i]=e[i]}function ai(t,e,n){if(k(e[n]))if(k(t[n])||(t[n]=[]),Z(e[n])){var i=e[n].length;t[n].length!==i&&(t[n]=new e[n].constructor(i),oi(t[n],e[n],i))}else{var r=e[n],o=t[n],a=r.length;if(k(r[0]))for(var s=r[0].length,l=0;l<a;l++)o[l]?oi(o[l],r[l],s):o[l]=Array.prototype.slice.call(r[l]);else oi(o,r,a);o.length=r.length}else t[n]=e[n]}function si(t,e,n,i,r,o,a,s){for(var l=[],u=[],h=z(i),c=r.duration,p=r.delay,d=r.additive,f=r.setToFinal,g=!X(o),y=0;y<h.length;y++){if(null!=n[I=h[y]]&&null!=i[I]&&(g||o[I]))if(X(i[I])&&!k(i[I])){if(e){s||(n[I]=i[I],t.updateDuringAnimation(e));continue}si(t,I,n[I],i[I],r,o&&o[I],a,s)}else l.push(I),u.push(I);else s||(n[I]=i[I],t.updateDuringAnimation(e),u.push(I))}var v=l.length;if(v>0||r.force&&!a.length){for(var m=t.animators,_=[],x=0;x<m.length;x++)m[x].targetName===e&&_.push(m[x]);if(!d&&_.length)for(x=0;x<_.length;x++){if(_[x].stopTracks(u)){var b=A(m,_[x]);m.splice(b,1)}}var w=void 0,S=void 0,M=void 0;if(s){S={},f&&(w={});for(x=0;x<v;x++){S[I=l[x]]=n[I],f?w[I]=i[I]:n[I]=i[I]}}else if(f){M={};for(x=0;x<v;x++){var I;M[I=l[x]]=xn(n[I]),ai(n,i,I)}}var T=new Tn(n,!1,d?_:null);T.targetName=e,r.scope&&(T.scope=r.scope),f&&w&&T.whenWithKeys(0,w,l),M&&T.whenWithKeys(0,M,l),T.whenWithKeys(null==c?500:c,s?S:i,l).delay(p||0),t.addAnimator(T,e),a.push(T)}}L(ii,Ht),L(ii,Oe);function li(t,e,n,i){var r=e+1;if(r===n)return 1;if(i(t[r++],t[e])<0){for(;r<n&&i(t[r],t[r-1])<0;)r++;!function(t,e,n){n--;for(;e<n;){var i=t[e];t[e++]=t[n],t[n--]=i}}(t,e,r)}else for(;r<n&&i(t[r],t[r-1])>=0;)r++;return r-e}function ui(t,e,n,i,r){for(i===e&&i++;i<n;i++){for(var o,a=t[i],s=e,l=i;s<l;)r(a,t[o=s+l>>>1])<0?l=o:s=o+1;var u=i-s;switch(u){case 3:t[s+3]=t[s+2];case 2:t[s+2]=t[s+1];case 1:t[s+1]=t[s];break;default:for(;u>0;)t[s+u]=t[s+u-1],u--}t[s]=a}}function hi(t,e,n,i,r,o){var a=0,s=0,l=1;if(o(t,e[n+r])>0){for(s=i-r;l<s&&o(t,e[n+r+l])>0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),a+=r,l+=r}else{for(s=r+1;l<s&&o(t,e[n+r-l])<=0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s);var u=a;a=r-l,l=r-u}for(a++;a<l;){var h=a+(l-a>>>1);o(t,e[n+h])>0?a=h+1:l=h}return l}function ci(t,e,n,i,r,o){var a=0,s=0,l=1;if(o(t,e[n+r])<0){for(s=r+1;l<s&&o(t,e[n+r-l])<0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s);var u=a;a=r-l,l=r-u}else{for(s=i-r;l<s&&o(t,e[n+r+l])>=0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),a+=r,l+=r}for(a++;a<l;){var h=a+(l-a>>>1);o(t,e[n+h])<0?l=h:a=h+1}return l}function pi(t,e){var n,i,r=7,o=0;t.length;var a=[];function s(s){var l=n[s],u=i[s],h=n[s+1],c=i[s+1];i[s]=u+c,s===o-3&&(n[s+1]=n[s+2],i[s+1]=i[s+2]),o--;var p=ci(t[h],t,l,u,0,e);l+=p,0!==(u-=p)&&0!==(c=hi(t[l+u-1],t,h,c,c-1,e))&&(u<=c?function(n,i,o,s){var l=0;for(l=0;l<i;l++)a[l]=t[n+l];var u=0,h=o,c=n;if(t[c++]=t[h++],0==--s){for(l=0;l<i;l++)t[c+l]=a[u+l];return}if(1===i){for(l=0;l<s;l++)t[c+l]=t[h+l];return void(t[c+s]=a[u])}var p,d,f,g=r;for(;;){p=0,d=0,f=!1;do{if(e(t[h],a[u])<0){if(t[c++]=t[h++],d++,p=0,0==--s){f=!0;break}}else if(t[c++]=a[u++],p++,d=0,1==--i){f=!0;break}}while((p|d)<g);if(f)break;do{if(0!==(p=ci(t[h],a,u,i,0,e))){for(l=0;l<p;l++)t[c+l]=a[u+l];if(c+=p,u+=p,(i-=p)<=1){f=!0;break}}if(t[c++]=t[h++],0==--s){f=!0;break}if(0!==(d=hi(a[u],t,h,s,0,e))){for(l=0;l<d;l++)t[c+l]=t[h+l];if(c+=d,h+=d,0===(s-=d)){f=!0;break}}if(t[c++]=a[u++],1==--i){f=!0;break}g--}while(p>=7||d>=7);if(f)break;g<0&&(g=0),g+=2}if((r=g)<1&&(r=1),1===i){for(l=0;l<s;l++)t[c+l]=t[h+l];t[c+s]=a[u]}else{if(0===i)throw new Error;for(l=0;l<i;l++)t[c+l]=a[u+l]}}(l,u,h,c):function(n,i,o,s){var l=0;for(l=0;l<s;l++)a[l]=t[o+l];var u=n+i-1,h=s-1,c=o+s-1,p=0,d=0;if(t[c--]=t[u--],0==--i){for(p=c-(s-1),l=0;l<s;l++)t[p+l]=a[l];return}if(1===s){for(d=(c-=i)+1,p=(u-=i)+1,l=i-1;l>=0;l--)t[d+l]=t[p+l];return void(t[c]=a[h])}var f=r;for(;;){var g=0,y=0,v=!1;do{if(e(a[h],t[u])<0){if(t[c--]=t[u--],g++,y=0,0==--i){v=!0;break}}else if(t[c--]=a[h--],y++,g=0,1==--s){v=!0;break}}while((g|y)<f);if(v)break;do{if(0!==(g=i-ci(a[h],t,n,i,i-1,e))){for(i-=g,d=(c-=g)+1,p=(u-=g)+1,l=g-1;l>=0;l--)t[d+l]=t[p+l];if(0===i){v=!0;break}}if(t[c--]=a[h--],1==--s){v=!0;break}if(0!==(y=s-hi(t[u],a,0,s,s-1,e))){for(s-=y,d=(c-=y)+1,p=(h-=y)+1,l=0;l<y;l++)t[d+l]=a[p+l];if(s<=1){v=!0;break}}if(t[c--]=t[u--],0==--i){v=!0;break}f--}while(g>=7||y>=7);if(v)break;f<0&&(f=0),f+=2}(r=f)<1&&(r=1);if(1===s){for(d=(c-=i)+1,p=(u-=i)+1,l=i-1;l>=0;l--)t[d+l]=t[p+l];t[c]=a[h]}else{if(0===s)throw new Error;for(p=c-(s-1),l=0;l<s;l++)t[p+l]=a[l]}}(l,u,h,c))}return n=[],i=[],{mergeRuns:function(){for(;o>1;){var t=o-2;if(t>=1&&i[t-1]<=i[t]+i[t+1]||t>=2&&i[t-2]<=i[t]+i[t-1])i[t-1]<i[t+1]&&t--;else if(i[t]>i[t+1])break;s(t)}},forceMergeRuns:function(){for(;o>1;){var t=o-2;t>0&&i[t-1]<i[t+1]&&t--,s(t)}},pushRun:function(t,e){n[o]=t,i[o]=e,o+=1}}}function di(t,e,n,i){n||(n=0),i||(i=t.length);var r=i-n;if(!(r<2)){var o=0;if(r<32)ui(t,n,i,n+(o=li(t,n,i,e)),e);else{var a=pi(t,e),s=function(t){for(var e=0;t>=32;)e|=1&t,t>>=1;return t+e}(r);do{if((o=li(t,n,i,e))<s){var l=r;l>s&&(l=s),ui(t,n,n+l,n+o,e),o=l}a.pushRun(n,o),a.mergeRuns(),r-=o,n+=o}while(0!==r);a.forceMergeRuns()}}}var fi=!1;function gi(){fi||(fi=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function yi(t,e){return t.zlevel===e.zlevel?t.z===e.z?t.z2-e.z2:t.z-e.z:t.zlevel-e.zlevel}var vi,mi,_i=function(){function t(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=yi}return t.prototype.traverse=function(t,e){for(var n=0;n<this._roots.length;n++)this._roots[n].traverse(t,e)},t.prototype.getDisplayList=function(t,e){e=e||!1;var n=this._displayList;return!t&&n.length||this.updateDisplayList(e),n},t.prototype.updateDisplayList=function(t){this._displayListLen=0;for(var e=this._roots,n=this._displayList,i=0,r=e.length;i<r;i++)this._updateAndAddDisplayable(e[i],null,t);n.length=this._displayListLen,a.canvasSupported&&di(n,yi)},t.prototype._updateAndAddDisplayable=function(t,e,n){if(!t.ignore||n){t.beforeUpdate(),t.update(),t.afterUpdate();var i=t.getClipPath();if(t.ignoreClip)e=null;else if(i){e=e?e.slice():[];for(var r=i,o=t;r;)r.parent=o,r.updateTransform(),e.push(r),o=r,r=r.getClipPath()}if(t.childrenRef){for(var a=t.childrenRef(),s=0;s<a.length;s++){var l=a[s];t.__dirty&&(l.__dirty|=ii.REDARAW_BIT),this._updateAndAddDisplayable(l,e,n)}t.__dirty=0}else{var u=t;e&&e.length?u.__clipPaths=e:u.__clipPaths&&u.__clipPaths.length>0&&(u.__clipPaths=[]),isNaN(u.z)&&(gi(),u.z=0),isNaN(u.z2)&&(gi(),u.z2=0),isNaN(u.zlevel)&&(gi(),u.zlevel=0),this._displayList[this._displayListLen++]=u}var h=t.getDecalElement&&t.getDecalElement();h&&this._updateAndAddDisplayable(h,e,n);var c=t.getTextGuideLine();c&&this._updateAndAddDisplayable(c,e,n);var p=t.getTextContent();p&&this._updateAndAddDisplayable(p,e,n)}},t.prototype.addRoot=function(t){t.__zr&&t.__zr.storage===this||this._roots.push(t)},t.prototype.delRoot=function(t){if(t instanceof Array)for(var e=0,n=t.length;e<n;e++)this.delRoot(t[e]);else{var i=A(this._roots,t);i>=0&&this._roots.splice(i,1)}},t.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},t.prototype.getRoots=function(){return this._roots},t.prototype.dispose=function(){this._displayList=null,this._roots=null},t}(),xi="undefined"!=typeof window&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(t){return setTimeout(t,16)},bi=function(t){function e(e){var n=t.call(this)||this;return n._running=!1,n._time=0,n._pausedTime=0,n._pauseStart=0,n._paused=!1,e=e||{},n.stage=e.stage||{},n.onframe=e.onframe||function(){},n}return vt(e,t),e.prototype.addClip=function(t){t.animation&&this.removeClip(t),this._clipsHead?(this._clipsTail.next=t,t.prev=this._clipsTail,t.next=null,this._clipsTail=t):this._clipsHead=this._clipsTail=t,t.animation=this},e.prototype.addAnimator=function(t){t.animation=this;var e=t.getClip();e&&this.addClip(e)},e.prototype.removeClip=function(t){if(t.animation){var e=t.prev,n=t.next;e?e.next=n:this._clipsHead=n,n?n.prev=e:this._clipsTail=e,t.next=t.prev=t.animation=null}},e.prototype.removeAnimator=function(t){var e=t.getClip();e&&this.removeClip(e),t.animation=null},e.prototype.update=function(t){for(var e=(new Date).getTime()-this._pausedTime,n=e-this._time,i=this._clipsHead;i;){var r=i.next;i.step(e,n)?(i.ondestroy&&i.ondestroy(),this.removeClip(i),i=r):i=r}this._time=e,t||(this.onframe(n),this.trigger("frame",n),this.stage.update&&this.stage.update())},e.prototype._startLoop=function(){var t=this;this._running=!0,xi((function e(){t._running&&(xi(e),!t._paused&&t.update())}))},e.prototype.start=function(){this._running||(this._time=(new Date).getTime(),this._pausedTime=0,this._startLoop())},e.prototype.stop=function(){this._running=!1},e.prototype.pause=function(){this._paused||(this._pauseStart=(new Date).getTime(),this._paused=!0)},e.prototype.resume=function(){this._paused&&(this._pausedTime+=(new Date).getTime()-this._pauseStart,this._paused=!1)},e.prototype.clear=function(){for(var t=this._clipsHead;t;){var e=t.next;t.prev=t.next=t.animation=null,t=e}this._clipsHead=this._clipsTail=null},e.prototype.isFinished=function(){return null==this._clipsHead},e.prototype.animate=function(t,e){e=e||{},this.start();var n=new Tn(t,e.loop);return this.addAnimator(n),n},e}(Ht),wi=a.domSupported,Si=(mi={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},{mouse:vi=["click","dblclick","mousewheel","wheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],touch:["touchstart","touchend","touchmove"],pointer:O(vi,(function(t){var e=t.replace("mouse","pointer");return mi.hasOwnProperty(e)?e:t}))}),Mi=["mousemove","mouseup"],Ii=["pointermove","pointerup"],Ti=!1;function Ci(t){var e=t.pointerType;return"pen"===e||"touch"===e}function Ai(t){t&&(t.zrByTouch=!0)}function Di(t,e){for(var n=e,i=!1;n&&9!==n.nodeType&&!(i=n.domBelongToZr||n!==e&&n===t.painterRoot);)n=n.parentNode;return i}var Li=function(t,e){this.stopPropagation=ft,this.stopImmediatePropagation=ft,this.preventDefault=ft,this.type=e.type,this.target=this.currentTarget=t.dom,this.pointerType=e.pointerType,this.clientX=e.clientX,this.clientY=e.clientY},ki={mousedown:function(t){t=ee(this.dom,t),this.__mayPointerCapture=[t.zrX,t.zrY],this.trigger("mousedown",t)},mousemove:function(t){t=ee(this.dom,t);var e=this.__mayPointerCapture;!e||t.zrX===e[0]&&t.zrY===e[1]||this.__togglePointerCapture(!0),this.trigger("mousemove",t)},mouseup:function(t){t=ee(this.dom,t),this.__togglePointerCapture(!1),this.trigger("mouseup",t)},mouseout:function(t){Di(this,(t=ee(this.dom,t)).toElement||t.relatedTarget)||(this.__pointerCapturing&&(t.zrEventControl="no_globalout"),this.trigger("mouseout",t))},wheel:function(t){Ti=!0,t=ee(this.dom,t),this.trigger("mousewheel",t)},mousewheel:function(t){Ti||(t=ee(this.dom,t),this.trigger("mousewheel",t))},touchstart:function(t){Ai(t=ee(this.dom,t)),this.__lastTouchMoment=new Date,this.handler.processGesture(t,"start"),ki.mousemove.call(this,t),ki.mousedown.call(this,t)},touchmove:function(t){Ai(t=ee(this.dom,t)),this.handler.processGesture(t,"change"),ki.mousemove.call(this,t)},touchend:function(t){Ai(t=ee(this.dom,t)),this.handler.processGesture(t,"end"),ki.mouseup.call(this,t),+new Date-+this.__lastTouchMoment<300&&ki.click.call(this,t)},pointerdown:function(t){ki.mousedown.call(this,t)},pointermove:function(t){Ci(t)||ki.mousemove.call(this,t)},pointerup:function(t){ki.mouseup.call(this,t)},pointerout:function(t){Ci(t)||ki.mouseout.call(this,t)}};P(["click","dblclick","contextmenu"],(function(t){ki[t]=function(e){e=ee(this.dom,e),this.trigger(t,e)}}));var Pi={pointermove:function(t){Ci(t)||Pi.mousemove.call(this,t)},pointerup:function(t){Pi.mouseup.call(this,t)},mousemove:function(t){this.trigger("mousemove",t)},mouseup:function(t){var e=this.__pointerCapturing;this.__togglePointerCapture(!1),this.trigger("mouseup",t),e&&(t.zrEventControl="only_globalout",this.trigger("mouseout",t))}};function Oi(t,e){var n=e.domHandlers;a.pointerEventsSupported?P(Si.pointer,(function(i){Ni(e,i,(function(e){n[i].call(t,e)}))})):(a.touchEventsSupported&&P(Si.touch,(function(i){Ni(e,i,(function(r){n[i].call(t,r),function(t){t.touching=!0,null!=t.touchTimer&&(clearTimeout(t.touchTimer),t.touchTimer=null),t.touchTimer=setTimeout((function(){t.touching=!1,t.touchTimer=null}),700)}(e)}))})),P(Si.mouse,(function(i){Ni(e,i,(function(r){r=te(r),e.touching||n[i].call(t,r)}))})))}function Ri(t,e){function n(n){Ni(e,n,(function(i){i=te(i),Di(t,i.target)||(i=function(t,e){return ee(t.dom,new Li(t,e),!0)}(t,i),e.domHandlers[n].call(t,i))}),{capture:!0})}a.pointerEventsSupported?P(Ii,n):a.touchEventsSupported||P(Mi,n)}function Ni(t,e,n,i){t.mounted[e]=n,t.listenerOpts[e]=i,ne(t.domTarget,e,n,i)}function Ei(t){var e,n,i,r,o=t.mounted;for(var a in o)o.hasOwnProperty(a)&&(e=t.domTarget,n=a,i=o[a],r=t.listenerOpts[a],qt?e.removeEventListener(n,i,r):e.detachEvent("on"+n,i));t.mounted={}}var zi=function(t,e){this.mounted={},this.listenerOpts={},this.touching=!1,this.domTarget=t,this.domHandlers=e},Bi=function(t){function e(e,n){var i=t.call(this)||this;return i.__pointerCapturing=!1,i.dom=e,i.painterRoot=n,i._localHandlerScope=new zi(e,ki),wi&&(i._globalHandlerScope=new zi(document,Pi)),Oi(i,i._localHandlerScope),i}return vt(e,t),e.prototype.dispose=function(){Ei(this._localHandlerScope),wi&&Ei(this._globalHandlerScope)},e.prototype.setCursor=function(t){this.dom.style&&(this.dom.style.cursor=t||"default")},e.prototype.__togglePointerCapture=function(t){if(this.__mayPointerCapture=null,wi&&+this.__pointerCapturing^+t){this.__pointerCapturing=t;var e=this._globalHandlerScope;t?Ri(this,e):Ei(e)}},e}(Ht),Vi=function(t){function e(e){var n=t.call(this)||this;return n.isGroup=!0,n._children=[],n.attr(e),n}return vt(e,t),e.prototype.childrenRef=function(){return this._children},e.prototype.children=function(){return this._children.slice()},e.prototype.childAt=function(t){return this._children[t]},e.prototype.childOfName=function(t){for(var e=this._children,n=0;n<e.length;n++)if(e[n].name===t)return e[n]},e.prototype.childCount=function(){return this._children.length},e.prototype.add=function(t){if(t&&(t!==this&&t.parent!==this&&(this._children.push(t),this._doAdd(t)),t.__hostTarget))throw"This elemenet has been used as an attachment";return this},e.prototype.addBefore=function(t,e){if(t&&t!==this&&t.parent!==this&&e&&e.parent===this){var n=this._children,i=n.indexOf(e);i>=0&&(n.splice(i,0,t),this._doAdd(t))}return this},e.prototype.replaceAt=function(t,e){var n=this._children,i=n[e];if(t&&t!==this&&t.parent!==this&&t!==i){n[e]=t,i.parent=null;var r=this.__zr;r&&i.removeSelfFromZr(r),this._doAdd(t)}return this},e.prototype._doAdd=function(t){t.parent&&t.parent.remove(t),t.parent=this;var e=this.__zr;e&&e!==t.__zr&&t.addSelfToZr(e),e&&e.refresh()},e.prototype.remove=function(t){var e=this.__zr,n=this._children,i=A(n,t);return i<0||(n.splice(i,1),t.parent=null,e&&t.removeSelfFromZr(e),e&&e.refresh()),this},e.prototype.removeAll=function(){for(var t=this._children,e=this.__zr,n=0;n<t.length;n++){var i=t[n];e&&i.removeSelfFromZr(e),i.parent=null}return t.length=0,this},e.prototype.eachChild=function(t,e){for(var n=this._children,i=0;i<n.length;i++){var r=n[i];t.call(e,r,i)}return this},e.prototype.traverse=function(t,e){for(var n=0;n<this._children.length;n++){var i=this._children[n],r=t.call(e,i);i.isGroup&&!r&&i.traverse(t,e)}return this},e.prototype.addSelfToZr=function(e){t.prototype.addSelfToZr.call(this,e);for(var n=0;n<this._children.length;n++){this._children[n].addSelfToZr(e)}},e.prototype.removeSelfFromZr=function(e){t.prototype.removeSelfFromZr.call(this,e);for(var n=0;n<this._children.length;n++){this._children[n].removeSelfFromZr(e)}},e.prototype.getBoundingRect=function(t){for(var e=new En(0,0,0,0),n=t||this._children,i=[],r=null,o=0;o<n.length;o++){var a=n[o];if(!a.ignore&&!a.invisible){var s=a.getBoundingRect(),l=a.getLocalTransform(i);l?(En.applyTransform(e,s,l),(r=r||e.clone()).union(e)):(r=r||s.clone()).union(s)}}return r||e},e}(ii);Vi.prototype.type="group";
+    ***************************************************************************** */var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])})(t,n)};function n(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}var i=function(){return(i=Object.assign||function(t){for(var e,n=1,i=arguments.length;n<i;n++)for(var r in e=arguments[n])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)};function r(){for(var t=0,e=0,n=arguments.length;e<n;e++)t+=arguments[e].length;var i=Array(t),r=0;for(e=0;e<n;e++)for(var o=arguments[e],a=0,s=o.length;a<s;a++,r++)i[r]=o[a];return i}var o=function(){this.firefox=!1,this.ie=!1,this.edge=!1,this.newEdge=!1,this.weChat=!1},a=new function(){this.browser=new o,this.node=!1,this.wxa=!1,this.worker=!1,this.canvasSupported=!1,this.svgSupported=!1,this.touchEventsSupported=!1,this.pointerEventsSupported=!1,this.domSupported=!1};"object"==typeof wx&&"function"==typeof wx.getSystemInfoSync?(a.wxa=!0,a.canvasSupported=!0,a.touchEventsSupported=!0):"undefined"==typeof document&&"undefined"!=typeof self?(a.worker=!0,a.canvasSupported=!0):"undefined"==typeof navigator?(a.node=!0,a.canvasSupported=!0,a.svgSupported=!0):function(t,e){var n=e.browser,i=t.match(/Firefox\/([\d.]+)/),r=t.match(/MSIE\s([\d.]+)/)||t.match(/Trident\/.+?rv:(([\d.]+))/),o=t.match(/Edge?\/([\d.]+)/),a=/micromessenger/i.test(t);i&&(n.firefox=!0,n.version=i[1]);r&&(n.ie=!0,n.version=r[1]);o&&(n.edge=!0,n.version=o[1],n.newEdge=+o[1].split(".")[0]>18);a&&(n.weChat=!0);e.canvasSupported=!!document.createElement("canvas").getContext,e.svgSupported="undefined"!=typeof SVGRect,e.touchEventsSupported="ontouchstart"in window&&!n.ie&&!n.edge,e.pointerEventsSupported="onpointerdown"in window&&(n.edge||n.ie&&+n.version>=11),e.domSupported="undefined"!=typeof document}(navigator.userAgent,a);var s={"[object Function]":!0,"[object RegExp]":!0,"[object Date]":!0,"[object Error]":!0,"[object CanvasGradient]":!0,"[object CanvasPattern]":!0,"[object Image]":!0,"[object Canvas]":!0},l={"[object Int8Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Int16Array]":!0,"[object Uint16Array]":!0,"[object Int32Array]":!0,"[object Uint32Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0},u=Object.prototype.toString,h=Array.prototype,c=h.forEach,p=h.filter,d=h.slice,f=h.map,g=function(){}.constructor,y=g?g.prototype:null,v={};function m(t,e){v[t]=e}var _=2311;function x(){return _++}function b(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];"undefined"!=typeof console&&console.error.apply(console,t)}function w(t){if(null==t||"object"!=typeof t)return t;var e=t,n=u.call(t);if("[object Array]"===n){if(!lt(t)){e=[];for(var i=0,r=t.length;i<r;i++)e[i]=w(t[i])}}else if(l[n]){if(!lt(t)){var o=t.constructor;if(o.from)e=o.from(t);else{e=new o(t.length);for(i=0,r=t.length;i<r;i++)e[i]=w(t[i])}}}else if(!s[n]&&!lt(t)&&!j(t))for(var a in e={},t)t.hasOwnProperty(a)&&(e[a]=w(t[a]));return e}function S(t,e,n){if(!X(e)||!X(t))return n?w(e):t;for(var i in e)if(e.hasOwnProperty(i)){var r=t[i],o=e[i];!X(o)||!X(r)||F(o)||F(r)||j(o)||j(r)||U(o)||U(r)||lt(o)||lt(r)?!n&&i in t||(t[i]=w(e[i])):S(r,o,n)}return t}function M(t,e){for(var n=t[0],i=1,r=t.length;i<r;i++)n=S(n,t[i],e);return n}function I(t,e){if(Object.assign)Object.assign(t,e);else for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}function T(t,e,n){for(var i=z(e),r=0;r<i.length;r++){var o=i[r];(n?null!=e[o]:null==t[o])&&(t[o]=e[o])}return t}var C=function(){return v.createCanvas()};function A(t,e){if(t){if(t.indexOf)return t.indexOf(e);for(var n=0,i=t.length;n<i;n++)if(t[n]===e)return n}return-1}function D(t,e){var n=t.prototype;function i(){}for(var r in i.prototype=e.prototype,t.prototype=new i,n)n.hasOwnProperty(r)&&(t.prototype[r]=n[r]);t.prototype.constructor=t,t.superClass=e}function L(t,e,n){if(t="prototype"in t?t.prototype:t,e="prototype"in e?e.prototype:e,Object.getOwnPropertyNames)for(var i=Object.getOwnPropertyNames(e),r=0;r<i.length;r++){var o=i[r];"constructor"!==o&&(n?null!=e[o]:null==t[o])&&(t[o]=e[o])}else T(t,e,n)}function k(t){return!!t&&("string"!=typeof t&&"number"==typeof t.length)}function P(t,e,n){if(t&&e)if(t.forEach&&t.forEach===c)t.forEach(e,n);else if(t.length===+t.length)for(var i=0,r=t.length;i<r;i++)e.call(n,t[i],i,t);else for(var o in t)t.hasOwnProperty(o)&&e.call(n,t[o],o,t)}function O(t,e,n){if(!t)return[];if(!e)return nt(t);if(t.map&&t.map===f)return t.map(e,n);for(var i=[],r=0,o=t.length;r<o;r++)i.push(e.call(n,t[r],r,t));return i}function R(t,e,n,i){if(t&&e){for(var r=0,o=t.length;r<o;r++)n=e.call(i,n,t[r],r,t);return n}}function N(t,e,n){if(!t)return[];if(!e)return nt(t);if(t.filter&&t.filter===p)return t.filter(e,n);for(var i=[],r=0,o=t.length;r<o;r++)e.call(n,t[r],r,t)&&i.push(t[r]);return i}function E(t,e,n){if(t&&e)for(var i=0,r=t.length;i<r;i++)if(e.call(n,t[i],i,t))return t[i]}function z(t){if(!t)return[];if(Object.keys)return Object.keys(t);var e=[];for(var n in t)t.hasOwnProperty(n)&&e.push(n);return e}v.createCanvas=function(){return document.createElement("canvas")};var B=y&&G(y.bind)?y.call.bind(y.bind):function(t,e){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];return function(){return t.apply(e,n.concat(d.call(arguments)))}};function V(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return function(){return t.apply(this,e.concat(d.call(arguments)))}}function F(t){return Array.isArray?Array.isArray(t):"[object Array]"===u.call(t)}function G(t){return"function"==typeof t}function H(t){return"string"==typeof t}function W(t){return"[object String]"===u.call(t)}function Y(t){return"number"==typeof t}function X(t){var e=typeof t;return"function"===e||!!t&&"object"===e}function U(t){return!!s[u.call(t)]}function Z(t){return!!l[u.call(t)]}function j(t){return"object"==typeof t&&"number"==typeof t.nodeType&&"object"==typeof t.ownerDocument}function q(t){return null!=t.colorStops}function K(t){return null!=t.image}function $(t){return"[object RegExp]"===u.call(t)}function J(t){return t!=t}function Q(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];for(var n=0,i=t.length;n<i;n++)if(null!=t[n])return t[n]}function tt(t,e){return null!=t?t:e}function et(t,e,n){return null!=t?t:null!=e?e:n}function nt(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return d.apply(t,e)}function it(t){if("number"==typeof t)return[t,t,t,t];var e=t.length;return 2===e?[t[0],t[1],t[0],t[1]]:3===e?[t[0],t[1],t[2],t[1]]:t}function rt(t,e){if(!t)throw new Error(e)}function ot(t){return null==t?null:"function"==typeof t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}var at="__ec_primitive__";function st(t){t[at]=!0}function lt(t){return t[at]}var ut=function(){function t(e){this.data={};var n=F(e);this.data={};var i=this;function r(t,e){n?i.set(t,e):i.set(e,t)}e instanceof t?e.each(r):e&&P(e,r)}return t.prototype.get=function(t){return this.data.hasOwnProperty(t)?this.data[t]:null},t.prototype.set=function(t,e){return this.data[t]=e},t.prototype.each=function(t,e){for(var n in this.data)this.data.hasOwnProperty(n)&&t.call(e,this.data[n],n)},t.prototype.keys=function(){return z(this.data)},t.prototype.removeKey=function(t){delete this.data[t]},t}();function ht(t){return new ut(t)}function ct(t,e){for(var n=new t.constructor(t.length+e.length),i=0;i<t.length;i++)n[i]=t[i];var r=t.length;for(i=0;i<e.length;i++)n[i+r]=e[i];return n}function pt(t,e){var n;if(Object.create)n=Object.create(t);else{var i=function(){};i.prototype=t,n=new i}return e&&I(n,e),n}function dt(t,e){return t.hasOwnProperty(e)}function ft(){}var gt=Object.freeze({__proto__:null,$override:m,guid:x,logError:b,clone:w,merge:S,mergeAll:M,extend:I,defaults:T,createCanvas:C,indexOf:A,inherits:D,mixin:L,isArrayLike:k,each:P,map:O,reduce:R,filter:N,find:E,keys:z,bind:B,curry:V,isArray:F,isFunction:G,isString:H,isStringSafe:W,isNumber:Y,isObject:X,isBuiltInObject:U,isTypedArray:Z,isDom:j,isGradientObject:q,isPatternObject:K,isRegExp:$,eqNaN:J,retrieve:Q,retrieve2:tt,retrieve3:et,slice:nt,normalizeCssArray:it,assert:rt,trim:ot,setAsPrimitive:st,isPrimitive:lt,HashMap:ut,createHashMap:ht,concatArray:ct,createObject:pt,hasOwn:dt,noop:ft});function yt(t,e){return null==t&&(t=0),null==e&&(e=0),[t,e]}function vt(t,e){return t[0]=e[0],t[1]=e[1],t}function mt(t){return[t[0],t[1]]}function _t(t,e,n){return t[0]=e,t[1]=n,t}function xt(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t}function bt(t,e,n,i){return t[0]=e[0]+n[0]*i,t[1]=e[1]+n[1]*i,t}function wt(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t}function St(t){return Math.sqrt(It(t))}var Mt=St;function It(t){return t[0]*t[0]+t[1]*t[1]}var Tt=It;function Ct(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t}function At(t,e){var n=St(e);return 0===n?(t[0]=0,t[1]=0):(t[0]=e[0]/n,t[1]=e[1]/n),t}function Dt(t,e){return Math.sqrt((t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1]))}var Lt=Dt;function kt(t,e){return(t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1])}var Pt=kt;function Ot(t,e,n,i){return t[0]=e[0]+i*(n[0]-e[0]),t[1]=e[1]+i*(n[1]-e[1]),t}function Rt(t,e,n){var i=e[0],r=e[1];return t[0]=n[0]*i+n[2]*r+n[4],t[1]=n[1]*i+n[3]*r+n[5],t}function Nt(t,e,n){return t[0]=Math.min(e[0],n[0]),t[1]=Math.min(e[1],n[1]),t}function Et(t,e,n){return t[0]=Math.max(e[0],n[0]),t[1]=Math.max(e[1],n[1]),t}var zt=Object.freeze({__proto__:null,create:yt,copy:vt,clone:mt,set:_t,add:xt,scaleAndAdd:bt,sub:wt,len:St,length:Mt,lenSquare:It,lengthSquare:Tt,mul:function(t,e,n){return t[0]=e[0]*n[0],t[1]=e[1]*n[1],t},div:function(t,e,n){return t[0]=e[0]/n[0],t[1]=e[1]/n[1],t},dot:function(t,e){return t[0]*e[0]+t[1]*e[1]},scale:Ct,normalize:At,distance:Dt,dist:Lt,distanceSquare:kt,distSquare:Pt,negate:function(t,e){return t[0]=-e[0],t[1]=-e[1],t},lerp:Ot,applyTransform:Rt,min:Nt,max:Et}),Bt=function(t,e){this.target=t,this.topTarget=e&&e.topTarget},Vt=function(){function t(t){this.handler=t,t.on("mousedown",this._dragStart,this),t.on("mousemove",this._drag,this),t.on("mouseup",this._dragEnd,this)}return t.prototype._dragStart=function(t){for(var e=t.target;e&&!e.draggable;)e=e.parent;e&&(this._draggingTarget=e,e.dragging=!0,this._x=t.offsetX,this._y=t.offsetY,this.handler.dispatchToElement(new Bt(e,t),"dragstart",t.event))},t.prototype._drag=function(t){var e=this._draggingTarget;if(e){var n=t.offsetX,i=t.offsetY,r=n-this._x,o=i-this._y;this._x=n,this._y=i,e.drift(r,o,t),this.handler.dispatchToElement(new Bt(e,t),"drag",t.event);var a=this.handler.findHover(n,i,e).target,s=this._dropTarget;this._dropTarget=a,e!==a&&(s&&a!==s&&this.handler.dispatchToElement(new Bt(s,t),"dragleave",t.event),a&&a!==s&&this.handler.dispatchToElement(new Bt(a,t),"dragenter",t.event))}},t.prototype._dragEnd=function(t){var e=this._draggingTarget;e&&(e.dragging=!1),this.handler.dispatchToElement(new Bt(e,t),"dragend",t.event),this._dropTarget&&this.handler.dispatchToElement(new Bt(this._dropTarget,t),"drop",t.event),this._draggingTarget=null,this._dropTarget=null},t}(),Ft=function(){function t(t){t&&(this._$eventProcessor=t)}return t.prototype.on=function(t,e,n,i){this._$handlers||(this._$handlers={});var r=this._$handlers;if("function"==typeof e&&(i=n,n=e,e=null),!n||!t)return this;var o=this._$eventProcessor;null!=e&&o&&o.normalizeQuery&&(e=o.normalizeQuery(e)),r[t]||(r[t]=[]);for(var a=0;a<r[t].length;a++)if(r[t][a].h===n)return this;var s={h:n,query:e,ctx:i||this,callAtLast:n.zrEventfulCallAtLast},l=r[t].length-1,u=r[t][l];return u&&u.callAtLast?r[t].splice(l,0,s):r[t].push(s),this},t.prototype.isSilent=function(t){var e=this._$handlers;return!e||!e[t]||!e[t].length},t.prototype.off=function(t,e){var n=this._$handlers;if(!n)return this;if(!t)return this._$handlers={},this;if(e){if(n[t]){for(var i=[],r=0,o=n[t].length;r<o;r++)n[t][r].h!==e&&i.push(n[t][r]);n[t]=i}n[t]&&0===n[t].length&&delete n[t]}else delete n[t];return this},t.prototype.trigger=function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];if(!this._$handlers)return this;var i=this._$handlers[t],r=this._$eventProcessor;if(i)for(var o=e.length,a=i.length,s=0;s<a;s++){var l=i[s];if(!r||!r.filter||null==l.query||r.filter(t,l.query))switch(o){case 0:l.h.call(l.ctx);break;case 1:l.h.call(l.ctx,e[0]);break;case 2:l.h.call(l.ctx,e[0],e[1]);break;default:l.h.apply(l.ctx,e)}}return r&&r.afterTrigger&&r.afterTrigger(t),this},t.prototype.triggerWithContext=function(t){if(!this._$handlers)return this;var e=this._$handlers[t],n=this._$eventProcessor;if(e)for(var i=arguments,r=i.length,o=i[r-1],a=e.length,s=0;s<a;s++){var l=e[s];if(!n||!n.filter||null==l.query||n.filter(t,l.query))switch(r){case 0:l.h.call(o);break;case 1:l.h.call(o,i[0]);break;case 2:l.h.call(o,i[0],i[1]);break;default:l.h.apply(o,i.slice(1,r-1))}}return n&&n.afterTrigger&&n.afterTrigger(t),this},t}(),Gt=Math.log(2);function Ht(t,e,n,i,r,o){var a=i+"-"+r,s=t.length;if(o.hasOwnProperty(a))return o[a];if(1===e){var l=Math.round(Math.log((1<<s)-1&~r)/Gt);return t[n][l]}for(var u=i|1<<n,h=n+1;i&1<<h;)h++;for(var c=0,p=0,d=0;p<s;p++){var f=1<<p;f&r||(c+=(d%2?-1:1)*t[n][p]*Ht(t,e-1,h,u,r|f,o),d++)}return o[a]=c,c}function Wt(t,e){var n=[[t[0],t[1],1,0,0,0,-e[0]*t[0],-e[0]*t[1]],[0,0,0,t[0],t[1],1,-e[1]*t[0],-e[1]*t[1]],[t[2],t[3],1,0,0,0,-e[2]*t[2],-e[2]*t[3]],[0,0,0,t[2],t[3],1,-e[3]*t[2],-e[3]*t[3]],[t[4],t[5],1,0,0,0,-e[4]*t[4],-e[4]*t[5]],[0,0,0,t[4],t[5],1,-e[5]*t[4],-e[5]*t[5]],[t[6],t[7],1,0,0,0,-e[6]*t[6],-e[6]*t[7]],[0,0,0,t[6],t[7],1,-e[7]*t[6],-e[7]*t[7]]],i={},r=Ht(n,8,0,0,0,i);if(0!==r){for(var o=[],a=0;a<8;a++)for(var s=0;s<8;s++)null==o[s]&&(o[s]=0),o[s]+=((a+s)%2?-1:1)*Ht(n,7,0===a?1:0,1<<a,1<<s,i)/r*e[a];return function(t,e,n){var i=e*o[6]+n*o[7]+1;t[0]=(e*o[0]+n*o[1]+o[2])/i,t[1]=(e*o[3]+n*o[4]+o[5])/i}}}var Yt=[];function Xt(t,e,n,i,r){if(e.getBoundingClientRect&&a.domSupported&&!Ut(e)){var o=e.___zrEVENTSAVED||(e.___zrEVENTSAVED={}),s=function(t,e,n){for(var i=n?"invTrans":"trans",r=e[i],o=e.srcCoords,a=[],s=[],l=!0,u=0;u<4;u++){var h=t[u].getBoundingClientRect(),c=2*u,p=h.left,d=h.top;a.push(p,d),l=l&&o&&p===o[c]&&d===o[c+1],s.push(t[u].offsetLeft,t[u].offsetTop)}return l&&r?r:(e.srcCoords=a,e[i]=n?Wt(s,a):Wt(a,s))}(function(t,e){var n=e.markers;if(n)return n;n=e.markers=[];for(var i=["left","right"],r=["top","bottom"],o=0;o<4;o++){var a=document.createElement("div"),s=o%2,l=(o>>1)%2;a.style.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",i[s]+":0",r[l]+":0",i[1-s]+":auto",r[1-l]+":auto",""].join("!important;"),t.appendChild(a),n.push(a)}return n}(e,o),o,r);if(s)return s(t,n,i),!0}return!1}function Ut(t){return"CANVAS"===t.nodeName.toUpperCase()}var Zt="undefined"!=typeof window&&!!window.addEventListener,jt=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,qt=[];function Kt(t,e,n,i){return n=n||{},i||!a.canvasSupported?$t(t,e,n):a.browser.firefox&&null!=e.layerX&&e.layerX!==e.offsetX?(n.zrX=e.layerX,n.zrY=e.layerY):null!=e.offsetX?(n.zrX=e.offsetX,n.zrY=e.offsetY):$t(t,e,n),n}function $t(t,e,n){if(a.domSupported&&t.getBoundingClientRect){var i=e.clientX,r=e.clientY;if(Ut(t)){var o=t.getBoundingClientRect();return n.zrX=i-o.left,void(n.zrY=r-o.top)}if(Xt(qt,t,i,r))return n.zrX=qt[0],void(n.zrY=qt[1])}n.zrX=n.zrY=0}function Jt(t){return t||window.event}function Qt(t,e,n){if(null!=(e=Jt(e)).zrX)return e;var i=e.type;if(i&&i.indexOf("touch")>=0){var r="touchend"!==i?e.targetTouches[0]:e.changedTouches[0];r&&Kt(t,r,e,n)}else{Kt(t,e,e,n);var o=function(t){var e=t.wheelDelta;if(e)return e;var n=t.deltaX,i=t.deltaY;if(null==n||null==i)return e;return 3*(0!==i?Math.abs(i):Math.abs(n))*(i>0?-1:i<0?1:n>0?-1:1)}(e);e.zrDelta=o?o/120:-(e.detail||0)/3}var a=e.button;return null==e.which&&void 0!==a&&jt.test(e.type)&&(e.which=1&a?1:2&a?3:4&a?2:0),e}function te(t,e,n,i){Zt?t.addEventListener(e,n,i):t.attachEvent("on"+e,n)}var ee=Zt?function(t){t.preventDefault(),t.stopPropagation(),t.cancelBubble=!0}:function(t){t.returnValue=!1,t.cancelBubble=!0};function ne(t){return 2===t.which||3===t.which}var ie=function(){function t(){this._track=[]}return t.prototype.recognize=function(t,e,n){return this._doTrack(t,e,n),this._recognize(t)},t.prototype.clear=function(){return this._track.length=0,this},t.prototype._doTrack=function(t,e,n){var i=t.touches;if(i){for(var r={points:[],touches:[],target:e,event:t},o=0,a=i.length;o<a;o++){var s=i[o],l=Kt(n,s,{});r.points.push([l.zrX,l.zrY]),r.touches.push(s)}this._track.push(r)}},t.prototype._recognize=function(t){for(var e in oe)if(oe.hasOwnProperty(e)){var n=oe[e](this._track,t);if(n)return n}},t}();function re(t){var e=t[1][0]-t[0][0],n=t[1][1]-t[0][1];return Math.sqrt(e*e+n*n)}var oe={pinch:function(t,e){var n=t.length;if(n){var i,r=(t[n-1]||{}).points,o=(t[n-2]||{}).points||r;if(o&&o.length>1&&r&&r.length>1){var a=re(r)/re(o);!isFinite(a)&&(a=1),e.pinchScale=a;var s=[((i=r)[0][0]+i[1][0])/2,(i[0][1]+i[1][1])/2];return e.pinchX=s[0],e.pinchY=s[1],{type:"pinch",target:t[0].target,event:e}}}}},ae="silent";function se(){ee(this.event)}var le=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.handler=null,e}return n(e,t),e.prototype.dispose=function(){},e.prototype.setCursor=function(){},e}(Ft),ue=function(t,e){this.x=t,this.y=e},he=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],ce=function(t){function e(e,n,i,r){var o=t.call(this)||this;return o._hovered=new ue(0,0),o.storage=e,o.painter=n,o.painterRoot=r,i=i||new le,o.proxy=null,o.setHandlerProxy(i),o._draggingMgr=new Vt(o),o}return n(e,t),e.prototype.setHandlerProxy=function(t){this.proxy&&this.proxy.dispose(),t&&(P(he,(function(e){t.on&&t.on(e,this[e],this)}),this),t.handler=this),this.proxy=t},e.prototype.mousemove=function(t){var e=t.zrX,n=t.zrY,i=de(this,e,n),r=this._hovered,o=r.target;o&&!o.__zr&&(o=(r=this.findHover(r.x,r.y)).target);var a=this._hovered=i?new ue(e,n):this.findHover(e,n),s=a.target,l=this.proxy;l.setCursor&&l.setCursor(s?s.cursor:"default"),o&&s!==o&&this.dispatchToElement(r,"mouseout",t),this.dispatchToElement(a,"mousemove",t),s&&s!==o&&this.dispatchToElement(a,"mouseover",t)},e.prototype.mouseout=function(t){var e=t.zrEventControl;"only_globalout"!==e&&this.dispatchToElement(this._hovered,"mouseout",t),"no_globalout"!==e&&this.trigger("globalout",{type:"globalout",event:t})},e.prototype.resize=function(){this._hovered=new ue(0,0)},e.prototype.dispatch=function(t,e){var n=this[t];n&&n.call(this,e)},e.prototype.dispose=function(){this.proxy.dispose(),this.storage=null,this.proxy=null,this.painter=null},e.prototype.setCursorStyle=function(t){var e=this.proxy;e.setCursor&&e.setCursor(t)},e.prototype.dispatchToElement=function(t,e,n){var i=(t=t||{}).target;if(!i||!i.silent){for(var r="on"+e,o=function(t,e,n){return{type:t,event:n,target:e.target,topTarget:e.topTarget,cancelBubble:!1,offsetX:n.zrX,offsetY:n.zrY,gestureEvent:n.gestureEvent,pinchX:n.pinchX,pinchY:n.pinchY,pinchScale:n.pinchScale,wheelDelta:n.zrDelta,zrByTouch:n.zrByTouch,which:n.which,stop:se}}(e,t,n);i&&(i[r]&&(o.cancelBubble=!!i[r].call(i,o)),i.trigger(e,o),i=i.__hostTarget?i.__hostTarget:i.parent,!o.cancelBubble););o.cancelBubble||(this.trigger(e,o),this.painter&&this.painter.eachOtherLayer&&this.painter.eachOtherLayer((function(t){"function"==typeof t[r]&&t[r].call(t,o),t.trigger&&t.trigger(e,o)})))}},e.prototype.findHover=function(t,e,n){for(var i=this.storage.getDisplayList(),r=new ue(t,e),o=i.length-1;o>=0;o--){var a=void 0;if(i[o]!==n&&!i[o].ignore&&(a=pe(i[o],t,e))&&(!r.topTarget&&(r.topTarget=i[o]),a!==ae)){r.target=i[o];break}}return r},e.prototype.processGesture=function(t,e){this._gestureMgr||(this._gestureMgr=new ie);var n=this._gestureMgr;"start"===e&&n.clear();var i=n.recognize(t,this.findHover(t.zrX,t.zrY,null).target,this.proxy.dom);if("end"===e&&n.clear(),i){var r=i.type;t.gestureEvent=r;var o=new ue;o.target=i.target,this.dispatchToElement(o,r,i.event)}},e}(Ft);function pe(t,e,n){if(t[t.rectHover?"rectContain":"contain"](e,n)){for(var i=t,r=void 0,o=!1;i;){if(i.ignoreClip&&(o=!0),!o){var a=i.getClipPath();if(a&&!a.contain(e,n))return!1;i.silent&&(r=!0)}var s=i.__hostTarget;i=s||i.parent}return!r||ae}return!1}function de(t,e,n){var i=t.painter;return e<0||e>i.getWidth()||n<0||n>i.getHeight()}function fe(){return[1,0,0,1,0,0]}function ge(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t}function ye(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function ve(t,e,n){var i=e[0]*n[0]+e[2]*n[1],r=e[1]*n[0]+e[3]*n[1],o=e[0]*n[2]+e[2]*n[3],a=e[1]*n[2]+e[3]*n[3],s=e[0]*n[4]+e[2]*n[5]+e[4],l=e[1]*n[4]+e[3]*n[5]+e[5];return t[0]=i,t[1]=r,t[2]=o,t[3]=a,t[4]=s,t[5]=l,t}function me(t,e,n){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4]+n[0],t[5]=e[5]+n[1],t}function _e(t,e,n){var i=e[0],r=e[2],o=e[4],a=e[1],s=e[3],l=e[5],u=Math.sin(n),h=Math.cos(n);return t[0]=i*h+a*u,t[1]=-i*u+a*h,t[2]=r*h+s*u,t[3]=-r*u+h*s,t[4]=h*o+u*l,t[5]=h*l-u*o,t}function xe(t,e,n){var i=n[0],r=n[1];return t[0]=e[0]*i,t[1]=e[1]*r,t[2]=e[2]*i,t[3]=e[3]*r,t[4]=e[4]*i,t[5]=e[5]*r,t}function be(t,e){var n=e[0],i=e[2],r=e[4],o=e[1],a=e[3],s=e[5],l=n*a-o*i;return l?(l=1/l,t[0]=a*l,t[1]=-o*l,t[2]=-i*l,t[3]=n*l,t[4]=(i*s-a*r)*l,t[5]=(o*r-n*s)*l,t):null}function we(t){var e=[1,0,0,1,0,0];return ye(e,t),e}P(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],(function(t){ce.prototype[t]=function(e){var n,i,r=e.zrX,o=e.zrY,a=de(this,r,o);if("mouseup"===t&&a||(i=(n=this.findHover(r,o)).target),"mousedown"===t)this._downEl=i,this._downPoint=[e.zrX,e.zrY],this._upEl=i;else if("mouseup"===t)this._upEl=i;else if("click"===t){if(this._downEl!==this._upEl||!this._downPoint||Lt(this._downPoint,[e.zrX,e.zrY])>4)return;this._downPoint=null}this.dispatchToElement(n,t,e)}}));var Se=Object.freeze({__proto__:null,create:fe,identity:ge,copy:ye,mul:ve,translate:me,rotate:_e,scale:xe,invert:be,clone:we}),Me=ge,Ie=5e-5;function Te(t){return t>Ie||t<-5e-5}var Ce=[],Ae=[],De=[1,0,0,1,0,0],Le=Math.abs,ke=function(){function t(){}return t.prototype.setPosition=function(t){this.x=t[0],this.y=t[1]},t.prototype.setScale=function(t){this.scaleX=t[0],this.scaleY=t[1]},t.prototype.setOrigin=function(t){this.originX=t[0],this.originY=t[1]},t.prototype.needLocalTransform=function(){return Te(this.rotation)||Te(this.x)||Te(this.y)||Te(this.scaleX-1)||Te(this.scaleY-1)},t.prototype.updateTransform=function(){var t=this.parent,e=t&&t.transform,n=this.needLocalTransform(),i=this.transform;n||e?(i=i||[1,0,0,1,0,0],n?this.getLocalTransform(i):Me(i),e&&(n?ve(i,t.transform,i):ye(i,t.transform)),this.transform=i,this._resolveGlobalScaleRatio(i)):i&&Me(i)},t.prototype._resolveGlobalScaleRatio=function(t){var e=this.globalScaleRatio;if(null!=e&&1!==e){this.getGlobalScale(Ce);var n=Ce[0]<0?-1:1,i=Ce[1]<0?-1:1,r=((Ce[0]-n)*e+n)/Ce[0]||0,o=((Ce[1]-i)*e+i)/Ce[1]||0;t[0]*=r,t[1]*=r,t[2]*=o,t[3]*=o}this.invTransform=this.invTransform||[1,0,0,1,0,0],be(this.invTransform,t)},t.prototype.getLocalTransform=function(e){return t.getLocalTransform(this,e)},t.prototype.getComputedTransform=function(){for(var t=this,e=[];t;)e.push(t),t=t.parent;for(;t=e.pop();)t.updateTransform();return this.transform},t.prototype.setLocalTransform=function(t){if(t){var e=t[0]*t[0]+t[1]*t[1],n=t[2]*t[2]+t[3]*t[3];Te(e-1)&&(e=Math.sqrt(e)),Te(n-1)&&(n=Math.sqrt(n)),t[0]<0&&(e=-e),t[3]<0&&(n=-n),this.rotation=Math.atan2(-t[1]/n,t[0]/e),e<0&&n<0&&(this.rotation+=Math.PI,e=-e,n=-n),this.x=t[4],this.y=t[5],this.scaleX=e,this.scaleY=n}},t.prototype.decomposeTransform=function(){if(this.transform){var t=this.parent,e=this.transform;t&&t.transform&&(ve(Ae,t.invTransform,e),e=Ae);var n=this.originX,i=this.originY;(n||i)&&(De[4]=n,De[5]=i,ve(Ae,e,De),Ae[4]-=n,Ae[5]-=i,e=Ae),this.setLocalTransform(e)}},t.prototype.getGlobalScale=function(t){var e=this.transform;return t=t||[],e?(t[0]=Math.sqrt(e[0]*e[0]+e[1]*e[1]),t[1]=Math.sqrt(e[2]*e[2]+e[3]*e[3]),e[0]<0&&(t[0]=-t[0]),e[3]<0&&(t[1]=-t[1]),t):(t[0]=1,t[1]=1,t)},t.prototype.transformCoordToLocal=function(t,e){var n=[t,e],i=this.invTransform;return i&&Rt(n,n,i),n},t.prototype.transformCoordToGlobal=function(t,e){var n=[t,e],i=this.transform;return i&&Rt(n,n,i),n},t.prototype.getLineScale=function(){var t=this.transform;return t&&Le(t[0]-1)>1e-10&&Le(t[3]-1)>1e-10?Math.sqrt(Le(t[0]*t[3]-t[2]*t[1])):1},t.getLocalTransform=function(t,e){Me(e=e||[]);var n=t.originX||0,i=t.originY||0,r=t.scaleX,o=t.scaleY,a=t.rotation||0,s=t.x,l=t.y;return e[4]-=n,e[5]-=i,e[0]*=r,e[1]*=o,e[2]*=r,e[3]*=o,e[4]*=r,e[5]*=o,a&&_e(e,e,a),e[4]+=n,e[5]+=i,e[4]+=s,e[5]+=l,e},t.initDefaultProps=function(){var e=t.prototype;e.x=0,e.y=0,e.scaleX=1,e.scaleY=1,e.originX=0,e.originY=0,e.rotation=0,e.globalScaleRatio=1}(),t}(),Pe={linear:function(t){return t},quadraticIn:function(t){return t*t},quadraticOut:function(t){return t*(2-t)},quadraticInOut:function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)},cubicIn:function(t){return t*t*t},cubicOut:function(t){return--t*t*t+1},cubicInOut:function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},quarticIn:function(t){return t*t*t*t},quarticOut:function(t){return 1- --t*t*t*t},quarticInOut:function(t){return(t*=2)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},quinticIn:function(t){return t*t*t*t*t},quinticOut:function(t){return--t*t*t*t*t+1},quinticInOut:function(t){return(t*=2)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},sinusoidalIn:function(t){return 1-Math.cos(t*Math.PI/2)},sinusoidalOut:function(t){return Math.sin(t*Math.PI/2)},sinusoidalInOut:function(t){return.5*(1-Math.cos(Math.PI*t))},exponentialIn:function(t){return 0===t?0:Math.pow(1024,t-1)},exponentialOut:function(t){return 1===t?1:1-Math.pow(2,-10*t)},exponentialInOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(2-Math.pow(2,-10*(t-1)))},circularIn:function(t){return 1-Math.sqrt(1-t*t)},circularOut:function(t){return Math.sqrt(1- --t*t)},circularInOut:function(t){return(t*=2)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},elasticIn:function(t){var e,n=.1;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=.4*Math.asin(1/n)/(2*Math.PI),-n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/.4))},elasticOut:function(t){var e,n=.1;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=.4*Math.asin(1/n)/(2*Math.PI),n*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/.4)+1)},elasticInOut:function(t){var e,n=.1,i=.4;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=i*Math.asin(1/n)/(2*Math.PI),(t*=2)<1?n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*-.5:n*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*.5+1)},backIn:function(t){var e=1.70158;return t*t*((e+1)*t-e)},backOut:function(t){var e=1.70158;return--t*t*((e+1)*t+e)+1},backInOut:function(t){var e=2.5949095;return(t*=2)<1?t*t*((e+1)*t-e)*.5:.5*((t-=2)*t*((e+1)*t+e)+2)},bounceIn:function(t){return 1-Pe.bounceOut(1-t)},bounceOut:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},bounceInOut:function(t){return t<.5?.5*Pe.bounceIn(2*t):.5*Pe.bounceOut(2*t-1)+.5}},Oe=function(){function t(t){this._initialized=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=t.life||1e3,this._delay=t.delay||0,this.loop=null!=t.loop&&t.loop,this.gap=t.gap||0,this.easing=t.easing||"linear",this.onframe=t.onframe,this.ondestroy=t.ondestroy,this.onrestart=t.onrestart}return t.prototype.step=function(t,e){if(this._initialized||(this._startTime=t+this._delay,this._initialized=!0),!this._paused){var n=(t-this._startTime-this._pausedTime)/this._life;n<0&&(n=0),n=Math.min(n,1);var i=this.easing,r="string"==typeof i?Pe[i]:i,o="function"==typeof r?r(n):n;if(this.onframe&&this.onframe(o),1===n){if(!this.loop)return!0;this._restart(t),this.onrestart&&this.onrestart()}return!1}this._pausedTime+=e},t.prototype._restart=function(t){var e=(t-this._startTime-this._pausedTime)%this._life;this._startTime=t-e+this.gap,this._pausedTime=0},t.prototype.pause=function(){this._paused=!0},t.prototype.resume=function(){this._paused=!1},t}(),Re=function(t){this.value=t},Ne=function(){function t(){this._len=0}return t.prototype.insert=function(t){var e=new Re(t);return this.insertEntry(e),e},t.prototype.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t):this.head=this.tail=t,this._len++},t.prototype.remove=function(t){var e=t.prev,n=t.next;e?e.next=n:this.head=n,n?n.prev=e:this.tail=e,t.next=t.prev=null,this._len--},t.prototype.len=function(){return this._len},t.prototype.clear=function(){this.head=this.tail=null,this._len=0},t}(),Ee=function(){function t(t){this._list=new Ne,this._maxSize=10,this._map={},this._maxSize=t}return t.prototype.put=function(t,e){var n=this._list,i=this._map,r=null;if(null==i[t]){var o=n.len(),a=this._lastRemovedEntry;if(o>=this._maxSize&&o>0){var s=n.head;n.remove(s),delete i[s.key],r=s.value,this._lastRemovedEntry=s}a?a.value=e:a=new Re(e),a.key=t,n.insertEntry(a),i[t]=a}return r},t.prototype.get=function(t){var e=this._map[t],n=this._list;if(null!=e)return e!==n.tail&&(n.remove(e),n.insertEntry(e)),e.value},t.prototype.clear=function(){this._list.clear(),this._map={}},t.prototype.len=function(){return this._list.len()},t}(),ze={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function Be(t){return(t=Math.round(t))<0?0:t>255?255:t}function Ve(t){return t<0?0:t>1?1:t}function Fe(t){var e=t;return e.length&&"%"===e.charAt(e.length-1)?Be(parseFloat(e)/100*255):Be(parseInt(e,10))}function Ge(t){var e=t;return e.length&&"%"===e.charAt(e.length-1)?Ve(parseFloat(e)/100):Ve(parseFloat(e))}function He(t,e,n){return n<0?n+=1:n>1&&(n-=1),6*n<1?t+(e-t)*n*6:2*n<1?e:3*n<2?t+(e-t)*(2/3-n)*6:t}function We(t,e,n){return t+(e-t)*n}function Ye(t,e,n,i,r){return t[0]=e,t[1]=n,t[2]=i,t[3]=r,t}function Xe(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}var Ue=new Ee(20),Ze=null;function je(t,e){Ze&&Xe(Ze,e),Ze=Ue.put(t,Ze||e.slice())}function qe(t,e){if(t){e=e||[];var n=Ue.get(t);if(n)return Xe(e,n);var i=(t+="").replace(/ /g,"").toLowerCase();if(i in ze)return Xe(e,ze[i]),je(t,e),e;var r,o=i.length;if("#"===i.charAt(0))return 4===o||5===o?(r=parseInt(i.slice(1,4),16))>=0&&r<=4095?(Ye(e,(3840&r)>>4|(3840&r)>>8,240&r|(240&r)>>4,15&r|(15&r)<<4,5===o?parseInt(i.slice(4),16)/15:1),je(t,e),e):void Ye(e,0,0,0,1):7===o||9===o?(r=parseInt(i.slice(1,7),16))>=0&&r<=16777215?(Ye(e,(16711680&r)>>16,(65280&r)>>8,255&r,9===o?parseInt(i.slice(7),16)/255:1),je(t,e),e):void Ye(e,0,0,0,1):void 0;var a=i.indexOf("("),s=i.indexOf(")");if(-1!==a&&s+1===o){var l=i.substr(0,a),u=i.substr(a+1,s-(a+1)).split(","),h=1;switch(l){case"rgba":if(4!==u.length)return 3===u.length?Ye(e,+u[0],+u[1],+u[2],1):Ye(e,0,0,0,1);h=Ge(u.pop());case"rgb":return 3!==u.length?void Ye(e,0,0,0,1):(Ye(e,Fe(u[0]),Fe(u[1]),Fe(u[2]),h),je(t,e),e);case"hsla":return 4!==u.length?void Ye(e,0,0,0,1):(u[3]=Ge(u[3]),Ke(u,e),je(t,e),e);case"hsl":return 3!==u.length?void Ye(e,0,0,0,1):(Ke(u,e),je(t,e),e);default:return}}Ye(e,0,0,0,1)}}function Ke(t,e){var n=(parseFloat(t[0])%360+360)%360/360,i=Ge(t[1]),r=Ge(t[2]),o=r<=.5?r*(i+1):r+i-r*i,a=2*r-o;return Ye(e=e||[],Be(255*He(a,o,n+1/3)),Be(255*He(a,o,n)),Be(255*He(a,o,n-1/3)),1),4===t.length&&(e[3]=t[3]),e}function $e(t,e){var n=qe(t);if(n){for(var i=0;i<3;i++)n[i]=e<0?n[i]*(1-e)|0:(255-n[i])*e+n[i]|0,n[i]>255?n[i]=255:n[i]<0&&(n[i]=0);return an(n,4===n.length?"rgba":"rgb")}}function Je(t){var e=qe(t);if(e)return((1<<24)+(e[0]<<16)+(e[1]<<8)+ +e[2]).toString(16).slice(1)}function Qe(t,e,n){if(e&&e.length&&t>=0&&t<=1){n=n||[];var i=t*(e.length-1),r=Math.floor(i),o=Math.ceil(i),a=e[r],s=e[o],l=i-r;return n[0]=Be(We(a[0],s[0],l)),n[1]=Be(We(a[1],s[1],l)),n[2]=Be(We(a[2],s[2],l)),n[3]=Ve(We(a[3],s[3],l)),n}}var tn=Qe;function en(t,e,n){if(e&&e.length&&t>=0&&t<=1){var i=t*(e.length-1),r=Math.floor(i),o=Math.ceil(i),a=qe(e[r]),s=qe(e[o]),l=i-r,u=an([Be(We(a[0],s[0],l)),Be(We(a[1],s[1],l)),Be(We(a[2],s[2],l)),Ve(We(a[3],s[3],l))],"rgba");return n?{color:u,leftIndex:r,rightIndex:o,value:i}:u}}var nn=en;function rn(t,e,n,i){var r=qe(t);if(t)return r=function(t){if(t){var e,n,i=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.min(i,r,o),s=Math.max(i,r,o),l=s-a,u=(s+a)/2;if(0===l)e=0,n=0;else{n=u<.5?l/(s+a):l/(2-s-a);var h=((s-i)/6+l/2)/l,c=((s-r)/6+l/2)/l,p=((s-o)/6+l/2)/l;i===s?e=p-c:r===s?e=1/3+h-p:o===s&&(e=2/3+c-h),e<0&&(e+=1),e>1&&(e-=1)}var d=[360*e,n,u];return null!=t[3]&&d.push(t[3]),d}}(r),null!=e&&(r[0]=function(t){return(t=Math.round(t))<0?0:t>360?360:t}(e)),null!=n&&(r[1]=Ge(n)),null!=i&&(r[2]=Ge(i)),an(Ke(r),"rgba")}function on(t,e){var n=qe(t);if(n&&null!=e)return n[3]=Ve(e),an(n,"rgba")}function an(t,e){if(t&&t.length){var n=t[0]+","+t[1]+","+t[2];return"rgba"!==e&&"hsva"!==e&&"hsla"!==e||(n+=","+t[3]),e+"("+n+")"}}function sn(t,e){var n=qe(t);return n?(.299*n[0]+.587*n[1]+.114*n[2])*n[3]/255+(1-n[3])*e:0}var ln=Object.freeze({__proto__:null,parse:qe,lift:$e,toHex:Je,fastLerp:Qe,fastMapToColor:tn,lerp:en,mapToColor:nn,modifyHSL:rn,modifyAlpha:on,stringify:an,lum:sn,random:function(){return"rgb("+Math.round(255*Math.random())+","+Math.round(255*Math.random())+","+Math.round(255*Math.random())+")"}}),un=Array.prototype.slice;function hn(t,e,n){return(e-t)*n+t}function cn(t,e,n,i){for(var r=e.length,o=0;o<r;o++)t[o]=hn(e[o],n[o],i)}function pn(t,e,n,i){for(var r=e.length,o=0;o<r;o++)t[o]=e[o]+n[o]*i;return t}function dn(t,e,n,i){for(var r=e.length,o=r&&e[0].length,a=0;a<r;a++){t[a]||(t[a]=[]);for(var s=0;s<o;s++)t[a][s]=e[a][s]+n[a][s]*i}return t}function fn(t,e,n){var i=t,r=e;if(i.push&&r.push){var o=i.length,a=r.length;if(o!==a)if(o>a)i.length=a;else for(var s=o;s<a;s++)i.push(1===n?r[s]:un.call(r[s]));var l=i[0]&&i[0].length;for(s=0;s<i.length;s++)if(1===n)isNaN(i[s])&&(i[s]=r[s]);else for(var u=0;u<l;u++)isNaN(i[s][u])&&(i[s][u]=r[s][u])}}function gn(t,e){var n=t.length;if(n!==e.length)return!1;for(var i=0;i<n;i++)if(t[i]!==e[i])return!1;return!0}function yn(t,e,n,i,r,o,a){var s=.5*(n-t),l=.5*(i-e);return(2*(e-n)+s+l)*a+(-3*(e-n)-2*s-l)*o+s*r+e}function vn(t,e,n,i,r,o,a,s){for(var l=e.length,u=0;u<l;u++)t[u]=yn(e[u],n[u],i[u],r[u],o,a,s)}function mn(t){if(k(t)){var e=t.length;if(k(t[0])){for(var n=[],i=0;i<e;i++)n.push(un.call(t[i]));return n}return un.call(t)}return t}function _n(t){return t[0]=Math.floor(t[0]),t[1]=Math.floor(t[1]),t[2]=Math.floor(t[2]),"rgba("+t.join(",")+")"}var xn,bn,wn=[0,0,0,0],Sn=function(){function t(t){this.keyframes=[],this.maxTime=0,this.arrDim=0,this.interpolable=!0,this._needsSort=!1,this._isAllValueEqual=!0,this._lastFrame=0,this._lastFramePercent=0,this.propName=t}return t.prototype.isFinished=function(){return this._finished},t.prototype.setFinished=function(){this._finished=!0,this._additiveTrack&&this._additiveTrack.setFinished()},t.prototype.needsAnimate=function(){return!this._isAllValueEqual&&this.keyframes.length>=2&&this.interpolable},t.prototype.getAdditiveTrack=function(){return this._additiveTrack},t.prototype.addKeyframe=function(t,e){t>=this.maxTime?this.maxTime=t:this._needsSort=!0;var n=this.keyframes,i=n.length;if(this.interpolable)if(k(e)){var r=function(t){return k(t&&t[0])?2:1}(e);if(i>0&&this.arrDim!==r)return void(this.interpolable=!1);if(1===r&&"number"!=typeof e[0]||2===r&&"number"!=typeof e[0][0])return void(this.interpolable=!1);if(i>0){var o=n[i-1];this._isAllValueEqual&&(1===r&&gn(e,o.value)||(this._isAllValueEqual=!1))}this.arrDim=r}else{if(this.arrDim>0)return void(this.interpolable=!1);if("string"==typeof e){var a=qe(e);a?(e=a,this.isValueColor=!0):this.interpolable=!1}else if("number"!=typeof e)return void(this.interpolable=!1);if(this._isAllValueEqual&&i>0){o=n[i-1];(this.isValueColor&&!gn(o.value,e)||o.value!==e)&&(this._isAllValueEqual=!1)}}var s={time:t,value:e,percent:0};return this.keyframes.push(s),s},t.prototype.prepare=function(t){var e=this.keyframes;this._needsSort&&e.sort((function(t,e){return t.time-e.time}));for(var n=this.arrDim,i=e.length,r=e[i-1],o=0;o<i;o++)e[o].percent=e[o].time/this.maxTime,n>0&&o!==i-1&&fn(e[o].value,r.value,n);if(t&&this.needsAnimate()&&t.needsAnimate()&&n===t.arrDim&&this.isValueColor===t.isValueColor&&!t._finished){this._additiveTrack=t;var a=e[0].value;for(o=0;o<i;o++)0===n?this.isValueColor?e[o].additiveValue=pn([],e[o].value,a,-1):e[o].additiveValue=e[o].value-a:1===n?e[o].additiveValue=pn([],e[o].value,a,-1):2===n&&(e[o].additiveValue=dn([],e[o].value,a,-1))}},t.prototype.step=function(t,e){if(!this._finished){this._additiveTrack&&this._additiveTrack._finished&&(this._additiveTrack=null);var n,i=null!=this._additiveTrack,r=i?"additiveValue":"value",o=this.keyframes,a=this.keyframes.length,s=this.propName,l=this.arrDim,u=this.isValueColor;if(e<0)n=0;else if(e<this._lastFramePercent){for(n=Math.min(this._lastFrame+1,a-1);n>=0&&!(o[n].percent<=e);n--);n=Math.min(n,a-2)}else{for(n=this._lastFrame;n<a&&!(o[n].percent>e);n++);n=Math.min(n-1,a-2)}var h=o[n+1],c=o[n];if(c&&h){this._lastFrame=n,this._lastFramePercent=e;var p=h.percent-c.percent;if(0!==p){var d=(e-c.percent)/p,f=i?this._additiveValue:u?wn:t[s];if((l>0||u)&&!f&&(f=this._additiveValue=[]),this.useSpline){var g=o[n][r],y=o[0===n?n:n-1][r],v=o[n>a-2?a-1:n+1][r],m=o[n>a-3?a-1:n+2][r];if(l>0)1===l?vn(f,y,g,v,m,d,d*d,d*d*d):function(t,e,n,i,r,o,a,s){for(var l=e.length,u=e[0].length,h=0;h<l;h++){t[h]||(t[1]=[]);for(var c=0;c<u;c++)t[h][c]=yn(e[h][c],n[h][c],i[h][c],r[h][c],o,a,s)}}(f,y,g,v,m,d,d*d,d*d*d);else if(u)vn(f,y,g,v,m,d,d*d,d*d*d),i||(t[s]=_n(f));else{var _=void 0;_=this.interpolable?yn(y,g,v,m,d,d*d,d*d*d):v,i?this._additiveValue=_:t[s]=_}}else if(l>0)1===l?cn(f,c[r],h[r],d):function(t,e,n,i){for(var r=e.length,o=r&&e[0].length,a=0;a<r;a++){t[a]||(t[a]=[]);for(var s=0;s<o;s++)t[a][s]=hn(e[a][s],n[a][s],i)}}(f,c[r],h[r],d);else if(u)cn(f,c[r],h[r],d),i||(t[s]=_n(f));else{_=void 0;_=this.interpolable?hn(c[r],h[r],d):function(t,e,n){return n>.5?e:t}(c[r],h[r],d),i?this._additiveValue=_:t[s]=_}i&&this._addToTarget(t)}}}},t.prototype._addToTarget=function(t){var e=this.arrDim,n=this.propName,i=this._additiveValue;0===e?this.isValueColor?(qe(t[n],wn),pn(wn,wn,i,1),t[n]=_n(wn)):t[n]=t[n]+i:1===e?pn(t[n],t[n],i,1):2===e&&dn(t[n],t[n],i,1)},t}(),Mn=function(){function t(t,e,n){this._tracks={},this._trackKeys=[],this._delay=0,this._maxTime=0,this._paused=!1,this._started=0,this._clip=null,this._target=t,this._loop=e,e&&n?b("Can' use additive animation on looped animation."):this._additiveAnimators=n}return t.prototype.getTarget=function(){return this._target},t.prototype.changeTarget=function(t){this._target=t},t.prototype.when=function(t,e){return this.whenWithKeys(t,e,z(e))},t.prototype.whenWithKeys=function(t,e,n){for(var i=this._tracks,r=0;r<n.length;r++){var o=n[r],a=i[o];if(!a){a=i[o]=new Sn(o);var s=void 0,l=this._getAdditiveTrack(o);if(l){var u=l.keyframes[l.keyframes.length-1];s=u&&u.value,l.isValueColor&&s&&(s=_n(s))}else s=this._target[o];if(null==s)continue;0!==t&&a.addKeyframe(0,mn(s)),this._trackKeys.push(o)}a.addKeyframe(t,mn(e[o]))}return this._maxTime=Math.max(this._maxTime,t),this},t.prototype.pause=function(){this._clip.pause(),this._paused=!0},t.prototype.resume=function(){this._clip.resume(),this._paused=!1},t.prototype.isPaused=function(){return!!this._paused},t.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var t=this._doneList;if(t)for(var e=t.length,n=0;n<e;n++)t[n].call(this)},t.prototype._abortedCallback=function(){this._setTracksFinished();var t=this.animation,e=this._abortedList;if(t&&t.removeClip(this._clip),this._clip=null,e)for(var n=0;n<e.length;n++)e[n].call(this)},t.prototype._setTracksFinished=function(){for(var t=this._tracks,e=this._trackKeys,n=0;n<e.length;n++)t[e[n]].setFinished()},t.prototype._getAdditiveTrack=function(t){var e,n=this._additiveAnimators;if(n)for(var i=0;i<n.length;i++){var r=n[i].getTrack(t);r&&(e=r)}return e},t.prototype.start=function(t,e){if(!(this._started>0)){this._started=1;for(var n=this,i=[],r=0;r<this._trackKeys.length;r++){var o=this._trackKeys[r],a=this._tracks[o],s=this._getAdditiveTrack(o),l=a.keyframes;if(a.prepare(s),a.needsAnimate())i.push(a);else if(!a.interpolable){var u=l[l.length-1];u&&(n._target[a.propName]=u.value)}}if(i.length||e){var h=new Oe({life:this._maxTime,loop:this._loop,delay:this._delay,onframe:function(t){n._started=2;var e=n._additiveAnimators;if(e){for(var r=!1,o=0;o<e.length;o++)if(e[o]._clip){r=!0;break}r||(n._additiveAnimators=null)}for(o=0;o<i.length;o++)i[o].step(n._target,t);var a=n._onframeList;if(a)for(o=0;o<a.length;o++)a[o](n._target,t)},ondestroy:function(){n._doneCallback()}});this._clip=h,this.animation&&this.animation.addClip(h),t&&"spline"!==t&&(h.easing=t)}else this._doneCallback();return this}},t.prototype.stop=function(t){if(this._clip){var e=this._clip;t&&e.onframe(1),this._abortedCallback()}},t.prototype.delay=function(t){return this._delay=t,this},t.prototype.during=function(t){return t&&(this._onframeList||(this._onframeList=[]),this._onframeList.push(t)),this},t.prototype.done=function(t){return t&&(this._doneList||(this._doneList=[]),this._doneList.push(t)),this},t.prototype.aborted=function(t){return t&&(this._abortedList||(this._abortedList=[]),this._abortedList.push(t)),this},t.prototype.getClip=function(){return this._clip},t.prototype.getTrack=function(t){return this._tracks[t]},t.prototype.stopTracks=function(t,e){if(!t.length||!this._clip)return!0;for(var n=this._tracks,i=this._trackKeys,r=0;r<t.length;r++){var o=n[t[r]];o&&(e?o.step(this._target,1):1===this._started&&o.step(this._target,0),o.setFinished())}var a=!0;for(r=0;r<i.length;r++)if(!n[i[r]].isFinished()){a=!1;break}return a&&this._abortedCallback(),a},t.prototype.saveFinalToTarget=function(t,e){if(t){e=e||this._trackKeys;for(var n=0;n<e.length;n++){var i=e[n],r=this._tracks[i];if(r&&!r.isFinished()){var o=r.keyframes,a=o[o.length-1];if(a){var s=mn(a.value);r.isValueColor&&(s=_n(s)),t[i]=s}}}}},t.prototype.__changeFinalValue=function(t,e){e=e||z(t);for(var n=0;n<e.length;n++){var i=e[n],r=this._tracks[i];if(r){var o=r.keyframes;if(o.length>1){var a=o.pop();r.addKeyframe(a.time,t[i]),r.prepare(r.getAdditiveTrack())}}}},t}(),In=function(){function t(t,e){this.x=t||0,this.y=e||0}return t.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this},t.prototype.clone=function(){return new t(this.x,this.y)},t.prototype.set=function(t,e){return this.x=t,this.y=e,this},t.prototype.equal=function(t){return t.x===this.x&&t.y===this.y},t.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this},t.prototype.scale=function(t){this.x*=t,this.y*=t},t.prototype.scaleAndAdd=function(t,e){this.x+=t.x*e,this.y+=t.y*e},t.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this},t.prototype.dot=function(t){return this.x*t.x+this.y*t.y},t.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},t.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},t.prototype.normalize=function(){var t=this.len();return this.x/=t,this.y/=t,this},t.prototype.distance=function(t){var e=this.x-t.x,n=this.y-t.y;return Math.sqrt(e*e+n*n)},t.prototype.distanceSquare=function(t){var e=this.x-t.x,n=this.y-t.y;return e*e+n*n},t.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},t.prototype.transform=function(t){if(t){var e=this.x,n=this.y;return this.x=t[0]*e+t[2]*n+t[4],this.y=t[1]*e+t[3]*n+t[5],this}},t.prototype.toArray=function(t){return t[0]=this.x,t[1]=this.y,t},t.prototype.fromArray=function(t){this.x=t[0],this.y=t[1]},t.set=function(t,e,n){t.x=e,t.y=n},t.copy=function(t,e){t.x=e.x,t.y=e.y},t.len=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)},t.lenSquare=function(t){return t.x*t.x+t.y*t.y},t.dot=function(t,e){return t.x*e.x+t.y*e.y},t.add=function(t,e,n){t.x=e.x+n.x,t.y=e.y+n.y},t.sub=function(t,e,n){t.x=e.x-n.x,t.y=e.y-n.y},t.scale=function(t,e,n){t.x=e.x*n,t.y=e.y*n},t.scaleAndAdd=function(t,e,n,i){t.x=e.x+n.x*i,t.y=e.y+n.y*i},t.lerp=function(t,e,n,i){var r=1-i;t.x=r*e.x+i*n.x,t.y=r*e.y+i*n.y},t}(),Tn=Math.min,Cn=Math.max,An=new In,Dn=new In,Ln=new In,kn=new In,Pn=new In,On=new In,Rn=function(){function t(t,e,n,i){n<0&&isFinite(n)&&(t+=n,n=-n),i<0&&isFinite(i)&&(e+=i,i=-i),this.x=t,this.y=e,this.width=n,this.height=i}return t.prototype.union=function(t){var e=Tn(t.x,this.x),n=Tn(t.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=Cn(t.x+t.width,this.x+this.width)-e:this.width=t.width,isFinite(this.y)&&isFinite(this.height)?this.height=Cn(t.y+t.height,this.y+this.height)-n:this.height=t.height,this.x=e,this.y=n},t.prototype.applyTransform=function(e){t.applyTransform(this,this,e)},t.prototype.calculateTransform=function(t){var e=this,n=t.width/e.width,i=t.height/e.height,r=[1,0,0,1,0,0];return me(r,r,[-e.x,-e.y]),xe(r,r,[n,i]),me(r,r,[t.x,t.y]),r},t.prototype.intersect=function(e,n){if(!e)return!1;e instanceof t||(e=t.create(e));var i=this,r=i.x,o=i.x+i.width,a=i.y,s=i.y+i.height,l=e.x,u=e.x+e.width,h=e.y,c=e.y+e.height,p=!(o<l||u<r||s<h||c<a);if(n){var d=1/0,f=0,g=Math.abs(o-l),y=Math.abs(u-r),v=Math.abs(s-h),m=Math.abs(c-a),_=Math.min(g,y),x=Math.min(v,m);o<l||u<r?_>f&&(f=_,g<y?In.set(On,-g,0):In.set(On,y,0)):_<d&&(d=_,g<y?In.set(Pn,g,0):In.set(Pn,-y,0)),s<h||c<a?x>f&&(f=x,v<m?In.set(On,0,-v):In.set(On,0,m)):_<d&&(d=_,v<m?In.set(Pn,0,v):In.set(Pn,0,-m))}return n&&In.copy(n,p?Pn:On),p},t.prototype.contain=function(t,e){var n=this;return t>=n.x&&t<=n.x+n.width&&e>=n.y&&e<=n.y+n.height},t.prototype.clone=function(){return new t(this.x,this.y,this.width,this.height)},t.prototype.copy=function(e){t.copy(this,e)},t.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},t.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},t.prototype.isZero=function(){return 0===this.width||0===this.height},t.create=function(e){return new t(e.x,e.y,e.width,e.height)},t.copy=function(t,e){t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height},t.applyTransform=function(e,n,i){if(i){if(i[1]<1e-5&&i[1]>-1e-5&&i[2]<1e-5&&i[2]>-1e-5){var r=i[0],o=i[3],a=i[4],s=i[5];return e.x=n.x*r+a,e.y=n.y*o+s,e.width=n.width*r,e.height=n.height*o,e.width<0&&(e.x+=e.width,e.width=-e.width),void(e.height<0&&(e.y+=e.height,e.height=-e.height))}An.x=Ln.x=n.x,An.y=kn.y=n.y,Dn.x=kn.x=n.x+n.width,Dn.y=Ln.y=n.y+n.height,An.transform(i),kn.transform(i),Dn.transform(i),Ln.transform(i),e.x=Tn(An.x,Dn.x,Ln.x,kn.x),e.y=Tn(An.y,Dn.y,Ln.y,kn.y);var l=Cn(An.x,Dn.x,Ln.x,kn.x),u=Cn(An.y,Dn.y,Ln.y,kn.y);e.width=l-e.x,e.height=u-e.y}else e!==n&&t.copy(e,n)},t}(),Nn={},En="12px sans-serif";var zn={measureText:function(t,e){return xn||(xn=C().getContext("2d")),bn!==e&&(bn=xn.font=e||En),xn.measureText(t)}};function Bn(t,e){var n=Nn[e=e||En];n||(n=Nn[e]=new Ee(500));var i=n.get(t);return null==i&&(i=zn.measureText(t,e).width,n.put(t,i)),i}function Vn(t,e,n,i){var r=Bn(t,e),o=Wn(e),a=Gn(0,r,n),s=Hn(0,o,i);return new Rn(a,s,r,o)}function Fn(t,e,n,i){var r=((t||"")+"").split("\n");if(1===r.length)return Vn(r[0],e,n,i);for(var o=new Rn(0,0,0,0),a=0;a<r.length;a++){var s=Vn(r[a],e,n,i);0===a?o.copy(s):o.union(s)}return o}function Gn(t,e,n){return"right"===n?t-=e:"center"===n&&(t-=e/2),t}function Hn(t,e,n){return"middle"===n?t-=e/2:"bottom"===n&&(t-=e),t}function Wn(t){return Bn("国",t)}function Yn(t,e){return"string"==typeof t?t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t):t}function Xn(t,e,n){var i=e.position||"inside",r=null!=e.distance?e.distance:5,o=n.height,a=n.width,s=o/2,l=n.x,u=n.y,h="left",c="top";if(i instanceof Array)l+=Yn(i[0],n.width),u+=Yn(i[1],n.height),h=null,c=null;else switch(i){case"left":l-=r,u+=s,h="right",c="middle";break;case"right":l+=r+a,u+=s,c="middle";break;case"top":l+=a/2,u-=r,h="center",c="bottom";break;case"bottom":l+=a/2,u+=o+r,h="center";break;case"inside":l+=a/2,u+=s,h="center",c="middle";break;case"insideLeft":l+=r,u+=s,c="middle";break;case"insideRight":l+=a-r,u+=s,h="right",c="middle";break;case"insideTop":l+=a/2,u+=r,h="center";break;case"insideBottom":l+=a/2,u+=o-r,h="center",c="bottom";break;case"insideTopLeft":l+=r,u+=r;break;case"insideTopRight":l+=a-r,u+=r,h="right";break;case"insideBottomLeft":l+=r,u+=o-r,c="bottom";break;case"insideBottomRight":l+=a-r,u+=o-r,h="right",c="bottom"}return(t=t||{}).x=l,t.y=u,t.align=h,t.verticalAlign=c,t}var Un=1;"undefined"!=typeof window&&(Un=Math.max(window.devicePixelRatio||window.screen&&window.screen.deviceXDPI/window.screen.logicalXDPI||1,1));var Zn=Un,jn="#333",qn="#ccc",Kn="__zr_normal__",$n=["x","y","scaleX","scaleY","originX","originY","rotation","ignore"],Jn={x:!0,y:!0,scaleX:!0,scaleY:!0,originX:!0,originY:!0,rotation:!0,ignore:!1},Qn={},ti=new Rn(0,0,0,0),ei=function(){function t(t){this.id=x(),this.animators=[],this.currentStates=[],this.states={},this._init(t)}return t.prototype._init=function(t){this.attr(t)},t.prototype.drift=function(t,e,n){switch(this.draggable){case"horizontal":e=0;break;case"vertical":t=0}var i=this.transform;i||(i=this.transform=[1,0,0,1,0,0]),i[4]+=t,i[5]+=e,this.decomposeTransform(),this.markRedraw()},t.prototype.beforeUpdate=function(){},t.prototype.afterUpdate=function(){},t.prototype.update=function(){this.updateTransform(),this.__dirty&&this.updateInnerText()},t.prototype.updateInnerText=function(t){var e=this._textContent;if(e&&(!e.ignore||t)){this.textConfig||(this.textConfig={});var n=this.textConfig,i=n.local,r=e.attachedTransform,o=void 0,a=void 0,s=!1;r.parent=i?this:null;var l=!1;if(r.x=e.x,r.y=e.y,r.originX=e.originX,r.originY=e.originY,r.rotation=e.rotation,r.scaleX=e.scaleX,r.scaleY=e.scaleY,null!=n.position){var u=ti;n.layoutRect?u.copy(n.layoutRect):u.copy(this.getBoundingRect()),i||u.applyTransform(this.transform),this.calculateTextPosition?this.calculateTextPosition(Qn,n,u):Xn(Qn,n,u),r.x=Qn.x,r.y=Qn.y,o=Qn.align,a=Qn.verticalAlign;var h=n.origin;if(h&&null!=n.rotation){var c=void 0,p=void 0;"center"===h?(c=.5*u.width,p=.5*u.height):(c=Yn(h[0],u.width),p=Yn(h[1],u.height)),l=!0,r.originX=-r.x+c+(i?0:u.x),r.originY=-r.y+p+(i?0:u.y)}}null!=n.rotation&&(r.rotation=n.rotation);var d=n.offset;d&&(r.x+=d[0],r.y+=d[1],l||(r.originX=-d[0],r.originY=-d[1]));var f=null==n.inside?"string"==typeof n.position&&n.position.indexOf("inside")>=0:n.inside,g=this._innerTextDefaultStyle||(this._innerTextDefaultStyle={}),y=void 0,v=void 0,m=void 0;f&&this.canBeInsideText()?(y=n.insideFill,v=n.insideStroke,null!=y&&"auto"!==y||(y=this.getInsideTextFill()),null!=v&&"auto"!==v||(v=this.getInsideTextStroke(y),m=!0)):(y=n.outsideFill,v=n.outsideStroke,null!=y&&"auto"!==y||(y=this.getOutsideFill()),null!=v&&"auto"!==v||(v=this.getOutsideStroke(y),m=!0)),(y=y||"#000")===g.fill&&v===g.stroke&&m===g.autoStroke&&o===g.align&&a===g.verticalAlign||(s=!0,g.fill=y,g.stroke=v,g.autoStroke=m,g.align=o,g.verticalAlign=a,e.setDefaultTextStyle(g)),s&&e.dirtyStyle(),e.markRedraw()}},t.prototype.canBeInsideText=function(){return!0},t.prototype.getInsideTextFill=function(){return"#fff"},t.prototype.getInsideTextStroke=function(t){return"#000"},t.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?qn:jn},t.prototype.getOutsideStroke=function(t){var e=this.__zr&&this.__zr.getBackgroundColor(),n="string"==typeof e&&qe(e);n||(n=[255,255,255,1]);for(var i=n[3],r=this.__zr.isDarkMode(),o=0;o<3;o++)n[o]=n[o]*i+(r?0:255)*(1-i);return n[3]=1,an(n,"rgba")},t.prototype.traverse=function(t,e){},t.prototype.attrKV=function(t,e){"textConfig"===t?this.setTextConfig(e):"textContent"===t?this.setTextContent(e):"clipPath"===t?this.setClipPath(e):"extra"===t?(this.extra=this.extra||{},I(this.extra,e)):this[t]=e},t.prototype.hide=function(){this.ignore=!0,this.markRedraw()},t.prototype.show=function(){this.ignore=!1,this.markRedraw()},t.prototype.attr=function(t,e){if("string"==typeof t)this.attrKV(t,e);else if(X(t))for(var n=z(t),i=0;i<n.length;i++){var r=n[i];this.attrKV(r,t[r])}return this.markRedraw(),this},t.prototype.saveCurrentToNormalState=function(t){this._innerSaveToNormal(t);for(var e=this._normalState,n=0;n<this.animators.length;n++){var i=this.animators[n],r=i.__fromStateTransition;if(!r||r===Kn){var o=i.targetName,a=o?e[o]:e;i.saveFinalToTarget(a)}}},t.prototype._innerSaveToNormal=function(t){var e=this._normalState;e||(e=this._normalState={}),t.textConfig&&!e.textConfig&&(e.textConfig=this.textConfig),this._savePrimaryToNormal(t,e,$n)},t.prototype._savePrimaryToNormal=function(t,e,n){for(var i=0;i<n.length;i++){var r=n[i];null==t[r]||r in e||(e[r]=this[r])}},t.prototype.hasState=function(){return this.currentStates.length>0},t.prototype.getState=function(t){return this.states[t]},t.prototype.ensureState=function(t){var e=this.states;return e[t]||(e[t]={}),e[t]},t.prototype.clearStates=function(t){this.useState(Kn,!1,t)},t.prototype.useState=function(e,n,i){var r=e===Kn;if(this.hasState()||!r){var o=this.currentStates,a=this.stateTransition;if(!(A(o,e)>=0)||!n&&1!==o.length){var s;if(this.stateProxy&&!r&&(s=this.stateProxy(e)),s||(s=this.states&&this.states[e]),s||r){r||this.saveCurrentToNormalState(s);var l=!(!s||!s.hoverLayer);return l&&this._toggleHoverLayerFlag(!0),this._applyStateObj(e,s,this._normalState,n,!i&&!this.__inHover&&a&&a.duration>0,a),this._textContent&&this._textContent.useState(e,n),this._textGuide&&this._textGuide.useState(e,n),r?(this.currentStates=[],this._normalState={}):n?this.currentStates.push(e):this.currentStates=[e],this._updateAnimationTargets(),this.markRedraw(),!l&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~t.REDARAW_BIT),s}b("State "+e+" not exists.")}}},t.prototype.useStates=function(e,n){if(e.length){var i=[],r=this.currentStates,o=e.length,a=o===r.length;if(a)for(var s=0;s<o;s++)if(e[s]!==r[s]){a=!1;break}if(a)return;for(s=0;s<o;s++){var l=e[s],u=void 0;this.stateProxy&&(u=this.stateProxy(l,e)),u||(u=this.states[l]),u&&i.push(u)}var h=!(!i[o-1]||!i[o-1].hoverLayer);h&&this._toggleHoverLayerFlag(!0);var c=this._mergeStates(i),p=this.stateTransition;this.saveCurrentToNormalState(c),this._applyStateObj(e.join(","),c,this._normalState,!1,!n&&!this.__inHover&&p&&p.duration>0,p),this._textContent&&this._textContent.useStates(e),this._textGuide&&this._textGuide.useStates(e),this._updateAnimationTargets(),this.currentStates=e.slice(),this.markRedraw(),!h&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~t.REDARAW_BIT)}else this.clearStates()},t.prototype._updateAnimationTargets=function(){for(var t=0;t<this.animators.length;t++){var e=this.animators[t];e.targetName&&e.changeTarget(this[e.targetName])}},t.prototype.removeState=function(t){var e=A(this.currentStates,t);if(e>=0){var n=this.currentStates.slice();n.splice(e,1),this.useStates(n)}},t.prototype.replaceState=function(t,e,n){var i=this.currentStates.slice(),r=A(i,t),o=A(i,e)>=0;r>=0?o?i.splice(r,1):i[r]=e:n&&!o&&i.push(e),this.useStates(i)},t.prototype.toggleState=function(t,e){e?this.useState(t,!0):this.removeState(t)},t.prototype._mergeStates=function(t){for(var e,n={},i=0;i<t.length;i++){var r=t[i];I(n,r),r.textConfig&&I(e=e||{},r.textConfig)}return e&&(n.textConfig=e),n},t.prototype._applyStateObj=function(t,e,n,i,r,o){var a=!(e&&i);e&&e.textConfig?(this.textConfig=I({},i?this.textConfig:n.textConfig),I(this.textConfig,e.textConfig)):a&&n.textConfig&&(this.textConfig=n.textConfig);for(var s={},l=!1,u=0;u<$n.length;u++){var h=$n[u],c=r&&Jn[h];e&&null!=e[h]?c?(l=!0,s[h]=e[h]):this[h]=e[h]:a&&null!=n[h]&&(c?(l=!0,s[h]=n[h]):this[h]=n[h])}if(!r)for(u=0;u<this.animators.length;u++){var p=this.animators[u],d=p.targetName;p.__changeFinalValue(d?(e||n)[d]:e||n)}l&&this._transitionState(t,s,o)},t.prototype._attachComponent=function(t){if(t.__zr&&!t.__hostTarget)throw new Error("Text element has been added to zrender.");if(t===this)throw new Error("Recursive component attachment.");var e=this.__zr;e&&t.addSelfToZr(e),t.__zr=e,t.__hostTarget=this},t.prototype._detachComponent=function(t){t.__zr&&t.removeSelfFromZr(t.__zr),t.__zr=null,t.__hostTarget=null},t.prototype.getClipPath=function(){return this._clipPath},t.prototype.setClipPath=function(t){this._clipPath&&this._clipPath!==t&&this.removeClipPath(),this._attachComponent(t),this._clipPath=t,this.markRedraw()},t.prototype.removeClipPath=function(){var t=this._clipPath;t&&(this._detachComponent(t),this._clipPath=null,this.markRedraw())},t.prototype.getTextContent=function(){return this._textContent},t.prototype.setTextContent=function(t){var e=this._textContent;if(e!==t){if(e&&e!==t&&this.removeTextContent(),t.__zr&&!t.__hostTarget)throw new Error("Text element has been added to zrender.");t.attachedTransform=new ke,this._attachComponent(t),this._textContent=t,this.markRedraw()}},t.prototype.setTextConfig=function(t){this.textConfig||(this.textConfig={}),I(this.textConfig,t),this.markRedraw()},t.prototype.removeTextContent=function(){var t=this._textContent;t&&(t.attachedTransform=null,this._detachComponent(t),this._textContent=null,this._innerTextDefaultStyle=null,this.markRedraw())},t.prototype.getTextGuideLine=function(){return this._textGuide},t.prototype.setTextGuideLine=function(t){this._textGuide&&this._textGuide!==t&&this.removeTextGuideLine(),this._attachComponent(t),this._textGuide=t,this.markRedraw()},t.prototype.removeTextGuideLine=function(){var t=this._textGuide;t&&(this._detachComponent(t),this._textGuide=null,this.markRedraw())},t.prototype.markRedraw=function(){this.__dirty|=t.REDARAW_BIT;var e=this.__zr;e&&(this.__inHover?e.refreshHover():e.refresh()),this.__hostTarget&&this.__hostTarget.markRedraw()},t.prototype.dirty=function(){this.markRedraw()},t.prototype._toggleHoverLayerFlag=function(t){this.__inHover=t;var e=this._textContent,n=this._textGuide;e&&(e.__inHover=t),n&&(n.__inHover=t)},t.prototype.addSelfToZr=function(t){this.__zr=t;var e=this.animators;if(e)for(var n=0;n<e.length;n++)t.animation.addAnimator(e[n]);this._clipPath&&this._clipPath.addSelfToZr(t),this._textContent&&this._textContent.addSelfToZr(t),this._textGuide&&this._textGuide.addSelfToZr(t)},t.prototype.removeSelfFromZr=function(t){this.__zr=null;var e=this.animators;if(e)for(var n=0;n<e.length;n++)t.animation.removeAnimator(e[n]);this._clipPath&&this._clipPath.removeSelfFromZr(t),this._textContent&&this._textContent.removeSelfFromZr(t),this._textGuide&&this._textGuide.removeSelfFromZr(t)},t.prototype.animate=function(t,e){var n=t?this[t]:this;if(n){var i=new Mn(n,e);return this.addAnimator(i,t),i}b('Property "'+t+'" is not existed in element '+this.id)},t.prototype.addAnimator=function(t,e){var n=this.__zr,i=this;t.during((function(){i.updateDuringAnimation(e)})).done((function(){var e=i.animators,n=A(e,t);n>=0&&e.splice(n,1)})),this.animators.push(t),n&&n.animation.addAnimator(t),n&&n.wakeUp()},t.prototype.updateDuringAnimation=function(t){this.markRedraw()},t.prototype.stopAnimation=function(t,e){for(var n=this.animators,i=n.length,r=[],o=0;o<i;o++){var a=n[o];t&&t!==a.scope?r.push(a):a.stop(e)}return this.animators=r,this},t.prototype.animateTo=function(t,e,n){ni(this,t,e,n)},t.prototype.animateFrom=function(t,e,n){ni(this,t,e,n,!0)},t.prototype._transitionState=function(t,e,n,i){for(var r=ni(this,e,n,i),o=0;o<r.length;o++)r[o].__fromStateTransition=t},t.prototype.getBoundingRect=function(){return null},t.prototype.getPaintRect=function(){return null},t.REDARAW_BIT=1,t.initDefaultProps=function(){var e=t.prototype;e.type="element",e.name="",e.ignore=!1,e.silent=!1,e.isGroup=!1,e.draggable=!1,e.dragging=!1,e.ignoreClip=!1,e.__inHover=!1,e.__dirty=t.REDARAW_BIT;var n={};function i(t,e,i){n[t+e+i]||(console.warn("DEPRECATED: '"+t+"' has been deprecated. use '"+e+"', '"+i+"' instead"),n[t+e+i]=!0)}function r(t,n,r,o){function a(t,e){Object.defineProperty(e,0,{get:function(){return t[r]},set:function(e){t[r]=e}}),Object.defineProperty(e,1,{get:function(){return t[o]},set:function(e){t[o]=e}})}Object.defineProperty(e,t,{get:function(){(i(t,r,o),this[n])||a(this,this[n]=[]);return this[n]},set:function(e){i(t,r,o),this[r]=e[0],this[o]=e[1],this[n]=e,a(this,e)}})}Object.defineProperty&&(!a.browser.ie||a.browser.version>8)&&(r("position","_legacyPos","x","y"),r("scale","_legacyScale","scaleX","scaleY"),r("origin","_legacyOrigin","originX","originY"))}(),t}();function ni(t,e,n,i,r){var o=[];oi(t,"",t,e,n=n||{},i,o,r);var a=o.length,s=!1,l=n.done,u=n.aborted,h=function(){s=!0,--a<=0&&(s?l&&l():u&&u())},c=function(){--a<=0&&(s?l&&l():u&&u())};a||l&&l(),o.length>0&&n.during&&o[0].during((function(t,e){n.during(e)}));for(var p=0;p<o.length;p++){var d=o[p];h&&d.done(h),c&&d.aborted(c),d.start(n.easing,n.force)}return o}function ii(t,e,n){for(var i=0;i<n;i++)t[i]=e[i]}function ri(t,e,n){if(k(e[n]))if(k(t[n])||(t[n]=[]),Z(e[n])){var i=e[n].length;t[n].length!==i&&(t[n]=new e[n].constructor(i),ii(t[n],e[n],i))}else{var r=e[n],o=t[n],a=r.length;if(k(r[0]))for(var s=r[0].length,l=0;l<a;l++)o[l]?ii(o[l],r[l],s):o[l]=Array.prototype.slice.call(r[l]);else ii(o,r,a);o.length=r.length}else t[n]=e[n]}function oi(t,e,n,i,r,o,a,s){for(var l=[],u=[],h=z(i),c=r.duration,p=r.delay,d=r.additive,f=r.setToFinal,g=!X(o),y=0;y<h.length;y++){if(null!=n[I=h[y]]&&null!=i[I]&&(g||o[I]))if(X(i[I])&&!k(i[I])){if(e){s||(n[I]=i[I],t.updateDuringAnimation(e));continue}oi(t,I,n[I],i[I],r,o&&o[I],a,s)}else l.push(I),u.push(I);else s||(n[I]=i[I],t.updateDuringAnimation(e),u.push(I))}var v=l.length;if(v>0||r.force&&!a.length){for(var m=t.animators,_=[],x=0;x<m.length;x++)m[x].targetName===e&&_.push(m[x]);if(!d&&_.length)for(x=0;x<_.length;x++){if(_[x].stopTracks(u)){var b=A(m,_[x]);m.splice(b,1)}}var w=void 0,S=void 0,M=void 0;if(s){S={},f&&(w={});for(x=0;x<v;x++){S[I=l[x]]=n[I],f?w[I]=i[I]:n[I]=i[I]}}else if(f){M={};for(x=0;x<v;x++){var I;M[I=l[x]]=mn(n[I]),ri(n,i,I)}}var T=new Mn(n,!1,d?_:null);T.targetName=e,r.scope&&(T.scope=r.scope),f&&w&&T.whenWithKeys(0,w,l),M&&T.whenWithKeys(0,M,l),T.whenWithKeys(null==c?500:c,s?S:i,l).delay(p||0),t.addAnimator(T,e),a.push(T)}}L(ei,Ft),L(ei,ke);function ai(t,e,n,i){var r=e+1;if(r===n)return 1;if(i(t[r++],t[e])<0){for(;r<n&&i(t[r],t[r-1])<0;)r++;!function(t,e,n){n--;for(;e<n;){var i=t[e];t[e++]=t[n],t[n--]=i}}(t,e,r)}else for(;r<n&&i(t[r],t[r-1])>=0;)r++;return r-e}function si(t,e,n,i,r){for(i===e&&i++;i<n;i++){for(var o,a=t[i],s=e,l=i;s<l;)r(a,t[o=s+l>>>1])<0?l=o:s=o+1;var u=i-s;switch(u){case 3:t[s+3]=t[s+2];case 2:t[s+2]=t[s+1];case 1:t[s+1]=t[s];break;default:for(;u>0;)t[s+u]=t[s+u-1],u--}t[s]=a}}function li(t,e,n,i,r,o){var a=0,s=0,l=1;if(o(t,e[n+r])>0){for(s=i-r;l<s&&o(t,e[n+r+l])>0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),a+=r,l+=r}else{for(s=r+1;l<s&&o(t,e[n+r-l])<=0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s);var u=a;a=r-l,l=r-u}for(a++;a<l;){var h=a+(l-a>>>1);o(t,e[n+h])>0?a=h+1:l=h}return l}function ui(t,e,n,i,r,o){var a=0,s=0,l=1;if(o(t,e[n+r])<0){for(s=r+1;l<s&&o(t,e[n+r-l])<0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s);var u=a;a=r-l,l=r-u}else{for(s=i-r;l<s&&o(t,e[n+r+l])>=0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),a+=r,l+=r}for(a++;a<l;){var h=a+(l-a>>>1);o(t,e[n+h])<0?l=h:a=h+1}return l}function hi(t,e){var n,i,r=7,o=0;t.length;var a=[];function s(s){var l=n[s],u=i[s],h=n[s+1],c=i[s+1];i[s]=u+c,s===o-3&&(n[s+1]=n[s+2],i[s+1]=i[s+2]),o--;var p=ui(t[h],t,l,u,0,e);l+=p,0!==(u-=p)&&0!==(c=li(t[l+u-1],t,h,c,c-1,e))&&(u<=c?function(n,i,o,s){var l=0;for(l=0;l<i;l++)a[l]=t[n+l];var u=0,h=o,c=n;if(t[c++]=t[h++],0==--s){for(l=0;l<i;l++)t[c+l]=a[u+l];return}if(1===i){for(l=0;l<s;l++)t[c+l]=t[h+l];return void(t[c+s]=a[u])}var p,d,f,g=r;for(;;){p=0,d=0,f=!1;do{if(e(t[h],a[u])<0){if(t[c++]=t[h++],d++,p=0,0==--s){f=!0;break}}else if(t[c++]=a[u++],p++,d=0,1==--i){f=!0;break}}while((p|d)<g);if(f)break;do{if(0!==(p=ui(t[h],a,u,i,0,e))){for(l=0;l<p;l++)t[c+l]=a[u+l];if(c+=p,u+=p,(i-=p)<=1){f=!0;break}}if(t[c++]=t[h++],0==--s){f=!0;break}if(0!==(d=li(a[u],t,h,s,0,e))){for(l=0;l<d;l++)t[c+l]=t[h+l];if(c+=d,h+=d,0===(s-=d)){f=!0;break}}if(t[c++]=a[u++],1==--i){f=!0;break}g--}while(p>=7||d>=7);if(f)break;g<0&&(g=0),g+=2}if((r=g)<1&&(r=1),1===i){for(l=0;l<s;l++)t[c+l]=t[h+l];t[c+s]=a[u]}else{if(0===i)throw new Error;for(l=0;l<i;l++)t[c+l]=a[u+l]}}(l,u,h,c):function(n,i,o,s){var l=0;for(l=0;l<s;l++)a[l]=t[o+l];var u=n+i-1,h=s-1,c=o+s-1,p=0,d=0;if(t[c--]=t[u--],0==--i){for(p=c-(s-1),l=0;l<s;l++)t[p+l]=a[l];return}if(1===s){for(d=(c-=i)+1,p=(u-=i)+1,l=i-1;l>=0;l--)t[d+l]=t[p+l];return void(t[c]=a[h])}var f=r;for(;;){var g=0,y=0,v=!1;do{if(e(a[h],t[u])<0){if(t[c--]=t[u--],g++,y=0,0==--i){v=!0;break}}else if(t[c--]=a[h--],y++,g=0,1==--s){v=!0;break}}while((g|y)<f);if(v)break;do{if(0!==(g=i-ui(a[h],t,n,i,i-1,e))){for(i-=g,d=(c-=g)+1,p=(u-=g)+1,l=g-1;l>=0;l--)t[d+l]=t[p+l];if(0===i){v=!0;break}}if(t[c--]=a[h--],1==--s){v=!0;break}if(0!==(y=s-li(t[u],a,0,s,s-1,e))){for(s-=y,d=(c-=y)+1,p=(h-=y)+1,l=0;l<y;l++)t[d+l]=a[p+l];if(s<=1){v=!0;break}}if(t[c--]=t[u--],0==--i){v=!0;break}f--}while(g>=7||y>=7);if(v)break;f<0&&(f=0),f+=2}(r=f)<1&&(r=1);if(1===s){for(d=(c-=i)+1,p=(u-=i)+1,l=i-1;l>=0;l--)t[d+l]=t[p+l];t[c]=a[h]}else{if(0===s)throw new Error;for(p=c-(s-1),l=0;l<s;l++)t[p+l]=a[l]}}(l,u,h,c))}return n=[],i=[],{mergeRuns:function(){for(;o>1;){var t=o-2;if(t>=1&&i[t-1]<=i[t]+i[t+1]||t>=2&&i[t-2]<=i[t]+i[t-1])i[t-1]<i[t+1]&&t--;else if(i[t]>i[t+1])break;s(t)}},forceMergeRuns:function(){for(;o>1;){var t=o-2;t>0&&i[t-1]<i[t+1]&&t--,s(t)}},pushRun:function(t,e){n[o]=t,i[o]=e,o+=1}}}function ci(t,e,n,i){n||(n=0),i||(i=t.length);var r=i-n;if(!(r<2)){var o=0;if(r<32)si(t,n,i,n+(o=ai(t,n,i,e)),e);else{var a=hi(t,e),s=function(t){for(var e=0;t>=32;)e|=1&t,t>>=1;return t+e}(r);do{if((o=ai(t,n,i,e))<s){var l=r;l>s&&(l=s),si(t,n,n+l,n+o,e),o=l}a.pushRun(n,o),a.mergeRuns(),r-=o,n+=o}while(0!==r);a.forceMergeRuns()}}}var pi=!1;function di(){pi||(pi=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function fi(t,e){return t.zlevel===e.zlevel?t.z===e.z?t.z2-e.z2:t.z-e.z:t.zlevel-e.zlevel}var gi,yi,vi=function(){function t(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=fi}return t.prototype.traverse=function(t,e){for(var n=0;n<this._roots.length;n++)this._roots[n].traverse(t,e)},t.prototype.getDisplayList=function(t,e){e=e||!1;var n=this._displayList;return!t&&n.length||this.updateDisplayList(e),n},t.prototype.updateDisplayList=function(t){this._displayListLen=0;for(var e=this._roots,n=this._displayList,i=0,r=e.length;i<r;i++)this._updateAndAddDisplayable(e[i],null,t);n.length=this._displayListLen,a.canvasSupported&&ci(n,fi)},t.prototype._updateAndAddDisplayable=function(t,e,n){if(!t.ignore||n){t.beforeUpdate(),t.update(),t.afterUpdate();var i=t.getClipPath();if(t.ignoreClip)e=null;else if(i){e=e?e.slice():[];for(var r=i,o=t;r;)r.parent=o,r.updateTransform(),e.push(r),o=r,r=r.getClipPath()}if(t.childrenRef){for(var a=t.childrenRef(),s=0;s<a.length;s++){var l=a[s];t.__dirty&&(l.__dirty|=ei.REDARAW_BIT),this._updateAndAddDisplayable(l,e,n)}t.__dirty=0}else{var u=t;e&&e.length?u.__clipPaths=e:u.__clipPaths&&u.__clipPaths.length>0&&(u.__clipPaths=[]),isNaN(u.z)&&(di(),u.z=0),isNaN(u.z2)&&(di(),u.z2=0),isNaN(u.zlevel)&&(di(),u.zlevel=0),this._displayList[this._displayListLen++]=u}var h=t.getDecalElement&&t.getDecalElement();h&&this._updateAndAddDisplayable(h,e,n);var c=t.getTextGuideLine();c&&this._updateAndAddDisplayable(c,e,n);var p=t.getTextContent();p&&this._updateAndAddDisplayable(p,e,n)}},t.prototype.addRoot=function(t){t.__zr&&t.__zr.storage===this||this._roots.push(t)},t.prototype.delRoot=function(t){if(t instanceof Array)for(var e=0,n=t.length;e<n;e++)this.delRoot(t[e]);else{var i=A(this._roots,t);i>=0&&this._roots.splice(i,1)}},t.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},t.prototype.getRoots=function(){return this._roots},t.prototype.dispose=function(){this._displayList=null,this._roots=null},t}(),mi="undefined"!=typeof window&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(t){return setTimeout(t,16)},_i=function(t){function e(e){var n=t.call(this)||this;return n._running=!1,n._time=0,n._pausedTime=0,n._pauseStart=0,n._paused=!1,e=e||{},n.stage=e.stage||{},n.onframe=e.onframe||function(){},n}return n(e,t),e.prototype.addClip=function(t){t.animation&&this.removeClip(t),this._clipsHead?(this._clipsTail.next=t,t.prev=this._clipsTail,t.next=null,this._clipsTail=t):this._clipsHead=this._clipsTail=t,t.animation=this},e.prototype.addAnimator=function(t){t.animation=this;var e=t.getClip();e&&this.addClip(e)},e.prototype.removeClip=function(t){if(t.animation){var e=t.prev,n=t.next;e?e.next=n:this._clipsHead=n,n?n.prev=e:this._clipsTail=e,t.next=t.prev=t.animation=null}},e.prototype.removeAnimator=function(t){var e=t.getClip();e&&this.removeClip(e),t.animation=null},e.prototype.update=function(t){for(var e=(new Date).getTime()-this._pausedTime,n=e-this._time,i=this._clipsHead;i;){var r=i.next;i.step(e,n)?(i.ondestroy&&i.ondestroy(),this.removeClip(i),i=r):i=r}this._time=e,t||(this.onframe(n),this.trigger("frame",n),this.stage.update&&this.stage.update())},e.prototype._startLoop=function(){var t=this;this._running=!0,mi((function e(){t._running&&(mi(e),!t._paused&&t.update())}))},e.prototype.start=function(){this._running||(this._time=(new Date).getTime(),this._pausedTime=0,this._startLoop())},e.prototype.stop=function(){this._running=!1},e.prototype.pause=function(){this._paused||(this._pauseStart=(new Date).getTime(),this._paused=!0)},e.prototype.resume=function(){this._paused&&(this._pausedTime+=(new Date).getTime()-this._pauseStart,this._paused=!1)},e.prototype.clear=function(){for(var t=this._clipsHead;t;){var e=t.next;t.prev=t.next=t.animation=null,t=e}this._clipsHead=this._clipsTail=null},e.prototype.isFinished=function(){return null==this._clipsHead},e.prototype.animate=function(t,e){e=e||{},this.start();var n=new Mn(t,e.loop);return this.addAnimator(n),n},e}(Ft),xi=a.domSupported,bi=(yi={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},{mouse:gi=["click","dblclick","mousewheel","wheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],touch:["touchstart","touchend","touchmove"],pointer:O(gi,(function(t){var e=t.replace("mouse","pointer");return yi.hasOwnProperty(e)?e:t}))}),wi=["mousemove","mouseup"],Si=["pointermove","pointerup"],Mi=!1;function Ii(t){var e=t.pointerType;return"pen"===e||"touch"===e}function Ti(t){t&&(t.zrByTouch=!0)}function Ci(t,e){for(var n=e,i=!1;n&&9!==n.nodeType&&!(i=n.domBelongToZr||n!==e&&n===t.painterRoot);)n=n.parentNode;return i}var Ai=function(t,e){this.stopPropagation=ft,this.stopImmediatePropagation=ft,this.preventDefault=ft,this.type=e.type,this.target=this.currentTarget=t.dom,this.pointerType=e.pointerType,this.clientX=e.clientX,this.clientY=e.clientY},Di={mousedown:function(t){t=Qt(this.dom,t),this.__mayPointerCapture=[t.zrX,t.zrY],this.trigger("mousedown",t)},mousemove:function(t){t=Qt(this.dom,t);var e=this.__mayPointerCapture;!e||t.zrX===e[0]&&t.zrY===e[1]||this.__togglePointerCapture(!0),this.trigger("mousemove",t)},mouseup:function(t){t=Qt(this.dom,t),this.__togglePointerCapture(!1),this.trigger("mouseup",t)},mouseout:function(t){Ci(this,(t=Qt(this.dom,t)).toElement||t.relatedTarget)||(this.__pointerCapturing&&(t.zrEventControl="no_globalout"),this.trigger("mouseout",t))},wheel:function(t){Mi=!0,t=Qt(this.dom,t),this.trigger("mousewheel",t)},mousewheel:function(t){Mi||(t=Qt(this.dom,t),this.trigger("mousewheel",t))},touchstart:function(t){Ti(t=Qt(this.dom,t)),this.__lastTouchMoment=new Date,this.handler.processGesture(t,"start"),Di.mousemove.call(this,t),Di.mousedown.call(this,t)},touchmove:function(t){Ti(t=Qt(this.dom,t)),this.handler.processGesture(t,"change"),Di.mousemove.call(this,t)},touchend:function(t){Ti(t=Qt(this.dom,t)),this.handler.processGesture(t,"end"),Di.mouseup.call(this,t),+new Date-+this.__lastTouchMoment<300&&Di.click.call(this,t)},pointerdown:function(t){Di.mousedown.call(this,t)},pointermove:function(t){Ii(t)||Di.mousemove.call(this,t)},pointerup:function(t){Di.mouseup.call(this,t)},pointerout:function(t){Ii(t)||Di.mouseout.call(this,t)}};P(["click","dblclick","contextmenu"],(function(t){Di[t]=function(e){e=Qt(this.dom,e),this.trigger(t,e)}}));var Li={pointermove:function(t){Ii(t)||Li.mousemove.call(this,t)},pointerup:function(t){Li.mouseup.call(this,t)},mousemove:function(t){this.trigger("mousemove",t)},mouseup:function(t){var e=this.__pointerCapturing;this.__togglePointerCapture(!1),this.trigger("mouseup",t),e&&(t.zrEventControl="only_globalout",this.trigger("mouseout",t))}};function ki(t,e){var n=e.domHandlers;a.pointerEventsSupported?P(bi.pointer,(function(i){Oi(e,i,(function(e){n[i].call(t,e)}))})):(a.touchEventsSupported&&P(bi.touch,(function(i){Oi(e,i,(function(r){n[i].call(t,r),function(t){t.touching=!0,null!=t.touchTimer&&(clearTimeout(t.touchTimer),t.touchTimer=null),t.touchTimer=setTimeout((function(){t.touching=!1,t.touchTimer=null}),700)}(e)}))})),P(bi.mouse,(function(i){Oi(e,i,(function(r){r=Jt(r),e.touching||n[i].call(t,r)}))})))}function Pi(t,e){function n(n){Oi(e,n,(function(i){i=Jt(i),Ci(t,i.target)||(i=function(t,e){return Qt(t.dom,new Ai(t,e),!0)}(t,i),e.domHandlers[n].call(t,i))}),{capture:!0})}a.pointerEventsSupported?P(Si,n):a.touchEventsSupported||P(wi,n)}function Oi(t,e,n,i){t.mounted[e]=n,t.listenerOpts[e]=i,te(t.domTarget,e,n,i)}function Ri(t){var e,n,i,r,o=t.mounted;for(var a in o)o.hasOwnProperty(a)&&(e=t.domTarget,n=a,i=o[a],r=t.listenerOpts[a],Zt?e.removeEventListener(n,i,r):e.detachEvent("on"+n,i));t.mounted={}}var Ni=function(t,e){this.mounted={},this.listenerOpts={},this.touching=!1,this.domTarget=t,this.domHandlers=e},Ei=function(t){function e(e,n){var i=t.call(this)||this;return i.__pointerCapturing=!1,i.dom=e,i.painterRoot=n,i._localHandlerScope=new Ni(e,Di),xi&&(i._globalHandlerScope=new Ni(document,Li)),ki(i,i._localHandlerScope),i}return n(e,t),e.prototype.dispose=function(){Ri(this._localHandlerScope),xi&&Ri(this._globalHandlerScope)},e.prototype.setCursor=function(t){this.dom.style&&(this.dom.style.cursor=t||"default")},e.prototype.__togglePointerCapture=function(t){if(this.__mayPointerCapture=null,xi&&+this.__pointerCapturing^+t){this.__pointerCapturing=t;var e=this._globalHandlerScope;t?Pi(this,e):Ri(e)}},e}(Ft),zi=function(t){function e(e){var n=t.call(this)||this;return n.isGroup=!0,n._children=[],n.attr(e),n}return n(e,t),e.prototype.childrenRef=function(){return this._children},e.prototype.children=function(){return this._children.slice()},e.prototype.childAt=function(t){return this._children[t]},e.prototype.childOfName=function(t){for(var e=this._children,n=0;n<e.length;n++)if(e[n].name===t)return e[n]},e.prototype.childCount=function(){return this._children.length},e.prototype.add=function(t){if(t&&(t!==this&&t.parent!==this&&(this._children.push(t),this._doAdd(t)),t.__hostTarget))throw"This elemenet has been used as an attachment";return this},e.prototype.addBefore=function(t,e){if(t&&t!==this&&t.parent!==this&&e&&e.parent===this){var n=this._children,i=n.indexOf(e);i>=0&&(n.splice(i,0,t),this._doAdd(t))}return this},e.prototype.replaceAt=function(t,e){var n=this._children,i=n[e];if(t&&t!==this&&t.parent!==this&&t!==i){n[e]=t,i.parent=null;var r=this.__zr;r&&i.removeSelfFromZr(r),this._doAdd(t)}return this},e.prototype._doAdd=function(t){t.parent&&t.parent.remove(t),t.parent=this;var e=this.__zr;e&&e!==t.__zr&&t.addSelfToZr(e),e&&e.refresh()},e.prototype.remove=function(t){var e=this.__zr,n=this._children,i=A(n,t);return i<0||(n.splice(i,1),t.parent=null,e&&t.removeSelfFromZr(e),e&&e.refresh()),this},e.prototype.removeAll=function(){for(var t=this._children,e=this.__zr,n=0;n<t.length;n++){var i=t[n];e&&i.removeSelfFromZr(e),i.parent=null}return t.length=0,this},e.prototype.eachChild=function(t,e){for(var n=this._children,i=0;i<n.length;i++){var r=n[i];t.call(e,r,i)}return this},e.prototype.traverse=function(t,e){for(var n=0;n<this._children.length;n++){var i=this._children[n],r=t.call(e,i);i.isGroup&&!r&&i.traverse(t,e)}return this},e.prototype.addSelfToZr=function(e){t.prototype.addSelfToZr.call(this,e);for(var n=0;n<this._children.length;n++){this._children[n].addSelfToZr(e)}},e.prototype.removeSelfFromZr=function(e){t.prototype.removeSelfFromZr.call(this,e);for(var n=0;n<this._children.length;n++){this._children[n].removeSelfFromZr(e)}},e.prototype.getBoundingRect=function(t){for(var e=new Rn(0,0,0,0),n=t||this._children,i=[],r=null,o=0;o<n.length;o++){var a=n[o];if(!a.ignore&&!a.invisible){var s=a.getBoundingRect(),l=a.getLocalTransform(i);l?(Rn.applyTransform(e,s,l),(r=r||e.clone()).union(e)):(r=r||s.clone()).union(s)}}return r||e},e}(ei);zi.prototype.type="group";
 /*!
     * ZRender, a high performance 2d drawing library.
     *
@@ -56,4 +42,4 @@
     * LICENSE
     * https://github.com/ecomfe/zrender/blob/master/LICENSE.txt
     */
-var Fi=!a.canvasSupported,Gi={},Hi={};var Wi=function(){function t(t,e,n){var i=this;this._sleepAfterStill=10,this._stillFrameAccum=0,this._needsRefresh=!0,this._needsRefreshHover=!0,this._darkMode=!1,n=n||{},this.dom=e,this.id=t;var r=new _i,o=n.renderer||"canvas";if(Fi)throw new Error("IE8 support has been dropped since 5.0");if(Gi[o]||(o=z(Gi)[0]),!Gi[o])throw new Error("Renderer '"+o+"' is not imported. Please import it first.");n.useDirtyRect=null!=n.useDirtyRect&&n.useDirtyRect;var s=new Gi[o](e,r,n,t);this.storage=r,this.painter=s;var l=a.node||a.worker?null:new Bi(s.getViewportRoot(),s.root);this.handler=new de(r,s,l,s.root),this.animation=new bi({stage:{update:function(){return i._flush(!0)}}}),this.animation.start()}return t.prototype.add=function(t){t&&(this.storage.addRoot(t),t.addSelfToZr(this),this.refresh())},t.prototype.remove=function(t){t&&(this.storage.delRoot(t),t.removeSelfFromZr(this),this.refresh())},t.prototype.configLayer=function(t,e){this.painter.configLayer&&this.painter.configLayer(t,e),this.refresh()},t.prototype.setBackgroundColor=function(t){this.painter.setBackgroundColor&&this.painter.setBackgroundColor(t),this.refresh(),this._backgroundColor=t,this._darkMode=function(t){if(!t)return!1;if("string"==typeof t)return un(t,1)<.4;if(t.colorStops){for(var e=t.colorStops,n=0,i=e.length,r=0;r<i;r++)n+=un(e[r].color,1);return(n/=i)<.4}return!1}(t)},t.prototype.getBackgroundColor=function(){return this._backgroundColor},t.prototype.setDarkMode=function(t){this._darkMode=t},t.prototype.isDarkMode=function(){return this._darkMode},t.prototype.refreshImmediately=function(t){t||this.animation.update(!0),this._needsRefresh=!1,this.painter.refresh(),this._needsRefresh=!1},t.prototype.refresh=function(){this._needsRefresh=!0,this.animation.start()},t.prototype.flush=function(){this._flush(!1)},t.prototype._flush=function(t){var e,n=(new Date).getTime();this._needsRefresh&&(e=!0,this.refreshImmediately(t)),this._needsRefreshHover&&(e=!0,this.refreshHoverImmediately());var i=(new Date).getTime();e?(this._stillFrameAccum=0,this.trigger("rendered",{elapsedTime:i-n})):this._sleepAfterStill>0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},t.prototype.setSleepAfterStill=function(t){this._sleepAfterStill=t},t.prototype.wakeUp=function(){this.animation.start(),this._stillFrameAccum=0},t.prototype.addHover=function(t){},t.prototype.removeHover=function(t){},t.prototype.clearHover=function(){},t.prototype.refreshHover=function(){this._needsRefreshHover=!0},t.prototype.refreshHoverImmediately=function(){this._needsRefreshHover=!1,this.painter.refreshHover&&"canvas"===this.painter.getType()&&this.painter.refreshHover()},t.prototype.resize=function(t){t=t||{},this.painter.resize(t.width,t.height),this.handler.resize()},t.prototype.clearAnimation=function(){this.animation.clear()},t.prototype.getWidth=function(){return this.painter.getWidth()},t.prototype.getHeight=function(){return this.painter.getHeight()},t.prototype.pathToImage=function(t,e){if(this.painter.pathToImage)return this.painter.pathToImage(t,e)},t.prototype.setCursorStyle=function(t){this.handler.setCursorStyle(t)},t.prototype.findHover=function(t,e){return this.handler.findHover(t,e)},t.prototype.on=function(t,e,n){return this.handler.on(t,e,n),this},t.prototype.off=function(t,e){this.handler.off(t,e)},t.prototype.trigger=function(t,e){this.handler.trigger(t,e)},t.prototype.clear=function(){for(var t=this.storage.getRoots(),e=0;e<t.length;e++)t[e]instanceof Vi&&t[e].removeSelfFromZr(this);this.storage.delAllRoots(),this.painter.clear()},t.prototype.dispose=function(){var t;this.animation.stop(),this.clear(),this.storage.dispose(),this.painter.dispose(),this.handler.dispose(),this.animation=this.storage=this.painter=this.handler=null,t=this.id,delete Hi[t]},t}();function Yi(t,e){var n=new Wi(x(),t,e);return Hi[n.id]=n,n}function Xi(t,e){Gi[t]=e}var Ui=Object.freeze({__proto__:null,init:Yi,dispose:function(t){t.dispose()},disposeAll:function(){for(var t in Hi)Hi.hasOwnProperty(t)&&Hi[t].dispose();Hi={}},getInstance:function(t){return Hi[t]},registerPainter:Xi,version:"5.0.1"}),Zi=1e-4;function ji(t,e,n,i){var r=e[1]-e[0],o=n[1]-n[0];if(0===r)return 0===o?n[0]:(n[0]+n[1])/2;if(i)if(r>0){if(t<=e[0])return n[0];if(t>=e[1])return n[1]}else{if(t>=e[0])return n[0];if(t<=e[1])return n[1]}else{if(t===e[0])return n[0];if(t===e[1])return n[1]}return(t-e[0])/r*o+n[0]}function qi(t,e){switch(t){case"center":case"middle":t="50%";break;case"left":case"top":t="0%";break;case"right":case"bottom":t="100%"}return"string"==typeof t?(n=t,n.replace(/^\s+|\s+$/g,"")).match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?NaN:+t;var n}function Ki(t,e,n){return null==e&&(e=10),e=Math.min(Math.max(0,e),20),t=(+t).toFixed(e),n?t:+t}function $i(t){return t.sort((function(t,e){return t-e})),t}function Ji(t){if(t=+t,isNaN(t))return 0;for(var e=1,n=0;Math.round(t*e)/e!==t;)e*=10,n++;return n}function Qi(t){var e=t.toString(),n=e.indexOf("e");if(n>0){var i=+e.slice(n+1);return i<0?-i:0}var r=e.indexOf(".");return r<0?0:e.length-1-r}function tr(t,e){var n=Math.log,i=Math.LN10,r=Math.floor(n(t[1]-t[0])/i),o=Math.round(n(Math.abs(e[1]-e[0]))/i),a=Math.min(Math.max(-r+o,0),20);return isFinite(a)?a:20}function er(t,e,n){if(!t[e])return 0;var i=R(t,(function(t,e){return t+(isNaN(e)?0:e)}),0);if(0===i)return 0;for(var r=Math.pow(10,n),o=O(t,(function(t){return(isNaN(t)?0:t)/i*r*100})),a=100*r,s=O(o,(function(t){return Math.floor(t)})),l=R(s,(function(t,e){return t+e}),0),u=O(o,(function(t,e){return t-s[e]}));l<a;){for(var h=Number.NEGATIVE_INFINITY,c=null,p=0,d=u.length;p<d;++p)u[p]>h&&(h=u[p],c=p);++s[c],u[c]=0,++l}return s[e]/r}var nr=9007199254740991;function ir(t){var e=2*Math.PI;return(t%e+e)%e}function rr(t){return t>-1e-4&&t<Zi}var or=/^(?:(\d{4})(?:[-\/](\d{1,2})(?:[-\/](\d{1,2})(?:[T ](\d{1,2})(?::(\d{1,2})(?::(\d{1,2})(?:[.,](\d+))?)?)?(Z|[\+\-]\d\d:?\d\d)?)?)?)?)?$/;function ar(t){if(t instanceof Date)return t;if("string"==typeof t){var e=or.exec(t);if(!e)return new Date(NaN);if(e[8]){var n=+e[4]||0;return"Z"!==e[8].toUpperCase()&&(n-=+e[8].slice(0,3)),new Date(Date.UTC(+e[1],+(e[2]||1)-1,+e[3]||1,n,+(e[5]||0),+e[6]||0,+e[7]||0))}return new Date(+e[1],+(e[2]||1)-1,+e[3]||1,+e[4]||0,+(e[5]||0),+e[6]||0,+e[7]||0)}return null==t?new Date(NaN):new Date(Math.round(t))}function sr(t){return Math.pow(10,lr(t))}function lr(t){if(0===t)return 0;var e=Math.floor(Math.log(t)/Math.LN10);return t/Math.pow(10,e)>=10&&e++,e}function ur(t,e){var n=lr(t),i=Math.pow(10,n),r=t/i;return t=(e?r<1.5?1:r<2.5?2:r<4?3:r<7?5:10:r<1?1:r<2?2:r<3?3:r<5?5:10)*i,n>=-20?+t.toFixed(n<0?-n:0):t}function hr(t,e){var n=(t.length-1)*e+1,i=Math.floor(n),r=+t[i-1],o=n-i;return o?r+o*(t[i]-r):r}function cr(t){t.sort((function(t,e){return s(t,e,0)?-1:1}));for(var e=-1/0,n=1,i=0;i<t.length;){for(var r=t[i].interval,o=t[i].close,a=0;a<2;a++)r[a]<=e&&(r[a]=e,o[a]=a?1:1-n),e=r[a],n=o[a];r[0]===r[1]&&o[0]*o[1]!=1?t.splice(i,1):i++}return t;function s(t,e,n){return t.interval[n]<e.interval[n]||t.interval[n]===e.interval[n]&&(t.close[n]-e.close[n]==(n?-1:1)||!n&&s(t,e,1))}}function pr(t){var e=parseFloat(t);return e==t&&(0!==e||"string"!=typeof t||t.indexOf("x")<=0)?e:NaN}function dr(t){return!isNaN(pr(t))}function fr(){return Math.round(9*Math.random())}function gr(t,e){return 0===e?t:gr(e,t%e)}function yr(t,e){return null==t?e:null==e?t:t*e/gr(t,e)}"undefined"!=typeof console&&console.warn&&console.log;function vr(t){0}function mr(t){throw new Error(t)}var _r="series\0",xr="\0_ec_\0";function br(t){return t instanceof Array?t:null==t?[]:[t]}function wr(t,e,n){if(t){t[e]=t[e]||{},t.emphasis=t.emphasis||{},t.emphasis[e]=t.emphasis[e]||{};for(var i=0,r=n.length;i<r;i++){var o=n[i];!t.emphasis[e].hasOwnProperty(o)&&t[e].hasOwnProperty(o)&&(t.emphasis[e][o]=t[e][o])}}}var Sr=["fontStyle","fontWeight","fontSize","fontFamily","rich","tag","color","textBorderColor","textBorderWidth","width","height","lineHeight","align","verticalAlign","baseline","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","textShadowColor","textShadowBlur","textShadowOffsetX","textShadowOffsetY","backgroundColor","borderColor","borderWidth","borderRadius","padding"];function Mr(t){return!X(t)||F(t)||t instanceof Date?t:t.value}function Ir(t,e,n){var i="normalMerge"===n,r="replaceMerge"===n,o="replaceAll"===n;t=t||[],e=(e||[]).slice();var a=ht();P(e,(function(t,n){X(t)||(e[n]=null)}));var s,l,u=function(t,e,n){var i=[];if("replaceAll"===n)return i;for(var r=0;r<t.length;r++){var o=t[r];o&&null!=o.id&&e.set(o.id,r),i.push({existing:"replaceMerge"===n||Lr(o)?null:o,newOption:null,keyInfo:null,brandNew:null})}return i}(t,a,n);return(i||r)&&function(t,e,n,i){P(i,(function(r,o){if(r&&null!=r.id){var a=Cr(r.id),s=n.get(a);if(null!=s){var l=t[s];rt(!l.newOption,'Duplicated option on id "'+a+'".'),l.newOption=r,l.existing=e[s],i[o]=null}}}))}(u,t,a,e),i&&function(t,e){P(e,(function(n,i){if(n&&null!=n.name)for(var r=0;r<t.length;r++){var o=t[r].existing;if(!t[r].newOption&&o&&(null==o.id||null==n.id)&&!Lr(n)&&!Lr(o)&&Tr("name",o,n))return t[r].newOption=n,void(e[i]=null)}}))}(u,e),i||r?function(t,e,n){P(e,(function(e){if(e){for(var i,r=0;(i=t[r])&&(i.newOption||Lr(i.existing)||i.existing&&null!=e.id&&!Tr("id",e,i.existing));)r++;i?(i.newOption=e,i.brandNew=n):t.push({newOption:e,brandNew:n,existing:null,keyInfo:null}),r++}}))}(u,e,r):o&&function(t,e){P(e,(function(e){t.push({newOption:e,brandNew:!0,existing:null,keyInfo:null})}))}(u,e),s=u,l=ht(),P(s,(function(t){var e=t.existing;e&&l.set(e.id,t)})),P(s,(function(t){var e=t.newOption;rt(!e||null==e.id||!l.get(e.id)||l.get(e.id)===t,"id duplicates: "+(e&&e.id)),e&&null!=e.id&&l.set(e.id,t),!t.keyInfo&&(t.keyInfo={})})),P(s,(function(t,e){var n=t.existing,i=t.newOption,r=t.keyInfo;if(X(i)){if(r.name=null!=i.name?Cr(i.name):n?n.name:_r+e,n)r.id=Cr(n.id);else if(null!=i.id)r.id=Cr(i.id);else{var o=0;do{r.id="\0"+r.name+"\0"+o++}while(l.get(r.id))}l.set(r.id,t)}})),u}function Tr(t,e,n){var i=Ar(e[t],null),r=Ar(n[t],null);return null!=i&&null!=r&&i===r}function Cr(t){return Ar(t,"")}function Ar(t,e){if(null==t)return e;var n=typeof t;return"string"===n?t:"number"===n||W(t)?t+"":e}function Dr(t){var e=t.name;return!(!e||!e.indexOf(_r))}function Lr(t){return t&&null!=t.id&&0===Cr(t.id).indexOf(xr)}function kr(t,e){return null!=e.dataIndexInside?e.dataIndexInside:null!=e.dataIndex?F(e.dataIndex)?O(e.dataIndex,(function(e){return t.indexOfRawIndex(e)})):t.indexOfRawIndex(e.dataIndex):null!=e.name?F(e.name)?O(e.name,(function(e){return t.indexOfName(e)})):t.indexOfName(e.name):void 0}function Pr(){var t="__ec_inner_"+Or++;return function(e){return e[t]||(e[t]={})}}var Or=fr();function Rr(t,e,n){var i;if(H(e)){var r={};r[e+"Index"]=0,i=r}else i=e;var o=ht(),a={},s=!1;P(i,(function(t,e){if("dataIndex"!==e&&"dataIndexInside"!==e){var i=e.match(/^(\w+)(Index|Id|Name)$/)||[],r=i[1],l=(i[2]||"").toLowerCase();if(r&&l&&!(n&&n.includeMainTypes&&A(n.includeMainTypes,r)<0))s=s||!!r,(o.get(r)||o.set(r,{}))[l]=t}else a[e]=t}));var l=n?n.defaultMainType:null;return!s&&l&&o.set(l,{}),o.each((function(e,i){var r=zr(t,i,e,{useDefault:l===i,enableAll:!n||null==n.enableAll||n.enableAll,enableNone:!n||null==n.enableNone||n.enableNone});a[i+"Models"]=r.models,a[i+"Model"]=r.models[0]})),a}var Nr={useDefault:!0,enableAll:!1,enableNone:!1},Er={useDefault:!1,enableAll:!0,enableNone:!0};function zr(t,e,n,i){i=i||Nr;var r=n.index,o=n.id,a=n.name,s={models:null,specified:null!=r||null!=o||null!=a};if(!s.specified){var l=void 0;return s.models=i.useDefault&&(l=t.getComponent(e))?[l]:[],s}return"none"===r||!1===r?(rt(i.enableNone,'`"none"` or `false` is not a valid value on index option.'),s.models=[],s):("all"===r&&(rt(i.enableAll,'`"all"` is not a valid value on index option.'),r=o=a=null),s.models=t.queryComponents({mainType:e,index:r,id:o,name:a}),s)}function Br(t,e,n){t.setAttribute?t.setAttribute(e,n):t[e]=n}function Vr(t,e){var n=ht(),i=[];return P(t,(function(t){var r=e(t);(n.get(r)||(i.push(r),n.set(r,[]))).push(t)})),{keys:i,buckets:n}}function Fr(t,e,n,i,r){var o=null==e||"auto"===e;if(null==i)return i;if("number"==typeof i)return Ki(d=pn(n||0,i,r),o?Math.max(Qi(n||0),Qi(i)):e);if("string"==typeof i)return r<1?n:i;for(var a=[],s=n,l=i,u=Math.max(s?s.length:0,l.length),h=0;h<u;++h){if("ordinal"===t.getDimensionInfo(h).type)a[h]=(r<1&&s?s:l)[h];else{var c=s&&s[h]?s[h]:0,p=l[h],d=pn(c,p,r);a[h]=Ki(d,o?Math.max(Qi(c),Qi(p)):e)}}return a}var Gr="___EC__COMPONENT__CONTAINER___",Hr="___EC__EXTENDED_CLASS___";function Wr(t){var e={main:"",sub:""};if(t){var n=t.split(".");e.main=n[0]||"",e.sub=n[1]||""}return e}function Yr(t,e){t.$constructor=t,t.extend=function(t){var e=this;function n(){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];if(t.$constructor)t.$constructor.apply(this,arguments);else{if(Xr(e)){var a=pt(n.prototype,new(e.bind.apply(e,r([void 0],i))));return a}e.apply(this,arguments)}}return n[Hr]=!0,I(n.prototype,t),n.extend=this.extend,n.superCall=jr,n.superApply=qr,D(n,this),n.superClass=e,n}}function Xr(t){return"function"==typeof t&&/^class\s/.test(Function.prototype.toString.call(t))}function Ur(t,e){t.extend=e.extend}var Zr=Math.round(10*Math.random());function jr(t,e){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];return this.superClass.prototype[e].apply(t,n)}function qr(t,e,n){return this.superClass.prototype[e].apply(t,n)}function Kr(t){var e={};t.registerClass=function(t){var n,i=t.type||t.prototype.type;if(i){rt(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(n=i),'componentType "'+n+'" illegal'),t.prototype.type=i;var r=Wr(i);if(r.sub){if(r.sub!==Gr){(function(t){var n=e[t.main];n&&n[Gr]||((n=e[t.main]={})[Gr]=!0);return n}(r))[r.sub]=t}}else e[r.main]=t}return t},t.getClass=function(t,n,i){var r=e[t];if(r&&r[Gr]&&(r=n?r[n]:null),i&&!r)throw new Error(n?"Component "+t+"."+(n||"")+" not exists. Load it first.":t+".type should be specified.");return r},t.getClassesByMainType=function(t){var n=Wr(t),i=[],r=e[n.main];return r&&r[Gr]?P(r,(function(t,e){e!==Gr&&i.push(t)})):i.push(r),i},t.hasClass=function(t){var n=Wr(t);return!!e[n.main]},t.getAllClassMainTypes=function(){var t=[];return P(e,(function(e,n){t.push(n)})),t},t.hasSubTypes=function(t){var n=Wr(t),i=e[n.main];return i&&i[Gr]}}function $r(t,e){for(var n=0;n<t.length;n++)t[n][1]||(t[n][1]=t[n][0]);return e=e||!1,function(n,i,r){for(var o={},a=0;a<t.length;a++){var s=t[a][1];if(!(i&&A(i,s)>=0||r&&A(r,s)<0)){var l=n.getShallow(s,e);null!=l&&(o[t[a][0]]=l)}}return o}}var Jr=$r([["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]]),Qr=function(){function t(){}return t.prototype.getAreaStyle=function(t,e){return Jr(this,t,e)},t}(),to=new Be(50);function eo(t){if("string"==typeof t){var e=to.get(t);return e&&e.image}return t}function no(t,e,n,i,r){if(t){if("string"==typeof t){if(e&&e.__zrImageSrc===t||!n)return e;var o=to.get(t),a={hostEl:n,cb:i,cbPayload:r};return o?!ro(e=o.image)&&o.pending.push(a):((e=new Image).onload=e.onerror=io,to.put(t,e.__cachedImgObj={image:e,pending:[a]}),e.src=e.__zrImageSrc=t),e}return t}return e}function io(){var t=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var e=0;e<t.pending.length;e++){var n=t.pending[e],i=n.cb;i&&i(this,n.cbPayload),n.hostEl.dirty()}t.pending.length=0}function ro(t){return t&&t.width&&t.height}var oo=/\{([a-zA-Z0-9_]+)\|([^}]*)\}/g;function ao(t,e,n,i,r){if(!e)return"";var o=(t+"").split("\n");r=so(e,n,i,r);for(var a=0,s=o.length;a<s;a++)o[a]=lo(o[a],r);return o.join("\n")}function so(t,e,n,i){var r=I({},i=i||{});r.font=e,n=tt(n,"..."),r.maxIterations=tt(i.maxIterations,2);var o=r.minChar=tt(i.minChar,0);r.cnCharWidth=Fn("国",e);var a=r.ascCharWidth=Fn("a",e);r.placeholder=tt(i.placeholder,"");for(var s=t=Math.max(0,t-1),l=0;l<o&&s>=a;l++)s-=a;var u=Fn(n,e);return u>s&&(n="",u=0),s=t-u,r.ellipsis=n,r.ellipsisWidth=u,r.contentWidth=s,r.containerWidth=t,r}function lo(t,e){var n=e.containerWidth,i=e.font,r=e.contentWidth;if(!n)return"";var o=Fn(t,i);if(o<=n)return t;for(var a=0;;a++){if(o<=r||a>=e.maxIterations){t+=e.ellipsis;break}var s=0===a?uo(t,r,e.ascCharWidth,e.cnCharWidth):o>0?Math.floor(t.length*r/o):0;o=Fn(t=t.substr(0,s),i)}return""===t&&(t=e.placeholder),t}function uo(t,e,n,i){for(var r=0,o=0,a=t.length;o<a&&r<e;o++){var s=t.charCodeAt(o);r+=0<=s&&s<=127?n:i}return o}var ho=function(){},co=function(t){this.tokens=[],t&&(this.tokens=t)},po=function(){this.width=0,this.height=0,this.contentWidth=0,this.contentHeight=0,this.outerWidth=0,this.outerHeight=0,this.lines=[]};function fo(t,e,n,i,r){var o,a,s=""===e,l=r&&n.rich[r]||{},u=t.lines,h=l.font||n.font,c=!1;if(i){var p=l.padding,d=p?p[1]+p[3]:0;if(null!=l.width&&"auto"!==l.width){var f=function(t,e){if("string"==typeof t)return t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t);return t}(l.width,i.width)+d;u.length>0&&f+i.accumWidth>i.width&&(o=e.split("\n"),c=!0),i.accumWidth=f}else{var g=vo(e,h,i.width,i.breakAll,i.accumWidth);i.accumWidth=g.accumWidth+d,a=g.linesWidths,o=g.lines}}else o=e.split("\n");for(var y=0;y<o.length;y++){var v=o[y],m=new ho;if(m.styleName=r,m.text=v,m.isLineHolder=!v&&!s,"number"==typeof l.width?m.width=l.width:m.width=a?a[y]:Fn(v,h),y||c)u.push(new co([m]));else{var _=(u[u.length-1]||(u[0]=new co)).tokens,x=_.length;1===x&&_[0].isLineHolder?_[0]=m:(v||!x||s)&&_.push(m)}}}var go=R(",&?/;] ".split(""),(function(t,e){return t[e]=!0,t}),{});function yo(t){return!function(t){var e=t.charCodeAt(0);return e>=33&&e<=255}(t)||!!go[t]}function vo(t,e,n,i,r){for(var o=[],a=[],s="",l="",u=0,h=0,c=0;c<t.length;c++){var p=t.charAt(c);if("\n"!==p){var d=Fn(p,e),f=!i&&!yo(p);(o.length?h+d>n:r+h+d>n)?h?(s||l)&&(f?(s||(s=l,l="",h=u=0),o.push(s),a.push(h-u),l+=p,s="",h=u+=d):(l&&(s+=l,h+=u,l="",u=0),o.push(s),a.push(h),s=p,h=d)):f?(o.push(l),a.push(u),l=p,u=d):(o.push(p),a.push(d)):(h+=d,f?(l+=p,u+=d):(l&&(s+=l,l="",u=0),s+=p))}else l&&(s+=l,h+=u),o.push(s),a.push(h),s="",l="",u=0,h=0}return o.length||s||(s=t,l="",u=0),l&&(s+=l),s&&(o.push(s),a.push(h)),1===o.length&&(h+=r),{accumWidth:h,lines:o,linesWidths:a}}var mo="__zr_style_"+Math.round(10*Math.random()),_o={shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:"#000",opacity:1,blend:"source-over"},xo={style:{shadowBlur:!0,shadowOffsetX:!0,shadowOffsetY:!0,shadowColor:!0,opacity:!0}};_o[mo]=!0;var bo=["z","z2","invisible"],wo=function(t){function e(e){return t.call(this,e)||this}var n;return vt(e,t),e.prototype._init=function(e){for(var n=z(e),i=0;i<n.length;i++){var r=n[i];"style"===r?this.useStyle(e[r]):t.prototype.attrKV.call(this,r,e[r])}this.style||this.useStyle({})},e.prototype.beforeBrush=function(){},e.prototype.afterBrush=function(){},e.prototype.innerBeforeBrush=function(){},e.prototype.innerAfterBrush=function(){},e.prototype.shouldBePainted=function(t,e,n,i){var r=this.transform;if(this.ignore||this.invisible||0===this.style.opacity||this.culling&&function(t,e,n){So.copy(t.getBoundingRect()),t.transform&&So.applyTransform(t.transform);return Mo.width=e,Mo.height=n,!So.intersect(Mo)}(this,t,e)||r&&!r[0]&&!r[3])return!1;if(n&&this.__clipPaths)for(var o=0;o<this.__clipPaths.length;++o)if(this.__clipPaths[o].isZeroArea())return!1;if(i&&this.parent)for(var a=this.parent;a;){if(a.ignore)return!1;a=a.parent}return!0},e.prototype.contain=function(t,e){return this.rectContain(t,e)},e.prototype.traverse=function(t,e){t.call(e,this)},e.prototype.rectContain=function(t,e){var n=this.transformCoordToLocal(t,e);return this.getBoundingRect().contain(n[0],n[1])},e.prototype.getPaintRect=function(){var t=this._paintRect;if(!this._paintRect||this.__dirty){var e=this.transform,n=this.getBoundingRect(),i=this.style,r=i.shadowBlur||0,o=i.shadowOffsetX||0,a=i.shadowOffsetY||0;t=this._paintRect||(this._paintRect=new En(0,0,0,0)),e?En.applyTransform(t,n,e):t.copy(n),(r||o||a)&&(t.width+=2*r+Math.abs(o),t.height+=2*r+Math.abs(a),t.x=Math.min(t.x,t.x+o-r),t.y=Math.min(t.y,t.y+a-r));var s=this.dirtyRectTolerance;t.isZero()||(t.x=Math.floor(t.x-s),t.y=Math.floor(t.y-s),t.width=Math.ceil(t.width+1+2*s),t.height=Math.ceil(t.height+1+2*s))}return t},e.prototype.setPrevPaintRect=function(t){t?(this._prevPaintRect=this._prevPaintRect||new En(0,0,0,0),this._prevPaintRect.copy(t)):this._prevPaintRect=null},e.prototype.getPrevPaintRect=function(){return this._prevPaintRect},e.prototype.animateStyle=function(t){return this.animate("style",t)},e.prototype.updateDuringAnimation=function(t){"style"===t?this.dirtyStyle():this.markRedraw()},e.prototype.attrKV=function(e,n){"style"!==e?t.prototype.attrKV.call(this,e,n):this.style?this.setStyle(n):this.useStyle(n)},e.prototype.setStyle=function(t,e){return"string"==typeof t?this.style[t]=e:I(this.style,t),this.dirtyStyle(),this},e.prototype.dirtyStyle=function(){this.markRedraw(),this.__dirty|=e.STYLE_CHANGED_BIT,this._rect&&(this._rect=null)},e.prototype.dirty=function(){this.dirtyStyle()},e.prototype.styleChanged=function(){return!!(this.__dirty&e.STYLE_CHANGED_BIT)},e.prototype.styleUpdated=function(){this.__dirty&=~e.STYLE_CHANGED_BIT},e.prototype.createStyle=function(t){return pt(_o,t)},e.prototype.useStyle=function(t){t[mo]||(t=this.createStyle(t)),this.__inHover?this.__hoverStyle=t:this.style=t,this.dirtyStyle()},e.prototype.isStyleObject=function(t){return t[mo]},e.prototype._innerSaveToNormal=function(e){t.prototype._innerSaveToNormal.call(this,e);var n=this._normalState;e.style&&!n.style&&(n.style=this._mergeStyle(this.createStyle(),this.style)),this._savePrimaryToNormal(e,n,bo)},e.prototype._applyStateObj=function(e,n,i,r,o,a){t.prototype._applyStateObj.call(this,e,n,i,r,o,a);var s,l=!(n&&r);if(n&&n.style?o?r?s=n.style:(s=this._mergeStyle(this.createStyle(),i.style),this._mergeStyle(s,n.style)):(s=this._mergeStyle(this.createStyle(),r?this.style:i.style),this._mergeStyle(s,n.style)):l&&(s=i.style),s)if(o){var u=this.style;if(this.style=this.createStyle(l?{}:u),l)for(var h=z(u),c=0;c<h.length;c++){(d=h[c])in s&&(s[d]=s[d],this.style[d]=u[d])}var p=z(s);for(c=0;c<p.length;c++){var d=p[c];this.style[d]=this.style[d]}this._transitionState(e,{style:s},a,this.getAnimationStyleProps())}else this.useStyle(s);for(c=0;c<bo.length;c++){d=bo[c];n&&null!=n[d]?this[d]=n[d]:l&&null!=i[d]&&(this[d]=i[d])}},e.prototype._mergeStates=function(e){for(var n,i=t.prototype._mergeStates.call(this,e),r=0;r<e.length;r++){var o=e[r];o.style&&(n=n||{},this._mergeStyle(n,o.style))}return n&&(i.style=n),i},e.prototype._mergeStyle=function(t,e){return I(t,e),t},e.prototype.getAnimationStyleProps=function(){return xo},e.STYLE_CHANGED_BIT=2,e.initDefaultProps=((n=e.prototype).type="displayable",n.invisible=!1,n.z=0,n.z2=0,n.zlevel=0,n.culling=!1,n.cursor="pointer",n.rectHover=!1,n.incremental=!1,n._rect=null,n.dirtyRectTolerance=0,void(n.__dirty=ii.REDARAW_BIT|e.STYLE_CHANGED_BIT)),e}(ii),So=new En(0,0,0,0),Mo=new En(0,0,0,0);var Io=Math.pow,To=Math.sqrt,Co=1e-8,Ao=1e-4,Do=To(3),Lo=1/3,ko=mt(),Po=mt(),Oo=mt();function Ro(t){return t>-1e-8&&t<Co}function No(t){return t>Co||t<-1e-8}function Eo(t,e,n,i,r){var o=1-r;return o*o*(o*t+3*r*e)+r*r*(r*i+3*o*n)}function zo(t,e,n,i,r){var o=1-r;return 3*(((e-t)*o+2*(n-e)*r)*o+(i-n)*r*r)}function Bo(t,e,n,i,r,o){var a=i+3*(e-n)-t,s=3*(n-2*e+t),l=3*(e-t),u=t-r,h=s*s-3*a*l,c=s*l-9*a*u,p=l*l-3*s*u,d=0;if(Ro(h)&&Ro(c)){if(Ro(s))o[0]=0;else(M=-l/s)>=0&&M<=1&&(o[d++]=M)}else{var f=c*c-4*h*p;if(Ro(f)){var g=c/h,y=-g/2;(M=-s/a+g)>=0&&M<=1&&(o[d++]=M),y>=0&&y<=1&&(o[d++]=y)}else if(f>0){var v=To(f),m=h*s+1.5*a*(-c+v),_=h*s+1.5*a*(-c-v);(M=(-s-((m=m<0?-Io(-m,Lo):Io(m,Lo))+(_=_<0?-Io(-_,Lo):Io(_,Lo))))/(3*a))>=0&&M<=1&&(o[d++]=M)}else{var x=(2*h*s-3*a*c)/(2*To(h*h*h)),b=Math.acos(x)/3,w=To(h),S=Math.cos(b),M=(-s-2*w*S)/(3*a),I=(y=(-s+w*(S+Do*Math.sin(b)))/(3*a),(-s+w*(S-Do*Math.sin(b)))/(3*a));M>=0&&M<=1&&(o[d++]=M),y>=0&&y<=1&&(o[d++]=y),I>=0&&I<=1&&(o[d++]=I)}}return d}function Vo(t,e,n,i,r){var o=6*n-12*e+6*t,a=9*e+3*i-3*t-9*n,s=3*e-3*t,l=0;if(Ro(a)){if(No(o))(h=-s/o)>=0&&h<=1&&(r[l++]=h)}else{var u=o*o-4*a*s;if(Ro(u))r[0]=-o/(2*a);else if(u>0){var h,c=To(u),p=(-o-c)/(2*a);(h=(-o+c)/(2*a))>=0&&h<=1&&(r[l++]=h),p>=0&&p<=1&&(r[l++]=p)}}return l}function Fo(t,e,n,i,r,o){var a=(e-t)*r+t,s=(n-e)*r+e,l=(i-n)*r+n,u=(s-a)*r+a,h=(l-s)*r+s,c=(h-u)*r+u;o[0]=t,o[1]=a,o[2]=u,o[3]=c,o[4]=c,o[5]=h,o[6]=l,o[7]=i}function Go(t,e,n,i,r,o,a,s,l,u,h){var c,p,d,f,g,y=.005,v=1/0;ko[0]=l,ko[1]=u;for(var m=0;m<1;m+=.05)Po[0]=Eo(t,n,r,a,m),Po[1]=Eo(e,i,o,s,m),(f=Rt(ko,Po))<v&&(c=m,v=f);v=1/0;for(var _=0;_<32&&!(y<Ao);_++)p=c-y,d=c+y,Po[0]=Eo(t,n,r,a,p),Po[1]=Eo(e,i,o,s,p),f=Rt(Po,ko),p>=0&&f<v?(c=p,v=f):(Oo[0]=Eo(t,n,r,a,d),Oo[1]=Eo(e,i,o,s,d),g=Rt(Oo,ko),d<=1&&g<v?(c=d,v=g):y*=.5);return h&&(h[0]=Eo(t,n,r,a,c),h[1]=Eo(e,i,o,s,c)),To(v)}function Ho(t,e,n,i,r,o,a,s,l){for(var u=t,h=e,c=0,p=1/l,d=1;d<=l;d++){var f=d*p,g=Eo(t,n,r,a,f),y=Eo(e,i,o,s,f),v=g-u,m=y-h;c+=Math.sqrt(v*v+m*m),u=g,h=y}return c}function Wo(t,e,n,i){var r=1-i;return r*(r*t+2*i*e)+i*i*n}function Yo(t,e,n,i){return 2*((1-i)*(e-t)+i*(n-e))}function Xo(t,e,n){var i=t+n-2*e;return 0===i?.5:(t-e)/i}function Uo(t,e,n,i,r){var o=(e-t)*i+t,a=(n-e)*i+e,s=(a-o)*i+o;r[0]=t,r[1]=o,r[2]=s,r[3]=s,r[4]=a,r[5]=n}function Zo(t,e,n,i,r,o,a,s,l){var u,h=.005,c=1/0;ko[0]=a,ko[1]=s;for(var p=0;p<1;p+=.05){Po[0]=Wo(t,n,r,p),Po[1]=Wo(e,i,o,p),(y=Rt(ko,Po))<c&&(u=p,c=y)}c=1/0;for(var d=0;d<32&&!(h<Ao);d++){var f=u-h,g=u+h;Po[0]=Wo(t,n,r,f),Po[1]=Wo(e,i,o,f);var y=Rt(Po,ko);if(f>=0&&y<c)u=f,c=y;else{Oo[0]=Wo(t,n,r,g),Oo[1]=Wo(e,i,o,g);var v=Rt(Oo,ko);g<=1&&v<c?(u=g,c=v):h*=.5}}return l&&(l[0]=Wo(t,n,r,u),l[1]=Wo(e,i,o,u)),To(c)}function jo(t,e,n,i,r,o,a){for(var s=t,l=e,u=0,h=1/a,c=1;c<=a;c++){var p=c*h,d=Wo(t,n,r,p),f=Wo(e,i,o,p),g=d-s,y=f-l;u+=Math.sqrt(g*g+y*y),s=d,l=f}return u}var qo=Math.min,Ko=Math.max,$o=Math.sin,Jo=Math.cos,Qo=2*Math.PI,ta=mt(),ea=mt(),na=mt();function ia(t,e,n){if(0!==t.length){for(var i=t[0],r=i[0],o=i[0],a=i[1],s=i[1],l=1;l<t.length;l++)i=t[l],r=qo(r,i[0]),o=Ko(o,i[0]),a=qo(a,i[1]),s=Ko(s,i[1]);e[0]=r,e[1]=a,n[0]=o,n[1]=s}}function ra(t,e,n,i,r,o){r[0]=qo(t,n),r[1]=qo(e,i),o[0]=Ko(t,n),o[1]=Ko(e,i)}var oa=[],aa=[];function sa(t,e,n,i,r,o,a,s,l,u){var h=Vo,c=Eo,p=h(t,n,r,a,oa);l[0]=1/0,l[1]=1/0,u[0]=-1/0,u[1]=-1/0;for(var d=0;d<p;d++){var f=c(t,n,r,a,oa[d]);l[0]=qo(f,l[0]),u[0]=Ko(f,u[0])}p=h(e,i,o,s,aa);for(d=0;d<p;d++){var g=c(e,i,o,s,aa[d]);l[1]=qo(g,l[1]),u[1]=Ko(g,u[1])}l[0]=qo(t,l[0]),u[0]=Ko(t,u[0]),l[0]=qo(a,l[0]),u[0]=Ko(a,u[0]),l[1]=qo(e,l[1]),u[1]=Ko(e,u[1]),l[1]=qo(s,l[1]),u[1]=Ko(s,u[1])}function la(t,e,n,i,r,o,a,s){var l=Xo,u=Wo,h=Ko(qo(l(t,n,r),1),0),c=Ko(qo(l(e,i,o),1),0),p=u(t,n,r,h),d=u(e,i,o,c);a[0]=qo(t,r,p),a[1]=qo(e,o,d),s[0]=Ko(t,r,p),s[1]=Ko(e,o,d)}function ua(t,e,n,i,r,o,a,s,l){var u=zt,h=Bt,c=Math.abs(r-o);if(c%Qo<1e-4&&c>1e-4)return s[0]=t-n,s[1]=e-i,l[0]=t+n,void(l[1]=e+i);if(ta[0]=Jo(r)*n+t,ta[1]=$o(r)*i+e,ea[0]=Jo(o)*n+t,ea[1]=$o(o)*i+e,u(s,ta,ea),h(l,ta,ea),(r%=Qo)<0&&(r+=Qo),(o%=Qo)<0&&(o+=Qo),r>o&&!a?o+=Qo:r<o&&a&&(r+=Qo),a){var p=o;o=r,r=p}for(var d=0;d<o;d+=Math.PI/2)d>r&&(na[0]=Jo(d)*n+t,na[1]=$o(d)*i+e,u(s,na,s),h(l,na,l))}var ha={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},ca=[],pa=[],da=[],fa=[],ga=[],ya=[],va=Math.min,ma=Math.max,_a=Math.cos,xa=Math.sin,ba=Math.sqrt,wa=Math.abs,Sa=Math.PI,Ma=2*Sa,Ia="undefined"!=typeof Float32Array,Ta=[];function Ca(t){return Math.round(t/Sa*1e8)/1e8%2*Sa}function Aa(t,e){var n=Ca(t[0]);n<0&&(n+=Ma);var i=n-t[0],r=t[1];r+=i,!e&&r-n>=Ma?r=n+Ma:e&&n-r>=Ma?r=n-Ma:!e&&n>r?r=n+(Ma-Ca(n-r)):e&&n<r&&(r=n-(Ma-Ca(r-n))),t[0]=n,t[1]=r}var Da=function(){function t(t){this.dpr=1,this._version=0,this._xi=0,this._yi=0,this._x0=0,this._y0=0,this._len=0,t&&(this._saveData=!1),this._saveData&&(this.data=[])}return t.prototype.increaseVersion=function(){this._version++},t.prototype.getVersion=function(){return this._version},t.prototype.setScale=function(t,e,n){(n=n||0)>0&&(this._ux=wa(n/qn/t)||0,this._uy=wa(n/qn/e)||0)},t.prototype.setDPR=function(t){this.dpr=t},t.prototype.setContext=function(t){this._ctx=t},t.prototype.getContext=function(){return this._ctx},t.prototype.beginPath=function(){return this._ctx&&this._ctx.beginPath(),this.reset(),this},t.prototype.reset=function(){this._saveData&&(this._len=0),this._lineDash&&(this._lineDash=null,this._dashOffset=0),this._pathSegLen&&(this._pathSegLen=null,this._pathLen=0),this._version++},t.prototype.moveTo=function(t,e){return this.addData(ha.M,t,e),this._ctx&&this._ctx.moveTo(t,e),this._x0=t,this._y0=e,this._xi=t,this._yi=e,this},t.prototype.lineTo=function(t,e){var n=wa(t-this._xi)>this._ux||wa(e-this._yi)>this._uy||this._len<5;return this.addData(ha.L,t,e),this._ctx&&n&&(this._needsDash?this._dashedLineTo(t,e):this._ctx.lineTo(t,e)),n&&(this._xi=t,this._yi=e),this},t.prototype.bezierCurveTo=function(t,e,n,i,r,o){return this.addData(ha.C,t,e,n,i,r,o),this._ctx&&(this._needsDash?this._dashedBezierTo(t,e,n,i,r,o):this._ctx.bezierCurveTo(t,e,n,i,r,o)),this._xi=r,this._yi=o,this},t.prototype.quadraticCurveTo=function(t,e,n,i){return this.addData(ha.Q,t,e,n,i),this._ctx&&(this._needsDash?this._dashedQuadraticTo(t,e,n,i):this._ctx.quadraticCurveTo(t,e,n,i)),this._xi=n,this._yi=i,this},t.prototype.arc=function(t,e,n,i,r,o){Ta[0]=i,Ta[1]=r,Aa(Ta,o),i=Ta[0];var a=(r=Ta[1])-i;return this.addData(ha.A,t,e,n,n,i,a,0,o?0:1),this._ctx&&this._ctx.arc(t,e,n,i,r,o),this._xi=_a(r)*n+t,this._yi=xa(r)*n+e,this},t.prototype.arcTo=function(t,e,n,i,r){return this._ctx&&this._ctx.arcTo(t,e,n,i,r),this},t.prototype.rect=function(t,e,n,i){return this._ctx&&this._ctx.rect(t,e,n,i),this.addData(ha.R,t,e,n,i),this},t.prototype.closePath=function(){this.addData(ha.Z);var t=this._ctx,e=this._x0,n=this._y0;return t&&(this._needsDash&&this._dashedLineTo(e,n),t.closePath()),this._xi=e,this._yi=n,this},t.prototype.fill=function(t){t&&t.fill(),this.toStatic()},t.prototype.stroke=function(t){t&&t.stroke(),this.toStatic()},t.prototype.setLineDash=function(t){if(t instanceof Array){this._lineDash=t,this._dashIdx=0;for(var e=0,n=0;n<t.length;n++)e+=t[n];this._dashSum=e,this._needsDash=!0}else this._lineDash=null,this._needsDash=!1;return this},t.prototype.setLineDashOffset=function(t){return this._dashOffset=t,this},t.prototype.len=function(){return this._len},t.prototype.setData=function(t){var e=t.length;this.data&&this.data.length===e||!Ia||(this.data=new Float32Array(e));for(var n=0;n<e;n++)this.data[n]=t[n];this._len=e},t.prototype.appendPath=function(t){t instanceof Array||(t=[t]);for(var e=t.length,n=0,i=this._len,r=0;r<e;r++)n+=t[r].len();Ia&&this.data instanceof Float32Array&&(this.data=new Float32Array(i+n));for(r=0;r<e;r++)for(var o=t[r].data,a=0;a<o.length;a++)this.data[i++]=o[a];this._len=i},t.prototype.addData=function(t,e,n,i,r,o,a,s,l){if(this._saveData){var u=this.data;this._len+arguments.length>u.length&&(this._expandData(),u=this.data);for(var h=0;h<arguments.length;h++)u[this._len++]=arguments[h]}},t.prototype._expandData=function(){if(!(this.data instanceof Array)){for(var t=[],e=0;e<this._len;e++)t[e]=this.data[e];this.data=t}},t.prototype._dashedLineTo=function(t,e){var n,i,r=this._dashSum,o=this._lineDash,a=this._ctx,s=this._dashOffset,l=this._xi,u=this._yi,h=t-l,c=e-u,p=ba(h*h+c*c),d=l,f=u,g=o.length;for(s<0&&(s=r+s),d-=(s%=r)*(h/=p),f-=s*(c/=p);h>0&&d<=t||h<0&&d>=t||0===h&&(c>0&&f<=e||c<0&&f>=e);)d+=h*(n=o[i=this._dashIdx]),f+=c*n,this._dashIdx=(i+1)%g,h>0&&d<l||h<0&&d>l||c>0&&f<u||c<0&&f>u||a[i%2?"moveTo":"lineTo"](h>=0?va(d,t):ma(d,t),c>=0?va(f,e):ma(f,e));h=d-t,c=f-e,this._dashOffset=-ba(h*h+c*c)},t.prototype._dashedBezierTo=function(t,e,n,i,r,o){var a,s,l,u,h,c=this._ctx,p=this._dashSum,d=this._dashOffset,f=this._lineDash,g=this._xi,y=this._yi,v=0,m=this._dashIdx,_=f.length,x=0;for(d<0&&(d=p+d),d%=p,a=0;a<1;a+=.1)s=Eo(g,t,n,r,a+.1)-Eo(g,t,n,r,a),l=Eo(y,e,i,o,a+.1)-Eo(y,e,i,o,a),v+=ba(s*s+l*l);for(;m<_&&!((x+=f[m])>d);m++);for(a=(x-d)/v;a<=1;)u=Eo(g,t,n,r,a),h=Eo(y,e,i,o,a),m%2?c.moveTo(u,h):c.lineTo(u,h),a+=f[m]/v,m=(m+1)%_;m%2!=0&&c.lineTo(r,o),s=r-u,l=o-h,this._dashOffset=-ba(s*s+l*l)},t.prototype._dashedQuadraticTo=function(t,e,n,i){var r=n,o=i;n=(n+2*t)/3,i=(i+2*e)/3,t=(this._xi+2*t)/3,e=(this._yi+2*e)/3,this._dashedBezierTo(t,e,n,i,r,o)},t.prototype.toStatic=function(){if(this._saveData){var t=this.data;t instanceof Array&&(t.length=this._len,Ia&&this._len>11&&(this.data=new Float32Array(t)))}},t.prototype.getBoundingRect=function(){da[0]=da[1]=ga[0]=ga[1]=Number.MAX_VALUE,fa[0]=fa[1]=ya[0]=ya[1]=-Number.MAX_VALUE;var t,e=this.data,n=0,i=0,r=0,o=0;for(t=0;t<this._len;){var a=e[t++],s=1===t;switch(s&&(r=n=e[t],o=i=e[t+1]),a){case ha.M:n=r=e[t++],i=o=e[t++],ga[0]=r,ga[1]=o,ya[0]=r,ya[1]=o;break;case ha.L:ra(n,i,e[t],e[t+1],ga,ya),n=e[t++],i=e[t++];break;case ha.C:sa(n,i,e[t++],e[t++],e[t++],e[t++],e[t],e[t+1],ga,ya),n=e[t++],i=e[t++];break;case ha.Q:la(n,i,e[t++],e[t++],e[t],e[t+1],ga,ya),n=e[t++],i=e[t++];break;case ha.A:var l=e[t++],u=e[t++],h=e[t++],c=e[t++],p=e[t++],d=e[t++]+p;t+=1;var f=!e[t++];s&&(r=_a(p)*h+l,o=xa(p)*c+u),ua(l,u,h,c,p,d,f,ga,ya),n=_a(d)*h+l,i=xa(d)*c+u;break;case ha.R:ra(r=n=e[t++],o=i=e[t++],r+e[t++],o+e[t++],ga,ya);break;case ha.Z:n=r,i=o}zt(da,da,ga),Bt(fa,fa,ya)}return 0===t&&(da[0]=da[1]=fa[0]=fa[1]=0),new En(da[0],da[1],fa[0]-da[0],fa[1]-da[1])},t.prototype._calculateLength=function(){var t=this.data,e=this._len,n=this._ux,i=this._uy,r=0,o=0,a=0,s=0;this._pathSegLen||(this._pathSegLen=[]);for(var l=this._pathSegLen,u=0,h=0,c=0;c<e;){var p=t[c++],d=1===c;d&&(a=r=t[c],s=o=t[c+1]);var f=-1;switch(p){case ha.M:r=a=t[c++],o=s=t[c++];break;case ha.L:var g=t[c++],y=(_=t[c++])-o;(wa(D=g-r)>n||wa(y)>i||c===e-1)&&(f=Math.sqrt(D*D+y*y),r=g,o=_);break;case ha.C:var v=t[c++],m=t[c++],_=(g=t[c++],t[c++]),x=t[c++],b=t[c++];f=Ho(r,o,v,m,g,_,x,b,10),r=x,o=b;break;case ha.Q:f=jo(r,o,v=t[c++],m=t[c++],g=t[c++],_=t[c++],10),r=g,o=_;break;case ha.A:var w=t[c++],S=t[c++],M=t[c++],I=t[c++],T=t[c++],C=t[c++],A=C+T;c+=1;t[c++];d&&(a=_a(T)*M+w,s=xa(T)*I+S),f=ma(M,I)*va(Ma,Math.abs(C)),r=_a(A)*M+w,o=xa(A)*I+S;break;case ha.R:a=r=t[c++],s=o=t[c++],f=2*t[c++]+2*t[c++];break;case ha.Z:var D=a-r;y=s-o;f=Math.sqrt(D*D+y*y),r=a,o=s}f>=0&&(l[h++]=f,u+=f)}return this._pathLen=u,u},t.prototype.rebuildPath=function(t,e){var n,i,r,o,a,s,l,u,h=this.data,c=this._ux,p=this._uy,d=this._len,f=e<1,g=0,y=0;if(!f||(this._pathSegLen||this._calculateLength(),l=this._pathSegLen,u=e*this._pathLen))t:for(var v=0;v<d;){var m=h[v++],_=1===v;switch(_&&(n=r=h[v],i=o=h[v+1]),m){case ha.M:n=r=h[v++],i=o=h[v++],t.moveTo(r,o);break;case ha.L:if(a=h[v++],s=h[v++],wa(a-r)>c||wa(s-o)>p||v===d-1){if(f){if(g+(H=l[y++])>u){var x=(u-g)/H;t.lineTo(r*(1-x)+a*x,o*(1-x)+s*x);break t}g+=H}t.lineTo(a,s),r=a,o=s}break;case ha.C:var b=h[v++],w=h[v++],S=h[v++],M=h[v++],I=h[v++],T=h[v++];if(f){if(g+(H=l[y++])>u){Fo(r,b,S,I,x=(u-g)/H,ca),Fo(o,w,M,T,x,pa),t.bezierCurveTo(ca[1],pa[1],ca[2],pa[2],ca[3],pa[3]);break t}g+=H}t.bezierCurveTo(b,w,S,M,I,T),r=I,o=T;break;case ha.Q:b=h[v++],w=h[v++],S=h[v++],M=h[v++];if(f){if(g+(H=l[y++])>u){Uo(r,b,S,x=(u-g)/H,ca),Uo(o,w,M,x,pa),t.quadraticCurveTo(ca[1],pa[1],ca[2],pa[2]);break t}g+=H}t.quadraticCurveTo(b,w,S,M),r=S,o=M;break;case ha.A:var C=h[v++],A=h[v++],D=h[v++],L=h[v++],k=h[v++],P=h[v++],O=h[v++],R=!h[v++],N=D>L?D:L,E=wa(D-L)>.001,z=k+P,B=!1;if(f)g+(H=l[y++])>u&&(z=k+P*(u-g)/H,B=!0),g+=H;if(E&&t.ellipse?t.ellipse(C,A,D,L,O,k,z,R):t.arc(C,A,N,k,z,R),B)break t;_&&(n=_a(k)*D+C,i=xa(k)*L+A),r=_a(z)*D+C,o=xa(z)*L+A;break;case ha.R:n=r=h[v],i=o=h[v+1],a=h[v++],s=h[v++];var V=h[v++],F=h[v++];if(f){if(g+(H=l[y++])>u){var G=u-g;t.moveTo(a,s),t.lineTo(a+va(G,V),s),(G-=V)>0&&t.lineTo(a+V,s+va(G,F)),(G-=F)>0&&t.lineTo(a+ma(V-G,0),s+F),(G-=V)>0&&t.lineTo(a,s+ma(F-G,0));break t}g+=H}t.rect(a,s,V,F);break;case ha.Z:if(f){var H;if(g+(H=l[y++])>u){x=(u-g)/H;t.lineTo(r*(1-x)+n*x,o*(1-x)+i*x);break t}g+=H}t.closePath(),r=n,o=i}}},t.CMD=ha,t.initDefaultProps=function(){var e=t.prototype;e._saveData=!0,e._needsDash=!1,e._dashOffset=0,e._dashIdx=0,e._dashSum=0,e._ux=0,e._uy=0}(),t}();function La(t,e,n,i,r,o,a){if(0===r)return!1;var s=r,l=0;if(a>e+s&&a>i+s||a<e-s&&a<i-s||o>t+s&&o>n+s||o<t-s&&o<n-s)return!1;if(t===n)return Math.abs(o-t)<=s/2;var u=(l=(e-i)/(t-n))*o-a+(t*i-n*e)/(t-n);return u*u/(l*l+1)<=s/2*s/2}function ka(t,e,n,i,r,o,a,s,l,u,h){if(0===l)return!1;var c=l;return!(h>e+c&&h>i+c&&h>o+c&&h>s+c||h<e-c&&h<i-c&&h<o-c&&h<s-c||u>t+c&&u>n+c&&u>r+c&&u>a+c||u<t-c&&u<n-c&&u<r-c&&u<a-c)&&Go(t,e,n,i,r,o,a,s,u,h,null)<=c/2}function Pa(t,e,n,i,r,o,a,s,l){if(0===a)return!1;var u=a;return!(l>e+u&&l>i+u&&l>o+u||l<e-u&&l<i-u&&l<o-u||s>t+u&&s>n+u&&s>r+u||s<t-u&&s<n-u&&s<r-u)&&Zo(t,e,n,i,r,o,s,l,null)<=u/2}var Oa=2*Math.PI;function Ra(t){return(t%=Oa)<0&&(t+=Oa),t}var Na=2*Math.PI;function Ea(t,e,n,i,r,o,a,s,l){if(0===a)return!1;var u=a;s-=t,l-=e;var h=Math.sqrt(s*s+l*l);if(h-u>n||h+u<n)return!1;if(Math.abs(i-r)%Na<1e-4)return!0;if(o){var c=i;i=Ra(r),r=Ra(c)}else i=Ra(i),r=Ra(r);i>r&&(r+=Na);var p=Math.atan2(l,s);return p<0&&(p+=Na),p>=i&&p<=r||p+Na>=i&&p+Na<=r}function za(t,e,n,i,r,o){if(o>e&&o>i||o<e&&o<i)return 0;if(i===e)return 0;var a=(o-e)/(i-e),s=i<e?1:-1;1!==a&&0!==a||(s=i<e?.5:-.5);var l=a*(n-t)+t;return l===r?1/0:l>r?s:0}var Ba=Da.CMD,Va=2*Math.PI;var Fa=[-1,-1,-1],Ga=[-1,-1];function Ha(t,e,n,i,r,o,a,s,l,u){if(u>e&&u>i&&u>o&&u>s||u<e&&u<i&&u<o&&u<s)return 0;var h,c=Bo(e,i,o,s,u,Fa);if(0===c)return 0;for(var p=0,d=-1,f=void 0,g=void 0,y=0;y<c;y++){var v=Fa[y],m=0===v||1===v?.5:1;Eo(t,n,r,a,v)<l||(d<0&&(d=Vo(e,i,o,s,Ga),Ga[1]<Ga[0]&&d>1&&(h=void 0,h=Ga[0],Ga[0]=Ga[1],Ga[1]=h),f=Eo(e,i,o,s,Ga[0]),d>1&&(g=Eo(e,i,o,s,Ga[1]))),2===d?v<Ga[0]?p+=f<e?m:-m:v<Ga[1]?p+=g<f?m:-m:p+=s<g?m:-m:v<Ga[0]?p+=f<e?m:-m:p+=s<f?m:-m)}return p}function Wa(t,e,n,i,r,o,a,s){if(s>e&&s>i&&s>o||s<e&&s<i&&s<o)return 0;var l=function(t,e,n,i,r){var o=t-2*e+n,a=2*(e-t),s=t-i,l=0;if(Ro(o))No(a)&&(h=-s/a)>=0&&h<=1&&(r[l++]=h);else{var u=a*a-4*o*s;if(Ro(u))(h=-a/(2*o))>=0&&h<=1&&(r[l++]=h);else if(u>0){var h,c=To(u),p=(-a-c)/(2*o);(h=(-a+c)/(2*o))>=0&&h<=1&&(r[l++]=h),p>=0&&p<=1&&(r[l++]=p)}}return l}(e,i,o,s,Fa);if(0===l)return 0;var u=Xo(e,i,o);if(u>=0&&u<=1){for(var h=0,c=Wo(e,i,o,u),p=0;p<l;p++){var d=0===Fa[p]||1===Fa[p]?.5:1;Wo(t,n,r,Fa[p])<a||(Fa[p]<u?h+=c<e?d:-d:h+=o<c?d:-d)}return h}d=0===Fa[0]||1===Fa[0]?.5:1;return Wo(t,n,r,Fa[0])<a?0:o<e?d:-d}function Ya(t,e,n,i,r,o,a,s){if((s-=e)>n||s<-n)return 0;var l=Math.sqrt(n*n-s*s);Fa[0]=-l,Fa[1]=l;var u=Math.abs(i-r);if(u<1e-4)return 0;if(u>=Va-1e-4){i=0,r=Va;var h=o?1:-1;return a>=Fa[0]+t&&a<=Fa[1]+t?h:0}if(i>r){var c=i;i=r,r=c}i<0&&(i+=Va,r+=Va);for(var p=0,d=0;d<2;d++){var f=Fa[d];if(f+t>a){var g=Math.atan2(s,f);h=o?1:-1;g<0&&(g=Va+g),(g>=i&&g<=r||g+Va>=i&&g+Va<=r)&&(g>Math.PI/2&&g<1.5*Math.PI&&(h=-h),p+=h)}}return p}function Xa(t,e,n,i,r){for(var o,a,s,l,u=t.data,h=t.len(),c=0,p=0,d=0,f=0,g=0,y=0;y<h;){var v=u[y++],m=1===y;switch(v===Ba.M&&y>1&&(n||(c+=za(p,d,f,g,i,r))),m&&(f=p=u[y],g=d=u[y+1]),v){case Ba.M:p=f=u[y++],d=g=u[y++];break;case Ba.L:if(n){if(La(p,d,u[y],u[y+1],e,i,r))return!0}else c+=za(p,d,u[y],u[y+1],i,r)||0;p=u[y++],d=u[y++];break;case Ba.C:if(n){if(ka(p,d,u[y++],u[y++],u[y++],u[y++],u[y],u[y+1],e,i,r))return!0}else c+=Ha(p,d,u[y++],u[y++],u[y++],u[y++],u[y],u[y+1],i,r)||0;p=u[y++],d=u[y++];break;case Ba.Q:if(n){if(Pa(p,d,u[y++],u[y++],u[y],u[y+1],e,i,r))return!0}else c+=Wa(p,d,u[y++],u[y++],u[y],u[y+1],i,r)||0;p=u[y++],d=u[y++];break;case Ba.A:var _=u[y++],x=u[y++],b=u[y++],w=u[y++],S=u[y++],M=u[y++];y+=1;var I=!!(1-u[y++]);o=Math.cos(S)*b+_,a=Math.sin(S)*w+x,m?(f=o,g=a):c+=za(p,d,o,a,i,r);var T=(i-_)*w/b+_;if(n){if(Ea(_,x,w,S,S+M,I,e,T,r))return!0}else c+=Ya(_,x,w,S,S+M,I,T,r);p=Math.cos(S+M)*b+_,d=Math.sin(S+M)*w+x;break;case Ba.R:if(f=p=u[y++],g=d=u[y++],o=f+u[y++],a=g+u[y++],n){if(La(f,g,o,g,e,i,r)||La(o,g,o,a,e,i,r)||La(o,a,f,a,e,i,r)||La(f,a,f,g,e,i,r))return!0}else c+=za(o,g,o,a,i,r),c+=za(f,a,f,g,i,r);break;case Ba.Z:if(n){if(La(p,d,f,g,e,i,r))return!0}else c+=za(p,d,f,g,i,r);p=f,d=g}}return n||(s=d,l=g,Math.abs(s-l)<1e-4)||(c+=za(p,d,f,g,i,r)||0),0!==c}var Ua=T({fill:"#000",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:"butt",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},_o),Za={style:T({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},xo.style)},ja=["x","y","rotation","scaleX","scaleY","originX","originY","invisible","culling","z","z2","zlevel","parent"],qa=function(t){function e(e){return t.call(this,e)||this}var n;return vt(e,t),e.prototype.update=function(){var n=this;t.prototype.update.call(this);var i=this.style;if(i.decal){var r=this._decalEl=this._decalEl||new e;r.buildPath===e.prototype.buildPath&&(r.buildPath=function(t){n.buildPath(t,n.shape)}),r.silent=!0;var o=r.style;for(var a in i)o[a]!==i[a]&&(o[a]=i[a]);o.fill=i.fill?i.decal:null,o.decal=null,o.shadowColor=null,i.strokeFirst&&(o.stroke=null);for(var s=0;s<ja.length;++s)r[ja[s]]=this[ja[s]];r.__dirty|=ii.REDARAW_BIT}else this._decalEl&&(this._decalEl=null)},e.prototype.getDecalElement=function(){return this._decalEl},e.prototype._init=function(e){var n=z(e);this.shape=this.getDefaultShape();var i=this.getDefaultStyle();i&&this.useStyle(i);for(var r=0;r<n.length;r++){var o=n[r],a=e[o];"style"===o?this.style?I(this.style,a):this.useStyle(a):"shape"===o?I(this.shape,a):t.prototype.attrKV.call(this,o,a)}this.style||this.useStyle({})},e.prototype.getDefaultStyle=function(){return null},e.prototype.getDefaultShape=function(){return{}},e.prototype.canBeInsideText=function(){return this.hasFill()},e.prototype.getInsideTextFill=function(){var t=this.style.fill;if("none"!==t){if(H(t)){var e=un(t,0);return e>.5?Kn:e>.2?"#eee":$n}if(t)return $n}return Kn},e.prototype.getInsideTextStroke=function(t){var e=this.style.fill;if(H(e)){var n=this.__zr;if(!(!n||!n.isDarkMode())===un(t,0)<.4)return e}},e.prototype.buildPath=function(t,e,n){},e.prototype.pathUpdated=function(){this.__dirty&=~e.SHAPE_CHANGED_BIT},e.prototype.createPathProxy=function(){this.path=new Da(!1)},e.prototype.hasStroke=function(){var t=this.style,e=t.stroke;return!(null==e||"none"===e||!(t.lineWidth>0))},e.prototype.hasFill=function(){var t=this.style.fill;return null!=t&&"none"!==t},e.prototype.getBoundingRect=function(){var t=this._rect,n=this.style,i=!t;if(i){var r=!1;this.path||(r=!0,this.createPathProxy());var o=this.path;(r||this.__dirty&e.SHAPE_CHANGED_BIT)&&(o.beginPath(),this.buildPath(o,this.shape,!1),this.pathUpdated()),t=o.getBoundingRect()}if(this._rect=t,this.hasStroke()&&this.path&&this.path.len()>0){var a=this._rectWithStroke||(this._rectWithStroke=t.clone());if(this.__dirty||i){a.copy(t);var s=n.strokeNoScale?this.getLineScale():1,l=n.lineWidth;if(!this.hasFill()){var u=this.strokeContainThreshold;l=Math.max(l,null==u?4:u)}s>1e-10&&(a.width+=l/s,a.height+=l/s,a.x-=l/s/2,a.y-=l/s/2)}return a}return t},e.prototype.contain=function(t,e){var n=this.transformCoordToLocal(t,e),i=this.getBoundingRect(),r=this.style;if(t=n[0],e=n[1],i.contain(t,e)){var o=this.path;if(this.hasStroke()){var a=r.lineWidth,s=r.strokeNoScale?this.getLineScale():1;if(s>1e-10&&(this.hasFill()||(a=Math.max(a,this.strokeContainThreshold)),function(t,e,n,i){return Xa(t,e,!0,n,i)}(o,a/s,t,e)))return!0}if(this.hasFill())return function(t,e,n){return Xa(t,0,!1,e,n)}(o,t,e)}return!1},e.prototype.dirtyShape=function(){this.__dirty|=e.SHAPE_CHANGED_BIT,this._rect&&(this._rect=null),this._decalEl&&this._decalEl.dirtyShape(),this.markRedraw()},e.prototype.dirty=function(){this.dirtyStyle(),this.dirtyShape()},e.prototype.animateShape=function(t){return this.animate("shape",t)},e.prototype.updateDuringAnimation=function(t){"style"===t?this.dirtyStyle():"shape"===t?this.dirtyShape():this.markRedraw()},e.prototype.attrKV=function(e,n){"shape"===e?this.setShape(n):t.prototype.attrKV.call(this,e,n)},e.prototype.setShape=function(t,e){var n=this.shape;return n||(n=this.shape={}),"string"==typeof t?n[t]=e:I(n,t),this.dirtyShape(),this},e.prototype.shapeChanged=function(){return!!(this.__dirty&e.SHAPE_CHANGED_BIT)},e.prototype.createStyle=function(t){return pt(Ua,t)},e.prototype._innerSaveToNormal=function(e){t.prototype._innerSaveToNormal.call(this,e);var n=this._normalState;e.shape&&!n.shape&&(n.shape=I({},this.shape))},e.prototype._applyStateObj=function(e,n,i,r,o,a){t.prototype._applyStateObj.call(this,e,n,i,r,o,a);var s,l=!(n&&r);if(n&&n.shape?o?r?s=n.shape:(s=I({},i.shape),I(s,n.shape)):(s=I({},r?this.shape:i.shape),I(s,n.shape)):l&&(s=i.shape),s)if(o){this.shape=I({},this.shape);for(var u={},h=z(s),c=0;c<h.length;c++){var p=h[c];"object"==typeof s[p]?this.shape[p]=s[p]:u[p]=s[p]}this._transitionState(e,{shape:u},a)}else this.shape=s,this.dirtyShape()},e.prototype._mergeStates=function(e){for(var n,i=t.prototype._mergeStates.call(this,e),r=0;r<e.length;r++){var o=e[r];o.shape&&(n=n||{},this._mergeStyle(n,o.shape))}return n&&(i.shape=n),i},e.prototype.getAnimationStyleProps=function(){return Za},e.prototype.isZeroArea=function(){return!1},e.extend=function(t){var n=function(e){function n(n){var i=e.call(this,n)||this;return t.init&&t.init.call(i,n),i}return vt(n,e),n.prototype.getDefaultStyle=function(){return w(t.style)},n.prototype.getDefaultShape=function(){return w(t.shape)},n}(e);for(var i in t)"function"==typeof t[i]&&(n.prototype[i]=t[i]);return n},e.SHAPE_CHANGED_BIT=4,e.initDefaultProps=((n=e.prototype).type="path",n.strokeContainThreshold=5,n.segmentIgnoreThreshold=0,n.subPixelOptimize=!1,n.autoBatch=!1,void(n.__dirty=ii.REDARAW_BIT|wo.STYLE_CHANGED_BIT|e.SHAPE_CHANGED_BIT)),e}(wo),Ka=T({strokeFirst:!0,font:Bn,x:0,y:0,textAlign:"left",textBaseline:"top",miterLimit:2},Ua),$a=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return vt(e,t),e.prototype.hasStroke=function(){var t=this.style,e=t.stroke;return null!=e&&"none"!==e&&t.lineWidth>0},e.prototype.hasFill=function(){var t=this.style.fill;return null!=t&&"none"!==t},e.prototype.createStyle=function(t){return pt(Ka,t)},e.prototype.setBoundingRect=function(t){this._rect=t},e.prototype.getBoundingRect=function(){var t=this.style;if(!this._rect){var e=t.text;null!=e?e+="":e="";var n=Hn(e,t.font,t.textAlign,t.textBaseline);if(n.x+=t.x||0,n.y+=t.y||0,this.hasStroke()){var i=t.lineWidth;n.x-=i/2,n.y-=i/2,n.width+=i,n.height+=i}this._rect=n}return this._rect},e.initDefaultProps=void(e.prototype.dirtyRectTolerance=10),e}(wo);$a.prototype.type="tspan";var Ja=T({x:0,y:0},_o),Qa={style:T({x:!0,y:!0,width:!0,height:!0,sx:!0,sy:!0,sWidth:!0,sHeight:!0},xo.style)};var ts=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return vt(e,t),e.prototype.createStyle=function(t){return pt(Ja,t)},e.prototype._getSize=function(t){var e=this.style,n=e[t];if(null!=n)return n;var i,r=(i=e.image)&&"string"!=typeof i&&i.width&&i.height?e.image:this.__image;if(!r)return 0;var o="width"===t?"height":"width",a=e[o];return null==a?r[t]:r[t]/r[o]*a},e.prototype.getWidth=function(){return this._getSize("width")},e.prototype.getHeight=function(){return this._getSize("height")},e.prototype.getAnimationStyleProps=function(){return Qa},e.prototype.getBoundingRect=function(){var t=this.style;return this._rect||(this._rect=new En(t.x||0,t.y||0,this.getWidth(),this.getHeight())),this._rect},e}(wo);ts.prototype.type="image";var es=Math.round;function ns(t,e,n){if(e){var i=e.x1,r=e.x2,o=e.y1,a=e.y2;t.x1=i,t.x2=r,t.y1=o,t.y2=a;var s=n&&n.lineWidth;return s?(es(2*i)===es(2*r)&&(t.x1=t.x2=rs(i,s,!0)),es(2*o)===es(2*a)&&(t.y1=t.y2=rs(o,s,!0)),t):t}}function is(t,e,n){if(e){var i=e.x,r=e.y,o=e.width,a=e.height;t.x=i,t.y=r,t.width=o,t.height=a;var s=n&&n.lineWidth;return s?(t.x=rs(i,s,!0),t.y=rs(r,s,!0),t.width=Math.max(rs(i+o,s,!1)-t.x,0===o?0:1),t.height=Math.max(rs(r+a,s,!1)-t.y,0===a?0:1),t):t}}function rs(t,e,n){if(!e)return t;var i=es(2*t);return(i+es(e))%2==0?i/2:(i+(n?1:-1))/2}var os=function(){this.x=0,this.y=0,this.width=0,this.height=0},as={},ss=function(t){function e(e){return t.call(this,e)||this}return vt(e,t),e.prototype.getDefaultShape=function(){return new os},e.prototype.buildPath=function(t,e){var n,i,r,o;if(this.subPixelOptimize){var a=is(as,e,this.style);n=a.x,i=a.y,r=a.width,o=a.height,a.r=e.r,e=a}else n=e.x,i=e.y,r=e.width,o=e.height;e.r?function(t,e){var n,i,r,o,a,s=e.x,l=e.y,u=e.width,h=e.height,c=e.r;u<0&&(s+=u,u=-u),h<0&&(l+=h,h=-h),"number"==typeof c?n=i=r=o=c:c instanceof Array?1===c.length?n=i=r=o=c[0]:2===c.length?(n=r=c[0],i=o=c[1]):3===c.length?(n=c[0],i=o=c[1],r=c[2]):(n=c[0],i=c[1],r=c[2],o=c[3]):n=i=r=o=0,n+i>u&&(n*=u/(a=n+i),i*=u/a),r+o>u&&(r*=u/(a=r+o),o*=u/a),i+r>h&&(i*=h/(a=i+r),r*=h/a),n+o>h&&(n*=h/(a=n+o),o*=h/a),t.moveTo(s+n,l),t.lineTo(s+u-i,l),0!==i&&t.arc(s+u-i,l+i,i,-Math.PI/2,0),t.lineTo(s+u,l+h-r),0!==r&&t.arc(s+u-r,l+h-r,r,0,Math.PI/2),t.lineTo(s+o,l+h),0!==o&&t.arc(s+o,l+h-o,o,Math.PI/2,Math.PI),t.lineTo(s,l+n),0!==n&&t.arc(s+n,l+n,n,Math.PI,1.5*Math.PI)}(t,e):t.rect(n,i,r,o)},e.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},e}(qa);ss.prototype.type="rect";var ls={fill:"#000"},us={style:T({fill:!0,stroke:!0,fillOpacity:!0,strokeOpacity:!0,lineWidth:!0,fontSize:!0,lineHeight:!0,width:!0,height:!0,textShadowColor:!0,textShadowBlur:!0,textShadowOffsetX:!0,textShadowOffsetY:!0,backgroundColor:!0,padding:!0,borderColor:!0,borderWidth:!0,borderRadius:!0},xo.style)},hs=function(t){function e(e){var n=t.call(this)||this;return n.type="text",n._children=[],n._defaultStyle=ls,n.attr(e),n}return vt(e,t),e.prototype.childrenRef=function(){return this._children},e.prototype.update=function(){this.styleChanged()&&this._updateSubTexts();for(var e=0;e<this._children.length;e++){var n=this._children[e];n.zlevel=this.zlevel,n.z=this.z,n.z2=this.z2,n.culling=this.culling,n.cursor=this.cursor,n.invisible=this.invisible}var i=this.attachedTransform;if(i){i.updateTransform();var r=i.transform;r?(this.transform=this.transform||[],me(this.transform,r)):this.transform=null}else t.prototype.update.call(this)},e.prototype.getComputedTransform=function(){return this.__hostTarget&&(this.__hostTarget.getComputedTransform(),this.__hostTarget.updateInnerText(!0)),this.attachedTransform?this.attachedTransform.getComputedTransform():t.prototype.getComputedTransform.call(this)},e.prototype._updateSubTexts=function(){var t;this._childCursor=0,ds(t=this.style),P(t.rich,ds),this.style.rich?this._updateRichTexts():this._updatePlainTexts(),this._children.length=this._childCursor,this.styleUpdated()},e.prototype.addSelfToZr=function(e){t.prototype.addSelfToZr.call(this,e);for(var n=0;n<this._children.length;n++)this._children[n].__zr=e},e.prototype.removeSelfFromZr=function(e){t.prototype.removeSelfFromZr.call(this,e);for(var n=0;n<this._children.length;n++)this._children[n].__zr=null},e.prototype.getBoundingRect=function(){if(this.styleChanged()&&this._updateSubTexts(),!this._rect){for(var t=new En(0,0,0,0),e=this._children,n=[],i=null,r=0;r<e.length;r++){var o=e[r],a=o.getBoundingRect(),s=o.getLocalTransform(n);s?(t.copy(a),t.applyTransform(s),(i=i||t.clone()).union(t)):(i=i||a.clone()).union(a)}this._rect=i||t}return this._rect},e.prototype.setDefaultTextStyle=function(t){this._defaultStyle=t||ls},e.prototype.setTextContent=function(t){throw new Error("Can't attach text on another text")},e.prototype._mergeStyle=function(t,e){if(!e)return t;var n=e.rich,i=t.rich||n&&{};return I(t,e),n&&i?(this._mergeRich(i,n),t.rich=i):i&&(t.rich=i),t},e.prototype._mergeRich=function(t,e){for(var n=z(e),i=0;i<n.length;i++){var r=n[i];t[r]=t[r]||{},I(t[r],e[r])}},e.prototype.getAnimationStyleProps=function(){return us},e.prototype._getOrCreateChild=function(t){var e=this._children[this._childCursor];return e&&e instanceof t||(e=new t),this._children[this._childCursor++]=e,e.__zr=this.__zr,e.parent=this,e},e.prototype._updatePlainTexts=function(){var t=this.style,e=t.font||Bn,n=t.padding,i=function(t,e){null!=t&&(t+="");var n,i=e.overflow,r=e.padding,o=e.font,a="truncate"===i,s=Xn(o),l=tt(e.lineHeight,s),u="truncate"===e.lineOverflow,h=e.width,c=(n=null!=h&&"break"===i||"breakAll"===i?t?vo(t,e.font,h,"breakAll"===i,0).lines:[]:t?t.split("\n"):[]).length*l,p=tt(e.height,c);if(c>p&&u){var d=Math.floor(p/l);n=n.slice(0,d)}var f=p,g=h;if(r&&(f+=r[0]+r[2],null!=g&&(g+=r[1]+r[3])),t&&a&&null!=g)for(var y=so(h,o,e.ellipsis,{minChar:e.truncateMinChar,placeholder:e.placeholder}),v=0;v<n.length;v++)n[v]=lo(n[v],y);if(null==h){var m=0;for(v=0;v<n.length;v++)m=Math.max(Fn(n[v],o),m);h=m}return{lines:n,height:p,outerHeight:f,lineHeight:l,calculatedLineHeight:s,contentHeight:c,width:h}}(ys(t),t),r=vs(t),o=!!t.backgroundColor,a=i.outerHeight,s=i.lines,l=i.lineHeight,u=this._defaultStyle,h=t.x||0,c=t.y||0,p=t.align||u.align||"left",d=t.verticalAlign||u.verticalAlign||"top",f=h,g=Yn(c,i.contentHeight,d);if(r||n){var y=i.width;n&&(y+=n[1]+n[3]);var v=Wn(h,y,p),m=Yn(c,a,d);r&&this._renderBackground(t,t,v,m,y,a)}g+=l/2,n&&(f=gs(h,p,n),"top"===d?g+=n[0]:"bottom"===d&&(g-=n[2]));for(var _,x=0,b=!1,w=(null==(_="fill"in t?t.fill:(b=!0,u.fill))||"none"===_?null:_.image||_.colorStops?"#000":_),S=(fs("stroke"in t?t.stroke:o||u.autoStroke&&!b?null:(x=2,u.stroke))),M=t.textShadowBlur>0,I=null!=t.width&&("truncate"===t.overflow||"break"===t.overflow||"breakAll"===t.overflow),T=i.calculatedLineHeight,C=0;C<s.length;C++){var A=this._getOrCreateChild($a),D=A.createStyle();A.useStyle(D),D.text=s[C],D.x=f,D.y=g,p&&(D.textAlign=p),D.textBaseline="middle",D.opacity=t.opacity,D.strokeFirst=!0,M&&(D.shadowBlur=t.textShadowBlur||0,D.shadowColor=t.textShadowColor||"transparent",D.shadowOffsetX=t.textShadowOffsetX||0,D.shadowOffsetY=t.textShadowOffsetY||0),S&&(D.stroke=S,D.lineWidth=t.lineWidth||x,D.lineDash=t.lineDash,D.lineDashOffset=t.lineDashOffset||0),w&&(D.fill=w),D.font=e,g+=l,I&&A.setBoundingRect(new En(Wn(D.x,t.width,D.textAlign),Yn(D.y,T,D.textBaseline),t.width,T))}},e.prototype._updateRichTexts=function(){var t=this.style,e=function(t,e){var n=new po;if(null!=t&&(t+=""),!t)return n;for(var i,r=e.width,o=e.height,a=e.overflow,s="break"!==a&&"breakAll"!==a||null==r?null:{width:r,accumWidth:0,breakAll:"breakAll"===a},l=oo.lastIndex=0;null!=(i=oo.exec(t));){var u=i.index;u>l&&fo(n,t.substring(l,u),e,s),fo(n,i[2],e,s,i[1]),l=oo.lastIndex}l<t.length&&fo(n,t.substring(l,t.length),e,s);var h=[],c=0,p=0,d=e.padding,f="truncate"===a,g="truncate"===e.lineOverflow;function y(t,e,n){t.width=e,t.lineHeight=n,c+=n,p=Math.max(p,e)}t:for(var v=0;v<n.lines.length;v++){for(var m=n.lines[v],_=0,x=0,b=0;b<m.tokens.length;b++){var w=(P=m.tokens[b]).styleName&&e.rich[P.styleName]||{},S=P.textPadding=w.padding,M=S?S[1]+S[3]:0,I=P.font=w.font||e.font;P.contentHeight=Xn(I);var T=tt(w.height,P.contentHeight);if(P.innerHeight=T,S&&(T+=S[0]+S[2]),P.height=T,P.lineHeight=et(w.lineHeight,e.lineHeight,T),P.align=w&&w.align||e.align,P.verticalAlign=w&&w.verticalAlign||"middle",g&&null!=o&&c+P.lineHeight>o){b>0?(m.tokens=m.tokens.slice(0,b),y(m,x,_),n.lines=n.lines.slice(0,v+1)):n.lines=n.lines.slice(0,v);break t}var C=w.width,A=null==C||"auto"===C;if("string"==typeof C&&"%"===C.charAt(C.length-1))P.percentWidth=C,h.push(P),P.contentWidth=Fn(P.text,I);else{if(A){var D=w.backgroundColor,L=D&&D.image;L&&ro(L=eo(L))&&(P.width=Math.max(P.width,L.width*T/L.height))}var k=f&&null!=r?r-x:null;null!=k&&k<P.width?!A||k<M?(P.text="",P.width=P.contentWidth=0):(P.text=ao(P.text,k-M,I,e.ellipsis,{minChar:e.truncateMinChar}),P.width=P.contentWidth=Fn(P.text,I)):P.contentWidth=Fn(P.text,I)}P.width+=M,x+=P.width,w&&(_=Math.max(_,P.lineHeight))}y(m,x,_)}for(n.outerWidth=n.width=tt(r,p),n.outerHeight=n.height=tt(o,c),n.contentHeight=c,n.contentWidth=p,d&&(n.outerWidth+=d[1]+d[3],n.outerHeight+=d[0]+d[2]),v=0;v<h.length;v++){var P,O=(P=h[v]).percentWidth;P.width=parseInt(O,10)/100*n.width}return n}(ys(t),t),n=e.width,i=e.outerWidth,r=e.outerHeight,o=t.padding,a=t.x||0,s=t.y||0,l=this._defaultStyle,u=t.align||l.align,h=t.verticalAlign||l.verticalAlign,c=Wn(a,i,u),p=Yn(s,r,h),d=c,f=p;o&&(d+=o[3],f+=o[0]);var g=d+n;vs(t)&&this._renderBackground(t,t,c,p,i,r);for(var y=!!t.backgroundColor,v=0;v<e.lines.length;v++){for(var m=e.lines[v],_=m.tokens,x=_.length,b=m.lineHeight,w=m.width,S=0,M=d,I=g,T=x-1,C=void 0;S<x&&(!(C=_[S]).align||"left"===C.align);)this._placeToken(C,t,b,f,M,"left",y),w-=C.width,M+=C.width,S++;for(;T>=0&&"right"===(C=_[T]).align;)this._placeToken(C,t,b,f,I,"right",y),w-=C.width,I-=C.width,T--;for(M+=(n-(M-d)-(g-I)-w)/2;S<=T;)C=_[S],this._placeToken(C,t,b,f,M+C.width/2,"center",y),M+=C.width,S++;f+=b}},e.prototype._placeToken=function(t,e,n,i,r,o,a){var s=e.rich[t.styleName]||{};s.text=t.text;var l=t.verticalAlign,u=i+n/2;"top"===l?u=i+t.height/2:"bottom"===l&&(u=i+n-t.height/2),!t.isLineHolder&&vs(s)&&this._renderBackground(s,e,"right"===o?r-t.width:"center"===o?r-t.width/2:r,u-t.height/2,t.width,t.height);var h=!!s.backgroundColor,c=t.textPadding;c&&(r=gs(r,o,c),u-=t.height/2-c[0]-t.innerHeight/2);var p=this._getOrCreateChild($a),d=p.createStyle();p.useStyle(d);var f=this._defaultStyle,g=!1,y=0,v=fs("fill"in s?s.fill:"fill"in e?e.fill:(g=!0,f.fill)),m=fs("stroke"in s?s.stroke:"stroke"in e?e.stroke:h||a||f.autoStroke&&!g?null:(y=2,f.stroke)),_=s.textShadowBlur>0||e.textShadowBlur>0;d.text=t.text,d.x=r,d.y=u,_&&(d.shadowBlur=s.textShadowBlur||e.textShadowBlur||0,d.shadowColor=s.textShadowColor||e.textShadowColor||"transparent",d.shadowOffsetX=s.textShadowOffsetX||e.textShadowOffsetX||0,d.shadowOffsetY=s.textShadowOffsetY||e.textShadowOffsetY||0),d.textAlign=o,d.textBaseline="middle",d.font=t.font||Bn,d.opacity=et(s.opacity,e.opacity,1),m&&(d.lineWidth=et(s.lineWidth,e.lineWidth,y),d.lineDash=tt(s.lineDash,e.lineDash),d.lineDashOffset=e.lineDashOffset||0,d.stroke=m),v&&(d.fill=v);var x=t.contentWidth,b=t.contentHeight;p.setBoundingRect(new En(Wn(d.x,x,d.textAlign),Yn(d.y,b,d.textBaseline),x,b))},e.prototype._renderBackground=function(t,e,n,i,r,o){var a,s,l,u=t.backgroundColor,h=t.borderWidth,c=t.borderColor,p=H(u),d=t.borderRadius,f=this;if(p||h&&c){(a=this._getOrCreateChild(ss)).useStyle(a.createStyle()),a.style.fill=null;var g=a.shape;g.x=n,g.y=i,g.width=r,g.height=o,g.r=d,a.dirtyShape()}if(p)(l=a.style).fill=u||null,l.fillOpacity=tt(t.fillOpacity,1);else if(u&&u.image){(s=this._getOrCreateChild(ts)).onload=function(){f.dirtyStyle()};var y=s.style;y.image=u.image,y.x=n,y.y=i,y.width=r,y.height=o}h&&c&&((l=a.style).lineWidth=h,l.stroke=c,l.strokeOpacity=tt(t.strokeOpacity,1),l.lineDash=t.borderDash,l.lineDashOffset=t.borderDashOffset||0,a.strokeContainThreshold=0,a.hasFill()&&a.hasStroke()&&(l.strokeFirst=!0,l.lineWidth*=2));var v=(a||s).style;v.shadowBlur=t.shadowBlur||0,v.shadowColor=t.shadowColor||"transparent",v.shadowOffsetX=t.shadowOffsetX||0,v.shadowOffsetY=t.shadowOffsetY||0,v.opacity=et(t.opacity,e.opacity,1)},e.makeFont=function(t){var e="";if(t.fontSize||t.fontFamily||t.fontWeight){var n="";n="string"!=typeof t.fontSize||-1===t.fontSize.indexOf("px")&&-1===t.fontSize.indexOf("rem")&&-1===t.fontSize.indexOf("em")?isNaN(+t.fontSize)?"12px":t.fontSize+"px":t.fontSize,e=[t.fontStyle,t.fontWeight,n,t.fontFamily||"sans-serif"].join(" ")}return e&&ot(e)||t.textFont||t.font},e}(wo),cs={left:!0,right:1,center:1},ps={top:1,bottom:1,middle:1};function ds(t){if(t){t.font=hs.makeFont(t);var e=t.align;"middle"===e&&(e="center"),t.align=null==e||cs[e]?e:"left";var n=t.verticalAlign;"center"===n&&(n="middle"),t.verticalAlign=null==n||ps[n]?n:"top",t.padding&&(t.padding=it(t.padding))}}function fs(t,e){return null==t||e<=0||"transparent"===t||"none"===t?null:t.image||t.colorStops?"#000":t}function gs(t,e,n){return"right"===e?t-n[1]:"center"===e?t+n[3]/2-n[1]/2:t+n[3]}function ys(t){var e=t.text;return null!=e&&(e+=""),e}function vs(t){return!!(t.backgroundColor||t.borderWidth&&t.borderColor)}var ms=Pr(),_s=1,xs={},bs=Pr(),ws=["emphasis","blur","select"],Ss=["normal","emphasis","blur","select"],Ms="highlight",Is="downplay",Ts="select",Cs="unselect",As="toggleSelect";function Ds(t){return null!=t&&"none"!==t}var Ls=new Be(100);function ks(t){if("string"!=typeof t)return t;var e=Ls.get(t);return e||(e=Qe(t,-.1),Ls.put(t,e)),e}function Ps(t,e,n){t.onHoverStateChange&&(t.hoverState||0)!==n&&t.onHoverStateChange(e),t.hoverState=n}function Os(t){Ps(t,"emphasis",2)}function Rs(t){2===t.hoverState&&Ps(t,"normal",0)}function Ns(t){Ps(t,"blur",1)}function Es(t){1===t.hoverState&&Ps(t,"normal",0)}function zs(t){t.selected=!0}function Bs(t){t.selected=!1}function Vs(t,e,n){e(t,n)}function Fs(t,e,n){Vs(t,e,n),t.isGroup&&t.traverse((function(t){Vs(t,e,n)}))}function Gs(t,e){switch(e){case"emphasis":t.hoverState=2;break;case"normal":t.hoverState=0;break;case"blur":t.hoverState=1;break;case"select":t.selected=!0}}function Hs(t,e){var n=this.states[t];if(this.style){if("emphasis"===t)return function(t,e,n,i){var r=n&&A(n,"select")>=0,o=!1;if(t instanceof qa){var a=bs(t),s=r&&a.selectFill||a.normalFill,l=r&&a.selectStroke||a.normalStroke;if(Ds(s)||Ds(l)){var u=(i=i||{}).style||{};!Ds(u.fill)&&Ds(s)?(o=!0,i=I({},i),(u=I({},u)).fill=ks(s)):!Ds(u.stroke)&&Ds(l)&&(o||(i=I({},i),u=I({},u)),u.stroke=ks(l)),i.style=u}}if(i&&null==i.z2){o||(i=I({},i));var h=t.z2EmphasisLift;i.z2=t.z2+(null!=h?h:10)}return i}(this,0,e,n);if("blur"===t)return function(t,e,n){var i=A(t.currentStates,e)>=0,r=t.style.opacity,o=i?null:function(t,e,n,i){for(var r=t.style,o={},a=0;a<e.length;a++){var s=e[a],l=r[s];o[s]=null==l?i&&i[s]:l}for(a=0;a<t.animators.length;a++){var u=t.animators[a];u.__fromStateTransition&&u.__fromStateTransition.indexOf(n)<0&&"style"===u.targetName&&u.saveFinalToTarget(o,e)}return o}(t,["opacity"],e,{opacity:1}),a=(n=n||{}).style||{};return null==a.opacity&&(n=I({},n),a=I({opacity:i?r:.1*o.opacity},a),n.style=a),n}(this,t,n);if("select"===t)return function(t,e,n){if(n&&null==n.z2){n=I({},n);var i=t.z2SelectLift;n.z2=t.z2+(null!=i?i:9)}return n}(this,0,n)}return n}function Ws(t){t.stateProxy=Hs;var e=t.getTextContent(),n=t.getTextGuideLine();e&&(e.stateProxy=Hs),n&&(n.stateProxy=Hs)}function Ys(t,e){t.__highByOuter|=1<<(e||0),Fs(t,Os)}function Xs(t,e){!(t.__highByOuter&=~(1<<(e||0)))&&Fs(t,Rs)}function Us(t){Fs(t,Ns)}function Zs(t){Fs(t,Es)}function js(t){Fs(t,zs)}function qs(t){Fs(t,Bs)}function Ks(t,e){return t.__highDownSilentOnTouch&&e.zrByTouch}function $s(t,e,n,i,r){var o=i.getModel();function a(t,e){for(var n=0;n<e.length;n++){var i=t.getItemGraphicEl(e[n]);i&&Zs(i)}}if(n=n||"coordinateSystem",r){if(null!=t&&e&&"none"!==e){var s=o.getSeriesByIndex(t),l=s.coordinateSystem;l&&l.master&&(l=l.master);var u=[];o.eachSeries((function(t){var r=s===t,o=t.coordinateSystem;if(o&&o.master&&(o=o.master),!("series"===n&&!r||"coordinateSystem"===n&&!(o&&l?o===l:r)||"series"===e&&r)){if(i.getViewOfSeriesModel(t).group.traverse((function(t){Ns(t)})),k(e))a(t.getData(),e);else if(X(e))for(var h=z(e),c=0;c<h.length;c++)a(t.getData(h[c]),e[h[c]]);u.push(t)}})),o.eachComponent((function(t,e){if("series"!==t){var n=i.getViewOfComponentModel(e);n&&n.blurSeries&&n.blurSeries(u,o)}}))}}else!function(t){t.getModel().eachComponent((function(e,n){("series"===e?t.getViewOfSeriesModel(n):t.getViewOfComponentModel(n)).group.traverse((function(t){Es(t)}))}))}(i)}function Js(t){P(t.getAllData(),(function(e){var n=e.data,i=e.type;n.eachItemGraphicEl((function(e,n){t.isSelected(n,i)?js(e):qs(e)}))}))}function Qs(t){var e=[];return t.eachSeries((function(t){P(t.getAllData(),(function(n){n.data;var i=n.type,r=t.getSelectedDataIndices();if(r.length>0){var o={dataIndex:r,seriesIndex:t.seriesIndex};null!=i&&(o.dataType=i),e.push(o)}}))})),e}function tl(t,e,n){ol(t,!0),Fs(t,Ws),el(t,e,n)}function el(t,e,n){var i=ms(t);null!=e?(i.focus=e,i.blurScope=n):i.focus&&(i.focus=null)}var nl=["emphasis","blur","select"],il={itemStyle:"getItemStyle",lineStyle:"getLineStyle",areaStyle:"getAreaStyle"};function rl(t,e,n,i){n=n||"itemStyle";for(var r=0;r<nl.length;r++){var o=nl[r],a=e.getModel([o,n]);t.ensureState(o).style=i?i(a):a[il[n]]()}}function ol(t,e){var n=!1===e,i=t;t.highDownSilentOnTouch&&(i.__highDownSilentOnTouch=t.highDownSilentOnTouch),n&&!i.__highDownDispatcher||(i.__highByOuter=i.__highByOuter||0,i.__highDownDispatcher=!n)}function al(t){return!(!t||!t.__highDownDispatcher)}function sl(t){var e=t.type;return e===Ts||e===Cs||e===As}function ll(t){var e=t.type;return e===Ms||e===Is}var ul=Da.CMD,hl=[[],[],[]],cl=Math.sqrt,pl=Math.atan2;var dl=Math.sqrt,fl=Math.sin,gl=Math.cos,yl=Math.PI;function vl(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function ml(t,e){return(t[0]*e[0]+t[1]*e[1])/(vl(t)*vl(e))}function _l(t,e){return(t[0]*e[1]<t[1]*e[0]?-1:1)*Math.acos(ml(t,e))}function xl(t,e,n,i,r,o,a,s,l,u,h){var c=l*(yl/180),p=gl(c)*(t-n)/2+fl(c)*(e-i)/2,d=-1*fl(c)*(t-n)/2+gl(c)*(e-i)/2,f=p*p/(a*a)+d*d/(s*s);f>1&&(a*=dl(f),s*=dl(f));var g=(r===o?-1:1)*dl((a*a*(s*s)-a*a*(d*d)-s*s*(p*p))/(a*a*(d*d)+s*s*(p*p)))||0,y=g*a*d/s,v=g*-s*p/a,m=(t+n)/2+gl(c)*y-fl(c)*v,_=(e+i)/2+fl(c)*y+gl(c)*v,x=_l([1,0],[(p-y)/a,(d-v)/s]),b=[(p-y)/a,(d-v)/s],w=[(-1*p-y)/a,(-1*d-v)/s],S=_l(b,w);if(ml(b,w)<=-1&&(S=yl),ml(b,w)>=1&&(S=0),S<0){var M=Math.round(S/yl*1e6)/1e6;S=2*yl+M%2*yl}h.addData(u,m,_,a,s,x,S,c,o)}var bl=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/gi,wl=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;var Sl=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return vt(e,t),e.prototype.applyTransform=function(t){},e}(qa);function Ml(t){return null!=t.setData}function Il(t,e){var n=function(t){var e=new Da;if(!t)return e;var n,i=0,r=0,o=i,a=r,s=Da.CMD,l=t.match(bl);if(!l)return e;for(var u=0;u<l.length;u++){for(var h=l[u],c=h.charAt(0),p=void 0,d=h.match(wl)||[],f=d.length,g=0;g<f;g++)d[g]=parseFloat(d[g]);for(var y=0;y<f;){var v=void 0,m=void 0,_=void 0,x=void 0,b=void 0,w=void 0,S=void 0,M=i,I=r,T=void 0,C=void 0;switch(c){case"l":i+=d[y++],r+=d[y++],p=s.L,e.addData(p,i,r);break;case"L":i=d[y++],r=d[y++],p=s.L,e.addData(p,i,r);break;case"m":i+=d[y++],r+=d[y++],p=s.M,e.addData(p,i,r),o=i,a=r,c="l";break;case"M":i=d[y++],r=d[y++],p=s.M,e.addData(p,i,r),o=i,a=r,c="L";break;case"h":i+=d[y++],p=s.L,e.addData(p,i,r);break;case"H":i=d[y++],p=s.L,e.addData(p,i,r);break;case"v":r+=d[y++],p=s.L,e.addData(p,i,r);break;case"V":r=d[y++],p=s.L,e.addData(p,i,r);break;case"C":p=s.C,e.addData(p,d[y++],d[y++],d[y++],d[y++],d[y++],d[y++]),i=d[y-2],r=d[y-1];break;case"c":p=s.C,e.addData(p,d[y++]+i,d[y++]+r,d[y++]+i,d[y++]+r,d[y++]+i,d[y++]+r),i+=d[y-2],r+=d[y-1];break;case"S":v=i,m=r,T=e.len(),C=e.data,n===s.C&&(v+=i-C[T-4],m+=r-C[T-3]),p=s.C,M=d[y++],I=d[y++],i=d[y++],r=d[y++],e.addData(p,v,m,M,I,i,r);break;case"s":v=i,m=r,T=e.len(),C=e.data,n===s.C&&(v+=i-C[T-4],m+=r-C[T-3]),p=s.C,M=i+d[y++],I=r+d[y++],i+=d[y++],r+=d[y++],e.addData(p,v,m,M,I,i,r);break;case"Q":M=d[y++],I=d[y++],i=d[y++],r=d[y++],p=s.Q,e.addData(p,M,I,i,r);break;case"q":M=d[y++]+i,I=d[y++]+r,i+=d[y++],r+=d[y++],p=s.Q,e.addData(p,M,I,i,r);break;case"T":v=i,m=r,T=e.len(),C=e.data,n===s.Q&&(v+=i-C[T-4],m+=r-C[T-3]),i=d[y++],r=d[y++],p=s.Q,e.addData(p,v,m,i,r);break;case"t":v=i,m=r,T=e.len(),C=e.data,n===s.Q&&(v+=i-C[T-4],m+=r-C[T-3]),i+=d[y++],r+=d[y++],p=s.Q,e.addData(p,v,m,i,r);break;case"A":_=d[y++],x=d[y++],b=d[y++],w=d[y++],S=d[y++],xl(M=i,I=r,i=d[y++],r=d[y++],w,S,_,x,b,p=s.A,e);break;case"a":_=d[y++],x=d[y++],b=d[y++],w=d[y++],S=d[y++],xl(M=i,I=r,i+=d[y++],r+=d[y++],w,S,_,x,b,p=s.A,e)}}"z"!==c&&"Z"!==c||(p=s.Z,e.addData(p),i=o,r=a),n=p}return e.toStatic(),e}(t),i=I({},e);return i.buildPath=function(t){if(Ml(t)){t.setData(n.data),(e=t.getContext())&&t.rebuildPath(e,1)}else{var e=t;n.rebuildPath(e,1)}},i.applyTransform=function(t){!function(t,e){var n,i,r,o,a,s,l=t.data,u=t.len(),h=ul.M,c=ul.C,p=ul.L,d=ul.R,f=ul.A,g=ul.Q;for(r=0,o=0;r<u;){switch(n=l[r++],o=r,i=0,n){case h:case p:i=1;break;case c:i=3;break;case g:i=2;break;case f:var y=e[4],v=e[5],m=cl(e[0]*e[0]+e[1]*e[1]),_=cl(e[2]*e[2]+e[3]*e[3]),x=pl(-e[1]/_,e[0]/m);l[r]*=m,l[r++]+=y,l[r]*=_,l[r++]+=v,l[r++]*=m,l[r++]*=_,l[r++]+=x,l[r++]+=x,o=r+=2;break;case d:s[0]=l[r++],s[1]=l[r++],Et(s,s,e),l[o++]=s[0],l[o++]=s[1],s[0]+=l[r++],s[1]+=l[r++],Et(s,s,e),l[o++]=s[0],l[o++]=s[1]}for(a=0;a<i;a++){var b=hl[a];b[0]=l[r++],b[1]=l[r++],Et(b,b,e),l[o++]=b[0],l[o++]=b[1]}}t.increaseVersion()}(n,t),this.dirtyShape()},i}function Tl(t,e){return new Sl(Il(t,e))}var Cl=function(){this.cx=0,this.cy=0,this.r=0},Al=function(t){function e(e){return t.call(this,e)||this}return vt(e,t),e.prototype.getDefaultShape=function(){return new Cl},e.prototype.buildPath=function(t,e,n){n&&t.moveTo(e.cx+e.r,e.cy),t.arc(e.cx,e.cy,e.r,0,2*Math.PI)},e}(qa);Al.prototype.type="circle";var Dl=function(){this.cx=0,this.cy=0,this.rx=0,this.ry=0},Ll=function(t){function e(e){return t.call(this,e)||this}return vt(e,t),e.prototype.getDefaultShape=function(){return new Dl},e.prototype.buildPath=function(t,e){var n=.5522848,i=e.cx,r=e.cy,o=e.rx,a=e.ry,s=o*n,l=a*n;t.moveTo(i-o,r),t.bezierCurveTo(i-o,r-l,i-s,r-a,i,r-a),t.bezierCurveTo(i+s,r-a,i+o,r-l,i+o,r),t.bezierCurveTo(i+o,r+l,i+s,r+a,i,r+a),t.bezierCurveTo(i-s,r+a,i-o,r+l,i-o,r),t.closePath()},e}(qa);Ll.prototype.type="ellipse";var kl=Math.PI,Pl=2*kl,Ol=Math.sin,Rl=Math.cos,Nl=Math.acos,El=Math.atan2,zl=Math.abs,Bl=Math.sqrt,Vl=Math.max,Fl=Math.min,Gl=1e-4;function Hl(t,e,n,i,r,o,a){var s=t-n,l=e-i,u=(a?o:-o)/Bl(s*s+l*l),h=u*l,c=-u*s,p=t+h,d=e+c,f=n+h,g=i+c,y=(p+f)/2,v=(d+g)/2,m=f-p,_=g-d,x=m*m+_*_,b=r-o,w=p*g-f*d,S=(_<0?-1:1)*Bl(Vl(0,b*b*x-w*w)),M=(w*_-m*S)/x,I=(-w*m-_*S)/x,T=(w*_+m*S)/x,C=(-w*m+_*S)/x,A=M-y,D=I-v,L=T-y,k=C-v;return A*A+D*D>L*L+k*k&&(M=T,I=C),{cx:M,cy:I,x01:-h,y01:-c,x11:M*(r/b-1),y11:I*(r/b-1)}}function Wl(t,e){var n=Vl(e.r,0),i=Vl(e.r0||0,0),r=n>0;if(r||i>0){if(r||(n=i,i=0),i>n){var o=n;n=i,i=o}var a=!!e.clockwise,s=e.startAngle,l=e.endAngle,u=[s,l];Aa(u,!a);var h=zl(u[0]-u[1]),c=e.cx,p=e.cy,d=e.cornerRadius||0,f=e.innerCornerRadius||0;if(n>Gl)if(h>Pl-Gl)t.moveTo(c+n*Rl(s),p+n*Ol(s)),t.arc(c,p,n,s,l,!a),i>Gl&&(t.moveTo(c+i*Rl(l),p+i*Ol(l)),t.arc(c,p,i,l,s,a));else{var g=zl(n-i)/2,y=Fl(g,d),v=Fl(g,f),m=v,_=y,x=n*Rl(s),b=n*Ol(s),w=i*Rl(l),S=i*Ol(l),M=void 0,I=void 0,T=void 0,C=void 0;if((y>Gl||v>Gl)&&(M=n*Rl(l),I=n*Ol(l),T=i*Rl(s),C=i*Ol(s),h<kl)){var A=function(t,e,n,i,r,o,a,s){var l=n-t,u=i-e,h=a-r,c=s-o,p=c*l-h*u;if(!(p*p<Gl))return[t+(p=(h*(e-o)-c*(t-r))/p)*l,e+p*u]}(x,b,T,C,M,I,w,S);if(A){var D=x-A[0],L=b-A[1],k=M-A[0],P=I-A[1],O=1/Ol(Nl((D*k+L*P)/(Bl(D*D+L*L)*Bl(k*k+P*P)))/2),R=Bl(A[0]*A[0]+A[1]*A[1]);m=Fl(v,(i-R)/(O-1)),_=Fl(y,(n-R)/(O+1))}}if(h>Gl)if(_>Gl){var N=Hl(T,C,x,b,n,_,a),E=Hl(M,I,w,S,n,_,a);t.moveTo(c+N.cx+N.x01,p+N.cy+N.y01),_<y?t.arc(c+N.cx,p+N.cy,_,El(N.y01,N.x01),El(E.y01,E.x01),!a):(t.arc(c+N.cx,p+N.cy,_,El(N.y01,N.x01),El(N.y11,N.x11),!a),t.arc(c,p,n,El(N.cy+N.y11,N.cx+N.x11),El(E.cy+E.y11,E.cx+E.x11),!a),t.arc(c+E.cx,p+E.cy,_,El(E.y11,E.x11),El(E.y01,E.x01),!a))}else t.moveTo(c+x,p+b),t.arc(c,p,n,s,l,!a);else t.moveTo(c+x,p+b);if(i>Gl&&h>Gl)if(m>Gl){N=Hl(w,S,M,I,i,-m,a),E=Hl(x,b,T,C,i,-m,a);t.lineTo(c+N.cx+N.x01,p+N.cy+N.y01),m<v?t.arc(c+N.cx,p+N.cy,m,El(N.y01,N.x01),El(E.y01,E.x01),!a):(t.arc(c+N.cx,p+N.cy,m,El(N.y01,N.x01),El(N.y11,N.x11),!a),t.arc(c,p,i,El(N.cy+N.y11,N.cx+N.x11),El(E.cy+E.y11,E.cx+E.x11),a),t.arc(c+E.cx,p+E.cy,m,El(E.y11,E.x11),El(E.y01,E.x01),!a))}else t.lineTo(c+w,p+S),t.arc(c,p,i,l,s,a);else t.lineTo(c+w,p+S)}else t.moveTo(c,p);t.closePath()}}var Yl=function(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0,this.cornerRadius=0,this.innerCornerRadius=0},Xl=function(t){function e(e){return t.call(this,e)||this}return vt(e,t),e.prototype.getDefaultShape=function(){return new Yl},e.prototype.buildPath=function(t,e){Wl(t,e)},e.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},e}(qa);Xl.prototype.type="sector";var Ul=function(){this.cx=0,this.cy=0,this.r=0,this.r0=0},Zl=function(t){function e(e){return t.call(this,e)||this}return vt(e,t),e.prototype.getDefaultShape=function(){return new Ul},e.prototype.buildPath=function(t,e){var n=e.cx,i=e.cy,r=2*Math.PI;t.moveTo(n+e.r,i),t.arc(n,i,e.r,0,r,!1),t.moveTo(n+e.r0,i),t.arc(n,i,e.r0,0,r,!0)},e}(qa);function jl(t,e,n,i,r,o,a){var s=.5*(n-t),l=.5*(i-e);return(2*(e-n)+s+l)*a+(-3*(e-n)-2*s-l)*o+s*r+e}function ql(t,e,n){var i=e.smooth,r=e.points;if(r&&r.length>=2){if(i&&"spline"!==i){var o=function(t,e,n,i){var r,o,a,s,l=[],u=[],h=[],c=[];if(i){a=[1/0,1/0],s=[-1/0,-1/0];for(var p=0,d=t.length;p<d;p++)zt(a,a,t[p]),Bt(s,s,t[p]);zt(a,a,i[0]),Bt(s,s,i[1])}for(p=0,d=t.length;p<d;p++){var f=t[p];if(n)r=t[p?p-1:d-1],o=t[(p+1)%d];else{if(0===p||p===d-1){l.push(xt(t[p]));continue}r=t[p-1],o=t[p+1]}Mt(u,o,r),Dt(u,u,e);var g=kt(f,r),y=kt(f,o),v=g+y;0!==v&&(g/=v,y/=v),Dt(h,u,-g),Dt(c,u,y);var m=wt([],f,h),_=wt([],f,c);i&&(Bt(m,m,a),zt(m,m,s),Bt(_,_,a),zt(_,_,s)),l.push(m),l.push(_)}return n&&l.push(l.shift()),l}(r,i,n,e.smoothConstraint);t.moveTo(r[0][0],r[0][1]);for(var a=r.length,s=0;s<(n?a:a-1);s++){var l=o[2*s],u=o[2*s+1],h=r[(s+1)%a];t.bezierCurveTo(l[0],l[1],u[0],u[1],h[0],h[1])}}else{"spline"===i&&(r=function(t,e){for(var n=t.length,i=[],r=0,o=1;o<n;o++)r+=kt(t[o-1],t[o]);var a=r/2;for(a=a<n?n:a,o=0;o<a;o++){var s=o/(a-1)*(e?n:n-1),l=Math.floor(s),u=s-l,h=void 0,c=t[l%n],p=void 0,d=void 0;e?(h=t[(l-1+n)%n],p=t[(l+1)%n],d=t[(l+2)%n]):(h=t[0===l?l:l-1],p=t[l>n-2?n-1:l+1],d=t[l>n-3?n-1:l+2]);var f=u*u,g=u*f;i.push([jl(h[0],c[0],p[0],d[0],u,f,g),jl(h[1],c[1],p[1],d[1],u,f,g)])}return i}(r,n)),t.moveTo(r[0][0],r[0][1]);s=1;for(var c=r.length;s<c;s++)t.lineTo(r[s][0],r[s][1])}n&&t.closePath()}}Zl.prototype.type="ring";var Kl=function(){this.points=null,this.smooth=0,this.smoothConstraint=null},$l=function(t){function e(e){return t.call(this,e)||this}return vt(e,t),e.prototype.getDefaultShape=function(){return new Kl},e.prototype.buildPath=function(t,e){ql(t,e,!0)},e}(qa);$l.prototype.type="polygon";var Jl=function(){this.points=null,this.percent=1,this.smooth=0,this.smoothConstraint=null},Ql=function(t){function e(e){return t.call(this,e)||this}return vt(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new Jl},e.prototype.buildPath=function(t,e){ql(t,e,!1)},e}(qa);Ql.prototype.type="polyline";var tu={},eu=function(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.percent=1},nu=function(t){function e(e){return t.call(this,e)||this}return vt(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new eu},e.prototype.buildPath=function(t,e){var n,i,r,o;if(this.subPixelOptimize){var a=ns(tu,e,this.style);n=a.x1,i=a.y1,r=a.x2,o=a.y2}else n=e.x1,i=e.y1,r=e.x2,o=e.y2;var s=e.percent;0!==s&&(t.moveTo(n,i),s<1&&(r=n*(1-s)+r*s,o=i*(1-s)+o*s),t.lineTo(r,o))},e.prototype.pointAt=function(t){var e=this.shape;return[e.x1*(1-t)+e.x2*t,e.y1*(1-t)+e.y2*t]},e}(qa);nu.prototype.type="line";var iu=[],ru=function(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.cpx1=0,this.cpy1=0,this.percent=1};function ou(t,e,n){var i=t.cpx2,r=t.cpy2;return null===i||null===r?[(n?zo:Eo)(t.x1,t.cpx1,t.cpx2,t.x2,e),(n?zo:Eo)(t.y1,t.cpy1,t.cpy2,t.y2,e)]:[(n?Yo:Wo)(t.x1,t.cpx1,t.x2,e),(n?Yo:Wo)(t.y1,t.cpy1,t.y2,e)]}var au=function(t){function e(e){return t.call(this,e)||this}return vt(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new ru},e.prototype.buildPath=function(t,e){var n=e.x1,i=e.y1,r=e.x2,o=e.y2,a=e.cpx1,s=e.cpy1,l=e.cpx2,u=e.cpy2,h=e.percent;0!==h&&(t.moveTo(n,i),null==l||null==u?(h<1&&(Uo(n,a,r,h,iu),a=iu[1],r=iu[2],Uo(i,s,o,h,iu),s=iu[1],o=iu[2]),t.quadraticCurveTo(a,s,r,o)):(h<1&&(Fo(n,a,l,r,h,iu),a=iu[1],l=iu[2],r=iu[3],Fo(i,s,u,o,h,iu),s=iu[1],u=iu[2],o=iu[3]),t.bezierCurveTo(a,s,l,u,r,o)))},e.prototype.pointAt=function(t){return ou(this.shape,t,!1)},e.prototype.tangentAt=function(t){var e=ou(this.shape,t,!0);return Lt(e,e)},e}(qa);au.prototype.type="bezier-curve";var su=function(){this.cx=0,this.cy=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0},lu=function(t){function e(e){return t.call(this,e)||this}return vt(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new su},e.prototype.buildPath=function(t,e){var n=e.cx,i=e.cy,r=Math.max(e.r,0),o=e.startAngle,a=e.endAngle,s=e.clockwise,l=Math.cos(o),u=Math.sin(o);t.moveTo(l*r+n,u*r+i),t.arc(n,i,r,o,a,!s)},e}(qa);lu.prototype.type="arc";var uu=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="compound",e}return vt(e,t),e.prototype._updatePathDirty=function(){for(var t=this.shape.paths,e=this.shapeChanged(),n=0;n<t.length;n++)e=e||t[n].shapeChanged();e&&this.dirtyShape()},e.prototype.beforeBrush=function(){this._updatePathDirty();for(var t=this.shape.paths||[],e=this.getGlobalScale(),n=0;n<t.length;n++)t[n].path||t[n].createPathProxy(),t[n].path.setScale(e[0],e[1],t[n].segmentIgnoreThreshold)},e.prototype.buildPath=function(t,e){for(var n=e.paths||[],i=0;i<n.length;i++)n[i].buildPath(t,n[i].shape,!0)},e.prototype.afterBrush=function(){for(var t=this.shape.paths||[],e=0;e<t.length;e++)t[e].pathUpdated()},e.prototype.getBoundingRect=function(){return this._updatePathDirty.call(this),qa.prototype.getBoundingRect.call(this)},e}(qa),hu=function(){function t(t){this.colorStops=t||[]}return t.prototype.addColorStop=function(t,e){this.colorStops.push({offset:t,color:e})},t}(),cu=function(t){function e(e,n,i,r,o,a){var s=t.call(this,o)||this;return s.x=null==e?0:e,s.y=null==n?0:n,s.x2=null==i?1:i,s.y2=null==r?0:r,s.type="linear",s.global=a||!1,s}return vt(e,t),e}(hu),pu=function(t){function e(e,n,i,r,o){var a=t.call(this,r)||this;return a.x=null==e?.5:e,a.y=null==n?.5:n,a.r=null==i?.5:i,a.type="radial",a.global=o||!1,a}return vt(e,t),e}(hu),du=[0,0],fu=[0,0],gu=new Cn,yu=new Cn,vu=function(){function t(t,e){this._corners=[],this._axes=[],this._origin=[0,0];for(var n=0;n<4;n++)this._corners[n]=new Cn;for(n=0;n<2;n++)this._axes[n]=new Cn;t&&this.fromBoundingRect(t,e)}return t.prototype.fromBoundingRect=function(t,e){var n=this._corners,i=this._axes,r=t.x,o=t.y,a=r+t.width,s=o+t.height;if(n[0].set(r,o),n[1].set(a,o),n[2].set(a,s),n[3].set(r,s),e)for(var l=0;l<4;l++)n[l].transform(e);Cn.sub(i[0],n[1],n[0]),Cn.sub(i[1],n[3],n[0]),i[0].normalize(),i[1].normalize();for(l=0;l<2;l++)this._origin[l]=i[l].dot(n[0])},t.prototype.intersect=function(t,e){var n=!0,i=!e;return gu.set(1/0,1/0),yu.set(0,0),!this._intersectCheckOneSide(this,t,gu,yu,i,1)&&(n=!1,i)||!this._intersectCheckOneSide(t,this,gu,yu,i,-1)&&(n=!1,i)||i||Cn.copy(e,n?gu:yu),n},t.prototype._intersectCheckOneSide=function(t,e,n,i,r,o){for(var a=!0,s=0;s<2;s++){var l=this._axes[s];if(this._getProjMinMaxOnAxis(s,t._corners,du),this._getProjMinMaxOnAxis(s,e._corners,fu),du[1]<fu[0]||du[0]>fu[1]){if(a=!1,r)return a;var u=Math.abs(fu[0]-du[1]),h=Math.abs(du[0]-fu[1]);Math.min(u,h)>i.len()&&(u<h?Cn.scale(i,l,-u*o):Cn.scale(i,l,h*o))}else if(n){u=Math.abs(fu[0]-du[1]),h=Math.abs(du[0]-fu[1]);Math.min(u,h)<n.len()&&(u<h?Cn.scale(n,l,u*o):Cn.scale(n,l,-h*o))}}return a},t.prototype._getProjMinMaxOnAxis=function(t,e,n){for(var i=this._axes[t],r=this._origin,o=e[0].dot(i)+r[t],a=o,s=o,l=1;l<e.length;l++){var u=e[l].dot(i)+r[t];a=Math.min(u,a),s=Math.max(u,s)}n[0]=a,n[1]=s},t}(),mu=[],_u=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.notClear=!0,e.incremental=!0,e._displayables=[],e._temporaryDisplayables=[],e._cursor=0,e}return vt(e,t),e.prototype.traverse=function(t,e){t.call(e,this)},e.prototype.useStyle=function(){this.style={}},e.prototype.getCursor=function(){return this._cursor},e.prototype.innerAfterBrush=function(){this._cursor=this._displayables.length},e.prototype.clearDisplaybles=function(){this._displayables=[],this._temporaryDisplayables=[],this._cursor=0,this.markRedraw(),this.notClear=!1},e.prototype.clearTemporalDisplayables=function(){this._temporaryDisplayables=[]},e.prototype.addDisplayable=function(t,e){e?this._temporaryDisplayables.push(t):this._displayables.push(t),this.markRedraw()},e.prototype.addDisplayables=function(t,e){e=e||!1;for(var n=0;n<t.length;n++)this.addDisplayable(t[n],e)},e.prototype.getDisplayables=function(){return this._displayables},e.prototype.getTemporalDisplayables=function(){return this._temporaryDisplayables},e.prototype.eachPendingDisplayable=function(t){for(var e=this._cursor;e<this._displayables.length;e++)t&&t(this._displayables[e]);for(e=0;e<this._temporaryDisplayables.length;e++)t&&t(this._temporaryDisplayables[e])},e.prototype.update=function(){this.updateTransform();for(var t=this._cursor;t<this._displayables.length;t++){(e=this._displayables[t]).parent=this,e.update(),e.parent=null}for(t=0;t<this._temporaryDisplayables.length;t++){var e;(e=this._temporaryDisplayables[t]).parent=this,e.update(),e.parent=null}},e.prototype.getBoundingRect=function(){if(!this._rect){for(var t=new En(1/0,1/0,-1/0,-1/0),e=0;e<this._displayables.length;e++){var n=this._displayables[e],i=n.getBoundingRect().clone();n.needLocalTransform()&&i.applyTransform(n.getLocalTransform(mu)),t.union(i)}this._rect=t}return this._rect},e.prototype.contain=function(t,e){var n=this.transformCoordToLocal(t,e);if(this.getBoundingRect().contain(n[0],n[1]))for(var i=0;i<this._displayables.length;i++){if(this._displayables[i].contain(t,e))return!0}return!1},e}(wo),xu=Math.max,bu=Math.min,wu={};function Su(t){return qa.extend(t)}var Mu=function(t,e){var n=Il(t,e);return function(t){function e(e){var i=t.call(this,e)||this;return i.applyTransform=n.applyTransform,i.buildPath=n.buildPath,i}return vt(e,t),e}(Sl)};function Iu(t,e){return Mu(t,e)}function Tu(t,e){wu[t]=e}function Cu(t){if(wu.hasOwnProperty(t))return wu[t]}function Au(t,e,n,i){var r=Tl(t,e);return n&&("center"===i&&(n=Lu(n,r.getBoundingRect())),Pu(r,n)),r}function Du(t,e,n){var i=new ts({style:{image:t,x:e.x,y:e.y,width:e.width,height:e.height},onload:function(t){if("center"===n){var r={width:t.width,height:t.height};i.setStyle(Lu(e,r))}}});return i}function Lu(t,e){var n,i=e.width/e.height,r=t.height*i;return n=r<=t.width?t.height:(r=t.width)/i,{x:t.x+t.width/2-r/2,y:t.y+t.height/2-n/2,width:r,height:n}}var ku=function(t,e){for(var n=[],i=t.length,r=0;r<i;r++){var o=t[r];o.path||o.createPathProxy(),o.shapeChanged()&&o.buildPath(o.path,o.shape,!0),n.push(o.path)}var a=new qa(e);return a.createPathProxy(),a.buildPath=function(t){if(Ml(t)){t.appendPath(n);var e=t.getContext();e&&t.rebuildPath(e,1)}},a};function Pu(t,e){if(t.applyTransform){var n=t.getBoundingRect().calculateTransform(e);t.applyTransform(n)}}var Ou=rs;function Ru(t,e,n,i,r,o,a){var s,l=!1;"function"==typeof r?(a=o,o=r,r=null):X(r)&&(o=r.cb,a=r.during,l=r.isFrom,s=r.removeOpt,r=r.dataIndex);var u,h="update"===t,c="remove"===t;if(i&&i.ecModel){var p=i.ecModel.getUpdatePayload();u=p&&p.animation}var d=i&&i.isAnimationEnabled();if(c||e.stopAnimation("remove"),d){var f=void 0,g=void 0,y=void 0;u?(f=u.duration||0,g=u.easing||"cubicOut",y=u.delay||0):c?(f=tt((s=s||{}).duration,200),g=tt(s.easing,"cubicOut"),y=0):(f=i.getShallow(h?"animationDurationUpdate":"animationDuration"),g=i.getShallow(h?"animationEasingUpdate":"animationEasing"),y=i.getShallow(h?"animationDelayUpdate":"animationDelay")),"function"==typeof y&&(y=y(r,i.getAnimationDelayParams?i.getAnimationDelayParams(e,r):null)),"function"==typeof f&&(f=f(r)),f>0?l?e.animateFrom(n,{duration:f,delay:y||0,easing:g,done:o,force:!!o||!!a,scope:t,during:a}):e.animateTo(n,{duration:f,delay:y||0,easing:g,done:o,force:!!o||!!a,setToFinal:!0,scope:t,during:a}):(e.stopAnimation(),!l&&e.attr(n),o&&o())}else e.stopAnimation(),!l&&e.attr(n),a&&a(1),o&&o()}function Nu(t,e,n,i,r,o){Ru("update",t,e,n,i,r,o)}function Eu(t,e,n,i,r,o){Ru("init",t,e,n,i,r,o)}function zu(t,e,n,i,r,o){Fu(t)||Ru("remove",t,e,n,i,r,o)}function Bu(t,e,n,i){t.removeTextContent(),t.removeTextGuideLine(),zu(t,{style:{opacity:0}},e,n,i)}function Vu(t,e,n){function i(){t.parent&&t.parent.remove(t)}t.isGroup?t.traverse((function(t){t.isGroup||Bu(t,e,n,i)})):Bu(t,e,n,i)}function Fu(t){if(!t.__zr)return!0;for(var e=0;e<t.animators.length;e++){if("remove"===t.animators[e].scope)return!0}return!1}function Gu(t,e){for(var n=ve([]);t&&t!==e;)_e(n,t.getLocalTransform(),n),t=t.parent;return n}function Hu(t,e,n){return e&&!k(e)&&(e=Oe.getLocalTransform(e)),n&&(e=Se([],e)),Et([],t,e)}function Wu(t,e,n){var i=0===e[4]||0===e[5]||0===e[0]?1:Math.abs(2*e[4]/e[0]),r=0===e[4]||0===e[5]||0===e[2]?1:Math.abs(2*e[4]/e[2]),o=["left"===t?-i:"right"===t?i:0,"top"===t?-r:"bottom"===t?r:0];return o=Hu(o,e,n),Math.abs(o[0])>Math.abs(o[1])?o[0]>0?"right":"left":o[1]>0?"bottom":"top"}function Yu(t){return!t.isGroup}function Xu(t,e,n){if(t&&e){var i,r=(i={},t.traverse((function(t){Yu(t)&&t.anid&&(i[t.anid]=t)})),i);e.traverse((function(t){if(Yu(t)&&t.anid){var e=r[t.anid];if(e){var i=o(t);t.attr(o(e)),Nu(t,i,n,ms(t).dataIndex)}}}))}function o(t){var e={x:t.x,y:t.y,rotation:t.rotation};return function(t){return null!=t.shape}(t)&&(e.shape=I({},t.shape)),e}}function Uu(t,e){return O(t,(function(t){var n=t[0];n=xu(n,e.x),n=bu(n,e.x+e.width);var i=t[1];return i=xu(i,e.y),[n,i=bu(i,e.y+e.height)]}))}function Zu(t,e){var n=xu(t.x,e.x),i=bu(t.x+t.width,e.x+e.width),r=xu(t.y,e.y),o=bu(t.y+t.height,e.y+e.height);if(i>=n&&o>=r)return{x:n,y:r,width:i-n,height:o-r}}function ju(t,e,n){var i=I({rectHover:!0},e),r=i.style={strokeNoScale:!0};if(n=n||{x:-1,y:-1,width:2,height:2},t)return 0===t.indexOf("image://")?(r.image=t.slice(8),T(r,n),new ts(i)):Au(t.replace("path://",""),i,n,"center")}function qu(t,e,n,i,r){for(var o=0,a=r[r.length-1];o<r.length;o++){var s=r[o];if(Ku(t,e,n,i,s[0],s[1],a[0],a[1]))return!0;a=s}}function Ku(t,e,n,i,r,o,a,s){var l,u=n-t,h=i-e,c=a-r,p=s-o,d=$u(c,p,u,h);if((l=d)<=1e-6&&l>=-1e-6)return!1;var f=t-r,g=e-o,y=$u(f,g,u,h)/d;if(y<0||y>1)return!1;var v=$u(f,g,c,p)/d;return!(v<0||v>1)}function $u(t,e,n,i){return t*i-n*e}Tu("circle",Al),Tu("ellipse",Ll),Tu("sector",Xl),Tu("ring",Zl),Tu("polygon",$l),Tu("polyline",Ql),Tu("rect",ss),Tu("line",nu),Tu("bezierCurve",au),Tu("arc",lu);var Ju=Object.freeze({__proto__:null,extendShape:Su,extendPath:Iu,registerShape:Tu,getShapeClass:Cu,makePath:Au,makeImage:Du,mergePath:ku,resizePath:Pu,subPixelOptimizeLine:function(t){return ns(t.shape,t.shape,t.style),t},subPixelOptimizeRect:function(t){return is(t.shape,t.shape,t.style),t},subPixelOptimize:Ou,updateProps:Nu,initProps:Eu,removeElement:zu,removeElementWithFadeOut:Vu,isElementRemoved:Fu,getTransform:Gu,applyTransform:Hu,transformDirection:Wu,groupTransition:Xu,clipPointsByRect:Uu,clipRectByRect:Zu,createIcon:ju,linePolygonIntersect:qu,lineLineIntersect:Ku,Group:Vi,Image:ts,Text:hs,Circle:Al,Ellipse:Ll,Sector:Xl,Ring:Zl,Polygon:$l,Polyline:Ql,Rect:ss,Line:nu,BezierCurve:au,Arc:lu,IncrementalDisplayable:_u,CompoundPath:uu,LinearGradient:cu,RadialGradient:pu,BoundingRect:En,OrientedBoundingRect:vu,Point:Cn,Path:qa}),Qu={};function th(t,e){for(var n=0;n<ws.length;n++){var i=ws[n],r=e[i],o=t.ensureState(i);o.style=o.style||{},o.style.text=r}var a=t.currentStates.slice();t.clearStates(!0),t.setStyle({text:e.normal}),t.useStates(a,!0)}function eh(t,e,n){var i,r=t.labelFetcher,o=t.labelDataIndex,a=t.labelDimIndex,s=e.normal;r&&(i=r.getFormattedLabel(o,"normal",null,a,s&&s.get("formatter"),null!=n?{interpolatedValue:n}:null)),null==i&&(i=G(t.defaultText)?t.defaultText(o,t,n):t.defaultText);for(var l={normal:i},u=0;u<ws.length;u++){var h=ws[u],c=e[h];l[h]=tt(r?r.getFormattedLabel(o,h,null,a,c&&c.get("formatter")):null,i)}return l}function nh(t,e,n,i){n=n||Qu;for(var r=t instanceof hs,o=!1,a=0;a<Ss.length;a++){if((p=e[Ss[a]])&&p.getShallow("show")){o=!0;break}}var s=r?t:t.getTextContent();if(o){r||(s||(s=new hs,t.setTextContent(s)),t.stateProxy&&(s.stateProxy=t.stateProxy));var l=eh(n,e),u=e.normal,h=!!u.getShallow("show"),c=rh(u,i&&i.normal,n,!1,!r);c.text=l.normal,r||t.setTextConfig(oh(u,n,!1));for(a=0;a<ws.length;a++){var p,d=ws[a];if(p=e[d]){var f=s.ensureState(d),g=!!tt(p.getShallow("show"),h);if(g!==h&&(f.ignore=!g),f.style=rh(p,i&&i[d],n,!0,!r),f.style.text=l[d],!r)t.ensureState(d).textConfig=oh(p,n,!0)}}s.silent=!!u.getShallow("silent"),null!=s.style.x&&(c.x=s.style.x),null!=s.style.y&&(c.y=s.style.y),s.ignore=!h,s.useStyle(c),s.dirty(),n.enableTextSetter&&(ch(s).setLabelText=function(t){var i=eh(n,e,t);th(s,i)})}else s&&(s.ignore=!0);t.dirty()}function ih(t,e){e=e||"label";for(var n={normal:t.getModel(e)},i=0;i<ws.length;i++){var r=ws[i];n[r]=t.getModel([r,e])}return n}function rh(t,e,n,i,r){var o={};return function(t,e,n,i,r){n=n||Qu;var o,a=e.ecModel,s=a&&a.option.textStyle,l=function(t){var e;for(;t&&t!==t.ecModel;){var n=(t.option||Qu).rich;if(n){e=e||{};for(var i=z(n),r=0;r<i.length;r++){e[i[r]]=1}}t=t.parentModel}return e}(e);if(l)for(var u in o={},l)if(l.hasOwnProperty(u)){var h=e.getModel(["rich",u]);uh(o[u]={},h,s,n,i,r,!1,!0)}o&&(t.rich=o);var c=e.get("overflow");c&&(t.overflow=c);var p=e.get("minMargin");null!=p&&(t.margin=p);uh(t,e,s,n,i,r,!0,!1)}(o,t,n,i,r),e&&I(o,e),o}function oh(t,e,n){e=e||{};var i,r={},o=t.getShallow("rotate"),a=tt(t.getShallow("distance"),n?null:5),s=t.getShallow("offset");return"outside"===(i=t.getShallow("position")||(n?null:"inside"))&&(i=e.defaultOutsidePosition||"top"),null!=i&&(r.position=i),null!=s&&(r.offset=s),null!=o&&(o*=Math.PI/180,r.rotation=o),null!=a&&(r.distance=a),r.outsideFill="inherit"===t.get("color")?e.inheritColor||null:"auto",r}var ah=["fontStyle","fontWeight","fontSize","fontFamily","textShadowColor","textShadowBlur","textShadowOffsetX","textShadowOffsetY"],sh=["align","lineHeight","width","height","tag","verticalAlign"],lh=["padding","borderWidth","borderRadius","borderDashOffset","backgroundColor","borderColor","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"];function uh(t,e,n,i,r,o,a,s){n=!r&&n||Qu;var l=i&&i.inheritColor,u=e.getShallow("color"),h=e.getShallow("textBorderColor"),c=tt(e.getShallow("opacity"),n.opacity);"inherit"!==u&&"auto"!==u||(u=l||null),"inherit"!==h&&"auto"!==h||(h=l||null),o||(u=u||n.color,h=h||n.textBorderColor),null!=u&&(t.fill=u),null!=h&&(t.stroke=h);var p=tt(e.getShallow("textBorderWidth"),n.textBorderWidth);null!=p&&(t.lineWidth=p);var d=tt(e.getShallow("textBorderType"),n.textBorderType);null!=d&&(t.lineDash=d);var f=tt(e.getShallow("textBorderDashOffset"),n.textBorderDashOffset);null!=f&&(t.lineDashOffset=f),r||null!=c||s||(c=i&&i.defaultOpacity),null!=c&&(t.opacity=c),r||o||null==t.fill&&i.inheritColor&&(t.fill=i.inheritColor);for(var g=0;g<ah.length;g++){var y=ah[g];null!=(m=tt(e.getShallow(y),n[y]))&&(t[y]=m)}for(g=0;g<sh.length;g++){y=sh[g];null!=(m=e.getShallow(y))&&(t[y]=m)}if(null==t.verticalAlign){var v=e.getShallow("baseline");null!=v&&(t.verticalAlign=v)}if(!a||!i.disableBox){for(g=0;g<lh.length;g++){var m;y=lh[g];null!=(m=e.getShallow(y))&&(t[y]=m)}var _=e.getShallow("borderType");null!=_&&(t.borderDash=_),"auto"!==t.backgroundColor&&"inherit"!==t.backgroundColor||!l||(t.backgroundColor=l),"auto"!==t.borderColor&&"inherit"!==t.borderColor||!l||(t.borderColor=l)}}function hh(t,e){var n=e&&e.getModel("textStyle");return ot([t.fontStyle||n&&n.getShallow("fontStyle")||"",t.fontWeight||n&&n.getShallow("fontWeight")||"",(t.fontSize||n&&n.getShallow("fontSize")||12)+"px",t.fontFamily||n&&n.getShallow("fontFamily")||"sans-serif"].join(" "))}var ch=Pr();function ph(t,e,n,i){if(t){var r=ch(t);r.prevValue=r.value,r.value=n;var o=e.normal;r.valueAnimation=o.get("valueAnimation"),r.valueAnimation&&(r.precision=o.get("precision"),r.defaultInterpolatedText=i,r.statesModels=e)}}function dh(t,e,n,i,r){var o=ch(t);if(o.valueAnimation){var a=o.defaultInterpolatedText,s=tt(o.interpolatedValue,o.prevValue),l=o.value;(null==s?Eu:Nu)(t,{},i,e,null,(function(i){var u=Fr(n,o.precision,s,l,i);o.interpolatedValue=1===i?null:u;var h=eh({labelDataIndex:e,labelFetcher:r,defaultText:a?a(u):u+""},o.statesModels,u);th(t,h)}))}}var fh,gh,yh=["textStyle","color"],vh=new hs,mh=function(){function t(){}return t.prototype.getTextColor=function(t){var e=this.ecModel;return this.getShallow("color")||(!t&&e?e.get(yh):null)},t.prototype.getFont=function(){return hh({fontStyle:this.getShallow("fontStyle"),fontWeight:this.getShallow("fontWeight"),fontSize:this.getShallow("fontSize"),fontFamily:this.getShallow("fontFamily")},this.ecModel)},t.prototype.getTextRect=function(t){return vh.useStyle({text:t,fontStyle:this.getShallow("fontStyle"),fontWeight:this.getShallow("fontWeight"),fontSize:this.getShallow("fontSize"),fontFamily:this.getShallow("fontFamily"),verticalAlign:this.getShallow("verticalAlign")||this.getShallow("baseline"),padding:this.getShallow("padding"),lineHeight:this.getShallow("lineHeight"),rich:this.getShallow("rich")}),vh.update(),vh.getBoundingRect()},t}(),_h=[["lineWidth","width"],["stroke","color"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"],["lineDash","type"],["lineDashOffset","dashOffset"],["lineCap","cap"],["lineJoin","join"],["miterLimit"]],xh=$r(_h),bh=function(){function t(){}return t.prototype.getLineStyle=function(t){return xh(this,t)},t}(),wh=[["fill","color"],["stroke","borderColor"],["lineWidth","borderWidth"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"],["lineDash","borderType"],["lineDashOffset","borderDashOffset"],["lineCap","borderCap"],["lineJoin","borderJoin"],["miterLimit","borderMiterLimit"]],Sh=$r(wh),Mh=function(){function t(){}return t.prototype.getItemStyle=function(t,e){return Sh(this,t,e)},t}(),Ih=function(){function t(t,e,n){this.parentModel=e,this.ecModel=n,this.option=t}return t.prototype.init=function(t,e,n){for(var i=[],r=3;r<arguments.length;r++)i[r-3]=arguments[r]},t.prototype.mergeOption=function(t,e){S(this.option,t,!0)},t.prototype.get=function(t,e){return null==t?this.option:this._doGet(this.parsePath(t),!e&&this.parentModel)},t.prototype.getShallow=function(t,e){var n=this.option,i=null==n?n:n[t];if(null==i&&!e){var r=this.parentModel;r&&(i=r.getShallow(t))}return i},t.prototype.getModel=function(e,n){var i=null!=e,r=i?this.parsePath(e):null;return new t(i?this._doGet(r):this.option,n=n||this.parentModel&&this.parentModel.getModel(this.resolveParentPath(r)),this.ecModel)},t.prototype.isEmpty=function(){return null==this.option},t.prototype.restoreData=function(){},t.prototype.clone=function(){return new(0,this.constructor)(w(this.option))},t.prototype.parsePath=function(t){return"string"==typeof t?t.split("."):t},t.prototype.resolveParentPath=function(t){return t},t.prototype.isAnimationEnabled=function(){if(!a.node&&this.option){if(null!=this.option.animation)return!!this.option.animation;if(this.parentModel)return this.parentModel.isAnimationEnabled()}},t.prototype._doGet=function(t,e){var n=this.option;if(!t)return n;for(var i=0;i<t.length&&(!t[i]||null!=(n=n&&"object"==typeof n?n[t[i]]:null));i++);return null==n&&e&&(n=e._doGet(this.resolveParentPath(t),e.parentModel)),n},t}();Yr(Ih),fh=Ih,gh=["__\0is_clz",Zr++].join("_"),fh.prototype[gh]=!0,fh.isInstance=function(t){return!(!t||!t[gh])},L(Ih,bh),L(Ih,Mh),L(Ih,Qr),L(Ih,mh);var Th=Math.round(10*Math.random());function Ch(t){return[t||"",Th++].join("_")}function Ah(t,e){return S(S({},t,!0),e,!0)}var Dh="ZH",Lh="EN",kh=Lh,Ph={},Oh={},Rh=a.domSupported&&(document.documentElement.lang||navigator.language||navigator.browserLanguage).toUpperCase().indexOf(Dh)>-1?Dh:kh;function Nh(t,e){t=t.toUpperCase(),Oh[t]=new Ih(e),Ph[t]=e}Nh(Lh,{time:{month:["January","February","March","April","May","June","July","August","September","October","November","December"],monthAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayOfWeekAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},legend:{selector:{all:"All",inverse:"Inv"}},toolbox:{brush:{title:{rect:"Box Select",polygon:"Lasso Select",lineX:"Horizontally Select",lineY:"Vertically Select",keep:"Keep Selections",clear:"Clear Selections"}},dataView:{title:"Data View",lang:["Data View","Close","Refresh"]},dataZoom:{title:{zoom:"Zoom",back:"Zoom Reset"}},magicType:{title:{line:"Switch to Line Chart",bar:"Switch to Bar Chart",stack:"Stack",tiled:"Tile"}},restore:{title:"Restore"},saveAsImage:{title:"Save as Image",lang:["Right Click to Save Image"]}},series:{typeNames:{pie:"Pie chart",bar:"Bar chart",line:"Line chart",scatter:"Scatter plot",effectScatter:"Ripple scatter plot",radar:"Radar chart",tree:"Tree",treemap:"Treemap",boxplot:"Boxplot",candlestick:"Candlestick",k:"K line chart",heatmap:"Heat map",map:"Map",parallel:"Parallel coordinate map",lines:"Line graph",graph:"Relationship graph",sankey:"Sankey diagram",funnel:"Funnel chart",gauge:"Guage",pictorialBar:"Pictorial bar",themeRiver:"Theme River Map",sunburst:"Sunburst"}},aria:{general:{withTitle:'This is a chart about "{title}"',withoutTitle:"This is a chart"},series:{single:{prefix:"",withName:" with type {seriesType} named {seriesName}.",withoutName:" with type {seriesType}."},multiple:{prefix:". It consists of {seriesCount} series count.",withName:" The {seriesId} series is a {seriesType} representing {seriesName}.",withoutName:" The {seriesId} series is a {seriesType}.",separator:{middle:"",end:""}}},data:{allData:"The data is as follows: ",partialData:"The first {displayCnt} items are: ",withName:"the data for {name} is {value}",withoutName:"{value}",separator:{middle:", ",end:". "}}}}),Nh(Dh,{time:{month:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthAbbr:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayOfWeekAbbr:["日","一","二","三","四","五","六"]},legend:{selector:{all:"全选",inverse:"反选"}},toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}});var Eh=1e3,zh=6e4,Bh=36e5,Vh=864e5,Fh=31536e6,Gh={year:"{yyyy}",month:"{MMM}",day:"{d}",hour:"{HH}:{mm}",minute:"{HH}:{mm}",second:"{HH}:{mm}:{ss}",millisecond:"{hh}:{mm}:{ss} {SSS}",none:"{yyyy}-{MM}-{dd} {hh}:{mm}:{ss} {SSS}"},Hh="{yyyy}-{MM}-{dd}",Wh={year:"{yyyy}",month:"{yyyy}-{MM}",day:Hh,hour:"{yyyy}-{MM}-{dd} "+Gh.hour,minute:"{yyyy}-{MM}-{dd} "+Gh.minute,second:"{yyyy}-{MM}-{dd} "+Gh.second,millisecond:Gh.none},Yh=["year","month","day","hour","minute","second","millisecond"],Xh=["year","half-year","quarter","month","week","half-week","day","half-day","quarter-day","hour","minute","second","millisecond"];function Uh(t,e){return"0000".substr(0,e-(t+="").length)+t}function Zh(t){switch(t){case"half-year":case"quarter":return"month";case"week":case"half-week":return"day";case"half-day":case"quarter-day":return"hour";default:return t}}function jh(t){return t===Zh(t)}function qh(t,e,n,i){var r=ar(t),o=r[Jh(n)](),a=r[Qh(n)]()+1,s=Math.floor((a-1)/4)+1,l=r[tc(n)](),u=r["get"+(n?"UTC":"")+"Day"](),h=r[ec(n)](),c=(h-1)%12+1,p=r[nc(n)](),d=r[ic(n)](),f=r[rc(n)](),g=(i instanceof Ih?i:function(t){return Oh[t]}(i||Rh)||Oh.EN).getModel("time"),y=g.get("month"),v=g.get("monthAbbr"),m=g.get("dayOfWeek"),_=g.get("dayOfWeekAbbr");return(e||"").replace(/{yyyy}/g,o+"").replace(/{yy}/g,o%100+"").replace(/{Q}/g,s+"").replace(/{MMMM}/g,y[a-1]).replace(/{MMM}/g,v[a-1]).replace(/{MM}/g,Uh(a,2)).replace(/{M}/g,a+"").replace(/{dd}/g,Uh(l,2)).replace(/{d}/g,l+"").replace(/{eeee}/g,m[u]).replace(/{ee}/g,_[u]).replace(/{e}/g,u+"").replace(/{HH}/g,Uh(h,2)).replace(/{H}/g,h+"").replace(/{hh}/g,Uh(c+"",2)).replace(/{h}/g,c+"").replace(/{mm}/g,Uh(p,2)).replace(/{m}/g,p+"").replace(/{ss}/g,Uh(d,2)).replace(/{s}/g,d+"").replace(/{SSS}/g,Uh(f,3)).replace(/{S}/g,f+"")}function Kh(t,e){var n=ar(t),i=n[Qh(e)]()+1,r=n[tc(e)](),o=n[ec(e)](),a=n[nc(e)](),s=n[ic(e)](),l=0===n[rc(e)](),u=l&&0===s,h=u&&0===a,c=h&&0===o,p=c&&1===r;return p&&1===i?"year":p?"month":c?"day":h?"hour":u?"minute":l?"second":"millisecond"}function $h(t,e,n){var i="number"==typeof t?ar(t):t;switch(e=e||Kh(t,n)){case"year":return i[Jh(n)]();case"half-year":return i[Qh(n)]()>=6?1:0;case"quarter":return Math.floor((i[Qh(n)]()+1)/4);case"month":return i[Qh(n)]();case"day":return i[tc(n)]();case"half-day":return i[ec(n)]()/24;case"hour":return i[ec(n)]();case"minute":return i[nc(n)]();case"second":return i[ic(n)]();case"millisecond":return i[rc(n)]()}}function Jh(t){return t?"getUTCFullYear":"getFullYear"}function Qh(t){return t?"getUTCMonth":"getMonth"}function tc(t){return t?"getUTCDate":"getDate"}function ec(t){return t?"getUTCHours":"getHours"}function nc(t){return t?"getUTCMinutes":"getMinutes"}function ic(t){return t?"getUTCSeconds":"getSeconds"}function rc(t){return t?"getUTCSeconds":"getSeconds"}function oc(t){return t?"setUTCFullYear":"setFullYear"}function ac(t){return t?"setUTCMonth":"setMonth"}function sc(t){return t?"setUTCDate":"setDate"}function lc(t){return t?"setUTCHours":"setHours"}function uc(t){return t?"setUTCMinutes":"setMinutes"}function hc(t){return t?"setUTCSeconds":"setSeconds"}function cc(t){return t?"setUTCSeconds":"setSeconds"}function pc(t){if(!dr(t))return H(t)?t:"-";var e=(t+"").split(".");return e[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(e.length>1?"."+e[1]:"")}function dc(t,e){return t=(t||"").toLowerCase().replace(/-(.)/g,(function(t,e){return e.toUpperCase()})),e&&t&&(t=t.charAt(0).toUpperCase()+t.slice(1)),t}var fc=it,gc=/([&<>"'])/g,yc={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function vc(t){return null==t?"":(t+"").replace(gc,(function(t,e){return yc[e]}))}function mc(t,e,n){function i(t){return t&&ot(t)?t:"-"}function r(t){return!(null==t||isNaN(t)||!isFinite(t))}var o="time"===e,a=t instanceof Date;if(o||a){var s=o?ar(t):t;if(!isNaN(+s))return qh(s,"yyyy-MM-dd hh:mm:ss",n);if(a)return"-"}if("ordinal"===e)return W(t)?i(t):Y(t)&&r(t)?t+"":"-";var l=pr(t);return r(l)?pc(l):W(t)?i(t):"-"}var _c=["a","b","c","d","e","f","g"],xc=function(t,e){return"{"+t+(null==e?"":e)+"}"};function bc(t,e,n){F(e)||(e=[e]);var i=e.length;if(!i)return"";for(var r=e[0].$vars||[],o=0;o<r.length;o++){var a=_c[o];t=t.replace(xc(a),xc(a,0))}for(var s=0;s<i;s++)for(var l=0;l<r.length;l++){var u=e[s][r[l]];t=t.replace(xc(_c[l],s),n?vc(u):u)}return t}function wc(t,e){var n=H(t)?{color:t,extraCssText:e}:t||{},i=n.color,r=n.type;e=n.extraCssText;var o=n.renderMode||"html";return i?"html"===o?"subItem"===r?'<span style="display:inline-block;vertical-align:middle;margin-right:8px;margin-left:3px;border-radius:4px;width:4px;height:4px;background-color:'+vc(i)+";"+(e||"")+'"></span>':'<span style="display:inline-block;margin-right:4px;border-radius:10px;width:10px;height:10px;background-color:'+vc(i)+";"+(e||"")+'"></span>':{renderMode:o,content:"{"+(n.markerId||"markerX")+"|}  ",style:"subItem"===r?{width:4,height:4,borderRadius:2,backgroundColor:i}:{width:10,height:10,borderRadius:5,backgroundColor:i}}:""}function Sc(t,e){return e=e||"transparent",H(t)?t:X(t)&&t.colorStops&&(t.colorStops[0]||{}).color||e}function Mc(t,e){if("_blank"===e||"blank"===e){var n=window.open();n.opener=null,n.location.href=t}else window.open(t,e)}var Ic=P,Tc=["left","right","top","bottom","width","height"],Cc=[["width","left","right"],["height","top","bottom"]];function Ac(t,e,n,i,r){var o=0,a=0;null==i&&(i=1/0),null==r&&(r=1/0);var s=0;e.eachChild((function(l,u){var h,c,p=l.getBoundingRect(),d=e.childAt(u+1),f=d&&d.getBoundingRect();if("horizontal"===t){var g=p.width+(f?-f.x+p.x:0);(h=o+g)>i||l.newline?(o=0,h=g,a+=s+n,s=p.height):s=Math.max(s,p.height)}else{var y=p.height+(f?-f.y+p.y:0);(c=a+y)>r||l.newline?(o+=s+n,a=0,c=y,s=p.width):s=Math.max(s,p.width)}l.newline||(l.x=o,l.y=a,l.markRedraw(),"horizontal"===t?o=h+n:a=c+n)}))}var Dc=Ac;V(Ac,"vertical"),V(Ac,"horizontal");function Lc(t,e,n){n=fc(n||0);var i=e.width,r=e.height,o=qi(t.left,i),a=qi(t.top,r),s=qi(t.right,i),l=qi(t.bottom,r),u=qi(t.width,i),h=qi(t.height,r),c=n[2]+n[0],p=n[1]+n[3],d=t.aspect;switch(isNaN(u)&&(u=i-s-p-o),isNaN(h)&&(h=r-l-c-a),null!=d&&(isNaN(u)&&isNaN(h)&&(d>i/r?u=.8*i:h=.8*r),isNaN(u)&&(u=d*h),isNaN(h)&&(h=u/d)),isNaN(o)&&(o=i-s-u-p),isNaN(a)&&(a=r-l-h-c),t.left||t.right){case"center":o=i/2-u/2-n[3];break;case"right":o=i-u-p}switch(t.top||t.bottom){case"middle":case"center":a=r/2-h/2-n[0];break;case"bottom":a=r-h-c}o=o||0,a=a||0,isNaN(u)&&(u=i-p-o-(s||0)),isNaN(h)&&(h=r-c-a-(l||0));var f=new En(o+n[3],a+n[0],u,h);return f.margin=n,f}function kc(t,e,n,i,r){var o=!r||!r.hv||r.hv[0],a=!r||!r.hv||r.hv[1],s=r&&r.boundingMode||"all";if(o||a){var l;if("raw"===s)l="group"===t.type?new En(0,0,+e.width||0,+e.height||0):t.getBoundingRect();else if(l=t.getBoundingRect(),t.needLocalTransform()){var u=t.getLocalTransform();(l=l.clone()).applyTransform(u)}var h=Lc(T({width:l.width,height:l.height},e),n,i),c=o?h.x-l.x:0,p=a?h.y-l.y:0;"raw"===s?(t.x=c,t.y=p):(t.x+=c,t.y+=p),t.markRedraw()}}function Pc(t){var e=t.layoutMode||t.constructor.layoutMode;return X(e)?e:e?{type:e}:null}function Oc(t,e,n){var i=n&&n.ignoreSize;!F(i)&&(i=[i,i]);var r=a(Cc[0],0),o=a(Cc[1],1);function a(n,r){var o={},a=0,u={},h=0;if(Ic(n,(function(e){u[e]=t[e]})),Ic(n,(function(t){s(e,t)&&(o[t]=u[t]=e[t]),l(o,t)&&a++,l(u,t)&&h++})),i[r])return l(e,n[1])?u[n[2]]=null:l(e,n[2])&&(u[n[1]]=null),u;if(2!==h&&a){if(a>=2)return o;for(var c=0;c<n.length;c++){var p=n[c];if(!s(o,p)&&s(t,p)){o[p]=t[p];break}}return o}return u}function s(t,e){return t.hasOwnProperty(e)}function l(t,e){return null!=t[e]&&"auto"!==t[e]}function u(t,e,n){Ic(t,(function(t){e[t]=n[t]}))}u(Cc[0],t,r),u(Cc[1],t,o)}function Rc(t){return Nc({},t)}function Nc(t,e){return e&&t&&Ic(Tc,(function(n){e.hasOwnProperty(n)&&(t[n]=e[n])})),t}var Ec=Pr(),zc=function(t){function e(e,n,i){var r=t.call(this,e,n,i)||this;return r.uid=Ch("ec_cpt_model"),r}return n(e,t),e.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n)},e.prototype.mergeDefaultAndTheme=function(t,e){var n=Pc(this),i=n?Rc(t):{};S(t,e.getTheme().get(this.mainType)),S(t,this.getDefaultOption()),n&&Oc(t,i,n)},e.prototype.mergeOption=function(t,e){S(this.option,t,!0);var n=Pc(this);n&&Oc(this.option,t,n)},e.prototype.optionUpdated=function(t,e){},e.prototype.getDefaultOption=function(){var t=this.constructor;if(!function(t){return!(!t||!t[Hr])}(t))return t.defaultOption;var e=Ec(this);if(!e.defaultOption){for(var n=[],i=t;i;){var r=i.prototype.defaultOption;r&&n.push(r),i=i.superClass}for(var o={},a=n.length-1;a>=0;a--)o=S(o,n[a],!0);e.defaultOption=o}return e.defaultOption},e.prototype.getReferringComponents=function(t,e){var n=t+"Index",i=t+"Id";return zr(this.ecModel,t,{index:this.get(n,!0),id:this.get(i,!0)},e)},e.prototype.getBoxLayoutParams=function(){var t=this;return{left:t.get("left"),top:t.get("top"),right:t.get("right"),bottom:t.get("bottom"),width:t.get("width"),height:t.get("height")}},e.protoInitialize=function(){var t=e.prototype;t.type="component",t.id="",t.name="",t.mainType="",t.subType="",t.componentIndex=0}(),e}(Ih);Ur(zc,Ih),Kr(zc),function(t){var e={};t.registerSubTypeDefaulter=function(t,n){var i=Wr(t);e[i.main]=n},t.determineSubType=function(n,i){var r=i.type;if(!r){var o=Wr(n).main;t.hasSubTypes(n)&&e[o]&&(r=e[o](i))}return r}}(zc),function(t,e){function n(t,e){return t[e]||(t[e]={predecessor:[],successor:[]}),t[e]}t.topologicalTravel=function(t,i,r,o){if(t.length){var a=function(t){var i={},r=[];return P(t,(function(o){var a=n(i,o),s=function(t,e){var n=[];return P(t,(function(t){A(e,t)>=0&&n.push(t)})),n}(a.originalDeps=e(o),t);a.entryCount=s.length,0===a.entryCount&&r.push(o),P(s,(function(t){A(a.predecessor,t)<0&&a.predecessor.push(t);var e=n(i,t);A(e.successor,t)<0&&e.successor.push(o)}))})),{graph:i,noEntryList:r}}(i),s=a.graph,l=a.noEntryList,u={};for(P(t,(function(t){u[t]=!0}));l.length;){var h=l.pop(),c=s[h],p=!!u[h];p&&(r.call(o,h,c.originalDeps.slice()),delete u[h]),P(c.successor,p?f:d)}P(u,(function(){var t="";throw new Error(t)}))}function d(t){s[t].entryCount--,0===s[t].entryCount&&l.push(t)}function f(t){u[t]=!0,d(t)}}}(zc,(function(t){var e=[];P(zc.getClassesByMainType(t),(function(t){e=e.concat(t.dependencies||t.prototype.dependencies||[])})),e=O(e,(function(t){return Wr(t).main})),"dataset"!==t&&A(e,"dataset")<=0&&e.unshift("dataset");return e}));var Bc="";"undefined"!=typeof navigator&&(Bc=navigator.platform||"");var Vc="rgba(0, 0, 0, 0.2)",Fc={darkMode:"auto",color:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],gradientColor:["#f6efa6","#d88273","#bf444c"],aria:{decal:{decals:[{color:Vc,dashArrayX:[1,0],dashArrayY:[2,5],symbolSize:1,rotation:Math.PI/6},{color:Vc,symbol:"circle",dashArrayX:[[8,8],[0,8,8,0]],dashArrayY:[6,0],symbolSize:.8},{color:Vc,dashArrayX:[1,0],dashArrayY:[4,3],rotation:-Math.PI/4},{color:Vc,dashArrayX:[[6,6],[0,6,6,0]],dashArrayY:[6,0]},{color:Vc,dashArrayX:[[1,0],[1,6]],dashArrayY:[1,0,6,0],rotation:Math.PI/4},{color:Vc,symbol:"triangle",dashArrayX:[[9,9],[0,9,9,0]],dashArrayY:[7,2],symbolSize:.75}]}},textStyle:{fontFamily:Bc.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,stateAnimation:{duration:300,easing:"cubicOut"},animation:"auto",animationDuration:1e3,animationDurationUpdate:500,animationEasing:"cubicInOut",animationEasingUpdate:"cubicInOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1},Gc=ht(["tooltip","label","itemName","itemId","seriesName"]),Hc="original",Wc="arrayRows",Yc="objectRows",Xc="keyedColumns",Uc="typedArray",Zc="unknown",jc="column",qc="row",Kc=1,$c=2,Jc=3,Qc=Pr();function tp(t,e,n){var i={},r=np(e);if(!r||!t)return i;var o,a,s=[],l=[],u=e.ecModel,h=Qc(u).datasetMap,c=r.uid+"_"+n.seriesLayoutBy;P(t=t.slice(),(function(e,n){var r=X(e)?e:t[n]={name:e};"ordinal"===r.type&&null==o&&(o=n,a=f(r)),i[r.name]=[]}));var p=h.get(c)||h.set(c,{categoryWayDim:a,valueWayDim:0});function d(t,e,n){for(var i=0;i<n;i++)t.push(e+i)}function f(t){var e=t.dimsDef;return e?e.length:1}return P(t,(function(t,e){var n=t.name,r=f(t);if(null==o){var a=p.valueWayDim;d(i[n],a,r),d(l,a,r),p.valueWayDim+=r}else if(o===e)d(i[n],0,r),d(s,0,r);else{a=p.categoryWayDim;d(i[n],a,r),d(l,a,r),p.categoryWayDim+=r}})),s.length&&(i.itemName=s),l.length&&(i.seriesName=l),i}function ep(t,e,n){var i={};if(!np(t))return i;var r,o=e.sourceFormat,a=e.dimensionsDefine;o!==Yc&&o!==Xc||P(a,(function(t,e){"name"===(X(t)?t.name:t)&&(r=e)}));var s=function(){for(var t={},i={},s=[],l=0,u=Math.min(5,n);l<u;l++){var h=rp(e.data,o,e.seriesLayoutBy,a,e.startIndex,l);s.push(h);var c=h===Jc;if(c&&null==t.v&&l!==r&&(t.v=l),(null==t.n||t.n===t.v||!c&&s[t.n]===Jc)&&(t.n=l),p(t)&&s[t.n]!==Jc)return t;c||(h===$c&&null==i.v&&l!==r&&(i.v=l),null!=i.n&&i.n!==i.v||(i.n=l))}function p(t){return null!=t.v&&null!=t.n}return p(t)?t:p(i)?i:null}();if(s){i.value=[s.v];var l=null!=r?r:s.n;i.itemName=[l],i.seriesName=[l]}return i}function np(t){if(!t.get("data",!0))return zr(t.ecModel,"dataset",{index:t.get("datasetIndex",!0),id:t.get("datasetId",!0)},Nr).models[0]}function ip(t,e){return rp(t.data,t.sourceFormat,t.seriesLayoutBy,t.dimensionsDefine,t.startIndex,e)}function rp(t,e,n,i,r,o){var a,s,l;if(Z(t))return Jc;if(i){var u=i[o];X(u)?(s=u.name,l=u.type):H(u)&&(s=u)}if(null!=l)return"ordinal"===l?Kc:Jc;if(e===Wc){var h=t;if(n===qc){for(var c=h[o],p=0;p<(c||[]).length&&p<5;p++)if(null!=(a=m(c[r+p])))return a}else for(p=0;p<h.length&&p<5;p++){var d=h[r+p];if(d&&null!=(a=m(d[o])))return a}}else if(e===Yc){var f=t;if(!s)return Jc;for(p=0;p<f.length&&p<5;p++){if((y=f[p])&&null!=(a=m(y[s])))return a}}else if(e===Xc){if(!s)return Jc;if(!(c=t[s])||Z(c))return Jc;for(p=0;p<c.length&&p<5;p++)if(null!=(a=m(c[p])))return a}else if(e===Hc){var g=t;for(p=0;p<g.length&&p<5;p++){var y,v=Mr(y=g[p]);if(!F(v))return Jc;if(null!=(a=m(v[o])))return a}}function m(t){var e=H(t);return null!=t&&isFinite(t)&&""!==t?e?$c:Jc:e&&"-"!==t?Kc:void 0}return Jc}var op=ht();var ap,sp,lp,up=Pr(),hp=Pr(),cp=function(){function t(){}return t.prototype.getColorFromPalette=function(t,e,n){var i=br(this.get("color",!0)),r=this.get("colorLayer",!0);return dp(this,up,i,r,t,e,n)},t.prototype.clearColorPalette=function(){!function(t,e){e(t).paletteIdx=0,e(t).paletteNameMap={}}(this,up)},t}();function pp(t,e,n,i){var r=br(t.get(["aria","decal","decals"]));return dp(t,hp,r,null,e,n,i)}function dp(t,e,n,i,r,o,a){var s=e(o=o||t),l=s.paletteIdx||0,u=s.paletteNameMap=s.paletteNameMap||{};if(u.hasOwnProperty(r))return u[r];var h=null!=a&&i?function(t,e){for(var n=t.length,i=0;i<n;i++)if(t[i].length>e)return t[i];return t[n-1]}(i,a):n;if((h=h||n)&&h.length){var c=h[l];return r&&(u[r]=c),s.paletteIdx=(l+1)%h.length,c}}var fp=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.init=function(t,e,n,i,r,o){i=i||{},this.option=null,this._theme=new Ih(i),this._locale=new Ih(r),this._optionManager=o},e.prototype.setOption=function(t,e,n){var i=vp(e);this._optionManager.setOption(t,n,i),this._resetOption(null,i)},e.prototype.resetOption=function(t,e){return this._resetOption(t,vp(e))},e.prototype._resetOption=function(t,e){var n=!1,i=this._optionManager;if(!t||"recreate"===t){var r=i.mountOption("recreate"===t);this.option&&"recreate"!==t?(this.restoreData(),this._mergeOption(r,e)):lp(this,r),n=!0}if("timeline"!==t&&"media"!==t||this.restoreData(),!t||"recreate"===t||"timeline"===t){var o=i.getTimelineOption(this);o&&(n=!0,this._mergeOption(o,e))}if(!t||"recreate"===t||"media"===t){var a=i.getMediaOption(this);a.length&&P(a,(function(t){n=!0,this._mergeOption(t,e)}),this)}return n},e.prototype.mergeOption=function(t){this._mergeOption(t,null)},e.prototype._mergeOption=function(t,e){var n=this.option,i=this._componentsMap,r=this._componentsCount,o=[],a=ht(),s=e&&e.replaceMergeMainTypeMap;Qc(this).datasetMap=ht(),P(t,(function(t,e){null!=t&&(zc.hasClass(e)?e&&(o.push(e),a.set(e,!0)):n[e]=null==n[e]?w(t):S(n[e],t,!0))})),s&&s.each((function(t,e){zc.hasClass(e)&&!a.get(e)&&(o.push(e),a.set(e,!0))})),zc.topologicalTravel(o,zc.getAllClassMainTypes(),(function(e){var o=function(t,e,n){var i=op.get(e);if(!i)return n;var r=i(t);return r?n.concat(r):n}(this,e,br(t[e])),a=i.get(e),l=a?s&&s.get(e)?"replaceMerge":"normalMerge":"replaceAll",u=Ir(a,o,l);(function(t,e,n){P(t,(function(t){var i=t.newOption;X(i)&&(t.keyInfo.mainType=e,t.keyInfo.subType=function(t,e,n,i){return e.type?e.type:n?n.subType:i.determineSubType(t,e)}(e,i,t.existing,n))}))})(u,e,zc),n[e]=null,i.set(e,null),r.set(e,0);var h=[],c=[],p=0;P(u,(function(t,n){var i=t.existing,r=t.newOption;if(r){var o=zc.getClass(e,t.keyInfo.subType,!0);if(i&&i.constructor===o)i.name=t.keyInfo.name,i.mergeOption(r,this),i.optionUpdated(r,!1);else{var a=I({componentIndex:n},t.keyInfo);I(i=new o(r,this,this,a),a),t.brandNew&&(i.__requireNewView=!0),i.init(r,this,this),i.optionUpdated(null,!0)}}else i&&(i.mergeOption({},this),i.optionUpdated({},!1));i?(h.push(i.option),c.push(i),p++):(h.push(void 0),c.push(void 0))}),this),n[e]=h,i.set(e,c),r.set(e,p),"series"===e&&ap(this)}),this),this._seriesIndices||ap(this)},e.prototype.getOption=function(){var t=w(this.option);return P(t,(function(e,n){if(zc.hasClass(n)){for(var i=br(e),r=i.length,o=!1,a=r-1;a>=0;a--)i[a]&&!Lr(i[a])?o=!0:(i[a]=null,!o&&r--);i.length=r,t[n]=i}})),delete t["\0_ec_inner"],t},e.prototype.getTheme=function(){return this._theme},e.prototype.getLocaleModel=function(){return this._locale},e.prototype.getLocale=function(t){return this.getLocaleModel().get(t)},e.prototype.setUpdatePayload=function(t){this._payload=t},e.prototype.getUpdatePayload=function(){return this._payload},e.prototype.getComponent=function(t,e){var n=this._componentsMap.get(t);if(n){var i=n[e||0];if(i)return i;if(null==e)for(var r=0;r<n.length;r++)if(n[r])return n[r]}},e.prototype.queryComponents=function(t){var e=t.mainType;if(!e)return[];var n,i=t.index,r=t.id,o=t.name,a=this._componentsMap.get(e);return a&&a.length?(null!=i?(n=[],P(br(i),(function(t){a[t]&&n.push(a[t])}))):n=null!=r?gp("id",r,a):null!=o?gp("name",o,a):N(a,(function(t){return!!t})),yp(n,t)):[]},e.prototype.findComponents=function(t){var e,n,i,r,o,a=t.query,s=t.mainType,l=(n=s+"Index",i=s+"Id",r=s+"Name",!(e=a)||null==e[n]&&null==e[i]&&null==e[r]?null:{mainType:s,index:e[n],id:e[i],name:e[r]}),u=l?this.queryComponents(l):N(this._componentsMap.get(s),(function(t){return!!t}));return o=yp(u,t),t.filter?N(o,t.filter):o},e.prototype.eachComponent=function(t,e,n){var i=this._componentsMap;if(G(t)){var r=e,o=t;i.each((function(t,e){for(var n=0;t&&n<t.length;n++){var i=t[n];i&&o.call(r,e,i,i.componentIndex)}}))}else for(var a=H(t)?i.get(t):X(t)?this.findComponents(t):null,s=0;a&&s<a.length;s++){var l=a[s];l&&e.call(n,l,l.componentIndex)}},e.prototype.getSeriesByName=function(t){var e=Ar(t,null);return N(this._componentsMap.get("series"),(function(t){return!!t&&null!=e&&t.name===e}))},e.prototype.getSeriesByIndex=function(t){return this._componentsMap.get("series")[t]},e.prototype.getSeriesByType=function(t){return N(this._componentsMap.get("series"),(function(e){return!!e&&e.subType===t}))},e.prototype.getSeries=function(){return N(this._componentsMap.get("series").slice(),(function(t){return!!t}))},e.prototype.getSeriesCount=function(){return this._componentsCount.get("series")},e.prototype.eachSeries=function(t,e){sp(this),P(this._seriesIndices,(function(n){var i=this._componentsMap.get("series")[n];t.call(e,i,n)}),this)},e.prototype.eachRawSeries=function(t,e){P(this._componentsMap.get("series"),(function(n){n&&t.call(e,n,n.componentIndex)}))},e.prototype.eachSeriesByType=function(t,e,n){sp(this),P(this._seriesIndices,(function(i){var r=this._componentsMap.get("series")[i];r.subType===t&&e.call(n,r,i)}),this)},e.prototype.eachRawSeriesByType=function(t,e,n){return P(this.getSeriesByType(t),e,n)},e.prototype.isSeriesFiltered=function(t){return sp(this),null==this._seriesIndicesMap.get(t.componentIndex)},e.prototype.getCurrentSeriesIndices=function(){return(this._seriesIndices||[]).slice()},e.prototype.filterSeries=function(t,e){sp(this);var n=[];P(this._seriesIndices,(function(i){var r=this._componentsMap.get("series")[i];t.call(e,r,i)&&n.push(i)}),this),this._seriesIndices=n,this._seriesIndicesMap=ht(n)},e.prototype.restoreData=function(t){ap(this);var e=this._componentsMap,n=[];e.each((function(t,e){zc.hasClass(e)&&n.push(e)})),zc.topologicalTravel(n,zc.getAllClassMainTypes(),(function(n){P(e.get(n),(function(e){!e||"series"===n&&function(t,e){if(e){var n=e.seriesIndex,i=e.seriesId,r=e.seriesName;return null!=n&&t.componentIndex!==n||null!=i&&t.id!==i||null!=r&&t.name!==r}}(e,t)||e.restoreData()}))}))},e.internalField=(ap=function(t){var e=t._seriesIndices=[];P(t._componentsMap.get("series"),(function(t){t&&e.push(t.componentIndex)})),t._seriesIndicesMap=ht(e)},sp=function(t){},void(lp=function(t,e){t.option={},t.option["\0_ec_inner"]=1,t._componentsMap=ht({series:[]}),t._componentsCount=ht();var n=e.aria;X(n)&&null==n.enabled&&(n.enabled=!0),function(t,e){var n=t.color&&!t.colorLayer;P(e,(function(e,i){"colorLayer"===i&&n||zc.hasClass(i)||("object"==typeof e?t[i]=t[i]?S(t[i],e,!1):w(e):null==t[i]&&(t[i]=e))}))}(e,t._theme.option),S(e,Fc,!1),t._mergeOption(e,null)})),e}(Ih);function gp(t,e,n){if(F(e)){var i=ht();return P(e,(function(t){null!=t&&(null!=Ar(t,null)&&i.set(t,!0))})),N(n,(function(e){return e&&i.get(e[t])}))}var r=Ar(e,null);return N(n,(function(e){return e&&null!=r&&e[t]===r}))}function yp(t,e){return e.hasOwnProperty("subType")?N(t,(function(t){return t&&t.subType===e.subType})):t}function vp(t){var e=ht();return t&&P(br(t.replaceMerge),(function(t){e.set(t,!0)})),{replaceMergeMainTypeMap:e}}L(fp,cp);var mp=["getDom","getZr","getWidth","getHeight","getDevicePixelRatio","dispatchAction","isDisposed","on","off","getDataURL","getConnectedDataURL","getOption","getId","updateLabelLayout"],_p=function(t){P(mp,(function(e){this[e]=B(t[e],t)}),this)},xp={},bp=function(){function t(){this._coordinateSystems=[]}return t.prototype.create=function(t,e){var n=[];P(xp,(function(i,r){var o=i.create(t,e);n=n.concat(o||[])})),this._coordinateSystems=n},t.prototype.update=function(t,e){P(this._coordinateSystems,(function(n){n.update&&n.update(t,e)}))},t.prototype.getCoordinateSystems=function(){return this._coordinateSystems.slice()},t.register=function(t,e){xp[t]=e},t.get=function(t){return xp[t]},t}(),wp=/^(min|max)?(.+)$/,Sp=function(){function t(t){this._timelineOptions=[],this._mediaList=[],this._currentMediaIndices=[],this._api=t}return t.prototype.setOption=function(t,e,n){t&&(P(br(t.series),(function(t){t&&t.data&&Z(t.data)&&st(t.data)})),P(br(t.dataset),(function(t){t&&t.source&&Z(t.source)&&st(t.source)}))),t=w(t);var i=this._optionBackup,r=function(t,e,n){var i,r,o=[],a=t.baseOption,s=t.timeline,l=t.options,u=t.media,h=!!t.media,c=!!(l||s||a&&a.timeline);a?(r=a).timeline||(r.timeline=s):((c||h)&&(t.options=t.media=null),r=t);h&&F(u)&&P(u,(function(t){t&&t.option&&(t.query?o.push(t):i||(i=t))}));function p(t){P(e,(function(e){e(t,n)}))}return p(r),P(l,(function(t){return p(t)})),P(o,(function(t){return p(t.option)})),{baseOption:r,timelineOptions:l||[],mediaDefault:i,mediaList:o}}(t,e,!i);this._newBaseOption=r.baseOption,i?(r.timelineOptions.length&&(i.timelineOptions=r.timelineOptions),r.mediaList.length&&(i.mediaList=r.mediaList),r.mediaDefault&&(i.mediaDefault=r.mediaDefault)):this._optionBackup=r},t.prototype.mountOption=function(t){var e=this._optionBackup;return this._timelineOptions=e.timelineOptions,this._mediaList=e.mediaList,this._mediaDefault=e.mediaDefault,this._currentMediaIndices=[],w(t?e.baseOption:this._newBaseOption)},t.prototype.getTimelineOption=function(t){var e,n=this._timelineOptions;if(n.length){var i=t.getComponent("timeline");i&&(e=w(n[i.getCurrentIndex()]))}return e},t.prototype.getMediaOption=function(t){var e,n,i=this._api.getWidth(),r=this._api.getHeight(),o=this._mediaList,a=this._mediaDefault,s=[],l=[];if(!o.length&&!a)return l;for(var u=0,h=o.length;u<h;u++)Mp(o[u].query,i,r)&&s.push(u);return!s.length&&a&&(s=[-1]),s.length&&(e=s,n=this._currentMediaIndices,e.join(",")!==n.join(","))&&(l=O(s,(function(t){return w(-1===t?a.option:o[t].option)}))),this._currentMediaIndices=s,l},t}();function Mp(t,e,n){var i={width:e,height:n,aspectratio:e/n},r=!0;return P(t,(function(t,e){var n=e.match(wp);if(n&&n[1]&&n[2]){var o=n[1],a=n[2].toLowerCase();(function(t,e,n){return"min"===n?t>=e:"max"===n?t<=e:t===e})(i[a],t,o)||(r=!1)}})),r}var Ip=P,Tp=X,Cp=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function Ap(t){var e=t&&t.itemStyle;if(e)for(var n=0,i=Cp.length;n<i;n++){var r=Cp[n],o=e.normal,a=e.emphasis;o&&o[r]&&(t[r]=t[r]||{},t[r].normal?S(t[r].normal,o[r]):t[r].normal=o[r],o[r]=null),a&&a[r]&&(t[r]=t[r]||{},t[r].emphasis?S(t[r].emphasis,a[r]):t[r].emphasis=a[r],a[r]=null)}}function Dp(t,e,n){if(t&&t[e]&&(t[e].normal||t[e].emphasis)){var i=t[e].normal,r=t[e].emphasis;i&&(n?(t[e].normal=t[e].emphasis=null,T(t[e],i)):t[e]=i),r&&(t.emphasis=t.emphasis||{},t.emphasis[e]=r,r.focus&&(t.emphasis.focus=r.focus),r.blurScope&&(t.emphasis.blurScope=r.blurScope))}}function Lp(t){Dp(t,"itemStyle"),Dp(t,"lineStyle"),Dp(t,"areaStyle"),Dp(t,"label"),Dp(t,"labelLine"),Dp(t,"upperLabel"),Dp(t,"edgeLabel")}function kp(t,e){var n=Tp(t)&&t[e],i=Tp(n)&&n.textStyle;if(i){0;for(var r=0,o=Sr.length;r<o;r++){var a=Sr[r];i.hasOwnProperty(a)&&(n[a]=i[a])}}}function Pp(t){t&&(Lp(t),kp(t,"label"),t.emphasis&&kp(t.emphasis,"label"))}function Op(t){return F(t)?t:t?[t]:[]}function Rp(t){return(F(t)?t[0]:t)||{}}function Np(t,e){Ip(Op(t.series),(function(t){Tp(t)&&function(t){if(Tp(t)){Ap(t),Lp(t),kp(t,"label"),kp(t,"upperLabel"),kp(t,"edgeLabel"),t.emphasis&&(kp(t.emphasis,"label"),kp(t.emphasis,"upperLabel"),kp(t.emphasis,"edgeLabel"));var e=t.markPoint;e&&(Ap(e),Pp(e));var n=t.markLine;n&&(Ap(n),Pp(n));var i=t.markArea;i&&Pp(i);var r=t.data;if("graph"===t.type){r=r||t.nodes;var o=t.links||t.edges;if(o&&!Z(o))for(var a=0;a<o.length;a++)Pp(o[a]);P(t.categories,(function(t){Lp(t)}))}if(r&&!Z(r))for(a=0;a<r.length;a++)Pp(r[a]);if((e=t.markPoint)&&e.data){var s=e.data;for(a=0;a<s.length;a++)Pp(s[a])}if((n=t.markLine)&&n.data){var l=n.data;for(a=0;a<l.length;a++)F(l[a])?(Pp(l[a][0]),Pp(l[a][1])):Pp(l[a])}"gauge"===t.type?(kp(t,"axisLabel"),kp(t,"title"),kp(t,"detail")):"treemap"===t.type?(Dp(t.breadcrumb,"itemStyle"),P(t.levels,(function(t){Lp(t)}))):"tree"===t.type&&Lp(t.leaves)}}(t)}));var n=["xAxis","yAxis","radiusAxis","angleAxis","singleAxis","parallelAxis","radar"];e&&n.push("valueAxis","categoryAxis","logAxis","timeAxis"),Ip(n,(function(e){Ip(Op(t[e]),(function(t){t&&(kp(t,"axisLabel"),kp(t.axisPointer,"label"))}))})),Ip(Op(t.parallel),(function(t){var e=t&&t.parallelAxisDefault;kp(e,"axisLabel"),kp(e&&e.axisPointer,"label")})),Ip(Op(t.calendar),(function(t){Dp(t,"itemStyle"),kp(t,"dayLabel"),kp(t,"monthLabel"),kp(t,"yearLabel")})),Ip(Op(t.radar),(function(t){kp(t,"name"),t.name&&null==t.axisName&&(t.axisName=t.name,delete t.name),null!=t.nameGap&&null==t.axisNameGap&&(t.axisNameGap=t.nameGap,delete t.nameGap)})),Ip(Op(t.geo),(function(t){Tp(t)&&(Pp(t),Ip(Op(t.regions),(function(t){Pp(t)})))})),Ip(Op(t.timeline),(function(t){Pp(t),Dp(t,"label"),Dp(t,"itemStyle"),Dp(t,"controlStyle",!0);var e=t.data;F(e)&&P(e,(function(t){X(t)&&(Dp(t,"label"),Dp(t,"itemStyle"))}))})),Ip(Op(t.toolbox),(function(t){Dp(t,"iconStyle"),Ip(t.feature,(function(t){Dp(t,"iconStyle")}))})),kp(Rp(t.axisPointer),"label"),kp(Rp(t.tooltip).axisPointer,"label")}function Ep(t){t&&P(zp,(function(e){e[0]in t&&!(e[1]in t)&&(t[e[1]]=t[e[0]])}))}var zp=[["x","left"],["y","top"],["x2","right"],["y2","bottom"]],Bp=["grid","geo","parallel","legend","toolbox","title","visualMap","dataZoom","timeline"],Vp=[["borderRadius","barBorderRadius"],["borderColor","barBorderColor"],["borderWidth","barBorderWidth"]];function Fp(t){var e=t&&t.itemStyle;if(e)for(var n=0;n<Vp.length;n++){var i=Vp[n][1],r=Vp[n][0];null!=e[i]&&(e[r]=e[i])}}function Gp(t){t&&"edge"===t.alignTo&&null!=t.margin&&null==t.edgeDistance&&(t.edgeDistance=t.margin)}function Hp(t){t&&t.downplay&&!t.blur&&(t.blur=t.downplay)}function Wp(t,e){if(t)for(var n=0;n<t.length;n++)e(t[n]),t[n]&&Wp(t[n].children,e)}function Yp(t,e){Np(t,e),t.series=br(t.series),P(t.series,(function(t){if(X(t)){var e=t.type;if("line"===e)null!=t.clipOverflow&&(t.clip=t.clipOverflow);else if("pie"===e||"gauge"===e){if(null!=t.clockWise&&(t.clockwise=t.clockWise),Gp(t.label),(r=t.data)&&!Z(r))for(var n=0;n<r.length;n++)Gp(r[n]);null!=t.hoverOffset&&(t.emphasis=t.emphasis||{},(t.emphasis.scaleSize=null)&&(t.emphasis.scaleSize=t.hoverOffset))}else if("gauge"===e){var i=function(t,e){for(var n=e.split(","),i=t,r=0;r<n.length&&null!=(i=i&&i[n[r]]);r++);return i}(t,"pointer.color");null!=i&&function(t,e,n,i){for(var r,o=e.split(","),a=t,s=0;s<o.length-1;s++)null==a[r=o[s]]&&(a[r]={}),a=a[r];(i||null==a[o[s]])&&(a[o[s]]=n)}(t,"itemStyle.color",i)}else if("bar"===e){var r;if(Fp(t),Fp(t.backgroundStyle),Fp(t.emphasis),(r=t.data)&&!Z(r))for(n=0;n<r.length;n++)"object"==typeof r[n]&&(Fp(r[n]),Fp(r[n]&&r[n].emphasis))}else if("sunburst"===e){var o=t.highlightPolicy;o&&(t.emphasis=t.emphasis||{},t.emphasis.focus||(t.emphasis.focus=o)),Hp(t),Wp(t.data,Hp)}else"graph"===e||"sankey"===e?function(t){t&&null!=t.focusNodeAdjacency&&(t.emphasis=t.emphasis||{},null==t.emphasis.focus&&(t.emphasis.focus="adjacency"))}(t):"map"===e&&(t.mapType&&!t.map&&(t.map=t.mapType),t.mapLocation&&T(t,t.mapLocation));null!=t.hoverAnimation&&(t.emphasis=t.emphasis||{},t.emphasis&&null==t.emphasis.scale&&(t.emphasis.scale=t.hoverAnimation)),Ep(t)}})),t.dataRange&&(t.visualMap=t.dataRange),P(Bp,(function(e){var n=t[e];n&&(F(n)||(n=[n]),P(n,(function(t){Ep(t)})))}))}function Xp(t){P(t,(function(e,n){var i=[],r=[NaN,NaN],o=[e.stackResultDimension,e.stackedOverDimension],a=e.data,s=e.isStackedByIndex,l=a.map(o,(function(o,l,u){var h,c,p=a.get(e.stackedDimension,u);if(isNaN(p))return r;s?c=a.getRawIndex(u):h=a.get(e.stackedByDimension,u);for(var d=NaN,f=n-1;f>=0;f--){var g=t[f];if(s||(c=g.data.rawIndexOf(g.stackedByDimension,h)),c>=0){var y=g.data.getByRawIndex(g.stackResultDimension,c);if(p>=0&&y>0||p<=0&&y<0){p+=y,d=y;break}}}return i[0]=p,i[1]=d,i}));a.hostModel.setData(l),e.data=l}))}var Up,Zp,jp,qp,Kp,$p=function(t){this.data=t.data||(t.sourceFormat===Xc?{}:[]),this.sourceFormat=t.sourceFormat||Zc,this.seriesLayoutBy=t.seriesLayoutBy||jc,this.startIndex=t.startIndex||0,this.dimensionsDefine=t.dimensionsDefine,this.dimensionsDetectedCount=t.dimensionsDetectedCount,this.encodeDefine=t.encodeDefine,this.metaRawOption=t.metaRawOption};function Jp(t){return t instanceof $p}function Qp(t,e,n,i){n=n||nd(t);var r=e.seriesLayoutBy,o=function(t,e,n,i,r){var o,a;if(!t)return{dimensionsDefine:id(r),startIndex:a,dimensionsDetectedCount:o};if(e===Wc){var s=t;"auto"===i||null==i?rd((function(t){null!=t&&"-"!==t&&(H(t)?null==a&&(a=1):a=0)}),n,s,10):a=Y(i)?i:i?1:0,r||1!==a||(r=[],rd((function(t,e){r[e]=null!=t?t+"":""}),n,s,1/0)),o=r?r.length:n===qc?s.length:s[0]?s[0].length:null}else if(e===Yc)r||(r=function(t){var e,n=0;for(;n<t.length&&!(e=t[n++]););if(e){var i=[];return P(e,(function(t,e){i.push(e)})),i}}(t));else if(e===Xc)r||(r=[],P(t,(function(t,e){r.push(e)})));else if(e===Hc){var l=Mr(t[0]);o=F(l)&&l.length||1}return{startIndex:a,dimensionsDefine:id(r),dimensionsDetectedCount:o}}(t,n,r,e.sourceHeader,e.dimensions);return new $p({data:t,sourceFormat:n,seriesLayoutBy:r,dimensionsDefine:o.dimensionsDefine,startIndex:o.startIndex,dimensionsDetectedCount:o.dimensionsDetectedCount,encodeDefine:ed(i),metaRawOption:w(e)})}function td(t){return new $p({data:t,sourceFormat:Z(t)?Uc:Hc})}function ed(t){return t?ht(t):null}function nd(t){var e=Zc;if(Z(t))e=Uc;else if(F(t)){0===t.length&&(e=Wc);for(var n=0,i=t.length;n<i;n++){var r=t[n];if(null!=r){if(F(r)){e=Wc;break}if(X(r)){e=Yc;break}}}}else if(X(t))for(var o in t)if(dt(t,o)&&k(t[o])){e=Xc;break}return e}function id(t){if(t){var e=ht();return O(t,(function(t,n){var i={name:(t=X(t)?t:{name:t}).name,displayName:t.displayName,type:t.type};if(null==i.name)return i;i.name+="",null==i.displayName&&(i.displayName=i.name);var r=e.get(i.name);return r?i.name+="-"+r.count++:e.set(i.name,{count:1}),i}))}}function rd(t,e,n,i){if(e===qc)for(var r=0;r<n.length&&r<i;r++)t(n[r]?n[r][0]:null,r);else{var o=n[0]||[];for(r=0;r<o.length&&r<i;r++)t(o[r],r)}}var od=function(){function t(t,e){var n=Jp(t)?t:td(t);this._source=n;var i=this._data=n.data;n.sourceFormat===Uc&&(this._offset=0,this._dimSize=e,this._data=i),Kp(this,i,n)}return t.prototype.getSource=function(){return this._source},t.prototype.count=function(){return 0},t.prototype.getItem=function(t,e){},t.prototype.appendData=function(t){},t.prototype.clean=function(){},t.protoInitialize=function(){var e=t.prototype;e.pure=!1,e.persistent=!0}(),t.internalField=function(){var t;Kp=function(t,r,o){var a=o.sourceFormat,s=o.seriesLayoutBy,l=o.startIndex,u=o.dimensionsDefine,h=qp[gd(a,s)];if(I(t,h),a===Uc)t.getItem=e,t.count=i,t.fillStorage=n;else{var c=ld(a,s);t.getItem=B(c,null,r,l,u);var p=cd(a,s);t.count=B(p,null,r,l,u)}};var e=function(t,e){t-=this._offset,e=e||[];for(var n=this._data,i=this._dimSize,r=i*t,o=0;o<i;o++)e[o]=n[r+o];return e},n=function(t,e,n,i){for(var r=this._data,o=this._dimSize,a=0;a<o;a++){for(var s=i[a],l=null==s[0]?1/0:s[0],u=null==s[1]?-1/0:s[1],h=e-t,c=n[a],p=0;p<h;p++){var d=r[p*o+a];c[t+p]=d,d<l&&(l=d),d>u&&(u=d)}s[0]=l,s[1]=u}},i=function(){return this._data?this._data.length/this._dimSize:0};function r(t){for(var e=0;e<t.length;e++)this._data.push(t[e])}(t={}).arrayRows_column={pure:!0,appendData:r},t.arrayRows_row={pure:!0,appendData:function(){throw new Error('Do not support appendData when set seriesLayoutBy: "row".')}},t.objectRows={pure:!0,appendData:r},t.keyedColumns={pure:!0,appendData:function(t){var e=this._data;P(t,(function(t,n){for(var i=e[n]||(e[n]=[]),r=0;r<(t||[]).length;r++)i.push(t[r])}))}},t.original={appendData:r},t.typedArray={persistent:!1,pure:!0,appendData:function(t){this._data=t},clean:function(){this._offset+=this.count(),this._data=null}},qp=t}(),t}(),ad=function(t,e,n,i){return t[i]},sd=((Up={}).arrayRows_column=function(t,e,n,i){return t[i+e]},Up.arrayRows_row=function(t,e,n,i){i+=e;for(var r=[],o=t,a=0;a<o.length;a++){var s=o[a];r.push(s?s[i]:null)}return r},Up.objectRows=ad,Up.keyedColumns=function(t,e,n,i){for(var r=[],o=0;o<n.length;o++){var a=n[o].name;0;var s=t[a];r.push(s?s[i]:null)}return r},Up.original=ad,Up);function ld(t,e){var n=sd[gd(t,e)];return n}var ud=function(t,e,n){return t.length},hd=((Zp={}).arrayRows_column=function(t,e,n){return Math.max(0,t.length-e)},Zp.arrayRows_row=function(t,e,n){var i=t[0];return i?Math.max(0,i.length-e):0},Zp.objectRows=ud,Zp.keyedColumns=function(t,e,n){var i=n[0].name;var r=t[i];return r?r.length:0},Zp.original=ud,Zp);function cd(t,e){var n=hd[gd(t,e)];return n}var pd=function(t,e,n){return null!=e?t[e]:t},dd=((jp={}).arrayRows=pd,jp.objectRows=function(t,e,n){return null!=e?t[n]:t},jp.keyedColumns=pd,jp.original=function(t,e,n){var i=Mr(t);return null!=e&&i instanceof Array?i[e]:i},jp.typedArray=pd,jp);function fd(t){var e=dd[t];return e}function gd(t,e){return t===Wc?t+"_"+e:t}function yd(t,e,n){if(t){var i=t.getRawDataItem(e);if(null!=i){var r,o,a=t.getProvider().getSource().sourceFormat,s=t.getDimensionInfo(n);return s&&(r=s.name,o=s.index),fd(a)(i,o,r)}}}var vd=/\{@(.+?)\}/g,md=function(){function t(){}return t.prototype.getDataParams=function(t,e){var n=this.getData(e),i=this.getRawValue(t,e),r=n.getRawIndex(t),o=n.getName(t),a=n.getRawDataItem(t),s=n.getItemVisual(t,"style"),l=s&&s[n.getItemVisual(t,"drawType")||"fill"],u=s&&s.stroke,h=this.mainType,c="series"===h,p=n.userOutput;return{componentType:h,componentSubType:this.subType,componentIndex:this.componentIndex,seriesType:c?this.subType:null,seriesIndex:this.seriesIndex,seriesId:c?this.id:null,seriesName:c?this.name:null,name:o,dataIndex:r,data:a,dataType:e,value:i,color:l,borderColor:u,dimensionNames:p?p.dimensionNames:null,encode:p?p.encode:null,$vars:["seriesName","name","value"]}},t.prototype.getFormattedLabel=function(t,e,n,i,r,o){e=e||"normal";var a=this.getData(n),s=this.getDataParams(t,n);(o&&(s.value=o.interpolatedValue),null!=i&&F(s.value)&&(s.value=s.value[i]),r)||(r=a.getItemModel(t).get("normal"===e?["label","formatter"]:[e,"label","formatter"]));return"function"==typeof r?(s.status=e,s.dimensionIndex=i,r(s)):"string"==typeof r?bc(r,s).replace(vd,(function(e,n){var i=n.length,r="["===n.charAt(0)&&"]"===n.charAt(i-1)?+n.slice(1,i-1):n,s=yd(a,t,r);if(o&&F(o.interpolatedValue)){var l=a.getDimensionInfo(r);l&&(s=o.interpolatedValue[l.index])}return null!=s?s+"":""})):void 0},t.prototype.getRawValue=function(t,e){return yd(this.getData(e),t)},t.prototype.formatTooltip=function(t,e,n){},t}();function _d(t){var e,n;return X(t)?t.type&&(n=t):e=t,{markupText:e,markupFragment:n}}function xd(t){return new bd(t)}var bd=function(){function t(t){t=t||{},this._reset=t.reset,this._plan=t.plan,this._count=t.count,this._onDirty=t.onDirty,this._dirty=!0}return t.prototype.perform=function(t){var e,n=this._upstream,i=t&&t.skip;if(this._dirty&&n){var r=this.context;r.data=r.outputData=n.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this),this._plan&&!i&&(e=this._plan(this.context));var o,a=h(this._modBy),s=this._modDataCount||0,l=h(t&&t.modBy),u=t&&t.modDataCount||0;function h(t){return!(t>=1)&&(t=1),t}a===l&&s===u||(e="reset"),(this._dirty||"reset"===e)&&(this._dirty=!1,o=this._doReset(i)),this._modBy=l,this._modDataCount=u;var c=t&&t.step;if(this._dueEnd=n?n._outputDueEnd:this._count?this._count(this.context):1/0,this._progress){var p=this._dueIndex,d=Math.min(null!=c?this._dueIndex+c:1/0,this._dueEnd);if(!i&&(o||p<d)){var f=this._progress;if(F(f))for(var g=0;g<f.length;g++)this._doProgress(f[g],p,d,l,u);else this._doProgress(f,p,d,l,u)}this._dueIndex=d;var y=null!=this._settedOutputEnd?this._settedOutputEnd:d;0,this._outputDueEnd=y}else this._dueIndex=this._outputDueEnd=null!=this._settedOutputEnd?this._settedOutputEnd:this._dueEnd;return this.unfinished()},t.prototype.dirty=function(){this._dirty=!0,this._onDirty&&this._onDirty(this.context)},t.prototype._doProgress=function(t,e,n,i,r){wd.reset(e,n,i,r),this._callingProgress=t,this._callingProgress({start:e,end:n,count:n-e,next:wd.next},this.context)},t.prototype._doReset=function(t){var e,n;this._dueIndex=this._outputDueEnd=this._dueEnd=0,this._settedOutputEnd=null,!t&&this._reset&&((e=this._reset(this.context))&&e.progress&&(n=e.forceFirstProgress,e=e.progress),F(e)&&!e.length&&(e=null)),this._progress=e,this._modBy=this._modDataCount=null;var i=this._downstream;return i&&i.dirty(),n},t.prototype.unfinished=function(){return this._progress&&this._dueIndex<this._dueEnd},t.prototype.pipe=function(t){(this._downstream!==t||this._dirty)&&(this._downstream=t,t._upstream=this,t.dirty())},t.prototype.dispose=function(){this._disposed||(this._upstream&&(this._upstream._downstream=null),this._downstream&&(this._downstream._upstream=null),this._dirty=!1,this._disposed=!0)},t.prototype.getUpstream=function(){return this._upstream},t.prototype.getDownstream=function(){return this._downstream},t.prototype.setOutputEnd=function(t){this._outputDueEnd=this._settedOutputEnd=t},t}(),wd=function(){var t,e,n,i,r,o={reset:function(l,u,h,c){e=l,t=u,n=h,i=c,r=Math.ceil(i/n),o.next=n>1&&i>0?s:a}};return o;function a(){return e<t?e++:null}function s(){var o=e%r*n+Math.ceil(e/r),a=e>=t?null:o<i?o:e;return e++,a}}();function Sd(t,e){var n=e&&e.type;if("ordinal"===n){var i=e&&e.ordinalMeta;return i?i.parseAndCollect(t):t}return"time"===n&&"number"!=typeof t&&null!=t&&"-"!==t&&(t=+ar(t)),null==t||""===t?NaN:+t}var Md=ht({number:function(t){return parseFloat(t)},time:function(t){return+ar(t)},trim:function(t){return"string"==typeof t?ot(t):t}});function Id(t){return Md.get(t)}var Td={lt:function(t,e){return t<e},lte:function(t,e){return t<=e},gt:function(t,e){return t>e},gte:function(t,e){return t>=e}},Cd=function(){function t(t,e){if("number"!=typeof e){var n="";0,mr(n)}this._opFn=Td[t],this._rvalFloat=pr(e)}return t.prototype.evaluate=function(t){return"number"==typeof t?this._opFn(t,this._rvalFloat):this._opFn(pr(t),this._rvalFloat)},t}(),Ad=function(){function t(t,e){var n="desc"===t;this._resultLT=n?1:-1,null==e&&(e=n?"min":"max"),this._incomparable="min"===e?-1/0:1/0}return t.prototype.evaluate=function(t,e){var n=typeof t,i=typeof e,r="number"===n?t:pr(t),o="number"===i?e:pr(e),a=isNaN(r),s=isNaN(o);if(a&&(r=this._incomparable),s&&(o=this._incomparable),a&&s){var l="string"===n,u="string"===i;l&&(r=u?t:0),u&&(o=l?e:0)}return r<o?this._resultLT:r>o?-this._resultLT:0},t}(),Dd=function(){function t(t,e){this._rval=e,this._isEQ=t,this._rvalTypeof=typeof e,this._rvalFloat=pr(e)}return t.prototype.evaluate=function(t){var e=t===this._rval;if(!e){var n=typeof t;n===this._rvalTypeof||"number"!==n&&"number"!==this._rvalTypeof||(e=pr(t)===this._rvalFloat)}return this._isEQ?e:!e},t}();function Ld(t,e){return"eq"===t||"ne"===t?new Dd("eq"===t,e):dt(Td,t)?new Cd(t,e):null}var kd=function(){function t(){}return t.prototype.getRawData=function(){throw new Error("not supported")},t.prototype.getRawDataItem=function(t){throw new Error("not supported")},t.prototype.cloneRawData=function(){},t.prototype.getDimensionInfo=function(t){},t.prototype.cloneAllDimensionInfo=function(){},t.prototype.count=function(){},t.prototype.retrieveValue=function(t,e){},t.prototype.retrieveValueFromItem=function(t,e){},t.prototype.convertValue=function(t,e){return Sd(t,e)},t}();function Pd(t){var e=t.sourceFormat;if(!Bd(e)){var n="";0,mr(n)}return t.data}function Od(t){var e=t.sourceFormat,n=t.data;if(!Bd(e)){var i="";0,mr(i)}if(e===Wc){for(var r=[],o=0,a=n.length;o<a;o++)r.push(n[o].slice());return r}if(e===Yc){for(r=[],o=0,a=n.length;o<a;o++)r.push(I({},n[o]));return r}}function Rd(t,e,n){if(null!=n)return"number"==typeof n||!isNaN(n)&&!dt(e,n)?t[n]:dt(e,n)?e[n]:void 0}function Nd(t){return w(t)}var Ed=ht();function zd(t,e,n,i){var r="";e.length||mr(r),X(t)||mr(r);var o=t.type,a=Ed.get(o);a||mr(r);var s=O(e,(function(t){return function(t,e){var n=new kd,i=t.data,r=n.sourceFormat=t.sourceFormat,o=t.startIndex,a="";t.seriesLayoutBy!==jc&&mr(a);var s=[],l={},u=t.dimensionsDefine;if(u)P(u,(function(t,e){var n=t.name,i={index:e,name:n,displayName:t.displayName};if(s.push(i),null!=n){var r="";dt(l,n)&&mr(r),l[n]=i}}));else for(var h=0;h<t.dimensionsDetectedCount;h++)s.push({index:h});var c=ld(r,jc);e.__isBuiltIn&&(n.getRawDataItem=function(t){return c(i,o,s,t)},n.getRawData=B(Pd,null,t)),n.cloneRawData=B(Od,null,t);var p=cd(r,jc);n.count=B(p,null,i,o,s);var d=fd(r);n.retrieveValue=function(t,e){var n=c(i,o,s,t);return f(n,e)};var f=n.retrieveValueFromItem=function(t,e){if(null!=t){var n=s[e];return n?d(t,e,n.name):void 0}};return n.getDimensionInfo=B(Rd,null,s,l),n.cloneAllDimensionInfo=B(Nd,null,s),n}(t,a)})),l=br(a.transform({upstream:s[0],upstreamList:s,config:w(t.config)}));return O(l,(function(t,n){var i,r="";X(t)||mr(r),t.data||mr(r),Bd(nd(t.data))||mr(r);var o=e[0];if(o&&0===n&&!t.dimensions){var a=o.startIndex;a&&(t.data=o.data.slice(0,a).concat(t.data)),i={seriesLayoutBy:jc,sourceHeader:a,dimensions:o.metaRawOption.dimensions}}else i={seriesLayoutBy:jc,sourceHeader:0,dimensions:t.dimensions};return Qp(t.data,i,null,null)}))}function Bd(t){return t===Wc||t===Yc}var Vd=function(){function t(t){this._sourceList=[],this._upstreamSignList=[],this._versionSignBase=0,this._sourceHost=t}return t.prototype.dirty=function(){this._setLocalSource([],[])},t.prototype._setLocalSource=function(t,e){this._sourceList=t,this._upstreamSignList=e,this._versionSignBase++,this._versionSignBase>9e10&&(this._versionSignBase=0)},t.prototype._getVersionSign=function(){return this._sourceHost.uid+"_"+this._versionSignBase},t.prototype.prepareSource=function(){this._isDirty()&&this._createSource()},t.prototype._createSource=function(){this._setLocalSource([],[]);var t,e,n=this._sourceHost,i=this._getUpstreamSourceManagers(),r=!!i.length;if(Gd(n)){var o=n,a=void 0,s=void 0,l=void 0;if(r){var u=i[0];u.prepareSource(),a=(l=u.getSource()).data,s=l.sourceFormat,e=[u._getVersionSign()]}else s=Z(a=o.get("data",!0))?Uc:Hc,e=[];var h=this._getSourceMetaRawOption(),c=l?l.metaRawOption:null;t=[Qp(a,{seriesLayoutBy:tt(h.seriesLayoutBy,c?c.seriesLayoutBy:null),sourceHeader:tt(h.sourceHeader,c?c.sourceHeader:null),dimensions:tt(h.dimensions,c?c.dimensions:null)},s,o.get("encode",!0))]}else{var p=n;if(r){var d=this._applyTransform(i);t=d.sourceList,e=d.upstreamSignList}else{t=[Qp(p.get("source",!0),this._getSourceMetaRawOption(),null,null)],e=[]}}this._setLocalSource(t,e)},t.prototype._applyTransform=function(t){var e,n=this._sourceHost,i=n.get("transform",!0),r=n.get("fromTransformResult",!0);if(null!=r){var o="";1!==t.length&&Hd(o)}var a,s=[],l=[];return P(t,(function(t){t.prepareSource();var e=t.getSource(r||0),n="";null==r||e||Hd(n),s.push(e),l.push(t._getVersionSign())})),i?e=function(t,e,n){var i=br(t),r=i.length,o="";r||mr(o);for(var a=0,s=r;a<s;a++)e=zd(i[a],e),a!==s-1&&(e.length=Math.max(e.length,1));return e}(i,s,n.componentIndex):null!=r&&(e=[(a=s[0],new $p({data:a.data,sourceFormat:a.sourceFormat,seriesLayoutBy:a.seriesLayoutBy,dimensionsDefine:w(a.dimensionsDefine),startIndex:a.startIndex,dimensionsDetectedCount:a.dimensionsDetectedCount,encodeDefine:ed(a.encodeDefine)}))]),{sourceList:e,upstreamSignList:l}},t.prototype._isDirty=function(){if(!this._sourceList.length)return!0;for(var t=this._getUpstreamSourceManagers(),e=0;e<t.length;e++){var n=t[e];if(n._isDirty()||this._upstreamSignList[e]!==n._getVersionSign())return!0}},t.prototype.getSource=function(t){return this._sourceList[t||0]},t.prototype._getUpstreamSourceManagers=function(){var t=this._sourceHost;if(Gd(t)){var e=np(t);return e?[e.getSourceManager()]:[]}return O(function(t){return t.get("transform",!0)||t.get("fromTransformResult",!0)?zr(t.ecModel,"dataset",{index:t.get("fromDatasetIndex",!0),id:t.get("fromDatasetId",!0)},Nr).models:[]}(t),(function(t){return t.getSourceManager()}))},t.prototype._getSourceMetaRawOption=function(){var t,e,n,i=this._sourceHost;if(Gd(i))t=i.get("seriesLayoutBy",!0),e=i.get("sourceHeader",!0),n=i.get("dimensions",!0);else if(!this._getUpstreamSourceManagers().length){var r=i;t=r.get("seriesLayoutBy",!0),e=r.get("sourceHeader",!0),n=r.get("dimensions",!0)}return{seriesLayoutBy:t,sourceHeader:e,dimensions:n}},t}();function Fd(t){t.option.transform&&st(t.option.transform)}function Gd(t){return"series"===t.mainType}function Hd(t){throw new Error(t)}function Wd(t,e){var n=t.color||"#6e7079",i=t.fontSize||12,r=t.fontWeight||"400",o=t.color||"#464646",a=t.fontSize||14,s=t.fontWeight||"900";return"html"===e?{nameStyle:"font-size:"+i+"px;color:"+n+";font-weight:"+r,valueStyle:"font-size:"+a+"px;color:"+o+";font-weight:"+s}:{nameStyle:{fontSize:i,fill:n,fontWeight:r},valueStyle:{fontSize:a,fill:o,fontWeight:s}}}var Yd=[0,10,20,30],Xd=["","\n","\n\n","\n\n\n"];function Ud(t,e){return e.type=t,e}function Zd(t){return dt(jd,t.type)&&jd[t.type]}var jd={section:{planLayout:function(t){var e=t.blocks.length,n=e>1||e>0&&!t.noHeader,i=0;P(t.blocks,(function(t){Zd(t).planLayout(t);var e=t.__gapLevelBetweenSubBlocks;e>=i&&(i=e+(!n||e&&("section"!==t.type||t.noHeader)?0:1))})),t.__gapLevelBetweenSubBlocks=i},build:function(t,e,n,i){var r=e.noHeader,o=Kd(e),a=function(t,e,n,i){var r=[],o=e.blocks||[];rt(!o||F(o)),o=o||[];var a=t.orderMode;if(e.sortBlocks&&a){o=o.slice();var s={valueAsc:"asc",valueDesc:"desc"};if(dt(s,a)){var l=new Ad(s[a],null);o.sort((function(t,e){return l.evaluate(t.sortParam,e.sortParam)}))}else"seriesDesc"===a&&o.reverse()}var u=Kd(e);if(P(o,(function(e,n){var o=Zd(e).build(t,e,n>0?u.html:0,i);null!=o&&r.push(o)})),!r.length)return;return"richText"===t.renderMode?r.join(u.richText):$d(r.join(""),n)}(t,e,r?n:o.html,i);if(r)return a;var s=mc(e.header,"ordinal",t.useUTC),l=Wd(i,t.renderMode).nameStyle;return"richText"===t.renderMode?Jd(t,s,l)+o.richText+a:$d('<div style="'+l+";"+'line-height:1;">'+vc(s)+"</div>"+a,n)}},nameValue:{planLayout:function(t){t.__gapLevelBetweenSubBlocks=0},build:function(t,e,n,i){var r=t.renderMode,o=e.noName,a=e.noValue,s=!e.markerType,l=e.name,u=e.value,h=t.useUTC;if(!o||!a){var c=s?"":t.markupStyleCreator.makeTooltipMarker(e.markerType,e.markerColor||"#333",r),p=o?"":mc(l,"ordinal",h),d=e.valueType,f=a?[]:F(u)?O(u,(function(t,e){return mc(t,F(d)?d[e]:d,h)})):[mc(u,F(d)?d[0]:d,h)],g=!s||!o,y=!s&&o,v=Wd(i,r),m=v.nameStyle,_=v.valueStyle;return"richText"===r?(s?"":c)+(o?"":Jd(t,p,m))+(a?"":function(t,e,n,i,r){var o=[r],a=i?10:20;return n&&o.push({padding:[0,0,0,a],align:"right"}),t.markupStyleCreator.wrapRichTextStyle(e.join("  "),o)}(t,f,g,y,_)):$d((s?"":c)+(o?"":function(t,e,n){return'<span style="'+n+";"+(e?"margin-left:2px":"")+'">'+vc(t)+"</span>"}(p,!s,m))+(a?"":function(t,e,n,i){var r=n?"10px":"20px";return'<span style="'+(e?"float:right;margin-left:"+r:"")+";"+i+'">'+O(t,(function(t){return vc(t)})).join("&nbsp;&nbsp;")+"</span>"}(f,g,y,_)),n)}}}};function qd(t,e,n,i,r,o){if(t){var a=Zd(t);a.planLayout(t);var s={useUTC:r,renderMode:n,orderMode:i,markupStyleCreator:e};return a.build(s,t,0,o)}}function Kd(t){var e=t.__gapLevelBetweenSubBlocks;return{html:Yd[e],richText:Xd[e]}}function $d(t,e){return'<div style="'+("margin: "+e+"px 0 0")+";"+'line-height:1;">'+t+'<div style="clear:both"></div></div>'}function Jd(t,e,n){return t.markupStyleCreator.wrapRichTextStyle(e,n)}function Qd(t,e){return Sc(t.getData().getItemVisual(e,"style")[t.visualDrawType])}function tf(t,e){var n=t.get("padding");return null!=n?n:"richText"===e?[8,10]:10}var ef=function(){function t(){this.richTextStyles={},this._nextStyleNameId=fr()}return t.prototype._generateStyleName=function(){return"__EC_aUTo_"+this._nextStyleNameId++},t.prototype.makeTooltipMarker=function(t,e,n){var i="richText"===n?this._generateStyleName():null,r=wc({color:e,type:t,renderMode:n,markerId:i});return H(r)?r:(this.richTextStyles[i]=r.style,r.content)},t.prototype.wrapRichTextStyle=function(t,e){var n={};F(e)?P(e,(function(t){return I(n,t)})):I(n,e);var i=this._generateStyleName();return this.richTextStyles[i]=n,"{"+i+"|"+t+"}"},t}();function nf(t){var e,n,i,r,o=t.series,a=t.dataIndex,s=t.multipleSeries,l=o.getData(),u=l.mapDimensionsAll("defaultedTooltip"),h=u.length,c=o.getRawValue(a),p=F(c),d=Qd(o,a);if(h>1||p&&!h){var f=function(t,e,n,i,r){var o=e.getData(),a=R(t,(function(t,e,n){var i=o.getDimensionInfo(n);return t||i&&!1!==i.tooltip&&null!=i.displayName}),!1),s=[],l=[],u=[];function h(t,e){var n=o.getDimensionInfo(e);n&&!1!==n.otherDims.tooltip&&(a?u.push(Ud("nameValue",{markerType:"subItem",markerColor:r,name:n.displayName,value:t,valueType:n.type})):(s.push(t),l.push(n.type)))}return i.length?P(i,(function(t){h(yd(o,n,t),t)})):P(t,h),{inlineValues:s,inlineValueTypes:l,blocks:u}}(c,o,a,u,d);e=f.inlineValues,n=f.inlineValueTypes,i=f.blocks,r=f.inlineValues[0]}else if(h){var g=l.getDimensionInfo(u[0]);r=e=yd(l,a,u[0]),n=g.type}else r=e=p?c[0]:c;var y=Dr(o),v=y&&o.name||"",m=l.getName(a),_=s?v:m;return Ud("section",{header:v,noHeader:s||!y,sortParam:r,blocks:[Ud("nameValue",{markerType:"item",markerColor:d,name:_,noName:!ot(_),value:e,valueType:n})].concat(i||[])})}var rf=Pr();function of(t,e){return t.getName(e)||t.getId(e)}var af=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._selectedDataIndicesMap={},e}return n(e,t),e.prototype.init=function(t,e,n){this.seriesIndex=this.componentIndex,this.dataTask=xd({count:lf,reset:uf}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(t,n),(rf(this).sourceManager=new Vd(this)).prepareSource();var i=this.getInitialData(t,n);cf(i,this),this.dataTask.context.data=i,rf(this).dataBeforeProcessed=i,sf(this),this._initSelectedMapFromData(i)},e.prototype.mergeDefaultAndTheme=function(t,e){var n=Pc(this),i=n?Rc(t):{},r=this.subType;zc.hasClass(r)&&(r+="Series"),S(t,e.getTheme().get(this.subType)),S(t,this.getDefaultOption()),wr(t,"label",["show"]),this.fillDataTextStyle(t.data),n&&Oc(t,i,n)},e.prototype.mergeOption=function(t,e){t=S(this.option,t,!0),this.fillDataTextStyle(t.data);var n=Pc(this);n&&Oc(this.option,t,n);var i=rf(this).sourceManager;i.dirty(),i.prepareSource();var r=this.getInitialData(t,e);cf(r,this),this.dataTask.dirty(),this.dataTask.context.data=r,rf(this).dataBeforeProcessed=r,sf(this),this._initSelectedMapFromData(r)},e.prototype.fillDataTextStyle=function(t){if(t&&!Z(t))for(var e=["show"],n=0;n<t.length;n++)t[n]&&t[n].label&&wr(t[n],"label",e)},e.prototype.getInitialData=function(t,e){},e.prototype.appendData=function(t){this.getRawData().appendData(t.data)},e.prototype.getData=function(t){var e=df(this);if(e){var n=e.context.data;return null==t?n:n.getLinkedData(t)}return rf(this).data},e.prototype.getAllData=function(){var t=this.getData();return t&&t.getLinkedDataAll?t.getLinkedDataAll():[{data:t}]},e.prototype.setData=function(t){var e=df(this);if(e){var n=e.context;n.outputData=t,e!==this.dataTask&&(n.data=t)}rf(this).data=t},e.prototype.getSource=function(){return rf(this).sourceManager.getSource()},e.prototype.getRawData=function(){return rf(this).dataBeforeProcessed},e.prototype.getBaseAxis=function(){var t=this.coordinateSystem;return t&&t.getBaseAxis&&t.getBaseAxis()},e.prototype.formatTooltip=function(t,e,n){return nf({series:this,dataIndex:t,multipleSeries:e})},e.prototype.isAnimationEnabled=function(){if(a.node)return!1;var t=this.getShallow("animation");return t&&this.getData().count()>this.getShallow("animationThreshold")&&(t=!1),!!t},e.prototype.restoreData=function(){this.dataTask.dirty()},e.prototype.getColorFromPalette=function(t,e,n){var i=this.ecModel,r=cp.prototype.getColorFromPalette.call(this,t,e,n);return r||(r=i.getColorFromPalette(t,e,n)),r},e.prototype.coordDimToDataDim=function(t){return this.getRawData().mapDimensionsAll(t)},e.prototype.getProgressive=function(){return this.get("progressive")},e.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},e.prototype.select=function(t,e){this._innerSelect(this.getData(e),t)},e.prototype.unselect=function(t,e){var n=this.option.selectedMap;if(n)for(var i=this.getData(e),r=0;r<t.length;r++){var o=of(i,t[r]);n[o]=!1,this._selectedDataIndicesMap[o]=-1}},e.prototype.toggleSelect=function(t,e){for(var n=[],i=0;i<t.length;i++)n[0]=t[i],this.isSelected(t[i],e)?this.unselect(n,e):this.select(n,e)},e.prototype.getSelectedDataIndices=function(){for(var t=this._selectedDataIndicesMap,e=z(t),n=[],i=0;i<e.length;i++){var r=t[e[i]];r>=0&&n.push(r)}return n},e.prototype.isSelected=function(t,e){var n=this.option.selectedMap;return n&&n[of(this.getData(e),t)]||!1},e.prototype._innerSelect=function(t,e){var n,i,r=this.option.selectedMode,o=e.length;if(r&&o)if("multiple"===r)for(var a=this.option.selectedMap||(this.option.selectedMap={}),s=0;s<o;s++){var l=e[s];a[h=of(t,l)]=!0,this._selectedDataIndicesMap[h]=t.getRawIndex(l)}else if("single"===r||!0===r){var u=e[o-1],h=of(t,u);this.option.selectedMap=((n={})[h]=!0,n),this._selectedDataIndicesMap=((i={})[h]=t.getRawIndex(u),i)}},e.prototype._initSelectedMapFromData=function(t){if(!this.option.selectedMap){var e=[];t.hasItemOption&&t.each((function(n){var i=t.getRawDataItem(n);"object"==typeof i&&i.selected&&e.push(n)})),e.length>0&&this._innerSelect(t,e)}},e.registerClass=function(t){return zc.registerClass(t)},e.protoInitialize=function(){var t=e.prototype;t.type="series.__base__",t.seriesIndex=0,t.useColorPaletteOnData=!1,t.ignoreStyleOnData=!1,t.hasSymbolVisual=!1,t.defaultSymbol="circle",t.visualStyleAccessPath="itemStyle",t.visualDrawType="fill"}(),e}(zc);function sf(t){var e=t.name;Dr(t)||(t.name=function(t){var e=t.getRawData(),n=e.mapDimensionsAll("seriesName"),i=[];return P(n,(function(t){var n=e.getDimensionInfo(t);n.displayName&&i.push(n.displayName)})),i.join(" ")}(t)||e)}function lf(t){return t.model.getRawData().count()}function uf(t){var e=t.model;return e.setData(e.getRawData().cloneShallow()),hf}function hf(t,e){e.outputData&&t.end>e.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function cf(t,e){P(r(t.CHANGABLE_METHODS,t.DOWNSAMPLE_METHODS),(function(n){t.wrapMethod(n,V(pf,e))}))}function pf(t,e){var n=df(t);return n&&n.setOutputEnd((e||this).count()),e}function df(t){var e=(t.ecModel||{}).scheduler,n=e&&e.getPipeline(t.uid);if(n){var i=n.currentTask;if(i){var r=i.agentStubMap;r&&(i=r.get(t.uid))}return i}}L(af,md),L(af,cp),Ur(af,zc);var ff=function(){function t(){this.group=new Vi,this.uid=Ch("viewComponent")}return t.prototype.init=function(t,e){},t.prototype.render=function(t,e,n,i){},t.prototype.dispose=function(t,e){},t.prototype.updateView=function(t,e,n,i){},t.prototype.updateLayout=function(t,e,n,i){},t.prototype.updateVisual=function(t,e,n,i){},t.prototype.blurSeries=function(t,e){},t}();function gf(){var t=Pr();return function(e){var n=t(e),i=e.pipelineContext,r=!!n.large,o=!!n.progressiveRender,a=n.large=!(!i||!i.large),s=n.progressiveRender=!(!i||!i.progressiveRender);return!(r===a&&o===s)&&"reset"}}Yr(ff),Kr(ff);var yf=Pr(),vf=gf(),mf=function(){function t(){this.group=new Vi,this.uid=Ch("viewChart"),this.renderTask=xd({plan:bf,reset:wf}),this.renderTask.context={view:this}}return t.prototype.init=function(t,e){},t.prototype.render=function(t,e,n,i){},t.prototype.highlight=function(t,e,n,i){xf(t.getData(),i,"emphasis")},t.prototype.downplay=function(t,e,n,i){xf(t.getData(),i,"normal")},t.prototype.remove=function(t,e){this.group.removeAll()},t.prototype.dispose=function(t,e){},t.prototype.updateView=function(t,e,n,i){this.render(t,e,n,i)},t.prototype.updateLayout=function(t,e,n,i){this.render(t,e,n,i)},t.prototype.updateVisual=function(t,e,n,i){this.render(t,e,n,i)},t.markUpdateMethod=function(t,e){yf(t).updateMethod=e},t.protoInitialize=void(t.prototype.type="chart"),t}();function _f(t,e,n){t&&("emphasis"===e?Ys:Xs)(t,n)}function xf(t,e,n){var i=kr(t,e),r=e&&null!=e.highlightKey?function(t){var e=xs[t];return null==e&&_s<=32&&(e=xs[t]=_s++),e}(e.highlightKey):null;null!=i?P(br(i),(function(e){_f(t.getItemGraphicEl(e),n,r)})):t.eachItemGraphicEl((function(t){_f(t,n,r)}))}function bf(t){return vf(t.model)}function wf(t){var e=t.model,n=t.ecModel,i=t.api,r=t.payload,o=e.pipelineContext.progressiveRender,a=t.view,s=r&&yf(r).updateMethod,l=o?"incrementalPrepareRender":s&&a[s]?s:"render";return"render"!==l&&a[l](e,n,i,r),Sf[l]}Yr(mf),Kr(mf);var Sf={incrementalPrepareRender:{progress:function(t,e){e.view.incrementalRender(t,e.model,e.ecModel,e.api,e.payload)}},render:{forceFirstProgress:!0,progress:function(t,e){e.view.render(e.model,e.ecModel,e.api,e.payload)}}},Mf="\0__throttleOriginMethod",If="\0__throttleRate",Tf="\0__throttleType";function Cf(t,e,n){var i,r,o,a,s,l=0,u=0,h=null;function c(){u=(new Date).getTime(),h=null,t.apply(o,a||[])}e=e||0;var p=function(){for(var t=[],p=0;p<arguments.length;p++)t[p]=arguments[p];i=(new Date).getTime(),o=this,a=t;var d=s||e,f=s||n;s=null,r=i-(f?l:u)-d,clearTimeout(h),f?h=setTimeout(c,d):r>=0?c():h=setTimeout(c,-r),l=i};return p.clear=function(){h&&(clearTimeout(h),h=null)},p.debounceNextCall=function(t){s=t},p}function Af(t,e,n,i){var r=t[e];if(r){var o=r[Mf]||r,a=r[Tf];if(r[If]!==n||a!==i){if(null==n||!i)return t[e]=o;(r=t[e]=Cf(o,n,"debounce"===i))[Mf]=o,r[Tf]=i,r[If]=n}return r}}var Df=Pr(),Lf={itemStyle:$r(wh,!0),lineStyle:$r(_h,!0)},kf={lineStyle:"stroke",itemStyle:"fill"};function Pf(t,e){var n=t.visualStyleMapper||Lf[e];return n||(console.warn("Unkown style type '"+e+"'."),Lf.itemStyle)}function Of(t,e){var n=t.visualDrawType||kf[e];return n||(console.warn("Unkown style type '"+e+"'."),"fill")}var Rf={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var n=t.getData(),i=t.visualStyleAccessPath||"itemStyle",r=t.getModel(i),o=Pf(t,i)(r),a=r.getShallow("decal");a&&(n.setVisual("decal",a),a.dirty=!0);var s=Of(t,i),l=o[s],u=G(l)?l:null;if(o[s]&&!u||(o[s]=t.getColorFromPalette(t.name,null,e.getSeriesCount()),n.setVisual("colorFromPalette",!0)),n.setVisual("style",o),n.setVisual("drawType",s),!e.isSeriesFiltered(t)&&u)return n.setVisual("colorFromPalette",!1),{dataEach:function(e,n){var i=t.getDataParams(n),r=I({},o);r[s]=u(i),e.setItemVisual(n,"style",r)}}}},Nf=new Ih,Ef={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){if(!t.ignoreStyleOnData&&!e.isSeriesFiltered(t)){var n=t.getData(),i=t.visualStyleAccessPath||"itemStyle",r=Pf(t,i),o=n.getVisual("drawType");return{dataEach:n.hasItemOption?function(t,e){var n=t.getRawDataItem(e);if(n&&n[i]){Nf.option=n[i];var a=r(Nf);I(t.ensureUniqueItemVisual(e,"style"),a),Nf.option.decal&&(t.setItemVisual(e,"decal",Nf.option.decal),Nf.option.decal.dirty=!0),o in a&&t.setItemVisual(e,"colorFromPalette",!1)}}:null}}}},zf={performRawSeries:!0,overallReset:function(t){var e=ht();t.eachSeries((function(t){if(t.useColorPaletteOnData){var n=e.get(t.type);n||(n={},e.set(t.type,n)),Df(t).scope=n}})),t.eachSeries((function(e){if(e.useColorPaletteOnData&&!t.isSeriesFiltered(e)){var n=e.getRawData(),i={},r=e.getData(),o=Df(e).scope,a=e.visualStyleAccessPath||"itemStyle",s=Of(e,a);r.each((function(t){var e=r.getRawIndex(t);i[e]=t})),n.each((function(t){var a=i[t];if(r.getItemVisual(a,"colorFromPalette")){var l=r.ensureUniqueItemVisual(a,"style"),u=n.getName(t)||t+"",h=n.count();l[s]=e.getColorFromPalette(u,o,h)}}))}}))}},Bf=Math.PI;var Vf=function(){function t(t,e,n,i){this._stageTaskMap=ht(),this.ecInstance=t,this.api=e,n=this._dataProcessorHandlers=n.slice(),i=this._visualHandlers=i.slice(),this._allHandlers=n.concat(i)}return t.prototype.restoreData=function(t,e){t.restoreData(e),this._stageTaskMap.each((function(t){var e=t.overallTask;e&&e.dirty()}))},t.prototype.getPerformArgs=function(t,e){if(t.__pipeline){var n=this._pipelineMap.get(t.__pipeline.id),i=n.context,r=!e&&n.progressiveEnabled&&(!i||i.progressiveRender)&&t.__idxInPipeline>n.blockIndex?n.step:null,o=i&&i.modDataCount;return{step:r,modBy:null!=o?Math.ceil(o/r):null,modDataCount:o}}},t.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},t.prototype.updateStreamModes=function(t,e){var n=this._pipelineMap.get(t.uid),i=t.getData().count(),r=n.progressiveEnabled&&e.incrementalPrepareRender&&i>=n.threshold,o=t.get("large")&&i>=t.get("largeThreshold"),a="mod"===t.get("progressiveChunkMode")?i:null;t.pipelineContext=n.context={progressiveRender:r,modDataCount:a,large:o}},t.prototype.restorePipelines=function(t){var e=this,n=e._pipelineMap=ht();t.eachSeries((function(t){var i=t.getProgressive(),r=t.uid;n.set(r,{id:r,head:null,tail:null,threshold:t.getProgressiveThreshold(),progressiveEnabled:i&&!(t.preventIncremental&&t.preventIncremental()),blockIndex:-1,step:Math.round(i||700),count:0}),e._pipe(t,t.dataTask)}))},t.prototype.prepareStageTasks=function(){var t=this._stageTaskMap,e=this.api.getModel(),n=this.api;P(this._allHandlers,(function(i){var r=t.get(i.uid)||t.set(i.uid,{}),o="";rt(!(i.reset&&i.overallReset),o),i.reset&&this._createSeriesStageTask(i,r,e,n),i.overallReset&&this._createOverallStageTask(i,r,e,n)}),this)},t.prototype.prepareView=function(t,e,n,i){var r=t.renderTask,o=r.context;o.model=e,o.ecModel=n,o.api=i,r.__block=!t.incrementalPrepareRender,this._pipe(e,r)},t.prototype.performDataProcessorTasks=function(t,e){this._performStageTasks(this._dataProcessorHandlers,t,e,{block:!0})},t.prototype.performVisualTasks=function(t,e,n){this._performStageTasks(this._visualHandlers,t,e,n)},t.prototype._performStageTasks=function(t,e,n,i){i=i||{};var r=!1,o=this;function a(t,e){return t.setDirty&&(!t.dirtyMap||t.dirtyMap.get(e.__pipeline.id))}P(t,(function(t,s){if(!i.visualType||i.visualType===t.visualType){var l=o._stageTaskMap.get(t.uid),u=l.seriesTaskMap,h=l.overallTask;if(h){var c,p=h.agentStubMap;p.each((function(t){a(i,t)&&(t.dirty(),c=!0)})),c&&h.dirty(),o.updatePayload(h,n);var d=o.getPerformArgs(h,i.block);p.each((function(t){t.perform(d)})),h.perform(d)&&(r=!0)}else u&&u.each((function(s,l){a(i,s)&&s.dirty();var u=o.getPerformArgs(s,i.block);u.skip=!t.performRawSeries&&e.isSeriesFiltered(s.context.model),o.updatePayload(s,n),s.perform(u)&&(r=!0)}))}})),this.unfinished=r||this.unfinished},t.prototype.performSeriesTasks=function(t){var e;t.eachSeries((function(t){e=t.dataTask.perform()||e})),this.unfinished=e||this.unfinished},t.prototype.plan=function(){this._pipelineMap.each((function(t){var e=t.tail;do{if(e.__block){t.blockIndex=e.__idxInPipeline;break}e=e.getUpstream()}while(e)}))},t.prototype.updatePayload=function(t,e){"remain"!==e&&(t.context.payload=e)},t.prototype._createSeriesStageTask=function(t,e,n,i){var r=this,o=e.seriesTaskMap,a=e.seriesTaskMap=ht(),s=t.seriesType,l=t.getTargetSeries;function u(e){var s=e.uid,l=a.set(s,o&&o.get(s)||xd({plan:Yf,reset:Xf,count:jf}));l.context={model:e,ecModel:n,api:i,useClearVisual:t.isVisual&&!t.isLayout,plan:t.plan,reset:t.reset,scheduler:r},r._pipe(e,l)}t.createOnAllSeries?n.eachRawSeries(u):s?n.eachRawSeriesByType(s,u):l&&l(n,i).each(u)},t.prototype._createOverallStageTask=function(t,e,n,i){var r=this,o=e.overallTask=e.overallTask||xd({reset:Ff});o.context={ecModel:n,api:i,overallReset:t.overallReset,scheduler:r};var a=o.agentStubMap,s=o.agentStubMap=ht(),l=t.seriesType,u=t.getTargetSeries,h=!0,c=!1,p="";function d(t){var e=t.uid,n=s.set(e,a&&a.get(e)||(c=!0,xd({reset:Gf,onDirty:Wf})));n.context={model:t,overallProgress:h},n.agent=o,n.__block=h,r._pipe(t,n)}rt(!t.createOnAllSeries,p),l?n.eachRawSeriesByType(l,d):u?u(n,i).each(d):(h=!1,P(n.getSeries(),d)),c&&o.dirty()},t.prototype._pipe=function(t,e){var n=t.uid,i=this._pipelineMap.get(n);!i.head&&(i.head=e),i.tail&&i.tail.pipe(e),i.tail=e,e.__idxInPipeline=i.count++,e.__pipeline=i},t.wrapStageHandler=function(t,e){return G(t)&&(t={overallReset:t,seriesType:qf(t)}),t.uid=Ch("stageHandler"),e&&(t.visualType=e),t},t}();function Ff(t){t.overallReset(t.ecModel,t.api,t.payload)}function Gf(t){return t.overallProgress&&Hf}function Hf(){this.agent.dirty(),this.getDownstream().dirty()}function Wf(){this.agent&&this.agent.dirty()}function Yf(t){return t.plan?t.plan(t.model,t.ecModel,t.api,t.payload):null}function Xf(t){t.useClearVisual&&t.data.clearAllVisual();var e=t.resetDefines=br(t.reset(t.model,t.ecModel,t.api,t.payload));return e.length>1?O(e,(function(t,e){return Zf(e)})):Uf}var Uf=Zf(0);function Zf(t){return function(e,n){var i=n.data,r=n.resetDefines[t];if(r&&r.dataEach)for(var o=e.start;o<e.end;o++)r.dataEach(i,o);else r&&r.progress&&r.progress(e,i)}}function jf(t){return t.data.count()}function qf(t){Kf=null;try{t($f,Jf)}catch(t){}return Kf}var Kf,$f={},Jf={};function Qf(t,e){for(var n in e.prototype)t[n]=ft}Qf($f,fp),Qf(Jf,_p),$f.eachSeriesByType=$f.eachRawSeriesByType=function(t){Kf=t},$f.eachComponent=function(t){"series"===t.mainType&&t.subType&&(Kf=t.subType)};var tg=["#37A2DA","#32C5E9","#67E0E3","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#E062AE","#E690D1","#e7bcf3","#9d96f5","#8378EA","#96BFFF"],eg={color:tg,colorLayer:[["#37A2DA","#ffd85c","#fd7b5f"],["#37A2DA","#67E0E3","#FFDB5C","#ff9f7f","#E062AE","#9d96f5"],["#37A2DA","#32C5E9","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#e7bcf3","#8378EA","#96BFFF"],tg]},ng="#B9B8CE",ig="#100C2A",rg=function(){return{axisLine:{lineStyle:{color:ng}},splitLine:{lineStyle:{color:"#484753"}},splitArea:{areaStyle:{color:["rgba(255,255,255,0.02)","rgba(255,255,255,0.05)"]}},minorSplitLine:{lineStyle:{color:"#20203B"}}}},og=["#4992ff","#7cffb2","#fddd60","#ff6e76","#58d9f9","#05c091","#ff8a45","#8d48e3","#dd79ff"],ag={darkMode:!0,color:og,backgroundColor:ig,axisPointer:{lineStyle:{color:"#817f91"},crossStyle:{color:"#817f91"},label:{color:"#fff"}},legend:{textStyle:{color:ng}},textStyle:{color:ng},title:{textStyle:{color:"#EEF1FA"},subtextStyle:{color:"#B9B8CE"}},toolbox:{iconStyle:{borderColor:ng}},dataZoom:{borderColor:"#71708A",textStyle:{color:ng},brushStyle:{color:"rgba(135,163,206,0.3)"},handleStyle:{color:"#353450",borderColor:"#C5CBE3"},moveHandleStyle:{color:"#B0B6C3",opacity:.3},fillerColor:"rgba(135,163,206,0.2)",emphasis:{handleStyle:{borderColor:"#91B7F2",color:"#4D587D"},moveHandleStyle:{color:"#636D9A",opacity:.7}},dataBackground:{lineStyle:{color:"#71708A",width:1},areaStyle:{color:"#71708A"}},selectedDataBackground:{lineStyle:{color:"#87A3CE"},areaStyle:{color:"#87A3CE"}}},visualMap:{textStyle:{color:ng}},timeline:{lineStyle:{color:ng},label:{color:ng},controlStyle:{color:ng,borderColor:ng}},calendar:{itemStyle:{color:ig},dayLabel:{color:ng},monthLabel:{color:ng},yearLabel:{color:ng}},timeAxis:rg(),logAxis:rg(),valueAxis:rg(),categoryAxis:rg(),line:{symbol:"circle"},graph:{color:og},gauge:{title:{color:ng},axisLine:{lineStyle:{color:[[1,"rgba(207,212,219,0.2)"]]}},axisLabel:{color:ng},detail:{color:"#EEF1FA"}},candlestick:{itemStyle:{color:"#f64e56",color0:"#54ea92",borderColor:"#f64e56",borderColor0:"#54ea92"}}};function sg(t){H(t)&&(t=(new DOMParser).parseFromString(t,"text/xml"));var e=t;for(9===e.nodeType&&(e=e.firstChild);"svg"!==e.nodeName.toLowerCase()||1!==e.nodeType;)e=e.nextSibling;return e}ag.categoryAxis.splitLine.show=!1;var lg=ht(),ug=function(t,e,n){var i;if(F(e))i=e;else if(e.svg)i=[{type:"svg",source:e.svg,specialAreas:e.specialAreas}];else{var r=e.geoJson||e.geoJSON;r&&!e.features&&(n=e.specialAreas,e=r),i=[{type:"geoJSON",source:e,specialAreas:n}]}return P(i,(function(t){var e=t.type;"geoJson"===e&&(e=t.type="geoJSON");var n=cg[e];n(t)})),lg.set(t,i)},hg=function(t){return lg.get(t)},cg={geoJSON:function(t){var e=t.source;t.geoJSON=H(e)?"undefined"!=typeof JSON&&JSON.parse?JSON.parse(e):new Function("return ("+e+");")():e},svg:function(t){t.svgXML=sg(t.source)}},pg=function(){function t(){}return t.prototype.normalizeQuery=function(t){var e={},n={},i={};if(H(t)){var r=Wr(t);e.mainType=r.main||null,e.subType=r.sub||null}else{var o=["Index","Name","Id"],a={name:1,dataIndex:1,dataType:1};P(t,(function(t,r){for(var s=!1,l=0;l<o.length;l++){var u=o[l],h=r.lastIndexOf(u);if(h>0&&h===r.length-u.length){var c=r.slice(0,h);"data"!==c&&(e.mainType=c,e[u.toLowerCase()]=t,s=!0)}}a.hasOwnProperty(r)&&(n[r]=t,s=!0),s||(i[r]=t)}))}return{cptQuery:e,dataQuery:n,otherQuery:i}},t.prototype.filter=function(t,e){var n=this.eventInfo;if(!n)return!0;var i=n.targetEl,r=n.packedEvent,o=n.model,a=n.view;if(!o||!a)return!0;var s=e.cptQuery,l=e.dataQuery;return u(s,o,"mainType")&&u(s,o,"subType")&&u(s,o,"index","componentIndex")&&u(s,o,"name")&&u(s,o,"id")&&u(l,r,"name")&&u(l,r,"dataIndex")&&u(l,r,"dataType")&&(!a.filterForExposedEvent||a.filterForExposedEvent(t,e.otherQuery,i,r));function u(t,e,n,i){return null==t[n]||e[i||n]===t[n]}},t.prototype.afterTrigger=function(){this.eventInfo=null},t}(),dg={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var n=t.getData();if(t.legendSymbol&&n.setVisual("legendSymbol",t.legendSymbol),t.hasSymbolVisual){var i=t.get("symbol"),r=t.get("symbolSize"),o=t.get("symbolKeepAspect"),a=t.get("symbolRotate"),s=G(i),l=G(r),u=G(a),h=s||l||u,c=!s&&i?i:t.defaultSymbol,p=l?null:r,d=u?null:a;if(n.setVisual({legendSymbol:t.legendSymbol||c,symbol:c,symbolSize:p,symbolKeepAspect:o,symbolRotate:d}),!e.isSeriesFiltered(t))return{dataEach:h?function(e,n){var o=t.getRawValue(n),h=t.getDataParams(n);s&&e.setItemVisual(n,"symbol",i(o,h)),l&&e.setItemVisual(n,"symbolSize",r(o,h)),u&&e.setItemVisual(n,"symbolRotate",a(o,h))}:null}}}};function fg(t,e,n){switch(n){case"color":return t.getItemVisual(e,"style")[t.getVisual("drawType")];case"opacity":return t.getItemVisual(e,"style").opacity;case"symbol":case"symbolSize":case"liftZ":return t.getItemVisual(e,n);default:0}}function gg(t,e){switch(e){case"color":return t.getVisual("style")[t.getVisual("drawType")];case"opacity":return t.getVisual("style").opacity;case"symbol":case"symbolSize":case"liftZ":return t.getVisual(e);default:0}}function yg(t,e,n,i){switch(n){case"color":t.ensureUniqueItemVisual(e,"style")[t.getVisual("drawType")]=i,t.setItemVisual(e,"colorFromPalette",!1);break;case"opacity":t.ensureUniqueItemVisual(e,"style").opacity=i;break;case"symbol":case"symbolSize":case"liftZ":t.setItemVisual(e,n,i);break;default:0}}var vg=2*Math.PI,mg=Da.CMD,_g=["top","right","bottom","left"];function xg(t,e,n,i,r){var o=n.width,a=n.height;switch(t){case"top":i.set(n.x+o/2,n.y-e),r.set(0,-1);break;case"bottom":i.set(n.x+o/2,n.y+a+e),r.set(0,1);break;case"left":i.set(n.x-e,n.y+a/2),r.set(-1,0);break;case"right":i.set(n.x+o+e,n.y+a/2),r.set(1,0)}}function bg(t,e,n,i,r,o,a,s,l){a-=t,s-=e;var u=Math.sqrt(a*a+s*s),h=(a/=u)*n+t,c=(s/=u)*n+e;if(Math.abs(i-r)%vg<1e-4)return l[0]=h,l[1]=c,u-n;if(o){var p=i;i=Ra(r),r=Ra(p)}else i=Ra(i),r=Ra(r);i>r&&(r+=vg);var d=Math.atan2(s,a);if(d<0&&(d+=vg),d>=i&&d<=r||d+vg>=i&&d+vg<=r)return l[0]=h,l[1]=c,u-n;var f=n*Math.cos(i)+t,g=n*Math.sin(i)+e,y=n*Math.cos(r)+t,v=n*Math.sin(r)+e,m=(f-a)*(f-a)+(g-s)*(g-s),_=(y-a)*(y-a)+(v-s)*(v-s);return m<_?(l[0]=f,l[1]=g,Math.sqrt(m)):(l[0]=y,l[1]=v,Math.sqrt(_))}function wg(t,e,n,i,r,o,a,s){var l=r-t,u=o-e,h=n-t,c=i-e,p=Math.sqrt(h*h+c*c),d=(l*(h/=p)+u*(c/=p))/p;s&&(d=Math.min(Math.max(d,0),1)),d*=p;var f=a[0]=t+d*h,g=a[1]=e+d*c;return Math.sqrt((f-r)*(f-r)+(g-o)*(g-o))}function Sg(t,e,n,i,r,o,a){n<0&&(t+=n,n=-n),i<0&&(e+=i,i=-i);var s=t+n,l=e+i,u=a[0]=Math.min(Math.max(r,t),s),h=a[1]=Math.min(Math.max(o,e),l);return Math.sqrt((u-r)*(u-r)+(h-o)*(h-o))}var Mg=[];function Ig(t,e,n){var i=Sg(e.x,e.y,e.width,e.height,t.x,t.y,Mg);return n.set(Mg[0],Mg[1]),i}function Tg(t,e,n){for(var i,r,o=0,a=0,s=0,l=0,u=1/0,h=e.data,c=t.x,p=t.y,d=0;d<h.length;){var f=h[d++];1===d&&(s=o=h[d],l=a=h[d+1]);var g=u;switch(f){case mg.M:o=s=h[d++],a=l=h[d++];break;case mg.L:g=wg(o,a,h[d],h[d+1],c,p,Mg,!0),o=h[d++],a=h[d++];break;case mg.C:g=Go(o,a,h[d++],h[d++],h[d++],h[d++],h[d],h[d+1],c,p,Mg),o=h[d++],a=h[d++];break;case mg.Q:g=Zo(o,a,h[d++],h[d++],h[d],h[d+1],c,p,Mg),o=h[d++],a=h[d++];break;case mg.A:var y=h[d++],v=h[d++],m=h[d++],_=h[d++],x=h[d++],b=h[d++];d+=1;var w=!!(1-h[d++]);i=Math.cos(x)*m+y,r=Math.sin(x)*_+v,d<=1&&(s=i,l=r),g=bg(y,v,_,x,x+b,w,(c-y)*_/m+y,p,Mg),o=Math.cos(x+b)*m+y,a=Math.sin(x+b)*_+v;break;case mg.R:g=Sg(s=o=h[d++],l=a=h[d++],h[d++],h[d++],c,p,Mg);break;case mg.Z:g=wg(o,a,s,l,c,p,Mg,!0),o=s,a=l}g<u&&(u=g,n.set(Mg[0],Mg[1]))}return u}var Cg=new Cn,Ag=new Cn,Dg=new Cn,Lg=new Cn,kg=new Cn;function Pg(t,e){if(t){var n=t.getTextGuideLine(),i=t.getTextContent();if(i&&n){var r=t.textGuideLineConfig||{},o=[[0,0],[0,0],[0,0]],a=r.candidates||_g,s=i.getBoundingRect().clone();s.applyTransform(i.getComputedTransform());var l=1/0,u=r.anchor,h=t.getComputedTransform(),c=h&&Se([],h),p=e.get("length2")||0;u&&Dg.copy(u);for(var d=0;d<a.length;d++){xg(a[d],0,s,Cg,Lg),Cn.scaleAndAdd(Ag,Cg,Lg,p),Ag.transform(c);var f=t.getBoundingRect(),g=u?u.distance(Ag):t instanceof qa?Tg(Ag,t.path,Dg):Ig(Ag,f,Dg);g<l&&(l=g,Ag.transform(h),Dg.transform(h),Dg.toArray(o[0]),Ag.toArray(o[1]),Cg.toArray(o[2]))}Ng(o,e.get("minTurnAngle")),n.setShape({points:o})}}}var Og=[],Rg=new Cn;function Ng(t,e){if(e<=180&&e>0){e=e/180*Math.PI,Cg.fromArray(t[0]),Ag.fromArray(t[1]),Dg.fromArray(t[2]),Cn.sub(Lg,Cg,Ag),Cn.sub(kg,Dg,Ag);var n=Lg.len(),i=kg.len();if(!(n<.001||i<.001)){Lg.scale(1/n),kg.scale(1/i);var r=Lg.dot(kg);if(Math.cos(e)<r){var o=wg(Ag.x,Ag.y,Dg.x,Dg.y,Cg.x,Cg.y,Og,!1);Rg.fromArray(Og),Rg.scaleAndAdd(kg,o/Math.tan(Math.PI-e));var a=Dg.x!==Ag.x?(Rg.x-Ag.x)/(Dg.x-Ag.x):(Rg.y-Ag.y)/(Dg.y-Ag.y);if(isNaN(a))return;a<0?Cn.copy(Rg,Ag):a>1&&Cn.copy(Rg,Dg),Rg.toArray(t[1])}}}}function Eg(t,e,n){if(n<=180&&n>0){n=n/180*Math.PI,Cg.fromArray(t[0]),Ag.fromArray(t[1]),Dg.fromArray(t[2]),Cn.sub(Lg,Ag,Cg),Cn.sub(kg,Dg,Ag);var i=Lg.len(),r=kg.len();if(!(i<.001||r<.001))if(Lg.scale(1/i),kg.scale(1/r),Lg.dot(e)<Math.cos(n)){var o=wg(Ag.x,Ag.y,Dg.x,Dg.y,Cg.x,Cg.y,Og,!1);Rg.fromArray(Og);var a=Math.PI/2,s=a+Math.acos(kg.dot(e))-n;if(s>=a)Cn.copy(Rg,Dg);else{Rg.scaleAndAdd(kg,o/Math.tan(Math.PI/2-s));var l=Dg.x!==Ag.x?(Rg.x-Ag.x)/(Dg.x-Ag.x):(Rg.y-Ag.y)/(Dg.y-Ag.y);if(isNaN(l))return;l<0?Cn.copy(Rg,Ag):l>1&&Cn.copy(Rg,Dg)}Rg.toArray(t[1])}}}function zg(t,e,n,i){var r="normal"===n,o=r?t:t.ensureState(n);o.ignore=e;var a=i.get("smooth");a&&!0===a&&(a=.3),o.shape=o.shape||{},a>0&&(o.shape.smooth=a);var s=i.getModel("lineStyle").getLineStyle();r?t.useStyle(s):o.style=s}function Bg(t,e){var n=e.smooth,i=e.points;if(i)if(t.moveTo(i[0][0],i[0][1]),n>0&&i.length>=3){var r=Pt(i[0],i[1]),o=Pt(i[1],i[2]);if(!r||!o)return t.lineTo(i[1][0],i[1][1]),void t.lineTo(i[2][0],i[2][1]);var a=Math.min(r,o)*n,s=Nt([],i[1],i[0],a/r),l=Nt([],i[1],i[2],a/o),u=Nt([],s,l,.5);t.bezierCurveTo(s[0],s[1],s[0],s[1],u[0],u[1]),t.bezierCurveTo(l[0],l[1],l[0],l[1],i[2][0],i[2][1])}else for(var h=1;h<i.length;h++)t.lineTo(i[h][0],i[h][1])}function Vg(t,e,n){var i=t.getTextGuideLine(),r=t.getTextContent();if(r){for(var o=e.normal,a=o.get("show"),s=r.ignore,l=0;l<Ss.length;l++){var u=Ss[l],h=e[u],c="normal"===u;if(h){var p=h.get("show");if((c?s:tt(r.states[u]&&r.states[u].ignore,s))||!tt(p,a)){var d=c?i:i&&i.states.normal;d&&(d.ignore=!0);continue}i||(i=new Ql,t.setTextGuideLine(i),c||!s&&a||zg(i,!0,"normal",e.normal),t.stateProxy&&(i.stateProxy=t.stateProxy)),zg(i,!1,u,h)}}if(i){T(i.style,n),i.style.fill=null;var f=o.get("showAbove");(t.textGuideLineConfig=t.textGuideLineConfig||{}).showAbove=f||!1,i.buildPath=Bg}}else i&&t.removeTextGuideLine()}function Fg(t,e){e=e||"labelLine";for(var n={normal:t.getModel(e)},i=0;i<ws.length;i++){var r=ws[i];n[r]=t.getModel([r,e])}return n}function Gg(t,e,n,i,r,o){var a=t.length;if(!(a<2)){t.sort((function(t,n){return t.rect[e]-n.rect[e]}));for(var s,l=0,u=!1,h=0,c=0;c<a;c++){var p=t[c],d=p.rect;(s=d[e]-l)<0&&(d[e]-=s,p.label[e]-=s,u=!0),h+=Math.max(-s,0),l=d[e]+d[n]}h>0&&o&&x(-h/a,0,a);var f,g,y=t[0],v=t[a-1];return m(),f<0&&b(-f,.8),g<0&&b(g,.8),m(),_(f,g,1),_(g,f,-1),m(),f<0&&w(-f),g<0&&w(g),u}function m(){f=y.rect[e]-i,g=r-v.rect[e]-v.rect[n]}function _(t,e,n){if(t<0){var i=Math.min(e,-t);if(i>0){x(i*n,0,a);var r=i+t;r<0&&b(-r*n,1)}else b(-t*n,1)}}function x(n,i,r){0!==n&&(u=!0);for(var o=i;o<r;o++){var a=t[o];a.rect[e]+=n,a.label[e]+=n}}function b(i,r){for(var o=[],s=0,l=1;l<a;l++){var u=t[l-1].rect,h=Math.max(t[l].rect[e]-u[e]-u[n],0);o.push(h),s+=h}if(s){var c=Math.min(Math.abs(i)/s,r);if(i>0)for(l=0;l<a-1;l++){x(o[l]*c,0,l+1)}else for(l=a-1;l>0;l--){x(-(o[l-1]*c),l,a)}}}function w(t){var e=t<0?-1:1;t=Math.abs(t);for(var n=Math.ceil(t/(a-1)),i=0;i<a-1;i++)if(e>0?x(n,0,i+1):x(-n,a-i-1,a),(t-=n)<=0)return}}function Hg(t,e,n,i){return Gg(t,"y","height",e,n,i)}function Wg(t){if(t){for(var e=[],n=0;n<t.length;n++)e.push(t[n].slice());return e}}function Yg(t,e){var n=t.label,i=e&&e.getTextGuideLine();return{dataIndex:t.dataIndex,dataType:t.dataType,seriesIndex:t.seriesModel.seriesIndex,text:t.label.style.text,rect:t.hostRect,labelRect:t.rect,align:n.style.align,verticalAlign:n.style.verticalAlign,labelLinePoints:Wg(i&&i.shape.points)}}var Xg=["align","verticalAlign","width","height","fontSize"],Ug=new Oe,Zg=Pr(),jg=Pr();function qg(t,e,n){for(var i=0;i<n.length;i++){var r=n[i];null!=e[r]&&(t[r]=e[r])}}var Kg=["x","y","rotation"],$g=function(){function t(){this._labelList=[],this._chartViewList=[]}return t.prototype.clearLabels=function(){this._labelList=[],this._chartViewList=[]},t.prototype._addLabel=function(t,e,n,i,r){var o=i.style,a=i.__hostTarget.textConfig||{},s=i.getComputedTransform(),l=i.getBoundingRect().plain();En.applyTransform(l,l,s),s?Ug.setLocalTransform(s):(Ug.x=Ug.y=Ug.rotation=Ug.originX=Ug.originY=0,Ug.scaleX=Ug.scaleY=1);var u,h=i.__hostTarget;if(h){u=h.getBoundingRect().plain();var c=h.getComputedTransform();En.applyTransform(u,u,c)}var p=u&&h.getTextGuideLine();this._labelList.push({label:i,labelLine:p,seriesModel:n,dataIndex:t,dataType:e,layoutOption:r,computedLayoutOption:null,rect:l,hostRect:u,priority:u?u.width*u.height:0,defaultAttr:{ignore:i.ignore,labelGuideIgnore:p&&p.ignore,x:Ug.x,y:Ug.y,rotation:Ug.rotation,style:{x:o.x,y:o.y,align:o.align,verticalAlign:o.verticalAlign,width:o.width,height:o.height,fontSize:o.fontSize},cursor:i.cursor,attachedPos:a.position,attachedRot:a.rotation}})},t.prototype.addLabelsOfSeries=function(t){var e=this;this._chartViewList.push(t);var n=t.__model,i=n.get("labelLayout");(G(i)||z(i).length)&&t.group.traverse((function(t){if(t.ignore)return!0;var r=t.getTextContent(),o=ms(t);r&&!r.disableLabelLayout&&e._addLabel(o.dataIndex,o.dataType,n,r,i)}))},t.prototype.updateLayoutConfig=function(t){var e=t.getWidth(),n=t.getHeight();function i(t,e){return function(){Pg(t,e)}}for(var r=0;r<this._labelList.length;r++){var o=this._labelList[r],a=o.label,s=a.__hostTarget,l=o.defaultAttr,u=void 0;u=(u="function"==typeof o.layoutOption?o.layoutOption(Yg(o,s)):o.layoutOption)||{},o.computedLayoutOption=u;var h=Math.PI/180;s&&s.setTextConfig({local:!1,position:null!=u.x||null!=u.y?null:l.attachedPos,rotation:null!=u.rotate?u.rotate*h:l.attachedRot,offset:[u.dx||0,u.dy||0]});var c=!1;if(null!=u.x?(a.x=qi(u.x,e),a.setStyle("x",0),c=!0):(a.x=l.x,a.setStyle("x",l.style.x)),null!=u.y?(a.y=qi(u.y,n),a.setStyle("y",0),c=!0):(a.y=l.y,a.setStyle("y",l.style.y)),u.labelLinePoints){var p=s.getTextGuideLine();p&&(p.setShape({points:u.labelLinePoints}),c=!1)}Zg(a).needsUpdateLabelLine=c,a.rotation=null!=u.rotate?u.rotate*h:l.rotation;for(var d=0;d<Xg.length;d++){var f=Xg[d];a.setStyle(f,null!=u[f]?u[f]:l.style[f])}if(u.draggable){if(a.draggable=!0,a.cursor="move",s){var g=o.seriesModel;if(null!=o.dataIndex)g=o.seriesModel.getData(o.dataType).getItemModel(o.dataIndex);a.on("drag",i(s,g.getModel("labelLine")))}}else a.off("drag"),a.cursor=l.cursor}},t.prototype.layout=function(t){var e,n=t.getWidth(),i=t.getHeight(),r=function(t){for(var e=[],n=0;n<t.length;n++){var i=t[n];if(!i.defaultAttr.ignore){var r=i.label,o=r.getComputedTransform(),a=r.getBoundingRect(),s=!o||o[1]<1e-5&&o[2]<1e-5,l=r.style.margin||0,u=a.clone();u.applyTransform(o),u.x-=l/2,u.y-=l/2,u.width+=l,u.height+=l;var h=s?new vu(a,o):null;e.push({label:r,labelLine:i.labelLine,rect:u,localRect:a,obb:h,priority:i.priority,defaultAttr:i.defaultAttr,layoutOption:i.computedLayoutOption,axisAligned:s,transform:o})}}return e}(this._labelList),o=N(r,(function(t){return"shiftX"===t.layoutOption.moveOverlap})),a=N(r,(function(t){return"shiftY"===t.layoutOption.moveOverlap}));Gg(o,"x","width",0,n,e),Hg(a,0,i),function(t){var e=[];t.sort((function(t,e){return e.priority-t.priority}));var n=new En(0,0,0,0);function i(t){if(!t.ignore){var e=t.ensureState("emphasis");null==e.ignore&&(e.ignore=!1)}t.ignore=!0}for(var r=0;r<t.length;r++){var o=t[r],a=o.axisAligned,s=o.localRect,l=o.transform,u=o.label,h=o.labelLine;n.copy(o.rect),n.width-=.1,n.height-=.1,n.x+=.05,n.y+=.05;for(var c=o.obb,p=!1,d=0;d<e.length;d++){var f=e[d];if(n.intersect(f.rect)){if(a&&f.axisAligned){p=!0;break}if(f.obb||(f.obb=new vu(f.localRect,f.transform)),c||(c=new vu(s,l)),c.intersect(f.obb)){p=!0;break}}}p?(i(u),h&&i(h)):(u.attr("ignore",o.defaultAttr.ignore),h&&h.attr("ignore",o.defaultAttr.labelGuideIgnore),e.push(o))}}(N(r,(function(t){return t.layoutOption.hideOverlap})))},t.prototype.processLabelsOverall=function(){var t=this;P(this._chartViewList,(function(e){var n=e.__model,i=e.ignoreLabelLineUpdate,r=n.isAnimationEnabled();e.group.traverse((function(e){if(e.ignore)return!0;var o=!i,a=e.getTextContent();!o&&a&&(o=Zg(a).needsUpdateLabelLine),o&&t._updateLabelLine(e,n),r&&t._animateLabels(e,n)}))}))},t.prototype._updateLabelLine=function(t,e){var n=t.getTextContent(),i=ms(t),r=i.dataIndex;if(n&&null!=r){var o=e.getData(i.dataType),a=o.getItemModel(r),s={},l=o.getItemVisual(r,"style"),u=o.getVisual("drawType");s.stroke=l[u];var h=a.getModel("labelLine");Vg(t,Fg(a),s),Pg(t,h)}},t.prototype._animateLabels=function(t,e){var n=t.getTextContent(),i=t.getTextGuideLine();if(n&&!n.ignore&&!n.invisible&&!t.disableLabelAnimation&&!Fu(t)){var r=(d=Zg(n)).oldLayout,o=ms(t),a=o.dataIndex,s={x:n.x,y:n.y,rotation:n.rotation},l=e.getData(o.dataType);if(r){n.attr(r);var u=t.prevStates;u&&(A(u,"select")>=0&&n.attr(d.oldLayoutSelect),A(u,"emphasis")>=0&&n.attr(d.oldLayoutEmphasis)),Nu(n,s,e,a)}else if(n.attr(s),!ch(n).valueAnimation){var h=tt(n.style.opacity,1);n.style.opacity=0,Eu(n,{style:{opacity:h}},e,a)}if(d.oldLayout=s,n.states.select){var c=d.oldLayoutSelect={};qg(c,s,Kg),qg(c,n.states.select,Kg)}if(n.states.emphasis){var p=d.oldLayoutEmphasis={};qg(p,s,Kg),qg(p,n.states.emphasis,Kg)}dh(n,a,l,e,e)}if(i&&!i.ignore&&!i.invisible){r=(d=jg(i)).oldLayout;var d,f={points:i.shape.points};r?(i.attr({shape:r}),Nu(i,{shape:f},e)):(i.setShape(f),i.style.strokePercent=0,Eu(i,{style:{strokePercent:1}},e)),d.oldLayout=f}},t}();function Jg(t,e){function n(e,n){var i=[];return e.eachComponent({mainType:"series",subType:t,query:n},(function(t){i.push(t.seriesIndex)})),i}P([[t+"ToggleSelect","toggleSelect"],[t+"Select","select"],[t+"UnSelect","unselect"]],(function(t){e(t[0],(function(e,i,r){e=I({},e),r.dispatchAction(I(e,{type:t[1],seriesIndex:n(i,e)}))}))}))}function Qg(t,e,n,i,r){var o=t+e;n.isSilent(o)||i.eachComponent({mainType:"series",subType:"pie"},(function(t){for(var e=t.seriesIndex,i=r.selected,a=0;a<i.length;a++)if(i[a].seriesIndex===e){var s=t.getData(),l=kr(s,r.fromActionPayload);n.trigger(o,{type:o,seriesId:t.id,name:F(l)?s.getName(l[0]):s.getName(l),selected:I({},t.option.selectedMap)})}}))}function ty(t,e,n){for(var i;t&&(!e(t)||(i=t,!n));)t=t.__hostTarget||t.parent;return i}var ey=Math.round(9*Math.random()),ny=function(){function t(){this._id="__ec_inner_"+ey++}return t.prototype.get=function(t){return this._guard(t)[this._id]},t.prototype.set=function(t,e){var n=this._guard(t);return"function"==typeof Object.defineProperty?Object.defineProperty(n,this._id,{value:e,enumerable:!1,configurable:!0}):n[this._id]=e,this},t.prototype.delete=function(t){return!!this.has(t)&&(delete this._guard(t)[this._id],!0)},t.prototype.has=function(t){return!!this._guard(t)[this._id]},t.prototype._guard=function(t){if(t!==Object(t))throw TypeError("Value of WeakMap is not a non-null object.");return t},t}(),iy=qa.extend({type:"triangle",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var n=e.cx,i=e.cy,r=e.width/2,o=e.height/2;t.moveTo(n,i-o),t.lineTo(n+r,i+o),t.lineTo(n-r,i+o),t.closePath()}}),ry=qa.extend({type:"diamond",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var n=e.cx,i=e.cy,r=e.width/2,o=e.height/2;t.moveTo(n,i-o),t.lineTo(n+r,i),t.lineTo(n,i+o),t.lineTo(n-r,i),t.closePath()}}),oy=qa.extend({type:"pin",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var n=e.x,i=e.y,r=e.width/5*3,o=Math.max(r,e.height),a=r/2,s=a*a/(o-a),l=i-o+a+s,u=Math.asin(s/a),h=Math.cos(u)*a,c=Math.sin(u),p=Math.cos(u),d=.6*a,f=.7*a;t.moveTo(n-h,l+s),t.arc(n,l,a,Math.PI-u,2*Math.PI+u),t.bezierCurveTo(n+h-c*d,l+s+p*d,n,i-f,n,i),t.bezierCurveTo(n,i-f,n-h+c*d,l+s+p*d,n-h,l+s),t.closePath()}}),ay=qa.extend({type:"arrow",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var n=e.height,i=e.width,r=e.x,o=e.y,a=i/3*2;t.moveTo(r,o),t.lineTo(r+a,o+n),t.lineTo(r,o+n/4*3),t.lineTo(r-a,o+n),t.lineTo(r,o),t.closePath()}}),sy={line:function(t,e,n,i,r){r.x=t,r.y=e+i/2-1,r.width=n,r.height=2},rect:function(t,e,n,i,r){r.x=t,r.y=e,r.width=n,r.height=i},roundRect:function(t,e,n,i,r){r.x=t,r.y=e,r.width=n,r.height=i,r.r=Math.min(n,i)/4},square:function(t,e,n,i,r){var o=Math.min(n,i);r.x=t,r.y=e,r.width=o,r.height=o},circle:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.r=Math.min(n,i)/2},diamond:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.width=n,r.height=i},pin:function(t,e,n,i,r){r.x=t+n/2,r.y=e+i/2,r.width=n,r.height=i},arrow:function(t,e,n,i,r){r.x=t+n/2,r.y=e+i/2,r.width=n,r.height=i},triangle:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.width=n,r.height=i}},ly={};P({line:ss,rect:ss,roundRect:ss,square:ss,circle:Al,diamond:ry,pin:oy,arrow:ay,triangle:iy},(function(t,e){ly[e]=new t}));var uy=qa.extend({type:"symbol",shape:{symbolType:"",x:0,y:0,width:0,height:0},calculateTextPosition:function(t,e,n){var i=Zn(t,e,n),r=this.shape;return r&&"pin"===r.symbolType&&"inside"===e.position&&(i.y=n.y+.4*n.height),i},buildPath:function(t,e,n){var i=e.symbolType;if("none"!==i){var r=ly[i];r||(r=ly[i="rect"]),sy[i](e.x,e.y,e.width,e.height,r.shape),r.buildPath(t,r.shape,n)}}});function hy(t,e){if("image"!==this.type){var n=this.style;this.__isEmptyBrush?(n.stroke=t,n.fill=e||"#fff",n.lineWidth=2):n.fill=t,this.markRedraw()}}function cy(t,e,n,i,r,o,a){var s,l=0===t.indexOf("empty");return l&&(t=t.substr(5,1).toLowerCase()+t.substr(6)),(s=0===t.indexOf("image://")?Du(t.slice(8),new En(e,n,i,r),a?"center":"cover"):0===t.indexOf("path://")?Au(t.slice(7),{},new En(e,n,i,r),a?"center":"cover"):new uy({shape:{symbolType:t,x:e,y:n,width:i,height:r}})).__isEmptyBrush=l,s.setColor=hy,o&&s.setColor(o),s}function py(t,e,n){for(var i="radial"===e.type?function(t,e,n){var i=n.width,r=n.height,o=Math.min(i,r),a=null==e.x?.5:e.x,s=null==e.y?.5:e.y,l=null==e.r?.5:e.r;return e.global||(a=a*i+n.x,s=s*r+n.y,l*=o),t.createRadialGradient(a,s,0,a,s,l)}(t,e,n):function(t,e,n){var i=null==e.x?0:e.x,r=null==e.x2?1:e.x2,o=null==e.y?0:e.y,a=null==e.y2?0:e.y2;return e.global||(i=i*n.width+n.x,r=r*n.width+n.x,o=o*n.height+n.y,a=a*n.height+n.y),i=isNaN(i)?0:i,r=isNaN(r)?1:r,o=isNaN(o)?0:o,a=isNaN(a)?0:a,t.createLinearGradient(i,o,r,a)}(t,e,n),r=e.colorStops,o=0;o<r.length;o++)i.addColorStop(r[o].offset,r[o].color);return i}function dy(t,e){if(t===e||!t&&!e)return!1;if(!t||!e||t.length!==e.length)return!0;for(var n=0;n<t.length;n++)if(t[n]!==e[n])return!0;return!1}function fy(t,e){return t&&"solid"!==t&&e>0?(e=e||1,"dashed"===t?[4*e,2*e]:"dotted"===t?[e]:Y(t)?[t]:F(t)?t:null):null}var gy=new Da(!0);function yy(t){var e=t.stroke;return!(null==e||"none"===e||!(t.lineWidth>0))}function vy(t){var e=t.fill;return null!=e&&"none"!==e}function my(t,e){if(null!=e.fillOpacity&&1!==e.fillOpacity){var n=t.globalAlpha;t.globalAlpha=e.fillOpacity*e.opacity,t.fill(),t.globalAlpha=n}else t.fill()}function _y(t,e){if(null!=e.strokeOpacity&&1!==e.strokeOpacity){var n=t.globalAlpha;t.globalAlpha=e.strokeOpacity*e.opacity,t.stroke(),t.globalAlpha=n}else t.stroke()}function xy(t,e,n){var i=no(e.image,e.__image,n);if(ro(i)){var r=t.createPattern(i,e.repeat||"repeat");if("function"==typeof DOMMatrix){var o=new DOMMatrix;o.rotateSelf(0,0,(e.rotation||0)/Math.PI*180),o.scaleSelf(e.scaleX||1,e.scaleY||1),o.translateSelf(e.x||0,e.y||0),r.setTransform(o)}return r}}var by=["shadowBlur","shadowOffsetX","shadowOffsetY"],wy=[["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]];function Sy(t,e,n,i,r){var o=!1;if(!i&&e===(n=n||{}))return!1;(i||e.opacity!==n.opacity)&&(o||(Ty(t,r),o=!0),t.globalAlpha=null==e.opacity?_o.opacity:e.opacity),(i||e.blend!==n.blend)&&(o||(Ty(t,r),o=!0),t.globalCompositeOperation=e.blend||_o.blend);for(var a=0;a<by.length;a++){var s=by[a];(i||e[s]!==n[s])&&(o||(Ty(t,r),o=!0),t[s]=t.dpr*(e[s]||0))}return(i||e.shadowColor!==n.shadowColor)&&(o||(Ty(t,r),o=!0),t.shadowColor=e.shadowColor||_o.shadowColor),o}function My(t,e,n,i,r){var o=Cy(e,r.inHover),a=i?null:n&&Cy(n,r.inHover)||{};if(o===a)return!1;var s=Sy(t,o,a,i,r);if((i||o.fill!==a.fill)&&(s||(Ty(t,r),s=!0),t.fillStyle=o.fill),(i||o.stroke!==a.stroke)&&(s||(Ty(t,r),s=!0),t.strokeStyle=o.stroke),(i||o.opacity!==a.opacity)&&(s||(Ty(t,r),s=!0),t.globalAlpha=null==o.opacity?1:o.opacity),e.hasStroke()){var l=o.lineWidth/(o.strokeNoScale&&e&&e.getLineScale?e.getLineScale():1);t.lineWidth!==l&&(s||(Ty(t,r),s=!0),t.lineWidth=l)}for(var u=0;u<wy.length;u++){var h=wy[u],c=h[0];(i||o[c]!==a[c])&&(s||(Ty(t,r),s=!0),t[c]=o[c]||h[1])}return s}function Iy(t,e){var n=e.transform,i=t.dpr||1;n?t.setTransform(i*n[0],i*n[1],i*n[2],i*n[3],i*n[4],i*n[5]):t.setTransform(i,0,0,i,0,0)}function Ty(t,e){e.batchFill&&t.fill(),e.batchStroke&&t.stroke(),e.batchFill="",e.batchStroke=""}function Cy(t,e){return e&&t.__hoverStyle||t.style}function Ay(t,e){Dy(t,e,{inHover:!1,viewWidth:0,viewHeight:0},!0)}function Dy(t,e,n,i){var r=e.transform;if(!e.shouldBePainted(n.viewWidth,n.viewHeight,!1,!1))return e.__dirty&=~ii.REDARAW_BIT,void(e.__isRendered=!1);var o=e.__clipPaths,a=n.prevElClipPaths,s=!1,l=!1;if(a&&!dy(o,a)||(a&&a.length&&(Ty(t,n),t.restore(),l=s=!0,n.prevElClipPaths=null,n.allClipped=!1,n.prevEl=null),o&&o.length&&(Ty(t,n),t.save(),function(t,e,n){for(var i=!1,r=0;r<t.length;r++){var o=t[r];i=i||o.isZeroArea(),Iy(e,o),e.beginPath(),o.buildPath(e,o.shape),e.clip()}n.allClipped=i}(o,t,n),s=!0),n.prevElClipPaths=o),n.allClipped)e.__isRendered=!1;else{e.beforeBrush&&e.beforeBrush(),e.innerBeforeBrush();var u=n.prevEl;u||(l=s=!0);var h,c,p=e instanceof qa&&e.autoBatch&&function(t){var e=vy(t),n=yy(t);return!(t.lineDash||!(+e^+n)||e&&"string"!=typeof t.fill||n&&"string"!=typeof t.stroke||t.strokePercent<1||t.strokeOpacity<1||t.fillOpacity<1)}(e.style);s||(h=r,c=u.transform,h&&c?h[0]!==c[0]||h[1]!==c[1]||h[2]!==c[2]||h[3]!==c[3]||h[4]!==c[4]||h[5]!==c[5]:h||c)?(Ty(t,n),Iy(t,e)):p||Ty(t,n);var d=Cy(e,n.inHover);e instanceof qa?(1!==n.lastDrawType&&(l=!0,n.lastDrawType=1),My(t,e,u,l,n),p&&(n.batchFill||n.batchStroke)||t.beginPath(),function(t,e,n,i){var r=yy(n),o=vy(n),a=n.strokePercent,s=a<1,l=!e.path;e.silent&&!s||!l||e.createPathProxy();var u=e.path||gy;if(!i){var h=n.fill,c=n.stroke,p=o&&!!h.colorStops,d=r&&!!c.colorStops,f=o&&!!h.image,g=r&&!!c.image,y=void 0,v=void 0,m=void 0,_=void 0,x=void 0;(p||d)&&(x=e.getBoundingRect()),p&&(y=e.__dirty?py(t,h,x):e.__canvasFillGradient,e.__canvasFillGradient=y),d&&(v=e.__dirty?py(t,c,x):e.__canvasStrokeGradient,e.__canvasStrokeGradient=v),f&&(m=e.__dirty||!e.__canvasFillPattern?xy(t,h,e):e.__canvasFillPattern,e.__canvasFillPattern=m),g&&(_=e.__dirty||!e.__canvasStrokePattern?xy(t,c,e):e.__canvasStrokePattern,e.__canvasStrokePattern=m),p?t.fillStyle=y:f&&(m?t.fillStyle=m:o=!1),d?t.strokeStyle=v:g&&(_?t.strokeStyle=_:r=!1)}var b=n.lineDash&&n.lineWidth>0&&fy(n.lineDash,n.lineWidth),w=n.lineDashOffset,S=!!t.setLineDash,M=e.getGlobalScale();if(u.setScale(M[0],M[1],e.segmentIgnoreThreshold),b){var I=n.strokeNoScale&&e.getLineScale?e.getLineScale():1;I&&1!==I&&(b=O(b,(function(t){return t/I})),w/=I)}var T=!0;(l||e.__dirty&qa.SHAPE_CHANGED_BIT||b&&!S&&r)&&(u.setDPR(t.dpr),s?u.setContext(null):(u.setContext(t),T=!1),u.reset(),b&&!S&&(u.setLineDash(b),u.setLineDashOffset(w)),e.buildPath(u,e.shape,i),u.toStatic(),e.pathUpdated()),T&&u.rebuildPath(t,s?a:1),b&&S&&(t.setLineDash(b),t.lineDashOffset=w),i||(n.strokeFirst?(r&&_y(t,n),o&&my(t,n)):(o&&my(t,n),r&&_y(t,n))),b&&S&&t.setLineDash([])}(t,e,d,p),p&&(n.batchFill=d.fill||"",n.batchStroke=d.stroke||"")):e instanceof $a?(3!==n.lastDrawType&&(l=!0,n.lastDrawType=3),My(t,e,u,l,n),function(t,e,n){var i=n.text;if(null!=i&&(i+=""),i){t.font=n.font||Bn,t.textAlign=n.textAlign,t.textBaseline=n.textBaseline;var r=void 0;if(t.setLineDash){var o=n.lineDash&&n.lineWidth>0&&fy(n.lineDash,n.lineWidth),a=n.lineDashOffset;if(o){var s=n.strokeNoScale&&e.getLineScale?e.getLineScale():1;s&&1!==s&&(o=O(o,(function(t){return t/s})),a/=s),t.setLineDash(o),t.lineDashOffset=a,r=!0}}n.strokeFirst?(yy(n)&&t.strokeText(i,n.x,n.y),vy(n)&&t.fillText(i,n.x,n.y)):(vy(n)&&t.fillText(i,n.x,n.y),yy(n)&&t.strokeText(i,n.x,n.y)),r&&t.setLineDash([])}}(t,e,d)):e instanceof ts?(2!==n.lastDrawType&&(l=!0,n.lastDrawType=2),function(t,e,n,i,r){Sy(t,Cy(e,r.inHover),n&&Cy(n,r.inHover),i,r)}(t,e,u,l,n),function(t,e,n){var i=e.__image=no(n.image,e.__image,e,e.onload);if(i&&ro(i)){var r=n.x||0,o=n.y||0,a=e.getWidth(),s=e.getHeight(),l=i.width/i.height;if(null==a&&null!=s?a=s*l:null==s&&null!=a?s=a/l:null==a&&null==s&&(a=i.width,s=i.height),n.sWidth&&n.sHeight){var u=n.sx||0,h=n.sy||0;t.drawImage(i,u,h,n.sWidth,n.sHeight,r,o,a,s)}else if(n.sx&&n.sy){var c=a-(u=n.sx),p=s-(h=n.sy);t.drawImage(i,u,h,c,p,r,o,a,s)}else t.drawImage(i,r,o,a,s)}}(t,e,d)):e instanceof _u&&(4!==n.lastDrawType&&(l=!0,n.lastDrawType=4),function(t,e,n){var i=e.getDisplayables(),r=e.getTemporalDisplayables();t.save();var o,a,s={prevElClipPaths:null,prevEl:null,allClipped:!1,viewWidth:n.viewWidth,viewHeight:n.viewHeight,inHover:n.inHover};for(o=e.getCursor(),a=i.length;o<a;o++){(h=i[o]).beforeBrush&&h.beforeBrush(),h.innerBeforeBrush(),Dy(t,h,s,o===a-1),h.innerAfterBrush(),h.afterBrush&&h.afterBrush(),s.prevEl=h}for(var l=0,u=r.length;l<u;l++){var h;(h=r[l]).beforeBrush&&h.beforeBrush(),h.innerBeforeBrush(),Dy(t,h,s,l===u-1),h.innerAfterBrush(),h.afterBrush&&h.afterBrush(),s.prevEl=h}e.clearTemporalDisplayables(),e.notClear=!0,t.restore()}(t,e,n)),p&&i&&Ty(t,n),e.innerAfterBrush(),e.afterBrush&&e.afterBrush(),n.prevEl=e,e.__dirty=0,e.__isRendered=!0}}var Ly=new ny,ky=new Be(100),Py=["symbol","symbolSize","symbolKeepAspect","color","backgroundColor","dashArrayX","dashArrayY","maxTileWidth","maxTileHeight"];function Oy(t,e){if("none"===t)return null;var n=e.getDevicePixelRatio(),i=e.getZr(),r="svg"===i.painter.type;t.dirty&&Ly.delete(t);var o=Ly.get(t);if(o)return o;var a=T(t,{symbol:"rect",symbolSize:1,symbolKeepAspect:!0,color:"rgba(0, 0, 0, 0.2)",backgroundColor:null,dashArrayX:5,dashArrayY:5,rotation:0,maxTileWidth:512,maxTileHeight:512});"none"===a.backgroundColor&&(a.backgroundColor=null);var s={repeat:"repeat"};return function(t){for(var e,o=[n],s=!0,l=0;l<Py.length;++l){var u=a[Py[l]],h=typeof u;if(null!=u&&!F(u)&&"string"!==h&&"number"!==h&&"boolean"!==h){s=!1;break}o.push(u)}if(s){e=o.join(",")+(r?"-svg":"");var c=ky.get(e);c&&(r?t.svgElement=c:t.image=c)}var p,d=Ny(a.dashArrayX),f=function(t){if(!t||"object"==typeof t&&0===t.length)return[0,0];if("number"==typeof t){var e=Math.ceil(t);return[e,e]}var n=O(t,(function(t){return Math.ceil(t)}));return t.length%2?n.concat(n):n}(a.dashArrayY),g=Ry(a.symbol),y=(b=d,O(b,(function(t){return Ey(t)}))),v=Ey(f),m=!r&&C(),_=r&&i.painter.createSVGElement("g"),x=function(){for(var t=1,e=0,n=y.length;e<n;++e)t=yr(t,y[e]);var i=1;for(e=0,n=g.length;e<n;++e)i=yr(i,g[e].length);t*=i;var r=v*y.length*g.length;return{width:Math.max(1,Math.min(t,a.maxTileWidth)),height:Math.max(1,Math.min(r,a.maxTileHeight))}}();var b;m&&(m.width=x.width*n,m.height=x.height*n,p=m.getContext("2d"));(function(){p&&(p.clearRect(0,0,m.width,m.height),a.backgroundColor&&(p.fillStyle=a.backgroundColor,p.fillRect(0,0,m.width,m.height)));for(var t=0,e=0;e<f.length;++e)t+=f[e];if(t<=0)return;var o=-v,s=0,l=0,u=0;for(;o<x.height;){if(s%2==0){for(var h=l/2%g.length,c=0,y=0,b=0;c<2*x.width;){var w=0;for(e=0;e<d[u].length;++e)w+=d[u][e];if(w<=0)break;if(y%2==0){var S=.5*(1-a.symbolSize),M=c+d[u][y]*S,I=o+f[s]*S,T=d[u][y]*a.symbolSize,C=f[s]*a.symbolSize,A=b/2%g[h].length;D(M,I,T,C,g[h][A])}c+=d[u][y],++b,++y===d[u].length&&(y=0)}++u===d.length&&(u=0)}o+=f[s],++l,++s===f.length&&(s=0)}function D(t,e,o,s,l){var u=r?1:n,h=cy(l,t*u,e*u,o*u,s*u,a.color,a.symbolKeepAspect);r?_.appendChild(i.painter.paintOne(h)):Ay(p,h)}})(),s&&ky.put(e,m||_);t.image=m,t.svgElement=_,t.svgWidth=x.width,t.svgHeight=x.height}(s),s.rotation=a.rotation,s.scaleX=s.scaleY=r?1:1/n,Ly.set(t,s),t.dirty=!1,s}function Ry(t){if(!t||0===t.length)return[["rect"]];if("string"==typeof t)return[[t]];for(var e=!0,n=0;n<t.length;++n)if("string"!=typeof t[n]){e=!1;break}if(e)return Ry([t]);var i=[];for(n=0;n<t.length;++n)"string"==typeof t[n]?i.push([t[n]]):i.push(t[n]);return i}function Ny(t){if(!t||0===t.length)return[[0,0]];if("number"==typeof t)return[[r=Math.ceil(t),r]];for(var e=!0,n=0;n<t.length;++n)if("number"!=typeof t[n]){e=!1;break}if(e)return Ny([t]);var i=[];for(n=0;n<t.length;++n)if("number"==typeof t[n]){var r=Math.ceil(t[n]);i.push([r,r])}else{(r=O(t[n],(function(t){return Math.ceil(t)}))).length%2==1?i.push(r.concat(r)):i.push(r)}return i}function Ey(t){for(var e=0,n=0;n<t.length;++n)e+=t[n];return t.length%2==1?2*e:e}var zy=rt,By=P,Vy=G,Fy=X,Gy=A,Hy="undefined"!=typeof window,Wy=2e3,Yy=4500,Xy={PROCESSOR:{FILTER:1e3,SERIES_FILTER:800,STATISTIC:5e3},VISUAL:{LAYOUT:1e3,PROGRESSIVE_LAYOUT:1100,GLOBAL:Wy,CHART:3e3,POST_CHART_LAYOUT:4600,COMPONENT:4e3,BRUSH:5e3,CHART_ITEM:Yy,ARIA:6e3,DECAL:7e3}},Uy=/^[a-zA-Z0-9_]+$/,Zy="__connectUpdateStatus";function jy(t){return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];if(!this.isDisposed())return Ky(this,t,e);Sv(this.id)}}function qy(t){return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return Ky(this,t,e)}}function Ky(t,e,n){return n[0]=n[0]&&n[0].toLowerCase(),Ht.prototype[e].apply(t,n)}var $y,Jy,Qy,tv,ev,nv,iv,rv,ov,av,sv,lv,uv,hv,cv,pv,dv,fv,gv,yv,vv,mv=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e}(Ht),_v=mv.prototype;_v.on=qy("on"),_v.off=qy("off");var xv=function(t){function e(e,n,i){var r=t.call(this,new pg)||this;r._chartsViews=[],r._chartsMap={},r._componentsViews=[],r._componentsMap={},r._pendingActions=[],i=i||{},"string"==typeof n&&(n=kv[n]),r._dom=e;var o="canvas",a=!1,s=r._zr=Yi(e,{renderer:i.renderer||o,devicePixelRatio:i.devicePixelRatio,width:i.width,height:i.height,useDirtyRect:null==i.useDirtyRect?a:i.useDirtyRect});r._throttledZrFlush=Cf(B(s.flush,s),17),(n=w(n))&&Yp(n,!0),r._theme=n,r._locale=function(t){if(H(t)){var e=Ph[t.toUpperCase()]||{};return t===Dh||t===Lh?w(e):S(w(e),w(Ph.EN),!1)}return S(w(t),w(Ph.EN),!1)}(i.locale||Rh),r._coordSysMgr=new bp;var l=r._api=dv(r);function u(t,e){return t.__prio-e.__prio}return di(Lv,u),di(Tv,u),r._scheduler=new Vf(r,l,Tv,Lv),r._messageCenter=new mv,r._labelManager=new $g,r._initEvents(),r.resize=B(r.resize,r),s.animation.on("frame",r._onframe,r),av(s,r),sv(s,r),st(r),r}return n(e,t),e.prototype._onframe=function(){if(!this._disposed){vv(this);var t=this._scheduler;if(this.__optionUpdated){var e=this.__optionUpdated.silent;this.__flagInMainProcess=!0,$y(this),tv.update.call(this),this._zr.flush(),this.__flagInMainProcess=!1,this.__optionUpdated=!1,rv.call(this,e),ov.call(this,e)}else if(t.unfinished){var n=1,i=this._model,r=this._api;t.unfinished=!1;do{var o=+new Date;t.performSeriesTasks(i),t.performDataProcessorTasks(i),nv(this,i),t.performVisualTasks(i),cv(this,this._model,r,"remain"),n-=+new Date-o}while(n>0&&t.unfinished);t.unfinished||this._zr.flush()}}},e.prototype.getDom=function(){return this._dom},e.prototype.getId=function(){return this.id},e.prototype.getZr=function(){return this._zr},e.prototype.setOption=function(t,e,n){if(this._disposed)Sv(this.id);else{var i,r,o;if(Fy(e)&&(n=e.lazyUpdate,i=e.silent,r=e.replaceMerge,o=e.transition,e=e.notMerge),this.__flagInMainProcess=!0,!this._model||e){var a=new Sp(this._api),s=this._theme,l=this._model=new fp;l.scheduler=this._scheduler,l.init(null,null,null,s,this._locale,a)}this._model.setOption(t,{replaceMerge:r},Cv),gv(this,o),n?(this.__optionUpdated={silent:i},this.__flagInMainProcess=!1,this.getZr().wakeUp()):($y(this),tv.update.call(this),this._zr.flush(),this.__optionUpdated=!1,this.__flagInMainProcess=!1,rv.call(this,i),ov.call(this,i))}},e.prototype.setTheme=function(){console.error("ECharts#setTheme() is DEPRECATED in ECharts 3.0")},e.prototype.getModel=function(){return this._model},e.prototype.getOption=function(){return this._model&&this._model.getOption()},e.prototype.getWidth=function(){return this._zr.getWidth()},e.prototype.getHeight=function(){return this._zr.getHeight()},e.prototype.getDevicePixelRatio=function(){return this._zr.painter.dpr||Hy&&window.devicePixelRatio||1},e.prototype.getRenderedCanvas=function(t){if(a.canvasSupported)return(t=I({},t||{})).pixelRatio=t.pixelRatio||1,t.backgroundColor=t.backgroundColor||this._model.get("backgroundColor"),this._zr.painter.getRenderedCanvas(t)},e.prototype.getSvgDataURL=function(){if(a.svgSupported){var t=this._zr;return P(t.storage.getDisplayList(),(function(t){t.stopAnimation(null,!0)})),t.painter.toDataURL()}},e.prototype.getDataURL=function(t){if(!this._disposed){var e=(t=t||{}).excludeComponents,n=this._model,i=[],r=this;By(e,(function(t){n.eachComponent({mainType:t},(function(t){var e=r._componentsMap[t.__viewId];e.group.ignore||(i.push(e),e.group.ignore=!0)}))}));var o="svg"===this._zr.painter.getType()?this.getSvgDataURL():this.getRenderedCanvas(t).toDataURL("image/"+(t&&t.type||"png"));return By(i,(function(t){t.group.ignore=!1})),o}Sv(this.id)},e.prototype.getConnectedDataURL=function(t){if(this._disposed)Sv(this.id);else if(a.canvasSupported){var e="svg"===t.type,n=this.group,i=Math.min,r=Math.max,o=1/0;if(Rv[n]){var s=o,l=o,u=-1/0,h=-1/0,c=[],p=t&&t.pixelRatio||1;P(Ov,(function(o,a){if(o.group===n){var p=e?o.getZr().painter.getSvgDom().innerHTML:o.getRenderedCanvas(w(t)),d=o.getDom().getBoundingClientRect();s=i(d.left,s),l=i(d.top,l),u=r(d.right,u),h=r(d.bottom,h),c.push({dom:p,left:d.left,top:d.top})}}));var d=(u*=p)-(s*=p),f=(h*=p)-(l*=p),g=C(),y=Yi(g,{renderer:e?"svg":"canvas"});if(y.resize({width:d,height:f}),e){var v="";return By(c,(function(t){var e=t.left-s,n=t.top-l;v+='<g transform="translate('+e+","+n+')">'+t.dom+"</g>"})),y.painter.getSvgRoot().innerHTML=v,t.connectedBackgroundColor&&y.painter.setBackgroundColor(t.connectedBackgroundColor),y.refreshImmediately(),y.painter.toDataURL()}return t.connectedBackgroundColor&&y.add(new ss({shape:{x:0,y:0,width:d,height:f},style:{fill:t.connectedBackgroundColor}})),By(c,(function(t){var e=new ts({style:{x:t.left*p-s,y:t.top*p-l,image:t.dom}});y.add(e)})),y.refreshImmediately(),g.toDataURL("image/"+(t&&t.type||"png"))}return this.getDataURL(t)}},e.prototype.convertToPixel=function(t,e){return ev(this,"convertToPixel",t,e)},e.prototype.convertFromPixel=function(t,e){return ev(this,"convertFromPixel",t,e)},e.prototype.containPixel=function(t,e){var n;if(!this._disposed)return P(Rr(this._model,t),(function(t,i){i.indexOf("Models")>=0&&P(t,(function(t){var r=t.coordinateSystem;if(r&&r.containPoint)n=n||!!r.containPoint(e);else if("seriesModels"===i){var o=this._chartsMap[t.__viewId];o&&o.containPoint&&(n=n||o.containPoint(e,t))}else 0}),this)}),this),!!n;Sv(this.id)},e.prototype.getVisual=function(t,e){var n=Rr(this._model,t,{defaultMainType:"series"}),i=n.seriesModel;var r=i.getData(),o=n.hasOwnProperty("dataIndexInside")?n.dataIndexInside:n.hasOwnProperty("dataIndex")?r.indexOfRawIndex(n.dataIndex):null;return null!=o?fg(r,o,e):gg(r,e)},e.prototype.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},e.prototype.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]},e.prototype._initEvents=function(){var t,e,n,i=this;By(wv,(function(t){var e=function(e){var n,r=i.getModel(),o=e.target,a="globalout"===t;if(a?n={}:o&&ty(o,(function(t){var e=ms(t);if(e&&null!=e.dataIndex){var i=e.dataModel||r.getSeriesByIndex(e.seriesIndex);return n=i&&i.getDataParams(e.dataIndex,e.dataType)||{},!0}if(e.eventData)return n=I({},e.eventData),!0}),!0),n){var s=n.componentType,l=n.componentIndex;"markLine"!==s&&"markPoint"!==s&&"markArea"!==s||(s="series",l=n.seriesIndex);var u=s&&null!=l&&r.getComponent(s,l),h=u&&i["series"===u.mainType?"_chartsMap":"_componentsMap"][u.__viewId];0,n.event=e,n.type=t,i._$eventProcessor.eventInfo={targetEl:o,packedEvent:n,model:u,view:h},i.trigger(t,n)}};e.zrEventfulCallAtLast=!0,i._zr.on(t,e,i)})),By(Iv,(function(t,e){i._messageCenter.on(e,(function(t){this.trigger(e,t)}),i)})),By(["selectchanged"],(function(t){i._messageCenter.on(t,(function(e){this.trigger(t,e)}),i)})),t=this._messageCenter,e=this,n=this._api,t.on("selectchanged",(function(t){var i=n.getModel();t.isFromClick?(Qg("map","selectchanged",e,i,t),Qg("pie","selectchanged",e,i,t)):"select"===t.fromAction?(Qg("map","selected",e,i,t),Qg("pie","selected",e,i,t)):"unselect"===t.fromAction&&(Qg("map","unselected",e,i,t),Qg("pie","unselected",e,i,t))}))},e.prototype.isDisposed=function(){return this._disposed},e.prototype.clear=function(){this._disposed?Sv(this.id):this.setOption({series:[]},!0)},e.prototype.dispose=function(){if(this._disposed)Sv(this.id);else{this._disposed=!0,Br(this.getDom(),zv,"");var t=this._api,e=this._model;By(this._componentsViews,(function(n){n.dispose(e,t)})),By(this._chartsViews,(function(n){n.dispose(e,t)})),this._zr.dispose(),delete Ov[this.id]}},e.prototype.resize=function(t){if(this._disposed)Sv(this.id);else{this._zr.resize(t);var e=this._model;if(this._loadingFX&&this._loadingFX.resize(),e){var n=e.resetOption("media"),i=t&&t.silent;this.__flagInMainProcess=!0,n&&$y(this),tv.update.call(this,{type:"resize",animation:{duration:0}}),this.__flagInMainProcess=!1,rv.call(this,i),ov.call(this,i)}}},e.prototype.showLoading=function(t,e){if(this._disposed)Sv(this.id);else if(Fy(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),Pv[t]){var n=Pv[t](this._api,e),i=this._zr;this._loadingFX=n,i.add(n)}},e.prototype.hideLoading=function(){this._disposed?Sv(this.id):(this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null)},e.prototype.makeActionFromEvent=function(t){var e=I({},t);return e.type=Iv[t.type],e},e.prototype.dispatchAction=function(t,e){if(this._disposed)Sv(this.id);else if(Fy(e)||(e={silent:!!e}),Mv[t.type]&&this._model)if(this.__flagInMainProcess)this._pendingActions.push(t);else{var n=e.silent;iv.call(this,t,n);var i=e.flush;i?this._zr.flush():!1!==i&&a.browser.weChat&&this._throttledZrFlush(),rv.call(this,n),ov.call(this,n)}},e.prototype.updateLabelLayout=function(){var t=this._labelManager;t.updateLayoutConfig(this._api),t.layout(this._api),t.processLabelsOverall()},e.prototype.appendData=function(t){if(this._disposed)Sv(this.id);else{var e=t.seriesIndex,n=this.getModel().getSeriesByIndex(e);0,n.appendData(t),this._scheduler.unfinished=!0,this.getZr().wakeUp()}},e.internalField=function(){function t(t){for(var e=[],n=t.currentStates,i=0;i<n.length;i++){var r=n[i];"emphasis"!==r&&"blur"!==r&&"select"!==r&&e.push(r)}t.selected&&t.states.select&&e.push("select"),2===t.hoverState&&t.states.emphasis?e.push("emphasis"):1===t.hoverState&&t.states.blur&&e.push("blur"),t.useStates(e)}function e(t,e){if(!t.preventAutoZ){var n=t.get("z"),i=t.get("zlevel");e.group.traverse((function(t){if(!t.isGroup){null!=n&&(t.z=n),null!=i&&(t.zlevel=i);var e=t.getTextContent(),r=t.getTextGuideLine();if(e&&(e.z=t.z,e.zlevel=t.zlevel,e.z2=t.z2+2),r){var o=t.textGuideLineConfig&&t.textGuideLineConfig.showAbove;r.z=t.z,r.zlevel=t.zlevel,r.z2=t.z2+(o?1:-1)}}}))}}function i(t,e){e.group.traverse((function(t){if(!Fu(t)){var e=t.getTextContent(),n=t.getTextGuideLine();t.stateTransition&&(t.stateTransition=null),e&&e.stateTransition&&(e.stateTransition=null),n&&n.stateTransition&&(n.stateTransition=null),t.hasState()?(t.prevStates=t.currentStates,t.clearStates()):t.prevStates&&(t.prevStates=null)}}))}function r(e,n){var i=e.getModel("stateAnimation"),r=e.isAnimationEnabled(),o=i.get("duration"),a=o>0?{duration:o,delay:i.get("delay"),easing:i.get("easing")}:null;n.group.traverse((function(e){if(e.states&&e.states.emphasis){if(Fu(e))return;if(e instanceof qa&&function(t){var e=bs(t);e.normalFill=t.style.fill,e.normalStroke=t.style.stroke;var n=t.states.select||{};e.selectFill=n.style&&n.style.fill||null,e.selectStroke=n.style&&n.style.stroke||null}(e),e.__dirty){var n=e.prevStates;n&&e.useStates(n)}if(r){e.stateTransition=a;var i=e.getTextContent(),o=e.getTextGuideLine();i&&(i.stateTransition=a),o&&(o.stateTransition=a)}e.__dirty&&t(e)}}))}$y=function(t){var e=t._scheduler;e.restorePipelines(t._model),e.prepareStageTasks(),Jy(t,!0),Jy(t,!1),e.plan()},Jy=function(t,e){for(var n=t._model,i=t._scheduler,r=e?t._componentsViews:t._chartsViews,o=e?t._componentsMap:t._chartsMap,a=t._zr,s=t._api,l=0;l<r.length;l++)r[l].__alive=!1;function u(t){var l=t.__requireNewView;t.__requireNewView=!1;var u="_ec_"+t.id+"_"+t.type,h=!l&&o[u];if(!h){var c=Wr(t.type),p=e?ff.getClass(c.main,c.sub):mf.getClass(c.sub);0,(h=new p).init(n,s),o[u]=h,r.push(h),a.add(h.group)}t.__viewId=h.__id=u,h.__alive=!0,h.__model=t,h.group.__ecComponentInfo={mainType:t.mainType,index:t.componentIndex},!e&&i.prepareView(h,t,n,s)}e?n.eachComponent((function(t,e){"series"!==t&&u(e)})):n.eachSeries(u);for(l=0;l<r.length;){var h=r[l];h.__alive?l++:(!e&&h.renderTask.dispose(),a.remove(h.group),h.dispose(n,s),r.splice(l,1),o[h.__id]===h&&delete o[h.__id],h.__id=h.group.__ecComponentInfo=null)}},Qy=function(t,e,n,i,r){var o=t._model;if(o.setUpdatePayload(n),i){var a={};a[i+"Id"]=n[i+"Id"],a[i+"Index"]=n[i+"Index"],a[i+"Name"]=n[i+"Name"];var s={mainType:i,query:a};r&&(s.subType=r);var l,u=n.excludeSeriesId;null!=u&&(l=ht(),By(br(u),(function(t){var e=Ar(t,null);null!=e&&l.set(e,!0)}))),o&&o.eachComponent(s,(function(e){l&&null!=l.get(e.id)||(ll(n)&&!n.notBlur?e instanceof af&&function(t,e,n){if(ll(e)){var i=e.type===Ms,r=t.seriesIndex,o=t.getData(e.dataType),a=kr(o,e);a=(F(a)?a[0]:a)||0;var s=o.getItemGraphicEl(a);if(!s)for(var l=o.count(),u=0;!s&&u<l;)s=o.getItemGraphicEl(u++);if(s){var h=ms(s);$s(r,h.focus,h.blurScope,n,i)}else{var c=t.get(["emphasis","focus"]),p=t.get(["emphasis","blurScope"]);null!=c&&$s(r,c,p,n,i)}}}(e,n,t._api):sl(n)&&e instanceof af&&(!function(t,e,n){if(sl(e)){var i=e.dataType,r=kr(t.getData(i),e);F(r)||(r=[r]),t[e.type===As?"toggleSelect":e.type===Ts?"select":"unselect"](r,i)}}(e,n,t._api),Js(e),yv(t)),h(t["series"===i?"_chartsMap":"_componentsMap"][e.__viewId]))}),t)}else By([].concat(t._componentsViews).concat(t._chartsViews),h);function h(i){i&&i.__alive&&i[e]&&i[e](i.__model,o,t._api,n)}},tv={prepareAndUpdate:function(t){$y(this),tv.update.call(this,t)},update:function(t){var e=this._model,n=this._api,i=this._zr,r=this._coordSysMgr,o=this._scheduler;if(e){e.setUpdatePayload(t),o.restoreData(e,t),o.performSeriesTasks(e),r.create(e,n),o.performDataProcessorTasks(e,t),nv(this,e),r.update(e,n),lv(e),o.performVisualTasks(e,t),uv(this,e,n,t);var s=e.get("backgroundColor")||"transparent",l=e.get("darkMode");if(a.canvasSupported)i.setBackgroundColor(s),null!=l&&"auto"!==l&&i.setDarkMode(l);else{var u=$e(s);s=ln(u,"rgb"),0===u[3]&&(s="transparent")}pv(e,n)}},updateTransform:function(t){var e=this,n=this._model,i=this._api;if(n){n.setUpdatePayload(t);var r=[];n.eachComponent((function(o,a){if("series"!==o){var s=e.getViewOfComponentModel(a);if(s&&s.__alive)if(s.updateTransform){var l=s.updateTransform(a,n,i,t);l&&l.update&&r.push(s)}else r.push(s)}}));var o=ht();n.eachSeries((function(r){var a=e._chartsMap[r.__viewId];if(a.updateTransform){var s=a.updateTransform(r,n,i,t);s&&s.update&&o.set(r.uid,1)}else o.set(r.uid,1)})),lv(n),this._scheduler.performVisualTasks(n,t,{setDirty:!0,dirtyMap:o}),cv(this,n,i,t,o),pv(n,this._api)}},updateView:function(t){var e=this._model;e&&(e.setUpdatePayload(t),mf.markUpdateMethod(t,"updateView"),lv(e),this._scheduler.performVisualTasks(e,t,{setDirty:!0}),uv(this,this._model,this._api,t),pv(e,this._api))},updateVisual:function(t){var e=this,n=this._model;n&&(n.setUpdatePayload(t),n.eachSeries((function(t){t.getData().clearAllVisual()})),mf.markUpdateMethod(t,"updateVisual"),lv(n),this._scheduler.performVisualTasks(n,t,{visualType:"visual",setDirty:!0}),n.eachComponent((function(i,r){if("series"!==i){var o=e.getViewOfComponentModel(r);o&&o.__alive&&o.updateVisual(r,n,e._api,t)}})),n.eachSeries((function(i){e._chartsMap[i.__viewId].updateVisual(i,n,e._api,t)})),pv(n,this._api))},updateLayout:function(t){tv.update.call(this,t)}},ev=function(t,e,n,i){if(t._disposed)Sv(t.id);else{for(var r,o=t._model,a=t._coordSysMgr.getCoordinateSystems(),s=Rr(o,n),l=0;l<a.length;l++){var u=a[l];if(u[e]&&null!=(r=u[e](o,s,i)))return r}0}},nv=function(t,e){var n=t._chartsMap,i=t._scheduler;e.eachSeries((function(t){i.updateStreamModes(t,n[t.__viewId])}))},iv=function(t,e){var n=this,i=this.getModel(),r=t.type,o=t.escapeConnect,a=Mv[r],s=a.actionInfo,l=(s.update||"update").split(":"),u=l.pop(),h=null!=l[0]&&Wr(l[0]);this.__flagInMainProcess=!0;var c=[t],p=!1;t.batch&&(p=!0,c=O(t.batch,(function(e){return(e=T(I({},e),t)).batch=null,e})));var d,f=[],g=sl(t),y=ll(t)||g;if(By(c,(function(t){(d=(d=a.action(t,n._model,n._api))||I({},t)).type=s.event||d.type,f.push(d),y?(Qy(n,u,t,"series"),yv(n)):h&&Qy(n,u,t,h.main,h.sub)})),"none"===u||y||h||(this.__optionUpdated?($y(this),tv.update.call(this,t),this.__optionUpdated=!1):tv[u].call(this,t)),d=p?{type:s.event||r,escapeConnect:o,batch:f}:f[0],this.__flagInMainProcess=!1,!e){var v=this._messageCenter;if(v.trigger(d.type,d),g){var m={type:"selectchanged",escapeConnect:o,selected:Qs(i),isFromClick:t.isFromClick||!1,fromAction:t.type,fromActionPayload:t};v.trigger(m.type,m)}}},rv=function(t){for(var e=this._pendingActions;e.length;){var n=e.shift();iv.call(this,n,t)}},ov=function(t){!t&&this.trigger("updated")},av=function(t,e){t.on("rendered",(function(n){e.trigger("rendered",n),!t.animation.isFinished()||e.__optionUpdated||e._scheduler.unfinished||e._pendingActions.length||e.trigger("finished")}))},sv=function(t,e){t.on("mouseover",(function(t){var n=ty(t.target,al);if(n){var i=ms(n);$s(i.seriesIndex,i.focus,i.blurScope,e._api,!0),function(t,e){!Ks(t,e)&&!t.__highByOuter&&Fs(t,Os)}(n,t),yv(e)}})).on("mouseout",(function(t){var n=ty(t.target,al);if(n){var i=ms(n);$s(i.seriesIndex,i.focus,i.blurScope,e._api,!1),function(t,e){!Ks(t,e)&&!t.__highByOuter&&Fs(t,Rs)}(n,t),yv(e)}})).on("click",(function(t){var n=ty(t.target,(function(t){return null!=ms(t).dataIndex}),!0);if(n){var i=n.selected?"unselect":"select",r=ms(n);e._api.dispatchAction({type:i,dataType:r.dataType,dataIndexInside:r.dataIndex,seriesIndex:r.seriesIndex,isFromClick:!0})}}))},lv=function(t){t.clearColorPalette(),t.eachSeries((function(t){t.clearColorPalette()}))},uv=function(t,e,n,i){hv(t,e,n,i),By(t._chartsViews,(function(t){t.__alive=!1})),cv(t,e,n,i),By(t._chartsViews,(function(t){t.__alive||t.remove(e,n)}))},hv=function(t,n,o,a,s){By(s||t._componentsViews,(function(t){var s=t.__model;i(s,t),t.render(s,n,o,a),e(s,t),r(s,t)}))},cv=function(t,n,o,s,l){var u=t._scheduler,h=t._labelManager;h.clearLabels();var c=!1;n.eachSeries((function(e){var n=t._chartsMap[e.__viewId];n.__alive=!0;var r=n.renderTask;u.updatePayload(r,s),i(e,n),l&&l.get(e.uid)&&r.dirty(),r.perform(u.getPerformArgs(r))&&(c=!0),e.__transientTransitionOpt=null,n.group.silent=!!e.get("silent"),function(t,e){var n=t.get("blendMode")||null;0;e.group.traverse((function(t){t.isGroup||(t.style.blend=n),t.eachPendingDisplayable&&t.eachPendingDisplayable((function(t){t.style.blend=n}))}))}(e,n),Js(e),h.addLabelsOfSeries(n)})),u.unfinished=c||u.unfinished,h.updateLayoutConfig(o),h.layout(o),h.processLabelsOverall(),n.eachSeries((function(n){var i=t._chartsMap[n.__viewId];e(n,i),r(n,i)})),function(t,e){var n=t._zr.storage,i=0;n.traverse((function(t){t.isGroup||i++})),i>e.get("hoverLayerThreshold")&&!a.node&&!a.worker&&e.eachSeries((function(e){if(!e.preventUsingHoverLayer){var n=t._chartsMap[e.__viewId];n.__alive&&n.group.traverse((function(t){t.states.emphasis&&(t.states.emphasis.hoverLayer=!0)}))}}))}(t,n)},pv=function(t,e){By(Dv,(function(n){n(t,e)}))},yv=function(t){t.__needsUpdateStatus=!0,t.getZr().wakeUp()},vv=function(e){e.__needsUpdateStatus&&(e.getZr().storage.traverse((function(e){Fu(e)||t(e)})),e.__needsUpdateStatus=!1)},dv=function(t){return new(function(e){function i(){return null!==e&&e.apply(this,arguments)||this}return n(i,e),i.prototype.getCoordinateSystems=function(){return t._coordSysMgr.getCoordinateSystems()},i.prototype.getComponentByElement=function(e){for(;e;){var n=e.__ecComponentInfo;if(null!=n)return t._model.getComponent(n.mainType,n.index);e=e.parent}},i.prototype.enterEmphasis=function(e,n){Ys(e,n),yv(t)},i.prototype.leaveEmphasis=function(e,n){Xs(e,n),yv(t)},i.prototype.enterBlur=function(e){Us(e),yv(t)},i.prototype.leaveBlur=function(e){Zs(e),yv(t)},i.prototype.enterSelect=function(e){js(e),yv(t)},i.prototype.leaveSelect=function(e){qs(e),yv(t)},i.prototype.getModel=function(){return t.getModel()},i.prototype.getViewOfComponentModel=function(e){return t.getViewOfComponentModel(e)},i.prototype.getViewOfSeriesModel=function(e){return t.getViewOfSeriesModel(e)},i}(_p))(t)},fv=function(t){function e(t,e){for(var n=0;n<t.length;n++){t[n][Zy]=e}}By(Iv,(function(n,i){t._messageCenter.on(i,(function(n){if(Rv[t.group]&&0!==t[Zy]){if(n&&n.escapeConnect)return;var i=t.makeActionFromEvent(n),r=[];By(Ov,(function(e){e!==t&&e.group===t.group&&r.push(e)})),e(r,0),By(r,(function(t){1!==t[Zy]&&t.dispatchAction(i)})),e(r,2)}}))}))},gv=function(t,e){var n=t._model;P(br(e),(function(t){var e,i=t.from,r=t.to;null==r&&mr(e);var o={includeMainTypes:["series"],enableAll:!1,enableNone:!1},a=i?Rr(n,i,o):null,s=Rr(n,r,o).seriesModel;null==s&&(e=""),a&&a.seriesModel!==s&&(e=""),null!=e&&mr(e),s.__transientTransitionOpt={from:i?i.dimension:null,to:r.dimension,dividingMethod:t.dividingMethod}}))}}(),e}(Ht),bv=xv.prototype;bv.on=jy("on"),bv.off=jy("off"),bv.one=function(t,e,n){var i=this;vr(),this.on.call(this,t,(function n(){for(var r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];e&&e.apply&&e.apply(this,r),i.off(t,n)}),n)};var wv=["click","dblclick","mouseover","mouseout","mousemove","mousedown","mouseup","globalout","contextmenu"];function Sv(t){0}var Mv={},Iv={},Tv=[],Cv=[],Av=[],Dv=[],Lv=[],kv={},Pv={},Ov={},Rv={},Nv=+new Date-0,Ev=+new Date-0,zv="_echarts_instance_";function Bv(t){Rv[t]=!1}var Vv=Bv;function Fv(t){return Ov[function(t,e){return t.getAttribute?t.getAttribute(e):t[e]}(t,zv)]}function Gv(t,e){kv[t]=e}function Hv(t){Gy(Cv,t)<0&&Cv.push(t)}function Wv(t,e){$v(Tv,t,e,2e3)}function Yv(t){Gy(Av,t)<0&&t&&Av.push(t)}function Xv(t){Gy(Dv,t)<0&&t&&Dv.push(t)}function Uv(t,e,n){"function"==typeof e&&(n=e,e="");var i=Fy(t)?t.type:[t,t={event:e}][0];t.event=(t.event||i).toLowerCase(),e=t.event,Iv[e]||(zy(Uy.test(i)&&Uy.test(e)),Mv[i]||(Mv[i]={action:n,actionInfo:t}),Iv[e]=i)}function Zv(t,e){bp.register(t,e)}function jv(t,e){$v(Lv,t,e,1e3,"layout")}function qv(t,e){$v(Lv,t,e,3e3,"visual")}var Kv=[];function $v(t,e,n,i,r){if((Vy(e)||Fy(e))&&(n=e,e=i),!(Gy(Kv,n)>=0)){Kv.push(n);var o=Vf.wrapStageHandler(n,r);o.__prio=e,o.__raw=n,t.push(o)}}function Jv(t,e){Pv[t]=e}function Qv(t,e,n){ug(t,e,n)}var tm=function(t){var e=(t=w(t)).type,n="";e||mr(n);var i=e.split(":");2!==i.length&&mr(n);var r=!1;"echarts"===i[0]&&(e=i[1],r=!0),t.__isBuiltIn=r,Ed.set(e,t)};qv(Wy,Rf),qv(Yy,Ef),qv(Yy,zf),qv(Wy,dg),qv(Yy,{createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){if(t.hasSymbolVisual&&!e.isSeriesFiltered(t))return{dataEach:t.getData().hasItemOption?function(t,e){var n=t.getItemModel(e),i=n.getShallow("symbol",!0),r=n.getShallow("symbolSize",!0),o=n.getShallow("symbolRotate",!0),a=n.getShallow("symbolKeepAspect",!0);null!=i&&t.setItemVisual(e,"symbol",i),null!=r&&t.setItemVisual(e,"symbolSize",r),null!=o&&t.setItemVisual(e,"symbolRotate",o),null!=a&&t.setItemVisual(e,"symbolKeepAspect",a)}:null}}}),qv(7e3,(function(t,e){t.eachRawSeries((function(n){if(!t.isSeriesFiltered(n)){var i=n.getData();i.hasItemVisual()&&i.each((function(t){var n=i.getItemVisual(t,"decal");n&&(i.ensureUniqueItemVisual(t,"style").decal=Oy(n,e))}));var r=i.getVisual("decal");if(r)i.getVisual("style").decal=Oy(r,e)}}))})),Hv(Yp),Wv(900,(function(t){var e=ht();t.eachSeries((function(t){var n=t.get("stack");if(n){var i=e.get(n)||e.set(n,[]),r=t.getData(),o={stackResultDimension:r.getCalculationInfo("stackResultDimension"),stackedOverDimension:r.getCalculationInfo("stackedOverDimension"),stackedDimension:r.getCalculationInfo("stackedDimension"),stackedByDimension:r.getCalculationInfo("stackedByDimension"),isStackedByIndex:r.getCalculationInfo("isStackedByIndex"),data:r,seriesModel:t};if(!o.stackedDimension||!o.isStackedByIndex&&!o.stackedByDimension)return;i.length&&r.setCalculationInfo("stackedOnSeries",i[i.length-1].seriesModel),i.push(o)}})),e.each(Xp)})),Jv("default",(function(t,e){T(e=e||{},{text:"loading",textColor:"#000",fontSize:12,fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",maskColor:"rgba(255, 255, 255, 0.8)",showSpinner:!0,color:"#5470c6",spinnerRadius:10,lineWidth:5,zlevel:0});var n=new Vi,i=new ss({style:{fill:e.maskColor},zlevel:e.zlevel,z:1e4});n.add(i);var r,o=new hs({style:{text:e.text,fill:e.textColor,fontSize:e.fontSize,fontWeight:e.fontWeight,fontStyle:e.fontStyle,fontFamily:e.fontFamily}}),a=new ss({style:{fill:"none"},textContent:o,textConfig:{position:"right",distance:10},zlevel:e.zlevel,z:10001});return n.add(a),e.showSpinner&&((r=new lu({shape:{startAngle:-Bf/2,endAngle:-Bf/2+.1,r:e.spinnerRadius},style:{stroke:e.color,lineCap:"round",lineWidth:e.lineWidth},zlevel:e.zlevel,z:10001})).animateShape(!0).when(1e3,{endAngle:3*Bf/2}).start("circularInOut"),r.animateShape(!0).when(1e3,{startAngle:3*Bf/2}).delay(300).start("circularInOut"),n.add(r)),n.resize=function(){var n=o.getBoundingRect().width,s=e.showSpinner?e.spinnerRadius:0,l=(t.getWidth()-2*s-(e.showSpinner&&n?10:0)-n)/2-(e.showSpinner&&n?0:5+n/2)+(e.showSpinner?0:n/2)+(n?0:s),u=t.getHeight()/2;e.showSpinner&&r.setShape({cx:l,cy:u}),a.setShape({x:l-s,y:u-s,width:2*s,height:2*s}),i.setShape({x:0,y:0,width:t.getWidth(),height:t.getHeight()})},n.resize(),n})),Uv({type:Ms,event:Ms,update:Ms},ft),Uv({type:Is,event:Is,update:Is},ft),Uv({type:Ts,event:Ts,update:Ts},ft),Uv({type:Cs,event:Cs,update:Cs},ft),Uv({type:As,event:As,update:As},ft),Gv("light",eg),Gv("dark",ag);var em=[],nm={registerPreprocessor:Hv,registerProcessor:Wv,registerPostInit:Yv,registerPostUpdate:Xv,registerAction:Uv,registerCoordinateSystem:Zv,registerLayout:jv,registerVisual:qv,registerTransform:tm,registerLoading:Jv,registerMap:Qv,PRIORITY:Xy,ComponentModel:zc,ComponentView:ff,SeriesModel:af,ChartView:mf,registerComponentModel:function(t){zc.registerClass(t)},registerComponentView:function(t){ff.registerClass(t)},registerSeriesModel:function(t){af.registerClass(t)},registerChartView:function(t){mf.registerClass(t)},registerSubTypeDefaulter:function(t,e){zc.registerSubTypeDefaulter(t,e)},registerPainter:function(t,e){Xi(t,e)}};function im(t){F(t)?P(t,(function(t){im(t)})):A(em,t)>=0||(em.push(t),G(t)&&(t={install:t}),t.install(nm))}function rm(t){return null==t?0:t.length||1}function om(t){return t}var am=function(){function t(t,e,n,i,r,o){this._old=t,this._new=e,this._oldKeyGetter=n||om,this._newKeyGetter=i||om,this.context=r,this._diffModeMultiple="multiple"===o}return t.prototype.add=function(t){return this._add=t,this},t.prototype.update=function(t){return this._update=t,this},t.prototype.updateManyToOne=function(t){return this._updateManyToOne=t,this},t.prototype.updateOneToMany=function(t){return this._updateOneToMany=t,this},t.prototype.remove=function(t){return this._remove=t,this},t.prototype.execute=function(){this[this._diffModeMultiple?"_executeMultiple":"_executeOneToOne"]()},t.prototype._executeOneToOne=function(){var t=this._old,e=this._new,n={},i=new Array(t.length),r=new Array(e.length);this._initIndexMap(t,null,i,"_oldKeyGetter"),this._initIndexMap(e,n,r,"_newKeyGetter");for(var o=0;o<t.length;o++){var a=i[o],s=n[a],l=rm(s);if(l>1){var u=s.shift();1===s.length&&(n[a]=s[0]),this._update&&this._update(u,o)}else 1===l?(n[a]=null,this._update&&this._update(s,o)):this._remove&&this._remove(o)}this._performRestAdd(r,n)},t.prototype._executeMultiple=function(){var t=this._old,e=this._new,n={},i={},r=[],o=[];this._initIndexMap(t,n,r,"_oldKeyGetter"),this._initIndexMap(e,i,o,"_newKeyGetter");for(var a=0;a<r.length;a++){var s=r[a],l=n[s],u=i[s],h=rm(l),c=rm(u);if(h>1&&1===c)this._updateManyToOne&&this._updateManyToOne(u,l),i[s]=null;else if(1===h&&c>1)this._updateOneToMany&&this._updateOneToMany(u,l),i[s]=null;else if(1===h&&1===c)this._update&&this._update(u,l),i[s]=null;else if(h>1)for(var p=0;p<h;p++)this._remove&&this._remove(l[p]);else this._remove&&this._remove(l)}this._performRestAdd(o,i)},t.prototype._performRestAdd=function(t,e){for(var n=0;n<t.length;n++){var i=t[n],r=e[i],o=rm(r);if(o>1)for(var a=0;a<o;a++)this._add&&this._add(r[a]);else 1===o&&this._add&&this._add(r);e[i]=null}},t.prototype._initIndexMap=function(t,e,n,i){for(var r=this._diffModeMultiple,o=0;o<t.length;o++){var a="_ec_"+this[i](t[o],o);if(r||(n[o]=a),e){var s=e[a],l=rm(s);0===l?(e[a]=o,r&&n.push(a)):1===l?e[a]=[s,o]:s.push(o)}}},t}();function sm(t,e){return t.hasOwnProperty(e)||(t[e]=[]),t[e]}function lm(t){return"category"===t?"ordinal":"time"===t?"time":"float"}var um,hm,cm,pm,dm,fm,gm,ym,vm,mm,_m,xm,bm,wm,Sm=function(t){this.otherDims={},null!=t&&I(this,t)},Mm=Math.floor,Im=X,Tm=O,Cm="undefined",Am={float:typeof Float64Array===Cm?Array:Float64Array,int:typeof Int32Array===Cm?Array:Int32Array,ordinal:Array,number:Array,time:Array},Dm=typeof Uint32Array===Cm?Array:Uint32Array,Lm=typeof Int32Array===Cm?Array:Int32Array,km=typeof Uint16Array===Cm?Array:Uint16Array,Pm=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_rawData","_dimValueGetter","_count","_rawCount","_nameDimIdx","_idDimIdx","_nameRepeatCount"],Om=["_extent","_approximateExtent","_rawExtent"],Rm=function(){function t(t,e){this.type="list",this._count=0,this._rawCount=0,this._storage={},this._storageArr=[],this._nameList=[],this._idList=[],this._visual={},this._layout={},this._itemVisuals=[],this._itemLayouts=[],this._graphicEls=[],this._rawExtent={},this._extent={},this._approximateExtent={},this._calculationInfo={},this.hasItemOption=!0,this.TRANSFERABLE_METHODS=["cloneShallow","downSample","lttbDownSample","map"],this.CHANGABLE_METHODS=["filterSelf","selectRange"],this.DOWNSAMPLE_METHODS=["downSample","lttbDownSample"],this.getRawIndex=dm,t=t||["x","y"];for(var n={},i=[],r={},o=0;o<t.length;o++){var a=t[o],s=H(a)?new Sm({name:a}):a instanceof Sm?a:new Sm(a),l=s.name;s.type=s.type||"float",s.coordDim||(s.coordDim=l,s.coordDimIndex=0);var u=s.otherDims=s.otherDims||{};i.push(l),n[l]=s,s.index=o,s.createInvertedIndices&&(r[l]=[]),0===u.itemName&&(this._nameDimIdx=o,this._nameOrdinalMeta=s.ordinalMeta),0===u.itemId&&(this._idDimIdx=o,this._idOrdinalMeta=s.ordinalMeta)}this.dimensions=i,this._dimensionInfos=n,this.hostModel=e,this._dimensionsSummary=function(t){var e={},n=e.encode={},i=ht(),r=[],o=[],a=e.userOutput={dimensionNames:t.dimensions.slice(),encode:{}};P(t.dimensions,(function(e){var s,l=t.getDimensionInfo(e),u=l.coordDim;if(u){var h=l.coordDimIndex;sm(n,u)[h]=e,l.isExtraCoord||(i.set(u,1),"ordinal"!==(s=l.type)&&"time"!==s&&(r[0]=e),sm(a.encode,u)[h]=l.index),l.defaultTooltip&&o.push(e)}Gc.each((function(t,e){var i=sm(n,e),r=l.otherDims[e];null!=r&&!1!==r&&(i[r]=l.name)}))}));var s=[],l={};i.each((function(t,e){var i=n[e];l[e]=i[0],s=s.concat(i)})),e.dataDimsOnCoord=s,e.encodeFirstDimNotExtra=l;var u=n.label;u&&u.length&&(r=u.slice());var h=n.tooltip;return h&&h.length?o=h.slice():o.length||(o=r.slice()),n.defaultedLabel=r,n.defaultedTooltip=o,e}(this),this._invertedIndicesMap=r,this.userOutput=this._dimensionsSummary.userOutput}return t.prototype.getDimension=function(t){return"number"!=typeof t&&(isNaN(t)||this._dimensionInfos.hasOwnProperty(t))||(t=this.dimensions[t]),t},t.prototype.getDimensionInfo=function(t){return this._dimensionInfos[this.getDimension(t)]},t.prototype.getDimensionsOnCoord=function(){return this._dimensionsSummary.dataDimsOnCoord.slice()},t.prototype.mapDimension=function(t,e){var n=this._dimensionsSummary;if(null==e)return n.encodeFirstDimNotExtra[t];var i=n.encode[t];return i?i[e]:null},t.prototype.mapDimensionsAll=function(t){return(this._dimensionsSummary.encode[t]||[]).slice()},t.prototype.initData=function(t,e,n){var i=Jp(t)||k(t),r=i?new od(t,this.dimensions.length):t;this._rawData=r;var o=r.getSource().sourceFormat;this._storage={},this._indices=null,this._dontMakeIdFromName=null!=this._idDimIdx||o===Uc||!!r.fillStorage,this._nameList=(e||[]).slice(),this._idList=[],this._nameRepeatCount={},n||(this.hasItemOption=!1),this.defaultDimValueGetter=um[o],this._dimValueGetter=n=n||this.defaultDimValueGetter,this._dimValueGetterArrayRows=um.arrayRows,this._rawExtent={},this._initDataFromProvider(0,r.count()),r.pure&&(this.hasItemOption=!1)},t.prototype.getProvider=function(){return this._rawData},t.prototype.appendData=function(t){var e=this._rawData,n=this.count();e.appendData(t);var i=e.count();e.persistent||(i+=n),this._initDataFromProvider(n,i,!0)},t.prototype.appendValues=function(t,e){for(var n=this._storage,i=this.dimensions,r=i.length,o=this._rawExtent,a=this.count(),s=a+Math.max(t.length,e?e.length:0),l=0;l<r;l++){var u=i[l];o[u]||(o[u]=xm()),pm(n,this._dimensionInfos[u],s,!0)}for(var h=Tm(i,(function(t){return o[t]})),c=this._storageArr=Tm(i,(function(t){return n[t]})),p=[],d=a;d<s;d++){for(var f=d-a,g=0;g<r;g++){u=i[g];var y=this._dimValueGetterArrayRows(t[f]||p,u,f,g);c[g][d]=y;var v=h[g];y<v[0]&&(v[0]=y),y>v[1]&&(v[1]=y)}e&&(this._nameList[d]=e[f],this._dontMakeIdFromName||vm(this,d))}this._rawCount=this._count=s,this._extent={},hm(this)},t.prototype._initDataFromProvider=function(t,e,n){if(!(t>=e)){for(var i=this._rawData,r=this._storage,o=this.dimensions,a=o.length,s=this._dimensionInfos,l=this._nameList,u=this._idList,h=this._rawExtent,c=i.getSource().sourceFormat===Hc,p=0;p<a;p++){var d=o[p];h[d]||(h[d]=xm()),pm(r,s[d],e,n)}var f=this._storageArr=Tm(o,(function(t){return r[t]})),g=Tm(o,(function(t){return h[t]}));if(i.fillStorage)i.fillStorage(t,e,f,g);else for(var y=[],v=t;v<e;v++){y=i.getItem(v,y);for(var m=0;m<a;m++){d=o[m];var _=f[m],x=this._dimValueGetter(y,d,v,m);_[v]=x;var b=g[m];x<b[0]&&(b[0]=x),x>b[1]&&(b[1]=x)}if(c&&!i.pure&&y){var w=y.name;null==l[v]&&null!=w&&(l[v]=Ar(w,null));var S=y.id;null==u[v]&&null!=S&&(u[v]=Ar(S,null))}this._dontMakeIdFromName||vm(this,v)}!i.persistent&&i.clean&&i.clean(),this._rawCount=this._count=e,this._extent={},hm(this)}},t.prototype.count=function(){return this._count},t.prototype.getIndices=function(){var t,e=this._indices;if(e){var n=e.constructor,i=this._count;if(n===Array){t=new n(i);for(var r=0;r<i;r++)t[r]=e[r]}else t=new n(e.buffer,0,i)}else{t=new(n=cm(this))(this.count());for(r=0;r<t.length;r++)t[r]=r}return t},t.prototype.getByDimIdx=function(t,e){if(!(e>=0&&e<this._count))return NaN;var n=this._storageArr[t];return n?n[this.getRawIndex(e)]:NaN},t.prototype.get=function(t,e){if(!(e>=0&&e<this._count))return NaN;var n=this._storage[t];return n?n[this.getRawIndex(e)]:NaN},t.prototype.getByRawIndex=function(t,e){if(!(e>=0&&e<this._rawCount))return NaN;var n=this._storage[t];return n?n[e]:NaN},t.prototype.getValues=function(t,e){var n=[];F(t)||(e=t,t=this.dimensions);for(var i=0,r=t.length;i<r;i++)n.push(this.get(t[i],e));return n},t.prototype.hasValue=function(t){for(var e=this._dimensionsSummary.dataDimsOnCoord,n=0,i=e.length;n<i;n++)if(isNaN(this.get(e[n],t)))return!1;return!0},t.prototype.getDataExtent=function(t){t=this.getDimension(t);var e=this._storage[t],n=xm();if(!e)return n;var i,r=this.count();if(!this._indices)return this._rawExtent[t].slice();if(i=this._extent[t])return i.slice();for(var o=(i=n)[0],a=i[1],s=0;s<r;s++){var l=e[this.getRawIndex(s)];l<o&&(o=l),l>a&&(a=l)}return i=[o,a],this._extent[t]=i,i},t.prototype.getApproximateExtent=function(t){return t=this.getDimension(t),this._approximateExtent[t]||this.getDataExtent(t)},t.prototype.setApproximateExtent=function(t,e){e=this.getDimension(e),this._approximateExtent[e]=t.slice()},t.prototype.getCalculationInfo=function(t){return this._calculationInfo[t]},t.prototype.setCalculationInfo=function(t,e){Im(t)?I(this._calculationInfo,t):this._calculationInfo[t]=e},t.prototype.getSum=function(t){var e=0;if(this._storage[t])for(var n=0,i=this.count();n<i;n++){var r=this.get(t,n);isNaN(r)||(e+=r)}return e},t.prototype.getMedian=function(t){var e=[];this.each(t,(function(t){isNaN(t)||e.push(t)}));var n=e.sort((function(t,e){return t-e})),i=this.count();return 0===i?0:i%2==1?n[(i-1)/2]:(n[i/2]+n[i/2-1])/2},t.prototype.rawIndexOf=function(t,e){var n=t&&this._invertedIndicesMap[t];var i=n[e];return null==i||isNaN(i)?-1:i},t.prototype.indexOfName=function(t){for(var e=0,n=this.count();e<n;e++)if(this.getName(e)===t)return e;return-1},t.prototype.indexOfRawIndex=function(t){if(t>=this._rawCount||t<0)return-1;if(!this._indices)return t;var e=this._indices,n=e[t];if(null!=n&&n<this._count&&n===t)return t;for(var i=0,r=this._count-1;i<=r;){var o=(i+r)/2|0;if(e[o]<t)i=o+1;else{if(!(e[o]>t))return o;r=o-1}}return-1},t.prototype.indicesOfNearest=function(t,e,n){var i=this._storage[t],r=[];if(!i)return r;null==n&&(n=1/0);for(var o=1/0,a=-1,s=0,l=0,u=this.count();l<u;l++){var h=e-i[this.getRawIndex(l)],c=Math.abs(h);c<=n&&((c<o||c===o&&h>=0&&a<0)&&(o=c,a=h,s=0),h===a&&(r[s++]=l))}return r.length=s,r},t.prototype.getRawDataItem=function(t){if(this._rawData.persistent)return this._rawData.getItem(this.getRawIndex(t));for(var e=[],n=0;n<this.dimensions.length;n++){var i=this.dimensions[n];e.push(this.get(i,t))}return e},t.prototype.getName=function(t){var e=this.getRawIndex(t),n=this._nameList[e];return null==n&&null!=this._nameDimIdx&&(n=ym(this,this._nameDimIdx,this._nameOrdinalMeta,e)),null==n&&(n=""),n},t.prototype.getId=function(t){return gm(this,this.getRawIndex(t))},t.prototype.each=function(t,e,n,i){var r=this;if(this._count){"function"==typeof t&&(i=n,n=e,e=t,t=[]);var o=n||i||this,a=Tm(mm(t),this.getDimension,this);0;for(var s=a.length,l=Tm(a,(function(t){return r._dimensionInfos[t].index})),u=this._storageArr,h=0,c=this.count();h<c;h++){var p=this.getRawIndex(h);switch(s){case 0:e.call(o,h);break;case 1:e.call(o,u[l[0]][p],h);break;case 2:e.call(o,u[l[0]][p],u[l[1]][p],h);break;default:for(var d=0,f=[];d<s;d++)f[d]=u[l[d]][p];f[d]=h,e.apply(o,f)}}}},t.prototype.filterSelf=function(t,e,n,i){var r=this;if(this._count){"function"==typeof t&&(i=n,n=e,e=t,t=[]);var o=n||i||this,a=Tm(mm(t),this.getDimension,this);0;for(var s=this.count(),l=new(cm(this))(s),u=[],h=a.length,c=0,p=Tm(a,(function(t){return r._dimensionInfos[t].index})),d=p[0],f=this._storageArr,g=0;g<s;g++){var y=void 0,v=this.getRawIndex(g);if(0===h)y=e.call(o,g);else if(1===h){var m=f[d][v];y=e.call(o,m,g)}else{for(var _=0;_<h;_++)u[_]=f[p[_]][v];u[_]=g,y=e.apply(o,u)}y&&(l[c++]=v)}return c<s&&(this._indices=l),this._count=c,this._extent={},this.getRawIndex=this._indices?fm:dm,this}},t.prototype.selectRange=function(t){var e=this,n=this._count;if(n){var i=[];for(var r in t)t.hasOwnProperty(r)&&i.push(r);0;var o=i.length;if(o){var a=this.count(),s=new(cm(this))(a),l=0,u=i[0],h=Tm(i,(function(t){return e._dimensionInfos[t].index})),c=t[u][0],p=t[u][1],d=this._storageArr,f=!1;if(!this._indices){var g=0;if(1===o){for(var y=d[h[0]],v=0;v<n;v++){((b=y[v])>=c&&b<=p||isNaN(b))&&(s[l++]=g),g++}f=!0}else if(2===o){y=d[h[0]];var m=d[h[1]],_=t[i[1]][0],x=t[i[1]][1];for(v=0;v<n;v++){var b=y[v],w=m[v];(b>=c&&b<=p||isNaN(b))&&(w>=_&&w<=x||isNaN(w))&&(s[l++]=g),g++}f=!0}}if(!f)if(1===o)for(v=0;v<a;v++){var S=this.getRawIndex(v);((b=d[h[0]][S])>=c&&b<=p||isNaN(b))&&(s[l++]=S)}else for(v=0;v<a;v++){for(var M=!0,I=(S=this.getRawIndex(v),0);I<o;I++){var T=i[I];((b=d[h[I]][S])<t[T][0]||b>t[T][1])&&(M=!1)}M&&(s[l++]=this.getRawIndex(v))}return l<a&&(this._indices=s),this._count=l,this._extent={},this.getRawIndex=this._indices?fm:dm,this}}},t.prototype.mapArray=function(t,e,n,i){"function"==typeof t&&(i=n,n=e,e=t,t=[]),n=n||i||this;var r=[];return this.each(t,(function(){r.push(e&&e.apply(this,arguments))}),n),r},t.prototype.map=function(t,e,n,i){var r=n||i||this,o=Tm(mm(t),this.getDimension,this);var a=_m(this,o),s=a._storage;a._indices=this._indices,a.getRawIndex=a._indices?fm:dm;for(var l=[],u=o.length,h=this.count(),c=[],p=a._rawExtent,d=0;d<h;d++){for(var f=0;f<u;f++)c[f]=this.get(o[f],d);c[u]=d;var g=e&&e.apply(r,c);if(null!=g){"object"!=typeof g&&(l[0]=g,g=l);for(var y=this.getRawIndex(d),v=0;v<g.length;v++){var m=o[v],_=g[v],x=p[m],b=s[m];b&&(b[y]=_),_<x[0]&&(x[0]=_),_>x[1]&&(x[1]=_)}}}return a},t.prototype.downSample=function(t,e,n,i){for(var r=_m(this,[t]),o=r._storage,a=[],s=Mm(1/e),l=o[t],u=this.count(),h=r._rawExtent[t],c=new(cm(this))(u),p=0,d=0;d<u;d+=s){s>u-d&&(s=u-d,a.length=s);for(var f=0;f<s;f++){var g=this.getRawIndex(d+f);a[f]=l[g]}var y=n(a),v=this.getRawIndex(Math.min(d+i(a,y)||0,u-1));l[v]=y,y<h[0]&&(h[0]=y),y>h[1]&&(h[1]=y),c[p++]=v}return r._count=p,r._indices=c,r.getRawIndex=fm,r},t.prototype.lttbDownSample=function(t,e){var n,i,r,o=_m(this,[]),a=o._storage[t],s=this.count(),l=new(cm(this))(s),u=0,h=Mm(1/e),c=this.getRawIndex(0);l[u++]=c;for(var p=1;p<s-1;p+=h){for(var d=Math.min(p+h,s-1),f=Math.min(p+2*h,s),g=(f+d)/2,y=0,v=d;v<f;v++){var m=a[S=this.getRawIndex(v)];isNaN(m)||(y+=m)}y/=f-d;var _=p,x=Math.min(p+h,s),b=p-1,w=a[c];n=-1,r=_;for(v=_;v<x;v++){var S;m=a[S=this.getRawIndex(v)];isNaN(m)||(i=Math.abs((b-g)*(m-w)-(b-v)*(y-w)))>n&&(n=i,r=S)}l[u++]=r,c=r}return l[u++]=this.getRawIndex(s-1),o._count=u,o._indices=l,o.getRawIndex=fm,o},t.prototype.getItemModel=function(t){var e=this.hostModel,n=this.getRawDataItem(t);return new Ih(n,e,e&&e.ecModel)},t.prototype.diff=function(t){var e=this;return new am(t?t.getIndices():[],this.getIndices(),(function(e){return gm(t,e)}),(function(t){return gm(e,t)}))},t.prototype.getVisual=function(t){var e=this._visual;return e&&e[t]},t.prototype.setVisual=function(t,e){this._visual=this._visual||{},Im(t)?I(this._visual,t):this._visual[t]=e},t.prototype.getItemVisual=function(t,e){var n=this._itemVisuals[t],i=n&&n[e];return null==i?this.getVisual(e):i},t.prototype.hasItemVisual=function(){return this._itemVisuals.length>0},t.prototype.ensureUniqueItemVisual=function(t,e){var n=this._itemVisuals,i=n[t];i||(i=n[t]={});var r=i[e];return null==r&&(F(r=this.getVisual(e))?r=r.slice():Im(r)&&(r=I({},r)),i[e]=r),r},t.prototype.setItemVisual=function(t,e,n){var i=this._itemVisuals[t]||{};this._itemVisuals[t]=i,Im(e)?I(i,e):i[e]=n},t.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},t.prototype.setLayout=function(t,e){if(Im(t))for(var n in t)t.hasOwnProperty(n)&&this.setLayout(n,t[n]);else this._layout[t]=e},t.prototype.getLayout=function(t){return this._layout[t]},t.prototype.getItemLayout=function(t){return this._itemLayouts[t]},t.prototype.setItemLayout=function(t,e,n){this._itemLayouts[t]=n?I(this._itemLayouts[t]||{},e):e},t.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},t.prototype.setItemGraphicEl=function(t,e){var n=this.hostModel;if(e){var i=ms(e);i.dataIndex=t,i.dataType=this.dataType,i.seriesIndex=n&&n.seriesIndex,"group"===e.type&&e.traverse(bm,e)}this._graphicEls[t]=e},t.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},t.prototype.eachItemGraphicEl=function(t,e){P(this._graphicEls,(function(n,i){n&&t&&t.call(e,n,i)}))},t.prototype.cloneShallow=function(e){e||(e=new t(Tm(this.dimensions,this.getDimensionInfo,this),this.hostModel));if(e._storage=this._storage,e._storageArr=this._storageArr,wm(e,this),this._indices){var n=this._indices.constructor;if(n===Array){var i=this._indices.length;e._indices=new n(i);for(var r=0;r<i;r++)e._indices[r]=this._indices[r]}else e._indices=new n(this._indices)}else e._indices=null;return e.getRawIndex=e._indices?fm:dm,e},t.prototype.wrapMethod=function(t,e){var n=this[t];"function"==typeof n&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var t=n.apply(this,arguments);return e.apply(this,[t].concat(nt(arguments)))})},t.internalField=function(){function e(t,e,n,i){return Sd(t[i],this._dimensionInfos[e])}um={arrayRows:e,objectRows:function(t,e,n,i){return Sd(t[e],this._dimensionInfos[e])},keyedColumns:e,original:function(t,e,n,i){var r=t&&(null==t.value?t:t.value);return!this._rawData.pure&&function(t){return X(t)&&!(t instanceof Array)}(t)&&(this.hasItemOption=!0),Sd(r instanceof Array?r[i]:r,this._dimensionInfos[e])},typedArray:function(t,e,n,i){return t[i]}},hm=function(t){var e=t._invertedIndicesMap;P(e,(function(n,i){var r=t._dimensionInfos[i].ordinalMeta;if(r){n=e[i]=new Lm(r.categories.length);for(var o=0;o<n.length;o++)n[o]=-1;for(o=0;o<t._count;o++)n[t.get(i,o)]=o}}))},ym=function(t,e,n,i){var r,o=t._storageArr[e];return o&&(r=o[i],n&&n.categories.length&&(r=n.categories[r])),Ar(r,null)},cm=function(t){return t._rawCount>65535?Dm:km},pm=function(t,e,n,i){var r=Am[e.type],o=e.name;if(i){var a=t[o],s=a&&a.length;if(s!==n){for(var l=new r(n),u=0;u<s;u++)l[u]=a[u];t[o]=l}}else t[o]=new r(n)},dm=function(t){return t},fm=function(t){return t<this._count&&t>=0?this._indices[t]:-1},gm=function(t,e){var n=t._idList[e];return null==n&&null!=t._idDimIdx&&(n=ym(t,t._idDimIdx,t._idOrdinalMeta,e)),null==n&&(n="e\0\0"+e),n},mm=function(t){return F(t)||(t=null!=t?[t]:[]),t},function(t,e){for(var n=0;n<e.length;n++)t._dimensionInfos[e[n]]||console.error("Unkown dimension "+e[n])},_m=function(e,n){var i=e.dimensions,r=new t(Tm(i,e.getDimensionInfo,e),e.hostModel);wm(r,e);for(var o,a,s=r._storage={},l=e._storage,u=r._storageArr=[],h=0;h<i.length;h++){var c=i[h];l[c]&&(A(n,c)>=0?(s[c]=(o=l[c],a=void 0,(a=o.constructor)===Array?o.slice():new a(o)),r._rawExtent[c]=xm(),r._extent[c]=null):s[c]=l[c],u.push(s[c]))}return r},xm=function(){return[1/0,-1/0]},bm=function(t){var e=ms(t),n=ms(this);e.seriesIndex=n.seriesIndex,e.dataIndex=n.dataIndex,e.dataType=n.dataType},wm=function(t,e){P(Pm.concat(e.__wrappedMethods||[]),(function(n){e.hasOwnProperty(n)&&(t[n]=e[n])})),t.__wrappedMethods=e.__wrappedMethods,P(Om,(function(n){t[n]=w(e[n])})),t._calculationInfo=I({},e._calculationInfo)},vm=function(t,e){var n=t._nameList,i=t._idList,r=t._nameDimIdx,o=t._idDimIdx,a=n[e],s=i[e];if(null==a&&null!=r&&(n[e]=a=ym(t,r,t._nameOrdinalMeta,e)),null==s&&null!=o&&(i[e]=s=ym(t,o,t._idOrdinalMeta,e)),null==s&&null!=a){var l=t._nameRepeatCount,u=l[a]=(l[a]||0)+1;s=a,u>1&&(s+="__ec__"+u),i[e]=s}}}(),t}();function Nm(t,e,n){Jp(e)||(e=td(e)),n=n||{},t=(t||[]).slice();for(var i=(n.dimsDef||[]).slice(),r=ht(),o=ht(),a=[],s=function(t,e,n,i){var r=Math.max(t.dimensionsDetectedCount||1,e.length,n.length,i||0);return P(e,(function(t){var e;X(t)&&(e=t.dimsDef)&&(r=Math.max(r,e.length))})),r}(e,t,i,n.dimCount),l=0;l<s;l++){var u=i[l],h=i[l]=I({},X(u)?u:{name:u}),c=h.name,p=a[l]=new Sm;null!=c&&null==r.get(c)&&(p.name=p.displayName=c,r.set(c,l)),null!=h.type&&(p.type=h.type),null!=h.displayName&&(p.displayName=h.displayName)}var d=n.encodeDef;!d&&n.encodeDefaulter&&(d=n.encodeDefaulter(e,s));var f=ht(d);f.each((function(t,e){var n=br(t).slice();if(1===n.length&&!H(n[0])&&n[0]<0)f.set(e,!1);else{var i=f.set(e,[]);P(n,(function(t,n){var o=H(t)?r.get(t):t;null!=o&&o<s&&(i[n]=o,y(a[o],e,n))}))}}));var g=0;function y(t,e,n){null!=Gc.get(e)?t.otherDims[e]=n:(t.coordDim=e,t.coordDimIndex=n,o.set(e,!0))}P(t,(function(t){var e,n,i,r;if(H(t))e=t,r={};else{e=(r=t).name;var o=r.ordinalMeta;r.ordinalMeta=null,(r=w(r)).ordinalMeta=o,n=r.dimsDef,i=r.otherDims,r.name=r.coordDim=r.coordDimIndex=r.dimsDef=r.otherDims=null}var s=f.get(e);if(!1!==s){if(!(s=br(s)).length)for(var l=0;l<(n&&n.length||1);l++){for(;g<a.length&&null!=a[g].coordDim;)g++;g<a.length&&s.push(g++)}P(s,(function(t,o){var s=a[t];if(y(T(s,r),e,o),null==s.name&&n){var l=n[o];!X(l)&&(l={name:l}),s.name=s.displayName=l.name,s.defaultTooltip=l.defaultTooltip}i&&T(s.otherDims,i)}))}}));var v=n.generateCoord,m=n.generateCoordCount,_=null!=m;m=v?m||1:0;for(var x=v||"value",b=0;b<s;b++){null==(p=a[b]=a[b]||new Sm).coordDim&&(p.coordDim=Em(x,o,_),p.coordDimIndex=0,(!v||m<=0)&&(p.isExtraCoord=!0),m--),null==p.name&&(p.name=Em(p.coordDim,r,!1)),null!=p.type||ip(e,b)!==Kc&&(!p.isExtraCoord||null==p.otherDims.itemName&&null==p.otherDims.seriesName)||(p.type="ordinal")}return a}function Em(t,e,n){if(n||null!=e.get(t)){for(var i=0;null!=e.get(t+i);)i++;t+=i}return e.set(t,!0),t}function zm(t,e){return Nm((e=e||{}).coordDimensions||[],t,{dimsDef:e.dimensionsDefine||t.dimensionsDefine,encodeDef:e.encodeDefine||t.encodeDefine,dimCount:e.dimensionsCount,encodeDefaulter:e.encodeDefaulter,generateCoord:e.generateCoord,generateCoordCount:e.generateCoordCount})}var Bm=function(t){this.coordSysDims=[],this.axisMap=ht(),this.categoryAxisMap=ht(),this.coordSysName=t};var Vm={cartesian2d:function(t,e,n,i){var r=t.getReferringComponents("xAxis",Nr).models[0],o=t.getReferringComponents("yAxis",Nr).models[0];e.coordSysDims=["x","y"],n.set("x",r),n.set("y",o),Fm(r)&&(i.set("x",r),e.firstCategoryDimIndex=0),Fm(o)&&(i.set("y",o),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=1))},singleAxis:function(t,e,n,i){var r=t.getReferringComponents("singleAxis",Nr).models[0];e.coordSysDims=["single"],n.set("single",r),Fm(r)&&(i.set("single",r),e.firstCategoryDimIndex=0)},polar:function(t,e,n,i){var r=t.getReferringComponents("polar",Nr).models[0],o=r.findAxisModel("radiusAxis"),a=r.findAxisModel("angleAxis");e.coordSysDims=["radius","angle"],n.set("radius",o),n.set("angle",a),Fm(o)&&(i.set("radius",o),e.firstCategoryDimIndex=0),Fm(a)&&(i.set("angle",a),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=1))},geo:function(t,e,n,i){e.coordSysDims=["lng","lat"]},parallel:function(t,e,n,i){var r=t.ecModel,o=r.getComponent("parallel",t.get("parallelIndex")),a=e.coordSysDims=o.dimensions.slice();P(o.parallelAxisIndex,(function(t,o){var s=r.getComponent("parallelAxis",t),l=a[o];n.set(l,s),Fm(s)&&(i.set(l,s),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=o))}))}};function Fm(t){return"category"===t.get("type")}function Gm(t,e,n){var i,r,o,a,s=(n=n||{}).byIndex,l=n.stackedCoordDimension,u=!(!t||!t.get("stack"));if(P(e,(function(t,n){H(t)&&(e[n]=t={name:t}),u&&!t.isExtraCoord&&(s||i||!t.ordinalMeta||(i=t),r||"ordinal"===t.type||"time"===t.type||l&&l!==t.coordDim||(r=t))})),!r||s||i||(s=!0),r){o="__\0ecstackresult",a="__\0ecstackedover",i&&(i.createInvertedIndices=!0);var h=r.coordDim,c=r.type,p=0;P(e,(function(t){t.coordDim===h&&p++})),e.push({name:o,coordDim:h,coordDimIndex:p,type:c,isExtraCoord:!0,isCalculationCoord:!0}),p++,e.push({name:a,coordDim:a,coordDimIndex:p,type:c,isExtraCoord:!0,isCalculationCoord:!0})}return{stackedDimension:r&&r.name,stackedByDimension:i&&i.name,isStackedByIndex:s,stackedOverDimension:a,stackResultDimension:o}}function Hm(t,e){return!!e&&e===t.getCalculationInfo("stackedDimension")}function Wm(t,e){return Hm(t,e)?t.getCalculationInfo("stackResultDimension"):e}function Ym(t,e,n){n=n||{},Jp(t)||(t=td(t));var i,r=e.get("coordinateSystem"),o=bp.get(r),a=function(t){var e=t.get("coordinateSystem"),n=new Bm(e),i=Vm[e];if(i)return i(t,n,n.axisMap,n.categoryAxisMap),n}(e);a&&a.coordSysDims&&(i=O(a.coordSysDims,(function(t){var e={name:t},n=a.axisMap.get(t);if(n){var i=n.get("type");e.type=lm(i)}return e}))),i||(i=o&&(o.getDimensionsInfo?o.getDimensionsInfo():o.dimensions.slice())||["x","y"]);var s,l,u=n.useEncodeDefaulter,h=zm(t,{coordDimensions:i,generateCoord:n.generateCoord,encodeDefaulter:G(u)?u:u?V(tp,i,e):null});a&&P(h,(function(t,e){var i=t.coordDim,r=a.categoryAxisMap.get(i);r&&(null==s&&(s=e),t.ordinalMeta=r.getOrdinalMeta(),n.createInvertedIndices&&(t.createInvertedIndices=!0)),null!=t.otherDims.itemName&&(l=!0)})),l||null==s||(h[s].otherDims.itemName=0);var c=Gm(e,h),p=new Rm(h,e);p.setCalculationInfo(c);var d=null!=s&&function(t){if(t.sourceFormat===Hc){var e=function(t){var e=0;for(;e<t.length&&null==t[e];)e++;return t[e]}(t.data||[]);return null!=e&&!F(Mr(e))}}(t)?function(t,e,n,i){return i===s?n:this.defaultDimValueGetter(t,e,n,i)}:null;return p.hasItemOption=!1,p.initData(t,null,d),p}var Xm=function(){function t(t){this._setting=t||{},this._extent=[1/0,-1/0]}return t.prototype.getSetting=function(t){return this._setting[t]},t.prototype.unionExtent=function(t){var e=this._extent;t[0]<e[0]&&(e[0]=t[0]),t[1]>e[1]&&(e[1]=t[1])},t.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},t.prototype.getExtent=function(){return this._extent.slice()},t.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(e)||(n[1]=e)},t.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},t.prototype.isBlank=function(){return this._isBlank},t.prototype.setBlank=function(t){this._isBlank=t},t}();Kr(Xm);var Um=function(){function t(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication}return t.createByAxisModel=function(e){var n=e.option,i=n.data,r=i&&O(i,Zm);return new t({categories:r,needCollect:!r,deduplication:!1!==n.dedplication})},t.prototype.getOrdinal=function(t){return this._getOrCreateMap().get(t)},t.prototype.parseAndCollect=function(t){var e,n=this._needCollect;if("string"!=typeof t&&!n)return t;if(n&&!this._deduplication)return e=this.categories.length,this.categories[e]=t,e;var i=this._getOrCreateMap();return null==(e=i.get(t))&&(n?(e=this.categories.length,this.categories[e]=t,i.set(t,e)):e=NaN),e},t.prototype._getOrCreateMap=function(){return this._map||(this._map=ht(this.categories))},t}();function Zm(t){return X(t)&&null!=t.value?t.value:t+""}var jm=Ki;function qm(t,e,n,i){var r={},o=t[1]-t[0],a=r.interval=ur(o/e,!0);null!=n&&a<n&&(a=r.interval=n),null!=i&&a>i&&(a=r.interval=i);var s=r.intervalPrecision=Km(a);return function(t,e){!isFinite(t[0])&&(t[0]=e[0]),!isFinite(t[1])&&(t[1]=e[1]),$m(t,0,e),$m(t,1,e),t[0]>t[1]&&(t[0]=t[1])}(r.niceTickExtent=[jm(Math.ceil(t[0]/a)*a,s),jm(Math.floor(t[1]/a)*a,s)],t),r}function Km(t){return Qi(t)+2}function $m(t,e,n){t[e]=Math.max(Math.min(t[e],n[1]),n[0])}function Jm(t,e){return t>=e[0]&&t<=e[1]}function Qm(t,e){return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])}function t_(t,e){return t*(e[1]-e[0])+e[0]}var e_=function(t){function e(e){var n=t.call(this,e)||this;n.type="ordinal";var i=n.getSetting("ordinalMeta");return i||(i=new Um({})),F(i)&&(i=new Um({categories:O(i,(function(t){return X(t)?t.value:t}))})),n._ordinalMeta=i,n._extent=n.getSetting("extent")||[0,i.categories.length-1],n}return n(e,t),e.prototype.parse=function(t){return"string"==typeof t?this._ordinalMeta.getOrdinal(t):Math.round(t)},e.prototype.contain=function(t){return Jm(t=this.parse(t),this._extent)&&null!=this._ordinalMeta.categories[t]},e.prototype.normalize=function(t){return Qm(t=this._getTickNumber(this.parse(t)),this._extent)},e.prototype.scale=function(t){return t=Math.round(t_(t,this._extent)),this.getRawOrdinalNumber(t)},e.prototype.getTicks=function(){for(var t=[],e=this._extent,n=e[0];n<=e[1];)t.push({value:n}),n++;return t},e.prototype.getMinorTicks=function(t){},e.prototype.setSortInfo=function(t){if(null!=t){for(var e=t.ordinalNumbers,n=this._ordinalNumbersByTick=[],i=this._ticksByOrdinalNumber=[],r=0,o=this._ordinalMeta.categories.length,a=Math.min(o,e.length);r<a;++r){var s=e[r];n[r]=s,i[s]=r}for(var l=0;r<o;++r){for(;null!=i[l];)l++;n.push(l),i[l]=r}}else this._ordinalNumbersByTick=this._ticksByOrdinalNumber=null},e.prototype._getTickNumber=function(t){var e=this._ticksByOrdinalNumber;return e&&t>=0&&t<e.length?e[t]:t},e.prototype.getRawOrdinalNumber=function(t){var e=this._ordinalNumbersByTick;return e&&t>=0&&t<e.length?e[t]:t},e.prototype.getLabel=function(t){if(!this.isBlank()){var e=this.getRawOrdinalNumber(t.value),n=this._ordinalMeta.categories[e];return null==n?"":n+""}},e.prototype.count=function(){return this._extent[1]-this._extent[0]+1},e.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},e.prototype.isInExtentRange=function(t){return t=this._getTickNumber(t),this._extent[0]<=t&&this._extent[1]>=t},e.prototype.getOrdinalMeta=function(){return this._ordinalMeta},e.prototype.niceTicks=function(){},e.prototype.niceExtent=function(){},e.type="ordinal",e}(Xm);Xm.registerClass(e_);var n_=Ki,i_=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="interval",e._interval=0,e._intervalPrecision=2,e}return n(e,t),e.prototype.parse=function(t){return t},e.prototype.contain=function(t){return Jm(t,this._extent)},e.prototype.normalize=function(t){return Qm(t,this._extent)},e.prototype.scale=function(t){return t_(t,this._extent)},e.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=parseFloat(t)),isNaN(e)||(n[1]=parseFloat(e))},e.prototype.unionExtent=function(t){var e=this._extent;t[0]<e[0]&&(e[0]=t[0]),t[1]>e[1]&&(e[1]=t[1]),this.setExtent(e[0],e[1])},e.prototype.getInterval=function(){return this._interval},e.prototype.setInterval=function(t){this._interval=t,this._niceExtent=this._extent.slice(),this._intervalPrecision=Km(t)},e.prototype.getTicks=function(t){var e=this._interval,n=this._extent,i=this._niceExtent,r=this._intervalPrecision,o=[];if(!e)return o;n[0]<i[0]&&(t?o.push({value:n_(i[0]-e,r)}):o.push({value:n[0]}));for(var a=i[0];a<=i[1]&&(o.push({value:a}),(a=n_(a+e,r))!==o[o.length-1].value);)if(o.length>1e4)return[];var s=o.length?o[o.length-1].value:i[1];return n[1]>s&&(t?o.push({value:n_(s+e,r)}):o.push({value:n[1]})),o},e.prototype.getMinorTicks=function(t){for(var e=this.getTicks(!0),n=[],i=this.getExtent(),r=1;r<e.length;r++){for(var o=e[r],a=e[r-1],s=0,l=[],u=(o.value-a.value)/t;s<t-1;){var h=n_(a.value+(s+1)*u);h>i[0]&&h<i[1]&&l.push(h),s++}n.push(l)}return n},e.prototype.getLabel=function(t,e){if(null==t)return"";var n=e&&e.precision;return null==n?n=Qi(t.value)||0:"auto"===n&&(n=this._intervalPrecision),pc(n_(t.value,n,!0))},e.prototype.niceTicks=function(t,e,n){t=t||5;var i=this._extent,r=i[1]-i[0];if(isFinite(r)){r<0&&(r=-r,i.reverse());var o=qm(i,t,e,n);this._intervalPrecision=o.intervalPrecision,this._interval=o.interval,this._niceExtent=o.niceTickExtent}},e.prototype.niceExtent=function(t){var e=this._extent;if(e[0]===e[1])if(0!==e[0]){var n=e[0];t.fixMax||(e[1]+=n/2),e[0]-=n/2}else e[1]=1;var i=e[1]-e[0];isFinite(i)||(e[0]=0,e[1]=1),this.niceTicks(t.splitNumber,t.minInterval,t.maxInterval);var r=this._interval;t.fixMin||(e[0]=n_(Math.floor(e[0]/r)*r)),t.fixMax||(e[1]=n_(Math.ceil(e[1]/r)*r))},e.type="interval",e}(Xm);Xm.registerClass(i_);var r_="__ec_stack_",o_="undefined"!=typeof Float32Array?Float32Array:Array;function a_(t){return t.get("stack")||r_+t.seriesIndex}function s_(t){return t.dim+t.index}function l_(t,e){var n=[];return e.eachSeriesByType(t,(function(t){f_(t)&&!g_(t)&&n.push(t)})),n}function u_(t){var e=function(t){var e={};P(t,(function(t){var n=t.coordinateSystem.getBaseAxis();if("time"===n.type||"value"===n.type)for(var i=t.getData(),r=n.dim+"_"+n.index,o=i.mapDimension(n.dim),a=0,s=i.count();a<s;++a){var l=i.get(o,a);e[r]?e[r].push(l):e[r]=[l]}}));var n={};for(var i in e)if(e.hasOwnProperty(i)){var r=e[i];if(r){r.sort((function(t,e){return t-e}));for(var o=null,a=1;a<r.length;++a){var s=r[a]-r[a-1];s>0&&(o=null===o?s:Math.min(o,s))}n[i]=o}}return n}(t),n=[];return P(t,(function(t){var i,r=t.coordinateSystem.getBaseAxis(),o=r.getExtent();if("category"===r.type)i=r.getBandWidth();else if("value"===r.type||"time"===r.type){var a=r.dim+"_"+r.index,s=e[a],l=Math.abs(o[1]-o[0]),u=r.scale.getExtent(),h=Math.abs(u[1]-u[0]);i=s?l/h*s:l}else{var c=t.getData();i=Math.abs(o[1]-o[0])/c.count()}var p=qi(t.get("barWidth"),i),d=qi(t.get("barMaxWidth"),i),f=qi(t.get("barMinWidth")||1,i),g=t.get("barGap"),y=t.get("barCategoryGap");n.push({bandWidth:i,barWidth:p,barMaxWidth:d,barMinWidth:f,barGap:g,barCategoryGap:y,axisKey:s_(r),stackId:a_(t)})})),h_(n)}function h_(t){var e={};P(t,(function(t,n){var i=t.axisKey,r=t.bandWidth,o=e[i]||{bandWidth:r,remainedWidth:r,autoWidthCount:0,categoryGap:null,gap:"20%",stacks:{}},a=o.stacks;e[i]=o;var s=t.stackId;a[s]||o.autoWidthCount++,a[s]=a[s]||{width:0,maxWidth:0};var l=t.barWidth;l&&!a[s].width&&(a[s].width=l,l=Math.min(o.remainedWidth,l),o.remainedWidth-=l);var u=t.barMaxWidth;u&&(a[s].maxWidth=u);var h=t.barMinWidth;h&&(a[s].minWidth=h);var c=t.barGap;null!=c&&(o.gap=c);var p=t.barCategoryGap;null!=p&&(o.categoryGap=p)}));var n={};return P(e,(function(t,e){n[e]={};var i=t.stacks,r=t.bandWidth,o=t.categoryGap;if(null==o){var a=z(i).length;o=Math.max(35-4*a,15)+"%"}var s=qi(o,r),l=qi(t.gap,1),u=t.remainedWidth,h=t.autoWidthCount,c=(u-s)/(h+(h-1)*l);c=Math.max(c,0),P(i,(function(t){var e=t.maxWidth,n=t.minWidth;if(t.width){i=t.width;e&&(i=Math.min(i,e)),n&&(i=Math.max(i,n)),t.width=i,u-=i+l*i,h--}else{var i=c;e&&e<i&&(i=Math.min(e,u)),n&&n>i&&(i=n),i!==c&&(t.width=i,u-=i+l*i,h--)}})),c=(u-s)/(h+(h-1)*l),c=Math.max(c,0);var p,d=0;P(i,(function(t,e){t.width||(t.width=c),p=t,d+=t.width*(1+l)})),p&&(d-=p.width*l);var f=-d/2;P(i,(function(t,i){n[e][i]=n[e][i]||{bandWidth:r,offset:f,width:t.width},f+=t.width*(1+l)}))})),n}function c_(t,e,n){if(t&&e){var i=t[s_(e)];return null!=i&&null!=n?i[a_(n)]:i}}function p_(t,e){var n=l_(t,e),i=u_(n),r={};P(n,(function(t){var e=t.getData(),n=t.coordinateSystem,o=n.getBaseAxis(),a=a_(t),s=i[s_(o)][a],l=s.offset,u=s.width,h=n.getOtherAxis(o),c=t.get("barMinHeight")||0;r[a]=r[a]||[],e.setLayout({bandWidth:s.bandWidth,offset:l,size:u});for(var p=e.mapDimension(h.dim),d=e.mapDimension(o.dim),f=Hm(e,p),g=h.isHorizontal(),y=y_(o,h),v=0,m=e.count();v<m;v++){var _=e.get(p,v),x=e.get(d,v),b=_>=0?"p":"n",w=y;f&&(r[a][x]||(r[a][x]={p:y,n:y}),w=r[a][x][b]);var S,M=void 0,I=void 0,T=void 0,C=void 0;if(g)M=w,I=(S=n.dataToPoint([_,x]))[1]+l,T=S[0]-y,C=u,Math.abs(T)<c&&(T=(T<0?-1:1)*c),isNaN(T)||f&&(r[a][x][b]+=T);else M=(S=n.dataToPoint([x,_]))[0]+l,I=w,T=u,C=S[1]-y,Math.abs(C)<c&&(C=(C<=0?-1:1)*c),isNaN(C)||f&&(r[a][x][b]+=C);e.setItemLayout(v,{x:M,y:I,width:T,height:C})}}))}var d_={seriesType:"bar",plan:gf(),reset:function(t){if(f_(t)&&g_(t)){var e=t.getData(),n=t.coordinateSystem,i=n.master.getRect(),r=n.getBaseAxis(),o=n.getOtherAxis(r),a=e.mapDimension(o.dim),s=e.mapDimension(r.dim),l=o.isHorizontal(),u=l?0:1,h=c_(u_([t]),r,t).width;return h>.5||(h=.5),{progress:function(t,e){for(var c,p=t.count,d=new o_(2*p),f=new o_(2*p),g=new o_(p),y=[],v=[],m=0,_=0;null!=(c=t.next());)v[u]=e.get(a,c),v[1-u]=e.get(s,c),y=n.dataToPoint(v,null,y),f[m]=l?i.x+i.width:y[0],d[m++]=y[0],f[m]=l?y[1]:i.y+i.height,d[m++]=y[1],g[_++]=c;e.setLayout({largePoints:d,largeDataIndices:g,largeBackgroundPoints:f,barWidth:h,valueAxisStart:y_(r,o),backgroundStart:l?i.x:i.y,valueAxisHorizontal:l})}}}}};function f_(t){return t.coordinateSystem&&"cartesian2d"===t.coordinateSystem.type}function g_(t){return t.pipelineContext&&t.pipelineContext.large}function y_(t,e,n){return e.toGlobalCoord(e.dataToCoord("log"===e.type?1:0))}var v_=function(t){function e(e){var n=t.call(this,e)||this;return n.type="time",n}return n(e,t),e.prototype.getLabel=function(t){var e=this.getSetting("useUTC");return qh(t.value,Wh[function(t){switch(t){case"year":case"month":return"day";case"millisecond":return"millisecond";default:return"second"}}(Zh(this._minLevelUnit))]||Wh.second,e,this.getSetting("locale"))},e.prototype.getFormattedLabel=function(t,e,n){var i=this.getSetting("useUTC");return function(t,e,n,i,r){var o=null;if("string"==typeof n)o=n;else if("function"==typeof n)o=n(t.value,e,{level:t.level});else{var a=I({},Gh);if(t.level>0)for(var s=0;s<Yh.length;++s)a[Yh[s]]="{primary|"+a[Yh[s]]+"}";var l=n?!1===n.inherit?n:T(n,a):a,u=Kh(t.value,r);if(l[u])o=l[u];else if(l.inherit){for(s=Xh.indexOf(u)-1;s>=0;--s)if(l[u]){o=l[u];break}o=o||a.none}if(F(o)){var h=null==t.level?0:t.level>=0?t.level:o.length+t.level;o=o[h=Math.min(h,o.length-1)]}}return qh(new Date(t.value),o,r,i)}(t,e,n,this.getSetting("locale"),i)},e.prototype.getTicks=function(t){var e=this._interval,n=this._extent,i=[];if(!e)return i;i.push({value:n[0],level:0});var r=this.getSetting("useUTC"),o=function(t,e,n,i){var r=1e4,o=Xh,a=0;function s(t,e,n,r,o,a,s){for(var l=new Date(e),u=e,h=l[r]();u<n&&u<=i[1];)s.push({value:u}),h+=t,l[o](h),u=l.getTime();s.push({value:u,notAdd:!0})}function l(t,r,o){var a=[],l=!r.length;if(!function(t,e,n,i){var r=ar(e),o=ar(n),a=function(t){return $h(r,t,i)===$h(o,t,i)},s=function(){return a("year")},l=function(){return s()&&a("month")},u=function(){return l()&&a("day")},h=function(){return u()&&a("hour")},c=function(){return h()&&a("minute")},p=function(){return c()&&a("second")},d=function(){return p()&&a("millisecond")};switch(t){case"year":return s();case"month":return l();case"day":return u();case"hour":return h();case"minute":return c();case"second":return p();case"millisecond":return d()}}(Zh(t),i[0],i[1],n)){l&&(r=[{value:M_(new Date(i[0]),t,n)},{value:i[1]}]);for(var u=0;u<r.length-1;u++){var h=r[u].value,c=r[u+1].value;if(h!==c){var p=void 0,d=void 0,f=void 0,g=!1;switch(t){case"year":p=Math.max(1,Math.round(e/Vh/365)),d=Jh(n),f=oc(n);break;case"half-year":case"quarter":case"month":p=x_(e),d=Qh(n),f=ac(n);break;case"week":case"half-week":case"day":p=__(e),d=tc(n),f=sc(n),g=!0;break;case"half-day":case"quarter-day":case"hour":p=b_(e),d=ec(n),f=lc(n);break;case"minute":p=w_(e,!0),d=nc(n),f=uc(n);break;case"second":p=w_(e,!1),d=ic(n),f=hc(n);break;case"millisecond":p=S_(e),d=rc(n),f=cc(n)}s(p,h,c,d,f,g,a),"year"===t&&o.length>1&&0===u&&o.unshift({value:o[0].value-p})}}for(u=0;u<a.length;u++)o.push(a[u]);return a}}for(var u=[],h=[],c=0,p=0,d=0;d<o.length&&a++<r;++d){var f=Zh(o[d]);if(jh(o[d]))if(l(o[d],u[u.length-1]||[],h),f!==(o[d+1]?Zh(o[d+1]):null)){if(h.length){p=c,h.sort((function(t,e){return t.value-e.value}));for(var g=[],y=0;y<h.length;++y){var v=h[y].value;0!==y&&h[y-1].value===v||(g.push(h[y]),v>=i[0]&&v<=i[1]&&c++)}var m=(i[1]-i[0])/e;if(c>1.5*m&&p>m/1.5)break;if(u.push(g),c>m||t===o[d])break}h=[]}}0;var _=N(O(u,(function(t){return N(t,(function(t){return t.value>=i[0]&&t.value<=i[1]&&!t.notAdd}))})),(function(t){return t.length>0})),x=[],b=_.length-1;for(d=0;d<_.length;++d)for(var w=_[d],S=0;S<w.length;++S)x.push({value:w[S].value,level:b-d});x.sort((function(t,e){return t.value-e.value}));var M=[];for(d=0;d<x.length;++d)0!==d&&x[d].value===x[d-1].value||M.push(x[d]);return M}(this._minLevelUnit,this._approxInterval,r,n);return(i=i.concat(o)).push({value:n[1],level:0}),i},e.prototype.niceExtent=function(t){var e=this._extent;if(e[0]===e[1]&&(e[0]-=Vh,e[1]+=Vh),e[1]===-1/0&&e[0]===1/0){var n=new Date;e[1]=+new Date(n.getFullYear(),n.getMonth(),n.getDate()),e[0]=e[1]-Vh}this.niceTicks(t.splitNumber,t.minInterval,t.maxInterval)},e.prototype.niceTicks=function(t,e,n){t=t||10;var i=this._extent,r=i[1]-i[0];this._approxInterval=r/t,null!=e&&this._approxInterval<e&&(this._approxInterval=e),null!=n&&this._approxInterval>n&&(this._approxInterval=n);var o=m_.length,a=Math.min(function(t,e,n,i){for(;n<i;){var r=n+i>>>1;t[r][1]<e?n=r+1:i=r}return n}(m_,this._approxInterval,0,o),o-1);this._interval=m_[a][1],this._minLevelUnit=m_[Math.max(a-1,0)][0]},e.prototype.parse=function(t){return"number"==typeof t?t:+ar(t)},e.prototype.contain=function(t){return Jm(this.parse(t),this._extent)},e.prototype.normalize=function(t){return Qm(this.parse(t),this._extent)},e.prototype.scale=function(t){return t_(t,this._extent)},e.type="time",e}(i_),m_=[["second",Eh],["minute",zh],["hour",Bh],["quarter-day",216e5],["half-day",432e5],["day",10368e4],["half-week",3024e5],["week",6048e5],["month",26784e5],["quarter",8208e6],["half-year",Fh/2],["year",Fh]];function __(t,e){return(t/=Vh)>16?16:t>7.5?7:t>3.5?4:t>1.5?2:1}function x_(t){return(t/=2592e6)>6?6:t>3?3:t>2?2:1}function b_(t){return(t/=Bh)>12?12:t>6?6:t>3.5?4:t>2?2:1}function w_(t,e){return(t/=e?zh:Eh)>30?30:t>20?20:t>15?15:t>10?10:t>5?5:t>2?2:1}function S_(t){return ur(t,!0)}function M_(t,e,n){var i=new Date(t);switch(Zh(e)){case"year":case"month":i[ac(n)](0);case"day":i[sc(n)](1);case"hour":i[lc(n)](0);case"minute":i[uc(n)](0);case"second":i[hc(n)](0),i[cc(n)](0)}return i.getTime()}Xm.registerClass(v_);var I_=Xm.prototype,T_=i_.prototype,C_=Qi,A_=Ki,D_=Math.floor,L_=Math.ceil,k_=Math.pow,P_=Math.log,O_=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="log",e.base=10,e._originalScale=new i_,e._interval=0,e}return n(e,t),e.prototype.getTicks=function(t){var e=this._originalScale,n=this._extent,i=e.getExtent();return O(T_.getTicks.call(this,t),(function(t){var e=t.value,r=Ki(k_(this.base,e));return r=e===n[0]&&this._fixMin?N_(r,i[0]):r,{value:r=e===n[1]&&this._fixMax?N_(r,i[1]):r}}),this)},e.prototype.setExtent=function(t,e){var n=this.base;t=P_(t)/P_(n),e=P_(e)/P_(n),T_.setExtent.call(this,t,e)},e.prototype.getExtent=function(){var t=this.base,e=I_.getExtent.call(this);e[0]=k_(t,e[0]),e[1]=k_(t,e[1]);var n=this._originalScale.getExtent();return this._fixMin&&(e[0]=N_(e[0],n[0])),this._fixMax&&(e[1]=N_(e[1],n[1])),e},e.prototype.unionExtent=function(t){this._originalScale.unionExtent(t);var e=this.base;t[0]=P_(t[0])/P_(e),t[1]=P_(t[1])/P_(e),I_.unionExtent.call(this,t)},e.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},e.prototype.niceTicks=function(t){t=t||10;var e=this._extent,n=e[1]-e[0];if(!(n===1/0||n<=0)){var i=sr(n);for(t/n*i<=.5&&(i*=10);!isNaN(i)&&Math.abs(i)<1&&Math.abs(i)>0;)i*=10;var r=[Ki(L_(e[0]/i)*i),Ki(D_(e[1]/i)*i)];this._interval=i,this._niceExtent=r}},e.prototype.niceExtent=function(t){T_.niceExtent.call(this,t),this._fixMin=t.fixMin,this._fixMax=t.fixMax},e.prototype.parse=function(t){return t},e.prototype.contain=function(t){return Jm(t=P_(t)/P_(this.base),this._extent)},e.prototype.normalize=function(t){return Qm(t=P_(t)/P_(this.base),this._extent)},e.prototype.scale=function(t){return t=t_(t,this._extent),k_(this.base,t)},e.type="log",e}(Xm),R_=O_.prototype;function N_(t,e){return A_(t,C_(e))}R_.getMinorTicks=T_.getMinorTicks,R_.getLabel=T_.getLabel,Xm.registerClass(O_);var E_=function(){function t(t,e,n){this._prepareParams(t,e,n)}return t.prototype._prepareParams=function(t,e,n){n[1]<n[0]&&(n=[NaN,NaN]),this._dataMin=n[0],this._dataMax=n[1];var i=this._isOrdinal="ordinal"===t.type;this._needCrossZero=e.getNeedCrossZero&&e.getNeedCrossZero();var r=this._modelMinRaw=e.get("min",!0);G(r)?this._modelMinNum=F_(t,r({min:n[0],max:n[1]})):"dataMin"!==r&&(this._modelMinNum=F_(t,r));var o=this._modelMaxRaw=e.get("max",!0);if(G(o)?this._modelMaxNum=F_(t,o({min:n[0],max:n[1]})):"dataMax"!==o&&(this._modelMaxNum=F_(t,o)),i)this._axisDataLen=e.getCategories().length;else{var a=e.get("boundaryGap"),s=F(a)?a:[a||0,a||0];"boolean"==typeof s[0]||"boolean"==typeof s[1]?this._boundaryGapInner=[0,0]:this._boundaryGapInner=[Un(s[0],1),Un(s[1],1)]}},t.prototype.calculate=function(){var t=this._isOrdinal,e=this._dataMin,n=this._dataMax,i=this._axisDataLen,r=this._boundaryGapInner,o=t?null:n-e||Math.abs(e),a="dataMin"===this._modelMinRaw?e:this._modelMinNum,s="dataMax"===this._modelMaxRaw?n:this._modelMaxNum,l=null!=a,u=null!=s;null==a&&(a=t?i?0:NaN:e-r[0]*o),null==s&&(s=t?i?i-1:NaN:n+r[1]*o),(null==a||!isFinite(a))&&(a=NaN),(null==s||!isFinite(s))&&(s=NaN),a>s&&(a=NaN,s=NaN);var h=J(a)||J(s)||t&&!i;this._needCrossZero&&(a>0&&s>0&&!l&&(a=0),a<0&&s<0&&!u&&(s=0));var c=this._determinedMin,p=this._determinedMax;return null!=c&&(a=c,l=!0),null!=p&&(s=p,u=!0),{min:a,max:s,minFixed:l,maxFixed:u,isBlank:h}},t.prototype.modifyDataMinMax=function(t,e){this[B_[t]]=e},t.prototype.setDeterminedMinMax=function(t,e){var n=z_[t];this[n]=e},t.prototype.freeze=function(){this.frozen=!0},t}(),z_={min:"_determinedMin",max:"_determinedMax"},B_={min:"_dataMin",max:"_dataMax"};function V_(t,e,n){var i=t.rawExtentInfo;return i||(i=new E_(t,e,n),t.rawExtentInfo=i,i)}function F_(t,e){return null==e?null:J(e)?NaN:t.parse(e)}function G_(t,e){var n=t.type,i=V_(t,e,t.getExtent()).calculate();t.setBlank(i.isBlank);var r=i.min,o=i.max,a=e.ecModel;if(a&&"time"===n){var s=l_("bar",a),l=!1;if(P(s,(function(t){l=l||t.getBaseAxis()===e.axis})),l){var u=u_(s),h=function(t,e,n,i){var r=n.axis.getExtent(),o=r[1]-r[0],a=c_(i,n.axis);if(void 0===a)return{min:t,max:e};var s=1/0;P(a,(function(t){s=Math.min(t.offset,s)}));var l=-1/0;P(a,(function(t){l=Math.max(t.offset+t.width,l)})),s=Math.abs(s),l=Math.abs(l);var u=s+l,h=e-t,c=h/(1-(s+l)/o)-h;return{min:t-=c*(s/u),max:e+=c*(l/u)}}(r,o,e,u);r=h.min,o=h.max}}return{extent:[r,o],fixMin:i.minFixed,fixMax:i.maxFixed}}function H_(t,e){var n=G_(t,e),i=n.extent,r=e.get("splitNumber");t instanceof O_&&(t.base=e.get("logBase"));var o=t.type;t.setExtent(i[0],i[1]),t.niceExtent({splitNumber:r,fixMin:n.fixMin,fixMax:n.fixMax,minInterval:"interval"===o||"time"===o?e.get("minInterval"):null,maxInterval:"interval"===o||"time"===o?e.get("maxInterval"):null});var a=e.get("interval");null!=a&&t.setInterval&&t.setInterval(a)}function W_(t,e){if(e=e||t.get("type"))switch(e){case"category":return new e_({ordinalMeta:t.getOrdinalMeta?t.getOrdinalMeta():t.getCategories(),extent:[1/0,-1/0]});case"time":return new v_({locale:t.ecModel.getLocaleModel(),useUTC:t.ecModel.get("useUTC")});default:return new(Xm.getClass(e)||i_)}}function Y_(t){var e,n,i=t.getLabelModel().get("formatter"),r="category"===t.type?t.scale.getExtent()[0]:null;return"time"===t.scale.type?(n=i,function(e,i){return t.scale.getFormattedLabel(e,i,n)}):"string"==typeof i?function(e){return function(n){var i=t.scale.getLabel(n);return e.replace("{value}",null!=i?i:"")}}(i):"function"==typeof i?(e=i,function(n,i){return null!=r&&(i=n.value-r),e(X_(t,n),i,null!=n.level?{level:n.level}:null)}):function(e){return t.scale.getLabel(e)}}function X_(t,e){return"category"===t.type?t.scale.getLabel(e):e.value}function U_(t,e){var n=e*Math.PI/180,i=t.width,r=t.height,o=i*Math.abs(Math.cos(n))+Math.abs(r*Math.sin(n)),a=i*Math.abs(Math.sin(n))+Math.abs(r*Math.cos(n));return new En(t.x,t.y,o,a)}function Z_(t){var e=t.get("interval");return null==e?"auto":e}function j_(t){return"category"===t.type&&0===Z_(t.getLabelModel())}function q_(t,e){var n={};return P(t.mapDimensionsAll(e),(function(e){n[Wm(t,e)]=!0})),z(n)}var K_=function(){function t(){}return t.prototype.getNeedCrossZero=function(){return!this.option.scale},t.prototype.getCoordSysModel=function(){},t}();var $_={isDimensionStacked:Hm,enableDataStack:Gm,getStackedDimension:Wm};var J_=Object.freeze({__proto__:null,createList:function(t){return Ym(t.getSource(),t)},getLayoutRect:Lc,dataStack:$_,createScale:function(t,e){var n=e;e instanceof Ih||(n=new Ih(e));var i=W_(n);return i.setExtent(t[0],t[1]),H_(i,n),i},mixinAxisModelCommonMethods:function(t){L(t,K_)},getECData:ms,createTextStyle:function(t,e){return rh(t,null,null,"normal"!==(e=e||{}).state)},createDimensions:zm,createSymbol:cy,enableHoverEmphasis:tl});function Q_(t,e){return Math.abs(t-e)<1e-8}function tx(t,e,n){var i=0,r=t[0];if(!r)return!1;for(var o=1;o<t.length;o++){var a=t[o];i+=za(r[0],r[1],a[0],a[1],e,n),r=a}var s=t[0];return Q_(r[0],s[0])&&Q_(r[1],s[1])||(i+=za(r[0],r[1],s[0],s[1],e,n)),0!==i}var ex=function(){function t(t,e,n){if(this.name=t,this.geometries=e,n)n=[n[0],n[1]];else{var i=this.getBoundingRect();n=[i.x+i.width/2,i.y+i.height/2]}this.center=n}return t.prototype.getBoundingRect=function(){var t=this._rect;if(t)return t;for(var e=Number.MAX_VALUE,n=[e,e],i=[-e,-e],r=[],o=[],a=this.geometries,s=0;s<a.length;s++){if("polygon"===a[s].type)ia(a[s].exterior,r,o),zt(n,n,r),Bt(i,i,o)}return 0===s&&(n[0]=n[1]=i[0]=i[1]=0),this._rect=new En(n[0],n[1],i[0]-n[0],i[1]-n[1])},t.prototype.contain=function(t){var e=this.getBoundingRect(),n=this.geometries;if(!e.contain(t[0],t[1]))return!1;t:for(var i=0,r=n.length;i<r;i++)if("polygon"===n[i].type){var o=n[i].exterior,a=n[i].interiors;if(tx(o,t[0],t[1])){for(var s=0;s<(a?a.length:0);s++)if(tx(a[s],t[0],t[1]))continue t;return!0}}return!1},t.prototype.transformTo=function(t,e,n,i){var r=this.getBoundingRect(),o=r.width/r.height;n?i||(i=n/o):n=o*i;for(var a=new En(t,e,n,i),s=r.calculateTransform(a),l=this.geometries,u=0;u<l.length;u++)if("polygon"===l[u].type){for(var h=l[u].exterior,c=l[u].interiors,p=0;p<h.length;p++)Et(h[p],h[p],s);for(var d=0;d<(c?c.length:0);d++)for(p=0;p<c[d].length;p++)Et(c[d][p],c[d][p],s)}(r=this._rect).copy(a),this.center=[r.x+r.width/2,r.y+r.height/2]},t.prototype.cloneShallow=function(e){null==e&&(e=this.name);var n=new t(e,this.geometries,this.center);return n._rect=this._rect,n.transformTo=null,n},t}();function nx(t,e,n){for(var i=[],r=e[0],o=e[1],a=0;a<t.length;a+=2){var s=t.charCodeAt(a)-64,l=t.charCodeAt(a+1)-64;s=s>>1^-(1&s),l=l>>1^-(1&l),r=s+=r,o=l+=o,i.push([s/n,l/n])}return i}function ix(t,e){return O(N((t=function(t){if(!t.UTF8Encoding)return t;var e=t,n=e.UTF8Scale;null==n&&(n=1024);for(var i=e.features,r=0;r<i.length;r++){var o=i[r].geometry;if("Polygon"===o.type)for(var a=o.coordinates,s=0;s<a.length;s++)a[s]=nx(a[s],o.encodeOffsets[s],n);else if("MultiPolygon"===o.type)for(a=o.coordinates,s=0;s<a.length;s++)for(var l=a[s],u=0;u<l.length;u++)l[u]=nx(l[u],o.encodeOffsets[s][u],n)}return e.UTF8Encoding=!1,e}(t)).features,(function(t){return t.geometry&&t.properties&&t.geometry.coordinates.length>0})),(function(t){var n=t.properties,i=t.geometry,r=[];if("Polygon"===i.type){var o=i.coordinates;r.push({type:"polygon",exterior:o[0],interiors:o.slice(1)})}"MultiPolygon"===i.type&&P(o=i.coordinates,(function(t){t[0]&&r.push({type:"polygon",exterior:t[0],interiors:t.slice(1)})}));var a=new ex(n[e||"name"],r,n.cp);return a.properties=n,a}))}var rx=Object.freeze({__proto__:null,linearMap:ji,round:Ki,asc:$i,getPrecision:Ji,getPrecisionSafe:Qi,getPixelPrecision:tr,getPercentWithPrecision:er,MAX_SAFE_INTEGER:nr,remRadian:ir,isRadianAroundZero:rr,parseDate:ar,quantity:sr,quantityExponent:lr,nice:ur,quantile:hr,reformIntervals:cr,isNumeric:dr,numericToNumber:pr}),ox=Object.freeze({__proto__:null,parse:ar,format:qh}),ax=Object.freeze({__proto__:null,extendShape:Su,extendPath:Iu,makePath:Au,makeImage:Du,mergePath:ku,resizePath:Pu,createIcon:ju,updateProps:Nu,initProps:Eu,getTransform:Gu,clipPointsByRect:Uu,clipRectByRect:Zu,registerShape:Tu,getShapeClass:Cu,Group:Vi,Image:ts,Text:hs,Circle:Al,Ellipse:Ll,Sector:Xl,Ring:Zl,Polygon:$l,Polyline:Ql,Rect:ss,Line:nu,BezierCurve:au,Arc:lu,IncrementalDisplayable:_u,CompoundPath:uu,LinearGradient:cu,RadialGradient:pu,BoundingRect:En}),sx=Object.freeze({__proto__:null,addCommas:pc,toCamelCase:dc,normalizeCssArray:fc,encodeHTML:vc,formatTpl:bc,getTooltipMarker:wc,formatTime:function(t,e,n){"week"!==t&&"month"!==t&&"quarter"!==t&&"half-year"!==t&&"year"!==t||(t="MM-dd\nyyyy");var i=ar(e),r=n?"UTC":"",o=i["get"+r+"FullYear"](),a=i["get"+r+"Month"]()+1,s=i["get"+r+"Date"](),l=i["get"+r+"Hours"](),u=i["get"+r+"Minutes"](),h=i["get"+r+"Seconds"](),c=i["get"+r+"Milliseconds"]();return t=t.replace("MM",Uh(a,2)).replace("M",a).replace("yyyy",o).replace("yy",o%100+"").replace("dd",Uh(s,2)).replace("d",s).replace("hh",Uh(l,2)).replace("h",l).replace("mm",Uh(u,2)).replace("m",u).replace("ss",Uh(h,2)).replace("s",h).replace("SSS",Uh(c,3))},capitalFirst:function(t){return t?t.charAt(0).toUpperCase()+t.substr(1):t},truncateText:ao,getTextRect:function(t,e,n,i,r,o,a,s){return vr(),new hs({style:{text:t,font:e,align:n,verticalAlign:i,padding:r,rich:o,overflow:a?"truncate":null,lineHeight:s}}).getBoundingRect()}}),lx=Object.freeze({__proto__:null,map:O,each:P,indexOf:A,inherits:D,reduce:R,filter:N,bind:B,curry:V,isArray:F,isString:H,isObject:X,isFunction:G,extend:I,defaults:T,clone:w,merge:S}),ux=Pr();function hx(t){return"category"===t.type?function(t){var e=t.getLabelModel(),n=px(t,e);return!e.get("show")||t.scale.isBlank()?{labels:[],labelCategoryInterval:n.labelCategoryInterval}:n}(t):function(t){var e=t.scale.getTicks(),n=Y_(t);return{labels:O(e,(function(e,i){return{formattedLabel:n(e,i),rawLabel:t.scale.getLabel(e),tickValue:e.value}}))}}(t)}function cx(t,e){return"category"===t.type?function(t,e){var n,i,r=dx(t,"ticks"),o=Z_(e),a=fx(r,o);if(a)return a;e.get("show")&&!t.scale.isBlank()||(n=[]);if(G(o))n=vx(t,o,!0);else if("auto"===o){var s=px(t,t.getLabelModel());i=s.labelCategoryInterval,n=O(s.labels,(function(t){return t.tickValue}))}else n=yx(t,i=o,!0);return gx(r,o,{ticks:n,tickCategoryInterval:i})}(t,e):{ticks:O(t.scale.getTicks(),(function(t){return t.value}))}}function px(t,e){var n,i,r=dx(t,"labels"),o=Z_(e),a=fx(r,o);return a||(G(o)?n=vx(t,o):(i="auto"===o?function(t){var e=ux(t).autoInterval;return null!=e?e:ux(t).autoInterval=t.calculateCategoryInterval()}(t):o,n=yx(t,i)),gx(r,o,{labels:n,labelCategoryInterval:i}))}function dx(t,e){return ux(t)[e]||(ux(t)[e]=[])}function fx(t,e){for(var n=0;n<t.length;n++)if(t[n].key===e)return t[n].value}function gx(t,e,n){return t.push({key:e,value:n}),n}function yx(t,e,n){var i=Y_(t),r=t.scale,o=r.getExtent(),a=t.getLabelModel(),s=[],l=Math.max((e||0)+1,1),u=o[0],h=r.count();0!==u&&l>1&&h/l>2&&(u=Math.round(Math.ceil(u/l)*l));var c=j_(t),p=a.get("showMinLabel")||c,d=a.get("showMaxLabel")||c;p&&u!==o[0]&&g(o[0]);for(var f=u;f<=o[1];f+=l)g(f);function g(t){var e={value:t};s.push(n?t:{formattedLabel:i(e),rawLabel:r.getLabel(e),tickValue:t})}return d&&f-l!==o[1]&&g(o[1]),s}function vx(t,e,n){var i=t.scale,r=Y_(t),o=[];return P(i.getTicks(),(function(t){var a=i.getLabel(t),s=t.value;e(t.value,a)&&o.push(n?s:{formattedLabel:r(t),rawLabel:a,tickValue:s})})),o}var mx=[0,1],_x=function(){function t(t,e,n){this.onBand=!1,this.inverse=!1,this.dim=t,this.scale=e,this._extent=n||[0,0]}return t.prototype.contain=function(t){var e=this._extent,n=Math.min(e[0],e[1]),i=Math.max(e[0],e[1]);return t>=n&&t<=i},t.prototype.containData=function(t){return this.scale.contain(t)},t.prototype.getExtent=function(){return this._extent.slice()},t.prototype.getPixelPrecision=function(t){return tr(t||this.scale.getExtent(),this._extent)},t.prototype.setExtent=function(t,e){var n=this._extent;n[0]=t,n[1]=e},t.prototype.dataToCoord=function(t,e){var n=this._extent,i=this.scale;return t=i.normalize(t),this.onBand&&"ordinal"===i.type&&xx(n=n.slice(),i.count()),ji(t,mx,n,e)},t.prototype.coordToData=function(t,e){var n=this._extent,i=this.scale;this.onBand&&"ordinal"===i.type&&xx(n=n.slice(),i.count());var r=ji(t,n,mx,e);return this.scale.scale(r)},t.prototype.pointToData=function(t,e){},t.prototype.getTicksCoords=function(t){var e=(t=t||{}).tickModel||this.getTickModel(),n=O(cx(this,e).ticks,(function(t){return{coord:this.dataToCoord("ordinal"===this.scale.type?this.scale.getRawOrdinalNumber(t):t),tickValue:t}}),this);return function(t,e,n,i){var r=e.length;if(!t.onBand||n||!r)return;var o,a,s=t.getExtent();if(1===r)e[0].coord=s[0],o=e[1]={coord:s[0]};else{var l=e[r-1].tickValue-e[0].tickValue,u=(e[r-1].coord-e[0].coord)/l;P(e,(function(t){t.coord-=u/2})),a=1+t.scale.getExtent()[1]-e[r-1].tickValue,o={coord:e[r-1].coord+u*a},e.push(o)}var h=s[0]>s[1];c(e[0].coord,s[0])&&(i?e[0].coord=s[0]:e.shift());i&&c(s[0],e[0].coord)&&e.unshift({coord:s[0]});c(s[1],o.coord)&&(i?o.coord=s[1]:e.pop());i&&c(o.coord,s[1])&&e.push({coord:s[1]});function c(t,e){return t=Ki(t),e=Ki(e),h?t>e:t<e}}(this,n,e.get("alignWithLabel"),t.clamp),n},t.prototype.getMinorTicksCoords=function(){if("ordinal"===this.scale.type)return[];var t=this.model.getModel("minorTick").get("splitNumber");return t>0&&t<100||(t=5),O(this.scale.getMinorTicks(t),(function(t){return O(t,(function(t){return{coord:this.dataToCoord(t),tickValue:t}}),this)}),this)},t.prototype.getViewLabels=function(){return hx(this).labels},t.prototype.getLabelModel=function(){return this.model.getModel("axisLabel")},t.prototype.getTickModel=function(){return this.model.getModel("axisTick")},t.prototype.getBandWidth=function(){var t=this._extent,e=this.scale.getExtent(),n=e[1]-e[0]+(this.onBand?1:0);0===n&&(n=1);var i=Math.abs(t[1]-t[0]);return Math.abs(i)/n},t.prototype.calculateCategoryInterval=function(){return function(t){var e=function(t){var e=t.getLabelModel();return{axisRotate:t.getRotate?t.getRotate():t.isHorizontal&&!t.isHorizontal()?90:0,labelRotate:e.get("rotate")||0,font:e.getFont()}}(t),n=Y_(t),i=(e.axisRotate-e.labelRotate)/180*Math.PI,r=t.scale,o=r.getExtent(),a=r.count();if(o[1]-o[0]<1)return 0;var s=1;a>40&&(s=Math.max(1,Math.floor(a/40)));for(var l=o[0],u=t.dataToCoord(l+1)-t.dataToCoord(l),h=Math.abs(u*Math.cos(i)),c=Math.abs(u*Math.sin(i)),p=0,d=0;l<=o[1];l+=s){var f,g,y=Hn(n({value:l}),e.font,"center","top");f=1.3*y.width,g=1.3*y.height,p=Math.max(p,f,7),d=Math.max(d,g,7)}var v=p/h,m=d/c;isNaN(v)&&(v=1/0),isNaN(m)&&(m=1/0);var _=Math.max(0,Math.floor(Math.min(v,m))),x=ux(t.model),b=t.getExtent(),w=x.lastAutoInterval,S=x.lastTickCount;return null!=w&&null!=S&&Math.abs(w-_)<=1&&Math.abs(S-a)<=1&&w>_&&x.axisExtent0===b[0]&&x.axisExtent1===b[1]?_=w:(x.lastTickCount=a,x.lastAutoInterval=_,x.axisExtent0=b[0],x.axisExtent1=b[1]),_}(this)},t}();function xx(t,e){var n=(t[1]-t[0])/e/2;t[0]+=n,t[1]-=n}function bx(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}function Sx(t,e,n,i,r){for(var o=e.length,a=n.length,s=t.newPos,l=s-i,u=0;s+1<o&&l+1<a&&r(e[s+1],n[l+1]);)s++,l++,u++;return u&&t.components.push({count:u,added:!1,removed:!1,indices:[]}),t.newPos=s,l}function Mx(t,e,n){var i=t[t.length-1];i&&i.added===e&&i.removed===n?t[t.length-1]={count:i.count+1,added:e,removed:n,indices:[]}:t.push({count:1,added:e,removed:n,indices:[]})}function Ix(t){for(var e=0,n=t.length,i=0,r=0;e<n;e++){var o=t[e];if(o.removed){for(s=r;s<r+o.count;s++)o.indices.push(s);r+=o.count}else{for(var a=[],s=i;s<i+o.count;s++)a.push(s);o.indices=a,i+=o.count,o.added||(r+=o.count)}}return t}function Tx(t,e,n){return function(t,e,n){n||(n=function(t,e){return t===e}),t=t.slice();var i=(e=e.slice()).length,r=t.length,o=1,a=i+r,s=[{newPos:-1,components:[]}],l=Sx(s[0],e,t,0,n);if(s[0].newPos+1>=i&&l+1>=r){for(var u=[],h=0;h<e.length;h++)u.push(h);return[{indices:u,count:e.length,added:!1,removed:!1}]}function c(){for(var a=-1*o;a<=o;a+=2){var l,u=s[a-1],h=s[a+1],c=(h?h.newPos:0)-a;u&&(s[a-1]=void 0);var p=u&&u.newPos+1<i,d=h&&0<=c&&c<r;if(p||d){if(!p||d&&u.newPos<h.newPos?Mx((l={newPos:(f=h).newPos,components:f.components.slice(0)}).components,!1,!0):((l=u).newPos++,Mx(l.components,!0,!1)),c=Sx(l,e,t,a,n),l.newPos+1>=i&&c+1>=r)return Ix(l.components);s[a]=l}else s[a]=void 0}var f;o++}for(;o<=a;){var p=c();if(p)return p}}(t,e,n)}var Cx="none",Ax=Math.round,Dx=Math.sin,Lx=Math.cos,kx=Math.PI,Px=2*Math.PI,Ox=180/kx,Rx=1e-4;function Nx(t){return Ax(1e3*t)/1e3}function Ex(t){return Ax(1e4*t)/1e4}function zx(t){return t<Rx&&t>-1e-4}function Bx(t,e){e&&Vx(t,"transform","matrix("+Nx(e[0])+","+Nx(e[1])+","+Nx(e[2])+","+Nx(e[3])+","+Ex(e[4])+","+Ex(e[5])+")")}function Vx(t,e,n){(!n||"linear"!==n.type&&"radial"!==n.type)&&t.setAttribute(e,n)}function Fx(t,e,n){var i=null==e.opacity?1:e.opacity;if(n instanceof ts)t.style.opacity=i+"";else{if(function(t){var e=t.fill;return null!=e&&e!==Cx}(e)){var r=e.fill;Vx(t,"fill",r="transparent"===r?Cx:r),Vx(t,"fill-opacity",(null!=e.fillOpacity?e.fillOpacity*i:i)+"")}else Vx(t,"fill",Cx);if(function(t){var e=t.stroke;return null!=e&&e!==Cx}(e)){var o=e.stroke;Vx(t,"stroke",o="transparent"===o?Cx:o);var a=e.lineWidth,s=e.strokeNoScale?n.getLineScale():1;Vx(t,"stroke-width",(s?a/s:0)+""),Vx(t,"paint-order",e.strokeFirst?"stroke":"fill"),Vx(t,"stroke-opacity",(null!=e.strokeOpacity?e.strokeOpacity*i:i)+"");var l=e.lineDash&&a>0&&fy(e.lineDash,a);if(l){var u=e.lineDashOffset;s&&1!==s&&(l=O(l,(function(t){return t/s})),u&&(u=Ax(u/=s))),Vx(t,"stroke-dasharray",l.join(",")),Vx(t,"stroke-dashoffset",(u||0)+"")}else Vx(t,"stroke-dasharray","");e.lineCap&&Vx(t,"stroke-linecap",e.lineCap),e.lineJoin&&Vx(t,"stroke-linejoin",e.lineJoin),e.miterLimit&&Vx(t,"stroke-miterlimit",e.miterLimit+"")}else Vx(t,"stroke",Cx)}}var Gx=function(){function t(){}return t.prototype.reset=function(){this._d=[],this._str=""},t.prototype.moveTo=function(t,e){this._add("M",t,e)},t.prototype.lineTo=function(t,e){this._add("L",t,e)},t.prototype.bezierCurveTo=function(t,e,n,i,r,o){this._add("C",t,e,n,i,r,o)},t.prototype.quadraticCurveTo=function(t,e,n,i){this._add("Q",t,e,n,i)},t.prototype.arc=function(t,e,n,i,r,o){this.ellipse(t,e,n,n,0,i,r,o)},t.prototype.ellipse=function(t,e,n,i,r,o,a,s){var l=0===this._d.length,u=a-o,h=!s,c=Math.abs(u),p=zx(c-Px)||(h?u>=Px:-u>=Px),d=u>0?u%Px:u%Px+Px,f=!1;f=!!p||!zx(c)&&d>=kx==!!h;var g=Ex(t+n*Lx(o)),y=Ex(e+i*Dx(o));p&&(u=h?Px-1e-4:1e-4-Px,f=!0,l&&this._d.push("M",g,y));var v=Ex(t+n*Lx(o+u)),m=Ex(e+i*Dx(o+u));if(isNaN(g)||isNaN(y)||isNaN(n)||isNaN(i)||isNaN(r)||isNaN(Ox)||isNaN(v)||isNaN(m))return"";this._d.push("A",Ex(n),Ex(i),Ax(r*Ox),+f,+h,v,m)},t.prototype.rect=function(t,e,n,i){this._add("M",t,e),this._add("L",t+n,e),this._add("L",t+n,e+i),this._add("L",t,e+i),this._add("L",t,e)},t.prototype.closePath=function(){this._d.length>0&&this._add("Z")},t.prototype._add=function(t,e,n,i,r,o,a,s,l){this._d.push(t);for(var u=1;u<arguments.length;u++){var h=arguments[u];if(isNaN(h))return void(this._invalid=!0);this._d.push(Ex(h))}},t.prototype.generateStr=function(){this._str=this._invalid?"":this._d.join(" "),this._d=[]},t.prototype.getStr=function(){return this._str},t}(),Hx={brush:function(t){var e=t.style,n=t.__svgEl;n||(n=bx("path"),t.__svgEl=n),t.path||t.createPathProxy();var i=t.path;t.shapeChanged()&&(i.beginPath(),t.buildPath(i,t.shape),t.pathUpdated());var r=i.getVersion(),o=t,a=o.__svgPathBuilder;(o.__svgPathVersion!==r||!a||t.style.strokePercent<1)&&(a||(a=o.__svgPathBuilder=new Gx),a.reset(),i.rebuildPath(a,t.style.strokePercent),a.generateStr(),o.__svgPathVersion=r),Vx(n,"d",a.getStr()),Fx(n,e,t),Bx(n,t.transform)}},Wx={brush:function(t){var e=t.style,n=e.image;if(n instanceof HTMLImageElement?n=n.src:n instanceof HTMLCanvasElement&&(n=n.toDataURL()),n){var i=e.x||0,r=e.y||0,o=e.width,a=e.height,s=t.__svgEl;s||(s=bx("image"),t.__svgEl=s),n!==t.__imageSrc&&(!function(t,e,n){t.setAttributeNS("http://www.w3.org/1999/xlink",e,n)}(s,"href",n),t.__imageSrc=n),Vx(s,"width",o+""),Vx(s,"height",a+""),Vx(s,"x",i+""),Vx(s,"y",r+""),Fx(s,e,t),Bx(s,t.transform)}}},Yx={left:"start",right:"end",center:"middle",middle:"middle"};var Xx={brush:function(t){var e=t.style,n=e.text;if(null!=n&&(n+=""),n&&!isNaN(e.x)&&!isNaN(e.y)){var i=t.__svgEl;i||(function(t,e,n){t.setAttributeNS("http://www.w3.org/XML/1998/namespace",e,n)}(i=bx("text"),"xml:space","preserve"),t.__svgEl=i);var r=e.font||Bn;i.style.font=r,i.textContent=n,Fx(i,e,t),Bx(i,t.transform);var o=e.x||0,a=function(t,e,n){return"top"===n?t+=e/2:"bottom"===n&&(t-=e/2),t}(e.y||0,Xn(r),e.textBaseline),s=Yx[e.textAlign]||e.textAlign;Vx(i,"dominant-baseline","central"),Vx(i,"text-anchor",s),Vx(i,"x",o+""),Vx(i,"y",a+"")}}},Ux=function(){function t(t,e,n,i,r){this.nextId=0,this._domName="_dom",this.createElement=bx,this._zrId=t,this._svgRoot=e,this._tagNames="string"==typeof n?[n]:n,this._markLabel=i,r&&(this._domName=r)}return t.prototype.getDefs=function(t){var e=this._svgRoot,n=this._svgRoot.getElementsByTagName("defs");if(0===n.length){if(t){var i=e.insertBefore(this.createElement("defs"),e.firstChild);return i.contains||(i.contains=function(t){var e=i.children;if(!e)return!1;for(var n=e.length-1;n>=0;--n)if(e[n]===t)return!0;return!1}),i}return null}return n[0]},t.prototype.doUpdate=function(t,e){if(t){var n=this.getDefs(!1);if(t[this._domName]&&n.contains(t[this._domName]))"function"==typeof e&&e(t);else{var i=this.add(t);i&&(t[this._domName]=i)}}},t.prototype.add=function(t){return null},t.prototype.addDom=function(t){var e=this.getDefs(!0);t.parentNode!==e&&e.appendChild(t)},t.prototype.removeDom=function(t){var e=this.getDefs(!1);e&&t[this._domName]&&(e.removeChild(t[this._domName]),t[this._domName]=null)},t.prototype.getDoms=function(){var t=this.getDefs(!1);if(!t)return[];var e=[];return P(this._tagNames,(function(n){for(var i=t.getElementsByTagName(n),r=0;r<i.length;r++)e.push(i[r])})),e},t.prototype.markAllUnused=function(){var t=this.getDoms(),e=this;P(t,(function(t){t[e._markLabel]="0"}))},t.prototype.markDomUsed=function(t){t&&(t[this._markLabel]="1")},t.prototype.markDomUnused=function(t){t&&(t[this._markLabel]="0")},t.prototype.isDomUnused=function(t){return t&&"1"!==t[this._markLabel]},t.prototype.removeUnused=function(){var t=this,e=this.getDefs(!1);e&&P(this.getDoms(),(function(n){t.isDomUnused(n)&&e.removeChild(n)}))},t.prototype.getSvgProxy=function(t){return t instanceof qa?Hx:t instanceof ts?Wx:t instanceof $a?Xx:Hx},t.prototype.getSvgElement=function(t){return t.__svgEl},t}();function Zx(t){return"linear"===t.type}function jx(t){return"radial"===t.type}function qx(t){return t&&("linear"===t.type||"radial"===t.type)}var Kx=function(t){function e(e,n){return t.call(this,e,n,["linearGradient","radialGradient"],"__gradient_in_use__")||this}return vt(e,t),e.prototype.addWithoutUpdate=function(t,e){if(e&&e.style){var n=this;P(["fill","stroke"],(function(i){var r=e.style[i];if(qx(r)){var o=r,a=n.getDefs(!0),s=void 0;o.__dom?(s=o.__dom,a.contains(o.__dom)||n.addDom(s)):s=n.add(o),n.markUsed(e);var l=s.getAttribute("id");t.setAttribute(i,"url(#"+l+")")}}))}},e.prototype.add=function(t){var e;if(Zx(t))e=this.createElement("linearGradient");else{if(!jx(t))return b("Illegal gradient type."),null;e=this.createElement("radialGradient")}return t.id=t.id||this.nextId++,e.setAttribute("id","zr"+this._zrId+"-gradient-"+t.id),this.updateDom(t,e),this.addDom(e),e},e.prototype.update=function(t){if(qx(t)){var e=this;this.doUpdate(t,(function(){var n=t.__dom;if(n){var i=n.tagName,r=t.type;"linear"===r&&"linearGradient"===i||"radial"===r&&"radialGradient"===i?e.updateDom(t,t.__dom):(e.removeDom(t),e.add(t))}}))}},e.prototype.updateDom=function(t,e){if(Zx(t))e.setAttribute("x1",t.x+""),e.setAttribute("y1",t.y+""),e.setAttribute("x2",t.x2+""),e.setAttribute("y2",t.y2+"");else{if(!jx(t))return void b("Illegal gradient type.");e.setAttribute("cx",t.x+""),e.setAttribute("cy",t.y+""),e.setAttribute("r",t.r+"")}t.global?e.setAttribute("gradientUnits","userSpaceOnUse"):e.setAttribute("gradientUnits","objectBoundingBox"),e.innerHTML="";for(var n=t.colorStops,i=0,r=n.length;i<r;++i){var o=this.createElement("stop");o.setAttribute("offset",100*n[i].offset+"%");var a=n[i].color;if(a.indexOf("rgba")>-1){var s=$e(a)[3],l=tn(a);o.setAttribute("stop-color","#"+l),o.setAttribute("stop-opacity",s+"")}else o.setAttribute("stop-color",n[i].color);e.appendChild(o)}t.__dom=e},e.prototype.markUsed=function(e){if(e.style){var n=e.style.fill;n&&n.__dom&&t.prototype.markDomUsed.call(this,n.__dom),(n=e.style.stroke)&&n.__dom&&t.prototype.markDomUsed.call(this,n.__dom)}},e}(Ux);function $x(t){return t&&(!!t.image||!!t.svgElement)}var Jx=new ny,Qx=function(t){function e(e,n){return t.call(this,e,n,["pattern"],"__pattern_in_use__")||this}return vt(e,t),e.prototype.addWithoutUpdate=function(t,e){if(e&&e.style){var n=this;P(["fill","stroke"],(function(i){var r=e.style[i];if($x(r)){var o=n.getDefs(!0),a=Jx.get(r);a?o.contains(a)||n.addDom(a):a=n.add(r),n.markUsed(e);var s=a.getAttribute("id");t.setAttribute(i,"url(#"+s+")")}}))}},e.prototype.add=function(t){if($x(t)){var e=this.createElement("pattern");return t.id=null==t.id?this.nextId++:t.id,e.setAttribute("id","zr"+this._zrId+"-pattern-"+t.id),e.setAttribute("x","0"),e.setAttribute("y","0"),e.setAttribute("patternUnits","userSpaceOnUse"),this.updateDom(t,e),this.addDom(e),e}},e.prototype.update=function(t){if($x(t)){var e=this;this.doUpdate(t,(function(){var n=Jx.get(t);e.updateDom(t,n)}))}},e.prototype.updateDom=function(t,e){var n=t.svgElement;if(n instanceof SVGElement)n.parentNode!==e&&(e.innerHTML="",e.appendChild(n),e.setAttribute("width",t.svgWidth+""),e.setAttribute("height",t.svgHeight+""));else{var i=void 0,r=e.getElementsByTagName("image");if(r.length){if(!t.image)return void e.removeChild(r[0]);i=r[0]}else t.image&&(i=this.createElement("image"));if(i){var o=void 0;if("string"==typeof t.image?o=t.image:t.image instanceof HTMLImageElement?o=t.image.src:t.image instanceof HTMLCanvasElement&&(o=t.image.toDataURL()),o){i.setAttribute("href",o),i.setAttribute("x","0"),i.setAttribute("y","0");var a=no(o,i,{dirty:function(){}},(function(t){e.setAttribute("width",t.width+""),e.setAttribute("height",t.height+"")}));a&&a.width&&a.height&&(e.setAttribute("width",a.width+""),e.setAttribute("height",a.height+"")),e.appendChild(i)}}}var s="translate("+(t.x||0)+", "+(t.y||0)+") rotate("+(t.rotation||0)/Math.PI*180+") scale("+(t.scaleX||1)+", "+(t.scaleY||1)+")";e.setAttribute("patternTransform",s),Jx.set(t,e)},e.prototype.markUsed=function(e){e.style&&($x(e.style.fill)&&t.prototype.markDomUsed.call(this,Jx.get(e.style.fill)),$x(e.style.stroke)&&t.prototype.markDomUsed.call(this,Jx.get(e.style.stroke)))},e}(Ux);function tb(t){var e=t.__clipPaths;return e&&e.length>0}var eb=function(t){function e(e,n){var i=t.call(this,e,n,"clipPath","__clippath_in_use__")||this;return i._refGroups={},i._keyDuplicateCount={},i}return vt(e,t),e.prototype.markAllUnused=function(){for(var e in t.prototype.markAllUnused.call(this),this._refGroups)this.markDomUnused(this._refGroups[e]);this._keyDuplicateCount={}},e.prototype._getClipPathGroup=function(t,e){if(tb(t)){var n=t.__clipPaths,i=this._keyDuplicateCount,r=function(t){var e=[];if(t)for(var n=0;n<t.length;n++){var i=t[n];e.push(i.id)}return e.join(",")}(n);return dy(n,e&&e.__clipPaths)&&(i[r]=i[r]||0,i[r]&&(r+="-"+i[r]),i[r]++),this._refGroups[r]||(this._refGroups[r]=this.createElement("g"))}},e.prototype.update=function(t,e){var n=this._getClipPathGroup(t,e);return n&&(this.markDomUsed(n),this.updateDom(n,t.__clipPaths)),n},e.prototype.updateDom=function(t,e){if(e&&e.length>0){var n=this.getDefs(!0),i=e[0],r=void 0,o=void 0;i._dom?(o=i._dom.getAttribute("id"),r=i._dom,n.contains(r)||n.appendChild(r)):(o="zr"+this._zrId+"-clip-"+this.nextId,++this.nextId,(r=this.createElement("clipPath")).setAttribute("id",o),n.appendChild(r),i._dom=r),this.getSvgProxy(i).brush(i);var a=this.getSvgElement(i);r.innerHTML="",r.appendChild(a),t.setAttribute("clip-path","url(#"+o+")"),e.length>1&&this.updateDom(r,e.slice(1))}else t&&t.setAttribute("clip-path","none")},e.prototype.markUsed=function(e){var n=this;e.__clipPaths&&P(e.__clipPaths,(function(e){e._dom&&t.prototype.markDomUsed.call(n,e._dom)}))},e.prototype.removeUnused=function(){t.prototype.removeUnused.call(this);var e={};for(var n in this._refGroups){var i=this._refGroups[n];this.isDomUnused(i)?i.parentNode&&i.parentNode.removeChild(i):e[n]=i}this._refGroups=e},e}(Ux),nb=function(t){function e(e,n){var i=t.call(this,e,n,["filter"],"__filter_in_use__","_shadowDom")||this;return i._shadowDomMap={},i._shadowDomPool=[],i}return vt(e,t),e.prototype._getFromPool=function(){var t=this._shadowDomPool.pop();if(!t){(t=this.createElement("filter")).setAttribute("id","zr"+this._zrId+"-shadow-"+this.nextId++);var e=this.createElement("feDropShadow");t.appendChild(e),this.addDom(t)}return t},e.prototype.update=function(t,e){if(function(t){return t&&(t.shadowBlur||t.shadowOffsetX||t.shadowOffsetY)}(e.style)){var n=function(t){var e=t.style,n=t.getGlobalScale();return[e.shadowColor,(e.shadowBlur||0).toFixed(2),(e.shadowOffsetX||0).toFixed(2),(e.shadowOffsetY||0).toFixed(2),n[0],n[1]].join(",")}(e),i=e._shadowDom=this._shadowDomMap[n];i||(i=this._getFromPool(),this._shadowDomMap[n]=i),this.updateDom(t,e,i)}else this.remove(t,e)},e.prototype.remove=function(t,e){null!=e._shadowDom&&(e._shadowDom=null,t.style.filter="")},e.prototype.updateDom=function(t,e,n){var i=n.children[0],r=e.style,o=e.getGlobalScale(),a=o[0],s=o[1];if(a&&s){var l=r.shadowOffsetX||0,u=r.shadowOffsetY||0,h=r.shadowBlur,c=r.shadowColor;i.setAttribute("dx",l/a+""),i.setAttribute("dy",u/s+""),i.setAttribute("flood-color",c);var p=h/2/a+" "+h/2/s;i.setAttribute("stdDeviation",p),n.setAttribute("x","-100%"),n.setAttribute("y","-100%"),n.setAttribute("width","300%"),n.setAttribute("height","300%"),e._shadowDom=n;var d=n.getAttribute("id");t.style.filter="url(#"+d+")"}},e.prototype.removeUnused=function(){if(this.getDefs(!1)){var t=this._shadowDomPool;for(var e in this._shadowDomMap){var n=this._shadowDomMap[e];t.push(n)}this._shadowDomMap={}}},e}(Ux);function ib(t){return parseInt(t,10)}function rb(t){return t instanceof qa?Hx:t instanceof ts?Wx:t instanceof $a?Xx:Hx}function ob(t,e){return e&&t&&e.parentNode!==t}function ab(t,e,n){if(ob(t,e)&&n){var i=n.nextSibling;i?t.insertBefore(e,i):t.appendChild(e)}}function sb(t,e){if(ob(t,e)){var n=t.firstChild;n?t.insertBefore(e,n):t.appendChild(e)}}function lb(t,e){e&&t&&e.parentNode===t&&t.removeChild(e)}function ub(t){return t.__svgEl}var hb=function(){function t(t,e,n,i){this.type="svg",this.refreshHover=cb("refreshHover"),this.pathToImage=cb("pathToImage"),this.configLayer=cb("configLayer"),this.root=t,this.storage=e,this._opts=n=I({},n||{});var r=bx("svg");r.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns","http://www.w3.org/2000/svg"),r.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink","http://www.w3.org/1999/xlink"),r.setAttribute("version","1.1"),r.setAttribute("baseProfile","full"),r.style.cssText="user-select:none;position:absolute;left:0;top:0;";var o=bx("g");r.appendChild(o);var a=bx("g");r.appendChild(a),this._gradientManager=new Kx(i,a),this._patternManager=new Qx(i,a),this._clipPathManager=new eb(i,a),this._shadowManager=new nb(i,a);var s=document.createElement("div");s.style.cssText="overflow:hidden;position:relative",this._svgDom=r,this._svgRoot=a,this._backgroundRoot=o,this._viewport=s,t.appendChild(s),s.appendChild(r),this.resize(n.width,n.height),this._visibleList=[]}return t.prototype.getType=function(){return"svg"},t.prototype.getViewportRoot=function(){return this._viewport},t.prototype.getSvgDom=function(){return this._svgDom},t.prototype.getSvgRoot=function(){return this._svgRoot},t.prototype.getViewportRootOffset=function(){var t=this.getViewportRoot();if(t)return{offsetLeft:t.offsetLeft||0,offsetTop:t.offsetTop||0}},t.prototype.refresh=function(){var t=this.storage.getDisplayList(!0);this._paintList(t)},t.prototype.setBackgroundColor=function(t){this._backgroundRoot&&this._backgroundNode&&this._backgroundRoot.removeChild(this._backgroundNode);var e=bx("rect");e.setAttribute("width",this.getWidth()),e.setAttribute("height",this.getHeight()),e.setAttribute("x",0),e.setAttribute("y",0),e.setAttribute("id",0),e.style.fill=t,this._backgroundRoot.appendChild(e),this._backgroundNode=e},t.prototype.createSVGElement=function(t){return bx(t)},t.prototype.paintOne=function(t){var e=rb(t);return e&&e.brush(t),ub(t)},t.prototype._paintList=function(t){var e=this._gradientManager,n=this._patternManager,i=this._clipPathManager,r=this._shadowManager;e.markAllUnused(),n.markAllUnused(),i.markAllUnused(),r.markAllUnused();for(var o=this._svgRoot,a=this._visibleList,s=t.length,l=[],u=0;u<s;u++){var h=rb(x=t[u]),c=ub(x);x.invisible||(!x.__dirty&&c||(h&&h.brush(x),(c=ub(x))&&x.style&&(e.update(x.style.fill),e.update(x.style.stroke),n.update(x.style.fill),n.update(x.style.stroke),r.update(c,x)),x.__dirty=0),c&&l.push(x))}var p,d,f,g,y,v=Tx(a,l);for(u=0;u<v.length;u++){if((_=v[u]).removed)for(var m=0;m<_.count;m++){c=ub(x=a[_.indices[m]]);tb(x)?(f=c)&&f.parentNode&&f.parentNode.removeChild(f):lb(o,c)}}for(u=0;u<v.length;u++){var _;(_=v[u]).added;if(!_.removed)for(m=0;m<_.count;m++){var x=l[_.indices[m]],b=i.update(x,g);b!==y&&(p=d,b&&(p?ab(o,b,p):sb(o,b),d=b,p=null),y=b);c=ub(x);p?ab(y||o,c,p):sb(y||o,c),p=c||p,y||(d=p),e.markUsed(x),e.addWithoutUpdate(c,x),n.markUsed(x),n.addWithoutUpdate(c,x),i.markUsed(x),g=x}}e.removeUnused(),n.removeUnused(),i.removeUnused(),r.removeUnused(),this._visibleList=l},t.prototype._getDefs=function(t){var e=this._svgDom,n=e.getElementsByTagName("defs");if(0===n.length){if(t){var i=e.insertBefore(bx("defs"),e.firstChild);return i.contains||(i.contains=function(t){var e=i.children;if(!e)return!1;for(var n=e.length-1;n>=0;--n)if(e[n]===t)return!0;return!1}),i}return null}return n[0]},t.prototype.resize=function(t,e){var n=this._viewport;n.style.display="none";var i=this._opts;if(null!=t&&(i.width=t),null!=e&&(i.height=e),t=this._getSize(0),e=this._getSize(1),n.style.display="",this._width!==t||this._height!==e){this._width=t,this._height=e;var r=n.style;r.width=t+"px",r.height=e+"px";var o=this._svgDom;o.setAttribute("width",t+""),o.setAttribute("height",e+"")}this._backgroundNode&&(this._backgroundNode.setAttribute("width",t),this._backgroundNode.setAttribute("height",e))},t.prototype.getWidth=function(){return this._width},t.prototype.getHeight=function(){return this._height},t.prototype._getSize=function(t){var e=this._opts,n=["width","height"][t],i=["clientWidth","clientHeight"][t],r=["paddingLeft","paddingTop"][t],o=["paddingRight","paddingBottom"][t];if(null!=e[n]&&"auto"!==e[n])return parseFloat(e[n]);var a=this.root,s=document.defaultView.getComputedStyle(a);return(a[i]||ib(s[n])||ib(a.style[n]))-(ib(s[r])||0)-(ib(s[o])||0)|0},t.prototype.dispose=function(){this.root.innerHTML="",this._svgRoot=this._backgroundRoot=this._svgDom=this._backgroundNode=this._viewport=this.storage=null},t.prototype.clear=function(){var t=this._viewport;t&&t.parentNode&&t.parentNode.removeChild(t)},t.prototype.toDataURL=function(){this.refresh();var t=this._svgDom,e=t.outerHTML||(t.parentNode&&t.parentNode).innerHTML;return"data:image/svg+xml;charset=UTF-8,"+encodeURIComponent(e.replace(/></g,">\n\r<"))},t}();function cb(t){return function(){b('In SVG mode painter not support method "'+t+'"')}}function pb(){return!1}function db(t,e,n){var i=C(),r=e.getWidth(),o=e.getHeight(),a=i.style;return a&&(a.position="absolute",a.left="0",a.top="0",a.width=r+"px",a.height=o+"px",i.setAttribute("data-zr-dom-id",t)),i.width=r*n,i.height=o*n,i}var fb=function(t){function e(e,n,i){var r,o=t.call(this)||this;o.motionBlur=!1,o.lastFrameAlpha=.7,o.dpr=1,o.virtual=!1,o.config={},o.incremental=!1,o.zlevel=0,o.maxRepaintRectCount=5,o.__dirty=!0,o.__firstTimePaint=!0,o.__used=!1,o.__drawIndex=0,o.__startIndex=0,o.__endIndex=0,o.__prevStartIndex=null,o.__prevEndIndex=null,i=i||qn,"string"==typeof e?r=db(e,n,i):X(e)&&(e=(r=e).id),o.id=e,o.dom=r;var a=r.style;return a&&(r.onselectstart=pb,a.webkitUserSelect="none",a.userSelect="none",a.webkitTapHighlightColor="rgba(0,0,0,0)",a["-webkit-touch-callout"]="none",a.padding="0",a.margin="0",a.borderWidth="0"),o.domBack=null,o.ctxBack=null,o.painter=n,o.config=null,o.dpr=i,o}return vt(e,t),e.prototype.getElementCount=function(){return this.__endIndex-this.__startIndex},e.prototype.afterBrush=function(){this.__prevStartIndex=this.__startIndex,this.__prevEndIndex=this.__endIndex},e.prototype.initContext=function(){this.ctx=this.dom.getContext("2d"),this.ctx.dpr=this.dpr},e.prototype.setUnpainted=function(){this.__firstTimePaint=!0},e.prototype.createBackBuffer=function(){var t=this.dpr;this.domBack=db("back-"+this.id,this.painter,t),this.ctxBack=this.domBack.getContext("2d"),1!==t&&this.ctxBack.scale(t,t)},e.prototype.createRepaintRects=function(t,e,n,i){if(this.__firstTimePaint)return this.__firstTimePaint=!1,null;var r,o=[],a=this.maxRepaintRectCount,s=!1,l=new En(0,0,0,0);function u(t){if(t.isFinite()&&!t.isZero())if(0===o.length){(e=new En(0,0,0,0)).copy(t),o.push(e)}else{for(var e,n=!1,i=1/0,r=0,u=0;u<o.length;++u){var h=o[u];if(h.intersect(t)){var c=new En(0,0,0,0);c.copy(h),c.union(t),o[u]=c,n=!0;break}if(s){l.copy(t),l.union(h);var p=t.width*t.height,d=h.width*h.height,f=l.width*l.height-p-d;f<i&&(i=f,r=u)}}if(s&&(o[r].union(t),n=!0),!n)(e=new En(0,0,0,0)).copy(t),o.push(e);s||(s=o.length>=a)}}for(var h=this.__startIndex;h<this.__endIndex;++h){if(d=t[h]){var c=d.shouldBePainted(n,i,!0,!0);(f=d.__isRendered&&(d.__dirty&ii.REDARAW_BIT||!c)?d.getPrevPaintRect():null)&&u(f);var p=c&&(d.__dirty&ii.REDARAW_BIT||!d.__isRendered)?d.getPaintRect():null;p&&u(p)}}for(h=this.__prevStartIndex;h<this.__prevEndIndex;++h){var d,f;c=(d=e[h]).shouldBePainted(n,i,!0,!0);if(d&&(!c||!d.__zr)&&d.__isRendered)(f=d.getPrevPaintRect())&&u(f)}do{r=!1;for(h=0;h<o.length;)if(o[h].isZero())o.splice(h,1);else{for(var g=h+1;g<o.length;)o[h].intersect(o[g])?(r=!0,o[h].union(o[g]),o.splice(g,1)):g++;h++}}while(r);return this._paintRects=o,o},e.prototype.debugGetPaintRects=function(){return(this._paintRects||[]).slice()},e.prototype.resize=function(t,e){var n=this.dpr,i=this.dom,r=i.style,o=this.domBack;r&&(r.width=t+"px",r.height=e+"px"),i.width=t*n,i.height=e*n,o&&(o.width=t*n,o.height=e*n,1!==n&&this.ctxBack.scale(n,n))},e.prototype.clear=function(t,e,n){var i=this.dom,r=this.ctx,o=i.width,a=i.height;e=e||this.clearColor;var s=this.motionBlur&&!t,l=this.lastFrameAlpha,u=this.dpr,h=this;s&&(this.domBack||this.createBackBuffer(),this.ctxBack.globalCompositeOperation="copy",this.ctxBack.drawImage(i,0,0,o/u,a/u));var c=this.domBack;function p(t,n,i,o){if(r.clearRect(t,n,i,o),e&&"transparent"!==e){var a=void 0;q(e)?(a=e.__canvasGradient||py(r,e,{x:0,y:0,width:i,height:o}),e.__canvasGradient=a):K(e)&&(a=xy(r,e,{dirty:function(){h.setUnpainted(),h.__painter.refresh()}})),r.save(),r.fillStyle=a||e,r.fillRect(t,n,i,o),r.restore()}s&&(r.save(),r.globalAlpha=l,r.drawImage(c,t,n,i,o),r.restore())}!n||s?p(0,0,o,a):n.length&&P(n,(function(t){p(t.x*u,t.y*u,t.width*u,t.height*u)}))},e}(Ht),gb=1e5,yb=314159,vb=.01;function mb(t){return parseInt(t,10)}var _b=function(){function t(t,e,n,i){this.type="canvas",this._zlevelList=[],this._prevDisplayList=[],this._layers={},this._layerConfig={},this._needsManuallyCompositing=!1,this.type="canvas";var r=!t.nodeName||"CANVAS"===t.nodeName.toUpperCase();this._opts=n=I({},n||{}),this.dpr=n.devicePixelRatio||qn,this._singleCanvas=r,this.root=t;var o=t.style;o&&(o.webkitTapHighlightColor="transparent",o.webkitUserSelect="none",o.userSelect="none",o["-webkit-touch-callout"]="none",t.innerHTML=""),this.storage=e;var a=this._zlevelList;this._prevDisplayList=[];var s=this._layers;if(r){var l=t,u=l.width,h=l.height;null!=n.width&&(u=n.width),null!=n.height&&(h=n.height),this.dpr=n.devicePixelRatio||1,l.width=u*this.dpr,l.height=h*this.dpr,this._width=u,this._height=h;var c=new fb(l,this,this.dpr);c.__builtin__=!0,c.initContext(),s[314159]=c,c.zlevel=yb,a.push(yb),this._domRoot=t}else{this._width=this._getSize(0),this._height=this._getSize(1);var p=this._domRoot=function(t,e){var n=document.createElement("div");return n.style.cssText=["position:relative","width:"+t+"px","height:"+e+"px","padding:0","margin:0","border-width:0"].join(";")+";",n}(this._width,this._height);t.appendChild(p)}}return t.prototype.getType=function(){return"canvas"},t.prototype.isSingleCanvas=function(){return this._singleCanvas},t.prototype.getViewportRoot=function(){return this._domRoot},t.prototype.getViewportRootOffset=function(){var t=this.getViewportRoot();if(t)return{offsetLeft:t.offsetLeft||0,offsetTop:t.offsetTop||0}},t.prototype.refresh=function(t){var e=this.storage.getDisplayList(!0),n=this._prevDisplayList,i=this._zlevelList;this._redrawId=Math.random(),this._paintList(e,n,t,this._redrawId);for(var r=0;r<i.length;r++){var o=i[r],a=this._layers[o];if(!a.__builtin__&&a.refresh){var s=0===r?this._backgroundColor:null;a.refresh(s)}}return this._opts.useDirtyRect&&(this._prevDisplayList=e.slice()),this},t.prototype.refreshHover=function(){this._paintHoverList(this.storage.getDisplayList(!1))},t.prototype._paintHoverList=function(t){var e=t.length,n=this._hoverlayer;if(n&&n.clear(),e){for(var i,r={inHover:!0,viewWidth:this._width,viewHeight:this._height},o=0;o<e;o++){var a=t[o];a.__inHover&&(n||(n=this._hoverlayer=this.getLayer(gb)),i||(i=n.ctx).save(),Dy(i,a,r,o===e-1))}i&&i.restore()}},t.prototype.getHoverLayer=function(){return this.getLayer(gb)},t.prototype.paintOne=function(t,e){Ay(t,e)},t.prototype._paintList=function(t,e,n,i){if(this._redrawId===i){n=n||!1,this._updateLayerStatus(t);var r=this._doPaintList(t,e,n),o=r.finished,a=r.needsRefreshHover;if(this._needsManuallyCompositing&&this._compositeManually(),a&&this._paintHoverList(t),o)this.eachLayer((function(t){t.afterBrush&&t.afterBrush()}));else{var s=this;xi((function(){s._paintList(t,e,n,i)}))}}},t.prototype._compositeManually=function(){var t=this.getLayer(yb).ctx,e=this._domRoot.width,n=this._domRoot.height;t.clearRect(0,0,e,n),this.eachBuiltinLayer((function(i){i.virtual&&t.drawImage(i.dom,0,0,e,n)}))},t.prototype._doPaintList=function(t,e,n){for(var i=this,r=[],o=this._opts.useDirtyRect,s=0;s<this._zlevelList.length;s++){var l=this._zlevelList[s],u=this._layers[l];u.__builtin__&&u!==this._hoverlayer&&(u.__dirty||n)&&r.push(u)}for(var h=!0,c=!1,p=function(a){var s=r[a],l=s.ctx,u=o&&s.createRepaintRects(t,e,d._width,d._height);l.save();var p,f=n?s.__startIndex:s.__drawIndex,g=!n&&s.incremental&&Date.now,y=g&&Date.now(),v=s.zlevel===d._zlevelList[0]?d._backgroundColor:null;if(s.__startIndex===s.__endIndex)s.clear(!1,v,u);else if(f===s.__startIndex){var m=t[f];m.incremental&&m.notClear&&!n||s.clear(!1,v,u)}-1===f&&(console.error("For some unknown reason. drawIndex is -1"),f=s.__startIndex);var _=function(e){var n={inHover:!1,allClipped:!1,prevEl:null,viewWidth:i._width,viewHeight:i._height};for(p=f;p<s.__endIndex;p++){var r=t[p];if(r.__inHover&&(c=!0),i._doPaintEl(r,s,o,e,n,p===s.__endIndex-1),g)if(Date.now()-y>15)break}n.prevElClipPaths&&l.restore()};if(u)if(0===u.length)p=s.__endIndex;else for(var x=d.dpr,b=0;b<u.length;++b){var w=u[b];l.save(),l.beginPath(),l.rect(w.x*x,w.y*x,w.width*x,w.height*x),l.clip(),_(w),l.restore()}else l.save(),_(),l.restore();s.__drawIndex=p,s.__drawIndex<s.__endIndex&&(h=!1)},d=this,f=0;f<r.length;f++)p(f);return a.wxa&&P(this._layers,(function(t){t&&t.ctx&&t.ctx.draw&&t.ctx.draw()})),{finished:h,needsRefreshHover:c}},t.prototype._doPaintEl=function(t,e,n,i,r,o){var a=e.ctx;if(n){var s=t.getPaintRect();(!i||s&&s.intersect(i))&&(Dy(a,t,r,o),t.setPrevPaintRect(s))}else Dy(a,t,r,o)},t.prototype.getLayer=function(t,e){this._singleCanvas&&!this._needsManuallyCompositing&&(t=yb);var n=this._layers[t];return n||((n=new fb("zr_"+t,this,this.dpr)).zlevel=t,n.__builtin__=!0,this._layerConfig[t]?S(n,this._layerConfig[t],!0):this._layerConfig[t-vb]&&S(n,this._layerConfig[t-vb],!0),e&&(n.virtual=e),this.insertLayer(t,n),n.initContext()),n},t.prototype.insertLayer=function(t,e){var n=this._layers,i=this._zlevelList,r=i.length,o=this._domRoot,a=null,s=-1;if(n[t])b("ZLevel "+t+" has been used already");else if(function(t){return!!t&&(!!t.__builtin__||"function"==typeof t.resize&&"function"==typeof t.refresh)}(e)){if(r>0&&t>i[0]){for(s=0;s<r-1&&!(i[s]<t&&i[s+1]>t);s++);a=n[i[s]]}if(i.splice(s+1,0,t),n[t]=e,!e.virtual)if(a){var l=a.dom;l.nextSibling?o.insertBefore(e.dom,l.nextSibling):o.appendChild(e.dom)}else o.firstChild?o.insertBefore(e.dom,o.firstChild):o.appendChild(e.dom);e.__painter=this}else b("Layer of zlevel "+t+" is not valid")},t.prototype.eachLayer=function(t,e){for(var n=this._zlevelList,i=0;i<n.length;i++){var r=n[i];t.call(e,this._layers[r],r)}},t.prototype.eachBuiltinLayer=function(t,e){for(var n=this._zlevelList,i=0;i<n.length;i++){var r=n[i],o=this._layers[r];o.__builtin__&&t.call(e,o,r)}},t.prototype.eachOtherLayer=function(t,e){for(var n=this._zlevelList,i=0;i<n.length;i++){var r=n[i],o=this._layers[r];o.__builtin__||t.call(e,o,r)}},t.prototype.getLayers=function(){return this._layers},t.prototype._updateLayerStatus=function(t){function e(t){o&&(o.__endIndex!==t&&(o.__dirty=!0),o.__endIndex=t)}if(this.eachBuiltinLayer((function(t,e){t.__dirty=t.__used=!1})),this._singleCanvas)for(var n=1;n<t.length;n++){if((s=t[n]).zlevel!==t[n-1].zlevel||s.incremental){this._needsManuallyCompositing=!0;break}}var i,r,o=null,a=0;for(r=0;r<t.length;r++){var s,l=(s=t[r]).zlevel,u=void 0;i!==l&&(i=l,a=0),s.incremental?((u=this.getLayer(l+.001,this._needsManuallyCompositing)).incremental=!0,a=1):u=this.getLayer(l+(a>0?vb:0),this._needsManuallyCompositing),u.__builtin__||b("ZLevel "+l+" has been used by unkown layer "+u.id),u!==o&&(u.__used=!0,u.__startIndex!==r&&(u.__dirty=!0),u.__startIndex=r,u.incremental?u.__drawIndex=-1:u.__drawIndex=r,e(r),o=u),s.__dirty&ii.REDARAW_BIT&&!s.__inHover&&(u.__dirty=!0,u.incremental&&u.__drawIndex<0&&(u.__drawIndex=r))}e(r),this.eachBuiltinLayer((function(t,e){!t.__used&&t.getElementCount()>0&&(t.__dirty=!0,t.__startIndex=t.__endIndex=t.__drawIndex=0),t.__dirty&&t.__drawIndex<0&&(t.__drawIndex=t.__startIndex)}))},t.prototype.clear=function(){return this.eachBuiltinLayer(this._clearLayer),this},t.prototype._clearLayer=function(t){t.clear()},t.prototype.setBackgroundColor=function(t){this._backgroundColor=t,P(this._layers,(function(t){t.setUnpainted()}))},t.prototype.configLayer=function(t,e){if(e){var n=this._layerConfig;n[t]?S(n[t],e,!0):n[t]=e;for(var i=0;i<this._zlevelList.length;i++){var r=this._zlevelList[i];if(r===t||r===t+vb)S(this._layers[r],n[t],!0)}}},t.prototype.delLayer=function(t){var e=this._layers,n=this._zlevelList,i=e[t];i&&(i.dom.parentNode.removeChild(i.dom),delete e[t],n.splice(A(n,t),1))},t.prototype.resize=function(t,e){if(this._domRoot.style){var n=this._domRoot;n.style.display="none";var i=this._opts;if(null!=t&&(i.width=t),null!=e&&(i.height=e),t=this._getSize(0),e=this._getSize(1),n.style.display="",this._width!==t||e!==this._height){for(var r in n.style.width=t+"px",n.style.height=e+"px",this._layers)this._layers.hasOwnProperty(r)&&this._layers[r].resize(t,e);this.refresh(!0)}this._width=t,this._height=e}else{if(null==t||null==e)return;this._width=t,this._height=e,this.getLayer(yb).resize(t,e)}return this},t.prototype.clearLayer=function(t){var e=this._layers[t];e&&e.clear()},t.prototype.dispose=function(){this.root.innerHTML="",this.root=this.storage=this._domRoot=this._layers=null},t.prototype.getRenderedCanvas=function(t){if(t=t||{},this._singleCanvas&&!this._compositeManually)return this._layers[314159].dom;var e=new fb("image",this,t.pixelRatio||this.dpr),n=e.ctx;if(e.initContext(),e.clear(!1,t.backgroundColor||this._backgroundColor),t.pixelRatio<=this.dpr){this.refresh();var i=e.dom.width,r=e.dom.height,o=e.ctx;this.eachLayer((function(t){t.__builtin__?o.drawImage(t.dom,0,0,i,r):t.renderToCanvas&&(e.ctx.save(),t.renderToCanvas(e.ctx),e.ctx.restore())}))}else for(var a={inHover:!1,viewWidth:this._width,viewHeight:this._height},s=this.storage.getDisplayList(!0),l=0,u=s.length;l<u;l++){Dy(n,s[l],a,l===u-1)}return e.dom},t.prototype.getWidth=function(){return this._width},t.prototype.getHeight=function(){return this._height},t.prototype._getSize=function(t){var e=this._opts,n=["width","height"][t],i=["clientWidth","clientHeight"][t],r=["paddingLeft","paddingTop"][t],o=["paddingRight","paddingBottom"][t];if(null!=e[n]&&"auto"!==e[n])return parseFloat(e[n]);var a=this.root,s=document.defaultView.getComputedStyle(a);return(a[i]||mb(s[n])||mb(a.style[n]))-(mb(s[r])||0)-(mb(s[o])||0)|0},t.prototype.pathToImage=function(t,e){e=e||this.dpr;var n=document.createElement("canvas"),i=n.getContext("2d"),r=t.getBoundingRect(),o=t.style,a=o.shadowBlur*e,s=o.shadowOffsetX*e,l=o.shadowOffsetY*e,u=t.hasStroke()?o.lineWidth:0,h=Math.max(u/2,-s+a),c=Math.max(u/2,s+a),p=Math.max(u/2,-l+a),d=Math.max(u/2,l+a),f=r.width+h+c,g=r.height+p+d;n.width=f*e,n.height=g*e,i.scale(e,e),i.clearRect(0,0,f,g),i.dpr=e;var y={x:t.x,y:t.y,scaleX:t.scaleX,scaleY:t.scaleY,rotation:t.rotation,originX:t.originX,originY:t.originY};t.x=h-r.x,t.y=p-r.y,t.rotation=0,t.scaleX=1,t.scaleY=1,t.updateTransform(),t&&Dy(i,t,{inHover:!1,viewWidth:this._width,viewHeight:this._height},!0);var v=new ts({style:{x:0,y:0,image:n}});return I(t,y),v},t}();var xb=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.hasSymbolVisual=!0,n.legendSymbol="line",n}return n(e,t),e.prototype.getInitialData=function(t){return Ym(this.getSource(),this,{useEncodeDefaulter:!0})},e.type="series.line",e.dependencies=["grid","polar"],e.defaultOption={zlevel:0,z:3,coordinateSystem:"cartesian2d",legendHoverLink:!0,clip:!0,label:{position:"top"},endLabel:{show:!1,valueAnimation:!0,distance:8},lineStyle:{width:2,type:"solid"},emphasis:{scale:!0,lineStyle:{width:"bolder"}},step:!1,smooth:!1,smoothMonotone:null,symbol:"emptyCircle",symbolSize:4,symbolRotate:null,showSymbol:!0,showAllSymbol:"auto",connectNulls:!1,sampling:"none",animationEasing:"linear",progressive:0,hoverLayerThreshold:1/0},e}(af);function bb(t,e){var n=t.mapDimensionsAll("defaultedLabel"),i=n.length;if(1===i){var r=yd(t,e,n[0]);return null!=r?r+"":null}if(i){for(var o=[],a=0;a<n.length;a++)o.push(yd(t,e,n[a]));return o.join(" ")}}function wb(t,e){var n=t.mapDimensionsAll("defaultedLabel");if(!F(e))return e+"";for(var i=[],r=0;r<n.length;r++){var o=t.getDimensionInfo(n[r]);o&&i.push(e[o.index])}return i.join(" ")}var Sb=function(t){function e(e,n,i,r){var o=t.call(this)||this;return o.updateData(e,n,i,r),o}return n(e,t),e.prototype._createSymbol=function(t,e,n,i,r){this.removeAll();var o=cy(t,-1,-1,2,2,null,r);o.attr({z2:100,culling:!0,scaleX:i[0]/2,scaleY:i[1]/2}),o.drift=Mb,this._symbolType=t,this.add(o)},e.prototype.stopSymbolAnimation=function(t){this.childAt(0).stopAnimation(null,t)},e.prototype.getSymbolPath=function(){return this.childAt(0)},e.prototype.highlight=function(){Ys(this.childAt(0))},e.prototype.downplay=function(){Xs(this.childAt(0))},e.prototype.setZ=function(t,e){var n=this.childAt(0);n.zlevel=t,n.z=e},e.prototype.setDraggable=function(t){var e=this.childAt(0);e.draggable=t,e.cursor=t?"move":e.cursor},e.prototype.updateData=function(t,n,i,r){this.silent=!1;var o=t.getItemVisual(n,"symbol")||"circle",a=t.hostModel,s=e.getSymbolSize(t,n),l=o!==this._symbolType,u=r&&r.disableAnimation;if(l){var h=t.getItemVisual(n,"symbolKeepAspect");this._createSymbol(o,t,n,s,h)}else{(p=this.childAt(0)).silent=!1;var c={scaleX:s[0]/2,scaleY:s[1]/2};u?p.attr(c):Nu(p,c,a,n)}if(this._updateCommon(t,n,s,i,r),l){var p=this.childAt(0);if(!u){c={scaleX:this._sizeX,scaleY:this._sizeY,style:{opacity:p.style.opacity}};p.scaleX=p.scaleY=0,p.style.opacity=0,Eu(p,c,a,n)}}u&&this.childAt(0).stopAnimation("remove"),this._seriesModel=a},e.prototype._updateCommon=function(t,e,n,i,r){var o,a,s,l,u,h,c,p,d,f=this.childAt(0),g=t.hostModel;if(i&&(o=i.emphasisItemStyle,a=i.blurItemStyle,s=i.selectItemStyle,l=i.focus,u=i.blurScope,h=i.symbolOffset,c=i.labelStatesModels,p=i.hoverScale,d=i.cursorStyle),!i||t.hasItemOption){var y=i&&i.itemModel?i.itemModel:t.getItemModel(e),v=y.getModel("emphasis");o=v.getModel("itemStyle").getItemStyle(),s=y.getModel(["select","itemStyle"]).getItemStyle(),a=y.getModel(["blur","itemStyle"]).getItemStyle(),l=v.get("focus"),u=v.get("blurScope"),h=y.getShallow("symbolOffset"),c=ih(y),p=v.getShallow("scale"),d=y.getShallow("cursor")}var m=t.getItemVisual(e,"symbolRotate");f.attr("rotation",(m||0)*Math.PI/180||0),h&&(f.x=qi(h[0],n[0]),f.y=qi(h[1],n[1])),d&&f.attr("cursor",d);var _=t.getItemVisual(e,"style"),x=_.fill;if(f instanceof ts){var b=f.style;f.useStyle(I({image:b.image,x:b.x,y:b.y,width:b.width,height:b.height},_))}else f.__isEmptyBrush?f.useStyle(I({},_)):f.useStyle(_),f.style.decal=null,f.setColor(x,r&&r.symbolInnerColor),f.style.strokeNoScale=!0;var w=t.getItemVisual(e,"liftZ"),S=this._z2;null!=w?null==S&&(this._z2=f.z2,f.z2+=w):null!=S&&(f.z2=S,this._z2=null);var M=r&&r.useNameLabel;nh(f,c,{labelFetcher:g,labelDataIndex:e,defaultText:function(e){return M?t.getName(e):bb(t,e)},inheritColor:x,defaultOpacity:_.opacity}),this._sizeX=n[0]/2,this._sizeY=n[1]/2;var T=f.ensureState("emphasis");if(T.style=o,f.ensureState("select").style=s,f.ensureState("blur").style=a,p){var C=Math.max(1.1,3/this._sizeY);T.scaleX=this._sizeX*C,T.scaleY=this._sizeY*C}this.setSymbolScale(1),tl(this,l,u)},e.prototype.setSymbolScale=function(t){this.scaleX=this.scaleY=t},e.prototype.fadeOut=function(t,e){var n=this.childAt(0),i=this._seriesModel,r=ms(this).dataIndex,o=e&&e.animation;if(this.silent=n.silent=!0,e&&e.fadeLabel){var a=n.getTextContent();a&&zu(a,{style:{opacity:0}},i,{dataIndex:r,removeOpt:o,cb:function(){n.removeTextContent()}})}else n.removeTextContent();zu(n,{style:{opacity:0},scaleX:0,scaleY:0},i,{dataIndex:r,cb:t,removeOpt:o})},e.getSymbolSize=function(t,e){var n=t.getItemVisual(e,"symbolSize");return n instanceof Array?n.slice():[+n,+n]},e}(Vi);function Mb(t,e){this.parent.drift(t,e)}function Ib(t,e,n,i){return e&&!isNaN(e[0])&&!isNaN(e[1])&&!(i.isIgnore&&i.isIgnore(n))&&!(i.clipShape&&!i.clipShape.contain(e[0],e[1]))&&"none"!==t.getItemVisual(n,"symbol")}function Tb(t){return null==t||X(t)||(t={isIgnore:t}),t||{}}function Cb(t){var e=t.hostModel,n=e.getModel("emphasis");return{emphasisItemStyle:n.getModel("itemStyle").getItemStyle(),blurItemStyle:e.getModel(["blur","itemStyle"]).getItemStyle(),selectItemStyle:e.getModel(["select","itemStyle"]).getItemStyle(),focus:n.get("focus"),blurScope:n.get("blurScope"),symbolRotate:e.get("symbolRotate"),symbolOffset:e.get("symbolOffset"),hoverScale:n.get("scale"),labelStatesModels:ih(e),cursorStyle:e.get("cursor")}}var Ab=function(){function t(t){this.group=new Vi,this._SymbolCtor=t||Sb}return t.prototype.updateData=function(t,e){e=Tb(e);var n=this.group,i=t.hostModel,r=this._data,o=this._SymbolCtor,a=e.disableAnimation,s=Cb(t),l={disableAnimation:a},u=e.getSymbolPoint||function(e){return t.getItemLayout(e)};r||n.removeAll(),t.diff(r).add((function(i){var r=u(i);if(Ib(t,r,i,e)){var a=new o(t,i,s,l);a.setPosition(r),t.setItemGraphicEl(i,a),n.add(a)}})).update((function(h,c){var p=r.getItemGraphicEl(c),d=u(h);if(Ib(t,d,h,e)){if(p){p.updateData(t,h,s,l);var f={x:d[0],y:d[1]};a?p.attr(f):Nu(p,f,i)}else(p=new o(t,h)).setPosition(d);n.add(p),t.setItemGraphicEl(h,p)}else n.remove(p)})).remove((function(t){var e=r.getItemGraphicEl(t);e&&e.fadeOut((function(){n.remove(e)}))})).execute(),this._getSymbolPoint=u,this._data=t},t.prototype.isPersistent=function(){return!0},t.prototype.updateLayout=function(){var t=this,e=this._data;e&&e.eachItemGraphicEl((function(e,n){var i=t._getSymbolPoint(n);e.setPosition(i),e.markRedraw()}))},t.prototype.incrementalPrepareUpdate=function(t){this._seriesScope=Cb(t),this._data=null,this.group.removeAll()},t.prototype.incrementalUpdate=function(t,e,n){function i(t){t.isGroup||(t.incremental=!0,t.ensureState("emphasis").hoverLayer=!0)}n=Tb(n);for(var r=t.start;r<t.end;r++){var o=e.getItemLayout(r);if(Ib(e,o,r,n)){var a=new this._SymbolCtor(e,r,this._seriesScope);a.traverse(i),a.setPosition(o),this.group.add(a),e.setItemGraphicEl(r,a)}}},t.prototype.remove=function(t){var e=this.group,n=this._data;n&&t?n.eachItemGraphicEl((function(t){t.fadeOut((function(){e.remove(t)}))})):e.removeAll()},t}();function Db(t,e,n){var i=t.getBaseAxis(),r=t.getOtherAxis(i),o=function(t,e){var n=0,i=t.scale.getExtent();"start"===e?n=i[0]:"end"===e?n=i[1]:i[0]>0?n=i[0]:i[1]<0&&(n=i[1]);return n}(r,n),a=i.dim,s=r.dim,l=e.mapDimension(s),u=e.mapDimension(a),h="x"===s||"radius"===s?1:0,c=O(t.dimensions,(function(t){return e.mapDimension(t)})),p=!1,d=e.getCalculationInfo("stackResultDimension");return Hm(e,c[0])&&(p=!0,c[0]=d),Hm(e,c[1])&&(p=!0,c[1]=d),{dataDimsForPoint:c,valueStart:o,valueAxisDim:s,baseAxisDim:a,stacked:!!p,valueDim:l,baseDim:u,baseDataOffset:h,stackedOverDimension:e.getCalculationInfo("stackedOverDimension")}}function Lb(t,e,n,i){var r=NaN;t.stacked&&(r=n.get(n.getCalculationInfo("stackedOverDimension"),i)),isNaN(r)&&(r=t.valueStart);var o=t.baseDataOffset,a=[];return a[o]=n.get(t.baseDim,i),a[1-o]=r,e.dataToPoint(a)}var kb="undefined"!=typeof Float32Array,Pb=kb?Float32Array:Array;function Ob(t){return F(t)?kb?new Float32Array(t):t:new Pb(t)}var Rb=Math.min,Nb=Math.max;function Eb(t,e){return isNaN(t)||isNaN(e)}function zb(t,e,n,i,r,o,a,s,l){for(var u,h,c,p,d,f,g=n,y=0;y<i;y++){var v=e[2*g],m=e[2*g+1];if(g>=r||g<0)break;if(Eb(v,m)){if(l){g+=o;continue}break}if(g===n)t[o>0?"moveTo":"lineTo"](v,m),c=v,p=m;else{var _=v-u,x=m-h;if(_*_+x*x<.5){g+=o;continue}if(a>0){var b=g+o,w=e[2*b],S=e[2*b+1],M=y+1;if(l)for(;Eb(w,S)&&M<i;)M++,w=e[2*(b+=o)],S=e[2*b+1];var I=.5,T=0,C=0,A=void 0,D=void 0;if(M>=i||Eb(w,S))d=v,f=m;else{T=w-u,C=S-h;var L=v-u,k=w-v,P=m-h,O=S-m,R=void 0,N=void 0;"x"===s?(R=Math.abs(L),N=Math.abs(k),d=v-R*a,f=m,A=v+R*a,D=m):"y"===s?(R=Math.abs(P),N=Math.abs(O),d=v,f=m-R*a,A=v,D=m+R*a):(R=Math.sqrt(L*L+P*P),d=v-T*a*(1-(I=(N=Math.sqrt(k*k+O*O))/(N+R))),f=m-C*a*(1-I),D=m+C*a*I,A=Rb(A=v+T*a*I,Nb(w,v)),D=Rb(D,Nb(S,m)),A=Nb(A,Rb(w,v)),f=m-(C=(D=Nb(D,Rb(S,m)))-m)*R/N,d=Rb(d=v-(T=A-v)*R/N,Nb(u,v)),f=Rb(f,Nb(h,m)),A=v+(T=v-(d=Nb(d,Rb(u,v))))*N/R,D=m+(C=m-(f=Nb(f,Rb(h,m))))*N/R)}t.bezierCurveTo(c,p,d,f,v,m),c=A,p=D}else t.lineTo(v,m)}u=v,h=m,g+=o}return y}var Bb=function(){this.smooth=0,this.smoothConstraint=!0},Vb=function(t){function e(e){var n=t.call(this,e)||this;return n.type="ec-polyline",n}return n(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new Bb},e.prototype.buildPath=function(t,e){var n=e.points,i=0,r=n.length/2;if(e.connectNulls){for(;r>0&&Eb(n[2*r-2],n[2*r-1]);r--);for(;i<r&&Eb(n[2*i],n[2*i+1]);i++);}for(;i<r;)i+=zb(t,n,i,r,r,1,e.smooth,e.smoothMonotone,e.connectNulls)+1},e.prototype.getPointOn=function(t,e){this.path||(this.createPathProxy(),this.buildPath(this.path,this.shape));for(var n,i,r=this.path.data,o=Da.CMD,a="x"===e,s=[],l=0;l<r.length;){var u=void 0,h=void 0,c=void 0,p=void 0,d=void 0,f=void 0,g=void 0;switch(r[l++]){case o.M:n=r[l++],i=r[l++];break;case o.L:if(u=r[l++],h=r[l++],(g=a?(t-n)/(u-n):(t-i)/(h-i))<=1&&g>=0){var y=a?(h-i)*g+i:(u-n)*g+n;return a?[t,y]:[y,t]}n=u,i=h;break;case o.C:u=r[l++],h=r[l++],c=r[l++],p=r[l++],d=r[l++],f=r[l++];var v=a?Bo(n,u,c,d,t,s):Bo(i,h,p,f,t,s);if(v>0)for(var m=0;m<v;m++){var _=s[m];if(_<=1&&_>=0){y=a?Eo(i,h,p,f,_):Eo(n,u,c,d,_);return a?[t,y]:[y,t]}}n=d,i=f}}},e}(qa),Fb=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e}(Bb),Gb=function(t){function e(e){var n=t.call(this,e)||this;return n.type="ec-polygon",n}return n(e,t),e.prototype.getDefaultShape=function(){return new Fb},e.prototype.buildPath=function(t,e){var n=e.points,i=e.stackedOnPoints,r=0,o=n.length/2,a=e.smoothMonotone;if(e.connectNulls){for(;o>0&&Eb(n[2*o-2],n[2*o-1]);o--);for(;r<o&&Eb(n[2*r],n[2*r+1]);r++);}for(;r<o;){var s=zb(t,n,r,o,o,1,e.smooth,a,e.connectNulls);zb(t,i,r+s-1,s,o,-1,e.stackedOnSmooth,a,e.connectNulls),r+=s+1,t.closePath()}},e}(qa);function Hb(t,e,n,i,r){var o=t.getArea(),a=o.x,s=o.y,l=o.width,u=o.height,h=n.get(["lineStyle","width"])||2;a-=h/2,s-=h/2,l+=h,u+=h,a=Math.floor(a),l=Math.round(l);var c=new ss({shape:{x:a,y:s,width:l,height:u}});if(e){var p=t.getBaseAxis(),d=p.isHorizontal(),f=p.inverse;d?(f&&(c.shape.x+=l),c.shape.width=0):(f||(c.shape.y+=u),c.shape.height=0),Eu(c,{shape:{width:l,height:u,x:a,y:s}},n,null,i,"function"==typeof r?function(t){r(t,c)}:null)}return c}function Wb(t,e,n){var i=t.getArea(),r=Ki(i.r0,1),o=Ki(i.r,1),a=new Xl({shape:{cx:Ki(t.cx,1),cy:Ki(t.cy,1),r0:r,r:o,startAngle:i.startAngle,endAngle:i.endAngle,clockwise:i.clockwise}});e&&("angle"===t.getBaseAxis().dim?a.shape.endAngle=i.startAngle:a.shape.r=r,Eu(a,{shape:{endAngle:i.endAngle,r:o}},n));return a}function Yb(t,e,n,i,r){return t?"polar"===t.type?Wb(t,e,n):"cartesian2d"===t.type?Hb(t,e,n,i,r):null:null}function Xb(t,e){return t.type===e}function Ub(t,e){if(t.length===e.length){for(var n=0;n<t.length;n++)if(t[n]!==e[n])return;return!0}}function Zb(t){for(var e=1/0,n=1/0,i=-1/0,r=-1/0,o=0;o<t.length;){var a=t[o++],s=t[o++];isNaN(a)||(e=Math.min(a,e),i=Math.max(a,i)),isNaN(s)||(n=Math.min(s,n),r=Math.max(s,r))}return[[e,n],[i,r]]}function jb(t,e){var n=Zb(t),i=n[0],r=n[1],o=Zb(e),a=o[0],s=o[1];return Math.max(Math.abs(i[0]-a[0]),Math.abs(i[1]-a[1]),Math.abs(r[0]-s[0]),Math.abs(r[1]-s[1]))}function qb(t){return"number"==typeof t?t:t?.5:0}function Kb(t,e,n){for(var i=e.getBaseAxis(),r="x"===i.dim||"radius"===i.dim?0:1,o=[],a=0,s=[],l=[],u=[];a<t.length-2;a+=2)switch(u[0]=t[a+2],u[1]=t[a+3],l[0]=t[a],l[1]=t[a+1],o.push(l[0],l[1]),n){case"end":s[r]=u[r],s[1-r]=l[1-r],o.push(s[0],s[1]);break;case"middle":var h=(l[r]+u[r])/2,c=[];s[r]=c[r]=h,s[1-r]=l[1-r],c[1-r]=u[1-r],o.push(s[0],s[1]),o.push(c[0],c[1]);break;default:s[r]=l[r],s[1-r]=u[1-r],o.push(s[0],s[1])}return o.push(t[a++],t[a++]),o}function $b(t,e,n){var i=t.get("showAllSymbol"),r="auto"===i;if(!i||r){var o=n.getAxesByScale("ordinal")[0];if(o&&(!r||!function(t,e){var n=t.getExtent(),i=Math.abs(n[1]-n[0])/t.scale.count();isNaN(i)&&(i=0);for(var r=e.count(),o=Math.max(1,Math.round(r/5)),a=0;a<r;a+=o)if(1.5*Sb.getSymbolSize(e,a)[t.isHorizontal()?1:0]>i)return!1;return!0}(o,e))){var a=e.mapDimension(o.dim),s={};return P(o.getViewLabels(),(function(t){var e=o.scale.getRawOrdinalNumber(t.tickValue);s[e]=1})),function(t){return!s.hasOwnProperty(e.get(a,t))}}}}function Jb(t,e){return[t[2*e],t[2*e+1]]}function Qb(t,e,n,i){if(Xb(e,"cartesian2d")){var r=i.getModel("endLabel"),o=r.get("show"),a=r.get("valueAnimation"),s=i.getData(),l={lastFrameIndex:0},u=o?function(n,i){t._endLabelOnDuring(n,i,s,l,a,r,e)}:null,h=e.getBaseAxis().isHorizontal(),c=Hb(e,n,i,(function(){var e=t._endLabel;e&&n&&null!=l.originalX&&e.attr({x:l.originalX,y:l.originalY})}),u);if(!i.get("clip",!0)){var p=c.shape,d=Math.max(p.width,p.height);h?(p.y-=d,p.height+=2*d):(p.x-=d,p.width+=2*d)}return u&&u(1,c),c}return Wb(e,n,i)}var tw=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.init=function(){var t=new Vi,e=new Ab;this.group.add(e.group),this._symbolDraw=e,this._lineGroup=t},e.prototype.render=function(t,e,n){var i=this,r=t.coordinateSystem,o=this.group,a=t.getData(),s=t.getModel("lineStyle"),l=t.getModel("areaStyle"),u=a.getLayout("points")||[],h="polar"===r.type,c=this._coordSys,p=this._symbolDraw,d=this._polyline,f=this._polygon,g=this._lineGroup,y=t.get("animation"),v=!l.isEmpty(),m=l.get("origin"),_=Db(r,a,m),x=v&&function(t,e,n){if(!n.valueDim)return[];for(var i=e.count(),r=Ob(2*i),o=0;o<i;o++){var a=Lb(n,t,e,o);r[2*o]=a[0],r[2*o+1]=a[1]}return r}(r,a,_),b=t.get("showSymbol"),w=b&&!h&&$b(t,a,r),S=this._data;S&&S.eachItemGraphicEl((function(t,e){t.__temp&&(o.remove(t),S.setItemGraphicEl(e,null))})),b||p.remove(),o.add(g);var M,I=!h&&t.get("step");r&&r.getArea&&t.get("clip",!0)&&(null!=(M=r.getArea()).width?(M.x-=.1,M.y-=.1,M.width+=.2,M.height+=.2):M.r0&&(M.r0-=.5,M.r+=.5)),this._clipShapeForSymbol=M,d&&c.type===r.type&&I===this._step?(v&&!f?f=this._newPolygon(u,x):f&&!v&&(g.remove(f),f=this._polygon=null),h||this._initOrUpdateEndLabel(t,r),g.setClipPath(Qb(this,r,!1,t)),b&&p.updateData(a,{isIgnore:w,clipShape:M,disableAnimation:!0,getSymbolPoint:function(t){return[u[2*t],u[2*t+1]]}}),Ub(this._stackedOnPoints,x)&&Ub(this._points,u)||(y?this._doUpdateAnimation(a,x,r,n,I,m):(I&&(u=Kb(u,r,I),x&&(x=Kb(x,r,I))),d.setShape({points:u}),f&&f.setShape({points:u,stackedOnPoints:x})))):(b&&p.updateData(a,{isIgnore:w,clipShape:M,disableAnimation:!0,getSymbolPoint:function(t){return[u[2*t],u[2*t+1]]}}),y&&this._initSymbolLabelAnimation(a,r,M),I&&(u=Kb(u,r,I),x&&(x=Kb(x,r,I))),d=this._newPolyline(u),v&&(f=this._newPolygon(u,x)),h||this._initOrUpdateEndLabel(t,r),g.setClipPath(Qb(this,r,!0,t)));var C=function(t,e){var n=t.getVisual("visualMeta");if(n&&n.length&&t.count()&&"cartesian2d"===e.type){for(var i,r,o=n.length-1;o>=0;o--){var a=n[o].dimension,s=t.dimensions[a],l=t.getDimensionInfo(s);if("x"===(i=l&&l.coordDim)||"y"===i){r=n[o];break}}if(r){var u=e.getAxis(i),h=O(r.stops,(function(t){return{offset:0,coord:u.toGlobalCoord(u.dataToCoord(t.value)),color:t.color}})),c=h.length,p=r.outerColors.slice();c&&h[0].coord>h[c-1].coord&&(h.reverse(),p.reverse());var d=h[0].coord-10,f=h[c-1].coord+10,g=f-d;if(g<.001)return"transparent";P(h,(function(t){t.offset=(t.coord-d)/g})),h.push({offset:c?h[c-1].offset:.5,color:p[1]||"transparent"}),h.unshift({offset:c?h[0].offset:.5,color:p[0]||"transparent"});var y=new cu(0,0,0,0,h,!0);return y[i]=d,y[i+"2"]=f,y}}}(a,r)||a.getVisual("style")[a.getVisual("drawType")],A=t.get(["emphasis","focus"]),D=t.get(["emphasis","blurScope"]);(d.useStyle(T(s.getLineStyle(),{fill:"none",stroke:C,lineJoin:"bevel"})),rl(d,t,"lineStyle"),d.style.lineWidth>0&&"bolder"===t.get(["emphasis","lineStyle","width"]))&&(d.getState("emphasis").style.lineWidth=d.style.lineWidth+1);ms(d).seriesIndex=t.seriesIndex,tl(d,A,D);var L=qb(t.get("smooth")),k=t.get("smoothMonotone"),R=t.get("connectNulls");if(d.setShape({smooth:L,smoothMonotone:k,connectNulls:R}),f){var N=a.getCalculationInfo("stackedOnSeries"),E=0;f.useStyle(T(l.getAreaStyle(),{fill:C,opacity:.7,lineJoin:"bevel",decal:a.getVisual("style").decal})),N&&(E=qb(N.get("smooth"))),f.setShape({smooth:L,stackedOnSmooth:E,smoothMonotone:k,connectNulls:R}),rl(f,t,"areaStyle"),ms(f).seriesIndex=t.seriesIndex,tl(f,A,D)}var z=function(t){i._changePolyState(t)};a.eachItemGraphicEl((function(t){t&&(t.onHoverStateChange=z)})),this._polyline.onHoverStateChange=z,this._data=a,this._coordSys=r,this._stackedOnPoints=x,this._points=u,this._step=I,this._valueOrigin=m},e.prototype.dispose=function(){},e.prototype.highlight=function(t,e,n,i){var r=t.getData(),o=kr(r,i);if(this._changePolyState("emphasis"),!(o instanceof Array)&&null!=o&&o>=0){var a=r.getLayout("points"),s=r.getItemGraphicEl(o);if(!s){var l=a[2*o],u=a[2*o+1];if(isNaN(l)||isNaN(u))return;if(this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(l,u))return;(s=new Sb(r,o)).x=l,s.y=u,s.setZ(t.get("zlevel"),t.get("z")),s.__temp=!0,r.setItemGraphicEl(o,s),s.stopSymbolAnimation(!0),this.group.add(s)}s.highlight()}else mf.prototype.highlight.call(this,t,e,n,i)},e.prototype.downplay=function(t,e,n,i){var r=t.getData(),o=kr(r,i);if(this._changePolyState("normal"),null!=o&&o>=0){var a=r.getItemGraphicEl(o);a&&(a.__temp?(r.setItemGraphicEl(o,null),this.group.remove(a)):a.downplay())}else mf.prototype.downplay.call(this,t,e,n,i)},e.prototype._changePolyState=function(t){var e=this._polygon;Gs(this._polyline,t),e&&Gs(e,t)},e.prototype._newPolyline=function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new Vb({shape:{points:t},segmentIgnoreThreshold:2,z2:10}),this._lineGroup.add(e),this._polyline=e,e},e.prototype._newPolygon=function(t,e){var n=this._polygon;return n&&this._lineGroup.remove(n),n=new Gb({shape:{points:t,stackedOnPoints:e},segmentIgnoreThreshold:2}),this._lineGroup.add(n),this._polygon=n,n},e.prototype._initSymbolLabelAnimation=function(t,e,n){var i,r,o=e.getBaseAxis(),a=o.inverse;"cartesian2d"===e.type?(i=o.isHorizontal(),r=!1):"polar"===e.type&&(i="angle"===o.dim,r=!0);var s=t.hostModel,l=s.get("animationDuration");"function"==typeof l&&(l=l(null));var u=s.get("animationDelay")||0,h="function"==typeof u?u(null):u;t.eachItemGraphicEl((function(t,o){var s=t;if(s){var c=[t.x,t.y],p=void 0,d=void 0,f=void 0;if(r){var g=n,y=e.pointToCoord(c);i?(p=g.startAngle,d=g.endAngle,f=-y[1]/180*Math.PI):(p=g.r0,d=g.r,f=y[0])}else{var v=n;i?(p=v.x,d=v.x+v.width,f=t.x):(p=v.y+v.height,d=v.y,f=t.y)}var m=d===p?0:(f-p)/(d-p);a&&(m=1-m);var _="function"==typeof u?u(o):l*m+h,x=s.getSymbolPath(),b=x.getTextContent();s.attr({scaleX:0,scaleY:0}),s.animateTo({scaleX:1,scaleY:1},{duration:200,delay:_}),b&&b.animateFrom({style:{opacity:0}},{duration:300,delay:_}),x.disableLabelAnimation=!0}}))},e.prototype._initOrUpdateEndLabel=function(t,e){var n=t.getModel("endLabel");if(n.get("show")){var i=t.getData(),r=this._polyline,o=this._endLabel;o||((o=this._endLabel=new hs({z2:200})).ignoreClip=!0,r.setTextContent(this._endLabel),r.disableLabelAnimation=!0);var a=function(t){for(var e,n,i=t.length/2;i>0&&(e=t[2*i-2],n=t[2*i-1],isNaN(e)||isNaN(n));i--);return i-1}(i.getLayout("points"));a>=0&&(nh(r,ih(t,"endLabel"),{labelFetcher:t,labelDataIndex:a,defaultText:function(t,e,n){return null!=n?wb(i,n):bb(i,t)},enableTextSetter:!0},function(t,e){var n=e.getBaseAxis(),i=n.isHorizontal(),r=n.inverse,o=i?r?"right":"left":"center",a=i?"middle":r?"top":"bottom";return{normal:{align:t.get("align")||o,verticalAlign:t.get("verticalAlign")||a}}}(n,e)),r.textConfig.position=null)}else this._endLabel&&(this._polyline.removeTextContent(),this._endLabel=null)},e.prototype._endLabelOnDuring=function(t,e,n,i,r,o,a){var s=this._endLabel,l=this._polyline;if(s){t<1&&null==i.originalX&&(i.originalX=s.x,i.originalY=s.y);var u=n.getLayout("points"),h=n.hostModel,c=h.get("connectNulls"),p=o.get("precision"),d=o.get("distance")||0,f=a.getBaseAxis(),g=f.isHorizontal(),y=f.inverse,v=e.shape,m=y?g?v.x:v.y+v.height:g?v.x+v.width:v.y,_=(g?d:0)*(y?-1:1),x=(g?0:-d)*(y?-1:1),b=g?"x":"y",w=function(t,e,n){for(var i,r,o=t.length/2,a="x"===n?0:1,s=0,l=-1,u=0;u<o;u++)if(r=t[2*u+a],!isNaN(r)&&!isNaN(t[2*u+1-a]))if(0!==u){if(i<=e&&r>=e||i>=e&&r<=e){l=u;break}s=u,i=r}else i=r;return{range:[s,l],t:(e-i)/(r-i)}}(u,m,b),S=w.range,M=S[1]-S[0],I=void 0;if(M>=1){if(M>1&&!c){var T=Jb(u,S[0]);s.attr({x:T[0]+_,y:T[1]+x}),r&&(I=h.getRawValue(S[0]))}else{(T=l.getPointOn(m,b))&&s.attr({x:T[0]+_,y:T[1]+x});var C=h.getRawValue(S[0]),A=h.getRawValue(S[1]);r&&(I=Fr(n,p,C,A,w.t))}i.lastFrameIndex=S[0]}else{var D=1===t||i.lastFrameIndex>0?S[0]:0;T=Jb(u,D);r&&(I=h.getRawValue(D)),s.attr({x:T[0]+_,y:T[1]+x})}r&&ch(s).setLabelText(I)}},e.prototype._doUpdateAnimation=function(t,e,n,i,r,o){var a=this._polyline,s=this._polygon,l=t.hostModel,u=function(t,e,n,i,r,o,a,s){for(var l=function(t,e){var n=[];return e.diff(t).add((function(t){n.push({cmd:"+",idx:t})})).update((function(t,e){n.push({cmd:"=",idx:e,idx1:t})})).remove((function(t){n.push({cmd:"-",idx:t})})).execute(),n}(t,e),u=[],h=[],c=[],p=[],d=[],f=[],g=[],y=Db(r,e,a),v=Db(o,t,s),m=t.getLayout("points")||[],_=e.getLayout("points")||[],x=0;x<l.length;x++){var b=l[x],w=!0,S=void 0,M=void 0;switch(b.cmd){case"=":S=2*b.idx,M=2*b.idx1;var I=m[S],T=m[S+1],C=_[M],A=_[M+1];(isNaN(I)||isNaN(T))&&(I=C,T=A),u.push(I,T),h.push(C,A),c.push(n[S],n[S+1]),p.push(i[M],i[M+1]),g.push(e.getRawIndex(b.idx1));break;case"+":var D=b.idx,L=y.dataDimsForPoint,k=r.dataToPoint([e.get(L[0],D),e.get(L[1],D)]);M=2*D,u.push(k[0],k[1]),h.push(_[M],_[M+1]);var P=Lb(y,r,e,D);c.push(P[0],P[1]),p.push(i[M],i[M+1]),g.push(e.getRawIndex(D));break;case"-":var O=b.idx,R=t.getRawIndex(O),N=v.dataDimsForPoint;if(S=2*O,R!==O){var E=o.dataToPoint([t.get(N[0],O),t.get(N[1],O)]),z=Lb(v,o,t,O);u.push(m[S],m[S+1]),h.push(E[0],E[1]),c.push(n[S],n[S+1]),p.push(z[0],z[1]),g.push(R)}else w=!1}w&&(d.push(b),f.push(f.length))}f.sort((function(t,e){return g[t]-g[e]}));var B=u.length,V=Ob(B),F=Ob(B),G=Ob(B),H=Ob(B),W=[];for(x=0;x<f.length;x++){var Y=f[x],X=2*x,U=2*Y;V[X]=u[U],V[X+1]=u[U+1],F[X]=h[U],F[X+1]=h[U+1],G[X]=c[U],G[X+1]=c[U+1],H[X]=p[U],H[X+1]=p[U+1],W[x]=d[Y]}return{current:V,next:F,stackedOnCurrent:G,stackedOnNext:H,status:W}}(this._data,t,this._stackedOnPoints,e,this._coordSys,n,this._valueOrigin,o),h=u.current,c=u.stackedOnCurrent,p=u.next,d=u.stackedOnNext;if(r&&(h=Kb(u.current,n,r),c=Kb(u.stackedOnCurrent,n,r),p=Kb(u.next,n,r),d=Kb(u.stackedOnNext,n,r)),jb(h,p)>3e3||s&&jb(c,d)>3e3)return a.setShape({points:p}),void(s&&s.setShape({points:p,stackedOnPoints:d}));a.shape.__points=u.current,a.shape.points=h;var f={shape:{points:p}};u.current!==h&&(f.shape.__points=u.next),a.stopAnimation(),Nu(a,f,l),s&&(s.setShape({points:h,stackedOnPoints:c}),s.stopAnimation(),Nu(s,{shape:{stackedOnPoints:d}},l),a.shape.points!==s.shape.points&&(s.shape.points=a.shape.points));for(var g=[],y=u.status,v=0;v<y.length;v++){if("="===y[v].cmd){var m=t.getItemGraphicEl(y[v].idx1);m&&g.push({el:m,ptIdx:v})}}a.animators&&a.animators.length&&a.animators[0].during((function(){s&&s.dirtyShape();for(var t=a.shape.__points,e=0;e<g.length;e++){var n=g[e].el,i=2*g[e].ptIdx;n.x=t[i],n.y=t[i+1],n.markRedraw()}}))},e.prototype.remove=function(t){var e=this.group,n=this._data;this._lineGroup.removeAll(),this._symbolDraw.remove(!0),n&&n.eachItemGraphicEl((function(t,i){t.__temp&&(e.remove(t),n.setItemGraphicEl(i,null))})),this._polyline=this._polygon=this._coordSys=this._points=this._stackedOnPoints=this._endLabel=this._data=null},e.type="line",e}(mf);function ew(t,e){return{seriesType:t,plan:gf(),reset:function(t){var n=t.getData(),i=t.coordinateSystem,r=t.pipelineContext,o=e||r.large;if(i){var a=O(i.dimensions,(function(t){return n.mapDimension(t)})).slice(0,2),s=a.length,l=n.getCalculationInfo("stackResultDimension");Hm(n,a[0])&&(a[0]=l),Hm(n,a[1])&&(a[1]=l);var u=n.getDimensionInfo(a[0]),h=n.getDimensionInfo(a[1]),c=u&&u.index,p=h&&h.index;return s&&{progress:function(t,e){for(var n=t.end-t.start,r=o&&Ob(n*s),a=[],l=[],u=t.start,h=0;u<t.end;u++){var d=void 0;if(1===s){var f=e.getByDimIdx(c,u);d=i.dataToPoint(f,null,l)}else a[0]=e.getByDimIdx(c,u),a[1]=e.getByDimIdx(p,u),d=i.dataToPoint(a,null,l);o?(r[h++]=d[0],r[h++]=d[1]):e.setItemLayout(u,d.slice())}o&&e.setLayout("points",r)}}}}}}var nw={average:function(t){for(var e=0,n=0,i=0;i<t.length;i++)isNaN(t[i])||(e+=t[i],n++);return 0===n?NaN:e/n},sum:function(t){for(var e=0,n=0;n<t.length;n++)e+=t[n]||0;return e},max:function(t){for(var e=-1/0,n=0;n<t.length;n++)t[n]>e&&(e=t[n]);return isFinite(e)?e:NaN},min:function(t){for(var e=1/0,n=0;n<t.length;n++)t[n]<e&&(e=t[n]);return isFinite(e)?e:NaN},nearest:function(t){return t[0]}},iw=function(t){return Math.round(t.length/2)};function rw(t){return{seriesType:t,reset:function(t,e,n){var i=t.getData(),r=t.get("sampling"),o=t.coordinateSystem,a=i.count();if(a>10&&"cartesian2d"===o.type&&r){var s=o.getBaseAxis(),l=o.getOtherAxis(s),u=s.getExtent(),h=n.getDevicePixelRatio(),c=Math.abs(u[1]-u[0])*(h||1),p=Math.round(a/c);if(p>1){"lttb"===r&&t.setData(i.lttbDownSample(i.mapDimension(l.dim),1/p));var d=void 0;"string"==typeof r?d=nw[r]:"function"==typeof r&&(d=r),d&&t.setData(i.downSample(i.mapDimension(l.dim),1/p,d,iw))}}}}}var ow=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.getInitialData=function(t,e){return Ym(this.getSource(),this,{useEncodeDefaulter:!0})},e.prototype.getMarkerPosition=function(t){var e=this.coordinateSystem;if(e){var n=e.dataToPoint(e.clampData(t)),i=this.getData(),r=i.getLayout("offset"),o=i.getLayout("size");return n[e.getBaseAxis().isHorizontal()?0:1]+=r+o/2,n}return[NaN,NaN]},e.type="series.__base_bar__",e.defaultOption={zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:3e3,progressiveChunkMode:"mod"},e}(af);af.registerClass(ow);var aw=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.getInitialData=function(){return Ym(this.getSource(),this,{useEncodeDefaulter:!0,createInvertedIndices:!!this.get("realtimeSort",!0)||null})},e.prototype.getProgressive=function(){return!!this.get("large")&&this.get("progressive")},e.prototype.getProgressiveThreshold=function(){var t=this.get("progressiveThreshold"),e=this.get("largeThreshold");return e>t&&(t=e),t},e.prototype.brushSelector=function(t,e,n){return n.rect(e.getItemLayout(t))},e.type="series.bar",e.dependencies=["grid","polar"],e.defaultOption=Ah(ow.defaultOption,{clip:!0,roundCap:!1,showBackground:!1,backgroundStyle:{color:"rgba(180, 180, 180, 0.2)",borderColor:null,borderWidth:0,borderType:"solid",borderRadius:0,shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0,opacity:1},select:{itemStyle:{borderColor:"#212121"}},realtimeSort:!1}),e}(ow),sw=function(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0},lw=function(t){function e(e){var n=t.call(this,e)||this;return n.type="sausage",n}return n(e,t),e.prototype.getDefaultShape=function(){return new sw},e.prototype.buildPath=function(t,e){var n=e.cx,i=e.cy,r=Math.max(e.r0||0,0),o=Math.max(e.r,0),a=.5*(o-r),s=r+a,l=e.startAngle,u=e.endAngle,h=e.clockwise,c=Math.cos(l),p=Math.sin(l),d=Math.cos(u),f=Math.sin(u);(h?u-l<2*Math.PI:l-u<2*Math.PI)&&(t.moveTo(c*r+n,p*r+i),t.arc(c*s+n,p*s+i,a,-Math.PI+l,l,!h)),t.arc(n,i,o,l,u,!h),t.moveTo(d*o+n,f*o+i),t.arc(d*s+n,f*s+i,a,u-2*Math.PI,u-Math.PI,!h),0!==r&&(t.arc(n,i,r,u,l,h),t.moveTo(c*r+n,f*r+i)),t.closePath()},e}(qa),uw=["itemStyle","borderWidth"],hw=["itemStyle","borderRadius"],cw=[0,0],pw=Math.max,dw=Math.min;var fw=function(t){function e(){var n=t.call(this)||this;return n.type=e.type,n._isFirstFrame=!0,n}return n(e,t),e.prototype.render=function(t,e,n,i){this._model=t,this._removeOnRenderedListener(n),this._updateDrawMode(t);var r=t.get("coordinateSystem");("cartesian2d"===r||"polar"===r)&&(this._isLargeDraw?this._renderLarge(t,e,n):this._renderNormal(t,e,n,i))},e.prototype.incrementalPrepareRender=function(t){this._clear(),this._updateDrawMode(t),this._updateLargeClip(t)},e.prototype.incrementalRender=function(t,e){this._incrementalRenderLarge(t,e)},e.prototype._updateDrawMode=function(t){var e=t.pipelineContext.large;null!=this._isLargeDraw&&e===this._isLargeDraw||(this._isLargeDraw=e,this._clear())},e.prototype._renderNormal=function(t,e,n,i){var r,o=this.group,a=t.getData(),s=this._data,l=t.coordinateSystem,u=l.getBaseAxis();"cartesian2d"===l.type?r=u.isHorizontal():"polar"===l.type&&(r="angle"===u.dim);var h=t.isAnimationEnabled()?t:null,c=function(t,e){var n=t.get("realtimeSort",!0),i=e.getBaseAxis();0;if(n&&"category"===i.type&&"cartesian2d"===e.type)return{baseAxis:i,otherAxis:e.getOtherAxis(i)}}(t,l);c&&this._enableRealtimeSort(c,a,n);var p=t.get("clip",!0)||c,d=function(t,e){var n=t.getArea&&t.getArea();if(Xb(t,"cartesian2d")){var i=t.getBaseAxis();if("category"!==i.type||!i.onBand){var r=e.getLayout("bandWidth");i.isHorizontal()?(n.x-=r,n.width+=2*r):(n.y-=r,n.height+=2*r)}}return n}(l,a);o.removeClipPath();var f=t.get("roundCap",!0),g=t.get("showBackground",!0),y=t.getModel("backgroundStyle"),v=y.get("borderRadius")||0,m=[],_=this._backgroundEls,x=i&&i.isInitSort,b=i&&"changeAxisOrder"===i.type;function w(t){var e=mw[l.type](a,t),n=function(t,e,n){return new("polar"===t.type?Xl:ss)({shape:Mw(e,n,t),silent:!0,z2:0})}(l,r,e);return n.useStyle(y.getItemStyle()),"cartesian2d"===l.type&&n.setShape("r",v),m[t]=n,n}a.diff(s).add((function(e){var n=a.getItemModel(e),i=mw[l.type](a,e,n);if(g&&w(e),a.hasValue(e)){var s=!1;p&&(s=gw[l.type](d,i));var y=yw[l.type](t,a,e,i,r,h,u.model,!1,f);_w(y,a,e,n,i,t,r,"polar"===l.type),x?y.attr({shape:i}):c?vw(c,h,y,i,e,r,!1,!1):Eu(y,{shape:i},t,e),a.setItemGraphicEl(e,y),o.add(y),y.ignore=s}})).update((function(e,n){var i=a.getItemModel(e),S=mw[l.type](a,e,i);if(g){var M=void 0;0===_.length?M=w(n):((M=_[n]).useStyle(y.getItemStyle()),"cartesian2d"===l.type&&M.setShape("r",v),m[e]=M);var I=mw[l.type](a,e);Nu(M,{shape:Mw(r,I,l)},h,e)}var T=s.getItemGraphicEl(n);if(!a.hasValue(e))return o.remove(T),void(T=null);var C=!1;p&&(C=gw[l.type](d,S))&&o.remove(T),T||(T=yw[l.type](t,a,e,S,r,h,u.model,!!T,f)),b||_w(T,a,e,i,S,t,r,"polar"===l.type),x?T.attr({shape:S}):c?vw(c,h,T,S,e,r,!0,b):Nu(T,{shape:S},t,e,null),a.setItemGraphicEl(e,T),T.ignore=C,o.add(T)})).remove((function(e){var n=s.getItemGraphicEl(e);n&&Vu(n,t,e)})).execute();var S=this._backgroundGroup||(this._backgroundGroup=new Vi);S.removeAll();for(var M=0;M<m.length;++M)S.add(m[M]);o.add(S),this._backgroundEls=m,this._data=a},e.prototype._renderLarge=function(t,e,n){this._clear(),ww(t,this.group),this._updateLargeClip(t)},e.prototype._incrementalRenderLarge=function(t,e){this._removeBackground(),ww(e,this.group,!0)},e.prototype._updateLargeClip=function(t){var e=t.get("clip",!0)?Yb(t.coordinateSystem,!1,t):null;e?this.group.setClipPath(e):this.group.removeClipPath()},e.prototype._enableRealtimeSort=function(t,e,n){var i=this;if(e.count()){var r=t.baseAxis;if(this._isFirstFrame)this._dispatchInitSort(e,t,n),this._isFirstFrame=!1;else{var o=function(t){var n=e.getItemGraphicEl(t);if(n){var i=n.shape;return(r.isHorizontal()?Math.abs(i.height):Math.abs(i.width))||0}return 0};this._onRendered=function(){i._updateSortWithinSameData(e,o,r,n)},n.getZr().on("rendered",this._onRendered)}}},e.prototype._dataSort=function(t,e,n){var i=[];return t.each(t.mapDimension(e.dim),(function(t,e){var r=n(e);r=null==r?NaN:r,i.push({dataIndex:e,mappedValue:r,ordinalNumber:t})})),i.sort((function(t,e){return e.mappedValue-t.mappedValue})),{ordinalNumbers:O(i,(function(t){return t.ordinalNumber}))}},e.prototype._isOrderChangedWithinSameData=function(t,e,n){for(var i=n.scale,r=t.mapDimension(n.dim),o=Number.MAX_VALUE,a=0,s=i.getOrdinalMeta().categories.length;a<s;++a){var l=t.rawIndexOf(r,i.getRawOrdinalNumber(a)),u=l<0?Number.MIN_VALUE:e(t.indexOfRawIndex(l));if(u>o)return!0;o=u}return!1},e.prototype._isOrderDifferentInView=function(t,e){for(var n=e.scale,i=n.getExtent(),r=Math.max(0,i[0]),o=Math.min(i[1],n.getOrdinalMeta().categories.length-1);r<=o;++r)if(t.ordinalNumbers[r]!==n.getRawOrdinalNumber(r))return!0},e.prototype._updateSortWithinSameData=function(t,e,n,i){if(this._isOrderChangedWithinSameData(t,e,n)){var r=this._dataSort(t,n,e);this._isOrderDifferentInView(r,n)&&(this._removeOnRenderedListener(i),i.dispatchAction({type:"changeAxisOrder",componentType:n.dim+"Axis",axisId:n.index,sortInfo:r}))}},e.prototype._dispatchInitSort=function(t,e,n){var i=e.baseAxis,r=this._dataSort(t,i,(function(n){return t.get(t.mapDimension(e.otherAxis.dim),n)}));n.dispatchAction({type:"changeAxisOrder",componentType:i.dim+"Axis",isInitSort:!0,axisId:i.index,sortInfo:r,animation:{duration:0}})},e.prototype.remove=function(t,e){this._clear(this._model),this._removeOnRenderedListener(e)},e.prototype.dispose=function(t,e){this._removeOnRenderedListener(e)},e.prototype._removeOnRenderedListener=function(t){this._onRendered&&(t.getZr().off("rendered",this._onRendered),this._onRendered=null)},e.prototype._clear=function(t){var e=this.group,n=this._data;t&&t.isAnimationEnabled()&&n&&!this._isLargeDraw?(this._removeBackground(),this._backgroundEls=[],n.eachItemGraphicEl((function(e){Vu(e,t,ms(e).dataIndex)}))):e.removeAll(),this._data=null,this._isFirstFrame=!0},e.prototype._removeBackground=function(){this.group.remove(this._backgroundGroup),this._backgroundGroup=null},e.type="bar",e}(mf),gw={cartesian2d:function(t,e){var n=e.width<0?-1:1,i=e.height<0?-1:1;n<0&&(e.x+=e.width,e.width=-e.width),i<0&&(e.y+=e.height,e.height=-e.height);var r=t.x+t.width,o=t.y+t.height,a=pw(e.x,t.x),s=dw(e.x+e.width,r),l=pw(e.y,t.y),u=dw(e.y+e.height,o),h=s<a,c=u<l;return e.x=h&&a>r?s:a,e.y=c&&l>o?u:l,e.width=h?0:s-a,e.height=c?0:u-l,n<0&&(e.x+=e.width,e.width=-e.width),i<0&&(e.y+=e.height,e.height=-e.height),h||c},polar:function(t,e){var n=e.r0<=e.r?1:-1;if(n<0){var i=e.r;e.r=e.r0,e.r0=i}var r=dw(e.r,t.r),o=pw(e.r0,t.r0);e.r=r,e.r0=o;var a=r-o<0;if(n<0){i=e.r;e.r=e.r0,e.r0=i}return a}},yw={cartesian2d:function(t,e,n,i,r,o,a,s,l){var u=new ss({shape:I({},i),z2:1});(u.__dataIndex=n,u.name="item",o)&&(u.shape[r?"height":"width"]=0);return u},polar:function(t,e,n,i,r,o,a,s,l){var u=i.startAngle<i.endAngle,h=new(!r&&l?lw:Xl)({shape:T({clockwise:u},i),z2:1});if(h.name="item",o){var c=r?"r":"endAngle",p={};h.shape[c]=r?0:i.startAngle,p[c]=i[c],(s?Nu:Eu)(h,{shape:p},o)}return h}};function vw(t,e,n,i,r,o,a,s){var l,u;o?(u={x:i.x,width:i.width},l={y:i.y,height:i.height}):(u={y:i.y,height:i.height},l={x:i.x,width:i.width}),s||(a?Nu:Eu)(n,{shape:l},e,r,null),(a?Nu:Eu)(n,{shape:u},e?t.baseAxis.model:null,r)}var mw={cartesian2d:function(t,e,n){var i=t.getItemLayout(e),r=n?function(t,e){var n=t.get(uw)||0,i=isNaN(e.width)?Number.MAX_VALUE:Math.abs(e.width),r=isNaN(e.height)?Number.MAX_VALUE:Math.abs(e.height);return Math.min(n,i,r)}(n,i):0,o=i.width>0?1:-1,a=i.height>0?1:-1;return{x:i.x+o*r/2,y:i.y+a*r/2,width:i.width-o*r,height:i.height-a*r}},polar:function(t,e,n){var i=t.getItemLayout(e);return{cx:i.cx,cy:i.cy,r0:i.r0,r:i.r,startAngle:i.startAngle,endAngle:i.endAngle}}};function _w(t,e,n,i,r,o,a,s){var l=e.getItemVisual(n,"style");s||t.setShape("r",i.get(hw)||0),t.useStyle(l);var u=i.getShallow("cursor");if(u&&t.attr("cursor",u),!s){var h=a?r.height>0?"bottom":"top":r.width>0?"left":"right",c=ih(i);nh(t,c,{labelFetcher:o,labelDataIndex:n,defaultText:bb(o.getData(),n),inheritColor:l.fill,defaultOpacity:l.opacity,defaultOutsidePosition:h}),ph(t.getTextContent(),c,o.getRawValue(n),(function(t){return wb(e,t)}))}var p=i.getModel(["emphasis"]);tl(t,p.get("focus"),p.get("blurScope")),rl(t,i),function(t){return null!=t.startAngle&&null!=t.endAngle&&t.startAngle===t.endAngle}(r)&&(t.style.fill="none",t.style.stroke="none",P(t.states,(function(t){t.style&&(t.style.fill=t.style.stroke="none")})))}var xw=function(){},bw=function(t){function e(e){var n=t.call(this,e)||this;return n.type="largeBar",n}return n(e,t),e.prototype.getDefaultShape=function(){return new xw},e.prototype.buildPath=function(t,e){for(var n=e.points,i=this.__startPoint,r=this.__baseDimIdx,o=0;o<n.length;o+=2)i[r]=n[o+r],t.moveTo(i[0],i[1]),t.lineTo(n[o],n[o+1])},e}(qa);function ww(t,e,n){var i=t.getData(),r=[],o=i.getLayout("valueAxisHorizontal")?1:0;r[1-o]=i.getLayout("valueAxisStart");var a=i.getLayout("largeDataIndices"),s=i.getLayout("barWidth"),l=t.getModel("backgroundStyle");if(t.get("showBackground",!0)){var u=i.getLayout("largeBackgroundPoints"),h=[];h[1-o]=i.getLayout("backgroundStart");var c=new bw({shape:{points:u},incremental:!!n,silent:!0,z2:0});c.__startPoint=h,c.__baseDimIdx=o,c.__largeDataIndices=a,c.__barWidth=s,function(t,e,n){var i=e.get("borderColor")||e.get("color"),r=e.getItemStyle();t.useStyle(r),t.style.fill=null,t.style.stroke=i,t.style.lineWidth=n.getLayout("barWidth")}(c,l,i),e.add(c)}var p=new bw({shape:{points:i.getLayout("largePoints")},incremental:!!n});p.__startPoint=r,p.__baseDimIdx=o,p.__largeDataIndices=a,p.__barWidth=s,e.add(p),function(t,e,n){var i=n.getVisual("style");t.useStyle(I({},i)),t.style.fill=null,t.style.stroke=i.fill,t.style.lineWidth=n.getLayout("barWidth")}(p,0,i),ms(p).seriesIndex=t.seriesIndex,t.get("silent")||(p.on("mousedown",Sw),p.on("mousemove",Sw))}var Sw=Cf((function(t){var e=function(t,e,n){var i=t.__baseDimIdx,r=1-i,o=t.shape.points,a=t.__largeDataIndices,s=Math.abs(t.__barWidth/2),l=t.__startPoint[r];cw[0]=e,cw[1]=n;for(var u=cw[i],h=cw[1-i],c=u-s,p=u+s,d=0,f=o.length/2;d<f;d++){var g=2*d,y=o[g+i],v=o[g+r];if(y>=c&&y<=p&&(l<=v?h>=l&&h<=v:h>=v&&h<=l))return a[d]}return-1}(this,t.offsetX,t.offsetY);ms(this).dataIndex=e>=0?e:null}),30,!1);function Mw(t,e,n){if(Xb(n,"cartesian2d")){var i=e,r=n.getArea();return{x:t?i.x:r.x,y:t?r.y:i.y,width:t?i.width:r.width,height:t?r.height:i.height}}var o=e;return{cx:(r=n.getArea()).cx,cy:r.cy,r0:t?r.r0:o.r0,r:t?r.r:o.r,startAngle:t?o.startAngle:0,endAngle:t?o.endAngle:2*Math.PI}}var Iw=2*Math.PI,Tw=Math.PI/180;function Cw(t,e,n){e.eachSeriesByType(t,(function(t){var e=t.getData(),i=e.mapDimension("value"),r=function(t,e){return Lc(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}(t,n),o=t.get("center"),a=t.get("radius");F(a)||(a=[0,a]),F(o)||(o=[o,o]);var s=qi(r.width,n.getWidth()),l=qi(r.height,n.getHeight()),u=Math.min(s,l),h=qi(o[0],s)+r.x,c=qi(o[1],l)+r.y,p=qi(a[0],u/2),d=qi(a[1],u/2),f=-t.get("startAngle")*Tw,g=t.get("minAngle")*Tw,y=0;e.each(i,(function(t){!isNaN(t)&&y++}));var v=e.getSum(i),m=Math.PI/(v||y)*2,_=t.get("clockwise"),x=t.get("roseType"),b=t.get("stillShowZeroSum"),w=e.getDataExtent(i);w[0]=0;var S=Iw,M=0,I=f,T=_?1:-1;if(e.setLayout({viewRect:r,r:d}),e.each(i,(function(t,n){var i;if(isNaN(t))e.setItemLayout(n,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:_,cx:h,cy:c,r0:p,r:x?NaN:d});else{(i="area"!==x?0===v&&b?m:t*m:Iw/y)<g?(i=g,S-=g):M+=t;var r=I+T*i;e.setItemLayout(n,{angle:i,startAngle:I,endAngle:r,clockwise:_,cx:h,cy:c,r0:p,r:x?ji(t,w,[p,d]):d}),I=r}})),S<Iw&&y)if(S<=.001){var C=Iw/y;e.each(i,(function(t,n){if(!isNaN(t)){var i=e.getItemLayout(n);i.angle=C,i.startAngle=f+T*n*C,i.endAngle=f+T*(n+1)*C}}))}else m=S/M,I=f,e.each(i,(function(t,n){if(!isNaN(t)){var i=e.getItemLayout(n),r=i.angle===g?g:t*m;i.startAngle=I,i.endAngle=I+T*r,I+=T*r}}))}))}function Aw(t){return{seriesType:t,reset:function(t,e){var n=e.findComponents({mainType:"legend"});if(n&&n.length){var i=t.getData();i.filterSelf((function(t){for(var e=i.getName(t),r=0;r<n.length;r++)if(!n[r].isSelected(e))return!1;return!0}))}}}}var Dw=Math.PI/180;function Lw(t,e,n,i,r,o,a,s,l,u){if(!(t.length<2)){for(var h=t.length,c=0;c<h;c++)if("outer"===t[c].position&&"labelLine"===t[c].labelAlignTo){var p=t[c].label.x-u;t[c].linePoints[1][0]+=p,t[c].label.x=u}Hg(t,l,l+a)&&function(t){for(var o={list:[],maxY:0},a={list:[],maxY:0},s=0;s<t.length;s++)if("none"===t[s].labelAlignTo){var l=t[s],u=l.label.y>n?a:o,h=Math.abs(l.label.y-n);if(h>u.maxY){var c=l.label.x-e-l.len2*r,p=i+l.len,f=c<p?Math.sqrt(h*h/(1-c*c/p/p)):p;u.rB=f,u.maxY=h}u.list.push(l)}d(o),d(a)}(t)}function d(t){for(var o=t.rB,a=o*o,s=0;s<t.list.length;s++){var l=t.list[s],u=Math.abs(l.label.y-n),h=i+l.len,c=h*h,p=Math.sqrt((1-Math.abs(u*u/a))*c);l.label.x=e+(p+l.len2)*r}}}function kw(t){return"center"===t.position}function Pw(t){var e,n,i=t.getData(),r=[],o=!1,a=(t.get("minShowLabelAngle")||0)*Dw,s=i.getLayout("viewRect"),l=i.getLayout("r"),u=s.width,h=s.x,c=s.y,p=s.height;function d(t){t.ignore=!0}i.each((function(t){var s=i.getItemGraphicEl(t),c=s.shape,p=s.getTextContent(),f=s.getTextGuideLine(),g=i.getItemModel(t),y=g.getModel("label"),v=y.get("position")||g.get(["emphasis","label","position"]),m=y.get("distanceToLabelLine"),_=y.get("alignTo"),x=qi(y.get("edgeDistance"),u),b=y.get("bleedMargin"),w=g.getModel("labelLine"),S=w.get("length");S=qi(S,u);var M=w.get("length2");if(M=qi(M,u),Math.abs(c.endAngle-c.startAngle)<a)return P(p.states,d),void(p.ignore=!0);if(function(t){if(!t.ignore)return!0;for(var e in t.states)if(!1===t.states[e].ignore)return!0;return!1}(p)){var I,T,C,A,D=(c.startAngle+c.endAngle)/2,L=Math.cos(D),k=Math.sin(D);e=c.cx,n=c.cy;var O,R="inside"===v||"inner"===v;if("center"===v)I=c.cx,T=c.cy,A="center";else{var N=(R?(c.r+c.r0)/2*L:c.r*L)+e,E=(R?(c.r+c.r0)/2*k:c.r*k)+n;if(I=N+3*L,T=E+3*k,!R){var z=N+L*(S+l-c.r),B=E+k*(S+l-c.r),V=z+(L<0?-1:1)*M;I="edge"===_?L<0?h+x:h+u-x:V+(L<0?-m:m),T=B,C=[[N,E],[z,B],[V,B]]}A=R?"center":"edge"===_?L>0?"right":"left":L>0?"left":"right"}var F=y.get("rotate");if(O="number"==typeof F?F*(Math.PI/180):F?L<0?-D+Math.PI:-D:0,o=!!O,p.x=I,p.y=T,p.rotation=O,p.setStyle({verticalAlign:"middle"}),R){p.setStyle({align:A});var G=p.states.select;G&&(G.x+=p.x,G.y+=p.y)}else{var H=p.getBoundingRect().clone();H.applyTransform(p.getComputedTransform());var W=(p.style.margin||0)+2.1;H.y-=W/2,H.height+=W,r.push({label:p,labelLine:f,position:v,len:S,len2:M,minTurnAngle:w.get("minTurnAngle"),maxSurfaceAngle:w.get("maxSurfaceAngle"),surfaceNormal:new Cn(L,k),linePoints:C,textAlign:A,labelDistance:m,labelAlignTo:_,edgeDistance:x,bleedMargin:b,rect:H})}s.setTextConfig({inside:R})}})),!o&&t.get("avoidLabelOverlap")&&function(t,e,n,i,r,o,a,s){for(var l=[],u=[],h=Number.MAX_VALUE,c=-Number.MAX_VALUE,p=0;p<t.length;p++){var d=t[p].label;kw(t[p])||(d.x<e?(h=Math.min(h,d.x),l.push(t[p])):(c=Math.max(c,d.x),u.push(t[p])))}for(Lw(u,e,n,i,1,0,o,0,s,c),Lw(l,e,n,i,-1,0,o,0,s,h),p=0;p<t.length;p++){var f=t[p];if(d=f.label,!kw(f)){var g=f.linePoints;if(g){var y="edge"===f.labelAlignTo,v=f.rect.width,m=void 0;(m=y?d.x<e?g[2][0]-f.labelDistance-a-f.edgeDistance:a+r-f.edgeDistance-g[2][0]-f.labelDistance:d.x<e?d.x-a-f.bleedMargin:a+r-d.x-f.bleedMargin)<f.rect.width&&(f.label.style.width=m,"edge"===f.labelAlignTo&&(v=m));var _=g[1][0]-g[2][0];y?d.x<e?g[2][0]=a+f.edgeDistance+v+f.labelDistance:g[2][0]=a+r-f.edgeDistance-v-f.labelDistance:(d.x<e?g[2][0]=d.x+f.labelDistance:g[2][0]=d.x-f.labelDistance,g[1][0]=g[2][0]+_),g[1][1]=g[2][1]=d.y}}}}(r,e,n,l,u,p,h,c);for(var f=0;f<r.length;f++){var g=r[f],y=g.label,v=g.labelLine,m=isNaN(y.x)||isNaN(y.y);if(y){y.setStyle({align:g.textAlign}),m&&(P(y.states,d),y.ignore=!0);var _=y.states.select;_&&(_.x+=y.x,_.y+=y.y)}if(v){var x=g.linePoints;m||!x?(P(v.states,d),v.ignore=!0):(Ng(x,g.minTurnAngle),Eg(x,g.surfaceNormal,g.maxSurfaceAngle),v.setShape({points:x}),y.__hostTarget.textGuideLineConfig={anchor:new Cn(x[0][0],x[0][1])})}}}function Ow(t,e){var n=t.get("borderRadius");return null==n?null:(F(n)||(n=[n,n]),{innerCornerRadius:Un(n[0],e.r0),cornerRadius:Un(n[1],e.r)})}var Rw=function(t){function e(e,n,i){var r=t.call(this)||this;r.z2=2;var o=new Ql,a=new hs;return r.setTextGuideLine(o),r.setTextContent(a),r.updateData(e,n,i,!0),r}return n(e,t),e.prototype.updateData=function(t,e,n,r){var o=this,a=t.hostModel,s=t.getItemModel(e),l=s.getModel("emphasis"),u=t.getItemLayout(e),h=I(Ow(s.getModel("itemStyle"),u)||{},u);r?(o.setShape(h),"scale"===a.getShallow("animationType")?(o.shape.r=u.r0,Eu(o,{shape:{r:u.r}},a,e)):null!=n?(o.setShape({startAngle:n,endAngle:n}),Eu(o,{shape:{startAngle:u.startAngle,endAngle:u.endAngle}},a,e)):(o.shape.endAngle=u.startAngle,Nu(o,{shape:{endAngle:u.endAngle}},a,e))):Nu(o,{shape:h},a,e);o.useStyle(t.getItemVisual(e,"style")),rl(o,s);var c=(u.startAngle+u.endAngle)/2,p=a.get("selectedOffset"),d=Math.cos(c)*p,f=Math.sin(c)*p,g=s.getShallow("cursor");g&&o.attr("cursor",g),this._updateLabel(a,t,e),o.ensureState("emphasis").shape=i({r:u.r+(l.get("scale")&&l.get("scaleSize")||0)},Ow(l.getModel("itemStyle"),u)),I(o.ensureState("select"),{x:d,y:f,shape:Ow(s.getModel(["select","itemStyle"]),u)}),I(o.ensureState("blur"),{shape:Ow(s.getModel(["blur","itemStyle"]),u)});var y=o.getTextGuideLine(),v=o.getTextContent();I(y.ensureState("select"),{x:d,y:f}),I(v.ensureState("select"),{x:d,y:f}),tl(this,l.get("focus"),l.get("blurScope"))},e.prototype._updateLabel=function(t,e,n){var i=this,r=e.getItemModel(n),o=r.getModel("labelLine"),a=e.getItemVisual(n,"style"),s=a&&a.fill,l=a&&a.opacity;nh(i,ih(r),{labelFetcher:e.hostModel,labelDataIndex:n,inheritColor:s,defaultOpacity:l,defaultText:t.getFormattedLabel(n,"normal")||e.getName(n)});var u=i.getTextContent();i.setTextConfig({position:null,rotation:null}),u.attr({z2:10}),Vg(this,Fg(r),{stroke:s,opacity:et(o.get(["lineStyle","opacity"]),l,1)})},e}(Xl),Nw=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.ignoreLabelLineUpdate=!0,e}return n(e,t),e.prototype.init=function(){var t=new Vi;this._sectorGroup=t},e.prototype.render=function(t,e,n,i){var r,o=t.getData(),a=this._data,s=this.group;if(!a&&o.count()>0){for(var l=o.getItemLayout(0),u=1;isNaN(l&&l.startAngle)&&u<o.count();++u)l=o.getItemLayout(u);l&&(r=l.startAngle)}o.diff(a).add((function(t){var e=new Rw(o,t,r);o.setItemGraphicEl(t,e),s.add(e)})).update((function(t,e){var n=a.getItemGraphicEl(e);n.updateData(o,t,r),n.off("click"),s.add(n),o.setItemGraphicEl(t,n)})).remove((function(e){Vu(a.getItemGraphicEl(e),t,e)})).execute(),Pw(t),"expansion"!==t.get("animationTypeUpdate")&&(this._data=o)},e.prototype.dispose=function(){},e.prototype.containPoint=function(t,e){var n=e.getData().getItemLayout(0);if(n){var i=t[0]-n.cx,r=t[1]-n.cy,o=Math.sqrt(i*i+r*r);return o<=n.r&&o>=n.r0}},e.type="pie",e}(mf);function Ew(t,e,n){e=F(e)&&{coordDimensions:e}||I({},e);var i=t.getSource(),r=zm(i,e),o=new Rm(r,t);return o.initData(i,n),o}var zw=function(){function t(t,e){this._getDataWithEncodedVisual=t,this._getRawData=e}return t.prototype.getAllNames=function(){var t=this._getRawData();return t.mapArray(t.getName)},t.prototype.containName=function(t){return this._getRawData().indexOfName(t)>=0},t.prototype.indexOfName=function(t){return this._getDataWithEncodedVisual().indexOfName(t)},t.prototype.getItemVisual=function(t,e){return this._getDataWithEncodedVisual().getItemVisual(t,e)},t}(),Bw=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.useColorPaletteOnData=!0,e}return n(e,t),e.prototype.init=function(e){t.prototype.init.apply(this,arguments),this.legendVisualProvider=new zw(B(this.getData,this),B(this.getRawData,this)),this._defaultLabelLine(e)},e.prototype.mergeOption=function(){t.prototype.mergeOption.apply(this,arguments)},e.prototype.getInitialData=function(){return Ew(this,{coordDimensions:["value"],encodeDefaulter:V(ep,this)})},e.prototype.getDataParams=function(e){var n=this.getData(),i=t.prototype.getDataParams.call(this,e),r=[];return n.each(n.mapDimension("value"),(function(t){r.push(t)})),i.percent=er(r,e,n.hostModel.get("percentPrecision")),i.$vars.push("percent"),i},e.prototype._defaultLabelLine=function(t){wr(t,"labelLine",["show"]);var e=t.labelLine,n=t.emphasis.labelLine;e.show=e.show&&t.label.show,n.show=n.show&&t.emphasis.label.show},e.type="series.pie",e.defaultOption={zlevel:0,z:2,legendHoverLink:!0,center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,minShowLabelAngle:0,selectedOffset:10,percentPrecision:2,stillShowZeroSum:!0,left:0,top:0,right:0,bottom:0,width:null,height:null,label:{rotate:0,show:!0,overflow:"truncate",position:"outer",alignTo:"none",edgeDistance:"25%",bleedMargin:10,distanceToLabelLine:5},labelLine:{show:!0,length:15,length2:15,smooth:!1,minTurnAngle:90,maxSurfaceAngle:90,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1},labelLayout:{hideOverlap:!0},emphasis:{scale:!0,scaleSize:5},avoidLabelOverlap:!0,animationType:"expansion",animationDuration:1e3,animationTypeUpdate:"transition",animationEasingUpdate:"cubicInOut",animationDurationUpdate:500,animationEasing:"cubicInOut"},e}(af);var Vw=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.hasSymbolVisual=!0,n}return n(e,t),e.prototype.getInitialData=function(t,e){return Ym(this.getSource(),this,{useEncodeDefaulter:!0})},e.prototype.getProgressive=function(){var t=this.option.progressive;return null==t?this.option.large?5e3:this.get("progressive"):t},e.prototype.getProgressiveThreshold=function(){var t=this.option.progressiveThreshold;return null==t?this.option.large?1e4:this.get("progressiveThreshold"):t},e.prototype.brushSelector=function(t,e,n){return n.point(e.getItemLayout(t))},e.type="series.scatter",e.dependencies=["grid","polar","geo","singleAxis","calendar"],e.defaultOption={coordinateSystem:"cartesian2d",zlevel:0,z:2,legendHoverLink:!0,symbolSize:10,large:!1,largeThreshold:2e3,itemStyle:{opacity:.8},emphasis:{scale:!0},clip:!0,select:{itemStyle:{borderColor:"#212121"}}},e}(af),Fw=function(){},Gw=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultShape=function(){return new Fw},e.prototype.buildPath=function(t,e){var n=e.points,i=e.size,r=this.symbolProxy,o=r.shape,a=t.getContext?t.getContext():t;if(a&&i[0]<4)this._ctx=a;else{this._ctx=null;for(var s=0;s<n.length;){var l=n[s++],u=n[s++];isNaN(l)||isNaN(u)||(this.softClipShape&&!this.softClipShape.contain(l,u)||(o.x=l-i[0]/2,o.y=u-i[1]/2,o.width=i[0],o.height=i[1],r.buildPath(t,o,!0)))}}},e.prototype.afterBrush=function(){var t=this.shape,e=t.points,n=t.size,i=this._ctx;if(i)for(var r=0;r<e.length;){var o=e[r++],a=e[r++];isNaN(o)||isNaN(a)||(this.softClipShape&&!this.softClipShape.contain(o,a)||i.fillRect(o-n[0]/2,a-n[1]/2,n[0],n[1]))}},e.prototype.findDataIndex=function(t,e){for(var n=this.shape,i=n.points,r=n.size,o=Math.max(r[0],4),a=Math.max(r[1],4),s=i.length/2-1;s>=0;s--){var l=2*s,u=i[l]-o/2,h=i[l+1]-a/2;if(t>=u&&e>=h&&t<=u+o&&e<=h+a)return s}return-1},e}(qa),Hw=function(){function t(){this.group=new Vi}return t.prototype.isPersistent=function(){return!this._incremental},t.prototype.updateData=function(t,e){this.group.removeAll();var n=new Gw({rectHover:!0,cursor:"default"});n.setShape({points:t.getLayout("points")}),this._setCommon(n,t,!1,e),this.group.add(n),this._incremental=null},t.prototype.updateLayout=function(t){if(!this._incremental){var e=t.getLayout("points");this.group.eachChild((function(t){if(null!=t.startIndex){var n=2*(t.endIndex-t.startIndex),i=4*t.startIndex*2;e=new Float32Array(e.buffer,i,n)}t.setShape("points",e)}))}},t.prototype.incrementalPrepareUpdate=function(t){this.group.removeAll(),this._clearIncremental(),t.count()>2e6?(this._incremental||(this._incremental=new _u({silent:!0})),this.group.add(this._incremental)):this._incremental=null},t.prototype.incrementalUpdate=function(t,e,n){var i;this._incremental?(i=new Gw,this._incremental.addDisplayable(i,!0)):((i=new Gw({rectHover:!0,cursor:"default",startIndex:t.start,endIndex:t.end})).incremental=!0,this.group.add(i)),i.setShape({points:e.getLayout("points")}),this._setCommon(i,e,!!this._incremental,n)},t.prototype._setCommon=function(t,e,n,i){var r=e.hostModel;i=i||{};var o=e.getVisual("symbolSize");t.setShape("size",o instanceof Array?o:[o,o]),t.softClipShape=i.clipShape||null,t.symbolProxy=cy(e.getVisual("symbol"),0,0,0,0),t.setColor=t.symbolProxy.setColor;var a=t.shape.size[0]<4;t.useStyle(r.getModel("itemStyle").getItemStyle(a?["color","shadowBlur","shadowColor"]:["color"]));var s=e.getVisual("style"),l=s&&s.fill;if(l&&t.setColor(l),!n){var u=ms(t);u.seriesIndex=r.seriesIndex,t.on("mousemove",(function(e){u.dataIndex=null;var n=t.findDataIndex(e.offsetX,e.offsetY);n>=0&&(u.dataIndex=n+(t.startIndex||0))}))}},t.prototype.remove=function(){this._clearIncremental(),this._incremental=null,this.group.removeAll()},t.prototype._clearIncremental=function(){var t=this._incremental;t&&t.clearDisplaybles()},t}(),Ww=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){var i=t.getData();this._updateSymbolDraw(i,t).updateData(i,{clipShape:this._getClipShape(t)}),this._finished=!0},e.prototype.incrementalPrepareRender=function(t,e,n){var i=t.getData();this._updateSymbolDraw(i,t).incrementalPrepareUpdate(i),this._finished=!1},e.prototype.incrementalRender=function(t,e,n){this._symbolDraw.incrementalUpdate(t,e.getData(),{clipShape:this._getClipShape(e)}),this._finished=t.end===e.getData().count()},e.prototype.updateTransform=function(t,e,n){var i=t.getData();if(this.group.dirty(),!this._finished||i.count()>1e4||!this._symbolDraw.isPersistent())return{update:!0};var r=ew("").reset(t,e,n);r.progress&&r.progress({start:0,end:i.count(),count:i.count()},i),this._symbolDraw.updateLayout(i)},e.prototype._getClipShape=function(t){var e=t.coordinateSystem,n=e&&e.getArea&&e.getArea();return t.get("clip",!0)?n:null},e.prototype._updateSymbolDraw=function(t,e){var n=this._symbolDraw,i=e.pipelineContext.large;return n&&i===this._isLargeDraw||(n&&n.remove(),n=this._symbolDraw=i?new Hw:new Ab,this._isLargeDraw=i,this.group.removeAll()),this.group.add(n.group),n},e.prototype.remove=function(t,e){this._symbolDraw&&this._symbolDraw.remove(!0),this._symbolDraw=null},e.prototype.dispose=function(){},e.type="scatter",e}(mf),Yw=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.type="grid",e.dependencies=["xAxis","yAxis"],e.layoutMode="box",e.defaultOption={show:!1,zlevel:0,z:0,left:"10%",top:60,right:"10%",bottom:70,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"},e}(zc),Xw=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.getCoordSysModel=function(){return this.getReferringComponents("grid",Nr).models[0]},e.type="cartesian2dAxis",e}(zc);L(Xw,K_);var Uw={show:!0,zlevel:0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#6E7079",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,lineStyle:{color:["#E0E6F1"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}}},Zw=S({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},Uw),jw=S({boundaryGap:[0,0],axisLine:{show:"auto"},axisTick:{show:"auto"},splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:"#F4F7FD",width:1}}},Uw),qw={category:Zw,value:jw,time:S({scale:!0,splitNumber:6,axisLabel:{showMinLabel:!1,showMaxLabel:!1,rich:{primary:{fontWeight:"bold"}}},splitLine:{show:!1}},jw),log:T({scale:!0,logBase:10},jw)},Kw={value:1,category:1,time:1,log:1};function $w(t,e,i,r){P(Kw,(function(o,a){var s=S(S({},qw[a],!0),r,!0),l=function(t){function i(){for(var n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];var r=t.apply(this,n)||this;return r.type=e+"Axis."+a,r}return n(i,t),i.prototype.mergeDefaultAndTheme=function(t,e){var n=Pc(this),i=n?Rc(t):{};S(t,e.getTheme().get(a+"Axis")),S(t,this.getDefaultOption()),t.type=Jw(t),n&&Oc(t,i,n)},i.prototype.optionUpdated=function(){"category"===this.option.type&&(this.__ordinalMeta=Um.createByAxisModel(this))},i.prototype.getCategories=function(t){var e=this.option;if("category"===e.type)return t?e.data:this.__ordinalMeta.categories},i.prototype.getOrdinalMeta=function(){return this.__ordinalMeta},i.type=e+"Axis."+a,i.defaultOption=s,i}(i);t.registerComponentModel(l)})),t.registerSubTypeDefaulter(e+"Axis",Jw)}function Jw(t){return t.type||(t.data?"category":"value")}var Qw=function(){function t(t){this.type="cartesian",this._dimList=[],this._axes={},this.name=t||""}return t.prototype.getAxis=function(t){return this._axes[t]},t.prototype.getAxes=function(){return O(this._dimList,(function(t){return this._axes[t]}),this)},t.prototype.getAxesByScale=function(t){return t=t.toLowerCase(),N(this.getAxes(),(function(e){return e.scale.type===t}))},t.prototype.addAxis=function(t){var e=t.dim;this._axes[e]=t,this._dimList.push(e)},t}(),tS=["x","y"];function eS(t){return"interval"===t.type||"time"===t.type}var nS=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="cartesian2d",e.dimensions=tS,e}return n(e,t),e.prototype.calcAffineTransform=function(){this._transform=this._invTransform=null;var t=this.getAxis("x").scale,e=this.getAxis("y").scale;if(eS(t)&&eS(e)){var n=t.getExtent(),i=e.getExtent(),r=this.dataToPoint([n[0],i[0]]),o=this.dataToPoint([n[1],i[1]]),a=n[1]-n[0],s=i[1]-i[0];if(a&&s){var l=(o[0]-r[0])/a,u=(o[1]-r[1])/s,h=r[0]-n[0]*l,c=r[1]-i[0]*u,p=this._transform=[l,0,0,u,h,c];this._invTransform=Se([],p)}}},e.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAxis("x")},e.prototype.containPoint=function(t){var e=this.getAxis("x"),n=this.getAxis("y");return e.contain(e.toLocalCoord(t[0]))&&n.contain(n.toLocalCoord(t[1]))},e.prototype.containData=function(t){return this.getAxis("x").containData(t[0])&&this.getAxis("y").containData(t[1])},e.prototype.dataToPoint=function(t,e,n){n=n||[];var i=t[0],r=t[1];if(this._transform&&null!=i&&isFinite(i)&&null!=r&&isFinite(r))return Et(n,t,this._transform);var o=this.getAxis("x"),a=this.getAxis("y");return n[0]=o.toGlobalCoord(o.dataToCoord(i)),n[1]=a.toGlobalCoord(a.dataToCoord(r)),n},e.prototype.clampData=function(t,e){var n=this.getAxis("x").scale,i=this.getAxis("y").scale,r=n.getExtent(),o=i.getExtent(),a=n.parse(t[0]),s=i.parse(t[1]);return(e=e||[])[0]=Math.min(Math.max(Math.min(r[0],r[1]),a),Math.max(r[0],r[1])),e[1]=Math.min(Math.max(Math.min(o[0],o[1]),s),Math.max(o[0],o[1])),e},e.prototype.pointToData=function(t,e){if(e=e||[],this._invTransform)return Et(e,t,this._invTransform);var n=this.getAxis("x"),i=this.getAxis("y");return e[0]=n.coordToData(n.toLocalCoord(t[0])),e[1]=i.coordToData(i.toLocalCoord(t[1])),e},e.prototype.getOtherAxis=function(t){return this.getAxis("x"===t.dim?"y":"x")},e.prototype.getArea=function(){var t=this.getAxis("x").getGlobalExtent(),e=this.getAxis("y").getGlobalExtent(),n=Math.min(t[0],t[1]),i=Math.min(e[0],e[1]),r=Math.max(t[0],t[1])-n,o=Math.max(e[0],e[1])-i;return new En(n,i,r,o)},e}(Qw),iS=function(t){function e(e,n,i,r,o){var a=t.call(this,e,n,i)||this;return a.index=0,a.type=r||"value",a.position=o||"bottom",a}return n(e,t),e.prototype.isHorizontal=function(){var t=this.position;return"top"===t||"bottom"===t},e.prototype.getGlobalExtent=function(t){var e=this.getExtent();return e[0]=this.toGlobalCoord(e[0]),e[1]=this.toGlobalCoord(e[1]),t&&e[0]>e[1]&&e.reverse(),e},e.prototype.pointToData=function(t,e){return this.coordToData(this.toLocalCoord(t["x"===this.dim?0:1]),e)},e.prototype.setCategorySortInfo=function(t){if("category"!==this.type)return!1;this.model.option.categorySortInfo=t,this.scale.setSortInfo(t)},e}(_x);function rS(t,e,n){n=n||{};var i=t.coordinateSystem,r=e.axis,o={},a=r.getAxesOnZeroOf()[0],s=r.position,l=a?"onZero":s,u=r.dim,h=i.getRect(),c=[h.x,h.x+h.width,h.y,h.y+h.height],p={left:0,right:1,top:0,bottom:1,onZero:2},d=e.get("offset")||0,f="x"===u?[c[2]-d,c[3]+d]:[c[0]-d,c[1]+d];if(a){var g=a.toGlobalCoord(a.dataToCoord(0));f[p.onZero]=Math.max(Math.min(g,f[1]),f[0])}o.position=["y"===u?f[p[l]]:c[0],"x"===u?f[p[l]]:c[3]],o.rotation=Math.PI/2*("x"===u?0:1);o.labelDirection=o.tickDirection=o.nameDirection={top:-1,bottom:1,left:-1,right:1}[s],o.labelOffset=a?f[p[s]]-f[p.onZero]:0,e.get(["axisTick","inside"])&&(o.tickDirection=-o.tickDirection),Q(n.labelInside,e.get(["axisLabel","inside"]))&&(o.labelDirection=-o.labelDirection);var y=e.get(["axisLabel","rotate"]);return o.labelRotate="top"===l?-y:y,o.z2=1,o}function oS(t){return"cartesian2d"===t.get("coordinateSystem")}function aS(t){var e={xAxisModel:null,yAxisModel:null};return P(e,(function(n,i){var r=i.replace(/Model$/,""),o=t.getReferringComponents(r,Nr).models[0];e[i]=o})),e}var sS=function(){function t(t,e,n){this.type="grid",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=tS,this._initCartesian(t,e,n),this.model=t}return t.prototype.getRect=function(){return this._rect},t.prototype.update=function(t,e){var n=this._axesMap;this._updateScale(t,this.model),P(n.x,(function(t){H_(t.scale,t.model)})),P(n.y,(function(t){H_(t.scale,t.model)}));var i={};P(n.x,(function(t){uS(n,"y",t,i)})),P(n.y,(function(t){uS(n,"x",t,i)})),this.resize(this.model,e)},t.prototype.resize=function(t,e,n){var i=t.getBoxLayoutParams(),r=!n&&t.get("containLabel"),o=Lc(i,{width:e.getWidth(),height:e.getHeight()});this._rect=o;var a=this._axesList;function s(){P(a,(function(t){var e=t.isHorizontal(),n=e?[0,o.width]:[0,o.height],i=t.inverse?1:0;t.setExtent(n[i],n[1-i]),function(t,e){var n=t.getExtent(),i=n[0]+n[1];t.toGlobalCoord="x"===t.dim?function(t){return t+e}:function(t){return i-t+e},t.toLocalCoord="x"===t.dim?function(t){return t-e}:function(t){return i-t+e}}(t,e?o.x:o.y)}))}s(),r&&(P(a,(function(t){if(!t.model.get(["axisLabel","inside"])){var e=function(t){var e=t.model,n=t.scale;if(e.get(["axisLabel","show"])&&!n.isBlank()){var i,r,o=n.getExtent();r=n instanceof e_?n.count():(i=n.getTicks()).length;var a,s=t.getLabelModel(),l=Y_(t),u=1;r>40&&(u=Math.ceil(r/40));for(var h=0;h<r;h+=u){var c=l(i?i[h]:{value:o[0]+h},h),p=U_(s.getTextRect(c),s.get("rotate")||0);a?a.union(p):a=p}return a}}(t);if(e){var n=t.isHorizontal()?"height":"width",i=t.model.get(["axisLabel","margin"]);o[n]-=e[n]+i,"top"===t.position?o.y+=e.height+i:"left"===t.position&&(o.x+=e.width+i)}}})),s()),P(this._coordsList,(function(t){t.calcAffineTransform()}))},t.prototype.getAxis=function(t,e){var n=this._axesMap[t];if(null!=n)return n[e||0]},t.prototype.getAxes=function(){return this._axesList.slice()},t.prototype.getCartesian=function(t,e){if(null!=t&&null!=e){var n="x"+t+"y"+e;return this._coordsMap[n]}X(t)&&(e=t.yAxisIndex,t=t.xAxisIndex);for(var i=0,r=this._coordsList;i<r.length;i++)if(r[i].getAxis("x").index===t||r[i].getAxis("y").index===e)return r[i]},t.prototype.getCartesians=function(){return this._coordsList.slice()},t.prototype.convertToPixel=function(t,e,n){var i=this._findConvertTarget(e);return i.cartesian?i.cartesian.dataToPoint(n):i.axis?i.axis.toGlobalCoord(i.axis.dataToCoord(n)):null},t.prototype.convertFromPixel=function(t,e,n){var i=this._findConvertTarget(e);return i.cartesian?i.cartesian.pointToData(n):i.axis?i.axis.coordToData(i.axis.toLocalCoord(n)):null},t.prototype._findConvertTarget=function(t){var e,n,i=t.seriesModel,r=t.xAxisModel||i&&i.getReferringComponents("xAxis",Nr).models[0],o=t.yAxisModel||i&&i.getReferringComponents("yAxis",Nr).models[0],a=t.gridModel,s=this._coordsList;if(i)A(s,e=i.coordinateSystem)<0&&(e=null);else if(r&&o)e=this.getCartesian(r.componentIndex,o.componentIndex);else if(r)n=this.getAxis("x",r.componentIndex);else if(o)n=this.getAxis("y",o.componentIndex);else if(a){a.coordinateSystem===this&&(e=this._coordsList[0])}return{cartesian:e,axis:n}},t.prototype.containPoint=function(t){var e=this._coordsList[0];if(e)return e.containPoint(t)},t.prototype._initCartesian=function(t,e,n){var i=this,r=this,o={left:!1,right:!1,top:!1,bottom:!1},a={x:{},y:{}},s={x:0,y:0};if(e.eachComponent("xAxis",l("x"),this),e.eachComponent("yAxis",l("y"),this),!s.x||!s.y)return this._axesMap={},void(this._axesList=[]);function l(e){return function(n,i){if(lS(n,t)){var l=n.get("position");"x"===e?"top"!==l&&"bottom"!==l&&(l=o.bottom?"top":"bottom"):"left"!==l&&"right"!==l&&(l=o.left?"right":"left"),o[l]=!0;var u=new iS(e,W_(n),[0,0],n.get("type"),l),h="category"===u.type;u.onBand=h&&n.get("boundaryGap"),u.inverse=n.get("inverse"),n.axis=u,u.model=n,u.grid=r,u.index=i,r._axesList.push(u),a[e][i]=u,s[e]++}}}this._axesMap=a,P(a.x,(function(e,n){P(a.y,(function(r,o){var a="x"+n+"y"+o,s=new nS(a);s.master=i,s.model=t,i._coordsMap[a]=s,i._coordsList.push(s),s.addAxis(e),s.addAxis(r)}))}))},t.prototype._updateScale=function(t,e){function n(t,e){P(q_(t,e.dim),(function(n){e.scale.unionExtentFromData(t,n)}))}P(this._axesList,(function(t){if(t.scale.setExtent(1/0,-1/0),"category"===t.type){var e=t.model.get("categorySortInfo");t.scale.setSortInfo(e)}})),t.eachSeries((function(t){if(oS(t)){var i=aS(t),r=i.xAxisModel,o=i.yAxisModel;if(!lS(r,e)||!lS(o,e))return;var a=this.getCartesian(r.componentIndex,o.componentIndex),s=t.getData(),l=a.getAxis("x"),u=a.getAxis("y");"list"===s.type&&(n(s,l),n(s,u))}}),this)},t.prototype.getTooltipAxes=function(t){var e=[],n=[];return P(this.getCartesians(),(function(i){var r=null!=t&&"auto"!==t?i.getAxis(t):i.getBaseAxis(),o=i.getOtherAxis(r);A(e,r)<0&&e.push(r),A(n,o)<0&&n.push(o)})),{baseAxes:e,otherAxes:n}},t.create=function(e,n){var i=[];return e.eachComponent("grid",(function(r,o){var a=new t(r,e,n);a.name="grid_"+o,a.resize(r,n,!0),r.coordinateSystem=a,i.push(a)})),e.eachSeries((function(t){if(oS(t)){var e=aS(t),n=e.xAxisModel,i=e.yAxisModel,r=n.getCoordSysModel();0;var o=r.coordinateSystem;t.coordinateSystem=o.getCartesian(n.componentIndex,i.componentIndex)}})),i},t.dimensions=tS,t}();function lS(t,e){return t.getCoordSysModel()===e}function uS(t,e,n,i){n.getAxesOnZeroOf=function(){return r?[r]:[]};var r,o=t[e],a=n.model,s=a.get(["axisLine","onZero"]),l=a.get(["axisLine","onZeroAxisIndex"]);if(s){if(null!=l)hS(o[l])&&(r=o[l]);else for(var u in o)if(o.hasOwnProperty(u)&&hS(o[u])&&!i[h(o[u])]){r=o[u];break}r&&(i[h(r)]=!0)}function h(t){return t.dim+"_"+t.index}}function hS(t){return t&&"category"!==t.type&&"time"!==t.type&&function(t){var e=t.scale.getExtent(),n=e[0],i=e[1];return!(n>0&&i>0||n<0&&i<0)}(t)}var cS=Math.PI,pS=function(){function t(t,e){this.group=new Vi,this.opt=e,this.axisModel=t,T(e,{labelOffset:0,nameDirection:1,tickDirection:1,labelDirection:1,silent:!0,handleAutoShown:function(){return!0}});var n=new Vi({x:e.position[0],y:e.position[1],rotation:e.rotation});n.updateTransform(),this._transformGroup=n}return t.prototype.hasBuilder=function(t){return!!dS[t]},t.prototype.add=function(t){dS[t](this.opt,this.axisModel,this.group,this._transformGroup)},t.prototype.getGroup=function(){return this.group},t.innerTextLayout=function(t,e,n){var i,r,o=ir(e-t);return rr(o)?(r=n>0?"top":"bottom",i="center"):rr(o-cS)?(r=n>0?"bottom":"top",i="center"):(r="middle",i=o>0&&o<cS?n>0?"right":"left":n>0?"left":"right"),{rotation:o,textAlign:i,textVerticalAlign:r}},t.makeAxisEventDataBase=function(t){var e={componentType:t.mainType,componentIndex:t.componentIndex};return e[t.mainType+"Index"]=t.componentIndex,e},t.isLabelSilent=function(t){var e=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||e&&e.show)},t}(),dS={axisLine:function(t,e,n,i){var r=e.get(["axisLine","show"]);if("auto"===r&&t.handleAutoShown&&(r=t.handleAutoShown("axisLine")),r){var o=e.axis.getExtent(),a=i.transform,s=[o[0],0],l=[o[1],0];a&&(Et(s,s,a),Et(l,l,a));var u=I({lineCap:"round"},e.getModel(["axisLine","lineStyle"]).getLineStyle()),h=new nu({subPixelOptimize:!0,shape:{x1:s[0],y1:s[1],x2:l[0],y2:l[1]},style:u,strokeContainThreshold:t.strokeContainThreshold||5,silent:!0,z2:1});h.anid="line",n.add(h);var c=e.get(["axisLine","symbol"]),p=e.get(["axisLine","symbolSize"]),d=e.get(["axisLine","symbolOffset"])||0;if("number"==typeof d&&(d=[d,d]),null!=c){"string"==typeof c&&(c=[c,c]),"string"!=typeof p&&"number"!=typeof p||(p=[p,p]);var f=p[0],g=p[1];P([{rotate:t.rotation+Math.PI/2,offset:d[0],r:0},{rotate:t.rotation-Math.PI/2,offset:d[1],r:Math.sqrt((s[0]-l[0])*(s[0]-l[0])+(s[1]-l[1])*(s[1]-l[1]))}],(function(e,i){if("none"!==c[i]&&null!=c[i]){var r=cy(c[i],-f/2,-g/2,f,g,u.stroke,!0),o=e.r+e.offset;r.attr({rotation:e.rotate,x:s[0]+o*Math.cos(t.rotation),y:s[1]-o*Math.sin(t.rotation),silent:!0,z2:11}),n.add(r)}}))}}},axisTickLabel:function(t,e,n,i){var r=function(t,e,n,i){var r=n.axis,o=n.getModel("axisTick"),a=o.get("show");"auto"===a&&i.handleAutoShown&&(a=i.handleAutoShown("axisTick"));if(!a||r.scale.isBlank())return;for(var s=o.getModel("lineStyle"),l=i.tickDirection*o.get("length"),u=vS(r.getTicksCoords(),e.transform,l,T(s.getLineStyle(),{stroke:n.get(["axisLine","lineStyle","color"])}),"ticks"),h=0;h<u.length;h++)t.add(u[h]);return u}(n,i,e,t),o=function(t,e,n,i){var r=n.axis;if(!Q(i.axisLabelShow,n.get(["axisLabel","show"]))||r.scale.isBlank())return;var o=n.getModel("axisLabel"),a=o.get("margin"),s=r.getViewLabels(),l=(Q(i.labelRotate,o.get("rotate"))||0)*cS/180,u=pS.innerTextLayout(i.rotation,l,i.labelDirection),h=n.getCategories&&n.getCategories(!0),c=[],p=pS.isLabelSilent(n),d=n.get("triggerEvent");return P(s,(function(s,l){var f="ordinal"===r.scale.type?r.scale.getRawOrdinalNumber(s.tickValue):s.tickValue,g=s.formattedLabel,y=s.rawLabel,v=o;if(h&&h[f]){var m=h[f];X(m)&&m.textStyle&&(v=new Ih(m.textStyle,o,n.ecModel))}var _=v.getTextColor()||n.get(["axisLine","lineStyle","color"]),x=r.dataToCoord(f),b=new hs({x:x,y:i.labelOffset+i.labelDirection*a,rotation:u.rotation,silent:p,z2:10,style:rh(v,{text:g,align:v.getShallow("align",!0)||u.textAlign,verticalAlign:v.getShallow("verticalAlign",!0)||v.getShallow("baseline",!0)||u.textVerticalAlign,fill:"function"==typeof _?_("category"===r.type?y:"value"===r.type?f+"":f,l):_})});if(b.anid="label_"+f,d){var w=pS.makeAxisEventDataBase(n);w.targetType="axisLabel",w.value=y,ms(b).eventData=w}e.add(b),b.updateTransform(),c.push(b),t.add(b),b.decomposeTransform()})),c}(n,i,e,t);!function(t,e,n){if(j_(t.axis))return;var i=t.get(["axisLabel","showMinLabel"]),r=t.get(["axisLabel","showMaxLabel"]);n=n||[];var o=(e=e||[])[0],a=e[1],s=e[e.length-1],l=e[e.length-2],u=n[0],h=n[1],c=n[n.length-1],p=n[n.length-2];!1===i?(fS(o),fS(u)):gS(o,a)&&(i?(fS(a),fS(h)):(fS(o),fS(u)));!1===r?(fS(s),fS(c)):gS(l,s)&&(r?(fS(l),fS(p)):(fS(s),fS(c)))}(e,o,r),function(t,e,n,i){var r=n.axis,o=n.getModel("minorTick");if(!o.get("show")||r.scale.isBlank())return;var a=r.getMinorTicksCoords();if(!a.length)return;for(var s=o.getModel("lineStyle"),l=i*o.get("length"),u=T(s.getLineStyle(),T(n.getModel("axisTick").getLineStyle(),{stroke:n.get(["axisLine","lineStyle","color"])})),h=0;h<a.length;h++)for(var c=vS(a[h],e.transform,l,u,"minorticks_"+h),p=0;p<c.length;p++)t.add(c[p])}(n,i,e,t.tickDirection)},axisName:function(t,e,n,i){var r=Q(t.axisName,e.get("name"));if(r){var o,a,s=e.get("nameLocation"),l=t.nameDirection,u=e.getModel("nameTextStyle"),h=e.get("nameGap")||0,c=e.axis.getExtent(),p=c[0]>c[1]?-1:1,d=["start"===s?c[0]-p*h:"end"===s?c[1]+p*h:(c[0]+c[1])/2,yS(s)?t.labelOffset+l*h:0],f=e.get("nameRotate");null!=f&&(f=f*cS/180),yS(s)?o=pS.innerTextLayout(t.rotation,null!=f?f:t.rotation,l):(o=function(t,e,n,i){var r,o,a=ir(n-t),s=i[0]>i[1],l="start"===e&&!s||"start"!==e&&s;rr(a-cS/2)?(o=l?"bottom":"top",r="center"):rr(a-1.5*cS)?(o=l?"top":"bottom",r="center"):(o="middle",r=a<1.5*cS&&a>cS/2?l?"left":"right":l?"right":"left");return{rotation:a,textAlign:r,textVerticalAlign:o}}(t.rotation,s,f||0,c),null!=(a=t.axisNameAvailableWidth)&&(a=Math.abs(a/Math.sin(o.rotation)),!isFinite(a)&&(a=null)));var g=u.getFont(),y=e.get("nameTruncate",!0)||{},v=y.ellipsis,m=Q(t.nameTruncateMaxWidth,y.maxWidth,a),_=e.get("tooltip",!0),x=e.mainType,b={componentType:x,name:r,$vars:["name"]};b[x+"Index"]=e.componentIndex;var w=new hs({x:d[0],y:d[1],rotation:o.rotation,silent:pS.isLabelSilent(e),style:rh(u,{text:r,font:g,overflow:"truncate",width:m,ellipsis:v,fill:u.getTextColor()||e.get(["axisLine","lineStyle","color"]),align:u.get("align")||o.textAlign,verticalAlign:u.get("verticalAlign")||o.textVerticalAlign}),z2:1});if(w.tooltip=_&&_.show?I({content:r,formatter:function(){return r},formatterParams:b},_):null,w.__fullText=r,w.anid="name",e.get("triggerEvent")){var S=pS.makeAxisEventDataBase(e);S.targetType="axisName",S.name=r,ms(w).eventData=S}i.add(w),w.updateTransform(),n.add(w),w.decomposeTransform()}}};function fS(t){t&&(t.ignore=!0)}function gS(t,e){var n=t&&t.getBoundingRect().clone(),i=e&&e.getBoundingRect().clone();if(n&&i){var r=ve([]);return be(r,r,-t.rotation),n.applyTransform(_e([],r,t.getLocalTransform())),i.applyTransform(_e([],r,e.getLocalTransform())),n.intersect(i)}}function yS(t){return"middle"===t||"center"===t}function vS(t,e,n,i,r){for(var o=[],a=[],s=[],l=0;l<t.length;l++){var u=t[l].coord;a[0]=u,a[1]=0,s[0]=u,s[1]=n,e&&(Et(a,a,e),Et(s,s,e));var h=new nu({subPixelOptimize:!0,shape:{x1:a[0],y1:a[1],x2:s[0],y2:s[1]},style:i,z2:2,autoBatch:!0,silent:!0});h.anid=r+"_"+t[l].tickValue,o.push(h)}return o}function mS(t,e){var n={axesInfo:{},seriesInvolved:!1,coordSysAxesInfo:{},coordSysMap:{}};return function(t,e,n){var i=e.getComponent("tooltip"),r=e.getComponent("axisPointer"),o=r.get("link",!0)||[],a=[];P(n.getCoordinateSystems(),(function(n){if(n.axisPointerEnabled){var s=SS(n.model),l=t.coordSysAxesInfo[s]={};t.coordSysMap[s]=n;var u=n.model.getModel("tooltip",i);if(P(n.getAxes(),V(d,!1,null)),n.getTooltipAxes&&i&&u.get("show")){var h="axis"===u.get("trigger"),c="cross"===u.get(["axisPointer","type"]),p=n.getTooltipAxes(u.get(["axisPointer","axis"]));(h||c)&&P(p.baseAxes,V(d,!c||"cross",h)),c&&P(p.otherAxes,V(d,"cross",!1))}}function d(i,s,h){var c=h.model.getModel("axisPointer",r),p=c.get("show");if(p&&("auto"!==p||i||wS(c))){null==s&&(s=c.get("triggerTooltip"));var d=(c=i?function(t,e,n,i,r,o){var a=e.getModel("axisPointer"),s={};P(["type","snap","lineStyle","shadowStyle","label","animation","animationDurationUpdate","animationEasingUpdate","z"],(function(t){s[t]=w(a.get(t))})),s.snap="category"!==t.type&&!!o,"cross"===a.get("type")&&(s.type="line");var l=s.label||(s.label={});if(null==l.show&&(l.show=!1),"cross"===r){var u=a.get(["label","show"]);if(l.show=null==u||u,!o){var h=s.lineStyle=a.get("crossStyle");h&&T(l,h.textStyle)}}return t.model.getModel("axisPointer",new Ih(s,n,i))}(h,u,r,e,i,s):c).get("snap"),f=SS(h.model),g=s||d||"category"===h.type,y=t.axesInfo[f]={key:f,axis:h,coordSys:n,axisPointerModel:c,triggerTooltip:s,involveSeries:g,snap:d,useHandle:wS(c),seriesModels:[],linkGroup:null};l[f]=y,t.seriesInvolved=t.seriesInvolved||g;var v=function(t,e){for(var n=e.model,i=e.dim,r=0;r<t.length;r++){var o=t[r]||{};if(_S(o[i+"AxisId"],n.id)||_S(o[i+"AxisIndex"],n.componentIndex)||_S(o[i+"AxisName"],n.name))return r}}(o,h);if(null!=v){var m=a[v]||(a[v]={axesInfo:{}});m.axesInfo[f]=y,m.mapper=o[v].mapper,y.linkGroup=m}}}}))}(n,t,e),n.seriesInvolved&&function(t,e){e.eachSeries((function(e){var n=e.coordinateSystem,i=e.get(["tooltip","trigger"],!0),r=e.get(["tooltip","show"],!0);n&&"none"!==i&&!1!==i&&"item"!==i&&!1!==r&&!1!==e.get(["axisPointer","show"],!0)&&P(t.coordSysAxesInfo[SS(n.model)],(function(t){var i=t.axis;n.getAxis(i.dim)===i&&(t.seriesModels.push(e),null==t.seriesDataCount&&(t.seriesDataCount=0),t.seriesDataCount+=e.getData().count())}))}))}(n,t),n}function _S(t,e){return"all"===t||F(t)&&A(t,e)>=0||t===e}function xS(t){var e=bS(t);if(e){var n=e.axisPointerModel,i=e.axis.scale,r=n.option,o=n.get("status"),a=n.get("value");null!=a&&(a=i.parse(a));var s=wS(n);null==o&&(r.status=s?"show":"hide");var l=i.getExtent().slice();l[0]>l[1]&&l.reverse(),(null==a||a>l[1])&&(a=l[1]),a<l[0]&&(a=l[0]),r.value=a,s&&(r.status=e.axis.scale.isBlank()?"hide":"show")}}function bS(t){var e=(t.ecModel.getComponent("axisPointer")||{}).coordSysAxesInfo;return e&&e.axesInfo[SS(t)]}function wS(t){return!!t.get(["handle","show"])}function SS(t){return t.type+"||"+t.id}var MS={},IS=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(e,n,i,r){this.axisPointerClass&&xS(e),t.prototype.render.apply(this,arguments),this._doUpdateAxisPointerClass(e,i,!0)},e.prototype.updateAxisPointer=function(t,e,n,i){this._doUpdateAxisPointerClass(t,n,!1)},e.prototype.remove=function(t,e){var n=this._axisPointer;n&&n.remove(e)},e.prototype.dispose=function(e,n){this._disposeAxisPointer(n),t.prototype.dispose.apply(this,arguments)},e.prototype._doUpdateAxisPointerClass=function(t,n,i){var r=e.getAxisPointerClass(this.axisPointerClass);if(r){var o=function(t){var e=bS(t);return e&&e.axisPointerModel}(t);o?(this._axisPointer||(this._axisPointer=new r)).render(t,o,n,i):this._disposeAxisPointer(n)}},e.prototype._disposeAxisPointer=function(t){this._axisPointer&&this._axisPointer.dispose(t),this._axisPointer=null},e.registerAxisPointerClass=function(t,e){MS[t]=e},e.getAxisPointerClass=function(t){return t&&MS[t]},e.type="axis",e}(ff),TS=Pr();function CS(t,e,n,i){var r=n.axis;if(!r.scale.isBlank()){var o=n.getModel("splitArea"),a=o.getModel("areaStyle"),s=a.get("color"),l=i.coordinateSystem.getRect(),u=r.getTicksCoords({tickModel:o,clamp:!0});if(u.length){var h=s.length,c=TS(t).splitAreaColors,p=ht(),d=0;if(c)for(var f=0;f<u.length;f++){var g=c.get(u[f].tickValue);if(null!=g){d=(g+(h-1)*f)%h;break}}var y=r.toGlobalCoord(u[0].coord),v=a.getAreaStyle();s=F(s)?s:[s];for(f=1;f<u.length;f++){var m=r.toGlobalCoord(u[f].coord),_=void 0,x=void 0,b=void 0,w=void 0;r.isHorizontal()?(_=y,x=l.y,b=m-_,w=l.height,y=_+b):(_=l.x,x=y,b=l.width,y=x+(w=m-x));var S=u[f-1].tickValue;null!=S&&p.set(S,d),e.add(new ss({anid:null!=S?"area_"+S:null,shape:{x:_,y:x,width:b,height:w},style:T({fill:s[d]},v),autoBatch:!0,silent:!0})),d=(d+1)%h}TS(t).splitAreaColors=p}}}function AS(t){TS(t).splitAreaColors=null}var DS=["axisLine","axisTickLabel","axisName"],LS=["splitArea","splitLine","minorSplitLine"],kS=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.axisPointerClass="CartesianAxisPointer",n}return n(e,t),e.prototype.render=function(e,n,i,r){this.group.removeAll();var o=this._axisGroup;if(this._axisGroup=new Vi,this.group.add(this._axisGroup),e.get("show")){var a=e.getCoordSysModel(),s=rS(a,e),l=new pS(e,I({handleAutoShown:function(t){for(var n=a.coordinateSystem.getCartesians(),i=0;i<n.length;i++){var r=n[i].getOtherAxis(e.axis).type;if("value"===r||"log"===r)return!0}return!1}},s));P(DS,l.add,l),this._axisGroup.add(l.getGroup()),P(LS,(function(t){e.get([t,"show"])&&PS[t](this,this._axisGroup,e,a)}),this),Xu(o,this._axisGroup,e),t.prototype.render.call(this,e,n,i,r)}},e.prototype.remove=function(){AS(this)},e.type="cartesianAxis",e}(IS),PS={splitLine:function(t,e,n,i){var r=n.axis;if(!r.scale.isBlank()){var o=n.getModel("splitLine"),a=o.getModel("lineStyle"),s=a.get("color");s=F(s)?s:[s];for(var l=i.coordinateSystem.getRect(),u=r.isHorizontal(),h=0,c=r.getTicksCoords({tickModel:o}),p=[],d=[],f=a.getLineStyle(),g=0;g<c.length;g++){var y=r.toGlobalCoord(c[g].coord);u?(p[0]=y,p[1]=l.y,d[0]=y,d[1]=l.y+l.height):(p[0]=l.x,p[1]=y,d[0]=l.x+l.width,d[1]=y);var v=h++%s.length,m=c[g].tickValue;e.add(new nu({anid:null!=m?"line_"+c[g].tickValue:null,subPixelOptimize:!0,autoBatch:!0,shape:{x1:p[0],y1:p[1],x2:d[0],y2:d[1]},style:T({stroke:s[v]},f),silent:!0}))}}},minorSplitLine:function(t,e,n,i){var r=n.axis,o=n.getModel("minorSplitLine").getModel("lineStyle"),a=i.coordinateSystem.getRect(),s=r.isHorizontal(),l=r.getMinorTicksCoords();if(l.length)for(var u=[],h=[],c=o.getLineStyle(),p=0;p<l.length;p++)for(var d=0;d<l[p].length;d++){var f=r.toGlobalCoord(l[p][d].coord);s?(u[0]=f,u[1]=a.y,h[0]=f,h[1]=a.y+a.height):(u[0]=a.x,u[1]=f,h[0]=a.x+a.width,h[1]=f),e.add(new nu({anid:"minor_line_"+l[p][d].tickValue,subPixelOptimize:!0,autoBatch:!0,shape:{x1:u[0],y1:u[1],x2:h[0],y2:h[1]},style:c,silent:!0}))}},splitArea:function(t,e,n,i){CS(t,e,n,i)}},OS=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="xAxis",e}(kS),RS=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=OS.type,e}return n(e,t),e.type="yAxis",e}(kS),NS=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="grid",e}return n(e,t),e.prototype.render=function(t,e){this.group.removeAll(),t.get("show")&&this.group.add(new ss({shape:t.coordinateSystem.getRect(),style:T({fill:t.get("backgroundColor")},t.getItemStyle()),silent:!0,z2:-1}))},e.type="grid",e}(ff),ES={offset:0};function zS(t){t.registerComponentView(NS),t.registerComponentModel(Yw),t.registerCoordinateSystem("cartesian2d",sS),$w(t,"x",Xw,ES),$w(t,"y",Xw,ES),t.registerComponentView(OS),t.registerComponentView(RS),t.registerPreprocessor((function(t){t.xAxis&&t.yAxis&&!t.grid&&(t.grid={})}))}function BS(t){t.eachSeriesByType("radar",(function(t){var e=t.getData(),n=[],i=t.coordinateSystem;if(i){var r=i.getIndicatorAxes();P(r,(function(t,o){e.each(e.mapDimension(r[o].dim),(function(t,e){n[e]=n[e]||[];var r=i.dataToPoint(t,o);n[e][o]=VS(r)?r:FS(i)}))})),e.each((function(t){var r=E(n[t],(function(t){return VS(t)}))||FS(i);n[t].push(r.slice()),e.setItemLayout(t,n[t])}))}}))}function VS(t){return!isNaN(t[0])&&!isNaN(t[1])}function FS(t){return[t.cx,t.cy]}function GS(t){var e=t.polar;if(e){F(e)||(e=[e]);var n=[];P(e,(function(e,i){e.indicator?(e.type&&!e.shape&&(e.shape=e.type),t.radar=t.radar||[],F(t.radar)||(t.radar=[t.radar]),t.radar.push(e)):n.push(e)})),t.polar=n}P(t.series,(function(t){t&&"radar"===t.type&&t.polarIndex&&(t.radarIndex=t.polarIndex)}))}var HS=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){var i=t.coordinateSystem,r=this.group,o=t.getData(),a=this._data;function s(t,e){var n=t.getItemVisual(e,"symbol")||"circle";if("none"!==n){var i=function(t){return F(t)||(t=[+t,+t]),t}(t.getItemVisual(e,"symbolSize")),r=cy(n,-1,-1,2,2),o=t.getItemVisual(e,"symbolRotate")||0;return r.attr({style:{strokeNoScale:!0},z2:100,scaleX:i[0]/2,scaleY:i[1]/2,rotation:o*Math.PI/180||0}),r}}function l(e,n,i,r,o,a){i.removeAll();for(var l=0;l<n.length-1;l++){var u=s(r,o);u&&(u.__dimIdx=l,e[l]?(u.setPosition(e[l]),Ju[a?"initProps":"updateProps"](u,{x:n[l][0],y:n[l][1]},t,o)):u.setPosition(n[l]),i.add(u))}}function u(t){return O(t,(function(t){return[i.cx,i.cy]}))}o.diff(a).add((function(e){var n=o.getItemLayout(e);if(n){var i=new $l,r=new Ql,a={shape:{points:n}};i.shape.points=u(n),r.shape.points=u(n),Eu(i,a,t,e),Eu(r,a,t,e);var s=new Vi,h=new Vi;s.add(r),s.add(i),s.add(h),l(r.shape.points,n,h,o,e,!0),o.setItemGraphicEl(e,s)}})).update((function(e,n){var i=a.getItemGraphicEl(n),r=i.childAt(0),s=i.childAt(1),u=i.childAt(2),h={shape:{points:o.getItemLayout(e)}};h.shape.points&&(l(r.shape.points,h.shape.points,u,o,e,!1),Nu(r,h,t),Nu(s,h,t),o.setItemGraphicEl(e,i))})).remove((function(t){r.remove(a.getItemGraphicEl(t))})).execute(),o.eachItemGraphicEl((function(t,e){var n=o.getItemModel(e),i=t.childAt(0),a=t.childAt(1),s=t.childAt(2),l=o.getItemVisual(e,"style"),u=l.fill;r.add(t),i.useStyle(T(n.getModel("lineStyle").getLineStyle(),{fill:"none",stroke:u})),rl(i,n,"lineStyle"),rl(a,n,"areaStyle");var h=n.getModel("areaStyle"),c=h.isEmpty()&&h.parentModel.isEmpty();a.ignore=c,P(["emphasis","select","blur"],(function(t){var e=n.getModel([t,"areaStyle"]),i=e.isEmpty()&&e.parentModel.isEmpty();a.ensureState(t).ignore=i&&c})),a.useStyle(T(h.getAreaStyle(),{fill:u,opacity:.7,decal:l.decal}));var p=n.getModel("emphasis"),d=p.getModel("itemStyle").getItemStyle();s.eachChild((function(t){if(t instanceof ts){var i=t.style;t.useStyle(I({image:i.image,x:i.x,y:i.y,width:i.width,height:i.height},l))}else t.useStyle(l),t.setColor(u);t.ensureState("emphasis").style=w(d);var r=o.get(o.dimensions[t.__dimIdx],e);(null==r||isNaN(r))&&(r=""),nh(t,ih(n),{labelFetcher:o.hostModel,labelDataIndex:e,labelDimIndex:t.__dimIdx,defaultText:r,inheritColor:u,defaultOpacity:l.opacity})})),tl(t,p.get("focus"),p.get("blurScope"))})),this._data=o},e.prototype.remove=function(){this.group.removeAll(),this._data=null},e.type="radar",e}(mf),WS=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.useColorPaletteOnData=!0,n.hasSymbolVisual=!0,n}return n(e,t),e.prototype.init=function(e){t.prototype.init.apply(this,arguments),this.legendVisualProvider=new zw(B(this.getData,this),B(this.getRawData,this))},e.prototype.getInitialData=function(t,e){return Ew(this,{generateCoord:"indicator_",generateCoordCount:1/0})},e.prototype.formatTooltip=function(t,e,n){var i=this.getData(),r=this.coordinateSystem.getIndicatorAxes(),o=this.getData().getName(t),a=""===o?this.name:o,s=Qd(this,t);return Ud("section",{header:a,sortBlocks:!0,blocks:O(r,(function(e){var n=i.get(i.mapDimension(e.dim),t);return Ud("nameValue",{markerType:"subItem",markerColor:s,name:e.name,value:n,sortParam:n})}))})},e.prototype.getTooltipPosition=function(t){if(null!=t)for(var e=this.getData(),n=this.coordinateSystem,i=e.getValues(O(n.dimensions,(function(t){return e.mapDimension(t)})),t),r=0,o=i.length;r<o;r++)if(!isNaN(i[r])){var a=n.getIndicatorAxes();return n.coordToPoint(a[r].dataToCoord(i[r]),r)}},e.type="series.radar",e.dependencies=["radar"],e.defaultOption={zlevel:0,z:2,coordinateSystem:"radar",legendHoverLink:!0,radarIndex:0,lineStyle:{width:2,type:"solid"},label:{position:"top"},symbol:"emptyCircle",symbolSize:4},e}(af),YS=qw.value;function XS(t,e){return T({show:e},t)}var US=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.optionUpdated=function(){var t=this.get("boundaryGap"),e=this.get("splitNumber"),n=this.get("scale"),i=this.get("axisLine"),r=this.get("axisTick"),o=this.get("axisLabel"),a=this.get("axisName"),s=this.get(["axisName","show"]),l=this.get(["axisName","formatter"]),u=this.get("axisNameGap"),h=this.get("triggerEvent"),c=O(this.get("indicator")||[],(function(c){null!=c.max&&c.max>0&&!c.min?c.min=0:null!=c.min&&c.min<0&&!c.max&&(c.max=0);var p=a;null!=c.color&&(p=T({color:c.color},a));var d=S(w(c),{boundaryGap:t,splitNumber:e,scale:n,axisLine:i,axisTick:r,axisLabel:o,name:c.text,nameLocation:"end",nameGap:u,nameTextStyle:p,triggerEvent:h},!1);if(s||(d.name=""),"string"==typeof l){var f=d.name;d.name=l.replace("{value}",null!=f?f:"")}else"function"==typeof l&&(d.name=l(d.name,d));var g=new Ih(d,null,this.ecModel);return L(g,K_.prototype),g.mainType="radar",g.componentIndex=this.componentIndex,g}),this);this._indicatorModels=c},e.prototype.getIndicatorModels=function(){return this._indicatorModels},e.type="radar",e.defaultOption={zlevel:0,z:0,center:["50%","50%"],radius:"75%",startAngle:90,axisName:{show:!0},boundaryGap:[0,0],splitNumber:5,axisNameGap:15,scale:!1,shape:"polygon",axisLine:S({lineStyle:{color:"#bbb"}},YS.axisLine),axisLabel:XS(YS.axisLabel,!1),axisTick:XS(YS.axisTick,!1),splitLine:XS(YS.splitLine,!0),splitArea:XS(YS.splitArea,!0),indicator:[]},e}(zc),ZS=["axisLine","axisTickLabel","axisName"],jS=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){this.group.removeAll(),this._buildAxes(t),this._buildSplitLineAndArea(t)},e.prototype._buildAxes=function(t){var e=t.coordinateSystem;P(O(e.getIndicatorAxes(),(function(t){return new pS(t.model,{position:[e.cx,e.cy],rotation:t.angle,labelDirection:-1,tickDirection:-1,nameDirection:1})})),(function(t){P(ZS,t.add,t),this.group.add(t.getGroup())}),this)},e.prototype._buildSplitLineAndArea=function(t){var e=t.coordinateSystem,n=e.getIndicatorAxes();if(n.length){var i=t.get("shape"),r=t.getModel("splitLine"),o=t.getModel("splitArea"),a=r.getModel("lineStyle"),s=o.getModel("areaStyle"),l=r.get("show"),u=o.get("show"),h=a.get("color"),c=s.get("color"),p=F(h)?h:[h],d=F(c)?c:[c],f=[],g=[];if("circle"===i)for(var y=n[0].getTicksCoords(),v=e.cx,m=e.cy,_=0;_<y.length;_++){if(l)f[A(f,p,_)].push(new Al({shape:{cx:v,cy:m,r:y[_].coord}}));if(u&&_<y.length-1)g[A(g,d,_)].push(new Zl({shape:{cx:v,cy:m,r0:y[_].coord,r:y[_+1].coord}}))}else{var x,b=O(n,(function(t,n){var i=t.getTicksCoords();return x=null==x?i.length-1:Math.min(i.length-1,x),O(i,(function(t){return e.coordToPoint(t.coord,n)}))})),w=[];for(_=0;_<=x;_++){for(var S=[],M=0;M<n.length;M++)S.push(b[M][_]);if(S[0]&&S.push(S[0].slice()),l)f[A(f,p,_)].push(new Ql({shape:{points:S}}));if(u&&w)g[A(g,d,_-1)].push(new $l({shape:{points:S.concat(w)}}));w=S.slice().reverse()}}var I=a.getLineStyle(),C=s.getAreaStyle();P(g,(function(t,e){this.group.add(ku(t,{style:T({stroke:"none",fill:d[e%d.length]},C),silent:!0}))}),this),P(f,(function(t,e){this.group.add(ku(t,{style:T({fill:"none",stroke:p[e%p.length]},I),silent:!0}))}),this)}function A(t,e,n){var i=n%e.length;return t[i]=t[i]||[],i}},e.type="radar",e}(ff),qS=function(t){function e(e,n,i){var r=t.call(this,e,n,i)||this;return r.type="value",r.angle=0,r.name="",r}return n(e,t),e}(_x),KS=function(){function t(t,e,n){this.dimensions=[],this._model=t,this._indicatorAxes=O(t.getIndicatorModels(),(function(t,e){var n="indicator_"+e,i=new qS(n,new i_);return i.name=t.get("name"),i.model=t,t.axis=i,this.dimensions.push(n),i}),this),this.resize(t,n)}return t.prototype.getIndicatorAxes=function(){return this._indicatorAxes},t.prototype.dataToPoint=function(t,e){var n=this._indicatorAxes[e];return this.coordToPoint(n.dataToCoord(t),e)},t.prototype.coordToPoint=function(t,e){var n=this._indicatorAxes[e].angle;return[this.cx+t*Math.cos(n),this.cy-t*Math.sin(n)]},t.prototype.pointToData=function(t){var e=t[0]-this.cx,n=t[1]-this.cy,i=Math.sqrt(e*e+n*n);e/=i,n/=i;for(var r,o=Math.atan2(-n,e),a=1/0,s=-1,l=0;l<this._indicatorAxes.length;l++){var u=this._indicatorAxes[l],h=Math.abs(o-u.angle);h<a&&(r=u,s=l,a=h)}return[s,+(r&&r.coordToData(i))]},t.prototype.resize=function(t,e){var n=t.get("center"),i=e.getWidth(),r=e.getHeight(),o=Math.min(i,r)/2;this.cx=qi(n[0],i),this.cy=qi(n[1],r),this.startAngle=t.get("startAngle")*Math.PI/180;var a=t.get("radius");"string"!=typeof a&&"number"!=typeof a||(a=[0,a]),this.r0=qi(a[0],o),this.r=qi(a[1],o),P(this._indicatorAxes,(function(t,e){t.setExtent(this.r0,this.r);var n=this.startAngle+e*Math.PI*2/this._indicatorAxes.length;n=Math.atan2(Math.sin(n),Math.cos(n)),t.angle=n}),this)},t.prototype.update=function(t,e){var n=this._indicatorAxes,i=this._model;P(n,(function(t){t.scale.setExtent(1/0,-1/0)})),t.eachSeriesByType("radar",(function(e,r){if("radar"===e.get("coordinateSystem")&&t.getComponent("radar",e.get("radarIndex"))===i){var o=e.getData();P(n,(function(t){t.scale.unionExtentFromData(o,o.mapDimension(t.dim))}))}}),this);var r=i.get("splitNumber");function o(t){var e=Math.pow(10,Math.floor(Math.log(t)/Math.LN10)),n=t/e;return 2===n?n=5:n*=2,n*e}P(n,(function(t,e){var n=G_(t.scale,t.model).extent;H_(t.scale,t.model);var i=t.model,a=t.scale,s=F_(a,i.get("min",!0)),l=F_(a,i.get("max",!0)),u=a.getInterval();if(null!=s&&null!=l)a.setExtent(+s,+l),a.setInterval((l-s)/r);else if(null!=s){var h=void 0;do{h=s+u*r,a.setExtent(+s,h),a.setInterval(u),u=o(u)}while(h<n[1]&&isFinite(h)&&isFinite(n[1]))}else if(null!=l){var c=void 0;do{c=l-u*r,a.setExtent(c,+l),a.setInterval(u),u=o(u)}while(c>n[0]&&isFinite(c)&&isFinite(n[0]))}else{a.getTicks().length-1>r&&(u=o(u));c=Ki((h=Math.ceil(n[1]/u)*u)-u*r);a.setExtent(c,h),a.setInterval(u)}}))},t.prototype.convertToPixel=function(t,e,n){return console.warn("Not implemented."),null},t.prototype.convertFromPixel=function(t,e,n){return console.warn("Not implemented."),null},t.prototype.containPoint=function(t){return console.warn("Not implemented."),!1},t.create=function(e,n){var i=[];return e.eachComponent("radar",(function(r){var o=new t(r,e,n);i.push(o),r.coordinateSystem=o})),e.eachSeriesByType("radar",(function(t){"radar"===t.get("coordinateSystem")&&(t.coordinateSystem=i[t.get("radarIndex")||0])})),i},t.dimensions=[],t}();function $S(t){t.registerCoordinateSystem("radar",KS),t.registerComponentModel(US),t.registerComponentView(jS)}var JS="\0_ec_interaction_mutex";function QS(t,e){return!!tM(t)[e]}function tM(t){return t[JS]||(t[JS]={})}Uv({type:"takeGlobalCursor",event:"globalCursorTaken",update:"update"},(function(){}));var eM=function(t){function e(e){var n=t.call(this)||this;n._zr=e;var i=B(n._mousedownHandler,n),r=B(n._mousemoveHandler,n),o=B(n._mouseupHandler,n),a=B(n._mousewheelHandler,n),s=B(n._pinchHandler,n);return n.enable=function(t,n){this.disable(),this._opt=T(w(n)||{},{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),null==t&&(t=!0),!0!==t&&"move"!==t&&"pan"!==t||(e.on("mousedown",i),e.on("mousemove",r),e.on("mouseup",o)),!0!==t&&"scale"!==t&&"zoom"!==t||(e.on("mousewheel",a),e.on("pinch",s))},n.disable=function(){e.off("mousedown",i),e.off("mousemove",r),e.off("mouseup",o),e.off("mousewheel",a),e.off("pinch",s)},n}return n(e,t),e.prototype.isDragging=function(){return this._dragging},e.prototype.isPinching=function(){return this._pinching},e.prototype.setPointerChecker=function(t){this.pointerChecker=t},e.prototype.dispose=function(){this.disable()},e.prototype._mousedownHandler=function(t){if(!(re(t)||t.target&&t.target.draggable)){var e=t.offsetX,n=t.offsetY;this.pointerChecker&&this.pointerChecker(t,e,n)&&(this._x=e,this._y=n,this._dragging=!0)}},e.prototype._mousemoveHandler=function(t){if(this._dragging&&rM("moveOnMouseMove",t,this._opt)&&"pinch"!==t.gestureEvent&&!QS(this._zr,"globalPan")){var e=t.offsetX,n=t.offsetY,i=this._x,r=this._y,o=e-i,a=n-r;this._x=e,this._y=n,this._opt.preventDefaultMouseMove&&ie(t.event),iM(this,"pan","moveOnMouseMove",t,{dx:o,dy:a,oldX:i,oldY:r,newX:e,newY:n,isAvailableBehavior:null})}},e.prototype._mouseupHandler=function(t){re(t)||(this._dragging=!1)},e.prototype._mousewheelHandler=function(t){var e=rM("zoomOnMouseWheel",t,this._opt),n=rM("moveOnMouseWheel",t,this._opt),i=t.wheelDelta,r=Math.abs(i),o=t.offsetX,a=t.offsetY;if(0!==i&&(e||n)){if(e){var s=r>3?1.4:r>1?1.2:1.1;nM(this,"zoom","zoomOnMouseWheel",t,{scale:i>0?s:1/s,originX:o,originY:a,isAvailableBehavior:null})}if(n){var l=Math.abs(i);nM(this,"scrollMove","moveOnMouseWheel",t,{scrollDelta:(i>0?1:-1)*(l>3?.4:l>1?.15:.05),originX:o,originY:a,isAvailableBehavior:null})}}},e.prototype._pinchHandler=function(t){QS(this._zr,"globalPan")||nM(this,"zoom",null,t,{scale:t.pinchScale>1?1.1:1/1.1,originX:t.pinchX,originY:t.pinchY,isAvailableBehavior:null})},e}(Ht);function nM(t,e,n,i,r){t.pointerChecker&&t.pointerChecker(i,r.originX,r.originY)&&(ie(i.event),iM(t,e,n,i,r))}function iM(t,e,n,i,r){r.isAvailableBehavior=B(rM,null,n,i),t.trigger(e,r)}function rM(t,e,n){var i=n[t];return!t||i&&(!H(i)||e.event[i+"Key"])}function oM(t,e,n){var i=t.target;i.x+=e,i.y+=n,i.dirty()}function aM(t,e,n,i){var r=t.target,o=t.zoomLimit,a=t.zoom=t.zoom||1;if(a*=e,o){var s=o.min||0,l=o.max||1/0;a=Math.max(Math.min(l,a),s)}var u=a/t.zoom;t.zoom=a,r.x-=(n-r.x)*(u-1),r.y-=(i-r.y)*(u-1),r.scaleX*=u,r.scaleY*=u,r.dirty()}var sM={axisPointer:1,tooltip:1,brush:1};function lM(t,e,n){var i=e.getComponentByElement(t.topTarget),r=i&&i.coordinateSystem;return i&&i!==n&&!sM.hasOwnProperty(i.mainType)&&r&&r.model!==n}for(var uM=[126,25],hM=[[[0,3.5],[7,11.2],[15,11.9],[30,7],[42,.7],[52,.7],[56,7.7],[59,.7],[64,.7],[64,0],[5,0],[0,3.5]],[[13,16.1],[19,14.7],[16,21.7],[11,23.1],[13,16.1]],[[12,32.2],[14,38.5],[15,38.5],[13,32.2],[12,32.2]],[[16,47.6],[12,53.2],[13,53.2],[18,47.6],[16,47.6]],[[6,64.4],[8,70],[9,70],[8,64.4],[6,64.4]],[[23,82.6],[29,79.8],[30,79.8],[25,82.6],[23,82.6]],[[37,70.7],[43,62.3],[44,62.3],[39,70.7],[37,70.7]],[[48,51.1],[51,45.5],[53,45.5],[50,51.1],[48,51.1]],[[51,35],[51,28.7],[53,28.7],[53,35],[51,35]],[[52,22.4],[55,17.5],[56,17.5],[53,22.4],[52,22.4]],[[58,12.6],[62,7],[63,7],[60,12.6],[58,12.6]],[[0,3.5],[0,93.1],[64,93.1],[64,0],[63,0],[63,92.4],[1,92.4],[1,3.5],[0,3.5]]],cM=0;cM<hM.length;cM++)for(var pM=0;pM<hM[cM].length;pM++)hM[cM][pM][0]/=10.5,hM[cM][pM][1]/=-14,hM[cM][pM][0]+=uM[0],hM[cM][pM][1]+=uM[1];var dM={"南海诸岛":[32,80],"广东":[0,-10],"香港":[10,5],"澳门":[-10,10],"天津":[5,5]};var fM={Russia:[100,60],"United States":[-99,38],"United States of America":[-99,38]};var gM=[[[123.45165252685547,25.73527164402261],[123.49731445312499,25.73527164402261],[123.49731445312499,25.750734064600884],[123.45165252685547,25.750734064600884],[123.45165252685547,25.73527164402261]]];var yM=Pr(),vM={load:function(t,e,n){var i=yM(e).parsed;if(i)return i;var r,o=e.specialAreas||{},a=e.geoJSON;try{r=a?ix(a,n):[]}catch(t){throw new Error("Invalid geoJson format\n"+t.message)}return function(t,e){"china"===t&&e.push(new ex("南海诸岛",O(hM,(function(t){return{type:"polygon",exterior:t}})),uM))}(t,r),P(r,(function(e){var n=e.name;!function(t,e){if("china"===t){var n=dM[e.name];if(n){var i=e.center;i[0]+=n[0]/10.5,i[1]+=-n[1]/14}}}(t,e),function(t,e){if("world"===t){var n=fM[e.name];if(n){var i=e.center;i[0]=n[0],i[1]=n[1]}}}(t,e),function(t,e){"china"===t&&"台湾"===e.name&&e.geometries.push({type:"polygon",exterior:gM[0]})}(t,e);var i=o[n];i&&e.transformTo(i.left,i.top,i.width,i.height)})),yM(e).parsed={regions:r,boundingRect:mM(r)}}};function mM(t){for(var e,n=0;n<t.length;n++){var i=t[n].getBoundingRect();(e=e||i.clone()).union(i)}return e}var _M,xM=/[\s,]+/,bM=function(){function t(){this._defs={},this._root=null,this._isDefine=!1,this._isText=!1}return t.prototype.parse=function(t,e){e=e||{};var n=sg(t);if(!n)throw new Error("Illegal svg");var i=new Vi;this._root=i;var r=n.getAttribute("viewBox")||"",o=parseFloat(n.getAttribute("width")||e.width),a=parseFloat(n.getAttribute("height")||e.height);isNaN(o)&&(o=null),isNaN(a)&&(a=null),TM(n,i,null,!0);for(var s,l,u=n.firstChild;u;)this._parseNode(u,i),u=u.nextSibling;if(r){var h=ot(r).split(xM);h.length>=4&&(s={x:parseFloat(h[0]||0),y:parseFloat(h[1]||0),width:parseFloat(h[2]),height:parseFloat(h[3])})}if(s&&null!=o&&null!=a&&(l=kM(s,o,a),!e.ignoreViewBox)){var c=i;(i=new Vi).add(c),c.scaleX=c.scaleY=l.scale,c.x=l.x,c.y=l.y}return e.ignoreRootClip||null==o||null==a||i.setClipPath(new ss({shape:{x:0,y:0,width:o,height:a}})),{root:i,width:o,height:a,viewBoxRect:s,viewBoxTransform:l}},t.prototype._parseNode=function(t,e){var n,i,r=t.nodeName.toLowerCase();if("defs"===r?this._isDefine=!0:"text"===r&&(this._isText=!0),this._isDefine){if(i=wM[r]){var o=i.call(this,t),a=t.getAttribute("id");a&&(this._defs[a]=o)}}else(i=_M[r])&&(n=i.call(this,t,e),e.add(n));if(n)for(var s=t.firstChild;s;)1===s.nodeType&&this._parseNode(s,n),3===s.nodeType&&this._isText&&this._parseText(s,n),s=s.nextSibling;"defs"===r?this._isDefine=!1:"text"===r&&(this._isText=!1)},t.prototype._parseText=function(t,e){if(1===t.nodeType){var n=t.getAttribute("dx")||0,i=t.getAttribute("dy")||0;this._textX+=parseFloat(n),this._textY+=parseFloat(i)}var r=new $a({style:{text:t.textContent},x:this._textX||0,y:this._textY||0});SM(e,r),TM(t,r,this._defs);var o=r.style,a=o.fontSize;a&&a<9&&(o.fontSize=9,r.scaleX*=a/9,r.scaleY*=a/9);var s=(o.fontSize||o.fontFamily)&&[o.fontStyle,o.fontWeight,(o.fontSize||12)+"px",o.fontFamily||"sans-serif"].join(" ");o.font=s;var l=r.getBoundingRect();return this._textX+=l.width,e.add(r),r},t.internalField=void(_M={g:function(t,e){var n=new Vi;return SM(e,n),TM(t,n,this._defs),n},rect:function(t,e){var n=new ss;return SM(e,n),TM(t,n,this._defs),n.setShape({x:parseFloat(t.getAttribute("x")||"0"),y:parseFloat(t.getAttribute("y")||"0"),width:parseFloat(t.getAttribute("width")||"0"),height:parseFloat(t.getAttribute("height")||"0")}),n},circle:function(t,e){var n=new Al;return SM(e,n),TM(t,n,this._defs),n.setShape({cx:parseFloat(t.getAttribute("cx")||"0"),cy:parseFloat(t.getAttribute("cy")||"0"),r:parseFloat(t.getAttribute("r")||"0")}),n},line:function(t,e){var n=new nu;return SM(e,n),TM(t,n,this._defs),n.setShape({x1:parseFloat(t.getAttribute("x1")||"0"),y1:parseFloat(t.getAttribute("y1")||"0"),x2:parseFloat(t.getAttribute("x2")||"0"),y2:parseFloat(t.getAttribute("y2")||"0")}),n},ellipse:function(t,e){var n=new Ll;return SM(e,n),TM(t,n,this._defs),n.setShape({cx:parseFloat(t.getAttribute("cx")||"0"),cy:parseFloat(t.getAttribute("cy")||"0"),rx:parseFloat(t.getAttribute("rx")||"0"),ry:parseFloat(t.getAttribute("ry")||"0")}),n},polygon:function(t,e){var n,i=t.getAttribute("points");i&&(n=MM(i));var r=new $l({shape:{points:n||[]}});return SM(e,r),TM(t,r,this._defs),r},polyline:function(t,e){var n=new qa;SM(e,n),TM(t,n,this._defs);var i,r=t.getAttribute("points");return r&&(i=MM(r)),new Ql({shape:{points:i||[]}})},image:function(t,e){var n=new ts;return SM(e,n),TM(t,n,this._defs),n.setStyle({image:t.getAttribute("xlink:href"),x:+t.getAttribute("x"),y:+t.getAttribute("y"),width:+t.getAttribute("width"),height:+t.getAttribute("height")}),n},text:function(t,e){var n=t.getAttribute("x")||"0",i=t.getAttribute("y")||"0",r=t.getAttribute("dx")||"0",o=t.getAttribute("dy")||"0";this._textX=parseFloat(n)+parseFloat(r),this._textY=parseFloat(i)+parseFloat(o);var a=new Vi;return SM(e,a),TM(t,a,this._defs),a},tspan:function(t,e){var n=t.getAttribute("x"),i=t.getAttribute("y");null!=n&&(this._textX=parseFloat(n)),null!=i&&(this._textY=parseFloat(i));var r=t.getAttribute("dx")||0,o=t.getAttribute("dy")||0,a=new Vi;return SM(e,a),TM(t,a,this._defs),this._textX+=r,this._textY+=o,a},path:function(t,e){var n=Tl(t.getAttribute("d")||"");return SM(e,n),TM(t,n,this._defs),n}}),t}(),wM={lineargradient:function(t){var e=parseInt(t.getAttribute("x1")||"0",10),n=parseInt(t.getAttribute("y1")||"0",10),i=parseInt(t.getAttribute("x2")||"10",10),r=parseInt(t.getAttribute("y2")||"0",10),o=new cu(e,n,i,r);return function(t,e){var n=t.firstChild;for(;n;){if(1===n.nodeType){var i=n.getAttribute("offset"),r=void 0;r=i.indexOf("%")>0?parseInt(i,10)/100:i?parseFloat(i):0;var o=n.getAttribute("stop-color")||"#000000";e.colorStops.push({offset:r,color:o})}n=n.nextSibling}}(t,o),o}};function SM(t,e){t&&t.__inheritedStyle&&(e.__inheritedStyle||(e.__inheritedStyle={}),T(e.__inheritedStyle,t.__inheritedStyle))}function MM(t){for(var e=ot(t).split(xM),n=[],i=0;i<e.length;i+=2){var r=parseFloat(e[i]),o=parseFloat(e[i+1]);n.push([r,o])}return n}var IM={fill:"fill",stroke:"stroke","stroke-width":"lineWidth",opacity:"opacity","fill-opacity":"fillOpacity","stroke-opacity":"strokeOpacity","stroke-dasharray":"lineDash","stroke-dashoffset":"lineDashOffset","stroke-linecap":"lineCap","stroke-linejoin":"lineJoin","stroke-miterlimit":"miterLimit","font-family":"fontFamily","font-size":"fontSize","font-style":"fontStyle","font-weight":"fontWeight","text-align":"textAlign","alignment-baseline":"textBaseline"};function TM(t,e,n,i){var r=e,o=r.__inheritedStyle||{};if(1===t.nodeType&&(function(t,e){var n=t.getAttribute("transform");if(n){n=n.replace(/,/g," ");var i=[],r=null;n.replace(DM,(function(t,e,n){return i.push(e,n),""}));for(var o=i.length-1;o>0;o-=2){var a=i[o],s=void 0;switch(r=r||[1,0,0,1,0,0],i[o-1]){case"translate":s=ot(a).split(xM),xe(r,r,[parseFloat(s[0]),parseFloat(s[1]||"0")]);break;case"scale":s=ot(a).split(xM),we(r,r,[parseFloat(s[0]),parseFloat(s[1]||s[0])]);break;case"rotate":s=ot(a).split(xM),be(r,r,parseFloat(s[0]));break;case"skew":s=ot(a).split(xM),console.warn("Skew transform is not supported yet");break;case"matrix":s=ot(a).split(xM),r[0]=parseFloat(s[0]),r[1]=parseFloat(s[1]),r[2]=parseFloat(s[2]),r[3]=parseFloat(s[3]),r[4]=parseFloat(s[4]),r[5]=parseFloat(s[5])}}e.setLocalTransform(r)}}(t,e),I(o,function(t){var e=t.getAttribute("style"),n={};if(!e)return n;var i,r={};LM.lastIndex=0;for(;null!=(i=LM.exec(e));)r[i[1]]=i[2];for(var o in IM)IM.hasOwnProperty(o)&&null!=r[o]&&(n[IM[o]]=r[o]);return n}(t)),!i))for(var a in IM)if(IM.hasOwnProperty(a)){var s=t.getAttribute(a);null!=s&&(o[IM[a]]=s)}r.style=r.style||{},null!=o.fill&&(r.style.fill=AM(o.fill,n)),null!=o.stroke&&(r.style.stroke=AM(o.stroke,n)),P(["lineWidth","opacity","fillOpacity","strokeOpacity","miterLimit","fontSize"],(function(t){null!=o[t]&&(r.style[t]=parseFloat(o[t]))})),o.textBaseline&&"auto"!==o.textBaseline||(o.textBaseline="alphabetic"),"alphabetic"===o.textBaseline&&(o.textBaseline="bottom"),"start"===o.textAlign&&(o.textAlign="left"),"end"===o.textAlign&&(o.textAlign="right"),P(["lineDashOffset","lineCap","lineJoin","fontWeight","fontFamily","fontStyle","textAlign","textBaseline"],(function(t){null!=o[t]&&(r.style[t]=o[t])})),o.lineDash&&(r.style.lineDash=O(ot(o.lineDash).split(xM),(function(t){return parseFloat(t)}))),r.__inheritedStyle=o}var CM=/url\(\s*#(.*?)\)/;function AM(t,e){var n=e&&t&&t.match(CM);return n?e[ot(n[1])]:t}var DM=/(translate|scale|rotate|skewX|skewY|matrix)\(([\-\s0-9\.e,]*)\)/g;var LM=/([^\s:;]+)\s*:\s*([^:;]+)/g;function kM(t,e,n){var i=e/t.width,r=n/t.height,o=Math.min(i,r);return{scale:o,x:-(t.x+t.width/2)*o+e/2,y:-(t.y+t.height/2)*o+n/2}}var PM=Pr();function OM(t,e){var n,i,r,o,a=t.svgXML;try{rt(null!=(i=(n=a&&(r=a,o={ignoreViewBox:!0,ignoreRootClip:!0},(new bM).parse(r,o))||{}).root))}catch(t){throw new Error("Invalid svg format\n"+t.message)}var s=n.width,l=n.height,u=n.viewBoxRect;if(e||(e=null==s||null==l?i.getBoundingRect():new En(0,0,0,0),null!=s&&(e.width=s),null!=l&&(e.height=l)),u){var h=kM(u,e.width,e.height),c=i;(i=new Vi).add(c),c.scaleX=c.scaleY=h.scale,c.x=h.x,c.y=h.y}return i.setClipPath(new ss({shape:e.plain()})),{root:i,boundingRect:e}}var RM={geoJSON:vM,svg:{load:function(t,e){var n=PM(e).originRoot;if(n)return{root:n,boundingRect:PM(e).boundingRect};var i=OM(e);return PM(e).originRoot=i.root,PM(e).boundingRect=i.boundingRect,i},makeGraphic:function(t,e,n){var i=PM(e),r=i.rootMap||(i.rootMap=ht()),o=r.get(n);if(o)return o;var a=i.originRoot,s=i.boundingRect;return i.originRootHostKey?o=OM(e,s).root:(i.originRootHostKey=n,o=a),r.set(n,o)},removeGraphic:function(t,e,n){var i=PM(e),r=i.rootMap;r&&r.removeKey(n),n===i.originRootHostKey&&(i.originRootHostKey=null)}}},NM=function(t,e,n){var i,r=[],o=ht(),a=ht();return P(BM(t),(function(s){var l=RM[s.type].load(t,s,n);P(l.regions,(function(t){var n=t.name;e&&e.hasOwnProperty(n)&&(t=t.cloneShallow(n=e[n])),r.push(t),o.set(n,t),a.set(n,t.center)}));var u=l.boundingRect;u&&(i?i.union(u):i=u.clone())})),{regions:r,regionsMap:o,nameCoordMap:a,boundingRect:i||new En(0,0,0,0)}},EM=function(t,e){var n=BM(t),i=[];return P(n,(function(n){var r=RM[n.type].makeGraphic;r&&i.push(r(t,n,e))})),i},zM=function(t,e){P(BM(t),(function(n){var i=RM[n.type].makeGraphic;i&&i(t,n,e)}))};function BM(t){var e=hg(t)||[];return e}function VM(t){var e=t.getItemStyle(),n=t.get("areaColor");return null!=n&&(e.fill=n),e}var FM=function(){function t(t){var e=new Vi;this.uid=Ch("ec_map_draw"),this._controller=new eM(t.getZr()),this._controllerHost={target:e},this.group=e,e.add(this._regionsGroup=new Vi),e.add(this._backgroundGroup=new Vi)}return t.prototype.draw=function(t,e,n,i,r){var o="geo"===t.mainType,a=t.getData&&t.getData();o&&e.eachComponent({mainType:"series",subType:"map"},(function(e){a||e.getHostGeoModel()!==t||(a=e.getData())}));var s=t.coordinateSystem;this._updateBackground(s);var l,u,h=this._regionsGroup,c=this.group,p=s.getTransformInfo(),d=!h.childAt(0)||r;if(d)c.transform=p.roamTransform,c.decomposeTransform(),c.dirty();else{var f=new Oe;f.transform=p.roamTransform,f.decomposeTransform();var g={scaleX:f.scaleX,scaleY:f.scaleY,x:f.x,y:f.y};l=f.scaleX,u=f.scaleY,Nu(c,g,t)}h.removeAll();var y=ht(),v=a&&a.getVisual("visualMeta")&&a.getVisual("visualMeta").length>0;P(s.regions,(function(e){var i=y.get(e.name)||y.set(e.name,new Vi),r=new uu({segmentIgnoreThreshold:1,shape:{paths:[]}});i.add(r);var s,f=t.getRegionModel(e.name)||t,g=f.getModel("itemStyle"),m=f.getModel("emphasis"),_=m.getModel("itemStyle"),x=f.getModel(["blur","itemStyle"]),b=f.getModel(["select","itemStyle"]),w=VM(g),S=VM(_),M=VM(x),I=VM(b);if(a){s=a.indexOfName(e.name);var T=a.getItemVisual(s,"style"),C=a.getItemVisual(s,"decal");v&&T.fill&&(w.fill=T.fill),C&&(w.decal=Oy(C,n))}var A=p.rawScaleX,D=p.rawScaleY,L=p.rawX,k=p.rawY,O=function(t){return[t[0]*A+L,t[1]*D+k]};P(e.geometries,(function(t){if("polygon"===t.type){for(var e=[],n=0;n<t.exterior.length;++n)e.push(O(t.exterior[n]));r.shape.paths.push(new $l({segmentIgnoreThreshold:1,shape:{points:e}}));for(n=0;n<(t.interiors?t.interiors.length:0);++n){for(var i=t.interiors[n],o=[],a=0;a<i.length;++a)o.push(O(i[a]));r.shape.paths.push(new $l({segmentIgnoreThreshold:1,shape:{points:o}}))}}})),r.setStyle(w),r.style.strokeNoScale=!0,r.culling=!0,r.ensureState("emphasis").style=S,r.ensureState("blur").style=M,r.ensureState("select").style=I;for(var R=!1,N=0;N<Ss.length;N++){var E=Ss[N];if(f.get("normal"===E?["label","show"]:[E,"label","show"])){R=!0;break}}var z=a&&isNaN(a.get(a.mapDimension("value"),s)),B=a&&a.getItemLayout(s);if(o||z&&R||B&&B.showLabel){var V=o?e.name:s,F=void 0;(!a||s>=0)&&(F=t);var G=O(e.center),H=new hs({x:G[0],y:G[1],scaleX:1/c.scaleX,scaleY:1/c.scaleY,z2:10,silent:!0});nh(H,ih(f),{labelFetcher:F,labelDataIndex:V,defaultText:e.name},{normal:{align:"center",verticalAlign:"middle"}}),r.setTextContent(H),r.setTextConfig({local:!0}),r.disableLabelAnimation=!0,d||Nu(H,{scaleX:1/l,scaleY:1/u},t)}if(a)a.setItemGraphicEl(s,i);else{var W=t.getRegionModel(e.name);ms(r).eventData={componentType:"geo",componentIndex:t.componentIndex,geoIndex:t.componentIndex,name:e.name,region:W&&W.option||{}}}(i.__regions||(i.__regions=[])).push(e),i.highDownSilentOnTouch=!!t.get("selectedMode"),tl(i,m.get("focus"),m.get("blurScope")),h.add(i)})),this._updateController(t,e,n),this._updateMapSelectHandler(t,h,n,i)},t.prototype.remove=function(){this._regionsGroup.removeAll(),this._backgroundGroup.removeAll(),this._controller.dispose(),this._mapName&&zM(this._mapName,this.uid),this._mapName=null,this._controllerHost=null},t.prototype._updateBackground=function(t){var e=t.map;this._mapName!==e&&P(EM(e,this.uid),(function(t){this._backgroundGroup.add(t)}),this),this._mapName=e},t.prototype._updateController=function(t,e,n){var i=t.coordinateSystem,r=this._controller,o=this._controllerHost;o.zoomLimit=t.get("scaleLimit"),o.zoom=i.getZoom(),r.enable(t.get("roam")||!1);var a=t.mainType;function s(){var e={type:"geoRoam",componentType:a};return e[a+"Id"]=t.id,e}r.off("pan").on("pan",(function(t){this._mouseDownFlag=!1,oM(o,t.dx,t.dy),n.dispatchAction(I(s(),{dx:t.dx,dy:t.dy}))}),this),r.off("zoom").on("zoom",(function(t){this._mouseDownFlag=!1,aM(o,t.scale,t.originX,t.originY),n.dispatchAction(I(s(),{zoom:t.scale,originX:t.originX,originY:t.originY}));var e=this.group;this._regionsGroup.traverse((function(t){var n=t.getTextContent();n&&(n.scaleX=1/e.scaleX,n.scaleY=1/e.scaleY,n.markRedraw())}))}),this),r.setPointerChecker((function(e,r,o){return i.getViewRectAfterRoam().contain(r,o)&&!lM(e,n,t)}))},t.prototype._updateMapSelectHandler=function(t,e,n,i){var r=this;e.off("mousedown"),t.get("selectedMode")&&(e.on("mousedown",(function(){r._mouseDownFlag=!0})),e.on("click",(function(t){r._mouseDownFlag&&(r._mouseDownFlag=!1)})))},t}(),GM=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n,i){if(!i||"mapToggleSelect"!==i.type||i.from!==this.uid){var r=this.group;if(r.removeAll(),!t.getHostGeoModel()){if(i&&"geoRoam"===i.type&&"series"===i.componentType&&i.seriesId===t.id)(o=this._mapDraw)&&r.add(o.group);else if(t.needsDrawMap){var o=this._mapDraw||new FM(n);r.add(o.group),o.draw(t,e,n,this,i),this._mapDraw=o}else this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null;t.get("showLegendSymbol")&&e.getComponent("legend")&&this._renderSymbols(t,e,n)}}},e.prototype.remove=function(){this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null,this.group.removeAll()},e.prototype.dispose=function(){this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null},e.prototype._renderSymbols=function(t,e,n){var i=t.originalData,r=this.group;i.each(i.mapDimension("value"),(function(e,n){if(!isNaN(e)){var o=i.getItemLayout(n);if(o&&o.point){var a=o.point,s=o.offset,l=new Al({style:{fill:t.getData().getVisual("style").fill},shape:{cx:a[0]+9*s,cy:a[1],r:3},silent:!0,z2:8+(s?0:11)});if(!s){var u=t.mainSeries.getData(),h=i.getName(n),c=u.indexOfName(h),p=i.getItemModel(n),d=p.getModel("label"),f=u.getItemGraphicEl(c);nh(l,ih(p),{labelFetcher:{getFormattedLabel:function(e,n){return t.getFormattedLabel(c,n)}}}),l.disableLabelAnimation=!0,d.get("position")||l.setTextConfig({position:"bottom"}),f.onHoverStateChange=function(t){l.useState(t)}}r.add(l)}}}))},e.type="map",e}(mf),HM=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.needsDrawMap=!1,n.seriesGroup=[],n.getTooltipPosition=function(t){if(null!=t){var e=this.getData().getName(t),n=this.coordinateSystem,i=n.getRegion(e);return i&&n.dataToPoint(i.center)}},n}return n(e,t),e.prototype.getInitialData=function(t){for(var e=Ew(this,{coordDimensions:["value"],encodeDefaulter:V(ep,this)}),n=ht(),i=[],r=0,o=e.count();r<o;r++){var a=e.getName(r);n.set(a,!0)}return P(NM(this.getMapType(),this.option.nameMap,this.option.nameProperty).regions,(function(t){var e=t.name;n.get(e)||i.push(e)})),e.appendValues([],i),e},e.prototype.getHostGeoModel=function(){var t=this.option.geoIndex;return null!=t?this.ecModel.getComponent("geo",t):null},e.prototype.getMapType=function(){return(this.getHostGeoModel()||this).option.map},e.prototype.getRawValue=function(t){var e=this.getData();return e.get(e.mapDimension("value"),t)},e.prototype.getRegionModel=function(t){var e=this.getData();return e.getItemModel(e.indexOfName(t))},e.prototype.formatTooltip=function(t,e,n){for(var i=this.getData(),r=this.getRawValue(t),o=i.getName(t),a=this.seriesGroup,s=[],l=0;l<a.length;l++){var u=a[l].originalData.indexOfName(o),h=i.mapDimension("value");isNaN(a[l].originalData.get(h,u))||s.push(a[l].name)}return Ud("section",{header:s.join(", "),noHeader:!s.length,blocks:[Ud("nameValue",{name:o,value:r})]})},e.prototype.setZoom=function(t){this.option.zoom=t},e.prototype.setCenter=function(t){this.option.center=t},e.type="series.map",e.dependencies=["geo"],e.layoutMode="box",e.defaultOption={zlevel:0,z:2,coordinateSystem:"geo",map:"",left:"center",top:"center",aspectScale:.75,showLegendSymbol:!0,boundingCoords:null,center:null,zoom:1,scaleLimit:null,selectedMode:!0,label:{show:!1,color:"#000"},itemStyle:{borderWidth:.5,borderColor:"#444",areaColor:"#eee"},emphasis:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{areaColor:"rgba(255,215,0,0.8)"}},select:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{color:"rgba(255,215,0,0.8)"}},nameProperty:"name"},e}(af);function WM(t){var e={};t.eachSeriesByType("map",(function(t){var n=t.getHostGeoModel(),i=n?"o"+n.id:"i"+t.getMapType();(e[i]=e[i]||[]).push(t)})),P(e,(function(t,e){for(var n,i,r,o=(n=O(t,(function(t){return t.getData()})),i=t[0].get("mapValueCalculation"),r={},P(n,(function(t){t.each(t.mapDimension("value"),(function(e,n){var i="ec-"+t.getName(n);r[i]=r[i]||[],isNaN(e)||r[i].push(e)}))})),n[0].map(n[0].mapDimension("value"),(function(t,e){for(var o="ec-"+n[0].getName(e),a=0,s=1/0,l=-1/0,u=r[o].length,h=0;h<u;h++)s=Math.min(s,r[o][h]),l=Math.max(l,r[o][h]),a+=r[o][h];return 0===u?NaN:"min"===i?s:"max"===i?l:"average"===i?a/u:a}))),a=0;a<t.length;a++)t[a].originalData=t[a].getData();for(a=0;a<t.length;a++)t[a].seriesGroup=t,t[a].needsDrawMap=0===a&&!t[a].getHostGeoModel(),t[a].setData(o.cloneShallow()),t[a].mainSeries=t[0]}))}function YM(t){var e={};t.eachSeriesByType("map",(function(n){var i=n.getMapType();if(!n.getHostGeoModel()&&!e[i]){var r={};P(n.seriesGroup,(function(e){var n=e.coordinateSystem,i=e.originalData;e.get("showLegendSymbol")&&t.getComponent("legend")&&i.each(i.mapDimension("value"),(function(t,e){var o=i.getName(e),a=n.getRegion(o);if(a&&!isNaN(t)){var s=r[o]||0,l=n.dataToPoint(a.center);r[o]=s+1,i.setItemLayout(e,{point:l,offset:s})}}))}));var o=n.getData();o.each((function(t){var e=o.getName(t),n=o.getItemLayout(t)||{};n.showLabel=!r[e],o.setItemLayout(t,n)})),e[i]=!0}}))}function XM(t,e){var n=t.isExpand?t.children:[],i=t.parentNode.children,r=t.hierNode.i?i[t.hierNode.i-1]:null;if(n.length){!function(t){var e=t.children,n=e.length,i=0,r=0;for(;--n>=0;){var o=e[n];o.hierNode.prelim+=i,o.hierNode.modifier+=i,r+=o.hierNode.change,i+=o.hierNode.shift+r}}(t);var o=(n[0].hierNode.prelim+n[n.length-1].hierNode.prelim)/2;r?(t.hierNode.prelim=r.hierNode.prelim+e(t,r),t.hierNode.modifier=t.hierNode.prelim-o):t.hierNode.prelim=o}else r&&(t.hierNode.prelim=r.hierNode.prelim+e(t,r));t.parentNode.hierNode.defaultAncestor=function(t,e,n,i){if(e){for(var r=t,o=t,a=o.parentNode.children[0],s=e,l=r.hierNode.modifier,u=o.hierNode.modifier,h=a.hierNode.modifier,c=s.hierNode.modifier;s=qM(s),o=KM(o),s&&o;){r=qM(r),a=KM(a),r.hierNode.ancestor=t;var p=s.hierNode.prelim+c-o.hierNode.prelim-u+i(s,o);p>0&&(JM($M(s,t,n),t,p),u+=p,l+=p),c+=s.hierNode.modifier,u+=o.hierNode.modifier,l+=r.hierNode.modifier,h+=a.hierNode.modifier}s&&!qM(r)&&(r.hierNode.thread=s,r.hierNode.modifier+=c-l),o&&!KM(a)&&(a.hierNode.thread=o,a.hierNode.modifier+=u-h,n=t)}return n}(t,r,t.parentNode.hierNode.defaultAncestor||i[0],e)}function UM(t){var e=t.hierNode.prelim+t.parentNode.hierNode.modifier;t.setLayout({x:e},!0),t.hierNode.modifier+=t.parentNode.hierNode.modifier}function ZM(t){return arguments.length?t:QM}function jM(t,e){return t-=Math.PI/2,{x:e*Math.cos(t),y:e*Math.sin(t)}}function qM(t){var e=t.children;return e.length&&t.isExpand?e[e.length-1]:t.hierNode.thread}function KM(t){var e=t.children;return e.length&&t.isExpand?e[0]:t.hierNode.thread}function $M(t,e,n){return t.hierNode.ancestor.parentNode===e.parentNode?t.hierNode.ancestor:n}function JM(t,e,n){var i=n/(e.hierNode.i-t.hierNode.i);e.hierNode.change-=i,e.hierNode.shift+=n,e.hierNode.modifier+=n,e.hierNode.prelim+=n,t.hierNode.change+=i}function QM(t,e){return t.parentNode===e.parentNode?1:2}var tI=Et,eI=function(t){function e(e){var n=t.call(this)||this;return n.type="view",n.dimensions=["x","y"],n._roamTransformable=new Oe,n._rawTransformable=new Oe,n.name=e,n}return n(e,t),e.prototype.setBoundingRect=function(t,e,n,i){return this._rect=new En(t,e,n,i),this._rect},e.prototype.getBoundingRect=function(){return this._rect},e.prototype.setViewRect=function(t,e,n,i){this.transformTo(t,e,n,i),this._viewRect=new En(t,e,n,i)},e.prototype.transformTo=function(t,e,n,i){var r=this.getBoundingRect(),o=this._rawTransformable;o.transform=r.calculateTransform(new En(t,e,n,i)),o.decomposeTransform(),this._updateTransform()},e.prototype.setCenter=function(t){t&&(this._center=t,this._updateCenterAndZoom())},e.prototype.setZoom=function(t){t=t||1;var e=this.zoomLimit;e&&(null!=e.max&&(t=Math.min(e.max,t)),null!=e.min&&(t=Math.max(e.min,t))),this._zoom=t,this._updateCenterAndZoom()},e.prototype.getDefaultCenter=function(){var t=this.getBoundingRect();return[t.x+t.width/2,t.y+t.height/2]},e.prototype.getCenter=function(){return this._center||this.getDefaultCenter()},e.prototype.getZoom=function(){return this._zoom||1},e.prototype.getRoamTransform=function(){return this._roamTransformable.getLocalTransform()},e.prototype._updateCenterAndZoom=function(){var t=this._rawTransformable.getLocalTransform(),e=this._roamTransformable,n=this.getDefaultCenter(),i=this.getCenter(),r=this.getZoom();i=Et([],i,t),n=Et([],n,t),e.originX=i[0],e.originY=i[1],e.x=n[0]-i[0],e.y=n[1]-i[1],e.scaleX=e.scaleY=r,this._updateTransform()},e.prototype._updateTransform=function(){var t=this._roamTransformable,e=this._rawTransformable;e.parent=t,t.updateTransform(),e.updateTransform(),me(this.transform||(this.transform=[]),e.transform||[1,0,0,1,0,0]),this._rawTransform=e.getLocalTransform(),this.invTransform=this.invTransform||[],Se(this.invTransform,this.transform),this.decomposeTransform()},e.prototype.getTransformInfo=function(){var t=this._roamTransformable.transform,e=this._rawTransformable;return{roamTransform:t?nt(t):[1,0,0,1,0,0],rawScaleX:e.scaleX,rawScaleY:e.scaleY,rawX:e.x,rawY:e.y}},e.prototype.getViewRect=function(){return this._viewRect},e.prototype.getViewRectAfterRoam=function(){var t=this.getBoundingRect().clone();return t.applyTransform(this.transform),t},e.prototype.dataToPoint=function(t,e,n){var i=e?this._rawTransform:this.transform;return n=n||[],i?tI(n,t,i):_t(n,t)},e.prototype.pointToData=function(t){var e=this.invTransform;return e?tI([],t,e):[t[0],t[1]]},e.prototype.convertToPixel=function(t,e,n){var i=nI(e);return i===this?i.dataToPoint(n):null},e.prototype.convertFromPixel=function(t,e,n){var i=nI(e);return i===this?i.pointToData(n):null},e.prototype.containPoint=function(t){return this.getViewRectAfterRoam().contain(t[0],t[1])},e.dimensions=["x","y"],e}(Oe);function nI(t){var e=t.seriesModel;return e?e.coordinateSystem:null}var iI=function(){this.parentPoint=[],this.childPoints=[]},rI=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new iI},e.prototype.buildPath=function(t,e){var n=e.childPoints,i=n.length,r=e.parentPoint,o=n[0],a=n[i-1];if(1===i)return t.moveTo(r[0],r[1]),void t.lineTo(o[0],o[1]);var s=e.orient,l="TB"===s||"BT"===s?0:1,u=1-l,h=qi(e.forkPosition,1),c=[];c[l]=r[l],c[u]=r[u]+(a[u]-r[u])*h,t.moveTo(r[0],r[1]),t.lineTo(c[0],c[1]),t.moveTo(o[0],o[1]),c[l]=o[l],t.lineTo(c[0],c[1]),c[l]=a[l],t.lineTo(c[0],c[1]),t.lineTo(a[0],a[1]);for(var p=1;p<i-1;p++){var d=n[p];t.moveTo(d[0],d[1]),c[l]=d[l],t.lineTo(c[0],c[1])}},e}(qa),oI=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._mainGroup=new Vi,n}return n(e,t),e.prototype.init=function(t,e){this._controller=new eM(e.getZr()),this._controllerHost={target:this.group},this.group.add(this._mainGroup)},e.prototype.render=function(t,e,n){var i=t.getData(),r=t.layoutInfo,o=this._mainGroup;"radial"===t.get("layout")?(o.x=r.x+r.width/2,o.y=r.y+r.height/2):(o.x=r.x,o.y=r.y),this._updateViewCoordSys(t),this._updateController(t,e,n);var a=this._data;i.diff(a).add((function(e){aI(i,e)&&sI(i,e,null,o,t)})).update((function(e,n){var r=a.getItemGraphicEl(n);aI(i,e)?sI(i,e,r,o,t):r&&lI(a,n,r,o,t)})).remove((function(e){var n=a.getItemGraphicEl(e);n&&lI(a,e,n,o,t)})).execute(),this._nodeScaleRatio=t.get("nodeScaleRatio"),this._updateNodeAndLinkScale(t),!0===t.get("expandAndCollapse")&&i.eachItemGraphicEl((function(e,i){e.off("click").on("click",(function(){n.dispatchAction({type:"treeExpandAndCollapse",seriesId:t.id,dataIndex:i})}))})),this._data=i},e.prototype._updateViewCoordSys=function(t){var e=t.getData(),n=[];e.each((function(t){var i=e.getItemLayout(t);!i||isNaN(i.x)||isNaN(i.y)||n.push([+i.x,+i.y])}));var i=[],r=[];ia(n,i,r);var o=this._min,a=this._max;r[0]-i[0]==0&&(i[0]=o?o[0]:i[0]-1,r[0]=a?a[0]:r[0]+1),r[1]-i[1]==0&&(i[1]=o?o[1]:i[1]-1,r[1]=a?a[1]:r[1]+1);var s=t.coordinateSystem=new eI;s.zoomLimit=t.get("scaleLimit"),s.setBoundingRect(i[0],i[1],r[0]-i[0],r[1]-i[1]),s.setCenter(t.get("center")),s.setZoom(t.get("zoom")),this.group.attr({x:s.x,y:s.y,scaleX:s.scaleX,scaleY:s.scaleY}),this._min=i,this._max=r},e.prototype._updateController=function(t,e,n){var i=this,r=this._controller,o=this._controllerHost,a=this.group;r.setPointerChecker((function(e,i,r){var o=a.getBoundingRect();return o.applyTransform(a.transform),o.contain(i,r)&&!lM(e,n,t)})),r.enable(t.get("roam")),o.zoomLimit=t.get("scaleLimit"),o.zoom=t.coordinateSystem.getZoom(),r.off("pan").off("zoom").on("pan",(function(e){oM(o,e.dx,e.dy),n.dispatchAction({seriesId:t.id,type:"treeRoam",dx:e.dx,dy:e.dy})})).on("zoom",(function(e){aM(o,e.scale,e.originX,e.originY),n.dispatchAction({seriesId:t.id,type:"treeRoam",zoom:e.scale,originX:e.originX,originY:e.originY}),i._updateNodeAndLinkScale(t),n.updateLabelLayout()}))},e.prototype._updateNodeAndLinkScale=function(t){var e=t.getData(),n=this._getNodeGlobalScale(t);e.eachItemGraphicEl((function(t,e){t.setSymbolScale(n)}))},e.prototype._getNodeGlobalScale=function(t){var e=t.coordinateSystem;if("view"!==e.type)return 1;var n=this._nodeScaleRatio,i=e.scaleX||1;return((e.getZoom()-1)*n+1)/i},e.prototype.dispose=function(){this._controller&&this._controller.dispose(),this._controllerHost=null},e.prototype.remove=function(){this._mainGroup.removeAll(),this._data=null},e.type="tree",e}(mf);function aI(t,e){var n=t.getItemLayout(e);return n&&!isNaN(n.x)&&!isNaN(n.y)}function sI(t,e,n,i,r){var o=!n,a=t.tree.getNodeByDataIndex(e),s=a.getModel(),l=a.getVisual("style").fill,u=!1===a.isExpand&&0!==a.children.length?l:"#fff",h=t.tree.root,c=a.parentNode===h?a:a.parentNode||a,p=t.getItemGraphicEl(c.dataIndex),d=c.getLayout(),f=p?{x:p.__oldX,y:p.__oldY,rawX:p.__radialOldRawX,rawY:p.__radialOldRawY}:d,g=a.getLayout();o?((n=new Sb(t,e,null,{symbolInnerColor:u,useNameLabel:!0})).x=f.x,n.y=f.y):n.updateData(t,e,null,{symbolInnerColor:u,useNameLabel:!0}),n.__radialOldRawX=n.__radialRawX,n.__radialOldRawY=n.__radialRawY,n.__radialRawX=g.rawX,n.__radialRawY=g.rawY,i.add(n),t.setItemGraphicEl(e,n),n.__oldX=n.x,n.__oldY=n.y,Nu(n,{x:g.x,y:g.y},r);var y=n.getSymbolPath();if("radial"===r.get("layout")){var v=h.children[0],m=v.getLayout(),_=v.children.length,x=void 0,b=void 0;if(g.x===m.x&&!0===a.isExpand){var w={x:(v.children[0].getLayout().x+v.children[_-1].getLayout().x)/2,y:(v.children[0].getLayout().y+v.children[_-1].getLayout().y)/2};(x=Math.atan2(w.y-m.y,w.x-m.x))<0&&(x=2*Math.PI+x),(b=w.x<m.x)&&(x-=Math.PI)}else(x=Math.atan2(g.y-m.y,g.x-m.x))<0&&(x=2*Math.PI+x),0===a.children.length||0!==a.children.length&&!1===a.isExpand?(b=g.x<m.x)&&(x-=Math.PI):(b=g.x>m.x)||(x-=Math.PI);var S=b?"left":"right",M=s.getModel("label"),I=M.get("rotate"),C=I*(Math.PI/180),A=y.getTextContent();A&&(y.setTextConfig({position:M.get("position")||S,rotation:null==I?-x:C,origin:"center"}),A.setStyle("verticalAlign","middle"))}var D=s.get(["emphasis","focus"]),L="ancestor"===D?a.getAncestorsIndices():"descendant"===D?a.getDescendantIndices():null;L&&(ms(n).focus=L),function(t,e,n,i,r,o,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&&(g||(g=i.__edge=new au({shape:uI(h,c,p,r,r)})),Nu(g,{shape:uI(h,c,p,o,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,v=[],m=0;m<y.length;m++){var _=y[m].getLayout();v.push([_.x,_.y])}g||(g=i.__edge=new rI({shape:{parentPoint:[a.x,a.y],childPoints:[[a.x,a.y]],orient:c,forkPosition:d}})),Nu(g,{shape:{parentPoint:[a.x,a.y],childPoints:v}},t)}}else 0;g&&(g.useStyle(T({strokeNoScale:!0,fill:null},f)),rl(g,l,"lineStyle"),Ws(g),s.add(g))}(r,a,h,n,f,d,g,i),n.__edge&&(n.onHoverStateChange=function(e){if("blur"!==e){var i=a.parentNode&&t.getItemGraphicEl(a.parentNode.dataIndex);i&&1===i.hoverState||Gs(n.__edge,e)}})}function lI(t,e,n,i,r){for(var o,a=t.tree.getNodeByDataIndex(e),s=t.tree.root,l=a.parentNode===s?a:a.parentNode||a;null==(o=l.getLayout());)l=l.parentNode===s?l:l.parentNode||l;var u={duration:r.get("animationDurationUpdate"),easing:r.get("animationEasingUpdate")};zu(n,{x:o.x+1,y:o.y+1},r,{cb:function(){i.remove(n),t.setItemGraphicEl(e,null)},removeOpt:u}),n.fadeOut(null,{fadeLabel:!0,animation:u});var h=t.getItemGraphicEl(l.dataIndex).__edge,c=n.__edge||(!1===l.isExpand||1===l.children.length?h:void 0),p=r.get("edgeShape"),d=r.get("layout"),f=r.get("orient"),g=r.get(["lineStyle","curveness"]);c&&("curve"===p?zu(c,{shape:uI(d,f,g,o,o),style:{opacity:0}},r,{cb:function(){i.remove(c)},removeOpt:u}):"polyline"===p&&"orthogonal"===r.get("layout")&&zu(c,{shape:{parentPoint:[o.x,o.y],childPoints:[[o.x,o.y]]},style:{opacity:0}},r,{cb:function(){i.remove(c)},removeOpt:u}))}function uI(t,e,n,i,r){var o,a,s,l,u,h,c,p;if("radial"===t){u=i.rawX,c=i.rawY,h=r.rawX,p=r.rawY;var d=jM(u,c),f=jM(u,c+(p-c)*n),g=jM(h,p+(c-p)*n),y=jM(h,p);return{x1:d.x||0,y1:d.y||0,x2:y.x||0,y2:y.y||0,cpx1:f.x||0,cpy1:f.y||0,cpx2:g.x||0,cpy2:g.y||0}}return u=i.x,c=i.y,h=r.x,p=r.y,"LR"!==e&&"RL"!==e||(o=u+(h-u)*n,a=c,s=h+(u-h)*n,l=p),"TB"!==e&&"BT"!==e||(o=u,a=c+(p-c)*n,s=h,l=p+(c-p)*n),{x1:u,y1:c,x2:h,y2:p,cpx1:o,cpy1:a,cpx2:s,cpy2:l}}var hI=Pr();function cI(t){var e=t.mainData,n=t.datas;n||(n={main:e},t.datasAttr={main:"data"}),t.datas=t.mainData=null,vI(e,n,t),P(n,(function(n){P(e.TRANSFERABLE_METHODS,(function(e){n.wrapMethod(e,V(pI,t))}))})),e.wrapMethod("cloneShallow",V(fI,t)),P(e.CHANGABLE_METHODS,(function(n){e.wrapMethod(n,V(dI,t))})),rt(n[e.dataType]===e)}function pI(t,e){if(hI(i=this).mainData===i){var n=I({},hI(this).datas);n[this.dataType]=e,vI(e,n,t)}else mI(e,this.dataType,hI(this).mainData,t);var i;return e}function dI(t,e){return t.struct&&t.struct.update(),e}function fI(t,e){return P(hI(e).datas,(function(n,i){n!==e&&mI(n.cloneShallow(),i,e,t)})),e}function gI(t){var e=hI(this).mainData;return null==t||null==e?e:hI(e).datas[t]}function yI(){var t=hI(this).mainData;return null==t?[{data:t}]:O(z(hI(t).datas),(function(e){return{type:e,data:hI(t).datas[e]}}))}function vI(t,e,n){hI(t).datas={},P(e,(function(e,i){mI(e,i,t,n)}))}function mI(t,e,n,i){hI(n).datas[e]=t,hI(t).mainData=n,t.dataType=e,i.struct&&(t[i.structAttr]=i.struct,i.struct[i.datasAttr[e]]=t),t.getLinkedData=gI,t.getLinkedDataAll=yI}var _I=function(){function t(t,e){this.depth=0,this.height=0,this.dataIndex=-1,this.children=[],this.viewChildren=[],this.isExpand=!1,this.name=t||"",this.hostTree=e}return t.prototype.isRemoved=function(){return this.dataIndex<0},t.prototype.eachNode=function(t,e,n){"function"==typeof t&&(n=e,e=t,t=null),H(t=t||{})&&(t={order:t});var i,r=t.order||"preorder",o=this[t.attr||"children"];"preorder"===r&&(i=e.call(n,this));for(var a=0;!i&&a<o.length;a++)o[a].eachNode(t,e,n);"postorder"===r&&e.call(n,this)},t.prototype.updateDepthAndHeight=function(t){var e=0;this.depth=t;for(var n=0;n<this.children.length;n++){var i=this.children[n];i.updateDepthAndHeight(t+1),i.height>e&&(e=i.height)}this.height=e+1},t.prototype.getNodeById=function(t){if(this.getId()===t)return this;for(var e=0,n=this.children,i=n.length;e<i;e++){var r=n[e].getNodeById(t);if(r)return r}},t.prototype.contains=function(t){if(t===this)return!0;for(var e=0,n=this.children,i=n.length;e<i;e++){var r=n[e].contains(t);if(r)return r}},t.prototype.getAncestors=function(t){for(var e=[],n=t?this:this.parentNode;n;)e.push(n),n=n.parentNode;return e.reverse(),e},t.prototype.getAncestorsIndices=function(){for(var t=[],e=this;e;)t.push(e.dataIndex),e=e.parentNode;return t.reverse(),t},t.prototype.getDescendantIndices=function(){var t=[];return this.eachNode((function(e){t.push(e.dataIndex)})),t},t.prototype.getValue=function(t){var e=this.hostTree.data;return e.get(e.getDimension(t||"value"),this.dataIndex)},t.prototype.setLayout=function(t,e){this.dataIndex>=0&&this.hostTree.data.setItemLayout(this.dataIndex,t,e)},t.prototype.getLayout=function(){return this.hostTree.data.getItemLayout(this.dataIndex)},t.prototype.getModel=function(t){if(!(this.dataIndex<0))return this.hostTree.data.getItemModel(this.dataIndex).getModel(t)},t.prototype.getLevelModel=function(){return(this.hostTree.levelModels||[])[this.depth]},t.prototype.setVisual=function(t,e){this.dataIndex>=0&&this.hostTree.data.setItemVisual(this.dataIndex,t,e)},t.prototype.getVisual=function(t){return this.hostTree.data.getItemVisual(this.dataIndex,t)},t.prototype.getRawIndex=function(){return this.hostTree.data.getRawIndex(this.dataIndex)},t.prototype.getId=function(){return this.hostTree.data.getId(this.dataIndex)},t.prototype.isAncestorOf=function(t){for(var e=t.parentNode;e;){if(e===this)return!0;e=e.parentNode}return!1},t.prototype.isDescendantOf=function(t){return t!==this&&t.isAncestorOf(this)},t}(),xI=function(){function t(t){this.type="tree",this._nodes=[],this.hostModel=t}return t.prototype.eachNode=function(t,e,n){this.root.eachNode(t,e,n)},t.prototype.getNodeByDataIndex=function(t){var e=this.data.getRawIndex(t);return this._nodes[e]},t.prototype.getNodeById=function(t){return this.root.getNodeById(t)},t.prototype.update=function(){for(var t=this.data,e=this._nodes,n=0,i=e.length;n<i;n++)e[n].dataIndex=-1;for(n=0,i=t.count();n<i;n++)e[t.getRawIndex(n)].dataIndex=n},t.prototype.clearLayouts=function(){this.data.clearItemLayouts()},t.createTree=function(e,n,i){var r=new t(n),o=[],a=1;!function t(e,n){var i=e.value;a=Math.max(a,F(i)?i.length:1),o.push(e);var s=new _I(Ar(e.name,""),r);n?function(t,e){var n=e.children;if(t.parentNode===e)return;n.push(t),t.parentNode=e}(s,n):r.root=s,r._nodes.push(s);var l=e.children;if(l)for(var u=0;u<l.length;u++)t(l[u],s)}(e),r.root.updateDepthAndHeight(0);var s=zm(o,{coordDimensions:["value"],dimensionsCount:a}),l=new Rm(s,n);return l.initData(o),i&&i(l),cI({mainData:l,struct:r,structAttr:"tree"}),r.update(),r},t}();var bI=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.hasSymbolVisual=!0,e.ignoreStyleOnData=!0,e}return n(e,t),e.prototype.getInitialData=function(t){var e={name:t.name,children:t.data},n=t.leaves||{},i=new Ih(n,this,this.ecModel),r=xI.createTree(e,this,(function(t){t.wrapMethod("getItemModel",(function(t,e){var n=r.getNodeByDataIndex(e);return n.children.length&&n.isExpand||(t.parentModel=i),t}))}));var o=0;r.eachNode("preorder",(function(t){t.depth>o&&(o=t.depth)}));var a=t.expandAndCollapse&&t.initialTreeDepth>=0?t.initialTreeDepth:o;return r.root.eachNode("preorder",(function(t){var e=t.hostTree.data.getRawDataItem(t.dataIndex);t.isExpand=e&&null!=e.collapsed?!e.collapsed:t.depth<=a})),r.data},e.prototype.getOrient=function(){var t=this.get("orient");return"horizontal"===t?t="LR":"vertical"===t&&(t="TB"),t},e.prototype.setZoom=function(t){this.option.zoom=t},e.prototype.setCenter=function(t){this.option.center=t},e.prototype.formatTooltip=function(t,e,n){for(var i=this.getData().tree,r=i.root.children[0],o=i.getNodeByDataIndex(t),a=o.getValue(),s=o.name;o&&o!==r;)s=o.parentNode.name+"."+s,o=o.parentNode;return Ud("nameValue",{name:s,value:a,noValue:isNaN(a)||null==a})},e.type="series.tree",e.layoutMode="box",e.defaultOption={zlevel:0,z:2,coordinateSystem:"view",left:"12%",top:"12%",right:"12%",bottom:"12%",layout:"orthogonal",edgeShape:"curve",edgeForkPosition:"50%",roam:!1,nodeScaleRatio:.4,center:null,zoom:1,orient:"LR",symbol:"emptyCircle",symbolSize:7,expandAndCollapse:!0,initialTreeDepth:2,lineStyle:{color:"#ccc",width:1.5,curveness:.5},itemStyle:{color:"lightsteelblue",borderColor:"#c23531",borderWidth:1.5},label:{show:!0},animationEasing:"linear",animationDuration:700,animationDurationUpdate:500},e}(af);function wI(t,e){for(var n,i=[t];n=i.pop();)if(e(n),n.isExpand){var r=n.children;if(r.length)for(var o=r.length-1;o>=0;o--)i.push(r[o])}}function SI(t,e){t.eachSeriesByType("tree",(function(t){!function(t,e){var n=function(t,e){return Lc(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}(t,e);t.layoutInfo=n;var i=t.get("layout"),r=0,o=0,a=null;"radial"===i?(r=2*Math.PI,o=Math.min(n.height,n.width)/2,a=ZM((function(t,e){return(t.parentNode===e.parentNode?1:2)/t.depth}))):(r=n.width,o=n.height,a=ZM());var s=t.getData().tree.root,l=s.children[0];if(l){!function(t){var e=t;e.hierNode={defaultAncestor:null,ancestor:e,prelim:0,modifier:0,change:0,shift:0,i:0,thread:null};for(var n,i,r=[e];n=r.pop();)if(i=n.children,n.isExpand&&i.length)for(var o=i.length-1;o>=0;o--){var a=i[o];a.hierNode={defaultAncestor:null,ancestor:a,prelim:0,modifier:0,change:0,shift:0,i:o,thread:null},r.push(a)}}(s),function(t,e,n){for(var i,r=[t],o=[];i=r.pop();)if(o.push(i),i.isExpand){var a=i.children;if(a.length)for(var s=0;s<a.length;s++)r.push(a[s])}for(;i=o.pop();)e(i,n)}(l,XM,a),s.hierNode.modifier=-l.hierNode.prelim,wI(l,UM);var u=l,h=l,c=l;wI(l,(function(t){var e=t.getLayout().x;e<u.getLayout().x&&(u=t),e>h.getLayout().x&&(h=t),t.depth>c.depth&&(c=t)}));var p=u===h?1:a(u,h)/2,d=p-u.getLayout().x,f=0,g=0,y=0,v=0;if("radial"===i)f=r/(h.getLayout().x+p+d),g=o/(c.depth-1||1),wI(l,(function(t){y=(t.getLayout().x+d)*f,v=(t.depth-1)*g;var e=jM(y,v);t.setLayout({x:e.x,y:e.y,rawX:y,rawY:v},!0)}));else{var m=t.getOrient();"RL"===m||"LR"===m?(g=o/(h.getLayout().x+p+d),f=r/(c.depth-1||1),wI(l,(function(t){v=(t.getLayout().x+d)*g,y="LR"===m?(t.depth-1)*f:r-(t.depth-1)*f,t.setLayout({x:y,y:v},!0)}))):"TB"!==m&&"BT"!==m||(f=r/(h.getLayout().x+p+d),g=o/(c.depth-1||1),wI(l,(function(t){y=(t.getLayout().x+d)*f,v="TB"===m?(t.depth-1)*g:o-(t.depth-1)*g,t.setLayout({x:y,y:v},!0)})))}}}(t,e)}))}function MI(t){t.eachSeriesByType("tree",(function(t){var e=t.getData();e.tree.eachNode((function(t){var n=t.getModel().getModel("itemStyle").getItemStyle();I(e.ensureUniqueItemVisual(t.dataIndex,"style"),n)}))}))}function II(t,e,n){var i=t.getZoom(),r=t.getCenter(),o=e.zoom,a=t.dataToPoint(r);if(null!=e.dx&&null!=e.dy&&(a[0]-=e.dx,a[1]-=e.dy,t.setCenter(t.pointToData(a))),null!=o){if(n){var s=n.min||0,l=n.max||1/0;o=Math.max(Math.min(i*o,l),s)/i}t.scaleX*=o,t.scaleY*=o;var u=(e.originX-t.x)*(o-1),h=(e.originY-t.y)*(o-1);t.x-=u,t.y-=h,t.updateTransform(),t.setCenter(t.pointToData(a)),t.setZoom(o*i)}return{center:t.getCenter(),zoom:t.getZoom()}}function TI(t,e,n){if(t&&A(e,t.type)>=0){var i=n.getData().tree.root,r=t.targetNode;if("string"==typeof r&&(r=i.getNodeById(r)),r&&i.contains(r))return{node:r};var o=t.targetNodeId;if(null!=o&&(r=i.getNodeById(o)))return{node:r}}}function CI(t){for(var e=[];t;)(t=t.parentNode)&&e.push(t);return e.reverse()}function AI(t,e){return A(CI(t),e)>=0}function DI(t,e){for(var n=[];t;){var i=t.dataIndex;n.push({name:t.name,dataIndex:i,value:e.getRawValue(i)}),t=t.parentNode}return n.reverse(),n}var LI=function(){},kI=["treemapZoomToNode","treemapRender","treemapMove"];function PI(t){var e=t.getData().tree,n={};e.eachNode((function(e){for(var i=e;i&&i.depth>1;)i=i.parentNode;var r=pp(t.ecModel,i.name||i.dataIndex+"",n);e.setVisual("decal",r)}))}var OI=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.preventUsingHoverLayer=!0,n}return n(e,t),e.prototype.getInitialData=function(t,e){var n={name:t.name,children:t.data};RI(n);var i=t.levels||[],r=this.designatedVisualItemStyle={},o=new Ih({itemStyle:r},this,e),a=O((i=t.levels=function(t,e){var n,i,r=br(e.get("color")),o=br(e.get(["aria","decal","decals"]));if(!r)return;P(t=t||[],(function(t){var e=new Ih(t),r=e.get("color"),o=e.get("decal");(e.get(["itemStyle","color"])||r&&"none"!==r)&&(n=!0),(e.get(["itemStyle","decal"])||o&&"none"!==o)&&(i=!0)}));var a=t[0]||(t[0]={});n||(a.color=r.slice());!i&&o&&(a.decal=o.slice());return t}(i,e))||[],(function(t){return new Ih(t,o,e)}),this),s=xI.createTree(n,this,(function(t){t.wrapMethod("getItemModel",(function(t,e){var n=s.getNodeByDataIndex(e),i=a[n.depth];return t.parentModel=i||o,t}))}));return s.data},e.prototype.optionUpdated=function(){this.resetViewRoot()},e.prototype.formatTooltip=function(t,e,n){var i=this.getData(),r=this.getRawValue(t);return Ud("nameValue",{name:i.getName(t),value:r})},e.prototype.getDataParams=function(e){var n=t.prototype.getDataParams.apply(this,arguments),i=this.getData().tree.getNodeByDataIndex(e);return n.treePathInfo=DI(i,this),n},e.prototype.setLayoutInfo=function(t){this.layoutInfo=this.layoutInfo||{},I(this.layoutInfo,t)},e.prototype.mapIdToIndex=function(t){var e=this._idIndexMap;e||(e=this._idIndexMap=ht(),this._idIndexMapCount=0);var n=e.get(t);return null==n&&e.set(t,n=this._idIndexMapCount++),n},e.prototype.getViewRoot=function(){return this._viewRoot},e.prototype.resetViewRoot=function(t){t?this._viewRoot=t:t=this._viewRoot;var e=this.getRawData().tree.root;t&&(t===e||e.contains(t))||(this._viewRoot=e)},e.prototype.enableAriaDecal=function(){PI(this)},e.type="series.treemap",e.layoutMode="box",e.defaultOption={progressive:0,left:"center",top:"middle",width:"80%",height:"80%",sort:!0,clipWindow:"origin",squareRatio:.5*(1+Math.sqrt(5)),leafDepth:null,drillDownIcon:"▶",zoomToNodeRatio:.1024,roam:!0,nodeClick:"zoomToNode",animation:!0,animationDurationUpdate:900,animationEasing:"quinticInOut",breadcrumb:{show:!0,height:22,left:"center",top:"bottom",emptyItemWidth:25,itemStyle:{color:"rgba(0,0,0,0.7)",textStyle:{color:"#fff"}}},label:{show:!0,distance:0,padding:5,position:"inside",color:"#fff",overflow:"truncate"},upperLabel:{show:!1,position:[0,"50%"],height:20,overflow:"truncate",verticalAlign:"middle"},itemStyle:{color:null,colorAlpha:null,colorSaturation:null,borderWidth:0,gapWidth:0,borderColor:"#fff",borderColorSaturation:null},emphasis:{upperLabel:{show:!0,position:[0,"50%"],ellipsis:!0,verticalAlign:"middle"}},visualDimension:0,visualMin:null,visualMax:null,color:[],colorAlpha:null,colorSaturation:null,colorMappingBy:"index",visibleMin:10,childrenVisibleMin:null,levels:[]},e}(af);function RI(t){var e=0;P(t.children,(function(t){RI(t);var n=t.value;F(n)&&(n=n[0]),e+=n}));var n=t.value;F(n)&&(n=n[0]),(null==n||isNaN(n))&&(n=e),n<0&&(n=0),F(t.value)?t.value[0]=n:t.value=n}var NI=function(){function t(t){this.group=new Vi,t.add(this.group)}return t.prototype.render=function(t,e,n,i){var r=t.getModel("breadcrumb"),o=this.group;if(o.removeAll(),r.get("show")&&n){var a=r.getModel("itemStyle"),s=a.getModel("textStyle"),l={pos:{left:r.get("left"),right:r.get("right"),top:r.get("top"),bottom:r.get("bottom")},box:{width:e.getWidth(),height:e.getHeight()},emptyItemWidth:r.get("emptyItemWidth"),totalWidth:0,renderList:[]};this._prepare(n,l,s),this._renderContent(t,l,a,s,i),kc(o,l.pos,l.box)}},t.prototype._prepare=function(t,e,n){for(var i=t;i;i=i.parentNode){var r=Ar(i.getModel().get("name"),""),o=n.getTextRect(r),a=Math.max(o.width+16,e.emptyItemWidth);e.totalWidth+=a+8,e.renderList.push({node:i,text:r,width:a})}},t.prototype._renderContent=function(t,e,n,i,r){for(var o,a,s,l,u,h,c,p,d,f=0,g=e.emptyItemWidth,y=t.get(["breadcrumb","height"]),v=(o=e.pos,a=e.box,l=a.width,u=a.height,h=qi(o.left,l),c=qi(o.top,u),p=qi(o.right,l),d=qi(o.bottom,u),(isNaN(h)||isNaN(parseFloat(o.left)))&&(h=0),(isNaN(p)||isNaN(parseFloat(o.right)))&&(p=l),(isNaN(c)||isNaN(parseFloat(o.top)))&&(c=0),(isNaN(d)||isNaN(parseFloat(o.bottom)))&&(d=u),s=fc(s||0),{width:Math.max(p-h-s[1]-s[3],0),height:Math.max(d-c-s[0]-s[2],0)}),m=e.totalWidth,_=e.renderList,x=_.length-1;x>=0;x--){var b=_[x],w=b.node,S=b.width,M=b.text;m>v.width&&(m-=S-g,S=g,M=null);var I=new $l({shape:{points:EI(f,0,S,y,x===_.length-1,0===x)},style:T(n.getItemStyle(),{lineJoin:"bevel"}),textContent:new hs({style:{text:M,fill:i.getTextColor(),font:i.getFont()}}),textConfig:{position:"inside"},z:10,onclick:V(r,w)});I.disableLabelAnimation=!0,this.group.add(I),zI(I,t,w),f+=S+8}},t.prototype.remove=function(){this.group.removeAll()},t}();function EI(t,e,n,i,r,o){var a=[[r?t:t-5,e],[t+n,e],[t+n,e+i],[r?t:t-5,e+i]];return!o&&a.splice(2,0,[t+n+5,e+i/2]),!r&&a.push([t,e+i/2]),a}function zI(t,e,n){ms(t).eventData={componentType:"series",componentSubType:"treemap",componentIndex:e.componentIndex,seriesIndex:e.componentIndex,seriesName:e.name,seriesType:"treemap",selfType:"breadcrumb",nodeData:{dataIndex:n&&n.dataIndex,name:n&&n.name},treePathInfo:n&&DI(n,e)}}var BI=function(){function t(){this._storage=[],this._elExistsMap={}}return t.prototype.add=function(t,e,n,i,r){return!this._elExistsMap[t.id]&&(this._elExistsMap[t.id]=!0,this._storage.push({el:t,target:e,duration:n,delay:i,easing:r}),!0)},t.prototype.finished=function(t){return this._finishedCallback=t,this},t.prototype.start=function(){for(var t=this,e=this._storage.length,n=function(){--e<=0&&(t._storage.length=0,t._elExistsMap={},t._finishedCallback&&t._finishedCallback())},i=0,r=this._storage.length;i<r;i++){var o=this._storage[i];o.el.animateTo(o.target,{duration:o.duration,delay:o.delay,easing:o.easing,setToFinal:!0,done:n,aborted:n})}return this},t}();var VI=Vi,FI=ss,GI="label",HI="upperLabel",WI=$r([["fill","color"],["stroke","strokeColor"],["lineWidth","strokeWidth"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]),YI=function(t){var e=WI(t);return e.stroke=e.fill=e.lineWidth=null,e},XI=Pr(),UI=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._state="ready",n._storage={nodeGroup:[],background:[],content:[]},n}return n(e,t),e.prototype.render=function(t,e,n,i){if(!(A(e.findComponents({mainType:"series",subType:"treemap",query:i}),t)<0)){this.seriesModel=t,this.api=n,this.ecModel=e;var r=TI(i,["treemapZoomToNode","treemapRootToNode"],t),o=i&&i.type,a=t.layoutInfo,s=!this._oldTree,l=this._storage,u="treemapRootToNode"===o&&r&&l?{rootNodeGroup:l.nodeGroup[r.node.getRawIndex()],direction:i.direction}:null,h=this._giveContainerGroup(a),c=this._doRender(h,t,u);s||o&&"treemapZoomToNode"!==o&&"treemapRootToNode"!==o?c.renderFinally():this._doAnimation(h,c,t,u),this._resetController(n),this._renderBreadcrumb(t,n,r)}},e.prototype._giveContainerGroup=function(t){var e=this._containerGroup;return e||(e=this._containerGroup=new VI,this._initEvents(e),this.group.add(e)),e.x=t.x,e.y=t.y,e},e.prototype._doRender=function(t,e,n){var i=e.getData().tree,r=this._oldTree,o={nodeGroup:[],background:[],content:[]},a={nodeGroup:[],background:[],content:[]},s=this._storage,l=[];function u(t,i,r,u){return function(t,e,n,i,r,o,a,s,l,u){if(!a)return;var h=a.getLayout(),c=t.getData(),p=a.getModel();if(c.setItemGraphicEl(a.dataIndex,null),!h||!h.isInView)return;var d=h.width,f=h.height,g=h.borderWidth,y=h.invisible,v=a.getRawIndex(),m=s&&s.getRawIndex(),_=a.viewChildren,x=h.upperHeight,b=_&&_.length,w=p.getModel("itemStyle"),S=p.getModel(["emphasis","itemStyle"]),M=p.getModel(["blur","itemStyle"]),T=p.getModel(["select","itemStyle"]),C=w.get("borderRadius")||0,A=V("nodeGroup",VI);if(!A)return;if(l.add(A),A.x=h.x||0,A.y=h.y||0,A.markRedraw(),XI(A).nodeWidth=d,XI(A).nodeHeight=f,h.isAboveViewRoot)return A;var D=V("background",FI,u,1);D&&R(A,D,b&&h.upperLabelHeight);var L=p.get(["emphasis","focus"]),k=p.get(["emphasis","blurScope"]),P="ancestor"===L?a.getAncestorsIndices():"descendant"===L?a.getDescendantIndices():null;if(b)al(A)&&ol(A,!1),D&&(ol(D,!0),c.setItemGraphicEl(a.dataIndex,D),el(D,P||L,k));else{var O=V("content",FI,u,2);O&&N(A,O),D&&al(D)&&ol(D,!1),ol(A,!0),c.setItemGraphicEl(a.dataIndex,A),el(A,P||L,k)}return A;function R(e,n,i){var r=ms(n);if(r.dataIndex=a.dataIndex,r.seriesIndex=t.seriesIndex,n.setShape({x:0,y:0,width:d,height:f,r:C}),y)E(n);else{n.invisible=!1;var o=a.getVisual("style"),s=o.stroke,l=YI(w);l.fill=s;var u=WI(S);u.fill=S.get("borderColor");var h=WI(M);h.fill=M.get("borderColor");var c=WI(T);if(c.fill=T.get("borderColor"),i){var p=d-2*g;z(n,s,p,x,o.opacity,{x:g,y:0,width:p,height:x})}else n.removeTextContent();n.setStyle(l),n.ensureState("emphasis").style=u,n.ensureState("blur").style=h,n.ensureState("select").style=c,Ws(n)}e.add(n)}function N(e,n){var i=ms(n);i.dataIndex=a.dataIndex,i.seriesIndex=t.seriesIndex;var r=Math.max(d-2*g,0),o=Math.max(f-2*g,0);if(n.culling=!0,n.setShape({x:g,y:g,width:r,height:o,r:C}),y)E(n);else{n.invisible=!1;var s=a.getVisual("style"),l=s.fill,u=YI(w);u.fill=l,u.decal=s.decal;var h=WI(S),c=WI(M),p=WI(T);z(n,l,r,s.opacity),n.setStyle(u),n.ensureState("emphasis").style=h,n.ensureState("blur").style=c,n.ensureState("select").style=p,Ws(n)}e.add(n)}function E(t){!t.invisible&&o.push(t)}function z(e,n,i,r,o,s){var l=p.getModel(s?HI:GI),u=Q(t.getFormattedLabel(a.dataIndex,"normal",null,null,l.get("formatter")),Ar(p.get("name"),null));if(!s&&h.isLeafRoot){var c=t.get("drillDownIcon",!0);u=c?c+" "+u:u}var d=l.getShallow("show");nh(e,ih(p,s?HI:GI),{defaultText:d?u:null,inheritColor:n,defaultOpacity:i,labelFetcher:t,labelDataIndex:a.dataIndex});var f=e.getTextContent(),g=f.style,y=it(g.padding||0);s&&(e.setTextConfig({layoutRect:s}),f.disableLabelLayout=!0),f.beforeUpdate=function(){var t=Math.max((s?s.width:e.shape.width)-y[1]-y[3],0),n=Math.max((s?s.height:e.shape.height)-y[0]-y[2],0);g.width===t&&g.height===n||f.setStyle({width:t,height:n})},g.truncateMinChar=2,g.lineOverflow="truncate",B(g,s,h);var v=f.getState("emphasis");B(v?v.style:null,s,h)}function B(e,n,i){var r=e?e.text:null;if(!n&&i.isLeafRoot&&null!=r){var o=t.get("drillDownIcon",!0);e.text=o?o+" "+r:r}}function V(t,i,o,a){var s=null!=m&&n[t][m],l=r[t];return s?(n[t][m]=null,F(l,s)):y||((s=new i)instanceof wo&&(s.z=function(t,e){var n=10*t+e;return(n-1)/n}(o,a)),G(l,s)),e[t][v]=s}function F(t,e){var n=t[v]={};e instanceof VI?(n.oldX=e.x,n.oldY=e.y):n.oldShape=I({},e.shape)}function G(t,e){var n=t[v]={},o=a.parentNode,s=e instanceof Vi;if(o&&(!i||"drillDown"===i.direction)){var l=0,u=0,h=r.background[o.getRawIndex()];!i&&h&&h.oldShape&&(l=h.oldShape.width,u=h.oldShape.height),s?(n.oldX=0,n.oldY=u):n.oldShape={x:l,y:u,width:0,height:0}}n.fadein=!s}}(e,a,s,n,o,l,t,i,r,u)}!function t(e,n,i,r,o){r?(n=e,P(e,(function(t,e){!t.isRemoved()&&s(e,e)}))):new am(n,e,a,a).add(s).update(s).remove(V(s,null)).execute();function a(t){return t.getId()}function s(a,s){var l=null!=a?e[a]:null,h=null!=s?n[s]:null,c=u(l,h,i,o);c&&t(l&&l.viewChildren||[],h&&h.viewChildren||[],c,r,o+1)}}(i.root?[i.root]:[],r&&r.root?[r.root]:[],t,i===r||!r,0);var h=function(t){var e={nodeGroup:[],background:[],content:[]};return t&&P(t,(function(t,n){var i=e[n];P(t,(function(t){t&&(i.push(t),XI(t).willDelete=!0)}))})),e}(s);return this._oldTree=i,this._storage=a,{lastsForAnimation:o,willDeleteEls:h,renderFinally:function(){P(h,(function(t){P(t,(function(t){t.parent&&t.parent.remove(t)}))})),P(l,(function(t){t.invisible=!0,t.dirty()}))}}},e.prototype._doAnimation=function(t,e,n,i){if(n.get("animation")){var r=n.get("animationDurationUpdate"),o=n.get("animationEasing"),a=(G(r)?0:r)||0,s=(G(o)?null:o)||"cubicOut",l=new BI;P(e.willDeleteEls,(function(t,e){P(t,(function(t,n){if(!t.invisible){var r,o=t.parent,u=XI(o);if(i&&"drillDown"===i.direction)r=o===i.rootNodeGroup?{shape:{x:0,y:0,width:u.nodeWidth,height:u.nodeHeight},style:{opacity:0}}:{style:{opacity:0}};else{var h=0,c=0;u.willDelete||(h=u.nodeWidth/2,c=u.nodeHeight/2),r="nodeGroup"===e?{x:h,y:c,style:{opacity:0}}:{shape:{x:h,y:c,width:0,height:0},style:{opacity:0}}}r&&l.add(t,r,a,0,s)}}))})),P(this._storage,(function(t,n){P(t,(function(t,i){var r=e.lastsForAnimation[n][i],o={};r&&(t instanceof Vi?null!=r.oldX&&(o.x=t.x,o.y=t.y,t.x=r.oldX,t.y=r.oldY):(r.oldShape&&(o.shape=I({},t.shape),t.setShape(r.oldShape)),r.fadein?(t.setStyle("opacity",0),o.style={opacity:1}):1!==t.style.opacity&&(o.style={opacity:1})),l.add(t,o,a,0,s))}))}),this),this._state="animating",l.finished(B((function(){this._state="ready",e.renderFinally()}),this)).start()}},e.prototype._resetController=function(t){var e=this._controller;e||((e=this._controller=new eM(t.getZr())).enable(this.seriesModel.get("roam")),e.on("pan",B(this._onPan,this)),e.on("zoom",B(this._onZoom,this)));var n=new En(0,0,t.getWidth(),t.getHeight());e.setPointerChecker((function(t,e,i){return n.contain(e,i)}))},e.prototype._clearController=function(){var t=this._controller;t&&(t.dispose(),t=null)},e.prototype._onPan=function(t){if("animating"!==this._state&&(Math.abs(t.dx)>3||Math.abs(t.dy)>3)){var e=this.seriesModel.getData().tree.root;if(!e)return;var n=e.getLayout();if(!n)return;this.api.dispatchAction({type:"treemapMove",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:n.x+t.dx,y:n.y+t.dy,width:n.width,height:n.height}})}},e.prototype._onZoom=function(t){var e=t.originX,n=t.originY;if("animating"!==this._state){var i=this.seriesModel.getData().tree.root;if(!i)return;var r=i.getLayout();if(!r)return;var o=new En(r.x,r.y,r.width,r.height),a=this.seriesModel.layoutInfo,s=[1,0,0,1,0,0];xe(s,s,[-(e-=a.x),-(n-=a.y)]),we(s,s,[t.scale,t.scale]),xe(s,s,[e,n]),o.applyTransform(s),this.api.dispatchAction({type:"treemapRender",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:o.x,y:o.y,width:o.width,height:o.height}})}},e.prototype._initEvents=function(t){var e=this;t.on("click",(function(t){if("ready"===e._state){var n=e.seriesModel.get("nodeClick",!0);if(n){var i=e.findTarget(t.offsetX,t.offsetY);if(i){var r=i.node;if(r.getLayout().isLeafRoot)e._rootToNode(i);else if("zoomToNode"===n)e._zoomToNode(i);else if("link"===n){var o=r.hostTree.data.getItemModel(r.dataIndex),a=o.get("link",!0),s=o.get("target",!0)||"blank";a&&Mc(a,s)}}}}}),this)},e.prototype._renderBreadcrumb=function(t,e,n){var i=this;n||(n=null!=t.get("leafDepth",!0)?{node:t.getViewRoot()}:this.findTarget(e.getWidth()/2,e.getHeight()/2))||(n={node:t.getData().tree.root}),(this._breadcrumb||(this._breadcrumb=new NI(this.group))).render(t,e,n.node,(function(e){"animating"!==i._state&&(AI(t.getViewRoot(),e)?i._rootToNode({node:e}):i._zoomToNode({node:e}))}))},e.prototype.remove=function(){this._clearController(),this._containerGroup&&this._containerGroup.removeAll(),this._storage={nodeGroup:[],background:[],content:[]},this._state="ready",this._breadcrumb&&this._breadcrumb.remove()},e.prototype.dispose=function(){this._clearController()},e.prototype._zoomToNode=function(t){this.api.dispatchAction({type:"treemapZoomToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:t.node})},e.prototype._rootToNode=function(t){this.api.dispatchAction({type:"treemapRootToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:t.node})},e.prototype.findTarget=function(t,e){var n;return this.seriesModel.getViewRoot().eachNode({attr:"viewChildren",order:"preorder"},(function(i){var r=this._storage.background[i.getRawIndex()];if(r){var o=r.transformCoordToLocal(t,e),a=r.shape;if(!(a.x<=o[0]&&o[0]<=a.x+a.width&&a.y<=o[1]&&o[1]<=a.y+a.height))return!1;n={node:i,offsetX:o[0],offsetY:o[1]}}}),this),n},e.type="treemap",e}(mf);var ZI=P,jI=X,qI=-1,KI=function(){function t(e){var n=e.mappingMethod,i=e.type,r=this.option=w(e);this.type=i,this.mappingMethod=n,this._normalizeData=aT[n];var o=t.visualHandlers[i];this.applyVisual=o.applyVisual,this.getColorMapper=o.getColorMapper,this._normalizedToVisual=o._normalizedToVisual[n],"piecewise"===n?($I(r),function(t){var e=t.pieceList;t.hasSpecialVisual=!1,P(e,(function(e,n){e.originIndex=n,null!=e.visual&&(t.hasSpecialVisual=!0)}))}(r)):"category"===n?r.categories?function(t){var e=t.categories,n=t.categoryMap={},i=t.visual;if(ZI(e,(function(t,e){n[t]=e})),!F(i)){var r=[];X(i)?ZI(i,(function(t,e){var i=n[e];r[null!=i?i:qI]=t})):r[-1]=i,i=oT(t,r)}for(var o=e.length-1;o>=0;o--)null==i[o]&&(delete n[e[o]],e.pop())}(r):$I(r,!0):(rt("linear"!==n||r.dataExtent),$I(r))}return t.prototype.mapValueToVisual=function(t){var e=this._normalizeData(t);return this._normalizedToVisual(e,t)},t.prototype.getNormalizer=function(){return B(this._normalizeData,this)},t.listVisualTypes=function(){return z(t.visualHandlers)},t.isValidType=function(e){return t.visualHandlers.hasOwnProperty(e)},t.eachVisual=function(t,e,n){X(t)?P(t,e,n):e.call(n,t)},t.mapVisual=function(e,n,i){var r,o=F(e)?[]:X(e)?{}:(r=!0,null);return t.eachVisual(e,(function(t,e){var a=n.call(i,t,e);r?o=a:o[e]=a})),o},t.retrieveVisuals=function(e){var n,i={};return e&&ZI(t.visualHandlers,(function(t,r){e.hasOwnProperty(r)&&(i[r]=e[r],n=!0)})),n?i:null},t.prepareVisualTypes=function(t){if(F(t))t=t.slice();else{if(!jI(t))return[];var e=[];ZI(t,(function(t,n){e.push(n)})),t=e}return t.sort((function(t,e){return"color"===e&&"color"!==t&&0===t.indexOf("color")?1:-1})),t},t.dependsOn=function(t,e){return"color"===e?!(!t||0!==t.indexOf(e)):t===e},t.findPieceIndex=function(t,e,n){for(var i,r=1/0,o=0,a=e.length;o<a;o++){var s=e[o].value;if(null!=s){if(s===t||"string"==typeof s&&s===t+"")return o;n&&c(s,o)}}for(o=0,a=e.length;o<a;o++){var l=e[o],u=l.interval,h=l.close;if(u){if(u[0]===-1/0){if(sT(h[1],t,u[1]))return o}else if(u[1]===1/0){if(sT(h[0],u[0],t))return o}else if(sT(h[0],u[0],t)&&sT(h[1],t,u[1]))return o;n&&c(u[0],o),n&&c(u[1],o)}}if(n)return t===1/0?e.length-1:t===-1/0?0:i;function c(e,n){var o=Math.abs(e-t);o<r&&(r=o,i=n)}},t.visualHandlers={color:{applyVisual:tT("color"),getColorMapper:function(){var t=this.option;return B("category"===t.mappingMethod?function(t,e){return!e&&(t=this._normalizeData(t)),eT.call(this,t)}:function(e,n,i){var r=!!i;return!n&&(e=this._normalizeData(e)),i=en(e,t.parsedVisual,i),r?i:ln(i,"rgba")},this)},_normalizedToVisual:{linear:function(t){return ln(en(t,this.option.parsedVisual),"rgba")},category:eT,piecewise:function(t,e){var n=rT.call(this,e);return null==n&&(n=ln(en(t,this.option.parsedVisual),"rgba")),n},fixed:nT}},colorHue:JI((function(t,e){return an(t,e)})),colorSaturation:JI((function(t,e){return an(t,null,e)})),colorLightness:JI((function(t,e){return an(t,null,null,e)})),colorAlpha:JI((function(t,e){return sn(t,e)})),decal:{applyVisual:tT("decal"),_normalizedToVisual:{linear:null,category:eT,piecewise:null,fixed:null}},opacity:{applyVisual:tT("opacity"),_normalizedToVisual:iT([0,1])},liftZ:{applyVisual:tT("liftZ"),_normalizedToVisual:{linear:nT,category:nT,piecewise:nT,fixed:nT}},symbol:{applyVisual:function(t,e,n){n("symbol",this.mapValueToVisual(t))},_normalizedToVisual:{linear:QI,category:eT,piecewise:function(t,e){var n=rT.call(this,e);return null==n&&(n=QI.call(this,t)),n},fixed:nT}},symbolSize:{applyVisual:tT("symbolSize"),_normalizedToVisual:iT([0,1])}},t}();function $I(t,e){var n=t.visual,i=[];X(n)?ZI(n,(function(t){i.push(t)})):null!=n&&i.push(n);e||1!==i.length||{color:1,symbol:1}.hasOwnProperty(t.type)||(i[1]=i[0]),oT(t,i)}function JI(t){return{applyVisual:function(e,n,i){var r=this.mapValueToVisual(e);i("color",t(n("color"),r))},_normalizedToVisual:iT([0,1])}}function QI(t){var e=this.option.visual;return e[Math.round(ji(t,[0,1],[0,e.length-1],!0))]||{}}function tT(t){return function(e,n,i){i(t,this.mapValueToVisual(e))}}function eT(t){var e=this.option.visual;return e[this.option.loop&&t!==qI?t%e.length:t]}function nT(){return this.option.visual[0]}function iT(t){return{linear:function(e){return ji(e,t,this.option.visual,!0)},category:eT,piecewise:function(e,n){var i=rT.call(this,n);return null==i&&(i=ji(e,t,this.option.visual,!0)),i},fixed:nT}}function rT(t){var e=this.option,n=e.pieceList;if(e.hasSpecialVisual){var i=n[KI.findPieceIndex(t,n)];if(i&&i.visual)return i.visual[this.type]}}function oT(t,e){return t.visual=e,"color"===t.type&&(t.parsedVisual=O(e,(function(t){return $e(t)}))),e}var aT={linear:function(t){return ji(t,this.option.dataExtent,[0,1],!0)},piecewise:function(t){var e=this.option.pieceList,n=KI.findPieceIndex(t,e,!0);if(null!=n)return ji(n,[0,e.length-1],[0,1],!0)},category:function(t){var e=this.option.categories?this.option.categoryMap[t]:t;return null==e?qI:e},fixed:ft};function sT(t,e,n){return t?e<=n:e<n}var lT=Pr(),uT={seriesType:"treemap",reset:function(t){var e=t.getData().tree.root;e.isRemoved()||hT(e,{},t.getViewRoot().getAncestors(),t)}};function hT(t,e,n,i){var r=t.getModel(),o=t.getLayout(),a=t.hostTree.data;if(o&&!o.invisible&&o.isInView){var s,l=r.getModel("itemStyle"),u=function(t,e,n){var i=I({},e),r=n.designatedVisualItemStyle;return P(["color","colorAlpha","colorSaturation"],(function(n){r[n]=e[n];var o=t.get(n);r[n]=null,null!=o&&(i[n]=o)})),i}(l,e,i),h=a.ensureUniqueItemVisual(t.dataIndex,"style"),c=l.get("borderColor"),p=l.get("borderColorSaturation");null!=p&&(c=function(t,e){return null!=e?an(e,null,null,t):null}(p,s=cT(u))),h.stroke=c;var d=t.viewChildren;if(d&&d.length){var f=function(t,e,n,i,r,o){if(!o||!o.length)return;var a=dT(e,"color")||null!=r.color&&"none"!==r.color&&(dT(e,"colorAlpha")||dT(e,"colorSaturation"));if(!a)return;var s=e.get("visualMin"),l=e.get("visualMax"),u=n.dataExtent.slice();null!=s&&s<u[0]&&(u[0]=s),null!=l&&l>u[1]&&(u[1]=l);var h=e.get("colorMappingBy"),c={type:a.name,dataExtent:u,visual:a.range};"color"!==c.type||"index"!==h&&"id"!==h?c.mappingMethod="linear":(c.mappingMethod="category",c.loop=!0);var p=new KI(c);return lT(p).drColorMappingBy=h,p}(0,r,o,0,u,d);P(d,(function(t,e){if(t.depth>=n.length||t===n[t.depth]){var o=function(t,e,n,i,r,o){var a=I({},e);if(r){var s=r.type,l="color"===s&&lT(r).drColorMappingBy,u="index"===l?i:"id"===l?o.mapIdToIndex(n.getId()):n.getValue(t.get("visualDimension"));a[s]=r.mapValueToVisual(u)}return a}(r,u,t,e,f,i);hT(t,o,n,i)}}))}else s=cT(u),h.fill=s}}function cT(t){var e=pT(t,"color");if(e){var n=pT(t,"colorAlpha"),i=pT(t,"colorSaturation");return i&&(e=an(e,null,null,i)),n&&(e=sn(e,n)),e}}function pT(t,e){var n=t[e];if(null!=n&&"none"!==n)return n}function dT(t,e){var n=t.get(e);return F(n)&&n.length?{name:e,range:n}:null}var fT=Math.max,gT=Math.min,yT=Q,vT=P,mT=["itemStyle","borderWidth"],_T=["itemStyle","gapWidth"],xT=["upperLabel","show"],bT=["upperLabel","height"],wT={seriesType:"treemap",reset:function(t,e,n,i){var r=n.getWidth(),o=n.getHeight(),a=t.option,s=Lc(t.getBoxLayoutParams(),{width:n.getWidth(),height:n.getHeight()}),l=a.size||[],u=qi(yT(s.width,l[0]),r),h=qi(yT(s.height,l[1]),o),c=i&&i.type,p=TI(i,["treemapZoomToNode","treemapRootToNode"],t),d="treemapRender"===c||"treemapMove"===c?i.rootRect:null,f=t.getViewRoot(),g=CI(f);if("treemapMove"!==c){var y="treemapZoomToNode"===c?function(t,e,n,i,r){var o,a=(e||{}).node,s=[i,r];if(!a||a===n)return s;var l=i*r,u=l*t.option.zoomToNodeRatio;for(;o=a.parentNode;){for(var h=0,c=o.children,p=0,d=c.length;p<d;p++)h+=c[p].getValue();var f=a.getValue();if(0===f)return s;u*=h/f;var g=o.getModel(),y=g.get(mT);(u+=4*y*y+(3*y+Math.max(y,CT(g)))*Math.pow(u,.5))>nr&&(u=nr),a=o}u<l&&(u=l);var v=Math.pow(u/l,.5);return[i*v,r*v]}(t,p,f,u,h):d?[d.width,d.height]:[u,h],v=a.sort;v&&"asc"!==v&&"desc"!==v&&(v="desc");var m={squareRatio:a.squareRatio,sort:v,leafDepth:a.leafDepth};f.hostTree.clearLayouts();var _={x:0,y:0,width:y[0],height:y[1],area:y[0]*y[1]};f.setLayout(_),ST(f,m,!1,0),_=f.getLayout(),vT(g,(function(t,e){var n=(g[e+1]||f).getValue();t.setLayout(I({dataExtent:[n,n],borderWidth:0,upperHeight:0},_))}))}var x=t.getData().tree.root;x.setLayout(function(t,e,n){if(e)return{x:e.x,y:e.y};var i={x:0,y:0};if(!n)return i;var r=n.node,o=r.getLayout();if(!o)return i;var a=[o.width/2,o.height/2],s=r;for(;s;){var l=s.getLayout();a[0]+=l.x,a[1]+=l.y,s=s.parentNode}return{x:t.width/2-a[0],y:t.height/2-a[1]}}(s,d,p),!0),t.setLayoutInfo(s),TT(x,new En(-s.x,-s.y,r,o),g,f,0)}};function ST(t,e,n,i){var r,o;if(!t.isRemoved()){var a=t.getLayout();r=a.width,o=a.height;var s=t.getModel(),l=s.get(mT),u=s.get(_T)/2,h=CT(s),c=Math.max(l,h),p=l-u,d=c-u;t.setLayout({borderWidth:l,upperHeight:c,upperLabelHeight:h},!0);var f=(r=fT(r-2*p,0))*(o=fT(o-p-d,0)),g=function(t,e,n,i,r,o){var a=t.children||[],s=i.sort;"asc"!==s&&"desc"!==s&&(s=null);var l=null!=i.leafDepth&&i.leafDepth<=o;if(r&&!l)return t.viewChildren=[];!function(t,e){e&&t.sort((function(t,n){var i="asc"===e?t.getValue()-n.getValue():n.getValue()-t.getValue();return 0===i?"asc"===e?t.dataIndex-n.dataIndex:n.dataIndex-t.dataIndex:i}))}(a=N(a,(function(t){return!t.isRemoved()})),s);var u=function(t,e,n){for(var i=0,r=0,o=e.length;r<o;r++)i+=e[r].getValue();var a,s=t.get("visualDimension");e&&e.length?"value"===s&&n?(a=[e[e.length-1].getValue(),e[0].getValue()],"asc"===n&&a.reverse()):(a=[1/0,-1/0],vT(e,(function(t){var e=t.getValue(s);e<a[0]&&(a[0]=e),e>a[1]&&(a[1]=e)}))):a=[NaN,NaN];return{sum:i,dataExtent:a}}(e,a,s);if(0===u.sum)return t.viewChildren=[];if(u.sum=function(t,e,n,i,r){if(!i)return n;for(var o=t.get("visibleMin"),a=r.length,s=a,l=a-1;l>=0;l--){var u=r["asc"===i?a-l-1:l].getValue();u/n*e<o&&(s=l,n-=u)}return"asc"===i?r.splice(0,a-s):r.splice(s,a-s),n}(e,n,u.sum,s,a),0===u.sum)return t.viewChildren=[];for(var h=0,c=a.length;h<c;h++){var p=a[h].getValue()/u.sum*n;a[h].setLayout({area:p})}l&&(a.length&&t.setLayout({isLeafRoot:!0},!0),a.length=0);return t.viewChildren=a,t.setLayout({dataExtent:u.dataExtent},!0),a}(t,s,f,e,n,i);if(g.length){var y={x:p,y:d,width:r,height:o},v=gT(r,o),m=1/0,_=[];_.area=0;for(var x=0,b=g.length;x<b;){var w=g[x];_.push(w),_.area+=w.getLayout().area;var S=MT(_,v,e.squareRatio);S<=m?(x++,m=S):(_.area-=_.pop().getLayout().area,IT(_,v,y,u,!1),v=gT(y.width,y.height),_.length=_.area=0,m=1/0)}if(_.length&&IT(_,v,y,u,!0),!n){var M=s.get("childrenVisibleMin");null!=M&&f<M&&(n=!0)}for(x=0,b=g.length;x<b;x++)ST(g[x],e,n,i+1)}}}function MT(t,e,n){for(var i=0,r=1/0,o=0,a=void 0,s=t.length;o<s;o++)(a=t[o].getLayout().area)&&(a<r&&(r=a),a>i&&(i=a));var l=t.area*t.area,u=e*e*n;return l?fT(u*i/l,l/(u*r)):1/0}function IT(t,e,n,i,r){var o=e===n.width?0:1,a=1-o,s=["x","y"],l=["width","height"],u=n[s[o]],h=e?t.area/e:0;(r||h>n[l[a]])&&(h=n[l[a]]);for(var c=0,p=t.length;c<p;c++){var d=t[c],f={},g=h?d.getLayout().area/h:0,y=f[l[a]]=fT(h-2*i,0),v=n[s[o]]+n[l[o]]-u,m=c===p-1||v<g?v:g,_=f[l[o]]=fT(m-2*i,0);f[s[a]]=n[s[a]]+gT(i,y/2),f[s[o]]=u+gT(i,_/2),u+=m,d.setLayout(f,!0)}n[s[a]]+=h,n[l[a]]-=h}function TT(t,e,n,i,r){var o=t.getLayout(),a=n[r],s=a&&a===t;if(!(a&&!s||r===n.length&&t!==i)){t.setLayout({isInView:!0,invisible:!s&&!e.intersect(o),isAboveViewRoot:s},!0);var l=new En(e.x-o.x,e.y-o.y,e.width,e.height);vT(t.viewChildren||[],(function(t){TT(t,l,n,i,r+1)}))}}function CT(t){return t.get(xT)?t.get(bT):0}function AT(t){var e=t.findComponents({mainType:"legend"});e&&e.length&&t.eachSeriesByType("graph",(function(t){var n=t.getCategoriesData(),i=t.getGraph().data,r=n.mapArray(n.getName);i.filterSelf((function(t){var n=i.getItemModel(t).getShallow("category");if(null!=n){"number"==typeof n&&(n=r[n]);for(var o=0;o<e.length;o++)if(!e[o].isSelected(n))return!1}return!0}))}))}function DT(t){var e={};t.eachSeriesByType("graph",(function(t){var n=t.getCategoriesData(),i=t.getData(),r={};n.each((function(i){var o=n.getName(i);r["ec-"+o]=i;var a=n.getItemModel(i),s=a.getModel("itemStyle").getItemStyle();s.fill||(s.fill=t.getColorFromPalette(o,e)),n.setItemVisual(i,"style",s);for(var l=["symbol","symbolSize","symbolKeepAspect"],u=0;u<l.length;u++){var h=a.getShallow(l[u],!0);null!=h&&n.setItemVisual(i,l[u],h)}})),n.count()&&i.each((function(t){var e=i.getItemModel(t).getShallow("category");if(null!=e){"string"==typeof e&&(e=r["ec-"+e]);var o=n.getItemVisual(e,"style");I(i.ensureUniqueItemVisual(t,"style"),o);for(var a=["symbol","symbolSize","symbolKeepAspect"],s=0;s<a.length;s++)i.setItemVisual(t,a[s],n.getItemVisual(e,a[s]))}}))}))}function LT(t){return t instanceof Array||(t=[t,t]),t}function kT(t){t.eachSeriesByType("graph",(function(t){var e=t.getGraph(),n=t.getEdgeData(),i=LT(t.get("edgeSymbol")),r=LT(t.get("edgeSymbolSize"));n.setVisual("fromSymbol",i&&i[0]),n.setVisual("toSymbol",i&&i[1]),n.setVisual("fromSymbolSize",r&&r[0]),n.setVisual("toSymbolSize",r&&r[1]),n.setVisual("style",t.getModel("lineStyle").getLineStyle()),n.each((function(t){var i=n.getItemModel(t),r=e.getEdgeByIndex(t),o=LT(i.getShallow("symbol",!0)),a=LT(i.getShallow("symbolSize",!0)),s=i.getModel("lineStyle").getLineStyle(),l=n.ensureUniqueItemVisual(t,"style");switch(I(l,s),l.stroke){case"source":var u=r.node1.getVisual("style");l.stroke=u&&u.fill;break;case"target":u=r.node2.getVisual("style");l.stroke=u&&u.fill}o[0]&&r.setVisual("fromSymbol",o[0]),o[1]&&r.setVisual("toSymbol",o[1]),a[0]&&r.setVisual("fromSymbolSize",a[0]),a[1]&&r.setVisual("toSymbolSize",a[1])}))}))}var PT="--\x3e",OT=function(t){return t.get("autoCurveness")||null},RT=function(t,e){var n=OT(t),i=20,r=[];if("number"==typeof n)i=n;else if(F(n))return void(t.__curvenessList=n);e>i&&(i=e);var o=i%2?i+2:i+3;r=[];for(var a=0;a<o;a++)r.push((a%2?a+1:a)/10*(a%2?-1:1));t.__curvenessList=r},NT=function(t,e,n){var i=[t.id,t.dataIndex].join("."),r=[e.id,e.dataIndex].join(".");return[n.uid,i,r].join(PT)},ET=function(t){var e=t.split(PT);return[e[0],e[2],e[1]].join(PT)},zT=function(t,e){var n=e.__edgeMap;return n[t]?n[t].length:0};function BT(t,e,n,i){var r=OT(e),o=F(r);if(!r)return null;var a=function(t,e){var n=NT(t.node1,t.node2,e);return e.__edgeMap[n]}(t,e);if(!a)return null;for(var s=-1,l=0;l<a.length;l++)if(a[l]===n){s=l;break}var u=function(t,e){return zT(NT(t.node1,t.node2,e),e)+zT(NT(t.node2,t.node1,e),e)}(t,e);RT(e,u),t.lineStyle=t.lineStyle||{};var h=NT(t.node1,t.node2,e),c=e.__curvenessList,p=o||u%2?0:1;if(a.isForward)return c[p+s];var d=ET(h),f=zT(d,e),g=c[s+f+p];return i?o?r&&0===r[0]?(f+p)%2?g:-g:((f%2?0:1)+p)%2?g:-g:(f+p)%2?g:-g:c[s+f+p]}function VT(t){var e=t.coordinateSystem;if(!e||"view"===e.type){var n=t.getGraph();n.eachNode((function(t){var e=t.getModel();t.setLayout([+e.get("x"),+e.get("y")])})),FT(n,t)}}function FT(t,e){t.eachEdge((function(t,n){var i=et(t.getModel().get(["lineStyle","curveness"]),-BT(t,e,n,!0),0),r=xt(t.node1.getLayout()),o=xt(t.node2.getLayout()),a=[r,o];+i&&a.push([(r[0]+o[0])/2-(r[1]-o[1])*i,(r[1]+o[1])/2-(o[0]-r[0])*i]),t.setLayout(a)}))}function GT(t,e){t.eachSeriesByType("graph",(function(t){var e=t.get("layout"),n=t.coordinateSystem;if(n&&"view"!==n.type){var i=t.getData(),r=[];P(n.dimensions,(function(t){r=r.concat(i.mapDimensionsAll(t))}));for(var o=0;o<i.count();o++){for(var a=[],s=!1,l=0;l<r.length;l++){var u=i.get(r[l],o);isNaN(u)||(s=!0),a.push(u)}s?i.setItemLayout(o,n.dataToPoint(a)):i.setItemLayout(o,[NaN,NaN])}FT(i.graph,t)}else e&&"none"!==e||VT(t)}))}function HT(t){var e=t.coordinateSystem;if("view"!==e.type)return 1;var n=t.option.nodeScaleRatio,i=e.scaleX;return((e.getZoom()-1)*n+1)/i}function WT(t){var e=t.getVisual("symbolSize");return e instanceof Array&&(e=(e[0]+e[1])/2),+e}var YT=Math.PI,XT=[];function UT(t,e){var n=t.coordinateSystem;if(!n||"view"===n.type){var i=n.getBoundingRect(),r=t.getData(),o=r.graph,a=i.width/2+i.x,s=i.height/2+i.y,l=Math.min(i.width,i.height)/2,u=r.count();r.setLayout({cx:a,cy:s}),u&&(ZT[e](t,o,r,l,a,s,u),o.eachEdge((function(e,n){var i,r=et(e.getModel().get(["lineStyle","curveness"]),BT(e,t,n),0),o=xt(e.node1.getLayout()),l=xt(e.node2.getLayout()),u=(o[0]+l[0])/2,h=(o[1]+l[1])/2;+r&&(i=[a*(r*=3)+u*(1-r),s*r+h*(1-r)]),e.setLayout([o,l,i])})))}}var ZT={value:function(t,e,n,i,r,o,a){var s=0,l=n.getSum("value"),u=2*Math.PI/(l||a);e.eachNode((function(t){var e=t.getValue("value"),n=u*(l?e:1)/2;s+=n,t.setLayout([i*Math.cos(s)+r,i*Math.sin(s)+o]),s+=n}))},symbolSize:function(t,e,n,i,r,o,a){var s=0;XT.length=a;var l=HT(t);e.eachNode((function(t){var e=WT(t);isNaN(e)&&(e=2),e<0&&(e=0),e*=l;var n=Math.asin(e/2/i);isNaN(n)&&(n=YT/2),XT[t.dataIndex]=n,s+=2*n}));var u=(2*YT-s)/a/2,h=0;e.eachNode((function(t){var e=u+XT[t.dataIndex];h+=e,t.setLayout([i*Math.cos(h)+r,i*Math.sin(h)+o]),h+=e}))}};function jT(t){t.eachSeriesByType("graph",(function(t){"circular"===t.get("layout")&&UT(t,"symbolSize")}))}var qT=St;function KT(t){t.eachSeriesByType("graph",(function(t){var e=t.coordinateSystem;if(!e||"view"===e.type)if("force"===t.get("layout")){var n=t.preservedPoints||{},i=t.getGraph(),r=i.data,o=i.edgeData,a=t.getModel("force"),s=a.get("initLayout");t.preservedPoints?r.each((function(t){var e=r.getId(t);r.setItemLayout(t,n[e]||[NaN,NaN])})):s&&"none"!==s?"circular"===s&&UT(t,"value"):VT(t);var l=r.getDataExtent("value"),u=o.getDataExtent("value"),h=a.get("repulsion"),c=a.get("edgeLength"),p=F(h)?h:[h,h],d=F(c)?c:[c,c];d=[d[1],d[0]];var f=r.mapArray("value",(function(t,e){var n=r.getItemLayout(e),i=ji(t,l,p);return isNaN(i)&&(i=(p[0]+p[1])/2),{w:i,rep:i,fixed:r.getItemModel(e).get("fixed"),p:!n||isNaN(n[0])||isNaN(n[1])?null:n}})),g=o.mapArray("value",(function(e,n){var r=i.getEdgeByIndex(n),o=ji(e,u,d);isNaN(o)&&(o=(d[0]+d[1])/2);var a=r.getModel(),s=et(r.getModel().get(["lineStyle","curveness"]),-BT(r,t,n,!0),0);return{n1:f[r.node1.dataIndex],n2:f[r.node2.dataIndex],d:o,curveness:s,ignoreForceLayout:a.get("ignoreForceLayout")}})),y=e.getBoundingRect(),v=function(t,e,n){for(var i=t,r=e,o=n.rect,a=o.width,s=o.height,l=[o.x+a/2,o.y+s/2],u=null==n.gravity?.1:n.gravity,h=0;h<i.length;h++){var c=i[h];c.p||(c.p=mt(a*(Math.random()-.5)+l[0],s*(Math.random()-.5)+l[1])),c.pp=xt(c.p),c.edges=null}var p,d,f=null==n.friction?.6:n.friction,g=f;return{warmUp:function(){g=.8*f},setFixed:function(t){i[t].fixed=!0},setUnfixed:function(t){i[t].fixed=!1},beforeStep:function(t){p=t},afterStep:function(t){d=t},step:function(t){p&&p(i,r);for(var e=[],n=i.length,o=0;o<r.length;o++){var a=r[o];if(!a.ignoreForceLayout){var s=a.n1;Mt(e,(y=a.n2).p,s.p);var h=It(e)-a.d,c=y.w/(s.w+y.w);isNaN(c)&&(c=0),Lt(e,e),!s.fixed&&qT(s.p,s.p,e,c*h*g),!y.fixed&&qT(y.p,y.p,e,-(1-c)*h*g)}}for(o=0;o<n;o++)(_=i[o]).fixed||(Mt(e,l,_.p),qT(_.p,_.p,e,u*g));for(o=0;o<n;o++){s=i[o];for(var f=o+1;f<n;f++){var y;Mt(e,(y=i[f]).p,s.p),0===(h=It(e))&&(bt(e,Math.random()-.5,Math.random()-.5),h=1);var v=(s.rep+y.rep)/h/h;!s.fixed&&qT(s.pp,s.pp,e,v),!y.fixed&&qT(y.pp,y.pp,e,-v)}}var m=[];for(o=0;o<n;o++){var _;(_=i[o]).fixed||(Mt(m,_.p,_.pp),qT(_.p,_.p,m,g),_t(_.pp,_.p))}var x=(g*=.992)<.01;d&&d(i,r,x),t&&t(x)}}}(f,g,{rect:y,gravity:a.get("gravity"),friction:a.get("friction")});v.beforeStep((function(t,e){for(var n=0,r=t.length;n<r;n++)t[n].fixed&&_t(t[n].p,i.getNodeByIndex(n).getLayout())})),v.afterStep((function(t,e,o){for(var a=0,s=t.length;a<s;a++)t[a].fixed||i.getNodeByIndex(a).setLayout(t[a].p),n[r.getId(a)]=t[a].p;for(a=0,s=e.length;a<s;a++){var l=e[a],u=i.getEdgeByIndex(a),h=l.n1.p,c=l.n2.p,p=u.getLayout();(p=p?p.slice():[])[0]=p[0]||[],p[1]=p[1]||[],_t(p[0],h),_t(p[1],c),+l.curveness&&(p[2]=[(h[0]+c[0])/2-(h[1]-c[1])*l.curveness,(h[1]+c[1])/2-(c[0]-h[0])*l.curveness]),u.setLayout(p)}})),t.forceLayout=v,t.preservedPoints=n,v.step()}else t.forceLayout=null}))}function $T(t,e){var n=[];return t.eachSeriesByType("graph",(function(t){var i=t.get("coordinateSystem");if(!i||"view"===i){var r=t.getData(),o=[],a=[];ia(r.mapArray((function(t){var e=r.getItemModel(t);return[+e.get("x"),+e.get("y")]})),o,a),a[0]-o[0]==0&&(a[0]+=1,o[0]-=1),a[1]-o[1]==0&&(a[1]+=1,o[1]-=1);var s=(a[0]-o[0])/(a[1]-o[1]),l=function(t,e,n){return Lc(I(t.getBoxLayoutParams(),{aspect:n}),{width:e.getWidth(),height:e.getHeight()})}(t,e,s);isNaN(s)&&(o=[l.x,l.y],a=[l.x+l.width,l.y+l.height]);var u=a[0]-o[0],h=a[1]-o[1],c=l.width,p=l.height,d=t.coordinateSystem=new eI;d.zoomLimit=t.get("scaleLimit"),d.setBoundingRect(o[0],o[1],u,h),d.setViewRect(l.x,l.y,c,p),d.setCenter(t.get("center")),d.setZoom(t.get("zoom")),n.push(d)}})),n}var JT=nu.prototype,QT=au.prototype,tC=function(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.percent=1};!function(t){function e(){return null!==t&&t.apply(this,arguments)||this}n(e,t)}(tC);function eC(t){return isNaN(+t.cpx1)||isNaN(+t.cpy1)}var nC=function(t){function e(e){var n=t.call(this,e)||this;return n.type="ec-line",n}return n(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new tC},e.prototype.buildPath=function(t,e){eC(e)?JT.buildPath.call(this,t,e):QT.buildPath.call(this,t,e)},e.prototype.pointAt=function(t){return eC(this.shape)?JT.pointAt.call(this,t):QT.pointAt.call(this,t)},e.prototype.tangentAt=function(t){var e=this.shape,n=eC(e)?[e.x2-e.x1,e.y2-e.y1]:QT.tangentAt.call(this,t);return Lt(n,n)},e}(qa),iC=["fromSymbol","toSymbol"];function rC(t){return"_"+t+"Type"}function oC(t,e,n){var i=e.getItemVisual(n,t);if(i&&"none"!==i){var r=e.getItemVisual(n,t+"Size"),o=e.getItemVisual(n,t+"Rotate"),a=F(r)?r:[r,r],s=cy(i,-a[0]/2,-a[1]/2,a[0],a[1]);return s.__specifiedRotation=null==o||isNaN(o)?void 0:+o*Math.PI/180||0,s.name=t,s}}function aC(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 sC=function(t){function e(e,n,i){var r=t.call(this)||this;return r._createLine(e,n,i),r}return n(e,t),e.prototype._createLine=function(t,e,n){var i=t.hostModel,r=function(t){var e=new nC({name:"line",subPixelOptimize:!0});return aC(e.shape,t),e}(t.getItemLayout(e));r.shape.percent=0,Eu(r,{shape:{percent:1}},i,e),this.add(r),P(iC,(function(n){var i=oC(n,t,e);this.add(i),this[rC(n)]=t.getItemVisual(e,n)}),this),this._updateCommonStl(t,e,n)},e.prototype.updateData=function(t,e,n){var i=t.hostModel,r=this.childOfName("line"),o=t.getItemLayout(e),a={shape:{}};aC(a.shape,o),Nu(r,a,i,e),P(iC,(function(n){var i=t.getItemVisual(e,n),r=rC(n);if(this[r]!==i){this.remove(this.childOfName(n));var o=oC(n,t,e);this.add(o)}this[r]=i}),this),this._updateCommonStl(t,e,n)},e.prototype.getLinePath=function(){return this.childAt(0)},e.prototype._updateCommonStl=function(t,e,n){var i=t.hostModel,r=this.childOfName("line"),o=n&&n.emphasisLineStyle,a=n&&n.blurLineStyle,s=n&&n.selectLineStyle,l=n&&n.labelStatesModels;if(!n||t.hasItemOption){var u=t.getItemModel(e);o=u.getModel(["emphasis","lineStyle"]).getLineStyle(),a=u.getModel(["blur","lineStyle"]).getLineStyle(),s=u.getModel(["select","lineStyle"]).getLineStyle(),l=ih(u)}var h=t.getItemVisual(e,"style"),c=h.stroke;r.useStyle(h),r.style.fill=null,r.style.strokeNoScale=!0,r.ensureState("emphasis").style=o,r.ensureState("blur").style=a,r.ensureState("select").style=s,P(iC,(function(t){var e=this.childOfName(t);if(e){e.setColor(c),e.style.opacity=h.opacity;for(var n=0;n<ws.length;n++){var i=ws[n],o=r.getState(i);if(o){var a=o.style||{},s=e.ensureState(i),l=s.style||(s.style={});null!=a.stroke&&(l[e.__isEmptyBrush?"stroke":"fill"]=a.stroke),null!=a.opacity&&(l.opacity=a.opacity)}}e.markRedraw()}}),this);var p=i.getRawValue(e);nh(this,l,{labelDataIndex:e,labelFetcher:{getFormattedLabel:function(e,n){return i.getFormattedLabel(e,n,t.dataType)}},inheritColor:c||"#000",defaultOpacity:h.opacity,defaultText:(null==p?t.getName(e):isFinite(p)?Ki(p):p)+""});var d=this.getTextContent();if(d){var f=l.normal;d.__align=d.style.align,d.__verticalAlign=d.style.verticalAlign,d.__position=f.get("position")||"middle";var g=f.get("distance");F(g)||(g=[g,g]),d.__labelDistance=g}this.setTextConfig({position:null,local:!0,inside:!1}),tl(this)},e.prototype.highlight=function(){Ys(this)},e.prototype.downplay=function(){Xs(this)},e.prototype.updateLayout=function(t,e){this.setLinePoints(t.getItemLayout(e))},e.prototype.setLinePoints=function(t){var e=this.childOfName("line");aC(e.shape,t),e.dirty()},e.prototype.beforeUpdate=function(){var t=this,e=t.childOfName("fromSymbol"),n=t.childOfName("toSymbol"),i=t.getTextContent();if(e||n||i&&!i.ignore){for(var r=1,o=this.parent;o;)o.scaleX&&(r/=o.scaleX),o=o.parent;var a=t.childOfName("line");if(this.__dirty||a.__dirty){var s=a.shape.percent,l=a.pointAt(0),u=a.pointAt(s),h=Mt([],u,l);if(Lt(h,h),e&&(e.setPosition(l),S(e,0),e.scaleX=e.scaleY=r*s,e.markRedraw()),n&&(n.setPosition(u),S(n,1),n.scaleX=n.scaleY=r*s,n.markRedraw()),i&&!i.ignore){i.x=i.y=0,i.originX=i.originY=0;var c=void 0,p=void 0,d=i.__labelDistance,f=d[0]*r,g=d[1]*r,y=s/2,v=a.tangentAt(y),m=[v[1],-v[0]],_=a.pointAt(y);m[1]>0&&(m[0]=-m[0],m[1]=-m[1]);var x=v[0]<0?-1:1;if("start"!==i.__position&&"end"!==i.__position){var b=-Math.atan2(v[1],v[0]);u[0]<l[0]&&(b=Math.PI+b),i.rotation=b}var w=void 0;switch(i.__position){case"insideStartTop":case"insideMiddleTop":case"insideEndTop":case"middle":w=-g,p="bottom";break;case"insideStartBottom":case"insideMiddleBottom":case"insideEndBottom":w=g,p="top";break;default:w=0,p="middle"}switch(i.__position){case"end":i.x=h[0]*f+u[0],i.y=h[1]*g+u[1],c=h[0]>.8?"left":h[0]<-.8?"right":"center",p=h[1]>.8?"top":h[1]<-.8?"bottom":"middle";break;case"start":i.x=-h[0]*f+l[0],i.y=-h[1]*g+l[1],c=h[0]>.8?"right":h[0]<-.8?"left":"center",p=h[1]>.8?"bottom":h[1]<-.8?"top":"middle";break;case"insideStartTop":case"insideStart":case"insideStartBottom":i.x=f*x+l[0],i.y=l[1]+w,c=v[0]<0?"right":"left",i.originX=-f*x,i.originY=-w;break;case"insideMiddleTop":case"insideMiddle":case"insideMiddleBottom":case"middle":i.x=_[0],i.y=_[1]+w,c="center",i.originY=-w;break;case"insideEndTop":case"insideEnd":case"insideEndBottom":i.x=-f*x+u[0],i.y=u[1]+w,c=v[0]>=0?"right":"left",i.originX=f*x,i.originY=-w}i.scaleX=i.scaleY=r,i.setStyle({verticalAlign:i.__verticalAlign||p,align:i.__align||c})}}}function S(t,e){var n=t.__specifiedRotation;if(null==n){var i=a.tangentAt(e);t.attr("rotation",(1===e?-1:1)*Math.PI/2-Math.atan2(i[1],i[0]))}else t.attr("rotation",n)}},e}(Vi),lC=function(){function t(t){this.group=new Vi,this._LineCtor=t||sC}return t.prototype.isPersistent=function(){return!0},t.prototype.updateData=function(t){var e=this,n=this,i=n.group,r=n._lineData;n._lineData=t,r||i.removeAll();var o=uC(t);t.diff(r).add((function(n){e._doAdd(t,n,o)})).update((function(n,i){e._doUpdate(r,t,i,n,o)})).remove((function(t){i.remove(r.getItemGraphicEl(t))})).execute()},t.prototype.updateLayout=function(){var t=this._lineData;t&&t.eachItemGraphicEl((function(e,n){e.updateLayout(t,n)}),this)},t.prototype.incrementalPrepareUpdate=function(t){this._seriesScope=uC(t),this._lineData=null,this.group.removeAll()},t.prototype.incrementalUpdate=function(t,e){function n(t){t.isGroup||function(t){return t.animators&&t.animators.length>0}(t)||(t.incremental=!0,t.ensureState("emphasis").hoverLayer=!0)}for(var i=t.start;i<t.end;i++){if(cC(e.getItemLayout(i))){var r=new this._LineCtor(e,i,this._seriesScope);r.traverse(n),this.group.add(r),e.setItemGraphicEl(i,r)}}},t.prototype.remove=function(){this.group.removeAll()},t.prototype._doAdd=function(t,e,n){if(cC(t.getItemLayout(e))){var i=new this._LineCtor(t,e,n);t.setItemGraphicEl(e,i),this.group.add(i)}},t.prototype._doUpdate=function(t,e,n,i,r){var o=t.getItemGraphicEl(n);cC(e.getItemLayout(i))?(o?o.updateData(e,i,r):o=new this._LineCtor(e,i,r),e.setItemGraphicEl(i,o),this.group.add(o)):this.group.remove(o)},t}();function uC(t){var e=t.hostModel;return{lineStyle:e.getModel("lineStyle").getLineStyle(),emphasisLineStyle:e.getModel(["emphasis","lineStyle"]).getLineStyle(),blurLineStyle:e.getModel(["blur","lineStyle"]).getLineStyle(),selectLineStyle:e.getModel(["select","lineStyle"]).getLineStyle(),labelStatesModels:ih(e)}}function hC(t){return isNaN(t[0])||isNaN(t[1])}function cC(t){return!hC(t[0])&&!hC(t[1])}var pC=[],dC=[],fC=[],gC=Wo,yC=Rt,vC=Math.abs;function mC(t,e,n){for(var i,r=t[0],o=t[1],a=t[2],s=1/0,l=n*n,u=.1,h=.1;h<=.9;h+=.1){pC[0]=gC(r[0],o[0],a[0],h),pC[1]=gC(r[1],o[1],a[1],h),(d=vC(yC(pC,e)-l))<s&&(s=d,i=h)}for(var c=0;c<32;c++){var p=i+u;dC[0]=gC(r[0],o[0],a[0],i),dC[1]=gC(r[1],o[1],a[1],i),fC[0]=gC(r[0],o[0],a[0],p),fC[1]=gC(r[1],o[1],a[1],p);var d=yC(dC,e)-l;if(vC(d)<.01)break;var f=yC(fC,e)-l;u/=2,d<0?f>=0?i+=u:i-=u:f>=0?i-=u:i+=u}return i}function _C(t,e){var n=[],i=Uo,r=[[],[],[]],o=[[],[]],a=[];e/=2,t.eachEdge((function(t,s){var l=t.getLayout(),u=t.getVisual("fromSymbol"),h=t.getVisual("toSymbol");l.__original||(l.__original=[xt(l[0]),xt(l[1])],l[2]&&l.__original.push(xt(l[2])));var c=l.__original;if(null!=l[2]){if(_t(r[0],c[0]),_t(r[1],c[2]),_t(r[2],c[1]),u&&"none"!==u){var p=WT(t.node1),d=mC(r,c[0],p*e);i(r[0][0],r[1][0],r[2][0],d,n),r[0][0]=n[3],r[1][0]=n[4],i(r[0][1],r[1][1],r[2][1],d,n),r[0][1]=n[3],r[1][1]=n[4]}if(h&&"none"!==h){p=WT(t.node2),d=mC(r,c[1],p*e);i(r[0][0],r[1][0],r[2][0],d,n),r[1][0]=n[1],r[2][0]=n[2],i(r[0][1],r[1][1],r[2][1],d,n),r[1][1]=n[1],r[2][1]=n[2]}_t(l[0],r[0]),_t(l[1],r[2]),_t(l[2],r[1])}else{if(_t(o[0],c[0]),_t(o[1],c[1]),Mt(a,o[1],o[0]),Lt(a,a),u&&"none"!==u){p=WT(t.node1);St(o[0],o[0],a,p*e)}if(h&&"none"!==h){p=WT(t.node2);St(o[1],o[1],a,-p*e)}_t(l[0],o[0]),_t(l[1],o[1])}}))}function xC(t){return"view"===t.type}var bC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(t,e){var n=new Ab,i=new lC,r=this.group;this._controller=new eM(e.getZr()),this._controllerHost={target:r},r.add(n.group),r.add(i.group),this._symbolDraw=n,this._lineDraw=i,this._firstRender=!0},e.prototype.render=function(t,e,n){var i=this,r=t.coordinateSystem;this._model=t;var o=this._symbolDraw,a=this._lineDraw,s=this.group;if(xC(r)){var l={x:r.x,y:r.y,scaleX:r.scaleX,scaleY:r.scaleY};this._firstRender?s.attr(l):Nu(s,l,t)}_C(t.getGraph(),HT(t));var u=t.getData();o.updateData(u);var h=t.getEdgeData();a.updateData(h),this._updateNodeAndLinkScale(),this._updateController(t,e,n),clearTimeout(this._layoutTimeout);var c=t.forceLayout,p=t.get(["force","layoutAnimation"]);c&&this._startForceLayoutIteration(c,p),u.graph.eachNode((function(t){var e=t.dataIndex,n=t.getGraphicEl(),r=t.getModel();n.off("drag").off("dragend");var o=r.get("draggable");o&&n.on("drag",(function(){c&&(c.warmUp(),!i._layouting&&i._startForceLayoutIteration(c,p),c.setFixed(e),u.setItemLayout(e,[n.x,n.y]))})).on("dragend",(function(){c&&c.setUnfixed(e)})),n.setDraggable(o&&!!c),"adjacency"===r.get(["emphasis","focus"])&&(ms(n).focus=t.getAdjacentDataIndices())})),u.graph.eachEdge((function(t){var e=t.getGraphicEl();"adjacency"===t.getModel().get(["emphasis","focus"])&&(ms(e).focus={edge:[t.dataIndex],node:[t.node1.dataIndex,t.node2.dataIndex]})}));var d="circular"===t.get("layout")&&t.get(["circular","rotateLabel"]),f=u.getLayout("cx"),g=u.getLayout("cy");u.eachItemGraphicEl((function(t,e){var n=u.getItemModel(e).get(["label","rotate"])||0,i=t.getSymbolPath();if(d){var r=u.getItemLayout(e),o=Math.atan2(r[1]-g,r[0]-f);o<0&&(o=2*Math.PI+o);var a=r[0]<f;a&&(o-=Math.PI);var s=a?"left":"right";i.setTextConfig({rotation:-o,position:s,origin:"center"});var l=i.ensureState("emphasis");I(l.textConfig||(l.textConfig={}),{position:s})}else i.setTextConfig({rotation:n*=Math.PI/180})})),this._firstRender=!1},e.prototype.dispose=function(){this._controller&&this._controller.dispose(),this._controllerHost=null},e.prototype._startForceLayoutIteration=function(t,e){var n=this;!function i(){t.step((function(t){n.updateLayout(n._model),(n._layouting=!t)&&(e?n._layoutTimeout=setTimeout(i,16):i())}))}()},e.prototype._updateController=function(t,e,n){var i=this,r=this._controller,o=this._controllerHost,a=this.group;r.setPointerChecker((function(e,i,r){var o=a.getBoundingRect();return o.applyTransform(a.transform),o.contain(i,r)&&!lM(e,n,t)})),xC(t.coordinateSystem)?(r.enable(t.get("roam")),o.zoomLimit=t.get("scaleLimit"),o.zoom=t.coordinateSystem.getZoom(),r.off("pan").off("zoom").on("pan",(function(e){oM(o,e.dx,e.dy),n.dispatchAction({seriesId:t.id,type:"graphRoam",dx:e.dx,dy:e.dy})})).on("zoom",(function(e){aM(o,e.scale,e.originX,e.originY),n.dispatchAction({seriesId:t.id,type:"graphRoam",zoom:e.scale,originX:e.originX,originY:e.originY}),i._updateNodeAndLinkScale(),_C(t.getGraph(),HT(t)),i._lineDraw.updateLayout(),n.updateLabelLayout()}))):r.disable()},e.prototype._updateNodeAndLinkScale=function(){var t=this._model,e=t.getData(),n=HT(t);e.eachItemGraphicEl((function(t,e){t.setSymbolScale(n)}))},e.prototype.updateLayout=function(t){_C(t.getGraph(),HT(t)),this._symbolDraw.updateLayout(),this._lineDraw.updateLayout()},e.prototype.remove=function(t,e){this._symbolDraw&&this._symbolDraw.remove(),this._lineDraw&&this._lineDraw.remove()},e.type="graph",e}(mf);function wC(t){return"_EC_"+t}var SC=function(){function t(t){this.type="graph",this.nodes=[],this.edges=[],this._nodesMap={},this._edgesMap={},this._directed=t||!1}return t.prototype.isDirected=function(){return this._directed},t.prototype.addNode=function(t,e){t=null==t?""+e:""+t;var n=this._nodesMap;if(!n[wC(t)]){var i=new MC(t,e);return i.hostGraph=this,this.nodes.push(i),n[wC(t)]=i,i}},t.prototype.getNodeByIndex=function(t){var e=this.data.getRawIndex(t);return this.nodes[e]},t.prototype.getNodeById=function(t){return this._nodesMap[wC(t)]},t.prototype.addEdge=function(t,e,n){var i=this._nodesMap,r=this._edgesMap;if("number"==typeof t&&(t=this.nodes[t]),"number"==typeof e&&(e=this.nodes[e]),t instanceof MC||(t=i[wC(t)]),e instanceof MC||(e=i[wC(e)]),t&&e){var o=t.id+"-"+e.id,a=new IC(t,e,n);return a.hostGraph=this,this._directed&&(t.outEdges.push(a),e.inEdges.push(a)),t.edges.push(a),t!==e&&e.edges.push(a),this.edges.push(a),r[o]=a,a}},t.prototype.getEdgeByIndex=function(t){var e=this.edgeData.getRawIndex(t);return this.edges[e]},t.prototype.getEdge=function(t,e){t instanceof MC&&(t=t.id),e instanceof MC&&(e=e.id);var n=this._edgesMap;return this._directed?n[t+"-"+e]:n[t+"-"+e]||n[e+"-"+t]},t.prototype.eachNode=function(t,e){for(var n=this.nodes,i=n.length,r=0;r<i;r++)n[r].dataIndex>=0&&t.call(e,n[r],r)},t.prototype.eachEdge=function(t,e){for(var n=this.edges,i=n.length,r=0;r<i;r++)n[r].dataIndex>=0&&n[r].node1.dataIndex>=0&&n[r].node2.dataIndex>=0&&t.call(e,n[r],r)},t.prototype.breadthFirstTraverse=function(t,e,n,i){if(e instanceof MC||(e=this._nodesMap[wC(e)]),e){for(var r="out"===n?"outEdges":"in"===n?"inEdges":"edges",o=0;o<this.nodes.length;o++)this.nodes[o].__visited=!1;if(!t.call(i,e,null))for(var a=[e];a.length;){var s=a.shift(),l=s[r];for(o=0;o<l.length;o++){var u=l[o],h=u.node1===s?u.node2:u.node1;if(!h.__visited){if(t.call(i,h,s))return;a.push(h),h.__visited=!0}}}}},t.prototype.update=function(){for(var t=this.data,e=this.edgeData,n=this.nodes,i=this.edges,r=0,o=n.length;r<o;r++)n[r].dataIndex=-1;for(r=0,o=t.count();r<o;r++)n[t.getRawIndex(r)].dataIndex=r;e.filterSelf((function(t){var n=i[e.getRawIndex(t)];return n.node1.dataIndex>=0&&n.node2.dataIndex>=0}));for(r=0,o=i.length;r<o;r++)i[r].dataIndex=-1;for(r=0,o=e.count();r<o;r++)i[e.getRawIndex(r)].dataIndex=r},t.prototype.clone=function(){for(var e=new t(this._directed),n=this.nodes,i=this.edges,r=0;r<n.length;r++)e.addNode(n[r].id,n[r].dataIndex);for(r=0;r<i.length;r++){var o=i[r];e.addEdge(o.node1.id,o.node2.id,o.dataIndex)}return e},t}(),MC=function(){function t(t,e){this.inEdges=[],this.outEdges=[],this.edges=[],this.dataIndex=-1,this.id=null==t?"":t,this.dataIndex=null==e?-1:e}return t.prototype.degree=function(){return this.edges.length},t.prototype.inDegree=function(){return this.inEdges.length},t.prototype.outDegree=function(){return this.outEdges.length},t.prototype.getModel=function(t){if(!(this.dataIndex<0))return this.hostGraph.data.getItemModel(this.dataIndex).getModel(t)},t.prototype.getAdjacentDataIndices=function(){for(var t={edge:[],node:[]},e=0;e<this.edges.length;e++){var n=this.edges[e];n.dataIndex<0||(t.edge.push(n.dataIndex),t.node.push(n.node1.dataIndex,n.node2.dataIndex))}return t},t}(),IC=function(){function t(t,e,n){this.dataIndex=-1,this.node1=t,this.node2=e,this.dataIndex=null==n?-1:n}return t.prototype.getModel=function(t){if(!(this.dataIndex<0))return this.hostGraph.edgeData.getItemModel(this.dataIndex).getModel(t)},t.prototype.getAdjacentDataIndices=function(){return{edge:[this.dataIndex],node:[this.node1.dataIndex,this.node2.dataIndex]}},t}();function TC(t,e){return{getValue:function(n){var i=this[t][e];return i.get(i.getDimension(n||"value"),this.dataIndex)},setVisual:function(n,i){this.dataIndex>=0&&this[t][e].setItemVisual(this.dataIndex,n,i)},getVisual:function(n){return this[t][e].getItemVisual(this.dataIndex,n)},setLayout:function(n,i){this.dataIndex>=0&&this[t][e].setItemLayout(this.dataIndex,n,i)},getLayout:function(){return this[t][e].getItemLayout(this.dataIndex)},getGraphicEl:function(){return this[t][e].getItemGraphicEl(this.dataIndex)},getRawIndex:function(){return this[t][e].getRawIndex(this.dataIndex)}}}function CC(t,e,n,i,r){for(var o=new SC(i),a=0;a<t.length;a++)o.addNode(Q(t[a].id,t[a].name,a),a);var s=[],l=[],u=0;for(a=0;a<e.length;a++){var h=e[a],c=h.source,p=h.target;o.addEdge(c,p,u)&&(l.push(h),s.push(Q(Ar(h.id,null),c+" > "+p)),u++)}var d,f=n.get("coordinateSystem");if("cartesian2d"===f||"polar"===f)d=Ym(t,n);else{var g=bp.get(f),y=g&&g.dimensions||[];A(y,"value")<0&&y.concat(["value"]);var v=zm(t,{coordDimensions:y});(d=new Rm(v,n)).initData(t)}var m=new Rm(["value"],n);return m.initData(l,s),r&&r(d,m),cI({mainData:d,struct:o,structAttr:"graph",datas:{node:d,edge:m},datasAttr:{node:"data",edge:"edgeData"}}),o.update(),o}L(MC,TC("hostGraph","data")),L(IC,TC("hostGraph","edgeData"));var AC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.hasSymbolVisual=!0,n}return n(e,t),e.prototype.init=function(e){t.prototype.init.apply(this,arguments);var n=this;function i(){return n._categoriesData}this.legendVisualProvider=new zw(i,i),this.fillDataTextStyle(e.edges||e.links),this._updateCategoriesData()},e.prototype.mergeOption=function(e){t.prototype.mergeOption.apply(this,arguments),this.fillDataTextStyle(e.edges||e.links),this._updateCategoriesData()},e.prototype.mergeDefaultAndTheme=function(e){t.prototype.mergeDefaultAndTheme.apply(this,arguments),wr(e,"edgeLabel",["show"])},e.prototype.getInitialData=function(t,e){var n,i=t.edges||t.links||[],r=t.data||t.nodes||[],o=this;if(r&&i){OT(n=this)&&(n.__curvenessList=[],n.__edgeMap={},RT(n));var a=CC(r,i,this,!0,(function(t,e){t.wrapMethod("getItemModel",(function(t){var e=o._categoriesModels[t.getShallow("category")];return e&&(e.parentModel=t.parentModel,t.parentModel=e),t}));var n=Ih.prototype.getModel;function i(t,e){var i=n.call(this,t,e);return i.resolveParentPath=r,i}function r(t){if(t&&("label"===t[0]||"label"===t[1])){var e=t.slice();return"label"===t[0]?e[0]="edgeLabel":"label"===t[1]&&(e[1]="edgeLabel"),e}return t}e.wrapMethod("getItemModel",(function(t){return t.resolveParentPath=r,t.getModel=i,t}))}));return P(a.edges,(function(t){!function(t,e,n,i){if(OT(n)){var r=NT(t,e,n),o=n.__edgeMap,a=o[ET(r)];o[r]&&!a?o[r].isForward=!0:a&&o[r]&&(a.isForward=!0,o[r].isForward=!1),o[r]=o[r]||[],o[r].push(i)}}(t.node1,t.node2,this,t.dataIndex)}),this),a.data}},e.prototype.getGraph=function(){return this.getData().graph},e.prototype.getEdgeData=function(){return this.getGraph().edgeData},e.prototype.getCategoriesData=function(){return this._categoriesData},e.prototype.formatTooltip=function(t,e,n){if("edge"===n){var i=this.getData(),r=this.getDataParams(t,n),o=i.graph.getEdgeByIndex(t),a=i.getName(o.node1.dataIndex),s=i.getName(o.node2.dataIndex),l=[];return null!=a&&l.push(a),null!=s&&l.push(s),Ud("nameValue",{name:l.join(" > "),value:r.value,noValue:null==r.value})}return nf({series:this,dataIndex:t,multipleSeries:e})},e.prototype._updateCategoriesData=function(){var t=O(this.option.categories||[],(function(t){return null!=t.value?t:I({value:0},t)})),e=new Rm(["value"],this);e.initData(t),this._categoriesData=e,this._categoriesModels=e.mapArray((function(t){return e.getItemModel(t)}))},e.prototype.setZoom=function(t){this.option.zoom=t},e.prototype.setCenter=function(t){this.option.center=t},e.prototype.isAnimationEnabled=function(){return t.prototype.isAnimationEnabled.call(this)&&!("force"===this.get("layout")&&this.get(["force","layoutAnimation"]))},e.type="series.graph",e.dependencies=["grid","polar","geo","singleAxis","calendar"],e.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,opacity:.5},emphasis:{scale:!0,label:{show:!0}},select:{itemStyle:{borderColor:"#212121"}}},e}(af),DC={type:"graphRoam",event:"graphRoam",update:"none"};var LC=function(){this.angle=0,this.width=10,this.r=10,this.x=0,this.y=0},kC=function(t){function e(e){var n=t.call(this,e)||this;return n.type="pointer",n}return n(e,t),e.prototype.getDefaultShape=function(){return new LC},e.prototype.buildPath=function(t,e){var n=Math.cos,i=Math.sin,r=e.r,o=e.width,a=e.angle,s=e.x-n(a)*o*(o>=r/3?1:2),l=e.y-i(a)*o*(o>=r/3?1:2);a=e.angle-Math.PI/2,t.moveTo(s,l),t.lineTo(e.x+n(a)*o,e.y+i(a)*o),t.lineTo(e.x+n(e.angle)*r,e.y+i(e.angle)*r),t.lineTo(e.x-n(a)*o,e.y-i(a)*o),t.lineTo(s,l)},e}(qa);function PC(t,e){var n=null==t?"":t+"";return e&&("string"==typeof e?n=e.replace("{value}",n):"function"==typeof e&&(n=e(t))),n}var OC=2*Math.PI,RC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){this.group.removeAll();var i=t.get(["axisLine","lineStyle","color"]),r=function(t,e){var n=t.get("center"),i=e.getWidth(),r=e.getHeight(),o=Math.min(i,r);return{cx:qi(n[0],e.getWidth()),cy:qi(n[1],e.getHeight()),r:qi(t.get("radius"),o/2)}}(t,n);this._renderMain(t,e,n,i,r),this._data=t.getData()},e.prototype.dispose=function(){},e.prototype._renderMain=function(t,e,n,i,r){for(var o=this.group,a=t.get("clockwise"),s=-t.get("startAngle")/180*Math.PI,l=-t.get("endAngle")/180*Math.PI,u=t.getModel("axisLine"),h=u.get("roundCap")?lw:Xl,c=u.get("show"),p=u.getModel("lineStyle"),d=p.get("width"),f=(l-s)%OC||l===s?(l-s)%OC:OC,g=s,y=0;c&&y<i.length;y++){var v=new h({shape:{startAngle:g,endAngle:l=s+f*Math.min(Math.max(i[y][0],0),1),cx:r.cx,cy:r.cy,clockwise:a,r0:r.r-d,r:r.r},silent:!0});v.setStyle({fill:i[y][1]}),v.setStyle(p.getLineStyle(["color","width"])),o.add(v),g=l}var m=function(t){if(t<=0)return i[0][1];var e;for(e=0;e<i.length;e++)if(i[e][0]>=t&&(0===e?0:i[e-1][0])<t)return i[e][1];return i[e-1][1]};if(!a){var _=s;s=l,l=_}this._renderTicks(t,e,n,m,r,s,l,a,d),this._renderTitleAndDetail(t,e,n,m,r),this._renderAnchor(t,r),this._renderPointer(t,e,n,m,r,s,l,a,d)},e.prototype._renderTicks=function(t,e,n,i,r,o,a,s,l){for(var u,h,c=this.group,p=r.cx,d=r.cy,f=r.r,g=+t.get("min"),y=+t.get("max"),v=t.getModel("splitLine"),m=t.getModel("axisTick"),_=t.getModel("axisLabel"),x=t.get("splitNumber"),b=m.get("splitNumber"),w=qi(v.get("length"),f),S=qi(m.get("length"),f),M=o,I=(a-o)/x,T=I/b,C=v.getModel("lineStyle").getLineStyle(),A=m.getModel("lineStyle").getLineStyle(),D=v.get("distance"),L=0;L<=x;L++){if(u=Math.cos(M),h=Math.sin(M),v.get("show")){var k=new nu({shape:{x1:u*(f-(P=D?D+l:l))+p,y1:h*(f-P)+d,x2:u*(f-w-P)+p,y2:h*(f-w-P)+d},style:C,silent:!0});"auto"===C.stroke&&k.setStyle({stroke:i(L/x)}),c.add(k)}if(_.get("show")){var P=_.get("distance")+D,O=PC(Ki(L/x*(y-g)+g),_.get("formatter")),R=i(L/x);c.add(new hs({style:rh(_,{text:O,x:u*(f-w-P)+p,y:h*(f-w-P)+d,verticalAlign:h<-.8?"top":h>.8?"bottom":"middle",align:u<-.4?"left":u>.4?"right":"center"},{inheritColor:R}),silent:!0}))}if(m.get("show")&&L!==x){P=(P=m.get("distance"))?P+l:l;for(var N=0;N<=b;N++){u=Math.cos(M),h=Math.sin(M);var E=new nu({shape:{x1:u*(f-P)+p,y1:h*(f-P)+d,x2:u*(f-S-P)+p,y2:h*(f-S-P)+d},silent:!0,style:A});"auto"===A.stroke&&E.setStyle({stroke:i((L+N/b)/x)}),c.add(E),M+=T}M-=T}else M+=I}},e.prototype._renderPointer=function(t,e,n,i,r,o,a,s,l){var u=this.group,h=this._data,c=this._progressEls,p=[],d=t.get(["pointer","show"]),f=t.getModel("progress"),g=f.get("show"),y=t.getData(),v=y.mapDimension("value"),m=+t.get("min"),_=+t.get("max"),x=[m,_],b=[o,a];function w(e,n){var i,o=y.getItemModel(e).getModel("pointer"),a=qi(o.get("width"),r.r),s=qi(o.get("length"),r.r),l=t.get(["pointer","icon"]),u=o.get("offsetCenter"),h=qi(u[0],r.r),c=qi(u[1],r.r),p=o.get("keepAspect");return(i=l?cy(l,h-a/2,c-s,a,s,null,p):new kC({shape:{angle:-Math.PI/2,width:a,r:s,x:h,y:c}})).rotation=-(n+Math.PI/2),i.x=r.cx,i.y=r.cy,i}function S(t,e){var n=f.get("roundCap")?lw:Xl,i=f.get("overlap"),a=i?f.get("width"):l/y.count(),u=i?r.r-a:r.r-(t+1)*a,h=i?r.r:r.r-t*a,c=new n({shape:{startAngle:o,endAngle:e,cx:r.cx,cy:r.cy,clockwise:s,r0:u,r:h}});return i&&(c.z2=_-y.get(v,t)%_),c}(g||d)&&(y.diff(h).add((function(e){if(d){var n=w(e,o);Eu(n,{rotation:-(ji(y.get(v,e),x,b,!0)+Math.PI/2)},t),u.add(n),y.setItemGraphicEl(e,n)}if(g){var i=S(e,o),r=f.get("clip");Eu(i,{shape:{endAngle:ji(y.get(v,e),x,b,r)}},t),u.add(i),p[e]=i}})).update((function(e,n){if(d){var i=h.getItemGraphicEl(n),r=i?i.rotation:o,a=w(e,r);a.rotation=r,Nu(a,{rotation:-(ji(y.get(v,e),x,b,!0)+Math.PI/2)},t),u.add(a),y.setItemGraphicEl(e,a)}if(g){var s=c[n],l=S(e,s?s.shape.endAngle:o),m=f.get("clip");Nu(l,{shape:{endAngle:ji(y.get(v,e),x,b,m)}},t),u.add(l),p[e]=l}})).execute(),y.each((function(t){var e=y.getItemModel(t),n=e.getModel("emphasis");if(d){var r=y.getItemGraphicEl(t);r.useStyle(y.getItemVisual(t,"style")),r.setStyle(e.getModel(["pointer","itemStyle"]).getItemStyle()),"auto"===r.style.fill&&r.setStyle("fill",i(ji(y.get(v,t),x,[0,1],!0))),r.z2EmphasisLift=0,rl(r,e),tl(r,n.get("focus"),n.get("blurScope"))}if(g){var o=p[t];o.useStyle(y.getItemVisual(t,"style")),o.setStyle(e.getModel(["progress","itemStyle"]).getItemStyle()),o.z2EmphasisLift=0,rl(o,e),tl(o,n.get("focus"),n.get("blurScope"))}})),this._progressEls=p)},e.prototype._renderAnchor=function(t,e){var n=t.getModel("anchor");if(n.get("show")){var i=n.get("size"),r=n.get("icon"),o=n.get("offsetCenter"),a=n.get("keepAspect"),s=cy(r,e.cx-i/2+qi(o[0],e.r),e.cy-i/2+qi(o[1],e.r),i,i,null,a);s.z2=n.get("showAbove")?1:0,s.setStyle(n.getModel("itemStyle").getItemStyle()),this.group.add(s)}},e.prototype._renderTitleAndDetail=function(t,e,n,i,r){var o=this,a=t.getData(),s=a.mapDimension("value"),l=+t.get("min"),u=+t.get("max"),h=new Vi,c=[],p=[],d=t.isAnimationEnabled();a.diff(this._data).add((function(t){c[t]=new hs({silent:!0}),p[t]=new hs({silent:!0})})).update((function(t,e){c[t]=o._titleEls[e],p[t]=o._detailEls[e]})).execute(),a.each((function(e){var n=a.getItemModel(e),o=a.get(s,e),f=new Vi,g=i(ji(o,[l,u],[0,1],!0)),y=n.getModel("title");if(y.get("show")){var v=y.get("offsetCenter"),m=r.cx+qi(v[0],r.r),_=r.cy+qi(v[1],r.r);(C=c[e]).attr({style:rh(y,{x:m,y:_,text:a.getName(e),align:"center",verticalAlign:"middle"},{inheritColor:g})}),f.add(C)}var x=n.getModel("detail");if(x.get("show")){var b=x.get("offsetCenter"),w=r.cx+qi(b[0],r.r),S=r.cy+qi(b[1],r.r),M=qi(x.get("width"),r.r),I=qi(x.get("height"),r.r),T=t.get(["progress","show"])?a.getItemVisual(e,"style").fill:g,C=p[e],A=x.get("formatter");C.attr({style:rh(x,{x:w,y:S,text:PC(o,A),width:isNaN(M)?null:M,height:isNaN(I)?null:I,align:"center",verticalAlign:"middle"},{inheritColor:T})}),ph(C,{normal:x},o,(function(t){return PC(t,A)})),d&&dh(C,e,a,t,{getFormattedLabel:function(t,e,n,i,r,a){return PC(a?a.interpolatedValue:o,A)}}),f.add(C)}h.add(f)})),this.group.add(h),this._titleEls=c,this._detailEls=p},e.type="gauge",e}(mf),NC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.visualStyleAccessPath="itemStyle",n.useColorPaletteOnData=!0,n}return n(e,t),e.prototype.getInitialData=function(t,e){return Ew(this,["value"])},e.type="series.gauge",e.defaultOption={zlevel:0,z:2,center:["50%","50%"],legendHoverLink:!0,radius:"75%",startAngle:225,endAngle:-45,clockwise:!0,min:0,max:100,splitNumber:10,axisLine:{show:!0,roundCap:!1,lineStyle:{color:[[1,"#E6EBF8"]],width:10}},progress:{show:!1,overlap:!0,width:10,roundCap:!1,clip:!0},splitLine:{show:!0,length:10,distance:10,lineStyle:{color:"#63677A",width:3,type:"solid"}},axisTick:{show:!0,splitNumber:5,length:6,distance:10,lineStyle:{color:"#63677A",width:1,type:"solid"}},axisLabel:{show:!0,distance:15,color:"#464646",fontSize:12},pointer:{icon:null,offsetCenter:[0,0],show:!0,length:"60%",width:6,keepAspect:!1},anchor:{show:!1,showAbove:!1,size:6,icon:"circle",offsetCenter:[0,0],keepAspect:!1,itemStyle:{color:"#fff",borderWidth:0,borderColor:"#5470c6"}},title:{show:!0,offsetCenter:[0,"20%"],color:"#464646",fontSize:16,valueAnimation:!1},detail:{show:!0,backgroundColor:"rgba(0,0,0,0)",borderWidth:0,borderColor:"#ccc",width:100,height:null,padding:[5,10],offsetCenter:[0,"40%"],color:"#464646",fontSize:30,fontWeight:"bold",lineHeight:30,valueAnimation:!1}},e}(af);var EC=["itemStyle","opacity"],zC=function(t){function e(e,n){var i=t.call(this)||this,r=i,o=new Ql,a=new hs;return r.setTextContent(a),i.setTextGuideLine(o),i.updateData(e,n,!0),i}return n(e,t),e.prototype.updateData=function(t,e,n){var i=this,r=t.hostModel,o=t.getItemModel(e),a=t.getItemLayout(e),s=o.getModel("emphasis"),l=o.get(EC);l=null==l?1:l,i.useStyle(t.getItemVisual(e,"style")),i.style.lineJoin="round",n?(i.setShape({points:a.points}),i.style.opacity=0,Eu(i,{style:{opacity:l}},r,e)):Nu(i,{style:{opacity:l},shape:{points:a.points}},r,e),rl(i,o),this._updateLabel(t,e),tl(this,s.get("focus"),s.get("blurScope"))},e.prototype._updateLabel=function(t,e){var n=this,i=this.getTextGuideLine(),r=n.getTextContent(),o=t.hostModel,a=t.getItemModel(e),s=t.getItemLayout(e).label,l=t.getItemVisual(e,"style"),u=l.fill;nh(r,ih(a),{labelFetcher:t.hostModel,labelDataIndex:e,defaultOpacity:l.opacity,defaultText:t.getName(e)},{normal:{align:s.textAlign,verticalAlign:s.verticalAlign}}),n.setTextConfig({local:!0,inside:!!s.inside,insideStroke:u,outsideFill:u});var h=s.linePoints;i.setShape({points:h}),n.textGuideLineConfig={anchor:h?new Cn(h[0][0],h[0][1]):null},Nu(r,{style:{x:s.x,y:s.y}},o,e),r.attr({rotation:s.rotation,originX:s.x,originY:s.y,z2:10}),Vg(n,Fg(a),{stroke:u})},e}($l),BC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.ignoreLabelLineUpdate=!0,n}return n(e,t),e.prototype.render=function(t,e,n){var i=t.getData(),r=this._data,o=this.group;i.diff(r).add((function(t){var e=new zC(i,t);i.setItemGraphicEl(t,e),o.add(e)})).update((function(t,e){var n=r.getItemGraphicEl(e);n.updateData(i,t),o.add(n),i.setItemGraphicEl(t,n)})).remove((function(e){Vu(r.getItemGraphicEl(e),t,e)})).execute(),this._data=i},e.prototype.remove=function(){this.group.removeAll(),this._data=null},e.prototype.dispose=function(){},e.type="funnel",e}(mf),VC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.useColorPaletteOnData=!0,n}return n(e,t),e.prototype.init=function(e){t.prototype.init.apply(this,arguments),this.legendVisualProvider=new zw(B(this.getData,this),B(this.getRawData,this)),this._defaultLabelLine(e)},e.prototype.getInitialData=function(t,e){return Ew(this,{coordDimensions:["value"],encodeDefaulter:V(ep,this)})},e.prototype._defaultLabelLine=function(t){wr(t,"labelLine",["show"]);var e=t.labelLine,n=t.emphasis.labelLine;e.show=e.show&&t.label.show,n.show=n.show&&t.emphasis.label.show},e.prototype.getDataParams=function(e){var n=this.getData(),i=t.prototype.getDataParams.call(this,e),r=n.mapDimension("value"),o=n.getSum(r);return i.percent=o?+(n.get(r,e)/o*100).toFixed(2):0,i.$vars.push("percent"),i},e.type="series.funnel",e.defaultOption={zlevel:0,z:2,legendHoverLink:!0,left:80,top:60,right:80,bottom:60,minSize:"0%",maxSize:"100%",sort:"descending",orient:"vertical",gap:0,funnelAlign:"center",label:{show:!0,position:"outer"},labelLine:{show:!0,length:20,lineStyle:{width:1}},itemStyle:{borderColor:"#fff",borderWidth:1},emphasis:{label:{show:!0}},select:{itemStyle:{borderColor:"#212121"}}},e}(af);function FC(t,e){t.eachSeriesByType("funnel",(function(t){var n=t.getData(),i=n.mapDimension("value"),r=t.get("sort"),o=function(t,e){return Lc(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}(t,e),a=t.get("orient"),s=o.width,l=o.height,u=function(t,e){for(var n=t.mapDimension("value"),i=t.mapArray(n,(function(t){return t})),r=[],o="ascending"===e,a=0,s=t.count();a<s;a++)r[a]=a;return"function"==typeof e?r.sort(e):"none"!==e&&r.sort((function(t,e){return o?i[t]-i[e]:i[e]-i[t]})),r}(n,r),h=o.x,c=o.y,p="horizontal"===a?[qi(t.get("minSize"),l),qi(t.get("maxSize"),l)]:[qi(t.get("minSize"),s),qi(t.get("maxSize"),s)],d=n.getDataExtent(i),f=t.get("min"),g=t.get("max");null==f&&(f=Math.min(d[0],0)),null==g&&(g=d[1]);var y=t.get("funnelAlign"),v=t.get("gap"),m=(("horizontal"===a?s:l)-v*(n.count()-1))/n.count(),_=function(t,e){if("horizontal"===a){var r=ji(n.get(i,t)||0,[f,g],p,!0),o=void 0;switch(y){case"top":o=c;break;case"center":o=c+(l-r)/2;break;case"bottom":o=c+(l-r)}return[[e,o],[e,o+r]]}var u,d=ji(n.get(i,t)||0,[f,g],p,!0);switch(y){case"left":u=h;break;case"center":u=h+(s-d)/2;break;case"right":u=h+s-d}return[[u,e],[u+d,e]]};"ascending"===r&&(m=-m,v=-v,"horizontal"===a?h+=s:c+=l,u=u.reverse());for(var x=0;x<u.length;x++){var b=u[x],w=u[x+1],S=n.getItemModel(b);if("horizontal"===a){var M=S.get(["itemStyle","width"]);null==M?M=m:(M=qi(M,s),"ascending"===r&&(M=-M));var I=_(b,h),T=_(w,h+M);h+=M+v,n.setItemLayout(b,{points:I.concat(T.slice().reverse())})}else{var C=S.get(["itemStyle","height"]);null==C?C=m:(C=qi(C,l),"ascending"===r&&(C=-C));I=_(b,c),T=_(w,c+C);c+=C+v,n.setItemLayout(b,{points:I.concat(T.slice().reverse())})}}!function(t){var e=t.hostModel.get("orient");t.each((function(n){var i,r,o,a,s=t.getItemModel(n),l=s.getModel("label").get("position"),u=s.getModel("labelLine"),h=t.getItemLayout(n),c=h.points,p="inner"===l||"inside"===l||"center"===l||"insideLeft"===l||"insideRight"===l;if(p)"insideLeft"===l?(r=(c[0][0]+c[3][0])/2+5,o=(c[0][1]+c[3][1])/2,i="left"):"insideRight"===l?(r=(c[1][0]+c[2][0])/2-5,o=(c[1][1]+c[2][1])/2,i="right"):(r=(c[0][0]+c[1][0]+c[2][0]+c[3][0])/4,o=(c[0][1]+c[1][1]+c[2][1]+c[3][1])/4,i="center"),a=[[r,o],[r,o]];else{var d=void 0,f=void 0,g=void 0,y=void 0,v=u.get("length");"left"===l?(d=(c[3][0]+c[0][0])/2,f=(c[3][1]+c[0][1])/2,r=(g=d-v)-5,i="right"):"right"===l?(d=(c[1][0]+c[2][0])/2,f=(c[1][1]+c[2][1])/2,r=(g=d+v)+5,i="left"):"top"===l?(d=(c[3][0]+c[0][0])/2,o=(y=(f=(c[3][1]+c[0][1])/2)-v)-5,i="center"):"bottom"===l?(d=(c[1][0]+c[2][0])/2,o=(y=(f=(c[1][1]+c[2][1])/2)+v)+5,i="center"):"rightTop"===l?(d="horizontal"===e?c[3][0]:c[1][0],f="horizontal"===e?c[3][1]:c[1][1],"horizontal"===e?(o=(y=f-v)-5,i="center"):(r=(g=d+v)+5,i="top")):"rightBottom"===l?(d=c[2][0],f=c[2][1],"horizontal"===e?(o=(y=f+v)+5,i="center"):(r=(g=d+v)+5,i="bottom")):"leftTop"===l?(d=c[0][0],f="horizontal"===e?c[0][1]:c[1][1],"horizontal"===e?(o=(y=f-v)-5,i="center"):(r=(g=d-v)-5,i="right")):"leftBottom"===l?(d="horizontal"===e?c[1][0]:c[3][0],f="horizontal"===e?c[1][1]:c[2][1],"horizontal"===e?(o=(y=f+v)+5,i="center"):(r=(g=d-v)-5,i="right")):(d=(c[1][0]+c[2][0])/2,f=(c[1][1]+c[2][1])/2,"horizontal"===e?(o=(y=f+v)+5,i="center"):(r=(g=d+v)+5,i="left")),"horizontal"===e?r=g=d:o=y=f,a=[[d,f],[g,y]]}h.label={linePoints:a,x:r,y:o,verticalAlign:"middle",textAlign:i,inside:p}}))}(n)}))}var GC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._dataGroup=new Vi,n._initialized=!1,n}return n(e,t),e.prototype.init=function(){this.group.add(this._dataGroup)},e.prototype.render=function(t,e,n,i){var r=this._dataGroup,o=t.getData(),a=this._data,s=t.coordinateSystem,l=s.dimensions,u=YC(t);if(o.diff(a).add((function(t){XC(WC(o,r,t,l,s),o,t,u)})).update((function(e,n){var i=a.getItemGraphicEl(n),r=HC(o,e,l,s);o.setItemGraphicEl(e,i),Nu(i,{shape:{points:r}},t,e),XC(i,o,e,u)})).remove((function(t){var e=a.getItemGraphicEl(t);r.remove(e)})).execute(),!this._initialized){this._initialized=!0;var h=function(t,e,n){var i=t.model,r=t.getRect(),o=new ss({shape:{x:r.x,y:r.y,width:r.width,height:r.height}}),a="horizontal"===i.get("layout")?"width":"height";return o.setShape(a,0),Eu(o,{shape:{width:r.width,height:r.height}},e,n),o}(s,t,(function(){setTimeout((function(){r.removeClipPath()}))}));r.setClipPath(h)}this._data=o},e.prototype.incrementalPrepareRender=function(t,e,n){this._initialized=!0,this._data=null,this._dataGroup.removeAll()},e.prototype.incrementalRender=function(t,e,n){for(var i=e.getData(),r=e.coordinateSystem,o=r.dimensions,a=YC(e),s=t.start;s<t.end;s++){var l=WC(i,this._dataGroup,s,o,r);l.incremental=!0,XC(l,i,s,a)}},e.prototype.remove=function(){this._dataGroup&&this._dataGroup.removeAll(),this._data=null},e.type="parallel",e}(mf);function HC(t,e,n,i){for(var r,o=[],a=0;a<n.length;a++){var s=n[a],l=t.get(t.mapDimension(s),e);r=l,("category"===i.getAxis(s).type?null==r:null==r||isNaN(r))||o.push(i.dataToPoint(l,s))}return o}function WC(t,e,n,i,r){var o=HC(t,n,i,r),a=new Ql({shape:{points:o},z2:10});return e.add(a),t.setItemGraphicEl(n,a),a}function YC(t){var e=t.get("smooth",!0);return!0===e&&(e=.3),J(e=pr(e))&&(e=0),{smooth:e}}function XC(t,e,n,i){t.useStyle(e.getItemVisual(n,"style")),t.style.fill=null,t.setShape("smooth",i.smooth);var r=e.getItemModel(n),o=r.getModel("emphasis");rl(t,r,"lineStyle"),tl(t,o.get("focus"),o.get("blurScope"))}var UC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.visualStyleAccessPath="lineStyle",n.visualDrawType="stroke",n}return n(e,t),e.prototype.getInitialData=function(t,e){return Ym(this.getSource(),this,{useEncodeDefaulter:B(ZC,null,this)})},e.prototype.getRawIndicesByActiveState=function(t){var e=this.coordinateSystem,n=this.getData(),i=[];return e.eachActiveState(n,(function(e,r){t===e&&i.push(n.getRawIndex(r))})),i},e.type="series.parallel",e.dependencies=["parallel"],e.defaultOption={zlevel:0,z:2,coordinateSystem:"parallel",parallelIndex:0,label:{show:!1},inactiveOpacity:.05,activeOpacity:1,lineStyle:{width:1,opacity:.45,type:"solid"},emphasis:{label:{show:!1}},progressive:500,smooth:!1,animationEasing:"linear"},e}(af);function ZC(t){var e=t.ecModel.getComponent("parallel",t.get("parallelIndex"));if(e){var n={};return P(e.dimensions,(function(t){var e=+t.replace("dim","");n[t]=e})),n}}var jC=["lineStyle","opacity"],qC={seriesType:"parallel",reset:function(t,e){var n=t.coordinateSystem,i={normal:t.get(["lineStyle","opacity"]),active:t.get("activeOpacity"),inactive:t.get("inactiveOpacity")};return{progress:function(t,e){n.eachActiveState(e,(function(t,n){var r=i[t];if("normal"===t&&e.hasItemOption){var o=e.getItemModel(n).get(jC,!0);null!=o&&(r=o)}e.ensureUniqueItemVisual(n,"style").opacity=r}),t.start,t.end)}}}};function KC(t){!function(t){if(t.parallel)return;var e=!1;P(t.series,(function(t){t&&"parallel"===t.type&&(e=!0)})),e&&(t.parallel=[{}])}(t),function(t){P(br(t.parallelAxis),(function(e){if(X(e)){var n=e.parallelIndex||0,i=br(t.parallel)[n];i&&i.parallelAxisDefault&&S(e,i.parallelAxisDefault,!1)}}))}(t)}var $C=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){this._model=t,this._api=n,this._handlers||(this._handlers={},P(JC,(function(t,e){n.getZr().on(e,this._handlers[e]=B(t,this))}),this)),Af(this,"_throttledDispatchExpand",t.get("axisExpandRate"),"fixRate")},e.prototype.dispose=function(t,e){P(this._handlers,(function(t,n){e.getZr().off(n,t)})),this._handlers=null},e.prototype._throttledDispatchExpand=function(t){this._dispatchExpand(t)},e.prototype._dispatchExpand=function(t){t&&this._api.dispatchAction(I({type:"parallelAxisExpand"},t))},e.type="parallel",e}(ff),JC={mousedown:function(t){QC(this,"click")&&(this._mouseDownPoint=[t.offsetX,t.offsetY])},mouseup:function(t){var e=this._mouseDownPoint;if(QC(this,"click")&&e){var n=[t.offsetX,t.offsetY];if(Math.pow(e[0]-n[0],2)+Math.pow(e[1]-n[1],2)>5)return;var i=this._model.coordinateSystem.getSlidedAxisExpandWindow([t.offsetX,t.offsetY]);"none"!==i.behavior&&this._dispatchExpand({axisExpandWindow:i.axisExpandWindow})}this._mouseDownPoint=null},mousemove:function(t){if(!this._mouseDownPoint&&QC(this,"mousemove")){var e=this._model,n=e.coordinateSystem.getSlidedAxisExpandWindow([t.offsetX,t.offsetY]),i=n.behavior;"jump"===i&&this._throttledDispatchExpand.debounceNextCall(e.get("axisExpandDebounce")),this._throttledDispatchExpand("none"===i?null:{axisExpandWindow:n.axisExpandWindow,animation:"jump"===i?null:{duration:0}})}}};function QC(t,e){var n=t._model;return n.get("axisExpandable")&&n.get("axisExpandTriggerOn")===e}var tA=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(){t.prototype.init.apply(this,arguments),this.mergeOption({})},e.prototype.mergeOption=function(t){var e=this.option;t&&S(e,t,!0),this._initDimensions()},e.prototype.contains=function(t,e){var n=t.get("parallelIndex");return null!=n&&e.getComponent("parallel",n)===this},e.prototype.setAxisExpand=function(t){P(["axisExpandable","axisExpandCenter","axisExpandCount","axisExpandWidth","axisExpandWindow"],(function(e){t.hasOwnProperty(e)&&(this.option[e]=t[e])}),this)},e.prototype._initDimensions=function(){var t=this.dimensions=[],e=this.parallelAxisIndex=[];P(N(this.ecModel.queryComponents({mainType:"parallelAxis"}),(function(t){return(t.get("parallelIndex")||0)===this.componentIndex}),this),(function(n){t.push("dim"+n.get("dim")),e.push(n.componentIndex)}))},e.type="parallel",e.dependencies=["parallelAxis"],e.layoutMode="box",e.defaultOption={zlevel:0,z:0,left:80,top:60,right:80,bottom:60,layout:"horizontal",axisExpandable:!1,axisExpandCenter:null,axisExpandCount:0,axisExpandWidth:50,axisExpandRate:17,axisExpandDebounce:50,axisExpandSlideTriggerArea:[-.15,.05,.4],axisExpandTriggerOn:"click",parallelAxisDefault:null},e}(zc),eA=function(t){function e(e,n,i,r,o){var a=t.call(this,e,n,i)||this;return a.type=r||"value",a.axisIndex=o,a}return n(e,t),e.prototype.isHorizontal=function(){return"horizontal"!==this.coordinateSystem.getModel().get("layout")},e}(_x);function nA(t,e,n,i,r,o){t=t||0;var a=n[1]-n[0];if(null!=r&&(r=rA(r,[0,a])),null!=o&&(o=Math.max(o,null!=r?r:0)),"all"===i){var s=Math.abs(e[1]-e[0]);s=rA(s,[0,a]),r=o=rA(s,[r,o]),i=0}e[0]=rA(e[0],n),e[1]=rA(e[1],n);var l=iA(e,i);e[i]+=t;var u,h=r||0,c=n.slice();return l.sign<0?c[0]+=h:c[1]-=h,e[i]=rA(e[i],c),u=iA(e,i),null!=r&&(u.sign!==l.sign||u.span<r)&&(e[1-i]=e[i]+l.sign*r),u=iA(e,i),null!=o&&u.span>o&&(e[1-i]=e[i]+u.sign*o),e}function iA(t,e){var n=t[e]-t[1-e];return{span:Math.abs(n),sign:n>0?-1:n<0?1:e?-1:1}}function rA(t,e){return Math.min(null!=e[1]?e[1]:1/0,Math.max(null!=e[0]?e[0]:-1/0,t))}var oA=P,aA=Math.min,sA=Math.max,lA=Math.floor,uA=Math.ceil,hA=Ki,cA=Math.PI,pA=function(){function t(t,e,n){this.type="parallel",this._axesMap=ht(),this._axesLayout={},this.dimensions=t.dimensions,this._model=t,this._init(t,e,n)}return t.prototype._init=function(t,e,n){var i=t.dimensions,r=t.parallelAxisIndex;oA(i,(function(t,n){var i=r[n],o=e.getComponent("parallelAxis",i),a=this._axesMap.set(t,new eA(t,W_(o),[0,0],o.get("type"),i)),s="category"===a.type;a.onBand=s&&o.get("boundaryGap"),a.inverse=o.get("inverse"),o.axis=a,a.model=o,a.coordinateSystem=o.coordinateSystem=this}),this)},t.prototype.update=function(t,e){this._updateAxesFromSeries(this._model,t)},t.prototype.containPoint=function(t){var e=this._makeLayoutInfo(),n=e.axisBase,i=e.layoutBase,r=e.pixelDimIndex,o=t[1-r],a=t[r];return o>=n&&o<=n+e.axisLength&&a>=i&&a<=i+e.layoutLength},t.prototype.getModel=function(){return this._model},t.prototype._updateAxesFromSeries=function(t,e){e.eachSeries((function(n){if(t.contains(n,e)){var i=n.getData();oA(this.dimensions,(function(t){var e=this._axesMap.get(t);e.scale.unionExtentFromData(i,i.mapDimension(t)),H_(e.scale,e.model)}),this)}}),this)},t.prototype.resize=function(t,e){this._rect=Lc(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()}),this._layoutAxes()},t.prototype.getRect=function(){return this._rect},t.prototype._makeLayoutInfo=function(){var t,e=this._model,n=this._rect,i=["x","y"],r=["width","height"],o=e.get("layout"),a="horizontal"===o?0:1,s=n[r[a]],l=[0,s],u=this.dimensions.length,h=dA(e.get("axisExpandWidth"),l),c=dA(e.get("axisExpandCount")||0,[0,u]),p=e.get("axisExpandable")&&u>3&&u>c&&c>1&&h>0&&s>0,d=e.get("axisExpandWindow");d?(t=dA(d[1]-d[0],l),d[1]=d[0]+t):(t=dA(h*(c-1),l),(d=[h*(e.get("axisExpandCenter")||lA(u/2))-t/2])[1]=d[0]+t);var f=(s-t)/(u-c);f<3&&(f=0);var g=[lA(hA(d[0]/h,1))+1,uA(hA(d[1]/h,1))-1],y=f/h*d[0];return{layout:o,pixelDimIndex:a,layoutBase:n[i[a]],layoutLength:s,axisBase:n[i[1-a]],axisLength:n[r[1-a]],axisExpandable:p,axisExpandWidth:h,axisCollapseWidth:f,axisExpandWindow:d,axisCount:u,winInnerIndices:g,axisExpandWindow0Pos:y}},t.prototype._layoutAxes=function(){var t=this._rect,e=this._axesMap,n=this.dimensions,i=this._makeLayoutInfo(),r=i.layout;e.each((function(t){var e=[0,i.axisLength],n=t.inverse?1:0;t.setExtent(e[n],e[1-n])})),oA(n,(function(e,n){var o=(i.axisExpandable?gA:fA)(n,i),a={horizontal:{x:o.position,y:i.axisLength},vertical:{x:0,y:o.position}},s={horizontal:cA/2,vertical:0},l=[a[r].x+t.x,a[r].y+t.y],u=s[r],h=[1,0,0,1,0,0];be(h,h,u),xe(h,h,l),this._axesLayout[e]={position:l,rotation:u,transform:h,axisNameAvailableWidth:o.axisNameAvailableWidth,axisLabelShow:o.axisLabelShow,nameTruncateMaxWidth:o.nameTruncateMaxWidth,tickDirection:1,labelDirection:1}}),this)},t.prototype.getAxis=function(t){return this._axesMap.get(t)},t.prototype.dataToPoint=function(t,e){return this.axisCoordToPoint(this._axesMap.get(e).dataToCoord(t),e)},t.prototype.eachActiveState=function(t,e,n,i){null==n&&(n=0),null==i&&(i=t.count());var r=this._axesMap,o=this.dimensions,a=[],s=[];P(o,(function(e){a.push(t.mapDimension(e)),s.push(r.get(e).model)}));for(var l=this.hasAxisBrushed(),u=n;u<i;u++){var h=void 0;if(l){h="active";for(var c=t.getValues(a,u),p=0,d=o.length;p<d;p++){if("inactive"===s[p].getActiveState(c[p])){h="inactive";break}}}else h="normal";e(h,u)}},t.prototype.hasAxisBrushed=function(){for(var t=this.dimensions,e=this._axesMap,n=!1,i=0,r=t.length;i<r;i++)"normal"!==e.get(t[i]).model.getActiveState()&&(n=!0);return n},t.prototype.axisCoordToPoint=function(t,e){return Hu([t,0],this._axesLayout[e].transform)},t.prototype.getAxisLayout=function(t){return w(this._axesLayout[t])},t.prototype.getSlidedAxisExpandWindow=function(t){var e=this._makeLayoutInfo(),n=e.pixelDimIndex,i=e.axisExpandWindow.slice(),r=i[1]-i[0],o=[0,e.axisExpandWidth*(e.axisCount-1)];if(!this.containPoint(t))return{behavior:"none",axisExpandWindow:i};var a,s=t[n]-e.layoutBase-e.axisExpandWindow0Pos,l="slide",u=e.axisCollapseWidth,h=this._model.get("axisExpandSlideTriggerArea"),c=null!=h[0];if(u)c&&u&&s<r*h[0]?(l="jump",a=s-r*h[2]):c&&u&&s>r*(1-h[0])?(l="jump",a=s-r*(1-h[2])):(a=s-r*h[1])>=0&&(a=s-r*(1-h[1]))<=0&&(a=0),(a*=e.axisExpandWidth/u)?nA(a,i,o,"all"):l="none";else{var p=i[1]-i[0];(i=[sA(0,o[1]*s/p-p/2)])[1]=aA(o[1],i[0]+p),i[0]=i[1]-p}return{axisExpandWindow:i,behavior:l}},t}();function dA(t,e){return aA(sA(t,e[0]),e[1])}function fA(t,e){var n=e.layoutLength/(e.axisCount-1);return{position:n*t,axisNameAvailableWidth:n,axisLabelShow:!0}}function gA(t,e){var n,i,r=e.layoutLength,o=e.axisExpandWidth,a=e.axisCount,s=e.axisCollapseWidth,l=e.winInnerIndices,u=s,h=!1;return t<l[0]?(n=t*s,i=s):t<=l[1]?(n=e.axisExpandWindow0Pos+t*o-e.axisExpandWindow[0],u=o,h=!0):(n=r-(a-1-t)*s,i=s),{position:n,axisNameAvailableWidth:u,axisLabelShow:h,nameTruncateMaxWidth:i}}var yA={create:function(t,e){var n=[];return t.eachComponent("parallel",(function(i,r){var o=new pA(i,t,e);o.name="parallel_"+r,o.resize(i,e),i.coordinateSystem=o,o.model=i,n.push(o)})),t.eachSeries((function(t){if("parallel"===t.get("coordinateSystem")){var e=t.getReferringComponents("parallel",Nr).models[0];t.coordinateSystem=e.coordinateSystem}})),n}},vA=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.activeIntervals=[],n}return n(e,t),e.prototype.getAreaSelectStyle=function(){return $r([["fill","color"],["lineWidth","borderWidth"],["stroke","borderColor"],["width","width"],["opacity","opacity"]])(this.getModel("areaSelectStyle"))},e.prototype.setActiveIntervals=function(t){var e=this.activeIntervals=w(t);if(e)for(var n=e.length-1;n>=0;n--)$i(e[n])},e.prototype.getActiveState=function(t){var e=this.activeIntervals;if(!e.length)return"normal";if(null==t||isNaN(+t))return"inactive";if(1===e.length){var n=e[0];if(n[0]<=t&&t<=n[1])return"active"}else for(var i=0,r=e.length;i<r;i++)if(e[i][0]<=t&&t<=e[i][1])return"active";return"inactive"},e}(zc);L(vA,K_);var mA=!0,_A=Math.min,xA=Math.max,bA=Math.pow,wA="globalPan",SA={w:[0,0],e:[0,1],n:[1,0],s:[1,1]},MA={w:"ew",e:"ew",n:"ns",s:"ns",ne:"nesw",sw:"nesw",nw:"nwse",se:"nwse"},IA={brushStyle:{lineWidth:2,stroke:"rgba(210,219,238,0.3)",fill:"#D2DBEE"},transformable:!0,brushMode:"single",removeOnClick:!1},TA=0,CA=function(t){function e(e){var n=t.call(this)||this;return n._track=[],n._covers=[],n._handlers={},n._zr=e,n.group=new Vi,n._uid="brushController_"+TA++,P(tD,(function(t,e){this._handlers[e]=B(t,this)}),n),n}return n(e,t),e.prototype.enableBrush=function(t){return this._brushType&&this._doDisableBrush(),t.brushType&&this._doEnableBrush(t),this},e.prototype._doEnableBrush=function(t){var e=this._zr;this._enableGlobalPan||function(t,e,n){tM(t)[e]=n}(e,wA,this._uid),P(this._handlers,(function(t,n){e.on(n,t)})),this._brushType=t.brushType,this._brushOption=S(w(IA),t,!0)},e.prototype._doDisableBrush=function(){var t=this._zr;!function(t,e,n){var i=tM(t);i[e]===n&&(i[e]=null)}(t,wA,this._uid),P(this._handlers,(function(e,n){t.off(n,e)})),this._brushType=this._brushOption=null},e.prototype.setPanels=function(t){if(t&&t.length){var e=this._panels={};P(t,(function(t){e[t.panelId]=w(t)}))}else this._panels=null;return this},e.prototype.mount=function(t){t=t||{},this._enableGlobalPan=t.enableGlobalPan;var e=this.group;return this._zr.add(e),e.attr({x:t.x||0,y:t.y||0,rotation:t.rotation||0,scaleX:t.scaleX||1,scaleY:t.scaleY||1}),this._transform=e.getLocalTransform(),this},e.prototype.updateCovers=function(t){t=O(t,(function(t){return S(w(IA),t,!0)}));var e=this._covers,n=this._covers=[],i=this,r=this._creatingCover;return new am(e,t,(function(t,e){return o(t.__brushOption,e)}),o).add(a).update(a).remove((function(t){e[t]!==r&&i.group.remove(e[t])})).execute(),this;function o(t,e){return(null!=t.id?t.id:"\0-brush-index-"+e)+"-"+t.brushType}function a(o,a){var s=t[o];if(null!=a&&e[a]===r)n[o]=e[a];else{var l=n[o]=null!=a?(e[a].__brushOption=s,e[a]):DA(i,AA(i,s));PA(i,l)}}},e.prototype.unmount=function(){return this.enableBrush(!1),EA(this),this._zr.remove(this.group),this},e.prototype.dispose=function(){this.unmount(),this.off()},e}(Ht);function AA(t,e){var n=nD[e.brushType].createCover(t,e);return n.__brushOption=e,kA(n,e),t.group.add(n),n}function DA(t,e){var n=OA(e);return n.endCreating&&(n.endCreating(t,e),kA(e,e.__brushOption)),e}function LA(t,e){var n=e.__brushOption;OA(e).updateCoverShape(t,e,n.range,n)}function kA(t,e){var n=e.z;null==n&&(n=1e4),t.traverse((function(t){t.z=n,t.z2=n}))}function PA(t,e){OA(e).updateCommon(t,e),LA(t,e)}function OA(t){return nD[t.__brushOption.brushType]}function RA(t,e,n){var i,r=t._panels;if(!r)return mA;var o=t._transform;return P(r,(function(t){t.isTargetByCursor(e,n,o)&&(i=t)})),i}function NA(t,e){var n=t._panels;if(!n)return mA;var i=e.__brushOption.panelId;return null!=i?n[i]:mA}function EA(t){var e=t._covers,n=e.length;return P(e,(function(e){t.group.remove(e)}),t),e.length=0,!!n}function zA(t,e){var n=O(t._covers,(function(t){var e=t.__brushOption,n=w(e.range);return{brushType:e.brushType,panelId:e.panelId,range:n}}));t.trigger("brush",{areas:n,isEnd:!!e.isEnd,removeOnClick:!!e.removeOnClick})}function BA(t){var e=t.length-1;return e<0&&(e=0),[t[0],t[e]]}function VA(t,e,n,i){var r=new Vi;return r.add(new ss({name:"main",style:WA(n),silent:!0,draggable:!0,cursor:"move",drift:V(UA,t,e,r,["n","s","w","e"]),ondragend:V(zA,e,{isEnd:!0})})),P(i,(function(n){r.add(new ss({name:n.join(""),style:{opacity:0},draggable:!0,silent:!0,invisible:!0,drift:V(UA,t,e,r,n),ondragend:V(zA,e,{isEnd:!0})}))})),r}function FA(t,e,n,i){var r=i.brushStyle.lineWidth||0,o=xA(r,6),a=n[0][0],s=n[1][0],l=a-r/2,u=s-r/2,h=n[0][1],c=n[1][1],p=h-o+r/2,d=c-o+r/2,f=h-a,g=c-s,y=f+r,v=g+r;HA(t,e,"main",a,s,f,g),i.transformable&&(HA(t,e,"w",l,u,o,v),HA(t,e,"e",p,u,o,v),HA(t,e,"n",l,u,y,o),HA(t,e,"s",l,d,y,o),HA(t,e,"nw",l,u,o,o),HA(t,e,"ne",p,u,o,o),HA(t,e,"sw",l,d,o,o),HA(t,e,"se",p,d,o,o))}function GA(t,e){var n=e.__brushOption,i=n.transformable,r=e.childAt(0);r.useStyle(WA(n)),r.attr({silent:!i,cursor:i?"move":"default"}),P([["w"],["e"],["n"],["s"],["s","e"],["s","w"],["n","e"],["n","w"]],(function(n){var r=e.childOfName(n.join("")),o=1===n.length?XA(t,n[0]):function(t,e){var n=[XA(t,e[0]),XA(t,e[1])];return("e"===n[0]||"w"===n[0])&&n.reverse(),n.join("")}(t,n);r&&r.attr({silent:!i,invisible:!i,cursor:i?MA[o]+"-resize":null})}))}function HA(t,e,n,i,r,o,a){var s=e.childOfName(n);s&&s.setShape(function(t){var e=_A(t[0][0],t[1][0]),n=_A(t[0][1],t[1][1]),i=xA(t[0][0],t[1][0]),r=xA(t[0][1],t[1][1]);return{x:e,y:n,width:i-e,height:r-n}}(qA(t,e,[[i,r],[i+o,r+a]])))}function WA(t){return T({strokeNoScale:!0},t.brushStyle)}function YA(t,e,n,i){var r=[_A(t,n),_A(e,i)],o=[xA(t,n),xA(e,i)];return[[r[0],o[0]],[r[1],o[1]]]}function XA(t,e){return{left:"w",right:"e",top:"n",bottom:"s"}[Wu({w:"left",e:"right",n:"top",s:"bottom"}[e],function(t){return Gu(t.group)}(t))]}function UA(t,e,n,i,r,o){var a=n.__brushOption,s=t.toRectRange(a.range),l=jA(e,r,o);P(i,(function(t){var e=SA[t];s[e[0]][e[1]]+=l[e[0]]})),a.range=t.fromRectRange(YA(s[0][0],s[1][0],s[0][1],s[1][1])),PA(e,n),zA(e,{isEnd:!1})}function ZA(t,e,n,i){var r=e.__brushOption.range,o=jA(t,n,i);P(r,(function(t){t[0]+=o[0],t[1]+=o[1]})),PA(t,e),zA(t,{isEnd:!1})}function jA(t,e,n){var i=t.group,r=i.transformCoordToLocal(e,n),o=i.transformCoordToLocal(0,0);return[r[0]-o[0],r[1]-o[1]]}function qA(t,e,n){var i=NA(t,e);return i&&i!==mA?i.clipPath(n,t._transform):w(n)}function KA(t){var e=t.event;e.preventDefault&&e.preventDefault()}function $A(t,e,n){return t.childOfName("main").contain(e,n)}function JA(t,e,n,i){var r,o=t._creatingCover,a=t._creatingPanel,s=t._brushOption;if(t._track.push(n.slice()),function(t){var e=t._track;if(!e.length)return!1;var n=e[e.length-1],i=e[0],r=n[0]-i[0],o=n[1]-i[1];return bA(r*r+o*o,.5)>6}(t)||o){if(a&&!o){"single"===s.brushMode&&EA(t);var l=w(s);l.brushType=QA(l.brushType,a),l.panelId=a===mA?null:a.panelId,o=t._creatingCover=AA(t,l),t._covers.push(o)}if(o){var u=nD[QA(t._brushType,a)];o.__brushOption.range=u.getCreatingRange(qA(t,o,t._track)),i&&(DA(t,o),u.updateCommon(t,o)),LA(t,o),r={isEnd:i}}}else i&&"single"===s.brushMode&&s.removeOnClick&&RA(t,e,n)&&EA(t)&&(r={isEnd:i,removeOnClick:!0});return r}function QA(t,e){return"auto"===t?e.defaultBrushType:t}var tD={mousedown:function(t){if(this._dragging)eD(this,t);else if(!t.target||!t.target.draggable){KA(t);var e=this.group.transformCoordToLocal(t.offsetX,t.offsetY);this._creatingCover=null,(this._creatingPanel=RA(this,t,e))&&(this._dragging=!0,this._track=[e.slice()])}},mousemove:function(t){var e=t.offsetX,n=t.offsetY,i=this.group.transformCoordToLocal(e,n);if(function(t,e,n){if(t._brushType&&!function(t,e,n){var i=t._zr;return e<0||e>i.getWidth()||n<0||n>i.getHeight()}(t,e.offsetX,e.offsetY)){var i=t._zr,r=t._covers,o=RA(t,e,n);if(!t._dragging)for(var a=0;a<r.length;a++){var s=r[a].__brushOption;if(o&&(o===mA||s.panelId===o.panelId)&&nD[s.brushType].contain(r[a],n[0],n[1]))return}o&&i.setCursorStyle("crosshair")}}(this,t,i),this._dragging){KA(t);var r=JA(this,t,i,!1);r&&zA(this,r)}},mouseup:function(t){eD(this,t)}};function eD(t,e){if(t._dragging){KA(e);var n=e.offsetX,i=e.offsetY,r=t.group.transformCoordToLocal(n,i),o=JA(t,e,r,!0);t._dragging=!1,t._track=[],t._creatingCover=null,o&&zA(t,o)}}var nD={lineX:iD(0),lineY:iD(1),rect:{createCover:function(t,e){function n(t){return t}return VA({toRectRange:n,fromRectRange:n},t,e,[["w"],["e"],["n"],["s"],["s","e"],["s","w"],["n","e"],["n","w"]])},getCreatingRange:function(t){var e=BA(t);return YA(e[1][0],e[1][1],e[0][0],e[0][1])},updateCoverShape:function(t,e,n,i){FA(t,e,n,i)},updateCommon:GA,contain:$A},polygon:{createCover:function(t,e){var n=new Vi;return n.add(new Ql({name:"main",style:WA(e),silent:!0})),n},getCreatingRange:function(t){return t},endCreating:function(t,e){e.remove(e.childAt(0)),e.add(new $l({name:"main",draggable:!0,drift:V(ZA,t,e),ondragend:V(zA,t,{isEnd:!0})}))},updateCoverShape:function(t,e,n,i){e.childAt(0).setShape({points:qA(t,e,n)})},updateCommon:GA,contain:$A}};function iD(t){return{createCover:function(e,n){return VA({toRectRange:function(e){var n=[e,[0,100]];return t&&n.reverse(),n},fromRectRange:function(e){return e[t]}},e,n,[[["w"],["e"]],[["n"],["s"]]][t])},getCreatingRange:function(e){var n=BA(e);return[_A(n[0][t],n[1][t]),xA(n[0][t],n[1][t])]},updateCoverShape:function(e,n,i,r){var o,a=NA(e,n);if(a!==mA&&a.getLinearBrushOtherExtent)o=a.getLinearBrushOtherExtent(t);else{var s=e._zr;o=[0,[s.getWidth(),s.getHeight()][1-t]]}var l=[i,o];t&&l.reverse(),FA(e,n,l,r)},updateCommon:GA,contain:$A}}function rD(t){return t=sD(t),function(e){return Uu(e,t)}}function oD(t,e){return t=sD(t),function(n){var i=null!=e?e:n,r=i?t.width:t.height,o=i?t.x:t.y;return[o,o+(r||0)]}}function aD(t,e,n){var i=sD(t);return function(t,r){return i.contain(r[0],r[1])&&!lM(t,e,n)}}function sD(t){return En.create(t)}var lD=["axisLine","axisTickLabel","axisName"],uD=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(e,n){t.prototype.init.apply(this,arguments),(this._brushController=new CA(n.getZr())).on("brush",B(this._onBrush,this))},e.prototype.render=function(t,e,n,i){if(!function(t,e,n){return n&&"axisAreaSelect"===n.type&&e.findComponents({mainType:"parallelAxis",query:n})[0]===t}(t,e,i)){this.axisModel=t,this.api=n,this.group.removeAll();var r=this._axisGroup;if(this._axisGroup=new Vi,this.group.add(this._axisGroup),t.get("show")){var o=function(t,e){return e.getComponent("parallel",t.get("parallelIndex"))}(t,e),a=o.coordinateSystem,s=t.getAreaSelectStyle(),l=s.width,u=t.axis.dim,h=I({strokeContainThreshold:l},a.getAxisLayout(u)),c=new pS(t,h);P(lD,c.add,c),this._axisGroup.add(c.getGroup()),this._refreshBrushController(h,s,t,o,l,n),Xu(r,this._axisGroup,t)}}},e.prototype._refreshBrushController=function(t,e,n,i,r,o){var a=n.axis.getExtent(),s=a[1]-a[0],l=Math.min(30,.1*Math.abs(s)),u=En.create({x:a[0],y:-r/2,width:s,height:r});u.x-=l,u.width+=2*l,this._brushController.mount({enableGlobalPan:!0,rotation:t.rotation,x:t.position[0],y:t.position[1]}).setPanels([{panelId:"pl",clipPath:rD(u),isTargetByCursor:aD(u,o,i),getLinearBrushOtherExtent:oD(u,0)}]).enableBrush({brushType:"lineX",brushStyle:e,removeOnClick:!0}).updateCovers(function(t){var e=t.axis;return O(t.activeIntervals,(function(t){return{brushType:"lineX",panelId:"pl",range:[e.dataToCoord(t[0],!0),e.dataToCoord(t[1],!0)]}}))}(n))},e.prototype._onBrush=function(t){var e=t.areas,n=this.axisModel,i=n.axis,r=O(e,(function(t){return[i.coordToData(t.range[0],!0),i.coordToData(t.range[1],!0)]}));(!n.option.realtime===t.isEnd||t.removeOnClick)&&this.api.dispatchAction({type:"axisAreaSelect",parallelAxisId:n.id,intervals:r})},e.prototype.dispose=function(){this._brushController.dispose()},e.type="parallelAxis",e}(ff);var hD={type:"axisAreaSelect",event:"axisAreaSelected"};var cD={type:"value",areaSelectStyle:{width:20,borderWidth:1,borderColor:"rgba(160,197,232)",color:"rgba(160,197,232)",opacity:.3},realtime:!0,z:10};function pD(t){t.registerComponentView($C),t.registerComponentModel(tA),t.registerCoordinateSystem("parallel",yA),t.registerPreprocessor(KC),t.registerComponentModel(vA),t.registerComponentView(uD),$w(t,"parallel",vA,cD),function(t){t.registerAction(hD,(function(t,e){e.eachComponent({mainType:"parallelAxis",query:t},(function(e){e.axis.model.setActiveIntervals(t.intervals)}))})),t.registerAction("parallelAxisExpand",(function(t,e){e.eachComponent({mainType:"parallel",query:t},(function(e){e.setAxisExpand(t)}))}))}(t)}var dD=function(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.cpx1=0,this.cpy1=0,this.cpx2=0,this.cpy2=0,this.extent=0},fD=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultShape=function(){return new dD},e.prototype.buildPath=function(t,e){var n=e.extent;t.moveTo(e.x1,e.y1),t.bezierCurveTo(e.cpx1,e.cpy1,e.cpx2,e.cpy2,e.x2,e.y2),"vertical"===e.orient?(t.lineTo(e.x2+n,e.y2),t.bezierCurveTo(e.cpx2+n,e.cpy2,e.cpx1+n,e.cpy1,e.x1+n,e.y1)):(t.lineTo(e.x2,e.y2+n),t.bezierCurveTo(e.cpx2,e.cpy2+n,e.cpx1,e.cpy1+n,e.x1,e.y1+n)),t.closePath()},e.prototype.highlight=function(){Ys(this)},e.prototype.downplay=function(){Xs(this)},e}(qa),gD=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._focusAdjacencyDisabled=!1,n}return n(e,t),e.prototype.render=function(t,e,n){var i=this,r=t.getGraph(),o=this.group,a=t.layoutInfo,s=a.width,l=a.height,u=t.getData(),h=t.getData("edge"),c=t.get("orient");this._model=t,o.removeAll(),o.x=a.x,o.y=a.y,r.eachEdge((function(e){var n=new fD,i=ms(n);i.dataIndex=e.dataIndex,i.seriesIndex=t.seriesIndex,i.dataType="edge";var r,a,u,p,d,f,g,y,v=e.getModel(),m=v.getModel("lineStyle"),_=m.get("curveness"),x=e.node1.getLayout(),b=e.node1.getModel(),w=b.get("localX"),S=b.get("localY"),M=e.node2.getLayout(),I=e.node2.getModel(),T=I.get("localX"),C=I.get("localY"),A=e.getLayout();switch(n.shape.extent=Math.max(1,A.dy),n.shape.orient=c,"vertical"===c?(r=(null!=w?w*s:x.x)+A.sy,a=(null!=S?S*l:x.y)+x.dy,u=(null!=T?T*s:M.x)+A.ty,d=r,f=a*(1-_)+(p=null!=C?C*l:M.y)*_,g=u,y=a*_+p*(1-_)):(r=(null!=w?w*s:x.x)+x.dx,a=(null!=S?S*l:x.y)+A.sy,d=r*(1-_)+(u=null!=T?T*s:M.x)*_,f=a,g=r*_+u*(1-_),y=p=(null!=C?C*l:M.y)+A.ty),n.setShape({x1:r,y1:a,x2:u,y2:p,cpx1:d,cpy1:f,cpx2:g,cpy2:y}),n.useStyle(m.getItemStyle()),n.style.fill){case"source":n.style.fill=e.node1.getVisual("color"),n.style.decal=e.node1.getVisual("style").decal;break;case"target":n.style.fill=e.node2.getVisual("color"),n.style.decal=e.node2.getVisual("style").decal;break;case"gradient":var D=e.node1.getVisual("color"),L=e.node2.getVisual("color");"string"==typeof D&&"string"==typeof L&&(n.style.fill=new cu(0,0,1,0,[{color:D,offset:0},{color:L,offset:1}]))}var k=v.getModel("emphasis");rl(n,v,"lineStyle",(function(t){return t.getItemStyle()})),o.add(n),h.setItemGraphicEl(e.dataIndex,n);var P=k.get("focus");tl(n,"adjacency"===P?e.getAdjacentDataIndices():P,k.get("blurScope")),ms(n).dataType="edge"})),r.eachNode((function(e){var n=e.getLayout(),i=e.getModel(),r=i.get("localX"),a=i.get("localY"),h=i.getModel("emphasis"),c=new ss({shape:{x:null!=r?r*s:n.x,y:null!=a?a*l:n.y,width:n.dx,height:n.dy},style:i.getModel("itemStyle").getItemStyle()});nh(c,ih(i),{labelFetcher:t,labelDataIndex:e.dataIndex,defaultText:e.id}),c.disableLabelAnimation=!0,c.setStyle("fill",e.getVisual("color")),c.setStyle("decal",e.getVisual("style").decal),rl(c,i),o.add(c),u.setItemGraphicEl(e.dataIndex,c),ms(c).dataType="node";var p=h.get("focus");tl(c,"adjacency"===p?e.getAdjacentDataIndices():p,h.get("blurScope"))})),u.eachItemGraphicEl((function(e,r){u.getItemModel(r).get("draggable")&&(e.drift=function(e,o){i._focusAdjacencyDisabled=!0,this.shape.x+=e,this.shape.y+=o,this.dirty(),n.dispatchAction({type:"dragNode",seriesId:t.id,dataIndex:u.getRawIndex(r),localX:this.shape.x/s,localY:this.shape.y/l})},e.ondragend=function(){i._focusAdjacencyDisabled=!1},e.draggable=!0,e.cursor="move")})),!this._data&&t.isAnimationEnabled()&&o.setClipPath(function(t,e,n){var i=new ss({shape:{x:t.x-10,y:t.y-10,width:0,height:t.height+20}});return Eu(i,{shape:{width:t.width+20}},e,n),i}(o.getBoundingRect(),t,(function(){o.removeClipPath()}))),this._data=t.getData()},e.prototype.dispose=function(){},e.type="sankey",e}(mf);var yD=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.getInitialData=function(t,e){var n=t.edges||t.links,i=t.data||t.nodes,r=t.levels;this.levelModels=[];for(var o=this.levelModels,a=0;a<r.length;a++)null!=r[a].depth&&r[a].depth>=0&&(o[r[a].depth]=new Ih(r[a],this,e));if(i&&n)return CC(i,n,this,!0,(function(t,e){t.wrapMethod("getItemModel",(function(t,e){var n=t.parentModel,i=n.getData().getItemLayout(e);if(i){var r=i.depth,o=n.levelModels[r];o&&(t.parentModel=o)}return t})),e.wrapMethod("getItemModel",(function(t,e){var n=t.parentModel,i=n.getGraph().getEdgeByIndex(e).node1.getLayout();if(i){var r=i.depth,o=n.levelModels[r];o&&(t.parentModel=o)}return t}))})).data},e.prototype.setNodePosition=function(t,e){var n=this.option.data[t];n.localX=e[0],n.localY=e[1]},e.prototype.getGraph=function(){return this.getData().graph},e.prototype.getEdgeData=function(){return this.getGraph().edgeData},e.prototype.formatTooltip=function(t,e,n){function i(t){return isNaN(t)||null==t}if("edge"===n){var r=this.getDataParams(t,n),o=r.data,a=r.value;return Ud("nameValue",{name:o.source+" -- "+o.target,value:a,noValue:i(a)})}var s=this.getGraph().getNodeByIndex(t).getLayout().value,l=this.getDataParams(t,n).data.name;return Ud("nameValue",{name:null!=l?l+"":null,value:s,noValue:i(s)})},e.prototype.optionUpdated=function(){var t=this.option;!0===t.focusNodeAdjacency&&(t.focusNodeAdjacency="allEdges")},e.prototype.getDataParams=function(e,n){var i=t.prototype.getDataParams.call(this,e,n);if(null==i.value&&"node"===n){var r=this.getGraph().getNodeByIndex(e).getLayout().value;i.value=r}return i},e.type="series.sankey",e.defaultOption={zlevel:0,z:2,coordinateSystem:"view",left:"5%",top:"5%",right:"20%",bottom:"5%",orient:"horizontal",nodeWidth:20,nodeGap:8,draggable:!0,focusNodeAdjacency:!1,layoutIterations:32,label:{show:!0,position:"right",fontSize:12},levels:[],nodeAlign:"justify",lineStyle:{color:"#314656",opacity:.2,curveness:.5},emphasis:{label:{show:!0},lineStyle:{opacity:.5}},select:{itemStyle:{borderColor:"#212121"}},animationEasing:"linear",animationDuration:1e3},e}(af);function vD(t,e){t.eachSeriesByType("sankey",(function(t){var n=t.get("nodeWidth"),i=t.get("nodeGap"),r=function(t,e){return Lc(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}(t,e);t.layoutInfo=r;var o=r.width,a=r.height,s=t.getGraph(),l=s.nodes,u=s.edges;!function(t){P(t,(function(t){var e=CD(t.outEdges,TD),n=CD(t.inEdges,TD),i=t.getValue()||0,r=Math.max(e,n,i);t.setLayout({value:r},!0)}))}(l),function(t,e,n,i,r,o,a,s,l){(function(t,e,n,i,r,o,a){for(var s=[],l=[],u=[],h=[],c=0,p=0;p<e.length;p++)s[p]=1;for(p=0;p<t.length;p++)l[p]=t[p].inEdges.length,0===l[p]&&u.push(t[p]);var d=-1;for(;u.length;){for(var f=0;f<u.length;f++){var g=u[f],y=g.hostGraph.data.getRawDataItem(g.dataIndex),v=null!=y.depth&&y.depth>=0;v&&y.depth>d&&(d=y.depth),g.setLayout({depth:v?y.depth:c},!0),"vertical"===o?g.setLayout({dy:n},!0):g.setLayout({dx:n},!0);for(var m=0;m<g.outEdges.length;m++){var _=g.outEdges[m];s[e.indexOf(_)]=0;var x=_.node2;0==--l[t.indexOf(x)]&&h.indexOf(x)<0&&h.push(x)}}++c,u=h,h=[]}for(p=0;p<s.length;p++)if(1===s[p])throw new Error("Sankey is a DAG, the original data has cycle!");var b=d>c-1?d:c-1;a&&"left"!==a&&function(t,e,n,i){if("right"===e){for(var r=[],o=t,a=0;o.length;){for(var s=0;s<o.length;s++){var l=o[s];l.setLayout({skNodeHeight:a},!0);for(var u=0;u<l.inEdges.length;u++){var h=l.inEdges[u];r.indexOf(h.node1)<0&&r.push(h.node1)}}o=r,r=[],++a}P(t,(function(t){mD(t)||t.setLayout({depth:Math.max(0,i-t.getLayout().skNodeHeight)},!0)}))}else"justify"===e&&function(t,e){P(t,(function(t){mD(t)||t.outEdges.length||t.setLayout({depth:e},!0)}))}(t,i)}(t,a,0,b);!function(t,e,n){P(t,(function(t){var i=t.getLayout().depth*e;"vertical"===n?t.setLayout({y:i},!0):t.setLayout({x:i},!0)}))}(t,"vertical"===o?(r-n)/b:(i-n)/b,o)})(t,e,n,r,o,s,l),function(t,e,n,i,r,o,a){var s=function(t,e){var n=[],i="vertical"===e?"y":"x",r=Vr(t,(function(t){return t.getLayout()[i]}));return r.keys.sort((function(t,e){return t-e})),P(r.keys,(function(t){n.push(r.buckets.get(t))})),n}(t,a);(function(t,e,n,i,r,o){var a=1/0;P(t,(function(t){var e=t.length,s=0;P(t,(function(t){s+=t.getLayout().value}));var l="vertical"===o?(i-(e-1)*r)/s:(n-(e-1)*r)/s;l<a&&(a=l)})),P(t,(function(t){P(t,(function(t,e){var n=t.getLayout().value*a;"vertical"===o?(t.setLayout({x:e},!0),t.setLayout({dx:n},!0)):(t.setLayout({y:e},!0),t.setLayout({dy:n},!0))}))})),P(e,(function(t){var e=+t.getValue()*a;t.setLayout({dy:e},!0)}))})(s,e,n,i,r,a),_D(s,r,n,i,a);for(var l=1;o>0;o--)xD(s,l*=.99,a),_D(s,r,n,i,a),AD(s,l,a),_D(s,r,n,i,a)}(t,e,o,r,i,a,s),function(t,e){var n="vertical"===e?"x":"y";P(t,(function(t){t.outEdges.sort((function(t,e){return t.node2.getLayout()[n]-e.node2.getLayout()[n]})),t.inEdges.sort((function(t,e){return t.node1.getLayout()[n]-e.node1.getLayout()[n]}))})),P(t,(function(t){var e=0,n=0;P(t.outEdges,(function(t){t.setLayout({sy:e},!0),e+=t.getLayout().dy})),P(t.inEdges,(function(t){t.setLayout({ty:n},!0),n+=t.getLayout().dy}))}))}(t,s)}(l,u,n,i,o,a,0!==N(l,(function(t){return 0===t.getLayout().value})).length?0:t.get("layoutIterations"),t.get("orient"),t.get("nodeAlign"))}))}function mD(t){var e=t.hostGraph.data.getRawDataItem(t.dataIndex);return null!=e.depth&&e.depth>=0}function _D(t,e,n,i,r){var o="vertical"===r?"x":"y";P(t,(function(t){var a,s,l;t.sort((function(t,e){return t.getLayout()[o]-e.getLayout()[o]}));for(var u=0,h=t.length,c="vertical"===r?"dx":"dy",p=0;p<h;p++)(l=u-(s=t[p]).getLayout()[o])>0&&(a=s.getLayout()[o]+l,"vertical"===r?s.setLayout({x:a},!0):s.setLayout({y:a},!0)),u=s.getLayout()[o]+s.getLayout()[c]+e;if((l=u-e-("vertical"===r?i:n))>0){a=s.getLayout()[o]-l,"vertical"===r?s.setLayout({x:a},!0):s.setLayout({y:a},!0),u=a;for(p=h-2;p>=0;--p)(l=(s=t[p]).getLayout()[o]+s.getLayout()[c]+e-u)>0&&(a=s.getLayout()[o]-l,"vertical"===r?s.setLayout({x:a},!0):s.setLayout({y:a},!0)),u=s.getLayout()[o]}}))}function xD(t,e,n){P(t.slice().reverse(),(function(t){P(t,(function(t){if(t.outEdges.length){var i=CD(t.outEdges,bD,n)/CD(t.outEdges,TD);if(isNaN(i)){var r=t.outEdges.length;i=r?CD(t.outEdges,wD,n)/r:0}if("vertical"===n){var o=t.getLayout().x+(i-ID(t,n))*e;t.setLayout({x:o},!0)}else{var a=t.getLayout().y+(i-ID(t,n))*e;t.setLayout({y:a},!0)}}}))}))}function bD(t,e){return ID(t.node2,e)*t.getValue()}function wD(t,e){return ID(t.node2,e)}function SD(t,e){return ID(t.node1,e)*t.getValue()}function MD(t,e){return ID(t.node1,e)}function ID(t,e){return"vertical"===e?t.getLayout().x+t.getLayout().dx/2:t.getLayout().y+t.getLayout().dy/2}function TD(t){return t.getValue()}function CD(t,e,n){for(var i=0,r=t.length,o=-1;++o<r;){var a=+e(t[o],n);isNaN(a)||(i+=a)}return i}function AD(t,e,n){P(t,(function(t){P(t,(function(t){if(t.inEdges.length){var i=CD(t.inEdges,SD,n)/CD(t.inEdges,TD);if(isNaN(i)){var r=t.inEdges.length;i=r?CD(t.inEdges,MD,n)/r:0}if("vertical"===n){var o=t.getLayout().x+(i-ID(t,n))*e;t.setLayout({x:o},!0)}else{var a=t.getLayout().y+(i-ID(t,n))*e;t.setLayout({y:a},!0)}}}))}))}function DD(t){t.eachSeriesByType("sankey",(function(t){var e=t.getGraph().nodes;if(e.length){var n=1/0,i=-1/0;P(e,(function(t){var e=t.getLayout().value;e<n&&(n=e),e>i&&(i=e)})),P(e,(function(e){var r=new KI({type:"color",mappingMethod:"linear",dataExtent:[n,i],visual:t.get("color")}).mapValueToVisual(e.getLayout().value),o=e.getModel().get(["itemStyle","color"]);null!=o?(e.setVisual("color",o),e.setVisual("style",{fill:o})):(e.setVisual("color",r),e.setVisual("style",{fill:r}))}))}}))}var LD=function(){function t(){}return t.prototype.getInitialData=function(t,e){var n,i,r=e.getComponent("xAxis",this.get("xAxisIndex")),o=e.getComponent("yAxis",this.get("yAxisIndex")),a=r.get("type"),s=o.get("type");"category"===a?(t.layout="horizontal",n=r.getOrdinalMeta(),i=!0):"category"===s?(t.layout="vertical",n=o.getOrdinalMeta(),i=!0):t.layout=t.layout||"horizontal";var l=["x","y"],u="horizontal"===t.layout?0:1,h=this._baseAxisDim=l[u],c=l[1-u],p=[r,o],d=p[u].get("type"),f=p[1-u].get("type"),g=t.data;if(g&&i){var y=[];P(g,(function(t,e){var n;F(t)?(n=t.slice(),t.unshift(e)):F(t.value)?(n=t.value.slice(),t.value.unshift(e)):n=t,y.push(n)})),t.data=y}var v=this.defaultValueDimensions,m=[{name:h,type:lm(d),ordinalMeta:n,otherDims:{tooltip:!1,itemName:0},dimsDef:["base"]},{name:c,type:lm(f),dimsDef:v.slice()}];return Ew(this,{coordDimensions:m,dimensionsCount:v.length+1,encodeDefaulter:V(tp,m,this)})},t.prototype.getBaseAxis=function(){var t=this._baseAxisDim;return this.ecModel.getComponent(t+"Axis",this.get(t+"AxisIndex")).axis},t}(),kD=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.defaultValueDimensions=[{name:"min",defaultTooltip:!0},{name:"Q1",defaultTooltip:!0},{name:"median",defaultTooltip:!0},{name:"Q3",defaultTooltip:!0},{name:"max",defaultTooltip:!0}],n.visualDrawType="stroke",n}return n(e,t),e.type="series.boxplot",e.dependencies=["xAxis","yAxis","grid"],e.defaultOption={zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,layout:null,boxWidth:[7,50],itemStyle:{color:"#fff",borderWidth:1},emphasis:{scale:!0,itemStyle:{borderWidth:2,shadowBlur:5,shadowOffsetX:1,shadowOffsetY:1,shadowColor:"rgba(0,0,0,0.2)"}},animationDuration:800},e}(af);L(kD,LD,!0);var PD=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){var i=t.getData(),r=this.group,o=this._data;this._data||r.removeAll();var a="horizontal"===t.get("layout")?1:0;i.diff(o).add((function(t){if(i.hasValue(t)){var e=ND(i.getItemLayout(t),i,t,a,!0);i.setItemGraphicEl(t,e),r.add(e)}})).update((function(t,e){var n=o.getItemGraphicEl(e);if(i.hasValue(t)){var s=i.getItemLayout(t);n?ED(s,n,i,t):n=ND(s,i,t,a),r.add(n),i.setItemGraphicEl(t,n)}else r.remove(n)})).remove((function(t){var e=o.getItemGraphicEl(t);e&&r.remove(e)})).execute(),this._data=i},e.prototype.remove=function(t){var e=this.group,n=this._data;this._data=null,n&&n.eachItemGraphicEl((function(t){t&&e.remove(t)}))},e.type="boxplot",e}(mf),OD=function(){},RD=function(t){function e(e){var n=t.call(this,e)||this;return n.type="boxplotBoxPath",n}return n(e,t),e.prototype.getDefaultShape=function(){return new OD},e.prototype.buildPath=function(t,e){var n=e.points,i=0;for(t.moveTo(n[i][0],n[i][1]),i++;i<4;i++)t.lineTo(n[i][0],n[i][1]);for(t.closePath();i<n.length;i++)t.moveTo(n[i][0],n[i][1]),i++,t.lineTo(n[i][0],n[i][1])},e}(qa);function ND(t,e,n,i,r){var o=t.ends,a=new RD({shape:{points:r?zD(o,i,t):o}});return ED(t,a,e,n,r),a}function ED(t,e,n,i,r){var o=n.hostModel;(0,Ju[r?"initProps":"updateProps"])(e,{shape:{points:t.ends}},o,i),e.useStyle(n.getItemVisual(i,"style")),e.style.strokeNoScale=!0,e.z2=100;var a=n.getItemModel(i);rl(e,a),tl(e,a.get(["emphasis","focus"]),a.get(["emphasis","blurScope"]))}function zD(t,e,n){return O(t,(function(t){return(t=t.slice())[e]=n.initBaseline,t}))}function BD(t,e){t.eachRawSeriesByType("boxplot",(function(t){t.getData().setVisual("legendSymbol","roundRect")}))}var VD=P;function FD(t){var e=function(t){var e=[],n=[];return t.eachSeriesByType("boxplot",(function(t){var i=t.getBaseAxis(),r=A(n,i);r<0&&(r=n.length,n[r]=i,e[r]={axis:i,seriesModels:[]}),e[r].seriesModels.push(t)})),e}(t);VD(e,(function(t){var e=t.seriesModels;e.length&&(!function(t){var e,n,i=t.axis,r=t.seriesModels,o=r.length,a=t.boxWidthList=[],s=t.boxOffsetList=[],l=[];if("category"===i.type)n=i.getBandWidth();else{var u=0;VD(r,(function(t){u=Math.max(u,t.getData().count())})),e=i.getExtent(),Math.abs(e[1]-e[0])}VD(r,(function(t){var e=t.get("boxWidth");F(e)||(e=[e,e]),l.push([qi(e[0],n)||0,qi(e[1],n)||0])}));var h=.8*n-2,c=h/o*.3,p=(h-c*(o-1))/o,d=p/2-h/2;VD(r,(function(t,e){s.push(d),d+=c+p,a.push(Math.min(Math.max(p,l[e][0]),l[e][1]))}))}(t),VD(e,(function(e,n){!function(t,e,n){var i=t.coordinateSystem,r=t.getData(),o=n/2,a="horizontal"===t.get("layout")?0:1,s=1-a,l=["x","y"],u=r.mapDimension(l[a]),h=r.mapDimensionsAll(l[s]);if(null==u||h.length<5)return;for(var c=0;c<r.count();c++){var p=r.get(u,c),d=_(p,h[2],c),f=_(p,h[0],c),g=_(p,h[1],c),y=_(p,h[3],c),v=_(p,h[4],c),m=[];x(m,g,!1),x(m,y,!0),m.push(f,g,v,y),b(m,f),b(m,v),b(m,d),r.setItemLayout(c,{initBaseline:d[s],ends:m})}function _(t,n,o){var l,u=r.get(n,o),h=[];return h[a]=t,h[s]=u,isNaN(t)||isNaN(u)?l=[NaN,NaN]:(l=i.dataToPoint(h))[a]+=e,l}function x(t,e,n){var i=e.slice(),r=e.slice();i[a]+=o,r[a]-=o,n?t.push(i,r):t.push(r,i)}function b(t,e){var n=e.slice(),i=e.slice();n[a]-=o,i[a]+=o,t.push(n,i)}}(e,t.boxOffsetList[n],t.boxWidthList[n])})))}))}var GD={type:"echarts:boxplot",transform:function(t){var e=t.upstream;if(e.sourceFormat!==Wc){var n="";0,mr(n)}var i=function(t,e){for(var n=[],i=[],r=(e=e||{}).boundIQR,o="none"===r||0===r,a=0;a<t.length;a++){var s=$i(t[a].slice()),l=hr(s,.25),u=hr(s,.5),h=hr(s,.75),c=s[0],p=s[s.length-1],d=(null==r?1.5:r)*(h-l),f=o?c:Math.max(c,l-d),g=o?p:Math.min(p,h+d),y=e.itemNameFormatter,v=G(y)?y({value:a}):H(y)?y.replace("{value}",a+""):a+"";n.push([v,f,l,u,h,g]);for(var m=0;m<s.length;m++){var _=s[m];if(_<f||_>g){var x=[v,_];i.push(x)}}}return{boxData:n,outliers:i}}(e.getRawData(),t.config);return[{dimensions:["ItemName","Low","Q1","Q2","Q3","High"],data:i.boxData},{data:i.outliers}]}};var HD=["color","borderColor"],WD=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){this.group.removeClipPath(),this._updateDrawMode(t),this._isLargeDraw?this._renderLarge(t):this._renderNormal(t)},e.prototype.incrementalPrepareRender=function(t,e,n){this._clear(),this._updateDrawMode(t)},e.prototype.incrementalRender=function(t,e,n,i){this._isLargeDraw?this._incrementalRenderLarge(t,e):this._incrementalRenderNormal(t,e)},e.prototype._updateDrawMode=function(t){var e=t.pipelineContext.large;null!=this._isLargeDraw&&e===this._isLargeDraw||(this._isLargeDraw=e,this._clear())},e.prototype._renderNormal=function(t){var e=t.getData(),n=this._data,i=this.group,r=e.getLayout("isSimpleBox"),o=t.get("clip",!0),a=t.coordinateSystem,s=a.getArea&&a.getArea();this._data||i.removeAll(),e.diff(n).add((function(n){if(e.hasValue(n)){var a=e.getItemLayout(n);if(o&&ZD(s,a))return;var l=UD(a,n,!0);Eu(l,{shape:{points:a.ends}},t,n),jD(l,e,n,r),i.add(l),e.setItemGraphicEl(n,l)}})).update((function(a,l){var u=n.getItemGraphicEl(l);if(e.hasValue(a)){var h=e.getItemLayout(a);o&&ZD(s,h)?i.remove(u):(u?Nu(u,{shape:{points:h.ends}},t,a):u=UD(h),jD(u,e,a,r),i.add(u),e.setItemGraphicEl(a,u))}else i.remove(u)})).remove((function(t){var e=n.getItemGraphicEl(t);e&&i.remove(e)})).execute(),this._data=e},e.prototype._renderLarge=function(t){this._clear(),JD(t,this.group);var e=t.get("clip",!0)?Yb(t.coordinateSystem,!1,t):null;e?this.group.setClipPath(e):this.group.removeClipPath()},e.prototype._incrementalRenderNormal=function(t,e){for(var n,i=e.getData(),r=i.getLayout("isSimpleBox");null!=(n=t.next());){var o=UD(i.getItemLayout(n));jD(o,i,n,r),o.incremental=!0,this.group.add(o)}},e.prototype._incrementalRenderLarge=function(t,e){JD(e,this.group,!0)},e.prototype.remove=function(t){this._clear()},e.prototype._clear=function(){this.group.removeAll(),this._data=null},e.type="candlestick",e}(mf),YD=function(){},XD=function(t){function e(e){var n=t.call(this,e)||this;return n.type="normalCandlestickBox",n}return n(e,t),e.prototype.getDefaultShape=function(){return new YD},e.prototype.buildPath=function(t,e){var n=e.points;this.__simpleBox?(t.moveTo(n[4][0],n[4][1]),t.lineTo(n[6][0],n[6][1])):(t.moveTo(n[0][0],n[0][1]),t.lineTo(n[1][0],n[1][1]),t.lineTo(n[2][0],n[2][1]),t.lineTo(n[3][0],n[3][1]),t.closePath(),t.moveTo(n[4][0],n[4][1]),t.lineTo(n[5][0],n[5][1]),t.moveTo(n[6][0],n[6][1]),t.lineTo(n[7][0],n[7][1]))},e}(qa);function UD(t,e,n){var i=t.ends;return new XD({shape:{points:n?qD(i,t):i},z2:100})}function ZD(t,e){for(var n=!0,i=0;i<e.ends.length;i++)if(t.contain(e.ends[i][0],e.ends[i][1])){n=!1;break}return n}function jD(t,e,n,i){var r=e.getItemModel(n);t.useStyle(e.getItemVisual(n,"style")),t.style.strokeNoScale=!0,t.__simpleBox=i,rl(t,r)}function qD(t,e){return O(t,(function(t){return(t=t.slice())[1]=e.initBaseline,t}))}var KD=function(){},$D=function(t){function e(e){var n=t.call(this,e)||this;return n.type="largeCandlestickBox",n}return n(e,t),e.prototype.getDefaultShape=function(){return new KD},e.prototype.buildPath=function(t,e){for(var n=e.points,i=0;i<n.length;)if(this.__sign===n[i++]){var r=n[i++];t.moveTo(r,n[i++]),t.lineTo(r,n[i++])}else i+=3},e}(qa);function JD(t,e,n){var i=t.getData().getLayout("largePoints"),r=new $D({shape:{points:i},__sign:1});e.add(r);var o=new $D({shape:{points:i},__sign:-1});e.add(o),QD(1,r,t),QD(-1,o,t),n&&(r.incremental=!0,o.incremental=!0)}function QD(t,e,n,i){var r=n.get(["itemStyle",t>0?"borderColor":"borderColor0"])||n.get(["itemStyle",t>0?"color":"color0"]),o=n.getModel("itemStyle").getItemStyle(HD);e.useStyle(o),e.style.fill=null,e.style.stroke=r}var tL=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.defaultValueDimensions=[{name:"open",defaultTooltip:!0},{name:"close",defaultTooltip:!0},{name:"lowest",defaultTooltip:!0},{name:"highest",defaultTooltip:!0}],n}return n(e,t),e.prototype.getShadowDim=function(){return"open"},e.prototype.brushSelector=function(t,e,n){var i=e.getItemLayout(t);return i&&n.rect(i.brushRect)},e.type="series.candlestick",e.dependencies=["xAxis","yAxis","grid"],e.defaultOption={zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,layout:null,clip:!0,itemStyle:{color:"#eb5454",color0:"#47b262",borderColor:"#eb5454",borderColor0:"#47b262",borderWidth:1},emphasis:{scale:!0,itemStyle:{borderWidth:2}},barMaxWidth:null,barMinWidth:null,barWidth:null,large:!0,largeThreshold:600,progressive:3e3,progressiveThreshold:1e4,progressiveChunkMode:"mod",animationEasing:"linear",animationDuration:300},e}(af);function eL(t){t&&F(t.series)&&P(t.series,(function(t){X(t)&&"k"===t.type&&(t.type="candlestick")}))}L(tL,LD,!0);var nL=["itemStyle","borderColor"],iL=["itemStyle","borderColor0"],rL=["itemStyle","color"],oL=["itemStyle","color0"],aL={seriesType:"candlestick",plan:gf(),performRawSeries:!0,reset:function(t,e){function n(t,e){return e.get(t>0?rL:oL)}function i(t,e){return e.get(t>0?nL:iL)}if(t.getData().setVisual("legendSymbol","roundRect"),!e.isSeriesFiltered(t))return!t.pipelineContext.large&&{progress:function(t,e){for(var r;null!=(r=t.next());){var o=e.getItemModel(r),a=e.getItemLayout(r).sign,s=o.getItemStyle();s.fill=n(a,o),s.stroke=i(a,o)||s.fill,I(e.ensureUniqueItemVisual(r,"style"),s)}}}}},sL="undefined"!=typeof Float32Array?Float32Array:Array,lL={seriesType:"candlestick",plan:gf(),reset:function(t){var e=t.coordinateSystem,n=t.getData(),i=function(t,e){var n,i=t.getBaseAxis(),r="category"===i.type?i.getBandWidth():(n=i.getExtent(),Math.abs(n[1]-n[0])/e.count()),o=qi(tt(t.get("barMaxWidth"),r),r),a=qi(tt(t.get("barMinWidth"),1),r),s=t.get("barWidth");return null!=s?qi(s,r):Math.max(Math.min(r/2,o),a)}(t,n),r=["x","y"],o=n.mapDimension(r[0]),a=n.mapDimensionsAll(r[1]),s=a[0],l=a[1],u=a[2],h=a[3];if(n.setLayout({candleWidth:i,isSimpleBox:i<=1.3}),!(null==o||a.length<4))return{progress:t.pipelineContext.large?function(t,n){var i,r,a=new sL(4*t.count),c=0,p=[],d=[];for(;null!=(r=t.next());){var f=n.get(o,r),g=n.get(s,r),y=n.get(l,r),v=n.get(u,r),m=n.get(h,r);isNaN(f)||isNaN(v)||isNaN(m)?(a[c++]=NaN,c+=3):(a[c++]=uL(n,r,g,y,l),p[0]=f,p[1]=v,i=e.dataToPoint(p,null,d),a[c++]=i?i[0]:NaN,a[c++]=i?i[1]:NaN,p[1]=m,i=e.dataToPoint(p,null,d),a[c++]=i?i[1]:NaN)}n.setLayout("largePoints",a)}:function(t,n){var r;for(;null!=(r=t.next());){var a=n.get(o,r),c=n.get(s,r),p=n.get(l,r),d=n.get(u,r),f=n.get(h,r),g=Math.min(c,p),y=Math.max(c,p),v=w(g,a),m=w(y,a),_=w(d,a),x=w(f,a),b=[];S(b,m,0),S(b,v,1),b.push(I(x),I(m),I(_),I(v)),n.setItemLayout(r,{sign:uL(n,r,c,p,l),initBaseline:c>p?m[1]:v[1],ends:b,brushRect:M(d,f,a)})}function w(t,n){var i=[];return i[0]=n,i[1]=t,isNaN(n)||isNaN(t)?[NaN,NaN]:e.dataToPoint(i)}function S(t,e,n){var r=e.slice(),o=e.slice();r[0]=Ou(r[0]+i/2,1,!1),o[0]=Ou(o[0]-i/2,1,!0),n?t.push(r,o):t.push(o,r)}function M(t,e,n){var r=w(t,n),o=w(e,n);return r[0]-=i/2,o[0]-=i/2,{x:r[0],y:r[1],width:i,height:o[1]-r[1]}}function I(t){return t[0]=Ou(t[0],1),t}}}}};function uL(t,e,n,i,r){return n>i?-1:n<i?1:e>0?t.get(r,e-1)<=i?1:-1:1}function hL(t,e){var n=e.rippleEffectColor||e.color;t.eachChild((function(t){t.attr({z:e.z,zlevel:e.zlevel,style:{stroke:"stroke"===e.brushType?n:null,fill:"fill"===e.brushType?n:null}})}))}var cL=function(t){function e(e,n){var i=t.call(this)||this,r=new Sb(e,n),o=new Vi;return i.add(r),i.add(o),i.updateData(e,n),i}return n(e,t),e.prototype.stopEffectAnimation=function(){this.childAt(1).removeAll()},e.prototype.startEffectAnimation=function(t){for(var e=t.symbolType,n=t.color,i=this.childAt(1),r=0;r<3;r++){var o=cy(e,-1,-1,2,2,n);o.attr({style:{strokeNoScale:!0},z2:99,silent:!0,scaleX:.5,scaleY:.5});var a=-r/3*t.period+t.effectOffset;o.animate("",!0).when(t.period,{scale:[t.rippleScale/2,t.rippleScale/2]}).delay(a).start(),o.animateStyle(!0).when(t.period,{opacity:0}).delay(a).start(),i.add(o)}hL(i,t)},e.prototype.updateEffectAnimation=function(t){for(var e=this._effectCfg,n=this.childAt(1),i=["symbolType","period","rippleScale"],r=0;r<i.length;r++){var o=i[r];if(e[o]!==t[o])return this.stopEffectAnimation(),void this.startEffectAnimation(t)}hL(n,t)},e.prototype.highlight=function(){Ys(this)},e.prototype.downplay=function(){Xs(this)},e.prototype.updateData=function(t,e){var n=this,i=t.hostModel;this.childAt(0).updateData(t,e);var r=this.childAt(1),o=t.getItemModel(e),a=t.getItemVisual(e,"symbol"),s=function(t){return F(t)||(t=[+t,+t]),t}(t.getItemVisual(e,"symbolSize")),l=t.getItemVisual(e,"style"),u=l&&l.fill;r.setScale(s),r.traverse((function(t){t.setStyle("fill",u)}));var h=o.getShallow("symbolOffset");h&&(r.x=qi(h[0],s[0]),r.y=qi(h[1],s[1]));var c=t.getItemVisual(e,"symbolRotate");r.rotation=(c||0)*Math.PI/180||0;var p={};p.showEffectOn=i.get("showEffectOn"),p.rippleScale=o.get(["rippleEffect","scale"]),p.brushType=o.get(["rippleEffect","brushType"]),p.period=1e3*o.get(["rippleEffect","period"]),p.effectOffset=e/t.count(),p.z=i.getShallow("z")||0,p.zlevel=i.getShallow("zlevel")||0,p.symbolType=a,p.color=u,p.rippleEffectColor=o.get(["rippleEffect","color"]),this.off("mouseover").off("mouseout").off("emphasis").off("normal"),"render"===p.showEffectOn?(this._effectCfg?this.updateEffectAnimation(p):this.startEffectAnimation(p),this._effectCfg=p):(this._effectCfg=null,this.stopEffectAnimation(),this.onHoverStateChange=function(t){"emphasis"===t?"render"!==p.showEffectOn&&n.startEffectAnimation(p):"normal"===t&&"render"!==p.showEffectOn&&n.stopEffectAnimation()}),this._effectCfg=p,tl(this)},e.prototype.fadeOut=function(t){this.off("mouseover").off("mouseout"),t&&t()},e}(Vi);D(cL,Vi);var pL=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(){this._symbolDraw=new Ab(cL)},e.prototype.render=function(t,e,n){var i=t.getData(),r=this._symbolDraw;r.updateData(i),this.group.add(r.group)},e.prototype.updateTransform=function(t,e,n){var i=t.getData();this.group.dirty();var r=ew("").reset(t,e,n);r.progress&&r.progress({start:0,end:i.count(),count:i.count()},i),this._symbolDraw.updateLayout()},e.prototype._updateGroupTransform=function(t){var e=t.coordinateSystem;e&&e.getRoamTransform&&(this.group.transform=Me(e.getRoamTransform()),this.group.decomposeTransform())},e.prototype.remove=function(t,e){this._symbolDraw&&this._symbolDraw.remove(!0)},e.type="effectScatter",e}(mf),dL=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.hasSymbolVisual=!0,n}return n(e,t),e.prototype.getInitialData=function(t,e){return Ym(this.getSource(),this,{useEncodeDefaulter:!0})},e.prototype.brushSelector=function(t,e,n){return n.point(e.getItemLayout(t))},e.type="series.effectScatter",e.dependencies=["grid","polar"],e.defaultOption={coordinateSystem:"cartesian2d",zlevel:0,z:2,legendHoverLink:!0,effectType:"ripple",progressive:0,showEffectOn:"render",rippleEffect:{period:4,scale:2.5,brushType:"fill"},symbolSize:10},e}(af);var fL=function(t){function e(e,n,i){var r=t.call(this)||this;return r.add(r.createLine(e,n,i)),r._updateEffectSymbol(e,n),r}return n(e,t),e.prototype.createLine=function(t,e,n){return new sC(t,e,n)},e.prototype._updateEffectSymbol=function(t,e){var n=t.getItemModel(e).getModel("effect"),i=n.get("symbolSize"),r=n.get("symbol");F(i)||(i=[i,i]);var o=t.getItemVisual(e,"style"),a=n.get("color")||o&&o.stroke,s=this.childAt(1);this._symbolType!==r&&(this.remove(s),(s=cy(r,-.5,-.5,1,1,a)).z2=100,s.culling=!0,this.add(s)),s&&(s.setStyle("shadowColor",a),s.setStyle(n.getItemStyle(["color"])),s.scaleX=i[0],s.scaleY=i[1],s.setColor(a),this._symbolType=r,this._symbolScale=i,this._updateEffectAnimation(t,n,e))},e.prototype._updateEffectAnimation=function(t,e,n){var i=this.childAt(1);if(i){var r=this,o=t.getItemLayout(n),a=1e3*e.get("period"),s=e.get("loop"),l=e.get("constantSpeed"),u=Q(e.get("delay"),(function(e){return e/t.count()*a/3}));if(i.ignore=!0,this._updateAnimationPoints(i,o),l>0&&(a=this._getLineLength(i)/l*1e3),(a!==this._period||s!==this._loop)&&(i.stopAnimation(),a>0)){var h=void 0;h="function"==typeof u?u(n):u,i.__t>0&&(h=-a*i.__t),i.__t=0;var c=i.animate("",s).when(a,{__t:1}).delay(h).during((function(){r._updateSymbolPosition(i)}));s||c.done((function(){r.remove(i)})),c.start()}this._period=a,this._loop=s}},e.prototype._getLineLength=function(t){return Pt(t.__p1,t.__cp1)+Pt(t.__cp1,t.__p2)},e.prototype._updateAnimationPoints=function(t,e){t.__p1=e[0],t.__p2=e[1],t.__cp1=e[2]||[(e[0][0]+e[1][0])/2,(e[0][1]+e[1][1])/2]},e.prototype.updateData=function(t,e,n){this.childAt(0).updateData(t,e,n),this._updateEffectSymbol(t,e)},e.prototype._updateSymbolPosition=function(t){var e=t.__p1,n=t.__p2,i=t.__cp1,r=t.__t,o=[t.x,t.y],a=o.slice(),s=Wo,l=Yo;o[0]=s(e[0],i[0],n[0],r),o[1]=s(e[1],i[1],n[1],r);var u=l(e[0],i[0],n[0],r),h=l(e[1],i[1],n[1],r);t.rotation=-Math.atan2(h,u)-Math.PI/2,"line"!==this._symbolType&&"rect"!==this._symbolType&&"roundRect"!==this._symbolType||(void 0!==t.__lastT&&t.__lastT<t.__t?(t.scaleY=1.05*Pt(a,o),1===r&&(o[0]=a[0]+(o[0]-a[0])/2,o[1]=a[1]+(o[1]-a[1])/2)):1===t.__lastT?t.scaleY=2*Pt(e,o):t.scaleY=this._symbolScale[1]),t.__lastT=t.__t,t.ignore=!1,t.x=o[0],t.y=o[1]},e.prototype.updateLayout=function(t,e){this.childAt(0).updateLayout(t,e);var n=t.getItemModel(e).getModel("effect");this._updateEffectAnimation(t,n,e)},e}(Vi),gL=function(t){function e(e,n,i){var r=t.call(this)||this;return r._createPolyline(e,n,i),r}return n(e,t),e.prototype._createPolyline=function(t,e,n){var i=t.getItemLayout(e),r=new Ql({shape:{points:i}});this.add(r),this._updateCommonStl(t,e,n)},e.prototype.updateData=function(t,e,n){var i=t.hostModel;Nu(this.childAt(0),{shape:{points:t.getItemLayout(e)}},i,e),this._updateCommonStl(t,e,n)},e.prototype._updateCommonStl=function(t,e,n){var i=this.childAt(0),r=t.getItemModel(e),o=n&&n.emphasisLineStyle;n&&!t.hasItemOption||(o=r.getModel(["emphasis","lineStyle"]).getLineStyle()),i.useStyle(t.getItemVisual(e,"style")),i.style.fill=null,i.style.strokeNoScale=!0,i.ensureState("emphasis").style=o,tl(this)},e.prototype.updateLayout=function(t,e){this.childAt(0).setShape("points",t.getItemLayout(e))},e}(Vi),yL=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._lastFrame=0,e._lastFramePercent=0,e}return n(e,t),e.prototype.createLine=function(t,e,n){return new gL(t,e,n)},e.prototype._updateAnimationPoints=function(t,e){this._points=e;for(var n=[0],i=0,r=1;r<e.length;r++){var o=e[r-1],a=e[r];i+=Pt(o,a),n.push(i)}if(0!==i){for(r=0;r<n.length;r++)n[r]/=i;this._offsets=n,this._length=i}else this._length=0},e.prototype._getLineLength=function(){return this._length},e.prototype._updateSymbolPosition=function(t){var e=t.__t,n=this._points,i=this._offsets,r=n.length;if(i){var o,a=this._lastFrame;if(e<this._lastFramePercent){for(o=Math.min(a+1,r-1);o>=0&&!(i[o]<=e);o--);o=Math.min(o,r-2)}else{for(o=a;o<r&&!(i[o]>e);o++);o=Math.min(o-1,r-2)}var s=(e-i[o])/(i[o+1]-i[o]),l=n[o],u=n[o+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=o,this._lastFramePercent=e,t.ignore=!1}},e}(fL),vL=function(){this.polyline=!1,this.curveness=0,this.segs=[]},mL=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new vL},e.prototype.buildPath=function(t,e){var n=e.segs,i=e.curveness;if(e.polyline)for(var r=0;r<n.length;){var o=n[r++];if(o>0){t.moveTo(n[r++],n[r++]);for(var a=1;a<o;a++)t.lineTo(n[r++],n[r++])}}else for(r=0;r<n.length;){var s=n[r++],l=n[r++],u=n[r++],h=n[r++];if(t.moveTo(s,l),i>0){var c=(s+u)/2-(l-h)*i,p=(l+h)/2-(u-s)*i;t.quadraticCurveTo(c,p,u,h)}else t.lineTo(u,h)}},e.prototype.findDataIndex=function(t,e){var n=this.shape,i=n.segs,r=n.curveness,o=this.style.lineWidth;if(n.polyline)for(var a=0,s=0;s<i.length;){var l=i[s++];if(l>0)for(var u=i[s++],h=i[s++],c=1;c<l;c++){if(La(u,h,p=i[s++],d=i[s++],o,t,e))return a}a++}else for(a=0,s=0;s<i.length;){u=i[s++],h=i[s++];var p=i[s++],d=i[s++];if(r>0){if(Pa(u,h,(u+p)/2-(h-d)*r,(h+d)/2-(p-u)*r,p,d,o,t,e))return a}else if(La(u,h,p,d,o,t,e))return a;a++}return-1},e}(qa),_L=function(){function t(){this.group=new Vi}return t.prototype.isPersistent=function(){return!this._incremental},t.prototype.updateData=function(t){this.group.removeAll();var e=new mL({rectHover:!0,cursor:"default"});e.setShape({segs:t.getLayout("linesPoints")}),this._setCommon(e,t),this.group.add(e),this._incremental=null},t.prototype.incrementalPrepareUpdate=function(t){this.group.removeAll(),this._clearIncremental(),t.count()>5e5?(this._incremental||(this._incremental=new _u({silent:!0})),this.group.add(this._incremental)):this._incremental=null},t.prototype.incrementalUpdate=function(t,e){var n=new mL;n.setShape({segs:e.getLayout("linesPoints")}),this._setCommon(n,e,!!this._incremental),this._incremental?this._incremental.addDisplayable(n,!0):(n.rectHover=!0,n.cursor="default",n.__startIndex=t.start,this.group.add(n))},t.prototype.remove=function(){this._clearIncremental(),this._incremental=null,this.group.removeAll()},t.prototype._setCommon=function(t,e,n){var i=e.hostModel;t.setShape({polyline:i.get("polyline"),curveness:i.get(["lineStyle","curveness"])}),t.useStyle(i.getModel("lineStyle").getLineStyle()),t.style.strokeNoScale=!0;var r=e.getVisual("style");if(r&&r.stroke&&t.setStyle("stroke",r.stroke),t.setStyle("fill",null),!n){var o=ms(t);o.seriesIndex=i.seriesIndex,t.on("mousemove",(function(e){o.dataIndex=null;var n=t.findDataIndex(e.offsetX,e.offsetY);n>0&&(o.dataIndex=n+t.__startIndex)}))}},t.prototype._clearIncremental=function(){var t=this._incremental;t&&t.clearDisplaybles()},t}(),xL={seriesType:"lines",plan:gf(),reset:function(t){var e=t.coordinateSystem,n=t.get("polyline"),i=t.pipelineContext.large;return{progress:function(r,o){var a=[];if(i){var s=void 0,l=r.end-r.start;if(n){for(var u=0,h=r.start;h<r.end;h++)u+=t.getLineCoordsCount(h);s=new Float32Array(l+2*u)}else s=new Float32Array(4*l);var c=0,p=[];for(h=r.start;h<r.end;h++){var d=t.getLineCoords(h,a);n&&(s[c++]=d);for(var f=0;f<d;f++)p=e.dataToPoint(a[f],!1,p),s[c++]=p[0],s[c++]=p[1]}o.setLayout("linesPoints",s)}else for(h=r.start;h<r.end;h++){var g=o.getItemModel(h),y=(d=t.getLineCoords(h,a),[]);if(n)for(var v=0;v<d;v++)y.push(e.dataToPoint(a[v]));else{y[0]=e.dataToPoint(a[0]),y[1]=e.dataToPoint(a[1]);var m=g.get(["lineStyle","curveness"]);+m&&(y[2]=[(y[0][0]+y[1][0])/2-(y[0][1]-y[1][1])*m,(y[0][1]+y[1][1])/2-(y[1][0]-y[0][0])*m])}o.setItemLayout(h,y)}}}}},bL=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){var i=t.getData(),r=this._updateLineDraw(i,t),o=t.get("zlevel"),a=t.get(["effect","trailLength"]),s=n.getZr(),l="svg"===s.painter.getType();(l||s.painter.getLayer(o).clear(!0),null==this._lastZlevel||l||s.configLayer(this._lastZlevel,{motionBlur:!1}),this._showEffect(t)&&a)&&(l||s.configLayer(o,{motionBlur:!0,lastFrameAlpha:Math.max(Math.min(a/10+.9,1),0)}));r.updateData(i);var u=t.get("clip",!0)&&Yb(t.coordinateSystem,!1,t);u?this.group.setClipPath(u):this.group.removeClipPath(),this._lastZlevel=o,this._finished=!0},e.prototype.incrementalPrepareRender=function(t,e,n){var i=t.getData();this._updateLineDraw(i,t).incrementalPrepareUpdate(i),this._clearLayer(n),this._finished=!1},e.prototype.incrementalRender=function(t,e,n){this._lineDraw.incrementalUpdate(t,e.getData()),this._finished=t.end===e.getData().count()},e.prototype.updateTransform=function(t,e,n){var i=t.getData(),r=t.pipelineContext;if(!this._finished||r.large||r.progressiveRender)return{update:!0};var o=xL.reset(t,e,n);o.progress&&o.progress({start:0,end:i.count(),count:i.count()},i),this._lineDraw.updateLayout(),this._clearLayer(n)},e.prototype._updateLineDraw=function(t,e){var n=this._lineDraw,i=this._showEffect(e),r=!!e.get("polyline"),o=e.pipelineContext.large;return n&&i===this._hasEffet&&r===this._isPolyline&&o===this._isLargeDraw||(n&&n.remove(),n=this._lineDraw=o?new _L:new lC(r?i?yL:gL:i?fL:sC),this._hasEffet=i,this._isPolyline=r,this._isLargeDraw=o,this.group.removeAll()),this.group.add(n.group),n},e.prototype._showEffect=function(t){return!!t.get(["effect","show"])},e.prototype._clearLayer=function(t){var e=t.getZr();"svg"===e.painter.getType()||null==this._lastZlevel||e.painter.getLayer(this._lastZlevel).clear(!0)},e.prototype.remove=function(t,e){this._lineDraw&&this._lineDraw.remove(),this._lineDraw=null,this._clearLayer(e)},e.type="lines",e}(mf),wL="undefined"==typeof Uint32Array?Array:Uint32Array,SL="undefined"==typeof Float64Array?Array:Float64Array;function ML(t){var e=t.data;e&&e[0]&&e[0][0]&&e[0][0].coord&&(t.data=O(e,(function(t){var e={coords:[t[0].coord,t[1].coord]};return t[0].name&&(e.fromName=t[0].name),t[1].name&&(e.toName=t[1].name),M([e,t[0],t[1]])})))}var IL=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.visualStyleAccessPath="lineStyle",n.visualDrawType="stroke",n}return n(e,t),e.prototype.init=function(e){e.data=e.data||[],ML(e);var n=this._processFlatCoordsArray(e.data);this._flatCoords=n.flatCoords,this._flatCoordsOffset=n.flatCoordsOffset,n.flatCoords&&(e.data=new Float32Array(n.count)),t.prototype.init.apply(this,arguments)},e.prototype.mergeOption=function(e){if(ML(e),e.data){var n=this._processFlatCoordsArray(e.data);this._flatCoords=n.flatCoords,this._flatCoordsOffset=n.flatCoordsOffset,n.flatCoords&&(e.data=new Float32Array(n.count))}t.prototype.mergeOption.apply(this,arguments)},e.prototype.appendData=function(t){var e=this._processFlatCoordsArray(t.data);e.flatCoords&&(this._flatCoords?(this._flatCoords=ct(this._flatCoords,e.flatCoords),this._flatCoordsOffset=ct(this._flatCoordsOffset,e.flatCoordsOffset)):(this._flatCoords=e.flatCoords,this._flatCoordsOffset=e.flatCoordsOffset),t.data=new Float32Array(e.count)),this.getRawData().appendData(t.data)},e.prototype._getCoordsFromItemModel=function(t){var e=this.getData().getItemModel(t),n=e.option instanceof Array?e.option:e.getShallow("coords");return n},e.prototype.getLineCoordsCount=function(t){return this._flatCoordsOffset?this._flatCoordsOffset[2*t+1]:this._getCoordsFromItemModel(t).length},e.prototype.getLineCoords=function(t,e){if(this._flatCoordsOffset){for(var n=this._flatCoordsOffset[2*t],i=this._flatCoordsOffset[2*t+1],r=0;r<i;r++)e[r]=e[r]||[],e[r][0]=this._flatCoords[n+2*r],e[r][1]=this._flatCoords[n+2*r+1];return i}var o=this._getCoordsFromItemModel(t);for(r=0;r<o.length;r++)e[r]=e[r]||[],e[r][0]=o[r][0],e[r][1]=o[r][1];return o.length},e.prototype._processFlatCoordsArray=function(t){var e=0;if(this._flatCoords&&(e=this._flatCoords.length),"number"==typeof t[0]){for(var n=t.length,i=new wL(n),r=new SL(n),o=0,a=0,s=0,l=0;l<n;){s++;var u=t[l++];i[a++]=o+e,i[a++]=u;for(var h=0;h<u;h++){var c=t[l++],p=t[l++];r[o++]=c,r[o++]=p}}return{flatCoordsOffset:new Uint32Array(i.buffer,0,a),flatCoords:r,count:s}}return{flatCoordsOffset:null,flatCoords:null,count:t.length}},e.prototype.getInitialData=function(t,e){var n=new Rm(["value"],this);return n.hasItemOption=!1,n.initData(t.data,[],(function(t,e,i,r){if(t instanceof Array)return NaN;n.hasItemOption=!0;var o=t.value;return null!=o?o instanceof Array?o[r]:o:void 0})),n},e.prototype.formatTooltip=function(t,e,n){var i=this.getData().getItemModel(t),r=i.get("name");if(r)return r;var o=i.get("fromName"),a=i.get("toName"),s=[];return null!=o&&s.push(o),null!=a&&s.push(a),Ud("nameValue",{name:s.join(" > ")})},e.prototype.preventIncremental=function(){return!!this.get(["effect","show"])},e.prototype.getProgressive=function(){var t=this.option.progressive;return null==t?this.option.large?1e4:this.get("progressive"):t},e.prototype.getProgressiveThreshold=function(){var t=this.option.progressiveThreshold;return null==t?this.option.large?2e4:this.get("progressiveThreshold"):t},e.type="series.lines",e.dependencies=["grid","polar","geo","calendar"],e.defaultOption={coordinateSystem:"geo",zlevel:0,z:2,legendHoverLink:!0,xAxisIndex:0,yAxisIndex:0,symbol:["none","none"],symbolSize:[10,10],geoIndex:0,effect:{show:!1,period:4,constantSpeed:0,symbol:"circle",symbolSize:3,loop:!0,trailLength:.2},large:!1,largeThreshold:2e3,polyline:!1,clip:!0,label:{show:!1,position:"end"},lineStyle:{opacity:.5}},e}(af);function TL(t){return t instanceof Array||(t=[t,t]),t}var CL={seriesType:"lines",reset:function(t){var e=TL(t.get("symbol")),n=TL(t.get("symbolSize")),i=t.getData();return i.setVisual("fromSymbol",e&&e[0]),i.setVisual("toSymbol",e&&e[1]),i.setVisual("fromSymbolSize",n&&n[0]),i.setVisual("toSymbolSize",n&&n[1]),{dataEach:i.hasItemOption?function(t,e){var n=t.getItemModel(e),i=TL(n.getShallow("symbol",!0)),r=TL(n.getShallow("symbolSize",!0));i[0]&&t.setItemVisual(e,"fromSymbol",i[0]),i[1]&&t.setItemVisual(e,"toSymbol",i[1]),r[0]&&t.setItemVisual(e,"fromSymbolSize",r[0]),r[1]&&t.setItemVisual(e,"toSymbolSize",r[1])}:null}}};var AL=function(){function t(){this.blurSize=30,this.pointSize=20,this.maxOpacity=1,this.minOpacity=0,this._gradientPixels={inRange:null,outOfRange:null};var t=C();this.canvas=t}return t.prototype.update=function(t,e,n,i,r,o){var a=this._getBrush(),s=this._getGradient(r,"inRange"),l=this._getGradient(r,"outOfRange"),u=this.pointSize+this.blurSize,h=this.canvas,c=h.getContext("2d"),p=t.length;h.width=e,h.height=n;for(var d=0;d<p;++d){var f=t[d],g=f[0],y=f[1],v=i(f[2]);c.globalAlpha=v,c.drawImage(a,g-u,y-u)}if(!h.width||!h.height)return h;for(var m=c.getImageData(0,0,h.width,h.height),_=m.data,x=0,b=_.length,w=this.minOpacity,S=this.maxOpacity-w;x<b;){v=_[x+3]/256;var M=4*Math.floor(255*v);if(v>0){var I=o(v)?s:l;v>0&&(v=v*S+w),_[x++]=I[M],_[x++]=I[M+1],_[x++]=I[M+2],_[x++]=I[M+3]*v*256}else x+=4}return c.putImageData(m,0,0),h},t.prototype._getBrush=function(){var t=this._brushCanvas||(this._brushCanvas=C()),e=this.pointSize+this.blurSize,n=2*e;t.width=n,t.height=n;var i=t.getContext("2d");return i.clearRect(0,0,n,n),i.shadowOffsetX=n,i.shadowBlur=this.blurSize,i.shadowColor="#000",i.beginPath(),i.arc(-e,e,this.pointSize,0,2*Math.PI,!0),i.closePath(),i.fill(),t},t.prototype._getGradient=function(t,e){for(var n=this._gradientPixels,i=n[e]||(n[e]=new Uint8ClampedArray(1024)),r=[0,0,0,0],o=0,a=0;a<256;a++)t[e](a/255,!0,r),i[o++]=r[0],i[o++]=r[1],i[o++]=r[2],i[o++]=r[3];return i},t}();function DL(t){var e=t.dimensions;return"lng"===e[0]&&"lat"===e[1]}var LL=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){var i;e.eachComponent("visualMap",(function(e){e.eachTargetSeries((function(n){n===t&&(i=e)}))})),this.group.removeAll(),this._incrementalDisplayable=null;var r=t.coordinateSystem;"cartesian2d"===r.type||"calendar"===r.type?this._renderOnCartesianAndCalendar(t,n,0,t.getData().count()):DL(r)&&this._renderOnGeo(r,t,i,n)},e.prototype.incrementalPrepareRender=function(t,e,n){this.group.removeAll()},e.prototype.incrementalRender=function(t,e,n,i){var r=e.coordinateSystem;r&&(DL(r)?this.render(e,n,i):this._renderOnCartesianAndCalendar(e,i,t.start,t.end,!0))},e.prototype._renderOnCartesianAndCalendar=function(t,e,n,i,r){var o,a,s,l,u=t.coordinateSystem;if(Xb(u,"cartesian2d")){var h=u.getAxis("x"),c=u.getAxis("y");0,o=h.getBandWidth(),a=c.getBandWidth(),s=h.scale.getExtent(),l=c.scale.getExtent()}for(var p=this.group,d=t.getData(),f=t.getModel(["emphasis","itemStyle"]).getItemStyle(),g=t.getModel(["blur","itemStyle"]).getItemStyle(),y=t.getModel(["select","itemStyle"]).getItemStyle(),v=ih(t),m=t.get(["emphasis","focus"]),_=t.get(["emphasis","blurScope"]),x=Xb(u,"cartesian2d")?[d.mapDimension("x"),d.mapDimension("y"),d.mapDimension("value")]:[d.mapDimension("time"),d.mapDimension("value")],b=n;b<i;b++){var w=void 0,S=d.getItemVisual(b,"style");if(Xb(u,"cartesian2d")){var M=d.get(x[0],b),I=d.get(x[1],b);if(isNaN(d.get(x[2],b))||M<s[0]||M>s[1]||I<l[0]||I>l[1])continue;var T=u.dataToPoint([M,I]);w=new ss({shape:{x:Math.floor(Math.round(T[0])-o/2),y:Math.floor(Math.round(T[1])-a/2),width:Math.ceil(o),height:Math.ceil(a)},style:S})}else{if(isNaN(d.get(x[1],b)))continue;w=new ss({z2:1,shape:u.dataToRect([d.get(x[0],b)]).contentShape,style:S})}var C=d.getItemModel(b);if(d.hasItemOption){var A=C.getModel("emphasis");f=A.getModel("itemStyle").getItemStyle(),g=C.getModel(["blur","itemStyle"]).getItemStyle(),y=C.getModel(["select","itemStyle"]).getItemStyle(),m=A.get("focus"),_=A.get("blurScope"),v=ih(C)}var D=t.getRawValue(b),L="-";D&&null!=D[2]&&(L=D[2]+""),nh(w,v,{labelFetcher:t,labelDataIndex:b,defaultOpacity:S.opacity,defaultText:L}),w.ensureState("emphasis").style=f,w.ensureState("blur").style=g,w.ensureState("select").style=y,tl(w,m,_),w.incremental=r,r&&(w.states.emphasis.hoverLayer=!0),p.add(w),d.setItemGraphicEl(b,w)}},e.prototype._renderOnGeo=function(t,e,n,i){var r=n.targetVisuals.inRange,o=n.targetVisuals.outOfRange,a=e.getData(),s=this._hmLayer||this._hmLayer||new AL;s.blurSize=e.get("blurSize"),s.pointSize=e.get("pointSize"),s.minOpacity=e.get("minOpacity"),s.maxOpacity=e.get("maxOpacity");var l=t.getViewRect().clone(),u=t.getRoamTransform();l.applyTransform(u);var h=Math.max(l.x,0),c=Math.max(l.y,0),p=Math.min(l.width+l.x,i.getWidth()),d=Math.min(l.height+l.y,i.getHeight()),f=p-h,g=d-c,y=[a.mapDimension("lng"),a.mapDimension("lat"),a.mapDimension("value")],v=a.mapArray(y,(function(e,n,i){var r=t.dataToPoint([e,n]);return r[0]-=h,r[1]-=c,r.push(i),r})),m=n.getExtent(),_="visualMap.continuous"===n.type?function(t,e){var n=t[1]-t[0];return e=[(e[0]-t[0])/n,(e[1]-t[0])/n],function(t){return t>=e[0]&&t<=e[1]}}(m,n.option.range):function(t,e,n){var i=t[1]-t[0],r=(e=O(e,(function(e){return{interval:[(e.interval[0]-t[0])/i,(e.interval[1]-t[0])/i]}}))).length,o=0;return function(t){var i;for(i=o;i<r;i++)if((a=e[i].interval)[0]<=t&&t<=a[1]){o=i;break}if(i===r)for(i=o-1;i>=0;i--){var a;if((a=e[i].interval)[0]<=t&&t<=a[1]){o=i;break}}return i>=0&&i<r&&n[i]}}(m,n.getPieceList(),n.option.selected);s.update(v,f,g,r.color.getNormalizer(),{inRange:r.color.getColorMapper(),outOfRange:o.color.getColorMapper()},_);var x=new ts({style:{width:f,height:g,x:h,y:c,image:s.canvas},silent:!0});this.group.add(x)},e.type="heatmap",e}(mf),kL=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.getInitialData=function(t,e){return Ym(this.getSource(),this,{generateCoord:"value"})},e.prototype.preventIncremental=function(){var t=bp.get(this.get("coordinateSystem"));if(t&&t.dimensions)return"lng"===t.dimensions[0]&&"lat"===t.dimensions[1]},e.type="series.heatmap",e.dependencies=["grid","geo","calendar"],e.defaultOption={coordinateSystem:"cartesian2d",zlevel:0,z:2,geoIndex:0,blurSize:30,pointSize:20,maxOpacity:1,minOpacity:0,select:{itemStyle:{borderColor:"#212121"}}},e}(af);var PL=["itemStyle","borderWidth"],OL=[{xy:"x",wh:"width",index:0,posDesc:["left","right"]},{xy:"y",wh:"height",index:1,posDesc:["top","bottom"]}],RL=new Al,NL=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){var i=this.group,r=t.getData(),o=this._data,a=t.coordinateSystem,s=a.getBaseAxis().isHorizontal(),l=a.master.getRect(),u={ecSize:{width:n.getWidth(),height:n.getHeight()},seriesModel:t,coordSys:a,coordSysExtent:[[l.x,l.x+l.width],[l.y,l.y+l.height]],isHorizontal:s,valueDim:OL[+s],categoryDim:OL[1-+s]};return r.diff(o).add((function(t){if(r.hasValue(t)){var e=WL(r,t),n=EL(r,t,e,u),o=UL(r,u,n);r.setItemGraphicEl(t,o),i.add(o),$L(o,u,n)}})).update((function(t,e){var n=o.getItemGraphicEl(e);if(r.hasValue(t)){var a=WL(r,t),s=EL(r,t,a,u),l=jL(r,s);n&&l!==n.__pictorialShapeStr&&(i.remove(n),r.setItemGraphicEl(t,null),n=null),n?function(t,e,n){var i=n.animationModel,r=n.dataIndex;Nu(t.__pictorialBundle,{x:n.bundlePosition[0],y:n.bundlePosition[1]},i,r),n.symbolRepeat?VL(t,e,n,!0):FL(t,e,n,!0);GL(t,n,!0),HL(t,e,n,!0)}(n,u,s):n=UL(r,u,s,!0),r.setItemGraphicEl(t,n),n.__pictorialSymbolMeta=s,i.add(n),$L(n,u,s)}else i.remove(n)})).remove((function(t){var e=o.getItemGraphicEl(t);e&&ZL(o,t,e.__pictorialSymbolMeta.animationModel,e)})).execute(),this._data=r,this.group},e.prototype.remove=function(t,e){var n=this.group,i=this._data;t.get("animation")?i&&i.eachItemGraphicEl((function(e){ZL(i,ms(e).dataIndex,t,e)})):n.removeAll()},e.type="pictorialBar",e}(mf);function EL(t,e,n,i){var r=t.getItemLayout(e),o=n.get("symbolRepeat"),a=n.get("symbolClip"),s=n.get("symbolPosition")||"start",l=(n.get("symbolRotate")||0)*Math.PI/180||0,u=n.get("symbolPatternSize")||2,h=n.isAnimationEnabled(),c={dataIndex:e,layout:r,itemModel:n,symbolType:t.getItemVisual(e,"symbol")||"circle",style:t.getItemVisual(e,"style"),symbolClip:a,symbolRepeat:o,symbolRepeatDirection:n.get("symbolRepeatDirection"),symbolPatternSize:u,rotation:l,animationModel:h?n:null,hoverScale:h&&n.get(["emphasis","scale"]),z2:n.getShallow("z",!0)||0};!function(t,e,n,i,r){var o,a=i.valueDim,s=t.get("symbolBoundingData"),l=i.coordSys.getOtherAxis(i.coordSys.getBaseAxis()),u=l.toGlobalCoord(l.dataToCoord(0)),h=1-+(n[a.wh]<=0);if(F(s)){var c=[zL(l,s[0])-u,zL(l,s[1])-u];c[1]<c[0]&&c.reverse(),o=c[h]}else o=null!=s?zL(l,s)-u:e?i.coordSysExtent[a.index][h]-u:n[a.wh];r.boundingLength=o,e&&(r.repeatCutLength=n[a.wh]);r.pxSign=o>0?1:o<0?-1:0}(n,o,r,i,c),function(t,e,n,i,r,o,a,s,l,u){var h,c=l.valueDim,p=l.categoryDim,d=Math.abs(n[p.wh]),f=t.getItemVisual(e,"symbolSize");h=F(f)?f.slice():null==f?["100%","100%"]:[f,f];h[p.index]=qi(h[p.index],d),h[c.index]=qi(h[c.index],i?d:Math.abs(o)),u.symbolSize=h,(u.symbolScale=[h[0]/s,h[1]/s])[c.index]*=(l.isHorizontal?-1:1)*a}(t,e,r,o,0,c.boundingLength,c.pxSign,u,i,c),function(t,e,n,i,r){var o=t.get(PL)||0;o&&(RL.attr({scaleX:e[0],scaleY:e[1],rotation:n}),RL.updateTransform(),o/=RL.getLineScale(),o*=e[i.valueDim.index]);r.valueLineWidth=o}(n,c.symbolScale,l,i,c);var p=c.symbolSize,d=n.get("symbolOffset");return F(d)&&(d=[qi(d[0],p[0]),qi(d[1],p[1])]),function(t,e,n,i,r,o,a,s,l,u,h,c){var p=h.categoryDim,d=h.valueDim,f=c.pxSign,g=Math.max(e[d.index]+s,0),y=g;if(i){var v=Math.abs(l),m=Q(t.get("symbolMargin"),"15%")+"",_=!1;m.lastIndexOf("!")===m.length-1&&(_=!0,m=m.slice(0,m.length-1));var x=qi(m,e[d.index]),b=Math.max(g+2*x,0),w=_?0:2*x,S=dr(i),M=S?i:JL((v+w)/b);b=g+2*(x=(v-M*g)/2/(_?M:M-1)),w=_?0:2*x,S||"fixed"===i||(M=u?JL((Math.abs(u)+w)/b):0),y=M*b-w,c.repeatTimes=M,c.symbolMargin=x}var T=f*(y/2),C=c.pathPosition=[];C[p.index]=n[p.wh]/2,C[d.index]="start"===a?T:"end"===a?l-T:l/2,o&&(C[0]+=o[0],C[1]+=o[1]);var A=c.bundlePosition=[];A[p.index]=n[p.xy],A[d.index]=n[d.xy];var D=c.barRectShape=I({},n);D[d.wh]=f*Math.max(Math.abs(n[d.wh]),Math.abs(C[d.index]+T)),D[p.wh]=n[p.wh];var L=c.clipShape={};L[p.xy]=-n[p.xy],L[p.wh]=h.ecSize[p.wh],L[d.xy]=0,L[d.wh]=n[d.wh]}(n,p,r,o,0,d,s,c.valueLineWidth,c.boundingLength,c.repeatCutLength,i,c),c}function zL(t,e){return t.toGlobalCoord(t.dataToCoord(t.scale.parse(e)))}function BL(t){var e=t.symbolPatternSize,n=cy(t.symbolType,-e/2,-e/2,e,e);return n.attr({culling:!0}),"image"!==n.type&&n.setStyle({strokeNoScale:!0}),n}function VL(t,e,n,i){var r=t.__pictorialBundle,o=n.symbolSize,a=n.valueLineWidth,s=n.pathPosition,l=e.valueDim,u=n.repeatTimes||0,h=0,c=o[e.valueDim.index]+a+2*n.symbolMargin;for(qL(t,(function(t){t.__pictorialAnimationIndex=h,t.__pictorialRepeatTimes=u,h<u?KL(t,null,f(h),n,i):KL(t,null,{scaleX:0,scaleY:0},n,i,(function(){r.remove(t)})),h++}));h<u;h++){var p=BL(n);p.__pictorialAnimationIndex=h,p.__pictorialRepeatTimes=u,r.add(p);var d=f(h);KL(p,{x:d.x,y:d.y,scaleX:0,scaleY:0},{scaleX:d.scaleX,scaleY:d.scaleY,rotation:d.rotation},n,i)}function f(t){var e=s.slice(),i=n.pxSign,r=t;return("start"===n.symbolRepeatDirection?i>0:i<0)&&(r=u-1-t),e[l.index]=c*(r-u/2+.5)+s[l.index],{x:e[0],y:e[1],scaleX:n.symbolScale[0],scaleY:n.symbolScale[1],rotation:n.rotation}}}function FL(t,e,n,i){var r=t.__pictorialBundle,o=t.__pictorialMainPath;o?KL(o,null,{x:n.pathPosition[0],y:n.pathPosition[1],scaleX:n.symbolScale[0],scaleY:n.symbolScale[1],rotation:n.rotation},n,i):(o=t.__pictorialMainPath=BL(n),r.add(o),KL(o,{x:n.pathPosition[0],y:n.pathPosition[1],scaleX:0,scaleY:0,rotation:n.rotation},{scaleX:n.symbolScale[0],scaleY:n.symbolScale[1]},n,i))}function GL(t,e,n){var i=I({},e.barRectShape),r=t.__pictorialBarRect;r?KL(r,null,{shape:i},e,n):(r=t.__pictorialBarRect=new ss({z2:2,shape:i,silent:!0,style:{stroke:"transparent",fill:"transparent",lineWidth:0}}),t.add(r))}function HL(t,e,n,i){if(n.symbolClip){var r=t.__pictorialClipPath,o=I({},n.clipShape),a=e.valueDim,s=n.animationModel,l=n.dataIndex;if(r)Nu(r,{shape:o},s,l);else{o[a.wh]=0,r=new ss({shape:o}),t.__pictorialBundle.setClipPath(r),t.__pictorialClipPath=r;var u={};u[a.wh]=n.clipShape[a.wh],Ju[i?"updateProps":"initProps"](r,{shape:u},s,l)}}}function WL(t,e){var n=t.getItemModel(e);return n.getAnimationDelayParams=YL,n.isAnimationEnabled=XL,n}function YL(t){return{index:t.__pictorialAnimationIndex,count:t.__pictorialRepeatTimes}}function XL(){return this.parentModel.isAnimationEnabled()&&!!this.getShallow("animation")}function UL(t,e,n,i){var r=new Vi,o=new Vi;return r.add(o),r.__pictorialBundle=o,o.x=n.bundlePosition[0],o.y=n.bundlePosition[1],n.symbolRepeat?VL(r,e,n):FL(r,0,n),GL(r,n,i),HL(r,e,n,i),r.__pictorialShapeStr=jL(t,n),r.__pictorialSymbolMeta=n,r}function ZL(t,e,n,i){var r=i.__pictorialBarRect;r&&r.removeTextContent();var o=[];qL(i,(function(t){o.push(t)})),i.__pictorialMainPath&&o.push(i.__pictorialMainPath),i.__pictorialClipPath&&(n=null),P(o,(function(t){zu(t,{scaleX:0,scaleY:0},n,e,(function(){i.parent&&i.parent.remove(i)}))})),t.setItemGraphicEl(e,null)}function jL(t,e){return[t.getItemVisual(e.dataIndex,"symbol")||"none",!!e.symbolRepeat,!!e.symbolClip].join(":")}function qL(t,e,n){P(t.__pictorialBundle.children(),(function(i){i!==t.__pictorialBarRect&&e.call(n,i)}))}function KL(t,e,n,i,r,o){e&&t.attr(e),i.symbolClip&&!r?n&&t.attr(n):n&&Ju[r?"updateProps":"initProps"](t,n,i.animationModel,i.dataIndex,o)}function $L(t,e,n){var i=n.dataIndex,r=n.itemModel,o=r.getModel("emphasis"),a=o.getModel("itemStyle").getItemStyle(),s=r.getModel(["blur","itemStyle"]).getItemStyle(),l=r.getModel(["select","itemStyle"]).getItemStyle(),u=r.getShallow("cursor"),h=o.get("focus"),c=o.get("blurScope"),p=o.get("scale");qL(t,(function(t){if(t instanceof ts){var e=t.style;t.useStyle(I({image:e.image,x:e.x,y:e.y,width:e.width,height:e.height},n.style))}else t.useStyle(n.style);var i=t.ensureState("emphasis");i.style=a,p&&(i.scaleX=1.1*t.scaleX,i.scaleY=1.1*t.scaleY),t.ensureState("blur").style=s,t.ensureState("select").style=l,u&&(t.cursor=u),t.z2=n.z2}));var d=e.valueDim.posDesc[+(n.boundingLength>0)];nh(t.__pictorialBarRect,ih(r),{labelFetcher:e.seriesModel,labelDataIndex:i,defaultText:bb(e.seriesModel.getData(),i),inheritColor:n.style.fill,defaultOpacity:n.style.opacity,defaultOutsidePosition:d}),tl(t,h,c)}function JL(t){var e=Math.round(t);return Math.abs(t-e)<1e-4?e:Math.ceil(t)}var QL=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.hasSymbolVisual=!0,n.defaultSymbol="roundRect",n}return n(e,t),e.prototype.getInitialData=function(e){return e.stack=null,t.prototype.getInitialData.apply(this,arguments)},e.type="series.pictorialBar",e.dependencies=["grid"],e.defaultOption=Ah(ow.defaultOption,{symbol:"circle",symbolSize:null,symbolRotate:null,symbolPosition:null,symbolOffset:null,symbolMargin:null,symbolRepeat:!1,symbolRepeatDirection:"end",symbolClip:!1,symbolBoundingData:null,symbolPatternSize:400,barGap:"-100%",progressive:0,emphasis:{scale:!1},select:{itemStyle:{borderColor:"#212121"}}}),e}(ow);var tk=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._layers=[],n}return n(e,t),e.prototype.render=function(t,e,n){var i=t.getData(),r=this,o=this.group,a=t.getLayerSeries(),s=i.getLayout("layoutInfo"),l=s.rect,u=s.boundaryGap;function h(t){return t.name}o.x=0,o.y=l.y+u[0];var c=new am(this._layersSeries||[],a,h,h),p=[];function d(e,n,s){var l=r._layers;if("remove"!==e){for(var u,h,c=[],d=[],f=a[n].indices,g=0;g<f.length;g++){var y=i.getItemLayout(f[g]),v=y.x,m=y.y0,_=y.y;c.push(v,m),d.push(v,m+_),u=i.getItemVisual(f[g],"style")}var x=i.getItemLayout(f[0]),b=t.getModel("label").get("margin"),w=t.getModel("emphasis");if("add"===e){var S=p[n]=new Vi;h=new Gb({shape:{points:c,stackedOnPoints:d,smooth:.4,stackedOnSmooth:.4,smoothConstraint:!1},z2:0}),S.add(h),o.add(S),t.isAnimationEnabled()&&h.setClipPath(function(t,e,n){var i=new ss({shape:{x:t.x-10,y:t.y-10,width:0,height:t.height+20}});return Eu(i,{shape:{x:t.x-50,width:t.width+100,height:t.height+20}},e,n),i}(h.getBoundingRect(),t,(function(){h.removeClipPath()})))}else{S=l[s];h=S.childAt(0),o.add(S),p[n]=S,Nu(h,{shape:{points:c,stackedOnPoints:d}},t)}nh(h,ih(t),{labelDataIndex:f[g-1],defaultText:i.getName(f[g-1]),inheritColor:u.fill},{normal:{verticalAlign:"middle"}}),h.setTextConfig({position:null,local:!0});var M=h.getTextContent();M&&(M.x=x.x-b,M.y=x.y0+x.y/2),h.useStyle(u),i.setItemGraphicEl(n,h),rl(h,t),tl(h,w.get("focus"),w.get("blurScope"))}else o.remove(l[n])}c.add(B(d,this,"add")).update(B(d,this,"update")).remove(B(d,this,"remove")).execute(),this._layersSeries=a,this._layers=p},e.type="themeRiver",e}(mf);var ek=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.useColorPaletteOnData=!0,n}return n(e,t),e.prototype.init=function(e){t.prototype.init.apply(this,arguments),this.legendVisualProvider=new zw(B(this.getData,this),B(this.getRawData,this))},e.prototype.fixData=function(t){var e=t.length,n={},i=Vr(t,(function(t){return n.hasOwnProperty(t[0]+"")||(n[t[0]+""]=-1),t[2]})),r=[];i.buckets.each((function(t,e){r.push({name:e,dataList:t})}));for(var o=r.length,a=0;a<o;++a){for(var s=r[a].name,l=0;l<r[a].dataList.length;++l){var u=r[a].dataList[l][0]+"";n[u]=a}for(var u in n)n.hasOwnProperty(u)&&n[u]!==a&&(n[u]=a,t[e]=[u,0,s],e++)}return t},e.prototype.getInitialData=function(t,e){for(var n=this.getReferringComponents("singleAxis",Nr).models[0].get("type"),i=N(t.data,(function(t){return void 0!==t[2]})),r=this.fixData(i||[]),o=[],a=this.nameMap=ht(),s=0,l=0;l<r.length;++l)o.push(r[l][2]),a.get(r[l][2])||(a.set(r[l][2],s),s++);var u=zm(r,{coordDimensions:["single"],dimensionsDefine:[{name:"time",type:lm(n)},{name:"value",type:"float"},{name:"name",type:"ordinal"}],encodeDefine:{single:0,value:1,itemName:2}}),h=new Rm(u,this);return h.initData(r),h},e.prototype.getLayerSeries=function(){for(var t=this.getData(),e=t.count(),n=[],i=0;i<e;++i)n[i]=i;var r=t.mapDimension("single"),o=Vr(n,(function(e){return t.get("name",e)})),a=[];return o.buckets.each((function(e,n){e.sort((function(e,n){return t.get(r,e)-t.get(r,n)})),a.push({name:n,indices:e})})),a},e.prototype.getAxisTooltipData=function(t,e,n){F(t)||(t=t?[t]:[]);for(var i,r=this.getData(),o=this.getLayerSeries(),a=[],s=o.length,l=0;l<s;++l){for(var u=Number.MAX_VALUE,h=-1,c=o[l].indices.length,p=0;p<c;++p){var d=r.get(t[0],o[l].indices[p]),f=Math.abs(d-e);f<=u&&(i=d,u=f,h=o[l].indices[p])}a.push(h)}return{dataIndices:a,nestestValue:i}},e.prototype.formatTooltip=function(t,e,n){var i=this.getData();return Ud("nameValue",{name:i.getName(t),value:i.get(i.mapDimension("value"),t)})},e.type="series.themeRiver",e.dependencies=["singleAxis"],e.defaultOption={zlevel:0,z:2,coordinateSystem:"singleAxis",boundaryGap:["10%","10%"],singleAxisIndex:0,animationEasing:"linear",label:{margin:4,show:!0,position:"left",fontSize:11},emphasis:{label:{show:!0}}},e}(af);function nk(t,e){t.eachSeriesByType("themeRiver",(function(t){var e=t.getData(),n=t.coordinateSystem,i={},r=n.getRect();i.rect=r;var o=t.get("boundaryGap"),a=n.getAxis();(i.boundaryGap=o,"horizontal"===a.orient)?(o[0]=qi(o[0],r.height),o[1]=qi(o[1],r.height),ik(e,t,r.height-o[0]-o[1])):(o[0]=qi(o[0],r.width),o[1]=qi(o[1],r.width),ik(e,t,r.width-o[0]-o[1]));e.setLayout("layoutInfo",i)}))}function ik(t,e,n){if(t.count())for(var i,r=e.coordinateSystem,o=e.getLayerSeries(),a=t.mapDimension("single"),s=t.mapDimension("value"),l=O(o,(function(e){return O(e.indices,(function(e){var n=r.dataToPoint(t.get(a,e));return n[1]=t.get(s,e),n}))})),u=function(t){for(var e=t.length,n=t[0].length,i=[],r=[],o=0,a=0;a<n;++a){for(var s=0,l=0;l<e;++l)s+=t[l][a][1];s>o&&(o=s),i.push(s)}for(var u=0;u<n;++u)r[u]=(o-i[u])/2;o=0;for(var h=0;h<n;++h){var c=i[h]+r[h];c>o&&(o=c)}return{y0:r,max:o}}(l),h=u.y0,c=n/u.max,p=o.length,d=o[0].indices.length,f=0;f<d;++f){i=h[f]*c,t.setItemLayout(o[0].indices[f],{layerIndex:0,x:l[0][f][0],y0:i,y:l[0][f][1]*c});for(var g=1;g<p;++g)i+=l[g-1][f][1]*c,t.setItemLayout(o[g].indices[f],{layerIndex:g,x:l[g][f][0],y0:i,y:l[g][f][1]*c})}}var rk=function(t){function e(e,n,i,r){var o=t.call(this)||this;o.z2=2,o.textConfig={inside:!0},ms(o).seriesIndex=n.seriesIndex;var a=new hs({z2:4,silent:e.getModel().get(["label","silent"])});return o.setTextContent(a),o.updateData(!0,e,n,i,r),o}return n(e,t),e.prototype.updateData=function(t,e,n,i,r){this.node=e,e.piece=this,n=n||this._seriesModel,i=i||this._ecModel;var o=this;ms(o).dataIndex=e.dataIndex;var a=e.getModel(),s=a.getModel("emphasis"),l=e.getLayout(),u=I({},l);u.label=null;var h=e.getVisual("style");h.lineJoin="bevel";var c=e.getVisual("decal");c&&(h.decal=Oy(c,r));var p=Ow(a.getModel("itemStyle"),u);I(u,p),P(ws,(function(t){var e=o.ensureState(t),n=a.getModel([t,"itemStyle"]);e.style=n.getItemStyle();var i=Ow(n,u);i&&(e.shape=i)})),t?(o.setShape(u),o.shape.r=l.r0,Nu(o,{shape:{r:l.r}},n,e.dataIndex)):Nu(o,{shape:u},n),o.useStyle(h),this._updateLabel(n);var d=a.getShallow("cursor");d&&o.attr("cursor",d),this._seriesModel=n||this._seriesModel,this._ecModel=i||this._ecModel;var f=s.get("focus");tl(this,("ancestor"===f?e.getAncestorsIndices():"descendant"===f?e.getDescendantIndices():null)||f,s.get("blurScope"))},e.prototype._updateLabel=function(t){var e=this,n=this.node.getModel(),i=n.getModel("label"),r=this.node.getLayout(),o=r.endAngle-r.startAngle,a=(r.startAngle+r.endAngle)/2,s=Math.cos(a),l=Math.sin(a),u=this,h=u.getTextContent(),c=this.node.dataIndex,p=i.get("minAngle")/180*Math.PI,d=i.get("show")&&!(null!=p&&Math.abs(o)<p);function f(t,e){var n=t.get(e);return null==n?i.get(e):n}h.ignore=!d,P(Ss,(function(i){var o="normal"===i?n.getModel("label"):n.getModel([i,"label"]),p="normal"===i,d=p?h:h.ensureState(i),g=t.getFormattedLabel(c,i);p&&(g=g||e.node.name),d.style=rh(o,{},null,"normal"!==i,!0),g&&(d.style.text=g);var y=o.get("show");null==y||p||(d.ignore=!y);var v,m=f(o,"position"),_=p?u:u.states[i],x=_.style.fill;_.textConfig={outsideFill:"inherit"===o.get("color")?x:null,inside:"outside"!==m};var b=f(o,"distance")||0,w=f(o,"align");"outside"===m?(v=r.r+b,w=a>Math.PI/2?"right":"left"):w&&"center"!==w?"left"===w?(v=r.r0+b,a>Math.PI/2&&(w="right")):"right"===w&&(v=r.r-b,a>Math.PI/2&&(w="left")):(v=(r.r+r.r0)/2,w="center"),d.style.align=w,d.style.verticalAlign=f(o,"verticalAlign")||"middle",d.x=v*s+r.cx,d.y=v*l+r.cy;var S=f(o,"rotate"),M=0;"radial"===S?(M=-a)<-Math.PI/2&&(M+=Math.PI):"tangential"===S?(M=Math.PI/2-a)>Math.PI/2?M-=Math.PI:M<-Math.PI/2&&(M+=Math.PI):"number"==typeof S&&(M=S*Math.PI/180),d.rotation=M})),h.dirtyStyle()},e}(Xl),ok="sunburstRootToNode",ak="sunburstHighlight";var sk=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n,i){var r=this;this.seriesModel=t,this.api=n,this.ecModel=e;var o=t.getData(),a=o.tree.root,s=t.getViewRoot(),l=this.group,u=t.get("renderLabelForZeroData"),h=[];s.eachNode((function(t){h.push(t)}));var c=this._oldChildren||[];!function(i,r){if(0===i.length&&0===r.length)return;function s(t){return t.getId()}function h(s,h){!function(i,r){u||!i||i.getValue()||(i=null);if(i!==a&&r!==a)if(r&&r.piece)i?(r.piece.updateData(!1,i,t,e,n),o.setItemGraphicEl(i.dataIndex,r.piece)):function(t){if(!t)return;t.piece&&(l.remove(t.piece),t.piece=null)}(r);else if(i){var s=new rk(i,t,e,n);l.add(s),o.setItemGraphicEl(i.dataIndex,s)}}(null==s?null:i[s],null==h?null:r[h])}new am(r,i,s,s).add(h).update(h).remove(V(h,null)).execute()}(h,c),function(i,o){o.depth>0?(r.virtualPiece?r.virtualPiece.updateData(!1,i,t,e,n):(r.virtualPiece=new rk(i,t,e,n),l.add(r.virtualPiece)),o.piece.off("click"),r.virtualPiece.on("click",(function(t){r._rootToNode(o.parentNode)}))):r.virtualPiece&&(l.remove(r.virtualPiece),r.virtualPiece=null)}(a,s),this._initEvents(),this._oldChildren=h},e.prototype._initEvents=function(){var t=this;this.group.off("click"),this.group.on("click",(function(e){var n=!1;t.seriesModel.getViewRoot().eachNode((function(i){if(!n&&i.piece&&i.piece===e.target){var r=i.getModel().get("nodeClick");if("rootToNode"===r)t._rootToNode(i);else if("link"===r){var o=i.getModel(),a=o.get("link");if(a)Mc(a,o.get("target",!0)||"_blank")}n=!0}}))}))},e.prototype._rootToNode=function(t){t!==this.seriesModel.getViewRoot()&&this.api.dispatchAction({type:ok,from:this.uid,seriesId:this.seriesModel.id,targetNode:t})},e.prototype.containPoint=function(t,e){var n=e.getData().getItemLayout(0);if(n){var i=t[0]-n.cx,r=t[1]-n.cy,o=Math.sqrt(i*i+r*r);return o<=n.r&&o>=n.r0}},e.type="sunburst",e}(mf),lk=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.ignoreStyleOnData=!0,n}return n(e,t),e.prototype.getInitialData=function(t,e){var n={name:t.name,children:t.data};uk(n);var i=O(t.levels||[],(function(t){return new Ih(t,this,e)}),this),r=xI.createTree(n,this,(function(t){t.wrapMethod("getItemModel",(function(t,e){var n=r.getNodeByDataIndex(e),o=i[n.depth];return o&&(t.parentModel=o),t}))}));return r.data},e.prototype.optionUpdated=function(){this.resetViewRoot()},e.prototype.getDataParams=function(e){var n=t.prototype.getDataParams.apply(this,arguments),i=this.getData().tree.getNodeByDataIndex(e);return n.treePathInfo=DI(i,this),n},e.prototype.getViewRoot=function(){return this._viewRoot},e.prototype.resetViewRoot=function(t){t?this._viewRoot=t:t=this._viewRoot;var e=this.getRawData().tree.root;t&&(t===e||e.contains(t))||(this._viewRoot=e)},e.prototype.enableAriaDecal=function(){PI(this)},e.type="series.sunburst",e.defaultOption={zlevel:0,z:2,center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,stillShowZeroSum:!0,nodeClick:"rootToNode",renderLabelForZeroData:!1,label:{rotate:"radial",show:!0,opacity:1,align:"center",position:"inside",distance:5,silent:!0},itemStyle:{borderWidth:1,borderColor:"white",borderType:"solid",shadowBlur:0,shadowColor:"rgba(0, 0, 0, 0.2)",shadowOffsetX:0,shadowOffsetY:0,opacity:1},emphasis:{focus:"descendant"},blur:{itemStyle:{opacity:.2},label:{opacity:.1}},animationType:"expansion",animationDuration:1e3,animationDurationUpdate:500,data:[],levels:[],sort:"desc"},e}(af);function uk(t){var e=0;P(t.children,(function(t){uk(t);var n=t.value;F(n)&&(n=n[0]),e+=n}));var n=t.value;F(n)&&(n=n[0]),(null==n||isNaN(n))&&(n=e),n<0&&(n=0),F(t.value)?t.value[0]=n:t.value=n}var hk=Math.PI/180;function ck(t,e,n){e.eachSeriesByType(t,(function(t){var e=t.get("center"),i=t.get("radius");F(i)||(i=[0,i]),F(e)||(e=[e,e]);var r=n.getWidth(),o=n.getHeight(),a=Math.min(r,o),s=qi(e[0],r),l=qi(e[1],o),u=qi(i[0],a/2),h=qi(i[1],a/2),c=-t.get("startAngle")*hk,p=t.get("minAngle")*hk,d=t.getData().tree.root,f=t.getViewRoot(),g=f.depth,y=t.get("sort");null!=y&&pk(f,y);var v=0;P(f.children,(function(t){!isNaN(t.getValue())&&v++}));var m=f.getValue(),_=Math.PI/(m||v)*2,x=f.depth>0,b=f.height-(x?-1:1),w=(h-u)/(b||1),S=t.get("clockwise"),M=t.get("stillShowZeroSum"),I=S?1:-1,T=function(t,e){if(t){var n=e;if(t!==d){var i=t.getValue(),r=0===m&&M?_:i*_;r<p&&(r=p),n=e+I*r;var o=t.depth-g-(x?-1:1),h=u+w*o,c=u+w*(o+1),f=t.getModel();null!=f.get("r0")&&(h=qi(f.get("r0"),a/2)),null!=f.get("r")&&(c=qi(f.get("r"),a/2)),t.setLayout({angle:r,startAngle:e,endAngle:n,clockwise:S,cx:s,cy:l,r0:h,r:c})}if(t.children&&t.children.length){var y=0;P(t.children,(function(t){y+=T(t,e+y)}))}return n-e}};if(x){var C=u,A=u+w,D=2*Math.PI;d.setLayout({angle:D,startAngle:c,endAngle:c+D,clockwise:S,cx:s,cy:l,r0:C,r:A})}T(f,c)}))}function pk(t,e){var n=t.children||[];t.children=function(t,e){if("function"==typeof e){var n=O(t,(function(t,e){var n=t.getValue();return{params:{depth:t.depth,height:t.height,dataIndex:t.dataIndex,getValue:function(){return n}},index:e}}));return n.sort((function(t,n){return e(t.params,n.params)})),O(n,(function(e){return t[e.index]}))}var i="asc"===e;return t.sort((function(t,e){var n=(t.getValue()-e.getValue())*(i?1:-1);return 0===n?(t.dataIndex-e.dataIndex)*(i?-1:1):n}))}(n,e),n.length&&P(t.children,(function(t){pk(t,e)}))}function dk(t){var e={};t.eachSeriesByType("sunburst",(function(t){var n=t.getData(),i=n.tree;i.eachNode((function(r){var o=r.getModel().getModel("itemStyle").getItemStyle();o.fill||(o.fill=function(t,n,i){for(var r=t;r&&r.depth>1;)r=r.parentNode;var o=n.getColorFromPalette(r.name||r.dataIndex+"",e);return t.depth>1&&"string"==typeof o&&(o=Qe(o,(t.depth-1)/(i-1)*.5)),o}(r,t,i.root.height)),I(n.ensureUniqueItemVisual(r.dataIndex,"style"),o)}))}))}function fk(t,e){return e=e||[0,0],O(["x","y"],(function(n,i){var r=this.getAxis(n),o=e[i],a=t[i]/2;return"category"===r.type?r.getBandWidth():Math.abs(r.dataToCoord(o-a)-r.dataToCoord(o+a))}),this)}function gk(t,e){return e=e||[0,0],O([0,1],(function(n){var i=e[n],r=t[n]/2,o=[],a=[];return o[n]=i-r,a[n]=i+r,o[1-n]=a[1-n]=e[1-n],Math.abs(this.dataToPoint(o)[n]-this.dataToPoint(a)[n])}),this)}function yk(t,e){var n=this.getAxis(),i=e instanceof Array?e[0]:e,r=(t instanceof Array?t[0]:t)/2;return"category"===n.type?n.getBandWidth():Math.abs(n.dataToCoord(i-r)-n.dataToCoord(i+r))}function vk(t,e){return e=e||[0,0],O(["Radius","Angle"],(function(n,i){var r=this["get"+n+"Axis"](),o=e[i],a=t[i]/2,s="category"===r.type?r.getBandWidth():Math.abs(r.dataToCoord(o-a)-r.dataToCoord(o+a));return"Angle"===n&&(s=s*Math.PI/180),s}),this)}function mk(t,e,n,i){return t&&(t.legacy||!1!==t.legacy&&!n&&!i&&"tspan"!==e&&("text"===e||dt(t,"text")))}function _k(t,e,n){var i,r,o,a=t;if("text"===e)o=a;else{o={},dt(a,"text")&&(o.text=a.text),dt(a,"rich")&&(o.rich=a.rich),dt(a,"textFill")&&(o.fill=a.textFill),dt(a,"textStroke")&&(o.stroke=a.textStroke),r={type:"text",style:o,silent:!0},i={};var s=dt(a,"textPosition");n?i.position=s?a.textPosition:"inside":s&&(i.position=a.textPosition),dt(a,"textPosition")&&(i.position=a.textPosition),dt(a,"textOffset")&&(i.offset=a.textOffset),dt(a,"textRotation")&&(i.rotation=a.textRotation),dt(a,"textDistance")&&(i.distance=a.textDistance)}return xk(o,t),P(o.rich,(function(t){xk(t,t)})),{textConfig:i,textContent:r}}function xk(t,e){e&&(e.font=e.textFont||e.font,dt(e,"textStrokeWidth")&&(t.lineWidth=e.textStrokeWidth),dt(e,"textAlign")&&(t.align=e.textAlign),dt(e,"textVerticalAlign")&&(t.verticalAlign=e.textVerticalAlign),dt(e,"textLineHeight")&&(t.lineHeight=e.textLineHeight),dt(e,"textWidth")&&(t.width=e.textWidth),dt(e,"textHeight")&&(t.height=e.textHeight),dt(e,"textBackgroundColor")&&(t.backgroundColor=e.textBackgroundColor),dt(e,"textPadding")&&(t.padding=e.textPadding),dt(e,"textBorderColor")&&(t.borderColor=e.textBorderColor),dt(e,"textBorderWidth")&&(t.borderWidth=e.textBorderWidth),dt(e,"textBorderRadius")&&(t.borderRadius=e.textBorderRadius),dt(e,"textBoxShadowColor")&&(t.shadowColor=e.textBoxShadowColor),dt(e,"textBoxShadowBlur")&&(t.shadowBlur=e.textBoxShadowBlur),dt(e,"textBoxShadowOffsetX")&&(t.shadowOffsetX=e.textBoxShadowOffsetX),dt(e,"textBoxShadowOffsetY")&&(t.shadowOffsetY=e.textBoxShadowOffsetY))}function bk(t,e,n){var i=t;i.textPosition=i.textPosition||n.position||"inside",null!=n.offset&&(i.textOffset=n.offset),null!=n.rotation&&(i.textRotation=n.rotation),null!=n.distance&&(i.textDistance=n.distance);var r=i.textPosition.indexOf("inside")>=0,o=t.fill||"#000";wk(i,e);var a=null==i.textFill;return r?a&&(i.textFill=n.insideFill||"#fff",!i.textStroke&&n.insideStroke&&(i.textStroke=n.insideStroke),!i.textStroke&&(i.textStroke=o),null==i.textStrokeWidth&&(i.textStrokeWidth=2)):(a&&(i.textFill=n.outsideFill||o),!i.textStroke&&n.outsideStroke&&(i.textStroke=n.outsideStroke)),i.text=e.text,i.rich=e.rich,P(e.rich,(function(t){wk(t,t)})),i}function wk(t,e){e&&(dt(e,"fill")&&(t.textFill=e.fill),dt(e,"stroke")&&(t.textStroke=e.fill),dt(e,"lineWidth")&&(t.textStrokeWidth=e.lineWidth),dt(e,"font")&&(t.font=e.font),dt(e,"fontStyle")&&(t.fontStyle=e.fontStyle),dt(e,"fontWeight")&&(t.fontWeight=e.fontWeight),dt(e,"fontSize")&&(t.fontSize=e.fontSize),dt(e,"fontFamily")&&(t.fontFamily=e.fontFamily),dt(e,"align")&&(t.textAlign=e.align),dt(e,"verticalAlign")&&(t.textVerticalAlign=e.verticalAlign),dt(e,"lineHeight")&&(t.textLineHeight=e.lineHeight),dt(e,"width")&&(t.textWidth=e.width),dt(e,"height")&&(t.textHeight=e.height),dt(e,"backgroundColor")&&(t.textBackgroundColor=e.backgroundColor),dt(e,"padding")&&(t.textPadding=e.padding),dt(e,"borderColor")&&(t.textBorderColor=e.borderColor),dt(e,"borderWidth")&&(t.textBorderWidth=e.borderWidth),dt(e,"borderRadius")&&(t.textBorderRadius=e.borderRadius),dt(e,"shadowColor")&&(t.textBoxShadowColor=e.shadowColor),dt(e,"shadowBlur")&&(t.textBoxShadowBlur=e.shadowBlur),dt(e,"shadowOffsetX")&&(t.textBoxShadowOffsetX=e.shadowOffsetX),dt(e,"shadowOffsetY")&&(t.textBoxShadowOffsetY=e.shadowOffsetY),dt(e,"textShadowColor")&&(t.textShadowColor=e.textShadowColor),dt(e,"textShadowBlur")&&(t.textShadowBlur=e.textShadowBlur),dt(e,"textShadowOffsetX")&&(t.textShadowOffsetX=e.textShadowOffsetX),dt(e,"textShadowOffsetY")&&(t.textShadowOffsetY=e.textShadowOffsetY))}var Sk=Da.CMD,Mk=2*Math.PI,Ik=["x","y"],Tk=["width","height"],Ck=[];function Ak(t,e){return Math.abs(t-e)<1e-5}function Dk(t){var e,n,i,r,o,a=t.data,s=t.len(),l=[],u=0,h=0,c=0,p=0;function d(t,n){e&&e.length>2&&l.push(e),e=[t,n]}function f(t,n,i,r){Ak(t,i)&&Ak(n,r)||e.push(t,n,i,r,i,r)}function g(t,n,i,r,o,a){var s=Math.abs(n-t),l=4*Math.tan(s/4)/3,u=n<t?-1:1,h=Math.cos(t),c=Math.sin(t),p=Math.cos(n),d=Math.sin(n),f=h*o+i,g=c*a+r,y=p*o+i,v=d*a+r,m=o*l*u,_=a*l*u;e.push(f-m*c,g+_*h,y+m*d,v-_*p,y,v)}for(var y=0;y<s;){var v=a[y++],m=1===y;switch(m&&(c=u=a[y],p=h=a[y+1],v!==Sk.L&&v!==Sk.C&&v!==Sk.Q||(e=[c,p])),v){case Sk.M:u=c=a[y++],h=p=a[y++],d(c,p);break;case Sk.L:f(u,h,n=a[y++],i=a[y++]),u=n,h=i;break;case Sk.C:e.push(a[y++],a[y++],a[y++],a[y++],u=a[y++],h=a[y++]);break;case Sk.Q:n=a[y++],i=a[y++],r=a[y++],o=a[y++],e.push(u+2/3*(n-u),h+2/3*(i-h),r+2/3*(n-r),o+2/3*(i-o),r,o),u=r,h=o;break;case Sk.A:var _=a[y++],x=a[y++],b=a[y++],w=a[y++],S=a[y++],M=a[y++]+S;y+=1;var I=!a[y++];n=Math.cos(S)*b+_,i=Math.sin(S)*w+x,m?d(c=n,p=i):f(u,h,n,i),u=Math.cos(M)*b+_,h=Math.sin(M)*w+x;for(var T=(I?-1:1)*Math.PI/2,C=S;I?C>M:C<M;C+=T){g(C,I?Math.max(C+T,M):Math.min(C+T,M),_,x,b,w)}break;case Sk.R:c=u=a[y++],p=h=a[y++],n=c+a[y++],i=p+a[y++],d(n,p),f(n,p,n,i),f(n,i,c,i),f(c,i,c,p),f(c,p,n,p);break;case Sk.Z:e&&f(u,h,c,p),u=c,h=p}}return e&&e.length>2&&l.push(e),l}function Lk(t,e){var n=t.length,i=e.length;if(n===i)return[t,e];for(var r=n<i?t:e,o=Math.min(n,i),a=Math.abs(i-n)/6,s=(o-2)/6,l=Math.ceil(a/s)+1,u=[r[0],r[1]],h=a,c=[],p=[],d=2;d<o;){var f=r[d-2],g=r[d-1],y=r[d++],v=r[d++],m=r[d++],_=r[d++],x=r[d++],b=r[d++];if(h<=0)u.push(y,v,m,_,x,b);else{for(var w=Math.min(h,l-1)+1,S=1;S<=w;S++){var M=S/w;Fo(f,y,m,x,M,c),Fo(g,v,_,b,M,p),f=c[3],g=p[3],u.push(c[1],p[1],c[2],p[2],f,g),y=c[5],v=p[5],m=c[6],_=p[6]}h-=w-1}}return r===t?[u,e]:[t,u]}function kk(t,e){for(var n=t.length,i=t[n-2],r=t[n-1],o=[],a=0;a<e.length;)o[a++]=i,o[a++]=r;return o}function Pk(t){for(var e=0,n=0,i=0,r=t.length,o=0,a=r-2;o<r;a=o,o+=2){var s=t[a],l=t[a+1],u=t[o],h=t[o+1],c=s*h-u*l;e+=c,n+=(s+u)*c,i+=(l+h)*c}return 0===e?[t[0]||0,t[1]||0]:[n/e/3,i/e/3,e]}function Ok(t,e,n,i){for(var r=(t.length-2)/6,o=1/0,a=0,s=t.length,l=s-2,u=0;u<r;u++){for(var h=6*u,c=0,p=0;p<s;p+=2){var d=0===p?h:(h+p-2)%l+2,f=t[d]-n[0],g=t[d+1]-n[1],y=e[p]-i[0]-f,v=e[p+1]-i[1]-g;c+=y*y+v*v}c<o&&(o=c,a=u)}return a}function Rk(t){for(var e=[],n=t.length,i=0;i<n;i+=2)e[i]=t[n-i-2],e[i+1]=t[n-i-1];return e}function Nk(t,e,n){var i,r;if(!t||!e)return e;!t.path&&t.createPathProxy(),(i=t.path).beginPath(),t.buildPath(i,t.shape),!e.path&&e.createPathProxy(),(r=e.path)===i&&(r=new Da(!1)),r.beginPath(),Bk(e)?e.__oldBuildPath(r,e.shape):e.buildPath(r,e.shape);var o=function(t,e){for(var n,i,r,o=[],a=[],s=0;s<Math.max(t.length,e.length);s++){var l=t[s],u=e[s],h=void 0,c=void 0;l?u?(i=h=(n=Lk(l,u))[0],r=c=n[1]):(c=kk(r||l,l),h=l):(h=kk(i||u,u),c=u),o.push(h),a.push(c)}return[o,a]}(Dk(i),Dk(r)),a=function(t,e,n,i){for(var r,o=[],a=0;a<t.length;a++){var s=t[a],l=e[a],u=Pk(s),h=Pk(l);null==r&&(r=u[2]<0!=h[2]<0);var c=[],p=[],d=0,f=1/0,g=[],y=s.length;r&&(s=Rk(s));for(var v=6*Ok(s,l,u,h),m=y-2,_=0;_<m;_+=2){var x=(v+_)%m+2;c[_+2]=s[x]-u[0],c[_+3]=s[x+1]-u[1]}if(c[0]=s[v]-u[0],c[1]=s[v+1]-u[1],n>0)for(var b=i/n,w=-i/2;w<=i/2;w+=b){var S=Math.sin(w),M=Math.cos(w),I=0;for(_=0;_<s.length;_+=2){var T=c[_],C=c[_+1],A=l[_]-h[0],D=l[_+1]-h[1],L=A*M-D*S,k=A*S+D*M;g[_]=L,g[_+1]=k;var P=L-T,O=k-C;I+=P*P+O*O}if(I<f){f=I,d=w;for(var R=0;R<g.length;R++)p[R]=g[R]}}else for(var N=0;N<y;N+=2)p[N]=l[N]-h[0],p[N+1]=l[N+1]-h[1];o.push({from:c,to:p,fromCp:u,toCp:h,rotation:-d})}return o}(o[0],o[1],10,Math.PI);!function(t,e,n){if(Bk(t))return void zk(t,e,n);var i=t;i.__oldBuildPath=i.buildPath,i.buildPath=Ek,zk(i,e,n)}(e,a,0);var s=n&&n.done,l=n&&n.aborted,u=n&&n.during;return e.animateTo({__morphT:1},T({during:function(t){e.dirtyShape(),u&&u(t)},done:function(){var t;Bk(t=e)&&(t.buildPath=t.__oldBuildPath,t.__oldBuildPath=t.__morphingData=null),e.createPathProxy(),e.dirtyShape(),s&&s()},aborted:function(){l&&l()}},n)),e}function Ek(t){for(var e=this.__morphingData,n=this.__morphT,i=1-n,r=[],o=0;o<e.length;o++){var a=e[o],s=a.from,l=a.to,u=a.rotation*n,h=a.fromCp,c=a.toCp,p=Math.sin(u),d=Math.cos(u);Nt(r,h,c,n);for(var f=0;f<s.length;f+=2){var g=s[f],y=s[f+1],v=g*i+l[f]*n,m=y*i+l[f+1]*n;Ck[f]=v*d-m*p+r[0],Ck[f+1]=v*p+m*d+r[1]}for(f=0;f<s.length;)0===f&&t.moveTo(Ck[f++],Ck[f++]),t.bezierCurveTo(Ck[f++],Ck[f++],Ck[f++],Ck[f++],Ck[f++],Ck[f++])}}function zk(t,e,n){t.__morphingData=e,t.__morphT=n}function Bk(t){return null!=t.__oldBuildPath}function Vk(t){return!!t.__combiningSubList}function Fk(t,e,n,i){for(var r=[],o=0,a=0;a<t.length;a++){var s=t[a];if(Vk(s)){for(var l=s.__combiningSubList,u=0;u<l.length;u++)r.push(l[u]);o+=l.length}else r.push(s),o++}if(o){var h=n?n.dividingMethod:null,c=Uk(e,o,h);rt(c.length===o);var p=n&&n.done,d=n&&n.aborted,f=n&&n.during,g=0,y=!1,v=T({during:function(t){f&&f(t)},done:function(){++g===c.length&&(!function(t){if(!Vk(t))return;var e=t;Gk(e,null),e.addSelfToZr=e.__oldAddSelfToZr,e.removeSelfFromZr=e.__oldRemoveSelfFromZr,e.buildPath=e.__oldBuildPath,e.childrenRef=e.__combiningSubList=e.__oldAddSelfToZr=e.__oldRemoveSelfFromZr=e.__oldBuildPath=null}(e),p&&p())},aborted:function(){y||(y=!0,d&&d())}},n);for(a=0;a<o;a++){var m=r[a],_=c[a];i&&i(e,_,!0),Nk(m,_,v)}return function(t,e){if(Vk(t))return void Gk(t,e);var n=t;Gk(n,e),n.__oldAddSelfToZr=t.addSelfToZr,n.__oldRemoveSelfFromZr=t.removeSelfFromZr,n.addSelfToZr=Hk,n.removeSelfFromZr=Yk,n.__oldBuildPath=n.buildPath,n.buildPath=ft,n.childrenRef=Xk}(e,c),{fromIndividuals:r,toIndividuals:c,count:o}}}function Gk(t,e){if(t.__combiningSubList!==e){if(Wk(t,"removeSelfFromZr"),t.__combiningSubList=e,e)for(var n=0;n<e.length;n++)e[n].parent=t;Wk(t,"addSelfToZr")}}function Hk(t){this.__oldAddSelfToZr(t),Wk(this,"addSelfToZr")}function Wk(t,e){var n=t.__combiningSubList,i=t.__zr;if(n&&i)for(var r=0;r<n.length;r++){n[r][e](i)}}function Yk(t){this.__oldRemoveSelfFromZr(t);for(var e=this.__combiningSubList,n=0;n<e.length;n++){e[n].removeSelfFromZr(t)}}function Xk(){return this.__combiningSubList}function Uk(t,e,n){return"duplicate"===n?Zk(t,e):function(t,e){var n=[];if(e<=0)return n;if(1===e)return Zk(t,e);if(t instanceof ss)for(var i=(c=t.shape).height>c.width?1:0,r=Tk[i],o=Ik[i],a=c[r]/e,s=c[o],l=0;l<e;l++,s+=a){var u={x:c.x,y:c.y,width:c.width,height:c.height};u[o]=s,u[r]=l<e-1?a:c[o]+c[r]-s;var h=new ss({shape:u});n.push(h)}else{if(!(t instanceof Xl))return Zk(t,e);var c,p=(c=t.shape).clockwise,d=c.startAngle,f=c.endAngle,g=(function(t,e,n){return e+Mk*Math[n?"ceil":"floor"]((t-e)/Mk)}(d,c.endAngle,p)-d)/e,y=d;for(l=0;l<e;l++,y+=g){h=new Xl({shape:{cx:c.cx,cy:c.cy,r:c.r,r0:c.r0,clockwise:p,startAngle:y,endAngle:l===e-1?f:y+g}});n.push(h)}}return n}(t,e)}function Zk(t,e){var n=[];if(e<=0)return n;for(var i=t.constructor,r=0;r<e;r++){var o=new i({shape:w(t.shape)});n.push(o)}return n}var jk=Pr(),qk={x:1,y:1,scaleX:1,scaleY:1,originX:1,originY:1,rotation:1},Kk=(z(qk).join(", "),{color:"fill",borderColor:"stroke"}),$k={symbol:1,symbolSize:1,symbolKeepAspect:1,legendSymbol:1,visualMeta:1,liftZ:1,decal:1},Jk="emphasis",Qk="normal",tP="blur",eP="select",nP=[Qk,Jk,tP,eP],iP={normal:["itemStyle"],emphasis:[Jk,"itemStyle"],blur:[tP,"itemStyle"],select:[eP,"itemStyle"]},rP={normal:["label"],emphasis:[Jk,"label"],blur:[tP,"label"],select:[eP,"label"]},oP={normal:{},emphasis:{},blur:{},select:{}},aP={position:["x","y"],scale:["scaleX","scaleY"],origin:["originX","originY"]},sP=new Oe,lP={cartesian2d:function(t){var e=t.master.getRect();return{coordSys:{type:"cartesian2d",x:e.x,y:e.y,width:e.width,height:e.height},api:{coord:function(e){return t.dataToPoint(e)},size:B(fk,t)}}},geo:function(t){var e=t.getBoundingRect();return{coordSys:{type:"geo",x:e.x,y:e.y,width:e.width,height:e.height,zoom:t.getZoom()},api:{coord:function(e){return t.dataToPoint(e)},size:B(gk,t)}}},singleAxis:function(t){var e=t.getRect();return{coordSys:{type:"singleAxis",x:e.x,y:e.y,width:e.width,height:e.height},api:{coord:function(e){return t.dataToPoint(e)},size:B(yk,t)}}},polar:function(t){var e=t.getRadiusAxis(),n=t.getAngleAxis(),i=e.getExtent();return i[0]>i[1]&&i.reverse(),{coordSys:{type:"polar",cx:t.cx,cy:t.cy,r:i[1],r0:i[0]},api:{coord:function(i){var r=e.dataToRadius(i[0]),o=n.dataToAngle(i[1]),a=t.coordToPoint([r,o]);return a.push(r,o*Math.PI/180),a},size:B(vk,t)}}},calendar:function(t){var e=t.getRect(),n=t.getRangeInfo();return{coordSys:{type:"calendar",x:e.x,y:e.y,width:e.width,height:e.height,cellWidth:t.getCellWidth(),cellHeight:t.getCellHeight(),rangeInfo:{start:n.start,end:n.end,weeks:n.weeks,dayCount:n.allDay}},api:{coord:function(e,n){return t.dataToPoint(e,n)}}}}},uP=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.optionUpdated=function(){this.currentZLevel=this.get("zlevel",!0),this.currentZ=this.get("z",!0)},e.prototype.getInitialData=function(t,e){return Ym(this.getSource(),this)},e.prototype.getDataParams=function(e,n,i){var r=t.prototype.getDataParams.call(this,e,n);return i&&(r.info=jk(i).info),r},e.type="series.custom",e.dependencies=["grid","polar","geo","singleAxis","calendar"],e.defaultOption={coordinateSystem:"cartesian2d",zlevel:0,z:2,legendHoverLink:!0,clip:!1},e}(af),hP=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n,i){var r=this._data,o=t.getData(),a=this.group,s=LP(t,o,e,n),l=t.__transientTransitionOpt;if(!l||null!=l.from&&null!=l.to){var u=new XP(t,l),h=l?"multiple":"oneToOne";new am(r?r.getIndices():[],o.getIndices(),cP(r,h,l&&l.from),cP(o,h,l&&l.to),null,h).add((function(e){PP(n,null,e,s(e,i),t,a,o,null)})).remove((function(e){GP(r.getItemGraphicEl(e),t,a)})).update((function(e,l){u.reset("oneToOne");var h=r.getItemGraphicEl(l);u.findAndAddFrom(h),u.hasFrom()&&(YP(h,a),h=null),PP(n,h,e,s(e,i),t,a,o,u),u.applyMorphing()})).updateManyToOne((function(e,l){u.reset("manyToOne");for(var h=0;h<l.length;h++){var c=r.getItemGraphicEl(l[h]);u.findAndAddFrom(c),YP(c,a)}PP(n,null,e,s(e,i),t,a,o,u),u.applyMorphing()})).updateOneToMany((function(e,l){u.reset("oneToMany");var h=e.length,c=r.getItemGraphicEl(l);u.findAndAddFrom(c),YP(c,a);for(var p=0;p<h;p++)PP(n,null,e[p],s(e[p],i),t,a,o,u);u.applyMorphing()})).execute()}else r&&r.each((function(e){GP(r.getItemGraphicEl(e),t,a)})),o.each((function(e){PP(n,null,e,s(e,i),t,a,o,null)}));var c=t.get("clip",!0)?Yb(t.coordinateSystem,!1,t):null;c?a.setClipPath(c):a.removeClipPath(),this._data=o},e.prototype.incrementalPrepareRender=function(t,e,n){this.group.removeAll(),this._data=null},e.prototype.incrementalRender=function(t,e,n,i,r){var o=e.getData(),a=LP(e,o,n,i);function s(t){t.isGroup||(t.incremental=!0,t.ensureState("emphasis").hoverLayer=!0)}for(var l=t.start;l<t.end;l++){PP(null,null,l,a(l,r),e,this.group,o,null).traverse(s)}},e.prototype.filterForExposedEvent=function(t,e,n,i){var r=e.element;if(null==r||n.name===r)return!0;for(;(n=n.__hostTarget||n.parent)&&n!==this.group;)if(n.name===r)return!0;return!1},e.type="custom",e}(mf);function cP(t,e,n){if(t){if("oneToOne"===e)return function(e,n){return t.getId(n)};var i=t.getDimension(n),r=t.getDimensionInfo(i);if(!r){var o="";0,mr(o)}var a=r.ordinalMeta;return function(e,n){var r=t.get(i,n);return a&&(r=a.categories[r]),null==r||J(r)?e+"":"_ec_"+r}}}function pP(t){var e,n=t.type;if("path"===n){var i=t.shape,r=null!=i.width&&null!=i.height?{x:i.x||0,y:i.y||0,width:i.width,height:i.height}:null,o=HP(i);e=Au(o,null,r,i.layout||"center"),jk(e).customPathData=o}else if("image"===n)e=new ts({}),jk(e).customImagePath=t.style.image;else if("text"===n)e=new hs({});else if("group"===n)e=new Vi;else{if("compoundPath"===n)throw new Error('"compoundPath" is not supported yet.');var a=Cu(n);if(!a){var s="";0,mr(s)}e=new a}return jk(e).customGraphicType=n,e.name=t.name,e.z2EmphasisLift=1,e.z2SelectLift=1,e}function dP(t,e,n,i,r,o,a,s,l,u){var h={},c={},p=e.isGroup?null:e;!n&&yP("shape",e,null,r,h,l),vP("shape",r,c),!n&&yP("extra",e,null,r,h,l),vP("extra",r,c),!n&&mP(e,null,r,h,l),function(t,e){CP(t,e,"position"),CP(t,e,"scale"),CP(t,e,"origin"),AP(t,e,"x"),AP(t,e,"y"),AP(t,e,"scaleX"),AP(t,e,"scaleY"),AP(t,e,"originX"),AP(t,e,"originY"),AP(t,e,"rotation")}(r,c);var d=a&&a.normal.cfg;if(d&&e.setTextConfig(d),"text"===e.type&&o){var f=o;dt(f,"textFill")&&(f.fill=f.textFill),dt(f,"textStroke")&&(f.stroke=f.textStroke)}if(o){var g=void 0,y=WP(e)?o.decal:null;t&&y&&(y.dirty=!0,g=Oy(y,t)),o.__decalPattern=g}return!n&&_P(e,null,r,o,h,l),p&&dt(r,"invisible")&&(p.invisible=r.invisible),n||(fP(e,c,o),gP(e,i,r,s,h,l)),dt(r,"silent")&&(e.silent=r.silent),dt(r,"ignore")&&(e.ignore=r.ignore),u||dt(r,"info")&&(jk(e).info=r.info),o?e.dirty():e.markRedraw(),n?c:null}function fP(t,e,n){var i=t.isGroup?null:t;if(i&&n){var r=n.__decalPattern,o=void 0;r&&(o=n.decal,n.decal=r),i.useStyle(n),r&&(n.decal=o);for(var a=i.animators,s=0;s<a.length;s++){var l=a[s];"style"===l.targetName&&l.changeTarget(i.style)}}e&&t.attr(e)}function gP(t,e,n,i,r,o){if(r){var a=n.during;jk(t).userDuring=a;var s={dataIndex:e,isFrom:!0,during:a?B(MP,{el:t,userDuring:a}):null};o?Eu(t,r,i,s):Nu(t,r,i,s)}}function yP(t,e,n,i,r,o){var a=i[t];if(a){var s,l=e[t],u=a.enterFrom;if(o&&u){!s&&(s=r[t]={});for(var h=z(u),c=0;c<h.length;c++){s[_=h[c]]=u[_]}}if(!o&&l&&(null==n||"shape"!==t))if(a.transition){!s&&(s=r[t]={});var p=br(a.transition);for(c=0;c<p.length;c++){var d=l[_=p[c]];0,s[_]=d}}else if(A(i.transition,t)>=0){!s&&(s=r[t]={});var f=z(l);for(c=0;c<f.length;c++){d=l[_=f[c]];xP(a[_],d)&&(s[_]=d)}}var g=a.leaveTo;if(g){var y=bP(e),v=y[t]||(y[t]={}),m=z(g);for(c=0;c<m.length;c++){var _;v[_=m[c]]=g[_]}}}}function vP(t,e,n){var i=e[t];if(i)for(var r=n[t]={},o=z(i),a=0;a<o.length;a++){var s=o[a];r[s]=xn(i[s])}}function mP(t,e,n,i,r){var o=n.enterFrom;if(r&&o)for(var a=z(o),s=0;s<a.length;s++){0,i[f=a[s]]=o[f]}if(!r)if(e){var l=function(t,e){if(!t||t===e||t.parent===e.parent)return t;var n=sP.transform||(sP.transform=ve([])),i=t.getComputedTransform();i?me(n,i):ve(n);var r=e.parent;r&&r.getComputedTransform();return sP.originX=t.originX,sP.originY=t.originY,sP.parent=r,sP.decomposeTransform(),sP}(e,t);DP(i,"x",l),DP(i,"y",l),DP(i,"scaleX",l),DP(i,"scaleY",l),DP(i,"originX",l),DP(i,"originY",l),DP(i,"rotation",l)}else if(n.transition){var u=br(n.transition);for(s=0;s<u.length;s++){if("style"!==(f=u[s])&&"shape"!==f&&"extra"!==f){var h=t[f];0,i[f]=h}}}else DP(i,"x",t),DP(i,"y",t);var c=n.leaveTo;if(c){var p=bP(t),d=z(c);for(s=0;s<d.length;s++){var f;0,p[f=d[s]]=c[f]}}}function _P(t,e,n,i,r,o){if(i){var a,s=(e||t).style,l=i.enterFrom;if(o&&l){var u=z(l);!a&&(a=r.style={});for(var h=0;h<u.length;h++){a[x=u[h]]=l[x]}}if(!o&&s)if(i.transition){var c=br(i.transition);!a&&(a=r.style={});for(h=0;h<c.length;h++){var p=s[x=c[h]];a[x]=p}}else if(t.getAnimationStyleProps&&A(n.transition,"style")>=0){var d=t.getAnimationStyleProps(),f=d?d.style:null;if(f){!a&&(a=r.style={});var g=z(i);for(h=0;h<g.length;h++){if(f[x=g[h]]){p=s[x];a[x]=p}}}}var y=i.leaveTo;if(y){var v=z(y),m=bP(t),_=m.style||(m.style={});for(h=0;h<v.length;h++){var x;_[x=v[h]]=y[x]}}}}function xP(t,e){return k(t)?t!==e:null!=t&&isFinite(t)}function bP(t){var e=jk(t);return e.leaveToProps||(e.leaveToProps={})}var wP={},SP={setTransform:function(t,e){return wP.el[t]=e,this},getTransform:function(t){return wP.el[t]},setShape:function(t,e){return(wP.el.shape||(wP.el.shape={}))[t]=e,wP.isShapeDirty=!0,this},getShape:function(t){var e=wP.el.shape;if(e)return e[t]},setStyle:function(t,e){var n=wP.el.style;return n&&(n[t]=e,wP.isStyleDirty=!0),this},getStyle:function(t){var e=wP.el.style;if(e)return e[t]},setExtra:function(t,e){return(wP.el.extra||(wP.el.extra={}))[t]=e,this},getExtra:function(t){var e=wP.el.extra;if(e)return e[t]}};function MP(){var t=this,e=t.el;if(e){var n=jk(e).userDuring,i=t.userDuring;n===i?(wP.el=e,wP.isShapeDirty=!1,wP.isStyleDirty=!1,i(SP),wP.isShapeDirty&&e.dirtyShape&&e.dirtyShape(),wP.isStyleDirty&&e.dirtyStyle&&e.dirtyStyle()):t.el=t.userDuring=null}}function IP(t,e,n,i,r,o,a){var s=e.isGroup?null:e,l=r&&r[t].cfg;if(s){var u=s.ensureState(t);if(!1===i){var h=s.getState(t);h&&(h.style=null)}else u.style=i||null;l&&(u.textConfig=l),Ws(s)}}function TP(t,e,n){var i=n===Qk,r=i?e:EP(e,n),o=r?r.z2:null;null!=o&&((i?t:t.ensureState(n)).z2=o||0)}function CP(t,e,n,i){var r=t[n],o=aP[n];r&&(i?(e[o[0]]=i[o[0]],e[o[1]]=i[o[1]]):(e[o[0]]=r[0],e[o[1]]=r[1]))}function AP(t,e,n,i){null!=t[n]&&(e[n]=i?i[n]:t[n])}function DP(t,e,n){n&&(t[e]=n[e])}function LP(t,e,n,i){var r=t.get("renderItem"),o=t.coordinateSystem,a={};o&&(a=o.prepareCustoms?o.prepareCustoms(o):lP[o.type](o));for(var s,l,u=T({getWidth:i.getWidth,getHeight:i.getHeight,getZr:i.getZr,getDevicePixelRatio:i.getDevicePixelRatio,value:function(t,n){return null==n&&(n=s),e.get(e.getDimension(t||0),n)},style:function(n,i){0;null==i&&(i=s);var r=e.getItemVisual(i,"style"),o=r&&r.fill,a=r&&r.opacity,l=m(i,Qk).getItemStyle();null!=o&&(l.fill=o),null!=a&&(l.opacity=a);var u={inheritColor:H(o)?o:"#000"},h=_(i,Qk),c=rh(h,null,u,!1,!0);c.text=h.getShallow("show")?tt(t.getFormattedLabel(i,Qk),bb(e,i)):null;var p=oh(h,u,!1);return b(n,l),l=bk(l,c,p),n&&x(l,n),l.legacy=!0,l},ordinalRawValue:function(t,n){null==n&&(n=s);var i=e.getDimensionInfo(t||0);if(!i)return;var r=e.get(i.name,n),o=i&&i.ordinalMeta;return o?o.categories[r]:r},styleEmphasis:function(n,i){0;null==i&&(i=s);var r=m(i,Jk).getItemStyle(),o=_(i,Jk),a=rh(o,null,null,!0,!0);a.text=o.getShallow("show")?et(t.getFormattedLabel(i,Jk),t.getFormattedLabel(i,Qk),bb(e,i)):null;var l=oh(o,null,!0);return b(n,r),r=bk(r,a,l),n&&x(r,n),r.legacy=!0,r},visual:function(t,n){if(null==n&&(n=s),dt(Kk,t)){var i=e.getItemVisual(n,"style");return i?i[Kk[t]]:null}if(dt($k,t))return e.getItemVisual(n,t)},barLayout:function(t){if("cartesian2d"===o.type){return function(t){var e=[],n=t.axis,i="axis0";if("category"===n.type){for(var r=n.getBandWidth(),o=0;o<t.count;o++)e.push(T({bandWidth:r,axisKey:i,stackId:r_+o},t));var a=h_(e),s=[];for(o=0;o<t.count;o++){var l=a.axis0[r_+o];l.offsetCenter=l.offset+l.width/2,s.push(l)}return s}}(T({axis:o.getBaseAxis()},t))}},currentSeriesIndices:function(){return n.getCurrentSeriesIndices()},font:function(t){return hh(t,n)}},a.api||{}),h={context:{},seriesId:t.id,seriesName:t.name,seriesIndex:t.seriesIndex,coordSys:a.coordSys,dataInsideLength:e.count(),encode:kP(t.getData())},c={},p={},d={},f={},g=0;g<nP.length;g++){var y=nP[g];d[y]=t.getModel(iP[y]),f[y]=t.getModel(rP[y])}function v(t){return t===s?l||(l=e.getItemModel(t)):e.getItemModel(t)}function m(t,n){return e.hasItemOption?t===s?c[n]||(c[n]=v(t).getModel(iP[n])):v(t).getModel(iP[n]):d[n]}function _(t,n){return e.hasItemOption?t===s?p[n]||(p[n]=v(t).getModel(rP[n])):v(t).getModel(rP[n]):f[n]}return function(t,n){return s=t,l=null,c={},p={},r&&r(T({dataIndexInside:t,dataIndex:e.getRawIndex(t),actionType:n?n.type:null},h),u)};function x(t,e){for(var n in e)dt(e,n)&&(t[n]=e[n])}function b(t,e){t&&(t.textFill&&(e.textFill=t.textFill),t.textPosition&&(e.textPosition=t.textPosition))}}function kP(t){var e={};return P(t.dimensions,(function(n,i){var r=t.getDimensionInfo(n);if(!r.isExtraCoord){var o=r.coordDim;(e[o]=e[o]||[])[r.coordDimIndex]=i}})),e}function PP(t,e,n,i,r,o,a,s){if(i)return(e=OP(t,e,n,i,r,o,!0,s))&&a.setItemGraphicEl(n,e),tl(e,i.focus,i.blurScope),e;YP(e,o)}function OP(t,e,n,i,r,o,a,s){var l=-1;e&&RP(e,i)&&(l=o.childrenRef().indexOf(e),e=null);var u=!e;e?e.clearStates():e=pP(i);var h=(jk(e).canMorph=i.morph&&WP(e))&&s&&s.hasFrom(),c=u&&!h;oP.normal.cfg=oP.normal.conOpt=oP.emphasis.cfg=oP.emphasis.conOpt=oP.blur.cfg=oP.blur.conOpt=oP.select.cfg=oP.select.conOpt=null,oP.isLegacy=!1,function(t,e,n,i,r,o){if(t.isGroup)return;NP(n,null,o),NP(n,Jk,o);var a=o.normal.conOpt,s=o.emphasis.conOpt,l=o.blur.conOpt,u=o.select.conOpt;if(null!=a||null!=s||null!=u||null!=l){var h=t.getTextContent();if(!1===a)h&&t.removeTextContent();else{a=o.normal.conOpt=a||{type:"text"},h?h.clearStates():(h=pP(a),t.setTextContent(h));var c=a&&a.style;dP(null,h,null,e,a,c,null,i,r,!0);for(var p=0;p<nP.length;p++){var d=nP[p];if(d!==Qk){var f=o[d].conOpt;IP(d,h,0,zP(a,f,d),null)}}c?h.dirty():h.markRedraw()}}}(e,n,i,r,c,oP),function(t,e,n,i,r){var o=n.clipPath;if(!1===o)t&&t.getClipPath()&&t.removeClipPath();else if(o){var a=t.getClipPath();a&&RP(a,o)&&(a=null),a||(a=pP(o),t.setClipPath(a)),dP(null,a,null,e,o,null,null,i,r,!1)}}(e,n,i,r,c);var p=dP(t,e,h,n,i,i.style,oP,r,c,!1);h&&s.addTo(e,i,n,p);for(var d=0;d<nP.length;d++){var f=nP[d];if(f!==Qk){var g=EP(i,f);IP(f,e,0,zP(i,g,f),oP)}}return function(t,e,n,i){if(!t.isGroup){var r=t,o=n.currentZ,a=n.currentZLevel;r.z=o,r.zlevel=a;var s=e.z2;null!=s&&(r.z2=s||0);for(var l=0;l<nP.length;l++)TP(r,e,nP[l])}}(e,i,r),"group"===i.type&&function(t,e,n,i,r,o){var a=i.children,s=a?a.length:0,l=i.$mergeChildren,u="byName"===l||i.diffChildrenByName,h=!1===l;if(!s&&!u&&!h)return;if(u)return c={api:t,oldChildren:e.children()||[],newChildren:a||[],dataIndex:n,seriesModel:r,group:e,morphPreparation:o},void new am(c.oldChildren,c.newChildren,BP,BP,c).add(VP).update(VP).remove(FP).execute();var c;h&&e.removeAll();for(var p=0;p<s;p++)a[p]&&OP(t,e.childAt(p),n,a[p],r,e,!1,o);for(var d=e.childCount()-1;d>=p;d--)GP(e.childAt(d),r,e)}(t,e,n,i,r,s),l>=0?o.replaceAt(e,l):o.add(e),e}function RP(t,e){var n,i=jk(t),r=e.type,o=e.shape,a=e.style;return null!=r&&r!==i.customGraphicType||"path"===r&&((n=o)&&(dt(n,"pathData")||dt(n,"d")))&&HP(o)!==i.customPathData||"image"===r&&dt(a,"image")&&a.image!==i.customImagePath}function NP(t,e,n){var i=e?EP(t,e):t,r=e?zP(t,i,Jk):t.style,o=t.type,a=i?i.textConfig:null,s=t.textContent,l=s?e?EP(s,e):s:null;if(r&&(n.isLegacy||mk(r,o,!!a,!!l))){n.isLegacy=!0;var u=_k(r,o,!e);!a&&u.textConfig&&(a=u.textConfig),!l&&u.textContent&&(l=u.textContent)}if(!e&&l){var h=l;!h.type&&(h.type="text")}var c=e?n[e]:n.normal;c.cfg=a,c.conOpt=l}function EP(t,e){return e?t?t[e]:null:t}function zP(t,e,n){var i=e&&e.style;return null==i&&n===Jk&&t&&(i=t.styleEmphasis),i}function BP(t,e){var n=t&&t.name;return null!=n?n:"e\0\0"+e}function VP(t,e){var n=this.context,i=null!=t?n.newChildren[t]:null,r=null!=e?n.oldChildren[e]:null;OP(n.api,r,n.dataIndex,i,n.seriesModel,n.group,0,n.morphPreparation)}function FP(t){var e=this.context;GP(e.oldChildren[t],e.seriesModel,e.group)}function GP(t,e,n){if(t){var i=jk(t).leaveToProps;i?Nu(t,i,e,{cb:function(){n.remove(t)}}):n.remove(t)}}function HP(t){return t&&(t.pathData||t.d)}function WP(t){return t&&t instanceof qa}function YP(t,e){t&&e.remove(t)}var XP=function(){function t(t,e){this._fromList=[],this._toList=[],this._toElOptionList=[],this._allPropsFinalList=[],this._toDataIndices=[],this._morphConfigList=[],this._seriesModel=t,this._transOpt=e}return t.prototype.hasFrom=function(){return!!this._fromList.length},t.prototype.findAndAddFrom=function(t){if(t&&(jk(t).canMorph&&this._fromList.push(t),t.isGroup))for(var e=t.childrenRef(),n=0;n<e.length;n++)this.findAndAddFrom(e[n])},t.prototype.addTo=function(t,e,n,i){t&&(this._toList.push(t),this._toElOptionList.push(e),this._toDataIndices.push(n),this._allPropsFinalList.push(i))},t.prototype.applyMorphing=function(){var t=this._type,e=this._fromList,n=this._toList.length,i=e.length;if(i&&n)if("oneToOne"===t)for(var r=0;r<n;r++)this._oneToOneForSingleTo(r,r);else if("manyToOne"===t)for(var o=Math.max(1,Math.floor(i/n)),a=(r=0,0);r<n;r++,a+=o){var s=r+1>=n?i-a:o;this._manyToOneForSingleTo(r,a>=i?null:a,s)}else if("oneToMany"===t)for(var l=Math.max(1,Math.floor(n/i)),u=0,h=0;u<n;u+=l,h++){var c=u+l>=n?n-u:l;this._oneToManyForSingleFrom(u,c,h>=i?null:h)}},t.prototype._oneToOneForSingleTo=function(t,e){var n,i=this._toList[t],r=this._toElOptionList[t],o=this._toDataIndices[t],a=this._allPropsFinalList[t],s=this._fromList[e],l=this._getOrCreateMorphConfig(o),u=l.duration;if(s&&Vk(s)){if(fP(i,a,r.style),u){var h=Fk([s],i,l,UP);this._processResultIndividuals(h,t,null)}}else{var c=u&&s&&(s!==i||(Bk(n=s)||Vk(n)))?s:null,p={};yP("shape",i,c,r,p,!1),yP("extra",i,c,r,p,!1),mP(i,c,r,p,!1),_P(i,c,r,r.style,p,!1),fP(i,a,r.style),c&&Nk(c,i,l),gP(i,o,r,this._seriesModel,p,!1)}},t.prototype._manyToOneForSingleTo=function(t,e,n){var i=this._toList[t],r=this._toElOptionList[t];fP(i,this._allPropsFinalList[t],r.style);var o=this._getOrCreateMorphConfig(this._toDataIndices[t]);if(o.duration&&null!=e){for(var a=[],s=e;s<n;s++)a.push(this._fromList[s]);var l=Fk(a,i,o,UP);this._processResultIndividuals(l,t,null)}},t.prototype._oneToManyForSingleFrom=function(t,e,n){for(var i=null==n?null:this._fromList[n],r=this._toList,o=[],a=t;a<e;a++){var s=r[a];fP(s,this._allPropsFinalList[a],this._toElOptionList[a].style),o.push(s)}var l=this._getOrCreateMorphConfig(this._toDataIndices[t]);if(l.duration&&i){var u=function(t,e,n,i){var r,o=e.length,a=n?n.dividingMethod:null,s=!1;if(Vk(t)){var l=t.__combiningSubList;l.length===o?r=l:(r=Uk(t,o,a),s=!0)}else r=Uk(t,o,a),s=!0;rt(r.length===o);for(var u=0;u<o;u++)s&&i&&i(t,r[u],!1),Nk(r[u],e[u],n);return{fromIndividuals:r,toIndividuals:e,count:o}}(i,o,l,UP);this._processResultIndividuals(u,t,e)}},t.prototype._processResultIndividuals=function(t,e,n){for(var i=null!=n,r=0;r<t.count;r++){var o=t.fromIndividuals[r],a=t.toIndividuals[r],s=e+(i?r:0),l=this._toElOptionList[s],u=this._toDataIndices[s],h={};mP(a,o,l,h,!1),_P(a,o,l,l.style,h,!1),gP(a,u,l,this._seriesModel,h,!1)}},t.prototype._getOrCreateMorphConfig=function(t){var e,n,i,r=this._morphConfigList,o=r[t];if(o)return o;var a=this._seriesModel,s=this._transOpt;if(a.isAnimationEnabled()){var l=void 0;if(a&&a.ecModel){var u=a.ecModel.getUpdatePayload();l=u&&u.animation}if(l)e=l.duration||0,n=l.easing||"cubicOut",i=l.delay||0;else{n=a.get("animationEasingUpdate");var h=a.get("animationDelayUpdate");i=G(h)?h(t):h;var c=a.get("animationDurationUpdate");e=G(c)?c(t):c}}return o={duration:e||0,delay:i,easing:n,dividingMethod:s?s.dividingMethod:null},r[t]=o,o},t.prototype.reset=function(t){this._type=t,this._fromList.length=this._toList.length=this._toElOptionList.length=this._allPropsFinalList.length=this._toDataIndices.length=0},t}();function UP(t,e,n){e.style=n?w(t.style):t.style,e.zlevel=t.zlevel,e.z=t.z,e.z2=t.z2}var ZP=Pr(),jP=w,qP=B,KP=function(){function t(){this._dragging=!1,this.animationThreshold=15}return t.prototype.render=function(t,e,n,i){var r=e.get("value"),o=e.get("status");if(this._axisModel=t,this._axisPointerModel=e,this._api=n,i||this._lastValue!==r||this._lastStatus!==o){this._lastValue=r,this._lastStatus=o;var a=this._group,s=this._handle;if(!o||"hide"===o)return a&&a.hide(),void(s&&s.hide());a&&a.show(),s&&s.show();var l={};this.makeElOption(l,r,t,e,n);var u=l.graphicKey;u!==this._lastGraphicKey&&this.clear(n),this._lastGraphicKey=u;var h=this._moveAnimation=this.determineAnimation(t,e);if(a){var c=V($P,e,h);this.updatePointerEl(a,l,c),this.updateLabelEl(a,l,c,e)}else a=this._group=new Vi,this.createPointerEl(a,l,t,e),this.createLabelEl(a,l,t,e),n.getZr().add(a);eO(a,e,!0),this._renderHandle(r)}},t.prototype.remove=function(t){this.clear(t)},t.prototype.dispose=function(t){this.clear(t)},t.prototype.determineAnimation=function(t,e){var n=e.get("animation"),i=t.axis,r="category"===i.type,o=e.get("snap");if(!o&&!r)return!1;if("auto"===n||null==n){var a=this.animationThreshold;if(r&&i.getBandWidth()>a)return!0;if(o){var s=bS(t).seriesDataCount,l=i.getExtent();return Math.abs(l[0]-l[1])/s>a}return!1}return!0===n},t.prototype.makeElOption=function(t,e,n,i,r){},t.prototype.createPointerEl=function(t,e,n,i){var r=e.pointer;if(r){var o=ZP(t).pointerEl=new Ju[r.type](jP(e.pointer));t.add(o)}},t.prototype.createLabelEl=function(t,e,n,i){if(e.label){var r=ZP(t).labelEl=new hs(jP(e.label));t.add(r),QP(r,i)}},t.prototype.updatePointerEl=function(t,e,n){var i=ZP(t).pointerEl;i&&e.pointer&&(i.setStyle(e.pointer.style),n(i,{shape:e.pointer.shape}))},t.prototype.updateLabelEl=function(t,e,n,i){var r=ZP(t).labelEl;r&&(r.setStyle(e.label.style),n(r,{x:e.label.x,y:e.label.y}),QP(r,i))},t.prototype._renderHandle=function(t){if(!this._dragging&&this.updateHandleTransform){var e,n=this._axisPointerModel,i=this._api.getZr(),r=this._handle,o=n.getModel("handle"),a=n.get("status");if(!o.get("show")||!a||"hide"===a)return r&&i.remove(r),void(this._handle=null);this._handle||(e=!0,r=this._handle=ju(o.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(t){ie(t.event)},onmousedown:qP(this._onHandleDragMove,this,0,0),drift:qP(this._onHandleDragMove,this),ondragend:qP(this._onHandleDragEnd,this)}),i.add(r)),eO(r,n,!1),r.setStyle(o.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var s=o.get("size");F(s)||(s=[s,s]),r.scaleX=s[0]/2,r.scaleY=s[1]/2,Af(this,"_doDispatchAxisPointer",o.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,e)}},t.prototype._moveHandleToValue=function(t,e){$P(this._axisPointerModel,!e&&this._moveAnimation,this._handle,tO(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},t.prototype._onHandleDragMove=function(t,e){var n=this._handle;if(n){this._dragging=!0;var i=this.updateHandleTransform(tO(n),[t,e],this._axisModel,this._axisPointerModel);this._payloadInfo=i,n.stopAnimation(),n.attr(tO(i)),ZP(n).lastProp=null,this._doDispatchAxisPointer()}},t.prototype._doDispatchAxisPointer=function(){if(this._handle){var t=this._payloadInfo,e=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:t.cursorPoint[0],y:t.cursorPoint[1],tooltipOption:t.tooltipOption,axesInfo:[{axisDim:e.axis.dim,axisIndex:e.componentIndex}]})}},t.prototype._onHandleDragEnd=function(){if(this._dragging=!1,this._handle){var t=this._axisPointerModel.get("value");this._moveHandleToValue(t),this._api.dispatchAction({type:"hideTip"})}},t.prototype.clear=function(t){this._lastValue=null,this._lastStatus=null;var e=t.getZr(),n=this._group,i=this._handle;e&&n&&(this._lastGraphicKey=null,n&&e.remove(n),i&&e.remove(i),this._group=null,this._handle=null,this._payloadInfo=null)},t.prototype.doClear=function(){},t.prototype.buildLabel=function(t,e,n){return{x:t[n=n||0],y:t[1-n],width:e[n],height:e[1-n]}},t}();function $P(t,e,n,i){JP(ZP(n).lastProp,i)||(ZP(n).lastProp=i,e?Nu(n,i,t):(n.stopAnimation(),n.attr(i)))}function JP(t,e){if(X(t)&&X(e)){var n=!0;return P(e,(function(e,i){n=n&&JP(t[i],e)})),!!n}return t===e}function QP(t,e){t[e.get(["label","show"])?"show":"hide"]()}function tO(t){return{x:t.x||0,y:t.y||0,rotation:t.rotation||0}}function eO(t,e,n){var i=e.get("z"),r=e.get("zlevel");t&&t.traverse((function(t){"group"!==t.type&&(null!=i&&(t.z=i),null!=r&&(t.zlevel=r),t.silent=n)}))}function nO(t){var e,n=t.get("type"),i=t.getModel(n+"Style");return"line"===n?(e=i.getLineStyle()).fill=null:"shadow"===n&&((e=i.getAreaStyle()).stroke=null),e}function iO(t,e,n,i,r){var o=rO(n.get("value"),e.axis,e.ecModel,n.get("seriesDataIndices"),{precision:n.get(["label","precision"]),formatter:n.get(["label","formatter"])}),a=n.getModel("label"),s=fc(a.get("padding")||0),l=a.getFont(),u=Hn(o,l),h=r.position,c=u.width+s[1]+s[3],p=u.height+s[0]+s[2],d=r.align;"right"===d&&(h[0]-=c),"center"===d&&(h[0]-=c/2);var f=r.verticalAlign;"bottom"===f&&(h[1]-=p),"middle"===f&&(h[1]-=p/2),function(t,e,n,i){var r=i.getWidth(),o=i.getHeight();t[0]=Math.min(t[0]+e,r)-e,t[1]=Math.min(t[1]+n,o)-n,t[0]=Math.max(t[0],0),t[1]=Math.max(t[1],0)}(h,c,p,i);var g=a.get("backgroundColor");g&&"auto"!==g||(g=e.get(["axisLine","lineStyle","color"])),t.label={x:h[0],y:h[1],style:rh(a,{text:o,font:l,fill:a.getTextColor(),padding:s,backgroundColor:g}),z2:10}}function rO(t,e,n,i,r){t=e.scale.parse(t);var o=e.scale.getLabel({value:t},{precision:r.precision}),a=r.formatter;if(a){var s={value:X_(e,{value:t}),axisDimension:e.dim,axisIndex:e.index,seriesData:[]};P(i,(function(t){var e=n.getSeriesByIndex(t.seriesIndex),i=t.dataIndexInside,r=e&&e.getDataParams(i);r&&s.seriesData.push(r)})),H(a)?o=a.replace("{value}",o):G(a)&&(o=a(s))}return o}function oO(t,e,n){var i=[1,0,0,1,0,0];return be(i,i,n.rotation),xe(i,i,n.position),Hu([t.dataToCoord(e),(n.labelOffset||0)+(n.labelDirection||1)*(n.labelMargin||0)],i)}function aO(t,e,n,i,r,o){var a=pS.innerTextLayout(n.rotation,0,n.labelDirection);n.labelMargin=r.get(["label","margin"]),iO(e,i,r,o,{position:oO(i.axis,t,n),align:a.textAlign,verticalAlign:a.textVerticalAlign})}function sO(t,e,n){return{x1:t[n=n||0],y1:t[1-n],x2:e[n],y2:e[1-n]}}function lO(t,e,n){return{x:t[n=n||0],y:t[1-n],width:e[n],height:e[1-n]}}function uO(t,e,n,i,r,o){return{cx:t,cy:e,r0:n,r:i,startAngle:r,endAngle:o,clockwise:!0}}var hO=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.makeElOption=function(t,e,n,i,r){var o=n.axis,a=o.grid,s=i.get("type"),l=cO(a,o).getOtherAxis(o).getGlobalExtent(),u=o.toGlobalCoord(o.dataToCoord(e,!0));if(s&&"none"!==s){var h=nO(i),c=pO[s](o,u,l);c.style=h,t.graphicKey=c.type,t.pointer=c}aO(e,t,rS(a.model,n),n,i,r)},e.prototype.getHandleTransform=function(t,e,n){var i=rS(e.axis.grid.model,e,{labelInside:!1});i.labelMargin=n.get(["handle","margin"]);var r=oO(e.axis,t,i);return{x:r[0],y:r[1],rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},e.prototype.updateHandleTransform=function(t,e,n,i){var r=n.axis,o=r.grid,a=r.getGlobalExtent(!0),s=cO(o,r).getOtherAxis(r).getGlobalExtent(),l="x"===r.dim?0:1,u=[t.x,t.y];u[l]+=e[l],u[l]=Math.min(a[1],u[l]),u[l]=Math.max(a[0],u[l]);var h=(s[1]+s[0])/2,c=[h,h];c[l]=u[l];return{x:u[0],y:u[1],rotation:t.rotation,cursorPoint:c,tooltipOption:[{verticalAlign:"middle"},{align:"center"}][l]}},e}(KP);function cO(t,e){var n={};return n[e.dim+"AxisIndex"]=e.index,t.getCartesian(n)}var pO={line:function(t,e,n){return{type:"Line",subPixelOptimize:!0,shape:sO([e,n[0]],[e,n[1]],dO(t))}},shadow:function(t,e,n){var i=Math.max(1,t.getBandWidth()),r=n[1]-n[0];return{type:"Rect",shape:lO([e-i/2,n[0]],[i,r],dO(t))}}};function dO(t){return"x"===t.dim?0:1}var fO=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="axisPointer",e.defaultOption={show:"auto",zlevel:0,z:50,type:"line",snap:!1,triggerTooltip:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#B9BEC9",width:1,type:"dashed"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}},e}(zc),gO=Pr(),yO=P;function vO(t,e,n){if(!a.node){var i=e.getZr();gO(i).records||(gO(i).records={}),function(t,e){if(gO(t).initialized)return;function n(n,i){t.on(n,(function(n){var r=function(t){var e={showTip:[],hideTip:[]},n=function(i){var r=e[i.type];r?r.push(i):(i.dispatchAction=n,t.dispatchAction(i))};return{dispatchAction:n,pendings:e}}(e);yO(gO(t).records,(function(t){t&&i(t,n,r.dispatchAction)})),function(t,e){var n,i=t.showTip.length,r=t.hideTip.length;i?n=t.showTip[i-1]:r&&(n=t.hideTip[r-1]);n&&(n.dispatchAction=null,e.dispatchAction(n))}(r.pendings,e)}))}gO(t).initialized=!0,n("click",V(_O,"click")),n("mousemove",V(_O,"mousemove")),n("globalout",mO)}(i,e),(gO(i).records[t]||(gO(i).records[t]={})).handler=n}}function mO(t,e,n){t.handler("leave",null,n)}function _O(t,e,n,i){e.handler(t,n,i)}function xO(t,e){if(!a.node){var n=e.getZr();(gO(n).records||{})[t]&&(gO(n).records[t]=null)}}var bO=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){var i=e.getComponent("tooltip"),r=t.get("triggerOn")||i&&i.get("triggerOn")||"mousemove|click";vO("axisPointer",n,(function(t,e,n){"none"!==r&&("leave"===t||r.indexOf(t)>=0)&&n({type:"updateAxisPointer",currTrigger:t,x:e&&e.offsetX,y:e&&e.offsetY})}))},e.prototype.remove=function(t,e){xO("axisPointer",e)},e.prototype.dispose=function(t,e){xO("axisPointer",e)},e.type="axisPointer",e}(ff);function wO(t,e){var n,i=[],r=t.seriesIndex;if(null==r||!(n=e.getSeriesByIndex(r)))return{point:[]};var o=n.getData(),a=kr(o,t);if(null==a||a<0||F(a))return{point:[]};var s=o.getItemGraphicEl(a),l=n.coordinateSystem;if(n.getTooltipPosition)i=n.getTooltipPosition(a)||[];else if(l&&l.dataToPoint)if(t.isStacked){var u=l.getBaseAxis(),h=l.getOtherAxis(u).dim,c=u.dim,p="x"===h||"radius"===h?1:0,d=o.mapDimension(c),f=[];f[p]=o.get(d,a),f[1-p]=o.get(o.getCalculationInfo("stackResultDimension"),a),i=l.dataToPoint(f)||[]}else i=l.dataToPoint(o.getValues(O(l.dimensions,(function(t){return o.mapDimension(t)})),a))||[];else if(s){var g=s.getBoundingRect().clone();g.applyTransform(s.transform),i=[g.x+g.width/2,g.y+g.height/2]}return{point:i,el:s}}var SO=Pr();function MO(t,e,n){var i=t.currTrigger,r=[t.x,t.y],o=t,a=t.dispatchAction||B(n.dispatchAction,n),s=e.getComponent("axisPointer").coordSysAxesInfo;if(s){DO(r)&&(r=wO({seriesIndex:o.seriesIndex,dataIndex:o.dataIndex},e).point);var l=DO(r),u=o.axesInfo,h=s.axesInfo,c="leave"===i||DO(r),p={},d={},f={list:[],map:{}},g={showPointer:V(TO,d),showTooltip:V(CO,f)};P(s.coordSysMap,(function(t,e){var n=l||t.containPoint(r);P(s.coordSysAxesInfo[e],(function(t,e){var i=t.axis,o=function(t,e){for(var n=0;n<(t||[]).length;n++){var i=t[n];if(e.axis.dim===i.axisDim&&e.axis.model.componentIndex===i.axisIndex)return i}}(u,t);if(!c&&n&&(!u||o)){var a=o&&o.value;null!=a||l||(a=i.pointToData(r)),null!=a&&IO(t,a,g,!1,p)}}))}));var y={};return P(h,(function(t,e){var n=t.linkGroup;n&&!d[e]&&P(n.axesInfo,(function(e,i){var r=d[i];if(e!==t&&r){var o=r.value;n.mapper&&(o=t.axis.scale.parse(n.mapper(o,AO(e),AO(t)))),y[t.key]=o}}))})),P(y,(function(t,e){IO(h[e],t,g,!0,p)})),function(t,e,n){var i=n.axesInfo=[];P(e,(function(e,n){var r=e.axisPointerModel.option,o=t[n];o?(!e.useHandle&&(r.status="show"),r.value=o.value,r.seriesDataIndices=(o.payloadBatch||[]).slice()):!e.useHandle&&(r.status="hide"),"show"===r.status&&i.push({axisDim:e.axis.dim,axisIndex:e.axis.model.componentIndex,value:r.value})}))}(d,h,p),function(t,e,n,i){if(DO(e)||!t.list.length)return void i({type:"hideTip"});var r=((t.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};i({type:"showTip",escapeConnect:!0,x:e[0],y:e[1],tooltipOption:n.tooltipOption,position:n.position,dataIndexInside:r.dataIndexInside,dataIndex:r.dataIndex,seriesIndex:r.seriesIndex,dataByCoordSys:t.list})}(f,r,t,a),function(t,e,n){var i=n.getZr(),r="axisPointerLastHighlights",o=SO(i)[r]||{},a=SO(i)[r]={};P(t,(function(t,e){var n=t.axisPointerModel.option;"show"===n.status&&P(n.seriesDataIndices,(function(t){var e=t.seriesIndex+" | "+t.dataIndex;a[e]=t}))}));var s=[],l=[];P(o,(function(t,e){!a[e]&&l.push(t)})),P(a,(function(t,e){!o[e]&&s.push(t)})),l.length&&n.dispatchAction({type:"downplay",escapeConnect:!0,notBlur:!0,batch:l}),s.length&&n.dispatchAction({type:"highlight",escapeConnect:!0,notBlur:!0,batch:s})}(h,0,n),p}}function IO(t,e,n,i,r){var o=t.axis;if(!o.scale.isBlank()&&o.containData(e))if(t.involveSeries){var a=function(t,e){var n=e.axis,i=n.dim,r=t,o=[],a=Number.MAX_VALUE,s=-1;return P(e.seriesModels,(function(e,l){var u,h,c=e.getData().mapDimensionsAll(i);if(e.getAxisTooltipData){var p=e.getAxisTooltipData(c,t,n);h=p.dataIndices,u=p.nestestValue}else{if(!(h=e.getData().indicesOfNearest(c[0],t,"category"===n.type?.5:null)).length)return;u=e.getData().get(c[0],h[0])}if(null!=u&&isFinite(u)){var d=t-u,f=Math.abs(d);f<=a&&((f<a||d>=0&&s<0)&&(a=f,s=d,r=u,o.length=0),P(h,(function(t){o.push({seriesIndex:e.seriesIndex,dataIndexInside:t,dataIndex:e.getData().getRawIndex(t)})})))}})),{payloadBatch:o,snapToValue:r}}(e,t),s=a.payloadBatch,l=a.snapToValue;s[0]&&null==r.seriesIndex&&I(r,s[0]),!i&&t.snap&&o.containData(l)&&null!=l&&(e=l),n.showPointer(t,e,s),n.showTooltip(t,a,l)}else n.showPointer(t,e)}function TO(t,e,n,i){t[e.key]={value:n,payloadBatch:i}}function CO(t,e,n,i){var r=n.payloadBatch,o=e.axis,a=o.model,s=e.axisPointerModel;if(e.triggerTooltip&&r.length){var l=e.coordSys.model,u=SS(l),h=t.map[u];h||(h=t.map[u]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},t.list.push(h)),h.dataByAxis.push({axisDim:o.dim,axisIndex:a.componentIndex,axisType:a.type,axisId:a.id,value:i,valueLabelOpt:{precision:s.get(["label","precision"]),formatter:s.get(["label","formatter"])},seriesDataIndices:r.slice()})}}function AO(t){var e=t.axis.model,n={},i=n.axisDim=t.axis.dim;return n.axisIndex=n[i+"AxisIndex"]=e.componentIndex,n.axisName=n[i+"AxisName"]=e.name,n.axisId=n[i+"AxisId"]=e.id,n}function DO(t){return!t||null==t[0]||isNaN(t[0])||null==t[1]||isNaN(t[1])}function LO(t){IS.registerAxisPointerClass("CartesianAxisPointer",hO),t.registerComponentModel(fO),t.registerComponentView(bO),t.registerPreprocessor((function(t){if(t){(!t.axisPointer||0===t.axisPointer.length)&&(t.axisPointer={});var e=t.axisPointer.link;e&&!F(e)&&(t.axisPointer.link=[e])}})),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,(function(t,e){t.getComponent("axisPointer").coordSysAxesInfo=mS(t,e)})),t.registerAction({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},MO)}var kO=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.makeElOption=function(t,e,n,i,r){var o=n.axis;"angle"===o.dim&&(this.animationThreshold=Math.PI/18);var a=o.polar,s=a.getOtherAxis(o).getExtent(),l=o.dataToCoord(e),u=i.get("type");if(u&&"none"!==u){var h=nO(i),c=PO[u](o,a,l,s);c.style=h,t.graphicKey=c.type,t.pointer=c}var p=function(t,e,n,i,r){var o=e.axis,a=o.dataToCoord(t),s=i.getAngleAxis().getExtent()[0];s=s/180*Math.PI;var l,u,h,c=i.getRadiusAxis().getExtent();if("radius"===o.dim){var p=[1,0,0,1,0,0];be(p,p,s),xe(p,p,[i.cx,i.cy]),l=Hu([a,-r],p);var d=e.getModel("axisLabel").get("rotate")||0,f=pS.innerTextLayout(s,d*Math.PI/180,-1);u=f.textAlign,h=f.textVerticalAlign}else{var g=c[1];l=i.coordToPoint([g+r,a]);var y=i.cx,v=i.cy;u=Math.abs(l[0]-y)/g<.3?"center":l[0]>y?"left":"right",h=Math.abs(l[1]-v)/g<.3?"middle":l[1]>v?"top":"bottom"}return{position:l,align:u,verticalAlign:h}}(e,n,0,a,i.get(["label","margin"]));iO(t,n,i,r,p)},e}(KP);var PO={line:function(t,e,n,i){return"angle"===t.dim?{type:"Line",shape:sO(e.coordToPoint([i[0],n]),e.coordToPoint([i[1],n]))}:{type:"Circle",shape:{cx:e.cx,cy:e.cy,r:n}}},shadow:function(t,e,n,i){var r=Math.max(1,t.getBandWidth()),o=Math.PI/180;return"angle"===t.dim?{type:"Sector",shape:uO(e.cx,e.cy,i[0],i[1],(-n-r/2)*o,(r/2-n)*o)}:{type:"Sector",shape:uO(e.cx,e.cy,n-r/2,n+r/2,0,2*Math.PI)}}},OO=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.findAxisModel=function(t){var e;return this.ecModel.eachComponent(t,(function(t){t.getCoordSysModel()===this&&(e=t)}),this),e},e.type="polar",e.dependencies=["radiusAxis","angleAxis"],e.defaultOption={zlevel:0,z:0,center:["50%","50%"],radius:"80%"},e}(zc),RO=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.getCoordSysModel=function(){return this.getReferringComponents("polar",Nr).models[0]},e.type="polarAxis",e}(zc);L(RO,K_);var NO=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="angleAxis",e}(RO),EO=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="radiusAxis",e}(RO),zO=function(t){function e(e,n){return t.call(this,"radius",e,n)||this}return n(e,t),e.prototype.pointToData=function(t,e){return this.polar.pointToData(t,e)["radius"===this.dim?0:1]},e}(_x);zO.prototype.dataToRadius=_x.prototype.dataToCoord,zO.prototype.radiusToData=_x.prototype.coordToData;var BO=Pr(),VO=function(t){function e(e,n){return t.call(this,"angle",e,n||[0,360])||this}return n(e,t),e.prototype.pointToData=function(t,e){return this.polar.pointToData(t,e)["radius"===this.dim?0:1]},e.prototype.calculateCategoryInterval=function(){var t=this,e=t.getLabelModel(),n=t.scale,i=n.getExtent(),r=n.count();if(i[1]-i[0]<1)return 0;var o=i[0],a=t.dataToCoord(o+1)-t.dataToCoord(o),s=Math.abs(a),l=Hn(null==o?"":o+"",e.getFont(),"center","top"),u=Math.max(l.height,7)/s;isNaN(u)&&(u=1/0);var h=Math.max(0,Math.floor(u)),c=BO(t.model),p=c.lastAutoInterval,d=c.lastTickCount;return null!=p&&null!=d&&Math.abs(p-h)<=1&&Math.abs(d-r)<=1&&p>h?h=p:(c.lastTickCount=r,c.lastAutoInterval=h),h},e}(_x);VO.prototype.dataToAngle=_x.prototype.dataToCoord,VO.prototype.angleToData=_x.prototype.coordToData;var FO=function(){function t(t){this.dimensions=["radius","angle"],this.type="polar",this.cx=0,this.cy=0,this._radiusAxis=new zO,this._angleAxis=new VO,this.axisPointerEnabled=!0,this.name=t||"",this._radiusAxis.polar=this._angleAxis.polar=this}return t.prototype.containPoint=function(t){var e=this.pointToCoord(t);return this._radiusAxis.contain(e[0])&&this._angleAxis.contain(e[1])},t.prototype.containData=function(t){return this._radiusAxis.containData(t[0])&&this._angleAxis.containData(t[1])},t.prototype.getAxis=function(t){return this["_"+t+"Axis"]},t.prototype.getAxes=function(){return[this._radiusAxis,this._angleAxis]},t.prototype.getAxesByScale=function(t){var e=[],n=this._angleAxis,i=this._radiusAxis;return n.scale.type===t&&e.push(n),i.scale.type===t&&e.push(i),e},t.prototype.getAngleAxis=function(){return this._angleAxis},t.prototype.getRadiusAxis=function(){return this._radiusAxis},t.prototype.getOtherAxis=function(t){var e=this._angleAxis;return t===e?this._radiusAxis:e},t.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAngleAxis()},t.prototype.getTooltipAxes=function(t){var e=null!=t&&"auto"!==t?this.getAxis(t):this.getBaseAxis();return{baseAxes:[e],otherAxes:[this.getOtherAxis(e)]}},t.prototype.dataToPoint=function(t,e){return this.coordToPoint([this._radiusAxis.dataToRadius(t[0],e),this._angleAxis.dataToAngle(t[1],e)])},t.prototype.pointToData=function(t,e){var n=this.pointToCoord(t);return[this._radiusAxis.radiusToData(n[0],e),this._angleAxis.angleToData(n[1],e)]},t.prototype.pointToCoord=function(t){var e=t[0]-this.cx,n=t[1]-this.cy,i=this.getAngleAxis(),r=i.getExtent(),o=Math.min(r[0],r[1]),a=Math.max(r[0],r[1]);i.inverse?o=a-360:a=o+360;var s=Math.sqrt(e*e+n*n);e/=s,n/=s;for(var l=Math.atan2(-n,e)/Math.PI*180,u=l<o?1:-1;l<o||l>a;)l+=360*u;return[s,l]},t.prototype.coordToPoint=function(t){var e=t[0],n=t[1]/180*Math.PI;return[Math.cos(n)*e+this.cx,-Math.sin(n)*e+this.cy]},t.prototype.getArea=function(){var t=this.getAngleAxis(),e=this.getRadiusAxis().getExtent().slice();e[0]>e[1]&&e.reverse();var n=t.getExtent(),i=Math.PI/180;return{cx:this.cx,cy:this.cy,r0:e[0],r:e[1],startAngle:-n[0]*i,endAngle:-n[1]*i,clockwise:t.inverse,contain:function(t,e){var n=t-this.cx,i=e-this.cy,r=n*n+i*i,o=this.r,a=this.r0;return r<=o*o&&r>=a*a}}},t.prototype.convertToPixel=function(t,e,n){return GO(e)===this?this.dataToPoint(n):null},t.prototype.convertFromPixel=function(t,e,n){return GO(e)===this?this.pointToData(n):null},t}();function GO(t){var e=t.seriesModel,n=t.polarModel;return n&&n.coordinateSystem||e&&e.coordinateSystem}function HO(t,e){var n=this,i=n.getAngleAxis(),r=n.getRadiusAxis();if(i.scale.setExtent(1/0,-1/0),r.scale.setExtent(1/0,-1/0),t.eachSeries((function(t){if(t.coordinateSystem===n){var e=t.getData();P(q_(e,"radius"),(function(t){r.scale.unionExtentFromData(e,t)})),P(q_(e,"angle"),(function(t){i.scale.unionExtentFromData(e,t)}))}})),H_(i.scale,i.model),H_(r.scale,r.model),"category"===i.type&&!i.onBand){var o=i.getExtent(),a=360/i.scale.count();i.inverse?o[1]+=a:o[1]-=a,i.setExtent(o[0],o[1])}}function WO(t,e){if(t.type=e.get("type"),t.scale=W_(e),t.onBand=e.get("boundaryGap")&&"category"===t.type,t.inverse=e.get("inverse"),function(t){return"angleAxis"===t.mainType}(e)){t.inverse=t.inverse!==e.get("clockwise");var n=e.get("startAngle");t.setExtent(n,n+(t.inverse?-360:360))}e.axis=t,t.model=e}var YO={dimensions:FO.prototype.dimensions,create:function(t,e){var n=[];return t.eachComponent("polar",(function(t,i){var r=new FO(i+"");r.update=HO;var o=r.getRadiusAxis(),a=r.getAngleAxis(),s=t.findAxisModel("radiusAxis"),l=t.findAxisModel("angleAxis");WO(o,s),WO(a,l),function(t,e,n){var i=e.get("center"),r=n.getWidth(),o=n.getHeight();t.cx=qi(i[0],r),t.cy=qi(i[1],o);var a=t.getRadiusAxis(),s=Math.min(r,o)/2,l=e.get("radius");null==l?l=[0,"100%"]:F(l)||(l=[0,l]);var u=[qi(l[0],s),qi(l[1],s)];a.inverse?a.setExtent(u[1],u[0]):a.setExtent(u[0],u[1])}(r,t,e),n.push(r),t.coordinateSystem=r,r.model=t})),t.eachSeries((function(t){if("polar"===t.get("coordinateSystem")){var e=t.getReferringComponents("polar",Nr).models[0];0,t.coordinateSystem=e.coordinateSystem}})),n}},XO=["axisLine","axisLabel","axisTick","minorTick","splitLine","minorSplitLine","splitArea"];function UO(t,e,n){e[1]>e[0]&&(e=e.slice().reverse());var i=t.coordToPoint([e[0],n]),r=t.coordToPoint([e[1],n]);return{x1:i[0],y1:i[1],x2:r[0],y2:r[1]}}function ZO(t){return t.getRadiusAxis().inverse?0:1}function jO(t){var e=t[0],n=t[t.length-1];e&&n&&Math.abs(Math.abs(e.coord-n.coord)-360)<1e-4&&t.pop()}var qO=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.axisPointerClass="PolarAxisPointer",n}return n(e,t),e.prototype.render=function(t,e){if(this.group.removeAll(),t.get("show")){var n=t.axis,i=n.polar,r=i.getRadiusAxis().getExtent(),o=n.getTicksCoords(),a=n.getMinorTicksCoords(),s=O(n.getViewLabels(),(function(t){t=w(t);var e=n.scale,i="ordinal"===e.type?e.getRawOrdinalNumber(t.tickValue):t.tickValue;return t.coord=n.dataToCoord(i),t}));jO(s),jO(o),P(XO,(function(e){!t.get([e,"show"])||n.scale.isBlank()&&"axisLine"!==e||KO[e](this.group,t,i,o,a,r,s)}),this)}},e.type="angleAxis",e}(IS),KO={axisLine:function(t,e,n,i,r,o){var a,s=e.getModel(["axisLine","lineStyle"]),l=ZO(n),u=l?0:1;(a=0===o[u]?new Al({shape:{cx:n.cx,cy:n.cy,r:o[l]},style:s.getLineStyle(),z2:1,silent:!0}):new Zl({shape:{cx:n.cx,cy:n.cy,r:o[l],r0:o[u]},style:s.getLineStyle(),z2:1,silent:!0})).style.fill=null,t.add(a)},axisTick:function(t,e,n,i,r,o){var a=e.getModel("axisTick"),s=(a.get("inside")?-1:1)*a.get("length"),l=o[ZO(n)],u=O(i,(function(t){return new nu({shape:UO(n,[l,l+s],t.coord)})}));t.add(ku(u,{style:T(a.getModel("lineStyle").getLineStyle(),{stroke:e.get(["axisLine","lineStyle","color"])})}))},minorTick:function(t,e,n,i,r,o){if(r.length){for(var a=e.getModel("axisTick"),s=e.getModel("minorTick"),l=(a.get("inside")?-1:1)*s.get("length"),u=o[ZO(n)],h=[],c=0;c<r.length;c++)for(var p=0;p<r[c].length;p++)h.push(new nu({shape:UO(n,[u,u+l],r[c][p].coord)}));t.add(ku(h,{style:T(s.getModel("lineStyle").getLineStyle(),T(a.getLineStyle(),{stroke:e.get(["axisLine","lineStyle","color"])}))}))}},axisLabel:function(t,e,n,i,r,o,a){var s=e.getCategories(!0),l=e.getModel("axisLabel"),u=l.get("margin"),h=e.get("triggerEvent");P(a,(function(i,r){var a=l,c=i.tickValue,p=o[ZO(n)],d=n.coordToPoint([p+u,i.coord]),f=n.cx,g=n.cy,y=Math.abs(d[0]-f)/p<.3?"center":d[0]>f?"left":"right",v=Math.abs(d[1]-g)/p<.3?"middle":d[1]>g?"top":"bottom";if(s&&s[c]){var m=s[c];X(m)&&m.textStyle&&(a=new Ih(m.textStyle,l,l.ecModel))}var _=new hs({silent:pS.isLabelSilent(e),style:rh(a,{x:d[0],y:d[1],fill:a.getTextColor()||e.get(["axisLine","lineStyle","color"]),text:i.formattedLabel,align:y,verticalAlign:v})});if(t.add(_),h){var x=pS.makeAxisEventDataBase(e);x.targetType="axisLabel",x.value=i.rawLabel,ms(_).eventData=x}}),this)},splitLine:function(t,e,n,i,r,o){var a=e.getModel("splitLine").getModel("lineStyle"),s=a.get("color"),l=0;s=s instanceof Array?s:[s];for(var u=[],h=0;h<i.length;h++){var c=l++%s.length;u[c]=u[c]||[],u[c].push(new nu({shape:UO(n,o,i[h].coord)}))}for(h=0;h<u.length;h++)t.add(ku(u[h],{style:T({stroke:s[h%s.length]},a.getLineStyle()),silent:!0,z:e.get("z")}))},minorSplitLine:function(t,e,n,i,r,o){if(r.length){for(var a=e.getModel("minorSplitLine").getModel("lineStyle"),s=[],l=0;l<r.length;l++)for(var u=0;u<r[l].length;u++)s.push(new nu({shape:UO(n,o,r[l][u].coord)}));t.add(ku(s,{style:a.getLineStyle(),silent:!0,z:e.get("z")}))}},splitArea:function(t,e,n,i,r,o){if(i.length){var a=e.getModel("splitArea").getModel("areaStyle"),s=a.get("color"),l=0;s=s instanceof Array?s:[s];for(var u=[],h=Math.PI/180,c=-i[0].coord*h,p=Math.min(o[0],o[1]),d=Math.max(o[0],o[1]),f=e.get("clockwise"),g=1,y=i.length;g<=y;g++){var v=g===y?i[0].coord:i[g].coord,m=l++%s.length;u[m]=u[m]||[],u[m].push(new Xl({shape:{cx:n.cx,cy:n.cy,r0:p,r:d,startAngle:c,endAngle:-v*h,clockwise:f},silent:!0})),c=-v*h}for(g=0;g<u.length;g++)t.add(ku(u[g],{style:T({fill:s[g%s.length]},a.getAreaStyle()),silent:!0}))}}},$O=["axisLine","axisTickLabel","axisName"],JO=["splitLine","splitArea","minorSplitLine"],QO=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.axisPointerClass="PolarAxisPointer",n}return n(e,t),e.prototype.render=function(t,e){if(this.group.removeAll(),t.get("show")){var n=this._axisGroup,i=this._axisGroup=new Vi;this.group.add(i);var r=t.axis,o=r.polar,a=o.getAngleAxis(),s=r.getTicksCoords(),l=r.getMinorTicksCoords(),u=a.getExtent()[0],h=r.getExtent(),c=function(t,e,n){return{position:[t.cx,t.cy],rotation:n/180*Math.PI,labelDirection:-1,tickDirection:-1,nameDirection:1,labelRotate:e.getModel("axisLabel").get("rotate"),z2:1}}(o,t,u),p=new pS(t,c);P($O,p.add,p),i.add(p.getGroup()),Xu(n,i,t),P(JO,(function(e){t.get([e,"show"])&&!r.scale.isBlank()&&tR[e](this.group,t,o,u,h,s,l)}),this)}},e.type="radiusAxis",e}(IS),tR={splitLine:function(t,e,n,i,r,o){var a=e.getModel("splitLine").getModel("lineStyle"),s=a.get("color"),l=0;s=s instanceof Array?s:[s];for(var u=[],h=0;h<o.length;h++){var c=l++%s.length;u[c]=u[c]||[],u[c].push(new Al({shape:{cx:n.cx,cy:n.cy,r:o[h].coord}}))}for(h=0;h<u.length;h++)t.add(ku(u[h],{style:T({stroke:s[h%s.length],fill:null},a.getLineStyle()),silent:!0}))},minorSplitLine:function(t,e,n,i,r,o,a){if(a.length){for(var s=e.getModel("minorSplitLine").getModel("lineStyle"),l=[],u=0;u<a.length;u++)for(var h=0;h<a[u].length;h++)l.push(new Al({shape:{cx:n.cx,cy:n.cy,r:a[u][h].coord}}));t.add(ku(l,{style:T({fill:null},s.getLineStyle()),silent:!0}))}},splitArea:function(t,e,n,i,r,o){if(o.length){var a=e.getModel("splitArea").getModel("areaStyle"),s=a.get("color"),l=0;s=s instanceof Array?s:[s];for(var u=[],h=o[0].coord,c=1;c<o.length;c++){var p=l++%s.length;u[p]=u[p]||[],u[p].push(new Xl({shape:{cx:n.cx,cy:n.cy,r0:h,r:o[c].coord,startAngle:0,endAngle:2*Math.PI},silent:!0})),h=o[c].coord}for(c=0;c<u.length;c++)t.add(ku(u[c],{style:T({fill:s[c%s.length]},a.getAreaStyle()),silent:!0}))}}};function eR(t){return t.get("stack")||"__ec_stack_"+t.seriesIndex}function nR(t,e){return e.dim+t.model.componentIndex}function iR(t,e,n){var i={},r=function(t){var e={};P(t,(function(t,n){var i=t.getData(),r=t.coordinateSystem,o=r.getBaseAxis(),a=nR(r,o),s=o.getExtent(),l="category"===o.type?o.getBandWidth():Math.abs(s[1]-s[0])/i.count(),u=e[a]||{bandWidth:l,remainedWidth:l,autoWidthCount:0,categoryGap:"20%",gap:"30%",stacks:{}},h=u.stacks;e[a]=u;var c=eR(t);h[c]||u.autoWidthCount++,h[c]=h[c]||{width:0,maxWidth:0};var p=qi(t.get("barWidth"),l),d=qi(t.get("barMaxWidth"),l),f=t.get("barGap"),g=t.get("barCategoryGap");p&&!h[c].width&&(p=Math.min(u.remainedWidth,p),h[c].width=p,u.remainedWidth-=p),d&&(h[c].maxWidth=d),null!=f&&(u.gap=f),null!=g&&(u.categoryGap=g)}));var n={};return P(e,(function(t,e){n[e]={};var i=t.stacks,r=t.bandWidth,o=qi(t.categoryGap,r),a=qi(t.gap,1),s=t.remainedWidth,l=t.autoWidthCount,u=(s-o)/(l+(l-1)*a);u=Math.max(u,0),P(i,(function(t,e){var n=t.maxWidth;n&&n<u&&(n=Math.min(n,s),t.width&&(n=Math.min(n,t.width)),s-=n,t.width=n,l--)})),u=(s-o)/(l+(l-1)*a),u=Math.max(u,0);var h,c=0;P(i,(function(t,e){t.width||(t.width=u),h=t,c+=t.width*(1+a)})),h&&(c-=h.width*a);var p=-c/2;P(i,(function(t,i){n[e][i]=n[e][i]||{offset:p,width:t.width},p+=t.width*(1+a)}))})),n}(N(e.getSeriesByType(t),(function(t){return!e.isSeriesFiltered(t)&&t.coordinateSystem&&"polar"===t.coordinateSystem.type})));e.eachSeriesByType(t,(function(t){if("polar"===t.coordinateSystem.type){var e=t.getData(),n=t.coordinateSystem,o=n.getBaseAxis(),a=nR(n,o),s=eR(t),l=r[a][s],u=l.offset,h=l.width,c=n.getOtherAxis(o),p=t.coordinateSystem.cx,d=t.coordinateSystem.cy,f=t.get("barMinHeight")||0,g=t.get("barMinAngle")||0;i[s]=i[s]||[];for(var y=e.mapDimension(c.dim),v=e.mapDimension(o.dim),m=Hm(e,y),_="radius"!==o.dim||!t.get("roundCap",!0),x=c.dataToCoord(0),b=0,w=e.count();b<w;b++){var S=e.get(y,b),M=e.get(v,b),I=S>=0?"p":"n",T=x;m&&(i[s][M]||(i[s][M]={p:x,n:x}),T=i[s][M][I]);var C=void 0,A=void 0,D=void 0,L=void 0;if("radius"===c.dim){var k=c.dataToCoord(S)-x,P=o.dataToCoord(M);Math.abs(k)<f&&(k=(k<0?-1:1)*f),C=T,A=T+k,L=(D=P-u)-h,m&&(i[s][M][I]=A)}else{var O=c.dataToCoord(S,_)-x,R=o.dataToCoord(M);Math.abs(O)<g&&(O=(O<0?-1:1)*g),A=(C=R+u)+h,D=T,L=T+O,m&&(i[s][M][I]=L)}e.setItemLayout(b,{cx:p,cy:d,r0:C,r:A,startAngle:-D*Math.PI/180,endAngle:-L*Math.PI/180})}}}))}var rR={startAngle:90,clockwise:!0,splitNumber:12,axisLabel:{rotate:0}},oR={splitNumber:5},aR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="polar",e}(ff);var sR=function(t){function e(e,n,i,r){var o=t.call(this,e)||this;o.dimensions=["lng","lat"],o.type="geo",o.map=n;var a=NM(n,i);return o._nameCoordMap=a.nameCoordMap,o._regionsMap=a.regionsMap,o._invertLongitute=null==r||r,o.regions=a.regions,o._rect=a.boundingRect,o}return n(e,t),e.prototype.containCoord=function(t){for(var e=this.regions,n=0;n<e.length;n++)if(e[n].contain(t))return!0;return!1},e.prototype.transformTo=function(t,e,n,i){var r=this.getBoundingRect(),o=this._invertLongitute;r=r.clone(),o&&(r.y=-r.y-r.height);var a=this._rawTransformable;a.transform=r.calculateTransform(new En(t,e,n,i)),a.decomposeTransform(),o&&(a.scaleY=-a.scaleY),a.updateTransform(),this._updateTransform()},e.prototype.getRegion=function(t){return this._regionsMap.get(t)},e.prototype.getRegionByCoord=function(t){for(var e=this.regions,n=0;n<e.length;n++)if(e[n].contain(t))return e[n]},e.prototype.addGeoCoord=function(t,e){this._nameCoordMap.set(t,e)},e.prototype.getGeoCoord=function(t){return this._nameCoordMap.get(t)},e.prototype.getBoundingRect=function(){return this._rect},e.prototype.dataToPoint=function(t,e,n){if("string"==typeof t&&(t=this.getGeoCoord(t)),t)return eI.prototype.dataToPoint.call(this,t,e,n)},e.prototype.convertToPixel=function(t,e,n){var i=lR(e);return i===this?i.dataToPoint(n):null},e.prototype.convertFromPixel=function(t,e,n){var i=lR(e);return i===this?i.pointToData(n):null},e}(eI);function lR(t){var e=t.geoModel,n=t.seriesModel;return e?e.coordinateSystem:n?n.coordinateSystem||(n.getReferringComponents("geo",Nr).models[0]||{}).coordinateSystem:null}function uR(t,e){var n=t.get("boundingCoords");if(null!=n){var i=n[0],r=n[1];isNaN(i[0])||isNaN(i[1])||isNaN(r[0])||isNaN(r[1])||this.setBoundingRect(i[0],i[1],r[0]-i[0],r[1]-i[1])}var o,a,s,l=this.getBoundingRect(),u=t.get("layoutCenter"),h=t.get("layoutSize"),c=e.getWidth(),p=e.getHeight(),d=l.width/l.height*this.aspectScale,f=!1;if(u&&h&&(o=[qi(u[0],c),qi(u[1],p)],a=qi(h,Math.min(c,p)),isNaN(o[0])||isNaN(o[1])||isNaN(a)||(f=!0)),f)s={},d>1?(s.width=a,s.height=a/d):(s.height=a,s.width=a*d),s.y=o[1]-s.height/2,s.x=o[0]-s.width/2;else{var g=t.getBoxLayoutParams();g.aspect=d,s=Lc(g,{width:c,height:p})}this.setViewRect(s.x,s.y,s.width,s.height),this.setCenter(t.get("center")),this.setZoom(t.get("zoom"))}L(sR,eI);var hR=new(function(){function t(){this.dimensions=sR.prototype.dimensions}return t.prototype.create=function(t,e){var n=[];t.eachComponent("geo",(function(t,i){var r=t.get("map"),o=t.get("aspectScale"),a=!0,s=hg(r);s&&s[0]&&"svg"===s[0].type?(null==o&&(o=1),a=!1):null==o&&(o=.75);var l=new sR(r+i,r,t.get("nameMap"),a);l.aspectScale=o,l.zoomLimit=t.get("scaleLimit"),n.push(l),t.coordinateSystem=l,l.model=t,l.resize=uR,l.resize(t,e)})),t.eachSeries((function(t){if("geo"===t.get("coordinateSystem")){var e=t.get("geoIndex")||0;t.coordinateSystem=n[e]}}));var i={};return t.eachSeriesByType("map",(function(t){if(!t.getHostGeoModel()){var e=t.getMapType();i[e]=i[e]||[],i[e].push(t)}})),P(i,(function(t,i){var r=O(t,(function(t){return t.get("nameMap")})),o=new sR(i,i,M(r));o.zoomLimit=Q.apply(null,O(t,(function(t){return t.get("scaleLimit")}))),n.push(o),o.resize=uR,o.aspectScale=t[0].get("aspectScale"),o.resize(t[0],e),P(t,(function(t){t.coordinateSystem=o,function(t,e){P(e.get("geoCoord"),(function(e,n){t.addGeoCoord(n,e)}))}(o,t)}))})),n},t.prototype.getFilledRegions=function(t,e,n){for(var i=(t||[]).slice(),r=ht(),o=0;o<i.length;o++)r.set(i[o].name,i[o]);return P(NM(e,n).regions,(function(t){var e=t.name;!r.get(e)&&i.push({name:e})})),i},t}()),cR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(e,n,i){t.prototype.init.call(this,e,n,i),wr(e,"label",["show"])},e.prototype.optionUpdated=function(){var t=this.option,e=this;t.regions=hR.getFilledRegions(t.regions,t.map,t.nameMap);var n={};this._optionModelMap=R(t.regions||[],(function(t,i){var r=i.name;return r&&(t.set(r,new Ih(i,e)),i.selected&&(n[r]=!0)),t}),ht()),t.selectedMap||(t.selectedMap=n)},e.prototype.getRegionModel=function(t){return this._optionModelMap.get(t)||new Ih(null,this,this.ecModel)},e.prototype.getFormattedLabel=function(t,e){var n=this.getRegionModel(t),i="normal"===e?n.get(["label","formatter"]):n.get(["emphasis","label","formatter"]),r={name:t};return"function"==typeof i?(r.status=e,i(r)):"string"==typeof i?i.replace("{a}",null!=t?t:""):void 0},e.prototype.setZoom=function(t){this.option.zoom=t},e.prototype.setCenter=function(t){this.option.center=t},e.prototype.select=function(t){var e=this.option,n=e.selectedMode;n&&("multiple"!==n&&(e.selectedMap=null),(e.selectedMap||(e.selectedMap={}))[t]=!0)},e.prototype.unSelect=function(t){var e=this.option.selectedMap;e&&(e[t]=!1)},e.prototype.toggleSelected=function(t){this[this.isSelected(t)?"unSelect":"select"](t)},e.prototype.isSelected=function(t){var e=this.option.selectedMap;return!(!e||!e[t])},e.prototype._initSelectedMapFromData=function(){},e.type="geo",e.layoutMode="box",e.defaultOption={zlevel:0,z:0,show:!0,left:"center",top:"center",aspectScale:null,silent:!1,map:"",boundingCoords:null,center:null,zoom:1,scaleLimit:null,label:{show:!1,color:"#000"},itemStyle:{borderWidth:.5,borderColor:"#444",color:"#eee"},emphasis:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{color:"rgba(255,215,0,0.8)"}},select:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{color:"rgba(255,215,0,0.8)"}},regions:[]},e}(zc),pR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(t,e){var n=new FM(e);this._mapDraw=n,this.group.add(n.group),this._api=e},e.prototype.render=function(t,e,n,i){var r=this._mapDraw;t.get("show")?r.draw(t,e,n,this,i):this._mapDraw.group.removeAll(),r.group.on("click",this._handleRegionClick,this),r.group.silent=t.get("silent"),this._model=t,this.updateSelectStatus(t,e,n)},e.prototype._handleRegionClick=function(t){for(var e,n=t.target;n&&null==(e=ms(n).eventData);)n=n.__hostTarget||n.parent;e&&this._api.dispatchAction({type:"geoToggleSelect",geoId:this._model.id,name:e.name})},e.prototype.updateSelectStatus=function(t,e,n){var i=this;this._mapDraw.group.traverse((function(t){var e=ms(t).eventData;if(e)return i._model.isSelected(e.name)?n.enterSelect(t):n.leaveSelect(t),!0}))},e.prototype.dispose=function(){this._mapDraw&&this._mapDraw.remove()},e.type="geo",e}(ff);function dR(t,e){e=e||{};var n=t.coordinateSystem,i=t.axis,r={},o=i.position,a=i.orient,s=n.getRect(),l=[s.x,s.x+s.width,s.y,s.y+s.height],u={horizontal:{top:l[2],bottom:l[3]},vertical:{left:l[0],right:l[1]}};r.position=["vertical"===a?u.vertical[o]:l[0],"horizontal"===a?u.horizontal[o]:l[3]];r.rotation=Math.PI/2*{horizontal:0,vertical:1}[a];r.labelDirection=r.tickDirection=r.nameDirection={top:-1,bottom:1,right:1,left:-1}[o],t.get(["axisTick","inside"])&&(r.tickDirection=-r.tickDirection),Q(e.labelInside,t.get(["axisLabel","inside"]))&&(r.labelDirection=-r.labelDirection);var h=e.rotate;return null==h&&(h=t.get(["axisLabel","rotate"])),r.labelRotation="top"===o?-h:h,r.z2=1,r}var fR=["axisLine","axisTickLabel","axisName"],gR=["splitArea","splitLine"],yR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.axisPointerClass="SingleAxisPointer",n}return n(e,t),e.prototype.render=function(e,n,i,r){var o=this.group;o.removeAll();var a=this._axisGroup;this._axisGroup=new Vi;var s=dR(e),l=new pS(e,s);P(fR,l.add,l),o.add(this._axisGroup),o.add(l.getGroup()),P(gR,(function(t){e.get([t,"show"])&&vR[t](this,this.group,this._axisGroup,e)}),this),Xu(a,this._axisGroup,e),t.prototype.render.call(this,e,n,i,r)},e.prototype.remove=function(){AS(this)},e.type="singleAxis",e}(IS),vR={splitLine:function(t,e,n,i){var r=i.axis;if(!r.scale.isBlank()){var o=i.getModel("splitLine"),a=o.getModel("lineStyle"),s=a.get("color");s=s instanceof Array?s:[s];for(var l=i.coordinateSystem.getRect(),u=r.isHorizontal(),h=[],c=0,p=r.getTicksCoords({tickModel:o}),d=[],f=[],g=0;g<p.length;++g){var y=r.toGlobalCoord(p[g].coord);u?(d[0]=y,d[1]=l.y,f[0]=y,f[1]=l.y+l.height):(d[0]=l.x,d[1]=y,f[0]=l.x+l.width,f[1]=y);var v=c++%s.length;h[v]=h[v]||[],h[v].push(new nu({subPixelOptimize:!0,shape:{x1:d[0],y1:d[1],x2:f[0],y2:f[1]},silent:!0}))}var m=a.getLineStyle(["color"]);for(g=0;g<h.length;++g)e.add(ku(h[g],{style:T({stroke:s[g%s.length]},m),silent:!0}))}},splitArea:function(t,e,n,i){CS(t,n,i,i)}},mR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.getCoordSysModel=function(){return this},e.type="singleAxis",e.layoutMode="box",e.defaultOption={left:"5%",top:"5%",right:"5%",bottom:"5%",type:"value",position:"bottom",orient:"horizontal",axisLine:{show:!0,lineStyle:{width:1,type:"solid"}},tooltip:{show:!0},axisTick:{show:!0,length:6,lineStyle:{width:1}},axisLabel:{show:!0,interval:"auto"},splitLine:{show:!0,lineStyle:{type:"dashed",opacity:.2}}},e}(zc);L(mR,K_.prototype);var _R=function(t){function e(e,n,i,r,o){var a=t.call(this,e,n,i)||this;return a.type=r||"value",a.position=o||"bottom",a}return n(e,t),e.prototype.isHorizontal=function(){var t=this.position;return"top"===t||"bottom"===t},e.prototype.pointToData=function(t,e){return this.coordinateSystem.pointToData(t)[0]},e}(_x),xR=function(){function t(t,e,n){this.type="single",this.dimension="single",this.dimensions=["single"],this.axisPointerEnabled=!0,this.model=t,this._init(t,e,n)}return t.prototype._init=function(t,e,n){var i=this.dimension,r=new _R(i,W_(t),[0,0],t.get("type"),t.get("position")),o="category"===r.type;r.onBand=o&&t.get("boundaryGap"),r.inverse=t.get("inverse"),r.orient=t.get("orient"),t.axis=r,r.model=t,r.coordinateSystem=this,this._axis=r},t.prototype.update=function(t,e){t.eachSeries((function(t){if(t.coordinateSystem===this){var e=t.getData();P(e.mapDimensionsAll(this.dimension),(function(t){this._axis.scale.unionExtentFromData(e,t)}),this),H_(this._axis.scale,this._axis.model)}}),this)},t.prototype.resize=function(t,e){this._rect=Lc({left:t.get("left"),top:t.get("top"),right:t.get("right"),bottom:t.get("bottom"),width:t.get("width"),height:t.get("height")},{width:e.getWidth(),height:e.getHeight()}),this._adjustAxis()},t.prototype.getRect=function(){return this._rect},t.prototype._adjustAxis=function(){var t=this._rect,e=this._axis,n=e.isHorizontal(),i=n?[0,t.width]:[0,t.height],r=e.reverse?1:0;e.setExtent(i[r],i[1-r]),this._updateAxisTransform(e,n?t.x:t.y)},t.prototype._updateAxisTransform=function(t,e){var n=t.getExtent(),i=n[0]+n[1],r=t.isHorizontal();t.toGlobalCoord=r?function(t){return t+e}:function(t){return i-t+e},t.toLocalCoord=r?function(t){return t-e}:function(t){return i-t+e}},t.prototype.getAxis=function(){return this._axis},t.prototype.getBaseAxis=function(){return this._axis},t.prototype.getAxes=function(){return[this._axis]},t.prototype.getTooltipAxes=function(){return{baseAxes:[this.getAxis()],otherAxes:[]}},t.prototype.containPoint=function(t){var e=this.getRect(),n=this.getAxis();return"horizontal"===n.orient?n.contain(n.toLocalCoord(t[0]))&&t[1]>=e.y&&t[1]<=e.y+e.height:n.contain(n.toLocalCoord(t[1]))&&t[0]>=e.y&&t[0]<=e.y+e.height},t.prototype.pointToData=function(t){var e=this.getAxis();return[e.coordToData(e.toLocalCoord(t["horizontal"===e.orient?0:1]))]},t.prototype.dataToPoint=function(t){var e=this.getAxis(),n=this.getRect(),i=[],r="horizontal"===e.orient?0:1;return t instanceof Array&&(t=t[0]),i[r]=e.toGlobalCoord(e.dataToCoord(+t)),i[1-r]=0===r?n.y+n.height/2:n.x+n.width/2,i},t.prototype.convertToPixel=function(t,e,n){return bR(e)===this?this.dataToPoint(n):null},t.prototype.convertFromPixel=function(t,e,n){return bR(e)===this?this.pointToData(n):null},t}();function bR(t){var e=t.seriesModel,n=t.singleAxisModel;return n&&n.coordinateSystem||e&&e.coordinateSystem}var wR={create:function(t,e){var n=[];return t.eachComponent("singleAxis",(function(i,r){var o=new xR(i,t,e);o.name="single_"+r,o.resize(i,e),i.coordinateSystem=o,n.push(o)})),t.eachSeries((function(t){if("singleAxis"===t.get("coordinateSystem")){var e=t.getReferringComponents("singleAxis",Nr).models[0];t.coordinateSystem=e&&e.coordinateSystem}})),n},dimensions:xR.prototype.dimensions},SR=["x","y"],MR=["width","height"],IR=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.makeElOption=function(t,e,n,i,r){var o=n.axis,a=o.coordinateSystem,s=AR(a,1-CR(o)),l=a.dataToPoint(e)[0],u=i.get("type");if(u&&"none"!==u){var h=nO(i),c=TR[u](o,l,s);c.style=h,t.graphicKey=c.type,t.pointer=c}aO(e,t,dR(n),n,i,r)},e.prototype.getHandleTransform=function(t,e,n){var i=dR(e,{labelInside:!1});i.labelMargin=n.get(["handle","margin"]);var r=oO(e.axis,t,i);return{x:r[0],y:r[1],rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},e.prototype.updateHandleTransform=function(t,e,n,i){var r=n.axis,o=r.coordinateSystem,a=CR(r),s=AR(o,a),l=[t.x,t.y];l[a]+=e[a],l[a]=Math.min(s[1],l[a]),l[a]=Math.max(s[0],l[a]);var u=AR(o,1-a),h=(u[1]+u[0])/2,c=[h,h];return c[a]=l[a],{x:l[0],y:l[1],rotation:t.rotation,cursorPoint:c,tooltipOption:{verticalAlign:"middle"}}},e}(KP),TR={line:function(t,e,n){return{type:"Line",subPixelOptimize:!0,shape:sO([e,n[0]],[e,n[1]],CR(t))}},shadow:function(t,e,n){var i=t.getBandWidth(),r=n[1]-n[0];return{type:"Rect",shape:lO([e-i/2,n[0]],[i,r],CR(t))}}};function CR(t){return t.isHorizontal()?0:1}function AR(t,e){var n=t.getRect();return[n[SR[e]],n[SR[e]]+n[MR[e]]]}var DR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="single",e}(ff);var LR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(e,n,i){var r=Rc(e);t.prototype.init.apply(this,arguments),kR(e,r)},e.prototype.mergeOption=function(e){t.prototype.mergeOption.apply(this,arguments),kR(this.option,e)},e.prototype.getCellSize=function(){return this.option.cellSize},e.type="calendar",e.defaultOption={zlevel:0,z:2,left:80,top:60,cellSize:20,orient:"horizontal",splitLine:{show:!0,lineStyle:{color:"#000",width:1,type:"solid"}},itemStyle:{color:"#fff",borderWidth:1,borderColor:"#ccc"},dayLabel:{show:!0,firstDay:0,position:"start",margin:"50%",nameMap:"en",color:"#000"},monthLabel:{show:!0,position:"start",margin:5,align:"center",nameMap:"en",formatter:null,color:"#000"},yearLabel:{show:!0,position:null,margin:30,formatter:null,color:"#ccc",fontFamily:"sans-serif",fontWeight:"bolder",fontSize:20}},e}(zc);function kR(t,e){var n,i=t.cellSize;1===(n=F(i)?i:t.cellSize=[i,i]).length&&(n[1]=n[0]);var r=O([0,1],(function(t){return function(t,e){return null!=t[Cc[e][0]]||null!=t[Cc[e][1]]&&null!=t[Cc[e][2]]}(e,t)&&(n[t]="auto"),null!=n[t]&&"auto"!==n[t]}));Oc(t,e,{type:"box",ignoreSize:r})}var PR={EN:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],CN:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},OR={EN:["S","M","T","W","T","F","S"],CN:["日","一","二","三","四","五","六"]},RR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){var i=this.group;i.removeAll();var r=t.coordinateSystem,o=r.getRangeInfo(),a=r.getOrient();this._renderDayRect(t,o,i),this._renderLines(t,o,a,i),this._renderYearText(t,o,a,i),this._renderMonthText(t,a,i),this._renderWeekText(t,o,a,i)},e.prototype._renderDayRect=function(t,e,n){for(var i=t.coordinateSystem,r=t.getModel("itemStyle").getItemStyle(),o=i.getCellWidth(),a=i.getCellHeight(),s=e.start.time;s<=e.end.time;s=i.getNextNDay(s,1).time){var l=i.dataToRect([s],!1).tl,u=new ss({shape:{x:l[0],y:l[1],width:o,height:a},cursor:"default",style:r});n.add(u)}},e.prototype._renderLines=function(t,e,n,i){var r=this,o=t.coordinateSystem,a=t.getModel(["splitLine","lineStyle"]).getLineStyle(),s=t.get(["splitLine","show"]),l=a.lineWidth;this._tlpoints=[],this._blpoints=[],this._firstDayOfMonth=[],this._firstDayPoints=[];for(var u=e.start,h=0;u.time<=e.end.time;h++){p(u.formatedDate),0===h&&(u=o.getDateInfo(e.start.y+"-"+e.start.m));var c=u.date;c.setMonth(c.getMonth()+1),u=o.getDateInfo(c)}function p(e){r._firstDayOfMonth.push(o.getDateInfo(e)),r._firstDayPoints.push(o.dataToRect([e],!1).tl);var l=r._getLinePointsOfOneWeek(t,e,n);r._tlpoints.push(l[0]),r._blpoints.push(l[l.length-1]),s&&r._drawSplitline(l,a,i)}p(o.getNextNDay(e.end.time,1).formatedDate),s&&this._drawSplitline(r._getEdgesPoints(r._tlpoints,l,n),a,i),s&&this._drawSplitline(r._getEdgesPoints(r._blpoints,l,n),a,i)},e.prototype._getEdgesPoints=function(t,e,n){var i=[t[0].slice(),t[t.length-1].slice()],r="horizontal"===n?0:1;return i[0][r]=i[0][r]-e/2,i[1][r]=i[1][r]+e/2,i},e.prototype._drawSplitline=function(t,e,n){var i=new Ql({z2:20,shape:{points:t},style:e});n.add(i)},e.prototype._getLinePointsOfOneWeek=function(t,e,n){for(var i=t.coordinateSystem,r=i.getDateInfo(e),o=[],a=0;a<7;a++){var s=i.getNextNDay(r.time,a),l=i.dataToRect([s.time],!1);o[2*s.day]=l.tl,o[2*s.day+1]=l["horizontal"===n?"bl":"tr"]}return o},e.prototype._formatterLabel=function(t,e){return"string"==typeof t&&t?(n=t,P(e,(function(t,e){n=n.replace("{"+e+"}",i?vc(t):t)})),n):"function"==typeof t?t(e):e.nameMap;var n,i},e.prototype._yearTextPositionControl=function(t,e,n,i,r){var o=e[0],a=e[1],s=["center","bottom"];"bottom"===i?(a+=r,s=["center","top"]):"left"===i?o-=r:"right"===i?(o+=r,s=["center","top"]):a-=r;var l=0;return"left"!==i&&"right"!==i||(l=Math.PI/2),{rotation:l,x:o,y:a,style:{align:s[0],verticalAlign:s[1]}}},e.prototype._renderYearText=function(t,e,n,i){var r=t.getModel("yearLabel");if(r.get("show")){var o=r.get("margin"),a=r.get("position");a||(a="horizontal"!==n?"top":"left");var s=[this._tlpoints[this._tlpoints.length-1],this._blpoints[0]],l=(s[0][0]+s[1][0])/2,u=(s[0][1]+s[1][1])/2,h="horizontal"===n?0:1,c={top:[l,s[h][1]],bottom:[l,s[1-h][1]],left:[s[1-h][0],u],right:[s[h][0],u]},p=e.start.y;+e.end.y>+e.start.y&&(p=p+"-"+e.end.y);var d=r.get("formatter"),f={start:e.start.y,end:e.end.y,nameMap:p},g=this._formatterLabel(d,f),y=new hs({z2:30,style:rh(r,{text:g})});y.attr(this._yearTextPositionControl(y,c[a],n,a,o)),i.add(y)}},e.prototype._monthTextPositionControl=function(t,e,n,i,r){var o="left",a="top",s=t[0],l=t[1];return"horizontal"===n?(l+=r,e&&(o="center"),"start"===i&&(a="bottom")):(s+=r,e&&(a="middle"),"start"===i&&(o="right")),{x:s,y:l,align:o,verticalAlign:a}},e.prototype._renderMonthText=function(t,e,n){var i=t.getModel("monthLabel");if(i.get("show")){var r=i.get("nameMap"),o=i.get("margin"),a=i.get("position"),s=i.get("align"),l=[this._tlpoints,this._blpoints];H(r)&&(r=PR[r.toUpperCase()]||[]);var u="start"===a?0:1,h="horizontal"===e?0:1;o="start"===a?-o:o;for(var c="center"===s,p=0;p<l[u].length-1;p++){var d=l[u][p].slice(),f=this._firstDayOfMonth[p];if(c){var g=this._firstDayPoints[p];d[h]=(g[h]+l[0][p+1][h])/2}var y=i.get("formatter"),v=r[+f.m-1],m={yyyy:f.y,yy:(f.y+"").slice(2),MM:f.m,M:+f.m,nameMap:v},_=this._formatterLabel(y,m),x=new hs({z2:30,style:I(rh(i,{text:_}),this._monthTextPositionControl(d,c,e,a,o))});n.add(x)}}},e.prototype._weekTextPositionControl=function(t,e,n,i,r){var o="center",a="middle",s=t[0],l=t[1],u="start"===n;return"horizontal"===e?(s=s+i+(u?1:-1)*r[0]/2,o=u?"right":"left"):(l=l+i+(u?1:-1)*r[1]/2,a=u?"bottom":"top"),{x:s,y:l,align:o,verticalAlign:a}},e.prototype._renderWeekText=function(t,e,n,i){var r=t.getModel("dayLabel");if(r.get("show")){var o=t.coordinateSystem,a=r.get("position"),s=r.get("nameMap"),l=r.get("margin"),u=o.getFirstDayOfWeek();H(s)&&(s=OR[s.toUpperCase()]||[]);var h=o.getNextNDay(e.end.time,7-e.lweek).time,c=[o.getCellWidth(),o.getCellHeight()];l=qi(l,c["horizontal"===n?0:1]),"start"===a&&(h=o.getNextNDay(e.start.time,-(7+e.fweek)).time,l=-l);for(var p=0;p<7;p++){var d,f=o.getNextNDay(h,p),g=o.dataToRect([f.time],!1).center;d=Math.abs((p+u)%7);var y=new hs({z2:30,style:I(rh(r,{text:s[d]}),this._weekTextPositionControl(g,n,a,l,c))});i.add(y)}}},e.type="calendar",e}(ff),NR=864e5,ER=function(){function t(e,n,i){this.type="calendar",this.dimensions=t.dimensions,this.getDimensionsInfo=t.getDimensionsInfo,this._model=e}return t.getDimensionsInfo=function(){return[{name:"time",type:"time"},"value"]},t.prototype.getRangeInfo=function(){return this._rangeInfo},t.prototype.getModel=function(){return this._model},t.prototype.getRect=function(){return this._rect},t.prototype.getCellWidth=function(){return this._sw},t.prototype.getCellHeight=function(){return this._sh},t.prototype.getOrient=function(){return this._orient},t.prototype.getFirstDayOfWeek=function(){return this._firstDayOfWeek},t.prototype.getDateInfo=function(t){var e=(t=ar(t)).getFullYear(),n=t.getMonth()+1,i=n<10?"0"+n:""+n,r=t.getDate(),o=r<10?"0"+r:""+r,a=t.getDay();return{y:e+"",m:i,d:o,day:a=Math.abs((a+7-this.getFirstDayOfWeek())%7),time:t.getTime(),formatedDate:e+"-"+i+"-"+o,date:t}},t.prototype.getNextNDay=function(t,e){return 0===(e=e||0)||(t=new Date(this.getDateInfo(t).time)).setDate(t.getDate()+e),this.getDateInfo(t)},t.prototype.update=function(t,e){this._firstDayOfWeek=+this._model.getModel("dayLabel").get("firstDay"),this._orient=this._model.get("orient"),this._lineWidth=this._model.getModel("itemStyle").getItemStyle().lineWidth||0,this._rangeInfo=this._getRangeInfo(this._initRangeOption());var n=this._rangeInfo.weeks||1,i=["width","height"],r=this._model.getCellSize().slice(),o=this._model.getBoxLayoutParams(),a="horizontal"===this._orient?[n,7]:[7,n];P([0,1],(function(t){u(r,t)&&(o[i[t]]=r[t]*a[t])}));var s={width:e.getWidth(),height:e.getHeight()},l=this._rect=Lc(o,s);function u(t,e){return null!=t[e]&&"auto"!==t[e]}P([0,1],(function(t){u(r,t)||(r[t]=l[i[t]]/a[t])})),this._sw=r[0],this._sh=r[1]},t.prototype.dataToPoint=function(t,e){F(t)&&(t=t[0]),null==e&&(e=!0);var n=this.getDateInfo(t),i=this._rangeInfo,r=n.formatedDate;if(e&&!(n.time>=i.start.time&&n.time<i.end.time+NR))return[NaN,NaN];var o=n.day,a=this._getRangeInfo([i.start.time,r]).nthWeek;return"vertical"===this._orient?[this._rect.x+o*this._sw+this._sw/2,this._rect.y+a*this._sh+this._sh/2]:[this._rect.x+a*this._sw+this._sw/2,this._rect.y+o*this._sh+this._sh/2]},t.prototype.pointToData=function(t){var e=this.pointToDate(t);return e&&e.time},t.prototype.dataToRect=function(t,e){var n=this.dataToPoint(t,e);return{contentShape:{x:n[0]-(this._sw-this._lineWidth)/2,y:n[1]-(this._sh-this._lineWidth)/2,width:this._sw-this._lineWidth,height:this._sh-this._lineWidth},center:n,tl:[n[0]-this._sw/2,n[1]-this._sh/2],tr:[n[0]+this._sw/2,n[1]-this._sh/2],br:[n[0]+this._sw/2,n[1]+this._sh/2],bl:[n[0]-this._sw/2,n[1]+this._sh/2]}},t.prototype.pointToDate=function(t){var e=Math.floor((t[0]-this._rect.x)/this._sw)+1,n=Math.floor((t[1]-this._rect.y)/this._sh)+1,i=this._rangeInfo.range;return"vertical"===this._orient?this._getDateByWeeksAndDay(n,e-1,i):this._getDateByWeeksAndDay(e,n-1,i)},t.prototype.convertToPixel=function(t,e,n){var i=zR(e);return i===this?i.dataToPoint(n):null},t.prototype.convertFromPixel=function(t,e,n){var i=zR(e);return i===this?i.pointToData(n):null},t.prototype.containPoint=function(t){return console.warn("Not implemented."),!1},t.prototype._initRangeOption=function(){var t,e=this._model.get("range");if(F(e)&&1===e.length&&(e=e[0]),F(e))t=e;else{var n=e.toString();if(/^\d{4}$/.test(n)&&(t=[n+"-01-01",n+"-12-31"]),/^\d{4}[\/|-]\d{1,2}$/.test(n)){var i=this.getDateInfo(n),r=i.date;r.setMonth(r.getMonth()+1);var o=this.getNextNDay(r,-1);t=[i.formatedDate,o.formatedDate]}/^\d{4}[\/|-]\d{1,2}[\/|-]\d{1,2}$/.test(n)&&(t=[n,n])}if(!t)return e;var a=this._getRangeInfo(t);return a.start.time>a.end.time&&t.reverse(),t},t.prototype._getRangeInfo=function(t){var e,n=[this.getDateInfo(t[0]),this.getDateInfo(t[1])];n[0].time>n[1].time&&(e=!0,n.reverse());var i=Math.floor(n[1].time/NR)-Math.floor(n[0].time/NR)+1,r=new Date(n[0].time),o=r.getDate(),a=n[1].date.getDate();r.setDate(o+i-1);var s=r.getDate();if(s!==a)for(var l=r.getTime()-n[1].time>0?1:-1;(s=r.getDate())!==a&&(r.getTime()-n[1].time)*l>0;)i-=l,r.setDate(s-l);var u=Math.floor((i+n[0].day+6)/7),h=e?1-u:u-1;return e&&n.reverse(),{range:[n[0].formatedDate,n[1].formatedDate],start:n[0],end:n[1],allDay:i,weeks:u,nthWeek:h,fweek:n[0].day,lweek:n[1].day}},t.prototype._getDateByWeeksAndDay=function(t,e,n){var i=this._getRangeInfo(n);if(t>i.weeks||0===t&&e<i.fweek||t===i.weeks&&e>i.lweek)return null;var r=7*(t-1)-i.fweek+e,o=new Date(i.start.time);return o.setDate(+i.start.d+r),this.getDateInfo(o)},t.create=function(e,n){var i=[];return e.eachComponent("calendar",(function(r){var o=new t(r,e,n);i.push(o),r.coordinateSystem=o})),e.eachSeries((function(t){"calendar"===t.get("coordinateSystem")&&(t.coordinateSystem=i[t.get("calendarIndex")||0])})),i},t.dimensions=["time","value"],t}();function zR(t){var e=t.calendarModel,n=t.seriesModel;return e?e.coordinateSystem:n?n.coordinateSystem:null}var BR=Pr(),VR={path:null,compoundPath:null,group:Vi,image:ts,text:hs},FR=function(t){var e=t.graphic;F(e)?e[0]&&e[0].elements?t.graphic=[t.graphic[0]]:t.graphic=[{elements:e}]:e&&!e.elements&&(t.graphic=[{elements:[e]}])},GR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.mergeOption=function(e,n){var i=this.option.elements;this.option.elements=null,t.prototype.mergeOption.call(this,e,n),this.option.elements=i},e.prototype.optionUpdated=function(t,e){var n=this.option,i=(e?n:t).elements,r=n.elements=e?[]:n.elements,o=[];this._flatten(i,o,null);var a=Ir(r,o,"normalMerge"),s=this._elOptionsToUpdate=[];P(a,(function(t,e){var n=t.newOption;n&&(s.push(n),function(t,e){var n=t.existing;if(e.id=t.keyInfo.id,!e.type&&n&&(e.type=n.type),null==e.parentId){var i=e.parentOption;i?e.parentId=i.id:n&&(e.parentId=n.parentId)}e.parentOption=null}(t,n),function(t,e,n){var i=I({},n),r=t[e],o=n.$action||"merge";if("merge"===o){if(r)S(r,i,!0),Oc(r,i,{ignoreSize:!0}),Nc(n,r);else t[e]=i}else"replace"===o?t[e]=i:"remove"===o&&r&&(t[e]=null)}(r,e,n),function(t,e){if(!t)return;if(t.hv=e.hv=[XR(e,["left","right"]),XR(e,["top","bottom"])],"group"===t.type){var n=t,i=e;null==n.width&&(n.width=i.width=0),null==n.height&&(n.height=i.height=0)}}(r[e],n))}),this);for(var l=r.length-1;l>=0;l--)null==r[l]?r.splice(l,1):delete r[l].$action},e.prototype._flatten=function(t,e,n){P(t,(function(t){if(t){n&&(t.parentOption=n),e.push(t);var i=t.children;"group"===t.type&&i&&this._flatten(i,e,t),delete t.children}}),this)},e.prototype.useElOptionsToUpdate=function(){var t=this._elOptionsToUpdate;return this._elOptionsToUpdate=null,t},e.type="graphic",e.defaultOption={elements:[]},e}(zc),HR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(){this._elMap=ht()},e.prototype.render=function(t,e,n){t!==this._lastGraphicModel&&this._clear(),this._lastGraphicModel=t,this._updateElements(t),this._relocate(t,n)},e.prototype._updateElements=function(t){var e=t.useElOptionsToUpdate();if(e){var n=this._elMap,i=this.group;P(e,(function(e){var r=Ar(e.id,null),o=null!=r?n.get(r):null,a=Ar(e.parentId,null),s=null!=a?n.get(a):i,l=e.type,u=e.style;"text"===l&&u&&e.hv&&e.hv[1]&&(u.textVerticalAlign=u.textBaseline=u.verticalAlign=u.align=null);var h=e.textContent,c=e.textConfig;if(u&&mk(u,l,!!c,!!h)){var p=_k(u,l,!0);!c&&p.textConfig&&(c=e.textConfig=p.textConfig),!h&&p.textContent&&(h=p.textContent)}var d=function(t){return t=I({},t),P(["id","parentId","$action","hv","bounding","textContent"].concat(Tc),(function(e){delete t[e]})),t}(e);var f=e.$action||"merge";"merge"===f?o?o.attr(d):WR(r,s,d,n):"replace"===f?(YR(o,n),WR(r,s,d,n)):"remove"===f&&YR(o,n);var g=n.get(r);if(g&&h)if("merge"===f){var y=g.getTextContent();y?y.attr(h):g.setTextContent(new hs(h))}else"replace"===f&&g.setTextContent(new hs(h));if(g){var v=BR(g);v.__ecGraphicWidthOption=e.width,v.__ecGraphicHeightOption=e.height,function(t,e,n){var i=ms(t).eventData;t.silent||t.ignore||i||(i=ms(t).eventData={componentType:"graphic",componentIndex:e.componentIndex,name:t.name});i&&(i.info=n.info)}(g,t,e)}}))}},e.prototype._relocate=function(t,e){for(var n=t.option.elements,i=this.group,r=this._elMap,o=e.getWidth(),a=e.getHeight(),s=0;s<n.length;s++){if((d=null!=(p=Ar((c=n[s]).id,null))?r.get(p):null)&&d.isGroup){var l=(f=d.parent)===i,u=BR(d),h=BR(f);u.__ecGraphicWidth=qi(u.__ecGraphicWidthOption,l?o:h.__ecGraphicWidth)||0,u.__ecGraphicHeight=qi(u.__ecGraphicHeightOption,l?a:h.__ecGraphicHeight)||0}}for(s=n.length-1;s>=0;s--){var c,p,d;if(d=null!=(p=Ar((c=n[s]).id,null))?r.get(p):null){var f=d.parent;h=BR(f);kc(d,c,f===i?{width:o,height:a}:{width:h.__ecGraphicWidth,height:h.__ecGraphicHeight},null,{hv:c.hv,boundingMode:c.bounding})}}},e.prototype._clear=function(){var t=this._elMap;t.each((function(e){YR(e,t)})),this._elMap=ht()},e.prototype.dispose=function(){this._clear()},e.type="graphic",e}(ff);function WR(t,e,n,i){var r=n.type;var o=dt(VR,r)?VR[r]:Cu(r);var a=new o(n);e.add(a),i.set(t,a),BR(a).__ecGraphicId=t}function YR(t,e){var n=t&&t.parent;n&&("group"===t.type&&t.traverse((function(t){YR(t,e)})),e.removeKey(BR(t).__ecGraphicId),n.remove(t))}function XR(t,e){var n;return P(e,(function(e){null!=t[e]&&"auto"!==t[e]&&(n=!0)})),n}var UR=["x","y","radius","angle","single"],ZR=["cartesian2d","polar","singleAxis"];function jR(t){return t+"Axis"}function qR(t,e){var n,i=ht(),r=[],o=ht();t.eachComponent({mainType:"dataZoom",query:e},(function(t){o.get(t.uid)||s(t)}));do{n=!1,t.eachComponent("dataZoom",a)}while(n);function a(t){!o.get(t.uid)&&function(t){var e=!1;return t.eachTargetAxis((function(t,n){var r=i.get(t);r&&r[n]&&(e=!0)})),e}(t)&&(s(t),n=!0)}function s(t){o.set(t.uid,!0),r.push(t),t.eachTargetAxis((function(t,e){(i.get(t)||i.set(t,[]))[e]=!0}))}return r}function KR(t){var e=t.ecModel,n={infoList:[],infoMap:ht()};return t.eachTargetAxis((function(t,i){var r=e.getComponent(jR(t),i);if(r){var o=r.getCoordSysModel();if(o){var a=o.uid,s=n.infoMap.get(a);s||(s={model:o,axisModels:[]},n.infoList.push(s),n.infoMap.set(a,s)),s.axisModels.push(r)}}})),n}var $R=function(){function t(){this.indexList=[],this.indexMap=[]}return t.prototype.add=function(t){this.indexMap[t]||(this.indexList.push(t),this.indexMap[t]=!0)},t}(),JR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._autoThrottle=!0,n._noTarget=!0,n._rangePropMode=["percent","percent"],n}return n(e,t),e.prototype.init=function(t,e,n){var i=QR(t);this.settledOption=i,this.mergeDefaultAndTheme(t,n),this._doInit(i)},e.prototype.mergeOption=function(t){var e=QR(t);S(this.option,t,!0),S(this.settledOption,e,!0),this._doInit(e)},e.prototype._doInit=function(t){var e=this.option;this._setDefaultThrottle(t),this._updateRangeUse(t);var n=this.settledOption;P([["start","startValue"],["end","endValue"]],(function(t,i){"value"===this._rangePropMode[i]&&(e[t[0]]=n[t[0]]=null)}),this),this._resetTarget()},e.prototype._resetTarget=function(){var t=this.get("orient",!0),e=this._targetAxisInfoMap=ht();this._fillSpecifiedTargetAxis(e)?this._orient=t||this._makeAutoOrientByTargetAxis():(this._orient=t||"horizontal",this._fillAutoTargetAxisByOrient(e,this._orient)),this._noTarget=!0,e.each((function(t){t.indexList.length&&(this._noTarget=!1)}),this)},e.prototype._fillSpecifiedTargetAxis=function(t){var e=!1;return P(UR,(function(n){var i=this.getReferringComponents(jR(n),Er);if(i.specified){e=!0;var r=new $R;P(i.models,(function(t){r.add(t.componentIndex)})),t.set(n,r)}}),this),e},e.prototype._fillAutoTargetAxisByOrient=function(t,e){var n=this.ecModel,i=!0;if(i){var r="vertical"===e?"y":"x";o(n.findComponents({mainType:r+"Axis"}),r)}i&&o(n.findComponents({mainType:"singleAxis",filter:function(t){return t.get("orient",!0)===e}}),"single");function o(e,n){var r=e[0];if(r){var o=new $R;if(o.add(r.componentIndex),t.set(n,o),i=!1,"x"===n||"y"===n){var a=r.getReferringComponents("grid",Nr).models[0];a&&P(e,(function(t){r.componentIndex!==t.componentIndex&&a===t.getReferringComponents("grid",Nr).models[0]&&o.add(t.componentIndex)}))}}}i&&P(UR,(function(e){if(i){var r=n.findComponents({mainType:jR(e),filter:function(t){return"category"===t.get("type",!0)}});if(r[0]){var o=new $R;o.add(r[0].componentIndex),t.set(e,o),i=!1}}}),this)},e.prototype._makeAutoOrientByTargetAxis=function(){var t;return this.eachTargetAxis((function(e){!t&&(t=e)}),this),"y"===t?"vertical":"horizontal"},e.prototype._setDefaultThrottle=function(t){if(t.hasOwnProperty("throttle")&&(this._autoThrottle=!1),this._autoThrottle){var e=this.ecModel.option;this.option.throttle=e.animation&&e.animationDurationUpdate>0?100:20}},e.prototype._updateRangeUse=function(t){var e=this._rangePropMode,n=this.get("rangeMode");P([["start","startValue"],["end","endValue"]],(function(i,r){var o=null!=t[i[0]],a=null!=t[i[1]];o&&!a?e[r]="percent":!o&&a?e[r]="value":n?e[r]=n[r]:o&&(e[r]="percent")}))},e.prototype.noTarget=function(){return this._noTarget},e.prototype.getFirstTargetAxisModel=function(){var t;return this.eachTargetAxis((function(e,n){null==t&&(t=this.ecModel.getComponent(jR(e),n))}),this),t},e.prototype.eachTargetAxis=function(t,e){this._targetAxisInfoMap.each((function(n,i){P(n.indexList,(function(n){t.call(e,i,n)}))}))},e.prototype.getAxisProxy=function(t,e){var n=this.getAxisModel(t,e);if(n)return n.__dzAxisProxy},e.prototype.getAxisModel=function(t,e){var n=this._targetAxisInfoMap.get(t);if(n&&n.indexMap[e])return this.ecModel.getComponent(jR(t),e)},e.prototype.setRawRange=function(t){var e=this.option,n=this.settledOption;P([["start","startValue"],["end","endValue"]],(function(i){null==t[i[0]]&&null==t[i[1]]||(e[i[0]]=n[i[0]]=t[i[0]],e[i[1]]=n[i[1]]=t[i[1]])}),this),this._updateRangeUse(t)},e.prototype.setCalculatedRange=function(t){var e=this.option;P(["start","startValue","end","endValue"],(function(n){e[n]=t[n]}))},e.prototype.getPercentRange=function(){var t=this.findRepresentativeAxisProxy();if(t)return t.getDataPercentWindow()},e.prototype.getValueRange=function(t,e){if(null!=t||null!=e)return this.getAxisProxy(t,e).getDataValueWindow();var n=this.findRepresentativeAxisProxy();return n?n.getDataValueWindow():void 0},e.prototype.findRepresentativeAxisProxy=function(t){if(t)return t.__dzAxisProxy;for(var e,n=this._targetAxisInfoMap.keys(),i=0;i<n.length;i++)for(var r=n[i],o=this._targetAxisInfoMap.get(r),a=0;a<o.indexList.length;a++){var s=this.getAxisProxy(r,o.indexList[a]);if(s.hostedBy(this))return s;e||(e=s)}return e},e.prototype.getRangePropMode=function(){return this._rangePropMode.slice()},e.prototype.getOrient=function(){return this._orient},e.type="dataZoom",e.dependencies=["xAxis","yAxis","radiusAxis","angleAxis","singleAxis","series","toolbox"],e.defaultOption={zlevel:0,z:4,filterMode:"filter",start:0,end:100},e}(zc);function QR(t){var e={};return P(["start","end","startValue","endValue","throttle"],(function(n){t.hasOwnProperty(n)&&(e[n]=t[n])})),e}var tN=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="dataZoom.select",e}(JR),eN=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n,i){this.dataZoomModel=t,this.ecModel=e,this.api=n},e.type="dataZoom",e}(ff),nN=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="dataZoom.select",e}(eN),iN=P,rN=$i,oN=function(){function t(t,e,n,i){this._dimName=t,this._axisIndex=e,this.ecModel=i,this._dataZoomModel=n}return t.prototype.hostedBy=function(t){return this._dataZoomModel===t},t.prototype.getDataValueWindow=function(){return this._valueWindow.slice()},t.prototype.getDataPercentWindow=function(){return this._percentWindow.slice()},t.prototype.getTargetSeriesModels=function(){var t=[];return this.ecModel.eachSeries((function(e){if(function(t){var e=t.get("coordinateSystem");return A(ZR,e)>=0}(e)){var n=jR(this._dimName),i=e.getReferringComponents(n,Nr).models[0];i&&this._axisIndex===i.componentIndex&&t.push(e)}}),this),t},t.prototype.getAxisModel=function(){return this.ecModel.getComponent(this._dimName+"Axis",this._axisIndex)},t.prototype.getMinMaxSpan=function(){return w(this._minMaxSpan)},t.prototype.calculateDataWindow=function(t){var e,n=this._dataExtent,i=this.getAxisModel().axis.scale,r=this._dataZoomModel.getRangePropMode(),o=[0,100],a=[],s=[];iN(["start","end"],(function(l,u){var h=t[l],c=t[l+"Value"];"percent"===r[u]?(null==h&&(h=o[u]),c=i.parse(ji(h,o,n))):(e=!0,h=ji(c=null==c?n[u]:i.parse(c),n,o)),s[u]=c,a[u]=h})),rN(s),rN(a);var l=this._minMaxSpan;function u(t,e,n,r,o){var a=o?"Span":"ValueSpan";nA(0,t,n,"all",l["min"+a],l["max"+a]);for(var s=0;s<2;s++)e[s]=ji(t[s],n,r,!0),o&&(e[s]=i.parse(e[s]))}return e?u(s,a,n,o,!1):u(a,s,o,n,!0),{valueWindow:s,percentWindow:a}},t.prototype.reset=function(t){if(t===this._dataZoomModel){var e=this.getTargetSeriesModels();this._dataExtent=function(t,e,n){var i=[1/0,-1/0];iN(n,(function(t){!function(t,e,n){e&&P(q_(e,n),(function(n){var i=e.getApproximateExtent(n);i[0]<t[0]&&(t[0]=i[0]),i[1]>t[1]&&(t[1]=i[1])}))}(i,t.getData(),e)}));var r=t.getAxisModel(),o=V_(r.axis.scale,r,i).calculate();return[o.min,o.max]}(this,this._dimName,e),this._updateMinMaxSpan();var n=this.calculateDataWindow(t.settledOption);this._valueWindow=n.valueWindow,this._percentWindow=n.percentWindow,this._setAxisModel()}},t.prototype.filterData=function(t,e){if(t===this._dataZoomModel){var n=this._dimName,i=this.getTargetSeriesModels(),r=t.get("filterMode"),o=this._valueWindow;"none"!==r&&iN(i,(function(t){var e=t.getData(),i=e.mapDimensionsAll(n);i.length&&("weakFilter"===r?e.filterSelf((function(t){for(var n,r,a,s=0;s<i.length;s++){var l=e.get(i[s],t),u=!isNaN(l),h=l<o[0],c=l>o[1];if(u&&!h&&!c)return!0;u&&(a=!0),h&&(n=!0),c&&(r=!0)}return a&&n&&r})):iN(i,(function(n){if("empty"===r)t.setData(e=e.map(n,(function(t){return function(t){return t>=o[0]&&t<=o[1]}(t)?t:NaN})));else{var i={};i[n]=o,e.selectRange(i)}})),iN(i,(function(t){e.setApproximateExtent(o,t)})))}))}},t.prototype._updateMinMaxSpan=function(){var t=this._minMaxSpan={},e=this._dataZoomModel,n=this._dataExtent;iN(["min","max"],(function(i){var r=e.get(i+"Span"),o=e.get(i+"ValueSpan");null!=o&&(o=this.getAxisModel().axis.scale.parse(o)),null!=o?r=ji(n[0]+o,n,[0,100],!0):null!=r&&(o=ji(r,[0,100],n,!0)-n[0]),t[i+"Span"]=r,t[i+"ValueSpan"]=o}),this)},t.prototype._setAxisModel=function(){var t=this.getAxisModel(),e=this._percentWindow,n=this._valueWindow;if(e){var i=tr(n,[0,500]);i=Math.min(i,20);var r=t.axis.scale.rawExtentInfo;0!==e[0]&&r.setDeterminedMinMax("min",+n[0].toFixed(i)),100!==e[1]&&r.setDeterminedMinMax("max",+n[1].toFixed(i)),r.freeze()}},t}();var aN={getTargetSeries:function(t){function e(e){t.eachComponent("dataZoom",(function(n){n.eachTargetAxis((function(i,r){var o=t.getComponent(jR(i),r);e(i,r,o,n)}))}))}e((function(t,e,n,i){n.__dzAxisProxy=null}));var n=[];e((function(e,i,r,o){r.__dzAxisProxy||(r.__dzAxisProxy=new oN(e,i,o,t),n.push(r.__dzAxisProxy))}));var i=ht();return P(n,(function(t){P(t.getTargetSeriesModels(),(function(t){i.set(t.uid,t)}))})),i},overallReset:function(t,e){t.eachComponent("dataZoom",(function(t){t.eachTargetAxis((function(e,n){t.getAxisProxy(e,n).reset(t)})),t.eachTargetAxis((function(n,i){t.getAxisProxy(n,i).filterData(t,e)}))})),t.eachComponent("dataZoom",(function(t){var e=t.findRepresentativeAxisProxy();if(e){var n=e.getDataPercentWindow(),i=e.getDataValueWindow();t.setCalculatedRange({start:n[0],end:n[1],startValue:i[0],endValue:i[1]})}}))}};var sN=!1;function lN(t){sN||(sN=!0,t.registerProcessor(t.PRIORITY.PROCESSOR.FILTER,aN),function(t){t.registerAction("dataZoom",(function(t,e){P(qR(e,t),(function(e){e.setRawRange({start:t.start,end:t.end,startValue:t.startValue,endValue:t.endValue})}))}))}(t),t.registerSubTypeDefaulter("dataZoom",(function(){return"slider"})))}function uN(t){t.registerComponentModel(tN),t.registerComponentView(nN),lN(t)}var hN=function(){},cN={};function pN(t,e){cN[t]=e}function dN(t){return cN[t]}var fN=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.optionUpdated=function(){t.prototype.optionUpdated.apply(this,arguments);var e=this.ecModel;P(this.option.feature,(function(t,n){var i=dN(n);i&&(i.getDefaultOption&&(i.defaultOption=i.getDefaultOption(e)),S(t,i.defaultOption))}))},e.type="toolbox",e.layoutMode={type:"box",ignoreSize:!0},e.defaultOption={show:!0,z:6,zlevel:0,orient:"horizontal",left:"right",top:"top",backgroundColor:"transparent",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemSize:15,itemGap:8,showTitle:!0,iconStyle:{borderColor:"#666",color:"none"},emphasis:{iconStyle:{borderColor:"#3E98C5"}},tooltip:{show:!1}},e}(zc);function gN(t,e){var n=fc(e.get("padding")),i=e.getItemStyle(["color","opacity"]);return i.fill=e.get("backgroundColor"),t=new ss({shape:{x:t.x-n[3],y:t.y-n[0],width:t.width+n[1]+n[3],height:t.height+n[0]+n[2],r:e.get("borderRadius")},style:i,silent:!0,z2:-1})}var yN=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.render=function(t,e,n,i){var r=this.group;if(r.removeAll(),t.get("show")){var o=+t.get("itemSize"),a=t.get("feature")||{},s=this._features||(this._features={}),l=[];P(a,(function(t,e){l.push(e)})),new am(this._featureNames||[],l).add(u).update(u).remove(V(u,null)).execute(),this._featureNames=l,function(t,e,n){var i=e.getBoxLayoutParams(),r=e.get("padding"),o={width:n.getWidth(),height:n.getHeight()},a=Lc(i,o,r);Dc(e.get("orient"),t,e.get("itemGap"),a.width,a.height),kc(t,i,o,r)}(r,t,n),r.add(gN(r.getBoundingRect(),t)),r.eachChild((function(t){var e=t.__title,i=t.ensureState("emphasis"),a=i.textConfig||(i.textConfig={}),s=t.getTextContent(),l=s&&s.states.emphasis;if(l&&!G(l)&&e){var u=l.style||(l.style={}),h=Hn(e,hs.makeFont(u)),c=t.x+r.x,p=!1;t.y+r.y+o+h.height>n.getHeight()&&(a.position="top",p=!0);var d=p?-5-h.height:o+8;c+h.width/2>n.getWidth()?(a.position=["100%",d],u.align="right"):c-h.width/2<0&&(a.position=[0,d],u.align="left")}}))}function u(u,h){var c,p=l[u],d=l[h],f=a[p],g=new Ih(f,t,t.ecModel);if(i&&null!=i.newTitle&&i.featureName===p&&(f.title=i.newTitle),p&&!d){if(function(t){return 0===t.indexOf("my")}(p))c={onclick:g.option.onclick,featureName:p};else{var y=dN(p);if(!y)return;c=new y}s[p]=c}else if(!(c=s[d]))return;if(c.uid=Ch("toolbox-feature"),c.model=g,c.ecModel=e,c.api=n,c instanceof hN){if(!p&&d)return void(c.dispose&&c.dispose(e,n));if(!g.get("show")||c.unusable)return void(c.remove&&c.remove(e,n))}!function(i,a,s){var l,u,h=i.getModel("iconStyle"),c=i.getModel(["emphasis","iconStyle"]),p=a instanceof hN&&a.getIcons?a.getIcons():i.get("icon"),d=i.get("title")||{};"string"==typeof p?(l={})[s]=p:l=p;"string"==typeof d?(u={})[s]=d:u=d;var f=i.iconPaths={};P(l,(function(s,l){var p=ju(s,{},{x:-o/2,y:-o/2,width:o,height:o});p.setStyle(h.getItemStyle()),p.ensureState("emphasis").style=c.getItemStyle();var d=new hs({style:{text:u[l],align:c.get("textAlign"),borderRadius:c.get("textBorderRadius"),padding:c.get("textPadding"),fill:null},ignore:!0});p.setTextContent(d);var g=t.getModel("tooltip");g&&g.get("show")&&(p.tooltip=I({content:u[l],formatter:g.get("formatter",!0)||function(){return u[l]},formatterParams:{componentType:"toolbox",name:l,title:u[l],$vars:["name","title"]},position:g.get("position",!0)||"bottom"},g.option)),p.__title=u[l],p.on("mouseover",(function(){var e=c.getItemStyle(),n="vertical"===t.get("orient")?null==t.get("right")?"right":"left":null==t.get("bottom")?"bottom":"top";d.setStyle({fill:c.get("textFill")||e.fill||e.stroke||"#000",backgroundColor:c.get("textBackgroundColor")}),p.setTextConfig({position:c.get("textPosition")||n}),d.ignore=!t.get("showTitle"),Ys(this)})).on("mouseout",(function(){"emphasis"!==i.get(["iconStatus",l])&&Xs(this),d.hide()})),("emphasis"===i.get(["iconStatus",l])?Ys:Xs)(p),r.add(p),p.on("click",B(a.onclick,a,e,n,l)),f[l]=p}))}(g,c,p),g.setIconStatus=function(t,e){var n=this.option,i=this.iconPaths;n.iconStatus=n.iconStatus||{},n.iconStatus[t]=e,i[t]&&("emphasis"===e?Ys:Xs)(i[t])},c instanceof hN&&c.render&&c.render(g,e,n,i)}},e.prototype.updateView=function(t,e,n,i){P(this._features,(function(t){t instanceof hN&&t.updateView&&t.updateView(t.model,e,n,i)}))},e.prototype.remove=function(t,e){P(this._features,(function(n){n instanceof hN&&n.remove&&n.remove(t,e)})),this.group.removeAll()},e.prototype.dispose=function(t,e){P(this._features,(function(n){n instanceof hN&&n.dispose&&n.dispose(t,e)}))},e.type="toolbox",e}(ff);var vN=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.onclick=function(t,e){var n=this.model,i=n.get("name")||t.get("title.0.text")||"echarts",r="svg"===e.getZr().painter.getType(),o=r?"svg":n.get("type",!0)||"png",s=e.getConnectedDataURL({type:o,backgroundColor:n.get("backgroundColor",!0)||t.get("backgroundColor")||"#fff",connectedBackgroundColor:n.get("connectedBackgroundColor"),excludeComponents:n.get("excludeComponents"),pixelRatio:n.get("pixelRatio")});if("function"!=typeof MouseEvent||!a.browser.newEdge&&(a.browser.ie||a.browser.edge))if(window.navigator.msSaveOrOpenBlob||r){var l=s.split(","),u=l[0].indexOf("base64")>-1,h=r?decodeURIComponent(l[1]):l[1];u&&(h=atob(h));var c=i+"."+o;if(window.navigator.msSaveOrOpenBlob){for(var p=h.length,d=new Uint8Array(p);p--;)d[p]=h.charCodeAt(p);var f=new Blob([d]);window.navigator.msSaveOrOpenBlob(f,c)}else{var g=document.createElement("iframe");document.body.appendChild(g);var y=g.contentWindow,v=y.document;v.open("image/svg+xml","replace"),v.write(h),v.close(),y.focus(),v.execCommand("SaveAs",!0,c),document.body.removeChild(g)}}else{var m=n.get("lang"),_='<body style="margin:0;"><img src="'+s+'" style="max-width:100%;" title="'+(m&&m[0]||"")+'" /></body>',x=window.open();x.document.write(_),x.document.title=i}else{var b=document.createElement("a");b.download=i+"."+o,b.target="_blank",b.href=s;var w=new MouseEvent("click",{view:document.defaultView,bubbles:!0,cancelable:!1});b.dispatchEvent(w)}},e.getDefaultOption=function(t){return{show:!0,icon:"M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0",title:t.getLocale(["toolbox","saveAsImage","title"]),type:"png",connectedBackgroundColor:"#fff",name:"",excludeComponents:["toolbox"],pixelRatio:1,lang:t.getLocale(["toolbox","saveAsImage","lang"])}},e}(hN);vN.prototype.unusable=!a.canvasSupported;var mN="__ec_magicType_stack__",_N=[["line","bar"],["stack"]],xN=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.getIcons=function(){var t=this.model,e=t.get("icon"),n={};return P(t.get("type"),(function(t){e[t]&&(n[t]=e[t])})),n},e.getDefaultOption=function(t){return{show:!0,type:[],icon:{line:"M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4",bar:"M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7",stack:"M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z"},title:t.getLocale(["toolbox","magicType","title"]),option:{},seriesIndex:{}}},e.prototype.onclick=function(t,e,n){var i=this.model,r=i.get(["seriesIndex",n]);if(bN[n]){var o,a={series:[]};P(_N,(function(t){A(t,n)>=0&&P(t,(function(t){i.setIconStatus(t,"normal")}))})),i.setIconStatus(n,"emphasis"),t.eachComponent({mainType:"series",query:null==r?null:{seriesIndex:r}},(function(t){var e=t.subType,r=t.id,o=bN[n](e,r,t,i);o&&(T(o,t.option),a.series.push(o));var s=t.coordinateSystem;if(s&&"cartesian2d"===s.type&&("line"===n||"bar"===n)){var l=s.getAxesByScale("ordinal")[0];if(l){var u=l.dim+"Axis",h=t.getReferringComponents(u,Nr).models[0].componentIndex;a[u]=a[u]||[];for(var c=0;c<=h;c++)a[u][h]=a[u][h]||{};a[u][h].boundaryGap="bar"===n}}})),"stack"===n&&(o=S({stack:i.option.title.tiled,tiled:i.option.title.stack},i.option.title)),e.dispatchAction({type:"changeMagicType",currentType:n,newOption:a,newTitle:o,featureName:"magicType"})}},e}(hN),bN={line:function(t,e,n,i){if("bar"===t)return S({id:e,type:"line",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},i.get(["option","line"])||{},!0)},bar:function(t,e,n,i){if("line"===t)return S({id:e,type:"bar",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},i.get(["option","bar"])||{},!0)},stack:function(t,e,n,i){var r=n.get("stack")===mN;if("line"===t||"bar"===t)return i.setIconStatus("stack",r?"normal":"emphasis"),S({id:e,stack:r?"":mN},i.get(["option","stack"])||{},!0)}};Uv({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},(function(t,e){e.mergeOption(t.newOption)}));var wN=new Array(60).join("-"),SN="\t";function MN(t){return t.replace(/^\s\s*/,"").replace(/\s\s*$/,"")}var IN=new RegExp("[\t]+","g");function TN(t,e){var n=t.split(new RegExp("\n*"+wN+"\n*","g")),i={series:[]};return P(n,(function(t,n){if(function(t){if(t.slice(0,t.indexOf("\n")).indexOf(SN)>=0)return!0}(t)){var r=function(t){for(var e=t.split(/\n+/g),n=[],i=O(MN(e.shift()).split(IN),(function(t){return{name:t,data:[]}})),r=0;r<e.length;r++){var o=MN(e[r]).split(IN);n.push(o.shift());for(var a=0;a<o.length;a++)i[a]&&(i[a].data[r]=o[a])}return{series:i,categories:n}}(t),o=e[n],a=o.axisDim+"Axis";o&&(i[a]=i[a]||[],i[a][o.axisIndex]={data:r.categories},i.series=i.series.concat(r.series))}else{r=function(t){for(var e=t.split(/\n+/g),n=MN(e.shift()),i=[],r=0;r<e.length;r++){var o=MN(e[r]);if(o){var a=o.split(IN),s="",l=void 0,u=!1;isNaN(a[0])?(u=!0,s=a[0],a=a.slice(1),i[r]={name:s,value:[]},l=i[r].value):l=i[r]=[];for(var h=0;h<a.length;h++)l.push(+a[h]);1===l.length&&(u?i[r].value=l[0]:i[r]=l[0])}}return{name:n,data:i}}(t);i.series.push(r)}})),i}var CN=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.onclick=function(t,e){var n=e.getDom(),i=this.model;this._dom&&n.removeChild(this._dom);var r=document.createElement("div");r.style.cssText="position:absolute;left:5px;top:5px;bottom:5px;right:5px;",r.style.backgroundColor=i.get("backgroundColor")||"#fff";var o=document.createElement("h4"),a=i.get("lang")||[];o.innerHTML=a[0]||i.get("title"),o.style.cssText="margin: 10px 20px;",o.style.color=i.get("textColor");var s=document.createElement("div"),l=document.createElement("textarea");s.style.cssText="display:block;width:100%;overflow:auto;";var u=i.get("optionToContent"),h=i.get("contentToOption"),c=function(t){var e,n,i,r=function(t){var e={},n=[],i=[];return t.eachRawSeries((function(t){var r=t.coordinateSystem;if(!r||"cartesian2d"!==r.type&&"polar"!==r.type)n.push(t);else{var o=r.getBaseAxis();if("category"===o.type){var a=o.dim+"_"+o.index;e[a]||(e[a]={categoryAxis:o,valueAxis:r.getOtherAxis(o),series:[]},i.push({axisDim:o.dim,axisIndex:o.index})),e[a].series.push(t)}else n.push(t)}})),{seriesGroupByCategoryAxis:e,other:n,meta:i}}(t);return{value:N([(n=r.seriesGroupByCategoryAxis,i=[],P(n,(function(t,e){var n=t.categoryAxis,r=t.valueAxis.dim,o=[" "].concat(O(t.series,(function(t){return t.name}))),a=[n.model.getCategories()];P(t.series,(function(t){var e=t.getRawData();a.push(t.getRawData().mapArray(e.mapDimension(r),(function(t){return t})))}));for(var s=[o.join(SN)],l=0;l<a[0].length;l++){for(var u=[],h=0;h<a.length;h++)u.push(a[h][l]);s.push(u.join(SN))}i.push(s.join("\n"))})),i.join("\n\n"+wN+"\n\n")),(e=r.other,O(e,(function(t){var e=t.getRawData(),n=[t.name],i=[];return e.each(e.dimensions,(function(){for(var t=arguments.length,r=arguments[t-1],o=e.getName(r),a=0;a<t-1;a++)i[a]=arguments[a];n.push((o?o+SN:"")+i.join(SN))})),n.join("\n")})).join("\n\n"+wN+"\n\n"))],(function(t){return!!t.replace(/[\n\t\s]/g,"")})).join("\n\n"+wN+"\n\n"),meta:r.meta}}(t);if("function"==typeof u){var p=u(e.getOption());"string"==typeof p?s.innerHTML=p:j(p)&&s.appendChild(p)}else s.appendChild(l),l.readOnly=i.get("readOnly"),l.style.cssText="width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;",l.style.color=i.get("textColor"),l.style.borderColor=i.get("textareaBorderColor"),l.style.backgroundColor=i.get("textareaColor"),l.value=c.value;var d=c.meta,f=document.createElement("div");f.style.cssText="position:absolute;bottom:0;left:0;right:0;";var g="float:right;margin-right:20px;border:none;cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px",y=document.createElement("div"),v=document.createElement("div");g+=";background-color:"+i.get("buttonColor"),g+=";color:"+i.get("buttonTextColor");var m=this;function _(){n.removeChild(r),m._dom=null}ne(y,"click",_),ne(v,"click",(function(){if(null==h&&null!=u||null!=h&&null==u)_();else{var t;try{t="function"==typeof h?h(s,e.getOption()):TN(l.value,d)}catch(t){throw _(),new Error("Data view format error "+t)}t&&e.dispatchAction({type:"changeDataView",newOption:t}),_()}})),y.innerHTML=a[1],v.innerHTML=a[2],v.style.cssText=g,y.style.cssText=g,!i.get("readOnly")&&f.appendChild(v),f.appendChild(y),r.appendChild(o),r.appendChild(s),r.appendChild(f),s.style.height=n.clientHeight-80+"px",n.appendChild(r),this._dom=r},e.prototype.remove=function(t,e){this._dom&&e.getDom().removeChild(this._dom)},e.prototype.dispose=function(t,e){this.remove(t,e)},e.getDefaultOption=function(t){return{show:!0,readOnly:!1,optionToContent:null,contentToOption:null,icon:"M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28",title:t.getLocale(["toolbox","dataView","title"]),lang:t.getLocale(["toolbox","dataView","lang"]),backgroundColor:"#fff",textColor:"#000",textareaColor:"#fff",textareaBorderColor:"#333",buttonColor:"#c23531",buttonTextColor:"#fff"}},e}(hN);function AN(t,e){return O(t,(function(t,n){var i=e&&e[n];if(X(i)&&!F(i)){X(t)&&!F(t)||(t={value:t});var r=null!=i.name&&null==t.name;return t=T(t,i),r&&delete t.name,t}return t}))}Uv({type:"changeDataView",event:"dataViewChanged",update:"prepareAndUpdate"},(function(t,e){var n=[];P(t.newOption.series,(function(t){var i=e.getSeriesByName(t.name)[0];if(i){var r=i.get("data");n.push({name:t.name,data:AN(t.data,r)})}else n.push(I({type:"scatter"},t))})),e.mergeOption(T({series:n},t.newOption))}));var DN=P,LN=Pr();function kN(t){var e=LN(t);return e.snapshots||(e.snapshots=[{}]),e.snapshots}var PN=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.onclick=function(t,e){!function(t){LN(t).snapshots=null}(t),e.dispatchAction({type:"restore",from:this.uid})},e.getDefaultOption=function(t){return{show:!0,icon:"M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5",title:t.getLocale(["toolbox","restore","title"])}},e}(hN);Uv({type:"restore",event:"restore",update:"prepareAndUpdate"},(function(t,e){e.resetOption("recreate")}));var ON=["dataToPoint","pointToData"],RN=["grid","xAxis","yAxis","geo","graph","polar","radiusAxis","angleAxis","bmap"],NN=function(){function t(t,e,n){var i=this;this._targetInfoList=[];var r=zN(e,t);P(BN,(function(t,e){(!n||!n.include||A(n.include,e)>=0)&&t(r,i._targetInfoList)}))}return t.prototype.setOutputRanges=function(t,e){return this.matchOutputRanges(t,e,(function(t,e,n){if((t.coordRanges||(t.coordRanges=[])).push(e),!t.coordRange){t.coordRange=e;var i=GN[t.brushType](0,n,e);t.__rangeOffset={offset:WN[t.brushType](i.values,t.range,[1,1]),xyMinMax:i.xyMinMax}}})),t},t.prototype.matchOutputRanges=function(t,e,n){P(t,(function(t){var i=this.findTargetInfo(t,e);i&&!0!==i&&P(i.coordSyses,(function(i){var r=GN[t.brushType](1,i,t.range);n(t,r.values,i,e)}))}),this)},t.prototype.setInputRanges=function(t,e){P(t,(function(t){var n,i,r,o,a,s=this.findTargetInfo(t,e);if(t.range=t.range||[],s&&!0!==s){t.panelId=s.panelId;var l=GN[t.brushType](0,s.coordSys,t.coordRange),u=t.__rangeOffset;t.range=u?WN[t.brushType](l.values,u.offset,(n=l.xyMinMax,i=u.xyMinMax,r=XN(n),o=XN(i),a=[r[0]/o[0],r[1]/o[1]],isNaN(a[0])&&(a[0]=1),isNaN(a[1])&&(a[1]=1),a)):l.values}}),this)},t.prototype.makePanelOpts=function(t,e){return O(this._targetInfoList,(function(n){var i=n.getPanelRect();return{panelId:n.panelId,defaultBrushType:e?e(n):null,clipPath:rD(i),isTargetByCursor:aD(i,t,n.coordSysModel),getLinearBrushOtherExtent:oD(i)}}))},t.prototype.controlSeries=function(t,e,n){var i=this.findTargetInfo(t,n);return!0===i||i&&A(i.coordSyses,e.coordinateSystem)>=0},t.prototype.findTargetInfo=function(t,e){for(var n=this._targetInfoList,i=zN(e,t),r=0;r<n.length;r++){var o=n[r],a=t.panelId;if(a){if(o.panelId===a)return o}else for(var s=0;s<VN.length;s++)if(VN[s](i,o))return o}return!0},t}();function EN(t){return t[0]>t[1]&&t.reverse(),t}function zN(t,e){return Rr(t,e,{includeMainTypes:RN})}var BN={grid:function(t,e){var n=t.xAxisModels,i=t.yAxisModels,r=t.gridModels,o=ht(),a={},s={};(n||i||r)&&(P(n,(function(t){var e=t.axis.grid.model;o.set(e.id,e),a[e.id]=!0})),P(i,(function(t){var e=t.axis.grid.model;o.set(e.id,e),s[e.id]=!0})),P(r,(function(t){o.set(t.id,t),a[t.id]=!0,s[t.id]=!0})),o.each((function(t){var r=t.coordinateSystem,o=[];P(r.getCartesians(),(function(t,e){(A(n,t.getAxis("x").model)>=0||A(i,t.getAxis("y").model)>=0)&&o.push(t)})),e.push({panelId:"grid--"+t.id,gridModel:t,coordSysModel:t,coordSys:o[0],coordSyses:o,getPanelRect:FN.grid,xAxisDeclared:a[t.id],yAxisDeclared:s[t.id]})})))},geo:function(t,e){P(t.geoModels,(function(t){var n=t.coordinateSystem;e.push({panelId:"geo--"+t.id,geoModel:t,coordSysModel:t,coordSys:n,coordSyses:[n],getPanelRect:FN.geo})}))}},VN=[function(t,e){var n=t.xAxisModel,i=t.yAxisModel,r=t.gridModel;return!r&&n&&(r=n.axis.grid.model),!r&&i&&(r=i.axis.grid.model),r&&r===e.gridModel},function(t,e){var n=t.geoModel;return n&&n===e.geoModel}],FN={grid:function(){return this.coordSys.master.getRect().clone()},geo:function(){var t=this.coordSys,e=t.getBoundingRect().clone();return e.applyTransform(Gu(t)),e}},GN={lineX:V(HN,0),lineY:V(HN,1),rect:function(t,e,n){var i=e[ON[t]]([n[0][0],n[1][0]]),r=e[ON[t]]([n[0][1],n[1][1]]),o=[EN([i[0],r[0]]),EN([i[1],r[1]])];return{values:o,xyMinMax:o}},polygon:function(t,e,n){var i=[[1/0,-1/0],[1/0,-1/0]];return{values:O(n,(function(n){var r=e[ON[t]](n);return i[0][0]=Math.min(i[0][0],r[0]),i[1][0]=Math.min(i[1][0],r[1]),i[0][1]=Math.max(i[0][1],r[0]),i[1][1]=Math.max(i[1][1],r[1]),r})),xyMinMax:i}}};function HN(t,e,n,i){var r=n.getAxis(["x","y"][t]),o=EN(O([0,1],(function(t){return e?r.coordToData(r.toLocalCoord(i[t])):r.toGlobalCoord(r.dataToCoord(i[t]))}))),a=[];return a[t]=o,a[1-t]=[NaN,NaN],{values:o,xyMinMax:a}}var WN={lineX:V(YN,0),lineY:V(YN,1),rect:function(t,e,n){return[[t[0][0]-n[0]*e[0][0],t[0][1]-n[0]*e[0][1]],[t[1][0]-n[1]*e[1][0],t[1][1]-n[1]*e[1][1]]]},polygon:function(t,e,n){return O(t,(function(t,i){return[t[0]-n[0]*e[i][0],t[1]-n[1]*e[i][1]]}))}};function YN(t,e,n,i){return[e[0]-i[t]*n[0],e[1]-i[t]*n[1]]}function XN(t){return t?[t[0][1]-t[0][0],t[1][1]-t[1][0]]:[NaN,NaN]}var UN,ZN,jN=P,qN=xr+"toolbox-dataZoom_",KN=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.render=function(t,e,n,i){this.brushController||(this.brushController=new CA(n.getZr()),this.brushController.on("brush",B(this._onBrush,this)).mount()),function(t,e,n,i,r){var o=n.isZoomActive;i&&"takeGlobalCursor"===i.type&&(o="dataZoomSelect"===i.key&&i.dataZoomSelectActive);n.isZoomActive=o,t.setIconStatus("zoom",o?"emphasis":"normal");var a=new NN(JN(t),e,{include:["grid"]}).makePanelOpts(r,(function(t){return t.xAxisDeclared&&!t.yAxisDeclared?"lineX":!t.xAxisDeclared&&t.yAxisDeclared?"lineY":"rect"}));n.brushController.setPanels(a).enableBrush(!(!o||!a.length)&&{brushType:"auto",brushStyle:t.getModel("brushStyle").getItemStyle()})}(t,e,this,i,n),function(t,e){t.setIconStatus("back",function(t){return kN(t).length}(e)>1?"emphasis":"normal")}(t,e)},e.prototype.onclick=function(t,e,n){$N[n].call(this)},e.prototype.remove=function(t,e){this.brushController.unmount()},e.prototype.dispose=function(t,e){this.brushController.dispose()},e.prototype._onBrush=function(t){var e=t.areas;if(t.isEnd&&e.length){var n={},i=this.ecModel;this.brushController.updateCovers([]),new NN(JN(this.model),i,{include:["grid"]}).matchOutputRanges(e,i,(function(t,e,n){if("cartesian2d"===n.type){var i=t.brushType;"rect"===i?(r("x",n,e[0]),r("y",n,e[1])):r({lineX:"x",lineY:"y"}[i],n,e)}})),function(t,e){var n=kN(t);DN(e,(function(e,i){for(var r=n.length-1;r>=0&&!n[r][i];r--);if(r<0){var o=t.queryComponents({mainType:"dataZoom",subType:"select",id:i})[0];if(o){var a=o.getPercentRange();n[0][i]={dataZoomId:i,start:a[0],end:a[1]}}}})),n.push(e)}(i,n),this._dispatchZoomAction(n)}function r(t,e,r){var o=e.getAxis(t),a=o.model,s=function(t,e,n){var i;return n.eachComponent({mainType:"dataZoom",subType:"select"},(function(n){n.getAxisModel(t,e.componentIndex)&&(i=n)})),i}(t,a,i),l=s.findRepresentativeAxisProxy(a).getMinMaxSpan();null==l.minValueSpan&&null==l.maxValueSpan||(r=nA(0,r.slice(),o.scale.getExtent(),0,l.minValueSpan,l.maxValueSpan)),s&&(n[s.id]={dataZoomId:s.id,startValue:r[0],endValue:r[1]})}},e.prototype._dispatchZoomAction=function(t){var e=[];jN(t,(function(t,n){e.push(w(t))})),e.length&&this.api.dispatchAction({type:"dataZoom",from:this.uid,batch:e})},e.getDefaultOption=function(t){return{show:!0,filterMode:"filter",icon:{zoom:"M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1",back:"M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26"},title:t.getLocale(["toolbox","dataZoom","title"]),brushStyle:{borderWidth:0,color:"rgba(210,219,238,0.2)"}}},e}(hN),$N={zoom:function(){var t=!this.isZoomActive;this.api.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:t})},back:function(){this._dispatchZoomAction(function(t){var e=kN(t),n=e[e.length-1];e.length>1&&e.pop();var i={};return DN(n,(function(t,n){for(var r=e.length-1;r>=0;r--)if(t=e[r][n]){i[n]=t;break}})),i}(this.ecModel))}};function JN(t){var e={xAxisIndex:t.get("xAxisIndex",!0),yAxisIndex:t.get("yAxisIndex",!0),xAxisId:t.get("xAxisId",!0),yAxisId:t.get("yAxisId",!0)};return null==e.xAxisIndex&&null==e.xAxisId&&(e.xAxisIndex="all"),null==e.yAxisIndex&&null==e.yAxisId&&(e.yAxisIndex="all"),e}UN="dataZoom",ZN=function(t){var e=t.getComponent("toolbox",0);if(e){var n=e.getModel(["feature","dataZoom"]),i=[],r=Rr(t,JN(n));return jN(r.xAxisModels,(function(t){return o(t,"xAxis","xAxisIndex")})),jN(r.yAxisModels,(function(t){return o(t,"yAxis","yAxisIndex")})),i}function o(t,e,r){var o=t.componentIndex,a={type:"select",$fromToolbox:!0,filterMode:n.get("filterMode",!0)||"filter",id:qN+e+o};a[r]=o,i.push(a)}},rt(null==op.get(UN)&&ZN),op.set(UN,ZN);var QN=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="tooltip",e.dependencies=["axisPointer"],e.defaultOption={zlevel:0,z:60,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",renderMode:"auto",confine:null,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"#fff",shadowBlur:10,shadowColor:"rgba(0, 0, 0, .2)",shadowOffsetX:1,shadowOffsetY:2,borderRadius:4,borderWidth:1,padding:null,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#666",fontSize:14}},e}(zc);function tE(t){var e=t.get("confine");return null!=e?!!e:"richText"===t.get("renderMode")}var eE=["-ms-","-moz-","-o-","-webkit-",""];function nE(t,e,n){var i=[],r=t.get("transitionDuration"),o=t.get("backgroundColor"),s=t.get("shadowBlur"),l=t.get("shadowColor"),u=t.get("shadowOffsetX"),h=t.get("shadowOffsetY"),c=t.getModel("textStyle"),p=tf(t,"html"),d=u+"px "+h+"px "+s+"px "+l;return i.push("box-shadow:"+d),e&&r&&i.push(function(t,e){var n="cubic-bezier(0.23, 1, 0.32, 1)",i="opacity "+t/2+"s "+n+",visibility "+t/2+"s "+n;return e||(i+=",left "+t+"s "+n+",top "+t+"s "+n),O(eE,(function(t){return t+"transition:"+i})).join(";")}(r,n)),o&&(a.canvasSupported?i.push("background-Color:"+o):(i.push("background-Color:#"+tn(o)),i.push("filter:alpha(opacity=70)"))),P(["width","color","radius"],(function(e){var n="border-"+e,r=dc(n),o=t.get(r);null!=o&&i.push(n+":"+o+("color"===e?"":"px"))})),i.push(function(t){var e=[],n=t.get("fontSize"),i=t.getTextColor();i&&e.push("color:"+i),e.push("font:"+t.getFont()),n&&e.push("line-height:"+Math.round(3*n/2)+"px");var r=t.get("textShadowColor"),o=t.get("textShadowBlur")||0,a=t.get("textShadowOffsetX")||0,s=t.get("textShadowOffsetY")||0;return r&&o&&e.push("text-shadow:"+a+"px "+s+"px "+o+"px "+r),P(["decoration","align"],(function(n){var i=t.get(n);i&&e.push("text-"+n+":"+i)})),e.join(";")}(c)),null!=p&&i.push("padding:"+fc(p).join("px ")+"px"),i.join(";")+";"}function iE(t,e,n,i,r){var o=e&&e.painter;if(n){var a=o&&o.getViewportRoot();a&&function(t,e,n,i,r){Zt(Ut,e,i,r,!0)&&Zt(t,n,Ut[0],Ut[1])}(t,a,document.body,i,r)}else{t[0]=i,t[1]=r;var s=o&&o.getViewportRootOffset();s&&(t[0]+=s.offsetLeft,t[1]+=s.offsetTop)}t[2]=t[0]/e.getWidth(),t[3]=t[1]/e.getHeight()}var rE=function(){function t(t,e,n){if(this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._firstShow=!0,this._longHide=!0,a.wxa)return null;var i=document.createElement("div");i.domBelongToZr=!0,this.el=i;var r=this._zr=e.getZr(),o=this._appendToBody=n&&n.appendToBody;iE(this._styleCoord,r,o,e.getWidth()/2,e.getHeight()/2),o?document.body.appendChild(i):t.appendChild(i),this._container=t;var s=this;i.onmouseenter=function(){s._enterable&&(clearTimeout(s._hideTimeout),s._show=!0),s._inContent=!0},i.onmousemove=function(t){if(t=t||window.event,!s._enterable){var e=r.handler;ee(r.painter.getViewportRoot(),t,!0),e.dispatch("mousemove",t)}},i.onmouseleave=function(){s._inContent=!1,s._enterable&&s._show&&s.hideLater(s._hideDelay)}}return t.prototype.update=function(t){var e=this._container,n=e.currentStyle||document.defaultView.getComputedStyle(e),i=e.style;"absolute"!==i.position&&"absolute"!==n.position&&(i.position="relative"),t.get("alwaysShowContent")&&this._moveIfResized(),this.el.className=t.get("className")||""},t.prototype.show=function(t,e){clearTimeout(this._hideTimeout),clearTimeout(this._longHideTimeout);var n=this.el,i=this._styleCoord,r=n.offsetHeight/2;e=Sc(e),n.style.cssText="position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;"+nE(t,!this._firstShow,this._longHide)+";left:"+i[0]+"px;top:"+(i[1]-r)+"px;border-color: "+e+";"+(t.get("extraCssText")||""),n.style.display=n.innerHTML?"block":"none",n.style.pointerEvents=this._enterable?"auto":"none",this._show=!0,this._firstShow=!1,this._longHide=!1},t.prototype.setContent=function(t,e,n,i,r){if(null!=t){var o=this.el;if(H(r)&&"item"===n.get("trigger")&&!tE(n)&&(t+=function(t,e,n){if(!H(n)||"inside"===n)return"";e=Sc(e);var i,r="left"===(i=n)?"right":"right"===i?"left":"top"===i?"bottom":"top",o="",a="";return A(["left","right"],r)>-1?(o=r+":-6px;top:50%;",a="translateY(-50%) rotate("+("left"===r?-225:-45)+"deg)"):(o=r+":-6px;left:50%;",a="translateX(-50%) rotate("+("top"===r?225:45)+"deg)"),'<div style="'+["position:absolute;width:10px;height:10px;",""+o+(a=O(eE,(function(t){return t+"transform:"+a})).join(";"))+";","border-bottom: "+e+" solid 1px;","border-right: "+e+" solid 1px;","background-color: "+t+";","box-shadow: 8px 8px 16px -3px #000;"].join("")+'"></div>'}(n.get("backgroundColor"),i,r)),H(t))o.innerHTML=t;else if(t){o.innerHTML="",F(t)||(t=[t]);for(var a=0;a<t.length;a++)j(t[a])&&t[a].parentNode!==o&&o.appendChild(t[a])}}},t.prototype.setEnterable=function(t){this._enterable=t},t.prototype.getSize=function(){var t=this.el;return[t.clientWidth,t.clientHeight]},t.prototype.moveTo=function(t,e){var n=this._styleCoord;if(iE(n,this._zr,this._appendToBody,t,e),null!=n[0]&&null!=n[1]){var i=this.el.style;i.left=n[0].toFixed(0)+"px",i.top=n[1].toFixed(0)+"px"}},t.prototype._moveIfResized=function(){var t=this._styleCoord[2],e=this._styleCoord[3];this.moveTo(t*this._zr.getWidth(),e*this._zr.getHeight())},t.prototype.hide=function(){var t=this;this.el.style.visibility="hidden",this.el.style.opacity="0",this._show=!1,this._longHideTimeout=setTimeout((function(){return t._longHide=!0}),500)},t.prototype.hideLater=function(t){!this._show||this._inContent&&this._enterable||(t?(this._hideDelay=t,this._show=!1,this._hideTimeout=setTimeout(B(this.hide,this),t)):this.hide())},t.prototype.isShow=function(){return this._show},t.prototype.dispose=function(){this.el.parentNode.removeChild(this.el)},t.prototype.getOuterSize=function(){var t=this.el.clientWidth,e=this.el.clientHeight;if(document.defaultView&&document.defaultView.getComputedStyle){var n=document.defaultView.getComputedStyle(this.el);n&&(t+=parseInt(n.borderLeftWidth,10)+parseInt(n.borderRightWidth,10),e+=parseInt(n.borderTopWidth,10)+parseInt(n.borderBottomWidth,10))}return{width:t,height:e}},t}(),oE=function(){function t(t){this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._zr=t.getZr(),lE(this._styleCoord,this._zr,t.getWidth()/2,t.getHeight()/2)}return t.prototype.update=function(t){t.get("alwaysShowContent")&&this._moveIfResized()},t.prototype.show=function(){this._hideTimeout&&clearTimeout(this._hideTimeout),this.el.show(),this._show=!0},t.prototype.setContent=function(t,e,n,i,r){X(t)&&mr(""),this.el&&this._zr.remove(this.el);var o=n.getModel("textStyle");this.el=new hs({style:{rich:e.richTextStyles,text:t,lineHeight:22,backgroundColor:n.get("backgroundColor"),borderRadius:n.get("borderRadius"),borderWidth:1,borderColor:i,shadowColor:n.get("shadowColor"),shadowBlur:n.get("shadowBlur"),shadowOffsetX:n.get("shadowOffsetX"),shadowOffsetY:n.get("shadowOffsetY"),textShadowColor:o.get("textShadowColor"),textShadowBlur:o.get("textShadowBlur")||0,textShadowOffsetX:o.get("textShadowOffsetX")||0,textShadowOffsetY:o.get("textShadowOffsetY")||0,fill:n.get(["textStyle","color"]),padding:tf(n,"richText"),verticalAlign:"top",align:"left"},z:n.get("z")}),this._zr.add(this.el);var a=this;this.el.on("mouseover",(function(){a._enterable&&(clearTimeout(a._hideTimeout),a._show=!0),a._inContent=!0})),this.el.on("mouseout",(function(){a._enterable&&a._show&&a.hideLater(a._hideDelay),a._inContent=!1}))},t.prototype.setEnterable=function(t){this._enterable=t},t.prototype.getSize=function(){var t=this.el,e=this.el.getBoundingRect(),n=sE(t.style);return[e.width+n.left+n.right,e.height+n.top+n.bottom]},t.prototype.moveTo=function(t,e){var n=this.el;if(n){var i=this._styleCoord;lE(i,this._zr,t,e),t=i[0],e=i[1];var r=n.style,o=aE(r.borderWidth||0),a=sE(r);n.x=t+o+a.left,n.y=e+o+a.top,n.markRedraw()}},t.prototype._moveIfResized=function(){var t=this._styleCoord[2],e=this._styleCoord[3];this.moveTo(t*this._zr.getWidth(),e*this._zr.getHeight())},t.prototype.hide=function(){this.el&&this.el.hide(),this._show=!1},t.prototype.hideLater=function(t){!this._show||this._inContent&&this._enterable||(t?(this._hideDelay=t,this._show=!1,this._hideTimeout=setTimeout(B(this.hide,this),t)):this.hide())},t.prototype.isShow=function(){return this._show},t.prototype.getOuterSize=function(){var t=this.getSize();return{width:t[0],height:t[1]}},t.prototype.dispose=function(){this._zr.remove(this.el)},t}();function aE(t){return Math.max(0,t)}function sE(t){var e=aE(t.shadowBlur||0),n=aE(t.shadowOffsetX||0),i=aE(t.shadowOffsetY||0);return{left:aE(e-n),right:aE(e+n),top:aE(e-i),bottom:aE(e+i)}}function lE(t,e,n,i){t[0]=n,t[1]=i,t[2]=t[0]/e.getWidth(),t[3]=t[1]/e.getHeight()}var uE=B,hE=P,cE=qi,pE=new ss({shape:{x:-1,y:-1,width:2,height:2}}),dE=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(t,e){if(!a.node){var n,i=t.getComponent("tooltip"),r=i.get("renderMode");this._renderMode="auto"===(n=r)?a.domSupported?"html":"richText":n||"html",this._tooltipContent="richText"===this._renderMode?new oE(e):new rE(e.getDom(),e,{appendToBody:i.get("appendToBody",!0)})}},e.prototype.render=function(t,e,n){if(!a.node){this.group.removeAll(),this._tooltipModel=t,this._ecModel=e,this._api=n,this._alwaysShowContent=t.get("alwaysShowContent");var i=this._tooltipContent;i.update(t),i.setEnterable(t.get("enterable")),this._initGlobalListener(),this._keepShow()}},e.prototype._initGlobalListener=function(){var t=this._tooltipModel.get("triggerOn");vO("itemTooltip",this._api,uE((function(e,n,i){"none"!==t&&(t.indexOf(e)>=0?this._tryShow(n,i):"leave"===e&&this._hide(i))}),this))},e.prototype._keepShow=function(){var t=this._tooltipModel,e=this._ecModel,n=this._api;if(null!=this._lastX&&null!=this._lastY&&"none"!==t.get("triggerOn")){var i=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout((function(){!n.isDisposed()&&i.manuallyShowTip(t,e,n,{x:i._lastX,y:i._lastY,dataByCoordSys:i._lastDataByCoordSys})}))}},e.prototype.manuallyShowTip=function(t,e,n,i){if(i.from!==this.uid&&!a.node){var r=gE(i,n);this._ticket="";var o=i.dataByCoordSys;if(i.tooltip&&null!=i.x&&null!=i.y){var s=pE;s.x=i.x,s.y=i.y,s.update(),s.tooltip=i.tooltip,this._tryShow({offsetX:i.x,offsetY:i.y,target:s},r)}else if(o)this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,dataByCoordSys:o,tooltipOption:i.tooltipOption},r);else if(null!=i.seriesIndex){if(this._manuallyAxisShowTip(t,e,n,i))return;var l=wO(i,e),u=l.point[0],h=l.point[1];null!=u&&null!=h&&this._tryShow({offsetX:u,offsetY:h,position:i.position,target:l.el},r)}else null!=i.x&&null!=i.y&&(n.dispatchAction({type:"updateAxisPointer",x:i.x,y:i.y}),this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,target:n.getZr().findHover(i.x,i.y).target},r))}},e.prototype.manuallyHideTip=function(t,e,n,i){var r=this._tooltipContent;!this._alwaysShowContent&&this._tooltipModel&&r.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=this._lastDataByCoordSys=null,i.from!==this.uid&&this._hide(gE(i,n))},e.prototype._manuallyAxisShowTip=function(t,e,n,i){var r=i.seriesIndex,o=i.dataIndex,a=e.getComponent("axisPointer").coordSysAxesInfo;if(null!=r&&null!=o&&null!=a){var s=e.getSeriesByIndex(r);if(s)if("axis"===fE([s.getData().getItemModel(o),s,(s.coordinateSystem||{}).model,t]).get("trigger"))return n.dispatchAction({type:"updateAxisPointer",seriesIndex:r,dataIndex:o,position:i.position}),!0}},e.prototype._tryShow=function(t,e){var n=t.target;if(this._tooltipModel){this._lastX=t.offsetX,this._lastY=t.offsetY;var i=t.dataByCoordSys;i&&i.length?this._showAxisTooltip(i,t):n&&ty(n,(function(t){return null!=ms(t).dataIndex}),!0)?(this._lastDataByCoordSys=null,this._showSeriesItemTooltip(t,n,e)):n&&n.tooltip?(this._lastDataByCoordSys=null,this._showComponentItemTooltip(t,n,e)):(this._lastDataByCoordSys=null,this._hide(e))}},e.prototype._showOrMove=function(t,e){var n=t.get("showDelay");e=B(e,this),clearTimeout(this._showTimout),n>0?this._showTimout=setTimeout(e,n):e()},e.prototype._showAxisTooltip=function(t,e){var n=this._ecModel,i=this._tooltipModel,r=[e.offsetX,e.offsetY],o=fE([e.tooltipOption,i]),a=this._renderMode,s=[],l=Ud("section",{blocks:[],noHeader:!0}),u=[],h=new ef;hE(t,(function(t){hE(t.dataByAxis,(function(t){var e=n.getComponent(t.axisDim+"Axis",t.axisIndex),i=t.value;if(e&&null!=i){var r=rO(i,e.axis,n,t.seriesDataIndices,t.valueLabelOpt),o=Ud("section",{header:r,noHeader:!ot(r),sortBlocks:!0,blocks:[]});l.blocks.push(o),P(t.seriesDataIndices,(function(l){var c=n.getSeriesByIndex(l.seriesIndex),p=l.dataIndexInside,d=c.getDataParams(p);d.axisDim=t.axisDim,d.axisIndex=t.axisIndex,d.axisType=t.axisType,d.axisId=t.axisId,d.axisValue=X_(e.axis,{value:i}),d.axisValueLabel=r,d.marker=h.makeTooltipMarker("item",Sc(d.color),a);var f=_d(c.formatTooltip(p,!0,null));f.markupFragment&&o.blocks.push(f.markupFragment),f.markupText&&u.push(f.markupText),s.push(d)}))}}))})),l.blocks.reverse(),u.reverse();var c=e.position,p=o.get("order"),d=qd(l,h,a,p,n.get("useUTC"),o.get("textStyle"));d&&u.unshift(d);var f="richText"===a?"\n\n":"<br/>",g=u.join(f);this._showOrMove(o,(function(){this._updateContentNotChangedOnAxis(t)?this._updatePosition(o,c,r[0],r[1],this._tooltipContent,s):this._showTooltipContent(o,g,s,Math.random()+"",r[0],r[1],c,null,h)}))},e.prototype._showSeriesItemTooltip=function(t,e,n){var i=ty(e,(function(t){return null!=ms(t).dataIndex}),!0),r=this._ecModel,o=ms(i),a=o.seriesIndex,s=r.getSeriesByIndex(a),l=o.dataModel||s,u=o.dataIndex,h=o.dataType,c=l.getData(h),p=this._renderMode,d=fE([c.getItemModel(u),l,s&&(s.coordinateSystem||{}).model,this._tooltipModel]),f=d.get("trigger");if(null==f||"item"===f){var g=l.getDataParams(u,h),y=new ef;g.marker=y.makeTooltipMarker("item",Sc(g.color),p);var v=_d(l.formatTooltip(u,!1,h)),m=d.get("order"),_=v.markupFragment?qd(v.markupFragment,y,p,m,r.get("useUTC"),d.get("textStyle")):v.markupText,x="item_"+l.name+"_"+u;this._showOrMove(d,(function(){this._showTooltipContent(d,_,g,x,t.offsetX,t.offsetY,t.position,t.target,y)})),n({type:"showTip",dataIndexInside:u,dataIndex:c.getRawIndex(u),seriesIndex:a,from:this.uid})}},e.prototype._showComponentItemTooltip=function(t,e,n){var i=e.tooltip;if(H(i)){i={content:i,formatter:i}}var r=new Ih(i,this._tooltipModel,this._ecModel),o=r.get("content"),a=Math.random()+"",s=new ef;this._showOrMove(r,(function(){this._showTooltipContent(r,o,r.get("formatterParams")||{},a,t.offsetX,t.offsetY,t.position,e,s)})),n({type:"showTip",from:this.uid})},e.prototype._showTooltipContent=function(t,e,n,i,r,o,a,s,l){if(this._ticket="",t.get("showContent")&&t.get("show")){var u=this._tooltipContent,h=t.get("formatter");a=a||t.get("position");var c=e,p=this._getNearestPoint([r,o],n,t.get("trigger"),t.get("borderColor"));if(h&&H(h)){var d=t.ecModel.get("useUTC"),f=F(n)?n[0]:n;c=h,f&&f.axisType&&f.axisType.indexOf("time")>=0&&(c=qh(f.axisValue,c,d)),c=bc(c,n,!0)}else if(G(h)){var g=uE((function(e,i){e===this._ticket&&(u.setContent(i,l,t,p.color,a),this._updatePosition(t,a,r,o,u,n,s))}),this);this._ticket=i,c=h(n,i,g)}u.setContent(c,l,t,p.color,a),u.show(t,p.color),this._updatePosition(t,a,r,o,u,n,s)}},e.prototype._getNearestPoint=function(t,e,n,i){return"axis"===n||F(e)?{color:i||("html"===this._renderMode?"#fff":"none")}:F(e)?void 0:{color:i||e.color||e.borderColor}},e.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=r.getSize(),h=t.get("align"),c=t.get("verticalAlign"),p=a&&a.getBoundingRect().clone();if(a&&p.applyTransform(a.transform),G(e)&&(e=e([n,i],o,r.el,p,{viewSize:[s,l],contentSize:u.slice()})),F(e))n=cE(e[0],s),i=cE(e[1],l);else if(X(e)){var d=e;d.width=u[0],d.height=u[1];var f=Lc(d,{width:s,height:l});n=f.x,i=f.y,h=null,c=null}else if(H(e)&&a){var g=function(t,e,n){var i=n[0],r=n[1],o=10,a=5,s=0,l=0,u=e.width,h=e.height;switch(t){case"inside":s=e.x+u/2-i/2,l=e.y+h/2-r/2;break;case"top":s=e.x+u/2-i/2,l=e.y-r-o;break;case"bottom":s=e.x+u/2-i/2,l=e.y+h+o;break;case"left":s=e.x-i-o-a,l=e.y+h/2-r/2;break;case"right":s=e.x+u+o+a,l=e.y+h/2-r/2}return[s,l]}(e,p,u);n=g[0],i=g[1]}else{g=function(t,e,n,i,r,o,a){var s=n.getOuterSize(),l=s.width,u=s.height;null!=o&&(t+l+o+2>i?t-=l+o:t+=o);null!=a&&(e+u+a>r?e-=u+a:e+=a);return[t,e]}(n,i,r,s,l,h?null:20,c?null:20);n=g[0],i=g[1]}if(h&&(n-=yE(h)?u[0]/2:"right"===h?u[0]:0),c&&(i-=yE(c)?u[1]/2:"bottom"===c?u[1]:0),tE(t)){g=function(t,e,n,i,r){var o=n.getOuterSize(),a=o.width,s=o.height;return t=Math.min(t+a,i)-a,e=Math.min(e+s,r)-s,t=Math.max(t,0),e=Math.max(e,0),[t,e]}(n,i,r,s,l);n=g[0],i=g[1]}r.moveTo(n,i)},e.prototype._updateContentNotChangedOnAxis=function(t){var e=this._lastDataByCoordSys,n=!!e&&e.length===t.length;return n&&hE(e,(function(e,i){var r=e.dataByAxis||[],o=(t[i]||{}).dataByAxis||[];(n=n&&r.length===o.length)&&hE(r,(function(t,e){var i=o[e]||{},r=t.seriesDataIndices||[],a=i.seriesDataIndices||[];(n=n&&t.value===i.value&&t.axisType===i.axisType&&t.axisId===i.axisId&&r.length===a.length)&&hE(r,(function(t,e){var i=a[e];n=n&&t.seriesIndex===i.seriesIndex&&t.dataIndex===i.dataIndex}))}))})),this._lastDataByCoordSys=t,!!n},e.prototype._hide=function(t){this._lastDataByCoordSys=null,t({type:"hideTip",from:this.uid})},e.prototype.dispose=function(t,e){a.node||(this._tooltipContent.dispose(),xO("itemTooltip",e))},e.type="tooltip",e}(ff);function fE(t){for(var e=t.pop();t.length;){var n=t.pop();n&&(n instanceof Ih&&(n=n.get("tooltip",!0)),H(n)&&(n={formatter:n}),e=new Ih(n,e,e.ecModel))}return e}function gE(t,e){return t.dispatchAction||B(e.dispatchAction,e)}function yE(t){return"center"===t||"middle"===t}var vE=["rect","polygon","keep","clear"];function mE(t,e){var n=br(t?t.brush:[]);if(n.length){var i=[];P(n,(function(t){var e=t.hasOwnProperty("toolbox")?t.toolbox:[];e instanceof Array&&(i=i.concat(e))}));var r=t&&t.toolbox;F(r)&&(r=r[0]),r||(r={feature:{}},t.toolbox=[r]);var o=r.feature||(r.feature={}),a=o.brush||(o.brush={}),s=a.type||(a.type=[]);s.push.apply(s,i),function(t){var e={};P(t,(function(t){e[t]=1})),t.length=0,P(e,(function(e,n){t.push(n)}))}(s),e&&!s.length&&s.push.apply(s,vE)}}var _E=P;function xE(t){if(t)for(var e in t)if(t.hasOwnProperty(e))return!0}function bE(t,e,n){var i={};return _E(e,(function(e){var r,o=i[e]=((r=function(){}).prototype.__hidden=r.prototype,new r);_E(t[e],(function(t,i){if(KI.isValidType(i)){var r={type:i,visual:t};n&&n(r,e),o[i]=new KI(r),"opacity"===i&&((r=w(r)).type="colorAlpha",o.__hidden.__alphaForOpacity=new KI(r))}}))})),i}function wE(t,e,n){var i;P(n,(function(t){e.hasOwnProperty(t)&&xE(e[t])&&(i=!0)})),i&&P(n,(function(n){e.hasOwnProperty(n)&&xE(e[n])?t[n]=w(e[n]):delete t[n]}))}var SE={lineX:ME(0),lineY:ME(1),rect:{point:function(t,e,n){return t&&n.boundingRect.contain(t[0],t[1])},rect:function(t,e,n){return t&&n.boundingRect.intersect(t)}},polygon:{point:function(t,e,n){return t&&n.boundingRect.contain(t[0],t[1])&&tx(n.range,t[0],t[1])},rect:function(t,e,n){var i=n.range;if(!t||i.length<=1)return!1;var r=t.x,o=t.y,a=t.width,s=t.height,l=i[0];return!!(tx(i,r,o)||tx(i,r+a,o)||tx(i,r,o+s)||tx(i,r+a,o+s)||En.create(t).contain(l[0],l[1])||qu(r,o,r+a,o,i)||qu(r,o,r,o+s,i)||qu(r+a,o,r+a,o+s,i)||qu(r,o+s,r+a,o+s,i))||void 0}}};function ME(t){var e=["x","y"],n=["width","height"];return{point:function(e,n,i){if(e){var r=i.range;return IE(e[t],r)}},rect:function(i,r,o){if(i){var a=o.range,s=[i[e[t]],i[e[t]]+i[n[t]]];return s[1]<s[0]&&s.reverse(),IE(s[0],a)||IE(s[1],a)||IE(a[0],s)||IE(a[1],s)}}}}function IE(t,e){return e[0]<=t&&t<=e[1]}var TE=["inBrush","outOfBrush"],CE="__ecBrushSelect",AE="__ecInBrushSelectEvent";function DE(t){t.eachComponent({mainType:"brush"},(function(e){(e.brushTargetManager=new NN(e.option,t)).setInputRanges(e.areas,t)}))}function LE(t,e,n){var i,r,o=[];t.eachComponent({mainType:"brush"},(function(t){n&&"takeGlobalCursor"===n.type&&t.setBrushOption("brush"===n.key?n.brushOption:{brushType:!1})})),DE(t),t.eachComponent({mainType:"brush"},(function(e,n){var a={brushId:e.id,brushIndex:n,brushName:e.name,areas:w(e.areas),selected:[]};o.push(a);var s=e.option,l=s.brushLink,u=[],h=[],c=[],p=!1;n||(i=s.throttleType,r=s.throttleDelay);var d=O(e.areas,(function(t){var e=OE[t.brushType],n=T({boundingRect:e?e(t):void 0},t);return n.selectors=function(t){var e=t.brushType,n={point:function(i){return SE[e].point(i,n,t)},rect:function(i){return SE[e].rect(i,n,t)}};return n}(n),n})),f=bE(e.option,TE,(function(t){t.mappingMethod="fixed"}));function g(t){return"all"===l||!!u[t]}function y(t){return!!t.length}F(l)&&P(l,(function(t){u[t]=1})),t.eachSeries((function(n,i){var r=c[i]=[];"parallel"===n.subType?function(t,e){var n=t.coordinateSystem;p=p||n.hasAxisBrushed(),g(e)&&n.eachActiveState(t.getData(),(function(t,e){"active"===t&&(h[e]=1)}))}(n,i):function(n,i,r){if(!n.brushSelector||function(t,e){var n=t.option.seriesIndex;return null!=n&&"all"!==n&&(F(n)?A(n,e)<0:e!==n)}(e,i))return;if(P(d,(function(i){e.brushTargetManager.controlSeries(i,n,t)&&r.push(i),p=p||y(r)})),g(i)&&y(r)){var o=n.getData();o.each((function(t){PE(n,r,o,t)&&(h[t]=1)}))}}(n,i,r)})),t.eachSeries((function(t,e){var n={seriesId:t.id,seriesIndex:e,seriesName:t.name,dataIndex:[]};a.selected.push(n);var i=c[e],r=t.getData(),o=g(e)?function(t){return h[t]?(n.dataIndex.push(r.getRawIndex(t)),"inBrush"):"outOfBrush"}:function(e){return PE(t,i,r,e)?(n.dataIndex.push(r.getRawIndex(e)),"inBrush"):"outOfBrush"};(g(e)?p:y(i))&&function(t,e,n,i,r,o){var a,s={};function l(t){return fg(n,a,t)}function u(t,e){yg(n,a,t,e)}function h(t,h){a=null==o?t:h;var c=n.getRawDataItem(a);if(!c||!1!==c.visualMap)for(var p=i.call(r,t),d=e[p],f=s[p],g=0,y=f.length;g<y;g++){var v=f[g];d[v]&&d[v].applyVisual(t,l,u)}}P(t,(function(t){var n=KI.prepareVisualTypes(e[t]);s[t]=n})),null==o?n.each(h):n.each([o],h)}(TE,f,r,o)}))})),function(t,e,n,i,r){if(!r)return;var o=t.getZr();if(o[AE])return;o.__ecBrushSelect||(o.__ecBrushSelect=kE);Af(o,CE,n,e)(t,i)}(e,i,r,o,n)}function kE(t,e){if(!t.isDisposed()){var n=t.getZr();n[AE]=!0,t.dispatchAction({type:"brushSelect",batch:e}),n[AE]=!1}}function PE(t,e,n,i){for(var r=0,o=e.length;r<o;r++){var a=e[r];if(t.brushSelector(i,n,a.selectors,a))return!0}}var OE={rect:function(t){return RE(t.range)},polygon:function(t){for(var e,n=t.range,i=0,r=n.length;i<r;i++){e=e||[[1/0,-1/0],[1/0,-1/0]];var o=n[i];o[0]<e[0][0]&&(e[0][0]=o[0]),o[0]>e[0][1]&&(e[0][1]=o[0]),o[1]<e[1][0]&&(e[1][0]=o[1]),o[1]>e[1][1]&&(e[1][1]=o[1])}return e&&RE(e)}};function RE(t){return new En(t[0][0],t[1][0],t[0][1]-t[0][0],t[1][1]-t[1][0])}var NE=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(t,e){this.ecModel=t,this.api=e,this.model,(this._brushController=new CA(e.getZr())).on("brush",B(this._onBrush,this)).mount()},e.prototype.render=function(t,e,n,i){this.model=t,this._updateController(t,e,n,i)},e.prototype.updateTransform=function(t,e,n,i){DE(e),this._updateController(t,e,n,i)},e.prototype.updateVisual=function(t,e,n,i){this.updateTransform(t,e,n,i)},e.prototype.updateView=function(t,e,n,i){this._updateController(t,e,n,i)},e.prototype._updateController=function(t,e,n,i){(!i||i.$from!==t.id)&&this._brushController.setPanels(t.brushTargetManager.makePanelOpts(n)).enableBrush(t.brushOption).updateCovers(t.areas.slice())},e.prototype.dispose=function(){this._brushController.dispose()},e.prototype._onBrush=function(t){var e=this.model.id,n=this.model.brushTargetManager.setOutputRanges(t.areas,this.ecModel);(!t.isEnd||t.removeOnClick)&&this.api.dispatchAction({type:"brush",brushId:e,areas:w(n),$from:e}),t.isEnd&&this.api.dispatchAction({type:"brushEnd",brushId:e,areas:w(n),$from:e})},e.type="brush",e}(ff),EE=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.areas=[],n.brushOption={},n}return n(e,t),e.prototype.optionUpdated=function(t,e){var n=this.option;!e&&wE(n,t,["inBrush","outOfBrush"]);var i=n.inBrush=n.inBrush||{};n.outOfBrush=n.outOfBrush||{color:"#ddd"},i.hasOwnProperty("liftZ")||(i.liftZ=5)},e.prototype.setAreas=function(t){t&&(this.areas=O(t,(function(t){return zE(this.option,t)}),this))},e.prototype.setBrushOption=function(t){this.brushOption=zE(this.option,t),this.brushType=this.brushOption.brushType},e.type="brush",e.dependencies=["geo","grid","xAxis","yAxis","parallel","series"],e.defaultOption={seriesIndex:"all",brushType:"rect",brushMode:"single",transformable:!0,brushStyle:{borderWidth:1,color:"rgba(210,219,238,0.3)",borderColor:"#D2DBEE"},throttleType:"fixRate",throttleDelay:0,removeOnClick:!0,z:1e4},e}(zc);function zE(t,e){return S({brushType:t.brushType,brushMode:t.brushMode,transformable:t.transformable,brushStyle:new Ih(t.brushStyle).getItemStyle(),removeOnClick:t.removeOnClick,z:t.z},e,!0)}var BE=["rect","polygon","lineX","lineY","keep","clear"],VE=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.render=function(t,e,n){var i,r,o;e.eachComponent({mainType:"brush"},(function(t){i=t.brushType,r=t.brushOption.brushMode||"single",o=o||!!t.areas.length})),this._brushType=i,this._brushMode=r,P(t.get("type",!0),(function(e){t.setIconStatus(e,("keep"===e?"multiple"===r:"clear"===e?o:e===i)?"emphasis":"normal")}))},e.prototype.updateView=function(t,e,n){this.render(t,e,n)},e.prototype.getIcons=function(){var t=this.model,e=t.get("icon",!0),n={};return P(t.get("type",!0),(function(t){e[t]&&(n[t]=e[t])})),n},e.prototype.onclick=function(t,e,n){var i=this._brushType,r=this._brushMode;"clear"===n?(e.dispatchAction({type:"axisAreaSelect",intervals:[]}),e.dispatchAction({type:"brush",command:"clear",areas:[]})):e.dispatchAction({type:"takeGlobalCursor",key:"brush",brushOption:{brushType:"keep"===n?i:i!==n&&n,brushMode:"keep"===n?"multiple"===r?"single":"multiple":r}})},e.getDefaultOption=function(t){return{show:!0,type:BE.slice(),icon:{rect:"M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13",polygon:"M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2",lineX:"M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4",lineY:"M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4",keep:"M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z",clear:"M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2"},title:t.getLocale(["toolbox","brush","title"])}},e}(hN);var FE=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.layoutMode={type:"box",ignoreSize:!0},n}return n(e,t),e.type="title",e.defaultOption={zlevel:0,z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bold",color:"#464646"},subtextStyle:{fontSize:12,color:"#6E7079"}},e}(zc),GE=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){if(this.group.removeAll(),t.get("show")){var i=this.group,r=t.getModel("textStyle"),o=t.getModel("subtextStyle"),a=t.get("textAlign"),s=tt(t.get("textBaseline"),t.get("textVerticalAlign")),l=new hs({style:rh(r,{text:t.get("text"),fill:r.getTextColor()},{disableBox:!0}),z2:10}),u=l.getBoundingRect(),h=t.get("subtext"),c=new hs({style:rh(o,{text:h,fill:o.getTextColor(),y:u.height+t.get("itemGap"),verticalAlign:"top"},{disableBox:!0}),z2:10}),p=t.get("link"),d=t.get("sublink"),f=t.get("triggerEvent",!0);l.silent=!p&&!f,c.silent=!d&&!f,p&&l.on("click",(function(){Mc(p,"_"+t.get("target"))})),d&&c.on("click",(function(){Mc(d,"_"+t.get("subtarget"))})),ms(l).eventData=ms(c).eventData=f?{componentType:"title",componentIndex:t.componentIndex}:null,i.add(l),h&&i.add(c);var g=i.getBoundingRect(),y=t.getBoxLayoutParams();y.width=g.width,y.height=g.height;var v=Lc(y,{width:n.getWidth(),height:n.getHeight()},t.get("padding"));a||("middle"===(a=t.get("left")||t.get("right"))&&(a="center"),"right"===a?v.x+=v.width:"center"===a&&(v.x+=v.width/2)),s||("center"===(s=t.get("top")||t.get("bottom"))&&(s="middle"),"bottom"===s?v.y+=v.height:"middle"===s&&(v.y+=v.height/2),s=s||"top"),i.x=v.x,i.y=v.y,i.markRedraw();var m={align:a,verticalAlign:s};l.setStyle(m),c.setStyle(m),g=i.getBoundingRect();var _=v.margin,x=t.getItemStyle(["color","opacity"]);x.fill=t.get("backgroundColor");var b=new ss({shape:{x:g.x-_[3],y:g.y-_[0],width:g.width+_[1]+_[3],height:g.height+_[0]+_[2],r:t.get("borderRadius")},style:x,subPixelOptimize:!0,silent:!0});i.add(b)}},e.type="title",e}(ff);var HE=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.layoutMode="box",n}return n(e,t),e.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n),this._initData()},e.prototype.mergeOption=function(e){t.prototype.mergeOption.apply(this,arguments),this._initData()},e.prototype.setCurrentIndex=function(t){null==t&&(t=this.option.currentIndex);var e=this._data.count();this.option.loop?t=(t%e+e)%e:(t>=e&&(t=e-1),t<0&&(t=0)),this.option.currentIndex=t},e.prototype.getCurrentIndex=function(){return this.option.currentIndex},e.prototype.isIndexMax=function(){return this.getCurrentIndex()>=this._data.count()-1},e.prototype.setPlayState=function(t){this.option.autoPlay=!!t},e.prototype.getPlayState=function(){return!!this.option.autoPlay},e.prototype._initData=function(){var t,e=this.option,n=e.data||[],i=e.axisType,r=this._names=[];"category"===i?(t=[],P(n,(function(e,n){var i,o=Ar(Mr(e),"");X(e)?(i=w(e)).value=n:i=n,t.push(i),r.push(o)}))):t=n;var o={category:"ordinal",time:"time",value:"number"}[i]||"number";(this._data=new Rm([{name:"value",type:o}],this)).initData(t,r)},e.prototype.getData=function(){return this._data},e.prototype.getCategories=function(){if("category"===this.get("axisType"))return this._names.slice()},e.type="timeline",e.defaultOption={zlevel:0,z:4,show:!0,axisType:"time",realtime:!0,left:"20%",top:null,right:"20%",bottom:0,width:null,height:40,padding:5,controlPosition:"left",autoPlay:!1,rewind:!1,loop:!0,playInterval:2e3,currentIndex:0,itemStyle:{},label:{color:"#000"},data:[]},e}(zc),WE=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="timeline.slider",e.defaultOption=Ah(HE.defaultOption,{backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,orient:"horizontal",inverse:!1,tooltip:{trigger:"item"},symbol:"circle",symbolSize:12,lineStyle:{show:!0,width:2,color:"#DAE1F5"},label:{position:"auto",show:!0,interval:"auto",rotate:0,color:"#A4B1D7"},itemStyle:{color:"#A4B1D7",borderWidth:1},checkpointStyle:{symbol:"circle",symbolSize:15,color:"#316bf3",borderColor:"#fff",borderWidth:2,shadowBlur:2,shadowOffsetX:1,shadowOffsetY:1,shadowColor:"rgba(0, 0, 0, 0.3)",animation:!0,animationDuration:300,animationEasing:"quinticInOut"},controlStyle:{show:!0,showPlayBtn:!0,showPrevBtn:!0,showNextBtn:!0,itemSize:24,itemGap:12,position:"left",playIcon:"path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z",stopIcon:"path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z",nextIcon:"M2,18.5A1.52,1.52,0,0,1,.92,18a1.49,1.49,0,0,1,0-2.12L7.81,9.36,1,3.11A1.5,1.5,0,1,1,3,.89l8,7.34a1.48,1.48,0,0,1,.49,1.09,1.51,1.51,0,0,1-.46,1.1L3,18.08A1.5,1.5,0,0,1,2,18.5Z",prevIcon:"M10,.5A1.52,1.52,0,0,1,11.08,1a1.49,1.49,0,0,1,0,2.12L4.19,9.64,11,15.89a1.5,1.5,0,1,1-2,2.22L1,10.77A1.48,1.48,0,0,1,.5,9.68,1.51,1.51,0,0,1,1,8.58L9,.92A1.5,1.5,0,0,1,10,.5Z",prevBtnSize:18,nextBtnSize:18,color:"#A4B1D7",borderColor:"#A4B1D7",borderWidth:1},emphasis:{label:{show:!0,color:"#6f778d"},itemStyle:{color:"#316BF3"},controlStyle:{color:"#316BF3",borderColor:"#316BF3",borderWidth:2}},progress:{lineStyle:{color:"#316BF3"},itemStyle:{color:"#316BF3"},label:{color:"#6f778d"}},data:[]}),e}(HE);L(WE,md.prototype);var YE=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="timeline",e}(ff),XE=function(t){function e(e,n,i,r){var o=t.call(this,e,n,i)||this;return o.type=r||"value",o}return n(e,t),e.prototype.getLabelModel=function(){return this.model.getModel("label")},e.prototype.isHorizontal=function(){return"horizontal"===this.model.get("orient")},e}(_x),UE=Math.PI,ZE=Pr(),jE=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(t,e){this.api=e},e.prototype.render=function(t,e,n){if(this.model=t,this.api=n,this.ecModel=e,this.group.removeAll(),t.get("show",!0)){var i=this._layout(t,n),r=this._createGroup("_mainGroup"),o=this._createGroup("_labelGroup"),a=this._axis=this._createAxis(i,t);t.formatTooltip=function(t){return Ud("nameValue",{noName:!0,value:a.scale.getLabel({value:t})})},P(["AxisLine","AxisTick","Control","CurrentPointer"],(function(e){this["_render"+e](i,r,a,t)}),this),this._renderAxisLabel(i,o,a,t),this._position(i,t)}this._doPlayStop(),this._updateTicksStatus()},e.prototype.remove=function(){this._clearTimer(),this.group.removeAll()},e.prototype.dispose=function(){this._clearTimer()},e.prototype._layout=function(t,e){var n,i,r,o,a=t.get(["label","position"]),s=t.get("orient"),l=function(t,e){return Lc(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()},t.get("padding"))}(t,e),u={horizontal:"center",vertical:(n=null==a||"auto"===a?"horizontal"===s?l.y+l.height/2<e.getHeight()/2?"-":"+":l.x+l.width/2<e.getWidth()/2?"+":"-":H(a)?{horizontal:{top:"-",bottom:"+"},vertical:{left:"-",right:"+"}}[s][a]:a)>=0||"+"===n?"left":"right"},h={horizontal:n>=0||"+"===n?"top":"bottom",vertical:"middle"},c={horizontal:0,vertical:UE/2},p="vertical"===s?l.height:l.width,d=t.getModel("controlStyle"),f=d.get("show",!0),g=f?d.get("itemSize"):0,y=f?d.get("itemGap"):0,v=g+y,m=t.get(["label","rotate"])||0;m=m*UE/180;var _=d.get("position",!0),x=f&&d.get("showPlayBtn",!0),b=f&&d.get("showPrevBtn",!0),w=f&&d.get("showNextBtn",!0),S=0,M=p;"left"===_||"bottom"===_?(x&&(i=[0,0],S+=v),b&&(r=[S,0],S+=v),w&&(o=[M-g,0],M-=v)):(x&&(i=[M-g,0],M-=v),b&&(r=[0,0],S+=v),w&&(o=[M-g,0],M-=v));var I=[S,M];return t.get("inverse")&&I.reverse(),{viewRect:l,mainLength:p,orient:s,rotation:c[s],labelRotation:m,labelPosOpt:n,labelAlign:t.get(["label","align"])||u[s],labelBaseline:t.get(["label","verticalAlign"])||t.get(["label","baseline"])||h[s],playPosition:i,prevBtnPosition:r,nextBtnPosition:o,axisExtent:I,controlSize:g,controlGap:y}},e.prototype._position=function(t,e){var n=this._mainGroup,i=this._labelGroup,r=t.viewRect;if("vertical"===t.orient){var o=[1,0,0,1,0,0],a=r.x,s=r.y+r.height;xe(o,o,[-a,-s]),be(o,o,-UE/2),xe(o,o,[a,s]),(r=r.clone()).applyTransform(o)}var l=y(r),u=y(n.getBoundingRect()),h=y(i.getBoundingRect()),c=[n.x,n.y],p=[i.x,i.y];p[0]=c[0]=l[0][0];var d,f=t.labelPosOpt;null==f||H(f)?(v(c,u,l,1,d="+"===f?0:1),v(p,h,l,1,1-d)):(v(c,u,l,1,d=f>=0?0:1),p[1]=c[1]+f);function g(t){t.originX=l[0][0]-t.x,t.originY=l[1][0]-t.y}function y(t){return[[t.x,t.x+t.width],[t.y,t.y+t.height]]}function v(t,e,n,i,r){t[i]+=n[i][r]-e[i][r]}n.setPosition(c),i.setPosition(p),n.rotation=i.rotation=t.rotation,g(n),g(i)},e.prototype._createAxis=function(t,e){var n=e.getData(),i=e.get("axisType"),r=function(t,e){if(e=e||t.get("type"))switch(e){case"category":return new e_({ordinalMeta:t.getCategories(),extent:[1/0,-1/0]});case"time":return new v_({locale:t.ecModel.getLocaleModel(),useUTC:t.ecModel.get("useUTC")});default:return new i_}}(e,i);r.getTicks=function(){return n.mapArray(["value"],(function(t){return{value:t}}))};var o=n.getDataExtent("value");r.setExtent(o[0],o[1]),r.niceTicks();var a=new XE("value",r,t.axisExtent,i);return a.model=e,a},e.prototype._createGroup=function(t){var e=this[t]=new Vi;return this.group.add(e),e},e.prototype._renderAxisLine=function(t,e,n,i){var r=n.getExtent();if(i.get(["lineStyle","show"])){var o=new nu({shape:{x1:r[0],y1:0,x2:r[1],y2:0},style:I({lineCap:"round"},i.getModel("lineStyle").getLineStyle()),silent:!0,z2:1});e.add(o);var a=this._progressLine=new nu({shape:{x1:r[0],x2:this._currentPointer?this._currentPointer.x:r[0],y1:0,y2:0},style:T({lineCap:"round",lineWidth:o.style.lineWidth},i.getModel(["progress","lineStyle"]).getLineStyle()),silent:!0,z2:1});e.add(a)}},e.prototype._renderAxisTick=function(t,e,n,i){var r=this,o=i.getData(),a=n.scale.getTicks();this._tickSymbols=[],P(a,(function(t){var a=n.dataToCoord(t.value),s=o.getItemModel(t.value),l=s.getModel("itemStyle"),u=s.getModel(["emphasis","itemStyle"]),h=s.getModel(["progress","itemStyle"]),c={x:a,y:0,onclick:B(r._changeTimeline,r,t.value)},p=qE(s,l,e,c);p.ensureState("emphasis").style=u.getItemStyle(),p.ensureState("progress").style=h.getItemStyle(),tl(p);var d=ms(p);s.get("tooltip")?(d.dataIndex=t.value,d.dataModel=i):d.dataIndex=d.dataModel=null,r._tickSymbols.push(p)}))},e.prototype._renderAxisLabel=function(t,e,n,i){var r=this;if(n.getLabelModel().get("show")){var o=i.getData(),a=n.getViewLabels();this._tickLabels=[],P(a,(function(i){var a=i.tickValue,s=o.getItemModel(a),l=s.getModel("label"),u=s.getModel(["emphasis","label"]),h=s.getModel(["progress","label"]),c=n.dataToCoord(i.tickValue),p=new hs({x:c,y:0,rotation:t.labelRotation-t.rotation,onclick:B(r._changeTimeline,r,a),silent:!1,style:rh(l,{text:i.formattedLabel,align:t.labelAlign,verticalAlign:t.labelBaseline})});p.ensureState("emphasis").style=rh(u),p.ensureState("progress").style=rh(h),e.add(p),tl(p),ZE(p).dataIndex=a,r._tickLabels.push(p)}))}},e.prototype._renderControl=function(t,e,n,i){var r=t.controlSize,o=t.rotation,a=i.getModel("controlStyle").getItemStyle(),s=i.getModel(["emphasis","controlStyle"]).getItemStyle(),l=i.getPlayState(),u=i.get("inverse",!0);function h(t,n,l,u){if(t){var h=Un(tt(i.get(["controlStyle",n+"BtnSize"]),r),r),c=function(t,e,n,i){var r=i.style,o=ju(t.get(["controlStyle",e]),i||{},new En(n[0],n[1],n[2],n[3]));r&&o.setStyle(r);return o}(i,n+"Icon",[0,-h/2,h,h],{position:t,origin:[r/2,0],rotation:u?-o:0,rectHover:!0,style:a,onclick:l});c.ensureState("emphasis").style=s,e.add(c),tl(c)}}h(t.nextBtnPosition,"next",B(this._changeTimeline,this,u?"-":"+")),h(t.prevBtnPosition,"prev",B(this._changeTimeline,this,u?"+":"-")),h(t.playPosition,l?"stop":"play",B(this._handlePlayClick,this,!l),!0)},e.prototype._renderCurrentPointer=function(t,e,n,i){var r=i.getData(),o=i.getCurrentIndex(),a=r.getItemModel(o).getModel("checkpointStyle"),s=this,l={onCreate:function(t){t.draggable=!0,t.drift=B(s._handlePointerDrag,s),t.ondragend=B(s._handlePointerDragend,s),KE(t,s._progressLine,o,n,i,!0)},onUpdate:function(t){KE(t,s._progressLine,o,n,i)}};this._currentPointer=qE(a,a,this._mainGroup,{},this._currentPointer,l)},e.prototype._handlePlayClick=function(t){this._clearTimer(),this.api.dispatchAction({type:"timelinePlayChange",playState:t,from:this.uid})},e.prototype._handlePointerDrag=function(t,e,n){this._clearTimer(),this._pointerChangeTimeline([n.offsetX,n.offsetY])},e.prototype._handlePointerDragend=function(t){this._pointerChangeTimeline([t.offsetX,t.offsetY],!0)},e.prototype._pointerChangeTimeline=function(t,e){var n=this._toAxisCoord(t)[0],i=$i(this._axis.getExtent().slice());n>i[1]&&(n=i[1]),n<i[0]&&(n=i[0]),this._currentPointer.x=n,this._currentPointer.markRedraw(),this._progressLine.shape.x2=n,this._progressLine.dirty();var r=this._findNearestTick(n),o=this.model;(e||r!==o.getCurrentIndex()&&o.get("realtime"))&&this._changeTimeline(r)},e.prototype._doPlayStop=function(){var t=this;this._clearTimer(),this.model.getPlayState()&&(this._timer=setTimeout((function(){var e=t.model;t._changeTimeline(e.getCurrentIndex()+(e.get("rewind",!0)?-1:1))}),this.model.get("playInterval")))},e.prototype._toAxisCoord=function(t){return Hu(t,this._mainGroup.getLocalTransform(),!0)},e.prototype._findNearestTick=function(t){var e,n=this.model.getData(),i=1/0,r=this._axis;return n.each(["value"],(function(n,o){var a=r.dataToCoord(n),s=Math.abs(a-t);s<i&&(i=s,e=o)})),e},e.prototype._clearTimer=function(){this._timer&&(clearTimeout(this._timer),this._timer=null)},e.prototype._changeTimeline=function(t){var e=this.model.getCurrentIndex();"+"===t?t=e+1:"-"===t&&(t=e-1),this.api.dispatchAction({type:"timelineChange",currentIndex:t,from:this.uid})},e.prototype._updateTicksStatus=function(){var t=this.model.getCurrentIndex(),e=this._tickSymbols,n=this._tickLabels;if(e)for(var i=0;i<e.length;i++)e&&e[i]&&e[i].toggleState("progress",i<t);if(n)for(i=0;i<n.length;i++)n&&n[i]&&n[i].toggleState("progress",ZE(n[i]).dataIndex<=t)},e.type="timeline.slider",e}(YE);function qE(t,e,n,i,r,o){var a=e.get("color");r?(r.setColor(a),n.add(r),o&&o.onUpdate(r)):((r=cy(t.get("symbol"),-1,-1,2,2,a)).setStyle("strokeNoScale",!0),n.add(r),o&&o.onCreate(r));var s=e.getItemStyle(["color"]);r.setStyle(s),i=S({rectHover:!0,z2:100},i,!0);var l=t.get("symbolSize");l=l instanceof Array?l.slice():[+l,+l],i.scaleX=l[0]/2,i.scaleY=l[1]/2;var u=t.get("symbolOffset");u&&(i.x=i.x||0,i.y=i.y||0,i.x+=qi(u[0],l[0]),i.y+=qi(u[1],l[1]));var h=t.get("symbolRotate");return i.rotation=(h||0)*Math.PI/180||0,r.attr(i),r.updateTransform(),r}function KE(t,e,n,i,r,o){if(!t.dragging){var a=r.getModel("checkpointStyle"),s=i.dataToCoord(r.getData().get("value",n));if(o||!a.get("animation",!0))t.attr({x:s,y:0}),e&&e.attr({shape:{x2:s}});else{var l={duration:a.get("animationDuration",!0),easing:a.get("animationEasing",!0)};t.stopAnimation(null,!0),t.animateTo({x:s,y:0},l),e&&e.animateTo({shape:{x2:s}},l)}}}function $E(t){var e=t&&t.timeline;F(e)||(e=e?[e]:[]),P(e,(function(t){t&&function(t){var e=t.type,n={number:"value",time:"time"};n[e]&&(t.axisType=n[e],delete t.type);if(JE(t),QE(t,"controlPosition")){var i=t.controlStyle||(t.controlStyle={});QE(i,"position")||(i.position=t.controlPosition),"none"!==i.position||QE(i,"show")||(i.show=!1,delete i.position),delete t.controlPosition}P(t.data||[],(function(t){X(t)&&!F(t)&&(!QE(t,"value")&&QE(t,"name")&&(t.value=t.name),JE(t))}))}(t)}))}function JE(t){var e=t.itemStyle||(t.itemStyle={}),n=e.emphasis||(e.emphasis={}),i=t.label||t.label||{},r=i.normal||(i.normal={}),o={normal:1,emphasis:1};P(i,(function(t,e){o[e]||QE(r,e)||(r[e]=t)})),n.label&&!QE(i,"emphasis")&&(i.emphasis=n.label,delete n.label)}function QE(t,e){return t.hasOwnProperty(e)}function tz(t){wr(t,"label",["show"])}var ez=Pr(),nz=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.createdBySelf=!1,n}return n(e,t),e.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n),this._mergeOption(t,n,!1,!0)},e.prototype.isAnimationEnabled=function(){if(a.node)return!1;var t=this.__hostSeries;return this.getShallow("animation")&&t&&t.isAnimationEnabled()},e.prototype.mergeOption=function(t,e){this._mergeOption(t,e,!1,!1)},e.prototype._mergeOption=function(t,e,n,i){var r=this.mainType;n||e.eachSeries((function(t){var n=t.get(this.mainType,!0),o=ez(t)[r];n&&n.data?(o?o._mergeOption(n,e,!0):(i&&tz(n),P(n.data,(function(t){t instanceof Array?(tz(t[0]),tz(t[1])):tz(t)})),I(o=this.createMarkerModelFromSeries(n,this,e),{mainType:this.mainType,seriesIndex:t.seriesIndex,name:t.name,createdBySelf:!0}),o.__hostSeries=t),ez(t)[r]=o):ez(t)[r]=null}),this)},e.prototype.formatTooltip=function(t,e,n){var i=this.getData(),r=this.getRawValue(t),o=i.getName(t);return Ud("section",{header:this.name,blocks:[Ud("nameValue",{name:o,value:r,noName:!o,noValue:null==r})]})},e.prototype.getData=function(){return this._data},e.prototype.setData=function(t){this._data=t},e.getMarkerModelFromSeries=function(t,e){return ez(t)[e]},e.type="marker",e.dependencies=["series","grid","polar","geo"],e}(zc);L(nz,md.prototype);var iz=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.createMarkerModelFromSeries=function(t,n,i){return new e(t,n,i)},e.type="markPoint",e.defaultOption={zlevel:0,z:5,symbol:"pin",symbolSize:50,tooltip:{trigger:"item"},label:{show:!0,position:"inside"},itemStyle:{borderWidth:2},emphasis:{label:{show:!0}}},e}(nz);function rz(t,e,n,i,r,o){var a=[],s=Hm(e,i)?e.getCalculationInfo("stackResultDimension"):i,l=hz(e,s,t),u=e.indicesOfNearest(s,l)[0];a[r]=e.get(n,u),a[o]=e.get(s,u);var h=e.get(i,u),c=Ji(e.get(i,u));return(c=Math.min(c,20))>=0&&(a[o]=+a[o].toFixed(c)),[a,h]}var oz={min:V(rz,"min"),max:V(rz,"max"),average:V(rz,"average"),median:V(rz,"median")};function az(t,e){var n=t.getData(),i=t.coordinateSystem;if(e&&!function(t){return!isNaN(parseFloat(t.x))&&!isNaN(parseFloat(t.y))}(e)&&!F(e.coord)&&i){var r=i.dimensions,o=sz(e,n,i,t);if((e=w(e)).type&&oz[e.type]&&o.baseAxis&&o.valueAxis){var a=A(r,o.baseAxis.dim),s=A(r,o.valueAxis.dim),l=oz[e.type](n,o.baseDataDim,o.valueDataDim,a,s);e.coord=l[0],e.value=l[1]}else{for(var u=[null!=e.xAxis?e.xAxis:e.radiusAxis,null!=e.yAxis?e.yAxis:e.angleAxis],h=0;h<2;h++)oz[u[h]]&&(u[h]=hz(n,n.mapDimension(r[h]),u[h]));e.coord=u}}return e}function sz(t,e,n,i){var r={};return null!=t.valueIndex||null!=t.valueDim?(r.valueDataDim=null!=t.valueIndex?e.getDimension(t.valueIndex):t.valueDim,r.valueAxis=n.getAxis(function(t,e){var n=t.getData(),i=n.dimensions;e=n.getDimension(e);for(var r=0;r<i.length;r++){var o=n.getDimensionInfo(i[r]);if(o.name===e)return o.coordDim}}(i,r.valueDataDim)),r.baseAxis=n.getOtherAxis(r.valueAxis),r.baseDataDim=e.mapDimension(r.baseAxis.dim)):(r.baseAxis=i.getBaseAxis(),r.valueAxis=n.getOtherAxis(r.baseAxis),r.baseDataDim=e.mapDimension(r.baseAxis.dim),r.valueDataDim=e.mapDimension(r.valueAxis.dim)),r}function lz(t,e){return!(t&&t.containData&&e.coord&&!function(t){return!(isNaN(parseFloat(t.x))&&isNaN(parseFloat(t.y)))}(e))||t.containData(e.coord)}function uz(t,e,n,i){return i<2?t.coord&&t.coord[i]:t.value}function hz(t,e,n){if("average"===n){var i=0,r=0;return t.each(e,(function(t,e){isNaN(t)||(i+=t,r++)})),i/r}return"median"===n?t.getMedian(e):t.getDataExtent(e)["max"===n?1:0]}var cz=Pr(),pz=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(){this.markerGroupMap=ht()},e.prototype.render=function(t,e,n){var i=this,r=this.markerGroupMap;r.each((function(t){cz(t).keep=!1})),e.eachSeries((function(t){var r=nz.getMarkerModelFromSeries(t,i.type);r&&i.renderSeries(t,r,e,n)})),r.each((function(t){!cz(t).keep&&i.group.remove(t.group)}))},e.prototype.markKeep=function(t){cz(t).keep=!0},e.prototype.blurSeries=function(t){var e=this;P(t,(function(t){var n=nz.getMarkerModelFromSeries(t,e.type);n&&n.getData().eachItemGraphicEl((function(t){t&&Us(t)}))}))},e.type="marker",e}(ff);function dz(t,e,n){var i=e.coordinateSystem;t.each((function(r){var o,a=t.getItemModel(r),s=qi(a.get("x"),n.getWidth()),l=qi(a.get("y"),n.getHeight());if(isNaN(s)||isNaN(l)){if(e.getMarkerPosition)o=e.getMarkerPosition(t.getValues(t.dimensions,r));else if(i){var u=t.get(i.dimensions[0],r),h=t.get(i.dimensions[1],r);o=i.dataToPoint([u,h])}}else o=[s,l];isNaN(s)||(o[0]=s),isNaN(l)||(o[1]=l),t.setItemLayout(r,o)}))}var fz=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.updateTransform=function(t,e,n){e.eachSeries((function(t){var e=nz.getMarkerModelFromSeries(t,"markPoint");e&&(dz(e.getData(),t,n),this.markerGroupMap.get(t.id).updateLayout())}),this)},e.prototype.renderSeries=function(t,e,n,i){var r=t.coordinateSystem,o=t.id,a=t.getData(),s=this.markerGroupMap,l=s.get(o)||s.set(o,new Ab),u=function(t,e,n){var i;i=t?O(t&&t.dimensions,(function(t){return T({name:t},e.getData().getDimensionInfo(e.getData().mapDimension(t))||{})})):[{name:"value",type:"float"}];var r=new Rm(i,n),o=O(n.get("data"),V(az,e));t&&(o=N(o,V(lz,t)));return r.initData(o,null,t?uz:function(t){return t.value}),r}(r,t,e);e.setData(u),dz(e.getData(),t,i),u.each((function(t){var n=u.getItemModel(t),i=n.getShallow("symbol"),r=n.getShallow("symbolSize"),o=n.getShallow("symbolRotate");if(G(i)||G(r)||G(o)){var s=e.getRawValue(t),l=e.getDataParams(t);G(i)&&(i=i(s,l)),G(r)&&(r=r(s,l)),G(o)&&(o=o(s,l))}var h=n.getModel("itemStyle").getItemStyle(),c=gg(a,"color");h.fill||(h.fill=c),u.setItemVisual(t,{symbol:i,symbolSize:r,symbolRotate:o,style:h})})),l.updateData(u),this.group.add(l.group),u.eachItemGraphicEl((function(t){t.traverse((function(t){ms(t).dataModel=e}))})),this.markKeep(l),l.group.silent=e.get("silent")||t.get("silent")},e.type="markPoint",e}(pz);var gz=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.createMarkerModelFromSeries=function(t,n,i){return new e(t,n,i)},e.type="markLine",e.defaultOption={zlevel:0,z:5,symbol:["circle","arrow"],symbolSize:[8,16],precision:2,tooltip:{trigger:"item"},label:{show:!0,position:"end",distance:5},lineStyle:{type:"dashed"},emphasis:{label:{show:!0},lineStyle:{width:3}},animationEasing:"linear"},e}(nz),yz=Pr(),vz=function(t,e,n,i){var r,o=t.getData();if(F(i))r=i;else{var a=i.type;if("min"===a||"max"===a||"average"===a||"median"===a||null!=i.xAxis||null!=i.yAxis){var s=void 0,l=void 0;if(null!=i.yAxis||null!=i.xAxis)s=e.getAxis(null!=i.yAxis?"y":"x"),l=Q(i.yAxis,i.xAxis);else{var u=sz(i,o,e,t);s=u.valueAxis,l=hz(o,Wm(o,u.valueDataDim),a)}var h="x"===s.dim?0:1,c=1-h,p=w(i),d={coord:[]};p.type=null,p.coord=[],p.coord[c]=-1/0,d.coord[c]=1/0;var f=n.get("precision");f>=0&&"number"==typeof l&&(l=+l.toFixed(Math.min(f,20))),p.coord[h]=d.coord[h]=l,r=[p,d,{type:a,valueIndex:i.valueIndex,value:l}]}else r=[]}var g=[az(t,r[0]),az(t,r[1]),I({},r[2])];return g[2].type=g[2].type||null,S(g[2],g[0]),S(g[2],g[1]),g};function mz(t){return!isNaN(t)&&!isFinite(t)}function _z(t,e,n,i){var r=1-t,o=i.dimensions[t];return mz(e[r])&&mz(n[r])&&e[t]===n[t]&&i.getAxis(o).containData(e[t])}function xz(t,e){if("cartesian2d"===t.type){var n=e[0].coord,i=e[1].coord;if(n&&i&&(_z(1,n,i,t)||_z(0,n,i,t)))return!0}return lz(t,e[0])&&lz(t,e[1])}function bz(t,e,n,i,r){var o,a=i.coordinateSystem,s=t.getItemModel(e),l=qi(s.get("x"),r.getWidth()),u=qi(s.get("y"),r.getHeight());if(isNaN(l)||isNaN(u)){if(i.getMarkerPosition)o=i.getMarkerPosition(t.getValues(t.dimensions,e));else{var h=a.dimensions,c=t.get(h[0],e),p=t.get(h[1],e);o=a.dataToPoint([c,p])}if(Xb(a,"cartesian2d")){var d=a.getAxis("x"),f=a.getAxis("y");h=a.dimensions;mz(t.get(h[0],e))?o[0]=d.toGlobalCoord(d.getExtent()[n?0:1]):mz(t.get(h[1],e))&&(o[1]=f.toGlobalCoord(f.getExtent()[n?0:1]))}isNaN(l)||(o[0]=l),isNaN(u)||(o[1]=u)}else o=[l,u];t.setItemLayout(e,o)}var wz=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.updateTransform=function(t,e,n){e.eachSeries((function(t){var e=nz.getMarkerModelFromSeries(t,"markLine");if(e){var i=e.getData(),r=yz(e).from,o=yz(e).to;r.each((function(e){bz(r,e,!0,t,n),bz(o,e,!1,t,n)})),i.each((function(t){i.setItemLayout(t,[r.getItemLayout(t),o.getItemLayout(t)])})),this.markerGroupMap.get(t.id).updateLayout()}}),this)},e.prototype.renderSeries=function(t,e,n,i){var r=t.coordinateSystem,o=t.id,a=t.getData(),s=this.markerGroupMap,l=s.get(o)||s.set(o,new lC);this.group.add(l.group);var u=function(t,e,n){var i;i=t?O(t&&t.dimensions,(function(t){return T({name:t},e.getData().getDimensionInfo(e.getData().mapDimension(t))||{})})):[{name:"value",type:"float"}];var r=new Rm(i,n),o=new Rm(i,n),a=new Rm([],n),s=O(n.get("data"),V(vz,e,t,n));t&&(s=N(s,V(xz,t)));var l=t?uz:function(t){return t.value};return r.initData(O(s,(function(t){return t[0]})),null,l),o.initData(O(s,(function(t){return t[1]})),null,l),a.initData(O(s,(function(t){return t[2]}))),a.hasItemOption=!0,{from:r,to:o,line:a}}(r,t,e),h=u.from,c=u.to,p=u.line;yz(e).from=h,yz(e).to=c,e.setData(p);var d=e.get("symbol"),f=e.get("symbolSize");function g(e,n,r){var o=e.getItemModel(n);bz(e,n,r,t,i);var s=o.getModel("itemStyle").getItemStyle();null==s.fill&&(s.fill=gg(a,"color")),e.setItemVisual(n,{symbolRotate:o.get("symbolRotate"),symbolSize:o.get("symbolSize")||f[r?0:1],symbol:o.get("symbol",!0)||d[r?0:1],style:s})}F(d)||(d=[d,d]),F(f)||(f=[f,f]),u.from.each((function(t){g(h,t,!0),g(c,t,!1)})),p.each((function(t){var e=p.getItemModel(t).getModel("lineStyle").getLineStyle();p.setItemLayout(t,[h.getItemLayout(t),c.getItemLayout(t)]),null==e.stroke&&(e.stroke=h.getItemVisual(t,"style").fill),p.setItemVisual(t,{fromSymbolRotate:h.getItemVisual(t,"symbolRotate"),fromSymbolSize:h.getItemVisual(t,"symbolSize"),fromSymbol:h.getItemVisual(t,"symbol"),toSymbolRotate:c.getItemVisual(t,"symbolRotate"),toSymbolSize:c.getItemVisual(t,"symbolSize"),toSymbol:c.getItemVisual(t,"symbol"),style:e})})),l.updateData(p),u.line.eachItemGraphicEl((function(t,n){t.traverse((function(t){ms(t).dataModel=e}))})),this.markKeep(l),l.group.silent=e.get("silent")||t.get("silent")},e.type="markLine",e}(pz);var Sz=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.createMarkerModelFromSeries=function(t,n,i){return new e(t,n,i)},e.type="markArea",e.defaultOption={zlevel:0,z:1,tooltip:{trigger:"item"},animation:!1,label:{show:!0,position:"top"},itemStyle:{borderWidth:0},emphasis:{label:{show:!0,position:"top"}}},e}(nz),Mz=Pr(),Iz=function(t,e,n,i){var r=az(t,i[0]),o=az(t,i[1]),a=r.coord,s=o.coord;a[0]=Q(a[0],-1/0),a[1]=Q(a[1],-1/0),s[0]=Q(s[0],1/0),s[1]=Q(s[1],1/0);var l=M([{},r,o]);return l.coord=[r.coord,o.coord],l.x0=r.x,l.y0=r.y,l.x1=o.x,l.y1=o.y,l};function Tz(t){return!isNaN(t)&&!isFinite(t)}function Cz(t,e,n,i){var r=1-t;return Tz(e[r])&&Tz(n[r])}function Az(t,e){var n=e.coord[0],i=e.coord[1];return!!(Xb(t,"cartesian2d")&&n&&i&&(Cz(1,n,i)||Cz(0,n,i)))||(lz(t,{coord:n,x:e.x0,y:e.y0})||lz(t,{coord:i,x:e.x1,y:e.y1}))}function Dz(t,e,n,i,r){var o,a=i.coordinateSystem,s=t.getItemModel(e),l=qi(s.get(n[0]),r.getWidth()),u=qi(s.get(n[1]),r.getHeight());if(isNaN(l)||isNaN(u)){if(i.getMarkerPosition)o=i.getMarkerPosition(t.getValues(n,e));else{var h=[d=t.get(n[0],e),f=t.get(n[1],e)];a.clampData&&a.clampData(h,h),o=a.dataToPoint(h,!0)}if(Xb(a,"cartesian2d")){var c=a.getAxis("x"),p=a.getAxis("y"),d=t.get(n[0],e),f=t.get(n[1],e);Tz(d)?o[0]=c.toGlobalCoord(c.getExtent()["x0"===n[0]?0:1]):Tz(f)&&(o[1]=p.toGlobalCoord(p.getExtent()["y0"===n[1]?0:1]))}isNaN(l)||(o[0]=l),isNaN(u)||(o[1]=u)}else o=[l,u];return o}var Lz=[["x0","y0"],["x1","y0"],["x1","y1"],["x0","y1"]],kz=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.updateTransform=function(t,e,n){e.eachSeries((function(t){var e=nz.getMarkerModelFromSeries(t,"markArea");if(e){var i=e.getData();i.each((function(e){var r=O(Lz,(function(r){return Dz(i,e,r,t,n)}));i.setItemLayout(e,r),i.getItemGraphicEl(e).setShape("points",r)}))}}),this)},e.prototype.renderSeries=function(t,e,n,i){var r=t.coordinateSystem,o=t.id,a=t.getData(),s=this.markerGroupMap,l=s.get(o)||s.set(o,{group:new Vi});this.group.add(l.group),this.markKeep(l);var u=function(t,e,n){var i,r,o=["x0","y0","x1","y1"];t?(i=O(t&&t.dimensions,(function(t){var n=e.getData();return T({name:t},n.getDimensionInfo(n.mapDimension(t))||{})})),r=new Rm(O(o,(function(t,e){return{name:t,type:i[e%2].type}})),n)):r=new Rm(i=[{name:"value",type:"float"}],n);var a=O(n.get("data"),V(Iz,e,t,n));t&&(a=N(a,V(Az,t)));var s=t?function(t,e,n,i){return t.coord[Math.floor(i/2)][i%2]}:function(t){return t.value};return r.initData(a,null,s),r.hasItemOption=!0,r}(r,t,e);e.setData(u),u.each((function(e){var n=O(Lz,(function(n){return Dz(u,e,n,t,i)})),o=!0;P(Lz,(function(t){if(o){var n=u.get(t[0],e),i=u.get(t[1],e);(Tz(n)||r.getAxis("x").containData(n))&&(Tz(i)||r.getAxis("y").containData(i))&&(o=!1)}})),u.setItemLayout(e,{points:n,allClipped:o});var s=u.getItemModel(e).getModel("itemStyle").getItemStyle(),l=gg(a,"color");s.fill||(s.fill=l,"string"==typeof s.fill&&(s.fill=sn(s.fill,.4))),s.stroke||(s.stroke=l),u.setItemVisual(e,"style",s)})),u.diff(Mz(l).data).add((function(t){var e=u.getItemLayout(t);if(!e.allClipped){var n=new $l({shape:{points:e.points}});u.setItemGraphicEl(t,n),l.group.add(n)}})).update((function(t,n){var i=Mz(l).data.getItemGraphicEl(n),r=u.getItemLayout(t);r.allClipped?i&&l.group.remove(i):(i?Nu(i,{shape:{points:r.points}},e,t):i=new $l({shape:{points:r.points}}),u.setItemGraphicEl(t,i),l.group.add(i))})).remove((function(t){var e=Mz(l).data.getItemGraphicEl(t);l.group.remove(e)})).execute(),u.eachItemGraphicEl((function(t,n){var i=u.getItemModel(n),r=u.getItemVisual(n,"style");t.useStyle(u.getItemVisual(n,"style")),nh(t,ih(i),{labelFetcher:e,labelDataIndex:n,defaultText:u.getName(n)||"",inheritColor:"string"==typeof r.fill?sn(r.fill,1):"#000"}),rl(t,i),tl(t),ms(t).dataModel=e})),Mz(l).data=u,l.group.silent=e.get("silent")||t.get("silent")},e.type="markArea",e}(pz);var Pz=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.layoutMode={type:"box",ignoreSize:!0},n}return n(e,t),e.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n),t.selected=t.selected||{},this._updateSelector(t)},e.prototype.mergeOption=function(e,n){t.prototype.mergeOption.call(this,e,n),this._updateSelector(e)},e.prototype._updateSelector=function(t){var e=t.selector,n=this.ecModel;!0===e&&(e=t.selector=["all","inverse"]),F(e)&&P(e,(function(t,i){H(t)&&(t={type:t}),e[i]=S(t,function(t,e){return"all"===e?{type:"all",title:t.getLocale(["legend","selector","all"])}:"inverse"===e?{type:"inverse",title:t.getLocale(["legend","selector","inverse"])}:void 0}(n,t.type))}))},e.prototype.optionUpdated=function(){this._updateData(this.ecModel);var t=this._data;if(t[0]&&"single"===this.get("selectedMode")){for(var e=!1,n=0;n<t.length;n++){var i=t[n].get("name");if(this.isSelected(i)){this.select(i),e=!0;break}}!e&&this.select(t[0].get("name"))}},e.prototype._updateData=function(t){var e=[],n=[];t.eachRawSeries((function(i){var r,o=i.name;if(n.push(o),i.legendVisualProvider){var a=i.legendVisualProvider.getAllNames();t.isSeriesFiltered(i)||(n=n.concat(a)),a.length?e=e.concat(a):r=!0}else r=!0;r&&Dr(i)&&e.push(i.name)})),this._availableNames=n;var i=O(this.get("data")||e,(function(t){return"string"!=typeof t&&"number"!=typeof t||(t={name:t}),new Ih(t,this,this.ecModel)}),this);this._data=i},e.prototype.getData=function(){return this._data},e.prototype.select=function(t){var e=this.option.selected;"single"===this.get("selectedMode")&&P(this._data,(function(t){e[t.get("name")]=!1}));e[t]=!0},e.prototype.unSelect=function(t){"single"!==this.get("selectedMode")&&(this.option.selected[t]=!1)},e.prototype.toggleSelected=function(t){var e=this.option.selected;e.hasOwnProperty(t)||(e[t]=!0),this[e[t]?"unSelect":"select"](t)},e.prototype.allSelect=function(){var t=this._data,e=this.option.selected;P(t,(function(t){e[t.get("name",!0)]=!0}))},e.prototype.inverseSelect=function(){var t=this._data,e=this.option.selected;P(t,(function(t){var n=t.get("name",!0);e.hasOwnProperty(n)||(e[n]=!0),e[n]=!e[n]}))},e.prototype.isSelected=function(t){var e=this.option.selected;return!(e.hasOwnProperty(t)&&!e[t])&&A(this._availableNames,t)>=0},e.prototype.getOrient=function(){return"vertical"===this.get("orient")?{index:1,name:"vertical"}:{index:0,name:"horizontal"}},e.type="legend.plain",e.dependencies=["series"],e.defaultOption={zlevel:0,z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,inactiveColor:"#ccc",inactiveBorderColor:"#ccc",itemStyle:{borderWidth:0},textStyle:{color:"#333"},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:" sans-serif",color:"#666",borderWidth:1,borderColor:"#666"},emphasis:{selectorLabel:{show:!0,color:"#eee",backgroundColor:"#666"}},selectorPosition:"auto",selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1}},e}(zc),Oz=V,Rz=P,Nz=Vi,Ez=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.newlineDisabled=!1,n}return n(e,t),e.prototype.init=function(){this.group.add(this._contentGroup=new Nz),this.group.add(this._selectorGroup=new Nz),this._isFirstRender=!0},e.prototype.getContentGroup=function(){return this._contentGroup},e.prototype.getSelectorGroup=function(){return this._selectorGroup},e.prototype.render=function(t,e,n){var i=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),t.get("show",!0)){var r=t.get("align"),o=t.get("orient");r&&"auto"!==r||(r="right"===t.get("left")&&"vertical"===o?"right":"left");var a=t.get("selector",!0),s=t.get("selectorPosition",!0);!a||s&&"auto"!==s||(s="horizontal"===o?"end":"start"),this.renderInner(r,t,e,n,a,o,s);var l=t.getBoxLayoutParams(),u={width:n.getWidth(),height:n.getHeight()},h=t.get("padding"),c=Lc(l,u,h),p=this.layoutInner(t,r,c,i,a,s),d=Lc(T({width:p.width,height:p.height},l),u,h);this.group.x=d.x-p.x,this.group.y=d.y-p.y,this.group.markRedraw(),this.group.add(this._backgroundEl=gN(p,t))}},e.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},e.prototype.renderInner=function(t,e,n,i,r,o,a){var s=this.getContentGroup(),l=ht(),u=e.get("selectedMode"),h=[];n.eachRawSeries((function(t){!t.get("legendHoverLink")&&h.push(t.id)})),Rz(e.getData(),(function(r,o){var a=r.get("name");if(!this.newlineDisabled&&(""===a||"\n"===a)){var c=new Nz;return c.newline=!0,void s.add(c)}var p=n.getSeriesByName(a)[0];if(!l.get(a)){if(p){var d=p.getData(),f=d.getVisual("style"),g=f[d.getVisual("drawType")]||f.fill,y=f.stroke,v=f.decal,m=d.getVisual("legendSymbol")||"roundRect",_=d.getVisual("symbol");this._createItem(a,o,r,e,m,_,t,g,y,v,u).on("click",Oz(Bz,a,null,i,h)).on("mouseover",Oz(Fz,p.name,null,i,h)).on("mouseout",Oz(Gz,p.name,null,i,h)),l.set(a,!0)}else n.eachRawSeries((function(n){if(!l.get(a)&&n.legendVisualProvider){var s=n.legendVisualProvider;if(!s.containName(a))return;var c=s.indexOfName(a),p=s.getItemVisual(c,"style"),d=p.stroke,f=p.decal,g=p.fill,y=$e(p.fill);y&&0===y[3]&&(y[3]=.2,g=ln(y,"rgba"));this._createItem(a,o,r,e,"roundRect",null,t,g,d,f,u).on("click",Oz(Bz,null,a,i,h)).on("mouseover",Oz(Fz,null,a,i,h)).on("mouseout",Oz(Gz,null,a,i,h)),l.set(a,!0)}}),this);0}}),this),r&&this._createSelector(r,e,i,o,a)},e.prototype._createSelector=function(t,e,n,i,r){var o=this.getSelectorGroup();Rz(t,(function(t){var i=t.type,r=new hs({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){n.dispatchAction({type:"all"===i?"legendAllSelect":"legendInverseSelect"})}});o.add(r),nh(r,{normal:e.getModel("selectorLabel"),emphasis:e.getModel(["emphasis","selectorLabel"])},{defaultText:t.title}),tl(r)}))},e.prototype._createItem=function(t,e,n,i,r,o,a,s,l,u,h){var c=i.get("itemWidth"),p=i.get("itemHeight"),d=i.get("inactiveColor"),f=i.get("inactiveBorderColor"),g=i.get("symbolKeepAspect"),y=i.getModel("itemStyle"),v=i.isSelected(t),m=new Nz,_=n.getModel("textStyle"),x=n.get("icon"),b=n.getModel("tooltip"),w=b.parentModel,S=cy(r=x||r,0,0,c,p,v?s:d,null==g||g);if(m.add(zz(S,r,y,l,f,u,v)),!x&&o&&(o!==r||"none"===o)){var M=.8*p;"none"===o&&(o="circle");var T=cy(o,(c-M)/2,(p-M)/2,M,M,v?s:d,null==g||g);m.add(zz(T,o,y,l,f,u,v))}var C="left"===a?c+5:-5,A=a,D=i.get("formatter"),L=t;"string"==typeof D&&D?L=D.replace("{name}",null!=t?t:""):"function"==typeof D&&(L=D(t)),m.add(new hs({style:rh(_,{text:L,x:C,y:p/2,fill:v?_.getTextColor():d,align:A,verticalAlign:"middle"})}));var k=new ss({shape:m.getBoundingRect(),invisible:!0});if(b.get("show")){var P={componentType:"legend",legendIndex:i.componentIndex,name:t,$vars:["name"]};k.tooltip=I({content:t,formatter:w.get("formatter",!0)||function(t){return t.name},formatterParams:P},b.option)}return m.add(k),m.eachChild((function(t){t.silent=!0})),k.silent=!h,this.getContentGroup().add(m),tl(m),m.__legendDataIndex=e,m},e.prototype.layoutInner=function(t,e,n,i,r,o){var a=this.getContentGroup(),s=this.getSelectorGroup();Dc(t.get("orient"),a,t.get("itemGap"),n.width,n.height);var l=a.getBoundingRect(),u=[-l.x,-l.y];if(s.markRedraw(),a.markRedraw(),r){Dc("horizontal",s,t.get("selectorItemGap",!0));var h=s.getBoundingRect(),c=[-h.x,-h.y],p=t.get("selectorButtonGap",!0),d=t.getOrient().index,f=0===d?"width":"height",g=0===d?"height":"width",y=0===d?"y":"x";"end"===o?c[d]+=l[f]+p:u[d]+=h[f]+p,c[1-d]+=l[g]/2-h[g]/2,s.x=c[0],s.y=c[1],a.x=u[0],a.y=u[1];var v={x:0,y:0};return v[f]=l[f]+p+h[f],v[g]=Math.max(l[g],h[g]),v[y]=Math.min(0,h[y]+c[1-d]),v}return a.x=u[0],a.y=u[1],this.group.getBoundingRect()},e.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},e.type="legend.plain",e}(ff);function zz(t,e,n,i,r,o,a){var s;return"line"!==e&&e.indexOf("empty")<0?(s=n.getItemStyle(),t.style.stroke=i,t.style.decal=o,a||(s.stroke=r)):s=n.getItemStyle(["borderWidth","borderColor"]),t.setStyle(s),t}function Bz(t,e,n,i){Gz(t,e,n,i),n.dispatchAction({type:"legendToggleSelect",name:null!=t?t:e}),Fz(t,e,n,i)}function Vz(t){for(var e,n=t.getZr().storage.getDisplayList(),i=0,r=n.length;i<r&&!(e=n[i].states.emphasis);)i++;return e&&e.hoverLayer}function Fz(t,e,n,i){Vz(n)||n.dispatchAction({type:"highlight",seriesName:t,name:e,excludeSeriesId:i})}function Gz(t,e,n,i){Vz(n)||n.dispatchAction({type:"downplay",seriesName:t,name:e,excludeSeriesId:i})}function Hz(t){var e=t.findComponents({mainType:"legend"});e&&e.length&&t.filterSeries((function(t){for(var n=0;n<e.length;n++)if(!e[n].isSelected(t.name))return!1;return!0}))}function Wz(t,e,n){var i,r={},o="toggleSelected"===t;return n.eachComponent("legend",(function(n){o&&null!=i?n[i?"select":"unSelect"](e.name):"allSelect"===t||"inverseSelect"===t?n[t]():(n[t](e.name),i=n.isSelected(e.name)),P(n.getData(),(function(t){var e=t.get("name");if("\n"!==e&&""!==e){var i=n.isSelected(e);r.hasOwnProperty(e)?r[e]=r[e]&&i:r[e]=i}}))})),"allSelect"===t||"inverseSelect"===t?{selected:r}:{name:e.name,selected:r}}function Yz(t){t.registerComponentModel(Pz),t.registerComponentView(Ez),t.registerProcessor(t.PRIORITY.PROCESSOR.SERIES_FILTER,Hz),t.registerSubTypeDefaulter("legend",(function(){return"plain"})),function(t){t.registerAction("legendToggleSelect","legendselectchanged",V(Wz,"toggleSelected")),t.registerAction("legendAllSelect","legendselectall",V(Wz,"allSelect")),t.registerAction("legendInverseSelect","legendinverseselect",V(Wz,"inverseSelect")),t.registerAction("legendSelect","legendselected",V(Wz,"select")),t.registerAction("legendUnSelect","legendunselected",V(Wz,"unSelect"))}(t)}var Xz=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.setScrollDataIndex=function(t){this.option.scrollDataIndex=t},e.prototype.init=function(e,n,i){var r=Rc(e);t.prototype.init.call(this,e,n,i),Uz(this,e,r)},e.prototype.mergeOption=function(e,n){t.prototype.mergeOption.call(this,e,n),Uz(this,this.option,e)},e.type="legend.scroll",e.defaultOption=Ah(Pz.defaultOption,{scrollDataIndex:0,pageButtonItemGap:5,pageButtonGap:null,pageButtonPosition:"end",pageFormatter:"{current}/{total}",pageIcons:{horizontal:["M0,0L12,-10L12,10z","M0,0L-12,-10L-12,10z"],vertical:["M0,0L20,0L10,-20z","M0,0L20,0L10,20z"]},pageIconColor:"#2f4554",pageIconInactiveColor:"#aaa",pageIconSize:15,pageTextStyle:{color:"#333"},animationDurationUpdate:800}),e}(Pz);function Uz(t,e,n){var i=[1,1];i[t.getOrient().index]=0,Oc(e,n,{type:"box",ignoreSize:!!i})}var Zz=Vi,jz=["width","height"],qz=["x","y"],Kz=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.newlineDisabled=!0,n._currentIndex=0,n}return n(e,t),e.prototype.init=function(){t.prototype.init.call(this),this.group.add(this._containerGroup=new Zz),this._containerGroup.add(this.getContentGroup()),this.group.add(this._controllerGroup=new Zz)},e.prototype.resetInner=function(){t.prototype.resetInner.call(this),this._controllerGroup.removeAll(),this._containerGroup.removeClipPath(),this._containerGroup.__rectSize=null},e.prototype.renderInner=function(e,n,i,r,o,a,s){var l=this;t.prototype.renderInner.call(this,e,n,i,r,o,a,s);var u=this._controllerGroup,h=n.get("pageIconSize",!0),c=F(h)?h:[h,h];d("pagePrev",0);var p=n.getModel("pageTextStyle");function d(t,e){var i=t+"DataIndex",o=ju(n.get("pageIcons",!0)[n.getOrient().name][e],{onclick:B(l._pageGo,l,i,n,r)},{x:-c[0]/2,y:-c[1]/2,width:c[0],height:c[1]});o.name=t,u.add(o)}u.add(new hs({name:"pageText",style:{text:"xx/xx",fill:p.getTextColor(),font:p.getFont(),verticalAlign:"middle",align:"center"},silent:!0})),d("pageNext",1)},e.prototype.layoutInner=function(t,e,n,i,r,o){var a=this.getSelectorGroup(),s=t.getOrient().index,l=jz[s],u=qz[s],h=jz[1-s],c=qz[1-s];r&&Dc("horizontal",a,t.get("selectorItemGap",!0));var p=t.get("selectorButtonGap",!0),d=a.getBoundingRect(),f=[-d.x,-d.y],g=w(n);r&&(g[l]=n[l]-d[l]-p);var y=this._layoutContentAndController(t,i,g,s,l,h,c,u);if(r){if("end"===o)f[s]+=y[l]+p;else{var v=d[l]+p;f[s]-=v,y[u]-=v}y[l]+=d[l]+p,f[1-s]+=y[c]+y[h]/2-d[h]/2,y[h]=Math.max(y[h],d[h]),y[c]=Math.min(y[c],d[c]+f[1-s]),a.x=f[0],a.y=f[1],a.markRedraw()}return y},e.prototype._layoutContentAndController=function(t,e,n,i,r,o,a,s){var l=this.getContentGroup(),u=this._containerGroup,h=this._controllerGroup;Dc(t.get("orient"),l,t.get("itemGap"),i?n.width:null,i?null:n.height),Dc("horizontal",h,t.get("pageButtonItemGap",!0));var c=l.getBoundingRect(),p=h.getBoundingRect(),d=this._showController=c[r]>n[r],f=[-c.x,-c.y];e||(f[i]=l[s]);var g=[0,0],y=[-p.x,-p.y],v=tt(t.get("pageButtonGap",!0),t.get("itemGap",!0));d&&("end"===t.get("pageButtonPosition",!0)?y[i]+=n[r]-p[r]:g[i]+=p[r]+v);y[1-i]+=c[o]/2-p[o]/2,l.setPosition(f),u.setPosition(g),h.setPosition(y);var m={x:0,y:0};if(m[r]=d?n[r]:c[r],m[o]=Math.max(c[o],p[o]),m[a]=Math.min(0,p[a]+y[1-i]),u.__rectSize=n[r],d){var _={x:0,y:0};_[r]=Math.max(n[r]-p[r]-v,0),_[o]=m[o],u.setClipPath(new ss({shape:_})),u.__rectSize=_[r]}else h.eachChild((function(t){t.attr({invisible:!0,silent:!0})}));var x=this._getPageInfo(t);return null!=x.pageIndex&&Nu(l,{x:x.contentPosition[0],y:x.contentPosition[1]},d?t:null),this._updatePageInfoView(t,x),m},e.prototype._pageGo=function(t,e,n){var i=this._getPageInfo(e)[t];null!=i&&n.dispatchAction({type:"legendScroll",scrollDataIndex:i,legendId:e.id})},e.prototype._updatePageInfoView=function(t,e){var n=this._controllerGroup;P(["pagePrev","pageNext"],(function(i){var r=null!=e[i+"DataIndex"],o=n.childOfName(i);o&&(o.setStyle("fill",r?t.get("pageIconColor",!0):t.get("pageIconInactiveColor",!0)),o.cursor=r?"pointer":"default")}));var i=n.childOfName("pageText"),r=t.get("pageFormatter"),o=e.pageIndex,a=null!=o?o+1:0,s=e.pageCount;i&&r&&i.setStyle("text",H(r)?r.replace("{current}",null==a?"":a+"").replace("{total}",null==s?"":s+""):r({current:a,total:s}))},e.prototype._getPageInfo=function(t){var e=t.get("scrollDataIndex",!0),n=this.getContentGroup(),i=this._containerGroup.__rectSize,r=t.getOrient().index,o=jz[r],a=qz[r],s=this._findTargetItemIndex(e),l=n.children(),u=l[s],h=l.length,c=h?1:0,p={contentPosition:[n.x,n.y],pageCount:c,pageIndex:c-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!u)return p;var d=m(u);p.contentPosition[r]=-d.s;for(var f=s+1,g=d,y=d,v=null;f<=h;++f)(!(v=m(l[f]))&&y.e>g.s+i||v&&!_(v,g.s))&&(g=y.i>g.i?y:v)&&(null==p.pageNextDataIndex&&(p.pageNextDataIndex=g.i),++p.pageCount),y=v;for(f=s-1,g=d,y=d,v=null;f>=-1;--f)(v=m(l[f]))&&_(y,v.s)||!(g.i<y.i)||(y=g,null==p.pagePrevDataIndex&&(p.pagePrevDataIndex=g.i),++p.pageCount,++p.pageIndex),g=v;return p;function m(t){if(t){var e=t.getBoundingRect(),n=e[a]+t[a];return{s:n,e:n+e[o],i:t.__legendDataIndex}}}function _(t,e){return t.e>=e&&t.s<=e+i}},e.prototype._findTargetItemIndex=function(t){return this._showController?(this.getContentGroup().eachChild((function(i,r){var o=i.__legendDataIndex;null==n&&null!=o&&(n=r),o===t&&(e=r)})),null!=e?e:n):0;var e,n},e.type="legend.scroll",e}(Ez);function $z(t){im(Yz),t.registerComponentModel(Xz),t.registerComponentView(Kz),function(t){t.registerAction("legendScroll","legendscroll",(function(t,e){var n=t.scrollDataIndex;null!=n&&e.eachComponent({mainType:"legend",subType:"scroll",query:t},(function(t){t.setScrollDataIndex(n)}))}))}(t)}var Jz=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="dataZoom.inside",e.defaultOption=Ah(JR.defaultOption,{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),e}(JR),Qz=Pr();function tB(t,e,n){Qz(t).coordSysRecordMap.each((function(t){var i=t.dataZoomInfoMap.get(e.uid);i&&(i.getRange=n)}))}function eB(t,e){if(e){t.removeKey(e.model.uid);var n=e.controller;n&&n.dispose()}}function nB(t,e){t.dispatchAction({type:"dataZoom",animation:{easing:"cubicOut",duration:100},batch:e})}function iB(t,e,n,i){return t.coordinateSystem.containPoint([n,i])}function rB(t){t.registerProcessor(t.PRIORITY.PROCESSOR.FILTER,(function(t,e){var n=Qz(e),i=n.coordSysRecordMap||(n.coordSysRecordMap=ht());i.each((function(t){t.dataZoomInfoMap=null})),t.eachComponent({mainType:"dataZoom",subType:"inside"},(function(t){P(KR(t).infoList,(function(n){var r=n.model.uid,o=i.get(r)||i.set(r,function(t,e){var n={model:e,containsPoint:V(iB,e),dispatchAction:V(nB,t),dataZoomInfoMap:null,controller:null},i=n.controller=new eM(t.getZr());return P(["pan","zoom","scrollMove"],(function(t){i.on(t,(function(e){var i=[];n.dataZoomInfoMap.each((function(r){if(e.isAvailableBehavior(r.model.option)){var o=(r.getRange||{})[t],a=o&&o(r.dzReferCoordSysInfo,n.model.mainType,n.controller,e);!r.model.get("disabled",!0)&&a&&i.push({dataZoomId:r.model.id,start:a[0],end:a[1]})}})),i.length&&n.dispatchAction(i)}))})),n}(e,n.model));(o.dataZoomInfoMap||(o.dataZoomInfoMap=ht())).set(t.uid,{dzReferCoordSysInfo:n,model:t,getRange:null})}))})),i.each((function(t){var e,n=t.controller,r=t.dataZoomInfoMap;if(r){var o=r.keys()[0];null!=o&&(e=r.get(o))}if(e){var a=function(t){var e,n="type_",i={type_true:2,type_move:1,type_false:0,type_undefined:-1},r=!0;return t.each((function(t){var o=t.model,a=!o.get("disabled",!0)&&(!o.get("zoomLock",!0)||"move");i[n+a]>i[n+e]&&(e=a),r=r&&o.get("preventDefaultMouseMove",!0)})),{controlType:e,opt:{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!0,preventDefaultMouseMove:!!r}}}(r);n.enable(a.controlType,a.opt),n.setPointerChecker(t.containsPoint),Af(t,"dispatchAction",e.model.get("throttle",!0),"fixRate")}else eB(i,t)}))}))}var oB=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="dataZoom.inside",e}return n(e,t),e.prototype.render=function(e,n,i){t.prototype.render.apply(this,arguments),e.noTarget()?this._clear():(this.range=e.getPercentRange(),tB(i,e,{pan:B(aB.pan,this),zoom:B(aB.zoom,this),scrollMove:B(aB.scrollMove,this)}))},e.prototype.dispose=function(){this._clear(),t.prototype.dispose.apply(this,arguments)},e.prototype._clear=function(){!function(t,e){for(var n=Qz(t).coordSysRecordMap,i=n.keys(),r=0;r<i.length;r++){var o=i[r],a=n.get(o),s=a.dataZoomInfoMap;if(s){var l=e.uid;s.get(l)&&(s.removeKey(l),s.keys().length||eB(n,a))}}}(this.api,this.dataZoomModel),this.range=null},e.type="dataZoom.inside",e}(eN),aB={zoom:function(t,e,n,i){var r=this.range,o=r.slice(),a=t.axisModels[0];if(a){var s=lB[e](null,[i.originX,i.originY],a,n,t),l=(s.signal>0?s.pixelStart+s.pixelLength-s.pixel:s.pixel-s.pixelStart)/s.pixelLength*(o[1]-o[0])+o[0],u=Math.max(1/i.scale,0);o[0]=(o[0]-l)*u+l,o[1]=(o[1]-l)*u+l;var h=this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();return nA(0,o,[0,100],0,h.minSpan,h.maxSpan),this.range=o,r[0]!==o[0]||r[1]!==o[1]?o:void 0}},pan:sB((function(t,e,n,i,r,o){var a=lB[i]([o.oldX,o.oldY],[o.newX,o.newY],e,r,n);return a.signal*(t[1]-t[0])*a.pixel/a.pixelLength})),scrollMove:sB((function(t,e,n,i,r,o){return lB[i]([0,0],[o.scrollDelta,o.scrollDelta],e,r,n).signal*(t[1]-t[0])*o.scrollDelta}))};function sB(t){return function(e,n,i,r){var o=this.range,a=o.slice(),s=e.axisModels[0];if(s)return nA(t(a,s,e,n,i,r),a,[0,100],"all"),this.range=a,o[0]!==a[0]||o[1]!==a[1]?a:void 0}}var lB={grid:function(t,e,n,i,r){var o=n.axis,a={},s=r.model.coordinateSystem.getRect();return t=t||[0,0],"x"===o.dim?(a.pixel=e[0]-t[0],a.pixelLength=s.width,a.pixelStart=s.x,a.signal=o.inverse?1:-1):(a.pixel=e[1]-t[1],a.pixelLength=s.height,a.pixelStart=s.y,a.signal=o.inverse?-1:1),a},polar:function(t,e,n,i,r){var o=n.axis,a={},s=r.model.coordinateSystem,l=s.getRadiusAxis().getExtent(),u=s.getAngleAxis().getExtent();return t=t?s.pointToCoord(t):[0,0],e=s.pointToCoord(e),"radiusAxis"===n.mainType?(a.pixel=e[0]-t[0],a.pixelLength=l[1]-l[0],a.pixelStart=l[0],a.signal=o.inverse?1:-1):(a.pixel=e[1]-t[1],a.pixelLength=u[1]-u[0],a.pixelStart=u[0],a.signal=o.inverse?-1:1),a},singleAxis:function(t,e,n,i,r){var o=n.axis,a=r.model.coordinateSystem.getRect(),s={};return t=t||[0,0],"horizontal"===o.orient?(s.pixel=e[0]-t[0],s.pixelLength=a.width,s.pixelStart=a.x,s.signal=o.inverse?1:-1):(s.pixel=e[1]-t[1],s.pixelLength=a.height,s.pixelStart=a.y,s.signal=o.inverse?-1:1),s}};function uB(t){lN(t),t.registerComponentModel(Jz),t.registerComponentView(oB),rB(t)}var hB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="dataZoom.slider",e.layoutMode="box",e.defaultOption=Ah(JR.defaultOption,{show:!0,right:"ph",top:"ph",width:"ph",height:"ph",left:null,bottom:null,borderColor:"#d2dbee",borderRadius:3,backgroundColor:"rgba(47,69,84,0)",dataBackground:{lineStyle:{color:"#d2dbee",width:.5},areaStyle:{color:"#d2dbee",opacity:.2}},selectedDataBackground:{lineStyle:{color:"#8fb0f7",width:.5},areaStyle:{color:"#8fb0f7",opacity:.2}},fillerColor:"rgba(135,175,274,0.2)",handleIcon:"path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z",handleSize:"100%",handleStyle:{color:"#fff",borderColor:"#ACB8D1"},moveHandleSize:7,moveHandleIcon:"path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z",moveHandleStyle:{color:"#D2DBEE",opacity:.7},showDetail:!0,showDataShadow:"auto",realtime:!0,zoomLock:!1,textStyle:{color:"#6E7079"},brushSelect:!0,brushStyle:{color:"rgba(135,175,274,0.15)"},emphasis:{handleStyle:{borderColor:"#8FB0F7"},moveHandleStyle:{color:"#8FB0F7"}}}),e}(JR),cB=ss,pB="horizontal",dB="vertical",fB=["line","bar","candlestick","scatter"],gB={easing:"cubicOut",duration:100},yB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._displayables={},n}return n(e,t),e.prototype.init=function(t,e){this.api=e,this._onBrush=B(this._onBrush,this),this._onBrushEnd=B(this._onBrushEnd,this)},e.prototype.render=function(e,n,i,r){if(t.prototype.render.apply(this,arguments),Af(this,"_dispatchZoomAction",e.get("throttle"),"fixRate"),this._orient=e.getOrient(),!1!==e.get("show")){if(e.noTarget())return this._clear(),void this.group.removeAll();r&&"dataZoom"===r.type&&r.from===this.uid||this._buildView(),this._updateView()}else this.group.removeAll()},e.prototype.dispose=function(){this._clear(),t.prototype.dispose.apply(this,arguments)},e.prototype._clear=function(){var t,e,n;(n=(t=this)[e="_dispatchZoomAction"])&&n[Mf]&&(t[e]=n[Mf]);var i=this.api.getZr();i.off("mousemove",this._onBrush),i.off("mouseup",this._onBrushEnd)},e.prototype._buildView=function(){var t=this.group;t.removeAll(),this._brushing=!1,this._displayables.brushRect=null,this._resetLocation(),this._resetInterval();var e=this._displayables.sliderGroup=new Vi;this._renderBackground(),this._renderHandle(),this._renderDataShadow(),t.add(e),this._positionGroup()},e.prototype._resetLocation=function(){var t=this.dataZoomModel,e=this.api,n=t.get("brushSelect")?7:0,i=this._findCoordRect(),r={width:e.getWidth(),height:e.getHeight()},o=this._orient===pB?{right:r.width-i.x-i.width,top:r.height-30-7-n,width:i.width,height:30}:{right:7,top:i.y,width:30,height:i.height},a=Rc(t.option);P(["right","top","width","height"],(function(t){"ph"===a[t]&&(a[t]=o[t])}));var s=Lc(a,r);this._location={x:s.x,y:s.y},this._size=[s.width,s.height],this._orient===dB&&this._size.reverse()},e.prototype._positionGroup=function(){var t=this.group,e=this._location,n=this._orient,i=this.dataZoomModel.getFirstTargetAxisModel(),r=i&&i.get("inverse"),o=this._displayables.sliderGroup,a=(this._dataShadowInfo||{}).otherAxisInverse;o.attr(n!==pB||r?n===pB&&r?{scaleY:a?1:-1,scaleX:-1}:n!==dB||r?{scaleY:a?-1:1,scaleX:-1,rotation:Math.PI/2}:{scaleY:a?-1:1,scaleX:1,rotation:Math.PI/2}:{scaleY:a?1:-1,scaleX:1});var s=t.getBoundingRect([o]);t.x=e.x-s.x,t.y=e.y-s.y,t.markRedraw()},e.prototype._getViewExtent=function(){return[0,this._size[0]]},e.prototype._renderBackground=function(){var t=this.dataZoomModel,e=this._size,n=this._displayables.sliderGroup,i=t.get("brushSelect");n.add(new cB({silent:!0,shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:t.get("backgroundColor")},z2:-40}));var r=new cB({shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:"transparent"},z2:0,onclick:B(this._onClickPanel,this)}),o=this.api.getZr();i?(r.on("mousedown",this._onBrushStart,this),r.cursor="crosshair",o.on("mousemove",this._onBrush),o.on("mouseup",this._onBrushEnd)):(o.off("mousemove",this._onBrush),o.off("mouseup",this._onBrushEnd)),n.add(r)},e.prototype._renderDataShadow=function(){var t=this._dataShadowInfo=this._prepareDataShadowInfo();if(this._displayables.dataShadowSegs=[],t){var e=this._size,n=t.series,i=n.getRawData(),r=n.getShadowDim?n.getShadowDim():t.otherDim;if(null!=r){var o=i.getDataExtent(r),a=.3*(o[1]-o[0]);o=[o[0]-a,o[1]+a];var s,l=[0,e[1]],u=[0,e[0]],h=[[e[0],0],[0,0]],c=[],p=u[1]/(i.count()-1),d=0,f=Math.round(i.count()/e[0]);i.each([r],(function(t,e){if(f>0&&e%f)d+=p;else{var n=null==t||isNaN(t)||""===t,i=n?0:ji(t,o,l,!0);n&&!s&&e?(h.push([h[h.length-1][0],0]),c.push([c[c.length-1][0],0])):!n&&s&&(h.push([d,0]),c.push([d,0])),h.push([d,i]),c.push([d,i]),d+=p,s=n}}));for(var g=this.dataZoomModel,y=0;y<3;y++){var v=m(1===y);this._displayables.sliderGroup.add(v),this._displayables.dataShadowSegs.push(v)}}}function m(t){var e=g.getModel(t?"selectedDataBackground":"dataBackground"),n=new Vi,i=new $l({shape:{points:h},segmentIgnoreThreshold:1,style:e.getModel("areaStyle").getAreaStyle(),silent:!0,z2:-20}),r=new Ql({shape:{points:c},segmentIgnoreThreshold:1,style:e.getModel("lineStyle").getLineStyle(),silent:!0,z2:-19});return n.add(i),n.add(r),n}},e.prototype._prepareDataShadowInfo=function(){var t=this.dataZoomModel,e=t.get("showDataShadow");if(!1!==e){var n,i=this.ecModel;return t.eachTargetAxis((function(r,o){P(t.getAxisProxy(r,o).getTargetSeriesModels(),(function(t){if(!(n||!0!==e&&A(fB,t.get("type"))<0)){var a,s=i.getComponent(jR(r),o).axis,l={x:"y",y:"x",radius:"angle",angle:"radius"}[r],u=t.coordinateSystem;null!=l&&u.getOtherAxis&&(a=u.getOtherAxis(s).inverse),l=t.getData().mapDimension(l),n={thisAxis:s,series:t,thisDim:r,otherDim:l,otherAxisInverse:a}}}),this)}),this),n}},e.prototype._renderHandle=function(){var t=this.group,e=this._displayables,n=e.handles=[null,null],i=e.handleLabels=[null,null],r=this._displayables.sliderGroup,o=this._size,a=this.dataZoomModel,s=this.api,l=a.get("borderRadius")||0,u=a.get("brushSelect"),h=e.filler=new cB({silent:u,style:{fill:a.get("fillerColor")},textConfig:{position:"inside"}});r.add(h),r.add(new cB({silent:!0,subPixelOptimize:!0,shape:{x:0,y:0,width:o[0],height:o[1],r:l},style:{stroke:a.get("dataBackgroundColor")||a.get("borderColor"),lineWidth:1,fill:"rgba(0,0,0,0)"}})),P([0,1],(function(e){var o=a.get("handleIcon");!ly[o]&&o.indexOf("path://")<0&&(o="path://"+o);var s=cy(o,-1,0,2,2,null,!0);s.attr({cursor:vB(this._orient),draggable:!0,drift:B(this._onDragMove,this,e),ondragend:B(this._onDragEnd,this),onmouseover:B(this._showDataInfo,this,!0),onmouseout:B(this._showDataInfo,this,!1),z2:5});var l=s.getBoundingRect(),u=a.get("handleSize");this._handleHeight=qi(u,this._size[1]),this._handleWidth=l.width/l.height*this._handleHeight,s.setStyle(a.getModel("handleStyle").getItemStyle()),s.style.strokeNoScale=!0,s.rectHover=!0,s.ensureState("emphasis").style=a.getModel(["emphasis","handleStyle"]).getItemStyle(),tl(s);var h=a.get("handleColor");null!=h&&(s.style.fill=h),r.add(n[e]=s);var c=a.getModel("textStyle");t.add(i[e]=new hs({silent:!0,invisible:!0,style:{x:0,y:0,text:"",verticalAlign:"middle",align:"center",fill:c.getTextColor(),font:c.getFont()},z2:10}))}),this);var c=h;if(u){var p=qi(a.get("moveHandleSize"),o[1]),d=e.moveHandle=new ss({style:a.getModel("moveHandleStyle").getItemStyle(),silent:!0,shape:{r:[0,0,2,2],y:o[1]-.5,height:p}}),f=.8*p,g=e.moveHandleIcon=cy(a.get("moveHandleIcon"),-f/2,-f/2,f,f,"#fff",!0);g.silent=!0,g.y=o[1]+p/2-.5,d.ensureState("emphasis").style=a.getModel(["emphasis","moveHandleStyle"]).getItemStyle();var y=Math.min(o[1]/2,Math.max(p,10));(c=e.moveZone=new ss({invisible:!0,shape:{y:o[1]-y,height:p+y}})).on("mouseover",(function(){s.enterEmphasis(d)})).on("mouseout",(function(){s.leaveEmphasis(d)})),r.add(d),r.add(g),r.add(c)}c.attr({draggable:!0,cursor:vB(this._orient),drift:B(this._onDragMove,this,"all"),ondragstart:B(this._showDataInfo,this,!0),ondragend:B(this._onDragEnd,this),onmouseover:B(this._showDataInfo,this,!0),onmouseout:B(this._showDataInfo,this,!1)})},e.prototype._resetInterval=function(){var t=this._range=this.dataZoomModel.getPercentRange(),e=this._getViewExtent();this._handleEnds=[ji(t[0],[0,100],e,!0),ji(t[1],[0,100],e,!0)]},e.prototype._updateInterval=function(t,e){var n=this.dataZoomModel,i=this._handleEnds,r=this._getViewExtent(),o=n.findRepresentativeAxisProxy().getMinMaxSpan(),a=[0,100];nA(e,i,r,n.get("zoomLock")?"all":t,null!=o.minSpan?ji(o.minSpan,a,r,!0):null,null!=o.maxSpan?ji(o.maxSpan,a,r,!0):null);var s=this._range,l=this._range=$i([ji(i[0],r,a,!0),ji(i[1],r,a,!0)]);return!s||s[0]!==l[0]||s[1]!==l[1]},e.prototype._updateView=function(t){var e=this._displayables,n=this._handleEnds,i=$i(n.slice()),r=this._size;P([0,1],(function(t){var i=e.handles[t],o=this._handleHeight;i.attr({scaleX:o/2,scaleY:o/2,x:n[t]+(t?-1:1),y:r[1]/2-o/2})}),this),e.filler.setShape({x:i[0],y:0,width:i[1]-i[0],height:r[1]});var o={x:i[0],width:i[1]-i[0]};e.moveHandle&&(e.moveHandle.setShape(o),e.moveZone.setShape(o),e.moveZone.getBoundingRect(),e.moveHandleIcon&&e.moveHandleIcon.attr("x",o.x+o.width/2));for(var a=e.dataShadowSegs,s=[0,i[0],i[1],r[0]],l=0;l<a.length;l++){var u=a[l],h=u.getClipPath();h||(h=new ss,u.setClipPath(h)),h.setShape({x:s[l],y:0,width:s[l+1]-s[l],height:r[1]})}this._updateDataInfo(t)},e.prototype._updateDataInfo=function(t){var e=this.dataZoomModel,n=this._displayables,i=n.handleLabels,r=this._orient,o=["",""];if(e.get("showDetail")){var a=e.findRepresentativeAxisProxy();if(a){var s=a.getAxisModel().axis,l=this._range,u=t?a.calculateDataWindow({start:l[0],end:l[1]}).valueWindow:a.getDataValueWindow();o=[this._formatLabel(u[0],s),this._formatLabel(u[1],s)]}}var h=$i(this._handleEnds.slice());function c(t){var e=Gu(n.handles[t].parent,this.group),a=Wu(0===t?"right":"left",e),s=this._handleWidth/2+5,l=Hu([h[t]+(0===t?-s:s),this._size[1]/2],e);i[t].setStyle({x:l[0],y:l[1],verticalAlign:r===pB?"middle":a,align:r===pB?a:"center",text:o[t]})}c.call(this,0),c.call(this,1)},e.prototype._formatLabel=function(t,e){var n=this.dataZoomModel,i=n.get("labelFormatter"),r=n.get("labelPrecision");null!=r&&"auto"!==r||(r=e.getPixelPrecision());var o=null==t||isNaN(t)?"":"category"===e.type||"time"===e.type?e.scale.getLabel({value:Math.round(t)}):t.toFixed(Math.min(r,20));return G(i)?i(t,o):H(i)?i.replace("{value}",o):o},e.prototype._showDataInfo=function(t){t=this._dragging||t;var e=this._displayables,n=e.handleLabels;n[0].attr("invisible",!t),n[1].attr("invisible",!t),e.moveHandle&&this.api[t?"enterEmphasis":"leaveEmphasis"](e.moveHandle,1)},e.prototype._onDragMove=function(t,e,n,i){this._dragging=!0,ie(i.event);var r=Hu([e,n],this._displayables.sliderGroup.getLocalTransform(),!0),o=this._updateInterval(t,r[0]),a=this.dataZoomModel.get("realtime");this._updateView(!a),o&&a&&this._dispatchZoomAction(!0)},e.prototype._onDragEnd=function(){this._dragging=!1,this._showDataInfo(!1),!this.dataZoomModel.get("realtime")&&this._dispatchZoomAction(!1)},e.prototype._onClickPanel=function(t){var e=this._size,n=this._displayables.sliderGroup.transformCoordToLocal(t.offsetX,t.offsetY);if(!(n[0]<0||n[0]>e[0]||n[1]<0||n[1]>e[1])){var i=this._handleEnds,r=(i[0]+i[1])/2,o=this._updateInterval("all",n[0]-r);this._updateView(),o&&this._dispatchZoomAction(!1)}},e.prototype._onBrushStart=function(t){var e=t.offsetX,n=t.offsetY;this._brushStart=new Cn(e,n),this._brushing=!0,this._brushStartTime=+new Date},e.prototype._onBrushEnd=function(t){if(this._brushing){var e=this._displayables.brushRect;if(this._brushing=!1,e){e.attr("ignore",!0);var n=e.shape;if(!(+new Date-this._brushStartTime<200&&Math.abs(n.width)<5)){var i=this._getViewExtent(),r=[0,100];this._range=$i([ji(n.x,i,r,!0),ji(n.x+n.width,i,r,!0)]),this._handleEnds=[n.x,n.x+n.width],this._updateView(),this._dispatchZoomAction(!1)}}}},e.prototype._onBrush=function(t){this._brushing&&(ie(t.event),this._updateBrushRect(t.offsetX,t.offsetY))},e.prototype._updateBrushRect=function(t,e){var n=this._displayables,i=this.dataZoomModel,r=n.brushRect;r||(r=n.brushRect=new cB({silent:!0,style:i.getModel("brushStyle").getItemStyle()}),n.sliderGroup.add(r)),r.attr("ignore",!1);var o=this._brushStart,a=this._displayables.sliderGroup,s=a.transformCoordToLocal(t,e),l=a.transformCoordToLocal(o.x,o.y),u=this._size;s[0]=Math.max(Math.min(u[0],s[0]),0),r.setShape({x:l[0],y:0,width:s[0]-l[0],height:u[1]})},e.prototype._dispatchZoomAction=function(t){var e=this._range;this.api.dispatchAction({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,animation:t?gB:null,start:e[0],end:e[1]})},e.prototype._findCoordRect=function(){var t,e=KR(this.dataZoomModel).infoList;if(!t&&e.length){var n=e[0].model.coordinateSystem;t=n.getRect&&n.getRect()}if(!t){var i=this.api.getWidth(),r=this.api.getHeight();t={x:.2*i,y:.2*r,width:.6*i,height:.6*r}}return t},e.type="dataZoom.slider",e}(eN);function vB(t){return"vertical"===t?"ns-resize":"ew-resize"}function mB(t){t.registerComponentModel(hB),t.registerComponentView(yB),lN(t)}var _B=function(t,e,n){var i=w((xB[t]||{})[e]);return n&&F(i)?i[i.length-1]:i},xB={color:{active:["#006edd","#e0ffff"],inactive:["rgba(0,0,0,0)"]},colorHue:{active:[0,360],inactive:[0,0]},colorSaturation:{active:[.3,1],inactive:[0,0]},colorLightness:{active:[.9,.5],inactive:[0,0]},colorAlpha:{active:[.3,1],inactive:[0,0]},opacity:{active:[.3,1],inactive:[0,0]},symbol:{active:["circle","roundRect","diamond"],inactive:["none"]},symbolSize:{active:[10,50],inactive:[0,0]}},bB=KI.mapVisual,wB=KI.eachVisual,SB=F,MB=P,IB=$i,TB=ji,CB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.stateList=["inRange","outOfRange"],n.replacableOptionKeys=["inRange","outOfRange","target","controller","color"],n.layoutMode={type:"box",ignoreSize:!0},n.dataBound=[-1/0,1/0],n.targetVisuals={},n.controllerVisuals={},n}return n(e,t),e.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n)},e.prototype.optionUpdated=function(t,e){var n=this.option;a.canvasSupported||(n.realtime=!1),!e&&wE(n,t,this.replacableOptionKeys),this.textStyleModel=this.getModel("textStyle"),this.resetItemSize(),this.completeVisualOption()},e.prototype.resetVisual=function(t){var e=this.stateList;t=B(t,this),this.controllerVisuals=bE(this.option.controller,e,t),this.targetVisuals=bE(this.option.target,e,t)},e.prototype.getTargetSeriesIndices=function(){var t=this.option.seriesIndex,e=[];return null==t||"all"===t?this.ecModel.eachSeries((function(t,n){e.push(n)})):e=br(t),e},e.prototype.eachTargetSeries=function(t,e){P(this.getTargetSeriesIndices(),(function(n){var i=this.ecModel.getSeriesByIndex(n);i&&t.call(e,i)}),this)},e.prototype.isTargetSeries=function(t){var e=!1;return this.eachTargetSeries((function(n){n===t&&(e=!0)})),e},e.prototype.formatValueText=function(t,e,n){var i,r=this.option,o=r.precision,a=this.dataBound,s=r.formatter;n=n||["<",">"],F(t)&&(t=t.slice(),i=!0);var l=e?t:i?[u(t[0]),u(t[1])]:u(t);return H(s)?s.replace("{value}",i?l[0]:l).replace("{value2}",i?l[1]:l):G(s)?i?s(t[0],t[1]):s(t):i?t[0]===a[0]?n[0]+" "+l[1]:t[1]===a[1]?n[1]+" "+l[0]:l[0]+" - "+l[1]:l;function u(t){return t===a[0]?"min":t===a[1]?"max":(+t).toFixed(Math.min(o,20))}},e.prototype.resetExtent=function(){var t=this.option,e=IB([t.min,t.max]);this._dataExtent=e},e.prototype.getDataDimension=function(t){var e=this.option.dimension,n=t.dimensions;if(null!=e||n.length){if(null!=e)return t.getDimension(e);for(var i=t.dimensions,r=i.length-1;r>=0;r--){var o=i[r];if(!t.getDimensionInfo(o).isCalculationCoord)return o}}},e.prototype.getExtent=function(){return this._dataExtent.slice()},e.prototype.completeVisualOption=function(){var t=this.ecModel,e=this.option,n={inRange:e.inRange,outOfRange:e.outOfRange},i=e.target||(e.target={}),r=e.controller||(e.controller={});S(i,n),S(r,n);var o=this.isCategory();function a(n){SB(e.color)&&!n.inRange&&(n.inRange={color:e.color.slice().reverse()}),n.inRange=n.inRange||{color:t.get("gradientColor")}}a.call(this,i),a.call(this,r),function(t,e,n){var i=t[e],r=t[n];i&&!r&&(r=t[n]={},MB(i,(function(t,e){if(KI.isValidType(e)){var n=_B(e,"inactive",o);null!=n&&(r[e]=n,"color"!==e||r.hasOwnProperty("opacity")||r.hasOwnProperty("colorAlpha")||(r.opacity=[0,0]))}})))}.call(this,i,"inRange","outOfRange"),function(t){var e=(t.inRange||{}).symbol||(t.outOfRange||{}).symbol,n=(t.inRange||{}).symbolSize||(t.outOfRange||{}).symbolSize,i=this.get("inactiveColor");MB(this.stateList,(function(r){var a=this.itemSize,s=t[r];s||(s=t[r]={color:o?i:[i]}),null==s.symbol&&(s.symbol=e&&w(e)||(o?"roundRect":["roundRect"])),null==s.symbolSize&&(s.symbolSize=n&&w(n)||(o?a[0]:[a[0],a[0]])),s.symbol=bB(s.symbol,(function(t){return"none"===t||"square"===t?"roundRect":t}));var l=s.symbolSize;if(null!=l){var u=-1/0;wB(l,(function(t){t>u&&(u=t)})),s.symbolSize=bB(l,(function(t){return TB(t,[0,u],[0,a[0]],!0)}))}}),this)}.call(this,r)},e.prototype.resetItemSize=function(){this.itemSize=[parseFloat(this.get("itemWidth")),parseFloat(this.get("itemHeight"))]},e.prototype.isCategory=function(){return!!this.option.categories},e.prototype.setSelected=function(t){},e.prototype.getSelected=function(){return null},e.prototype.getValueState=function(t){return null},e.prototype.getVisualMeta=function(t){return null},e.type="visualMap",e.dependencies=["series"],e.defaultOption={show:!0,zlevel:0,z:4,seriesIndex:"all",min:0,max:200,left:0,right:null,top:null,bottom:0,itemWidth:null,itemHeight:null,inverse:!1,orient:"vertical",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",contentColor:"#5793f3",inactiveColor:"#aaa",borderWidth:0,padding:5,textGap:10,precision:0,textStyle:{color:"#333"}},e}(zc),AB=[20,140],DB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.optionUpdated=function(e,n){t.prototype.optionUpdated.apply(this,arguments),this.resetExtent(),this.resetVisual((function(t){t.mappingMethod="linear",t.dataExtent=this.getExtent()})),this._resetRange()},e.prototype.resetItemSize=function(){t.prototype.resetItemSize.apply(this,arguments);var e=this.itemSize;(null==e[0]||isNaN(e[0]))&&(e[0]=AB[0]),(null==e[1]||isNaN(e[1]))&&(e[1]=AB[1])},e.prototype._resetRange=function(){var t=this.getExtent(),e=this.option.range;!e||e.auto?(t.auto=1,this.option.range=t):F(e)&&(e[0]>e[1]&&e.reverse(),e[0]=Math.max(e[0],t[0]),e[1]=Math.min(e[1],t[1]))},e.prototype.completeVisualOption=function(){t.prototype.completeVisualOption.apply(this,arguments),P(this.stateList,(function(t){var e=this.option.controller[t].symbolSize;e&&e[0]!==e[1]&&(e[0]=e[1]/3)}),this)},e.prototype.setSelected=function(t){this.option.range=t.slice(),this._resetRange()},e.prototype.getSelected=function(){var t=this.getExtent(),e=$i((this.get("range")||[]).slice());return e[0]>t[1]&&(e[0]=t[1]),e[1]>t[1]&&(e[1]=t[1]),e[0]<t[0]&&(e[0]=t[0]),e[1]<t[0]&&(e[1]=t[0]),e},e.prototype.getValueState=function(t){var e=this.option.range,n=this.getExtent();return(e[0]<=n[0]||e[0]<=t)&&(e[1]>=n[1]||t<=e[1])?"inRange":"outOfRange"},e.prototype.findTargetDataIndices=function(t){var e=[];return this.eachTargetSeries((function(n){var i=[],r=n.getData();r.each(this.getDataDimension(r),(function(e,n){t[0]<=e&&e<=t[1]&&i.push(n)}),this),e.push({seriesId:n.id,dataIndex:i})}),this),e},e.prototype.getVisualMeta=function(t){var e=LB(this,"outOfRange",this.getExtent()),n=LB(this,"inRange",this.option.range.slice()),i=[];function r(e,n){i.push({value:e,color:t(e,n)})}for(var o=0,a=0,s=n.length,l=e.length;a<l&&(!n.length||e[a]<=n[0]);a++)e[a]<n[o]&&r(e[a],"outOfRange");for(var u=1;o<s;o++,u=0)u&&i.length&&r(n[o],"outOfRange"),r(n[o],"inRange");for(u=1;a<l;a++)(!n.length||n[n.length-1]<e[a])&&(u&&(i.length&&r(i[i.length-1].value,"outOfRange"),u=0),r(e[a],"outOfRange"));var h=i.length;return{stops:i,outerColors:[h?i[0].color:"transparent",h?i[h-1].color:"transparent"]}},e.type="visualMap.continuous",e.defaultOption=Ah(CB.defaultOption,{align:"auto",calculable:!1,hoverLink:!0,realtime:!0,handleIcon:"path://M-11.39,9.77h0a3.5,3.5,0,0,1-3.5,3.5h-22a3.5,3.5,0,0,1-3.5-3.5h0a3.5,3.5,0,0,1,3.5-3.5h22A3.5,3.5,0,0,1-11.39,9.77Z",handleSize:"120%",handleStyle:{borderColor:"#fff",borderWidth:1},indicatorIcon:"circle",indicatorSize:"50%",indicatorStyle:{borderColor:"#fff",borderWidth:2,shadowBlur:2,shadowOffsetX:1,shadowOffsetY:1,shadowColor:"rgba(0,0,0,0.2)"}}),e}(CB);function LB(t,e,n){if(n[0]===n[1])return n.slice();for(var i=(n[1]-n[0])/200,r=n[0],o=[],a=0;a<=200&&r<n[1];a++)o.push(r),r+=i;return o.push(n[1]),o}var kB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.autoPositionValues={left:1,right:1,top:1,bottom:1},n}return n(e,t),e.prototype.init=function(t,e){this.ecModel=t,this.api=e},e.prototype.render=function(t,e,n,i){this.visualMapModel=t,!1!==t.get("show")?this.doRender(t,e,n,i):this.group.removeAll()},e.prototype.renderBackground=function(t){var e=this.visualMapModel,n=fc(e.get("padding")||0),i=t.getBoundingRect();t.add(new ss({z2:-1,silent:!0,shape:{x:i.x-n[3],y:i.y-n[0],width:i.width+n[3]+n[1],height:i.height+n[0]+n[2]},style:{fill:e.get("backgroundColor"),stroke:e.get("borderColor"),lineWidth:e.get("borderWidth")}}))},e.prototype.getControllerVisual=function(t,e,n){var i=(n=n||{}).forceState,r=this.visualMapModel,o={};if("symbol"===e&&(o.symbol=r.get("itemSymbol")),"color"===e){var a=r.get("contentColor");o.color=a}function s(t){return o[t]}function l(t,e){o[t]=e}var u=r.controllerVisuals[i||r.getValueState(t)];return P(KI.prepareVisualTypes(u),(function(i){var r=u[i];n.convertOpacityToAlpha&&"opacity"===i&&(i="colorAlpha",r=u.__alphaForOpacity),KI.dependsOn(i,e)&&r&&r.applyVisual(t,s,l)})),o[e]},e.prototype.positionGroup=function(t){var e=this.visualMapModel,n=this.api;kc(t,e.getBoxLayoutParams(),{width:n.getWidth(),height:n.getHeight()})},e.prototype.doRender=function(t,e,n,i){},e.type="visualMap",e}(ff),PB=[["left","right","width"],["top","bottom","height"]];function OB(t,e,n){var i=t.option,r=i.align;if(null!=r&&"auto"!==r)return r;for(var o={width:e.getWidth(),height:e.getHeight()},a="horizontal"===i.orient?1:0,s=PB[a],l=[0,null,10],u={},h=0;h<3;h++)u[PB[1-a][h]]=l[h],u[s[h]]=2===h?n[0]:i[s[h]];var c=[["x","width",3],["y","height",0]][a],p=Lc(u,o,i.padding);return s[(p.margin[c[2]]||0)+p[c[0]]+.5*p[c[1]]<.5*o[c[1]]?0:1]}function RB(t,e){return P(t||[],(function(t){null!=t.dataIndex&&(t.dataIndexInside=t.dataIndex,t.dataIndex=null),t.highlightKey="visualMap"+(e?e.componentIndex:"")})),t}var NB=ji,EB=P,zB=Math.min,BB=Math.max,VB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._shapes={},n._dataInterval=[],n._handleEnds=[],n._hoverLinkDataIndices=[],n}return n(e,t),e.prototype.doRender=function(t,e,n,i){this._api=n,i&&"selectDataRange"===i.type&&i.from===this.uid||this._buildView()},e.prototype._buildView=function(){this.group.removeAll();var t=this.visualMapModel,e=this.group;this._orient=t.get("orient"),this._useHandle=t.get("calculable"),this._resetInterval(),this._renderBar(e);var n=t.get("text");this._renderEndsText(e,n,0),this._renderEndsText(e,n,1),this._updateView(!0),this.renderBackground(e),this._updateView(),this._enableHoverLinkToSeries(),this._enableHoverLinkFromSeries(),this.positionGroup(e)},e.prototype._renderEndsText=function(t,e,n){if(e){var i=e[1-n];i=null!=i?i+"":"";var r=this.visualMapModel,o=r.get("textGap"),a=r.itemSize,s=this._shapes.mainGroup,l=this._applyTransform([a[0]/2,0===n?-o:a[1]+o],s),u=this._applyTransform(0===n?"bottom":"top",s),h=this._orient,c=this.visualMapModel.textStyleModel;this.group.add(new hs({style:{x:l[0],y:l[1],verticalAlign:"horizontal"===h?"middle":u,align:"horizontal"===h?u:"center",text:i,font:c.getFont(),fill:c.getTextColor()}}))}},e.prototype._renderBar=function(t){var e=this.visualMapModel,n=this._shapes,i=e.itemSize,r=this._orient,o=this._useHandle,a=OB(e,this.api,i),s=n.mainGroup=this._createBarGroup(a),l=new Vi;s.add(l),l.add(n.outOfRange=FB()),l.add(n.inRange=FB(null,o?HB(this._orient):null,B(this._dragHandle,this,"all",!1),B(this._dragHandle,this,"all",!0))),l.setClipPath(new ss({shape:{x:0,y:0,width:i[0],height:i[1],r:3}}));var u=e.textStyleModel.getTextRect("国"),h=BB(u.width,u.height);o&&(n.handleThumbs=[],n.handleLabels=[],n.handleLabelPoints=[],this._createHandle(e,s,0,i,h,r),this._createHandle(e,s,1,i,h,r)),this._createIndicator(e,s,i,h,r),t.add(s)},e.prototype._createHandle=function(t,e,n,i,r,o){var a=B(this._dragHandle,this,n,!1),s=B(this._dragHandle,this,n,!0),l=Un(t.get("handleSize"),i[0]),u=cy(t.get("handleIcon"),-l/2,-l/2,l,l,null,!0),h=HB(this._orient);u.attr({cursor:h,draggable:!0,drift:a,ondragend:s,onmousemove:function(t){ie(t.event)}}),u.x=i[0]/2,u.useStyle(t.getModel("handleStyle").getItemStyle()),u.setStyle({strokeNoScale:!0,strokeFirst:!0}),u.style.lineWidth*=2,u.ensureState("emphasis").style=t.getModel(["emphasis","handleStyle"]).getItemStyle(),ol(u,!0),e.add(u);var c=this.visualMapModel.textStyleModel,p=new hs({cursor:h,draggable:!0,drift:a,onmousemove:function(t){ie(t.event)},ondragend:s,style:{x:0,y:0,text:"",font:c.getFont(),fill:c.getTextColor()}});p.ensureState("blur").style={opacity:.1},p.stateTransition={duration:200},this.group.add(p);var d=[l,0],f=this._shapes;f.handleThumbs[n]=u,f.handleLabelPoints[n]=d,f.handleLabels[n]=p},e.prototype._createIndicator=function(t,e,n,i,r){var o=Un(t.get("indicatorSize"),n[0]),a=cy(t.get("indicatorIcon"),-o/2,-o/2,o,o,null,!0);a.attr({cursor:"move",invisible:!0,silent:!0,x:n[0]/2});var s=t.getModel("indicatorStyle").getItemStyle();if(a instanceof ts){var l=a.style;a.useStyle(I({image:l.image,x:l.x,y:l.y,width:l.width,height:l.height},s))}else a.useStyle(s);e.add(a);var u=this.visualMapModel.textStyleModel,h=new hs({silent:!0,invisible:!0,style:{x:0,y:0,text:"",font:u.getFont(),fill:u.getTextColor()}});this.group.add(h);var c=[("horizontal"===r?i/2:6)+n[0]/2,0],p=this._shapes;p.indicator=a,p.indicatorLabel=h,p.indicatorLabelPoint=c,this._firstShowIndicator=!0},e.prototype._dragHandle=function(t,e,n,i){if(this._useHandle){if(this._dragging=!e,!e){var r=this._applyTransform([n,i],this._shapes.mainGroup,!0);this._updateInterval(t,r[1]),this._hideIndicator(),this._updateView()}e===!this.visualMapModel.get("realtime")&&this.api.dispatchAction({type:"selectDataRange",from:this.uid,visualMapId:this.visualMapModel.id,selected:this._dataInterval.slice()}),e?!this._hovering&&this._clearHoverLinkToSeries():GB(this.visualMapModel)&&this._doHoverLinkToSeries(this._handleEnds[t],!1)}},e.prototype._resetInterval=function(){var t=this.visualMapModel,e=this._dataInterval=t.getSelected(),n=t.getExtent(),i=[0,t.itemSize[1]];this._handleEnds=[NB(e[0],n,i,!0),NB(e[1],n,i,!0)]},e.prototype._updateInterval=function(t,e){e=e||0;var n=this.visualMapModel,i=this._handleEnds,r=[0,n.itemSize[1]];nA(e,i,r,t,0);var o=n.getExtent();this._dataInterval=[NB(i[0],r,o,!0),NB(i[1],r,o,!0)]},e.prototype._updateView=function(t){var e=this.visualMapModel,n=e.getExtent(),i=this._shapes,r=[0,e.itemSize[1]],o=t?r:this._handleEnds,a=this._createBarVisual(this._dataInterval,n,o,"inRange"),s=this._createBarVisual(n,n,r,"outOfRange");i.inRange.setStyle({fill:a.barColor}).setShape("points",a.barPoints),i.outOfRange.setStyle({fill:s.barColor}).setShape("points",s.barPoints),this._updateHandle(o,a)},e.prototype._createBarVisual=function(t,e,n,i){var r={forceState:i,convertOpacityToAlpha:!0},o=this._makeColorGradient(t,r),a=[this.getControllerVisual(t[0],"symbolSize",r),this.getControllerVisual(t[1],"symbolSize",r)],s=this._createBarPoints(n,a);return{barColor:new cu(0,0,0,1,o),barPoints:s,handlesColor:[o[0].color,o[o.length-1].color]}},e.prototype._makeColorGradient=function(t,e){var n=[],i=(t[1]-t[0])/100;n.push({color:this.getControllerVisual(t[0],"color",e),offset:0});for(var r=1;r<100;r++){var o=t[0]+i*r;if(o>t[1])break;n.push({color:this.getControllerVisual(o,"color",e),offset:r/100})}return n.push({color:this.getControllerVisual(t[1],"color",e),offset:1}),n},e.prototype._createBarPoints=function(t,e){var n=this.visualMapModel.itemSize;return[[n[0]-e[0],t[0]],[n[0],t[0]],[n[0],t[1]],[n[0]-e[1],t[1]]]},e.prototype._createBarGroup=function(t){var e=this._orient,n=this.visualMapModel.get("inverse");return new Vi("horizontal"!==e||n?"horizontal"===e&&n?{scaleX:"bottom"===t?-1:1,rotation:-Math.PI/2}:"vertical"!==e||n?{scaleX:"left"===t?1:-1}:{scaleX:"left"===t?1:-1,scaleY:-1}:{scaleX:"bottom"===t?1:-1,rotation:Math.PI/2})},e.prototype._updateHandle=function(t,e){if(this._useHandle){var n=this._shapes,i=this.visualMapModel,r=n.handleThumbs,o=n.handleLabels,a=i.itemSize,s=i.getExtent();EB([0,1],(function(l){var u=r[l];u.setStyle("fill",e.handlesColor[l]),u.y=t[l];var h=NB(t[l],[0,a[1]],s,!0),c=this.getControllerVisual(h,"symbolSize");u.scaleX=u.scaleY=c/a[0],u.x=a[0]-c/2;var p=Hu(n.handleLabelPoints[l],Gu(u,this.group));o[l].setStyle({x:p[0],y:p[1],text:i.formatValueText(this._dataInterval[l]),verticalAlign:"middle",align:"vertical"===this._orient?this._applyTransform("left",n.mainGroup):"center"})}),this)}},e.prototype._showIndicator=function(t,e,n,i){var r=this.visualMapModel,o=r.getExtent(),a=r.itemSize,s=[0,a[1]],l=this._shapes,u=l.indicator;if(u){u.attr("invisible",!1);var h=this.getControllerVisual(t,"color",{convertOpacityToAlpha:!0}),c=this.getControllerVisual(t,"symbolSize"),p=NB(t,o,s,!0),d=a[0]-c/2,f={x:u.x,y:u.y};u.y=p,u.x=d;var g=Hu(l.indicatorLabelPoint,Gu(u,this.group)),y=l.indicatorLabel;y.attr("invisible",!1);var v=this._applyTransform("left",l.mainGroup),m="horizontal"===this._orient;y.setStyle({text:(n||"")+r.formatValueText(e),verticalAlign:m?v:"middle",align:m?"center":v});var _={x:d,y:p,style:{fill:h}},x={style:{x:g[0],y:g[1]}};if(r.ecModel.isAnimationEnabled()&&!this._firstShowIndicator){var b={duration:100,easing:"cubicInOut",additive:!0};u.x=f.x,u.y=f.y,u.animateTo(_,b),y.animateTo(x,b)}else u.attr(_),y.attr(x);this._firstShowIndicator=!1;var w=this._shapes.handleLabels;if(w)for(var S=0;S<w.length;S++)this._api.enterBlur(w[S])}},e.prototype._enableHoverLinkToSeries=function(){var t=this;this._shapes.mainGroup.on("mousemove",(function(e){if(t._hovering=!0,!t._dragging){var n=t.visualMapModel.itemSize,i=t._applyTransform([e.offsetX,e.offsetY],t._shapes.mainGroup,!0,!0);i[1]=zB(BB(0,i[1]),n[1]),t._doHoverLinkToSeries(i[1],0<=i[0]&&i[0]<=n[0])}})).on("mouseout",(function(){t._hovering=!1,!t._dragging&&t._clearHoverLinkToSeries()}))},e.prototype._enableHoverLinkFromSeries=function(){var t=this.api.getZr();this.visualMapModel.option.hoverLink?(t.on("mouseover",this._hoverLinkFromSeriesMouseOver,this),t.on("mouseout",this._hideIndicator,this)):this._clearHoverLinkFromSeries()},e.prototype._doHoverLinkToSeries=function(t,e){var n=this.visualMapModel,i=n.itemSize;if(n.option.hoverLink){var r=[0,i[1]],o=n.getExtent();t=zB(BB(r[0],t),r[1]);var a=function(t,e,n){var i=6,r=t.get("hoverLinkDataSize");r&&(i=NB(r,e,n,!0)/2);return i}(n,o,r),s=[t-a,t+a],l=NB(t,r,o,!0),u=[NB(s[0],r,o,!0),NB(s[1],r,o,!0)];s[0]<r[0]&&(u[0]=-1/0),s[1]>r[1]&&(u[1]=1/0),e&&(u[0]===-1/0?this._showIndicator(l,u[1],"< ",a):u[1]===1/0?this._showIndicator(l,u[0],"> ",a):this._showIndicator(l,l,"≈ ",a));var h=this._hoverLinkDataIndices,c=[];(e||GB(n))&&(c=this._hoverLinkDataIndices=n.findTargetDataIndices(u));var p=function(t,e){var n={},i={};return r(t||[],n),r(e||[],i,n),[o(n),o(i)];function r(t,e,n){for(var i=0,r=t.length;i<r;i++){var o=Ar(t[i].seriesId,null);if(null==o)return;for(var a=br(t[i].dataIndex),s=n&&n[o],l=0,u=a.length;l<u;l++){var h=a[l];s&&s[h]?s[h]=null:(e[o]||(e[o]={}))[h]=1}}}function o(t,e){var n=[];for(var i in t)if(t.hasOwnProperty(i)&&null!=t[i])if(e)n.push(+i);else{var r=o(t[i],!0);r.length&&n.push({seriesId:i,dataIndex:r})}return n}}(h,c);this._dispatchHighDown("downplay",RB(p[0],n)),this._dispatchHighDown("highlight",RB(p[1],n))}},e.prototype._hoverLinkFromSeriesMouseOver=function(t){var e=t.target,n=this.visualMapModel;if(e&&null!=ms(e).dataIndex){var i=ms(e),r=this.ecModel.getSeriesByIndex(i.seriesIndex);if(n.isTargetSeries(r)){var o=r.getData(i.dataType),a=o.get(n.getDataDimension(o),i.dataIndex);isNaN(a)||this._showIndicator(a,a)}}},e.prototype._hideIndicator=function(){var t=this._shapes;t.indicator&&t.indicator.attr("invisible",!0),t.indicatorLabel&&t.indicatorLabel.attr("invisible",!0);var e=this._shapes.handleLabels;if(e)for(var n=0;n<e.length;n++)this._api.leaveBlur(e[n])},e.prototype._clearHoverLinkToSeries=function(){this._hideIndicator();var t=this._hoverLinkDataIndices;this._dispatchHighDown("downplay",RB(t,this.visualMapModel)),t.length=0},e.prototype._clearHoverLinkFromSeries=function(){this._hideIndicator();var t=this.api.getZr();t.off("mouseover",this._hoverLinkFromSeriesMouseOver),t.off("mouseout",this._hideIndicator)},e.prototype._applyTransform=function(t,e,n,i){var r=Gu(e,i?null:this.group);return F(t)?Hu(t,r,n):Wu(t,r,n)},e.prototype._dispatchHighDown=function(t,e){e&&e.length&&this.api.dispatchAction({type:t,batch:e})},e.prototype.dispose=function(){this._clearHoverLinkFromSeries(),this._clearHoverLinkToSeries()},e.prototype.remove=function(){this._clearHoverLinkFromSeries(),this._clearHoverLinkToSeries()},e.type="visualMap.continuous",e}(kB);function FB(t,e,n,i){return new $l({shape:{points:t},draggable:!!n,cursor:e,drift:n,onmousemove:function(t){ie(t.event)},ondragend:i})}function GB(t){var e=t.get("hoverLinkOnHandle");return!!(null==e?t.get("realtime"):e)}function HB(t){return"vertical"===t?"ns-resize":"ew-resize"}var WB={type:"selectDataRange",event:"dataRangeSelected",update:"update"},YB=function(t,e){e.eachComponent({mainType:"visualMap",query:t},(function(e){e.setSelected(t.selected)}))},XB=[{createOnAllSeries:!0,reset:function(t,e){var n=[];return e.eachComponent("visualMap",(function(e){var i,r,o,a,s,l=t.pipelineContext;!e.isTargetSeries(t)||l&&l.large||n.push((i=e.stateList,r=e.targetVisuals,o=B(e.getValueState,e),a=e.getDataDimension(t.getData()),s={},P(i,(function(t){var e=KI.prepareVisualTypes(r[t]);s[t]=e})),{progress:function(t,e){var n,i;function l(t){return fg(e,i,t)}function u(t,n){yg(e,i,t,n)}for(null!=a&&(n=e.getDimension(a));null!=(i=t.next());){var h=e.getRawDataItem(i);if(!h||!1!==h.visualMap)for(var c=null!=a?e.get(n,i):i,p=o(c),d=r[p],f=s[p],g=0,y=f.length;g<y;g++){var v=f[g];d[v]&&d[v].applyVisual(c,l,u)}}}}))})),n}},{createOnAllSeries:!0,reset:function(t,e){var n=t.getData(),i=[];e.eachComponent("visualMap",(function(e){if(e.isTargetSeries(t)){var r=e.getVisualMeta(B(UB,null,t,e))||{stops:[],outerColors:[]},o=e.getDataDimension(n),a=n.getDimensionInfo(o);null!=a&&(r.dimension=a.index,i.push(r))}})),t.getData().setVisual("visualMeta",i)}}];function UB(t,e,n,i){for(var r=e.targetVisuals[i],o=KI.prepareVisualTypes(r),a={color:gg(t.getData(),"color")},s=0,l=o.length;s<l;s++){var u=o[s],h=r["opacity"===u?"__alphaForOpacity":u];h&&h.applyVisual(n,c,p)}return a.color;function c(t){return a[t]}function p(t,e){a[t]=e}}var ZB=P;function jB(t){var e=t&&t.visualMap;F(e)||(e=e?[e]:[]),ZB(e,(function(t){if(t){qB(t,"splitList")&&!qB(t,"pieces")&&(t.pieces=t.splitList,delete t.splitList);var e=t.pieces;e&&F(e)&&ZB(e,(function(t){X(t)&&(qB(t,"start")&&!qB(t,"min")&&(t.min=t.start),qB(t,"end")&&!qB(t,"max")&&(t.max=t.end))}))}}))}function qB(t,e){return t&&t.hasOwnProperty&&t.hasOwnProperty(e)}var KB=!1;function $B(t){KB||(KB=!0,t.registerSubTypeDefaulter("visualMap",(function(t){return t.categories||(t.pieces?t.pieces.length>0:t.splitNumber>0)&&!t.calculable?"piecewise":"continuous"})),t.registerAction(WB,YB),P(XB,(function(e){t.registerVisual(t.PRIORITY.VISUAL.COMPONENT,e)})),t.registerPreprocessor(jB))}function JB(t){t.registerComponentModel(DB),t.registerComponentView(VB),$B(t)}var QB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._pieceList=[],n}return n(e,t),e.prototype.optionUpdated=function(e,n){t.prototype.optionUpdated.apply(this,arguments),this.resetExtent();var i=this._mode=this._determineMode();this._pieceList=[],tV[this._mode].call(this,this._pieceList),this._resetSelected(e,n);var r=this.option.categories;this.resetVisual((function(t,e){"categories"===i?(t.mappingMethod="category",t.categories=w(r)):(t.dataExtent=this.getExtent(),t.mappingMethod="piecewise",t.pieceList=O(this._pieceList,(function(t){return t=w(t),"inRange"!==e&&(t.visual=null),t})))}))},e.prototype.completeVisualOption=function(){var e=this.option,n={},i=KI.listVisualTypes(),r=this.isCategory();function o(t,e,n){return t&&t[e]&&t[e].hasOwnProperty(n)}P(e.pieces,(function(t){P(i,(function(e){t.hasOwnProperty(e)&&(n[e]=1)}))})),P(n,(function(t,n){var i=!1;P(this.stateList,(function(t){i=i||o(e,t,n)||o(e.target,t,n)}),this),!i&&P(this.stateList,(function(t){(e[t]||(e[t]={}))[n]=_B(n,"inRange"===t?"active":"inactive",r)}))}),this),t.prototype.completeVisualOption.apply(this,arguments)},e.prototype._resetSelected=function(t,e){var n=this.option,i=this._pieceList,r=(e?n:t).selected||{};if(n.selected=r,P(i,(function(t,e){var n=this.getSelectedMapKey(t);r.hasOwnProperty(n)||(r[n]=!0)}),this),"single"===n.selectedMode){var o=!1;P(i,(function(t,e){var n=this.getSelectedMapKey(t);r[n]&&(o?r[n]=!1:o=!0)}),this)}},e.prototype.getSelectedMapKey=function(t){return"categories"===this._mode?t.value+"":t.index+""},e.prototype.getPieceList=function(){return this._pieceList},e.prototype._determineMode=function(){var t=this.option;return t.pieces&&t.pieces.length>0?"pieces":this.option.categories?"categories":"splitNumber"},e.prototype.setSelected=function(t){this.option.selected=w(t)},e.prototype.getValueState=function(t){var e=KI.findPieceIndex(t,this._pieceList);return null!=e&&this.option.selected[this.getSelectedMapKey(this._pieceList[e])]?"inRange":"outOfRange"},e.prototype.findTargetDataIndices=function(t){var e=[],n=this._pieceList;return this.eachTargetSeries((function(i){var r=[],o=i.getData();o.each(this.getDataDimension(o),(function(e,i){KI.findPieceIndex(e,n)===t&&r.push(i)}),this),e.push({seriesId:i.id,dataIndex:r})}),this),e},e.prototype.getRepresentValue=function(t){var e;if(this.isCategory())e=t.value;else if(null!=t.value)e=t.value;else{var n=t.interval||[];e=n[0]===-1/0&&n[1]===1/0?0:(n[0]+n[1])/2}return e},e.prototype.getVisualMeta=function(t){if(!this.isCategory()){var e=[],n=["",""],i=this,r=this._pieceList.slice();if(r.length){var o=r[0].interval[0];o!==-1/0&&r.unshift({interval:[-1/0,o]}),(o=r[r.length-1].interval[1])!==1/0&&r.push({interval:[o,1/0]})}else r.push({interval:[-1/0,1/0]});var a=-1/0;return P(r,(function(t){var e=t.interval;e&&(e[0]>a&&s([a,e[0]],"outOfRange"),s(e.slice()),a=e[1])}),this),{stops:e,outerColors:n}}function s(r,o){var a=i.getRepresentValue({interval:r});o||(o=i.getValueState(a));var s=t(a,o);r[0]===-1/0?n[0]=s:r[1]===1/0?n[1]=s:e.push({value:r[0],color:s},{value:r[1],color:s})}},e.type="visualMap.piecewise",e.defaultOption=Ah(CB.defaultOption,{selected:null,minOpen:!1,maxOpen:!1,align:"auto",itemWidth:20,itemHeight:14,itemSymbol:"roundRect",pieces:null,categories:null,splitNumber:5,selectedMode:"multiple",itemGap:10,hoverLink:!0}),e}(CB),tV={splitNumber:function(t){var e=this.option,n=Math.min(e.precision,20),i=this.getExtent(),r=e.splitNumber;r=Math.max(parseInt(r,10),1),e.splitNumber=r;for(var o=(i[1]-i[0])/r;+o.toFixed(n)!==o&&n<5;)n++;e.precision=n,o=+o.toFixed(n),e.minOpen&&t.push({interval:[-1/0,i[0]],close:[0,0]});for(var a=0,s=i[0];a<r;s+=o,a++){var l=a===r-1?i[1]:s+o;t.push({interval:[s,l],close:[1,1]})}e.maxOpen&&t.push({interval:[i[1],1/0],close:[0,0]}),cr(t),P(t,(function(t,e){t.index=e,t.text=this.formatValueText(t.interval)}),this)},categories:function(t){var e=this.option;P(e.categories,(function(e){t.push({text:this.formatValueText(e,!0),value:e})}),this),eV(e,t)},pieces:function(t){var e=this.option;P(e.pieces,(function(e,n){X(e)||(e={value:e});var i={text:"",index:n};if(null!=e.label&&(i.text=e.label),e.hasOwnProperty("value")){var r=i.value=e.value;i.interval=[r,r],i.close=[1,1]}else{for(var o=i.interval=[],a=i.close=[0,0],s=[1,0,1],l=[-1/0,1/0],u=[],h=0;h<2;h++){for(var c=[["gte","gt","min"],["lte","lt","max"]][h],p=0;p<3&&null==o[h];p++)o[h]=e[c[p]],a[h]=s[p],u[h]=2===p;null==o[h]&&(o[h]=l[h])}u[0]&&o[1]===1/0&&(a[0]=0),u[1]&&o[0]===-1/0&&(a[1]=0),o[0]===o[1]&&a[0]&&a[1]&&(i.value=o[0])}i.visual=KI.retrieveVisuals(e),t.push(i)}),this),eV(e,t),cr(t),P(t,(function(t){var e=t.close,n=[["<","≤"][e[1]],[">","≥"][e[0]]];t.text=t.text||this.formatValueText(null!=t.value?t.value:t.interval,!1,n)}),this)}};function eV(t,e){var n=t.inverse;("vertical"===t.orient?!n:n)&&e.reverse()}var nV=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.doRender=function(){var t=this.group;t.removeAll();var e=this.visualMapModel,n=e.get("textGap"),i=e.textStyleModel,r=i.getFont(),o=i.getTextColor(),a=this._getItemAlign(),s=e.itemSize,l=this._getViewData(),u=l.endsText,h=Q(e.get("showLabel",!0),!u);u&&this._renderEndsText(t,u[0],s,h,a),P(l.viewPieceList,(function(i){var l=i.piece,u=new Vi;u.onclick=B(this._onItemClick,this,l),this._enableHoverLink(u,i.indexInModelPieceList);var c=e.getRepresentValue(l);if(this._createItemSymbol(u,c,[0,0,s[0],s[1]]),h){var p=this.visualMapModel.getValueState(c);u.add(new hs({style:{x:"right"===a?-n:s[0]+n,y:s[1]/2,text:l.text,verticalAlign:"middle",align:a,font:r,fill:o,opacity:"outOfRange"===p?.5:1}}))}t.add(u)}),this),u&&this._renderEndsText(t,u[1],s,h,a),Dc(e.get("orient"),t,e.get("itemGap")),this.renderBackground(t),this.positionGroup(t)},e.prototype._enableHoverLink=function(t,e){var n=this;t.on("mouseover",(function(){return i("highlight")})).on("mouseout",(function(){return i("downplay")}));var i=function(t){var i=n.visualMapModel;i.option.hoverLink&&n.api.dispatchAction({type:t,batch:RB(i.findTargetDataIndices(e),i)})}},e.prototype._getItemAlign=function(){var t=this.visualMapModel,e=t.option;if("vertical"===e.orient)return OB(t,this.api,t.itemSize);var n=e.align;return n&&"auto"!==n||(n="left"),n},e.prototype._renderEndsText=function(t,e,n,i,r){if(e){var o=new Vi,a=this.visualMapModel.textStyleModel;o.add(new hs({style:{x:i?"right"===r?n[0]:0:n[0]/2,y:n[1]/2,verticalAlign:"middle",align:i?r:"center",text:e,font:a.getFont(),fill:a.getTextColor()}})),t.add(o)}},e.prototype._getViewData=function(){var t=this.visualMapModel,e=O(t.getPieceList(),(function(t,e){return{piece:t,indexInModelPieceList:e}})),n=t.get("text"),i=t.get("orient"),r=t.get("inverse");return("horizontal"===i?r:!r)?e.reverse():n&&(n=n.slice().reverse()),{viewPieceList:e,endsText:n}},e.prototype._createItemSymbol=function(t,e,n){t.add(cy(this.getControllerVisual(e,"symbol"),n[0],n[1],n[2],n[3],this.getControllerVisual(e,"color")))},e.prototype._onItemClick=function(t){var e=this.visualMapModel,n=e.option,i=w(n.selected),r=e.getSelectedMapKey(t);"single"===n.selectedMode?(i[r]=!0,P(i,(function(t,e){i[e]=e===r}))):i[r]=!i[r],this.api.dispatchAction({type:"selectDataRange",from:this.uid,visualMapId:this.visualMapModel.id,selected:i})},e.type="visualMap.piecewise",e}(kB);function iV(t){t.registerComponentModel(QB),t.registerComponentView(nV),$B(t)}var rV={label:{enabled:!0},decal:{show:!1}},oV=Pr(),aV={};function sV(t,e){var n=t.getModel("aria");if(n.get("enabled")){var i=w(rV);S(i.label,t.getLocaleModel().get("aria"),!1),S(n.option,i,!1),function(){if(n.getModel("decal").get("show")){var e=ht();t.eachSeries((function(t){if(t.useColorPaletteOnData){var n=e.get(t.type);n||(n={},e.set(t.type,n)),oV(t).scope=n}})),t.eachRawSeries((function(e){if(!t.isSeriesFiltered(e))if("function"!=typeof e.enableAriaDecal){var n=e.getData();if(e.useColorPaletteOnData){var i=e.getRawData(),r={},o=oV(e).scope;n.each((function(t){var e=n.getRawIndex(t);r[e]=t}));var a=i.count();i.each((function(t){var s=r[t],l=i.getName(t)||t+"",h=pp(e.ecModel,l,o,a),c=n.getItemVisual(s,"decal");n.setItemVisual(s,"decal",u(c,h))}))}else{var s=pp(e.ecModel,e.name,aV,t.getSeriesCount()),l=n.getVisual("decal");n.setVisual("decal",u(l,s))}}else e.enableAriaDecal();function u(t,e){var n=t?I(I({},e),t):e;return n.dirty=!0,n}}))}}(),function(){var i=t.getLocaleModel().get("aria"),o=n.getModel("label");if(o.option=T(o.option,i),!o.get("enabled"))return;var a=e.getZr().dom;if(o.get("description"))return void a.setAttribute("aria-label",o.get("description"));var s,l=t.getSeriesCount(),u=o.get(["data","maxCount"])||10,h=o.get(["series","maxCount"])||10,c=Math.min(l,h);if(l<1)return;var p=function(){var e=t.get("title");e&&e.length&&(e=e[0]);return e&&e.text}();if(p){var d=o.get(["general","withTitle"]);s=r(d,{title:p})}else s=o.get(["general","withoutTitle"]);var f=[],g=l>1?o.get(["series","multiple","prefix"]):o.get(["series","single","prefix"]);s+=r(g,{seriesCount:l}),t.eachSeries((function(e,n){if(n<c){var i=void 0,a=e.get("name")?"withName":"withoutName";i=r(i=l>1?o.get(["series","multiple",a]):o.get(["series","single",a]),{seriesId:e.seriesIndex,seriesName:e.get("name"),seriesType:(_=e.subType,t.getLocaleModel().get(["series","typeNames"])[_]||"自定义图")});var s=e.getData();if(s.count()>u)i+=r(o.get(["data","partialData"]),{displayCnt:u});else i+=o.get(["data","allData"]);for(var h=[],p=0;p<s.count();p++)if(p<u){var d=s.getName(p),g=yd(s,p),y=o.get(["data",d?"withName":"withoutName"]);h.push(r(y,{name:d,value:g}))}var v=o.get(["data","separator","middle"]),m=o.get(["data","separator","end"]);i+=h.join(v)+m,f.push(i)}var _}));var y=o.getModel(["series","multiple","separator"]),v=y.get("middle"),m=y.get("end");s+=f.join(v)+m,a.setAttribute("aria-label",s)}()}function r(t,e){if("string"!=typeof t)return t;var n=t;return P(e,(function(t,e){n=n.replace(new RegExp("\\{\\s*"+e+"\\s*\\}","g"),t)})),n}}function lV(t){if(t&&t.aria){var e=t.aria;null!=e.show&&(e.enabled=e.show),e.label=e.label||{},P(["description","general","series","data"],(function(t){null!=e[t]&&(e.label[t]=e[t])}))}}var uV={value:"eq","<":"lt","<=":"lte",">":"gt",">=":"gte","=":"eq","!=":"ne","<>":"ne"},hV=function(){function t(t){if(null==(this._condVal=H(t)?new RegExp(t):$(t)?t:null)){var e="";0,mr(e)}}return t.prototype.evaluate=function(t){var e=typeof t;return"string"===e?this._condVal.test(t):"number"===e&&this._condVal.test(t+"")},t}(),cV=function(){function t(){}return t.prototype.evaluate=function(){return this.value},t}(),pV=function(){function t(){}return t.prototype.evaluate=function(){for(var t=this.children,e=0;e<t.length;e++)if(!t[e].evaluate())return!1;return!0},t}(),dV=function(){function t(){}return t.prototype.evaluate=function(){for(var t=this.children,e=0;e<t.length;e++)if(t[e].evaluate())return!0;return!1},t}(),fV=function(){function t(){}return t.prototype.evaluate=function(){return!this.child.evaluate()},t}(),gV=function(){function t(){}return t.prototype.evaluate=function(){for(var t=!!this.valueParser,e=(0,this.getValue)(this.valueGetterParam),n=t?this.valueParser(e):null,i=0;i<this.subCondList.length;i++)if(!this.subCondList[i].evaluate(t?n:e))return!1;return!0},t}();function yV(t,e){if(!0===t||!1===t){var n=new cV;return n.value=t,n}var i="";return mV(t)||mr(i),t.and?vV("and",t,e):t.or?vV("or",t,e):t.not?function(t,e){var n=t.not,i="";0;mV(n)||mr(i);var r=new fV;r.child=yV(n,e),r.child||mr(i);return r}(t,e):function(t,e){for(var n="",i=e.prepareGetValue(t),r=[],o=z(t),a=t.parser,s=a?Id(a):null,l=0;l<o.length;l++){var u=o[l];if("parser"!==u&&!e.valueGetterAttrMap.get(u)){var h=dt(uV,u)?uV[u]:u,c=t[u],p=s?s(c):c,d=Ld(h,p)||"reg"===h&&new hV(p);d||mr(n),r.push(d)}}r.length||mr(n);var f=new gV;return f.valueGetterParam=i,f.valueParser=s,f.getValue=e.getValue,f.subCondList=r,f}(t,e)}function vV(t,e,n){var i=e[t],r="";F(i)||mr(r),i.length||mr(r);var o="and"===t?new pV:new dV;return o.children=O(i,(function(t){return yV(t,n)})),o.children.length||mr(r),o}function mV(t){return X(t)&&!k(t)}var _V=function(){function t(t,e){this._cond=yV(t,e)}return t.prototype.evaluate=function(){return this._cond.evaluate()},t}();var xV={type:"echarts:filter",transform:function(t){for(var e,n,i,r=t.upstream,o=(n=t.config,i={valueGetterAttrMap:ht({dimension:!0}),prepareGetValue:function(t){var e="",n=t.dimension;dt(t,"dimension")||mr(e);var i=r.getDimensionInfo(n);return i||mr(e),{dimIdx:i.index}},getValue:function(t){return r.retrieveValueFromItem(e,t.dimIdx)}},new _V(n,i)),a=[],s=0,l=r.count();s<l;s++)e=r.getRawDataItem(s),o.evaluate()&&a.push(e);return{data:a}}};var bV={type:"echarts:sort",transform:function(t){var e=t.upstream,n=t.config,i="",r=br(n);r.length||mr(i);var o=[];P(r,(function(t){var n=t.dimension,r=t.order,a=t.parser,s=t.incomparable;if(null==n&&mr(i),"asc"!==r&&"desc"!==r&&mr(i),s&&"min"!==s&&"max"!==s){var l="";0,mr(l)}if("asc"!==r&&"desc"!==r){var u="";0,mr(u)}var h=e.getDimensionInfo(n);h||mr(i);var c=a?Id(a):null;a&&!c&&mr(i),o.push({dimIdx:h.index,parser:c,comparator:new Ad(r,s)})}));var a=e.sourceFormat;a!==Wc&&a!==Yc&&mr(i);for(var s=[],l=0,u=e.count();l<u;l++)s.push(e.getRawDataItem(l));return s.sort((function(t,n){for(var i=0;i<o.length;i++){var r=o[i],a=e.retrieveValueFromItem(t,r.dimIdx),s=e.retrieveValueFromItem(n,r.dimIdx);r.parser&&(a=r.parser(a),s=r.parser(s));var l=r.comparator.evaluate(a,s);if(0!==l)return l}return 0})),{data:s}}};var wV=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="dataset",e}return n(e,t),e.prototype.init=function(e,n,i){t.prototype.init.call(this,e,n,i),this._sourceManager=new Vd(this),Fd(this)},e.prototype.mergeOption=function(e,n){t.prototype.mergeOption.call(this,e,n),Fd(this)},e.prototype.optionUpdated=function(){this._sourceManager.dirty()},e.prototype.getSourceManager=function(){return this._sourceManager},e.type="dataset",e.defaultOption={seriesLayoutBy:jc},e}(zc),SV=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="dataset",e}return n(e,t),e.type="dataset",e}(ff);im([function(t){t.registerPainter("canvas",_b)}]),im([function(t){t.registerPainter("svg",hb)}]),im([function(t){t.registerChartView(tw),t.registerSeriesModel(xb),t.registerLayout(ew("line",!0)),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,rw("line"))},function(t){t.registerChartView(fw),t.registerSeriesModel(aw),t.registerLayout(t.PRIORITY.VISUAL.LAYOUT,V(p_,"bar")),t.registerLayout(t.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,d_),t.registerVisual({seriesType:"bar",reset:function(t){t.getData().setVisual("legendSymbol","roundRect")}}),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,rw("bar")),t.registerAction({type:"changeAxisOrder",event:"changeAxisOrder",update:"update"},(function(t,e){var n=t.componentType||"series";e.eachComponent({mainType:n,query:t},(function(e){t.sortInfo&&e.axis.setCategorySortInfo(t.sortInfo)}))}))},function(t){t.registerChartView(Nw),t.registerSeriesModel(Bw),Jg("pie",t.registerAction),t.registerLayout(V(Cw,"pie")),t.registerProcessor(Aw("pie"))},function(t){im(zS),t.registerSeriesModel(Vw),t.registerChartView(Ww),t.registerLayout(ew("scatter"))},function(t){im($S),t.registerChartView(HS),t.registerSeriesModel(WS),t.registerLayout(BS),t.registerProcessor(Aw("radar")),t.registerPreprocessor(GS)},function(t){t.registerChartView(GM),t.registerSeriesModel(HM),t.registerLayout(YM),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,WM),Jg("map",t.registerAction)},function(t){t.registerChartView(oI),t.registerSeriesModel(bI),t.registerLayout(SI),t.registerVisual(MI),function(t){t.registerAction({type:"treeExpandAndCollapse",event:"treeExpandAndCollapse",update:"update"},(function(t,e){e.eachComponent({mainType:"series",subType:"tree",query:t},(function(e){var n=t.dataIndex,i=e.getData().tree.getNodeByDataIndex(n);i.isExpand=!i.isExpand}))})),t.registerAction({type:"treeRoam",event:"treeRoam",update:"none"},(function(t,e){e.eachComponent({mainType:"series",subType:"tree",query:t},(function(e){var n=II(e.coordinateSystem,t);e.setCenter&&e.setCenter(n.center),e.setZoom&&e.setZoom(n.zoom)}))}))}(t)},function(t){t.registerSeriesModel(OI),t.registerChartView(UI),t.registerVisual(uT),t.registerLayout(wT),function(t){for(var e=0;e<kI.length;e++)t.registerAction({type:kI[e],update:"updateView"},LI);t.registerAction({type:"treemapRootToNode",update:"updateView"},(function(t,e){e.eachComponent({mainType:"series",subType:"treemap",query:t},(function(e,n){var i=TI(t,["treemapZoomToNode","treemapRootToNode"],e);if(i){var r=e.getViewRoot();r&&(t.direction=AI(r,i.node)?"rollUp":"drillDown"),e.resetViewRoot(i.node)}}))}))}(t)},function(t){t.registerChartView(bC),t.registerSeriesModel(AC),t.registerProcessor(AT),t.registerVisual(DT),t.registerVisual(kT),t.registerLayout(GT),t.registerLayout(t.PRIORITY.VISUAL.POST_CHART_LAYOUT,jT),t.registerLayout(KT),t.registerCoordinateSystem("graphView",{dimensions:eI.dimensions,create:$T}),t.registerAction({type:"focusNodeAdjacency",event:"focusNodeAdjacency",update:"series:focusNodeAdjacency"},(function(){})),t.registerAction({type:"unfocusNodeAdjacency",event:"unfocusNodeAdjacency",update:"series:unfocusNodeAdjacency"},(function(){})),t.registerAction(DC,(function(t,e){e.eachComponent({mainType:"series",query:t},(function(e){var n=II(e.coordinateSystem,t);e.setCenter&&e.setCenter(n.center),e.setZoom&&e.setZoom(n.zoom)}))}))},function(t){t.registerChartView(RC),t.registerSeriesModel(NC)},function(t){t.registerChartView(BC),t.registerSeriesModel(VC),t.registerLayout(FC),t.registerProcessor(Aw("funnel"))},function(t){im(pD),t.registerChartView(GC),t.registerSeriesModel(UC),t.registerVisual(t.PRIORITY.VISUAL.BRUSH,qC)},function(t){t.registerChartView(gD),t.registerSeriesModel(yD),t.registerLayout(vD),t.registerVisual(DD),t.registerAction({type:"dragNode",event:"dragnode",update:"update"},(function(t,e){e.eachComponent({mainType:"series",subType:"sankey",query:t},(function(e){e.setNodePosition(t.dataIndex,[t.localX,t.localY])}))}))},function(t){t.registerSeriesModel(kD),t.registerChartView(PD),t.registerVisual(BD),t.registerLayout(FD),t.registerTransform(GD)},function(t){t.registerChartView(WD),t.registerSeriesModel(tL),t.registerPreprocessor(eL),t.registerVisual(aL),t.registerLayout(lL)},function(t){t.registerChartView(pL),t.registerSeriesModel(dL),t.registerLayout(ew("effectScatter"))},function(t){t.registerChartView(bL),t.registerSeriesModel(IL),t.registerLayout(xL),t.registerVisual(CL)},function(t){t.registerChartView(LL),t.registerSeriesModel(kL)},function(t){t.registerChartView(NL),t.registerSeriesModel(QL),t.registerLayout(V(p_,"pictorialBar"))},function(t){t.registerChartView(tk),t.registerSeriesModel(ek),t.registerLayout(nk),t.registerProcessor(Aw("themeRiver"))},function(t){t.registerChartView(sk),t.registerSeriesModel(lk),t.registerLayout(V(ck,"sunburst")),t.registerProcessor(V(Aw,"sunburst")),t.registerVisual(dk),function(t){t.registerAction({type:ok,update:"updateView"},(function(t,e){e.eachComponent({mainType:"series",subType:"sunburst",query:t},(function(e,n){var i=TI(t,[ok],e);if(i){var r=e.getViewRoot();r&&(t.direction=AI(r,i.node)?"rollUp":"drillDown"),e.resetViewRoot(i.node)}}))})),t.registerAction({type:ak,update:"none"},(function(t,e,n){t=I({},t),e.eachComponent({mainType:"series",subType:"sunburst",query:t},(function(e){var n=TI(t,[ak],e);n&&(t.dataIndex=n.node.dataIndex)})),n.dispatchAction(I(t,{type:"highlight"}))})),t.registerAction({type:"sunburstUnhighlight",update:"updateView"},(function(t,e,n){t=I({},t),n.dispatchAction(I(t,{type:"downplay"}))}))}(t)},function(t){t.registerChartView(hP),t.registerSeriesModel(uP)}]),im((function(t){im(zS),im(LO)})),im((function(t){im(LO),IS.registerAxisPointerClass("PolarAxisPointer",kO),t.registerCoordinateSystem("polar",YO),t.registerComponentModel(OO),t.registerComponentView(aR),$w(t,"angle",NO,rR),$w(t,"radius",EO,oR),t.registerComponentView(qO),t.registerComponentView(QO),t.registerLayout(V(iR,"bar"))})),im((function(t){function e(e,n){n.update="geo:updateSelectStatus",t.registerAction(n,(function(t,n){var i={};return n.eachComponent({mainType:"geo",query:t},(function(n){n[e](t.name),P(n.coordinateSystem.regions,(function(t){i[t.name]=n.isSelected(t.name)||!1}))})),{selected:i,name:t.name}}))}t.registerCoordinateSystem("geo",hR),t.registerComponentModel(cR),t.registerComponentView(pR),e("toggleSelected",{type:"geoToggleSelect",event:"geoselectchanged"}),e("select",{type:"geoSelect",event:"geoselected"}),e("unSelect",{type:"geoUnSelect",event:"geounselected"}),t.registerAction({type:"geoRoam",event:"geoRoam",update:"updateTransform"},(function(t,e){var n=t.componentType||"series";e.eachComponent({mainType:n,query:t},(function(e){var i=e.coordinateSystem;if("geo"===i.type){var r=II(i,t,e.get("scaleLimit"));e.setCenter&&e.setCenter(r.center),e.setZoom&&e.setZoom(r.zoom),"series"===n&&P(e.seriesGroup,(function(t){t.setCenter(r.center),t.setZoom(r.zoom)}))}}))}))})),im((function(t){im(LO),IS.registerAxisPointerClass("SingleAxisPointer",IR),t.registerComponentView(DR),t.registerComponentView(yR),t.registerComponentModel(mR),$w(t,"single",mR,mR.defaultOption),t.registerCoordinateSystem("single",wR)})),im(pD),im((function(t){t.registerComponentModel(LR),t.registerComponentView(RR),t.registerCoordinateSystem("calendar",ER)})),im((function(t){t.registerComponentModel(GR),t.registerComponentView(HR),t.registerPreprocessor(FR)})),im((function(t){t.registerComponentModel(fN),t.registerComponentView(yN),pN("saveAsImage",vN),pN("magicType",xN),pN("dataView",CN),pN("dataZoom",KN),pN("restore",PN),im(uN)})),im((function(t){im(LO),t.registerComponentModel(QN),t.registerComponentView(dE),t.registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},(function(){})),t.registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},(function(){}))})),im(LO),im((function(t){t.registerComponentView(NE),t.registerComponentModel(EE),t.registerPreprocessor(mE),t.registerVisual(t.PRIORITY.VISUAL.BRUSH,LE),t.registerAction({type:"brush",event:"brush",update:"updateVisual"},(function(t,e){e.eachComponent({mainType:"brush",query:t},(function(e){e.setAreas(t.areas)}))})),t.registerAction({type:"brushSelect",event:"brushSelected",update:"none"},(function(){})),t.registerAction({type:"brushEnd",event:"brushEnd",update:"none"},(function(){})),pN("brush",VE)})),im((function(t){t.registerComponentModel(FE),t.registerComponentView(GE)})),im((function(t){t.registerComponentModel(WE),t.registerComponentView(jE),t.registerSubTypeDefaulter("timeline",(function(){return"slider"})),function(t){t.registerAction({type:"timelineChange",event:"timelineChanged",update:"prepareAndUpdate"},(function(t,e){var n=e.getComponent("timeline");return n&&null!=t.currentIndex&&(n.setCurrentIndex(t.currentIndex),!n.get("loop",!0)&&n.isIndexMax()&&n.setPlayState(!1)),e.resetOption("timeline",{replaceMerge:n.get("replaceMerge",!0)}),T({currentIndex:n.option.currentIndex},t)})),t.registerAction({type:"timelinePlayChange",event:"timelinePlayChanged",update:"update"},(function(t,e){var n=e.getComponent("timeline");n&&null!=t.playState&&n.setPlayState(t.playState)}))}(t),t.registerPreprocessor($E)})),im((function(t){t.registerComponentModel(iz),t.registerComponentView(fz),t.registerPreprocessor((function(t){t.markPoint=t.markPoint||{}}))})),im((function(t){t.registerComponentModel(gz),t.registerComponentView(wz),t.registerPreprocessor((function(t){t.markLine=t.markLine||{}}))})),im((function(t){t.registerComponentModel(Sz),t.registerComponentView(kz),t.registerPreprocessor((function(t){t.markArea=t.markArea||{}}))})),im((function(t){im(Yz),im($z)})),im((function(t){im(uB),im(mB)})),im(uB),im(mB),im((function(t){im(JB),im(iV)})),im(JB),im(iV),im((function(t){t.registerPreprocessor(lV),t.registerVisual(t.PRIORITY.VISUAL.ARIA,sV)})),im((function(t){t.registerTransform(xV),t.registerTransform(bV)})),im((function(t){t.registerComponentModel(wV),t.registerComponentView(SV)})),t.Axis=_x,t.ChartView=mf,t.ComponentModel=zc,t.ComponentView=ff,t.List=Rm,t.Model=Ih,t.PRIORITY=Xy,t.SeriesModel=af,t.color=hn,t.connect=function(t){if(F(t)){var e=t;t=null,By(e,(function(e){null!=e.group&&(t=e.group)})),t=t||"g_"+Ev++,By(e,(function(e){e.group=t}))}return Rv[t]=!0,t},t.dataTool={},t.dependencies={zrender:"5.0.2"},t.disConnect=Bv,t.disconnect=Vv,t.dispose=function(t){"string"==typeof t?t=Ov[t]:t instanceof xv||(t=Fv(t)),t instanceof xv&&!t.isDisposed()&&t.dispose()},t.env=a,t.extendChartView=function(t){var e=mf.extend(t);return mf.registerClass(e),e},t.extendComponentModel=function(t){var e=zc.extend(t);return zc.registerClass(e),e},t.extendComponentView=function(t){var e=ff.extend(t);return ff.registerClass(e),e},t.extendSeriesModel=function(t){var e=af.extend(t);return af.registerClass(e),e},t.format=sx,t.getCoordinateSystemDimensions=function(t){var e=bp.get(t);if(e)return e.getDimensionsInfo?e.getDimensionsInfo():e.dimensions.slice()},t.getInstanceByDom=Fv,t.getInstanceById=function(t){return Ov[t]},t.getMap=function(t){var e=hg(t);return e&&e[0]&&{geoJson:e[0].geoJSON,specialAreas:e[0].specialAreas}},t.graphic=ax,t.helper=J_,t.init=function(t,e,n){var i=Fv(t);if(i)return i;var r=new xv(t,e,n);return r.id="ec_"+Nv++,Ov[r.id]=r,Br(t,zv,r.id),fv(r),By(Av,(function(t){t(r)})),r},t.innerDrawElementOnCanvas=Ay,t.matrix=Ie,t.number=rx,t.parseGeoJSON=ix,t.parseGeoJson=ix,t.registerAction=Uv,t.registerCoordinateSystem=Zv,t.registerLayout=jv,t.registerLoading=Jv,t.registerLocale=Nh,t.registerMap=Qv,t.registerPostInit=Yv,t.registerPostUpdate=Xv,t.registerPreprocessor=Hv,t.registerProcessor=Wv,t.registerTheme=Gv,t.registerTransform=tm,t.registerVisual=qv,t.setCanvasCreator=function(t){m("createCanvas",t)},t.throttle=Cf,t.time=ox,t.use=im,t.util=lx,t.vector=Vt,t.version="5.0.1",t.zrUtil=gt,t.zrender=Ui,Object.defineProperty(t,"__esModule",{value:!0})}));
+var Bi=!a.canvasSupported,Vi={},Fi={};var Gi=function(){function t(t,e,n){var i=this;this._sleepAfterStill=10,this._stillFrameAccum=0,this._needsRefresh=!0,this._needsRefreshHover=!0,this._darkMode=!1,n=n||{},this.dom=e,this.id=t;var r=new vi,o=n.renderer||"canvas";if(Bi)throw new Error("IE8 support has been dropped since 5.0");if(Vi[o]||(o=z(Vi)[0]),!Vi[o])throw new Error("Renderer '"+o+"' is not imported. Please import it first.");n.useDirtyRect=null!=n.useDirtyRect&&n.useDirtyRect;var s=new Vi[o](e,r,n,t);this.storage=r,this.painter=s;var l=a.node||a.worker?null:new Ei(s.getViewportRoot(),s.root);this.handler=new ce(r,s,l,s.root),this.animation=new _i({stage:{update:function(){return i._flush(!0)}}}),this.animation.start()}return t.prototype.add=function(t){t&&(this.storage.addRoot(t),t.addSelfToZr(this),this.refresh())},t.prototype.remove=function(t){t&&(this.storage.delRoot(t),t.removeSelfFromZr(this),this.refresh())},t.prototype.configLayer=function(t,e){this.painter.configLayer&&this.painter.configLayer(t,e),this.refresh()},t.prototype.setBackgroundColor=function(t){this.painter.setBackgroundColor&&this.painter.setBackgroundColor(t),this.refresh(),this._backgroundColor=t,this._darkMode=function(t){if(!t)return!1;if("string"==typeof t)return sn(t,1)<.4;if(t.colorStops){for(var e=t.colorStops,n=0,i=e.length,r=0;r<i;r++)n+=sn(e[r].color,1);return(n/=i)<.4}return!1}(t)},t.prototype.getBackgroundColor=function(){return this._backgroundColor},t.prototype.setDarkMode=function(t){this._darkMode=t},t.prototype.isDarkMode=function(){return this._darkMode},t.prototype.refreshImmediately=function(t){t||this.animation.update(!0),this._needsRefresh=!1,this.painter.refresh(),this._needsRefresh=!1},t.prototype.refresh=function(){this._needsRefresh=!0,this.animation.start()},t.prototype.flush=function(){this._flush(!1)},t.prototype._flush=function(t){var e,n=(new Date).getTime();this._needsRefresh&&(e=!0,this.refreshImmediately(t)),this._needsRefreshHover&&(e=!0,this.refreshHoverImmediately());var i=(new Date).getTime();e?(this._stillFrameAccum=0,this.trigger("rendered",{elapsedTime:i-n})):this._sleepAfterStill>0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},t.prototype.setSleepAfterStill=function(t){this._sleepAfterStill=t},t.prototype.wakeUp=function(){this.animation.start(),this._stillFrameAccum=0},t.prototype.addHover=function(t){},t.prototype.removeHover=function(t){},t.prototype.clearHover=function(){},t.prototype.refreshHover=function(){this._needsRefreshHover=!0},t.prototype.refreshHoverImmediately=function(){this._needsRefreshHover=!1,this.painter.refreshHover&&"canvas"===this.painter.getType()&&this.painter.refreshHover()},t.prototype.resize=function(t){t=t||{},this.painter.resize(t.width,t.height),this.handler.resize()},t.prototype.clearAnimation=function(){this.animation.clear()},t.prototype.getWidth=function(){return this.painter.getWidth()},t.prototype.getHeight=function(){return this.painter.getHeight()},t.prototype.pathToImage=function(t,e){if(this.painter.pathToImage)return this.painter.pathToImage(t,e)},t.prototype.setCursorStyle=function(t){this.handler.setCursorStyle(t)},t.prototype.findHover=function(t,e){return this.handler.findHover(t,e)},t.prototype.on=function(t,e,n){return this.handler.on(t,e,n),this},t.prototype.off=function(t,e){this.handler.off(t,e)},t.prototype.trigger=function(t,e){this.handler.trigger(t,e)},t.prototype.clear=function(){for(var t=this.storage.getRoots(),e=0;e<t.length;e++)t[e]instanceof zi&&t[e].removeSelfFromZr(this);this.storage.delAllRoots(),this.painter.clear()},t.prototype.dispose=function(){var t;this.animation.stop(),this.clear(),this.storage.dispose(),this.painter.dispose(),this.handler.dispose(),this.animation=this.storage=this.painter=this.handler=null,t=this.id,delete Fi[t]},t}();function Hi(t,e){var n=new Gi(x(),t,e);return Fi[n.id]=n,n}function Wi(t,e){Vi[t]=e}var Yi=Object.freeze({__proto__:null,init:Hi,dispose:function(t){t.dispose()},disposeAll:function(){for(var t in Fi)Fi.hasOwnProperty(t)&&Fi[t].dispose();Fi={}},getInstance:function(t){return Fi[t]},registerPainter:Wi,version:"5.0.3"}),Xi=1e-4;function Ui(t,e,n,i){var r=e[1]-e[0],o=n[1]-n[0];if(0===r)return 0===o?n[0]:(n[0]+n[1])/2;if(i)if(r>0){if(t<=e[0])return n[0];if(t>=e[1])return n[1]}else{if(t>=e[0])return n[0];if(t<=e[1])return n[1]}else{if(t===e[0])return n[0];if(t===e[1])return n[1]}return(t-e[0])/r*o+n[0]}function Zi(t,e){switch(t){case"center":case"middle":t="50%";break;case"left":case"top":t="0%";break;case"right":case"bottom":t="100%"}return"string"==typeof t?(n=t,n.replace(/^\s+|\s+$/g,"")).match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?NaN:+t;var n}function ji(t,e,n){return null==e&&(e=10),e=Math.min(Math.max(0,e),20),t=(+t).toFixed(e),n?t:+t}function qi(t){return t.sort((function(t,e){return t-e})),t}function Ki(t){if(t=+t,isNaN(t))return 0;for(var e=1,n=0;Math.round(t*e)/e!==t;)e*=10,n++;return n}function $i(t){var e=t.toString(),n=e.indexOf("e");if(n>0){var i=+e.slice(n+1);return i<0?-i:0}var r=e.indexOf(".");return r<0?0:e.length-1-r}function Ji(t,e){var n=Math.log,i=Math.LN10,r=Math.floor(n(t[1]-t[0])/i),o=Math.round(n(Math.abs(e[1]-e[0]))/i),a=Math.min(Math.max(-r+o,0),20);return isFinite(a)?a:20}function Qi(t,e,n){if(!t[e])return 0;var i=R(t,(function(t,e){return t+(isNaN(e)?0:e)}),0);if(0===i)return 0;for(var r=Math.pow(10,n),o=O(t,(function(t){return(isNaN(t)?0:t)/i*r*100})),a=100*r,s=O(o,(function(t){return Math.floor(t)})),l=R(s,(function(t,e){return t+e}),0),u=O(o,(function(t,e){return t-s[e]}));l<a;){for(var h=Number.NEGATIVE_INFINITY,c=null,p=0,d=u.length;p<d;++p)u[p]>h&&(h=u[p],c=p);++s[c],u[c]=0,++l}return s[e]/r}var tr=9007199254740991;function er(t){var e=2*Math.PI;return(t%e+e)%e}function nr(t){return t>-1e-4&&t<Xi}var ir=/^(?:(\d{4})(?:[-\/](\d{1,2})(?:[-\/](\d{1,2})(?:[T ](\d{1,2})(?::(\d{1,2})(?::(\d{1,2})(?:[.,](\d+))?)?)?(Z|[\+\-]\d\d:?\d\d)?)?)?)?)?$/;function rr(t){if(t instanceof Date)return t;if("string"==typeof t){var e=ir.exec(t);if(!e)return new Date(NaN);if(e[8]){var n=+e[4]||0;return"Z"!==e[8].toUpperCase()&&(n-=+e[8].slice(0,3)),new Date(Date.UTC(+e[1],+(e[2]||1)-1,+e[3]||1,n,+(e[5]||0),+e[6]||0,+e[7]||0))}return new Date(+e[1],+(e[2]||1)-1,+e[3]||1,+e[4]||0,+(e[5]||0),+e[6]||0,+e[7]||0)}return null==t?new Date(NaN):new Date(Math.round(t))}function or(t){return Math.pow(10,ar(t))}function ar(t){if(0===t)return 0;var e=Math.floor(Math.log(t)/Math.LN10);return t/Math.pow(10,e)>=10&&e++,e}function sr(t,e){var n=ar(t),i=Math.pow(10,n),r=t/i;return t=(e?r<1.5?1:r<2.5?2:r<4?3:r<7?5:10:r<1?1:r<2?2:r<3?3:r<5?5:10)*i,n>=-20?+t.toFixed(n<0?-n:0):t}function lr(t,e){var n=(t.length-1)*e+1,i=Math.floor(n),r=+t[i-1],o=n-i;return o?r+o*(t[i]-r):r}function ur(t){t.sort((function(t,e){return s(t,e,0)?-1:1}));for(var e=-1/0,n=1,i=0;i<t.length;){for(var r=t[i].interval,o=t[i].close,a=0;a<2;a++)r[a]<=e&&(r[a]=e,o[a]=a?1:1-n),e=r[a],n=o[a];r[0]===r[1]&&o[0]*o[1]!=1?t.splice(i,1):i++}return t;function s(t,e,n){return t.interval[n]<e.interval[n]||t.interval[n]===e.interval[n]&&(t.close[n]-e.close[n]==(n?-1:1)||!n&&s(t,e,1))}}function hr(t){var e=parseFloat(t);return e==t&&(0!==e||"string"!=typeof t||t.indexOf("x")<=0)?e:NaN}function cr(t){return!isNaN(hr(t))}function pr(){return Math.round(9*Math.random())}function dr(t,e){return 0===e?t:dr(e,t%e)}function fr(t,e){return null==t?e:null==e?t:t*e/dr(t,e)}"undefined"!=typeof console&&console.warn&&console.log;function gr(t){0}function yr(t){throw new Error(t)}var vr="series\0",mr="\0_ec_\0";function _r(t){return t instanceof Array?t:null==t?[]:[t]}function xr(t,e,n){if(t){t[e]=t[e]||{},t.emphasis=t.emphasis||{},t.emphasis[e]=t.emphasis[e]||{};for(var i=0,r=n.length;i<r;i++){var o=n[i];!t.emphasis[e].hasOwnProperty(o)&&t[e].hasOwnProperty(o)&&(t.emphasis[e][o]=t[e][o])}}}var br=["fontStyle","fontWeight","fontSize","fontFamily","rich","tag","color","textBorderColor","textBorderWidth","width","height","lineHeight","align","verticalAlign","baseline","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","textShadowColor","textShadowBlur","textShadowOffsetX","textShadowOffsetY","backgroundColor","borderColor","borderWidth","borderRadius","padding"];function wr(t){return!X(t)||F(t)||t instanceof Date?t:t.value}function Sr(t,e,n){var i="normalMerge"===n,r="replaceMerge"===n,o="replaceAll"===n;t=t||[],e=(e||[]).slice();var a=ht();P(e,(function(t,n){X(t)||(e[n]=null)}));var s,l,u=function(t,e,n){var i=[];if("replaceAll"===n)return i;for(var r=0;r<t.length;r++){var o=t[r];o&&null!=o.id&&e.set(o.id,r),i.push({existing:"replaceMerge"===n||Ar(o)?null:o,newOption:null,keyInfo:null,brandNew:null})}return i}(t,a,n);return(i||r)&&function(t,e,n,i){P(i,(function(r,o){if(r&&null!=r.id){var a=Ir(r.id),s=n.get(a);if(null!=s){var l=t[s];rt(!l.newOption,'Duplicated option on id "'+a+'".'),l.newOption=r,l.existing=e[s],i[o]=null}}}))}(u,t,a,e),i&&function(t,e){P(e,(function(n,i){if(n&&null!=n.name)for(var r=0;r<t.length;r++){var o=t[r].existing;if(!t[r].newOption&&o&&(null==o.id||null==n.id)&&!Ar(n)&&!Ar(o)&&Mr("name",o,n))return t[r].newOption=n,void(e[i]=null)}}))}(u,e),i||r?function(t,e,n){P(e,(function(e){if(e){for(var i,r=0;(i=t[r])&&(i.newOption||Ar(i.existing)||i.existing&&null!=e.id&&!Mr("id",e,i.existing));)r++;i?(i.newOption=e,i.brandNew=n):t.push({newOption:e,brandNew:n,existing:null,keyInfo:null}),r++}}))}(u,e,r):o&&function(t,e){P(e,(function(e){t.push({newOption:e,brandNew:!0,existing:null,keyInfo:null})}))}(u,e),s=u,l=ht(),P(s,(function(t){var e=t.existing;e&&l.set(e.id,t)})),P(s,(function(t){var e=t.newOption;rt(!e||null==e.id||!l.get(e.id)||l.get(e.id)===t,"id duplicates: "+(e&&e.id)),e&&null!=e.id&&l.set(e.id,t),!t.keyInfo&&(t.keyInfo={})})),P(s,(function(t,e){var n=t.existing,i=t.newOption,r=t.keyInfo;if(X(i)){if(r.name=null!=i.name?Ir(i.name):n?n.name:vr+e,n)r.id=Ir(n.id);else if(null!=i.id)r.id=Ir(i.id);else{var o=0;do{r.id="\0"+r.name+"\0"+o++}while(l.get(r.id))}l.set(r.id,t)}})),u}function Mr(t,e,n){var i=Tr(e[t],null),r=Tr(n[t],null);return null!=i&&null!=r&&i===r}function Ir(t){return Tr(t,"")}function Tr(t,e){if(null==t)return e;var n=typeof t;return"string"===n?t:"number"===n||W(t)?t+"":e}function Cr(t){var e=t.name;return!(!e||!e.indexOf(vr))}function Ar(t){return t&&null!=t.id&&0===Ir(t.id).indexOf(mr)}function Dr(t,e){return null!=e.dataIndexInside?e.dataIndexInside:null!=e.dataIndex?F(e.dataIndex)?O(e.dataIndex,(function(e){return t.indexOfRawIndex(e)})):t.indexOfRawIndex(e.dataIndex):null!=e.name?F(e.name)?O(e.name,(function(e){return t.indexOfName(e)})):t.indexOfName(e.name):void 0}function Lr(){var t="__ec_inner_"+kr++;return function(e){return e[t]||(e[t]={})}}var kr=pr();function Pr(t,e,n){var i;if(H(e)){var r={};r[e+"Index"]=0,i=r}else i=e;var o=ht(),a={},s=!1;P(i,(function(t,e){if("dataIndex"!==e&&"dataIndexInside"!==e){var i=e.match(/^(\w+)(Index|Id|Name)$/)||[],r=i[1],l=(i[2]||"").toLowerCase();if(r&&l&&!(n&&n.includeMainTypes&&A(n.includeMainTypes,r)<0))s=s||!!r,(o.get(r)||o.set(r,{}))[l]=t}else a[e]=t}));var l=n?n.defaultMainType:null;return!s&&l&&o.set(l,{}),o.each((function(e,i){var r=Nr(t,i,e,{useDefault:l===i,enableAll:!n||null==n.enableAll||n.enableAll,enableNone:!n||null==n.enableNone||n.enableNone});a[i+"Models"]=r.models,a[i+"Model"]=r.models[0]})),a}var Or={useDefault:!0,enableAll:!1,enableNone:!1},Rr={useDefault:!1,enableAll:!0,enableNone:!0};function Nr(t,e,n,i){i=i||Or;var r=n.index,o=n.id,a=n.name,s={models:null,specified:null!=r||null!=o||null!=a};if(!s.specified){var l=void 0;return s.models=i.useDefault&&(l=t.getComponent(e))?[l]:[],s}return"none"===r||!1===r?(rt(i.enableNone,'`"none"` or `false` is not a valid value on index option.'),s.models=[],s):("all"===r&&(rt(i.enableAll,'`"all"` is not a valid value on index option.'),r=o=a=null),s.models=t.queryComponents({mainType:e,index:r,id:o,name:a}),s)}function Er(t,e,n){t.setAttribute?t.setAttribute(e,n):t[e]=n}function zr(t,e){var n=ht(),i=[];return P(t,(function(t){var r=e(t);(n.get(r)||(i.push(r),n.set(r,[]))).push(t)})),{keys:i,buckets:n}}function Br(t,e,n,i,r){var o=null==e||"auto"===e;if(null==i)return i;if("number"==typeof i)return ji(d=hn(n||0,i,r),o?Math.max($i(n||0),$i(i)):e);if("string"==typeof i)return r<1?n:i;for(var a=[],s=n,l=i,u=Math.max(s?s.length:0,l.length),h=0;h<u;++h){if("ordinal"===t.getDimensionInfo(h).type)a[h]=(r<1&&s?s:l)[h];else{var c=s&&s[h]?s[h]:0,p=l[h],d=hn(c,p,r);a[h]=ji(d,o?Math.max($i(c),$i(p)):e)}}return a}var Vr="___EC__COMPONENT__CONTAINER___",Fr="___EC__EXTENDED_CLASS___";function Gr(t){var e={main:"",sub:""};if(t){var n=t.split(".");e.main=n[0]||"",e.sub=n[1]||""}return e}function Hr(t,e){t.$constructor=t,t.extend=function(t){var e=this;function n(){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];if(t.$constructor)t.$constructor.apply(this,arguments);else{if(Wr(e)){var a=pt(n.prototype,new(e.bind.apply(e,r([void 0],i))));return a}e.apply(this,arguments)}}return n[Fr]=!0,I(n.prototype,t),n.extend=this.extend,n.superCall=Ur,n.superApply=Zr,D(n,this),n.superClass=e,n}}function Wr(t){return"function"==typeof t&&/^class\s/.test(Function.prototype.toString.call(t))}function Yr(t,e){t.extend=e.extend}var Xr=Math.round(10*Math.random());function Ur(t,e){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];return this.superClass.prototype[e].apply(t,n)}function Zr(t,e,n){return this.superClass.prototype[e].apply(t,n)}function jr(t){var e={};t.registerClass=function(t){var n,i=t.type||t.prototype.type;if(i){rt(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(n=i),'componentType "'+n+'" illegal'),t.prototype.type=i;var r=Gr(i);if(r.sub){if(r.sub!==Vr){(function(t){var n=e[t.main];n&&n[Vr]||((n=e[t.main]={})[Vr]=!0);return n}(r))[r.sub]=t}}else e[r.main]=t}return t},t.getClass=function(t,n,i){var r=e[t];if(r&&r[Vr]&&(r=n?r[n]:null),i&&!r)throw new Error(n?"Component "+t+"."+(n||"")+" not exists. Load it first.":t+".type should be specified.");return r},t.getClassesByMainType=function(t){var n=Gr(t),i=[],r=e[n.main];return r&&r[Vr]?P(r,(function(t,e){e!==Vr&&i.push(t)})):i.push(r),i},t.hasClass=function(t){var n=Gr(t);return!!e[n.main]},t.getAllClassMainTypes=function(){var t=[];return P(e,(function(e,n){t.push(n)})),t},t.hasSubTypes=function(t){var n=Gr(t),i=e[n.main];return i&&i[Vr]}}function qr(t,e){for(var n=0;n<t.length;n++)t[n][1]||(t[n][1]=t[n][0]);return e=e||!1,function(n,i,r){for(var o={},a=0;a<t.length;a++){var s=t[a][1];if(!(i&&A(i,s)>=0||r&&A(r,s)<0)){var l=n.getShallow(s,e);null!=l&&(o[t[a][0]]=l)}}return o}}var Kr=qr([["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]]),$r=function(){function t(){}return t.prototype.getAreaStyle=function(t,e){return Kr(this,t,e)},t}(),Jr=new Ee(50);function Qr(t){if("string"==typeof t){var e=Jr.get(t);return e&&e.image}return t}function to(t,e,n,i,r){if(t){if("string"==typeof t){if(e&&e.__zrImageSrc===t||!n)return e;var o=Jr.get(t),a={hostEl:n,cb:i,cbPayload:r};return o?!no(e=o.image)&&o.pending.push(a):((e=new Image).onload=e.onerror=eo,Jr.put(t,e.__cachedImgObj={image:e,pending:[a]}),e.src=e.__zrImageSrc=t),e}return t}return e}function eo(){var t=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var e=0;e<t.pending.length;e++){var n=t.pending[e],i=n.cb;i&&i(this,n.cbPayload),n.hostEl.dirty()}t.pending.length=0}function no(t){return t&&t.width&&t.height}var io=/\{([a-zA-Z0-9_]+)\|([^}]*)\}/g;function ro(t,e,n,i,r){if(!e)return"";var o=(t+"").split("\n");r=oo(e,n,i,r);for(var a=0,s=o.length;a<s;a++)o[a]=ao(o[a],r);return o.join("\n")}function oo(t,e,n,i){var r=I({},i=i||{});r.font=e,n=tt(n,"..."),r.maxIterations=tt(i.maxIterations,2);var o=r.minChar=tt(i.minChar,0);r.cnCharWidth=Bn("国",e);var a=r.ascCharWidth=Bn("a",e);r.placeholder=tt(i.placeholder,"");for(var s=t=Math.max(0,t-1),l=0;l<o&&s>=a;l++)s-=a;var u=Bn(n,e);return u>s&&(n="",u=0),s=t-u,r.ellipsis=n,r.ellipsisWidth=u,r.contentWidth=s,r.containerWidth=t,r}function ao(t,e){var n=e.containerWidth,i=e.font,r=e.contentWidth;if(!n)return"";var o=Bn(t,i);if(o<=n)return t;for(var a=0;;a++){if(o<=r||a>=e.maxIterations){t+=e.ellipsis;break}var s=0===a?so(t,r,e.ascCharWidth,e.cnCharWidth):o>0?Math.floor(t.length*r/o):0;o=Bn(t=t.substr(0,s),i)}return""===t&&(t=e.placeholder),t}function so(t,e,n,i){for(var r=0,o=0,a=t.length;o<a&&r<e;o++){var s=t.charCodeAt(o);r+=0<=s&&s<=127?n:i}return o}var lo=function(){},uo=function(t){this.tokens=[],t&&(this.tokens=t)},ho=function(){this.width=0,this.height=0,this.contentWidth=0,this.contentHeight=0,this.outerWidth=0,this.outerHeight=0,this.lines=[]};function co(t,e,n,i,r){var o,a,s=""===e,l=r&&n.rich[r]||{},u=t.lines,h=l.font||n.font,c=!1;if(i){var p=l.padding,d=p?p[1]+p[3]:0;if(null!=l.width&&"auto"!==l.width){var f=function(t,e){if("string"==typeof t)return t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t);return t}(l.width,i.width)+d;u.length>0&&f+i.accumWidth>i.width&&(o=e.split("\n"),c=!0),i.accumWidth=f}else{var g=go(e,h,i.width,i.breakAll,i.accumWidth);i.accumWidth=g.accumWidth+d,a=g.linesWidths,o=g.lines}}else o=e.split("\n");for(var y=0;y<o.length;y++){var v=o[y],m=new lo;if(m.styleName=r,m.text=v,m.isLineHolder=!v&&!s,"number"==typeof l.width?m.width=l.width:m.width=a?a[y]:Bn(v,h),y||c)u.push(new uo([m]));else{var _=(u[u.length-1]||(u[0]=new uo)).tokens,x=_.length;1===x&&_[0].isLineHolder?_[0]=m:(v||!x||s)&&_.push(m)}}}var po=R(",&?/;] ".split(""),(function(t,e){return t[e]=!0,t}),{});function fo(t){return!function(t){var e=t.charCodeAt(0);return e>=33&&e<=255}(t)||!!po[t]}function go(t,e,n,i,r){for(var o=[],a=[],s="",l="",u=0,h=0,c=0;c<t.length;c++){var p=t.charAt(c);if("\n"!==p){var d=Bn(p,e),f=!i&&!fo(p);(o.length?h+d>n:r+h+d>n)?h?(s||l)&&(f?(s||(s=l,l="",h=u=0),o.push(s),a.push(h-u),l+=p,s="",h=u+=d):(l&&(s+=l,h+=u,l="",u=0),o.push(s),a.push(h),s=p,h=d)):f?(o.push(l),a.push(u),l=p,u=d):(o.push(p),a.push(d)):(h+=d,f?(l+=p,u+=d):(l&&(s+=l,l="",u=0),s+=p))}else l&&(s+=l,h+=u),o.push(s),a.push(h),s="",l="",u=0,h=0}return o.length||s||(s=t,l="",u=0),l&&(s+=l),s&&(o.push(s),a.push(h)),1===o.length&&(h+=r),{accumWidth:h,lines:o,linesWidths:a}}var yo="__zr_style_"+Math.round(10*Math.random()),vo={shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:"#000",opacity:1,blend:"source-over"},mo={style:{shadowBlur:!0,shadowOffsetX:!0,shadowOffsetY:!0,shadowColor:!0,opacity:!0}};vo[yo]=!0;var _o=["z","z2","invisible"],xo=function(t){function e(e){return t.call(this,e)||this}var i;return n(e,t),e.prototype._init=function(e){for(var n=z(e),i=0;i<n.length;i++){var r=n[i];"style"===r?this.useStyle(e[r]):t.prototype.attrKV.call(this,r,e[r])}this.style||this.useStyle({})},e.prototype.beforeBrush=function(){},e.prototype.afterBrush=function(){},e.prototype.innerBeforeBrush=function(){},e.prototype.innerAfterBrush=function(){},e.prototype.shouldBePainted=function(t,e,n,i){var r=this.transform;if(this.ignore||this.invisible||0===this.style.opacity||this.culling&&function(t,e,n){bo.copy(t.getBoundingRect()),t.transform&&bo.applyTransform(t.transform);return wo.width=e,wo.height=n,!bo.intersect(wo)}(this,t,e)||r&&!r[0]&&!r[3])return!1;if(n&&this.__clipPaths)for(var o=0;o<this.__clipPaths.length;++o)if(this.__clipPaths[o].isZeroArea())return!1;if(i&&this.parent)for(var a=this.parent;a;){if(a.ignore)return!1;a=a.parent}return!0},e.prototype.contain=function(t,e){return this.rectContain(t,e)},e.prototype.traverse=function(t,e){t.call(e,this)},e.prototype.rectContain=function(t,e){var n=this.transformCoordToLocal(t,e);return this.getBoundingRect().contain(n[0],n[1])},e.prototype.getPaintRect=function(){var t=this._paintRect;if(!this._paintRect||this.__dirty){var e=this.transform,n=this.getBoundingRect(),i=this.style,r=i.shadowBlur||0,o=i.shadowOffsetX||0,a=i.shadowOffsetY||0;t=this._paintRect||(this._paintRect=new Rn(0,0,0,0)),e?Rn.applyTransform(t,n,e):t.copy(n),(r||o||a)&&(t.width+=2*r+Math.abs(o),t.height+=2*r+Math.abs(a),t.x=Math.min(t.x,t.x+o-r),t.y=Math.min(t.y,t.y+a-r));var s=this.dirtyRectTolerance;t.isZero()||(t.x=Math.floor(t.x-s),t.y=Math.floor(t.y-s),t.width=Math.ceil(t.width+1+2*s),t.height=Math.ceil(t.height+1+2*s))}return t},e.prototype.setPrevPaintRect=function(t){t?(this._prevPaintRect=this._prevPaintRect||new Rn(0,0,0,0),this._prevPaintRect.copy(t)):this._prevPaintRect=null},e.prototype.getPrevPaintRect=function(){return this._prevPaintRect},e.prototype.animateStyle=function(t){return this.animate("style",t)},e.prototype.updateDuringAnimation=function(t){"style"===t?this.dirtyStyle():this.markRedraw()},e.prototype.attrKV=function(e,n){"style"!==e?t.prototype.attrKV.call(this,e,n):this.style?this.setStyle(n):this.useStyle(n)},e.prototype.setStyle=function(t,e){return"string"==typeof t?this.style[t]=e:I(this.style,t),this.dirtyStyle(),this},e.prototype.dirtyStyle=function(){this.markRedraw(),this.__dirty|=e.STYLE_CHANGED_BIT,this._rect&&(this._rect=null)},e.prototype.dirty=function(){this.dirtyStyle()},e.prototype.styleChanged=function(){return!!(this.__dirty&e.STYLE_CHANGED_BIT)},e.prototype.styleUpdated=function(){this.__dirty&=~e.STYLE_CHANGED_BIT},e.prototype.createStyle=function(t){return pt(vo,t)},e.prototype.useStyle=function(t){t[yo]||(t=this.createStyle(t)),this.__inHover?this.__hoverStyle=t:this.style=t,this.dirtyStyle()},e.prototype.isStyleObject=function(t){return t[yo]},e.prototype._innerSaveToNormal=function(e){t.prototype._innerSaveToNormal.call(this,e);var n=this._normalState;e.style&&!n.style&&(n.style=this._mergeStyle(this.createStyle(),this.style)),this._savePrimaryToNormal(e,n,_o)},e.prototype._applyStateObj=function(e,n,i,r,o,a){t.prototype._applyStateObj.call(this,e,n,i,r,o,a);var s,l=!(n&&r);if(n&&n.style?o?r?s=n.style:(s=this._mergeStyle(this.createStyle(),i.style),this._mergeStyle(s,n.style)):(s=this._mergeStyle(this.createStyle(),r?this.style:i.style),this._mergeStyle(s,n.style)):l&&(s=i.style),s)if(o){var u=this.style;if(this.style=this.createStyle(l?{}:u),l)for(var h=z(u),c=0;c<h.length;c++){(d=h[c])in s&&(s[d]=s[d],this.style[d]=u[d])}var p=z(s);for(c=0;c<p.length;c++){var d=p[c];this.style[d]=this.style[d]}this._transitionState(e,{style:s},a,this.getAnimationStyleProps())}else this.useStyle(s);for(c=0;c<_o.length;c++){d=_o[c];n&&null!=n[d]?this[d]=n[d]:l&&null!=i[d]&&(this[d]=i[d])}},e.prototype._mergeStates=function(e){for(var n,i=t.prototype._mergeStates.call(this,e),r=0;r<e.length;r++){var o=e[r];o.style&&(n=n||{},this._mergeStyle(n,o.style))}return n&&(i.style=n),i},e.prototype._mergeStyle=function(t,e){return I(t,e),t},e.prototype.getAnimationStyleProps=function(){return mo},e.STYLE_CHANGED_BIT=2,e.initDefaultProps=((i=e.prototype).type="displayable",i.invisible=!1,i.z=0,i.z2=0,i.zlevel=0,i.culling=!1,i.cursor="pointer",i.rectHover=!1,i.incremental=!1,i._rect=null,i.dirtyRectTolerance=0,void(i.__dirty=ei.REDARAW_BIT|e.STYLE_CHANGED_BIT)),e}(ei),bo=new Rn(0,0,0,0),wo=new Rn(0,0,0,0);var So=Math.pow,Mo=Math.sqrt,Io=1e-8,To=1e-4,Co=Mo(3),Ao=1/3,Do=yt(),Lo=yt(),ko=yt();function Po(t){return t>-1e-8&&t<Io}function Oo(t){return t>Io||t<-1e-8}function Ro(t,e,n,i,r){var o=1-r;return o*o*(o*t+3*r*e)+r*r*(r*i+3*o*n)}function No(t,e,n,i,r){var o=1-r;return 3*(((e-t)*o+2*(n-e)*r)*o+(i-n)*r*r)}function Eo(t,e,n,i,r,o){var a=i+3*(e-n)-t,s=3*(n-2*e+t),l=3*(e-t),u=t-r,h=s*s-3*a*l,c=s*l-9*a*u,p=l*l-3*s*u,d=0;if(Po(h)&&Po(c)){if(Po(s))o[0]=0;else(M=-l/s)>=0&&M<=1&&(o[d++]=M)}else{var f=c*c-4*h*p;if(Po(f)){var g=c/h,y=-g/2;(M=-s/a+g)>=0&&M<=1&&(o[d++]=M),y>=0&&y<=1&&(o[d++]=y)}else if(f>0){var v=Mo(f),m=h*s+1.5*a*(-c+v),_=h*s+1.5*a*(-c-v);(M=(-s-((m=m<0?-So(-m,Ao):So(m,Ao))+(_=_<0?-So(-_,Ao):So(_,Ao))))/(3*a))>=0&&M<=1&&(o[d++]=M)}else{var x=(2*h*s-3*a*c)/(2*Mo(h*h*h)),b=Math.acos(x)/3,w=Mo(h),S=Math.cos(b),M=(-s-2*w*S)/(3*a),I=(y=(-s+w*(S+Co*Math.sin(b)))/(3*a),(-s+w*(S-Co*Math.sin(b)))/(3*a));M>=0&&M<=1&&(o[d++]=M),y>=0&&y<=1&&(o[d++]=y),I>=0&&I<=1&&(o[d++]=I)}}return d}function zo(t,e,n,i,r){var o=6*n-12*e+6*t,a=9*e+3*i-3*t-9*n,s=3*e-3*t,l=0;if(Po(a)){if(Oo(o))(h=-s/o)>=0&&h<=1&&(r[l++]=h)}else{var u=o*o-4*a*s;if(Po(u))r[0]=-o/(2*a);else if(u>0){var h,c=Mo(u),p=(-o-c)/(2*a);(h=(-o+c)/(2*a))>=0&&h<=1&&(r[l++]=h),p>=0&&p<=1&&(r[l++]=p)}}return l}function Bo(t,e,n,i,r,o){var a=(e-t)*r+t,s=(n-e)*r+e,l=(i-n)*r+n,u=(s-a)*r+a,h=(l-s)*r+s,c=(h-u)*r+u;o[0]=t,o[1]=a,o[2]=u,o[3]=c,o[4]=c,o[5]=h,o[6]=l,o[7]=i}function Vo(t,e,n,i,r,o,a,s,l,u,h){var c,p,d,f,g,y=.005,v=1/0;Do[0]=l,Do[1]=u;for(var m=0;m<1;m+=.05)Lo[0]=Ro(t,n,r,a,m),Lo[1]=Ro(e,i,o,s,m),(f=Pt(Do,Lo))<v&&(c=m,v=f);v=1/0;for(var _=0;_<32&&!(y<To);_++)p=c-y,d=c+y,Lo[0]=Ro(t,n,r,a,p),Lo[1]=Ro(e,i,o,s,p),f=Pt(Lo,Do),p>=0&&f<v?(c=p,v=f):(ko[0]=Ro(t,n,r,a,d),ko[1]=Ro(e,i,o,s,d),g=Pt(ko,Do),d<=1&&g<v?(c=d,v=g):y*=.5);return h&&(h[0]=Ro(t,n,r,a,c),h[1]=Ro(e,i,o,s,c)),Mo(v)}function Fo(t,e,n,i,r,o,a,s,l){for(var u=t,h=e,c=0,p=1/l,d=1;d<=l;d++){var f=d*p,g=Ro(t,n,r,a,f),y=Ro(e,i,o,s,f),v=g-u,m=y-h;c+=Math.sqrt(v*v+m*m),u=g,h=y}return c}function Go(t,e,n,i){var r=1-i;return r*(r*t+2*i*e)+i*i*n}function Ho(t,e,n,i){return 2*((1-i)*(e-t)+i*(n-e))}function Wo(t,e,n){var i=t+n-2*e;return 0===i?.5:(t-e)/i}function Yo(t,e,n,i,r){var o=(e-t)*i+t,a=(n-e)*i+e,s=(a-o)*i+o;r[0]=t,r[1]=o,r[2]=s,r[3]=s,r[4]=a,r[5]=n}function Xo(t,e,n,i,r,o,a,s,l){var u,h=.005,c=1/0;Do[0]=a,Do[1]=s;for(var p=0;p<1;p+=.05){Lo[0]=Go(t,n,r,p),Lo[1]=Go(e,i,o,p),(y=Pt(Do,Lo))<c&&(u=p,c=y)}c=1/0;for(var d=0;d<32&&!(h<To);d++){var f=u-h,g=u+h;Lo[0]=Go(t,n,r,f),Lo[1]=Go(e,i,o,f);var y=Pt(Lo,Do);if(f>=0&&y<c)u=f,c=y;else{ko[0]=Go(t,n,r,g),ko[1]=Go(e,i,o,g);var v=Pt(ko,Do);g<=1&&v<c?(u=g,c=v):h*=.5}}return l&&(l[0]=Go(t,n,r,u),l[1]=Go(e,i,o,u)),Mo(c)}function Uo(t,e,n,i,r,o,a){for(var s=t,l=e,u=0,h=1/a,c=1;c<=a;c++){var p=c*h,d=Go(t,n,r,p),f=Go(e,i,o,p),g=d-s,y=f-l;u+=Math.sqrt(g*g+y*y),s=d,l=f}return u}var Zo=Math.min,jo=Math.max,qo=Math.sin,Ko=Math.cos,$o=2*Math.PI,Jo=yt(),Qo=yt(),ta=yt();function ea(t,e,n){if(0!==t.length){for(var i=t[0],r=i[0],o=i[0],a=i[1],s=i[1],l=1;l<t.length;l++)i=t[l],r=Zo(r,i[0]),o=jo(o,i[0]),a=Zo(a,i[1]),s=jo(s,i[1]);e[0]=r,e[1]=a,n[0]=o,n[1]=s}}function na(t,e,n,i,r,o){r[0]=Zo(t,n),r[1]=Zo(e,i),o[0]=jo(t,n),o[1]=jo(e,i)}var ia=[],ra=[];function oa(t,e,n,i,r,o,a,s,l,u){var h=zo,c=Ro,p=h(t,n,r,a,ia);l[0]=1/0,l[1]=1/0,u[0]=-1/0,u[1]=-1/0;for(var d=0;d<p;d++){var f=c(t,n,r,a,ia[d]);l[0]=Zo(f,l[0]),u[0]=jo(f,u[0])}p=h(e,i,o,s,ra);for(d=0;d<p;d++){var g=c(e,i,o,s,ra[d]);l[1]=Zo(g,l[1]),u[1]=jo(g,u[1])}l[0]=Zo(t,l[0]),u[0]=jo(t,u[0]),l[0]=Zo(a,l[0]),u[0]=jo(a,u[0]),l[1]=Zo(e,l[1]),u[1]=jo(e,u[1]),l[1]=Zo(s,l[1]),u[1]=jo(s,u[1])}function aa(t,e,n,i,r,o,a,s){var l=Wo,u=Go,h=jo(Zo(l(t,n,r),1),0),c=jo(Zo(l(e,i,o),1),0),p=u(t,n,r,h),d=u(e,i,o,c);a[0]=Zo(t,r,p),a[1]=Zo(e,o,d),s[0]=jo(t,r,p),s[1]=jo(e,o,d)}function sa(t,e,n,i,r,o,a,s,l){var u=Nt,h=Et,c=Math.abs(r-o);if(c%$o<1e-4&&c>1e-4)return s[0]=t-n,s[1]=e-i,l[0]=t+n,void(l[1]=e+i);if(Jo[0]=Ko(r)*n+t,Jo[1]=qo(r)*i+e,Qo[0]=Ko(o)*n+t,Qo[1]=qo(o)*i+e,u(s,Jo,Qo),h(l,Jo,Qo),(r%=$o)<0&&(r+=$o),(o%=$o)<0&&(o+=$o),r>o&&!a?o+=$o:r<o&&a&&(r+=$o),a){var p=o;o=r,r=p}for(var d=0;d<o;d+=Math.PI/2)d>r&&(ta[0]=Ko(d)*n+t,ta[1]=qo(d)*i+e,u(s,ta,s),h(l,ta,l))}var la={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},ua=[],ha=[],ca=[],pa=[],da=[],fa=[],ga=Math.min,ya=Math.max,va=Math.cos,ma=Math.sin,_a=Math.sqrt,xa=Math.abs,ba=Math.PI,wa=2*ba,Sa="undefined"!=typeof Float32Array,Ma=[];function Ia(t){return Math.round(t/ba*1e8)/1e8%2*ba}function Ta(t,e){var n=Ia(t[0]);n<0&&(n+=wa);var i=n-t[0],r=t[1];r+=i,!e&&r-n>=wa?r=n+wa:e&&n-r>=wa?r=n-wa:!e&&n>r?r=n+(wa-Ia(n-r)):e&&n<r&&(r=n-(wa-Ia(r-n))),t[0]=n,t[1]=r}var Ca=function(){function t(t){this.dpr=1,this._version=0,this._xi=0,this._yi=0,this._x0=0,this._y0=0,this._len=0,t&&(this._saveData=!1),this._saveData&&(this.data=[])}return t.prototype.increaseVersion=function(){this._version++},t.prototype.getVersion=function(){return this._version},t.prototype.setScale=function(t,e,n){(n=n||0)>0&&(this._ux=xa(n/Zn/t)||0,this._uy=xa(n/Zn/e)||0)},t.prototype.setDPR=function(t){this.dpr=t},t.prototype.setContext=function(t){this._ctx=t},t.prototype.getContext=function(){return this._ctx},t.prototype.beginPath=function(){return this._ctx&&this._ctx.beginPath(),this.reset(),this},t.prototype.reset=function(){this._saveData&&(this._len=0),this._lineDash&&(this._lineDash=null,this._dashOffset=0),this._pathSegLen&&(this._pathSegLen=null,this._pathLen=0),this._version++},t.prototype.moveTo=function(t,e){return this.addData(la.M,t,e),this._ctx&&this._ctx.moveTo(t,e),this._x0=t,this._y0=e,this._xi=t,this._yi=e,this},t.prototype.lineTo=function(t,e){var n=xa(t-this._xi)>this._ux||xa(e-this._yi)>this._uy||this._len<5;return this.addData(la.L,t,e),this._ctx&&n&&(this._needsDash?this._dashedLineTo(t,e):this._ctx.lineTo(t,e)),n&&(this._xi=t,this._yi=e),this},t.prototype.bezierCurveTo=function(t,e,n,i,r,o){return this.addData(la.C,t,e,n,i,r,o),this._ctx&&(this._needsDash?this._dashedBezierTo(t,e,n,i,r,o):this._ctx.bezierCurveTo(t,e,n,i,r,o)),this._xi=r,this._yi=o,this},t.prototype.quadraticCurveTo=function(t,e,n,i){return this.addData(la.Q,t,e,n,i),this._ctx&&(this._needsDash?this._dashedQuadraticTo(t,e,n,i):this._ctx.quadraticCurveTo(t,e,n,i)),this._xi=n,this._yi=i,this},t.prototype.arc=function(t,e,n,i,r,o){Ma[0]=i,Ma[1]=r,Ta(Ma,o),i=Ma[0];var a=(r=Ma[1])-i;return this.addData(la.A,t,e,n,n,i,a,0,o?0:1),this._ctx&&this._ctx.arc(t,e,n,i,r,o),this._xi=va(r)*n+t,this._yi=ma(r)*n+e,this},t.prototype.arcTo=function(t,e,n,i,r){return this._ctx&&this._ctx.arcTo(t,e,n,i,r),this},t.prototype.rect=function(t,e,n,i){return this._ctx&&this._ctx.rect(t,e,n,i),this.addData(la.R,t,e,n,i),this},t.prototype.closePath=function(){this.addData(la.Z);var t=this._ctx,e=this._x0,n=this._y0;return t&&(this._needsDash&&this._dashedLineTo(e,n),t.closePath()),this._xi=e,this._yi=n,this},t.prototype.fill=function(t){t&&t.fill(),this.toStatic()},t.prototype.stroke=function(t){t&&t.stroke(),this.toStatic()},t.prototype.setLineDash=function(t){if(t instanceof Array){this._lineDash=t,this._dashIdx=0;for(var e=0,n=0;n<t.length;n++)e+=t[n];this._dashSum=e,this._needsDash=!0}else this._lineDash=null,this._needsDash=!1;return this},t.prototype.setLineDashOffset=function(t){return this._dashOffset=t,this},t.prototype.len=function(){return this._len},t.prototype.setData=function(t){var e=t.length;this.data&&this.data.length===e||!Sa||(this.data=new Float32Array(e));for(var n=0;n<e;n++)this.data[n]=t[n];this._len=e},t.prototype.appendPath=function(t){t instanceof Array||(t=[t]);for(var e=t.length,n=0,i=this._len,r=0;r<e;r++)n+=t[r].len();Sa&&this.data instanceof Float32Array&&(this.data=new Float32Array(i+n));for(r=0;r<e;r++)for(var o=t[r].data,a=0;a<o.length;a++)this.data[i++]=o[a];this._len=i},t.prototype.addData=function(t,e,n,i,r,o,a,s,l){if(this._saveData){var u=this.data;this._len+arguments.length>u.length&&(this._expandData(),u=this.data);for(var h=0;h<arguments.length;h++)u[this._len++]=arguments[h]}},t.prototype._expandData=function(){if(!(this.data instanceof Array)){for(var t=[],e=0;e<this._len;e++)t[e]=this.data[e];this.data=t}},t.prototype._dashedLineTo=function(t,e){var n,i,r=this._dashSum,o=this._lineDash,a=this._ctx,s=this._dashOffset,l=this._xi,u=this._yi,h=t-l,c=e-u,p=_a(h*h+c*c),d=l,f=u,g=o.length;for(s<0&&(s=r+s),d-=(s%=r)*(h/=p),f-=s*(c/=p);h>0&&d<=t||h<0&&d>=t||0===h&&(c>0&&f<=e||c<0&&f>=e);)d+=h*(n=o[i=this._dashIdx]),f+=c*n,this._dashIdx=(i+1)%g,h>0&&d<l||h<0&&d>l||c>0&&f<u||c<0&&f>u||a[i%2?"moveTo":"lineTo"](h>=0?ga(d,t):ya(d,t),c>=0?ga(f,e):ya(f,e));h=d-t,c=f-e,this._dashOffset=-_a(h*h+c*c)},t.prototype._dashedBezierTo=function(t,e,n,i,r,o){var a,s,l,u,h,c=this._ctx,p=this._dashSum,d=this._dashOffset,f=this._lineDash,g=this._xi,y=this._yi,v=0,m=this._dashIdx,_=f.length,x=0;for(d<0&&(d=p+d),d%=p,a=0;a<1;a+=.1)s=Ro(g,t,n,r,a+.1)-Ro(g,t,n,r,a),l=Ro(y,e,i,o,a+.1)-Ro(y,e,i,o,a),v+=_a(s*s+l*l);for(;m<_&&!((x+=f[m])>d);m++);for(a=(x-d)/v;a<=1;)u=Ro(g,t,n,r,a),h=Ro(y,e,i,o,a),m%2?c.moveTo(u,h):c.lineTo(u,h),a+=f[m]/v,m=(m+1)%_;m%2!=0&&c.lineTo(r,o),s=r-u,l=o-h,this._dashOffset=-_a(s*s+l*l)},t.prototype._dashedQuadraticTo=function(t,e,n,i){var r=n,o=i;n=(n+2*t)/3,i=(i+2*e)/3,t=(this._xi+2*t)/3,e=(this._yi+2*e)/3,this._dashedBezierTo(t,e,n,i,r,o)},t.prototype.toStatic=function(){if(this._saveData){var t=this.data;t instanceof Array&&(t.length=this._len,Sa&&this._len>11&&(this.data=new Float32Array(t)))}},t.prototype.getBoundingRect=function(){ca[0]=ca[1]=da[0]=da[1]=Number.MAX_VALUE,pa[0]=pa[1]=fa[0]=fa[1]=-Number.MAX_VALUE;var t,e=this.data,n=0,i=0,r=0,o=0;for(t=0;t<this._len;){var a=e[t++],s=1===t;switch(s&&(r=n=e[t],o=i=e[t+1]),a){case la.M:n=r=e[t++],i=o=e[t++],da[0]=r,da[1]=o,fa[0]=r,fa[1]=o;break;case la.L:na(n,i,e[t],e[t+1],da,fa),n=e[t++],i=e[t++];break;case la.C:oa(n,i,e[t++],e[t++],e[t++],e[t++],e[t],e[t+1],da,fa),n=e[t++],i=e[t++];break;case la.Q:aa(n,i,e[t++],e[t++],e[t],e[t+1],da,fa),n=e[t++],i=e[t++];break;case la.A:var l=e[t++],u=e[t++],h=e[t++],c=e[t++],p=e[t++],d=e[t++]+p;t+=1;var f=!e[t++];s&&(r=va(p)*h+l,o=ma(p)*c+u),sa(l,u,h,c,p,d,f,da,fa),n=va(d)*h+l,i=ma(d)*c+u;break;case la.R:na(r=n=e[t++],o=i=e[t++],r+e[t++],o+e[t++],da,fa);break;case la.Z:n=r,i=o}Nt(ca,ca,da),Et(pa,pa,fa)}return 0===t&&(ca[0]=ca[1]=pa[0]=pa[1]=0),new Rn(ca[0],ca[1],pa[0]-ca[0],pa[1]-ca[1])},t.prototype._calculateLength=function(){var t=this.data,e=this._len,n=this._ux,i=this._uy,r=0,o=0,a=0,s=0;this._pathSegLen||(this._pathSegLen=[]);for(var l=this._pathSegLen,u=0,h=0,c=0;c<e;){var p=t[c++],d=1===c;d&&(a=r=t[c],s=o=t[c+1]);var f=-1;switch(p){case la.M:r=a=t[c++],o=s=t[c++];break;case la.L:var g=t[c++],y=(_=t[c++])-o;(xa(D=g-r)>n||xa(y)>i||c===e-1)&&(f=Math.sqrt(D*D+y*y),r=g,o=_);break;case la.C:var v=t[c++],m=t[c++],_=(g=t[c++],t[c++]),x=t[c++],b=t[c++];f=Fo(r,o,v,m,g,_,x,b,10),r=x,o=b;break;case la.Q:f=Uo(r,o,v=t[c++],m=t[c++],g=t[c++],_=t[c++],10),r=g,o=_;break;case la.A:var w=t[c++],S=t[c++],M=t[c++],I=t[c++],T=t[c++],C=t[c++],A=C+T;c+=1;t[c++];d&&(a=va(T)*M+w,s=ma(T)*I+S),f=ya(M,I)*ga(wa,Math.abs(C)),r=va(A)*M+w,o=ma(A)*I+S;break;case la.R:a=r=t[c++],s=o=t[c++],f=2*t[c++]+2*t[c++];break;case la.Z:var D=a-r;y=s-o;f=Math.sqrt(D*D+y*y),r=a,o=s}f>=0&&(l[h++]=f,u+=f)}return this._pathLen=u,u},t.prototype.rebuildPath=function(t,e){var n,i,r,o,a,s,l,u,h=this.data,c=this._ux,p=this._uy,d=this._len,f=e<1,g=0,y=0;if(!f||(this._pathSegLen||this._calculateLength(),l=this._pathSegLen,u=e*this._pathLen))t:for(var v=0;v<d;){var m=h[v++],_=1===v;switch(_&&(n=r=h[v],i=o=h[v+1]),m){case la.M:n=r=h[v++],i=o=h[v++],t.moveTo(r,o);break;case la.L:if(a=h[v++],s=h[v++],xa(a-r)>c||xa(s-o)>p||v===d-1){if(f){if(g+(H=l[y++])>u){var x=(u-g)/H;t.lineTo(r*(1-x)+a*x,o*(1-x)+s*x);break t}g+=H}t.lineTo(a,s),r=a,o=s}break;case la.C:var b=h[v++],w=h[v++],S=h[v++],M=h[v++],I=h[v++],T=h[v++];if(f){if(g+(H=l[y++])>u){Bo(r,b,S,I,x=(u-g)/H,ua),Bo(o,w,M,T,x,ha),t.bezierCurveTo(ua[1],ha[1],ua[2],ha[2],ua[3],ha[3]);break t}g+=H}t.bezierCurveTo(b,w,S,M,I,T),r=I,o=T;break;case la.Q:b=h[v++],w=h[v++],S=h[v++],M=h[v++];if(f){if(g+(H=l[y++])>u){Yo(r,b,S,x=(u-g)/H,ua),Yo(o,w,M,x,ha),t.quadraticCurveTo(ua[1],ha[1],ua[2],ha[2]);break t}g+=H}t.quadraticCurveTo(b,w,S,M),r=S,o=M;break;case la.A:var C=h[v++],A=h[v++],D=h[v++],L=h[v++],k=h[v++],P=h[v++],O=h[v++],R=!h[v++],N=D>L?D:L,E=xa(D-L)>.001,z=k+P,B=!1;if(f)g+(H=l[y++])>u&&(z=k+P*(u-g)/H,B=!0),g+=H;if(E&&t.ellipse?t.ellipse(C,A,D,L,O,k,z,R):t.arc(C,A,N,k,z,R),B)break t;_&&(n=va(k)*D+C,i=ma(k)*L+A),r=va(z)*D+C,o=ma(z)*L+A;break;case la.R:n=r=h[v],i=o=h[v+1],a=h[v++],s=h[v++];var V=h[v++],F=h[v++];if(f){if(g+(H=l[y++])>u){var G=u-g;t.moveTo(a,s),t.lineTo(a+ga(G,V),s),(G-=V)>0&&t.lineTo(a+V,s+ga(G,F)),(G-=F)>0&&t.lineTo(a+ya(V-G,0),s+F),(G-=V)>0&&t.lineTo(a,s+ya(F-G,0));break t}g+=H}t.rect(a,s,V,F);break;case la.Z:if(f){var H;if(g+(H=l[y++])>u){x=(u-g)/H;t.lineTo(r*(1-x)+n*x,o*(1-x)+i*x);break t}g+=H}t.closePath(),r=n,o=i}}},t.CMD=la,t.initDefaultProps=function(){var e=t.prototype;e._saveData=!0,e._needsDash=!1,e._dashOffset=0,e._dashIdx=0,e._dashSum=0,e._ux=0,e._uy=0}(),t}();function Aa(t,e,n,i,r,o,a){if(0===r)return!1;var s=r,l=0;if(a>e+s&&a>i+s||a<e-s&&a<i-s||o>t+s&&o>n+s||o<t-s&&o<n-s)return!1;if(t===n)return Math.abs(o-t)<=s/2;var u=(l=(e-i)/(t-n))*o-a+(t*i-n*e)/(t-n);return u*u/(l*l+1)<=s/2*s/2}function Da(t,e,n,i,r,o,a,s,l,u,h){if(0===l)return!1;var c=l;return!(h>e+c&&h>i+c&&h>o+c&&h>s+c||h<e-c&&h<i-c&&h<o-c&&h<s-c||u>t+c&&u>n+c&&u>r+c&&u>a+c||u<t-c&&u<n-c&&u<r-c&&u<a-c)&&Vo(t,e,n,i,r,o,a,s,u,h,null)<=c/2}function La(t,e,n,i,r,o,a,s,l){if(0===a)return!1;var u=a;return!(l>e+u&&l>i+u&&l>o+u||l<e-u&&l<i-u&&l<o-u||s>t+u&&s>n+u&&s>r+u||s<t-u&&s<n-u&&s<r-u)&&Xo(t,e,n,i,r,o,s,l,null)<=u/2}var ka=2*Math.PI;function Pa(t){return(t%=ka)<0&&(t+=ka),t}var Oa=2*Math.PI;function Ra(t,e,n,i,r,o,a,s,l){if(0===a)return!1;var u=a;s-=t,l-=e;var h=Math.sqrt(s*s+l*l);if(h-u>n||h+u<n)return!1;if(Math.abs(i-r)%Oa<1e-4)return!0;if(o){var c=i;i=Pa(r),r=Pa(c)}else i=Pa(i),r=Pa(r);i>r&&(r+=Oa);var p=Math.atan2(l,s);return p<0&&(p+=Oa),p>=i&&p<=r||p+Oa>=i&&p+Oa<=r}function Na(t,e,n,i,r,o){if(o>e&&o>i||o<e&&o<i)return 0;if(i===e)return 0;var a=(o-e)/(i-e),s=i<e?1:-1;1!==a&&0!==a||(s=i<e?.5:-.5);var l=a*(n-t)+t;return l===r?1/0:l>r?s:0}var Ea=Ca.CMD,za=2*Math.PI;var Ba=[-1,-1,-1],Va=[-1,-1];function Fa(t,e,n,i,r,o,a,s,l,u){if(u>e&&u>i&&u>o&&u>s||u<e&&u<i&&u<o&&u<s)return 0;var h,c=Eo(e,i,o,s,u,Ba);if(0===c)return 0;for(var p=0,d=-1,f=void 0,g=void 0,y=0;y<c;y++){var v=Ba[y],m=0===v||1===v?.5:1;Ro(t,n,r,a,v)<l||(d<0&&(d=zo(e,i,o,s,Va),Va[1]<Va[0]&&d>1&&(h=void 0,h=Va[0],Va[0]=Va[1],Va[1]=h),f=Ro(e,i,o,s,Va[0]),d>1&&(g=Ro(e,i,o,s,Va[1]))),2===d?v<Va[0]?p+=f<e?m:-m:v<Va[1]?p+=g<f?m:-m:p+=s<g?m:-m:v<Va[0]?p+=f<e?m:-m:p+=s<f?m:-m)}return p}function Ga(t,e,n,i,r,o,a,s){if(s>e&&s>i&&s>o||s<e&&s<i&&s<o)return 0;var l=function(t,e,n,i,r){var o=t-2*e+n,a=2*(e-t),s=t-i,l=0;if(Po(o))Oo(a)&&(h=-s/a)>=0&&h<=1&&(r[l++]=h);else{var u=a*a-4*o*s;if(Po(u))(h=-a/(2*o))>=0&&h<=1&&(r[l++]=h);else if(u>0){var h,c=Mo(u),p=(-a-c)/(2*o);(h=(-a+c)/(2*o))>=0&&h<=1&&(r[l++]=h),p>=0&&p<=1&&(r[l++]=p)}}return l}(e,i,o,s,Ba);if(0===l)return 0;var u=Wo(e,i,o);if(u>=0&&u<=1){for(var h=0,c=Go(e,i,o,u),p=0;p<l;p++){var d=0===Ba[p]||1===Ba[p]?.5:1;Go(t,n,r,Ba[p])<a||(Ba[p]<u?h+=c<e?d:-d:h+=o<c?d:-d)}return h}d=0===Ba[0]||1===Ba[0]?.5:1;return Go(t,n,r,Ba[0])<a?0:o<e?d:-d}function Ha(t,e,n,i,r,o,a,s){if((s-=e)>n||s<-n)return 0;var l=Math.sqrt(n*n-s*s);Ba[0]=-l,Ba[1]=l;var u=Math.abs(i-r);if(u<1e-4)return 0;if(u>=za-1e-4){i=0,r=za;var h=o?1:-1;return a>=Ba[0]+t&&a<=Ba[1]+t?h:0}if(i>r){var c=i;i=r,r=c}i<0&&(i+=za,r+=za);for(var p=0,d=0;d<2;d++){var f=Ba[d];if(f+t>a){var g=Math.atan2(s,f);h=o?1:-1;g<0&&(g=za+g),(g>=i&&g<=r||g+za>=i&&g+za<=r)&&(g>Math.PI/2&&g<1.5*Math.PI&&(h=-h),p+=h)}}return p}function Wa(t,e,n,i,r){for(var o,a,s,l,u=t.data,h=t.len(),c=0,p=0,d=0,f=0,g=0,y=0;y<h;){var v=u[y++],m=1===y;switch(v===Ea.M&&y>1&&(n||(c+=Na(p,d,f,g,i,r))),m&&(f=p=u[y],g=d=u[y+1]),v){case Ea.M:p=f=u[y++],d=g=u[y++];break;case Ea.L:if(n){if(Aa(p,d,u[y],u[y+1],e,i,r))return!0}else c+=Na(p,d,u[y],u[y+1],i,r)||0;p=u[y++],d=u[y++];break;case Ea.C:if(n){if(Da(p,d,u[y++],u[y++],u[y++],u[y++],u[y],u[y+1],e,i,r))return!0}else c+=Fa(p,d,u[y++],u[y++],u[y++],u[y++],u[y],u[y+1],i,r)||0;p=u[y++],d=u[y++];break;case Ea.Q:if(n){if(La(p,d,u[y++],u[y++],u[y],u[y+1],e,i,r))return!0}else c+=Ga(p,d,u[y++],u[y++],u[y],u[y+1],i,r)||0;p=u[y++],d=u[y++];break;case Ea.A:var _=u[y++],x=u[y++],b=u[y++],w=u[y++],S=u[y++],M=u[y++];y+=1;var I=!!(1-u[y++]);o=Math.cos(S)*b+_,a=Math.sin(S)*w+x,m?(f=o,g=a):c+=Na(p,d,o,a,i,r);var T=(i-_)*w/b+_;if(n){if(Ra(_,x,w,S,S+M,I,e,T,r))return!0}else c+=Ha(_,x,w,S,S+M,I,T,r);p=Math.cos(S+M)*b+_,d=Math.sin(S+M)*w+x;break;case Ea.R:if(f=p=u[y++],g=d=u[y++],o=f+u[y++],a=g+u[y++],n){if(Aa(f,g,o,g,e,i,r)||Aa(o,g,o,a,e,i,r)||Aa(o,a,f,a,e,i,r)||Aa(f,a,f,g,e,i,r))return!0}else c+=Na(o,g,o,a,i,r),c+=Na(f,a,f,g,i,r);break;case Ea.Z:if(n){if(Aa(p,d,f,g,e,i,r))return!0}else c+=Na(p,d,f,g,i,r);p=f,d=g}}return n||(s=d,l=g,Math.abs(s-l)<1e-4)||(c+=Na(p,d,f,g,i,r)||0),0!==c}var Ya=T({fill:"#000",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:"butt",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},vo),Xa={style:T({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},mo.style)},Ua=["x","y","rotation","scaleX","scaleY","originX","originY","invisible","culling","z","z2","zlevel","parent"],Za=function(t){function e(e){return t.call(this,e)||this}var i;return n(e,t),e.prototype.update=function(){var n=this;t.prototype.update.call(this);var i=this.style;if(i.decal){var r=this._decalEl=this._decalEl||new e;r.buildPath===e.prototype.buildPath&&(r.buildPath=function(t){n.buildPath(t,n.shape)}),r.silent=!0;var o=r.style;for(var a in i)o[a]!==i[a]&&(o[a]=i[a]);o.fill=i.fill?i.decal:null,o.decal=null,o.shadowColor=null,i.strokeFirst&&(o.stroke=null);for(var s=0;s<Ua.length;++s)r[Ua[s]]=this[Ua[s]];r.__dirty|=ei.REDARAW_BIT}else this._decalEl&&(this._decalEl=null)},e.prototype.getDecalElement=function(){return this._decalEl},e.prototype._init=function(e){var n=z(e);this.shape=this.getDefaultShape();var i=this.getDefaultStyle();i&&this.useStyle(i);for(var r=0;r<n.length;r++){var o=n[r],a=e[o];"style"===o?this.style?I(this.style,a):this.useStyle(a):"shape"===o?I(this.shape,a):t.prototype.attrKV.call(this,o,a)}this.style||this.useStyle({})},e.prototype.getDefaultStyle=function(){return null},e.prototype.getDefaultShape=function(){return{}},e.prototype.canBeInsideText=function(){return this.hasFill()},e.prototype.getInsideTextFill=function(){var t=this.style.fill;if("none"!==t){if(H(t)){var e=sn(t,0);return e>.5?jn:e>.2?"#eee":qn}if(t)return qn}return jn},e.prototype.getInsideTextStroke=function(t){var e=this.style.fill;if(H(e)){var n=this.__zr;if(!(!n||!n.isDarkMode())===sn(t,0)<.4)return e}},e.prototype.buildPath=function(t,e,n){},e.prototype.pathUpdated=function(){this.__dirty&=~e.SHAPE_CHANGED_BIT},e.prototype.createPathProxy=function(){this.path=new Ca(!1)},e.prototype.hasStroke=function(){var t=this.style,e=t.stroke;return!(null==e||"none"===e||!(t.lineWidth>0))},e.prototype.hasFill=function(){var t=this.style.fill;return null!=t&&"none"!==t},e.prototype.getBoundingRect=function(){var t=this._rect,n=this.style,i=!t;if(i){var r=!1;this.path||(r=!0,this.createPathProxy());var o=this.path;(r||this.__dirty&e.SHAPE_CHANGED_BIT)&&(o.beginPath(),this.buildPath(o,this.shape,!1),this.pathUpdated()),t=o.getBoundingRect()}if(this._rect=t,this.hasStroke()&&this.path&&this.path.len()>0){var a=this._rectWithStroke||(this._rectWithStroke=t.clone());if(this.__dirty||i){a.copy(t);var s=n.strokeNoScale?this.getLineScale():1,l=n.lineWidth;if(!this.hasFill()){var u=this.strokeContainThreshold;l=Math.max(l,null==u?4:u)}s>1e-10&&(a.width+=l/s,a.height+=l/s,a.x-=l/s/2,a.y-=l/s/2)}return a}return t},e.prototype.contain=function(t,e){var n=this.transformCoordToLocal(t,e),i=this.getBoundingRect(),r=this.style;if(t=n[0],e=n[1],i.contain(t,e)){var o=this.path;if(this.hasStroke()){var a=r.lineWidth,s=r.strokeNoScale?this.getLineScale():1;if(s>1e-10&&(this.hasFill()||(a=Math.max(a,this.strokeContainThreshold)),function(t,e,n,i){return Wa(t,e,!0,n,i)}(o,a/s,t,e)))return!0}if(this.hasFill())return function(t,e,n){return Wa(t,0,!1,e,n)}(o,t,e)}return!1},e.prototype.dirtyShape=function(){this.__dirty|=e.SHAPE_CHANGED_BIT,this._rect&&(this._rect=null),this._decalEl&&this._decalEl.dirtyShape(),this.markRedraw()},e.prototype.dirty=function(){this.dirtyStyle(),this.dirtyShape()},e.prototype.animateShape=function(t){return this.animate("shape",t)},e.prototype.updateDuringAnimation=function(t){"style"===t?this.dirtyStyle():"shape"===t?this.dirtyShape():this.markRedraw()},e.prototype.attrKV=function(e,n){"shape"===e?this.setShape(n):t.prototype.attrKV.call(this,e,n)},e.prototype.setShape=function(t,e){var n=this.shape;return n||(n=this.shape={}),"string"==typeof t?n[t]=e:I(n,t),this.dirtyShape(),this},e.prototype.shapeChanged=function(){return!!(this.__dirty&e.SHAPE_CHANGED_BIT)},e.prototype.createStyle=function(t){return pt(Ya,t)},e.prototype._innerSaveToNormal=function(e){t.prototype._innerSaveToNormal.call(this,e);var n=this._normalState;e.shape&&!n.shape&&(n.shape=I({},this.shape))},e.prototype._applyStateObj=function(e,n,i,r,o,a){t.prototype._applyStateObj.call(this,e,n,i,r,o,a);var s,l=!(n&&r);if(n&&n.shape?o?r?s=n.shape:(s=I({},i.shape),I(s,n.shape)):(s=I({},r?this.shape:i.shape),I(s,n.shape)):l&&(s=i.shape),s)if(o){this.shape=I({},this.shape);for(var u={},h=z(s),c=0;c<h.length;c++){var p=h[c];"object"==typeof s[p]?this.shape[p]=s[p]:u[p]=s[p]}this._transitionState(e,{shape:u},a)}else this.shape=s,this.dirtyShape()},e.prototype._mergeStates=function(e){for(var n,i=t.prototype._mergeStates.call(this,e),r=0;r<e.length;r++){var o=e[r];o.shape&&(n=n||{},this._mergeStyle(n,o.shape))}return n&&(i.shape=n),i},e.prototype.getAnimationStyleProps=function(){return Xa},e.prototype.isZeroArea=function(){return!1},e.extend=function(t){var i=function(e){function i(n){var i=e.call(this,n)||this;return t.init&&t.init.call(i,n),i}return n(i,e),i.prototype.getDefaultStyle=function(){return w(t.style)},i.prototype.getDefaultShape=function(){return w(t.shape)},i}(e);for(var r in t)"function"==typeof t[r]&&(i.prototype[r]=t[r]);return i},e.SHAPE_CHANGED_BIT=4,e.initDefaultProps=((i=e.prototype).type="path",i.strokeContainThreshold=5,i.segmentIgnoreThreshold=0,i.subPixelOptimize=!1,i.autoBatch=!1,void(i.__dirty=ei.REDARAW_BIT|xo.STYLE_CHANGED_BIT|e.SHAPE_CHANGED_BIT)),e}(xo),ja=T({strokeFirst:!0,font:En,x:0,y:0,textAlign:"left",textBaseline:"top",miterLimit:2},Ya),qa=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.hasStroke=function(){var t=this.style,e=t.stroke;return null!=e&&"none"!==e&&t.lineWidth>0},e.prototype.hasFill=function(){var t=this.style.fill;return null!=t&&"none"!==t},e.prototype.createStyle=function(t){return pt(ja,t)},e.prototype.setBoundingRect=function(t){this._rect=t},e.prototype.getBoundingRect=function(){var t=this.style;if(!this._rect){var e=t.text;null!=e?e+="":e="";var n=Fn(e,t.font,t.textAlign,t.textBaseline);if(n.x+=t.x||0,n.y+=t.y||0,this.hasStroke()){var i=t.lineWidth;n.x-=i/2,n.y-=i/2,n.width+=i,n.height+=i}this._rect=n}return this._rect},e.initDefaultProps=void(e.prototype.dirtyRectTolerance=10),e}(xo);qa.prototype.type="tspan";var Ka=T({x:0,y:0},vo),$a={style:T({x:!0,y:!0,width:!0,height:!0,sx:!0,sy:!0,sWidth:!0,sHeight:!0},mo.style)};var Ja=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.createStyle=function(t){return pt(Ka,t)},e.prototype._getSize=function(t){var e=this.style,n=e[t];if(null!=n)return n;var i,r=(i=e.image)&&"string"!=typeof i&&i.width&&i.height?e.image:this.__image;if(!r)return 0;var o="width"===t?"height":"width",a=e[o];return null==a?r[t]:r[t]/r[o]*a},e.prototype.getWidth=function(){return this._getSize("width")},e.prototype.getHeight=function(){return this._getSize("height")},e.prototype.getAnimationStyleProps=function(){return $a},e.prototype.getBoundingRect=function(){var t=this.style;return this._rect||(this._rect=new Rn(t.x||0,t.y||0,this.getWidth(),this.getHeight())),this._rect},e}(xo);Ja.prototype.type="image";var Qa=Math.round;function ts(t,e,n){if(e){var i=e.x1,r=e.x2,o=e.y1,a=e.y2;t.x1=i,t.x2=r,t.y1=o,t.y2=a;var s=n&&n.lineWidth;return s?(Qa(2*i)===Qa(2*r)&&(t.x1=t.x2=ns(i,s,!0)),Qa(2*o)===Qa(2*a)&&(t.y1=t.y2=ns(o,s,!0)),t):t}}function es(t,e,n){if(e){var i=e.x,r=e.y,o=e.width,a=e.height;t.x=i,t.y=r,t.width=o,t.height=a;var s=n&&n.lineWidth;return s?(t.x=ns(i,s,!0),t.y=ns(r,s,!0),t.width=Math.max(ns(i+o,s,!1)-t.x,0===o?0:1),t.height=Math.max(ns(r+a,s,!1)-t.y,0===a?0:1),t):t}}function ns(t,e,n){if(!e)return t;var i=Qa(2*t);return(i+Qa(e))%2==0?i/2:(i+(n?1:-1))/2}var is=function(){this.x=0,this.y=0,this.width=0,this.height=0},rs={},os=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultShape=function(){return new is},e.prototype.buildPath=function(t,e){var n,i,r,o;if(this.subPixelOptimize){var a=es(rs,e,this.style);n=a.x,i=a.y,r=a.width,o=a.height,a.r=e.r,e=a}else n=e.x,i=e.y,r=e.width,o=e.height;e.r?function(t,e){var n,i,r,o,a,s=e.x,l=e.y,u=e.width,h=e.height,c=e.r;u<0&&(s+=u,u=-u),h<0&&(l+=h,h=-h),"number"==typeof c?n=i=r=o=c:c instanceof Array?1===c.length?n=i=r=o=c[0]:2===c.length?(n=r=c[0],i=o=c[1]):3===c.length?(n=c[0],i=o=c[1],r=c[2]):(n=c[0],i=c[1],r=c[2],o=c[3]):n=i=r=o=0,n+i>u&&(n*=u/(a=n+i),i*=u/a),r+o>u&&(r*=u/(a=r+o),o*=u/a),i+r>h&&(i*=h/(a=i+r),r*=h/a),n+o>h&&(n*=h/(a=n+o),o*=h/a),t.moveTo(s+n,l),t.lineTo(s+u-i,l),0!==i&&t.arc(s+u-i,l+i,i,-Math.PI/2,0),t.lineTo(s+u,l+h-r),0!==r&&t.arc(s+u-r,l+h-r,r,0,Math.PI/2),t.lineTo(s+o,l+h),0!==o&&t.arc(s+o,l+h-o,o,Math.PI/2,Math.PI),t.lineTo(s,l+n),0!==n&&t.arc(s+n,l+n,n,Math.PI,1.5*Math.PI)}(t,e):t.rect(n,i,r,o)},e.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},e}(Za);os.prototype.type="rect";var as={fill:"#000"},ss={style:T({fill:!0,stroke:!0,fillOpacity:!0,strokeOpacity:!0,lineWidth:!0,fontSize:!0,lineHeight:!0,width:!0,height:!0,textShadowColor:!0,textShadowBlur:!0,textShadowOffsetX:!0,textShadowOffsetY:!0,backgroundColor:!0,padding:!0,borderColor:!0,borderWidth:!0,borderRadius:!0},mo.style)},ls=function(t){function e(e){var n=t.call(this)||this;return n.type="text",n._children=[],n._defaultStyle=as,n.attr(e),n}return n(e,t),e.prototype.childrenRef=function(){return this._children},e.prototype.update=function(){this.styleChanged()&&this._updateSubTexts();for(var e=0;e<this._children.length;e++){var n=this._children[e];n.zlevel=this.zlevel,n.z=this.z,n.z2=this.z2,n.culling=this.culling,n.cursor=this.cursor,n.invisible=this.invisible}var i=this.attachedTransform;if(i){i.updateTransform();var r=i.transform;r?(this.transform=this.transform||[],ye(this.transform,r)):this.transform=null}else t.prototype.update.call(this)},e.prototype.getComputedTransform=function(){return this.__hostTarget&&(this.__hostTarget.getComputedTransform(),this.__hostTarget.updateInnerText(!0)),this.attachedTransform?this.attachedTransform.getComputedTransform():t.prototype.getComputedTransform.call(this)},e.prototype._updateSubTexts=function(){var t;this._childCursor=0,cs(t=this.style),P(t.rich,cs),this.style.rich?this._updateRichTexts():this._updatePlainTexts(),this._children.length=this._childCursor,this.styleUpdated()},e.prototype.addSelfToZr=function(e){t.prototype.addSelfToZr.call(this,e);for(var n=0;n<this._children.length;n++)this._children[n].__zr=e},e.prototype.removeSelfFromZr=function(e){t.prototype.removeSelfFromZr.call(this,e);for(var n=0;n<this._children.length;n++)this._children[n].__zr=null},e.prototype.getBoundingRect=function(){if(this.styleChanged()&&this._updateSubTexts(),!this._rect){for(var t=new Rn(0,0,0,0),e=this._children,n=[],i=null,r=0;r<e.length;r++){var o=e[r],a=o.getBoundingRect(),s=o.getLocalTransform(n);s?(t.copy(a),t.applyTransform(s),(i=i||t.clone()).union(t)):(i=i||a.clone()).union(a)}this._rect=i||t}return this._rect},e.prototype.setDefaultTextStyle=function(t){this._defaultStyle=t||as},e.prototype.setTextContent=function(t){throw new Error("Can't attach text on another text")},e.prototype._mergeStyle=function(t,e){if(!e)return t;var n=e.rich,i=t.rich||n&&{};return I(t,e),n&&i?(this._mergeRich(i,n),t.rich=i):i&&(t.rich=i),t},e.prototype._mergeRich=function(t,e){for(var n=z(e),i=0;i<n.length;i++){var r=n[i];t[r]=t[r]||{},I(t[r],e[r])}},e.prototype.getAnimationStyleProps=function(){return ss},e.prototype._getOrCreateChild=function(t){var e=this._children[this._childCursor];return e&&e instanceof t||(e=new t),this._children[this._childCursor++]=e,e.__zr=this.__zr,e.parent=this,e},e.prototype._updatePlainTexts=function(){var t=this.style,e=t.font||En,n=t.padding,i=function(t,e){null!=t&&(t+="");var n,i=e.overflow,r=e.padding,o=e.font,a="truncate"===i,s=Wn(o),l=tt(e.lineHeight,s),u="truncate"===e.lineOverflow,h=e.width,c=(n=null!=h&&"break"===i||"breakAll"===i?t?go(t,e.font,h,"breakAll"===i,0).lines:[]:t?t.split("\n"):[]).length*l,p=tt(e.height,c);if(c>p&&u){var d=Math.floor(p/l);n=n.slice(0,d)}var f=p,g=h;if(r&&(f+=r[0]+r[2],null!=g&&(g+=r[1]+r[3])),t&&a&&null!=g)for(var y=oo(h,o,e.ellipsis,{minChar:e.truncateMinChar,placeholder:e.placeholder}),v=0;v<n.length;v++)n[v]=ao(n[v],y);if(null==h){var m=0;for(v=0;v<n.length;v++)m=Math.max(Bn(n[v],o),m);h=m}return{lines:n,height:p,outerHeight:f,lineHeight:l,calculatedLineHeight:s,contentHeight:c,width:h}}(fs(t),t),r=gs(t),o=!!t.backgroundColor,a=i.outerHeight,s=i.lines,l=i.lineHeight,u=this._defaultStyle,h=t.x||0,c=t.y||0,p=t.align||u.align||"left",d=t.verticalAlign||u.verticalAlign||"top",f=h,g=Hn(c,i.contentHeight,d);if(r||n){var y=i.width;n&&(y+=n[1]+n[3]);var v=Gn(h,y,p),m=Hn(c,a,d);r&&this._renderBackground(t,t,v,m,y,a)}g+=l/2,n&&(f=ds(h,p,n),"top"===d?g+=n[0]:"bottom"===d&&(g-=n[2]));for(var _,x=0,b=!1,w=(null==(_="fill"in t?t.fill:(b=!0,u.fill))||"none"===_?null:_.image||_.colorStops?"#000":_),S=(ps("stroke"in t?t.stroke:o||u.autoStroke&&!b?null:(x=2,u.stroke))),M=t.textShadowBlur>0,I=null!=t.width&&("truncate"===t.overflow||"break"===t.overflow||"breakAll"===t.overflow),T=i.calculatedLineHeight,C=0;C<s.length;C++){var A=this._getOrCreateChild(qa),D=A.createStyle();A.useStyle(D),D.text=s[C],D.x=f,D.y=g,p&&(D.textAlign=p),D.textBaseline="middle",D.opacity=t.opacity,D.strokeFirst=!0,M&&(D.shadowBlur=t.textShadowBlur||0,D.shadowColor=t.textShadowColor||"transparent",D.shadowOffsetX=t.textShadowOffsetX||0,D.shadowOffsetY=t.textShadowOffsetY||0),S&&(D.stroke=S,D.lineWidth=t.lineWidth||x,D.lineDash=t.lineDash,D.lineDashOffset=t.lineDashOffset||0),w&&(D.fill=w),D.font=e,g+=l,I&&A.setBoundingRect(new Rn(Gn(D.x,t.width,D.textAlign),Hn(D.y,T,D.textBaseline),t.width,T))}},e.prototype._updateRichTexts=function(){var t=this.style,e=function(t,e){var n=new ho;if(null!=t&&(t+=""),!t)return n;for(var i,r=e.width,o=e.height,a=e.overflow,s="break"!==a&&"breakAll"!==a||null==r?null:{width:r,accumWidth:0,breakAll:"breakAll"===a},l=io.lastIndex=0;null!=(i=io.exec(t));){var u=i.index;u>l&&co(n,t.substring(l,u),e,s),co(n,i[2],e,s,i[1]),l=io.lastIndex}l<t.length&&co(n,t.substring(l,t.length),e,s);var h=[],c=0,p=0,d=e.padding,f="truncate"===a,g="truncate"===e.lineOverflow;function y(t,e,n){t.width=e,t.lineHeight=n,c+=n,p=Math.max(p,e)}t:for(var v=0;v<n.lines.length;v++){for(var m=n.lines[v],_=0,x=0,b=0;b<m.tokens.length;b++){var w=(P=m.tokens[b]).styleName&&e.rich[P.styleName]||{},S=P.textPadding=w.padding,M=S?S[1]+S[3]:0,I=P.font=w.font||e.font;P.contentHeight=Wn(I);var T=tt(w.height,P.contentHeight);if(P.innerHeight=T,S&&(T+=S[0]+S[2]),P.height=T,P.lineHeight=et(w.lineHeight,e.lineHeight,T),P.align=w&&w.align||e.align,P.verticalAlign=w&&w.verticalAlign||"middle",g&&null!=o&&c+P.lineHeight>o){b>0?(m.tokens=m.tokens.slice(0,b),y(m,x,_),n.lines=n.lines.slice(0,v+1)):n.lines=n.lines.slice(0,v);break t}var C=w.width,A=null==C||"auto"===C;if("string"==typeof C&&"%"===C.charAt(C.length-1))P.percentWidth=C,h.push(P),P.contentWidth=Bn(P.text,I);else{if(A){var D=w.backgroundColor,L=D&&D.image;L&&no(L=Qr(L))&&(P.width=Math.max(P.width,L.width*T/L.height))}var k=f&&null!=r?r-x:null;null!=k&&k<P.width?!A||k<M?(P.text="",P.width=P.contentWidth=0):(P.text=ro(P.text,k-M,I,e.ellipsis,{minChar:e.truncateMinChar}),P.width=P.contentWidth=Bn(P.text,I)):P.contentWidth=Bn(P.text,I)}P.width+=M,x+=P.width,w&&(_=Math.max(_,P.lineHeight))}y(m,x,_)}for(n.outerWidth=n.width=tt(r,p),n.outerHeight=n.height=tt(o,c),n.contentHeight=c,n.contentWidth=p,d&&(n.outerWidth+=d[1]+d[3],n.outerHeight+=d[0]+d[2]),v=0;v<h.length;v++){var P,O=(P=h[v]).percentWidth;P.width=parseInt(O,10)/100*n.width}return n}(fs(t),t),n=e.width,i=e.outerWidth,r=e.outerHeight,o=t.padding,a=t.x||0,s=t.y||0,l=this._defaultStyle,u=t.align||l.align,h=t.verticalAlign||l.verticalAlign,c=Gn(a,i,u),p=Hn(s,r,h),d=c,f=p;o&&(d+=o[3],f+=o[0]);var g=d+n;gs(t)&&this._renderBackground(t,t,c,p,i,r);for(var y=!!t.backgroundColor,v=0;v<e.lines.length;v++){for(var m=e.lines[v],_=m.tokens,x=_.length,b=m.lineHeight,w=m.width,S=0,M=d,I=g,T=x-1,C=void 0;S<x&&(!(C=_[S]).align||"left"===C.align);)this._placeToken(C,t,b,f,M,"left",y),w-=C.width,M+=C.width,S++;for(;T>=0&&"right"===(C=_[T]).align;)this._placeToken(C,t,b,f,I,"right",y),w-=C.width,I-=C.width,T--;for(M+=(n-(M-d)-(g-I)-w)/2;S<=T;)C=_[S],this._placeToken(C,t,b,f,M+C.width/2,"center",y),M+=C.width,S++;f+=b}},e.prototype._placeToken=function(t,e,n,i,r,o,a){var s=e.rich[t.styleName]||{};s.text=t.text;var l=t.verticalAlign,u=i+n/2;"top"===l?u=i+t.height/2:"bottom"===l&&(u=i+n-t.height/2),!t.isLineHolder&&gs(s)&&this._renderBackground(s,e,"right"===o?r-t.width:"center"===o?r-t.width/2:r,u-t.height/2,t.width,t.height);var h=!!s.backgroundColor,c=t.textPadding;c&&(r=ds(r,o,c),u-=t.height/2-c[0]-t.innerHeight/2);var p=this._getOrCreateChild(qa),d=p.createStyle();p.useStyle(d);var f=this._defaultStyle,g=!1,y=0,v=ps("fill"in s?s.fill:"fill"in e?e.fill:(g=!0,f.fill)),m=ps("stroke"in s?s.stroke:"stroke"in e?e.stroke:h||a||f.autoStroke&&!g?null:(y=2,f.stroke)),_=s.textShadowBlur>0||e.textShadowBlur>0;d.text=t.text,d.x=r,d.y=u,_&&(d.shadowBlur=s.textShadowBlur||e.textShadowBlur||0,d.shadowColor=s.textShadowColor||e.textShadowColor||"transparent",d.shadowOffsetX=s.textShadowOffsetX||e.textShadowOffsetX||0,d.shadowOffsetY=s.textShadowOffsetY||e.textShadowOffsetY||0),d.textAlign=o,d.textBaseline="middle",d.font=t.font||En,d.opacity=et(s.opacity,e.opacity,1),m&&(d.lineWidth=et(s.lineWidth,e.lineWidth,y),d.lineDash=tt(s.lineDash,e.lineDash),d.lineDashOffset=e.lineDashOffset||0,d.stroke=m),v&&(d.fill=v);var x=t.contentWidth,b=t.contentHeight;p.setBoundingRect(new Rn(Gn(d.x,x,d.textAlign),Hn(d.y,b,d.textBaseline),x,b))},e.prototype._renderBackground=function(t,e,n,i,r,o){var a,s,l,u=t.backgroundColor,h=t.borderWidth,c=t.borderColor,p=H(u),d=t.borderRadius,f=this;if(p||h&&c){(a=this._getOrCreateChild(os)).useStyle(a.createStyle()),a.style.fill=null;var g=a.shape;g.x=n,g.y=i,g.width=r,g.height=o,g.r=d,a.dirtyShape()}if(p)(l=a.style).fill=u||null,l.fillOpacity=tt(t.fillOpacity,1);else if(u&&u.image){(s=this._getOrCreateChild(Ja)).onload=function(){f.dirtyStyle()};var y=s.style;y.image=u.image,y.x=n,y.y=i,y.width=r,y.height=o}h&&c&&((l=a.style).lineWidth=h,l.stroke=c,l.strokeOpacity=tt(t.strokeOpacity,1),l.lineDash=t.borderDash,l.lineDashOffset=t.borderDashOffset||0,a.strokeContainThreshold=0,a.hasFill()&&a.hasStroke()&&(l.strokeFirst=!0,l.lineWidth*=2));var v=(a||s).style;v.shadowBlur=t.shadowBlur||0,v.shadowColor=t.shadowColor||"transparent",v.shadowOffsetX=t.shadowOffsetX||0,v.shadowOffsetY=t.shadowOffsetY||0,v.opacity=et(t.opacity,e.opacity,1)},e.makeFont=function(t){var e="";if(t.fontSize||t.fontFamily||t.fontWeight){var n="";n="string"!=typeof t.fontSize||-1===t.fontSize.indexOf("px")&&-1===t.fontSize.indexOf("rem")&&-1===t.fontSize.indexOf("em")?isNaN(+t.fontSize)?"12px":t.fontSize+"px":t.fontSize,e=[t.fontStyle,t.fontWeight,n,t.fontFamily||"sans-serif"].join(" ")}return e&&ot(e)||t.textFont||t.font},e}(xo),us={left:!0,right:1,center:1},hs={top:1,bottom:1,middle:1};function cs(t){if(t){t.font=ls.makeFont(t);var e=t.align;"middle"===e&&(e="center"),t.align=null==e||us[e]?e:"left";var n=t.verticalAlign;"center"===n&&(n="middle"),t.verticalAlign=null==n||hs[n]?n:"top",t.padding&&(t.padding=it(t.padding))}}function ps(t,e){return null==t||e<=0||"transparent"===t||"none"===t?null:t.image||t.colorStops?"#000":t}function ds(t,e,n){return"right"===e?t-n[1]:"center"===e?t+n[3]/2-n[1]/2:t+n[3]}function fs(t){var e=t.text;return null!=e&&(e+=""),e}function gs(t){return!!(t.backgroundColor||t.borderWidth&&t.borderColor)}var ys=Lr(),vs=1,ms={},_s=Lr(),xs=["emphasis","blur","select"],bs=["normal","emphasis","blur","select"],ws="highlight",Ss="downplay",Ms="select",Is="unselect",Ts="toggleSelect";function Cs(t){return null!=t&&"none"!==t}var As=new Ee(100);function Ds(t){if("string"!=typeof t)return t;var e=As.get(t);return e||(e=$e(t,-.1),As.put(t,e)),e}function Ls(t,e,n){t.onHoverStateChange&&(t.hoverState||0)!==n&&t.onHoverStateChange(e),t.hoverState=n}function ks(t){Ls(t,"emphasis",2)}function Ps(t){2===t.hoverState&&Ls(t,"normal",0)}function Os(t){Ls(t,"blur",1)}function Rs(t){1===t.hoverState&&Ls(t,"normal",0)}function Ns(t){t.selected=!0}function Es(t){t.selected=!1}function zs(t,e,n){e(t,n)}function Bs(t,e,n){zs(t,e,n),t.isGroup&&t.traverse((function(t){zs(t,e,n)}))}function Vs(t,e){switch(e){case"emphasis":t.hoverState=2;break;case"normal":t.hoverState=0;break;case"blur":t.hoverState=1;break;case"select":t.selected=!0}}function Fs(t,e){var n=this.states[t];if(this.style){if("emphasis"===t)return function(t,e,n,i){var r=n&&A(n,"select")>=0,o=!1;if(t instanceof Za){var a=_s(t),s=r&&a.selectFill||a.normalFill,l=r&&a.selectStroke||a.normalStroke;if(Cs(s)||Cs(l)){var u=(i=i||{}).style||{};!Cs(u.fill)&&Cs(s)?(o=!0,i=I({},i),(u=I({},u)).fill=Ds(s)):!Cs(u.stroke)&&Cs(l)&&(o||(i=I({},i),u=I({},u)),u.stroke=Ds(l)),i.style=u}}if(i&&null==i.z2){o||(i=I({},i));var h=t.z2EmphasisLift;i.z2=t.z2+(null!=h?h:10)}return i}(this,0,e,n);if("blur"===t)return function(t,e,n){var i=A(t.currentStates,e)>=0,r=t.style.opacity,o=i?null:function(t,e,n,i){for(var r=t.style,o={},a=0;a<e.length;a++){var s=e[a],l=r[s];o[s]=null==l?i&&i[s]:l}for(a=0;a<t.animators.length;a++){var u=t.animators[a];u.__fromStateTransition&&u.__fromStateTransition.indexOf(n)<0&&"style"===u.targetName&&u.saveFinalToTarget(o,e)}return o}(t,["opacity"],e,{opacity:1}),a=(n=n||{}).style||{};return null==a.opacity&&(n=I({},n),a=I({opacity:i?r:.1*o.opacity},a),n.style=a),n}(this,t,n);if("select"===t)return function(t,e,n){if(n&&null==n.z2){n=I({},n);var i=t.z2SelectLift;n.z2=t.z2+(null!=i?i:9)}return n}(this,0,n)}return n}function Gs(t){t.stateProxy=Fs;var e=t.getTextContent(),n=t.getTextGuideLine();e&&(e.stateProxy=Fs),n&&(n.stateProxy=Fs)}function Hs(t,e){t.__highByOuter|=1<<(e||0),Bs(t,ks)}function Ws(t,e){!(t.__highByOuter&=~(1<<(e||0)))&&Bs(t,Ps)}function Ys(t){Bs(t,Os)}function Xs(t){Bs(t,Rs)}function Us(t){Bs(t,Ns)}function Zs(t){Bs(t,Es)}function js(t,e){return t.__highDownSilentOnTouch&&e.zrByTouch}function qs(t,e,n,i,r){var o=i.getModel();function a(t,e){for(var n=0;n<e.length;n++){var i=t.getItemGraphicEl(e[n]);i&&Xs(i)}}if(n=n||"coordinateSystem",r){if(null!=t&&e&&"none"!==e){var s=o.getSeriesByIndex(t),l=s.coordinateSystem;l&&l.master&&(l=l.master);var u=[];o.eachSeries((function(t){var r=s===t,o=t.coordinateSystem;if(o&&o.master&&(o=o.master),!("series"===n&&!r||"coordinateSystem"===n&&!(o&&l?o===l:r)||"series"===e&&r)){if(i.getViewOfSeriesModel(t).group.traverse((function(t){Os(t)})),k(e))a(t.getData(),e);else if(X(e))for(var h=z(e),c=0;c<h.length;c++)a(t.getData(h[c]),e[h[c]]);u.push(t)}})),o.eachComponent((function(t,e){if("series"!==t){var n=i.getViewOfComponentModel(e);n&&n.blurSeries&&n.blurSeries(u,o)}}))}}else!function(t){t.getModel().eachComponent((function(e,n){("series"===e?t.getViewOfSeriesModel(n):t.getViewOfComponentModel(n)).group.traverse((function(t){Rs(t)}))}))}(i)}function Ks(t){P(t.getAllData(),(function(e){var n=e.data,i=e.type;n.eachItemGraphicEl((function(e,n){t.isSelected(n,i)?Us(e):Zs(e)}))}))}function $s(t){var e=[];return t.eachSeries((function(t){P(t.getAllData(),(function(n){n.data;var i=n.type,r=t.getSelectedDataIndices();if(r.length>0){var o={dataIndex:r,seriesIndex:t.seriesIndex};null!=i&&(o.dataType=i),e.push(o)}}))})),e}function Js(t,e,n){il(t,!0),Bs(t,Gs),Qs(t,e,n)}function Qs(t,e,n){var i=ys(t);null!=e?(i.focus=e,i.blurScope=n):i.focus&&(i.focus=null)}var tl=["emphasis","blur","select"],el={itemStyle:"getItemStyle",lineStyle:"getLineStyle",areaStyle:"getAreaStyle"};function nl(t,e,n,i){n=n||"itemStyle";for(var r=0;r<tl.length;r++){var o=tl[r],a=e.getModel([o,n]);t.ensureState(o).style=i?i(a):a[el[n]]()}}function il(t,e){var n=!1===e,i=t;t.highDownSilentOnTouch&&(i.__highDownSilentOnTouch=t.highDownSilentOnTouch),n&&!i.__highDownDispatcher||(i.__highByOuter=i.__highByOuter||0,i.__highDownDispatcher=!n)}function rl(t){return!(!t||!t.__highDownDispatcher)}function ol(t){var e=t.type;return e===Ms||e===Is||e===Ts}function al(t){var e=t.type;return e===ws||e===Ss}var sl=Ca.CMD,ll=[[],[],[]],ul=Math.sqrt,hl=Math.atan2;var cl=Math.sqrt,pl=Math.sin,dl=Math.cos,fl=Math.PI;function gl(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function yl(t,e){return(t[0]*e[0]+t[1]*e[1])/(gl(t)*gl(e))}function vl(t,e){return(t[0]*e[1]<t[1]*e[0]?-1:1)*Math.acos(yl(t,e))}function ml(t,e,n,i,r,o,a,s,l,u,h){var c=l*(fl/180),p=dl(c)*(t-n)/2+pl(c)*(e-i)/2,d=-1*pl(c)*(t-n)/2+dl(c)*(e-i)/2,f=p*p/(a*a)+d*d/(s*s);f>1&&(a*=cl(f),s*=cl(f));var g=(r===o?-1:1)*cl((a*a*(s*s)-a*a*(d*d)-s*s*(p*p))/(a*a*(d*d)+s*s*(p*p)))||0,y=g*a*d/s,v=g*-s*p/a,m=(t+n)/2+dl(c)*y-pl(c)*v,_=(e+i)/2+pl(c)*y+dl(c)*v,x=vl([1,0],[(p-y)/a,(d-v)/s]),b=[(p-y)/a,(d-v)/s],w=[(-1*p-y)/a,(-1*d-v)/s],S=vl(b,w);if(yl(b,w)<=-1&&(S=fl),yl(b,w)>=1&&(S=0),S<0){var M=Math.round(S/fl*1e6)/1e6;S=2*fl+M%2*fl}h.addData(u,m,_,a,s,x,S,c,o)}var _l=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/gi,xl=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;var bl=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.applyTransform=function(t){},e}(Za);function wl(t){return null!=t.setData}function Sl(t,e){var n=function(t){var e=new Ca;if(!t)return e;var n,i=0,r=0,o=i,a=r,s=Ca.CMD,l=t.match(_l);if(!l)return e;for(var u=0;u<l.length;u++){for(var h=l[u],c=h.charAt(0),p=void 0,d=h.match(xl)||[],f=d.length,g=0;g<f;g++)d[g]=parseFloat(d[g]);for(var y=0;y<f;){var v=void 0,m=void 0,_=void 0,x=void 0,b=void 0,w=void 0,S=void 0,M=i,I=r,T=void 0,C=void 0;switch(c){case"l":i+=d[y++],r+=d[y++],p=s.L,e.addData(p,i,r);break;case"L":i=d[y++],r=d[y++],p=s.L,e.addData(p,i,r);break;case"m":i+=d[y++],r+=d[y++],p=s.M,e.addData(p,i,r),o=i,a=r,c="l";break;case"M":i=d[y++],r=d[y++],p=s.M,e.addData(p,i,r),o=i,a=r,c="L";break;case"h":i+=d[y++],p=s.L,e.addData(p,i,r);break;case"H":i=d[y++],p=s.L,e.addData(p,i,r);break;case"v":r+=d[y++],p=s.L,e.addData(p,i,r);break;case"V":r=d[y++],p=s.L,e.addData(p,i,r);break;case"C":p=s.C,e.addData(p,d[y++],d[y++],d[y++],d[y++],d[y++],d[y++]),i=d[y-2],r=d[y-1];break;case"c":p=s.C,e.addData(p,d[y++]+i,d[y++]+r,d[y++]+i,d[y++]+r,d[y++]+i,d[y++]+r),i+=d[y-2],r+=d[y-1];break;case"S":v=i,m=r,T=e.len(),C=e.data,n===s.C&&(v+=i-C[T-4],m+=r-C[T-3]),p=s.C,M=d[y++],I=d[y++],i=d[y++],r=d[y++],e.addData(p,v,m,M,I,i,r);break;case"s":v=i,m=r,T=e.len(),C=e.data,n===s.C&&(v+=i-C[T-4],m+=r-C[T-3]),p=s.C,M=i+d[y++],I=r+d[y++],i+=d[y++],r+=d[y++],e.addData(p,v,m,M,I,i,r);break;case"Q":M=d[y++],I=d[y++],i=d[y++],r=d[y++],p=s.Q,e.addData(p,M,I,i,r);break;case"q":M=d[y++]+i,I=d[y++]+r,i+=d[y++],r+=d[y++],p=s.Q,e.addData(p,M,I,i,r);break;case"T":v=i,m=r,T=e.len(),C=e.data,n===s.Q&&(v+=i-C[T-4],m+=r-C[T-3]),i=d[y++],r=d[y++],p=s.Q,e.addData(p,v,m,i,r);break;case"t":v=i,m=r,T=e.len(),C=e.data,n===s.Q&&(v+=i-C[T-4],m+=r-C[T-3]),i+=d[y++],r+=d[y++],p=s.Q,e.addData(p,v,m,i,r);break;case"A":_=d[y++],x=d[y++],b=d[y++],w=d[y++],S=d[y++],ml(M=i,I=r,i=d[y++],r=d[y++],w,S,_,x,b,p=s.A,e);break;case"a":_=d[y++],x=d[y++],b=d[y++],w=d[y++],S=d[y++],ml(M=i,I=r,i+=d[y++],r+=d[y++],w,S,_,x,b,p=s.A,e)}}"z"!==c&&"Z"!==c||(p=s.Z,e.addData(p),i=o,r=a),n=p}return e.toStatic(),e}(t),i=I({},e);return i.buildPath=function(t){if(wl(t)){t.setData(n.data),(e=t.getContext())&&t.rebuildPath(e,1)}else{var e=t;n.rebuildPath(e,1)}},i.applyTransform=function(t){!function(t,e){var n,i,r,o,a,s,l=t.data,u=t.len(),h=sl.M,c=sl.C,p=sl.L,d=sl.R,f=sl.A,g=sl.Q;for(r=0,o=0;r<u;){switch(n=l[r++],o=r,i=0,n){case h:case p:i=1;break;case c:i=3;break;case g:i=2;break;case f:var y=e[4],v=e[5],m=ul(e[0]*e[0]+e[1]*e[1]),_=ul(e[2]*e[2]+e[3]*e[3]),x=hl(-e[1]/_,e[0]/m);l[r]*=m,l[r++]+=y,l[r]*=_,l[r++]+=v,l[r++]*=m,l[r++]*=_,l[r++]+=x,l[r++]+=x,o=r+=2;break;case d:s[0]=l[r++],s[1]=l[r++],Rt(s,s,e),l[o++]=s[0],l[o++]=s[1],s[0]+=l[r++],s[1]+=l[r++],Rt(s,s,e),l[o++]=s[0],l[o++]=s[1]}for(a=0;a<i;a++){var b=ll[a];b[0]=l[r++],b[1]=l[r++],Rt(b,b,e),l[o++]=b[0],l[o++]=b[1]}}t.increaseVersion()}(n,t),this.dirtyShape()},i}function Ml(t,e){return new bl(Sl(t,e))}var Il=function(){this.cx=0,this.cy=0,this.r=0},Tl=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultShape=function(){return new Il},e.prototype.buildPath=function(t,e,n){n&&t.moveTo(e.cx+e.r,e.cy),t.arc(e.cx,e.cy,e.r,0,2*Math.PI)},e}(Za);Tl.prototype.type="circle";var Cl=function(){this.cx=0,this.cy=0,this.rx=0,this.ry=0},Al=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultShape=function(){return new Cl},e.prototype.buildPath=function(t,e){var n=.5522848,i=e.cx,r=e.cy,o=e.rx,a=e.ry,s=o*n,l=a*n;t.moveTo(i-o,r),t.bezierCurveTo(i-o,r-l,i-s,r-a,i,r-a),t.bezierCurveTo(i+s,r-a,i+o,r-l,i+o,r),t.bezierCurveTo(i+o,r+l,i+s,r+a,i,r+a),t.bezierCurveTo(i-s,r+a,i-o,r+l,i-o,r),t.closePath()},e}(Za);Al.prototype.type="ellipse";var Dl=Math.PI,Ll=2*Dl,kl=Math.sin,Pl=Math.cos,Ol=Math.acos,Rl=Math.atan2,Nl=Math.abs,El=Math.sqrt,zl=Math.max,Bl=Math.min,Vl=1e-4;function Fl(t,e,n,i,r,o,a){var s=t-n,l=e-i,u=(a?o:-o)/El(s*s+l*l),h=u*l,c=-u*s,p=t+h,d=e+c,f=n+h,g=i+c,y=(p+f)/2,v=(d+g)/2,m=f-p,_=g-d,x=m*m+_*_,b=r-o,w=p*g-f*d,S=(_<0?-1:1)*El(zl(0,b*b*x-w*w)),M=(w*_-m*S)/x,I=(-w*m-_*S)/x,T=(w*_+m*S)/x,C=(-w*m+_*S)/x,A=M-y,D=I-v,L=T-y,k=C-v;return A*A+D*D>L*L+k*k&&(M=T,I=C),{cx:M,cy:I,x01:-h,y01:-c,x11:M*(r/b-1),y11:I*(r/b-1)}}function Gl(t,e){var n=zl(e.r,0),i=zl(e.r0||0,0),r=n>0;if(r||i>0){if(r||(n=i,i=0),i>n){var o=n;n=i,i=o}var a=!!e.clockwise,s=e.startAngle,l=e.endAngle,u=[s,l];Ta(u,!a);var h=Nl(u[0]-u[1]),c=e.cx,p=e.cy,d=e.cornerRadius||0,f=e.innerCornerRadius||0;if(n>Vl)if(h>Ll-Vl)t.moveTo(c+n*Pl(s),p+n*kl(s)),t.arc(c,p,n,s,l,!a),i>Vl&&(t.moveTo(c+i*Pl(l),p+i*kl(l)),t.arc(c,p,i,l,s,a));else{var g=Nl(n-i)/2,y=Bl(g,d),v=Bl(g,f),m=v,_=y,x=n*Pl(s),b=n*kl(s),w=i*Pl(l),S=i*kl(l),M=void 0,I=void 0,T=void 0,C=void 0;if((y>Vl||v>Vl)&&(M=n*Pl(l),I=n*kl(l),T=i*Pl(s),C=i*kl(s),h<Dl)){var A=function(t,e,n,i,r,o,a,s){var l=n-t,u=i-e,h=a-r,c=s-o,p=c*l-h*u;if(!(p*p<Vl))return[t+(p=(h*(e-o)-c*(t-r))/p)*l,e+p*u]}(x,b,T,C,M,I,w,S);if(A){var D=x-A[0],L=b-A[1],k=M-A[0],P=I-A[1],O=1/kl(Ol((D*k+L*P)/(El(D*D+L*L)*El(k*k+P*P)))/2),R=El(A[0]*A[0]+A[1]*A[1]);m=Bl(v,(i-R)/(O-1)),_=Bl(y,(n-R)/(O+1))}}if(h>Vl)if(_>Vl){var N=Fl(T,C,x,b,n,_,a),E=Fl(M,I,w,S,n,_,a);t.moveTo(c+N.cx+N.x01,p+N.cy+N.y01),_<y?t.arc(c+N.cx,p+N.cy,_,Rl(N.y01,N.x01),Rl(E.y01,E.x01),!a):(t.arc(c+N.cx,p+N.cy,_,Rl(N.y01,N.x01),Rl(N.y11,N.x11),!a),t.arc(c,p,n,Rl(N.cy+N.y11,N.cx+N.x11),Rl(E.cy+E.y11,E.cx+E.x11),!a),t.arc(c+E.cx,p+E.cy,_,Rl(E.y11,E.x11),Rl(E.y01,E.x01),!a))}else t.moveTo(c+x,p+b),t.arc(c,p,n,s,l,!a);else t.moveTo(c+x,p+b);if(i>Vl&&h>Vl)if(m>Vl){N=Fl(w,S,M,I,i,-m,a),E=Fl(x,b,T,C,i,-m,a);t.lineTo(c+N.cx+N.x01,p+N.cy+N.y01),m<v?t.arc(c+N.cx,p+N.cy,m,Rl(N.y01,N.x01),Rl(E.y01,E.x01),!a):(t.arc(c+N.cx,p+N.cy,m,Rl(N.y01,N.x01),Rl(N.y11,N.x11),!a),t.arc(c,p,i,Rl(N.cy+N.y11,N.cx+N.x11),Rl(E.cy+E.y11,E.cx+E.x11),a),t.arc(c+E.cx,p+E.cy,m,Rl(E.y11,E.x11),Rl(E.y01,E.x01),!a))}else t.lineTo(c+w,p+S),t.arc(c,p,i,l,s,a);else t.lineTo(c+w,p+S)}else t.moveTo(c,p);t.closePath()}}var Hl=function(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0,this.cornerRadius=0,this.innerCornerRadius=0},Wl=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultShape=function(){return new Hl},e.prototype.buildPath=function(t,e){Gl(t,e)},e.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},e}(Za);Wl.prototype.type="sector";var Yl=function(){this.cx=0,this.cy=0,this.r=0,this.r0=0},Xl=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultShape=function(){return new Yl},e.prototype.buildPath=function(t,e){var n=e.cx,i=e.cy,r=2*Math.PI;t.moveTo(n+e.r,i),t.arc(n,i,e.r,0,r,!1),t.moveTo(n+e.r0,i),t.arc(n,i,e.r0,0,r,!0)},e}(Za);function Ul(t,e,n,i,r,o,a){var s=.5*(n-t),l=.5*(i-e);return(2*(e-n)+s+l)*a+(-3*(e-n)-2*s-l)*o+s*r+e}function Zl(t,e,n){var i=e.smooth,r=e.points;if(r&&r.length>=2){if(i&&"spline"!==i){var o=function(t,e,n,i){var r,o,a,s,l=[],u=[],h=[],c=[];if(i){a=[1/0,1/0],s=[-1/0,-1/0];for(var p=0,d=t.length;p<d;p++)Nt(a,a,t[p]),Et(s,s,t[p]);Nt(a,a,i[0]),Et(s,s,i[1])}for(p=0,d=t.length;p<d;p++){var f=t[p];if(n)r=t[p?p-1:d-1],o=t[(p+1)%d];else{if(0===p||p===d-1){l.push(mt(t[p]));continue}r=t[p-1],o=t[p+1]}wt(u,o,r),Ct(u,u,e);var g=Dt(f,r),y=Dt(f,o),v=g+y;0!==v&&(g/=v,y/=v),Ct(h,u,-g),Ct(c,u,y);var m=xt([],f,h),_=xt([],f,c);i&&(Et(m,m,a),Nt(m,m,s),Et(_,_,a),Nt(_,_,s)),l.push(m),l.push(_)}return n&&l.push(l.shift()),l}(r,i,n,e.smoothConstraint);t.moveTo(r[0][0],r[0][1]);for(var a=r.length,s=0;s<(n?a:a-1);s++){var l=o[2*s],u=o[2*s+1],h=r[(s+1)%a];t.bezierCurveTo(l[0],l[1],u[0],u[1],h[0],h[1])}}else{"spline"===i&&(r=function(t,e){for(var n=t.length,i=[],r=0,o=1;o<n;o++)r+=Dt(t[o-1],t[o]);var a=r/2;for(a=a<n?n:a,o=0;o<a;o++){var s=o/(a-1)*(e?n:n-1),l=Math.floor(s),u=s-l,h=void 0,c=t[l%n],p=void 0,d=void 0;e?(h=t[(l-1+n)%n],p=t[(l+1)%n],d=t[(l+2)%n]):(h=t[0===l?l:l-1],p=t[l>n-2?n-1:l+1],d=t[l>n-3?n-1:l+2]);var f=u*u,g=u*f;i.push([Ul(h[0],c[0],p[0],d[0],u,f,g),Ul(h[1],c[1],p[1],d[1],u,f,g)])}return i}(r,n)),t.moveTo(r[0][0],r[0][1]);s=1;for(var c=r.length;s<c;s++)t.lineTo(r[s][0],r[s][1])}n&&t.closePath()}}Xl.prototype.type="ring";var jl=function(){this.points=null,this.smooth=0,this.smoothConstraint=null},ql=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultShape=function(){return new jl},e.prototype.buildPath=function(t,e){Zl(t,e,!0)},e}(Za);ql.prototype.type="polygon";var Kl=function(){this.points=null,this.percent=1,this.smooth=0,this.smoothConstraint=null},$l=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new Kl},e.prototype.buildPath=function(t,e){Zl(t,e,!1)},e}(Za);$l.prototype.type="polyline";var Jl={},Ql=function(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.percent=1},tu=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new Ql},e.prototype.buildPath=function(t,e){var n,i,r,o;if(this.subPixelOptimize){var a=ts(Jl,e,this.style);n=a.x1,i=a.y1,r=a.x2,o=a.y2}else n=e.x1,i=e.y1,r=e.x2,o=e.y2;var s=e.percent;0!==s&&(t.moveTo(n,i),s<1&&(r=n*(1-s)+r*s,o=i*(1-s)+o*s),t.lineTo(r,o))},e.prototype.pointAt=function(t){var e=this.shape;return[e.x1*(1-t)+e.x2*t,e.y1*(1-t)+e.y2*t]},e}(Za);tu.prototype.type="line";var eu=[],nu=function(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.cpx1=0,this.cpy1=0,this.percent=1};function iu(t,e,n){var i=t.cpx2,r=t.cpy2;return null===i||null===r?[(n?No:Ro)(t.x1,t.cpx1,t.cpx2,t.x2,e),(n?No:Ro)(t.y1,t.cpy1,t.cpy2,t.y2,e)]:[(n?Ho:Go)(t.x1,t.cpx1,t.x2,e),(n?Ho:Go)(t.y1,t.cpy1,t.y2,e)]}var ru=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new nu},e.prototype.buildPath=function(t,e){var n=e.x1,i=e.y1,r=e.x2,o=e.y2,a=e.cpx1,s=e.cpy1,l=e.cpx2,u=e.cpy2,h=e.percent;0!==h&&(t.moveTo(n,i),null==l||null==u?(h<1&&(Yo(n,a,r,h,eu),a=eu[1],r=eu[2],Yo(i,s,o,h,eu),s=eu[1],o=eu[2]),t.quadraticCurveTo(a,s,r,o)):(h<1&&(Bo(n,a,l,r,h,eu),a=eu[1],l=eu[2],r=eu[3],Bo(i,s,u,o,h,eu),s=eu[1],u=eu[2],o=eu[3]),t.bezierCurveTo(a,s,l,u,r,o)))},e.prototype.pointAt=function(t){return iu(this.shape,t,!1)},e.prototype.tangentAt=function(t){var e=iu(this.shape,t,!0);return At(e,e)},e}(Za);ru.prototype.type="bezier-curve";var ou=function(){this.cx=0,this.cy=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0},au=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new ou},e.prototype.buildPath=function(t,e){var n=e.cx,i=e.cy,r=Math.max(e.r,0),o=e.startAngle,a=e.endAngle,s=e.clockwise,l=Math.cos(o),u=Math.sin(o);t.moveTo(l*r+n,u*r+i),t.arc(n,i,r,o,a,!s)},e}(Za);au.prototype.type="arc";var su=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="compound",e}return n(e,t),e.prototype._updatePathDirty=function(){for(var t=this.shape.paths,e=this.shapeChanged(),n=0;n<t.length;n++)e=e||t[n].shapeChanged();e&&this.dirtyShape()},e.prototype.beforeBrush=function(){this._updatePathDirty();for(var t=this.shape.paths||[],e=this.getGlobalScale(),n=0;n<t.length;n++)t[n].path||t[n].createPathProxy(),t[n].path.setScale(e[0],e[1],t[n].segmentIgnoreThreshold)},e.prototype.buildPath=function(t,e){for(var n=e.paths||[],i=0;i<n.length;i++)n[i].buildPath(t,n[i].shape,!0)},e.prototype.afterBrush=function(){for(var t=this.shape.paths||[],e=0;e<t.length;e++)t[e].pathUpdated()},e.prototype.getBoundingRect=function(){return this._updatePathDirty.call(this),Za.prototype.getBoundingRect.call(this)},e}(Za),lu=function(){function t(t){this.colorStops=t||[]}return t.prototype.addColorStop=function(t,e){this.colorStops.push({offset:t,color:e})},t}(),uu=function(t){function e(e,n,i,r,o,a){var s=t.call(this,o)||this;return s.x=null==e?0:e,s.y=null==n?0:n,s.x2=null==i?1:i,s.y2=null==r?0:r,s.type="linear",s.global=a||!1,s}return n(e,t),e}(lu),hu=function(t){function e(e,n,i,r,o){var a=t.call(this,r)||this;return a.x=null==e?.5:e,a.y=null==n?.5:n,a.r=null==i?.5:i,a.type="radial",a.global=o||!1,a}return n(e,t),e}(lu),cu=[0,0],pu=[0,0],du=new In,fu=new In,gu=function(){function t(t,e){this._corners=[],this._axes=[],this._origin=[0,0];for(var n=0;n<4;n++)this._corners[n]=new In;for(n=0;n<2;n++)this._axes[n]=new In;t&&this.fromBoundingRect(t,e)}return t.prototype.fromBoundingRect=function(t,e){var n=this._corners,i=this._axes,r=t.x,o=t.y,a=r+t.width,s=o+t.height;if(n[0].set(r,o),n[1].set(a,o),n[2].set(a,s),n[3].set(r,s),e)for(var l=0;l<4;l++)n[l].transform(e);In.sub(i[0],n[1],n[0]),In.sub(i[1],n[3],n[0]),i[0].normalize(),i[1].normalize();for(l=0;l<2;l++)this._origin[l]=i[l].dot(n[0])},t.prototype.intersect=function(t,e){var n=!0,i=!e;return du.set(1/0,1/0),fu.set(0,0),!this._intersectCheckOneSide(this,t,du,fu,i,1)&&(n=!1,i)||!this._intersectCheckOneSide(t,this,du,fu,i,-1)&&(n=!1,i)||i||In.copy(e,n?du:fu),n},t.prototype._intersectCheckOneSide=function(t,e,n,i,r,o){for(var a=!0,s=0;s<2;s++){var l=this._axes[s];if(this._getProjMinMaxOnAxis(s,t._corners,cu),this._getProjMinMaxOnAxis(s,e._corners,pu),cu[1]<pu[0]||cu[0]>pu[1]){if(a=!1,r)return a;var u=Math.abs(pu[0]-cu[1]),h=Math.abs(cu[0]-pu[1]);Math.min(u,h)>i.len()&&(u<h?In.scale(i,l,-u*o):In.scale(i,l,h*o))}else if(n){u=Math.abs(pu[0]-cu[1]),h=Math.abs(cu[0]-pu[1]);Math.min(u,h)<n.len()&&(u<h?In.scale(n,l,u*o):In.scale(n,l,-h*o))}}return a},t.prototype._getProjMinMaxOnAxis=function(t,e,n){for(var i=this._axes[t],r=this._origin,o=e[0].dot(i)+r[t],a=o,s=o,l=1;l<e.length;l++){var u=e[l].dot(i)+r[t];a=Math.min(u,a),s=Math.max(u,s)}n[0]=a,n[1]=s},t}(),yu=[],vu=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.notClear=!0,e.incremental=!0,e._displayables=[],e._temporaryDisplayables=[],e._cursor=0,e}return n(e,t),e.prototype.traverse=function(t,e){t.call(e,this)},e.prototype.useStyle=function(){this.style={}},e.prototype.getCursor=function(){return this._cursor},e.prototype.innerAfterBrush=function(){this._cursor=this._displayables.length},e.prototype.clearDisplaybles=function(){this._displayables=[],this._temporaryDisplayables=[],this._cursor=0,this.markRedraw(),this.notClear=!1},e.prototype.clearTemporalDisplayables=function(){this._temporaryDisplayables=[]},e.prototype.addDisplayable=function(t,e){e?this._temporaryDisplayables.push(t):this._displayables.push(t),this.markRedraw()},e.prototype.addDisplayables=function(t,e){e=e||!1;for(var n=0;n<t.length;n++)this.addDisplayable(t[n],e)},e.prototype.getDisplayables=function(){return this._displayables},e.prototype.getTemporalDisplayables=function(){return this._temporaryDisplayables},e.prototype.eachPendingDisplayable=function(t){for(var e=this._cursor;e<this._displayables.length;e++)t&&t(this._displayables[e]);for(e=0;e<this._temporaryDisplayables.length;e++)t&&t(this._temporaryDisplayables[e])},e.prototype.update=function(){this.updateTransform();for(var t=this._cursor;t<this._displayables.length;t++){(e=this._displayables[t]).parent=this,e.update(),e.parent=null}for(t=0;t<this._temporaryDisplayables.length;t++){var e;(e=this._temporaryDisplayables[t]).parent=this,e.update(),e.parent=null}},e.prototype.getBoundingRect=function(){if(!this._rect){for(var t=new Rn(1/0,1/0,-1/0,-1/0),e=0;e<this._displayables.length;e++){var n=this._displayables[e],i=n.getBoundingRect().clone();n.needLocalTransform()&&i.applyTransform(n.getLocalTransform(yu)),t.union(i)}this._rect=t}return this._rect},e.prototype.contain=function(t,e){var n=this.transformCoordToLocal(t,e);if(this.getBoundingRect().contain(n[0],n[1]))for(var i=0;i<this._displayables.length;i++){if(this._displayables[i].contain(t,e))return!0}return!1},e}(xo),mu=Math.max,_u=Math.min,xu={};function bu(t){return Za.extend(t)}var wu=function(t,e){var i=Sl(t,e);return function(t){function e(e){var n=t.call(this,e)||this;return n.applyTransform=i.applyTransform,n.buildPath=i.buildPath,n}return n(e,t),e}(bl)};function Su(t,e){return wu(t,e)}function Mu(t,e){xu[t]=e}function Iu(t){if(xu.hasOwnProperty(t))return xu[t]}function Tu(t,e,n,i){var r=Ml(t,e);return n&&("center"===i&&(n=Au(n,r.getBoundingRect())),Lu(r,n)),r}function Cu(t,e,n){var i=new Ja({style:{image:t,x:e.x,y:e.y,width:e.width,height:e.height},onload:function(t){if("center"===n){var r={width:t.width,height:t.height};i.setStyle(Au(e,r))}}});return i}function Au(t,e){var n,i=e.width/e.height,r=t.height*i;return n=r<=t.width?t.height:(r=t.width)/i,{x:t.x+t.width/2-r/2,y:t.y+t.height/2-n/2,width:r,height:n}}var Du=function(t,e){for(var n=[],i=t.length,r=0;r<i;r++){var o=t[r];o.path||o.createPathProxy(),o.shapeChanged()&&o.buildPath(o.path,o.shape,!0),n.push(o.path)}var a=new Za(e);return a.createPathProxy(),a.buildPath=function(t){if(wl(t)){t.appendPath(n);var e=t.getContext();e&&t.rebuildPath(e,1)}},a};function Lu(t,e){if(t.applyTransform){var n=t.getBoundingRect().calculateTransform(e);t.applyTransform(n)}}var ku=ns;function Pu(t,e,n,i,r,o,a){var s,l=!1;"function"==typeof r?(a=o,o=r,r=null):X(r)&&(o=r.cb,a=r.during,l=r.isFrom,s=r.removeOpt,r=r.dataIndex);var u,h="update"===t,c="remove"===t;if(i&&i.ecModel){var p=i.ecModel.getUpdatePayload();u=p&&p.animation}var d=i&&i.isAnimationEnabled();if(c||e.stopAnimation("remove"),d){var f=void 0,g=void 0,y=void 0;u?(f=u.duration||0,g=u.easing||"cubicOut",y=u.delay||0):c?(f=tt((s=s||{}).duration,200),g=tt(s.easing,"cubicOut"),y=0):(f=i.getShallow(h?"animationDurationUpdate":"animationDuration"),g=i.getShallow(h?"animationEasingUpdate":"animationEasing"),y=i.getShallow(h?"animationDelayUpdate":"animationDelay")),"function"==typeof y&&(y=y(r,i.getAnimationDelayParams?i.getAnimationDelayParams(e,r):null)),"function"==typeof f&&(f=f(r)),f>0?l?e.animateFrom(n,{duration:f,delay:y||0,easing:g,done:o,force:!!o||!!a,scope:t,during:a}):e.animateTo(n,{duration:f,delay:y||0,easing:g,done:o,force:!!o||!!a,setToFinal:!0,scope:t,during:a}):(e.stopAnimation(),!l&&e.attr(n),o&&o())}else e.stopAnimation(),!l&&e.attr(n),a&&a(1),o&&o()}function Ou(t,e,n,i,r,o){Pu("update",t,e,n,i,r,o)}function Ru(t,e,n,i,r,o){Pu("init",t,e,n,i,r,o)}function Nu(t,e,n,i,r,o){Bu(t)||Pu("remove",t,e,n,i,r,o)}function Eu(t,e,n,i){t.removeTextContent(),t.removeTextGuideLine(),Nu(t,{style:{opacity:0}},e,n,i)}function zu(t,e,n){function i(){t.parent&&t.parent.remove(t)}t.isGroup?t.traverse((function(t){t.isGroup||Eu(t,e,n,i)})):Eu(t,e,n,i)}function Bu(t){if(!t.__zr)return!0;for(var e=0;e<t.animators.length;e++){if("remove"===t.animators[e].scope)return!0}return!1}function Vu(t,e){for(var n=ge([]);t&&t!==e;)ve(n,t.getLocalTransform(),n),t=t.parent;return n}function Fu(t,e,n){return e&&!k(e)&&(e=ke.getLocalTransform(e)),n&&(e=be([],e)),Rt([],t,e)}function Gu(t,e,n){var i=0===e[4]||0===e[5]||0===e[0]?1:Math.abs(2*e[4]/e[0]),r=0===e[4]||0===e[5]||0===e[2]?1:Math.abs(2*e[4]/e[2]),o=["left"===t?-i:"right"===t?i:0,"top"===t?-r:"bottom"===t?r:0];return o=Fu(o,e,n),Math.abs(o[0])>Math.abs(o[1])?o[0]>0?"right":"left":o[1]>0?"bottom":"top"}function Hu(t){return!t.isGroup}function Wu(t,e,n){if(t&&e){var i,r=(i={},t.traverse((function(t){Hu(t)&&t.anid&&(i[t.anid]=t)})),i);e.traverse((function(t){if(Hu(t)&&t.anid){var e=r[t.anid];if(e){var i=o(t);t.attr(o(e)),Ou(t,i,n,ys(t).dataIndex)}}}))}function o(t){var e={x:t.x,y:t.y,rotation:t.rotation};return function(t){return null!=t.shape}(t)&&(e.shape=I({},t.shape)),e}}function Yu(t,e){return O(t,(function(t){var n=t[0];n=mu(n,e.x),n=_u(n,e.x+e.width);var i=t[1];return i=mu(i,e.y),[n,i=_u(i,e.y+e.height)]}))}function Xu(t,e){var n=mu(t.x,e.x),i=_u(t.x+t.width,e.x+e.width),r=mu(t.y,e.y),o=_u(t.y+t.height,e.y+e.height);if(i>=n&&o>=r)return{x:n,y:r,width:i-n,height:o-r}}function Uu(t,e,n){var i=I({rectHover:!0},e),r=i.style={strokeNoScale:!0};if(n=n||{x:-1,y:-1,width:2,height:2},t)return 0===t.indexOf("image://")?(r.image=t.slice(8),T(r,n),new Ja(i)):Tu(t.replace("path://",""),i,n,"center")}function Zu(t,e,n,i,r){for(var o=0,a=r[r.length-1];o<r.length;o++){var s=r[o];if(ju(t,e,n,i,s[0],s[1],a[0],a[1]))return!0;a=s}}function ju(t,e,n,i,r,o,a,s){var l,u=n-t,h=i-e,c=a-r,p=s-o,d=qu(c,p,u,h);if((l=d)<=1e-6&&l>=-1e-6)return!1;var f=t-r,g=e-o,y=qu(f,g,u,h)/d;if(y<0||y>1)return!1;var v=qu(f,g,c,p)/d;return!(v<0||v>1)}function qu(t,e,n,i){return t*i-n*e}Mu("circle",Tl),Mu("ellipse",Al),Mu("sector",Wl),Mu("ring",Xl),Mu("polygon",ql),Mu("polyline",$l),Mu("rect",os),Mu("line",tu),Mu("bezierCurve",ru),Mu("arc",au);var Ku=Object.freeze({__proto__:null,extendShape:bu,extendPath:Su,registerShape:Mu,getShapeClass:Iu,makePath:Tu,makeImage:Cu,mergePath:Du,resizePath:Lu,subPixelOptimizeLine:function(t){return ts(t.shape,t.shape,t.style),t},subPixelOptimizeRect:function(t){return es(t.shape,t.shape,t.style),t},subPixelOptimize:ku,updateProps:Ou,initProps:Ru,removeElement:Nu,removeElementWithFadeOut:zu,isElementRemoved:Bu,getTransform:Vu,applyTransform:Fu,transformDirection:Gu,groupTransition:Wu,clipPointsByRect:Yu,clipRectByRect:Xu,createIcon:Uu,linePolygonIntersect:Zu,lineLineIntersect:ju,Group:zi,Image:Ja,Text:ls,Circle:Tl,Ellipse:Al,Sector:Wl,Ring:Xl,Polygon:ql,Polyline:$l,Rect:os,Line:tu,BezierCurve:ru,Arc:au,IncrementalDisplayable:vu,CompoundPath:su,LinearGradient:uu,RadialGradient:hu,BoundingRect:Rn,OrientedBoundingRect:gu,Point:In,Path:Za}),$u={};function Ju(t,e){for(var n=0;n<xs.length;n++){var i=xs[n],r=e[i],o=t.ensureState(i);o.style=o.style||{},o.style.text=r}var a=t.currentStates.slice();t.clearStates(!0),t.setStyle({text:e.normal}),t.useStates(a,!0)}function Qu(t,e,n){var i,r=t.labelFetcher,o=t.labelDataIndex,a=t.labelDimIndex,s=e.normal;r&&(i=r.getFormattedLabel(o,"normal",null,a,s&&s.get("formatter"),null!=n?{interpolatedValue:n}:null)),null==i&&(i=G(t.defaultText)?t.defaultText(o,t,n):t.defaultText);for(var l={normal:i},u=0;u<xs.length;u++){var h=xs[u],c=e[h];l[h]=tt(r?r.getFormattedLabel(o,h,null,a,c&&c.get("formatter")):null,i)}return l}function th(t,e,n,i){n=n||$u;for(var r=t instanceof ls,o=!1,a=0;a<bs.length;a++){if((p=e[bs[a]])&&p.getShallow("show")){o=!0;break}}var s=r?t:t.getTextContent();if(o){r||(s||(s=new ls,t.setTextContent(s)),t.stateProxy&&(s.stateProxy=t.stateProxy));var l=Qu(n,e),u=e.normal,h=!!u.getShallow("show"),c=nh(u,i&&i.normal,n,!1,!r);c.text=l.normal,r||t.setTextConfig(ih(u,n,!1));for(a=0;a<xs.length;a++){var p,d=xs[a];if(p=e[d]){var f=s.ensureState(d),g=!!tt(p.getShallow("show"),h);if(g!==h&&(f.ignore=!g),f.style=nh(p,i&&i[d],n,!0,!r),f.style.text=l[d],!r)t.ensureState(d).textConfig=ih(p,n,!0)}}s.silent=!!u.getShallow("silent"),null!=s.style.x&&(c.x=s.style.x),null!=s.style.y&&(c.y=s.style.y),s.ignore=!h,s.useStyle(c),s.dirty(),n.enableTextSetter&&(uh(s).setLabelText=function(t){var i=Qu(n,e,t);Ju(s,i)})}else s&&(s.ignore=!0);t.dirty()}function eh(t,e){e=e||"label";for(var n={normal:t.getModel(e)},i=0;i<xs.length;i++){var r=xs[i];n[r]=t.getModel([r,e])}return n}function nh(t,e,n,i,r){var o={};return function(t,e,n,i,r){n=n||$u;var o,a=e.ecModel,s=a&&a.option.textStyle,l=function(t){var e;for(;t&&t!==t.ecModel;){var n=(t.option||$u).rich;if(n){e=e||{};for(var i=z(n),r=0;r<i.length;r++){e[i[r]]=1}}t=t.parentModel}return e}(e);if(l)for(var u in o={},l)if(l.hasOwnProperty(u)){var h=e.getModel(["rich",u]);sh(o[u]={},h,s,n,i,r,!1,!0)}o&&(t.rich=o);var c=e.get("overflow");c&&(t.overflow=c);var p=e.get("minMargin");null!=p&&(t.margin=p);sh(t,e,s,n,i,r,!0,!1)}(o,t,n,i,r),e&&I(o,e),o}function ih(t,e,n){e=e||{};var i,r={},o=t.getShallow("rotate"),a=tt(t.getShallow("distance"),n?null:5),s=t.getShallow("offset");return"outside"===(i=t.getShallow("position")||(n?null:"inside"))&&(i=e.defaultOutsidePosition||"top"),null!=i&&(r.position=i),null!=s&&(r.offset=s),null!=o&&(o*=Math.PI/180,r.rotation=o),null!=a&&(r.distance=a),r.outsideFill="inherit"===t.get("color")?e.inheritColor||null:"auto",r}var rh=["fontStyle","fontWeight","fontSize","fontFamily","textShadowColor","textShadowBlur","textShadowOffsetX","textShadowOffsetY"],oh=["align","lineHeight","width","height","tag","verticalAlign"],ah=["padding","borderWidth","borderRadius","borderDashOffset","backgroundColor","borderColor","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"];function sh(t,e,n,i,r,o,a,s){n=!r&&n||$u;var l=i&&i.inheritColor,u=e.getShallow("color"),h=e.getShallow("textBorderColor"),c=tt(e.getShallow("opacity"),n.opacity);"inherit"!==u&&"auto"!==u||(u=l||null),"inherit"!==h&&"auto"!==h||(h=l||null),o||(u=u||n.color,h=h||n.textBorderColor),null!=u&&(t.fill=u),null!=h&&(t.stroke=h);var p=tt(e.getShallow("textBorderWidth"),n.textBorderWidth);null!=p&&(t.lineWidth=p);var d=tt(e.getShallow("textBorderType"),n.textBorderType);null!=d&&(t.lineDash=d);var f=tt(e.getShallow("textBorderDashOffset"),n.textBorderDashOffset);null!=f&&(t.lineDashOffset=f),r||null!=c||s||(c=i&&i.defaultOpacity),null!=c&&(t.opacity=c),r||o||null==t.fill&&i.inheritColor&&(t.fill=i.inheritColor);for(var g=0;g<rh.length;g++){var y=rh[g];null!=(m=tt(e.getShallow(y),n[y]))&&(t[y]=m)}for(g=0;g<oh.length;g++){y=oh[g];null!=(m=e.getShallow(y))&&(t[y]=m)}if(null==t.verticalAlign){var v=e.getShallow("baseline");null!=v&&(t.verticalAlign=v)}if(!a||!i.disableBox){for(g=0;g<ah.length;g++){var m;y=ah[g];null!=(m=e.getShallow(y))&&(t[y]=m)}var _=e.getShallow("borderType");null!=_&&(t.borderDash=_),"auto"!==t.backgroundColor&&"inherit"!==t.backgroundColor||!l||(t.backgroundColor=l),"auto"!==t.borderColor&&"inherit"!==t.borderColor||!l||(t.borderColor=l)}}function lh(t,e){var n=e&&e.getModel("textStyle");return ot([t.fontStyle||n&&n.getShallow("fontStyle")||"",t.fontWeight||n&&n.getShallow("fontWeight")||"",(t.fontSize||n&&n.getShallow("fontSize")||12)+"px",t.fontFamily||n&&n.getShallow("fontFamily")||"sans-serif"].join(" "))}var uh=Lr();function hh(t,e,n,i){if(t){var r=uh(t);r.prevValue=r.value,r.value=n;var o=e.normal;r.valueAnimation=o.get("valueAnimation"),r.valueAnimation&&(r.precision=o.get("precision"),r.defaultInterpolatedText=i,r.statesModels=e)}}function ch(t,e,n,i,r){var o=uh(t);if(o.valueAnimation){var a=o.defaultInterpolatedText,s=tt(o.interpolatedValue,o.prevValue),l=o.value;(null==s?Ru:Ou)(t,{},i,e,null,(function(i){var u=Br(n,o.precision,s,l,i);o.interpolatedValue=1===i?null:u;var h=Qu({labelDataIndex:e,labelFetcher:r,defaultText:a?a(u):u+""},o.statesModels,u);Ju(t,h)}))}}var ph,dh,fh=["textStyle","color"],gh=new ls,yh=function(){function t(){}return t.prototype.getTextColor=function(t){var e=this.ecModel;return this.getShallow("color")||(!t&&e?e.get(fh):null)},t.prototype.getFont=function(){return lh({fontStyle:this.getShallow("fontStyle"),fontWeight:this.getShallow("fontWeight"),fontSize:this.getShallow("fontSize"),fontFamily:this.getShallow("fontFamily")},this.ecModel)},t.prototype.getTextRect=function(t){return gh.useStyle({text:t,fontStyle:this.getShallow("fontStyle"),fontWeight:this.getShallow("fontWeight"),fontSize:this.getShallow("fontSize"),fontFamily:this.getShallow("fontFamily"),verticalAlign:this.getShallow("verticalAlign")||this.getShallow("baseline"),padding:this.getShallow("padding"),lineHeight:this.getShallow("lineHeight"),rich:this.getShallow("rich")}),gh.update(),gh.getBoundingRect()},t}(),vh=[["lineWidth","width"],["stroke","color"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"],["lineDash","type"],["lineDashOffset","dashOffset"],["lineCap","cap"],["lineJoin","join"],["miterLimit"]],mh=qr(vh),_h=function(){function t(){}return t.prototype.getLineStyle=function(t){return mh(this,t)},t}(),xh=[["fill","color"],["stroke","borderColor"],["lineWidth","borderWidth"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"],["lineDash","borderType"],["lineDashOffset","borderDashOffset"],["lineCap","borderCap"],["lineJoin","borderJoin"],["miterLimit","borderMiterLimit"]],bh=qr(xh),wh=function(){function t(){}return t.prototype.getItemStyle=function(t,e){return bh(this,t,e)},t}(),Sh=function(){function t(t,e,n){this.parentModel=e,this.ecModel=n,this.option=t}return t.prototype.init=function(t,e,n){for(var i=[],r=3;r<arguments.length;r++)i[r-3]=arguments[r]},t.prototype.mergeOption=function(t,e){S(this.option,t,!0)},t.prototype.get=function(t,e){return null==t?this.option:this._doGet(this.parsePath(t),!e&&this.parentModel)},t.prototype.getShallow=function(t,e){var n=this.option,i=null==n?n:n[t];if(null==i&&!e){var r=this.parentModel;r&&(i=r.getShallow(t))}return i},t.prototype.getModel=function(e,n){var i=null!=e,r=i?this.parsePath(e):null;return new t(i?this._doGet(r):this.option,n=n||this.parentModel&&this.parentModel.getModel(this.resolveParentPath(r)),this.ecModel)},t.prototype.isEmpty=function(){return null==this.option},t.prototype.restoreData=function(){},t.prototype.clone=function(){return new(0,this.constructor)(w(this.option))},t.prototype.parsePath=function(t){return"string"==typeof t?t.split("."):t},t.prototype.resolveParentPath=function(t){return t},t.prototype.isAnimationEnabled=function(){if(!a.node&&this.option){if(null!=this.option.animation)return!!this.option.animation;if(this.parentModel)return this.parentModel.isAnimationEnabled()}},t.prototype._doGet=function(t,e){var n=this.option;if(!t)return n;for(var i=0;i<t.length&&(!t[i]||null!=(n=n&&"object"==typeof n?n[t[i]]:null));i++);return null==n&&e&&(n=e._doGet(this.resolveParentPath(t),e.parentModel)),n},t}();Hr(Sh),ph=Sh,dh=["__\0is_clz",Xr++].join("_"),ph.prototype[dh]=!0,ph.isInstance=function(t){return!(!t||!t[dh])},L(Sh,_h),L(Sh,wh),L(Sh,$r),L(Sh,yh);var Mh=Math.round(10*Math.random());function Ih(t){return[t||"",Mh++].join("_")}function Th(t,e){return S(S({},t,!0),e,!0)}var Ch="ZH",Ah="EN",Dh=Ah,Lh={},kh={},Ph=a.domSupported&&(document.documentElement.lang||navigator.language||navigator.browserLanguage).toUpperCase().indexOf(Ch)>-1?Ch:Dh;function Oh(t,e){t=t.toUpperCase(),kh[t]=new Sh(e),Lh[t]=e}Oh(Ah,{time:{month:["January","February","March","April","May","June","July","August","September","October","November","December"],monthAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayOfWeekAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},legend:{selector:{all:"All",inverse:"Inv"}},toolbox:{brush:{title:{rect:"Box Select",polygon:"Lasso Select",lineX:"Horizontally Select",lineY:"Vertically Select",keep:"Keep Selections",clear:"Clear Selections"}},dataView:{title:"Data View",lang:["Data View","Close","Refresh"]},dataZoom:{title:{zoom:"Zoom",back:"Zoom Reset"}},magicType:{title:{line:"Switch to Line Chart",bar:"Switch to Bar Chart",stack:"Stack",tiled:"Tile"}},restore:{title:"Restore"},saveAsImage:{title:"Save as Image",lang:["Right Click to Save Image"]}},series:{typeNames:{pie:"Pie chart",bar:"Bar chart",line:"Line chart",scatter:"Scatter plot",effectScatter:"Ripple scatter plot",radar:"Radar chart",tree:"Tree",treemap:"Treemap",boxplot:"Boxplot",candlestick:"Candlestick",k:"K line chart",heatmap:"Heat map",map:"Map",parallel:"Parallel coordinate map",lines:"Line graph",graph:"Relationship graph",sankey:"Sankey diagram",funnel:"Funnel chart",gauge:"Guage",pictorialBar:"Pictorial bar",themeRiver:"Theme River Map",sunburst:"Sunburst"}},aria:{general:{withTitle:'This is a chart about "{title}"',withoutTitle:"This is a chart"},series:{single:{prefix:"",withName:" with type {seriesType} named {seriesName}.",withoutName:" with type {seriesType}."},multiple:{prefix:". It consists of {seriesCount} series count.",withName:" The {seriesId} series is a {seriesType} representing {seriesName}.",withoutName:" The {seriesId} series is a {seriesType}.",separator:{middle:"",end:""}}},data:{allData:"The data is as follows: ",partialData:"The first {displayCnt} items are: ",withName:"the data for {name} is {value}",withoutName:"{value}",separator:{middle:", ",end:". "}}}}),Oh(Ch,{time:{month:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthAbbr:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayOfWeekAbbr:["日","一","二","三","四","五","六"]},legend:{selector:{all:"全选",inverse:"反选"}},toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}});var Rh=1e3,Nh=6e4,Eh=36e5,zh=864e5,Bh=31536e6,Vh={year:"{yyyy}",month:"{MMM}",day:"{d}",hour:"{HH}:{mm}",minute:"{HH}:{mm}",second:"{HH}:{mm}:{ss}",millisecond:"{hh}:{mm}:{ss} {SSS}",none:"{yyyy}-{MM}-{dd} {hh}:{mm}:{ss} {SSS}"},Fh="{yyyy}-{MM}-{dd}",Gh={year:"{yyyy}",month:"{yyyy}-{MM}",day:Fh,hour:"{yyyy}-{MM}-{dd} "+Vh.hour,minute:"{yyyy}-{MM}-{dd} "+Vh.minute,second:"{yyyy}-{MM}-{dd} "+Vh.second,millisecond:Vh.none},Hh=["year","month","day","hour","minute","second","millisecond"],Wh=["year","half-year","quarter","month","week","half-week","day","half-day","quarter-day","hour","minute","second","millisecond"];function Yh(t,e){return"0000".substr(0,e-(t+="").length)+t}function Xh(t){switch(t){case"half-year":case"quarter":return"month";case"week":case"half-week":return"day";case"half-day":case"quarter-day":return"hour";default:return t}}function Uh(t){return t===Xh(t)}function Zh(t,e,n,i){var r=rr(t),o=r[Kh(n)](),a=r[$h(n)]()+1,s=Math.floor((a-1)/4)+1,l=r[Jh(n)](),u=r["get"+(n?"UTC":"")+"Day"](),h=r[Qh(n)](),c=(h-1)%12+1,p=r[tc(n)](),d=r[ec(n)](),f=r[nc(n)](),g=(i instanceof Sh?i:function(t){return kh[t]}(i||Ph)||kh.EN).getModel("time"),y=g.get("month"),v=g.get("monthAbbr"),m=g.get("dayOfWeek"),_=g.get("dayOfWeekAbbr");return(e||"").replace(/{yyyy}/g,o+"").replace(/{yy}/g,o%100+"").replace(/{Q}/g,s+"").replace(/{MMMM}/g,y[a-1]).replace(/{MMM}/g,v[a-1]).replace(/{MM}/g,Yh(a,2)).replace(/{M}/g,a+"").replace(/{dd}/g,Yh(l,2)).replace(/{d}/g,l+"").replace(/{eeee}/g,m[u]).replace(/{ee}/g,_[u]).replace(/{e}/g,u+"").replace(/{HH}/g,Yh(h,2)).replace(/{H}/g,h+"").replace(/{hh}/g,Yh(c+"",2)).replace(/{h}/g,c+"").replace(/{mm}/g,Yh(p,2)).replace(/{m}/g,p+"").replace(/{ss}/g,Yh(d,2)).replace(/{s}/g,d+"").replace(/{SSS}/g,Yh(f,3)).replace(/{S}/g,f+"")}function jh(t,e){var n=rr(t),i=n[$h(e)]()+1,r=n[Jh(e)](),o=n[Qh(e)](),a=n[tc(e)](),s=n[ec(e)](),l=0===n[nc(e)](),u=l&&0===s,h=u&&0===a,c=h&&0===o,p=c&&1===r;return p&&1===i?"year":p?"month":c?"day":h?"hour":u?"minute":l?"second":"millisecond"}function qh(t,e,n){var i="number"==typeof t?rr(t):t;switch(e=e||jh(t,n)){case"year":return i[Kh(n)]();case"half-year":return i[$h(n)]()>=6?1:0;case"quarter":return Math.floor((i[$h(n)]()+1)/4);case"month":return i[$h(n)]();case"day":return i[Jh(n)]();case"half-day":return i[Qh(n)]()/24;case"hour":return i[Qh(n)]();case"minute":return i[tc(n)]();case"second":return i[ec(n)]();case"millisecond":return i[nc(n)]()}}function Kh(t){return t?"getUTCFullYear":"getFullYear"}function $h(t){return t?"getUTCMonth":"getMonth"}function Jh(t){return t?"getUTCDate":"getDate"}function Qh(t){return t?"getUTCHours":"getHours"}function tc(t){return t?"getUTCMinutes":"getMinutes"}function ec(t){return t?"getUTCSeconds":"getSeconds"}function nc(t){return t?"getUTCSeconds":"getSeconds"}function ic(t){return t?"setUTCFullYear":"setFullYear"}function rc(t){return t?"setUTCMonth":"setMonth"}function oc(t){return t?"setUTCDate":"setDate"}function ac(t){return t?"setUTCHours":"setHours"}function sc(t){return t?"setUTCMinutes":"setMinutes"}function lc(t){return t?"setUTCSeconds":"setSeconds"}function uc(t){return t?"setUTCSeconds":"setSeconds"}function hc(t){if(!cr(t))return H(t)?t:"-";var e=(t+"").split(".");return e[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(e.length>1?"."+e[1]:"")}function cc(t,e){return t=(t||"").toLowerCase().replace(/-(.)/g,(function(t,e){return e.toUpperCase()})),e&&t&&(t=t.charAt(0).toUpperCase()+t.slice(1)),t}var pc=it,dc=/([&<>"'])/g,fc={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function gc(t){return null==t?"":(t+"").replace(dc,(function(t,e){return fc[e]}))}function yc(t,e,n){function i(t){return t&&ot(t)?t:"-"}function r(t){return!(null==t||isNaN(t)||!isFinite(t))}var o="time"===e,a=t instanceof Date;if(o||a){var s=o?rr(t):t;if(!isNaN(+s))return Zh(s,"yyyy-MM-dd hh:mm:ss",n);if(a)return"-"}if("ordinal"===e)return W(t)?i(t):Y(t)&&r(t)?t+"":"-";var l=hr(t);return r(l)?hc(l):W(t)?i(t):"-"}var vc=["a","b","c","d","e","f","g"],mc=function(t,e){return"{"+t+(null==e?"":e)+"}"};function _c(t,e,n){F(e)||(e=[e]);var i=e.length;if(!i)return"";for(var r=e[0].$vars||[],o=0;o<r.length;o++){var a=vc[o];t=t.replace(mc(a),mc(a,0))}for(var s=0;s<i;s++)for(var l=0;l<r.length;l++){var u=e[s][r[l]];t=t.replace(mc(vc[l],s),n?gc(u):u)}return t}function xc(t,e){var n=H(t)?{color:t,extraCssText:e}:t||{},i=n.color,r=n.type;e=n.extraCssText;var o=n.renderMode||"html";return i?"html"===o?"subItem"===r?'<span style="display:inline-block;vertical-align:middle;margin-right:8px;margin-left:3px;border-radius:4px;width:4px;height:4px;background-color:'+gc(i)+";"+(e||"")+'"></span>':'<span style="display:inline-block;margin-right:4px;border-radius:10px;width:10px;height:10px;background-color:'+gc(i)+";"+(e||"")+'"></span>':{renderMode:o,content:"{"+(n.markerId||"markerX")+"|}  ",style:"subItem"===r?{width:4,height:4,borderRadius:2,backgroundColor:i}:{width:10,height:10,borderRadius:5,backgroundColor:i}}:""}function bc(t,e){return e=e||"transparent",H(t)?t:X(t)&&t.colorStops&&(t.colorStops[0]||{}).color||e}function wc(t,e){if("_blank"===e||"blank"===e){var n=window.open();n.opener=null,n.location.href=t}else window.open(t,e)}var Sc=P,Mc=["left","right","top","bottom","width","height"],Ic=[["width","left","right"],["height","top","bottom"]];function Tc(t,e,n,i,r){var o=0,a=0;null==i&&(i=1/0),null==r&&(r=1/0);var s=0;e.eachChild((function(l,u){var h,c,p=l.getBoundingRect(),d=e.childAt(u+1),f=d&&d.getBoundingRect();if("horizontal"===t){var g=p.width+(f?-f.x+p.x:0);(h=o+g)>i||l.newline?(o=0,h=g,a+=s+n,s=p.height):s=Math.max(s,p.height)}else{var y=p.height+(f?-f.y+p.y:0);(c=a+y)>r||l.newline?(o+=s+n,a=0,c=y,s=p.width):s=Math.max(s,p.width)}l.newline||(l.x=o,l.y=a,l.markRedraw(),"horizontal"===t?o=h+n:a=c+n)}))}var Cc=Tc;V(Tc,"vertical"),V(Tc,"horizontal");function Ac(t,e,n){n=pc(n||0);var i=e.width,r=e.height,o=Zi(t.left,i),a=Zi(t.top,r),s=Zi(t.right,i),l=Zi(t.bottom,r),u=Zi(t.width,i),h=Zi(t.height,r),c=n[2]+n[0],p=n[1]+n[3],d=t.aspect;switch(isNaN(u)&&(u=i-s-p-o),isNaN(h)&&(h=r-l-c-a),null!=d&&(isNaN(u)&&isNaN(h)&&(d>i/r?u=.8*i:h=.8*r),isNaN(u)&&(u=d*h),isNaN(h)&&(h=u/d)),isNaN(o)&&(o=i-s-u-p),isNaN(a)&&(a=r-l-h-c),t.left||t.right){case"center":o=i/2-u/2-n[3];break;case"right":o=i-u-p}switch(t.top||t.bottom){case"middle":case"center":a=r/2-h/2-n[0];break;case"bottom":a=r-h-c}o=o||0,a=a||0,isNaN(u)&&(u=i-p-o-(s||0)),isNaN(h)&&(h=r-c-a-(l||0));var f=new Rn(o+n[3],a+n[0],u,h);return f.margin=n,f}function Dc(t,e,n,i,r){var o=!r||!r.hv||r.hv[0],a=!r||!r.hv||r.hv[1],s=r&&r.boundingMode||"all";if(o||a){var l;if("raw"===s)l="group"===t.type?new Rn(0,0,+e.width||0,+e.height||0):t.getBoundingRect();else if(l=t.getBoundingRect(),t.needLocalTransform()){var u=t.getLocalTransform();(l=l.clone()).applyTransform(u)}var h=Ac(T({width:l.width,height:l.height},e),n,i),c=o?h.x-l.x:0,p=a?h.y-l.y:0;"raw"===s?(t.x=c,t.y=p):(t.x+=c,t.y+=p),t.markRedraw()}}function Lc(t){var e=t.layoutMode||t.constructor.layoutMode;return X(e)?e:e?{type:e}:null}function kc(t,e,n){var i=n&&n.ignoreSize;!F(i)&&(i=[i,i]);var r=a(Ic[0],0),o=a(Ic[1],1);function a(n,r){var o={},a=0,u={},h=0;if(Sc(n,(function(e){u[e]=t[e]})),Sc(n,(function(t){s(e,t)&&(o[t]=u[t]=e[t]),l(o,t)&&a++,l(u,t)&&h++})),i[r])return l(e,n[1])?u[n[2]]=null:l(e,n[2])&&(u[n[1]]=null),u;if(2!==h&&a){if(a>=2)return o;for(var c=0;c<n.length;c++){var p=n[c];if(!s(o,p)&&s(t,p)){o[p]=t[p];break}}return o}return u}function s(t,e){return t.hasOwnProperty(e)}function l(t,e){return null!=t[e]&&"auto"!==t[e]}function u(t,e,n){Sc(t,(function(t){e[t]=n[t]}))}u(Ic[0],t,r),u(Ic[1],t,o)}function Pc(t){return Oc({},t)}function Oc(t,e){return e&&t&&Sc(Mc,(function(n){e.hasOwnProperty(n)&&(t[n]=e[n])})),t}var Rc=Lr(),Nc=function(t){function e(e,n,i){var r=t.call(this,e,n,i)||this;return r.uid=Ih("ec_cpt_model"),r}return n(e,t),e.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n)},e.prototype.mergeDefaultAndTheme=function(t,e){var n=Lc(this),i=n?Pc(t):{};S(t,e.getTheme().get(this.mainType)),S(t,this.getDefaultOption()),n&&kc(t,i,n)},e.prototype.mergeOption=function(t,e){S(this.option,t,!0);var n=Lc(this);n&&kc(this.option,t,n)},e.prototype.optionUpdated=function(t,e){},e.prototype.getDefaultOption=function(){var t=this.constructor;if(!function(t){return!(!t||!t[Fr])}(t))return t.defaultOption;var e=Rc(this);if(!e.defaultOption){for(var n=[],i=t;i;){var r=i.prototype.defaultOption;r&&n.push(r),i=i.superClass}for(var o={},a=n.length-1;a>=0;a--)o=S(o,n[a],!0);e.defaultOption=o}return e.defaultOption},e.prototype.getReferringComponents=function(t,e){var n=t+"Index",i=t+"Id";return Nr(this.ecModel,t,{index:this.get(n,!0),id:this.get(i,!0)},e)},e.prototype.getBoxLayoutParams=function(){var t=this;return{left:t.get("left"),top:t.get("top"),right:t.get("right"),bottom:t.get("bottom"),width:t.get("width"),height:t.get("height")}},e.protoInitialize=function(){var t=e.prototype;t.type="component",t.id="",t.name="",t.mainType="",t.subType="",t.componentIndex=0}(),e}(Sh);Yr(Nc,Sh),jr(Nc),function(t){var e={};t.registerSubTypeDefaulter=function(t,n){var i=Gr(t);e[i.main]=n},t.determineSubType=function(n,i){var r=i.type;if(!r){var o=Gr(n).main;t.hasSubTypes(n)&&e[o]&&(r=e[o](i))}return r}}(Nc),function(t,e){function n(t,e){return t[e]||(t[e]={predecessor:[],successor:[]}),t[e]}t.topologicalTravel=function(t,i,r,o){if(t.length){var a=function(t){var i={},r=[];return P(t,(function(o){var a=n(i,o),s=function(t,e){var n=[];return P(t,(function(t){A(e,t)>=0&&n.push(t)})),n}(a.originalDeps=e(o),t);a.entryCount=s.length,0===a.entryCount&&r.push(o),P(s,(function(t){A(a.predecessor,t)<0&&a.predecessor.push(t);var e=n(i,t);A(e.successor,t)<0&&e.successor.push(o)}))})),{graph:i,noEntryList:r}}(i),s=a.graph,l=a.noEntryList,u={};for(P(t,(function(t){u[t]=!0}));l.length;){var h=l.pop(),c=s[h],p=!!u[h];p&&(r.call(o,h,c.originalDeps.slice()),delete u[h]),P(c.successor,p?f:d)}P(u,(function(){var t="";throw new Error(t)}))}function d(t){s[t].entryCount--,0===s[t].entryCount&&l.push(t)}function f(t){u[t]=!0,d(t)}}}(Nc,(function(t){var e=[];P(Nc.getClassesByMainType(t),(function(t){e=e.concat(t.dependencies||t.prototype.dependencies||[])})),e=O(e,(function(t){return Gr(t).main})),"dataset"!==t&&A(e,"dataset")<=0&&e.unshift("dataset");return e}));var Ec="";"undefined"!=typeof navigator&&(Ec=navigator.platform||"");var zc="rgba(0, 0, 0, 0.2)",Bc={darkMode:"auto",color:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],gradientColor:["#f6efa6","#d88273","#bf444c"],aria:{decal:{decals:[{color:zc,dashArrayX:[1,0],dashArrayY:[2,5],symbolSize:1,rotation:Math.PI/6},{color:zc,symbol:"circle",dashArrayX:[[8,8],[0,8,8,0]],dashArrayY:[6,0],symbolSize:.8},{color:zc,dashArrayX:[1,0],dashArrayY:[4,3],rotation:-Math.PI/4},{color:zc,dashArrayX:[[6,6],[0,6,6,0]],dashArrayY:[6,0]},{color:zc,dashArrayX:[[1,0],[1,6]],dashArrayY:[1,0,6,0],rotation:Math.PI/4},{color:zc,symbol:"triangle",dashArrayX:[[9,9],[0,9,9,0]],dashArrayY:[7,2],symbolSize:.75}]}},textStyle:{fontFamily:Ec.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,stateAnimation:{duration:300,easing:"cubicOut"},animation:"auto",animationDuration:1e3,animationDurationUpdate:500,animationEasing:"cubicInOut",animationEasingUpdate:"cubicInOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1},Vc=ht(["tooltip","label","itemName","itemId","seriesName"]),Fc="original",Gc="arrayRows",Hc="objectRows",Wc="keyedColumns",Yc="typedArray",Xc="unknown",Uc="column",Zc="row",jc=1,qc=2,Kc=3,$c=Lr();function Jc(t,e,n){var i={},r=tp(e);if(!r||!t)return i;var o,a,s=[],l=[],u=e.ecModel,h=$c(u).datasetMap,c=r.uid+"_"+n.seriesLayoutBy;P(t=t.slice(),(function(e,n){var r=X(e)?e:t[n]={name:e};"ordinal"===r.type&&null==o&&(o=n,a=f(r)),i[r.name]=[]}));var p=h.get(c)||h.set(c,{categoryWayDim:a,valueWayDim:0});function d(t,e,n){for(var i=0;i<n;i++)t.push(e+i)}function f(t){var e=t.dimsDef;return e?e.length:1}return P(t,(function(t,e){var n=t.name,r=f(t);if(null==o){var a=p.valueWayDim;d(i[n],a,r),d(l,a,r),p.valueWayDim+=r}else if(o===e)d(i[n],0,r),d(s,0,r);else{a=p.categoryWayDim;d(i[n],a,r),d(l,a,r),p.categoryWayDim+=r}})),s.length&&(i.itemName=s),l.length&&(i.seriesName=l),i}function Qc(t,e,n){var i={};if(!tp(t))return i;var r,o=e.sourceFormat,a=e.dimensionsDefine;o!==Hc&&o!==Wc||P(a,(function(t,e){"name"===(X(t)?t.name:t)&&(r=e)}));var s=function(){for(var t={},i={},s=[],l=0,u=Math.min(5,n);l<u;l++){var h=np(e.data,o,e.seriesLayoutBy,a,e.startIndex,l);s.push(h);var c=h===Kc;if(c&&null==t.v&&l!==r&&(t.v=l),(null==t.n||t.n===t.v||!c&&s[t.n]===Kc)&&(t.n=l),p(t)&&s[t.n]!==Kc)return t;c||(h===qc&&null==i.v&&l!==r&&(i.v=l),null!=i.n&&i.n!==i.v||(i.n=l))}function p(t){return null!=t.v&&null!=t.n}return p(t)?t:p(i)?i:null}();if(s){i.value=[s.v];var l=null!=r?r:s.n;i.itemName=[l],i.seriesName=[l]}return i}function tp(t){if(!t.get("data",!0))return Nr(t.ecModel,"dataset",{index:t.get("datasetIndex",!0),id:t.get("datasetId",!0)},Or).models[0]}function ep(t,e){return np(t.data,t.sourceFormat,t.seriesLayoutBy,t.dimensionsDefine,t.startIndex,e)}function np(t,e,n,i,r,o){var a,s,l;if(Z(t))return Kc;if(i){var u=i[o];X(u)?(s=u.name,l=u.type):H(u)&&(s=u)}if(null!=l)return"ordinal"===l?jc:Kc;if(e===Gc){var h=t;if(n===Zc){for(var c=h[o],p=0;p<(c||[]).length&&p<5;p++)if(null!=(a=m(c[r+p])))return a}else for(p=0;p<h.length&&p<5;p++){var d=h[r+p];if(d&&null!=(a=m(d[o])))return a}}else if(e===Hc){var f=t;if(!s)return Kc;for(p=0;p<f.length&&p<5;p++){if((y=f[p])&&null!=(a=m(y[s])))return a}}else if(e===Wc){if(!s)return Kc;if(!(c=t[s])||Z(c))return Kc;for(p=0;p<c.length&&p<5;p++)if(null!=(a=m(c[p])))return a}else if(e===Fc){var g=t;for(p=0;p<g.length&&p<5;p++){var y,v=wr(y=g[p]);if(!F(v))return Kc;if(null!=(a=m(v[o])))return a}}function m(t){var e=H(t);return null!=t&&isFinite(t)&&""!==t?e?qc:Kc:e&&"-"!==t?jc:void 0}return Kc}var ip=ht();var rp,op,ap,sp=Lr(),lp=Lr(),up=function(){function t(){}return t.prototype.getColorFromPalette=function(t,e,n){var i=_r(this.get("color",!0)),r=this.get("colorLayer",!0);return cp(this,sp,i,r,t,e,n)},t.prototype.clearColorPalette=function(){!function(t,e){e(t).paletteIdx=0,e(t).paletteNameMap={}}(this,sp)},t}();function hp(t,e,n,i){var r=_r(t.get(["aria","decal","decals"]));return cp(t,lp,r,null,e,n,i)}function cp(t,e,n,i,r,o,a){var s=e(o=o||t),l=s.paletteIdx||0,u=s.paletteNameMap=s.paletteNameMap||{};if(u.hasOwnProperty(r))return u[r];var h=null!=a&&i?function(t,e){for(var n=t.length,i=0;i<n;i++)if(t[i].length>e)return t[i];return t[n-1]}(i,a):n;if((h=h||n)&&h.length){var c=h[l];return r&&(u[r]=c),s.paletteIdx=(l+1)%h.length,c}}var pp=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.init=function(t,e,n,i,r,o){i=i||{},this.option=null,this._theme=new Sh(i),this._locale=new Sh(r),this._optionManager=o},e.prototype.setOption=function(t,e,n){var i=gp(e);this._optionManager.setOption(t,n,i),this._resetOption(null,i)},e.prototype.resetOption=function(t,e){return this._resetOption(t,gp(e))},e.prototype._resetOption=function(t,e){var n=!1,i=this._optionManager;if(!t||"recreate"===t){var r=i.mountOption("recreate"===t);this.option&&"recreate"!==t?(this.restoreData(),this._mergeOption(r,e)):ap(this,r),n=!0}if("timeline"!==t&&"media"!==t||this.restoreData(),!t||"recreate"===t||"timeline"===t){var o=i.getTimelineOption(this);o&&(n=!0,this._mergeOption(o,e))}if(!t||"recreate"===t||"media"===t){var a=i.getMediaOption(this);a.length&&P(a,(function(t){n=!0,this._mergeOption(t,e)}),this)}return n},e.prototype.mergeOption=function(t){this._mergeOption(t,null)},e.prototype._mergeOption=function(t,e){var n=this.option,i=this._componentsMap,r=this._componentsCount,o=[],a=ht(),s=e&&e.replaceMergeMainTypeMap;$c(this).datasetMap=ht(),P(t,(function(t,e){null!=t&&(Nc.hasClass(e)?e&&(o.push(e),a.set(e,!0)):n[e]=null==n[e]?w(t):S(n[e],t,!0))})),s&&s.each((function(t,e){Nc.hasClass(e)&&!a.get(e)&&(o.push(e),a.set(e,!0))})),Nc.topologicalTravel(o,Nc.getAllClassMainTypes(),(function(e){var o=function(t,e,n){var i=ip.get(e);if(!i)return n;var r=i(t);return r?n.concat(r):n}(this,e,_r(t[e])),a=i.get(e),l=a?s&&s.get(e)?"replaceMerge":"normalMerge":"replaceAll",u=Sr(a,o,l);(function(t,e,n){P(t,(function(t){var i=t.newOption;X(i)&&(t.keyInfo.mainType=e,t.keyInfo.subType=function(t,e,n,i){return e.type?e.type:n?n.subType:i.determineSubType(t,e)}(e,i,t.existing,n))}))})(u,e,Nc),n[e]=null,i.set(e,null),r.set(e,0);var h=[],c=[],p=0;P(u,(function(t,n){var i=t.existing,r=t.newOption;if(r){var o=Nc.getClass(e,t.keyInfo.subType,!0);if(i&&i.constructor===o)i.name=t.keyInfo.name,i.mergeOption(r,this),i.optionUpdated(r,!1);else{var a=I({componentIndex:n},t.keyInfo);I(i=new o(r,this,this,a),a),t.brandNew&&(i.__requireNewView=!0),i.init(r,this,this),i.optionUpdated(null,!0)}}else i&&(i.mergeOption({},this),i.optionUpdated({},!1));i?(h.push(i.option),c.push(i),p++):(h.push(void 0),c.push(void 0))}),this),n[e]=h,i.set(e,c),r.set(e,p),"series"===e&&rp(this)}),this),this._seriesIndices||rp(this)},e.prototype.getOption=function(){var t=w(this.option);return P(t,(function(e,n){if(Nc.hasClass(n)){for(var i=_r(e),r=i.length,o=!1,a=r-1;a>=0;a--)i[a]&&!Ar(i[a])?o=!0:(i[a]=null,!o&&r--);i.length=r,t[n]=i}})),delete t["\0_ec_inner"],t},e.prototype.getTheme=function(){return this._theme},e.prototype.getLocaleModel=function(){return this._locale},e.prototype.getLocale=function(t){return this.getLocaleModel().get(t)},e.prototype.setUpdatePayload=function(t){this._payload=t},e.prototype.getUpdatePayload=function(){return this._payload},e.prototype.getComponent=function(t,e){var n=this._componentsMap.get(t);if(n){var i=n[e||0];if(i)return i;if(null==e)for(var r=0;r<n.length;r++)if(n[r])return n[r]}},e.prototype.queryComponents=function(t){var e=t.mainType;if(!e)return[];var n,i=t.index,r=t.id,o=t.name,a=this._componentsMap.get(e);return a&&a.length?(null!=i?(n=[],P(_r(i),(function(t){a[t]&&n.push(a[t])}))):n=null!=r?dp("id",r,a):null!=o?dp("name",o,a):N(a,(function(t){return!!t})),fp(n,t)):[]},e.prototype.findComponents=function(t){var e,n,i,r,o,a=t.query,s=t.mainType,l=(n=s+"Index",i=s+"Id",r=s+"Name",!(e=a)||null==e[n]&&null==e[i]&&null==e[r]?null:{mainType:s,index:e[n],id:e[i],name:e[r]}),u=l?this.queryComponents(l):N(this._componentsMap.get(s),(function(t){return!!t}));return o=fp(u,t),t.filter?N(o,t.filter):o},e.prototype.eachComponent=function(t,e,n){var i=this._componentsMap;if(G(t)){var r=e,o=t;i.each((function(t,e){for(var n=0;t&&n<t.length;n++){var i=t[n];i&&o.call(r,e,i,i.componentIndex)}}))}else for(var a=H(t)?i.get(t):X(t)?this.findComponents(t):null,s=0;a&&s<a.length;s++){var l=a[s];l&&e.call(n,l,l.componentIndex)}},e.prototype.getSeriesByName=function(t){var e=Tr(t,null);return N(this._componentsMap.get("series"),(function(t){return!!t&&null!=e&&t.name===e}))},e.prototype.getSeriesByIndex=function(t){return this._componentsMap.get("series")[t]},e.prototype.getSeriesByType=function(t){return N(this._componentsMap.get("series"),(function(e){return!!e&&e.subType===t}))},e.prototype.getSeries=function(){return N(this._componentsMap.get("series").slice(),(function(t){return!!t}))},e.prototype.getSeriesCount=function(){return this._componentsCount.get("series")},e.prototype.eachSeries=function(t,e){op(this),P(this._seriesIndices,(function(n){var i=this._componentsMap.get("series")[n];t.call(e,i,n)}),this)},e.prototype.eachRawSeries=function(t,e){P(this._componentsMap.get("series"),(function(n){n&&t.call(e,n,n.componentIndex)}))},e.prototype.eachSeriesByType=function(t,e,n){op(this),P(this._seriesIndices,(function(i){var r=this._componentsMap.get("series")[i];r.subType===t&&e.call(n,r,i)}),this)},e.prototype.eachRawSeriesByType=function(t,e,n){return P(this.getSeriesByType(t),e,n)},e.prototype.isSeriesFiltered=function(t){return op(this),null==this._seriesIndicesMap.get(t.componentIndex)},e.prototype.getCurrentSeriesIndices=function(){return(this._seriesIndices||[]).slice()},e.prototype.filterSeries=function(t,e){op(this);var n=[];P(this._seriesIndices,(function(i){var r=this._componentsMap.get("series")[i];t.call(e,r,i)&&n.push(i)}),this),this._seriesIndices=n,this._seriesIndicesMap=ht(n)},e.prototype.restoreData=function(t){rp(this);var e=this._componentsMap,n=[];e.each((function(t,e){Nc.hasClass(e)&&n.push(e)})),Nc.topologicalTravel(n,Nc.getAllClassMainTypes(),(function(n){P(e.get(n),(function(e){!e||"series"===n&&function(t,e){if(e){var n=e.seriesIndex,i=e.seriesId,r=e.seriesName;return null!=n&&t.componentIndex!==n||null!=i&&t.id!==i||null!=r&&t.name!==r}}(e,t)||e.restoreData()}))}))},e.internalField=(rp=function(t){var e=t._seriesIndices=[];P(t._componentsMap.get("series"),(function(t){t&&e.push(t.componentIndex)})),t._seriesIndicesMap=ht(e)},op=function(t){},void(ap=function(t,e){t.option={},t.option["\0_ec_inner"]=1,t._componentsMap=ht({series:[]}),t._componentsCount=ht();var n=e.aria;X(n)&&null==n.enabled&&(n.enabled=!0),function(t,e){var n=t.color&&!t.colorLayer;P(e,(function(e,i){"colorLayer"===i&&n||Nc.hasClass(i)||("object"==typeof e?t[i]=t[i]?S(t[i],e,!1):w(e):null==t[i]&&(t[i]=e))}))}(e,t._theme.option),S(e,Bc,!1),t._mergeOption(e,null)})),e}(Sh);function dp(t,e,n){if(F(e)){var i=ht();return P(e,(function(t){null!=t&&(null!=Tr(t,null)&&i.set(t,!0))})),N(n,(function(e){return e&&i.get(e[t])}))}var r=Tr(e,null);return N(n,(function(e){return e&&null!=r&&e[t]===r}))}function fp(t,e){return e.hasOwnProperty("subType")?N(t,(function(t){return t&&t.subType===e.subType})):t}function gp(t){var e=ht();return t&&P(_r(t.replaceMerge),(function(t){e.set(t,!0)})),{replaceMergeMainTypeMap:e}}L(pp,up);var yp=["getDom","getZr","getWidth","getHeight","getDevicePixelRatio","dispatchAction","isDisposed","on","off","getDataURL","getConnectedDataURL","getOption","getId","updateLabelLayout"],vp=function(t){P(yp,(function(e){this[e]=B(t[e],t)}),this)},mp={},_p=function(){function t(){this._coordinateSystems=[]}return t.prototype.create=function(t,e){var n=[];P(mp,(function(i,r){var o=i.create(t,e);n=n.concat(o||[])})),this._coordinateSystems=n},t.prototype.update=function(t,e){P(this._coordinateSystems,(function(n){n.update&&n.update(t,e)}))},t.prototype.getCoordinateSystems=function(){return this._coordinateSystems.slice()},t.register=function(t,e){mp[t]=e},t.get=function(t){return mp[t]},t}(),xp=/^(min|max)?(.+)$/,bp=function(){function t(t){this._timelineOptions=[],this._mediaList=[],this._currentMediaIndices=[],this._api=t}return t.prototype.setOption=function(t,e,n){t&&(P(_r(t.series),(function(t){t&&t.data&&Z(t.data)&&st(t.data)})),P(_r(t.dataset),(function(t){t&&t.source&&Z(t.source)&&st(t.source)}))),t=w(t);var i=this._optionBackup,r=function(t,e,n){var i,r,o=[],a=t.baseOption,s=t.timeline,l=t.options,u=t.media,h=!!t.media,c=!!(l||s||a&&a.timeline);a?(r=a).timeline||(r.timeline=s):((c||h)&&(t.options=t.media=null),r=t);h&&F(u)&&P(u,(function(t){t&&t.option&&(t.query?o.push(t):i||(i=t))}));function p(t){P(e,(function(e){e(t,n)}))}return p(r),P(l,(function(t){return p(t)})),P(o,(function(t){return p(t.option)})),{baseOption:r,timelineOptions:l||[],mediaDefault:i,mediaList:o}}(t,e,!i);this._newBaseOption=r.baseOption,i?(r.timelineOptions.length&&(i.timelineOptions=r.timelineOptions),r.mediaList.length&&(i.mediaList=r.mediaList),r.mediaDefault&&(i.mediaDefault=r.mediaDefault)):this._optionBackup=r},t.prototype.mountOption=function(t){var e=this._optionBackup;return this._timelineOptions=e.timelineOptions,this._mediaList=e.mediaList,this._mediaDefault=e.mediaDefault,this._currentMediaIndices=[],w(t?e.baseOption:this._newBaseOption)},t.prototype.getTimelineOption=function(t){var e,n=this._timelineOptions;if(n.length){var i=t.getComponent("timeline");i&&(e=w(n[i.getCurrentIndex()]))}return e},t.prototype.getMediaOption=function(t){var e,n,i=this._api.getWidth(),r=this._api.getHeight(),o=this._mediaList,a=this._mediaDefault,s=[],l=[];if(!o.length&&!a)return l;for(var u=0,h=o.length;u<h;u++)wp(o[u].query,i,r)&&s.push(u);return!s.length&&a&&(s=[-1]),s.length&&(e=s,n=this._currentMediaIndices,e.join(",")!==n.join(","))&&(l=O(s,(function(t){return w(-1===t?a.option:o[t].option)}))),this._currentMediaIndices=s,l},t}();function wp(t,e,n){var i={width:e,height:n,aspectratio:e/n},r=!0;return P(t,(function(t,e){var n=e.match(xp);if(n&&n[1]&&n[2]){var o=n[1],a=n[2].toLowerCase();(function(t,e,n){return"min"===n?t>=e:"max"===n?t<=e:t===e})(i[a],t,o)||(r=!1)}})),r}var Sp=P,Mp=X,Ip=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function Tp(t){var e=t&&t.itemStyle;if(e)for(var n=0,i=Ip.length;n<i;n++){var r=Ip[n],o=e.normal,a=e.emphasis;o&&o[r]&&(t[r]=t[r]||{},t[r].normal?S(t[r].normal,o[r]):t[r].normal=o[r],o[r]=null),a&&a[r]&&(t[r]=t[r]||{},t[r].emphasis?S(t[r].emphasis,a[r]):t[r].emphasis=a[r],a[r]=null)}}function Cp(t,e,n){if(t&&t[e]&&(t[e].normal||t[e].emphasis)){var i=t[e].normal,r=t[e].emphasis;i&&(n?(t[e].normal=t[e].emphasis=null,T(t[e],i)):t[e]=i),r&&(t.emphasis=t.emphasis||{},t.emphasis[e]=r,r.focus&&(t.emphasis.focus=r.focus),r.blurScope&&(t.emphasis.blurScope=r.blurScope))}}function Ap(t){Cp(t,"itemStyle"),Cp(t,"lineStyle"),Cp(t,"areaStyle"),Cp(t,"label"),Cp(t,"labelLine"),Cp(t,"upperLabel"),Cp(t,"edgeLabel")}function Dp(t,e){var n=Mp(t)&&t[e],i=Mp(n)&&n.textStyle;if(i){0;for(var r=0,o=br.length;r<o;r++){var a=br[r];i.hasOwnProperty(a)&&(n[a]=i[a])}}}function Lp(t){t&&(Ap(t),Dp(t,"label"),t.emphasis&&Dp(t.emphasis,"label"))}function kp(t){return F(t)?t:t?[t]:[]}function Pp(t){return(F(t)?t[0]:t)||{}}function Op(t,e){Sp(kp(t.series),(function(t){Mp(t)&&function(t){if(Mp(t)){Tp(t),Ap(t),Dp(t,"label"),Dp(t,"upperLabel"),Dp(t,"edgeLabel"),t.emphasis&&(Dp(t.emphasis,"label"),Dp(t.emphasis,"upperLabel"),Dp(t.emphasis,"edgeLabel"));var e=t.markPoint;e&&(Tp(e),Lp(e));var n=t.markLine;n&&(Tp(n),Lp(n));var i=t.markArea;i&&Lp(i);var r=t.data;if("graph"===t.type){r=r||t.nodes;var o=t.links||t.edges;if(o&&!Z(o))for(var a=0;a<o.length;a++)Lp(o[a]);P(t.categories,(function(t){Ap(t)}))}if(r&&!Z(r))for(a=0;a<r.length;a++)Lp(r[a]);if((e=t.markPoint)&&e.data){var s=e.data;for(a=0;a<s.length;a++)Lp(s[a])}if((n=t.markLine)&&n.data){var l=n.data;for(a=0;a<l.length;a++)F(l[a])?(Lp(l[a][0]),Lp(l[a][1])):Lp(l[a])}"gauge"===t.type?(Dp(t,"axisLabel"),Dp(t,"title"),Dp(t,"detail")):"treemap"===t.type?(Cp(t.breadcrumb,"itemStyle"),P(t.levels,(function(t){Ap(t)}))):"tree"===t.type&&Ap(t.leaves)}}(t)}));var n=["xAxis","yAxis","radiusAxis","angleAxis","singleAxis","parallelAxis","radar"];e&&n.push("valueAxis","categoryAxis","logAxis","timeAxis"),Sp(n,(function(e){Sp(kp(t[e]),(function(t){t&&(Dp(t,"axisLabel"),Dp(t.axisPointer,"label"))}))})),Sp(kp(t.parallel),(function(t){var e=t&&t.parallelAxisDefault;Dp(e,"axisLabel"),Dp(e&&e.axisPointer,"label")})),Sp(kp(t.calendar),(function(t){Cp(t,"itemStyle"),Dp(t,"dayLabel"),Dp(t,"monthLabel"),Dp(t,"yearLabel")})),Sp(kp(t.radar),(function(t){Dp(t,"name"),t.name&&null==t.axisName&&(t.axisName=t.name,delete t.name),null!=t.nameGap&&null==t.axisNameGap&&(t.axisNameGap=t.nameGap,delete t.nameGap)})),Sp(kp(t.geo),(function(t){Mp(t)&&(Lp(t),Sp(kp(t.regions),(function(t){Lp(t)})))})),Sp(kp(t.timeline),(function(t){Lp(t),Cp(t,"label"),Cp(t,"itemStyle"),Cp(t,"controlStyle",!0);var e=t.data;F(e)&&P(e,(function(t){X(t)&&(Cp(t,"label"),Cp(t,"itemStyle"))}))})),Sp(kp(t.toolbox),(function(t){Cp(t,"iconStyle"),Sp(t.feature,(function(t){Cp(t,"iconStyle")}))})),Dp(Pp(t.axisPointer),"label"),Dp(Pp(t.tooltip).axisPointer,"label")}function Rp(t){t&&P(Np,(function(e){e[0]in t&&!(e[1]in t)&&(t[e[1]]=t[e[0]])}))}var Np=[["x","left"],["y","top"],["x2","right"],["y2","bottom"]],Ep=["grid","geo","parallel","legend","toolbox","title","visualMap","dataZoom","timeline"],zp=[["borderRadius","barBorderRadius"],["borderColor","barBorderColor"],["borderWidth","barBorderWidth"]];function Bp(t){var e=t&&t.itemStyle;if(e)for(var n=0;n<zp.length;n++){var i=zp[n][1],r=zp[n][0];null!=e[i]&&(e[r]=e[i])}}function Vp(t){t&&"edge"===t.alignTo&&null!=t.margin&&null==t.edgeDistance&&(t.edgeDistance=t.margin)}function Fp(t){t&&t.downplay&&!t.blur&&(t.blur=t.downplay)}function Gp(t,e){if(t)for(var n=0;n<t.length;n++)e(t[n]),t[n]&&Gp(t[n].children,e)}function Hp(t,e){Op(t,e),t.series=_r(t.series),P(t.series,(function(t){if(X(t)){var e=t.type;if("line"===e)null!=t.clipOverflow&&(t.clip=t.clipOverflow);else if("pie"===e||"gauge"===e){if(null!=t.clockWise&&(t.clockwise=t.clockWise),Vp(t.label),(r=t.data)&&!Z(r))for(var n=0;n<r.length;n++)Vp(r[n]);null!=t.hoverOffset&&(t.emphasis=t.emphasis||{},(t.emphasis.scaleSize=null)&&(t.emphasis.scaleSize=t.hoverOffset))}else if("gauge"===e){var i=function(t,e){for(var n=e.split(","),i=t,r=0;r<n.length&&null!=(i=i&&i[n[r]]);r++);return i}(t,"pointer.color");null!=i&&function(t,e,n,i){for(var r,o=e.split(","),a=t,s=0;s<o.length-1;s++)null==a[r=o[s]]&&(a[r]={}),a=a[r];(i||null==a[o[s]])&&(a[o[s]]=n)}(t,"itemStyle.color",i)}else if("bar"===e){var r;if(Bp(t),Bp(t.backgroundStyle),Bp(t.emphasis),(r=t.data)&&!Z(r))for(n=0;n<r.length;n++)"object"==typeof r[n]&&(Bp(r[n]),Bp(r[n]&&r[n].emphasis))}else if("sunburst"===e){var o=t.highlightPolicy;o&&(t.emphasis=t.emphasis||{},t.emphasis.focus||(t.emphasis.focus=o)),Fp(t),Gp(t.data,Fp)}else"graph"===e||"sankey"===e?function(t){t&&null!=t.focusNodeAdjacency&&(t.emphasis=t.emphasis||{},null==t.emphasis.focus&&(t.emphasis.focus="adjacency"))}(t):"map"===e&&(t.mapType&&!t.map&&(t.map=t.mapType),t.mapLocation&&T(t,t.mapLocation));null!=t.hoverAnimation&&(t.emphasis=t.emphasis||{},t.emphasis&&null==t.emphasis.scale&&(t.emphasis.scale=t.hoverAnimation)),Rp(t)}})),t.dataRange&&(t.visualMap=t.dataRange),P(Ep,(function(e){var n=t[e];n&&(F(n)||(n=[n]),P(n,(function(t){Rp(t)})))}))}function Wp(t){P(t,(function(e,n){var i=[],r=[NaN,NaN],o=[e.stackResultDimension,e.stackedOverDimension],a=e.data,s=e.isStackedByIndex,l=a.map(o,(function(o,l,u){var h,c,p=a.get(e.stackedDimension,u);if(isNaN(p))return r;s?c=a.getRawIndex(u):h=a.get(e.stackedByDimension,u);for(var d=NaN,f=n-1;f>=0;f--){var g=t[f];if(s||(c=g.data.rawIndexOf(g.stackedByDimension,h)),c>=0){var y=g.data.getByRawIndex(g.stackResultDimension,c);if(p>=0&&y>0||p<=0&&y<0){p+=y,d=y;break}}}return i[0]=p,i[1]=d,i}));a.hostModel.setData(l),e.data=l}))}var Yp,Xp,Up,Zp,jp,qp=function(t){this.data=t.data||(t.sourceFormat===Wc?{}:[]),this.sourceFormat=t.sourceFormat||Xc,this.seriesLayoutBy=t.seriesLayoutBy||Uc,this.startIndex=t.startIndex||0,this.dimensionsDefine=t.dimensionsDefine,this.dimensionsDetectedCount=t.dimensionsDetectedCount,this.encodeDefine=t.encodeDefine,this.metaRawOption=t.metaRawOption};function Kp(t){return t instanceof qp}function $p(t,e,n,i){n=n||td(t);var r=e.seriesLayoutBy,o=function(t,e,n,i,r){var o,a;if(!t)return{dimensionsDefine:ed(r),startIndex:a,dimensionsDetectedCount:o};if(e===Gc){var s=t;"auto"===i||null==i?nd((function(t){null!=t&&"-"!==t&&(H(t)?null==a&&(a=1):a=0)}),n,s,10):a=Y(i)?i:i?1:0,r||1!==a||(r=[],nd((function(t,e){r[e]=null!=t?t+"":""}),n,s,1/0)),o=r?r.length:n===Zc?s.length:s[0]?s[0].length:null}else if(e===Hc)r||(r=function(t){var e,n=0;for(;n<t.length&&!(e=t[n++]););if(e){var i=[];return P(e,(function(t,e){i.push(e)})),i}}(t));else if(e===Wc)r||(r=[],P(t,(function(t,e){r.push(e)})));else if(e===Fc){var l=wr(t[0]);o=F(l)&&l.length||1}return{startIndex:a,dimensionsDefine:ed(r),dimensionsDetectedCount:o}}(t,n,r,e.sourceHeader,e.dimensions);return new qp({data:t,sourceFormat:n,seriesLayoutBy:r,dimensionsDefine:o.dimensionsDefine,startIndex:o.startIndex,dimensionsDetectedCount:o.dimensionsDetectedCount,encodeDefine:Qp(i),metaRawOption:w(e)})}function Jp(t){return new qp({data:t,sourceFormat:Z(t)?Yc:Fc})}function Qp(t){return t?ht(t):null}function td(t){var e=Xc;if(Z(t))e=Yc;else if(F(t)){0===t.length&&(e=Gc);for(var n=0,i=t.length;n<i;n++){var r=t[n];if(null!=r){if(F(r)){e=Gc;break}if(X(r)){e=Hc;break}}}}else if(X(t))for(var o in t)if(dt(t,o)&&k(t[o])){e=Wc;break}return e}function ed(t){if(t){var e=ht();return O(t,(function(t,n){var i={name:(t=X(t)?t:{name:t}).name,displayName:t.displayName,type:t.type};if(null==i.name)return i;i.name+="",null==i.displayName&&(i.displayName=i.name);var r=e.get(i.name);return r?i.name+="-"+r.count++:e.set(i.name,{count:1}),i}))}}function nd(t,e,n,i){if(e===Zc)for(var r=0;r<n.length&&r<i;r++)t(n[r]?n[r][0]:null,r);else{var o=n[0]||[];for(r=0;r<o.length&&r<i;r++)t(o[r],r)}}var id=function(){function t(t,e){var n=Kp(t)?t:Jp(t);this._source=n;var i=this._data=n.data;n.sourceFormat===Yc&&(this._offset=0,this._dimSize=e,this._data=i),jp(this,i,n)}return t.prototype.getSource=function(){return this._source},t.prototype.count=function(){return 0},t.prototype.getItem=function(t,e){},t.prototype.appendData=function(t){},t.prototype.clean=function(){},t.protoInitialize=function(){var e=t.prototype;e.pure=!1,e.persistent=!0}(),t.internalField=function(){var t;jp=function(t,r,o){var a=o.sourceFormat,s=o.seriesLayoutBy,l=o.startIndex,u=o.dimensionsDefine,h=Zp[dd(a,s)];if(I(t,h),a===Yc)t.getItem=e,t.count=i,t.fillStorage=n;else{var c=ad(a,s);t.getItem=B(c,null,r,l,u);var p=ud(a,s);t.count=B(p,null,r,l,u)}};var e=function(t,e){t-=this._offset,e=e||[];for(var n=this._data,i=this._dimSize,r=i*t,o=0;o<i;o++)e[o]=n[r+o];return e},n=function(t,e,n,i){for(var r=this._data,o=this._dimSize,a=0;a<o;a++){for(var s=i[a],l=null==s[0]?1/0:s[0],u=null==s[1]?-1/0:s[1],h=e-t,c=n[a],p=0;p<h;p++){var d=r[p*o+a];c[t+p]=d,d<l&&(l=d),d>u&&(u=d)}s[0]=l,s[1]=u}},i=function(){return this._data?this._data.length/this._dimSize:0};function r(t){for(var e=0;e<t.length;e++)this._data.push(t[e])}(t={}).arrayRows_column={pure:!0,appendData:r},t.arrayRows_row={pure:!0,appendData:function(){throw new Error('Do not support appendData when set seriesLayoutBy: "row".')}},t.objectRows={pure:!0,appendData:r},t.keyedColumns={pure:!0,appendData:function(t){var e=this._data;P(t,(function(t,n){for(var i=e[n]||(e[n]=[]),r=0;r<(t||[]).length;r++)i.push(t[r])}))}},t.original={appendData:r},t.typedArray={persistent:!1,pure:!0,appendData:function(t){this._data=t},clean:function(){this._offset+=this.count(),this._data=null}},Zp=t}(),t}(),rd=function(t,e,n,i){return t[i]},od=((Yp={}).arrayRows_column=function(t,e,n,i){return t[i+e]},Yp.arrayRows_row=function(t,e,n,i){i+=e;for(var r=[],o=t,a=0;a<o.length;a++){var s=o[a];r.push(s?s[i]:null)}return r},Yp.objectRows=rd,Yp.keyedColumns=function(t,e,n,i){for(var r=[],o=0;o<n.length;o++){var a=n[o].name;0;var s=t[a];r.push(s?s[i]:null)}return r},Yp.original=rd,Yp);function ad(t,e){var n=od[dd(t,e)];return n}var sd=function(t,e,n){return t.length},ld=((Xp={}).arrayRows_column=function(t,e,n){return Math.max(0,t.length-e)},Xp.arrayRows_row=function(t,e,n){var i=t[0];return i?Math.max(0,i.length-e):0},Xp.objectRows=sd,Xp.keyedColumns=function(t,e,n){var i=n[0].name;var r=t[i];return r?r.length:0},Xp.original=sd,Xp);function ud(t,e){var n=ld[dd(t,e)];return n}var hd=function(t,e,n){return null!=e?t[e]:t},cd=((Up={}).arrayRows=hd,Up.objectRows=function(t,e,n){return null!=e?t[n]:t},Up.keyedColumns=hd,Up.original=function(t,e,n){var i=wr(t);return null!=e&&i instanceof Array?i[e]:i},Up.typedArray=hd,Up);function pd(t){var e=cd[t];return e}function dd(t,e){return t===Gc?t+"_"+e:t}function fd(t,e,n){if(t){var i=t.getRawDataItem(e);if(null!=i){var r,o,a=t.getProvider().getSource().sourceFormat,s=t.getDimensionInfo(n);return s&&(r=s.name,o=s.index),pd(a)(i,o,r)}}}var gd=/\{@(.+?)\}/g,yd=function(){function t(){}return t.prototype.getDataParams=function(t,e){var n=this.getData(e),i=this.getRawValue(t,e),r=n.getRawIndex(t),o=n.getName(t),a=n.getRawDataItem(t),s=n.getItemVisual(t,"style"),l=s&&s[n.getItemVisual(t,"drawType")||"fill"],u=s&&s.stroke,h=this.mainType,c="series"===h,p=n.userOutput;return{componentType:h,componentSubType:this.subType,componentIndex:this.componentIndex,seriesType:c?this.subType:null,seriesIndex:this.seriesIndex,seriesId:c?this.id:null,seriesName:c?this.name:null,name:o,dataIndex:r,data:a,dataType:e,value:i,color:l,borderColor:u,dimensionNames:p?p.dimensionNames:null,encode:p?p.encode:null,$vars:["seriesName","name","value"]}},t.prototype.getFormattedLabel=function(t,e,n,i,r,o){e=e||"normal";var a=this.getData(n),s=this.getDataParams(t,n);(o&&(s.value=o.interpolatedValue),null!=i&&F(s.value)&&(s.value=s.value[i]),r)||(r=a.getItemModel(t).get("normal"===e?["label","formatter"]:[e,"label","formatter"]));return"function"==typeof r?(s.status=e,s.dimensionIndex=i,r(s)):"string"==typeof r?_c(r,s).replace(gd,(function(e,n){var i=n.length,r="["===n.charAt(0)&&"]"===n.charAt(i-1)?+n.slice(1,i-1):n,s=fd(a,t,r);if(o&&F(o.interpolatedValue)){var l=a.getDimensionInfo(r);l&&(s=o.interpolatedValue[l.index])}return null!=s?s+"":""})):void 0},t.prototype.getRawValue=function(t,e){return fd(this.getData(e),t)},t.prototype.formatTooltip=function(t,e,n){},t}();function vd(t){var e,n;return X(t)?t.type&&(n=t):e=t,{markupText:e,markupFragment:n}}function md(t){return new _d(t)}var _d=function(){function t(t){t=t||{},this._reset=t.reset,this._plan=t.plan,this._count=t.count,this._onDirty=t.onDirty,this._dirty=!0}return t.prototype.perform=function(t){var e,n=this._upstream,i=t&&t.skip;if(this._dirty&&n){var r=this.context;r.data=r.outputData=n.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this),this._plan&&!i&&(e=this._plan(this.context));var o,a=h(this._modBy),s=this._modDataCount||0,l=h(t&&t.modBy),u=t&&t.modDataCount||0;function h(t){return!(t>=1)&&(t=1),t}a===l&&s===u||(e="reset"),(this._dirty||"reset"===e)&&(this._dirty=!1,o=this._doReset(i)),this._modBy=l,this._modDataCount=u;var c=t&&t.step;if(this._dueEnd=n?n._outputDueEnd:this._count?this._count(this.context):1/0,this._progress){var p=this._dueIndex,d=Math.min(null!=c?this._dueIndex+c:1/0,this._dueEnd);if(!i&&(o||p<d)){var f=this._progress;if(F(f))for(var g=0;g<f.length;g++)this._doProgress(f[g],p,d,l,u);else this._doProgress(f,p,d,l,u)}this._dueIndex=d;var y=null!=this._settedOutputEnd?this._settedOutputEnd:d;0,this._outputDueEnd=y}else this._dueIndex=this._outputDueEnd=null!=this._settedOutputEnd?this._settedOutputEnd:this._dueEnd;return this.unfinished()},t.prototype.dirty=function(){this._dirty=!0,this._onDirty&&this._onDirty(this.context)},t.prototype._doProgress=function(t,e,n,i,r){xd.reset(e,n,i,r),this._callingProgress=t,this._callingProgress({start:e,end:n,count:n-e,next:xd.next},this.context)},t.prototype._doReset=function(t){var e,n;this._dueIndex=this._outputDueEnd=this._dueEnd=0,this._settedOutputEnd=null,!t&&this._reset&&((e=this._reset(this.context))&&e.progress&&(n=e.forceFirstProgress,e=e.progress),F(e)&&!e.length&&(e=null)),this._progress=e,this._modBy=this._modDataCount=null;var i=this._downstream;return i&&i.dirty(),n},t.prototype.unfinished=function(){return this._progress&&this._dueIndex<this._dueEnd},t.prototype.pipe=function(t){(this._downstream!==t||this._dirty)&&(this._downstream=t,t._upstream=this,t.dirty())},t.prototype.dispose=function(){this._disposed||(this._upstream&&(this._upstream._downstream=null),this._downstream&&(this._downstream._upstream=null),this._dirty=!1,this._disposed=!0)},t.prototype.getUpstream=function(){return this._upstream},t.prototype.getDownstream=function(){return this._downstream},t.prototype.setOutputEnd=function(t){this._outputDueEnd=this._settedOutputEnd=t},t}(),xd=function(){var t,e,n,i,r,o={reset:function(l,u,h,c){e=l,t=u,n=h,i=c,r=Math.ceil(i/n),o.next=n>1&&i>0?s:a}};return o;function a(){return e<t?e++:null}function s(){var o=e%r*n+Math.ceil(e/r),a=e>=t?null:o<i?o:e;return e++,a}}();function bd(t,e){var n=e&&e.type;if("ordinal"===n){var i=e&&e.ordinalMeta;return i?i.parseAndCollect(t):t}return"time"===n&&"number"!=typeof t&&null!=t&&"-"!==t&&(t=+rr(t)),null==t||""===t?NaN:+t}var wd=ht({number:function(t){return parseFloat(t)},time:function(t){return+rr(t)},trim:function(t){return"string"==typeof t?ot(t):t}});function Sd(t){return wd.get(t)}var Md={lt:function(t,e){return t<e},lte:function(t,e){return t<=e},gt:function(t,e){return t>e},gte:function(t,e){return t>=e}},Id=function(){function t(t,e){if("number"!=typeof e){var n="";0,yr(n)}this._opFn=Md[t],this._rvalFloat=hr(e)}return t.prototype.evaluate=function(t){return"number"==typeof t?this._opFn(t,this._rvalFloat):this._opFn(hr(t),this._rvalFloat)},t}(),Td=function(){function t(t,e){var n="desc"===t;this._resultLT=n?1:-1,null==e&&(e=n?"min":"max"),this._incomparable="min"===e?-1/0:1/0}return t.prototype.evaluate=function(t,e){var n=typeof t,i=typeof e,r="number"===n?t:hr(t),o="number"===i?e:hr(e),a=isNaN(r),s=isNaN(o);if(a&&(r=this._incomparable),s&&(o=this._incomparable),a&&s){var l="string"===n,u="string"===i;l&&(r=u?t:0),u&&(o=l?e:0)}return r<o?this._resultLT:r>o?-this._resultLT:0},t}(),Cd=function(){function t(t,e){this._rval=e,this._isEQ=t,this._rvalTypeof=typeof e,this._rvalFloat=hr(e)}return t.prototype.evaluate=function(t){var e=t===this._rval;if(!e){var n=typeof t;n===this._rvalTypeof||"number"!==n&&"number"!==this._rvalTypeof||(e=hr(t)===this._rvalFloat)}return this._isEQ?e:!e},t}();function Ad(t,e){return"eq"===t||"ne"===t?new Cd("eq"===t,e):dt(Md,t)?new Id(t,e):null}var Dd=function(){function t(){}return t.prototype.getRawData=function(){throw new Error("not supported")},t.prototype.getRawDataItem=function(t){throw new Error("not supported")},t.prototype.cloneRawData=function(){},t.prototype.getDimensionInfo=function(t){},t.prototype.cloneAllDimensionInfo=function(){},t.prototype.count=function(){},t.prototype.retrieveValue=function(t,e){},t.prototype.retrieveValueFromItem=function(t,e){},t.prototype.convertValue=function(t,e){return bd(t,e)},t}();function Ld(t){var e=t.sourceFormat;if(!Ed(e)){var n="";0,yr(n)}return t.data}function kd(t){var e=t.sourceFormat,n=t.data;if(!Ed(e)){var i="";0,yr(i)}if(e===Gc){for(var r=[],o=0,a=n.length;o<a;o++)r.push(n[o].slice());return r}if(e===Hc){for(r=[],o=0,a=n.length;o<a;o++)r.push(I({},n[o]));return r}}function Pd(t,e,n){if(null!=n)return"number"==typeof n||!isNaN(n)&&!dt(e,n)?t[n]:dt(e,n)?e[n]:void 0}function Od(t){return w(t)}var Rd=ht();function Nd(t,e,n,i){var r="";e.length||yr(r),X(t)||yr(r);var o=t.type,a=Rd.get(o);a||yr(r);var s=O(e,(function(t){return function(t,e){var n=new Dd,i=t.data,r=n.sourceFormat=t.sourceFormat,o=t.startIndex,a="";t.seriesLayoutBy!==Uc&&yr(a);var s=[],l={},u=t.dimensionsDefine;if(u)P(u,(function(t,e){var n=t.name,i={index:e,name:n,displayName:t.displayName};if(s.push(i),null!=n){var r="";dt(l,n)&&yr(r),l[n]=i}}));else for(var h=0;h<t.dimensionsDetectedCount;h++)s.push({index:h});var c=ad(r,Uc);e.__isBuiltIn&&(n.getRawDataItem=function(t){return c(i,o,s,t)},n.getRawData=B(Ld,null,t)),n.cloneRawData=B(kd,null,t);var p=ud(r,Uc);n.count=B(p,null,i,o,s);var d=pd(r);n.retrieveValue=function(t,e){var n=c(i,o,s,t);return f(n,e)};var f=n.retrieveValueFromItem=function(t,e){if(null!=t){var n=s[e];return n?d(t,e,n.name):void 0}};return n.getDimensionInfo=B(Pd,null,s,l),n.cloneAllDimensionInfo=B(Od,null,s),n}(t,a)})),l=_r(a.transform({upstream:s[0],upstreamList:s,config:w(t.config)}));return O(l,(function(t,n){var i,r="";X(t)||yr(r),t.data||yr(r),Ed(td(t.data))||yr(r);var o=e[0];if(o&&0===n&&!t.dimensions){var a=o.startIndex;a&&(t.data=o.data.slice(0,a).concat(t.data)),i={seriesLayoutBy:Uc,sourceHeader:a,dimensions:o.metaRawOption.dimensions}}else i={seriesLayoutBy:Uc,sourceHeader:0,dimensions:t.dimensions};return $p(t.data,i,null,null)}))}function Ed(t){return t===Gc||t===Hc}var zd=function(){function t(t){this._sourceList=[],this._upstreamSignList=[],this._versionSignBase=0,this._sourceHost=t}return t.prototype.dirty=function(){this._setLocalSource([],[])},t.prototype._setLocalSource=function(t,e){this._sourceList=t,this._upstreamSignList=e,this._versionSignBase++,this._versionSignBase>9e10&&(this._versionSignBase=0)},t.prototype._getVersionSign=function(){return this._sourceHost.uid+"_"+this._versionSignBase},t.prototype.prepareSource=function(){this._isDirty()&&this._createSource()},t.prototype._createSource=function(){this._setLocalSource([],[]);var t,e,n=this._sourceHost,i=this._getUpstreamSourceManagers(),r=!!i.length;if(Vd(n)){var o=n,a=void 0,s=void 0,l=void 0;if(r){var u=i[0];u.prepareSource(),a=(l=u.getSource()).data,s=l.sourceFormat,e=[u._getVersionSign()]}else s=Z(a=o.get("data",!0))?Yc:Fc,e=[];var h=this._getSourceMetaRawOption(),c=l?l.metaRawOption:null;t=[$p(a,{seriesLayoutBy:tt(h.seriesLayoutBy,c?c.seriesLayoutBy:null),sourceHeader:tt(h.sourceHeader,c?c.sourceHeader:null),dimensions:tt(h.dimensions,c?c.dimensions:null)},s,o.get("encode",!0))]}else{var p=n;if(r){var d=this._applyTransform(i);t=d.sourceList,e=d.upstreamSignList}else{t=[$p(p.get("source",!0),this._getSourceMetaRawOption(),null,null)],e=[]}}this._setLocalSource(t,e)},t.prototype._applyTransform=function(t){var e,n=this._sourceHost,i=n.get("transform",!0),r=n.get("fromTransformResult",!0);if(null!=r){var o="";1!==t.length&&Fd(o)}var a,s=[],l=[];return P(t,(function(t){t.prepareSource();var e=t.getSource(r||0),n="";null==r||e||Fd(n),s.push(e),l.push(t._getVersionSign())})),i?e=function(t,e,n){var i=_r(t),r=i.length,o="";r||yr(o);for(var a=0,s=r;a<s;a++)e=Nd(i[a],e),a!==s-1&&(e.length=Math.max(e.length,1));return e}(i,s,n.componentIndex):null!=r&&(e=[(a=s[0],new qp({data:a.data,sourceFormat:a.sourceFormat,seriesLayoutBy:a.seriesLayoutBy,dimensionsDefine:w(a.dimensionsDefine),startIndex:a.startIndex,dimensionsDetectedCount:a.dimensionsDetectedCount,encodeDefine:Qp(a.encodeDefine)}))]),{sourceList:e,upstreamSignList:l}},t.prototype._isDirty=function(){if(!this._sourceList.length)return!0;for(var t=this._getUpstreamSourceManagers(),e=0;e<t.length;e++){var n=t[e];if(n._isDirty()||this._upstreamSignList[e]!==n._getVersionSign())return!0}},t.prototype.getSource=function(t){return this._sourceList[t||0]},t.prototype._getUpstreamSourceManagers=function(){var t=this._sourceHost;if(Vd(t)){var e=tp(t);return e?[e.getSourceManager()]:[]}return O(function(t){return t.get("transform",!0)||t.get("fromTransformResult",!0)?Nr(t.ecModel,"dataset",{index:t.get("fromDatasetIndex",!0),id:t.get("fromDatasetId",!0)},Or).models:[]}(t),(function(t){return t.getSourceManager()}))},t.prototype._getSourceMetaRawOption=function(){var t,e,n,i=this._sourceHost;if(Vd(i))t=i.get("seriesLayoutBy",!0),e=i.get("sourceHeader",!0),n=i.get("dimensions",!0);else if(!this._getUpstreamSourceManagers().length){var r=i;t=r.get("seriesLayoutBy",!0),e=r.get("sourceHeader",!0),n=r.get("dimensions",!0)}return{seriesLayoutBy:t,sourceHeader:e,dimensions:n}},t}();function Bd(t){t.option.transform&&st(t.option.transform)}function Vd(t){return"series"===t.mainType}function Fd(t){throw new Error(t)}function Gd(t,e){var n=t.color||"#6e7079",i=t.fontSize||12,r=t.fontWeight||"400",o=t.color||"#464646",a=t.fontSize||14,s=t.fontWeight||"900";return"html"===e?{nameStyle:"font-size:"+i+"px;color:"+n+";font-weight:"+r,valueStyle:"font-size:"+a+"px;color:"+o+";font-weight:"+s}:{nameStyle:{fontSize:i,fill:n,fontWeight:r},valueStyle:{fontSize:a,fill:o,fontWeight:s}}}var Hd=[0,10,20,30],Wd=["","\n","\n\n","\n\n\n"];function Yd(t,e){return e.type=t,e}function Xd(t){return dt(Ud,t.type)&&Ud[t.type]}var Ud={section:{planLayout:function(t){var e=t.blocks.length,n=e>1||e>0&&!t.noHeader,i=0;P(t.blocks,(function(t){Xd(t).planLayout(t);var e=t.__gapLevelBetweenSubBlocks;e>=i&&(i=e+(!n||e&&("section"!==t.type||t.noHeader)?0:1))})),t.__gapLevelBetweenSubBlocks=i},build:function(t,e,n,i){var r=e.noHeader,o=jd(e),a=function(t,e,n,i){var r=[],o=e.blocks||[];rt(!o||F(o)),o=o||[];var a=t.orderMode;if(e.sortBlocks&&a){o=o.slice();var s={valueAsc:"asc",valueDesc:"desc"};if(dt(s,a)){var l=new Td(s[a],null);o.sort((function(t,e){return l.evaluate(t.sortParam,e.sortParam)}))}else"seriesDesc"===a&&o.reverse()}var u=jd(e);if(P(o,(function(e,n){var o=Xd(e).build(t,e,n>0?u.html:0,i);null!=o&&r.push(o)})),!r.length)return;return"richText"===t.renderMode?r.join(u.richText):qd(r.join(""),n)}(t,e,r?n:o.html,i);if(r)return a;var s=yc(e.header,"ordinal",t.useUTC),l=Gd(i,t.renderMode).nameStyle;return"richText"===t.renderMode?Kd(t,s,l)+o.richText+a:qd('<div style="'+l+";"+'line-height:1;">'+gc(s)+"</div>"+a,n)}},nameValue:{planLayout:function(t){t.__gapLevelBetweenSubBlocks=0},build:function(t,e,n,i){var r=t.renderMode,o=e.noName,a=e.noValue,s=!e.markerType,l=e.name,u=e.value,h=t.useUTC;if(!o||!a){var c=s?"":t.markupStyleCreator.makeTooltipMarker(e.markerType,e.markerColor||"#333",r),p=o?"":yc(l,"ordinal",h),d=e.valueType,f=a?[]:F(u)?O(u,(function(t,e){return yc(t,F(d)?d[e]:d,h)})):[yc(u,F(d)?d[0]:d,h)],g=!s||!o,y=!s&&o,v=Gd(i,r),m=v.nameStyle,_=v.valueStyle;return"richText"===r?(s?"":c)+(o?"":Kd(t,p,m))+(a?"":function(t,e,n,i,r){var o=[r],a=i?10:20;return n&&o.push({padding:[0,0,0,a],align:"right"}),t.markupStyleCreator.wrapRichTextStyle(e.join("  "),o)}(t,f,g,y,_)):qd((s?"":c)+(o?"":function(t,e,n){return'<span style="'+n+";"+(e?"margin-left:2px":"")+'">'+gc(t)+"</span>"}(p,!s,m))+(a?"":function(t,e,n,i){var r=n?"10px":"20px";return'<span style="'+(e?"float:right;margin-left:"+r:"")+";"+i+'">'+O(t,(function(t){return gc(t)})).join("&nbsp;&nbsp;")+"</span>"}(f,g,y,_)),n)}}}};function Zd(t,e,n,i,r,o){if(t){var a=Xd(t);a.planLayout(t);var s={useUTC:r,renderMode:n,orderMode:i,markupStyleCreator:e};return a.build(s,t,0,o)}}function jd(t){var e=t.__gapLevelBetweenSubBlocks;return{html:Hd[e],richText:Wd[e]}}function qd(t,e){return'<div style="'+("margin: "+e+"px 0 0")+";"+'line-height:1;">'+t+'<div style="clear:both"></div></div>'}function Kd(t,e,n){return t.markupStyleCreator.wrapRichTextStyle(e,n)}function $d(t,e){return bc(t.getData().getItemVisual(e,"style")[t.visualDrawType])}function Jd(t,e){var n=t.get("padding");return null!=n?n:"richText"===e?[8,10]:10}var Qd=function(){function t(){this.richTextStyles={},this._nextStyleNameId=pr()}return t.prototype._generateStyleName=function(){return"__EC_aUTo_"+this._nextStyleNameId++},t.prototype.makeTooltipMarker=function(t,e,n){var i="richText"===n?this._generateStyleName():null,r=xc({color:e,type:t,renderMode:n,markerId:i});return H(r)?r:(this.richTextStyles[i]=r.style,r.content)},t.prototype.wrapRichTextStyle=function(t,e){var n={};F(e)?P(e,(function(t){return I(n,t)})):I(n,e);var i=this._generateStyleName();return this.richTextStyles[i]=n,"{"+i+"|"+t+"}"},t}();function tf(t){var e,n,i,r,o=t.series,a=t.dataIndex,s=t.multipleSeries,l=o.getData(),u=l.mapDimensionsAll("defaultedTooltip"),h=u.length,c=o.getRawValue(a),p=F(c),d=$d(o,a);if(h>1||p&&!h){var f=function(t,e,n,i,r){var o=e.getData(),a=R(t,(function(t,e,n){var i=o.getDimensionInfo(n);return t||i&&!1!==i.tooltip&&null!=i.displayName}),!1),s=[],l=[],u=[];function h(t,e){var n=o.getDimensionInfo(e);n&&!1!==n.otherDims.tooltip&&(a?u.push(Yd("nameValue",{markerType:"subItem",markerColor:r,name:n.displayName,value:t,valueType:n.type})):(s.push(t),l.push(n.type)))}return i.length?P(i,(function(t){h(fd(o,n,t),t)})):P(t,h),{inlineValues:s,inlineValueTypes:l,blocks:u}}(c,o,a,u,d);e=f.inlineValues,n=f.inlineValueTypes,i=f.blocks,r=f.inlineValues[0]}else if(h){var g=l.getDimensionInfo(u[0]);r=e=fd(l,a,u[0]),n=g.type}else r=e=p?c[0]:c;var y=Cr(o),v=y&&o.name||"",m=l.getName(a),_=s?v:m;return Yd("section",{header:v,noHeader:s||!y,sortParam:r,blocks:[Yd("nameValue",{markerType:"item",markerColor:d,name:_,noName:!ot(_),value:e,valueType:n})].concat(i||[])})}var ef=Lr();function nf(t,e){return t.getName(e)||t.getId(e)}var rf=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._selectedDataIndicesMap={},e}return n(e,t),e.prototype.init=function(t,e,n){this.seriesIndex=this.componentIndex,this.dataTask=md({count:af,reset:sf}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(t,n),(ef(this).sourceManager=new zd(this)).prepareSource();var i=this.getInitialData(t,n);uf(i,this),this.dataTask.context.data=i,ef(this).dataBeforeProcessed=i,of(this),this._initSelectedMapFromData(i)},e.prototype.mergeDefaultAndTheme=function(t,e){var n=Lc(this),i=n?Pc(t):{},r=this.subType;Nc.hasClass(r)&&(r+="Series"),S(t,e.getTheme().get(this.subType)),S(t,this.getDefaultOption()),xr(t,"label",["show"]),this.fillDataTextStyle(t.data),n&&kc(t,i,n)},e.prototype.mergeOption=function(t,e){t=S(this.option,t,!0),this.fillDataTextStyle(t.data);var n=Lc(this);n&&kc(this.option,t,n);var i=ef(this).sourceManager;i.dirty(),i.prepareSource();var r=this.getInitialData(t,e);uf(r,this),this.dataTask.dirty(),this.dataTask.context.data=r,ef(this).dataBeforeProcessed=r,of(this),this._initSelectedMapFromData(r)},e.prototype.fillDataTextStyle=function(t){if(t&&!Z(t))for(var e=["show"],n=0;n<t.length;n++)t[n]&&t[n].label&&xr(t[n],"label",e)},e.prototype.getInitialData=function(t,e){},e.prototype.appendData=function(t){this.getRawData().appendData(t.data)},e.prototype.getData=function(t){var e=cf(this);if(e){var n=e.context.data;return null==t?n:n.getLinkedData(t)}return ef(this).data},e.prototype.getAllData=function(){var t=this.getData();return t&&t.getLinkedDataAll?t.getLinkedDataAll():[{data:t}]},e.prototype.setData=function(t){var e=cf(this);if(e){var n=e.context;n.outputData=t,e!==this.dataTask&&(n.data=t)}ef(this).data=t},e.prototype.getSource=function(){return ef(this).sourceManager.getSource()},e.prototype.getRawData=function(){return ef(this).dataBeforeProcessed},e.prototype.getBaseAxis=function(){var t=this.coordinateSystem;return t&&t.getBaseAxis&&t.getBaseAxis()},e.prototype.formatTooltip=function(t,e,n){return tf({series:this,dataIndex:t,multipleSeries:e})},e.prototype.isAnimationEnabled=function(){if(a.node)return!1;var t=this.getShallow("animation");return t&&this.getData().count()>this.getShallow("animationThreshold")&&(t=!1),!!t},e.prototype.restoreData=function(){this.dataTask.dirty()},e.prototype.getColorFromPalette=function(t,e,n){var i=this.ecModel,r=up.prototype.getColorFromPalette.call(this,t,e,n);return r||(r=i.getColorFromPalette(t,e,n)),r},e.prototype.coordDimToDataDim=function(t){return this.getRawData().mapDimensionsAll(t)},e.prototype.getProgressive=function(){return this.get("progressive")},e.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},e.prototype.select=function(t,e){this._innerSelect(this.getData(e),t)},e.prototype.unselect=function(t,e){var n=this.option.selectedMap;if(n)for(var i=this.getData(e),r=0;r<t.length;r++){var o=nf(i,t[r]);n[o]=!1,this._selectedDataIndicesMap[o]=-1}},e.prototype.toggleSelect=function(t,e){for(var n=[],i=0;i<t.length;i++)n[0]=t[i],this.isSelected(t[i],e)?this.unselect(n,e):this.select(n,e)},e.prototype.getSelectedDataIndices=function(){for(var t=this._selectedDataIndicesMap,e=z(t),n=[],i=0;i<e.length;i++){var r=t[e[i]];r>=0&&n.push(r)}return n},e.prototype.isSelected=function(t,e){var n=this.option.selectedMap;return n&&n[nf(this.getData(e),t)]||!1},e.prototype._innerSelect=function(t,e){var n,i,r=this.option.selectedMode,o=e.length;if(r&&o)if("multiple"===r)for(var a=this.option.selectedMap||(this.option.selectedMap={}),s=0;s<o;s++){var l=e[s];a[h=nf(t,l)]=!0,this._selectedDataIndicesMap[h]=t.getRawIndex(l)}else if("single"===r||!0===r){var u=e[o-1],h=nf(t,u);this.option.selectedMap=((n={})[h]=!0,n),this._selectedDataIndicesMap=((i={})[h]=t.getRawIndex(u),i)}},e.prototype._initSelectedMapFromData=function(t){if(!this.option.selectedMap){var e=[];t.hasItemOption&&t.each((function(n){var i=t.getRawDataItem(n);"object"==typeof i&&i.selected&&e.push(n)})),e.length>0&&this._innerSelect(t,e)}},e.registerClass=function(t){return Nc.registerClass(t)},e.protoInitialize=function(){var t=e.prototype;t.type="series.__base__",t.seriesIndex=0,t.useColorPaletteOnData=!1,t.ignoreStyleOnData=!1,t.hasSymbolVisual=!1,t.defaultSymbol="circle",t.visualStyleAccessPath="itemStyle",t.visualDrawType="fill"}(),e}(Nc);function of(t){var e=t.name;Cr(t)||(t.name=function(t){var e=t.getRawData(),n=e.mapDimensionsAll("seriesName"),i=[];return P(n,(function(t){var n=e.getDimensionInfo(t);n.displayName&&i.push(n.displayName)})),i.join(" ")}(t)||e)}function af(t){return t.model.getRawData().count()}function sf(t){var e=t.model;return e.setData(e.getRawData().cloneShallow()),lf}function lf(t,e){e.outputData&&t.end>e.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function uf(t,e){P(r(t.CHANGABLE_METHODS,t.DOWNSAMPLE_METHODS),(function(n){t.wrapMethod(n,V(hf,e))}))}function hf(t,e){var n=cf(t);return n&&n.setOutputEnd((e||this).count()),e}function cf(t){var e=(t.ecModel||{}).scheduler,n=e&&e.getPipeline(t.uid);if(n){var i=n.currentTask;if(i){var r=i.agentStubMap;r&&(i=r.get(t.uid))}return i}}L(rf,yd),L(rf,up),Yr(rf,Nc);var pf=function(){function t(){this.group=new zi,this.uid=Ih("viewComponent")}return t.prototype.init=function(t,e){},t.prototype.render=function(t,e,n,i){},t.prototype.dispose=function(t,e){},t.prototype.updateView=function(t,e,n,i){},t.prototype.updateLayout=function(t,e,n,i){},t.prototype.updateVisual=function(t,e,n,i){},t.prototype.blurSeries=function(t,e){},t}();function df(){var t=Lr();return function(e){var n=t(e),i=e.pipelineContext,r=!!n.large,o=!!n.progressiveRender,a=n.large=!(!i||!i.large),s=n.progressiveRender=!(!i||!i.progressiveRender);return!(r===a&&o===s)&&"reset"}}Hr(pf),jr(pf);var ff=Lr(),gf=df(),yf=function(){function t(){this.group=new zi,this.uid=Ih("viewChart"),this.renderTask=md({plan:_f,reset:xf}),this.renderTask.context={view:this}}return t.prototype.init=function(t,e){},t.prototype.render=function(t,e,n,i){},t.prototype.highlight=function(t,e,n,i){mf(t.getData(),i,"emphasis")},t.prototype.downplay=function(t,e,n,i){mf(t.getData(),i,"normal")},t.prototype.remove=function(t,e){this.group.removeAll()},t.prototype.dispose=function(t,e){},t.prototype.updateView=function(t,e,n,i){this.render(t,e,n,i)},t.prototype.updateLayout=function(t,e,n,i){this.render(t,e,n,i)},t.prototype.updateVisual=function(t,e,n,i){this.render(t,e,n,i)},t.markUpdateMethod=function(t,e){ff(t).updateMethod=e},t.protoInitialize=void(t.prototype.type="chart"),t}();function vf(t,e,n){t&&("emphasis"===e?Hs:Ws)(t,n)}function mf(t,e,n){var i=Dr(t,e),r=e&&null!=e.highlightKey?function(t){var e=ms[t];return null==e&&vs<=32&&(e=ms[t]=vs++),e}(e.highlightKey):null;null!=i?P(_r(i),(function(e){vf(t.getItemGraphicEl(e),n,r)})):t.eachItemGraphicEl((function(t){vf(t,n,r)}))}function _f(t){return gf(t.model)}function xf(t){var e=t.model,n=t.ecModel,i=t.api,r=t.payload,o=e.pipelineContext.progressiveRender,a=t.view,s=r&&ff(r).updateMethod,l=o?"incrementalPrepareRender":s&&a[s]?s:"render";return"render"!==l&&a[l](e,n,i,r),bf[l]}Hr(yf),jr(yf);var bf={incrementalPrepareRender:{progress:function(t,e){e.view.incrementalRender(t,e.model,e.ecModel,e.api,e.payload)}},render:{forceFirstProgress:!0,progress:function(t,e){e.view.render(e.model,e.ecModel,e.api,e.payload)}}},wf="\0__throttleOriginMethod",Sf="\0__throttleRate",Mf="\0__throttleType";function If(t,e,n){var i,r,o,a,s,l=0,u=0,h=null;function c(){u=(new Date).getTime(),h=null,t.apply(o,a||[])}e=e||0;var p=function(){for(var t=[],p=0;p<arguments.length;p++)t[p]=arguments[p];i=(new Date).getTime(),o=this,a=t;var d=s||e,f=s||n;s=null,r=i-(f?l:u)-d,clearTimeout(h),f?h=setTimeout(c,d):r>=0?c():h=setTimeout(c,-r),l=i};return p.clear=function(){h&&(clearTimeout(h),h=null)},p.debounceNextCall=function(t){s=t},p}function Tf(t,e,n,i){var r=t[e];if(r){var o=r[wf]||r,a=r[Mf];if(r[Sf]!==n||a!==i){if(null==n||!i)return t[e]=o;(r=t[e]=If(o,n,"debounce"===i))[wf]=o,r[Mf]=i,r[Sf]=n}return r}}var Cf=Lr(),Af={itemStyle:qr(xh,!0),lineStyle:qr(vh,!0)},Df={lineStyle:"stroke",itemStyle:"fill"};function Lf(t,e){var n=t.visualStyleMapper||Af[e];return n||(console.warn("Unkown style type '"+e+"'."),Af.itemStyle)}function kf(t,e){var n=t.visualDrawType||Df[e];return n||(console.warn("Unkown style type '"+e+"'."),"fill")}var Pf={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var n=t.getData(),i=t.visualStyleAccessPath||"itemStyle",r=t.getModel(i),o=Lf(t,i)(r),a=r.getShallow("decal");a&&(n.setVisual("decal",a),a.dirty=!0);var s=kf(t,i),l=o[s],u=G(l)?l:null;if(o[s]&&!u||(o[s]=t.getColorFromPalette(t.name,null,e.getSeriesCount()),n.setVisual("colorFromPalette",!0)),n.setVisual("style",o),n.setVisual("drawType",s),!e.isSeriesFiltered(t)&&u)return n.setVisual("colorFromPalette",!1),{dataEach:function(e,n){var i=t.getDataParams(n),r=I({},o);r[s]=u(i),e.setItemVisual(n,"style",r)}}}},Of=new Sh,Rf={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){if(!t.ignoreStyleOnData&&!e.isSeriesFiltered(t)){var n=t.getData(),i=t.visualStyleAccessPath||"itemStyle",r=Lf(t,i),o=n.getVisual("drawType");return{dataEach:n.hasItemOption?function(t,e){var n=t.getRawDataItem(e);if(n&&n[i]){Of.option=n[i];var a=r(Of);I(t.ensureUniqueItemVisual(e,"style"),a),Of.option.decal&&(t.setItemVisual(e,"decal",Of.option.decal),Of.option.decal.dirty=!0),o in a&&t.setItemVisual(e,"colorFromPalette",!1)}}:null}}}},Nf={performRawSeries:!0,overallReset:function(t){var e=ht();t.eachSeries((function(t){if(t.useColorPaletteOnData){var n=e.get(t.type);n||(n={},e.set(t.type,n)),Cf(t).scope=n}})),t.eachSeries((function(e){if(e.useColorPaletteOnData&&!t.isSeriesFiltered(e)){var n=e.getRawData(),i={},r=e.getData(),o=Cf(e).scope,a=e.visualStyleAccessPath||"itemStyle",s=kf(e,a);r.each((function(t){var e=r.getRawIndex(t);i[e]=t})),n.each((function(t){var a=i[t];if(r.getItemVisual(a,"colorFromPalette")){var l=r.ensureUniqueItemVisual(a,"style"),u=n.getName(t)||t+"",h=n.count();l[s]=e.getColorFromPalette(u,o,h)}}))}}))}},Ef=Math.PI;var zf=function(){function t(t,e,n,i){this._stageTaskMap=ht(),this.ecInstance=t,this.api=e,n=this._dataProcessorHandlers=n.slice(),i=this._visualHandlers=i.slice(),this._allHandlers=n.concat(i)}return t.prototype.restoreData=function(t,e){t.restoreData(e),this._stageTaskMap.each((function(t){var e=t.overallTask;e&&e.dirty()}))},t.prototype.getPerformArgs=function(t,e){if(t.__pipeline){var n=this._pipelineMap.get(t.__pipeline.id),i=n.context,r=!e&&n.progressiveEnabled&&(!i||i.progressiveRender)&&t.__idxInPipeline>n.blockIndex?n.step:null,o=i&&i.modDataCount;return{step:r,modBy:null!=o?Math.ceil(o/r):null,modDataCount:o}}},t.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},t.prototype.updateStreamModes=function(t,e){var n=this._pipelineMap.get(t.uid),i=t.getData().count(),r=n.progressiveEnabled&&e.incrementalPrepareRender&&i>=n.threshold,o=t.get("large")&&i>=t.get("largeThreshold"),a="mod"===t.get("progressiveChunkMode")?i:null;t.pipelineContext=n.context={progressiveRender:r,modDataCount:a,large:o}},t.prototype.restorePipelines=function(t){var e=this,n=e._pipelineMap=ht();t.eachSeries((function(t){var i=t.getProgressive(),r=t.uid;n.set(r,{id:r,head:null,tail:null,threshold:t.getProgressiveThreshold(),progressiveEnabled:i&&!(t.preventIncremental&&t.preventIncremental()),blockIndex:-1,step:Math.round(i||700),count:0}),e._pipe(t,t.dataTask)}))},t.prototype.prepareStageTasks=function(){var t=this._stageTaskMap,e=this.api.getModel(),n=this.api;P(this._allHandlers,(function(i){var r=t.get(i.uid)||t.set(i.uid,{}),o="";rt(!(i.reset&&i.overallReset),o),i.reset&&this._createSeriesStageTask(i,r,e,n),i.overallReset&&this._createOverallStageTask(i,r,e,n)}),this)},t.prototype.prepareView=function(t,e,n,i){var r=t.renderTask,o=r.context;o.model=e,o.ecModel=n,o.api=i,r.__block=!t.incrementalPrepareRender,this._pipe(e,r)},t.prototype.performDataProcessorTasks=function(t,e){this._performStageTasks(this._dataProcessorHandlers,t,e,{block:!0})},t.prototype.performVisualTasks=function(t,e,n){this._performStageTasks(this._visualHandlers,t,e,n)},t.prototype._performStageTasks=function(t,e,n,i){i=i||{};var r=!1,o=this;function a(t,e){return t.setDirty&&(!t.dirtyMap||t.dirtyMap.get(e.__pipeline.id))}P(t,(function(t,s){if(!i.visualType||i.visualType===t.visualType){var l=o._stageTaskMap.get(t.uid),u=l.seriesTaskMap,h=l.overallTask;if(h){var c,p=h.agentStubMap;p.each((function(t){a(i,t)&&(t.dirty(),c=!0)})),c&&h.dirty(),o.updatePayload(h,n);var d=o.getPerformArgs(h,i.block);p.each((function(t){t.perform(d)})),h.perform(d)&&(r=!0)}else u&&u.each((function(s,l){a(i,s)&&s.dirty();var u=o.getPerformArgs(s,i.block);u.skip=!t.performRawSeries&&e.isSeriesFiltered(s.context.model),o.updatePayload(s,n),s.perform(u)&&(r=!0)}))}})),this.unfinished=r||this.unfinished},t.prototype.performSeriesTasks=function(t){var e;t.eachSeries((function(t){e=t.dataTask.perform()||e})),this.unfinished=e||this.unfinished},t.prototype.plan=function(){this._pipelineMap.each((function(t){var e=t.tail;do{if(e.__block){t.blockIndex=e.__idxInPipeline;break}e=e.getUpstream()}while(e)}))},t.prototype.updatePayload=function(t,e){"remain"!==e&&(t.context.payload=e)},t.prototype._createSeriesStageTask=function(t,e,n,i){var r=this,o=e.seriesTaskMap,a=e.seriesTaskMap=ht(),s=t.seriesType,l=t.getTargetSeries;function u(e){var s=e.uid,l=a.set(s,o&&o.get(s)||md({plan:Hf,reset:Wf,count:Uf}));l.context={model:e,ecModel:n,api:i,useClearVisual:t.isVisual&&!t.isLayout,plan:t.plan,reset:t.reset,scheduler:r},r._pipe(e,l)}t.createOnAllSeries?n.eachRawSeries(u):s?n.eachRawSeriesByType(s,u):l&&l(n,i).each(u)},t.prototype._createOverallStageTask=function(t,e,n,i){var r=this,o=e.overallTask=e.overallTask||md({reset:Bf});o.context={ecModel:n,api:i,overallReset:t.overallReset,scheduler:r};var a=o.agentStubMap,s=o.agentStubMap=ht(),l=t.seriesType,u=t.getTargetSeries,h=!0,c=!1,p="";function d(t){var e=t.uid,n=s.set(e,a&&a.get(e)||(c=!0,md({reset:Vf,onDirty:Gf})));n.context={model:t,overallProgress:h},n.agent=o,n.__block=h,r._pipe(t,n)}rt(!t.createOnAllSeries,p),l?n.eachRawSeriesByType(l,d):u?u(n,i).each(d):(h=!1,P(n.getSeries(),d)),c&&o.dirty()},t.prototype._pipe=function(t,e){var n=t.uid,i=this._pipelineMap.get(n);!i.head&&(i.head=e),i.tail&&i.tail.pipe(e),i.tail=e,e.__idxInPipeline=i.count++,e.__pipeline=i},t.wrapStageHandler=function(t,e){return G(t)&&(t={overallReset:t,seriesType:Zf(t)}),t.uid=Ih("stageHandler"),e&&(t.visualType=e),t},t}();function Bf(t){t.overallReset(t.ecModel,t.api,t.payload)}function Vf(t){return t.overallProgress&&Ff}function Ff(){this.agent.dirty(),this.getDownstream().dirty()}function Gf(){this.agent&&this.agent.dirty()}function Hf(t){return t.plan?t.plan(t.model,t.ecModel,t.api,t.payload):null}function Wf(t){t.useClearVisual&&t.data.clearAllVisual();var e=t.resetDefines=_r(t.reset(t.model,t.ecModel,t.api,t.payload));return e.length>1?O(e,(function(t,e){return Xf(e)})):Yf}var Yf=Xf(0);function Xf(t){return function(e,n){var i=n.data,r=n.resetDefines[t];if(r&&r.dataEach)for(var o=e.start;o<e.end;o++)r.dataEach(i,o);else r&&r.progress&&r.progress(e,i)}}function Uf(t){return t.data.count()}function Zf(t){jf=null;try{t(qf,Kf)}catch(t){}return jf}var jf,qf={},Kf={};function $f(t,e){for(var n in e.prototype)t[n]=ft}$f(qf,pp),$f(Kf,vp),qf.eachSeriesByType=qf.eachRawSeriesByType=function(t){jf=t},qf.eachComponent=function(t){"series"===t.mainType&&t.subType&&(jf=t.subType)};var Jf=["#37A2DA","#32C5E9","#67E0E3","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#E062AE","#E690D1","#e7bcf3","#9d96f5","#8378EA","#96BFFF"],Qf={color:Jf,colorLayer:[["#37A2DA","#ffd85c","#fd7b5f"],["#37A2DA","#67E0E3","#FFDB5C","#ff9f7f","#E062AE","#9d96f5"],["#37A2DA","#32C5E9","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#e7bcf3","#8378EA","#96BFFF"],Jf]},tg="#B9B8CE",eg="#100C2A",ng=function(){return{axisLine:{lineStyle:{color:tg}},splitLine:{lineStyle:{color:"#484753"}},splitArea:{areaStyle:{color:["rgba(255,255,255,0.02)","rgba(255,255,255,0.05)"]}},minorSplitLine:{lineStyle:{color:"#20203B"}}}},ig=["#4992ff","#7cffb2","#fddd60","#ff6e76","#58d9f9","#05c091","#ff8a45","#8d48e3","#dd79ff"],rg={darkMode:!0,color:ig,backgroundColor:eg,axisPointer:{lineStyle:{color:"#817f91"},crossStyle:{color:"#817f91"},label:{color:"#fff"}},legend:{textStyle:{color:tg}},textStyle:{color:tg},title:{textStyle:{color:"#EEF1FA"},subtextStyle:{color:"#B9B8CE"}},toolbox:{iconStyle:{borderColor:tg}},dataZoom:{borderColor:"#71708A",textStyle:{color:tg},brushStyle:{color:"rgba(135,163,206,0.3)"},handleStyle:{color:"#353450",borderColor:"#C5CBE3"},moveHandleStyle:{color:"#B0B6C3",opacity:.3},fillerColor:"rgba(135,163,206,0.2)",emphasis:{handleStyle:{borderColor:"#91B7F2",color:"#4D587D"},moveHandleStyle:{color:"#636D9A",opacity:.7}},dataBackground:{lineStyle:{color:"#71708A",width:1},areaStyle:{color:"#71708A"}},selectedDataBackground:{lineStyle:{color:"#87A3CE"},areaStyle:{color:"#87A3CE"}}},visualMap:{textStyle:{color:tg}},timeline:{lineStyle:{color:tg},label:{color:tg},controlStyle:{color:tg,borderColor:tg}},calendar:{itemStyle:{color:eg},dayLabel:{color:tg},monthLabel:{color:tg},yearLabel:{color:tg}},timeAxis:ng(),logAxis:ng(),valueAxis:ng(),categoryAxis:ng(),line:{symbol:"circle"},graph:{color:ig},gauge:{title:{color:tg},axisLine:{lineStyle:{color:[[1,"rgba(207,212,219,0.2)"]]}},axisLabel:{color:tg},detail:{color:"#EEF1FA"}},candlestick:{itemStyle:{color:"#f64e56",color0:"#54ea92",borderColor:"#f64e56",borderColor0:"#54ea92"}}};function og(t){H(t)&&(t=(new DOMParser).parseFromString(t,"text/xml"));var e=t;for(9===e.nodeType&&(e=e.firstChild);"svg"!==e.nodeName.toLowerCase()||1!==e.nodeType;)e=e.nextSibling;return e}rg.categoryAxis.splitLine.show=!1;var ag=ht(),sg=function(t,e,n){var i;if(F(e))i=e;else if(e.svg)i=[{type:"svg",source:e.svg,specialAreas:e.specialAreas}];else{var r=e.geoJson||e.geoJSON;r&&!e.features&&(n=e.specialAreas,e=r),i=[{type:"geoJSON",source:e,specialAreas:n}]}return P(i,(function(t){var e=t.type;"geoJson"===e&&(e=t.type="geoJSON");var n=ug[e];n(t)})),ag.set(t,i)},lg=function(t){return ag.get(t)},ug={geoJSON:function(t){var e=t.source;t.geoJSON=H(e)?"undefined"!=typeof JSON&&JSON.parse?JSON.parse(e):new Function("return ("+e+");")():e},svg:function(t){t.svgXML=og(t.source)}},hg=function(){function t(){}return t.prototype.normalizeQuery=function(t){var e={},n={},i={};if(H(t)){var r=Gr(t);e.mainType=r.main||null,e.subType=r.sub||null}else{var o=["Index","Name","Id"],a={name:1,dataIndex:1,dataType:1};P(t,(function(t,r){for(var s=!1,l=0;l<o.length;l++){var u=o[l],h=r.lastIndexOf(u);if(h>0&&h===r.length-u.length){var c=r.slice(0,h);"data"!==c&&(e.mainType=c,e[u.toLowerCase()]=t,s=!0)}}a.hasOwnProperty(r)&&(n[r]=t,s=!0),s||(i[r]=t)}))}return{cptQuery:e,dataQuery:n,otherQuery:i}},t.prototype.filter=function(t,e){var n=this.eventInfo;if(!n)return!0;var i=n.targetEl,r=n.packedEvent,o=n.model,a=n.view;if(!o||!a)return!0;var s=e.cptQuery,l=e.dataQuery;return u(s,o,"mainType")&&u(s,o,"subType")&&u(s,o,"index","componentIndex")&&u(s,o,"name")&&u(s,o,"id")&&u(l,r,"name")&&u(l,r,"dataIndex")&&u(l,r,"dataType")&&(!a.filterForExposedEvent||a.filterForExposedEvent(t,e.otherQuery,i,r));function u(t,e,n,i){return null==t[n]||e[i||n]===t[n]}},t.prototype.afterTrigger=function(){this.eventInfo=null},t}(),cg={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var n=t.getData();if(t.legendSymbol&&n.setVisual("legendSymbol",t.legendSymbol),t.hasSymbolVisual){var i=t.get("symbol"),r=t.get("symbolSize"),o=t.get("symbolKeepAspect"),a=t.get("symbolRotate"),s=G(i),l=G(r),u=G(a),h=s||l||u,c=!s&&i?i:t.defaultSymbol,p=l?null:r,d=u?null:a;if(n.setVisual({legendSymbol:t.legendSymbol||c,symbol:c,symbolSize:p,symbolKeepAspect:o,symbolRotate:d}),!e.isSeriesFiltered(t))return{dataEach:h?function(e,n){var o=t.getRawValue(n),h=t.getDataParams(n);s&&e.setItemVisual(n,"symbol",i(o,h)),l&&e.setItemVisual(n,"symbolSize",r(o,h)),u&&e.setItemVisual(n,"symbolRotate",a(o,h))}:null}}}};function pg(t,e,n){switch(n){case"color":return t.getItemVisual(e,"style")[t.getVisual("drawType")];case"opacity":return t.getItemVisual(e,"style").opacity;case"symbol":case"symbolSize":case"liftZ":return t.getItemVisual(e,n);default:0}}function dg(t,e){switch(e){case"color":return t.getVisual("style")[t.getVisual("drawType")];case"opacity":return t.getVisual("style").opacity;case"symbol":case"symbolSize":case"liftZ":return t.getVisual(e);default:0}}function fg(t,e,n,i){switch(n){case"color":t.ensureUniqueItemVisual(e,"style")[t.getVisual("drawType")]=i,t.setItemVisual(e,"colorFromPalette",!1);break;case"opacity":t.ensureUniqueItemVisual(e,"style").opacity=i;break;case"symbol":case"symbolSize":case"liftZ":t.setItemVisual(e,n,i);break;default:0}}var gg=2*Math.PI,yg=Ca.CMD,vg=["top","right","bottom","left"];function mg(t,e,n,i,r){var o=n.width,a=n.height;switch(t){case"top":i.set(n.x+o/2,n.y-e),r.set(0,-1);break;case"bottom":i.set(n.x+o/2,n.y+a+e),r.set(0,1);break;case"left":i.set(n.x-e,n.y+a/2),r.set(-1,0);break;case"right":i.set(n.x+o+e,n.y+a/2),r.set(1,0)}}function _g(t,e,n,i,r,o,a,s,l){a-=t,s-=e;var u=Math.sqrt(a*a+s*s),h=(a/=u)*n+t,c=(s/=u)*n+e;if(Math.abs(i-r)%gg<1e-4)return l[0]=h,l[1]=c,u-n;if(o){var p=i;i=Pa(r),r=Pa(p)}else i=Pa(i),r=Pa(r);i>r&&(r+=gg);var d=Math.atan2(s,a);if(d<0&&(d+=gg),d>=i&&d<=r||d+gg>=i&&d+gg<=r)return l[0]=h,l[1]=c,u-n;var f=n*Math.cos(i)+t,g=n*Math.sin(i)+e,y=n*Math.cos(r)+t,v=n*Math.sin(r)+e,m=(f-a)*(f-a)+(g-s)*(g-s),_=(y-a)*(y-a)+(v-s)*(v-s);return m<_?(l[0]=f,l[1]=g,Math.sqrt(m)):(l[0]=y,l[1]=v,Math.sqrt(_))}function xg(t,e,n,i,r,o,a,s){var l=r-t,u=o-e,h=n-t,c=i-e,p=Math.sqrt(h*h+c*c),d=(l*(h/=p)+u*(c/=p))/p;s&&(d=Math.min(Math.max(d,0),1)),d*=p;var f=a[0]=t+d*h,g=a[1]=e+d*c;return Math.sqrt((f-r)*(f-r)+(g-o)*(g-o))}function bg(t,e,n,i,r,o,a){n<0&&(t+=n,n=-n),i<0&&(e+=i,i=-i);var s=t+n,l=e+i,u=a[0]=Math.min(Math.max(r,t),s),h=a[1]=Math.min(Math.max(o,e),l);return Math.sqrt((u-r)*(u-r)+(h-o)*(h-o))}var wg=[];function Sg(t,e,n){var i=bg(e.x,e.y,e.width,e.height,t.x,t.y,wg);return n.set(wg[0],wg[1]),i}function Mg(t,e,n){for(var i,r,o=0,a=0,s=0,l=0,u=1/0,h=e.data,c=t.x,p=t.y,d=0;d<h.length;){var f=h[d++];1===d&&(s=o=h[d],l=a=h[d+1]);var g=u;switch(f){case yg.M:o=s=h[d++],a=l=h[d++];break;case yg.L:g=xg(o,a,h[d],h[d+1],c,p,wg,!0),o=h[d++],a=h[d++];break;case yg.C:g=Vo(o,a,h[d++],h[d++],h[d++],h[d++],h[d],h[d+1],c,p,wg),o=h[d++],a=h[d++];break;case yg.Q:g=Xo(o,a,h[d++],h[d++],h[d],h[d+1],c,p,wg),o=h[d++],a=h[d++];break;case yg.A:var y=h[d++],v=h[d++],m=h[d++],_=h[d++],x=h[d++],b=h[d++];d+=1;var w=!!(1-h[d++]);i=Math.cos(x)*m+y,r=Math.sin(x)*_+v,d<=1&&(s=i,l=r),g=_g(y,v,_,x,x+b,w,(c-y)*_/m+y,p,wg),o=Math.cos(x+b)*m+y,a=Math.sin(x+b)*_+v;break;case yg.R:g=bg(s=o=h[d++],l=a=h[d++],h[d++],h[d++],c,p,wg);break;case yg.Z:g=xg(o,a,s,l,c,p,wg,!0),o=s,a=l}g<u&&(u=g,n.set(wg[0],wg[1]))}return u}var Ig=new In,Tg=new In,Cg=new In,Ag=new In,Dg=new In;function Lg(t,e){if(t){var n=t.getTextGuideLine(),i=t.getTextContent();if(i&&n){var r=t.textGuideLineConfig||{},o=[[0,0],[0,0],[0,0]],a=r.candidates||vg,s=i.getBoundingRect().clone();s.applyTransform(i.getComputedTransform());var l=1/0,u=r.anchor,h=t.getComputedTransform(),c=h&&be([],h),p=e.get("length2")||0;u&&Cg.copy(u);for(var d=0;d<a.length;d++){mg(a[d],0,s,Ig,Ag),In.scaleAndAdd(Tg,Ig,Ag,p),Tg.transform(c);var f=t.getBoundingRect(),g=u?u.distance(Tg):t instanceof Za?Mg(Tg,t.path,Cg):Sg(Tg,f,Cg);g<l&&(l=g,Tg.transform(h),Cg.transform(h),Cg.toArray(o[0]),Tg.toArray(o[1]),Ig.toArray(o[2]))}Og(o,e.get("minTurnAngle")),n.setShape({points:o})}}}var kg=[],Pg=new In;function Og(t,e){if(e<=180&&e>0){e=e/180*Math.PI,Ig.fromArray(t[0]),Tg.fromArray(t[1]),Cg.fromArray(t[2]),In.sub(Ag,Ig,Tg),In.sub(Dg,Cg,Tg);var n=Ag.len(),i=Dg.len();if(!(n<.001||i<.001)){Ag.scale(1/n),Dg.scale(1/i);var r=Ag.dot(Dg);if(Math.cos(e)<r){var o=xg(Tg.x,Tg.y,Cg.x,Cg.y,Ig.x,Ig.y,kg,!1);Pg.fromArray(kg),Pg.scaleAndAdd(Dg,o/Math.tan(Math.PI-e));var a=Cg.x!==Tg.x?(Pg.x-Tg.x)/(Cg.x-Tg.x):(Pg.y-Tg.y)/(Cg.y-Tg.y);if(isNaN(a))return;a<0?In.copy(Pg,Tg):a>1&&In.copy(Pg,Cg),Pg.toArray(t[1])}}}}function Rg(t,e,n){if(n<=180&&n>0){n=n/180*Math.PI,Ig.fromArray(t[0]),Tg.fromArray(t[1]),Cg.fromArray(t[2]),In.sub(Ag,Tg,Ig),In.sub(Dg,Cg,Tg);var i=Ag.len(),r=Dg.len();if(!(i<.001||r<.001))if(Ag.scale(1/i),Dg.scale(1/r),Ag.dot(e)<Math.cos(n)){var o=xg(Tg.x,Tg.y,Cg.x,Cg.y,Ig.x,Ig.y,kg,!1);Pg.fromArray(kg);var a=Math.PI/2,s=a+Math.acos(Dg.dot(e))-n;if(s>=a)In.copy(Pg,Cg);else{Pg.scaleAndAdd(Dg,o/Math.tan(Math.PI/2-s));var l=Cg.x!==Tg.x?(Pg.x-Tg.x)/(Cg.x-Tg.x):(Pg.y-Tg.y)/(Cg.y-Tg.y);if(isNaN(l))return;l<0?In.copy(Pg,Tg):l>1&&In.copy(Pg,Cg)}Pg.toArray(t[1])}}}function Ng(t,e,n,i){var r="normal"===n,o=r?t:t.ensureState(n);o.ignore=e;var a=i.get("smooth");a&&!0===a&&(a=.3),o.shape=o.shape||{},a>0&&(o.shape.smooth=a);var s=i.getModel("lineStyle").getLineStyle();r?t.useStyle(s):o.style=s}function Eg(t,e){var n=e.smooth,i=e.points;if(i)if(t.moveTo(i[0][0],i[0][1]),n>0&&i.length>=3){var r=Lt(i[0],i[1]),o=Lt(i[1],i[2]);if(!r||!o)return t.lineTo(i[1][0],i[1][1]),void t.lineTo(i[2][0],i[2][1]);var a=Math.min(r,o)*n,s=Ot([],i[1],i[0],a/r),l=Ot([],i[1],i[2],a/o),u=Ot([],s,l,.5);t.bezierCurveTo(s[0],s[1],s[0],s[1],u[0],u[1]),t.bezierCurveTo(l[0],l[1],l[0],l[1],i[2][0],i[2][1])}else for(var h=1;h<i.length;h++)t.lineTo(i[h][0],i[h][1])}function zg(t,e,n){var i=t.getTextGuideLine(),r=t.getTextContent();if(r){for(var o=e.normal,a=o.get("show"),s=r.ignore,l=0;l<bs.length;l++){var u=bs[l],h=e[u],c="normal"===u;if(h){var p=h.get("show");if((c?s:tt(r.states[u]&&r.states[u].ignore,s))||!tt(p,a)){var d=c?i:i&&i.states.normal;d&&(d.ignore=!0);continue}i||(i=new $l,t.setTextGuideLine(i),c||!s&&a||Ng(i,!0,"normal",e.normal),t.stateProxy&&(i.stateProxy=t.stateProxy)),Ng(i,!1,u,h)}}if(i){T(i.style,n),i.style.fill=null;var f=o.get("showAbove");(t.textGuideLineConfig=t.textGuideLineConfig||{}).showAbove=f||!1,i.buildPath=Eg}}else i&&t.removeTextGuideLine()}function Bg(t,e){e=e||"labelLine";for(var n={normal:t.getModel(e)},i=0;i<xs.length;i++){var r=xs[i];n[r]=t.getModel([r,e])}return n}function Vg(t,e,n,i,r,o){var a=t.length;if(!(a<2)){t.sort((function(t,n){return t.rect[e]-n.rect[e]}));for(var s,l=0,u=!1,h=0,c=0;c<a;c++){var p=t[c],d=p.rect;(s=d[e]-l)<0&&(d[e]-=s,p.label[e]-=s,u=!0),h+=Math.max(-s,0),l=d[e]+d[n]}h>0&&o&&x(-h/a,0,a);var f,g,y=t[0],v=t[a-1];return m(),f<0&&b(-f,.8),g<0&&b(g,.8),m(),_(f,g,1),_(g,f,-1),m(),f<0&&w(-f),g<0&&w(g),u}function m(){f=y.rect[e]-i,g=r-v.rect[e]-v.rect[n]}function _(t,e,n){if(t<0){var i=Math.min(e,-t);if(i>0){x(i*n,0,a);var r=i+t;r<0&&b(-r*n,1)}else b(-t*n,1)}}function x(n,i,r){0!==n&&(u=!0);for(var o=i;o<r;o++){var a=t[o];a.rect[e]+=n,a.label[e]+=n}}function b(i,r){for(var o=[],s=0,l=1;l<a;l++){var u=t[l-1].rect,h=Math.max(t[l].rect[e]-u[e]-u[n],0);o.push(h),s+=h}if(s){var c=Math.min(Math.abs(i)/s,r);if(i>0)for(l=0;l<a-1;l++){x(o[l]*c,0,l+1)}else for(l=a-1;l>0;l--){x(-(o[l-1]*c),l,a)}}}function w(t){var e=t<0?-1:1;t=Math.abs(t);for(var n=Math.ceil(t/(a-1)),i=0;i<a-1;i++)if(e>0?x(n,0,i+1):x(-n,a-i-1,a),(t-=n)<=0)return}}function Fg(t,e,n,i){return Vg(t,"y","height",e,n,i)}function Gg(t){if(t){for(var e=[],n=0;n<t.length;n++)e.push(t[n].slice());return e}}function Hg(t,e){var n=t.label,i=e&&e.getTextGuideLine();return{dataIndex:t.dataIndex,dataType:t.dataType,seriesIndex:t.seriesModel.seriesIndex,text:t.label.style.text,rect:t.hostRect,labelRect:t.rect,align:n.style.align,verticalAlign:n.style.verticalAlign,labelLinePoints:Gg(i&&i.shape.points)}}var Wg=["align","verticalAlign","width","height","fontSize"],Yg=new ke,Xg=Lr(),Ug=Lr();function Zg(t,e,n){for(var i=0;i<n.length;i++){var r=n[i];null!=e[r]&&(t[r]=e[r])}}var jg=["x","y","rotation"],qg=function(){function t(){this._labelList=[],this._chartViewList=[]}return t.prototype.clearLabels=function(){this._labelList=[],this._chartViewList=[]},t.prototype._addLabel=function(t,e,n,i,r){var o=i.style,a=i.__hostTarget.textConfig||{},s=i.getComputedTransform(),l=i.getBoundingRect().plain();Rn.applyTransform(l,l,s),s?Yg.setLocalTransform(s):(Yg.x=Yg.y=Yg.rotation=Yg.originX=Yg.originY=0,Yg.scaleX=Yg.scaleY=1);var u,h=i.__hostTarget;if(h){u=h.getBoundingRect().plain();var c=h.getComputedTransform();Rn.applyTransform(u,u,c)}var p=u&&h.getTextGuideLine();this._labelList.push({label:i,labelLine:p,seriesModel:n,dataIndex:t,dataType:e,layoutOption:r,computedLayoutOption:null,rect:l,hostRect:u,priority:u?u.width*u.height:0,defaultAttr:{ignore:i.ignore,labelGuideIgnore:p&&p.ignore,x:Yg.x,y:Yg.y,rotation:Yg.rotation,style:{x:o.x,y:o.y,align:o.align,verticalAlign:o.verticalAlign,width:o.width,height:o.height,fontSize:o.fontSize},cursor:i.cursor,attachedPos:a.position,attachedRot:a.rotation}})},t.prototype.addLabelsOfSeries=function(t){var e=this;this._chartViewList.push(t);var n=t.__model,i=n.get("labelLayout");(G(i)||z(i).length)&&t.group.traverse((function(t){if(t.ignore)return!0;var r=t.getTextContent(),o=ys(t);r&&!r.disableLabelLayout&&e._addLabel(o.dataIndex,o.dataType,n,r,i)}))},t.prototype.updateLayoutConfig=function(t){var e=t.getWidth(),n=t.getHeight();function i(t,e){return function(){Lg(t,e)}}for(var r=0;r<this._labelList.length;r++){var o=this._labelList[r],a=o.label,s=a.__hostTarget,l=o.defaultAttr,u=void 0;u=(u="function"==typeof o.layoutOption?o.layoutOption(Hg(o,s)):o.layoutOption)||{},o.computedLayoutOption=u;var h=Math.PI/180;s&&s.setTextConfig({local:!1,position:null!=u.x||null!=u.y?null:l.attachedPos,rotation:null!=u.rotate?u.rotate*h:l.attachedRot,offset:[u.dx||0,u.dy||0]});var c=!1;if(null!=u.x?(a.x=Zi(u.x,e),a.setStyle("x",0),c=!0):(a.x=l.x,a.setStyle("x",l.style.x)),null!=u.y?(a.y=Zi(u.y,n),a.setStyle("y",0),c=!0):(a.y=l.y,a.setStyle("y",l.style.y)),u.labelLinePoints){var p=s.getTextGuideLine();p&&(p.setShape({points:u.labelLinePoints}),c=!1)}Xg(a).needsUpdateLabelLine=c,a.rotation=null!=u.rotate?u.rotate*h:l.rotation;for(var d=0;d<Wg.length;d++){var f=Wg[d];a.setStyle(f,null!=u[f]?u[f]:l.style[f])}if(u.draggable){if(a.draggable=!0,a.cursor="move",s){var g=o.seriesModel;if(null!=o.dataIndex)g=o.seriesModel.getData(o.dataType).getItemModel(o.dataIndex);a.on("drag",i(s,g.getModel("labelLine")))}}else a.off("drag"),a.cursor=l.cursor}},t.prototype.layout=function(t){var e,n=t.getWidth(),i=t.getHeight(),r=function(t){for(var e=[],n=0;n<t.length;n++){var i=t[n];if(!i.defaultAttr.ignore){var r=i.label,o=r.getComputedTransform(),a=r.getBoundingRect(),s=!o||o[1]<1e-5&&o[2]<1e-5,l=r.style.margin||0,u=a.clone();u.applyTransform(o),u.x-=l/2,u.y-=l/2,u.width+=l,u.height+=l;var h=s?new gu(a,o):null;e.push({label:r,labelLine:i.labelLine,rect:u,localRect:a,obb:h,priority:i.priority,defaultAttr:i.defaultAttr,layoutOption:i.computedLayoutOption,axisAligned:s,transform:o})}}return e}(this._labelList),o=N(r,(function(t){return"shiftX"===t.layoutOption.moveOverlap})),a=N(r,(function(t){return"shiftY"===t.layoutOption.moveOverlap}));Vg(o,"x","width",0,n,e),Fg(a,0,i),function(t){var e=[];t.sort((function(t,e){return e.priority-t.priority}));var n=new Rn(0,0,0,0);function i(t){if(!t.ignore){var e=t.ensureState("emphasis");null==e.ignore&&(e.ignore=!1)}t.ignore=!0}for(var r=0;r<t.length;r++){var o=t[r],a=o.axisAligned,s=o.localRect,l=o.transform,u=o.label,h=o.labelLine;n.copy(o.rect),n.width-=.1,n.height-=.1,n.x+=.05,n.y+=.05;for(var c=o.obb,p=!1,d=0;d<e.length;d++){var f=e[d];if(n.intersect(f.rect)){if(a&&f.axisAligned){p=!0;break}if(f.obb||(f.obb=new gu(f.localRect,f.transform)),c||(c=new gu(s,l)),c.intersect(f.obb)){p=!0;break}}}p?(i(u),h&&i(h)):(u.attr("ignore",o.defaultAttr.ignore),h&&h.attr("ignore",o.defaultAttr.labelGuideIgnore),e.push(o))}}(N(r,(function(t){return t.layoutOption.hideOverlap})))},t.prototype.processLabelsOverall=function(){var t=this;P(this._chartViewList,(function(e){var n=e.__model,i=e.ignoreLabelLineUpdate,r=n.isAnimationEnabled();e.group.traverse((function(e){if(e.ignore)return!0;var o=!i,a=e.getTextContent();!o&&a&&(o=Xg(a).needsUpdateLabelLine),o&&t._updateLabelLine(e,n),r&&t._animateLabels(e,n)}))}))},t.prototype._updateLabelLine=function(t,e){var n=t.getTextContent(),i=ys(t),r=i.dataIndex;if(n&&null!=r){var o=e.getData(i.dataType),a=o.getItemModel(r),s={},l=o.getItemVisual(r,"style"),u=o.getVisual("drawType");s.stroke=l[u];var h=a.getModel("labelLine");zg(t,Bg(a),s),Lg(t,h)}},t.prototype._animateLabels=function(t,e){var n=t.getTextContent(),i=t.getTextGuideLine();if(n&&!n.ignore&&!n.invisible&&!t.disableLabelAnimation&&!Bu(t)){var r=(d=Xg(n)).oldLayout,o=ys(t),a=o.dataIndex,s={x:n.x,y:n.y,rotation:n.rotation},l=e.getData(o.dataType);if(r){n.attr(r);var u=t.prevStates;u&&(A(u,"select")>=0&&n.attr(d.oldLayoutSelect),A(u,"emphasis")>=0&&n.attr(d.oldLayoutEmphasis)),Ou(n,s,e,a)}else if(n.attr(s),!uh(n).valueAnimation){var h=tt(n.style.opacity,1);n.style.opacity=0,Ru(n,{style:{opacity:h}},e,a)}if(d.oldLayout=s,n.states.select){var c=d.oldLayoutSelect={};Zg(c,s,jg),Zg(c,n.states.select,jg)}if(n.states.emphasis){var p=d.oldLayoutEmphasis={};Zg(p,s,jg),Zg(p,n.states.emphasis,jg)}ch(n,a,l,e,e)}if(i&&!i.ignore&&!i.invisible){r=(d=Ug(i)).oldLayout;var d,f={points:i.shape.points};r?(i.attr({shape:r}),Ou(i,{shape:f},e)):(i.setShape(f),i.style.strokePercent=0,Ru(i,{style:{strokePercent:1}},e)),d.oldLayout=f}},t}();function Kg(t,e){function n(e,n){var i=[];return e.eachComponent({mainType:"series",subType:t,query:n},(function(t){i.push(t.seriesIndex)})),i}P([[t+"ToggleSelect","toggleSelect"],[t+"Select","select"],[t+"UnSelect","unselect"]],(function(t){e(t[0],(function(e,i,r){e=I({},e),r.dispatchAction(I(e,{type:t[1],seriesIndex:n(i,e)}))}))}))}function $g(t,e,n,i,r){var o=t+e;n.isSilent(o)||i.eachComponent({mainType:"series",subType:"pie"},(function(t){for(var e=t.seriesIndex,i=r.selected,a=0;a<i.length;a++)if(i[a].seriesIndex===e){var s=t.getData(),l=Dr(s,r.fromActionPayload);n.trigger(o,{type:o,seriesId:t.id,name:F(l)?s.getName(l[0]):s.getName(l),selected:I({},t.option.selectedMap)})}}))}function Jg(t,e,n){for(var i;t&&(!e(t)||(i=t,!n));)t=t.__hostTarget||t.parent;return i}var Qg=Math.round(9*Math.random()),ty=function(){function t(){this._id="__ec_inner_"+Qg++}return t.prototype.get=function(t){return this._guard(t)[this._id]},t.prototype.set=function(t,e){var n=this._guard(t);return"function"==typeof Object.defineProperty?Object.defineProperty(n,this._id,{value:e,enumerable:!1,configurable:!0}):n[this._id]=e,this},t.prototype.delete=function(t){return!!this.has(t)&&(delete this._guard(t)[this._id],!0)},t.prototype.has=function(t){return!!this._guard(t)[this._id]},t.prototype._guard=function(t){if(t!==Object(t))throw TypeError("Value of WeakMap is not a non-null object.");return t},t}(),ey=Za.extend({type:"triangle",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var n=e.cx,i=e.cy,r=e.width/2,o=e.height/2;t.moveTo(n,i-o),t.lineTo(n+r,i+o),t.lineTo(n-r,i+o),t.closePath()}}),ny=Za.extend({type:"diamond",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var n=e.cx,i=e.cy,r=e.width/2,o=e.height/2;t.moveTo(n,i-o),t.lineTo(n+r,i),t.lineTo(n,i+o),t.lineTo(n-r,i),t.closePath()}}),iy=Za.extend({type:"pin",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var n=e.x,i=e.y,r=e.width/5*3,o=Math.max(r,e.height),a=r/2,s=a*a/(o-a),l=i-o+a+s,u=Math.asin(s/a),h=Math.cos(u)*a,c=Math.sin(u),p=Math.cos(u),d=.6*a,f=.7*a;t.moveTo(n-h,l+s),t.arc(n,l,a,Math.PI-u,2*Math.PI+u),t.bezierCurveTo(n+h-c*d,l+s+p*d,n,i-f,n,i),t.bezierCurveTo(n,i-f,n-h+c*d,l+s+p*d,n-h,l+s),t.closePath()}}),ry=Za.extend({type:"arrow",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var n=e.height,i=e.width,r=e.x,o=e.y,a=i/3*2;t.moveTo(r,o),t.lineTo(r+a,o+n),t.lineTo(r,o+n/4*3),t.lineTo(r-a,o+n),t.lineTo(r,o),t.closePath()}}),oy={line:function(t,e,n,i,r){r.x=t,r.y=e+i/2-1,r.width=n,r.height=2},rect:function(t,e,n,i,r){r.x=t,r.y=e,r.width=n,r.height=i},roundRect:function(t,e,n,i,r){r.x=t,r.y=e,r.width=n,r.height=i,r.r=Math.min(n,i)/4},square:function(t,e,n,i,r){var o=Math.min(n,i);r.x=t,r.y=e,r.width=o,r.height=o},circle:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.r=Math.min(n,i)/2},diamond:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.width=n,r.height=i},pin:function(t,e,n,i,r){r.x=t+n/2,r.y=e+i/2,r.width=n,r.height=i},arrow:function(t,e,n,i,r){r.x=t+n/2,r.y=e+i/2,r.width=n,r.height=i},triangle:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.width=n,r.height=i}},ay={};P({line:os,rect:os,roundRect:os,square:os,circle:Tl,diamond:ny,pin:iy,arrow:ry,triangle:ey},(function(t,e){ay[e]=new t}));var sy=Za.extend({type:"symbol",shape:{symbolType:"",x:0,y:0,width:0,height:0},calculateTextPosition:function(t,e,n){var i=Xn(t,e,n),r=this.shape;return r&&"pin"===r.symbolType&&"inside"===e.position&&(i.y=n.y+.4*n.height),i},buildPath:function(t,e,n){var i=e.symbolType;if("none"!==i){var r=ay[i];r||(r=ay[i="rect"]),oy[i](e.x,e.y,e.width,e.height,r.shape),r.buildPath(t,r.shape,n)}}});function ly(t,e){if("image"!==this.type){var n=this.style;this.__isEmptyBrush?(n.stroke=t,n.fill=e||"#fff",n.lineWidth=2):n.fill=t,this.markRedraw()}}function uy(t,e,n,i,r,o,a){var s,l=0===t.indexOf("empty");return l&&(t=t.substr(5,1).toLowerCase()+t.substr(6)),(s=0===t.indexOf("image://")?Cu(t.slice(8),new Rn(e,n,i,r),a?"center":"cover"):0===t.indexOf("path://")?Tu(t.slice(7),{},new Rn(e,n,i,r),a?"center":"cover"):new sy({shape:{symbolType:t,x:e,y:n,width:i,height:r}})).__isEmptyBrush=l,s.setColor=ly,o&&s.setColor(o),s}function hy(t,e,n){for(var i="radial"===e.type?function(t,e,n){var i=n.width,r=n.height,o=Math.min(i,r),a=null==e.x?.5:e.x,s=null==e.y?.5:e.y,l=null==e.r?.5:e.r;return e.global||(a=a*i+n.x,s=s*r+n.y,l*=o),t.createRadialGradient(a,s,0,a,s,l)}(t,e,n):function(t,e,n){var i=null==e.x?0:e.x,r=null==e.x2?1:e.x2,o=null==e.y?0:e.y,a=null==e.y2?0:e.y2;return e.global||(i=i*n.width+n.x,r=r*n.width+n.x,o=o*n.height+n.y,a=a*n.height+n.y),i=isNaN(i)?0:i,r=isNaN(r)?1:r,o=isNaN(o)?0:o,a=isNaN(a)?0:a,t.createLinearGradient(i,o,r,a)}(t,e,n),r=e.colorStops,o=0;o<r.length;o++)i.addColorStop(r[o].offset,r[o].color);return i}function cy(t,e){if(t===e||!t&&!e)return!1;if(!t||!e||t.length!==e.length)return!0;for(var n=0;n<t.length;n++)if(t[n]!==e[n])return!0;return!1}function py(t,e){return t&&"solid"!==t&&e>0?(e=e||1,"dashed"===t?[4*e,2*e]:"dotted"===t?[e]:Y(t)?[t]:F(t)?t:null):null}var dy=new Ca(!0);function fy(t){var e=t.stroke;return!(null==e||"none"===e||!(t.lineWidth>0))}function gy(t){var e=t.fill;return null!=e&&"none"!==e}function yy(t,e){if(null!=e.fillOpacity&&1!==e.fillOpacity){var n=t.globalAlpha;t.globalAlpha=e.fillOpacity*e.opacity,t.fill(),t.globalAlpha=n}else t.fill()}function vy(t,e){if(null!=e.strokeOpacity&&1!==e.strokeOpacity){var n=t.globalAlpha;t.globalAlpha=e.strokeOpacity*e.opacity,t.stroke(),t.globalAlpha=n}else t.stroke()}function my(t,e,n){var i=to(e.image,e.__image,n);if(no(i)){var r=t.createPattern(i,e.repeat||"repeat");if("function"==typeof DOMMatrix){var o=new DOMMatrix;o.rotateSelf(0,0,(e.rotation||0)/Math.PI*180),o.scaleSelf(e.scaleX||1,e.scaleY||1),o.translateSelf(e.x||0,e.y||0),r.setTransform(o)}return r}}var _y=["shadowBlur","shadowOffsetX","shadowOffsetY"],xy=[["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]];function by(t,e,n,i,r){var o=!1;if(!i&&e===(n=n||{}))return!1;(i||e.opacity!==n.opacity)&&(o||(My(t,r),o=!0),t.globalAlpha=null==e.opacity?vo.opacity:e.opacity),(i||e.blend!==n.blend)&&(o||(My(t,r),o=!0),t.globalCompositeOperation=e.blend||vo.blend);for(var a=0;a<_y.length;a++){var s=_y[a];(i||e[s]!==n[s])&&(o||(My(t,r),o=!0),t[s]=t.dpr*(e[s]||0))}return(i||e.shadowColor!==n.shadowColor)&&(o||(My(t,r),o=!0),t.shadowColor=e.shadowColor||vo.shadowColor),o}function wy(t,e,n,i,r){var o=Iy(e,r.inHover),a=i?null:n&&Iy(n,r.inHover)||{};if(o===a)return!1;var s=by(t,o,a,i,r);if((i||o.fill!==a.fill)&&(s||(My(t,r),s=!0),t.fillStyle=o.fill),(i||o.stroke!==a.stroke)&&(s||(My(t,r),s=!0),t.strokeStyle=o.stroke),(i||o.opacity!==a.opacity)&&(s||(My(t,r),s=!0),t.globalAlpha=null==o.opacity?1:o.opacity),e.hasStroke()){var l=o.lineWidth/(o.strokeNoScale&&e&&e.getLineScale?e.getLineScale():1);t.lineWidth!==l&&(s||(My(t,r),s=!0),t.lineWidth=l)}for(var u=0;u<xy.length;u++){var h=xy[u],c=h[0];(i||o[c]!==a[c])&&(s||(My(t,r),s=!0),t[c]=o[c]||h[1])}return s}function Sy(t,e){var n=e.transform,i=t.dpr||1;n?t.setTransform(i*n[0],i*n[1],i*n[2],i*n[3],i*n[4],i*n[5]):t.setTransform(i,0,0,i,0,0)}function My(t,e){e.batchFill&&t.fill(),e.batchStroke&&t.stroke(),e.batchFill="",e.batchStroke=""}function Iy(t,e){return e&&t.__hoverStyle||t.style}function Ty(t,e){Cy(t,e,{inHover:!1,viewWidth:0,viewHeight:0},!0)}function Cy(t,e,n,i){var r=e.transform;if(!e.shouldBePainted(n.viewWidth,n.viewHeight,!1,!1))return e.__dirty&=~ei.REDARAW_BIT,void(e.__isRendered=!1);var o=e.__clipPaths,a=n.prevElClipPaths,s=!1,l=!1;if(a&&!cy(o,a)||(a&&a.length&&(My(t,n),t.restore(),l=s=!0,n.prevElClipPaths=null,n.allClipped=!1,n.prevEl=null),o&&o.length&&(My(t,n),t.save(),function(t,e,n){for(var i=!1,r=0;r<t.length;r++){var o=t[r];i=i||o.isZeroArea(),Sy(e,o),e.beginPath(),o.buildPath(e,o.shape),e.clip()}n.allClipped=i}(o,t,n),s=!0),n.prevElClipPaths=o),n.allClipped)e.__isRendered=!1;else{e.beforeBrush&&e.beforeBrush(),e.innerBeforeBrush();var u=n.prevEl;u||(l=s=!0);var h,c,p=e instanceof Za&&e.autoBatch&&function(t){var e=gy(t),n=fy(t);return!(t.lineDash||!(+e^+n)||e&&"string"!=typeof t.fill||n&&"string"!=typeof t.stroke||t.strokePercent<1||t.strokeOpacity<1||t.fillOpacity<1)}(e.style);s||(h=r,c=u.transform,h&&c?h[0]!==c[0]||h[1]!==c[1]||h[2]!==c[2]||h[3]!==c[3]||h[4]!==c[4]||h[5]!==c[5]:h||c)?(My(t,n),Sy(t,e)):p||My(t,n);var d=Iy(e,n.inHover);e instanceof Za?(1!==n.lastDrawType&&(l=!0,n.lastDrawType=1),wy(t,e,u,l,n),p&&(n.batchFill||n.batchStroke)||t.beginPath(),function(t,e,n,i){var r=fy(n),o=gy(n),a=n.strokePercent,s=a<1,l=!e.path;e.silent&&!s||!l||e.createPathProxy();var u=e.path||dy;if(!i){var h=n.fill,c=n.stroke,p=o&&!!h.colorStops,d=r&&!!c.colorStops,f=o&&!!h.image,g=r&&!!c.image,y=void 0,v=void 0,m=void 0,_=void 0,x=void 0;(p||d)&&(x=e.getBoundingRect()),p&&(y=e.__dirty?hy(t,h,x):e.__canvasFillGradient,e.__canvasFillGradient=y),d&&(v=e.__dirty?hy(t,c,x):e.__canvasStrokeGradient,e.__canvasStrokeGradient=v),f&&(m=e.__dirty||!e.__canvasFillPattern?my(t,h,e):e.__canvasFillPattern,e.__canvasFillPattern=m),g&&(_=e.__dirty||!e.__canvasStrokePattern?my(t,c,e):e.__canvasStrokePattern,e.__canvasStrokePattern=m),p?t.fillStyle=y:f&&(m?t.fillStyle=m:o=!1),d?t.strokeStyle=v:g&&(_?t.strokeStyle=_:r=!1)}var b=n.lineDash&&n.lineWidth>0&&py(n.lineDash,n.lineWidth),w=n.lineDashOffset,S=!!t.setLineDash,M=e.getGlobalScale();if(u.setScale(M[0],M[1],e.segmentIgnoreThreshold),b){var I=n.strokeNoScale&&e.getLineScale?e.getLineScale():1;I&&1!==I&&(b=O(b,(function(t){return t/I})),w/=I)}var T=!0;(l||e.__dirty&Za.SHAPE_CHANGED_BIT||b&&!S&&r)&&(u.setDPR(t.dpr),s?u.setContext(null):(u.setContext(t),T=!1),u.reset(),b&&!S&&(u.setLineDash(b),u.setLineDashOffset(w)),e.buildPath(u,e.shape,i),u.toStatic(),e.pathUpdated()),T&&u.rebuildPath(t,s?a:1),b&&S&&(t.setLineDash(b),t.lineDashOffset=w),i||(n.strokeFirst?(r&&vy(t,n),o&&yy(t,n)):(o&&yy(t,n),r&&vy(t,n))),b&&S&&t.setLineDash([])}(t,e,d,p),p&&(n.batchFill=d.fill||"",n.batchStroke=d.stroke||"")):e instanceof qa?(3!==n.lastDrawType&&(l=!0,n.lastDrawType=3),wy(t,e,u,l,n),function(t,e,n){var i=n.text;if(null!=i&&(i+=""),i){t.font=n.font||En,t.textAlign=n.textAlign,t.textBaseline=n.textBaseline;var r=void 0;if(t.setLineDash){var o=n.lineDash&&n.lineWidth>0&&py(n.lineDash,n.lineWidth),a=n.lineDashOffset;if(o){var s=n.strokeNoScale&&e.getLineScale?e.getLineScale():1;s&&1!==s&&(o=O(o,(function(t){return t/s})),a/=s),t.setLineDash(o),t.lineDashOffset=a,r=!0}}n.strokeFirst?(fy(n)&&t.strokeText(i,n.x,n.y),gy(n)&&t.fillText(i,n.x,n.y)):(gy(n)&&t.fillText(i,n.x,n.y),fy(n)&&t.strokeText(i,n.x,n.y)),r&&t.setLineDash([])}}(t,e,d)):e instanceof Ja?(2!==n.lastDrawType&&(l=!0,n.lastDrawType=2),function(t,e,n,i,r){by(t,Iy(e,r.inHover),n&&Iy(n,r.inHover),i,r)}(t,e,u,l,n),function(t,e,n){var i=e.__image=to(n.image,e.__image,e,e.onload);if(i&&no(i)){var r=n.x||0,o=n.y||0,a=e.getWidth(),s=e.getHeight(),l=i.width/i.height;if(null==a&&null!=s?a=s*l:null==s&&null!=a?s=a/l:null==a&&null==s&&(a=i.width,s=i.height),n.sWidth&&n.sHeight){var u=n.sx||0,h=n.sy||0;t.drawImage(i,u,h,n.sWidth,n.sHeight,r,o,a,s)}else if(n.sx&&n.sy){var c=a-(u=n.sx),p=s-(h=n.sy);t.drawImage(i,u,h,c,p,r,o,a,s)}else t.drawImage(i,r,o,a,s)}}(t,e,d)):e instanceof vu&&(4!==n.lastDrawType&&(l=!0,n.lastDrawType=4),function(t,e,n){var i=e.getDisplayables(),r=e.getTemporalDisplayables();t.save();var o,a,s={prevElClipPaths:null,prevEl:null,allClipped:!1,viewWidth:n.viewWidth,viewHeight:n.viewHeight,inHover:n.inHover};for(o=e.getCursor(),a=i.length;o<a;o++){(h=i[o]).beforeBrush&&h.beforeBrush(),h.innerBeforeBrush(),Cy(t,h,s,o===a-1),h.innerAfterBrush(),h.afterBrush&&h.afterBrush(),s.prevEl=h}for(var l=0,u=r.length;l<u;l++){var h;(h=r[l]).beforeBrush&&h.beforeBrush(),h.innerBeforeBrush(),Cy(t,h,s,l===u-1),h.innerAfterBrush(),h.afterBrush&&h.afterBrush(),s.prevEl=h}e.clearTemporalDisplayables(),e.notClear=!0,t.restore()}(t,e,n)),p&&i&&My(t,n),e.innerAfterBrush(),e.afterBrush&&e.afterBrush(),n.prevEl=e,e.__dirty=0,e.__isRendered=!0}}var Ay=new ty,Dy=new Ee(100),Ly=["symbol","symbolSize","symbolKeepAspect","color","backgroundColor","dashArrayX","dashArrayY","maxTileWidth","maxTileHeight"];function ky(t,e){if("none"===t)return null;var n=e.getDevicePixelRatio(),i=e.getZr(),r="svg"===i.painter.type;t.dirty&&Ay.delete(t);var o=Ay.get(t);if(o)return o;var a=T(t,{symbol:"rect",symbolSize:1,symbolKeepAspect:!0,color:"rgba(0, 0, 0, 0.2)",backgroundColor:null,dashArrayX:5,dashArrayY:5,rotation:0,maxTileWidth:512,maxTileHeight:512});"none"===a.backgroundColor&&(a.backgroundColor=null);var s={repeat:"repeat"};return function(t){for(var e,o=[n],s=!0,l=0;l<Ly.length;++l){var u=a[Ly[l]],h=typeof u;if(null!=u&&!F(u)&&"string"!==h&&"number"!==h&&"boolean"!==h){s=!1;break}o.push(u)}if(s){e=o.join(",")+(r?"-svg":"");var c=Dy.get(e);c&&(r?t.svgElement=c:t.image=c)}var p,d=Oy(a.dashArrayX),f=function(t){if(!t||"object"==typeof t&&0===t.length)return[0,0];if("number"==typeof t){var e=Math.ceil(t);return[e,e]}var n=O(t,(function(t){return Math.ceil(t)}));return t.length%2?n.concat(n):n}(a.dashArrayY),g=Py(a.symbol),y=(b=d,O(b,(function(t){return Ry(t)}))),v=Ry(f),m=!r&&C(),_=r&&i.painter.createSVGElement("g"),x=function(){for(var t=1,e=0,n=y.length;e<n;++e)t=fr(t,y[e]);var i=1;for(e=0,n=g.length;e<n;++e)i=fr(i,g[e].length);t*=i;var r=v*y.length*g.length;return{width:Math.max(1,Math.min(t,a.maxTileWidth)),height:Math.max(1,Math.min(r,a.maxTileHeight))}}();var b;m&&(m.width=x.width*n,m.height=x.height*n,p=m.getContext("2d"));(function(){p&&(p.clearRect(0,0,m.width,m.height),a.backgroundColor&&(p.fillStyle=a.backgroundColor,p.fillRect(0,0,m.width,m.height)));for(var t=0,e=0;e<f.length;++e)t+=f[e];if(t<=0)return;var o=-v,s=0,l=0,u=0;for(;o<x.height;){if(s%2==0){for(var h=l/2%g.length,c=0,y=0,b=0;c<2*x.width;){var w=0;for(e=0;e<d[u].length;++e)w+=d[u][e];if(w<=0)break;if(y%2==0){var S=.5*(1-a.symbolSize),M=c+d[u][y]*S,I=o+f[s]*S,T=d[u][y]*a.symbolSize,C=f[s]*a.symbolSize,A=b/2%g[h].length;D(M,I,T,C,g[h][A])}c+=d[u][y],++b,++y===d[u].length&&(y=0)}++u===d.length&&(u=0)}o+=f[s],++l,++s===f.length&&(s=0)}function D(t,e,o,s,l){var u=r?1:n,h=uy(l,t*u,e*u,o*u,s*u,a.color,a.symbolKeepAspect);r?_.appendChild(i.painter.paintOne(h)):Ty(p,h)}})(),s&&Dy.put(e,m||_);t.image=m,t.svgElement=_,t.svgWidth=x.width,t.svgHeight=x.height}(s),s.rotation=a.rotation,s.scaleX=s.scaleY=r?1:1/n,Ay.set(t,s),t.dirty=!1,s}function Py(t){if(!t||0===t.length)return[["rect"]];if("string"==typeof t)return[[t]];for(var e=!0,n=0;n<t.length;++n)if("string"!=typeof t[n]){e=!1;break}if(e)return Py([t]);var i=[];for(n=0;n<t.length;++n)"string"==typeof t[n]?i.push([t[n]]):i.push(t[n]);return i}function Oy(t){if(!t||0===t.length)return[[0,0]];if("number"==typeof t)return[[r=Math.ceil(t),r]];for(var e=!0,n=0;n<t.length;++n)if("number"!=typeof t[n]){e=!1;break}if(e)return Oy([t]);var i=[];for(n=0;n<t.length;++n)if("number"==typeof t[n]){var r=Math.ceil(t[n]);i.push([r,r])}else{(r=O(t[n],(function(t){return Math.ceil(t)}))).length%2==1?i.push(r.concat(r)):i.push(r)}return i}function Ry(t){for(var e=0,n=0;n<t.length;++n)e+=t[n];return t.length%2==1?2*e:e}var Ny=rt,Ey=P,zy=G,By=X,Vy=A,Fy="undefined"!=typeof window,Gy=2e3,Hy=4500,Wy={PROCESSOR:{FILTER:1e3,SERIES_FILTER:800,STATISTIC:5e3},VISUAL:{LAYOUT:1e3,PROGRESSIVE_LAYOUT:1100,GLOBAL:Gy,CHART:3e3,POST_CHART_LAYOUT:4600,COMPONENT:4e3,BRUSH:5e3,CHART_ITEM:Hy,ARIA:6e3,DECAL:7e3}},Yy=/^[a-zA-Z0-9_]+$/,Xy="__connectUpdateStatus";function Uy(t){return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];if(!this.isDisposed())return jy(this,t,e);bv(this.id)}}function Zy(t){return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return jy(this,t,e)}}function jy(t,e,n){return n[0]=n[0]&&n[0].toLowerCase(),Ft.prototype[e].apply(t,n)}var qy,Ky,$y,Jy,Qy,tv,ev,nv,iv,rv,ov,av,sv,lv,uv,hv,cv,pv,dv,fv,gv,yv=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e}(Ft),vv=yv.prototype;vv.on=Zy("on"),vv.off=Zy("off");var mv=function(t){function e(e,n,i){var r=t.call(this,new hg)||this;r._chartsViews=[],r._chartsMap={},r._componentsViews=[],r._componentsMap={},r._pendingActions=[],i=i||{},"string"==typeof n&&(n=Dv[n]),r._dom=e;var o="canvas",a=!1,s=r._zr=Hi(e,{renderer:i.renderer||o,devicePixelRatio:i.devicePixelRatio,width:i.width,height:i.height,useDirtyRect:null==i.useDirtyRect?a:i.useDirtyRect});r._throttledZrFlush=If(B(s.flush,s),17),(n=w(n))&&Hp(n,!0),r._theme=n,r._locale=function(t){if(H(t)){var e=Lh[t.toUpperCase()]||{};return t===Ch||t===Ah?w(e):S(w(e),w(Lh.EN),!1)}return S(w(t),w(Lh.EN),!1)}(i.locale||Ph),r._coordSysMgr=new _p;var l=r._api=cv(r);function u(t,e){return t.__prio-e.__prio}return ci(Av,u),ci(Mv,u),r._scheduler=new zf(r,l,Mv,Av),r._messageCenter=new yv,r._labelManager=new qg,r._initEvents(),r.resize=B(r.resize,r),s.animation.on("frame",r._onframe,r),rv(s,r),ov(s,r),st(r),r}return n(e,t),e.prototype._onframe=function(){if(!this._disposed){gv(this);var t=this._scheduler;if(this.__optionUpdated){var e=this.__optionUpdated.silent;this.__flagInMainProcess=!0,qy(this),Jy.update.call(this),this._zr.flush(),this.__flagInMainProcess=!1,this.__optionUpdated=!1,nv.call(this,e),iv.call(this,e)}else if(t.unfinished){var n=1,i=this._model,r=this._api;t.unfinished=!1;do{var o=+new Date;t.performSeriesTasks(i),t.performDataProcessorTasks(i),tv(this,i),t.performVisualTasks(i),uv(this,this._model,r,"remain"),n-=+new Date-o}while(n>0&&t.unfinished);t.unfinished||this._zr.flush()}}},e.prototype.getDom=function(){return this._dom},e.prototype.getId=function(){return this.id},e.prototype.getZr=function(){return this._zr},e.prototype.setOption=function(t,e,n){if(this._disposed)bv(this.id);else{var i,r,o;if(By(e)&&(n=e.lazyUpdate,i=e.silent,r=e.replaceMerge,o=e.transition,e=e.notMerge),this.__flagInMainProcess=!0,!this._model||e){var a=new bp(this._api),s=this._theme,l=this._model=new pp;l.scheduler=this._scheduler,l.init(null,null,null,s,this._locale,a)}this._model.setOption(t,{replaceMerge:r},Iv),dv(this,o),n?(this.__optionUpdated={silent:i},this.__flagInMainProcess=!1,this.getZr().wakeUp()):(qy(this),Jy.update.call(this),this._zr.flush(),this.__optionUpdated=!1,this.__flagInMainProcess=!1,nv.call(this,i),iv.call(this,i))}},e.prototype.setTheme=function(){console.error("ECharts#setTheme() is DEPRECATED in ECharts 3.0")},e.prototype.getModel=function(){return this._model},e.prototype.getOption=function(){return this._model&&this._model.getOption()},e.prototype.getWidth=function(){return this._zr.getWidth()},e.prototype.getHeight=function(){return this._zr.getHeight()},e.prototype.getDevicePixelRatio=function(){return this._zr.painter.dpr||Fy&&window.devicePixelRatio||1},e.prototype.getRenderedCanvas=function(t){if(a.canvasSupported)return(t=I({},t||{})).pixelRatio=t.pixelRatio||1,t.backgroundColor=t.backgroundColor||this._model.get("backgroundColor"),this._zr.painter.getRenderedCanvas(t)},e.prototype.getSvgDataURL=function(){if(a.svgSupported){var t=this._zr;return P(t.storage.getDisplayList(),(function(t){t.stopAnimation(null,!0)})),t.painter.toDataURL()}},e.prototype.getDataURL=function(t){if(!this._disposed){var e=(t=t||{}).excludeComponents,n=this._model,i=[],r=this;Ey(e,(function(t){n.eachComponent({mainType:t},(function(t){var e=r._componentsMap[t.__viewId];e.group.ignore||(i.push(e),e.group.ignore=!0)}))}));var o="svg"===this._zr.painter.getType()?this.getSvgDataURL():this.getRenderedCanvas(t).toDataURL("image/"+(t&&t.type||"png"));return Ey(i,(function(t){t.group.ignore=!1})),o}bv(this.id)},e.prototype.getConnectedDataURL=function(t){if(this._disposed)bv(this.id);else if(a.canvasSupported){var e="svg"===t.type,n=this.group,i=Math.min,r=Math.max,o=1/0;if(Pv[n]){var s=o,l=o,u=-1/0,h=-1/0,c=[],p=t&&t.pixelRatio||1;P(kv,(function(o,a){if(o.group===n){var p=e?o.getZr().painter.getSvgDom().innerHTML:o.getRenderedCanvas(w(t)),d=o.getDom().getBoundingClientRect();s=i(d.left,s),l=i(d.top,l),u=r(d.right,u),h=r(d.bottom,h),c.push({dom:p,left:d.left,top:d.top})}}));var d=(u*=p)-(s*=p),f=(h*=p)-(l*=p),g=C(),y=Hi(g,{renderer:e?"svg":"canvas"});if(y.resize({width:d,height:f}),e){var v="";return Ey(c,(function(t){var e=t.left-s,n=t.top-l;v+='<g transform="translate('+e+","+n+')">'+t.dom+"</g>"})),y.painter.getSvgRoot().innerHTML=v,t.connectedBackgroundColor&&y.painter.setBackgroundColor(t.connectedBackgroundColor),y.refreshImmediately(),y.painter.toDataURL()}return t.connectedBackgroundColor&&y.add(new os({shape:{x:0,y:0,width:d,height:f},style:{fill:t.connectedBackgroundColor}})),Ey(c,(function(t){var e=new Ja({style:{x:t.left*p-s,y:t.top*p-l,image:t.dom}});y.add(e)})),y.refreshImmediately(),g.toDataURL("image/"+(t&&t.type||"png"))}return this.getDataURL(t)}},e.prototype.convertToPixel=function(t,e){return Qy(this,"convertToPixel",t,e)},e.prototype.convertFromPixel=function(t,e){return Qy(this,"convertFromPixel",t,e)},e.prototype.containPixel=function(t,e){var n;if(!this._disposed)return P(Pr(this._model,t),(function(t,i){i.indexOf("Models")>=0&&P(t,(function(t){var r=t.coordinateSystem;if(r&&r.containPoint)n=n||!!r.containPoint(e);else if("seriesModels"===i){var o=this._chartsMap[t.__viewId];o&&o.containPoint&&(n=n||o.containPoint(e,t))}else 0}),this)}),this),!!n;bv(this.id)},e.prototype.getVisual=function(t,e){var n=Pr(this._model,t,{defaultMainType:"series"}),i=n.seriesModel;var r=i.getData(),o=n.hasOwnProperty("dataIndexInside")?n.dataIndexInside:n.hasOwnProperty("dataIndex")?r.indexOfRawIndex(n.dataIndex):null;return null!=o?pg(r,o,e):dg(r,e)},e.prototype.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},e.prototype.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]},e.prototype._initEvents=function(){var t,e,n,i=this;Ey(xv,(function(t){var e=function(e){var n,r=i.getModel(),o=e.target,a="globalout"===t;if(a?n={}:o&&Jg(o,(function(t){var e=ys(t);if(e&&null!=e.dataIndex){var i=e.dataModel||r.getSeriesByIndex(e.seriesIndex);return n=i&&i.getDataParams(e.dataIndex,e.dataType)||{},!0}if(e.eventData)return n=I({},e.eventData),!0}),!0),n){var s=n.componentType,l=n.componentIndex;"markLine"!==s&&"markPoint"!==s&&"markArea"!==s||(s="series",l=n.seriesIndex);var u=s&&null!=l&&r.getComponent(s,l),h=u&&i["series"===u.mainType?"_chartsMap":"_componentsMap"][u.__viewId];0,n.event=e,n.type=t,i._$eventProcessor.eventInfo={targetEl:o,packedEvent:n,model:u,view:h},i.trigger(t,n)}};e.zrEventfulCallAtLast=!0,i._zr.on(t,e,i)})),Ey(Sv,(function(t,e){i._messageCenter.on(e,(function(t){this.trigger(e,t)}),i)})),Ey(["selectchanged"],(function(t){i._messageCenter.on(t,(function(e){this.trigger(t,e)}),i)})),t=this._messageCenter,e=this,n=this._api,t.on("selectchanged",(function(t){var i=n.getModel();t.isFromClick?($g("map","selectchanged",e,i,t),$g("pie","selectchanged",e,i,t)):"select"===t.fromAction?($g("map","selected",e,i,t),$g("pie","selected",e,i,t)):"unselect"===t.fromAction&&($g("map","unselected",e,i,t),$g("pie","unselected",e,i,t))}))},e.prototype.isDisposed=function(){return this._disposed},e.prototype.clear=function(){this._disposed?bv(this.id):this.setOption({series:[]},!0)},e.prototype.dispose=function(){if(this._disposed)bv(this.id);else{this._disposed=!0,Er(this.getDom(),Nv,"");var t=this._api,e=this._model;Ey(this._componentsViews,(function(n){n.dispose(e,t)})),Ey(this._chartsViews,(function(n){n.dispose(e,t)})),this._zr.dispose(),delete kv[this.id]}},e.prototype.resize=function(t){if(this._disposed)bv(this.id);else{this._zr.resize(t);var e=this._model;if(this._loadingFX&&this._loadingFX.resize(),e){var n=e.resetOption("media"),i=t&&t.silent;this.__flagInMainProcess=!0,n&&qy(this),Jy.update.call(this,{type:"resize",animation:{duration:0}}),this.__flagInMainProcess=!1,nv.call(this,i),iv.call(this,i)}}},e.prototype.showLoading=function(t,e){if(this._disposed)bv(this.id);else if(By(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),Lv[t]){var n=Lv[t](this._api,e),i=this._zr;this._loadingFX=n,i.add(n)}},e.prototype.hideLoading=function(){this._disposed?bv(this.id):(this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null)},e.prototype.makeActionFromEvent=function(t){var e=I({},t);return e.type=Sv[t.type],e},e.prototype.dispatchAction=function(t,e){if(this._disposed)bv(this.id);else if(By(e)||(e={silent:!!e}),wv[t.type]&&this._model)if(this.__flagInMainProcess)this._pendingActions.push(t);else{var n=e.silent;ev.call(this,t,n);var i=e.flush;i?this._zr.flush():!1!==i&&a.browser.weChat&&this._throttledZrFlush(),nv.call(this,n),iv.call(this,n)}},e.prototype.updateLabelLayout=function(){var t=this._labelManager;t.updateLayoutConfig(this._api),t.layout(this._api),t.processLabelsOverall()},e.prototype.appendData=function(t){if(this._disposed)bv(this.id);else{var e=t.seriesIndex,n=this.getModel().getSeriesByIndex(e);0,n.appendData(t),this._scheduler.unfinished=!0,this.getZr().wakeUp()}},e.internalField=function(){function t(t){for(var e=[],n=t.currentStates,i=0;i<n.length;i++){var r=n[i];"emphasis"!==r&&"blur"!==r&&"select"!==r&&e.push(r)}t.selected&&t.states.select&&e.push("select"),2===t.hoverState&&t.states.emphasis?e.push("emphasis"):1===t.hoverState&&t.states.blur&&e.push("blur"),t.useStates(e)}function e(t,e){if(!t.preventAutoZ){var n=t.get("z"),i=t.get("zlevel");e.group.traverse((function(t){if(!t.isGroup){null!=n&&(t.z=n),null!=i&&(t.zlevel=i);var e=t.getTextContent(),r=t.getTextGuideLine();if(e&&(e.z=t.z,e.zlevel=t.zlevel,e.z2=t.z2+2),r){var o=t.textGuideLineConfig&&t.textGuideLineConfig.showAbove;r.z=t.z,r.zlevel=t.zlevel,r.z2=t.z2+(o?1:-1)}}}))}}function i(t,e){e.group.traverse((function(t){if(!Bu(t)){var e=t.getTextContent(),n=t.getTextGuideLine();t.stateTransition&&(t.stateTransition=null),e&&e.stateTransition&&(e.stateTransition=null),n&&n.stateTransition&&(n.stateTransition=null),t.hasState()?(t.prevStates=t.currentStates,t.clearStates()):t.prevStates&&(t.prevStates=null)}}))}function r(e,n){var i=e.getModel("stateAnimation"),r=e.isAnimationEnabled(),o=i.get("duration"),a=o>0?{duration:o,delay:i.get("delay"),easing:i.get("easing")}:null;n.group.traverse((function(e){if(e.states&&e.states.emphasis){if(Bu(e))return;if(e instanceof Za&&function(t){var e=_s(t);e.normalFill=t.style.fill,e.normalStroke=t.style.stroke;var n=t.states.select||{};e.selectFill=n.style&&n.style.fill||null,e.selectStroke=n.style&&n.style.stroke||null}(e),e.__dirty){var n=e.prevStates;n&&e.useStates(n)}if(r){e.stateTransition=a;var i=e.getTextContent(),o=e.getTextGuideLine();i&&(i.stateTransition=a),o&&(o.stateTransition=a)}e.__dirty&&t(e)}}))}qy=function(t){var e=t._scheduler;e.restorePipelines(t._model),e.prepareStageTasks(),Ky(t,!0),Ky(t,!1),e.plan()},Ky=function(t,e){for(var n=t._model,i=t._scheduler,r=e?t._componentsViews:t._chartsViews,o=e?t._componentsMap:t._chartsMap,a=t._zr,s=t._api,l=0;l<r.length;l++)r[l].__alive=!1;function u(t){var l=t.__requireNewView;t.__requireNewView=!1;var u="_ec_"+t.id+"_"+t.type,h=!l&&o[u];if(!h){var c=Gr(t.type),p=e?pf.getClass(c.main,c.sub):yf.getClass(c.sub);0,(h=new p).init(n,s),o[u]=h,r.push(h),a.add(h.group)}t.__viewId=h.__id=u,h.__alive=!0,h.__model=t,h.group.__ecComponentInfo={mainType:t.mainType,index:t.componentIndex},!e&&i.prepareView(h,t,n,s)}e?n.eachComponent((function(t,e){"series"!==t&&u(e)})):n.eachSeries(u);for(l=0;l<r.length;){var h=r[l];h.__alive?l++:(!e&&h.renderTask.dispose(),a.remove(h.group),h.dispose(n,s),r.splice(l,1),o[h.__id]===h&&delete o[h.__id],h.__id=h.group.__ecComponentInfo=null)}},$y=function(t,e,n,i,r){var o=t._model;if(o.setUpdatePayload(n),i){var a={};a[i+"Id"]=n[i+"Id"],a[i+"Index"]=n[i+"Index"],a[i+"Name"]=n[i+"Name"];var s={mainType:i,query:a};r&&(s.subType=r);var l,u=n.excludeSeriesId;null!=u&&(l=ht(),Ey(_r(u),(function(t){var e=Tr(t,null);null!=e&&l.set(e,!0)}))),o&&o.eachComponent(s,(function(e){l&&null!=l.get(e.id)||(al(n)&&!n.notBlur?e instanceof rf&&function(t,e,n){if(al(e)){var i=e.type===ws,r=t.seriesIndex,o=t.getData(e.dataType),a=Dr(o,e);a=(F(a)?a[0]:a)||0;var s=o.getItemGraphicEl(a);if(!s)for(var l=o.count(),u=0;!s&&u<l;)s=o.getItemGraphicEl(u++);if(s){var h=ys(s);qs(r,h.focus,h.blurScope,n,i)}else{var c=t.get(["emphasis","focus"]),p=t.get(["emphasis","blurScope"]);null!=c&&qs(r,c,p,n,i)}}}(e,n,t._api):ol(n)&&e instanceof rf&&(!function(t,e,n){if(ol(e)){var i=e.dataType,r=Dr(t.getData(i),e);F(r)||(r=[r]),t[e.type===Ts?"toggleSelect":e.type===Ms?"select":"unselect"](r,i)}}(e,n,t._api),Ks(e),fv(t)),h(t["series"===i?"_chartsMap":"_componentsMap"][e.__viewId]))}),t)}else Ey([].concat(t._componentsViews).concat(t._chartsViews),h);function h(i){i&&i.__alive&&i[e]&&i[e](i.__model,o,t._api,n)}},Jy={prepareAndUpdate:function(t){qy(this),Jy.update.call(this,t)},update:function(t){var e=this._model,n=this._api,i=this._zr,r=this._coordSysMgr,o=this._scheduler;if(e){e.setUpdatePayload(t),o.restoreData(e,t),o.performSeriesTasks(e),r.create(e,n),o.performDataProcessorTasks(e,t),tv(this,e),r.update(e,n),av(e),o.performVisualTasks(e,t),sv(this,e,n,t);var s=e.get("backgroundColor")||"transparent",l=e.get("darkMode");if(a.canvasSupported)i.setBackgroundColor(s),null!=l&&"auto"!==l&&i.setDarkMode(l);else{var u=qe(s);s=an(u,"rgb"),0===u[3]&&(s="transparent")}hv(e,n)}},updateTransform:function(t){var e=this,n=this._model,i=this._api;if(n){n.setUpdatePayload(t);var r=[];n.eachComponent((function(o,a){if("series"!==o){var s=e.getViewOfComponentModel(a);if(s&&s.__alive)if(s.updateTransform){var l=s.updateTransform(a,n,i,t);l&&l.update&&r.push(s)}else r.push(s)}}));var o=ht();n.eachSeries((function(r){var a=e._chartsMap[r.__viewId];if(a.updateTransform){var s=a.updateTransform(r,n,i,t);s&&s.update&&o.set(r.uid,1)}else o.set(r.uid,1)})),av(n),this._scheduler.performVisualTasks(n,t,{setDirty:!0,dirtyMap:o}),uv(this,n,i,t,o),hv(n,this._api)}},updateView:function(t){var e=this._model;e&&(e.setUpdatePayload(t),yf.markUpdateMethod(t,"updateView"),av(e),this._scheduler.performVisualTasks(e,t,{setDirty:!0}),sv(this,this._model,this._api,t),hv(e,this._api))},updateVisual:function(t){var e=this,n=this._model;n&&(n.setUpdatePayload(t),n.eachSeries((function(t){t.getData().clearAllVisual()})),yf.markUpdateMethod(t,"updateVisual"),av(n),this._scheduler.performVisualTasks(n,t,{visualType:"visual",setDirty:!0}),n.eachComponent((function(i,r){if("series"!==i){var o=e.getViewOfComponentModel(r);o&&o.__alive&&o.updateVisual(r,n,e._api,t)}})),n.eachSeries((function(i){e._chartsMap[i.__viewId].updateVisual(i,n,e._api,t)})),hv(n,this._api))},updateLayout:function(t){Jy.update.call(this,t)}},Qy=function(t,e,n,i){if(t._disposed)bv(t.id);else{for(var r,o=t._model,a=t._coordSysMgr.getCoordinateSystems(),s=Pr(o,n),l=0;l<a.length;l++){var u=a[l];if(u[e]&&null!=(r=u[e](o,s,i)))return r}0}},tv=function(t,e){var n=t._chartsMap,i=t._scheduler;e.eachSeries((function(t){i.updateStreamModes(t,n[t.__viewId])}))},ev=function(t,e){var n=this,i=this.getModel(),r=t.type,o=t.escapeConnect,a=wv[r],s=a.actionInfo,l=(s.update||"update").split(":"),u=l.pop(),h=null!=l[0]&&Gr(l[0]);this.__flagInMainProcess=!0;var c=[t],p=!1;t.batch&&(p=!0,c=O(t.batch,(function(e){return(e=T(I({},e),t)).batch=null,e})));var d,f=[],g=ol(t),y=al(t)||g;if(Ey(c,(function(t){(d=(d=a.action(t,n._model,n._api))||I({},t)).type=s.event||d.type,f.push(d),y?($y(n,u,t,"series"),fv(n)):h&&$y(n,u,t,h.main,h.sub)})),"none"===u||y||h||(this.__optionUpdated?(qy(this),Jy.update.call(this,t),this.__optionUpdated=!1):Jy[u].call(this,t)),d=p?{type:s.event||r,escapeConnect:o,batch:f}:f[0],this.__flagInMainProcess=!1,!e){var v=this._messageCenter;if(v.trigger(d.type,d),g){var m={type:"selectchanged",escapeConnect:o,selected:$s(i),isFromClick:t.isFromClick||!1,fromAction:t.type,fromActionPayload:t};v.trigger(m.type,m)}}},nv=function(t){for(var e=this._pendingActions;e.length;){var n=e.shift();ev.call(this,n,t)}},iv=function(t){!t&&this.trigger("updated")},rv=function(t,e){t.on("rendered",(function(n){e.trigger("rendered",n),!t.animation.isFinished()||e.__optionUpdated||e._scheduler.unfinished||e._pendingActions.length||e.trigger("finished")}))},ov=function(t,e){t.on("mouseover",(function(t){var n=Jg(t.target,rl);if(n){var i=ys(n);qs(i.seriesIndex,i.focus,i.blurScope,e._api,!0),function(t,e){!js(t,e)&&!t.__highByOuter&&Bs(t,ks)}(n,t),fv(e)}})).on("mouseout",(function(t){var n=Jg(t.target,rl);if(n){var i=ys(n);qs(i.seriesIndex,i.focus,i.blurScope,e._api,!1),function(t,e){!js(t,e)&&!t.__highByOuter&&Bs(t,Ps)}(n,t),fv(e)}})).on("click",(function(t){var n=Jg(t.target,(function(t){return null!=ys(t).dataIndex}),!0);if(n){var i=n.selected?"unselect":"select",r=ys(n);e._api.dispatchAction({type:i,dataType:r.dataType,dataIndexInside:r.dataIndex,seriesIndex:r.seriesIndex,isFromClick:!0})}}))},av=function(t){t.clearColorPalette(),t.eachSeries((function(t){t.clearColorPalette()}))},sv=function(t,e,n,i){lv(t,e,n,i),Ey(t._chartsViews,(function(t){t.__alive=!1})),uv(t,e,n,i),Ey(t._chartsViews,(function(t){t.__alive||t.remove(e,n)}))},lv=function(t,n,o,a,s){Ey(s||t._componentsViews,(function(t){var s=t.__model;i(s,t),t.render(s,n,o,a),e(s,t),r(s,t)}))},uv=function(t,n,o,s,l){var u=t._scheduler,h=t._labelManager;h.clearLabels();var c=!1;n.eachSeries((function(e){var n=t._chartsMap[e.__viewId];n.__alive=!0;var r=n.renderTask;u.updatePayload(r,s),i(e,n),l&&l.get(e.uid)&&r.dirty(),r.perform(u.getPerformArgs(r))&&(c=!0),e.__transientTransitionOpt=null,n.group.silent=!!e.get("silent"),function(t,e){var n=t.get("blendMode")||null;0;e.group.traverse((function(t){t.isGroup||(t.style.blend=n),t.eachPendingDisplayable&&t.eachPendingDisplayable((function(t){t.style.blend=n}))}))}(e,n),Ks(e),h.addLabelsOfSeries(n)})),u.unfinished=c||u.unfinished,h.updateLayoutConfig(o),h.layout(o),h.processLabelsOverall(),n.eachSeries((function(n){var i=t._chartsMap[n.__viewId];e(n,i),r(n,i)})),function(t,e){var n=t._zr.storage,i=0;n.traverse((function(t){t.isGroup||i++})),i>e.get("hoverLayerThreshold")&&!a.node&&!a.worker&&e.eachSeries((function(e){if(!e.preventUsingHoverLayer){var n=t._chartsMap[e.__viewId];n.__alive&&n.group.traverse((function(t){t.states.emphasis&&(t.states.emphasis.hoverLayer=!0)}))}}))}(t,n)},hv=function(t,e){Ey(Cv,(function(n){n(t,e)}))},fv=function(t){t.__needsUpdateStatus=!0,t.getZr().wakeUp()},gv=function(e){e.__needsUpdateStatus&&(e.getZr().storage.traverse((function(e){Bu(e)||t(e)})),e.__needsUpdateStatus=!1)},cv=function(t){return new(function(e){function i(){return null!==e&&e.apply(this,arguments)||this}return n(i,e),i.prototype.getCoordinateSystems=function(){return t._coordSysMgr.getCoordinateSystems()},i.prototype.getComponentByElement=function(e){for(;e;){var n=e.__ecComponentInfo;if(null!=n)return t._model.getComponent(n.mainType,n.index);e=e.parent}},i.prototype.enterEmphasis=function(e,n){Hs(e,n),fv(t)},i.prototype.leaveEmphasis=function(e,n){Ws(e,n),fv(t)},i.prototype.enterBlur=function(e){Ys(e),fv(t)},i.prototype.leaveBlur=function(e){Xs(e),fv(t)},i.prototype.enterSelect=function(e){Us(e),fv(t)},i.prototype.leaveSelect=function(e){Zs(e),fv(t)},i.prototype.getModel=function(){return t.getModel()},i.prototype.getViewOfComponentModel=function(e){return t.getViewOfComponentModel(e)},i.prototype.getViewOfSeriesModel=function(e){return t.getViewOfSeriesModel(e)},i}(vp))(t)},pv=function(t){function e(t,e){for(var n=0;n<t.length;n++){t[n][Xy]=e}}Ey(Sv,(function(n,i){t._messageCenter.on(i,(function(n){if(Pv[t.group]&&0!==t[Xy]){if(n&&n.escapeConnect)return;var i=t.makeActionFromEvent(n),r=[];Ey(kv,(function(e){e!==t&&e.group===t.group&&r.push(e)})),e(r,0),Ey(r,(function(t){1!==t[Xy]&&t.dispatchAction(i)})),e(r,2)}}))}))},dv=function(t,e){var n=t._model;P(_r(e),(function(t){var e,i=t.from,r=t.to;null==r&&yr(e);var o={includeMainTypes:["series"],enableAll:!1,enableNone:!1},a=i?Pr(n,i,o):null,s=Pr(n,r,o).seriesModel;null==s&&(e=""),a&&a.seriesModel!==s&&(e=""),null!=e&&yr(e),s.__transientTransitionOpt={from:i?i.dimension:null,to:r.dimension,dividingMethod:t.dividingMethod}}))}}(),e}(Ft),_v=mv.prototype;_v.on=Uy("on"),_v.off=Uy("off"),_v.one=function(t,e,n){var i=this;gr(),this.on.call(this,t,(function n(){for(var r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];e&&e.apply&&e.apply(this,r),i.off(t,n)}),n)};var xv=["click","dblclick","mouseover","mouseout","mousemove","mousedown","mouseup","globalout","contextmenu"];function bv(t){0}var wv={},Sv={},Mv=[],Iv=[],Tv=[],Cv=[],Av=[],Dv={},Lv={},kv={},Pv={},Ov=+new Date-0,Rv=+new Date-0,Nv="_echarts_instance_";function Ev(t){Pv[t]=!1}var zv=Ev;function Bv(t){return kv[function(t,e){return t.getAttribute?t.getAttribute(e):t[e]}(t,Nv)]}function Vv(t,e){Dv[t]=e}function Fv(t){Vy(Iv,t)<0&&Iv.push(t)}function Gv(t,e){qv(Mv,t,e,2e3)}function Hv(t){Vy(Tv,t)<0&&t&&Tv.push(t)}function Wv(t){Vy(Cv,t)<0&&t&&Cv.push(t)}function Yv(t,e,n){"function"==typeof e&&(n=e,e="");var i=By(t)?t.type:[t,t={event:e}][0];t.event=(t.event||i).toLowerCase(),e=t.event,Sv[e]||(Ny(Yy.test(i)&&Yy.test(e)),wv[i]||(wv[i]={action:n,actionInfo:t}),Sv[e]=i)}function Xv(t,e){_p.register(t,e)}function Uv(t,e){qv(Av,t,e,1e3,"layout")}function Zv(t,e){qv(Av,t,e,3e3,"visual")}var jv=[];function qv(t,e,n,i,r){if((zy(e)||By(e))&&(n=e,e=i),!(Vy(jv,n)>=0)){jv.push(n);var o=zf.wrapStageHandler(n,r);o.__prio=e,o.__raw=n,t.push(o)}}function Kv(t,e){Lv[t]=e}function $v(t,e,n){sg(t,e,n)}var Jv=function(t){var e=(t=w(t)).type,n="";e||yr(n);var i=e.split(":");2!==i.length&&yr(n);var r=!1;"echarts"===i[0]&&(e=i[1],r=!0),t.__isBuiltIn=r,Rd.set(e,t)};Zv(Gy,Pf),Zv(Hy,Rf),Zv(Hy,Nf),Zv(Gy,cg),Zv(Hy,{createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){if(t.hasSymbolVisual&&!e.isSeriesFiltered(t))return{dataEach:t.getData().hasItemOption?function(t,e){var n=t.getItemModel(e),i=n.getShallow("symbol",!0),r=n.getShallow("symbolSize",!0),o=n.getShallow("symbolRotate",!0),a=n.getShallow("symbolKeepAspect",!0);null!=i&&t.setItemVisual(e,"symbol",i),null!=r&&t.setItemVisual(e,"symbolSize",r),null!=o&&t.setItemVisual(e,"symbolRotate",o),null!=a&&t.setItemVisual(e,"symbolKeepAspect",a)}:null}}}),Zv(7e3,(function(t,e){t.eachRawSeries((function(n){if(!t.isSeriesFiltered(n)){var i=n.getData();i.hasItemVisual()&&i.each((function(t){var n=i.getItemVisual(t,"decal");n&&(i.ensureUniqueItemVisual(t,"style").decal=ky(n,e))}));var r=i.getVisual("decal");if(r)i.getVisual("style").decal=ky(r,e)}}))})),Fv(Hp),Gv(900,(function(t){var e=ht();t.eachSeries((function(t){var n=t.get("stack");if(n){var i=e.get(n)||e.set(n,[]),r=t.getData(),o={stackResultDimension:r.getCalculationInfo("stackResultDimension"),stackedOverDimension:r.getCalculationInfo("stackedOverDimension"),stackedDimension:r.getCalculationInfo("stackedDimension"),stackedByDimension:r.getCalculationInfo("stackedByDimension"),isStackedByIndex:r.getCalculationInfo("isStackedByIndex"),data:r,seriesModel:t};if(!o.stackedDimension||!o.isStackedByIndex&&!o.stackedByDimension)return;i.length&&r.setCalculationInfo("stackedOnSeries",i[i.length-1].seriesModel),i.push(o)}})),e.each(Wp)})),Kv("default",(function(t,e){T(e=e||{},{text:"loading",textColor:"#000",fontSize:12,fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",maskColor:"rgba(255, 255, 255, 0.8)",showSpinner:!0,color:"#5470c6",spinnerRadius:10,lineWidth:5,zlevel:0});var n=new zi,i=new os({style:{fill:e.maskColor},zlevel:e.zlevel,z:1e4});n.add(i);var r,o=new ls({style:{text:e.text,fill:e.textColor,fontSize:e.fontSize,fontWeight:e.fontWeight,fontStyle:e.fontStyle,fontFamily:e.fontFamily}}),a=new os({style:{fill:"none"},textContent:o,textConfig:{position:"right",distance:10},zlevel:e.zlevel,z:10001});return n.add(a),e.showSpinner&&((r=new au({shape:{startAngle:-Ef/2,endAngle:-Ef/2+.1,r:e.spinnerRadius},style:{stroke:e.color,lineCap:"round",lineWidth:e.lineWidth},zlevel:e.zlevel,z:10001})).animateShape(!0).when(1e3,{endAngle:3*Ef/2}).start("circularInOut"),r.animateShape(!0).when(1e3,{startAngle:3*Ef/2}).delay(300).start("circularInOut"),n.add(r)),n.resize=function(){var n=o.getBoundingRect().width,s=e.showSpinner?e.spinnerRadius:0,l=(t.getWidth()-2*s-(e.showSpinner&&n?10:0)-n)/2-(e.showSpinner&&n?0:5+n/2)+(e.showSpinner?0:n/2)+(n?0:s),u=t.getHeight()/2;e.showSpinner&&r.setShape({cx:l,cy:u}),a.setShape({x:l-s,y:u-s,width:2*s,height:2*s}),i.setShape({x:0,y:0,width:t.getWidth(),height:t.getHeight()})},n.resize(),n})),Yv({type:ws,event:ws,update:ws},ft),Yv({type:Ss,event:Ss,update:Ss},ft),Yv({type:Ms,event:Ms,update:Ms},ft),Yv({type:Is,event:Is,update:Is},ft),Yv({type:Ts,event:Ts,update:Ts},ft),Vv("light",Qf),Vv("dark",rg);var Qv=[],tm={registerPreprocessor:Fv,registerProcessor:Gv,registerPostInit:Hv,registerPostUpdate:Wv,registerAction:Yv,registerCoordinateSystem:Xv,registerLayout:Uv,registerVisual:Zv,registerTransform:Jv,registerLoading:Kv,registerMap:$v,PRIORITY:Wy,ComponentModel:Nc,ComponentView:pf,SeriesModel:rf,ChartView:yf,registerComponentModel:function(t){Nc.registerClass(t)},registerComponentView:function(t){pf.registerClass(t)},registerSeriesModel:function(t){rf.registerClass(t)},registerChartView:function(t){yf.registerClass(t)},registerSubTypeDefaulter:function(t,e){Nc.registerSubTypeDefaulter(t,e)},registerPainter:function(t,e){Wi(t,e)}};function em(t){F(t)?P(t,(function(t){em(t)})):A(Qv,t)>=0||(Qv.push(t),G(t)&&(t={install:t}),t.install(tm))}function nm(t){return null==t?0:t.length||1}function im(t){return t}var rm=function(){function t(t,e,n,i,r,o){this._old=t,this._new=e,this._oldKeyGetter=n||im,this._newKeyGetter=i||im,this.context=r,this._diffModeMultiple="multiple"===o}return t.prototype.add=function(t){return this._add=t,this},t.prototype.update=function(t){return this._update=t,this},t.prototype.updateManyToOne=function(t){return this._updateManyToOne=t,this},t.prototype.updateOneToMany=function(t){return this._updateOneToMany=t,this},t.prototype.remove=function(t){return this._remove=t,this},t.prototype.execute=function(){this[this._diffModeMultiple?"_executeMultiple":"_executeOneToOne"]()},t.prototype._executeOneToOne=function(){var t=this._old,e=this._new,n={},i=new Array(t.length),r=new Array(e.length);this._initIndexMap(t,null,i,"_oldKeyGetter"),this._initIndexMap(e,n,r,"_newKeyGetter");for(var o=0;o<t.length;o++){var a=i[o],s=n[a],l=nm(s);if(l>1){var u=s.shift();1===s.length&&(n[a]=s[0]),this._update&&this._update(u,o)}else 1===l?(n[a]=null,this._update&&this._update(s,o)):this._remove&&this._remove(o)}this._performRestAdd(r,n)},t.prototype._executeMultiple=function(){var t=this._old,e=this._new,n={},i={},r=[],o=[];this._initIndexMap(t,n,r,"_oldKeyGetter"),this._initIndexMap(e,i,o,"_newKeyGetter");for(var a=0;a<r.length;a++){var s=r[a],l=n[s],u=i[s],h=nm(l),c=nm(u);if(h>1&&1===c)this._updateManyToOne&&this._updateManyToOne(u,l),i[s]=null;else if(1===h&&c>1)this._updateOneToMany&&this._updateOneToMany(u,l),i[s]=null;else if(1===h&&1===c)this._update&&this._update(u,l),i[s]=null;else if(h>1)for(var p=0;p<h;p++)this._remove&&this._remove(l[p]);else this._remove&&this._remove(l)}this._performRestAdd(o,i)},t.prototype._performRestAdd=function(t,e){for(var n=0;n<t.length;n++){var i=t[n],r=e[i],o=nm(r);if(o>1)for(var a=0;a<o;a++)this._add&&this._add(r[a]);else 1===o&&this._add&&this._add(r);e[i]=null}},t.prototype._initIndexMap=function(t,e,n,i){for(var r=this._diffModeMultiple,o=0;o<t.length;o++){var a="_ec_"+this[i](t[o],o);if(r||(n[o]=a),e){var s=e[a],l=nm(s);0===l?(e[a]=o,r&&n.push(a)):1===l?e[a]=[s,o]:s.push(o)}}},t}();function om(t,e){return t.hasOwnProperty(e)||(t[e]=[]),t[e]}function am(t){return"category"===t?"ordinal":"time"===t?"time":"float"}var sm,lm,um,hm,cm,pm,dm,fm,gm,ym,vm,mm,_m,xm,bm=function(t){this.otherDims={},null!=t&&I(this,t)},wm=Math.floor,Sm=X,Mm=O,Im="undefined",Tm={float:typeof Float64Array===Im?Array:Float64Array,int:typeof Int32Array===Im?Array:Int32Array,ordinal:Array,number:Array,time:Array},Cm=typeof Uint32Array===Im?Array:Uint32Array,Am=typeof Int32Array===Im?Array:Int32Array,Dm=typeof Uint16Array===Im?Array:Uint16Array,Lm=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_rawData","_dimValueGetter","_count","_rawCount","_nameDimIdx","_idDimIdx","_nameRepeatCount"],km=["_extent","_approximateExtent","_rawExtent"],Pm=function(){function t(t,e){this.type="list",this._count=0,this._rawCount=0,this._storage={},this._storageArr=[],this._nameList=[],this._idList=[],this._visual={},this._layout={},this._itemVisuals=[],this._itemLayouts=[],this._graphicEls=[],this._rawExtent={},this._extent={},this._approximateExtent={},this._calculationInfo={},this.hasItemOption=!0,this.TRANSFERABLE_METHODS=["cloneShallow","downSample","lttbDownSample","map"],this.CHANGABLE_METHODS=["filterSelf","selectRange"],this.DOWNSAMPLE_METHODS=["downSample","lttbDownSample"],this.getRawIndex=cm,t=t||["x","y"];for(var n={},i=[],r={},o=0;o<t.length;o++){var a=t[o],s=H(a)?new bm({name:a}):a instanceof bm?a:new bm(a),l=s.name;s.type=s.type||"float",s.coordDim||(s.coordDim=l,s.coordDimIndex=0);var u=s.otherDims=s.otherDims||{};i.push(l),n[l]=s,s.index=o,s.createInvertedIndices&&(r[l]=[]),0===u.itemName&&(this._nameDimIdx=o,this._nameOrdinalMeta=s.ordinalMeta),0===u.itemId&&(this._idDimIdx=o,this._idOrdinalMeta=s.ordinalMeta)}this.dimensions=i,this._dimensionInfos=n,this.hostModel=e,this._dimensionsSummary=function(t){var e={},n=e.encode={},i=ht(),r=[],o=[],a=e.userOutput={dimensionNames:t.dimensions.slice(),encode:{}};P(t.dimensions,(function(e){var s,l=t.getDimensionInfo(e),u=l.coordDim;if(u){var h=l.coordDimIndex;om(n,u)[h]=e,l.isExtraCoord||(i.set(u,1),"ordinal"!==(s=l.type)&&"time"!==s&&(r[0]=e),om(a.encode,u)[h]=l.index),l.defaultTooltip&&o.push(e)}Vc.each((function(t,e){var i=om(n,e),r=l.otherDims[e];null!=r&&!1!==r&&(i[r]=l.name)}))}));var s=[],l={};i.each((function(t,e){var i=n[e];l[e]=i[0],s=s.concat(i)})),e.dataDimsOnCoord=s,e.encodeFirstDimNotExtra=l;var u=n.label;u&&u.length&&(r=u.slice());var h=n.tooltip;return h&&h.length?o=h.slice():o.length||(o=r.slice()),n.defaultedLabel=r,n.defaultedTooltip=o,e}(this),this._invertedIndicesMap=r,this.userOutput=this._dimensionsSummary.userOutput}return t.prototype.getDimension=function(t){return"number"!=typeof t&&(isNaN(t)||this._dimensionInfos.hasOwnProperty(t))||(t=this.dimensions[t]),t},t.prototype.getDimensionInfo=function(t){return this._dimensionInfos[this.getDimension(t)]},t.prototype.getDimensionsOnCoord=function(){return this._dimensionsSummary.dataDimsOnCoord.slice()},t.prototype.mapDimension=function(t,e){var n=this._dimensionsSummary;if(null==e)return n.encodeFirstDimNotExtra[t];var i=n.encode[t];return i?i[e]:null},t.prototype.mapDimensionsAll=function(t){return(this._dimensionsSummary.encode[t]||[]).slice()},t.prototype.initData=function(t,e,n){var i=Kp(t)||k(t),r=i?new id(t,this.dimensions.length):t;this._rawData=r;var o=r.getSource().sourceFormat;this._storage={},this._indices=null,this._dontMakeIdFromName=null!=this._idDimIdx||o===Yc||!!r.fillStorage,this._nameList=(e||[]).slice(),this._idList=[],this._nameRepeatCount={},n||(this.hasItemOption=!1),this.defaultDimValueGetter=sm[o],this._dimValueGetter=n=n||this.defaultDimValueGetter,this._dimValueGetterArrayRows=sm.arrayRows,this._rawExtent={},this._initDataFromProvider(0,r.count()),r.pure&&(this.hasItemOption=!1)},t.prototype.getProvider=function(){return this._rawData},t.prototype.appendData=function(t){var e=this._rawData,n=this.count();e.appendData(t);var i=e.count();e.persistent||(i+=n),this._initDataFromProvider(n,i,!0)},t.prototype.appendValues=function(t,e){for(var n=this._storage,i=this.dimensions,r=i.length,o=this._rawExtent,a=this.count(),s=a+Math.max(t.length,e?e.length:0),l=0;l<r;l++){var u=i[l];o[u]||(o[u]=mm()),hm(n,this._dimensionInfos[u],s,!0)}for(var h=Mm(i,(function(t){return o[t]})),c=this._storageArr=Mm(i,(function(t){return n[t]})),p=[],d=a;d<s;d++){for(var f=d-a,g=0;g<r;g++){u=i[g];var y=this._dimValueGetterArrayRows(t[f]||p,u,f,g);c[g][d]=y;var v=h[g];y<v[0]&&(v[0]=y),y>v[1]&&(v[1]=y)}e&&(this._nameList[d]=e[f],this._dontMakeIdFromName||gm(this,d))}this._rawCount=this._count=s,this._extent={},lm(this)},t.prototype._initDataFromProvider=function(t,e,n){if(!(t>=e)){for(var i=this._rawData,r=this._storage,o=this.dimensions,a=o.length,s=this._dimensionInfos,l=this._nameList,u=this._idList,h=this._rawExtent,c=i.getSource().sourceFormat===Fc,p=0;p<a;p++){var d=o[p];h[d]||(h[d]=mm()),hm(r,s[d],e,n)}var f=this._storageArr=Mm(o,(function(t){return r[t]})),g=Mm(o,(function(t){return h[t]}));if(i.fillStorage)i.fillStorage(t,e,f,g);else for(var y=[],v=t;v<e;v++){y=i.getItem(v,y);for(var m=0;m<a;m++){d=o[m];var _=f[m],x=this._dimValueGetter(y,d,v,m);_[v]=x;var b=g[m];x<b[0]&&(b[0]=x),x>b[1]&&(b[1]=x)}if(c&&!i.pure&&y){var w=y.name;null==l[v]&&null!=w&&(l[v]=Tr(w,null));var S=y.id;null==u[v]&&null!=S&&(u[v]=Tr(S,null))}this._dontMakeIdFromName||gm(this,v)}!i.persistent&&i.clean&&i.clean(),this._rawCount=this._count=e,this._extent={},lm(this)}},t.prototype.count=function(){return this._count},t.prototype.getIndices=function(){var t,e=this._indices;if(e){var n=e.constructor,i=this._count;if(n===Array){t=new n(i);for(var r=0;r<i;r++)t[r]=e[r]}else t=new n(e.buffer,0,i)}else{t=new(n=um(this))(this.count());for(r=0;r<t.length;r++)t[r]=r}return t},t.prototype.getByDimIdx=function(t,e){if(!(e>=0&&e<this._count))return NaN;var n=this._storageArr[t];return n?n[this.getRawIndex(e)]:NaN},t.prototype.get=function(t,e){if(!(e>=0&&e<this._count))return NaN;var n=this._storage[t];return n?n[this.getRawIndex(e)]:NaN},t.prototype.getByRawIndex=function(t,e){if(!(e>=0&&e<this._rawCount))return NaN;var n=this._storage[t];return n?n[e]:NaN},t.prototype.getValues=function(t,e){var n=[];F(t)||(e=t,t=this.dimensions);for(var i=0,r=t.length;i<r;i++)n.push(this.get(t[i],e));return n},t.prototype.hasValue=function(t){for(var e=this._dimensionsSummary.dataDimsOnCoord,n=0,i=e.length;n<i;n++)if(isNaN(this.get(e[n],t)))return!1;return!0},t.prototype.getDataExtent=function(t){t=this.getDimension(t);var e=this._storage[t],n=mm();if(!e)return n;var i,r=this.count();if(!this._indices)return this._rawExtent[t].slice();if(i=this._extent[t])return i.slice();for(var o=(i=n)[0],a=i[1],s=0;s<r;s++){var l=e[this.getRawIndex(s)];l<o&&(o=l),l>a&&(a=l)}return i=[o,a],this._extent[t]=i,i},t.prototype.getApproximateExtent=function(t){return t=this.getDimension(t),this._approximateExtent[t]||this.getDataExtent(t)},t.prototype.setApproximateExtent=function(t,e){e=this.getDimension(e),this._approximateExtent[e]=t.slice()},t.prototype.getCalculationInfo=function(t){return this._calculationInfo[t]},t.prototype.setCalculationInfo=function(t,e){Sm(t)?I(this._calculationInfo,t):this._calculationInfo[t]=e},t.prototype.getSum=function(t){var e=0;if(this._storage[t])for(var n=0,i=this.count();n<i;n++){var r=this.get(t,n);isNaN(r)||(e+=r)}return e},t.prototype.getMedian=function(t){var e=[];this.each(t,(function(t){isNaN(t)||e.push(t)}));var n=e.sort((function(t,e){return t-e})),i=this.count();return 0===i?0:i%2==1?n[(i-1)/2]:(n[i/2]+n[i/2-1])/2},t.prototype.rawIndexOf=function(t,e){var n=t&&this._invertedIndicesMap[t];var i=n[e];return null==i||isNaN(i)?-1:i},t.prototype.indexOfName=function(t){for(var e=0,n=this.count();e<n;e++)if(this.getName(e)===t)return e;return-1},t.prototype.indexOfRawIndex=function(t){if(t>=this._rawCount||t<0)return-1;if(!this._indices)return t;var e=this._indices,n=e[t];if(null!=n&&n<this._count&&n===t)return t;for(var i=0,r=this._count-1;i<=r;){var o=(i+r)/2|0;if(e[o]<t)i=o+1;else{if(!(e[o]>t))return o;r=o-1}}return-1},t.prototype.indicesOfNearest=function(t,e,n){var i=this._storage[t],r=[];if(!i)return r;null==n&&(n=1/0);for(var o=1/0,a=-1,s=0,l=0,u=this.count();l<u;l++){var h=e-i[this.getRawIndex(l)],c=Math.abs(h);c<=n&&((c<o||c===o&&h>=0&&a<0)&&(o=c,a=h,s=0),h===a&&(r[s++]=l))}return r.length=s,r},t.prototype.getRawDataItem=function(t){if(this._rawData.persistent)return this._rawData.getItem(this.getRawIndex(t));for(var e=[],n=0;n<this.dimensions.length;n++){var i=this.dimensions[n];e.push(this.get(i,t))}return e},t.prototype.getName=function(t){var e=this.getRawIndex(t),n=this._nameList[e];return null==n&&null!=this._nameDimIdx&&(n=fm(this,this._nameDimIdx,this._nameOrdinalMeta,e)),null==n&&(n=""),n},t.prototype.getId=function(t){return dm(this,this.getRawIndex(t))},t.prototype.each=function(t,e,n,i){var r=this;if(this._count){"function"==typeof t&&(i=n,n=e,e=t,t=[]);var o=n||i||this,a=Mm(ym(t),this.getDimension,this);0;for(var s=a.length,l=Mm(a,(function(t){return r._dimensionInfos[t].index})),u=this._storageArr,h=0,c=this.count();h<c;h++){var p=this.getRawIndex(h);switch(s){case 0:e.call(o,h);break;case 1:e.call(o,u[l[0]][p],h);break;case 2:e.call(o,u[l[0]][p],u[l[1]][p],h);break;default:for(var d=0,f=[];d<s;d++)f[d]=u[l[d]][p];f[d]=h,e.apply(o,f)}}}},t.prototype.filterSelf=function(t,e,n,i){var r=this;if(this._count){"function"==typeof t&&(i=n,n=e,e=t,t=[]);var o=n||i||this,a=Mm(ym(t),this.getDimension,this);0;for(var s=this.count(),l=new(um(this))(s),u=[],h=a.length,c=0,p=Mm(a,(function(t){return r._dimensionInfos[t].index})),d=p[0],f=this._storageArr,g=0;g<s;g++){var y=void 0,v=this.getRawIndex(g);if(0===h)y=e.call(o,g);else if(1===h){var m=f[d][v];y=e.call(o,m,g)}else{for(var _=0;_<h;_++)u[_]=f[p[_]][v];u[_]=g,y=e.apply(o,u)}y&&(l[c++]=v)}return c<s&&(this._indices=l),this._count=c,this._extent={},this.getRawIndex=this._indices?pm:cm,this}},t.prototype.selectRange=function(t){var e=this,n=this._count;if(n){var i=[];for(var r in t)t.hasOwnProperty(r)&&i.push(r);0;var o=i.length;if(o){var a=this.count(),s=new(um(this))(a),l=0,u=i[0],h=Mm(i,(function(t){return e._dimensionInfos[t].index})),c=t[u][0],p=t[u][1],d=this._storageArr,f=!1;if(!this._indices){var g=0;if(1===o){for(var y=d[h[0]],v=0;v<n;v++){((b=y[v])>=c&&b<=p||isNaN(b))&&(s[l++]=g),g++}f=!0}else if(2===o){y=d[h[0]];var m=d[h[1]],_=t[i[1]][0],x=t[i[1]][1];for(v=0;v<n;v++){var b=y[v],w=m[v];(b>=c&&b<=p||isNaN(b))&&(w>=_&&w<=x||isNaN(w))&&(s[l++]=g),g++}f=!0}}if(!f)if(1===o)for(v=0;v<a;v++){var S=this.getRawIndex(v);((b=d[h[0]][S])>=c&&b<=p||isNaN(b))&&(s[l++]=S)}else for(v=0;v<a;v++){for(var M=!0,I=(S=this.getRawIndex(v),0);I<o;I++){var T=i[I];((b=d[h[I]][S])<t[T][0]||b>t[T][1])&&(M=!1)}M&&(s[l++]=this.getRawIndex(v))}return l<a&&(this._indices=s),this._count=l,this._extent={},this.getRawIndex=this._indices?pm:cm,this}}},t.prototype.mapArray=function(t,e,n,i){"function"==typeof t&&(i=n,n=e,e=t,t=[]),n=n||i||this;var r=[];return this.each(t,(function(){r.push(e&&e.apply(this,arguments))}),n),r},t.prototype.map=function(t,e,n,i){var r=n||i||this,o=Mm(ym(t),this.getDimension,this);var a=vm(this,o),s=a._storage;a._indices=this._indices,a.getRawIndex=a._indices?pm:cm;for(var l=[],u=o.length,h=this.count(),c=[],p=a._rawExtent,d=0;d<h;d++){for(var f=0;f<u;f++)c[f]=this.get(o[f],d);c[u]=d;var g=e&&e.apply(r,c);if(null!=g){"object"!=typeof g&&(l[0]=g,g=l);for(var y=this.getRawIndex(d),v=0;v<g.length;v++){var m=o[v],_=g[v],x=p[m],b=s[m];b&&(b[y]=_),_<x[0]&&(x[0]=_),_>x[1]&&(x[1]=_)}}}return a},t.prototype.downSample=function(t,e,n,i){for(var r=vm(this,[t]),o=r._storage,a=[],s=wm(1/e),l=o[t],u=this.count(),h=r._rawExtent[t],c=new(um(this))(u),p=0,d=0;d<u;d+=s){s>u-d&&(s=u-d,a.length=s);for(var f=0;f<s;f++){var g=this.getRawIndex(d+f);a[f]=l[g]}var y=n(a),v=this.getRawIndex(Math.min(d+i(a,y)||0,u-1));l[v]=y,y<h[0]&&(h[0]=y),y>h[1]&&(h[1]=y),c[p++]=v}return r._count=p,r._indices=c,r.getRawIndex=pm,r},t.prototype.lttbDownSample=function(t,e){var n,i,r,o=vm(this,[]),a=o._storage[t],s=this.count(),l=new(um(this))(s),u=0,h=wm(1/e),c=this.getRawIndex(0);l[u++]=c;for(var p=1;p<s-1;p+=h){for(var d=Math.min(p+h,s-1),f=Math.min(p+2*h,s),g=(f+d)/2,y=0,v=d;v<f;v++){var m=a[S=this.getRawIndex(v)];isNaN(m)||(y+=m)}y/=f-d;var _=p,x=Math.min(p+h,s),b=p-1,w=a[c];n=-1,r=_;for(v=_;v<x;v++){var S;m=a[S=this.getRawIndex(v)];isNaN(m)||(i=Math.abs((b-g)*(m-w)-(b-v)*(y-w)))>n&&(n=i,r=S)}l[u++]=r,c=r}return l[u++]=this.getRawIndex(s-1),o._count=u,o._indices=l,o.getRawIndex=pm,o},t.prototype.getItemModel=function(t){var e=this.hostModel,n=this.getRawDataItem(t);return new Sh(n,e,e&&e.ecModel)},t.prototype.diff=function(t){var e=this;return new rm(t?t.getIndices():[],this.getIndices(),(function(e){return dm(t,e)}),(function(t){return dm(e,t)}))},t.prototype.getVisual=function(t){var e=this._visual;return e&&e[t]},t.prototype.setVisual=function(t,e){this._visual=this._visual||{},Sm(t)?I(this._visual,t):this._visual[t]=e},t.prototype.getItemVisual=function(t,e){var n=this._itemVisuals[t],i=n&&n[e];return null==i?this.getVisual(e):i},t.prototype.hasItemVisual=function(){return this._itemVisuals.length>0},t.prototype.ensureUniqueItemVisual=function(t,e){var n=this._itemVisuals,i=n[t];i||(i=n[t]={});var r=i[e];return null==r&&(F(r=this.getVisual(e))?r=r.slice():Sm(r)&&(r=I({},r)),i[e]=r),r},t.prototype.setItemVisual=function(t,e,n){var i=this._itemVisuals[t]||{};this._itemVisuals[t]=i,Sm(e)?I(i,e):i[e]=n},t.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},t.prototype.setLayout=function(t,e){if(Sm(t))for(var n in t)t.hasOwnProperty(n)&&this.setLayout(n,t[n]);else this._layout[t]=e},t.prototype.getLayout=function(t){return this._layout[t]},t.prototype.getItemLayout=function(t){return this._itemLayouts[t]},t.prototype.setItemLayout=function(t,e,n){this._itemLayouts[t]=n?I(this._itemLayouts[t]||{},e):e},t.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},t.prototype.setItemGraphicEl=function(t,e){var n=this.hostModel;if(e){var i=ys(e);i.dataIndex=t,i.dataType=this.dataType,i.seriesIndex=n&&n.seriesIndex,"group"===e.type&&e.traverse(_m,e)}this._graphicEls[t]=e},t.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},t.prototype.eachItemGraphicEl=function(t,e){P(this._graphicEls,(function(n,i){n&&t&&t.call(e,n,i)}))},t.prototype.cloneShallow=function(e){e||(e=new t(Mm(this.dimensions,this.getDimensionInfo,this),this.hostModel));if(e._storage=this._storage,e._storageArr=this._storageArr,xm(e,this),this._indices){var n=this._indices.constructor;if(n===Array){var i=this._indices.length;e._indices=new n(i);for(var r=0;r<i;r++)e._indices[r]=this._indices[r]}else e._indices=new n(this._indices)}else e._indices=null;return e.getRawIndex=e._indices?pm:cm,e},t.prototype.wrapMethod=function(t,e){var n=this[t];"function"==typeof n&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var t=n.apply(this,arguments);return e.apply(this,[t].concat(nt(arguments)))})},t.internalField=function(){function e(t,e,n,i){return bd(t[i],this._dimensionInfos[e])}sm={arrayRows:e,objectRows:function(t,e,n,i){return bd(t[e],this._dimensionInfos[e])},keyedColumns:e,original:function(t,e,n,i){var r=t&&(null==t.value?t:t.value);return!this._rawData.pure&&function(t){return X(t)&&!(t instanceof Array)}(t)&&(this.hasItemOption=!0),bd(r instanceof Array?r[i]:r,this._dimensionInfos[e])},typedArray:function(t,e,n,i){return t[i]}},lm=function(t){var e=t._invertedIndicesMap;P(e,(function(n,i){var r=t._dimensionInfos[i].ordinalMeta;if(r){n=e[i]=new Am(r.categories.length);for(var o=0;o<n.length;o++)n[o]=-1;for(o=0;o<t._count;o++)n[t.get(i,o)]=o}}))},fm=function(t,e,n,i){var r,o=t._storageArr[e];return o&&(r=o[i],n&&n.categories.length&&(r=n.categories[r])),Tr(r,null)},um=function(t){return t._rawCount>65535?Cm:Dm},hm=function(t,e,n,i){var r=Tm[e.type],o=e.name;if(i){var a=t[o],s=a&&a.length;if(s!==n){for(var l=new r(n),u=0;u<s;u++)l[u]=a[u];t[o]=l}}else t[o]=new r(n)},cm=function(t){return t},pm=function(t){return t<this._count&&t>=0?this._indices[t]:-1},dm=function(t,e){var n=t._idList[e];return null==n&&null!=t._idDimIdx&&(n=fm(t,t._idDimIdx,t._idOrdinalMeta,e)),null==n&&(n="e\0\0"+e),n},ym=function(t){return F(t)||(t=null!=t?[t]:[]),t},function(t,e){for(var n=0;n<e.length;n++)t._dimensionInfos[e[n]]||console.error("Unkown dimension "+e[n])},vm=function(e,n){var i=e.dimensions,r=new t(Mm(i,e.getDimensionInfo,e),e.hostModel);xm(r,e);for(var o,a,s=r._storage={},l=e._storage,u=r._storageArr=[],h=0;h<i.length;h++){var c=i[h];l[c]&&(A(n,c)>=0?(s[c]=(o=l[c],a=void 0,(a=o.constructor)===Array?o.slice():new a(o)),r._rawExtent[c]=mm(),r._extent[c]=null):s[c]=l[c],u.push(s[c]))}return r},mm=function(){return[1/0,-1/0]},_m=function(t){var e=ys(t),n=ys(this);e.seriesIndex=n.seriesIndex,e.dataIndex=n.dataIndex,e.dataType=n.dataType},xm=function(t,e){P(Lm.concat(e.__wrappedMethods||[]),(function(n){e.hasOwnProperty(n)&&(t[n]=e[n])})),t.__wrappedMethods=e.__wrappedMethods,P(km,(function(n){t[n]=w(e[n])})),t._calculationInfo=I({},e._calculationInfo)},gm=function(t,e){var n=t._nameList,i=t._idList,r=t._nameDimIdx,o=t._idDimIdx,a=n[e],s=i[e];if(null==a&&null!=r&&(n[e]=a=fm(t,r,t._nameOrdinalMeta,e)),null==s&&null!=o&&(i[e]=s=fm(t,o,t._idOrdinalMeta,e)),null==s&&null!=a){var l=t._nameRepeatCount,u=l[a]=(l[a]||0)+1;s=a,u>1&&(s+="__ec__"+u),i[e]=s}}}(),t}();function Om(t,e,n){Kp(e)||(e=Jp(e)),n=n||{},t=(t||[]).slice();for(var i=(n.dimsDef||[]).slice(),r=ht(),o=ht(),a=[],s=function(t,e,n,i){var r=Math.max(t.dimensionsDetectedCount||1,e.length,n.length,i||0);return P(e,(function(t){var e;X(t)&&(e=t.dimsDef)&&(r=Math.max(r,e.length))})),r}(e,t,i,n.dimCount),l=0;l<s;l++){var u=i[l],h=i[l]=I({},X(u)?u:{name:u}),c=h.name,p=a[l]=new bm;null!=c&&null==r.get(c)&&(p.name=p.displayName=c,r.set(c,l)),null!=h.type&&(p.type=h.type),null!=h.displayName&&(p.displayName=h.displayName)}var d=n.encodeDef;!d&&n.encodeDefaulter&&(d=n.encodeDefaulter(e,s));var f=ht(d);f.each((function(t,e){var n=_r(t).slice();if(1===n.length&&!H(n[0])&&n[0]<0)f.set(e,!1);else{var i=f.set(e,[]);P(n,(function(t,n){var o=H(t)?r.get(t):t;null!=o&&o<s&&(i[n]=o,y(a[o],e,n))}))}}));var g=0;function y(t,e,n){null!=Vc.get(e)?t.otherDims[e]=n:(t.coordDim=e,t.coordDimIndex=n,o.set(e,!0))}P(t,(function(t){var e,n,i,r;if(H(t))e=t,r={};else{e=(r=t).name;var o=r.ordinalMeta;r.ordinalMeta=null,(r=w(r)).ordinalMeta=o,n=r.dimsDef,i=r.otherDims,r.name=r.coordDim=r.coordDimIndex=r.dimsDef=r.otherDims=null}var s=f.get(e);if(!1!==s){if(!(s=_r(s)).length)for(var l=0;l<(n&&n.length||1);l++){for(;g<a.length&&null!=a[g].coordDim;)g++;g<a.length&&s.push(g++)}P(s,(function(t,o){var s=a[t];if(y(T(s,r),e,o),null==s.name&&n){var l=n[o];!X(l)&&(l={name:l}),s.name=s.displayName=l.name,s.defaultTooltip=l.defaultTooltip}i&&T(s.otherDims,i)}))}}));var v=n.generateCoord,m=n.generateCoordCount,_=null!=m;m=v?m||1:0;for(var x=v||"value",b=0;b<s;b++){null==(p=a[b]=a[b]||new bm).coordDim&&(p.coordDim=Rm(x,o,_),p.coordDimIndex=0,(!v||m<=0)&&(p.isExtraCoord=!0),m--),null==p.name&&(p.name=Rm(p.coordDim,r,!1)),null!=p.type||ep(e,b)!==jc&&(!p.isExtraCoord||null==p.otherDims.itemName&&null==p.otherDims.seriesName)||(p.type="ordinal")}return a}function Rm(t,e,n){if(n||null!=e.get(t)){for(var i=0;null!=e.get(t+i);)i++;t+=i}return e.set(t,!0),t}function Nm(t,e){return Om((e=e||{}).coordDimensions||[],t,{dimsDef:e.dimensionsDefine||t.dimensionsDefine,encodeDef:e.encodeDefine||t.encodeDefine,dimCount:e.dimensionsCount,encodeDefaulter:e.encodeDefaulter,generateCoord:e.generateCoord,generateCoordCount:e.generateCoordCount})}var Em=function(t){this.coordSysDims=[],this.axisMap=ht(),this.categoryAxisMap=ht(),this.coordSysName=t};var zm={cartesian2d:function(t,e,n,i){var r=t.getReferringComponents("xAxis",Or).models[0],o=t.getReferringComponents("yAxis",Or).models[0];e.coordSysDims=["x","y"],n.set("x",r),n.set("y",o),Bm(r)&&(i.set("x",r),e.firstCategoryDimIndex=0),Bm(o)&&(i.set("y",o),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=1))},singleAxis:function(t,e,n,i){var r=t.getReferringComponents("singleAxis",Or).models[0];e.coordSysDims=["single"],n.set("single",r),Bm(r)&&(i.set("single",r),e.firstCategoryDimIndex=0)},polar:function(t,e,n,i){var r=t.getReferringComponents("polar",Or).models[0],o=r.findAxisModel("radiusAxis"),a=r.findAxisModel("angleAxis");e.coordSysDims=["radius","angle"],n.set("radius",o),n.set("angle",a),Bm(o)&&(i.set("radius",o),e.firstCategoryDimIndex=0),Bm(a)&&(i.set("angle",a),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=1))},geo:function(t,e,n,i){e.coordSysDims=["lng","lat"]},parallel:function(t,e,n,i){var r=t.ecModel,o=r.getComponent("parallel",t.get("parallelIndex")),a=e.coordSysDims=o.dimensions.slice();P(o.parallelAxisIndex,(function(t,o){var s=r.getComponent("parallelAxis",t),l=a[o];n.set(l,s),Bm(s)&&(i.set(l,s),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=o))}))}};function Bm(t){return"category"===t.get("type")}function Vm(t,e,n){var i,r,o,a,s=(n=n||{}).byIndex,l=n.stackedCoordDimension,u=!(!t||!t.get("stack"));if(P(e,(function(t,n){H(t)&&(e[n]=t={name:t}),u&&!t.isExtraCoord&&(s||i||!t.ordinalMeta||(i=t),r||"ordinal"===t.type||"time"===t.type||l&&l!==t.coordDim||(r=t))})),!r||s||i||(s=!0),r){o="__\0ecstackresult",a="__\0ecstackedover",i&&(i.createInvertedIndices=!0);var h=r.coordDim,c=r.type,p=0;P(e,(function(t){t.coordDim===h&&p++})),e.push({name:o,coordDim:h,coordDimIndex:p,type:c,isExtraCoord:!0,isCalculationCoord:!0}),p++,e.push({name:a,coordDim:a,coordDimIndex:p,type:c,isExtraCoord:!0,isCalculationCoord:!0})}return{stackedDimension:r&&r.name,stackedByDimension:i&&i.name,isStackedByIndex:s,stackedOverDimension:a,stackResultDimension:o}}function Fm(t,e){return!!e&&e===t.getCalculationInfo("stackedDimension")}function Gm(t,e){return Fm(t,e)?t.getCalculationInfo("stackResultDimension"):e}function Hm(t,e,n){n=n||{},Kp(t)||(t=Jp(t));var i,r=e.get("coordinateSystem"),o=_p.get(r),a=function(t){var e=t.get("coordinateSystem"),n=new Em(e),i=zm[e];if(i)return i(t,n,n.axisMap,n.categoryAxisMap),n}(e);a&&a.coordSysDims&&(i=O(a.coordSysDims,(function(t){var e={name:t},n=a.axisMap.get(t);if(n){var i=n.get("type");e.type=am(i)}return e}))),i||(i=o&&(o.getDimensionsInfo?o.getDimensionsInfo():o.dimensions.slice())||["x","y"]);var s,l,u=n.useEncodeDefaulter,h=Nm(t,{coordDimensions:i,generateCoord:n.generateCoord,encodeDefaulter:G(u)?u:u?V(Jc,i,e):null});a&&P(h,(function(t,e){var i=t.coordDim,r=a.categoryAxisMap.get(i);r&&(null==s&&(s=e),t.ordinalMeta=r.getOrdinalMeta(),n.createInvertedIndices&&(t.createInvertedIndices=!0)),null!=t.otherDims.itemName&&(l=!0)})),l||null==s||(h[s].otherDims.itemName=0);var c=Vm(e,h),p=new Pm(h,e);p.setCalculationInfo(c);var d=null!=s&&function(t){if(t.sourceFormat===Fc){var e=function(t){var e=0;for(;e<t.length&&null==t[e];)e++;return t[e]}(t.data||[]);return null!=e&&!F(wr(e))}}(t)?function(t,e,n,i){return i===s?n:this.defaultDimValueGetter(t,e,n,i)}:null;return p.hasItemOption=!1,p.initData(t,null,d),p}var Wm=function(){function t(t){this._setting=t||{},this._extent=[1/0,-1/0]}return t.prototype.getSetting=function(t){return this._setting[t]},t.prototype.unionExtent=function(t){var e=this._extent;t[0]<e[0]&&(e[0]=t[0]),t[1]>e[1]&&(e[1]=t[1])},t.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},t.prototype.getExtent=function(){return this._extent.slice()},t.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(e)||(n[1]=e)},t.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},t.prototype.isBlank=function(){return this._isBlank},t.prototype.setBlank=function(t){this._isBlank=t},t}();jr(Wm);var Ym=function(){function t(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication}return t.createByAxisModel=function(e){var n=e.option,i=n.data,r=i&&O(i,Xm);return new t({categories:r,needCollect:!r,deduplication:!1!==n.dedplication})},t.prototype.getOrdinal=function(t){return this._getOrCreateMap().get(t)},t.prototype.parseAndCollect=function(t){var e,n=this._needCollect;if("string"!=typeof t&&!n)return t;if(n&&!this._deduplication)return e=this.categories.length,this.categories[e]=t,e;var i=this._getOrCreateMap();return null==(e=i.get(t))&&(n?(e=this.categories.length,this.categories[e]=t,i.set(t,e)):e=NaN),e},t.prototype._getOrCreateMap=function(){return this._map||(this._map=ht(this.categories))},t}();function Xm(t){return X(t)&&null!=t.value?t.value:t+""}var Um=ji;function Zm(t,e,n,i){var r={},o=t[1]-t[0],a=r.interval=sr(o/e,!0);null!=n&&a<n&&(a=r.interval=n),null!=i&&a>i&&(a=r.interval=i);var s=r.intervalPrecision=jm(a);return function(t,e){!isFinite(t[0])&&(t[0]=e[0]),!isFinite(t[1])&&(t[1]=e[1]),qm(t,0,e),qm(t,1,e),t[0]>t[1]&&(t[0]=t[1])}(r.niceTickExtent=[Um(Math.ceil(t[0]/a)*a,s),Um(Math.floor(t[1]/a)*a,s)],t),r}function jm(t){return $i(t)+2}function qm(t,e,n){t[e]=Math.max(Math.min(t[e],n[1]),n[0])}function Km(t,e){return t>=e[0]&&t<=e[1]}function $m(t,e){return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])}function Jm(t,e){return t*(e[1]-e[0])+e[0]}var Qm=function(t){function e(e){var n=t.call(this,e)||this;n.type="ordinal";var i=n.getSetting("ordinalMeta");return i||(i=new Ym({})),F(i)&&(i=new Ym({categories:O(i,(function(t){return X(t)?t.value:t}))})),n._ordinalMeta=i,n._extent=n.getSetting("extent")||[0,i.categories.length-1],n}return n(e,t),e.prototype.parse=function(t){return"string"==typeof t?this._ordinalMeta.getOrdinal(t):Math.round(t)},e.prototype.contain=function(t){return Km(t=this.parse(t),this._extent)&&null!=this._ordinalMeta.categories[t]},e.prototype.normalize=function(t){return $m(t=this._getTickNumber(this.parse(t)),this._extent)},e.prototype.scale=function(t){return t=Math.round(Jm(t,this._extent)),this.getRawOrdinalNumber(t)},e.prototype.getTicks=function(){for(var t=[],e=this._extent,n=e[0];n<=e[1];)t.push({value:n}),n++;return t},e.prototype.getMinorTicks=function(t){},e.prototype.setSortInfo=function(t){if(null!=t){for(var e=t.ordinalNumbers,n=this._ordinalNumbersByTick=[],i=this._ticksByOrdinalNumber=[],r=0,o=this._ordinalMeta.categories.length,a=Math.min(o,e.length);r<a;++r){var s=e[r];n[r]=s,i[s]=r}for(var l=0;r<o;++r){for(;null!=i[l];)l++;n.push(l),i[l]=r}}else this._ordinalNumbersByTick=this._ticksByOrdinalNumber=null},e.prototype._getTickNumber=function(t){var e=this._ticksByOrdinalNumber;return e&&t>=0&&t<e.length?e[t]:t},e.prototype.getRawOrdinalNumber=function(t){var e=this._ordinalNumbersByTick;return e&&t>=0&&t<e.length?e[t]:t},e.prototype.getLabel=function(t){if(!this.isBlank()){var e=this.getRawOrdinalNumber(t.value),n=this._ordinalMeta.categories[e];return null==n?"":n+""}},e.prototype.count=function(){return this._extent[1]-this._extent[0]+1},e.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},e.prototype.isInExtentRange=function(t){return t=this._getTickNumber(t),this._extent[0]<=t&&this._extent[1]>=t},e.prototype.getOrdinalMeta=function(){return this._ordinalMeta},e.prototype.niceTicks=function(){},e.prototype.niceExtent=function(){},e.type="ordinal",e}(Wm);Wm.registerClass(Qm);var t_=ji,e_=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="interval",e._interval=0,e._intervalPrecision=2,e}return n(e,t),e.prototype.parse=function(t){return t},e.prototype.contain=function(t){return Km(t,this._extent)},e.prototype.normalize=function(t){return $m(t,this._extent)},e.prototype.scale=function(t){return Jm(t,this._extent)},e.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=parseFloat(t)),isNaN(e)||(n[1]=parseFloat(e))},e.prototype.unionExtent=function(t){var e=this._extent;t[0]<e[0]&&(e[0]=t[0]),t[1]>e[1]&&(e[1]=t[1]),this.setExtent(e[0],e[1])},e.prototype.getInterval=function(){return this._interval},e.prototype.setInterval=function(t){this._interval=t,this._niceExtent=this._extent.slice(),this._intervalPrecision=jm(t)},e.prototype.getTicks=function(t){var e=this._interval,n=this._extent,i=this._niceExtent,r=this._intervalPrecision,o=[];if(!e)return o;n[0]<i[0]&&(t?o.push({value:t_(i[0]-e,r)}):o.push({value:n[0]}));for(var a=i[0];a<=i[1]&&(o.push({value:a}),(a=t_(a+e,r))!==o[o.length-1].value);)if(o.length>1e4)return[];var s=o.length?o[o.length-1].value:i[1];return n[1]>s&&(t?o.push({value:t_(s+e,r)}):o.push({value:n[1]})),o},e.prototype.getMinorTicks=function(t){for(var e=this.getTicks(!0),n=[],i=this.getExtent(),r=1;r<e.length;r++){for(var o=e[r],a=e[r-1],s=0,l=[],u=(o.value-a.value)/t;s<t-1;){var h=t_(a.value+(s+1)*u);h>i[0]&&h<i[1]&&l.push(h),s++}n.push(l)}return n},e.prototype.getLabel=function(t,e){if(null==t)return"";var n=e&&e.precision;return null==n?n=$i(t.value)||0:"auto"===n&&(n=this._intervalPrecision),hc(t_(t.value,n,!0))},e.prototype.niceTicks=function(t,e,n){t=t||5;var i=this._extent,r=i[1]-i[0];if(isFinite(r)){r<0&&(r=-r,i.reverse());var o=Zm(i,t,e,n);this._intervalPrecision=o.intervalPrecision,this._interval=o.interval,this._niceExtent=o.niceTickExtent}},e.prototype.niceExtent=function(t){var e=this._extent;if(e[0]===e[1])if(0!==e[0]){var n=e[0];t.fixMax||(e[1]+=n/2),e[0]-=n/2}else e[1]=1;var i=e[1]-e[0];isFinite(i)||(e[0]=0,e[1]=1),this.niceTicks(t.splitNumber,t.minInterval,t.maxInterval);var r=this._interval;t.fixMin||(e[0]=t_(Math.floor(e[0]/r)*r)),t.fixMax||(e[1]=t_(Math.ceil(e[1]/r)*r))},e.type="interval",e}(Wm);Wm.registerClass(e_);var n_="__ec_stack_",i_="undefined"!=typeof Float32Array?Float32Array:Array;function r_(t){return t.get("stack")||n_+t.seriesIndex}function o_(t){return t.dim+t.index}function a_(t,e){var n=[];return e.eachSeriesByType(t,(function(t){p_(t)&&!d_(t)&&n.push(t)})),n}function s_(t){var e=function(t){var e={};P(t,(function(t){var n=t.coordinateSystem.getBaseAxis();if("time"===n.type||"value"===n.type)for(var i=t.getData(),r=n.dim+"_"+n.index,o=i.mapDimension(n.dim),a=0,s=i.count();a<s;++a){var l=i.get(o,a);e[r]?e[r].push(l):e[r]=[l]}}));var n={};for(var i in e)if(e.hasOwnProperty(i)){var r=e[i];if(r){r.sort((function(t,e){return t-e}));for(var o=null,a=1;a<r.length;++a){var s=r[a]-r[a-1];s>0&&(o=null===o?s:Math.min(o,s))}n[i]=o}}return n}(t),n=[];return P(t,(function(t){var i,r=t.coordinateSystem.getBaseAxis(),o=r.getExtent();if("category"===r.type)i=r.getBandWidth();else if("value"===r.type||"time"===r.type){var a=r.dim+"_"+r.index,s=e[a],l=Math.abs(o[1]-o[0]),u=r.scale.getExtent(),h=Math.abs(u[1]-u[0]);i=s?l/h*s:l}else{var c=t.getData();i=Math.abs(o[1]-o[0])/c.count()}var p=Zi(t.get("barWidth"),i),d=Zi(t.get("barMaxWidth"),i),f=Zi(t.get("barMinWidth")||1,i),g=t.get("barGap"),y=t.get("barCategoryGap");n.push({bandWidth:i,barWidth:p,barMaxWidth:d,barMinWidth:f,barGap:g,barCategoryGap:y,axisKey:o_(r),stackId:r_(t)})})),l_(n)}function l_(t){var e={};P(t,(function(t,n){var i=t.axisKey,r=t.bandWidth,o=e[i]||{bandWidth:r,remainedWidth:r,autoWidthCount:0,categoryGap:null,gap:"20%",stacks:{}},a=o.stacks;e[i]=o;var s=t.stackId;a[s]||o.autoWidthCount++,a[s]=a[s]||{width:0,maxWidth:0};var l=t.barWidth;l&&!a[s].width&&(a[s].width=l,l=Math.min(o.remainedWidth,l),o.remainedWidth-=l);var u=t.barMaxWidth;u&&(a[s].maxWidth=u);var h=t.barMinWidth;h&&(a[s].minWidth=h);var c=t.barGap;null!=c&&(o.gap=c);var p=t.barCategoryGap;null!=p&&(o.categoryGap=p)}));var n={};return P(e,(function(t,e){n[e]={};var i=t.stacks,r=t.bandWidth,o=t.categoryGap;if(null==o){var a=z(i).length;o=Math.max(35-4*a,15)+"%"}var s=Zi(o,r),l=Zi(t.gap,1),u=t.remainedWidth,h=t.autoWidthCount,c=(u-s)/(h+(h-1)*l);c=Math.max(c,0),P(i,(function(t){var e=t.maxWidth,n=t.minWidth;if(t.width){i=t.width;e&&(i=Math.min(i,e)),n&&(i=Math.max(i,n)),t.width=i,u-=i+l*i,h--}else{var i=c;e&&e<i&&(i=Math.min(e,u)),n&&n>i&&(i=n),i!==c&&(t.width=i,u-=i+l*i,h--)}})),c=(u-s)/(h+(h-1)*l),c=Math.max(c,0);var p,d=0;P(i,(function(t,e){t.width||(t.width=c),p=t,d+=t.width*(1+l)})),p&&(d-=p.width*l);var f=-d/2;P(i,(function(t,i){n[e][i]=n[e][i]||{bandWidth:r,offset:f,width:t.width},f+=t.width*(1+l)}))})),n}function u_(t,e,n){if(t&&e){var i=t[o_(e)];return null!=i&&null!=n?i[r_(n)]:i}}function h_(t,e){var n=a_(t,e),i=s_(n),r={};P(n,(function(t){var e=t.getData(),n=t.coordinateSystem,o=n.getBaseAxis(),a=r_(t),s=i[o_(o)][a],l=s.offset,u=s.width,h=n.getOtherAxis(o),c=t.get("barMinHeight")||0;r[a]=r[a]||[],e.setLayout({bandWidth:s.bandWidth,offset:l,size:u});for(var p=e.mapDimension(h.dim),d=e.mapDimension(o.dim),f=Fm(e,p),g=h.isHorizontal(),y=f_(o,h),v=0,m=e.count();v<m;v++){var _=e.get(p,v),x=e.get(d,v),b=_>=0?"p":"n",w=y;f&&(r[a][x]||(r[a][x]={p:y,n:y}),w=r[a][x][b]);var S,M=void 0,I=void 0,T=void 0,C=void 0;if(g)M=w,I=(S=n.dataToPoint([_,x]))[1]+l,T=S[0]-y,C=u,Math.abs(T)<c&&(T=(T<0?-1:1)*c),isNaN(T)||f&&(r[a][x][b]+=T);else M=(S=n.dataToPoint([x,_]))[0]+l,I=w,T=u,C=S[1]-y,Math.abs(C)<c&&(C=(C<=0?-1:1)*c),isNaN(C)||f&&(r[a][x][b]+=C);e.setItemLayout(v,{x:M,y:I,width:T,height:C})}}))}var c_={seriesType:"bar",plan:df(),reset:function(t){if(p_(t)&&d_(t)){var e=t.getData(),n=t.coordinateSystem,i=n.master.getRect(),r=n.getBaseAxis(),o=n.getOtherAxis(r),a=e.mapDimension(o.dim),s=e.mapDimension(r.dim),l=o.isHorizontal(),u=l?0:1,h=u_(s_([t]),r,t).width;return h>.5||(h=.5),{progress:function(t,e){for(var c,p=t.count,d=new i_(2*p),f=new i_(2*p),g=new i_(p),y=[],v=[],m=0,_=0;null!=(c=t.next());)v[u]=e.get(a,c),v[1-u]=e.get(s,c),y=n.dataToPoint(v,null,y),f[m]=l?i.x+i.width:y[0],d[m++]=y[0],f[m]=l?y[1]:i.y+i.height,d[m++]=y[1],g[_++]=c;e.setLayout({largePoints:d,largeDataIndices:g,largeBackgroundPoints:f,barWidth:h,valueAxisStart:f_(r,o),backgroundStart:l?i.x:i.y,valueAxisHorizontal:l})}}}}};function p_(t){return t.coordinateSystem&&"cartesian2d"===t.coordinateSystem.type}function d_(t){return t.pipelineContext&&t.pipelineContext.large}function f_(t,e,n){return e.toGlobalCoord(e.dataToCoord("log"===e.type?1:0))}var g_=function(t){function e(e){var n=t.call(this,e)||this;return n.type="time",n}return n(e,t),e.prototype.getLabel=function(t){var e=this.getSetting("useUTC");return Zh(t.value,Gh[function(t){switch(t){case"year":case"month":return"day";case"millisecond":return"millisecond";default:return"second"}}(Xh(this._minLevelUnit))]||Gh.second,e,this.getSetting("locale"))},e.prototype.getFormattedLabel=function(t,e,n){var i=this.getSetting("useUTC");return function(t,e,n,i,r){var o=null;if("string"==typeof n)o=n;else if("function"==typeof n)o=n(t.value,e,{level:t.level});else{var a=I({},Vh);if(t.level>0)for(var s=0;s<Hh.length;++s)a[Hh[s]]="{primary|"+a[Hh[s]]+"}";var l=n?!1===n.inherit?n:T(n,a):a,u=jh(t.value,r);if(l[u])o=l[u];else if(l.inherit){for(s=Wh.indexOf(u)-1;s>=0;--s)if(l[u]){o=l[u];break}o=o||a.none}if(F(o)){var h=null==t.level?0:t.level>=0?t.level:o.length+t.level;o=o[h=Math.min(h,o.length-1)]}}return Zh(new Date(t.value),o,r,i)}(t,e,n,this.getSetting("locale"),i)},e.prototype.getTicks=function(t){var e=this._interval,n=this._extent,i=[];if(!e)return i;i.push({value:n[0],level:0});var r=this.getSetting("useUTC"),o=function(t,e,n,i){var r=1e4,o=Wh,a=0;function s(t,e,n,r,o,a,s){for(var l=new Date(e),u=e,h=l[r]();u<n&&u<=i[1];)s.push({value:u}),h+=t,l[o](h),u=l.getTime();s.push({value:u,notAdd:!0})}function l(t,r,o){var a=[],l=!r.length;if(!function(t,e,n,i){var r=rr(e),o=rr(n),a=function(t){return qh(r,t,i)===qh(o,t,i)},s=function(){return a("year")},l=function(){return s()&&a("month")},u=function(){return l()&&a("day")},h=function(){return u()&&a("hour")},c=function(){return h()&&a("minute")},p=function(){return c()&&a("second")},d=function(){return p()&&a("millisecond")};switch(t){case"year":return s();case"month":return l();case"day":return u();case"hour":return h();case"minute":return c();case"second":return p();case"millisecond":return d()}}(Xh(t),i[0],i[1],n)){l&&(r=[{value:w_(new Date(i[0]),t,n)},{value:i[1]}]);for(var u=0;u<r.length-1;u++){var h=r[u].value,c=r[u+1].value;if(h!==c){var p=void 0,d=void 0,f=void 0,g=!1;switch(t){case"year":p=Math.max(1,Math.round(e/zh/365)),d=Kh(n),f=ic(n);break;case"half-year":case"quarter":case"month":p=m_(e),d=$h(n),f=rc(n);break;case"week":case"half-week":case"day":p=v_(e),d=Jh(n),f=oc(n),g=!0;break;case"half-day":case"quarter-day":case"hour":p=__(e),d=Qh(n),f=ac(n);break;case"minute":p=x_(e,!0),d=tc(n),f=sc(n);break;case"second":p=x_(e,!1),d=ec(n),f=lc(n);break;case"millisecond":p=b_(e),d=nc(n),f=uc(n)}s(p,h,c,d,f,g,a),"year"===t&&o.length>1&&0===u&&o.unshift({value:o[0].value-p})}}for(u=0;u<a.length;u++)o.push(a[u]);return a}}for(var u=[],h=[],c=0,p=0,d=0;d<o.length&&a++<r;++d){var f=Xh(o[d]);if(Uh(o[d]))if(l(o[d],u[u.length-1]||[],h),f!==(o[d+1]?Xh(o[d+1]):null)){if(h.length){p=c,h.sort((function(t,e){return t.value-e.value}));for(var g=[],y=0;y<h.length;++y){var v=h[y].value;0!==y&&h[y-1].value===v||(g.push(h[y]),v>=i[0]&&v<=i[1]&&c++)}var m=(i[1]-i[0])/e;if(c>1.5*m&&p>m/1.5)break;if(u.push(g),c>m||t===o[d])break}h=[]}}0;var _=N(O(u,(function(t){return N(t,(function(t){return t.value>=i[0]&&t.value<=i[1]&&!t.notAdd}))})),(function(t){return t.length>0})),x=[],b=_.length-1;for(d=0;d<_.length;++d)for(var w=_[d],S=0;S<w.length;++S)x.push({value:w[S].value,level:b-d});x.sort((function(t,e){return t.value-e.value}));var M=[];for(d=0;d<x.length;++d)0!==d&&x[d].value===x[d-1].value||M.push(x[d]);return M}(this._minLevelUnit,this._approxInterval,r,n);return(i=i.concat(o)).push({value:n[1],level:0}),i},e.prototype.niceExtent=function(t){var e=this._extent;if(e[0]===e[1]&&(e[0]-=zh,e[1]+=zh),e[1]===-1/0&&e[0]===1/0){var n=new Date;e[1]=+new Date(n.getFullYear(),n.getMonth(),n.getDate()),e[0]=e[1]-zh}this.niceTicks(t.splitNumber,t.minInterval,t.maxInterval)},e.prototype.niceTicks=function(t,e,n){t=t||10;var i=this._extent,r=i[1]-i[0];this._approxInterval=r/t,null!=e&&this._approxInterval<e&&(this._approxInterval=e),null!=n&&this._approxInterval>n&&(this._approxInterval=n);var o=y_.length,a=Math.min(function(t,e,n,i){for(;n<i;){var r=n+i>>>1;t[r][1]<e?n=r+1:i=r}return n}(y_,this._approxInterval,0,o),o-1);this._interval=y_[a][1],this._minLevelUnit=y_[Math.max(a-1,0)][0]},e.prototype.parse=function(t){return"number"==typeof t?t:+rr(t)},e.prototype.contain=function(t){return Km(this.parse(t),this._extent)},e.prototype.normalize=function(t){return $m(this.parse(t),this._extent)},e.prototype.scale=function(t){return Jm(t,this._extent)},e.type="time",e}(e_),y_=[["second",Rh],["minute",Nh],["hour",Eh],["quarter-day",216e5],["half-day",432e5],["day",10368e4],["half-week",3024e5],["week",6048e5],["month",26784e5],["quarter",8208e6],["half-year",Bh/2],["year",Bh]];function v_(t,e){return(t/=zh)>16?16:t>7.5?7:t>3.5?4:t>1.5?2:1}function m_(t){return(t/=2592e6)>6?6:t>3?3:t>2?2:1}function __(t){return(t/=Eh)>12?12:t>6?6:t>3.5?4:t>2?2:1}function x_(t,e){return(t/=e?Nh:Rh)>30?30:t>20?20:t>15?15:t>10?10:t>5?5:t>2?2:1}function b_(t){return sr(t,!0)}function w_(t,e,n){var i=new Date(t);switch(Xh(e)){case"year":case"month":i[rc(n)](0);case"day":i[oc(n)](1);case"hour":i[ac(n)](0);case"minute":i[sc(n)](0);case"second":i[lc(n)](0),i[uc(n)](0)}return i.getTime()}Wm.registerClass(g_);var S_=Wm.prototype,M_=e_.prototype,I_=$i,T_=ji,C_=Math.floor,A_=Math.ceil,D_=Math.pow,L_=Math.log,k_=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="log",e.base=10,e._originalScale=new e_,e._interval=0,e}return n(e,t),e.prototype.getTicks=function(t){var e=this._originalScale,n=this._extent,i=e.getExtent();return O(M_.getTicks.call(this,t),(function(t){var e=t.value,r=ji(D_(this.base,e));return r=e===n[0]&&this._fixMin?O_(r,i[0]):r,{value:r=e===n[1]&&this._fixMax?O_(r,i[1]):r}}),this)},e.prototype.setExtent=function(t,e){var n=this.base;t=L_(t)/L_(n),e=L_(e)/L_(n),M_.setExtent.call(this,t,e)},e.prototype.getExtent=function(){var t=this.base,e=S_.getExtent.call(this);e[0]=D_(t,e[0]),e[1]=D_(t,e[1]);var n=this._originalScale.getExtent();return this._fixMin&&(e[0]=O_(e[0],n[0])),this._fixMax&&(e[1]=O_(e[1],n[1])),e},e.prototype.unionExtent=function(t){this._originalScale.unionExtent(t);var e=this.base;t[0]=L_(t[0])/L_(e),t[1]=L_(t[1])/L_(e),S_.unionExtent.call(this,t)},e.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},e.prototype.niceTicks=function(t){t=t||10;var e=this._extent,n=e[1]-e[0];if(!(n===1/0||n<=0)){var i=or(n);for(t/n*i<=.5&&(i*=10);!isNaN(i)&&Math.abs(i)<1&&Math.abs(i)>0;)i*=10;var r=[ji(A_(e[0]/i)*i),ji(C_(e[1]/i)*i)];this._interval=i,this._niceExtent=r}},e.prototype.niceExtent=function(t){M_.niceExtent.call(this,t),this._fixMin=t.fixMin,this._fixMax=t.fixMax},e.prototype.parse=function(t){return t},e.prototype.contain=function(t){return Km(t=L_(t)/L_(this.base),this._extent)},e.prototype.normalize=function(t){return $m(t=L_(t)/L_(this.base),this._extent)},e.prototype.scale=function(t){return t=Jm(t,this._extent),D_(this.base,t)},e.type="log",e}(Wm),P_=k_.prototype;function O_(t,e){return T_(t,I_(e))}P_.getMinorTicks=M_.getMinorTicks,P_.getLabel=M_.getLabel,Wm.registerClass(k_);var R_=function(){function t(t,e,n){this._prepareParams(t,e,n)}return t.prototype._prepareParams=function(t,e,n){n[1]<n[0]&&(n=[NaN,NaN]),this._dataMin=n[0],this._dataMax=n[1];var i=this._isOrdinal="ordinal"===t.type;this._needCrossZero=e.getNeedCrossZero&&e.getNeedCrossZero();var r=this._modelMinRaw=e.get("min",!0);G(r)?this._modelMinNum=B_(t,r({min:n[0],max:n[1]})):"dataMin"!==r&&(this._modelMinNum=B_(t,r));var o=this._modelMaxRaw=e.get("max",!0);if(G(o)?this._modelMaxNum=B_(t,o({min:n[0],max:n[1]})):"dataMax"!==o&&(this._modelMaxNum=B_(t,o)),i)this._axisDataLen=e.getCategories().length;else{var a=e.get("boundaryGap"),s=F(a)?a:[a||0,a||0];"boolean"==typeof s[0]||"boolean"==typeof s[1]?this._boundaryGapInner=[0,0]:this._boundaryGapInner=[Yn(s[0],1),Yn(s[1],1)]}},t.prototype.calculate=function(){var t=this._isOrdinal,e=this._dataMin,n=this._dataMax,i=this._axisDataLen,r=this._boundaryGapInner,o=t?null:n-e||Math.abs(e),a="dataMin"===this._modelMinRaw?e:this._modelMinNum,s="dataMax"===this._modelMaxRaw?n:this._modelMaxNum,l=null!=a,u=null!=s;null==a&&(a=t?i?0:NaN:e-r[0]*o),null==s&&(s=t?i?i-1:NaN:n+r[1]*o),(null==a||!isFinite(a))&&(a=NaN),(null==s||!isFinite(s))&&(s=NaN),a>s&&(a=NaN,s=NaN);var h=J(a)||J(s)||t&&!i;this._needCrossZero&&(a>0&&s>0&&!l&&(a=0),a<0&&s<0&&!u&&(s=0));var c=this._determinedMin,p=this._determinedMax;return null!=c&&(a=c,l=!0),null!=p&&(s=p,u=!0),{min:a,max:s,minFixed:l,maxFixed:u,isBlank:h}},t.prototype.modifyDataMinMax=function(t,e){this[E_[t]]=e},t.prototype.setDeterminedMinMax=function(t,e){var n=N_[t];this[n]=e},t.prototype.freeze=function(){this.frozen=!0},t}(),N_={min:"_determinedMin",max:"_determinedMax"},E_={min:"_dataMin",max:"_dataMax"};function z_(t,e,n){var i=t.rawExtentInfo;return i||(i=new R_(t,e,n),t.rawExtentInfo=i,i)}function B_(t,e){return null==e?null:J(e)?NaN:t.parse(e)}function V_(t,e){var n=t.type,i=z_(t,e,t.getExtent()).calculate();t.setBlank(i.isBlank);var r=i.min,o=i.max,a=e.ecModel;if(a&&"time"===n){var s=a_("bar",a),l=!1;if(P(s,(function(t){l=l||t.getBaseAxis()===e.axis})),l){var u=s_(s),h=function(t,e,n,i){var r=n.axis.getExtent(),o=r[1]-r[0],a=u_(i,n.axis);if(void 0===a)return{min:t,max:e};var s=1/0;P(a,(function(t){s=Math.min(t.offset,s)}));var l=-1/0;P(a,(function(t){l=Math.max(t.offset+t.width,l)})),s=Math.abs(s),l=Math.abs(l);var u=s+l,h=e-t,c=h/(1-(s+l)/o)-h;return{min:t-=c*(s/u),max:e+=c*(l/u)}}(r,o,e,u);r=h.min,o=h.max}}return{extent:[r,o],fixMin:i.minFixed,fixMax:i.maxFixed}}function F_(t,e){var n=V_(t,e),i=n.extent,r=e.get("splitNumber");t instanceof k_&&(t.base=e.get("logBase"));var o=t.type;t.setExtent(i[0],i[1]),t.niceExtent({splitNumber:r,fixMin:n.fixMin,fixMax:n.fixMax,minInterval:"interval"===o||"time"===o?e.get("minInterval"):null,maxInterval:"interval"===o||"time"===o?e.get("maxInterval"):null});var a=e.get("interval");null!=a&&t.setInterval&&t.setInterval(a)}function G_(t,e){if(e=e||t.get("type"))switch(e){case"category":return new Qm({ordinalMeta:t.getOrdinalMeta?t.getOrdinalMeta():t.getCategories(),extent:[1/0,-1/0]});case"time":return new g_({locale:t.ecModel.getLocaleModel(),useUTC:t.ecModel.get("useUTC")});default:return new(Wm.getClass(e)||e_)}}function H_(t){var e,n,i=t.getLabelModel().get("formatter"),r="category"===t.type?t.scale.getExtent()[0]:null;return"time"===t.scale.type?(n=i,function(e,i){return t.scale.getFormattedLabel(e,i,n)}):"string"==typeof i?function(e){return function(n){var i=t.scale.getLabel(n);return e.replace("{value}",null!=i?i:"")}}(i):"function"==typeof i?(e=i,function(n,i){return null!=r&&(i=n.value-r),e(W_(t,n),i,null!=n.level?{level:n.level}:null)}):function(e){return t.scale.getLabel(e)}}function W_(t,e){return"category"===t.type?t.scale.getLabel(e):e.value}function Y_(t,e){var n=e*Math.PI/180,i=t.width,r=t.height,o=i*Math.abs(Math.cos(n))+Math.abs(r*Math.sin(n)),a=i*Math.abs(Math.sin(n))+Math.abs(r*Math.cos(n));return new Rn(t.x,t.y,o,a)}function X_(t){var e=t.get("interval");return null==e?"auto":e}function U_(t){return"category"===t.type&&0===X_(t.getLabelModel())}function Z_(t,e){var n={};return P(t.mapDimensionsAll(e),(function(e){n[Gm(t,e)]=!0})),z(n)}var j_=function(){function t(){}return t.prototype.getNeedCrossZero=function(){return!this.option.scale},t.prototype.getCoordSysModel=function(){},t}();var q_={isDimensionStacked:Fm,enableDataStack:Vm,getStackedDimension:Gm};var K_=Object.freeze({__proto__:null,createList:function(t){return Hm(t.getSource(),t)},getLayoutRect:Ac,dataStack:q_,createScale:function(t,e){var n=e;e instanceof Sh||(n=new Sh(e));var i=G_(n);return i.setExtent(t[0],t[1]),F_(i,n),i},mixinAxisModelCommonMethods:function(t){L(t,j_)},getECData:ys,createTextStyle:function(t,e){return nh(t,null,null,"normal"!==(e=e||{}).state)},createDimensions:Nm,createSymbol:uy,enableHoverEmphasis:Js});function $_(t,e){return Math.abs(t-e)<1e-8}function J_(t,e,n){var i=0,r=t[0];if(!r)return!1;for(var o=1;o<t.length;o++){var a=t[o];i+=Na(r[0],r[1],a[0],a[1],e,n),r=a}var s=t[0];return $_(r[0],s[0])&&$_(r[1],s[1])||(i+=Na(r[0],r[1],s[0],s[1],e,n)),0!==i}var Q_=function(){function t(t,e,n){if(this.name=t,this.geometries=e,n)n=[n[0],n[1]];else{var i=this.getBoundingRect();n=[i.x+i.width/2,i.y+i.height/2]}this.center=n}return t.prototype.getBoundingRect=function(){var t=this._rect;if(t)return t;for(var e=Number.MAX_VALUE,n=[e,e],i=[-e,-e],r=[],o=[],a=this.geometries,s=0;s<a.length;s++){if("polygon"===a[s].type)ea(a[s].exterior,r,o),Nt(n,n,r),Et(i,i,o)}return 0===s&&(n[0]=n[1]=i[0]=i[1]=0),this._rect=new Rn(n[0],n[1],i[0]-n[0],i[1]-n[1])},t.prototype.contain=function(t){var e=this.getBoundingRect(),n=this.geometries;if(!e.contain(t[0],t[1]))return!1;t:for(var i=0,r=n.length;i<r;i++)if("polygon"===n[i].type){var o=n[i].exterior,a=n[i].interiors;if(J_(o,t[0],t[1])){for(var s=0;s<(a?a.length:0);s++)if(J_(a[s],t[0],t[1]))continue t;return!0}}return!1},t.prototype.transformTo=function(t,e,n,i){var r=this.getBoundingRect(),o=r.width/r.height;n?i||(i=n/o):n=o*i;for(var a=new Rn(t,e,n,i),s=r.calculateTransform(a),l=this.geometries,u=0;u<l.length;u++)if("polygon"===l[u].type){for(var h=l[u].exterior,c=l[u].interiors,p=0;p<h.length;p++)Rt(h[p],h[p],s);for(var d=0;d<(c?c.length:0);d++)for(p=0;p<c[d].length;p++)Rt(c[d][p],c[d][p],s)}(r=this._rect).copy(a),this.center=[r.x+r.width/2,r.y+r.height/2]},t.prototype.cloneShallow=function(e){null==e&&(e=this.name);var n=new t(e,this.geometries,this.center);return n._rect=this._rect,n.transformTo=null,n},t}();function tx(t,e,n){for(var i=[],r=e[0],o=e[1],a=0;a<t.length;a+=2){var s=t.charCodeAt(a)-64,l=t.charCodeAt(a+1)-64;s=s>>1^-(1&s),l=l>>1^-(1&l),r=s+=r,o=l+=o,i.push([s/n,l/n])}return i}function ex(t,e){return O(N((t=function(t){if(!t.UTF8Encoding)return t;var e=t,n=e.UTF8Scale;null==n&&(n=1024);for(var i=e.features,r=0;r<i.length;r++){var o=i[r].geometry;if("Polygon"===o.type)for(var a=o.coordinates,s=0;s<a.length;s++)a[s]=tx(a[s],o.encodeOffsets[s],n);else if("MultiPolygon"===o.type)for(a=o.coordinates,s=0;s<a.length;s++)for(var l=a[s],u=0;u<l.length;u++)l[u]=tx(l[u],o.encodeOffsets[s][u],n)}return e.UTF8Encoding=!1,e}(t)).features,(function(t){return t.geometry&&t.properties&&t.geometry.coordinates.length>0})),(function(t){var n=t.properties,i=t.geometry,r=[];if("Polygon"===i.type){var o=i.coordinates;r.push({type:"polygon",exterior:o[0],interiors:o.slice(1)})}"MultiPolygon"===i.type&&P(o=i.coordinates,(function(t){t[0]&&r.push({type:"polygon",exterior:t[0],interiors:t.slice(1)})}));var a=new Q_(n[e||"name"],r,n.cp);return a.properties=n,a}))}var nx=Object.freeze({__proto__:null,linearMap:Ui,round:ji,asc:qi,getPrecision:Ki,getPrecisionSafe:$i,getPixelPrecision:Ji,getPercentWithPrecision:Qi,MAX_SAFE_INTEGER:tr,remRadian:er,isRadianAroundZero:nr,parseDate:rr,quantity:or,quantityExponent:ar,nice:sr,quantile:lr,reformIntervals:ur,isNumeric:cr,numericToNumber:hr}),ix=Object.freeze({__proto__:null,parse:rr,format:Zh}),rx=Object.freeze({__proto__:null,extendShape:bu,extendPath:Su,makePath:Tu,makeImage:Cu,mergePath:Du,resizePath:Lu,createIcon:Uu,updateProps:Ou,initProps:Ru,getTransform:Vu,clipPointsByRect:Yu,clipRectByRect:Xu,registerShape:Mu,getShapeClass:Iu,Group:zi,Image:Ja,Text:ls,Circle:Tl,Ellipse:Al,Sector:Wl,Ring:Xl,Polygon:ql,Polyline:$l,Rect:os,Line:tu,BezierCurve:ru,Arc:au,IncrementalDisplayable:vu,CompoundPath:su,LinearGradient:uu,RadialGradient:hu,BoundingRect:Rn}),ox=Object.freeze({__proto__:null,addCommas:hc,toCamelCase:cc,normalizeCssArray:pc,encodeHTML:gc,formatTpl:_c,getTooltipMarker:xc,formatTime:function(t,e,n){"week"!==t&&"month"!==t&&"quarter"!==t&&"half-year"!==t&&"year"!==t||(t="MM-dd\nyyyy");var i=rr(e),r=n?"UTC":"",o=i["get"+r+"FullYear"](),a=i["get"+r+"Month"]()+1,s=i["get"+r+"Date"](),l=i["get"+r+"Hours"](),u=i["get"+r+"Minutes"](),h=i["get"+r+"Seconds"](),c=i["get"+r+"Milliseconds"]();return t=t.replace("MM",Yh(a,2)).replace("M",a).replace("yyyy",o).replace("yy",o%100+"").replace("dd",Yh(s,2)).replace("d",s).replace("hh",Yh(l,2)).replace("h",l).replace("mm",Yh(u,2)).replace("m",u).replace("ss",Yh(h,2)).replace("s",h).replace("SSS",Yh(c,3))},capitalFirst:function(t){return t?t.charAt(0).toUpperCase()+t.substr(1):t},truncateText:ro,getTextRect:function(t,e,n,i,r,o,a,s){return gr(),new ls({style:{text:t,font:e,align:n,verticalAlign:i,padding:r,rich:o,overflow:a?"truncate":null,lineHeight:s}}).getBoundingRect()}}),ax=Object.freeze({__proto__:null,map:O,each:P,indexOf:A,inherits:D,reduce:R,filter:N,bind:B,curry:V,isArray:F,isString:H,isObject:X,isFunction:G,extend:I,defaults:T,clone:w,merge:S}),sx=Lr();function lx(t){return"category"===t.type?function(t){var e=t.getLabelModel(),n=hx(t,e);return!e.get("show")||t.scale.isBlank()?{labels:[],labelCategoryInterval:n.labelCategoryInterval}:n}(t):function(t){var e=t.scale.getTicks(),n=H_(t);return{labels:O(e,(function(e,i){return{formattedLabel:n(e,i),rawLabel:t.scale.getLabel(e),tickValue:e.value}}))}}(t)}function ux(t,e){return"category"===t.type?function(t,e){var n,i,r=cx(t,"ticks"),o=X_(e),a=px(r,o);if(a)return a;e.get("show")&&!t.scale.isBlank()||(n=[]);if(G(o))n=gx(t,o,!0);else if("auto"===o){var s=hx(t,t.getLabelModel());i=s.labelCategoryInterval,n=O(s.labels,(function(t){return t.tickValue}))}else n=fx(t,i=o,!0);return dx(r,o,{ticks:n,tickCategoryInterval:i})}(t,e):{ticks:O(t.scale.getTicks(),(function(t){return t.value}))}}function hx(t,e){var n,i,r=cx(t,"labels"),o=X_(e),a=px(r,o);return a||(G(o)?n=gx(t,o):(i="auto"===o?function(t){var e=sx(t).autoInterval;return null!=e?e:sx(t).autoInterval=t.calculateCategoryInterval()}(t):o,n=fx(t,i)),dx(r,o,{labels:n,labelCategoryInterval:i}))}function cx(t,e){return sx(t)[e]||(sx(t)[e]=[])}function px(t,e){for(var n=0;n<t.length;n++)if(t[n].key===e)return t[n].value}function dx(t,e,n){return t.push({key:e,value:n}),n}function fx(t,e,n){var i=H_(t),r=t.scale,o=r.getExtent(),a=t.getLabelModel(),s=[],l=Math.max((e||0)+1,1),u=o[0],h=r.count();0!==u&&l>1&&h/l>2&&(u=Math.round(Math.ceil(u/l)*l));var c=U_(t),p=a.get("showMinLabel")||c,d=a.get("showMaxLabel")||c;p&&u!==o[0]&&g(o[0]);for(var f=u;f<=o[1];f+=l)g(f);function g(t){var e={value:t};s.push(n?t:{formattedLabel:i(e),rawLabel:r.getLabel(e),tickValue:t})}return d&&f-l!==o[1]&&g(o[1]),s}function gx(t,e,n){var i=t.scale,r=H_(t),o=[];return P(i.getTicks(),(function(t){var a=i.getLabel(t),s=t.value;e(t.value,a)&&o.push(n?s:{formattedLabel:r(t),rawLabel:a,tickValue:s})})),o}var yx=[0,1],vx=function(){function t(t,e,n){this.onBand=!1,this.inverse=!1,this.dim=t,this.scale=e,this._extent=n||[0,0]}return t.prototype.contain=function(t){var e=this._extent,n=Math.min(e[0],e[1]),i=Math.max(e[0],e[1]);return t>=n&&t<=i},t.prototype.containData=function(t){return this.scale.contain(t)},t.prototype.getExtent=function(){return this._extent.slice()},t.prototype.getPixelPrecision=function(t){return Ji(t||this.scale.getExtent(),this._extent)},t.prototype.setExtent=function(t,e){var n=this._extent;n[0]=t,n[1]=e},t.prototype.dataToCoord=function(t,e){var n=this._extent,i=this.scale;return t=i.normalize(t),this.onBand&&"ordinal"===i.type&&mx(n=n.slice(),i.count()),Ui(t,yx,n,e)},t.prototype.coordToData=function(t,e){var n=this._extent,i=this.scale;this.onBand&&"ordinal"===i.type&&mx(n=n.slice(),i.count());var r=Ui(t,n,yx,e);return this.scale.scale(r)},t.prototype.pointToData=function(t,e){},t.prototype.getTicksCoords=function(t){var e=(t=t||{}).tickModel||this.getTickModel(),n=O(ux(this,e).ticks,(function(t){return{coord:this.dataToCoord("ordinal"===this.scale.type?this.scale.getRawOrdinalNumber(t):t),tickValue:t}}),this);return function(t,e,n,i){var r=e.length;if(!t.onBand||n||!r)return;var o,a,s=t.getExtent();if(1===r)e[0].coord=s[0],o=e[1]={coord:s[0]};else{var l=e[r-1].tickValue-e[0].tickValue,u=(e[r-1].coord-e[0].coord)/l;P(e,(function(t){t.coord-=u/2})),a=1+t.scale.getExtent()[1]-e[r-1].tickValue,o={coord:e[r-1].coord+u*a},e.push(o)}var h=s[0]>s[1];c(e[0].coord,s[0])&&(i?e[0].coord=s[0]:e.shift());i&&c(s[0],e[0].coord)&&e.unshift({coord:s[0]});c(s[1],o.coord)&&(i?o.coord=s[1]:e.pop());i&&c(o.coord,s[1])&&e.push({coord:s[1]});function c(t,e){return t=ji(t),e=ji(e),h?t>e:t<e}}(this,n,e.get("alignWithLabel"),t.clamp),n},t.prototype.getMinorTicksCoords=function(){if("ordinal"===this.scale.type)return[];var t=this.model.getModel("minorTick").get("splitNumber");return t>0&&t<100||(t=5),O(this.scale.getMinorTicks(t),(function(t){return O(t,(function(t){return{coord:this.dataToCoord(t),tickValue:t}}),this)}),this)},t.prototype.getViewLabels=function(){return lx(this).labels},t.prototype.getLabelModel=function(){return this.model.getModel("axisLabel")},t.prototype.getTickModel=function(){return this.model.getModel("axisTick")},t.prototype.getBandWidth=function(){var t=this._extent,e=this.scale.getExtent(),n=e[1]-e[0]+(this.onBand?1:0);0===n&&(n=1);var i=Math.abs(t[1]-t[0]);return Math.abs(i)/n},t.prototype.calculateCategoryInterval=function(){return function(t){var e=function(t){var e=t.getLabelModel();return{axisRotate:t.getRotate?t.getRotate():t.isHorizontal&&!t.isHorizontal()?90:0,labelRotate:e.get("rotate")||0,font:e.getFont()}}(t),n=H_(t),i=(e.axisRotate-e.labelRotate)/180*Math.PI,r=t.scale,o=r.getExtent(),a=r.count();if(o[1]-o[0]<1)return 0;var s=1;a>40&&(s=Math.max(1,Math.floor(a/40)));for(var l=o[0],u=t.dataToCoord(l+1)-t.dataToCoord(l),h=Math.abs(u*Math.cos(i)),c=Math.abs(u*Math.sin(i)),p=0,d=0;l<=o[1];l+=s){var f,g,y=Fn(n({value:l}),e.font,"center","top");f=1.3*y.width,g=1.3*y.height,p=Math.max(p,f,7),d=Math.max(d,g,7)}var v=p/h,m=d/c;isNaN(v)&&(v=1/0),isNaN(m)&&(m=1/0);var _=Math.max(0,Math.floor(Math.min(v,m))),x=sx(t.model),b=t.getExtent(),w=x.lastAutoInterval,S=x.lastTickCount;return null!=w&&null!=S&&Math.abs(w-_)<=1&&Math.abs(S-a)<=1&&w>_&&x.axisExtent0===b[0]&&x.axisExtent1===b[1]?_=w:(x.lastTickCount=a,x.lastAutoInterval=_,x.axisExtent0=b[0],x.axisExtent1=b[1]),_}(this)},t}();function mx(t,e){var n=(t[1]-t[0])/e/2;t[0]+=n,t[1]-=n}function _x(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}function xx(t,e,n,i,r){for(var o=e.length,a=n.length,s=t.newPos,l=s-i,u=0;s+1<o&&l+1<a&&r(e[s+1],n[l+1]);)s++,l++,u++;return u&&t.components.push({count:u,added:!1,removed:!1,indices:[]}),t.newPos=s,l}function bx(t,e,n){var i=t[t.length-1];i&&i.added===e&&i.removed===n?t[t.length-1]={count:i.count+1,added:e,removed:n,indices:[]}:t.push({count:1,added:e,removed:n,indices:[]})}function Sx(t){for(var e=0,n=t.length,i=0,r=0;e<n;e++){var o=t[e];if(o.removed){for(s=r;s<r+o.count;s++)o.indices.push(s);r+=o.count}else{for(var a=[],s=i;s<i+o.count;s++)a.push(s);o.indices=a,i+=o.count,o.added||(r+=o.count)}}return t}function Mx(t,e,n){return function(t,e,n){n||(n=function(t,e){return t===e}),t=t.slice();var i=(e=e.slice()).length,r=t.length,o=1,a=i+r,s=[{newPos:-1,components:[]}],l=xx(s[0],e,t,0,n);if(s[0].newPos+1>=i&&l+1>=r){for(var u=[],h=0;h<e.length;h++)u.push(h);return[{indices:u,count:e.length,added:!1,removed:!1}]}function c(){for(var a=-1*o;a<=o;a+=2){var l,u=s[a-1],h=s[a+1],c=(h?h.newPos:0)-a;u&&(s[a-1]=void 0);var p=u&&u.newPos+1<i,d=h&&0<=c&&c<r;if(p||d){if(!p||d&&u.newPos<h.newPos?bx((l={newPos:(f=h).newPos,components:f.components.slice(0)}).components,!1,!0):((l=u).newPos++,bx(l.components,!0,!1)),c=xx(l,e,t,a,n),l.newPos+1>=i&&c+1>=r)return Sx(l.components);s[a]=l}else s[a]=void 0}var f;o++}for(;o<=a;){var p=c();if(p)return p}}(t,e,n)}var Ix="none",Tx=Math.round,Cx=Math.sin,Ax=Math.cos,Dx=Math.PI,Lx=2*Math.PI,kx=180/Dx,Px=1e-4;function Ox(t){return Tx(1e3*t)/1e3}function Rx(t){return Tx(1e4*t)/1e4}function Nx(t){return t<Px&&t>-1e-4}function Ex(t,e){e&&zx(t,"transform","matrix("+Ox(e[0])+","+Ox(e[1])+","+Ox(e[2])+","+Ox(e[3])+","+Rx(e[4])+","+Rx(e[5])+")")}function zx(t,e,n){(!n||"linear"!==n.type&&"radial"!==n.type)&&t.setAttribute(e,n)}function Bx(t,e,n){var i=null==e.opacity?1:e.opacity;if(n instanceof Ja)t.style.opacity=i+"";else{if(function(t){var e=t.fill;return null!=e&&e!==Ix}(e)){var r=e.fill;zx(t,"fill",r="transparent"===r?Ix:r),zx(t,"fill-opacity",(null!=e.fillOpacity?e.fillOpacity*i:i)+"")}else zx(t,"fill",Ix);if(function(t){var e=t.stroke;return null!=e&&e!==Ix}(e)){var o=e.stroke;zx(t,"stroke",o="transparent"===o?Ix:o);var a=e.lineWidth,s=e.strokeNoScale?n.getLineScale():1;zx(t,"stroke-width",(s?a/s:0)+""),zx(t,"paint-order",e.strokeFirst?"stroke":"fill"),zx(t,"stroke-opacity",(null!=e.strokeOpacity?e.strokeOpacity*i:i)+"");var l=e.lineDash&&a>0&&py(e.lineDash,a);if(l){var u=e.lineDashOffset;s&&1!==s&&(l=O(l,(function(t){return t/s})),u&&(u=Tx(u/=s))),zx(t,"stroke-dasharray",l.join(",")),zx(t,"stroke-dashoffset",(u||0)+"")}else zx(t,"stroke-dasharray","");e.lineCap&&zx(t,"stroke-linecap",e.lineCap),e.lineJoin&&zx(t,"stroke-linejoin",e.lineJoin),e.miterLimit&&zx(t,"stroke-miterlimit",e.miterLimit+"")}else zx(t,"stroke",Ix)}}var Vx=function(){function t(){}return t.prototype.reset=function(){this._d=[],this._str=""},t.prototype.moveTo=function(t,e){this._add("M",t,e)},t.prototype.lineTo=function(t,e){this._add("L",t,e)},t.prototype.bezierCurveTo=function(t,e,n,i,r,o){this._add("C",t,e,n,i,r,o)},t.prototype.quadraticCurveTo=function(t,e,n,i){this._add("Q",t,e,n,i)},t.prototype.arc=function(t,e,n,i,r,o){this.ellipse(t,e,n,n,0,i,r,o)},t.prototype.ellipse=function(t,e,n,i,r,o,a,s){var l=0===this._d.length,u=a-o,h=!s,c=Math.abs(u),p=Nx(c-Lx)||(h?u>=Lx:-u>=Lx),d=u>0?u%Lx:u%Lx+Lx,f=!1;f=!!p||!Nx(c)&&d>=Dx==!!h;var g=Rx(t+n*Ax(o)),y=Rx(e+i*Cx(o));p&&(u=h?Lx-1e-4:1e-4-Lx,f=!0,l&&this._d.push("M",g,y));var v=Rx(t+n*Ax(o+u)),m=Rx(e+i*Cx(o+u));if(isNaN(g)||isNaN(y)||isNaN(n)||isNaN(i)||isNaN(r)||isNaN(kx)||isNaN(v)||isNaN(m))return"";this._d.push("A",Rx(n),Rx(i),Tx(r*kx),+f,+h,v,m)},t.prototype.rect=function(t,e,n,i){this._add("M",t,e),this._add("L",t+n,e),this._add("L",t+n,e+i),this._add("L",t,e+i),this._add("L",t,e)},t.prototype.closePath=function(){this._d.length>0&&this._add("Z")},t.prototype._add=function(t,e,n,i,r,o,a,s,l){this._d.push(t);for(var u=1;u<arguments.length;u++){var h=arguments[u];if(isNaN(h))return void(this._invalid=!0);this._d.push(Rx(h))}},t.prototype.generateStr=function(){this._str=this._invalid?"":this._d.join(" "),this._d=[]},t.prototype.getStr=function(){return this._str},t}(),Fx={brush:function(t){var e=t.style,n=t.__svgEl;n||(n=_x("path"),t.__svgEl=n),t.path||t.createPathProxy();var i=t.path;t.shapeChanged()&&(i.beginPath(),t.buildPath(i,t.shape),t.pathUpdated());var r=i.getVersion(),o=t,a=o.__svgPathBuilder;(o.__svgPathVersion!==r||!a||t.style.strokePercent<1)&&(a||(a=o.__svgPathBuilder=new Vx),a.reset(),i.rebuildPath(a,t.style.strokePercent),a.generateStr(),o.__svgPathVersion=r),zx(n,"d",a.getStr()),Bx(n,e,t),Ex(n,t.transform)}},Gx={brush:function(t){var e=t.style,n=e.image;if(n instanceof HTMLImageElement?n=n.src:n instanceof HTMLCanvasElement&&(n=n.toDataURL()),n){var i=e.x||0,r=e.y||0,o=e.width,a=e.height,s=t.__svgEl;s||(s=_x("image"),t.__svgEl=s),n!==t.__imageSrc&&(!function(t,e,n){t.setAttributeNS("http://www.w3.org/1999/xlink",e,n)}(s,"href",n),t.__imageSrc=n),zx(s,"width",o+""),zx(s,"height",a+""),zx(s,"x",i+""),zx(s,"y",r+""),Bx(s,e,t),Ex(s,t.transform)}}},Hx={left:"start",right:"end",center:"middle",middle:"middle"};var Wx={brush:function(t){var e=t.style,n=e.text;if(null!=n&&(n+=""),n&&!isNaN(e.x)&&!isNaN(e.y)){var i=t.__svgEl;i||(function(t,e,n){t.setAttributeNS("http://www.w3.org/XML/1998/namespace",e,n)}(i=_x("text"),"xml:space","preserve"),t.__svgEl=i);var r=e.font||En;i.style.font=r,i.textContent=n,Bx(i,e,t),Ex(i,t.transform);var o=e.x||0,a=function(t,e,n){return"top"===n?t+=e/2:"bottom"===n&&(t-=e/2),t}(e.y||0,Wn(r),e.textBaseline),s=Hx[e.textAlign]||e.textAlign;zx(i,"dominant-baseline","central"),zx(i,"text-anchor",s),zx(i,"x",o+""),zx(i,"y",a+"")}}},Yx=function(){function t(t,e,n,i,r){this.nextId=0,this._domName="_dom",this.createElement=_x,this._zrId=t,this._svgRoot=e,this._tagNames="string"==typeof n?[n]:n,this._markLabel=i,r&&(this._domName=r)}return t.prototype.getDefs=function(t){var e=this._svgRoot,n=this._svgRoot.getElementsByTagName("defs");if(0===n.length){if(t){var i=e.insertBefore(this.createElement("defs"),e.firstChild);return i.contains||(i.contains=function(t){var e=i.children;if(!e)return!1;for(var n=e.length-1;n>=0;--n)if(e[n]===t)return!0;return!1}),i}return null}return n[0]},t.prototype.doUpdate=function(t,e){if(t){var n=this.getDefs(!1);if(t[this._domName]&&n.contains(t[this._domName]))"function"==typeof e&&e(t);else{var i=this.add(t);i&&(t[this._domName]=i)}}},t.prototype.add=function(t){return null},t.prototype.addDom=function(t){var e=this.getDefs(!0);t.parentNode!==e&&e.appendChild(t)},t.prototype.removeDom=function(t){var e=this.getDefs(!1);e&&t[this._domName]&&(e.removeChild(t[this._domName]),t[this._domName]=null)},t.prototype.getDoms=function(){var t=this.getDefs(!1);if(!t)return[];var e=[];return P(this._tagNames,(function(n){for(var i=t.getElementsByTagName(n),r=0;r<i.length;r++)e.push(i[r])})),e},t.prototype.markAllUnused=function(){var t=this.getDoms(),e=this;P(t,(function(t){t[e._markLabel]="0"}))},t.prototype.markDomUsed=function(t){t&&(t[this._markLabel]="1")},t.prototype.markDomUnused=function(t){t&&(t[this._markLabel]="0")},t.prototype.isDomUnused=function(t){return t&&"1"!==t[this._markLabel]},t.prototype.removeUnused=function(){var t=this,e=this.getDefs(!1);e&&P(this.getDoms(),(function(n){t.isDomUnused(n)&&e.removeChild(n)}))},t.prototype.getSvgProxy=function(t){return t instanceof Za?Fx:t instanceof Ja?Gx:t instanceof qa?Wx:Fx},t.prototype.getSvgElement=function(t){return t.__svgEl},t}();function Xx(t){return"linear"===t.type}function Ux(t){return"radial"===t.type}function Zx(t){return t&&("linear"===t.type||"radial"===t.type)}var jx=function(t){function e(e,n){return t.call(this,e,n,["linearGradient","radialGradient"],"__gradient_in_use__")||this}return n(e,t),e.prototype.addWithoutUpdate=function(t,e){if(e&&e.style){var n=this;P(["fill","stroke"],(function(i){var r=e.style[i];if(Zx(r)){var o=r,a=n.getDefs(!0),s=void 0;o.__dom?(s=o.__dom,a.contains(o.__dom)||n.addDom(s)):s=n.add(o),n.markUsed(e);var l=s.getAttribute("id");t.setAttribute(i,"url(#"+l+")")}}))}},e.prototype.add=function(t){var e;if(Xx(t))e=this.createElement("linearGradient");else{if(!Ux(t))return b("Illegal gradient type."),null;e=this.createElement("radialGradient")}return t.id=t.id||this.nextId++,e.setAttribute("id","zr"+this._zrId+"-gradient-"+t.id),this.updateDom(t,e),this.addDom(e),e},e.prototype.update=function(t){if(Zx(t)){var e=this;this.doUpdate(t,(function(){var n=t.__dom;if(n){var i=n.tagName,r=t.type;"linear"===r&&"linearGradient"===i||"radial"===r&&"radialGradient"===i?e.updateDom(t,t.__dom):(e.removeDom(t),e.add(t))}}))}},e.prototype.updateDom=function(t,e){if(Xx(t))e.setAttribute("x1",t.x+""),e.setAttribute("y1",t.y+""),e.setAttribute("x2",t.x2+""),e.setAttribute("y2",t.y2+"");else{if(!Ux(t))return void b("Illegal gradient type.");e.setAttribute("cx",t.x+""),e.setAttribute("cy",t.y+""),e.setAttribute("r",t.r+"")}t.global?e.setAttribute("gradientUnits","userSpaceOnUse"):e.setAttribute("gradientUnits","objectBoundingBox"),e.innerHTML="";for(var n=t.colorStops,i=0,r=n.length;i<r;++i){var o=this.createElement("stop");o.setAttribute("offset",100*n[i].offset+"%");var a=n[i].color;if(a.indexOf("rgba")>-1){var s=qe(a)[3],l=Je(a);o.setAttribute("stop-color","#"+l),o.setAttribute("stop-opacity",s+"")}else o.setAttribute("stop-color",n[i].color);e.appendChild(o)}t.__dom=e},e.prototype.markUsed=function(e){if(e.style){var n=e.style.fill;n&&n.__dom&&t.prototype.markDomUsed.call(this,n.__dom),(n=e.style.stroke)&&n.__dom&&t.prototype.markDomUsed.call(this,n.__dom)}},e}(Yx);function qx(t){return t&&(!!t.image||!!t.svgElement)}var Kx=new ty,$x=function(t){function e(e,n){return t.call(this,e,n,["pattern"],"__pattern_in_use__")||this}return n(e,t),e.prototype.addWithoutUpdate=function(t,e){if(e&&e.style){var n=this;P(["fill","stroke"],(function(i){var r=e.style[i];if(qx(r)){var o=n.getDefs(!0),a=Kx.get(r);a?o.contains(a)||n.addDom(a):a=n.add(r),n.markUsed(e);var s=a.getAttribute("id");t.setAttribute(i,"url(#"+s+")")}}))}},e.prototype.add=function(t){if(qx(t)){var e=this.createElement("pattern");return t.id=null==t.id?this.nextId++:t.id,e.setAttribute("id","zr"+this._zrId+"-pattern-"+t.id),e.setAttribute("x","0"),e.setAttribute("y","0"),e.setAttribute("patternUnits","userSpaceOnUse"),this.updateDom(t,e),this.addDom(e),e}},e.prototype.update=function(t){if(qx(t)){var e=this;this.doUpdate(t,(function(){var n=Kx.get(t);e.updateDom(t,n)}))}},e.prototype.updateDom=function(t,e){var n=t.svgElement;if(n instanceof SVGElement)n.parentNode!==e&&(e.innerHTML="",e.appendChild(n),e.setAttribute("width",t.svgWidth+""),e.setAttribute("height",t.svgHeight+""));else{var i=void 0,r=e.getElementsByTagName("image");if(r.length){if(!t.image)return void e.removeChild(r[0]);i=r[0]}else t.image&&(i=this.createElement("image"));if(i){var o=void 0;if("string"==typeof t.image?o=t.image:t.image instanceof HTMLImageElement?o=t.image.src:t.image instanceof HTMLCanvasElement&&(o=t.image.toDataURL()),o){i.setAttribute("href",o),i.setAttribute("x","0"),i.setAttribute("y","0");var a=to(o,i,{dirty:function(){}},(function(t){e.setAttribute("width",t.width+""),e.setAttribute("height",t.height+"")}));a&&a.width&&a.height&&(e.setAttribute("width",a.width+""),e.setAttribute("height",a.height+"")),e.appendChild(i)}}}var s="translate("+(t.x||0)+", "+(t.y||0)+") rotate("+(t.rotation||0)/Math.PI*180+") scale("+(t.scaleX||1)+", "+(t.scaleY||1)+")";e.setAttribute("patternTransform",s),Kx.set(t,e)},e.prototype.markUsed=function(e){e.style&&(qx(e.style.fill)&&t.prototype.markDomUsed.call(this,Kx.get(e.style.fill)),qx(e.style.stroke)&&t.prototype.markDomUsed.call(this,Kx.get(e.style.stroke)))},e}(Yx);function Jx(t){var e=t.__clipPaths;return e&&e.length>0}var Qx=function(t){function e(e,n){var i=t.call(this,e,n,"clipPath","__clippath_in_use__")||this;return i._refGroups={},i._keyDuplicateCount={},i}return n(e,t),e.prototype.markAllUnused=function(){for(var e in t.prototype.markAllUnused.call(this),this._refGroups)this.markDomUnused(this._refGroups[e]);this._keyDuplicateCount={}},e.prototype._getClipPathGroup=function(t,e){if(Jx(t)){var n=t.__clipPaths,i=this._keyDuplicateCount,r=function(t){var e=[];if(t)for(var n=0;n<t.length;n++){var i=t[n];e.push(i.id)}return e.join(",")}(n);return cy(n,e&&e.__clipPaths)&&(i[r]=i[r]||0,i[r]&&(r+="-"+i[r]),i[r]++),this._refGroups[r]||(this._refGroups[r]=this.createElement("g"))}},e.prototype.update=function(t,e){var n=this._getClipPathGroup(t,e);return n&&(this.markDomUsed(n),this.updateDom(n,t.__clipPaths)),n},e.prototype.updateDom=function(t,e){if(e&&e.length>0){var n=this.getDefs(!0),i=e[0],r=void 0,o=void 0;i._dom?(o=i._dom.getAttribute("id"),r=i._dom,n.contains(r)||n.appendChild(r)):(o="zr"+this._zrId+"-clip-"+this.nextId,++this.nextId,(r=this.createElement("clipPath")).setAttribute("id",o),n.appendChild(r),i._dom=r),this.getSvgProxy(i).brush(i);var a=this.getSvgElement(i);r.innerHTML="",r.appendChild(a),t.setAttribute("clip-path","url(#"+o+")"),e.length>1&&this.updateDom(r,e.slice(1))}else t&&t.setAttribute("clip-path","none")},e.prototype.markUsed=function(e){var n=this;e.__clipPaths&&P(e.__clipPaths,(function(e){e._dom&&t.prototype.markDomUsed.call(n,e._dom)}))},e.prototype.removeUnused=function(){t.prototype.removeUnused.call(this);var e={};for(var n in this._refGroups){var i=this._refGroups[n];this.isDomUnused(i)?i.parentNode&&i.parentNode.removeChild(i):e[n]=i}this._refGroups=e},e}(Yx),tb=function(t){function e(e,n){var i=t.call(this,e,n,["filter"],"__filter_in_use__","_shadowDom")||this;return i._shadowDomMap={},i._shadowDomPool=[],i}return n(e,t),e.prototype._getFromPool=function(){var t=this._shadowDomPool.pop();if(!t){(t=this.createElement("filter")).setAttribute("id","zr"+this._zrId+"-shadow-"+this.nextId++);var e=this.createElement("feDropShadow");t.appendChild(e),this.addDom(t)}return t},e.prototype.update=function(t,e){if(function(t){return t&&(t.shadowBlur||t.shadowOffsetX||t.shadowOffsetY)}(e.style)){var n=function(t){var e=t.style,n=t.getGlobalScale();return[e.shadowColor,(e.shadowBlur||0).toFixed(2),(e.shadowOffsetX||0).toFixed(2),(e.shadowOffsetY||0).toFixed(2),n[0],n[1]].join(",")}(e),i=e._shadowDom=this._shadowDomMap[n];i||(i=this._getFromPool(),this._shadowDomMap[n]=i),this.updateDom(t,e,i)}else this.remove(t,e)},e.prototype.remove=function(t,e){null!=e._shadowDom&&(e._shadowDom=null,t.style.filter="")},e.prototype.updateDom=function(t,e,n){var i=n.children[0],r=e.style,o=e.getGlobalScale(),a=o[0],s=o[1];if(a&&s){var l=r.shadowOffsetX||0,u=r.shadowOffsetY||0,h=r.shadowBlur,c=r.shadowColor;i.setAttribute("dx",l/a+""),i.setAttribute("dy",u/s+""),i.setAttribute("flood-color",c);var p=h/2/a+" "+h/2/s;i.setAttribute("stdDeviation",p),n.setAttribute("x","-100%"),n.setAttribute("y","-100%"),n.setAttribute("width","300%"),n.setAttribute("height","300%"),e._shadowDom=n;var d=n.getAttribute("id");t.style.filter="url(#"+d+")"}},e.prototype.removeUnused=function(){if(this.getDefs(!1)){var t=this._shadowDomPool;for(var e in this._shadowDomMap){var n=this._shadowDomMap[e];t.push(n)}this._shadowDomMap={}}},e}(Yx);function eb(t){return parseInt(t,10)}function nb(t){return t instanceof Za?Fx:t instanceof Ja?Gx:t instanceof qa?Wx:Fx}function ib(t,e){return e&&t&&e.parentNode!==t}function rb(t,e,n){if(ib(t,e)&&n){var i=n.nextSibling;i?t.insertBefore(e,i):t.appendChild(e)}}function ob(t,e){if(ib(t,e)){var n=t.firstChild;n?t.insertBefore(e,n):t.appendChild(e)}}function ab(t,e){e&&t&&e.parentNode===t&&t.removeChild(e)}function sb(t){return t.__svgEl}var lb=function(){function t(t,e,n,i){this.type="svg",this.refreshHover=ub("refreshHover"),this.pathToImage=ub("pathToImage"),this.configLayer=ub("configLayer"),this.root=t,this.storage=e,this._opts=n=I({},n||{});var r=_x("svg");r.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns","http://www.w3.org/2000/svg"),r.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink","http://www.w3.org/1999/xlink"),r.setAttribute("version","1.1"),r.setAttribute("baseProfile","full"),r.style.cssText="user-select:none;position:absolute;left:0;top:0;";var o=_x("g");r.appendChild(o);var a=_x("g");r.appendChild(a),this._gradientManager=new jx(i,a),this._patternManager=new $x(i,a),this._clipPathManager=new Qx(i,a),this._shadowManager=new tb(i,a);var s=document.createElement("div");s.style.cssText="overflow:hidden;position:relative",this._svgDom=r,this._svgRoot=a,this._backgroundRoot=o,this._viewport=s,t.appendChild(s),s.appendChild(r),this.resize(n.width,n.height),this._visibleList=[]}return t.prototype.getType=function(){return"svg"},t.prototype.getViewportRoot=function(){return this._viewport},t.prototype.getSvgDom=function(){return this._svgDom},t.prototype.getSvgRoot=function(){return this._svgRoot},t.prototype.getViewportRootOffset=function(){var t=this.getViewportRoot();if(t)return{offsetLeft:t.offsetLeft||0,offsetTop:t.offsetTop||0}},t.prototype.refresh=function(){var t=this.storage.getDisplayList(!0);this._paintList(t)},t.prototype.setBackgroundColor=function(t){this._backgroundRoot&&this._backgroundNode&&this._backgroundRoot.removeChild(this._backgroundNode);var e=_x("rect");e.setAttribute("width",this.getWidth()),e.setAttribute("height",this.getHeight()),e.setAttribute("x",0),e.setAttribute("y",0),e.setAttribute("id",0),e.style.fill=t,this._backgroundRoot.appendChild(e),this._backgroundNode=e},t.prototype.createSVGElement=function(t){return _x(t)},t.prototype.paintOne=function(t){var e=nb(t);return e&&e.brush(t),sb(t)},t.prototype._paintList=function(t){var e=this._gradientManager,n=this._patternManager,i=this._clipPathManager,r=this._shadowManager;e.markAllUnused(),n.markAllUnused(),i.markAllUnused(),r.markAllUnused();for(var o=this._svgRoot,a=this._visibleList,s=t.length,l=[],u=0;u<s;u++){var h=nb(x=t[u]),c=sb(x);x.invisible||(!x.__dirty&&c||(h&&h.brush(x),(c=sb(x))&&x.style&&(e.update(x.style.fill),e.update(x.style.stroke),n.update(x.style.fill),n.update(x.style.stroke),r.update(c,x)),x.__dirty=0),c&&l.push(x))}var p,d,f,g,y,v=Mx(a,l);for(u=0;u<v.length;u++){if((_=v[u]).removed)for(var m=0;m<_.count;m++){c=sb(x=a[_.indices[m]]);Jx(x)?(f=c)&&f.parentNode&&f.parentNode.removeChild(f):ab(o,c)}}for(u=0;u<v.length;u++){var _;(_=v[u]).added;if(!_.removed)for(m=0;m<_.count;m++){var x=l[_.indices[m]],b=i.update(x,g);b!==y&&(p=d,b&&(p?rb(o,b,p):ob(o,b),d=b,p=null),y=b);c=sb(x);p?rb(y||o,c,p):ob(y||o,c),p=c||p,y||(d=p),e.markUsed(x),e.addWithoutUpdate(c,x),n.markUsed(x),n.addWithoutUpdate(c,x),i.markUsed(x),g=x}}e.removeUnused(),n.removeUnused(),i.removeUnused(),r.removeUnused(),this._visibleList=l},t.prototype._getDefs=function(t){var e=this._svgDom,n=e.getElementsByTagName("defs");if(0===n.length){if(t){var i=e.insertBefore(_x("defs"),e.firstChild);return i.contains||(i.contains=function(t){var e=i.children;if(!e)return!1;for(var n=e.length-1;n>=0;--n)if(e[n]===t)return!0;return!1}),i}return null}return n[0]},t.prototype.resize=function(t,e){var n=this._viewport;n.style.display="none";var i=this._opts;if(null!=t&&(i.width=t),null!=e&&(i.height=e),t=this._getSize(0),e=this._getSize(1),n.style.display="",this._width!==t||this._height!==e){this._width=t,this._height=e;var r=n.style;r.width=t+"px",r.height=e+"px";var o=this._svgDom;o.setAttribute("width",t+""),o.setAttribute("height",e+"")}this._backgroundNode&&(this._backgroundNode.setAttribute("width",t),this._backgroundNode.setAttribute("height",e))},t.prototype.getWidth=function(){return this._width},t.prototype.getHeight=function(){return this._height},t.prototype._getSize=function(t){var e=this._opts,n=["width","height"][t],i=["clientWidth","clientHeight"][t],r=["paddingLeft","paddingTop"][t],o=["paddingRight","paddingBottom"][t];if(null!=e[n]&&"auto"!==e[n])return parseFloat(e[n]);var a=this.root,s=document.defaultView.getComputedStyle(a);return(a[i]||eb(s[n])||eb(a.style[n]))-(eb(s[r])||0)-(eb(s[o])||0)|0},t.prototype.dispose=function(){this.root.innerHTML="",this._svgRoot=this._backgroundRoot=this._svgDom=this._backgroundNode=this._viewport=this.storage=null},t.prototype.clear=function(){var t=this._viewport;t&&t.parentNode&&t.parentNode.removeChild(t)},t.prototype.toDataURL=function(){this.refresh();var t=this._svgDom,e=t.outerHTML||(t.parentNode&&t.parentNode).innerHTML;return"data:image/svg+xml;charset=UTF-8,"+encodeURIComponent(e.replace(/></g,">\n\r<"))},t}();function ub(t){return function(){b('In SVG mode painter not support method "'+t+'"')}}function hb(){return!1}function cb(t,e,n){var i=C(),r=e.getWidth(),o=e.getHeight(),a=i.style;return a&&(a.position="absolute",a.left="0",a.top="0",a.width=r+"px",a.height=o+"px",i.setAttribute("data-zr-dom-id",t)),i.width=r*n,i.height=o*n,i}var pb=function(t){function e(e,n,i){var r,o=t.call(this)||this;o.motionBlur=!1,o.lastFrameAlpha=.7,o.dpr=1,o.virtual=!1,o.config={},o.incremental=!1,o.zlevel=0,o.maxRepaintRectCount=5,o.__dirty=!0,o.__firstTimePaint=!0,o.__used=!1,o.__drawIndex=0,o.__startIndex=0,o.__endIndex=0,o.__prevStartIndex=null,o.__prevEndIndex=null,i=i||Zn,"string"==typeof e?r=cb(e,n,i):X(e)&&(e=(r=e).id),o.id=e,o.dom=r;var a=r.style;return a&&(r.onselectstart=hb,a.webkitUserSelect="none",a.userSelect="none",a.webkitTapHighlightColor="rgba(0,0,0,0)",a["-webkit-touch-callout"]="none",a.padding="0",a.margin="0",a.borderWidth="0"),o.domBack=null,o.ctxBack=null,o.painter=n,o.config=null,o.dpr=i,o}return n(e,t),e.prototype.getElementCount=function(){return this.__endIndex-this.__startIndex},e.prototype.afterBrush=function(){this.__prevStartIndex=this.__startIndex,this.__prevEndIndex=this.__endIndex},e.prototype.initContext=function(){this.ctx=this.dom.getContext("2d"),this.ctx.dpr=this.dpr},e.prototype.setUnpainted=function(){this.__firstTimePaint=!0},e.prototype.createBackBuffer=function(){var t=this.dpr;this.domBack=cb("back-"+this.id,this.painter,t),this.ctxBack=this.domBack.getContext("2d"),1!==t&&this.ctxBack.scale(t,t)},e.prototype.createRepaintRects=function(t,e,n,i){if(this.__firstTimePaint)return this.__firstTimePaint=!1,null;var r,o=[],a=this.maxRepaintRectCount,s=!1,l=new Rn(0,0,0,0);function u(t){if(t.isFinite()&&!t.isZero())if(0===o.length){(e=new Rn(0,0,0,0)).copy(t),o.push(e)}else{for(var e,n=!1,i=1/0,r=0,u=0;u<o.length;++u){var h=o[u];if(h.intersect(t)){var c=new Rn(0,0,0,0);c.copy(h),c.union(t),o[u]=c,n=!0;break}if(s){l.copy(t),l.union(h);var p=t.width*t.height,d=h.width*h.height,f=l.width*l.height-p-d;f<i&&(i=f,r=u)}}if(s&&(o[r].union(t),n=!0),!n)(e=new Rn(0,0,0,0)).copy(t),o.push(e);s||(s=o.length>=a)}}for(var h=this.__startIndex;h<this.__endIndex;++h){if(d=t[h]){var c=d.shouldBePainted(n,i,!0,!0);(f=d.__isRendered&&(d.__dirty&ei.REDARAW_BIT||!c)?d.getPrevPaintRect():null)&&u(f);var p=c&&(d.__dirty&ei.REDARAW_BIT||!d.__isRendered)?d.getPaintRect():null;p&&u(p)}}for(h=this.__prevStartIndex;h<this.__prevEndIndex;++h){var d,f;c=(d=e[h]).shouldBePainted(n,i,!0,!0);if(d&&(!c||!d.__zr)&&d.__isRendered)(f=d.getPrevPaintRect())&&u(f)}do{r=!1;for(h=0;h<o.length;)if(o[h].isZero())o.splice(h,1);else{for(var g=h+1;g<o.length;)o[h].intersect(o[g])?(r=!0,o[h].union(o[g]),o.splice(g,1)):g++;h++}}while(r);return this._paintRects=o,o},e.prototype.debugGetPaintRects=function(){return(this._paintRects||[]).slice()},e.prototype.resize=function(t,e){var n=this.dpr,i=this.dom,r=i.style,o=this.domBack;r&&(r.width=t+"px",r.height=e+"px"),i.width=t*n,i.height=e*n,o&&(o.width=t*n,o.height=e*n,1!==n&&this.ctxBack.scale(n,n))},e.prototype.clear=function(t,e,n){var i=this.dom,r=this.ctx,o=i.width,a=i.height;e=e||this.clearColor;var s=this.motionBlur&&!t,l=this.lastFrameAlpha,u=this.dpr,h=this;s&&(this.domBack||this.createBackBuffer(),this.ctxBack.globalCompositeOperation="copy",this.ctxBack.drawImage(i,0,0,o/u,a/u));var c=this.domBack;function p(t,n,i,o){if(r.clearRect(t,n,i,o),e&&"transparent"!==e){var a=void 0;q(e)?(a=e.__canvasGradient||hy(r,e,{x:0,y:0,width:i,height:o}),e.__canvasGradient=a):K(e)&&(a=my(r,e,{dirty:function(){h.setUnpainted(),h.__painter.refresh()}})),r.save(),r.fillStyle=a||e,r.fillRect(t,n,i,o),r.restore()}s&&(r.save(),r.globalAlpha=l,r.drawImage(c,t,n,i,o),r.restore())}!n||s?p(0,0,o,a):n.length&&P(n,(function(t){p(t.x*u,t.y*u,t.width*u,t.height*u)}))},e}(Ft),db=1e5,fb=314159,gb=.01;function yb(t){return parseInt(t,10)}var vb=function(){function t(t,e,n,i){this.type="canvas",this._zlevelList=[],this._prevDisplayList=[],this._layers={},this._layerConfig={},this._needsManuallyCompositing=!1,this.type="canvas";var r=!t.nodeName||"CANVAS"===t.nodeName.toUpperCase();this._opts=n=I({},n||{}),this.dpr=n.devicePixelRatio||Zn,this._singleCanvas=r,this.root=t;var o=t.style;o&&(o.webkitTapHighlightColor="transparent",o.webkitUserSelect="none",o.userSelect="none",o["-webkit-touch-callout"]="none",t.innerHTML=""),this.storage=e;var a=this._zlevelList;this._prevDisplayList=[];var s=this._layers;if(r){var l=t,u=l.width,h=l.height;null!=n.width&&(u=n.width),null!=n.height&&(h=n.height),this.dpr=n.devicePixelRatio||1,l.width=u*this.dpr,l.height=h*this.dpr,this._width=u,this._height=h;var c=new pb(l,this,this.dpr);c.__builtin__=!0,c.initContext(),s[314159]=c,c.zlevel=fb,a.push(fb),this._domRoot=t}else{this._width=this._getSize(0),this._height=this._getSize(1);var p=this._domRoot=function(t,e){var n=document.createElement("div");return n.style.cssText=["position:relative","width:"+t+"px","height:"+e+"px","padding:0","margin:0","border-width:0"].join(";")+";",n}(this._width,this._height);t.appendChild(p)}}return t.prototype.getType=function(){return"canvas"},t.prototype.isSingleCanvas=function(){return this._singleCanvas},t.prototype.getViewportRoot=function(){return this._domRoot},t.prototype.getViewportRootOffset=function(){var t=this.getViewportRoot();if(t)return{offsetLeft:t.offsetLeft||0,offsetTop:t.offsetTop||0}},t.prototype.refresh=function(t){var e=this.storage.getDisplayList(!0),n=this._prevDisplayList,i=this._zlevelList;this._redrawId=Math.random(),this._paintList(e,n,t,this._redrawId);for(var r=0;r<i.length;r++){var o=i[r],a=this._layers[o];if(!a.__builtin__&&a.refresh){var s=0===r?this._backgroundColor:null;a.refresh(s)}}return this._opts.useDirtyRect&&(this._prevDisplayList=e.slice()),this},t.prototype.refreshHover=function(){this._paintHoverList(this.storage.getDisplayList(!1))},t.prototype._paintHoverList=function(t){var e=t.length,n=this._hoverlayer;if(n&&n.clear(),e){for(var i,r={inHover:!0,viewWidth:this._width,viewHeight:this._height},o=0;o<e;o++){var a=t[o];a.__inHover&&(n||(n=this._hoverlayer=this.getLayer(db)),i||(i=n.ctx).save(),Cy(i,a,r,o===e-1))}i&&i.restore()}},t.prototype.getHoverLayer=function(){return this.getLayer(db)},t.prototype.paintOne=function(t,e){Ty(t,e)},t.prototype._paintList=function(t,e,n,i){if(this._redrawId===i){n=n||!1,this._updateLayerStatus(t);var r=this._doPaintList(t,e,n),o=r.finished,a=r.needsRefreshHover;if(this._needsManuallyCompositing&&this._compositeManually(),a&&this._paintHoverList(t),o)this.eachLayer((function(t){t.afterBrush&&t.afterBrush()}));else{var s=this;mi((function(){s._paintList(t,e,n,i)}))}}},t.prototype._compositeManually=function(){var t=this.getLayer(fb).ctx,e=this._domRoot.width,n=this._domRoot.height;t.clearRect(0,0,e,n),this.eachBuiltinLayer((function(i){i.virtual&&t.drawImage(i.dom,0,0,e,n)}))},t.prototype._doPaintList=function(t,e,n){for(var i=this,r=[],o=this._opts.useDirtyRect,s=0;s<this._zlevelList.length;s++){var l=this._zlevelList[s],u=this._layers[l];u.__builtin__&&u!==this._hoverlayer&&(u.__dirty||n)&&r.push(u)}for(var h=!0,c=!1,p=function(a){var s=r[a],l=s.ctx,u=o&&s.createRepaintRects(t,e,d._width,d._height);l.save();var p,f=n?s.__startIndex:s.__drawIndex,g=!n&&s.incremental&&Date.now,y=g&&Date.now(),v=s.zlevel===d._zlevelList[0]?d._backgroundColor:null;if(s.__startIndex===s.__endIndex)s.clear(!1,v,u);else if(f===s.__startIndex){var m=t[f];m.incremental&&m.notClear&&!n||s.clear(!1,v,u)}-1===f&&(console.error("For some unknown reason. drawIndex is -1"),f=s.__startIndex);var _=function(e){var n={inHover:!1,allClipped:!1,prevEl:null,viewWidth:i._width,viewHeight:i._height};for(p=f;p<s.__endIndex;p++){var r=t[p];if(r.__inHover&&(c=!0),i._doPaintEl(r,s,o,e,n,p===s.__endIndex-1),g)if(Date.now()-y>15)break}n.prevElClipPaths&&l.restore()};if(u)if(0===u.length)p=s.__endIndex;else for(var x=d.dpr,b=0;b<u.length;++b){var w=u[b];l.save(),l.beginPath(),l.rect(w.x*x,w.y*x,w.width*x,w.height*x),l.clip(),_(w),l.restore()}else l.save(),_(),l.restore();s.__drawIndex=p,s.__drawIndex<s.__endIndex&&(h=!1)},d=this,f=0;f<r.length;f++)p(f);return a.wxa&&P(this._layers,(function(t){t&&t.ctx&&t.ctx.draw&&t.ctx.draw()})),{finished:h,needsRefreshHover:c}},t.prototype._doPaintEl=function(t,e,n,i,r,o){var a=e.ctx;if(n){var s=t.getPaintRect();(!i||s&&s.intersect(i))&&(Cy(a,t,r,o),t.setPrevPaintRect(s))}else Cy(a,t,r,o)},t.prototype.getLayer=function(t,e){this._singleCanvas&&!this._needsManuallyCompositing&&(t=fb);var n=this._layers[t];return n||((n=new pb("zr_"+t,this,this.dpr)).zlevel=t,n.__builtin__=!0,this._layerConfig[t]?S(n,this._layerConfig[t],!0):this._layerConfig[t-gb]&&S(n,this._layerConfig[t-gb],!0),e&&(n.virtual=e),this.insertLayer(t,n),n.initContext()),n},t.prototype.insertLayer=function(t,e){var n=this._layers,i=this._zlevelList,r=i.length,o=this._domRoot,a=null,s=-1;if(n[t])b("ZLevel "+t+" has been used already");else if(function(t){return!!t&&(!!t.__builtin__||"function"==typeof t.resize&&"function"==typeof t.refresh)}(e)){if(r>0&&t>i[0]){for(s=0;s<r-1&&!(i[s]<t&&i[s+1]>t);s++);a=n[i[s]]}if(i.splice(s+1,0,t),n[t]=e,!e.virtual)if(a){var l=a.dom;l.nextSibling?o.insertBefore(e.dom,l.nextSibling):o.appendChild(e.dom)}else o.firstChild?o.insertBefore(e.dom,o.firstChild):o.appendChild(e.dom);e.__painter=this}else b("Layer of zlevel "+t+" is not valid")},t.prototype.eachLayer=function(t,e){for(var n=this._zlevelList,i=0;i<n.length;i++){var r=n[i];t.call(e,this._layers[r],r)}},t.prototype.eachBuiltinLayer=function(t,e){for(var n=this._zlevelList,i=0;i<n.length;i++){var r=n[i],o=this._layers[r];o.__builtin__&&t.call(e,o,r)}},t.prototype.eachOtherLayer=function(t,e){for(var n=this._zlevelList,i=0;i<n.length;i++){var r=n[i],o=this._layers[r];o.__builtin__||t.call(e,o,r)}},t.prototype.getLayers=function(){return this._layers},t.prototype._updateLayerStatus=function(t){function e(t){o&&(o.__endIndex!==t&&(o.__dirty=!0),o.__endIndex=t)}if(this.eachBuiltinLayer((function(t,e){t.__dirty=t.__used=!1})),this._singleCanvas)for(var n=1;n<t.length;n++){if((s=t[n]).zlevel!==t[n-1].zlevel||s.incremental){this._needsManuallyCompositing=!0;break}}var i,r,o=null,a=0;for(r=0;r<t.length;r++){var s,l=(s=t[r]).zlevel,u=void 0;i!==l&&(i=l,a=0),s.incremental?((u=this.getLayer(l+.001,this._needsManuallyCompositing)).incremental=!0,a=1):u=this.getLayer(l+(a>0?gb:0),this._needsManuallyCompositing),u.__builtin__||b("ZLevel "+l+" has been used by unkown layer "+u.id),u!==o&&(u.__used=!0,u.__startIndex!==r&&(u.__dirty=!0),u.__startIndex=r,u.incremental?u.__drawIndex=-1:u.__drawIndex=r,e(r),o=u),s.__dirty&ei.REDARAW_BIT&&!s.__inHover&&(u.__dirty=!0,u.incremental&&u.__drawIndex<0&&(u.__drawIndex=r))}e(r),this.eachBuiltinLayer((function(t,e){!t.__used&&t.getElementCount()>0&&(t.__dirty=!0,t.__startIndex=t.__endIndex=t.__drawIndex=0),t.__dirty&&t.__drawIndex<0&&(t.__drawIndex=t.__startIndex)}))},t.prototype.clear=function(){return this.eachBuiltinLayer(this._clearLayer),this},t.prototype._clearLayer=function(t){t.clear()},t.prototype.setBackgroundColor=function(t){this._backgroundColor=t,P(this._layers,(function(t){t.setUnpainted()}))},t.prototype.configLayer=function(t,e){if(e){var n=this._layerConfig;n[t]?S(n[t],e,!0):n[t]=e;for(var i=0;i<this._zlevelList.length;i++){var r=this._zlevelList[i];if(r===t||r===t+gb)S(this._layers[r],n[t],!0)}}},t.prototype.delLayer=function(t){var e=this._layers,n=this._zlevelList,i=e[t];i&&(i.dom.parentNode.removeChild(i.dom),delete e[t],n.splice(A(n,t),1))},t.prototype.resize=function(t,e){if(this._domRoot.style){var n=this._domRoot;n.style.display="none";var i=this._opts;if(null!=t&&(i.width=t),null!=e&&(i.height=e),t=this._getSize(0),e=this._getSize(1),n.style.display="",this._width!==t||e!==this._height){for(var r in n.style.width=t+"px",n.style.height=e+"px",this._layers)this._layers.hasOwnProperty(r)&&this._layers[r].resize(t,e);this.refresh(!0)}this._width=t,this._height=e}else{if(null==t||null==e)return;this._width=t,this._height=e,this.getLayer(fb).resize(t,e)}return this},t.prototype.clearLayer=function(t){var e=this._layers[t];e&&e.clear()},t.prototype.dispose=function(){this.root.innerHTML="",this.root=this.storage=this._domRoot=this._layers=null},t.prototype.getRenderedCanvas=function(t){if(t=t||{},this._singleCanvas&&!this._compositeManually)return this._layers[314159].dom;var e=new pb("image",this,t.pixelRatio||this.dpr),n=e.ctx;if(e.initContext(),e.clear(!1,t.backgroundColor||this._backgroundColor),t.pixelRatio<=this.dpr){this.refresh();var i=e.dom.width,r=e.dom.height,o=e.ctx;this.eachLayer((function(t){t.__builtin__?o.drawImage(t.dom,0,0,i,r):t.renderToCanvas&&(e.ctx.save(),t.renderToCanvas(e.ctx),e.ctx.restore())}))}else for(var a={inHover:!1,viewWidth:this._width,viewHeight:this._height},s=this.storage.getDisplayList(!0),l=0,u=s.length;l<u;l++){Cy(n,s[l],a,l===u-1)}return e.dom},t.prototype.getWidth=function(){return this._width},t.prototype.getHeight=function(){return this._height},t.prototype._getSize=function(t){var e=this._opts,n=["width","height"][t],i=["clientWidth","clientHeight"][t],r=["paddingLeft","paddingTop"][t],o=["paddingRight","paddingBottom"][t];if(null!=e[n]&&"auto"!==e[n])return parseFloat(e[n]);var a=this.root,s=document.defaultView.getComputedStyle(a);return(a[i]||yb(s[n])||yb(a.style[n]))-(yb(s[r])||0)-(yb(s[o])||0)|0},t.prototype.pathToImage=function(t,e){e=e||this.dpr;var n=document.createElement("canvas"),i=n.getContext("2d"),r=t.getBoundingRect(),o=t.style,a=o.shadowBlur*e,s=o.shadowOffsetX*e,l=o.shadowOffsetY*e,u=t.hasStroke()?o.lineWidth:0,h=Math.max(u/2,-s+a),c=Math.max(u/2,s+a),p=Math.max(u/2,-l+a),d=Math.max(u/2,l+a),f=r.width+h+c,g=r.height+p+d;n.width=f*e,n.height=g*e,i.scale(e,e),i.clearRect(0,0,f,g),i.dpr=e;var y={x:t.x,y:t.y,scaleX:t.scaleX,scaleY:t.scaleY,rotation:t.rotation,originX:t.originX,originY:t.originY};t.x=h-r.x,t.y=p-r.y,t.rotation=0,t.scaleX=1,t.scaleY=1,t.updateTransform(),t&&Cy(i,t,{inHover:!1,viewWidth:this._width,viewHeight:this._height},!0);var v=new Ja({style:{x:0,y:0,image:n}});return I(t,y),v},t}();var mb=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.hasSymbolVisual=!0,n.legendSymbol="line",n}return n(e,t),e.prototype.getInitialData=function(t){return Hm(this.getSource(),this,{useEncodeDefaulter:!0})},e.type="series.line",e.dependencies=["grid","polar"],e.defaultOption={zlevel:0,z:3,coordinateSystem:"cartesian2d",legendHoverLink:!0,clip:!0,label:{position:"top"},endLabel:{show:!1,valueAnimation:!0,distance:8},lineStyle:{width:2,type:"solid"},emphasis:{scale:!0,lineStyle:{width:"bolder"}},step:!1,smooth:!1,smoothMonotone:null,symbol:"emptyCircle",symbolSize:4,symbolRotate:null,showSymbol:!0,showAllSymbol:"auto",connectNulls:!1,sampling:"none",animationEasing:"linear",progressive:0,hoverLayerThreshold:1/0},e}(rf);function _b(t,e){var n=t.mapDimensionsAll("defaultedLabel"),i=n.length;if(1===i){var r=fd(t,e,n[0]);return null!=r?r+"":null}if(i){for(var o=[],a=0;a<n.length;a++)o.push(fd(t,e,n[a]));return o.join(" ")}}function xb(t,e){var n=t.mapDimensionsAll("defaultedLabel");if(!F(e))return e+"";for(var i=[],r=0;r<n.length;r++){var o=t.getDimensionInfo(n[r]);o&&i.push(e[o.index])}return i.join(" ")}var bb=function(t){function e(e,n,i,r){var o=t.call(this)||this;return o.updateData(e,n,i,r),o}return n(e,t),e.prototype._createSymbol=function(t,e,n,i,r){this.removeAll();var o=uy(t,-1,-1,2,2,null,r);o.attr({z2:100,culling:!0,scaleX:i[0]/2,scaleY:i[1]/2}),o.drift=wb,this._symbolType=t,this.add(o)},e.prototype.stopSymbolAnimation=function(t){this.childAt(0).stopAnimation(null,t)},e.prototype.getSymbolPath=function(){return this.childAt(0)},e.prototype.highlight=function(){Hs(this.childAt(0))},e.prototype.downplay=function(){Ws(this.childAt(0))},e.prototype.setZ=function(t,e){var n=this.childAt(0);n.zlevel=t,n.z=e},e.prototype.setDraggable=function(t){var e=this.childAt(0);e.draggable=t,e.cursor=t?"move":e.cursor},e.prototype.updateData=function(t,n,i,r){this.silent=!1;var o=t.getItemVisual(n,"symbol")||"circle",a=t.hostModel,s=e.getSymbolSize(t,n),l=o!==this._symbolType,u=r&&r.disableAnimation;if(l){var h=t.getItemVisual(n,"symbolKeepAspect");this._createSymbol(o,t,n,s,h)}else{(p=this.childAt(0)).silent=!1;var c={scaleX:s[0]/2,scaleY:s[1]/2};u?p.attr(c):Ou(p,c,a,n)}if(this._updateCommon(t,n,s,i,r),l){var p=this.childAt(0);if(!u){c={scaleX:this._sizeX,scaleY:this._sizeY,style:{opacity:p.style.opacity}};p.scaleX=p.scaleY=0,p.style.opacity=0,Ru(p,c,a,n)}}u&&this.childAt(0).stopAnimation("remove"),this._seriesModel=a},e.prototype._updateCommon=function(t,e,n,i,r){var o,a,s,l,u,h,c,p,d,f=this.childAt(0),g=t.hostModel;if(i&&(o=i.emphasisItemStyle,a=i.blurItemStyle,s=i.selectItemStyle,l=i.focus,u=i.blurScope,h=i.symbolOffset,c=i.labelStatesModels,p=i.hoverScale,d=i.cursorStyle),!i||t.hasItemOption){var y=i&&i.itemModel?i.itemModel:t.getItemModel(e),v=y.getModel("emphasis");o=v.getModel("itemStyle").getItemStyle(),s=y.getModel(["select","itemStyle"]).getItemStyle(),a=y.getModel(["blur","itemStyle"]).getItemStyle(),l=v.get("focus"),u=v.get("blurScope"),h=y.getShallow("symbolOffset"),c=eh(y),p=v.getShallow("scale"),d=y.getShallow("cursor")}var m=t.getItemVisual(e,"symbolRotate");f.attr("rotation",(m||0)*Math.PI/180||0),h&&(f.x=Zi(h[0],n[0]),f.y=Zi(h[1],n[1])),d&&f.attr("cursor",d);var _=t.getItemVisual(e,"style"),x=_.fill;if(f instanceof Ja){var b=f.style;f.useStyle(I({image:b.image,x:b.x,y:b.y,width:b.width,height:b.height},_))}else f.__isEmptyBrush?f.useStyle(I({},_)):f.useStyle(_),f.style.decal=null,f.setColor(x,r&&r.symbolInnerColor),f.style.strokeNoScale=!0;var w=t.getItemVisual(e,"liftZ"),S=this._z2;null!=w?null==S&&(this._z2=f.z2,f.z2+=w):null!=S&&(f.z2=S,this._z2=null);var M=r&&r.useNameLabel;th(f,c,{labelFetcher:g,labelDataIndex:e,defaultText:function(e){return M?t.getName(e):_b(t,e)},inheritColor:x,defaultOpacity:_.opacity}),this._sizeX=n[0]/2,this._sizeY=n[1]/2;var T=f.ensureState("emphasis");if(T.style=o,f.ensureState("select").style=s,f.ensureState("blur").style=a,p){var C=Math.max(1.1,3/this._sizeY);T.scaleX=this._sizeX*C,T.scaleY=this._sizeY*C}this.setSymbolScale(1),Js(this,l,u)},e.prototype.setSymbolScale=function(t){this.scaleX=this.scaleY=t},e.prototype.fadeOut=function(t,e){var n=this.childAt(0),i=this._seriesModel,r=ys(this).dataIndex,o=e&&e.animation;if(this.silent=n.silent=!0,e&&e.fadeLabel){var a=n.getTextContent();a&&Nu(a,{style:{opacity:0}},i,{dataIndex:r,removeOpt:o,cb:function(){n.removeTextContent()}})}else n.removeTextContent();Nu(n,{style:{opacity:0},scaleX:0,scaleY:0},i,{dataIndex:r,cb:t,removeOpt:o})},e.getSymbolSize=function(t,e){var n=t.getItemVisual(e,"symbolSize");return n instanceof Array?n.slice():[+n,+n]},e}(zi);function wb(t,e){this.parent.drift(t,e)}function Sb(t,e,n,i){return e&&!isNaN(e[0])&&!isNaN(e[1])&&!(i.isIgnore&&i.isIgnore(n))&&!(i.clipShape&&!i.clipShape.contain(e[0],e[1]))&&"none"!==t.getItemVisual(n,"symbol")}function Mb(t){return null==t||X(t)||(t={isIgnore:t}),t||{}}function Ib(t){var e=t.hostModel,n=e.getModel("emphasis");return{emphasisItemStyle:n.getModel("itemStyle").getItemStyle(),blurItemStyle:e.getModel(["blur","itemStyle"]).getItemStyle(),selectItemStyle:e.getModel(["select","itemStyle"]).getItemStyle(),focus:n.get("focus"),blurScope:n.get("blurScope"),symbolRotate:e.get("symbolRotate"),symbolOffset:e.get("symbolOffset"),hoverScale:n.get("scale"),labelStatesModels:eh(e),cursorStyle:e.get("cursor")}}var Tb=function(){function t(t){this.group=new zi,this._SymbolCtor=t||bb}return t.prototype.updateData=function(t,e){e=Mb(e);var n=this.group,i=t.hostModel,r=this._data,o=this._SymbolCtor,a=e.disableAnimation,s=Ib(t),l={disableAnimation:a},u=e.getSymbolPoint||function(e){return t.getItemLayout(e)};r||n.removeAll(),t.diff(r).add((function(i){var r=u(i);if(Sb(t,r,i,e)){var a=new o(t,i,s,l);a.setPosition(r),t.setItemGraphicEl(i,a),n.add(a)}})).update((function(h,c){var p=r.getItemGraphicEl(c),d=u(h);if(Sb(t,d,h,e)){if(p){p.updateData(t,h,s,l);var f={x:d[0],y:d[1]};a?p.attr(f):Ou(p,f,i)}else(p=new o(t,h)).setPosition(d);n.add(p),t.setItemGraphicEl(h,p)}else n.remove(p)})).remove((function(t){var e=r.getItemGraphicEl(t);e&&e.fadeOut((function(){n.remove(e)}))})).execute(),this._getSymbolPoint=u,this._data=t},t.prototype.isPersistent=function(){return!0},t.prototype.updateLayout=function(){var t=this,e=this._data;e&&e.eachItemGraphicEl((function(e,n){var i=t._getSymbolPoint(n);e.setPosition(i),e.markRedraw()}))},t.prototype.incrementalPrepareUpdate=function(t){this._seriesScope=Ib(t),this._data=null,this.group.removeAll()},t.prototype.incrementalUpdate=function(t,e,n){function i(t){t.isGroup||(t.incremental=!0,t.ensureState("emphasis").hoverLayer=!0)}n=Mb(n);for(var r=t.start;r<t.end;r++){var o=e.getItemLayout(r);if(Sb(e,o,r,n)){var a=new this._SymbolCtor(e,r,this._seriesScope);a.traverse(i),a.setPosition(o),this.group.add(a),e.setItemGraphicEl(r,a)}}},t.prototype.remove=function(t){var e=this.group,n=this._data;n&&t?n.eachItemGraphicEl((function(t){t.fadeOut((function(){e.remove(t)}))})):e.removeAll()},t}();function Cb(t,e,n){var i=t.getBaseAxis(),r=t.getOtherAxis(i),o=function(t,e){var n=0,i=t.scale.getExtent();"start"===e?n=i[0]:"end"===e?n=i[1]:i[0]>0?n=i[0]:i[1]<0&&(n=i[1]);return n}(r,n),a=i.dim,s=r.dim,l=e.mapDimension(s),u=e.mapDimension(a),h="x"===s||"radius"===s?1:0,c=O(t.dimensions,(function(t){return e.mapDimension(t)})),p=!1,d=e.getCalculationInfo("stackResultDimension");return Fm(e,c[0])&&(p=!0,c[0]=d),Fm(e,c[1])&&(p=!0,c[1]=d),{dataDimsForPoint:c,valueStart:o,valueAxisDim:s,baseAxisDim:a,stacked:!!p,valueDim:l,baseDim:u,baseDataOffset:h,stackedOverDimension:e.getCalculationInfo("stackedOverDimension")}}function Ab(t,e,n,i){var r=NaN;t.stacked&&(r=n.get(n.getCalculationInfo("stackedOverDimension"),i)),isNaN(r)&&(r=t.valueStart);var o=t.baseDataOffset,a=[];return a[o]=n.get(t.baseDim,i),a[1-o]=r,e.dataToPoint(a)}var Db="undefined"!=typeof Float32Array,Lb=Db?Float32Array:Array;function kb(t){return F(t)?Db?new Float32Array(t):t:new Lb(t)}var Pb=Math.min,Ob=Math.max;function Rb(t,e){return isNaN(t)||isNaN(e)}function Nb(t,e,n,i,r,o,a,s,l){for(var u,h,c,p,d,f,g=n,y=0;y<i;y++){var v=e[2*g],m=e[2*g+1];if(g>=r||g<0)break;if(Rb(v,m)){if(l){g+=o;continue}break}if(g===n)t[o>0?"moveTo":"lineTo"](v,m),c=v,p=m;else{var _=v-u,x=m-h;if(_*_+x*x<.5){g+=o;continue}if(a>0){var b=g+o,w=e[2*b],S=e[2*b+1],M=y+1;if(l)for(;Rb(w,S)&&M<i;)M++,w=e[2*(b+=o)],S=e[2*b+1];var I=.5,T=0,C=0,A=void 0,D=void 0;if(M>=i||Rb(w,S))d=v,f=m;else{T=w-u,C=S-h;var L=v-u,k=w-v,P=m-h,O=S-m,R=void 0,N=void 0;"x"===s?(R=Math.abs(L),N=Math.abs(k),d=v-R*a,f=m,A=v+R*a,D=m):"y"===s?(R=Math.abs(P),N=Math.abs(O),d=v,f=m-R*a,A=v,D=m+R*a):(R=Math.sqrt(L*L+P*P),d=v-T*a*(1-(I=(N=Math.sqrt(k*k+O*O))/(N+R))),f=m-C*a*(1-I),D=m+C*a*I,A=Pb(A=v+T*a*I,Ob(w,v)),D=Pb(D,Ob(S,m)),A=Ob(A,Pb(w,v)),f=m-(C=(D=Ob(D,Pb(S,m)))-m)*R/N,d=Pb(d=v-(T=A-v)*R/N,Ob(u,v)),f=Pb(f,Ob(h,m)),A=v+(T=v-(d=Ob(d,Pb(u,v))))*N/R,D=m+(C=m-(f=Ob(f,Pb(h,m))))*N/R)}t.bezierCurveTo(c,p,d,f,v,m),c=A,p=D}else t.lineTo(v,m)}u=v,h=m,g+=o}return y}var Eb=function(){this.smooth=0,this.smoothConstraint=!0},zb=function(t){function e(e){var n=t.call(this,e)||this;return n.type="ec-polyline",n}return n(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new Eb},e.prototype.buildPath=function(t,e){var n=e.points,i=0,r=n.length/2;if(e.connectNulls){for(;r>0&&Rb(n[2*r-2],n[2*r-1]);r--);for(;i<r&&Rb(n[2*i],n[2*i+1]);i++);}for(;i<r;)i+=Nb(t,n,i,r,r,1,e.smooth,e.smoothMonotone,e.connectNulls)+1},e.prototype.getPointOn=function(t,e){this.path||(this.createPathProxy(),this.buildPath(this.path,this.shape));for(var n,i,r=this.path.data,o=Ca.CMD,a="x"===e,s=[],l=0;l<r.length;){var u=void 0,h=void 0,c=void 0,p=void 0,d=void 0,f=void 0,g=void 0;switch(r[l++]){case o.M:n=r[l++],i=r[l++];break;case o.L:if(u=r[l++],h=r[l++],(g=a?(t-n)/(u-n):(t-i)/(h-i))<=1&&g>=0){var y=a?(h-i)*g+i:(u-n)*g+n;return a?[t,y]:[y,t]}n=u,i=h;break;case o.C:u=r[l++],h=r[l++],c=r[l++],p=r[l++],d=r[l++],f=r[l++];var v=a?Eo(n,u,c,d,t,s):Eo(i,h,p,f,t,s);if(v>0)for(var m=0;m<v;m++){var _=s[m];if(_<=1&&_>=0){y=a?Ro(i,h,p,f,_):Ro(n,u,c,d,_);return a?[t,y]:[y,t]}}n=d,i=f}}},e}(Za),Bb=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e}(Eb),Vb=function(t){function e(e){var n=t.call(this,e)||this;return n.type="ec-polygon",n}return n(e,t),e.prototype.getDefaultShape=function(){return new Bb},e.prototype.buildPath=function(t,e){var n=e.points,i=e.stackedOnPoints,r=0,o=n.length/2,a=e.smoothMonotone;if(e.connectNulls){for(;o>0&&Rb(n[2*o-2],n[2*o-1]);o--);for(;r<o&&Rb(n[2*r],n[2*r+1]);r++);}for(;r<o;){var s=Nb(t,n,r,o,o,1,e.smooth,a,e.connectNulls);Nb(t,i,r+s-1,s,o,-1,e.stackedOnSmooth,a,e.connectNulls),r+=s+1,t.closePath()}},e}(Za);function Fb(t,e,n,i,r){var o=t.getArea(),a=o.x,s=o.y,l=o.width,u=o.height,h=n.get(["lineStyle","width"])||2;a-=h/2,s-=h/2,l+=h,u+=h,a=Math.floor(a),l=Math.round(l);var c=new os({shape:{x:a,y:s,width:l,height:u}});if(e){var p=t.getBaseAxis(),d=p.isHorizontal(),f=p.inverse;d?(f&&(c.shape.x+=l),c.shape.width=0):(f||(c.shape.y+=u),c.shape.height=0),Ru(c,{shape:{width:l,height:u,x:a,y:s}},n,null,i,"function"==typeof r?function(t){r(t,c)}:null)}return c}function Gb(t,e,n){var i=t.getArea(),r=ji(i.r0,1),o=ji(i.r,1),a=new Wl({shape:{cx:ji(t.cx,1),cy:ji(t.cy,1),r0:r,r:o,startAngle:i.startAngle,endAngle:i.endAngle,clockwise:i.clockwise}});e&&("angle"===t.getBaseAxis().dim?a.shape.endAngle=i.startAngle:a.shape.r=r,Ru(a,{shape:{endAngle:i.endAngle,r:o}},n));return a}function Hb(t,e,n,i,r){return t?"polar"===t.type?Gb(t,e,n):"cartesian2d"===t.type?Fb(t,e,n,i,r):null:null}function Wb(t,e){return t.type===e}function Yb(t,e){if(t.length===e.length){for(var n=0;n<t.length;n++)if(t[n]!==e[n])return;return!0}}function Xb(t){for(var e=1/0,n=1/0,i=-1/0,r=-1/0,o=0;o<t.length;){var a=t[o++],s=t[o++];isNaN(a)||(e=Math.min(a,e),i=Math.max(a,i)),isNaN(s)||(n=Math.min(s,n),r=Math.max(s,r))}return[[e,n],[i,r]]}function Ub(t,e){var n=Xb(t),i=n[0],r=n[1],o=Xb(e),a=o[0],s=o[1];return Math.max(Math.abs(i[0]-a[0]),Math.abs(i[1]-a[1]),Math.abs(r[0]-s[0]),Math.abs(r[1]-s[1]))}function Zb(t){return"number"==typeof t?t:t?.5:0}function jb(t,e,n){for(var i=e.getBaseAxis(),r="x"===i.dim||"radius"===i.dim?0:1,o=[],a=0,s=[],l=[],u=[];a<t.length-2;a+=2)switch(u[0]=t[a+2],u[1]=t[a+3],l[0]=t[a],l[1]=t[a+1],o.push(l[0],l[1]),n){case"end":s[r]=u[r],s[1-r]=l[1-r],o.push(s[0],s[1]);break;case"middle":var h=(l[r]+u[r])/2,c=[];s[r]=c[r]=h,s[1-r]=l[1-r],c[1-r]=u[1-r],o.push(s[0],s[1]),o.push(c[0],c[1]);break;default:s[r]=l[r],s[1-r]=u[1-r],o.push(s[0],s[1])}return o.push(t[a++],t[a++]),o}function qb(t,e,n){var i=t.get("showAllSymbol"),r="auto"===i;if(!i||r){var o=n.getAxesByScale("ordinal")[0];if(o&&(!r||!function(t,e){var n=t.getExtent(),i=Math.abs(n[1]-n[0])/t.scale.count();isNaN(i)&&(i=0);for(var r=e.count(),o=Math.max(1,Math.round(r/5)),a=0;a<r;a+=o)if(1.5*bb.getSymbolSize(e,a)[t.isHorizontal()?1:0]>i)return!1;return!0}(o,e))){var a=e.mapDimension(o.dim),s={};return P(o.getViewLabels(),(function(t){var e=o.scale.getRawOrdinalNumber(t.tickValue);s[e]=1})),function(t){return!s.hasOwnProperty(e.get(a,t))}}}}function Kb(t,e){return[t[2*e],t[2*e+1]]}function $b(t,e,n,i){if(Wb(e,"cartesian2d")){var r=i.getModel("endLabel"),o=r.get("show"),a=r.get("valueAnimation"),s=i.getData(),l={lastFrameIndex:0},u=o?function(n,i){t._endLabelOnDuring(n,i,s,l,a,r,e)}:null,h=e.getBaseAxis().isHorizontal(),c=Fb(e,n,i,(function(){var e=t._endLabel;e&&n&&null!=l.originalX&&e.attr({x:l.originalX,y:l.originalY})}),u);if(!i.get("clip",!0)){var p=c.shape,d=Math.max(p.width,p.height);h?(p.y-=d,p.height+=2*d):(p.x-=d,p.width+=2*d)}return u&&u(1,c),c}return Gb(e,n,i)}var Jb=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.init=function(){var t=new zi,e=new Tb;this.group.add(e.group),this._symbolDraw=e,this._lineGroup=t},e.prototype.render=function(t,e,n){var i=this,r=t.coordinateSystem,o=this.group,a=t.getData(),s=t.getModel("lineStyle"),l=t.getModel("areaStyle"),u=a.getLayout("points")||[],h="polar"===r.type,c=this._coordSys,p=this._symbolDraw,d=this._polyline,f=this._polygon,g=this._lineGroup,y=t.get("animation"),v=!l.isEmpty(),m=l.get("origin"),_=Cb(r,a,m),x=v&&function(t,e,n){if(!n.valueDim)return[];for(var i=e.count(),r=kb(2*i),o=0;o<i;o++){var a=Ab(n,t,e,o);r[2*o]=a[0],r[2*o+1]=a[1]}return r}(r,a,_),b=t.get("showSymbol"),w=b&&!h&&qb(t,a,r),S=this._data;S&&S.eachItemGraphicEl((function(t,e){t.__temp&&(o.remove(t),S.setItemGraphicEl(e,null))})),b||p.remove(),o.add(g);var M,I=!h&&t.get("step");r&&r.getArea&&t.get("clip",!0)&&(null!=(M=r.getArea()).width?(M.x-=.1,M.y-=.1,M.width+=.2,M.height+=.2):M.r0&&(M.r0-=.5,M.r+=.5)),this._clipShapeForSymbol=M,d&&c.type===r.type&&I===this._step?(v&&!f?f=this._newPolygon(u,x):f&&!v&&(g.remove(f),f=this._polygon=null),h||this._initOrUpdateEndLabel(t,r),g.setClipPath($b(this,r,!1,t)),b&&p.updateData(a,{isIgnore:w,clipShape:M,disableAnimation:!0,getSymbolPoint:function(t){return[u[2*t],u[2*t+1]]}}),Yb(this._stackedOnPoints,x)&&Yb(this._points,u)||(y?this._doUpdateAnimation(a,x,r,n,I,m):(I&&(u=jb(u,r,I),x&&(x=jb(x,r,I))),d.setShape({points:u}),f&&f.setShape({points:u,stackedOnPoints:x})))):(b&&p.updateData(a,{isIgnore:w,clipShape:M,disableAnimation:!0,getSymbolPoint:function(t){return[u[2*t],u[2*t+1]]}}),y&&this._initSymbolLabelAnimation(a,r,M),I&&(u=jb(u,r,I),x&&(x=jb(x,r,I))),d=this._newPolyline(u),v&&(f=this._newPolygon(u,x)),h||this._initOrUpdateEndLabel(t,r),g.setClipPath($b(this,r,!0,t)));var C=function(t,e){var n=t.getVisual("visualMeta");if(n&&n.length&&t.count()&&"cartesian2d"===e.type){for(var i,r,o=n.length-1;o>=0;o--){var a=n[o].dimension,s=t.dimensions[a],l=t.getDimensionInfo(s);if("x"===(i=l&&l.coordDim)||"y"===i){r=n[o];break}}if(r){var u=e.getAxis(i),h=O(r.stops,(function(t){return{offset:0,coord:u.toGlobalCoord(u.dataToCoord(t.value)),color:t.color}})),c=h.length,p=r.outerColors.slice();c&&h[0].coord>h[c-1].coord&&(h.reverse(),p.reverse());var d=h[0].coord-10,f=h[c-1].coord+10,g=f-d;if(g<.001)return"transparent";P(h,(function(t){t.offset=(t.coord-d)/g})),h.push({offset:c?h[c-1].offset:.5,color:p[1]||"transparent"}),h.unshift({offset:c?h[0].offset:.5,color:p[0]||"transparent"});var y=new uu(0,0,0,0,h,!0);return y[i]=d,y[i+"2"]=f,y}}}(a,r)||a.getVisual("style")[a.getVisual("drawType")],A=t.get(["emphasis","focus"]),D=t.get(["emphasis","blurScope"]);(d.useStyle(T(s.getLineStyle(),{fill:"none",stroke:C,lineJoin:"bevel"})),nl(d,t,"lineStyle"),d.style.lineWidth>0&&"bolder"===t.get(["emphasis","lineStyle","width"]))&&(d.getState("emphasis").style.lineWidth=d.style.lineWidth+1);ys(d).seriesIndex=t.seriesIndex,Js(d,A,D);var L=Zb(t.get("smooth")),k=t.get("smoothMonotone"),R=t.get("connectNulls");if(d.setShape({smooth:L,smoothMonotone:k,connectNulls:R}),f){var N=a.getCalculationInfo("stackedOnSeries"),E=0;f.useStyle(T(l.getAreaStyle(),{fill:C,opacity:.7,lineJoin:"bevel",decal:a.getVisual("style").decal})),N&&(E=Zb(N.get("smooth"))),f.setShape({smooth:L,stackedOnSmooth:E,smoothMonotone:k,connectNulls:R}),nl(f,t,"areaStyle"),ys(f).seriesIndex=t.seriesIndex,Js(f,A,D)}var z=function(t){i._changePolyState(t)};a.eachItemGraphicEl((function(t){t&&(t.onHoverStateChange=z)})),this._polyline.onHoverStateChange=z,this._data=a,this._coordSys=r,this._stackedOnPoints=x,this._points=u,this._step=I,this._valueOrigin=m},e.prototype.dispose=function(){},e.prototype.highlight=function(t,e,n,i){var r=t.getData(),o=Dr(r,i);if(this._changePolyState("emphasis"),!(o instanceof Array)&&null!=o&&o>=0){var a=r.getLayout("points"),s=r.getItemGraphicEl(o);if(!s){var l=a[2*o],u=a[2*o+1];if(isNaN(l)||isNaN(u))return;if(this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(l,u))return;(s=new bb(r,o)).x=l,s.y=u,s.setZ(t.get("zlevel"),t.get("z")),s.__temp=!0,r.setItemGraphicEl(o,s),s.stopSymbolAnimation(!0),this.group.add(s)}s.highlight()}else yf.prototype.highlight.call(this,t,e,n,i)},e.prototype.downplay=function(t,e,n,i){var r=t.getData(),o=Dr(r,i);if(this._changePolyState("normal"),null!=o&&o>=0){var a=r.getItemGraphicEl(o);a&&(a.__temp?(r.setItemGraphicEl(o,null),this.group.remove(a)):a.downplay())}else yf.prototype.downplay.call(this,t,e,n,i)},e.prototype._changePolyState=function(t){var e=this._polygon;Vs(this._polyline,t),e&&Vs(e,t)},e.prototype._newPolyline=function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new zb({shape:{points:t},segmentIgnoreThreshold:2,z2:10}),this._lineGroup.add(e),this._polyline=e,e},e.prototype._newPolygon=function(t,e){var n=this._polygon;return n&&this._lineGroup.remove(n),n=new Vb({shape:{points:t,stackedOnPoints:e},segmentIgnoreThreshold:2}),this._lineGroup.add(n),this._polygon=n,n},e.prototype._initSymbolLabelAnimation=function(t,e,n){var i,r,o=e.getBaseAxis(),a=o.inverse;"cartesian2d"===e.type?(i=o.isHorizontal(),r=!1):"polar"===e.type&&(i="angle"===o.dim,r=!0);var s=t.hostModel,l=s.get("animationDuration");"function"==typeof l&&(l=l(null));var u=s.get("animationDelay")||0,h="function"==typeof u?u(null):u;t.eachItemGraphicEl((function(t,o){var s=t;if(s){var c=[t.x,t.y],p=void 0,d=void 0,f=void 0;if(r){var g=n,y=e.pointToCoord(c);i?(p=g.startAngle,d=g.endAngle,f=-y[1]/180*Math.PI):(p=g.r0,d=g.r,f=y[0])}else{var v=n;i?(p=v.x,d=v.x+v.width,f=t.x):(p=v.y+v.height,d=v.y,f=t.y)}var m=d===p?0:(f-p)/(d-p);a&&(m=1-m);var _="function"==typeof u?u(o):l*m+h,x=s.getSymbolPath(),b=x.getTextContent();s.attr({scaleX:0,scaleY:0}),s.animateTo({scaleX:1,scaleY:1},{duration:200,delay:_}),b&&b.animateFrom({style:{opacity:0}},{duration:300,delay:_}),x.disableLabelAnimation=!0}}))},e.prototype._initOrUpdateEndLabel=function(t,e){var n=t.getModel("endLabel");if(n.get("show")){var i=t.getData(),r=this._polyline,o=this._endLabel;o||((o=this._endLabel=new ls({z2:200})).ignoreClip=!0,r.setTextContent(this._endLabel),r.disableLabelAnimation=!0);var a=function(t){for(var e,n,i=t.length/2;i>0&&(e=t[2*i-2],n=t[2*i-1],isNaN(e)||isNaN(n));i--);return i-1}(i.getLayout("points"));a>=0&&(th(r,eh(t,"endLabel"),{labelFetcher:t,labelDataIndex:a,defaultText:function(t,e,n){return null!=n?xb(i,n):_b(i,t)},enableTextSetter:!0},function(t,e){var n=e.getBaseAxis(),i=n.isHorizontal(),r=n.inverse,o=i?r?"right":"left":"center",a=i?"middle":r?"top":"bottom";return{normal:{align:t.get("align")||o,verticalAlign:t.get("verticalAlign")||a}}}(n,e)),r.textConfig.position=null)}else this._endLabel&&(this._polyline.removeTextContent(),this._endLabel=null)},e.prototype._endLabelOnDuring=function(t,e,n,i,r,o,a){var s=this._endLabel,l=this._polyline;if(s){t<1&&null==i.originalX&&(i.originalX=s.x,i.originalY=s.y);var u=n.getLayout("points"),h=n.hostModel,c=h.get("connectNulls"),p=o.get("precision"),d=o.get("distance")||0,f=a.getBaseAxis(),g=f.isHorizontal(),y=f.inverse,v=e.shape,m=y?g?v.x:v.y+v.height:g?v.x+v.width:v.y,_=(g?d:0)*(y?-1:1),x=(g?0:-d)*(y?-1:1),b=g?"x":"y",w=function(t,e,n){for(var i,r,o=t.length/2,a="x"===n?0:1,s=0,l=-1,u=0;u<o;u++)if(r=t[2*u+a],!isNaN(r)&&!isNaN(t[2*u+1-a]))if(0!==u){if(i<=e&&r>=e||i>=e&&r<=e){l=u;break}s=u,i=r}else i=r;return{range:[s,l],t:(e-i)/(r-i)}}(u,m,b),S=w.range,M=S[1]-S[0],I=void 0;if(M>=1){if(M>1&&!c){var T=Kb(u,S[0]);s.attr({x:T[0]+_,y:T[1]+x}),r&&(I=h.getRawValue(S[0]))}else{(T=l.getPointOn(m,b))&&s.attr({x:T[0]+_,y:T[1]+x});var C=h.getRawValue(S[0]),A=h.getRawValue(S[1]);r&&(I=Br(n,p,C,A,w.t))}i.lastFrameIndex=S[0]}else{var D=1===t||i.lastFrameIndex>0?S[0]:0;T=Kb(u,D);r&&(I=h.getRawValue(D)),s.attr({x:T[0]+_,y:T[1]+x})}r&&uh(s).setLabelText(I)}},e.prototype._doUpdateAnimation=function(t,e,n,i,r,o){var a=this._polyline,s=this._polygon,l=t.hostModel,u=function(t,e,n,i,r,o,a,s){for(var l=function(t,e){var n=[];return e.diff(t).add((function(t){n.push({cmd:"+",idx:t})})).update((function(t,e){n.push({cmd:"=",idx:e,idx1:t})})).remove((function(t){n.push({cmd:"-",idx:t})})).execute(),n}(t,e),u=[],h=[],c=[],p=[],d=[],f=[],g=[],y=Cb(r,e,a),v=Cb(o,t,s),m=t.getLayout("points")||[],_=e.getLayout("points")||[],x=0;x<l.length;x++){var b=l[x],w=!0,S=void 0,M=void 0;switch(b.cmd){case"=":S=2*b.idx,M=2*b.idx1;var I=m[S],T=m[S+1],C=_[M],A=_[M+1];(isNaN(I)||isNaN(T))&&(I=C,T=A),u.push(I,T),h.push(C,A),c.push(n[S],n[S+1]),p.push(i[M],i[M+1]),g.push(e.getRawIndex(b.idx1));break;case"+":var D=b.idx,L=y.dataDimsForPoint,k=r.dataToPoint([e.get(L[0],D),e.get(L[1],D)]);M=2*D,u.push(k[0],k[1]),h.push(_[M],_[M+1]);var P=Ab(y,r,e,D);c.push(P[0],P[1]),p.push(i[M],i[M+1]),g.push(e.getRawIndex(D));break;case"-":var O=b.idx,R=t.getRawIndex(O),N=v.dataDimsForPoint;if(S=2*O,R!==O){var E=o.dataToPoint([t.get(N[0],O),t.get(N[1],O)]),z=Ab(v,o,t,O);u.push(m[S],m[S+1]),h.push(E[0],E[1]),c.push(n[S],n[S+1]),p.push(z[0],z[1]),g.push(R)}else w=!1}w&&(d.push(b),f.push(f.length))}f.sort((function(t,e){return g[t]-g[e]}));var B=u.length,V=kb(B),F=kb(B),G=kb(B),H=kb(B),W=[];for(x=0;x<f.length;x++){var Y=f[x],X=2*x,U=2*Y;V[X]=u[U],V[X+1]=u[U+1],F[X]=h[U],F[X+1]=h[U+1],G[X]=c[U],G[X+1]=c[U+1],H[X]=p[U],H[X+1]=p[U+1],W[x]=d[Y]}return{current:V,next:F,stackedOnCurrent:G,stackedOnNext:H,status:W}}(this._data,t,this._stackedOnPoints,e,this._coordSys,n,this._valueOrigin,o),h=u.current,c=u.stackedOnCurrent,p=u.next,d=u.stackedOnNext;if(r&&(h=jb(u.current,n,r),c=jb(u.stackedOnCurrent,n,r),p=jb(u.next,n,r),d=jb(u.stackedOnNext,n,r)),Ub(h,p)>3e3||s&&Ub(c,d)>3e3)return a.setShape({points:p}),void(s&&s.setShape({points:p,stackedOnPoints:d}));a.shape.__points=u.current,a.shape.points=h;var f={shape:{points:p}};u.current!==h&&(f.shape.__points=u.next),a.stopAnimation(),Ou(a,f,l),s&&(s.setShape({points:h,stackedOnPoints:c}),s.stopAnimation(),Ou(s,{shape:{stackedOnPoints:d}},l),a.shape.points!==s.shape.points&&(s.shape.points=a.shape.points));for(var g=[],y=u.status,v=0;v<y.length;v++){if("="===y[v].cmd){var m=t.getItemGraphicEl(y[v].idx1);m&&g.push({el:m,ptIdx:v})}}a.animators&&a.animators.length&&a.animators[0].during((function(){s&&s.dirtyShape();for(var t=a.shape.__points,e=0;e<g.length;e++){var n=g[e].el,i=2*g[e].ptIdx;n.x=t[i],n.y=t[i+1],n.markRedraw()}}))},e.prototype.remove=function(t){var e=this.group,n=this._data;this._lineGroup.removeAll(),this._symbolDraw.remove(!0),n&&n.eachItemGraphicEl((function(t,i){t.__temp&&(e.remove(t),n.setItemGraphicEl(i,null))})),this._polyline=this._polygon=this._coordSys=this._points=this._stackedOnPoints=this._endLabel=this._data=null},e.type="line",e}(yf);function Qb(t,e){return{seriesType:t,plan:df(),reset:function(t){var n=t.getData(),i=t.coordinateSystem,r=t.pipelineContext,o=e||r.large;if(i){var a=O(i.dimensions,(function(t){return n.mapDimension(t)})).slice(0,2),s=a.length,l=n.getCalculationInfo("stackResultDimension");Fm(n,a[0])&&(a[0]=l),Fm(n,a[1])&&(a[1]=l);var u=n.getDimensionInfo(a[0]),h=n.getDimensionInfo(a[1]),c=u&&u.index,p=h&&h.index;return s&&{progress:function(t,e){for(var n=t.end-t.start,r=o&&kb(n*s),a=[],l=[],u=t.start,h=0;u<t.end;u++){var d=void 0;if(1===s){var f=e.getByDimIdx(c,u);d=i.dataToPoint(f,null,l)}else a[0]=e.getByDimIdx(c,u),a[1]=e.getByDimIdx(p,u),d=i.dataToPoint(a,null,l);o?(r[h++]=d[0],r[h++]=d[1]):e.setItemLayout(u,d.slice())}o&&e.setLayout("points",r)}}}}}}var tw={average:function(t){for(var e=0,n=0,i=0;i<t.length;i++)isNaN(t[i])||(e+=t[i],n++);return 0===n?NaN:e/n},sum:function(t){for(var e=0,n=0;n<t.length;n++)e+=t[n]||0;return e},max:function(t){for(var e=-1/0,n=0;n<t.length;n++)t[n]>e&&(e=t[n]);return isFinite(e)?e:NaN},min:function(t){for(var e=1/0,n=0;n<t.length;n++)t[n]<e&&(e=t[n]);return isFinite(e)?e:NaN},nearest:function(t){return t[0]}},ew=function(t){return Math.round(t.length/2)};function nw(t){return{seriesType:t,reset:function(t,e,n){var i=t.getData(),r=t.get("sampling"),o=t.coordinateSystem,a=i.count();if(a>10&&"cartesian2d"===o.type&&r){var s=o.getBaseAxis(),l=o.getOtherAxis(s),u=s.getExtent(),h=n.getDevicePixelRatio(),c=Math.abs(u[1]-u[0])*(h||1),p=Math.round(a/c);if(p>1){"lttb"===r&&t.setData(i.lttbDownSample(i.mapDimension(l.dim),1/p));var d=void 0;"string"==typeof r?d=tw[r]:"function"==typeof r&&(d=r),d&&t.setData(i.downSample(i.mapDimension(l.dim),1/p,d,ew))}}}}}var iw=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.getInitialData=function(t,e){return Hm(this.getSource(),this,{useEncodeDefaulter:!0})},e.prototype.getMarkerPosition=function(t){var e=this.coordinateSystem;if(e){var n=e.dataToPoint(e.clampData(t)),i=this.getData(),r=i.getLayout("offset"),o=i.getLayout("size");return n[e.getBaseAxis().isHorizontal()?0:1]+=r+o/2,n}return[NaN,NaN]},e.type="series.__base_bar__",e.defaultOption={zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:3e3,progressiveChunkMode:"mod"},e}(rf);rf.registerClass(iw);var rw=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.getInitialData=function(){return Hm(this.getSource(),this,{useEncodeDefaulter:!0,createInvertedIndices:!!this.get("realtimeSort",!0)||null})},e.prototype.getProgressive=function(){return!!this.get("large")&&this.get("progressive")},e.prototype.getProgressiveThreshold=function(){var t=this.get("progressiveThreshold"),e=this.get("largeThreshold");return e>t&&(t=e),t},e.prototype.brushSelector=function(t,e,n){return n.rect(e.getItemLayout(t))},e.type="series.bar",e.dependencies=["grid","polar"],e.defaultOption=Th(iw.defaultOption,{clip:!0,roundCap:!1,showBackground:!1,backgroundStyle:{color:"rgba(180, 180, 180, 0.2)",borderColor:null,borderWidth:0,borderType:"solid",borderRadius:0,shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0,opacity:1},select:{itemStyle:{borderColor:"#212121"}},realtimeSort:!1}),e}(iw),ow=function(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0},aw=function(t){function e(e){var n=t.call(this,e)||this;return n.type="sausage",n}return n(e,t),e.prototype.getDefaultShape=function(){return new ow},e.prototype.buildPath=function(t,e){var n=e.cx,i=e.cy,r=Math.max(e.r0||0,0),o=Math.max(e.r,0),a=.5*(o-r),s=r+a,l=e.startAngle,u=e.endAngle,h=e.clockwise,c=Math.cos(l),p=Math.sin(l),d=Math.cos(u),f=Math.sin(u);(h?u-l<2*Math.PI:l-u<2*Math.PI)&&(t.moveTo(c*r+n,p*r+i),t.arc(c*s+n,p*s+i,a,-Math.PI+l,l,!h)),t.arc(n,i,o,l,u,!h),t.moveTo(d*o+n,f*o+i),t.arc(d*s+n,f*s+i,a,u-2*Math.PI,u-Math.PI,!h),0!==r&&(t.arc(n,i,r,u,l,h),t.moveTo(c*r+n,f*r+i)),t.closePath()},e}(Za),sw=["itemStyle","borderWidth"],lw=["itemStyle","borderRadius"],uw=[0,0],hw=Math.max,cw=Math.min;var pw=function(t){function e(){var n=t.call(this)||this;return n.type=e.type,n._isFirstFrame=!0,n}return n(e,t),e.prototype.render=function(t,e,n,i){this._model=t,this._removeOnRenderedListener(n),this._updateDrawMode(t);var r=t.get("coordinateSystem");("cartesian2d"===r||"polar"===r)&&(this._isLargeDraw?this._renderLarge(t,e,n):this._renderNormal(t,e,n,i))},e.prototype.incrementalPrepareRender=function(t){this._clear(),this._updateDrawMode(t),this._updateLargeClip(t)},e.prototype.incrementalRender=function(t,e){this._incrementalRenderLarge(t,e)},e.prototype._updateDrawMode=function(t){var e=t.pipelineContext.large;null!=this._isLargeDraw&&e===this._isLargeDraw||(this._isLargeDraw=e,this._clear())},e.prototype._renderNormal=function(t,e,n,i){var r,o=this.group,a=t.getData(),s=this._data,l=t.coordinateSystem,u=l.getBaseAxis();"cartesian2d"===l.type?r=u.isHorizontal():"polar"===l.type&&(r="angle"===u.dim);var h=t.isAnimationEnabled()?t:null,c=function(t,e){var n=t.get("realtimeSort",!0),i=e.getBaseAxis();0;if(n&&"category"===i.type&&"cartesian2d"===e.type)return{baseAxis:i,otherAxis:e.getOtherAxis(i)}}(t,l);c&&this._enableRealtimeSort(c,a,n);var p=t.get("clip",!0)||c,d=function(t,e){var n=t.getArea&&t.getArea();if(Wb(t,"cartesian2d")){var i=t.getBaseAxis();if("category"!==i.type||!i.onBand){var r=e.getLayout("bandWidth");i.isHorizontal()?(n.x-=r,n.width+=2*r):(n.y-=r,n.height+=2*r)}}return n}(l,a);o.removeClipPath();var f=t.get("roundCap",!0),g=t.get("showBackground",!0),y=t.getModel("backgroundStyle"),v=y.get("borderRadius")||0,m=[],_=this._backgroundEls,x=i&&i.isInitSort,b=i&&"changeAxisOrder"===i.type;function w(t){var e=yw[l.type](a,t),n=function(t,e,n){return new("polar"===t.type?Wl:os)({shape:ww(e,n,t),silent:!0,z2:0})}(l,r,e);return n.useStyle(y.getItemStyle()),"cartesian2d"===l.type&&n.setShape("r",v),m[t]=n,n}a.diff(s).add((function(e){var n=a.getItemModel(e),i=yw[l.type](a,e,n);if(g&&w(e),a.hasValue(e)){var s=!1;p&&(s=dw[l.type](d,i));var y=fw[l.type](t,a,e,i,r,h,u.model,!1,f);vw(y,a,e,n,i,t,r,"polar"===l.type),x?y.attr({shape:i}):c?gw(c,h,y,i,e,r,!1,!1):Ru(y,{shape:i},t,e),a.setItemGraphicEl(e,y),o.add(y),y.ignore=s}})).update((function(e,n){var i=a.getItemModel(e),S=yw[l.type](a,e,i);if(g){var M=void 0;0===_.length?M=w(n):((M=_[n]).useStyle(y.getItemStyle()),"cartesian2d"===l.type&&M.setShape("r",v),m[e]=M);var I=yw[l.type](a,e);Ou(M,{shape:ww(r,I,l)},h,e)}var T=s.getItemGraphicEl(n);if(!a.hasValue(e))return o.remove(T),void(T=null);var C=!1;p&&(C=dw[l.type](d,S))&&o.remove(T),T||(T=fw[l.type](t,a,e,S,r,h,u.model,!!T,f)),b||vw(T,a,e,i,S,t,r,"polar"===l.type),x?T.attr({shape:S}):c?gw(c,h,T,S,e,r,!0,b):Ou(T,{shape:S},t,e,null),a.setItemGraphicEl(e,T),T.ignore=C,o.add(T)})).remove((function(e){var n=s.getItemGraphicEl(e);n&&zu(n,t,e)})).execute();var S=this._backgroundGroup||(this._backgroundGroup=new zi);S.removeAll();for(var M=0;M<m.length;++M)S.add(m[M]);o.add(S),this._backgroundEls=m,this._data=a},e.prototype._renderLarge=function(t,e,n){this._clear(),xw(t,this.group),this._updateLargeClip(t)},e.prototype._incrementalRenderLarge=function(t,e){this._removeBackground(),xw(e,this.group,!0)},e.prototype._updateLargeClip=function(t){var e=t.get("clip",!0)?Hb(t.coordinateSystem,!1,t):null;e?this.group.setClipPath(e):this.group.removeClipPath()},e.prototype._enableRealtimeSort=function(t,e,n){var i=this;if(e.count()){var r=t.baseAxis;if(this._isFirstFrame)this._dispatchInitSort(e,t,n),this._isFirstFrame=!1;else{var o=function(t){var n=e.getItemGraphicEl(t);if(n){var i=n.shape;return(r.isHorizontal()?Math.abs(i.height):Math.abs(i.width))||0}return 0};this._onRendered=function(){i._updateSortWithinSameData(e,o,r,n)},n.getZr().on("rendered",this._onRendered)}}},e.prototype._dataSort=function(t,e,n){var i=[];return t.each(t.mapDimension(e.dim),(function(t,e){var r=n(e);r=null==r?NaN:r,i.push({dataIndex:e,mappedValue:r,ordinalNumber:t})})),i.sort((function(t,e){return e.mappedValue-t.mappedValue})),{ordinalNumbers:O(i,(function(t){return t.ordinalNumber}))}},e.prototype._isOrderChangedWithinSameData=function(t,e,n){for(var i=n.scale,r=t.mapDimension(n.dim),o=Number.MAX_VALUE,a=0,s=i.getOrdinalMeta().categories.length;a<s;++a){var l=t.rawIndexOf(r,i.getRawOrdinalNumber(a)),u=l<0?Number.MIN_VALUE:e(t.indexOfRawIndex(l));if(u>o)return!0;o=u}return!1},e.prototype._isOrderDifferentInView=function(t,e){for(var n=e.scale,i=n.getExtent(),r=Math.max(0,i[0]),o=Math.min(i[1],n.getOrdinalMeta().categories.length-1);r<=o;++r)if(t.ordinalNumbers[r]!==n.getRawOrdinalNumber(r))return!0},e.prototype._updateSortWithinSameData=function(t,e,n,i){if(this._isOrderChangedWithinSameData(t,e,n)){var r=this._dataSort(t,n,e);this._isOrderDifferentInView(r,n)&&(this._removeOnRenderedListener(i),i.dispatchAction({type:"changeAxisOrder",componentType:n.dim+"Axis",axisId:n.index,sortInfo:r}))}},e.prototype._dispatchInitSort=function(t,e,n){var i=e.baseAxis,r=this._dataSort(t,i,(function(n){return t.get(t.mapDimension(e.otherAxis.dim),n)}));n.dispatchAction({type:"changeAxisOrder",componentType:i.dim+"Axis",isInitSort:!0,axisId:i.index,sortInfo:r,animation:{duration:0}})},e.prototype.remove=function(t,e){this._clear(this._model),this._removeOnRenderedListener(e)},e.prototype.dispose=function(t,e){this._removeOnRenderedListener(e)},e.prototype._removeOnRenderedListener=function(t){this._onRendered&&(t.getZr().off("rendered",this._onRendered),this._onRendered=null)},e.prototype._clear=function(t){var e=this.group,n=this._data;t&&t.isAnimationEnabled()&&n&&!this._isLargeDraw?(this._removeBackground(),this._backgroundEls=[],n.eachItemGraphicEl((function(e){zu(e,t,ys(e).dataIndex)}))):e.removeAll(),this._data=null,this._isFirstFrame=!0},e.prototype._removeBackground=function(){this.group.remove(this._backgroundGroup),this._backgroundGroup=null},e.type="bar",e}(yf),dw={cartesian2d:function(t,e){var n=e.width<0?-1:1,i=e.height<0?-1:1;n<0&&(e.x+=e.width,e.width=-e.width),i<0&&(e.y+=e.height,e.height=-e.height);var r=t.x+t.width,o=t.y+t.height,a=hw(e.x,t.x),s=cw(e.x+e.width,r),l=hw(e.y,t.y),u=cw(e.y+e.height,o),h=s<a,c=u<l;return e.x=h&&a>r?s:a,e.y=c&&l>o?u:l,e.width=h?0:s-a,e.height=c?0:u-l,n<0&&(e.x+=e.width,e.width=-e.width),i<0&&(e.y+=e.height,e.height=-e.height),h||c},polar:function(t,e){var n=e.r0<=e.r?1:-1;if(n<0){var i=e.r;e.r=e.r0,e.r0=i}var r=cw(e.r,t.r),o=hw(e.r0,t.r0);e.r=r,e.r0=o;var a=r-o<0;if(n<0){i=e.r;e.r=e.r0,e.r0=i}return a}},fw={cartesian2d:function(t,e,n,i,r,o,a,s,l){var u=new os({shape:I({},i),z2:1});(u.__dataIndex=n,u.name="item",o)&&(u.shape[r?"height":"width"]=0);return u},polar:function(t,e,n,i,r,o,a,s,l){var u=i.startAngle<i.endAngle,h=new(!r&&l?aw:Wl)({shape:T({clockwise:u},i),z2:1});if(h.name="item",o){var c=r?"r":"endAngle",p={};h.shape[c]=r?0:i.startAngle,p[c]=i[c],(s?Ou:Ru)(h,{shape:p},o)}return h}};function gw(t,e,n,i,r,o,a,s){var l,u;o?(u={x:i.x,width:i.width},l={y:i.y,height:i.height}):(u={y:i.y,height:i.height},l={x:i.x,width:i.width}),s||(a?Ou:Ru)(n,{shape:l},e,r,null),(a?Ou:Ru)(n,{shape:u},e?t.baseAxis.model:null,r)}var yw={cartesian2d:function(t,e,n){var i=t.getItemLayout(e),r=n?function(t,e){var n=t.get(sw)||0,i=isNaN(e.width)?Number.MAX_VALUE:Math.abs(e.width),r=isNaN(e.height)?Number.MAX_VALUE:Math.abs(e.height);return Math.min(n,i,r)}(n,i):0,o=i.width>0?1:-1,a=i.height>0?1:-1;return{x:i.x+o*r/2,y:i.y+a*r/2,width:i.width-o*r,height:i.height-a*r}},polar:function(t,e,n){var i=t.getItemLayout(e);return{cx:i.cx,cy:i.cy,r0:i.r0,r:i.r,startAngle:i.startAngle,endAngle:i.endAngle}}};function vw(t,e,n,i,r,o,a,s){var l=e.getItemVisual(n,"style");s||t.setShape("r",i.get(lw)||0),t.useStyle(l);var u=i.getShallow("cursor");if(u&&t.attr("cursor",u),!s){var h=a?r.height>0?"bottom":"top":r.width>0?"left":"right",c=eh(i);th(t,c,{labelFetcher:o,labelDataIndex:n,defaultText:_b(o.getData(),n),inheritColor:l.fill,defaultOpacity:l.opacity,defaultOutsidePosition:h}),hh(t.getTextContent(),c,o.getRawValue(n),(function(t){return xb(e,t)}))}var p=i.getModel(["emphasis"]);Js(t,p.get("focus"),p.get("blurScope")),nl(t,i),function(t){return null!=t.startAngle&&null!=t.endAngle&&t.startAngle===t.endAngle}(r)&&(t.style.fill="none",t.style.stroke="none",P(t.states,(function(t){t.style&&(t.style.fill=t.style.stroke="none")})))}var mw=function(){},_w=function(t){function e(e){var n=t.call(this,e)||this;return n.type="largeBar",n}return n(e,t),e.prototype.getDefaultShape=function(){return new mw},e.prototype.buildPath=function(t,e){for(var n=e.points,i=this.__startPoint,r=this.__baseDimIdx,o=0;o<n.length;o+=2)i[r]=n[o+r],t.moveTo(i[0],i[1]),t.lineTo(n[o],n[o+1])},e}(Za);function xw(t,e,n){var i=t.getData(),r=[],o=i.getLayout("valueAxisHorizontal")?1:0;r[1-o]=i.getLayout("valueAxisStart");var a=i.getLayout("largeDataIndices"),s=i.getLayout("barWidth"),l=t.getModel("backgroundStyle");if(t.get("showBackground",!0)){var u=i.getLayout("largeBackgroundPoints"),h=[];h[1-o]=i.getLayout("backgroundStart");var c=new _w({shape:{points:u},incremental:!!n,silent:!0,z2:0});c.__startPoint=h,c.__baseDimIdx=o,c.__largeDataIndices=a,c.__barWidth=s,function(t,e,n){var i=e.get("borderColor")||e.get("color"),r=e.getItemStyle();t.useStyle(r),t.style.fill=null,t.style.stroke=i,t.style.lineWidth=n.getLayout("barWidth")}(c,l,i),e.add(c)}var p=new _w({shape:{points:i.getLayout("largePoints")},incremental:!!n});p.__startPoint=r,p.__baseDimIdx=o,p.__largeDataIndices=a,p.__barWidth=s,e.add(p),function(t,e,n){var i=n.getVisual("style");t.useStyle(I({},i)),t.style.fill=null,t.style.stroke=i.fill,t.style.lineWidth=n.getLayout("barWidth")}(p,0,i),ys(p).seriesIndex=t.seriesIndex,t.get("silent")||(p.on("mousedown",bw),p.on("mousemove",bw))}var bw=If((function(t){var e=function(t,e,n){var i=t.__baseDimIdx,r=1-i,o=t.shape.points,a=t.__largeDataIndices,s=Math.abs(t.__barWidth/2),l=t.__startPoint[r];uw[0]=e,uw[1]=n;for(var u=uw[i],h=uw[1-i],c=u-s,p=u+s,d=0,f=o.length/2;d<f;d++){var g=2*d,y=o[g+i],v=o[g+r];if(y>=c&&y<=p&&(l<=v?h>=l&&h<=v:h>=v&&h<=l))return a[d]}return-1}(this,t.offsetX,t.offsetY);ys(this).dataIndex=e>=0?e:null}),30,!1);function ww(t,e,n){if(Wb(n,"cartesian2d")){var i=e,r=n.getArea();return{x:t?i.x:r.x,y:t?r.y:i.y,width:t?i.width:r.width,height:t?r.height:i.height}}var o=e;return{cx:(r=n.getArea()).cx,cy:r.cy,r0:t?r.r0:o.r0,r:t?r.r:o.r,startAngle:t?o.startAngle:0,endAngle:t?o.endAngle:2*Math.PI}}var Sw=2*Math.PI,Mw=Math.PI/180;function Iw(t,e,n){e.eachSeriesByType(t,(function(t){var e=t.getData(),i=e.mapDimension("value"),r=function(t,e){return Ac(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}(t,n),o=t.get("center"),a=t.get("radius");F(a)||(a=[0,a]),F(o)||(o=[o,o]);var s=Zi(r.width,n.getWidth()),l=Zi(r.height,n.getHeight()),u=Math.min(s,l),h=Zi(o[0],s)+r.x,c=Zi(o[1],l)+r.y,p=Zi(a[0],u/2),d=Zi(a[1],u/2),f=-t.get("startAngle")*Mw,g=t.get("minAngle")*Mw,y=0;e.each(i,(function(t){!isNaN(t)&&y++}));var v=e.getSum(i),m=Math.PI/(v||y)*2,_=t.get("clockwise"),x=t.get("roseType"),b=t.get("stillShowZeroSum"),w=e.getDataExtent(i);w[0]=0;var S=Sw,M=0,I=f,T=_?1:-1;if(e.setLayout({viewRect:r,r:d}),e.each(i,(function(t,n){var i;if(isNaN(t))e.setItemLayout(n,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:_,cx:h,cy:c,r0:p,r:x?NaN:d});else{(i="area"!==x?0===v&&b?m:t*m:Sw/y)<g?(i=g,S-=g):M+=t;var r=I+T*i;e.setItemLayout(n,{angle:i,startAngle:I,endAngle:r,clockwise:_,cx:h,cy:c,r0:p,r:x?Ui(t,w,[p,d]):d}),I=r}})),S<Sw&&y)if(S<=.001){var C=Sw/y;e.each(i,(function(t,n){if(!isNaN(t)){var i=e.getItemLayout(n);i.angle=C,i.startAngle=f+T*n*C,i.endAngle=f+T*(n+1)*C}}))}else m=S/M,I=f,e.each(i,(function(t,n){if(!isNaN(t)){var i=e.getItemLayout(n),r=i.angle===g?g:t*m;i.startAngle=I,i.endAngle=I+T*r,I+=T*r}}))}))}function Tw(t){return{seriesType:t,reset:function(t,e){var n=e.findComponents({mainType:"legend"});if(n&&n.length){var i=t.getData();i.filterSelf((function(t){for(var e=i.getName(t),r=0;r<n.length;r++)if(!n[r].isSelected(e))return!1;return!0}))}}}}var Cw=Math.PI/180;function Aw(t,e,n,i,r,o,a,s,l,u){if(!(t.length<2)){for(var h=t.length,c=0;c<h;c++)if("outer"===t[c].position&&"labelLine"===t[c].labelAlignTo){var p=t[c].label.x-u;t[c].linePoints[1][0]+=p,t[c].label.x=u}Fg(t,l,l+a)&&function(t){for(var o={list:[],maxY:0},a={list:[],maxY:0},s=0;s<t.length;s++)if("none"===t[s].labelAlignTo){var l=t[s],u=l.label.y>n?a:o,h=Math.abs(l.label.y-n);if(h>u.maxY){var c=l.label.x-e-l.len2*r,p=i+l.len,f=c<p?Math.sqrt(h*h/(1-c*c/p/p)):p;u.rB=f,u.maxY=h}u.list.push(l)}d(o),d(a)}(t)}function d(t){for(var o=t.rB,a=o*o,s=0;s<t.list.length;s++){var l=t.list[s],u=Math.abs(l.label.y-n),h=i+l.len,c=h*h,p=Math.sqrt((1-Math.abs(u*u/a))*c);l.label.x=e+(p+l.len2)*r}}}function Dw(t){return"center"===t.position}function Lw(t){var e,n,i=t.getData(),r=[],o=!1,a=(t.get("minShowLabelAngle")||0)*Cw,s=i.getLayout("viewRect"),l=i.getLayout("r"),u=s.width,h=s.x,c=s.y,p=s.height;function d(t){t.ignore=!0}i.each((function(t){var s=i.getItemGraphicEl(t),c=s.shape,p=s.getTextContent(),f=s.getTextGuideLine(),g=i.getItemModel(t),y=g.getModel("label"),v=y.get("position")||g.get(["emphasis","label","position"]),m=y.get("distanceToLabelLine"),_=y.get("alignTo"),x=Zi(y.get("edgeDistance"),u),b=y.get("bleedMargin"),w=g.getModel("labelLine"),S=w.get("length");S=Zi(S,u);var M=w.get("length2");if(M=Zi(M,u),Math.abs(c.endAngle-c.startAngle)<a)return P(p.states,d),void(p.ignore=!0);if(function(t){if(!t.ignore)return!0;for(var e in t.states)if(!1===t.states[e].ignore)return!0;return!1}(p)){var I,T,C,A,D=(c.startAngle+c.endAngle)/2,L=Math.cos(D),k=Math.sin(D);e=c.cx,n=c.cy;var O,R="inside"===v||"inner"===v;if("center"===v)I=c.cx,T=c.cy,A="center";else{var N=(R?(c.r+c.r0)/2*L:c.r*L)+e,E=(R?(c.r+c.r0)/2*k:c.r*k)+n;if(I=N+3*L,T=E+3*k,!R){var z=N+L*(S+l-c.r),B=E+k*(S+l-c.r),V=z+(L<0?-1:1)*M;I="edge"===_?L<0?h+x:h+u-x:V+(L<0?-m:m),T=B,C=[[N,E],[z,B],[V,B]]}A=R?"center":"edge"===_?L>0?"right":"left":L>0?"left":"right"}var F=y.get("rotate");if(O="number"==typeof F?F*(Math.PI/180):F?L<0?-D+Math.PI:-D:0,o=!!O,p.x=I,p.y=T,p.rotation=O,p.setStyle({verticalAlign:"middle"}),R){p.setStyle({align:A});var G=p.states.select;G&&(G.x+=p.x,G.y+=p.y)}else{var H=p.getBoundingRect().clone();H.applyTransform(p.getComputedTransform());var W=(p.style.margin||0)+2.1;H.y-=W/2,H.height+=W,r.push({label:p,labelLine:f,position:v,len:S,len2:M,minTurnAngle:w.get("minTurnAngle"),maxSurfaceAngle:w.get("maxSurfaceAngle"),surfaceNormal:new In(L,k),linePoints:C,textAlign:A,labelDistance:m,labelAlignTo:_,edgeDistance:x,bleedMargin:b,rect:H})}s.setTextConfig({inside:R})}})),!o&&t.get("avoidLabelOverlap")&&function(t,e,n,i,r,o,a,s){for(var l=[],u=[],h=Number.MAX_VALUE,c=-Number.MAX_VALUE,p=0;p<t.length;p++){var d=t[p].label;Dw(t[p])||(d.x<e?(h=Math.min(h,d.x),l.push(t[p])):(c=Math.max(c,d.x),u.push(t[p])))}for(Aw(u,e,n,i,1,0,o,0,s,c),Aw(l,e,n,i,-1,0,o,0,s,h),p=0;p<t.length;p++){var f=t[p];if(d=f.label,!Dw(f)){var g=f.linePoints;if(g){var y="edge"===f.labelAlignTo,v=f.rect.width,m=void 0;(m=y?d.x<e?g[2][0]-f.labelDistance-a-f.edgeDistance:a+r-f.edgeDistance-g[2][0]-f.labelDistance:d.x<e?d.x-a-f.bleedMargin:a+r-d.x-f.bleedMargin)<f.rect.width&&(f.label.style.width=m,"edge"===f.labelAlignTo&&(v=m));var _=g[1][0]-g[2][0];y?d.x<e?g[2][0]=a+f.edgeDistance+v+f.labelDistance:g[2][0]=a+r-f.edgeDistance-v-f.labelDistance:(d.x<e?g[2][0]=d.x+f.labelDistance:g[2][0]=d.x-f.labelDistance,g[1][0]=g[2][0]+_),g[1][1]=g[2][1]=d.y}}}}(r,e,n,l,u,p,h,c);for(var f=0;f<r.length;f++){var g=r[f],y=g.label,v=g.labelLine,m=isNaN(y.x)||isNaN(y.y);if(y){y.setStyle({align:g.textAlign}),m&&(P(y.states,d),y.ignore=!0);var _=y.states.select;_&&(_.x+=y.x,_.y+=y.y)}if(v){var x=g.linePoints;m||!x?(P(v.states,d),v.ignore=!0):(Og(x,g.minTurnAngle),Rg(x,g.surfaceNormal,g.maxSurfaceAngle),v.setShape({points:x}),y.__hostTarget.textGuideLineConfig={anchor:new In(x[0][0],x[0][1])})}}}function kw(t,e){var n=t.get("borderRadius");return null==n?null:(F(n)||(n=[n,n]),{innerCornerRadius:Yn(n[0],e.r0),cornerRadius:Yn(n[1],e.r)})}var Pw=function(t){function e(e,n,i){var r=t.call(this)||this;r.z2=2;var o=new $l,a=new ls;return r.setTextGuideLine(o),r.setTextContent(a),r.updateData(e,n,i,!0),r}return n(e,t),e.prototype.updateData=function(t,e,n,r){var o=this,a=t.hostModel,s=t.getItemModel(e),l=s.getModel("emphasis"),u=t.getItemLayout(e),h=I(kw(s.getModel("itemStyle"),u)||{},u);r?(o.setShape(h),"scale"===a.getShallow("animationType")?(o.shape.r=u.r0,Ru(o,{shape:{r:u.r}},a,e)):null!=n?(o.setShape({startAngle:n,endAngle:n}),Ru(o,{shape:{startAngle:u.startAngle,endAngle:u.endAngle}},a,e)):(o.shape.endAngle=u.startAngle,Ou(o,{shape:{endAngle:u.endAngle}},a,e))):Ou(o,{shape:h},a,e);o.useStyle(t.getItemVisual(e,"style")),nl(o,s);var c=(u.startAngle+u.endAngle)/2,p=a.get("selectedOffset"),d=Math.cos(c)*p,f=Math.sin(c)*p,g=s.getShallow("cursor");g&&o.attr("cursor",g),this._updateLabel(a,t,e),o.ensureState("emphasis").shape=i({r:u.r+(l.get("scale")&&l.get("scaleSize")||0)},kw(l.getModel("itemStyle"),u)),I(o.ensureState("select"),{x:d,y:f,shape:kw(s.getModel(["select","itemStyle"]),u)}),I(o.ensureState("blur"),{shape:kw(s.getModel(["blur","itemStyle"]),u)});var y=o.getTextGuideLine(),v=o.getTextContent();I(y.ensureState("select"),{x:d,y:f}),I(v.ensureState("select"),{x:d,y:f}),Js(this,l.get("focus"),l.get("blurScope"))},e.prototype._updateLabel=function(t,e,n){var i=this,r=e.getItemModel(n),o=r.getModel("labelLine"),a=e.getItemVisual(n,"style"),s=a&&a.fill,l=a&&a.opacity;th(i,eh(r),{labelFetcher:e.hostModel,labelDataIndex:n,inheritColor:s,defaultOpacity:l,defaultText:t.getFormattedLabel(n,"normal")||e.getName(n)});var u=i.getTextContent();i.setTextConfig({position:null,rotation:null}),u.attr({z2:10}),zg(this,Bg(r),{stroke:s,opacity:et(o.get(["lineStyle","opacity"]),l,1)})},e}(Wl),Ow=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.ignoreLabelLineUpdate=!0,e}return n(e,t),e.prototype.init=function(){var t=new zi;this._sectorGroup=t},e.prototype.render=function(t,e,n,i){var r,o=t.getData(),a=this._data,s=this.group;if(!a&&o.count()>0){for(var l=o.getItemLayout(0),u=1;isNaN(l&&l.startAngle)&&u<o.count();++u)l=o.getItemLayout(u);l&&(r=l.startAngle)}o.diff(a).add((function(t){var e=new Pw(o,t,r);o.setItemGraphicEl(t,e),s.add(e)})).update((function(t,e){var n=a.getItemGraphicEl(e);n.updateData(o,t,r),n.off("click"),s.add(n),o.setItemGraphicEl(t,n)})).remove((function(e){zu(a.getItemGraphicEl(e),t,e)})).execute(),Lw(t),"expansion"!==t.get("animationTypeUpdate")&&(this._data=o)},e.prototype.dispose=function(){},e.prototype.containPoint=function(t,e){var n=e.getData().getItemLayout(0);if(n){var i=t[0]-n.cx,r=t[1]-n.cy,o=Math.sqrt(i*i+r*r);return o<=n.r&&o>=n.r0}},e.type="pie",e}(yf);function Rw(t,e,n){e=F(e)&&{coordDimensions:e}||I({},e);var i=t.getSource(),r=Nm(i,e),o=new Pm(r,t);return o.initData(i,n),o}var Nw=function(){function t(t,e){this._getDataWithEncodedVisual=t,this._getRawData=e}return t.prototype.getAllNames=function(){var t=this._getRawData();return t.mapArray(t.getName)},t.prototype.containName=function(t){return this._getRawData().indexOfName(t)>=0},t.prototype.indexOfName=function(t){return this._getDataWithEncodedVisual().indexOfName(t)},t.prototype.getItemVisual=function(t,e){return this._getDataWithEncodedVisual().getItemVisual(t,e)},t}(),Ew=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.useColorPaletteOnData=!0,e}return n(e,t),e.prototype.init=function(e){t.prototype.init.apply(this,arguments),this.legendVisualProvider=new Nw(B(this.getData,this),B(this.getRawData,this)),this._defaultLabelLine(e)},e.prototype.mergeOption=function(){t.prototype.mergeOption.apply(this,arguments)},e.prototype.getInitialData=function(){return Rw(this,{coordDimensions:["value"],encodeDefaulter:V(Qc,this)})},e.prototype.getDataParams=function(e){var n=this.getData(),i=t.prototype.getDataParams.call(this,e),r=[];return n.each(n.mapDimension("value"),(function(t){r.push(t)})),i.percent=Qi(r,e,n.hostModel.get("percentPrecision")),i.$vars.push("percent"),i},e.prototype._defaultLabelLine=function(t){xr(t,"labelLine",["show"]);var e=t.labelLine,n=t.emphasis.labelLine;e.show=e.show&&t.label.show,n.show=n.show&&t.emphasis.label.show},e.type="series.pie",e.defaultOption={zlevel:0,z:2,legendHoverLink:!0,center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,minShowLabelAngle:0,selectedOffset:10,percentPrecision:2,stillShowZeroSum:!0,left:0,top:0,right:0,bottom:0,width:null,height:null,label:{rotate:0,show:!0,overflow:"truncate",position:"outer",alignTo:"none",edgeDistance:"25%",bleedMargin:10,distanceToLabelLine:5},labelLine:{show:!0,length:15,length2:15,smooth:!1,minTurnAngle:90,maxSurfaceAngle:90,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1},labelLayout:{hideOverlap:!0},emphasis:{scale:!0,scaleSize:5},avoidLabelOverlap:!0,animationType:"expansion",animationDuration:1e3,animationTypeUpdate:"transition",animationEasingUpdate:"cubicInOut",animationDurationUpdate:500,animationEasing:"cubicInOut"},e}(rf);var zw=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.hasSymbolVisual=!0,n}return n(e,t),e.prototype.getInitialData=function(t,e){return Hm(this.getSource(),this,{useEncodeDefaulter:!0})},e.prototype.getProgressive=function(){var t=this.option.progressive;return null==t?this.option.large?5e3:this.get("progressive"):t},e.prototype.getProgressiveThreshold=function(){var t=this.option.progressiveThreshold;return null==t?this.option.large?1e4:this.get("progressiveThreshold"):t},e.prototype.brushSelector=function(t,e,n){return n.point(e.getItemLayout(t))},e.type="series.scatter",e.dependencies=["grid","polar","geo","singleAxis","calendar"],e.defaultOption={coordinateSystem:"cartesian2d",zlevel:0,z:2,legendHoverLink:!0,symbolSize:10,large:!1,largeThreshold:2e3,itemStyle:{opacity:.8},emphasis:{scale:!0},clip:!0,select:{itemStyle:{borderColor:"#212121"}}},e}(rf),Bw=function(){},Vw=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultShape=function(){return new Bw},e.prototype.buildPath=function(t,e){var n=e.points,i=e.size,r=this.symbolProxy,o=r.shape,a=t.getContext?t.getContext():t;if(a&&i[0]<4)this._ctx=a;else{this._ctx=null;for(var s=0;s<n.length;){var l=n[s++],u=n[s++];isNaN(l)||isNaN(u)||(this.softClipShape&&!this.softClipShape.contain(l,u)||(o.x=l-i[0]/2,o.y=u-i[1]/2,o.width=i[0],o.height=i[1],r.buildPath(t,o,!0)))}}},e.prototype.afterBrush=function(){var t=this.shape,e=t.points,n=t.size,i=this._ctx;if(i)for(var r=0;r<e.length;){var o=e[r++],a=e[r++];isNaN(o)||isNaN(a)||(this.softClipShape&&!this.softClipShape.contain(o,a)||i.fillRect(o-n[0]/2,a-n[1]/2,n[0],n[1]))}},e.prototype.findDataIndex=function(t,e){for(var n=this.shape,i=n.points,r=n.size,o=Math.max(r[0],4),a=Math.max(r[1],4),s=i.length/2-1;s>=0;s--){var l=2*s,u=i[l]-o/2,h=i[l+1]-a/2;if(t>=u&&e>=h&&t<=u+o&&e<=h+a)return s}return-1},e}(Za),Fw=function(){function t(){this.group=new zi}return t.prototype.isPersistent=function(){return!this._incremental},t.prototype.updateData=function(t,e){this.group.removeAll();var n=new Vw({rectHover:!0,cursor:"default"});n.setShape({points:t.getLayout("points")}),this._setCommon(n,t,!1,e),this.group.add(n),this._incremental=null},t.prototype.updateLayout=function(t){if(!this._incremental){var e=t.getLayout("points");this.group.eachChild((function(t){if(null!=t.startIndex){var n=2*(t.endIndex-t.startIndex),i=4*t.startIndex*2;e=new Float32Array(e.buffer,i,n)}t.setShape("points",e)}))}},t.prototype.incrementalPrepareUpdate=function(t){this.group.removeAll(),this._clearIncremental(),t.count()>2e6?(this._incremental||(this._incremental=new vu({silent:!0})),this.group.add(this._incremental)):this._incremental=null},t.prototype.incrementalUpdate=function(t,e,n){var i;this._incremental?(i=new Vw,this._incremental.addDisplayable(i,!0)):((i=new Vw({rectHover:!0,cursor:"default",startIndex:t.start,endIndex:t.end})).incremental=!0,this.group.add(i)),i.setShape({points:e.getLayout("points")}),this._setCommon(i,e,!!this._incremental,n)},t.prototype._setCommon=function(t,e,n,i){var r=e.hostModel;i=i||{};var o=e.getVisual("symbolSize");t.setShape("size",o instanceof Array?o:[o,o]),t.softClipShape=i.clipShape||null,t.symbolProxy=uy(e.getVisual("symbol"),0,0,0,0),t.setColor=t.symbolProxy.setColor;var a=t.shape.size[0]<4;t.useStyle(r.getModel("itemStyle").getItemStyle(a?["color","shadowBlur","shadowColor"]:["color"]));var s=e.getVisual("style"),l=s&&s.fill;if(l&&t.setColor(l),!n){var u=ys(t);u.seriesIndex=r.seriesIndex,t.on("mousemove",(function(e){u.dataIndex=null;var n=t.findDataIndex(e.offsetX,e.offsetY);n>=0&&(u.dataIndex=n+(t.startIndex||0))}))}},t.prototype.remove=function(){this._clearIncremental(),this._incremental=null,this.group.removeAll()},t.prototype._clearIncremental=function(){var t=this._incremental;t&&t.clearDisplaybles()},t}(),Gw=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){var i=t.getData();this._updateSymbolDraw(i,t).updateData(i,{clipShape:this._getClipShape(t)}),this._finished=!0},e.prototype.incrementalPrepareRender=function(t,e,n){var i=t.getData();this._updateSymbolDraw(i,t).incrementalPrepareUpdate(i),this._finished=!1},e.prototype.incrementalRender=function(t,e,n){this._symbolDraw.incrementalUpdate(t,e.getData(),{clipShape:this._getClipShape(e)}),this._finished=t.end===e.getData().count()},e.prototype.updateTransform=function(t,e,n){var i=t.getData();if(this.group.dirty(),!this._finished||i.count()>1e4||!this._symbolDraw.isPersistent())return{update:!0};var r=Qb("").reset(t,e,n);r.progress&&r.progress({start:0,end:i.count(),count:i.count()},i),this._symbolDraw.updateLayout(i)},e.prototype._getClipShape=function(t){var e=t.coordinateSystem,n=e&&e.getArea&&e.getArea();return t.get("clip",!0)?n:null},e.prototype._updateSymbolDraw=function(t,e){var n=this._symbolDraw,i=e.pipelineContext.large;return n&&i===this._isLargeDraw||(n&&n.remove(),n=this._symbolDraw=i?new Fw:new Tb,this._isLargeDraw=i,this.group.removeAll()),this.group.add(n.group),n},e.prototype.remove=function(t,e){this._symbolDraw&&this._symbolDraw.remove(!0),this._symbolDraw=null},e.prototype.dispose=function(){},e.type="scatter",e}(yf),Hw=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.type="grid",e.dependencies=["xAxis","yAxis"],e.layoutMode="box",e.defaultOption={show:!1,zlevel:0,z:0,left:"10%",top:60,right:"10%",bottom:70,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"},e}(Nc),Ww=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.getCoordSysModel=function(){return this.getReferringComponents("grid",Or).models[0]},e.type="cartesian2dAxis",e}(Nc);L(Ww,j_);var Yw={show:!0,zlevel:0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#6E7079",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,lineStyle:{color:["#E0E6F1"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}}},Xw=S({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},Yw),Uw=S({boundaryGap:[0,0],axisLine:{show:"auto"},axisTick:{show:"auto"},splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:"#F4F7FD",width:1}}},Yw),Zw={category:Xw,value:Uw,time:S({scale:!0,splitNumber:6,axisLabel:{showMinLabel:!1,showMaxLabel:!1,rich:{primary:{fontWeight:"bold"}}},splitLine:{show:!1}},Uw),log:T({scale:!0,logBase:10},Uw)},jw={value:1,category:1,time:1,log:1};function qw(t,e,i,r){P(jw,(function(o,a){var s=S(S({},Zw[a],!0),r,!0),l=function(t){function i(){for(var n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];var r=t.apply(this,n)||this;return r.type=e+"Axis."+a,r}return n(i,t),i.prototype.mergeDefaultAndTheme=function(t,e){var n=Lc(this),i=n?Pc(t):{};S(t,e.getTheme().get(a+"Axis")),S(t,this.getDefaultOption()),t.type=Kw(t),n&&kc(t,i,n)},i.prototype.optionUpdated=function(){"category"===this.option.type&&(this.__ordinalMeta=Ym.createByAxisModel(this))},i.prototype.getCategories=function(t){var e=this.option;if("category"===e.type)return t?e.data:this.__ordinalMeta.categories},i.prototype.getOrdinalMeta=function(){return this.__ordinalMeta},i.type=e+"Axis."+a,i.defaultOption=s,i}(i);t.registerComponentModel(l)})),t.registerSubTypeDefaulter(e+"Axis",Kw)}function Kw(t){return t.type||(t.data?"category":"value")}var $w=function(){function t(t){this.type="cartesian",this._dimList=[],this._axes={},this.name=t||""}return t.prototype.getAxis=function(t){return this._axes[t]},t.prototype.getAxes=function(){return O(this._dimList,(function(t){return this._axes[t]}),this)},t.prototype.getAxesByScale=function(t){return t=t.toLowerCase(),N(this.getAxes(),(function(e){return e.scale.type===t}))},t.prototype.addAxis=function(t){var e=t.dim;this._axes[e]=t,this._dimList.push(e)},t}(),Jw=["x","y"];function Qw(t){return"interval"===t.type||"time"===t.type}var tS=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="cartesian2d",e.dimensions=Jw,e}return n(e,t),e.prototype.calcAffineTransform=function(){this._transform=this._invTransform=null;var t=this.getAxis("x").scale,e=this.getAxis("y").scale;if(Qw(t)&&Qw(e)){var n=t.getExtent(),i=e.getExtent(),r=this.dataToPoint([n[0],i[0]]),o=this.dataToPoint([n[1],i[1]]),a=n[1]-n[0],s=i[1]-i[0];if(a&&s){var l=(o[0]-r[0])/a,u=(o[1]-r[1])/s,h=r[0]-n[0]*l,c=r[1]-i[0]*u,p=this._transform=[l,0,0,u,h,c];this._invTransform=be([],p)}}},e.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAxis("x")},e.prototype.containPoint=function(t){var e=this.getAxis("x"),n=this.getAxis("y");return e.contain(e.toLocalCoord(t[0]))&&n.contain(n.toLocalCoord(t[1]))},e.prototype.containData=function(t){return this.getAxis("x").containData(t[0])&&this.getAxis("y").containData(t[1])},e.prototype.dataToPoint=function(t,e,n){n=n||[];var i=t[0],r=t[1];if(this._transform&&null!=i&&isFinite(i)&&null!=r&&isFinite(r))return Rt(n,t,this._transform);var o=this.getAxis("x"),a=this.getAxis("y");return n[0]=o.toGlobalCoord(o.dataToCoord(i)),n[1]=a.toGlobalCoord(a.dataToCoord(r)),n},e.prototype.clampData=function(t,e){var n=this.getAxis("x").scale,i=this.getAxis("y").scale,r=n.getExtent(),o=i.getExtent(),a=n.parse(t[0]),s=i.parse(t[1]);return(e=e||[])[0]=Math.min(Math.max(Math.min(r[0],r[1]),a),Math.max(r[0],r[1])),e[1]=Math.min(Math.max(Math.min(o[0],o[1]),s),Math.max(o[0],o[1])),e},e.prototype.pointToData=function(t,e){if(e=e||[],this._invTransform)return Rt(e,t,this._invTransform);var n=this.getAxis("x"),i=this.getAxis("y");return e[0]=n.coordToData(n.toLocalCoord(t[0])),e[1]=i.coordToData(i.toLocalCoord(t[1])),e},e.prototype.getOtherAxis=function(t){return this.getAxis("x"===t.dim?"y":"x")},e.prototype.getArea=function(){var t=this.getAxis("x").getGlobalExtent(),e=this.getAxis("y").getGlobalExtent(),n=Math.min(t[0],t[1]),i=Math.min(e[0],e[1]),r=Math.max(t[0],t[1])-n,o=Math.max(e[0],e[1])-i;return new Rn(n,i,r,o)},e}($w),eS=function(t){function e(e,n,i,r,o){var a=t.call(this,e,n,i)||this;return a.index=0,a.type=r||"value",a.position=o||"bottom",a}return n(e,t),e.prototype.isHorizontal=function(){var t=this.position;return"top"===t||"bottom"===t},e.prototype.getGlobalExtent=function(t){var e=this.getExtent();return e[0]=this.toGlobalCoord(e[0]),e[1]=this.toGlobalCoord(e[1]),t&&e[0]>e[1]&&e.reverse(),e},e.prototype.pointToData=function(t,e){return this.coordToData(this.toLocalCoord(t["x"===this.dim?0:1]),e)},e.prototype.setCategorySortInfo=function(t){if("category"!==this.type)return!1;this.model.option.categorySortInfo=t,this.scale.setSortInfo(t)},e}(vx);function nS(t,e,n){n=n||{};var i=t.coordinateSystem,r=e.axis,o={},a=r.getAxesOnZeroOf()[0],s=r.position,l=a?"onZero":s,u=r.dim,h=i.getRect(),c=[h.x,h.x+h.width,h.y,h.y+h.height],p={left:0,right:1,top:0,bottom:1,onZero:2},d=e.get("offset")||0,f="x"===u?[c[2]-d,c[3]+d]:[c[0]-d,c[1]+d];if(a){var g=a.toGlobalCoord(a.dataToCoord(0));f[p.onZero]=Math.max(Math.min(g,f[1]),f[0])}o.position=["y"===u?f[p[l]]:c[0],"x"===u?f[p[l]]:c[3]],o.rotation=Math.PI/2*("x"===u?0:1);o.labelDirection=o.tickDirection=o.nameDirection={top:-1,bottom:1,left:-1,right:1}[s],o.labelOffset=a?f[p[s]]-f[p.onZero]:0,e.get(["axisTick","inside"])&&(o.tickDirection=-o.tickDirection),Q(n.labelInside,e.get(["axisLabel","inside"]))&&(o.labelDirection=-o.labelDirection);var y=e.get(["axisLabel","rotate"]);return o.labelRotate="top"===l?-y:y,o.z2=1,o}function iS(t){return"cartesian2d"===t.get("coordinateSystem")}function rS(t){var e={xAxisModel:null,yAxisModel:null};return P(e,(function(n,i){var r=i.replace(/Model$/,""),o=t.getReferringComponents(r,Or).models[0];e[i]=o})),e}var oS=function(){function t(t,e,n){this.type="grid",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=Jw,this._initCartesian(t,e,n),this.model=t}return t.prototype.getRect=function(){return this._rect},t.prototype.update=function(t,e){var n=this._axesMap;this._updateScale(t,this.model),P(n.x,(function(t){F_(t.scale,t.model)})),P(n.y,(function(t){F_(t.scale,t.model)}));var i={};P(n.x,(function(t){sS(n,"y",t,i)})),P(n.y,(function(t){sS(n,"x",t,i)})),this.resize(this.model,e)},t.prototype.resize=function(t,e,n){var i=t.getBoxLayoutParams(),r=!n&&t.get("containLabel"),o=Ac(i,{width:e.getWidth(),height:e.getHeight()});this._rect=o;var a=this._axesList;function s(){P(a,(function(t){var e=t.isHorizontal(),n=e?[0,o.width]:[0,o.height],i=t.inverse?1:0;t.setExtent(n[i],n[1-i]),function(t,e){var n=t.getExtent(),i=n[0]+n[1];t.toGlobalCoord="x"===t.dim?function(t){return t+e}:function(t){return i-t+e},t.toLocalCoord="x"===t.dim?function(t){return t-e}:function(t){return i-t+e}}(t,e?o.x:o.y)}))}s(),r&&(P(a,(function(t){if(!t.model.get(["axisLabel","inside"])){var e=function(t){var e=t.model,n=t.scale;if(e.get(["axisLabel","show"])&&!n.isBlank()){var i,r,o=n.getExtent();r=n instanceof Qm?n.count():(i=n.getTicks()).length;var a,s=t.getLabelModel(),l=H_(t),u=1;r>40&&(u=Math.ceil(r/40));for(var h=0;h<r;h+=u){var c=l(i?i[h]:{value:o[0]+h},h),p=Y_(s.getTextRect(c),s.get("rotate")||0);a?a.union(p):a=p}return a}}(t);if(e){var n=t.isHorizontal()?"height":"width",i=t.model.get(["axisLabel","margin"]);o[n]-=e[n]+i,"top"===t.position?o.y+=e.height+i:"left"===t.position&&(o.x+=e.width+i)}}})),s()),P(this._coordsList,(function(t){t.calcAffineTransform()}))},t.prototype.getAxis=function(t,e){var n=this._axesMap[t];if(null!=n)return n[e||0]},t.prototype.getAxes=function(){return this._axesList.slice()},t.prototype.getCartesian=function(t,e){if(null!=t&&null!=e){var n="x"+t+"y"+e;return this._coordsMap[n]}X(t)&&(e=t.yAxisIndex,t=t.xAxisIndex);for(var i=0,r=this._coordsList;i<r.length;i++)if(r[i].getAxis("x").index===t||r[i].getAxis("y").index===e)return r[i]},t.prototype.getCartesians=function(){return this._coordsList.slice()},t.prototype.convertToPixel=function(t,e,n){var i=this._findConvertTarget(e);return i.cartesian?i.cartesian.dataToPoint(n):i.axis?i.axis.toGlobalCoord(i.axis.dataToCoord(n)):null},t.prototype.convertFromPixel=function(t,e,n){var i=this._findConvertTarget(e);return i.cartesian?i.cartesian.pointToData(n):i.axis?i.axis.coordToData(i.axis.toLocalCoord(n)):null},t.prototype._findConvertTarget=function(t){var e,n,i=t.seriesModel,r=t.xAxisModel||i&&i.getReferringComponents("xAxis",Or).models[0],o=t.yAxisModel||i&&i.getReferringComponents("yAxis",Or).models[0],a=t.gridModel,s=this._coordsList;if(i)A(s,e=i.coordinateSystem)<0&&(e=null);else if(r&&o)e=this.getCartesian(r.componentIndex,o.componentIndex);else if(r)n=this.getAxis("x",r.componentIndex);else if(o)n=this.getAxis("y",o.componentIndex);else if(a){a.coordinateSystem===this&&(e=this._coordsList[0])}return{cartesian:e,axis:n}},t.prototype.containPoint=function(t){var e=this._coordsList[0];if(e)return e.containPoint(t)},t.prototype._initCartesian=function(t,e,n){var i=this,r=this,o={left:!1,right:!1,top:!1,bottom:!1},a={x:{},y:{}},s={x:0,y:0};if(e.eachComponent("xAxis",l("x"),this),e.eachComponent("yAxis",l("y"),this),!s.x||!s.y)return this._axesMap={},void(this._axesList=[]);function l(e){return function(n,i){if(aS(n,t)){var l=n.get("position");"x"===e?"top"!==l&&"bottom"!==l&&(l=o.bottom?"top":"bottom"):"left"!==l&&"right"!==l&&(l=o.left?"right":"left"),o[l]=!0;var u=new eS(e,G_(n),[0,0],n.get("type"),l),h="category"===u.type;u.onBand=h&&n.get("boundaryGap"),u.inverse=n.get("inverse"),n.axis=u,u.model=n,u.grid=r,u.index=i,r._axesList.push(u),a[e][i]=u,s[e]++}}}this._axesMap=a,P(a.x,(function(e,n){P(a.y,(function(r,o){var a="x"+n+"y"+o,s=new tS(a);s.master=i,s.model=t,i._coordsMap[a]=s,i._coordsList.push(s),s.addAxis(e),s.addAxis(r)}))}))},t.prototype._updateScale=function(t,e){function n(t,e){P(Z_(t,e.dim),(function(n){e.scale.unionExtentFromData(t,n)}))}P(this._axesList,(function(t){if(t.scale.setExtent(1/0,-1/0),"category"===t.type){var e=t.model.get("categorySortInfo");t.scale.setSortInfo(e)}})),t.eachSeries((function(t){if(iS(t)){var i=rS(t),r=i.xAxisModel,o=i.yAxisModel;if(!aS(r,e)||!aS(o,e))return;var a=this.getCartesian(r.componentIndex,o.componentIndex),s=t.getData(),l=a.getAxis("x"),u=a.getAxis("y");"list"===s.type&&(n(s,l),n(s,u))}}),this)},t.prototype.getTooltipAxes=function(t){var e=[],n=[];return P(this.getCartesians(),(function(i){var r=null!=t&&"auto"!==t?i.getAxis(t):i.getBaseAxis(),o=i.getOtherAxis(r);A(e,r)<0&&e.push(r),A(n,o)<0&&n.push(o)})),{baseAxes:e,otherAxes:n}},t.create=function(e,n){var i=[];return e.eachComponent("grid",(function(r,o){var a=new t(r,e,n);a.name="grid_"+o,a.resize(r,n,!0),r.coordinateSystem=a,i.push(a)})),e.eachSeries((function(t){if(iS(t)){var e=rS(t),n=e.xAxisModel,i=e.yAxisModel,r=n.getCoordSysModel();0;var o=r.coordinateSystem;t.coordinateSystem=o.getCartesian(n.componentIndex,i.componentIndex)}})),i},t.dimensions=Jw,t}();function aS(t,e){return t.getCoordSysModel()===e}function sS(t,e,n,i){n.getAxesOnZeroOf=function(){return r?[r]:[]};var r,o=t[e],a=n.model,s=a.get(["axisLine","onZero"]),l=a.get(["axisLine","onZeroAxisIndex"]);if(s){if(null!=l)lS(o[l])&&(r=o[l]);else for(var u in o)if(o.hasOwnProperty(u)&&lS(o[u])&&!i[h(o[u])]){r=o[u];break}r&&(i[h(r)]=!0)}function h(t){return t.dim+"_"+t.index}}function lS(t){return t&&"category"!==t.type&&"time"!==t.type&&function(t){var e=t.scale.getExtent(),n=e[0],i=e[1];return!(n>0&&i>0||n<0&&i<0)}(t)}var uS=Math.PI,hS=function(){function t(t,e){this.group=new zi,this.opt=e,this.axisModel=t,T(e,{labelOffset:0,nameDirection:1,tickDirection:1,labelDirection:1,silent:!0,handleAutoShown:function(){return!0}});var n=new zi({x:e.position[0],y:e.position[1],rotation:e.rotation});n.updateTransform(),this._transformGroup=n}return t.prototype.hasBuilder=function(t){return!!cS[t]},t.prototype.add=function(t){cS[t](this.opt,this.axisModel,this.group,this._transformGroup)},t.prototype.getGroup=function(){return this.group},t.innerTextLayout=function(t,e,n){var i,r,o=er(e-t);return nr(o)?(r=n>0?"top":"bottom",i="center"):nr(o-uS)?(r=n>0?"bottom":"top",i="center"):(r="middle",i=o>0&&o<uS?n>0?"right":"left":n>0?"left":"right"),{rotation:o,textAlign:i,textVerticalAlign:r}},t.makeAxisEventDataBase=function(t){var e={componentType:t.mainType,componentIndex:t.componentIndex};return e[t.mainType+"Index"]=t.componentIndex,e},t.isLabelSilent=function(t){var e=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||e&&e.show)},t}(),cS={axisLine:function(t,e,n,i){var r=e.get(["axisLine","show"]);if("auto"===r&&t.handleAutoShown&&(r=t.handleAutoShown("axisLine")),r){var o=e.axis.getExtent(),a=i.transform,s=[o[0],0],l=[o[1],0];a&&(Rt(s,s,a),Rt(l,l,a));var u=I({lineCap:"round"},e.getModel(["axisLine","lineStyle"]).getLineStyle()),h=new tu({subPixelOptimize:!0,shape:{x1:s[0],y1:s[1],x2:l[0],y2:l[1]},style:u,strokeContainThreshold:t.strokeContainThreshold||5,silent:!0,z2:1});h.anid="line",n.add(h);var c=e.get(["axisLine","symbol"]),p=e.get(["axisLine","symbolSize"]),d=e.get(["axisLine","symbolOffset"])||0;if("number"==typeof d&&(d=[d,d]),null!=c){"string"==typeof c&&(c=[c,c]),"string"!=typeof p&&"number"!=typeof p||(p=[p,p]);var f=p[0],g=p[1];P([{rotate:t.rotation+Math.PI/2,offset:d[0],r:0},{rotate:t.rotation-Math.PI/2,offset:d[1],r:Math.sqrt((s[0]-l[0])*(s[0]-l[0])+(s[1]-l[1])*(s[1]-l[1]))}],(function(e,i){if("none"!==c[i]&&null!=c[i]){var r=uy(c[i],-f/2,-g/2,f,g,u.stroke,!0),o=e.r+e.offset;r.attr({rotation:e.rotate,x:s[0]+o*Math.cos(t.rotation),y:s[1]-o*Math.sin(t.rotation),silent:!0,z2:11}),n.add(r)}}))}}},axisTickLabel:function(t,e,n,i){var r=function(t,e,n,i){var r=n.axis,o=n.getModel("axisTick"),a=o.get("show");"auto"===a&&i.handleAutoShown&&(a=i.handleAutoShown("axisTick"));if(!a||r.scale.isBlank())return;for(var s=o.getModel("lineStyle"),l=i.tickDirection*o.get("length"),u=gS(r.getTicksCoords(),e.transform,l,T(s.getLineStyle(),{stroke:n.get(["axisLine","lineStyle","color"])}),"ticks"),h=0;h<u.length;h++)t.add(u[h]);return u}(n,i,e,t),o=function(t,e,n,i){var r=n.axis;if(!Q(i.axisLabelShow,n.get(["axisLabel","show"]))||r.scale.isBlank())return;var o=n.getModel("axisLabel"),a=o.get("margin"),s=r.getViewLabels(),l=(Q(i.labelRotate,o.get("rotate"))||0)*uS/180,u=hS.innerTextLayout(i.rotation,l,i.labelDirection),h=n.getCategories&&n.getCategories(!0),c=[],p=hS.isLabelSilent(n),d=n.get("triggerEvent");return P(s,(function(s,l){var f="ordinal"===r.scale.type?r.scale.getRawOrdinalNumber(s.tickValue):s.tickValue,g=s.formattedLabel,y=s.rawLabel,v=o;if(h&&h[f]){var m=h[f];X(m)&&m.textStyle&&(v=new Sh(m.textStyle,o,n.ecModel))}var _=v.getTextColor()||n.get(["axisLine","lineStyle","color"]),x=r.dataToCoord(f),b=new ls({x:x,y:i.labelOffset+i.labelDirection*a,rotation:u.rotation,silent:p,z2:10,style:nh(v,{text:g,align:v.getShallow("align",!0)||u.textAlign,verticalAlign:v.getShallow("verticalAlign",!0)||v.getShallow("baseline",!0)||u.textVerticalAlign,fill:"function"==typeof _?_("category"===r.type?y:"value"===r.type?f+"":f,l):_})});if(b.anid="label_"+f,d){var w=hS.makeAxisEventDataBase(n);w.targetType="axisLabel",w.value=y,ys(b).eventData=w}e.add(b),b.updateTransform(),c.push(b),t.add(b),b.decomposeTransform()})),c}(n,i,e,t);!function(t,e,n){if(U_(t.axis))return;var i=t.get(["axisLabel","showMinLabel"]),r=t.get(["axisLabel","showMaxLabel"]);n=n||[];var o=(e=e||[])[0],a=e[1],s=e[e.length-1],l=e[e.length-2],u=n[0],h=n[1],c=n[n.length-1],p=n[n.length-2];!1===i?(pS(o),pS(u)):dS(o,a)&&(i?(pS(a),pS(h)):(pS(o),pS(u)));!1===r?(pS(s),pS(c)):dS(l,s)&&(r?(pS(l),pS(p)):(pS(s),pS(c)))}(e,o,r),function(t,e,n,i){var r=n.axis,o=n.getModel("minorTick");if(!o.get("show")||r.scale.isBlank())return;var a=r.getMinorTicksCoords();if(!a.length)return;for(var s=o.getModel("lineStyle"),l=i*o.get("length"),u=T(s.getLineStyle(),T(n.getModel("axisTick").getLineStyle(),{stroke:n.get(["axisLine","lineStyle","color"])})),h=0;h<a.length;h++)for(var c=gS(a[h],e.transform,l,u,"minorticks_"+h),p=0;p<c.length;p++)t.add(c[p])}(n,i,e,t.tickDirection)},axisName:function(t,e,n,i){var r=Q(t.axisName,e.get("name"));if(r){var o,a,s=e.get("nameLocation"),l=t.nameDirection,u=e.getModel("nameTextStyle"),h=e.get("nameGap")||0,c=e.axis.getExtent(),p=c[0]>c[1]?-1:1,d=["start"===s?c[0]-p*h:"end"===s?c[1]+p*h:(c[0]+c[1])/2,fS(s)?t.labelOffset+l*h:0],f=e.get("nameRotate");null!=f&&(f=f*uS/180),fS(s)?o=hS.innerTextLayout(t.rotation,null!=f?f:t.rotation,l):(o=function(t,e,n,i){var r,o,a=er(n-t),s=i[0]>i[1],l="start"===e&&!s||"start"!==e&&s;nr(a-uS/2)?(o=l?"bottom":"top",r="center"):nr(a-1.5*uS)?(o=l?"top":"bottom",r="center"):(o="middle",r=a<1.5*uS&&a>uS/2?l?"left":"right":l?"right":"left");return{rotation:a,textAlign:r,textVerticalAlign:o}}(t.rotation,s,f||0,c),null!=(a=t.axisNameAvailableWidth)&&(a=Math.abs(a/Math.sin(o.rotation)),!isFinite(a)&&(a=null)));var g=u.getFont(),y=e.get("nameTruncate",!0)||{},v=y.ellipsis,m=Q(t.nameTruncateMaxWidth,y.maxWidth,a),_=e.get("tooltip",!0),x=e.mainType,b={componentType:x,name:r,$vars:["name"]};b[x+"Index"]=e.componentIndex;var w=new ls({x:d[0],y:d[1],rotation:o.rotation,silent:hS.isLabelSilent(e),style:nh(u,{text:r,font:g,overflow:"truncate",width:m,ellipsis:v,fill:u.getTextColor()||e.get(["axisLine","lineStyle","color"]),align:u.get("align")||o.textAlign,verticalAlign:u.get("verticalAlign")||o.textVerticalAlign}),z2:1});if(w.tooltip=_&&_.show?I({content:r,formatter:function(){return r},formatterParams:b},_):null,w.__fullText=r,w.anid="name",e.get("triggerEvent")){var S=hS.makeAxisEventDataBase(e);S.targetType="axisName",S.name=r,ys(w).eventData=S}i.add(w),w.updateTransform(),n.add(w),w.decomposeTransform()}}};function pS(t){t&&(t.ignore=!0)}function dS(t,e){var n=t&&t.getBoundingRect().clone(),i=e&&e.getBoundingRect().clone();if(n&&i){var r=ge([]);return _e(r,r,-t.rotation),n.applyTransform(ve([],r,t.getLocalTransform())),i.applyTransform(ve([],r,e.getLocalTransform())),n.intersect(i)}}function fS(t){return"middle"===t||"center"===t}function gS(t,e,n,i,r){for(var o=[],a=[],s=[],l=0;l<t.length;l++){var u=t[l].coord;a[0]=u,a[1]=0,s[0]=u,s[1]=n,e&&(Rt(a,a,e),Rt(s,s,e));var h=new tu({subPixelOptimize:!0,shape:{x1:a[0],y1:a[1],x2:s[0],y2:s[1]},style:i,z2:2,autoBatch:!0,silent:!0});h.anid=r+"_"+t[l].tickValue,o.push(h)}return o}function yS(t,e){var n={axesInfo:{},seriesInvolved:!1,coordSysAxesInfo:{},coordSysMap:{}};return function(t,e,n){var i=e.getComponent("tooltip"),r=e.getComponent("axisPointer"),o=r.get("link",!0)||[],a=[];P(n.getCoordinateSystems(),(function(n){if(n.axisPointerEnabled){var s=bS(n.model),l=t.coordSysAxesInfo[s]={};t.coordSysMap[s]=n;var u=n.model.getModel("tooltip",i);if(P(n.getAxes(),V(d,!1,null)),n.getTooltipAxes&&i&&u.get("show")){var h="axis"===u.get("trigger"),c="cross"===u.get(["axisPointer","type"]),p=n.getTooltipAxes(u.get(["axisPointer","axis"]));(h||c)&&P(p.baseAxes,V(d,!c||"cross",h)),c&&P(p.otherAxes,V(d,"cross",!1))}}function d(i,s,h){var c=h.model.getModel("axisPointer",r),p=c.get("show");if(p&&("auto"!==p||i||xS(c))){null==s&&(s=c.get("triggerTooltip"));var d=(c=i?function(t,e,n,i,r,o){var a=e.getModel("axisPointer"),s={};P(["type","snap","lineStyle","shadowStyle","label","animation","animationDurationUpdate","animationEasingUpdate","z"],(function(t){s[t]=w(a.get(t))})),s.snap="category"!==t.type&&!!o,"cross"===a.get("type")&&(s.type="line");var l=s.label||(s.label={});if(null==l.show&&(l.show=!1),"cross"===r){var u=a.get(["label","show"]);if(l.show=null==u||u,!o){var h=s.lineStyle=a.get("crossStyle");h&&T(l,h.textStyle)}}return t.model.getModel("axisPointer",new Sh(s,n,i))}(h,u,r,e,i,s):c).get("snap"),f=bS(h.model),g=s||d||"category"===h.type,y=t.axesInfo[f]={key:f,axis:h,coordSys:n,axisPointerModel:c,triggerTooltip:s,involveSeries:g,snap:d,useHandle:xS(c),seriesModels:[],linkGroup:null};l[f]=y,t.seriesInvolved=t.seriesInvolved||g;var v=function(t,e){for(var n=e.model,i=e.dim,r=0;r<t.length;r++){var o=t[r]||{};if(vS(o[i+"AxisId"],n.id)||vS(o[i+"AxisIndex"],n.componentIndex)||vS(o[i+"AxisName"],n.name))return r}}(o,h);if(null!=v){var m=a[v]||(a[v]={axesInfo:{}});m.axesInfo[f]=y,m.mapper=o[v].mapper,y.linkGroup=m}}}}))}(n,t,e),n.seriesInvolved&&function(t,e){e.eachSeries((function(e){var n=e.coordinateSystem,i=e.get(["tooltip","trigger"],!0),r=e.get(["tooltip","show"],!0);n&&"none"!==i&&!1!==i&&"item"!==i&&!1!==r&&!1!==e.get(["axisPointer","show"],!0)&&P(t.coordSysAxesInfo[bS(n.model)],(function(t){var i=t.axis;n.getAxis(i.dim)===i&&(t.seriesModels.push(e),null==t.seriesDataCount&&(t.seriesDataCount=0),t.seriesDataCount+=e.getData().count())}))}))}(n,t),n}function vS(t,e){return"all"===t||F(t)&&A(t,e)>=0||t===e}function mS(t){var e=_S(t);if(e){var n=e.axisPointerModel,i=e.axis.scale,r=n.option,o=n.get("status"),a=n.get("value");null!=a&&(a=i.parse(a));var s=xS(n);null==o&&(r.status=s?"show":"hide");var l=i.getExtent().slice();l[0]>l[1]&&l.reverse(),(null==a||a>l[1])&&(a=l[1]),a<l[0]&&(a=l[0]),r.value=a,s&&(r.status=e.axis.scale.isBlank()?"hide":"show")}}function _S(t){var e=(t.ecModel.getComponent("axisPointer")||{}).coordSysAxesInfo;return e&&e.axesInfo[bS(t)]}function xS(t){return!!t.get(["handle","show"])}function bS(t){return t.type+"||"+t.id}var wS={},SS=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(e,n,i,r){this.axisPointerClass&&mS(e),t.prototype.render.apply(this,arguments),this._doUpdateAxisPointerClass(e,i,!0)},e.prototype.updateAxisPointer=function(t,e,n,i){this._doUpdateAxisPointerClass(t,n,!1)},e.prototype.remove=function(t,e){var n=this._axisPointer;n&&n.remove(e)},e.prototype.dispose=function(e,n){this._disposeAxisPointer(n),t.prototype.dispose.apply(this,arguments)},e.prototype._doUpdateAxisPointerClass=function(t,n,i){var r=e.getAxisPointerClass(this.axisPointerClass);if(r){var o=function(t){var e=_S(t);return e&&e.axisPointerModel}(t);o?(this._axisPointer||(this._axisPointer=new r)).render(t,o,n,i):this._disposeAxisPointer(n)}},e.prototype._disposeAxisPointer=function(t){this._axisPointer&&this._axisPointer.dispose(t),this._axisPointer=null},e.registerAxisPointerClass=function(t,e){wS[t]=e},e.getAxisPointerClass=function(t){return t&&wS[t]},e.type="axis",e}(pf),MS=Lr();function IS(t,e,n,i){var r=n.axis;if(!r.scale.isBlank()){var o=n.getModel("splitArea"),a=o.getModel("areaStyle"),s=a.get("color"),l=i.coordinateSystem.getRect(),u=r.getTicksCoords({tickModel:o,clamp:!0});if(u.length){var h=s.length,c=MS(t).splitAreaColors,p=ht(),d=0;if(c)for(var f=0;f<u.length;f++){var g=c.get(u[f].tickValue);if(null!=g){d=(g+(h-1)*f)%h;break}}var y=r.toGlobalCoord(u[0].coord),v=a.getAreaStyle();s=F(s)?s:[s];for(f=1;f<u.length;f++){var m=r.toGlobalCoord(u[f].coord),_=void 0,x=void 0,b=void 0,w=void 0;r.isHorizontal()?(_=y,x=l.y,b=m-_,w=l.height,y=_+b):(_=l.x,x=y,b=l.width,y=x+(w=m-x));var S=u[f-1].tickValue;null!=S&&p.set(S,d),e.add(new os({anid:null!=S?"area_"+S:null,shape:{x:_,y:x,width:b,height:w},style:T({fill:s[d]},v),autoBatch:!0,silent:!0})),d=(d+1)%h}MS(t).splitAreaColors=p}}}function TS(t){MS(t).splitAreaColors=null}var CS=["axisLine","axisTickLabel","axisName"],AS=["splitArea","splitLine","minorSplitLine"],DS=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.axisPointerClass="CartesianAxisPointer",n}return n(e,t),e.prototype.render=function(e,n,i,r){this.group.removeAll();var o=this._axisGroup;if(this._axisGroup=new zi,this.group.add(this._axisGroup),e.get("show")){var a=e.getCoordSysModel(),s=nS(a,e),l=new hS(e,I({handleAutoShown:function(t){for(var n=a.coordinateSystem.getCartesians(),i=0;i<n.length;i++){var r=n[i].getOtherAxis(e.axis).type;if("value"===r||"log"===r)return!0}return!1}},s));P(CS,l.add,l),this._axisGroup.add(l.getGroup()),P(AS,(function(t){e.get([t,"show"])&&LS[t](this,this._axisGroup,e,a)}),this),Wu(o,this._axisGroup,e),t.prototype.render.call(this,e,n,i,r)}},e.prototype.remove=function(){TS(this)},e.type="cartesianAxis",e}(SS),LS={splitLine:function(t,e,n,i){var r=n.axis;if(!r.scale.isBlank()){var o=n.getModel("splitLine"),a=o.getModel("lineStyle"),s=a.get("color");s=F(s)?s:[s];for(var l=i.coordinateSystem.getRect(),u=r.isHorizontal(),h=0,c=r.getTicksCoords({tickModel:o}),p=[],d=[],f=a.getLineStyle(),g=0;g<c.length;g++){var y=r.toGlobalCoord(c[g].coord);u?(p[0]=y,p[1]=l.y,d[0]=y,d[1]=l.y+l.height):(p[0]=l.x,p[1]=y,d[0]=l.x+l.width,d[1]=y);var v=h++%s.length,m=c[g].tickValue;e.add(new tu({anid:null!=m?"line_"+c[g].tickValue:null,subPixelOptimize:!0,autoBatch:!0,shape:{x1:p[0],y1:p[1],x2:d[0],y2:d[1]},style:T({stroke:s[v]},f),silent:!0}))}}},minorSplitLine:function(t,e,n,i){var r=n.axis,o=n.getModel("minorSplitLine").getModel("lineStyle"),a=i.coordinateSystem.getRect(),s=r.isHorizontal(),l=r.getMinorTicksCoords();if(l.length)for(var u=[],h=[],c=o.getLineStyle(),p=0;p<l.length;p++)for(var d=0;d<l[p].length;d++){var f=r.toGlobalCoord(l[p][d].coord);s?(u[0]=f,u[1]=a.y,h[0]=f,h[1]=a.y+a.height):(u[0]=a.x,u[1]=f,h[0]=a.x+a.width,h[1]=f),e.add(new tu({anid:"minor_line_"+l[p][d].tickValue,subPixelOptimize:!0,autoBatch:!0,shape:{x1:u[0],y1:u[1],x2:h[0],y2:h[1]},style:c,silent:!0}))}},splitArea:function(t,e,n,i){IS(t,e,n,i)}},kS=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="xAxis",e}(DS),PS=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=kS.type,e}return n(e,t),e.type="yAxis",e}(DS),OS=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="grid",e}return n(e,t),e.prototype.render=function(t,e){this.group.removeAll(),t.get("show")&&this.group.add(new os({shape:t.coordinateSystem.getRect(),style:T({fill:t.get("backgroundColor")},t.getItemStyle()),silent:!0,z2:-1}))},e.type="grid",e}(pf),RS={offset:0};function NS(t){t.registerComponentView(OS),t.registerComponentModel(Hw),t.registerCoordinateSystem("cartesian2d",oS),qw(t,"x",Ww,RS),qw(t,"y",Ww,RS),t.registerComponentView(kS),t.registerComponentView(PS),t.registerPreprocessor((function(t){t.xAxis&&t.yAxis&&!t.grid&&(t.grid={})}))}function ES(t){t.eachSeriesByType("radar",(function(t){var e=t.getData(),n=[],i=t.coordinateSystem;if(i){var r=i.getIndicatorAxes();P(r,(function(t,o){e.each(e.mapDimension(r[o].dim),(function(t,e){n[e]=n[e]||[];var r=i.dataToPoint(t,o);n[e][o]=zS(r)?r:BS(i)}))})),e.each((function(t){var r=E(n[t],(function(t){return zS(t)}))||BS(i);n[t].push(r.slice()),e.setItemLayout(t,n[t])}))}}))}function zS(t){return!isNaN(t[0])&&!isNaN(t[1])}function BS(t){return[t.cx,t.cy]}function VS(t){var e=t.polar;if(e){F(e)||(e=[e]);var n=[];P(e,(function(e,i){e.indicator?(e.type&&!e.shape&&(e.shape=e.type),t.radar=t.radar||[],F(t.radar)||(t.radar=[t.radar]),t.radar.push(e)):n.push(e)})),t.polar=n}P(t.series,(function(t){t&&"radar"===t.type&&t.polarIndex&&(t.radarIndex=t.polarIndex)}))}var FS=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){var i=t.coordinateSystem,r=this.group,o=t.getData(),a=this._data;function s(t,e){var n=t.getItemVisual(e,"symbol")||"circle";if("none"!==n){var i=function(t){return F(t)||(t=[+t,+t]),t}(t.getItemVisual(e,"symbolSize")),r=uy(n,-1,-1,2,2),o=t.getItemVisual(e,"symbolRotate")||0;return r.attr({style:{strokeNoScale:!0},z2:100,scaleX:i[0]/2,scaleY:i[1]/2,rotation:o*Math.PI/180||0}),r}}function l(e,n,i,r,o,a){i.removeAll();for(var l=0;l<n.length-1;l++){var u=s(r,o);u&&(u.__dimIdx=l,e[l]?(u.setPosition(e[l]),Ku[a?"initProps":"updateProps"](u,{x:n[l][0],y:n[l][1]},t,o)):u.setPosition(n[l]),i.add(u))}}function u(t){return O(t,(function(t){return[i.cx,i.cy]}))}o.diff(a).add((function(e){var n=o.getItemLayout(e);if(n){var i=new ql,r=new $l,a={shape:{points:n}};i.shape.points=u(n),r.shape.points=u(n),Ru(i,a,t,e),Ru(r,a,t,e);var s=new zi,h=new zi;s.add(r),s.add(i),s.add(h),l(r.shape.points,n,h,o,e,!0),o.setItemGraphicEl(e,s)}})).update((function(e,n){var i=a.getItemGraphicEl(n),r=i.childAt(0),s=i.childAt(1),u=i.childAt(2),h={shape:{points:o.getItemLayout(e)}};h.shape.points&&(l(r.shape.points,h.shape.points,u,o,e,!1),Ou(r,h,t),Ou(s,h,t),o.setItemGraphicEl(e,i))})).remove((function(t){r.remove(a.getItemGraphicEl(t))})).execute(),o.eachItemGraphicEl((function(t,e){var n=o.getItemModel(e),i=t.childAt(0),a=t.childAt(1),s=t.childAt(2),l=o.getItemVisual(e,"style"),u=l.fill;r.add(t),i.useStyle(T(n.getModel("lineStyle").getLineStyle(),{fill:"none",stroke:u})),nl(i,n,"lineStyle"),nl(a,n,"areaStyle");var h=n.getModel("areaStyle"),c=h.isEmpty()&&h.parentModel.isEmpty();a.ignore=c,P(["emphasis","select","blur"],(function(t){var e=n.getModel([t,"areaStyle"]),i=e.isEmpty()&&e.parentModel.isEmpty();a.ensureState(t).ignore=i&&c})),a.useStyle(T(h.getAreaStyle(),{fill:u,opacity:.7,decal:l.decal}));var p=n.getModel("emphasis"),d=p.getModel("itemStyle").getItemStyle();s.eachChild((function(t){if(t instanceof Ja){var i=t.style;t.useStyle(I({image:i.image,x:i.x,y:i.y,width:i.width,height:i.height},l))}else t.useStyle(l),t.setColor(u);t.ensureState("emphasis").style=w(d);var r=o.get(o.dimensions[t.__dimIdx],e);(null==r||isNaN(r))&&(r=""),th(t,eh(n),{labelFetcher:o.hostModel,labelDataIndex:e,labelDimIndex:t.__dimIdx,defaultText:r,inheritColor:u,defaultOpacity:l.opacity})})),Js(t,p.get("focus"),p.get("blurScope"))})),this._data=o},e.prototype.remove=function(){this.group.removeAll(),this._data=null},e.type="radar",e}(yf),GS=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.useColorPaletteOnData=!0,n.hasSymbolVisual=!0,n}return n(e,t),e.prototype.init=function(e){t.prototype.init.apply(this,arguments),this.legendVisualProvider=new Nw(B(this.getData,this),B(this.getRawData,this))},e.prototype.getInitialData=function(t,e){return Rw(this,{generateCoord:"indicator_",generateCoordCount:1/0})},e.prototype.formatTooltip=function(t,e,n){var i=this.getData(),r=this.coordinateSystem.getIndicatorAxes(),o=this.getData().getName(t),a=""===o?this.name:o,s=$d(this,t);return Yd("section",{header:a,sortBlocks:!0,blocks:O(r,(function(e){var n=i.get(i.mapDimension(e.dim),t);return Yd("nameValue",{markerType:"subItem",markerColor:s,name:e.name,value:n,sortParam:n})}))})},e.prototype.getTooltipPosition=function(t){if(null!=t)for(var e=this.getData(),n=this.coordinateSystem,i=e.getValues(O(n.dimensions,(function(t){return e.mapDimension(t)})),t),r=0,o=i.length;r<o;r++)if(!isNaN(i[r])){var a=n.getIndicatorAxes();return n.coordToPoint(a[r].dataToCoord(i[r]),r)}},e.type="series.radar",e.dependencies=["radar"],e.defaultOption={zlevel:0,z:2,coordinateSystem:"radar",legendHoverLink:!0,radarIndex:0,lineStyle:{width:2,type:"solid"},label:{position:"top"},symbol:"emptyCircle",symbolSize:4},e}(rf),HS=Zw.value;function WS(t,e){return T({show:e},t)}var YS=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.optionUpdated=function(){var t=this.get("boundaryGap"),e=this.get("splitNumber"),n=this.get("scale"),i=this.get("axisLine"),r=this.get("axisTick"),o=this.get("axisLabel"),a=this.get("axisName"),s=this.get(["axisName","show"]),l=this.get(["axisName","formatter"]),u=this.get("axisNameGap"),h=this.get("triggerEvent"),c=O(this.get("indicator")||[],(function(c){null!=c.max&&c.max>0&&!c.min?c.min=0:null!=c.min&&c.min<0&&!c.max&&(c.max=0);var p=a;null!=c.color&&(p=T({color:c.color},a));var d=S(w(c),{boundaryGap:t,splitNumber:e,scale:n,axisLine:i,axisTick:r,axisLabel:o,name:c.text,nameLocation:"end",nameGap:u,nameTextStyle:p,triggerEvent:h},!1);if(s||(d.name=""),"string"==typeof l){var f=d.name;d.name=l.replace("{value}",null!=f?f:"")}else"function"==typeof l&&(d.name=l(d.name,d));var g=new Sh(d,null,this.ecModel);return L(g,j_.prototype),g.mainType="radar",g.componentIndex=this.componentIndex,g}),this);this._indicatorModels=c},e.prototype.getIndicatorModels=function(){return this._indicatorModels},e.type="radar",e.defaultOption={zlevel:0,z:0,center:["50%","50%"],radius:"75%",startAngle:90,axisName:{show:!0},boundaryGap:[0,0],splitNumber:5,axisNameGap:15,scale:!1,shape:"polygon",axisLine:S({lineStyle:{color:"#bbb"}},HS.axisLine),axisLabel:WS(HS.axisLabel,!1),axisTick:WS(HS.axisTick,!1),splitLine:WS(HS.splitLine,!0),splitArea:WS(HS.splitArea,!0),indicator:[]},e}(Nc),XS=["axisLine","axisTickLabel","axisName"],US=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){this.group.removeAll(),this._buildAxes(t),this._buildSplitLineAndArea(t)},e.prototype._buildAxes=function(t){var e=t.coordinateSystem;P(O(e.getIndicatorAxes(),(function(t){return new hS(t.model,{position:[e.cx,e.cy],rotation:t.angle,labelDirection:-1,tickDirection:-1,nameDirection:1})})),(function(t){P(XS,t.add,t),this.group.add(t.getGroup())}),this)},e.prototype._buildSplitLineAndArea=function(t){var e=t.coordinateSystem,n=e.getIndicatorAxes();if(n.length){var i=t.get("shape"),r=t.getModel("splitLine"),o=t.getModel("splitArea"),a=r.getModel("lineStyle"),s=o.getModel("areaStyle"),l=r.get("show"),u=o.get("show"),h=a.get("color"),c=s.get("color"),p=F(h)?h:[h],d=F(c)?c:[c],f=[],g=[];if("circle"===i)for(var y=n[0].getTicksCoords(),v=e.cx,m=e.cy,_=0;_<y.length;_++){if(l)f[A(f,p,_)].push(new Tl({shape:{cx:v,cy:m,r:y[_].coord}}));if(u&&_<y.length-1)g[A(g,d,_)].push(new Xl({shape:{cx:v,cy:m,r0:y[_].coord,r:y[_+1].coord}}))}else{var x,b=O(n,(function(t,n){var i=t.getTicksCoords();return x=null==x?i.length-1:Math.min(i.length-1,x),O(i,(function(t){return e.coordToPoint(t.coord,n)}))})),w=[];for(_=0;_<=x;_++){for(var S=[],M=0;M<n.length;M++)S.push(b[M][_]);if(S[0]&&S.push(S[0].slice()),l)f[A(f,p,_)].push(new $l({shape:{points:S}}));if(u&&w)g[A(g,d,_-1)].push(new ql({shape:{points:S.concat(w)}}));w=S.slice().reverse()}}var I=a.getLineStyle(),C=s.getAreaStyle();P(g,(function(t,e){this.group.add(Du(t,{style:T({stroke:"none",fill:d[e%d.length]},C),silent:!0}))}),this),P(f,(function(t,e){this.group.add(Du(t,{style:T({fill:"none",stroke:p[e%p.length]},I),silent:!0}))}),this)}function A(t,e,n){var i=n%e.length;return t[i]=t[i]||[],i}},e.type="radar",e}(pf),ZS=function(t){function e(e,n,i){var r=t.call(this,e,n,i)||this;return r.type="value",r.angle=0,r.name="",r}return n(e,t),e}(vx),jS=function(){function t(t,e,n){this.dimensions=[],this._model=t,this._indicatorAxes=O(t.getIndicatorModels(),(function(t,e){var n="indicator_"+e,i=new ZS(n,new e_);return i.name=t.get("name"),i.model=t,t.axis=i,this.dimensions.push(n),i}),this),this.resize(t,n)}return t.prototype.getIndicatorAxes=function(){return this._indicatorAxes},t.prototype.dataToPoint=function(t,e){var n=this._indicatorAxes[e];return this.coordToPoint(n.dataToCoord(t),e)},t.prototype.coordToPoint=function(t,e){var n=this._indicatorAxes[e].angle;return[this.cx+t*Math.cos(n),this.cy-t*Math.sin(n)]},t.prototype.pointToData=function(t){var e=t[0]-this.cx,n=t[1]-this.cy,i=Math.sqrt(e*e+n*n);e/=i,n/=i;for(var r,o=Math.atan2(-n,e),a=1/0,s=-1,l=0;l<this._indicatorAxes.length;l++){var u=this._indicatorAxes[l],h=Math.abs(o-u.angle);h<a&&(r=u,s=l,a=h)}return[s,+(r&&r.coordToData(i))]},t.prototype.resize=function(t,e){var n=t.get("center"),i=e.getWidth(),r=e.getHeight(),o=Math.min(i,r)/2;this.cx=Zi(n[0],i),this.cy=Zi(n[1],r),this.startAngle=t.get("startAngle")*Math.PI/180;var a=t.get("radius");"string"!=typeof a&&"number"!=typeof a||(a=[0,a]),this.r0=Zi(a[0],o),this.r=Zi(a[1],o),P(this._indicatorAxes,(function(t,e){t.setExtent(this.r0,this.r);var n=this.startAngle+e*Math.PI*2/this._indicatorAxes.length;n=Math.atan2(Math.sin(n),Math.cos(n)),t.angle=n}),this)},t.prototype.update=function(t,e){var n=this._indicatorAxes,i=this._model;P(n,(function(t){t.scale.setExtent(1/0,-1/0)})),t.eachSeriesByType("radar",(function(e,r){if("radar"===e.get("coordinateSystem")&&t.getComponent("radar",e.get("radarIndex"))===i){var o=e.getData();P(n,(function(t){t.scale.unionExtentFromData(o,o.mapDimension(t.dim))}))}}),this);var r=i.get("splitNumber");function o(t){var e=Math.pow(10,Math.floor(Math.log(t)/Math.LN10)),n=t/e;return 2===n?n=5:n*=2,n*e}P(n,(function(t,e){var n=V_(t.scale,t.model).extent;F_(t.scale,t.model);var i=t.model,a=t.scale,s=B_(a,i.get("min",!0)),l=B_(a,i.get("max",!0)),u=a.getInterval();if(null!=s&&null!=l)a.setExtent(+s,+l),a.setInterval((l-s)/r);else if(null!=s){var h=void 0;do{h=s+u*r,a.setExtent(+s,h),a.setInterval(u),u=o(u)}while(h<n[1]&&isFinite(h)&&isFinite(n[1]))}else if(null!=l){var c=void 0;do{c=l-u*r,a.setExtent(c,+l),a.setInterval(u),u=o(u)}while(c>n[0]&&isFinite(c)&&isFinite(n[0]))}else{a.getTicks().length-1>r&&(u=o(u));c=ji((h=Math.ceil(n[1]/u)*u)-u*r);a.setExtent(c,h),a.setInterval(u)}}))},t.prototype.convertToPixel=function(t,e,n){return console.warn("Not implemented."),null},t.prototype.convertFromPixel=function(t,e,n){return console.warn("Not implemented."),null},t.prototype.containPoint=function(t){return console.warn("Not implemented."),!1},t.create=function(e,n){var i=[];return e.eachComponent("radar",(function(r){var o=new t(r,e,n);i.push(o),r.coordinateSystem=o})),e.eachSeriesByType("radar",(function(t){"radar"===t.get("coordinateSystem")&&(t.coordinateSystem=i[t.get("radarIndex")||0])})),i},t.dimensions=[],t}();function qS(t){t.registerCoordinateSystem("radar",jS),t.registerComponentModel(YS),t.registerComponentView(US)}var KS="\0_ec_interaction_mutex";function $S(t,e){return!!JS(t)[e]}function JS(t){return t[KS]||(t[KS]={})}Yv({type:"takeGlobalCursor",event:"globalCursorTaken",update:"update"},(function(){}));var QS=function(t){function e(e){var n=t.call(this)||this;n._zr=e;var i=B(n._mousedownHandler,n),r=B(n._mousemoveHandler,n),o=B(n._mouseupHandler,n),a=B(n._mousewheelHandler,n),s=B(n._pinchHandler,n);return n.enable=function(t,n){this.disable(),this._opt=T(w(n)||{},{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),null==t&&(t=!0),!0!==t&&"move"!==t&&"pan"!==t||(e.on("mousedown",i),e.on("mousemove",r),e.on("mouseup",o)),!0!==t&&"scale"!==t&&"zoom"!==t||(e.on("mousewheel",a),e.on("pinch",s))},n.disable=function(){e.off("mousedown",i),e.off("mousemove",r),e.off("mouseup",o),e.off("mousewheel",a),e.off("pinch",s)},n}return n(e,t),e.prototype.isDragging=function(){return this._dragging},e.prototype.isPinching=function(){return this._pinching},e.prototype.setPointerChecker=function(t){this.pointerChecker=t},e.prototype.dispose=function(){this.disable()},e.prototype._mousedownHandler=function(t){if(!(ne(t)||t.target&&t.target.draggable)){var e=t.offsetX,n=t.offsetY;this.pointerChecker&&this.pointerChecker(t,e,n)&&(this._x=e,this._y=n,this._dragging=!0)}},e.prototype._mousemoveHandler=function(t){if(this._dragging&&nM("moveOnMouseMove",t,this._opt)&&"pinch"!==t.gestureEvent&&!$S(this._zr,"globalPan")){var e=t.offsetX,n=t.offsetY,i=this._x,r=this._y,o=e-i,a=n-r;this._x=e,this._y=n,this._opt.preventDefaultMouseMove&&ee(t.event),eM(this,"pan","moveOnMouseMove",t,{dx:o,dy:a,oldX:i,oldY:r,newX:e,newY:n,isAvailableBehavior:null})}},e.prototype._mouseupHandler=function(t){ne(t)||(this._dragging=!1)},e.prototype._mousewheelHandler=function(t){var e=nM("zoomOnMouseWheel",t,this._opt),n=nM("moveOnMouseWheel",t,this._opt),i=t.wheelDelta,r=Math.abs(i),o=t.offsetX,a=t.offsetY;if(0!==i&&(e||n)){if(e){var s=r>3?1.4:r>1?1.2:1.1;tM(this,"zoom","zoomOnMouseWheel",t,{scale:i>0?s:1/s,originX:o,originY:a,isAvailableBehavior:null})}if(n){var l=Math.abs(i);tM(this,"scrollMove","moveOnMouseWheel",t,{scrollDelta:(i>0?1:-1)*(l>3?.4:l>1?.15:.05),originX:o,originY:a,isAvailableBehavior:null})}}},e.prototype._pinchHandler=function(t){$S(this._zr,"globalPan")||tM(this,"zoom",null,t,{scale:t.pinchScale>1?1.1:1/1.1,originX:t.pinchX,originY:t.pinchY,isAvailableBehavior:null})},e}(Ft);function tM(t,e,n,i,r){t.pointerChecker&&t.pointerChecker(i,r.originX,r.originY)&&(ee(i.event),eM(t,e,n,i,r))}function eM(t,e,n,i,r){r.isAvailableBehavior=B(nM,null,n,i),t.trigger(e,r)}function nM(t,e,n){var i=n[t];return!t||i&&(!H(i)||e.event[i+"Key"])}function iM(t,e,n){var i=t.target;i.x+=e,i.y+=n,i.dirty()}function rM(t,e,n,i){var r=t.target,o=t.zoomLimit,a=t.zoom=t.zoom||1;if(a*=e,o){var s=o.min||0,l=o.max||1/0;a=Math.max(Math.min(l,a),s)}var u=a/t.zoom;t.zoom=a,r.x-=(n-r.x)*(u-1),r.y-=(i-r.y)*(u-1),r.scaleX*=u,r.scaleY*=u,r.dirty()}var oM={axisPointer:1,tooltip:1,brush:1};function aM(t,e,n){var i=e.getComponentByElement(t.topTarget),r=i&&i.coordinateSystem;return i&&i!==n&&!oM.hasOwnProperty(i.mainType)&&r&&r.model!==n}for(var sM=[126,25],lM=[[[0,3.5],[7,11.2],[15,11.9],[30,7],[42,.7],[52,.7],[56,7.7],[59,.7],[64,.7],[64,0],[5,0],[0,3.5]],[[13,16.1],[19,14.7],[16,21.7],[11,23.1],[13,16.1]],[[12,32.2],[14,38.5],[15,38.5],[13,32.2],[12,32.2]],[[16,47.6],[12,53.2],[13,53.2],[18,47.6],[16,47.6]],[[6,64.4],[8,70],[9,70],[8,64.4],[6,64.4]],[[23,82.6],[29,79.8],[30,79.8],[25,82.6],[23,82.6]],[[37,70.7],[43,62.3],[44,62.3],[39,70.7],[37,70.7]],[[48,51.1],[51,45.5],[53,45.5],[50,51.1],[48,51.1]],[[51,35],[51,28.7],[53,28.7],[53,35],[51,35]],[[52,22.4],[55,17.5],[56,17.5],[53,22.4],[52,22.4]],[[58,12.6],[62,7],[63,7],[60,12.6],[58,12.6]],[[0,3.5],[0,93.1],[64,93.1],[64,0],[63,0],[63,92.4],[1,92.4],[1,3.5],[0,3.5]]],uM=0;uM<lM.length;uM++)for(var hM=0;hM<lM[uM].length;hM++)lM[uM][hM][0]/=10.5,lM[uM][hM][1]/=-14,lM[uM][hM][0]+=sM[0],lM[uM][hM][1]+=sM[1];var cM={"南海诸岛":[32,80],"广东":[0,-10],"香港":[10,5],"澳门":[-10,10],"天津":[5,5]};var pM={Russia:[100,60],"United States":[-99,38],"United States of America":[-99,38]};var dM=[[[123.45165252685547,25.73527164402261],[123.49731445312499,25.73527164402261],[123.49731445312499,25.750734064600884],[123.45165252685547,25.750734064600884],[123.45165252685547,25.73527164402261]]];var fM=Lr(),gM={load:function(t,e,n){var i=fM(e).parsed;if(i)return i;var r,o=e.specialAreas||{},a=e.geoJSON;try{r=a?ex(a,n):[]}catch(t){throw new Error("Invalid geoJson format\n"+t.message)}return function(t,e){"china"===t&&e.push(new Q_("南海诸岛",O(lM,(function(t){return{type:"polygon",exterior:t}})),sM))}(t,r),P(r,(function(e){var n=e.name;!function(t,e){if("china"===t){var n=cM[e.name];if(n){var i=e.center;i[0]+=n[0]/10.5,i[1]+=-n[1]/14}}}(t,e),function(t,e){if("world"===t){var n=pM[e.name];if(n){var i=e.center;i[0]=n[0],i[1]=n[1]}}}(t,e),function(t,e){"china"===t&&"台湾"===e.name&&e.geometries.push({type:"polygon",exterior:dM[0]})}(t,e);var i=o[n];i&&e.transformTo(i.left,i.top,i.width,i.height)})),fM(e).parsed={regions:r,boundingRect:yM(r)}}};function yM(t){for(var e,n=0;n<t.length;n++){var i=t[n].getBoundingRect();(e=e||i.clone()).union(i)}return e}var vM,mM=/[\s,]+/,_M=function(){function t(){this._defs={},this._root=null,this._isDefine=!1,this._isText=!1}return t.prototype.parse=function(t,e){e=e||{};var n=og(t);if(!n)throw new Error("Illegal svg");var i=new zi;this._root=i;var r=n.getAttribute("viewBox")||"",o=parseFloat(n.getAttribute("width")||e.width),a=parseFloat(n.getAttribute("height")||e.height);isNaN(o)&&(o=null),isNaN(a)&&(a=null),MM(n,i,null,!0);for(var s,l,u=n.firstChild;u;)this._parseNode(u,i),u=u.nextSibling;if(r){var h=ot(r).split(mM);h.length>=4&&(s={x:parseFloat(h[0]||0),y:parseFloat(h[1]||0),width:parseFloat(h[2]),height:parseFloat(h[3])})}if(s&&null!=o&&null!=a&&(l=DM(s,o,a),!e.ignoreViewBox)){var c=i;(i=new zi).add(c),c.scaleX=c.scaleY=l.scale,c.x=l.x,c.y=l.y}return e.ignoreRootClip||null==o||null==a||i.setClipPath(new os({shape:{x:0,y:0,width:o,height:a}})),{root:i,width:o,height:a,viewBoxRect:s,viewBoxTransform:l}},t.prototype._parseNode=function(t,e){var n,i,r=t.nodeName.toLowerCase();if("defs"===r?this._isDefine=!0:"text"===r&&(this._isText=!0),this._isDefine){if(i=xM[r]){var o=i.call(this,t),a=t.getAttribute("id");a&&(this._defs[a]=o)}}else(i=vM[r])&&(n=i.call(this,t,e),e.add(n));if(n)for(var s=t.firstChild;s;)1===s.nodeType&&this._parseNode(s,n),3===s.nodeType&&this._isText&&this._parseText(s,n),s=s.nextSibling;"defs"===r?this._isDefine=!1:"text"===r&&(this._isText=!1)},t.prototype._parseText=function(t,e){if(1===t.nodeType){var n=t.getAttribute("dx")||0,i=t.getAttribute("dy")||0;this._textX+=parseFloat(n),this._textY+=parseFloat(i)}var r=new qa({style:{text:t.textContent},x:this._textX||0,y:this._textY||0});bM(e,r),MM(t,r,this._defs);var o=r.style,a=o.fontSize;a&&a<9&&(o.fontSize=9,r.scaleX*=a/9,r.scaleY*=a/9);var s=(o.fontSize||o.fontFamily)&&[o.fontStyle,o.fontWeight,(o.fontSize||12)+"px",o.fontFamily||"sans-serif"].join(" ");o.font=s;var l=r.getBoundingRect();return this._textX+=l.width,e.add(r),r},t.internalField=void(vM={g:function(t,e){var n=new zi;return bM(e,n),MM(t,n,this._defs),n},rect:function(t,e){var n=new os;return bM(e,n),MM(t,n,this._defs),n.setShape({x:parseFloat(t.getAttribute("x")||"0"),y:parseFloat(t.getAttribute("y")||"0"),width:parseFloat(t.getAttribute("width")||"0"),height:parseFloat(t.getAttribute("height")||"0")}),n},circle:function(t,e){var n=new Tl;return bM(e,n),MM(t,n,this._defs),n.setShape({cx:parseFloat(t.getAttribute("cx")||"0"),cy:parseFloat(t.getAttribute("cy")||"0"),r:parseFloat(t.getAttribute("r")||"0")}),n},line:function(t,e){var n=new tu;return bM(e,n),MM(t,n,this._defs),n.setShape({x1:parseFloat(t.getAttribute("x1")||"0"),y1:parseFloat(t.getAttribute("y1")||"0"),x2:parseFloat(t.getAttribute("x2")||"0"),y2:parseFloat(t.getAttribute("y2")||"0")}),n},ellipse:function(t,e){var n=new Al;return bM(e,n),MM(t,n,this._defs),n.setShape({cx:parseFloat(t.getAttribute("cx")||"0"),cy:parseFloat(t.getAttribute("cy")||"0"),rx:parseFloat(t.getAttribute("rx")||"0"),ry:parseFloat(t.getAttribute("ry")||"0")}),n},polygon:function(t,e){var n,i=t.getAttribute("points");i&&(n=wM(i));var r=new ql({shape:{points:n||[]}});return bM(e,r),MM(t,r,this._defs),r},polyline:function(t,e){var n=new Za;bM(e,n),MM(t,n,this._defs);var i,r=t.getAttribute("points");return r&&(i=wM(r)),new $l({shape:{points:i||[]}})},image:function(t,e){var n=new Ja;return bM(e,n),MM(t,n,this._defs),n.setStyle({image:t.getAttribute("xlink:href"),x:+t.getAttribute("x"),y:+t.getAttribute("y"),width:+t.getAttribute("width"),height:+t.getAttribute("height")}),n},text:function(t,e){var n=t.getAttribute("x")||"0",i=t.getAttribute("y")||"0",r=t.getAttribute("dx")||"0",o=t.getAttribute("dy")||"0";this._textX=parseFloat(n)+parseFloat(r),this._textY=parseFloat(i)+parseFloat(o);var a=new zi;return bM(e,a),MM(t,a,this._defs),a},tspan:function(t,e){var n=t.getAttribute("x"),i=t.getAttribute("y");null!=n&&(this._textX=parseFloat(n)),null!=i&&(this._textY=parseFloat(i));var r=t.getAttribute("dx")||0,o=t.getAttribute("dy")||0,a=new zi;return bM(e,a),MM(t,a,this._defs),this._textX+=r,this._textY+=o,a},path:function(t,e){var n=Ml(t.getAttribute("d")||"");return bM(e,n),MM(t,n,this._defs),n}}),t}(),xM={lineargradient:function(t){var e=parseInt(t.getAttribute("x1")||"0",10),n=parseInt(t.getAttribute("y1")||"0",10),i=parseInt(t.getAttribute("x2")||"10",10),r=parseInt(t.getAttribute("y2")||"0",10),o=new uu(e,n,i,r);return function(t,e){var n=t.firstChild;for(;n;){if(1===n.nodeType){var i=n.getAttribute("offset"),r=void 0;r=i.indexOf("%")>0?parseInt(i,10)/100:i?parseFloat(i):0;var o=n.getAttribute("stop-color")||"#000000";e.colorStops.push({offset:r,color:o})}n=n.nextSibling}}(t,o),o}};function bM(t,e){t&&t.__inheritedStyle&&(e.__inheritedStyle||(e.__inheritedStyle={}),T(e.__inheritedStyle,t.__inheritedStyle))}function wM(t){for(var e=ot(t).split(mM),n=[],i=0;i<e.length;i+=2){var r=parseFloat(e[i]),o=parseFloat(e[i+1]);n.push([r,o])}return n}var SM={fill:"fill",stroke:"stroke","stroke-width":"lineWidth",opacity:"opacity","fill-opacity":"fillOpacity","stroke-opacity":"strokeOpacity","stroke-dasharray":"lineDash","stroke-dashoffset":"lineDashOffset","stroke-linecap":"lineCap","stroke-linejoin":"lineJoin","stroke-miterlimit":"miterLimit","font-family":"fontFamily","font-size":"fontSize","font-style":"fontStyle","font-weight":"fontWeight","text-align":"textAlign","alignment-baseline":"textBaseline"};function MM(t,e,n,i){var r=e,o=r.__inheritedStyle||{};if(1===t.nodeType&&(function(t,e){var n=t.getAttribute("transform");if(n){n=n.replace(/,/g," ");var i=[],r=null;n.replace(CM,(function(t,e,n){return i.push(e,n),""}));for(var o=i.length-1;o>0;o-=2){var a=i[o],s=void 0;switch(r=r||[1,0,0,1,0,0],i[o-1]){case"translate":s=ot(a).split(mM),me(r,r,[parseFloat(s[0]),parseFloat(s[1]||"0")]);break;case"scale":s=ot(a).split(mM),xe(r,r,[parseFloat(s[0]),parseFloat(s[1]||s[0])]);break;case"rotate":s=ot(a).split(mM),_e(r,r,parseFloat(s[0]));break;case"skew":s=ot(a).split(mM),console.warn("Skew transform is not supported yet");break;case"matrix":s=ot(a).split(mM),r[0]=parseFloat(s[0]),r[1]=parseFloat(s[1]),r[2]=parseFloat(s[2]),r[3]=parseFloat(s[3]),r[4]=parseFloat(s[4]),r[5]=parseFloat(s[5])}}e.setLocalTransform(r)}}(t,e),I(o,function(t){var e=t.getAttribute("style"),n={};if(!e)return n;var i,r={};AM.lastIndex=0;for(;null!=(i=AM.exec(e));)r[i[1]]=i[2];for(var o in SM)SM.hasOwnProperty(o)&&null!=r[o]&&(n[SM[o]]=r[o]);return n}(t)),!i))for(var a in SM)if(SM.hasOwnProperty(a)){var s=t.getAttribute(a);null!=s&&(o[SM[a]]=s)}r.style=r.style||{},null!=o.fill&&(r.style.fill=TM(o.fill,n)),null!=o.stroke&&(r.style.stroke=TM(o.stroke,n)),P(["lineWidth","opacity","fillOpacity","strokeOpacity","miterLimit","fontSize"],(function(t){null!=o[t]&&(r.style[t]=parseFloat(o[t]))})),o.textBaseline&&"auto"!==o.textBaseline||(o.textBaseline="alphabetic"),"alphabetic"===o.textBaseline&&(o.textBaseline="bottom"),"start"===o.textAlign&&(o.textAlign="left"),"end"===o.textAlign&&(o.textAlign="right"),P(["lineDashOffset","lineCap","lineJoin","fontWeight","fontFamily","fontStyle","textAlign","textBaseline"],(function(t){null!=o[t]&&(r.style[t]=o[t])})),o.lineDash&&(r.style.lineDash=O(ot(o.lineDash).split(mM),(function(t){return parseFloat(t)}))),r.__inheritedStyle=o}var IM=/url\(\s*#(.*?)\)/;function TM(t,e){var n=e&&t&&t.match(IM);return n?e[ot(n[1])]:t}var CM=/(translate|scale|rotate|skewX|skewY|matrix)\(([\-\s0-9\.e,]*)\)/g;var AM=/([^\s:;]+)\s*:\s*([^:;]+)/g;function DM(t,e,n){var i=e/t.width,r=n/t.height,o=Math.min(i,r);return{scale:o,x:-(t.x+t.width/2)*o+e/2,y:-(t.y+t.height/2)*o+n/2}}var LM=Lr();function kM(t,e){var n,i,r,o,a=t.svgXML;try{rt(null!=(i=(n=a&&(r=a,o={ignoreViewBox:!0,ignoreRootClip:!0},(new _M).parse(r,o))||{}).root))}catch(t){throw new Error("Invalid svg format\n"+t.message)}var s=n.width,l=n.height,u=n.viewBoxRect;if(e||(e=null==s||null==l?i.getBoundingRect():new Rn(0,0,0,0),null!=s&&(e.width=s),null!=l&&(e.height=l)),u){var h=DM(u,e.width,e.height),c=i;(i=new zi).add(c),c.scaleX=c.scaleY=h.scale,c.x=h.x,c.y=h.y}return i.setClipPath(new os({shape:e.plain()})),{root:i,boundingRect:e}}var PM={geoJSON:gM,svg:{load:function(t,e){var n=LM(e).originRoot;if(n)return{root:n,boundingRect:LM(e).boundingRect};var i=kM(e);return LM(e).originRoot=i.root,LM(e).boundingRect=i.boundingRect,i},makeGraphic:function(t,e,n){var i=LM(e),r=i.rootMap||(i.rootMap=ht()),o=r.get(n);if(o)return o;var a=i.originRoot,s=i.boundingRect;return i.originRootHostKey?o=kM(e,s).root:(i.originRootHostKey=n,o=a),r.set(n,o)},removeGraphic:function(t,e,n){var i=LM(e),r=i.rootMap;r&&r.removeKey(n),n===i.originRootHostKey&&(i.originRootHostKey=null)}}},OM=function(t,e,n){var i,r=[],o=ht(),a=ht();return P(EM(t),(function(s){var l=PM[s.type].load(t,s,n);P(l.regions,(function(t){var n=t.name;e&&e.hasOwnProperty(n)&&(t=t.cloneShallow(n=e[n])),r.push(t),o.set(n,t),a.set(n,t.center)}));var u=l.boundingRect;u&&(i?i.union(u):i=u.clone())})),{regions:r,regionsMap:o,nameCoordMap:a,boundingRect:i||new Rn(0,0,0,0)}},RM=function(t,e){var n=EM(t),i=[];return P(n,(function(n){var r=PM[n.type].makeGraphic;r&&i.push(r(t,n,e))})),i},NM=function(t,e){P(EM(t),(function(n){var i=PM[n.type].makeGraphic;i&&i(t,n,e)}))};function EM(t){var e=lg(t)||[];return e}function zM(t){var e=t.getItemStyle(),n=t.get("areaColor");return null!=n&&(e.fill=n),e}var BM=function(){function t(t){var e=new zi;this.uid=Ih("ec_map_draw"),this._controller=new QS(t.getZr()),this._controllerHost={target:e},this.group=e,e.add(this._regionsGroup=new zi),e.add(this._backgroundGroup=new zi)}return t.prototype.draw=function(t,e,n,i,r){var o="geo"===t.mainType,a=t.getData&&t.getData();o&&e.eachComponent({mainType:"series",subType:"map"},(function(e){a||e.getHostGeoModel()!==t||(a=e.getData())}));var s=t.coordinateSystem;this._updateBackground(s);var l,u,h=this._regionsGroup,c=this.group,p=s.getTransformInfo(),d=!h.childAt(0)||r;if(d)c.transform=p.roamTransform,c.decomposeTransform(),c.dirty();else{var f=new ke;f.transform=p.roamTransform,f.decomposeTransform();var g={scaleX:f.scaleX,scaleY:f.scaleY,x:f.x,y:f.y};l=f.scaleX,u=f.scaleY,Ou(c,g,t)}h.removeAll();var y=ht(),v=a&&a.getVisual("visualMeta")&&a.getVisual("visualMeta").length>0;P(s.regions,(function(e){var i=y.get(e.name)||y.set(e.name,new zi),r=new su({segmentIgnoreThreshold:1,shape:{paths:[]}});i.add(r);var s,f=t.getRegionModel(e.name)||t,g=f.getModel("itemStyle"),m=f.getModel("emphasis"),_=m.getModel("itemStyle"),x=f.getModel(["blur","itemStyle"]),b=f.getModel(["select","itemStyle"]),w=zM(g),S=zM(_),M=zM(x),I=zM(b);if(a){s=a.indexOfName(e.name);var T=a.getItemVisual(s,"style"),C=a.getItemVisual(s,"decal");v&&T.fill&&(w.fill=T.fill),C&&(w.decal=ky(C,n))}var A=p.rawScaleX,D=p.rawScaleY,L=p.rawX,k=p.rawY,O=function(t){return[t[0]*A+L,t[1]*D+k]};P(e.geometries,(function(t){if("polygon"===t.type){for(var e=[],n=0;n<t.exterior.length;++n)e.push(O(t.exterior[n]));r.shape.paths.push(new ql({segmentIgnoreThreshold:1,shape:{points:e}}));for(n=0;n<(t.interiors?t.interiors.length:0);++n){for(var i=t.interiors[n],o=[],a=0;a<i.length;++a)o.push(O(i[a]));r.shape.paths.push(new ql({segmentIgnoreThreshold:1,shape:{points:o}}))}}})),r.setStyle(w),r.style.strokeNoScale=!0,r.culling=!0,r.ensureState("emphasis").style=S,r.ensureState("blur").style=M,r.ensureState("select").style=I;for(var R=!1,N=0;N<bs.length;N++){var E=bs[N];if(f.get("normal"===E?["label","show"]:[E,"label","show"])){R=!0;break}}var z=a&&isNaN(a.get(a.mapDimension("value"),s)),B=a&&a.getItemLayout(s);if(o||z&&R||B&&B.showLabel){var V=o?e.name:s,F=void 0;(!a||s>=0)&&(F=t);var G=O(e.center),H=new ls({x:G[0],y:G[1],scaleX:1/c.scaleX,scaleY:1/c.scaleY,z2:10,silent:!0});th(H,eh(f),{labelFetcher:F,labelDataIndex:V,defaultText:e.name},{normal:{align:"center",verticalAlign:"middle"}}),r.setTextContent(H),r.setTextConfig({local:!0}),r.disableLabelAnimation=!0,d||Ou(H,{scaleX:1/l,scaleY:1/u},t)}if(a)a.setItemGraphicEl(s,i);else{var W=t.getRegionModel(e.name);ys(r).eventData={componentType:"geo",componentIndex:t.componentIndex,geoIndex:t.componentIndex,name:e.name,region:W&&W.option||{}}}(i.__regions||(i.__regions=[])).push(e),i.highDownSilentOnTouch=!!t.get("selectedMode"),Js(i,m.get("focus"),m.get("blurScope")),h.add(i)})),this._updateController(t,e,n),this._updateMapSelectHandler(t,h,n,i)},t.prototype.remove=function(){this._regionsGroup.removeAll(),this._backgroundGroup.removeAll(),this._controller.dispose(),this._mapName&&NM(this._mapName,this.uid),this._mapName=null,this._controllerHost=null},t.prototype._updateBackground=function(t){var e=t.map;this._mapName!==e&&P(RM(e,this.uid),(function(t){this._backgroundGroup.add(t)}),this),this._mapName=e},t.prototype._updateController=function(t,e,n){var i=t.coordinateSystem,r=this._controller,o=this._controllerHost;o.zoomLimit=t.get("scaleLimit"),o.zoom=i.getZoom(),r.enable(t.get("roam")||!1);var a=t.mainType;function s(){var e={type:"geoRoam",componentType:a};return e[a+"Id"]=t.id,e}r.off("pan").on("pan",(function(t){this._mouseDownFlag=!1,iM(o,t.dx,t.dy),n.dispatchAction(I(s(),{dx:t.dx,dy:t.dy}))}),this),r.off("zoom").on("zoom",(function(t){this._mouseDownFlag=!1,rM(o,t.scale,t.originX,t.originY),n.dispatchAction(I(s(),{zoom:t.scale,originX:t.originX,originY:t.originY}));var e=this.group;this._regionsGroup.traverse((function(t){var n=t.getTextContent();n&&(n.scaleX=1/e.scaleX,n.scaleY=1/e.scaleY,n.markRedraw())}))}),this),r.setPointerChecker((function(e,r,o){return i.getViewRectAfterRoam().contain(r,o)&&!aM(e,n,t)}))},t.prototype._updateMapSelectHandler=function(t,e,n,i){var r=this;e.off("mousedown"),t.get("selectedMode")&&(e.on("mousedown",(function(){r._mouseDownFlag=!0})),e.on("click",(function(t){r._mouseDownFlag&&(r._mouseDownFlag=!1)})))},t}(),VM=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n,i){if(!i||"mapToggleSelect"!==i.type||i.from!==this.uid){var r=this.group;if(r.removeAll(),!t.getHostGeoModel()){if(i&&"geoRoam"===i.type&&"series"===i.componentType&&i.seriesId===t.id)(o=this._mapDraw)&&r.add(o.group);else if(t.needsDrawMap){var o=this._mapDraw||new BM(n);r.add(o.group),o.draw(t,e,n,this,i),this._mapDraw=o}else this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null;t.get("showLegendSymbol")&&e.getComponent("legend")&&this._renderSymbols(t,e,n)}}},e.prototype.remove=function(){this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null,this.group.removeAll()},e.prototype.dispose=function(){this._mapDraw&&this._mapDraw.remove(),this._mapDraw=null},e.prototype._renderSymbols=function(t,e,n){var i=t.originalData,r=this.group;i.each(i.mapDimension("value"),(function(e,n){if(!isNaN(e)){var o=i.getItemLayout(n);if(o&&o.point){var a=o.point,s=o.offset,l=new Tl({style:{fill:t.getData().getVisual("style").fill},shape:{cx:a[0]+9*s,cy:a[1],r:3},silent:!0,z2:8+(s?0:11)});if(!s){var u=t.mainSeries.getData(),h=i.getName(n),c=u.indexOfName(h),p=i.getItemModel(n),d=p.getModel("label"),f=u.getItemGraphicEl(c);th(l,eh(p),{labelFetcher:{getFormattedLabel:function(e,n){return t.getFormattedLabel(c,n)}}}),l.disableLabelAnimation=!0,d.get("position")||l.setTextConfig({position:"bottom"}),f.onHoverStateChange=function(t){l.useState(t)}}r.add(l)}}}))},e.type="map",e}(yf),FM=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.needsDrawMap=!1,n.seriesGroup=[],n.getTooltipPosition=function(t){if(null!=t){var e=this.getData().getName(t),n=this.coordinateSystem,i=n.getRegion(e);return i&&n.dataToPoint(i.center)}},n}return n(e,t),e.prototype.getInitialData=function(t){for(var e=Rw(this,{coordDimensions:["value"],encodeDefaulter:V(Qc,this)}),n=ht(),i=[],r=0,o=e.count();r<o;r++){var a=e.getName(r);n.set(a,!0)}return P(OM(this.getMapType(),this.option.nameMap,this.option.nameProperty).regions,(function(t){var e=t.name;n.get(e)||i.push(e)})),e.appendValues([],i),e},e.prototype.getHostGeoModel=function(){var t=this.option.geoIndex;return null!=t?this.ecModel.getComponent("geo",t):null},e.prototype.getMapType=function(){return(this.getHostGeoModel()||this).option.map},e.prototype.getRawValue=function(t){var e=this.getData();return e.get(e.mapDimension("value"),t)},e.prototype.getRegionModel=function(t){var e=this.getData();return e.getItemModel(e.indexOfName(t))},e.prototype.formatTooltip=function(t,e,n){for(var i=this.getData(),r=this.getRawValue(t),o=i.getName(t),a=this.seriesGroup,s=[],l=0;l<a.length;l++){var u=a[l].originalData.indexOfName(o),h=i.mapDimension("value");isNaN(a[l].originalData.get(h,u))||s.push(a[l].name)}return Yd("section",{header:s.join(", "),noHeader:!s.length,blocks:[Yd("nameValue",{name:o,value:r})]})},e.prototype.setZoom=function(t){this.option.zoom=t},e.prototype.setCenter=function(t){this.option.center=t},e.type="series.map",e.dependencies=["geo"],e.layoutMode="box",e.defaultOption={zlevel:0,z:2,coordinateSystem:"geo",map:"",left:"center",top:"center",aspectScale:.75,showLegendSymbol:!0,boundingCoords:null,center:null,zoom:1,scaleLimit:null,selectedMode:!0,label:{show:!1,color:"#000"},itemStyle:{borderWidth:.5,borderColor:"#444",areaColor:"#eee"},emphasis:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{areaColor:"rgba(255,215,0,0.8)"}},select:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{color:"rgba(255,215,0,0.8)"}},nameProperty:"name"},e}(rf);function GM(t){var e={};t.eachSeriesByType("map",(function(t){var n=t.getHostGeoModel(),i=n?"o"+n.id:"i"+t.getMapType();(e[i]=e[i]||[]).push(t)})),P(e,(function(t,e){for(var n,i,r,o=(n=O(t,(function(t){return t.getData()})),i=t[0].get("mapValueCalculation"),r={},P(n,(function(t){t.each(t.mapDimension("value"),(function(e,n){var i="ec-"+t.getName(n);r[i]=r[i]||[],isNaN(e)||r[i].push(e)}))})),n[0].map(n[0].mapDimension("value"),(function(t,e){for(var o="ec-"+n[0].getName(e),a=0,s=1/0,l=-1/0,u=r[o].length,h=0;h<u;h++)s=Math.min(s,r[o][h]),l=Math.max(l,r[o][h]),a+=r[o][h];return 0===u?NaN:"min"===i?s:"max"===i?l:"average"===i?a/u:a}))),a=0;a<t.length;a++)t[a].originalData=t[a].getData();for(a=0;a<t.length;a++)t[a].seriesGroup=t,t[a].needsDrawMap=0===a&&!t[a].getHostGeoModel(),t[a].setData(o.cloneShallow()),t[a].mainSeries=t[0]}))}function HM(t){var e={};t.eachSeriesByType("map",(function(n){var i=n.getMapType();if(!n.getHostGeoModel()&&!e[i]){var r={};P(n.seriesGroup,(function(e){var n=e.coordinateSystem,i=e.originalData;e.get("showLegendSymbol")&&t.getComponent("legend")&&i.each(i.mapDimension("value"),(function(t,e){var o=i.getName(e),a=n.getRegion(o);if(a&&!isNaN(t)){var s=r[o]||0,l=n.dataToPoint(a.center);r[o]=s+1,i.setItemLayout(e,{point:l,offset:s})}}))}));var o=n.getData();o.each((function(t){var e=o.getName(t),n=o.getItemLayout(t)||{};n.showLabel=!r[e],o.setItemLayout(t,n)})),e[i]=!0}}))}function WM(t,e){var n=t.isExpand?t.children:[],i=t.parentNode.children,r=t.hierNode.i?i[t.hierNode.i-1]:null;if(n.length){!function(t){var e=t.children,n=e.length,i=0,r=0;for(;--n>=0;){var o=e[n];o.hierNode.prelim+=i,o.hierNode.modifier+=i,r+=o.hierNode.change,i+=o.hierNode.shift+r}}(t);var o=(n[0].hierNode.prelim+n[n.length-1].hierNode.prelim)/2;r?(t.hierNode.prelim=r.hierNode.prelim+e(t,r),t.hierNode.modifier=t.hierNode.prelim-o):t.hierNode.prelim=o}else r&&(t.hierNode.prelim=r.hierNode.prelim+e(t,r));t.parentNode.hierNode.defaultAncestor=function(t,e,n,i){if(e){for(var r=t,o=t,a=o.parentNode.children[0],s=e,l=r.hierNode.modifier,u=o.hierNode.modifier,h=a.hierNode.modifier,c=s.hierNode.modifier;s=ZM(s),o=jM(o),s&&o;){r=ZM(r),a=jM(a),r.hierNode.ancestor=t;var p=s.hierNode.prelim+c-o.hierNode.prelim-u+i(s,o);p>0&&(KM(qM(s,t,n),t,p),u+=p,l+=p),c+=s.hierNode.modifier,u+=o.hierNode.modifier,l+=r.hierNode.modifier,h+=a.hierNode.modifier}s&&!ZM(r)&&(r.hierNode.thread=s,r.hierNode.modifier+=c-l),o&&!jM(a)&&(a.hierNode.thread=o,a.hierNode.modifier+=u-h,n=t)}return n}(t,r,t.parentNode.hierNode.defaultAncestor||i[0],e)}function YM(t){var e=t.hierNode.prelim+t.parentNode.hierNode.modifier;t.setLayout({x:e},!0),t.hierNode.modifier+=t.parentNode.hierNode.modifier}function XM(t){return arguments.length?t:$M}function UM(t,e){return t-=Math.PI/2,{x:e*Math.cos(t),y:e*Math.sin(t)}}function ZM(t){var e=t.children;return e.length&&t.isExpand?e[e.length-1]:t.hierNode.thread}function jM(t){var e=t.children;return e.length&&t.isExpand?e[0]:t.hierNode.thread}function qM(t,e,n){return t.hierNode.ancestor.parentNode===e.parentNode?t.hierNode.ancestor:n}function KM(t,e,n){var i=n/(e.hierNode.i-t.hierNode.i);e.hierNode.change-=i,e.hierNode.shift+=n,e.hierNode.modifier+=n,e.hierNode.prelim+=n,t.hierNode.change+=i}function $M(t,e){return t.parentNode===e.parentNode?1:2}var JM=Rt,QM=function(t){function e(e){var n=t.call(this)||this;return n.type="view",n.dimensions=["x","y"],n._roamTransformable=new ke,n._rawTransformable=new ke,n.name=e,n}return n(e,t),e.prototype.setBoundingRect=function(t,e,n,i){return this._rect=new Rn(t,e,n,i),this._rect},e.prototype.getBoundingRect=function(){return this._rect},e.prototype.setViewRect=function(t,e,n,i){this.transformTo(t,e,n,i),this._viewRect=new Rn(t,e,n,i)},e.prototype.transformTo=function(t,e,n,i){var r=this.getBoundingRect(),o=this._rawTransformable;o.transform=r.calculateTransform(new Rn(t,e,n,i)),o.decomposeTransform(),this._updateTransform()},e.prototype.setCenter=function(t){t&&(this._center=t,this._updateCenterAndZoom())},e.prototype.setZoom=function(t){t=t||1;var e=this.zoomLimit;e&&(null!=e.max&&(t=Math.min(e.max,t)),null!=e.min&&(t=Math.max(e.min,t))),this._zoom=t,this._updateCenterAndZoom()},e.prototype.getDefaultCenter=function(){var t=this.getBoundingRect();return[t.x+t.width/2,t.y+t.height/2]},e.prototype.getCenter=function(){return this._center||this.getDefaultCenter()},e.prototype.getZoom=function(){return this._zoom||1},e.prototype.getRoamTransform=function(){return this._roamTransformable.getLocalTransform()},e.prototype._updateCenterAndZoom=function(){var t=this._rawTransformable.getLocalTransform(),e=this._roamTransformable,n=this.getDefaultCenter(),i=this.getCenter(),r=this.getZoom();i=Rt([],i,t),n=Rt([],n,t),e.originX=i[0],e.originY=i[1],e.x=n[0]-i[0],e.y=n[1]-i[1],e.scaleX=e.scaleY=r,this._updateTransform()},e.prototype._updateTransform=function(){var t=this._roamTransformable,e=this._rawTransformable;e.parent=t,t.updateTransform(),e.updateTransform(),ye(this.transform||(this.transform=[]),e.transform||[1,0,0,1,0,0]),this._rawTransform=e.getLocalTransform(),this.invTransform=this.invTransform||[],be(this.invTransform,this.transform),this.decomposeTransform()},e.prototype.getTransformInfo=function(){var t=this._roamTransformable.transform,e=this._rawTransformable;return{roamTransform:t?nt(t):[1,0,0,1,0,0],rawScaleX:e.scaleX,rawScaleY:e.scaleY,rawX:e.x,rawY:e.y}},e.prototype.getViewRect=function(){return this._viewRect},e.prototype.getViewRectAfterRoam=function(){var t=this.getBoundingRect().clone();return t.applyTransform(this.transform),t},e.prototype.dataToPoint=function(t,e,n){var i=e?this._rawTransform:this.transform;return n=n||[],i?JM(n,t,i):vt(n,t)},e.prototype.pointToData=function(t){var e=this.invTransform;return e?JM([],t,e):[t[0],t[1]]},e.prototype.convertToPixel=function(t,e,n){var i=tI(e);return i===this?i.dataToPoint(n):null},e.prototype.convertFromPixel=function(t,e,n){var i=tI(e);return i===this?i.pointToData(n):null},e.prototype.containPoint=function(t){return this.getViewRectAfterRoam().contain(t[0],t[1])},e.dimensions=["x","y"],e}(ke);function tI(t){var e=t.seriesModel;return e?e.coordinateSystem:null}var eI=function(){this.parentPoint=[],this.childPoints=[]},nI=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new eI},e.prototype.buildPath=function(t,e){var n=e.childPoints,i=n.length,r=e.parentPoint,o=n[0],a=n[i-1];if(1===i)return t.moveTo(r[0],r[1]),void t.lineTo(o[0],o[1]);var s=e.orient,l="TB"===s||"BT"===s?0:1,u=1-l,h=Zi(e.forkPosition,1),c=[];c[l]=r[l],c[u]=r[u]+(a[u]-r[u])*h,t.moveTo(r[0],r[1]),t.lineTo(c[0],c[1]),t.moveTo(o[0],o[1]),c[l]=o[l],t.lineTo(c[0],c[1]),c[l]=a[l],t.lineTo(c[0],c[1]),t.lineTo(a[0],a[1]);for(var p=1;p<i-1;p++){var d=n[p];t.moveTo(d[0],d[1]),c[l]=d[l],t.lineTo(c[0],c[1])}},e}(Za),iI=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._mainGroup=new zi,n}return n(e,t),e.prototype.init=function(t,e){this._controller=new QS(e.getZr()),this._controllerHost={target:this.group},this.group.add(this._mainGroup)},e.prototype.render=function(t,e,n){var i=t.getData(),r=t.layoutInfo,o=this._mainGroup;"radial"===t.get("layout")?(o.x=r.x+r.width/2,o.y=r.y+r.height/2):(o.x=r.x,o.y=r.y),this._updateViewCoordSys(t),this._updateController(t,e,n);var a=this._data;i.diff(a).add((function(e){rI(i,e)&&oI(i,e,null,o,t)})).update((function(e,n){var r=a.getItemGraphicEl(n);rI(i,e)?oI(i,e,r,o,t):r&&aI(a,n,r,o,t)})).remove((function(e){var n=a.getItemGraphicEl(e);n&&aI(a,e,n,o,t)})).execute(),this._nodeScaleRatio=t.get("nodeScaleRatio"),this._updateNodeAndLinkScale(t),!0===t.get("expandAndCollapse")&&i.eachItemGraphicEl((function(e,i){e.off("click").on("click",(function(){n.dispatchAction({type:"treeExpandAndCollapse",seriesId:t.id,dataIndex:i})}))})),this._data=i},e.prototype._updateViewCoordSys=function(t){var e=t.getData(),n=[];e.each((function(t){var i=e.getItemLayout(t);!i||isNaN(i.x)||isNaN(i.y)||n.push([+i.x,+i.y])}));var i=[],r=[];ea(n,i,r);var o=this._min,a=this._max;r[0]-i[0]==0&&(i[0]=o?o[0]:i[0]-1,r[0]=a?a[0]:r[0]+1),r[1]-i[1]==0&&(i[1]=o?o[1]:i[1]-1,r[1]=a?a[1]:r[1]+1);var s=t.coordinateSystem=new QM;s.zoomLimit=t.get("scaleLimit"),s.setBoundingRect(i[0],i[1],r[0]-i[0],r[1]-i[1]),s.setCenter(t.get("center")),s.setZoom(t.get("zoom")),this.group.attr({x:s.x,y:s.y,scaleX:s.scaleX,scaleY:s.scaleY}),this._min=i,this._max=r},e.prototype._updateController=function(t,e,n){var i=this,r=this._controller,o=this._controllerHost,a=this.group;r.setPointerChecker((function(e,i,r){var o=a.getBoundingRect();return o.applyTransform(a.transform),o.contain(i,r)&&!aM(e,n,t)})),r.enable(t.get("roam")),o.zoomLimit=t.get("scaleLimit"),o.zoom=t.coordinateSystem.getZoom(),r.off("pan").off("zoom").on("pan",(function(e){iM(o,e.dx,e.dy),n.dispatchAction({seriesId:t.id,type:"treeRoam",dx:e.dx,dy:e.dy})})).on("zoom",(function(e){rM(o,e.scale,e.originX,e.originY),n.dispatchAction({seriesId:t.id,type:"treeRoam",zoom:e.scale,originX:e.originX,originY:e.originY}),i._updateNodeAndLinkScale(t),n.updateLabelLayout()}))},e.prototype._updateNodeAndLinkScale=function(t){var e=t.getData(),n=this._getNodeGlobalScale(t);e.eachItemGraphicEl((function(t,e){t.setSymbolScale(n)}))},e.prototype._getNodeGlobalScale=function(t){var e=t.coordinateSystem;if("view"!==e.type)return 1;var n=this._nodeScaleRatio,i=e.scaleX||1;return((e.getZoom()-1)*n+1)/i},e.prototype.dispose=function(){this._controller&&this._controller.dispose(),this._controllerHost=null},e.prototype.remove=function(){this._mainGroup.removeAll(),this._data=null},e.type="tree",e}(yf);function rI(t,e){var n=t.getItemLayout(e);return n&&!isNaN(n.x)&&!isNaN(n.y)}function oI(t,e,n,i,r){var o=!n,a=t.tree.getNodeByDataIndex(e),s=a.getModel(),l=a.getVisual("style").fill,u=!1===a.isExpand&&0!==a.children.length?l:"#fff",h=t.tree.root,c=a.parentNode===h?a:a.parentNode||a,p=t.getItemGraphicEl(c.dataIndex),d=c.getLayout(),f=p?{x:p.__oldX,y:p.__oldY,rawX:p.__radialOldRawX,rawY:p.__radialOldRawY}:d,g=a.getLayout();o?((n=new bb(t,e,null,{symbolInnerColor:u,useNameLabel:!0})).x=f.x,n.y=f.y):n.updateData(t,e,null,{symbolInnerColor:u,useNameLabel:!0}),n.__radialOldRawX=n.__radialRawX,n.__radialOldRawY=n.__radialRawY,n.__radialRawX=g.rawX,n.__radialRawY=g.rawY,i.add(n),t.setItemGraphicEl(e,n),n.__oldX=n.x,n.__oldY=n.y,Ou(n,{x:g.x,y:g.y},r);var y=n.getSymbolPath();if("radial"===r.get("layout")){var v=h.children[0],m=v.getLayout(),_=v.children.length,x=void 0,b=void 0;if(g.x===m.x&&!0===a.isExpand){var w={x:(v.children[0].getLayout().x+v.children[_-1].getLayout().x)/2,y:(v.children[0].getLayout().y+v.children[_-1].getLayout().y)/2};(x=Math.atan2(w.y-m.y,w.x-m.x))<0&&(x=2*Math.PI+x),(b=w.x<m.x)&&(x-=Math.PI)}else(x=Math.atan2(g.y-m.y,g.x-m.x))<0&&(x=2*Math.PI+x),0===a.children.length||0!==a.children.length&&!1===a.isExpand?(b=g.x<m.x)&&(x-=Math.PI):(b=g.x>m.x)||(x-=Math.PI);var S=b?"left":"right",M=s.getModel("label"),I=M.get("rotate"),C=I*(Math.PI/180),A=y.getTextContent();A&&(y.setTextConfig({position:M.get("position")||S,rotation:null==I?-x:C,origin:"center"}),A.setStyle("verticalAlign","middle"))}var D=s.get(["emphasis","focus"]),L="ancestor"===D?a.getAncestorsIndices():"descendant"===D?a.getDescendantIndices():null;L&&(ys(n).focus=L),function(t,e,n,i,r,o,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&&(g||(g=i.__edge=new ru({shape:sI(h,c,p,r,r)})),Ou(g,{shape:sI(h,c,p,o,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,v=[],m=0;m<y.length;m++){var _=y[m].getLayout();v.push([_.x,_.y])}g||(g=i.__edge=new nI({shape:{parentPoint:[a.x,a.y],childPoints:[[a.x,a.y]],orient:c,forkPosition:d}})),Ou(g,{shape:{parentPoint:[a.x,a.y],childPoints:v}},t)}}else 0;g&&(g.useStyle(T({strokeNoScale:!0,fill:null},f)),nl(g,l,"lineStyle"),Gs(g),s.add(g))}(r,a,h,n,f,d,g,i),n.__edge&&(n.onHoverStateChange=function(e){if("blur"!==e){var i=a.parentNode&&t.getItemGraphicEl(a.parentNode.dataIndex);i&&1===i.hoverState||Vs(n.__edge,e)}})}function aI(t,e,n,i,r){for(var o,a=t.tree.getNodeByDataIndex(e),s=t.tree.root,l=a.parentNode===s?a:a.parentNode||a;null==(o=l.getLayout());)l=l.parentNode===s?l:l.parentNode||l;var u={duration:r.get("animationDurationUpdate"),easing:r.get("animationEasingUpdate")};Nu(n,{x:o.x+1,y:o.y+1},r,{cb:function(){i.remove(n),t.setItemGraphicEl(e,null)},removeOpt:u}),n.fadeOut(null,{fadeLabel:!0,animation:u});var h=t.getItemGraphicEl(l.dataIndex).__edge,c=n.__edge||(!1===l.isExpand||1===l.children.length?h:void 0),p=r.get("edgeShape"),d=r.get("layout"),f=r.get("orient"),g=r.get(["lineStyle","curveness"]);c&&("curve"===p?Nu(c,{shape:sI(d,f,g,o,o),style:{opacity:0}},r,{cb:function(){i.remove(c)},removeOpt:u}):"polyline"===p&&"orthogonal"===r.get("layout")&&Nu(c,{shape:{parentPoint:[o.x,o.y],childPoints:[[o.x,o.y]]},style:{opacity:0}},r,{cb:function(){i.remove(c)},removeOpt:u}))}function sI(t,e,n,i,r){var o,a,s,l,u,h,c,p;if("radial"===t){u=i.rawX,c=i.rawY,h=r.rawX,p=r.rawY;var d=UM(u,c),f=UM(u,c+(p-c)*n),g=UM(h,p+(c-p)*n),y=UM(h,p);return{x1:d.x||0,y1:d.y||0,x2:y.x||0,y2:y.y||0,cpx1:f.x||0,cpy1:f.y||0,cpx2:g.x||0,cpy2:g.y||0}}return u=i.x,c=i.y,h=r.x,p=r.y,"LR"!==e&&"RL"!==e||(o=u+(h-u)*n,a=c,s=h+(u-h)*n,l=p),"TB"!==e&&"BT"!==e||(o=u,a=c+(p-c)*n,s=h,l=p+(c-p)*n),{x1:u,y1:c,x2:h,y2:p,cpx1:o,cpy1:a,cpx2:s,cpy2:l}}var lI=Lr();function uI(t){var e=t.mainData,n=t.datas;n||(n={main:e},t.datasAttr={main:"data"}),t.datas=t.mainData=null,gI(e,n,t),P(n,(function(n){P(e.TRANSFERABLE_METHODS,(function(e){n.wrapMethod(e,V(hI,t))}))})),e.wrapMethod("cloneShallow",V(pI,t)),P(e.CHANGABLE_METHODS,(function(n){e.wrapMethod(n,V(cI,t))})),rt(n[e.dataType]===e)}function hI(t,e){if(lI(i=this).mainData===i){var n=I({},lI(this).datas);n[this.dataType]=e,gI(e,n,t)}else yI(e,this.dataType,lI(this).mainData,t);var i;return e}function cI(t,e){return t.struct&&t.struct.update(),e}function pI(t,e){return P(lI(e).datas,(function(n,i){n!==e&&yI(n.cloneShallow(),i,e,t)})),e}function dI(t){var e=lI(this).mainData;return null==t||null==e?e:lI(e).datas[t]}function fI(){var t=lI(this).mainData;return null==t?[{data:t}]:O(z(lI(t).datas),(function(e){return{type:e,data:lI(t).datas[e]}}))}function gI(t,e,n){lI(t).datas={},P(e,(function(e,i){yI(e,i,t,n)}))}function yI(t,e,n,i){lI(n).datas[e]=t,lI(t).mainData=n,t.dataType=e,i.struct&&(t[i.structAttr]=i.struct,i.struct[i.datasAttr[e]]=t),t.getLinkedData=dI,t.getLinkedDataAll=fI}var vI=function(){function t(t,e){this.depth=0,this.height=0,this.dataIndex=-1,this.children=[],this.viewChildren=[],this.isExpand=!1,this.name=t||"",this.hostTree=e}return t.prototype.isRemoved=function(){return this.dataIndex<0},t.prototype.eachNode=function(t,e,n){"function"==typeof t&&(n=e,e=t,t=null),H(t=t||{})&&(t={order:t});var i,r=t.order||"preorder",o=this[t.attr||"children"];"preorder"===r&&(i=e.call(n,this));for(var a=0;!i&&a<o.length;a++)o[a].eachNode(t,e,n);"postorder"===r&&e.call(n,this)},t.prototype.updateDepthAndHeight=function(t){var e=0;this.depth=t;for(var n=0;n<this.children.length;n++){var i=this.children[n];i.updateDepthAndHeight(t+1),i.height>e&&(e=i.height)}this.height=e+1},t.prototype.getNodeById=function(t){if(this.getId()===t)return this;for(var e=0,n=this.children,i=n.length;e<i;e++){var r=n[e].getNodeById(t);if(r)return r}},t.prototype.contains=function(t){if(t===this)return!0;for(var e=0,n=this.children,i=n.length;e<i;e++){var r=n[e].contains(t);if(r)return r}},t.prototype.getAncestors=function(t){for(var e=[],n=t?this:this.parentNode;n;)e.push(n),n=n.parentNode;return e.reverse(),e},t.prototype.getAncestorsIndices=function(){for(var t=[],e=this;e;)t.push(e.dataIndex),e=e.parentNode;return t.reverse(),t},t.prototype.getDescendantIndices=function(){var t=[];return this.eachNode((function(e){t.push(e.dataIndex)})),t},t.prototype.getValue=function(t){var e=this.hostTree.data;return e.get(e.getDimension(t||"value"),this.dataIndex)},t.prototype.setLayout=function(t,e){this.dataIndex>=0&&this.hostTree.data.setItemLayout(this.dataIndex,t,e)},t.prototype.getLayout=function(){return this.hostTree.data.getItemLayout(this.dataIndex)},t.prototype.getModel=function(t){if(!(this.dataIndex<0))return this.hostTree.data.getItemModel(this.dataIndex).getModel(t)},t.prototype.getLevelModel=function(){return(this.hostTree.levelModels||[])[this.depth]},t.prototype.setVisual=function(t,e){this.dataIndex>=0&&this.hostTree.data.setItemVisual(this.dataIndex,t,e)},t.prototype.getVisual=function(t){return this.hostTree.data.getItemVisual(this.dataIndex,t)},t.prototype.getRawIndex=function(){return this.hostTree.data.getRawIndex(this.dataIndex)},t.prototype.getId=function(){return this.hostTree.data.getId(this.dataIndex)},t.prototype.isAncestorOf=function(t){for(var e=t.parentNode;e;){if(e===this)return!0;e=e.parentNode}return!1},t.prototype.isDescendantOf=function(t){return t!==this&&t.isAncestorOf(this)},t}(),mI=function(){function t(t){this.type="tree",this._nodes=[],this.hostModel=t}return t.prototype.eachNode=function(t,e,n){this.root.eachNode(t,e,n)},t.prototype.getNodeByDataIndex=function(t){var e=this.data.getRawIndex(t);return this._nodes[e]},t.prototype.getNodeById=function(t){return this.root.getNodeById(t)},t.prototype.update=function(){for(var t=this.data,e=this._nodes,n=0,i=e.length;n<i;n++)e[n].dataIndex=-1;for(n=0,i=t.count();n<i;n++)e[t.getRawIndex(n)].dataIndex=n},t.prototype.clearLayouts=function(){this.data.clearItemLayouts()},t.createTree=function(e,n,i){var r=new t(n),o=[],a=1;!function t(e,n){var i=e.value;a=Math.max(a,F(i)?i.length:1),o.push(e);var s=new vI(Tr(e.name,""),r);n?function(t,e){var n=e.children;if(t.parentNode===e)return;n.push(t),t.parentNode=e}(s,n):r.root=s,r._nodes.push(s);var l=e.children;if(l)for(var u=0;u<l.length;u++)t(l[u],s)}(e),r.root.updateDepthAndHeight(0);var s=Nm(o,{coordDimensions:["value"],dimensionsCount:a}),l=new Pm(s,n);return l.initData(o),i&&i(l),uI({mainData:l,struct:r,structAttr:"tree"}),r.update(),r},t}();var _I=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.hasSymbolVisual=!0,e.ignoreStyleOnData=!0,e}return n(e,t),e.prototype.getInitialData=function(t){var e={name:t.name,children:t.data},n=t.leaves||{},i=new Sh(n,this,this.ecModel),r=mI.createTree(e,this,(function(t){t.wrapMethod("getItemModel",(function(t,e){var n=r.getNodeByDataIndex(e);return n.children.length&&n.isExpand||(t.parentModel=i),t}))}));var o=0;r.eachNode("preorder",(function(t){t.depth>o&&(o=t.depth)}));var a=t.expandAndCollapse&&t.initialTreeDepth>=0?t.initialTreeDepth:o;return r.root.eachNode("preorder",(function(t){var e=t.hostTree.data.getRawDataItem(t.dataIndex);t.isExpand=e&&null!=e.collapsed?!e.collapsed:t.depth<=a})),r.data},e.prototype.getOrient=function(){var t=this.get("orient");return"horizontal"===t?t="LR":"vertical"===t&&(t="TB"),t},e.prototype.setZoom=function(t){this.option.zoom=t},e.prototype.setCenter=function(t){this.option.center=t},e.prototype.formatTooltip=function(t,e,n){for(var i=this.getData().tree,r=i.root.children[0],o=i.getNodeByDataIndex(t),a=o.getValue(),s=o.name;o&&o!==r;)s=o.parentNode.name+"."+s,o=o.parentNode;return Yd("nameValue",{name:s,value:a,noValue:isNaN(a)||null==a})},e.type="series.tree",e.layoutMode="box",e.defaultOption={zlevel:0,z:2,coordinateSystem:"view",left:"12%",top:"12%",right:"12%",bottom:"12%",layout:"orthogonal",edgeShape:"curve",edgeForkPosition:"50%",roam:!1,nodeScaleRatio:.4,center:null,zoom:1,orient:"LR",symbol:"emptyCircle",symbolSize:7,expandAndCollapse:!0,initialTreeDepth:2,lineStyle:{color:"#ccc",width:1.5,curveness:.5},itemStyle:{color:"lightsteelblue",borderColor:"#c23531",borderWidth:1.5},label:{show:!0},animationEasing:"linear",animationDuration:700,animationDurationUpdate:500},e}(rf);function xI(t,e){for(var n,i=[t];n=i.pop();)if(e(n),n.isExpand){var r=n.children;if(r.length)for(var o=r.length-1;o>=0;o--)i.push(r[o])}}function bI(t,e){t.eachSeriesByType("tree",(function(t){!function(t,e){var n=function(t,e){return Ac(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}(t,e);t.layoutInfo=n;var i=t.get("layout"),r=0,o=0,a=null;"radial"===i?(r=2*Math.PI,o=Math.min(n.height,n.width)/2,a=XM((function(t,e){return(t.parentNode===e.parentNode?1:2)/t.depth}))):(r=n.width,o=n.height,a=XM());var s=t.getData().tree.root,l=s.children[0];if(l){!function(t){var e=t;e.hierNode={defaultAncestor:null,ancestor:e,prelim:0,modifier:0,change:0,shift:0,i:0,thread:null};for(var n,i,r=[e];n=r.pop();)if(i=n.children,n.isExpand&&i.length)for(var o=i.length-1;o>=0;o--){var a=i[o];a.hierNode={defaultAncestor:null,ancestor:a,prelim:0,modifier:0,change:0,shift:0,i:o,thread:null},r.push(a)}}(s),function(t,e,n){for(var i,r=[t],o=[];i=r.pop();)if(o.push(i),i.isExpand){var a=i.children;if(a.length)for(var s=0;s<a.length;s++)r.push(a[s])}for(;i=o.pop();)e(i,n)}(l,WM,a),s.hierNode.modifier=-l.hierNode.prelim,xI(l,YM);var u=l,h=l,c=l;xI(l,(function(t){var e=t.getLayout().x;e<u.getLayout().x&&(u=t),e>h.getLayout().x&&(h=t),t.depth>c.depth&&(c=t)}));var p=u===h?1:a(u,h)/2,d=p-u.getLayout().x,f=0,g=0,y=0,v=0;if("radial"===i)f=r/(h.getLayout().x+p+d),g=o/(c.depth-1||1),xI(l,(function(t){y=(t.getLayout().x+d)*f,v=(t.depth-1)*g;var e=UM(y,v);t.setLayout({x:e.x,y:e.y,rawX:y,rawY:v},!0)}));else{var m=t.getOrient();"RL"===m||"LR"===m?(g=o/(h.getLayout().x+p+d),f=r/(c.depth-1||1),xI(l,(function(t){v=(t.getLayout().x+d)*g,y="LR"===m?(t.depth-1)*f:r-(t.depth-1)*f,t.setLayout({x:y,y:v},!0)}))):"TB"!==m&&"BT"!==m||(f=r/(h.getLayout().x+p+d),g=o/(c.depth-1||1),xI(l,(function(t){y=(t.getLayout().x+d)*f,v="TB"===m?(t.depth-1)*g:o-(t.depth-1)*g,t.setLayout({x:y,y:v},!0)})))}}}(t,e)}))}function wI(t){t.eachSeriesByType("tree",(function(t){var e=t.getData();e.tree.eachNode((function(t){var n=t.getModel().getModel("itemStyle").getItemStyle();I(e.ensureUniqueItemVisual(t.dataIndex,"style"),n)}))}))}function SI(t,e,n){var i=t.getZoom(),r=t.getCenter(),o=e.zoom,a=t.dataToPoint(r);if(null!=e.dx&&null!=e.dy&&(a[0]-=e.dx,a[1]-=e.dy,t.setCenter(t.pointToData(a))),null!=o){if(n){var s=n.min||0,l=n.max||1/0;o=Math.max(Math.min(i*o,l),s)/i}t.scaleX*=o,t.scaleY*=o;var u=(e.originX-t.x)*(o-1),h=(e.originY-t.y)*(o-1);t.x-=u,t.y-=h,t.updateTransform(),t.setCenter(t.pointToData(a)),t.setZoom(o*i)}return{center:t.getCenter(),zoom:t.getZoom()}}function MI(t,e,n){if(t&&A(e,t.type)>=0){var i=n.getData().tree.root,r=t.targetNode;if("string"==typeof r&&(r=i.getNodeById(r)),r&&i.contains(r))return{node:r};var o=t.targetNodeId;if(null!=o&&(r=i.getNodeById(o)))return{node:r}}}function II(t){for(var e=[];t;)(t=t.parentNode)&&e.push(t);return e.reverse()}function TI(t,e){return A(II(t),e)>=0}function CI(t,e){for(var n=[];t;){var i=t.dataIndex;n.push({name:t.name,dataIndex:i,value:e.getRawValue(i)}),t=t.parentNode}return n.reverse(),n}var AI=function(){},DI=["treemapZoomToNode","treemapRender","treemapMove"];function LI(t){var e=t.getData().tree,n={};e.eachNode((function(e){for(var i=e;i&&i.depth>1;)i=i.parentNode;var r=hp(t.ecModel,i.name||i.dataIndex+"",n);e.setVisual("decal",r)}))}var kI=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.preventUsingHoverLayer=!0,n}return n(e,t),e.prototype.getInitialData=function(t,e){var n={name:t.name,children:t.data};PI(n);var i=t.levels||[],r=this.designatedVisualItemStyle={},o=new Sh({itemStyle:r},this,e),a=O((i=t.levels=function(t,e){var n,i,r=_r(e.get("color")),o=_r(e.get(["aria","decal","decals"]));if(!r)return;P(t=t||[],(function(t){var e=new Sh(t),r=e.get("color"),o=e.get("decal");(e.get(["itemStyle","color"])||r&&"none"!==r)&&(n=!0),(e.get(["itemStyle","decal"])||o&&"none"!==o)&&(i=!0)}));var a=t[0]||(t[0]={});n||(a.color=r.slice());!i&&o&&(a.decal=o.slice());return t}(i,e))||[],(function(t){return new Sh(t,o,e)}),this),s=mI.createTree(n,this,(function(t){t.wrapMethod("getItemModel",(function(t,e){var n=s.getNodeByDataIndex(e),i=a[n.depth];return t.parentModel=i||o,t}))}));return s.data},e.prototype.optionUpdated=function(){this.resetViewRoot()},e.prototype.formatTooltip=function(t,e,n){var i=this.getData(),r=this.getRawValue(t);return Yd("nameValue",{name:i.getName(t),value:r})},e.prototype.getDataParams=function(e){var n=t.prototype.getDataParams.apply(this,arguments),i=this.getData().tree.getNodeByDataIndex(e);return n.treePathInfo=CI(i,this),n},e.prototype.setLayoutInfo=function(t){this.layoutInfo=this.layoutInfo||{},I(this.layoutInfo,t)},e.prototype.mapIdToIndex=function(t){var e=this._idIndexMap;e||(e=this._idIndexMap=ht(),this._idIndexMapCount=0);var n=e.get(t);return null==n&&e.set(t,n=this._idIndexMapCount++),n},e.prototype.getViewRoot=function(){return this._viewRoot},e.prototype.resetViewRoot=function(t){t?this._viewRoot=t:t=this._viewRoot;var e=this.getRawData().tree.root;t&&(t===e||e.contains(t))||(this._viewRoot=e)},e.prototype.enableAriaDecal=function(){LI(this)},e.type="series.treemap",e.layoutMode="box",e.defaultOption={progressive:0,left:"center",top:"middle",width:"80%",height:"80%",sort:!0,clipWindow:"origin",squareRatio:.5*(1+Math.sqrt(5)),leafDepth:null,drillDownIcon:"▶",zoomToNodeRatio:.1024,roam:!0,nodeClick:"zoomToNode",animation:!0,animationDurationUpdate:900,animationEasing:"quinticInOut",breadcrumb:{show:!0,height:22,left:"center",top:"bottom",emptyItemWidth:25,itemStyle:{color:"rgba(0,0,0,0.7)",textStyle:{color:"#fff"}}},label:{show:!0,distance:0,padding:5,position:"inside",color:"#fff",overflow:"truncate"},upperLabel:{show:!1,position:[0,"50%"],height:20,overflow:"truncate",verticalAlign:"middle"},itemStyle:{color:null,colorAlpha:null,colorSaturation:null,borderWidth:0,gapWidth:0,borderColor:"#fff",borderColorSaturation:null},emphasis:{upperLabel:{show:!0,position:[0,"50%"],ellipsis:!0,verticalAlign:"middle"}},visualDimension:0,visualMin:null,visualMax:null,color:[],colorAlpha:null,colorSaturation:null,colorMappingBy:"index",visibleMin:10,childrenVisibleMin:null,levels:[]},e}(rf);function PI(t){var e=0;P(t.children,(function(t){PI(t);var n=t.value;F(n)&&(n=n[0]),e+=n}));var n=t.value;F(n)&&(n=n[0]),(null==n||isNaN(n))&&(n=e),n<0&&(n=0),F(t.value)?t.value[0]=n:t.value=n}var OI=function(){function t(t){this.group=new zi,t.add(this.group)}return t.prototype.render=function(t,e,n,i){var r=t.getModel("breadcrumb"),o=this.group;if(o.removeAll(),r.get("show")&&n){var a=r.getModel("itemStyle"),s=a.getModel("textStyle"),l={pos:{left:r.get("left"),right:r.get("right"),top:r.get("top"),bottom:r.get("bottom")},box:{width:e.getWidth(),height:e.getHeight()},emptyItemWidth:r.get("emptyItemWidth"),totalWidth:0,renderList:[]};this._prepare(n,l,s),this._renderContent(t,l,a,s,i),Dc(o,l.pos,l.box)}},t.prototype._prepare=function(t,e,n){for(var i=t;i;i=i.parentNode){var r=Tr(i.getModel().get("name"),""),o=n.getTextRect(r),a=Math.max(o.width+16,e.emptyItemWidth);e.totalWidth+=a+8,e.renderList.push({node:i,text:r,width:a})}},t.prototype._renderContent=function(t,e,n,i,r){for(var o,a,s,l,u,h,c,p,d,f=0,g=e.emptyItemWidth,y=t.get(["breadcrumb","height"]),v=(o=e.pos,a=e.box,l=a.width,u=a.height,h=Zi(o.left,l),c=Zi(o.top,u),p=Zi(o.right,l),d=Zi(o.bottom,u),(isNaN(h)||isNaN(parseFloat(o.left)))&&(h=0),(isNaN(p)||isNaN(parseFloat(o.right)))&&(p=l),(isNaN(c)||isNaN(parseFloat(o.top)))&&(c=0),(isNaN(d)||isNaN(parseFloat(o.bottom)))&&(d=u),s=pc(s||0),{width:Math.max(p-h-s[1]-s[3],0),height:Math.max(d-c-s[0]-s[2],0)}),m=e.totalWidth,_=e.renderList,x=_.length-1;x>=0;x--){var b=_[x],w=b.node,S=b.width,M=b.text;m>v.width&&(m-=S-g,S=g,M=null);var I=new ql({shape:{points:RI(f,0,S,y,x===_.length-1,0===x)},style:T(n.getItemStyle(),{lineJoin:"bevel"}),textContent:new ls({style:{text:M,fill:i.getTextColor(),font:i.getFont()}}),textConfig:{position:"inside"},z:10,onclick:V(r,w)});I.disableLabelAnimation=!0,this.group.add(I),NI(I,t,w),f+=S+8}},t.prototype.remove=function(){this.group.removeAll()},t}();function RI(t,e,n,i,r,o){var a=[[r?t:t-5,e],[t+n,e],[t+n,e+i],[r?t:t-5,e+i]];return!o&&a.splice(2,0,[t+n+5,e+i/2]),!r&&a.push([t,e+i/2]),a}function NI(t,e,n){ys(t).eventData={componentType:"series",componentSubType:"treemap",componentIndex:e.componentIndex,seriesIndex:e.componentIndex,seriesName:e.name,seriesType:"treemap",selfType:"breadcrumb",nodeData:{dataIndex:n&&n.dataIndex,name:n&&n.name},treePathInfo:n&&CI(n,e)}}var EI=function(){function t(){this._storage=[],this._elExistsMap={}}return t.prototype.add=function(t,e,n,i,r){return!this._elExistsMap[t.id]&&(this._elExistsMap[t.id]=!0,this._storage.push({el:t,target:e,duration:n,delay:i,easing:r}),!0)},t.prototype.finished=function(t){return this._finishedCallback=t,this},t.prototype.start=function(){for(var t=this,e=this._storage.length,n=function(){--e<=0&&(t._storage.length=0,t._elExistsMap={},t._finishedCallback&&t._finishedCallback())},i=0,r=this._storage.length;i<r;i++){var o=this._storage[i];o.el.animateTo(o.target,{duration:o.duration,delay:o.delay,easing:o.easing,setToFinal:!0,done:n,aborted:n})}return this},t}();var zI=zi,BI=os,VI="label",FI="upperLabel",GI=qr([["fill","color"],["stroke","strokeColor"],["lineWidth","strokeWidth"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"]]),HI=function(t){var e=GI(t);return e.stroke=e.fill=e.lineWidth=null,e},WI=Lr(),YI=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._state="ready",n._storage={nodeGroup:[],background:[],content:[]},n}return n(e,t),e.prototype.render=function(t,e,n,i){if(!(A(e.findComponents({mainType:"series",subType:"treemap",query:i}),t)<0)){this.seriesModel=t,this.api=n,this.ecModel=e;var r=MI(i,["treemapZoomToNode","treemapRootToNode"],t),o=i&&i.type,a=t.layoutInfo,s=!this._oldTree,l=this._storage,u="treemapRootToNode"===o&&r&&l?{rootNodeGroup:l.nodeGroup[r.node.getRawIndex()],direction:i.direction}:null,h=this._giveContainerGroup(a),c=this._doRender(h,t,u);s||o&&"treemapZoomToNode"!==o&&"treemapRootToNode"!==o?c.renderFinally():this._doAnimation(h,c,t,u),this._resetController(n),this._renderBreadcrumb(t,n,r)}},e.prototype._giveContainerGroup=function(t){var e=this._containerGroup;return e||(e=this._containerGroup=new zI,this._initEvents(e),this.group.add(e)),e.x=t.x,e.y=t.y,e},e.prototype._doRender=function(t,e,n){var i=e.getData().tree,r=this._oldTree,o={nodeGroup:[],background:[],content:[]},a={nodeGroup:[],background:[],content:[]},s=this._storage,l=[];function u(t,i,r,u){return function(t,e,n,i,r,o,a,s,l,u){if(!a)return;var h=a.getLayout(),c=t.getData(),p=a.getModel();if(c.setItemGraphicEl(a.dataIndex,null),!h||!h.isInView)return;var d=h.width,f=h.height,g=h.borderWidth,y=h.invisible,v=a.getRawIndex(),m=s&&s.getRawIndex(),_=a.viewChildren,x=h.upperHeight,b=_&&_.length,w=p.getModel("itemStyle"),S=p.getModel(["emphasis","itemStyle"]),M=p.getModel(["blur","itemStyle"]),T=p.getModel(["select","itemStyle"]),C=w.get("borderRadius")||0,A=V("nodeGroup",zI);if(!A)return;if(l.add(A),A.x=h.x||0,A.y=h.y||0,A.markRedraw(),WI(A).nodeWidth=d,WI(A).nodeHeight=f,h.isAboveViewRoot)return A;var D=V("background",BI,u,1);D&&R(A,D,b&&h.upperLabelHeight);var L=p.get(["emphasis","focus"]),k=p.get(["emphasis","blurScope"]),P="ancestor"===L?a.getAncestorsIndices():"descendant"===L?a.getDescendantIndices():null;if(b)rl(A)&&il(A,!1),D&&(il(D,!0),c.setItemGraphicEl(a.dataIndex,D),Qs(D,P||L,k));else{var O=V("content",BI,u,2);O&&N(A,O),D&&rl(D)&&il(D,!1),il(A,!0),c.setItemGraphicEl(a.dataIndex,A),Qs(A,P||L,k)}return A;function R(e,n,i){var r=ys(n);if(r.dataIndex=a.dataIndex,r.seriesIndex=t.seriesIndex,n.setShape({x:0,y:0,width:d,height:f,r:C}),y)E(n);else{n.invisible=!1;var o=a.getVisual("style"),s=o.stroke,l=HI(w);l.fill=s;var u=GI(S);u.fill=S.get("borderColor");var h=GI(M);h.fill=M.get("borderColor");var c=GI(T);if(c.fill=T.get("borderColor"),i){var p=d-2*g;z(n,s,p,x,o.opacity,{x:g,y:0,width:p,height:x})}else n.removeTextContent();n.setStyle(l),n.ensureState("emphasis").style=u,n.ensureState("blur").style=h,n.ensureState("select").style=c,Gs(n)}e.add(n)}function N(e,n){var i=ys(n);i.dataIndex=a.dataIndex,i.seriesIndex=t.seriesIndex;var r=Math.max(d-2*g,0),o=Math.max(f-2*g,0);if(n.culling=!0,n.setShape({x:g,y:g,width:r,height:o,r:C}),y)E(n);else{n.invisible=!1;var s=a.getVisual("style"),l=s.fill,u=HI(w);u.fill=l,u.decal=s.decal;var h=GI(S),c=GI(M),p=GI(T);z(n,l,r,s.opacity),n.setStyle(u),n.ensureState("emphasis").style=h,n.ensureState("blur").style=c,n.ensureState("select").style=p,Gs(n)}e.add(n)}function E(t){!t.invisible&&o.push(t)}function z(e,n,i,r,o,s){var l=p.getModel(s?FI:VI),u=Q(t.getFormattedLabel(a.dataIndex,"normal",null,null,l.get("formatter")),Tr(p.get("name"),null));if(!s&&h.isLeafRoot){var c=t.get("drillDownIcon",!0);u=c?c+" "+u:u}var d=l.getShallow("show");th(e,eh(p,s?FI:VI),{defaultText:d?u:null,inheritColor:n,defaultOpacity:i,labelFetcher:t,labelDataIndex:a.dataIndex});var f=e.getTextContent(),g=f.style,y=it(g.padding||0);s&&(e.setTextConfig({layoutRect:s}),f.disableLabelLayout=!0),f.beforeUpdate=function(){var t=Math.max((s?s.width:e.shape.width)-y[1]-y[3],0),n=Math.max((s?s.height:e.shape.height)-y[0]-y[2],0);g.width===t&&g.height===n||f.setStyle({width:t,height:n})},g.truncateMinChar=2,g.lineOverflow="truncate",B(g,s,h);var v=f.getState("emphasis");B(v?v.style:null,s,h)}function B(e,n,i){var r=e?e.text:null;if(!n&&i.isLeafRoot&&null!=r){var o=t.get("drillDownIcon",!0);e.text=o?o+" "+r:r}}function V(t,i,o,a){var s=null!=m&&n[t][m],l=r[t];return s?(n[t][m]=null,F(l,s)):y||((s=new i)instanceof xo&&(s.z=function(t,e){var n=10*t+e;return(n-1)/n}(o,a)),G(l,s)),e[t][v]=s}function F(t,e){var n=t[v]={};e instanceof zI?(n.oldX=e.x,n.oldY=e.y):n.oldShape=I({},e.shape)}function G(t,e){var n=t[v]={},o=a.parentNode,s=e instanceof zi;if(o&&(!i||"drillDown"===i.direction)){var l=0,u=0,h=r.background[o.getRawIndex()];!i&&h&&h.oldShape&&(l=h.oldShape.width,u=h.oldShape.height),s?(n.oldX=0,n.oldY=u):n.oldShape={x:l,y:u,width:0,height:0}}n.fadein=!s}}(e,a,s,n,o,l,t,i,r,u)}!function t(e,n,i,r,o){r?(n=e,P(e,(function(t,e){!t.isRemoved()&&s(e,e)}))):new rm(n,e,a,a).add(s).update(s).remove(V(s,null)).execute();function a(t){return t.getId()}function s(a,s){var l=null!=a?e[a]:null,h=null!=s?n[s]:null,c=u(l,h,i,o);c&&t(l&&l.viewChildren||[],h&&h.viewChildren||[],c,r,o+1)}}(i.root?[i.root]:[],r&&r.root?[r.root]:[],t,i===r||!r,0);var h=function(t){var e={nodeGroup:[],background:[],content:[]};return t&&P(t,(function(t,n){var i=e[n];P(t,(function(t){t&&(i.push(t),WI(t).willDelete=!0)}))})),e}(s);return this._oldTree=i,this._storage=a,{lastsForAnimation:o,willDeleteEls:h,renderFinally:function(){P(h,(function(t){P(t,(function(t){t.parent&&t.parent.remove(t)}))})),P(l,(function(t){t.invisible=!0,t.dirty()}))}}},e.prototype._doAnimation=function(t,e,n,i){if(n.get("animation")){var r=n.get("animationDurationUpdate"),o=n.get("animationEasing"),a=(G(r)?0:r)||0,s=(G(o)?null:o)||"cubicOut",l=new EI;P(e.willDeleteEls,(function(t,e){P(t,(function(t,n){if(!t.invisible){var r,o=t.parent,u=WI(o);if(i&&"drillDown"===i.direction)r=o===i.rootNodeGroup?{shape:{x:0,y:0,width:u.nodeWidth,height:u.nodeHeight},style:{opacity:0}}:{style:{opacity:0}};else{var h=0,c=0;u.willDelete||(h=u.nodeWidth/2,c=u.nodeHeight/2),r="nodeGroup"===e?{x:h,y:c,style:{opacity:0}}:{shape:{x:h,y:c,width:0,height:0},style:{opacity:0}}}r&&l.add(t,r,a,0,s)}}))})),P(this._storage,(function(t,n){P(t,(function(t,i){var r=e.lastsForAnimation[n][i],o={};r&&(t instanceof zi?null!=r.oldX&&(o.x=t.x,o.y=t.y,t.x=r.oldX,t.y=r.oldY):(r.oldShape&&(o.shape=I({},t.shape),t.setShape(r.oldShape)),r.fadein?(t.setStyle("opacity",0),o.style={opacity:1}):1!==t.style.opacity&&(o.style={opacity:1})),l.add(t,o,a,0,s))}))}),this),this._state="animating",l.finished(B((function(){this._state="ready",e.renderFinally()}),this)).start()}},e.prototype._resetController=function(t){var e=this._controller;e||((e=this._controller=new QS(t.getZr())).enable(this.seriesModel.get("roam")),e.on("pan",B(this._onPan,this)),e.on("zoom",B(this._onZoom,this)));var n=new Rn(0,0,t.getWidth(),t.getHeight());e.setPointerChecker((function(t,e,i){return n.contain(e,i)}))},e.prototype._clearController=function(){var t=this._controller;t&&(t.dispose(),t=null)},e.prototype._onPan=function(t){if("animating"!==this._state&&(Math.abs(t.dx)>3||Math.abs(t.dy)>3)){var e=this.seriesModel.getData().tree.root;if(!e)return;var n=e.getLayout();if(!n)return;this.api.dispatchAction({type:"treemapMove",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:n.x+t.dx,y:n.y+t.dy,width:n.width,height:n.height}})}},e.prototype._onZoom=function(t){var e=t.originX,n=t.originY;if("animating"!==this._state){var i=this.seriesModel.getData().tree.root;if(!i)return;var r=i.getLayout();if(!r)return;var o=new Rn(r.x,r.y,r.width,r.height),a=this.seriesModel.layoutInfo,s=[1,0,0,1,0,0];me(s,s,[-(e-=a.x),-(n-=a.y)]),xe(s,s,[t.scale,t.scale]),me(s,s,[e,n]),o.applyTransform(s),this.api.dispatchAction({type:"treemapRender",from:this.uid,seriesId:this.seriesModel.id,rootRect:{x:o.x,y:o.y,width:o.width,height:o.height}})}},e.prototype._initEvents=function(t){var e=this;t.on("click",(function(t){if("ready"===e._state){var n=e.seriesModel.get("nodeClick",!0);if(n){var i=e.findTarget(t.offsetX,t.offsetY);if(i){var r=i.node;if(r.getLayout().isLeafRoot)e._rootToNode(i);else if("zoomToNode"===n)e._zoomToNode(i);else if("link"===n){var o=r.hostTree.data.getItemModel(r.dataIndex),a=o.get("link",!0),s=o.get("target",!0)||"blank";a&&wc(a,s)}}}}}),this)},e.prototype._renderBreadcrumb=function(t,e,n){var i=this;n||(n=null!=t.get("leafDepth",!0)?{node:t.getViewRoot()}:this.findTarget(e.getWidth()/2,e.getHeight()/2))||(n={node:t.getData().tree.root}),(this._breadcrumb||(this._breadcrumb=new OI(this.group))).render(t,e,n.node,(function(e){"animating"!==i._state&&(TI(t.getViewRoot(),e)?i._rootToNode({node:e}):i._zoomToNode({node:e}))}))},e.prototype.remove=function(){this._clearController(),this._containerGroup&&this._containerGroup.removeAll(),this._storage={nodeGroup:[],background:[],content:[]},this._state="ready",this._breadcrumb&&this._breadcrumb.remove()},e.prototype.dispose=function(){this._clearController()},e.prototype._zoomToNode=function(t){this.api.dispatchAction({type:"treemapZoomToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:t.node})},e.prototype._rootToNode=function(t){this.api.dispatchAction({type:"treemapRootToNode",from:this.uid,seriesId:this.seriesModel.id,targetNode:t.node})},e.prototype.findTarget=function(t,e){var n;return this.seriesModel.getViewRoot().eachNode({attr:"viewChildren",order:"preorder"},(function(i){var r=this._storage.background[i.getRawIndex()];if(r){var o=r.transformCoordToLocal(t,e),a=r.shape;if(!(a.x<=o[0]&&o[0]<=a.x+a.width&&a.y<=o[1]&&o[1]<=a.y+a.height))return!1;n={node:i,offsetX:o[0],offsetY:o[1]}}}),this),n},e.type="treemap",e}(yf);var XI=P,UI=X,ZI=-1,jI=function(){function t(e){var n=e.mappingMethod,i=e.type,r=this.option=w(e);this.type=i,this.mappingMethod=n,this._normalizeData=rT[n];var o=t.visualHandlers[i];this.applyVisual=o.applyVisual,this.getColorMapper=o.getColorMapper,this._normalizedToVisual=o._normalizedToVisual[n],"piecewise"===n?(qI(r),function(t){var e=t.pieceList;t.hasSpecialVisual=!1,P(e,(function(e,n){e.originIndex=n,null!=e.visual&&(t.hasSpecialVisual=!0)}))}(r)):"category"===n?r.categories?function(t){var e=t.categories,n=t.categoryMap={},i=t.visual;if(XI(e,(function(t,e){n[t]=e})),!F(i)){var r=[];X(i)?XI(i,(function(t,e){var i=n[e];r[null!=i?i:ZI]=t})):r[-1]=i,i=iT(t,r)}for(var o=e.length-1;o>=0;o--)null==i[o]&&(delete n[e[o]],e.pop())}(r):qI(r,!0):(rt("linear"!==n||r.dataExtent),qI(r))}return t.prototype.mapValueToVisual=function(t){var e=this._normalizeData(t);return this._normalizedToVisual(e,t)},t.prototype.getNormalizer=function(){return B(this._normalizeData,this)},t.listVisualTypes=function(){return z(t.visualHandlers)},t.isValidType=function(e){return t.visualHandlers.hasOwnProperty(e)},t.eachVisual=function(t,e,n){X(t)?P(t,e,n):e.call(n,t)},t.mapVisual=function(e,n,i){var r,o=F(e)?[]:X(e)?{}:(r=!0,null);return t.eachVisual(e,(function(t,e){var a=n.call(i,t,e);r?o=a:o[e]=a})),o},t.retrieveVisuals=function(e){var n,i={};return e&&XI(t.visualHandlers,(function(t,r){e.hasOwnProperty(r)&&(i[r]=e[r],n=!0)})),n?i:null},t.prepareVisualTypes=function(t){if(F(t))t=t.slice();else{if(!UI(t))return[];var e=[];XI(t,(function(t,n){e.push(n)})),t=e}return t.sort((function(t,e){return"color"===e&&"color"!==t&&0===t.indexOf("color")?1:-1})),t},t.dependsOn=function(t,e){return"color"===e?!(!t||0!==t.indexOf(e)):t===e},t.findPieceIndex=function(t,e,n){for(var i,r=1/0,o=0,a=e.length;o<a;o++){var s=e[o].value;if(null!=s){if(s===t||"string"==typeof s&&s===t+"")return o;n&&c(s,o)}}for(o=0,a=e.length;o<a;o++){var l=e[o],u=l.interval,h=l.close;if(u){if(u[0]===-1/0){if(oT(h[1],t,u[1]))return o}else if(u[1]===1/0){if(oT(h[0],u[0],t))return o}else if(oT(h[0],u[0],t)&&oT(h[1],t,u[1]))return o;n&&c(u[0],o),n&&c(u[1],o)}}if(n)return t===1/0?e.length-1:t===-1/0?0:i;function c(e,n){var o=Math.abs(e-t);o<r&&(r=o,i=n)}},t.visualHandlers={color:{applyVisual:JI("color"),getColorMapper:function(){var t=this.option;return B("category"===t.mappingMethod?function(t,e){return!e&&(t=this._normalizeData(t)),QI.call(this,t)}:function(e,n,i){var r=!!i;return!n&&(e=this._normalizeData(e)),i=Qe(e,t.parsedVisual,i),r?i:an(i,"rgba")},this)},_normalizedToVisual:{linear:function(t){return an(Qe(t,this.option.parsedVisual),"rgba")},category:QI,piecewise:function(t,e){var n=nT.call(this,e);return null==n&&(n=an(Qe(t,this.option.parsedVisual),"rgba")),n},fixed:tT}},colorHue:KI((function(t,e){return rn(t,e)})),colorSaturation:KI((function(t,e){return rn(t,null,e)})),colorLightness:KI((function(t,e){return rn(t,null,null,e)})),colorAlpha:KI((function(t,e){return on(t,e)})),decal:{applyVisual:JI("decal"),_normalizedToVisual:{linear:null,category:QI,piecewise:null,fixed:null}},opacity:{applyVisual:JI("opacity"),_normalizedToVisual:eT([0,1])},liftZ:{applyVisual:JI("liftZ"),_normalizedToVisual:{linear:tT,category:tT,piecewise:tT,fixed:tT}},symbol:{applyVisual:function(t,e,n){n("symbol",this.mapValueToVisual(t))},_normalizedToVisual:{linear:$I,category:QI,piecewise:function(t,e){var n=nT.call(this,e);return null==n&&(n=$I.call(this,t)),n},fixed:tT}},symbolSize:{applyVisual:JI("symbolSize"),_normalizedToVisual:eT([0,1])}},t}();function qI(t,e){var n=t.visual,i=[];X(n)?XI(n,(function(t){i.push(t)})):null!=n&&i.push(n);e||1!==i.length||{color:1,symbol:1}.hasOwnProperty(t.type)||(i[1]=i[0]),iT(t,i)}function KI(t){return{applyVisual:function(e,n,i){var r=this.mapValueToVisual(e);i("color",t(n("color"),r))},_normalizedToVisual:eT([0,1])}}function $I(t){var e=this.option.visual;return e[Math.round(Ui(t,[0,1],[0,e.length-1],!0))]||{}}function JI(t){return function(e,n,i){i(t,this.mapValueToVisual(e))}}function QI(t){var e=this.option.visual;return e[this.option.loop&&t!==ZI?t%e.length:t]}function tT(){return this.option.visual[0]}function eT(t){return{linear:function(e){return Ui(e,t,this.option.visual,!0)},category:QI,piecewise:function(e,n){var i=nT.call(this,n);return null==i&&(i=Ui(e,t,this.option.visual,!0)),i},fixed:tT}}function nT(t){var e=this.option,n=e.pieceList;if(e.hasSpecialVisual){var i=n[jI.findPieceIndex(t,n)];if(i&&i.visual)return i.visual[this.type]}}function iT(t,e){return t.visual=e,"color"===t.type&&(t.parsedVisual=O(e,(function(t){return qe(t)}))),e}var rT={linear:function(t){return Ui(t,this.option.dataExtent,[0,1],!0)},piecewise:function(t){var e=this.option.pieceList,n=jI.findPieceIndex(t,e,!0);if(null!=n)return Ui(n,[0,e.length-1],[0,1],!0)},category:function(t){var e=this.option.categories?this.option.categoryMap[t]:t;return null==e?ZI:e},fixed:ft};function oT(t,e,n){return t?e<=n:e<n}var aT=Lr(),sT={seriesType:"treemap",reset:function(t){var e=t.getData().tree.root;e.isRemoved()||lT(e,{},t.getViewRoot().getAncestors(),t)}};function lT(t,e,n,i){var r=t.getModel(),o=t.getLayout(),a=t.hostTree.data;if(o&&!o.invisible&&o.isInView){var s,l=r.getModel("itemStyle"),u=function(t,e,n){var i=I({},e),r=n.designatedVisualItemStyle;return P(["color","colorAlpha","colorSaturation"],(function(n){r[n]=e[n];var o=t.get(n);r[n]=null,null!=o&&(i[n]=o)})),i}(l,e,i),h=a.ensureUniqueItemVisual(t.dataIndex,"style"),c=l.get("borderColor"),p=l.get("borderColorSaturation");null!=p&&(c=function(t,e){return null!=e?rn(e,null,null,t):null}(p,s=uT(u))),h.stroke=c;var d=t.viewChildren;if(d&&d.length){var f=function(t,e,n,i,r,o){if(!o||!o.length)return;var a=cT(e,"color")||null!=r.color&&"none"!==r.color&&(cT(e,"colorAlpha")||cT(e,"colorSaturation"));if(!a)return;var s=e.get("visualMin"),l=e.get("visualMax"),u=n.dataExtent.slice();null!=s&&s<u[0]&&(u[0]=s),null!=l&&l>u[1]&&(u[1]=l);var h=e.get("colorMappingBy"),c={type:a.name,dataExtent:u,visual:a.range};"color"!==c.type||"index"!==h&&"id"!==h?c.mappingMethod="linear":(c.mappingMethod="category",c.loop=!0);var p=new jI(c);return aT(p).drColorMappingBy=h,p}(0,r,o,0,u,d);P(d,(function(t,e){if(t.depth>=n.length||t===n[t.depth]){var o=function(t,e,n,i,r,o){var a=I({},e);if(r){var s=r.type,l="color"===s&&aT(r).drColorMappingBy,u="index"===l?i:"id"===l?o.mapIdToIndex(n.getId()):n.getValue(t.get("visualDimension"));a[s]=r.mapValueToVisual(u)}return a}(r,u,t,e,f,i);lT(t,o,n,i)}}))}else s=uT(u),h.fill=s}}function uT(t){var e=hT(t,"color");if(e){var n=hT(t,"colorAlpha"),i=hT(t,"colorSaturation");return i&&(e=rn(e,null,null,i)),n&&(e=on(e,n)),e}}function hT(t,e){var n=t[e];if(null!=n&&"none"!==n)return n}function cT(t,e){var n=t.get(e);return F(n)&&n.length?{name:e,range:n}:null}var pT=Math.max,dT=Math.min,fT=Q,gT=P,yT=["itemStyle","borderWidth"],vT=["itemStyle","gapWidth"],mT=["upperLabel","show"],_T=["upperLabel","height"],xT={seriesType:"treemap",reset:function(t,e,n,i){var r=n.getWidth(),o=n.getHeight(),a=t.option,s=Ac(t.getBoxLayoutParams(),{width:n.getWidth(),height:n.getHeight()}),l=a.size||[],u=Zi(fT(s.width,l[0]),r),h=Zi(fT(s.height,l[1]),o),c=i&&i.type,p=MI(i,["treemapZoomToNode","treemapRootToNode"],t),d="treemapRender"===c||"treemapMove"===c?i.rootRect:null,f=t.getViewRoot(),g=II(f);if("treemapMove"!==c){var y="treemapZoomToNode"===c?function(t,e,n,i,r){var o,a=(e||{}).node,s=[i,r];if(!a||a===n)return s;var l=i*r,u=l*t.option.zoomToNodeRatio;for(;o=a.parentNode;){for(var h=0,c=o.children,p=0,d=c.length;p<d;p++)h+=c[p].getValue();var f=a.getValue();if(0===f)return s;u*=h/f;var g=o.getModel(),y=g.get(yT);(u+=4*y*y+(3*y+Math.max(y,IT(g)))*Math.pow(u,.5))>tr&&(u=tr),a=o}u<l&&(u=l);var v=Math.pow(u/l,.5);return[i*v,r*v]}(t,p,f,u,h):d?[d.width,d.height]:[u,h],v=a.sort;v&&"asc"!==v&&"desc"!==v&&(v="desc");var m={squareRatio:a.squareRatio,sort:v,leafDepth:a.leafDepth};f.hostTree.clearLayouts();var _={x:0,y:0,width:y[0],height:y[1],area:y[0]*y[1]};f.setLayout(_),bT(f,m,!1,0),_=f.getLayout(),gT(g,(function(t,e){var n=(g[e+1]||f).getValue();t.setLayout(I({dataExtent:[n,n],borderWidth:0,upperHeight:0},_))}))}var x=t.getData().tree.root;x.setLayout(function(t,e,n){if(e)return{x:e.x,y:e.y};var i={x:0,y:0};if(!n)return i;var r=n.node,o=r.getLayout();if(!o)return i;var a=[o.width/2,o.height/2],s=r;for(;s;){var l=s.getLayout();a[0]+=l.x,a[1]+=l.y,s=s.parentNode}return{x:t.width/2-a[0],y:t.height/2-a[1]}}(s,d,p),!0),t.setLayoutInfo(s),MT(x,new Rn(-s.x,-s.y,r,o),g,f,0)}};function bT(t,e,n,i){var r,o;if(!t.isRemoved()){var a=t.getLayout();r=a.width,o=a.height;var s=t.getModel(),l=s.get(yT),u=s.get(vT)/2,h=IT(s),c=Math.max(l,h),p=l-u,d=c-u;t.setLayout({borderWidth:l,upperHeight:c,upperLabelHeight:h},!0);var f=(r=pT(r-2*p,0))*(o=pT(o-p-d,0)),g=function(t,e,n,i,r,o){var a=t.children||[],s=i.sort;"asc"!==s&&"desc"!==s&&(s=null);var l=null!=i.leafDepth&&i.leafDepth<=o;if(r&&!l)return t.viewChildren=[];!function(t,e){e&&t.sort((function(t,n){var i="asc"===e?t.getValue()-n.getValue():n.getValue()-t.getValue();return 0===i?"asc"===e?t.dataIndex-n.dataIndex:n.dataIndex-t.dataIndex:i}))}(a=N(a,(function(t){return!t.isRemoved()})),s);var u=function(t,e,n){for(var i=0,r=0,o=e.length;r<o;r++)i+=e[r].getValue();var a,s=t.get("visualDimension");e&&e.length?"value"===s&&n?(a=[e[e.length-1].getValue(),e[0].getValue()],"asc"===n&&a.reverse()):(a=[1/0,-1/0],gT(e,(function(t){var e=t.getValue(s);e<a[0]&&(a[0]=e),e>a[1]&&(a[1]=e)}))):a=[NaN,NaN];return{sum:i,dataExtent:a}}(e,a,s);if(0===u.sum)return t.viewChildren=[];if(u.sum=function(t,e,n,i,r){if(!i)return n;for(var o=t.get("visibleMin"),a=r.length,s=a,l=a-1;l>=0;l--){var u=r["asc"===i?a-l-1:l].getValue();u/n*e<o&&(s=l,n-=u)}return"asc"===i?r.splice(0,a-s):r.splice(s,a-s),n}(e,n,u.sum,s,a),0===u.sum)return t.viewChildren=[];for(var h=0,c=a.length;h<c;h++){var p=a[h].getValue()/u.sum*n;a[h].setLayout({area:p})}l&&(a.length&&t.setLayout({isLeafRoot:!0},!0),a.length=0);return t.viewChildren=a,t.setLayout({dataExtent:u.dataExtent},!0),a}(t,s,f,e,n,i);if(g.length){var y={x:p,y:d,width:r,height:o},v=dT(r,o),m=1/0,_=[];_.area=0;for(var x=0,b=g.length;x<b;){var w=g[x];_.push(w),_.area+=w.getLayout().area;var S=wT(_,v,e.squareRatio);S<=m?(x++,m=S):(_.area-=_.pop().getLayout().area,ST(_,v,y,u,!1),v=dT(y.width,y.height),_.length=_.area=0,m=1/0)}if(_.length&&ST(_,v,y,u,!0),!n){var M=s.get("childrenVisibleMin");null!=M&&f<M&&(n=!0)}for(x=0,b=g.length;x<b;x++)bT(g[x],e,n,i+1)}}}function wT(t,e,n){for(var i=0,r=1/0,o=0,a=void 0,s=t.length;o<s;o++)(a=t[o].getLayout().area)&&(a<r&&(r=a),a>i&&(i=a));var l=t.area*t.area,u=e*e*n;return l?pT(u*i/l,l/(u*r)):1/0}function ST(t,e,n,i,r){var o=e===n.width?0:1,a=1-o,s=["x","y"],l=["width","height"],u=n[s[o]],h=e?t.area/e:0;(r||h>n[l[a]])&&(h=n[l[a]]);for(var c=0,p=t.length;c<p;c++){var d=t[c],f={},g=h?d.getLayout().area/h:0,y=f[l[a]]=pT(h-2*i,0),v=n[s[o]]+n[l[o]]-u,m=c===p-1||v<g?v:g,_=f[l[o]]=pT(m-2*i,0);f[s[a]]=n[s[a]]+dT(i,y/2),f[s[o]]=u+dT(i,_/2),u+=m,d.setLayout(f,!0)}n[s[a]]+=h,n[l[a]]-=h}function MT(t,e,n,i,r){var o=t.getLayout(),a=n[r],s=a&&a===t;if(!(a&&!s||r===n.length&&t!==i)){t.setLayout({isInView:!0,invisible:!s&&!e.intersect(o),isAboveViewRoot:s},!0);var l=new Rn(e.x-o.x,e.y-o.y,e.width,e.height);gT(t.viewChildren||[],(function(t){MT(t,l,n,i,r+1)}))}}function IT(t){return t.get(mT)?t.get(_T):0}function TT(t){var e=t.findComponents({mainType:"legend"});e&&e.length&&t.eachSeriesByType("graph",(function(t){var n=t.getCategoriesData(),i=t.getGraph().data,r=n.mapArray(n.getName);i.filterSelf((function(t){var n=i.getItemModel(t).getShallow("category");if(null!=n){"number"==typeof n&&(n=r[n]);for(var o=0;o<e.length;o++)if(!e[o].isSelected(n))return!1}return!0}))}))}function CT(t){var e={};t.eachSeriesByType("graph",(function(t){var n=t.getCategoriesData(),i=t.getData(),r={};n.each((function(i){var o=n.getName(i);r["ec-"+o]=i;var a=n.getItemModel(i),s=a.getModel("itemStyle").getItemStyle();s.fill||(s.fill=t.getColorFromPalette(o,e)),n.setItemVisual(i,"style",s);for(var l=["symbol","symbolSize","symbolKeepAspect"],u=0;u<l.length;u++){var h=a.getShallow(l[u],!0);null!=h&&n.setItemVisual(i,l[u],h)}})),n.count()&&i.each((function(t){var e=i.getItemModel(t).getShallow("category");if(null!=e){"string"==typeof e&&(e=r["ec-"+e]);var o=n.getItemVisual(e,"style");I(i.ensureUniqueItemVisual(t,"style"),o);for(var a=["symbol","symbolSize","symbolKeepAspect"],s=0;s<a.length;s++)i.setItemVisual(t,a[s],n.getItemVisual(e,a[s]))}}))}))}function AT(t){return t instanceof Array||(t=[t,t]),t}function DT(t){t.eachSeriesByType("graph",(function(t){var e=t.getGraph(),n=t.getEdgeData(),i=AT(t.get("edgeSymbol")),r=AT(t.get("edgeSymbolSize"));n.setVisual("fromSymbol",i&&i[0]),n.setVisual("toSymbol",i&&i[1]),n.setVisual("fromSymbolSize",r&&r[0]),n.setVisual("toSymbolSize",r&&r[1]),n.setVisual("style",t.getModel("lineStyle").getLineStyle()),n.each((function(t){var i=n.getItemModel(t),r=e.getEdgeByIndex(t),o=AT(i.getShallow("symbol",!0)),a=AT(i.getShallow("symbolSize",!0)),s=i.getModel("lineStyle").getLineStyle(),l=n.ensureUniqueItemVisual(t,"style");switch(I(l,s),l.stroke){case"source":var u=r.node1.getVisual("style");l.stroke=u&&u.fill;break;case"target":u=r.node2.getVisual("style");l.stroke=u&&u.fill}o[0]&&r.setVisual("fromSymbol",o[0]),o[1]&&r.setVisual("toSymbol",o[1]),a[0]&&r.setVisual("fromSymbolSize",a[0]),a[1]&&r.setVisual("toSymbolSize",a[1])}))}))}var LT="--\x3e",kT=function(t){return t.get("autoCurveness")||null},PT=function(t,e){var n=kT(t),i=20,r=[];if("number"==typeof n)i=n;else if(F(n))return void(t.__curvenessList=n);e>i&&(i=e);var o=i%2?i+2:i+3;r=[];for(var a=0;a<o;a++)r.push((a%2?a+1:a)/10*(a%2?-1:1));t.__curvenessList=r},OT=function(t,e,n){var i=[t.id,t.dataIndex].join("."),r=[e.id,e.dataIndex].join(".");return[n.uid,i,r].join(LT)},RT=function(t){var e=t.split(LT);return[e[0],e[2],e[1]].join(LT)},NT=function(t,e){var n=e.__edgeMap;return n[t]?n[t].length:0};function ET(t,e,n,i){var r=kT(e),o=F(r);if(!r)return null;var a=function(t,e){var n=OT(t.node1,t.node2,e);return e.__edgeMap[n]}(t,e);if(!a)return null;for(var s=-1,l=0;l<a.length;l++)if(a[l]===n){s=l;break}var u=function(t,e){return NT(OT(t.node1,t.node2,e),e)+NT(OT(t.node2,t.node1,e),e)}(t,e);PT(e,u),t.lineStyle=t.lineStyle||{};var h=OT(t.node1,t.node2,e),c=e.__curvenessList,p=o||u%2?0:1;if(a.isForward)return c[p+s];var d=RT(h),f=NT(d,e),g=c[s+f+p];return i?o?r&&0===r[0]?(f+p)%2?g:-g:((f%2?0:1)+p)%2?g:-g:(f+p)%2?g:-g:c[s+f+p]}function zT(t){var e=t.coordinateSystem;if(!e||"view"===e.type){var n=t.getGraph();n.eachNode((function(t){var e=t.getModel();t.setLayout([+e.get("x"),+e.get("y")])})),BT(n,t)}}function BT(t,e){t.eachEdge((function(t,n){var i=et(t.getModel().get(["lineStyle","curveness"]),-ET(t,e,n,!0),0),r=mt(t.node1.getLayout()),o=mt(t.node2.getLayout()),a=[r,o];+i&&a.push([(r[0]+o[0])/2-(r[1]-o[1])*i,(r[1]+o[1])/2-(o[0]-r[0])*i]),t.setLayout(a)}))}function VT(t,e){t.eachSeriesByType("graph",(function(t){var e=t.get("layout"),n=t.coordinateSystem;if(n&&"view"!==n.type){var i=t.getData(),r=[];P(n.dimensions,(function(t){r=r.concat(i.mapDimensionsAll(t))}));for(var o=0;o<i.count();o++){for(var a=[],s=!1,l=0;l<r.length;l++){var u=i.get(r[l],o);isNaN(u)||(s=!0),a.push(u)}s?i.setItemLayout(o,n.dataToPoint(a)):i.setItemLayout(o,[NaN,NaN])}BT(i.graph,t)}else e&&"none"!==e||zT(t)}))}function FT(t){var e=t.coordinateSystem;if("view"!==e.type)return 1;var n=t.option.nodeScaleRatio,i=e.scaleX;return((e.getZoom()-1)*n+1)/i}function GT(t){var e=t.getVisual("symbolSize");return e instanceof Array&&(e=(e[0]+e[1])/2),+e}var HT=Math.PI,WT=[];function YT(t,e){var n=t.coordinateSystem;if(!n||"view"===n.type){var i=n.getBoundingRect(),r=t.getData(),o=r.graph,a=i.width/2+i.x,s=i.height/2+i.y,l=Math.min(i.width,i.height)/2,u=r.count();r.setLayout({cx:a,cy:s}),u&&(XT[e](t,o,r,l,a,s,u),o.eachEdge((function(e,n){var i,r=et(e.getModel().get(["lineStyle","curveness"]),ET(e,t,n),0),o=mt(e.node1.getLayout()),l=mt(e.node2.getLayout()),u=(o[0]+l[0])/2,h=(o[1]+l[1])/2;+r&&(i=[a*(r*=3)+u*(1-r),s*r+h*(1-r)]),e.setLayout([o,l,i])})))}}var XT={value:function(t,e,n,i,r,o,a){var s=0,l=n.getSum("value"),u=2*Math.PI/(l||a);e.eachNode((function(t){var e=t.getValue("value"),n=u*(l?e:1)/2;s+=n,t.setLayout([i*Math.cos(s)+r,i*Math.sin(s)+o]),s+=n}))},symbolSize:function(t,e,n,i,r,o,a){var s=0;WT.length=a;var l=FT(t);e.eachNode((function(t){var e=GT(t);isNaN(e)&&(e=2),e<0&&(e=0),e*=l;var n=Math.asin(e/2/i);isNaN(n)&&(n=HT/2),WT[t.dataIndex]=n,s+=2*n}));var u=(2*HT-s)/a/2,h=0;e.eachNode((function(t){var e=u+WT[t.dataIndex];h+=e,t.setLayout([i*Math.cos(h)+r,i*Math.sin(h)+o]),h+=e}))}};function UT(t){t.eachSeriesByType("graph",(function(t){"circular"===t.get("layout")&&YT(t,"symbolSize")}))}var ZT=bt;function jT(t){t.eachSeriesByType("graph",(function(t){var e=t.coordinateSystem;if(!e||"view"===e.type)if("force"===t.get("layout")){var n=t.preservedPoints||{},i=t.getGraph(),r=i.data,o=i.edgeData,a=t.getModel("force"),s=a.get("initLayout");t.preservedPoints?r.each((function(t){var e=r.getId(t);r.setItemLayout(t,n[e]||[NaN,NaN])})):s&&"none"!==s?"circular"===s&&YT(t,"value"):zT(t);var l=r.getDataExtent("value"),u=o.getDataExtent("value"),h=a.get("repulsion"),c=a.get("edgeLength"),p=F(h)?h:[h,h],d=F(c)?c:[c,c];d=[d[1],d[0]];var f=r.mapArray("value",(function(t,e){var n=r.getItemLayout(e),i=Ui(t,l,p);return isNaN(i)&&(i=(p[0]+p[1])/2),{w:i,rep:i,fixed:r.getItemModel(e).get("fixed"),p:!n||isNaN(n[0])||isNaN(n[1])?null:n}})),g=o.mapArray("value",(function(e,n){var r=i.getEdgeByIndex(n),o=Ui(e,u,d);isNaN(o)&&(o=(d[0]+d[1])/2);var a=r.getModel(),s=et(r.getModel().get(["lineStyle","curveness"]),-ET(r,t,n,!0),0);return{n1:f[r.node1.dataIndex],n2:f[r.node2.dataIndex],d:o,curveness:s,ignoreForceLayout:a.get("ignoreForceLayout")}})),y=e.getBoundingRect(),v=function(t,e,n){for(var i=t,r=e,o=n.rect,a=o.width,s=o.height,l=[o.x+a/2,o.y+s/2],u=null==n.gravity?.1:n.gravity,h=0;h<i.length;h++){var c=i[h];c.p||(c.p=yt(a*(Math.random()-.5)+l[0],s*(Math.random()-.5)+l[1])),c.pp=mt(c.p),c.edges=null}var p,d,f=null==n.friction?.6:n.friction,g=f;return{warmUp:function(){g=.8*f},setFixed:function(t){i[t].fixed=!0},setUnfixed:function(t){i[t].fixed=!1},beforeStep:function(t){p=t},afterStep:function(t){d=t},step:function(t){p&&p(i,r);for(var e=[],n=i.length,o=0;o<r.length;o++){var a=r[o];if(!a.ignoreForceLayout){var s=a.n1;wt(e,(y=a.n2).p,s.p);var h=St(e)-a.d,c=y.w/(s.w+y.w);isNaN(c)&&(c=0),At(e,e),!s.fixed&&ZT(s.p,s.p,e,c*h*g),!y.fixed&&ZT(y.p,y.p,e,-(1-c)*h*g)}}for(o=0;o<n;o++)(_=i[o]).fixed||(wt(e,l,_.p),ZT(_.p,_.p,e,u*g));for(o=0;o<n;o++){s=i[o];for(var f=o+1;f<n;f++){var y;wt(e,(y=i[f]).p,s.p),0===(h=St(e))&&(_t(e,Math.random()-.5,Math.random()-.5),h=1);var v=(s.rep+y.rep)/h/h;!s.fixed&&ZT(s.pp,s.pp,e,v),!y.fixed&&ZT(y.pp,y.pp,e,-v)}}var m=[];for(o=0;o<n;o++){var _;(_=i[o]).fixed||(wt(m,_.p,_.pp),ZT(_.p,_.p,m,g),vt(_.pp,_.p))}var x=(g*=.992)<.01;d&&d(i,r,x),t&&t(x)}}}(f,g,{rect:y,gravity:a.get("gravity"),friction:a.get("friction")});v.beforeStep((function(t,e){for(var n=0,r=t.length;n<r;n++)t[n].fixed&&vt(t[n].p,i.getNodeByIndex(n).getLayout())})),v.afterStep((function(t,e,o){for(var a=0,s=t.length;a<s;a++)t[a].fixed||i.getNodeByIndex(a).setLayout(t[a].p),n[r.getId(a)]=t[a].p;for(a=0,s=e.length;a<s;a++){var l=e[a],u=i.getEdgeByIndex(a),h=l.n1.p,c=l.n2.p,p=u.getLayout();(p=p?p.slice():[])[0]=p[0]||[],p[1]=p[1]||[],vt(p[0],h),vt(p[1],c),+l.curveness&&(p[2]=[(h[0]+c[0])/2-(h[1]-c[1])*l.curveness,(h[1]+c[1])/2-(c[0]-h[0])*l.curveness]),u.setLayout(p)}})),t.forceLayout=v,t.preservedPoints=n,v.step()}else t.forceLayout=null}))}function qT(t,e){var n=[];return t.eachSeriesByType("graph",(function(t){var i=t.get("coordinateSystem");if(!i||"view"===i){var r=t.getData(),o=[],a=[];ea(r.mapArray((function(t){var e=r.getItemModel(t);return[+e.get("x"),+e.get("y")]})),o,a),a[0]-o[0]==0&&(a[0]+=1,o[0]-=1),a[1]-o[1]==0&&(a[1]+=1,o[1]-=1);var s=(a[0]-o[0])/(a[1]-o[1]),l=function(t,e,n){return Ac(I(t.getBoxLayoutParams(),{aspect:n}),{width:e.getWidth(),height:e.getHeight()})}(t,e,s);isNaN(s)&&(o=[l.x,l.y],a=[l.x+l.width,l.y+l.height]);var u=a[0]-o[0],h=a[1]-o[1],c=l.width,p=l.height,d=t.coordinateSystem=new QM;d.zoomLimit=t.get("scaleLimit"),d.setBoundingRect(o[0],o[1],u,h),d.setViewRect(l.x,l.y,c,p),d.setCenter(t.get("center")),d.setZoom(t.get("zoom")),n.push(d)}})),n}var KT=tu.prototype,$T=ru.prototype,JT=function(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.percent=1};!function(t){function e(){return null!==t&&t.apply(this,arguments)||this}n(e,t)}(JT);function QT(t){return isNaN(+t.cpx1)||isNaN(+t.cpy1)}var tC=function(t){function e(e){var n=t.call(this,e)||this;return n.type="ec-line",n}return n(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new JT},e.prototype.buildPath=function(t,e){QT(e)?KT.buildPath.call(this,t,e):$T.buildPath.call(this,t,e)},e.prototype.pointAt=function(t){return QT(this.shape)?KT.pointAt.call(this,t):$T.pointAt.call(this,t)},e.prototype.tangentAt=function(t){var e=this.shape,n=QT(e)?[e.x2-e.x1,e.y2-e.y1]:$T.tangentAt.call(this,t);return At(n,n)},e}(Za),eC=["fromSymbol","toSymbol"];function nC(t){return"_"+t+"Type"}function iC(t,e,n){var i=e.getItemVisual(n,t);if(i&&"none"!==i){var r=e.getItemVisual(n,t+"Size"),o=e.getItemVisual(n,t+"Rotate"),a=F(r)?r:[r,r],s=uy(i,-a[0]/2,-a[1]/2,a[0],a[1]);return s.__specifiedRotation=null==o||isNaN(o)?void 0:+o*Math.PI/180||0,s.name=t,s}}function rC(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 oC=function(t){function e(e,n,i){var r=t.call(this)||this;return r._createLine(e,n,i),r}return n(e,t),e.prototype._createLine=function(t,e,n){var i=t.hostModel,r=function(t){var e=new tC({name:"line",subPixelOptimize:!0});return rC(e.shape,t),e}(t.getItemLayout(e));r.shape.percent=0,Ru(r,{shape:{percent:1}},i,e),this.add(r),P(eC,(function(n){var i=iC(n,t,e);this.add(i),this[nC(n)]=t.getItemVisual(e,n)}),this),this._updateCommonStl(t,e,n)},e.prototype.updateData=function(t,e,n){var i=t.hostModel,r=this.childOfName("line"),o=t.getItemLayout(e),a={shape:{}};rC(a.shape,o),Ou(r,a,i,e),P(eC,(function(n){var i=t.getItemVisual(e,n),r=nC(n);if(this[r]!==i){this.remove(this.childOfName(n));var o=iC(n,t,e);this.add(o)}this[r]=i}),this),this._updateCommonStl(t,e,n)},e.prototype.getLinePath=function(){return this.childAt(0)},e.prototype._updateCommonStl=function(t,e,n){var i=t.hostModel,r=this.childOfName("line"),o=n&&n.emphasisLineStyle,a=n&&n.blurLineStyle,s=n&&n.selectLineStyle,l=n&&n.labelStatesModels;if(!n||t.hasItemOption){var u=t.getItemModel(e);o=u.getModel(["emphasis","lineStyle"]).getLineStyle(),a=u.getModel(["blur","lineStyle"]).getLineStyle(),s=u.getModel(["select","lineStyle"]).getLineStyle(),l=eh(u)}var h=t.getItemVisual(e,"style"),c=h.stroke;r.useStyle(h),r.style.fill=null,r.style.strokeNoScale=!0,r.ensureState("emphasis").style=o,r.ensureState("blur").style=a,r.ensureState("select").style=s,P(eC,(function(t){var e=this.childOfName(t);if(e){e.setColor(c),e.style.opacity=h.opacity;for(var n=0;n<xs.length;n++){var i=xs[n],o=r.getState(i);if(o){var a=o.style||{},s=e.ensureState(i),l=s.style||(s.style={});null!=a.stroke&&(l[e.__isEmptyBrush?"stroke":"fill"]=a.stroke),null!=a.opacity&&(l.opacity=a.opacity)}}e.markRedraw()}}),this);var p=i.getRawValue(e);th(this,l,{labelDataIndex:e,labelFetcher:{getFormattedLabel:function(e,n){return i.getFormattedLabel(e,n,t.dataType)}},inheritColor:c||"#000",defaultOpacity:h.opacity,defaultText:(null==p?t.getName(e):isFinite(p)?ji(p):p)+""});var d=this.getTextContent();if(d){var f=l.normal;d.__align=d.style.align,d.__verticalAlign=d.style.verticalAlign,d.__position=f.get("position")||"middle";var g=f.get("distance");F(g)||(g=[g,g]),d.__labelDistance=g}this.setTextConfig({position:null,local:!0,inside:!1}),Js(this)},e.prototype.highlight=function(){Hs(this)},e.prototype.downplay=function(){Ws(this)},e.prototype.updateLayout=function(t,e){this.setLinePoints(t.getItemLayout(e))},e.prototype.setLinePoints=function(t){var e=this.childOfName("line");rC(e.shape,t),e.dirty()},e.prototype.beforeUpdate=function(){var t=this,e=t.childOfName("fromSymbol"),n=t.childOfName("toSymbol"),i=t.getTextContent();if(e||n||i&&!i.ignore){for(var r=1,o=this.parent;o;)o.scaleX&&(r/=o.scaleX),o=o.parent;var a=t.childOfName("line");if(this.__dirty||a.__dirty){var s=a.shape.percent,l=a.pointAt(0),u=a.pointAt(s),h=wt([],u,l);if(At(h,h),e&&(e.setPosition(l),S(e,0),e.scaleX=e.scaleY=r*s,e.markRedraw()),n&&(n.setPosition(u),S(n,1),n.scaleX=n.scaleY=r*s,n.markRedraw()),i&&!i.ignore){i.x=i.y=0,i.originX=i.originY=0;var c=void 0,p=void 0,d=i.__labelDistance,f=d[0]*r,g=d[1]*r,y=s/2,v=a.tangentAt(y),m=[v[1],-v[0]],_=a.pointAt(y);m[1]>0&&(m[0]=-m[0],m[1]=-m[1]);var x=v[0]<0?-1:1;if("start"!==i.__position&&"end"!==i.__position){var b=-Math.atan2(v[1],v[0]);u[0]<l[0]&&(b=Math.PI+b),i.rotation=b}var w=void 0;switch(i.__position){case"insideStartTop":case"insideMiddleTop":case"insideEndTop":case"middle":w=-g,p="bottom";break;case"insideStartBottom":case"insideMiddleBottom":case"insideEndBottom":w=g,p="top";break;default:w=0,p="middle"}switch(i.__position){case"end":i.x=h[0]*f+u[0],i.y=h[1]*g+u[1],c=h[0]>.8?"left":h[0]<-.8?"right":"center",p=h[1]>.8?"top":h[1]<-.8?"bottom":"middle";break;case"start":i.x=-h[0]*f+l[0],i.y=-h[1]*g+l[1],c=h[0]>.8?"right":h[0]<-.8?"left":"center",p=h[1]>.8?"bottom":h[1]<-.8?"top":"middle";break;case"insideStartTop":case"insideStart":case"insideStartBottom":i.x=f*x+l[0],i.y=l[1]+w,c=v[0]<0?"right":"left",i.originX=-f*x,i.originY=-w;break;case"insideMiddleTop":case"insideMiddle":case"insideMiddleBottom":case"middle":i.x=_[0],i.y=_[1]+w,c="center",i.originY=-w;break;case"insideEndTop":case"insideEnd":case"insideEndBottom":i.x=-f*x+u[0],i.y=u[1]+w,c=v[0]>=0?"right":"left",i.originX=f*x,i.originY=-w}i.scaleX=i.scaleY=r,i.setStyle({verticalAlign:i.__verticalAlign||p,align:i.__align||c})}}}function S(t,e){var n=t.__specifiedRotation;if(null==n){var i=a.tangentAt(e);t.attr("rotation",(1===e?-1:1)*Math.PI/2-Math.atan2(i[1],i[0]))}else t.attr("rotation",n)}},e}(zi),aC=function(){function t(t){this.group=new zi,this._LineCtor=t||oC}return t.prototype.isPersistent=function(){return!0},t.prototype.updateData=function(t){var e=this,n=this,i=n.group,r=n._lineData;n._lineData=t,r||i.removeAll();var o=sC(t);t.diff(r).add((function(n){e._doAdd(t,n,o)})).update((function(n,i){e._doUpdate(r,t,i,n,o)})).remove((function(t){i.remove(r.getItemGraphicEl(t))})).execute()},t.prototype.updateLayout=function(){var t=this._lineData;t&&t.eachItemGraphicEl((function(e,n){e.updateLayout(t,n)}),this)},t.prototype.incrementalPrepareUpdate=function(t){this._seriesScope=sC(t),this._lineData=null,this.group.removeAll()},t.prototype.incrementalUpdate=function(t,e){function n(t){t.isGroup||function(t){return t.animators&&t.animators.length>0}(t)||(t.incremental=!0,t.ensureState("emphasis").hoverLayer=!0)}for(var i=t.start;i<t.end;i++){if(uC(e.getItemLayout(i))){var r=new this._LineCtor(e,i,this._seriesScope);r.traverse(n),this.group.add(r),e.setItemGraphicEl(i,r)}}},t.prototype.remove=function(){this.group.removeAll()},t.prototype._doAdd=function(t,e,n){if(uC(t.getItemLayout(e))){var i=new this._LineCtor(t,e,n);t.setItemGraphicEl(e,i),this.group.add(i)}},t.prototype._doUpdate=function(t,e,n,i,r){var o=t.getItemGraphicEl(n);uC(e.getItemLayout(i))?(o?o.updateData(e,i,r):o=new this._LineCtor(e,i,r),e.setItemGraphicEl(i,o),this.group.add(o)):this.group.remove(o)},t}();function sC(t){var e=t.hostModel;return{lineStyle:e.getModel("lineStyle").getLineStyle(),emphasisLineStyle:e.getModel(["emphasis","lineStyle"]).getLineStyle(),blurLineStyle:e.getModel(["blur","lineStyle"]).getLineStyle(),selectLineStyle:e.getModel(["select","lineStyle"]).getLineStyle(),labelStatesModels:eh(e)}}function lC(t){return isNaN(t[0])||isNaN(t[1])}function uC(t){return!lC(t[0])&&!lC(t[1])}var hC=[],cC=[],pC=[],dC=Go,fC=Pt,gC=Math.abs;function yC(t,e,n){for(var i,r=t[0],o=t[1],a=t[2],s=1/0,l=n*n,u=.1,h=.1;h<=.9;h+=.1){hC[0]=dC(r[0],o[0],a[0],h),hC[1]=dC(r[1],o[1],a[1],h),(d=gC(fC(hC,e)-l))<s&&(s=d,i=h)}for(var c=0;c<32;c++){var p=i+u;cC[0]=dC(r[0],o[0],a[0],i),cC[1]=dC(r[1],o[1],a[1],i),pC[0]=dC(r[0],o[0],a[0],p),pC[1]=dC(r[1],o[1],a[1],p);var d=fC(cC,e)-l;if(gC(d)<.01)break;var f=fC(pC,e)-l;u/=2,d<0?f>=0?i+=u:i-=u:f>=0?i-=u:i+=u}return i}function vC(t,e){var n=[],i=Yo,r=[[],[],[]],o=[[],[]],a=[];e/=2,t.eachEdge((function(t,s){var l=t.getLayout(),u=t.getVisual("fromSymbol"),h=t.getVisual("toSymbol");l.__original||(l.__original=[mt(l[0]),mt(l[1])],l[2]&&l.__original.push(mt(l[2])));var c=l.__original;if(null!=l[2]){if(vt(r[0],c[0]),vt(r[1],c[2]),vt(r[2],c[1]),u&&"none"!==u){var p=GT(t.node1),d=yC(r,c[0],p*e);i(r[0][0],r[1][0],r[2][0],d,n),r[0][0]=n[3],r[1][0]=n[4],i(r[0][1],r[1][1],r[2][1],d,n),r[0][1]=n[3],r[1][1]=n[4]}if(h&&"none"!==h){p=GT(t.node2),d=yC(r,c[1],p*e);i(r[0][0],r[1][0],r[2][0],d,n),r[1][0]=n[1],r[2][0]=n[2],i(r[0][1],r[1][1],r[2][1],d,n),r[1][1]=n[1],r[2][1]=n[2]}vt(l[0],r[0]),vt(l[1],r[2]),vt(l[2],r[1])}else{if(vt(o[0],c[0]),vt(o[1],c[1]),wt(a,o[1],o[0]),At(a,a),u&&"none"!==u){p=GT(t.node1);bt(o[0],o[0],a,p*e)}if(h&&"none"!==h){p=GT(t.node2);bt(o[1],o[1],a,-p*e)}vt(l[0],o[0]),vt(l[1],o[1])}}))}function mC(t){return"view"===t.type}var _C=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(t,e){var n=new Tb,i=new aC,r=this.group;this._controller=new QS(e.getZr()),this._controllerHost={target:r},r.add(n.group),r.add(i.group),this._symbolDraw=n,this._lineDraw=i,this._firstRender=!0},e.prototype.render=function(t,e,n){var i=this,r=t.coordinateSystem;this._model=t;var o=this._symbolDraw,a=this._lineDraw,s=this.group;if(mC(r)){var l={x:r.x,y:r.y,scaleX:r.scaleX,scaleY:r.scaleY};this._firstRender?s.attr(l):Ou(s,l,t)}vC(t.getGraph(),FT(t));var u=t.getData();o.updateData(u);var h=t.getEdgeData();a.updateData(h),this._updateNodeAndLinkScale(),this._updateController(t,e,n),clearTimeout(this._layoutTimeout);var c=t.forceLayout,p=t.get(["force","layoutAnimation"]);c&&this._startForceLayoutIteration(c,p),u.graph.eachNode((function(t){var e=t.dataIndex,n=t.getGraphicEl(),r=t.getModel();n.off("drag").off("dragend");var o=r.get("draggable");o&&n.on("drag",(function(){c&&(c.warmUp(),!i._layouting&&i._startForceLayoutIteration(c,p),c.setFixed(e),u.setItemLayout(e,[n.x,n.y]))})).on("dragend",(function(){c&&c.setUnfixed(e)})),n.setDraggable(o&&!!c),"adjacency"===r.get(["emphasis","focus"])&&(ys(n).focus=t.getAdjacentDataIndices())})),u.graph.eachEdge((function(t){var e=t.getGraphicEl();"adjacency"===t.getModel().get(["emphasis","focus"])&&(ys(e).focus={edge:[t.dataIndex],node:[t.node1.dataIndex,t.node2.dataIndex]})}));var d="circular"===t.get("layout")&&t.get(["circular","rotateLabel"]),f=u.getLayout("cx"),g=u.getLayout("cy");u.eachItemGraphicEl((function(t,e){var n=u.getItemModel(e).get(["label","rotate"])||0,i=t.getSymbolPath();if(d){var r=u.getItemLayout(e),o=Math.atan2(r[1]-g,r[0]-f);o<0&&(o=2*Math.PI+o);var a=r[0]<f;a&&(o-=Math.PI);var s=a?"left":"right";i.setTextConfig({rotation:-o,position:s,origin:"center"});var l=i.ensureState("emphasis");I(l.textConfig||(l.textConfig={}),{position:s})}else i.setTextConfig({rotation:n*=Math.PI/180})})),this._firstRender=!1},e.prototype.dispose=function(){this._controller&&this._controller.dispose(),this._controllerHost=null},e.prototype._startForceLayoutIteration=function(t,e){var n=this;!function i(){t.step((function(t){n.updateLayout(n._model),(n._layouting=!t)&&(e?n._layoutTimeout=setTimeout(i,16):i())}))}()},e.prototype._updateController=function(t,e,n){var i=this,r=this._controller,o=this._controllerHost,a=this.group;r.setPointerChecker((function(e,i,r){var o=a.getBoundingRect();return o.applyTransform(a.transform),o.contain(i,r)&&!aM(e,n,t)})),mC(t.coordinateSystem)?(r.enable(t.get("roam")),o.zoomLimit=t.get("scaleLimit"),o.zoom=t.coordinateSystem.getZoom(),r.off("pan").off("zoom").on("pan",(function(e){iM(o,e.dx,e.dy),n.dispatchAction({seriesId:t.id,type:"graphRoam",dx:e.dx,dy:e.dy})})).on("zoom",(function(e){rM(o,e.scale,e.originX,e.originY),n.dispatchAction({seriesId:t.id,type:"graphRoam",zoom:e.scale,originX:e.originX,originY:e.originY}),i._updateNodeAndLinkScale(),vC(t.getGraph(),FT(t)),i._lineDraw.updateLayout(),n.updateLabelLayout()}))):r.disable()},e.prototype._updateNodeAndLinkScale=function(){var t=this._model,e=t.getData(),n=FT(t);e.eachItemGraphicEl((function(t,e){t.setSymbolScale(n)}))},e.prototype.updateLayout=function(t){vC(t.getGraph(),FT(t)),this._symbolDraw.updateLayout(),this._lineDraw.updateLayout()},e.prototype.remove=function(t,e){this._symbolDraw&&this._symbolDraw.remove(),this._lineDraw&&this._lineDraw.remove()},e.type="graph",e}(yf);function xC(t){return"_EC_"+t}var bC=function(){function t(t){this.type="graph",this.nodes=[],this.edges=[],this._nodesMap={},this._edgesMap={},this._directed=t||!1}return t.prototype.isDirected=function(){return this._directed},t.prototype.addNode=function(t,e){t=null==t?""+e:""+t;var n=this._nodesMap;if(!n[xC(t)]){var i=new wC(t,e);return i.hostGraph=this,this.nodes.push(i),n[xC(t)]=i,i}},t.prototype.getNodeByIndex=function(t){var e=this.data.getRawIndex(t);return this.nodes[e]},t.prototype.getNodeById=function(t){return this._nodesMap[xC(t)]},t.prototype.addEdge=function(t,e,n){var i=this._nodesMap,r=this._edgesMap;if("number"==typeof t&&(t=this.nodes[t]),"number"==typeof e&&(e=this.nodes[e]),t instanceof wC||(t=i[xC(t)]),e instanceof wC||(e=i[xC(e)]),t&&e){var o=t.id+"-"+e.id,a=new SC(t,e,n);return a.hostGraph=this,this._directed&&(t.outEdges.push(a),e.inEdges.push(a)),t.edges.push(a),t!==e&&e.edges.push(a),this.edges.push(a),r[o]=a,a}},t.prototype.getEdgeByIndex=function(t){var e=this.edgeData.getRawIndex(t);return this.edges[e]},t.prototype.getEdge=function(t,e){t instanceof wC&&(t=t.id),e instanceof wC&&(e=e.id);var n=this._edgesMap;return this._directed?n[t+"-"+e]:n[t+"-"+e]||n[e+"-"+t]},t.prototype.eachNode=function(t,e){for(var n=this.nodes,i=n.length,r=0;r<i;r++)n[r].dataIndex>=0&&t.call(e,n[r],r)},t.prototype.eachEdge=function(t,e){for(var n=this.edges,i=n.length,r=0;r<i;r++)n[r].dataIndex>=0&&n[r].node1.dataIndex>=0&&n[r].node2.dataIndex>=0&&t.call(e,n[r],r)},t.prototype.breadthFirstTraverse=function(t,e,n,i){if(e instanceof wC||(e=this._nodesMap[xC(e)]),e){for(var r="out"===n?"outEdges":"in"===n?"inEdges":"edges",o=0;o<this.nodes.length;o++)this.nodes[o].__visited=!1;if(!t.call(i,e,null))for(var a=[e];a.length;){var s=a.shift(),l=s[r];for(o=0;o<l.length;o++){var u=l[o],h=u.node1===s?u.node2:u.node1;if(!h.__visited){if(t.call(i,h,s))return;a.push(h),h.__visited=!0}}}}},t.prototype.update=function(){for(var t=this.data,e=this.edgeData,n=this.nodes,i=this.edges,r=0,o=n.length;r<o;r++)n[r].dataIndex=-1;for(r=0,o=t.count();r<o;r++)n[t.getRawIndex(r)].dataIndex=r;e.filterSelf((function(t){var n=i[e.getRawIndex(t)];return n.node1.dataIndex>=0&&n.node2.dataIndex>=0}));for(r=0,o=i.length;r<o;r++)i[r].dataIndex=-1;for(r=0,o=e.count();r<o;r++)i[e.getRawIndex(r)].dataIndex=r},t.prototype.clone=function(){for(var e=new t(this._directed),n=this.nodes,i=this.edges,r=0;r<n.length;r++)e.addNode(n[r].id,n[r].dataIndex);for(r=0;r<i.length;r++){var o=i[r];e.addEdge(o.node1.id,o.node2.id,o.dataIndex)}return e},t}(),wC=function(){function t(t,e){this.inEdges=[],this.outEdges=[],this.edges=[],this.dataIndex=-1,this.id=null==t?"":t,this.dataIndex=null==e?-1:e}return t.prototype.degree=function(){return this.edges.length},t.prototype.inDegree=function(){return this.inEdges.length},t.prototype.outDegree=function(){return this.outEdges.length},t.prototype.getModel=function(t){if(!(this.dataIndex<0))return this.hostGraph.data.getItemModel(this.dataIndex).getModel(t)},t.prototype.getAdjacentDataIndices=function(){for(var t={edge:[],node:[]},e=0;e<this.edges.length;e++){var n=this.edges[e];n.dataIndex<0||(t.edge.push(n.dataIndex),t.node.push(n.node1.dataIndex,n.node2.dataIndex))}return t},t}(),SC=function(){function t(t,e,n){this.dataIndex=-1,this.node1=t,this.node2=e,this.dataIndex=null==n?-1:n}return t.prototype.getModel=function(t){if(!(this.dataIndex<0))return this.hostGraph.edgeData.getItemModel(this.dataIndex).getModel(t)},t.prototype.getAdjacentDataIndices=function(){return{edge:[this.dataIndex],node:[this.node1.dataIndex,this.node2.dataIndex]}},t}();function MC(t,e){return{getValue:function(n){var i=this[t][e];return i.get(i.getDimension(n||"value"),this.dataIndex)},setVisual:function(n,i){this.dataIndex>=0&&this[t][e].setItemVisual(this.dataIndex,n,i)},getVisual:function(n){return this[t][e].getItemVisual(this.dataIndex,n)},setLayout:function(n,i){this.dataIndex>=0&&this[t][e].setItemLayout(this.dataIndex,n,i)},getLayout:function(){return this[t][e].getItemLayout(this.dataIndex)},getGraphicEl:function(){return this[t][e].getItemGraphicEl(this.dataIndex)},getRawIndex:function(){return this[t][e].getRawIndex(this.dataIndex)}}}function IC(t,e,n,i,r){for(var o=new bC(i),a=0;a<t.length;a++)o.addNode(Q(t[a].id,t[a].name,a),a);var s=[],l=[],u=0;for(a=0;a<e.length;a++){var h=e[a],c=h.source,p=h.target;o.addEdge(c,p,u)&&(l.push(h),s.push(Q(Tr(h.id,null),c+" > "+p)),u++)}var d,f=n.get("coordinateSystem");if("cartesian2d"===f||"polar"===f)d=Hm(t,n);else{var g=_p.get(f),y=g&&g.dimensions||[];A(y,"value")<0&&y.concat(["value"]);var v=Nm(t,{coordDimensions:y});(d=new Pm(v,n)).initData(t)}var m=new Pm(["value"],n);return m.initData(l,s),r&&r(d,m),uI({mainData:d,struct:o,structAttr:"graph",datas:{node:d,edge:m},datasAttr:{node:"data",edge:"edgeData"}}),o.update(),o}L(wC,MC("hostGraph","data")),L(SC,MC("hostGraph","edgeData"));var TC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.hasSymbolVisual=!0,n}return n(e,t),e.prototype.init=function(e){t.prototype.init.apply(this,arguments);var n=this;function i(){return n._categoriesData}this.legendVisualProvider=new Nw(i,i),this.fillDataTextStyle(e.edges||e.links),this._updateCategoriesData()},e.prototype.mergeOption=function(e){t.prototype.mergeOption.apply(this,arguments),this.fillDataTextStyle(e.edges||e.links),this._updateCategoriesData()},e.prototype.mergeDefaultAndTheme=function(e){t.prototype.mergeDefaultAndTheme.apply(this,arguments),xr(e,"edgeLabel",["show"])},e.prototype.getInitialData=function(t,e){var n,i=t.edges||t.links||[],r=t.data||t.nodes||[],o=this;if(r&&i){kT(n=this)&&(n.__curvenessList=[],n.__edgeMap={},PT(n));var a=IC(r,i,this,!0,(function(t,e){t.wrapMethod("getItemModel",(function(t){var e=o._categoriesModels[t.getShallow("category")];return e&&(e.parentModel=t.parentModel,t.parentModel=e),t}));var n=Sh.prototype.getModel;function i(t,e){var i=n.call(this,t,e);return i.resolveParentPath=r,i}function r(t){if(t&&("label"===t[0]||"label"===t[1])){var e=t.slice();return"label"===t[0]?e[0]="edgeLabel":"label"===t[1]&&(e[1]="edgeLabel"),e}return t}e.wrapMethod("getItemModel",(function(t){return t.resolveParentPath=r,t.getModel=i,t}))}));return P(a.edges,(function(t){!function(t,e,n,i){if(kT(n)){var r=OT(t,e,n),o=n.__edgeMap,a=o[RT(r)];o[r]&&!a?o[r].isForward=!0:a&&o[r]&&(a.isForward=!0,o[r].isForward=!1),o[r]=o[r]||[],o[r].push(i)}}(t.node1,t.node2,this,t.dataIndex)}),this),a.data}},e.prototype.getGraph=function(){return this.getData().graph},e.prototype.getEdgeData=function(){return this.getGraph().edgeData},e.prototype.getCategoriesData=function(){return this._categoriesData},e.prototype.formatTooltip=function(t,e,n){if("edge"===n){var i=this.getData(),r=this.getDataParams(t,n),o=i.graph.getEdgeByIndex(t),a=i.getName(o.node1.dataIndex),s=i.getName(o.node2.dataIndex),l=[];return null!=a&&l.push(a),null!=s&&l.push(s),Yd("nameValue",{name:l.join(" > "),value:r.value,noValue:null==r.value})}return tf({series:this,dataIndex:t,multipleSeries:e})},e.prototype._updateCategoriesData=function(){var t=O(this.option.categories||[],(function(t){return null!=t.value?t:I({value:0},t)})),e=new Pm(["value"],this);e.initData(t),this._categoriesData=e,this._categoriesModels=e.mapArray((function(t){return e.getItemModel(t)}))},e.prototype.setZoom=function(t){this.option.zoom=t},e.prototype.setCenter=function(t){this.option.center=t},e.prototype.isAnimationEnabled=function(){return t.prototype.isAnimationEnabled.call(this)&&!("force"===this.get("layout")&&this.get(["force","layoutAnimation"]))},e.type="series.graph",e.dependencies=["grid","polar","geo","singleAxis","calendar"],e.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,opacity:.5},emphasis:{scale:!0,label:{show:!0}},select:{itemStyle:{borderColor:"#212121"}}},e}(rf),CC={type:"graphRoam",event:"graphRoam",update:"none"};var AC=function(){this.angle=0,this.width=10,this.r=10,this.x=0,this.y=0},DC=function(t){function e(e){var n=t.call(this,e)||this;return n.type="pointer",n}return n(e,t),e.prototype.getDefaultShape=function(){return new AC},e.prototype.buildPath=function(t,e){var n=Math.cos,i=Math.sin,r=e.r,o=e.width,a=e.angle,s=e.x-n(a)*o*(o>=r/3?1:2),l=e.y-i(a)*o*(o>=r/3?1:2);a=e.angle-Math.PI/2,t.moveTo(s,l),t.lineTo(e.x+n(a)*o,e.y+i(a)*o),t.lineTo(e.x+n(e.angle)*r,e.y+i(e.angle)*r),t.lineTo(e.x-n(a)*o,e.y-i(a)*o),t.lineTo(s,l)},e}(Za);function LC(t,e){var n=null==t?"":t+"";return e&&("string"==typeof e?n=e.replace("{value}",n):"function"==typeof e&&(n=e(t))),n}var kC=2*Math.PI,PC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){this.group.removeAll();var i=t.get(["axisLine","lineStyle","color"]),r=function(t,e){var n=t.get("center"),i=e.getWidth(),r=e.getHeight(),o=Math.min(i,r);return{cx:Zi(n[0],e.getWidth()),cy:Zi(n[1],e.getHeight()),r:Zi(t.get("radius"),o/2)}}(t,n);this._renderMain(t,e,n,i,r),this._data=t.getData()},e.prototype.dispose=function(){},e.prototype._renderMain=function(t,e,n,i,r){for(var o=this.group,a=t.get("clockwise"),s=-t.get("startAngle")/180*Math.PI,l=-t.get("endAngle")/180*Math.PI,u=t.getModel("axisLine"),h=u.get("roundCap")?aw:Wl,c=u.get("show"),p=u.getModel("lineStyle"),d=p.get("width"),f=(l-s)%kC||l===s?(l-s)%kC:kC,g=s,y=0;c&&y<i.length;y++){var v=new h({shape:{startAngle:g,endAngle:l=s+f*Math.min(Math.max(i[y][0],0),1),cx:r.cx,cy:r.cy,clockwise:a,r0:r.r-d,r:r.r},silent:!0});v.setStyle({fill:i[y][1]}),v.setStyle(p.getLineStyle(["color","width"])),o.add(v),g=l}var m=function(t){if(t<=0)return i[0][1];var e;for(e=0;e<i.length;e++)if(i[e][0]>=t&&(0===e?0:i[e-1][0])<t)return i[e][1];return i[e-1][1]};if(!a){var _=s;s=l,l=_}this._renderTicks(t,e,n,m,r,s,l,a,d),this._renderTitleAndDetail(t,e,n,m,r),this._renderAnchor(t,r),this._renderPointer(t,e,n,m,r,s,l,a,d)},e.prototype._renderTicks=function(t,e,n,i,r,o,a,s,l){for(var u,h,c=this.group,p=r.cx,d=r.cy,f=r.r,g=+t.get("min"),y=+t.get("max"),v=t.getModel("splitLine"),m=t.getModel("axisTick"),_=t.getModel("axisLabel"),x=t.get("splitNumber"),b=m.get("splitNumber"),w=Zi(v.get("length"),f),S=Zi(m.get("length"),f),M=o,I=(a-o)/x,T=I/b,C=v.getModel("lineStyle").getLineStyle(),A=m.getModel("lineStyle").getLineStyle(),D=v.get("distance"),L=0;L<=x;L++){if(u=Math.cos(M),h=Math.sin(M),v.get("show")){var k=new tu({shape:{x1:u*(f-(P=D?D+l:l))+p,y1:h*(f-P)+d,x2:u*(f-w-P)+p,y2:h*(f-w-P)+d},style:C,silent:!0});"auto"===C.stroke&&k.setStyle({stroke:i(L/x)}),c.add(k)}if(_.get("show")){var P=_.get("distance")+D,O=LC(ji(L/x*(y-g)+g),_.get("formatter")),R=i(L/x);c.add(new ls({style:nh(_,{text:O,x:u*(f-w-P)+p,y:h*(f-w-P)+d,verticalAlign:h<-.8?"top":h>.8?"bottom":"middle",align:u<-.4?"left":u>.4?"right":"center"},{inheritColor:R}),silent:!0}))}if(m.get("show")&&L!==x){P=(P=m.get("distance"))?P+l:l;for(var N=0;N<=b;N++){u=Math.cos(M),h=Math.sin(M);var E=new tu({shape:{x1:u*(f-P)+p,y1:h*(f-P)+d,x2:u*(f-S-P)+p,y2:h*(f-S-P)+d},silent:!0,style:A});"auto"===A.stroke&&E.setStyle({stroke:i((L+N/b)/x)}),c.add(E),M+=T}M-=T}else M+=I}},e.prototype._renderPointer=function(t,e,n,i,r,o,a,s,l){var u=this.group,h=this._data,c=this._progressEls,p=[],d=t.get(["pointer","show"]),f=t.getModel("progress"),g=f.get("show"),y=t.getData(),v=y.mapDimension("value"),m=+t.get("min"),_=+t.get("max"),x=[m,_],b=[o,a];function w(e,n){var i,o=y.getItemModel(e).getModel("pointer"),a=Zi(o.get("width"),r.r),s=Zi(o.get("length"),r.r),l=t.get(["pointer","icon"]),u=o.get("offsetCenter"),h=Zi(u[0],r.r),c=Zi(u[1],r.r),p=o.get("keepAspect");return(i=l?uy(l,h-a/2,c-s,a,s,null,p):new DC({shape:{angle:-Math.PI/2,width:a,r:s,x:h,y:c}})).rotation=-(n+Math.PI/2),i.x=r.cx,i.y=r.cy,i}function S(t,e){var n=f.get("roundCap")?aw:Wl,i=f.get("overlap"),a=i?f.get("width"):l/y.count(),u=i?r.r-a:r.r-(t+1)*a,h=i?r.r:r.r-t*a,c=new n({shape:{startAngle:o,endAngle:e,cx:r.cx,cy:r.cy,clockwise:s,r0:u,r:h}});return i&&(c.z2=_-y.get(v,t)%_),c}(g||d)&&(y.diff(h).add((function(e){if(d){var n=w(e,o);Ru(n,{rotation:-(Ui(y.get(v,e),x,b,!0)+Math.PI/2)},t),u.add(n),y.setItemGraphicEl(e,n)}if(g){var i=S(e,o),r=f.get("clip");Ru(i,{shape:{endAngle:Ui(y.get(v,e),x,b,r)}},t),u.add(i),p[e]=i}})).update((function(e,n){if(d){var i=h.getItemGraphicEl(n),r=i?i.rotation:o,a=w(e,r);a.rotation=r,Ou(a,{rotation:-(Ui(y.get(v,e),x,b,!0)+Math.PI/2)},t),u.add(a),y.setItemGraphicEl(e,a)}if(g){var s=c[n],l=S(e,s?s.shape.endAngle:o),m=f.get("clip");Ou(l,{shape:{endAngle:Ui(y.get(v,e),x,b,m)}},t),u.add(l),p[e]=l}})).execute(),y.each((function(t){var e=y.getItemModel(t),n=e.getModel("emphasis");if(d){var r=y.getItemGraphicEl(t);r.useStyle(y.getItemVisual(t,"style")),r.setStyle(e.getModel(["pointer","itemStyle"]).getItemStyle()),"auto"===r.style.fill&&r.setStyle("fill",i(Ui(y.get(v,t),x,[0,1],!0))),r.z2EmphasisLift=0,nl(r,e),Js(r,n.get("focus"),n.get("blurScope"))}if(g){var o=p[t];o.useStyle(y.getItemVisual(t,"style")),o.setStyle(e.getModel(["progress","itemStyle"]).getItemStyle()),o.z2EmphasisLift=0,nl(o,e),Js(o,n.get("focus"),n.get("blurScope"))}})),this._progressEls=p)},e.prototype._renderAnchor=function(t,e){var n=t.getModel("anchor");if(n.get("show")){var i=n.get("size"),r=n.get("icon"),o=n.get("offsetCenter"),a=n.get("keepAspect"),s=uy(r,e.cx-i/2+Zi(o[0],e.r),e.cy-i/2+Zi(o[1],e.r),i,i,null,a);s.z2=n.get("showAbove")?1:0,s.setStyle(n.getModel("itemStyle").getItemStyle()),this.group.add(s)}},e.prototype._renderTitleAndDetail=function(t,e,n,i,r){var o=this,a=t.getData(),s=a.mapDimension("value"),l=+t.get("min"),u=+t.get("max"),h=new zi,c=[],p=[],d=t.isAnimationEnabled();a.diff(this._data).add((function(t){c[t]=new ls({silent:!0}),p[t]=new ls({silent:!0})})).update((function(t,e){c[t]=o._titleEls[e],p[t]=o._detailEls[e]})).execute(),a.each((function(e){var n=a.getItemModel(e),o=a.get(s,e),f=new zi,g=i(Ui(o,[l,u],[0,1],!0)),y=n.getModel("title");if(y.get("show")){var v=y.get("offsetCenter"),m=r.cx+Zi(v[0],r.r),_=r.cy+Zi(v[1],r.r);(C=c[e]).attr({style:nh(y,{x:m,y:_,text:a.getName(e),align:"center",verticalAlign:"middle"},{inheritColor:g})}),f.add(C)}var x=n.getModel("detail");if(x.get("show")){var b=x.get("offsetCenter"),w=r.cx+Zi(b[0],r.r),S=r.cy+Zi(b[1],r.r),M=Zi(x.get("width"),r.r),I=Zi(x.get("height"),r.r),T=t.get(["progress","show"])?a.getItemVisual(e,"style").fill:g,C=p[e],A=x.get("formatter");C.attr({style:nh(x,{x:w,y:S,text:LC(o,A),width:isNaN(M)?null:M,height:isNaN(I)?null:I,align:"center",verticalAlign:"middle"},{inheritColor:T})}),hh(C,{normal:x},o,(function(t){return LC(t,A)})),d&&ch(C,e,a,t,{getFormattedLabel:function(t,e,n,i,r,a){return LC(a?a.interpolatedValue:o,A)}}),f.add(C)}h.add(f)})),this.group.add(h),this._titleEls=c,this._detailEls=p},e.type="gauge",e}(yf),OC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.visualStyleAccessPath="itemStyle",n.useColorPaletteOnData=!0,n}return n(e,t),e.prototype.getInitialData=function(t,e){return Rw(this,["value"])},e.type="series.gauge",e.defaultOption={zlevel:0,z:2,center:["50%","50%"],legendHoverLink:!0,radius:"75%",startAngle:225,endAngle:-45,clockwise:!0,min:0,max:100,splitNumber:10,axisLine:{show:!0,roundCap:!1,lineStyle:{color:[[1,"#E6EBF8"]],width:10}},progress:{show:!1,overlap:!0,width:10,roundCap:!1,clip:!0},splitLine:{show:!0,length:10,distance:10,lineStyle:{color:"#63677A",width:3,type:"solid"}},axisTick:{show:!0,splitNumber:5,length:6,distance:10,lineStyle:{color:"#63677A",width:1,type:"solid"}},axisLabel:{show:!0,distance:15,color:"#464646",fontSize:12},pointer:{icon:null,offsetCenter:[0,0],show:!0,length:"60%",width:6,keepAspect:!1},anchor:{show:!1,showAbove:!1,size:6,icon:"circle",offsetCenter:[0,0],keepAspect:!1,itemStyle:{color:"#fff",borderWidth:0,borderColor:"#5470c6"}},title:{show:!0,offsetCenter:[0,"20%"],color:"#464646",fontSize:16,valueAnimation:!1},detail:{show:!0,backgroundColor:"rgba(0,0,0,0)",borderWidth:0,borderColor:"#ccc",width:100,height:null,padding:[5,10],offsetCenter:[0,"40%"],color:"#464646",fontSize:30,fontWeight:"bold",lineHeight:30,valueAnimation:!1}},e}(rf);var RC=["itemStyle","opacity"],NC=function(t){function e(e,n){var i=t.call(this)||this,r=i,o=new $l,a=new ls;return r.setTextContent(a),i.setTextGuideLine(o),i.updateData(e,n,!0),i}return n(e,t),e.prototype.updateData=function(t,e,n){var i=this,r=t.hostModel,o=t.getItemModel(e),a=t.getItemLayout(e),s=o.getModel("emphasis"),l=o.get(RC);l=null==l?1:l,i.useStyle(t.getItemVisual(e,"style")),i.style.lineJoin="round",n?(i.setShape({points:a.points}),i.style.opacity=0,Ru(i,{style:{opacity:l}},r,e)):Ou(i,{style:{opacity:l},shape:{points:a.points}},r,e),nl(i,o),this._updateLabel(t,e),Js(this,s.get("focus"),s.get("blurScope"))},e.prototype._updateLabel=function(t,e){var n=this,i=this.getTextGuideLine(),r=n.getTextContent(),o=t.hostModel,a=t.getItemModel(e),s=t.getItemLayout(e).label,l=t.getItemVisual(e,"style"),u=l.fill;th(r,eh(a),{labelFetcher:t.hostModel,labelDataIndex:e,defaultOpacity:l.opacity,defaultText:t.getName(e)},{normal:{align:s.textAlign,verticalAlign:s.verticalAlign}}),n.setTextConfig({local:!0,inside:!!s.inside,insideStroke:u,outsideFill:u});var h=s.linePoints;i.setShape({points:h}),n.textGuideLineConfig={anchor:h?new In(h[0][0],h[0][1]):null},Ou(r,{style:{x:s.x,y:s.y}},o,e),r.attr({rotation:s.rotation,originX:s.x,originY:s.y,z2:10}),zg(n,Bg(a),{stroke:u})},e}(ql),EC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.ignoreLabelLineUpdate=!0,n}return n(e,t),e.prototype.render=function(t,e,n){var i=t.getData(),r=this._data,o=this.group;i.diff(r).add((function(t){var e=new NC(i,t);i.setItemGraphicEl(t,e),o.add(e)})).update((function(t,e){var n=r.getItemGraphicEl(e);n.updateData(i,t),o.add(n),i.setItemGraphicEl(t,n)})).remove((function(e){zu(r.getItemGraphicEl(e),t,e)})).execute(),this._data=i},e.prototype.remove=function(){this.group.removeAll(),this._data=null},e.prototype.dispose=function(){},e.type="funnel",e}(yf),zC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.useColorPaletteOnData=!0,n}return n(e,t),e.prototype.init=function(e){t.prototype.init.apply(this,arguments),this.legendVisualProvider=new Nw(B(this.getData,this),B(this.getRawData,this)),this._defaultLabelLine(e)},e.prototype.getInitialData=function(t,e){return Rw(this,{coordDimensions:["value"],encodeDefaulter:V(Qc,this)})},e.prototype._defaultLabelLine=function(t){xr(t,"labelLine",["show"]);var e=t.labelLine,n=t.emphasis.labelLine;e.show=e.show&&t.label.show,n.show=n.show&&t.emphasis.label.show},e.prototype.getDataParams=function(e){var n=this.getData(),i=t.prototype.getDataParams.call(this,e),r=n.mapDimension("value"),o=n.getSum(r);return i.percent=o?+(n.get(r,e)/o*100).toFixed(2):0,i.$vars.push("percent"),i},e.type="series.funnel",e.defaultOption={zlevel:0,z:2,legendHoverLink:!0,left:80,top:60,right:80,bottom:60,minSize:"0%",maxSize:"100%",sort:"descending",orient:"vertical",gap:0,funnelAlign:"center",label:{show:!0,position:"outer"},labelLine:{show:!0,length:20,lineStyle:{width:1}},itemStyle:{borderColor:"#fff",borderWidth:1},emphasis:{label:{show:!0}},select:{itemStyle:{borderColor:"#212121"}}},e}(rf);function BC(t,e){t.eachSeriesByType("funnel",(function(t){var n=t.getData(),i=n.mapDimension("value"),r=t.get("sort"),o=function(t,e){return Ac(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}(t,e),a=t.get("orient"),s=o.width,l=o.height,u=function(t,e){for(var n=t.mapDimension("value"),i=t.mapArray(n,(function(t){return t})),r=[],o="ascending"===e,a=0,s=t.count();a<s;a++)r[a]=a;return"function"==typeof e?r.sort(e):"none"!==e&&r.sort((function(t,e){return o?i[t]-i[e]:i[e]-i[t]})),r}(n,r),h=o.x,c=o.y,p="horizontal"===a?[Zi(t.get("minSize"),l),Zi(t.get("maxSize"),l)]:[Zi(t.get("minSize"),s),Zi(t.get("maxSize"),s)],d=n.getDataExtent(i),f=t.get("min"),g=t.get("max");null==f&&(f=Math.min(d[0],0)),null==g&&(g=d[1]);var y=t.get("funnelAlign"),v=t.get("gap"),m=(("horizontal"===a?s:l)-v*(n.count()-1))/n.count(),_=function(t,e){if("horizontal"===a){var r=Ui(n.get(i,t)||0,[f,g],p,!0),o=void 0;switch(y){case"top":o=c;break;case"center":o=c+(l-r)/2;break;case"bottom":o=c+(l-r)}return[[e,o],[e,o+r]]}var u,d=Ui(n.get(i,t)||0,[f,g],p,!0);switch(y){case"left":u=h;break;case"center":u=h+(s-d)/2;break;case"right":u=h+s-d}return[[u,e],[u+d,e]]};"ascending"===r&&(m=-m,v=-v,"horizontal"===a?h+=s:c+=l,u=u.reverse());for(var x=0;x<u.length;x++){var b=u[x],w=u[x+1],S=n.getItemModel(b);if("horizontal"===a){var M=S.get(["itemStyle","width"]);null==M?M=m:(M=Zi(M,s),"ascending"===r&&(M=-M));var I=_(b,h),T=_(w,h+M);h+=M+v,n.setItemLayout(b,{points:I.concat(T.slice().reverse())})}else{var C=S.get(["itemStyle","height"]);null==C?C=m:(C=Zi(C,l),"ascending"===r&&(C=-C));I=_(b,c),T=_(w,c+C);c+=C+v,n.setItemLayout(b,{points:I.concat(T.slice().reverse())})}}!function(t){var e=t.hostModel.get("orient");t.each((function(n){var i,r,o,a,s=t.getItemModel(n),l=s.getModel("label").get("position"),u=s.getModel("labelLine"),h=t.getItemLayout(n),c=h.points,p="inner"===l||"inside"===l||"center"===l||"insideLeft"===l||"insideRight"===l;if(p)"insideLeft"===l?(r=(c[0][0]+c[3][0])/2+5,o=(c[0][1]+c[3][1])/2,i="left"):"insideRight"===l?(r=(c[1][0]+c[2][0])/2-5,o=(c[1][1]+c[2][1])/2,i="right"):(r=(c[0][0]+c[1][0]+c[2][0]+c[3][0])/4,o=(c[0][1]+c[1][1]+c[2][1]+c[3][1])/4,i="center"),a=[[r,o],[r,o]];else{var d=void 0,f=void 0,g=void 0,y=void 0,v=u.get("length");"left"===l?(d=(c[3][0]+c[0][0])/2,f=(c[3][1]+c[0][1])/2,r=(g=d-v)-5,i="right"):"right"===l?(d=(c[1][0]+c[2][0])/2,f=(c[1][1]+c[2][1])/2,r=(g=d+v)+5,i="left"):"top"===l?(d=(c[3][0]+c[0][0])/2,o=(y=(f=(c[3][1]+c[0][1])/2)-v)-5,i="center"):"bottom"===l?(d=(c[1][0]+c[2][0])/2,o=(y=(f=(c[1][1]+c[2][1])/2)+v)+5,i="center"):"rightTop"===l?(d="horizontal"===e?c[3][0]:c[1][0],f="horizontal"===e?c[3][1]:c[1][1],"horizontal"===e?(o=(y=f-v)-5,i="center"):(r=(g=d+v)+5,i="top")):"rightBottom"===l?(d=c[2][0],f=c[2][1],"horizontal"===e?(o=(y=f+v)+5,i="center"):(r=(g=d+v)+5,i="bottom")):"leftTop"===l?(d=c[0][0],f="horizontal"===e?c[0][1]:c[1][1],"horizontal"===e?(o=(y=f-v)-5,i="center"):(r=(g=d-v)-5,i="right")):"leftBottom"===l?(d="horizontal"===e?c[1][0]:c[3][0],f="horizontal"===e?c[1][1]:c[2][1],"horizontal"===e?(o=(y=f+v)+5,i="center"):(r=(g=d-v)-5,i="right")):(d=(c[1][0]+c[2][0])/2,f=(c[1][1]+c[2][1])/2,"horizontal"===e?(o=(y=f+v)+5,i="center"):(r=(g=d+v)+5,i="left")),"horizontal"===e?r=g=d:o=y=f,a=[[d,f],[g,y]]}h.label={linePoints:a,x:r,y:o,verticalAlign:"middle",textAlign:i,inside:p}}))}(n)}))}var VC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._dataGroup=new zi,n._initialized=!1,n}return n(e,t),e.prototype.init=function(){this.group.add(this._dataGroup)},e.prototype.render=function(t,e,n,i){var r=this._dataGroup,o=t.getData(),a=this._data,s=t.coordinateSystem,l=s.dimensions,u=HC(t);if(o.diff(a).add((function(t){WC(GC(o,r,t,l,s),o,t,u)})).update((function(e,n){var i=a.getItemGraphicEl(n),r=FC(o,e,l,s);o.setItemGraphicEl(e,i),Ou(i,{shape:{points:r}},t,e),WC(i,o,e,u)})).remove((function(t){var e=a.getItemGraphicEl(t);r.remove(e)})).execute(),!this._initialized){this._initialized=!0;var h=function(t,e,n){var i=t.model,r=t.getRect(),o=new os({shape:{x:r.x,y:r.y,width:r.width,height:r.height}}),a="horizontal"===i.get("layout")?"width":"height";return o.setShape(a,0),Ru(o,{shape:{width:r.width,height:r.height}},e,n),o}(s,t,(function(){setTimeout((function(){r.removeClipPath()}))}));r.setClipPath(h)}this._data=o},e.prototype.incrementalPrepareRender=function(t,e,n){this._initialized=!0,this._data=null,this._dataGroup.removeAll()},e.prototype.incrementalRender=function(t,e,n){for(var i=e.getData(),r=e.coordinateSystem,o=r.dimensions,a=HC(e),s=t.start;s<t.end;s++){var l=GC(i,this._dataGroup,s,o,r);l.incremental=!0,WC(l,i,s,a)}},e.prototype.remove=function(){this._dataGroup&&this._dataGroup.removeAll(),this._data=null},e.type="parallel",e}(yf);function FC(t,e,n,i){for(var r,o=[],a=0;a<n.length;a++){var s=n[a],l=t.get(t.mapDimension(s),e);r=l,("category"===i.getAxis(s).type?null==r:null==r||isNaN(r))||o.push(i.dataToPoint(l,s))}return o}function GC(t,e,n,i,r){var o=FC(t,n,i,r),a=new $l({shape:{points:o},z2:10});return e.add(a),t.setItemGraphicEl(n,a),a}function HC(t){var e=t.get("smooth",!0);return!0===e&&(e=.3),J(e=hr(e))&&(e=0),{smooth:e}}function WC(t,e,n,i){t.useStyle(e.getItemVisual(n,"style")),t.style.fill=null,t.setShape("smooth",i.smooth);var r=e.getItemModel(n),o=r.getModel("emphasis");nl(t,r,"lineStyle"),Js(t,o.get("focus"),o.get("blurScope"))}var YC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.visualStyleAccessPath="lineStyle",n.visualDrawType="stroke",n}return n(e,t),e.prototype.getInitialData=function(t,e){return Hm(this.getSource(),this,{useEncodeDefaulter:B(XC,null,this)})},e.prototype.getRawIndicesByActiveState=function(t){var e=this.coordinateSystem,n=this.getData(),i=[];return e.eachActiveState(n,(function(e,r){t===e&&i.push(n.getRawIndex(r))})),i},e.type="series.parallel",e.dependencies=["parallel"],e.defaultOption={zlevel:0,z:2,coordinateSystem:"parallel",parallelIndex:0,label:{show:!1},inactiveOpacity:.05,activeOpacity:1,lineStyle:{width:1,opacity:.45,type:"solid"},emphasis:{label:{show:!1}},progressive:500,smooth:!1,animationEasing:"linear"},e}(rf);function XC(t){var e=t.ecModel.getComponent("parallel",t.get("parallelIndex"));if(e){var n={};return P(e.dimensions,(function(t){var e=+t.replace("dim","");n[t]=e})),n}}var UC=["lineStyle","opacity"],ZC={seriesType:"parallel",reset:function(t,e){var n=t.coordinateSystem,i={normal:t.get(["lineStyle","opacity"]),active:t.get("activeOpacity"),inactive:t.get("inactiveOpacity")};return{progress:function(t,e){n.eachActiveState(e,(function(t,n){var r=i[t];if("normal"===t&&e.hasItemOption){var o=e.getItemModel(n).get(UC,!0);null!=o&&(r=o)}e.ensureUniqueItemVisual(n,"style").opacity=r}),t.start,t.end)}}}};function jC(t){!function(t){if(t.parallel)return;var e=!1;P(t.series,(function(t){t&&"parallel"===t.type&&(e=!0)})),e&&(t.parallel=[{}])}(t),function(t){P(_r(t.parallelAxis),(function(e){if(X(e)){var n=e.parallelIndex||0,i=_r(t.parallel)[n];i&&i.parallelAxisDefault&&S(e,i.parallelAxisDefault,!1)}}))}(t)}var qC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){this._model=t,this._api=n,this._handlers||(this._handlers={},P(KC,(function(t,e){n.getZr().on(e,this._handlers[e]=B(t,this))}),this)),Tf(this,"_throttledDispatchExpand",t.get("axisExpandRate"),"fixRate")},e.prototype.dispose=function(t,e){P(this._handlers,(function(t,n){e.getZr().off(n,t)})),this._handlers=null},e.prototype._throttledDispatchExpand=function(t){this._dispatchExpand(t)},e.prototype._dispatchExpand=function(t){t&&this._api.dispatchAction(I({type:"parallelAxisExpand"},t))},e.type="parallel",e}(pf),KC={mousedown:function(t){$C(this,"click")&&(this._mouseDownPoint=[t.offsetX,t.offsetY])},mouseup:function(t){var e=this._mouseDownPoint;if($C(this,"click")&&e){var n=[t.offsetX,t.offsetY];if(Math.pow(e[0]-n[0],2)+Math.pow(e[1]-n[1],2)>5)return;var i=this._model.coordinateSystem.getSlidedAxisExpandWindow([t.offsetX,t.offsetY]);"none"!==i.behavior&&this._dispatchExpand({axisExpandWindow:i.axisExpandWindow})}this._mouseDownPoint=null},mousemove:function(t){if(!this._mouseDownPoint&&$C(this,"mousemove")){var e=this._model,n=e.coordinateSystem.getSlidedAxisExpandWindow([t.offsetX,t.offsetY]),i=n.behavior;"jump"===i&&this._throttledDispatchExpand.debounceNextCall(e.get("axisExpandDebounce")),this._throttledDispatchExpand("none"===i?null:{axisExpandWindow:n.axisExpandWindow,animation:"jump"===i?null:{duration:0}})}}};function $C(t,e){var n=t._model;return n.get("axisExpandable")&&n.get("axisExpandTriggerOn")===e}var JC=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(){t.prototype.init.apply(this,arguments),this.mergeOption({})},e.prototype.mergeOption=function(t){var e=this.option;t&&S(e,t,!0),this._initDimensions()},e.prototype.contains=function(t,e){var n=t.get("parallelIndex");return null!=n&&e.getComponent("parallel",n)===this},e.prototype.setAxisExpand=function(t){P(["axisExpandable","axisExpandCenter","axisExpandCount","axisExpandWidth","axisExpandWindow"],(function(e){t.hasOwnProperty(e)&&(this.option[e]=t[e])}),this)},e.prototype._initDimensions=function(){var t=this.dimensions=[],e=this.parallelAxisIndex=[];P(N(this.ecModel.queryComponents({mainType:"parallelAxis"}),(function(t){return(t.get("parallelIndex")||0)===this.componentIndex}),this),(function(n){t.push("dim"+n.get("dim")),e.push(n.componentIndex)}))},e.type="parallel",e.dependencies=["parallelAxis"],e.layoutMode="box",e.defaultOption={zlevel:0,z:0,left:80,top:60,right:80,bottom:60,layout:"horizontal",axisExpandable:!1,axisExpandCenter:null,axisExpandCount:0,axisExpandWidth:50,axisExpandRate:17,axisExpandDebounce:50,axisExpandSlideTriggerArea:[-.15,.05,.4],axisExpandTriggerOn:"click",parallelAxisDefault:null},e}(Nc),QC=function(t){function e(e,n,i,r,o){var a=t.call(this,e,n,i)||this;return a.type=r||"value",a.axisIndex=o,a}return n(e,t),e.prototype.isHorizontal=function(){return"horizontal"!==this.coordinateSystem.getModel().get("layout")},e}(vx);function tA(t,e,n,i,r,o){t=t||0;var a=n[1]-n[0];if(null!=r&&(r=nA(r,[0,a])),null!=o&&(o=Math.max(o,null!=r?r:0)),"all"===i){var s=Math.abs(e[1]-e[0]);s=nA(s,[0,a]),r=o=nA(s,[r,o]),i=0}e[0]=nA(e[0],n),e[1]=nA(e[1],n);var l=eA(e,i);e[i]+=t;var u,h=r||0,c=n.slice();return l.sign<0?c[0]+=h:c[1]-=h,e[i]=nA(e[i],c),u=eA(e,i),null!=r&&(u.sign!==l.sign||u.span<r)&&(e[1-i]=e[i]+l.sign*r),u=eA(e,i),null!=o&&u.span>o&&(e[1-i]=e[i]+u.sign*o),e}function eA(t,e){var n=t[e]-t[1-e];return{span:Math.abs(n),sign:n>0?-1:n<0?1:e?-1:1}}function nA(t,e){return Math.min(null!=e[1]?e[1]:1/0,Math.max(null!=e[0]?e[0]:-1/0,t))}var iA=P,rA=Math.min,oA=Math.max,aA=Math.floor,sA=Math.ceil,lA=ji,uA=Math.PI,hA=function(){function t(t,e,n){this.type="parallel",this._axesMap=ht(),this._axesLayout={},this.dimensions=t.dimensions,this._model=t,this._init(t,e,n)}return t.prototype._init=function(t,e,n){var i=t.dimensions,r=t.parallelAxisIndex;iA(i,(function(t,n){var i=r[n],o=e.getComponent("parallelAxis",i),a=this._axesMap.set(t,new QC(t,G_(o),[0,0],o.get("type"),i)),s="category"===a.type;a.onBand=s&&o.get("boundaryGap"),a.inverse=o.get("inverse"),o.axis=a,a.model=o,a.coordinateSystem=o.coordinateSystem=this}),this)},t.prototype.update=function(t,e){this._updateAxesFromSeries(this._model,t)},t.prototype.containPoint=function(t){var e=this._makeLayoutInfo(),n=e.axisBase,i=e.layoutBase,r=e.pixelDimIndex,o=t[1-r],a=t[r];return o>=n&&o<=n+e.axisLength&&a>=i&&a<=i+e.layoutLength},t.prototype.getModel=function(){return this._model},t.prototype._updateAxesFromSeries=function(t,e){e.eachSeries((function(n){if(t.contains(n,e)){var i=n.getData();iA(this.dimensions,(function(t){var e=this._axesMap.get(t);e.scale.unionExtentFromData(i,i.mapDimension(t)),F_(e.scale,e.model)}),this)}}),this)},t.prototype.resize=function(t,e){this._rect=Ac(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()}),this._layoutAxes()},t.prototype.getRect=function(){return this._rect},t.prototype._makeLayoutInfo=function(){var t,e=this._model,n=this._rect,i=["x","y"],r=["width","height"],o=e.get("layout"),a="horizontal"===o?0:1,s=n[r[a]],l=[0,s],u=this.dimensions.length,h=cA(e.get("axisExpandWidth"),l),c=cA(e.get("axisExpandCount")||0,[0,u]),p=e.get("axisExpandable")&&u>3&&u>c&&c>1&&h>0&&s>0,d=e.get("axisExpandWindow");d?(t=cA(d[1]-d[0],l),d[1]=d[0]+t):(t=cA(h*(c-1),l),(d=[h*(e.get("axisExpandCenter")||aA(u/2))-t/2])[1]=d[0]+t);var f=(s-t)/(u-c);f<3&&(f=0);var g=[aA(lA(d[0]/h,1))+1,sA(lA(d[1]/h,1))-1],y=f/h*d[0];return{layout:o,pixelDimIndex:a,layoutBase:n[i[a]],layoutLength:s,axisBase:n[i[1-a]],axisLength:n[r[1-a]],axisExpandable:p,axisExpandWidth:h,axisCollapseWidth:f,axisExpandWindow:d,axisCount:u,winInnerIndices:g,axisExpandWindow0Pos:y}},t.prototype._layoutAxes=function(){var t=this._rect,e=this._axesMap,n=this.dimensions,i=this._makeLayoutInfo(),r=i.layout;e.each((function(t){var e=[0,i.axisLength],n=t.inverse?1:0;t.setExtent(e[n],e[1-n])})),iA(n,(function(e,n){var o=(i.axisExpandable?dA:pA)(n,i),a={horizontal:{x:o.position,y:i.axisLength},vertical:{x:0,y:o.position}},s={horizontal:uA/2,vertical:0},l=[a[r].x+t.x,a[r].y+t.y],u=s[r],h=[1,0,0,1,0,0];_e(h,h,u),me(h,h,l),this._axesLayout[e]={position:l,rotation:u,transform:h,axisNameAvailableWidth:o.axisNameAvailableWidth,axisLabelShow:o.axisLabelShow,nameTruncateMaxWidth:o.nameTruncateMaxWidth,tickDirection:1,labelDirection:1}}),this)},t.prototype.getAxis=function(t){return this._axesMap.get(t)},t.prototype.dataToPoint=function(t,e){return this.axisCoordToPoint(this._axesMap.get(e).dataToCoord(t),e)},t.prototype.eachActiveState=function(t,e,n,i){null==n&&(n=0),null==i&&(i=t.count());var r=this._axesMap,o=this.dimensions,a=[],s=[];P(o,(function(e){a.push(t.mapDimension(e)),s.push(r.get(e).model)}));for(var l=this.hasAxisBrushed(),u=n;u<i;u++){var h=void 0;if(l){h="active";for(var c=t.getValues(a,u),p=0,d=o.length;p<d;p++){if("inactive"===s[p].getActiveState(c[p])){h="inactive";break}}}else h="normal";e(h,u)}},t.prototype.hasAxisBrushed=function(){for(var t=this.dimensions,e=this._axesMap,n=!1,i=0,r=t.length;i<r;i++)"normal"!==e.get(t[i]).model.getActiveState()&&(n=!0);return n},t.prototype.axisCoordToPoint=function(t,e){return Fu([t,0],this._axesLayout[e].transform)},t.prototype.getAxisLayout=function(t){return w(this._axesLayout[t])},t.prototype.getSlidedAxisExpandWindow=function(t){var e=this._makeLayoutInfo(),n=e.pixelDimIndex,i=e.axisExpandWindow.slice(),r=i[1]-i[0],o=[0,e.axisExpandWidth*(e.axisCount-1)];if(!this.containPoint(t))return{behavior:"none",axisExpandWindow:i};var a,s=t[n]-e.layoutBase-e.axisExpandWindow0Pos,l="slide",u=e.axisCollapseWidth,h=this._model.get("axisExpandSlideTriggerArea"),c=null!=h[0];if(u)c&&u&&s<r*h[0]?(l="jump",a=s-r*h[2]):c&&u&&s>r*(1-h[0])?(l="jump",a=s-r*(1-h[2])):(a=s-r*h[1])>=0&&(a=s-r*(1-h[1]))<=0&&(a=0),(a*=e.axisExpandWidth/u)?tA(a,i,o,"all"):l="none";else{var p=i[1]-i[0];(i=[oA(0,o[1]*s/p-p/2)])[1]=rA(o[1],i[0]+p),i[0]=i[1]-p}return{axisExpandWindow:i,behavior:l}},t}();function cA(t,e){return rA(oA(t,e[0]),e[1])}function pA(t,e){var n=e.layoutLength/(e.axisCount-1);return{position:n*t,axisNameAvailableWidth:n,axisLabelShow:!0}}function dA(t,e){var n,i,r=e.layoutLength,o=e.axisExpandWidth,a=e.axisCount,s=e.axisCollapseWidth,l=e.winInnerIndices,u=s,h=!1;return t<l[0]?(n=t*s,i=s):t<=l[1]?(n=e.axisExpandWindow0Pos+t*o-e.axisExpandWindow[0],u=o,h=!0):(n=r-(a-1-t)*s,i=s),{position:n,axisNameAvailableWidth:u,axisLabelShow:h,nameTruncateMaxWidth:i}}var fA={create:function(t,e){var n=[];return t.eachComponent("parallel",(function(i,r){var o=new hA(i,t,e);o.name="parallel_"+r,o.resize(i,e),i.coordinateSystem=o,o.model=i,n.push(o)})),t.eachSeries((function(t){if("parallel"===t.get("coordinateSystem")){var e=t.getReferringComponents("parallel",Or).models[0];t.coordinateSystem=e.coordinateSystem}})),n}},gA=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.activeIntervals=[],n}return n(e,t),e.prototype.getAreaSelectStyle=function(){return qr([["fill","color"],["lineWidth","borderWidth"],["stroke","borderColor"],["width","width"],["opacity","opacity"]])(this.getModel("areaSelectStyle"))},e.prototype.setActiveIntervals=function(t){var e=this.activeIntervals=w(t);if(e)for(var n=e.length-1;n>=0;n--)qi(e[n])},e.prototype.getActiveState=function(t){var e=this.activeIntervals;if(!e.length)return"normal";if(null==t||isNaN(+t))return"inactive";if(1===e.length){var n=e[0];if(n[0]<=t&&t<=n[1])return"active"}else for(var i=0,r=e.length;i<r;i++)if(e[i][0]<=t&&t<=e[i][1])return"active";return"inactive"},e}(Nc);L(gA,j_);var yA=!0,vA=Math.min,mA=Math.max,_A=Math.pow,xA="globalPan",bA={w:[0,0],e:[0,1],n:[1,0],s:[1,1]},wA={w:"ew",e:"ew",n:"ns",s:"ns",ne:"nesw",sw:"nesw",nw:"nwse",se:"nwse"},SA={brushStyle:{lineWidth:2,stroke:"rgba(210,219,238,0.3)",fill:"#D2DBEE"},transformable:!0,brushMode:"single",removeOnClick:!1},MA=0,IA=function(t){function e(e){var n=t.call(this)||this;return n._track=[],n._covers=[],n._handlers={},n._zr=e,n.group=new zi,n._uid="brushController_"+MA++,P(JA,(function(t,e){this._handlers[e]=B(t,this)}),n),n}return n(e,t),e.prototype.enableBrush=function(t){return this._brushType&&this._doDisableBrush(),t.brushType&&this._doEnableBrush(t),this},e.prototype._doEnableBrush=function(t){var e=this._zr;this._enableGlobalPan||function(t,e,n){JS(t)[e]=n}(e,xA,this._uid),P(this._handlers,(function(t,n){e.on(n,t)})),this._brushType=t.brushType,this._brushOption=S(w(SA),t,!0)},e.prototype._doDisableBrush=function(){var t=this._zr;!function(t,e,n){var i=JS(t);i[e]===n&&(i[e]=null)}(t,xA,this._uid),P(this._handlers,(function(e,n){t.off(n,e)})),this._brushType=this._brushOption=null},e.prototype.setPanels=function(t){if(t&&t.length){var e=this._panels={};P(t,(function(t){e[t.panelId]=w(t)}))}else this._panels=null;return this},e.prototype.mount=function(t){t=t||{},this._enableGlobalPan=t.enableGlobalPan;var e=this.group;return this._zr.add(e),e.attr({x:t.x||0,y:t.y||0,rotation:t.rotation||0,scaleX:t.scaleX||1,scaleY:t.scaleY||1}),this._transform=e.getLocalTransform(),this},e.prototype.updateCovers=function(t){t=O(t,(function(t){return S(w(SA),t,!0)}));var e=this._covers,n=this._covers=[],i=this,r=this._creatingCover;return new rm(e,t,(function(t,e){return o(t.__brushOption,e)}),o).add(a).update(a).remove((function(t){e[t]!==r&&i.group.remove(e[t])})).execute(),this;function o(t,e){return(null!=t.id?t.id:"\0-brush-index-"+e)+"-"+t.brushType}function a(o,a){var s=t[o];if(null!=a&&e[a]===r)n[o]=e[a];else{var l=n[o]=null!=a?(e[a].__brushOption=s,e[a]):CA(i,TA(i,s));LA(i,l)}}},e.prototype.unmount=function(){return this.enableBrush(!1),RA(this),this._zr.remove(this.group),this},e.prototype.dispose=function(){this.unmount(),this.off()},e}(Ft);function TA(t,e){var n=tD[e.brushType].createCover(t,e);return n.__brushOption=e,DA(n,e),t.group.add(n),n}function CA(t,e){var n=kA(e);return n.endCreating&&(n.endCreating(t,e),DA(e,e.__brushOption)),e}function AA(t,e){var n=e.__brushOption;kA(e).updateCoverShape(t,e,n.range,n)}function DA(t,e){var n=e.z;null==n&&(n=1e4),t.traverse((function(t){t.z=n,t.z2=n}))}function LA(t,e){kA(e).updateCommon(t,e),AA(t,e)}function kA(t){return tD[t.__brushOption.brushType]}function PA(t,e,n){var i,r=t._panels;if(!r)return yA;var o=t._transform;return P(r,(function(t){t.isTargetByCursor(e,n,o)&&(i=t)})),i}function OA(t,e){var n=t._panels;if(!n)return yA;var i=e.__brushOption.panelId;return null!=i?n[i]:yA}function RA(t){var e=t._covers,n=e.length;return P(e,(function(e){t.group.remove(e)}),t),e.length=0,!!n}function NA(t,e){var n=O(t._covers,(function(t){var e=t.__brushOption,n=w(e.range);return{brushType:e.brushType,panelId:e.panelId,range:n}}));t.trigger("brush",{areas:n,isEnd:!!e.isEnd,removeOnClick:!!e.removeOnClick})}function EA(t){var e=t.length-1;return e<0&&(e=0),[t[0],t[e]]}function zA(t,e,n,i){var r=new zi;return r.add(new os({name:"main",style:GA(n),silent:!0,draggable:!0,cursor:"move",drift:V(YA,t,e,r,["n","s","w","e"]),ondragend:V(NA,e,{isEnd:!0})})),P(i,(function(n){r.add(new os({name:n.join(""),style:{opacity:0},draggable:!0,silent:!0,invisible:!0,drift:V(YA,t,e,r,n),ondragend:V(NA,e,{isEnd:!0})}))})),r}function BA(t,e,n,i){var r=i.brushStyle.lineWidth||0,o=mA(r,6),a=n[0][0],s=n[1][0],l=a-r/2,u=s-r/2,h=n[0][1],c=n[1][1],p=h-o+r/2,d=c-o+r/2,f=h-a,g=c-s,y=f+r,v=g+r;FA(t,e,"main",a,s,f,g),i.transformable&&(FA(t,e,"w",l,u,o,v),FA(t,e,"e",p,u,o,v),FA(t,e,"n",l,u,y,o),FA(t,e,"s",l,d,y,o),FA(t,e,"nw",l,u,o,o),FA(t,e,"ne",p,u,o,o),FA(t,e,"sw",l,d,o,o),FA(t,e,"se",p,d,o,o))}function VA(t,e){var n=e.__brushOption,i=n.transformable,r=e.childAt(0);r.useStyle(GA(n)),r.attr({silent:!i,cursor:i?"move":"default"}),P([["w"],["e"],["n"],["s"],["s","e"],["s","w"],["n","e"],["n","w"]],(function(n){var r=e.childOfName(n.join("")),o=1===n.length?WA(t,n[0]):function(t,e){var n=[WA(t,e[0]),WA(t,e[1])];return("e"===n[0]||"w"===n[0])&&n.reverse(),n.join("")}(t,n);r&&r.attr({silent:!i,invisible:!i,cursor:i?wA[o]+"-resize":null})}))}function FA(t,e,n,i,r,o,a){var s=e.childOfName(n);s&&s.setShape(function(t){var e=vA(t[0][0],t[1][0]),n=vA(t[0][1],t[1][1]),i=mA(t[0][0],t[1][0]),r=mA(t[0][1],t[1][1]);return{x:e,y:n,width:i-e,height:r-n}}(ZA(t,e,[[i,r],[i+o,r+a]])))}function GA(t){return T({strokeNoScale:!0},t.brushStyle)}function HA(t,e,n,i){var r=[vA(t,n),vA(e,i)],o=[mA(t,n),mA(e,i)];return[[r[0],o[0]],[r[1],o[1]]]}function WA(t,e){return{left:"w",right:"e",top:"n",bottom:"s"}[Gu({w:"left",e:"right",n:"top",s:"bottom"}[e],function(t){return Vu(t.group)}(t))]}function YA(t,e,n,i,r,o){var a=n.__brushOption,s=t.toRectRange(a.range),l=UA(e,r,o);P(i,(function(t){var e=bA[t];s[e[0]][e[1]]+=l[e[0]]})),a.range=t.fromRectRange(HA(s[0][0],s[1][0],s[0][1],s[1][1])),LA(e,n),NA(e,{isEnd:!1})}function XA(t,e,n,i){var r=e.__brushOption.range,o=UA(t,n,i);P(r,(function(t){t[0]+=o[0],t[1]+=o[1]})),LA(t,e),NA(t,{isEnd:!1})}function UA(t,e,n){var i=t.group,r=i.transformCoordToLocal(e,n),o=i.transformCoordToLocal(0,0);return[r[0]-o[0],r[1]-o[1]]}function ZA(t,e,n){var i=OA(t,e);return i&&i!==yA?i.clipPath(n,t._transform):w(n)}function jA(t){var e=t.event;e.preventDefault&&e.preventDefault()}function qA(t,e,n){return t.childOfName("main").contain(e,n)}function KA(t,e,n,i){var r,o=t._creatingCover,a=t._creatingPanel,s=t._brushOption;if(t._track.push(n.slice()),function(t){var e=t._track;if(!e.length)return!1;var n=e[e.length-1],i=e[0],r=n[0]-i[0],o=n[1]-i[1];return _A(r*r+o*o,.5)>6}(t)||o){if(a&&!o){"single"===s.brushMode&&RA(t);var l=w(s);l.brushType=$A(l.brushType,a),l.panelId=a===yA?null:a.panelId,o=t._creatingCover=TA(t,l),t._covers.push(o)}if(o){var u=tD[$A(t._brushType,a)];o.__brushOption.range=u.getCreatingRange(ZA(t,o,t._track)),i&&(CA(t,o),u.updateCommon(t,o)),AA(t,o),r={isEnd:i}}}else i&&"single"===s.brushMode&&s.removeOnClick&&PA(t,e,n)&&RA(t)&&(r={isEnd:i,removeOnClick:!0});return r}function $A(t,e){return"auto"===t?e.defaultBrushType:t}var JA={mousedown:function(t){if(this._dragging)QA(this,t);else if(!t.target||!t.target.draggable){jA(t);var e=this.group.transformCoordToLocal(t.offsetX,t.offsetY);this._creatingCover=null,(this._creatingPanel=PA(this,t,e))&&(this._dragging=!0,this._track=[e.slice()])}},mousemove:function(t){var e=t.offsetX,n=t.offsetY,i=this.group.transformCoordToLocal(e,n);if(function(t,e,n){if(t._brushType&&!function(t,e,n){var i=t._zr;return e<0||e>i.getWidth()||n<0||n>i.getHeight()}(t,e.offsetX,e.offsetY)){var i=t._zr,r=t._covers,o=PA(t,e,n);if(!t._dragging)for(var a=0;a<r.length;a++){var s=r[a].__brushOption;if(o&&(o===yA||s.panelId===o.panelId)&&tD[s.brushType].contain(r[a],n[0],n[1]))return}o&&i.setCursorStyle("crosshair")}}(this,t,i),this._dragging){jA(t);var r=KA(this,t,i,!1);r&&NA(this,r)}},mouseup:function(t){QA(this,t)}};function QA(t,e){if(t._dragging){jA(e);var n=e.offsetX,i=e.offsetY,r=t.group.transformCoordToLocal(n,i),o=KA(t,e,r,!0);t._dragging=!1,t._track=[],t._creatingCover=null,o&&NA(t,o)}}var tD={lineX:eD(0),lineY:eD(1),rect:{createCover:function(t,e){function n(t){return t}return zA({toRectRange:n,fromRectRange:n},t,e,[["w"],["e"],["n"],["s"],["s","e"],["s","w"],["n","e"],["n","w"]])},getCreatingRange:function(t){var e=EA(t);return HA(e[1][0],e[1][1],e[0][0],e[0][1])},updateCoverShape:function(t,e,n,i){BA(t,e,n,i)},updateCommon:VA,contain:qA},polygon:{createCover:function(t,e){var n=new zi;return n.add(new $l({name:"main",style:GA(e),silent:!0})),n},getCreatingRange:function(t){return t},endCreating:function(t,e){e.remove(e.childAt(0)),e.add(new ql({name:"main",draggable:!0,drift:V(XA,t,e),ondragend:V(NA,t,{isEnd:!0})}))},updateCoverShape:function(t,e,n,i){e.childAt(0).setShape({points:ZA(t,e,n)})},updateCommon:VA,contain:qA}};function eD(t){return{createCover:function(e,n){return zA({toRectRange:function(e){var n=[e,[0,100]];return t&&n.reverse(),n},fromRectRange:function(e){return e[t]}},e,n,[[["w"],["e"]],[["n"],["s"]]][t])},getCreatingRange:function(e){var n=EA(e);return[vA(n[0][t],n[1][t]),mA(n[0][t],n[1][t])]},updateCoverShape:function(e,n,i,r){var o,a=OA(e,n);if(a!==yA&&a.getLinearBrushOtherExtent)o=a.getLinearBrushOtherExtent(t);else{var s=e._zr;o=[0,[s.getWidth(),s.getHeight()][1-t]]}var l=[i,o];t&&l.reverse(),BA(e,n,l,r)},updateCommon:VA,contain:qA}}function nD(t){return t=oD(t),function(e){return Yu(e,t)}}function iD(t,e){return t=oD(t),function(n){var i=null!=e?e:n,r=i?t.width:t.height,o=i?t.x:t.y;return[o,o+(r||0)]}}function rD(t,e,n){var i=oD(t);return function(t,r){return i.contain(r[0],r[1])&&!aM(t,e,n)}}function oD(t){return Rn.create(t)}var aD=["axisLine","axisTickLabel","axisName"],sD=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(e,n){t.prototype.init.apply(this,arguments),(this._brushController=new IA(n.getZr())).on("brush",B(this._onBrush,this))},e.prototype.render=function(t,e,n,i){if(!function(t,e,n){return n&&"axisAreaSelect"===n.type&&e.findComponents({mainType:"parallelAxis",query:n})[0]===t}(t,e,i)){this.axisModel=t,this.api=n,this.group.removeAll();var r=this._axisGroup;if(this._axisGroup=new zi,this.group.add(this._axisGroup),t.get("show")){var o=function(t,e){return e.getComponent("parallel",t.get("parallelIndex"))}(t,e),a=o.coordinateSystem,s=t.getAreaSelectStyle(),l=s.width,u=t.axis.dim,h=I({strokeContainThreshold:l},a.getAxisLayout(u)),c=new hS(t,h);P(aD,c.add,c),this._axisGroup.add(c.getGroup()),this._refreshBrushController(h,s,t,o,l,n),Wu(r,this._axisGroup,t)}}},e.prototype._refreshBrushController=function(t,e,n,i,r,o){var a=n.axis.getExtent(),s=a[1]-a[0],l=Math.min(30,.1*Math.abs(s)),u=Rn.create({x:a[0],y:-r/2,width:s,height:r});u.x-=l,u.width+=2*l,this._brushController.mount({enableGlobalPan:!0,rotation:t.rotation,x:t.position[0],y:t.position[1]}).setPanels([{panelId:"pl",clipPath:nD(u),isTargetByCursor:rD(u,o,i),getLinearBrushOtherExtent:iD(u,0)}]).enableBrush({brushType:"lineX",brushStyle:e,removeOnClick:!0}).updateCovers(function(t){var e=t.axis;return O(t.activeIntervals,(function(t){return{brushType:"lineX",panelId:"pl",range:[e.dataToCoord(t[0],!0),e.dataToCoord(t[1],!0)]}}))}(n))},e.prototype._onBrush=function(t){var e=t.areas,n=this.axisModel,i=n.axis,r=O(e,(function(t){return[i.coordToData(t.range[0],!0),i.coordToData(t.range[1],!0)]}));(!n.option.realtime===t.isEnd||t.removeOnClick)&&this.api.dispatchAction({type:"axisAreaSelect",parallelAxisId:n.id,intervals:r})},e.prototype.dispose=function(){this._brushController.dispose()},e.type="parallelAxis",e}(pf);var lD={type:"axisAreaSelect",event:"axisAreaSelected"};var uD={type:"value",areaSelectStyle:{width:20,borderWidth:1,borderColor:"rgba(160,197,232)",color:"rgba(160,197,232)",opacity:.3},realtime:!0,z:10};function hD(t){t.registerComponentView(qC),t.registerComponentModel(JC),t.registerCoordinateSystem("parallel",fA),t.registerPreprocessor(jC),t.registerComponentModel(gA),t.registerComponentView(sD),qw(t,"parallel",gA,uD),function(t){t.registerAction(lD,(function(t,e){e.eachComponent({mainType:"parallelAxis",query:t},(function(e){e.axis.model.setActiveIntervals(t.intervals)}))})),t.registerAction("parallelAxisExpand",(function(t,e){e.eachComponent({mainType:"parallel",query:t},(function(e){e.setAxisExpand(t)}))}))}(t)}var cD=function(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.cpx1=0,this.cpy1=0,this.cpx2=0,this.cpy2=0,this.extent=0},pD=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultShape=function(){return new cD},e.prototype.buildPath=function(t,e){var n=e.extent;t.moveTo(e.x1,e.y1),t.bezierCurveTo(e.cpx1,e.cpy1,e.cpx2,e.cpy2,e.x2,e.y2),"vertical"===e.orient?(t.lineTo(e.x2+n,e.y2),t.bezierCurveTo(e.cpx2+n,e.cpy2,e.cpx1+n,e.cpy1,e.x1+n,e.y1)):(t.lineTo(e.x2,e.y2+n),t.bezierCurveTo(e.cpx2,e.cpy2+n,e.cpx1,e.cpy1+n,e.x1,e.y1+n)),t.closePath()},e.prototype.highlight=function(){Hs(this)},e.prototype.downplay=function(){Ws(this)},e}(Za),dD=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._focusAdjacencyDisabled=!1,n}return n(e,t),e.prototype.render=function(t,e,n){var i=this,r=t.getGraph(),o=this.group,a=t.layoutInfo,s=a.width,l=a.height,u=t.getData(),h=t.getData("edge"),c=t.get("orient");this._model=t,o.removeAll(),o.x=a.x,o.y=a.y,r.eachEdge((function(e){var n=new pD,i=ys(n);i.dataIndex=e.dataIndex,i.seriesIndex=t.seriesIndex,i.dataType="edge";var r,a,u,p,d,f,g,y,v=e.getModel(),m=v.getModel("lineStyle"),_=m.get("curveness"),x=e.node1.getLayout(),b=e.node1.getModel(),w=b.get("localX"),S=b.get("localY"),M=e.node2.getLayout(),I=e.node2.getModel(),T=I.get("localX"),C=I.get("localY"),A=e.getLayout();switch(n.shape.extent=Math.max(1,A.dy),n.shape.orient=c,"vertical"===c?(r=(null!=w?w*s:x.x)+A.sy,a=(null!=S?S*l:x.y)+x.dy,u=(null!=T?T*s:M.x)+A.ty,d=r,f=a*(1-_)+(p=null!=C?C*l:M.y)*_,g=u,y=a*_+p*(1-_)):(r=(null!=w?w*s:x.x)+x.dx,a=(null!=S?S*l:x.y)+A.sy,d=r*(1-_)+(u=null!=T?T*s:M.x)*_,f=a,g=r*_+u*(1-_),y=p=(null!=C?C*l:M.y)+A.ty),n.setShape({x1:r,y1:a,x2:u,y2:p,cpx1:d,cpy1:f,cpx2:g,cpy2:y}),n.useStyle(m.getItemStyle()),n.style.fill){case"source":n.style.fill=e.node1.getVisual("color"),n.style.decal=e.node1.getVisual("style").decal;break;case"target":n.style.fill=e.node2.getVisual("color"),n.style.decal=e.node2.getVisual("style").decal;break;case"gradient":var D=e.node1.getVisual("color"),L=e.node2.getVisual("color");"string"==typeof D&&"string"==typeof L&&(n.style.fill=new uu(0,0,1,0,[{color:D,offset:0},{color:L,offset:1}]))}var k=v.getModel("emphasis");nl(n,v,"lineStyle",(function(t){return t.getItemStyle()})),o.add(n),h.setItemGraphicEl(e.dataIndex,n);var P=k.get("focus");Js(n,"adjacency"===P?e.getAdjacentDataIndices():P,k.get("blurScope")),ys(n).dataType="edge"})),r.eachNode((function(e){var n=e.getLayout(),i=e.getModel(),r=i.get("localX"),a=i.get("localY"),h=i.getModel("emphasis"),c=new os({shape:{x:null!=r?r*s:n.x,y:null!=a?a*l:n.y,width:n.dx,height:n.dy},style:i.getModel("itemStyle").getItemStyle()});th(c,eh(i),{labelFetcher:t,labelDataIndex:e.dataIndex,defaultText:e.id}),c.disableLabelAnimation=!0,c.setStyle("fill",e.getVisual("color")),c.setStyle("decal",e.getVisual("style").decal),nl(c,i),o.add(c),u.setItemGraphicEl(e.dataIndex,c),ys(c).dataType="node";var p=h.get("focus");Js(c,"adjacency"===p?e.getAdjacentDataIndices():p,h.get("blurScope"))})),u.eachItemGraphicEl((function(e,r){u.getItemModel(r).get("draggable")&&(e.drift=function(e,o){i._focusAdjacencyDisabled=!0,this.shape.x+=e,this.shape.y+=o,this.dirty(),n.dispatchAction({type:"dragNode",seriesId:t.id,dataIndex:u.getRawIndex(r),localX:this.shape.x/s,localY:this.shape.y/l})},e.ondragend=function(){i._focusAdjacencyDisabled=!1},e.draggable=!0,e.cursor="move")})),!this._data&&t.isAnimationEnabled()&&o.setClipPath(function(t,e,n){var i=new os({shape:{x:t.x-10,y:t.y-10,width:0,height:t.height+20}});return Ru(i,{shape:{width:t.width+20}},e,n),i}(o.getBoundingRect(),t,(function(){o.removeClipPath()}))),this._data=t.getData()},e.prototype.dispose=function(){},e.type="sankey",e}(yf);var fD=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.getInitialData=function(t,e){var n=t.edges||t.links,i=t.data||t.nodes,r=t.levels;this.levelModels=[];for(var o=this.levelModels,a=0;a<r.length;a++)null!=r[a].depth&&r[a].depth>=0&&(o[r[a].depth]=new Sh(r[a],this,e));if(i&&n)return IC(i,n,this,!0,(function(t,e){t.wrapMethod("getItemModel",(function(t,e){var n=t.parentModel,i=n.getData().getItemLayout(e);if(i){var r=i.depth,o=n.levelModels[r];o&&(t.parentModel=o)}return t})),e.wrapMethod("getItemModel",(function(t,e){var n=t.parentModel,i=n.getGraph().getEdgeByIndex(e).node1.getLayout();if(i){var r=i.depth,o=n.levelModels[r];o&&(t.parentModel=o)}return t}))})).data},e.prototype.setNodePosition=function(t,e){var n=this.option.data[t];n.localX=e[0],n.localY=e[1]},e.prototype.getGraph=function(){return this.getData().graph},e.prototype.getEdgeData=function(){return this.getGraph().edgeData},e.prototype.formatTooltip=function(t,e,n){function i(t){return isNaN(t)||null==t}if("edge"===n){var r=this.getDataParams(t,n),o=r.data,a=r.value;return Yd("nameValue",{name:o.source+" -- "+o.target,value:a,noValue:i(a)})}var s=this.getGraph().getNodeByIndex(t).getLayout().value,l=this.getDataParams(t,n).data.name;return Yd("nameValue",{name:null!=l?l+"":null,value:s,noValue:i(s)})},e.prototype.optionUpdated=function(){var t=this.option;!0===t.focusNodeAdjacency&&(t.focusNodeAdjacency="allEdges")},e.prototype.getDataParams=function(e,n){var i=t.prototype.getDataParams.call(this,e,n);if(null==i.value&&"node"===n){var r=this.getGraph().getNodeByIndex(e).getLayout().value;i.value=r}return i},e.type="series.sankey",e.defaultOption={zlevel:0,z:2,coordinateSystem:"view",left:"5%",top:"5%",right:"20%",bottom:"5%",orient:"horizontal",nodeWidth:20,nodeGap:8,draggable:!0,focusNodeAdjacency:!1,layoutIterations:32,label:{show:!0,position:"right",fontSize:12},levels:[],nodeAlign:"justify",lineStyle:{color:"#314656",opacity:.2,curveness:.5},emphasis:{label:{show:!0},lineStyle:{opacity:.5}},select:{itemStyle:{borderColor:"#212121"}},animationEasing:"linear",animationDuration:1e3},e}(rf);function gD(t,e){t.eachSeriesByType("sankey",(function(t){var n=t.get("nodeWidth"),i=t.get("nodeGap"),r=function(t,e){return Ac(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}(t,e);t.layoutInfo=r;var o=r.width,a=r.height,s=t.getGraph(),l=s.nodes,u=s.edges;!function(t){P(t,(function(t){var e=ID(t.outEdges,MD),n=ID(t.inEdges,MD),i=t.getValue()||0,r=Math.max(e,n,i);t.setLayout({value:r},!0)}))}(l),function(t,e,n,i,r,o,a,s,l){(function(t,e,n,i,r,o,a){for(var s=[],l=[],u=[],h=[],c=0,p=0;p<e.length;p++)s[p]=1;for(p=0;p<t.length;p++)l[p]=t[p].inEdges.length,0===l[p]&&u.push(t[p]);var d=-1;for(;u.length;){for(var f=0;f<u.length;f++){var g=u[f],y=g.hostGraph.data.getRawDataItem(g.dataIndex),v=null!=y.depth&&y.depth>=0;v&&y.depth>d&&(d=y.depth),g.setLayout({depth:v?y.depth:c},!0),"vertical"===o?g.setLayout({dy:n},!0):g.setLayout({dx:n},!0);for(var m=0;m<g.outEdges.length;m++){var _=g.outEdges[m];s[e.indexOf(_)]=0;var x=_.node2;0==--l[t.indexOf(x)]&&h.indexOf(x)<0&&h.push(x)}}++c,u=h,h=[]}for(p=0;p<s.length;p++)if(1===s[p])throw new Error("Sankey is a DAG, the original data has cycle!");var b=d>c-1?d:c-1;a&&"left"!==a&&function(t,e,n,i){if("right"===e){for(var r=[],o=t,a=0;o.length;){for(var s=0;s<o.length;s++){var l=o[s];l.setLayout({skNodeHeight:a},!0);for(var u=0;u<l.inEdges.length;u++){var h=l.inEdges[u];r.indexOf(h.node1)<0&&r.push(h.node1)}}o=r,r=[],++a}P(t,(function(t){yD(t)||t.setLayout({depth:Math.max(0,i-t.getLayout().skNodeHeight)},!0)}))}else"justify"===e&&function(t,e){P(t,(function(t){yD(t)||t.outEdges.length||t.setLayout({depth:e},!0)}))}(t,i)}(t,a,0,b);!function(t,e,n){P(t,(function(t){var i=t.getLayout().depth*e;"vertical"===n?t.setLayout({y:i},!0):t.setLayout({x:i},!0)}))}(t,"vertical"===o?(r-n)/b:(i-n)/b,o)})(t,e,n,r,o,s,l),function(t,e,n,i,r,o,a){var s=function(t,e){var n=[],i="vertical"===e?"y":"x",r=zr(t,(function(t){return t.getLayout()[i]}));return r.keys.sort((function(t,e){return t-e})),P(r.keys,(function(t){n.push(r.buckets.get(t))})),n}(t,a);(function(t,e,n,i,r,o){var a=1/0;P(t,(function(t){var e=t.length,s=0;P(t,(function(t){s+=t.getLayout().value}));var l="vertical"===o?(i-(e-1)*r)/s:(n-(e-1)*r)/s;l<a&&(a=l)})),P(t,(function(t){P(t,(function(t,e){var n=t.getLayout().value*a;"vertical"===o?(t.setLayout({x:e},!0),t.setLayout({dx:n},!0)):(t.setLayout({y:e},!0),t.setLayout({dy:n},!0))}))})),P(e,(function(t){var e=+t.getValue()*a;t.setLayout({dy:e},!0)}))})(s,e,n,i,r,a),vD(s,r,n,i,a);for(var l=1;o>0;o--)mD(s,l*=.99,a),vD(s,r,n,i,a),TD(s,l,a),vD(s,r,n,i,a)}(t,e,o,r,i,a,s),function(t,e){var n="vertical"===e?"x":"y";P(t,(function(t){t.outEdges.sort((function(t,e){return t.node2.getLayout()[n]-e.node2.getLayout()[n]})),t.inEdges.sort((function(t,e){return t.node1.getLayout()[n]-e.node1.getLayout()[n]}))})),P(t,(function(t){var e=0,n=0;P(t.outEdges,(function(t){t.setLayout({sy:e},!0),e+=t.getLayout().dy})),P(t.inEdges,(function(t){t.setLayout({ty:n},!0),n+=t.getLayout().dy}))}))}(t,s)}(l,u,n,i,o,a,0!==N(l,(function(t){return 0===t.getLayout().value})).length?0:t.get("layoutIterations"),t.get("orient"),t.get("nodeAlign"))}))}function yD(t){var e=t.hostGraph.data.getRawDataItem(t.dataIndex);return null!=e.depth&&e.depth>=0}function vD(t,e,n,i,r){var o="vertical"===r?"x":"y";P(t,(function(t){var a,s,l;t.sort((function(t,e){return t.getLayout()[o]-e.getLayout()[o]}));for(var u=0,h=t.length,c="vertical"===r?"dx":"dy",p=0;p<h;p++)(l=u-(s=t[p]).getLayout()[o])>0&&(a=s.getLayout()[o]+l,"vertical"===r?s.setLayout({x:a},!0):s.setLayout({y:a},!0)),u=s.getLayout()[o]+s.getLayout()[c]+e;if((l=u-e-("vertical"===r?i:n))>0){a=s.getLayout()[o]-l,"vertical"===r?s.setLayout({x:a},!0):s.setLayout({y:a},!0),u=a;for(p=h-2;p>=0;--p)(l=(s=t[p]).getLayout()[o]+s.getLayout()[c]+e-u)>0&&(a=s.getLayout()[o]-l,"vertical"===r?s.setLayout({x:a},!0):s.setLayout({y:a},!0)),u=s.getLayout()[o]}}))}function mD(t,e,n){P(t.slice().reverse(),(function(t){P(t,(function(t){if(t.outEdges.length){var i=ID(t.outEdges,_D,n)/ID(t.outEdges,MD);if(isNaN(i)){var r=t.outEdges.length;i=r?ID(t.outEdges,xD,n)/r:0}if("vertical"===n){var o=t.getLayout().x+(i-SD(t,n))*e;t.setLayout({x:o},!0)}else{var a=t.getLayout().y+(i-SD(t,n))*e;t.setLayout({y:a},!0)}}}))}))}function _D(t,e){return SD(t.node2,e)*t.getValue()}function xD(t,e){return SD(t.node2,e)}function bD(t,e){return SD(t.node1,e)*t.getValue()}function wD(t,e){return SD(t.node1,e)}function SD(t,e){return"vertical"===e?t.getLayout().x+t.getLayout().dx/2:t.getLayout().y+t.getLayout().dy/2}function MD(t){return t.getValue()}function ID(t,e,n){for(var i=0,r=t.length,o=-1;++o<r;){var a=+e(t[o],n);isNaN(a)||(i+=a)}return i}function TD(t,e,n){P(t,(function(t){P(t,(function(t){if(t.inEdges.length){var i=ID(t.inEdges,bD,n)/ID(t.inEdges,MD);if(isNaN(i)){var r=t.inEdges.length;i=r?ID(t.inEdges,wD,n)/r:0}if("vertical"===n){var o=t.getLayout().x+(i-SD(t,n))*e;t.setLayout({x:o},!0)}else{var a=t.getLayout().y+(i-SD(t,n))*e;t.setLayout({y:a},!0)}}}))}))}function CD(t){t.eachSeriesByType("sankey",(function(t){var e=t.getGraph().nodes;if(e.length){var n=1/0,i=-1/0;P(e,(function(t){var e=t.getLayout().value;e<n&&(n=e),e>i&&(i=e)})),P(e,(function(e){var r=new jI({type:"color",mappingMethod:"linear",dataExtent:[n,i],visual:t.get("color")}).mapValueToVisual(e.getLayout().value),o=e.getModel().get(["itemStyle","color"]);null!=o?(e.setVisual("color",o),e.setVisual("style",{fill:o})):(e.setVisual("color",r),e.setVisual("style",{fill:r}))}))}}))}var AD=function(){function t(){}return t.prototype.getInitialData=function(t,e){var n,i,r=e.getComponent("xAxis",this.get("xAxisIndex")),o=e.getComponent("yAxis",this.get("yAxisIndex")),a=r.get("type"),s=o.get("type");"category"===a?(t.layout="horizontal",n=r.getOrdinalMeta(),i=!0):"category"===s?(t.layout="vertical",n=o.getOrdinalMeta(),i=!0):t.layout=t.layout||"horizontal";var l=["x","y"],u="horizontal"===t.layout?0:1,h=this._baseAxisDim=l[u],c=l[1-u],p=[r,o],d=p[u].get("type"),f=p[1-u].get("type"),g=t.data;if(g&&i){var y=[];P(g,(function(t,e){var n;F(t)?(n=t.slice(),t.unshift(e)):F(t.value)?(n=t.value.slice(),t.value.unshift(e)):n=t,y.push(n)})),t.data=y}var v=this.defaultValueDimensions,m=[{name:h,type:am(d),ordinalMeta:n,otherDims:{tooltip:!1,itemName:0},dimsDef:["base"]},{name:c,type:am(f),dimsDef:v.slice()}];return Rw(this,{coordDimensions:m,dimensionsCount:v.length+1,encodeDefaulter:V(Jc,m,this)})},t.prototype.getBaseAxis=function(){var t=this._baseAxisDim;return this.ecModel.getComponent(t+"Axis",this.get(t+"AxisIndex")).axis},t}(),DD=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.defaultValueDimensions=[{name:"min",defaultTooltip:!0},{name:"Q1",defaultTooltip:!0},{name:"median",defaultTooltip:!0},{name:"Q3",defaultTooltip:!0},{name:"max",defaultTooltip:!0}],n.visualDrawType="stroke",n}return n(e,t),e.type="series.boxplot",e.dependencies=["xAxis","yAxis","grid"],e.defaultOption={zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,layout:null,boxWidth:[7,50],itemStyle:{color:"#fff",borderWidth:1},emphasis:{scale:!0,itemStyle:{borderWidth:2,shadowBlur:5,shadowOffsetX:1,shadowOffsetY:1,shadowColor:"rgba(0,0,0,0.2)"}},animationDuration:800},e}(rf);L(DD,AD,!0);var LD=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){var i=t.getData(),r=this.group,o=this._data;this._data||r.removeAll();var a="horizontal"===t.get("layout")?1:0;i.diff(o).add((function(t){if(i.hasValue(t)){var e=OD(i.getItemLayout(t),i,t,a,!0);i.setItemGraphicEl(t,e),r.add(e)}})).update((function(t,e){var n=o.getItemGraphicEl(e);if(i.hasValue(t)){var s=i.getItemLayout(t);n?RD(s,n,i,t):n=OD(s,i,t,a),r.add(n),i.setItemGraphicEl(t,n)}else r.remove(n)})).remove((function(t){var e=o.getItemGraphicEl(t);e&&r.remove(e)})).execute(),this._data=i},e.prototype.remove=function(t){var e=this.group,n=this._data;this._data=null,n&&n.eachItemGraphicEl((function(t){t&&e.remove(t)}))},e.type="boxplot",e}(yf),kD=function(){},PD=function(t){function e(e){var n=t.call(this,e)||this;return n.type="boxplotBoxPath",n}return n(e,t),e.prototype.getDefaultShape=function(){return new kD},e.prototype.buildPath=function(t,e){var n=e.points,i=0;for(t.moveTo(n[i][0],n[i][1]),i++;i<4;i++)t.lineTo(n[i][0],n[i][1]);for(t.closePath();i<n.length;i++)t.moveTo(n[i][0],n[i][1]),i++,t.lineTo(n[i][0],n[i][1])},e}(Za);function OD(t,e,n,i,r){var o=t.ends,a=new PD({shape:{points:r?ND(o,i,t):o}});return RD(t,a,e,n,r),a}function RD(t,e,n,i,r){var o=n.hostModel;(0,Ku[r?"initProps":"updateProps"])(e,{shape:{points:t.ends}},o,i),e.useStyle(n.getItemVisual(i,"style")),e.style.strokeNoScale=!0,e.z2=100;var a=n.getItemModel(i);nl(e,a),Js(e,a.get(["emphasis","focus"]),a.get(["emphasis","blurScope"]))}function ND(t,e,n){return O(t,(function(t){return(t=t.slice())[e]=n.initBaseline,t}))}function ED(t,e){t.eachRawSeriesByType("boxplot",(function(t){t.getData().setVisual("legendSymbol","roundRect")}))}var zD=P;function BD(t){var e=function(t){var e=[],n=[];return t.eachSeriesByType("boxplot",(function(t){var i=t.getBaseAxis(),r=A(n,i);r<0&&(r=n.length,n[r]=i,e[r]={axis:i,seriesModels:[]}),e[r].seriesModels.push(t)})),e}(t);zD(e,(function(t){var e=t.seriesModels;e.length&&(!function(t){var e,n,i=t.axis,r=t.seriesModels,o=r.length,a=t.boxWidthList=[],s=t.boxOffsetList=[],l=[];if("category"===i.type)n=i.getBandWidth();else{var u=0;zD(r,(function(t){u=Math.max(u,t.getData().count())})),e=i.getExtent(),Math.abs(e[1]-e[0])}zD(r,(function(t){var e=t.get("boxWidth");F(e)||(e=[e,e]),l.push([Zi(e[0],n)||0,Zi(e[1],n)||0])}));var h=.8*n-2,c=h/o*.3,p=(h-c*(o-1))/o,d=p/2-h/2;zD(r,(function(t,e){s.push(d),d+=c+p,a.push(Math.min(Math.max(p,l[e][0]),l[e][1]))}))}(t),zD(e,(function(e,n){!function(t,e,n){var i=t.coordinateSystem,r=t.getData(),o=n/2,a="horizontal"===t.get("layout")?0:1,s=1-a,l=["x","y"],u=r.mapDimension(l[a]),h=r.mapDimensionsAll(l[s]);if(null==u||h.length<5)return;for(var c=0;c<r.count();c++){var p=r.get(u,c),d=_(p,h[2],c),f=_(p,h[0],c),g=_(p,h[1],c),y=_(p,h[3],c),v=_(p,h[4],c),m=[];x(m,g,!1),x(m,y,!0),m.push(f,g,v,y),b(m,f),b(m,v),b(m,d),r.setItemLayout(c,{initBaseline:d[s],ends:m})}function _(t,n,o){var l,u=r.get(n,o),h=[];return h[a]=t,h[s]=u,isNaN(t)||isNaN(u)?l=[NaN,NaN]:(l=i.dataToPoint(h))[a]+=e,l}function x(t,e,n){var i=e.slice(),r=e.slice();i[a]+=o,r[a]-=o,n?t.push(i,r):t.push(r,i)}function b(t,e){var n=e.slice(),i=e.slice();n[a]-=o,i[a]+=o,t.push(n,i)}}(e,t.boxOffsetList[n],t.boxWidthList[n])})))}))}var VD={type:"echarts:boxplot",transform:function(t){var e=t.upstream;if(e.sourceFormat!==Gc){var n="";0,yr(n)}var i=function(t,e){for(var n=[],i=[],r=(e=e||{}).boundIQR,o="none"===r||0===r,a=0;a<t.length;a++){var s=qi(t[a].slice()),l=lr(s,.25),u=lr(s,.5),h=lr(s,.75),c=s[0],p=s[s.length-1],d=(null==r?1.5:r)*(h-l),f=o?c:Math.max(c,l-d),g=o?p:Math.min(p,h+d),y=e.itemNameFormatter,v=G(y)?y({value:a}):H(y)?y.replace("{value}",a+""):a+"";n.push([v,f,l,u,h,g]);for(var m=0;m<s.length;m++){var _=s[m];if(_<f||_>g){var x=[v,_];i.push(x)}}}return{boxData:n,outliers:i}}(e.getRawData(),t.config);return[{dimensions:["ItemName","Low","Q1","Q2","Q3","High"],data:i.boxData},{data:i.outliers}]}};var FD=["color","borderColor"],GD=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){this.group.removeClipPath(),this._updateDrawMode(t),this._isLargeDraw?this._renderLarge(t):this._renderNormal(t)},e.prototype.incrementalPrepareRender=function(t,e,n){this._clear(),this._updateDrawMode(t)},e.prototype.incrementalRender=function(t,e,n,i){this._isLargeDraw?this._incrementalRenderLarge(t,e):this._incrementalRenderNormal(t,e)},e.prototype._updateDrawMode=function(t){var e=t.pipelineContext.large;null!=this._isLargeDraw&&e===this._isLargeDraw||(this._isLargeDraw=e,this._clear())},e.prototype._renderNormal=function(t){var e=t.getData(),n=this._data,i=this.group,r=e.getLayout("isSimpleBox"),o=t.get("clip",!0),a=t.coordinateSystem,s=a.getArea&&a.getArea();this._data||i.removeAll(),e.diff(n).add((function(n){if(e.hasValue(n)){var a=e.getItemLayout(n);if(o&&XD(s,a))return;var l=YD(a,n,!0);Ru(l,{shape:{points:a.ends}},t,n),UD(l,e,n,r),i.add(l),e.setItemGraphicEl(n,l)}})).update((function(a,l){var u=n.getItemGraphicEl(l);if(e.hasValue(a)){var h=e.getItemLayout(a);o&&XD(s,h)?i.remove(u):(u?Ou(u,{shape:{points:h.ends}},t,a):u=YD(h),UD(u,e,a,r),i.add(u),e.setItemGraphicEl(a,u))}else i.remove(u)})).remove((function(t){var e=n.getItemGraphicEl(t);e&&i.remove(e)})).execute(),this._data=e},e.prototype._renderLarge=function(t){this._clear(),KD(t,this.group);var e=t.get("clip",!0)?Hb(t.coordinateSystem,!1,t):null;e?this.group.setClipPath(e):this.group.removeClipPath()},e.prototype._incrementalRenderNormal=function(t,e){for(var n,i=e.getData(),r=i.getLayout("isSimpleBox");null!=(n=t.next());){var o=YD(i.getItemLayout(n));UD(o,i,n,r),o.incremental=!0,this.group.add(o)}},e.prototype._incrementalRenderLarge=function(t,e){KD(e,this.group,!0)},e.prototype.remove=function(t){this._clear()},e.prototype._clear=function(){this.group.removeAll(),this._data=null},e.type="candlestick",e}(yf),HD=function(){},WD=function(t){function e(e){var n=t.call(this,e)||this;return n.type="normalCandlestickBox",n}return n(e,t),e.prototype.getDefaultShape=function(){return new HD},e.prototype.buildPath=function(t,e){var n=e.points;this.__simpleBox?(t.moveTo(n[4][0],n[4][1]),t.lineTo(n[6][0],n[6][1])):(t.moveTo(n[0][0],n[0][1]),t.lineTo(n[1][0],n[1][1]),t.lineTo(n[2][0],n[2][1]),t.lineTo(n[3][0],n[3][1]),t.closePath(),t.moveTo(n[4][0],n[4][1]),t.lineTo(n[5][0],n[5][1]),t.moveTo(n[6][0],n[6][1]),t.lineTo(n[7][0],n[7][1]))},e}(Za);function YD(t,e,n){var i=t.ends;return new WD({shape:{points:n?ZD(i,t):i},z2:100})}function XD(t,e){for(var n=!0,i=0;i<e.ends.length;i++)if(t.contain(e.ends[i][0],e.ends[i][1])){n=!1;break}return n}function UD(t,e,n,i){var r=e.getItemModel(n);t.useStyle(e.getItemVisual(n,"style")),t.style.strokeNoScale=!0,t.__simpleBox=i,nl(t,r)}function ZD(t,e){return O(t,(function(t){return(t=t.slice())[1]=e.initBaseline,t}))}var jD=function(){},qD=function(t){function e(e){var n=t.call(this,e)||this;return n.type="largeCandlestickBox",n}return n(e,t),e.prototype.getDefaultShape=function(){return new jD},e.prototype.buildPath=function(t,e){for(var n=e.points,i=0;i<n.length;)if(this.__sign===n[i++]){var r=n[i++];t.moveTo(r,n[i++]),t.lineTo(r,n[i++])}else i+=3},e}(Za);function KD(t,e,n){var i=t.getData().getLayout("largePoints"),r=new qD({shape:{points:i},__sign:1});e.add(r);var o=new qD({shape:{points:i},__sign:-1});e.add(o),$D(1,r,t),$D(-1,o,t),n&&(r.incremental=!0,o.incremental=!0)}function $D(t,e,n,i){var r=n.get(["itemStyle",t>0?"borderColor":"borderColor0"])||n.get(["itemStyle",t>0?"color":"color0"]),o=n.getModel("itemStyle").getItemStyle(FD);e.useStyle(o),e.style.fill=null,e.style.stroke=r}var JD=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.defaultValueDimensions=[{name:"open",defaultTooltip:!0},{name:"close",defaultTooltip:!0},{name:"lowest",defaultTooltip:!0},{name:"highest",defaultTooltip:!0}],n}return n(e,t),e.prototype.getShadowDim=function(){return"open"},e.prototype.brushSelector=function(t,e,n){var i=e.getItemLayout(t);return i&&n.rect(i.brushRect)},e.type="series.candlestick",e.dependencies=["xAxis","yAxis","grid"],e.defaultOption={zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,layout:null,clip:!0,itemStyle:{color:"#eb5454",color0:"#47b262",borderColor:"#eb5454",borderColor0:"#47b262",borderWidth:1},emphasis:{scale:!0,itemStyle:{borderWidth:2}},barMaxWidth:null,barMinWidth:null,barWidth:null,large:!0,largeThreshold:600,progressive:3e3,progressiveThreshold:1e4,progressiveChunkMode:"mod",animationEasing:"linear",animationDuration:300},e}(rf);function QD(t){t&&F(t.series)&&P(t.series,(function(t){X(t)&&"k"===t.type&&(t.type="candlestick")}))}L(JD,AD,!0);var tL=["itemStyle","borderColor"],eL=["itemStyle","borderColor0"],nL=["itemStyle","color"],iL=["itemStyle","color0"],rL={seriesType:"candlestick",plan:df(),performRawSeries:!0,reset:function(t,e){function n(t,e){return e.get(t>0?nL:iL)}function i(t,e){return e.get(t>0?tL:eL)}if(t.getData().setVisual("legendSymbol","roundRect"),!e.isSeriesFiltered(t))return!t.pipelineContext.large&&{progress:function(t,e){for(var r;null!=(r=t.next());){var o=e.getItemModel(r),a=e.getItemLayout(r).sign,s=o.getItemStyle();s.fill=n(a,o),s.stroke=i(a,o)||s.fill,I(e.ensureUniqueItemVisual(r,"style"),s)}}}}},oL="undefined"!=typeof Float32Array?Float32Array:Array,aL={seriesType:"candlestick",plan:df(),reset:function(t){var e=t.coordinateSystem,n=t.getData(),i=function(t,e){var n,i=t.getBaseAxis(),r="category"===i.type?i.getBandWidth():(n=i.getExtent(),Math.abs(n[1]-n[0])/e.count()),o=Zi(tt(t.get("barMaxWidth"),r),r),a=Zi(tt(t.get("barMinWidth"),1),r),s=t.get("barWidth");return null!=s?Zi(s,r):Math.max(Math.min(r/2,o),a)}(t,n),r=["x","y"],o=n.mapDimension(r[0]),a=n.mapDimensionsAll(r[1]),s=a[0],l=a[1],u=a[2],h=a[3];if(n.setLayout({candleWidth:i,isSimpleBox:i<=1.3}),!(null==o||a.length<4))return{progress:t.pipelineContext.large?function(t,n){var i,r,a=new oL(4*t.count),c=0,p=[],d=[];for(;null!=(r=t.next());){var f=n.get(o,r),g=n.get(s,r),y=n.get(l,r),v=n.get(u,r),m=n.get(h,r);isNaN(f)||isNaN(v)||isNaN(m)?(a[c++]=NaN,c+=3):(a[c++]=sL(n,r,g,y,l),p[0]=f,p[1]=v,i=e.dataToPoint(p,null,d),a[c++]=i?i[0]:NaN,a[c++]=i?i[1]:NaN,p[1]=m,i=e.dataToPoint(p,null,d),a[c++]=i?i[1]:NaN)}n.setLayout("largePoints",a)}:function(t,n){var r;for(;null!=(r=t.next());){var a=n.get(o,r),c=n.get(s,r),p=n.get(l,r),d=n.get(u,r),f=n.get(h,r),g=Math.min(c,p),y=Math.max(c,p),v=w(g,a),m=w(y,a),_=w(d,a),x=w(f,a),b=[];S(b,m,0),S(b,v,1),b.push(I(x),I(m),I(_),I(v)),n.setItemLayout(r,{sign:sL(n,r,c,p,l),initBaseline:c>p?m[1]:v[1],ends:b,brushRect:M(d,f,a)})}function w(t,n){var i=[];return i[0]=n,i[1]=t,isNaN(n)||isNaN(t)?[NaN,NaN]:e.dataToPoint(i)}function S(t,e,n){var r=e.slice(),o=e.slice();r[0]=ku(r[0]+i/2,1,!1),o[0]=ku(o[0]-i/2,1,!0),n?t.push(r,o):t.push(o,r)}function M(t,e,n){var r=w(t,n),o=w(e,n);return r[0]-=i/2,o[0]-=i/2,{x:r[0],y:r[1],width:i,height:o[1]-r[1]}}function I(t){return t[0]=ku(t[0],1),t}}}}};function sL(t,e,n,i,r){return n>i?-1:n<i?1:e>0?t.get(r,e-1)<=i?1:-1:1}function lL(t,e){var n=e.rippleEffectColor||e.color;t.eachChild((function(t){t.attr({z:e.z,zlevel:e.zlevel,style:{stroke:"stroke"===e.brushType?n:null,fill:"fill"===e.brushType?n:null}})}))}var uL=function(t){function e(e,n){var i=t.call(this)||this,r=new bb(e,n),o=new zi;return i.add(r),i.add(o),i.updateData(e,n),i}return n(e,t),e.prototype.stopEffectAnimation=function(){this.childAt(1).removeAll()},e.prototype.startEffectAnimation=function(t){for(var e=t.symbolType,n=t.color,i=this.childAt(1),r=0;r<3;r++){var o=uy(e,-1,-1,2,2,n);o.attr({style:{strokeNoScale:!0},z2:99,silent:!0,scaleX:.5,scaleY:.5});var a=-r/3*t.period+t.effectOffset;o.animate("",!0).when(t.period,{scale:[t.rippleScale/2,t.rippleScale/2]}).delay(a).start(),o.animateStyle(!0).when(t.period,{opacity:0}).delay(a).start(),i.add(o)}lL(i,t)},e.prototype.updateEffectAnimation=function(t){for(var e=this._effectCfg,n=this.childAt(1),i=["symbolType","period","rippleScale"],r=0;r<i.length;r++){var o=i[r];if(e[o]!==t[o])return this.stopEffectAnimation(),void this.startEffectAnimation(t)}lL(n,t)},e.prototype.highlight=function(){Hs(this)},e.prototype.downplay=function(){Ws(this)},e.prototype.updateData=function(t,e){var n=this,i=t.hostModel;this.childAt(0).updateData(t,e);var r=this.childAt(1),o=t.getItemModel(e),a=t.getItemVisual(e,"symbol"),s=function(t){return F(t)||(t=[+t,+t]),t}(t.getItemVisual(e,"symbolSize")),l=t.getItemVisual(e,"style"),u=l&&l.fill;r.setScale(s),r.traverse((function(t){t.setStyle("fill",u)}));var h=o.getShallow("symbolOffset");h&&(r.x=Zi(h[0],s[0]),r.y=Zi(h[1],s[1]));var c=t.getItemVisual(e,"symbolRotate");r.rotation=(c||0)*Math.PI/180||0;var p={};p.showEffectOn=i.get("showEffectOn"),p.rippleScale=o.get(["rippleEffect","scale"]),p.brushType=o.get(["rippleEffect","brushType"]),p.period=1e3*o.get(["rippleEffect","period"]),p.effectOffset=e/t.count(),p.z=i.getShallow("z")||0,p.zlevel=i.getShallow("zlevel")||0,p.symbolType=a,p.color=u,p.rippleEffectColor=o.get(["rippleEffect","color"]),this.off("mouseover").off("mouseout").off("emphasis").off("normal"),"render"===p.showEffectOn?(this._effectCfg?this.updateEffectAnimation(p):this.startEffectAnimation(p),this._effectCfg=p):(this._effectCfg=null,this.stopEffectAnimation(),this.onHoverStateChange=function(t){"emphasis"===t?"render"!==p.showEffectOn&&n.startEffectAnimation(p):"normal"===t&&"render"!==p.showEffectOn&&n.stopEffectAnimation()}),this._effectCfg=p,Js(this)},e.prototype.fadeOut=function(t){this.off("mouseover").off("mouseout"),t&&t()},e}(zi);D(uL,zi);var hL=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(){this._symbolDraw=new Tb(uL)},e.prototype.render=function(t,e,n){var i=t.getData(),r=this._symbolDraw;r.updateData(i),this.group.add(r.group)},e.prototype.updateTransform=function(t,e,n){var i=t.getData();this.group.dirty();var r=Qb("").reset(t,e,n);r.progress&&r.progress({start:0,end:i.count(),count:i.count()},i),this._symbolDraw.updateLayout()},e.prototype._updateGroupTransform=function(t){var e=t.coordinateSystem;e&&e.getRoamTransform&&(this.group.transform=we(e.getRoamTransform()),this.group.decomposeTransform())},e.prototype.remove=function(t,e){this._symbolDraw&&this._symbolDraw.remove(!0)},e.type="effectScatter",e}(yf),cL=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.hasSymbolVisual=!0,n}return n(e,t),e.prototype.getInitialData=function(t,e){return Hm(this.getSource(),this,{useEncodeDefaulter:!0})},e.prototype.brushSelector=function(t,e,n){return n.point(e.getItemLayout(t))},e.type="series.effectScatter",e.dependencies=["grid","polar"],e.defaultOption={coordinateSystem:"cartesian2d",zlevel:0,z:2,legendHoverLink:!0,effectType:"ripple",progressive:0,showEffectOn:"render",rippleEffect:{period:4,scale:2.5,brushType:"fill"},symbolSize:10},e}(rf);var pL=function(t){function e(e,n,i){var r=t.call(this)||this;return r.add(r.createLine(e,n,i)),r._updateEffectSymbol(e,n),r}return n(e,t),e.prototype.createLine=function(t,e,n){return new oC(t,e,n)},e.prototype._updateEffectSymbol=function(t,e){var n=t.getItemModel(e).getModel("effect"),i=n.get("symbolSize"),r=n.get("symbol");F(i)||(i=[i,i]);var o=t.getItemVisual(e,"style"),a=n.get("color")||o&&o.stroke,s=this.childAt(1);this._symbolType!==r&&(this.remove(s),(s=uy(r,-.5,-.5,1,1,a)).z2=100,s.culling=!0,this.add(s)),s&&(s.setStyle("shadowColor",a),s.setStyle(n.getItemStyle(["color"])),s.scaleX=i[0],s.scaleY=i[1],s.setColor(a),this._symbolType=r,this._symbolScale=i,this._updateEffectAnimation(t,n,e))},e.prototype._updateEffectAnimation=function(t,e,n){var i=this.childAt(1);if(i){var r=this,o=t.getItemLayout(n),a=1e3*e.get("period"),s=e.get("loop"),l=e.get("constantSpeed"),u=Q(e.get("delay"),(function(e){return e/t.count()*a/3}));if(i.ignore=!0,this._updateAnimationPoints(i,o),l>0&&(a=this._getLineLength(i)/l*1e3),(a!==this._period||s!==this._loop)&&(i.stopAnimation(),a>0)){var h=void 0;h="function"==typeof u?u(n):u,i.__t>0&&(h=-a*i.__t),i.__t=0;var c=i.animate("",s).when(a,{__t:1}).delay(h).during((function(){r._updateSymbolPosition(i)}));s||c.done((function(){r.remove(i)})),c.start()}this._period=a,this._loop=s}},e.prototype._getLineLength=function(t){return Lt(t.__p1,t.__cp1)+Lt(t.__cp1,t.__p2)},e.prototype._updateAnimationPoints=function(t,e){t.__p1=e[0],t.__p2=e[1],t.__cp1=e[2]||[(e[0][0]+e[1][0])/2,(e[0][1]+e[1][1])/2]},e.prototype.updateData=function(t,e,n){this.childAt(0).updateData(t,e,n),this._updateEffectSymbol(t,e)},e.prototype._updateSymbolPosition=function(t){var e=t.__p1,n=t.__p2,i=t.__cp1,r=t.__t,o=[t.x,t.y],a=o.slice(),s=Go,l=Ho;o[0]=s(e[0],i[0],n[0],r),o[1]=s(e[1],i[1],n[1],r);var u=l(e[0],i[0],n[0],r),h=l(e[1],i[1],n[1],r);t.rotation=-Math.atan2(h,u)-Math.PI/2,"line"!==this._symbolType&&"rect"!==this._symbolType&&"roundRect"!==this._symbolType||(void 0!==t.__lastT&&t.__lastT<t.__t?(t.scaleY=1.05*Lt(a,o),1===r&&(o[0]=a[0]+(o[0]-a[0])/2,o[1]=a[1]+(o[1]-a[1])/2)):1===t.__lastT?t.scaleY=2*Lt(e,o):t.scaleY=this._symbolScale[1]),t.__lastT=t.__t,t.ignore=!1,t.x=o[0],t.y=o[1]},e.prototype.updateLayout=function(t,e){this.childAt(0).updateLayout(t,e);var n=t.getItemModel(e).getModel("effect");this._updateEffectAnimation(t,n,e)},e}(zi),dL=function(t){function e(e,n,i){var r=t.call(this)||this;return r._createPolyline(e,n,i),r}return n(e,t),e.prototype._createPolyline=function(t,e,n){var i=t.getItemLayout(e),r=new $l({shape:{points:i}});this.add(r),this._updateCommonStl(t,e,n)},e.prototype.updateData=function(t,e,n){var i=t.hostModel;Ou(this.childAt(0),{shape:{points:t.getItemLayout(e)}},i,e),this._updateCommonStl(t,e,n)},e.prototype._updateCommonStl=function(t,e,n){var i=this.childAt(0),r=t.getItemModel(e),o=n&&n.emphasisLineStyle;n&&!t.hasItemOption||(o=r.getModel(["emphasis","lineStyle"]).getLineStyle()),i.useStyle(t.getItemVisual(e,"style")),i.style.fill=null,i.style.strokeNoScale=!0,i.ensureState("emphasis").style=o,Js(this)},e.prototype.updateLayout=function(t,e){this.childAt(0).setShape("points",t.getItemLayout(e))},e}(zi),fL=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._lastFrame=0,e._lastFramePercent=0,e}return n(e,t),e.prototype.createLine=function(t,e,n){return new dL(t,e,n)},e.prototype._updateAnimationPoints=function(t,e){this._points=e;for(var n=[0],i=0,r=1;r<e.length;r++){var o=e[r-1],a=e[r];i+=Lt(o,a),n.push(i)}if(0!==i){for(r=0;r<n.length;r++)n[r]/=i;this._offsets=n,this._length=i}else this._length=0},e.prototype._getLineLength=function(){return this._length},e.prototype._updateSymbolPosition=function(t){var e=t.__t,n=this._points,i=this._offsets,r=n.length;if(i){var o,a=this._lastFrame;if(e<this._lastFramePercent){for(o=Math.min(a+1,r-1);o>=0&&!(i[o]<=e);o--);o=Math.min(o,r-2)}else{for(o=a;o<r&&!(i[o]>e);o++);o=Math.min(o-1,r-2)}var s=(e-i[o])/(i[o+1]-i[o]),l=n[o],u=n[o+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=o,this._lastFramePercent=e,t.ignore=!1}},e}(pL),gL=function(){this.polyline=!1,this.curveness=0,this.segs=[]},yL=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new gL},e.prototype.buildPath=function(t,e){var n=e.segs,i=e.curveness;if(e.polyline)for(var r=0;r<n.length;){var o=n[r++];if(o>0){t.moveTo(n[r++],n[r++]);for(var a=1;a<o;a++)t.lineTo(n[r++],n[r++])}}else for(r=0;r<n.length;){var s=n[r++],l=n[r++],u=n[r++],h=n[r++];if(t.moveTo(s,l),i>0){var c=(s+u)/2-(l-h)*i,p=(l+h)/2-(u-s)*i;t.quadraticCurveTo(c,p,u,h)}else t.lineTo(u,h)}},e.prototype.findDataIndex=function(t,e){var n=this.shape,i=n.segs,r=n.curveness,o=this.style.lineWidth;if(n.polyline)for(var a=0,s=0;s<i.length;){var l=i[s++];if(l>0)for(var u=i[s++],h=i[s++],c=1;c<l;c++){if(Aa(u,h,p=i[s++],d=i[s++],o,t,e))return a}a++}else for(a=0,s=0;s<i.length;){u=i[s++],h=i[s++];var p=i[s++],d=i[s++];if(r>0){if(La(u,h,(u+p)/2-(h-d)*r,(h+d)/2-(p-u)*r,p,d,o,t,e))return a}else if(Aa(u,h,p,d,o,t,e))return a;a++}return-1},e}(Za),vL=function(){function t(){this.group=new zi}return t.prototype.isPersistent=function(){return!this._incremental},t.prototype.updateData=function(t){this.group.removeAll();var e=new yL({rectHover:!0,cursor:"default"});e.setShape({segs:t.getLayout("linesPoints")}),this._setCommon(e,t),this.group.add(e),this._incremental=null},t.prototype.incrementalPrepareUpdate=function(t){this.group.removeAll(),this._clearIncremental(),t.count()>5e5?(this._incremental||(this._incremental=new vu({silent:!0})),this.group.add(this._incremental)):this._incremental=null},t.prototype.incrementalUpdate=function(t,e){var n=new yL;n.setShape({segs:e.getLayout("linesPoints")}),this._setCommon(n,e,!!this._incremental),this._incremental?this._incremental.addDisplayable(n,!0):(n.rectHover=!0,n.cursor="default",n.__startIndex=t.start,this.group.add(n))},t.prototype.remove=function(){this._clearIncremental(),this._incremental=null,this.group.removeAll()},t.prototype._setCommon=function(t,e,n){var i=e.hostModel;t.setShape({polyline:i.get("polyline"),curveness:i.get(["lineStyle","curveness"])}),t.useStyle(i.getModel("lineStyle").getLineStyle()),t.style.strokeNoScale=!0;var r=e.getVisual("style");if(r&&r.stroke&&t.setStyle("stroke",r.stroke),t.setStyle("fill",null),!n){var o=ys(t);o.seriesIndex=i.seriesIndex,t.on("mousemove",(function(e){o.dataIndex=null;var n=t.findDataIndex(e.offsetX,e.offsetY);n>0&&(o.dataIndex=n+t.__startIndex)}))}},t.prototype._clearIncremental=function(){var t=this._incremental;t&&t.clearDisplaybles()},t}(),mL={seriesType:"lines",plan:df(),reset:function(t){var e=t.coordinateSystem,n=t.get("polyline"),i=t.pipelineContext.large;return{progress:function(r,o){var a=[];if(i){var s=void 0,l=r.end-r.start;if(n){for(var u=0,h=r.start;h<r.end;h++)u+=t.getLineCoordsCount(h);s=new Float32Array(l+2*u)}else s=new Float32Array(4*l);var c=0,p=[];for(h=r.start;h<r.end;h++){var d=t.getLineCoords(h,a);n&&(s[c++]=d);for(var f=0;f<d;f++)p=e.dataToPoint(a[f],!1,p),s[c++]=p[0],s[c++]=p[1]}o.setLayout("linesPoints",s)}else for(h=r.start;h<r.end;h++){var g=o.getItemModel(h),y=(d=t.getLineCoords(h,a),[]);if(n)for(var v=0;v<d;v++)y.push(e.dataToPoint(a[v]));else{y[0]=e.dataToPoint(a[0]),y[1]=e.dataToPoint(a[1]);var m=g.get(["lineStyle","curveness"]);+m&&(y[2]=[(y[0][0]+y[1][0])/2-(y[0][1]-y[1][1])*m,(y[0][1]+y[1][1])/2-(y[1][0]-y[0][0])*m])}o.setItemLayout(h,y)}}}}},_L=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){var i=t.getData(),r=this._updateLineDraw(i,t),o=t.get("zlevel"),a=t.get(["effect","trailLength"]),s=n.getZr(),l="svg"===s.painter.getType();(l||s.painter.getLayer(o).clear(!0),null==this._lastZlevel||l||s.configLayer(this._lastZlevel,{motionBlur:!1}),this._showEffect(t)&&a)&&(l||s.configLayer(o,{motionBlur:!0,lastFrameAlpha:Math.max(Math.min(a/10+.9,1),0)}));r.updateData(i);var u=t.get("clip",!0)&&Hb(t.coordinateSystem,!1,t);u?this.group.setClipPath(u):this.group.removeClipPath(),this._lastZlevel=o,this._finished=!0},e.prototype.incrementalPrepareRender=function(t,e,n){var i=t.getData();this._updateLineDraw(i,t).incrementalPrepareUpdate(i),this._clearLayer(n),this._finished=!1},e.prototype.incrementalRender=function(t,e,n){this._lineDraw.incrementalUpdate(t,e.getData()),this._finished=t.end===e.getData().count()},e.prototype.updateTransform=function(t,e,n){var i=t.getData(),r=t.pipelineContext;if(!this._finished||r.large||r.progressiveRender)return{update:!0};var o=mL.reset(t,e,n);o.progress&&o.progress({start:0,end:i.count(),count:i.count()},i),this._lineDraw.updateLayout(),this._clearLayer(n)},e.prototype._updateLineDraw=function(t,e){var n=this._lineDraw,i=this._showEffect(e),r=!!e.get("polyline"),o=e.pipelineContext.large;return n&&i===this._hasEffet&&r===this._isPolyline&&o===this._isLargeDraw||(n&&n.remove(),n=this._lineDraw=o?new vL:new aC(r?i?fL:dL:i?pL:oC),this._hasEffet=i,this._isPolyline=r,this._isLargeDraw=o,this.group.removeAll()),this.group.add(n.group),n},e.prototype._showEffect=function(t){return!!t.get(["effect","show"])},e.prototype._clearLayer=function(t){var e=t.getZr();"svg"===e.painter.getType()||null==this._lastZlevel||e.painter.getLayer(this._lastZlevel).clear(!0)},e.prototype.remove=function(t,e){this._lineDraw&&this._lineDraw.remove(),this._lineDraw=null,this._clearLayer(e)},e.type="lines",e}(yf),xL="undefined"==typeof Uint32Array?Array:Uint32Array,bL="undefined"==typeof Float64Array?Array:Float64Array;function wL(t){var e=t.data;e&&e[0]&&e[0][0]&&e[0][0].coord&&(t.data=O(e,(function(t){var e={coords:[t[0].coord,t[1].coord]};return t[0].name&&(e.fromName=t[0].name),t[1].name&&(e.toName=t[1].name),M([e,t[0],t[1]])})))}var SL=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.visualStyleAccessPath="lineStyle",n.visualDrawType="stroke",n}return n(e,t),e.prototype.init=function(e){e.data=e.data||[],wL(e);var n=this._processFlatCoordsArray(e.data);this._flatCoords=n.flatCoords,this._flatCoordsOffset=n.flatCoordsOffset,n.flatCoords&&(e.data=new Float32Array(n.count)),t.prototype.init.apply(this,arguments)},e.prototype.mergeOption=function(e){if(wL(e),e.data){var n=this._processFlatCoordsArray(e.data);this._flatCoords=n.flatCoords,this._flatCoordsOffset=n.flatCoordsOffset,n.flatCoords&&(e.data=new Float32Array(n.count))}t.prototype.mergeOption.apply(this,arguments)},e.prototype.appendData=function(t){var e=this._processFlatCoordsArray(t.data);e.flatCoords&&(this._flatCoords?(this._flatCoords=ct(this._flatCoords,e.flatCoords),this._flatCoordsOffset=ct(this._flatCoordsOffset,e.flatCoordsOffset)):(this._flatCoords=e.flatCoords,this._flatCoordsOffset=e.flatCoordsOffset),t.data=new Float32Array(e.count)),this.getRawData().appendData(t.data)},e.prototype._getCoordsFromItemModel=function(t){var e=this.getData().getItemModel(t),n=e.option instanceof Array?e.option:e.getShallow("coords");return n},e.prototype.getLineCoordsCount=function(t){return this._flatCoordsOffset?this._flatCoordsOffset[2*t+1]:this._getCoordsFromItemModel(t).length},e.prototype.getLineCoords=function(t,e){if(this._flatCoordsOffset){for(var n=this._flatCoordsOffset[2*t],i=this._flatCoordsOffset[2*t+1],r=0;r<i;r++)e[r]=e[r]||[],e[r][0]=this._flatCoords[n+2*r],e[r][1]=this._flatCoords[n+2*r+1];return i}var o=this._getCoordsFromItemModel(t);for(r=0;r<o.length;r++)e[r]=e[r]||[],e[r][0]=o[r][0],e[r][1]=o[r][1];return o.length},e.prototype._processFlatCoordsArray=function(t){var e=0;if(this._flatCoords&&(e=this._flatCoords.length),"number"==typeof t[0]){for(var n=t.length,i=new xL(n),r=new bL(n),o=0,a=0,s=0,l=0;l<n;){s++;var u=t[l++];i[a++]=o+e,i[a++]=u;for(var h=0;h<u;h++){var c=t[l++],p=t[l++];r[o++]=c,r[o++]=p}}return{flatCoordsOffset:new Uint32Array(i.buffer,0,a),flatCoords:r,count:s}}return{flatCoordsOffset:null,flatCoords:null,count:t.length}},e.prototype.getInitialData=function(t,e){var n=new Pm(["value"],this);return n.hasItemOption=!1,n.initData(t.data,[],(function(t,e,i,r){if(t instanceof Array)return NaN;n.hasItemOption=!0;var o=t.value;return null!=o?o instanceof Array?o[r]:o:void 0})),n},e.prototype.formatTooltip=function(t,e,n){var i=this.getData().getItemModel(t),r=i.get("name");if(r)return r;var o=i.get("fromName"),a=i.get("toName"),s=[];return null!=o&&s.push(o),null!=a&&s.push(a),Yd("nameValue",{name:s.join(" > ")})},e.prototype.preventIncremental=function(){return!!this.get(["effect","show"])},e.prototype.getProgressive=function(){var t=this.option.progressive;return null==t?this.option.large?1e4:this.get("progressive"):t},e.prototype.getProgressiveThreshold=function(){var t=this.option.progressiveThreshold;return null==t?this.option.large?2e4:this.get("progressiveThreshold"):t},e.type="series.lines",e.dependencies=["grid","polar","geo","calendar"],e.defaultOption={coordinateSystem:"geo",zlevel:0,z:2,legendHoverLink:!0,xAxisIndex:0,yAxisIndex:0,symbol:["none","none"],symbolSize:[10,10],geoIndex:0,effect:{show:!1,period:4,constantSpeed:0,symbol:"circle",symbolSize:3,loop:!0,trailLength:.2},large:!1,largeThreshold:2e3,polyline:!1,clip:!0,label:{show:!1,position:"end"},lineStyle:{opacity:.5}},e}(rf);function ML(t){return t instanceof Array||(t=[t,t]),t}var IL={seriesType:"lines",reset:function(t){var e=ML(t.get("symbol")),n=ML(t.get("symbolSize")),i=t.getData();return i.setVisual("fromSymbol",e&&e[0]),i.setVisual("toSymbol",e&&e[1]),i.setVisual("fromSymbolSize",n&&n[0]),i.setVisual("toSymbolSize",n&&n[1]),{dataEach:i.hasItemOption?function(t,e){var n=t.getItemModel(e),i=ML(n.getShallow("symbol",!0)),r=ML(n.getShallow("symbolSize",!0));i[0]&&t.setItemVisual(e,"fromSymbol",i[0]),i[1]&&t.setItemVisual(e,"toSymbol",i[1]),r[0]&&t.setItemVisual(e,"fromSymbolSize",r[0]),r[1]&&t.setItemVisual(e,"toSymbolSize",r[1])}:null}}};var TL=function(){function t(){this.blurSize=30,this.pointSize=20,this.maxOpacity=1,this.minOpacity=0,this._gradientPixels={inRange:null,outOfRange:null};var t=C();this.canvas=t}return t.prototype.update=function(t,e,n,i,r,o){var a=this._getBrush(),s=this._getGradient(r,"inRange"),l=this._getGradient(r,"outOfRange"),u=this.pointSize+this.blurSize,h=this.canvas,c=h.getContext("2d"),p=t.length;h.width=e,h.height=n;for(var d=0;d<p;++d){var f=t[d],g=f[0],y=f[1],v=i(f[2]);c.globalAlpha=v,c.drawImage(a,g-u,y-u)}if(!h.width||!h.height)return h;for(var m=c.getImageData(0,0,h.width,h.height),_=m.data,x=0,b=_.length,w=this.minOpacity,S=this.maxOpacity-w;x<b;){v=_[x+3]/256;var M=4*Math.floor(255*v);if(v>0){var I=o(v)?s:l;v>0&&(v=v*S+w),_[x++]=I[M],_[x++]=I[M+1],_[x++]=I[M+2],_[x++]=I[M+3]*v*256}else x+=4}return c.putImageData(m,0,0),h},t.prototype._getBrush=function(){var t=this._brushCanvas||(this._brushCanvas=C()),e=this.pointSize+this.blurSize,n=2*e;t.width=n,t.height=n;var i=t.getContext("2d");return i.clearRect(0,0,n,n),i.shadowOffsetX=n,i.shadowBlur=this.blurSize,i.shadowColor="#000",i.beginPath(),i.arc(-e,e,this.pointSize,0,2*Math.PI,!0),i.closePath(),i.fill(),t},t.prototype._getGradient=function(t,e){for(var n=this._gradientPixels,i=n[e]||(n[e]=new Uint8ClampedArray(1024)),r=[0,0,0,0],o=0,a=0;a<256;a++)t[e](a/255,!0,r),i[o++]=r[0],i[o++]=r[1],i[o++]=r[2],i[o++]=r[3];return i},t}();function CL(t){var e=t.dimensions;return"lng"===e[0]&&"lat"===e[1]}var AL=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){var i;e.eachComponent("visualMap",(function(e){e.eachTargetSeries((function(n){n===t&&(i=e)}))})),this.group.removeAll(),this._incrementalDisplayable=null;var r=t.coordinateSystem;"cartesian2d"===r.type||"calendar"===r.type?this._renderOnCartesianAndCalendar(t,n,0,t.getData().count()):CL(r)&&this._renderOnGeo(r,t,i,n)},e.prototype.incrementalPrepareRender=function(t,e,n){this.group.removeAll()},e.prototype.incrementalRender=function(t,e,n,i){var r=e.coordinateSystem;r&&(CL(r)?this.render(e,n,i):this._renderOnCartesianAndCalendar(e,i,t.start,t.end,!0))},e.prototype._renderOnCartesianAndCalendar=function(t,e,n,i,r){var o,a,s,l,u=t.coordinateSystem;if(Wb(u,"cartesian2d")){var h=u.getAxis("x"),c=u.getAxis("y");0,o=h.getBandWidth(),a=c.getBandWidth(),s=h.scale.getExtent(),l=c.scale.getExtent()}for(var p=this.group,d=t.getData(),f=t.getModel(["emphasis","itemStyle"]).getItemStyle(),g=t.getModel(["blur","itemStyle"]).getItemStyle(),y=t.getModel(["select","itemStyle"]).getItemStyle(),v=eh(t),m=t.get(["emphasis","focus"]),_=t.get(["emphasis","blurScope"]),x=Wb(u,"cartesian2d")?[d.mapDimension("x"),d.mapDimension("y"),d.mapDimension("value")]:[d.mapDimension("time"),d.mapDimension("value")],b=n;b<i;b++){var w=void 0,S=d.getItemVisual(b,"style");if(Wb(u,"cartesian2d")){var M=d.get(x[0],b),I=d.get(x[1],b);if(isNaN(d.get(x[2],b))||M<s[0]||M>s[1]||I<l[0]||I>l[1])continue;var T=u.dataToPoint([M,I]);w=new os({shape:{x:Math.floor(Math.round(T[0])-o/2),y:Math.floor(Math.round(T[1])-a/2),width:Math.ceil(o),height:Math.ceil(a)},style:S})}else{if(isNaN(d.get(x[1],b)))continue;w=new os({z2:1,shape:u.dataToRect([d.get(x[0],b)]).contentShape,style:S})}var C=d.getItemModel(b);if(d.hasItemOption){var A=C.getModel("emphasis");f=A.getModel("itemStyle").getItemStyle(),g=C.getModel(["blur","itemStyle"]).getItemStyle(),y=C.getModel(["select","itemStyle"]).getItemStyle(),m=A.get("focus"),_=A.get("blurScope"),v=eh(C)}var D=t.getRawValue(b),L="-";D&&null!=D[2]&&(L=D[2]+""),th(w,v,{labelFetcher:t,labelDataIndex:b,defaultOpacity:S.opacity,defaultText:L}),w.ensureState("emphasis").style=f,w.ensureState("blur").style=g,w.ensureState("select").style=y,Js(w,m,_),w.incremental=r,r&&(w.states.emphasis.hoverLayer=!0),p.add(w),d.setItemGraphicEl(b,w)}},e.prototype._renderOnGeo=function(t,e,n,i){var r=n.targetVisuals.inRange,o=n.targetVisuals.outOfRange,a=e.getData(),s=this._hmLayer||this._hmLayer||new TL;s.blurSize=e.get("blurSize"),s.pointSize=e.get("pointSize"),s.minOpacity=e.get("minOpacity"),s.maxOpacity=e.get("maxOpacity");var l=t.getViewRect().clone(),u=t.getRoamTransform();l.applyTransform(u);var h=Math.max(l.x,0),c=Math.max(l.y,0),p=Math.min(l.width+l.x,i.getWidth()),d=Math.min(l.height+l.y,i.getHeight()),f=p-h,g=d-c,y=[a.mapDimension("lng"),a.mapDimension("lat"),a.mapDimension("value")],v=a.mapArray(y,(function(e,n,i){var r=t.dataToPoint([e,n]);return r[0]-=h,r[1]-=c,r.push(i),r})),m=n.getExtent(),_="visualMap.continuous"===n.type?function(t,e){var n=t[1]-t[0];return e=[(e[0]-t[0])/n,(e[1]-t[0])/n],function(t){return t>=e[0]&&t<=e[1]}}(m,n.option.range):function(t,e,n){var i=t[1]-t[0],r=(e=O(e,(function(e){return{interval:[(e.interval[0]-t[0])/i,(e.interval[1]-t[0])/i]}}))).length,o=0;return function(t){var i;for(i=o;i<r;i++)if((a=e[i].interval)[0]<=t&&t<=a[1]){o=i;break}if(i===r)for(i=o-1;i>=0;i--){var a;if((a=e[i].interval)[0]<=t&&t<=a[1]){o=i;break}}return i>=0&&i<r&&n[i]}}(m,n.getPieceList(),n.option.selected);s.update(v,f,g,r.color.getNormalizer(),{inRange:r.color.getColorMapper(),outOfRange:o.color.getColorMapper()},_);var x=new Ja({style:{width:f,height:g,x:h,y:c,image:s.canvas},silent:!0});this.group.add(x)},e.type="heatmap",e}(yf),DL=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.getInitialData=function(t,e){return Hm(this.getSource(),this,{generateCoord:"value"})},e.prototype.preventIncremental=function(){var t=_p.get(this.get("coordinateSystem"));if(t&&t.dimensions)return"lng"===t.dimensions[0]&&"lat"===t.dimensions[1]},e.type="series.heatmap",e.dependencies=["grid","geo","calendar"],e.defaultOption={coordinateSystem:"cartesian2d",zlevel:0,z:2,geoIndex:0,blurSize:30,pointSize:20,maxOpacity:1,minOpacity:0,select:{itemStyle:{borderColor:"#212121"}}},e}(rf);var LL=["itemStyle","borderWidth"],kL=[{xy:"x",wh:"width",index:0,posDesc:["left","right"]},{xy:"y",wh:"height",index:1,posDesc:["top","bottom"]}],PL=new Tl,OL=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){var i=this.group,r=t.getData(),o=this._data,a=t.coordinateSystem,s=a.getBaseAxis().isHorizontal(),l=a.master.getRect(),u={ecSize:{width:n.getWidth(),height:n.getHeight()},seriesModel:t,coordSys:a,coordSysExtent:[[l.x,l.x+l.width],[l.y,l.y+l.height]],isHorizontal:s,valueDim:kL[+s],categoryDim:kL[1-+s]};return r.diff(o).add((function(t){if(r.hasValue(t)){var e=GL(r,t),n=RL(r,t,e,u),o=YL(r,u,n);r.setItemGraphicEl(t,o),i.add(o),qL(o,u,n)}})).update((function(t,e){var n=o.getItemGraphicEl(e);if(r.hasValue(t)){var a=GL(r,t),s=RL(r,t,a,u),l=UL(r,s);n&&l!==n.__pictorialShapeStr&&(i.remove(n),r.setItemGraphicEl(t,null),n=null),n?function(t,e,n){var i=n.animationModel,r=n.dataIndex;Ou(t.__pictorialBundle,{x:n.bundlePosition[0],y:n.bundlePosition[1]},i,r),n.symbolRepeat?zL(t,e,n,!0):BL(t,e,n,!0);VL(t,n,!0),FL(t,e,n,!0)}(n,u,s):n=YL(r,u,s,!0),r.setItemGraphicEl(t,n),n.__pictorialSymbolMeta=s,i.add(n),qL(n,u,s)}else i.remove(n)})).remove((function(t){var e=o.getItemGraphicEl(t);e&&XL(o,t,e.__pictorialSymbolMeta.animationModel,e)})).execute(),this._data=r,this.group},e.prototype.remove=function(t,e){var n=this.group,i=this._data;t.get("animation")?i&&i.eachItemGraphicEl((function(e){XL(i,ys(e).dataIndex,t,e)})):n.removeAll()},e.type="pictorialBar",e}(yf);function RL(t,e,n,i){var r=t.getItemLayout(e),o=n.get("symbolRepeat"),a=n.get("symbolClip"),s=n.get("symbolPosition")||"start",l=(n.get("symbolRotate")||0)*Math.PI/180||0,u=n.get("symbolPatternSize")||2,h=n.isAnimationEnabled(),c={dataIndex:e,layout:r,itemModel:n,symbolType:t.getItemVisual(e,"symbol")||"circle",style:t.getItemVisual(e,"style"),symbolClip:a,symbolRepeat:o,symbolRepeatDirection:n.get("symbolRepeatDirection"),symbolPatternSize:u,rotation:l,animationModel:h?n:null,hoverScale:h&&n.get(["emphasis","scale"]),z2:n.getShallow("z",!0)||0};!function(t,e,n,i,r){var o,a=i.valueDim,s=t.get("symbolBoundingData"),l=i.coordSys.getOtherAxis(i.coordSys.getBaseAxis()),u=l.toGlobalCoord(l.dataToCoord(0)),h=1-+(n[a.wh]<=0);if(F(s)){var c=[NL(l,s[0])-u,NL(l,s[1])-u];c[1]<c[0]&&c.reverse(),o=c[h]}else o=null!=s?NL(l,s)-u:e?i.coordSysExtent[a.index][h]-u:n[a.wh];r.boundingLength=o,e&&(r.repeatCutLength=n[a.wh]);r.pxSign=o>0?1:o<0?-1:0}(n,o,r,i,c),function(t,e,n,i,r,o,a,s,l,u){var h,c=l.valueDim,p=l.categoryDim,d=Math.abs(n[p.wh]),f=t.getItemVisual(e,"symbolSize");h=F(f)?f.slice():null==f?["100%","100%"]:[f,f];h[p.index]=Zi(h[p.index],d),h[c.index]=Zi(h[c.index],i?d:Math.abs(o)),u.symbolSize=h,(u.symbolScale=[h[0]/s,h[1]/s])[c.index]*=(l.isHorizontal?-1:1)*a}(t,e,r,o,0,c.boundingLength,c.pxSign,u,i,c),function(t,e,n,i,r){var o=t.get(LL)||0;o&&(PL.attr({scaleX:e[0],scaleY:e[1],rotation:n}),PL.updateTransform(),o/=PL.getLineScale(),o*=e[i.valueDim.index]);r.valueLineWidth=o}(n,c.symbolScale,l,i,c);var p=c.symbolSize,d=n.get("symbolOffset");return F(d)&&(d=[Zi(d[0],p[0]),Zi(d[1],p[1])]),function(t,e,n,i,r,o,a,s,l,u,h,c){var p=h.categoryDim,d=h.valueDim,f=c.pxSign,g=Math.max(e[d.index]+s,0),y=g;if(i){var v=Math.abs(l),m=Q(t.get("symbolMargin"),"15%")+"",_=!1;m.lastIndexOf("!")===m.length-1&&(_=!0,m=m.slice(0,m.length-1));var x=Zi(m,e[d.index]),b=Math.max(g+2*x,0),w=_?0:2*x,S=cr(i),M=S?i:KL((v+w)/b);b=g+2*(x=(v-M*g)/2/(_?M:M-1)),w=_?0:2*x,S||"fixed"===i||(M=u?KL((Math.abs(u)+w)/b):0),y=M*b-w,c.repeatTimes=M,c.symbolMargin=x}var T=f*(y/2),C=c.pathPosition=[];C[p.index]=n[p.wh]/2,C[d.index]="start"===a?T:"end"===a?l-T:l/2,o&&(C[0]+=o[0],C[1]+=o[1]);var A=c.bundlePosition=[];A[p.index]=n[p.xy],A[d.index]=n[d.xy];var D=c.barRectShape=I({},n);D[d.wh]=f*Math.max(Math.abs(n[d.wh]),Math.abs(C[d.index]+T)),D[p.wh]=n[p.wh];var L=c.clipShape={};L[p.xy]=-n[p.xy],L[p.wh]=h.ecSize[p.wh],L[d.xy]=0,L[d.wh]=n[d.wh]}(n,p,r,o,0,d,s,c.valueLineWidth,c.boundingLength,c.repeatCutLength,i,c),c}function NL(t,e){return t.toGlobalCoord(t.dataToCoord(t.scale.parse(e)))}function EL(t){var e=t.symbolPatternSize,n=uy(t.symbolType,-e/2,-e/2,e,e);return n.attr({culling:!0}),"image"!==n.type&&n.setStyle({strokeNoScale:!0}),n}function zL(t,e,n,i){var r=t.__pictorialBundle,o=n.symbolSize,a=n.valueLineWidth,s=n.pathPosition,l=e.valueDim,u=n.repeatTimes||0,h=0,c=o[e.valueDim.index]+a+2*n.symbolMargin;for(ZL(t,(function(t){t.__pictorialAnimationIndex=h,t.__pictorialRepeatTimes=u,h<u?jL(t,null,f(h),n,i):jL(t,null,{scaleX:0,scaleY:0},n,i,(function(){r.remove(t)})),h++}));h<u;h++){var p=EL(n);p.__pictorialAnimationIndex=h,p.__pictorialRepeatTimes=u,r.add(p);var d=f(h);jL(p,{x:d.x,y:d.y,scaleX:0,scaleY:0},{scaleX:d.scaleX,scaleY:d.scaleY,rotation:d.rotation},n,i)}function f(t){var e=s.slice(),i=n.pxSign,r=t;return("start"===n.symbolRepeatDirection?i>0:i<0)&&(r=u-1-t),e[l.index]=c*(r-u/2+.5)+s[l.index],{x:e[0],y:e[1],scaleX:n.symbolScale[0],scaleY:n.symbolScale[1],rotation:n.rotation}}}function BL(t,e,n,i){var r=t.__pictorialBundle,o=t.__pictorialMainPath;o?jL(o,null,{x:n.pathPosition[0],y:n.pathPosition[1],scaleX:n.symbolScale[0],scaleY:n.symbolScale[1],rotation:n.rotation},n,i):(o=t.__pictorialMainPath=EL(n),r.add(o),jL(o,{x:n.pathPosition[0],y:n.pathPosition[1],scaleX:0,scaleY:0,rotation:n.rotation},{scaleX:n.symbolScale[0],scaleY:n.symbolScale[1]},n,i))}function VL(t,e,n){var i=I({},e.barRectShape),r=t.__pictorialBarRect;r?jL(r,null,{shape:i},e,n):(r=t.__pictorialBarRect=new os({z2:2,shape:i,silent:!0,style:{stroke:"transparent",fill:"transparent",lineWidth:0}}),t.add(r))}function FL(t,e,n,i){if(n.symbolClip){var r=t.__pictorialClipPath,o=I({},n.clipShape),a=e.valueDim,s=n.animationModel,l=n.dataIndex;if(r)Ou(r,{shape:o},s,l);else{o[a.wh]=0,r=new os({shape:o}),t.__pictorialBundle.setClipPath(r),t.__pictorialClipPath=r;var u={};u[a.wh]=n.clipShape[a.wh],Ku[i?"updateProps":"initProps"](r,{shape:u},s,l)}}}function GL(t,e){var n=t.getItemModel(e);return n.getAnimationDelayParams=HL,n.isAnimationEnabled=WL,n}function HL(t){return{index:t.__pictorialAnimationIndex,count:t.__pictorialRepeatTimes}}function WL(){return this.parentModel.isAnimationEnabled()&&!!this.getShallow("animation")}function YL(t,e,n,i){var r=new zi,o=new zi;return r.add(o),r.__pictorialBundle=o,o.x=n.bundlePosition[0],o.y=n.bundlePosition[1],n.symbolRepeat?zL(r,e,n):BL(r,0,n),VL(r,n,i),FL(r,e,n,i),r.__pictorialShapeStr=UL(t,n),r.__pictorialSymbolMeta=n,r}function XL(t,e,n,i){var r=i.__pictorialBarRect;r&&r.removeTextContent();var o=[];ZL(i,(function(t){o.push(t)})),i.__pictorialMainPath&&o.push(i.__pictorialMainPath),i.__pictorialClipPath&&(n=null),P(o,(function(t){Nu(t,{scaleX:0,scaleY:0},n,e,(function(){i.parent&&i.parent.remove(i)}))})),t.setItemGraphicEl(e,null)}function UL(t,e){return[t.getItemVisual(e.dataIndex,"symbol")||"none",!!e.symbolRepeat,!!e.symbolClip].join(":")}function ZL(t,e,n){P(t.__pictorialBundle.children(),(function(i){i!==t.__pictorialBarRect&&e.call(n,i)}))}function jL(t,e,n,i,r,o){e&&t.attr(e),i.symbolClip&&!r?n&&t.attr(n):n&&Ku[r?"updateProps":"initProps"](t,n,i.animationModel,i.dataIndex,o)}function qL(t,e,n){var i=n.dataIndex,r=n.itemModel,o=r.getModel("emphasis"),a=o.getModel("itemStyle").getItemStyle(),s=r.getModel(["blur","itemStyle"]).getItemStyle(),l=r.getModel(["select","itemStyle"]).getItemStyle(),u=r.getShallow("cursor"),h=o.get("focus"),c=o.get("blurScope"),p=o.get("scale");ZL(t,(function(t){if(t instanceof Ja){var e=t.style;t.useStyle(I({image:e.image,x:e.x,y:e.y,width:e.width,height:e.height},n.style))}else t.useStyle(n.style);var i=t.ensureState("emphasis");i.style=a,p&&(i.scaleX=1.1*t.scaleX,i.scaleY=1.1*t.scaleY),t.ensureState("blur").style=s,t.ensureState("select").style=l,u&&(t.cursor=u),t.z2=n.z2}));var d=e.valueDim.posDesc[+(n.boundingLength>0)];th(t.__pictorialBarRect,eh(r),{labelFetcher:e.seriesModel,labelDataIndex:i,defaultText:_b(e.seriesModel.getData(),i),inheritColor:n.style.fill,defaultOpacity:n.style.opacity,defaultOutsidePosition:d}),Js(t,h,c)}function KL(t){var e=Math.round(t);return Math.abs(t-e)<1e-4?e:Math.ceil(t)}var $L=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.hasSymbolVisual=!0,n.defaultSymbol="roundRect",n}return n(e,t),e.prototype.getInitialData=function(e){return e.stack=null,t.prototype.getInitialData.apply(this,arguments)},e.type="series.pictorialBar",e.dependencies=["grid"],e.defaultOption=Th(iw.defaultOption,{symbol:"circle",symbolSize:null,symbolRotate:null,symbolPosition:null,symbolOffset:null,symbolMargin:null,symbolRepeat:!1,symbolRepeatDirection:"end",symbolClip:!1,symbolBoundingData:null,symbolPatternSize:400,barGap:"-100%",progressive:0,emphasis:{scale:!1},select:{itemStyle:{borderColor:"#212121"}}}),e}(iw);var JL=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._layers=[],n}return n(e,t),e.prototype.render=function(t,e,n){var i=t.getData(),r=this,o=this.group,a=t.getLayerSeries(),s=i.getLayout("layoutInfo"),l=s.rect,u=s.boundaryGap;function h(t){return t.name}o.x=0,o.y=l.y+u[0];var c=new rm(this._layersSeries||[],a,h,h),p=[];function d(e,n,s){var l=r._layers;if("remove"!==e){for(var u,h,c=[],d=[],f=a[n].indices,g=0;g<f.length;g++){var y=i.getItemLayout(f[g]),v=y.x,m=y.y0,_=y.y;c.push(v,m),d.push(v,m+_),u=i.getItemVisual(f[g],"style")}var x=i.getItemLayout(f[0]),b=t.getModel("label").get("margin"),w=t.getModel("emphasis");if("add"===e){var S=p[n]=new zi;h=new Vb({shape:{points:c,stackedOnPoints:d,smooth:.4,stackedOnSmooth:.4,smoothConstraint:!1},z2:0}),S.add(h),o.add(S),t.isAnimationEnabled()&&h.setClipPath(function(t,e,n){var i=new os({shape:{x:t.x-10,y:t.y-10,width:0,height:t.height+20}});return Ru(i,{shape:{x:t.x-50,width:t.width+100,height:t.height+20}},e,n),i}(h.getBoundingRect(),t,(function(){h.removeClipPath()})))}else{S=l[s];h=S.childAt(0),o.add(S),p[n]=S,Ou(h,{shape:{points:c,stackedOnPoints:d}},t)}th(h,eh(t),{labelDataIndex:f[g-1],defaultText:i.getName(f[g-1]),inheritColor:u.fill},{normal:{verticalAlign:"middle"}}),h.setTextConfig({position:null,local:!0});var M=h.getTextContent();M&&(M.x=x.x-b,M.y=x.y0+x.y/2),h.useStyle(u),i.setItemGraphicEl(n,h),nl(h,t),Js(h,w.get("focus"),w.get("blurScope"))}else o.remove(l[n])}c.add(B(d,this,"add")).update(B(d,this,"update")).remove(B(d,this,"remove")).execute(),this._layersSeries=a,this._layers=p},e.type="themeRiver",e}(yf);var QL=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.useColorPaletteOnData=!0,n}return n(e,t),e.prototype.init=function(e){t.prototype.init.apply(this,arguments),this.legendVisualProvider=new Nw(B(this.getData,this),B(this.getRawData,this))},e.prototype.fixData=function(t){var e=t.length,n={},i=zr(t,(function(t){return n.hasOwnProperty(t[0]+"")||(n[t[0]+""]=-1),t[2]})),r=[];i.buckets.each((function(t,e){r.push({name:e,dataList:t})}));for(var o=r.length,a=0;a<o;++a){for(var s=r[a].name,l=0;l<r[a].dataList.length;++l){var u=r[a].dataList[l][0]+"";n[u]=a}for(var u in n)n.hasOwnProperty(u)&&n[u]!==a&&(n[u]=a,t[e]=[u,0,s],e++)}return t},e.prototype.getInitialData=function(t,e){for(var n=this.getReferringComponents("singleAxis",Or).models[0].get("type"),i=N(t.data,(function(t){return void 0!==t[2]})),r=this.fixData(i||[]),o=[],a=this.nameMap=ht(),s=0,l=0;l<r.length;++l)o.push(r[l][2]),a.get(r[l][2])||(a.set(r[l][2],s),s++);var u=Nm(r,{coordDimensions:["single"],dimensionsDefine:[{name:"time",type:am(n)},{name:"value",type:"float"},{name:"name",type:"ordinal"}],encodeDefine:{single:0,value:1,itemName:2}}),h=new Pm(u,this);return h.initData(r),h},e.prototype.getLayerSeries=function(){for(var t=this.getData(),e=t.count(),n=[],i=0;i<e;++i)n[i]=i;var r=t.mapDimension("single"),o=zr(n,(function(e){return t.get("name",e)})),a=[];return o.buckets.each((function(e,n){e.sort((function(e,n){return t.get(r,e)-t.get(r,n)})),a.push({name:n,indices:e})})),a},e.prototype.getAxisTooltipData=function(t,e,n){F(t)||(t=t?[t]:[]);for(var i,r=this.getData(),o=this.getLayerSeries(),a=[],s=o.length,l=0;l<s;++l){for(var u=Number.MAX_VALUE,h=-1,c=o[l].indices.length,p=0;p<c;++p){var d=r.get(t[0],o[l].indices[p]),f=Math.abs(d-e);f<=u&&(i=d,u=f,h=o[l].indices[p])}a.push(h)}return{dataIndices:a,nestestValue:i}},e.prototype.formatTooltip=function(t,e,n){var i=this.getData();return Yd("nameValue",{name:i.getName(t),value:i.get(i.mapDimension("value"),t)})},e.type="series.themeRiver",e.dependencies=["singleAxis"],e.defaultOption={zlevel:0,z:2,coordinateSystem:"singleAxis",boundaryGap:["10%","10%"],singleAxisIndex:0,animationEasing:"linear",label:{margin:4,show:!0,position:"left",fontSize:11},emphasis:{label:{show:!0}}},e}(rf);function tk(t,e){t.eachSeriesByType("themeRiver",(function(t){var e=t.getData(),n=t.coordinateSystem,i={},r=n.getRect();i.rect=r;var o=t.get("boundaryGap"),a=n.getAxis();(i.boundaryGap=o,"horizontal"===a.orient)?(o[0]=Zi(o[0],r.height),o[1]=Zi(o[1],r.height),ek(e,t,r.height-o[0]-o[1])):(o[0]=Zi(o[0],r.width),o[1]=Zi(o[1],r.width),ek(e,t,r.width-o[0]-o[1]));e.setLayout("layoutInfo",i)}))}function ek(t,e,n){if(t.count())for(var i,r=e.coordinateSystem,o=e.getLayerSeries(),a=t.mapDimension("single"),s=t.mapDimension("value"),l=O(o,(function(e){return O(e.indices,(function(e){var n=r.dataToPoint(t.get(a,e));return n[1]=t.get(s,e),n}))})),u=function(t){for(var e=t.length,n=t[0].length,i=[],r=[],o=0,a=0;a<n;++a){for(var s=0,l=0;l<e;++l)s+=t[l][a][1];s>o&&(o=s),i.push(s)}for(var u=0;u<n;++u)r[u]=(o-i[u])/2;o=0;for(var h=0;h<n;++h){var c=i[h]+r[h];c>o&&(o=c)}return{y0:r,max:o}}(l),h=u.y0,c=n/u.max,p=o.length,d=o[0].indices.length,f=0;f<d;++f){i=h[f]*c,t.setItemLayout(o[0].indices[f],{layerIndex:0,x:l[0][f][0],y0:i,y:l[0][f][1]*c});for(var g=1;g<p;++g)i+=l[g-1][f][1]*c,t.setItemLayout(o[g].indices[f],{layerIndex:g,x:l[g][f][0],y0:i,y:l[g][f][1]*c})}}var nk=function(t){function e(e,n,i,r){var o=t.call(this)||this;o.z2=2,o.textConfig={inside:!0},ys(o).seriesIndex=n.seriesIndex;var a=new ls({z2:4,silent:e.getModel().get(["label","silent"])});return o.setTextContent(a),o.updateData(!0,e,n,i,r),o}return n(e,t),e.prototype.updateData=function(t,e,n,i,r){this.node=e,e.piece=this,n=n||this._seriesModel,i=i||this._ecModel;var o=this;ys(o).dataIndex=e.dataIndex;var a=e.getModel(),s=a.getModel("emphasis"),l=e.getLayout(),u=I({},l);u.label=null;var h=e.getVisual("style");h.lineJoin="bevel";var c=e.getVisual("decal");c&&(h.decal=ky(c,r));var p=kw(a.getModel("itemStyle"),u);I(u,p),P(xs,(function(t){var e=o.ensureState(t),n=a.getModel([t,"itemStyle"]);e.style=n.getItemStyle();var i=kw(n,u);i&&(e.shape=i)})),t?(o.setShape(u),o.shape.r=l.r0,Ou(o,{shape:{r:l.r}},n,e.dataIndex)):Ou(o,{shape:u},n),o.useStyle(h),this._updateLabel(n);var d=a.getShallow("cursor");d&&o.attr("cursor",d),this._seriesModel=n||this._seriesModel,this._ecModel=i||this._ecModel;var f=s.get("focus");Js(this,("ancestor"===f?e.getAncestorsIndices():"descendant"===f?e.getDescendantIndices():null)||f,s.get("blurScope"))},e.prototype._updateLabel=function(t){var e=this,n=this.node.getModel(),i=n.getModel("label"),r=this.node.getLayout(),o=r.endAngle-r.startAngle,a=(r.startAngle+r.endAngle)/2,s=Math.cos(a),l=Math.sin(a),u=this,h=u.getTextContent(),c=this.node.dataIndex,p=i.get("minAngle")/180*Math.PI,d=i.get("show")&&!(null!=p&&Math.abs(o)<p);function f(t,e){var n=t.get(e);return null==n?i.get(e):n}h.ignore=!d,P(bs,(function(i){var o="normal"===i?n.getModel("label"):n.getModel([i,"label"]),p="normal"===i,d=p?h:h.ensureState(i),g=t.getFormattedLabel(c,i);p&&(g=g||e.node.name),d.style=nh(o,{},null,"normal"!==i,!0),g&&(d.style.text=g);var y=o.get("show");null==y||p||(d.ignore=!y);var v,m=f(o,"position"),_=p?u:u.states[i],x=_.style.fill;_.textConfig={outsideFill:"inherit"===o.get("color")?x:null,inside:"outside"!==m};var b=f(o,"distance")||0,w=f(o,"align");"outside"===m?(v=r.r+b,w=a>Math.PI/2?"right":"left"):w&&"center"!==w?"left"===w?(v=r.r0+b,a>Math.PI/2&&(w="right")):"right"===w&&(v=r.r-b,a>Math.PI/2&&(w="left")):(v=(r.r+r.r0)/2,w="center"),d.style.align=w,d.style.verticalAlign=f(o,"verticalAlign")||"middle",d.x=v*s+r.cx,d.y=v*l+r.cy;var S=f(o,"rotate"),M=0;"radial"===S?(M=-a)<-Math.PI/2&&(M+=Math.PI):"tangential"===S?(M=Math.PI/2-a)>Math.PI/2?M-=Math.PI:M<-Math.PI/2&&(M+=Math.PI):"number"==typeof S&&(M=S*Math.PI/180),d.rotation=M})),h.dirtyStyle()},e}(Wl),ik="sunburstRootToNode",rk="sunburstHighlight";var ok=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n,i){var r=this;this.seriesModel=t,this.api=n,this.ecModel=e;var o=t.getData(),a=o.tree.root,s=t.getViewRoot(),l=this.group,u=t.get("renderLabelForZeroData"),h=[];s.eachNode((function(t){h.push(t)}));var c=this._oldChildren||[];!function(i,r){if(0===i.length&&0===r.length)return;function s(t){return t.getId()}function h(s,h){!function(i,r){u||!i||i.getValue()||(i=null);if(i!==a&&r!==a)if(r&&r.piece)i?(r.piece.updateData(!1,i,t,e,n),o.setItemGraphicEl(i.dataIndex,r.piece)):function(t){if(!t)return;t.piece&&(l.remove(t.piece),t.piece=null)}(r);else if(i){var s=new nk(i,t,e,n);l.add(s),o.setItemGraphicEl(i.dataIndex,s)}}(null==s?null:i[s],null==h?null:r[h])}new rm(r,i,s,s).add(h).update(h).remove(V(h,null)).execute()}(h,c),function(i,o){o.depth>0?(r.virtualPiece?r.virtualPiece.updateData(!1,i,t,e,n):(r.virtualPiece=new nk(i,t,e,n),l.add(r.virtualPiece)),o.piece.off("click"),r.virtualPiece.on("click",(function(t){r._rootToNode(o.parentNode)}))):r.virtualPiece&&(l.remove(r.virtualPiece),r.virtualPiece=null)}(a,s),this._initEvents(),this._oldChildren=h},e.prototype._initEvents=function(){var t=this;this.group.off("click"),this.group.on("click",(function(e){var n=!1;t.seriesModel.getViewRoot().eachNode((function(i){if(!n&&i.piece&&i.piece===e.target){var r=i.getModel().get("nodeClick");if("rootToNode"===r)t._rootToNode(i);else if("link"===r){var o=i.getModel(),a=o.get("link");if(a)wc(a,o.get("target",!0)||"_blank")}n=!0}}))}))},e.prototype._rootToNode=function(t){t!==this.seriesModel.getViewRoot()&&this.api.dispatchAction({type:ik,from:this.uid,seriesId:this.seriesModel.id,targetNode:t})},e.prototype.containPoint=function(t,e){var n=e.getData().getItemLayout(0);if(n){var i=t[0]-n.cx,r=t[1]-n.cy,o=Math.sqrt(i*i+r*r);return o<=n.r&&o>=n.r0}},e.type="sunburst",e}(yf),ak=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.ignoreStyleOnData=!0,n}return n(e,t),e.prototype.getInitialData=function(t,e){var n={name:t.name,children:t.data};sk(n);var i=O(t.levels||[],(function(t){return new Sh(t,this,e)}),this),r=mI.createTree(n,this,(function(t){t.wrapMethod("getItemModel",(function(t,e){var n=r.getNodeByDataIndex(e),o=i[n.depth];return o&&(t.parentModel=o),t}))}));return r.data},e.prototype.optionUpdated=function(){this.resetViewRoot()},e.prototype.getDataParams=function(e){var n=t.prototype.getDataParams.apply(this,arguments),i=this.getData().tree.getNodeByDataIndex(e);return n.treePathInfo=CI(i,this),n},e.prototype.getViewRoot=function(){return this._viewRoot},e.prototype.resetViewRoot=function(t){t?this._viewRoot=t:t=this._viewRoot;var e=this.getRawData().tree.root;t&&(t===e||e.contains(t))||(this._viewRoot=e)},e.prototype.enableAriaDecal=function(){LI(this)},e.type="series.sunburst",e.defaultOption={zlevel:0,z:2,center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,stillShowZeroSum:!0,nodeClick:"rootToNode",renderLabelForZeroData:!1,label:{rotate:"radial",show:!0,opacity:1,align:"center",position:"inside",distance:5,silent:!0},itemStyle:{borderWidth:1,borderColor:"white",borderType:"solid",shadowBlur:0,shadowColor:"rgba(0, 0, 0, 0.2)",shadowOffsetX:0,shadowOffsetY:0,opacity:1},emphasis:{focus:"descendant"},blur:{itemStyle:{opacity:.2},label:{opacity:.1}},animationType:"expansion",animationDuration:1e3,animationDurationUpdate:500,data:[],levels:[],sort:"desc"},e}(rf);function sk(t){var e=0;P(t.children,(function(t){sk(t);var n=t.value;F(n)&&(n=n[0]),e+=n}));var n=t.value;F(n)&&(n=n[0]),(null==n||isNaN(n))&&(n=e),n<0&&(n=0),F(t.value)?t.value[0]=n:t.value=n}var lk=Math.PI/180;function uk(t,e,n){e.eachSeriesByType(t,(function(t){var e=t.get("center"),i=t.get("radius");F(i)||(i=[0,i]),F(e)||(e=[e,e]);var r=n.getWidth(),o=n.getHeight(),a=Math.min(r,o),s=Zi(e[0],r),l=Zi(e[1],o),u=Zi(i[0],a/2),h=Zi(i[1],a/2),c=-t.get("startAngle")*lk,p=t.get("minAngle")*lk,d=t.getData().tree.root,f=t.getViewRoot(),g=f.depth,y=t.get("sort");null!=y&&hk(f,y);var v=0;P(f.children,(function(t){!isNaN(t.getValue())&&v++}));var m=f.getValue(),_=Math.PI/(m||v)*2,x=f.depth>0,b=f.height-(x?-1:1),w=(h-u)/(b||1),S=t.get("clockwise"),M=t.get("stillShowZeroSum"),I=S?1:-1,T=function(t,e){if(t){var n=e;if(t!==d){var i=t.getValue(),r=0===m&&M?_:i*_;r<p&&(r=p),n=e+I*r;var o=t.depth-g-(x?-1:1),h=u+w*o,c=u+w*(o+1),f=t.getModel();null!=f.get("r0")&&(h=Zi(f.get("r0"),a/2)),null!=f.get("r")&&(c=Zi(f.get("r"),a/2)),t.setLayout({angle:r,startAngle:e,endAngle:n,clockwise:S,cx:s,cy:l,r0:h,r:c})}if(t.children&&t.children.length){var y=0;P(t.children,(function(t){y+=T(t,e+y)}))}return n-e}};if(x){var C=u,A=u+w,D=2*Math.PI;d.setLayout({angle:D,startAngle:c,endAngle:c+D,clockwise:S,cx:s,cy:l,r0:C,r:A})}T(f,c)}))}function hk(t,e){var n=t.children||[];t.children=function(t,e){if("function"==typeof e){var n=O(t,(function(t,e){var n=t.getValue();return{params:{depth:t.depth,height:t.height,dataIndex:t.dataIndex,getValue:function(){return n}},index:e}}));return n.sort((function(t,n){return e(t.params,n.params)})),O(n,(function(e){return t[e.index]}))}var i="asc"===e;return t.sort((function(t,e){var n=(t.getValue()-e.getValue())*(i?1:-1);return 0===n?(t.dataIndex-e.dataIndex)*(i?-1:1):n}))}(n,e),n.length&&P(t.children,(function(t){hk(t,e)}))}function ck(t){var e={};t.eachSeriesByType("sunburst",(function(t){var n=t.getData(),i=n.tree;i.eachNode((function(r){var o=r.getModel().getModel("itemStyle").getItemStyle();o.fill||(o.fill=function(t,n,i){for(var r=t;r&&r.depth>1;)r=r.parentNode;var o=n.getColorFromPalette(r.name||r.dataIndex+"",e);return t.depth>1&&"string"==typeof o&&(o=$e(o,(t.depth-1)/(i-1)*.5)),o}(r,t,i.root.height)),I(n.ensureUniqueItemVisual(r.dataIndex,"style"),o)}))}))}function pk(t,e){return e=e||[0,0],O(["x","y"],(function(n,i){var r=this.getAxis(n),o=e[i],a=t[i]/2;return"category"===r.type?r.getBandWidth():Math.abs(r.dataToCoord(o-a)-r.dataToCoord(o+a))}),this)}function dk(t,e){return e=e||[0,0],O([0,1],(function(n){var i=e[n],r=t[n]/2,o=[],a=[];return o[n]=i-r,a[n]=i+r,o[1-n]=a[1-n]=e[1-n],Math.abs(this.dataToPoint(o)[n]-this.dataToPoint(a)[n])}),this)}function fk(t,e){var n=this.getAxis(),i=e instanceof Array?e[0]:e,r=(t instanceof Array?t[0]:t)/2;return"category"===n.type?n.getBandWidth():Math.abs(n.dataToCoord(i-r)-n.dataToCoord(i+r))}function gk(t,e){return e=e||[0,0],O(["Radius","Angle"],(function(n,i){var r=this["get"+n+"Axis"](),o=e[i],a=t[i]/2,s="category"===r.type?r.getBandWidth():Math.abs(r.dataToCoord(o-a)-r.dataToCoord(o+a));return"Angle"===n&&(s=s*Math.PI/180),s}),this)}function yk(t,e,n,i){return t&&(t.legacy||!1!==t.legacy&&!n&&!i&&"tspan"!==e&&("text"===e||dt(t,"text")))}function vk(t,e,n){var i,r,o,a=t;if("text"===e)o=a;else{o={},dt(a,"text")&&(o.text=a.text),dt(a,"rich")&&(o.rich=a.rich),dt(a,"textFill")&&(o.fill=a.textFill),dt(a,"textStroke")&&(o.stroke=a.textStroke),r={type:"text",style:o,silent:!0},i={};var s=dt(a,"textPosition");n?i.position=s?a.textPosition:"inside":s&&(i.position=a.textPosition),dt(a,"textPosition")&&(i.position=a.textPosition),dt(a,"textOffset")&&(i.offset=a.textOffset),dt(a,"textRotation")&&(i.rotation=a.textRotation),dt(a,"textDistance")&&(i.distance=a.textDistance)}return mk(o,t),P(o.rich,(function(t){mk(t,t)})),{textConfig:i,textContent:r}}function mk(t,e){e&&(e.font=e.textFont||e.font,dt(e,"textStrokeWidth")&&(t.lineWidth=e.textStrokeWidth),dt(e,"textAlign")&&(t.align=e.textAlign),dt(e,"textVerticalAlign")&&(t.verticalAlign=e.textVerticalAlign),dt(e,"textLineHeight")&&(t.lineHeight=e.textLineHeight),dt(e,"textWidth")&&(t.width=e.textWidth),dt(e,"textHeight")&&(t.height=e.textHeight),dt(e,"textBackgroundColor")&&(t.backgroundColor=e.textBackgroundColor),dt(e,"textPadding")&&(t.padding=e.textPadding),dt(e,"textBorderColor")&&(t.borderColor=e.textBorderColor),dt(e,"textBorderWidth")&&(t.borderWidth=e.textBorderWidth),dt(e,"textBorderRadius")&&(t.borderRadius=e.textBorderRadius),dt(e,"textBoxShadowColor")&&(t.shadowColor=e.textBoxShadowColor),dt(e,"textBoxShadowBlur")&&(t.shadowBlur=e.textBoxShadowBlur),dt(e,"textBoxShadowOffsetX")&&(t.shadowOffsetX=e.textBoxShadowOffsetX),dt(e,"textBoxShadowOffsetY")&&(t.shadowOffsetY=e.textBoxShadowOffsetY))}function _k(t,e,n){var i=t;i.textPosition=i.textPosition||n.position||"inside",null!=n.offset&&(i.textOffset=n.offset),null!=n.rotation&&(i.textRotation=n.rotation),null!=n.distance&&(i.textDistance=n.distance);var r=i.textPosition.indexOf("inside")>=0,o=t.fill||"#000";xk(i,e);var a=null==i.textFill;return r?a&&(i.textFill=n.insideFill||"#fff",!i.textStroke&&n.insideStroke&&(i.textStroke=n.insideStroke),!i.textStroke&&(i.textStroke=o),null==i.textStrokeWidth&&(i.textStrokeWidth=2)):(a&&(i.textFill=n.outsideFill||o),!i.textStroke&&n.outsideStroke&&(i.textStroke=n.outsideStroke)),i.text=e.text,i.rich=e.rich,P(e.rich,(function(t){xk(t,t)})),i}function xk(t,e){e&&(dt(e,"fill")&&(t.textFill=e.fill),dt(e,"stroke")&&(t.textStroke=e.fill),dt(e,"lineWidth")&&(t.textStrokeWidth=e.lineWidth),dt(e,"font")&&(t.font=e.font),dt(e,"fontStyle")&&(t.fontStyle=e.fontStyle),dt(e,"fontWeight")&&(t.fontWeight=e.fontWeight),dt(e,"fontSize")&&(t.fontSize=e.fontSize),dt(e,"fontFamily")&&(t.fontFamily=e.fontFamily),dt(e,"align")&&(t.textAlign=e.align),dt(e,"verticalAlign")&&(t.textVerticalAlign=e.verticalAlign),dt(e,"lineHeight")&&(t.textLineHeight=e.lineHeight),dt(e,"width")&&(t.textWidth=e.width),dt(e,"height")&&(t.textHeight=e.height),dt(e,"backgroundColor")&&(t.textBackgroundColor=e.backgroundColor),dt(e,"padding")&&(t.textPadding=e.padding),dt(e,"borderColor")&&(t.textBorderColor=e.borderColor),dt(e,"borderWidth")&&(t.textBorderWidth=e.borderWidth),dt(e,"borderRadius")&&(t.textBorderRadius=e.borderRadius),dt(e,"shadowColor")&&(t.textBoxShadowColor=e.shadowColor),dt(e,"shadowBlur")&&(t.textBoxShadowBlur=e.shadowBlur),dt(e,"shadowOffsetX")&&(t.textBoxShadowOffsetX=e.shadowOffsetX),dt(e,"shadowOffsetY")&&(t.textBoxShadowOffsetY=e.shadowOffsetY),dt(e,"textShadowColor")&&(t.textShadowColor=e.textShadowColor),dt(e,"textShadowBlur")&&(t.textShadowBlur=e.textShadowBlur),dt(e,"textShadowOffsetX")&&(t.textShadowOffsetX=e.textShadowOffsetX),dt(e,"textShadowOffsetY")&&(t.textShadowOffsetY=e.textShadowOffsetY))}var bk=Ca.CMD,wk=2*Math.PI,Sk=["x","y"],Mk=["width","height"],Ik=[];function Tk(t,e){return Math.abs(t-e)<1e-5}function Ck(t){var e,n,i,r,o,a=t.data,s=t.len(),l=[],u=0,h=0,c=0,p=0;function d(t,n){e&&e.length>2&&l.push(e),e=[t,n]}function f(t,n,i,r){Tk(t,i)&&Tk(n,r)||e.push(t,n,i,r,i,r)}function g(t,n,i,r,o,a){var s=Math.abs(n-t),l=4*Math.tan(s/4)/3,u=n<t?-1:1,h=Math.cos(t),c=Math.sin(t),p=Math.cos(n),d=Math.sin(n),f=h*o+i,g=c*a+r,y=p*o+i,v=d*a+r,m=o*l*u,_=a*l*u;e.push(f-m*c,g+_*h,y+m*d,v-_*p,y,v)}for(var y=0;y<s;){var v=a[y++],m=1===y;switch(m&&(c=u=a[y],p=h=a[y+1],v!==bk.L&&v!==bk.C&&v!==bk.Q||(e=[c,p])),v){case bk.M:u=c=a[y++],h=p=a[y++],d(c,p);break;case bk.L:f(u,h,n=a[y++],i=a[y++]),u=n,h=i;break;case bk.C:e.push(a[y++],a[y++],a[y++],a[y++],u=a[y++],h=a[y++]);break;case bk.Q:n=a[y++],i=a[y++],r=a[y++],o=a[y++],e.push(u+2/3*(n-u),h+2/3*(i-h),r+2/3*(n-r),o+2/3*(i-o),r,o),u=r,h=o;break;case bk.A:var _=a[y++],x=a[y++],b=a[y++],w=a[y++],S=a[y++],M=a[y++]+S;y+=1;var I=!a[y++];n=Math.cos(S)*b+_,i=Math.sin(S)*w+x,m?d(c=n,p=i):f(u,h,n,i),u=Math.cos(M)*b+_,h=Math.sin(M)*w+x;for(var T=(I?-1:1)*Math.PI/2,C=S;I?C>M:C<M;C+=T){g(C,I?Math.max(C+T,M):Math.min(C+T,M),_,x,b,w)}break;case bk.R:c=u=a[y++],p=h=a[y++],n=c+a[y++],i=p+a[y++],d(n,p),f(n,p,n,i),f(n,i,c,i),f(c,i,c,p),f(c,p,n,p);break;case bk.Z:e&&f(u,h,c,p),u=c,h=p}}return e&&e.length>2&&l.push(e),l}function Ak(t,e){var n=t.length,i=e.length;if(n===i)return[t,e];for(var r=n<i?t:e,o=Math.min(n,i),a=Math.abs(i-n)/6,s=(o-2)/6,l=Math.ceil(a/s)+1,u=[r[0],r[1]],h=a,c=[],p=[],d=2;d<o;){var f=r[d-2],g=r[d-1],y=r[d++],v=r[d++],m=r[d++],_=r[d++],x=r[d++],b=r[d++];if(h<=0)u.push(y,v,m,_,x,b);else{for(var w=Math.min(h,l-1)+1,S=1;S<=w;S++){var M=S/w;Bo(f,y,m,x,M,c),Bo(g,v,_,b,M,p),f=c[3],g=p[3],u.push(c[1],p[1],c[2],p[2],f,g),y=c[5],v=p[5],m=c[6],_=p[6]}h-=w-1}}return r===t?[u,e]:[t,u]}function Dk(t,e){for(var n=t.length,i=t[n-2],r=t[n-1],o=[],a=0;a<e.length;)o[a++]=i,o[a++]=r;return o}function Lk(t){for(var e=0,n=0,i=0,r=t.length,o=0,a=r-2;o<r;a=o,o+=2){var s=t[a],l=t[a+1],u=t[o],h=t[o+1],c=s*h-u*l;e+=c,n+=(s+u)*c,i+=(l+h)*c}return 0===e?[t[0]||0,t[1]||0]:[n/e/3,i/e/3,e]}function kk(t,e,n,i){for(var r=(t.length-2)/6,o=1/0,a=0,s=t.length,l=s-2,u=0;u<r;u++){for(var h=6*u,c=0,p=0;p<s;p+=2){var d=0===p?h:(h+p-2)%l+2,f=t[d]-n[0],g=t[d+1]-n[1],y=e[p]-i[0]-f,v=e[p+1]-i[1]-g;c+=y*y+v*v}c<o&&(o=c,a=u)}return a}function Pk(t){for(var e=[],n=t.length,i=0;i<n;i+=2)e[i]=t[n-i-2],e[i+1]=t[n-i-1];return e}function Ok(t,e,n){var i,r;if(!t||!e)return e;!t.path&&t.createPathProxy(),(i=t.path).beginPath(),t.buildPath(i,t.shape),!e.path&&e.createPathProxy(),(r=e.path)===i&&(r=new Ca(!1)),r.beginPath(),Ek(e)?e.__oldBuildPath(r,e.shape):e.buildPath(r,e.shape);var o=function(t,e){for(var n,i,r,o=[],a=[],s=0;s<Math.max(t.length,e.length);s++){var l=t[s],u=e[s],h=void 0,c=void 0;l?u?(i=h=(n=Ak(l,u))[0],r=c=n[1]):(c=Dk(r||l,l),h=l):(h=Dk(i||u,u),c=u),o.push(h),a.push(c)}return[o,a]}(Ck(i),Ck(r)),a=function(t,e,n,i){for(var r,o=[],a=0;a<t.length;a++){var s=t[a],l=e[a],u=Lk(s),h=Lk(l);null==r&&(r=u[2]<0!=h[2]<0);var c=[],p=[],d=0,f=1/0,g=[],y=s.length;r&&(s=Pk(s));for(var v=6*kk(s,l,u,h),m=y-2,_=0;_<m;_+=2){var x=(v+_)%m+2;c[_+2]=s[x]-u[0],c[_+3]=s[x+1]-u[1]}if(c[0]=s[v]-u[0],c[1]=s[v+1]-u[1],n>0)for(var b=i/n,w=-i/2;w<=i/2;w+=b){var S=Math.sin(w),M=Math.cos(w),I=0;for(_=0;_<s.length;_+=2){var T=c[_],C=c[_+1],A=l[_]-h[0],D=l[_+1]-h[1],L=A*M-D*S,k=A*S+D*M;g[_]=L,g[_+1]=k;var P=L-T,O=k-C;I+=P*P+O*O}if(I<f){f=I,d=w;for(var R=0;R<g.length;R++)p[R]=g[R]}}else for(var N=0;N<y;N+=2)p[N]=l[N]-h[0],p[N+1]=l[N+1]-h[1];o.push({from:c,to:p,fromCp:u,toCp:h,rotation:-d})}return o}(o[0],o[1],10,Math.PI);!function(t,e,n){if(Ek(t))return void Nk(t,e,n);var i=t;i.__oldBuildPath=i.buildPath,i.buildPath=Rk,Nk(i,e,n)}(e,a,0);var s=n&&n.done,l=n&&n.aborted,u=n&&n.during;return e.animateTo({__morphT:1},T({during:function(t){e.dirtyShape(),u&&u(t)},done:function(){var t;Ek(t=e)&&(t.buildPath=t.__oldBuildPath,t.__oldBuildPath=t.__morphingData=null),e.createPathProxy(),e.dirtyShape(),s&&s()},aborted:function(){l&&l()}},n)),e}function Rk(t){for(var e=this.__morphingData,n=this.__morphT,i=1-n,r=[],o=0;o<e.length;o++){var a=e[o],s=a.from,l=a.to,u=a.rotation*n,h=a.fromCp,c=a.toCp,p=Math.sin(u),d=Math.cos(u);Ot(r,h,c,n);for(var f=0;f<s.length;f+=2){var g=s[f],y=s[f+1],v=g*i+l[f]*n,m=y*i+l[f+1]*n;Ik[f]=v*d-m*p+r[0],Ik[f+1]=v*p+m*d+r[1]}for(f=0;f<s.length;)0===f&&t.moveTo(Ik[f++],Ik[f++]),t.bezierCurveTo(Ik[f++],Ik[f++],Ik[f++],Ik[f++],Ik[f++],Ik[f++])}}function Nk(t,e,n){t.__morphingData=e,t.__morphT=n}function Ek(t){return null!=t.__oldBuildPath}function zk(t){return!!t.__combiningSubList}function Bk(t,e,n,i){for(var r=[],o=0,a=0;a<t.length;a++){var s=t[a];if(zk(s)){for(var l=s.__combiningSubList,u=0;u<l.length;u++)r.push(l[u]);o+=l.length}else r.push(s),o++}if(o){var h=n?n.dividingMethod:null,c=Yk(e,o,h);rt(c.length===o);var p=n&&n.done,d=n&&n.aborted,f=n&&n.during,g=0,y=!1,v=T({during:function(t){f&&f(t)},done:function(){++g===c.length&&(!function(t){if(!zk(t))return;var e=t;Vk(e,null),e.addSelfToZr=e.__oldAddSelfToZr,e.removeSelfFromZr=e.__oldRemoveSelfFromZr,e.buildPath=e.__oldBuildPath,e.childrenRef=e.__combiningSubList=e.__oldAddSelfToZr=e.__oldRemoveSelfFromZr=e.__oldBuildPath=null}(e),p&&p())},aborted:function(){y||(y=!0,d&&d())}},n);for(a=0;a<o;a++){var m=r[a],_=c[a];i&&i(e,_,!0),Ok(m,_,v)}return function(t,e){if(zk(t))return void Vk(t,e);var n=t;Vk(n,e),n.__oldAddSelfToZr=t.addSelfToZr,n.__oldRemoveSelfFromZr=t.removeSelfFromZr,n.addSelfToZr=Fk,n.removeSelfFromZr=Hk,n.__oldBuildPath=n.buildPath,n.buildPath=ft,n.childrenRef=Wk}(e,c),{fromIndividuals:r,toIndividuals:c,count:o}}}function Vk(t,e){if(t.__combiningSubList!==e){if(Gk(t,"removeSelfFromZr"),t.__combiningSubList=e,e)for(var n=0;n<e.length;n++)e[n].parent=t;Gk(t,"addSelfToZr")}}function Fk(t){this.__oldAddSelfToZr(t),Gk(this,"addSelfToZr")}function Gk(t,e){var n=t.__combiningSubList,i=t.__zr;if(n&&i)for(var r=0;r<n.length;r++){n[r][e](i)}}function Hk(t){this.__oldRemoveSelfFromZr(t);for(var e=this.__combiningSubList,n=0;n<e.length;n++){e[n].removeSelfFromZr(t)}}function Wk(){return this.__combiningSubList}function Yk(t,e,n){return"duplicate"===n?Xk(t,e):function(t,e){var n=[];if(e<=0)return n;if(1===e)return Xk(t,e);if(t instanceof os)for(var i=(c=t.shape).height>c.width?1:0,r=Mk[i],o=Sk[i],a=c[r]/e,s=c[o],l=0;l<e;l++,s+=a){var u={x:c.x,y:c.y,width:c.width,height:c.height};u[o]=s,u[r]=l<e-1?a:c[o]+c[r]-s;var h=new os({shape:u});n.push(h)}else{if(!(t instanceof Wl))return Xk(t,e);var c,p=(c=t.shape).clockwise,d=c.startAngle,f=c.endAngle,g=(function(t,e,n){return e+wk*Math[n?"ceil":"floor"]((t-e)/wk)}(d,c.endAngle,p)-d)/e,y=d;for(l=0;l<e;l++,y+=g){h=new Wl({shape:{cx:c.cx,cy:c.cy,r:c.r,r0:c.r0,clockwise:p,startAngle:y,endAngle:l===e-1?f:y+g}});n.push(h)}}return n}(t,e)}function Xk(t,e){var n=[];if(e<=0)return n;for(var i=t.constructor,r=0;r<e;r++){var o=new i({shape:w(t.shape)});n.push(o)}return n}var Uk=Lr(),Zk={x:1,y:1,scaleX:1,scaleY:1,originX:1,originY:1,rotation:1},jk=(z(Zk).join(", "),{color:"fill",borderColor:"stroke"}),qk={symbol:1,symbolSize:1,symbolKeepAspect:1,legendSymbol:1,visualMeta:1,liftZ:1,decal:1},Kk="emphasis",$k="normal",Jk="blur",Qk="select",tP=[$k,Kk,Jk,Qk],eP={normal:["itemStyle"],emphasis:[Kk,"itemStyle"],blur:[Jk,"itemStyle"],select:[Qk,"itemStyle"]},nP={normal:["label"],emphasis:[Kk,"label"],blur:[Jk,"label"],select:[Qk,"label"]},iP={normal:{},emphasis:{},blur:{},select:{}},rP={position:["x","y"],scale:["scaleX","scaleY"],origin:["originX","originY"]},oP=new ke,aP={cartesian2d:function(t){var e=t.master.getRect();return{coordSys:{type:"cartesian2d",x:e.x,y:e.y,width:e.width,height:e.height},api:{coord:function(e){return t.dataToPoint(e)},size:B(pk,t)}}},geo:function(t){var e=t.getBoundingRect();return{coordSys:{type:"geo",x:e.x,y:e.y,width:e.width,height:e.height,zoom:t.getZoom()},api:{coord:function(e){return t.dataToPoint(e)},size:B(dk,t)}}},singleAxis:function(t){var e=t.getRect();return{coordSys:{type:"singleAxis",x:e.x,y:e.y,width:e.width,height:e.height},api:{coord:function(e){return t.dataToPoint(e)},size:B(fk,t)}}},polar:function(t){var e=t.getRadiusAxis(),n=t.getAngleAxis(),i=e.getExtent();return i[0]>i[1]&&i.reverse(),{coordSys:{type:"polar",cx:t.cx,cy:t.cy,r:i[1],r0:i[0]},api:{coord:function(i){var r=e.dataToRadius(i[0]),o=n.dataToAngle(i[1]),a=t.coordToPoint([r,o]);return a.push(r,o*Math.PI/180),a},size:B(gk,t)}}},calendar:function(t){var e=t.getRect(),n=t.getRangeInfo();return{coordSys:{type:"calendar",x:e.x,y:e.y,width:e.width,height:e.height,cellWidth:t.getCellWidth(),cellHeight:t.getCellHeight(),rangeInfo:{start:n.start,end:n.end,weeks:n.weeks,dayCount:n.allDay}},api:{coord:function(e,n){return t.dataToPoint(e,n)}}}}},sP=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.optionUpdated=function(){this.currentZLevel=this.get("zlevel",!0),this.currentZ=this.get("z",!0)},e.prototype.getInitialData=function(t,e){return Hm(this.getSource(),this)},e.prototype.getDataParams=function(e,n,i){var r=t.prototype.getDataParams.call(this,e,n);return i&&(r.info=Uk(i).info),r},e.type="series.custom",e.dependencies=["grid","polar","geo","singleAxis","calendar"],e.defaultOption={coordinateSystem:"cartesian2d",zlevel:0,z:2,legendHoverLink:!0,clip:!1},e}(rf),lP=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n,i){var r=this._data,o=t.getData(),a=this.group,s=AP(t,o,e,n),l=t.__transientTransitionOpt;if(!l||null!=l.from&&null!=l.to){var u=new WP(t,l),h=l?"multiple":"oneToOne";new rm(r?r.getIndices():[],o.getIndices(),uP(r,h,l&&l.from),uP(o,h,l&&l.to),null,h).add((function(e){LP(n,null,e,s(e,i),t,a,o,null)})).remove((function(e){VP(r.getItemGraphicEl(e),t,a)})).update((function(e,l){u.reset("oneToOne");var h=r.getItemGraphicEl(l);u.findAndAddFrom(h),u.hasFrom()&&(HP(h,a),h=null),LP(n,h,e,s(e,i),t,a,o,u),u.applyMorphing()})).updateManyToOne((function(e,l){u.reset("manyToOne");for(var h=0;h<l.length;h++){var c=r.getItemGraphicEl(l[h]);u.findAndAddFrom(c),HP(c,a)}LP(n,null,e,s(e,i),t,a,o,u),u.applyMorphing()})).updateOneToMany((function(e,l){u.reset("oneToMany");var h=e.length,c=r.getItemGraphicEl(l);u.findAndAddFrom(c),HP(c,a);for(var p=0;p<h;p++)LP(n,null,e[p],s(e[p],i),t,a,o,u);u.applyMorphing()})).execute()}else r&&r.each((function(e){VP(r.getItemGraphicEl(e),t,a)})),o.each((function(e){LP(n,null,e,s(e,i),t,a,o,null)}));var c=t.get("clip",!0)?Hb(t.coordinateSystem,!1,t):null;c?a.setClipPath(c):a.removeClipPath(),this._data=o},e.prototype.incrementalPrepareRender=function(t,e,n){this.group.removeAll(),this._data=null},e.prototype.incrementalRender=function(t,e,n,i,r){var o=e.getData(),a=AP(e,o,n,i);function s(t){t.isGroup||(t.incremental=!0,t.ensureState("emphasis").hoverLayer=!0)}for(var l=t.start;l<t.end;l++){LP(null,null,l,a(l,r),e,this.group,o,null).traverse(s)}},e.prototype.filterForExposedEvent=function(t,e,n,i){var r=e.element;if(null==r||n.name===r)return!0;for(;(n=n.__hostTarget||n.parent)&&n!==this.group;)if(n.name===r)return!0;return!1},e.type="custom",e}(yf);function uP(t,e,n){if(t){if("oneToOne"===e)return function(e,n){return t.getId(n)};var i=t.getDimension(n),r=t.getDimensionInfo(i);if(!r){var o="";0,yr(o)}var a=r.ordinalMeta;return function(e,n){var r=t.get(i,n);return a&&(r=a.categories[r]),null==r||J(r)?e+"":"_ec_"+r}}}function hP(t){var e,n=t.type;if("path"===n){var i=t.shape,r=null!=i.width&&null!=i.height?{x:i.x||0,y:i.y||0,width:i.width,height:i.height}:null,o=FP(i);e=Tu(o,null,r,i.layout||"center"),Uk(e).customPathData=o}else if("image"===n)e=new Ja({}),Uk(e).customImagePath=t.style.image;else if("text"===n)e=new ls({});else if("group"===n)e=new zi;else{if("compoundPath"===n)throw new Error('"compoundPath" is not supported yet.');var a=Iu(n);if(!a){var s="";0,yr(s)}e=new a}return Uk(e).customGraphicType=n,e.name=t.name,e.z2EmphasisLift=1,e.z2SelectLift=1,e}function cP(t,e,n,i,r,o,a,s,l,u){var h={},c={},p=e.isGroup?null:e;!n&&fP("shape",e,null,r,h,l),gP("shape",r,c),!n&&fP("extra",e,null,r,h,l),gP("extra",r,c),!n&&yP(e,null,r,h,l),function(t,e){IP(t,e,"position"),IP(t,e,"scale"),IP(t,e,"origin"),TP(t,e,"x"),TP(t,e,"y"),TP(t,e,"scaleX"),TP(t,e,"scaleY"),TP(t,e,"originX"),TP(t,e,"originY"),TP(t,e,"rotation")}(r,c);var d=a&&a.normal.cfg;if(d&&e.setTextConfig(d),"text"===e.type&&o){var f=o;dt(f,"textFill")&&(f.fill=f.textFill),dt(f,"textStroke")&&(f.stroke=f.textStroke)}if(o){var g=void 0,y=GP(e)?o.decal:null;t&&y&&(y.dirty=!0,g=ky(y,t)),o.__decalPattern=g}return!n&&vP(e,null,r,o,h,l),p&&dt(r,"invisible")&&(p.invisible=r.invisible),n||(pP(e,c,o),dP(e,i,r,s,h,l)),dt(r,"silent")&&(e.silent=r.silent),dt(r,"ignore")&&(e.ignore=r.ignore),u||dt(r,"info")&&(Uk(e).info=r.info),o?e.dirty():e.markRedraw(),n?c:null}function pP(t,e,n){var i=t.isGroup?null:t;if(i&&n){var r=n.__decalPattern,o=void 0;r&&(o=n.decal,n.decal=r),i.useStyle(n),r&&(n.decal=o);for(var a=i.animators,s=0;s<a.length;s++){var l=a[s];"style"===l.targetName&&l.changeTarget(i.style)}}e&&t.attr(e)}function dP(t,e,n,i,r,o){if(r){var a=n.during;Uk(t).userDuring=a;var s={dataIndex:e,isFrom:!0,during:a?B(wP,{el:t,userDuring:a}):null};o?Ru(t,r,i,s):Ou(t,r,i,s)}}function fP(t,e,n,i,r,o){var a=i[t];if(a){var s,l=e[t],u=a.enterFrom;if(o&&u){!s&&(s=r[t]={});for(var h=z(u),c=0;c<h.length;c++){s[_=h[c]]=u[_]}}if(!o&&l&&(null==n||"shape"!==t))if(a.transition){!s&&(s=r[t]={});var p=_r(a.transition);for(c=0;c<p.length;c++){var d=l[_=p[c]];0,s[_]=d}}else if(A(i.transition,t)>=0){!s&&(s=r[t]={});var f=z(l);for(c=0;c<f.length;c++){d=l[_=f[c]];mP(a[_],d)&&(s[_]=d)}}var g=a.leaveTo;if(g){var y=_P(e),v=y[t]||(y[t]={}),m=z(g);for(c=0;c<m.length;c++){var _;v[_=m[c]]=g[_]}}}}function gP(t,e,n){var i=e[t];if(i)for(var r=n[t]={},o=z(i),a=0;a<o.length;a++){var s=o[a];r[s]=mn(i[s])}}function yP(t,e,n,i,r){var o=n.enterFrom;if(r&&o)for(var a=z(o),s=0;s<a.length;s++){0,i[f=a[s]]=o[f]}if(!r)if(e){var l=function(t,e){if(!t||t===e||t.parent===e.parent)return t;var n=oP.transform||(oP.transform=ge([])),i=t.getComputedTransform();i?ye(n,i):ge(n);var r=e.parent;r&&r.getComputedTransform();return oP.originX=t.originX,oP.originY=t.originY,oP.parent=r,oP.decomposeTransform(),oP}(e,t);CP(i,"x",l),CP(i,"y",l),CP(i,"scaleX",l),CP(i,"scaleY",l),CP(i,"originX",l),CP(i,"originY",l),CP(i,"rotation",l)}else if(n.transition){var u=_r(n.transition);for(s=0;s<u.length;s++){if("style"!==(f=u[s])&&"shape"!==f&&"extra"!==f){var h=t[f];0,i[f]=h}}}else CP(i,"x",t),CP(i,"y",t);var c=n.leaveTo;if(c){var p=_P(t),d=z(c);for(s=0;s<d.length;s++){var f;0,p[f=d[s]]=c[f]}}}function vP(t,e,n,i,r,o){if(i){var a,s=(e||t).style,l=i.enterFrom;if(o&&l){var u=z(l);!a&&(a=r.style={});for(var h=0;h<u.length;h++){a[x=u[h]]=l[x]}}if(!o&&s)if(i.transition){var c=_r(i.transition);!a&&(a=r.style={});for(h=0;h<c.length;h++){var p=s[x=c[h]];a[x]=p}}else if(t.getAnimationStyleProps&&A(n.transition,"style")>=0){var d=t.getAnimationStyleProps(),f=d?d.style:null;if(f){!a&&(a=r.style={});var g=z(i);for(h=0;h<g.length;h++){if(f[x=g[h]]){p=s[x];a[x]=p}}}}var y=i.leaveTo;if(y){var v=z(y),m=_P(t),_=m.style||(m.style={});for(h=0;h<v.length;h++){var x;_[x=v[h]]=y[x]}}}}function mP(t,e){return k(t)?t!==e:null!=t&&isFinite(t)}function _P(t){var e=Uk(t);return e.leaveToProps||(e.leaveToProps={})}var xP={},bP={setTransform:function(t,e){return xP.el[t]=e,this},getTransform:function(t){return xP.el[t]},setShape:function(t,e){return(xP.el.shape||(xP.el.shape={}))[t]=e,xP.isShapeDirty=!0,this},getShape:function(t){var e=xP.el.shape;if(e)return e[t]},setStyle:function(t,e){var n=xP.el.style;return n&&(n[t]=e,xP.isStyleDirty=!0),this},getStyle:function(t){var e=xP.el.style;if(e)return e[t]},setExtra:function(t,e){return(xP.el.extra||(xP.el.extra={}))[t]=e,this},getExtra:function(t){var e=xP.el.extra;if(e)return e[t]}};function wP(){var t=this,e=t.el;if(e){var n=Uk(e).userDuring,i=t.userDuring;n===i?(xP.el=e,xP.isShapeDirty=!1,xP.isStyleDirty=!1,i(bP),xP.isShapeDirty&&e.dirtyShape&&e.dirtyShape(),xP.isStyleDirty&&e.dirtyStyle&&e.dirtyStyle()):t.el=t.userDuring=null}}function SP(t,e,n,i,r,o,a){var s=e.isGroup?null:e,l=r&&r[t].cfg;if(s){var u=s.ensureState(t);if(!1===i){var h=s.getState(t);h&&(h.style=null)}else u.style=i||null;l&&(u.textConfig=l),Gs(s)}}function MP(t,e,n){var i=n===$k,r=i?e:RP(e,n),o=r?r.z2:null;null!=o&&((i?t:t.ensureState(n)).z2=o||0)}function IP(t,e,n,i){var r=t[n],o=rP[n];r&&(i?(e[o[0]]=i[o[0]],e[o[1]]=i[o[1]]):(e[o[0]]=r[0],e[o[1]]=r[1]))}function TP(t,e,n,i){null!=t[n]&&(e[n]=i?i[n]:t[n])}function CP(t,e,n){n&&(t[e]=n[e])}function AP(t,e,n,i){var r=t.get("renderItem"),o=t.coordinateSystem,a={};o&&(a=o.prepareCustoms?o.prepareCustoms(o):aP[o.type](o));for(var s,l,u=T({getWidth:i.getWidth,getHeight:i.getHeight,getZr:i.getZr,getDevicePixelRatio:i.getDevicePixelRatio,value:function(t,n){return null==n&&(n=s),e.get(e.getDimension(t||0),n)},style:function(n,i){0;null==i&&(i=s);var r=e.getItemVisual(i,"style"),o=r&&r.fill,a=r&&r.opacity,l=m(i,$k).getItemStyle();null!=o&&(l.fill=o),null!=a&&(l.opacity=a);var u={inheritColor:H(o)?o:"#000"},h=_(i,$k),c=nh(h,null,u,!1,!0);c.text=h.getShallow("show")?tt(t.getFormattedLabel(i,$k),_b(e,i)):null;var p=ih(h,u,!1);return b(n,l),l=_k(l,c,p),n&&x(l,n),l.legacy=!0,l},ordinalRawValue:function(t,n){null==n&&(n=s);var i=e.getDimensionInfo(t||0);if(!i)return;var r=e.get(i.name,n),o=i&&i.ordinalMeta;return o?o.categories[r]:r},styleEmphasis:function(n,i){0;null==i&&(i=s);var r=m(i,Kk).getItemStyle(),o=_(i,Kk),a=nh(o,null,null,!0,!0);a.text=o.getShallow("show")?et(t.getFormattedLabel(i,Kk),t.getFormattedLabel(i,$k),_b(e,i)):null;var l=ih(o,null,!0);return b(n,r),r=_k(r,a,l),n&&x(r,n),r.legacy=!0,r},visual:function(t,n){if(null==n&&(n=s),dt(jk,t)){var i=e.getItemVisual(n,"style");return i?i[jk[t]]:null}if(dt(qk,t))return e.getItemVisual(n,t)},barLayout:function(t){if("cartesian2d"===o.type){return function(t){var e=[],n=t.axis,i="axis0";if("category"===n.type){for(var r=n.getBandWidth(),o=0;o<t.count;o++)e.push(T({bandWidth:r,axisKey:i,stackId:n_+o},t));var a=l_(e),s=[];for(o=0;o<t.count;o++){var l=a.axis0[n_+o];l.offsetCenter=l.offset+l.width/2,s.push(l)}return s}}(T({axis:o.getBaseAxis()},t))}},currentSeriesIndices:function(){return n.getCurrentSeriesIndices()},font:function(t){return lh(t,n)}},a.api||{}),h={context:{},seriesId:t.id,seriesName:t.name,seriesIndex:t.seriesIndex,coordSys:a.coordSys,dataInsideLength:e.count(),encode:DP(t.getData())},c={},p={},d={},f={},g=0;g<tP.length;g++){var y=tP[g];d[y]=t.getModel(eP[y]),f[y]=t.getModel(nP[y])}function v(t){return t===s?l||(l=e.getItemModel(t)):e.getItemModel(t)}function m(t,n){return e.hasItemOption?t===s?c[n]||(c[n]=v(t).getModel(eP[n])):v(t).getModel(eP[n]):d[n]}function _(t,n){return e.hasItemOption?t===s?p[n]||(p[n]=v(t).getModel(nP[n])):v(t).getModel(nP[n]):f[n]}return function(t,n){return s=t,l=null,c={},p={},r&&r(T({dataIndexInside:t,dataIndex:e.getRawIndex(t),actionType:n?n.type:null},h),u)};function x(t,e){for(var n in e)dt(e,n)&&(t[n]=e[n])}function b(t,e){t&&(t.textFill&&(e.textFill=t.textFill),t.textPosition&&(e.textPosition=t.textPosition))}}function DP(t){var e={};return P(t.dimensions,(function(n,i){var r=t.getDimensionInfo(n);if(!r.isExtraCoord){var o=r.coordDim;(e[o]=e[o]||[])[r.coordDimIndex]=i}})),e}function LP(t,e,n,i,r,o,a,s){if(i)return(e=kP(t,e,n,i,r,o,!0,s))&&a.setItemGraphicEl(n,e),Js(e,i.focus,i.blurScope),e;HP(e,o)}function kP(t,e,n,i,r,o,a,s){var l=-1;e&&PP(e,i)&&(l=o.childrenRef().indexOf(e),e=null);var u=!e;e?e.clearStates():e=hP(i);var h=(Uk(e).canMorph=i.morph&&GP(e))&&s&&s.hasFrom(),c=u&&!h;iP.normal.cfg=iP.normal.conOpt=iP.emphasis.cfg=iP.emphasis.conOpt=iP.blur.cfg=iP.blur.conOpt=iP.select.cfg=iP.select.conOpt=null,iP.isLegacy=!1,function(t,e,n,i,r,o){if(t.isGroup)return;OP(n,null,o),OP(n,Kk,o);var a=o.normal.conOpt,s=o.emphasis.conOpt,l=o.blur.conOpt,u=o.select.conOpt;if(null!=a||null!=s||null!=u||null!=l){var h=t.getTextContent();if(!1===a)h&&t.removeTextContent();else{a=o.normal.conOpt=a||{type:"text"},h?h.clearStates():(h=hP(a),t.setTextContent(h));var c=a&&a.style;cP(null,h,null,e,a,c,null,i,r,!0);for(var p=0;p<tP.length;p++){var d=tP[p];if(d!==$k){var f=o[d].conOpt;SP(d,h,0,NP(a,f,d),null)}}c?h.dirty():h.markRedraw()}}}(e,n,i,r,c,iP),function(t,e,n,i,r){var o=n.clipPath;if(!1===o)t&&t.getClipPath()&&t.removeClipPath();else if(o){var a=t.getClipPath();a&&PP(a,o)&&(a=null),a||(a=hP(o),t.setClipPath(a)),cP(null,a,null,e,o,null,null,i,r,!1)}}(e,n,i,r,c);var p=cP(t,e,h,n,i,i.style,iP,r,c,!1);h&&s.addTo(e,i,n,p);for(var d=0;d<tP.length;d++){var f=tP[d];if(f!==$k){var g=RP(i,f);SP(f,e,0,NP(i,g,f),iP)}}return function(t,e,n,i){if(!t.isGroup){var r=t,o=n.currentZ,a=n.currentZLevel;r.z=o,r.zlevel=a;var s=e.z2;null!=s&&(r.z2=s||0);for(var l=0;l<tP.length;l++)MP(r,e,tP[l])}}(e,i,r),"group"===i.type&&function(t,e,n,i,r,o){var a=i.children,s=a?a.length:0,l=i.$mergeChildren,u="byName"===l||i.diffChildrenByName,h=!1===l;if(!s&&!u&&!h)return;if(u)return c={api:t,oldChildren:e.children()||[],newChildren:a||[],dataIndex:n,seriesModel:r,group:e,morphPreparation:o},void new rm(c.oldChildren,c.newChildren,EP,EP,c).add(zP).update(zP).remove(BP).execute();var c;h&&e.removeAll();for(var p=0;p<s;p++)a[p]&&kP(t,e.childAt(p),n,a[p],r,e,!1,o);for(var d=e.childCount()-1;d>=p;d--)VP(e.childAt(d),r,e)}(t,e,n,i,r,s),l>=0?o.replaceAt(e,l):o.add(e),e}function PP(t,e){var n,i=Uk(t),r=e.type,o=e.shape,a=e.style;return null!=r&&r!==i.customGraphicType||"path"===r&&((n=o)&&(dt(n,"pathData")||dt(n,"d")))&&FP(o)!==i.customPathData||"image"===r&&dt(a,"image")&&a.image!==i.customImagePath}function OP(t,e,n){var i=e?RP(t,e):t,r=e?NP(t,i,Kk):t.style,o=t.type,a=i?i.textConfig:null,s=t.textContent,l=s?e?RP(s,e):s:null;if(r&&(n.isLegacy||yk(r,o,!!a,!!l))){n.isLegacy=!0;var u=vk(r,o,!e);!a&&u.textConfig&&(a=u.textConfig),!l&&u.textContent&&(l=u.textContent)}if(!e&&l){var h=l;!h.type&&(h.type="text")}var c=e?n[e]:n.normal;c.cfg=a,c.conOpt=l}function RP(t,e){return e?t?t[e]:null:t}function NP(t,e,n){var i=e&&e.style;return null==i&&n===Kk&&t&&(i=t.styleEmphasis),i}function EP(t,e){var n=t&&t.name;return null!=n?n:"e\0\0"+e}function zP(t,e){var n=this.context,i=null!=t?n.newChildren[t]:null,r=null!=e?n.oldChildren[e]:null;kP(n.api,r,n.dataIndex,i,n.seriesModel,n.group,0,n.morphPreparation)}function BP(t){var e=this.context;VP(e.oldChildren[t],e.seriesModel,e.group)}function VP(t,e,n){if(t){var i=Uk(t).leaveToProps;i?Ou(t,i,e,{cb:function(){n.remove(t)}}):n.remove(t)}}function FP(t){return t&&(t.pathData||t.d)}function GP(t){return t&&t instanceof Za}function HP(t,e){t&&e.remove(t)}var WP=function(){function t(t,e){this._fromList=[],this._toList=[],this._toElOptionList=[],this._allPropsFinalList=[],this._toDataIndices=[],this._morphConfigList=[],this._seriesModel=t,this._transOpt=e}return t.prototype.hasFrom=function(){return!!this._fromList.length},t.prototype.findAndAddFrom=function(t){if(t&&(Uk(t).canMorph&&this._fromList.push(t),t.isGroup))for(var e=t.childrenRef(),n=0;n<e.length;n++)this.findAndAddFrom(e[n])},t.prototype.addTo=function(t,e,n,i){t&&(this._toList.push(t),this._toElOptionList.push(e),this._toDataIndices.push(n),this._allPropsFinalList.push(i))},t.prototype.applyMorphing=function(){var t=this._type,e=this._fromList,n=this._toList.length,i=e.length;if(i&&n)if("oneToOne"===t)for(var r=0;r<n;r++)this._oneToOneForSingleTo(r,r);else if("manyToOne"===t)for(var o=Math.max(1,Math.floor(i/n)),a=(r=0,0);r<n;r++,a+=o){var s=r+1>=n?i-a:o;this._manyToOneForSingleTo(r,a>=i?null:a,s)}else if("oneToMany"===t)for(var l=Math.max(1,Math.floor(n/i)),u=0,h=0;u<n;u+=l,h++){var c=u+l>=n?n-u:l;this._oneToManyForSingleFrom(u,c,h>=i?null:h)}},t.prototype._oneToOneForSingleTo=function(t,e){var n,i=this._toList[t],r=this._toElOptionList[t],o=this._toDataIndices[t],a=this._allPropsFinalList[t],s=this._fromList[e],l=this._getOrCreateMorphConfig(o),u=l.duration;if(s&&zk(s)){if(pP(i,a,r.style),u){var h=Bk([s],i,l,YP);this._processResultIndividuals(h,t,null)}}else{var c=u&&s&&(s!==i||(Ek(n=s)||zk(n)))?s:null,p={};fP("shape",i,c,r,p,!1),fP("extra",i,c,r,p,!1),yP(i,c,r,p,!1),vP(i,c,r,r.style,p,!1),pP(i,a,r.style),c&&Ok(c,i,l),dP(i,o,r,this._seriesModel,p,!1)}},t.prototype._manyToOneForSingleTo=function(t,e,n){var i=this._toList[t],r=this._toElOptionList[t];pP(i,this._allPropsFinalList[t],r.style);var o=this._getOrCreateMorphConfig(this._toDataIndices[t]);if(o.duration&&null!=e){for(var a=[],s=e;s<n;s++)a.push(this._fromList[s]);var l=Bk(a,i,o,YP);this._processResultIndividuals(l,t,null)}},t.prototype._oneToManyForSingleFrom=function(t,e,n){for(var i=null==n?null:this._fromList[n],r=this._toList,o=[],a=t;a<e;a++){var s=r[a];pP(s,this._allPropsFinalList[a],this._toElOptionList[a].style),o.push(s)}var l=this._getOrCreateMorphConfig(this._toDataIndices[t]);if(l.duration&&i){var u=function(t,e,n,i){var r,o=e.length,a=n?n.dividingMethod:null,s=!1;if(zk(t)){var l=t.__combiningSubList;l.length===o?r=l:(r=Yk(t,o,a),s=!0)}else r=Yk(t,o,a),s=!0;rt(r.length===o);for(var u=0;u<o;u++)s&&i&&i(t,r[u],!1),Ok(r[u],e[u],n);return{fromIndividuals:r,toIndividuals:e,count:o}}(i,o,l,YP);this._processResultIndividuals(u,t,e)}},t.prototype._processResultIndividuals=function(t,e,n){for(var i=null!=n,r=0;r<t.count;r++){var o=t.fromIndividuals[r],a=t.toIndividuals[r],s=e+(i?r:0),l=this._toElOptionList[s],u=this._toDataIndices[s],h={};yP(a,o,l,h,!1),vP(a,o,l,l.style,h,!1),dP(a,u,l,this._seriesModel,h,!1)}},t.prototype._getOrCreateMorphConfig=function(t){var e,n,i,r=this._morphConfigList,o=r[t];if(o)return o;var a=this._seriesModel,s=this._transOpt;if(a.isAnimationEnabled()){var l=void 0;if(a&&a.ecModel){var u=a.ecModel.getUpdatePayload();l=u&&u.animation}if(l)e=l.duration||0,n=l.easing||"cubicOut",i=l.delay||0;else{n=a.get("animationEasingUpdate");var h=a.get("animationDelayUpdate");i=G(h)?h(t):h;var c=a.get("animationDurationUpdate");e=G(c)?c(t):c}}return o={duration:e||0,delay:i,easing:n,dividingMethod:s?s.dividingMethod:null},r[t]=o,o},t.prototype.reset=function(t){this._type=t,this._fromList.length=this._toList.length=this._toElOptionList.length=this._allPropsFinalList.length=this._toDataIndices.length=0},t}();function YP(t,e,n){e.style=n?w(t.style):t.style,e.zlevel=t.zlevel,e.z=t.z,e.z2=t.z2}var XP=Lr(),UP=w,ZP=B,jP=function(){function t(){this._dragging=!1,this.animationThreshold=15}return t.prototype.render=function(t,e,n,i){var r=e.get("value"),o=e.get("status");if(this._axisModel=t,this._axisPointerModel=e,this._api=n,i||this._lastValue!==r||this._lastStatus!==o){this._lastValue=r,this._lastStatus=o;var a=this._group,s=this._handle;if(!o||"hide"===o)return a&&a.hide(),void(s&&s.hide());a&&a.show(),s&&s.show();var l={};this.makeElOption(l,r,t,e,n);var u=l.graphicKey;u!==this._lastGraphicKey&&this.clear(n),this._lastGraphicKey=u;var h=this._moveAnimation=this.determineAnimation(t,e);if(a){var c=V(qP,e,h);this.updatePointerEl(a,l,c),this.updateLabelEl(a,l,c,e)}else a=this._group=new zi,this.createPointerEl(a,l,t,e),this.createLabelEl(a,l,t,e),n.getZr().add(a);QP(a,e,!0),this._renderHandle(r)}},t.prototype.remove=function(t){this.clear(t)},t.prototype.dispose=function(t){this.clear(t)},t.prototype.determineAnimation=function(t,e){var n=e.get("animation"),i=t.axis,r="category"===i.type,o=e.get("snap");if(!o&&!r)return!1;if("auto"===n||null==n){var a=this.animationThreshold;if(r&&i.getBandWidth()>a)return!0;if(o){var s=_S(t).seriesDataCount,l=i.getExtent();return Math.abs(l[0]-l[1])/s>a}return!1}return!0===n},t.prototype.makeElOption=function(t,e,n,i,r){},t.prototype.createPointerEl=function(t,e,n,i){var r=e.pointer;if(r){var o=XP(t).pointerEl=new Ku[r.type](UP(e.pointer));t.add(o)}},t.prototype.createLabelEl=function(t,e,n,i){if(e.label){var r=XP(t).labelEl=new ls(UP(e.label));t.add(r),$P(r,i)}},t.prototype.updatePointerEl=function(t,e,n){var i=XP(t).pointerEl;i&&e.pointer&&(i.setStyle(e.pointer.style),n(i,{shape:e.pointer.shape}))},t.prototype.updateLabelEl=function(t,e,n,i){var r=XP(t).labelEl;r&&(r.setStyle(e.label.style),n(r,{x:e.label.x,y:e.label.y}),$P(r,i))},t.prototype._renderHandle=function(t){if(!this._dragging&&this.updateHandleTransform){var e,n=this._axisPointerModel,i=this._api.getZr(),r=this._handle,o=n.getModel("handle"),a=n.get("status");if(!o.get("show")||!a||"hide"===a)return r&&i.remove(r),void(this._handle=null);this._handle||(e=!0,r=this._handle=Uu(o.get("icon"),{cursor:"move",draggable:!0,onmousemove:function(t){ee(t.event)},onmousedown:ZP(this._onHandleDragMove,this,0,0),drift:ZP(this._onHandleDragMove,this),ondragend:ZP(this._onHandleDragEnd,this)}),i.add(r)),QP(r,n,!1),r.setStyle(o.getItemStyle(null,["color","borderColor","borderWidth","opacity","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"]));var s=o.get("size");F(s)||(s=[s,s]),r.scaleX=s[0]/2,r.scaleY=s[1]/2,Tf(this,"_doDispatchAxisPointer",o.get("throttle")||0,"fixRate"),this._moveHandleToValue(t,e)}},t.prototype._moveHandleToValue=function(t,e){qP(this._axisPointerModel,!e&&this._moveAnimation,this._handle,JP(this.getHandleTransform(t,this._axisModel,this._axisPointerModel)))},t.prototype._onHandleDragMove=function(t,e){var n=this._handle;if(n){this._dragging=!0;var i=this.updateHandleTransform(JP(n),[t,e],this._axisModel,this._axisPointerModel);this._payloadInfo=i,n.stopAnimation(),n.attr(JP(i)),XP(n).lastProp=null,this._doDispatchAxisPointer()}},t.prototype._doDispatchAxisPointer=function(){if(this._handle){var t=this._payloadInfo,e=this._axisModel;this._api.dispatchAction({type:"updateAxisPointer",x:t.cursorPoint[0],y:t.cursorPoint[1],tooltipOption:t.tooltipOption,axesInfo:[{axisDim:e.axis.dim,axisIndex:e.componentIndex}]})}},t.prototype._onHandleDragEnd=function(){if(this._dragging=!1,this._handle){var t=this._axisPointerModel.get("value");this._moveHandleToValue(t),this._api.dispatchAction({type:"hideTip"})}},t.prototype.clear=function(t){this._lastValue=null,this._lastStatus=null;var e=t.getZr(),n=this._group,i=this._handle;e&&n&&(this._lastGraphicKey=null,n&&e.remove(n),i&&e.remove(i),this._group=null,this._handle=null,this._payloadInfo=null)},t.prototype.doClear=function(){},t.prototype.buildLabel=function(t,e,n){return{x:t[n=n||0],y:t[1-n],width:e[n],height:e[1-n]}},t}();function qP(t,e,n,i){KP(XP(n).lastProp,i)||(XP(n).lastProp=i,e?Ou(n,i,t):(n.stopAnimation(),n.attr(i)))}function KP(t,e){if(X(t)&&X(e)){var n=!0;return P(e,(function(e,i){n=n&&KP(t[i],e)})),!!n}return t===e}function $P(t,e){t[e.get(["label","show"])?"show":"hide"]()}function JP(t){return{x:t.x||0,y:t.y||0,rotation:t.rotation||0}}function QP(t,e,n){var i=e.get("z"),r=e.get("zlevel");t&&t.traverse((function(t){"group"!==t.type&&(null!=i&&(t.z=i),null!=r&&(t.zlevel=r),t.silent=n)}))}function tO(t){var e,n=t.get("type"),i=t.getModel(n+"Style");return"line"===n?(e=i.getLineStyle()).fill=null:"shadow"===n&&((e=i.getAreaStyle()).stroke=null),e}function eO(t,e,n,i,r){var o=nO(n.get("value"),e.axis,e.ecModel,n.get("seriesDataIndices"),{precision:n.get(["label","precision"]),formatter:n.get(["label","formatter"])}),a=n.getModel("label"),s=pc(a.get("padding")||0),l=a.getFont(),u=Fn(o,l),h=r.position,c=u.width+s[1]+s[3],p=u.height+s[0]+s[2],d=r.align;"right"===d&&(h[0]-=c),"center"===d&&(h[0]-=c/2);var f=r.verticalAlign;"bottom"===f&&(h[1]-=p),"middle"===f&&(h[1]-=p/2),function(t,e,n,i){var r=i.getWidth(),o=i.getHeight();t[0]=Math.min(t[0]+e,r)-e,t[1]=Math.min(t[1]+n,o)-n,t[0]=Math.max(t[0],0),t[1]=Math.max(t[1],0)}(h,c,p,i);var g=a.get("backgroundColor");g&&"auto"!==g||(g=e.get(["axisLine","lineStyle","color"])),t.label={x:h[0],y:h[1],style:nh(a,{text:o,font:l,fill:a.getTextColor(),padding:s,backgroundColor:g}),z2:10}}function nO(t,e,n,i,r){t=e.scale.parse(t);var o=e.scale.getLabel({value:t},{precision:r.precision}),a=r.formatter;if(a){var s={value:W_(e,{value:t}),axisDimension:e.dim,axisIndex:e.index,seriesData:[]};P(i,(function(t){var e=n.getSeriesByIndex(t.seriesIndex),i=t.dataIndexInside,r=e&&e.getDataParams(i);r&&s.seriesData.push(r)})),H(a)?o=a.replace("{value}",o):G(a)&&(o=a(s))}return o}function iO(t,e,n){var i=[1,0,0,1,0,0];return _e(i,i,n.rotation),me(i,i,n.position),Fu([t.dataToCoord(e),(n.labelOffset||0)+(n.labelDirection||1)*(n.labelMargin||0)],i)}function rO(t,e,n,i,r,o){var a=hS.innerTextLayout(n.rotation,0,n.labelDirection);n.labelMargin=r.get(["label","margin"]),eO(e,i,r,o,{position:iO(i.axis,t,n),align:a.textAlign,verticalAlign:a.textVerticalAlign})}function oO(t,e,n){return{x1:t[n=n||0],y1:t[1-n],x2:e[n],y2:e[1-n]}}function aO(t,e,n){return{x:t[n=n||0],y:t[1-n],width:e[n],height:e[1-n]}}function sO(t,e,n,i,r,o){return{cx:t,cy:e,r0:n,r:i,startAngle:r,endAngle:o,clockwise:!0}}var lO=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.makeElOption=function(t,e,n,i,r){var o=n.axis,a=o.grid,s=i.get("type"),l=uO(a,o).getOtherAxis(o).getGlobalExtent(),u=o.toGlobalCoord(o.dataToCoord(e,!0));if(s&&"none"!==s){var h=tO(i),c=hO[s](o,u,l);c.style=h,t.graphicKey=c.type,t.pointer=c}rO(e,t,nS(a.model,n),n,i,r)},e.prototype.getHandleTransform=function(t,e,n){var i=nS(e.axis.grid.model,e,{labelInside:!1});i.labelMargin=n.get(["handle","margin"]);var r=iO(e.axis,t,i);return{x:r[0],y:r[1],rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},e.prototype.updateHandleTransform=function(t,e,n,i){var r=n.axis,o=r.grid,a=r.getGlobalExtent(!0),s=uO(o,r).getOtherAxis(r).getGlobalExtent(),l="x"===r.dim?0:1,u=[t.x,t.y];u[l]+=e[l],u[l]=Math.min(a[1],u[l]),u[l]=Math.max(a[0],u[l]);var h=(s[1]+s[0])/2,c=[h,h];c[l]=u[l];return{x:u[0],y:u[1],rotation:t.rotation,cursorPoint:c,tooltipOption:[{verticalAlign:"middle"},{align:"center"}][l]}},e}(jP);function uO(t,e){var n={};return n[e.dim+"AxisIndex"]=e.index,t.getCartesian(n)}var hO={line:function(t,e,n){return{type:"Line",subPixelOptimize:!0,shape:oO([e,n[0]],[e,n[1]],cO(t))}},shadow:function(t,e,n){var i=Math.max(1,t.getBandWidth()),r=n[1]-n[0];return{type:"Rect",shape:aO([e-i/2,n[0]],[i,r],cO(t))}}};function cO(t){return"x"===t.dim?0:1}var pO=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="axisPointer",e.defaultOption={show:"auto",zlevel:0,z:50,type:"line",snap:!1,triggerTooltip:!0,value:null,status:null,link:[],animation:null,animationDurationUpdate:200,lineStyle:{color:"#B9BEC9",width:1,type:"dashed"},shadowStyle:{color:"rgba(210,219,238,0.2)"},label:{show:!0,formatter:null,precision:"auto",margin:3,color:"#fff",padding:[5,7,5,7],backgroundColor:"auto",borderColor:null,borderWidth:0,borderRadius:3},handle:{show:!1,icon:"M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4h1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7v-1.2h6.6z M13.3,22H6.7v-1.2h6.6z M13.3,19.6H6.7v-1.2h6.6z",size:45,margin:50,color:"#333",shadowBlur:3,shadowColor:"#aaa",shadowOffsetX:0,shadowOffsetY:2,throttle:40}},e}(Nc),dO=Lr(),fO=P;function gO(t,e,n){if(!a.node){var i=e.getZr();dO(i).records||(dO(i).records={}),function(t,e){if(dO(t).initialized)return;function n(n,i){t.on(n,(function(n){var r=function(t){var e={showTip:[],hideTip:[]},n=function(i){var r=e[i.type];r?r.push(i):(i.dispatchAction=n,t.dispatchAction(i))};return{dispatchAction:n,pendings:e}}(e);fO(dO(t).records,(function(t){t&&i(t,n,r.dispatchAction)})),function(t,e){var n,i=t.showTip.length,r=t.hideTip.length;i?n=t.showTip[i-1]:r&&(n=t.hideTip[r-1]);n&&(n.dispatchAction=null,e.dispatchAction(n))}(r.pendings,e)}))}dO(t).initialized=!0,n("click",V(vO,"click")),n("mousemove",V(vO,"mousemove")),n("globalout",yO)}(i,e),(dO(i).records[t]||(dO(i).records[t]={})).handler=n}}function yO(t,e,n){t.handler("leave",null,n)}function vO(t,e,n,i){e.handler(t,n,i)}function mO(t,e){if(!a.node){var n=e.getZr();(dO(n).records||{})[t]&&(dO(n).records[t]=null)}}var _O=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){var i=e.getComponent("tooltip"),r=t.get("triggerOn")||i&&i.get("triggerOn")||"mousemove|click";gO("axisPointer",n,(function(t,e,n){"none"!==r&&("leave"===t||r.indexOf(t)>=0)&&n({type:"updateAxisPointer",currTrigger:t,x:e&&e.offsetX,y:e&&e.offsetY})}))},e.prototype.remove=function(t,e){mO("axisPointer",e)},e.prototype.dispose=function(t,e){mO("axisPointer",e)},e.type="axisPointer",e}(pf);function xO(t,e){var n,i=[],r=t.seriesIndex;if(null==r||!(n=e.getSeriesByIndex(r)))return{point:[]};var o=n.getData(),a=Dr(o,t);if(null==a||a<0||F(a))return{point:[]};var s=o.getItemGraphicEl(a),l=n.coordinateSystem;if(n.getTooltipPosition)i=n.getTooltipPosition(a)||[];else if(l&&l.dataToPoint)if(t.isStacked){var u=l.getBaseAxis(),h=l.getOtherAxis(u).dim,c=u.dim,p="x"===h||"radius"===h?1:0,d=o.mapDimension(c),f=[];f[p]=o.get(d,a),f[1-p]=o.get(o.getCalculationInfo("stackResultDimension"),a),i=l.dataToPoint(f)||[]}else i=l.dataToPoint(o.getValues(O(l.dimensions,(function(t){return o.mapDimension(t)})),a))||[];else if(s){var g=s.getBoundingRect().clone();g.applyTransform(s.transform),i=[g.x+g.width/2,g.y+g.height/2]}return{point:i,el:s}}var bO=Lr();function wO(t,e,n){var i=t.currTrigger,r=[t.x,t.y],o=t,a=t.dispatchAction||B(n.dispatchAction,n),s=e.getComponent("axisPointer").coordSysAxesInfo;if(s){CO(r)&&(r=xO({seriesIndex:o.seriesIndex,dataIndex:o.dataIndex},e).point);var l=CO(r),u=o.axesInfo,h=s.axesInfo,c="leave"===i||CO(r),p={},d={},f={list:[],map:{}},g={showPointer:V(MO,d),showTooltip:V(IO,f)};P(s.coordSysMap,(function(t,e){var n=l||t.containPoint(r);P(s.coordSysAxesInfo[e],(function(t,e){var i=t.axis,o=function(t,e){for(var n=0;n<(t||[]).length;n++){var i=t[n];if(e.axis.dim===i.axisDim&&e.axis.model.componentIndex===i.axisIndex)return i}}(u,t);if(!c&&n&&(!u||o)){var a=o&&o.value;null!=a||l||(a=i.pointToData(r)),null!=a&&SO(t,a,g,!1,p)}}))}));var y={};return P(h,(function(t,e){var n=t.linkGroup;n&&!d[e]&&P(n.axesInfo,(function(e,i){var r=d[i];if(e!==t&&r){var o=r.value;n.mapper&&(o=t.axis.scale.parse(n.mapper(o,TO(e),TO(t)))),y[t.key]=o}}))})),P(y,(function(t,e){SO(h[e],t,g,!0,p)})),function(t,e,n){var i=n.axesInfo=[];P(e,(function(e,n){var r=e.axisPointerModel.option,o=t[n];o?(!e.useHandle&&(r.status="show"),r.value=o.value,r.seriesDataIndices=(o.payloadBatch||[]).slice()):!e.useHandle&&(r.status="hide"),"show"===r.status&&i.push({axisDim:e.axis.dim,axisIndex:e.axis.model.componentIndex,value:r.value})}))}(d,h,p),function(t,e,n,i){if(CO(e)||!t.list.length)return void i({type:"hideTip"});var r=((t.list[0].dataByAxis[0]||{}).seriesDataIndices||[])[0]||{};i({type:"showTip",escapeConnect:!0,x:e[0],y:e[1],tooltipOption:n.tooltipOption,position:n.position,dataIndexInside:r.dataIndexInside,dataIndex:r.dataIndex,seriesIndex:r.seriesIndex,dataByCoordSys:t.list})}(f,r,t,a),function(t,e,n){var i=n.getZr(),r="axisPointerLastHighlights",o=bO(i)[r]||{},a=bO(i)[r]={};P(t,(function(t,e){var n=t.axisPointerModel.option;"show"===n.status&&P(n.seriesDataIndices,(function(t){var e=t.seriesIndex+" | "+t.dataIndex;a[e]=t}))}));var s=[],l=[];P(o,(function(t,e){!a[e]&&l.push(t)})),P(a,(function(t,e){!o[e]&&s.push(t)})),l.length&&n.dispatchAction({type:"downplay",escapeConnect:!0,notBlur:!0,batch:l}),s.length&&n.dispatchAction({type:"highlight",escapeConnect:!0,notBlur:!0,batch:s})}(h,0,n),p}}function SO(t,e,n,i,r){var o=t.axis;if(!o.scale.isBlank()&&o.containData(e))if(t.involveSeries){var a=function(t,e){var n=e.axis,i=n.dim,r=t,o=[],a=Number.MAX_VALUE,s=-1;return P(e.seriesModels,(function(e,l){var u,h,c=e.getData().mapDimensionsAll(i);if(e.getAxisTooltipData){var p=e.getAxisTooltipData(c,t,n);h=p.dataIndices,u=p.nestestValue}else{if(!(h=e.getData().indicesOfNearest(c[0],t,"category"===n.type?.5:null)).length)return;u=e.getData().get(c[0],h[0])}if(null!=u&&isFinite(u)){var d=t-u,f=Math.abs(d);f<=a&&((f<a||d>=0&&s<0)&&(a=f,s=d,r=u,o.length=0),P(h,(function(t){o.push({seriesIndex:e.seriesIndex,dataIndexInside:t,dataIndex:e.getData().getRawIndex(t)})})))}})),{payloadBatch:o,snapToValue:r}}(e,t),s=a.payloadBatch,l=a.snapToValue;s[0]&&null==r.seriesIndex&&I(r,s[0]),!i&&t.snap&&o.containData(l)&&null!=l&&(e=l),n.showPointer(t,e,s),n.showTooltip(t,a,l)}else n.showPointer(t,e)}function MO(t,e,n,i){t[e.key]={value:n,payloadBatch:i}}function IO(t,e,n,i){var r=n.payloadBatch,o=e.axis,a=o.model,s=e.axisPointerModel;if(e.triggerTooltip&&r.length){var l=e.coordSys.model,u=bS(l),h=t.map[u];h||(h=t.map[u]={coordSysId:l.id,coordSysIndex:l.componentIndex,coordSysType:l.type,coordSysMainType:l.mainType,dataByAxis:[]},t.list.push(h)),h.dataByAxis.push({axisDim:o.dim,axisIndex:a.componentIndex,axisType:a.type,axisId:a.id,value:i,valueLabelOpt:{precision:s.get(["label","precision"]),formatter:s.get(["label","formatter"])},seriesDataIndices:r.slice()})}}function TO(t){var e=t.axis.model,n={},i=n.axisDim=t.axis.dim;return n.axisIndex=n[i+"AxisIndex"]=e.componentIndex,n.axisName=n[i+"AxisName"]=e.name,n.axisId=n[i+"AxisId"]=e.id,n}function CO(t){return!t||null==t[0]||isNaN(t[0])||null==t[1]||isNaN(t[1])}function AO(t){SS.registerAxisPointerClass("CartesianAxisPointer",lO),t.registerComponentModel(pO),t.registerComponentView(_O),t.registerPreprocessor((function(t){if(t){(!t.axisPointer||0===t.axisPointer.length)&&(t.axisPointer={});var e=t.axisPointer.link;e&&!F(e)&&(t.axisPointer.link=[e])}})),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,(function(t,e){t.getComponent("axisPointer").coordSysAxesInfo=yS(t,e)})),t.registerAction({type:"updateAxisPointer",event:"updateAxisPointer",update:":updateAxisPointer"},wO)}var DO=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.makeElOption=function(t,e,n,i,r){var o=n.axis;"angle"===o.dim&&(this.animationThreshold=Math.PI/18);var a=o.polar,s=a.getOtherAxis(o).getExtent(),l=o.dataToCoord(e),u=i.get("type");if(u&&"none"!==u){var h=tO(i),c=LO[u](o,a,l,s);c.style=h,t.graphicKey=c.type,t.pointer=c}var p=function(t,e,n,i,r){var o=e.axis,a=o.dataToCoord(t),s=i.getAngleAxis().getExtent()[0];s=s/180*Math.PI;var l,u,h,c=i.getRadiusAxis().getExtent();if("radius"===o.dim){var p=[1,0,0,1,0,0];_e(p,p,s),me(p,p,[i.cx,i.cy]),l=Fu([a,-r],p);var d=e.getModel("axisLabel").get("rotate")||0,f=hS.innerTextLayout(s,d*Math.PI/180,-1);u=f.textAlign,h=f.textVerticalAlign}else{var g=c[1];l=i.coordToPoint([g+r,a]);var y=i.cx,v=i.cy;u=Math.abs(l[0]-y)/g<.3?"center":l[0]>y?"left":"right",h=Math.abs(l[1]-v)/g<.3?"middle":l[1]>v?"top":"bottom"}return{position:l,align:u,verticalAlign:h}}(e,n,0,a,i.get(["label","margin"]));eO(t,n,i,r,p)},e}(jP);var LO={line:function(t,e,n,i){return"angle"===t.dim?{type:"Line",shape:oO(e.coordToPoint([i[0],n]),e.coordToPoint([i[1],n]))}:{type:"Circle",shape:{cx:e.cx,cy:e.cy,r:n}}},shadow:function(t,e,n,i){var r=Math.max(1,t.getBandWidth()),o=Math.PI/180;return"angle"===t.dim?{type:"Sector",shape:sO(e.cx,e.cy,i[0],i[1],(-n-r/2)*o,(r/2-n)*o)}:{type:"Sector",shape:sO(e.cx,e.cy,n-r/2,n+r/2,0,2*Math.PI)}}},kO=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.findAxisModel=function(t){var e;return this.ecModel.eachComponent(t,(function(t){t.getCoordSysModel()===this&&(e=t)}),this),e},e.type="polar",e.dependencies=["radiusAxis","angleAxis"],e.defaultOption={zlevel:0,z:0,center:["50%","50%"],radius:"80%"},e}(Nc),PO=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.getCoordSysModel=function(){return this.getReferringComponents("polar",Or).models[0]},e.type="polarAxis",e}(Nc);L(PO,j_);var OO=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="angleAxis",e}(PO),RO=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="radiusAxis",e}(PO),NO=function(t){function e(e,n){return t.call(this,"radius",e,n)||this}return n(e,t),e.prototype.pointToData=function(t,e){return this.polar.pointToData(t,e)["radius"===this.dim?0:1]},e}(vx);NO.prototype.dataToRadius=vx.prototype.dataToCoord,NO.prototype.radiusToData=vx.prototype.coordToData;var EO=Lr(),zO=function(t){function e(e,n){return t.call(this,"angle",e,n||[0,360])||this}return n(e,t),e.prototype.pointToData=function(t,e){return this.polar.pointToData(t,e)["radius"===this.dim?0:1]},e.prototype.calculateCategoryInterval=function(){var t=this,e=t.getLabelModel(),n=t.scale,i=n.getExtent(),r=n.count();if(i[1]-i[0]<1)return 0;var o=i[0],a=t.dataToCoord(o+1)-t.dataToCoord(o),s=Math.abs(a),l=Fn(null==o?"":o+"",e.getFont(),"center","top"),u=Math.max(l.height,7)/s;isNaN(u)&&(u=1/0);var h=Math.max(0,Math.floor(u)),c=EO(t.model),p=c.lastAutoInterval,d=c.lastTickCount;return null!=p&&null!=d&&Math.abs(p-h)<=1&&Math.abs(d-r)<=1&&p>h?h=p:(c.lastTickCount=r,c.lastAutoInterval=h),h},e}(vx);zO.prototype.dataToAngle=vx.prototype.dataToCoord,zO.prototype.angleToData=vx.prototype.coordToData;var BO=function(){function t(t){this.dimensions=["radius","angle"],this.type="polar",this.cx=0,this.cy=0,this._radiusAxis=new NO,this._angleAxis=new zO,this.axisPointerEnabled=!0,this.name=t||"",this._radiusAxis.polar=this._angleAxis.polar=this}return t.prototype.containPoint=function(t){var e=this.pointToCoord(t);return this._radiusAxis.contain(e[0])&&this._angleAxis.contain(e[1])},t.prototype.containData=function(t){return this._radiusAxis.containData(t[0])&&this._angleAxis.containData(t[1])},t.prototype.getAxis=function(t){return this["_"+t+"Axis"]},t.prototype.getAxes=function(){return[this._radiusAxis,this._angleAxis]},t.prototype.getAxesByScale=function(t){var e=[],n=this._angleAxis,i=this._radiusAxis;return n.scale.type===t&&e.push(n),i.scale.type===t&&e.push(i),e},t.prototype.getAngleAxis=function(){return this._angleAxis},t.prototype.getRadiusAxis=function(){return this._radiusAxis},t.prototype.getOtherAxis=function(t){var e=this._angleAxis;return t===e?this._radiusAxis:e},t.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAngleAxis()},t.prototype.getTooltipAxes=function(t){var e=null!=t&&"auto"!==t?this.getAxis(t):this.getBaseAxis();return{baseAxes:[e],otherAxes:[this.getOtherAxis(e)]}},t.prototype.dataToPoint=function(t,e){return this.coordToPoint([this._radiusAxis.dataToRadius(t[0],e),this._angleAxis.dataToAngle(t[1],e)])},t.prototype.pointToData=function(t,e){var n=this.pointToCoord(t);return[this._radiusAxis.radiusToData(n[0],e),this._angleAxis.angleToData(n[1],e)]},t.prototype.pointToCoord=function(t){var e=t[0]-this.cx,n=t[1]-this.cy,i=this.getAngleAxis(),r=i.getExtent(),o=Math.min(r[0],r[1]),a=Math.max(r[0],r[1]);i.inverse?o=a-360:a=o+360;var s=Math.sqrt(e*e+n*n);e/=s,n/=s;for(var l=Math.atan2(-n,e)/Math.PI*180,u=l<o?1:-1;l<o||l>a;)l+=360*u;return[s,l]},t.prototype.coordToPoint=function(t){var e=t[0],n=t[1]/180*Math.PI;return[Math.cos(n)*e+this.cx,-Math.sin(n)*e+this.cy]},t.prototype.getArea=function(){var t=this.getAngleAxis(),e=this.getRadiusAxis().getExtent().slice();e[0]>e[1]&&e.reverse();var n=t.getExtent(),i=Math.PI/180;return{cx:this.cx,cy:this.cy,r0:e[0],r:e[1],startAngle:-n[0]*i,endAngle:-n[1]*i,clockwise:t.inverse,contain:function(t,e){var n=t-this.cx,i=e-this.cy,r=n*n+i*i,o=this.r,a=this.r0;return r<=o*o&&r>=a*a}}},t.prototype.convertToPixel=function(t,e,n){return VO(e)===this?this.dataToPoint(n):null},t.prototype.convertFromPixel=function(t,e,n){return VO(e)===this?this.pointToData(n):null},t}();function VO(t){var e=t.seriesModel,n=t.polarModel;return n&&n.coordinateSystem||e&&e.coordinateSystem}function FO(t,e){var n=this,i=n.getAngleAxis(),r=n.getRadiusAxis();if(i.scale.setExtent(1/0,-1/0),r.scale.setExtent(1/0,-1/0),t.eachSeries((function(t){if(t.coordinateSystem===n){var e=t.getData();P(Z_(e,"radius"),(function(t){r.scale.unionExtentFromData(e,t)})),P(Z_(e,"angle"),(function(t){i.scale.unionExtentFromData(e,t)}))}})),F_(i.scale,i.model),F_(r.scale,r.model),"category"===i.type&&!i.onBand){var o=i.getExtent(),a=360/i.scale.count();i.inverse?o[1]+=a:o[1]-=a,i.setExtent(o[0],o[1])}}function GO(t,e){if(t.type=e.get("type"),t.scale=G_(e),t.onBand=e.get("boundaryGap")&&"category"===t.type,t.inverse=e.get("inverse"),function(t){return"angleAxis"===t.mainType}(e)){t.inverse=t.inverse!==e.get("clockwise");var n=e.get("startAngle");t.setExtent(n,n+(t.inverse?-360:360))}e.axis=t,t.model=e}var HO={dimensions:BO.prototype.dimensions,create:function(t,e){var n=[];return t.eachComponent("polar",(function(t,i){var r=new BO(i+"");r.update=FO;var o=r.getRadiusAxis(),a=r.getAngleAxis(),s=t.findAxisModel("radiusAxis"),l=t.findAxisModel("angleAxis");GO(o,s),GO(a,l),function(t,e,n){var i=e.get("center"),r=n.getWidth(),o=n.getHeight();t.cx=Zi(i[0],r),t.cy=Zi(i[1],o);var a=t.getRadiusAxis(),s=Math.min(r,o)/2,l=e.get("radius");null==l?l=[0,"100%"]:F(l)||(l=[0,l]);var u=[Zi(l[0],s),Zi(l[1],s)];a.inverse?a.setExtent(u[1],u[0]):a.setExtent(u[0],u[1])}(r,t,e),n.push(r),t.coordinateSystem=r,r.model=t})),t.eachSeries((function(t){if("polar"===t.get("coordinateSystem")){var e=t.getReferringComponents("polar",Or).models[0];0,t.coordinateSystem=e.coordinateSystem}})),n}},WO=["axisLine","axisLabel","axisTick","minorTick","splitLine","minorSplitLine","splitArea"];function YO(t,e,n){e[1]>e[0]&&(e=e.slice().reverse());var i=t.coordToPoint([e[0],n]),r=t.coordToPoint([e[1],n]);return{x1:i[0],y1:i[1],x2:r[0],y2:r[1]}}function XO(t){return t.getRadiusAxis().inverse?0:1}function UO(t){var e=t[0],n=t[t.length-1];e&&n&&Math.abs(Math.abs(e.coord-n.coord)-360)<1e-4&&t.pop()}var ZO=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.axisPointerClass="PolarAxisPointer",n}return n(e,t),e.prototype.render=function(t,e){if(this.group.removeAll(),t.get("show")){var n=t.axis,i=n.polar,r=i.getRadiusAxis().getExtent(),o=n.getTicksCoords(),a=n.getMinorTicksCoords(),s=O(n.getViewLabels(),(function(t){t=w(t);var e=n.scale,i="ordinal"===e.type?e.getRawOrdinalNumber(t.tickValue):t.tickValue;return t.coord=n.dataToCoord(i),t}));UO(s),UO(o),P(WO,(function(e){!t.get([e,"show"])||n.scale.isBlank()&&"axisLine"!==e||jO[e](this.group,t,i,o,a,r,s)}),this)}},e.type="angleAxis",e}(SS),jO={axisLine:function(t,e,n,i,r,o){var a,s=e.getModel(["axisLine","lineStyle"]),l=XO(n),u=l?0:1;(a=0===o[u]?new Tl({shape:{cx:n.cx,cy:n.cy,r:o[l]},style:s.getLineStyle(),z2:1,silent:!0}):new Xl({shape:{cx:n.cx,cy:n.cy,r:o[l],r0:o[u]},style:s.getLineStyle(),z2:1,silent:!0})).style.fill=null,t.add(a)},axisTick:function(t,e,n,i,r,o){var a=e.getModel("axisTick"),s=(a.get("inside")?-1:1)*a.get("length"),l=o[XO(n)],u=O(i,(function(t){return new tu({shape:YO(n,[l,l+s],t.coord)})}));t.add(Du(u,{style:T(a.getModel("lineStyle").getLineStyle(),{stroke:e.get(["axisLine","lineStyle","color"])})}))},minorTick:function(t,e,n,i,r,o){if(r.length){for(var a=e.getModel("axisTick"),s=e.getModel("minorTick"),l=(a.get("inside")?-1:1)*s.get("length"),u=o[XO(n)],h=[],c=0;c<r.length;c++)for(var p=0;p<r[c].length;p++)h.push(new tu({shape:YO(n,[u,u+l],r[c][p].coord)}));t.add(Du(h,{style:T(s.getModel("lineStyle").getLineStyle(),T(a.getLineStyle(),{stroke:e.get(["axisLine","lineStyle","color"])}))}))}},axisLabel:function(t,e,n,i,r,o,a){var s=e.getCategories(!0),l=e.getModel("axisLabel"),u=l.get("margin"),h=e.get("triggerEvent");P(a,(function(i,r){var a=l,c=i.tickValue,p=o[XO(n)],d=n.coordToPoint([p+u,i.coord]),f=n.cx,g=n.cy,y=Math.abs(d[0]-f)/p<.3?"center":d[0]>f?"left":"right",v=Math.abs(d[1]-g)/p<.3?"middle":d[1]>g?"top":"bottom";if(s&&s[c]){var m=s[c];X(m)&&m.textStyle&&(a=new Sh(m.textStyle,l,l.ecModel))}var _=new ls({silent:hS.isLabelSilent(e),style:nh(a,{x:d[0],y:d[1],fill:a.getTextColor()||e.get(["axisLine","lineStyle","color"]),text:i.formattedLabel,align:y,verticalAlign:v})});if(t.add(_),h){var x=hS.makeAxisEventDataBase(e);x.targetType="axisLabel",x.value=i.rawLabel,ys(_).eventData=x}}),this)},splitLine:function(t,e,n,i,r,o){var a=e.getModel("splitLine").getModel("lineStyle"),s=a.get("color"),l=0;s=s instanceof Array?s:[s];for(var u=[],h=0;h<i.length;h++){var c=l++%s.length;u[c]=u[c]||[],u[c].push(new tu({shape:YO(n,o,i[h].coord)}))}for(h=0;h<u.length;h++)t.add(Du(u[h],{style:T({stroke:s[h%s.length]},a.getLineStyle()),silent:!0,z:e.get("z")}))},minorSplitLine:function(t,e,n,i,r,o){if(r.length){for(var a=e.getModel("minorSplitLine").getModel("lineStyle"),s=[],l=0;l<r.length;l++)for(var u=0;u<r[l].length;u++)s.push(new tu({shape:YO(n,o,r[l][u].coord)}));t.add(Du(s,{style:a.getLineStyle(),silent:!0,z:e.get("z")}))}},splitArea:function(t,e,n,i,r,o){if(i.length){var a=e.getModel("splitArea").getModel("areaStyle"),s=a.get("color"),l=0;s=s instanceof Array?s:[s];for(var u=[],h=Math.PI/180,c=-i[0].coord*h,p=Math.min(o[0],o[1]),d=Math.max(o[0],o[1]),f=e.get("clockwise"),g=1,y=i.length;g<=y;g++){var v=g===y?i[0].coord:i[g].coord,m=l++%s.length;u[m]=u[m]||[],u[m].push(new Wl({shape:{cx:n.cx,cy:n.cy,r0:p,r:d,startAngle:c,endAngle:-v*h,clockwise:f},silent:!0})),c=-v*h}for(g=0;g<u.length;g++)t.add(Du(u[g],{style:T({fill:s[g%s.length]},a.getAreaStyle()),silent:!0}))}}},qO=["axisLine","axisTickLabel","axisName"],KO=["splitLine","splitArea","minorSplitLine"],$O=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.axisPointerClass="PolarAxisPointer",n}return n(e,t),e.prototype.render=function(t,e){if(this.group.removeAll(),t.get("show")){var n=this._axisGroup,i=this._axisGroup=new zi;this.group.add(i);var r=t.axis,o=r.polar,a=o.getAngleAxis(),s=r.getTicksCoords(),l=r.getMinorTicksCoords(),u=a.getExtent()[0],h=r.getExtent(),c=function(t,e,n){return{position:[t.cx,t.cy],rotation:n/180*Math.PI,labelDirection:-1,tickDirection:-1,nameDirection:1,labelRotate:e.getModel("axisLabel").get("rotate"),z2:1}}(o,t,u),p=new hS(t,c);P(qO,p.add,p),i.add(p.getGroup()),Wu(n,i,t),P(KO,(function(e){t.get([e,"show"])&&!r.scale.isBlank()&&JO[e](this.group,t,o,u,h,s,l)}),this)}},e.type="radiusAxis",e}(SS),JO={splitLine:function(t,e,n,i,r,o){var a=e.getModel("splitLine").getModel("lineStyle"),s=a.get("color"),l=0;s=s instanceof Array?s:[s];for(var u=[],h=0;h<o.length;h++){var c=l++%s.length;u[c]=u[c]||[],u[c].push(new Tl({shape:{cx:n.cx,cy:n.cy,r:o[h].coord}}))}for(h=0;h<u.length;h++)t.add(Du(u[h],{style:T({stroke:s[h%s.length],fill:null},a.getLineStyle()),silent:!0}))},minorSplitLine:function(t,e,n,i,r,o,a){if(a.length){for(var s=e.getModel("minorSplitLine").getModel("lineStyle"),l=[],u=0;u<a.length;u++)for(var h=0;h<a[u].length;h++)l.push(new Tl({shape:{cx:n.cx,cy:n.cy,r:a[u][h].coord}}));t.add(Du(l,{style:T({fill:null},s.getLineStyle()),silent:!0}))}},splitArea:function(t,e,n,i,r,o){if(o.length){var a=e.getModel("splitArea").getModel("areaStyle"),s=a.get("color"),l=0;s=s instanceof Array?s:[s];for(var u=[],h=o[0].coord,c=1;c<o.length;c++){var p=l++%s.length;u[p]=u[p]||[],u[p].push(new Wl({shape:{cx:n.cx,cy:n.cy,r0:h,r:o[c].coord,startAngle:0,endAngle:2*Math.PI},silent:!0})),h=o[c].coord}for(c=0;c<u.length;c++)t.add(Du(u[c],{style:T({fill:s[c%s.length]},a.getAreaStyle()),silent:!0}))}}};function QO(t){return t.get("stack")||"__ec_stack_"+t.seriesIndex}function tR(t,e){return e.dim+t.model.componentIndex}function eR(t,e,n){var i={},r=function(t){var e={};P(t,(function(t,n){var i=t.getData(),r=t.coordinateSystem,o=r.getBaseAxis(),a=tR(r,o),s=o.getExtent(),l="category"===o.type?o.getBandWidth():Math.abs(s[1]-s[0])/i.count(),u=e[a]||{bandWidth:l,remainedWidth:l,autoWidthCount:0,categoryGap:"20%",gap:"30%",stacks:{}},h=u.stacks;e[a]=u;var c=QO(t);h[c]||u.autoWidthCount++,h[c]=h[c]||{width:0,maxWidth:0};var p=Zi(t.get("barWidth"),l),d=Zi(t.get("barMaxWidth"),l),f=t.get("barGap"),g=t.get("barCategoryGap");p&&!h[c].width&&(p=Math.min(u.remainedWidth,p),h[c].width=p,u.remainedWidth-=p),d&&(h[c].maxWidth=d),null!=f&&(u.gap=f),null!=g&&(u.categoryGap=g)}));var n={};return P(e,(function(t,e){n[e]={};var i=t.stacks,r=t.bandWidth,o=Zi(t.categoryGap,r),a=Zi(t.gap,1),s=t.remainedWidth,l=t.autoWidthCount,u=(s-o)/(l+(l-1)*a);u=Math.max(u,0),P(i,(function(t,e){var n=t.maxWidth;n&&n<u&&(n=Math.min(n,s),t.width&&(n=Math.min(n,t.width)),s-=n,t.width=n,l--)})),u=(s-o)/(l+(l-1)*a),u=Math.max(u,0);var h,c=0;P(i,(function(t,e){t.width||(t.width=u),h=t,c+=t.width*(1+a)})),h&&(c-=h.width*a);var p=-c/2;P(i,(function(t,i){n[e][i]=n[e][i]||{offset:p,width:t.width},p+=t.width*(1+a)}))})),n}(N(e.getSeriesByType(t),(function(t){return!e.isSeriesFiltered(t)&&t.coordinateSystem&&"polar"===t.coordinateSystem.type})));e.eachSeriesByType(t,(function(t){if("polar"===t.coordinateSystem.type){var e=t.getData(),n=t.coordinateSystem,o=n.getBaseAxis(),a=tR(n,o),s=QO(t),l=r[a][s],u=l.offset,h=l.width,c=n.getOtherAxis(o),p=t.coordinateSystem.cx,d=t.coordinateSystem.cy,f=t.get("barMinHeight")||0,g=t.get("barMinAngle")||0;i[s]=i[s]||[];for(var y=e.mapDimension(c.dim),v=e.mapDimension(o.dim),m=Fm(e,y),_="radius"!==o.dim||!t.get("roundCap",!0),x=c.dataToCoord(0),b=0,w=e.count();b<w;b++){var S=e.get(y,b),M=e.get(v,b),I=S>=0?"p":"n",T=x;m&&(i[s][M]||(i[s][M]={p:x,n:x}),T=i[s][M][I]);var C=void 0,A=void 0,D=void 0,L=void 0;if("radius"===c.dim){var k=c.dataToCoord(S)-x,P=o.dataToCoord(M);Math.abs(k)<f&&(k=(k<0?-1:1)*f),C=T,A=T+k,L=(D=P-u)-h,m&&(i[s][M][I]=A)}else{var O=c.dataToCoord(S,_)-x,R=o.dataToCoord(M);Math.abs(O)<g&&(O=(O<0?-1:1)*g),A=(C=R+u)+h,D=T,L=T+O,m&&(i[s][M][I]=L)}e.setItemLayout(b,{cx:p,cy:d,r0:C,r:A,startAngle:-D*Math.PI/180,endAngle:-L*Math.PI/180})}}}))}var nR={startAngle:90,clockwise:!0,splitNumber:12,axisLabel:{rotate:0}},iR={splitNumber:5},rR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="polar",e}(pf);var oR=function(t){function e(e,n,i,r){var o=t.call(this,e)||this;o.dimensions=["lng","lat"],o.type="geo",o.map=n;var a=OM(n,i);return o._nameCoordMap=a.nameCoordMap,o._regionsMap=a.regionsMap,o._invertLongitute=null==r||r,o.regions=a.regions,o._rect=a.boundingRect,o}return n(e,t),e.prototype.containCoord=function(t){for(var e=this.regions,n=0;n<e.length;n++)if(e[n].contain(t))return!0;return!1},e.prototype.transformTo=function(t,e,n,i){var r=this.getBoundingRect(),o=this._invertLongitute;r=r.clone(),o&&(r.y=-r.y-r.height);var a=this._rawTransformable;a.transform=r.calculateTransform(new Rn(t,e,n,i)),a.decomposeTransform(),o&&(a.scaleY=-a.scaleY),a.updateTransform(),this._updateTransform()},e.prototype.getRegion=function(t){return this._regionsMap.get(t)},e.prototype.getRegionByCoord=function(t){for(var e=this.regions,n=0;n<e.length;n++)if(e[n].contain(t))return e[n]},e.prototype.addGeoCoord=function(t,e){this._nameCoordMap.set(t,e)},e.prototype.getGeoCoord=function(t){return this._nameCoordMap.get(t)},e.prototype.getBoundingRect=function(){return this._rect},e.prototype.dataToPoint=function(t,e,n){if("string"==typeof t&&(t=this.getGeoCoord(t)),t)return QM.prototype.dataToPoint.call(this,t,e,n)},e.prototype.convertToPixel=function(t,e,n){var i=aR(e);return i===this?i.dataToPoint(n):null},e.prototype.convertFromPixel=function(t,e,n){var i=aR(e);return i===this?i.pointToData(n):null},e}(QM);function aR(t){var e=t.geoModel,n=t.seriesModel;return e?e.coordinateSystem:n?n.coordinateSystem||(n.getReferringComponents("geo",Or).models[0]||{}).coordinateSystem:null}function sR(t,e){var n=t.get("boundingCoords");if(null!=n){var i=n[0],r=n[1];isNaN(i[0])||isNaN(i[1])||isNaN(r[0])||isNaN(r[1])||this.setBoundingRect(i[0],i[1],r[0]-i[0],r[1]-i[1])}var o,a,s,l=this.getBoundingRect(),u=t.get("layoutCenter"),h=t.get("layoutSize"),c=e.getWidth(),p=e.getHeight(),d=l.width/l.height*this.aspectScale,f=!1;if(u&&h&&(o=[Zi(u[0],c),Zi(u[1],p)],a=Zi(h,Math.min(c,p)),isNaN(o[0])||isNaN(o[1])||isNaN(a)||(f=!0)),f)s={},d>1?(s.width=a,s.height=a/d):(s.height=a,s.width=a*d),s.y=o[1]-s.height/2,s.x=o[0]-s.width/2;else{var g=t.getBoxLayoutParams();g.aspect=d,s=Ac(g,{width:c,height:p})}this.setViewRect(s.x,s.y,s.width,s.height),this.setCenter(t.get("center")),this.setZoom(t.get("zoom"))}L(oR,QM);var lR=new(function(){function t(){this.dimensions=oR.prototype.dimensions}return t.prototype.create=function(t,e){var n=[];t.eachComponent("geo",(function(t,i){var r=t.get("map"),o=t.get("aspectScale"),a=!0,s=lg(r);s&&s[0]&&"svg"===s[0].type?(null==o&&(o=1),a=!1):null==o&&(o=.75);var l=new oR(r+i,r,t.get("nameMap"),a);l.aspectScale=o,l.zoomLimit=t.get("scaleLimit"),n.push(l),t.coordinateSystem=l,l.model=t,l.resize=sR,l.resize(t,e)})),t.eachSeries((function(t){if("geo"===t.get("coordinateSystem")){var e=t.get("geoIndex")||0;t.coordinateSystem=n[e]}}));var i={};return t.eachSeriesByType("map",(function(t){if(!t.getHostGeoModel()){var e=t.getMapType();i[e]=i[e]||[],i[e].push(t)}})),P(i,(function(t,i){var r=O(t,(function(t){return t.get("nameMap")})),o=new oR(i,i,M(r));o.zoomLimit=Q.apply(null,O(t,(function(t){return t.get("scaleLimit")}))),n.push(o),o.resize=sR,o.aspectScale=t[0].get("aspectScale"),o.resize(t[0],e),P(t,(function(t){t.coordinateSystem=o,function(t,e){P(e.get("geoCoord"),(function(e,n){t.addGeoCoord(n,e)}))}(o,t)}))})),n},t.prototype.getFilledRegions=function(t,e,n){for(var i=(t||[]).slice(),r=ht(),o=0;o<i.length;o++)r.set(i[o].name,i[o]);return P(OM(e,n).regions,(function(t){var e=t.name;!r.get(e)&&i.push({name:e})})),i},t}()),uR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(e,n,i){t.prototype.init.call(this,e,n,i),xr(e,"label",["show"])},e.prototype.optionUpdated=function(){var t=this.option,e=this;t.regions=lR.getFilledRegions(t.regions,t.map,t.nameMap);var n={};this._optionModelMap=R(t.regions||[],(function(t,i){var r=i.name;return r&&(t.set(r,new Sh(i,e)),i.selected&&(n[r]=!0)),t}),ht()),t.selectedMap||(t.selectedMap=n)},e.prototype.getRegionModel=function(t){return this._optionModelMap.get(t)||new Sh(null,this,this.ecModel)},e.prototype.getFormattedLabel=function(t,e){var n=this.getRegionModel(t),i="normal"===e?n.get(["label","formatter"]):n.get(["emphasis","label","formatter"]),r={name:t};return"function"==typeof i?(r.status=e,i(r)):"string"==typeof i?i.replace("{a}",null!=t?t:""):void 0},e.prototype.setZoom=function(t){this.option.zoom=t},e.prototype.setCenter=function(t){this.option.center=t},e.prototype.select=function(t){var e=this.option,n=e.selectedMode;n&&("multiple"!==n&&(e.selectedMap=null),(e.selectedMap||(e.selectedMap={}))[t]=!0)},e.prototype.unSelect=function(t){var e=this.option.selectedMap;e&&(e[t]=!1)},e.prototype.toggleSelected=function(t){this[this.isSelected(t)?"unSelect":"select"](t)},e.prototype.isSelected=function(t){var e=this.option.selectedMap;return!(!e||!e[t])},e.prototype._initSelectedMapFromData=function(){},e.type="geo",e.layoutMode="box",e.defaultOption={zlevel:0,z:0,show:!0,left:"center",top:"center",aspectScale:null,silent:!1,map:"",boundingCoords:null,center:null,zoom:1,scaleLimit:null,label:{show:!1,color:"#000"},itemStyle:{borderWidth:.5,borderColor:"#444",color:"#eee"},emphasis:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{color:"rgba(255,215,0,0.8)"}},select:{label:{show:!0,color:"rgb(100,0,0)"},itemStyle:{color:"rgba(255,215,0,0.8)"}},regions:[]},e}(Nc),hR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(t,e){var n=new BM(e);this._mapDraw=n,this.group.add(n.group),this._api=e},e.prototype.render=function(t,e,n,i){var r=this._mapDraw;t.get("show")?r.draw(t,e,n,this,i):this._mapDraw.group.removeAll(),r.group.on("click",this._handleRegionClick,this),r.group.silent=t.get("silent"),this._model=t,this.updateSelectStatus(t,e,n)},e.prototype._handleRegionClick=function(t){for(var e,n=t.target;n&&null==(e=ys(n).eventData);)n=n.__hostTarget||n.parent;e&&this._api.dispatchAction({type:"geoToggleSelect",geoId:this._model.id,name:e.name})},e.prototype.updateSelectStatus=function(t,e,n){var i=this;this._mapDraw.group.traverse((function(t){var e=ys(t).eventData;if(e)return i._model.isSelected(e.name)?n.enterSelect(t):n.leaveSelect(t),!0}))},e.prototype.dispose=function(){this._mapDraw&&this._mapDraw.remove()},e.type="geo",e}(pf);function cR(t,e){e=e||{};var n=t.coordinateSystem,i=t.axis,r={},o=i.position,a=i.orient,s=n.getRect(),l=[s.x,s.x+s.width,s.y,s.y+s.height],u={horizontal:{top:l[2],bottom:l[3]},vertical:{left:l[0],right:l[1]}};r.position=["vertical"===a?u.vertical[o]:l[0],"horizontal"===a?u.horizontal[o]:l[3]];r.rotation=Math.PI/2*{horizontal:0,vertical:1}[a];r.labelDirection=r.tickDirection=r.nameDirection={top:-1,bottom:1,right:1,left:-1}[o],t.get(["axisTick","inside"])&&(r.tickDirection=-r.tickDirection),Q(e.labelInside,t.get(["axisLabel","inside"]))&&(r.labelDirection=-r.labelDirection);var h=e.rotate;return null==h&&(h=t.get(["axisLabel","rotate"])),r.labelRotation="top"===o?-h:h,r.z2=1,r}var pR=["axisLine","axisTickLabel","axisName"],dR=["splitArea","splitLine"],fR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.axisPointerClass="SingleAxisPointer",n}return n(e,t),e.prototype.render=function(e,n,i,r){var o=this.group;o.removeAll();var a=this._axisGroup;this._axisGroup=new zi;var s=cR(e),l=new hS(e,s);P(pR,l.add,l),o.add(this._axisGroup),o.add(l.getGroup()),P(dR,(function(t){e.get([t,"show"])&&gR[t](this,this.group,this._axisGroup,e)}),this),Wu(a,this._axisGroup,e),t.prototype.render.call(this,e,n,i,r)},e.prototype.remove=function(){TS(this)},e.type="singleAxis",e}(SS),gR={splitLine:function(t,e,n,i){var r=i.axis;if(!r.scale.isBlank()){var o=i.getModel("splitLine"),a=o.getModel("lineStyle"),s=a.get("color");s=s instanceof Array?s:[s];for(var l=i.coordinateSystem.getRect(),u=r.isHorizontal(),h=[],c=0,p=r.getTicksCoords({tickModel:o}),d=[],f=[],g=0;g<p.length;++g){var y=r.toGlobalCoord(p[g].coord);u?(d[0]=y,d[1]=l.y,f[0]=y,f[1]=l.y+l.height):(d[0]=l.x,d[1]=y,f[0]=l.x+l.width,f[1]=y);var v=c++%s.length;h[v]=h[v]||[],h[v].push(new tu({subPixelOptimize:!0,shape:{x1:d[0],y1:d[1],x2:f[0],y2:f[1]},silent:!0}))}var m=a.getLineStyle(["color"]);for(g=0;g<h.length;++g)e.add(Du(h[g],{style:T({stroke:s[g%s.length]},m),silent:!0}))}},splitArea:function(t,e,n,i){IS(t,n,i,i)}},yR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.getCoordSysModel=function(){return this},e.type="singleAxis",e.layoutMode="box",e.defaultOption={left:"5%",top:"5%",right:"5%",bottom:"5%",type:"value",position:"bottom",orient:"horizontal",axisLine:{show:!0,lineStyle:{width:1,type:"solid"}},tooltip:{show:!0},axisTick:{show:!0,length:6,lineStyle:{width:1}},axisLabel:{show:!0,interval:"auto"},splitLine:{show:!0,lineStyle:{type:"dashed",opacity:.2}}},e}(Nc);L(yR,j_.prototype);var vR=function(t){function e(e,n,i,r,o){var a=t.call(this,e,n,i)||this;return a.type=r||"value",a.position=o||"bottom",a}return n(e,t),e.prototype.isHorizontal=function(){var t=this.position;return"top"===t||"bottom"===t},e.prototype.pointToData=function(t,e){return this.coordinateSystem.pointToData(t)[0]},e}(vx),mR=function(){function t(t,e,n){this.type="single",this.dimension="single",this.dimensions=["single"],this.axisPointerEnabled=!0,this.model=t,this._init(t,e,n)}return t.prototype._init=function(t,e,n){var i=this.dimension,r=new vR(i,G_(t),[0,0],t.get("type"),t.get("position")),o="category"===r.type;r.onBand=o&&t.get("boundaryGap"),r.inverse=t.get("inverse"),r.orient=t.get("orient"),t.axis=r,r.model=t,r.coordinateSystem=this,this._axis=r},t.prototype.update=function(t,e){t.eachSeries((function(t){if(t.coordinateSystem===this){var e=t.getData();P(e.mapDimensionsAll(this.dimension),(function(t){this._axis.scale.unionExtentFromData(e,t)}),this),F_(this._axis.scale,this._axis.model)}}),this)},t.prototype.resize=function(t,e){this._rect=Ac({left:t.get("left"),top:t.get("top"),right:t.get("right"),bottom:t.get("bottom"),width:t.get("width"),height:t.get("height")},{width:e.getWidth(),height:e.getHeight()}),this._adjustAxis()},t.prototype.getRect=function(){return this._rect},t.prototype._adjustAxis=function(){var t=this._rect,e=this._axis,n=e.isHorizontal(),i=n?[0,t.width]:[0,t.height],r=e.reverse?1:0;e.setExtent(i[r],i[1-r]),this._updateAxisTransform(e,n?t.x:t.y)},t.prototype._updateAxisTransform=function(t,e){var n=t.getExtent(),i=n[0]+n[1],r=t.isHorizontal();t.toGlobalCoord=r?function(t){return t+e}:function(t){return i-t+e},t.toLocalCoord=r?function(t){return t-e}:function(t){return i-t+e}},t.prototype.getAxis=function(){return this._axis},t.prototype.getBaseAxis=function(){return this._axis},t.prototype.getAxes=function(){return[this._axis]},t.prototype.getTooltipAxes=function(){return{baseAxes:[this.getAxis()],otherAxes:[]}},t.prototype.containPoint=function(t){var e=this.getRect(),n=this.getAxis();return"horizontal"===n.orient?n.contain(n.toLocalCoord(t[0]))&&t[1]>=e.y&&t[1]<=e.y+e.height:n.contain(n.toLocalCoord(t[1]))&&t[0]>=e.y&&t[0]<=e.y+e.height},t.prototype.pointToData=function(t){var e=this.getAxis();return[e.coordToData(e.toLocalCoord(t["horizontal"===e.orient?0:1]))]},t.prototype.dataToPoint=function(t){var e=this.getAxis(),n=this.getRect(),i=[],r="horizontal"===e.orient?0:1;return t instanceof Array&&(t=t[0]),i[r]=e.toGlobalCoord(e.dataToCoord(+t)),i[1-r]=0===r?n.y+n.height/2:n.x+n.width/2,i},t.prototype.convertToPixel=function(t,e,n){return _R(e)===this?this.dataToPoint(n):null},t.prototype.convertFromPixel=function(t,e,n){return _R(e)===this?this.pointToData(n):null},t}();function _R(t){var e=t.seriesModel,n=t.singleAxisModel;return n&&n.coordinateSystem||e&&e.coordinateSystem}var xR={create:function(t,e){var n=[];return t.eachComponent("singleAxis",(function(i,r){var o=new mR(i,t,e);o.name="single_"+r,o.resize(i,e),i.coordinateSystem=o,n.push(o)})),t.eachSeries((function(t){if("singleAxis"===t.get("coordinateSystem")){var e=t.getReferringComponents("singleAxis",Or).models[0];t.coordinateSystem=e&&e.coordinateSystem}})),n},dimensions:mR.prototype.dimensions},bR=["x","y"],wR=["width","height"],SR=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.makeElOption=function(t,e,n,i,r){var o=n.axis,a=o.coordinateSystem,s=TR(a,1-IR(o)),l=a.dataToPoint(e)[0],u=i.get("type");if(u&&"none"!==u){var h=tO(i),c=MR[u](o,l,s);c.style=h,t.graphicKey=c.type,t.pointer=c}rO(e,t,cR(n),n,i,r)},e.prototype.getHandleTransform=function(t,e,n){var i=cR(e,{labelInside:!1});i.labelMargin=n.get(["handle","margin"]);var r=iO(e.axis,t,i);return{x:r[0],y:r[1],rotation:i.rotation+(i.labelDirection<0?Math.PI:0)}},e.prototype.updateHandleTransform=function(t,e,n,i){var r=n.axis,o=r.coordinateSystem,a=IR(r),s=TR(o,a),l=[t.x,t.y];l[a]+=e[a],l[a]=Math.min(s[1],l[a]),l[a]=Math.max(s[0],l[a]);var u=TR(o,1-a),h=(u[1]+u[0])/2,c=[h,h];return c[a]=l[a],{x:l[0],y:l[1],rotation:t.rotation,cursorPoint:c,tooltipOption:{verticalAlign:"middle"}}},e}(jP),MR={line:function(t,e,n){return{type:"Line",subPixelOptimize:!0,shape:oO([e,n[0]],[e,n[1]],IR(t))}},shadow:function(t,e,n){var i=t.getBandWidth(),r=n[1]-n[0];return{type:"Rect",shape:aO([e-i/2,n[0]],[i,r],IR(t))}}};function IR(t){return t.isHorizontal()?0:1}function TR(t,e){var n=t.getRect();return[n[bR[e]],n[bR[e]]+n[wR[e]]]}var CR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="single",e}(pf);var AR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(e,n,i){var r=Pc(e);t.prototype.init.apply(this,arguments),DR(e,r)},e.prototype.mergeOption=function(e){t.prototype.mergeOption.apply(this,arguments),DR(this.option,e)},e.prototype.getCellSize=function(){return this.option.cellSize},e.type="calendar",e.defaultOption={zlevel:0,z:2,left:80,top:60,cellSize:20,orient:"horizontal",splitLine:{show:!0,lineStyle:{color:"#000",width:1,type:"solid"}},itemStyle:{color:"#fff",borderWidth:1,borderColor:"#ccc"},dayLabel:{show:!0,firstDay:0,position:"start",margin:"50%",nameMap:"en",color:"#000"},monthLabel:{show:!0,position:"start",margin:5,align:"center",nameMap:"en",formatter:null,color:"#000"},yearLabel:{show:!0,position:null,margin:30,formatter:null,color:"#ccc",fontFamily:"sans-serif",fontWeight:"bolder",fontSize:20}},e}(Nc);function DR(t,e){var n,i=t.cellSize;1===(n=F(i)?i:t.cellSize=[i,i]).length&&(n[1]=n[0]);var r=O([0,1],(function(t){return function(t,e){return null!=t[Ic[e][0]]||null!=t[Ic[e][1]]&&null!=t[Ic[e][2]]}(e,t)&&(n[t]="auto"),null!=n[t]&&"auto"!==n[t]}));kc(t,e,{type:"box",ignoreSize:r})}var LR={EN:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],CN:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"]},kR={EN:["S","M","T","W","T","F","S"],CN:["日","一","二","三","四","五","六"]},PR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){var i=this.group;i.removeAll();var r=t.coordinateSystem,o=r.getRangeInfo(),a=r.getOrient();this._renderDayRect(t,o,i),this._renderLines(t,o,a,i),this._renderYearText(t,o,a,i),this._renderMonthText(t,a,i),this._renderWeekText(t,o,a,i)},e.prototype._renderDayRect=function(t,e,n){for(var i=t.coordinateSystem,r=t.getModel("itemStyle").getItemStyle(),o=i.getCellWidth(),a=i.getCellHeight(),s=e.start.time;s<=e.end.time;s=i.getNextNDay(s,1).time){var l=i.dataToRect([s],!1).tl,u=new os({shape:{x:l[0],y:l[1],width:o,height:a},cursor:"default",style:r});n.add(u)}},e.prototype._renderLines=function(t,e,n,i){var r=this,o=t.coordinateSystem,a=t.getModel(["splitLine","lineStyle"]).getLineStyle(),s=t.get(["splitLine","show"]),l=a.lineWidth;this._tlpoints=[],this._blpoints=[],this._firstDayOfMonth=[],this._firstDayPoints=[];for(var u=e.start,h=0;u.time<=e.end.time;h++){p(u.formatedDate),0===h&&(u=o.getDateInfo(e.start.y+"-"+e.start.m));var c=u.date;c.setMonth(c.getMonth()+1),u=o.getDateInfo(c)}function p(e){r._firstDayOfMonth.push(o.getDateInfo(e)),r._firstDayPoints.push(o.dataToRect([e],!1).tl);var l=r._getLinePointsOfOneWeek(t,e,n);r._tlpoints.push(l[0]),r._blpoints.push(l[l.length-1]),s&&r._drawSplitline(l,a,i)}p(o.getNextNDay(e.end.time,1).formatedDate),s&&this._drawSplitline(r._getEdgesPoints(r._tlpoints,l,n),a,i),s&&this._drawSplitline(r._getEdgesPoints(r._blpoints,l,n),a,i)},e.prototype._getEdgesPoints=function(t,e,n){var i=[t[0].slice(),t[t.length-1].slice()],r="horizontal"===n?0:1;return i[0][r]=i[0][r]-e/2,i[1][r]=i[1][r]+e/2,i},e.prototype._drawSplitline=function(t,e,n){var i=new $l({z2:20,shape:{points:t},style:e});n.add(i)},e.prototype._getLinePointsOfOneWeek=function(t,e,n){for(var i=t.coordinateSystem,r=i.getDateInfo(e),o=[],a=0;a<7;a++){var s=i.getNextNDay(r.time,a),l=i.dataToRect([s.time],!1);o[2*s.day]=l.tl,o[2*s.day+1]=l["horizontal"===n?"bl":"tr"]}return o},e.prototype._formatterLabel=function(t,e){return"string"==typeof t&&t?(n=t,P(e,(function(t,e){n=n.replace("{"+e+"}",i?gc(t):t)})),n):"function"==typeof t?t(e):e.nameMap;var n,i},e.prototype._yearTextPositionControl=function(t,e,n,i,r){var o=e[0],a=e[1],s=["center","bottom"];"bottom"===i?(a+=r,s=["center","top"]):"left"===i?o-=r:"right"===i?(o+=r,s=["center","top"]):a-=r;var l=0;return"left"!==i&&"right"!==i||(l=Math.PI/2),{rotation:l,x:o,y:a,style:{align:s[0],verticalAlign:s[1]}}},e.prototype._renderYearText=function(t,e,n,i){var r=t.getModel("yearLabel");if(r.get("show")){var o=r.get("margin"),a=r.get("position");a||(a="horizontal"!==n?"top":"left");var s=[this._tlpoints[this._tlpoints.length-1],this._blpoints[0]],l=(s[0][0]+s[1][0])/2,u=(s[0][1]+s[1][1])/2,h="horizontal"===n?0:1,c={top:[l,s[h][1]],bottom:[l,s[1-h][1]],left:[s[1-h][0],u],right:[s[h][0],u]},p=e.start.y;+e.end.y>+e.start.y&&(p=p+"-"+e.end.y);var d=r.get("formatter"),f={start:e.start.y,end:e.end.y,nameMap:p},g=this._formatterLabel(d,f),y=new ls({z2:30,style:nh(r,{text:g})});y.attr(this._yearTextPositionControl(y,c[a],n,a,o)),i.add(y)}},e.prototype._monthTextPositionControl=function(t,e,n,i,r){var o="left",a="top",s=t[0],l=t[1];return"horizontal"===n?(l+=r,e&&(o="center"),"start"===i&&(a="bottom")):(s+=r,e&&(a="middle"),"start"===i&&(o="right")),{x:s,y:l,align:o,verticalAlign:a}},e.prototype._renderMonthText=function(t,e,n){var i=t.getModel("monthLabel");if(i.get("show")){var r=i.get("nameMap"),o=i.get("margin"),a=i.get("position"),s=i.get("align"),l=[this._tlpoints,this._blpoints];H(r)&&(r=LR[r.toUpperCase()]||[]);var u="start"===a?0:1,h="horizontal"===e?0:1;o="start"===a?-o:o;for(var c="center"===s,p=0;p<l[u].length-1;p++){var d=l[u][p].slice(),f=this._firstDayOfMonth[p];if(c){var g=this._firstDayPoints[p];d[h]=(g[h]+l[0][p+1][h])/2}var y=i.get("formatter"),v=r[+f.m-1],m={yyyy:f.y,yy:(f.y+"").slice(2),MM:f.m,M:+f.m,nameMap:v},_=this._formatterLabel(y,m),x=new ls({z2:30,style:I(nh(i,{text:_}),this._monthTextPositionControl(d,c,e,a,o))});n.add(x)}}},e.prototype._weekTextPositionControl=function(t,e,n,i,r){var o="center",a="middle",s=t[0],l=t[1],u="start"===n;return"horizontal"===e?(s=s+i+(u?1:-1)*r[0]/2,o=u?"right":"left"):(l=l+i+(u?1:-1)*r[1]/2,a=u?"bottom":"top"),{x:s,y:l,align:o,verticalAlign:a}},e.prototype._renderWeekText=function(t,e,n,i){var r=t.getModel("dayLabel");if(r.get("show")){var o=t.coordinateSystem,a=r.get("position"),s=r.get("nameMap"),l=r.get("margin"),u=o.getFirstDayOfWeek();H(s)&&(s=kR[s.toUpperCase()]||[]);var h=o.getNextNDay(e.end.time,7-e.lweek).time,c=[o.getCellWidth(),o.getCellHeight()];l=Zi(l,c["horizontal"===n?0:1]),"start"===a&&(h=o.getNextNDay(e.start.time,-(7+e.fweek)).time,l=-l);for(var p=0;p<7;p++){var d,f=o.getNextNDay(h,p),g=o.dataToRect([f.time],!1).center;d=Math.abs((p+u)%7);var y=new ls({z2:30,style:I(nh(r,{text:s[d]}),this._weekTextPositionControl(g,n,a,l,c))});i.add(y)}}},e.type="calendar",e}(pf),OR=864e5,RR=function(){function t(e,n,i){this.type="calendar",this.dimensions=t.dimensions,this.getDimensionsInfo=t.getDimensionsInfo,this._model=e}return t.getDimensionsInfo=function(){return[{name:"time",type:"time"},"value"]},t.prototype.getRangeInfo=function(){return this._rangeInfo},t.prototype.getModel=function(){return this._model},t.prototype.getRect=function(){return this._rect},t.prototype.getCellWidth=function(){return this._sw},t.prototype.getCellHeight=function(){return this._sh},t.prototype.getOrient=function(){return this._orient},t.prototype.getFirstDayOfWeek=function(){return this._firstDayOfWeek},t.prototype.getDateInfo=function(t){var e=(t=rr(t)).getFullYear(),n=t.getMonth()+1,i=n<10?"0"+n:""+n,r=t.getDate(),o=r<10?"0"+r:""+r,a=t.getDay();return{y:e+"",m:i,d:o,day:a=Math.abs((a+7-this.getFirstDayOfWeek())%7),time:t.getTime(),formatedDate:e+"-"+i+"-"+o,date:t}},t.prototype.getNextNDay=function(t,e){return 0===(e=e||0)||(t=new Date(this.getDateInfo(t).time)).setDate(t.getDate()+e),this.getDateInfo(t)},t.prototype.update=function(t,e){this._firstDayOfWeek=+this._model.getModel("dayLabel").get("firstDay"),this._orient=this._model.get("orient"),this._lineWidth=this._model.getModel("itemStyle").getItemStyle().lineWidth||0,this._rangeInfo=this._getRangeInfo(this._initRangeOption());var n=this._rangeInfo.weeks||1,i=["width","height"],r=this._model.getCellSize().slice(),o=this._model.getBoxLayoutParams(),a="horizontal"===this._orient?[n,7]:[7,n];P([0,1],(function(t){u(r,t)&&(o[i[t]]=r[t]*a[t])}));var s={width:e.getWidth(),height:e.getHeight()},l=this._rect=Ac(o,s);function u(t,e){return null!=t[e]&&"auto"!==t[e]}P([0,1],(function(t){u(r,t)||(r[t]=l[i[t]]/a[t])})),this._sw=r[0],this._sh=r[1]},t.prototype.dataToPoint=function(t,e){F(t)&&(t=t[0]),null==e&&(e=!0);var n=this.getDateInfo(t),i=this._rangeInfo,r=n.formatedDate;if(e&&!(n.time>=i.start.time&&n.time<i.end.time+OR))return[NaN,NaN];var o=n.day,a=this._getRangeInfo([i.start.time,r]).nthWeek;return"vertical"===this._orient?[this._rect.x+o*this._sw+this._sw/2,this._rect.y+a*this._sh+this._sh/2]:[this._rect.x+a*this._sw+this._sw/2,this._rect.y+o*this._sh+this._sh/2]},t.prototype.pointToData=function(t){var e=this.pointToDate(t);return e&&e.time},t.prototype.dataToRect=function(t,e){var n=this.dataToPoint(t,e);return{contentShape:{x:n[0]-(this._sw-this._lineWidth)/2,y:n[1]-(this._sh-this._lineWidth)/2,width:this._sw-this._lineWidth,height:this._sh-this._lineWidth},center:n,tl:[n[0]-this._sw/2,n[1]-this._sh/2],tr:[n[0]+this._sw/2,n[1]-this._sh/2],br:[n[0]+this._sw/2,n[1]+this._sh/2],bl:[n[0]-this._sw/2,n[1]+this._sh/2]}},t.prototype.pointToDate=function(t){var e=Math.floor((t[0]-this._rect.x)/this._sw)+1,n=Math.floor((t[1]-this._rect.y)/this._sh)+1,i=this._rangeInfo.range;return"vertical"===this._orient?this._getDateByWeeksAndDay(n,e-1,i):this._getDateByWeeksAndDay(e,n-1,i)},t.prototype.convertToPixel=function(t,e,n){var i=NR(e);return i===this?i.dataToPoint(n):null},t.prototype.convertFromPixel=function(t,e,n){var i=NR(e);return i===this?i.pointToData(n):null},t.prototype.containPoint=function(t){return console.warn("Not implemented."),!1},t.prototype._initRangeOption=function(){var t,e=this._model.get("range");if(F(e)&&1===e.length&&(e=e[0]),F(e))t=e;else{var n=e.toString();if(/^\d{4}$/.test(n)&&(t=[n+"-01-01",n+"-12-31"]),/^\d{4}[\/|-]\d{1,2}$/.test(n)){var i=this.getDateInfo(n),r=i.date;r.setMonth(r.getMonth()+1);var o=this.getNextNDay(r,-1);t=[i.formatedDate,o.formatedDate]}/^\d{4}[\/|-]\d{1,2}[\/|-]\d{1,2}$/.test(n)&&(t=[n,n])}if(!t)return e;var a=this._getRangeInfo(t);return a.start.time>a.end.time&&t.reverse(),t},t.prototype._getRangeInfo=function(t){var e,n=[this.getDateInfo(t[0]),this.getDateInfo(t[1])];n[0].time>n[1].time&&(e=!0,n.reverse());var i=Math.floor(n[1].time/OR)-Math.floor(n[0].time/OR)+1,r=new Date(n[0].time),o=r.getDate(),a=n[1].date.getDate();r.setDate(o+i-1);var s=r.getDate();if(s!==a)for(var l=r.getTime()-n[1].time>0?1:-1;(s=r.getDate())!==a&&(r.getTime()-n[1].time)*l>0;)i-=l,r.setDate(s-l);var u=Math.floor((i+n[0].day+6)/7),h=e?1-u:u-1;return e&&n.reverse(),{range:[n[0].formatedDate,n[1].formatedDate],start:n[0],end:n[1],allDay:i,weeks:u,nthWeek:h,fweek:n[0].day,lweek:n[1].day}},t.prototype._getDateByWeeksAndDay=function(t,e,n){var i=this._getRangeInfo(n);if(t>i.weeks||0===t&&e<i.fweek||t===i.weeks&&e>i.lweek)return null;var r=7*(t-1)-i.fweek+e,o=new Date(i.start.time);return o.setDate(+i.start.d+r),this.getDateInfo(o)},t.create=function(e,n){var i=[];return e.eachComponent("calendar",(function(r){var o=new t(r,e,n);i.push(o),r.coordinateSystem=o})),e.eachSeries((function(t){"calendar"===t.get("coordinateSystem")&&(t.coordinateSystem=i[t.get("calendarIndex")||0])})),i},t.dimensions=["time","value"],t}();function NR(t){var e=t.calendarModel,n=t.seriesModel;return e?e.coordinateSystem:n?n.coordinateSystem:null}var ER=Lr(),zR={path:null,compoundPath:null,group:zi,image:Ja,text:ls},BR=function(t){var e=t.graphic;F(e)?e[0]&&e[0].elements?t.graphic=[t.graphic[0]]:t.graphic=[{elements:e}]:e&&!e.elements&&(t.graphic=[{elements:[e]}])},VR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.mergeOption=function(e,n){var i=this.option.elements;this.option.elements=null,t.prototype.mergeOption.call(this,e,n),this.option.elements=i},e.prototype.optionUpdated=function(t,e){var n=this.option,i=(e?n:t).elements,r=n.elements=e?[]:n.elements,o=[];this._flatten(i,o,null);var a=Sr(r,o,"normalMerge"),s=this._elOptionsToUpdate=[];P(a,(function(t,e){var n=t.newOption;n&&(s.push(n),function(t,e){var n=t.existing;if(e.id=t.keyInfo.id,!e.type&&n&&(e.type=n.type),null==e.parentId){var i=e.parentOption;i?e.parentId=i.id:n&&(e.parentId=n.parentId)}e.parentOption=null}(t,n),function(t,e,n){var i=I({},n),r=t[e],o=n.$action||"merge";if("merge"===o){if(r)S(r,i,!0),kc(r,i,{ignoreSize:!0}),Oc(n,r);else t[e]=i}else"replace"===o?t[e]=i:"remove"===o&&r&&(t[e]=null)}(r,e,n),function(t,e){if(!t)return;if(t.hv=e.hv=[WR(e,["left","right"]),WR(e,["top","bottom"])],"group"===t.type){var n=t,i=e;null==n.width&&(n.width=i.width=0),null==n.height&&(n.height=i.height=0)}}(r[e],n))}),this);for(var l=r.length-1;l>=0;l--)null==r[l]?r.splice(l,1):delete r[l].$action},e.prototype._flatten=function(t,e,n){P(t,(function(t){if(t){n&&(t.parentOption=n),e.push(t);var i=t.children;"group"===t.type&&i&&this._flatten(i,e,t),delete t.children}}),this)},e.prototype.useElOptionsToUpdate=function(){var t=this._elOptionsToUpdate;return this._elOptionsToUpdate=null,t},e.type="graphic",e.defaultOption={elements:[]},e}(Nc),FR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(){this._elMap=ht()},e.prototype.render=function(t,e,n){t!==this._lastGraphicModel&&this._clear(),this._lastGraphicModel=t,this._updateElements(t),this._relocate(t,n)},e.prototype._updateElements=function(t){var e=t.useElOptionsToUpdate();if(e){var n=this._elMap,i=this.group;P(e,(function(e){var r=Tr(e.id,null),o=null!=r?n.get(r):null,a=Tr(e.parentId,null),s=null!=a?n.get(a):i,l=e.type,u=e.style;"text"===l&&u&&e.hv&&e.hv[1]&&(u.textVerticalAlign=u.textBaseline=u.verticalAlign=u.align=null);var h=e.textContent,c=e.textConfig;if(u&&yk(u,l,!!c,!!h)){var p=vk(u,l,!0);!c&&p.textConfig&&(c=e.textConfig=p.textConfig),!h&&p.textContent&&(h=p.textContent)}var d=function(t){return t=I({},t),P(["id","parentId","$action","hv","bounding","textContent"].concat(Mc),(function(e){delete t[e]})),t}(e);var f=e.$action||"merge";"merge"===f?o?o.attr(d):GR(r,s,d,n):"replace"===f?(HR(o,n),GR(r,s,d,n)):"remove"===f&&HR(o,n);var g=n.get(r);if(g&&h)if("merge"===f){var y=g.getTextContent();y?y.attr(h):g.setTextContent(new ls(h))}else"replace"===f&&g.setTextContent(new ls(h));if(g){var v=ER(g);v.__ecGraphicWidthOption=e.width,v.__ecGraphicHeightOption=e.height,function(t,e,n){var i=ys(t).eventData;t.silent||t.ignore||i||(i=ys(t).eventData={componentType:"graphic",componentIndex:e.componentIndex,name:t.name});i&&(i.info=n.info)}(g,t,e)}}))}},e.prototype._relocate=function(t,e){for(var n=t.option.elements,i=this.group,r=this._elMap,o=e.getWidth(),a=e.getHeight(),s=0;s<n.length;s++){if((d=null!=(p=Tr((c=n[s]).id,null))?r.get(p):null)&&d.isGroup){var l=(f=d.parent)===i,u=ER(d),h=ER(f);u.__ecGraphicWidth=Zi(u.__ecGraphicWidthOption,l?o:h.__ecGraphicWidth)||0,u.__ecGraphicHeight=Zi(u.__ecGraphicHeightOption,l?a:h.__ecGraphicHeight)||0}}for(s=n.length-1;s>=0;s--){var c,p,d;if(d=null!=(p=Tr((c=n[s]).id,null))?r.get(p):null){var f=d.parent;h=ER(f);Dc(d,c,f===i?{width:o,height:a}:{width:h.__ecGraphicWidth,height:h.__ecGraphicHeight},null,{hv:c.hv,boundingMode:c.bounding})}}},e.prototype._clear=function(){var t=this._elMap;t.each((function(e){HR(e,t)})),this._elMap=ht()},e.prototype.dispose=function(){this._clear()},e.type="graphic",e}(pf);function GR(t,e,n,i){var r=n.type;var o=dt(zR,r)?zR[r]:Iu(r);var a=new o(n);e.add(a),i.set(t,a),ER(a).__ecGraphicId=t}function HR(t,e){var n=t&&t.parent;n&&("group"===t.type&&t.traverse((function(t){HR(t,e)})),e.removeKey(ER(t).__ecGraphicId),n.remove(t))}function WR(t,e){var n;return P(e,(function(e){null!=t[e]&&"auto"!==t[e]&&(n=!0)})),n}var YR=["x","y","radius","angle","single"],XR=["cartesian2d","polar","singleAxis"];function UR(t){return t+"Axis"}function ZR(t,e){var n,i=ht(),r=[],o=ht();t.eachComponent({mainType:"dataZoom",query:e},(function(t){o.get(t.uid)||s(t)}));do{n=!1,t.eachComponent("dataZoom",a)}while(n);function a(t){!o.get(t.uid)&&function(t){var e=!1;return t.eachTargetAxis((function(t,n){var r=i.get(t);r&&r[n]&&(e=!0)})),e}(t)&&(s(t),n=!0)}function s(t){o.set(t.uid,!0),r.push(t),t.eachTargetAxis((function(t,e){(i.get(t)||i.set(t,[]))[e]=!0}))}return r}function jR(t){var e=t.ecModel,n={infoList:[],infoMap:ht()};return t.eachTargetAxis((function(t,i){var r=e.getComponent(UR(t),i);if(r){var o=r.getCoordSysModel();if(o){var a=o.uid,s=n.infoMap.get(a);s||(s={model:o,axisModels:[]},n.infoList.push(s),n.infoMap.set(a,s)),s.axisModels.push(r)}}})),n}var qR=function(){function t(){this.indexList=[],this.indexMap=[]}return t.prototype.add=function(t){this.indexMap[t]||(this.indexList.push(t),this.indexMap[t]=!0)},t}(),KR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._autoThrottle=!0,n._noTarget=!0,n._rangePropMode=["percent","percent"],n}return n(e,t),e.prototype.init=function(t,e,n){var i=$R(t);this.settledOption=i,this.mergeDefaultAndTheme(t,n),this._doInit(i)},e.prototype.mergeOption=function(t){var e=$R(t);S(this.option,t,!0),S(this.settledOption,e,!0),this._doInit(e)},e.prototype._doInit=function(t){var e=this.option;this._setDefaultThrottle(t),this._updateRangeUse(t);var n=this.settledOption;P([["start","startValue"],["end","endValue"]],(function(t,i){"value"===this._rangePropMode[i]&&(e[t[0]]=n[t[0]]=null)}),this),this._resetTarget()},e.prototype._resetTarget=function(){var t=this.get("orient",!0),e=this._targetAxisInfoMap=ht();this._fillSpecifiedTargetAxis(e)?this._orient=t||this._makeAutoOrientByTargetAxis():(this._orient=t||"horizontal",this._fillAutoTargetAxisByOrient(e,this._orient)),this._noTarget=!0,e.each((function(t){t.indexList.length&&(this._noTarget=!1)}),this)},e.prototype._fillSpecifiedTargetAxis=function(t){var e=!1;return P(YR,(function(n){var i=this.getReferringComponents(UR(n),Rr);if(i.specified){e=!0;var r=new qR;P(i.models,(function(t){r.add(t.componentIndex)})),t.set(n,r)}}),this),e},e.prototype._fillAutoTargetAxisByOrient=function(t,e){var n=this.ecModel,i=!0;if(i){var r="vertical"===e?"y":"x";o(n.findComponents({mainType:r+"Axis"}),r)}i&&o(n.findComponents({mainType:"singleAxis",filter:function(t){return t.get("orient",!0)===e}}),"single");function o(e,n){var r=e[0];if(r){var o=new qR;if(o.add(r.componentIndex),t.set(n,o),i=!1,"x"===n||"y"===n){var a=r.getReferringComponents("grid",Or).models[0];a&&P(e,(function(t){r.componentIndex!==t.componentIndex&&a===t.getReferringComponents("grid",Or).models[0]&&o.add(t.componentIndex)}))}}}i&&P(YR,(function(e){if(i){var r=n.findComponents({mainType:UR(e),filter:function(t){return"category"===t.get("type",!0)}});if(r[0]){var o=new qR;o.add(r[0].componentIndex),t.set(e,o),i=!1}}}),this)},e.prototype._makeAutoOrientByTargetAxis=function(){var t;return this.eachTargetAxis((function(e){!t&&(t=e)}),this),"y"===t?"vertical":"horizontal"},e.prototype._setDefaultThrottle=function(t){if(t.hasOwnProperty("throttle")&&(this._autoThrottle=!1),this._autoThrottle){var e=this.ecModel.option;this.option.throttle=e.animation&&e.animationDurationUpdate>0?100:20}},e.prototype._updateRangeUse=function(t){var e=this._rangePropMode,n=this.get("rangeMode");P([["start","startValue"],["end","endValue"]],(function(i,r){var o=null!=t[i[0]],a=null!=t[i[1]];o&&!a?e[r]="percent":!o&&a?e[r]="value":n?e[r]=n[r]:o&&(e[r]="percent")}))},e.prototype.noTarget=function(){return this._noTarget},e.prototype.getFirstTargetAxisModel=function(){var t;return this.eachTargetAxis((function(e,n){null==t&&(t=this.ecModel.getComponent(UR(e),n))}),this),t},e.prototype.eachTargetAxis=function(t,e){this._targetAxisInfoMap.each((function(n,i){P(n.indexList,(function(n){t.call(e,i,n)}))}))},e.prototype.getAxisProxy=function(t,e){var n=this.getAxisModel(t,e);if(n)return n.__dzAxisProxy},e.prototype.getAxisModel=function(t,e){var n=this._targetAxisInfoMap.get(t);if(n&&n.indexMap[e])return this.ecModel.getComponent(UR(t),e)},e.prototype.setRawRange=function(t){var e=this.option,n=this.settledOption;P([["start","startValue"],["end","endValue"]],(function(i){null==t[i[0]]&&null==t[i[1]]||(e[i[0]]=n[i[0]]=t[i[0]],e[i[1]]=n[i[1]]=t[i[1]])}),this),this._updateRangeUse(t)},e.prototype.setCalculatedRange=function(t){var e=this.option;P(["start","startValue","end","endValue"],(function(n){e[n]=t[n]}))},e.prototype.getPercentRange=function(){var t=this.findRepresentativeAxisProxy();if(t)return t.getDataPercentWindow()},e.prototype.getValueRange=function(t,e){if(null!=t||null!=e)return this.getAxisProxy(t,e).getDataValueWindow();var n=this.findRepresentativeAxisProxy();return n?n.getDataValueWindow():void 0},e.prototype.findRepresentativeAxisProxy=function(t){if(t)return t.__dzAxisProxy;for(var e,n=this._targetAxisInfoMap.keys(),i=0;i<n.length;i++)for(var r=n[i],o=this._targetAxisInfoMap.get(r),a=0;a<o.indexList.length;a++){var s=this.getAxisProxy(r,o.indexList[a]);if(s.hostedBy(this))return s;e||(e=s)}return e},e.prototype.getRangePropMode=function(){return this._rangePropMode.slice()},e.prototype.getOrient=function(){return this._orient},e.type="dataZoom",e.dependencies=["xAxis","yAxis","radiusAxis","angleAxis","singleAxis","series","toolbox"],e.defaultOption={zlevel:0,z:4,filterMode:"filter",start:0,end:100},e}(Nc);function $R(t){var e={};return P(["start","end","startValue","endValue","throttle"],(function(n){t.hasOwnProperty(n)&&(e[n]=t[n])})),e}var JR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="dataZoom.select",e}(KR),QR=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n,i){this.dataZoomModel=t,this.ecModel=e,this.api=n},e.type="dataZoom",e}(pf),tN=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="dataZoom.select",e}(QR),eN=P,nN=qi,iN=function(){function t(t,e,n,i){this._dimName=t,this._axisIndex=e,this.ecModel=i,this._dataZoomModel=n}return t.prototype.hostedBy=function(t){return this._dataZoomModel===t},t.prototype.getDataValueWindow=function(){return this._valueWindow.slice()},t.prototype.getDataPercentWindow=function(){return this._percentWindow.slice()},t.prototype.getTargetSeriesModels=function(){var t=[];return this.ecModel.eachSeries((function(e){if(function(t){var e=t.get("coordinateSystem");return A(XR,e)>=0}(e)){var n=UR(this._dimName),i=e.getReferringComponents(n,Or).models[0];i&&this._axisIndex===i.componentIndex&&t.push(e)}}),this),t},t.prototype.getAxisModel=function(){return this.ecModel.getComponent(this._dimName+"Axis",this._axisIndex)},t.prototype.getMinMaxSpan=function(){return w(this._minMaxSpan)},t.prototype.calculateDataWindow=function(t){var e,n=this._dataExtent,i=this.getAxisModel().axis.scale,r=this._dataZoomModel.getRangePropMode(),o=[0,100],a=[],s=[];eN(["start","end"],(function(l,u){var h=t[l],c=t[l+"Value"];"percent"===r[u]?(null==h&&(h=o[u]),c=i.parse(Ui(h,o,n))):(e=!0,h=Ui(c=null==c?n[u]:i.parse(c),n,o)),s[u]=c,a[u]=h})),nN(s),nN(a);var l=this._minMaxSpan;function u(t,e,n,r,o){var a=o?"Span":"ValueSpan";tA(0,t,n,"all",l["min"+a],l["max"+a]);for(var s=0;s<2;s++)e[s]=Ui(t[s],n,r,!0),o&&(e[s]=i.parse(e[s]))}return e?u(s,a,n,o,!1):u(a,s,o,n,!0),{valueWindow:s,percentWindow:a}},t.prototype.reset=function(t){if(t===this._dataZoomModel){var e=this.getTargetSeriesModels();this._dataExtent=function(t,e,n){var i=[1/0,-1/0];eN(n,(function(t){!function(t,e,n){e&&P(Z_(e,n),(function(n){var i=e.getApproximateExtent(n);i[0]<t[0]&&(t[0]=i[0]),i[1]>t[1]&&(t[1]=i[1])}))}(i,t.getData(),e)}));var r=t.getAxisModel(),o=z_(r.axis.scale,r,i).calculate();return[o.min,o.max]}(this,this._dimName,e),this._updateMinMaxSpan();var n=this.calculateDataWindow(t.settledOption);this._valueWindow=n.valueWindow,this._percentWindow=n.percentWindow,this._setAxisModel()}},t.prototype.filterData=function(t,e){if(t===this._dataZoomModel){var n=this._dimName,i=this.getTargetSeriesModels(),r=t.get("filterMode"),o=this._valueWindow;"none"!==r&&eN(i,(function(t){var e=t.getData(),i=e.mapDimensionsAll(n);i.length&&("weakFilter"===r?e.filterSelf((function(t){for(var n,r,a,s=0;s<i.length;s++){var l=e.get(i[s],t),u=!isNaN(l),h=l<o[0],c=l>o[1];if(u&&!h&&!c)return!0;u&&(a=!0),h&&(n=!0),c&&(r=!0)}return a&&n&&r})):eN(i,(function(n){if("empty"===r)t.setData(e=e.map(n,(function(t){return function(t){return t>=o[0]&&t<=o[1]}(t)?t:NaN})));else{var i={};i[n]=o,e.selectRange(i)}})),eN(i,(function(t){e.setApproximateExtent(o,t)})))}))}},t.prototype._updateMinMaxSpan=function(){var t=this._minMaxSpan={},e=this._dataZoomModel,n=this._dataExtent;eN(["min","max"],(function(i){var r=e.get(i+"Span"),o=e.get(i+"ValueSpan");null!=o&&(o=this.getAxisModel().axis.scale.parse(o)),null!=o?r=Ui(n[0]+o,n,[0,100],!0):null!=r&&(o=Ui(r,[0,100],n,!0)-n[0]),t[i+"Span"]=r,t[i+"ValueSpan"]=o}),this)},t.prototype._setAxisModel=function(){var t=this.getAxisModel(),e=this._percentWindow,n=this._valueWindow;if(e){var i=Ji(n,[0,500]);i=Math.min(i,20);var r=t.axis.scale.rawExtentInfo;0!==e[0]&&r.setDeterminedMinMax("min",+n[0].toFixed(i)),100!==e[1]&&r.setDeterminedMinMax("max",+n[1].toFixed(i)),r.freeze()}},t}();var rN={getTargetSeries:function(t){function e(e){t.eachComponent("dataZoom",(function(n){n.eachTargetAxis((function(i,r){var o=t.getComponent(UR(i),r);e(i,r,o,n)}))}))}e((function(t,e,n,i){n.__dzAxisProxy=null}));var n=[];e((function(e,i,r,o){r.__dzAxisProxy||(r.__dzAxisProxy=new iN(e,i,o,t),n.push(r.__dzAxisProxy))}));var i=ht();return P(n,(function(t){P(t.getTargetSeriesModels(),(function(t){i.set(t.uid,t)}))})),i},overallReset:function(t,e){t.eachComponent("dataZoom",(function(t){t.eachTargetAxis((function(e,n){t.getAxisProxy(e,n).reset(t)})),t.eachTargetAxis((function(n,i){t.getAxisProxy(n,i).filterData(t,e)}))})),t.eachComponent("dataZoom",(function(t){var e=t.findRepresentativeAxisProxy();if(e){var n=e.getDataPercentWindow(),i=e.getDataValueWindow();t.setCalculatedRange({start:n[0],end:n[1],startValue:i[0],endValue:i[1]})}}))}};var oN=!1;function aN(t){oN||(oN=!0,t.registerProcessor(t.PRIORITY.PROCESSOR.FILTER,rN),function(t){t.registerAction("dataZoom",(function(t,e){P(ZR(e,t),(function(e){e.setRawRange({start:t.start,end:t.end,startValue:t.startValue,endValue:t.endValue})}))}))}(t),t.registerSubTypeDefaulter("dataZoom",(function(){return"slider"})))}function sN(t){t.registerComponentModel(JR),t.registerComponentView(tN),aN(t)}var lN=function(){},uN={};function hN(t,e){uN[t]=e}function cN(t){return uN[t]}var pN=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.optionUpdated=function(){t.prototype.optionUpdated.apply(this,arguments);var e=this.ecModel;P(this.option.feature,(function(t,n){var i=cN(n);i&&(i.getDefaultOption&&(i.defaultOption=i.getDefaultOption(e)),S(t,i.defaultOption))}))},e.type="toolbox",e.layoutMode={type:"box",ignoreSize:!0},e.defaultOption={show:!0,z:6,zlevel:0,orient:"horizontal",left:"right",top:"top",backgroundColor:"transparent",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemSize:15,itemGap:8,showTitle:!0,iconStyle:{borderColor:"#666",color:"none"},emphasis:{iconStyle:{borderColor:"#3E98C5"}},tooltip:{show:!1}},e}(Nc);function dN(t,e){var n=pc(e.get("padding")),i=e.getItemStyle(["color","opacity"]);return i.fill=e.get("backgroundColor"),t=new os({shape:{x:t.x-n[3],y:t.y-n[0],width:t.width+n[1]+n[3],height:t.height+n[0]+n[2],r:e.get("borderRadius")},style:i,silent:!0,z2:-1})}var fN=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.render=function(t,e,n,i){var r=this.group;if(r.removeAll(),t.get("show")){var o=+t.get("itemSize"),a=t.get("feature")||{},s=this._features||(this._features={}),l=[];P(a,(function(t,e){l.push(e)})),new rm(this._featureNames||[],l).add(u).update(u).remove(V(u,null)).execute(),this._featureNames=l,function(t,e,n){var i=e.getBoxLayoutParams(),r=e.get("padding"),o={width:n.getWidth(),height:n.getHeight()},a=Ac(i,o,r);Cc(e.get("orient"),t,e.get("itemGap"),a.width,a.height),Dc(t,i,o,r)}(r,t,n),r.add(dN(r.getBoundingRect(),t)),r.eachChild((function(t){var e=t.__title,i=t.ensureState("emphasis"),a=i.textConfig||(i.textConfig={}),s=t.getTextContent(),l=s&&s.states.emphasis;if(l&&!G(l)&&e){var u=l.style||(l.style={}),h=Fn(e,ls.makeFont(u)),c=t.x+r.x,p=!1;t.y+r.y+o+h.height>n.getHeight()&&(a.position="top",p=!0);var d=p?-5-h.height:o+8;c+h.width/2>n.getWidth()?(a.position=["100%",d],u.align="right"):c-h.width/2<0&&(a.position=[0,d],u.align="left")}}))}function u(u,h){var c,p=l[u],d=l[h],f=a[p],g=new Sh(f,t,t.ecModel);if(i&&null!=i.newTitle&&i.featureName===p&&(f.title=i.newTitle),p&&!d){if(function(t){return 0===t.indexOf("my")}(p))c={onclick:g.option.onclick,featureName:p};else{var y=cN(p);if(!y)return;c=new y}s[p]=c}else if(!(c=s[d]))return;if(c.uid=Ih("toolbox-feature"),c.model=g,c.ecModel=e,c.api=n,c instanceof lN){if(!p&&d)return void(c.dispose&&c.dispose(e,n));if(!g.get("show")||c.unusable)return void(c.remove&&c.remove(e,n))}!function(i,a,s){var l,u,h=i.getModel("iconStyle"),c=i.getModel(["emphasis","iconStyle"]),p=a instanceof lN&&a.getIcons?a.getIcons():i.get("icon"),d=i.get("title")||{};"string"==typeof p?(l={})[s]=p:l=p;"string"==typeof d?(u={})[s]=d:u=d;var f=i.iconPaths={};P(l,(function(s,l){var p=Uu(s,{},{x:-o/2,y:-o/2,width:o,height:o});p.setStyle(h.getItemStyle()),p.ensureState("emphasis").style=c.getItemStyle();var d=new ls({style:{text:u[l],align:c.get("textAlign"),borderRadius:c.get("textBorderRadius"),padding:c.get("textPadding"),fill:null},ignore:!0});p.setTextContent(d);var g=t.getModel("tooltip");g&&g.get("show")&&(p.tooltip=I({content:u[l],formatter:g.get("formatter",!0)||function(){return u[l]},formatterParams:{componentType:"toolbox",name:l,title:u[l],$vars:["name","title"]},position:g.get("position",!0)||"bottom"},g.option)),p.__title=u[l],p.on("mouseover",(function(){var e=c.getItemStyle(),n="vertical"===t.get("orient")?null==t.get("right")?"right":"left":null==t.get("bottom")?"bottom":"top";d.setStyle({fill:c.get("textFill")||e.fill||e.stroke||"#000",backgroundColor:c.get("textBackgroundColor")}),p.setTextConfig({position:c.get("textPosition")||n}),d.ignore=!t.get("showTitle"),Hs(this)})).on("mouseout",(function(){"emphasis"!==i.get(["iconStatus",l])&&Ws(this),d.hide()})),("emphasis"===i.get(["iconStatus",l])?Hs:Ws)(p),r.add(p),p.on("click",B(a.onclick,a,e,n,l)),f[l]=p}))}(g,c,p),g.setIconStatus=function(t,e){var n=this.option,i=this.iconPaths;n.iconStatus=n.iconStatus||{},n.iconStatus[t]=e,i[t]&&("emphasis"===e?Hs:Ws)(i[t])},c instanceof lN&&c.render&&c.render(g,e,n,i)}},e.prototype.updateView=function(t,e,n,i){P(this._features,(function(t){t instanceof lN&&t.updateView&&t.updateView(t.model,e,n,i)}))},e.prototype.remove=function(t,e){P(this._features,(function(n){n instanceof lN&&n.remove&&n.remove(t,e)})),this.group.removeAll()},e.prototype.dispose=function(t,e){P(this._features,(function(n){n instanceof lN&&n.dispose&&n.dispose(t,e)}))},e.type="toolbox",e}(pf);var gN=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.onclick=function(t,e){var n=this.model,i=n.get("name")||t.get("title.0.text")||"echarts",r="svg"===e.getZr().painter.getType(),o=r?"svg":n.get("type",!0)||"png",s=e.getConnectedDataURL({type:o,backgroundColor:n.get("backgroundColor",!0)||t.get("backgroundColor")||"#fff",connectedBackgroundColor:n.get("connectedBackgroundColor"),excludeComponents:n.get("excludeComponents"),pixelRatio:n.get("pixelRatio")});if("function"!=typeof MouseEvent||!a.browser.newEdge&&(a.browser.ie||a.browser.edge))if(window.navigator.msSaveOrOpenBlob||r){var l=s.split(","),u=l[0].indexOf("base64")>-1,h=r?decodeURIComponent(l[1]):l[1];u&&(h=atob(h));var c=i+"."+o;if(window.navigator.msSaveOrOpenBlob){for(var p=h.length,d=new Uint8Array(p);p--;)d[p]=h.charCodeAt(p);var f=new Blob([d]);window.navigator.msSaveOrOpenBlob(f,c)}else{var g=document.createElement("iframe");document.body.appendChild(g);var y=g.contentWindow,v=y.document;v.open("image/svg+xml","replace"),v.write(h),v.close(),y.focus(),v.execCommand("SaveAs",!0,c),document.body.removeChild(g)}}else{var m=n.get("lang"),_='<body style="margin:0;"><img src="'+s+'" style="max-width:100%;" title="'+(m&&m[0]||"")+'" /></body>',x=window.open();x.document.write(_),x.document.title=i}else{var b=document.createElement("a");b.download=i+"."+o,b.target="_blank",b.href=s;var w=new MouseEvent("click",{view:document.defaultView,bubbles:!0,cancelable:!1});b.dispatchEvent(w)}},e.getDefaultOption=function(t){return{show:!0,icon:"M4.7,22.9L29.3,45.5L54.7,23.4M4.6,43.6L4.6,58L53.8,58L53.8,43.6M29.2,45.1L29.2,0",title:t.getLocale(["toolbox","saveAsImage","title"]),type:"png",connectedBackgroundColor:"#fff",name:"",excludeComponents:["toolbox"],pixelRatio:1,lang:t.getLocale(["toolbox","saveAsImage","lang"])}},e}(lN);gN.prototype.unusable=!a.canvasSupported;var yN="__ec_magicType_stack__",vN=[["line","bar"],["stack"]],mN=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.getIcons=function(){var t=this.model,e=t.get("icon"),n={};return P(t.get("type"),(function(t){e[t]&&(n[t]=e[t])})),n},e.getDefaultOption=function(t){return{show:!0,type:[],icon:{line:"M4.1,28.9h7.1l9.3-22l7.4,38l9.7-19.7l3,12.8h14.9M4.1,58h51.4",bar:"M6.7,22.9h10V48h-10V22.9zM24.9,13h10v35h-10V13zM43.2,2h10v46h-10V2zM3.1,58h53.7",stack:"M8.2,38.4l-8.4,4.1l30.6,15.3L60,42.5l-8.1-4.1l-21.5,11L8.2,38.4z M51.9,30l-8.1,4.2l-13.4,6.9l-13.9-6.9L8.2,30l-8.4,4.2l8.4,4.2l22.2,11l21.5-11l8.1-4.2L51.9,30z M51.9,21.7l-8.1,4.2L35.7,30l-5.3,2.8L24.9,30l-8.4-4.1l-8.3-4.2l-8.4,4.2L8.2,30l8.3,4.2l13.9,6.9l13.4-6.9l8.1-4.2l8.1-4.1L51.9,21.7zM30.4,2.2L-0.2,17.5l8.4,4.1l8.3,4.2l8.4,4.2l5.5,2.7l5.3-2.7l8.1-4.2l8.1-4.2l8.1-4.1L30.4,2.2z"},title:t.getLocale(["toolbox","magicType","title"]),option:{},seriesIndex:{}}},e.prototype.onclick=function(t,e,n){var i=this.model,r=i.get(["seriesIndex",n]);if(_N[n]){var o,a={series:[]};P(vN,(function(t){A(t,n)>=0&&P(t,(function(t){i.setIconStatus(t,"normal")}))})),i.setIconStatus(n,"emphasis"),t.eachComponent({mainType:"series",query:null==r?null:{seriesIndex:r}},(function(t){var e=t.subType,r=t.id,o=_N[n](e,r,t,i);o&&(T(o,t.option),a.series.push(o));var s=t.coordinateSystem;if(s&&"cartesian2d"===s.type&&("line"===n||"bar"===n)){var l=s.getAxesByScale("ordinal")[0];if(l){var u=l.dim+"Axis",h=t.getReferringComponents(u,Or).models[0].componentIndex;a[u]=a[u]||[];for(var c=0;c<=h;c++)a[u][h]=a[u][h]||{};a[u][h].boundaryGap="bar"===n}}})),"stack"===n&&(o=S({stack:i.option.title.tiled,tiled:i.option.title.stack},i.option.title)),e.dispatchAction({type:"changeMagicType",currentType:n,newOption:a,newTitle:o,featureName:"magicType"})}},e}(lN),_N={line:function(t,e,n,i){if("bar"===t)return S({id:e,type:"line",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},i.get(["option","line"])||{},!0)},bar:function(t,e,n,i){if("line"===t)return S({id:e,type:"bar",data:n.get("data"),stack:n.get("stack"),markPoint:n.get("markPoint"),markLine:n.get("markLine")},i.get(["option","bar"])||{},!0)},stack:function(t,e,n,i){var r=n.get("stack")===yN;if("line"===t||"bar"===t)return i.setIconStatus("stack",r?"normal":"emphasis"),S({id:e,stack:r?"":yN},i.get(["option","stack"])||{},!0)}};Yv({type:"changeMagicType",event:"magicTypeChanged",update:"prepareAndUpdate"},(function(t,e){e.mergeOption(t.newOption)}));var xN=new Array(60).join("-"),bN="\t";function wN(t){return t.replace(/^\s\s*/,"").replace(/\s\s*$/,"")}var SN=new RegExp("[\t]+","g");function MN(t,e){var n=t.split(new RegExp("\n*"+xN+"\n*","g")),i={series:[]};return P(n,(function(t,n){if(function(t){if(t.slice(0,t.indexOf("\n")).indexOf(bN)>=0)return!0}(t)){var r=function(t){for(var e=t.split(/\n+/g),n=[],i=O(wN(e.shift()).split(SN),(function(t){return{name:t,data:[]}})),r=0;r<e.length;r++){var o=wN(e[r]).split(SN);n.push(o.shift());for(var a=0;a<o.length;a++)i[a]&&(i[a].data[r]=o[a])}return{series:i,categories:n}}(t),o=e[n],a=o.axisDim+"Axis";o&&(i[a]=i[a]||[],i[a][o.axisIndex]={data:r.categories},i.series=i.series.concat(r.series))}else{r=function(t){for(var e=t.split(/\n+/g),n=wN(e.shift()),i=[],r=0;r<e.length;r++){var o=wN(e[r]);if(o){var a=o.split(SN),s="",l=void 0,u=!1;isNaN(a[0])?(u=!0,s=a[0],a=a.slice(1),i[r]={name:s,value:[]},l=i[r].value):l=i[r]=[];for(var h=0;h<a.length;h++)l.push(+a[h]);1===l.length&&(u?i[r].value=l[0]:i[r]=l[0])}}return{name:n,data:i}}(t);i.series.push(r)}})),i}var IN=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.onclick=function(t,e){var n=e.getDom(),i=this.model;this._dom&&n.removeChild(this._dom);var r=document.createElement("div");r.style.cssText="position:absolute;left:5px;top:5px;bottom:5px;right:5px;",r.style.backgroundColor=i.get("backgroundColor")||"#fff";var o=document.createElement("h4"),a=i.get("lang")||[];o.innerHTML=a[0]||i.get("title"),o.style.cssText="margin: 10px 20px;",o.style.color=i.get("textColor");var s=document.createElement("div"),l=document.createElement("textarea");s.style.cssText="display:block;width:100%;overflow:auto;";var u=i.get("optionToContent"),h=i.get("contentToOption"),c=function(t){var e,n,i,r=function(t){var e={},n=[],i=[];return t.eachRawSeries((function(t){var r=t.coordinateSystem;if(!r||"cartesian2d"!==r.type&&"polar"!==r.type)n.push(t);else{var o=r.getBaseAxis();if("category"===o.type){var a=o.dim+"_"+o.index;e[a]||(e[a]={categoryAxis:o,valueAxis:r.getOtherAxis(o),series:[]},i.push({axisDim:o.dim,axisIndex:o.index})),e[a].series.push(t)}else n.push(t)}})),{seriesGroupByCategoryAxis:e,other:n,meta:i}}(t);return{value:N([(n=r.seriesGroupByCategoryAxis,i=[],P(n,(function(t,e){var n=t.categoryAxis,r=t.valueAxis.dim,o=[" "].concat(O(t.series,(function(t){return t.name}))),a=[n.model.getCategories()];P(t.series,(function(t){var e=t.getRawData();a.push(t.getRawData().mapArray(e.mapDimension(r),(function(t){return t})))}));for(var s=[o.join(bN)],l=0;l<a[0].length;l++){for(var u=[],h=0;h<a.length;h++)u.push(a[h][l]);s.push(u.join(bN))}i.push(s.join("\n"))})),i.join("\n\n"+xN+"\n\n")),(e=r.other,O(e,(function(t){var e=t.getRawData(),n=[t.name],i=[];return e.each(e.dimensions,(function(){for(var t=arguments.length,r=arguments[t-1],o=e.getName(r),a=0;a<t-1;a++)i[a]=arguments[a];n.push((o?o+bN:"")+i.join(bN))})),n.join("\n")})).join("\n\n"+xN+"\n\n"))],(function(t){return!!t.replace(/[\n\t\s]/g,"")})).join("\n\n"+xN+"\n\n"),meta:r.meta}}(t);if("function"==typeof u){var p=u(e.getOption());"string"==typeof p?s.innerHTML=p:j(p)&&s.appendChild(p)}else s.appendChild(l),l.readOnly=i.get("readOnly"),l.style.cssText="width:100%;height:100%;font-family:monospace;font-size:14px;line-height:1.6rem;",l.style.color=i.get("textColor"),l.style.borderColor=i.get("textareaBorderColor"),l.style.backgroundColor=i.get("textareaColor"),l.value=c.value;var d=c.meta,f=document.createElement("div");f.style.cssText="position:absolute;bottom:0;left:0;right:0;";var g="float:right;margin-right:20px;border:none;cursor:pointer;padding:2px 5px;font-size:12px;border-radius:3px",y=document.createElement("div"),v=document.createElement("div");g+=";background-color:"+i.get("buttonColor"),g+=";color:"+i.get("buttonTextColor");var m=this;function _(){n.removeChild(r),m._dom=null}te(y,"click",_),te(v,"click",(function(){if(null==h&&null!=u||null!=h&&null==u)_();else{var t;try{t="function"==typeof h?h(s,e.getOption()):MN(l.value,d)}catch(t){throw _(),new Error("Data view format error "+t)}t&&e.dispatchAction({type:"changeDataView",newOption:t}),_()}})),y.innerHTML=a[1],v.innerHTML=a[2],v.style.cssText=g,y.style.cssText=g,!i.get("readOnly")&&f.appendChild(v),f.appendChild(y),r.appendChild(o),r.appendChild(s),r.appendChild(f),s.style.height=n.clientHeight-80+"px",n.appendChild(r),this._dom=r},e.prototype.remove=function(t,e){this._dom&&e.getDom().removeChild(this._dom)},e.prototype.dispose=function(t,e){this.remove(t,e)},e.getDefaultOption=function(t){return{show:!0,readOnly:!1,optionToContent:null,contentToOption:null,icon:"M17.5,17.3H33 M17.5,17.3H33 M45.4,29.5h-28 M11.5,2v56H51V14.8L38.4,2H11.5z M38.4,2.2v12.7H51 M45.4,41.7h-28",title:t.getLocale(["toolbox","dataView","title"]),lang:t.getLocale(["toolbox","dataView","lang"]),backgroundColor:"#fff",textColor:"#000",textareaColor:"#fff",textareaBorderColor:"#333",buttonColor:"#c23531",buttonTextColor:"#fff"}},e}(lN);function TN(t,e){return O(t,(function(t,n){var i=e&&e[n];if(X(i)&&!F(i)){X(t)&&!F(t)||(t={value:t});var r=null!=i.name&&null==t.name;return t=T(t,i),r&&delete t.name,t}return t}))}Yv({type:"changeDataView",event:"dataViewChanged",update:"prepareAndUpdate"},(function(t,e){var n=[];P(t.newOption.series,(function(t){var i=e.getSeriesByName(t.name)[0];if(i){var r=i.get("data");n.push({name:t.name,data:TN(t.data,r)})}else n.push(I({type:"scatter"},t))})),e.mergeOption(T({series:n},t.newOption))}));var CN=P,AN=Lr();function DN(t){var e=AN(t);return e.snapshots||(e.snapshots=[{}]),e.snapshots}var LN=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.onclick=function(t,e){!function(t){AN(t).snapshots=null}(t),e.dispatchAction({type:"restore",from:this.uid})},e.getDefaultOption=function(t){return{show:!0,icon:"M3.8,33.4 M47,18.9h9.8V8.7 M56.3,20.1 C52.1,9,40.5,0.6,26.8,2.1C12.6,3.7,1.6,16.2,2.1,30.6 M13,41.1H3.1v10.2 M3.7,39.9c4.2,11.1,15.8,19.5,29.5,18 c14.2-1.6,25.2-14.1,24.7-28.5",title:t.getLocale(["toolbox","restore","title"])}},e}(lN);Yv({type:"restore",event:"restore",update:"prepareAndUpdate"},(function(t,e){e.resetOption("recreate")}));var kN=["dataToPoint","pointToData"],PN=["grid","xAxis","yAxis","geo","graph","polar","radiusAxis","angleAxis","bmap"],ON=function(){function t(t,e,n){var i=this;this._targetInfoList=[];var r=NN(e,t);P(EN,(function(t,e){(!n||!n.include||A(n.include,e)>=0)&&t(r,i._targetInfoList)}))}return t.prototype.setOutputRanges=function(t,e){return this.matchOutputRanges(t,e,(function(t,e,n){if((t.coordRanges||(t.coordRanges=[])).push(e),!t.coordRange){t.coordRange=e;var i=VN[t.brushType](0,n,e);t.__rangeOffset={offset:GN[t.brushType](i.values,t.range,[1,1]),xyMinMax:i.xyMinMax}}})),t},t.prototype.matchOutputRanges=function(t,e,n){P(t,(function(t){var i=this.findTargetInfo(t,e);i&&!0!==i&&P(i.coordSyses,(function(i){var r=VN[t.brushType](1,i,t.range);n(t,r.values,i,e)}))}),this)},t.prototype.setInputRanges=function(t,e){P(t,(function(t){var n,i,r,o,a,s=this.findTargetInfo(t,e);if(t.range=t.range||[],s&&!0!==s){t.panelId=s.panelId;var l=VN[t.brushType](0,s.coordSys,t.coordRange),u=t.__rangeOffset;t.range=u?GN[t.brushType](l.values,u.offset,(n=l.xyMinMax,i=u.xyMinMax,r=WN(n),o=WN(i),a=[r[0]/o[0],r[1]/o[1]],isNaN(a[0])&&(a[0]=1),isNaN(a[1])&&(a[1]=1),a)):l.values}}),this)},t.prototype.makePanelOpts=function(t,e){return O(this._targetInfoList,(function(n){var i=n.getPanelRect();return{panelId:n.panelId,defaultBrushType:e?e(n):null,clipPath:nD(i),isTargetByCursor:rD(i,t,n.coordSysModel),getLinearBrushOtherExtent:iD(i)}}))},t.prototype.controlSeries=function(t,e,n){var i=this.findTargetInfo(t,n);return!0===i||i&&A(i.coordSyses,e.coordinateSystem)>=0},t.prototype.findTargetInfo=function(t,e){for(var n=this._targetInfoList,i=NN(e,t),r=0;r<n.length;r++){var o=n[r],a=t.panelId;if(a){if(o.panelId===a)return o}else for(var s=0;s<zN.length;s++)if(zN[s](i,o))return o}return!0},t}();function RN(t){return t[0]>t[1]&&t.reverse(),t}function NN(t,e){return Pr(t,e,{includeMainTypes:PN})}var EN={grid:function(t,e){var n=t.xAxisModels,i=t.yAxisModels,r=t.gridModels,o=ht(),a={},s={};(n||i||r)&&(P(n,(function(t){var e=t.axis.grid.model;o.set(e.id,e),a[e.id]=!0})),P(i,(function(t){var e=t.axis.grid.model;o.set(e.id,e),s[e.id]=!0})),P(r,(function(t){o.set(t.id,t),a[t.id]=!0,s[t.id]=!0})),o.each((function(t){var r=t.coordinateSystem,o=[];P(r.getCartesians(),(function(t,e){(A(n,t.getAxis("x").model)>=0||A(i,t.getAxis("y").model)>=0)&&o.push(t)})),e.push({panelId:"grid--"+t.id,gridModel:t,coordSysModel:t,coordSys:o[0],coordSyses:o,getPanelRect:BN.grid,xAxisDeclared:a[t.id],yAxisDeclared:s[t.id]})})))},geo:function(t,e){P(t.geoModels,(function(t){var n=t.coordinateSystem;e.push({panelId:"geo--"+t.id,geoModel:t,coordSysModel:t,coordSys:n,coordSyses:[n],getPanelRect:BN.geo})}))}},zN=[function(t,e){var n=t.xAxisModel,i=t.yAxisModel,r=t.gridModel;return!r&&n&&(r=n.axis.grid.model),!r&&i&&(r=i.axis.grid.model),r&&r===e.gridModel},function(t,e){var n=t.geoModel;return n&&n===e.geoModel}],BN={grid:function(){return this.coordSys.master.getRect().clone()},geo:function(){var t=this.coordSys,e=t.getBoundingRect().clone();return e.applyTransform(Vu(t)),e}},VN={lineX:V(FN,0),lineY:V(FN,1),rect:function(t,e,n){var i=e[kN[t]]([n[0][0],n[1][0]]),r=e[kN[t]]([n[0][1],n[1][1]]),o=[RN([i[0],r[0]]),RN([i[1],r[1]])];return{values:o,xyMinMax:o}},polygon:function(t,e,n){var i=[[1/0,-1/0],[1/0,-1/0]];return{values:O(n,(function(n){var r=e[kN[t]](n);return i[0][0]=Math.min(i[0][0],r[0]),i[1][0]=Math.min(i[1][0],r[1]),i[0][1]=Math.max(i[0][1],r[0]),i[1][1]=Math.max(i[1][1],r[1]),r})),xyMinMax:i}}};function FN(t,e,n,i){var r=n.getAxis(["x","y"][t]),o=RN(O([0,1],(function(t){return e?r.coordToData(r.toLocalCoord(i[t])):r.toGlobalCoord(r.dataToCoord(i[t]))}))),a=[];return a[t]=o,a[1-t]=[NaN,NaN],{values:o,xyMinMax:a}}var GN={lineX:V(HN,0),lineY:V(HN,1),rect:function(t,e,n){return[[t[0][0]-n[0]*e[0][0],t[0][1]-n[0]*e[0][1]],[t[1][0]-n[1]*e[1][0],t[1][1]-n[1]*e[1][1]]]},polygon:function(t,e,n){return O(t,(function(t,i){return[t[0]-n[0]*e[i][0],t[1]-n[1]*e[i][1]]}))}};function HN(t,e,n,i){return[e[0]-i[t]*n[0],e[1]-i[t]*n[1]]}function WN(t){return t?[t[0][1]-t[0][0],t[1][1]-t[1][0]]:[NaN,NaN]}var YN,XN,UN=P,ZN=mr+"toolbox-dataZoom_",jN=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.render=function(t,e,n,i){this.brushController||(this.brushController=new IA(n.getZr()),this.brushController.on("brush",B(this._onBrush,this)).mount()),function(t,e,n,i,r){var o=n.isZoomActive;i&&"takeGlobalCursor"===i.type&&(o="dataZoomSelect"===i.key&&i.dataZoomSelectActive);n.isZoomActive=o,t.setIconStatus("zoom",o?"emphasis":"normal");var a=new ON(KN(t),e,{include:["grid"]}).makePanelOpts(r,(function(t){return t.xAxisDeclared&&!t.yAxisDeclared?"lineX":!t.xAxisDeclared&&t.yAxisDeclared?"lineY":"rect"}));n.brushController.setPanels(a).enableBrush(!(!o||!a.length)&&{brushType:"auto",brushStyle:t.getModel("brushStyle").getItemStyle()})}(t,e,this,i,n),function(t,e){t.setIconStatus("back",function(t){return DN(t).length}(e)>1?"emphasis":"normal")}(t,e)},e.prototype.onclick=function(t,e,n){qN[n].call(this)},e.prototype.remove=function(t,e){this.brushController.unmount()},e.prototype.dispose=function(t,e){this.brushController.dispose()},e.prototype._onBrush=function(t){var e=t.areas;if(t.isEnd&&e.length){var n={},i=this.ecModel;this.brushController.updateCovers([]),new ON(KN(this.model),i,{include:["grid"]}).matchOutputRanges(e,i,(function(t,e,n){if("cartesian2d"===n.type){var i=t.brushType;"rect"===i?(r("x",n,e[0]),r("y",n,e[1])):r({lineX:"x",lineY:"y"}[i],n,e)}})),function(t,e){var n=DN(t);CN(e,(function(e,i){for(var r=n.length-1;r>=0&&!n[r][i];r--);if(r<0){var o=t.queryComponents({mainType:"dataZoom",subType:"select",id:i})[0];if(o){var a=o.getPercentRange();n[0][i]={dataZoomId:i,start:a[0],end:a[1]}}}})),n.push(e)}(i,n),this._dispatchZoomAction(n)}function r(t,e,r){var o=e.getAxis(t),a=o.model,s=function(t,e,n){var i;return n.eachComponent({mainType:"dataZoom",subType:"select"},(function(n){n.getAxisModel(t,e.componentIndex)&&(i=n)})),i}(t,a,i),l=s.findRepresentativeAxisProxy(a).getMinMaxSpan();null==l.minValueSpan&&null==l.maxValueSpan||(r=tA(0,r.slice(),o.scale.getExtent(),0,l.minValueSpan,l.maxValueSpan)),s&&(n[s.id]={dataZoomId:s.id,startValue:r[0],endValue:r[1]})}},e.prototype._dispatchZoomAction=function(t){var e=[];UN(t,(function(t,n){e.push(w(t))})),e.length&&this.api.dispatchAction({type:"dataZoom",from:this.uid,batch:e})},e.getDefaultOption=function(t){return{show:!0,filterMode:"filter",icon:{zoom:"M0,13.5h26.9 M13.5,26.9V0 M32.1,13.5H58V58H13.5 V32.1",back:"M22,1.4L9.9,13.5l12.3,12.3 M10.3,13.5H54.9v44.6 H10.3v-26"},title:t.getLocale(["toolbox","dataZoom","title"]),brushStyle:{borderWidth:0,color:"rgba(210,219,238,0.2)"}}},e}(lN),qN={zoom:function(){var t=!this.isZoomActive;this.api.dispatchAction({type:"takeGlobalCursor",key:"dataZoomSelect",dataZoomSelectActive:t})},back:function(){this._dispatchZoomAction(function(t){var e=DN(t),n=e[e.length-1];e.length>1&&e.pop();var i={};return CN(n,(function(t,n){for(var r=e.length-1;r>=0;r--)if(t=e[r][n]){i[n]=t;break}})),i}(this.ecModel))}};function KN(t){var e={xAxisIndex:t.get("xAxisIndex",!0),yAxisIndex:t.get("yAxisIndex",!0),xAxisId:t.get("xAxisId",!0),yAxisId:t.get("yAxisId",!0)};return null==e.xAxisIndex&&null==e.xAxisId&&(e.xAxisIndex="all"),null==e.yAxisIndex&&null==e.yAxisId&&(e.yAxisIndex="all"),e}YN="dataZoom",XN=function(t){var e=t.getComponent("toolbox",0);if(e){var n=e.getModel(["feature","dataZoom"]),i=[],r=Pr(t,KN(n));return UN(r.xAxisModels,(function(t){return o(t,"xAxis","xAxisIndex")})),UN(r.yAxisModels,(function(t){return o(t,"yAxis","yAxisIndex")})),i}function o(t,e,r){var o=t.componentIndex,a={type:"select",$fromToolbox:!0,filterMode:n.get("filterMode",!0)||"filter",id:ZN+e+o};a[r]=o,i.push(a)}},rt(null==ip.get(YN)&&XN),ip.set(YN,XN);var $N=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="tooltip",e.dependencies=["axisPointer"],e.defaultOption={zlevel:0,z:60,show:!0,showContent:!0,trigger:"item",triggerOn:"mousemove|click",alwaysShowContent:!1,displayMode:"single",renderMode:"auto",confine:null,showDelay:0,hideDelay:100,transitionDuration:.4,enterable:!1,backgroundColor:"#fff",shadowBlur:10,shadowColor:"rgba(0, 0, 0, .2)",shadowOffsetX:1,shadowOffsetY:2,borderRadius:4,borderWidth:1,padding:null,extraCssText:"",axisPointer:{type:"line",axis:"auto",animation:"auto",animationDurationUpdate:200,animationEasingUpdate:"exponentialOut",crossStyle:{color:"#999",width:1,type:"dashed",textStyle:{}}},textStyle:{color:"#666",fontSize:14}},e}(Nc);function JN(t){var e=t.get("confine");return null!=e?!!e:"richText"===t.get("renderMode")}var QN=["-ms-","-moz-","-o-","-webkit-",""];function tE(t,e,n){var i=[],r=t.get("transitionDuration"),o=t.get("backgroundColor"),s=t.get("shadowBlur"),l=t.get("shadowColor"),u=t.get("shadowOffsetX"),h=t.get("shadowOffsetY"),c=t.getModel("textStyle"),p=Jd(t,"html"),d=u+"px "+h+"px "+s+"px "+l;return i.push("box-shadow:"+d),e&&r&&i.push(function(t,e){var n="cubic-bezier(0.23, 1, 0.32, 1)",i="opacity "+t/2+"s "+n+",visibility "+t/2+"s "+n;return e||(i+=",left "+t+"s "+n+",top "+t+"s "+n),O(QN,(function(t){return t+"transition:"+i})).join(";")}(r,n)),o&&(a.canvasSupported?i.push("background-Color:"+o):(i.push("background-Color:#"+Je(o)),i.push("filter:alpha(opacity=70)"))),P(["width","color","radius"],(function(e){var n="border-"+e,r=cc(n),o=t.get(r);null!=o&&i.push(n+":"+o+("color"===e?"":"px"))})),i.push(function(t){var e=[],n=t.get("fontSize"),i=t.getTextColor();i&&e.push("color:"+i),e.push("font:"+t.getFont()),n&&e.push("line-height:"+Math.round(3*n/2)+"px");var r=t.get("textShadowColor"),o=t.get("textShadowBlur")||0,a=t.get("textShadowOffsetX")||0,s=t.get("textShadowOffsetY")||0;return r&&o&&e.push("text-shadow:"+a+"px "+s+"px "+o+"px "+r),P(["decoration","align"],(function(n){var i=t.get(n);i&&e.push("text-"+n+":"+i)})),e.join(";")}(c)),null!=p&&i.push("padding:"+pc(p).join("px ")+"px"),i.join(";")+";"}function eE(t,e,n,i,r){var o=e&&e.painter;if(n){var a=o&&o.getViewportRoot();a&&function(t,e,n,i,r){Xt(Yt,e,i,r,!0)&&Xt(t,n,Yt[0],Yt[1])}(t,a,document.body,i,r)}else{t[0]=i,t[1]=r;var s=o&&o.getViewportRootOffset();s&&(t[0]+=s.offsetLeft,t[1]+=s.offsetTop)}t[2]=t[0]/e.getWidth(),t[3]=t[1]/e.getHeight()}var nE=function(){function t(t,e,n){if(this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._firstShow=!0,this._longHide=!0,a.wxa)return null;var i=document.createElement("div");i.domBelongToZr=!0,this.el=i;var r=this._zr=e.getZr(),o=this._appendToBody=n&&n.appendToBody;eE(this._styleCoord,r,o,e.getWidth()/2,e.getHeight()/2),o?document.body.appendChild(i):t.appendChild(i),this._container=t;var s=this;i.onmouseenter=function(){s._enterable&&(clearTimeout(s._hideTimeout),s._show=!0),s._inContent=!0},i.onmousemove=function(t){if(t=t||window.event,!s._enterable){var e=r.handler;Qt(r.painter.getViewportRoot(),t,!0),e.dispatch("mousemove",t)}},i.onmouseleave=function(){s._inContent=!1,s._enterable&&s._show&&s.hideLater(s._hideDelay)}}return t.prototype.update=function(t){var e=this._container,n=e.currentStyle||document.defaultView.getComputedStyle(e),i=e.style;"absolute"!==i.position&&"absolute"!==n.position&&(i.position="relative"),t.get("alwaysShowContent")&&this._moveIfResized(),this.el.className=t.get("className")||""},t.prototype.show=function(t,e){clearTimeout(this._hideTimeout),clearTimeout(this._longHideTimeout);var n=this.el,i=this._styleCoord,r=n.offsetHeight/2;e=bc(e),n.style.cssText="position:absolute;display:block;border-style:solid;white-space:nowrap;z-index:9999999;"+tE(t,!this._firstShow,this._longHide)+";left:"+i[0]+"px;top:"+(i[1]-r)+"px;border-color: "+e+";"+(t.get("extraCssText")||""),n.style.display=n.innerHTML?"block":"none",n.style.pointerEvents=this._enterable?"auto":"none",this._show=!0,this._firstShow=!1,this._longHide=!1},t.prototype.setContent=function(t,e,n,i,r){if(null!=t){var o=this.el;if(H(r)&&"item"===n.get("trigger")&&!JN(n)&&(t+=function(t,e,n){if(!H(n)||"inside"===n)return"";e=bc(e);var i,r="left"===(i=n)?"right":"right"===i?"left":"top"===i?"bottom":"top",o="",a="";return A(["left","right"],r)>-1?(o=r+":-6px;top:50%;",a="translateY(-50%) rotate("+("left"===r?-225:-45)+"deg)"):(o=r+":-6px;left:50%;",a="translateX(-50%) rotate("+("top"===r?225:45)+"deg)"),'<div style="'+["position:absolute;width:10px;height:10px;",""+o+(a=O(QN,(function(t){return t+"transform:"+a})).join(";"))+";","border-bottom: "+e+" solid 1px;","border-right: "+e+" solid 1px;","background-color: "+t+";","box-shadow: 8px 8px 16px -3px #000;"].join("")+'"></div>'}(n.get("backgroundColor"),i,r)),H(t))o.innerHTML=t;else if(t){o.innerHTML="",F(t)||(t=[t]);for(var a=0;a<t.length;a++)j(t[a])&&t[a].parentNode!==o&&o.appendChild(t[a])}}},t.prototype.setEnterable=function(t){this._enterable=t},t.prototype.getSize=function(){var t=this.el;return[t.clientWidth,t.clientHeight]},t.prototype.moveTo=function(t,e){var n=this._styleCoord;if(eE(n,this._zr,this._appendToBody,t,e),null!=n[0]&&null!=n[1]){var i=this.el.style;i.left=n[0].toFixed(0)+"px",i.top=n[1].toFixed(0)+"px"}},t.prototype._moveIfResized=function(){var t=this._styleCoord[2],e=this._styleCoord[3];this.moveTo(t*this._zr.getWidth(),e*this._zr.getHeight())},t.prototype.hide=function(){var t=this;this.el.style.visibility="hidden",this.el.style.opacity="0",this._show=!1,this._longHideTimeout=setTimeout((function(){return t._longHide=!0}),500)},t.prototype.hideLater=function(t){!this._show||this._inContent&&this._enterable||(t?(this._hideDelay=t,this._show=!1,this._hideTimeout=setTimeout(B(this.hide,this),t)):this.hide())},t.prototype.isShow=function(){return this._show},t.prototype.dispose=function(){this.el.parentNode.removeChild(this.el)},t.prototype.getOuterSize=function(){var t=this.el.clientWidth,e=this.el.clientHeight;if(document.defaultView&&document.defaultView.getComputedStyle){var n=document.defaultView.getComputedStyle(this.el);n&&(t+=parseInt(n.borderLeftWidth,10)+parseInt(n.borderRightWidth,10),e+=parseInt(n.borderTopWidth,10)+parseInt(n.borderBottomWidth,10))}return{width:t,height:e}},t}(),iE=function(){function t(t){this._show=!1,this._styleCoord=[0,0,0,0],this._enterable=!0,this._zr=t.getZr(),aE(this._styleCoord,this._zr,t.getWidth()/2,t.getHeight()/2)}return t.prototype.update=function(t){t.get("alwaysShowContent")&&this._moveIfResized()},t.prototype.show=function(){this._hideTimeout&&clearTimeout(this._hideTimeout),this.el.show(),this._show=!0},t.prototype.setContent=function(t,e,n,i,r){X(t)&&yr(""),this.el&&this._zr.remove(this.el);var o=n.getModel("textStyle");this.el=new ls({style:{rich:e.richTextStyles,text:t,lineHeight:22,backgroundColor:n.get("backgroundColor"),borderRadius:n.get("borderRadius"),borderWidth:1,borderColor:i,shadowColor:n.get("shadowColor"),shadowBlur:n.get("shadowBlur"),shadowOffsetX:n.get("shadowOffsetX"),shadowOffsetY:n.get("shadowOffsetY"),textShadowColor:o.get("textShadowColor"),textShadowBlur:o.get("textShadowBlur")||0,textShadowOffsetX:o.get("textShadowOffsetX")||0,textShadowOffsetY:o.get("textShadowOffsetY")||0,fill:n.get(["textStyle","color"]),padding:Jd(n,"richText"),verticalAlign:"top",align:"left"},z:n.get("z")}),this._zr.add(this.el);var a=this;this.el.on("mouseover",(function(){a._enterable&&(clearTimeout(a._hideTimeout),a._show=!0),a._inContent=!0})),this.el.on("mouseout",(function(){a._enterable&&a._show&&a.hideLater(a._hideDelay),a._inContent=!1}))},t.prototype.setEnterable=function(t){this._enterable=t},t.prototype.getSize=function(){var t=this.el,e=this.el.getBoundingRect(),n=oE(t.style);return[e.width+n.left+n.right,e.height+n.top+n.bottom]},t.prototype.moveTo=function(t,e){var n=this.el;if(n){var i=this._styleCoord;aE(i,this._zr,t,e),t=i[0],e=i[1];var r=n.style,o=rE(r.borderWidth||0),a=oE(r);n.x=t+o+a.left,n.y=e+o+a.top,n.markRedraw()}},t.prototype._moveIfResized=function(){var t=this._styleCoord[2],e=this._styleCoord[3];this.moveTo(t*this._zr.getWidth(),e*this._zr.getHeight())},t.prototype.hide=function(){this.el&&this.el.hide(),this._show=!1},t.prototype.hideLater=function(t){!this._show||this._inContent&&this._enterable||(t?(this._hideDelay=t,this._show=!1,this._hideTimeout=setTimeout(B(this.hide,this),t)):this.hide())},t.prototype.isShow=function(){return this._show},t.prototype.getOuterSize=function(){var t=this.getSize();return{width:t[0],height:t[1]}},t.prototype.dispose=function(){this._zr.remove(this.el)},t}();function rE(t){return Math.max(0,t)}function oE(t){var e=rE(t.shadowBlur||0),n=rE(t.shadowOffsetX||0),i=rE(t.shadowOffsetY||0);return{left:rE(e-n),right:rE(e+n),top:rE(e-i),bottom:rE(e+i)}}function aE(t,e,n,i){t[0]=n,t[1]=i,t[2]=t[0]/e.getWidth(),t[3]=t[1]/e.getHeight()}var sE=B,lE=P,uE=Zi,hE=new os({shape:{x:-1,y:-1,width:2,height:2}}),cE=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(t,e){if(!a.node){var n,i=t.getComponent("tooltip"),r=i.get("renderMode");this._renderMode="auto"===(n=r)?a.domSupported?"html":"richText":n||"html",this._tooltipContent="richText"===this._renderMode?new iE(e):new nE(e.getDom(),e,{appendToBody:i.get("appendToBody",!0)})}},e.prototype.render=function(t,e,n){if(!a.node){this.group.removeAll(),this._tooltipModel=t,this._ecModel=e,this._api=n,this._alwaysShowContent=t.get("alwaysShowContent");var i=this._tooltipContent;i.update(t),i.setEnterable(t.get("enterable")),this._initGlobalListener(),this._keepShow()}},e.prototype._initGlobalListener=function(){var t=this._tooltipModel.get("triggerOn");gO("itemTooltip",this._api,sE((function(e,n,i){"none"!==t&&(t.indexOf(e)>=0?this._tryShow(n,i):"leave"===e&&this._hide(i))}),this))},e.prototype._keepShow=function(){var t=this._tooltipModel,e=this._ecModel,n=this._api;if(null!=this._lastX&&null!=this._lastY&&"none"!==t.get("triggerOn")){var i=this;clearTimeout(this._refreshUpdateTimeout),this._refreshUpdateTimeout=setTimeout((function(){!n.isDisposed()&&i.manuallyShowTip(t,e,n,{x:i._lastX,y:i._lastY,dataByCoordSys:i._lastDataByCoordSys})}))}},e.prototype.manuallyShowTip=function(t,e,n,i){if(i.from!==this.uid&&!a.node){var r=dE(i,n);this._ticket="";var o=i.dataByCoordSys;if(i.tooltip&&null!=i.x&&null!=i.y){var s=hE;s.x=i.x,s.y=i.y,s.update(),s.tooltip=i.tooltip,this._tryShow({offsetX:i.x,offsetY:i.y,target:s},r)}else if(o)this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,dataByCoordSys:o,tooltipOption:i.tooltipOption},r);else if(null!=i.seriesIndex){if(this._manuallyAxisShowTip(t,e,n,i))return;var l=xO(i,e),u=l.point[0],h=l.point[1];null!=u&&null!=h&&this._tryShow({offsetX:u,offsetY:h,position:i.position,target:l.el},r)}else null!=i.x&&null!=i.y&&(n.dispatchAction({type:"updateAxisPointer",x:i.x,y:i.y}),this._tryShow({offsetX:i.x,offsetY:i.y,position:i.position,target:n.getZr().findHover(i.x,i.y).target},r))}},e.prototype.manuallyHideTip=function(t,e,n,i){var r=this._tooltipContent;!this._alwaysShowContent&&this._tooltipModel&&r.hideLater(this._tooltipModel.get("hideDelay")),this._lastX=this._lastY=this._lastDataByCoordSys=null,i.from!==this.uid&&this._hide(dE(i,n))},e.prototype._manuallyAxisShowTip=function(t,e,n,i){var r=i.seriesIndex,o=i.dataIndex,a=e.getComponent("axisPointer").coordSysAxesInfo;if(null!=r&&null!=o&&null!=a){var s=e.getSeriesByIndex(r);if(s)if("axis"===pE([s.getData().getItemModel(o),s,(s.coordinateSystem||{}).model,t]).get("trigger"))return n.dispatchAction({type:"updateAxisPointer",seriesIndex:r,dataIndex:o,position:i.position}),!0}},e.prototype._tryShow=function(t,e){var n=t.target;if(this._tooltipModel){this._lastX=t.offsetX,this._lastY=t.offsetY;var i=t.dataByCoordSys;i&&i.length?this._showAxisTooltip(i,t):n&&Jg(n,(function(t){return null!=ys(t).dataIndex}),!0)?(this._lastDataByCoordSys=null,this._showSeriesItemTooltip(t,n,e)):n&&n.tooltip?(this._lastDataByCoordSys=null,this._showComponentItemTooltip(t,n,e)):(this._lastDataByCoordSys=null,this._hide(e))}},e.prototype._showOrMove=function(t,e){var n=t.get("showDelay");e=B(e,this),clearTimeout(this._showTimout),n>0?this._showTimout=setTimeout(e,n):e()},e.prototype._showAxisTooltip=function(t,e){var n=this._ecModel,i=this._tooltipModel,r=[e.offsetX,e.offsetY],o=pE([e.tooltipOption,i]),a=this._renderMode,s=[],l=Yd("section",{blocks:[],noHeader:!0}),u=[],h=new Qd;lE(t,(function(t){lE(t.dataByAxis,(function(t){var e=n.getComponent(t.axisDim+"Axis",t.axisIndex),i=t.value;if(e&&null!=i){var r=nO(i,e.axis,n,t.seriesDataIndices,t.valueLabelOpt),o=Yd("section",{header:r,noHeader:!ot(r),sortBlocks:!0,blocks:[]});l.blocks.push(o),P(t.seriesDataIndices,(function(l){var c=n.getSeriesByIndex(l.seriesIndex),p=l.dataIndexInside,d=c.getDataParams(p);d.axisDim=t.axisDim,d.axisIndex=t.axisIndex,d.axisType=t.axisType,d.axisId=t.axisId,d.axisValue=W_(e.axis,{value:i}),d.axisValueLabel=r,d.marker=h.makeTooltipMarker("item",bc(d.color),a);var f=vd(c.formatTooltip(p,!0,null));f.markupFragment&&o.blocks.push(f.markupFragment),f.markupText&&u.push(f.markupText),s.push(d)}))}}))})),l.blocks.reverse(),u.reverse();var c=e.position,p=o.get("order"),d=Zd(l,h,a,p,n.get("useUTC"),o.get("textStyle"));d&&u.unshift(d);var f="richText"===a?"\n\n":"<br/>",g=u.join(f);this._showOrMove(o,(function(){this._updateContentNotChangedOnAxis(t)?this._updatePosition(o,c,r[0],r[1],this._tooltipContent,s):this._showTooltipContent(o,g,s,Math.random()+"",r[0],r[1],c,null,h)}))},e.prototype._showSeriesItemTooltip=function(t,e,n){var i=Jg(e,(function(t){return null!=ys(t).dataIndex}),!0),r=this._ecModel,o=ys(i),a=o.seriesIndex,s=r.getSeriesByIndex(a),l=o.dataModel||s,u=o.dataIndex,h=o.dataType,c=l.getData(h),p=this._renderMode,d=pE([c.getItemModel(u),l,s&&(s.coordinateSystem||{}).model,this._tooltipModel]),f=d.get("trigger");if(null==f||"item"===f){var g=l.getDataParams(u,h),y=new Qd;g.marker=y.makeTooltipMarker("item",bc(g.color),p);var v=vd(l.formatTooltip(u,!1,h)),m=d.get("order"),_=v.markupFragment?Zd(v.markupFragment,y,p,m,r.get("useUTC"),d.get("textStyle")):v.markupText,x="item_"+l.name+"_"+u;this._showOrMove(d,(function(){this._showTooltipContent(d,_,g,x,t.offsetX,t.offsetY,t.position,t.target,y)})),n({type:"showTip",dataIndexInside:u,dataIndex:c.getRawIndex(u),seriesIndex:a,from:this.uid})}},e.prototype._showComponentItemTooltip=function(t,e,n){var i=e.tooltip;if(H(i)){i={content:i,formatter:i}}var r=new Sh(i,this._tooltipModel,this._ecModel),o=r.get("content"),a=Math.random()+"",s=new Qd;this._showOrMove(r,(function(){this._showTooltipContent(r,o,r.get("formatterParams")||{},a,t.offsetX,t.offsetY,t.position,e,s)})),n({type:"showTip",from:this.uid})},e.prototype._showTooltipContent=function(t,e,n,i,r,o,a,s,l){if(this._ticket="",t.get("showContent")&&t.get("show")){var u=this._tooltipContent,h=t.get("formatter");a=a||t.get("position");var c=e,p=this._getNearestPoint([r,o],n,t.get("trigger"),t.get("borderColor"));if(h&&H(h)){var d=t.ecModel.get("useUTC"),f=F(n)?n[0]:n;c=h,f&&f.axisType&&f.axisType.indexOf("time")>=0&&(c=Zh(f.axisValue,c,d)),c=_c(c,n,!0)}else if(G(h)){var g=sE((function(e,i){e===this._ticket&&(u.setContent(i,l,t,p.color,a),this._updatePosition(t,a,r,o,u,n,s))}),this);this._ticket=i,c=h(n,i,g)}u.setContent(c,l,t,p.color,a),u.show(t,p.color),this._updatePosition(t,a,r,o,u,n,s)}},e.prototype._getNearestPoint=function(t,e,n,i){return"axis"===n||F(e)?{color:i||("html"===this._renderMode?"#fff":"none")}:F(e)?void 0:{color:i||e.color||e.borderColor}},e.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=r.getSize(),h=t.get("align"),c=t.get("verticalAlign"),p=a&&a.getBoundingRect().clone();if(a&&p.applyTransform(a.transform),G(e)&&(e=e([n,i],o,r.el,p,{viewSize:[s,l],contentSize:u.slice()})),F(e))n=uE(e[0],s),i=uE(e[1],l);else if(X(e)){var d=e;d.width=u[0],d.height=u[1];var f=Ac(d,{width:s,height:l});n=f.x,i=f.y,h=null,c=null}else if(H(e)&&a){var g=function(t,e,n){var i=n[0],r=n[1],o=10,a=5,s=0,l=0,u=e.width,h=e.height;switch(t){case"inside":s=e.x+u/2-i/2,l=e.y+h/2-r/2;break;case"top":s=e.x+u/2-i/2,l=e.y-r-o;break;case"bottom":s=e.x+u/2-i/2,l=e.y+h+o;break;case"left":s=e.x-i-o-a,l=e.y+h/2-r/2;break;case"right":s=e.x+u+o+a,l=e.y+h/2-r/2}return[s,l]}(e,p,u);n=g[0],i=g[1]}else{g=function(t,e,n,i,r,o,a){var s=n.getOuterSize(),l=s.width,u=s.height;null!=o&&(t+l+o+2>i?t-=l+o:t+=o);null!=a&&(e+u+a>r?e-=u+a:e+=a);return[t,e]}(n,i,r,s,l,h?null:20,c?null:20);n=g[0],i=g[1]}if(h&&(n-=fE(h)?u[0]/2:"right"===h?u[0]:0),c&&(i-=fE(c)?u[1]/2:"bottom"===c?u[1]:0),JN(t)){g=function(t,e,n,i,r){var o=n.getOuterSize(),a=o.width,s=o.height;return t=Math.min(t+a,i)-a,e=Math.min(e+s,r)-s,t=Math.max(t,0),e=Math.max(e,0),[t,e]}(n,i,r,s,l);n=g[0],i=g[1]}r.moveTo(n,i)},e.prototype._updateContentNotChangedOnAxis=function(t){var e=this._lastDataByCoordSys,n=!!e&&e.length===t.length;return n&&lE(e,(function(e,i){var r=e.dataByAxis||[],o=(t[i]||{}).dataByAxis||[];(n=n&&r.length===o.length)&&lE(r,(function(t,e){var i=o[e]||{},r=t.seriesDataIndices||[],a=i.seriesDataIndices||[];(n=n&&t.value===i.value&&t.axisType===i.axisType&&t.axisId===i.axisId&&r.length===a.length)&&lE(r,(function(t,e){var i=a[e];n=n&&t.seriesIndex===i.seriesIndex&&t.dataIndex===i.dataIndex}))}))})),this._lastDataByCoordSys=t,!!n},e.prototype._hide=function(t){this._lastDataByCoordSys=null,t({type:"hideTip",from:this.uid})},e.prototype.dispose=function(t,e){a.node||(this._tooltipContent.dispose(),mO("itemTooltip",e))},e.type="tooltip",e}(pf);function pE(t){for(var e=t.pop();t.length;){var n=t.pop();n&&(n instanceof Sh&&(n=n.get("tooltip",!0)),H(n)&&(n={formatter:n}),e=new Sh(n,e,e.ecModel))}return e}function dE(t,e){return t.dispatchAction||B(e.dispatchAction,e)}function fE(t){return"center"===t||"middle"===t}var gE=["rect","polygon","keep","clear"];function yE(t,e){var n=_r(t?t.brush:[]);if(n.length){var i=[];P(n,(function(t){var e=t.hasOwnProperty("toolbox")?t.toolbox:[];e instanceof Array&&(i=i.concat(e))}));var r=t&&t.toolbox;F(r)&&(r=r[0]),r||(r={feature:{}},t.toolbox=[r]);var o=r.feature||(r.feature={}),a=o.brush||(o.brush={}),s=a.type||(a.type=[]);s.push.apply(s,i),function(t){var e={};P(t,(function(t){e[t]=1})),t.length=0,P(e,(function(e,n){t.push(n)}))}(s),e&&!s.length&&s.push.apply(s,gE)}}var vE=P;function mE(t){if(t)for(var e in t)if(t.hasOwnProperty(e))return!0}function _E(t,e,n){var i={};return vE(e,(function(e){var r,o=i[e]=((r=function(){}).prototype.__hidden=r.prototype,new r);vE(t[e],(function(t,i){if(jI.isValidType(i)){var r={type:i,visual:t};n&&n(r,e),o[i]=new jI(r),"opacity"===i&&((r=w(r)).type="colorAlpha",o.__hidden.__alphaForOpacity=new jI(r))}}))})),i}function xE(t,e,n){var i;P(n,(function(t){e.hasOwnProperty(t)&&mE(e[t])&&(i=!0)})),i&&P(n,(function(n){e.hasOwnProperty(n)&&mE(e[n])?t[n]=w(e[n]):delete t[n]}))}var bE={lineX:wE(0),lineY:wE(1),rect:{point:function(t,e,n){return t&&n.boundingRect.contain(t[0],t[1])},rect:function(t,e,n){return t&&n.boundingRect.intersect(t)}},polygon:{point:function(t,e,n){return t&&n.boundingRect.contain(t[0],t[1])&&J_(n.range,t[0],t[1])},rect:function(t,e,n){var i=n.range;if(!t||i.length<=1)return!1;var r=t.x,o=t.y,a=t.width,s=t.height,l=i[0];return!!(J_(i,r,o)||J_(i,r+a,o)||J_(i,r,o+s)||J_(i,r+a,o+s)||Rn.create(t).contain(l[0],l[1])||Zu(r,o,r+a,o,i)||Zu(r,o,r,o+s,i)||Zu(r+a,o,r+a,o+s,i)||Zu(r,o+s,r+a,o+s,i))||void 0}}};function wE(t){var e=["x","y"],n=["width","height"];return{point:function(e,n,i){if(e){var r=i.range;return SE(e[t],r)}},rect:function(i,r,o){if(i){var a=o.range,s=[i[e[t]],i[e[t]]+i[n[t]]];return s[1]<s[0]&&s.reverse(),SE(s[0],a)||SE(s[1],a)||SE(a[0],s)||SE(a[1],s)}}}}function SE(t,e){return e[0]<=t&&t<=e[1]}var ME=["inBrush","outOfBrush"],IE="__ecBrushSelect",TE="__ecInBrushSelectEvent";function CE(t){t.eachComponent({mainType:"brush"},(function(e){(e.brushTargetManager=new ON(e.option,t)).setInputRanges(e.areas,t)}))}function AE(t,e,n){var i,r,o=[];t.eachComponent({mainType:"brush"},(function(t){n&&"takeGlobalCursor"===n.type&&t.setBrushOption("brush"===n.key?n.brushOption:{brushType:!1})})),CE(t),t.eachComponent({mainType:"brush"},(function(e,n){var a={brushId:e.id,brushIndex:n,brushName:e.name,areas:w(e.areas),selected:[]};o.push(a);var s=e.option,l=s.brushLink,u=[],h=[],c=[],p=!1;n||(i=s.throttleType,r=s.throttleDelay);var d=O(e.areas,(function(t){var e=kE[t.brushType],n=T({boundingRect:e?e(t):void 0},t);return n.selectors=function(t){var e=t.brushType,n={point:function(i){return bE[e].point(i,n,t)},rect:function(i){return bE[e].rect(i,n,t)}};return n}(n),n})),f=_E(e.option,ME,(function(t){t.mappingMethod="fixed"}));function g(t){return"all"===l||!!u[t]}function y(t){return!!t.length}F(l)&&P(l,(function(t){u[t]=1})),t.eachSeries((function(n,i){var r=c[i]=[];"parallel"===n.subType?function(t,e){var n=t.coordinateSystem;p=p||n.hasAxisBrushed(),g(e)&&n.eachActiveState(t.getData(),(function(t,e){"active"===t&&(h[e]=1)}))}(n,i):function(n,i,r){if(!n.brushSelector||function(t,e){var n=t.option.seriesIndex;return null!=n&&"all"!==n&&(F(n)?A(n,e)<0:e!==n)}(e,i))return;if(P(d,(function(i){e.brushTargetManager.controlSeries(i,n,t)&&r.push(i),p=p||y(r)})),g(i)&&y(r)){var o=n.getData();o.each((function(t){LE(n,r,o,t)&&(h[t]=1)}))}}(n,i,r)})),t.eachSeries((function(t,e){var n={seriesId:t.id,seriesIndex:e,seriesName:t.name,dataIndex:[]};a.selected.push(n);var i=c[e],r=t.getData(),o=g(e)?function(t){return h[t]?(n.dataIndex.push(r.getRawIndex(t)),"inBrush"):"outOfBrush"}:function(e){return LE(t,i,r,e)?(n.dataIndex.push(r.getRawIndex(e)),"inBrush"):"outOfBrush"};(g(e)?p:y(i))&&function(t,e,n,i,r,o){var a,s={};function l(t){return pg(n,a,t)}function u(t,e){fg(n,a,t,e)}function h(t,h){a=null==o?t:h;var c=n.getRawDataItem(a);if(!c||!1!==c.visualMap)for(var p=i.call(r,t),d=e[p],f=s[p],g=0,y=f.length;g<y;g++){var v=f[g];d[v]&&d[v].applyVisual(t,l,u)}}P(t,(function(t){var n=jI.prepareVisualTypes(e[t]);s[t]=n})),null==o?n.each(h):n.each([o],h)}(ME,f,r,o)}))})),function(t,e,n,i,r){if(!r)return;var o=t.getZr();if(o[TE])return;o.__ecBrushSelect||(o.__ecBrushSelect=DE);Tf(o,IE,n,e)(t,i)}(e,i,r,o,n)}function DE(t,e){if(!t.isDisposed()){var n=t.getZr();n[TE]=!0,t.dispatchAction({type:"brushSelect",batch:e}),n[TE]=!1}}function LE(t,e,n,i){for(var r=0,o=e.length;r<o;r++){var a=e[r];if(t.brushSelector(i,n,a.selectors,a))return!0}}var kE={rect:function(t){return PE(t.range)},polygon:function(t){for(var e,n=t.range,i=0,r=n.length;i<r;i++){e=e||[[1/0,-1/0],[1/0,-1/0]];var o=n[i];o[0]<e[0][0]&&(e[0][0]=o[0]),o[0]>e[0][1]&&(e[0][1]=o[0]),o[1]<e[1][0]&&(e[1][0]=o[1]),o[1]>e[1][1]&&(e[1][1]=o[1])}return e&&PE(e)}};function PE(t){return new Rn(t[0][0],t[1][0],t[0][1]-t[0][0],t[1][1]-t[1][0])}var OE=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(t,e){this.ecModel=t,this.api=e,this.model,(this._brushController=new IA(e.getZr())).on("brush",B(this._onBrush,this)).mount()},e.prototype.render=function(t,e,n,i){this.model=t,this._updateController(t,e,n,i)},e.prototype.updateTransform=function(t,e,n,i){CE(e),this._updateController(t,e,n,i)},e.prototype.updateVisual=function(t,e,n,i){this.updateTransform(t,e,n,i)},e.prototype.updateView=function(t,e,n,i){this._updateController(t,e,n,i)},e.prototype._updateController=function(t,e,n,i){(!i||i.$from!==t.id)&&this._brushController.setPanels(t.brushTargetManager.makePanelOpts(n)).enableBrush(t.brushOption).updateCovers(t.areas.slice())},e.prototype.dispose=function(){this._brushController.dispose()},e.prototype._onBrush=function(t){var e=this.model.id,n=this.model.brushTargetManager.setOutputRanges(t.areas,this.ecModel);(!t.isEnd||t.removeOnClick)&&this.api.dispatchAction({type:"brush",brushId:e,areas:w(n),$from:e}),t.isEnd&&this.api.dispatchAction({type:"brushEnd",brushId:e,areas:w(n),$from:e})},e.type="brush",e}(pf),RE=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.areas=[],n.brushOption={},n}return n(e,t),e.prototype.optionUpdated=function(t,e){var n=this.option;!e&&xE(n,t,["inBrush","outOfBrush"]);var i=n.inBrush=n.inBrush||{};n.outOfBrush=n.outOfBrush||{color:"#ddd"},i.hasOwnProperty("liftZ")||(i.liftZ=5)},e.prototype.setAreas=function(t){t&&(this.areas=O(t,(function(t){return NE(this.option,t)}),this))},e.prototype.setBrushOption=function(t){this.brushOption=NE(this.option,t),this.brushType=this.brushOption.brushType},e.type="brush",e.dependencies=["geo","grid","xAxis","yAxis","parallel","series"],e.defaultOption={seriesIndex:"all",brushType:"rect",brushMode:"single",transformable:!0,brushStyle:{borderWidth:1,color:"rgba(210,219,238,0.3)",borderColor:"#D2DBEE"},throttleType:"fixRate",throttleDelay:0,removeOnClick:!0,z:1e4},e}(Nc);function NE(t,e){return S({brushType:t.brushType,brushMode:t.brushMode,transformable:t.transformable,brushStyle:new Sh(t.brushStyle).getItemStyle(),removeOnClick:t.removeOnClick,z:t.z},e,!0)}var EE=["rect","polygon","lineX","lineY","keep","clear"],zE=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.render=function(t,e,n){var i,r,o;e.eachComponent({mainType:"brush"},(function(t){i=t.brushType,r=t.brushOption.brushMode||"single",o=o||!!t.areas.length})),this._brushType=i,this._brushMode=r,P(t.get("type",!0),(function(e){t.setIconStatus(e,("keep"===e?"multiple"===r:"clear"===e?o:e===i)?"emphasis":"normal")}))},e.prototype.updateView=function(t,e,n){this.render(t,e,n)},e.prototype.getIcons=function(){var t=this.model,e=t.get("icon",!0),n={};return P(t.get("type",!0),(function(t){e[t]&&(n[t]=e[t])})),n},e.prototype.onclick=function(t,e,n){var i=this._brushType,r=this._brushMode;"clear"===n?(e.dispatchAction({type:"axisAreaSelect",intervals:[]}),e.dispatchAction({type:"brush",command:"clear",areas:[]})):e.dispatchAction({type:"takeGlobalCursor",key:"brush",brushOption:{brushType:"keep"===n?i:i!==n&&n,brushMode:"keep"===n?"multiple"===r?"single":"multiple":r}})},e.getDefaultOption=function(t){return{show:!0,type:EE.slice(),icon:{rect:"M7.3,34.7 M0.4,10V-0.2h9.8 M89.6,10V-0.2h-9.8 M0.4,60v10.2h9.8 M89.6,60v10.2h-9.8 M12.3,22.4V10.5h13.1 M33.6,10.5h7.8 M49.1,10.5h7.8 M77.5,22.4V10.5h-13 M12.3,31.1v8.2 M77.7,31.1v8.2 M12.3,47.6v11.9h13.1 M33.6,59.5h7.6 M49.1,59.5 h7.7 M77.5,47.6v11.9h-13",polygon:"M55.2,34.9c1.7,0,3.1,1.4,3.1,3.1s-1.4,3.1-3.1,3.1 s-3.1-1.4-3.1-3.1S53.5,34.9,55.2,34.9z M50.4,51c1.7,0,3.1,1.4,3.1,3.1c0,1.7-1.4,3.1-3.1,3.1c-1.7,0-3.1-1.4-3.1-3.1 C47.3,52.4,48.7,51,50.4,51z M55.6,37.1l1.5-7.8 M60.1,13.5l1.6-8.7l-7.8,4 M59,19l-1,5.3 M24,16.1l6.4,4.9l6.4-3.3 M48.5,11.6 l-5.9,3.1 M19.1,12.8L9.7,5.1l1.1,7.7 M13.4,29.8l1,7.3l6.6,1.6 M11.6,18.4l1,6.1 M32.8,41.9 M26.6,40.4 M27.3,40.2l6.1,1.6 M49.9,52.1l-5.6-7.6l-4.9-1.2",lineX:"M15.2,30 M19.7,15.6V1.9H29 M34.8,1.9H40.4 M55.3,15.6V1.9H45.9 M19.7,44.4V58.1H29 M34.8,58.1H40.4 M55.3,44.4 V58.1H45.9 M12.5,20.3l-9.4,9.6l9.6,9.8 M3.1,29.9h16.5 M62.5,20.3l9.4,9.6L62.3,39.7 M71.9,29.9H55.4",lineY:"M38.8,7.7 M52.7,12h13.2v9 M65.9,26.6V32 M52.7,46.3h13.2v-9 M24.9,12H11.8v9 M11.8,26.6V32 M24.9,46.3H11.8v-9 M48.2,5.1l-9.3-9l-9.4,9.2 M38.9-3.9V12 M48.2,53.3l-9.3,9l-9.4-9.2 M38.9,62.3V46.4",keep:"M4,10.5V1h10.3 M20.7,1h6.1 M33,1h6.1 M55.4,10.5V1H45.2 M4,17.3v6.6 M55.6,17.3v6.6 M4,30.5V40h10.3 M20.7,40 h6.1 M33,40h6.1 M55.4,30.5V40H45.2 M21,18.9h62.9v48.6H21V18.9z",clear:"M22,14.7l30.9,31 M52.9,14.7L22,45.7 M4.7,16.8V4.2h13.1 M26,4.2h7.8 M41.6,4.2h7.8 M70.3,16.8V4.2H57.2 M4.7,25.9v8.6 M70.3,25.9v8.6 M4.7,43.2v12.6h13.1 M26,55.8h7.8 M41.6,55.8h7.8 M70.3,43.2v12.6H57.2"},title:t.getLocale(["toolbox","brush","title"])}},e}(lN);var BE=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.layoutMode={type:"box",ignoreSize:!0},n}return n(e,t),e.type="title",e.defaultOption={zlevel:0,z:6,show:!0,text:"",target:"blank",subtext:"",subtarget:"blank",left:0,top:0,backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,padding:5,itemGap:10,textStyle:{fontSize:18,fontWeight:"bold",color:"#464646"},subtextStyle:{fontSize:12,color:"#6E7079"}},e}(Nc),VE=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(t,e,n){if(this.group.removeAll(),t.get("show")){var i=this.group,r=t.getModel("textStyle"),o=t.getModel("subtextStyle"),a=t.get("textAlign"),s=tt(t.get("textBaseline"),t.get("textVerticalAlign")),l=new ls({style:nh(r,{text:t.get("text"),fill:r.getTextColor()},{disableBox:!0}),z2:10}),u=l.getBoundingRect(),h=t.get("subtext"),c=new ls({style:nh(o,{text:h,fill:o.getTextColor(),y:u.height+t.get("itemGap"),verticalAlign:"top"},{disableBox:!0}),z2:10}),p=t.get("link"),d=t.get("sublink"),f=t.get("triggerEvent",!0);l.silent=!p&&!f,c.silent=!d&&!f,p&&l.on("click",(function(){wc(p,"_"+t.get("target"))})),d&&c.on("click",(function(){wc(d,"_"+t.get("subtarget"))})),ys(l).eventData=ys(c).eventData=f?{componentType:"title",componentIndex:t.componentIndex}:null,i.add(l),h&&i.add(c);var g=i.getBoundingRect(),y=t.getBoxLayoutParams();y.width=g.width,y.height=g.height;var v=Ac(y,{width:n.getWidth(),height:n.getHeight()},t.get("padding"));a||("middle"===(a=t.get("left")||t.get("right"))&&(a="center"),"right"===a?v.x+=v.width:"center"===a&&(v.x+=v.width/2)),s||("center"===(s=t.get("top")||t.get("bottom"))&&(s="middle"),"bottom"===s?v.y+=v.height:"middle"===s&&(v.y+=v.height/2),s=s||"top"),i.x=v.x,i.y=v.y,i.markRedraw();var m={align:a,verticalAlign:s};l.setStyle(m),c.setStyle(m),g=i.getBoundingRect();var _=v.margin,x=t.getItemStyle(["color","opacity"]);x.fill=t.get("backgroundColor");var b=new os({shape:{x:g.x-_[3],y:g.y-_[0],width:g.width+_[1]+_[3],height:g.height+_[0]+_[2],r:t.get("borderRadius")},style:x,subPixelOptimize:!0,silent:!0});i.add(b)}},e.type="title",e}(pf);var FE=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.layoutMode="box",n}return n(e,t),e.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n),this._initData()},e.prototype.mergeOption=function(e){t.prototype.mergeOption.apply(this,arguments),this._initData()},e.prototype.setCurrentIndex=function(t){null==t&&(t=this.option.currentIndex);var e=this._data.count();this.option.loop?t=(t%e+e)%e:(t>=e&&(t=e-1),t<0&&(t=0)),this.option.currentIndex=t},e.prototype.getCurrentIndex=function(){return this.option.currentIndex},e.prototype.isIndexMax=function(){return this.getCurrentIndex()>=this._data.count()-1},e.prototype.setPlayState=function(t){this.option.autoPlay=!!t},e.prototype.getPlayState=function(){return!!this.option.autoPlay},e.prototype._initData=function(){var t,e=this.option,n=e.data||[],i=e.axisType,r=this._names=[];"category"===i?(t=[],P(n,(function(e,n){var i,o=Tr(wr(e),"");X(e)?(i=w(e)).value=n:i=n,t.push(i),r.push(o)}))):t=n;var o={category:"ordinal",time:"time",value:"number"}[i]||"number";(this._data=new Pm([{name:"value",type:o}],this)).initData(t,r)},e.prototype.getData=function(){return this._data},e.prototype.getCategories=function(){if("category"===this.get("axisType"))return this._names.slice()},e.type="timeline",e.defaultOption={zlevel:0,z:4,show:!0,axisType:"time",realtime:!0,left:"20%",top:null,right:"20%",bottom:0,width:null,height:40,padding:5,controlPosition:"left",autoPlay:!1,rewind:!1,loop:!0,playInterval:2e3,currentIndex:0,itemStyle:{},label:{color:"#000"},data:[]},e}(Nc),GE=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="timeline.slider",e.defaultOption=Th(FE.defaultOption,{backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderWidth:0,orient:"horizontal",inverse:!1,tooltip:{trigger:"item"},symbol:"circle",symbolSize:12,lineStyle:{show:!0,width:2,color:"#DAE1F5"},label:{position:"auto",show:!0,interval:"auto",rotate:0,color:"#A4B1D7"},itemStyle:{color:"#A4B1D7",borderWidth:1},checkpointStyle:{symbol:"circle",symbolSize:15,color:"#316bf3",borderColor:"#fff",borderWidth:2,shadowBlur:2,shadowOffsetX:1,shadowOffsetY:1,shadowColor:"rgba(0, 0, 0, 0.3)",animation:!0,animationDuration:300,animationEasing:"quinticInOut"},controlStyle:{show:!0,showPlayBtn:!0,showPrevBtn:!0,showNextBtn:!0,itemSize:24,itemGap:12,position:"left",playIcon:"path://M31.6,53C17.5,53,6,41.5,6,27.4S17.5,1.8,31.6,1.8C45.7,1.8,57.2,13.3,57.2,27.4S45.7,53,31.6,53z M31.6,3.3 C18.4,3.3,7.5,14.1,7.5,27.4c0,13.3,10.8,24.1,24.1,24.1C44.9,51.5,55.7,40.7,55.7,27.4C55.7,14.1,44.9,3.3,31.6,3.3z M24.9,21.3 c0-2.2,1.6-3.1,3.5-2l10.5,6.1c1.899,1.1,1.899,2.9,0,4l-10.5,6.1c-1.9,1.1-3.5,0.2-3.5-2V21.3z",stopIcon:"path://M30.9,53.2C16.8,53.2,5.3,41.7,5.3,27.6S16.8,2,30.9,2C45,2,56.4,13.5,56.4,27.6S45,53.2,30.9,53.2z M30.9,3.5C17.6,3.5,6.8,14.4,6.8,27.6c0,13.3,10.8,24.1,24.101,24.1C44.2,51.7,55,40.9,55,27.6C54.9,14.4,44.1,3.5,30.9,3.5z M36.9,35.8c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H36c0.5,0,0.9,0.4,0.9,1V35.8z M27.8,35.8 c0,0.601-0.4,1-0.9,1h-1.3c-0.5,0-0.9-0.399-0.9-1V19.5c0-0.6,0.4-1,0.9-1H27c0.5,0,0.9,0.4,0.9,1L27.8,35.8L27.8,35.8z",nextIcon:"M2,18.5A1.52,1.52,0,0,1,.92,18a1.49,1.49,0,0,1,0-2.12L7.81,9.36,1,3.11A1.5,1.5,0,1,1,3,.89l8,7.34a1.48,1.48,0,0,1,.49,1.09,1.51,1.51,0,0,1-.46,1.1L3,18.08A1.5,1.5,0,0,1,2,18.5Z",prevIcon:"M10,.5A1.52,1.52,0,0,1,11.08,1a1.49,1.49,0,0,1,0,2.12L4.19,9.64,11,15.89a1.5,1.5,0,1,1-2,2.22L1,10.77A1.48,1.48,0,0,1,.5,9.68,1.51,1.51,0,0,1,1,8.58L9,.92A1.5,1.5,0,0,1,10,.5Z",prevBtnSize:18,nextBtnSize:18,color:"#A4B1D7",borderColor:"#A4B1D7",borderWidth:1},emphasis:{label:{show:!0,color:"#6f778d"},itemStyle:{color:"#316BF3"},controlStyle:{color:"#316BF3",borderColor:"#316BF3",borderWidth:2}},progress:{lineStyle:{color:"#316BF3"},itemStyle:{color:"#316BF3"},label:{color:"#6f778d"}},data:[]}),e}(FE);L(GE,yd.prototype);var HE=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="timeline",e}(pf),WE=function(t){function e(e,n,i,r){var o=t.call(this,e,n,i)||this;return o.type=r||"value",o}return n(e,t),e.prototype.getLabelModel=function(){return this.model.getModel("label")},e.prototype.isHorizontal=function(){return"horizontal"===this.model.get("orient")},e}(vx),YE=Math.PI,XE=Lr(),UE=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(t,e){this.api=e},e.prototype.render=function(t,e,n){if(this.model=t,this.api=n,this.ecModel=e,this.group.removeAll(),t.get("show",!0)){var i=this._layout(t,n),r=this._createGroup("_mainGroup"),o=this._createGroup("_labelGroup"),a=this._axis=this._createAxis(i,t);t.formatTooltip=function(t){return Yd("nameValue",{noName:!0,value:a.scale.getLabel({value:t})})},P(["AxisLine","AxisTick","Control","CurrentPointer"],(function(e){this["_render"+e](i,r,a,t)}),this),this._renderAxisLabel(i,o,a,t),this._position(i,t)}this._doPlayStop(),this._updateTicksStatus()},e.prototype.remove=function(){this._clearTimer(),this.group.removeAll()},e.prototype.dispose=function(){this._clearTimer()},e.prototype._layout=function(t,e){var n,i,r,o,a=t.get(["label","position"]),s=t.get("orient"),l=function(t,e){return Ac(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()},t.get("padding"))}(t,e),u={horizontal:"center",vertical:(n=null==a||"auto"===a?"horizontal"===s?l.y+l.height/2<e.getHeight()/2?"-":"+":l.x+l.width/2<e.getWidth()/2?"+":"-":H(a)?{horizontal:{top:"-",bottom:"+"},vertical:{left:"-",right:"+"}}[s][a]:a)>=0||"+"===n?"left":"right"},h={horizontal:n>=0||"+"===n?"top":"bottom",vertical:"middle"},c={horizontal:0,vertical:YE/2},p="vertical"===s?l.height:l.width,d=t.getModel("controlStyle"),f=d.get("show",!0),g=f?d.get("itemSize"):0,y=f?d.get("itemGap"):0,v=g+y,m=t.get(["label","rotate"])||0;m=m*YE/180;var _=d.get("position",!0),x=f&&d.get("showPlayBtn",!0),b=f&&d.get("showPrevBtn",!0),w=f&&d.get("showNextBtn",!0),S=0,M=p;"left"===_||"bottom"===_?(x&&(i=[0,0],S+=v),b&&(r=[S,0],S+=v),w&&(o=[M-g,0],M-=v)):(x&&(i=[M-g,0],M-=v),b&&(r=[0,0],S+=v),w&&(o=[M-g,0],M-=v));var I=[S,M];return t.get("inverse")&&I.reverse(),{viewRect:l,mainLength:p,orient:s,rotation:c[s],labelRotation:m,labelPosOpt:n,labelAlign:t.get(["label","align"])||u[s],labelBaseline:t.get(["label","verticalAlign"])||t.get(["label","baseline"])||h[s],playPosition:i,prevBtnPosition:r,nextBtnPosition:o,axisExtent:I,controlSize:g,controlGap:y}},e.prototype._position=function(t,e){var n=this._mainGroup,i=this._labelGroup,r=t.viewRect;if("vertical"===t.orient){var o=[1,0,0,1,0,0],a=r.x,s=r.y+r.height;me(o,o,[-a,-s]),_e(o,o,-YE/2),me(o,o,[a,s]),(r=r.clone()).applyTransform(o)}var l=y(r),u=y(n.getBoundingRect()),h=y(i.getBoundingRect()),c=[n.x,n.y],p=[i.x,i.y];p[0]=c[0]=l[0][0];var d,f=t.labelPosOpt;null==f||H(f)?(v(c,u,l,1,d="+"===f?0:1),v(p,h,l,1,1-d)):(v(c,u,l,1,d=f>=0?0:1),p[1]=c[1]+f);function g(t){t.originX=l[0][0]-t.x,t.originY=l[1][0]-t.y}function y(t){return[[t.x,t.x+t.width],[t.y,t.y+t.height]]}function v(t,e,n,i,r){t[i]+=n[i][r]-e[i][r]}n.setPosition(c),i.setPosition(p),n.rotation=i.rotation=t.rotation,g(n),g(i)},e.prototype._createAxis=function(t,e){var n=e.getData(),i=e.get("axisType"),r=function(t,e){if(e=e||t.get("type"))switch(e){case"category":return new Qm({ordinalMeta:t.getCategories(),extent:[1/0,-1/0]});case"time":return new g_({locale:t.ecModel.getLocaleModel(),useUTC:t.ecModel.get("useUTC")});default:return new e_}}(e,i);r.getTicks=function(){return n.mapArray(["value"],(function(t){return{value:t}}))};var o=n.getDataExtent("value");r.setExtent(o[0],o[1]),r.niceTicks();var a=new WE("value",r,t.axisExtent,i);return a.model=e,a},e.prototype._createGroup=function(t){var e=this[t]=new zi;return this.group.add(e),e},e.prototype._renderAxisLine=function(t,e,n,i){var r=n.getExtent();if(i.get(["lineStyle","show"])){var o=new tu({shape:{x1:r[0],y1:0,x2:r[1],y2:0},style:I({lineCap:"round"},i.getModel("lineStyle").getLineStyle()),silent:!0,z2:1});e.add(o);var a=this._progressLine=new tu({shape:{x1:r[0],x2:this._currentPointer?this._currentPointer.x:r[0],y1:0,y2:0},style:T({lineCap:"round",lineWidth:o.style.lineWidth},i.getModel(["progress","lineStyle"]).getLineStyle()),silent:!0,z2:1});e.add(a)}},e.prototype._renderAxisTick=function(t,e,n,i){var r=this,o=i.getData(),a=n.scale.getTicks();this._tickSymbols=[],P(a,(function(t){var a=n.dataToCoord(t.value),s=o.getItemModel(t.value),l=s.getModel("itemStyle"),u=s.getModel(["emphasis","itemStyle"]),h=s.getModel(["progress","itemStyle"]),c={x:a,y:0,onclick:B(r._changeTimeline,r,t.value)},p=ZE(s,l,e,c);p.ensureState("emphasis").style=u.getItemStyle(),p.ensureState("progress").style=h.getItemStyle(),Js(p);var d=ys(p);s.get("tooltip")?(d.dataIndex=t.value,d.dataModel=i):d.dataIndex=d.dataModel=null,r._tickSymbols.push(p)}))},e.prototype._renderAxisLabel=function(t,e,n,i){var r=this;if(n.getLabelModel().get("show")){var o=i.getData(),a=n.getViewLabels();this._tickLabels=[],P(a,(function(i){var a=i.tickValue,s=o.getItemModel(a),l=s.getModel("label"),u=s.getModel(["emphasis","label"]),h=s.getModel(["progress","label"]),c=n.dataToCoord(i.tickValue),p=new ls({x:c,y:0,rotation:t.labelRotation-t.rotation,onclick:B(r._changeTimeline,r,a),silent:!1,style:nh(l,{text:i.formattedLabel,align:t.labelAlign,verticalAlign:t.labelBaseline})});p.ensureState("emphasis").style=nh(u),p.ensureState("progress").style=nh(h),e.add(p),Js(p),XE(p).dataIndex=a,r._tickLabels.push(p)}))}},e.prototype._renderControl=function(t,e,n,i){var r=t.controlSize,o=t.rotation,a=i.getModel("controlStyle").getItemStyle(),s=i.getModel(["emphasis","controlStyle"]).getItemStyle(),l=i.getPlayState(),u=i.get("inverse",!0);function h(t,n,l,u){if(t){var h=Yn(tt(i.get(["controlStyle",n+"BtnSize"]),r),r),c=function(t,e,n,i){var r=i.style,o=Uu(t.get(["controlStyle",e]),i||{},new Rn(n[0],n[1],n[2],n[3]));r&&o.setStyle(r);return o}(i,n+"Icon",[0,-h/2,h,h],{position:t,origin:[r/2,0],rotation:u?-o:0,rectHover:!0,style:a,onclick:l});c.ensureState("emphasis").style=s,e.add(c),Js(c)}}h(t.nextBtnPosition,"next",B(this._changeTimeline,this,u?"-":"+")),h(t.prevBtnPosition,"prev",B(this._changeTimeline,this,u?"+":"-")),h(t.playPosition,l?"stop":"play",B(this._handlePlayClick,this,!l),!0)},e.prototype._renderCurrentPointer=function(t,e,n,i){var r=i.getData(),o=i.getCurrentIndex(),a=r.getItemModel(o).getModel("checkpointStyle"),s=this,l={onCreate:function(t){t.draggable=!0,t.drift=B(s._handlePointerDrag,s),t.ondragend=B(s._handlePointerDragend,s),jE(t,s._progressLine,o,n,i,!0)},onUpdate:function(t){jE(t,s._progressLine,o,n,i)}};this._currentPointer=ZE(a,a,this._mainGroup,{},this._currentPointer,l)},e.prototype._handlePlayClick=function(t){this._clearTimer(),this.api.dispatchAction({type:"timelinePlayChange",playState:t,from:this.uid})},e.prototype._handlePointerDrag=function(t,e,n){this._clearTimer(),this._pointerChangeTimeline([n.offsetX,n.offsetY])},e.prototype._handlePointerDragend=function(t){this._pointerChangeTimeline([t.offsetX,t.offsetY],!0)},e.prototype._pointerChangeTimeline=function(t,e){var n=this._toAxisCoord(t)[0],i=qi(this._axis.getExtent().slice());n>i[1]&&(n=i[1]),n<i[0]&&(n=i[0]),this._currentPointer.x=n,this._currentPointer.markRedraw(),this._progressLine.shape.x2=n,this._progressLine.dirty();var r=this._findNearestTick(n),o=this.model;(e||r!==o.getCurrentIndex()&&o.get("realtime"))&&this._changeTimeline(r)},e.prototype._doPlayStop=function(){var t=this;this._clearTimer(),this.model.getPlayState()&&(this._timer=setTimeout((function(){var e=t.model;t._changeTimeline(e.getCurrentIndex()+(e.get("rewind",!0)?-1:1))}),this.model.get("playInterval")))},e.prototype._toAxisCoord=function(t){return Fu(t,this._mainGroup.getLocalTransform(),!0)},e.prototype._findNearestTick=function(t){var e,n=this.model.getData(),i=1/0,r=this._axis;return n.each(["value"],(function(n,o){var a=r.dataToCoord(n),s=Math.abs(a-t);s<i&&(i=s,e=o)})),e},e.prototype._clearTimer=function(){this._timer&&(clearTimeout(this._timer),this._timer=null)},e.prototype._changeTimeline=function(t){var e=this.model.getCurrentIndex();"+"===t?t=e+1:"-"===t&&(t=e-1),this.api.dispatchAction({type:"timelineChange",currentIndex:t,from:this.uid})},e.prototype._updateTicksStatus=function(){var t=this.model.getCurrentIndex(),e=this._tickSymbols,n=this._tickLabels;if(e)for(var i=0;i<e.length;i++)e&&e[i]&&e[i].toggleState("progress",i<t);if(n)for(i=0;i<n.length;i++)n&&n[i]&&n[i].toggleState("progress",XE(n[i]).dataIndex<=t)},e.type="timeline.slider",e}(HE);function ZE(t,e,n,i,r,o){var a=e.get("color");r?(r.setColor(a),n.add(r),o&&o.onUpdate(r)):((r=uy(t.get("symbol"),-1,-1,2,2,a)).setStyle("strokeNoScale",!0),n.add(r),o&&o.onCreate(r));var s=e.getItemStyle(["color"]);r.setStyle(s),i=S({rectHover:!0,z2:100},i,!0);var l=t.get("symbolSize");l=l instanceof Array?l.slice():[+l,+l],i.scaleX=l[0]/2,i.scaleY=l[1]/2;var u=t.get("symbolOffset");u&&(i.x=i.x||0,i.y=i.y||0,i.x+=Zi(u[0],l[0]),i.y+=Zi(u[1],l[1]));var h=t.get("symbolRotate");return i.rotation=(h||0)*Math.PI/180||0,r.attr(i),r.updateTransform(),r}function jE(t,e,n,i,r,o){if(!t.dragging){var a=r.getModel("checkpointStyle"),s=i.dataToCoord(r.getData().get("value",n));if(o||!a.get("animation",!0))t.attr({x:s,y:0}),e&&e.attr({shape:{x2:s}});else{var l={duration:a.get("animationDuration",!0),easing:a.get("animationEasing",!0)};t.stopAnimation(null,!0),t.animateTo({x:s,y:0},l),e&&e.animateTo({shape:{x2:s}},l)}}}function qE(t){var e=t&&t.timeline;F(e)||(e=e?[e]:[]),P(e,(function(t){t&&function(t){var e=t.type,n={number:"value",time:"time"};n[e]&&(t.axisType=n[e],delete t.type);if(KE(t),$E(t,"controlPosition")){var i=t.controlStyle||(t.controlStyle={});$E(i,"position")||(i.position=t.controlPosition),"none"!==i.position||$E(i,"show")||(i.show=!1,delete i.position),delete t.controlPosition}P(t.data||[],(function(t){X(t)&&!F(t)&&(!$E(t,"value")&&$E(t,"name")&&(t.value=t.name),KE(t))}))}(t)}))}function KE(t){var e=t.itemStyle||(t.itemStyle={}),n=e.emphasis||(e.emphasis={}),i=t.label||t.label||{},r=i.normal||(i.normal={}),o={normal:1,emphasis:1};P(i,(function(t,e){o[e]||$E(r,e)||(r[e]=t)})),n.label&&!$E(i,"emphasis")&&(i.emphasis=n.label,delete n.label)}function $E(t,e){return t.hasOwnProperty(e)}function JE(t){xr(t,"label",["show"])}var QE=Lr(),tz=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.createdBySelf=!1,n}return n(e,t),e.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n),this._mergeOption(t,n,!1,!0)},e.prototype.isAnimationEnabled=function(){if(a.node)return!1;var t=this.__hostSeries;return this.getShallow("animation")&&t&&t.isAnimationEnabled()},e.prototype.mergeOption=function(t,e){this._mergeOption(t,e,!1,!1)},e.prototype._mergeOption=function(t,e,n,i){var r=this.mainType;n||e.eachSeries((function(t){var n=t.get(this.mainType,!0),o=QE(t)[r];n&&n.data?(o?o._mergeOption(n,e,!0):(i&&JE(n),P(n.data,(function(t){t instanceof Array?(JE(t[0]),JE(t[1])):JE(t)})),I(o=this.createMarkerModelFromSeries(n,this,e),{mainType:this.mainType,seriesIndex:t.seriesIndex,name:t.name,createdBySelf:!0}),o.__hostSeries=t),QE(t)[r]=o):QE(t)[r]=null}),this)},e.prototype.formatTooltip=function(t,e,n){var i=this.getData(),r=this.getRawValue(t),o=i.getName(t);return Yd("section",{header:this.name,blocks:[Yd("nameValue",{name:o,value:r,noName:!o,noValue:null==r})]})},e.prototype.getData=function(){return this._data},e.prototype.setData=function(t){this._data=t},e.getMarkerModelFromSeries=function(t,e){return QE(t)[e]},e.type="marker",e.dependencies=["series","grid","polar","geo"],e}(Nc);L(tz,yd.prototype);var ez=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.createMarkerModelFromSeries=function(t,n,i){return new e(t,n,i)},e.type="markPoint",e.defaultOption={zlevel:0,z:5,symbol:"pin",symbolSize:50,tooltip:{trigger:"item"},label:{show:!0,position:"inside"},itemStyle:{borderWidth:2},emphasis:{label:{show:!0}}},e}(tz);function nz(t,e,n,i,r,o){var a=[],s=Fm(e,i)?e.getCalculationInfo("stackResultDimension"):i,l=lz(e,s,t),u=e.indicesOfNearest(s,l)[0];a[r]=e.get(n,u),a[o]=e.get(s,u);var h=e.get(i,u),c=Ki(e.get(i,u));return(c=Math.min(c,20))>=0&&(a[o]=+a[o].toFixed(c)),[a,h]}var iz={min:V(nz,"min"),max:V(nz,"max"),average:V(nz,"average"),median:V(nz,"median")};function rz(t,e){var n=t.getData(),i=t.coordinateSystem;if(e&&!function(t){return!isNaN(parseFloat(t.x))&&!isNaN(parseFloat(t.y))}(e)&&!F(e.coord)&&i){var r=i.dimensions,o=oz(e,n,i,t);if((e=w(e)).type&&iz[e.type]&&o.baseAxis&&o.valueAxis){var a=A(r,o.baseAxis.dim),s=A(r,o.valueAxis.dim),l=iz[e.type](n,o.baseDataDim,o.valueDataDim,a,s);e.coord=l[0],e.value=l[1]}else{for(var u=[null!=e.xAxis?e.xAxis:e.radiusAxis,null!=e.yAxis?e.yAxis:e.angleAxis],h=0;h<2;h++)iz[u[h]]&&(u[h]=lz(n,n.mapDimension(r[h]),u[h]));e.coord=u}}return e}function oz(t,e,n,i){var r={};return null!=t.valueIndex||null!=t.valueDim?(r.valueDataDim=null!=t.valueIndex?e.getDimension(t.valueIndex):t.valueDim,r.valueAxis=n.getAxis(function(t,e){var n=t.getData(),i=n.dimensions;e=n.getDimension(e);for(var r=0;r<i.length;r++){var o=n.getDimensionInfo(i[r]);if(o.name===e)return o.coordDim}}(i,r.valueDataDim)),r.baseAxis=n.getOtherAxis(r.valueAxis),r.baseDataDim=e.mapDimension(r.baseAxis.dim)):(r.baseAxis=i.getBaseAxis(),r.valueAxis=n.getOtherAxis(r.baseAxis),r.baseDataDim=e.mapDimension(r.baseAxis.dim),r.valueDataDim=e.mapDimension(r.valueAxis.dim)),r}function az(t,e){return!(t&&t.containData&&e.coord&&!function(t){return!(isNaN(parseFloat(t.x))&&isNaN(parseFloat(t.y)))}(e))||t.containData(e.coord)}function sz(t,e,n,i){return i<2?t.coord&&t.coord[i]:t.value}function lz(t,e,n){if("average"===n){var i=0,r=0;return t.each(e,(function(t,e){isNaN(t)||(i+=t,r++)})),i/r}return"median"===n?t.getMedian(e):t.getDataExtent(e)["max"===n?1:0]}var uz=Lr(),hz=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.init=function(){this.markerGroupMap=ht()},e.prototype.render=function(t,e,n){var i=this,r=this.markerGroupMap;r.each((function(t){uz(t).keep=!1})),e.eachSeries((function(t){var r=tz.getMarkerModelFromSeries(t,i.type);r&&i.renderSeries(t,r,e,n)})),r.each((function(t){!uz(t).keep&&i.group.remove(t.group)}))},e.prototype.markKeep=function(t){uz(t).keep=!0},e.prototype.blurSeries=function(t){var e=this;P(t,(function(t){var n=tz.getMarkerModelFromSeries(t,e.type);n&&n.getData().eachItemGraphicEl((function(t){t&&Ys(t)}))}))},e.type="marker",e}(pf);function cz(t,e,n){var i=e.coordinateSystem;t.each((function(r){var o,a=t.getItemModel(r),s=Zi(a.get("x"),n.getWidth()),l=Zi(a.get("y"),n.getHeight());if(isNaN(s)||isNaN(l)){if(e.getMarkerPosition)o=e.getMarkerPosition(t.getValues(t.dimensions,r));else if(i){var u=t.get(i.dimensions[0],r),h=t.get(i.dimensions[1],r);o=i.dataToPoint([u,h])}}else o=[s,l];isNaN(s)||(o[0]=s),isNaN(l)||(o[1]=l),t.setItemLayout(r,o)}))}var pz=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.updateTransform=function(t,e,n){e.eachSeries((function(t){var e=tz.getMarkerModelFromSeries(t,"markPoint");e&&(cz(e.getData(),t,n),this.markerGroupMap.get(t.id).updateLayout())}),this)},e.prototype.renderSeries=function(t,e,n,i){var r=t.coordinateSystem,o=t.id,a=t.getData(),s=this.markerGroupMap,l=s.get(o)||s.set(o,new Tb),u=function(t,e,n){var i;i=t?O(t&&t.dimensions,(function(t){return T({name:t},e.getData().getDimensionInfo(e.getData().mapDimension(t))||{})})):[{name:"value",type:"float"}];var r=new Pm(i,n),o=O(n.get("data"),V(rz,e));t&&(o=N(o,V(az,t)));return r.initData(o,null,t?sz:function(t){return t.value}),r}(r,t,e);e.setData(u),cz(e.getData(),t,i),u.each((function(t){var n=u.getItemModel(t),i=n.getShallow("symbol"),r=n.getShallow("symbolSize"),o=n.getShallow("symbolRotate");if(G(i)||G(r)||G(o)){var s=e.getRawValue(t),l=e.getDataParams(t);G(i)&&(i=i(s,l)),G(r)&&(r=r(s,l)),G(o)&&(o=o(s,l))}var h=n.getModel("itemStyle").getItemStyle(),c=dg(a,"color");h.fill||(h.fill=c),u.setItemVisual(t,{symbol:i,symbolSize:r,symbolRotate:o,style:h})})),l.updateData(u),this.group.add(l.group),u.eachItemGraphicEl((function(t){t.traverse((function(t){ys(t).dataModel=e}))})),this.markKeep(l),l.group.silent=e.get("silent")||t.get("silent")},e.type="markPoint",e}(hz);var dz=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.createMarkerModelFromSeries=function(t,n,i){return new e(t,n,i)},e.type="markLine",e.defaultOption={zlevel:0,z:5,symbol:["circle","arrow"],symbolSize:[8,16],precision:2,tooltip:{trigger:"item"},label:{show:!0,position:"end",distance:5},lineStyle:{type:"dashed"},emphasis:{label:{show:!0},lineStyle:{width:3}},animationEasing:"linear"},e}(tz),fz=Lr(),gz=function(t,e,n,i){var r,o=t.getData();if(F(i))r=i;else{var a=i.type;if("min"===a||"max"===a||"average"===a||"median"===a||null!=i.xAxis||null!=i.yAxis){var s=void 0,l=void 0;if(null!=i.yAxis||null!=i.xAxis)s=e.getAxis(null!=i.yAxis?"y":"x"),l=Q(i.yAxis,i.xAxis);else{var u=oz(i,o,e,t);s=u.valueAxis,l=lz(o,Gm(o,u.valueDataDim),a)}var h="x"===s.dim?0:1,c=1-h,p=w(i),d={coord:[]};p.type=null,p.coord=[],p.coord[c]=-1/0,d.coord[c]=1/0;var f=n.get("precision");f>=0&&"number"==typeof l&&(l=+l.toFixed(Math.min(f,20))),p.coord[h]=d.coord[h]=l,r=[p,d,{type:a,valueIndex:i.valueIndex,value:l}]}else r=[]}var g=[rz(t,r[0]),rz(t,r[1]),I({},r[2])];return g[2].type=g[2].type||null,S(g[2],g[0]),S(g[2],g[1]),g};function yz(t){return!isNaN(t)&&!isFinite(t)}function vz(t,e,n,i){var r=1-t,o=i.dimensions[t];return yz(e[r])&&yz(n[r])&&e[t]===n[t]&&i.getAxis(o).containData(e[t])}function mz(t,e){if("cartesian2d"===t.type){var n=e[0].coord,i=e[1].coord;if(n&&i&&(vz(1,n,i,t)||vz(0,n,i,t)))return!0}return az(t,e[0])&&az(t,e[1])}function _z(t,e,n,i,r){var o,a=i.coordinateSystem,s=t.getItemModel(e),l=Zi(s.get("x"),r.getWidth()),u=Zi(s.get("y"),r.getHeight());if(isNaN(l)||isNaN(u)){if(i.getMarkerPosition)o=i.getMarkerPosition(t.getValues(t.dimensions,e));else{var h=a.dimensions,c=t.get(h[0],e),p=t.get(h[1],e);o=a.dataToPoint([c,p])}if(Wb(a,"cartesian2d")){var d=a.getAxis("x"),f=a.getAxis("y");h=a.dimensions;yz(t.get(h[0],e))?o[0]=d.toGlobalCoord(d.getExtent()[n?0:1]):yz(t.get(h[1],e))&&(o[1]=f.toGlobalCoord(f.getExtent()[n?0:1]))}isNaN(l)||(o[0]=l),isNaN(u)||(o[1]=u)}else o=[l,u];t.setItemLayout(e,o)}var xz=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.updateTransform=function(t,e,n){e.eachSeries((function(t){var e=tz.getMarkerModelFromSeries(t,"markLine");if(e){var i=e.getData(),r=fz(e).from,o=fz(e).to;r.each((function(e){_z(r,e,!0,t,n),_z(o,e,!1,t,n)})),i.each((function(t){i.setItemLayout(t,[r.getItemLayout(t),o.getItemLayout(t)])})),this.markerGroupMap.get(t.id).updateLayout()}}),this)},e.prototype.renderSeries=function(t,e,n,i){var r=t.coordinateSystem,o=t.id,a=t.getData(),s=this.markerGroupMap,l=s.get(o)||s.set(o,new aC);this.group.add(l.group);var u=function(t,e,n){var i;i=t?O(t&&t.dimensions,(function(t){return T({name:t},e.getData().getDimensionInfo(e.getData().mapDimension(t))||{})})):[{name:"value",type:"float"}];var r=new Pm(i,n),o=new Pm(i,n),a=new Pm([],n),s=O(n.get("data"),V(gz,e,t,n));t&&(s=N(s,V(mz,t)));var l=t?sz:function(t){return t.value};return r.initData(O(s,(function(t){return t[0]})),null,l),o.initData(O(s,(function(t){return t[1]})),null,l),a.initData(O(s,(function(t){return t[2]}))),a.hasItemOption=!0,{from:r,to:o,line:a}}(r,t,e),h=u.from,c=u.to,p=u.line;fz(e).from=h,fz(e).to=c,e.setData(p);var d=e.get("symbol"),f=e.get("symbolSize");function g(e,n,r){var o=e.getItemModel(n);_z(e,n,r,t,i);var s=o.getModel("itemStyle").getItemStyle();null==s.fill&&(s.fill=dg(a,"color")),e.setItemVisual(n,{symbolRotate:o.get("symbolRotate"),symbolSize:o.get("symbolSize")||f[r?0:1],symbol:o.get("symbol",!0)||d[r?0:1],style:s})}F(d)||(d=[d,d]),F(f)||(f=[f,f]),u.from.each((function(t){g(h,t,!0),g(c,t,!1)})),p.each((function(t){var e=p.getItemModel(t).getModel("lineStyle").getLineStyle();p.setItemLayout(t,[h.getItemLayout(t),c.getItemLayout(t)]),null==e.stroke&&(e.stroke=h.getItemVisual(t,"style").fill),p.setItemVisual(t,{fromSymbolRotate:h.getItemVisual(t,"symbolRotate"),fromSymbolSize:h.getItemVisual(t,"symbolSize"),fromSymbol:h.getItemVisual(t,"symbol"),toSymbolRotate:c.getItemVisual(t,"symbolRotate"),toSymbolSize:c.getItemVisual(t,"symbolSize"),toSymbol:c.getItemVisual(t,"symbol"),style:e})})),l.updateData(p),u.line.eachItemGraphicEl((function(t,n){t.traverse((function(t){ys(t).dataModel=e}))})),this.markKeep(l),l.group.silent=e.get("silent")||t.get("silent")},e.type="markLine",e}(hz);var bz=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.createMarkerModelFromSeries=function(t,n,i){return new e(t,n,i)},e.type="markArea",e.defaultOption={zlevel:0,z:1,tooltip:{trigger:"item"},animation:!1,label:{show:!0,position:"top"},itemStyle:{borderWidth:0},emphasis:{label:{show:!0,position:"top"}}},e}(tz),wz=Lr(),Sz=function(t,e,n,i){var r=rz(t,i[0]),o=rz(t,i[1]),a=r.coord,s=o.coord;a[0]=Q(a[0],-1/0),a[1]=Q(a[1],-1/0),s[0]=Q(s[0],1/0),s[1]=Q(s[1],1/0);var l=M([{},r,o]);return l.coord=[r.coord,o.coord],l.x0=r.x,l.y0=r.y,l.x1=o.x,l.y1=o.y,l};function Mz(t){return!isNaN(t)&&!isFinite(t)}function Iz(t,e,n,i){var r=1-t;return Mz(e[r])&&Mz(n[r])}function Tz(t,e){var n=e.coord[0],i=e.coord[1];return!!(Wb(t,"cartesian2d")&&n&&i&&(Iz(1,n,i)||Iz(0,n,i)))||(az(t,{coord:n,x:e.x0,y:e.y0})||az(t,{coord:i,x:e.x1,y:e.y1}))}function Cz(t,e,n,i,r){var o,a=i.coordinateSystem,s=t.getItemModel(e),l=Zi(s.get(n[0]),r.getWidth()),u=Zi(s.get(n[1]),r.getHeight());if(isNaN(l)||isNaN(u)){if(i.getMarkerPosition)o=i.getMarkerPosition(t.getValues(n,e));else{var h=[d=t.get(n[0],e),f=t.get(n[1],e)];a.clampData&&a.clampData(h,h),o=a.dataToPoint(h,!0)}if(Wb(a,"cartesian2d")){var c=a.getAxis("x"),p=a.getAxis("y"),d=t.get(n[0],e),f=t.get(n[1],e);Mz(d)?o[0]=c.toGlobalCoord(c.getExtent()["x0"===n[0]?0:1]):Mz(f)&&(o[1]=p.toGlobalCoord(p.getExtent()["y0"===n[1]?0:1]))}isNaN(l)||(o[0]=l),isNaN(u)||(o[1]=u)}else o=[l,u];return o}var Az=[["x0","y0"],["x1","y0"],["x1","y1"],["x0","y1"]],Dz=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.updateTransform=function(t,e,n){e.eachSeries((function(t){var e=tz.getMarkerModelFromSeries(t,"markArea");if(e){var i=e.getData();i.each((function(e){var r=O(Az,(function(r){return Cz(i,e,r,t,n)}));i.setItemLayout(e,r),i.getItemGraphicEl(e).setShape("points",r)}))}}),this)},e.prototype.renderSeries=function(t,e,n,i){var r=t.coordinateSystem,o=t.id,a=t.getData(),s=this.markerGroupMap,l=s.get(o)||s.set(o,{group:new zi});this.group.add(l.group),this.markKeep(l);var u=function(t,e,n){var i,r,o=["x0","y0","x1","y1"];t?(i=O(t&&t.dimensions,(function(t){var n=e.getData();return T({name:t},n.getDimensionInfo(n.mapDimension(t))||{})})),r=new Pm(O(o,(function(t,e){return{name:t,type:i[e%2].type}})),n)):r=new Pm(i=[{name:"value",type:"float"}],n);var a=O(n.get("data"),V(Sz,e,t,n));t&&(a=N(a,V(Tz,t)));var s=t?function(t,e,n,i){return t.coord[Math.floor(i/2)][i%2]}:function(t){return t.value};return r.initData(a,null,s),r.hasItemOption=!0,r}(r,t,e);e.setData(u),u.each((function(e){var n=O(Az,(function(n){return Cz(u,e,n,t,i)})),o=!0;P(Az,(function(t){if(o){var n=u.get(t[0],e),i=u.get(t[1],e);(Mz(n)||r.getAxis("x").containData(n))&&(Mz(i)||r.getAxis("y").containData(i))&&(o=!1)}})),u.setItemLayout(e,{points:n,allClipped:o});var s=u.getItemModel(e).getModel("itemStyle").getItemStyle(),l=dg(a,"color");s.fill||(s.fill=l,"string"==typeof s.fill&&(s.fill=on(s.fill,.4))),s.stroke||(s.stroke=l),u.setItemVisual(e,"style",s)})),u.diff(wz(l).data).add((function(t){var e=u.getItemLayout(t);if(!e.allClipped){var n=new ql({shape:{points:e.points}});u.setItemGraphicEl(t,n),l.group.add(n)}})).update((function(t,n){var i=wz(l).data.getItemGraphicEl(n),r=u.getItemLayout(t);r.allClipped?i&&l.group.remove(i):(i?Ou(i,{shape:{points:r.points}},e,t):i=new ql({shape:{points:r.points}}),u.setItemGraphicEl(t,i),l.group.add(i))})).remove((function(t){var e=wz(l).data.getItemGraphicEl(t);l.group.remove(e)})).execute(),u.eachItemGraphicEl((function(t,n){var i=u.getItemModel(n),r=u.getItemVisual(n,"style");t.useStyle(u.getItemVisual(n,"style")),th(t,eh(i),{labelFetcher:e,labelDataIndex:n,defaultText:u.getName(n)||"",inheritColor:"string"==typeof r.fill?on(r.fill,1):"#000"}),nl(t,i),Js(t),ys(t).dataModel=e})),wz(l).data=u,l.group.silent=e.get("silent")||t.get("silent")},e.type="markArea",e}(hz);var Lz=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.layoutMode={type:"box",ignoreSize:!0},n}return n(e,t),e.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n),t.selected=t.selected||{},this._updateSelector(t)},e.prototype.mergeOption=function(e,n){t.prototype.mergeOption.call(this,e,n),this._updateSelector(e)},e.prototype._updateSelector=function(t){var e=t.selector,n=this.ecModel;!0===e&&(e=t.selector=["all","inverse"]),F(e)&&P(e,(function(t,i){H(t)&&(t={type:t}),e[i]=S(t,function(t,e){return"all"===e?{type:"all",title:t.getLocale(["legend","selector","all"])}:"inverse"===e?{type:"inverse",title:t.getLocale(["legend","selector","inverse"])}:void 0}(n,t.type))}))},e.prototype.optionUpdated=function(){this._updateData(this.ecModel);var t=this._data;if(t[0]&&"single"===this.get("selectedMode")){for(var e=!1,n=0;n<t.length;n++){var i=t[n].get("name");if(this.isSelected(i)){this.select(i),e=!0;break}}!e&&this.select(t[0].get("name"))}},e.prototype._updateData=function(t){var e=[],n=[];t.eachRawSeries((function(i){var r,o=i.name;if(n.push(o),i.legendVisualProvider){var a=i.legendVisualProvider.getAllNames();t.isSeriesFiltered(i)||(n=n.concat(a)),a.length?e=e.concat(a):r=!0}else r=!0;r&&Cr(i)&&e.push(i.name)})),this._availableNames=n;var i=O(this.get("data")||e,(function(t){return"string"!=typeof t&&"number"!=typeof t||(t={name:t}),new Sh(t,this,this.ecModel)}),this);this._data=i},e.prototype.getData=function(){return this._data},e.prototype.select=function(t){var e=this.option.selected;"single"===this.get("selectedMode")&&P(this._data,(function(t){e[t.get("name")]=!1}));e[t]=!0},e.prototype.unSelect=function(t){"single"!==this.get("selectedMode")&&(this.option.selected[t]=!1)},e.prototype.toggleSelected=function(t){var e=this.option.selected;e.hasOwnProperty(t)||(e[t]=!0),this[e[t]?"unSelect":"select"](t)},e.prototype.allSelect=function(){var t=this._data,e=this.option.selected;P(t,(function(t){e[t.get("name",!0)]=!0}))},e.prototype.inverseSelect=function(){var t=this._data,e=this.option.selected;P(t,(function(t){var n=t.get("name",!0);e.hasOwnProperty(n)||(e[n]=!0),e[n]=!e[n]}))},e.prototype.isSelected=function(t){var e=this.option.selected;return!(e.hasOwnProperty(t)&&!e[t])&&A(this._availableNames,t)>=0},e.prototype.getOrient=function(){return"vertical"===this.get("orient")?{index:1,name:"vertical"}:{index:0,name:"horizontal"}},e.type="legend.plain",e.dependencies=["series"],e.defaultOption={zlevel:0,z:4,show:!0,orient:"horizontal",left:"center",top:0,align:"auto",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",borderRadius:0,borderWidth:0,padding:5,itemGap:10,itemWidth:25,itemHeight:14,inactiveColor:"#ccc",inactiveBorderColor:"#ccc",itemStyle:{borderWidth:0},textStyle:{color:"#333"},selectedMode:!0,selector:!1,selectorLabel:{show:!0,borderRadius:10,padding:[3,5,3,5],fontSize:12,fontFamily:" sans-serif",color:"#666",borderWidth:1,borderColor:"#666"},emphasis:{selectorLabel:{show:!0,color:"#eee",backgroundColor:"#666"}},selectorPosition:"auto",selectorItemGap:7,selectorButtonGap:10,tooltip:{show:!1}},e}(Nc),kz=V,Pz=P,Oz=zi,Rz=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.newlineDisabled=!1,n}return n(e,t),e.prototype.init=function(){this.group.add(this._contentGroup=new Oz),this.group.add(this._selectorGroup=new Oz),this._isFirstRender=!0},e.prototype.getContentGroup=function(){return this._contentGroup},e.prototype.getSelectorGroup=function(){return this._selectorGroup},e.prototype.render=function(t,e,n){var i=this._isFirstRender;if(this._isFirstRender=!1,this.resetInner(),t.get("show",!0)){var r=t.get("align"),o=t.get("orient");r&&"auto"!==r||(r="right"===t.get("left")&&"vertical"===o?"right":"left");var a=t.get("selector",!0),s=t.get("selectorPosition",!0);!a||s&&"auto"!==s||(s="horizontal"===o?"end":"start"),this.renderInner(r,t,e,n,a,o,s);var l=t.getBoxLayoutParams(),u={width:n.getWidth(),height:n.getHeight()},h=t.get("padding"),c=Ac(l,u,h),p=this.layoutInner(t,r,c,i,a,s),d=Ac(T({width:p.width,height:p.height},l),u,h);this.group.x=d.x-p.x,this.group.y=d.y-p.y,this.group.markRedraw(),this.group.add(this._backgroundEl=dN(p,t))}},e.prototype.resetInner=function(){this.getContentGroup().removeAll(),this._backgroundEl&&this.group.remove(this._backgroundEl),this.getSelectorGroup().removeAll()},e.prototype.renderInner=function(t,e,n,i,r,o,a){var s=this.getContentGroup(),l=ht(),u=e.get("selectedMode"),h=[];n.eachRawSeries((function(t){!t.get("legendHoverLink")&&h.push(t.id)})),Pz(e.getData(),(function(r,o){var a=r.get("name");if(!this.newlineDisabled&&(""===a||"\n"===a)){var c=new Oz;return c.newline=!0,void s.add(c)}var p=n.getSeriesByName(a)[0];if(!l.get(a)){if(p){var d=p.getData(),f=d.getVisual("style"),g=f[d.getVisual("drawType")]||f.fill,y=f.stroke,v=f.decal,m=d.getVisual("legendSymbol")||"roundRect",_=d.getVisual("symbol");this._createItem(a,o,r,e,m,_,t,g,y,v,u).on("click",kz(Ez,a,null,i,h)).on("mouseover",kz(Bz,p.name,null,i,h)).on("mouseout",kz(Vz,p.name,null,i,h)),l.set(a,!0)}else n.eachRawSeries((function(n){if(!l.get(a)&&n.legendVisualProvider){var s=n.legendVisualProvider;if(!s.containName(a))return;var c=s.indexOfName(a),p=s.getItemVisual(c,"style"),d=p.stroke,f=p.decal,g=p.fill,y=qe(p.fill);y&&0===y[3]&&(y[3]=.2,g=an(y,"rgba"));this._createItem(a,o,r,e,"roundRect",null,t,g,d,f,u).on("click",kz(Ez,null,a,i,h)).on("mouseover",kz(Bz,null,a,i,h)).on("mouseout",kz(Vz,null,a,i,h)),l.set(a,!0)}}),this);0}}),this),r&&this._createSelector(r,e,i,o,a)},e.prototype._createSelector=function(t,e,n,i,r){var o=this.getSelectorGroup();Pz(t,(function(t){var i=t.type,r=new ls({style:{x:0,y:0,align:"center",verticalAlign:"middle"},onclick:function(){n.dispatchAction({type:"all"===i?"legendAllSelect":"legendInverseSelect"})}});o.add(r),th(r,{normal:e.getModel("selectorLabel"),emphasis:e.getModel(["emphasis","selectorLabel"])},{defaultText:t.title}),Js(r)}))},e.prototype._createItem=function(t,e,n,i,r,o,a,s,l,u,h){var c=i.get("itemWidth"),p=i.get("itemHeight"),d=i.get("inactiveColor"),f=i.get("inactiveBorderColor"),g=i.get("symbolKeepAspect"),y=i.getModel("itemStyle"),v=i.isSelected(t),m=new Oz,_=n.getModel("textStyle"),x=n.get("icon"),b=n.getModel("tooltip"),w=b.parentModel,S=uy(r=x||r,0,0,c,p,v?s:d,null==g||g);if(m.add(Nz(S,r,y,l,f,u,v)),!x&&o&&(o!==r||"none"===o)){var M=.8*p;"none"===o&&(o="circle");var T=uy(o,(c-M)/2,(p-M)/2,M,M,v?s:d,null==g||g);m.add(Nz(T,o,y,l,f,u,v))}var C="left"===a?c+5:-5,A=a,D=i.get("formatter"),L=t;"string"==typeof D&&D?L=D.replace("{name}",null!=t?t:""):"function"==typeof D&&(L=D(t)),m.add(new ls({style:nh(_,{text:L,x:C,y:p/2,fill:v?_.getTextColor():d,align:A,verticalAlign:"middle"})}));var k=new os({shape:m.getBoundingRect(),invisible:!0});if(b.get("show")){var P={componentType:"legend",legendIndex:i.componentIndex,name:t,$vars:["name"]};k.tooltip=I({content:t,formatter:w.get("formatter",!0)||function(t){return t.name},formatterParams:P},b.option)}return m.add(k),m.eachChild((function(t){t.silent=!0})),k.silent=!h,this.getContentGroup().add(m),Js(m),m.__legendDataIndex=e,m},e.prototype.layoutInner=function(t,e,n,i,r,o){var a=this.getContentGroup(),s=this.getSelectorGroup();Cc(t.get("orient"),a,t.get("itemGap"),n.width,n.height);var l=a.getBoundingRect(),u=[-l.x,-l.y];if(s.markRedraw(),a.markRedraw(),r){Cc("horizontal",s,t.get("selectorItemGap",!0));var h=s.getBoundingRect(),c=[-h.x,-h.y],p=t.get("selectorButtonGap",!0),d=t.getOrient().index,f=0===d?"width":"height",g=0===d?"height":"width",y=0===d?"y":"x";"end"===o?c[d]+=l[f]+p:u[d]+=h[f]+p,c[1-d]+=l[g]/2-h[g]/2,s.x=c[0],s.y=c[1],a.x=u[0],a.y=u[1];var v={x:0,y:0};return v[f]=l[f]+p+h[f],v[g]=Math.max(l[g],h[g]),v[y]=Math.min(0,h[y]+c[1-d]),v}return a.x=u[0],a.y=u[1],this.group.getBoundingRect()},e.prototype.remove=function(){this.getContentGroup().removeAll(),this._isFirstRender=!0},e.type="legend.plain",e}(pf);function Nz(t,e,n,i,r,o,a){var s;return"line"!==e&&e.indexOf("empty")<0?(s=n.getItemStyle(),t.style.stroke=i,t.style.decal=o,a||(s.stroke=r)):s=n.getItemStyle(["borderWidth","borderColor"]),t.setStyle(s),t}function Ez(t,e,n,i){Vz(t,e,n,i),n.dispatchAction({type:"legendToggleSelect",name:null!=t?t:e}),Bz(t,e,n,i)}function zz(t){for(var e,n=t.getZr().storage.getDisplayList(),i=0,r=n.length;i<r&&!(e=n[i].states.emphasis);)i++;return e&&e.hoverLayer}function Bz(t,e,n,i){zz(n)||n.dispatchAction({type:"highlight",seriesName:t,name:e,excludeSeriesId:i})}function Vz(t,e,n,i){zz(n)||n.dispatchAction({type:"downplay",seriesName:t,name:e,excludeSeriesId:i})}function Fz(t){var e=t.findComponents({mainType:"legend"});e&&e.length&&t.filterSeries((function(t){for(var n=0;n<e.length;n++)if(!e[n].isSelected(t.name))return!1;return!0}))}function Gz(t,e,n){var i,r={},o="toggleSelected"===t;return n.eachComponent("legend",(function(n){o&&null!=i?n[i?"select":"unSelect"](e.name):"allSelect"===t||"inverseSelect"===t?n[t]():(n[t](e.name),i=n.isSelected(e.name)),P(n.getData(),(function(t){var e=t.get("name");if("\n"!==e&&""!==e){var i=n.isSelected(e);r.hasOwnProperty(e)?r[e]=r[e]&&i:r[e]=i}}))})),"allSelect"===t||"inverseSelect"===t?{selected:r}:{name:e.name,selected:r}}function Hz(t){t.registerComponentModel(Lz),t.registerComponentView(Rz),t.registerProcessor(t.PRIORITY.PROCESSOR.SERIES_FILTER,Fz),t.registerSubTypeDefaulter("legend",(function(){return"plain"})),function(t){t.registerAction("legendToggleSelect","legendselectchanged",V(Gz,"toggleSelected")),t.registerAction("legendAllSelect","legendselectall",V(Gz,"allSelect")),t.registerAction("legendInverseSelect","legendinverseselect",V(Gz,"inverseSelect")),t.registerAction("legendSelect","legendselected",V(Gz,"select")),t.registerAction("legendUnSelect","legendunselected",V(Gz,"unSelect"))}(t)}var Wz=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.setScrollDataIndex=function(t){this.option.scrollDataIndex=t},e.prototype.init=function(e,n,i){var r=Pc(e);t.prototype.init.call(this,e,n,i),Yz(this,e,r)},e.prototype.mergeOption=function(e,n){t.prototype.mergeOption.call(this,e,n),Yz(this,this.option,e)},e.type="legend.scroll",e.defaultOption=Th(Lz.defaultOption,{scrollDataIndex:0,pageButtonItemGap:5,pageButtonGap:null,pageButtonPosition:"end",pageFormatter:"{current}/{total}",pageIcons:{horizontal:["M0,0L12,-10L12,10z","M0,0L-12,-10L-12,10z"],vertical:["M0,0L20,0L10,-20z","M0,0L20,0L10,20z"]},pageIconColor:"#2f4554",pageIconInactiveColor:"#aaa",pageIconSize:15,pageTextStyle:{color:"#333"},animationDurationUpdate:800}),e}(Lz);function Yz(t,e,n){var i=[1,1];i[t.getOrient().index]=0,kc(e,n,{type:"box",ignoreSize:!!i})}var Xz=zi,Uz=["width","height"],Zz=["x","y"],jz=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.newlineDisabled=!0,n._currentIndex=0,n}return n(e,t),e.prototype.init=function(){t.prototype.init.call(this),this.group.add(this._containerGroup=new Xz),this._containerGroup.add(this.getContentGroup()),this.group.add(this._controllerGroup=new Xz)},e.prototype.resetInner=function(){t.prototype.resetInner.call(this),this._controllerGroup.removeAll(),this._containerGroup.removeClipPath(),this._containerGroup.__rectSize=null},e.prototype.renderInner=function(e,n,i,r,o,a,s){var l=this;t.prototype.renderInner.call(this,e,n,i,r,o,a,s);var u=this._controllerGroup,h=n.get("pageIconSize",!0),c=F(h)?h:[h,h];d("pagePrev",0);var p=n.getModel("pageTextStyle");function d(t,e){var i=t+"DataIndex",o=Uu(n.get("pageIcons",!0)[n.getOrient().name][e],{onclick:B(l._pageGo,l,i,n,r)},{x:-c[0]/2,y:-c[1]/2,width:c[0],height:c[1]});o.name=t,u.add(o)}u.add(new ls({name:"pageText",style:{text:"xx/xx",fill:p.getTextColor(),font:p.getFont(),verticalAlign:"middle",align:"center"},silent:!0})),d("pageNext",1)},e.prototype.layoutInner=function(t,e,n,i,r,o){var a=this.getSelectorGroup(),s=t.getOrient().index,l=Uz[s],u=Zz[s],h=Uz[1-s],c=Zz[1-s];r&&Cc("horizontal",a,t.get("selectorItemGap",!0));var p=t.get("selectorButtonGap",!0),d=a.getBoundingRect(),f=[-d.x,-d.y],g=w(n);r&&(g[l]=n[l]-d[l]-p);var y=this._layoutContentAndController(t,i,g,s,l,h,c,u);if(r){if("end"===o)f[s]+=y[l]+p;else{var v=d[l]+p;f[s]-=v,y[u]-=v}y[l]+=d[l]+p,f[1-s]+=y[c]+y[h]/2-d[h]/2,y[h]=Math.max(y[h],d[h]),y[c]=Math.min(y[c],d[c]+f[1-s]),a.x=f[0],a.y=f[1],a.markRedraw()}return y},e.prototype._layoutContentAndController=function(t,e,n,i,r,o,a,s){var l=this.getContentGroup(),u=this._containerGroup,h=this._controllerGroup;Cc(t.get("orient"),l,t.get("itemGap"),i?n.width:null,i?null:n.height),Cc("horizontal",h,t.get("pageButtonItemGap",!0));var c=l.getBoundingRect(),p=h.getBoundingRect(),d=this._showController=c[r]>n[r],f=[-c.x,-c.y];e||(f[i]=l[s]);var g=[0,0],y=[-p.x,-p.y],v=tt(t.get("pageButtonGap",!0),t.get("itemGap",!0));d&&("end"===t.get("pageButtonPosition",!0)?y[i]+=n[r]-p[r]:g[i]+=p[r]+v);y[1-i]+=c[o]/2-p[o]/2,l.setPosition(f),u.setPosition(g),h.setPosition(y);var m={x:0,y:0};if(m[r]=d?n[r]:c[r],m[o]=Math.max(c[o],p[o]),m[a]=Math.min(0,p[a]+y[1-i]),u.__rectSize=n[r],d){var _={x:0,y:0};_[r]=Math.max(n[r]-p[r]-v,0),_[o]=m[o],u.setClipPath(new os({shape:_})),u.__rectSize=_[r]}else h.eachChild((function(t){t.attr({invisible:!0,silent:!0})}));var x=this._getPageInfo(t);return null!=x.pageIndex&&Ou(l,{x:x.contentPosition[0],y:x.contentPosition[1]},d?t:null),this._updatePageInfoView(t,x),m},e.prototype._pageGo=function(t,e,n){var i=this._getPageInfo(e)[t];null!=i&&n.dispatchAction({type:"legendScroll",scrollDataIndex:i,legendId:e.id})},e.prototype._updatePageInfoView=function(t,e){var n=this._controllerGroup;P(["pagePrev","pageNext"],(function(i){var r=null!=e[i+"DataIndex"],o=n.childOfName(i);o&&(o.setStyle("fill",r?t.get("pageIconColor",!0):t.get("pageIconInactiveColor",!0)),o.cursor=r?"pointer":"default")}));var i=n.childOfName("pageText"),r=t.get("pageFormatter"),o=e.pageIndex,a=null!=o?o+1:0,s=e.pageCount;i&&r&&i.setStyle("text",H(r)?r.replace("{current}",null==a?"":a+"").replace("{total}",null==s?"":s+""):r({current:a,total:s}))},e.prototype._getPageInfo=function(t){var e=t.get("scrollDataIndex",!0),n=this.getContentGroup(),i=this._containerGroup.__rectSize,r=t.getOrient().index,o=Uz[r],a=Zz[r],s=this._findTargetItemIndex(e),l=n.children(),u=l[s],h=l.length,c=h?1:0,p={contentPosition:[n.x,n.y],pageCount:c,pageIndex:c-1,pagePrevDataIndex:null,pageNextDataIndex:null};if(!u)return p;var d=m(u);p.contentPosition[r]=-d.s;for(var f=s+1,g=d,y=d,v=null;f<=h;++f)(!(v=m(l[f]))&&y.e>g.s+i||v&&!_(v,g.s))&&(g=y.i>g.i?y:v)&&(null==p.pageNextDataIndex&&(p.pageNextDataIndex=g.i),++p.pageCount),y=v;for(f=s-1,g=d,y=d,v=null;f>=-1;--f)(v=m(l[f]))&&_(y,v.s)||!(g.i<y.i)||(y=g,null==p.pagePrevDataIndex&&(p.pagePrevDataIndex=g.i),++p.pageCount,++p.pageIndex),g=v;return p;function m(t){if(t){var e=t.getBoundingRect(),n=e[a]+t[a];return{s:n,e:n+e[o],i:t.__legendDataIndex}}}function _(t,e){return t.e>=e&&t.s<=e+i}},e.prototype._findTargetItemIndex=function(t){return this._showController?(this.getContentGroup().eachChild((function(i,r){var o=i.__legendDataIndex;null==n&&null!=o&&(n=r),o===t&&(e=r)})),null!=e?e:n):0;var e,n},e.type="legend.scroll",e}(Rz);function qz(t){em(Hz),t.registerComponentModel(Wz),t.registerComponentView(jz),function(t){t.registerAction("legendScroll","legendscroll",(function(t,e){var n=t.scrollDataIndex;null!=n&&e.eachComponent({mainType:"legend",subType:"scroll",query:t},(function(t){t.setScrollDataIndex(n)}))}))}(t)}var Kz=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="dataZoom.inside",e.defaultOption=Th(KR.defaultOption,{disabled:!1,zoomLock:!1,zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!1,preventDefaultMouseMove:!0}),e}(KR),$z=Lr();function Jz(t,e,n){$z(t).coordSysRecordMap.each((function(t){var i=t.dataZoomInfoMap.get(e.uid);i&&(i.getRange=n)}))}function Qz(t,e){if(e){t.removeKey(e.model.uid);var n=e.controller;n&&n.dispose()}}function tB(t,e){t.dispatchAction({type:"dataZoom",animation:{easing:"cubicOut",duration:100},batch:e})}function eB(t,e,n,i){return t.coordinateSystem.containPoint([n,i])}function nB(t){t.registerProcessor(t.PRIORITY.PROCESSOR.FILTER,(function(t,e){var n=$z(e),i=n.coordSysRecordMap||(n.coordSysRecordMap=ht());i.each((function(t){t.dataZoomInfoMap=null})),t.eachComponent({mainType:"dataZoom",subType:"inside"},(function(t){P(jR(t).infoList,(function(n){var r=n.model.uid,o=i.get(r)||i.set(r,function(t,e){var n={model:e,containsPoint:V(eB,e),dispatchAction:V(tB,t),dataZoomInfoMap:null,controller:null},i=n.controller=new QS(t.getZr());return P(["pan","zoom","scrollMove"],(function(t){i.on(t,(function(e){var i=[];n.dataZoomInfoMap.each((function(r){if(e.isAvailableBehavior(r.model.option)){var o=(r.getRange||{})[t],a=o&&o(r.dzReferCoordSysInfo,n.model.mainType,n.controller,e);!r.model.get("disabled",!0)&&a&&i.push({dataZoomId:r.model.id,start:a[0],end:a[1]})}})),i.length&&n.dispatchAction(i)}))})),n}(e,n.model));(o.dataZoomInfoMap||(o.dataZoomInfoMap=ht())).set(t.uid,{dzReferCoordSysInfo:n,model:t,getRange:null})}))})),i.each((function(t){var e,n=t.controller,r=t.dataZoomInfoMap;if(r){var o=r.keys()[0];null!=o&&(e=r.get(o))}if(e){var a=function(t){var e,n="type_",i={type_true:2,type_move:1,type_false:0,type_undefined:-1},r=!0;return t.each((function(t){var o=t.model,a=!o.get("disabled",!0)&&(!o.get("zoomLock",!0)||"move");i[n+a]>i[n+e]&&(e=a),r=r&&o.get("preventDefaultMouseMove",!0)})),{controlType:e,opt:{zoomOnMouseWheel:!0,moveOnMouseMove:!0,moveOnMouseWheel:!0,preventDefaultMouseMove:!!r}}}(r);n.enable(a.controlType,a.opt),n.setPointerChecker(t.containsPoint),Tf(t,"dispatchAction",e.model.get("throttle",!0),"fixRate")}else Qz(i,t)}))}))}var iB=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="dataZoom.inside",e}return n(e,t),e.prototype.render=function(e,n,i){t.prototype.render.apply(this,arguments),e.noTarget()?this._clear():(this.range=e.getPercentRange(),Jz(i,e,{pan:B(rB.pan,this),zoom:B(rB.zoom,this),scrollMove:B(rB.scrollMove,this)}))},e.prototype.dispose=function(){this._clear(),t.prototype.dispose.apply(this,arguments)},e.prototype._clear=function(){!function(t,e){for(var n=$z(t).coordSysRecordMap,i=n.keys(),r=0;r<i.length;r++){var o=i[r],a=n.get(o),s=a.dataZoomInfoMap;if(s){var l=e.uid;s.get(l)&&(s.removeKey(l),s.keys().length||Qz(n,a))}}}(this.api,this.dataZoomModel),this.range=null},e.type="dataZoom.inside",e}(QR),rB={zoom:function(t,e,n,i){var r=this.range,o=r.slice(),a=t.axisModels[0];if(a){var s=aB[e](null,[i.originX,i.originY],a,n,t),l=(s.signal>0?s.pixelStart+s.pixelLength-s.pixel:s.pixel-s.pixelStart)/s.pixelLength*(o[1]-o[0])+o[0],u=Math.max(1/i.scale,0);o[0]=(o[0]-l)*u+l,o[1]=(o[1]-l)*u+l;var h=this.dataZoomModel.findRepresentativeAxisProxy().getMinMaxSpan();return tA(0,o,[0,100],0,h.minSpan,h.maxSpan),this.range=o,r[0]!==o[0]||r[1]!==o[1]?o:void 0}},pan:oB((function(t,e,n,i,r,o){var a=aB[i]([o.oldX,o.oldY],[o.newX,o.newY],e,r,n);return a.signal*(t[1]-t[0])*a.pixel/a.pixelLength})),scrollMove:oB((function(t,e,n,i,r,o){return aB[i]([0,0],[o.scrollDelta,o.scrollDelta],e,r,n).signal*(t[1]-t[0])*o.scrollDelta}))};function oB(t){return function(e,n,i,r){var o=this.range,a=o.slice(),s=e.axisModels[0];if(s)return tA(t(a,s,e,n,i,r),a,[0,100],"all"),this.range=a,o[0]!==a[0]||o[1]!==a[1]?a:void 0}}var aB={grid:function(t,e,n,i,r){var o=n.axis,a={},s=r.model.coordinateSystem.getRect();return t=t||[0,0],"x"===o.dim?(a.pixel=e[0]-t[0],a.pixelLength=s.width,a.pixelStart=s.x,a.signal=o.inverse?1:-1):(a.pixel=e[1]-t[1],a.pixelLength=s.height,a.pixelStart=s.y,a.signal=o.inverse?-1:1),a},polar:function(t,e,n,i,r){var o=n.axis,a={},s=r.model.coordinateSystem,l=s.getRadiusAxis().getExtent(),u=s.getAngleAxis().getExtent();return t=t?s.pointToCoord(t):[0,0],e=s.pointToCoord(e),"radiusAxis"===n.mainType?(a.pixel=e[0]-t[0],a.pixelLength=l[1]-l[0],a.pixelStart=l[0],a.signal=o.inverse?1:-1):(a.pixel=e[1]-t[1],a.pixelLength=u[1]-u[0],a.pixelStart=u[0],a.signal=o.inverse?-1:1),a},singleAxis:function(t,e,n,i,r){var o=n.axis,a=r.model.coordinateSystem.getRect(),s={};return t=t||[0,0],"horizontal"===o.orient?(s.pixel=e[0]-t[0],s.pixelLength=a.width,s.pixelStart=a.x,s.signal=o.inverse?1:-1):(s.pixel=e[1]-t[1],s.pixelLength=a.height,s.pixelStart=a.y,s.signal=o.inverse?-1:1),s}};function sB(t){aN(t),t.registerComponentModel(Kz),t.registerComponentView(iB),nB(t)}var lB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="dataZoom.slider",e.layoutMode="box",e.defaultOption=Th(KR.defaultOption,{show:!0,right:"ph",top:"ph",width:"ph",height:"ph",left:null,bottom:null,borderColor:"#d2dbee",borderRadius:3,backgroundColor:"rgba(47,69,84,0)",dataBackground:{lineStyle:{color:"#d2dbee",width:.5},areaStyle:{color:"#d2dbee",opacity:.2}},selectedDataBackground:{lineStyle:{color:"#8fb0f7",width:.5},areaStyle:{color:"#8fb0f7",opacity:.2}},fillerColor:"rgba(135,175,274,0.2)",handleIcon:"path://M-9.35,34.56V42m0-40V9.5m-2,0h4a2,2,0,0,1,2,2v21a2,2,0,0,1-2,2h-4a2,2,0,0,1-2-2v-21A2,2,0,0,1-11.35,9.5Z",handleSize:"100%",handleStyle:{color:"#fff",borderColor:"#ACB8D1"},moveHandleSize:7,moveHandleIcon:"path://M-320.9-50L-320.9-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-348-41-339-50-320.9-50z M-212.3-50L-212.3-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-239.4-41-230.4-50-212.3-50z M-103.7-50L-103.7-50c18.1,0,27.1,9,27.1,27.1V85.7c0,18.1-9,27.1-27.1,27.1l0,0c-18.1,0-27.1-9-27.1-27.1V-22.9C-130.9-41-121.8-50-103.7-50z",moveHandleStyle:{color:"#D2DBEE",opacity:.7},showDetail:!0,showDataShadow:"auto",realtime:!0,zoomLock:!1,textStyle:{color:"#6E7079"},brushSelect:!0,brushStyle:{color:"rgba(135,175,274,0.15)"},emphasis:{handleStyle:{borderColor:"#8FB0F7"},moveHandleStyle:{color:"#8FB0F7"}}}),e}(KR),uB=os,hB="horizontal",cB="vertical",pB=["line","bar","candlestick","scatter"],dB={easing:"cubicOut",duration:100},fB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._displayables={},n}return n(e,t),e.prototype.init=function(t,e){this.api=e,this._onBrush=B(this._onBrush,this),this._onBrushEnd=B(this._onBrushEnd,this)},e.prototype.render=function(e,n,i,r){if(t.prototype.render.apply(this,arguments),Tf(this,"_dispatchZoomAction",e.get("throttle"),"fixRate"),this._orient=e.getOrient(),!1!==e.get("show")){if(e.noTarget())return this._clear(),void this.group.removeAll();r&&"dataZoom"===r.type&&r.from===this.uid||this._buildView(),this._updateView()}else this.group.removeAll()},e.prototype.dispose=function(){this._clear(),t.prototype.dispose.apply(this,arguments)},e.prototype._clear=function(){var t,e,n;(n=(t=this)[e="_dispatchZoomAction"])&&n[wf]&&(t[e]=n[wf]);var i=this.api.getZr();i.off("mousemove",this._onBrush),i.off("mouseup",this._onBrushEnd)},e.prototype._buildView=function(){var t=this.group;t.removeAll(),this._brushing=!1,this._displayables.brushRect=null,this._resetLocation(),this._resetInterval();var e=this._displayables.sliderGroup=new zi;this._renderBackground(),this._renderHandle(),this._renderDataShadow(),t.add(e),this._positionGroup()},e.prototype._resetLocation=function(){var t=this.dataZoomModel,e=this.api,n=t.get("brushSelect")?7:0,i=this._findCoordRect(),r={width:e.getWidth(),height:e.getHeight()},o=this._orient===hB?{right:r.width-i.x-i.width,top:r.height-30-7-n,width:i.width,height:30}:{right:7,top:i.y,width:30,height:i.height},a=Pc(t.option);P(["right","top","width","height"],(function(t){"ph"===a[t]&&(a[t]=o[t])}));var s=Ac(a,r);this._location={x:s.x,y:s.y},this._size=[s.width,s.height],this._orient===cB&&this._size.reverse()},e.prototype._positionGroup=function(){var t=this.group,e=this._location,n=this._orient,i=this.dataZoomModel.getFirstTargetAxisModel(),r=i&&i.get("inverse"),o=this._displayables.sliderGroup,a=(this._dataShadowInfo||{}).otherAxisInverse;o.attr(n!==hB||r?n===hB&&r?{scaleY:a?1:-1,scaleX:-1}:n!==cB||r?{scaleY:a?-1:1,scaleX:-1,rotation:Math.PI/2}:{scaleY:a?-1:1,scaleX:1,rotation:Math.PI/2}:{scaleY:a?1:-1,scaleX:1});var s=t.getBoundingRect([o]);t.x=e.x-s.x,t.y=e.y-s.y,t.markRedraw()},e.prototype._getViewExtent=function(){return[0,this._size[0]]},e.prototype._renderBackground=function(){var t=this.dataZoomModel,e=this._size,n=this._displayables.sliderGroup,i=t.get("brushSelect");n.add(new uB({silent:!0,shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:t.get("backgroundColor")},z2:-40}));var r=new uB({shape:{x:0,y:0,width:e[0],height:e[1]},style:{fill:"transparent"},z2:0,onclick:B(this._onClickPanel,this)}),o=this.api.getZr();i?(r.on("mousedown",this._onBrushStart,this),r.cursor="crosshair",o.on("mousemove",this._onBrush),o.on("mouseup",this._onBrushEnd)):(o.off("mousemove",this._onBrush),o.off("mouseup",this._onBrushEnd)),n.add(r)},e.prototype._renderDataShadow=function(){var t=this._dataShadowInfo=this._prepareDataShadowInfo();if(this._displayables.dataShadowSegs=[],t){var e=this._size,n=t.series,i=n.getRawData(),r=n.getShadowDim?n.getShadowDim():t.otherDim;if(null!=r){var o=i.getDataExtent(r),a=.3*(o[1]-o[0]);o=[o[0]-a,o[1]+a];var s,l=[0,e[1]],u=[0,e[0]],h=[[e[0],0],[0,0]],c=[],p=u[1]/(i.count()-1),d=0,f=Math.round(i.count()/e[0]);i.each([r],(function(t,e){if(f>0&&e%f)d+=p;else{var n=null==t||isNaN(t)||""===t,i=n?0:Ui(t,o,l,!0);n&&!s&&e?(h.push([h[h.length-1][0],0]),c.push([c[c.length-1][0],0])):!n&&s&&(h.push([d,0]),c.push([d,0])),h.push([d,i]),c.push([d,i]),d+=p,s=n}}));for(var g=this.dataZoomModel,y=0;y<3;y++){var v=m(1===y);this._displayables.sliderGroup.add(v),this._displayables.dataShadowSegs.push(v)}}}function m(t){var e=g.getModel(t?"selectedDataBackground":"dataBackground"),n=new zi,i=new ql({shape:{points:h},segmentIgnoreThreshold:1,style:e.getModel("areaStyle").getAreaStyle(),silent:!0,z2:-20}),r=new $l({shape:{points:c},segmentIgnoreThreshold:1,style:e.getModel("lineStyle").getLineStyle(),silent:!0,z2:-19});return n.add(i),n.add(r),n}},e.prototype._prepareDataShadowInfo=function(){var t=this.dataZoomModel,e=t.get("showDataShadow");if(!1!==e){var n,i=this.ecModel;return t.eachTargetAxis((function(r,o){P(t.getAxisProxy(r,o).getTargetSeriesModels(),(function(t){if(!(n||!0!==e&&A(pB,t.get("type"))<0)){var a,s=i.getComponent(UR(r),o).axis,l={x:"y",y:"x",radius:"angle",angle:"radius"}[r],u=t.coordinateSystem;null!=l&&u.getOtherAxis&&(a=u.getOtherAxis(s).inverse),l=t.getData().mapDimension(l),n={thisAxis:s,series:t,thisDim:r,otherDim:l,otherAxisInverse:a}}}),this)}),this),n}},e.prototype._renderHandle=function(){var t=this.group,e=this._displayables,n=e.handles=[null,null],i=e.handleLabels=[null,null],r=this._displayables.sliderGroup,o=this._size,a=this.dataZoomModel,s=this.api,l=a.get("borderRadius")||0,u=a.get("brushSelect"),h=e.filler=new uB({silent:u,style:{fill:a.get("fillerColor")},textConfig:{position:"inside"}});r.add(h),r.add(new uB({silent:!0,subPixelOptimize:!0,shape:{x:0,y:0,width:o[0],height:o[1],r:l},style:{stroke:a.get("dataBackgroundColor")||a.get("borderColor"),lineWidth:1,fill:"rgba(0,0,0,0)"}})),P([0,1],(function(e){var o=a.get("handleIcon");!ay[o]&&o.indexOf("path://")<0&&(o="path://"+o);var s=uy(o,-1,0,2,2,null,!0);s.attr({cursor:gB(this._orient),draggable:!0,drift:B(this._onDragMove,this,e),ondragend:B(this._onDragEnd,this),onmouseover:B(this._showDataInfo,this,!0),onmouseout:B(this._showDataInfo,this,!1),z2:5});var l=s.getBoundingRect(),u=a.get("handleSize");this._handleHeight=Zi(u,this._size[1]),this._handleWidth=l.width/l.height*this._handleHeight,s.setStyle(a.getModel("handleStyle").getItemStyle()),s.style.strokeNoScale=!0,s.rectHover=!0,s.ensureState("emphasis").style=a.getModel(["emphasis","handleStyle"]).getItemStyle(),Js(s);var h=a.get("handleColor");null!=h&&(s.style.fill=h),r.add(n[e]=s);var c=a.getModel("textStyle");t.add(i[e]=new ls({silent:!0,invisible:!0,style:{x:0,y:0,text:"",verticalAlign:"middle",align:"center",fill:c.getTextColor(),font:c.getFont()},z2:10}))}),this);var c=h;if(u){var p=Zi(a.get("moveHandleSize"),o[1]),d=e.moveHandle=new os({style:a.getModel("moveHandleStyle").getItemStyle(),silent:!0,shape:{r:[0,0,2,2],y:o[1]-.5,height:p}}),f=.8*p,g=e.moveHandleIcon=uy(a.get("moveHandleIcon"),-f/2,-f/2,f,f,"#fff",!0);g.silent=!0,g.y=o[1]+p/2-.5,d.ensureState("emphasis").style=a.getModel(["emphasis","moveHandleStyle"]).getItemStyle();var y=Math.min(o[1]/2,Math.max(p,10));(c=e.moveZone=new os({invisible:!0,shape:{y:o[1]-y,height:p+y}})).on("mouseover",(function(){s.enterEmphasis(d)})).on("mouseout",(function(){s.leaveEmphasis(d)})),r.add(d),r.add(g),r.add(c)}c.attr({draggable:!0,cursor:gB(this._orient),drift:B(this._onDragMove,this,"all"),ondragstart:B(this._showDataInfo,this,!0),ondragend:B(this._onDragEnd,this),onmouseover:B(this._showDataInfo,this,!0),onmouseout:B(this._showDataInfo,this,!1)})},e.prototype._resetInterval=function(){var t=this._range=this.dataZoomModel.getPercentRange(),e=this._getViewExtent();this._handleEnds=[Ui(t[0],[0,100],e,!0),Ui(t[1],[0,100],e,!0)]},e.prototype._updateInterval=function(t,e){var n=this.dataZoomModel,i=this._handleEnds,r=this._getViewExtent(),o=n.findRepresentativeAxisProxy().getMinMaxSpan(),a=[0,100];tA(e,i,r,n.get("zoomLock")?"all":t,null!=o.minSpan?Ui(o.minSpan,a,r,!0):null,null!=o.maxSpan?Ui(o.maxSpan,a,r,!0):null);var s=this._range,l=this._range=qi([Ui(i[0],r,a,!0),Ui(i[1],r,a,!0)]);return!s||s[0]!==l[0]||s[1]!==l[1]},e.prototype._updateView=function(t){var e=this._displayables,n=this._handleEnds,i=qi(n.slice()),r=this._size;P([0,1],(function(t){var i=e.handles[t],o=this._handleHeight;i.attr({scaleX:o/2,scaleY:o/2,x:n[t]+(t?-1:1),y:r[1]/2-o/2})}),this),e.filler.setShape({x:i[0],y:0,width:i[1]-i[0],height:r[1]});var o={x:i[0],width:i[1]-i[0]};e.moveHandle&&(e.moveHandle.setShape(o),e.moveZone.setShape(o),e.moveZone.getBoundingRect(),e.moveHandleIcon&&e.moveHandleIcon.attr("x",o.x+o.width/2));for(var a=e.dataShadowSegs,s=[0,i[0],i[1],r[0]],l=0;l<a.length;l++){var u=a[l],h=u.getClipPath();h||(h=new os,u.setClipPath(h)),h.setShape({x:s[l],y:0,width:s[l+1]-s[l],height:r[1]})}this._updateDataInfo(t)},e.prototype._updateDataInfo=function(t){var e=this.dataZoomModel,n=this._displayables,i=n.handleLabels,r=this._orient,o=["",""];if(e.get("showDetail")){var a=e.findRepresentativeAxisProxy();if(a){var s=a.getAxisModel().axis,l=this._range,u=t?a.calculateDataWindow({start:l[0],end:l[1]}).valueWindow:a.getDataValueWindow();o=[this._formatLabel(u[0],s),this._formatLabel(u[1],s)]}}var h=qi(this._handleEnds.slice());function c(t){var e=Vu(n.handles[t].parent,this.group),a=Gu(0===t?"right":"left",e),s=this._handleWidth/2+5,l=Fu([h[t]+(0===t?-s:s),this._size[1]/2],e);i[t].setStyle({x:l[0],y:l[1],verticalAlign:r===hB?"middle":a,align:r===hB?a:"center",text:o[t]})}c.call(this,0),c.call(this,1)},e.prototype._formatLabel=function(t,e){var n=this.dataZoomModel,i=n.get("labelFormatter"),r=n.get("labelPrecision");null!=r&&"auto"!==r||(r=e.getPixelPrecision());var o=null==t||isNaN(t)?"":"category"===e.type||"time"===e.type?e.scale.getLabel({value:Math.round(t)}):t.toFixed(Math.min(r,20));return G(i)?i(t,o):H(i)?i.replace("{value}",o):o},e.prototype._showDataInfo=function(t){t=this._dragging||t;var e=this._displayables,n=e.handleLabels;n[0].attr("invisible",!t),n[1].attr("invisible",!t),e.moveHandle&&this.api[t?"enterEmphasis":"leaveEmphasis"](e.moveHandle,1)},e.prototype._onDragMove=function(t,e,n,i){this._dragging=!0,ee(i.event);var r=Fu([e,n],this._displayables.sliderGroup.getLocalTransform(),!0),o=this._updateInterval(t,r[0]),a=this.dataZoomModel.get("realtime");this._updateView(!a),o&&a&&this._dispatchZoomAction(!0)},e.prototype._onDragEnd=function(){this._dragging=!1,this._showDataInfo(!1),!this.dataZoomModel.get("realtime")&&this._dispatchZoomAction(!1)},e.prototype._onClickPanel=function(t){var e=this._size,n=this._displayables.sliderGroup.transformCoordToLocal(t.offsetX,t.offsetY);if(!(n[0]<0||n[0]>e[0]||n[1]<0||n[1]>e[1])){var i=this._handleEnds,r=(i[0]+i[1])/2,o=this._updateInterval("all",n[0]-r);this._updateView(),o&&this._dispatchZoomAction(!1)}},e.prototype._onBrushStart=function(t){var e=t.offsetX,n=t.offsetY;this._brushStart=new In(e,n),this._brushing=!0,this._brushStartTime=+new Date},e.prototype._onBrushEnd=function(t){if(this._brushing){var e=this._displayables.brushRect;if(this._brushing=!1,e){e.attr("ignore",!0);var n=e.shape;if(!(+new Date-this._brushStartTime<200&&Math.abs(n.width)<5)){var i=this._getViewExtent(),r=[0,100];this._range=qi([Ui(n.x,i,r,!0),Ui(n.x+n.width,i,r,!0)]),this._handleEnds=[n.x,n.x+n.width],this._updateView(),this._dispatchZoomAction(!1)}}}},e.prototype._onBrush=function(t){this._brushing&&(ee(t.event),this._updateBrushRect(t.offsetX,t.offsetY))},e.prototype._updateBrushRect=function(t,e){var n=this._displayables,i=this.dataZoomModel,r=n.brushRect;r||(r=n.brushRect=new uB({silent:!0,style:i.getModel("brushStyle").getItemStyle()}),n.sliderGroup.add(r)),r.attr("ignore",!1);var o=this._brushStart,a=this._displayables.sliderGroup,s=a.transformCoordToLocal(t,e),l=a.transformCoordToLocal(o.x,o.y),u=this._size;s[0]=Math.max(Math.min(u[0],s[0]),0),r.setShape({x:l[0],y:0,width:s[0]-l[0],height:u[1]})},e.prototype._dispatchZoomAction=function(t){var e=this._range;this.api.dispatchAction({type:"dataZoom",from:this.uid,dataZoomId:this.dataZoomModel.id,animation:t?dB:null,start:e[0],end:e[1]})},e.prototype._findCoordRect=function(){var t,e=jR(this.dataZoomModel).infoList;if(!t&&e.length){var n=e[0].model.coordinateSystem;t=n.getRect&&n.getRect()}if(!t){var i=this.api.getWidth(),r=this.api.getHeight();t={x:.2*i,y:.2*r,width:.6*i,height:.6*r}}return t},e.type="dataZoom.slider",e}(QR);function gB(t){return"vertical"===t?"ns-resize":"ew-resize"}function yB(t){t.registerComponentModel(lB),t.registerComponentView(fB),aN(t)}var vB=function(t,e,n){var i=w((mB[t]||{})[e]);return n&&F(i)?i[i.length-1]:i},mB={color:{active:["#006edd","#e0ffff"],inactive:["rgba(0,0,0,0)"]},colorHue:{active:[0,360],inactive:[0,0]},colorSaturation:{active:[.3,1],inactive:[0,0]},colorLightness:{active:[.9,.5],inactive:[0,0]},colorAlpha:{active:[.3,1],inactive:[0,0]},opacity:{active:[.3,1],inactive:[0,0]},symbol:{active:["circle","roundRect","diamond"],inactive:["none"]},symbolSize:{active:[10,50],inactive:[0,0]}},_B=jI.mapVisual,xB=jI.eachVisual,bB=F,wB=P,SB=qi,MB=Ui,IB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.stateList=["inRange","outOfRange"],n.replacableOptionKeys=["inRange","outOfRange","target","controller","color"],n.layoutMode={type:"box",ignoreSize:!0},n.dataBound=[-1/0,1/0],n.targetVisuals={},n.controllerVisuals={},n}return n(e,t),e.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n)},e.prototype.optionUpdated=function(t,e){var n=this.option;a.canvasSupported||(n.realtime=!1),!e&&xE(n,t,this.replacableOptionKeys),this.textStyleModel=this.getModel("textStyle"),this.resetItemSize(),this.completeVisualOption()},e.prototype.resetVisual=function(t){var e=this.stateList;t=B(t,this),this.controllerVisuals=_E(this.option.controller,e,t),this.targetVisuals=_E(this.option.target,e,t)},e.prototype.getTargetSeriesIndices=function(){var t=this.option.seriesIndex,e=[];return null==t||"all"===t?this.ecModel.eachSeries((function(t,n){e.push(n)})):e=_r(t),e},e.prototype.eachTargetSeries=function(t,e){P(this.getTargetSeriesIndices(),(function(n){var i=this.ecModel.getSeriesByIndex(n);i&&t.call(e,i)}),this)},e.prototype.isTargetSeries=function(t){var e=!1;return this.eachTargetSeries((function(n){n===t&&(e=!0)})),e},e.prototype.formatValueText=function(t,e,n){var i,r=this.option,o=r.precision,a=this.dataBound,s=r.formatter;n=n||["<",">"],F(t)&&(t=t.slice(),i=!0);var l=e?t:i?[u(t[0]),u(t[1])]:u(t);return H(s)?s.replace("{value}",i?l[0]:l).replace("{value2}",i?l[1]:l):G(s)?i?s(t[0],t[1]):s(t):i?t[0]===a[0]?n[0]+" "+l[1]:t[1]===a[1]?n[1]+" "+l[0]:l[0]+" - "+l[1]:l;function u(t){return t===a[0]?"min":t===a[1]?"max":(+t).toFixed(Math.min(o,20))}},e.prototype.resetExtent=function(){var t=this.option,e=SB([t.min,t.max]);this._dataExtent=e},e.prototype.getDataDimension=function(t){var e=this.option.dimension,n=t.dimensions;if(null!=e||n.length){if(null!=e)return t.getDimension(e);for(var i=t.dimensions,r=i.length-1;r>=0;r--){var o=i[r];if(!t.getDimensionInfo(o).isCalculationCoord)return o}}},e.prototype.getExtent=function(){return this._dataExtent.slice()},e.prototype.completeVisualOption=function(){var t=this.ecModel,e=this.option,n={inRange:e.inRange,outOfRange:e.outOfRange},i=e.target||(e.target={}),r=e.controller||(e.controller={});S(i,n),S(r,n);var o=this.isCategory();function a(n){bB(e.color)&&!n.inRange&&(n.inRange={color:e.color.slice().reverse()}),n.inRange=n.inRange||{color:t.get("gradientColor")}}a.call(this,i),a.call(this,r),function(t,e,n){var i=t[e],r=t[n];i&&!r&&(r=t[n]={},wB(i,(function(t,e){if(jI.isValidType(e)){var n=vB(e,"inactive",o);null!=n&&(r[e]=n,"color"!==e||r.hasOwnProperty("opacity")||r.hasOwnProperty("colorAlpha")||(r.opacity=[0,0]))}})))}.call(this,i,"inRange","outOfRange"),function(t){var e=(t.inRange||{}).symbol||(t.outOfRange||{}).symbol,n=(t.inRange||{}).symbolSize||(t.outOfRange||{}).symbolSize,i=this.get("inactiveColor");wB(this.stateList,(function(r){var a=this.itemSize,s=t[r];s||(s=t[r]={color:o?i:[i]}),null==s.symbol&&(s.symbol=e&&w(e)||(o?"roundRect":["roundRect"])),null==s.symbolSize&&(s.symbolSize=n&&w(n)||(o?a[0]:[a[0],a[0]])),s.symbol=_B(s.symbol,(function(t){return"none"===t||"square"===t?"roundRect":t}));var l=s.symbolSize;if(null!=l){var u=-1/0;xB(l,(function(t){t>u&&(u=t)})),s.symbolSize=_B(l,(function(t){return MB(t,[0,u],[0,a[0]],!0)}))}}),this)}.call(this,r)},e.prototype.resetItemSize=function(){this.itemSize=[parseFloat(this.get("itemWidth")),parseFloat(this.get("itemHeight"))]},e.prototype.isCategory=function(){return!!this.option.categories},e.prototype.setSelected=function(t){},e.prototype.getSelected=function(){return null},e.prototype.getValueState=function(t){return null},e.prototype.getVisualMeta=function(t){return null},e.type="visualMap",e.dependencies=["series"],e.defaultOption={show:!0,zlevel:0,z:4,seriesIndex:"all",min:0,max:200,left:0,right:null,top:null,bottom:0,itemWidth:null,itemHeight:null,inverse:!1,orient:"vertical",backgroundColor:"rgba(0,0,0,0)",borderColor:"#ccc",contentColor:"#5793f3",inactiveColor:"#aaa",borderWidth:0,padding:5,textGap:10,precision:0,textStyle:{color:"#333"}},e}(Nc),TB=[20,140],CB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.optionUpdated=function(e,n){t.prototype.optionUpdated.apply(this,arguments),this.resetExtent(),this.resetVisual((function(t){t.mappingMethod="linear",t.dataExtent=this.getExtent()})),this._resetRange()},e.prototype.resetItemSize=function(){t.prototype.resetItemSize.apply(this,arguments);var e=this.itemSize;(null==e[0]||isNaN(e[0]))&&(e[0]=TB[0]),(null==e[1]||isNaN(e[1]))&&(e[1]=TB[1])},e.prototype._resetRange=function(){var t=this.getExtent(),e=this.option.range;!e||e.auto?(t.auto=1,this.option.range=t):F(e)&&(e[0]>e[1]&&e.reverse(),e[0]=Math.max(e[0],t[0]),e[1]=Math.min(e[1],t[1]))},e.prototype.completeVisualOption=function(){t.prototype.completeVisualOption.apply(this,arguments),P(this.stateList,(function(t){var e=this.option.controller[t].symbolSize;e&&e[0]!==e[1]&&(e[0]=e[1]/3)}),this)},e.prototype.setSelected=function(t){this.option.range=t.slice(),this._resetRange()},e.prototype.getSelected=function(){var t=this.getExtent(),e=qi((this.get("range")||[]).slice());return e[0]>t[1]&&(e[0]=t[1]),e[1]>t[1]&&(e[1]=t[1]),e[0]<t[0]&&(e[0]=t[0]),e[1]<t[0]&&(e[1]=t[0]),e},e.prototype.getValueState=function(t){var e=this.option.range,n=this.getExtent();return(e[0]<=n[0]||e[0]<=t)&&(e[1]>=n[1]||t<=e[1])?"inRange":"outOfRange"},e.prototype.findTargetDataIndices=function(t){var e=[];return this.eachTargetSeries((function(n){var i=[],r=n.getData();r.each(this.getDataDimension(r),(function(e,n){t[0]<=e&&e<=t[1]&&i.push(n)}),this),e.push({seriesId:n.id,dataIndex:i})}),this),e},e.prototype.getVisualMeta=function(t){var e=AB(this,"outOfRange",this.getExtent()),n=AB(this,"inRange",this.option.range.slice()),i=[];function r(e,n){i.push({value:e,color:t(e,n)})}for(var o=0,a=0,s=n.length,l=e.length;a<l&&(!n.length||e[a]<=n[0]);a++)e[a]<n[o]&&r(e[a],"outOfRange");for(var u=1;o<s;o++,u=0)u&&i.length&&r(n[o],"outOfRange"),r(n[o],"inRange");for(u=1;a<l;a++)(!n.length||n[n.length-1]<e[a])&&(u&&(i.length&&r(i[i.length-1].value,"outOfRange"),u=0),r(e[a],"outOfRange"));var h=i.length;return{stops:i,outerColors:[h?i[0].color:"transparent",h?i[h-1].color:"transparent"]}},e.type="visualMap.continuous",e.defaultOption=Th(IB.defaultOption,{align:"auto",calculable:!1,hoverLink:!0,realtime:!0,handleIcon:"path://M-11.39,9.77h0a3.5,3.5,0,0,1-3.5,3.5h-22a3.5,3.5,0,0,1-3.5-3.5h0a3.5,3.5,0,0,1,3.5-3.5h22A3.5,3.5,0,0,1-11.39,9.77Z",handleSize:"120%",handleStyle:{borderColor:"#fff",borderWidth:1},indicatorIcon:"circle",indicatorSize:"50%",indicatorStyle:{borderColor:"#fff",borderWidth:2,shadowBlur:2,shadowOffsetX:1,shadowOffsetY:1,shadowColor:"rgba(0,0,0,0.2)"}}),e}(IB);function AB(t,e,n){if(n[0]===n[1])return n.slice();for(var i=(n[1]-n[0])/200,r=n[0],o=[],a=0;a<=200&&r<n[1];a++)o.push(r),r+=i;return o.push(n[1]),o}var DB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.autoPositionValues={left:1,right:1,top:1,bottom:1},n}return n(e,t),e.prototype.init=function(t,e){this.ecModel=t,this.api=e},e.prototype.render=function(t,e,n,i){this.visualMapModel=t,!1!==t.get("show")?this.doRender(t,e,n,i):this.group.removeAll()},e.prototype.renderBackground=function(t){var e=this.visualMapModel,n=pc(e.get("padding")||0),i=t.getBoundingRect();t.add(new os({z2:-1,silent:!0,shape:{x:i.x-n[3],y:i.y-n[0],width:i.width+n[3]+n[1],height:i.height+n[0]+n[2]},style:{fill:e.get("backgroundColor"),stroke:e.get("borderColor"),lineWidth:e.get("borderWidth")}}))},e.prototype.getControllerVisual=function(t,e,n){var i=(n=n||{}).forceState,r=this.visualMapModel,o={};if("symbol"===e&&(o.symbol=r.get("itemSymbol")),"color"===e){var a=r.get("contentColor");o.color=a}function s(t){return o[t]}function l(t,e){o[t]=e}var u=r.controllerVisuals[i||r.getValueState(t)];return P(jI.prepareVisualTypes(u),(function(i){var r=u[i];n.convertOpacityToAlpha&&"opacity"===i&&(i="colorAlpha",r=u.__alphaForOpacity),jI.dependsOn(i,e)&&r&&r.applyVisual(t,s,l)})),o[e]},e.prototype.positionGroup=function(t){var e=this.visualMapModel,n=this.api;Dc(t,e.getBoxLayoutParams(),{width:n.getWidth(),height:n.getHeight()})},e.prototype.doRender=function(t,e,n,i){},e.type="visualMap",e}(pf),LB=[["left","right","width"],["top","bottom","height"]];function kB(t,e,n){var i=t.option,r=i.align;if(null!=r&&"auto"!==r)return r;for(var o={width:e.getWidth(),height:e.getHeight()},a="horizontal"===i.orient?1:0,s=LB[a],l=[0,null,10],u={},h=0;h<3;h++)u[LB[1-a][h]]=l[h],u[s[h]]=2===h?n[0]:i[s[h]];var c=[["x","width",3],["y","height",0]][a],p=Ac(u,o,i.padding);return s[(p.margin[c[2]]||0)+p[c[0]]+.5*p[c[1]]<.5*o[c[1]]?0:1]}function PB(t,e){return P(t||[],(function(t){null!=t.dataIndex&&(t.dataIndexInside=t.dataIndex,t.dataIndex=null),t.highlightKey="visualMap"+(e?e.componentIndex:"")})),t}var OB=Ui,RB=P,NB=Math.min,EB=Math.max,zB=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._shapes={},n._dataInterval=[],n._handleEnds=[],n._hoverLinkDataIndices=[],n}return n(e,t),e.prototype.doRender=function(t,e,n,i){this._api=n,i&&"selectDataRange"===i.type&&i.from===this.uid||this._buildView()},e.prototype._buildView=function(){this.group.removeAll();var t=this.visualMapModel,e=this.group;this._orient=t.get("orient"),this._useHandle=t.get("calculable"),this._resetInterval(),this._renderBar(e);var n=t.get("text");this._renderEndsText(e,n,0),this._renderEndsText(e,n,1),this._updateView(!0),this.renderBackground(e),this._updateView(),this._enableHoverLinkToSeries(),this._enableHoverLinkFromSeries(),this.positionGroup(e)},e.prototype._renderEndsText=function(t,e,n){if(e){var i=e[1-n];i=null!=i?i+"":"";var r=this.visualMapModel,o=r.get("textGap"),a=r.itemSize,s=this._shapes.mainGroup,l=this._applyTransform([a[0]/2,0===n?-o:a[1]+o],s),u=this._applyTransform(0===n?"bottom":"top",s),h=this._orient,c=this.visualMapModel.textStyleModel;this.group.add(new ls({style:{x:l[0],y:l[1],verticalAlign:"horizontal"===h?"middle":u,align:"horizontal"===h?u:"center",text:i,font:c.getFont(),fill:c.getTextColor()}}))}},e.prototype._renderBar=function(t){var e=this.visualMapModel,n=this._shapes,i=e.itemSize,r=this._orient,o=this._useHandle,a=kB(e,this.api,i),s=n.mainGroup=this._createBarGroup(a),l=new zi;s.add(l),l.add(n.outOfRange=BB()),l.add(n.inRange=BB(null,o?FB(this._orient):null,B(this._dragHandle,this,"all",!1),B(this._dragHandle,this,"all",!0))),l.setClipPath(new os({shape:{x:0,y:0,width:i[0],height:i[1],r:3}}));var u=e.textStyleModel.getTextRect("国"),h=EB(u.width,u.height);o&&(n.handleThumbs=[],n.handleLabels=[],n.handleLabelPoints=[],this._createHandle(e,s,0,i,h,r),this._createHandle(e,s,1,i,h,r)),this._createIndicator(e,s,i,h,r),t.add(s)},e.prototype._createHandle=function(t,e,n,i,r,o){var a=B(this._dragHandle,this,n,!1),s=B(this._dragHandle,this,n,!0),l=Yn(t.get("handleSize"),i[0]),u=uy(t.get("handleIcon"),-l/2,-l/2,l,l,null,!0),h=FB(this._orient);u.attr({cursor:h,draggable:!0,drift:a,ondragend:s,onmousemove:function(t){ee(t.event)}}),u.x=i[0]/2,u.useStyle(t.getModel("handleStyle").getItemStyle()),u.setStyle({strokeNoScale:!0,strokeFirst:!0}),u.style.lineWidth*=2,u.ensureState("emphasis").style=t.getModel(["emphasis","handleStyle"]).getItemStyle(),il(u,!0),e.add(u);var c=this.visualMapModel.textStyleModel,p=new ls({cursor:h,draggable:!0,drift:a,onmousemove:function(t){ee(t.event)},ondragend:s,style:{x:0,y:0,text:"",font:c.getFont(),fill:c.getTextColor()}});p.ensureState("blur").style={opacity:.1},p.stateTransition={duration:200},this.group.add(p);var d=[l,0],f=this._shapes;f.handleThumbs[n]=u,f.handleLabelPoints[n]=d,f.handleLabels[n]=p},e.prototype._createIndicator=function(t,e,n,i,r){var o=Yn(t.get("indicatorSize"),n[0]),a=uy(t.get("indicatorIcon"),-o/2,-o/2,o,o,null,!0);a.attr({cursor:"move",invisible:!0,silent:!0,x:n[0]/2});var s=t.getModel("indicatorStyle").getItemStyle();if(a instanceof Ja){var l=a.style;a.useStyle(I({image:l.image,x:l.x,y:l.y,width:l.width,height:l.height},s))}else a.useStyle(s);e.add(a);var u=this.visualMapModel.textStyleModel,h=new ls({silent:!0,invisible:!0,style:{x:0,y:0,text:"",font:u.getFont(),fill:u.getTextColor()}});this.group.add(h);var c=[("horizontal"===r?i/2:6)+n[0]/2,0],p=this._shapes;p.indicator=a,p.indicatorLabel=h,p.indicatorLabelPoint=c,this._firstShowIndicator=!0},e.prototype._dragHandle=function(t,e,n,i){if(this._useHandle){if(this._dragging=!e,!e){var r=this._applyTransform([n,i],this._shapes.mainGroup,!0);this._updateInterval(t,r[1]),this._hideIndicator(),this._updateView()}e===!this.visualMapModel.get("realtime")&&this.api.dispatchAction({type:"selectDataRange",from:this.uid,visualMapId:this.visualMapModel.id,selected:this._dataInterval.slice()}),e?!this._hovering&&this._clearHoverLinkToSeries():VB(this.visualMapModel)&&this._doHoverLinkToSeries(this._handleEnds[t],!1)}},e.prototype._resetInterval=function(){var t=this.visualMapModel,e=this._dataInterval=t.getSelected(),n=t.getExtent(),i=[0,t.itemSize[1]];this._handleEnds=[OB(e[0],n,i,!0),OB(e[1],n,i,!0)]},e.prototype._updateInterval=function(t,e){e=e||0;var n=this.visualMapModel,i=this._handleEnds,r=[0,n.itemSize[1]];tA(e,i,r,t,0);var o=n.getExtent();this._dataInterval=[OB(i[0],r,o,!0),OB(i[1],r,o,!0)]},e.prototype._updateView=function(t){var e=this.visualMapModel,n=e.getExtent(),i=this._shapes,r=[0,e.itemSize[1]],o=t?r:this._handleEnds,a=this._createBarVisual(this._dataInterval,n,o,"inRange"),s=this._createBarVisual(n,n,r,"outOfRange");i.inRange.setStyle({fill:a.barColor}).setShape("points",a.barPoints),i.outOfRange.setStyle({fill:s.barColor}).setShape("points",s.barPoints),this._updateHandle(o,a)},e.prototype._createBarVisual=function(t,e,n,i){var r={forceState:i,convertOpacityToAlpha:!0},o=this._makeColorGradient(t,r),a=[this.getControllerVisual(t[0],"symbolSize",r),this.getControllerVisual(t[1],"symbolSize",r)],s=this._createBarPoints(n,a);return{barColor:new uu(0,0,0,1,o),barPoints:s,handlesColor:[o[0].color,o[o.length-1].color]}},e.prototype._makeColorGradient=function(t,e){var n=[],i=(t[1]-t[0])/100;n.push({color:this.getControllerVisual(t[0],"color",e),offset:0});for(var r=1;r<100;r++){var o=t[0]+i*r;if(o>t[1])break;n.push({color:this.getControllerVisual(o,"color",e),offset:r/100})}return n.push({color:this.getControllerVisual(t[1],"color",e),offset:1}),n},e.prototype._createBarPoints=function(t,e){var n=this.visualMapModel.itemSize;return[[n[0]-e[0],t[0]],[n[0],t[0]],[n[0],t[1]],[n[0]-e[1],t[1]]]},e.prototype._createBarGroup=function(t){var e=this._orient,n=this.visualMapModel.get("inverse");return new zi("horizontal"!==e||n?"horizontal"===e&&n?{scaleX:"bottom"===t?-1:1,rotation:-Math.PI/2}:"vertical"!==e||n?{scaleX:"left"===t?1:-1}:{scaleX:"left"===t?1:-1,scaleY:-1}:{scaleX:"bottom"===t?1:-1,rotation:Math.PI/2})},e.prototype._updateHandle=function(t,e){if(this._useHandle){var n=this._shapes,i=this.visualMapModel,r=n.handleThumbs,o=n.handleLabels,a=i.itemSize,s=i.getExtent();RB([0,1],(function(l){var u=r[l];u.setStyle("fill",e.handlesColor[l]),u.y=t[l];var h=OB(t[l],[0,a[1]],s,!0),c=this.getControllerVisual(h,"symbolSize");u.scaleX=u.scaleY=c/a[0],u.x=a[0]-c/2;var p=Fu(n.handleLabelPoints[l],Vu(u,this.group));o[l].setStyle({x:p[0],y:p[1],text:i.formatValueText(this._dataInterval[l]),verticalAlign:"middle",align:"vertical"===this._orient?this._applyTransform("left",n.mainGroup):"center"})}),this)}},e.prototype._showIndicator=function(t,e,n,i){var r=this.visualMapModel,o=r.getExtent(),a=r.itemSize,s=[0,a[1]],l=this._shapes,u=l.indicator;if(u){u.attr("invisible",!1);var h=this.getControllerVisual(t,"color",{convertOpacityToAlpha:!0}),c=this.getControllerVisual(t,"symbolSize"),p=OB(t,o,s,!0),d=a[0]-c/2,f={x:u.x,y:u.y};u.y=p,u.x=d;var g=Fu(l.indicatorLabelPoint,Vu(u,this.group)),y=l.indicatorLabel;y.attr("invisible",!1);var v=this._applyTransform("left",l.mainGroup),m="horizontal"===this._orient;y.setStyle({text:(n||"")+r.formatValueText(e),verticalAlign:m?v:"middle",align:m?"center":v});var _={x:d,y:p,style:{fill:h}},x={style:{x:g[0],y:g[1]}};if(r.ecModel.isAnimationEnabled()&&!this._firstShowIndicator){var b={duration:100,easing:"cubicInOut",additive:!0};u.x=f.x,u.y=f.y,u.animateTo(_,b),y.animateTo(x,b)}else u.attr(_),y.attr(x);this._firstShowIndicator=!1;var w=this._shapes.handleLabels;if(w)for(var S=0;S<w.length;S++)this._api.enterBlur(w[S])}},e.prototype._enableHoverLinkToSeries=function(){var t=this;this._shapes.mainGroup.on("mousemove",(function(e){if(t._hovering=!0,!t._dragging){var n=t.visualMapModel.itemSize,i=t._applyTransform([e.offsetX,e.offsetY],t._shapes.mainGroup,!0,!0);i[1]=NB(EB(0,i[1]),n[1]),t._doHoverLinkToSeries(i[1],0<=i[0]&&i[0]<=n[0])}})).on("mouseout",(function(){t._hovering=!1,!t._dragging&&t._clearHoverLinkToSeries()}))},e.prototype._enableHoverLinkFromSeries=function(){var t=this.api.getZr();this.visualMapModel.option.hoverLink?(t.on("mouseover",this._hoverLinkFromSeriesMouseOver,this),t.on("mouseout",this._hideIndicator,this)):this._clearHoverLinkFromSeries()},e.prototype._doHoverLinkToSeries=function(t,e){var n=this.visualMapModel,i=n.itemSize;if(n.option.hoverLink){var r=[0,i[1]],o=n.getExtent();t=NB(EB(r[0],t),r[1]);var a=function(t,e,n){var i=6,r=t.get("hoverLinkDataSize");r&&(i=OB(r,e,n,!0)/2);return i}(n,o,r),s=[t-a,t+a],l=OB(t,r,o,!0),u=[OB(s[0],r,o,!0),OB(s[1],r,o,!0)];s[0]<r[0]&&(u[0]=-1/0),s[1]>r[1]&&(u[1]=1/0),e&&(u[0]===-1/0?this._showIndicator(l,u[1],"< ",a):u[1]===1/0?this._showIndicator(l,u[0],"> ",a):this._showIndicator(l,l,"≈ ",a));var h=this._hoverLinkDataIndices,c=[];(e||VB(n))&&(c=this._hoverLinkDataIndices=n.findTargetDataIndices(u));var p=function(t,e){var n={},i={};return r(t||[],n),r(e||[],i,n),[o(n),o(i)];function r(t,e,n){for(var i=0,r=t.length;i<r;i++){var o=Tr(t[i].seriesId,null);if(null==o)return;for(var a=_r(t[i].dataIndex),s=n&&n[o],l=0,u=a.length;l<u;l++){var h=a[l];s&&s[h]?s[h]=null:(e[o]||(e[o]={}))[h]=1}}}function o(t,e){var n=[];for(var i in t)if(t.hasOwnProperty(i)&&null!=t[i])if(e)n.push(+i);else{var r=o(t[i],!0);r.length&&n.push({seriesId:i,dataIndex:r})}return n}}(h,c);this._dispatchHighDown("downplay",PB(p[0],n)),this._dispatchHighDown("highlight",PB(p[1],n))}},e.prototype._hoverLinkFromSeriesMouseOver=function(t){var e=t.target,n=this.visualMapModel;if(e&&null!=ys(e).dataIndex){var i=ys(e),r=this.ecModel.getSeriesByIndex(i.seriesIndex);if(n.isTargetSeries(r)){var o=r.getData(i.dataType),a=o.get(n.getDataDimension(o),i.dataIndex);isNaN(a)||this._showIndicator(a,a)}}},e.prototype._hideIndicator=function(){var t=this._shapes;t.indicator&&t.indicator.attr("invisible",!0),t.indicatorLabel&&t.indicatorLabel.attr("invisible",!0);var e=this._shapes.handleLabels;if(e)for(var n=0;n<e.length;n++)this._api.leaveBlur(e[n])},e.prototype._clearHoverLinkToSeries=function(){this._hideIndicator();var t=this._hoverLinkDataIndices;this._dispatchHighDown("downplay",PB(t,this.visualMapModel)),t.length=0},e.prototype._clearHoverLinkFromSeries=function(){this._hideIndicator();var t=this.api.getZr();t.off("mouseover",this._hoverLinkFromSeriesMouseOver),t.off("mouseout",this._hideIndicator)},e.prototype._applyTransform=function(t,e,n,i){var r=Vu(e,i?null:this.group);return F(t)?Fu(t,r,n):Gu(t,r,n)},e.prototype._dispatchHighDown=function(t,e){e&&e.length&&this.api.dispatchAction({type:t,batch:e})},e.prototype.dispose=function(){this._clearHoverLinkFromSeries(),this._clearHoverLinkToSeries()},e.prototype.remove=function(){this._clearHoverLinkFromSeries(),this._clearHoverLinkToSeries()},e.type="visualMap.continuous",e}(DB);function BB(t,e,n,i){return new ql({shape:{points:t},draggable:!!n,cursor:e,drift:n,onmousemove:function(t){ee(t.event)},ondragend:i})}function VB(t){var e=t.get("hoverLinkOnHandle");return!!(null==e?t.get("realtime"):e)}function FB(t){return"vertical"===t?"ns-resize":"ew-resize"}var GB={type:"selectDataRange",event:"dataRangeSelected",update:"update"},HB=function(t,e){e.eachComponent({mainType:"visualMap",query:t},(function(e){e.setSelected(t.selected)}))},WB=[{createOnAllSeries:!0,reset:function(t,e){var n=[];return e.eachComponent("visualMap",(function(e){var i,r,o,a,s,l=t.pipelineContext;!e.isTargetSeries(t)||l&&l.large||n.push((i=e.stateList,r=e.targetVisuals,o=B(e.getValueState,e),a=e.getDataDimension(t.getData()),s={},P(i,(function(t){var e=jI.prepareVisualTypes(r[t]);s[t]=e})),{progress:function(t,e){var n,i;function l(t){return pg(e,i,t)}function u(t,n){fg(e,i,t,n)}for(null!=a&&(n=e.getDimension(a));null!=(i=t.next());){var h=e.getRawDataItem(i);if(!h||!1!==h.visualMap)for(var c=null!=a?e.get(n,i):i,p=o(c),d=r[p],f=s[p],g=0,y=f.length;g<y;g++){var v=f[g];d[v]&&d[v].applyVisual(c,l,u)}}}}))})),n}},{createOnAllSeries:!0,reset:function(t,e){var n=t.getData(),i=[];e.eachComponent("visualMap",(function(e){if(e.isTargetSeries(t)){var r=e.getVisualMeta(B(YB,null,t,e))||{stops:[],outerColors:[]},o=e.getDataDimension(n),a=n.getDimensionInfo(o);null!=a&&(r.dimension=a.index,i.push(r))}})),t.getData().setVisual("visualMeta",i)}}];function YB(t,e,n,i){for(var r=e.targetVisuals[i],o=jI.prepareVisualTypes(r),a={color:dg(t.getData(),"color")},s=0,l=o.length;s<l;s++){var u=o[s],h=r["opacity"===u?"__alphaForOpacity":u];h&&h.applyVisual(n,c,p)}return a.color;function c(t){return a[t]}function p(t,e){a[t]=e}}var XB=P;function UB(t){var e=t&&t.visualMap;F(e)||(e=e?[e]:[]),XB(e,(function(t){if(t){ZB(t,"splitList")&&!ZB(t,"pieces")&&(t.pieces=t.splitList,delete t.splitList);var e=t.pieces;e&&F(e)&&XB(e,(function(t){X(t)&&(ZB(t,"start")&&!ZB(t,"min")&&(t.min=t.start),ZB(t,"end")&&!ZB(t,"max")&&(t.max=t.end))}))}}))}function ZB(t,e){return t&&t.hasOwnProperty&&t.hasOwnProperty(e)}var jB=!1;function qB(t){jB||(jB=!0,t.registerSubTypeDefaulter("visualMap",(function(t){return t.categories||(t.pieces?t.pieces.length>0:t.splitNumber>0)&&!t.calculable?"piecewise":"continuous"})),t.registerAction(GB,HB),P(WB,(function(e){t.registerVisual(t.PRIORITY.VISUAL.COMPONENT,e)})),t.registerPreprocessor(UB))}function KB(t){t.registerComponentModel(CB),t.registerComponentView(zB),qB(t)}var $B=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n._pieceList=[],n}return n(e,t),e.prototype.optionUpdated=function(e,n){t.prototype.optionUpdated.apply(this,arguments),this.resetExtent();var i=this._mode=this._determineMode();this._pieceList=[],JB[this._mode].call(this,this._pieceList),this._resetSelected(e,n);var r=this.option.categories;this.resetVisual((function(t,e){"categories"===i?(t.mappingMethod="category",t.categories=w(r)):(t.dataExtent=this.getExtent(),t.mappingMethod="piecewise",t.pieceList=O(this._pieceList,(function(t){return t=w(t),"inRange"!==e&&(t.visual=null),t})))}))},e.prototype.completeVisualOption=function(){var e=this.option,n={},i=jI.listVisualTypes(),r=this.isCategory();function o(t,e,n){return t&&t[e]&&t[e].hasOwnProperty(n)}P(e.pieces,(function(t){P(i,(function(e){t.hasOwnProperty(e)&&(n[e]=1)}))})),P(n,(function(t,n){var i=!1;P(this.stateList,(function(t){i=i||o(e,t,n)||o(e.target,t,n)}),this),!i&&P(this.stateList,(function(t){(e[t]||(e[t]={}))[n]=vB(n,"inRange"===t?"active":"inactive",r)}))}),this),t.prototype.completeVisualOption.apply(this,arguments)},e.prototype._resetSelected=function(t,e){var n=this.option,i=this._pieceList,r=(e?n:t).selected||{};if(n.selected=r,P(i,(function(t,e){var n=this.getSelectedMapKey(t);r.hasOwnProperty(n)||(r[n]=!0)}),this),"single"===n.selectedMode){var o=!1;P(i,(function(t,e){var n=this.getSelectedMapKey(t);r[n]&&(o?r[n]=!1:o=!0)}),this)}},e.prototype.getSelectedMapKey=function(t){return"categories"===this._mode?t.value+"":t.index+""},e.prototype.getPieceList=function(){return this._pieceList},e.prototype._determineMode=function(){var t=this.option;return t.pieces&&t.pieces.length>0?"pieces":this.option.categories?"categories":"splitNumber"},e.prototype.setSelected=function(t){this.option.selected=w(t)},e.prototype.getValueState=function(t){var e=jI.findPieceIndex(t,this._pieceList);return null!=e&&this.option.selected[this.getSelectedMapKey(this._pieceList[e])]?"inRange":"outOfRange"},e.prototype.findTargetDataIndices=function(t){var e=[],n=this._pieceList;return this.eachTargetSeries((function(i){var r=[],o=i.getData();o.each(this.getDataDimension(o),(function(e,i){jI.findPieceIndex(e,n)===t&&r.push(i)}),this),e.push({seriesId:i.id,dataIndex:r})}),this),e},e.prototype.getRepresentValue=function(t){var e;if(this.isCategory())e=t.value;else if(null!=t.value)e=t.value;else{var n=t.interval||[];e=n[0]===-1/0&&n[1]===1/0?0:(n[0]+n[1])/2}return e},e.prototype.getVisualMeta=function(t){if(!this.isCategory()){var e=[],n=["",""],i=this,r=this._pieceList.slice();if(r.length){var o=r[0].interval[0];o!==-1/0&&r.unshift({interval:[-1/0,o]}),(o=r[r.length-1].interval[1])!==1/0&&r.push({interval:[o,1/0]})}else r.push({interval:[-1/0,1/0]});var a=-1/0;return P(r,(function(t){var e=t.interval;e&&(e[0]>a&&s([a,e[0]],"outOfRange"),s(e.slice()),a=e[1])}),this),{stops:e,outerColors:n}}function s(r,o){var a=i.getRepresentValue({interval:r});o||(o=i.getValueState(a));var s=t(a,o);r[0]===-1/0?n[0]=s:r[1]===1/0?n[1]=s:e.push({value:r[0],color:s},{value:r[1],color:s})}},e.type="visualMap.piecewise",e.defaultOption=Th(IB.defaultOption,{selected:null,minOpen:!1,maxOpen:!1,align:"auto",itemWidth:20,itemHeight:14,itemSymbol:"roundRect",pieces:null,categories:null,splitNumber:5,selectedMode:"multiple",itemGap:10,hoverLink:!0}),e}(IB),JB={splitNumber:function(t){var e=this.option,n=Math.min(e.precision,20),i=this.getExtent(),r=e.splitNumber;r=Math.max(parseInt(r,10),1),e.splitNumber=r;for(var o=(i[1]-i[0])/r;+o.toFixed(n)!==o&&n<5;)n++;e.precision=n,o=+o.toFixed(n),e.minOpen&&t.push({interval:[-1/0,i[0]],close:[0,0]});for(var a=0,s=i[0];a<r;s+=o,a++){var l=a===r-1?i[1]:s+o;t.push({interval:[s,l],close:[1,1]})}e.maxOpen&&t.push({interval:[i[1],1/0],close:[0,0]}),ur(t),P(t,(function(t,e){t.index=e,t.text=this.formatValueText(t.interval)}),this)},categories:function(t){var e=this.option;P(e.categories,(function(e){t.push({text:this.formatValueText(e,!0),value:e})}),this),QB(e,t)},pieces:function(t){var e=this.option;P(e.pieces,(function(e,n){X(e)||(e={value:e});var i={text:"",index:n};if(null!=e.label&&(i.text=e.label),e.hasOwnProperty("value")){var r=i.value=e.value;i.interval=[r,r],i.close=[1,1]}else{for(var o=i.interval=[],a=i.close=[0,0],s=[1,0,1],l=[-1/0,1/0],u=[],h=0;h<2;h++){for(var c=[["gte","gt","min"],["lte","lt","max"]][h],p=0;p<3&&null==o[h];p++)o[h]=e[c[p]],a[h]=s[p],u[h]=2===p;null==o[h]&&(o[h]=l[h])}u[0]&&o[1]===1/0&&(a[0]=0),u[1]&&o[0]===-1/0&&(a[1]=0),o[0]===o[1]&&a[0]&&a[1]&&(i.value=o[0])}i.visual=jI.retrieveVisuals(e),t.push(i)}),this),QB(e,t),ur(t),P(t,(function(t){var e=t.close,n=[["<","≤"][e[1]],[">","≥"][e[0]]];t.text=t.text||this.formatValueText(null!=t.value?t.value:t.interval,!1,n)}),this)}};function QB(t,e){var n=t.inverse;("vertical"===t.orient?!n:n)&&e.reverse()}var tV=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.doRender=function(){var t=this.group;t.removeAll();var e=this.visualMapModel,n=e.get("textGap"),i=e.textStyleModel,r=i.getFont(),o=i.getTextColor(),a=this._getItemAlign(),s=e.itemSize,l=this._getViewData(),u=l.endsText,h=Q(e.get("showLabel",!0),!u);u&&this._renderEndsText(t,u[0],s,h,a),P(l.viewPieceList,(function(i){var l=i.piece,u=new zi;u.onclick=B(this._onItemClick,this,l),this._enableHoverLink(u,i.indexInModelPieceList);var c=e.getRepresentValue(l);if(this._createItemSymbol(u,c,[0,0,s[0],s[1]]),h){var p=this.visualMapModel.getValueState(c);u.add(new ls({style:{x:"right"===a?-n:s[0]+n,y:s[1]/2,text:l.text,verticalAlign:"middle",align:a,font:r,fill:o,opacity:"outOfRange"===p?.5:1}}))}t.add(u)}),this),u&&this._renderEndsText(t,u[1],s,h,a),Cc(e.get("orient"),t,e.get("itemGap")),this.renderBackground(t),this.positionGroup(t)},e.prototype._enableHoverLink=function(t,e){var n=this;t.on("mouseover",(function(){return i("highlight")})).on("mouseout",(function(){return i("downplay")}));var i=function(t){var i=n.visualMapModel;i.option.hoverLink&&n.api.dispatchAction({type:t,batch:PB(i.findTargetDataIndices(e),i)})}},e.prototype._getItemAlign=function(){var t=this.visualMapModel,e=t.option;if("vertical"===e.orient)return kB(t,this.api,t.itemSize);var n=e.align;return n&&"auto"!==n||(n="left"),n},e.prototype._renderEndsText=function(t,e,n,i,r){if(e){var o=new zi,a=this.visualMapModel.textStyleModel;o.add(new ls({style:{x:i?"right"===r?n[0]:0:n[0]/2,y:n[1]/2,verticalAlign:"middle",align:i?r:"center",text:e,font:a.getFont(),fill:a.getTextColor()}})),t.add(o)}},e.prototype._getViewData=function(){var t=this.visualMapModel,e=O(t.getPieceList(),(function(t,e){return{piece:t,indexInModelPieceList:e}})),n=t.get("text"),i=t.get("orient"),r=t.get("inverse");return("horizontal"===i?r:!r)?e.reverse():n&&(n=n.slice().reverse()),{viewPieceList:e,endsText:n}},e.prototype._createItemSymbol=function(t,e,n){t.add(uy(this.getControllerVisual(e,"symbol"),n[0],n[1],n[2],n[3],this.getControllerVisual(e,"color")))},e.prototype._onItemClick=function(t){var e=this.visualMapModel,n=e.option,i=w(n.selected),r=e.getSelectedMapKey(t);"single"===n.selectedMode?(i[r]=!0,P(i,(function(t,e){i[e]=e===r}))):i[r]=!i[r],this.api.dispatchAction({type:"selectDataRange",from:this.uid,visualMapId:this.visualMapModel.id,selected:i})},e.type="visualMap.piecewise",e}(DB);function eV(t){t.registerComponentModel($B),t.registerComponentView(tV),qB(t)}var nV={label:{enabled:!0},decal:{show:!1}},iV=Lr(),rV={};function oV(t,e){var n=t.getModel("aria");if(n.get("enabled")){var i=w(nV);S(i.label,t.getLocaleModel().get("aria"),!1),S(n.option,i,!1),function(){if(n.getModel("decal").get("show")){var e=ht();t.eachSeries((function(t){if(t.useColorPaletteOnData){var n=e.get(t.type);n||(n={},e.set(t.type,n)),iV(t).scope=n}})),t.eachRawSeries((function(e){if(!t.isSeriesFiltered(e))if("function"!=typeof e.enableAriaDecal){var n=e.getData();if(e.useColorPaletteOnData){var i=e.getRawData(),r={},o=iV(e).scope;n.each((function(t){var e=n.getRawIndex(t);r[e]=t}));var a=i.count();i.each((function(t){var s=r[t],l=i.getName(t)||t+"",h=hp(e.ecModel,l,o,a),c=n.getItemVisual(s,"decal");n.setItemVisual(s,"decal",u(c,h))}))}else{var s=hp(e.ecModel,e.name,rV,t.getSeriesCount()),l=n.getVisual("decal");n.setVisual("decal",u(l,s))}}else e.enableAriaDecal();function u(t,e){var n=t?I(I({},e),t):e;return n.dirty=!0,n}}))}}(),function(){var i=t.getLocaleModel().get("aria"),o=n.getModel("label");if(o.option=T(o.option,i),!o.get("enabled"))return;var a=e.getZr().dom;if(o.get("description"))return void a.setAttribute("aria-label",o.get("description"));var s,l=t.getSeriesCount(),u=o.get(["data","maxCount"])||10,h=o.get(["series","maxCount"])||10,c=Math.min(l,h);if(l<1)return;var p=function(){var e=t.get("title");e&&e.length&&(e=e[0]);return e&&e.text}();if(p){var d=o.get(["general","withTitle"]);s=r(d,{title:p})}else s=o.get(["general","withoutTitle"]);var f=[],g=l>1?o.get(["series","multiple","prefix"]):o.get(["series","single","prefix"]);s+=r(g,{seriesCount:l}),t.eachSeries((function(e,n){if(n<c){var i=void 0,a=e.get("name")?"withName":"withoutName";i=r(i=l>1?o.get(["series","multiple",a]):o.get(["series","single",a]),{seriesId:e.seriesIndex,seriesName:e.get("name"),seriesType:(_=e.subType,t.getLocaleModel().get(["series","typeNames"])[_]||"自定义图")});var s=e.getData();if(s.count()>u)i+=r(o.get(["data","partialData"]),{displayCnt:u});else i+=o.get(["data","allData"]);for(var h=[],p=0;p<s.count();p++)if(p<u){var d=s.getName(p),g=fd(s,p),y=o.get(["data",d?"withName":"withoutName"]);h.push(r(y,{name:d,value:g}))}var v=o.get(["data","separator","middle"]),m=o.get(["data","separator","end"]);i+=h.join(v)+m,f.push(i)}var _}));var y=o.getModel(["series","multiple","separator"]),v=y.get("middle"),m=y.get("end");s+=f.join(v)+m,a.setAttribute("aria-label",s)}()}function r(t,e){if("string"!=typeof t)return t;var n=t;return P(e,(function(t,e){n=n.replace(new RegExp("\\{\\s*"+e+"\\s*\\}","g"),t)})),n}}function aV(t){if(t&&t.aria){var e=t.aria;null!=e.show&&(e.enabled=e.show),e.label=e.label||{},P(["description","general","series","data"],(function(t){null!=e[t]&&(e.label[t]=e[t])}))}}var sV={value:"eq","<":"lt","<=":"lte",">":"gt",">=":"gte","=":"eq","!=":"ne","<>":"ne"},lV=function(){function t(t){if(null==(this._condVal=H(t)?new RegExp(t):$(t)?t:null)){var e="";0,yr(e)}}return t.prototype.evaluate=function(t){var e=typeof t;return"string"===e?this._condVal.test(t):"number"===e&&this._condVal.test(t+"")},t}(),uV=function(){function t(){}return t.prototype.evaluate=function(){return this.value},t}(),hV=function(){function t(){}return t.prototype.evaluate=function(){for(var t=this.children,e=0;e<t.length;e++)if(!t[e].evaluate())return!1;return!0},t}(),cV=function(){function t(){}return t.prototype.evaluate=function(){for(var t=this.children,e=0;e<t.length;e++)if(t[e].evaluate())return!0;return!1},t}(),pV=function(){function t(){}return t.prototype.evaluate=function(){return!this.child.evaluate()},t}(),dV=function(){function t(){}return t.prototype.evaluate=function(){for(var t=!!this.valueParser,e=(0,this.getValue)(this.valueGetterParam),n=t?this.valueParser(e):null,i=0;i<this.subCondList.length;i++)if(!this.subCondList[i].evaluate(t?n:e))return!1;return!0},t}();function fV(t,e){if(!0===t||!1===t){var n=new uV;return n.value=t,n}var i="";return yV(t)||yr(i),t.and?gV("and",t,e):t.or?gV("or",t,e):t.not?function(t,e){var n=t.not,i="";0;yV(n)||yr(i);var r=new pV;r.child=fV(n,e),r.child||yr(i);return r}(t,e):function(t,e){for(var n="",i=e.prepareGetValue(t),r=[],o=z(t),a=t.parser,s=a?Sd(a):null,l=0;l<o.length;l++){var u=o[l];if("parser"!==u&&!e.valueGetterAttrMap.get(u)){var h=dt(sV,u)?sV[u]:u,c=t[u],p=s?s(c):c,d=Ad(h,p)||"reg"===h&&new lV(p);d||yr(n),r.push(d)}}r.length||yr(n);var f=new dV;return f.valueGetterParam=i,f.valueParser=s,f.getValue=e.getValue,f.subCondList=r,f}(t,e)}function gV(t,e,n){var i=e[t],r="";F(i)||yr(r),i.length||yr(r);var o="and"===t?new hV:new cV;return o.children=O(i,(function(t){return fV(t,n)})),o.children.length||yr(r),o}function yV(t){return X(t)&&!k(t)}var vV=function(){function t(t,e){this._cond=fV(t,e)}return t.prototype.evaluate=function(){return this._cond.evaluate()},t}();var mV={type:"echarts:filter",transform:function(t){for(var e,n,i,r=t.upstream,o=(n=t.config,i={valueGetterAttrMap:ht({dimension:!0}),prepareGetValue:function(t){var e="",n=t.dimension;dt(t,"dimension")||yr(e);var i=r.getDimensionInfo(n);return i||yr(e),{dimIdx:i.index}},getValue:function(t){return r.retrieveValueFromItem(e,t.dimIdx)}},new vV(n,i)),a=[],s=0,l=r.count();s<l;s++)e=r.getRawDataItem(s),o.evaluate()&&a.push(e);return{data:a}}};var _V={type:"echarts:sort",transform:function(t){var e=t.upstream,n=t.config,i="",r=_r(n);r.length||yr(i);var o=[];P(r,(function(t){var n=t.dimension,r=t.order,a=t.parser,s=t.incomparable;if(null==n&&yr(i),"asc"!==r&&"desc"!==r&&yr(i),s&&"min"!==s&&"max"!==s){var l="";0,yr(l)}if("asc"!==r&&"desc"!==r){var u="";0,yr(u)}var h=e.getDimensionInfo(n);h||yr(i);var c=a?Sd(a):null;a&&!c&&yr(i),o.push({dimIdx:h.index,parser:c,comparator:new Td(r,s)})}));var a=e.sourceFormat;a!==Gc&&a!==Hc&&yr(i);for(var s=[],l=0,u=e.count();l<u;l++)s.push(e.getRawDataItem(l));return s.sort((function(t,n){for(var i=0;i<o.length;i++){var r=o[i],a=e.retrieveValueFromItem(t,r.dimIdx),s=e.retrieveValueFromItem(n,r.dimIdx);r.parser&&(a=r.parser(a),s=r.parser(s));var l=r.comparator.evaluate(a,s);if(0!==l)return l}return 0})),{data:s}}};var xV=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="dataset",e}return n(e,t),e.prototype.init=function(e,n,i){t.prototype.init.call(this,e,n,i),this._sourceManager=new zd(this),Bd(this)},e.prototype.mergeOption=function(e,n){t.prototype.mergeOption.call(this,e,n),Bd(this)},e.prototype.optionUpdated=function(){this._sourceManager.dirty()},e.prototype.getSourceManager=function(){return this._sourceManager},e.type="dataset",e.defaultOption={seriesLayoutBy:Uc},e}(Nc),bV=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="dataset",e}return n(e,t),e.type="dataset",e}(pf);em([function(t){t.registerPainter("canvas",vb)}]),em([function(t){t.registerPainter("svg",lb)}]),em([function(t){t.registerChartView(Jb),t.registerSeriesModel(mb),t.registerLayout(Qb("line",!0)),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,nw("line"))},function(t){t.registerChartView(pw),t.registerSeriesModel(rw),t.registerLayout(t.PRIORITY.VISUAL.LAYOUT,V(h_,"bar")),t.registerLayout(t.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,c_),t.registerVisual({seriesType:"bar",reset:function(t){t.getData().setVisual("legendSymbol","roundRect")}}),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,nw("bar")),t.registerAction({type:"changeAxisOrder",event:"changeAxisOrder",update:"update"},(function(t,e){var n=t.componentType||"series";e.eachComponent({mainType:n,query:t},(function(e){t.sortInfo&&e.axis.setCategorySortInfo(t.sortInfo)}))}))},function(t){t.registerChartView(Ow),t.registerSeriesModel(Ew),Kg("pie",t.registerAction),t.registerLayout(V(Iw,"pie")),t.registerProcessor(Tw("pie"))},function(t){em(NS),t.registerSeriesModel(zw),t.registerChartView(Gw),t.registerLayout(Qb("scatter"))},function(t){em(qS),t.registerChartView(FS),t.registerSeriesModel(GS),t.registerLayout(ES),t.registerProcessor(Tw("radar")),t.registerPreprocessor(VS)},function(t){t.registerChartView(VM),t.registerSeriesModel(FM),t.registerLayout(HM),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,GM),Kg("map",t.registerAction)},function(t){t.registerChartView(iI),t.registerSeriesModel(_I),t.registerLayout(bI),t.registerVisual(wI),function(t){t.registerAction({type:"treeExpandAndCollapse",event:"treeExpandAndCollapse",update:"update"},(function(t,e){e.eachComponent({mainType:"series",subType:"tree",query:t},(function(e){var n=t.dataIndex,i=e.getData().tree.getNodeByDataIndex(n);i.isExpand=!i.isExpand}))})),t.registerAction({type:"treeRoam",event:"treeRoam",update:"none"},(function(t,e){e.eachComponent({mainType:"series",subType:"tree",query:t},(function(e){var n=SI(e.coordinateSystem,t);e.setCenter&&e.setCenter(n.center),e.setZoom&&e.setZoom(n.zoom)}))}))}(t)},function(t){t.registerSeriesModel(kI),t.registerChartView(YI),t.registerVisual(sT),t.registerLayout(xT),function(t){for(var e=0;e<DI.length;e++)t.registerAction({type:DI[e],update:"updateView"},AI);t.registerAction({type:"treemapRootToNode",update:"updateView"},(function(t,e){e.eachComponent({mainType:"series",subType:"treemap",query:t},(function(e,n){var i=MI(t,["treemapZoomToNode","treemapRootToNode"],e);if(i){var r=e.getViewRoot();r&&(t.direction=TI(r,i.node)?"rollUp":"drillDown"),e.resetViewRoot(i.node)}}))}))}(t)},function(t){t.registerChartView(_C),t.registerSeriesModel(TC),t.registerProcessor(TT),t.registerVisual(CT),t.registerVisual(DT),t.registerLayout(VT),t.registerLayout(t.PRIORITY.VISUAL.POST_CHART_LAYOUT,UT),t.registerLayout(jT),t.registerCoordinateSystem("graphView",{dimensions:QM.dimensions,create:qT}),t.registerAction({type:"focusNodeAdjacency",event:"focusNodeAdjacency",update:"series:focusNodeAdjacency"},(function(){})),t.registerAction({type:"unfocusNodeAdjacency",event:"unfocusNodeAdjacency",update:"series:unfocusNodeAdjacency"},(function(){})),t.registerAction(CC,(function(t,e){e.eachComponent({mainType:"series",query:t},(function(e){var n=SI(e.coordinateSystem,t);e.setCenter&&e.setCenter(n.center),e.setZoom&&e.setZoom(n.zoom)}))}))},function(t){t.registerChartView(PC),t.registerSeriesModel(OC)},function(t){t.registerChartView(EC),t.registerSeriesModel(zC),t.registerLayout(BC),t.registerProcessor(Tw("funnel"))},function(t){em(hD),t.registerChartView(VC),t.registerSeriesModel(YC),t.registerVisual(t.PRIORITY.VISUAL.BRUSH,ZC)},function(t){t.registerChartView(dD),t.registerSeriesModel(fD),t.registerLayout(gD),t.registerVisual(CD),t.registerAction({type:"dragNode",event:"dragnode",update:"update"},(function(t,e){e.eachComponent({mainType:"series",subType:"sankey",query:t},(function(e){e.setNodePosition(t.dataIndex,[t.localX,t.localY])}))}))},function(t){t.registerSeriesModel(DD),t.registerChartView(LD),t.registerVisual(ED),t.registerLayout(BD),t.registerTransform(VD)},function(t){t.registerChartView(GD),t.registerSeriesModel(JD),t.registerPreprocessor(QD),t.registerVisual(rL),t.registerLayout(aL)},function(t){t.registerChartView(hL),t.registerSeriesModel(cL),t.registerLayout(Qb("effectScatter"))},function(t){t.registerChartView(_L),t.registerSeriesModel(SL),t.registerLayout(mL),t.registerVisual(IL)},function(t){t.registerChartView(AL),t.registerSeriesModel(DL)},function(t){t.registerChartView(OL),t.registerSeriesModel($L),t.registerLayout(V(h_,"pictorialBar"))},function(t){t.registerChartView(JL),t.registerSeriesModel(QL),t.registerLayout(tk),t.registerProcessor(Tw("themeRiver"))},function(t){t.registerChartView(ok),t.registerSeriesModel(ak),t.registerLayout(V(uk,"sunburst")),t.registerProcessor(V(Tw,"sunburst")),t.registerVisual(ck),function(t){t.registerAction({type:ik,update:"updateView"},(function(t,e){e.eachComponent({mainType:"series",subType:"sunburst",query:t},(function(e,n){var i=MI(t,[ik],e);if(i){var r=e.getViewRoot();r&&(t.direction=TI(r,i.node)?"rollUp":"drillDown"),e.resetViewRoot(i.node)}}))})),t.registerAction({type:rk,update:"none"},(function(t,e,n){t=I({},t),e.eachComponent({mainType:"series",subType:"sunburst",query:t},(function(e){var n=MI(t,[rk],e);n&&(t.dataIndex=n.node.dataIndex)})),n.dispatchAction(I(t,{type:"highlight"}))})),t.registerAction({type:"sunburstUnhighlight",update:"updateView"},(function(t,e,n){t=I({},t),n.dispatchAction(I(t,{type:"downplay"}))}))}(t)},function(t){t.registerChartView(lP),t.registerSeriesModel(sP)}]),em((function(t){em(NS),em(AO)})),em((function(t){em(AO),SS.registerAxisPointerClass("PolarAxisPointer",DO),t.registerCoordinateSystem("polar",HO),t.registerComponentModel(kO),t.registerComponentView(rR),qw(t,"angle",OO,nR),qw(t,"radius",RO,iR),t.registerComponentView(ZO),t.registerComponentView($O),t.registerLayout(V(eR,"bar"))})),em((function(t){function e(e,n){n.update="geo:updateSelectStatus",t.registerAction(n,(function(t,n){var i={};return n.eachComponent({mainType:"geo",query:t},(function(n){n[e](t.name),P(n.coordinateSystem.regions,(function(t){i[t.name]=n.isSelected(t.name)||!1}))})),{selected:i,name:t.name}}))}t.registerCoordinateSystem("geo",lR),t.registerComponentModel(uR),t.registerComponentView(hR),e("toggleSelected",{type:"geoToggleSelect",event:"geoselectchanged"}),e("select",{type:"geoSelect",event:"geoselected"}),e("unSelect",{type:"geoUnSelect",event:"geounselected"}),t.registerAction({type:"geoRoam",event:"geoRoam",update:"updateTransform"},(function(t,e){var n=t.componentType||"series";e.eachComponent({mainType:n,query:t},(function(e){var i=e.coordinateSystem;if("geo"===i.type){var r=SI(i,t,e.get("scaleLimit"));e.setCenter&&e.setCenter(r.center),e.setZoom&&e.setZoom(r.zoom),"series"===n&&P(e.seriesGroup,(function(t){t.setCenter(r.center),t.setZoom(r.zoom)}))}}))}))})),em((function(t){em(AO),SS.registerAxisPointerClass("SingleAxisPointer",SR),t.registerComponentView(CR),t.registerComponentView(fR),t.registerComponentModel(yR),qw(t,"single",yR,yR.defaultOption),t.registerCoordinateSystem("single",xR)})),em(hD),em((function(t){t.registerComponentModel(AR),t.registerComponentView(PR),t.registerCoordinateSystem("calendar",RR)})),em((function(t){t.registerComponentModel(VR),t.registerComponentView(FR),t.registerPreprocessor(BR)})),em((function(t){t.registerComponentModel(pN),t.registerComponentView(fN),hN("saveAsImage",gN),hN("magicType",mN),hN("dataView",IN),hN("dataZoom",jN),hN("restore",LN),em(sN)})),em((function(t){em(AO),t.registerComponentModel($N),t.registerComponentView(cE),t.registerAction({type:"showTip",event:"showTip",update:"tooltip:manuallyShowTip"},(function(){})),t.registerAction({type:"hideTip",event:"hideTip",update:"tooltip:manuallyHideTip"},(function(){}))})),em(AO),em((function(t){t.registerComponentView(OE),t.registerComponentModel(RE),t.registerPreprocessor(yE),t.registerVisual(t.PRIORITY.VISUAL.BRUSH,AE),t.registerAction({type:"brush",event:"brush",update:"updateVisual"},(function(t,e){e.eachComponent({mainType:"brush",query:t},(function(e){e.setAreas(t.areas)}))})),t.registerAction({type:"brushSelect",event:"brushSelected",update:"none"},(function(){})),t.registerAction({type:"brushEnd",event:"brushEnd",update:"none"},(function(){})),hN("brush",zE)})),em((function(t){t.registerComponentModel(BE),t.registerComponentView(VE)})),em((function(t){t.registerComponentModel(GE),t.registerComponentView(UE),t.registerSubTypeDefaulter("timeline",(function(){return"slider"})),function(t){t.registerAction({type:"timelineChange",event:"timelineChanged",update:"prepareAndUpdate"},(function(t,e){var n=e.getComponent("timeline");return n&&null!=t.currentIndex&&(n.setCurrentIndex(t.currentIndex),!n.get("loop",!0)&&n.isIndexMax()&&n.setPlayState(!1)),e.resetOption("timeline",{replaceMerge:n.get("replaceMerge",!0)}),T({currentIndex:n.option.currentIndex},t)})),t.registerAction({type:"timelinePlayChange",event:"timelinePlayChanged",update:"update"},(function(t,e){var n=e.getComponent("timeline");n&&null!=t.playState&&n.setPlayState(t.playState)}))}(t),t.registerPreprocessor(qE)})),em((function(t){t.registerComponentModel(ez),t.registerComponentView(pz),t.registerPreprocessor((function(t){t.markPoint=t.markPoint||{}}))})),em((function(t){t.registerComponentModel(dz),t.registerComponentView(xz),t.registerPreprocessor((function(t){t.markLine=t.markLine||{}}))})),em((function(t){t.registerComponentModel(bz),t.registerComponentView(Dz),t.registerPreprocessor((function(t){t.markArea=t.markArea||{}}))})),em((function(t){em(Hz),em(qz)})),em((function(t){em(sB),em(yB)})),em(sB),em(yB),em((function(t){em(KB),em(eV)})),em(KB),em(eV),em((function(t){t.registerPreprocessor(aV),t.registerVisual(t.PRIORITY.VISUAL.ARIA,oV)})),em((function(t){t.registerTransform(mV),t.registerTransform(_V)})),em((function(t){t.registerComponentModel(xV),t.registerComponentView(bV)})),t.Axis=vx,t.ChartView=yf,t.ComponentModel=Nc,t.ComponentView=pf,t.List=Pm,t.Model=Sh,t.PRIORITY=Wy,t.SeriesModel=rf,t.color=ln,t.connect=function(t){if(F(t)){var e=t;t=null,Ey(e,(function(e){null!=e.group&&(t=e.group)})),t=t||"g_"+Rv++,Ey(e,(function(e){e.group=t}))}return Pv[t]=!0,t},t.dataTool={},t.dependencies={zrender:"5.0.3"},t.disConnect=Ev,t.disconnect=zv,t.dispose=function(t){"string"==typeof t?t=kv[t]:t instanceof mv||(t=Bv(t)),t instanceof mv&&!t.isDisposed()&&t.dispose()},t.env=a,t.extendChartView=function(t){var e=yf.extend(t);return yf.registerClass(e),e},t.extendComponentModel=function(t){var e=Nc.extend(t);return Nc.registerClass(e),e},t.extendComponentView=function(t){var e=pf.extend(t);return pf.registerClass(e),e},t.extendSeriesModel=function(t){var e=rf.extend(t);return rf.registerClass(e),e},t.format=ox,t.getCoordinateSystemDimensions=function(t){var e=_p.get(t);if(e)return e.getDimensionsInfo?e.getDimensionsInfo():e.dimensions.slice()},t.getInstanceByDom=Bv,t.getInstanceById=function(t){return kv[t]},t.getMap=function(t){var e=lg(t);return e&&e[0]&&{geoJson:e[0].geoJSON,specialAreas:e[0].specialAreas}},t.graphic=rx,t.helper=K_,t.init=function(t,e,n){var i=Bv(t);if(i)return i;var r=new mv(t,e,n);return r.id="ec_"+Ov++,kv[r.id]=r,Er(t,Nv,r.id),pv(r),Ey(Tv,(function(t){t(r)})),r},t.innerDrawElementOnCanvas=Ty,t.matrix=Se,t.number=nx,t.parseGeoJSON=ex,t.parseGeoJson=ex,t.registerAction=Yv,t.registerCoordinateSystem=Xv,t.registerLayout=Uv,t.registerLoading=Kv,t.registerLocale=Oh,t.registerMap=$v,t.registerPostInit=Hv,t.registerPostUpdate=Wv,t.registerPreprocessor=Fv,t.registerProcessor=Gv,t.registerTheme=Vv,t.registerTransform=Jv,t.registerVisual=Zv,t.setCanvasCreator=function(t){m("createCanvas",t)},t.throttle=If,t.time=ix,t.use=em,t.util=ax,t.vector=zt,t.version="5.0.1",t.zrUtil=gt,t.zrender=Yi,Object.defineProperty(t,"__esModule",{value:!0})}));
diff --git a/dist/echarts.simple.js b/dist/echarts.simple.js
index efddf9e..28fc126 100644
--- a/dist/echarts.simple.js
+++ b/dist/echarts.simple.js
@@ -690,35 +690,6 @@
         noop: noop
     });
 
-    /*! *****************************************************************************

-    Copyright (c) Microsoft Corporation.

-

-    Permission to use, copy, modify, and/or distribute this software for any

-    purpose with or without fee is hereby granted.

-

-    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH

-    REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY

-    AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,

-    INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM

-    LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR

-    OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR

-    PERFORMANCE OF THIS SOFTWARE.

-    ***************************************************************************** */

-    /* global Reflect, Promise */

-

-    var extendStatics$1 = function(d, b) {

-        extendStatics$1 = Object.setPrototypeOf ||

-            ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||

-            function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };

-        return extendStatics$1(d, b);

-    };

-

-    function __extends$1(d, b) {

-        extendStatics$1(d, b);

-        function __() { this.constructor = d; }

-        d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());

-    }
-
     function create(x, y) {
         if (x == null) {
             x = 0;
@@ -1439,7 +1410,7 @@
         stop(this.event);
     }
     var EmptyProxy = (function (_super) {
-        __extends$1(EmptyProxy, _super);
+        __extends(EmptyProxy, _super);
         function EmptyProxy() {
             var _this = _super !== null && _super.apply(this, arguments) || this;
             _this.handler = null;
@@ -1461,7 +1432,7 @@
         'mouseup', 'mousedown', 'mousemove', 'contextmenu'
     ];
     var Handler = (function (_super) {
-        __extends$1(Handler, _super);
+        __extends(Handler, _super);
         function Handler(storage, painter, proxy, painterRoot) {
             var _this = _super.call(this) || this;
             _this._hovered = new HoveredResult(0, 0);
@@ -5724,7 +5695,7 @@
     var requestAnimationFrame$1 = requestAnimationFrame;
 
     var Animation = (function (_super) {
-        __extends$1(Animation, _super);
+        __extends(Animation, _super);
         function Animation(opts) {
             var _this = _super.call(this) || this;
             _this._running = false;
@@ -6117,7 +6088,7 @@
         return DOMHandlerScope;
     }());
     var HandlerDomProxy = (function (_super) {
-        __extends$1(HandlerDomProxy, _super);
+        __extends(HandlerDomProxy, _super);
         function HandlerDomProxy(dom, painterRoot) {
             var _this = _super.call(this) || this;
             _this.__pointerCapturing = false;
@@ -6154,7 +6125,7 @@
     }(Eventful));
 
     var Group = (function (_super) {
-        __extends$1(Group, _super);
+        __extends(Group, _super);
         function Group(opts) {
             var _this = _super.call(this) || this;
             _this.isGroup = true;
@@ -6574,7 +6545,7 @@
     function registerPainter(name, Ctor) {
         painterCtors[name] = Ctor;
     }
-    var version = '5.0.1';
+    var version = '5.0.3';
 
     var zrender = /*#__PURE__*/Object.freeze({
         __proto__: null,
@@ -8192,7 +8163,7 @@
     DEFAULT_COMMON_STYLE[STYLE_MAGIC_KEY] = true;
     var PRIMARY_STATES_KEYS$1 = ['z', 'z2', 'invisible'];
     var Displayable = (function (_super) {
-        __extends$1(Displayable, _super);
+        __extends(Displayable, _super);
         function Displayable(props) {
             return _super.call(this, props) || this;
         }
@@ -10175,7 +10146,7 @@
         'culling', 'z', 'z2', 'zlevel', 'parent'
     ];
     var Path = (function (_super) {
-        __extends$1(Path, _super);
+        __extends(Path, _super);
         function Path(opts) {
             return _super.call(this, opts) || this;
         }
@@ -10497,7 +10468,7 @@
         };
         Path.extend = function (defaultProps) {
             var Sub = (function (_super) {
-                __extends$1(Sub, _super);
+                __extends(Sub, _super);
                 function Sub(opts) {
                     var _this = _super.call(this, opts) || this;
                     defaultProps.init && defaultProps.init.call(_this, opts);
@@ -10541,7 +10512,7 @@
         miterLimit: 2
     }, DEFAULT_PATH_STYLE);
     var TSpan = (function (_super) {
-        __extends$1(TSpan, _super);
+        __extends(TSpan, _super);
         function TSpan() {
             return _super !== null && _super.apply(this, arguments) || this;
         }
@@ -10610,7 +10581,7 @@
             && source.width && source.height);
     }
     var ZRImage = (function (_super) {
-        __extends$1(ZRImage, _super);
+        __extends(ZRImage, _super);
         function ZRImage() {
             return _super !== null && _super.apply(this, arguments) || this;
         }
@@ -10801,7 +10772,7 @@
     }());
     var subPixelOptimizeOutputShape = {};
     var Rect = (function (_super) {
-        __extends$1(Rect, _super);
+        __extends(Rect, _super);
         function Rect(opts) {
             return _super.call(this, opts) || this;
         }
@@ -10869,7 +10840,7 @@
         }, DEFAULT_COMMON_ANIMATION_PROPS.style)
     };
     var ZRText = (function (_super) {
-        __extends$1(ZRText, _super);
+        __extends(ZRText, _super);
         function ZRText(opts) {
             var _this = _super.call(this) || this;
             _this.type = 'text';
@@ -12208,7 +12179,7 @@
         return path;
     }
     var SVGPath = (function (_super) {
-        __extends$1(SVGPath, _super);
+        __extends(SVGPath, _super);
         function SVGPath() {
             return _super !== null && _super.apply(this, arguments) || this;
         }
@@ -12246,7 +12217,7 @@
     function extendFromString(str, defaultOpts) {
         var innerOpts = createPathOptions(str, defaultOpts);
         var Sub = (function (_super) {
-            __extends$1(Sub, _super);
+            __extends(Sub, _super);
             function Sub(opts) {
                 var _this = _super.call(this, opts) || this;
                 _this.applyTransform = innerOpts.applyTransform;
@@ -12293,7 +12264,7 @@
         return CircleShape;
     }());
     var Circle = (function (_super) {
-        __extends$1(Circle, _super);
+        __extends(Circle, _super);
         function Circle(opts) {
             return _super.call(this, opts) || this;
         }
@@ -12320,7 +12291,7 @@
         return EllipseShape;
     }());
     var Ellipse = (function (_super) {
-        __extends$1(Ellipse, _super);
+        __extends(Ellipse, _super);
         function Ellipse(opts) {
             return _super.call(this, opts) || this;
         }
@@ -12538,7 +12509,7 @@
         return SectorShape;
     }());
     var Sector = (function (_super) {
-        __extends$1(Sector, _super);
+        __extends(Sector, _super);
         function Sector(opts) {
             return _super.call(this, opts) || this;
         }
@@ -12566,7 +12537,7 @@
         return RingShape;
     }());
     var Ring = (function (_super) {
-        __extends$1(Ring, _super);
+        __extends(Ring, _super);
         function Ring(opts) {
             return _super.call(this, opts) || this;
         }
@@ -12730,7 +12701,7 @@
         return PolygonShape;
     }());
     var Polygon = (function (_super) {
-        __extends$1(Polygon, _super);
+        __extends(Polygon, _super);
         function Polygon(opts) {
             return _super.call(this, opts) || this;
         }
@@ -12754,7 +12725,7 @@
         return PolylineShape;
     }());
     var Polyline = (function (_super) {
-        __extends$1(Polyline, _super);
+        __extends(Polyline, _super);
         function Polyline(opts) {
             return _super.call(this, opts) || this;
         }
@@ -12786,7 +12757,7 @@
         return LineShape;
     }());
     var Line = (function (_super) {
-        __extends$1(Line, _super);
+        __extends(Line, _super);
         function Line(opts) {
             return _super.call(this, opts) || this;
         }
@@ -12869,7 +12840,7 @@
         }
     }
     var BezierCurve = (function (_super) {
-        __extends$1(BezierCurve, _super);
+        __extends(BezierCurve, _super);
         function BezierCurve(opts) {
             return _super.call(this, opts) || this;
         }
@@ -12944,7 +12915,7 @@
         return ArcShape;
     }());
     var Arc = (function (_super) {
-        __extends$1(Arc, _super);
+        __extends(Arc, _super);
         function Arc(opts) {
             return _super.call(this, opts) || this;
         }
@@ -12974,7 +12945,7 @@
     Arc.prototype.type = 'arc';
 
     var CompoundPath = (function (_super) {
-        __extends$1(CompoundPath, _super);
+        __extends(CompoundPath, _super);
         function CompoundPath() {
             var _this = _super !== null && _super.apply(this, arguments) || this;
             _this.type = 'compound';
@@ -13034,7 +13005,7 @@
     }());
 
     var LinearGradient = (function (_super) {
-        __extends$1(LinearGradient, _super);
+        __extends(LinearGradient, _super);
         function LinearGradient(x, y, x2, y2, colorStops, globalCoord) {
             var _this = _super.call(this, colorStops) || this;
             _this.x = x == null ? 0 : x;
@@ -13049,7 +13020,7 @@
     }(Gradient));
 
     var RadialGradient = (function (_super) {
-        __extends$1(RadialGradient, _super);
+        __extends(RadialGradient, _super);
         function RadialGradient(x, y, r, colorStops, globalCoord) {
             var _this = _super.call(this, colorStops) || this;
             _this.x = x == null ? 0.5 : x;
@@ -13183,7 +13154,7 @@
 
     var m = [];
     var IncrementalDisplayable = (function (_super) {
-        __extends$1(IncrementalDisplayable, _super);
+        __extends(IncrementalDisplayable, _super);
         function IncrementalDisplayable() {
             var _this = _super !== null && _super.apply(this, arguments) || this;
             _this.notClear = true;
@@ -23333,7 +23304,7 @@
     var hasWindow = typeof window !== 'undefined';
     var version$1 = '5.0.1';
     var dependencies = {
-      zrender: '5.0.2'
+      zrender: '5.0.3'
     };
     var TEST_FRAME_REMAIN_TIME = 1;
     var PRIORITY_PROCESSOR_SERIES_FILTER = 800;
@@ -30456,7 +30427,7 @@
         return newDom;
     }
     var Layer = (function (_super) {
-        __extends$1(Layer, _super);
+        __extends(Layer, _super);
         function Layer(id, painter, dpr) {
             var _this = _super.call(this) || this;
             _this.motionBlur = false;
diff --git a/dist/echarts.simple.js.map b/dist/echarts.simple.js.map
index 502eb5f..d658482 100644
--- a/dist/echarts.simple.js.map
+++ b/dist/echarts.simple.js.map
@@ -1 +1 @@
-{"version":3,"file":"echarts.simple.js","sources":["../node_modules/tslib/tslib.es6.js","../node_modules/zrender/lib/core/env.js","../node_modules/zrender/lib/core/util.js","../node_modules/zrender/node_modules/tslib/tslib.es6.js","../node_modules/zrender/lib/core/vector.js","../node_modules/zrender/lib/mixin/Draggable.js","../node_modules/zrender/lib/core/Eventful.js","../node_modules/zrender/lib/core/fourPointsTransform.js","../node_modules/zrender/lib/core/dom.js","../node_modules/zrender/lib/core/event.js","../node_modules/zrender/lib/core/GestureMgr.js","../node_modules/zrender/lib/Handler.js","../node_modules/zrender/lib/core/matrix.js","../node_modules/zrender/lib/core/Transformable.js","../node_modules/zrender/lib/animation/easing.js","../node_modules/zrender/lib/animation/Clip.js","../node_modules/zrender/lib/core/LRU.js","../node_modules/zrender/lib/tool/color.js","../node_modules/zrender/lib/animation/Animator.js","../node_modules/zrender/lib/core/Point.js","../node_modules/zrender/lib/core/BoundingRect.js","../node_modules/zrender/lib/contain/text.js","../node_modules/zrender/lib/config.js","../node_modules/zrender/lib/Element.js","../node_modules/zrender/lib/core/timsort.js","../node_modules/zrender/lib/Storage.js","../node_modules/zrender/lib/animation/requestAnimationFrame.js","../node_modules/zrender/lib/animation/Animation.js","../node_modules/zrender/lib/dom/HandlerProxy.js","../node_modules/zrender/lib/graphic/Group.js","../node_modules/zrender/lib/zrender.js","../lib/util/number.js","../lib/util/log.js","../lib/util/model.js","../lib/util/clazz.js","../lib/model/mixin/makeStyleMapper.js","../lib/model/mixin/areaStyle.js","../node_modules/zrender/lib/graphic/helper/image.js","../node_modules/zrender/lib/graphic/helper/parseText.js","../node_modules/zrender/lib/graphic/Displayable.js","../node_modules/zrender/lib/core/curve.js","../node_modules/zrender/lib/core/bbox.js","../node_modules/zrender/lib/core/PathProxy.js","../node_modules/zrender/lib/contain/line.js","../node_modules/zrender/lib/contain/cubic.js","../node_modules/zrender/lib/contain/quadratic.js","../node_modules/zrender/lib/contain/util.js","../node_modules/zrender/lib/contain/arc.js","../node_modules/zrender/lib/contain/windingLine.js","../node_modules/zrender/lib/contain/path.js","../node_modules/zrender/lib/graphic/Path.js","../node_modules/zrender/lib/graphic/TSpan.js","../node_modules/zrender/lib/graphic/Image.js","../node_modules/zrender/lib/graphic/helper/roundRect.js","../node_modules/zrender/lib/graphic/helper/subPixelOptimize.js","../node_modules/zrender/lib/graphic/shape/Rect.js","../node_modules/zrender/lib/graphic/Text.js","../lib/util/innerStore.js","../lib/util/states.js","../node_modules/zrender/lib/tool/transformPath.js","../node_modules/zrender/lib/tool/path.js","../node_modules/zrender/lib/graphic/shape/Circle.js","../node_modules/zrender/lib/graphic/shape/Ellipse.js","../node_modules/zrender/lib/graphic/helper/roundSector.js","../node_modules/zrender/lib/graphic/shape/Sector.js","../node_modules/zrender/lib/graphic/shape/Ring.js","../node_modules/zrender/lib/graphic/helper/smoothSpline.js","../node_modules/zrender/lib/graphic/helper/smoothBezier.js","../node_modules/zrender/lib/graphic/helper/poly.js","../node_modules/zrender/lib/graphic/shape/Polygon.js","../node_modules/zrender/lib/graphic/shape/Polyline.js","../node_modules/zrender/lib/graphic/shape/Line.js","../node_modules/zrender/lib/graphic/shape/BezierCurve.js","../node_modules/zrender/lib/graphic/shape/Arc.js","../node_modules/zrender/lib/graphic/CompoundPath.js","../node_modules/zrender/lib/graphic/Gradient.js","../node_modules/zrender/lib/graphic/LinearGradient.js","../node_modules/zrender/lib/graphic/RadialGradient.js","../node_modules/zrender/lib/core/OrientedBoundingRect.js","../node_modules/zrender/lib/graphic/IncrementalDisplayable.js","../lib/util/graphic.js","../lib/label/labelStyle.js","../lib/model/mixin/textStyle.js","../lib/model/mixin/lineStyle.js","../lib/model/mixin/itemStyle.js","../lib/model/Model.js","../lib/util/component.js","../lib/i18n/langEN.js","../lib/i18n/langZH.js","../lib/core/locale.js","../lib/util/time.js","../lib/legacy/getTextRect.js","../lib/util/format.js","../lib/util/layout.js","../lib/model/Component.js","../lib/model/globalDefault.js","../lib/util/types.js","../lib/data/helper/sourceHelper.js","../lib/model/internalComponentCreator.js","../lib/model/mixin/palette.js","../lib/model/Global.js","../lib/core/ExtensionAPI.js","../lib/core/CoordinateSystem.js","../lib/model/OptionManager.js","../lib/preprocessor/helper/compatStyle.js","../lib/preprocessor/backwardCompat.js","../lib/processor/dataStack.js","../lib/data/Source.js","../lib/data/helper/dataProvider.js","../lib/model/mixin/dataFormat.js","../lib/core/task.js","../lib/data/helper/dataValueHelper.js","../lib/data/helper/transform.js","../lib/data/helper/sourceManager.js","../lib/component/tooltip/tooltipMarkup.js","../lib/component/tooltip/seriesFormatTooltip.js","../lib/model/Series.js","../lib/view/Component.js","../lib/chart/helper/createRenderPlanner.js","../lib/view/Chart.js","../lib/util/throttle.js","../lib/visual/style.js","../lib/loading/default.js","../lib/core/Scheduler.js","../lib/theme/light.js","../lib/theme/dark.js","../node_modules/zrender/lib/tool/parseXML.js","../lib/coord/geo/mapDataStorage.js","../lib/util/ECEventProcessor.js","../lib/visual/symbol.js","../lib/visual/helper.js","../lib/label/labelGuideHelper.js","../lib/label/labelLayoutHelper.js","../lib/label/LabelManager.js","../lib/legacy/dataSelectAction.js","../lib/util/event.js","../node_modules/zrender/lib/core/WeakMap.js","../lib/util/symbol.js","../node_modules/zrender/lib/canvas/helper.js","../node_modules/zrender/lib/graphic/helper/dashStyle.js","../node_modules/zrender/lib/canvas/graphic.js","../lib/util/decal.js","../lib/visual/decal.js","../lib/core/echarts.js","../lib/extension.js","../lib/data/DataDiffer.js","../lib/data/helper/dimensionHelper.js","../lib/data/DataDimensionInfo.js","../lib/data/List.js","../lib/data/helper/completeDimensions.js","../lib/data/helper/createDimensions.js","../lib/model/referHelper.js","../lib/data/helper/dataStackHelper.js","../lib/chart/helper/createListFromArray.js","../lib/scale/Scale.js","../lib/data/OrdinalMeta.js","../lib/scale/helper.js","../lib/scale/Ordinal.js","../lib/scale/Interval.js","../lib/layout/barGrid.js","../lib/scale/Time.js","../lib/scale/Log.js","../lib/coord/scaleRawExtentInfo.js","../lib/coord/axisHelper.js","../lib/coord/axisModelCommonMixin.js","../lib/export/api/helper.js","../node_modules/zrender/lib/contain/polygon.js","../lib/coord/geo/Region.js","../lib/coord/geo/parseGeoJson.js","../lib/coord/axisTickLabelBuilder.js","../lib/coord/Axis.js","../lib/export/api.js","../node_modules/zrender/lib/canvas/Layer.js","../node_modules/zrender/lib/canvas/Painter.js","../lib/renderer/installCanvasRenderer.js","../lib/chart/line/LineSeries.js","../lib/chart/helper/labelHelper.js","../lib/chart/helper/Symbol.js","../lib/chart/helper/SymbolDraw.js","../lib/chart/line/helper.js","../lib/util/vendor.js","../lib/chart/line/lineAnimationDiff.js","../lib/chart/line/poly.js","../lib/chart/helper/createClipPathFromCoordSys.js","../lib/coord/CoordinateSystem.js","../lib/chart/line/LineView.js","../lib/layout/points.js","../lib/processor/dataSample.js","../lib/chart/line/install.js","../lib/chart/bar/BaseBarSeries.js","../lib/chart/bar/BarSeries.js","../lib/util/shape/sausage.js","../lib/chart/bar/BarView.js","../lib/chart/bar/install.js","../lib/chart/pie/pieLayout.js","../lib/processor/dataFilter.js","../lib/chart/pie/labelLayout.js","../lib/chart/helper/pieHelper.js","../lib/chart/pie/PieView.js","../lib/chart/helper/createListSimply.js","../lib/visual/LegendVisualProvider.js","../lib/chart/pie/PieSeries.js","../lib/chart/pie/install.js","../lib/coord/cartesian/GridModel.js","../lib/coord/cartesian/AxisModel.js","../lib/coord/axisDefault.js","../lib/coord/axisCommonTypes.js","../lib/coord/axisModelCreator.js","../lib/coord/cartesian/Cartesian.js","../lib/coord/cartesian/Cartesian2D.js","../lib/coord/cartesian/Axis2D.js","../lib/coord/cartesian/cartesianAxisHelper.js","../lib/coord/cartesian/Grid.js","../lib/component/axis/AxisBuilder.js","../lib/component/axisPointer/modelHelper.js","../lib/component/axis/AxisView.js","../lib/component/axis/axisSplitHelper.js","../lib/component/axis/CartesianAxisView.js","../lib/component/grid/installSimple.js","../lib/visual/aria.js","../lib/component/aria/preprocessor.js","../lib/component/aria/install.js","../lib/component/dataset/install.js","../index.simple.js"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar 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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport 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\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\nexport 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};\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to get private field on non-instance\");\r\n    }\r\n    return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to set private field on non-instance\");\r\n    }\r\n    privateMap.set(receiver, value);\r\n    return value;\r\n}\r\n","var Browser = (function () {\n    function Browser() {\n        this.firefox = false;\n        this.ie = false;\n        this.edge = false;\n        this.newEdge = false;\n        this.weChat = false;\n    }\n    return Browser;\n}());\nvar Env = (function () {\n    function Env() {\n        this.browser = new Browser();\n        this.node = false;\n        this.wxa = false;\n        this.worker = false;\n        this.canvasSupported = false;\n        this.svgSupported = false;\n        this.touchEventsSupported = false;\n        this.pointerEventsSupported = false;\n        this.domSupported = false;\n    }\n    return Env;\n}());\nvar env = new Env();\nif (typeof wx === 'object' && typeof wx.getSystemInfoSync === 'function') {\n    env.wxa = true;\n    env.canvasSupported = true;\n    env.touchEventsSupported = true;\n}\nelse if (typeof document === 'undefined' && typeof self !== 'undefined') {\n    env.worker = true;\n    env.canvasSupported = true;\n}\nelse if (typeof navigator === 'undefined') {\n    env.node = true;\n    env.canvasSupported = true;\n    env.svgSupported = true;\n}\nelse {\n    detect(navigator.userAgent, env);\n}\nfunction detect(ua, env) {\n    var browser = env.browser;\n    var firefox = ua.match(/Firefox\\/([\\d.]+)/);\n    var ie = ua.match(/MSIE\\s([\\d.]+)/)\n        || ua.match(/Trident\\/.+?rv:(([\\d.]+))/);\n    var edge = ua.match(/Edge?\\/([\\d.]+)/);\n    var weChat = (/micromessenger/i).test(ua);\n    if (firefox) {\n        browser.firefox = true;\n        browser.version = firefox[1];\n    }\n    if (ie) {\n        browser.ie = true;\n        browser.version = ie[1];\n    }\n    if (edge) {\n        browser.edge = true;\n        browser.version = edge[1];\n        browser.newEdge = +edge[1].split('.')[0] > 18;\n    }\n    if (weChat) {\n        browser.weChat = true;\n    }\n    env.canvasSupported = !!document.createElement('canvas').getContext;\n    env.svgSupported = typeof SVGRect !== 'undefined';\n    env.touchEventsSupported = 'ontouchstart' in window && !browser.ie && !browser.edge;\n    env.pointerEventsSupported = 'onpointerdown' in window\n        && (browser.edge || (browser.ie && +browser.version >= 11));\n    env.domSupported = typeof document !== 'undefined';\n}\nexport default env;\n","var BUILTIN_OBJECT = {\n    '[object Function]': true,\n    '[object RegExp]': true,\n    '[object Date]': true,\n    '[object Error]': true,\n    '[object CanvasGradient]': true,\n    '[object CanvasPattern]': true,\n    '[object Image]': true,\n    '[object Canvas]': true\n};\nvar TYPED_ARRAY = {\n    '[object Int8Array]': true,\n    '[object Uint8Array]': true,\n    '[object Uint8ClampedArray]': true,\n    '[object Int16Array]': true,\n    '[object Uint16Array]': true,\n    '[object Int32Array]': true,\n    '[object Uint32Array]': true,\n    '[object Float32Array]': true,\n    '[object Float64Array]': true\n};\nvar objToString = Object.prototype.toString;\nvar arrayProto = Array.prototype;\nvar nativeForEach = arrayProto.forEach;\nvar nativeFilter = arrayProto.filter;\nvar nativeSlice = arrayProto.slice;\nvar nativeMap = arrayProto.map;\nvar ctorFunction = function () { }.constructor;\nvar protoFunction = ctorFunction ? ctorFunction.prototype : null;\nvar methods = {};\nexport function $override(name, fn) {\n    methods[name] = fn;\n}\nvar idStart = 0x0907;\nexport function guid() {\n    return idStart++;\n}\nexport function logError() {\n    var args = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n    }\n    if (typeof console !== 'undefined') {\n        console.error.apply(console, args);\n    }\n}\nexport function clone(source) {\n    if (source == null || typeof source !== 'object') {\n        return source;\n    }\n    var result = source;\n    var typeStr = objToString.call(source);\n    if (typeStr === '[object Array]') {\n        if (!isPrimitive(source)) {\n            result = [];\n            for (var i = 0, len = source.length; i < len; i++) {\n                result[i] = clone(source[i]);\n            }\n        }\n    }\n    else if (TYPED_ARRAY[typeStr]) {\n        if (!isPrimitive(source)) {\n            var Ctor = source.constructor;\n            if (Ctor.from) {\n                result = Ctor.from(source);\n            }\n            else {\n                result = new Ctor(source.length);\n                for (var i = 0, len = source.length; i < len; i++) {\n                    result[i] = clone(source[i]);\n                }\n            }\n        }\n    }\n    else if (!BUILTIN_OBJECT[typeStr] && !isPrimitive(source) && !isDom(source)) {\n        result = {};\n        for (var key in source) {\n            if (source.hasOwnProperty(key)) {\n                result[key] = clone(source[key]);\n            }\n        }\n    }\n    return result;\n}\nexport function merge(target, source, overwrite) {\n    if (!isObject(source) || !isObject(target)) {\n        return overwrite ? clone(source) : target;\n    }\n    for (var key in source) {\n        if (source.hasOwnProperty(key)) {\n            var targetProp = target[key];\n            var sourceProp = source[key];\n            if (isObject(sourceProp)\n                && isObject(targetProp)\n                && !isArray(sourceProp)\n                && !isArray(targetProp)\n                && !isDom(sourceProp)\n                && !isDom(targetProp)\n                && !isBuiltInObject(sourceProp)\n                && !isBuiltInObject(targetProp)\n                && !isPrimitive(sourceProp)\n                && !isPrimitive(targetProp)) {\n                merge(targetProp, sourceProp, overwrite);\n            }\n            else if (overwrite || !(key in target)) {\n                target[key] = clone(source[key]);\n            }\n        }\n    }\n    return target;\n}\nexport function mergeAll(targetAndSources, overwrite) {\n    var result = targetAndSources[0];\n    for (var i = 1, len = targetAndSources.length; i < len; i++) {\n        result = merge(result, targetAndSources[i], overwrite);\n    }\n    return result;\n}\nexport function extend(target, source) {\n    if (Object.assign) {\n        Object.assign(target, source);\n    }\n    else {\n        for (var key in source) {\n            if (source.hasOwnProperty(key)) {\n                target[key] = source[key];\n            }\n        }\n    }\n    return target;\n}\nexport function defaults(target, source, overlay) {\n    var keysArr = keys(source);\n    for (var i = 0; i < keysArr.length; i++) {\n        var key = keysArr[i];\n        if ((overlay ? source[key] != null : target[key] == null)) {\n            target[key] = source[key];\n        }\n    }\n    return target;\n}\nexport var createCanvas = function () {\n    return methods.createCanvas();\n};\nmethods.createCanvas = function () {\n    return document.createElement('canvas');\n};\nexport function indexOf(array, value) {\n    if (array) {\n        if (array.indexOf) {\n            return array.indexOf(value);\n        }\n        for (var i = 0, len = array.length; i < len; i++) {\n            if (array[i] === value) {\n                return i;\n            }\n        }\n    }\n    return -1;\n}\nexport function inherits(clazz, baseClazz) {\n    var clazzPrototype = clazz.prototype;\n    function F() { }\n    F.prototype = baseClazz.prototype;\n    clazz.prototype = new F();\n    for (var prop in clazzPrototype) {\n        if (clazzPrototype.hasOwnProperty(prop)) {\n            clazz.prototype[prop] = clazzPrototype[prop];\n        }\n    }\n    clazz.prototype.constructor = clazz;\n    clazz.superClass = baseClazz;\n}\nexport function mixin(target, source, override) {\n    target = 'prototype' in target ? target.prototype : target;\n    source = 'prototype' in source ? source.prototype : source;\n    if (Object.getOwnPropertyNames) {\n        var keyList = Object.getOwnPropertyNames(source);\n        for (var i = 0; i < keyList.length; i++) {\n            var key = keyList[i];\n            if (key !== 'constructor') {\n                if ((override ? source[key] != null : target[key] == null)) {\n                    target[key] = source[key];\n                }\n            }\n        }\n    }\n    else {\n        defaults(target, source, override);\n    }\n}\nexport function isArrayLike(data) {\n    if (!data) {\n        return false;\n    }\n    if (typeof data === 'string') {\n        return false;\n    }\n    return typeof data.length === 'number';\n}\nexport function each(arr, cb, context) {\n    if (!(arr && cb)) {\n        return;\n    }\n    if (arr.forEach && arr.forEach === nativeForEach) {\n        arr.forEach(cb, context);\n    }\n    else if (arr.length === +arr.length) {\n        for (var i = 0, len = arr.length; i < len; i++) {\n            cb.call(context, arr[i], i, arr);\n        }\n    }\n    else {\n        for (var key in arr) {\n            if (arr.hasOwnProperty(key)) {\n                cb.call(context, arr[key], key, arr);\n            }\n        }\n    }\n}\nexport function map(arr, cb, context) {\n    if (!arr) {\n        return [];\n    }\n    if (!cb) {\n        return slice(arr);\n    }\n    if (arr.map && arr.map === nativeMap) {\n        return arr.map(cb, context);\n    }\n    else {\n        var result = [];\n        for (var i = 0, len = arr.length; i < len; i++) {\n            result.push(cb.call(context, arr[i], i, arr));\n        }\n        return result;\n    }\n}\nexport function reduce(arr, cb, memo, context) {\n    if (!(arr && cb)) {\n        return;\n    }\n    for (var i = 0, len = arr.length; i < len; i++) {\n        memo = cb.call(context, memo, arr[i], i, arr);\n    }\n    return memo;\n}\nexport function filter(arr, cb, context) {\n    if (!arr) {\n        return [];\n    }\n    if (!cb) {\n        return slice(arr);\n    }\n    if (arr.filter && arr.filter === nativeFilter) {\n        return arr.filter(cb, context);\n    }\n    else {\n        var result = [];\n        for (var i = 0, len = arr.length; i < len; i++) {\n            if (cb.call(context, arr[i], i, arr)) {\n                result.push(arr[i]);\n            }\n        }\n        return result;\n    }\n}\nexport function find(arr, cb, context) {\n    if (!(arr && cb)) {\n        return;\n    }\n    for (var i = 0, len = arr.length; i < len; i++) {\n        if (cb.call(context, arr[i], i, arr)) {\n            return arr[i];\n        }\n    }\n}\nexport function keys(obj) {\n    if (!obj) {\n        return [];\n    }\n    if (Object.keys) {\n        return Object.keys(obj);\n    }\n    var keyList = [];\n    for (var key in obj) {\n        if (obj.hasOwnProperty(key)) {\n            keyList.push(key);\n        }\n    }\n    return keyList;\n}\nfunction bindPolyfill(func, context) {\n    var args = [];\n    for (var _i = 2; _i < arguments.length; _i++) {\n        args[_i - 2] = arguments[_i];\n    }\n    return function () {\n        return func.apply(context, args.concat(nativeSlice.call(arguments)));\n    };\n}\nexport var bind = (protoFunction && isFunction(protoFunction.bind))\n    ? protoFunction.call.bind(protoFunction.bind)\n    : bindPolyfill;\nfunction curry(func) {\n    var args = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        args[_i - 1] = arguments[_i];\n    }\n    return function () {\n        return func.apply(this, args.concat(nativeSlice.call(arguments)));\n    };\n}\nexport { curry };\nexport function isArray(value) {\n    if (Array.isArray) {\n        return Array.isArray(value);\n    }\n    return objToString.call(value) === '[object Array]';\n}\nexport function isFunction(value) {\n    return typeof value === 'function';\n}\nexport function isString(value) {\n    return typeof value === 'string';\n}\nexport function isStringSafe(value) {\n    return objToString.call(value) === '[object String]';\n}\nexport function isNumber(value) {\n    return typeof value === 'number';\n}\nexport function isObject(value) {\n    var type = typeof value;\n    return type === 'function' || (!!value && type === 'object');\n}\nexport function isBuiltInObject(value) {\n    return !!BUILTIN_OBJECT[objToString.call(value)];\n}\nexport function isTypedArray(value) {\n    return !!TYPED_ARRAY[objToString.call(value)];\n}\nexport function isDom(value) {\n    return typeof value === 'object'\n        && typeof value.nodeType === 'number'\n        && typeof value.ownerDocument === 'object';\n}\nexport function isGradientObject(value) {\n    return value.colorStops != null;\n}\nexport function isPatternObject(value) {\n    return value.image != null;\n}\nexport function isRegExp(value) {\n    return objToString.call(value) === '[object RegExp]';\n}\nexport function eqNaN(value) {\n    return value !== value;\n}\nexport function retrieve() {\n    var args = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n    }\n    for (var i = 0, len = args.length; i < len; i++) {\n        if (args[i] != null) {\n            return args[i];\n        }\n    }\n}\nexport function retrieve2(value0, value1) {\n    return value0 != null\n        ? value0\n        : value1;\n}\nexport function retrieve3(value0, value1, value2) {\n    return value0 != null\n        ? value0\n        : value1 != null\n            ? value1\n            : value2;\n}\nexport function slice(arr) {\n    var args = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        args[_i - 1] = arguments[_i];\n    }\n    return nativeSlice.apply(arr, args);\n}\nexport function normalizeCssArray(val) {\n    if (typeof (val) === 'number') {\n        return [val, val, val, val];\n    }\n    var len = val.length;\n    if (len === 2) {\n        return [val[0], val[1], val[0], val[1]];\n    }\n    else if (len === 3) {\n        return [val[0], val[1], val[2], val[1]];\n    }\n    return val;\n}\nexport function assert(condition, message) {\n    if (!condition) {\n        throw new Error(message);\n    }\n}\nexport function trim(str) {\n    if (str == null) {\n        return null;\n    }\n    else if (typeof str.trim === 'function') {\n        return str.trim();\n    }\n    else {\n        return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n    }\n}\nvar primitiveKey = '__ec_primitive__';\nexport function setAsPrimitive(obj) {\n    obj[primitiveKey] = true;\n}\nexport function isPrimitive(obj) {\n    return obj[primitiveKey];\n}\nvar HashMap = (function () {\n    function HashMap(obj) {\n        this.data = {};\n        var isArr = isArray(obj);\n        this.data = {};\n        var thisMap = this;\n        (obj instanceof HashMap)\n            ? obj.each(visit)\n            : (obj && each(obj, visit));\n        function visit(value, key) {\n            isArr ? thisMap.set(value, key) : thisMap.set(key, value);\n        }\n    }\n    HashMap.prototype.get = function (key) {\n        return this.data.hasOwnProperty(key) ? this.data[key] : null;\n    };\n    HashMap.prototype.set = function (key, value) {\n        return (this.data[key] = value);\n    };\n    HashMap.prototype.each = function (cb, context) {\n        for (var key in this.data) {\n            if (this.data.hasOwnProperty(key)) {\n                cb.call(context, this.data[key], key);\n            }\n        }\n    };\n    HashMap.prototype.keys = function () {\n        return keys(this.data);\n    };\n    HashMap.prototype.removeKey = function (key) {\n        delete this.data[key];\n    };\n    return HashMap;\n}());\nexport { HashMap };\nexport function createHashMap(obj) {\n    return new HashMap(obj);\n}\nexport function concatArray(a, b) {\n    var newArray = new a.constructor(a.length + b.length);\n    for (var i = 0; i < a.length; i++) {\n        newArray[i] = a[i];\n    }\n    var offset = a.length;\n    for (var i = 0; i < b.length; i++) {\n        newArray[i + offset] = b[i];\n    }\n    return newArray;\n}\nexport function createObject(proto, properties) {\n    var obj;\n    if (Object.create) {\n        obj = Object.create(proto);\n    }\n    else {\n        var StyleCtor = function () { };\n        StyleCtor.prototype = proto;\n        obj = new StyleCtor();\n    }\n    if (properties) {\n        extend(obj, properties);\n    }\n    return obj;\n}\nexport function hasOwn(own, prop) {\n    return own.hasOwnProperty(prop);\n}\nexport function noop() { }\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar 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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport 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\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\nexport 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};\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to get private field on non-instance\");\r\n    }\r\n    return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to set private field on non-instance\");\r\n    }\r\n    privateMap.set(receiver, value);\r\n    return value;\r\n}\r\n","export function create(x, y) {\n    if (x == null) {\n        x = 0;\n    }\n    if (y == null) {\n        y = 0;\n    }\n    return [x, y];\n}\nexport function copy(out, v) {\n    out[0] = v[0];\n    out[1] = v[1];\n    return out;\n}\nexport function clone(v) {\n    return [v[0], v[1]];\n}\nexport function set(out, a, b) {\n    out[0] = a;\n    out[1] = b;\n    return out;\n}\nexport function add(out, v1, v2) {\n    out[0] = v1[0] + v2[0];\n    out[1] = v1[1] + v2[1];\n    return out;\n}\nexport function scaleAndAdd(out, v1, v2, a) {\n    out[0] = v1[0] + v2[0] * a;\n    out[1] = v1[1] + v2[1] * a;\n    return out;\n}\nexport function sub(out, v1, v2) {\n    out[0] = v1[0] - v2[0];\n    out[1] = v1[1] - v2[1];\n    return out;\n}\nexport function len(v) {\n    return Math.sqrt(lenSquare(v));\n}\nexport var length = len;\nexport function lenSquare(v) {\n    return v[0] * v[0] + v[1] * v[1];\n}\nexport var lengthSquare = lenSquare;\nexport function mul(out, v1, v2) {\n    out[0] = v1[0] * v2[0];\n    out[1] = v1[1] * v2[1];\n    return out;\n}\nexport function div(out, v1, v2) {\n    out[0] = v1[0] / v2[0];\n    out[1] = v1[1] / v2[1];\n    return out;\n}\nexport function dot(v1, v2) {\n    return v1[0] * v2[0] + v1[1] * v2[1];\n}\nexport function scale(out, v, s) {\n    out[0] = v[0] * s;\n    out[1] = v[1] * s;\n    return out;\n}\nexport function normalize(out, v) {\n    var d = len(v);\n    if (d === 0) {\n        out[0] = 0;\n        out[1] = 0;\n    }\n    else {\n        out[0] = v[0] / d;\n        out[1] = v[1] / d;\n    }\n    return out;\n}\nexport function distance(v1, v2) {\n    return Math.sqrt((v1[0] - v2[0]) * (v1[0] - v2[0])\n        + (v1[1] - v2[1]) * (v1[1] - v2[1]));\n}\nexport var dist = distance;\nexport function distanceSquare(v1, v2) {\n    return (v1[0] - v2[0]) * (v1[0] - v2[0])\n        + (v1[1] - v2[1]) * (v1[1] - v2[1]);\n}\nexport var distSquare = distanceSquare;\nexport function negate(out, v) {\n    out[0] = -v[0];\n    out[1] = -v[1];\n    return out;\n}\nexport function lerp(out, v1, v2, t) {\n    out[0] = v1[0] + t * (v2[0] - v1[0]);\n    out[1] = v1[1] + t * (v2[1] - v1[1]);\n    return out;\n}\nexport function applyTransform(out, v, m) {\n    var x = v[0];\n    var y = v[1];\n    out[0] = m[0] * x + m[2] * y + m[4];\n    out[1] = m[1] * x + m[3] * y + m[5];\n    return out;\n}\nexport function min(out, v1, v2) {\n    out[0] = Math.min(v1[0], v2[0]);\n    out[1] = Math.min(v1[1], v2[1]);\n    return out;\n}\nexport function max(out, v1, v2) {\n    out[0] = Math.max(v1[0], v2[0]);\n    out[1] = Math.max(v1[1], v2[1]);\n    return out;\n}\n","var Param = (function () {\n    function Param(target, e) {\n        this.target = target;\n        this.topTarget = e && e.topTarget;\n    }\n    return Param;\n}());\nvar Draggable = (function () {\n    function Draggable(handler) {\n        this.handler = handler;\n        handler.on('mousedown', this._dragStart, this);\n        handler.on('mousemove', this._drag, this);\n        handler.on('mouseup', this._dragEnd, this);\n    }\n    Draggable.prototype._dragStart = function (e) {\n        var draggingTarget = e.target;\n        while (draggingTarget && !draggingTarget.draggable) {\n            draggingTarget = draggingTarget.parent;\n        }\n        if (draggingTarget) {\n            this._draggingTarget = draggingTarget;\n            draggingTarget.dragging = true;\n            this._x = e.offsetX;\n            this._y = e.offsetY;\n            this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragstart', e.event);\n        }\n    };\n    Draggable.prototype._drag = function (e) {\n        var draggingTarget = this._draggingTarget;\n        if (draggingTarget) {\n            var x = e.offsetX;\n            var y = e.offsetY;\n            var dx = x - this._x;\n            var dy = y - this._y;\n            this._x = x;\n            this._y = y;\n            draggingTarget.drift(dx, dy, e);\n            this.handler.dispatchToElement(new Param(draggingTarget, e), 'drag', e.event);\n            var dropTarget = this.handler.findHover(x, y, draggingTarget).target;\n            var lastDropTarget = this._dropTarget;\n            this._dropTarget = dropTarget;\n            if (draggingTarget !== dropTarget) {\n                if (lastDropTarget && dropTarget !== lastDropTarget) {\n                    this.handler.dispatchToElement(new Param(lastDropTarget, e), 'dragleave', e.event);\n                }\n                if (dropTarget && dropTarget !== lastDropTarget) {\n                    this.handler.dispatchToElement(new Param(dropTarget, e), 'dragenter', e.event);\n                }\n            }\n        }\n    };\n    Draggable.prototype._dragEnd = function (e) {\n        var draggingTarget = this._draggingTarget;\n        if (draggingTarget) {\n            draggingTarget.dragging = false;\n        }\n        this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragend', e.event);\n        if (this._dropTarget) {\n            this.handler.dispatchToElement(new Param(this._dropTarget, e), 'drop', e.event);\n        }\n        this._draggingTarget = null;\n        this._dropTarget = null;\n    };\n    return Draggable;\n}());\nexport default Draggable;\n","var Eventful = (function () {\n    function Eventful(eventProcessors) {\n        if (eventProcessors) {\n            this._$eventProcessor = eventProcessors;\n        }\n    }\n    Eventful.prototype.on = function (event, query, handler, context) {\n        if (!this._$handlers) {\n            this._$handlers = {};\n        }\n        var _h = this._$handlers;\n        if (typeof query === 'function') {\n            context = handler;\n            handler = query;\n            query = null;\n        }\n        if (!handler || !event) {\n            return this;\n        }\n        var eventProcessor = this._$eventProcessor;\n        if (query != null && eventProcessor && eventProcessor.normalizeQuery) {\n            query = eventProcessor.normalizeQuery(query);\n        }\n        if (!_h[event]) {\n            _h[event] = [];\n        }\n        for (var i = 0; i < _h[event].length; i++) {\n            if (_h[event][i].h === handler) {\n                return this;\n            }\n        }\n        var wrap = {\n            h: handler,\n            query: query,\n            ctx: (context || this),\n            callAtLast: handler.zrEventfulCallAtLast\n        };\n        var lastIndex = _h[event].length - 1;\n        var lastWrap = _h[event][lastIndex];\n        (lastWrap && lastWrap.callAtLast)\n            ? _h[event].splice(lastIndex, 0, wrap)\n            : _h[event].push(wrap);\n        return this;\n    };\n    Eventful.prototype.isSilent = function (eventName) {\n        var _h = this._$handlers;\n        return !_h || !_h[eventName] || !_h[eventName].length;\n    };\n    Eventful.prototype.off = function (eventType, handler) {\n        var _h = this._$handlers;\n        if (!_h) {\n            return this;\n        }\n        if (!eventType) {\n            this._$handlers = {};\n            return this;\n        }\n        if (handler) {\n            if (_h[eventType]) {\n                var newList = [];\n                for (var i = 0, l = _h[eventType].length; i < l; i++) {\n                    if (_h[eventType][i].h !== handler) {\n                        newList.push(_h[eventType][i]);\n                    }\n                }\n                _h[eventType] = newList;\n            }\n            if (_h[eventType] && _h[eventType].length === 0) {\n                delete _h[eventType];\n            }\n        }\n        else {\n            delete _h[eventType];\n        }\n        return this;\n    };\n    Eventful.prototype.trigger = function (eventType) {\n        var args = [];\n        for (var _i = 1; _i < arguments.length; _i++) {\n            args[_i - 1] = arguments[_i];\n        }\n        if (!this._$handlers) {\n            return this;\n        }\n        var _h = this._$handlers[eventType];\n        var eventProcessor = this._$eventProcessor;\n        if (_h) {\n            var argLen = args.length;\n            var len = _h.length;\n            for (var i = 0; i < len; i++) {\n                var hItem = _h[i];\n                if (eventProcessor\n                    && eventProcessor.filter\n                    && hItem.query != null\n                    && !eventProcessor.filter(eventType, hItem.query)) {\n                    continue;\n                }\n                switch (argLen) {\n                    case 0:\n                        hItem.h.call(hItem.ctx);\n                        break;\n                    case 1:\n                        hItem.h.call(hItem.ctx, args[0]);\n                        break;\n                    case 2:\n                        hItem.h.call(hItem.ctx, args[0], args[1]);\n                        break;\n                    default:\n                        hItem.h.apply(hItem.ctx, args);\n                        break;\n                }\n            }\n        }\n        eventProcessor && eventProcessor.afterTrigger\n            && eventProcessor.afterTrigger(eventType);\n        return this;\n    };\n    Eventful.prototype.triggerWithContext = function (type) {\n        if (!this._$handlers) {\n            return this;\n        }\n        var _h = this._$handlers[type];\n        var eventProcessor = this._$eventProcessor;\n        if (_h) {\n            var args = arguments;\n            var argLen = args.length;\n            var ctx = args[argLen - 1];\n            var len = _h.length;\n            for (var i = 0; i < len; i++) {\n                var hItem = _h[i];\n                if (eventProcessor\n                    && eventProcessor.filter\n                    && hItem.query != null\n                    && !eventProcessor.filter(type, hItem.query)) {\n                    continue;\n                }\n                switch (argLen) {\n                    case 0:\n                        hItem.h.call(ctx);\n                        break;\n                    case 1:\n                        hItem.h.call(ctx, args[0]);\n                        break;\n                    case 2:\n                        hItem.h.call(ctx, args[0], args[1]);\n                        break;\n                    default:\n                        hItem.h.apply(ctx, args.slice(1, argLen - 1));\n                        break;\n                }\n            }\n        }\n        eventProcessor && eventProcessor.afterTrigger\n            && eventProcessor.afterTrigger(type);\n        return this;\n    };\n    return Eventful;\n}());\nexport default Eventful;\n","var LN2 = Math.log(2);\nfunction determinant(rows, rank, rowStart, rowMask, colMask, detCache) {\n    var cacheKey = rowMask + '-' + colMask;\n    var fullRank = rows.length;\n    if (detCache.hasOwnProperty(cacheKey)) {\n        return detCache[cacheKey];\n    }\n    if (rank === 1) {\n        var colStart = Math.round(Math.log(((1 << fullRank) - 1) & ~colMask) / LN2);\n        return rows[rowStart][colStart];\n    }\n    var subRowMask = rowMask | (1 << rowStart);\n    var subRowStart = rowStart + 1;\n    while (rowMask & (1 << subRowStart)) {\n        subRowStart++;\n    }\n    var sum = 0;\n    for (var j = 0, colLocalIdx = 0; j < fullRank; j++) {\n        var colTag = 1 << j;\n        if (!(colTag & colMask)) {\n            sum += (colLocalIdx % 2 ? -1 : 1) * rows[rowStart][j]\n                * determinant(rows, rank - 1, subRowStart, subRowMask, colMask | colTag, detCache);\n            colLocalIdx++;\n        }\n    }\n    detCache[cacheKey] = sum;\n    return sum;\n}\nexport function buildTransformer(src, dest) {\n    var mA = [\n        [src[0], src[1], 1, 0, 0, 0, -dest[0] * src[0], -dest[0] * src[1]],\n        [0, 0, 0, src[0], src[1], 1, -dest[1] * src[0], -dest[1] * src[1]],\n        [src[2], src[3], 1, 0, 0, 0, -dest[2] * src[2], -dest[2] * src[3]],\n        [0, 0, 0, src[2], src[3], 1, -dest[3] * src[2], -dest[3] * src[3]],\n        [src[4], src[5], 1, 0, 0, 0, -dest[4] * src[4], -dest[4] * src[5]],\n        [0, 0, 0, src[4], src[5], 1, -dest[5] * src[4], -dest[5] * src[5]],\n        [src[6], src[7], 1, 0, 0, 0, -dest[6] * src[6], -dest[6] * src[7]],\n        [0, 0, 0, src[6], src[7], 1, -dest[7] * src[6], -dest[7] * src[7]]\n    ];\n    var detCache = {};\n    var det = determinant(mA, 8, 0, 0, 0, detCache);\n    if (det === 0) {\n        return;\n    }\n    var vh = [];\n    for (var i = 0; i < 8; i++) {\n        for (var j = 0; j < 8; j++) {\n            vh[j] == null && (vh[j] = 0);\n            vh[j] += ((i + j) % 2 ? -1 : 1)\n                * determinant(mA, 7, i === 0 ? 1 : 0, 1 << i, 1 << j, detCache)\n                / det * dest[i];\n        }\n    }\n    return function (out, srcPointX, srcPointY) {\n        var pk = srcPointX * vh[6] + srcPointY * vh[7] + 1;\n        out[0] = (srcPointX * vh[0] + srcPointY * vh[1] + vh[2]) / pk;\n        out[1] = (srcPointX * vh[3] + srcPointY * vh[4] + vh[5]) / pk;\n    };\n}\n","import env from './env';\nimport { buildTransformer } from './fourPointsTransform';\nvar EVENT_SAVED_PROP = '___zrEVENTSAVED';\nvar _calcOut = [];\nexport function transformLocalCoord(out, elFrom, elTarget, inX, inY) {\n    return transformCoordWithViewport(_calcOut, elFrom, inX, inY, true)\n        && transformCoordWithViewport(out, elTarget, _calcOut[0], _calcOut[1]);\n}\nexport function transformCoordWithViewport(out, el, inX, inY, inverse) {\n    if (el.getBoundingClientRect && env.domSupported && !isCanvasEl(el)) {\n        var saved = el[EVENT_SAVED_PROP] || (el[EVENT_SAVED_PROP] = {});\n        var markers = prepareCoordMarkers(el, saved);\n        var transformer = preparePointerTransformer(markers, saved, inverse);\n        if (transformer) {\n            transformer(out, inX, inY);\n            return true;\n        }\n    }\n    return false;\n}\nfunction prepareCoordMarkers(el, saved) {\n    var markers = saved.markers;\n    if (markers) {\n        return markers;\n    }\n    markers = saved.markers = [];\n    var propLR = ['left', 'right'];\n    var propTB = ['top', 'bottom'];\n    for (var i = 0; i < 4; i++) {\n        var marker = document.createElement('div');\n        var stl = marker.style;\n        var idxLR = i % 2;\n        var idxTB = (i >> 1) % 2;\n        stl.cssText = [\n            'position: absolute',\n            'visibility: hidden',\n            'padding: 0',\n            'margin: 0',\n            'border-width: 0',\n            'user-select: none',\n            'width:0',\n            'height:0',\n            propLR[idxLR] + ':0',\n            propTB[idxTB] + ':0',\n            propLR[1 - idxLR] + ':auto',\n            propTB[1 - idxTB] + ':auto',\n            ''\n        ].join('!important;');\n        el.appendChild(marker);\n        markers.push(marker);\n    }\n    return markers;\n}\nfunction preparePointerTransformer(markers, saved, inverse) {\n    var transformerName = inverse ? 'invTrans' : 'trans';\n    var transformer = saved[transformerName];\n    var oldSrcCoords = saved.srcCoords;\n    var srcCoords = [];\n    var destCoords = [];\n    var oldCoordTheSame = true;\n    for (var i = 0; i < 4; i++) {\n        var rect = markers[i].getBoundingClientRect();\n        var ii = 2 * i;\n        var x = rect.left;\n        var y = rect.top;\n        srcCoords.push(x, y);\n        oldCoordTheSame = oldCoordTheSame && oldSrcCoords && x === oldSrcCoords[ii] && y === oldSrcCoords[ii + 1];\n        destCoords.push(markers[i].offsetLeft, markers[i].offsetTop);\n    }\n    return (oldCoordTheSame && transformer)\n        ? transformer\n        : (saved.srcCoords = srcCoords,\n            saved[transformerName] = inverse\n                ? buildTransformer(destCoords, srcCoords)\n                : buildTransformer(srcCoords, destCoords));\n}\nexport function isCanvasEl(el) {\n    return el.nodeName.toUpperCase() === 'CANVAS';\n}\n","import Eventful from './Eventful';\nimport env from './env';\nimport { isCanvasEl, transformCoordWithViewport } from './dom';\nvar isDomLevel2 = (typeof window !== 'undefined') && !!window.addEventListener;\nvar MOUSE_EVENT_REG = /^(?:mouse|pointer|contextmenu|drag|drop)|click/;\nvar _calcOut = [];\nexport function clientToLocal(el, e, out, calculate) {\n    out = out || {};\n    if (calculate || !env.canvasSupported) {\n        calculateZrXY(el, e, out);\n    }\n    else if (env.browser.firefox\n        && e.layerX != null\n        && e.layerX !== e.offsetX) {\n        out.zrX = e.layerX;\n        out.zrY = e.layerY;\n    }\n    else if (e.offsetX != null) {\n        out.zrX = e.offsetX;\n        out.zrY = e.offsetY;\n    }\n    else {\n        calculateZrXY(el, e, out);\n    }\n    return out;\n}\nfunction calculateZrXY(el, e, out) {\n    if (env.domSupported && el.getBoundingClientRect) {\n        var ex = e.clientX;\n        var ey = e.clientY;\n        if (isCanvasEl(el)) {\n            var box = el.getBoundingClientRect();\n            out.zrX = ex - box.left;\n            out.zrY = ey - box.top;\n            return;\n        }\n        else {\n            if (transformCoordWithViewport(_calcOut, el, ex, ey)) {\n                out.zrX = _calcOut[0];\n                out.zrY = _calcOut[1];\n                return;\n            }\n        }\n    }\n    out.zrX = out.zrY = 0;\n}\nexport function getNativeEvent(e) {\n    return e\n        || window.event;\n}\nexport function normalizeEvent(el, e, calculate) {\n    e = getNativeEvent(e);\n    if (e.zrX != null) {\n        return e;\n    }\n    var eventType = e.type;\n    var isTouch = eventType && eventType.indexOf('touch') >= 0;\n    if (!isTouch) {\n        clientToLocal(el, e, e, calculate);\n        var wheelDelta = getWheelDeltaMayPolyfill(e);\n        e.zrDelta = wheelDelta ? wheelDelta / 120 : -(e.detail || 0) / 3;\n    }\n    else {\n        var touch = eventType !== 'touchend'\n            ? e.targetTouches[0]\n            : e.changedTouches[0];\n        touch && clientToLocal(el, touch, e, calculate);\n    }\n    var button = e.button;\n    if (e.which == null && button !== undefined && MOUSE_EVENT_REG.test(e.type)) {\n        e.which = (button & 1 ? 1 : (button & 2 ? 3 : (button & 4 ? 2 : 0)));\n    }\n    return e;\n}\nfunction getWheelDeltaMayPolyfill(e) {\n    var rawWheelDelta = e.wheelDelta;\n    if (rawWheelDelta) {\n        return rawWheelDelta;\n    }\n    var deltaX = e.deltaX;\n    var deltaY = e.deltaY;\n    if (deltaX == null || deltaY == null) {\n        return rawWheelDelta;\n    }\n    var delta = deltaY !== 0 ? Math.abs(deltaY) : Math.abs(deltaX);\n    var sign = deltaY > 0 ? -1\n        : deltaY < 0 ? 1\n            : deltaX > 0 ? -1\n                : 1;\n    return 3 * delta * sign;\n}\nexport function addEventListener(el, name, handler, opt) {\n    if (isDomLevel2) {\n        el.addEventListener(name, handler, opt);\n    }\n    else {\n        el.attachEvent('on' + name, handler);\n    }\n}\nexport function removeEventListener(el, name, handler, opt) {\n    if (isDomLevel2) {\n        el.removeEventListener(name, handler, opt);\n    }\n    else {\n        el.detachEvent('on' + name, handler);\n    }\n}\nexport var stop = isDomLevel2\n    ? function (e) {\n        e.preventDefault();\n        e.stopPropagation();\n        e.cancelBubble = true;\n    }\n    : function (e) {\n        e.returnValue = false;\n        e.cancelBubble = true;\n    };\nexport function isMiddleOrRightButtonOnMouseUpDown(e) {\n    return e.which === 2 || e.which === 3;\n}\nexport function notLeftMouse(e) {\n    return e.which > 1;\n}\nexport { Eventful as Dispatcher };\n","import * as eventUtil from './event';\nvar GestureMgr = (function () {\n    function GestureMgr() {\n        this._track = [];\n    }\n    GestureMgr.prototype.recognize = function (event, target, root) {\n        this._doTrack(event, target, root);\n        return this._recognize(event);\n    };\n    GestureMgr.prototype.clear = function () {\n        this._track.length = 0;\n        return this;\n    };\n    GestureMgr.prototype._doTrack = function (event, target, root) {\n        var touches = event.touches;\n        if (!touches) {\n            return;\n        }\n        var trackItem = {\n            points: [],\n            touches: [],\n            target: target,\n            event: event\n        };\n        for (var i = 0, len = touches.length; i < len; i++) {\n            var touch = touches[i];\n            var pos = eventUtil.clientToLocal(root, touch, {});\n            trackItem.points.push([pos.zrX, pos.zrY]);\n            trackItem.touches.push(touch);\n        }\n        this._track.push(trackItem);\n    };\n    GestureMgr.prototype._recognize = function (event) {\n        for (var eventName in recognizers) {\n            if (recognizers.hasOwnProperty(eventName)) {\n                var gestureInfo = recognizers[eventName](this._track, event);\n                if (gestureInfo) {\n                    return gestureInfo;\n                }\n            }\n        }\n    };\n    return GestureMgr;\n}());\nexport { GestureMgr };\nfunction dist(pointPair) {\n    var dx = pointPair[1][0] - pointPair[0][0];\n    var dy = pointPair[1][1] - pointPair[0][1];\n    return Math.sqrt(dx * dx + dy * dy);\n}\nfunction center(pointPair) {\n    return [\n        (pointPair[0][0] + pointPair[1][0]) / 2,\n        (pointPair[0][1] + pointPair[1][1]) / 2\n    ];\n}\nvar recognizers = {\n    pinch: function (tracks, event) {\n        var trackLen = tracks.length;\n        if (!trackLen) {\n            return;\n        }\n        var pinchEnd = (tracks[trackLen - 1] || {}).points;\n        var pinchPre = (tracks[trackLen - 2] || {}).points || pinchEnd;\n        if (pinchPre\n            && pinchPre.length > 1\n            && pinchEnd\n            && pinchEnd.length > 1) {\n            var pinchScale = dist(pinchEnd) / dist(pinchPre);\n            !isFinite(pinchScale) && (pinchScale = 1);\n            event.pinchScale = pinchScale;\n            var pinchCenter = center(pinchEnd);\n            event.pinchX = pinchCenter[0];\n            event.pinchY = pinchCenter[1];\n            return {\n                type: 'pinch',\n                target: tracks[0].target,\n                event: event\n            };\n        }\n    }\n};\n","import { __extends } from \"tslib\";\nimport * as util from './core/util';\nimport * as vec2 from './core/vector';\nimport Draggable from './mixin/Draggable';\nimport Eventful from './core/Eventful';\nimport * as eventTool from './core/event';\nimport { GestureMgr } from './core/GestureMgr';\nvar SILENT = 'silent';\nfunction makeEventPacket(eveType, targetInfo, event) {\n    return {\n        type: eveType,\n        event: event,\n        target: targetInfo.target,\n        topTarget: targetInfo.topTarget,\n        cancelBubble: false,\n        offsetX: event.zrX,\n        offsetY: event.zrY,\n        gestureEvent: event.gestureEvent,\n        pinchX: event.pinchX,\n        pinchY: event.pinchY,\n        pinchScale: event.pinchScale,\n        wheelDelta: event.zrDelta,\n        zrByTouch: event.zrByTouch,\n        which: event.which,\n        stop: stopEvent\n    };\n}\nfunction stopEvent() {\n    eventTool.stop(this.event);\n}\nvar EmptyProxy = (function (_super) {\n    __extends(EmptyProxy, _super);\n    function EmptyProxy() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.handler = null;\n        return _this;\n    }\n    EmptyProxy.prototype.dispose = function () { };\n    EmptyProxy.prototype.setCursor = function () { };\n    return EmptyProxy;\n}(Eventful));\nvar HoveredResult = (function () {\n    function HoveredResult(x, y) {\n        this.x = x;\n        this.y = y;\n    }\n    return HoveredResult;\n}());\nvar handlerNames = [\n    'click', 'dblclick', 'mousewheel', 'mouseout',\n    'mouseup', 'mousedown', 'mousemove', 'contextmenu'\n];\nvar Handler = (function (_super) {\n    __extends(Handler, _super);\n    function Handler(storage, painter, proxy, painterRoot) {\n        var _this = _super.call(this) || this;\n        _this._hovered = new HoveredResult(0, 0);\n        _this.storage = storage;\n        _this.painter = painter;\n        _this.painterRoot = painterRoot;\n        proxy = proxy || new EmptyProxy();\n        _this.proxy = null;\n        _this.setHandlerProxy(proxy);\n        _this._draggingMgr = new Draggable(_this);\n        return _this;\n    }\n    Handler.prototype.setHandlerProxy = function (proxy) {\n        if (this.proxy) {\n            this.proxy.dispose();\n        }\n        if (proxy) {\n            util.each(handlerNames, function (name) {\n                proxy.on && proxy.on(name, this[name], this);\n            }, this);\n            proxy.handler = this;\n        }\n        this.proxy = proxy;\n    };\n    Handler.prototype.mousemove = function (event) {\n        var x = event.zrX;\n        var y = event.zrY;\n        var isOutside = isOutsideBoundary(this, x, y);\n        var lastHovered = this._hovered;\n        var lastHoveredTarget = lastHovered.target;\n        if (lastHoveredTarget && !lastHoveredTarget.__zr) {\n            lastHovered = this.findHover(lastHovered.x, lastHovered.y);\n            lastHoveredTarget = lastHovered.target;\n        }\n        var hovered = this._hovered = isOutside ? new HoveredResult(x, y) : this.findHover(x, y);\n        var hoveredTarget = hovered.target;\n        var proxy = this.proxy;\n        proxy.setCursor && proxy.setCursor(hoveredTarget ? hoveredTarget.cursor : 'default');\n        if (lastHoveredTarget && hoveredTarget !== lastHoveredTarget) {\n            this.dispatchToElement(lastHovered, 'mouseout', event);\n        }\n        this.dispatchToElement(hovered, 'mousemove', event);\n        if (hoveredTarget && hoveredTarget !== lastHoveredTarget) {\n            this.dispatchToElement(hovered, 'mouseover', event);\n        }\n    };\n    Handler.prototype.mouseout = function (event) {\n        var eventControl = event.zrEventControl;\n        if (eventControl !== 'only_globalout') {\n            this.dispatchToElement(this._hovered, 'mouseout', event);\n        }\n        if (eventControl !== 'no_globalout') {\n            this.trigger('globalout', { type: 'globalout', event: event });\n        }\n    };\n    Handler.prototype.resize = function () {\n        this._hovered = new HoveredResult(0, 0);\n    };\n    Handler.prototype.dispatch = function (eventName, eventArgs) {\n        var handler = this[eventName];\n        handler && handler.call(this, eventArgs);\n    };\n    Handler.prototype.dispose = function () {\n        this.proxy.dispose();\n        this.storage = null;\n        this.proxy = null;\n        this.painter = null;\n    };\n    Handler.prototype.setCursorStyle = function (cursorStyle) {\n        var proxy = this.proxy;\n        proxy.setCursor && proxy.setCursor(cursorStyle);\n    };\n    Handler.prototype.dispatchToElement = function (targetInfo, eventName, event) {\n        targetInfo = targetInfo || {};\n        var el = targetInfo.target;\n        if (el && el.silent) {\n            return;\n        }\n        var eventKey = ('on' + eventName);\n        var eventPacket = makeEventPacket(eventName, targetInfo, event);\n        while (el) {\n            el[eventKey]\n                && (eventPacket.cancelBubble = !!el[eventKey].call(el, eventPacket));\n            el.trigger(eventName, eventPacket);\n            el = el.__hostTarget ? el.__hostTarget : el.parent;\n            if (eventPacket.cancelBubble) {\n                break;\n            }\n        }\n        if (!eventPacket.cancelBubble) {\n            this.trigger(eventName, eventPacket);\n            if (this.painter && this.painter.eachOtherLayer) {\n                this.painter.eachOtherLayer(function (layer) {\n                    if (typeof (layer[eventKey]) === 'function') {\n                        layer[eventKey].call(layer, eventPacket);\n                    }\n                    if (layer.trigger) {\n                        layer.trigger(eventName, eventPacket);\n                    }\n                });\n            }\n        }\n    };\n    Handler.prototype.findHover = function (x, y, exclude) {\n        var list = this.storage.getDisplayList();\n        var out = new HoveredResult(x, y);\n        for (var i = list.length - 1; i >= 0; i--) {\n            var hoverCheckResult = void 0;\n            if (list[i] !== exclude\n                && !list[i].ignore\n                && (hoverCheckResult = isHover(list[i], x, y))) {\n                !out.topTarget && (out.topTarget = list[i]);\n                if (hoverCheckResult !== SILENT) {\n                    out.target = list[i];\n                    break;\n                }\n            }\n        }\n        return out;\n    };\n    Handler.prototype.processGesture = function (event, stage) {\n        if (!this._gestureMgr) {\n            this._gestureMgr = new GestureMgr();\n        }\n        var gestureMgr = this._gestureMgr;\n        stage === 'start' && gestureMgr.clear();\n        var gestureInfo = gestureMgr.recognize(event, this.findHover(event.zrX, event.zrY, null).target, this.proxy.dom);\n        stage === 'end' && gestureMgr.clear();\n        if (gestureInfo) {\n            var type = gestureInfo.type;\n            event.gestureEvent = type;\n            var res = new HoveredResult();\n            res.target = gestureInfo.target;\n            this.dispatchToElement(res, type, gestureInfo.event);\n        }\n    };\n    return Handler;\n}(Eventful));\nutil.each(['click', 'mousedown', 'mouseup', 'mousewheel', 'dblclick', 'contextmenu'], function (name) {\n    Handler.prototype[name] = function (event) {\n        var x = event.zrX;\n        var y = event.zrY;\n        var isOutside = isOutsideBoundary(this, x, y);\n        var hovered;\n        var hoveredTarget;\n        if (name !== 'mouseup' || !isOutside) {\n            hovered = this.findHover(x, y);\n            hoveredTarget = hovered.target;\n        }\n        if (name === 'mousedown') {\n            this._downEl = hoveredTarget;\n            this._downPoint = [event.zrX, event.zrY];\n            this._upEl = hoveredTarget;\n        }\n        else if (name === 'mouseup') {\n            this._upEl = hoveredTarget;\n        }\n        else if (name === 'click') {\n            if (this._downEl !== this._upEl\n                || !this._downPoint\n                || vec2.dist(this._downPoint, [event.zrX, event.zrY]) > 4) {\n                return;\n            }\n            this._downPoint = null;\n        }\n        this.dispatchToElement(hovered, name, event);\n    };\n});\nfunction isHover(displayable, x, y) {\n    if (displayable[displayable.rectHover ? 'rectContain' : 'contain'](x, y)) {\n        var el = displayable;\n        var isSilent = void 0;\n        var ignoreClip = false;\n        while (el) {\n            if (el.ignoreClip) {\n                ignoreClip = true;\n            }\n            if (!ignoreClip) {\n                var clipPath = el.getClipPath();\n                if (clipPath && !clipPath.contain(x, y)) {\n                    return false;\n                }\n                if (el.silent) {\n                    isSilent = true;\n                }\n            }\n            var hostEl = el.__hostTarget;\n            el = hostEl ? hostEl : el.parent;\n        }\n        return isSilent ? SILENT : true;\n    }\n    return false;\n}\nfunction isOutsideBoundary(handlerInstance, x, y) {\n    var painter = handlerInstance.painter;\n    return x < 0 || x > painter.getWidth() || y < 0 || y > painter.getHeight();\n}\nexport default Handler;\n","export function create() {\n    return [1, 0, 0, 1, 0, 0];\n}\nexport function identity(out) {\n    out[0] = 1;\n    out[1] = 0;\n    out[2] = 0;\n    out[3] = 1;\n    out[4] = 0;\n    out[5] = 0;\n    return out;\n}\nexport function copy(out, m) {\n    out[0] = m[0];\n    out[1] = m[1];\n    out[2] = m[2];\n    out[3] = m[3];\n    out[4] = m[4];\n    out[5] = m[5];\n    return out;\n}\nexport function mul(out, m1, m2) {\n    var out0 = m1[0] * m2[0] + m1[2] * m2[1];\n    var out1 = m1[1] * m2[0] + m1[3] * m2[1];\n    var out2 = m1[0] * m2[2] + m1[2] * m2[3];\n    var out3 = m1[1] * m2[2] + m1[3] * m2[3];\n    var out4 = m1[0] * m2[4] + m1[2] * m2[5] + m1[4];\n    var out5 = m1[1] * m2[4] + m1[3] * m2[5] + m1[5];\n    out[0] = out0;\n    out[1] = out1;\n    out[2] = out2;\n    out[3] = out3;\n    out[4] = out4;\n    out[5] = out5;\n    return out;\n}\nexport function translate(out, a, v) {\n    out[0] = a[0];\n    out[1] = a[1];\n    out[2] = a[2];\n    out[3] = a[3];\n    out[4] = a[4] + v[0];\n    out[5] = a[5] + v[1];\n    return out;\n}\nexport function rotate(out, a, rad) {\n    var aa = a[0];\n    var ac = a[2];\n    var atx = a[4];\n    var ab = a[1];\n    var ad = a[3];\n    var aty = a[5];\n    var st = Math.sin(rad);\n    var ct = Math.cos(rad);\n    out[0] = aa * ct + ab * st;\n    out[1] = -aa * st + ab * ct;\n    out[2] = ac * ct + ad * st;\n    out[3] = -ac * st + ct * ad;\n    out[4] = ct * atx + st * aty;\n    out[5] = ct * aty - st * atx;\n    return out;\n}\nexport function scale(out, a, v) {\n    var vx = v[0];\n    var vy = v[1];\n    out[0] = a[0] * vx;\n    out[1] = a[1] * vy;\n    out[2] = a[2] * vx;\n    out[3] = a[3] * vy;\n    out[4] = a[4] * vx;\n    out[5] = a[5] * vy;\n    return out;\n}\nexport function invert(out, a) {\n    var aa = a[0];\n    var ac = a[2];\n    var atx = a[4];\n    var ab = a[1];\n    var ad = a[3];\n    var aty = a[5];\n    var det = aa * ad - ab * ac;\n    if (!det) {\n        return null;\n    }\n    det = 1.0 / det;\n    out[0] = ad * det;\n    out[1] = -ab * det;\n    out[2] = -ac * det;\n    out[3] = aa * det;\n    out[4] = (ac * aty - ad * atx) * det;\n    out[5] = (ab * atx - aa * aty) * det;\n    return out;\n}\nexport function clone(a) {\n    var b = create();\n    copy(b, a);\n    return b;\n}\n","import * as matrix from './matrix';\nimport * as vector from './vector';\nvar mIdentity = matrix.identity;\nvar EPSILON = 5e-5;\nfunction isNotAroundZero(val) {\n    return val > EPSILON || val < -EPSILON;\n}\nvar scaleTmp = [];\nvar tmpTransform = [];\nvar originTransform = matrix.create();\nvar abs = Math.abs;\nvar Transformable = (function () {\n    function Transformable() {\n    }\n    Transformable.prototype.setPosition = function (arr) {\n        this.x = arr[0];\n        this.y = arr[1];\n    };\n    Transformable.prototype.setScale = function (arr) {\n        this.scaleX = arr[0];\n        this.scaleY = arr[1];\n    };\n    Transformable.prototype.setOrigin = function (arr) {\n        this.originX = arr[0];\n        this.originY = arr[1];\n    };\n    Transformable.prototype.needLocalTransform = function () {\n        return isNotAroundZero(this.rotation)\n            || isNotAroundZero(this.x)\n            || isNotAroundZero(this.y)\n            || isNotAroundZero(this.scaleX - 1)\n            || isNotAroundZero(this.scaleY - 1);\n    };\n    Transformable.prototype.updateTransform = function () {\n        var parent = this.parent;\n        var parentHasTransform = parent && parent.transform;\n        var needLocalTransform = this.needLocalTransform();\n        var m = this.transform;\n        if (!(needLocalTransform || parentHasTransform)) {\n            m && mIdentity(m);\n            return;\n        }\n        m = m || matrix.create();\n        if (needLocalTransform) {\n            this.getLocalTransform(m);\n        }\n        else {\n            mIdentity(m);\n        }\n        if (parentHasTransform) {\n            if (needLocalTransform) {\n                matrix.mul(m, parent.transform, m);\n            }\n            else {\n                matrix.copy(m, parent.transform);\n            }\n        }\n        this.transform = m;\n        this._resolveGlobalScaleRatio(m);\n    };\n    Transformable.prototype._resolveGlobalScaleRatio = function (m) {\n        var globalScaleRatio = this.globalScaleRatio;\n        if (globalScaleRatio != null && globalScaleRatio !== 1) {\n            this.getGlobalScale(scaleTmp);\n            var relX = scaleTmp[0] < 0 ? -1 : 1;\n            var relY = scaleTmp[1] < 0 ? -1 : 1;\n            var sx = ((scaleTmp[0] - relX) * globalScaleRatio + relX) / scaleTmp[0] || 0;\n            var sy = ((scaleTmp[1] - relY) * globalScaleRatio + relY) / scaleTmp[1] || 0;\n            m[0] *= sx;\n            m[1] *= sx;\n            m[2] *= sy;\n            m[3] *= sy;\n        }\n        this.invTransform = this.invTransform || matrix.create();\n        matrix.invert(this.invTransform, m);\n    };\n    Transformable.prototype.getLocalTransform = function (m) {\n        return Transformable.getLocalTransform(this, m);\n    };\n    Transformable.prototype.getComputedTransform = function () {\n        var transformNode = this;\n        var ancestors = [];\n        while (transformNode) {\n            ancestors.push(transformNode);\n            transformNode = transformNode.parent;\n        }\n        while (transformNode = ancestors.pop()) {\n            transformNode.updateTransform();\n        }\n        return this.transform;\n    };\n    Transformable.prototype.setLocalTransform = function (m) {\n        if (!m) {\n            return;\n        }\n        var sx = m[0] * m[0] + m[1] * m[1];\n        var sy = m[2] * m[2] + m[3] * m[3];\n        if (isNotAroundZero(sx - 1)) {\n            sx = Math.sqrt(sx);\n        }\n        if (isNotAroundZero(sy - 1)) {\n            sy = Math.sqrt(sy);\n        }\n        if (m[0] < 0) {\n            sx = -sx;\n        }\n        if (m[3] < 0) {\n            sy = -sy;\n        }\n        this.rotation = Math.atan2(-m[1] / sy, m[0] / sx);\n        if (sx < 0 && sy < 0) {\n            this.rotation += Math.PI;\n            sx = -sx;\n            sy = -sy;\n        }\n        this.x = m[4];\n        this.y = m[5];\n        this.scaleX = sx;\n        this.scaleY = sy;\n    };\n    Transformable.prototype.decomposeTransform = function () {\n        if (!this.transform) {\n            return;\n        }\n        var parent = this.parent;\n        var m = this.transform;\n        if (parent && parent.transform) {\n            matrix.mul(tmpTransform, parent.invTransform, m);\n            m = tmpTransform;\n        }\n        var ox = this.originX;\n        var oy = this.originY;\n        if (ox || oy) {\n            originTransform[4] = ox;\n            originTransform[5] = oy;\n            matrix.mul(tmpTransform, m, originTransform);\n            tmpTransform[4] -= ox;\n            tmpTransform[5] -= oy;\n            m = tmpTransform;\n        }\n        this.setLocalTransform(m);\n    };\n    Transformable.prototype.getGlobalScale = function (out) {\n        var m = this.transform;\n        out = out || [];\n        if (!m) {\n            out[0] = 1;\n            out[1] = 1;\n            return out;\n        }\n        out[0] = Math.sqrt(m[0] * m[0] + m[1] * m[1]);\n        out[1] = Math.sqrt(m[2] * m[2] + m[3] * m[3]);\n        if (m[0] < 0) {\n            out[0] = -out[0];\n        }\n        if (m[3] < 0) {\n            out[1] = -out[1];\n        }\n        return out;\n    };\n    Transformable.prototype.transformCoordToLocal = function (x, y) {\n        var v2 = [x, y];\n        var invTransform = this.invTransform;\n        if (invTransform) {\n            vector.applyTransform(v2, v2, invTransform);\n        }\n        return v2;\n    };\n    Transformable.prototype.transformCoordToGlobal = function (x, y) {\n        var v2 = [x, y];\n        var transform = this.transform;\n        if (transform) {\n            vector.applyTransform(v2, v2, transform);\n        }\n        return v2;\n    };\n    Transformable.prototype.getLineScale = function () {\n        var m = this.transform;\n        return m && abs(m[0] - 1) > 1e-10 && abs(m[3] - 1) > 1e-10\n            ? Math.sqrt(abs(m[0] * m[3] - m[2] * m[1]))\n            : 1;\n    };\n    Transformable.getLocalTransform = function (target, m) {\n        m = m || [];\n        mIdentity(m);\n        var ox = target.originX || 0;\n        var oy = target.originY || 0;\n        var sx = target.scaleX;\n        var sy = target.scaleY;\n        var rotation = target.rotation || 0;\n        var x = target.x;\n        var y = target.y;\n        m[4] -= ox;\n        m[5] -= oy;\n        m[0] *= sx;\n        m[1] *= sy;\n        m[2] *= sx;\n        m[3] *= sy;\n        m[4] *= sx;\n        m[5] *= sy;\n        if (rotation) {\n            matrix.rotate(m, m, rotation);\n        }\n        m[4] += ox;\n        m[5] += oy;\n        m[4] += x;\n        m[5] += y;\n        return m;\n    };\n    Transformable.initDefaultProps = (function () {\n        var proto = Transformable.prototype;\n        proto.x = 0;\n        proto.y = 0;\n        proto.scaleX = 1;\n        proto.scaleY = 1;\n        proto.originX = 0;\n        proto.originY = 0;\n        proto.rotation = 0;\n        proto.globalScaleRatio = 1;\n    })();\n    return Transformable;\n}());\n;\nexport default Transformable;\n","var easing = {\n    linear: function (k) {\n        return k;\n    },\n    quadraticIn: function (k) {\n        return k * k;\n    },\n    quadraticOut: function (k) {\n        return k * (2 - k);\n    },\n    quadraticInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return 0.5 * k * k;\n        }\n        return -0.5 * (--k * (k - 2) - 1);\n    },\n    cubicIn: function (k) {\n        return k * k * k;\n    },\n    cubicOut: function (k) {\n        return --k * k * k + 1;\n    },\n    cubicInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return 0.5 * k * k * k;\n        }\n        return 0.5 * ((k -= 2) * k * k + 2);\n    },\n    quarticIn: function (k) {\n        return k * k * k * k;\n    },\n    quarticOut: function (k) {\n        return 1 - (--k * k * k * k);\n    },\n    quarticInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return 0.5 * k * k * k * k;\n        }\n        return -0.5 * ((k -= 2) * k * k * k - 2);\n    },\n    quinticIn: function (k) {\n        return k * k * k * k * k;\n    },\n    quinticOut: function (k) {\n        return --k * k * k * k * k + 1;\n    },\n    quinticInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return 0.5 * k * k * k * k * k;\n        }\n        return 0.5 * ((k -= 2) * k * k * k * k + 2);\n    },\n    sinusoidalIn: function (k) {\n        return 1 - Math.cos(k * Math.PI / 2);\n    },\n    sinusoidalOut: function (k) {\n        return Math.sin(k * Math.PI / 2);\n    },\n    sinusoidalInOut: function (k) {\n        return 0.5 * (1 - Math.cos(Math.PI * k));\n    },\n    exponentialIn: function (k) {\n        return k === 0 ? 0 : Math.pow(1024, k - 1);\n    },\n    exponentialOut: function (k) {\n        return k === 1 ? 1 : 1 - Math.pow(2, -10 * k);\n    },\n    exponentialInOut: function (k) {\n        if (k === 0) {\n            return 0;\n        }\n        if (k === 1) {\n            return 1;\n        }\n        if ((k *= 2) < 1) {\n            return 0.5 * Math.pow(1024, k - 1);\n        }\n        return 0.5 * (-Math.pow(2, -10 * (k - 1)) + 2);\n    },\n    circularIn: function (k) {\n        return 1 - Math.sqrt(1 - k * k);\n    },\n    circularOut: function (k) {\n        return Math.sqrt(1 - (--k * k));\n    },\n    circularInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return -0.5 * (Math.sqrt(1 - k * k) - 1);\n        }\n        return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1);\n    },\n    elasticIn: function (k) {\n        var s;\n        var a = 0.1;\n        var p = 0.4;\n        if (k === 0) {\n            return 0;\n        }\n        if (k === 1) {\n            return 1;\n        }\n        if (!a || a < 1) {\n            a = 1;\n            s = p / 4;\n        }\n        else {\n            s = p * Math.asin(1 / a) / (2 * Math.PI);\n        }\n        return -(a * Math.pow(2, 10 * (k -= 1))\n            * Math.sin((k - s) * (2 * Math.PI) / p));\n    },\n    elasticOut: function (k) {\n        var s;\n        var a = 0.1;\n        var p = 0.4;\n        if (k === 0) {\n            return 0;\n        }\n        if (k === 1) {\n            return 1;\n        }\n        if (!a || a < 1) {\n            a = 1;\n            s = p / 4;\n        }\n        else {\n            s = p * Math.asin(1 / a) / (2 * Math.PI);\n        }\n        return (a * Math.pow(2, -10 * k)\n            * Math.sin((k - s) * (2 * Math.PI) / p) + 1);\n    },\n    elasticInOut: function (k) {\n        var s;\n        var a = 0.1;\n        var p = 0.4;\n        if (k === 0) {\n            return 0;\n        }\n        if (k === 1) {\n            return 1;\n        }\n        if (!a || a < 1) {\n            a = 1;\n            s = p / 4;\n        }\n        else {\n            s = p * Math.asin(1 / a) / (2 * Math.PI);\n        }\n        if ((k *= 2) < 1) {\n            return -0.5 * (a * Math.pow(2, 10 * (k -= 1))\n                * Math.sin((k - s) * (2 * Math.PI) / p));\n        }\n        return a * Math.pow(2, -10 * (k -= 1))\n            * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1;\n    },\n    backIn: function (k) {\n        var s = 1.70158;\n        return k * k * ((s + 1) * k - s);\n    },\n    backOut: function (k) {\n        var s = 1.70158;\n        return --k * k * ((s + 1) * k + s) + 1;\n    },\n    backInOut: function (k) {\n        var s = 1.70158 * 1.525;\n        if ((k *= 2) < 1) {\n            return 0.5 * (k * k * ((s + 1) * k - s));\n        }\n        return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2);\n    },\n    bounceIn: function (k) {\n        return 1 - easing.bounceOut(1 - k);\n    },\n    bounceOut: function (k) {\n        if (k < (1 / 2.75)) {\n            return 7.5625 * k * k;\n        }\n        else if (k < (2 / 2.75)) {\n            return 7.5625 * (k -= (1.5 / 2.75)) * k + 0.75;\n        }\n        else if (k < (2.5 / 2.75)) {\n            return 7.5625 * (k -= (2.25 / 2.75)) * k + 0.9375;\n        }\n        else {\n            return 7.5625 * (k -= (2.625 / 2.75)) * k + 0.984375;\n        }\n    },\n    bounceInOut: function (k) {\n        if (k < 0.5) {\n            return easing.bounceIn(k * 2) * 0.5;\n        }\n        return easing.bounceOut(k * 2 - 1) * 0.5 + 0.5;\n    }\n};\nexport default easing;\n","import easingFuncs from './easing';\nvar Clip = (function () {\n    function Clip(opts) {\n        this._initialized = false;\n        this._startTime = 0;\n        this._pausedTime = 0;\n        this._paused = false;\n        this._life = opts.life || 1000;\n        this._delay = opts.delay || 0;\n        this.loop = opts.loop == null ? false : opts.loop;\n        this.gap = opts.gap || 0;\n        this.easing = opts.easing || 'linear';\n        this.onframe = opts.onframe;\n        this.ondestroy = opts.ondestroy;\n        this.onrestart = opts.onrestart;\n    }\n    Clip.prototype.step = function (globalTime, deltaTime) {\n        if (!this._initialized) {\n            this._startTime = globalTime + this._delay;\n            this._initialized = true;\n        }\n        if (this._paused) {\n            this._pausedTime += deltaTime;\n            return;\n        }\n        var percent = (globalTime - this._startTime - this._pausedTime) / this._life;\n        if (percent < 0) {\n            percent = 0;\n        }\n        percent = Math.min(percent, 1);\n        var easing = this.easing;\n        var easingFunc = typeof easing === 'string'\n            ? easingFuncs[easing] : easing;\n        var schedule = typeof easingFunc === 'function'\n            ? easingFunc(percent)\n            : percent;\n        this.onframe && this.onframe(schedule);\n        if (percent === 1) {\n            if (this.loop) {\n                this._restart(globalTime);\n                this.onrestart && this.onrestart();\n            }\n            else {\n                return true;\n            }\n        }\n        return false;\n    };\n    Clip.prototype._restart = function (globalTime) {\n        var remainder = (globalTime - this._startTime - this._pausedTime) % this._life;\n        this._startTime = globalTime - remainder + this.gap;\n        this._pausedTime = 0;\n    };\n    Clip.prototype.pause = function () {\n        this._paused = true;\n    };\n    Clip.prototype.resume = function () {\n        this._paused = false;\n    };\n    return Clip;\n}());\nexport default Clip;\n","var Entry = (function () {\n    function Entry(val) {\n        this.value = val;\n    }\n    return Entry;\n}());\nexport { Entry };\nvar LinkedList = (function () {\n    function LinkedList() {\n        this._len = 0;\n    }\n    LinkedList.prototype.insert = function (val) {\n        var entry = new Entry(val);\n        this.insertEntry(entry);\n        return entry;\n    };\n    LinkedList.prototype.insertEntry = function (entry) {\n        if (!this.head) {\n            this.head = this.tail = entry;\n        }\n        else {\n            this.tail.next = entry;\n            entry.prev = this.tail;\n            entry.next = null;\n            this.tail = entry;\n        }\n        this._len++;\n    };\n    LinkedList.prototype.remove = function (entry) {\n        var prev = entry.prev;\n        var next = entry.next;\n        if (prev) {\n            prev.next = next;\n        }\n        else {\n            this.head = next;\n        }\n        if (next) {\n            next.prev = prev;\n        }\n        else {\n            this.tail = prev;\n        }\n        entry.next = entry.prev = null;\n        this._len--;\n    };\n    LinkedList.prototype.len = function () {\n        return this._len;\n    };\n    LinkedList.prototype.clear = function () {\n        this.head = this.tail = null;\n        this._len = 0;\n    };\n    return LinkedList;\n}());\nexport { LinkedList };\nvar LRU = (function () {\n    function LRU(maxSize) {\n        this._list = new LinkedList();\n        this._maxSize = 10;\n        this._map = {};\n        this._maxSize = maxSize;\n    }\n    LRU.prototype.put = function (key, value) {\n        var list = this._list;\n        var map = this._map;\n        var removed = null;\n        if (map[key] == null) {\n            var len = list.len();\n            var entry = this._lastRemovedEntry;\n            if (len >= this._maxSize && len > 0) {\n                var leastUsedEntry = list.head;\n                list.remove(leastUsedEntry);\n                delete map[leastUsedEntry.key];\n                removed = leastUsedEntry.value;\n                this._lastRemovedEntry = leastUsedEntry;\n            }\n            if (entry) {\n                entry.value = value;\n            }\n            else {\n                entry = new Entry(value);\n            }\n            entry.key = key;\n            list.insertEntry(entry);\n            map[key] = entry;\n        }\n        return removed;\n    };\n    LRU.prototype.get = function (key) {\n        var entry = this._map[key];\n        var list = this._list;\n        if (entry != null) {\n            if (entry !== list.tail) {\n                list.remove(entry);\n                list.insertEntry(entry);\n            }\n            return entry.value;\n        }\n    };\n    LRU.prototype.clear = function () {\n        this._list.clear();\n        this._map = {};\n    };\n    LRU.prototype.len = function () {\n        return this._list.len();\n    };\n    return LRU;\n}());\nexport default LRU;\n","import LRU from '../core/LRU';\nvar kCSSColorTable = {\n    'transparent': [0, 0, 0, 0], 'aliceblue': [240, 248, 255, 1],\n    'antiquewhite': [250, 235, 215, 1], 'aqua': [0, 255, 255, 1],\n    'aquamarine': [127, 255, 212, 1], 'azure': [240, 255, 255, 1],\n    'beige': [245, 245, 220, 1], 'bisque': [255, 228, 196, 1],\n    'black': [0, 0, 0, 1], 'blanchedalmond': [255, 235, 205, 1],\n    'blue': [0, 0, 255, 1], 'blueviolet': [138, 43, 226, 1],\n    'brown': [165, 42, 42, 1], 'burlywood': [222, 184, 135, 1],\n    'cadetblue': [95, 158, 160, 1], 'chartreuse': [127, 255, 0, 1],\n    'chocolate': [210, 105, 30, 1], 'coral': [255, 127, 80, 1],\n    'cornflowerblue': [100, 149, 237, 1], 'cornsilk': [255, 248, 220, 1],\n    'crimson': [220, 20, 60, 1], 'cyan': [0, 255, 255, 1],\n    'darkblue': [0, 0, 139, 1], 'darkcyan': [0, 139, 139, 1],\n    'darkgoldenrod': [184, 134, 11, 1], 'darkgray': [169, 169, 169, 1],\n    'darkgreen': [0, 100, 0, 1], 'darkgrey': [169, 169, 169, 1],\n    'darkkhaki': [189, 183, 107, 1], 'darkmagenta': [139, 0, 139, 1],\n    'darkolivegreen': [85, 107, 47, 1], 'darkorange': [255, 140, 0, 1],\n    'darkorchid': [153, 50, 204, 1], 'darkred': [139, 0, 0, 1],\n    'darksalmon': [233, 150, 122, 1], 'darkseagreen': [143, 188, 143, 1],\n    'darkslateblue': [72, 61, 139, 1], 'darkslategray': [47, 79, 79, 1],\n    'darkslategrey': [47, 79, 79, 1], 'darkturquoise': [0, 206, 209, 1],\n    'darkviolet': [148, 0, 211, 1], 'deeppink': [255, 20, 147, 1],\n    'deepskyblue': [0, 191, 255, 1], 'dimgray': [105, 105, 105, 1],\n    'dimgrey': [105, 105, 105, 1], 'dodgerblue': [30, 144, 255, 1],\n    'firebrick': [178, 34, 34, 1], 'floralwhite': [255, 250, 240, 1],\n    'forestgreen': [34, 139, 34, 1], 'fuchsia': [255, 0, 255, 1],\n    'gainsboro': [220, 220, 220, 1], 'ghostwhite': [248, 248, 255, 1],\n    'gold': [255, 215, 0, 1], 'goldenrod': [218, 165, 32, 1],\n    'gray': [128, 128, 128, 1], 'green': [0, 128, 0, 1],\n    'greenyellow': [173, 255, 47, 1], 'grey': [128, 128, 128, 1],\n    'honeydew': [240, 255, 240, 1], 'hotpink': [255, 105, 180, 1],\n    'indianred': [205, 92, 92, 1], 'indigo': [75, 0, 130, 1],\n    'ivory': [255, 255, 240, 1], 'khaki': [240, 230, 140, 1],\n    'lavender': [230, 230, 250, 1], 'lavenderblush': [255, 240, 245, 1],\n    'lawngreen': [124, 252, 0, 1], 'lemonchiffon': [255, 250, 205, 1],\n    'lightblue': [173, 216, 230, 1], 'lightcoral': [240, 128, 128, 1],\n    'lightcyan': [224, 255, 255, 1], 'lightgoldenrodyellow': [250, 250, 210, 1],\n    'lightgray': [211, 211, 211, 1], 'lightgreen': [144, 238, 144, 1],\n    'lightgrey': [211, 211, 211, 1], 'lightpink': [255, 182, 193, 1],\n    'lightsalmon': [255, 160, 122, 1], 'lightseagreen': [32, 178, 170, 1],\n    'lightskyblue': [135, 206, 250, 1], 'lightslategray': [119, 136, 153, 1],\n    'lightslategrey': [119, 136, 153, 1], 'lightsteelblue': [176, 196, 222, 1],\n    'lightyellow': [255, 255, 224, 1], 'lime': [0, 255, 0, 1],\n    'limegreen': [50, 205, 50, 1], 'linen': [250, 240, 230, 1],\n    'magenta': [255, 0, 255, 1], 'maroon': [128, 0, 0, 1],\n    'mediumaquamarine': [102, 205, 170, 1], 'mediumblue': [0, 0, 205, 1],\n    'mediumorchid': [186, 85, 211, 1], 'mediumpurple': [147, 112, 219, 1],\n    'mediumseagreen': [60, 179, 113, 1], 'mediumslateblue': [123, 104, 238, 1],\n    'mediumspringgreen': [0, 250, 154, 1], 'mediumturquoise': [72, 209, 204, 1],\n    'mediumvioletred': [199, 21, 133, 1], 'midnightblue': [25, 25, 112, 1],\n    'mintcream': [245, 255, 250, 1], 'mistyrose': [255, 228, 225, 1],\n    'moccasin': [255, 228, 181, 1], 'navajowhite': [255, 222, 173, 1],\n    'navy': [0, 0, 128, 1], 'oldlace': [253, 245, 230, 1],\n    'olive': [128, 128, 0, 1], 'olivedrab': [107, 142, 35, 1],\n    'orange': [255, 165, 0, 1], 'orangered': [255, 69, 0, 1],\n    'orchid': [218, 112, 214, 1], 'palegoldenrod': [238, 232, 170, 1],\n    'palegreen': [152, 251, 152, 1], 'paleturquoise': [175, 238, 238, 1],\n    'palevioletred': [219, 112, 147, 1], 'papayawhip': [255, 239, 213, 1],\n    'peachpuff': [255, 218, 185, 1], 'peru': [205, 133, 63, 1],\n    'pink': [255, 192, 203, 1], 'plum': [221, 160, 221, 1],\n    'powderblue': [176, 224, 230, 1], 'purple': [128, 0, 128, 1],\n    'red': [255, 0, 0, 1], 'rosybrown': [188, 143, 143, 1],\n    'royalblue': [65, 105, 225, 1], 'saddlebrown': [139, 69, 19, 1],\n    'salmon': [250, 128, 114, 1], 'sandybrown': [244, 164, 96, 1],\n    'seagreen': [46, 139, 87, 1], 'seashell': [255, 245, 238, 1],\n    'sienna': [160, 82, 45, 1], 'silver': [192, 192, 192, 1],\n    'skyblue': [135, 206, 235, 1], 'slateblue': [106, 90, 205, 1],\n    'slategray': [112, 128, 144, 1], 'slategrey': [112, 128, 144, 1],\n    'snow': [255, 250, 250, 1], 'springgreen': [0, 255, 127, 1],\n    'steelblue': [70, 130, 180, 1], 'tan': [210, 180, 140, 1],\n    'teal': [0, 128, 128, 1], 'thistle': [216, 191, 216, 1],\n    'tomato': [255, 99, 71, 1], 'turquoise': [64, 224, 208, 1],\n    'violet': [238, 130, 238, 1], 'wheat': [245, 222, 179, 1],\n    'white': [255, 255, 255, 1], 'whitesmoke': [245, 245, 245, 1],\n    'yellow': [255, 255, 0, 1], 'yellowgreen': [154, 205, 50, 1]\n};\nfunction clampCssByte(i) {\n    i = Math.round(i);\n    return i < 0 ? 0 : i > 255 ? 255 : i;\n}\nfunction clampCssAngle(i) {\n    i = Math.round(i);\n    return i < 0 ? 0 : i > 360 ? 360 : i;\n}\nfunction clampCssFloat(f) {\n    return f < 0 ? 0 : f > 1 ? 1 : f;\n}\nfunction parseCssInt(val) {\n    var str = val;\n    if (str.length && str.charAt(str.length - 1) === '%') {\n        return clampCssByte(parseFloat(str) / 100 * 255);\n    }\n    return clampCssByte(parseInt(str, 10));\n}\nfunction parseCssFloat(val) {\n    var str = val;\n    if (str.length && str.charAt(str.length - 1) === '%') {\n        return clampCssFloat(parseFloat(str) / 100);\n    }\n    return clampCssFloat(parseFloat(str));\n}\nfunction cssHueToRgb(m1, m2, h) {\n    if (h < 0) {\n        h += 1;\n    }\n    else if (h > 1) {\n        h -= 1;\n    }\n    if (h * 6 < 1) {\n        return m1 + (m2 - m1) * h * 6;\n    }\n    if (h * 2 < 1) {\n        return m2;\n    }\n    if (h * 3 < 2) {\n        return m1 + (m2 - m1) * (2 / 3 - h) * 6;\n    }\n    return m1;\n}\nfunction lerpNumber(a, b, p) {\n    return a + (b - a) * p;\n}\nfunction setRgba(out, r, g, b, a) {\n    out[0] = r;\n    out[1] = g;\n    out[2] = b;\n    out[3] = a;\n    return out;\n}\nfunction copyRgba(out, a) {\n    out[0] = a[0];\n    out[1] = a[1];\n    out[2] = a[2];\n    out[3] = a[3];\n    return out;\n}\nvar colorCache = new LRU(20);\nvar lastRemovedArr = null;\nfunction putToCache(colorStr, rgbaArr) {\n    if (lastRemovedArr) {\n        copyRgba(lastRemovedArr, rgbaArr);\n    }\n    lastRemovedArr = colorCache.put(colorStr, lastRemovedArr || (rgbaArr.slice()));\n}\nexport function parse(colorStr, rgbaArr) {\n    if (!colorStr) {\n        return;\n    }\n    rgbaArr = rgbaArr || [];\n    var cached = colorCache.get(colorStr);\n    if (cached) {\n        return copyRgba(rgbaArr, cached);\n    }\n    colorStr = colorStr + '';\n    var str = colorStr.replace(/ /g, '').toLowerCase();\n    if (str in kCSSColorTable) {\n        copyRgba(rgbaArr, kCSSColorTable[str]);\n        putToCache(colorStr, rgbaArr);\n        return rgbaArr;\n    }\n    var strLen = str.length;\n    if (str.charAt(0) === '#') {\n        if (strLen === 4 || strLen === 5) {\n            var iv = parseInt(str.slice(1, 4), 16);\n            if (!(iv >= 0 && iv <= 0xfff)) {\n                setRgba(rgbaArr, 0, 0, 0, 1);\n                return;\n            }\n            setRgba(rgbaArr, ((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8), (iv & 0xf0) | ((iv & 0xf0) >> 4), (iv & 0xf) | ((iv & 0xf) << 4), strLen === 5 ? parseInt(str.slice(4), 16) / 0xf : 1);\n            putToCache(colorStr, rgbaArr);\n            return rgbaArr;\n        }\n        else if (strLen === 7 || strLen === 9) {\n            var iv = parseInt(str.slice(1, 7), 16);\n            if (!(iv >= 0 && iv <= 0xffffff)) {\n                setRgba(rgbaArr, 0, 0, 0, 1);\n                return;\n            }\n            setRgba(rgbaArr, (iv & 0xff0000) >> 16, (iv & 0xff00) >> 8, iv & 0xff, strLen === 9 ? parseInt(str.slice(7), 16) / 0xff : 1);\n            putToCache(colorStr, rgbaArr);\n            return rgbaArr;\n        }\n        return;\n    }\n    var op = str.indexOf('(');\n    var ep = str.indexOf(')');\n    if (op !== -1 && ep + 1 === strLen) {\n        var fname = str.substr(0, op);\n        var params = str.substr(op + 1, ep - (op + 1)).split(',');\n        var alpha = 1;\n        switch (fname) {\n            case 'rgba':\n                if (params.length !== 4) {\n                    return params.length === 3\n                        ? setRgba(rgbaArr, +params[0], +params[1], +params[2], 1)\n                        : setRgba(rgbaArr, 0, 0, 0, 1);\n                }\n                alpha = parseCssFloat(params.pop());\n            case 'rgb':\n                if (params.length !== 3) {\n                    setRgba(rgbaArr, 0, 0, 0, 1);\n                    return;\n                }\n                setRgba(rgbaArr, parseCssInt(params[0]), parseCssInt(params[1]), parseCssInt(params[2]), alpha);\n                putToCache(colorStr, rgbaArr);\n                return rgbaArr;\n            case 'hsla':\n                if (params.length !== 4) {\n                    setRgba(rgbaArr, 0, 0, 0, 1);\n                    return;\n                }\n                params[3] = parseCssFloat(params[3]);\n                hsla2rgba(params, rgbaArr);\n                putToCache(colorStr, rgbaArr);\n                return rgbaArr;\n            case 'hsl':\n                if (params.length !== 3) {\n                    setRgba(rgbaArr, 0, 0, 0, 1);\n                    return;\n                }\n                hsla2rgba(params, rgbaArr);\n                putToCache(colorStr, rgbaArr);\n                return rgbaArr;\n            default:\n                return;\n        }\n    }\n    setRgba(rgbaArr, 0, 0, 0, 1);\n    return;\n}\nfunction hsla2rgba(hsla, rgba) {\n    var h = (((parseFloat(hsla[0]) % 360) + 360) % 360) / 360;\n    var s = parseCssFloat(hsla[1]);\n    var l = parseCssFloat(hsla[2]);\n    var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n    var m1 = l * 2 - m2;\n    rgba = rgba || [];\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);\n    if (hsla.length === 4) {\n        rgba[3] = hsla[3];\n    }\n    return rgba;\n}\nfunction rgba2hsla(rgba) {\n    if (!rgba) {\n        return;\n    }\n    var R = rgba[0] / 255;\n    var G = rgba[1] / 255;\n    var B = rgba[2] / 255;\n    var vMin = Math.min(R, G, B);\n    var vMax = Math.max(R, G, B);\n    var delta = vMax - vMin;\n    var L = (vMax + vMin) / 2;\n    var H;\n    var S;\n    if (delta === 0) {\n        H = 0;\n        S = 0;\n    }\n    else {\n        if (L < 0.5) {\n            S = delta / (vMax + vMin);\n        }\n        else {\n            S = delta / (2 - vMax - vMin);\n        }\n        var deltaR = (((vMax - R) / 6) + (delta / 2)) / delta;\n        var deltaG = (((vMax - G) / 6) + (delta / 2)) / delta;\n        var deltaB = (((vMax - B) / 6) + (delta / 2)) / delta;\n        if (R === vMax) {\n            H = deltaB - deltaG;\n        }\n        else if (G === vMax) {\n            H = (1 / 3) + deltaR - deltaB;\n        }\n        else if (B === vMax) {\n            H = (2 / 3) + deltaG - deltaR;\n        }\n        if (H < 0) {\n            H += 1;\n        }\n        if (H > 1) {\n            H -= 1;\n        }\n    }\n    var hsla = [H * 360, S, L];\n    if (rgba[3] != null) {\n        hsla.push(rgba[3]);\n    }\n    return hsla;\n}\nexport function lift(color, level) {\n    var colorArr = parse(color);\n    if (colorArr) {\n        for (var i = 0; i < 3; i++) {\n            if (level < 0) {\n                colorArr[i] = colorArr[i] * (1 - level) | 0;\n            }\n            else {\n                colorArr[i] = ((255 - colorArr[i]) * level + colorArr[i]) | 0;\n            }\n            if (colorArr[i] > 255) {\n                colorArr[i] = 255;\n            }\n            else if (colorArr[i] < 0) {\n                colorArr[i] = 0;\n            }\n        }\n        return stringify(colorArr, colorArr.length === 4 ? 'rgba' : 'rgb');\n    }\n}\nexport function toHex(color) {\n    var colorArr = parse(color);\n    if (colorArr) {\n        return ((1 << 24) + (colorArr[0] << 16) + (colorArr[1] << 8) + (+colorArr[2])).toString(16).slice(1);\n    }\n}\nexport function fastLerp(normalizedValue, colors, out) {\n    if (!(colors && colors.length)\n        || !(normalizedValue >= 0 && normalizedValue <= 1)) {\n        return;\n    }\n    out = out || [];\n    var value = normalizedValue * (colors.length - 1);\n    var leftIndex = Math.floor(value);\n    var rightIndex = Math.ceil(value);\n    var leftColor = colors[leftIndex];\n    var rightColor = colors[rightIndex];\n    var dv = value - leftIndex;\n    out[0] = clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv));\n    out[1] = clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv));\n    out[2] = clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv));\n    out[3] = clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv));\n    return out;\n}\nexport var fastMapToColor = fastLerp;\nexport function lerp(normalizedValue, colors, fullOutput) {\n    if (!(colors && colors.length)\n        || !(normalizedValue >= 0 && normalizedValue <= 1)) {\n        return;\n    }\n    var value = normalizedValue * (colors.length - 1);\n    var leftIndex = Math.floor(value);\n    var rightIndex = Math.ceil(value);\n    var leftColor = parse(colors[leftIndex]);\n    var rightColor = parse(colors[rightIndex]);\n    var dv = value - leftIndex;\n    var color = stringify([\n        clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv)),\n        clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv)),\n        clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv)),\n        clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv))\n    ], 'rgba');\n    return fullOutput\n        ? {\n            color: color,\n            leftIndex: leftIndex,\n            rightIndex: rightIndex,\n            value: value\n        }\n        : color;\n}\nexport var mapToColor = lerp;\nexport function modifyHSL(color, h, s, l) {\n    var colorArr = parse(color);\n    if (color) {\n        colorArr = rgba2hsla(colorArr);\n        h != null && (colorArr[0] = clampCssAngle(h));\n        s != null && (colorArr[1] = parseCssFloat(s));\n        l != null && (colorArr[2] = parseCssFloat(l));\n        return stringify(hsla2rgba(colorArr), 'rgba');\n    }\n}\nexport function modifyAlpha(color, alpha) {\n    var colorArr = parse(color);\n    if (colorArr && alpha != null) {\n        colorArr[3] = clampCssFloat(alpha);\n        return stringify(colorArr, 'rgba');\n    }\n}\nexport function stringify(arrColor, type) {\n    if (!arrColor || !arrColor.length) {\n        return;\n    }\n    var colorStr = arrColor[0] + ',' + arrColor[1] + ',' + arrColor[2];\n    if (type === 'rgba' || type === 'hsva' || type === 'hsla') {\n        colorStr += ',' + arrColor[3];\n    }\n    return type + '(' + colorStr + ')';\n}\nexport function lum(color, backgroundLum) {\n    var arr = parse(color);\n    return arr\n        ? (0.299 * arr[0] + 0.587 * arr[1] + 0.114 * arr[2]) * arr[3] / 255\n            + (1 - arr[3]) * backgroundLum\n        : 0;\n}\nexport function random() {\n    var r = Math.round(Math.random() * 255);\n    var g = Math.round(Math.random() * 255);\n    var b = Math.round(Math.random() * 255);\n    return 'rgb(' + r + ',' + g + ',' + b + ')';\n}\n","import Clip from './Clip';\nimport * as color from '../tool/color';\nimport { isArrayLike, keys, logError } from '../core/util';\nvar arraySlice = Array.prototype.slice;\nexport function interpolateNumber(p0, p1, percent) {\n    return (p1 - p0) * percent + p0;\n}\nexport function step(p0, p1, percent) {\n    return percent > 0.5 ? p1 : p0;\n}\nexport function interpolate1DArray(out, p0, p1, percent) {\n    var len = p0.length;\n    for (var i = 0; i < len; i++) {\n        out[i] = interpolateNumber(p0[i], p1[i], percent);\n    }\n}\nexport function interpolate2DArray(out, p0, p1, percent) {\n    var len = p0.length;\n    var len2 = len && p0[0].length;\n    for (var i = 0; i < len; i++) {\n        if (!out[i]) {\n            out[i] = [];\n        }\n        for (var j = 0; j < len2; j++) {\n            out[i][j] = interpolateNumber(p0[i][j], p1[i][j], percent);\n        }\n    }\n}\nfunction add1DArray(out, p0, p1, sign) {\n    var len = p0.length;\n    for (var i = 0; i < len; i++) {\n        out[i] = p0[i] + p1[i] * sign;\n    }\n    return out;\n}\nfunction add2DArray(out, p0, p1, sign) {\n    var len = p0.length;\n    var len2 = len && p0[0].length;\n    for (var i = 0; i < len; i++) {\n        if (!out[i]) {\n            out[i] = [];\n        }\n        for (var j = 0; j < len2; j++) {\n            out[i][j] = p0[i][j] + p1[i][j] * sign;\n        }\n    }\n    return out;\n}\nfunction fillArray(val0, val1, arrDim) {\n    var arr0 = val0;\n    var arr1 = val1;\n    if (!arr0.push || !arr1.push) {\n        return;\n    }\n    var arr0Len = arr0.length;\n    var arr1Len = arr1.length;\n    if (arr0Len !== arr1Len) {\n        var isPreviousLarger = arr0Len > arr1Len;\n        if (isPreviousLarger) {\n            arr0.length = arr1Len;\n        }\n        else {\n            for (var i = arr0Len; i < arr1Len; i++) {\n                arr0.push(arrDim === 1 ? arr1[i] : arraySlice.call(arr1[i]));\n            }\n        }\n    }\n    var len2 = arr0[0] && arr0[0].length;\n    for (var i = 0; i < arr0.length; i++) {\n        if (arrDim === 1) {\n            if (isNaN(arr0[i])) {\n                arr0[i] = arr1[i];\n            }\n        }\n        else {\n            for (var j = 0; j < len2; j++) {\n                if (isNaN(arr0[i][j])) {\n                    arr0[i][j] = arr1[i][j];\n                }\n            }\n        }\n    }\n}\nfunction is1DArraySame(arr0, arr1) {\n    var len = arr0.length;\n    if (len !== arr1.length) {\n        return false;\n    }\n    for (var i = 0; i < len; i++) {\n        if (arr0[i] !== arr1[i]) {\n            return false;\n        }\n    }\n    return true;\n}\nfunction is2DArraySame(arr0, arr1) {\n    var len = arr0.length;\n    if (len !== arr1.length) {\n        return false;\n    }\n    var len2 = arr0[0].length;\n    for (var i = 0; i < len; i++) {\n        for (var j = 0; j < len2; j++) {\n            if (arr0[i][j] !== arr1[i][j]) {\n                return false;\n            }\n        }\n    }\n    return true;\n}\nfunction catmullRomInterpolate(p0, p1, p2, p3, t, t2, t3) {\n    var v0 = (p2 - p0) * 0.5;\n    var v1 = (p3 - p1) * 0.5;\n    return (2 * (p1 - p2) + v0 + v1) * t3\n        + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\n        + v0 * t + p1;\n}\nfunction catmullRomInterpolate1DArray(out, p0, p1, p2, p3, t, t2, t3) {\n    var len = p0.length;\n    for (var i = 0; i < len; i++) {\n        out[i] = catmullRomInterpolate(p0[i], p1[i], p2[i], p3[i], t, t2, t3);\n    }\n}\nfunction catmullRomInterpolate2DArray(out, p0, p1, p2, p3, t, t2, t3) {\n    var len = p0.length;\n    var len2 = p0[0].length;\n    for (var i = 0; i < len; i++) {\n        if (!out[i]) {\n            out[1] = [];\n        }\n        for (var j = 0; j < len2; j++) {\n            out[i][j] = catmullRomInterpolate(p0[i][j], p1[i][j], p2[i][j], p3[i][j], t, t2, t3);\n        }\n    }\n}\nexport function cloneValue(value) {\n    if (isArrayLike(value)) {\n        var len = value.length;\n        if (isArrayLike(value[0])) {\n            var ret = [];\n            for (var i = 0; i < len; i++) {\n                ret.push(arraySlice.call(value[i]));\n            }\n            return ret;\n        }\n        return arraySlice.call(value);\n    }\n    return value;\n}\nfunction rgba2String(rgba) {\n    rgba[0] = Math.floor(rgba[0]);\n    rgba[1] = Math.floor(rgba[1]);\n    rgba[2] = Math.floor(rgba[2]);\n    return 'rgba(' + rgba.join(',') + ')';\n}\nfunction guessArrayDim(value) {\n    return isArrayLike(value && value[0]) ? 2 : 1;\n}\nvar tmpRgba = [0, 0, 0, 0];\nvar Track = (function () {\n    function Track(propName) {\n        this.keyframes = [];\n        this.maxTime = 0;\n        this.arrDim = 0;\n        this.interpolable = true;\n        this._needsSort = false;\n        this._isAllValueEqual = true;\n        this._lastFrame = 0;\n        this._lastFramePercent = 0;\n        this.propName = propName;\n    }\n    Track.prototype.isFinished = function () {\n        return this._finished;\n    };\n    Track.prototype.setFinished = function () {\n        this._finished = true;\n        if (this._additiveTrack) {\n            this._additiveTrack.setFinished();\n        }\n    };\n    Track.prototype.needsAnimate = function () {\n        return !this._isAllValueEqual && this.keyframes.length >= 2 && this.interpolable;\n    };\n    Track.prototype.getAdditiveTrack = function () {\n        return this._additiveTrack;\n    };\n    Track.prototype.addKeyframe = function (time, value) {\n        if (time >= this.maxTime) {\n            this.maxTime = time;\n        }\n        else {\n            this._needsSort = true;\n        }\n        var keyframes = this.keyframes;\n        var len = keyframes.length;\n        if (this.interpolable) {\n            if (isArrayLike(value)) {\n                var arrayDim = guessArrayDim(value);\n                if (len > 0 && this.arrDim !== arrayDim) {\n                    this.interpolable = false;\n                    return;\n                }\n                if (arrayDim === 1 && typeof value[0] !== 'number'\n                    || arrayDim === 2 && typeof value[0][0] !== 'number') {\n                    this.interpolable = false;\n                    return;\n                }\n                if (len > 0) {\n                    var lastFrame = keyframes[len - 1];\n                    if (this._isAllValueEqual) {\n                        if (arrayDim === 1) {\n                            if (!is1DArraySame(value, lastFrame.value)) {\n                                this._isAllValueEqual = false;\n                            }\n                        }\n                        else {\n                            this._isAllValueEqual = false;\n                        }\n                    }\n                }\n                this.arrDim = arrayDim;\n            }\n            else {\n                if (this.arrDim > 0) {\n                    this.interpolable = false;\n                    return;\n                }\n                if (typeof value === 'string') {\n                    var colorArray = color.parse(value);\n                    if (colorArray) {\n                        value = colorArray;\n                        this.isValueColor = true;\n                    }\n                    else {\n                        this.interpolable = false;\n                    }\n                }\n                else if (typeof value !== 'number') {\n                    this.interpolable = false;\n                    return;\n                }\n                if (this._isAllValueEqual && len > 0) {\n                    var lastFrame = keyframes[len - 1];\n                    if (this.isValueColor && !is1DArraySame(lastFrame.value, value)) {\n                        this._isAllValueEqual = false;\n                    }\n                    else if (lastFrame.value !== value) {\n                        this._isAllValueEqual = false;\n                    }\n                }\n            }\n        }\n        var kf = {\n            time: time,\n            value: value,\n            percent: 0\n        };\n        this.keyframes.push(kf);\n        return kf;\n    };\n    Track.prototype.prepare = function (additiveTrack) {\n        var kfs = this.keyframes;\n        if (this._needsSort) {\n            kfs.sort(function (a, b) {\n                return a.time - b.time;\n            });\n        }\n        var arrDim = this.arrDim;\n        var kfsLen = kfs.length;\n        var lastKf = kfs[kfsLen - 1];\n        for (var i = 0; i < kfsLen; i++) {\n            kfs[i].percent = kfs[i].time / this.maxTime;\n            if (arrDim > 0 && i !== kfsLen - 1) {\n                fillArray(kfs[i].value, lastKf.value, arrDim);\n            }\n        }\n        if (additiveTrack\n            && this.needsAnimate()\n            && additiveTrack.needsAnimate()\n            && arrDim === additiveTrack.arrDim\n            && this.isValueColor === additiveTrack.isValueColor\n            && !additiveTrack._finished) {\n            this._additiveTrack = additiveTrack;\n            var startValue = kfs[0].value;\n            for (var i = 0; i < kfsLen; i++) {\n                if (arrDim === 0) {\n                    if (this.isValueColor) {\n                        kfs[i].additiveValue\n                            = add1DArray([], kfs[i].value, startValue, -1);\n                    }\n                    else {\n                        kfs[i].additiveValue = kfs[i].value - startValue;\n                    }\n                }\n                else if (arrDim === 1) {\n                    kfs[i].additiveValue = add1DArray([], kfs[i].value, startValue, -1);\n                }\n                else if (arrDim === 2) {\n                    kfs[i].additiveValue = add2DArray([], kfs[i].value, startValue, -1);\n                }\n            }\n        }\n    };\n    Track.prototype.step = function (target, percent) {\n        if (this._finished) {\n            return;\n        }\n        if (this._additiveTrack && this._additiveTrack._finished) {\n            this._additiveTrack = null;\n        }\n        var isAdditive = this._additiveTrack != null;\n        var valueKey = isAdditive ? 'additiveValue' : 'value';\n        var keyframes = this.keyframes;\n        var kfsNum = this.keyframes.length;\n        var propName = this.propName;\n        var arrDim = this.arrDim;\n        var isValueColor = this.isValueColor;\n        var frameIdx;\n        if (percent < 0) {\n            frameIdx = 0;\n        }\n        else if (percent < this._lastFramePercent) {\n            var start = Math.min(this._lastFrame + 1, kfsNum - 1);\n            for (frameIdx = start; frameIdx >= 0; frameIdx--) {\n                if (keyframes[frameIdx].percent <= percent) {\n                    break;\n                }\n            }\n            frameIdx = Math.min(frameIdx, kfsNum - 2);\n        }\n        else {\n            for (frameIdx = this._lastFrame; frameIdx < kfsNum; frameIdx++) {\n                if (keyframes[frameIdx].percent > percent) {\n                    break;\n                }\n            }\n            frameIdx = Math.min(frameIdx - 1, kfsNum - 2);\n        }\n        var nextFrame = keyframes[frameIdx + 1];\n        var frame = keyframes[frameIdx];\n        if (!(frame && nextFrame)) {\n            return;\n        }\n        this._lastFrame = frameIdx;\n        this._lastFramePercent = percent;\n        var range = (nextFrame.percent - frame.percent);\n        if (range === 0) {\n            return;\n        }\n        var w = (percent - frame.percent) / range;\n        var targetArr = isAdditive ? this._additiveValue\n            : (isValueColor ? tmpRgba : target[propName]);\n        if ((arrDim > 0 || isValueColor) && !targetArr) {\n            targetArr = this._additiveValue = [];\n        }\n        if (this.useSpline) {\n            var p1 = keyframes[frameIdx][valueKey];\n            var p0 = keyframes[frameIdx === 0 ? frameIdx : frameIdx - 1][valueKey];\n            var p2 = keyframes[frameIdx > kfsNum - 2 ? kfsNum - 1 : frameIdx + 1][valueKey];\n            var p3 = keyframes[frameIdx > kfsNum - 3 ? kfsNum - 1 : frameIdx + 2][valueKey];\n            if (arrDim > 0) {\n                arrDim === 1\n                    ? catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w)\n                    : catmullRomInterpolate2DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\n            }\n            else if (isValueColor) {\n                catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\n                if (!isAdditive) {\n                    target[propName] = rgba2String(targetArr);\n                }\n            }\n            else {\n                var value = void 0;\n                if (!this.interpolable) {\n                    value = p2;\n                }\n                else {\n                    value = catmullRomInterpolate(p0, p1, p2, p3, w, w * w, w * w * w);\n                }\n                if (isAdditive) {\n                    this._additiveValue = value;\n                }\n                else {\n                    target[propName] = value;\n                }\n            }\n        }\n        else {\n            if (arrDim > 0) {\n                arrDim === 1\n                    ? interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w)\n                    : interpolate2DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\n            }\n            else if (isValueColor) {\n                interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\n                if (!isAdditive) {\n                    target[propName] = rgba2String(targetArr);\n                }\n            }\n            else {\n                var value = void 0;\n                if (!this.interpolable) {\n                    value = step(frame[valueKey], nextFrame[valueKey], w);\n                }\n                else {\n                    value = interpolateNumber(frame[valueKey], nextFrame[valueKey], w);\n                }\n                if (isAdditive) {\n                    this._additiveValue = value;\n                }\n                else {\n                    target[propName] = value;\n                }\n            }\n        }\n        if (isAdditive) {\n            this._addToTarget(target);\n        }\n    };\n    Track.prototype._addToTarget = function (target) {\n        var arrDim = this.arrDim;\n        var propName = this.propName;\n        var additiveValue = this._additiveValue;\n        if (arrDim === 0) {\n            if (this.isValueColor) {\n                color.parse(target[propName], tmpRgba);\n                add1DArray(tmpRgba, tmpRgba, additiveValue, 1);\n                target[propName] = rgba2String(tmpRgba);\n            }\n            else {\n                target[propName] = target[propName] + additiveValue;\n            }\n        }\n        else if (arrDim === 1) {\n            add1DArray(target[propName], target[propName], additiveValue, 1);\n        }\n        else if (arrDim === 2) {\n            add2DArray(target[propName], target[propName], additiveValue, 1);\n        }\n    };\n    return Track;\n}());\nvar Animator = (function () {\n    function Animator(target, loop, additiveTo) {\n        this._tracks = {};\n        this._trackKeys = [];\n        this._delay = 0;\n        this._maxTime = 0;\n        this._paused = false;\n        this._started = 0;\n        this._clip = null;\n        this._target = target;\n        this._loop = loop;\n        if (loop && additiveTo) {\n            logError('Can\\' use additive animation on looped animation.');\n            return;\n        }\n        this._additiveAnimators = additiveTo;\n    }\n    Animator.prototype.getTarget = function () {\n        return this._target;\n    };\n    Animator.prototype.changeTarget = function (target) {\n        this._target = target;\n    };\n    Animator.prototype.when = function (time, props) {\n        return this.whenWithKeys(time, props, keys(props));\n    };\n    Animator.prototype.whenWithKeys = function (time, props, propNames) {\n        var tracks = this._tracks;\n        for (var i = 0; i < propNames.length; i++) {\n            var propName = propNames[i];\n            var track = tracks[propName];\n            if (!track) {\n                track = tracks[propName] = new Track(propName);\n                var initialValue = void 0;\n                var additiveTrack = this._getAdditiveTrack(propName);\n                if (additiveTrack) {\n                    var lastFinalKf = additiveTrack.keyframes[additiveTrack.keyframes.length - 1];\n                    initialValue = lastFinalKf && lastFinalKf.value;\n                    if (additiveTrack.isValueColor && initialValue) {\n                        initialValue = rgba2String(initialValue);\n                    }\n                }\n                else {\n                    initialValue = this._target[propName];\n                }\n                if (initialValue == null) {\n                    continue;\n                }\n                if (time !== 0) {\n                    track.addKeyframe(0, cloneValue(initialValue));\n                }\n                this._trackKeys.push(propName);\n            }\n            track.addKeyframe(time, cloneValue(props[propName]));\n        }\n        this._maxTime = Math.max(this._maxTime, time);\n        return this;\n    };\n    Animator.prototype.pause = function () {\n        this._clip.pause();\n        this._paused = true;\n    };\n    Animator.prototype.resume = function () {\n        this._clip.resume();\n        this._paused = false;\n    };\n    Animator.prototype.isPaused = function () {\n        return !!this._paused;\n    };\n    Animator.prototype._doneCallback = function () {\n        this._setTracksFinished();\n        this._clip = null;\n        var doneList = this._doneList;\n        if (doneList) {\n            var len = doneList.length;\n            for (var i = 0; i < len; i++) {\n                doneList[i].call(this);\n            }\n        }\n    };\n    Animator.prototype._abortedCallback = function () {\n        this._setTracksFinished();\n        var animation = this.animation;\n        var abortedList = this._abortedList;\n        if (animation) {\n            animation.removeClip(this._clip);\n        }\n        this._clip = null;\n        if (abortedList) {\n            for (var i = 0; i < abortedList.length; i++) {\n                abortedList[i].call(this);\n            }\n        }\n    };\n    Animator.prototype._setTracksFinished = function () {\n        var tracks = this._tracks;\n        var tracksKeys = this._trackKeys;\n        for (var i = 0; i < tracksKeys.length; i++) {\n            tracks[tracksKeys[i]].setFinished();\n        }\n    };\n    Animator.prototype._getAdditiveTrack = function (trackName) {\n        var additiveTrack;\n        var additiveAnimators = this._additiveAnimators;\n        if (additiveAnimators) {\n            for (var i = 0; i < additiveAnimators.length; i++) {\n                var track = additiveAnimators[i].getTrack(trackName);\n                if (track) {\n                    additiveTrack = track;\n                }\n            }\n        }\n        return additiveTrack;\n    };\n    Animator.prototype.start = function (easing, forceAnimate) {\n        if (this._started > 0) {\n            return;\n        }\n        this._started = 1;\n        var self = this;\n        var tracks = [];\n        for (var i = 0; i < this._trackKeys.length; i++) {\n            var propName = this._trackKeys[i];\n            var track = this._tracks[propName];\n            var additiveTrack = this._getAdditiveTrack(propName);\n            var kfs = track.keyframes;\n            track.prepare(additiveTrack);\n            if (track.needsAnimate()) {\n                tracks.push(track);\n            }\n            else if (!track.interpolable) {\n                var lastKf = kfs[kfs.length - 1];\n                if (lastKf) {\n                    self._target[track.propName] = lastKf.value;\n                }\n            }\n        }\n        if (tracks.length || forceAnimate) {\n            var clip = new Clip({\n                life: this._maxTime,\n                loop: this._loop,\n                delay: this._delay,\n                onframe: function (percent) {\n                    self._started = 2;\n                    var additiveAnimators = self._additiveAnimators;\n                    if (additiveAnimators) {\n                        var stillHasAdditiveAnimator = false;\n                        for (var i = 0; i < additiveAnimators.length; i++) {\n                            if (additiveAnimators[i]._clip) {\n                                stillHasAdditiveAnimator = true;\n                                break;\n                            }\n                        }\n                        if (!stillHasAdditiveAnimator) {\n                            self._additiveAnimators = null;\n                        }\n                    }\n                    for (var i = 0; i < tracks.length; i++) {\n                        tracks[i].step(self._target, percent);\n                    }\n                    var onframeList = self._onframeList;\n                    if (onframeList) {\n                        for (var i = 0; i < onframeList.length; i++) {\n                            onframeList[i](self._target, percent);\n                        }\n                    }\n                },\n                ondestroy: function () {\n                    self._doneCallback();\n                }\n            });\n            this._clip = clip;\n            if (this.animation) {\n                this.animation.addClip(clip);\n            }\n            if (easing && easing !== 'spline') {\n                clip.easing = easing;\n            }\n        }\n        else {\n            this._doneCallback();\n        }\n        return this;\n    };\n    Animator.prototype.stop = function (forwardToLast) {\n        if (!this._clip) {\n            return;\n        }\n        var clip = this._clip;\n        if (forwardToLast) {\n            clip.onframe(1);\n        }\n        this._abortedCallback();\n    };\n    Animator.prototype.delay = function (time) {\n        this._delay = time;\n        return this;\n    };\n    Animator.prototype.during = function (cb) {\n        if (cb) {\n            if (!this._onframeList) {\n                this._onframeList = [];\n            }\n            this._onframeList.push(cb);\n        }\n        return this;\n    };\n    Animator.prototype.done = function (cb) {\n        if (cb) {\n            if (!this._doneList) {\n                this._doneList = [];\n            }\n            this._doneList.push(cb);\n        }\n        return this;\n    };\n    Animator.prototype.aborted = function (cb) {\n        if (cb) {\n            if (!this._abortedList) {\n                this._abortedList = [];\n            }\n            this._abortedList.push(cb);\n        }\n        return this;\n    };\n    Animator.prototype.getClip = function () {\n        return this._clip;\n    };\n    Animator.prototype.getTrack = function (propName) {\n        return this._tracks[propName];\n    };\n    Animator.prototype.stopTracks = function (propNames, forwardToLast) {\n        if (!propNames.length || !this._clip) {\n            return true;\n        }\n        var tracks = this._tracks;\n        var tracksKeys = this._trackKeys;\n        for (var i = 0; i < propNames.length; i++) {\n            var track = tracks[propNames[i]];\n            if (track) {\n                if (forwardToLast) {\n                    track.step(this._target, 1);\n                }\n                else if (this._started === 1) {\n                    track.step(this._target, 0);\n                }\n                track.setFinished();\n            }\n        }\n        var allAborted = true;\n        for (var i = 0; i < tracksKeys.length; i++) {\n            if (!tracks[tracksKeys[i]].isFinished()) {\n                allAborted = false;\n                break;\n            }\n        }\n        if (allAborted) {\n            this._abortedCallback();\n        }\n        return allAborted;\n    };\n    Animator.prototype.saveFinalToTarget = function (target, trackKeys) {\n        if (!target) {\n            return;\n        }\n        trackKeys = trackKeys || this._trackKeys;\n        for (var i = 0; i < trackKeys.length; i++) {\n            var propName = trackKeys[i];\n            var track = this._tracks[propName];\n            if (!track || track.isFinished()) {\n                continue;\n            }\n            var kfs = track.keyframes;\n            var lastKf = kfs[kfs.length - 1];\n            if (lastKf) {\n                var val = cloneValue(lastKf.value);\n                if (track.isValueColor) {\n                    val = rgba2String(val);\n                }\n                target[propName] = val;\n            }\n        }\n    };\n    Animator.prototype.__changeFinalValue = function (finalProps, trackKeys) {\n        trackKeys = trackKeys || keys(finalProps);\n        for (var i = 0; i < trackKeys.length; i++) {\n            var propName = trackKeys[i];\n            var track = this._tracks[propName];\n            if (!track) {\n                continue;\n            }\n            var kfs = track.keyframes;\n            if (kfs.length > 1) {\n                var lastKf = kfs.pop();\n                track.addKeyframe(lastKf.time, finalProps[propName]);\n                track.prepare(track.getAdditiveTrack());\n            }\n        }\n    };\n    return Animator;\n}());\nexport default Animator;\n","var Point = (function () {\n    function Point(x, y) {\n        this.x = x || 0;\n        this.y = y || 0;\n    }\n    Point.prototype.copy = function (other) {\n        this.x = other.x;\n        this.y = other.y;\n        return this;\n    };\n    Point.prototype.clone = function () {\n        return new Point(this.x, this.y);\n    };\n    Point.prototype.set = function (x, y) {\n        this.x = x;\n        this.y = y;\n        return this;\n    };\n    Point.prototype.equal = function (other) {\n        return other.x === this.x && other.y === this.y;\n    };\n    Point.prototype.add = function (other) {\n        this.x += other.x;\n        this.y += other.y;\n        return this;\n    };\n    Point.prototype.scale = function (scalar) {\n        this.x *= scalar;\n        this.y *= scalar;\n    };\n    Point.prototype.scaleAndAdd = function (other, scalar) {\n        this.x += other.x * scalar;\n        this.y += other.y * scalar;\n    };\n    Point.prototype.sub = function (other) {\n        this.x -= other.x;\n        this.y -= other.y;\n        return this;\n    };\n    Point.prototype.dot = function (other) {\n        return this.x * other.x + this.y * other.y;\n    };\n    Point.prototype.len = function () {\n        return Math.sqrt(this.x * this.x + this.y * this.y);\n    };\n    Point.prototype.lenSquare = function () {\n        return this.x * this.x + this.y * this.y;\n    };\n    Point.prototype.normalize = function () {\n        var len = this.len();\n        this.x /= len;\n        this.y /= len;\n        return this;\n    };\n    Point.prototype.distance = function (other) {\n        var dx = this.x - other.x;\n        var dy = this.y - other.y;\n        return Math.sqrt(dx * dx + dy * dy);\n    };\n    Point.prototype.distanceSquare = function (other) {\n        var dx = this.x - other.x;\n        var dy = this.y - other.y;\n        return dx * dx + dy * dy;\n    };\n    Point.prototype.negate = function () {\n        this.x = -this.x;\n        this.y = -this.y;\n        return this;\n    };\n    Point.prototype.transform = function (m) {\n        if (!m) {\n            return;\n        }\n        var x = this.x;\n        var y = this.y;\n        this.x = m[0] * x + m[2] * y + m[4];\n        this.y = m[1] * x + m[3] * y + m[5];\n        return this;\n    };\n    Point.prototype.toArray = function (out) {\n        out[0] = this.x;\n        out[1] = this.y;\n        return out;\n    };\n    Point.prototype.fromArray = function (input) {\n        this.x = input[0];\n        this.y = input[1];\n    };\n    Point.set = function (p, x, y) {\n        p.x = x;\n        p.y = y;\n    };\n    Point.copy = function (p, p2) {\n        p.x = p2.x;\n        p.y = p2.y;\n    };\n    Point.len = function (p) {\n        return Math.sqrt(p.x * p.x + p.y * p.y);\n    };\n    Point.lenSquare = function (p) {\n        return p.x * p.x + p.y * p.y;\n    };\n    Point.dot = function (p0, p1) {\n        return p0.x * p1.x + p0.y * p1.y;\n    };\n    Point.add = function (out, p0, p1) {\n        out.x = p0.x + p1.x;\n        out.y = p0.y + p1.y;\n    };\n    Point.sub = function (out, p0, p1) {\n        out.x = p0.x - p1.x;\n        out.y = p0.y - p1.y;\n    };\n    Point.scale = function (out, p0, scalar) {\n        out.x = p0.x * scalar;\n        out.y = p0.y * scalar;\n    };\n    Point.scaleAndAdd = function (out, p0, p1, scalar) {\n        out.x = p0.x + p1.x * scalar;\n        out.y = p0.y + p1.y * scalar;\n    };\n    Point.lerp = function (out, p0, p1, t) {\n        var onet = 1 - t;\n        out.x = onet * p0.x + t * p1.x;\n        out.y = onet * p0.y + t * p1.y;\n    };\n    return Point;\n}());\nexport default Point;\n","import * as matrix from './matrix';\nimport Point from './Point';\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar lt = new Point();\nvar rb = new Point();\nvar lb = new Point();\nvar rt = new Point();\nvar minTv = new Point();\nvar maxTv = new Point();\nvar BoundingRect = (function () {\n    function BoundingRect(x, y, width, height) {\n        if (width < 0 && isFinite(width)) {\n            x = x + width;\n            width = -width;\n        }\n        if (height < 0 && isFinite(height)) {\n            y = y + height;\n            height = -height;\n        }\n        this.x = x;\n        this.y = y;\n        this.width = width;\n        this.height = height;\n    }\n    BoundingRect.prototype.union = function (other) {\n        var x = mathMin(other.x, this.x);\n        var y = mathMin(other.y, this.y);\n        if (isFinite(this.x) && isFinite(this.width)) {\n            this.width = mathMax(other.x + other.width, this.x + this.width) - x;\n        }\n        else {\n            this.width = other.width;\n        }\n        if (isFinite(this.y) && isFinite(this.height)) {\n            this.height = mathMax(other.y + other.height, this.y + this.height) - y;\n        }\n        else {\n            this.height = other.height;\n        }\n        this.x = x;\n        this.y = y;\n    };\n    BoundingRect.prototype.applyTransform = function (m) {\n        BoundingRect.applyTransform(this, this, m);\n    };\n    BoundingRect.prototype.calculateTransform = function (b) {\n        var a = this;\n        var sx = b.width / a.width;\n        var sy = b.height / a.height;\n        var m = matrix.create();\n        matrix.translate(m, m, [-a.x, -a.y]);\n        matrix.scale(m, m, [sx, sy]);\n        matrix.translate(m, m, [b.x, b.y]);\n        return m;\n    };\n    BoundingRect.prototype.intersect = function (b, mtv) {\n        if (!b) {\n            return false;\n        }\n        if (!(b instanceof BoundingRect)) {\n            b = BoundingRect.create(b);\n        }\n        var a = this;\n        var ax0 = a.x;\n        var ax1 = a.x + a.width;\n        var ay0 = a.y;\n        var ay1 = a.y + a.height;\n        var bx0 = b.x;\n        var bx1 = b.x + b.width;\n        var by0 = b.y;\n        var by1 = b.y + b.height;\n        var overlap = !(ax1 < bx0 || bx1 < ax0 || ay1 < by0 || by1 < ay0);\n        if (mtv) {\n            var dMin = Infinity;\n            var dMax = 0;\n            var d0 = Math.abs(ax1 - bx0);\n            var d1 = Math.abs(bx1 - ax0);\n            var d2 = Math.abs(ay1 - by0);\n            var d3 = Math.abs(by1 - ay0);\n            var dx = Math.min(d0, d1);\n            var dy = Math.min(d2, d3);\n            if (ax1 < bx0 || bx1 < ax0) {\n                if (dx > dMax) {\n                    dMax = dx;\n                    if (d0 < d1) {\n                        Point.set(maxTv, -d0, 0);\n                    }\n                    else {\n                        Point.set(maxTv, d1, 0);\n                    }\n                }\n            }\n            else {\n                if (dx < dMin) {\n                    dMin = dx;\n                    if (d0 < d1) {\n                        Point.set(minTv, d0, 0);\n                    }\n                    else {\n                        Point.set(minTv, -d1, 0);\n                    }\n                }\n            }\n            if (ay1 < by0 || by1 < ay0) {\n                if (dy > dMax) {\n                    dMax = dy;\n                    if (d2 < d3) {\n                        Point.set(maxTv, 0, -d2);\n                    }\n                    else {\n                        Point.set(maxTv, 0, d3);\n                    }\n                }\n            }\n            else {\n                if (dx < dMin) {\n                    dMin = dx;\n                    if (d2 < d3) {\n                        Point.set(minTv, 0, d2);\n                    }\n                    else {\n                        Point.set(minTv, 0, -d3);\n                    }\n                }\n            }\n        }\n        if (mtv) {\n            Point.copy(mtv, overlap ? minTv : maxTv);\n        }\n        return overlap;\n    };\n    BoundingRect.prototype.contain = function (x, y) {\n        var rect = this;\n        return x >= rect.x\n            && x <= (rect.x + rect.width)\n            && y >= rect.y\n            && y <= (rect.y + rect.height);\n    };\n    BoundingRect.prototype.clone = function () {\n        return new BoundingRect(this.x, this.y, this.width, this.height);\n    };\n    BoundingRect.prototype.copy = function (other) {\n        BoundingRect.copy(this, other);\n    };\n    BoundingRect.prototype.plain = function () {\n        return {\n            x: this.x,\n            y: this.y,\n            width: this.width,\n            height: this.height\n        };\n    };\n    BoundingRect.prototype.isFinite = function () {\n        return isFinite(this.x)\n            && isFinite(this.y)\n            && isFinite(this.width)\n            && isFinite(this.height);\n    };\n    BoundingRect.prototype.isZero = function () {\n        return this.width === 0 || this.height === 0;\n    };\n    BoundingRect.create = function (rect) {\n        return new BoundingRect(rect.x, rect.y, rect.width, rect.height);\n    };\n    BoundingRect.copy = function (target, source) {\n        target.x = source.x;\n        target.y = source.y;\n        target.width = source.width;\n        target.height = source.height;\n    };\n    BoundingRect.applyTransform = function (target, source, m) {\n        if (!m) {\n            if (target !== source) {\n                BoundingRect.copy(target, source);\n            }\n            return;\n        }\n        if (m[1] < 1e-5 && m[1] > -1e-5 && m[2] < 1e-5 && m[2] > -1e-5) {\n            var sx = m[0];\n            var sy = m[3];\n            var tx = m[4];\n            var ty = m[5];\n            target.x = source.x * sx + tx;\n            target.y = source.y * sy + ty;\n            target.width = source.width * sx;\n            target.height = source.height * sy;\n            if (target.width < 0) {\n                target.x += target.width;\n                target.width = -target.width;\n            }\n            if (target.height < 0) {\n                target.y += target.height;\n                target.height = -target.height;\n            }\n            return;\n        }\n        lt.x = lb.x = source.x;\n        lt.y = rt.y = source.y;\n        rb.x = rt.x = source.x + source.width;\n        rb.y = lb.y = source.y + source.height;\n        lt.transform(m);\n        rt.transform(m);\n        rb.transform(m);\n        lb.transform(m);\n        target.x = mathMin(lt.x, rb.x, lb.x, rt.x);\n        target.y = mathMin(lt.y, rb.y, lb.y, rt.y);\n        var maxX = mathMax(lt.x, rb.x, lb.x, rt.x);\n        var maxY = mathMax(lt.y, rb.y, lb.y, rt.y);\n        target.width = maxX - target.x;\n        target.height = maxY - target.y;\n    };\n    return BoundingRect;\n}());\nexport default BoundingRect;\n","import BoundingRect from '../core/BoundingRect';\nimport { createCanvas } from '../core/util';\nimport LRU from '../core/LRU';\nvar textWidthCache = {};\nexport var DEFAULT_FONT = '12px sans-serif';\nvar _ctx;\nvar _cachedFont;\nfunction defaultMeasureText(text, font) {\n    if (!_ctx) {\n        _ctx = createCanvas().getContext('2d');\n    }\n    if (_cachedFont !== font) {\n        _cachedFont = _ctx.font = font || DEFAULT_FONT;\n    }\n    return _ctx.measureText(text);\n}\nvar methods = {\n    measureText: defaultMeasureText\n};\nexport function $override(name, fn) {\n    methods[name] = fn;\n}\nexport function getWidth(text, font) {\n    font = font || DEFAULT_FONT;\n    var cacheOfFont = textWidthCache[font];\n    if (!cacheOfFont) {\n        cacheOfFont = textWidthCache[font] = new LRU(500);\n    }\n    var width = cacheOfFont.get(text);\n    if (width == null) {\n        width = methods.measureText(text, font).width;\n        cacheOfFont.put(text, width);\n    }\n    return width;\n}\nexport function innerGetBoundingRect(text, font, textAlign, textBaseline) {\n    var width = getWidth(text, font);\n    var height = getLineHeight(font);\n    var x = adjustTextX(0, width, textAlign);\n    var y = adjustTextY(0, height, textBaseline);\n    var rect = new BoundingRect(x, y, width, height);\n    return rect;\n}\nexport function getBoundingRect(text, font, textAlign, textBaseline) {\n    var textLines = ((text || '') + '').split('\\n');\n    var len = textLines.length;\n    if (len === 1) {\n        return innerGetBoundingRect(textLines[0], font, textAlign, textBaseline);\n    }\n    else {\n        var uniondRect = new BoundingRect(0, 0, 0, 0);\n        for (var i = 0; i < textLines.length; i++) {\n            var rect = innerGetBoundingRect(textLines[i], font, textAlign, textBaseline);\n            i === 0 ? uniondRect.copy(rect) : uniondRect.union(rect);\n        }\n        return uniondRect;\n    }\n}\nexport function adjustTextX(x, width, textAlign) {\n    if (textAlign === 'right') {\n        x -= width;\n    }\n    else if (textAlign === 'center') {\n        x -= width / 2;\n    }\n    return x;\n}\nexport function adjustTextY(y, height, verticalAlign) {\n    if (verticalAlign === 'middle') {\n        y -= height / 2;\n    }\n    else if (verticalAlign === 'bottom') {\n        y -= height;\n    }\n    return y;\n}\nexport function getLineHeight(font) {\n    return getWidth('国', font);\n}\nexport function measureText(text, font) {\n    return methods.measureText(text, font);\n}\nexport function parsePercent(value, maxValue) {\n    if (typeof value === 'string') {\n        if (value.lastIndexOf('%') >= 0) {\n            return parseFloat(value) / 100 * maxValue;\n        }\n        return parseFloat(value);\n    }\n    return value;\n}\nexport function calculateTextPosition(out, opts, rect) {\n    var textPosition = opts.position || 'inside';\n    var distance = opts.distance != null ? opts.distance : 5;\n    var height = rect.height;\n    var width = rect.width;\n    var halfHeight = height / 2;\n    var x = rect.x;\n    var y = rect.y;\n    var textAlign = 'left';\n    var textVerticalAlign = 'top';\n    if (textPosition instanceof Array) {\n        x += parsePercent(textPosition[0], rect.width);\n        y += parsePercent(textPosition[1], rect.height);\n        textAlign = null;\n        textVerticalAlign = null;\n    }\n    else {\n        switch (textPosition) {\n            case 'left':\n                x -= distance;\n                y += halfHeight;\n                textAlign = 'right';\n                textVerticalAlign = 'middle';\n                break;\n            case 'right':\n                x += distance + width;\n                y += halfHeight;\n                textVerticalAlign = 'middle';\n                break;\n            case 'top':\n                x += width / 2;\n                y -= distance;\n                textAlign = 'center';\n                textVerticalAlign = 'bottom';\n                break;\n            case 'bottom':\n                x += width / 2;\n                y += height + distance;\n                textAlign = 'center';\n                break;\n            case 'inside':\n                x += width / 2;\n                y += halfHeight;\n                textAlign = 'center';\n                textVerticalAlign = 'middle';\n                break;\n            case 'insideLeft':\n                x += distance;\n                y += halfHeight;\n                textVerticalAlign = 'middle';\n                break;\n            case 'insideRight':\n                x += width - distance;\n                y += halfHeight;\n                textAlign = 'right';\n                textVerticalAlign = 'middle';\n                break;\n            case 'insideTop':\n                x += width / 2;\n                y += distance;\n                textAlign = 'center';\n                break;\n            case 'insideBottom':\n                x += width / 2;\n                y += height - distance;\n                textAlign = 'center';\n                textVerticalAlign = 'bottom';\n                break;\n            case 'insideTopLeft':\n                x += distance;\n                y += distance;\n                break;\n            case 'insideTopRight':\n                x += width - distance;\n                y += distance;\n                textAlign = 'right';\n                break;\n            case 'insideBottomLeft':\n                x += distance;\n                y += height - distance;\n                textVerticalAlign = 'bottom';\n                break;\n            case 'insideBottomRight':\n                x += width - distance;\n                y += height - distance;\n                textAlign = 'right';\n                textVerticalAlign = 'bottom';\n                break;\n        }\n    }\n    out = out || {};\n    out.x = x;\n    out.y = y;\n    out.align = textAlign;\n    out.verticalAlign = textVerticalAlign;\n    return out;\n}\n","var dpr = 1;\nif (typeof window !== 'undefined') {\n    dpr = Math.max(window.devicePixelRatio\n        || (window.screen && window.screen.deviceXDPI / window.screen.logicalXDPI)\n        || 1, 1);\n}\nexport var debugMode = 0;\nexport var devicePixelRatio = dpr;\nexport var DARK_MODE_THRESHOLD = 0.4;\nexport var DARK_LABEL_COLOR = '#333';\nexport var LIGHT_LABEL_COLOR = '#ccc';\nexport var LIGHTER_LABEL_COLOR = '#eee';\n","import Transformable from './core/Transformable';\nimport Animator, { cloneValue } from './animation/Animator';\nimport BoundingRect from './core/BoundingRect';\nimport Eventful from './core/Eventful';\nimport { calculateTextPosition, parsePercent } from './contain/text';\nimport { guid, isObject, keys, extend, indexOf, logError, mixin, isArrayLike, isTypedArray } from './core/util';\nimport { LIGHT_LABEL_COLOR, DARK_LABEL_COLOR } from './config';\nimport { parse, stringify } from './tool/color';\nimport env from './core/env';\nexport var PRESERVED_NORMAL_STATE = '__zr_normal__';\nvar PRIMARY_STATES_KEYS = ['x', 'y', 'scaleX', 'scaleY', 'originX', 'originY', 'rotation', 'ignore'];\nvar DEFAULT_ANIMATABLE_MAP = {\n    x: true,\n    y: true,\n    scaleX: true,\n    scaleY: true,\n    originX: true,\n    originY: true,\n    rotation: true,\n    ignore: false\n};\nvar tmpTextPosCalcRes = {};\nvar tmpBoundingRect = new BoundingRect(0, 0, 0, 0);\nvar Element = (function () {\n    function Element(props) {\n        this.id = guid();\n        this.animators = [];\n        this.currentStates = [];\n        this.states = {};\n        this._init(props);\n    }\n    Element.prototype._init = function (props) {\n        this.attr(props);\n    };\n    Element.prototype.drift = function (dx, dy, e) {\n        switch (this.draggable) {\n            case 'horizontal':\n                dy = 0;\n                break;\n            case 'vertical':\n                dx = 0;\n                break;\n        }\n        var m = this.transform;\n        if (!m) {\n            m = this.transform = [1, 0, 0, 1, 0, 0];\n        }\n        m[4] += dx;\n        m[5] += dy;\n        this.decomposeTransform();\n        this.markRedraw();\n    };\n    Element.prototype.beforeUpdate = function () { };\n    Element.prototype.afterUpdate = function () { };\n    Element.prototype.update = function () {\n        this.updateTransform();\n        if (this.__dirty) {\n            this.updateInnerText();\n        }\n    };\n    Element.prototype.updateInnerText = function (forceUpdate) {\n        var textEl = this._textContent;\n        if (textEl && (!textEl.ignore || forceUpdate)) {\n            if (!this.textConfig) {\n                this.textConfig = {};\n            }\n            var textConfig = this.textConfig;\n            var isLocal = textConfig.local;\n            var attachedTransform = textEl.attachedTransform;\n            var textAlign = void 0;\n            var textVerticalAlign = void 0;\n            var textStyleChanged = false;\n            if (isLocal) {\n                attachedTransform.parent = this;\n            }\n            else {\n                attachedTransform.parent = null;\n            }\n            var innerOrigin = false;\n            attachedTransform.x = textEl.x;\n            attachedTransform.y = textEl.y;\n            attachedTransform.originX = textEl.originX;\n            attachedTransform.originY = textEl.originY;\n            attachedTransform.rotation = textEl.rotation;\n            attachedTransform.scaleX = textEl.scaleX;\n            attachedTransform.scaleY = textEl.scaleY;\n            if (textConfig.position != null) {\n                var layoutRect = tmpBoundingRect;\n                if (textConfig.layoutRect) {\n                    layoutRect.copy(textConfig.layoutRect);\n                }\n                else {\n                    layoutRect.copy(this.getBoundingRect());\n                }\n                if (!isLocal) {\n                    layoutRect.applyTransform(this.transform);\n                }\n                if (this.calculateTextPosition) {\n                    this.calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\n                }\n                else {\n                    calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\n                }\n                attachedTransform.x = tmpTextPosCalcRes.x;\n                attachedTransform.y = tmpTextPosCalcRes.y;\n                textAlign = tmpTextPosCalcRes.align;\n                textVerticalAlign = tmpTextPosCalcRes.verticalAlign;\n                var textOrigin = textConfig.origin;\n                if (textOrigin && textConfig.rotation != null) {\n                    var relOriginX = void 0;\n                    var relOriginY = void 0;\n                    if (textOrigin === 'center') {\n                        relOriginX = layoutRect.width * 0.5;\n                        relOriginY = layoutRect.height * 0.5;\n                    }\n                    else {\n                        relOriginX = parsePercent(textOrigin[0], layoutRect.width);\n                        relOriginY = parsePercent(textOrigin[1], layoutRect.height);\n                    }\n                    innerOrigin = true;\n                    attachedTransform.originX = -attachedTransform.x + relOriginX + (isLocal ? 0 : layoutRect.x);\n                    attachedTransform.originY = -attachedTransform.y + relOriginY + (isLocal ? 0 : layoutRect.y);\n                }\n            }\n            if (textConfig.rotation != null) {\n                attachedTransform.rotation = textConfig.rotation;\n            }\n            var textOffset = textConfig.offset;\n            if (textOffset) {\n                attachedTransform.x += textOffset[0];\n                attachedTransform.y += textOffset[1];\n                if (!innerOrigin) {\n                    attachedTransform.originX = -textOffset[0];\n                    attachedTransform.originY = -textOffset[1];\n                }\n            }\n            var isInside = textConfig.inside == null\n                ? (typeof textConfig.position === 'string' && textConfig.position.indexOf('inside') >= 0)\n                : textConfig.inside;\n            var innerTextDefaultStyle = this._innerTextDefaultStyle || (this._innerTextDefaultStyle = {});\n            var textFill = void 0;\n            var textStroke = void 0;\n            var autoStroke = void 0;\n            if (isInside && this.canBeInsideText()) {\n                textFill = textConfig.insideFill;\n                textStroke = textConfig.insideStroke;\n                if (textFill == null || textFill === 'auto') {\n                    textFill = this.getInsideTextFill();\n                }\n                if (textStroke == null || textStroke === 'auto') {\n                    textStroke = this.getInsideTextStroke(textFill);\n                    autoStroke = true;\n                }\n            }\n            else {\n                textFill = textConfig.outsideFill;\n                textStroke = textConfig.outsideStroke;\n                if (textFill == null || textFill === 'auto') {\n                    textFill = this.getOutsideFill();\n                }\n                if (textStroke == null || textStroke === 'auto') {\n                    textStroke = this.getOutsideStroke(textFill);\n                    autoStroke = true;\n                }\n            }\n            textFill = textFill || '#000';\n            if (textFill !== innerTextDefaultStyle.fill\n                || textStroke !== innerTextDefaultStyle.stroke\n                || autoStroke !== innerTextDefaultStyle.autoStroke\n                || textAlign !== innerTextDefaultStyle.align\n                || textVerticalAlign !== innerTextDefaultStyle.verticalAlign) {\n                textStyleChanged = true;\n                innerTextDefaultStyle.fill = textFill;\n                innerTextDefaultStyle.stroke = textStroke;\n                innerTextDefaultStyle.autoStroke = autoStroke;\n                innerTextDefaultStyle.align = textAlign;\n                innerTextDefaultStyle.verticalAlign = textVerticalAlign;\n                textEl.setDefaultTextStyle(innerTextDefaultStyle);\n            }\n            if (textStyleChanged) {\n                textEl.dirtyStyle();\n            }\n            textEl.markRedraw();\n        }\n    };\n    Element.prototype.canBeInsideText = function () {\n        return true;\n    };\n    Element.prototype.getInsideTextFill = function () {\n        return '#fff';\n    };\n    Element.prototype.getInsideTextStroke = function (textFill) {\n        return '#000';\n    };\n    Element.prototype.getOutsideFill = function () {\n        return this.__zr && this.__zr.isDarkMode() ? LIGHT_LABEL_COLOR : DARK_LABEL_COLOR;\n    };\n    Element.prototype.getOutsideStroke = function (textFill) {\n        var backgroundColor = this.__zr && this.__zr.getBackgroundColor();\n        var colorArr = typeof backgroundColor === 'string' && parse(backgroundColor);\n        if (!colorArr) {\n            colorArr = [255, 255, 255, 1];\n        }\n        var alpha = colorArr[3];\n        var isDark = this.__zr.isDarkMode();\n        for (var i = 0; i < 3; i++) {\n            colorArr[i] = colorArr[i] * alpha + (isDark ? 0 : 255) * (1 - alpha);\n        }\n        colorArr[3] = 1;\n        return stringify(colorArr, 'rgba');\n    };\n    Element.prototype.traverse = function (cb, context) { };\n    Element.prototype.attrKV = function (key, value) {\n        if (key === 'textConfig') {\n            this.setTextConfig(value);\n        }\n        else if (key === 'textContent') {\n            this.setTextContent(value);\n        }\n        else if (key === 'clipPath') {\n            this.setClipPath(value);\n        }\n        else if (key === 'extra') {\n            this.extra = this.extra || {};\n            extend(this.extra, value);\n        }\n        else {\n            this[key] = value;\n        }\n    };\n    Element.prototype.hide = function () {\n        this.ignore = true;\n        this.markRedraw();\n    };\n    Element.prototype.show = function () {\n        this.ignore = false;\n        this.markRedraw();\n    };\n    Element.prototype.attr = function (keyOrObj, value) {\n        if (typeof keyOrObj === 'string') {\n            this.attrKV(keyOrObj, value);\n        }\n        else if (isObject(keyOrObj)) {\n            var obj = keyOrObj;\n            var keysArr = keys(obj);\n            for (var i = 0; i < keysArr.length; i++) {\n                var key = keysArr[i];\n                this.attrKV(key, keyOrObj[key]);\n            }\n        }\n        this.markRedraw();\n        return this;\n    };\n    Element.prototype.saveCurrentToNormalState = function (toState) {\n        this._innerSaveToNormal(toState);\n        var normalState = this._normalState;\n        for (var i = 0; i < this.animators.length; i++) {\n            var animator = this.animators[i];\n            var fromStateTransition = animator.__fromStateTransition;\n            if (fromStateTransition && fromStateTransition !== PRESERVED_NORMAL_STATE) {\n                continue;\n            }\n            var targetName = animator.targetName;\n            var target = targetName\n                ? normalState[targetName] : normalState;\n            animator.saveFinalToTarget(target);\n        }\n    };\n    Element.prototype._innerSaveToNormal = function (toState) {\n        var normalState = this._normalState;\n        if (!normalState) {\n            normalState = this._normalState = {};\n        }\n        if (toState.textConfig && !normalState.textConfig) {\n            normalState.textConfig = this.textConfig;\n        }\n        this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS);\n    };\n    Element.prototype._savePrimaryToNormal = function (toState, normalState, primaryKeys) {\n        for (var i = 0; i < primaryKeys.length; i++) {\n            var key = primaryKeys[i];\n            if (toState[key] != null && !(key in normalState)) {\n                normalState[key] = this[key];\n            }\n        }\n    };\n    Element.prototype.hasState = function () {\n        return this.currentStates.length > 0;\n    };\n    Element.prototype.getState = function (name) {\n        return this.states[name];\n    };\n    Element.prototype.ensureState = function (name) {\n        var states = this.states;\n        if (!states[name]) {\n            states[name] = {};\n        }\n        return states[name];\n    };\n    Element.prototype.clearStates = function (noAnimation) {\n        this.useState(PRESERVED_NORMAL_STATE, false, noAnimation);\n    };\n    Element.prototype.useState = function (stateName, keepCurrentStates, noAnimation) {\n        var toNormalState = stateName === PRESERVED_NORMAL_STATE;\n        var hasStates = this.hasState();\n        if (!hasStates && toNormalState) {\n            return;\n        }\n        var currentStates = this.currentStates;\n        var animationCfg = this.stateTransition;\n        if (indexOf(currentStates, stateName) >= 0 && (keepCurrentStates || currentStates.length === 1)) {\n            return;\n        }\n        var state;\n        if (this.stateProxy && !toNormalState) {\n            state = this.stateProxy(stateName);\n        }\n        if (!state) {\n            state = (this.states && this.states[stateName]);\n        }\n        if (!state && !toNormalState) {\n            logError(\"State \" + stateName + \" not exists.\");\n            return;\n        }\n        if (!toNormalState) {\n            this.saveCurrentToNormalState(state);\n        }\n        var useHoverLayer = !!(state && state.hoverLayer);\n        if (useHoverLayer) {\n            this._toggleHoverLayerFlag(true);\n        }\n        this._applyStateObj(stateName, state, this._normalState, keepCurrentStates, !noAnimation && !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\n        if (this._textContent) {\n            this._textContent.useState(stateName, keepCurrentStates);\n        }\n        if (this._textGuide) {\n            this._textGuide.useState(stateName, keepCurrentStates);\n        }\n        if (toNormalState) {\n            this.currentStates = [];\n            this._normalState = {};\n        }\n        else {\n            if (!keepCurrentStates) {\n                this.currentStates = [stateName];\n            }\n            else {\n                this.currentStates.push(stateName);\n            }\n        }\n        this._updateAnimationTargets();\n        this.markRedraw();\n        if (!useHoverLayer && this.__inHover) {\n            this._toggleHoverLayerFlag(false);\n            this.__dirty &= ~Element.REDARAW_BIT;\n        }\n        return state;\n    };\n    Element.prototype.useStates = function (states, noAnimation) {\n        if (!states.length) {\n            this.clearStates();\n        }\n        else {\n            var stateObjects = [];\n            var currentStates = this.currentStates;\n            var len = states.length;\n            var notChange = len === currentStates.length;\n            if (notChange) {\n                for (var i = 0; i < len; i++) {\n                    if (states[i] !== currentStates[i]) {\n                        notChange = false;\n                        break;\n                    }\n                }\n            }\n            if (notChange) {\n                return;\n            }\n            for (var i = 0; i < len; i++) {\n                var stateName = states[i];\n                var stateObj = void 0;\n                if (this.stateProxy) {\n                    stateObj = this.stateProxy(stateName, states);\n                }\n                if (!stateObj) {\n                    stateObj = this.states[stateName];\n                }\n                if (stateObj) {\n                    stateObjects.push(stateObj);\n                }\n            }\n            var useHoverLayer = !!(stateObjects[len - 1] && stateObjects[len - 1].hoverLayer);\n            if (useHoverLayer) {\n                this._toggleHoverLayerFlag(true);\n            }\n            var mergedState = this._mergeStates(stateObjects);\n            var animationCfg = this.stateTransition;\n            this.saveCurrentToNormalState(mergedState);\n            this._applyStateObj(states.join(','), mergedState, this._normalState, false, !noAnimation && !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\n            if (this._textContent) {\n                this._textContent.useStates(states);\n            }\n            if (this._textGuide) {\n                this._textGuide.useStates(states);\n            }\n            this._updateAnimationTargets();\n            this.currentStates = states.slice();\n            this.markRedraw();\n            if (!useHoverLayer && this.__inHover) {\n                this._toggleHoverLayerFlag(false);\n                this.__dirty &= ~Element.REDARAW_BIT;\n            }\n        }\n    };\n    Element.prototype._updateAnimationTargets = function () {\n        for (var i = 0; i < this.animators.length; i++) {\n            var animator = this.animators[i];\n            if (animator.targetName) {\n                animator.changeTarget(this[animator.targetName]);\n            }\n        }\n    };\n    Element.prototype.removeState = function (state) {\n        var idx = indexOf(this.currentStates, state);\n        if (idx >= 0) {\n            var currentStates = this.currentStates.slice();\n            currentStates.splice(idx, 1);\n            this.useStates(currentStates);\n        }\n    };\n    Element.prototype.replaceState = function (oldState, newState, forceAdd) {\n        var currentStates = this.currentStates.slice();\n        var idx = indexOf(currentStates, oldState);\n        var newStateExists = indexOf(currentStates, newState) >= 0;\n        if (idx >= 0) {\n            if (!newStateExists) {\n                currentStates[idx] = newState;\n            }\n            else {\n                currentStates.splice(idx, 1);\n            }\n        }\n        else if (forceAdd && !newStateExists) {\n            currentStates.push(newState);\n        }\n        this.useStates(currentStates);\n    };\n    Element.prototype.toggleState = function (state, enable) {\n        if (enable) {\n            this.useState(state, true);\n        }\n        else {\n            this.removeState(state);\n        }\n    };\n    Element.prototype._mergeStates = function (states) {\n        var mergedState = {};\n        var mergedTextConfig;\n        for (var i = 0; i < states.length; i++) {\n            var state = states[i];\n            extend(mergedState, state);\n            if (state.textConfig) {\n                mergedTextConfig = mergedTextConfig || {};\n                extend(mergedTextConfig, state.textConfig);\n            }\n        }\n        if (mergedTextConfig) {\n            mergedState.textConfig = mergedTextConfig;\n        }\n        return mergedState;\n    };\n    Element.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\n        var needsRestoreToNormal = !(state && keepCurrentStates);\n        if (state && state.textConfig) {\n            this.textConfig = extend({}, keepCurrentStates ? this.textConfig : normalState.textConfig);\n            extend(this.textConfig, state.textConfig);\n        }\n        else if (needsRestoreToNormal) {\n            if (normalState.textConfig) {\n                this.textConfig = normalState.textConfig;\n            }\n        }\n        var transitionTarget = {};\n        var hasTransition = false;\n        for (var i = 0; i < PRIMARY_STATES_KEYS.length; i++) {\n            var key = PRIMARY_STATES_KEYS[i];\n            var propNeedsTransition = transition && DEFAULT_ANIMATABLE_MAP[key];\n            if (state && state[key] != null) {\n                if (propNeedsTransition) {\n                    hasTransition = true;\n                    transitionTarget[key] = state[key];\n                }\n                else {\n                    this[key] = state[key];\n                }\n            }\n            else if (needsRestoreToNormal) {\n                if (normalState[key] != null) {\n                    if (propNeedsTransition) {\n                        hasTransition = true;\n                        transitionTarget[key] = normalState[key];\n                    }\n                    else {\n                        this[key] = normalState[key];\n                    }\n                }\n            }\n        }\n        if (!transition) {\n            for (var i = 0; i < this.animators.length; i++) {\n                var animator = this.animators[i];\n                var targetName = animator.targetName;\n                animator.__changeFinalValue(targetName\n                    ? (state || normalState)[targetName]\n                    : (state || normalState));\n            }\n        }\n        if (hasTransition) {\n            this._transitionState(stateName, transitionTarget, animationCfg);\n        }\n    };\n    Element.prototype._attachComponent = function (componentEl) {\n        if (componentEl.__zr && !componentEl.__hostTarget) {\n            throw new Error('Text element has been added to zrender.');\n        }\n        if (componentEl === this) {\n            throw new Error('Recursive component attachment.');\n        }\n        var zr = this.__zr;\n        if (zr) {\n            componentEl.addSelfToZr(zr);\n        }\n        componentEl.__zr = zr;\n        componentEl.__hostTarget = this;\n    };\n    Element.prototype._detachComponent = function (componentEl) {\n        if (componentEl.__zr) {\n            componentEl.removeSelfFromZr(componentEl.__zr);\n        }\n        componentEl.__zr = null;\n        componentEl.__hostTarget = null;\n    };\n    Element.prototype.getClipPath = function () {\n        return this._clipPath;\n    };\n    Element.prototype.setClipPath = function (clipPath) {\n        if (this._clipPath && this._clipPath !== clipPath) {\n            this.removeClipPath();\n        }\n        this._attachComponent(clipPath);\n        this._clipPath = clipPath;\n        this.markRedraw();\n    };\n    Element.prototype.removeClipPath = function () {\n        var clipPath = this._clipPath;\n        if (clipPath) {\n            this._detachComponent(clipPath);\n            this._clipPath = null;\n            this.markRedraw();\n        }\n    };\n    Element.prototype.getTextContent = function () {\n        return this._textContent;\n    };\n    Element.prototype.setTextContent = function (textEl) {\n        var previousTextContent = this._textContent;\n        if (previousTextContent === textEl) {\n            return;\n        }\n        if (previousTextContent && previousTextContent !== textEl) {\n            this.removeTextContent();\n        }\n        if (textEl.__zr && !textEl.__hostTarget) {\n            throw new Error('Text element has been added to zrender.');\n        }\n        textEl.attachedTransform = new Transformable();\n        this._attachComponent(textEl);\n        this._textContent = textEl;\n        this.markRedraw();\n    };\n    Element.prototype.setTextConfig = function (cfg) {\n        if (!this.textConfig) {\n            this.textConfig = {};\n        }\n        extend(this.textConfig, cfg);\n        this.markRedraw();\n    };\n    Element.prototype.removeTextContent = function () {\n        var textEl = this._textContent;\n        if (textEl) {\n            textEl.attachedTransform = null;\n            this._detachComponent(textEl);\n            this._textContent = null;\n            this._innerTextDefaultStyle = null;\n            this.markRedraw();\n        }\n    };\n    Element.prototype.getTextGuideLine = function () {\n        return this._textGuide;\n    };\n    Element.prototype.setTextGuideLine = function (guideLine) {\n        if (this._textGuide && this._textGuide !== guideLine) {\n            this.removeTextGuideLine();\n        }\n        this._attachComponent(guideLine);\n        this._textGuide = guideLine;\n        this.markRedraw();\n    };\n    Element.prototype.removeTextGuideLine = function () {\n        var textGuide = this._textGuide;\n        if (textGuide) {\n            this._detachComponent(textGuide);\n            this._textGuide = null;\n            this.markRedraw();\n        }\n    };\n    Element.prototype.markRedraw = function () {\n        this.__dirty |= Element.REDARAW_BIT;\n        var zr = this.__zr;\n        if (zr) {\n            if (this.__inHover) {\n                zr.refreshHover();\n            }\n            else {\n                zr.refresh();\n            }\n        }\n        if (this.__hostTarget) {\n            this.__hostTarget.markRedraw();\n        }\n    };\n    Element.prototype.dirty = function () {\n        this.markRedraw();\n    };\n    Element.prototype._toggleHoverLayerFlag = function (inHover) {\n        this.__inHover = inHover;\n        var textContent = this._textContent;\n        var textGuide = this._textGuide;\n        if (textContent) {\n            textContent.__inHover = inHover;\n        }\n        if (textGuide) {\n            textGuide.__inHover = inHover;\n        }\n    };\n    Element.prototype.addSelfToZr = function (zr) {\n        this.__zr = zr;\n        var animators = this.animators;\n        if (animators) {\n            for (var i = 0; i < animators.length; i++) {\n                zr.animation.addAnimator(animators[i]);\n            }\n        }\n        if (this._clipPath) {\n            this._clipPath.addSelfToZr(zr);\n        }\n        if (this._textContent) {\n            this._textContent.addSelfToZr(zr);\n        }\n        if (this._textGuide) {\n            this._textGuide.addSelfToZr(zr);\n        }\n    };\n    Element.prototype.removeSelfFromZr = function (zr) {\n        this.__zr = null;\n        var animators = this.animators;\n        if (animators) {\n            for (var i = 0; i < animators.length; i++) {\n                zr.animation.removeAnimator(animators[i]);\n            }\n        }\n        if (this._clipPath) {\n            this._clipPath.removeSelfFromZr(zr);\n        }\n        if (this._textContent) {\n            this._textContent.removeSelfFromZr(zr);\n        }\n        if (this._textGuide) {\n            this._textGuide.removeSelfFromZr(zr);\n        }\n    };\n    Element.prototype.animate = function (key, loop) {\n        var target = key ? this[key] : this;\n        if (!target) {\n            logError('Property \"'\n                + key\n                + '\" is not existed in element '\n                + this.id);\n            return;\n        }\n        var animator = new Animator(target, loop);\n        this.addAnimator(animator, key);\n        return animator;\n    };\n    Element.prototype.addAnimator = function (animator, key) {\n        var zr = this.__zr;\n        var el = this;\n        animator.during(function () {\n            el.updateDuringAnimation(key);\n        }).done(function () {\n            var animators = el.animators;\n            var idx = indexOf(animators, animator);\n            if (idx >= 0) {\n                animators.splice(idx, 1);\n            }\n        });\n        this.animators.push(animator);\n        if (zr) {\n            zr.animation.addAnimator(animator);\n        }\n        zr && zr.wakeUp();\n    };\n    Element.prototype.updateDuringAnimation = function (key) {\n        this.markRedraw();\n    };\n    Element.prototype.stopAnimation = function (scope, forwardToLast) {\n        var animators = this.animators;\n        var len = animators.length;\n        var leftAnimators = [];\n        for (var i = 0; i < len; i++) {\n            var animator = animators[i];\n            if (!scope || scope === animator.scope) {\n                animator.stop(forwardToLast);\n            }\n            else {\n                leftAnimators.push(animator);\n            }\n        }\n        this.animators = leftAnimators;\n        return this;\n    };\n    Element.prototype.animateTo = function (target, cfg, animationProps) {\n        animateTo(this, target, cfg, animationProps);\n    };\n    Element.prototype.animateFrom = function (target, cfg, animationProps) {\n        animateTo(this, target, cfg, animationProps, true);\n    };\n    Element.prototype._transitionState = function (stateName, target, cfg, animationProps) {\n        var animators = animateTo(this, target, cfg, animationProps);\n        for (var i = 0; i < animators.length; i++) {\n            animators[i].__fromStateTransition = stateName;\n        }\n    };\n    Element.prototype.getBoundingRect = function () {\n        return null;\n    };\n    Element.prototype.getPaintRect = function () {\n        return null;\n    };\n    Element.REDARAW_BIT = 1;\n    Element.initDefaultProps = (function () {\n        var elProto = Element.prototype;\n        elProto.type = 'element';\n        elProto.name = '';\n        elProto.ignore = false;\n        elProto.silent = false;\n        elProto.isGroup = false;\n        elProto.draggable = false;\n        elProto.dragging = false;\n        elProto.ignoreClip = false;\n        elProto.__inHover = false;\n        elProto.__dirty = Element.REDARAW_BIT;\n        var logs = {};\n        function logDeprecatedError(key, xKey, yKey) {\n            if (!logs[key + xKey + yKey]) {\n                console.warn(\"DEPRECATED: '\" + key + \"' has been deprecated. use '\" + xKey + \"', '\" + yKey + \"' instead\");\n                logs[key + xKey + yKey] = true;\n            }\n        }\n        function createLegacyProperty(key, privateKey, xKey, yKey) {\n            Object.defineProperty(elProto, key, {\n                get: function () {\n                    logDeprecatedError(key, xKey, yKey);\n                    if (!this[privateKey]) {\n                        var pos = this[privateKey] = [];\n                        enhanceArray(this, pos);\n                    }\n                    return this[privateKey];\n                },\n                set: function (pos) {\n                    logDeprecatedError(key, xKey, yKey);\n                    this[xKey] = pos[0];\n                    this[yKey] = pos[1];\n                    this[privateKey] = pos;\n                    enhanceArray(this, pos);\n                }\n            });\n            function enhanceArray(self, pos) {\n                Object.defineProperty(pos, 0, {\n                    get: function () {\n                        return self[xKey];\n                    },\n                    set: function (val) {\n                        self[xKey] = val;\n                    }\n                });\n                Object.defineProperty(pos, 1, {\n                    get: function () {\n                        return self[yKey];\n                    },\n                    set: function (val) {\n                        self[yKey] = val;\n                    }\n                });\n            }\n        }\n        if (Object.defineProperty && (!env.browser.ie || env.browser.version > 8)) {\n            createLegacyProperty('position', '_legacyPos', 'x', 'y');\n            createLegacyProperty('scale', '_legacyScale', 'scaleX', 'scaleY');\n            createLegacyProperty('origin', '_legacyOrigin', 'originX', 'originY');\n        }\n    })();\n    return Element;\n}());\nmixin(Element, Eventful);\nmixin(Element, Transformable);\nfunction animateTo(animatable, target, cfg, animationProps, reverse) {\n    cfg = cfg || {};\n    var animators = [];\n    animateToShallow(animatable, '', animatable, target, cfg, animationProps, animators, reverse);\n    var finishCount = animators.length;\n    var doneHappened = false;\n    var cfgDone = cfg.done;\n    var cfgAborted = cfg.aborted;\n    var doneCb = function () {\n        doneHappened = true;\n        finishCount--;\n        if (finishCount <= 0) {\n            doneHappened\n                ? (cfgDone && cfgDone())\n                : (cfgAborted && cfgAborted());\n        }\n    };\n    var abortedCb = function () {\n        finishCount--;\n        if (finishCount <= 0) {\n            doneHappened\n                ? (cfgDone && cfgDone())\n                : (cfgAborted && cfgAborted());\n        }\n    };\n    if (!finishCount) {\n        cfgDone && cfgDone();\n    }\n    if (animators.length > 0 && cfg.during) {\n        animators[0].during(function (target, percent) {\n            cfg.during(percent);\n        });\n    }\n    for (var i = 0; i < animators.length; i++) {\n        var animator = animators[i];\n        if (doneCb) {\n            animator.done(doneCb);\n        }\n        if (abortedCb) {\n            animator.aborted(abortedCb);\n        }\n        animator.start(cfg.easing, cfg.force);\n    }\n    return animators;\n}\nfunction copyArrShallow(source, target, len) {\n    for (var i = 0; i < len; i++) {\n        source[i] = target[i];\n    }\n}\nfunction is2DArray(value) {\n    return isArrayLike(value[0]);\n}\nfunction copyValue(target, source, key) {\n    if (isArrayLike(source[key])) {\n        if (!isArrayLike(target[key])) {\n            target[key] = [];\n        }\n        if (isTypedArray(source[key])) {\n            var len = source[key].length;\n            if (target[key].length !== len) {\n                target[key] = new (source[key].constructor)(len);\n                copyArrShallow(target[key], source[key], len);\n            }\n        }\n        else {\n            var sourceArr = source[key];\n            var targetArr = target[key];\n            var len0 = sourceArr.length;\n            if (is2DArray(sourceArr)) {\n                var len1 = sourceArr[0].length;\n                for (var i = 0; i < len0; i++) {\n                    if (!targetArr[i]) {\n                        targetArr[i] = Array.prototype.slice.call(sourceArr[i]);\n                    }\n                    else {\n                        copyArrShallow(targetArr[i], sourceArr[i], len1);\n                    }\n                }\n            }\n            else {\n                copyArrShallow(targetArr, sourceArr, len0);\n            }\n            targetArr.length = sourceArr.length;\n        }\n    }\n    else {\n        target[key] = source[key];\n    }\n}\nfunction animateToShallow(animatable, topKey, source, target, cfg, animationProps, animators, reverse) {\n    var animatableKeys = [];\n    var changedKeys = [];\n    var targetKeys = keys(target);\n    var duration = cfg.duration;\n    var delay = cfg.delay;\n    var additive = cfg.additive;\n    var setToFinal = cfg.setToFinal;\n    var animateAll = !isObject(animationProps);\n    for (var k = 0; k < targetKeys.length; k++) {\n        var innerKey = targetKeys[k];\n        if (source[innerKey] != null\n            && target[innerKey] != null\n            && (animateAll || animationProps[innerKey])) {\n            if (isObject(target[innerKey]) && !isArrayLike(target[innerKey])) {\n                if (topKey) {\n                    if (!reverse) {\n                        source[innerKey] = target[innerKey];\n                        animatable.updateDuringAnimation(topKey);\n                    }\n                    continue;\n                }\n                animateToShallow(animatable, innerKey, source[innerKey], target[innerKey], cfg, animationProps && animationProps[innerKey], animators, reverse);\n            }\n            else {\n                animatableKeys.push(innerKey);\n                changedKeys.push(innerKey);\n            }\n        }\n        else if (!reverse) {\n            source[innerKey] = target[innerKey];\n            animatable.updateDuringAnimation(topKey);\n            changedKeys.push(innerKey);\n        }\n    }\n    var keyLen = animatableKeys.length;\n    if (keyLen > 0\n        || (cfg.force && !animators.length)) {\n        var existsAnimators = animatable.animators;\n        var existsAnimatorsOnSameTarget = [];\n        for (var i = 0; i < existsAnimators.length; i++) {\n            if (existsAnimators[i].targetName === topKey) {\n                existsAnimatorsOnSameTarget.push(existsAnimators[i]);\n            }\n        }\n        if (!additive && existsAnimatorsOnSameTarget.length) {\n            for (var i = 0; i < existsAnimatorsOnSameTarget.length; i++) {\n                var allAborted = existsAnimatorsOnSameTarget[i].stopTracks(changedKeys);\n                if (allAborted) {\n                    var idx = indexOf(existsAnimators, existsAnimatorsOnSameTarget[i]);\n                    existsAnimators.splice(idx, 1);\n                }\n            }\n        }\n        var revertedSource = void 0;\n        var reversedTarget = void 0;\n        var sourceClone = void 0;\n        if (reverse) {\n            reversedTarget = {};\n            if (setToFinal) {\n                revertedSource = {};\n            }\n            for (var i = 0; i < keyLen; i++) {\n                var innerKey = animatableKeys[i];\n                reversedTarget[innerKey] = source[innerKey];\n                if (setToFinal) {\n                    revertedSource[innerKey] = target[innerKey];\n                }\n                else {\n                    source[innerKey] = target[innerKey];\n                }\n            }\n        }\n        else if (setToFinal) {\n            sourceClone = {};\n            for (var i = 0; i < keyLen; i++) {\n                var innerKey = animatableKeys[i];\n                sourceClone[innerKey] = cloneValue(source[innerKey]);\n                copyValue(source, target, innerKey);\n            }\n        }\n        var animator = new Animator(source, false, additive ? existsAnimatorsOnSameTarget : null);\n        animator.targetName = topKey;\n        if (cfg.scope) {\n            animator.scope = cfg.scope;\n        }\n        if (setToFinal && revertedSource) {\n            animator.whenWithKeys(0, revertedSource, animatableKeys);\n        }\n        if (sourceClone) {\n            animator.whenWithKeys(0, sourceClone, animatableKeys);\n        }\n        animator.whenWithKeys(duration == null ? 500 : duration, reverse ? reversedTarget : target, animatableKeys).delay(delay || 0);\n        animatable.addAnimator(animator, topKey);\n        animators.push(animator);\n    }\n}\nexport default Element;\n","var DEFAULT_MIN_MERGE = 32;\nvar DEFAULT_MIN_GALLOPING = 7;\nvar DEFAULT_TMP_STORAGE_LENGTH = 256;\nfunction minRunLength(n) {\n    var r = 0;\n    while (n >= DEFAULT_MIN_MERGE) {\n        r |= n & 1;\n        n >>= 1;\n    }\n    return n + r;\n}\nfunction makeAscendingRun(array, lo, hi, compare) {\n    var runHi = lo + 1;\n    if (runHi === hi) {\n        return 1;\n    }\n    if (compare(array[runHi++], array[lo]) < 0) {\n        while (runHi < hi && compare(array[runHi], array[runHi - 1]) < 0) {\n            runHi++;\n        }\n        reverseRun(array, lo, runHi);\n    }\n    else {\n        while (runHi < hi && compare(array[runHi], array[runHi - 1]) >= 0) {\n            runHi++;\n        }\n    }\n    return runHi - lo;\n}\nfunction reverseRun(array, lo, hi) {\n    hi--;\n    while (lo < hi) {\n        var t = array[lo];\n        array[lo++] = array[hi];\n        array[hi--] = t;\n    }\n}\nfunction binaryInsertionSort(array, lo, hi, start, compare) {\n    if (start === lo) {\n        start++;\n    }\n    for (; start < hi; start++) {\n        var pivot = array[start];\n        var left = lo;\n        var right = start;\n        var mid;\n        while (left < right) {\n            mid = left + right >>> 1;\n            if (compare(pivot, array[mid]) < 0) {\n                right = mid;\n            }\n            else {\n                left = mid + 1;\n            }\n        }\n        var n = start - left;\n        switch (n) {\n            case 3:\n                array[left + 3] = array[left + 2];\n            case 2:\n                array[left + 2] = array[left + 1];\n            case 1:\n                array[left + 1] = array[left];\n                break;\n            default:\n                while (n > 0) {\n                    array[left + n] = array[left + n - 1];\n                    n--;\n                }\n        }\n        array[left] = pivot;\n    }\n}\nfunction gallopLeft(value, array, start, length, hint, compare) {\n    var lastOffset = 0;\n    var maxOffset = 0;\n    var offset = 1;\n    if (compare(value, array[start + hint]) > 0) {\n        maxOffset = length - hint;\n        while (offset < maxOffset && compare(value, array[start + hint + offset]) > 0) {\n            lastOffset = offset;\n            offset = (offset << 1) + 1;\n            if (offset <= 0) {\n                offset = maxOffset;\n            }\n        }\n        if (offset > maxOffset) {\n            offset = maxOffset;\n        }\n        lastOffset += hint;\n        offset += hint;\n    }\n    else {\n        maxOffset = hint + 1;\n        while (offset < maxOffset && compare(value, array[start + hint - offset]) <= 0) {\n            lastOffset = offset;\n            offset = (offset << 1) + 1;\n            if (offset <= 0) {\n                offset = maxOffset;\n            }\n        }\n        if (offset > maxOffset) {\n            offset = maxOffset;\n        }\n        var tmp = lastOffset;\n        lastOffset = hint - offset;\n        offset = hint - tmp;\n    }\n    lastOffset++;\n    while (lastOffset < offset) {\n        var m = lastOffset + (offset - lastOffset >>> 1);\n        if (compare(value, array[start + m]) > 0) {\n            lastOffset = m + 1;\n        }\n        else {\n            offset = m;\n        }\n    }\n    return offset;\n}\nfunction gallopRight(value, array, start, length, hint, compare) {\n    var lastOffset = 0;\n    var maxOffset = 0;\n    var offset = 1;\n    if (compare(value, array[start + hint]) < 0) {\n        maxOffset = hint + 1;\n        while (offset < maxOffset && compare(value, array[start + hint - offset]) < 0) {\n            lastOffset = offset;\n            offset = (offset << 1) + 1;\n            if (offset <= 0) {\n                offset = maxOffset;\n            }\n        }\n        if (offset > maxOffset) {\n            offset = maxOffset;\n        }\n        var tmp = lastOffset;\n        lastOffset = hint - offset;\n        offset = hint - tmp;\n    }\n    else {\n        maxOffset = length - hint;\n        while (offset < maxOffset && compare(value, array[start + hint + offset]) >= 0) {\n            lastOffset = offset;\n            offset = (offset << 1) + 1;\n            if (offset <= 0) {\n                offset = maxOffset;\n            }\n        }\n        if (offset > maxOffset) {\n            offset = maxOffset;\n        }\n        lastOffset += hint;\n        offset += hint;\n    }\n    lastOffset++;\n    while (lastOffset < offset) {\n        var m = lastOffset + (offset - lastOffset >>> 1);\n        if (compare(value, array[start + m]) < 0) {\n            offset = m;\n        }\n        else {\n            lastOffset = m + 1;\n        }\n    }\n    return offset;\n}\nfunction TimSort(array, compare) {\n    var minGallop = DEFAULT_MIN_GALLOPING;\n    var length = 0;\n    var tmpStorageLength = DEFAULT_TMP_STORAGE_LENGTH;\n    var stackLength = 0;\n    var runStart;\n    var runLength;\n    var stackSize = 0;\n    length = array.length;\n    if (length < 2 * DEFAULT_TMP_STORAGE_LENGTH) {\n        tmpStorageLength = length >>> 1;\n    }\n    var tmp = [];\n    stackLength = length < 120 ? 5 : length < 1542 ? 10 : length < 119151 ? 19 : 40;\n    runStart = [];\n    runLength = [];\n    function pushRun(_runStart, _runLength) {\n        runStart[stackSize] = _runStart;\n        runLength[stackSize] = _runLength;\n        stackSize += 1;\n    }\n    function mergeRuns() {\n        while (stackSize > 1) {\n            var n = stackSize - 2;\n            if ((n >= 1 && runLength[n - 1] <= runLength[n] + runLength[n + 1])\n                || (n >= 2 && runLength[n - 2] <= runLength[n] + runLength[n - 1])) {\n                if (runLength[n - 1] < runLength[n + 1]) {\n                    n--;\n                }\n            }\n            else if (runLength[n] > runLength[n + 1]) {\n                break;\n            }\n            mergeAt(n);\n        }\n    }\n    function forceMergeRuns() {\n        while (stackSize > 1) {\n            var n = stackSize - 2;\n            if (n > 0 && runLength[n - 1] < runLength[n + 1]) {\n                n--;\n            }\n            mergeAt(n);\n        }\n    }\n    function mergeAt(i) {\n        var start1 = runStart[i];\n        var length1 = runLength[i];\n        var start2 = runStart[i + 1];\n        var length2 = runLength[i + 1];\n        runLength[i] = length1 + length2;\n        if (i === stackSize - 3) {\n            runStart[i + 1] = runStart[i + 2];\n            runLength[i + 1] = runLength[i + 2];\n        }\n        stackSize--;\n        var k = gallopRight(array[start2], array, start1, length1, 0, compare);\n        start1 += k;\n        length1 -= k;\n        if (length1 === 0) {\n            return;\n        }\n        length2 = gallopLeft(array[start1 + length1 - 1], array, start2, length2, length2 - 1, compare);\n        if (length2 === 0) {\n            return;\n        }\n        if (length1 <= length2) {\n            mergeLow(start1, length1, start2, length2);\n        }\n        else {\n            mergeHigh(start1, length1, start2, length2);\n        }\n    }\n    function mergeLow(start1, length1, start2, length2) {\n        var i = 0;\n        for (i = 0; i < length1; i++) {\n            tmp[i] = array[start1 + i];\n        }\n        var cursor1 = 0;\n        var cursor2 = start2;\n        var dest = start1;\n        array[dest++] = array[cursor2++];\n        if (--length2 === 0) {\n            for (i = 0; i < length1; i++) {\n                array[dest + i] = tmp[cursor1 + i];\n            }\n            return;\n        }\n        if (length1 === 1) {\n            for (i = 0; i < length2; i++) {\n                array[dest + i] = array[cursor2 + i];\n            }\n            array[dest + length2] = tmp[cursor1];\n            return;\n        }\n        var _minGallop = minGallop;\n        var count1;\n        var count2;\n        var exit;\n        while (1) {\n            count1 = 0;\n            count2 = 0;\n            exit = false;\n            do {\n                if (compare(array[cursor2], tmp[cursor1]) < 0) {\n                    array[dest++] = array[cursor2++];\n                    count2++;\n                    count1 = 0;\n                    if (--length2 === 0) {\n                        exit = true;\n                        break;\n                    }\n                }\n                else {\n                    array[dest++] = tmp[cursor1++];\n                    count1++;\n                    count2 = 0;\n                    if (--length1 === 1) {\n                        exit = true;\n                        break;\n                    }\n                }\n            } while ((count1 | count2) < _minGallop);\n            if (exit) {\n                break;\n            }\n            do {\n                count1 = gallopRight(array[cursor2], tmp, cursor1, length1, 0, compare);\n                if (count1 !== 0) {\n                    for (i = 0; i < count1; i++) {\n                        array[dest + i] = tmp[cursor1 + i];\n                    }\n                    dest += count1;\n                    cursor1 += count1;\n                    length1 -= count1;\n                    if (length1 <= 1) {\n                        exit = true;\n                        break;\n                    }\n                }\n                array[dest++] = array[cursor2++];\n                if (--length2 === 0) {\n                    exit = true;\n                    break;\n                }\n                count2 = gallopLeft(tmp[cursor1], array, cursor2, length2, 0, compare);\n                if (count2 !== 0) {\n                    for (i = 0; i < count2; i++) {\n                        array[dest + i] = array[cursor2 + i];\n                    }\n                    dest += count2;\n                    cursor2 += count2;\n                    length2 -= count2;\n                    if (length2 === 0) {\n                        exit = true;\n                        break;\n                    }\n                }\n                array[dest++] = tmp[cursor1++];\n                if (--length1 === 1) {\n                    exit = true;\n                    break;\n                }\n                _minGallop--;\n            } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\n            if (exit) {\n                break;\n            }\n            if (_minGallop < 0) {\n                _minGallop = 0;\n            }\n            _minGallop += 2;\n        }\n        minGallop = _minGallop;\n        minGallop < 1 && (minGallop = 1);\n        if (length1 === 1) {\n            for (i = 0; i < length2; i++) {\n                array[dest + i] = array[cursor2 + i];\n            }\n            array[dest + length2] = tmp[cursor1];\n        }\n        else if (length1 === 0) {\n            throw new Error();\n        }\n        else {\n            for (i = 0; i < length1; i++) {\n                array[dest + i] = tmp[cursor1 + i];\n            }\n        }\n    }\n    function mergeHigh(start1, length1, start2, length2) {\n        var i = 0;\n        for (i = 0; i < length2; i++) {\n            tmp[i] = array[start2 + i];\n        }\n        var cursor1 = start1 + length1 - 1;\n        var cursor2 = length2 - 1;\n        var dest = start2 + length2 - 1;\n        var customCursor = 0;\n        var customDest = 0;\n        array[dest--] = array[cursor1--];\n        if (--length1 === 0) {\n            customCursor = dest - (length2 - 1);\n            for (i = 0; i < length2; i++) {\n                array[customCursor + i] = tmp[i];\n            }\n            return;\n        }\n        if (length2 === 1) {\n            dest -= length1;\n            cursor1 -= length1;\n            customDest = dest + 1;\n            customCursor = cursor1 + 1;\n            for (i = length1 - 1; i >= 0; i--) {\n                array[customDest + i] = array[customCursor + i];\n            }\n            array[dest] = tmp[cursor2];\n            return;\n        }\n        var _minGallop = minGallop;\n        while (true) {\n            var count1 = 0;\n            var count2 = 0;\n            var exit = false;\n            do {\n                if (compare(tmp[cursor2], array[cursor1]) < 0) {\n                    array[dest--] = array[cursor1--];\n                    count1++;\n                    count2 = 0;\n                    if (--length1 === 0) {\n                        exit = true;\n                        break;\n                    }\n                }\n                else {\n                    array[dest--] = tmp[cursor2--];\n                    count2++;\n                    count1 = 0;\n                    if (--length2 === 1) {\n                        exit = true;\n                        break;\n                    }\n                }\n            } while ((count1 | count2) < _minGallop);\n            if (exit) {\n                break;\n            }\n            do {\n                count1 = length1 - gallopRight(tmp[cursor2], array, start1, length1, length1 - 1, compare);\n                if (count1 !== 0) {\n                    dest -= count1;\n                    cursor1 -= count1;\n                    length1 -= count1;\n                    customDest = dest + 1;\n                    customCursor = cursor1 + 1;\n                    for (i = count1 - 1; i >= 0; i--) {\n                        array[customDest + i] = array[customCursor + i];\n                    }\n                    if (length1 === 0) {\n                        exit = true;\n                        break;\n                    }\n                }\n                array[dest--] = tmp[cursor2--];\n                if (--length2 === 1) {\n                    exit = true;\n                    break;\n                }\n                count2 = length2 - gallopLeft(array[cursor1], tmp, 0, length2, length2 - 1, compare);\n                if (count2 !== 0) {\n                    dest -= count2;\n                    cursor2 -= count2;\n                    length2 -= count2;\n                    customDest = dest + 1;\n                    customCursor = cursor2 + 1;\n                    for (i = 0; i < count2; i++) {\n                        array[customDest + i] = tmp[customCursor + i];\n                    }\n                    if (length2 <= 1) {\n                        exit = true;\n                        break;\n                    }\n                }\n                array[dest--] = array[cursor1--];\n                if (--length1 === 0) {\n                    exit = true;\n                    break;\n                }\n                _minGallop--;\n            } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\n            if (exit) {\n                break;\n            }\n            if (_minGallop < 0) {\n                _minGallop = 0;\n            }\n            _minGallop += 2;\n        }\n        minGallop = _minGallop;\n        if (minGallop < 1) {\n            minGallop = 1;\n        }\n        if (length2 === 1) {\n            dest -= length1;\n            cursor1 -= length1;\n            customDest = dest + 1;\n            customCursor = cursor1 + 1;\n            for (i = length1 - 1; i >= 0; i--) {\n                array[customDest + i] = array[customCursor + i];\n            }\n            array[dest] = tmp[cursor2];\n        }\n        else if (length2 === 0) {\n            throw new Error();\n        }\n        else {\n            customCursor = dest - (length2 - 1);\n            for (i = 0; i < length2; i++) {\n                array[customCursor + i] = tmp[i];\n            }\n        }\n    }\n    return {\n        mergeRuns: mergeRuns,\n        forceMergeRuns: forceMergeRuns,\n        pushRun: pushRun\n    };\n}\nexport default function sort(array, compare, lo, hi) {\n    if (!lo) {\n        lo = 0;\n    }\n    if (!hi) {\n        hi = array.length;\n    }\n    var remaining = hi - lo;\n    if (remaining < 2) {\n        return;\n    }\n    var runLength = 0;\n    if (remaining < DEFAULT_MIN_MERGE) {\n        runLength = makeAscendingRun(array, lo, hi, compare);\n        binaryInsertionSort(array, lo, hi, lo + runLength, compare);\n        return;\n    }\n    var ts = TimSort(array, compare);\n    var minRun = minRunLength(remaining);\n    do {\n        runLength = makeAscendingRun(array, lo, hi, compare);\n        if (runLength < minRun) {\n            var force = remaining;\n            if (force > minRun) {\n                force = minRun;\n            }\n            binaryInsertionSort(array, lo, lo + force, lo + runLength, compare);\n            runLength = force;\n        }\n        ts.pushRun(lo, runLength);\n        ts.mergeRuns();\n        remaining -= runLength;\n        lo += runLength;\n    } while (remaining !== 0);\n    ts.forceMergeRuns();\n}\n","import * as util from './core/util';\nimport env from './core/env';\nimport Element from './Element';\nimport timsort from './core/timsort';\nvar invalidZErrorLogged = false;\nfunction logInvalidZError() {\n    if (invalidZErrorLogged) {\n        return;\n    }\n    invalidZErrorLogged = true;\n    console.warn('z / z2 / zlevel of displayable is invalid, which may cause unexpected errors');\n}\nfunction shapeCompareFunc(a, b) {\n    if (a.zlevel === b.zlevel) {\n        if (a.z === b.z) {\n            return a.z2 - b.z2;\n        }\n        return a.z - b.z;\n    }\n    return a.zlevel - b.zlevel;\n}\nvar Storage = (function () {\n    function Storage() {\n        this._roots = [];\n        this._displayList = [];\n        this._displayListLen = 0;\n        this.displayableSortFunc = shapeCompareFunc;\n    }\n    Storage.prototype.traverse = function (cb, context) {\n        for (var i = 0; i < this._roots.length; i++) {\n            this._roots[i].traverse(cb, context);\n        }\n    };\n    Storage.prototype.getDisplayList = function (update, includeIgnore) {\n        includeIgnore = includeIgnore || false;\n        var displayList = this._displayList;\n        if (update || !displayList.length) {\n            this.updateDisplayList(includeIgnore);\n        }\n        return displayList;\n    };\n    Storage.prototype.updateDisplayList = function (includeIgnore) {\n        this._displayListLen = 0;\n        var roots = this._roots;\n        var displayList = this._displayList;\n        for (var i = 0, len = roots.length; i < len; i++) {\n            this._updateAndAddDisplayable(roots[i], null, includeIgnore);\n        }\n        displayList.length = this._displayListLen;\n        env.canvasSupported && timsort(displayList, shapeCompareFunc);\n    };\n    Storage.prototype._updateAndAddDisplayable = function (el, clipPaths, includeIgnore) {\n        if (el.ignore && !includeIgnore) {\n            return;\n        }\n        el.beforeUpdate();\n        el.update();\n        el.afterUpdate();\n        var userSetClipPath = el.getClipPath();\n        if (el.ignoreClip) {\n            clipPaths = null;\n        }\n        else if (userSetClipPath) {\n            if (clipPaths) {\n                clipPaths = clipPaths.slice();\n            }\n            else {\n                clipPaths = [];\n            }\n            var currentClipPath = userSetClipPath;\n            var parentClipPath = el;\n            while (currentClipPath) {\n                currentClipPath.parent = parentClipPath;\n                currentClipPath.updateTransform();\n                clipPaths.push(currentClipPath);\n                parentClipPath = currentClipPath;\n                currentClipPath = currentClipPath.getClipPath();\n            }\n        }\n        if (el.childrenRef) {\n            var children = el.childrenRef();\n            for (var i = 0; i < children.length; i++) {\n                var child = children[i];\n                if (el.__dirty) {\n                    child.__dirty |= Element.REDARAW_BIT;\n                }\n                this._updateAndAddDisplayable(child, clipPaths, includeIgnore);\n            }\n            el.__dirty = 0;\n        }\n        else {\n            var disp = el;\n            if (clipPaths && clipPaths.length) {\n                disp.__clipPaths = clipPaths;\n            }\n            else if (disp.__clipPaths && disp.__clipPaths.length > 0) {\n                disp.__clipPaths = [];\n            }\n            if (isNaN(disp.z)) {\n                logInvalidZError();\n                disp.z = 0;\n            }\n            if (isNaN(disp.z2)) {\n                logInvalidZError();\n                disp.z2 = 0;\n            }\n            if (isNaN(disp.zlevel)) {\n                logInvalidZError();\n                disp.zlevel = 0;\n            }\n            this._displayList[this._displayListLen++] = disp;\n        }\n        var decalEl = el.getDecalElement && el.getDecalElement();\n        if (decalEl) {\n            this._updateAndAddDisplayable(decalEl, clipPaths, includeIgnore);\n        }\n        var textGuide = el.getTextGuideLine();\n        if (textGuide) {\n            this._updateAndAddDisplayable(textGuide, clipPaths, includeIgnore);\n        }\n        var textEl = el.getTextContent();\n        if (textEl) {\n            this._updateAndAddDisplayable(textEl, clipPaths, includeIgnore);\n        }\n    };\n    Storage.prototype.addRoot = function (el) {\n        if (el.__zr && el.__zr.storage === this) {\n            return;\n        }\n        this._roots.push(el);\n    };\n    Storage.prototype.delRoot = function (el) {\n        if (el instanceof Array) {\n            for (var i = 0, l = el.length; i < l; i++) {\n                this.delRoot(el[i]);\n            }\n            return;\n        }\n        var idx = util.indexOf(this._roots, el);\n        if (idx >= 0) {\n            this._roots.splice(idx, 1);\n        }\n    };\n    Storage.prototype.delAllRoots = function () {\n        this._roots = [];\n        this._displayList = [];\n        this._displayListLen = 0;\n        return;\n    };\n    Storage.prototype.getRoots = function () {\n        return this._roots;\n    };\n    Storage.prototype.dispose = function () {\n        this._displayList = null;\n        this._roots = null;\n    };\n    return Storage;\n}());\nexport default Storage;\n","var requestAnimationFrame;\nrequestAnimationFrame = (typeof window !== 'undefined'\n    && ((window.requestAnimationFrame && window.requestAnimationFrame.bind(window))\n        || (window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window))\n        || window.mozRequestAnimationFrame\n        || window.webkitRequestAnimationFrame)) || function (func) {\n    return setTimeout(func, 16);\n};\nexport default requestAnimationFrame;\n","import { __extends } from \"tslib\";\nimport Eventful from '../core/Eventful';\nimport requestAnimationFrame from './requestAnimationFrame';\nimport Animator from './Animator';\nvar Animation = (function (_super) {\n    __extends(Animation, _super);\n    function Animation(opts) {\n        var _this = _super.call(this) || this;\n        _this._running = false;\n        _this._time = 0;\n        _this._pausedTime = 0;\n        _this._pauseStart = 0;\n        _this._paused = false;\n        opts = opts || {};\n        _this.stage = opts.stage || {};\n        _this.onframe = opts.onframe || function () { };\n        return _this;\n    }\n    Animation.prototype.addClip = function (clip) {\n        if (clip.animation) {\n            this.removeClip(clip);\n        }\n        if (!this._clipsHead) {\n            this._clipsHead = this._clipsTail = clip;\n        }\n        else {\n            this._clipsTail.next = clip;\n            clip.prev = this._clipsTail;\n            clip.next = null;\n            this._clipsTail = clip;\n        }\n        clip.animation = this;\n    };\n    Animation.prototype.addAnimator = function (animator) {\n        animator.animation = this;\n        var clip = animator.getClip();\n        if (clip) {\n            this.addClip(clip);\n        }\n    };\n    Animation.prototype.removeClip = function (clip) {\n        if (!clip.animation) {\n            return;\n        }\n        var prev = clip.prev;\n        var next = clip.next;\n        if (prev) {\n            prev.next = next;\n        }\n        else {\n            this._clipsHead = next;\n        }\n        if (next) {\n            next.prev = prev;\n        }\n        else {\n            this._clipsTail = prev;\n        }\n        clip.next = clip.prev = clip.animation = null;\n    };\n    Animation.prototype.removeAnimator = function (animator) {\n        var clip = animator.getClip();\n        if (clip) {\n            this.removeClip(clip);\n        }\n        animator.animation = null;\n    };\n    Animation.prototype.update = function (notTriggerFrameAndStageUpdate) {\n        var time = new Date().getTime() - this._pausedTime;\n        var delta = time - this._time;\n        var clip = this._clipsHead;\n        while (clip) {\n            var nextClip = clip.next;\n            var finished = clip.step(time, delta);\n            if (finished) {\n                clip.ondestroy && clip.ondestroy();\n                this.removeClip(clip);\n                clip = nextClip;\n            }\n            else {\n                clip = nextClip;\n            }\n        }\n        this._time = time;\n        if (!notTriggerFrameAndStageUpdate) {\n            this.onframe(delta);\n            this.trigger('frame', delta);\n            this.stage.update && this.stage.update();\n        }\n    };\n    Animation.prototype._startLoop = function () {\n        var self = this;\n        this._running = true;\n        function step() {\n            if (self._running) {\n                requestAnimationFrame(step);\n                !self._paused && self.update();\n            }\n        }\n        requestAnimationFrame(step);\n    };\n    Animation.prototype.start = function () {\n        if (this._running) {\n            return;\n        }\n        this._time = new Date().getTime();\n        this._pausedTime = 0;\n        this._startLoop();\n    };\n    Animation.prototype.stop = function () {\n        this._running = false;\n    };\n    Animation.prototype.pause = function () {\n        if (!this._paused) {\n            this._pauseStart = new Date().getTime();\n            this._paused = true;\n        }\n    };\n    Animation.prototype.resume = function () {\n        if (this._paused) {\n            this._pausedTime += (new Date().getTime()) - this._pauseStart;\n            this._paused = false;\n        }\n    };\n    Animation.prototype.clear = function () {\n        var clip = this._clipsHead;\n        while (clip) {\n            var nextClip = clip.next;\n            clip.prev = clip.next = clip.animation = null;\n            clip = nextClip;\n        }\n        this._clipsHead = this._clipsTail = null;\n    };\n    Animation.prototype.isFinished = function () {\n        return this._clipsHead == null;\n    };\n    Animation.prototype.animate = function (target, options) {\n        options = options || {};\n        this.start();\n        var animator = new Animator(target, options.loop);\n        this.addAnimator(animator);\n        return animator;\n    };\n    return Animation;\n}(Eventful));\nexport default Animation;\n","import { __extends } from \"tslib\";\nimport { addEventListener, removeEventListener, normalizeEvent, getNativeEvent } from '../core/event';\nimport * as zrUtil from '../core/util';\nimport Eventful from '../core/Eventful';\nimport env from '../core/env';\nvar TOUCH_CLICK_DELAY = 300;\nvar globalEventSupported = env.domSupported;\nvar localNativeListenerNames = (function () {\n    var mouseHandlerNames = [\n        'click', 'dblclick', 'mousewheel', 'wheel', 'mouseout',\n        'mouseup', 'mousedown', 'mousemove', 'contextmenu'\n    ];\n    var touchHandlerNames = [\n        'touchstart', 'touchend', 'touchmove'\n    ];\n    var pointerEventNameMap = {\n        pointerdown: 1, pointerup: 1, pointermove: 1, pointerout: 1\n    };\n    var pointerHandlerNames = zrUtil.map(mouseHandlerNames, function (name) {\n        var nm = name.replace('mouse', 'pointer');\n        return pointerEventNameMap.hasOwnProperty(nm) ? nm : name;\n    });\n    return {\n        mouse: mouseHandlerNames,\n        touch: touchHandlerNames,\n        pointer: pointerHandlerNames\n    };\n})();\nvar globalNativeListenerNames = {\n    mouse: ['mousemove', 'mouseup'],\n    pointer: ['pointermove', 'pointerup']\n};\nvar wheelEventSupported = false;\nfunction isPointerFromTouch(event) {\n    var pointerType = event.pointerType;\n    return pointerType === 'pen' || pointerType === 'touch';\n}\nfunction setTouchTimer(scope) {\n    scope.touching = true;\n    if (scope.touchTimer != null) {\n        clearTimeout(scope.touchTimer);\n        scope.touchTimer = null;\n    }\n    scope.touchTimer = setTimeout(function () {\n        scope.touching = false;\n        scope.touchTimer = null;\n    }, 700);\n}\nfunction markTouch(event) {\n    event && (event.zrByTouch = true);\n}\nfunction normalizeGlobalEvent(instance, event) {\n    return normalizeEvent(instance.dom, new FakeGlobalEvent(instance, event), true);\n}\nfunction isLocalEl(instance, el) {\n    var elTmp = el;\n    var isLocal = false;\n    while (elTmp && elTmp.nodeType !== 9\n        && !(isLocal = elTmp.domBelongToZr\n            || (elTmp !== el && elTmp === instance.painterRoot))) {\n        elTmp = elTmp.parentNode;\n    }\n    return isLocal;\n}\nvar FakeGlobalEvent = (function () {\n    function FakeGlobalEvent(instance, event) {\n        this.stopPropagation = zrUtil.noop;\n        this.stopImmediatePropagation = zrUtil.noop;\n        this.preventDefault = zrUtil.noop;\n        this.type = event.type;\n        this.target = this.currentTarget = instance.dom;\n        this.pointerType = event.pointerType;\n        this.clientX = event.clientX;\n        this.clientY = event.clientY;\n    }\n    return FakeGlobalEvent;\n}());\nvar localDOMHandlers = {\n    mousedown: function (event) {\n        event = normalizeEvent(this.dom, event);\n        this.__mayPointerCapture = [event.zrX, event.zrY];\n        this.trigger('mousedown', event);\n    },\n    mousemove: function (event) {\n        event = normalizeEvent(this.dom, event);\n        var downPoint = this.__mayPointerCapture;\n        if (downPoint && (event.zrX !== downPoint[0] || event.zrY !== downPoint[1])) {\n            this.__togglePointerCapture(true);\n        }\n        this.trigger('mousemove', event);\n    },\n    mouseup: function (event) {\n        event = normalizeEvent(this.dom, event);\n        this.__togglePointerCapture(false);\n        this.trigger('mouseup', event);\n    },\n    mouseout: function (event) {\n        event = normalizeEvent(this.dom, event);\n        var element = event.toElement || event.relatedTarget;\n        if (!isLocalEl(this, element)) {\n            if (this.__pointerCapturing) {\n                event.zrEventControl = 'no_globalout';\n            }\n            this.trigger('mouseout', event);\n        }\n    },\n    wheel: function (event) {\n        wheelEventSupported = true;\n        event = normalizeEvent(this.dom, event);\n        this.trigger('mousewheel', event);\n    },\n    mousewheel: function (event) {\n        if (wheelEventSupported) {\n            return;\n        }\n        event = normalizeEvent(this.dom, event);\n        this.trigger('mousewheel', event);\n    },\n    touchstart: function (event) {\n        event = normalizeEvent(this.dom, event);\n        markTouch(event);\n        this.__lastTouchMoment = new Date();\n        this.handler.processGesture(event, 'start');\n        localDOMHandlers.mousemove.call(this, event);\n        localDOMHandlers.mousedown.call(this, event);\n    },\n    touchmove: function (event) {\n        event = normalizeEvent(this.dom, event);\n        markTouch(event);\n        this.handler.processGesture(event, 'change');\n        localDOMHandlers.mousemove.call(this, event);\n    },\n    touchend: function (event) {\n        event = normalizeEvent(this.dom, event);\n        markTouch(event);\n        this.handler.processGesture(event, 'end');\n        localDOMHandlers.mouseup.call(this, event);\n        if (+new Date() - (+this.__lastTouchMoment) < TOUCH_CLICK_DELAY) {\n            localDOMHandlers.click.call(this, event);\n        }\n    },\n    pointerdown: function (event) {\n        localDOMHandlers.mousedown.call(this, event);\n    },\n    pointermove: function (event) {\n        if (!isPointerFromTouch(event)) {\n            localDOMHandlers.mousemove.call(this, event);\n        }\n    },\n    pointerup: function (event) {\n        localDOMHandlers.mouseup.call(this, event);\n    },\n    pointerout: function (event) {\n        if (!isPointerFromTouch(event)) {\n            localDOMHandlers.mouseout.call(this, event);\n        }\n    }\n};\nzrUtil.each(['click', 'dblclick', 'contextmenu'], function (name) {\n    localDOMHandlers[name] = function (event) {\n        event = normalizeEvent(this.dom, event);\n        this.trigger(name, event);\n    };\n});\nvar globalDOMHandlers = {\n    pointermove: function (event) {\n        if (!isPointerFromTouch(event)) {\n            globalDOMHandlers.mousemove.call(this, event);\n        }\n    },\n    pointerup: function (event) {\n        globalDOMHandlers.mouseup.call(this, event);\n    },\n    mousemove: function (event) {\n        this.trigger('mousemove', event);\n    },\n    mouseup: function (event) {\n        var pointerCaptureReleasing = this.__pointerCapturing;\n        this.__togglePointerCapture(false);\n        this.trigger('mouseup', event);\n        if (pointerCaptureReleasing) {\n            event.zrEventControl = 'only_globalout';\n            this.trigger('mouseout', event);\n        }\n    }\n};\nfunction mountLocalDOMEventListeners(instance, scope) {\n    var domHandlers = scope.domHandlers;\n    if (env.pointerEventsSupported) {\n        zrUtil.each(localNativeListenerNames.pointer, function (nativeEventName) {\n            mountSingleDOMEventListener(scope, nativeEventName, function (event) {\n                domHandlers[nativeEventName].call(instance, event);\n            });\n        });\n    }\n    else {\n        if (env.touchEventsSupported) {\n            zrUtil.each(localNativeListenerNames.touch, function (nativeEventName) {\n                mountSingleDOMEventListener(scope, nativeEventName, function (event) {\n                    domHandlers[nativeEventName].call(instance, event);\n                    setTouchTimer(scope);\n                });\n            });\n        }\n        zrUtil.each(localNativeListenerNames.mouse, function (nativeEventName) {\n            mountSingleDOMEventListener(scope, nativeEventName, function (event) {\n                event = getNativeEvent(event);\n                if (!scope.touching) {\n                    domHandlers[nativeEventName].call(instance, event);\n                }\n            });\n        });\n    }\n}\nfunction mountGlobalDOMEventListeners(instance, scope) {\n    if (env.pointerEventsSupported) {\n        zrUtil.each(globalNativeListenerNames.pointer, mount);\n    }\n    else if (!env.touchEventsSupported) {\n        zrUtil.each(globalNativeListenerNames.mouse, mount);\n    }\n    function mount(nativeEventName) {\n        function nativeEventListener(event) {\n            event = getNativeEvent(event);\n            if (!isLocalEl(instance, event.target)) {\n                event = normalizeGlobalEvent(instance, event);\n                scope.domHandlers[nativeEventName].call(instance, event);\n            }\n        }\n        mountSingleDOMEventListener(scope, nativeEventName, nativeEventListener, { capture: true });\n    }\n}\nfunction mountSingleDOMEventListener(scope, nativeEventName, listener, opt) {\n    scope.mounted[nativeEventName] = listener;\n    scope.listenerOpts[nativeEventName] = opt;\n    addEventListener(scope.domTarget, nativeEventName, listener, opt);\n}\nfunction unmountDOMEventListeners(scope) {\n    var mounted = scope.mounted;\n    for (var nativeEventName in mounted) {\n        if (mounted.hasOwnProperty(nativeEventName)) {\n            removeEventListener(scope.domTarget, nativeEventName, mounted[nativeEventName], scope.listenerOpts[nativeEventName]);\n        }\n    }\n    scope.mounted = {};\n}\nvar DOMHandlerScope = (function () {\n    function DOMHandlerScope(domTarget, domHandlers) {\n        this.mounted = {};\n        this.listenerOpts = {};\n        this.touching = false;\n        this.domTarget = domTarget;\n        this.domHandlers = domHandlers;\n    }\n    return DOMHandlerScope;\n}());\nvar HandlerDomProxy = (function (_super) {\n    __extends(HandlerDomProxy, _super);\n    function HandlerDomProxy(dom, painterRoot) {\n        var _this = _super.call(this) || this;\n        _this.__pointerCapturing = false;\n        _this.dom = dom;\n        _this.painterRoot = painterRoot;\n        _this._localHandlerScope = new DOMHandlerScope(dom, localDOMHandlers);\n        if (globalEventSupported) {\n            _this._globalHandlerScope = new DOMHandlerScope(document, globalDOMHandlers);\n        }\n        mountLocalDOMEventListeners(_this, _this._localHandlerScope);\n        return _this;\n    }\n    HandlerDomProxy.prototype.dispose = function () {\n        unmountDOMEventListeners(this._localHandlerScope);\n        if (globalEventSupported) {\n            unmountDOMEventListeners(this._globalHandlerScope);\n        }\n    };\n    HandlerDomProxy.prototype.setCursor = function (cursorStyle) {\n        this.dom.style && (this.dom.style.cursor = cursorStyle || 'default');\n    };\n    HandlerDomProxy.prototype.__togglePointerCapture = function (isPointerCapturing) {\n        this.__mayPointerCapture = null;\n        if (globalEventSupported\n            && ((+this.__pointerCapturing) ^ (+isPointerCapturing))) {\n            this.__pointerCapturing = isPointerCapturing;\n            var globalHandlerScope = this._globalHandlerScope;\n            isPointerCapturing\n                ? mountGlobalDOMEventListeners(this, globalHandlerScope)\n                : unmountDOMEventListeners(globalHandlerScope);\n        }\n    };\n    return HandlerDomProxy;\n}(Eventful));\nexport default HandlerDomProxy;\n","import { __extends } from \"tslib\";\nimport * as zrUtil from '../core/util';\nimport Element from '../Element';\nimport BoundingRect from '../core/BoundingRect';\nvar Group = (function (_super) {\n    __extends(Group, _super);\n    function Group(opts) {\n        var _this = _super.call(this) || this;\n        _this.isGroup = true;\n        _this._children = [];\n        _this.attr(opts);\n        return _this;\n    }\n    Group.prototype.childrenRef = function () {\n        return this._children;\n    };\n    Group.prototype.children = function () {\n        return this._children.slice();\n    };\n    Group.prototype.childAt = function (idx) {\n        return this._children[idx];\n    };\n    Group.prototype.childOfName = function (name) {\n        var children = this._children;\n        for (var i = 0; i < children.length; i++) {\n            if (children[i].name === name) {\n                return children[i];\n            }\n        }\n    };\n    Group.prototype.childCount = function () {\n        return this._children.length;\n    };\n    Group.prototype.add = function (child) {\n        if (child) {\n            if (child !== this && child.parent !== this) {\n                this._children.push(child);\n                this._doAdd(child);\n            }\n            if (child.__hostTarget) {\n                throw 'This elemenet has been used as an attachment';\n            }\n        }\n        return this;\n    };\n    Group.prototype.addBefore = function (child, nextSibling) {\n        if (child && child !== this && child.parent !== this\n            && nextSibling && nextSibling.parent === this) {\n            var children = this._children;\n            var idx = children.indexOf(nextSibling);\n            if (idx >= 0) {\n                children.splice(idx, 0, child);\n                this._doAdd(child);\n            }\n        }\n        return this;\n    };\n    Group.prototype.replaceAt = function (child, index) {\n        var children = this._children;\n        var old = children[index];\n        if (child && child !== this && child.parent !== this && child !== old) {\n            children[index] = child;\n            old.parent = null;\n            var zr = this.__zr;\n            if (zr) {\n                old.removeSelfFromZr(zr);\n            }\n            this._doAdd(child);\n        }\n        return this;\n    };\n    Group.prototype._doAdd = function (child) {\n        if (child.parent) {\n            child.parent.remove(child);\n        }\n        child.parent = this;\n        var zr = this.__zr;\n        if (zr && zr !== child.__zr) {\n            child.addSelfToZr(zr);\n        }\n        zr && zr.refresh();\n    };\n    Group.prototype.remove = function (child) {\n        var zr = this.__zr;\n        var children = this._children;\n        var idx = zrUtil.indexOf(children, child);\n        if (idx < 0) {\n            return this;\n        }\n        children.splice(idx, 1);\n        child.parent = null;\n        if (zr) {\n            child.removeSelfFromZr(zr);\n        }\n        zr && zr.refresh();\n        return this;\n    };\n    Group.prototype.removeAll = function () {\n        var children = this._children;\n        var zr = this.__zr;\n        for (var i = 0; i < children.length; i++) {\n            var child = children[i];\n            if (zr) {\n                child.removeSelfFromZr(zr);\n            }\n            child.parent = null;\n        }\n        children.length = 0;\n        return this;\n    };\n    Group.prototype.eachChild = function (cb, context) {\n        var children = this._children;\n        for (var i = 0; i < children.length; i++) {\n            var child = children[i];\n            cb.call(context, child, i);\n        }\n        return this;\n    };\n    Group.prototype.traverse = function (cb, context) {\n        for (var i = 0; i < this._children.length; i++) {\n            var child = this._children[i];\n            var stopped = cb.call(context, child);\n            if (child.isGroup && !stopped) {\n                child.traverse(cb, context);\n            }\n        }\n        return this;\n    };\n    Group.prototype.addSelfToZr = function (zr) {\n        _super.prototype.addSelfToZr.call(this, zr);\n        for (var i = 0; i < this._children.length; i++) {\n            var child = this._children[i];\n            child.addSelfToZr(zr);\n        }\n    };\n    Group.prototype.removeSelfFromZr = function (zr) {\n        _super.prototype.removeSelfFromZr.call(this, zr);\n        for (var i = 0; i < this._children.length; i++) {\n            var child = this._children[i];\n            child.removeSelfFromZr(zr);\n        }\n    };\n    Group.prototype.getBoundingRect = function (includeChildren) {\n        var tmpRect = new BoundingRect(0, 0, 0, 0);\n        var children = includeChildren || this._children;\n        var tmpMat = [];\n        var rect = null;\n        for (var i = 0; i < children.length; i++) {\n            var child = children[i];\n            if (child.ignore || child.invisible) {\n                continue;\n            }\n            var childRect = child.getBoundingRect();\n            var transform = child.getLocalTransform(tmpMat);\n            if (transform) {\n                BoundingRect.applyTransform(tmpRect, childRect, transform);\n                rect = rect || tmpRect.clone();\n                rect.union(tmpRect);\n            }\n            else {\n                rect = rect || childRect.clone();\n                rect.union(childRect);\n            }\n        }\n        return rect || tmpRect;\n    };\n    return Group;\n}(Element));\nGroup.prototype.type = 'group';\nexport default Group;\n","/*!\n* ZRender, a high performance 2d drawing library.\n*\n* Copyright (c) 2013, Baidu Inc.\n* All rights reserved.\n*\n* LICENSE\n* https://github.com/ecomfe/zrender/blob/master/LICENSE.txt\n*/\nimport env from './core/env';\nimport * as zrUtil from './core/util';\nimport Handler from './Handler';\nimport Storage from './Storage';\nimport Animation from './animation/Animation';\nimport HandlerProxy from './dom/HandlerProxy';\nimport { lum } from './tool/color';\nimport { DARK_MODE_THRESHOLD } from './config';\nimport Group from './graphic/Group';\nvar useVML = !env.canvasSupported;\nvar painterCtors = {};\nvar instances = {};\nfunction delInstance(id) {\n    delete instances[id];\n}\nfunction isDarkMode(backgroundColor) {\n    if (!backgroundColor) {\n        return false;\n    }\n    if (typeof backgroundColor === 'string') {\n        return lum(backgroundColor, 1) < DARK_MODE_THRESHOLD;\n    }\n    else if (backgroundColor.colorStops) {\n        var colorStops = backgroundColor.colorStops;\n        var totalLum = 0;\n        var len = colorStops.length;\n        for (var i = 0; i < len; i++) {\n            totalLum += lum(colorStops[i].color, 1);\n        }\n        totalLum /= len;\n        return totalLum < DARK_MODE_THRESHOLD;\n    }\n    return false;\n}\nvar ZRender = (function () {\n    function ZRender(id, dom, opts) {\n        var _this = this;\n        this._sleepAfterStill = 10;\n        this._stillFrameAccum = 0;\n        this._needsRefresh = true;\n        this._needsRefreshHover = true;\n        this._darkMode = false;\n        opts = opts || {};\n        this.dom = dom;\n        this.id = id;\n        var storage = new Storage();\n        var rendererType = opts.renderer || 'canvas';\n        if (useVML) {\n            throw new Error('IE8 support has been dropped since 5.0');\n        }\n        if (!painterCtors[rendererType]) {\n            rendererType = zrUtil.keys(painterCtors)[0];\n        }\n        if (!painterCtors[rendererType]) {\n            throw new Error(\"Renderer '\" + rendererType + \"' is not imported. Please import it first.\");\n        }\n        opts.useDirtyRect = opts.useDirtyRect == null\n            ? false\n            : opts.useDirtyRect;\n        var painter = new painterCtors[rendererType](dom, storage, opts, id);\n        this.storage = storage;\n        this.painter = painter;\n        var handerProxy = (!env.node && !env.worker)\n            ? new HandlerProxy(painter.getViewportRoot(), painter.root)\n            : null;\n        this.handler = new Handler(storage, painter, handerProxy, painter.root);\n        this.animation = new Animation({\n            stage: {\n                update: function () { return _this._flush(true); }\n            }\n        });\n        this.animation.start();\n    }\n    ZRender.prototype.add = function (el) {\n        if (!el) {\n            return;\n        }\n        this.storage.addRoot(el);\n        el.addSelfToZr(this);\n        this.refresh();\n    };\n    ZRender.prototype.remove = function (el) {\n        if (!el) {\n            return;\n        }\n        this.storage.delRoot(el);\n        el.removeSelfFromZr(this);\n        this.refresh();\n    };\n    ZRender.prototype.configLayer = function (zLevel, config) {\n        if (this.painter.configLayer) {\n            this.painter.configLayer(zLevel, config);\n        }\n        this.refresh();\n    };\n    ZRender.prototype.setBackgroundColor = function (backgroundColor) {\n        if (this.painter.setBackgroundColor) {\n            this.painter.setBackgroundColor(backgroundColor);\n        }\n        this.refresh();\n        this._backgroundColor = backgroundColor;\n        this._darkMode = isDarkMode(backgroundColor);\n    };\n    ZRender.prototype.getBackgroundColor = function () {\n        return this._backgroundColor;\n    };\n    ZRender.prototype.setDarkMode = function (darkMode) {\n        this._darkMode = darkMode;\n    };\n    ZRender.prototype.isDarkMode = function () {\n        return this._darkMode;\n    };\n    ZRender.prototype.refreshImmediately = function (fromInside) {\n        if (!fromInside) {\n            this.animation.update(true);\n        }\n        this._needsRefresh = false;\n        this.painter.refresh();\n        this._needsRefresh = false;\n    };\n    ZRender.prototype.refresh = function () {\n        this._needsRefresh = true;\n        this.animation.start();\n    };\n    ZRender.prototype.flush = function () {\n        this._flush(false);\n    };\n    ZRender.prototype._flush = function (fromInside) {\n        var triggerRendered;\n        var start = new Date().getTime();\n        if (this._needsRefresh) {\n            triggerRendered = true;\n            this.refreshImmediately(fromInside);\n        }\n        if (this._needsRefreshHover) {\n            triggerRendered = true;\n            this.refreshHoverImmediately();\n        }\n        var end = new Date().getTime();\n        if (triggerRendered) {\n            this._stillFrameAccum = 0;\n            this.trigger('rendered', {\n                elapsedTime: end - start\n            });\n        }\n        else if (this._sleepAfterStill > 0) {\n            this._stillFrameAccum++;\n            if (this._stillFrameAccum > this._sleepAfterStill) {\n                this.animation.stop();\n            }\n        }\n    };\n    ZRender.prototype.setSleepAfterStill = function (stillFramesCount) {\n        this._sleepAfterStill = stillFramesCount;\n    };\n    ZRender.prototype.wakeUp = function () {\n        this.animation.start();\n        this._stillFrameAccum = 0;\n    };\n    ZRender.prototype.addHover = function (el) {\n    };\n    ZRender.prototype.removeHover = function (el) {\n    };\n    ZRender.prototype.clearHover = function () {\n    };\n    ZRender.prototype.refreshHover = function () {\n        this._needsRefreshHover = true;\n    };\n    ZRender.prototype.refreshHoverImmediately = function () {\n        this._needsRefreshHover = false;\n        if (this.painter.refreshHover && this.painter.getType() === 'canvas') {\n            this.painter.refreshHover();\n        }\n    };\n    ZRender.prototype.resize = function (opts) {\n        opts = opts || {};\n        this.painter.resize(opts.width, opts.height);\n        this.handler.resize();\n    };\n    ZRender.prototype.clearAnimation = function () {\n        this.animation.clear();\n    };\n    ZRender.prototype.getWidth = function () {\n        return this.painter.getWidth();\n    };\n    ZRender.prototype.getHeight = function () {\n        return this.painter.getHeight();\n    };\n    ZRender.prototype.pathToImage = function (e, dpr) {\n        if (this.painter.pathToImage) {\n            return this.painter.pathToImage(e, dpr);\n        }\n    };\n    ZRender.prototype.setCursorStyle = function (cursorStyle) {\n        this.handler.setCursorStyle(cursorStyle);\n    };\n    ZRender.prototype.findHover = function (x, y) {\n        return this.handler.findHover(x, y);\n    };\n    ZRender.prototype.on = function (eventName, eventHandler, context) {\n        this.handler.on(eventName, eventHandler, context);\n        return this;\n    };\n    ZRender.prototype.off = function (eventName, eventHandler) {\n        this.handler.off(eventName, eventHandler);\n    };\n    ZRender.prototype.trigger = function (eventName, event) {\n        this.handler.trigger(eventName, event);\n    };\n    ZRender.prototype.clear = function () {\n        var roots = this.storage.getRoots();\n        for (var i = 0; i < roots.length; i++) {\n            if (roots[i] instanceof Group) {\n                roots[i].removeSelfFromZr(this);\n            }\n        }\n        this.storage.delAllRoots();\n        this.painter.clear();\n    };\n    ZRender.prototype.dispose = function () {\n        this.animation.stop();\n        this.clear();\n        this.storage.dispose();\n        this.painter.dispose();\n        this.handler.dispose();\n        this.animation =\n            this.storage =\n                this.painter =\n                    this.handler = null;\n        delInstance(this.id);\n    };\n    return ZRender;\n}());\nexport function init(dom, opts) {\n    var zr = new ZRender(zrUtil.guid(), dom, opts);\n    instances[zr.id] = zr;\n    return zr;\n}\nexport function dispose(zr) {\n    zr.dispose();\n}\nexport function disposeAll() {\n    for (var key in instances) {\n        if (instances.hasOwnProperty(key)) {\n            instances[key].dispose();\n        }\n    }\n    instances = {};\n}\nexport function getInstance(id) {\n    return instances[id];\n}\nexport function registerPainter(name, Ctor) {\n    painterCtors[name] = Ctor;\n}\nexport var version = '5.0.1';\n;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar RADIAN_EPSILON = 1e-4;\n\nfunction _trim(str) {\n  return str.replace(/^\\s+|\\s+$/g, '');\n}\n\nexport function linearMap(val, domain, range, clamp) {\n  var subDomain = domain[1] - domain[0];\n  var subRange = range[1] - range[0];\n\n  if (subDomain === 0) {\n    return subRange === 0 ? range[0] : (range[0] + range[1]) / 2;\n  }\n\n  if (clamp) {\n    if (subDomain > 0) {\n      if (val <= domain[0]) {\n        return range[0];\n      } else if (val >= domain[1]) {\n        return range[1];\n      }\n    } else {\n      if (val >= domain[0]) {\n        return range[0];\n      } else if (val <= domain[1]) {\n        return range[1];\n      }\n    }\n  } else {\n    if (val === domain[0]) {\n      return range[0];\n    }\n\n    if (val === domain[1]) {\n      return range[1];\n    }\n  }\n\n  return (val - domain[0]) / subDomain * subRange + range[0];\n}\nexport function parsePercent(percent, all) {\n  switch (percent) {\n    case 'center':\n    case 'middle':\n      percent = '50%';\n      break;\n\n    case 'left':\n    case 'top':\n      percent = '0%';\n      break;\n\n    case 'right':\n    case 'bottom':\n      percent = '100%';\n      break;\n  }\n\n  if (typeof percent === 'string') {\n    if (_trim(percent).match(/%$/)) {\n      return parseFloat(percent) / 100 * all;\n    }\n\n    return parseFloat(percent);\n  }\n\n  return percent == null ? NaN : +percent;\n}\nexport function round(x, precision, returnStr) {\n  if (precision == null) {\n    precision = 10;\n  }\n\n  precision = Math.min(Math.max(0, precision), 20);\n  x = (+x).toFixed(precision);\n  return returnStr ? x : +x;\n}\nexport function asc(arr) {\n  arr.sort(function (a, b) {\n    return a - b;\n  });\n  return arr;\n}\nexport function getPrecision(val) {\n  val = +val;\n\n  if (isNaN(val)) {\n    return 0;\n  }\n\n  var e = 1;\n  var count = 0;\n\n  while (Math.round(val * e) / e !== val) {\n    e *= 10;\n    count++;\n  }\n\n  return count;\n}\nexport function getPrecisionSafe(val) {\n  var str = val.toString();\n  var eIndex = str.indexOf('e');\n\n  if (eIndex > 0) {\n    var precision = +str.slice(eIndex + 1);\n    return precision < 0 ? -precision : 0;\n  } else {\n    var dotIndex = str.indexOf('.');\n    return dotIndex < 0 ? 0 : str.length - 1 - dotIndex;\n  }\n}\nexport function getPixelPrecision(dataExtent, pixelExtent) {\n  var log = Math.log;\n  var LN10 = Math.LN10;\n  var dataQuantity = Math.floor(log(dataExtent[1] - dataExtent[0]) / LN10);\n  var sizeQuantity = Math.round(log(Math.abs(pixelExtent[1] - pixelExtent[0])) / LN10);\n  var precision = Math.min(Math.max(-dataQuantity + sizeQuantity, 0), 20);\n  return !isFinite(precision) ? 20 : precision;\n}\nexport function getPercentWithPrecision(valueList, idx, precision) {\n  if (!valueList[idx]) {\n    return 0;\n  }\n\n  var sum = zrUtil.reduce(valueList, function (acc, val) {\n    return acc + (isNaN(val) ? 0 : val);\n  }, 0);\n\n  if (sum === 0) {\n    return 0;\n  }\n\n  var digits = Math.pow(10, precision);\n  var votesPerQuota = zrUtil.map(valueList, function (val) {\n    return (isNaN(val) ? 0 : val) / sum * digits * 100;\n  });\n  var targetSeats = digits * 100;\n  var seats = zrUtil.map(votesPerQuota, function (votes) {\n    return Math.floor(votes);\n  });\n  var currentSum = zrUtil.reduce(seats, function (acc, val) {\n    return acc + val;\n  }, 0);\n  var remainder = zrUtil.map(votesPerQuota, function (votes, idx) {\n    return votes - seats[idx];\n  });\n\n  while (currentSum < targetSeats) {\n    var max = Number.NEGATIVE_INFINITY;\n    var maxId = null;\n\n    for (var i = 0, len = remainder.length; i < len; ++i) {\n      if (remainder[i] > max) {\n        max = remainder[i];\n        maxId = i;\n      }\n    }\n\n    ++seats[maxId];\n    remainder[maxId] = 0;\n    ++currentSum;\n  }\n\n  return seats[idx] / digits;\n}\nexport var MAX_SAFE_INTEGER = 9007199254740991;\nexport function remRadian(radian) {\n  var pi2 = Math.PI * 2;\n  return (radian % pi2 + pi2) % pi2;\n}\nexport function isRadianAroundZero(val) {\n  return val > -RADIAN_EPSILON && val < RADIAN_EPSILON;\n}\nvar 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)?)?)?)?)?$/;\nexport function parseDate(value) {\n  if (value instanceof Date) {\n    return value;\n  } else if (typeof value === 'string') {\n    var match = TIME_REG.exec(value);\n\n    if (!match) {\n      return new Date(NaN);\n    }\n\n    if (!match[8]) {\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);\n    } else {\n      var hour = +match[4] || 0;\n\n      if (match[8].toUpperCase() !== 'Z') {\n        hour -= +match[8].slice(0, 3);\n      }\n\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));\n    }\n  } else if (value == null) {\n    return new Date(NaN);\n  }\n\n  return new Date(Math.round(value));\n}\nexport function quantity(val) {\n  return Math.pow(10, quantityExponent(val));\n}\nexport function quantityExponent(val) {\n  if (val === 0) {\n    return 0;\n  }\n\n  var exp = Math.floor(Math.log(val) / Math.LN10);\n\n  if (val / Math.pow(10, exp) >= 10) {\n    exp++;\n  }\n\n  return exp;\n}\nexport function nice(val, round) {\n  var exponent = quantityExponent(val);\n  var exp10 = Math.pow(10, exponent);\n  var f = val / exp10;\n  var nf;\n\n  if (round) {\n    if (f < 1.5) {\n      nf = 1;\n    } else if (f < 2.5) {\n      nf = 2;\n    } else if (f < 4) {\n      nf = 3;\n    } else if (f < 7) {\n      nf = 5;\n    } else {\n      nf = 10;\n    }\n  } else {\n    if (f < 1) {\n      nf = 1;\n    } else if (f < 2) {\n      nf = 2;\n    } else if (f < 3) {\n      nf = 3;\n    } else if (f < 5) {\n      nf = 5;\n    } else {\n      nf = 10;\n    }\n  }\n\n  val = nf * exp10;\n  return exponent >= -20 ? +val.toFixed(exponent < 0 ? -exponent : 0) : val;\n}\nexport function quantile(ascArr, p) {\n  var H = (ascArr.length - 1) * p + 1;\n  var h = Math.floor(H);\n  var v = +ascArr[h - 1];\n  var e = H - h;\n  return e ? v + e * (ascArr[h] - v) : v;\n}\nexport function reformIntervals(list) {\n  list.sort(function (a, b) {\n    return littleThan(a, b, 0) ? -1 : 1;\n  });\n  var curr = -Infinity;\n  var currClose = 1;\n\n  for (var i = 0; i < list.length;) {\n    var interval = list[i].interval;\n    var close_1 = list[i].close;\n\n    for (var lg = 0; lg < 2; lg++) {\n      if (interval[lg] <= curr) {\n        interval[lg] = curr;\n        close_1[lg] = !lg ? 1 - currClose : 1;\n      }\n\n      curr = interval[lg];\n      currClose = close_1[lg];\n    }\n\n    if (interval[0] === interval[1] && close_1[0] * close_1[1] !== 1) {\n      list.splice(i, 1);\n    } else {\n      i++;\n    }\n  }\n\n  return list;\n\n  function littleThan(a, b, lg) {\n    return a.interval[lg] < b.interval[lg] || a.interval[lg] === b.interval[lg] && (a.close[lg] - b.close[lg] === (!lg ? 1 : -1) || !lg && littleThan(a, b, 1));\n  }\n}\nexport function numericToNumber(val) {\n  var valFloat = parseFloat(val);\n  return valFloat == val && (valFloat !== 0 || typeof val !== 'string' || val.indexOf('x') <= 0) ? valFloat : NaN;\n}\nexport function isNumeric(val) {\n  return !isNaN(numericToNumber(val));\n}\nexport function getRandomIdBase() {\n  return Math.round(Math.random() * 9);\n}\nexport function getGreatestCommonDividor(a, b) {\n  if (b === 0) {\n    return a;\n  }\n\n  return getGreatestCommonDividor(b, a % b);\n}\nexport function getLeastCommonMultiple(a, b) {\n  if (a == null) {\n    return b;\n  }\n\n  if (b == null) {\n    return a;\n  }\n\n  return a * b / getGreatestCommonDividor(a, b);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { map, isString, isFunction, eqNaN, isRegExp } from 'zrender/lib/core/util';\nvar ECHARTS_PREFIX = '[ECharts] ';\nvar storedLogs = {};\nvar hasConsole = typeof console !== 'undefined' && console.warn && console.log;\nexport function log(str) {\n  if (hasConsole) {\n    console.log(ECHARTS_PREFIX + str);\n  }\n}\nexport function warn(str) {\n  if (hasConsole) {\n    console.warn(ECHARTS_PREFIX + str);\n  }\n}\nexport function error(str) {\n  if (hasConsole) {\n    console.error(ECHARTS_PREFIX + str);\n  }\n}\nexport function deprecateLog(str) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (storedLogs[str]) {\n      return;\n    }\n\n    if (hasConsole) {\n      storedLogs[str] = true;\n      console.warn(ECHARTS_PREFIX + 'DEPRECATED: ' + str);\n    }\n  }\n}\nexport function deprecateReplaceLog(oldOpt, newOpt, scope) {\n  if (process.env.NODE_ENV !== 'production') {\n    deprecateLog((scope ? \"[\" + scope + \"]\" : '') + (oldOpt + \" is deprecated, use \" + newOpt + \" instead.\"));\n  }\n}\nexport function consoleLog() {\n  var args = [];\n\n  for (var _i = 0; _i < arguments.length; _i++) {\n    args[_i] = arguments[_i];\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (typeof console !== 'undefined' && console.log) {\n      console.log.apply(console, args);\n    }\n  }\n}\nexport function makePrintable() {\n  var hintInfo = [];\n\n  for (var _i = 0; _i < arguments.length; _i++) {\n    hintInfo[_i] = arguments[_i];\n  }\n\n  var msg = '';\n\n  if (process.env.NODE_ENV !== 'production') {\n    var makePrintableStringIfPossible_1 = function (val) {\n      return val === void 0 ? 'undefined' : val === Infinity ? 'Infinity' : val === -Infinity ? '-Infinity' : eqNaN(val) ? 'NaN' : val instanceof Date ? 'Date(' + val.toISOString() + ')' : isFunction(val) ? 'function () { ... }' : isRegExp(val) ? val + '' : null;\n    };\n\n    msg = map(hintInfo, function (arg) {\n      if (isString(arg)) {\n        return arg;\n      } else {\n        var printableStr = makePrintableStringIfPossible_1(arg);\n\n        if (printableStr != null) {\n          return printableStr;\n        } else if (typeof JSON !== 'undefined' && JSON.stringify) {\n          try {\n            return JSON.stringify(arg, function (n, val) {\n              var printableStr = makePrintableStringIfPossible_1(val);\n              return printableStr == null ? val : printableStr;\n            });\n          } catch (err) {\n            return '?';\n          }\n        } else {\n          return '?';\n        }\n      }\n    }).join(' ');\n  }\n\n  return msg;\n}\nexport function throwError(msg) {\n  throw new Error(msg);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, isObject, isArray, createHashMap, map, assert, isString, indexOf, isStringSafe } from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport { isNumeric, getRandomIdBase, getPrecisionSafe, round } from './number';\nimport { interpolateNumber } from 'zrender/lib/animation/Animator';\nimport { warn } from './log';\nvar DUMMY_COMPONENT_NAME_PREFIX = 'series\\0';\nvar INTERNAL_COMPONENT_ID_PREFIX = '\\0_ec_\\0';\nexport function normalizeToArray(value) {\n  return value instanceof Array ? value : value == null ? [] : [value];\n}\nexport function defaultEmphasis(opt, key, subOpts) {\n  if (opt) {\n    opt[key] = opt[key] || {};\n    opt.emphasis = opt.emphasis || {};\n    opt.emphasis[key] = opt.emphasis[key] || {};\n\n    for (var i = 0, len = subOpts.length; i < len; i++) {\n      var subOptName = subOpts[i];\n\n      if (!opt.emphasis[key].hasOwnProperty(subOptName) && opt[key].hasOwnProperty(subOptName)) {\n        opt.emphasis[key][subOptName] = opt[key][subOptName];\n      }\n    }\n  }\n}\nexport var TEXT_STYLE_OPTIONS = ['fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'rich', 'tag', 'color', 'textBorderColor', 'textBorderWidth', 'width', 'height', 'lineHeight', 'align', 'verticalAlign', 'baseline', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY', 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY', 'backgroundColor', 'borderColor', 'borderWidth', 'borderRadius', 'padding'];\nexport function getDataItemValue(dataItem) {\n  return isObject(dataItem) && !isArray(dataItem) && !(dataItem instanceof Date) ? dataItem.value : dataItem;\n}\nexport function isDataItemOption(dataItem) {\n  return isObject(dataItem) && !(dataItem instanceof Array);\n}\n;\nexport function mappingToExists(existings, newCmptOptions, mode) {\n  var isNormalMergeMode = mode === 'normalMerge';\n  var isReplaceMergeMode = mode === 'replaceMerge';\n  var isReplaceAllMode = mode === 'replaceAll';\n  existings = existings || [];\n  newCmptOptions = (newCmptOptions || []).slice();\n  var existingIdIdxMap = createHashMap();\n  each(newCmptOptions, function (cmptOption, index) {\n    if (!isObject(cmptOption)) {\n      newCmptOptions[index] = null;\n      return;\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (cmptOption.id != null && !isValidIdOrName(cmptOption.id)) {\n        warnInvalidateIdOrName(cmptOption.id);\n      }\n\n      if (cmptOption.name != null && !isValidIdOrName(cmptOption.name)) {\n        warnInvalidateIdOrName(cmptOption.name);\n      }\n    }\n  });\n  var result = prepareResult(existings, existingIdIdxMap, mode);\n\n  if (isNormalMergeMode || isReplaceMergeMode) {\n    mappingById(result, existings, existingIdIdxMap, newCmptOptions);\n  }\n\n  if (isNormalMergeMode) {\n    mappingByName(result, newCmptOptions);\n  }\n\n  if (isNormalMergeMode || isReplaceMergeMode) {\n    mappingByIndex(result, newCmptOptions, isReplaceMergeMode);\n  } else if (isReplaceAllMode) {\n    mappingInReplaceAllMode(result, newCmptOptions);\n  }\n\n  makeIdAndName(result);\n  return result;\n}\n\nfunction prepareResult(existings, existingIdIdxMap, mode) {\n  var result = [];\n\n  if (mode === 'replaceAll') {\n    return result;\n  }\n\n  for (var index = 0; index < existings.length; index++) {\n    var existing = existings[index];\n\n    if (existing && existing.id != null) {\n      existingIdIdxMap.set(existing.id, index);\n    }\n\n    result.push({\n      existing: mode === 'replaceMerge' || isComponentIdInternal(existing) ? null : existing,\n      newOption: null,\n      keyInfo: null,\n      brandNew: null\n    });\n  }\n\n  return result;\n}\n\nfunction mappingById(result, existings, existingIdIdxMap, newCmptOptions) {\n  each(newCmptOptions, function (cmptOption, index) {\n    if (!cmptOption || cmptOption.id == null) {\n      return;\n    }\n\n    var optionId = makeComparableKey(cmptOption.id);\n    var existingIdx = existingIdIdxMap.get(optionId);\n\n    if (existingIdx != null) {\n      var resultItem = result[existingIdx];\n      assert(!resultItem.newOption, 'Duplicated option on id \"' + optionId + '\".');\n      resultItem.newOption = cmptOption;\n      resultItem.existing = existings[existingIdx];\n      newCmptOptions[index] = null;\n    }\n  });\n}\n\nfunction mappingByName(result, newCmptOptions) {\n  each(newCmptOptions, function (cmptOption, index) {\n    if (!cmptOption || cmptOption.name == null) {\n      return;\n    }\n\n    for (var i = 0; i < result.length; i++) {\n      var existing = result[i].existing;\n\n      if (!result[i].newOption && existing && (existing.id == null || cmptOption.id == null) && !isComponentIdInternal(cmptOption) && !isComponentIdInternal(existing) && keyExistAndEqual('name', existing, cmptOption)) {\n        result[i].newOption = cmptOption;\n        newCmptOptions[index] = null;\n        return;\n      }\n    }\n  });\n}\n\nfunction mappingByIndex(result, newCmptOptions, brandNew) {\n  each(newCmptOptions, function (cmptOption) {\n    if (!cmptOption) {\n      return;\n    }\n\n    var resultItem;\n    var nextIdx = 0;\n\n    while ((resultItem = result[nextIdx]) && (resultItem.newOption || isComponentIdInternal(resultItem.existing) || resultItem.existing && cmptOption.id != null && !keyExistAndEqual('id', cmptOption, resultItem.existing))) {\n      nextIdx++;\n    }\n\n    if (resultItem) {\n      resultItem.newOption = cmptOption;\n      resultItem.brandNew = brandNew;\n    } else {\n      result.push({\n        newOption: cmptOption,\n        brandNew: brandNew,\n        existing: null,\n        keyInfo: null\n      });\n    }\n\n    nextIdx++;\n  });\n}\n\nfunction mappingInReplaceAllMode(result, newCmptOptions) {\n  each(newCmptOptions, function (cmptOption) {\n    result.push({\n      newOption: cmptOption,\n      brandNew: true,\n      existing: null,\n      keyInfo: null\n    });\n  });\n}\n\nfunction makeIdAndName(mapResult) {\n  var idMap = createHashMap();\n  each(mapResult, function (item) {\n    var existing = item.existing;\n    existing && idMap.set(existing.id, item);\n  });\n  each(mapResult, function (item) {\n    var opt = item.newOption;\n    assert(!opt || opt.id == null || !idMap.get(opt.id) || idMap.get(opt.id) === item, 'id duplicates: ' + (opt && opt.id));\n    opt && opt.id != null && idMap.set(opt.id, item);\n    !item.keyInfo && (item.keyInfo = {});\n  });\n  each(mapResult, function (item, index) {\n    var existing = item.existing;\n    var opt = item.newOption;\n    var keyInfo = item.keyInfo;\n\n    if (!isObject(opt)) {\n      return;\n    }\n\n    keyInfo.name = opt.name != null ? makeComparableKey(opt.name) : existing ? existing.name : DUMMY_COMPONENT_NAME_PREFIX + index;\n\n    if (existing) {\n      keyInfo.id = makeComparableKey(existing.id);\n    } else if (opt.id != null) {\n      keyInfo.id = makeComparableKey(opt.id);\n    } else {\n      var idNum = 0;\n\n      do {\n        keyInfo.id = '\\0' + keyInfo.name + '\\0' + idNum++;\n      } while (idMap.get(keyInfo.id));\n    }\n\n    idMap.set(keyInfo.id, item);\n  });\n}\n\nfunction keyExistAndEqual(attr, obj1, obj2) {\n  var key1 = convertOptionIdName(obj1[attr], null);\n  var key2 = convertOptionIdName(obj2[attr], null);\n  return key1 != null && key2 != null && key1 === key2;\n}\n\nfunction makeComparableKey(val) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (val == null) {\n      throw new Error();\n    }\n  }\n\n  return convertOptionIdName(val, '');\n}\n\nexport function convertOptionIdName(idOrName, defaultValue) {\n  if (idOrName == null) {\n    return defaultValue;\n  }\n\n  var type = typeof idOrName;\n  return type === 'string' ? idOrName : type === 'number' || isStringSafe(idOrName) ? idOrName + '' : defaultValue;\n}\n\nfunction warnInvalidateIdOrName(idOrName) {\n  if (process.env.NODE_ENV !== 'production') {\n    warn('`' + idOrName + '` is invalid id or name. Must be a string or number.');\n  }\n}\n\nfunction isValidIdOrName(idOrName) {\n  return isStringSafe(idOrName) || isNumeric(idOrName);\n}\n\nexport function isNameSpecified(componentModel) {\n  var name = componentModel.name;\n  return !!(name && name.indexOf(DUMMY_COMPONENT_NAME_PREFIX));\n}\nexport function isComponentIdInternal(cmptOption) {\n  return cmptOption && cmptOption.id != null && makeComparableKey(cmptOption.id).indexOf(INTERNAL_COMPONENT_ID_PREFIX) === 0;\n}\nexport function makeInternalComponentId(idSuffix) {\n  return INTERNAL_COMPONENT_ID_PREFIX + idSuffix;\n}\nexport function setComponentTypeToKeyInfo(mappingResult, mainType, componentModelCtor) {\n  each(mappingResult, function (item) {\n    var newOption = item.newOption;\n\n    if (isObject(newOption)) {\n      item.keyInfo.mainType = mainType;\n      item.keyInfo.subType = determineSubType(mainType, newOption, item.existing, componentModelCtor);\n    }\n  });\n}\n\nfunction determineSubType(mainType, newCmptOption, existComponent, componentModelCtor) {\n  var subType = newCmptOption.type ? newCmptOption.type : existComponent ? existComponent.subType : componentModelCtor.determineSubType(mainType, newCmptOption);\n  return subType;\n}\n\nexport function compressBatches(batchA, batchB) {\n  var mapA = {};\n  var mapB = {};\n  makeMap(batchA || [], mapA);\n  makeMap(batchB || [], mapB, mapA);\n  return [mapToArray(mapA), mapToArray(mapB)];\n\n  function makeMap(sourceBatch, map, otherMap) {\n    for (var i = 0, len = sourceBatch.length; i < len; i++) {\n      var seriesId = convertOptionIdName(sourceBatch[i].seriesId, null);\n\n      if (seriesId == null) {\n        return;\n      }\n\n      var dataIndices = normalizeToArray(sourceBatch[i].dataIndex);\n      var otherDataIndices = otherMap && otherMap[seriesId];\n\n      for (var j = 0, lenj = dataIndices.length; j < lenj; j++) {\n        var dataIndex = dataIndices[j];\n\n        if (otherDataIndices && otherDataIndices[dataIndex]) {\n          otherDataIndices[dataIndex] = null;\n        } else {\n          (map[seriesId] || (map[seriesId] = {}))[dataIndex] = 1;\n        }\n      }\n    }\n  }\n\n  function mapToArray(map, isData) {\n    var result = [];\n\n    for (var i in map) {\n      if (map.hasOwnProperty(i) && map[i] != null) {\n        if (isData) {\n          result.push(+i);\n        } else {\n          var dataIndices = mapToArray(map[i], true);\n          dataIndices.length && result.push({\n            seriesId: i,\n            dataIndex: dataIndices\n          });\n        }\n      }\n    }\n\n    return result;\n  }\n}\nexport function queryDataIndex(data, payload) {\n  if (payload.dataIndexInside != null) {\n    return payload.dataIndexInside;\n  } else if (payload.dataIndex != null) {\n    return isArray(payload.dataIndex) ? map(payload.dataIndex, function (value) {\n      return data.indexOfRawIndex(value);\n    }) : data.indexOfRawIndex(payload.dataIndex);\n  } else if (payload.name != null) {\n    return isArray(payload.name) ? map(payload.name, function (value) {\n      return data.indexOfName(value);\n    }) : data.indexOfName(payload.name);\n  }\n}\nexport function makeInner() {\n  var key = '__ec_inner_' + innerUniqueIndex++;\n  return function (hostObj) {\n    return hostObj[key] || (hostObj[key] = {});\n  };\n}\nvar innerUniqueIndex = getRandomIdBase();\nexport function parseFinder(ecModel, finderInput, opt) {\n  var finder;\n\n  if (isString(finderInput)) {\n    var obj = {};\n    obj[finderInput + 'Index'] = 0;\n    finder = obj;\n  } else {\n    finder = finderInput;\n  }\n\n  var queryOptionMap = createHashMap();\n  var result = {};\n  var mainTypeSpecified = false;\n  each(finder, function (value, key) {\n    if (key === 'dataIndex' || key === 'dataIndexInside') {\n      result[key] = value;\n      return;\n    }\n\n    var parsedKey = key.match(/^(\\w+)(Index|Id|Name)$/) || [];\n    var mainType = parsedKey[1];\n    var queryType = (parsedKey[2] || '').toLowerCase();\n\n    if (!mainType || !queryType || opt && opt.includeMainTypes && indexOf(opt.includeMainTypes, mainType) < 0) {\n      return;\n    }\n\n    mainTypeSpecified = mainTypeSpecified || !!mainType;\n    var queryOption = queryOptionMap.get(mainType) || queryOptionMap.set(mainType, {});\n    queryOption[queryType] = value;\n  });\n  var defaultMainType = opt ? opt.defaultMainType : null;\n\n  if (!mainTypeSpecified && defaultMainType) {\n    queryOptionMap.set(defaultMainType, {});\n  }\n\n  queryOptionMap.each(function (queryOption, mainType) {\n    var queryResult = queryReferringComponents(ecModel, mainType, queryOption, {\n      useDefault: defaultMainType === mainType,\n      enableAll: opt && opt.enableAll != null ? opt.enableAll : true,\n      enableNone: opt && opt.enableNone != null ? opt.enableNone : true\n    });\n    result[mainType + 'Models'] = queryResult.models;\n    result[mainType + 'Model'] = queryResult.models[0];\n  });\n  return result;\n}\nexport var SINGLE_REFERRING = {\n  useDefault: true,\n  enableAll: false,\n  enableNone: false\n};\nexport var MULTIPLE_REFERRING = {\n  useDefault: false,\n  enableAll: true,\n  enableNone: true\n};\nexport function queryReferringComponents(ecModel, mainType, userOption, opt) {\n  opt = opt || SINGLE_REFERRING;\n  var indexOption = userOption.index;\n  var idOption = userOption.id;\n  var nameOption = userOption.name;\n  var result = {\n    models: null,\n    specified: indexOption != null || idOption != null || nameOption != null\n  };\n\n  if (!result.specified) {\n    var firstCmpt = void 0;\n    result.models = opt.useDefault && (firstCmpt = ecModel.getComponent(mainType)) ? [firstCmpt] : [];\n    return result;\n  }\n\n  if (indexOption === 'none' || indexOption === false) {\n    assert(opt.enableNone, '`\"none\"` or `false` is not a valid value on index option.');\n    result.models = [];\n    return result;\n  }\n\n  if (indexOption === 'all') {\n    assert(opt.enableAll, '`\"all\"` is not a valid value on index option.');\n    indexOption = idOption = nameOption = null;\n  }\n\n  result.models = ecModel.queryComponents({\n    mainType: mainType,\n    index: indexOption,\n    id: idOption,\n    name: nameOption\n  });\n  return result;\n}\nexport function setAttribute(dom, key, value) {\n  dom.setAttribute ? dom.setAttribute(key, value) : dom[key] = value;\n}\nexport function getAttribute(dom, key) {\n  return dom.getAttribute ? dom.getAttribute(key) : dom[key];\n}\nexport function getTooltipRenderMode(renderModeOption) {\n  if (renderModeOption === 'auto') {\n    return env.domSupported ? 'html' : 'richText';\n  } else {\n    return renderModeOption || 'html';\n  }\n}\nexport function groupData(array, getKey) {\n  var buckets = createHashMap();\n  var keys = [];\n  each(array, function (item) {\n    var key = getKey(item);\n    (buckets.get(key) || (keys.push(key), buckets.set(key, []))).push(item);\n  });\n  return {\n    keys: keys,\n    buckets: buckets\n  };\n}\nexport function interpolateRawValues(data, precision, sourceValue, targetValue, percent) {\n  var isAutoPrecision = precision == null || precision === 'auto';\n\n  if (targetValue == null) {\n    return targetValue;\n  }\n\n  if (typeof targetValue === 'number') {\n    var value = interpolateNumber(sourceValue || 0, targetValue, percent);\n    return round(value, isAutoPrecision ? Math.max(getPrecisionSafe(sourceValue || 0), getPrecisionSafe(targetValue)) : precision);\n  } else if (typeof targetValue === 'string') {\n    return percent < 1 ? sourceValue : targetValue;\n  } else {\n    var interpolated = [];\n    var leftArr = sourceValue;\n    var rightArr = targetValue;\n    var length_1 = Math.max(leftArr ? leftArr.length : 0, rightArr.length);\n\n    for (var i = 0; i < length_1; ++i) {\n      var info = data.getDimensionInfo(i);\n\n      if (info.type === 'ordinal') {\n        interpolated[i] = (percent < 1 && leftArr ? leftArr : rightArr)[i];\n      } else {\n        var leftVal = leftArr && leftArr[i] ? leftArr[i] : 0;\n        var rightVal = rightArr[i];\n        var value = interpolateNumber(leftVal, rightVal, percent);\n        interpolated[i] = round(value, isAutoPrecision ? Math.max(getPrecisionSafe(leftVal), getPrecisionSafe(rightVal)) : precision);\n      }\n    }\n\n    return interpolated;\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __spreadArrays } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nvar TYPE_DELIMITER = '.';\nvar IS_CONTAINER = '___EC__COMPONENT__CONTAINER___';\nvar IS_EXTENDED_CLASS = '___EC__EXTENDED_CLASS___';\nexport function parseClassType(componentType) {\n  var ret = {\n    main: '',\n    sub: ''\n  };\n\n  if (componentType) {\n    var typeArr = componentType.split(TYPE_DELIMITER);\n    ret.main = typeArr[0] || '';\n    ret.sub = typeArr[1] || '';\n  }\n\n  return ret;\n}\n\nfunction checkClassType(componentType) {\n  zrUtil.assert(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(componentType), 'componentType \"' + componentType + '\" illegal');\n}\n\nexport function isExtendedClass(clz) {\n  return !!(clz && clz[IS_EXTENDED_CLASS]);\n}\nexport function enableClassExtend(rootClz, mandatoryMethods) {\n  rootClz.$constructor = rootClz;\n\n  rootClz.extend = function (proto) {\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.each(mandatoryMethods, function (method) {\n        if (!proto[method]) {\n          console.warn('Method `' + method + '` should be implemented' + (proto.type ? ' in ' + proto.type : '') + '.');\n        }\n      });\n    }\n\n    var superClass = this;\n\n    function ExtendedClass() {\n      var args = [];\n\n      for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n      }\n\n      if (!proto.$constructor) {\n        if (!isESClass(superClass)) {\n          superClass.apply(this, arguments);\n        } else {\n          var ins = zrUtil.createObject(ExtendedClass.prototype, new (superClass.bind.apply(superClass, __spreadArrays([void 0], args)))());\n          return ins;\n        }\n      } else {\n        proto.$constructor.apply(this, arguments);\n      }\n    }\n\n    ExtendedClass[IS_EXTENDED_CLASS] = true;\n    zrUtil.extend(ExtendedClass.prototype, proto);\n    ExtendedClass.extend = this.extend;\n    ExtendedClass.superCall = superCall;\n    ExtendedClass.superApply = superApply;\n    zrUtil.inherits(ExtendedClass, this);\n    ExtendedClass.superClass = superClass;\n    return ExtendedClass;\n  };\n}\n\nfunction isESClass(fn) {\n  return typeof fn === 'function' && /^class\\s/.test(Function.prototype.toString.call(fn));\n}\n\nexport function mountExtend(SubClz, SupperClz) {\n  SubClz.extend = SupperClz.extend;\n}\nvar classBase = Math.round(Math.random() * 10);\nexport function enableClassCheck(target) {\n  var classAttr = ['__\\0is_clz', classBase++].join('_');\n  target.prototype[classAttr] = true;\n\n  if (process.env.NODE_ENV !== 'production') {\n    zrUtil.assert(!target.isInstance, 'The method \"is\" can not be defined.');\n  }\n\n  target.isInstance = function (obj) {\n    return !!(obj && obj[classAttr]);\n  };\n}\n\nfunction superCall(context, methodName) {\n  var args = [];\n\n  for (var _i = 2; _i < arguments.length; _i++) {\n    args[_i - 2] = arguments[_i];\n  }\n\n  return this.superClass.prototype[methodName].apply(context, args);\n}\n\nfunction superApply(context, methodName, args) {\n  return this.superClass.prototype[methodName].apply(context, args);\n}\n\nexport function enableClassManagement(target) {\n  var storage = {};\n\n  target.registerClass = function (clz) {\n    var componentFullType = clz.type || clz.prototype.type;\n\n    if (componentFullType) {\n      checkClassType(componentFullType);\n      clz.prototype.type = componentFullType;\n      var componentTypeInfo = parseClassType(componentFullType);\n\n      if (!componentTypeInfo.sub) {\n        if (process.env.NODE_ENV !== 'production') {\n          if (storage[componentTypeInfo.main]) {\n            console.warn(componentTypeInfo.main + ' exists.');\n          }\n        }\n\n        storage[componentTypeInfo.main] = clz;\n      } else if (componentTypeInfo.sub !== IS_CONTAINER) {\n        var container = makeContainer(componentTypeInfo);\n        container[componentTypeInfo.sub] = clz;\n      }\n    }\n\n    return clz;\n  };\n\n  target.getClass = function (mainType, subType, throwWhenNotFound) {\n    var clz = storage[mainType];\n\n    if (clz && clz[IS_CONTAINER]) {\n      clz = subType ? clz[subType] : null;\n    }\n\n    if (throwWhenNotFound && !clz) {\n      throw new Error(!subType ? mainType + '.' + 'type should be specified.' : 'Component ' + mainType + '.' + (subType || '') + ' not exists. Load it first.');\n    }\n\n    return clz;\n  };\n\n  target.getClassesByMainType = function (componentType) {\n    var componentTypeInfo = parseClassType(componentType);\n    var result = [];\n    var obj = storage[componentTypeInfo.main];\n\n    if (obj && obj[IS_CONTAINER]) {\n      zrUtil.each(obj, function (o, type) {\n        type !== IS_CONTAINER && result.push(o);\n      });\n    } else {\n      result.push(obj);\n    }\n\n    return result;\n  };\n\n  target.hasClass = function (componentType) {\n    var componentTypeInfo = parseClassType(componentType);\n    return !!storage[componentTypeInfo.main];\n  };\n\n  target.getAllClassMainTypes = function () {\n    var types = [];\n    zrUtil.each(storage, function (obj, type) {\n      types.push(type);\n    });\n    return types;\n  };\n\n  target.hasSubTypes = function (componentType) {\n    var componentTypeInfo = parseClassType(componentType);\n    var obj = storage[componentTypeInfo.main];\n    return obj && obj[IS_CONTAINER];\n  };\n\n  function makeContainer(componentTypeInfo) {\n    var container = storage[componentTypeInfo.main];\n\n    if (!container || !container[IS_CONTAINER]) {\n      container = storage[componentTypeInfo.main] = {};\n      container[IS_CONTAINER] = true;\n    }\n\n    return container;\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function makeStyleMapper(properties, ignoreParent) {\n  for (var i = 0; i < properties.length; i++) {\n    if (!properties[i][1]) {\n      properties[i][1] = properties[i][0];\n    }\n  }\n\n  ignoreParent = ignoreParent || false;\n  return function (model, excludes, includes) {\n    var style = {};\n\n    for (var i = 0; i < properties.length; i++) {\n      var propName = properties[i][1];\n\n      if (excludes && zrUtil.indexOf(excludes, propName) >= 0 || includes && zrUtil.indexOf(includes, propName) < 0) {\n        continue;\n      }\n\n      var val = model.getShallow(propName, ignoreParent);\n\n      if (val != null) {\n        style[properties[i][0]] = val;\n      }\n    }\n\n    return style;\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport makeStyleMapper from './makeStyleMapper';\nexport var AREA_STYLE_KEY_MAP = [['fill', 'color'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['opacity'], ['shadowColor']];\nvar getAreaStyle = makeStyleMapper(AREA_STYLE_KEY_MAP);\n\nvar AreaStyleMixin = function () {\n  function AreaStyleMixin() {}\n\n  AreaStyleMixin.prototype.getAreaStyle = function (excludes, includes) {\n    return getAreaStyle(this, excludes, includes);\n  };\n\n  return AreaStyleMixin;\n}();\n\n;\nexport { AreaStyleMixin };","import LRU from '../../core/LRU';\nvar globalImageCache = new LRU(50);\nexport function findExistImage(newImageOrSrc) {\n    if (typeof newImageOrSrc === 'string') {\n        var cachedImgObj = globalImageCache.get(newImageOrSrc);\n        return cachedImgObj && cachedImgObj.image;\n    }\n    else {\n        return newImageOrSrc;\n    }\n}\nexport function createOrUpdateImage(newImageOrSrc, image, hostEl, onload, cbPayload) {\n    if (!newImageOrSrc) {\n        return image;\n    }\n    else if (typeof newImageOrSrc === 'string') {\n        if ((image && image.__zrImageSrc === newImageOrSrc) || !hostEl) {\n            return image;\n        }\n        var cachedImgObj = globalImageCache.get(newImageOrSrc);\n        var pendingWrap = { hostEl: hostEl, cb: onload, cbPayload: cbPayload };\n        if (cachedImgObj) {\n            image = cachedImgObj.image;\n            !isImageReady(image) && cachedImgObj.pending.push(pendingWrap);\n        }\n        else {\n            image = new Image();\n            image.onload = image.onerror = imageOnLoad;\n            globalImageCache.put(newImageOrSrc, image.__cachedImgObj = {\n                image: image,\n                pending: [pendingWrap]\n            });\n            image.src = image.__zrImageSrc = newImageOrSrc;\n        }\n        return image;\n    }\n    else {\n        return newImageOrSrc;\n    }\n}\nfunction imageOnLoad() {\n    var cachedImgObj = this.__cachedImgObj;\n    this.onload = this.onerror = this.__cachedImgObj = null;\n    for (var i = 0; i < cachedImgObj.pending.length; i++) {\n        var pendingWrap = cachedImgObj.pending[i];\n        var cb = pendingWrap.cb;\n        cb && cb(this, pendingWrap.cbPayload);\n        pendingWrap.hostEl.dirty();\n    }\n    cachedImgObj.pending.length = 0;\n}\nexport function isImageReady(image) {\n    return image && image.width && image.height;\n}\n","import * as imageHelper from '../helper/image';\nimport { extend, retrieve2, retrieve3, reduce } from '../../core/util';\nimport { getLineHeight, getWidth } from '../../contain/text';\nvar STYLE_REG = /\\{([a-zA-Z0-9_]+)\\|([^}]*)\\}/g;\nexport function truncateText(text, containerWidth, font, ellipsis, options) {\n    if (!containerWidth) {\n        return '';\n    }\n    var textLines = (text + '').split('\\n');\n    options = prepareTruncateOptions(containerWidth, font, ellipsis, options);\n    for (var i = 0, len = textLines.length; i < len; i++) {\n        textLines[i] = truncateSingleLine(textLines[i], options);\n    }\n    return textLines.join('\\n');\n}\nfunction prepareTruncateOptions(containerWidth, font, ellipsis, options) {\n    options = options || {};\n    var preparedOpts = extend({}, options);\n    preparedOpts.font = font;\n    ellipsis = retrieve2(ellipsis, '...');\n    preparedOpts.maxIterations = retrieve2(options.maxIterations, 2);\n    var minChar = preparedOpts.minChar = retrieve2(options.minChar, 0);\n    preparedOpts.cnCharWidth = getWidth('国', font);\n    var ascCharWidth = preparedOpts.ascCharWidth = getWidth('a', font);\n    preparedOpts.placeholder = retrieve2(options.placeholder, '');\n    var contentWidth = containerWidth = Math.max(0, containerWidth - 1);\n    for (var i = 0; i < minChar && contentWidth >= ascCharWidth; i++) {\n        contentWidth -= ascCharWidth;\n    }\n    var ellipsisWidth = getWidth(ellipsis, font);\n    if (ellipsisWidth > contentWidth) {\n        ellipsis = '';\n        ellipsisWidth = 0;\n    }\n    contentWidth = containerWidth - ellipsisWidth;\n    preparedOpts.ellipsis = ellipsis;\n    preparedOpts.ellipsisWidth = ellipsisWidth;\n    preparedOpts.contentWidth = contentWidth;\n    preparedOpts.containerWidth = containerWidth;\n    return preparedOpts;\n}\nfunction truncateSingleLine(textLine, options) {\n    var containerWidth = options.containerWidth;\n    var font = options.font;\n    var contentWidth = options.contentWidth;\n    if (!containerWidth) {\n        return '';\n    }\n    var lineWidth = getWidth(textLine, font);\n    if (lineWidth <= containerWidth) {\n        return textLine;\n    }\n    for (var j = 0;; j++) {\n        if (lineWidth <= contentWidth || j >= options.maxIterations) {\n            textLine += options.ellipsis;\n            break;\n        }\n        var subLength = j === 0\n            ? estimateLength(textLine, contentWidth, options.ascCharWidth, options.cnCharWidth)\n            : lineWidth > 0\n                ? Math.floor(textLine.length * contentWidth / lineWidth)\n                : 0;\n        textLine = textLine.substr(0, subLength);\n        lineWidth = getWidth(textLine, font);\n    }\n    if (textLine === '') {\n        textLine = options.placeholder;\n    }\n    return textLine;\n}\nfunction estimateLength(text, contentWidth, ascCharWidth, cnCharWidth) {\n    var width = 0;\n    var i = 0;\n    for (var len = text.length; i < len && width < contentWidth; i++) {\n        var charCode = text.charCodeAt(i);\n        width += (0 <= charCode && charCode <= 127) ? ascCharWidth : cnCharWidth;\n    }\n    return i;\n}\nexport function parsePlainText(text, style) {\n    text != null && (text += '');\n    var overflow = style.overflow;\n    var padding = style.padding;\n    var font = style.font;\n    var truncate = overflow === 'truncate';\n    var calculatedLineHeight = getLineHeight(font);\n    var lineHeight = retrieve2(style.lineHeight, calculatedLineHeight);\n    var truncateLineOverflow = style.lineOverflow === 'truncate';\n    var width = style.width;\n    var lines;\n    if (width != null && overflow === 'break' || overflow === 'breakAll') {\n        lines = text ? wrapText(text, style.font, width, overflow === 'breakAll', 0).lines : [];\n    }\n    else {\n        lines = text ? text.split('\\n') : [];\n    }\n    var contentHeight = lines.length * lineHeight;\n    var height = retrieve2(style.height, contentHeight);\n    if (contentHeight > height && truncateLineOverflow) {\n        var lineCount = Math.floor(height / lineHeight);\n        lines = lines.slice(0, lineCount);\n    }\n    var outerHeight = height;\n    var outerWidth = width;\n    if (padding) {\n        outerHeight += padding[0] + padding[2];\n        if (outerWidth != null) {\n            outerWidth += padding[1] + padding[3];\n        }\n    }\n    if (text && truncate && outerWidth != null) {\n        var options = prepareTruncateOptions(width, font, style.ellipsis, {\n            minChar: style.truncateMinChar,\n            placeholder: style.placeholder\n        });\n        for (var i = 0; i < lines.length; i++) {\n            lines[i] = truncateSingleLine(lines[i], options);\n        }\n    }\n    if (width == null) {\n        var maxWidth = 0;\n        for (var i = 0; i < lines.length; i++) {\n            maxWidth = Math.max(getWidth(lines[i], font), maxWidth);\n        }\n        width = maxWidth;\n    }\n    return {\n        lines: lines,\n        height: height,\n        outerHeight: outerHeight,\n        lineHeight: lineHeight,\n        calculatedLineHeight: calculatedLineHeight,\n        contentHeight: contentHeight,\n        width: width\n    };\n}\nvar RichTextToken = (function () {\n    function RichTextToken() {\n    }\n    return RichTextToken;\n}());\nvar RichTextLine = (function () {\n    function RichTextLine(tokens) {\n        this.tokens = [];\n        if (tokens) {\n            this.tokens = tokens;\n        }\n    }\n    return RichTextLine;\n}());\nvar RichTextContentBlock = (function () {\n    function RichTextContentBlock() {\n        this.width = 0;\n        this.height = 0;\n        this.contentWidth = 0;\n        this.contentHeight = 0;\n        this.outerWidth = 0;\n        this.outerHeight = 0;\n        this.lines = [];\n    }\n    return RichTextContentBlock;\n}());\nexport { RichTextContentBlock };\nexport function parseRichText(text, style) {\n    var contentBlock = new RichTextContentBlock();\n    text != null && (text += '');\n    if (!text) {\n        return contentBlock;\n    }\n    var topWidth = style.width;\n    var topHeight = style.height;\n    var overflow = style.overflow;\n    var wrapInfo = (overflow === 'break' || overflow === 'breakAll') && topWidth != null\n        ? { width: topWidth, accumWidth: 0, breakAll: overflow === 'breakAll' }\n        : null;\n    var lastIndex = STYLE_REG.lastIndex = 0;\n    var result;\n    while ((result = STYLE_REG.exec(text)) != null) {\n        var matchedIndex = result.index;\n        if (matchedIndex > lastIndex) {\n            pushTokens(contentBlock, text.substring(lastIndex, matchedIndex), style, wrapInfo);\n        }\n        pushTokens(contentBlock, result[2], style, wrapInfo, result[1]);\n        lastIndex = STYLE_REG.lastIndex;\n    }\n    if (lastIndex < text.length) {\n        pushTokens(contentBlock, text.substring(lastIndex, text.length), style, wrapInfo);\n    }\n    var pendingList = [];\n    var calculatedHeight = 0;\n    var calculatedWidth = 0;\n    var stlPadding = style.padding;\n    var truncate = overflow === 'truncate';\n    var truncateLine = style.lineOverflow === 'truncate';\n    var prevToken;\n    function finishLine(line, lineWidth, lineHeight) {\n        line.width = lineWidth;\n        line.lineHeight = lineHeight;\n        calculatedHeight += lineHeight;\n        calculatedWidth = Math.max(calculatedWidth, lineWidth);\n    }\n    outer: for (var i = 0; i < contentBlock.lines.length; i++) {\n        var line = contentBlock.lines[i];\n        var lineHeight = 0;\n        var lineWidth = 0;\n        for (var j = 0; j < line.tokens.length; j++) {\n            var token = line.tokens[j];\n            var tokenStyle = token.styleName && style.rich[token.styleName] || {};\n            var textPadding = token.textPadding = tokenStyle.padding;\n            var paddingH = textPadding ? textPadding[1] + textPadding[3] : 0;\n            var font = token.font = tokenStyle.font || style.font;\n            token.contentHeight = getLineHeight(font);\n            var tokenHeight = retrieve2(tokenStyle.height, token.contentHeight);\n            token.innerHeight = tokenHeight;\n            textPadding && (tokenHeight += textPadding[0] + textPadding[2]);\n            token.height = tokenHeight;\n            token.lineHeight = retrieve3(tokenStyle.lineHeight, style.lineHeight, tokenHeight);\n            token.align = tokenStyle && tokenStyle.align || style.align;\n            token.verticalAlign = tokenStyle && tokenStyle.verticalAlign || 'middle';\n            if (truncateLine && topHeight != null && calculatedHeight + token.lineHeight > topHeight) {\n                if (j > 0) {\n                    line.tokens = line.tokens.slice(0, j);\n                    finishLine(line, lineWidth, lineHeight);\n                    contentBlock.lines = contentBlock.lines.slice(0, i + 1);\n                }\n                else {\n                    contentBlock.lines = contentBlock.lines.slice(0, i);\n                }\n                break outer;\n            }\n            var styleTokenWidth = tokenStyle.width;\n            var tokenWidthNotSpecified = styleTokenWidth == null || styleTokenWidth === 'auto';\n            if (typeof styleTokenWidth === 'string' && styleTokenWidth.charAt(styleTokenWidth.length - 1) === '%') {\n                token.percentWidth = styleTokenWidth;\n                pendingList.push(token);\n                token.contentWidth = getWidth(token.text, font);\n            }\n            else {\n                if (tokenWidthNotSpecified) {\n                    var textBackgroundColor = tokenStyle.backgroundColor;\n                    var bgImg = textBackgroundColor && textBackgroundColor.image;\n                    if (bgImg) {\n                        bgImg = imageHelper.findExistImage(bgImg);\n                        if (imageHelper.isImageReady(bgImg)) {\n                            token.width = Math.max(token.width, bgImg.width * tokenHeight / bgImg.height);\n                        }\n                    }\n                }\n                var remainTruncWidth = truncate && topWidth != null\n                    ? topWidth - lineWidth : null;\n                if (remainTruncWidth != null && remainTruncWidth < token.width) {\n                    if (!tokenWidthNotSpecified || remainTruncWidth < paddingH) {\n                        token.text = '';\n                        token.width = token.contentWidth = 0;\n                    }\n                    else {\n                        token.text = truncateText(token.text, remainTruncWidth - paddingH, font, style.ellipsis, { minChar: style.truncateMinChar });\n                        token.width = token.contentWidth = getWidth(token.text, font);\n                    }\n                }\n                else {\n                    token.contentWidth = getWidth(token.text, font);\n                }\n            }\n            token.width += paddingH;\n            lineWidth += token.width;\n            tokenStyle && (lineHeight = Math.max(lineHeight, token.lineHeight));\n            prevToken = token;\n        }\n        finishLine(line, lineWidth, lineHeight);\n    }\n    contentBlock.outerWidth = contentBlock.width = retrieve2(topWidth, calculatedWidth);\n    contentBlock.outerHeight = contentBlock.height = retrieve2(topHeight, calculatedHeight);\n    contentBlock.contentHeight = calculatedHeight;\n    contentBlock.contentWidth = calculatedWidth;\n    if (stlPadding) {\n        contentBlock.outerWidth += stlPadding[1] + stlPadding[3];\n        contentBlock.outerHeight += stlPadding[0] + stlPadding[2];\n    }\n    for (var i = 0; i < pendingList.length; i++) {\n        var token = pendingList[i];\n        var percentWidth = token.percentWidth;\n        token.width = parseInt(percentWidth, 10) / 100 * contentBlock.width;\n    }\n    return contentBlock;\n}\nfunction pushTokens(block, str, style, wrapInfo, styleName) {\n    var isEmptyStr = str === '';\n    var tokenStyle = styleName && style.rich[styleName] || {};\n    var lines = block.lines;\n    var font = tokenStyle.font || style.font;\n    var newLine = false;\n    var strLines;\n    var linesWidths;\n    if (wrapInfo) {\n        var tokenPadding = tokenStyle.padding;\n        var tokenPaddingH = tokenPadding ? tokenPadding[1] + tokenPadding[3] : 0;\n        if (tokenStyle.width != null && tokenStyle.width !== 'auto') {\n            var outerWidth_1 = parsePercent(tokenStyle.width, wrapInfo.width) + tokenPaddingH;\n            if (lines.length > 0) {\n                if (outerWidth_1 + wrapInfo.accumWidth > wrapInfo.width) {\n                    strLines = str.split('\\n');\n                    newLine = true;\n                }\n            }\n            wrapInfo.accumWidth = outerWidth_1;\n        }\n        else {\n            var res = wrapText(str, font, wrapInfo.width, wrapInfo.breakAll, wrapInfo.accumWidth);\n            wrapInfo.accumWidth = res.accumWidth + tokenPaddingH;\n            linesWidths = res.linesWidths;\n            strLines = res.lines;\n        }\n    }\n    else {\n        strLines = str.split('\\n');\n    }\n    for (var i = 0; i < strLines.length; i++) {\n        var text = strLines[i];\n        var token = new RichTextToken();\n        token.styleName = styleName;\n        token.text = text;\n        token.isLineHolder = !text && !isEmptyStr;\n        if (typeof tokenStyle.width === 'number') {\n            token.width = tokenStyle.width;\n        }\n        else {\n            token.width = linesWidths\n                ? linesWidths[i]\n                : getWidth(text, font);\n        }\n        if (!i && !newLine) {\n            var tokens = (lines[lines.length - 1] || (lines[0] = new RichTextLine())).tokens;\n            var tokensLen = tokens.length;\n            (tokensLen === 1 && tokens[0].isLineHolder)\n                ? (tokens[0] = token)\n                : ((text || !tokensLen || isEmptyStr) && tokens.push(token));\n        }\n        else {\n            lines.push(new RichTextLine([token]));\n        }\n    }\n}\nfunction isLatin(ch) {\n    var code = ch.charCodeAt(0);\n    return code >= 0x21 && code <= 0xFF;\n}\nvar breakCharMap = reduce(',&?/;] '.split(''), function (obj, ch) {\n    obj[ch] = true;\n    return obj;\n}, {});\nfunction isWordBreakChar(ch) {\n    if (isLatin(ch)) {\n        if (breakCharMap[ch]) {\n            return true;\n        }\n        return false;\n    }\n    return true;\n}\nfunction wrapText(text, font, lineWidth, isBreakAll, lastAccumWidth) {\n    var lines = [];\n    var linesWidths = [];\n    var line = '';\n    var currentWord = '';\n    var currentWordWidth = 0;\n    var accumWidth = 0;\n    for (var i = 0; i < text.length; i++) {\n        var ch = text.charAt(i);\n        if (ch === '\\n') {\n            if (currentWord) {\n                line += currentWord;\n                accumWidth += currentWordWidth;\n            }\n            lines.push(line);\n            linesWidths.push(accumWidth);\n            line = '';\n            currentWord = '';\n            currentWordWidth = 0;\n            accumWidth = 0;\n            continue;\n        }\n        var chWidth = getWidth(ch, font);\n        var inWord = isBreakAll ? false : !isWordBreakChar(ch);\n        if (!lines.length\n            ? lastAccumWidth + accumWidth + chWidth > lineWidth\n            : accumWidth + chWidth > lineWidth) {\n            if (!accumWidth) {\n                if (inWord) {\n                    lines.push(currentWord);\n                    linesWidths.push(currentWordWidth);\n                    currentWord = ch;\n                    currentWordWidth = chWidth;\n                }\n                else {\n                    lines.push(ch);\n                    linesWidths.push(chWidth);\n                }\n            }\n            else if (line || currentWord) {\n                if (inWord) {\n                    if (!line) {\n                        line = currentWord;\n                        currentWord = '';\n                        currentWordWidth = 0;\n                        accumWidth = currentWordWidth;\n                    }\n                    lines.push(line);\n                    linesWidths.push(accumWidth - currentWordWidth);\n                    currentWord += ch;\n                    currentWordWidth += chWidth;\n                    line = '';\n                    accumWidth = currentWordWidth;\n                }\n                else {\n                    if (currentWord) {\n                        line += currentWord;\n                        accumWidth += currentWordWidth;\n                        currentWord = '';\n                        currentWordWidth = 0;\n                    }\n                    lines.push(line);\n                    linesWidths.push(accumWidth);\n                    line = ch;\n                    accumWidth = chWidth;\n                }\n            }\n            continue;\n        }\n        accumWidth += chWidth;\n        if (inWord) {\n            currentWord += ch;\n            currentWordWidth += chWidth;\n        }\n        else {\n            if (currentWord) {\n                line += currentWord;\n                currentWord = '';\n                currentWordWidth = 0;\n            }\n            line += ch;\n        }\n    }\n    if (!lines.length && !line) {\n        line = text;\n        currentWord = '';\n        currentWordWidth = 0;\n    }\n    if (currentWord) {\n        line += currentWord;\n    }\n    if (line) {\n        lines.push(line);\n        linesWidths.push(accumWidth);\n    }\n    if (lines.length === 1) {\n        accumWidth += lastAccumWidth;\n    }\n    return {\n        accumWidth: accumWidth,\n        lines: lines,\n        linesWidths: linesWidths\n    };\n}\nfunction parsePercent(value, maxValue) {\n    if (typeof value === 'string') {\n        if (value.lastIndexOf('%') >= 0) {\n            return parseFloat(value) / 100 * maxValue;\n        }\n        return parseFloat(value);\n    }\n    return value;\n}\n","import { __extends } from \"tslib\";\nimport Element from '../Element';\nimport BoundingRect from '../core/BoundingRect';\nimport { keys, extend, createObject } from '../core/util';\nvar STYLE_MAGIC_KEY = '__zr_style_' + Math.round((Math.random() * 10));\nexport var DEFAULT_COMMON_STYLE = {\n    shadowBlur: 0,\n    shadowOffsetX: 0,\n    shadowOffsetY: 0,\n    shadowColor: '#000',\n    opacity: 1,\n    blend: 'source-over'\n};\nexport var DEFAULT_COMMON_ANIMATION_PROPS = {\n    style: {\n        shadowBlur: true,\n        shadowOffsetX: true,\n        shadowOffsetY: true,\n        shadowColor: true,\n        opacity: true\n    }\n};\nDEFAULT_COMMON_STYLE[STYLE_MAGIC_KEY] = true;\nvar PRIMARY_STATES_KEYS = ['z', 'z2', 'invisible'];\nvar Displayable = (function (_super) {\n    __extends(Displayable, _super);\n    function Displayable(props) {\n        return _super.call(this, props) || this;\n    }\n    Displayable.prototype._init = function (props) {\n        var keysArr = keys(props);\n        for (var i = 0; i < keysArr.length; i++) {\n            var key = keysArr[i];\n            if (key === 'style') {\n                this.useStyle(props[key]);\n            }\n            else {\n                _super.prototype.attrKV.call(this, key, props[key]);\n            }\n        }\n        if (!this.style) {\n            this.useStyle({});\n        }\n    };\n    Displayable.prototype.beforeBrush = function () { };\n    Displayable.prototype.afterBrush = function () { };\n    Displayable.prototype.innerBeforeBrush = function () { };\n    Displayable.prototype.innerAfterBrush = function () { };\n    Displayable.prototype.shouldBePainted = function (viewWidth, viewHeight, considerClipPath, considerAncestors) {\n        var m = this.transform;\n        if (this.ignore\n            || this.invisible\n            || this.style.opacity === 0\n            || (this.culling\n                && isDisplayableCulled(this, viewWidth, viewHeight))\n            || (m && !m[0] && !m[3])) {\n            return false;\n        }\n        if (considerClipPath && this.__clipPaths) {\n            for (var i = 0; i < this.__clipPaths.length; ++i) {\n                if (this.__clipPaths[i].isZeroArea()) {\n                    return false;\n                }\n            }\n        }\n        if (considerAncestors && this.parent) {\n            var parent_1 = this.parent;\n            while (parent_1) {\n                if (parent_1.ignore) {\n                    return false;\n                }\n                parent_1 = parent_1.parent;\n            }\n        }\n        return true;\n    };\n    Displayable.prototype.contain = function (x, y) {\n        return this.rectContain(x, y);\n    };\n    Displayable.prototype.traverse = function (cb, context) {\n        cb.call(context, this);\n    };\n    Displayable.prototype.rectContain = function (x, y) {\n        var coord = this.transformCoordToLocal(x, y);\n        var rect = this.getBoundingRect();\n        return rect.contain(coord[0], coord[1]);\n    };\n    Displayable.prototype.getPaintRect = function () {\n        var rect = this._paintRect;\n        if (!this._paintRect || this.__dirty) {\n            var transform = this.transform;\n            var elRect = this.getBoundingRect();\n            var style = this.style;\n            var shadowSize = style.shadowBlur || 0;\n            var shadowOffsetX = style.shadowOffsetX || 0;\n            var shadowOffsetY = style.shadowOffsetY || 0;\n            rect = this._paintRect || (this._paintRect = new BoundingRect(0, 0, 0, 0));\n            if (transform) {\n                BoundingRect.applyTransform(rect, elRect, transform);\n            }\n            else {\n                rect.copy(elRect);\n            }\n            if (shadowSize || shadowOffsetX || shadowOffsetY) {\n                rect.width += shadowSize * 2 + Math.abs(shadowOffsetX);\n                rect.height += shadowSize * 2 + Math.abs(shadowOffsetY);\n                rect.x = Math.min(rect.x, rect.x + shadowOffsetX - shadowSize);\n                rect.y = Math.min(rect.y, rect.y + shadowOffsetY - shadowSize);\n            }\n            var tolerance = this.dirtyRectTolerance;\n            if (!rect.isZero()) {\n                rect.x = Math.floor(rect.x - tolerance);\n                rect.y = Math.floor(rect.y - tolerance);\n                rect.width = Math.ceil(rect.width + 1 + tolerance * 2);\n                rect.height = Math.ceil(rect.height + 1 + tolerance * 2);\n            }\n        }\n        return rect;\n    };\n    Displayable.prototype.setPrevPaintRect = function (paintRect) {\n        if (paintRect) {\n            this._prevPaintRect = this._prevPaintRect || new BoundingRect(0, 0, 0, 0);\n            this._prevPaintRect.copy(paintRect);\n        }\n        else {\n            this._prevPaintRect = null;\n        }\n    };\n    Displayable.prototype.getPrevPaintRect = function () {\n        return this._prevPaintRect;\n    };\n    Displayable.prototype.animateStyle = function (loop) {\n        return this.animate('style', loop);\n    };\n    Displayable.prototype.updateDuringAnimation = function (targetKey) {\n        if (targetKey === 'style') {\n            this.dirtyStyle();\n        }\n        else {\n            this.markRedraw();\n        }\n    };\n    Displayable.prototype.attrKV = function (key, value) {\n        if (key !== 'style') {\n            _super.prototype.attrKV.call(this, key, value);\n        }\n        else {\n            if (!this.style) {\n                this.useStyle(value);\n            }\n            else {\n                this.setStyle(value);\n            }\n        }\n    };\n    Displayable.prototype.setStyle = function (keyOrObj, value) {\n        if (typeof keyOrObj === 'string') {\n            this.style[keyOrObj] = value;\n        }\n        else {\n            extend(this.style, keyOrObj);\n        }\n        this.dirtyStyle();\n        return this;\n    };\n    Displayable.prototype.dirtyStyle = function () {\n        this.markRedraw();\n        this.__dirty |= Displayable.STYLE_CHANGED_BIT;\n        if (this._rect) {\n            this._rect = null;\n        }\n    };\n    Displayable.prototype.dirty = function () {\n        this.dirtyStyle();\n    };\n    Displayable.prototype.styleChanged = function () {\n        return !!(this.__dirty & Displayable.STYLE_CHANGED_BIT);\n    };\n    Displayable.prototype.styleUpdated = function () {\n        this.__dirty &= ~Displayable.STYLE_CHANGED_BIT;\n    };\n    Displayable.prototype.createStyle = function (obj) {\n        return createObject(DEFAULT_COMMON_STYLE, obj);\n    };\n    Displayable.prototype.useStyle = function (obj) {\n        if (!obj[STYLE_MAGIC_KEY]) {\n            obj = this.createStyle(obj);\n        }\n        if (this.__inHover) {\n            this.__hoverStyle = obj;\n        }\n        else {\n            this.style = obj;\n        }\n        this.dirtyStyle();\n    };\n    Displayable.prototype.isStyleObject = function (obj) {\n        return obj[STYLE_MAGIC_KEY];\n    };\n    Displayable.prototype._innerSaveToNormal = function (toState) {\n        _super.prototype._innerSaveToNormal.call(this, toState);\n        var normalState = this._normalState;\n        if (toState.style && !normalState.style) {\n            normalState.style = this._mergeStyle(this.createStyle(), this.style);\n        }\n        this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS);\n    };\n    Displayable.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\n        _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\n        var needsRestoreToNormal = !(state && keepCurrentStates);\n        var targetStyle;\n        if (state && state.style) {\n            if (transition) {\n                if (keepCurrentStates) {\n                    targetStyle = state.style;\n                }\n                else {\n                    targetStyle = this._mergeStyle(this.createStyle(), normalState.style);\n                    this._mergeStyle(targetStyle, state.style);\n                }\n            }\n            else {\n                targetStyle = this._mergeStyle(this.createStyle(), keepCurrentStates ? this.style : normalState.style);\n                this._mergeStyle(targetStyle, state.style);\n            }\n        }\n        else if (needsRestoreToNormal) {\n            targetStyle = normalState.style;\n        }\n        if (targetStyle) {\n            if (transition) {\n                var sourceStyle = this.style;\n                this.style = this.createStyle(needsRestoreToNormal ? {} : sourceStyle);\n                if (needsRestoreToNormal) {\n                    var changedKeys = keys(sourceStyle);\n                    for (var i = 0; i < changedKeys.length; i++) {\n                        var key = changedKeys[i];\n                        if (key in targetStyle) {\n                            targetStyle[key] = targetStyle[key];\n                            this.style[key] = sourceStyle[key];\n                        }\n                    }\n                }\n                var targetKeys = keys(targetStyle);\n                for (var i = 0; i < targetKeys.length; i++) {\n                    var key = targetKeys[i];\n                    this.style[key] = this.style[key];\n                }\n                this._transitionState(stateName, {\n                    style: targetStyle\n                }, animationCfg, this.getAnimationStyleProps());\n            }\n            else {\n                this.useStyle(targetStyle);\n            }\n        }\n        for (var i = 0; i < PRIMARY_STATES_KEYS.length; i++) {\n            var key = PRIMARY_STATES_KEYS[i];\n            if (state && state[key] != null) {\n                this[key] = state[key];\n            }\n            else if (needsRestoreToNormal) {\n                if (normalState[key] != null) {\n                    this[key] = normalState[key];\n                }\n            }\n        }\n    };\n    Displayable.prototype._mergeStates = function (states) {\n        var mergedState = _super.prototype._mergeStates.call(this, states);\n        var mergedStyle;\n        for (var i = 0; i < states.length; i++) {\n            var state = states[i];\n            if (state.style) {\n                mergedStyle = mergedStyle || {};\n                this._mergeStyle(mergedStyle, state.style);\n            }\n        }\n        if (mergedStyle) {\n            mergedState.style = mergedStyle;\n        }\n        return mergedState;\n    };\n    Displayable.prototype._mergeStyle = function (targetStyle, sourceStyle) {\n        extend(targetStyle, sourceStyle);\n        return targetStyle;\n    };\n    Displayable.prototype.getAnimationStyleProps = function () {\n        return DEFAULT_COMMON_ANIMATION_PROPS;\n    };\n    Displayable.STYLE_CHANGED_BIT = 2;\n    Displayable.initDefaultProps = (function () {\n        var dispProto = Displayable.prototype;\n        dispProto.type = 'displayable';\n        dispProto.invisible = false;\n        dispProto.z = 0;\n        dispProto.z2 = 0;\n        dispProto.zlevel = 0;\n        dispProto.culling = false;\n        dispProto.cursor = 'pointer';\n        dispProto.rectHover = false;\n        dispProto.incremental = false;\n        dispProto._rect = null;\n        dispProto.dirtyRectTolerance = 0;\n        dispProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT;\n    })();\n    return Displayable;\n}(Element));\nvar tmpRect = new BoundingRect(0, 0, 0, 0);\nvar viewRect = new BoundingRect(0, 0, 0, 0);\nfunction isDisplayableCulled(el, width, height) {\n    tmpRect.copy(el.getBoundingRect());\n    if (el.transform) {\n        tmpRect.applyTransform(el.transform);\n    }\n    viewRect.width = width;\n    viewRect.height = height;\n    return !tmpRect.intersect(viewRect);\n}\nexport default Displayable;\n","import { create as v2Create, distSquare as v2DistSquare } from './vector';\nvar mathPow = Math.pow;\nvar mathSqrt = Math.sqrt;\nvar EPSILON = 1e-8;\nvar EPSILON_NUMERIC = 1e-4;\nvar THREE_SQRT = mathSqrt(3);\nvar ONE_THIRD = 1 / 3;\nvar _v0 = v2Create();\nvar _v1 = v2Create();\nvar _v2 = v2Create();\nfunction isAroundZero(val) {\n    return val > -EPSILON && val < EPSILON;\n}\nfunction isNotAroundZero(val) {\n    return val > EPSILON || val < -EPSILON;\n}\nexport function cubicAt(p0, p1, p2, p3, t) {\n    var onet = 1 - t;\n    return onet * onet * (onet * p0 + 3 * t * p1)\n        + t * t * (t * p3 + 3 * onet * p2);\n}\nexport function cubicDerivativeAt(p0, p1, p2, p3, t) {\n    var onet = 1 - t;\n    return 3 * (((p1 - p0) * onet + 2 * (p2 - p1) * t) * onet\n        + (p3 - p2) * t * t);\n}\nexport function cubicRootAt(p0, p1, p2, p3, val, roots) {\n    var a = p3 + 3 * (p1 - p2) - p0;\n    var b = 3 * (p2 - p1 * 2 + p0);\n    var c = 3 * (p1 - p0);\n    var d = p0 - val;\n    var A = b * b - 3 * a * c;\n    var B = b * c - 9 * a * d;\n    var C = c * c - 3 * b * d;\n    var n = 0;\n    if (isAroundZero(A) && isAroundZero(B)) {\n        if (isAroundZero(b)) {\n            roots[0] = 0;\n        }\n        else {\n            var t1 = -c / b;\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n        }\n    }\n    else {\n        var disc = B * B - 4 * A * C;\n        if (isAroundZero(disc)) {\n            var K = B / A;\n            var t1 = -b / a + K;\n            var t2 = -K / 2;\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n            if (t2 >= 0 && t2 <= 1) {\n                roots[n++] = t2;\n            }\n        }\n        else if (disc > 0) {\n            var discSqrt = mathSqrt(disc);\n            var Y1 = A * b + 1.5 * a * (-B + discSqrt);\n            var Y2 = A * b + 1.5 * a * (-B - discSqrt);\n            if (Y1 < 0) {\n                Y1 = -mathPow(-Y1, ONE_THIRD);\n            }\n            else {\n                Y1 = mathPow(Y1, ONE_THIRD);\n            }\n            if (Y2 < 0) {\n                Y2 = -mathPow(-Y2, ONE_THIRD);\n            }\n            else {\n                Y2 = mathPow(Y2, ONE_THIRD);\n            }\n            var t1 = (-b - (Y1 + Y2)) / (3 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n        }\n        else {\n            var T = (2 * A * b - 3 * a * B) / (2 * mathSqrt(A * A * A));\n            var theta = Math.acos(T) / 3;\n            var ASqrt = mathSqrt(A);\n            var tmp = Math.cos(theta);\n            var t1 = (-b - 2 * ASqrt * tmp) / (3 * a);\n            var t2 = (-b + ASqrt * (tmp + THREE_SQRT * Math.sin(theta))) / (3 * a);\n            var t3 = (-b + ASqrt * (tmp - THREE_SQRT * Math.sin(theta))) / (3 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n            if (t2 >= 0 && t2 <= 1) {\n                roots[n++] = t2;\n            }\n            if (t3 >= 0 && t3 <= 1) {\n                roots[n++] = t3;\n            }\n        }\n    }\n    return n;\n}\nexport function cubicExtrema(p0, p1, p2, p3, extrema) {\n    var b = 6 * p2 - 12 * p1 + 6 * p0;\n    var a = 9 * p1 + 3 * p3 - 3 * p0 - 9 * p2;\n    var c = 3 * p1 - 3 * p0;\n    var n = 0;\n    if (isAroundZero(a)) {\n        if (isNotAroundZero(b)) {\n            var t1 = -c / b;\n            if (t1 >= 0 && t1 <= 1) {\n                extrema[n++] = t1;\n            }\n        }\n    }\n    else {\n        var disc = b * b - 4 * a * c;\n        if (isAroundZero(disc)) {\n            extrema[0] = -b / (2 * a);\n        }\n        else if (disc > 0) {\n            var discSqrt = mathSqrt(disc);\n            var t1 = (-b + discSqrt) / (2 * a);\n            var t2 = (-b - discSqrt) / (2 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                extrema[n++] = t1;\n            }\n            if (t2 >= 0 && t2 <= 1) {\n                extrema[n++] = t2;\n            }\n        }\n    }\n    return n;\n}\nexport function cubicSubdivide(p0, p1, p2, p3, t, out) {\n    var p01 = (p1 - p0) * t + p0;\n    var p12 = (p2 - p1) * t + p1;\n    var p23 = (p3 - p2) * t + p2;\n    var p012 = (p12 - p01) * t + p01;\n    var p123 = (p23 - p12) * t + p12;\n    var p0123 = (p123 - p012) * t + p012;\n    out[0] = p0;\n    out[1] = p01;\n    out[2] = p012;\n    out[3] = p0123;\n    out[4] = p0123;\n    out[5] = p123;\n    out[6] = p23;\n    out[7] = p3;\n}\nexport function cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, out) {\n    var t;\n    var interval = 0.005;\n    var d = Infinity;\n    var prev;\n    var next;\n    var d1;\n    var d2;\n    _v0[0] = x;\n    _v0[1] = y;\n    for (var _t = 0; _t < 1; _t += 0.05) {\n        _v1[0] = cubicAt(x0, x1, x2, x3, _t);\n        _v1[1] = cubicAt(y0, y1, y2, y3, _t);\n        d1 = v2DistSquare(_v0, _v1);\n        if (d1 < d) {\n            t = _t;\n            d = d1;\n        }\n    }\n    d = Infinity;\n    for (var i = 0; i < 32; i++) {\n        if (interval < EPSILON_NUMERIC) {\n            break;\n        }\n        prev = t - interval;\n        next = t + interval;\n        _v1[0] = cubicAt(x0, x1, x2, x3, prev);\n        _v1[1] = cubicAt(y0, y1, y2, y3, prev);\n        d1 = v2DistSquare(_v1, _v0);\n        if (prev >= 0 && d1 < d) {\n            t = prev;\n            d = d1;\n        }\n        else {\n            _v2[0] = cubicAt(x0, x1, x2, x3, next);\n            _v2[1] = cubicAt(y0, y1, y2, y3, next);\n            d2 = v2DistSquare(_v2, _v0);\n            if (next <= 1 && d2 < d) {\n                t = next;\n                d = d2;\n            }\n            else {\n                interval *= 0.5;\n            }\n        }\n    }\n    if (out) {\n        out[0] = cubicAt(x0, x1, x2, x3, t);\n        out[1] = cubicAt(y0, y1, y2, y3, t);\n    }\n    return mathSqrt(d);\n}\nexport function cubicLength(x0, y0, x1, y1, x2, y2, x3, y3, iteration) {\n    var px = x0;\n    var py = y0;\n    var d = 0;\n    var step = 1 / iteration;\n    for (var i = 1; i <= iteration; i++) {\n        var t = i * step;\n        var x = cubicAt(x0, x1, x2, x3, t);\n        var y = cubicAt(y0, y1, y2, y3, t);\n        var dx = x - px;\n        var dy = y - py;\n        d += Math.sqrt(dx * dx + dy * dy);\n        px = x;\n        py = y;\n    }\n    return d;\n}\nexport function quadraticAt(p0, p1, p2, t) {\n    var onet = 1 - t;\n    return onet * (onet * p0 + 2 * t * p1) + t * t * p2;\n}\nexport function quadraticDerivativeAt(p0, p1, p2, t) {\n    return 2 * ((1 - t) * (p1 - p0) + t * (p2 - p1));\n}\nexport function quadraticRootAt(p0, p1, p2, val, roots) {\n    var a = p0 - 2 * p1 + p2;\n    var b = 2 * (p1 - p0);\n    var c = p0 - val;\n    var n = 0;\n    if (isAroundZero(a)) {\n        if (isNotAroundZero(b)) {\n            var t1 = -c / b;\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n        }\n    }\n    else {\n        var disc = b * b - 4 * a * c;\n        if (isAroundZero(disc)) {\n            var t1 = -b / (2 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n        }\n        else if (disc > 0) {\n            var discSqrt = mathSqrt(disc);\n            var t1 = (-b + discSqrt) / (2 * a);\n            var t2 = (-b - discSqrt) / (2 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n            if (t2 >= 0 && t2 <= 1) {\n                roots[n++] = t2;\n            }\n        }\n    }\n    return n;\n}\nexport function quadraticExtremum(p0, p1, p2) {\n    var divider = p0 + p2 - 2 * p1;\n    if (divider === 0) {\n        return 0.5;\n    }\n    else {\n        return (p0 - p1) / divider;\n    }\n}\nexport function quadraticSubdivide(p0, p1, p2, t, out) {\n    var p01 = (p1 - p0) * t + p0;\n    var p12 = (p2 - p1) * t + p1;\n    var p012 = (p12 - p01) * t + p01;\n    out[0] = p0;\n    out[1] = p01;\n    out[2] = p012;\n    out[3] = p012;\n    out[4] = p12;\n    out[5] = p2;\n}\nexport function quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, out) {\n    var t;\n    var interval = 0.005;\n    var d = Infinity;\n    _v0[0] = x;\n    _v0[1] = y;\n    for (var _t = 0; _t < 1; _t += 0.05) {\n        _v1[0] = quadraticAt(x0, x1, x2, _t);\n        _v1[1] = quadraticAt(y0, y1, y2, _t);\n        var d1 = v2DistSquare(_v0, _v1);\n        if (d1 < d) {\n            t = _t;\n            d = d1;\n        }\n    }\n    d = Infinity;\n    for (var i = 0; i < 32; i++) {\n        if (interval < EPSILON_NUMERIC) {\n            break;\n        }\n        var prev = t - interval;\n        var next = t + interval;\n        _v1[0] = quadraticAt(x0, x1, x2, prev);\n        _v1[1] = quadraticAt(y0, y1, y2, prev);\n        var d1 = v2DistSquare(_v1, _v0);\n        if (prev >= 0 && d1 < d) {\n            t = prev;\n            d = d1;\n        }\n        else {\n            _v2[0] = quadraticAt(x0, x1, x2, next);\n            _v2[1] = quadraticAt(y0, y1, y2, next);\n            var d2 = v2DistSquare(_v2, _v0);\n            if (next <= 1 && d2 < d) {\n                t = next;\n                d = d2;\n            }\n            else {\n                interval *= 0.5;\n            }\n        }\n    }\n    if (out) {\n        out[0] = quadraticAt(x0, x1, x2, t);\n        out[1] = quadraticAt(y0, y1, y2, t);\n    }\n    return mathSqrt(d);\n}\nexport function quadraticLength(x0, y0, x1, y1, x2, y2, iteration) {\n    var px = x0;\n    var py = y0;\n    var d = 0;\n    var step = 1 / iteration;\n    for (var i = 1; i <= iteration; i++) {\n        var t = i * step;\n        var x = quadraticAt(x0, x1, x2, t);\n        var y = quadraticAt(y0, y1, y2, t);\n        var dx = x - px;\n        var dy = y - py;\n        d += Math.sqrt(dx * dx + dy * dy);\n        px = x;\n        py = y;\n    }\n    return d;\n}\n","import * as vec2 from './vector';\nimport * as curve from './curve';\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI2 = Math.PI * 2;\nvar start = vec2.create();\nvar end = vec2.create();\nvar extremity = vec2.create();\nexport function fromPoints(points, min, max) {\n    if (points.length === 0) {\n        return;\n    }\n    var p = points[0];\n    var left = p[0];\n    var right = p[0];\n    var top = p[1];\n    var bottom = p[1];\n    for (var i = 1; i < points.length; i++) {\n        p = points[i];\n        left = mathMin(left, p[0]);\n        right = mathMax(right, p[0]);\n        top = mathMin(top, p[1]);\n        bottom = mathMax(bottom, p[1]);\n    }\n    min[0] = left;\n    min[1] = top;\n    max[0] = right;\n    max[1] = bottom;\n}\nexport function fromLine(x0, y0, x1, y1, min, max) {\n    min[0] = mathMin(x0, x1);\n    min[1] = mathMin(y0, y1);\n    max[0] = mathMax(x0, x1);\n    max[1] = mathMax(y0, y1);\n}\nvar xDim = [];\nvar yDim = [];\nexport function fromCubic(x0, y0, x1, y1, x2, y2, x3, y3, min, max) {\n    var cubicExtrema = curve.cubicExtrema;\n    var cubicAt = curve.cubicAt;\n    var n = cubicExtrema(x0, x1, x2, x3, xDim);\n    min[0] = Infinity;\n    min[1] = Infinity;\n    max[0] = -Infinity;\n    max[1] = -Infinity;\n    for (var i = 0; i < n; i++) {\n        var x = cubicAt(x0, x1, x2, x3, xDim[i]);\n        min[0] = mathMin(x, min[0]);\n        max[0] = mathMax(x, max[0]);\n    }\n    n = cubicExtrema(y0, y1, y2, y3, yDim);\n    for (var i = 0; i < n; i++) {\n        var y = cubicAt(y0, y1, y2, y3, yDim[i]);\n        min[1] = mathMin(y, min[1]);\n        max[1] = mathMax(y, max[1]);\n    }\n    min[0] = mathMin(x0, min[0]);\n    max[0] = mathMax(x0, max[0]);\n    min[0] = mathMin(x3, min[0]);\n    max[0] = mathMax(x3, max[0]);\n    min[1] = mathMin(y0, min[1]);\n    max[1] = mathMax(y0, max[1]);\n    min[1] = mathMin(y3, min[1]);\n    max[1] = mathMax(y3, max[1]);\n}\nexport function fromQuadratic(x0, y0, x1, y1, x2, y2, min, max) {\n    var quadraticExtremum = curve.quadraticExtremum;\n    var quadraticAt = curve.quadraticAt;\n    var tx = mathMax(mathMin(quadraticExtremum(x0, x1, x2), 1), 0);\n    var ty = mathMax(mathMin(quadraticExtremum(y0, y1, y2), 1), 0);\n    var x = quadraticAt(x0, x1, x2, tx);\n    var y = quadraticAt(y0, y1, y2, ty);\n    min[0] = mathMin(x0, x2, x);\n    min[1] = mathMin(y0, y2, y);\n    max[0] = mathMax(x0, x2, x);\n    max[1] = mathMax(y0, y2, y);\n}\nexport function fromArc(x, y, rx, ry, startAngle, endAngle, anticlockwise, min, max) {\n    var vec2Min = vec2.min;\n    var vec2Max = vec2.max;\n    var diff = Math.abs(startAngle - endAngle);\n    if (diff % PI2 < 1e-4 && diff > 1e-4) {\n        min[0] = x - rx;\n        min[1] = y - ry;\n        max[0] = x + rx;\n        max[1] = y + ry;\n        return;\n    }\n    start[0] = mathCos(startAngle) * rx + x;\n    start[1] = mathSin(startAngle) * ry + y;\n    end[0] = mathCos(endAngle) * rx + x;\n    end[1] = mathSin(endAngle) * ry + y;\n    vec2Min(min, start, end);\n    vec2Max(max, start, end);\n    startAngle = startAngle % (PI2);\n    if (startAngle < 0) {\n        startAngle = startAngle + PI2;\n    }\n    endAngle = endAngle % (PI2);\n    if (endAngle < 0) {\n        endAngle = endAngle + PI2;\n    }\n    if (startAngle > endAngle && !anticlockwise) {\n        endAngle += PI2;\n    }\n    else if (startAngle < endAngle && anticlockwise) {\n        startAngle += PI2;\n    }\n    if (anticlockwise) {\n        var tmp = endAngle;\n        endAngle = startAngle;\n        startAngle = tmp;\n    }\n    for (var angle = 0; angle < endAngle; angle += Math.PI / 2) {\n        if (angle > startAngle) {\n            extremity[0] = mathCos(angle) * rx + x;\n            extremity[1] = mathSin(angle) * ry + y;\n            vec2Min(min, extremity, min);\n            vec2Max(max, extremity, max);\n        }\n    }\n}\n","import * as vec2 from './vector';\nimport BoundingRect from './BoundingRect';\nimport { devicePixelRatio as dpr } from '../config';\nimport { fromLine, fromCubic, fromQuadratic, fromArc } from './bbox';\nimport { cubicAt, cubicLength, cubicSubdivide, quadraticLength, quadraticSubdivide } from './curve';\nvar CMD = {\n    M: 1,\n    L: 2,\n    C: 3,\n    Q: 4,\n    A: 5,\n    Z: 6,\n    R: 7\n};\nvar tmpOutX = [];\nvar tmpOutY = [];\nvar min = [];\nvar max = [];\nvar min2 = [];\nvar max2 = [];\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathCos = Math.cos;\nvar mathSin = Math.sin;\nvar mathSqrt = Math.sqrt;\nvar mathAbs = Math.abs;\nvar PI = Math.PI;\nvar PI2 = PI * 2;\nvar hasTypedArray = typeof Float32Array !== 'undefined';\nvar tmpAngles = [];\nfunction modPI2(radian) {\n    var n = Math.round(radian / PI * 1e8) / 1e8;\n    return (n % 2) * PI;\n}\nexport function normalizeArcAngles(angles, anticlockwise) {\n    var newStartAngle = modPI2(angles[0]);\n    if (newStartAngle < 0) {\n        newStartAngle += PI2;\n    }\n    var delta = newStartAngle - angles[0];\n    var newEndAngle = angles[1];\n    newEndAngle += delta;\n    if (!anticlockwise && newEndAngle - newStartAngle >= PI2) {\n        newEndAngle = newStartAngle + PI2;\n    }\n    else if (anticlockwise && newStartAngle - newEndAngle >= PI2) {\n        newEndAngle = newStartAngle - PI2;\n    }\n    else if (!anticlockwise && newStartAngle > newEndAngle) {\n        newEndAngle = newStartAngle +\n            (PI2 - modPI2(newStartAngle - newEndAngle));\n    }\n    else if (anticlockwise && newStartAngle < newEndAngle) {\n        newEndAngle = newStartAngle -\n            (PI2 - modPI2(newEndAngle - newStartAngle));\n    }\n    angles[0] = newStartAngle;\n    angles[1] = newEndAngle;\n}\nvar PathProxy = (function () {\n    function PathProxy(notSaveData) {\n        this.dpr = 1;\n        this._version = 0;\n        this._xi = 0;\n        this._yi = 0;\n        this._x0 = 0;\n        this._y0 = 0;\n        this._len = 0;\n        if (notSaveData) {\n            this._saveData = false;\n        }\n        if (this._saveData) {\n            this.data = [];\n        }\n    }\n    PathProxy.prototype.increaseVersion = function () {\n        this._version++;\n    };\n    PathProxy.prototype.getVersion = function () {\n        return this._version;\n    };\n    PathProxy.prototype.setScale = function (sx, sy, segmentIgnoreThreshold) {\n        segmentIgnoreThreshold = segmentIgnoreThreshold || 0;\n        if (segmentIgnoreThreshold > 0) {\n            this._ux = mathAbs(segmentIgnoreThreshold / dpr / sx) || 0;\n            this._uy = mathAbs(segmentIgnoreThreshold / dpr / sy) || 0;\n        }\n    };\n    PathProxy.prototype.setDPR = function (dpr) {\n        this.dpr = dpr;\n    };\n    PathProxy.prototype.setContext = function (ctx) {\n        this._ctx = ctx;\n    };\n    PathProxy.prototype.getContext = function () {\n        return this._ctx;\n    };\n    PathProxy.prototype.beginPath = function () {\n        this._ctx && this._ctx.beginPath();\n        this.reset();\n        return this;\n    };\n    PathProxy.prototype.reset = function () {\n        if (this._saveData) {\n            this._len = 0;\n        }\n        if (this._lineDash) {\n            this._lineDash = null;\n            this._dashOffset = 0;\n        }\n        if (this._pathSegLen) {\n            this._pathSegLen = null;\n            this._pathLen = 0;\n        }\n        this._version++;\n    };\n    PathProxy.prototype.moveTo = function (x, y) {\n        this.addData(CMD.M, x, y);\n        this._ctx && this._ctx.moveTo(x, y);\n        this._x0 = x;\n        this._y0 = y;\n        this._xi = x;\n        this._yi = y;\n        return this;\n    };\n    PathProxy.prototype.lineTo = function (x, y) {\n        var exceedUnit = mathAbs(x - this._xi) > this._ux\n            || mathAbs(y - this._yi) > this._uy\n            || this._len < 5;\n        this.addData(CMD.L, x, y);\n        if (this._ctx && exceedUnit) {\n            this._needsDash ? this._dashedLineTo(x, y)\n                : this._ctx.lineTo(x, y);\n        }\n        if (exceedUnit) {\n            this._xi = x;\n            this._yi = y;\n        }\n        return this;\n    };\n    PathProxy.prototype.bezierCurveTo = function (x1, y1, x2, y2, x3, y3) {\n        this.addData(CMD.C, x1, y1, x2, y2, x3, y3);\n        if (this._ctx) {\n            this._needsDash ? this._dashedBezierTo(x1, y1, x2, y2, x3, y3)\n                : this._ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\n        }\n        this._xi = x3;\n        this._yi = y3;\n        return this;\n    };\n    PathProxy.prototype.quadraticCurveTo = function (x1, y1, x2, y2) {\n        this.addData(CMD.Q, x1, y1, x2, y2);\n        if (this._ctx) {\n            this._needsDash ? this._dashedQuadraticTo(x1, y1, x2, y2)\n                : this._ctx.quadraticCurveTo(x1, y1, x2, y2);\n        }\n        this._xi = x2;\n        this._yi = y2;\n        return this;\n    };\n    PathProxy.prototype.arc = function (cx, cy, r, startAngle, endAngle, anticlockwise) {\n        tmpAngles[0] = startAngle;\n        tmpAngles[1] = endAngle;\n        normalizeArcAngles(tmpAngles, anticlockwise);\n        startAngle = tmpAngles[0];\n        endAngle = tmpAngles[1];\n        var delta = endAngle - startAngle;\n        this.addData(CMD.A, cx, cy, r, r, startAngle, delta, 0, anticlockwise ? 0 : 1);\n        this._ctx && this._ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\n        this._xi = mathCos(endAngle) * r + cx;\n        this._yi = mathSin(endAngle) * r + cy;\n        return this;\n    };\n    PathProxy.prototype.arcTo = function (x1, y1, x2, y2, radius) {\n        if (this._ctx) {\n            this._ctx.arcTo(x1, y1, x2, y2, radius);\n        }\n        return this;\n    };\n    PathProxy.prototype.rect = function (x, y, w, h) {\n        this._ctx && this._ctx.rect(x, y, w, h);\n        this.addData(CMD.R, x, y, w, h);\n        return this;\n    };\n    PathProxy.prototype.closePath = function () {\n        this.addData(CMD.Z);\n        var ctx = this._ctx;\n        var x0 = this._x0;\n        var y0 = this._y0;\n        if (ctx) {\n            this._needsDash && this._dashedLineTo(x0, y0);\n            ctx.closePath();\n        }\n        this._xi = x0;\n        this._yi = y0;\n        return this;\n    };\n    PathProxy.prototype.fill = function (ctx) {\n        ctx && ctx.fill();\n        this.toStatic();\n    };\n    PathProxy.prototype.stroke = function (ctx) {\n        ctx && ctx.stroke();\n        this.toStatic();\n    };\n    PathProxy.prototype.setLineDash = function (lineDash) {\n        if (lineDash instanceof Array) {\n            this._lineDash = lineDash;\n            this._dashIdx = 0;\n            var lineDashSum = 0;\n            for (var i = 0; i < lineDash.length; i++) {\n                lineDashSum += lineDash[i];\n            }\n            this._dashSum = lineDashSum;\n            this._needsDash = true;\n        }\n        else {\n            this._lineDash = null;\n            this._needsDash = false;\n        }\n        return this;\n    };\n    PathProxy.prototype.setLineDashOffset = function (offset) {\n        this._dashOffset = offset;\n        return this;\n    };\n    PathProxy.prototype.len = function () {\n        return this._len;\n    };\n    PathProxy.prototype.setData = function (data) {\n        var len = data.length;\n        if (!(this.data && this.data.length === len) && hasTypedArray) {\n            this.data = new Float32Array(len);\n        }\n        for (var i = 0; i < len; i++) {\n            this.data[i] = data[i];\n        }\n        this._len = len;\n    };\n    PathProxy.prototype.appendPath = function (path) {\n        if (!(path instanceof Array)) {\n            path = [path];\n        }\n        var len = path.length;\n        var appendSize = 0;\n        var offset = this._len;\n        for (var i = 0; i < len; i++) {\n            appendSize += path[i].len();\n        }\n        if (hasTypedArray && (this.data instanceof Float32Array)) {\n            this.data = new Float32Array(offset + appendSize);\n        }\n        for (var i = 0; i < len; i++) {\n            var appendPathData = path[i].data;\n            for (var k = 0; k < appendPathData.length; k++) {\n                this.data[offset++] = appendPathData[k];\n            }\n        }\n        this._len = offset;\n    };\n    PathProxy.prototype.addData = function (cmd, a, b, c, d, e, f, g, h) {\n        if (!this._saveData) {\n            return;\n        }\n        var data = this.data;\n        if (this._len + arguments.length > data.length) {\n            this._expandData();\n            data = this.data;\n        }\n        for (var i = 0; i < arguments.length; i++) {\n            data[this._len++] = arguments[i];\n        }\n    };\n    PathProxy.prototype._expandData = function () {\n        if (!(this.data instanceof Array)) {\n            var newData = [];\n            for (var i = 0; i < this._len; i++) {\n                newData[i] = this.data[i];\n            }\n            this.data = newData;\n        }\n    };\n    PathProxy.prototype._dashedLineTo = function (x1, y1) {\n        var dashSum = this._dashSum;\n        var lineDash = this._lineDash;\n        var ctx = this._ctx;\n        var offset = this._dashOffset;\n        var x0 = this._xi;\n        var y0 = this._yi;\n        var dx = x1 - x0;\n        var dy = y1 - y0;\n        var dist = mathSqrt(dx * dx + dy * dy);\n        var x = x0;\n        var y = y0;\n        var nDash = lineDash.length;\n        var dash;\n        var idx;\n        dx /= dist;\n        dy /= dist;\n        if (offset < 0) {\n            offset = dashSum + offset;\n        }\n        offset %= dashSum;\n        x -= offset * dx;\n        y -= offset * dy;\n        while ((dx > 0 && x <= x1) || (dx < 0 && x >= x1)\n            || (dx === 0 && ((dy > 0 && y <= y1) || (dy < 0 && y >= y1)))) {\n            idx = this._dashIdx;\n            dash = lineDash[idx];\n            x += dx * dash;\n            y += dy * dash;\n            this._dashIdx = (idx + 1) % nDash;\n            if ((dx > 0 && x < x0) || (dx < 0 && x > x0) || (dy > 0 && y < y0) || (dy < 0 && y > y0)) {\n                continue;\n            }\n            ctx[idx % 2 ? 'moveTo' : 'lineTo'](dx >= 0 ? mathMin(x, x1) : mathMax(x, x1), dy >= 0 ? mathMin(y, y1) : mathMax(y, y1));\n        }\n        dx = x - x1;\n        dy = y - y1;\n        this._dashOffset = -mathSqrt(dx * dx + dy * dy);\n    };\n    PathProxy.prototype._dashedBezierTo = function (x1, y1, x2, y2, x3, y3) {\n        var ctx = this._ctx;\n        var dashSum = this._dashSum;\n        var offset = this._dashOffset;\n        var lineDash = this._lineDash;\n        var x0 = this._xi;\n        var y0 = this._yi;\n        var bezierLen = 0;\n        var idx = this._dashIdx;\n        var nDash = lineDash.length;\n        var t;\n        var dx;\n        var dy;\n        var x;\n        var y;\n        var tmpLen = 0;\n        if (offset < 0) {\n            offset = dashSum + offset;\n        }\n        offset %= dashSum;\n        for (t = 0; t < 1; t += 0.1) {\n            dx = cubicAt(x0, x1, x2, x3, t + 0.1)\n                - cubicAt(x0, x1, x2, x3, t);\n            dy = cubicAt(y0, y1, y2, y3, t + 0.1)\n                - cubicAt(y0, y1, y2, y3, t);\n            bezierLen += mathSqrt(dx * dx + dy * dy);\n        }\n        for (; idx < nDash; idx++) {\n            tmpLen += lineDash[idx];\n            if (tmpLen > offset) {\n                break;\n            }\n        }\n        t = (tmpLen - offset) / bezierLen;\n        while (t <= 1) {\n            x = cubicAt(x0, x1, x2, x3, t);\n            y = cubicAt(y0, y1, y2, y3, t);\n            idx % 2 ? ctx.moveTo(x, y)\n                : ctx.lineTo(x, y);\n            t += lineDash[idx] / bezierLen;\n            idx = (idx + 1) % nDash;\n        }\n        (idx % 2 !== 0) && ctx.lineTo(x3, y3);\n        dx = x3 - x;\n        dy = y3 - y;\n        this._dashOffset = -mathSqrt(dx * dx + dy * dy);\n    };\n    PathProxy.prototype._dashedQuadraticTo = function (x1, y1, x2, y2) {\n        var x3 = x2;\n        var y3 = y2;\n        x2 = (x2 + 2 * x1) / 3;\n        y2 = (y2 + 2 * y1) / 3;\n        x1 = (this._xi + 2 * x1) / 3;\n        y1 = (this._yi + 2 * y1) / 3;\n        this._dashedBezierTo(x1, y1, x2, y2, x3, y3);\n    };\n    PathProxy.prototype.toStatic = function () {\n        if (!this._saveData) {\n            return;\n        }\n        var data = this.data;\n        if (data instanceof Array) {\n            data.length = this._len;\n            if (hasTypedArray && this._len > 11) {\n                this.data = new Float32Array(data);\n            }\n        }\n    };\n    PathProxy.prototype.getBoundingRect = function () {\n        min[0] = min[1] = min2[0] = min2[1] = Number.MAX_VALUE;\n        max[0] = max[1] = max2[0] = max2[1] = -Number.MAX_VALUE;\n        var data = this.data;\n        var xi = 0;\n        var yi = 0;\n        var x0 = 0;\n        var y0 = 0;\n        var i;\n        for (i = 0; i < this._len;) {\n            var cmd = data[i++];\n            var isFirst = i === 1;\n            if (isFirst) {\n                xi = data[i];\n                yi = data[i + 1];\n                x0 = xi;\n                y0 = yi;\n            }\n            switch (cmd) {\n                case CMD.M:\n                    xi = x0 = data[i++];\n                    yi = y0 = data[i++];\n                    min2[0] = x0;\n                    min2[1] = y0;\n                    max2[0] = x0;\n                    max2[1] = y0;\n                    break;\n                case CMD.L:\n                    fromLine(xi, yi, data[i], data[i + 1], min2, max2);\n                    xi = data[i++];\n                    yi = data[i++];\n                    break;\n                case CMD.C:\n                    fromCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], min2, max2);\n                    xi = data[i++];\n                    yi = data[i++];\n                    break;\n                case CMD.Q:\n                    fromQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], min2, max2);\n                    xi = data[i++];\n                    yi = data[i++];\n                    break;\n                case CMD.A:\n                    var cx = data[i++];\n                    var cy = data[i++];\n                    var rx = data[i++];\n                    var ry = data[i++];\n                    var startAngle = data[i++];\n                    var endAngle = data[i++] + startAngle;\n                    i += 1;\n                    var anticlockwise = !data[i++];\n                    if (isFirst) {\n                        x0 = mathCos(startAngle) * rx + cx;\n                        y0 = mathSin(startAngle) * ry + cy;\n                    }\n                    fromArc(cx, cy, rx, ry, startAngle, endAngle, anticlockwise, min2, max2);\n                    xi = mathCos(endAngle) * rx + cx;\n                    yi = mathSin(endAngle) * ry + cy;\n                    break;\n                case CMD.R:\n                    x0 = xi = data[i++];\n                    y0 = yi = data[i++];\n                    var width = data[i++];\n                    var height = data[i++];\n                    fromLine(x0, y0, x0 + width, y0 + height, min2, max2);\n                    break;\n                case CMD.Z:\n                    xi = x0;\n                    yi = y0;\n                    break;\n            }\n            vec2.min(min, min, min2);\n            vec2.max(max, max, max2);\n        }\n        if (i === 0) {\n            min[0] = min[1] = max[0] = max[1] = 0;\n        }\n        return new BoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n    };\n    PathProxy.prototype._calculateLength = function () {\n        var data = this.data;\n        var len = this._len;\n        var ux = this._ux;\n        var uy = this._uy;\n        var xi = 0;\n        var yi = 0;\n        var x0 = 0;\n        var y0 = 0;\n        if (!this._pathSegLen) {\n            this._pathSegLen = [];\n        }\n        var pathSegLen = this._pathSegLen;\n        var pathTotalLen = 0;\n        var segCount = 0;\n        for (var i = 0; i < len;) {\n            var cmd = data[i++];\n            var isFirst = i === 1;\n            if (isFirst) {\n                xi = data[i];\n                yi = data[i + 1];\n                x0 = xi;\n                y0 = yi;\n            }\n            var l = -1;\n            switch (cmd) {\n                case CMD.M:\n                    xi = x0 = data[i++];\n                    yi = y0 = data[i++];\n                    break;\n                case CMD.L: {\n                    var x2 = data[i++];\n                    var y2 = data[i++];\n                    var dx = x2 - xi;\n                    var dy = y2 - yi;\n                    if (mathAbs(dx) > ux || mathAbs(dy) > uy || i === len - 1) {\n                        l = Math.sqrt(dx * dx + dy * dy);\n                        xi = x2;\n                        yi = y2;\n                    }\n                    break;\n                }\n                case CMD.C: {\n                    var x1 = data[i++];\n                    var y1 = data[i++];\n                    var x2 = data[i++];\n                    var y2 = data[i++];\n                    var x3 = data[i++];\n                    var y3 = data[i++];\n                    l = cubicLength(xi, yi, x1, y1, x2, y2, x3, y3, 10);\n                    xi = x3;\n                    yi = y3;\n                    break;\n                }\n                case CMD.Q: {\n                    var x1 = data[i++];\n                    var y1 = data[i++];\n                    var x2 = data[i++];\n                    var y2 = data[i++];\n                    l = quadraticLength(xi, yi, x1, y1, x2, y2, 10);\n                    xi = x2;\n                    yi = y2;\n                    break;\n                }\n                case CMD.A:\n                    var cx = data[i++];\n                    var cy = data[i++];\n                    var rx = data[i++];\n                    var ry = data[i++];\n                    var startAngle = data[i++];\n                    var delta = data[i++];\n                    var endAngle = delta + startAngle;\n                    i += 1;\n                    var anticlockwise = !data[i++];\n                    if (isFirst) {\n                        x0 = mathCos(startAngle) * rx + cx;\n                        y0 = mathSin(startAngle) * ry + cy;\n                    }\n                    l = mathMax(rx, ry) * mathMin(PI2, Math.abs(delta));\n                    xi = mathCos(endAngle) * rx + cx;\n                    yi = mathSin(endAngle) * ry + cy;\n                    break;\n                case CMD.R: {\n                    x0 = xi = data[i++];\n                    y0 = yi = data[i++];\n                    var width = data[i++];\n                    var height = data[i++];\n                    l = width * 2 + height * 2;\n                    break;\n                }\n                case CMD.Z: {\n                    var dx = x0 - xi;\n                    var dy = y0 - yi;\n                    l = Math.sqrt(dx * dx + dy * dy);\n                    xi = x0;\n                    yi = y0;\n                    break;\n                }\n            }\n            if (l >= 0) {\n                pathSegLen[segCount++] = l;\n                pathTotalLen += l;\n            }\n        }\n        this._pathLen = pathTotalLen;\n        return pathTotalLen;\n    };\n    PathProxy.prototype.rebuildPath = function (ctx, percent) {\n        var d = this.data;\n        var ux = this._ux;\n        var uy = this._uy;\n        var len = this._len;\n        var x0;\n        var y0;\n        var xi;\n        var yi;\n        var x;\n        var y;\n        var drawPart = percent < 1;\n        var pathSegLen;\n        var pathTotalLen;\n        var accumLength = 0;\n        var segCount = 0;\n        var displayedLength;\n        if (drawPart) {\n            if (!this._pathSegLen) {\n                this._calculateLength();\n            }\n            pathSegLen = this._pathSegLen;\n            pathTotalLen = this._pathLen;\n            displayedLength = percent * pathTotalLen;\n            if (!displayedLength) {\n                return;\n            }\n        }\n        lo: for (var i = 0; i < len;) {\n            var cmd = d[i++];\n            var isFirst = i === 1;\n            if (isFirst) {\n                xi = d[i];\n                yi = d[i + 1];\n                x0 = xi;\n                y0 = yi;\n            }\n            switch (cmd) {\n                case CMD.M:\n                    x0 = xi = d[i++];\n                    y0 = yi = d[i++];\n                    ctx.moveTo(xi, yi);\n                    break;\n                case CMD.L: {\n                    x = d[i++];\n                    y = d[i++];\n                    if (mathAbs(x - xi) > ux || mathAbs(y - yi) > uy || i === len - 1) {\n                        if (drawPart) {\n                            var l = pathSegLen[segCount++];\n                            if (accumLength + l > displayedLength) {\n                                var t = (displayedLength - accumLength) / l;\n                                ctx.lineTo(xi * (1 - t) + x * t, yi * (1 - t) + y * t);\n                                break lo;\n                            }\n                            accumLength += l;\n                        }\n                        ctx.lineTo(x, y);\n                        xi = x;\n                        yi = y;\n                    }\n                    break;\n                }\n                case CMD.C: {\n                    var x1 = d[i++];\n                    var y1 = d[i++];\n                    var x2 = d[i++];\n                    var y2 = d[i++];\n                    var x3 = d[i++];\n                    var y3 = d[i++];\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            var t = (displayedLength - accumLength) / l;\n                            cubicSubdivide(xi, x1, x2, x3, t, tmpOutX);\n                            cubicSubdivide(yi, y1, y2, y3, t, tmpOutY);\n                            ctx.bezierCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2], tmpOutX[3], tmpOutY[3]);\n                            break lo;\n                        }\n                        accumLength += l;\n                    }\n                    ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\n                    xi = x3;\n                    yi = y3;\n                    break;\n                }\n                case CMD.Q: {\n                    var x1 = d[i++];\n                    var y1 = d[i++];\n                    var x2 = d[i++];\n                    var y2 = d[i++];\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            var t = (displayedLength - accumLength) / l;\n                            quadraticSubdivide(xi, x1, x2, t, tmpOutX);\n                            quadraticSubdivide(yi, y1, y2, t, tmpOutY);\n                            ctx.quadraticCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2]);\n                            break lo;\n                        }\n                        accumLength += l;\n                    }\n                    ctx.quadraticCurveTo(x1, y1, x2, y2);\n                    xi = x2;\n                    yi = y2;\n                    break;\n                }\n                case CMD.A:\n                    var cx = d[i++];\n                    var cy = d[i++];\n                    var rx = d[i++];\n                    var ry = d[i++];\n                    var startAngle = d[i++];\n                    var delta = d[i++];\n                    var psi = d[i++];\n                    var anticlockwise = !d[i++];\n                    var r = (rx > ry) ? rx : ry;\n                    var scaleX = (rx > ry) ? 1 : rx / ry;\n                    var scaleY = (rx > ry) ? ry / rx : 1;\n                    var isEllipse = mathAbs(rx - ry) > 1e-3;\n                    var endAngle = startAngle + delta;\n                    var breakBuild = false;\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            endAngle = startAngle + delta * (displayedLength - accumLength) / l;\n                            breakBuild = true;\n                        }\n                        accumLength += l;\n                    }\n                    if (isEllipse && ctx.ellipse) {\n                        ctx.ellipse(cx, cy, rx, ry, psi, startAngle, endAngle, anticlockwise);\n                    }\n                    else {\n                        ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\n                    }\n                    if (breakBuild) {\n                        break lo;\n                    }\n                    if (isFirst) {\n                        x0 = mathCos(startAngle) * rx + cx;\n                        y0 = mathSin(startAngle) * ry + cy;\n                    }\n                    xi = mathCos(endAngle) * rx + cx;\n                    yi = mathSin(endAngle) * ry + cy;\n                    break;\n                case CMD.R:\n                    x0 = xi = d[i];\n                    y0 = yi = d[i + 1];\n                    x = d[i++];\n                    y = d[i++];\n                    var width = d[i++];\n                    var height = d[i++];\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            var d_1 = displayedLength - accumLength;\n                            ctx.moveTo(x, y);\n                            ctx.lineTo(x + mathMin(d_1, width), y);\n                            d_1 -= width;\n                            if (d_1 > 0) {\n                                ctx.lineTo(x + width, y + mathMin(d_1, height));\n                            }\n                            d_1 -= height;\n                            if (d_1 > 0) {\n                                ctx.lineTo(x + mathMax(width - d_1, 0), y + height);\n                            }\n                            d_1 -= width;\n                            if (d_1 > 0) {\n                                ctx.lineTo(x, y + mathMax(height - d_1, 0));\n                            }\n                            break lo;\n                        }\n                        accumLength += l;\n                    }\n                    ctx.rect(x, y, width, height);\n                    break;\n                case CMD.Z:\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            var t = (displayedLength - accumLength) / l;\n                            ctx.lineTo(xi * (1 - t) + x0 * t, yi * (1 - t) + y0 * t);\n                            break lo;\n                        }\n                        accumLength += l;\n                    }\n                    ctx.closePath();\n                    xi = x0;\n                    yi = y0;\n            }\n        }\n    };\n    PathProxy.CMD = CMD;\n    PathProxy.initDefaultProps = (function () {\n        var proto = PathProxy.prototype;\n        proto._saveData = true;\n        proto._needsDash = false;\n        proto._dashOffset = 0;\n        proto._dashIdx = 0;\n        proto._dashSum = 0;\n        proto._ux = 0;\n        proto._uy = 0;\n    })();\n    return PathProxy;\n}());\nexport default PathProxy;\n","export function containStroke(x0, y0, x1, y1, lineWidth, x, y) {\n    if (lineWidth === 0) {\n        return false;\n    }\n    var _l = lineWidth;\n    var _a = 0;\n    var _b = x0;\n    if ((y > y0 + _l && y > y1 + _l)\n        || (y < y0 - _l && y < y1 - _l)\n        || (x > x0 + _l && x > x1 + _l)\n        || (x < x0 - _l && x < x1 - _l)) {\n        return false;\n    }\n    if (x0 !== x1) {\n        _a = (y0 - y1) / (x0 - x1);\n        _b = (x0 * y1 - x1 * y0) / (x0 - x1);\n    }\n    else {\n        return Math.abs(x - x0) <= _l / 2;\n    }\n    var tmp = _a * x - y + _b;\n    var _s = tmp * tmp / (_a * _a + 1);\n    return _s <= _l / 2 * _l / 2;\n}\n","import * as curve from '../core/curve';\nexport function containStroke(x0, y0, x1, y1, x2, y2, x3, y3, lineWidth, x, y) {\n    if (lineWidth === 0) {\n        return false;\n    }\n    var _l = lineWidth;\n    if ((y > y0 + _l && y > y1 + _l && y > y2 + _l && y > y3 + _l)\n        || (y < y0 - _l && y < y1 - _l && y < y2 - _l && y < y3 - _l)\n        || (x > x0 + _l && x > x1 + _l && x > x2 + _l && x > x3 + _l)\n        || (x < x0 - _l && x < x1 - _l && x < x2 - _l && x < x3 - _l)) {\n        return false;\n    }\n    var d = curve.cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, null);\n    return d <= _l / 2;\n}\n","import { quadraticProjectPoint } from '../core/curve';\nexport function containStroke(x0, y0, x1, y1, x2, y2, lineWidth, x, y) {\n    if (lineWidth === 0) {\n        return false;\n    }\n    var _l = lineWidth;\n    if ((y > y0 + _l && y > y1 + _l && y > y2 + _l)\n        || (y < y0 - _l && y < y1 - _l && y < y2 - _l)\n        || (x > x0 + _l && x > x1 + _l && x > x2 + _l)\n        || (x < x0 - _l && x < x1 - _l && x < x2 - _l)) {\n        return false;\n    }\n    var d = quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, null);\n    return d <= _l / 2;\n}\n","var PI2 = Math.PI * 2;\nexport function normalizeRadian(angle) {\n    angle %= PI2;\n    if (angle < 0) {\n        angle += PI2;\n    }\n    return angle;\n}\n","import { normalizeRadian } from './util';\nvar PI2 = Math.PI * 2;\nexport function containStroke(cx, cy, r, startAngle, endAngle, anticlockwise, lineWidth, x, y) {\n    if (lineWidth === 0) {\n        return false;\n    }\n    var _l = lineWidth;\n    x -= cx;\n    y -= cy;\n    var d = Math.sqrt(x * x + y * y);\n    if ((d - _l > r) || (d + _l < r)) {\n        return false;\n    }\n    if (Math.abs(startAngle - endAngle) % PI2 < 1e-4) {\n        return true;\n    }\n    if (anticlockwise) {\n        var tmp = startAngle;\n        startAngle = normalizeRadian(endAngle);\n        endAngle = normalizeRadian(tmp);\n    }\n    else {\n        startAngle = normalizeRadian(startAngle);\n        endAngle = normalizeRadian(endAngle);\n    }\n    if (startAngle > endAngle) {\n        endAngle += PI2;\n    }\n    var angle = Math.atan2(y, x);\n    if (angle < 0) {\n        angle += PI2;\n    }\n    return (angle >= startAngle && angle <= endAngle)\n        || (angle + PI2 >= startAngle && angle + PI2 <= endAngle);\n}\n","export default function windingLine(x0, y0, x1, y1, x, y) {\n    if ((y > y0 && y > y1) || (y < y0 && y < y1)) {\n        return 0;\n    }\n    if (y1 === y0) {\n        return 0;\n    }\n    var t = (y - y0) / (y1 - y0);\n    var dir = y1 < y0 ? 1 : -1;\n    if (t === 1 || t === 0) {\n        dir = y1 < y0 ? 0.5 : -0.5;\n    }\n    var x_ = t * (x1 - x0) + x0;\n    return x_ === x ? Infinity : x_ > x ? dir : 0;\n}\n","import PathProxy from '../core/PathProxy';\nimport * as line from './line';\nimport * as cubic from './cubic';\nimport * as quadratic from './quadratic';\nimport * as arc from './arc';\nimport * as curve from '../core/curve';\nimport windingLine from './windingLine';\nvar CMD = PathProxy.CMD;\nvar PI2 = Math.PI * 2;\nvar EPSILON = 1e-4;\nfunction isAroundEqual(a, b) {\n    return Math.abs(a - b) < EPSILON;\n}\nvar roots = [-1, -1, -1];\nvar extrema = [-1, -1];\nfunction swapExtrema() {\n    var tmp = extrema[0];\n    extrema[0] = extrema[1];\n    extrema[1] = tmp;\n}\nfunction windingCubic(x0, y0, x1, y1, x2, y2, x3, y3, x, y) {\n    if ((y > y0 && y > y1 && y > y2 && y > y3)\n        || (y < y0 && y < y1 && y < y2 && y < y3)) {\n        return 0;\n    }\n    var nRoots = curve.cubicRootAt(y0, y1, y2, y3, y, roots);\n    if (nRoots === 0) {\n        return 0;\n    }\n    else {\n        var w = 0;\n        var nExtrema = -1;\n        var y0_ = void 0;\n        var y1_ = void 0;\n        for (var i = 0; i < nRoots; i++) {\n            var t = roots[i];\n            var unit = (t === 0 || t === 1) ? 0.5 : 1;\n            var x_ = curve.cubicAt(x0, x1, x2, x3, t);\n            if (x_ < x) {\n                continue;\n            }\n            if (nExtrema < 0) {\n                nExtrema = curve.cubicExtrema(y0, y1, y2, y3, extrema);\n                if (extrema[1] < extrema[0] && nExtrema > 1) {\n                    swapExtrema();\n                }\n                y0_ = curve.cubicAt(y0, y1, y2, y3, extrema[0]);\n                if (nExtrema > 1) {\n                    y1_ = curve.cubicAt(y0, y1, y2, y3, extrema[1]);\n                }\n            }\n            if (nExtrema === 2) {\n                if (t < extrema[0]) {\n                    w += y0_ < y0 ? unit : -unit;\n                }\n                else if (t < extrema[1]) {\n                    w += y1_ < y0_ ? unit : -unit;\n                }\n                else {\n                    w += y3 < y1_ ? unit : -unit;\n                }\n            }\n            else {\n                if (t < extrema[0]) {\n                    w += y0_ < y0 ? unit : -unit;\n                }\n                else {\n                    w += y3 < y0_ ? unit : -unit;\n                }\n            }\n        }\n        return w;\n    }\n}\nfunction windingQuadratic(x0, y0, x1, y1, x2, y2, x, y) {\n    if ((y > y0 && y > y1 && y > y2)\n        || (y < y0 && y < y1 && y < y2)) {\n        return 0;\n    }\n    var nRoots = curve.quadraticRootAt(y0, y1, y2, y, roots);\n    if (nRoots === 0) {\n        return 0;\n    }\n    else {\n        var t = curve.quadraticExtremum(y0, y1, y2);\n        if (t >= 0 && t <= 1) {\n            var w = 0;\n            var y_ = curve.quadraticAt(y0, y1, y2, t);\n            for (var i = 0; i < nRoots; i++) {\n                var unit = (roots[i] === 0 || roots[i] === 1) ? 0.5 : 1;\n                var x_ = curve.quadraticAt(x0, x1, x2, roots[i]);\n                if (x_ < x) {\n                    continue;\n                }\n                if (roots[i] < t) {\n                    w += y_ < y0 ? unit : -unit;\n                }\n                else {\n                    w += y2 < y_ ? unit : -unit;\n                }\n            }\n            return w;\n        }\n        else {\n            var unit = (roots[0] === 0 || roots[0] === 1) ? 0.5 : 1;\n            var x_ = curve.quadraticAt(x0, x1, x2, roots[0]);\n            if (x_ < x) {\n                return 0;\n            }\n            return y2 < y0 ? unit : -unit;\n        }\n    }\n}\nfunction windingArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y) {\n    y -= cy;\n    if (y > r || y < -r) {\n        return 0;\n    }\n    var tmp = Math.sqrt(r * r - y * y);\n    roots[0] = -tmp;\n    roots[1] = tmp;\n    var dTheta = Math.abs(startAngle - endAngle);\n    if (dTheta < 1e-4) {\n        return 0;\n    }\n    if (dTheta >= PI2 - 1e-4) {\n        startAngle = 0;\n        endAngle = PI2;\n        var dir = anticlockwise ? 1 : -1;\n        if (x >= roots[0] + cx && x <= roots[1] + cx) {\n            return dir;\n        }\n        else {\n            return 0;\n        }\n    }\n    if (startAngle > endAngle) {\n        var tmp_1 = startAngle;\n        startAngle = endAngle;\n        endAngle = tmp_1;\n    }\n    if (startAngle < 0) {\n        startAngle += PI2;\n        endAngle += PI2;\n    }\n    var w = 0;\n    for (var i = 0; i < 2; i++) {\n        var x_ = roots[i];\n        if (x_ + cx > x) {\n            var angle = Math.atan2(y, x_);\n            var dir = anticlockwise ? 1 : -1;\n            if (angle < 0) {\n                angle = PI2 + angle;\n            }\n            if ((angle >= startAngle && angle <= endAngle)\n                || (angle + PI2 >= startAngle && angle + PI2 <= endAngle)) {\n                if (angle > Math.PI / 2 && angle < Math.PI * 1.5) {\n                    dir = -dir;\n                }\n                w += dir;\n            }\n        }\n    }\n    return w;\n}\nfunction containPath(path, lineWidth, isStroke, x, y) {\n    var data = path.data;\n    var len = path.len();\n    var w = 0;\n    var xi = 0;\n    var yi = 0;\n    var x0 = 0;\n    var y0 = 0;\n    var x1;\n    var y1;\n    for (var i = 0; i < len;) {\n        var cmd = data[i++];\n        var isFirst = i === 1;\n        if (cmd === CMD.M && i > 1) {\n            if (!isStroke) {\n                w += windingLine(xi, yi, x0, y0, x, y);\n            }\n        }\n        if (isFirst) {\n            xi = data[i];\n            yi = data[i + 1];\n            x0 = xi;\n            y0 = yi;\n        }\n        switch (cmd) {\n            case CMD.M:\n                x0 = data[i++];\n                y0 = data[i++];\n                xi = x0;\n                yi = y0;\n                break;\n            case CMD.L:\n                if (isStroke) {\n                    if (line.containStroke(xi, yi, data[i], data[i + 1], lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingLine(xi, yi, data[i], data[i + 1], x, y) || 0;\n                }\n                xi = data[i++];\n                yi = data[i++];\n                break;\n            case CMD.C:\n                if (isStroke) {\n                    if (cubic.containStroke(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\n                }\n                xi = data[i++];\n                yi = data[i++];\n                break;\n            case CMD.Q:\n                if (isStroke) {\n                    if (quadratic.containStroke(xi, yi, data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\n                }\n                xi = data[i++];\n                yi = data[i++];\n                break;\n            case CMD.A:\n                var cx = data[i++];\n                var cy = data[i++];\n                var rx = data[i++];\n                var ry = data[i++];\n                var theta = data[i++];\n                var dTheta = data[i++];\n                i += 1;\n                var anticlockwise = !!(1 - data[i++]);\n                x1 = Math.cos(theta) * rx + cx;\n                y1 = Math.sin(theta) * ry + cy;\n                if (!isFirst) {\n                    w += windingLine(xi, yi, x1, y1, x, y);\n                }\n                else {\n                    x0 = x1;\n                    y0 = y1;\n                }\n                var _x = (x - cx) * ry / rx + cx;\n                if (isStroke) {\n                    if (arc.containStroke(cx, cy, ry, theta, theta + dTheta, anticlockwise, lineWidth, _x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y);\n                }\n                xi = Math.cos(theta + dTheta) * rx + cx;\n                yi = Math.sin(theta + dTheta) * ry + cy;\n                break;\n            case CMD.R:\n                x0 = xi = data[i++];\n                y0 = yi = data[i++];\n                var width = data[i++];\n                var height = data[i++];\n                x1 = x0 + width;\n                y1 = y0 + height;\n                if (isStroke) {\n                    if (line.containStroke(x0, y0, x1, y0, lineWidth, x, y)\n                        || line.containStroke(x1, y0, x1, y1, lineWidth, x, y)\n                        || line.containStroke(x1, y1, x0, y1, lineWidth, x, y)\n                        || line.containStroke(x0, y1, x0, y0, lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingLine(x1, y0, x1, y1, x, y);\n                    w += windingLine(x0, y1, x0, y0, x, y);\n                }\n                break;\n            case CMD.Z:\n                if (isStroke) {\n                    if (line.containStroke(xi, yi, x0, y0, lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingLine(xi, yi, x0, y0, x, y);\n                }\n                xi = x0;\n                yi = y0;\n                break;\n        }\n    }\n    if (!isStroke && !isAroundEqual(yi, y0)) {\n        w += windingLine(xi, yi, x0, y0, x, y) || 0;\n    }\n    return w !== 0;\n}\nexport function contain(pathProxy, x, y) {\n    return containPath(pathProxy, 0, false, x, y);\n}\nexport function containStroke(pathProxy, lineWidth, x, y) {\n    return containPath(pathProxy, lineWidth, true, x, y);\n}\n","import { __extends } from \"tslib\";\nimport Displayable, { DEFAULT_COMMON_STYLE, DEFAULT_COMMON_ANIMATION_PROPS } from './Displayable';\nimport Element from '../Element';\nimport PathProxy from '../core/PathProxy';\nimport * as pathContain from '../contain/path';\nimport { defaults, keys, extend, clone, isString, createObject } from '../core/util';\nimport { lum } from '../tool/color';\nimport { DARK_LABEL_COLOR, LIGHT_LABEL_COLOR, DARK_MODE_THRESHOLD, LIGHTER_LABEL_COLOR } from '../config';\nexport var DEFAULT_PATH_STYLE = defaults({\n    fill: '#000',\n    stroke: null,\n    strokePercent: 1,\n    fillOpacity: 1,\n    strokeOpacity: 1,\n    lineDashOffset: 0,\n    lineWidth: 1,\n    lineCap: 'butt',\n    miterLimit: 10,\n    strokeNoScale: false,\n    strokeFirst: false\n}, DEFAULT_COMMON_STYLE);\nexport var DEFAULT_PATH_ANIMATION_PROPS = {\n    style: defaults({\n        fill: true,\n        stroke: true,\n        strokePercent: true,\n        fillOpacity: true,\n        strokeOpacity: true,\n        lineDashOffset: true,\n        lineWidth: true,\n        miterLimit: true\n    }, DEFAULT_COMMON_ANIMATION_PROPS.style)\n};\nvar pathCopyParams = [\n    'x', 'y', 'rotation', 'scaleX', 'scaleY', 'originX', 'originY', 'invisible',\n    'culling', 'z', 'z2', 'zlevel', 'parent'\n];\nvar Path = (function (_super) {\n    __extends(Path, _super);\n    function Path(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Path.prototype.update = function () {\n        var _this = this;\n        _super.prototype.update.call(this);\n        var style = this.style;\n        if (style.decal) {\n            var decalEl = this._decalEl\n                = this._decalEl || new Path();\n            if (decalEl.buildPath === Path.prototype.buildPath) {\n                decalEl.buildPath = function (ctx) {\n                    _this.buildPath(ctx, _this.shape);\n                };\n            }\n            decalEl.silent = true;\n            var decalElStyle = decalEl.style;\n            for (var key in style) {\n                if (decalElStyle[key] !== style[key]) {\n                    decalElStyle[key] = style[key];\n                }\n            }\n            decalElStyle.fill = style.fill ? style.decal : null;\n            decalElStyle.decal = null;\n            decalElStyle.shadowColor = null;\n            style.strokeFirst && (decalElStyle.stroke = null);\n            for (var i = 0; i < pathCopyParams.length; ++i) {\n                decalEl[pathCopyParams[i]] = this[pathCopyParams[i]];\n            }\n            decalEl.__dirty |= Element.REDARAW_BIT;\n        }\n        else if (this._decalEl) {\n            this._decalEl = null;\n        }\n    };\n    Path.prototype.getDecalElement = function () {\n        return this._decalEl;\n    };\n    Path.prototype._init = function (props) {\n        var keysArr = keys(props);\n        this.shape = this.getDefaultShape();\n        var defaultStyle = this.getDefaultStyle();\n        if (defaultStyle) {\n            this.useStyle(defaultStyle);\n        }\n        for (var i = 0; i < keysArr.length; i++) {\n            var key = keysArr[i];\n            var value = props[key];\n            if (key === 'style') {\n                if (!this.style) {\n                    this.useStyle(value);\n                }\n                else {\n                    extend(this.style, value);\n                }\n            }\n            else if (key === 'shape') {\n                extend(this.shape, value);\n            }\n            else {\n                _super.prototype.attrKV.call(this, key, value);\n            }\n        }\n        if (!this.style) {\n            this.useStyle({});\n        }\n    };\n    Path.prototype.getDefaultStyle = function () {\n        return null;\n    };\n    Path.prototype.getDefaultShape = function () {\n        return {};\n    };\n    Path.prototype.canBeInsideText = function () {\n        return this.hasFill();\n    };\n    Path.prototype.getInsideTextFill = function () {\n        var pathFill = this.style.fill;\n        if (pathFill !== 'none') {\n            if (isString(pathFill)) {\n                var fillLum = lum(pathFill, 0);\n                if (fillLum > 0.5) {\n                    return DARK_LABEL_COLOR;\n                }\n                else if (fillLum > 0.2) {\n                    return LIGHTER_LABEL_COLOR;\n                }\n                return LIGHT_LABEL_COLOR;\n            }\n            else if (pathFill) {\n                return LIGHT_LABEL_COLOR;\n            }\n        }\n        return DARK_LABEL_COLOR;\n    };\n    Path.prototype.getInsideTextStroke = function (textFill) {\n        var pathFill = this.style.fill;\n        if (isString(pathFill)) {\n            var zr = this.__zr;\n            var isDarkMode = !!(zr && zr.isDarkMode());\n            var isDarkLabel = lum(textFill, 0) < DARK_MODE_THRESHOLD;\n            if (isDarkMode === isDarkLabel) {\n                return pathFill;\n            }\n        }\n    };\n    Path.prototype.buildPath = function (ctx, shapeCfg, inBundle) { };\n    Path.prototype.pathUpdated = function () {\n        this.__dirty &= ~Path.SHAPE_CHANGED_BIT;\n    };\n    Path.prototype.createPathProxy = function () {\n        this.path = new PathProxy(false);\n    };\n    Path.prototype.hasStroke = function () {\n        var style = this.style;\n        var stroke = style.stroke;\n        return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\n    };\n    Path.prototype.hasFill = function () {\n        var style = this.style;\n        var fill = style.fill;\n        return fill != null && fill !== 'none';\n    };\n    Path.prototype.getBoundingRect = function () {\n        var rect = this._rect;\n        var style = this.style;\n        var needsUpdateRect = !rect;\n        if (needsUpdateRect) {\n            var firstInvoke = false;\n            if (!this.path) {\n                firstInvoke = true;\n                this.createPathProxy();\n            }\n            var path = this.path;\n            if (firstInvoke || (this.__dirty & Path.SHAPE_CHANGED_BIT)) {\n                path.beginPath();\n                this.buildPath(path, this.shape, false);\n                this.pathUpdated();\n            }\n            rect = path.getBoundingRect();\n        }\n        this._rect = rect;\n        if (this.hasStroke() && this.path && this.path.len() > 0) {\n            var rectWithStroke = this._rectWithStroke || (this._rectWithStroke = rect.clone());\n            if (this.__dirty || needsUpdateRect) {\n                rectWithStroke.copy(rect);\n                var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\n                var w = style.lineWidth;\n                if (!this.hasFill()) {\n                    var strokeContainThreshold = this.strokeContainThreshold;\n                    w = Math.max(w, strokeContainThreshold == null ? 4 : strokeContainThreshold);\n                }\n                if (lineScale > 1e-10) {\n                    rectWithStroke.width += w / lineScale;\n                    rectWithStroke.height += w / lineScale;\n                    rectWithStroke.x -= w / lineScale / 2;\n                    rectWithStroke.y -= w / lineScale / 2;\n                }\n            }\n            return rectWithStroke;\n        }\n        return rect;\n    };\n    Path.prototype.contain = function (x, y) {\n        var localPos = this.transformCoordToLocal(x, y);\n        var rect = this.getBoundingRect();\n        var style = this.style;\n        x = localPos[0];\n        y = localPos[1];\n        if (rect.contain(x, y)) {\n            var pathProxy = this.path;\n            if (this.hasStroke()) {\n                var lineWidth = style.lineWidth;\n                var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\n                if (lineScale > 1e-10) {\n                    if (!this.hasFill()) {\n                        lineWidth = Math.max(lineWidth, this.strokeContainThreshold);\n                    }\n                    if (pathContain.containStroke(pathProxy, lineWidth / lineScale, x, y)) {\n                        return true;\n                    }\n                }\n            }\n            if (this.hasFill()) {\n                return pathContain.contain(pathProxy, x, y);\n            }\n        }\n        return false;\n    };\n    Path.prototype.dirtyShape = function () {\n        this.__dirty |= Path.SHAPE_CHANGED_BIT;\n        if (this._rect) {\n            this._rect = null;\n        }\n        if (this._decalEl) {\n            this._decalEl.dirtyShape();\n        }\n        this.markRedraw();\n    };\n    Path.prototype.dirty = function () {\n        this.dirtyStyle();\n        this.dirtyShape();\n    };\n    Path.prototype.animateShape = function (loop) {\n        return this.animate('shape', loop);\n    };\n    Path.prototype.updateDuringAnimation = function (targetKey) {\n        if (targetKey === 'style') {\n            this.dirtyStyle();\n        }\n        else if (targetKey === 'shape') {\n            this.dirtyShape();\n        }\n        else {\n            this.markRedraw();\n        }\n    };\n    Path.prototype.attrKV = function (key, value) {\n        if (key === 'shape') {\n            this.setShape(value);\n        }\n        else {\n            _super.prototype.attrKV.call(this, key, value);\n        }\n    };\n    Path.prototype.setShape = function (keyOrObj, value) {\n        var shape = this.shape;\n        if (!shape) {\n            shape = this.shape = {};\n        }\n        if (typeof keyOrObj === 'string') {\n            shape[keyOrObj] = value;\n        }\n        else {\n            extend(shape, keyOrObj);\n        }\n        this.dirtyShape();\n        return this;\n    };\n    Path.prototype.shapeChanged = function () {\n        return !!(this.__dirty & Path.SHAPE_CHANGED_BIT);\n    };\n    Path.prototype.createStyle = function (obj) {\n        return createObject(DEFAULT_PATH_STYLE, obj);\n    };\n    Path.prototype._innerSaveToNormal = function (toState) {\n        _super.prototype._innerSaveToNormal.call(this, toState);\n        var normalState = this._normalState;\n        if (toState.shape && !normalState.shape) {\n            normalState.shape = extend({}, this.shape);\n        }\n    };\n    Path.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\n        _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\n        var needsRestoreToNormal = !(state && keepCurrentStates);\n        var targetShape;\n        if (state && state.shape) {\n            if (transition) {\n                if (keepCurrentStates) {\n                    targetShape = state.shape;\n                }\n                else {\n                    targetShape = extend({}, normalState.shape);\n                    extend(targetShape, state.shape);\n                }\n            }\n            else {\n                targetShape = extend({}, keepCurrentStates ? this.shape : normalState.shape);\n                extend(targetShape, state.shape);\n            }\n        }\n        else if (needsRestoreToNormal) {\n            targetShape = normalState.shape;\n        }\n        if (targetShape) {\n            if (transition) {\n                this.shape = extend({}, this.shape);\n                var targetShapePrimaryProps = {};\n                var shapeKeys = keys(targetShape);\n                for (var i = 0; i < shapeKeys.length; i++) {\n                    var key = shapeKeys[i];\n                    if (typeof targetShape[key] === 'object') {\n                        this.shape[key] = targetShape[key];\n                    }\n                    else {\n                        targetShapePrimaryProps[key] = targetShape[key];\n                    }\n                }\n                this._transitionState(stateName, {\n                    shape: targetShapePrimaryProps\n                }, animationCfg);\n            }\n            else {\n                this.shape = targetShape;\n                this.dirtyShape();\n            }\n        }\n    };\n    Path.prototype._mergeStates = function (states) {\n        var mergedState = _super.prototype._mergeStates.call(this, states);\n        var mergedShape;\n        for (var i = 0; i < states.length; i++) {\n            var state = states[i];\n            if (state.shape) {\n                mergedShape = mergedShape || {};\n                this._mergeStyle(mergedShape, state.shape);\n            }\n        }\n        if (mergedShape) {\n            mergedState.shape = mergedShape;\n        }\n        return mergedState;\n    };\n    Path.prototype.getAnimationStyleProps = function () {\n        return DEFAULT_PATH_ANIMATION_PROPS;\n    };\n    Path.prototype.isZeroArea = function () {\n        return false;\n    };\n    Path.extend = function (defaultProps) {\n        var Sub = (function (_super) {\n            __extends(Sub, _super);\n            function Sub(opts) {\n                var _this = _super.call(this, opts) || this;\n                defaultProps.init && defaultProps.init.call(_this, opts);\n                return _this;\n            }\n            Sub.prototype.getDefaultStyle = function () {\n                return clone(defaultProps.style);\n            };\n            Sub.prototype.getDefaultShape = function () {\n                return clone(defaultProps.shape);\n            };\n            return Sub;\n        }(Path));\n        for (var key in defaultProps) {\n            if (typeof defaultProps[key] === 'function') {\n                Sub.prototype[key] = defaultProps[key];\n            }\n        }\n        return Sub;\n    };\n    Path.SHAPE_CHANGED_BIT = 4;\n    Path.initDefaultProps = (function () {\n        var pathProto = Path.prototype;\n        pathProto.type = 'path';\n        pathProto.strokeContainThreshold = 5;\n        pathProto.segmentIgnoreThreshold = 0;\n        pathProto.subPixelOptimize = false;\n        pathProto.autoBatch = false;\n        pathProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT | Path.SHAPE_CHANGED_BIT;\n    })();\n    return Path;\n}(Displayable));\nexport default Path;\n","import { __extends } from \"tslib\";\nimport Displayable from './Displayable';\nimport { getBoundingRect, DEFAULT_FONT } from '../contain/text';\nimport { DEFAULT_PATH_STYLE } from './Path';\nimport { createObject, defaults } from '../core/util';\nexport var DEFAULT_TSPAN_STYLE = defaults({\n    strokeFirst: true,\n    font: DEFAULT_FONT,\n    x: 0,\n    y: 0,\n    textAlign: 'left',\n    textBaseline: 'top',\n    miterLimit: 2\n}, DEFAULT_PATH_STYLE);\nvar TSpan = (function (_super) {\n    __extends(TSpan, _super);\n    function TSpan() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    TSpan.prototype.hasStroke = function () {\n        var style = this.style;\n        var stroke = style.stroke;\n        return stroke != null && stroke !== 'none' && style.lineWidth > 0;\n    };\n    TSpan.prototype.hasFill = function () {\n        var style = this.style;\n        var fill = style.fill;\n        return fill != null && fill !== 'none';\n    };\n    TSpan.prototype.createStyle = function (obj) {\n        return createObject(DEFAULT_TSPAN_STYLE, obj);\n    };\n    TSpan.prototype.setBoundingRect = function (rect) {\n        this._rect = rect;\n    };\n    TSpan.prototype.getBoundingRect = function () {\n        var style = this.style;\n        if (!this._rect) {\n            var text = style.text;\n            text != null ? (text += '') : (text = '');\n            var rect = getBoundingRect(text, style.font, style.textAlign, style.textBaseline);\n            rect.x += style.x || 0;\n            rect.y += style.y || 0;\n            if (this.hasStroke()) {\n                var w = style.lineWidth;\n                rect.x -= w / 2;\n                rect.y -= w / 2;\n                rect.width += w;\n                rect.height += w;\n            }\n            this._rect = rect;\n        }\n        return this._rect;\n    };\n    TSpan.initDefaultProps = (function () {\n        var tspanProto = TSpan.prototype;\n        tspanProto.dirtyRectTolerance = 10;\n    })();\n    return TSpan;\n}(Displayable));\nTSpan.prototype.type = 'tspan';\nexport default TSpan;\n","import { __extends } from \"tslib\";\nimport Displayable, { DEFAULT_COMMON_STYLE, DEFAULT_COMMON_ANIMATION_PROPS } from './Displayable';\nimport BoundingRect from '../core/BoundingRect';\nimport { defaults, createObject } from '../core/util';\nexport var DEFAULT_IMAGE_STYLE = defaults({\n    x: 0,\n    y: 0\n}, DEFAULT_COMMON_STYLE);\nexport var DEFAULT_IMAGE_ANIMATION_PROPS = {\n    style: defaults({\n        x: true,\n        y: true,\n        width: true,\n        height: true,\n        sx: true,\n        sy: true,\n        sWidth: true,\n        sHeight: true\n    }, DEFAULT_COMMON_ANIMATION_PROPS.style)\n};\nfunction isImageLike(source) {\n    return !!(source\n        && typeof source !== 'string'\n        && source.width && source.height);\n}\nvar ZRImage = (function (_super) {\n    __extends(ZRImage, _super);\n    function ZRImage() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    ZRImage.prototype.createStyle = function (obj) {\n        return createObject(DEFAULT_IMAGE_STYLE, obj);\n    };\n    ZRImage.prototype._getSize = function (dim) {\n        var style = this.style;\n        var size = style[dim];\n        if (size != null) {\n            return size;\n        }\n        var imageSource = isImageLike(style.image)\n            ? style.image : this.__image;\n        if (!imageSource) {\n            return 0;\n        }\n        var otherDim = dim === 'width' ? 'height' : 'width';\n        var otherDimSize = style[otherDim];\n        if (otherDimSize == null) {\n            return imageSource[dim];\n        }\n        else {\n            return imageSource[dim] / imageSource[otherDim] * otherDimSize;\n        }\n    };\n    ZRImage.prototype.getWidth = function () {\n        return this._getSize('width');\n    };\n    ZRImage.prototype.getHeight = function () {\n        return this._getSize('height');\n    };\n    ZRImage.prototype.getAnimationStyleProps = function () {\n        return DEFAULT_IMAGE_ANIMATION_PROPS;\n    };\n    ZRImage.prototype.getBoundingRect = function () {\n        var style = this.style;\n        if (!this._rect) {\n            this._rect = new BoundingRect(style.x || 0, style.y || 0, this.getWidth(), this.getHeight());\n        }\n        return this._rect;\n    };\n    return ZRImage;\n}(Displayable));\nZRImage.prototype.type = 'image';\nexport default ZRImage;\n","export function buildPath(ctx, shape) {\n    var x = shape.x;\n    var y = shape.y;\n    var width = shape.width;\n    var height = shape.height;\n    var r = shape.r;\n    var r1;\n    var r2;\n    var r3;\n    var r4;\n    if (width < 0) {\n        x = x + width;\n        width = -width;\n    }\n    if (height < 0) {\n        y = y + height;\n        height = -height;\n    }\n    if (typeof r === 'number') {\n        r1 = r2 = r3 = r4 = r;\n    }\n    else if (r instanceof Array) {\n        if (r.length === 1) {\n            r1 = r2 = r3 = r4 = r[0];\n        }\n        else if (r.length === 2) {\n            r1 = r3 = r[0];\n            r2 = r4 = r[1];\n        }\n        else if (r.length === 3) {\n            r1 = r[0];\n            r2 = r4 = r[1];\n            r3 = r[2];\n        }\n        else {\n            r1 = r[0];\n            r2 = r[1];\n            r3 = r[2];\n            r4 = r[3];\n        }\n    }\n    else {\n        r1 = r2 = r3 = r4 = 0;\n    }\n    var total;\n    if (r1 + r2 > width) {\n        total = r1 + r2;\n        r1 *= width / total;\n        r2 *= width / total;\n    }\n    if (r3 + r4 > width) {\n        total = r3 + r4;\n        r3 *= width / total;\n        r4 *= width / total;\n    }\n    if (r2 + r3 > height) {\n        total = r2 + r3;\n        r2 *= height / total;\n        r3 *= height / total;\n    }\n    if (r1 + r4 > height) {\n        total = r1 + r4;\n        r1 *= height / total;\n        r4 *= height / total;\n    }\n    ctx.moveTo(x + r1, y);\n    ctx.lineTo(x + width - r2, y);\n    r2 !== 0 && ctx.arc(x + width - r2, y + r2, r2, -Math.PI / 2, 0);\n    ctx.lineTo(x + width, y + height - r3);\n    r3 !== 0 && ctx.arc(x + width - r3, y + height - r3, r3, 0, Math.PI / 2);\n    ctx.lineTo(x + r4, y + height);\n    r4 !== 0 && ctx.arc(x + r4, y + height - r4, r4, Math.PI / 2, Math.PI);\n    ctx.lineTo(x, y + r1);\n    r1 !== 0 && ctx.arc(x + r1, y + r1, r1, Math.PI, Math.PI * 1.5);\n}\n","var round = Math.round;\nexport function subPixelOptimizeLine(outputShape, inputShape, style) {\n    if (!inputShape) {\n        return;\n    }\n    var x1 = inputShape.x1;\n    var x2 = inputShape.x2;\n    var y1 = inputShape.y1;\n    var y2 = inputShape.y2;\n    outputShape.x1 = x1;\n    outputShape.x2 = x2;\n    outputShape.y1 = y1;\n    outputShape.y2 = y2;\n    var lineWidth = style && style.lineWidth;\n    if (!lineWidth) {\n        return outputShape;\n    }\n    if (round(x1 * 2) === round(x2 * 2)) {\n        outputShape.x1 = outputShape.x2 = subPixelOptimize(x1, lineWidth, true);\n    }\n    if (round(y1 * 2) === round(y2 * 2)) {\n        outputShape.y1 = outputShape.y2 = subPixelOptimize(y1, lineWidth, true);\n    }\n    return outputShape;\n}\nexport function subPixelOptimizeRect(outputShape, inputShape, style) {\n    if (!inputShape) {\n        return;\n    }\n    var originX = inputShape.x;\n    var originY = inputShape.y;\n    var originWidth = inputShape.width;\n    var originHeight = inputShape.height;\n    outputShape.x = originX;\n    outputShape.y = originY;\n    outputShape.width = originWidth;\n    outputShape.height = originHeight;\n    var lineWidth = style && style.lineWidth;\n    if (!lineWidth) {\n        return outputShape;\n    }\n    outputShape.x = subPixelOptimize(originX, lineWidth, true);\n    outputShape.y = subPixelOptimize(originY, lineWidth, true);\n    outputShape.width = Math.max(subPixelOptimize(originX + originWidth, lineWidth, false) - outputShape.x, originWidth === 0 ? 0 : 1);\n    outputShape.height = Math.max(subPixelOptimize(originY + originHeight, lineWidth, false) - outputShape.y, originHeight === 0 ? 0 : 1);\n    return outputShape;\n}\nexport function subPixelOptimize(position, lineWidth, positiveOrNegative) {\n    if (!lineWidth) {\n        return position;\n    }\n    var doubledPosition = round(position * 2);\n    return (doubledPosition + round(lineWidth)) % 2 === 0\n        ? doubledPosition / 2\n        : (doubledPosition + (positiveOrNegative ? 1 : -1)) / 2;\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as roundRectHelper from '../helper/roundRect';\nimport { subPixelOptimizeRect } from '../helper/subPixelOptimize';\nvar RectShape = (function () {\n    function RectShape() {\n        this.x = 0;\n        this.y = 0;\n        this.width = 0;\n        this.height = 0;\n    }\n    return RectShape;\n}());\nvar subPixelOptimizeOutputShape = {};\nvar Rect = (function (_super) {\n    __extends(Rect, _super);\n    function Rect(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Rect.prototype.getDefaultShape = function () {\n        return new RectShape();\n    };\n    Rect.prototype.buildPath = function (ctx, shape) {\n        var x;\n        var y;\n        var width;\n        var height;\n        if (this.subPixelOptimize) {\n            var optimizedShape = subPixelOptimizeRect(subPixelOptimizeOutputShape, shape, this.style);\n            x = optimizedShape.x;\n            y = optimizedShape.y;\n            width = optimizedShape.width;\n            height = optimizedShape.height;\n            optimizedShape.r = shape.r;\n            shape = optimizedShape;\n        }\n        else {\n            x = shape.x;\n            y = shape.y;\n            width = shape.width;\n            height = shape.height;\n        }\n        if (!shape.r) {\n            ctx.rect(x, y, width, height);\n        }\n        else {\n            roundRectHelper.buildPath(ctx, shape);\n        }\n    };\n    Rect.prototype.isZeroArea = function () {\n        return !this.shape.width || !this.shape.height;\n    };\n    return Rect;\n}(Path));\nRect.prototype.type = 'rect';\nexport default Rect;\n","import { __extends } from \"tslib\";\nimport { parseRichText, parsePlainText } from './helper/parseText';\nimport TSpan from './TSpan';\nimport { retrieve2, isString, each, normalizeCssArray, trim, retrieve3, extend, keys, defaults } from '../core/util';\nimport { DEFAULT_FONT, adjustTextX, adjustTextY } from '../contain/text';\nimport ZRImage from './Image';\nimport Rect from './shape/Rect';\nimport BoundingRect from '../core/BoundingRect';\nimport { copy } from '../core/matrix';\nimport Displayable, { DEFAULT_COMMON_ANIMATION_PROPS } from './Displayable';\nvar DEFAULT_RICH_TEXT_COLOR = {\n    fill: '#000'\n};\nvar DEFAULT_STROKE_LINE_WIDTH = 2;\nexport var DEFAULT_TEXT_ANIMATION_PROPS = {\n    style: defaults({\n        fill: true,\n        stroke: true,\n        fillOpacity: true,\n        strokeOpacity: true,\n        lineWidth: true,\n        fontSize: true,\n        lineHeight: true,\n        width: true,\n        height: true,\n        textShadowColor: true,\n        textShadowBlur: true,\n        textShadowOffsetX: true,\n        textShadowOffsetY: true,\n        backgroundColor: true,\n        padding: true,\n        borderColor: true,\n        borderWidth: true,\n        borderRadius: true\n    }, DEFAULT_COMMON_ANIMATION_PROPS.style)\n};\nvar ZRText = (function (_super) {\n    __extends(ZRText, _super);\n    function ZRText(opts) {\n        var _this = _super.call(this) || this;\n        _this.type = 'text';\n        _this._children = [];\n        _this._defaultStyle = DEFAULT_RICH_TEXT_COLOR;\n        _this.attr(opts);\n        return _this;\n    }\n    ZRText.prototype.childrenRef = function () {\n        return this._children;\n    };\n    ZRText.prototype.update = function () {\n        if (this.styleChanged()) {\n            this._updateSubTexts();\n        }\n        for (var i = 0; i < this._children.length; i++) {\n            var child = this._children[i];\n            child.zlevel = this.zlevel;\n            child.z = this.z;\n            child.z2 = this.z2;\n            child.culling = this.culling;\n            child.cursor = this.cursor;\n            child.invisible = this.invisible;\n        }\n        var attachedTransform = this.attachedTransform;\n        if (attachedTransform) {\n            attachedTransform.updateTransform();\n            var m = attachedTransform.transform;\n            if (m) {\n                this.transform = this.transform || [];\n                copy(this.transform, m);\n            }\n            else {\n                this.transform = null;\n            }\n        }\n        else {\n            _super.prototype.update.call(this);\n        }\n    };\n    ZRText.prototype.getComputedTransform = function () {\n        if (this.__hostTarget) {\n            this.__hostTarget.getComputedTransform();\n            this.__hostTarget.updateInnerText(true);\n        }\n        return this.attachedTransform ? this.attachedTransform.getComputedTransform()\n            : _super.prototype.getComputedTransform.call(this);\n    };\n    ZRText.prototype._updateSubTexts = function () {\n        this._childCursor = 0;\n        normalizeTextStyle(this.style);\n        this.style.rich\n            ? this._updateRichTexts()\n            : this._updatePlainTexts();\n        this._children.length = this._childCursor;\n        this.styleUpdated();\n    };\n    ZRText.prototype.addSelfToZr = function (zr) {\n        _super.prototype.addSelfToZr.call(this, zr);\n        for (var i = 0; i < this._children.length; i++) {\n            this._children[i].__zr = zr;\n        }\n    };\n    ZRText.prototype.removeSelfFromZr = function (zr) {\n        _super.prototype.removeSelfFromZr.call(this, zr);\n        for (var i = 0; i < this._children.length; i++) {\n            this._children[i].__zr = null;\n        }\n    };\n    ZRText.prototype.getBoundingRect = function () {\n        if (this.styleChanged()) {\n            this._updateSubTexts();\n        }\n        if (!this._rect) {\n            var tmpRect = new BoundingRect(0, 0, 0, 0);\n            var children = this._children;\n            var tmpMat = [];\n            var rect = null;\n            for (var i = 0; i < children.length; i++) {\n                var child = children[i];\n                var childRect = child.getBoundingRect();\n                var transform = child.getLocalTransform(tmpMat);\n                if (transform) {\n                    tmpRect.copy(childRect);\n                    tmpRect.applyTransform(transform);\n                    rect = rect || tmpRect.clone();\n                    rect.union(tmpRect);\n                }\n                else {\n                    rect = rect || childRect.clone();\n                    rect.union(childRect);\n                }\n            }\n            this._rect = rect || tmpRect;\n        }\n        return this._rect;\n    };\n    ZRText.prototype.setDefaultTextStyle = function (defaultTextStyle) {\n        this._defaultStyle = defaultTextStyle || DEFAULT_RICH_TEXT_COLOR;\n    };\n    ZRText.prototype.setTextContent = function (textContent) {\n        throw new Error('Can\\'t attach text on another text');\n    };\n    ZRText.prototype._mergeStyle = function (targetStyle, sourceStyle) {\n        if (!sourceStyle) {\n            return targetStyle;\n        }\n        var sourceRich = sourceStyle.rich;\n        var targetRich = targetStyle.rich || (sourceRich && {});\n        extend(targetStyle, sourceStyle);\n        if (sourceRich && targetRich) {\n            this._mergeRich(targetRich, sourceRich);\n            targetStyle.rich = targetRich;\n        }\n        else if (targetRich) {\n            targetStyle.rich = targetRich;\n        }\n        return targetStyle;\n    };\n    ZRText.prototype._mergeRich = function (targetRich, sourceRich) {\n        var richNames = keys(sourceRich);\n        for (var i = 0; i < richNames.length; i++) {\n            var richName = richNames[i];\n            targetRich[richName] = targetRich[richName] || {};\n            extend(targetRich[richName], sourceRich[richName]);\n        }\n    };\n    ZRText.prototype.getAnimationStyleProps = function () {\n        return DEFAULT_TEXT_ANIMATION_PROPS;\n    };\n    ZRText.prototype._getOrCreateChild = function (Ctor) {\n        var child = this._children[this._childCursor];\n        if (!child || !(child instanceof Ctor)) {\n            child = new Ctor();\n        }\n        this._children[this._childCursor++] = child;\n        child.__zr = this.__zr;\n        child.parent = this;\n        return child;\n    };\n    ZRText.prototype._updatePlainTexts = function () {\n        var style = this.style;\n        var textFont = style.font || DEFAULT_FONT;\n        var textPadding = style.padding;\n        var text = getStyleText(style);\n        var contentBlock = parsePlainText(text, style);\n        var needDrawBg = needDrawBackground(style);\n        var bgColorDrawn = !!(style.backgroundColor);\n        var outerHeight = contentBlock.outerHeight;\n        var textLines = contentBlock.lines;\n        var lineHeight = contentBlock.lineHeight;\n        var defaultStyle = this._defaultStyle;\n        var baseX = style.x || 0;\n        var baseY = style.y || 0;\n        var textAlign = style.align || defaultStyle.align || 'left';\n        var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign || 'top';\n        var textX = baseX;\n        var textY = adjustTextY(baseY, contentBlock.contentHeight, verticalAlign);\n        if (needDrawBg || textPadding) {\n            var outerWidth_1 = contentBlock.width;\n            textPadding && (outerWidth_1 += textPadding[1] + textPadding[3]);\n            var boxX = adjustTextX(baseX, outerWidth_1, textAlign);\n            var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\n            needDrawBg && this._renderBackground(style, style, boxX, boxY, outerWidth_1, outerHeight);\n        }\n        textY += lineHeight / 2;\n        if (textPadding) {\n            textX = getTextXForPadding(baseX, textAlign, textPadding);\n            if (verticalAlign === 'top') {\n                textY += textPadding[0];\n            }\n            else if (verticalAlign === 'bottom') {\n                textY -= textPadding[2];\n            }\n        }\n        var defaultLineWidth = 0;\n        var useDefaultFill = false;\n        var textFill = getFill('fill' in style\n            ? style.fill\n            : (useDefaultFill = true, defaultStyle.fill));\n        var textStroke = getStroke('stroke' in style\n            ? style.stroke\n            : (!bgColorDrawn\n                && (!defaultStyle.autoStroke || useDefaultFill))\n                ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\n                : null);\n        var hasShadow = style.textShadowBlur > 0;\n        var fixedBoundingRect = style.width != null\n            && (style.overflow === 'truncate' || style.overflow === 'break' || style.overflow === 'breakAll');\n        var calculatedLineHeight = contentBlock.calculatedLineHeight;\n        for (var i = 0; i < textLines.length; i++) {\n            var el = this._getOrCreateChild(TSpan);\n            var subElStyle = el.createStyle();\n            el.useStyle(subElStyle);\n            subElStyle.text = textLines[i];\n            subElStyle.x = textX;\n            subElStyle.y = textY;\n            if (textAlign) {\n                subElStyle.textAlign = textAlign;\n            }\n            subElStyle.textBaseline = 'middle';\n            subElStyle.opacity = style.opacity;\n            subElStyle.strokeFirst = true;\n            if (hasShadow) {\n                subElStyle.shadowBlur = style.textShadowBlur || 0;\n                subElStyle.shadowColor = style.textShadowColor || 'transparent';\n                subElStyle.shadowOffsetX = style.textShadowOffsetX || 0;\n                subElStyle.shadowOffsetY = style.textShadowOffsetY || 0;\n            }\n            if (textStroke) {\n                subElStyle.stroke = textStroke;\n                subElStyle.lineWidth = style.lineWidth || defaultLineWidth;\n                subElStyle.lineDash = style.lineDash;\n                subElStyle.lineDashOffset = style.lineDashOffset || 0;\n            }\n            if (textFill) {\n                subElStyle.fill = textFill;\n            }\n            subElStyle.font = textFont;\n            textY += lineHeight;\n            if (fixedBoundingRect) {\n                el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, style.width, subElStyle.textAlign), adjustTextY(subElStyle.y, calculatedLineHeight, subElStyle.textBaseline), style.width, calculatedLineHeight));\n            }\n        }\n    };\n    ZRText.prototype._updateRichTexts = function () {\n        var style = this.style;\n        var text = getStyleText(style);\n        var contentBlock = parseRichText(text, style);\n        var contentWidth = contentBlock.width;\n        var outerWidth = contentBlock.outerWidth;\n        var outerHeight = contentBlock.outerHeight;\n        var textPadding = style.padding;\n        var baseX = style.x || 0;\n        var baseY = style.y || 0;\n        var defaultStyle = this._defaultStyle;\n        var textAlign = style.align || defaultStyle.align;\n        var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign;\n        var boxX = adjustTextX(baseX, outerWidth, textAlign);\n        var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\n        var xLeft = boxX;\n        var lineTop = boxY;\n        if (textPadding) {\n            xLeft += textPadding[3];\n            lineTop += textPadding[0];\n        }\n        var xRight = xLeft + contentWidth;\n        if (needDrawBackground(style)) {\n            this._renderBackground(style, style, boxX, boxY, outerWidth, outerHeight);\n        }\n        var bgColorDrawn = !!(style.backgroundColor);\n        for (var i = 0; i < contentBlock.lines.length; i++) {\n            var line = contentBlock.lines[i];\n            var tokens = line.tokens;\n            var tokenCount = tokens.length;\n            var lineHeight = line.lineHeight;\n            var remainedWidth = line.width;\n            var leftIndex = 0;\n            var lineXLeft = xLeft;\n            var lineXRight = xRight;\n            var rightIndex = tokenCount - 1;\n            var token = void 0;\n            while (leftIndex < tokenCount\n                && (token = tokens[leftIndex], !token.align || token.align === 'left')) {\n                this._placeToken(token, style, lineHeight, lineTop, lineXLeft, 'left', bgColorDrawn);\n                remainedWidth -= token.width;\n                lineXLeft += token.width;\n                leftIndex++;\n            }\n            while (rightIndex >= 0\n                && (token = tokens[rightIndex], token.align === 'right')) {\n                this._placeToken(token, style, lineHeight, lineTop, lineXRight, 'right', bgColorDrawn);\n                remainedWidth -= token.width;\n                lineXRight -= token.width;\n                rightIndex--;\n            }\n            lineXLeft += (contentWidth - (lineXLeft - xLeft) - (xRight - lineXRight) - remainedWidth) / 2;\n            while (leftIndex <= rightIndex) {\n                token = tokens[leftIndex];\n                this._placeToken(token, style, lineHeight, lineTop, lineXLeft + token.width / 2, 'center', bgColorDrawn);\n                lineXLeft += token.width;\n                leftIndex++;\n            }\n            lineTop += lineHeight;\n        }\n    };\n    ZRText.prototype._placeToken = function (token, style, lineHeight, lineTop, x, textAlign, parentBgColorDrawn) {\n        var tokenStyle = style.rich[token.styleName] || {};\n        tokenStyle.text = token.text;\n        var verticalAlign = token.verticalAlign;\n        var y = lineTop + lineHeight / 2;\n        if (verticalAlign === 'top') {\n            y = lineTop + token.height / 2;\n        }\n        else if (verticalAlign === 'bottom') {\n            y = lineTop + lineHeight - token.height / 2;\n        }\n        var needDrawBg = !token.isLineHolder && needDrawBackground(tokenStyle);\n        needDrawBg && this._renderBackground(tokenStyle, style, textAlign === 'right'\n            ? x - token.width\n            : textAlign === 'center'\n                ? x - token.width / 2\n                : x, y - token.height / 2, token.width, token.height);\n        var bgColorDrawn = !!tokenStyle.backgroundColor;\n        var textPadding = token.textPadding;\n        if (textPadding) {\n            x = getTextXForPadding(x, textAlign, textPadding);\n            y -= token.height / 2 - textPadding[0] - token.innerHeight / 2;\n        }\n        var el = this._getOrCreateChild(TSpan);\n        var subElStyle = el.createStyle();\n        el.useStyle(subElStyle);\n        var defaultStyle = this._defaultStyle;\n        var useDefaultFill = false;\n        var defaultLineWidth = 0;\n        var textFill = getStroke('fill' in tokenStyle ? tokenStyle.fill\n            : 'fill' in style ? style.fill\n                : (useDefaultFill = true, defaultStyle.fill));\n        var textStroke = getStroke('stroke' in tokenStyle ? tokenStyle.stroke\n            : 'stroke' in style ? style.stroke\n                : (!bgColorDrawn\n                    && !parentBgColorDrawn\n                    && (!defaultStyle.autoStroke || useDefaultFill)) ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\n                    : null);\n        var hasShadow = tokenStyle.textShadowBlur > 0\n            || style.textShadowBlur > 0;\n        subElStyle.text = token.text;\n        subElStyle.x = x;\n        subElStyle.y = y;\n        if (hasShadow) {\n            subElStyle.shadowBlur = tokenStyle.textShadowBlur || style.textShadowBlur || 0;\n            subElStyle.shadowColor = tokenStyle.textShadowColor || style.textShadowColor || 'transparent';\n            subElStyle.shadowOffsetX = tokenStyle.textShadowOffsetX || style.textShadowOffsetX || 0;\n            subElStyle.shadowOffsetY = tokenStyle.textShadowOffsetY || style.textShadowOffsetY || 0;\n        }\n        subElStyle.textAlign = textAlign;\n        subElStyle.textBaseline = 'middle';\n        subElStyle.font = token.font || DEFAULT_FONT;\n        subElStyle.opacity = retrieve3(tokenStyle.opacity, style.opacity, 1);\n        if (textStroke) {\n            subElStyle.lineWidth = retrieve3(tokenStyle.lineWidth, style.lineWidth, defaultLineWidth);\n            subElStyle.lineDash = retrieve2(tokenStyle.lineDash, style.lineDash);\n            subElStyle.lineDashOffset = style.lineDashOffset || 0;\n            subElStyle.stroke = textStroke;\n        }\n        if (textFill) {\n            subElStyle.fill = textFill;\n        }\n        var textWidth = token.contentWidth;\n        var textHeight = token.contentHeight;\n        el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, textWidth, subElStyle.textAlign), adjustTextY(subElStyle.y, textHeight, subElStyle.textBaseline), textWidth, textHeight));\n    };\n    ZRText.prototype._renderBackground = function (style, topStyle, x, y, width, height) {\n        var textBackgroundColor = style.backgroundColor;\n        var textBorderWidth = style.borderWidth;\n        var textBorderColor = style.borderColor;\n        var isPlainBg = isString(textBackgroundColor);\n        var textBorderRadius = style.borderRadius;\n        var self = this;\n        var rectEl;\n        var imgEl;\n        if (isPlainBg || (textBorderWidth && textBorderColor)) {\n            rectEl = this._getOrCreateChild(Rect);\n            rectEl.useStyle(rectEl.createStyle());\n            rectEl.style.fill = null;\n            var rectShape = rectEl.shape;\n            rectShape.x = x;\n            rectShape.y = y;\n            rectShape.width = width;\n            rectShape.height = height;\n            rectShape.r = textBorderRadius;\n            rectEl.dirtyShape();\n        }\n        if (isPlainBg) {\n            var rectStyle = rectEl.style;\n            rectStyle.fill = textBackgroundColor || null;\n            rectStyle.fillOpacity = retrieve2(style.fillOpacity, 1);\n        }\n        else if (textBackgroundColor && textBackgroundColor.image) {\n            imgEl = this._getOrCreateChild(ZRImage);\n            imgEl.onload = function () {\n                self.dirtyStyle();\n            };\n            var imgStyle = imgEl.style;\n            imgStyle.image = textBackgroundColor.image;\n            imgStyle.x = x;\n            imgStyle.y = y;\n            imgStyle.width = width;\n            imgStyle.height = height;\n        }\n        if (textBorderWidth && textBorderColor) {\n            var rectStyle = rectEl.style;\n            rectStyle.lineWidth = textBorderWidth;\n            rectStyle.stroke = textBorderColor;\n            rectStyle.strokeOpacity = retrieve2(style.strokeOpacity, 1);\n            rectStyle.lineDash = style.borderDash;\n            rectStyle.lineDashOffset = style.borderDashOffset || 0;\n            rectEl.strokeContainThreshold = 0;\n            if (rectEl.hasFill() && rectEl.hasStroke()) {\n                rectStyle.strokeFirst = true;\n                rectStyle.lineWidth *= 2;\n            }\n        }\n        var commonStyle = (rectEl || imgEl).style;\n        commonStyle.shadowBlur = style.shadowBlur || 0;\n        commonStyle.shadowColor = style.shadowColor || 'transparent';\n        commonStyle.shadowOffsetX = style.shadowOffsetX || 0;\n        commonStyle.shadowOffsetY = style.shadowOffsetY || 0;\n        commonStyle.opacity = retrieve3(style.opacity, topStyle.opacity, 1);\n    };\n    ZRText.makeFont = function (style) {\n        var font = '';\n        if (style.fontSize || style.fontFamily || style.fontWeight) {\n            var fontSize = '';\n            if (typeof style.fontSize === 'string'\n                && (style.fontSize.indexOf('px') !== -1\n                    || style.fontSize.indexOf('rem') !== -1\n                    || style.fontSize.indexOf('em') !== -1)) {\n                fontSize = style.fontSize;\n            }\n            else if (!isNaN(+style.fontSize)) {\n                fontSize = style.fontSize + 'px';\n            }\n            else {\n                fontSize = '12px';\n            }\n            font = [\n                style.fontStyle,\n                style.fontWeight,\n                fontSize,\n                style.fontFamily || 'sans-serif'\n            ].join(' ');\n        }\n        return font && trim(font) || style.textFont || style.font;\n    };\n    return ZRText;\n}(Displayable));\nvar VALID_TEXT_ALIGN = { left: true, right: 1, center: 1 };\nvar VALID_TEXT_VERTICAL_ALIGN = { top: 1, bottom: 1, middle: 1 };\nexport function normalizeTextStyle(style) {\n    normalizeStyle(style);\n    each(style.rich, normalizeStyle);\n    return style;\n}\nfunction normalizeStyle(style) {\n    if (style) {\n        style.font = ZRText.makeFont(style);\n        var textAlign = style.align;\n        textAlign === 'middle' && (textAlign = 'center');\n        style.align = (textAlign == null || VALID_TEXT_ALIGN[textAlign]) ? textAlign : 'left';\n        var verticalAlign = style.verticalAlign;\n        verticalAlign === 'center' && (verticalAlign = 'middle');\n        style.verticalAlign = (verticalAlign == null || VALID_TEXT_VERTICAL_ALIGN[verticalAlign]) ? verticalAlign : 'top';\n        var textPadding = style.padding;\n        if (textPadding) {\n            style.padding = normalizeCssArray(style.padding);\n        }\n    }\n}\nfunction getStroke(stroke, lineWidth) {\n    return (stroke == null || lineWidth <= 0 || stroke === 'transparent' || stroke === 'none')\n        ? null\n        : (stroke.image || stroke.colorStops)\n            ? '#000'\n            : stroke;\n}\nfunction getFill(fill) {\n    return (fill == null || fill === 'none')\n        ? null\n        : (fill.image || fill.colorStops)\n            ? '#000'\n            : fill;\n}\nfunction getTextXForPadding(x, textAlign, textPadding) {\n    return textAlign === 'right'\n        ? (x - textPadding[1])\n        : textAlign === 'center'\n            ? (x + textPadding[3] / 2 - textPadding[1] / 2)\n            : (x + textPadding[3]);\n}\nfunction getStyleText(style) {\n    var text = style.text;\n    text != null && (text += '');\n    return text;\n}\nfunction needDrawBackground(style) {\n    return !!(style.backgroundColor\n        || (style.borderWidth && style.borderColor));\n}\nexport default ZRText;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner } from './model';\nexport var getECData = makeInner();","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport LRU from 'zrender/lib/core/LRU';\nimport { extend, indexOf, isArrayLike, isObject, keys, isArray, each } from 'zrender/lib/core/util';\nimport { getECData } from './innerStore';\nimport * as colorTool from 'zrender/lib/tool/color';\nimport { queryDataIndex, makeInner } from './model';\nimport Path from 'zrender/lib/graphic/Path';\nvar _highlightNextDigit = 1;\nvar _highlightKeyMap = {};\nvar getSavedStates = makeInner();\nexport var HOVER_STATE_NORMAL = 0;\nexport var HOVER_STATE_BLUR = 1;\nexport var HOVER_STATE_EMPHASIS = 2;\nexport var SPECIAL_STATES = ['emphasis', 'blur', 'select'];\nexport var DISPLAY_STATES = ['normal', 'emphasis', 'blur', 'select'];\nexport var Z2_EMPHASIS_LIFT = 10;\nexport var Z2_SELECT_LIFT = 9;\nexport var HIGHLIGHT_ACTION_TYPE = 'highlight';\nexport var DOWNPLAY_ACTION_TYPE = 'downplay';\nexport var SELECT_ACTION_TYPE = 'select';\nexport var UNSELECT_ACTION_TYPE = 'unselect';\nexport var TOGGLE_SELECT_ACTION_TYPE = 'toggleSelect';\n\nfunction hasFillOrStroke(fillOrStroke) {\n  return fillOrStroke != null && fillOrStroke !== 'none';\n}\n\nvar liftedColorCache = new LRU(100);\n\nfunction liftColor(color) {\n  if (typeof color !== 'string') {\n    return color;\n  }\n\n  var liftedColor = liftedColorCache.get(color);\n\n  if (!liftedColor) {\n    liftedColor = colorTool.lift(color, -0.1);\n    liftedColorCache.put(color, liftedColor);\n  }\n\n  return liftedColor;\n}\n\nfunction doChangeHoverState(el, stateName, hoverStateEnum) {\n  if (el.onHoverStateChange && (el.hoverState || 0) !== hoverStateEnum) {\n    el.onHoverStateChange(stateName);\n  }\n\n  el.hoverState = hoverStateEnum;\n}\n\nfunction singleEnterEmphasis(el) {\n  doChangeHoverState(el, 'emphasis', HOVER_STATE_EMPHASIS);\n}\n\nfunction singleLeaveEmphasis(el) {\n  if (el.hoverState === HOVER_STATE_EMPHASIS) {\n    doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\n  }\n}\n\nfunction singleEnterBlur(el) {\n  doChangeHoverState(el, 'blur', HOVER_STATE_BLUR);\n}\n\nfunction singleLeaveBlur(el) {\n  if (el.hoverState === HOVER_STATE_BLUR) {\n    doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\n  }\n}\n\nfunction singleEnterSelect(el) {\n  el.selected = true;\n}\n\nfunction singleLeaveSelect(el) {\n  el.selected = false;\n}\n\nfunction updateElementState(el, updater, commonParam) {\n  updater(el, commonParam);\n}\n\nfunction traverseUpdateState(el, updater, commonParam) {\n  updateElementState(el, updater, commonParam);\n  el.isGroup && el.traverse(function (child) {\n    updateElementState(child, updater, commonParam);\n  });\n}\n\nexport function setStatesFlag(el, stateName) {\n  switch (stateName) {\n    case 'emphasis':\n      el.hoverState = HOVER_STATE_EMPHASIS;\n      break;\n\n    case 'normal':\n      el.hoverState = HOVER_STATE_NORMAL;\n      break;\n\n    case 'blur':\n      el.hoverState = HOVER_STATE_BLUR;\n      break;\n\n    case 'select':\n      el.selected = true;\n  }\n}\nexport function clearStates(el) {\n  if (el.isGroup) {\n    el.traverse(function (child) {\n      child.clearStates();\n    });\n  } else {\n    el.clearStates();\n  }\n}\n\nfunction getFromStateStyle(el, props, toStateName, defaultValue) {\n  var style = el.style;\n  var fromState = {};\n\n  for (var i = 0; i < props.length; i++) {\n    var propName = props[i];\n    var val = style[propName];\n    fromState[propName] = val == null ? defaultValue && defaultValue[propName] : val;\n  }\n\n  for (var i = 0; i < el.animators.length; i++) {\n    var animator = el.animators[i];\n\n    if (animator.__fromStateTransition && animator.__fromStateTransition.indexOf(toStateName) < 0 && animator.targetName === 'style') {\n      animator.saveFinalToTarget(fromState, props);\n    }\n  }\n\n  return fromState;\n}\n\nfunction createEmphasisDefaultState(el, stateName, targetStates, state) {\n  var hasSelect = targetStates && indexOf(targetStates, 'select') >= 0;\n  var cloned = false;\n\n  if (el instanceof Path) {\n    var store = getSavedStates(el);\n    var fromFill = hasSelect ? store.selectFill || store.normalFill : store.normalFill;\n    var fromStroke = hasSelect ? store.selectStroke || store.normalStroke : store.normalStroke;\n\n    if (hasFillOrStroke(fromFill) || hasFillOrStroke(fromStroke)) {\n      state = state || {};\n      var emphasisStyle = state.style || {};\n\n      if (!hasFillOrStroke(emphasisStyle.fill) && hasFillOrStroke(fromFill)) {\n        cloned = true;\n        state = extend({}, state);\n        emphasisStyle = extend({}, emphasisStyle);\n        emphasisStyle.fill = liftColor(fromFill);\n      } else if (!hasFillOrStroke(emphasisStyle.stroke) && hasFillOrStroke(fromStroke)) {\n        if (!cloned) {\n          state = extend({}, state);\n          emphasisStyle = extend({}, emphasisStyle);\n        }\n\n        emphasisStyle.stroke = liftColor(fromStroke);\n      }\n\n      state.style = emphasisStyle;\n    }\n  }\n\n  if (state) {\n    if (state.z2 == null) {\n      if (!cloned) {\n        state = extend({}, state);\n      }\n\n      var z2EmphasisLift = el.z2EmphasisLift;\n      state.z2 = el.z2 + (z2EmphasisLift != null ? z2EmphasisLift : Z2_EMPHASIS_LIFT);\n    }\n  }\n\n  return state;\n}\n\nfunction createSelectDefaultState(el, stateName, state) {\n  if (state) {\n    if (state.z2 == null) {\n      state = extend({}, state);\n      var z2SelectLift = el.z2SelectLift;\n      state.z2 = el.z2 + (z2SelectLift != null ? z2SelectLift : Z2_SELECT_LIFT);\n    }\n  }\n\n  return state;\n}\n\nfunction createBlurDefaultState(el, stateName, state) {\n  var hasBlur = indexOf(el.currentStates, stateName) >= 0;\n  var currentOpacity = el.style.opacity;\n  var fromState = !hasBlur ? getFromStateStyle(el, ['opacity'], stateName, {\n    opacity: 1\n  }) : null;\n  state = state || {};\n  var blurStyle = state.style || {};\n\n  if (blurStyle.opacity == null) {\n    state = extend({}, state);\n    blurStyle = extend({\n      opacity: hasBlur ? currentOpacity : fromState.opacity * 0.1\n    }, blurStyle);\n    state.style = blurStyle;\n  }\n\n  return state;\n}\n\nfunction elementStateProxy(stateName, targetStates) {\n  var state = this.states[stateName];\n\n  if (this.style) {\n    if (stateName === 'emphasis') {\n      return createEmphasisDefaultState(this, stateName, targetStates, state);\n    } else if (stateName === 'blur') {\n      return createBlurDefaultState(this, stateName, state);\n    } else if (stateName === 'select') {\n      return createSelectDefaultState(this, stateName, state);\n    }\n  }\n\n  return state;\n}\n\nexport function setDefaultStateProxy(el) {\n  el.stateProxy = elementStateProxy;\n  var textContent = el.getTextContent();\n  var textGuide = el.getTextGuideLine();\n\n  if (textContent) {\n    textContent.stateProxy = elementStateProxy;\n  }\n\n  if (textGuide) {\n    textGuide.stateProxy = elementStateProxy;\n  }\n}\nexport function enterEmphasisWhenMouseOver(el, e) {\n  !shouldSilent(el, e) && !el.__highByOuter && traverseUpdateState(el, singleEnterEmphasis);\n}\nexport function leaveEmphasisWhenMouseOut(el, e) {\n  !shouldSilent(el, e) && !el.__highByOuter && traverseUpdateState(el, singleLeaveEmphasis);\n}\nexport function enterEmphasis(el, highlightDigit) {\n  el.__highByOuter |= 1 << (highlightDigit || 0);\n  traverseUpdateState(el, singleEnterEmphasis);\n}\nexport function leaveEmphasis(el, highlightDigit) {\n  !(el.__highByOuter &= ~(1 << (highlightDigit || 0))) && traverseUpdateState(el, singleLeaveEmphasis);\n}\nexport function enterBlur(el) {\n  traverseUpdateState(el, singleEnterBlur);\n}\nexport function leaveBlur(el) {\n  traverseUpdateState(el, singleLeaveBlur);\n}\nexport function enterSelect(el) {\n  traverseUpdateState(el, singleEnterSelect);\n}\nexport function leaveSelect(el) {\n  traverseUpdateState(el, singleLeaveSelect);\n}\n\nfunction shouldSilent(el, e) {\n  return el.__highDownSilentOnTouch && e.zrByTouch;\n}\n\nfunction allLeaveBlur(api) {\n  var model = api.getModel();\n  model.eachComponent(function (componentType, componentModel) {\n    var view = componentType === 'series' ? api.getViewOfSeriesModel(componentModel) : api.getViewOfComponentModel(componentModel);\n    view.group.traverse(function (child) {\n      singleLeaveBlur(child);\n    });\n  });\n}\n\nexport function toggleSeriesBlurState(targetSeriesIndex, focus, blurScope, api, isBlur) {\n  var ecModel = api.getModel();\n  blurScope = blurScope || 'coordinateSystem';\n\n  function leaveBlurOfIndices(data, dataIndices) {\n    for (var i = 0; i < dataIndices.length; i++) {\n      var itemEl = data.getItemGraphicEl(dataIndices[i]);\n      itemEl && leaveBlur(itemEl);\n    }\n  }\n\n  if (!isBlur) {\n    allLeaveBlur(api);\n    return;\n  }\n\n  if (targetSeriesIndex == null) {\n    return;\n  }\n\n  if (!focus || focus === 'none') {\n    return;\n  }\n\n  var targetSeriesModel = ecModel.getSeriesByIndex(targetSeriesIndex);\n  var targetCoordSys = targetSeriesModel.coordinateSystem;\n\n  if (targetCoordSys && targetCoordSys.master) {\n    targetCoordSys = targetCoordSys.master;\n  }\n\n  var blurredSeries = [];\n  ecModel.eachSeries(function (seriesModel) {\n    var sameSeries = targetSeriesModel === seriesModel;\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys && coordSys.master) {\n      coordSys = coordSys.master;\n    }\n\n    var sameCoordSys = coordSys && targetCoordSys ? coordSys === targetCoordSys : sameSeries;\n\n    if (!(blurScope === 'series' && !sameSeries || blurScope === 'coordinateSystem' && !sameCoordSys || focus === 'series' && sameSeries)) {\n      var view = api.getViewOfSeriesModel(seriesModel);\n      view.group.traverse(function (child) {\n        singleEnterBlur(child);\n      });\n\n      if (isArrayLike(focus)) {\n        leaveBlurOfIndices(seriesModel.getData(), focus);\n      } else if (isObject(focus)) {\n        var dataTypes = keys(focus);\n\n        for (var d = 0; d < dataTypes.length; d++) {\n          leaveBlurOfIndices(seriesModel.getData(dataTypes[d]), focus[dataTypes[d]]);\n        }\n      }\n\n      blurredSeries.push(seriesModel);\n    }\n  });\n  ecModel.eachComponent(function (componentType, componentModel) {\n    if (componentType === 'series') {\n      return;\n    }\n\n    var view = api.getViewOfComponentModel(componentModel);\n\n    if (view && view.blurSeries) {\n      view.blurSeries(blurredSeries, ecModel);\n    }\n  });\n}\nexport function toggleSeriesBlurStateFromPayload(seriesModel, payload, api) {\n  if (!isHighDownPayload(payload)) {\n    return;\n  }\n\n  var isHighlight = payload.type === HIGHLIGHT_ACTION_TYPE;\n  var seriesIndex = seriesModel.seriesIndex;\n  var data = seriesModel.getData(payload.dataType);\n  var dataIndex = queryDataIndex(data, payload);\n  dataIndex = (isArray(dataIndex) ? dataIndex[0] : dataIndex) || 0;\n  var el = data.getItemGraphicEl(dataIndex);\n\n  if (!el) {\n    var count = data.count();\n    var current = 0;\n\n    while (!el && current < count) {\n      el = data.getItemGraphicEl(current++);\n    }\n  }\n\n  if (el) {\n    var ecData = getECData(el);\n    toggleSeriesBlurState(seriesIndex, ecData.focus, ecData.blurScope, api, isHighlight);\n  } else {\n    var focus_1 = seriesModel.get(['emphasis', 'focus']);\n    var blurScope = seriesModel.get(['emphasis', 'blurScope']);\n\n    if (focus_1 != null) {\n      toggleSeriesBlurState(seriesIndex, focus_1, blurScope, api, isHighlight);\n    }\n  }\n}\nexport function toggleSelectionFromPayload(seriesModel, payload, api) {\n  if (!isSelectChangePayload(payload)) {\n    return;\n  }\n\n  var dataType = payload.dataType;\n  var data = seriesModel.getData(dataType);\n  var dataIndex = queryDataIndex(data, payload);\n\n  if (!isArray(dataIndex)) {\n    dataIndex = [dataIndex];\n  }\n\n  seriesModel[payload.type === TOGGLE_SELECT_ACTION_TYPE ? 'toggleSelect' : payload.type === SELECT_ACTION_TYPE ? 'select' : 'unselect'](dataIndex, dataType);\n}\nexport function updateSeriesElementSelection(seriesModel) {\n  var allData = seriesModel.getAllData();\n  each(allData, function (_a) {\n    var data = _a.data,\n        type = _a.type;\n    data.eachItemGraphicEl(function (el, idx) {\n      seriesModel.isSelected(idx, type) ? enterSelect(el) : leaveSelect(el);\n    });\n  });\n}\nexport function getAllSelectedIndices(ecModel) {\n  var ret = [];\n  ecModel.eachSeries(function (seriesModel) {\n    var allData = seriesModel.getAllData();\n    each(allData, function (_a) {\n      var data = _a.data,\n          type = _a.type;\n      var dataIndices = seriesModel.getSelectedDataIndices();\n\n      if (dataIndices.length > 0) {\n        var item = {\n          dataIndex: dataIndices,\n          seriesIndex: seriesModel.seriesIndex\n        };\n\n        if (type != null) {\n          item.dataType = type;\n        }\n\n        ret.push(item);\n      }\n    });\n  });\n  return ret;\n}\nexport function enableHoverEmphasis(el, focus, blurScope) {\n  setAsHighDownDispatcher(el, true);\n  traverseUpdateState(el, setDefaultStateProxy);\n  enableHoverFocus(el, focus, blurScope);\n}\nexport function enableHoverFocus(el, focus, blurScope) {\n  var ecData = getECData(el);\n\n  if (focus != null) {\n    ecData.focus = focus;\n    ecData.blurScope = blurScope;\n  } else if (ecData.focus) {\n    ecData.focus = null;\n  }\n}\nvar OTHER_STATES = ['emphasis', 'blur', 'select'];\nvar defaultStyleGetterMap = {\n  itemStyle: 'getItemStyle',\n  lineStyle: 'getLineStyle',\n  areaStyle: 'getAreaStyle'\n};\nexport function setStatesStylesFromModel(el, itemModel, styleType, getter) {\n  styleType = styleType || 'itemStyle';\n\n  for (var i = 0; i < OTHER_STATES.length; i++) {\n    var stateName = OTHER_STATES[i];\n    var model = itemModel.getModel([stateName, styleType]);\n    var state = el.ensureState(stateName);\n    state.style = getter ? getter(model) : model[defaultStyleGetterMap[styleType]]();\n  }\n}\nexport function setAsHighDownDispatcher(el, asDispatcher) {\n  var disable = asDispatcher === false;\n  var extendedEl = el;\n\n  if (el.highDownSilentOnTouch) {\n    extendedEl.__highDownSilentOnTouch = el.highDownSilentOnTouch;\n  }\n\n  if (!disable || extendedEl.__highDownDispatcher) {\n    extendedEl.__highByOuter = extendedEl.__highByOuter || 0;\n    extendedEl.__highDownDispatcher = !disable;\n  }\n}\nexport function isHighDownDispatcher(el) {\n  return !!(el && el.__highDownDispatcher);\n}\nexport function getHighlightDigit(highlightKey) {\n  var highlightDigit = _highlightKeyMap[highlightKey];\n\n  if (highlightDigit == null && _highlightNextDigit <= 32) {\n    highlightDigit = _highlightKeyMap[highlightKey] = _highlightNextDigit++;\n  }\n\n  return highlightDigit;\n}\nexport function isSelectChangePayload(payload) {\n  var payloadType = payload.type;\n  return payloadType === SELECT_ACTION_TYPE || payloadType === UNSELECT_ACTION_TYPE || payloadType === TOGGLE_SELECT_ACTION_TYPE;\n}\nexport function isHighDownPayload(payload) {\n  var payloadType = payload.type;\n  return payloadType === HIGHLIGHT_ACTION_TYPE || payloadType === DOWNPLAY_ACTION_TYPE;\n}\nexport function savePathStates(el) {\n  var store = getSavedStates(el);\n  store.normalFill = el.style.fill;\n  store.normalStroke = el.style.stroke;\n  var selectState = el.states.select || {};\n  store.selectFill = selectState.style && selectState.style.fill || null;\n  store.selectStroke = selectState.style && selectState.style.stroke || null;\n}","import PathProxy from '../core/PathProxy';\nimport { applyTransform as v2ApplyTransform } from '../core/vector';\nvar CMD = PathProxy.CMD;\nvar points = [[], [], []];\nvar mathSqrt = Math.sqrt;\nvar mathAtan2 = Math.atan2;\nexport default function transformPath(path, m) {\n    var data = path.data;\n    var len = path.len();\n    var cmd;\n    var nPoint;\n    var i;\n    var j;\n    var k;\n    var p;\n    var M = CMD.M;\n    var C = CMD.C;\n    var L = CMD.L;\n    var R = CMD.R;\n    var A = CMD.A;\n    var Q = CMD.Q;\n    for (i = 0, j = 0; i < len;) {\n        cmd = data[i++];\n        j = i;\n        nPoint = 0;\n        switch (cmd) {\n            case M:\n                nPoint = 1;\n                break;\n            case L:\n                nPoint = 1;\n                break;\n            case C:\n                nPoint = 3;\n                break;\n            case Q:\n                nPoint = 2;\n                break;\n            case A:\n                var x = m[4];\n                var y = m[5];\n                var sx = mathSqrt(m[0] * m[0] + m[1] * m[1]);\n                var sy = mathSqrt(m[2] * m[2] + m[3] * m[3]);\n                var angle = mathAtan2(-m[1] / sy, m[0] / sx);\n                data[i] *= sx;\n                data[i++] += x;\n                data[i] *= sy;\n                data[i++] += y;\n                data[i++] *= sx;\n                data[i++] *= sy;\n                data[i++] += angle;\n                data[i++] += angle;\n                i += 2;\n                j = i;\n                break;\n            case R:\n                p[0] = data[i++];\n                p[1] = data[i++];\n                v2ApplyTransform(p, p, m);\n                data[j++] = p[0];\n                data[j++] = p[1];\n                p[0] += data[i++];\n                p[1] += data[i++];\n                v2ApplyTransform(p, p, m);\n                data[j++] = p[0];\n                data[j++] = p[1];\n        }\n        for (k = 0; k < nPoint; k++) {\n            var p_1 = points[k];\n            p_1[0] = data[i++];\n            p_1[1] = data[i++];\n            v2ApplyTransform(p_1, p_1, m);\n            data[j++] = p_1[0];\n            data[j++] = p_1[1];\n        }\n    }\n    path.increaseVersion();\n}\n","import { __extends } from \"tslib\";\nimport Path from '../graphic/Path';\nimport PathProxy from '../core/PathProxy';\nimport transformPath from './transformPath';\nimport { extend } from '../core/util';\nvar mathSqrt = Math.sqrt;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI = Math.PI;\nfunction vMag(v) {\n    return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\n}\n;\nfunction vRatio(u, v) {\n    return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));\n}\n;\nfunction vAngle(u, v) {\n    return (u[0] * v[1] < u[1] * v[0] ? -1 : 1)\n        * Math.acos(vRatio(u, v));\n}\n;\nfunction processArc(x1, y1, x2, y2, fa, fs, rx, ry, psiDeg, cmd, path) {\n    var psi = psiDeg * (PI / 180.0);\n    var xp = mathCos(psi) * (x1 - x2) / 2.0\n        + mathSin(psi) * (y1 - y2) / 2.0;\n    var yp = -1 * mathSin(psi) * (x1 - x2) / 2.0\n        + mathCos(psi) * (y1 - y2) / 2.0;\n    var lambda = (xp * xp) / (rx * rx) + (yp * yp) / (ry * ry);\n    if (lambda > 1) {\n        rx *= mathSqrt(lambda);\n        ry *= mathSqrt(lambda);\n    }\n    var f = (fa === fs ? -1 : 1)\n        * mathSqrt((((rx * rx) * (ry * ry))\n            - ((rx * rx) * (yp * yp))\n            - ((ry * ry) * (xp * xp))) / ((rx * rx) * (yp * yp)\n            + (ry * ry) * (xp * xp))) || 0;\n    var cxp = f * rx * yp / ry;\n    var cyp = f * -ry * xp / rx;\n    var cx = (x1 + x2) / 2.0\n        + mathCos(psi) * cxp\n        - mathSin(psi) * cyp;\n    var cy = (y1 + y2) / 2.0\n        + mathSin(psi) * cxp\n        + mathCos(psi) * cyp;\n    var theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]);\n    var u = [(xp - cxp) / rx, (yp - cyp) / ry];\n    var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry];\n    var dTheta = vAngle(u, v);\n    if (vRatio(u, v) <= -1) {\n        dTheta = PI;\n    }\n    if (vRatio(u, v) >= 1) {\n        dTheta = 0;\n    }\n    if (dTheta < 0) {\n        var n = Math.round(dTheta / PI * 1e6) / 1e6;\n        dTheta = PI * 2 + (n % 2) * PI;\n    }\n    path.addData(cmd, cx, cy, rx, ry, theta, dTheta, psi, fs);\n}\nvar commandReg = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig;\nvar numberReg = /-?([0-9]*\\.)?[0-9]+([eE]-?[0-9]+)?/g;\nfunction createPathProxyFromString(data) {\n    var path = new PathProxy();\n    if (!data) {\n        return path;\n    }\n    var cpx = 0;\n    var cpy = 0;\n    var subpathX = cpx;\n    var subpathY = cpy;\n    var prevCmd;\n    var CMD = PathProxy.CMD;\n    var cmdList = data.match(commandReg);\n    if (!cmdList) {\n        return path;\n    }\n    for (var l = 0; l < cmdList.length; l++) {\n        var cmdText = cmdList[l];\n        var cmdStr = cmdText.charAt(0);\n        var cmd = void 0;\n        var p = cmdText.match(numberReg) || [];\n        var pLen = p.length;\n        for (var i = 0; i < pLen; i++) {\n            p[i] = parseFloat(p[i]);\n        }\n        var off = 0;\n        while (off < pLen) {\n            var ctlPtx = void 0;\n            var ctlPty = void 0;\n            var rx = void 0;\n            var ry = void 0;\n            var psi = void 0;\n            var fa = void 0;\n            var fs = void 0;\n            var x1 = cpx;\n            var y1 = cpy;\n            var len = void 0;\n            var pathData = void 0;\n            switch (cmdStr) {\n                case 'l':\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'L':\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'm':\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.M;\n                    path.addData(cmd, cpx, cpy);\n                    subpathX = cpx;\n                    subpathY = cpy;\n                    cmdStr = 'l';\n                    break;\n                case 'M':\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.M;\n                    path.addData(cmd, cpx, cpy);\n                    subpathX = cpx;\n                    subpathY = cpy;\n                    cmdStr = 'L';\n                    break;\n                case 'h':\n                    cpx += p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'H':\n                    cpx = p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'v':\n                    cpy += p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'V':\n                    cpy = p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'C':\n                    cmd = CMD.C;\n                    path.addData(cmd, p[off++], p[off++], p[off++], p[off++], p[off++], p[off++]);\n                    cpx = p[off - 2];\n                    cpy = p[off - 1];\n                    break;\n                case 'c':\n                    cmd = CMD.C;\n                    path.addData(cmd, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy);\n                    cpx += p[off - 2];\n                    cpy += p[off - 1];\n                    break;\n                case 'S':\n                    ctlPtx = cpx;\n                    ctlPty = cpy;\n                    len = path.len();\n                    pathData = path.data;\n                    if (prevCmd === CMD.C) {\n                        ctlPtx += cpx - pathData[len - 4];\n                        ctlPty += cpy - pathData[len - 3];\n                    }\n                    cmd = CMD.C;\n                    x1 = p[off++];\n                    y1 = p[off++];\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\n                    break;\n                case 's':\n                    ctlPtx = cpx;\n                    ctlPty = cpy;\n                    len = path.len();\n                    pathData = path.data;\n                    if (prevCmd === CMD.C) {\n                        ctlPtx += cpx - pathData[len - 4];\n                        ctlPty += cpy - pathData[len - 3];\n                    }\n                    cmd = CMD.C;\n                    x1 = cpx + p[off++];\n                    y1 = cpy + p[off++];\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\n                    break;\n                case 'Q':\n                    x1 = p[off++];\n                    y1 = p[off++];\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.Q;\n                    path.addData(cmd, x1, y1, cpx, cpy);\n                    break;\n                case 'q':\n                    x1 = p[off++] + cpx;\n                    y1 = p[off++] + cpy;\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.Q;\n                    path.addData(cmd, x1, y1, cpx, cpy);\n                    break;\n                case 'T':\n                    ctlPtx = cpx;\n                    ctlPty = cpy;\n                    len = path.len();\n                    pathData = path.data;\n                    if (prevCmd === CMD.Q) {\n                        ctlPtx += cpx - pathData[len - 4];\n                        ctlPty += cpy - pathData[len - 3];\n                    }\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.Q;\n                    path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n                    break;\n                case 't':\n                    ctlPtx = cpx;\n                    ctlPty = cpy;\n                    len = path.len();\n                    pathData = path.data;\n                    if (prevCmd === CMD.Q) {\n                        ctlPtx += cpx - pathData[len - 4];\n                        ctlPty += cpy - pathData[len - 3];\n                    }\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.Q;\n                    path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n                    break;\n                case 'A':\n                    rx = p[off++];\n                    ry = p[off++];\n                    psi = p[off++];\n                    fa = p[off++];\n                    fs = p[off++];\n                    x1 = cpx, y1 = cpy;\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.A;\n                    processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\n                    break;\n                case 'a':\n                    rx = p[off++];\n                    ry = p[off++];\n                    psi = p[off++];\n                    fa = p[off++];\n                    fs = p[off++];\n                    x1 = cpx, y1 = cpy;\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.A;\n                    processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\n                    break;\n            }\n        }\n        if (cmdStr === 'z' || cmdStr === 'Z') {\n            cmd = CMD.Z;\n            path.addData(cmd);\n            cpx = subpathX;\n            cpy = subpathY;\n        }\n        prevCmd = cmd;\n    }\n    path.toStatic();\n    return path;\n}\nvar SVGPath = (function (_super) {\n    __extends(SVGPath, _super);\n    function SVGPath() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    SVGPath.prototype.applyTransform = function (m) { };\n    return SVGPath;\n}(Path));\nfunction isPathProxy(path) {\n    return path.setData != null;\n}\nfunction createPathOptions(str, opts) {\n    var pathProxy = createPathProxyFromString(str);\n    var innerOpts = extend({}, opts);\n    innerOpts.buildPath = function (path) {\n        if (isPathProxy(path)) {\n            path.setData(pathProxy.data);\n            var ctx = path.getContext();\n            if (ctx) {\n                path.rebuildPath(ctx, 1);\n            }\n        }\n        else {\n            var ctx = path;\n            pathProxy.rebuildPath(ctx, 1);\n        }\n    };\n    innerOpts.applyTransform = function (m) {\n        transformPath(pathProxy, m);\n        this.dirtyShape();\n    };\n    return innerOpts;\n}\nexport function createFromString(str, opts) {\n    return new SVGPath(createPathOptions(str, opts));\n}\nexport function extendFromString(str, defaultOpts) {\n    var innerOpts = createPathOptions(str, defaultOpts);\n    var Sub = (function (_super) {\n        __extends(Sub, _super);\n        function Sub(opts) {\n            var _this = _super.call(this, opts) || this;\n            _this.applyTransform = innerOpts.applyTransform;\n            _this.buildPath = innerOpts.buildPath;\n            return _this;\n        }\n        return Sub;\n    }(SVGPath));\n    return Sub;\n}\nexport function mergePath(pathEls, opts) {\n    var pathList = [];\n    var len = pathEls.length;\n    for (var i = 0; i < len; i++) {\n        var pathEl = pathEls[i];\n        if (!pathEl.path) {\n            pathEl.createPathProxy();\n        }\n        if (pathEl.shapeChanged()) {\n            pathEl.buildPath(pathEl.path, pathEl.shape, true);\n        }\n        pathList.push(pathEl.path);\n    }\n    var pathBundle = new Path(opts);\n    pathBundle.createPathProxy();\n    pathBundle.buildPath = function (path) {\n        if (isPathProxy(path)) {\n            path.appendPath(pathList);\n            var ctx = path.getContext();\n            if (ctx) {\n                path.rebuildPath(ctx, 1);\n            }\n        }\n    };\n    return pathBundle;\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar CircleShape = (function () {\n    function CircleShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.r = 0;\n    }\n    return CircleShape;\n}());\nvar Circle = (function (_super) {\n    __extends(Circle, _super);\n    function Circle(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Circle.prototype.getDefaultShape = function () {\n        return new CircleShape();\n    };\n    Circle.prototype.buildPath = function (ctx, shape, inBundle) {\n        if (inBundle) {\n            ctx.moveTo(shape.cx + shape.r, shape.cy);\n        }\n        ctx.arc(shape.cx, shape.cy, shape.r, 0, Math.PI * 2);\n    };\n    return Circle;\n}(Path));\n;\nCircle.prototype.type = 'circle';\nexport default Circle;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar EllipseShape = (function () {\n    function EllipseShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.rx = 0;\n        this.ry = 0;\n    }\n    return EllipseShape;\n}());\nvar Ellipse = (function (_super) {\n    __extends(Ellipse, _super);\n    function Ellipse(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Ellipse.prototype.getDefaultShape = function () {\n        return new EllipseShape();\n    };\n    Ellipse.prototype.buildPath = function (ctx, shape) {\n        var k = 0.5522848;\n        var x = shape.cx;\n        var y = shape.cy;\n        var a = shape.rx;\n        var b = shape.ry;\n        var ox = a * k;\n        var oy = b * k;\n        ctx.moveTo(x - a, y);\n        ctx.bezierCurveTo(x - a, y - oy, x - ox, y - b, x, y - b);\n        ctx.bezierCurveTo(x + ox, y - b, x + a, y - oy, x + a, y);\n        ctx.bezierCurveTo(x + a, y + oy, x + ox, y + b, x, y + b);\n        ctx.bezierCurveTo(x - ox, y + b, x - a, y + oy, x - a, y);\n        ctx.closePath();\n    };\n    return Ellipse;\n}(Path));\nEllipse.prototype.type = 'ellipse';\nexport default Ellipse;\n","import { normalizeArcAngles } from '../../core/PathProxy';\nvar PI = Math.PI;\nvar PI2 = PI * 2;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar mathACos = Math.acos;\nvar mathATan2 = Math.atan2;\nvar mathAbs = Math.abs;\nvar mathSqrt = Math.sqrt;\nvar mathMax = Math.max;\nvar mathMin = Math.min;\nvar e = 1e-4;\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n    var x10 = x1 - x0;\n    var y10 = y1 - y0;\n    var x32 = x3 - x2;\n    var y32 = y3 - y2;\n    var t = y32 * x10 - x32 * y10;\n    if (t * t < e) {\n        return;\n    }\n    t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n    return [x0 + t * x10, y0 + t * y10];\n}\nfunction computeCornerTangents(x0, y0, x1, y1, radius, cr, clockwise) {\n    var x01 = x0 - x1;\n    var y01 = y0 - y1;\n    var lo = (clockwise ? cr : -cr) / mathSqrt(x01 * x01 + y01 * y01);\n    var ox = lo * y01;\n    var oy = -lo * x01;\n    var x11 = x0 + ox;\n    var y11 = y0 + oy;\n    var x10 = x1 + ox;\n    var y10 = y1 + oy;\n    var x00 = (x11 + x10) / 2;\n    var y00 = (y11 + y10) / 2;\n    var dx = x10 - x11;\n    var dy = y10 - y11;\n    var d2 = dx * dx + dy * dy;\n    var r = radius - cr;\n    var s = x11 * y10 - x10 * y11;\n    var d = (dy < 0 ? -1 : 1) * mathSqrt(mathMax(0, r * r * d2 - s * s));\n    var cx0 = (s * dy - dx * d) / d2;\n    var cy0 = (-s * dx - dy * d) / d2;\n    var cx1 = (s * dy + dx * d) / d2;\n    var cy1 = (-s * dx + dy * d) / d2;\n    var dx0 = cx0 - x00;\n    var dy0 = cy0 - y00;\n    var dx1 = cx1 - x00;\n    var dy1 = cy1 - y00;\n    if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) {\n        cx0 = cx1;\n        cy0 = cy1;\n    }\n    return {\n        cx: cx0,\n        cy: cy0,\n        x01: -ox,\n        y01: -oy,\n        x11: cx0 * (radius / r - 1),\n        y11: cy0 * (radius / r - 1)\n    };\n}\nexport function buildPath(ctx, shape) {\n    var radius = mathMax(shape.r, 0);\n    var innerRadius = mathMax(shape.r0 || 0, 0);\n    var hasRadius = radius > 0;\n    var hasInnerRadius = innerRadius > 0;\n    if (!hasRadius && !hasInnerRadius) {\n        return;\n    }\n    if (!hasRadius) {\n        radius = innerRadius;\n        innerRadius = 0;\n    }\n    if (innerRadius > radius) {\n        var tmp = radius;\n        radius = innerRadius;\n        innerRadius = tmp;\n    }\n    var clockwise = !!shape.clockwise;\n    var startAngle = shape.startAngle;\n    var endAngle = shape.endAngle;\n    var tmpAngles = [startAngle, endAngle];\n    normalizeArcAngles(tmpAngles, !clockwise);\n    var arc = mathAbs(tmpAngles[0] - tmpAngles[1]);\n    var x = shape.cx;\n    var y = shape.cy;\n    var cornerRadius = shape.cornerRadius || 0;\n    var innerCornerRadius = shape.innerCornerRadius || 0;\n    if (!(radius > e)) {\n        ctx.moveTo(x, y);\n    }\n    else if (arc > PI2 - e) {\n        ctx.moveTo(x + radius * mathCos(startAngle), y + radius * mathSin(startAngle));\n        ctx.arc(x, y, radius, startAngle, endAngle, !clockwise);\n        if (innerRadius > e) {\n            ctx.moveTo(x + innerRadius * mathCos(endAngle), y + innerRadius * mathSin(endAngle));\n            ctx.arc(x, y, innerRadius, endAngle, startAngle, clockwise);\n        }\n    }\n    else {\n        var halfRd = mathAbs(radius - innerRadius) / 2;\n        var cr = mathMin(halfRd, cornerRadius);\n        var icr = mathMin(halfRd, innerCornerRadius);\n        var cr0 = icr;\n        var cr1 = cr;\n        var xrs = radius * mathCos(startAngle);\n        var yrs = radius * mathSin(startAngle);\n        var xire = innerRadius * mathCos(endAngle);\n        var yire = innerRadius * mathSin(endAngle);\n        var xre = void 0;\n        var yre = void 0;\n        var xirs = void 0;\n        var yirs = void 0;\n        if (cr > e || icr > e) {\n            xre = radius * mathCos(endAngle);\n            yre = radius * mathSin(endAngle);\n            xirs = innerRadius * mathCos(startAngle);\n            yirs = innerRadius * mathSin(startAngle);\n            if (arc < PI) {\n                var it_1 = intersect(xrs, yrs, xirs, yirs, xre, yre, xire, yire);\n                if (it_1) {\n                    var x0 = xrs - it_1[0];\n                    var y0 = yrs - it_1[1];\n                    var x1 = xre - it_1[0];\n                    var y1 = yre - it_1[1];\n                    var a = 1 / mathSin(mathACos((x0 * x1 + y0 * y1) / (mathSqrt(x0 * x0 + y0 * y0) * mathSqrt(x1 * x1 + y1 * y1))) / 2);\n                    var b = mathSqrt(it_1[0] * it_1[0] + it_1[1] * it_1[1]);\n                    cr0 = mathMin(icr, (innerRadius - b) / (a - 1));\n                    cr1 = mathMin(cr, (radius - b) / (a + 1));\n                }\n            }\n        }\n        if (!(arc > e)) {\n            ctx.moveTo(x + xrs, y + yrs);\n        }\n        else if (cr1 > e) {\n            var ct0 = computeCornerTangents(xirs, yirs, xrs, yrs, radius, cr1, clockwise);\n            var ct1 = computeCornerTangents(xre, yre, xire, yire, radius, cr1, clockwise);\n            ctx.moveTo(x + ct0.cx + ct0.x01, y + ct0.cy + ct0.y01);\n            if (cr1 < cr) {\n                ctx.arc(x + ct0.cx, y + ct0.cy, cr1, mathATan2(ct0.y01, ct0.x01), mathATan2(ct1.y01, ct1.x01), !clockwise);\n            }\n            else {\n                ctx.arc(x + ct0.cx, y + ct0.cy, cr1, mathATan2(ct0.y01, ct0.x01), mathATan2(ct0.y11, ct0.x11), !clockwise);\n                ctx.arc(x, y, radius, mathATan2(ct0.cy + ct0.y11, ct0.cx + ct0.x11), mathATan2(ct1.cy + ct1.y11, ct1.cx + ct1.x11), !clockwise);\n                ctx.arc(x + ct1.cx, y + ct1.cy, cr1, mathATan2(ct1.y11, ct1.x11), mathATan2(ct1.y01, ct1.x01), !clockwise);\n            }\n        }\n        else {\n            ctx.moveTo(x + xrs, y + yrs);\n            ctx.arc(x, y, radius, startAngle, endAngle, !clockwise);\n        }\n        if (!(innerRadius > e) || !(arc > e)) {\n            ctx.lineTo(x + xire, y + yire);\n        }\n        else if (cr0 > e) {\n            var ct0 = computeCornerTangents(xire, yire, xre, yre, innerRadius, -cr0, clockwise);\n            var ct1 = computeCornerTangents(xrs, yrs, xirs, yirs, innerRadius, -cr0, clockwise);\n            ctx.lineTo(x + ct0.cx + ct0.x01, y + ct0.cy + ct0.y01);\n            if (cr0 < icr) {\n                ctx.arc(x + ct0.cx, y + ct0.cy, cr0, mathATan2(ct0.y01, ct0.x01), mathATan2(ct1.y01, ct1.x01), !clockwise);\n            }\n            else {\n                ctx.arc(x + ct0.cx, y + ct0.cy, cr0, mathATan2(ct0.y01, ct0.x01), mathATan2(ct0.y11, ct0.x11), !clockwise);\n                ctx.arc(x, y, innerRadius, mathATan2(ct0.cy + ct0.y11, ct0.cx + ct0.x11), mathATan2(ct1.cy + ct1.y11, ct1.cx + ct1.x11), clockwise);\n                ctx.arc(x + ct1.cx, y + ct1.cy, cr0, mathATan2(ct1.y11, ct1.x11), mathATan2(ct1.y01, ct1.x01), !clockwise);\n            }\n        }\n        else {\n            ctx.lineTo(x + xire, y + yire);\n            ctx.arc(x, y, innerRadius, endAngle, startAngle, clockwise);\n        }\n    }\n    ctx.closePath();\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as roundSectorHelper from '../helper/roundSector';\nvar SectorShape = (function () {\n    function SectorShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.r0 = 0;\n        this.r = 0;\n        this.startAngle = 0;\n        this.endAngle = Math.PI * 2;\n        this.clockwise = true;\n        this.cornerRadius = 0;\n        this.innerCornerRadius = 0;\n    }\n    return SectorShape;\n}());\nvar Sector = (function (_super) {\n    __extends(Sector, _super);\n    function Sector(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Sector.prototype.getDefaultShape = function () {\n        return new SectorShape();\n    };\n    Sector.prototype.buildPath = function (ctx, shape) {\n        roundSectorHelper.buildPath(ctx, shape);\n    };\n    Sector.prototype.isZeroArea = function () {\n        return this.shape.startAngle === this.shape.endAngle\n            || this.shape.r === this.shape.r0;\n    };\n    return Sector;\n}(Path));\nSector.prototype.type = 'sector';\nexport default Sector;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar RingShape = (function () {\n    function RingShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.r = 0;\n        this.r0 = 0;\n    }\n    return RingShape;\n}());\nvar Ring = (function (_super) {\n    __extends(Ring, _super);\n    function Ring(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Ring.prototype.getDefaultShape = function () {\n        return new RingShape();\n    };\n    Ring.prototype.buildPath = function (ctx, shape) {\n        var x = shape.cx;\n        var y = shape.cy;\n        var PI2 = Math.PI * 2;\n        ctx.moveTo(x + shape.r, y);\n        ctx.arc(x, y, shape.r, 0, PI2, false);\n        ctx.moveTo(x + shape.r0, y);\n        ctx.arc(x, y, shape.r0, 0, PI2, true);\n    };\n    return Ring;\n}(Path));\nRing.prototype.type = 'ring';\nexport default Ring;\n","import { distance as v2Distance } from '../../core/vector';\nfunction interpolate(p0, p1, p2, p3, t, t2, t3) {\n    var v0 = (p2 - p0) * 0.5;\n    var v1 = (p3 - p1) * 0.5;\n    return (2 * (p1 - p2) + v0 + v1) * t3\n        + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\n        + v0 * t + p1;\n}\nexport default function smoothSpline(points, isLoop) {\n    var len = points.length;\n    var ret = [];\n    var distance = 0;\n    for (var i = 1; i < len; i++) {\n        distance += v2Distance(points[i - 1], points[i]);\n    }\n    var segs = distance / 2;\n    segs = segs < len ? len : segs;\n    for (var i = 0; i < segs; i++) {\n        var pos = i / (segs - 1) * (isLoop ? len : len - 1);\n        var idx = Math.floor(pos);\n        var w = pos - idx;\n        var p0 = void 0;\n        var p1 = points[idx % len];\n        var p2 = void 0;\n        var p3 = void 0;\n        if (!isLoop) {\n            p0 = points[idx === 0 ? idx : idx - 1];\n            p2 = points[idx > len - 2 ? len - 1 : idx + 1];\n            p3 = points[idx > len - 3 ? len - 1 : idx + 2];\n        }\n        else {\n            p0 = points[(idx - 1 + len) % len];\n            p2 = points[(idx + 1) % len];\n            p3 = points[(idx + 2) % len];\n        }\n        var w2 = w * w;\n        var w3 = w * w2;\n        ret.push([\n            interpolate(p0[0], p1[0], p2[0], p3[0], w, w2, w3),\n            interpolate(p0[1], p1[1], p2[1], p3[1], w, w2, w3)\n        ]);\n    }\n    return ret;\n}\n","import { min as v2Min, max as v2Max, scale as v2Scale, distance as v2Distance, add as v2Add, clone as v2Clone, sub as v2Sub } from '../../core/vector';\nexport default function smoothBezier(points, smooth, isLoop, constraint) {\n    var cps = [];\n    var v = [];\n    var v1 = [];\n    var v2 = [];\n    var prevPoint;\n    var nextPoint;\n    var min;\n    var max;\n    if (constraint) {\n        min = [Infinity, Infinity];\n        max = [-Infinity, -Infinity];\n        for (var i = 0, len = points.length; i < len; i++) {\n            v2Min(min, min, points[i]);\n            v2Max(max, max, points[i]);\n        }\n        v2Min(min, min, constraint[0]);\n        v2Max(max, max, constraint[1]);\n    }\n    for (var i = 0, len = points.length; i < len; i++) {\n        var point = points[i];\n        if (isLoop) {\n            prevPoint = points[i ? i - 1 : len - 1];\n            nextPoint = points[(i + 1) % len];\n        }\n        else {\n            if (i === 0 || i === len - 1) {\n                cps.push(v2Clone(points[i]));\n                continue;\n            }\n            else {\n                prevPoint = points[i - 1];\n                nextPoint = points[i + 1];\n            }\n        }\n        v2Sub(v, nextPoint, prevPoint);\n        v2Scale(v, v, smooth);\n        var d0 = v2Distance(point, prevPoint);\n        var d1 = v2Distance(point, nextPoint);\n        var sum = d0 + d1;\n        if (sum !== 0) {\n            d0 /= sum;\n            d1 /= sum;\n        }\n        v2Scale(v1, v, -d0);\n        v2Scale(v2, v, d1);\n        var cp0 = v2Add([], point, v1);\n        var cp1 = v2Add([], point, v2);\n        if (constraint) {\n            v2Max(cp0, cp0, min);\n            v2Min(cp0, cp0, max);\n            v2Max(cp1, cp1, min);\n            v2Min(cp1, cp1, max);\n        }\n        cps.push(cp0);\n        cps.push(cp1);\n    }\n    if (isLoop) {\n        cps.push(cps.shift());\n    }\n    return cps;\n}\n","import smoothSpline from './smoothSpline';\nimport smoothBezier from './smoothBezier';\nexport function buildPath(ctx, shape, closePath) {\n    var smooth = shape.smooth;\n    var points = shape.points;\n    if (points && points.length >= 2) {\n        if (smooth && smooth !== 'spline') {\n            var controlPoints = smoothBezier(points, smooth, closePath, shape.smoothConstraint);\n            ctx.moveTo(points[0][0], points[0][1]);\n            var len = points.length;\n            for (var i = 0; i < (closePath ? len : len - 1); i++) {\n                var cp1 = controlPoints[i * 2];\n                var cp2 = controlPoints[i * 2 + 1];\n                var p = points[(i + 1) % len];\n                ctx.bezierCurveTo(cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]);\n            }\n        }\n        else {\n            if (smooth === 'spline') {\n                points = smoothSpline(points, closePath);\n            }\n            ctx.moveTo(points[0][0], points[0][1]);\n            for (var i = 1, l = points.length; i < l; i++) {\n                ctx.lineTo(points[i][0], points[i][1]);\n            }\n        }\n        closePath && ctx.closePath();\n    }\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as polyHelper from '../helper/poly';\nvar PolygonShape = (function () {\n    function PolygonShape() {\n        this.points = null;\n        this.smooth = 0;\n        this.smoothConstraint = null;\n    }\n    return PolygonShape;\n}());\nvar Polygon = (function (_super) {\n    __extends(Polygon, _super);\n    function Polygon(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Polygon.prototype.getDefaultShape = function () {\n        return new PolygonShape();\n    };\n    Polygon.prototype.buildPath = function (ctx, shape) {\n        polyHelper.buildPath(ctx, shape, true);\n    };\n    return Polygon;\n}(Path));\n;\nPolygon.prototype.type = 'polygon';\nexport default Polygon;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as polyHelper from '../helper/poly';\nvar PolylineShape = (function () {\n    function PolylineShape() {\n        this.points = null;\n        this.percent = 1;\n        this.smooth = 0;\n        this.smoothConstraint = null;\n    }\n    return PolylineShape;\n}());\nvar Polyline = (function (_super) {\n    __extends(Polyline, _super);\n    function Polyline(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Polyline.prototype.getDefaultStyle = function () {\n        return {\n            stroke: '#000',\n            fill: null\n        };\n    };\n    Polyline.prototype.getDefaultShape = function () {\n        return new PolylineShape();\n    };\n    Polyline.prototype.buildPath = function (ctx, shape) {\n        polyHelper.buildPath(ctx, shape, false);\n    };\n    return Polyline;\n}(Path));\nPolyline.prototype.type = 'polyline';\nexport default Polyline;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport { subPixelOptimizeLine } from '../helper/subPixelOptimize';\nvar subPixelOptimizeOutputShape = {};\nvar LineShape = (function () {\n    function LineShape() {\n        this.x1 = 0;\n        this.y1 = 0;\n        this.x2 = 0;\n        this.y2 = 0;\n        this.percent = 1;\n    }\n    return LineShape;\n}());\nvar Line = (function (_super) {\n    __extends(Line, _super);\n    function Line(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Line.prototype.getDefaultStyle = function () {\n        return {\n            stroke: '#000',\n            fill: null\n        };\n    };\n    Line.prototype.getDefaultShape = function () {\n        return new LineShape();\n    };\n    Line.prototype.buildPath = function (ctx, shape) {\n        var x1;\n        var y1;\n        var x2;\n        var y2;\n        if (this.subPixelOptimize) {\n            var optimizedShape = subPixelOptimizeLine(subPixelOptimizeOutputShape, shape, this.style);\n            x1 = optimizedShape.x1;\n            y1 = optimizedShape.y1;\n            x2 = optimizedShape.x2;\n            y2 = optimizedShape.y2;\n        }\n        else {\n            x1 = shape.x1;\n            y1 = shape.y1;\n            x2 = shape.x2;\n            y2 = shape.y2;\n        }\n        var percent = shape.percent;\n        if (percent === 0) {\n            return;\n        }\n        ctx.moveTo(x1, y1);\n        if (percent < 1) {\n            x2 = x1 * (1 - percent) + x2 * percent;\n            y2 = y1 * (1 - percent) + y2 * percent;\n        }\n        ctx.lineTo(x2, y2);\n    };\n    Line.prototype.pointAt = function (p) {\n        var shape = this.shape;\n        return [\n            shape.x1 * (1 - p) + shape.x2 * p,\n            shape.y1 * (1 - p) + shape.y2 * p\n        ];\n    };\n    return Line;\n}(Path));\nLine.prototype.type = 'line';\nexport default Line;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as vec2 from '../../core/vector';\nimport { quadraticSubdivide, cubicSubdivide, quadraticAt, cubicAt, quadraticDerivativeAt, cubicDerivativeAt } from '../../core/curve';\nvar out = [];\nvar BezierCurveShape = (function () {\n    function BezierCurveShape() {\n        this.x1 = 0;\n        this.y1 = 0;\n        this.x2 = 0;\n        this.y2 = 0;\n        this.cpx1 = 0;\n        this.cpy1 = 0;\n        this.percent = 1;\n    }\n    return BezierCurveShape;\n}());\nfunction someVectorAt(shape, t, isTangent) {\n    var cpx2 = shape.cpx2;\n    var cpy2 = shape.cpy2;\n    if (cpx2 === null || cpy2 === null) {\n        return [\n            (isTangent ? cubicDerivativeAt : cubicAt)(shape.x1, shape.cpx1, shape.cpx2, shape.x2, t),\n            (isTangent ? cubicDerivativeAt : cubicAt)(shape.y1, shape.cpy1, shape.cpy2, shape.y2, t)\n        ];\n    }\n    else {\n        return [\n            (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.x1, shape.cpx1, shape.x2, t),\n            (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.y1, shape.cpy1, shape.y2, t)\n        ];\n    }\n}\nvar BezierCurve = (function (_super) {\n    __extends(BezierCurve, _super);\n    function BezierCurve(opts) {\n        return _super.call(this, opts) || this;\n    }\n    BezierCurve.prototype.getDefaultStyle = function () {\n        return {\n            stroke: '#000',\n            fill: null\n        };\n    };\n    BezierCurve.prototype.getDefaultShape = function () {\n        return new BezierCurveShape();\n    };\n    BezierCurve.prototype.buildPath = function (ctx, shape) {\n        var x1 = shape.x1;\n        var y1 = shape.y1;\n        var x2 = shape.x2;\n        var y2 = shape.y2;\n        var cpx1 = shape.cpx1;\n        var cpy1 = shape.cpy1;\n        var cpx2 = shape.cpx2;\n        var cpy2 = shape.cpy2;\n        var percent = shape.percent;\n        if (percent === 0) {\n            return;\n        }\n        ctx.moveTo(x1, y1);\n        if (cpx2 == null || cpy2 == null) {\n            if (percent < 1) {\n                quadraticSubdivide(x1, cpx1, x2, percent, out);\n                cpx1 = out[1];\n                x2 = out[2];\n                quadraticSubdivide(y1, cpy1, y2, percent, out);\n                cpy1 = out[1];\n                y2 = out[2];\n            }\n            ctx.quadraticCurveTo(cpx1, cpy1, x2, y2);\n        }\n        else {\n            if (percent < 1) {\n                cubicSubdivide(x1, cpx1, cpx2, x2, percent, out);\n                cpx1 = out[1];\n                cpx2 = out[2];\n                x2 = out[3];\n                cubicSubdivide(y1, cpy1, cpy2, y2, percent, out);\n                cpy1 = out[1];\n                cpy2 = out[2];\n                y2 = out[3];\n            }\n            ctx.bezierCurveTo(cpx1, cpy1, cpx2, cpy2, x2, y2);\n        }\n    };\n    BezierCurve.prototype.pointAt = function (t) {\n        return someVectorAt(this.shape, t, false);\n    };\n    BezierCurve.prototype.tangentAt = function (t) {\n        var p = someVectorAt(this.shape, t, true);\n        return vec2.normalize(p, p);\n    };\n    return BezierCurve;\n}(Path));\n;\nBezierCurve.prototype.type = 'bezier-curve';\nexport default BezierCurve;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar ArcShape = (function () {\n    function ArcShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.r = 0;\n        this.startAngle = 0;\n        this.endAngle = Math.PI * 2;\n        this.clockwise = true;\n    }\n    return ArcShape;\n}());\nvar Arc = (function (_super) {\n    __extends(Arc, _super);\n    function Arc(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Arc.prototype.getDefaultStyle = function () {\n        return {\n            stroke: '#000',\n            fill: null\n        };\n    };\n    Arc.prototype.getDefaultShape = function () {\n        return new ArcShape();\n    };\n    Arc.prototype.buildPath = function (ctx, shape) {\n        var x = shape.cx;\n        var y = shape.cy;\n        var r = Math.max(shape.r, 0);\n        var startAngle = shape.startAngle;\n        var endAngle = shape.endAngle;\n        var clockwise = shape.clockwise;\n        var unitX = Math.cos(startAngle);\n        var unitY = Math.sin(startAngle);\n        ctx.moveTo(unitX * r + x, unitY * r + y);\n        ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\n    };\n    return Arc;\n}(Path));\nArc.prototype.type = 'arc';\nexport default Arc;\n","import { __extends } from \"tslib\";\nimport Path from './Path';\nvar CompoundPath = (function (_super) {\n    __extends(CompoundPath, _super);\n    function CompoundPath() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.type = 'compound';\n        return _this;\n    }\n    CompoundPath.prototype._updatePathDirty = function () {\n        var paths = this.shape.paths;\n        var dirtyPath = this.shapeChanged();\n        for (var i = 0; i < paths.length; i++) {\n            dirtyPath = dirtyPath || paths[i].shapeChanged();\n        }\n        if (dirtyPath) {\n            this.dirtyShape();\n        }\n    };\n    CompoundPath.prototype.beforeBrush = function () {\n        this._updatePathDirty();\n        var paths = this.shape.paths || [];\n        var scale = this.getGlobalScale();\n        for (var i = 0; i < paths.length; i++) {\n            if (!paths[i].path) {\n                paths[i].createPathProxy();\n            }\n            paths[i].path.setScale(scale[0], scale[1], paths[i].segmentIgnoreThreshold);\n        }\n    };\n    CompoundPath.prototype.buildPath = function (ctx, shape) {\n        var paths = shape.paths || [];\n        for (var i = 0; i < paths.length; i++) {\n            paths[i].buildPath(ctx, paths[i].shape, true);\n        }\n    };\n    CompoundPath.prototype.afterBrush = function () {\n        var paths = this.shape.paths || [];\n        for (var i = 0; i < paths.length; i++) {\n            paths[i].pathUpdated();\n        }\n    };\n    CompoundPath.prototype.getBoundingRect = function () {\n        this._updatePathDirty.call(this);\n        return Path.prototype.getBoundingRect.call(this);\n    };\n    return CompoundPath;\n}(Path));\nexport default CompoundPath;\n","var Gradient = (function () {\n    function Gradient(colorStops) {\n        this.colorStops = colorStops || [];\n    }\n    Gradient.prototype.addColorStop = function (offset, color) {\n        this.colorStops.push({\n            offset: offset,\n            color: color\n        });\n    };\n    return Gradient;\n}());\nexport default Gradient;\n","import { __extends } from \"tslib\";\nimport Gradient from './Gradient';\nvar LinearGradient = (function (_super) {\n    __extends(LinearGradient, _super);\n    function LinearGradient(x, y, x2, y2, colorStops, globalCoord) {\n        var _this = _super.call(this, colorStops) || this;\n        _this.x = x == null ? 0 : x;\n        _this.y = y == null ? 0 : y;\n        _this.x2 = x2 == null ? 1 : x2;\n        _this.y2 = y2 == null ? 0 : y2;\n        _this.type = 'linear';\n        _this.global = globalCoord || false;\n        return _this;\n    }\n    return LinearGradient;\n}(Gradient));\nexport default LinearGradient;\n;\n","import { __extends } from \"tslib\";\nimport Gradient from './Gradient';\nvar RadialGradient = (function (_super) {\n    __extends(RadialGradient, _super);\n    function RadialGradient(x, y, r, colorStops, globalCoord) {\n        var _this = _super.call(this, colorStops) || this;\n        _this.x = x == null ? 0.5 : x;\n        _this.y = y == null ? 0.5 : y;\n        _this.r = r == null ? 0.5 : r;\n        _this.type = 'radial';\n        _this.global = globalCoord || false;\n        return _this;\n    }\n    return RadialGradient;\n}(Gradient));\nexport default RadialGradient;\n","import Point from './Point';\nvar extent = [0, 0];\nvar extent2 = [0, 0];\nvar minTv = new Point();\nvar maxTv = new Point();\nvar OrientedBoundingRect = (function () {\n    function OrientedBoundingRect(rect, transform) {\n        this._corners = [];\n        this._axes = [];\n        this._origin = [0, 0];\n        for (var i = 0; i < 4; i++) {\n            this._corners[i] = new Point();\n        }\n        for (var i = 0; i < 2; i++) {\n            this._axes[i] = new Point();\n        }\n        if (rect) {\n            this.fromBoundingRect(rect, transform);\n        }\n    }\n    OrientedBoundingRect.prototype.fromBoundingRect = function (rect, transform) {\n        var corners = this._corners;\n        var axes = this._axes;\n        var x = rect.x;\n        var y = rect.y;\n        var x2 = x + rect.width;\n        var y2 = y + rect.height;\n        corners[0].set(x, y);\n        corners[1].set(x2, y);\n        corners[2].set(x2, y2);\n        corners[3].set(x, y2);\n        if (transform) {\n            for (var i = 0; i < 4; i++) {\n                corners[i].transform(transform);\n            }\n        }\n        Point.sub(axes[0], corners[1], corners[0]);\n        Point.sub(axes[1], corners[3], corners[0]);\n        axes[0].normalize();\n        axes[1].normalize();\n        for (var i = 0; i < 2; i++) {\n            this._origin[i] = axes[i].dot(corners[0]);\n        }\n    };\n    OrientedBoundingRect.prototype.intersect = function (other, mtv) {\n        var overlapped = true;\n        var noMtv = !mtv;\n        minTv.set(Infinity, Infinity);\n        maxTv.set(0, 0);\n        if (!this._intersectCheckOneSide(this, other, minTv, maxTv, noMtv, 1)) {\n            overlapped = false;\n            if (noMtv) {\n                return overlapped;\n            }\n        }\n        if (!this._intersectCheckOneSide(other, this, minTv, maxTv, noMtv, -1)) {\n            overlapped = false;\n            if (noMtv) {\n                return overlapped;\n            }\n        }\n        if (!noMtv) {\n            Point.copy(mtv, overlapped ? minTv : maxTv);\n        }\n        return overlapped;\n    };\n    OrientedBoundingRect.prototype._intersectCheckOneSide = function (self, other, minTv, maxTv, noMtv, inverse) {\n        var overlapped = true;\n        for (var i = 0; i < 2; i++) {\n            var axis = this._axes[i];\n            this._getProjMinMaxOnAxis(i, self._corners, extent);\n            this._getProjMinMaxOnAxis(i, other._corners, extent2);\n            if (extent[1] < extent2[0] || extent[0] > extent2[1]) {\n                overlapped = false;\n                if (noMtv) {\n                    return overlapped;\n                }\n                var dist0 = Math.abs(extent2[0] - extent[1]);\n                var dist1 = Math.abs(extent[0] - extent2[1]);\n                if (Math.min(dist0, dist1) > maxTv.len()) {\n                    if (dist0 < dist1) {\n                        Point.scale(maxTv, axis, -dist0 * inverse);\n                    }\n                    else {\n                        Point.scale(maxTv, axis, dist1 * inverse);\n                    }\n                }\n            }\n            else if (minTv) {\n                var dist0 = Math.abs(extent2[0] - extent[1]);\n                var dist1 = Math.abs(extent[0] - extent2[1]);\n                if (Math.min(dist0, dist1) < minTv.len()) {\n                    if (dist0 < dist1) {\n                        Point.scale(minTv, axis, dist0 * inverse);\n                    }\n                    else {\n                        Point.scale(minTv, axis, -dist1 * inverse);\n                    }\n                }\n            }\n        }\n        return overlapped;\n    };\n    OrientedBoundingRect.prototype._getProjMinMaxOnAxis = function (dim, corners, out) {\n        var axis = this._axes[dim];\n        var origin = this._origin;\n        var proj = corners[0].dot(axis) + origin[dim];\n        var min = proj;\n        var max = proj;\n        for (var i = 1; i < corners.length; i++) {\n            var proj_1 = corners[i].dot(axis) + origin[dim];\n            min = Math.min(proj_1, min);\n            max = Math.max(proj_1, max);\n        }\n        out[0] = min;\n        out[1] = max;\n    };\n    return OrientedBoundingRect;\n}());\nexport default OrientedBoundingRect;\n","import { __extends } from \"tslib\";\nimport Displayble from './Displayable';\nimport BoundingRect from '../core/BoundingRect';\nvar m = [];\nvar IncrementalDisplayable = (function (_super) {\n    __extends(IncrementalDisplayable, _super);\n    function IncrementalDisplayable() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.notClear = true;\n        _this.incremental = true;\n        _this._displayables = [];\n        _this._temporaryDisplayables = [];\n        _this._cursor = 0;\n        return _this;\n    }\n    IncrementalDisplayable.prototype.traverse = function (cb, context) {\n        cb.call(context, this);\n    };\n    IncrementalDisplayable.prototype.useStyle = function () {\n        this.style = {};\n    };\n    IncrementalDisplayable.prototype.getCursor = function () {\n        return this._cursor;\n    };\n    IncrementalDisplayable.prototype.innerAfterBrush = function () {\n        this._cursor = this._displayables.length;\n    };\n    IncrementalDisplayable.prototype.clearDisplaybles = function () {\n        this._displayables = [];\n        this._temporaryDisplayables = [];\n        this._cursor = 0;\n        this.markRedraw();\n        this.notClear = false;\n    };\n    IncrementalDisplayable.prototype.clearTemporalDisplayables = function () {\n        this._temporaryDisplayables = [];\n    };\n    IncrementalDisplayable.prototype.addDisplayable = function (displayable, notPersistent) {\n        if (notPersistent) {\n            this._temporaryDisplayables.push(displayable);\n        }\n        else {\n            this._displayables.push(displayable);\n        }\n        this.markRedraw();\n    };\n    IncrementalDisplayable.prototype.addDisplayables = function (displayables, notPersistent) {\n        notPersistent = notPersistent || false;\n        for (var i = 0; i < displayables.length; i++) {\n            this.addDisplayable(displayables[i], notPersistent);\n        }\n    };\n    IncrementalDisplayable.prototype.getDisplayables = function () {\n        return this._displayables;\n    };\n    IncrementalDisplayable.prototype.getTemporalDisplayables = function () {\n        return this._temporaryDisplayables;\n    };\n    IncrementalDisplayable.prototype.eachPendingDisplayable = function (cb) {\n        for (var i = this._cursor; i < this._displayables.length; i++) {\n            cb && cb(this._displayables[i]);\n        }\n        for (var i = 0; i < this._temporaryDisplayables.length; i++) {\n            cb && cb(this._temporaryDisplayables[i]);\n        }\n    };\n    IncrementalDisplayable.prototype.update = function () {\n        this.updateTransform();\n        for (var i = this._cursor; i < this._displayables.length; i++) {\n            var displayable = this._displayables[i];\n            displayable.parent = this;\n            displayable.update();\n            displayable.parent = null;\n        }\n        for (var i = 0; i < this._temporaryDisplayables.length; i++) {\n            var displayable = this._temporaryDisplayables[i];\n            displayable.parent = this;\n            displayable.update();\n            displayable.parent = null;\n        }\n    };\n    IncrementalDisplayable.prototype.getBoundingRect = function () {\n        if (!this._rect) {\n            var rect = new BoundingRect(Infinity, Infinity, -Infinity, -Infinity);\n            for (var i = 0; i < this._displayables.length; i++) {\n                var displayable = this._displayables[i];\n                var childRect = displayable.getBoundingRect().clone();\n                if (displayable.needLocalTransform()) {\n                    childRect.applyTransform(displayable.getLocalTransform(m));\n                }\n                rect.union(childRect);\n            }\n            this._rect = rect;\n        }\n        return this._rect;\n    };\n    IncrementalDisplayable.prototype.contain = function (x, y) {\n        var localPos = this.transformCoordToLocal(x, y);\n        var rect = this.getBoundingRect();\n        if (rect.contain(localPos[0], localPos[1])) {\n            for (var i = 0; i < this._displayables.length; i++) {\n                var displayable = this._displayables[i];\n                if (displayable.contain(x, y)) {\n                    return true;\n                }\n            }\n        }\n        return false;\n    };\n    return IncrementalDisplayable;\n}(Displayble));\nexport default IncrementalDisplayable;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as pathTool from 'zrender/lib/tool/path';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport * as vector from 'zrender/lib/core/vector';\nimport Path from 'zrender/lib/graphic/Path';\nimport Transformable from 'zrender/lib/core/Transformable';\nimport ZRImage from 'zrender/lib/graphic/Image';\nimport Group from 'zrender/lib/graphic/Group';\nimport ZRText from 'zrender/lib/graphic/Text';\nimport Circle from 'zrender/lib/graphic/shape/Circle';\nimport Ellipse from 'zrender/lib/graphic/shape/Ellipse';\nimport Sector from 'zrender/lib/graphic/shape/Sector';\nimport Ring from 'zrender/lib/graphic/shape/Ring';\nimport Polygon from 'zrender/lib/graphic/shape/Polygon';\nimport Polyline from 'zrender/lib/graphic/shape/Polyline';\nimport Rect from 'zrender/lib/graphic/shape/Rect';\nimport Line from 'zrender/lib/graphic/shape/Line';\nimport BezierCurve from 'zrender/lib/graphic/shape/BezierCurve';\nimport Arc from 'zrender/lib/graphic/shape/Arc';\nimport CompoundPath from 'zrender/lib/graphic/CompoundPath';\nimport LinearGradient from 'zrender/lib/graphic/LinearGradient';\nimport RadialGradient from 'zrender/lib/graphic/RadialGradient';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport OrientedBoundingRect from 'zrender/lib/core/OrientedBoundingRect';\nimport Point from 'zrender/lib/core/Point';\nimport IncrementalDisplayable from 'zrender/lib/graphic/IncrementalDisplayable';\nimport * as subPixelOptimizeUtil from 'zrender/lib/graphic/helper/subPixelOptimize';\nimport { extend, isArrayLike, map, defaults, isObject, retrieve2 } from 'zrender/lib/core/util';\nimport { getECData } from './innerStore';\nvar mathMax = Math.max;\nvar mathMin = Math.min;\nvar _customShapeMap = {};\nexport function extendShape(opts) {\n  return Path.extend(opts);\n}\nvar extendPathFromString = pathTool.extendFromString;\nexport function extendPath(pathData, opts) {\n  return extendPathFromString(pathData, opts);\n}\nexport function registerShape(name, ShapeClass) {\n  _customShapeMap[name] = ShapeClass;\n}\nexport function getShapeClass(name) {\n  if (_customShapeMap.hasOwnProperty(name)) {\n    return _customShapeMap[name];\n  }\n}\nexport function makePath(pathData, opts, rect, layout) {\n  var path = pathTool.createFromString(pathData, opts);\n\n  if (rect) {\n    if (layout === 'center') {\n      rect = centerGraphic(rect, path.getBoundingRect());\n    }\n\n    resizePath(path, rect);\n  }\n\n  return path;\n}\nexport function makeImage(imageUrl, rect, layout) {\n  var zrImg = new ZRImage({\n    style: {\n      image: imageUrl,\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height\n    },\n    onload: function (img) {\n      if (layout === 'center') {\n        var boundingRect = {\n          width: img.width,\n          height: img.height\n        };\n        zrImg.setStyle(centerGraphic(rect, boundingRect));\n      }\n    }\n  });\n  return zrImg;\n}\n\nfunction centerGraphic(rect, boundingRect) {\n  var aspect = boundingRect.width / boundingRect.height;\n  var width = rect.height * aspect;\n  var height;\n\n  if (width <= rect.width) {\n    height = rect.height;\n  } else {\n    width = rect.width;\n    height = width / aspect;\n  }\n\n  var cx = rect.x + rect.width / 2;\n  var cy = rect.y + rect.height / 2;\n  return {\n    x: cx - width / 2,\n    y: cy - height / 2,\n    width: width,\n    height: height\n  };\n}\n\nexport var mergePath = pathTool.mergePath;\nexport function resizePath(path, rect) {\n  if (!path.applyTransform) {\n    return;\n  }\n\n  var pathRect = path.getBoundingRect();\n  var m = pathRect.calculateTransform(rect);\n  path.applyTransform(m);\n}\nexport function subPixelOptimizeLine(param) {\n  subPixelOptimizeUtil.subPixelOptimizeLine(param.shape, param.shape, param.style);\n  return param;\n}\nexport function subPixelOptimizeRect(param) {\n  subPixelOptimizeUtil.subPixelOptimizeRect(param.shape, param.shape, param.style);\n  return param;\n}\nexport var subPixelOptimize = subPixelOptimizeUtil.subPixelOptimize;\n\nfunction animateOrSetProps(animationType, el, props, animatableModel, dataIndex, cb, during) {\n  var isFrom = false;\n  var removeOpt;\n\n  if (typeof dataIndex === 'function') {\n    during = cb;\n    cb = dataIndex;\n    dataIndex = null;\n  } else if (isObject(dataIndex)) {\n    cb = dataIndex.cb;\n    during = dataIndex.during;\n    isFrom = dataIndex.isFrom;\n    removeOpt = dataIndex.removeOpt;\n    dataIndex = dataIndex.dataIndex;\n  }\n\n  var isUpdate = animationType === 'update';\n  var isRemove = animationType === 'remove';\n  var animationPayload;\n\n  if (animatableModel && animatableModel.ecModel) {\n    var updatePayload = animatableModel.ecModel.getUpdatePayload();\n    animationPayload = updatePayload && updatePayload.animation;\n  }\n\n  var animationEnabled = animatableModel && animatableModel.isAnimationEnabled();\n\n  if (!isRemove) {\n    el.stopAnimation('remove');\n  }\n\n  if (animationEnabled) {\n    var duration = void 0;\n    var animationEasing = void 0;\n    var animationDelay = void 0;\n\n    if (animationPayload) {\n      duration = animationPayload.duration || 0;\n      animationEasing = animationPayload.easing || 'cubicOut';\n      animationDelay = animationPayload.delay || 0;\n    } else if (isRemove) {\n      removeOpt = removeOpt || {};\n      duration = retrieve2(removeOpt.duration, 200);\n      animationEasing = retrieve2(removeOpt.easing, 'cubicOut');\n      animationDelay = 0;\n    } else {\n      duration = animatableModel.getShallow(isUpdate ? 'animationDurationUpdate' : 'animationDuration');\n      animationEasing = animatableModel.getShallow(isUpdate ? 'animationEasingUpdate' : 'animationEasing');\n      animationDelay = animatableModel.getShallow(isUpdate ? 'animationDelayUpdate' : 'animationDelay');\n    }\n\n    if (typeof animationDelay === 'function') {\n      animationDelay = animationDelay(dataIndex, animatableModel.getAnimationDelayParams ? animatableModel.getAnimationDelayParams(el, dataIndex) : null);\n    }\n\n    if (typeof duration === 'function') {\n      duration = duration(dataIndex);\n    }\n\n    duration > 0 ? isFrom ? el.animateFrom(props, {\n      duration: duration,\n      delay: animationDelay || 0,\n      easing: animationEasing,\n      done: cb,\n      force: !!cb || !!during,\n      scope: animationType,\n      during: during\n    }) : el.animateTo(props, {\n      duration: duration,\n      delay: animationDelay || 0,\n      easing: animationEasing,\n      done: cb,\n      force: !!cb || !!during,\n      setToFinal: true,\n      scope: animationType,\n      during: during\n    }) : (el.stopAnimation(), !isFrom && el.attr(props), cb && cb());\n  } else {\n    el.stopAnimation();\n    !isFrom && el.attr(props);\n    during && during(1);\n    cb && cb();\n  }\n}\n\nfunction updateProps(el, props, animatableModel, dataIndex, cb, during) {\n  animateOrSetProps('update', el, props, animatableModel, dataIndex, cb, during);\n}\n\nexport { updateProps };\nexport function initProps(el, props, animatableModel, dataIndex, cb, during) {\n  animateOrSetProps('init', el, props, animatableModel, dataIndex, cb, during);\n}\nexport function removeElement(el, props, animatableModel, dataIndex, cb, during) {\n  if (isElementRemoved(el)) {\n    return;\n  }\n\n  animateOrSetProps('remove', el, props, animatableModel, dataIndex, cb, during);\n}\n\nfunction fadeOutDisplayable(el, animatableModel, dataIndex, done) {\n  el.removeTextContent();\n  el.removeTextGuideLine();\n  removeElement(el, {\n    style: {\n      opacity: 0\n    }\n  }, animatableModel, dataIndex, done);\n}\n\nexport function removeElementWithFadeOut(el, animatableModel, dataIndex) {\n  function doRemove() {\n    el.parent && el.parent.remove(el);\n  }\n\n  if (!el.isGroup) {\n    fadeOutDisplayable(el, animatableModel, dataIndex, doRemove);\n  } else {\n    el.traverse(function (disp) {\n      if (!disp.isGroup) {\n        fadeOutDisplayable(disp, animatableModel, dataIndex, doRemove);\n      }\n    });\n  }\n}\nexport function isElementRemoved(el) {\n  if (!el.__zr) {\n    return true;\n  }\n\n  for (var i = 0; i < el.animators.length; i++) {\n    var animator = el.animators[i];\n\n    if (animator.scope === 'remove') {\n      return true;\n    }\n  }\n\n  return false;\n}\nexport function getTransform(target, ancestor) {\n  var mat = matrix.identity([]);\n\n  while (target && target !== ancestor) {\n    matrix.mul(mat, target.getLocalTransform(), mat);\n    target = target.parent;\n  }\n\n  return mat;\n}\nexport function applyTransform(target, transform, invert) {\n  if (transform && !isArrayLike(transform)) {\n    transform = Transformable.getLocalTransform(transform);\n  }\n\n  if (invert) {\n    transform = matrix.invert([], transform);\n  }\n\n  return vector.applyTransform([], target, transform);\n}\nexport function transformDirection(direction, transform, invert) {\n  var hBase = transform[4] === 0 || transform[5] === 0 || transform[0] === 0 ? 1 : Math.abs(2 * transform[4] / transform[0]);\n  var vBase = transform[4] === 0 || transform[5] === 0 || transform[2] === 0 ? 1 : Math.abs(2 * transform[4] / transform[2]);\n  var vertex = [direction === 'left' ? -hBase : direction === 'right' ? hBase : 0, direction === 'top' ? -vBase : direction === 'bottom' ? vBase : 0];\n  vertex = applyTransform(vertex, transform, invert);\n  return Math.abs(vertex[0]) > Math.abs(vertex[1]) ? vertex[0] > 0 ? 'right' : 'left' : vertex[1] > 0 ? 'bottom' : 'top';\n}\n\nfunction isNotGroup(el) {\n  return !el.isGroup;\n}\n\nfunction isPath(el) {\n  return el.shape != null;\n}\n\nexport function groupTransition(g1, g2, animatableModel) {\n  if (!g1 || !g2) {\n    return;\n  }\n\n  function getElMap(g) {\n    var elMap = {};\n    g.traverse(function (el) {\n      if (isNotGroup(el) && el.anid) {\n        elMap[el.anid] = el;\n      }\n    });\n    return elMap;\n  }\n\n  function getAnimatableProps(el) {\n    var obj = {\n      x: el.x,\n      y: el.y,\n      rotation: el.rotation\n    };\n\n    if (isPath(el)) {\n      obj.shape = extend({}, el.shape);\n    }\n\n    return obj;\n  }\n\n  var elMap1 = getElMap(g1);\n  g2.traverse(function (el) {\n    if (isNotGroup(el) && el.anid) {\n      var oldEl = elMap1[el.anid];\n\n      if (oldEl) {\n        var newProp = getAnimatableProps(el);\n        el.attr(getAnimatableProps(oldEl));\n        updateProps(el, newProp, animatableModel, getECData(el).dataIndex);\n      }\n    }\n  });\n}\nexport function clipPointsByRect(points, rect) {\n  return map(points, function (point) {\n    var x = point[0];\n    x = mathMax(x, rect.x);\n    x = mathMin(x, rect.x + rect.width);\n    var y = point[1];\n    y = mathMax(y, rect.y);\n    y = mathMin(y, rect.y + rect.height);\n    return [x, y];\n  });\n}\nexport function clipRectByRect(targetRect, rect) {\n  var x = mathMax(targetRect.x, rect.x);\n  var x2 = mathMin(targetRect.x + targetRect.width, rect.x + rect.width);\n  var y = mathMax(targetRect.y, rect.y);\n  var y2 = mathMin(targetRect.y + targetRect.height, rect.y + rect.height);\n\n  if (x2 >= x && y2 >= y) {\n    return {\n      x: x,\n      y: y,\n      width: x2 - x,\n      height: y2 - y\n    };\n  }\n}\nexport function createIcon(iconStr, opt, rect) {\n  var innerOpts = extend({\n    rectHover: true\n  }, opt);\n  var style = innerOpts.style = {\n    strokeNoScale: true\n  };\n  rect = rect || {\n    x: -1,\n    y: -1,\n    width: 2,\n    height: 2\n  };\n\n  if (iconStr) {\n    return iconStr.indexOf('image://') === 0 ? (style.image = iconStr.slice(8), defaults(style, rect), new ZRImage(innerOpts)) : makePath(iconStr.replace('path://', ''), innerOpts, rect, 'center');\n  }\n}\nexport function linePolygonIntersect(a1x, a1y, a2x, a2y, points) {\n  for (var i = 0, p2 = points[points.length - 1]; i < points.length; i++) {\n    var p = points[i];\n\n    if (lineLineIntersect(a1x, a1y, a2x, a2y, p[0], p[1], p2[0], p2[1])) {\n      return true;\n    }\n\n    p2 = p;\n  }\n}\nexport function lineLineIntersect(a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y) {\n  var mx = a2x - a1x;\n  var my = a2y - a1y;\n  var nx = b2x - b1x;\n  var ny = b2y - b1y;\n  var nmCrossProduct = crossProduct2d(nx, ny, mx, my);\n\n  if (nearZero(nmCrossProduct)) {\n    return false;\n  }\n\n  var b1a1x = a1x - b1x;\n  var b1a1y = a1y - b1y;\n  var q = crossProduct2d(b1a1x, b1a1y, mx, my) / nmCrossProduct;\n\n  if (q < 0 || q > 1) {\n    return false;\n  }\n\n  var p = crossProduct2d(b1a1x, b1a1y, nx, ny) / nmCrossProduct;\n\n  if (p < 0 || p > 1) {\n    return false;\n  }\n\n  return true;\n}\n\nfunction crossProduct2d(x1, y1, x2, y2) {\n  return x1 * y2 - x2 * y1;\n}\n\nfunction nearZero(val) {\n  return val <= 1e-6 && val >= -1e-6;\n}\n\nregisterShape('circle', Circle);\nregisterShape('ellipse', Ellipse);\nregisterShape('sector', Sector);\nregisterShape('ring', Ring);\nregisterShape('polygon', Polygon);\nregisterShape('polyline', Polyline);\nregisterShape('rect', Rect);\nregisterShape('line', Line);\nregisterShape('bezierCurve', BezierCurve);\nregisterShape('arc', Arc);\nexport { Group, ZRImage as Image, ZRText as Text, Circle, Ellipse, Sector, Ring, Polygon, Polyline, Rect, Line, BezierCurve, Arc, IncrementalDisplayable, CompoundPath, LinearGradient, RadialGradient, BoundingRect, OrientedBoundingRect, Point, Path };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ZRText from 'zrender/lib/graphic/Text';\nimport { isFunction, retrieve2, extend, keys, trim } from 'zrender/lib/core/util';\nimport { SPECIAL_STATES, DISPLAY_STATES } from '../util/states';\nimport { deprecateReplaceLog } from '../util/log';\nimport { makeInner, interpolateRawValues } from '../util/model';\nimport { initProps, updateProps } from '../util/graphic';\nvar EMPTY_OBJ = {};\nexport function setLabelText(label, labelTexts) {\n  for (var i = 0; i < SPECIAL_STATES.length; i++) {\n    var stateName = SPECIAL_STATES[i];\n    var text = labelTexts[stateName];\n    var state = label.ensureState(stateName);\n    state.style = state.style || {};\n    state.style.text = text;\n  }\n\n  var oldStates = label.currentStates.slice();\n  label.clearStates(true);\n  label.setStyle({\n    text: labelTexts.normal\n  });\n  label.useStates(oldStates, true);\n}\n\nfunction getLabelText(opt, stateModels, interpolatedValue) {\n  var labelFetcher = opt.labelFetcher;\n  var labelDataIndex = opt.labelDataIndex;\n  var labelDimIndex = opt.labelDimIndex;\n  var normalModel = stateModels.normal;\n  var baseText;\n\n  if (labelFetcher) {\n    baseText = labelFetcher.getFormattedLabel(labelDataIndex, 'normal', null, labelDimIndex, normalModel && normalModel.get('formatter'), interpolatedValue != null ? {\n      interpolatedValue: interpolatedValue\n    } : null);\n  }\n\n  if (baseText == null) {\n    baseText = isFunction(opt.defaultText) ? opt.defaultText(labelDataIndex, opt, interpolatedValue) : opt.defaultText;\n  }\n\n  var statesText = {\n    normal: baseText\n  };\n\n  for (var i = 0; i < SPECIAL_STATES.length; i++) {\n    var stateName = SPECIAL_STATES[i];\n    var stateModel = stateModels[stateName];\n    statesText[stateName] = retrieve2(labelFetcher ? labelFetcher.getFormattedLabel(labelDataIndex, stateName, null, labelDimIndex, stateModel && stateModel.get('formatter')) : null, baseText);\n  }\n\n  return statesText;\n}\n\nfunction setLabelStyle(targetEl, labelStatesModels, opt, stateSpecified) {\n  opt = opt || EMPTY_OBJ;\n  var isSetOnText = targetEl instanceof ZRText;\n  var needsCreateText = false;\n\n  for (var i = 0; i < DISPLAY_STATES.length; i++) {\n    var stateModel = labelStatesModels[DISPLAY_STATES[i]];\n\n    if (stateModel && stateModel.getShallow('show')) {\n      needsCreateText = true;\n      break;\n    }\n  }\n\n  var textContent = isSetOnText ? targetEl : targetEl.getTextContent();\n\n  if (needsCreateText) {\n    if (!isSetOnText) {\n      if (!textContent) {\n        textContent = new ZRText();\n        targetEl.setTextContent(textContent);\n      }\n\n      if (targetEl.stateProxy) {\n        textContent.stateProxy = targetEl.stateProxy;\n      }\n    }\n\n    var labelStatesTexts = getLabelText(opt, labelStatesModels);\n    var normalModel = labelStatesModels.normal;\n    var showNormal = !!normalModel.getShallow('show');\n    var normalStyle = createTextStyle(normalModel, stateSpecified && stateSpecified.normal, opt, false, !isSetOnText);\n    normalStyle.text = labelStatesTexts.normal;\n\n    if (!isSetOnText) {\n      targetEl.setTextConfig(createTextConfig(normalModel, opt, false));\n    }\n\n    for (var i = 0; i < SPECIAL_STATES.length; i++) {\n      var stateName = SPECIAL_STATES[i];\n      var stateModel = labelStatesModels[stateName];\n\n      if (stateModel) {\n        var stateObj = textContent.ensureState(stateName);\n        var stateShow = !!retrieve2(stateModel.getShallow('show'), showNormal);\n\n        if (stateShow !== showNormal) {\n          stateObj.ignore = !stateShow;\n        }\n\n        stateObj.style = createTextStyle(stateModel, stateSpecified && stateSpecified[stateName], opt, true, !isSetOnText);\n        stateObj.style.text = labelStatesTexts[stateName];\n\n        if (!isSetOnText) {\n          var targetElEmphasisState = targetEl.ensureState(stateName);\n          targetElEmphasisState.textConfig = createTextConfig(stateModel, opt, true);\n        }\n      }\n    }\n\n    textContent.silent = !!normalModel.getShallow('silent');\n\n    if (textContent.style.x != null) {\n      normalStyle.x = textContent.style.x;\n    }\n\n    if (textContent.style.y != null) {\n      normalStyle.y = textContent.style.y;\n    }\n\n    textContent.ignore = !showNormal;\n    textContent.useStyle(normalStyle);\n    textContent.dirty();\n\n    if (opt.enableTextSetter) {\n      labelInner(textContent).setLabelText = function (interpolatedValue) {\n        var labelStatesTexts = getLabelText(opt, labelStatesModels, interpolatedValue);\n        setLabelText(textContent, labelStatesTexts);\n      };\n    }\n  } else if (textContent) {\n    textContent.ignore = true;\n  }\n\n  targetEl.dirty();\n}\n\nexport { setLabelStyle };\nexport function getLabelStatesModels(itemModel, labelName) {\n  labelName = labelName || 'label';\n  var statesModels = {\n    normal: itemModel.getModel(labelName)\n  };\n\n  for (var i = 0; i < SPECIAL_STATES.length; i++) {\n    var stateName = SPECIAL_STATES[i];\n    statesModels[stateName] = itemModel.getModel([stateName, labelName]);\n  }\n\n  return statesModels;\n}\nexport function createTextStyle(textStyleModel, specifiedTextStyle, opt, isNotNormal, isAttached) {\n  var textStyle = {};\n  setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached);\n  specifiedTextStyle && extend(textStyle, specifiedTextStyle);\n  return textStyle;\n}\nexport function createTextConfig(textStyleModel, opt, isNotNormal) {\n  opt = opt || {};\n  var textConfig = {};\n  var labelPosition;\n  var labelRotate = textStyleModel.getShallow('rotate');\n  var labelDistance = retrieve2(textStyleModel.getShallow('distance'), isNotNormal ? null : 5);\n  var labelOffset = textStyleModel.getShallow('offset');\n  labelPosition = textStyleModel.getShallow('position') || (isNotNormal ? null : 'inside');\n  labelPosition === 'outside' && (labelPosition = opt.defaultOutsidePosition || 'top');\n\n  if (labelPosition != null) {\n    textConfig.position = labelPosition;\n  }\n\n  if (labelOffset != null) {\n    textConfig.offset = labelOffset;\n  }\n\n  if (labelRotate != null) {\n    labelRotate *= Math.PI / 180;\n    textConfig.rotation = labelRotate;\n  }\n\n  if (labelDistance != null) {\n    textConfig.distance = labelDistance;\n  }\n\n  textConfig.outsideFill = textStyleModel.get('color') === 'inherit' ? opt.inheritColor || null : 'auto';\n  return textConfig;\n}\n\nfunction setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached) {\n  opt = opt || EMPTY_OBJ;\n  var ecModel = textStyleModel.ecModel;\n  var globalTextStyle = ecModel && ecModel.option.textStyle;\n  var richItemNames = getRichItemNames(textStyleModel);\n  var richResult;\n\n  if (richItemNames) {\n    richResult = {};\n\n    for (var name_1 in richItemNames) {\n      if (richItemNames.hasOwnProperty(name_1)) {\n        var richTextStyle = textStyleModel.getModel(['rich', name_1]);\n        setTokenTextStyle(richResult[name_1] = {}, richTextStyle, globalTextStyle, opt, isNotNormal, isAttached, false, true);\n      }\n    }\n  }\n\n  if (richResult) {\n    textStyle.rich = richResult;\n  }\n\n  var overflow = textStyleModel.get('overflow');\n\n  if (overflow) {\n    textStyle.overflow = overflow;\n  }\n\n  var margin = textStyleModel.get('minMargin');\n\n  if (margin != null) {\n    textStyle.margin = margin;\n  }\n\n  setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, true, false);\n}\n\nfunction getRichItemNames(textStyleModel) {\n  var richItemNameMap;\n\n  while (textStyleModel && textStyleModel !== textStyleModel.ecModel) {\n    var rich = (textStyleModel.option || EMPTY_OBJ).rich;\n\n    if (rich) {\n      richItemNameMap = richItemNameMap || {};\n      var richKeys = keys(rich);\n\n      for (var i = 0; i < richKeys.length; i++) {\n        var richKey = richKeys[i];\n        richItemNameMap[richKey] = 1;\n      }\n    }\n\n    textStyleModel = textStyleModel.parentModel;\n  }\n\n  return richItemNameMap;\n}\n\nvar TEXT_PROPS_WITH_GLOBAL = ['fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY'];\nvar TEXT_PROPS_SELF = ['align', 'lineHeight', 'width', 'height', 'tag', 'verticalAlign'];\nvar TEXT_PROPS_BOX = ['padding', 'borderWidth', 'borderRadius', 'borderDashOffset', 'backgroundColor', 'borderColor', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'];\n\nfunction setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, isBlock, inRich) {\n  globalTextStyle = !isNotNormal && globalTextStyle || EMPTY_OBJ;\n  var inheritColor = opt && opt.inheritColor;\n  var fillColor = textStyleModel.getShallow('color');\n  var strokeColor = textStyleModel.getShallow('textBorderColor');\n  var opacity = retrieve2(textStyleModel.getShallow('opacity'), globalTextStyle.opacity);\n\n  if (fillColor === 'inherit' || fillColor === 'auto') {\n    if (process.env.NODE_ENV !== 'production') {\n      if (fillColor === 'auto') {\n        deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\n      }\n    }\n\n    if (inheritColor) {\n      fillColor = inheritColor;\n    } else {\n      fillColor = null;\n    }\n  }\n\n  if (strokeColor === 'inherit' || strokeColor === 'auto') {\n    if (process.env.NODE_ENV !== 'production') {\n      if (strokeColor === 'auto') {\n        deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\n      }\n    }\n\n    if (inheritColor) {\n      strokeColor = inheritColor;\n    } else {\n      strokeColor = null;\n    }\n  }\n\n  if (!isAttached) {\n    fillColor = fillColor || globalTextStyle.color;\n    strokeColor = strokeColor || globalTextStyle.textBorderColor;\n  }\n\n  if (fillColor != null) {\n    textStyle.fill = fillColor;\n  }\n\n  if (strokeColor != null) {\n    textStyle.stroke = strokeColor;\n  }\n\n  var textBorderWidth = retrieve2(textStyleModel.getShallow('textBorderWidth'), globalTextStyle.textBorderWidth);\n\n  if (textBorderWidth != null) {\n    textStyle.lineWidth = textBorderWidth;\n  }\n\n  var textBorderType = retrieve2(textStyleModel.getShallow('textBorderType'), globalTextStyle.textBorderType);\n\n  if (textBorderType != null) {\n    textStyle.lineDash = textBorderType;\n  }\n\n  var textBorderDashOffset = retrieve2(textStyleModel.getShallow('textBorderDashOffset'), globalTextStyle.textBorderDashOffset);\n\n  if (textBorderDashOffset != null) {\n    textStyle.lineDashOffset = textBorderDashOffset;\n  }\n\n  if (!isNotNormal && opacity == null && !inRich) {\n    opacity = opt && opt.defaultOpacity;\n  }\n\n  if (opacity != null) {\n    textStyle.opacity = opacity;\n  }\n\n  if (!isNotNormal && !isAttached) {\n    if (textStyle.fill == null && opt.inheritColor) {\n      textStyle.fill = opt.inheritColor;\n    }\n  }\n\n  for (var i = 0; i < TEXT_PROPS_WITH_GLOBAL.length; i++) {\n    var key = TEXT_PROPS_WITH_GLOBAL[i];\n    var val = retrieve2(textStyleModel.getShallow(key), globalTextStyle[key]);\n\n    if (val != null) {\n      textStyle[key] = val;\n    }\n  }\n\n  for (var i = 0; i < TEXT_PROPS_SELF.length; i++) {\n    var key = TEXT_PROPS_SELF[i];\n    var val = textStyleModel.getShallow(key);\n\n    if (val != null) {\n      textStyle[key] = val;\n    }\n  }\n\n  if (textStyle.verticalAlign == null) {\n    var baseline = textStyleModel.getShallow('baseline');\n\n    if (baseline != null) {\n      textStyle.verticalAlign = baseline;\n    }\n  }\n\n  if (!isBlock || !opt.disableBox) {\n    for (var i = 0; i < TEXT_PROPS_BOX.length; i++) {\n      var key = TEXT_PROPS_BOX[i];\n      var val = textStyleModel.getShallow(key);\n\n      if (val != null) {\n        textStyle[key] = val;\n      }\n    }\n\n    var borderType = textStyleModel.getShallow('borderType');\n\n    if (borderType != null) {\n      textStyle.borderDash = borderType;\n    }\n\n    if ((textStyle.backgroundColor === 'auto' || textStyle.backgroundColor === 'inherit') && inheritColor) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (textStyle.backgroundColor === 'auto') {\n          deprecateReplaceLog('backgroundColor: \\'auto\\'', 'backgroundColor: \\'inherit\\'');\n        }\n      }\n\n      textStyle.backgroundColor = inheritColor;\n    }\n\n    if ((textStyle.borderColor === 'auto' || textStyle.borderColor === 'inherit') && inheritColor) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (textStyle.borderColor === 'auto') {\n          deprecateReplaceLog('borderColor: \\'auto\\'', 'borderColor: \\'inherit\\'');\n        }\n      }\n\n      textStyle.borderColor = inheritColor;\n    }\n  }\n}\n\nexport function getFont(opt, ecModel) {\n  var gTextStyleModel = ecModel && ecModel.getModel('textStyle');\n  return trim([opt.fontStyle || gTextStyleModel && gTextStyleModel.getShallow('fontStyle') || '', opt.fontWeight || gTextStyleModel && gTextStyleModel.getShallow('fontWeight') || '', (opt.fontSize || gTextStyleModel && gTextStyleModel.getShallow('fontSize') || 12) + 'px', opt.fontFamily || gTextStyleModel && gTextStyleModel.getShallow('fontFamily') || 'sans-serif'].join(' '));\n}\nexport var labelInner = makeInner();\nexport function setLabelValueAnimation(label, labelStatesModels, value, getDefaultText) {\n  if (!label) {\n    return;\n  }\n\n  var obj = labelInner(label);\n  obj.prevValue = obj.value;\n  obj.value = value;\n  var normalLabelModel = labelStatesModels.normal;\n  obj.valueAnimation = normalLabelModel.get('valueAnimation');\n\n  if (obj.valueAnimation) {\n    obj.precision = normalLabelModel.get('precision');\n    obj.defaultInterpolatedText = getDefaultText;\n    obj.statesModels = labelStatesModels;\n  }\n}\nexport function animateLabelValue(textEl, dataIndex, data, animatableModel, labelFetcher) {\n  var labelInnerStore = labelInner(textEl);\n\n  if (!labelInnerStore.valueAnimation) {\n    return;\n  }\n\n  var defaultInterpolatedText = labelInnerStore.defaultInterpolatedText;\n  var currValue = retrieve2(labelInnerStore.interpolatedValue, labelInnerStore.prevValue);\n  var targetValue = labelInnerStore.value;\n\n  function during(percent) {\n    var interpolated = interpolateRawValues(data, labelInnerStore.precision, currValue, targetValue, percent);\n    labelInnerStore.interpolatedValue = percent === 1 ? null : interpolated;\n    var labelText = getLabelText({\n      labelDataIndex: dataIndex,\n      labelFetcher: labelFetcher,\n      defaultText: defaultInterpolatedText ? defaultInterpolatedText(interpolated) : interpolated + ''\n    }, labelInnerStore.statesModels, interpolated);\n    setLabelText(textEl, labelText);\n  }\n\n  (currValue == null ? initProps : updateProps)(textEl, {}, animatableModel, dataIndex, null, during);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { getFont } from '../../label/labelStyle';\nimport ZRText from 'zrender/lib/graphic/Text';\nvar PATH_COLOR = ['textStyle', 'color'];\nvar tmpRichText = new ZRText();\n\nvar TextStyleMixin = function () {\n  function TextStyleMixin() {}\n\n  TextStyleMixin.prototype.getTextColor = function (isEmphasis) {\n    var ecModel = this.ecModel;\n    return this.getShallow('color') || (!isEmphasis && ecModel ? ecModel.get(PATH_COLOR) : null);\n  };\n\n  TextStyleMixin.prototype.getFont = function () {\n    return getFont({\n      fontStyle: this.getShallow('fontStyle'),\n      fontWeight: this.getShallow('fontWeight'),\n      fontSize: this.getShallow('fontSize'),\n      fontFamily: this.getShallow('fontFamily')\n    }, this.ecModel);\n  };\n\n  TextStyleMixin.prototype.getTextRect = function (text) {\n    tmpRichText.useStyle({\n      text: text,\n      fontStyle: this.getShallow('fontStyle'),\n      fontWeight: this.getShallow('fontWeight'),\n      fontSize: this.getShallow('fontSize'),\n      fontFamily: this.getShallow('fontFamily'),\n      verticalAlign: this.getShallow('verticalAlign') || this.getShallow('baseline'),\n      padding: this.getShallow('padding'),\n      lineHeight: this.getShallow('lineHeight'),\n      rich: this.getShallow('rich')\n    });\n    tmpRichText.update();\n    return tmpRichText.getBoundingRect();\n  };\n\n  return TextStyleMixin;\n}();\n\n;\nexport default TextStyleMixin;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport makeStyleMapper from './makeStyleMapper';\nexport var LINE_STYLE_KEY_MAP = [['lineWidth', 'width'], ['stroke', 'color'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor'], ['lineDash', 'type'], ['lineDashOffset', 'dashOffset'], ['lineCap', 'cap'], ['lineJoin', 'join'], ['miterLimit']];\nvar getLineStyle = makeStyleMapper(LINE_STYLE_KEY_MAP);\n\nvar LineStyleMixin = function () {\n  function LineStyleMixin() {}\n\n  LineStyleMixin.prototype.getLineStyle = function (excludes) {\n    return getLineStyle(this, excludes);\n  };\n\n  return LineStyleMixin;\n}();\n\n;\nexport { LineStyleMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport makeStyleMapper from './makeStyleMapper';\nexport var ITEM_STYLE_KEY_MAP = [['fill', 'color'], ['stroke', 'borderColor'], ['lineWidth', 'borderWidth'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor'], ['lineDash', 'borderType'], ['lineDashOffset', 'borderDashOffset'], ['lineCap', 'borderCap'], ['lineJoin', 'borderJoin'], ['miterLimit', 'borderMiterLimit']];\nvar getItemStyle = makeStyleMapper(ITEM_STYLE_KEY_MAP);\n\nvar ItemStyleMixin = function () {\n  function ItemStyleMixin() {}\n\n  ItemStyleMixin.prototype.getItemStyle = function (excludes, includes) {\n    return getItemStyle(this, excludes, includes);\n  };\n\n  return ItemStyleMixin;\n}();\n\nexport { ItemStyleMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport env from 'zrender/lib/core/env';\nimport { enableClassExtend, enableClassCheck } from '../util/clazz';\nimport { AreaStyleMixin } from './mixin/areaStyle';\nimport TextStyleMixin from './mixin/textStyle';\nimport { LineStyleMixin } from './mixin/lineStyle';\nimport { ItemStyleMixin } from './mixin/itemStyle';\nimport { mixin, clone, merge } from 'zrender/lib/core/util';\n\nvar Model = function () {\n  function Model(option, parentModel, ecModel) {\n    this.parentModel = parentModel;\n    this.ecModel = ecModel;\n    this.option = option;\n  }\n\n  Model.prototype.init = function (option, parentModel, ecModel) {\n    var rest = [];\n\n    for (var _i = 3; _i < arguments.length; _i++) {\n      rest[_i - 3] = arguments[_i];\n    }\n  };\n\n  Model.prototype.mergeOption = function (option, ecModel) {\n    merge(this.option, option, true);\n  };\n\n  Model.prototype.get = function (path, ignoreParent) {\n    if (path == null) {\n      return this.option;\n    }\n\n    return this._doGet(this.parsePath(path), !ignoreParent && this.parentModel);\n  };\n\n  Model.prototype.getShallow = function (key, ignoreParent) {\n    var option = this.option;\n    var val = option == null ? option : option[key];\n\n    if (val == null && !ignoreParent) {\n      var parentModel = this.parentModel;\n\n      if (parentModel) {\n        val = parentModel.getShallow(key);\n      }\n    }\n\n    return val;\n  };\n\n  Model.prototype.getModel = function (path, parentModel) {\n    var hasPath = path != null;\n    var pathFinal = hasPath ? this.parsePath(path) : null;\n    var obj = hasPath ? this._doGet(pathFinal) : this.option;\n    parentModel = parentModel || this.parentModel && this.parentModel.getModel(this.resolveParentPath(pathFinal));\n    return new Model(obj, parentModel, this.ecModel);\n  };\n\n  Model.prototype.isEmpty = function () {\n    return this.option == null;\n  };\n\n  Model.prototype.restoreData = function () {};\n\n  Model.prototype.clone = function () {\n    var Ctor = this.constructor;\n    return new Ctor(clone(this.option));\n  };\n\n  Model.prototype.parsePath = function (path) {\n    if (typeof path === 'string') {\n      return path.split('.');\n    }\n\n    return path;\n  };\n\n  Model.prototype.resolveParentPath = function (path) {\n    return path;\n  };\n\n  Model.prototype.isAnimationEnabled = function () {\n    if (!env.node && this.option) {\n      if (this.option.animation != null) {\n        return !!this.option.animation;\n      } else if (this.parentModel) {\n        return this.parentModel.isAnimationEnabled();\n      }\n    }\n  };\n\n  Model.prototype._doGet = function (pathArr, parentModel) {\n    var obj = this.option;\n\n    if (!pathArr) {\n      return obj;\n    }\n\n    for (var i = 0; i < pathArr.length; i++) {\n      if (!pathArr[i]) {\n        continue;\n      }\n\n      obj = obj && typeof obj === 'object' ? obj[pathArr[i]] : null;\n\n      if (obj == null) {\n        break;\n      }\n    }\n\n    if (obj == null && parentModel) {\n      obj = parentModel._doGet(this.resolveParentPath(pathArr), parentModel.parentModel);\n    }\n\n    return obj;\n  };\n\n  return Model;\n}();\n\n;\nenableClassExtend(Model);\nenableClassCheck(Model);\nmixin(Model, LineStyleMixin);\nmixin(Model, ItemStyleMixin);\nmixin(Model, AreaStyleMixin);\nmixin(Model, TextStyleMixin);\nexport default Model;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parseClassType } from './clazz';\nimport { makePrintable } from './log';\nvar base = Math.round(Math.random() * 10);\nexport function getUID(type) {\n  return [type || '', base++].join('_');\n}\nexport function enableSubTypeDefaulter(target) {\n  var subTypeDefaulters = {};\n\n  target.registerSubTypeDefaulter = function (componentType, defaulter) {\n    var componentTypeInfo = parseClassType(componentType);\n    subTypeDefaulters[componentTypeInfo.main] = defaulter;\n  };\n\n  target.determineSubType = function (componentType, option) {\n    var type = option.type;\n\n    if (!type) {\n      var componentTypeMain = parseClassType(componentType).main;\n\n      if (target.hasSubTypes(componentType) && subTypeDefaulters[componentTypeMain]) {\n        type = subTypeDefaulters[componentTypeMain](option);\n      }\n    }\n\n    return type;\n  };\n}\nexport function enableTopologicalTravel(entity, dependencyGetter) {\n  entity.topologicalTravel = function (targetNameList, fullNameList, callback, context) {\n    if (!targetNameList.length) {\n      return;\n    }\n\n    var result = makeDepndencyGraph(fullNameList);\n    var graph = result.graph;\n    var noEntryList = result.noEntryList;\n    var targetNameSet = {};\n    zrUtil.each(targetNameList, function (name) {\n      targetNameSet[name] = true;\n    });\n\n    while (noEntryList.length) {\n      var currComponentType = noEntryList.pop();\n      var currVertex = graph[currComponentType];\n      var isInTargetNameSet = !!targetNameSet[currComponentType];\n\n      if (isInTargetNameSet) {\n        callback.call(context, currComponentType, currVertex.originalDeps.slice());\n        delete targetNameSet[currComponentType];\n      }\n\n      zrUtil.each(currVertex.successor, isInTargetNameSet ? removeEdgeAndAdd : removeEdge);\n    }\n\n    zrUtil.each(targetNameSet, function () {\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = makePrintable('Circle dependency may exists: ', targetNameSet, targetNameList, fullNameList);\n      }\n\n      throw new Error(errMsg);\n    });\n\n    function removeEdge(succComponentType) {\n      graph[succComponentType].entryCount--;\n\n      if (graph[succComponentType].entryCount === 0) {\n        noEntryList.push(succComponentType);\n      }\n    }\n\n    function removeEdgeAndAdd(succComponentType) {\n      targetNameSet[succComponentType] = true;\n      removeEdge(succComponentType);\n    }\n  };\n\n  function makeDepndencyGraph(fullNameList) {\n    var graph = {};\n    var noEntryList = [];\n    zrUtil.each(fullNameList, function (name) {\n      var thisItem = createDependencyGraphItem(graph, name);\n      var originalDeps = thisItem.originalDeps = dependencyGetter(name);\n      var availableDeps = getAvailableDependencies(originalDeps, fullNameList);\n      thisItem.entryCount = availableDeps.length;\n\n      if (thisItem.entryCount === 0) {\n        noEntryList.push(name);\n      }\n\n      zrUtil.each(availableDeps, function (dependentName) {\n        if (zrUtil.indexOf(thisItem.predecessor, dependentName) < 0) {\n          thisItem.predecessor.push(dependentName);\n        }\n\n        var thatItem = createDependencyGraphItem(graph, dependentName);\n\n        if (zrUtil.indexOf(thatItem.successor, dependentName) < 0) {\n          thatItem.successor.push(name);\n        }\n      });\n    });\n    return {\n      graph: graph,\n      noEntryList: noEntryList\n    };\n  }\n\n  function createDependencyGraphItem(graph, name) {\n    if (!graph[name]) {\n      graph[name] = {\n        predecessor: [],\n        successor: []\n      };\n    }\n\n    return graph[name];\n  }\n\n  function getAvailableDependencies(originalDeps, fullNameList) {\n    var availableDeps = [];\n    zrUtil.each(originalDeps, function (dep) {\n      zrUtil.indexOf(fullNameList, dep) >= 0 && availableDeps.push(dep);\n    });\n    return availableDeps;\n  }\n}\nexport function inheritDefaultOption(superOption, subOption) {\n  return zrUtil.merge(zrUtil.merge({}, superOption, true), subOption, true);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default {\n  time: {\n    month: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n    monthAbbr: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n    dayOfWeek: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n    dayOfWeekAbbr: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\n  },\n  legend: {\n    selector: {\n      all: 'All',\n      inverse: 'Inv'\n    }\n  },\n  toolbox: {\n    brush: {\n      title: {\n        rect: 'Box Select',\n        polygon: 'Lasso Select',\n        lineX: 'Horizontally Select',\n        lineY: 'Vertically Select',\n        keep: 'Keep Selections',\n        clear: 'Clear Selections'\n      }\n    },\n    dataView: {\n      title: 'Data View',\n      lang: ['Data View', 'Close', 'Refresh']\n    },\n    dataZoom: {\n      title: {\n        zoom: 'Zoom',\n        back: 'Zoom Reset'\n      }\n    },\n    magicType: {\n      title: {\n        line: 'Switch to Line Chart',\n        bar: 'Switch to Bar Chart',\n        stack: 'Stack',\n        tiled: 'Tile'\n      }\n    },\n    restore: {\n      title: 'Restore'\n    },\n    saveAsImage: {\n      title: 'Save as Image',\n      lang: ['Right Click to Save Image']\n    }\n  },\n  series: {\n    typeNames: {\n      pie: 'Pie chart',\n      bar: 'Bar chart',\n      line: 'Line chart',\n      scatter: 'Scatter plot',\n      effectScatter: 'Ripple scatter plot',\n      radar: 'Radar chart',\n      tree: 'Tree',\n      treemap: 'Treemap',\n      boxplot: 'Boxplot',\n      candlestick: 'Candlestick',\n      k: 'K line chart',\n      heatmap: 'Heat map',\n      map: 'Map',\n      parallel: 'Parallel coordinate map',\n      lines: 'Line graph',\n      graph: 'Relationship graph',\n      sankey: 'Sankey diagram',\n      funnel: 'Funnel chart',\n      gauge: 'Guage',\n      pictorialBar: 'Pictorial bar',\n      themeRiver: 'Theme River Map',\n      sunburst: 'Sunburst'\n    }\n  },\n  aria: {\n    general: {\n      withTitle: 'This is a chart about \"{title}\"',\n      withoutTitle: 'This is a chart'\n    },\n    series: {\n      single: {\n        prefix: '',\n        withName: ' with type {seriesType} named {seriesName}.',\n        withoutName: ' with type {seriesType}.'\n      },\n      multiple: {\n        prefix: '. It consists of {seriesCount} series count.',\n        withName: ' The {seriesId} series is a {seriesType} representing {seriesName}.',\n        withoutName: ' The {seriesId} series is a {seriesType}.',\n        separator: {\n          middle: '',\n          end: ''\n        }\n      }\n    },\n    data: {\n      allData: 'The data is as follows: ',\n      partialData: 'The first {displayCnt} items are: ',\n      withName: 'the data for {name} is {value}',\n      withoutName: '{value}',\n      separator: {\n        middle: ', ',\n        end: '. '\n      }\n    }\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default {\n  time: {\n    month: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],\n    monthAbbr: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\n    dayOfWeek: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],\n    dayOfWeekAbbr: ['日', '一', '二', '三', '四', '五', '六']\n  },\n  legend: {\n    selector: {\n      all: '全选',\n      inverse: '反选'\n    }\n  },\n  toolbox: {\n    brush: {\n      title: {\n        rect: '矩形选择',\n        polygon: '圈选',\n        lineX: '横向选择',\n        lineY: '纵向选择',\n        keep: '保持选择',\n        clear: '清除选择'\n      }\n    },\n    dataView: {\n      title: '数据视图',\n      lang: ['数据视图', '关闭', '刷新']\n    },\n    dataZoom: {\n      title: {\n        zoom: '区域缩放',\n        back: '区域缩放还原'\n      }\n    },\n    magicType: {\n      title: {\n        line: '切换为折线图',\n        bar: '切换为柱状图',\n        stack: '切换为堆叠',\n        tiled: '切换为平铺'\n      }\n    },\n    restore: {\n      title: '还原'\n    },\n    saveAsImage: {\n      title: '保存为图片',\n      lang: ['右键另存为图片']\n    }\n  },\n  series: {\n    typeNames: {\n      pie: '饼图',\n      bar: '柱状图',\n      line: '折线图',\n      scatter: '散点图',\n      effectScatter: '涟漪散点图',\n      radar: '雷达图',\n      tree: '树图',\n      treemap: '矩形树图',\n      boxplot: '箱型图',\n      candlestick: 'K线图',\n      k: 'K线图',\n      heatmap: '热力图',\n      map: '地图',\n      parallel: '平行坐标图',\n      lines: '线图',\n      graph: '关系图',\n      sankey: '桑基图',\n      funnel: '漏斗图',\n      gauge: '仪表盘图',\n      pictorialBar: '象形柱图',\n      themeRiver: '主题河流图',\n      sunburst: '旭日图'\n    }\n  },\n  aria: {\n    general: {\n      withTitle: '这是一个关于“{title}”的图表。',\n      withoutTitle: '这是一个图表,'\n    },\n    series: {\n      single: {\n        prefix: '',\n        withName: '图表类型是{seriesType},表示{seriesName}。',\n        withoutName: '图表类型是{seriesType}。'\n      },\n      multiple: {\n        prefix: '它由{seriesCount}个图表系列组成。',\n        withName: '第{seriesId}个系列是一个表示{seriesName}的{seriesType},',\n        withoutName: '第{seriesId}个系列是一个{seriesType},',\n        separator: {\n          middle: ';',\n          end: '。'\n        }\n      }\n    },\n    data: {\n      allData: '其数据是——',\n      partialData: '其中,前{displayCnt}项是——',\n      withName: '{name}的数据是{value}',\n      withoutName: '{value}',\n      separator: {\n        middle: ',',\n        end: ''\n      }\n    }\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Model from '../model/Model';\nimport env from 'zrender/lib/core/env';\nimport langEN from '../i18n/langEN';\nimport langZH from '../i18n/langZH';\nimport { isString, clone, merge } from 'zrender/lib/core/util';\nvar LOCALE_ZH = 'ZH';\nvar LOCALE_EN = 'EN';\nvar DEFAULT_LOCALE = LOCALE_EN;\nvar localeStorage = {};\nvar localeModels = {};\nexport var SYSTEM_LANG = !env.domSupported ? DEFAULT_LOCALE : function () {\n  var langStr = (document.documentElement.lang || navigator.language || navigator.browserLanguage).toUpperCase();\n  return langStr.indexOf(LOCALE_ZH) > -1 ? LOCALE_ZH : DEFAULT_LOCALE;\n}();\nexport function registerLocale(locale, localeObj) {\n  locale = locale.toUpperCase();\n  localeModels[locale] = new Model(localeObj);\n  localeStorage[locale] = localeObj;\n}\nexport function createLocaleObject(locale) {\n  if (isString(locale)) {\n    var localeObj = localeStorage[locale.toUpperCase()] || {};\n\n    if (locale === LOCALE_ZH || locale === LOCALE_EN) {\n      return clone(localeObj);\n    } else {\n      return merge(clone(localeObj), clone(localeStorage[DEFAULT_LOCALE]), false);\n    }\n  } else {\n    return merge(clone(locale), clone(localeStorage[DEFAULT_LOCALE]), false);\n  }\n}\nexport function getLocaleModel(lang) {\n  return localeModels[lang];\n}\nexport function getDefaultLocaleModel() {\n  return localeModels[DEFAULT_LOCALE];\n}\nregisterLocale(LOCALE_EN, langEN);\nregisterLocale(LOCALE_ZH, langZH);","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as numberUtil from './number';\nimport { getDefaultLocaleModel, getLocaleModel, SYSTEM_LANG } from '../core/locale';\nimport Model from '../model/Model';\nexport var ONE_SECOND = 1000;\nexport var ONE_MINUTE = ONE_SECOND * 60;\nexport var ONE_HOUR = ONE_MINUTE * 60;\nexport var ONE_DAY = ONE_HOUR * 24;\nexport var ONE_YEAR = ONE_DAY * 365;\nexport var defaultLeveledFormatter = {\n  year: '{yyyy}',\n  month: '{MMM}',\n  day: '{d}',\n  hour: '{HH}:{mm}',\n  minute: '{HH}:{mm}',\n  second: '{HH}:{mm}:{ss}',\n  millisecond: '{hh}:{mm}:{ss} {SSS}',\n  none: '{yyyy}-{MM}-{dd} {hh}:{mm}:{ss} {SSS}'\n};\nvar fullDayFormatter = '{yyyy}-{MM}-{dd}';\nexport var fullLeveledFormatter = {\n  year: '{yyyy}',\n  month: '{yyyy}-{MM}',\n  day: fullDayFormatter,\n  hour: fullDayFormatter + ' ' + defaultLeveledFormatter.hour,\n  minute: fullDayFormatter + ' ' + defaultLeveledFormatter.minute,\n  second: fullDayFormatter + ' ' + defaultLeveledFormatter.second,\n  millisecond: defaultLeveledFormatter.none\n};\nexport var primaryTimeUnits = ['year', 'month', 'day', 'hour', 'minute', 'second', 'millisecond'];\nexport var timeUnits = ['year', 'half-year', 'quarter', 'month', 'week', 'half-week', 'day', 'half-day', 'quarter-day', 'hour', 'minute', 'second', 'millisecond'];\nexport function pad(str, len) {\n  str += '';\n  return '0000'.substr(0, len - str.length) + str;\n}\nexport function getPrimaryTimeUnit(timeUnit) {\n  switch (timeUnit) {\n    case 'half-year':\n    case 'quarter':\n      return 'month';\n\n    case 'week':\n    case 'half-week':\n      return 'day';\n\n    case 'half-day':\n    case 'quarter-day':\n      return 'hour';\n\n    default:\n      return timeUnit;\n  }\n}\nexport function isPrimaryTimeUnit(timeUnit) {\n  return timeUnit === getPrimaryTimeUnit(timeUnit);\n}\nexport function getDefaultFormatPrecisionOfInterval(timeUnit) {\n  switch (timeUnit) {\n    case 'year':\n    case 'month':\n      return 'day';\n\n    case 'millisecond':\n      return 'millisecond';\n\n    default:\n      return 'second';\n  }\n}\nexport function format(time, template, isUTC, lang) {\n  var date = numberUtil.parseDate(time);\n  var y = date[fullYearGetterName(isUTC)]();\n  var M = date[monthGetterName(isUTC)]() + 1;\n  var q = Math.floor((M - 1) / 4) + 1;\n  var d = date[dateGetterName(isUTC)]();\n  var e = date['get' + (isUTC ? 'UTC' : '') + 'Day']();\n  var H = date[hoursGetterName(isUTC)]();\n  var h = (H - 1) % 12 + 1;\n  var m = date[minutesGetterName(isUTC)]();\n  var s = date[secondsGetterName(isUTC)]();\n  var S = date[millisecondsGetterName(isUTC)]();\n  var localeModel = lang instanceof Model ? lang : getLocaleModel(lang || SYSTEM_LANG) || getDefaultLocaleModel();\n  var timeModel = localeModel.getModel('time');\n  var month = timeModel.get('month');\n  var monthAbbr = timeModel.get('monthAbbr');\n  var dayOfWeek = timeModel.get('dayOfWeek');\n  var dayOfWeekAbbr = timeModel.get('dayOfWeekAbbr');\n  return (template || '').replace(/{yyyy}/g, y + '').replace(/{yy}/g, y % 100 + '').replace(/{Q}/g, q + '').replace(/{MMMM}/g, month[M - 1]).replace(/{MMM}/g, monthAbbr[M - 1]).replace(/{MM}/g, pad(M, 2)).replace(/{M}/g, M + '').replace(/{dd}/g, pad(d, 2)).replace(/{d}/g, d + '').replace(/{eeee}/g, dayOfWeek[e]).replace(/{ee}/g, dayOfWeekAbbr[e]).replace(/{e}/g, e + '').replace(/{HH}/g, pad(H, 2)).replace(/{H}/g, H + '').replace(/{hh}/g, pad(h + '', 2)).replace(/{h}/g, h + '').replace(/{mm}/g, pad(m, 2)).replace(/{m}/g, m + '').replace(/{ss}/g, pad(s, 2)).replace(/{s}/g, s + '').replace(/{SSS}/g, pad(S, 3)).replace(/{S}/g, S + '');\n}\nexport function leveledFormat(tick, idx, formatter, lang, isUTC) {\n  var template = null;\n\n  if (typeof formatter === 'string') {\n    template = formatter;\n  } else if (typeof formatter === 'function') {\n    template = formatter(tick.value, idx, {\n      level: tick.level\n    });\n  } else {\n    var defaults = zrUtil.extend({}, defaultLeveledFormatter);\n\n    if (tick.level > 0) {\n      for (var i = 0; i < primaryTimeUnits.length; ++i) {\n        defaults[primaryTimeUnits[i]] = \"{primary|\" + defaults[primaryTimeUnits[i]] + \"}\";\n      }\n    }\n\n    var mergedFormatter = formatter ? formatter.inherit === false ? formatter : zrUtil.defaults(formatter, defaults) : defaults;\n    var unit = getUnitFromValue(tick.value, isUTC);\n\n    if (mergedFormatter[unit]) {\n      template = mergedFormatter[unit];\n    } else if (mergedFormatter.inherit) {\n      var targetId = timeUnits.indexOf(unit);\n\n      for (var i = targetId - 1; i >= 0; --i) {\n        if (mergedFormatter[unit]) {\n          template = mergedFormatter[unit];\n          break;\n        }\n      }\n\n      template = template || defaults.none;\n    }\n\n    if (zrUtil.isArray(template)) {\n      var levelId = tick.level == null ? 0 : tick.level >= 0 ? tick.level : template.length + tick.level;\n      levelId = Math.min(levelId, template.length - 1);\n      template = template[levelId];\n    }\n  }\n\n  return format(new Date(tick.value), template, isUTC, lang);\n}\nexport function getUnitFromValue(value, isUTC) {\n  var date = numberUtil.parseDate(value);\n  var M = date[monthGetterName(isUTC)]() + 1;\n  var d = date[dateGetterName(isUTC)]();\n  var h = date[hoursGetterName(isUTC)]();\n  var m = date[minutesGetterName(isUTC)]();\n  var s = date[secondsGetterName(isUTC)]();\n  var S = date[millisecondsGetterName(isUTC)]();\n  var isSecond = S === 0;\n  var isMinute = isSecond && s === 0;\n  var isHour = isMinute && m === 0;\n  var isDay = isHour && h === 0;\n  var isMonth = isDay && d === 1;\n  var isYear = isMonth && M === 1;\n\n  if (isYear) {\n    return 'year';\n  } else if (isMonth) {\n    return 'month';\n  } else if (isDay) {\n    return 'day';\n  } else if (isHour) {\n    return 'hour';\n  } else if (isMinute) {\n    return 'minute';\n  } else if (isSecond) {\n    return 'second';\n  } else {\n    return 'millisecond';\n  }\n}\nexport function getUnitValue(value, unit, isUTC) {\n  var date = typeof value === 'number' ? numberUtil.parseDate(value) : value;\n  unit = unit || getUnitFromValue(value, isUTC);\n\n  switch (unit) {\n    case 'year':\n      return date[fullYearGetterName(isUTC)]();\n\n    case 'half-year':\n      return date[monthGetterName(isUTC)]() >= 6 ? 1 : 0;\n\n    case 'quarter':\n      return Math.floor((date[monthGetterName(isUTC)]() + 1) / 4);\n\n    case 'month':\n      return date[monthGetterName(isUTC)]();\n\n    case 'day':\n      return date[dateGetterName(isUTC)]();\n\n    case 'half-day':\n      return date[hoursGetterName(isUTC)]() / 24;\n\n    case 'hour':\n      return date[hoursGetterName(isUTC)]();\n\n    case 'minute':\n      return date[minutesGetterName(isUTC)]();\n\n    case 'second':\n      return date[secondsGetterName(isUTC)]();\n\n    case 'millisecond':\n      return date[millisecondsGetterName(isUTC)]();\n  }\n}\nexport function fullYearGetterName(isUTC) {\n  return isUTC ? 'getUTCFullYear' : 'getFullYear';\n}\nexport function monthGetterName(isUTC) {\n  return isUTC ? 'getUTCMonth' : 'getMonth';\n}\nexport function dateGetterName(isUTC) {\n  return isUTC ? 'getUTCDate' : 'getDate';\n}\nexport function hoursGetterName(isUTC) {\n  return isUTC ? 'getUTCHours' : 'getHours';\n}\nexport function minutesGetterName(isUTC) {\n  return isUTC ? 'getUTCMinutes' : 'getMinutes';\n}\nexport function secondsGetterName(isUTC) {\n  return isUTC ? 'getUTCSeconds' : 'getSeconds';\n}\nexport function millisecondsGetterName(isUTC) {\n  return isUTC ? 'getUTCSeconds' : 'getSeconds';\n}\nexport function fullYearSetterName(isUTC) {\n  return isUTC ? 'setUTCFullYear' : 'setFullYear';\n}\nexport function monthSetterName(isUTC) {\n  return isUTC ? 'setUTCMonth' : 'setMonth';\n}\nexport function dateSetterName(isUTC) {\n  return isUTC ? 'setUTCDate' : 'setDate';\n}\nexport function hoursSetterName(isUTC) {\n  return isUTC ? 'setUTCHours' : 'setHours';\n}\nexport function minutesSetterName(isUTC) {\n  return isUTC ? 'setUTCMinutes' : 'setMinutes';\n}\nexport function secondsSetterName(isUTC) {\n  return isUTC ? 'setUTCSeconds' : 'setSeconds';\n}\nexport function millisecondsSetterName(isUTC) {\n  return isUTC ? 'setUTCSeconds' : 'setSeconds';\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { Text } from '../util/graphic';\nimport { deprecateLog } from '../util/log';\nexport function getTextRect(text, font, align, verticalAlign, padding, rich, truncate, lineHeight) {\n  deprecateLog('getTextRect is deprecated.');\n  var textEl = new Text({\n    style: {\n      text: text,\n      font: font,\n      align: align,\n      verticalAlign: verticalAlign,\n      padding: padding,\n      rich: rich,\n      overflow: truncate ? 'truncate' : null,\n      lineHeight: lineHeight\n    }\n  });\n  return textEl.getBoundingRect();\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parseDate, isNumeric, numericToNumber } from './number';\nimport { format as timeFormat, pad } from './time';\nimport { deprecateReplaceLog } from './log';\nexport function addCommas(x) {\n  if (!isNumeric(x)) {\n    return zrUtil.isString(x) ? x : '-';\n  }\n\n  var parts = (x + '').split('.');\n  return parts[0].replace(/(\\d{1,3})(?=(?:\\d{3})+(?!\\d))/g, '$1,') + (parts.length > 1 ? '.' + parts[1] : '');\n}\nexport function toCamelCase(str, upperCaseFirst) {\n  str = (str || '').toLowerCase().replace(/-(.)/g, function (match, group1) {\n    return group1.toUpperCase();\n  });\n\n  if (upperCaseFirst && str) {\n    str = str.charAt(0).toUpperCase() + str.slice(1);\n  }\n\n  return str;\n}\nexport var normalizeCssArray = zrUtil.normalizeCssArray;\nvar replaceReg = /([&<>\"'])/g;\nvar replaceMap = {\n  '&': '&amp;',\n  '<': '&lt;',\n  '>': '&gt;',\n  '\"': '&quot;',\n  '\\'': '&#39;'\n};\nexport function encodeHTML(source) {\n  return source == null ? '' : (source + '').replace(replaceReg, function (str, c) {\n    return replaceMap[c];\n  });\n}\nexport function makeValueReadable(value, valueType, useUTC) {\n  var USER_READABLE_DEFUALT_TIME_PATTERN = 'yyyy-MM-dd hh:mm:ss';\n\n  function stringToUserReadable(str) {\n    return str && zrUtil.trim(str) ? str : '-';\n  }\n\n  function isNumberUserReadable(num) {\n    return !!(num != null && !isNaN(num) && isFinite(num));\n  }\n\n  var isTypeTime = valueType === 'time';\n  var isValueDate = value instanceof Date;\n\n  if (isTypeTime || isValueDate) {\n    var date = isTypeTime ? parseDate(value) : value;\n\n    if (!isNaN(+date)) {\n      return timeFormat(date, USER_READABLE_DEFUALT_TIME_PATTERN, useUTC);\n    } else if (isValueDate) {\n      return '-';\n    }\n  }\n\n  if (valueType === 'ordinal') {\n    return zrUtil.isStringSafe(value) ? stringToUserReadable(value) : zrUtil.isNumber(value) ? isNumberUserReadable(value) ? value + '' : '-' : '-';\n  }\n\n  var numericResult = numericToNumber(value);\n  return isNumberUserReadable(numericResult) ? addCommas(numericResult) : zrUtil.isStringSafe(value) ? stringToUserReadable(value) : '-';\n}\nvar TPL_VAR_ALIAS = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];\n\nvar wrapVar = function (varName, seriesIdx) {\n  return '{' + varName + (seriesIdx == null ? '' : seriesIdx) + '}';\n};\n\nexport function formatTpl(tpl, paramsList, encode) {\n  if (!zrUtil.isArray(paramsList)) {\n    paramsList = [paramsList];\n  }\n\n  var seriesLen = paramsList.length;\n\n  if (!seriesLen) {\n    return '';\n  }\n\n  var $vars = paramsList[0].$vars || [];\n\n  for (var i = 0; i < $vars.length; i++) {\n    var alias = TPL_VAR_ALIAS[i];\n    tpl = tpl.replace(wrapVar(alias), wrapVar(alias, 0));\n  }\n\n  for (var seriesIdx = 0; seriesIdx < seriesLen; seriesIdx++) {\n    for (var k = 0; k < $vars.length; k++) {\n      var val = paramsList[seriesIdx][$vars[k]];\n      tpl = tpl.replace(wrapVar(TPL_VAR_ALIAS[k], seriesIdx), encode ? encodeHTML(val) : val);\n    }\n  }\n\n  return tpl;\n}\nexport function formatTplSimple(tpl, param, encode) {\n  zrUtil.each(param, function (value, key) {\n    tpl = tpl.replace('{' + key + '}', encode ? encodeHTML(value) : value);\n  });\n  return tpl;\n}\nexport function getTooltipMarker(inOpt, extraCssText) {\n  var opt = zrUtil.isString(inOpt) ? {\n    color: inOpt,\n    extraCssText: extraCssText\n  } : inOpt || {};\n  var color = opt.color;\n  var type = opt.type;\n  extraCssText = opt.extraCssText;\n  var renderMode = opt.renderMode || 'html';\n\n  if (!color) {\n    return '';\n  }\n\n  if (renderMode === 'html') {\n    return type === 'subItem' ? '<span style=\"display:inline-block;vertical-align:middle;margin-right:8px;margin-left:3px;' + 'border-radius:4px;width:4px;height:4px;background-color:' + encodeHTML(color) + ';' + (extraCssText || '') + '\"></span>' : '<span style=\"display:inline-block;margin-right:4px;' + 'border-radius:10px;width:10px;height:10px;background-color:' + encodeHTML(color) + ';' + (extraCssText || '') + '\"></span>';\n  } else {\n    var markerId = opt.markerId || 'markerX';\n    return {\n      renderMode: renderMode,\n      content: '{' + markerId + '|}  ',\n      style: type === 'subItem' ? {\n        width: 4,\n        height: 4,\n        borderRadius: 2,\n        backgroundColor: color\n      } : {\n        width: 10,\n        height: 10,\n        borderRadius: 5,\n        backgroundColor: color\n      }\n    };\n  }\n}\nexport function formatTime(tpl, value, isUTC) {\n  if (process.env.NODE_ENV !== 'production') {\n    deprecateReplaceLog('echarts.format.formatTime', 'echarts.time.format');\n  }\n\n  if (tpl === 'week' || tpl === 'month' || tpl === 'quarter' || tpl === 'half-year' || tpl === 'year') {\n    tpl = 'MM-dd\\nyyyy';\n  }\n\n  var date = parseDate(value);\n  var utc = isUTC ? 'UTC' : '';\n  var y = date['get' + utc + 'FullYear']();\n  var M = date['get' + utc + 'Month']() + 1;\n  var d = date['get' + utc + 'Date']();\n  var h = date['get' + utc + 'Hours']();\n  var m = date['get' + utc + 'Minutes']();\n  var s = date['get' + utc + 'Seconds']();\n  var S = date['get' + utc + 'Milliseconds']();\n  tpl = tpl.replace('MM', pad(M, 2)).replace('M', M).replace('yyyy', y).replace('yy', y % 100 + '').replace('dd', pad(d, 2)).replace('d', d).replace('hh', pad(h, 2)).replace('h', h).replace('mm', pad(m, 2)).replace('m', m).replace('ss', pad(s, 2)).replace('s', s).replace('SSS', pad(S, 3));\n  return tpl;\n}\nexport function capitalFirst(str) {\n  return str ? str.charAt(0).toUpperCase() + str.substr(1) : str;\n}\nexport function convertToColorString(color, defaultColor) {\n  defaultColor = defaultColor || 'transparent';\n  return zrUtil.isString(color) ? color : zrUtil.isObject(color) ? color.colorStops && (color.colorStops[0] || {}).color || defaultColor : defaultColor;\n}\nexport { truncateText } from 'zrender/lib/graphic/helper/parseText';\nexport function windowOpen(link, target) {\n  if (target === '_blank' || target === 'blank') {\n    var blank = window.open();\n    blank.opener = null;\n    blank.location.href = link;\n  } else {\n    window.open(link, target);\n  }\n}\nexport { getTextRect } from '../legacy/getTextRect';","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { parsePercent } from './number';\nimport * as formatUtil from './format';\nvar each = zrUtil.each;\nexport var LOCATION_PARAMS = ['left', 'right', 'top', 'bottom', 'width', 'height'];\nexport var HV_NAMES = [['width', 'left', 'right'], ['height', 'top', 'bottom']];\n\nfunction boxLayout(orient, group, gap, maxWidth, maxHeight) {\n  var x = 0;\n  var y = 0;\n\n  if (maxWidth == null) {\n    maxWidth = Infinity;\n  }\n\n  if (maxHeight == null) {\n    maxHeight = Infinity;\n  }\n\n  var currentLineMaxSize = 0;\n  group.eachChild(function (child, idx) {\n    var rect = child.getBoundingRect();\n    var nextChild = group.childAt(idx + 1);\n    var nextChildRect = nextChild && nextChild.getBoundingRect();\n    var nextX;\n    var nextY;\n\n    if (orient === 'horizontal') {\n      var moveX = rect.width + (nextChildRect ? -nextChildRect.x + rect.x : 0);\n      nextX = x + moveX;\n\n      if (nextX > maxWidth || child.newline) {\n        x = 0;\n        nextX = moveX;\n        y += currentLineMaxSize + gap;\n        currentLineMaxSize = rect.height;\n      } else {\n        currentLineMaxSize = Math.max(currentLineMaxSize, rect.height);\n      }\n    } else {\n      var moveY = rect.height + (nextChildRect ? -nextChildRect.y + rect.y : 0);\n      nextY = y + moveY;\n\n      if (nextY > maxHeight || child.newline) {\n        x += currentLineMaxSize + gap;\n        y = 0;\n        nextY = moveY;\n        currentLineMaxSize = rect.width;\n      } else {\n        currentLineMaxSize = Math.max(currentLineMaxSize, rect.width);\n      }\n    }\n\n    if (child.newline) {\n      return;\n    }\n\n    child.x = x;\n    child.y = y;\n    child.markRedraw();\n    orient === 'horizontal' ? x = nextX + gap : y = nextY + gap;\n  });\n}\n\nexport var box = boxLayout;\nexport var vbox = zrUtil.curry(boxLayout, 'vertical');\nexport var hbox = zrUtil.curry(boxLayout, 'horizontal');\nexport function getAvailableSize(positionInfo, containerRect, margin) {\n  var containerWidth = containerRect.width;\n  var containerHeight = containerRect.height;\n  var x = parsePercent(positionInfo.left, containerWidth);\n  var y = parsePercent(positionInfo.top, containerHeight);\n  var x2 = parsePercent(positionInfo.right, containerWidth);\n  var y2 = parsePercent(positionInfo.bottom, containerHeight);\n  (isNaN(x) || isNaN(parseFloat(positionInfo.left))) && (x = 0);\n  (isNaN(x2) || isNaN(parseFloat(positionInfo.right))) && (x2 = containerWidth);\n  (isNaN(y) || isNaN(parseFloat(positionInfo.top))) && (y = 0);\n  (isNaN(y2) || isNaN(parseFloat(positionInfo.bottom))) && (y2 = containerHeight);\n  margin = formatUtil.normalizeCssArray(margin || 0);\n  return {\n    width: Math.max(x2 - x - margin[1] - margin[3], 0),\n    height: Math.max(y2 - y - margin[0] - margin[2], 0)\n  };\n}\nexport function getLayoutRect(positionInfo, containerRect, margin) {\n  margin = formatUtil.normalizeCssArray(margin || 0);\n  var containerWidth = containerRect.width;\n  var containerHeight = containerRect.height;\n  var left = parsePercent(positionInfo.left, containerWidth);\n  var top = parsePercent(positionInfo.top, containerHeight);\n  var right = parsePercent(positionInfo.right, containerWidth);\n  var bottom = parsePercent(positionInfo.bottom, containerHeight);\n  var width = parsePercent(positionInfo.width, containerWidth);\n  var height = parsePercent(positionInfo.height, containerHeight);\n  var verticalMargin = margin[2] + margin[0];\n  var horizontalMargin = margin[1] + margin[3];\n  var aspect = positionInfo.aspect;\n\n  if (isNaN(width)) {\n    width = containerWidth - right - horizontalMargin - left;\n  }\n\n  if (isNaN(height)) {\n    height = containerHeight - bottom - verticalMargin - top;\n  }\n\n  if (aspect != null) {\n    if (isNaN(width) && isNaN(height)) {\n      if (aspect > containerWidth / containerHeight) {\n        width = containerWidth * 0.8;\n      } else {\n        height = containerHeight * 0.8;\n      }\n    }\n\n    if (isNaN(width)) {\n      width = aspect * height;\n    }\n\n    if (isNaN(height)) {\n      height = width / aspect;\n    }\n  }\n\n  if (isNaN(left)) {\n    left = containerWidth - right - width - horizontalMargin;\n  }\n\n  if (isNaN(top)) {\n    top = containerHeight - bottom - height - verticalMargin;\n  }\n\n  switch (positionInfo.left || positionInfo.right) {\n    case 'center':\n      left = containerWidth / 2 - width / 2 - margin[3];\n      break;\n\n    case 'right':\n      left = containerWidth - width - horizontalMargin;\n      break;\n  }\n\n  switch (positionInfo.top || positionInfo.bottom) {\n    case 'middle':\n    case 'center':\n      top = containerHeight / 2 - height / 2 - margin[0];\n      break;\n\n    case 'bottom':\n      top = containerHeight - height - verticalMargin;\n      break;\n  }\n\n  left = left || 0;\n  top = top || 0;\n\n  if (isNaN(width)) {\n    width = containerWidth - horizontalMargin - left - (right || 0);\n  }\n\n  if (isNaN(height)) {\n    height = containerHeight - verticalMargin - top - (bottom || 0);\n  }\n\n  var rect = new BoundingRect(left + margin[3], top + margin[0], width, height);\n  rect.margin = margin;\n  return rect;\n}\nexport function positionElement(el, positionInfo, containerRect, margin, opt) {\n  var h = !opt || !opt.hv || opt.hv[0];\n  var v = !opt || !opt.hv || opt.hv[1];\n  var boundingMode = opt && opt.boundingMode || 'all';\n\n  if (!h && !v) {\n    return;\n  }\n\n  var rect;\n\n  if (boundingMode === 'raw') {\n    rect = el.type === 'group' ? new BoundingRect(0, 0, +positionInfo.width || 0, +positionInfo.height || 0) : el.getBoundingRect();\n  } else {\n    rect = el.getBoundingRect();\n\n    if (el.needLocalTransform()) {\n      var transform = el.getLocalTransform();\n      rect = rect.clone();\n      rect.applyTransform(transform);\n    }\n  }\n\n  var layoutRect = getLayoutRect(zrUtil.defaults({\n    width: rect.width,\n    height: rect.height\n  }, positionInfo), containerRect, margin);\n  var dx = h ? layoutRect.x - rect.x : 0;\n  var dy = v ? layoutRect.y - rect.y : 0;\n\n  if (boundingMode === 'raw') {\n    el.x = dx;\n    el.y = dy;\n  } else {\n    el.x += dx;\n    el.y += dy;\n  }\n\n  el.markRedraw();\n}\nexport function sizeCalculable(option, hvIdx) {\n  return option[HV_NAMES[hvIdx][0]] != null || option[HV_NAMES[hvIdx][1]] != null && option[HV_NAMES[hvIdx][2]] != null;\n}\nexport function fetchLayoutMode(ins) {\n  var layoutMode = ins.layoutMode || ins.constructor.layoutMode;\n  return zrUtil.isObject(layoutMode) ? layoutMode : layoutMode ? {\n    type: layoutMode\n  } : null;\n}\nexport function mergeLayoutParam(targetOption, newOption, opt) {\n  var ignoreSize = opt && opt.ignoreSize;\n  !zrUtil.isArray(ignoreSize) && (ignoreSize = [ignoreSize, ignoreSize]);\n  var hResult = merge(HV_NAMES[0], 0);\n  var vResult = merge(HV_NAMES[1], 1);\n  copy(HV_NAMES[0], targetOption, hResult);\n  copy(HV_NAMES[1], targetOption, vResult);\n\n  function merge(names, hvIdx) {\n    var newParams = {};\n    var newValueCount = 0;\n    var merged = {};\n    var mergedValueCount = 0;\n    var enoughParamNumber = 2;\n    each(names, function (name) {\n      merged[name] = targetOption[name];\n    });\n    each(names, function (name) {\n      hasProp(newOption, name) && (newParams[name] = merged[name] = newOption[name]);\n      hasValue(newParams, name) && newValueCount++;\n      hasValue(merged, name) && mergedValueCount++;\n    });\n\n    if (ignoreSize[hvIdx]) {\n      if (hasValue(newOption, names[1])) {\n        merged[names[2]] = null;\n      } else if (hasValue(newOption, names[2])) {\n        merged[names[1]] = null;\n      }\n\n      return merged;\n    }\n\n    if (mergedValueCount === enoughParamNumber || !newValueCount) {\n      return merged;\n    } else if (newValueCount >= enoughParamNumber) {\n      return newParams;\n    } else {\n      for (var i = 0; i < names.length; i++) {\n        var name_1 = names[i];\n\n        if (!hasProp(newParams, name_1) && hasProp(targetOption, name_1)) {\n          newParams[name_1] = targetOption[name_1];\n          break;\n        }\n      }\n\n      return newParams;\n    }\n  }\n\n  function hasProp(obj, name) {\n    return obj.hasOwnProperty(name);\n  }\n\n  function hasValue(obj, name) {\n    return obj[name] != null && obj[name] !== 'auto';\n  }\n\n  function copy(names, target, source) {\n    each(names, function (name) {\n      target[name] = source[name];\n    });\n  }\n}\nexport function getLayoutParams(source) {\n  return copyLayoutParams({}, source);\n}\nexport function copyLayoutParams(target, source) {\n  source && target && each(LOCATION_PARAMS, function (name) {\n    source.hasOwnProperty(name) && (target[name] = source[name]);\n  });\n  return target;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Model from './Model';\nimport * as componentUtil from '../util/component';\nimport { enableClassManagement, parseClassType, isExtendedClass, mountExtend } from '../util/clazz';\nimport { makeInner, queryReferringComponents } from '../util/model';\nimport * as layout from '../util/layout';\nvar inner = makeInner();\n\nvar ComponentModel = function (_super) {\n  __extends(ComponentModel, _super);\n\n  function ComponentModel(option, parentModel, ecModel) {\n    var _this = _super.call(this, option, parentModel, ecModel) || this;\n\n    _this.uid = componentUtil.getUID('ec_cpt_model');\n    return _this;\n  }\n\n  ComponentModel.prototype.init = function (option, parentModel, ecModel) {\n    this.mergeDefaultAndTheme(option, ecModel);\n  };\n\n  ComponentModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n    var layoutMode = layout.fetchLayoutMode(this);\n    var inputPositionParams = layoutMode ? layout.getLayoutParams(option) : {};\n    var themeModel = ecModel.getTheme();\n    zrUtil.merge(option, themeModel.get(this.mainType));\n    zrUtil.merge(option, this.getDefaultOption());\n\n    if (layoutMode) {\n      layout.mergeLayoutParam(option, inputPositionParams, layoutMode);\n    }\n  };\n\n  ComponentModel.prototype.mergeOption = function (option, ecModel) {\n    zrUtil.merge(this.option, option, true);\n    var layoutMode = layout.fetchLayoutMode(this);\n\n    if (layoutMode) {\n      layout.mergeLayoutParam(this.option, option, layoutMode);\n    }\n  };\n\n  ComponentModel.prototype.optionUpdated = function (newCptOption, isInit) {};\n\n  ComponentModel.prototype.getDefaultOption = function () {\n    var ctor = this.constructor;\n\n    if (!isExtendedClass(ctor)) {\n      return ctor.defaultOption;\n    }\n\n    var fields = inner(this);\n\n    if (!fields.defaultOption) {\n      var optList = [];\n      var clz = ctor;\n\n      while (clz) {\n        var opt = clz.prototype.defaultOption;\n        opt && optList.push(opt);\n        clz = clz.superClass;\n      }\n\n      var defaultOption = {};\n\n      for (var i = optList.length - 1; i >= 0; i--) {\n        defaultOption = zrUtil.merge(defaultOption, optList[i], true);\n      }\n\n      fields.defaultOption = defaultOption;\n    }\n\n    return fields.defaultOption;\n  };\n\n  ComponentModel.prototype.getReferringComponents = function (mainType, opt) {\n    var indexKey = mainType + 'Index';\n    var idKey = mainType + 'Id';\n    return queryReferringComponents(this.ecModel, mainType, {\n      index: this.get(indexKey, true),\n      id: this.get(idKey, true)\n    }, opt);\n  };\n\n  ComponentModel.prototype.getBoxLayoutParams = function () {\n    var boxLayoutModel = this;\n    return {\n      left: boxLayoutModel.get('left'),\n      top: boxLayoutModel.get('top'),\n      right: boxLayoutModel.get('right'),\n      bottom: boxLayoutModel.get('bottom'),\n      width: boxLayoutModel.get('width'),\n      height: boxLayoutModel.get('height')\n    };\n  };\n\n  ComponentModel.protoInitialize = function () {\n    var proto = ComponentModel.prototype;\n    proto.type = 'component';\n    proto.id = '';\n    proto.name = '';\n    proto.mainType = '';\n    proto.subType = '';\n    proto.componentIndex = 0;\n  }();\n\n  return ComponentModel;\n}(Model);\n\nmountExtend(ComponentModel, Model);\nenableClassManagement(ComponentModel);\ncomponentUtil.enableSubTypeDefaulter(ComponentModel);\ncomponentUtil.enableTopologicalTravel(ComponentModel, getDependencies);\n\nfunction getDependencies(componentType) {\n  var deps = [];\n  zrUtil.each(ComponentModel.getClassesByMainType(componentType), function (clz) {\n    deps = deps.concat(clz.dependencies || clz.prototype.dependencies || []);\n  });\n  deps = zrUtil.map(deps, function (type) {\n    return parseClassType(type).main;\n  });\n\n  if (componentType !== 'dataset' && zrUtil.indexOf(deps, 'dataset') <= 0) {\n    deps.unshift('dataset');\n  }\n\n  return deps;\n}\n\nexport default ComponentModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar platform = '';\n\nif (typeof navigator !== 'undefined') {\n  platform = navigator.platform || '';\n}\n\nvar decalColor = 'rgba(0, 0, 0, 0.2)';\nexport default {\n  darkMode: 'auto',\n  color: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],\n  gradientColor: ['#f6efa6', '#d88273', '#bf444c'],\n  aria: {\n    decal: {\n      decals: [{\n        color: decalColor,\n        dashArrayX: [1, 0],\n        dashArrayY: [2, 5],\n        symbolSize: 1,\n        rotation: Math.PI / 6\n      }, {\n        color: decalColor,\n        symbol: 'circle',\n        dashArrayX: [[8, 8], [0, 8, 8, 0]],\n        dashArrayY: [6, 0],\n        symbolSize: 0.8\n      }, {\n        color: decalColor,\n        dashArrayX: [1, 0],\n        dashArrayY: [4, 3],\n        rotation: -Math.PI / 4\n      }, {\n        color: decalColor,\n        dashArrayX: [[6, 6], [0, 6, 6, 0]],\n        dashArrayY: [6, 0]\n      }, {\n        color: decalColor,\n        dashArrayX: [[1, 0], [1, 6]],\n        dashArrayY: [1, 0, 6, 0],\n        rotation: Math.PI / 4\n      }, {\n        color: decalColor,\n        symbol: 'triangle',\n        dashArrayX: [[9, 9], [0, 9, 9, 0]],\n        dashArrayY: [7, 2],\n        symbolSize: 0.75\n      }]\n    }\n  },\n  textStyle: {\n    fontFamily: platform.match(/^Win/) ? 'Microsoft YaHei' : 'sans-serif',\n    fontSize: 12,\n    fontStyle: 'normal',\n    fontWeight: 'normal'\n  },\n  blendMode: null,\n  stateAnimation: {\n    duration: 300,\n    easing: 'cubicOut'\n  },\n  animation: 'auto',\n  animationDuration: 1000,\n  animationDurationUpdate: 500,\n  animationEasing: 'cubicInOut',\n  animationEasingUpdate: 'cubicInOut',\n  animationThreshold: 2000,\n  progressiveThreshold: 3000,\n  progressive: 400,\n  hoverLayerThreshold: 3000,\n  useUTC: false\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap } from 'zrender/lib/core/util';\n;\n;\n;\nexport var VISUAL_DIMENSIONS = createHashMap(['tooltip', 'label', 'itemName', 'itemId', 'seriesName']);\nexport var SOURCE_FORMAT_ORIGINAL = 'original';\nexport var SOURCE_FORMAT_ARRAY_ROWS = 'arrayRows';\nexport var SOURCE_FORMAT_OBJECT_ROWS = 'objectRows';\nexport var SOURCE_FORMAT_KEYED_COLUMNS = 'keyedColumns';\nexport var SOURCE_FORMAT_TYPED_ARRAY = 'typedArray';\nexport var SOURCE_FORMAT_UNKNOWN = 'unknown';\nexport var SERIES_LAYOUT_BY_COLUMN = 'column';\nexport var SERIES_LAYOUT_BY_ROW = 'row';\n;\n;\n;\n;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner, getDataItemValue, queryReferringComponents, SINGLE_REFERRING } from '../../util/model';\nimport { createHashMap, each, isArray, isString, isObject, isTypedArray } from 'zrender/lib/core/util';\nimport { SOURCE_FORMAT_ORIGINAL, SOURCE_FORMAT_ARRAY_ROWS, SOURCE_FORMAT_OBJECT_ROWS, SERIES_LAYOUT_BY_ROW, SOURCE_FORMAT_KEYED_COLUMNS } from '../../util/types';\nexport var BE_ORDINAL = {\n  Must: 1,\n  Might: 2,\n  Not: 3\n};\nvar innerGlobalModel = makeInner();\nexport function resetSourceDefaulter(ecModel) {\n  innerGlobalModel(ecModel).datasetMap = createHashMap();\n}\nexport function makeSeriesEncodeForAxisCoordSys(coordDimensions, seriesModel, source) {\n  var encode = {};\n  var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\n\n  if (!datasetModel || !coordDimensions) {\n    return encode;\n  }\n\n  var encodeItemName = [];\n  var encodeSeriesName = [];\n  var ecModel = seriesModel.ecModel;\n  var datasetMap = innerGlobalModel(ecModel).datasetMap;\n  var key = datasetModel.uid + '_' + source.seriesLayoutBy;\n  var baseCategoryDimIndex;\n  var categoryWayValueDimStart;\n  coordDimensions = coordDimensions.slice();\n  each(coordDimensions, function (coordDimInfoLoose, coordDimIdx) {\n    var coordDimInfo = isObject(coordDimInfoLoose) ? coordDimInfoLoose : coordDimensions[coordDimIdx] = {\n      name: coordDimInfoLoose\n    };\n\n    if (coordDimInfo.type === 'ordinal' && baseCategoryDimIndex == null) {\n      baseCategoryDimIndex = coordDimIdx;\n      categoryWayValueDimStart = getDataDimCountOnCoordDim(coordDimInfo);\n    }\n\n    encode[coordDimInfo.name] = [];\n  });\n  var datasetRecord = datasetMap.get(key) || datasetMap.set(key, {\n    categoryWayDim: categoryWayValueDimStart,\n    valueWayDim: 0\n  });\n  each(coordDimensions, function (coordDimInfo, coordDimIdx) {\n    var coordDimName = coordDimInfo.name;\n    var count = getDataDimCountOnCoordDim(coordDimInfo);\n\n    if (baseCategoryDimIndex == null) {\n      var start = datasetRecord.valueWayDim;\n      pushDim(encode[coordDimName], start, count);\n      pushDim(encodeSeriesName, start, count);\n      datasetRecord.valueWayDim += count;\n    } else if (baseCategoryDimIndex === coordDimIdx) {\n      pushDim(encode[coordDimName], 0, count);\n      pushDim(encodeItemName, 0, count);\n    } else {\n      var start = datasetRecord.categoryWayDim;\n      pushDim(encode[coordDimName], start, count);\n      pushDim(encodeSeriesName, start, count);\n      datasetRecord.categoryWayDim += count;\n    }\n  });\n\n  function pushDim(dimIdxArr, idxFrom, idxCount) {\n    for (var i = 0; i < idxCount; i++) {\n      dimIdxArr.push(idxFrom + i);\n    }\n  }\n\n  function getDataDimCountOnCoordDim(coordDimInfo) {\n    var dimsDef = coordDimInfo.dimsDef;\n    return dimsDef ? dimsDef.length : 1;\n  }\n\n  encodeItemName.length && (encode.itemName = encodeItemName);\n  encodeSeriesName.length && (encode.seriesName = encodeSeriesName);\n  return encode;\n}\nexport function makeSeriesEncodeForNameBased(seriesModel, source, dimCount) {\n  var encode = {};\n  var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\n\n  if (!datasetModel) {\n    return encode;\n  }\n\n  var sourceFormat = source.sourceFormat;\n  var dimensionsDefine = source.dimensionsDefine;\n  var potentialNameDimIndex;\n\n  if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS || sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n    each(dimensionsDefine, function (dim, idx) {\n      if ((isObject(dim) ? dim.name : dim) === 'name') {\n        potentialNameDimIndex = idx;\n      }\n    });\n  }\n\n  var idxResult = function () {\n    var idxRes0 = {};\n    var idxRes1 = {};\n    var guessRecords = [];\n\n    for (var i = 0, len = Math.min(5, dimCount); i < len; i++) {\n      var guessResult = doGuessOrdinal(source.data, sourceFormat, source.seriesLayoutBy, dimensionsDefine, source.startIndex, i);\n      guessRecords.push(guessResult);\n      var isPureNumber = guessResult === BE_ORDINAL.Not;\n\n      if (isPureNumber && idxRes0.v == null && i !== potentialNameDimIndex) {\n        idxRes0.v = i;\n      }\n\n      if (idxRes0.n == null || idxRes0.n === idxRes0.v || !isPureNumber && guessRecords[idxRes0.n] === BE_ORDINAL.Not) {\n        idxRes0.n = i;\n      }\n\n      if (fulfilled(idxRes0) && guessRecords[idxRes0.n] !== BE_ORDINAL.Not) {\n        return idxRes0;\n      }\n\n      if (!isPureNumber) {\n        if (guessResult === BE_ORDINAL.Might && idxRes1.v == null && i !== potentialNameDimIndex) {\n          idxRes1.v = i;\n        }\n\n        if (idxRes1.n == null || idxRes1.n === idxRes1.v) {\n          idxRes1.n = i;\n        }\n      }\n    }\n\n    function fulfilled(idxResult) {\n      return idxResult.v != null && idxResult.n != null;\n    }\n\n    return fulfilled(idxRes0) ? idxRes0 : fulfilled(idxRes1) ? idxRes1 : null;\n  }();\n\n  if (idxResult) {\n    encode.value = [idxResult.v];\n    var nameDimIndex = potentialNameDimIndex != null ? potentialNameDimIndex : idxResult.n;\n    encode.itemName = [nameDimIndex];\n    encode.seriesName = [nameDimIndex];\n  }\n\n  return encode;\n}\nexport function querySeriesUpstreamDatasetModel(seriesModel) {\n  var thisData = seriesModel.get('data', true);\n\n  if (!thisData) {\n    return queryReferringComponents(seriesModel.ecModel, 'dataset', {\n      index: seriesModel.get('datasetIndex', true),\n      id: seriesModel.get('datasetId', true)\n    }, SINGLE_REFERRING).models[0];\n  }\n}\nexport function queryDatasetUpstreamDatasetModels(datasetModel) {\n  if (!datasetModel.get('transform', true) && !datasetModel.get('fromTransformResult', true)) {\n    return [];\n  }\n\n  return queryReferringComponents(datasetModel.ecModel, 'dataset', {\n    index: datasetModel.get('fromDatasetIndex', true),\n    id: datasetModel.get('fromDatasetId', true)\n  }, SINGLE_REFERRING).models;\n}\nexport function guessOrdinal(source, dimIndex) {\n  return doGuessOrdinal(source.data, source.sourceFormat, source.seriesLayoutBy, source.dimensionsDefine, source.startIndex, dimIndex);\n}\n\nfunction doGuessOrdinal(data, sourceFormat, seriesLayoutBy, dimensionsDefine, startIndex, dimIndex) {\n  var result;\n  var maxLoop = 5;\n\n  if (isTypedArray(data)) {\n    return BE_ORDINAL.Not;\n  }\n\n  var dimName;\n  var dimType;\n\n  if (dimensionsDefine) {\n    var dimDefItem = dimensionsDefine[dimIndex];\n\n    if (isObject(dimDefItem)) {\n      dimName = dimDefItem.name;\n      dimType = dimDefItem.type;\n    } else if (isString(dimDefItem)) {\n      dimName = dimDefItem;\n    }\n  }\n\n  if (dimType != null) {\n    return dimType === 'ordinal' ? BE_ORDINAL.Must : BE_ORDINAL.Not;\n  }\n\n  if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n    var dataArrayRows = data;\n\n    if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\n      var sample = dataArrayRows[dimIndex];\n\n      for (var i = 0; i < (sample || []).length && i < maxLoop; i++) {\n        if ((result = detectValue(sample[startIndex + i])) != null) {\n          return result;\n        }\n      }\n    } else {\n      for (var i = 0; i < dataArrayRows.length && i < maxLoop; i++) {\n        var row = dataArrayRows[startIndex + i];\n\n        if (row && (result = detectValue(row[dimIndex])) != null) {\n          return result;\n        }\n      }\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n    var dataObjectRows = data;\n\n    if (!dimName) {\n      return BE_ORDINAL.Not;\n    }\n\n    for (var i = 0; i < dataObjectRows.length && i < maxLoop; i++) {\n      var item = dataObjectRows[i];\n\n      if (item && (result = detectValue(item[dimName])) != null) {\n        return result;\n      }\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n    var dataKeyedColumns = data;\n\n    if (!dimName) {\n      return BE_ORDINAL.Not;\n    }\n\n    var sample = dataKeyedColumns[dimName];\n\n    if (!sample || isTypedArray(sample)) {\n      return BE_ORDINAL.Not;\n    }\n\n    for (var i = 0; i < sample.length && i < maxLoop; i++) {\n      if ((result = detectValue(sample[i])) != null) {\n        return result;\n      }\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n    var dataOriginal = data;\n\n    for (var i = 0; i < dataOriginal.length && i < maxLoop; i++) {\n      var item = dataOriginal[i];\n      var val = getDataItemValue(item);\n\n      if (!isArray(val)) {\n        return BE_ORDINAL.Not;\n      }\n\n      if ((result = detectValue(val[dimIndex])) != null) {\n        return result;\n      }\n    }\n  }\n\n  function detectValue(val) {\n    var beStr = isString(val);\n\n    if (val != null && isFinite(val) && val !== '') {\n      return beStr ? BE_ORDINAL.Might : BE_ORDINAL.Not;\n    } else if (beStr && val !== '-') {\n      return BE_ORDINAL.Must;\n    }\n  }\n\n  return BE_ORDINAL.Not;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, assert } from 'zrender/lib/core/util';\nimport { isComponentIdInternal } from '../util/model';\nvar internalOptionCreatorMap = createHashMap();\nexport function registerInternalOptionCreator(mainType, creator) {\n  assert(internalOptionCreatorMap.get(mainType) == null && creator);\n  internalOptionCreatorMap.set(mainType, creator);\n}\nexport function concatInternalOptions(ecModel, mainType, newCmptOptionList) {\n  var internalOptionCreator = internalOptionCreatorMap.get(mainType);\n\n  if (!internalOptionCreator) {\n    return newCmptOptionList;\n  }\n\n  var internalOptions = internalOptionCreator(ecModel);\n\n  if (!internalOptions) {\n    return newCmptOptionList;\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    for (var i = 0; i < internalOptions.length; i++) {\n      assert(isComponentIdInternal(internalOptions[i]));\n    }\n  }\n\n  return newCmptOptionList.concat(internalOptions);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner, normalizeToArray } from '../../util/model';\nvar innerColor = makeInner();\nvar innerDecal = makeInner();\n\nvar PaletteMixin = function () {\n  function PaletteMixin() {}\n\n  PaletteMixin.prototype.getColorFromPalette = function (name, scope, requestNum) {\n    var defaultPalette = normalizeToArray(this.get('color', true));\n    var layeredPalette = this.get('colorLayer', true);\n    return getFromPalette(this, innerColor, defaultPalette, layeredPalette, name, scope, requestNum);\n  };\n\n  PaletteMixin.prototype.clearColorPalette = function () {\n    clearPalette(this, innerColor);\n  };\n\n  return PaletteMixin;\n}();\n\nexport function getDecalFromPalette(ecModel, name, scope, requestNum) {\n  var defaultDecals = normalizeToArray(ecModel.get(['aria', 'decal', 'decals']));\n  return getFromPalette(ecModel, innerDecal, defaultDecals, null, name, scope, requestNum);\n}\n\nfunction getNearestPalette(palettes, requestColorNum) {\n  var paletteNum = palettes.length;\n\n  for (var i = 0; i < paletteNum; i++) {\n    if (palettes[i].length > requestColorNum) {\n      return palettes[i];\n    }\n  }\n\n  return palettes[paletteNum - 1];\n}\n\nfunction getFromPalette(that, inner, defaultPalette, layeredPalette, name, scope, requestNum) {\n  scope = scope || that;\n  var scopeFields = inner(scope);\n  var paletteIdx = scopeFields.paletteIdx || 0;\n  var paletteNameMap = scopeFields.paletteNameMap = scopeFields.paletteNameMap || {};\n\n  if (paletteNameMap.hasOwnProperty(name)) {\n    return paletteNameMap[name];\n  }\n\n  var palette = requestNum == null || !layeredPalette ? defaultPalette : getNearestPalette(layeredPalette, requestNum);\n  palette = palette || defaultPalette;\n\n  if (!palette || !palette.length) {\n    return;\n  }\n\n  var pickedPaletteItem = palette[paletteIdx];\n\n  if (name) {\n    paletteNameMap[name] = pickedPaletteItem;\n  }\n\n  scopeFields.paletteIdx = (paletteIdx + 1) % palette.length;\n  return pickedPaletteItem;\n}\n\nfunction clearPalette(that, inner) {\n  inner(that).paletteIdx = 0;\n  inner(that).paletteNameMap = {};\n}\n\nexport { PaletteMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { each, filter, isArray, isObject, isString, createHashMap, assert, clone, merge, extend, mixin, isFunction } from 'zrender/lib/core/util';\nimport * as modelUtil from '../util/model';\nimport Model from './Model';\nimport ComponentModel from './Component';\nimport globalDefault from './globalDefault';\nimport { resetSourceDefaulter } from '../data/helper/sourceHelper';\nimport { concatInternalOptions } from './internalComponentCreator';\nimport { PaletteMixin } from './mixin/palette';\nvar reCreateSeriesIndices;\nvar assertSeriesInitialized;\nvar initBase;\nvar OPTION_INNER_KEY = '\\0_ec_inner';\nvar OPTION_INNER_VALUE = 1;\n\nvar GlobalModel = function (_super) {\n  __extends(GlobalModel, _super);\n\n  function GlobalModel() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  GlobalModel.prototype.init = function (option, parentModel, ecModel, theme, locale, optionManager) {\n    theme = theme || {};\n    this.option = null;\n    this._theme = new Model(theme);\n    this._locale = new Model(locale);\n    this._optionManager = optionManager;\n  };\n\n  GlobalModel.prototype.setOption = function (option, opts, optionPreprocessorFuncs) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(option != null, 'option is null/undefined');\n      assert(option[OPTION_INNER_KEY] !== OPTION_INNER_VALUE, 'please use chart.getOption()');\n    }\n\n    var innerOpt = normalizeSetOptionInput(opts);\n\n    this._optionManager.setOption(option, optionPreprocessorFuncs, innerOpt);\n\n    this._resetOption(null, innerOpt);\n  };\n\n  GlobalModel.prototype.resetOption = function (type, opt) {\n    return this._resetOption(type, normalizeSetOptionInput(opt));\n  };\n\n  GlobalModel.prototype._resetOption = function (type, opt) {\n    var optionChanged = false;\n    var optionManager = this._optionManager;\n\n    if (!type || type === 'recreate') {\n      var baseOption = optionManager.mountOption(type === 'recreate');\n\n      if (!this.option || type === 'recreate') {\n        initBase(this, baseOption);\n      } else {\n        this.restoreData();\n\n        this._mergeOption(baseOption, opt);\n      }\n\n      optionChanged = true;\n    }\n\n    if (type === 'timeline' || type === 'media') {\n      this.restoreData();\n    }\n\n    if (!type || type === 'recreate' || type === 'timeline') {\n      var timelineOption = optionManager.getTimelineOption(this);\n\n      if (timelineOption) {\n        optionChanged = true;\n\n        this._mergeOption(timelineOption, opt);\n      }\n    }\n\n    if (!type || type === 'recreate' || type === 'media') {\n      var mediaOptions = optionManager.getMediaOption(this);\n\n      if (mediaOptions.length) {\n        each(mediaOptions, function (mediaOption) {\n          optionChanged = true;\n\n          this._mergeOption(mediaOption, opt);\n        }, this);\n      }\n    }\n\n    return optionChanged;\n  };\n\n  GlobalModel.prototype.mergeOption = function (option) {\n    this._mergeOption(option, null);\n  };\n\n  GlobalModel.prototype._mergeOption = function (newOption, opt) {\n    var option = this.option;\n    var componentsMap = this._componentsMap;\n    var componentsCount = this._componentsCount;\n    var newCmptTypes = [];\n    var newCmptTypeMap = createHashMap();\n    var replaceMergeMainTypeMap = opt && opt.replaceMergeMainTypeMap;\n    resetSourceDefaulter(this);\n    each(newOption, function (componentOption, mainType) {\n      if (componentOption == null) {\n        return;\n      }\n\n      if (!ComponentModel.hasClass(mainType)) {\n        option[mainType] = option[mainType] == null ? clone(componentOption) : merge(option[mainType], componentOption, true);\n      } else if (mainType) {\n        newCmptTypes.push(mainType);\n        newCmptTypeMap.set(mainType, true);\n      }\n    });\n\n    if (replaceMergeMainTypeMap) {\n      replaceMergeMainTypeMap.each(function (val, mainTypeInReplaceMerge) {\n        if (ComponentModel.hasClass(mainTypeInReplaceMerge) && !newCmptTypeMap.get(mainTypeInReplaceMerge)) {\n          newCmptTypes.push(mainTypeInReplaceMerge);\n          newCmptTypeMap.set(mainTypeInReplaceMerge, true);\n        }\n      });\n    }\n\n    ComponentModel.topologicalTravel(newCmptTypes, ComponentModel.getAllClassMainTypes(), visitComponent, this);\n\n    function visitComponent(mainType) {\n      var newCmptOptionList = concatInternalOptions(this, mainType, modelUtil.normalizeToArray(newOption[mainType]));\n      var oldCmptList = componentsMap.get(mainType);\n      var mergeMode = !oldCmptList ? 'replaceAll' : replaceMergeMainTypeMap && replaceMergeMainTypeMap.get(mainType) ? 'replaceMerge' : 'normalMerge';\n      var mappingResult = modelUtil.mappingToExists(oldCmptList, newCmptOptionList, mergeMode);\n      modelUtil.setComponentTypeToKeyInfo(mappingResult, mainType, ComponentModel);\n      option[mainType] = null;\n      componentsMap.set(mainType, null);\n      componentsCount.set(mainType, 0);\n      var optionsByMainType = [];\n      var cmptsByMainType = [];\n      var cmptsCountByMainType = 0;\n      each(mappingResult, function (resultItem, index) {\n        var componentModel = resultItem.existing;\n        var newCmptOption = resultItem.newOption;\n\n        if (!newCmptOption) {\n          if (componentModel) {\n            componentModel.mergeOption({}, this);\n            componentModel.optionUpdated({}, false);\n          }\n        } else {\n          var ComponentModelClass = ComponentModel.getClass(mainType, resultItem.keyInfo.subType, true);\n\n          if (componentModel && componentModel.constructor === ComponentModelClass) {\n            componentModel.name = resultItem.keyInfo.name;\n            componentModel.mergeOption(newCmptOption, this);\n            componentModel.optionUpdated(newCmptOption, false);\n          } else {\n            var extraOpt = extend({\n              componentIndex: index\n            }, resultItem.keyInfo);\n            componentModel = new ComponentModelClass(newCmptOption, this, this, extraOpt);\n            extend(componentModel, extraOpt);\n\n            if (resultItem.brandNew) {\n              componentModel.__requireNewView = true;\n            }\n\n            componentModel.init(newCmptOption, this, this);\n            componentModel.optionUpdated(null, true);\n          }\n        }\n\n        if (componentModel) {\n          optionsByMainType.push(componentModel.option);\n          cmptsByMainType.push(componentModel);\n          cmptsCountByMainType++;\n        } else {\n          optionsByMainType.push(void 0);\n          cmptsByMainType.push(void 0);\n        }\n      }, this);\n      option[mainType] = optionsByMainType;\n      componentsMap.set(mainType, cmptsByMainType);\n      componentsCount.set(mainType, cmptsCountByMainType);\n\n      if (mainType === 'series') {\n        reCreateSeriesIndices(this);\n      }\n    }\n\n    if (!this._seriesIndices) {\n      reCreateSeriesIndices(this);\n    }\n  };\n\n  GlobalModel.prototype.getOption = function () {\n    var option = clone(this.option);\n    each(option, function (optInMainType, mainType) {\n      if (ComponentModel.hasClass(mainType)) {\n        var opts = modelUtil.normalizeToArray(optInMainType);\n        var realLen = opts.length;\n        var metNonInner = false;\n\n        for (var i = realLen - 1; i >= 0; i--) {\n          if (opts[i] && !modelUtil.isComponentIdInternal(opts[i])) {\n            metNonInner = true;\n          } else {\n            opts[i] = null;\n            !metNonInner && realLen--;\n          }\n        }\n\n        opts.length = realLen;\n        option[mainType] = opts;\n      }\n    });\n    delete option[OPTION_INNER_KEY];\n    return option;\n  };\n\n  GlobalModel.prototype.getTheme = function () {\n    return this._theme;\n  };\n\n  GlobalModel.prototype.getLocaleModel = function () {\n    return this._locale;\n  };\n\n  GlobalModel.prototype.getLocale = function (localePosition) {\n    var locale = this.getLocaleModel();\n    return locale.get(localePosition);\n  };\n\n  GlobalModel.prototype.setUpdatePayload = function (payload) {\n    this._payload = payload;\n  };\n\n  GlobalModel.prototype.getUpdatePayload = function () {\n    return this._payload;\n  };\n\n  GlobalModel.prototype.getComponent = function (mainType, idx) {\n    var list = this._componentsMap.get(mainType);\n\n    if (list) {\n      var cmpt = list[idx || 0];\n\n      if (cmpt) {\n        return cmpt;\n      } else if (idx == null) {\n        for (var i = 0; i < list.length; i++) {\n          if (list[i]) {\n            return list[i];\n          }\n        }\n      }\n    }\n  };\n\n  GlobalModel.prototype.queryComponents = function (condition) {\n    var mainType = condition.mainType;\n\n    if (!mainType) {\n      return [];\n    }\n\n    var index = condition.index;\n    var id = condition.id;\n    var name = condition.name;\n\n    var cmpts = this._componentsMap.get(mainType);\n\n    if (!cmpts || !cmpts.length) {\n      return [];\n    }\n\n    var result;\n\n    if (index != null) {\n      result = [];\n      each(modelUtil.normalizeToArray(index), function (idx) {\n        cmpts[idx] && result.push(cmpts[idx]);\n      });\n    } else if (id != null) {\n      result = queryByIdOrName('id', id, cmpts);\n    } else if (name != null) {\n      result = queryByIdOrName('name', name, cmpts);\n    } else {\n      result = filter(cmpts, function (cmpt) {\n        return !!cmpt;\n      });\n    }\n\n    return filterBySubType(result, condition);\n  };\n\n  GlobalModel.prototype.findComponents = function (condition) {\n    var query = condition.query;\n    var mainType = condition.mainType;\n    var queryCond = getQueryCond(query);\n    var result = queryCond ? this.queryComponents(queryCond) : filter(this._componentsMap.get(mainType), function (cmpt) {\n      return !!cmpt;\n    });\n    return doFilter(filterBySubType(result, condition));\n\n    function getQueryCond(q) {\n      var indexAttr = mainType + 'Index';\n      var idAttr = mainType + 'Id';\n      var nameAttr = mainType + 'Name';\n      return q && (q[indexAttr] != null || q[idAttr] != null || q[nameAttr] != null) ? {\n        mainType: mainType,\n        index: q[indexAttr],\n        id: q[idAttr],\n        name: q[nameAttr]\n      } : null;\n    }\n\n    function doFilter(res) {\n      return condition.filter ? filter(res, condition.filter) : res;\n    }\n  };\n\n  GlobalModel.prototype.eachComponent = function (mainType, cb, context) {\n    var componentsMap = this._componentsMap;\n\n    if (isFunction(mainType)) {\n      var ctxForAll_1 = cb;\n      var cbForAll_1 = mainType;\n      componentsMap.each(function (cmpts, componentType) {\n        for (var i = 0; cmpts && i < cmpts.length; i++) {\n          var cmpt = cmpts[i];\n          cmpt && cbForAll_1.call(ctxForAll_1, componentType, cmpt, cmpt.componentIndex);\n        }\n      });\n    } else {\n      var cmpts = isString(mainType) ? componentsMap.get(mainType) : isObject(mainType) ? this.findComponents(mainType) : null;\n\n      for (var i = 0; cmpts && i < cmpts.length; i++) {\n        var cmpt = cmpts[i];\n        cmpt && cb.call(context, cmpt, cmpt.componentIndex);\n      }\n    }\n  };\n\n  GlobalModel.prototype.getSeriesByName = function (name) {\n    var nameStr = modelUtil.convertOptionIdName(name, null);\n    return filter(this._componentsMap.get('series'), function (oneSeries) {\n      return !!oneSeries && nameStr != null && oneSeries.name === nameStr;\n    });\n  };\n\n  GlobalModel.prototype.getSeriesByIndex = function (seriesIndex) {\n    return this._componentsMap.get('series')[seriesIndex];\n  };\n\n  GlobalModel.prototype.getSeriesByType = function (subType) {\n    return filter(this._componentsMap.get('series'), function (oneSeries) {\n      return !!oneSeries && oneSeries.subType === subType;\n    });\n  };\n\n  GlobalModel.prototype.getSeries = function () {\n    return filter(this._componentsMap.get('series').slice(), function (oneSeries) {\n      return !!oneSeries;\n    });\n  };\n\n  GlobalModel.prototype.getSeriesCount = function () {\n    return this._componentsCount.get('series');\n  };\n\n  GlobalModel.prototype.eachSeries = function (cb, context) {\n    assertSeriesInitialized(this);\n    each(this._seriesIndices, function (rawSeriesIndex) {\n      var series = this._componentsMap.get('series')[rawSeriesIndex];\n\n      cb.call(context, series, rawSeriesIndex);\n    }, this);\n  };\n\n  GlobalModel.prototype.eachRawSeries = function (cb, context) {\n    each(this._componentsMap.get('series'), function (series) {\n      series && cb.call(context, series, series.componentIndex);\n    });\n  };\n\n  GlobalModel.prototype.eachSeriesByType = function (subType, cb, context) {\n    assertSeriesInitialized(this);\n    each(this._seriesIndices, function (rawSeriesIndex) {\n      var series = this._componentsMap.get('series')[rawSeriesIndex];\n\n      if (series.subType === subType) {\n        cb.call(context, series, rawSeriesIndex);\n      }\n    }, this);\n  };\n\n  GlobalModel.prototype.eachRawSeriesByType = function (subType, cb, context) {\n    return each(this.getSeriesByType(subType), cb, context);\n  };\n\n  GlobalModel.prototype.isSeriesFiltered = function (seriesModel) {\n    assertSeriesInitialized(this);\n    return this._seriesIndicesMap.get(seriesModel.componentIndex) == null;\n  };\n\n  GlobalModel.prototype.getCurrentSeriesIndices = function () {\n    return (this._seriesIndices || []).slice();\n  };\n\n  GlobalModel.prototype.filterSeries = function (cb, context) {\n    assertSeriesInitialized(this);\n    var newSeriesIndices = [];\n    each(this._seriesIndices, function (seriesRawIdx) {\n      var series = this._componentsMap.get('series')[seriesRawIdx];\n\n      cb.call(context, series, seriesRawIdx) && newSeriesIndices.push(seriesRawIdx);\n    }, this);\n    this._seriesIndices = newSeriesIndices;\n    this._seriesIndicesMap = createHashMap(newSeriesIndices);\n  };\n\n  GlobalModel.prototype.restoreData = function (payload) {\n    reCreateSeriesIndices(this);\n    var componentsMap = this._componentsMap;\n    var componentTypes = [];\n    componentsMap.each(function (components, componentType) {\n      if (ComponentModel.hasClass(componentType)) {\n        componentTypes.push(componentType);\n      }\n    });\n    ComponentModel.topologicalTravel(componentTypes, ComponentModel.getAllClassMainTypes(), function (componentType) {\n      each(componentsMap.get(componentType), function (component) {\n        if (component && (componentType !== 'series' || !isNotTargetSeries(component, payload))) {\n          component.restoreData();\n        }\n      });\n    });\n  };\n\n  GlobalModel.internalField = function () {\n    reCreateSeriesIndices = function (ecModel) {\n      var seriesIndices = ecModel._seriesIndices = [];\n      each(ecModel._componentsMap.get('series'), function (series) {\n        series && seriesIndices.push(series.componentIndex);\n      });\n      ecModel._seriesIndicesMap = createHashMap(seriesIndices);\n    };\n\n    assertSeriesInitialized = function (ecModel) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (!ecModel._seriesIndices) {\n          throw new Error('Option should contains series.');\n        }\n      }\n    };\n\n    initBase = function (ecModel, baseOption) {\n      ecModel.option = {};\n      ecModel.option[OPTION_INNER_KEY] = OPTION_INNER_VALUE;\n      ecModel._componentsMap = createHashMap({\n        series: []\n      });\n      ecModel._componentsCount = createHashMap();\n      var airaOption = baseOption.aria;\n\n      if (isObject(airaOption) && airaOption.enabled == null) {\n        airaOption.enabled = true;\n      }\n\n      mergeTheme(baseOption, ecModel._theme.option);\n      merge(baseOption, globalDefault, false);\n\n      ecModel._mergeOption(baseOption, null);\n    };\n  }();\n\n  return GlobalModel;\n}(Model);\n\nfunction isNotTargetSeries(seriesModel, payload) {\n  if (payload) {\n    var index = payload.seriesIndex;\n    var id = payload.seriesId;\n    var name_1 = payload.seriesName;\n    return index != null && seriesModel.componentIndex !== index || id != null && seriesModel.id !== id || name_1 != null && seriesModel.name !== name_1;\n  }\n}\n\nfunction mergeTheme(option, theme) {\n  var notMergeColorLayer = option.color && !option.colorLayer;\n  each(theme, function (themeItem, name) {\n    if (name === 'colorLayer' && notMergeColorLayer) {\n      return;\n    }\n\n    if (!ComponentModel.hasClass(name)) {\n      if (typeof themeItem === 'object') {\n        option[name] = !option[name] ? clone(themeItem) : merge(option[name], themeItem, false);\n      } else {\n        if (option[name] == null) {\n          option[name] = themeItem;\n        }\n      }\n    }\n  });\n}\n\nfunction queryByIdOrName(attr, idOrName, cmpts) {\n  if (isArray(idOrName)) {\n    var keyMap_1 = createHashMap();\n    each(idOrName, function (idOrNameItem) {\n      if (idOrNameItem != null) {\n        var idName = modelUtil.convertOptionIdName(idOrNameItem, null);\n        idName != null && keyMap_1.set(idOrNameItem, true);\n      }\n    });\n    return filter(cmpts, function (cmpt) {\n      return cmpt && keyMap_1.get(cmpt[attr]);\n    });\n  } else {\n    var idName_1 = modelUtil.convertOptionIdName(idOrName, null);\n    return filter(cmpts, function (cmpt) {\n      return cmpt && idName_1 != null && cmpt[attr] === idName_1;\n    });\n  }\n}\n\nfunction filterBySubType(components, condition) {\n  return condition.hasOwnProperty('subType') ? filter(components, function (cmpt) {\n    return cmpt && cmpt.subType === condition.subType;\n  }) : components;\n}\n\nfunction normalizeSetOptionInput(opts) {\n  var replaceMergeMainTypeMap = createHashMap();\n  opts && each(modelUtil.normalizeToArray(opts.replaceMerge), function (mainType) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(ComponentModel.hasClass(mainType), '\"' + mainType + '\" is not valid component main type in \"replaceMerge\"');\n    }\n\n    replaceMergeMainTypeMap.set(mainType, true);\n  });\n  return {\n    replaceMergeMainTypeMap: replaceMergeMainTypeMap\n  };\n}\n\nmixin(GlobalModel, PaletteMixin);\nexport default GlobalModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar availableMethods = ['getDom', 'getZr', 'getWidth', 'getHeight', 'getDevicePixelRatio', 'dispatchAction', 'isDisposed', 'on', 'off', 'getDataURL', 'getConnectedDataURL', 'getOption', 'getId', 'updateLabelLayout'];\n\nvar ExtensionAPI = function () {\n  function ExtensionAPI(ecInstance) {\n    zrUtil.each(availableMethods, function (methodName) {\n      this[methodName] = zrUtil.bind(ecInstance[methodName], ecInstance);\n    }, this);\n  }\n\n  return ExtensionAPI;\n}();\n\nexport default ExtensionAPI;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar coordinateSystemCreators = {};\n\nvar CoordinateSystemManager = function () {\n  function CoordinateSystemManager() {\n    this._coordinateSystems = [];\n  }\n\n  CoordinateSystemManager.prototype.create = function (ecModel, api) {\n    var coordinateSystems = [];\n    zrUtil.each(coordinateSystemCreators, function (creater, type) {\n      var list = creater.create(ecModel, api);\n      coordinateSystems = coordinateSystems.concat(list || []);\n    });\n    this._coordinateSystems = coordinateSystems;\n  };\n\n  CoordinateSystemManager.prototype.update = function (ecModel, api) {\n    zrUtil.each(this._coordinateSystems, function (coordSys) {\n      coordSys.update && coordSys.update(ecModel, api);\n    });\n  };\n\n  CoordinateSystemManager.prototype.getCoordinateSystems = function () {\n    return this._coordinateSystems.slice();\n  };\n\n  CoordinateSystemManager.register = function (type, creator) {\n    coordinateSystemCreators[type] = creator;\n  };\n\n  CoordinateSystemManager.get = function (type) {\n    return coordinateSystemCreators[type];\n  };\n\n  return CoordinateSystemManager;\n}();\n\nexport default CoordinateSystemManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { normalizeToArray } from '../util/model';\nimport { each, clone, map, isTypedArray, setAsPrimitive, isArray, isObject } from 'zrender/lib/core/util';\nimport { error } from '../util/log';\nvar QUERY_REG = /^(min|max)?(.+)$/;\n\nvar OptionManager = function () {\n  function OptionManager(api) {\n    this._timelineOptions = [];\n    this._mediaList = [];\n    this._currentMediaIndices = [];\n    this._api = api;\n  }\n\n  OptionManager.prototype.setOption = function (rawOption, optionPreprocessorFuncs, opt) {\n    if (rawOption) {\n      each(normalizeToArray(rawOption.series), function (series) {\n        series && series.data && isTypedArray(series.data) && setAsPrimitive(series.data);\n      });\n      each(normalizeToArray(rawOption.dataset), function (dataset) {\n        dataset && dataset.source && isTypedArray(dataset.source) && setAsPrimitive(dataset.source);\n      });\n    }\n\n    rawOption = clone(rawOption);\n    var optionBackup = this._optionBackup;\n    var newParsedOption = parseRawOption(rawOption, optionPreprocessorFuncs, !optionBackup);\n    this._newBaseOption = newParsedOption.baseOption;\n\n    if (optionBackup) {\n      if (newParsedOption.timelineOptions.length) {\n        optionBackup.timelineOptions = newParsedOption.timelineOptions;\n      }\n\n      if (newParsedOption.mediaList.length) {\n        optionBackup.mediaList = newParsedOption.mediaList;\n      }\n\n      if (newParsedOption.mediaDefault) {\n        optionBackup.mediaDefault = newParsedOption.mediaDefault;\n      }\n    } else {\n      this._optionBackup = newParsedOption;\n    }\n  };\n\n  OptionManager.prototype.mountOption = function (isRecreate) {\n    var optionBackup = this._optionBackup;\n    this._timelineOptions = optionBackup.timelineOptions;\n    this._mediaList = optionBackup.mediaList;\n    this._mediaDefault = optionBackup.mediaDefault;\n    this._currentMediaIndices = [];\n    return clone(isRecreate ? optionBackup.baseOption : this._newBaseOption);\n  };\n\n  OptionManager.prototype.getTimelineOption = function (ecModel) {\n    var option;\n    var timelineOptions = this._timelineOptions;\n\n    if (timelineOptions.length) {\n      var timelineModel = ecModel.getComponent('timeline');\n\n      if (timelineModel) {\n        option = clone(timelineOptions[timelineModel.getCurrentIndex()]);\n      }\n    }\n\n    return option;\n  };\n\n  OptionManager.prototype.getMediaOption = function (ecModel) {\n    var ecWidth = this._api.getWidth();\n\n    var ecHeight = this._api.getHeight();\n\n    var mediaList = this._mediaList;\n    var mediaDefault = this._mediaDefault;\n    var indices = [];\n    var result = [];\n\n    if (!mediaList.length && !mediaDefault) {\n      return result;\n    }\n\n    for (var i = 0, len = mediaList.length; i < len; i++) {\n      if (applyMediaQuery(mediaList[i].query, ecWidth, ecHeight)) {\n        indices.push(i);\n      }\n    }\n\n    if (!indices.length && mediaDefault) {\n      indices = [-1];\n    }\n\n    if (indices.length && !indicesEquals(indices, this._currentMediaIndices)) {\n      result = map(indices, function (index) {\n        return clone(index === -1 ? mediaDefault.option : mediaList[index].option);\n      });\n    }\n\n    this._currentMediaIndices = indices;\n    return result;\n  };\n\n  return OptionManager;\n}();\n\nfunction parseRawOption(rawOption, optionPreprocessorFuncs, isNew) {\n  var mediaList = [];\n  var mediaDefault;\n  var baseOption;\n  var declaredBaseOption = rawOption.baseOption;\n  var timelineOnRoot = rawOption.timeline;\n  var timelineOptionsOnRoot = rawOption.options;\n  var mediaOnRoot = rawOption.media;\n  var hasMedia = !!rawOption.media;\n  var hasTimeline = !!(timelineOptionsOnRoot || timelineOnRoot || declaredBaseOption && declaredBaseOption.timeline);\n\n  if (declaredBaseOption) {\n    baseOption = declaredBaseOption;\n\n    if (!baseOption.timeline) {\n      baseOption.timeline = timelineOnRoot;\n    }\n  } else {\n    if (hasTimeline || hasMedia) {\n      rawOption.options = rawOption.media = null;\n    }\n\n    baseOption = rawOption;\n  }\n\n  if (hasMedia) {\n    if (isArray(mediaOnRoot)) {\n      each(mediaOnRoot, function (singleMedia) {\n        if (process.env.NODE_ENV !== 'production') {\n          if (singleMedia && !singleMedia.option && isObject(singleMedia.query) && isObject(singleMedia.query.option)) {\n            error('Illegal media option. Must be like { media: [ { query: {}, option: {} } ] }');\n          }\n        }\n\n        if (singleMedia && singleMedia.option) {\n          if (singleMedia.query) {\n            mediaList.push(singleMedia);\n          } else if (!mediaDefault) {\n            mediaDefault = singleMedia;\n          }\n        }\n      });\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        error('Illegal media option. Must be an array. Like { media: [ {...}, {...} ] }');\n      }\n    }\n  }\n\n  doPreprocess(baseOption);\n  each(timelineOptionsOnRoot, function (option) {\n    return doPreprocess(option);\n  });\n  each(mediaList, function (media) {\n    return doPreprocess(media.option);\n  });\n\n  function doPreprocess(option) {\n    each(optionPreprocessorFuncs, function (preProcess) {\n      preProcess(option, isNew);\n    });\n  }\n\n  return {\n    baseOption: baseOption,\n    timelineOptions: timelineOptionsOnRoot || [],\n    mediaDefault: mediaDefault,\n    mediaList: mediaList\n  };\n}\n\nfunction applyMediaQuery(query, ecWidth, ecHeight) {\n  var realMap = {\n    width: ecWidth,\n    height: ecHeight,\n    aspectratio: ecWidth / ecHeight\n  };\n  var applicatable = true;\n  each(query, function (value, attr) {\n    var matched = attr.match(QUERY_REG);\n\n    if (!matched || !matched[1] || !matched[2]) {\n      return;\n    }\n\n    var operator = matched[1];\n    var realAttr = matched[2].toLowerCase();\n\n    if (!compare(realMap[realAttr], value, operator)) {\n      applicatable = false;\n    }\n  });\n  return applicatable;\n}\n\nfunction compare(real, expect, operator) {\n  if (operator === 'min') {\n    return real >= expect;\n  } else if (operator === 'max') {\n    return real <= expect;\n  } else {\n    return real === expect;\n  }\n}\n\nfunction indicesEquals(indices1, indices2) {\n  return indices1.join(',') === indices2.join(',');\n}\n\nexport default OptionManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nimport { deprecateLog, deprecateReplaceLog } from '../../util/log';\nvar each = zrUtil.each;\nvar isObject = zrUtil.isObject;\nvar POSSIBLE_STYLES = ['areaStyle', 'lineStyle', 'nodeStyle', 'linkStyle', 'chordStyle', 'label', 'labelLine'];\n\nfunction compatEC2ItemStyle(opt) {\n  var itemStyleOpt = opt && opt.itemStyle;\n\n  if (!itemStyleOpt) {\n    return;\n  }\n\n  for (var i = 0, len = POSSIBLE_STYLES.length; i < len; i++) {\n    var styleName = POSSIBLE_STYLES[i];\n    var normalItemStyleOpt = itemStyleOpt.normal;\n    var emphasisItemStyleOpt = itemStyleOpt.emphasis;\n\n    if (normalItemStyleOpt && normalItemStyleOpt[styleName]) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateReplaceLog(\"itemStyle.normal.\" + styleName, styleName);\n      }\n\n      opt[styleName] = opt[styleName] || {};\n\n      if (!opt[styleName].normal) {\n        opt[styleName].normal = normalItemStyleOpt[styleName];\n      } else {\n        zrUtil.merge(opt[styleName].normal, normalItemStyleOpt[styleName]);\n      }\n\n      normalItemStyleOpt[styleName] = null;\n    }\n\n    if (emphasisItemStyleOpt && emphasisItemStyleOpt[styleName]) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateReplaceLog(\"itemStyle.emphasis.\" + styleName, \"emphasis.\" + styleName);\n      }\n\n      opt[styleName] = opt[styleName] || {};\n\n      if (!opt[styleName].emphasis) {\n        opt[styleName].emphasis = emphasisItemStyleOpt[styleName];\n      } else {\n        zrUtil.merge(opt[styleName].emphasis, emphasisItemStyleOpt[styleName]);\n      }\n\n      emphasisItemStyleOpt[styleName] = null;\n    }\n  }\n}\n\nfunction convertNormalEmphasis(opt, optType, useExtend) {\n  if (opt && opt[optType] && (opt[optType].normal || opt[optType].emphasis)) {\n    var normalOpt = opt[optType].normal;\n    var emphasisOpt = opt[optType].emphasis;\n\n    if (normalOpt) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateLog(\"'normal' hierarchy in \" + optType + \" has been removed since 4.0. All style properties are configured in \" + optType + \" directly now.\");\n      }\n\n      if (useExtend) {\n        opt[optType].normal = opt[optType].emphasis = null;\n        zrUtil.defaults(opt[optType], normalOpt);\n      } else {\n        opt[optType] = normalOpt;\n      }\n    }\n\n    if (emphasisOpt) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateLog(optType + \".emphasis has been changed to emphasis.\" + optType + \" since 4.0\");\n      }\n\n      opt.emphasis = opt.emphasis || {};\n      opt.emphasis[optType] = emphasisOpt;\n\n      if (emphasisOpt.focus) {\n        opt.emphasis.focus = emphasisOpt.focus;\n      }\n\n      if (emphasisOpt.blurScope) {\n        opt.emphasis.blurScope = emphasisOpt.blurScope;\n      }\n    }\n  }\n}\n\nfunction removeEC3NormalStatus(opt) {\n  convertNormalEmphasis(opt, 'itemStyle');\n  convertNormalEmphasis(opt, 'lineStyle');\n  convertNormalEmphasis(opt, 'areaStyle');\n  convertNormalEmphasis(opt, 'label');\n  convertNormalEmphasis(opt, 'labelLine');\n  convertNormalEmphasis(opt, 'upperLabel');\n  convertNormalEmphasis(opt, 'edgeLabel');\n}\n\nfunction compatTextStyle(opt, propName) {\n  var labelOptSingle = isObject(opt) && opt[propName];\n  var textStyle = isObject(labelOptSingle) && labelOptSingle.textStyle;\n\n  if (textStyle) {\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateLog(\"textStyle hierarchy in \" + propName + \" has been removed since 4.0. All textStyle properties are configured in \" + propName + \" directly now.\");\n    }\n\n    for (var i = 0, len = modelUtil.TEXT_STYLE_OPTIONS.length; i < len; i++) {\n      var textPropName = modelUtil.TEXT_STYLE_OPTIONS[i];\n\n      if (textStyle.hasOwnProperty(textPropName)) {\n        labelOptSingle[textPropName] = textStyle[textPropName];\n      }\n    }\n  }\n}\n\nfunction compatEC3CommonStyles(opt) {\n  if (opt) {\n    removeEC3NormalStatus(opt);\n    compatTextStyle(opt, 'label');\n    opt.emphasis && compatTextStyle(opt.emphasis, 'label');\n  }\n}\n\nfunction processSeries(seriesOpt) {\n  if (!isObject(seriesOpt)) {\n    return;\n  }\n\n  compatEC2ItemStyle(seriesOpt);\n  removeEC3NormalStatus(seriesOpt);\n  compatTextStyle(seriesOpt, 'label');\n  compatTextStyle(seriesOpt, 'upperLabel');\n  compatTextStyle(seriesOpt, 'edgeLabel');\n\n  if (seriesOpt.emphasis) {\n    compatTextStyle(seriesOpt.emphasis, 'label');\n    compatTextStyle(seriesOpt.emphasis, 'upperLabel');\n    compatTextStyle(seriesOpt.emphasis, 'edgeLabel');\n  }\n\n  var markPoint = seriesOpt.markPoint;\n\n  if (markPoint) {\n    compatEC2ItemStyle(markPoint);\n    compatEC3CommonStyles(markPoint);\n  }\n\n  var markLine = seriesOpt.markLine;\n\n  if (markLine) {\n    compatEC2ItemStyle(markLine);\n    compatEC3CommonStyles(markLine);\n  }\n\n  var markArea = seriesOpt.markArea;\n\n  if (markArea) {\n    compatEC3CommonStyles(markArea);\n  }\n\n  var data = seriesOpt.data;\n\n  if (seriesOpt.type === 'graph') {\n    data = data || seriesOpt.nodes;\n    var edgeData = seriesOpt.links || seriesOpt.edges;\n\n    if (edgeData && !zrUtil.isTypedArray(edgeData)) {\n      for (var i = 0; i < edgeData.length; i++) {\n        compatEC3CommonStyles(edgeData[i]);\n      }\n    }\n\n    zrUtil.each(seriesOpt.categories, function (opt) {\n      removeEC3NormalStatus(opt);\n    });\n  }\n\n  if (data && !zrUtil.isTypedArray(data)) {\n    for (var i = 0; i < data.length; i++) {\n      compatEC3CommonStyles(data[i]);\n    }\n  }\n\n  markPoint = seriesOpt.markPoint;\n\n  if (markPoint && markPoint.data) {\n    var mpData = markPoint.data;\n\n    for (var i = 0; i < mpData.length; i++) {\n      compatEC3CommonStyles(mpData[i]);\n    }\n  }\n\n  markLine = seriesOpt.markLine;\n\n  if (markLine && markLine.data) {\n    var mlData = markLine.data;\n\n    for (var i = 0; i < mlData.length; i++) {\n      if (zrUtil.isArray(mlData[i])) {\n        compatEC3CommonStyles(mlData[i][0]);\n        compatEC3CommonStyles(mlData[i][1]);\n      } else {\n        compatEC3CommonStyles(mlData[i]);\n      }\n    }\n  }\n\n  if (seriesOpt.type === 'gauge') {\n    compatTextStyle(seriesOpt, 'axisLabel');\n    compatTextStyle(seriesOpt, 'title');\n    compatTextStyle(seriesOpt, 'detail');\n  } else if (seriesOpt.type === 'treemap') {\n    convertNormalEmphasis(seriesOpt.breadcrumb, 'itemStyle');\n    zrUtil.each(seriesOpt.levels, function (opt) {\n      removeEC3NormalStatus(opt);\n    });\n  } else if (seriesOpt.type === 'tree') {\n    removeEC3NormalStatus(seriesOpt.leaves);\n  }\n}\n\nfunction toArr(o) {\n  return zrUtil.isArray(o) ? o : o ? [o] : [];\n}\n\nfunction toObj(o) {\n  return (zrUtil.isArray(o) ? o[0] : o) || {};\n}\n\nexport default function globalCompatStyle(option, isTheme) {\n  each(toArr(option.series), function (seriesOpt) {\n    isObject(seriesOpt) && processSeries(seriesOpt);\n  });\n  var axes = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'parallelAxis', 'radar'];\n  isTheme && axes.push('valueAxis', 'categoryAxis', 'logAxis', 'timeAxis');\n  each(axes, function (axisName) {\n    each(toArr(option[axisName]), function (axisOpt) {\n      if (axisOpt) {\n        compatTextStyle(axisOpt, 'axisLabel');\n        compatTextStyle(axisOpt.axisPointer, 'label');\n      }\n    });\n  });\n  each(toArr(option.parallel), function (parallelOpt) {\n    var parallelAxisDefault = parallelOpt && parallelOpt.parallelAxisDefault;\n    compatTextStyle(parallelAxisDefault, 'axisLabel');\n    compatTextStyle(parallelAxisDefault && parallelAxisDefault.axisPointer, 'label');\n  });\n  each(toArr(option.calendar), function (calendarOpt) {\n    convertNormalEmphasis(calendarOpt, 'itemStyle');\n    compatTextStyle(calendarOpt, 'dayLabel');\n    compatTextStyle(calendarOpt, 'monthLabel');\n    compatTextStyle(calendarOpt, 'yearLabel');\n  });\n  each(toArr(option.radar), function (radarOpt) {\n    compatTextStyle(radarOpt, 'name');\n\n    if (radarOpt.name && radarOpt.axisName == null) {\n      radarOpt.axisName = radarOpt.name;\n      delete radarOpt.name;\n\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateLog('name property in radar component has been changed to axisName');\n      }\n    }\n\n    if (radarOpt.nameGap != null && radarOpt.axisNameGap == null) {\n      radarOpt.axisNameGap = radarOpt.nameGap;\n      delete radarOpt.nameGap;\n\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateLog('nameGap property in radar component has been changed to axisNameGap');\n      }\n    }\n  });\n  each(toArr(option.geo), function (geoOpt) {\n    if (isObject(geoOpt)) {\n      compatEC3CommonStyles(geoOpt);\n      each(toArr(geoOpt.regions), function (regionObj) {\n        compatEC3CommonStyles(regionObj);\n      });\n    }\n  });\n  each(toArr(option.timeline), function (timelineOpt) {\n    compatEC3CommonStyles(timelineOpt);\n    convertNormalEmphasis(timelineOpt, 'label');\n    convertNormalEmphasis(timelineOpt, 'itemStyle');\n    convertNormalEmphasis(timelineOpt, 'controlStyle', true);\n    var data = timelineOpt.data;\n    zrUtil.isArray(data) && zrUtil.each(data, function (item) {\n      if (zrUtil.isObject(item)) {\n        convertNormalEmphasis(item, 'label');\n        convertNormalEmphasis(item, 'itemStyle');\n      }\n    });\n  });\n  each(toArr(option.toolbox), function (toolboxOpt) {\n    convertNormalEmphasis(toolboxOpt, 'iconStyle');\n    each(toolboxOpt.feature, function (featureOpt) {\n      convertNormalEmphasis(featureOpt, 'iconStyle');\n    });\n  });\n  compatTextStyle(toObj(option.axisPointer), 'label');\n  compatTextStyle(toObj(option.tooltip).axisPointer, 'label');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, isArray, isObject, isTypedArray, defaults } from 'zrender/lib/core/util';\nimport compatStyle from './helper/compatStyle';\nimport { normalizeToArray } from '../util/model';\nimport { deprecateLog, deprecateReplaceLog } from '../util/log';\n\nfunction get(opt, path) {\n  var pathArr = path.split(',');\n  var obj = opt;\n\n  for (var i = 0; i < pathArr.length; i++) {\n    obj = obj && obj[pathArr[i]];\n\n    if (obj == null) {\n      break;\n    }\n  }\n\n  return obj;\n}\n\nfunction set(opt, path, val, overwrite) {\n  var pathArr = path.split(',');\n  var obj = opt;\n  var key;\n  var i = 0;\n\n  for (; i < pathArr.length - 1; i++) {\n    key = pathArr[i];\n\n    if (obj[key] == null) {\n      obj[key] = {};\n    }\n\n    obj = obj[key];\n  }\n\n  if (overwrite || obj[pathArr[i]] == null) {\n    obj[pathArr[i]] = val;\n  }\n}\n\nfunction compatLayoutProperties(option) {\n  option && each(LAYOUT_PROPERTIES, function (prop) {\n    if (prop[0] in option && !(prop[1] in option)) {\n      option[prop[1]] = option[prop[0]];\n    }\n  });\n}\n\nvar LAYOUT_PROPERTIES = [['x', 'left'], ['y', 'top'], ['x2', 'right'], ['y2', 'bottom']];\nvar COMPATITABLE_COMPONENTS = ['grid', 'geo', 'parallel', 'legend', 'toolbox', 'title', 'visualMap', 'dataZoom', 'timeline'];\nvar BAR_ITEM_STYLE_MAP = [['borderRadius', 'barBorderRadius'], ['borderColor', 'barBorderColor'], ['borderWidth', 'barBorderWidth']];\n\nfunction compatBarItemStyle(option) {\n  var itemStyle = option && option.itemStyle;\n\n  if (itemStyle) {\n    for (var i = 0; i < BAR_ITEM_STYLE_MAP.length; i++) {\n      var oldName = BAR_ITEM_STYLE_MAP[i][1];\n      var newName = BAR_ITEM_STYLE_MAP[i][0];\n\n      if (itemStyle[oldName] != null) {\n        itemStyle[newName] = itemStyle[oldName];\n\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog(oldName, newName);\n        }\n      }\n    }\n  }\n}\n\nfunction compatPieLabel(option) {\n  if (!option) {\n    return;\n  }\n\n  if (option.alignTo === 'edge' && option.margin != null && option.edgeDistance == null) {\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateReplaceLog('label.margin', 'label.edgeDistance', 'pie');\n    }\n\n    option.edgeDistance = option.margin;\n  }\n}\n\nfunction compatSunburstState(option) {\n  if (!option) {\n    return;\n  }\n\n  if (option.downplay && !option.blur) {\n    option.blur = option.downplay;\n\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateReplaceLog('downplay', 'blur', 'sunburst');\n    }\n  }\n}\n\nfunction compatGraphFocus(option) {\n  if (!option) {\n    return;\n  }\n\n  if (option.focusNodeAdjacency != null) {\n    option.emphasis = option.emphasis || {};\n\n    if (option.emphasis.focus == null) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateReplaceLog('focusNodeAdjacency', 'emphasis: { focus: \\'adjacency\\'}', 'graph/sankey');\n      }\n\n      option.emphasis.focus = 'adjacency';\n    }\n  }\n}\n\nfunction traverseTree(data, cb) {\n  if (data) {\n    for (var i = 0; i < data.length; i++) {\n      cb(data[i]);\n      data[i] && traverseTree(data[i].children, cb);\n    }\n  }\n}\n\nexport default function globalBackwardCompat(option, isTheme) {\n  compatStyle(option, isTheme);\n  option.series = normalizeToArray(option.series);\n  each(option.series, function (seriesOpt) {\n    if (!isObject(seriesOpt)) {\n      return;\n    }\n\n    var seriesType = seriesOpt.type;\n\n    if (seriesType === 'line') {\n      if (seriesOpt.clipOverflow != null) {\n        seriesOpt.clip = seriesOpt.clipOverflow;\n\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog('clipOverflow', 'clip', 'line');\n        }\n      }\n    } else if (seriesType === 'pie' || seriesType === 'gauge') {\n      if (seriesOpt.clockWise != null) {\n        seriesOpt.clockwise = seriesOpt.clockWise;\n\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog('clockWise', 'clockwise');\n        }\n      }\n\n      compatPieLabel(seriesOpt.label);\n      var data = seriesOpt.data;\n\n      if (data && !isTypedArray(data)) {\n        for (var i = 0; i < data.length; i++) {\n          compatPieLabel(data[i]);\n        }\n      }\n\n      if (seriesOpt.hoverOffset != null) {\n        seriesOpt.emphasis = seriesOpt.emphasis || {};\n\n        if (seriesOpt.emphasis.scaleSize = null) {\n          if (process.env.NODE_ENV !== 'production') {\n            deprecateReplaceLog('hoverOffset', 'emphasis.scaleSize');\n          }\n\n          seriesOpt.emphasis.scaleSize = seriesOpt.hoverOffset;\n        }\n      }\n    } else if (seriesType === 'gauge') {\n      var pointerColor = get(seriesOpt, 'pointer.color');\n      pointerColor != null && set(seriesOpt, 'itemStyle.color', pointerColor);\n    } else if (seriesType === 'bar') {\n      compatBarItemStyle(seriesOpt);\n      compatBarItemStyle(seriesOpt.backgroundStyle);\n      compatBarItemStyle(seriesOpt.emphasis);\n      var data = seriesOpt.data;\n\n      if (data && !isTypedArray(data)) {\n        for (var i = 0; i < data.length; i++) {\n          if (typeof data[i] === 'object') {\n            compatBarItemStyle(data[i]);\n            compatBarItemStyle(data[i] && data[i].emphasis);\n          }\n        }\n      }\n    } else if (seriesType === 'sunburst') {\n      var highlightPolicy = seriesOpt.highlightPolicy;\n\n      if (highlightPolicy) {\n        seriesOpt.emphasis = seriesOpt.emphasis || {};\n\n        if (!seriesOpt.emphasis.focus) {\n          seriesOpt.emphasis.focus = highlightPolicy;\n\n          if (process.env.NODE_ENV !== 'production') {\n            deprecateReplaceLog('highlightPolicy', 'emphasis.focus', 'sunburst');\n          }\n        }\n      }\n\n      compatSunburstState(seriesOpt);\n      traverseTree(seriesOpt.data, compatSunburstState);\n    } else if (seriesType === 'graph' || seriesType === 'sankey') {\n      compatGraphFocus(seriesOpt);\n    } else if (seriesType === 'map') {\n      if (seriesOpt.mapType && !seriesOpt.map) {\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog('mapType', 'map', 'map');\n        }\n\n        seriesOpt.map = seriesOpt.mapType;\n      }\n\n      if (seriesOpt.mapLocation) {\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateLog('`mapLocation` is not used anymore.');\n        }\n\n        defaults(seriesOpt, seriesOpt.mapLocation);\n      }\n    }\n\n    if (seriesOpt.hoverAnimation != null) {\n      seriesOpt.emphasis = seriesOpt.emphasis || {};\n\n      if (seriesOpt.emphasis && seriesOpt.emphasis.scale == null) {\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog('hoverAnimation', 'emphasis.scale');\n        }\n\n        seriesOpt.emphasis.scale = seriesOpt.hoverAnimation;\n      }\n    }\n\n    compatLayoutProperties(seriesOpt);\n  });\n\n  if (option.dataRange) {\n    option.visualMap = option.dataRange;\n  }\n\n  each(COMPATITABLE_COMPONENTS, function (componentName) {\n    var options = option[componentName];\n\n    if (options) {\n      if (!isArray(options)) {\n        options = [options];\n      }\n\n      each(options, function (option) {\n        compatLayoutProperties(option);\n      });\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, each } from 'zrender/lib/core/util';\nexport default function dataStack(ecModel) {\n  var stackInfoMap = createHashMap();\n  ecModel.eachSeries(function (seriesModel) {\n    var stack = seriesModel.get('stack');\n\n    if (stack) {\n      var stackInfoList = stackInfoMap.get(stack) || stackInfoMap.set(stack, []);\n      var data = seriesModel.getData();\n      var stackInfo = {\n        stackResultDimension: data.getCalculationInfo('stackResultDimension'),\n        stackedOverDimension: data.getCalculationInfo('stackedOverDimension'),\n        stackedDimension: data.getCalculationInfo('stackedDimension'),\n        stackedByDimension: data.getCalculationInfo('stackedByDimension'),\n        isStackedByIndex: data.getCalculationInfo('isStackedByIndex'),\n        data: data,\n        seriesModel: seriesModel\n      };\n\n      if (!stackInfo.stackedDimension || !(stackInfo.isStackedByIndex || stackInfo.stackedByDimension)) {\n        return;\n      }\n\n      stackInfoList.length && data.setCalculationInfo('stackedOnSeries', stackInfoList[stackInfoList.length - 1].seriesModel);\n      stackInfoList.push(stackInfo);\n    }\n  });\n  stackInfoMap.each(calculateStack);\n}\n\nfunction calculateStack(stackInfoList) {\n  each(stackInfoList, function (targetStackInfo, idxInStack) {\n    var resultVal = [];\n    var resultNaN = [NaN, NaN];\n    var dims = [targetStackInfo.stackResultDimension, targetStackInfo.stackedOverDimension];\n    var targetData = targetStackInfo.data;\n    var isStackedByIndex = targetStackInfo.isStackedByIndex;\n    var newData = targetData.map(dims, function (v0, v1, dataIndex) {\n      var sum = targetData.get(targetStackInfo.stackedDimension, dataIndex);\n\n      if (isNaN(sum)) {\n        return resultNaN;\n      }\n\n      var byValue;\n      var stackedDataRawIndex;\n\n      if (isStackedByIndex) {\n        stackedDataRawIndex = targetData.getRawIndex(dataIndex);\n      } else {\n        byValue = targetData.get(targetStackInfo.stackedByDimension, dataIndex);\n      }\n\n      var stackedOver = NaN;\n\n      for (var j = idxInStack - 1; j >= 0; j--) {\n        var stackInfo = stackInfoList[j];\n\n        if (!isStackedByIndex) {\n          stackedDataRawIndex = stackInfo.data.rawIndexOf(stackInfo.stackedByDimension, byValue);\n        }\n\n        if (stackedDataRawIndex >= 0) {\n          var val = stackInfo.data.getByRawIndex(stackInfo.stackResultDimension, stackedDataRawIndex);\n\n          if (sum >= 0 && val > 0 || sum <= 0 && val < 0) {\n            sum += val;\n            stackedOver = val;\n            break;\n          }\n        }\n      }\n\n      resultVal[0] = sum;\n      resultVal[1] = stackedOver;\n      return resultVal;\n    });\n    targetData.hostModel.setData(newData);\n    targetStackInfo.data = newData;\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isTypedArray, clone, createHashMap, isArray, isObject, isArrayLike, hasOwn, assert, each, map, isNumber, isString } from 'zrender/lib/core/util';\nimport { SOURCE_FORMAT_ORIGINAL, SERIES_LAYOUT_BY_COLUMN, SOURCE_FORMAT_UNKNOWN, SOURCE_FORMAT_KEYED_COLUMNS, SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ARRAY_ROWS, SOURCE_FORMAT_OBJECT_ROWS, SERIES_LAYOUT_BY_ROW } from '../util/types';\nimport { getDataItemValue } from '../util/model';\n;\n\nvar SourceImpl = function () {\n  function SourceImpl(fields) {\n    this.data = fields.data || (fields.sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS ? {} : []);\n    this.sourceFormat = fields.sourceFormat || SOURCE_FORMAT_UNKNOWN;\n    this.seriesLayoutBy = fields.seriesLayoutBy || SERIES_LAYOUT_BY_COLUMN;\n    this.startIndex = fields.startIndex || 0;\n    this.dimensionsDefine = fields.dimensionsDefine;\n    this.dimensionsDetectedCount = fields.dimensionsDetectedCount;\n    this.encodeDefine = fields.encodeDefine;\n    this.metaRawOption = fields.metaRawOption;\n  }\n\n  return SourceImpl;\n}();\n\nexport function isSourceInstance(val) {\n  return val instanceof SourceImpl;\n}\nexport function createSource(sourceData, thisMetaRawOption, sourceFormat, encodeDefine) {\n  sourceFormat = sourceFormat || detectSourceFormat(sourceData);\n  var seriesLayoutBy = thisMetaRawOption.seriesLayoutBy;\n  var determined = determineSourceDimensions(sourceData, sourceFormat, seriesLayoutBy, thisMetaRawOption.sourceHeader, thisMetaRawOption.dimensions);\n  var source = new SourceImpl({\n    data: sourceData,\n    sourceFormat: sourceFormat,\n    seriesLayoutBy: seriesLayoutBy,\n    dimensionsDefine: determined.dimensionsDefine,\n    startIndex: determined.startIndex,\n    dimensionsDetectedCount: determined.dimensionsDetectedCount,\n    encodeDefine: makeEncodeDefine(encodeDefine),\n    metaRawOption: clone(thisMetaRawOption)\n  });\n  return source;\n}\nexport function createSourceFromSeriesDataOption(data) {\n  return new SourceImpl({\n    data: data,\n    sourceFormat: isTypedArray(data) ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL\n  });\n}\nexport function cloneSourceShallow(source) {\n  return new SourceImpl({\n    data: source.data,\n    sourceFormat: source.sourceFormat,\n    seriesLayoutBy: source.seriesLayoutBy,\n    dimensionsDefine: clone(source.dimensionsDefine),\n    startIndex: source.startIndex,\n    dimensionsDetectedCount: source.dimensionsDetectedCount,\n    encodeDefine: makeEncodeDefine(source.encodeDefine)\n  });\n}\n\nfunction makeEncodeDefine(encodeDefine) {\n  return encodeDefine ? createHashMap(encodeDefine) : null;\n}\n\nexport function detectSourceFormat(data) {\n  var sourceFormat = SOURCE_FORMAT_UNKNOWN;\n\n  if (isTypedArray(data)) {\n    sourceFormat = SOURCE_FORMAT_TYPED_ARRAY;\n  } else if (isArray(data)) {\n    if (data.length === 0) {\n      sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\n    }\n\n    for (var i = 0, len = data.length; i < len; i++) {\n      var item = data[i];\n\n      if (item == null) {\n        continue;\n      } else if (isArray(item)) {\n        sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\n        break;\n      } else if (isObject(item)) {\n        sourceFormat = SOURCE_FORMAT_OBJECT_ROWS;\n        break;\n      }\n    }\n  } else if (isObject(data)) {\n    for (var key in data) {\n      if (hasOwn(data, key) && isArrayLike(data[key])) {\n        sourceFormat = SOURCE_FORMAT_KEYED_COLUMNS;\n        break;\n      }\n    }\n  }\n\n  return sourceFormat;\n}\n\nfunction determineSourceDimensions(data, sourceFormat, seriesLayoutBy, sourceHeader, dimensionsDefine) {\n  var dimensionsDetectedCount;\n  var startIndex;\n\n  if (!data) {\n    return {\n      dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\n      startIndex: startIndex,\n      dimensionsDetectedCount: dimensionsDetectedCount\n    };\n  }\n\n  if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n    var dataArrayRows = data;\n\n    if (sourceHeader === 'auto' || sourceHeader == null) {\n      arrayRowsTravelFirst(function (val) {\n        if (val != null && val !== '-') {\n          if (isString(val)) {\n            startIndex == null && (startIndex = 1);\n          } else {\n            startIndex = 0;\n          }\n        }\n      }, seriesLayoutBy, dataArrayRows, 10);\n    } else {\n      startIndex = isNumber(sourceHeader) ? sourceHeader : sourceHeader ? 1 : 0;\n    }\n\n    if (!dimensionsDefine && startIndex === 1) {\n      dimensionsDefine = [];\n      arrayRowsTravelFirst(function (val, index) {\n        dimensionsDefine[index] = val != null ? val + '' : '';\n      }, seriesLayoutBy, dataArrayRows, Infinity);\n    }\n\n    dimensionsDetectedCount = dimensionsDefine ? dimensionsDefine.length : seriesLayoutBy === SERIES_LAYOUT_BY_ROW ? dataArrayRows.length : dataArrayRows[0] ? dataArrayRows[0].length : null;\n  } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n    if (!dimensionsDefine) {\n      dimensionsDefine = objectRowsCollectDimensions(data);\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n    if (!dimensionsDefine) {\n      dimensionsDefine = [];\n      each(data, function (colArr, key) {\n        dimensionsDefine.push(key);\n      });\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n    var value0 = getDataItemValue(data[0]);\n    dimensionsDetectedCount = isArray(value0) && value0.length || 1;\n  } else if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!!dimensionsDefine, 'dimensions must be given if data is TypedArray.');\n    }\n  }\n\n  return {\n    startIndex: startIndex,\n    dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\n    dimensionsDetectedCount: dimensionsDetectedCount\n  };\n}\n\nfunction objectRowsCollectDimensions(data) {\n  var firstIndex = 0;\n  var obj;\n\n  while (firstIndex < data.length && !(obj = data[firstIndex++])) {}\n\n  if (obj) {\n    var dimensions_1 = [];\n    each(obj, function (value, key) {\n      dimensions_1.push(key);\n    });\n    return dimensions_1;\n  }\n}\n\nfunction normalizeDimensionsOption(dimensionsDefine) {\n  if (!dimensionsDefine) {\n    return;\n  }\n\n  var nameMap = createHashMap();\n  return map(dimensionsDefine, function (rawItem, index) {\n    rawItem = isObject(rawItem) ? rawItem : {\n      name: rawItem\n    };\n    var item = {\n      name: rawItem.name,\n      displayName: rawItem.displayName,\n      type: rawItem.type\n    };\n\n    if (item.name == null) {\n      return item;\n    }\n\n    item.name += '';\n\n    if (item.displayName == null) {\n      item.displayName = item.name;\n    }\n\n    var exist = nameMap.get(item.name);\n\n    if (!exist) {\n      nameMap.set(item.name, {\n        count: 1\n      });\n    } else {\n      item.name += '-' + exist.count++;\n    }\n\n    return item;\n  });\n}\n\nfunction arrayRowsTravelFirst(cb, seriesLayoutBy, data, maxLoop) {\n  if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\n    for (var i = 0; i < data.length && i < maxLoop; i++) {\n      cb(data[i] ? data[i][0] : null, i);\n    }\n  } else {\n    var value0 = data[0] || [];\n\n    for (var i = 0; i < value0.length && i < maxLoop; i++) {\n      cb(value0[i], i);\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar _a, _b, _c;\n\nimport { isTypedArray, extend, assert, each, isObject, bind } from 'zrender/lib/core/util';\nimport { getDataItemValue } from '../../util/model';\nimport { createSourceFromSeriesDataOption, isSourceInstance } from '../Source';\nimport { SOURCE_FORMAT_ORIGINAL, SOURCE_FORMAT_OBJECT_ROWS, SOURCE_FORMAT_KEYED_COLUMNS, SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ARRAY_ROWS, SERIES_LAYOUT_BY_COLUMN, SERIES_LAYOUT_BY_ROW } from '../../util/types';\nvar providerMethods;\nvar mountMethods;\n\nvar DefaultDataProvider = function () {\n  function DefaultDataProvider(sourceParam, dimSize) {\n    var source = !isSourceInstance(sourceParam) ? createSourceFromSeriesDataOption(sourceParam) : sourceParam;\n    this._source = source;\n    var data = this._data = source.data;\n\n    if (source.sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (dimSize == null) {\n          throw new Error('Typed array data must specify dimension size');\n        }\n      }\n\n      this._offset = 0;\n      this._dimSize = dimSize;\n      this._data = data;\n    }\n\n    mountMethods(this, data, source);\n  }\n\n  DefaultDataProvider.prototype.getSource = function () {\n    return this._source;\n  };\n\n  DefaultDataProvider.prototype.count = function () {\n    return 0;\n  };\n\n  DefaultDataProvider.prototype.getItem = function (idx, out) {\n    return;\n  };\n\n  DefaultDataProvider.prototype.appendData = function (newData) {};\n\n  DefaultDataProvider.prototype.clean = function () {};\n\n  DefaultDataProvider.protoInitialize = function () {\n    var proto = DefaultDataProvider.prototype;\n    proto.pure = false;\n    proto.persistent = true;\n  }();\n\n  DefaultDataProvider.internalField = function () {\n    var _a;\n\n    mountMethods = function (provider, data, source) {\n      var sourceFormat = source.sourceFormat;\n      var seriesLayoutBy = source.seriesLayoutBy;\n      var startIndex = source.startIndex;\n      var dimsDef = source.dimensionsDefine;\n      var methods = providerMethods[getMethodMapKey(sourceFormat, seriesLayoutBy)];\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(methods, 'Invalide sourceFormat: ' + sourceFormat);\n      }\n\n      extend(provider, methods);\n\n      if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n        provider.getItem = getItemForTypedArray;\n        provider.count = countForTypedArray;\n        provider.fillStorage = fillStorageForTypedArray;\n      } else {\n        var rawItemGetter = getRawSourceItemGetter(sourceFormat, seriesLayoutBy);\n        provider.getItem = bind(rawItemGetter, null, data, startIndex, dimsDef);\n        var rawCounter = getRawSourceDataCounter(sourceFormat, seriesLayoutBy);\n        provider.count = bind(rawCounter, null, data, startIndex, dimsDef);\n      }\n    };\n\n    var getItemForTypedArray = function (idx, out) {\n      idx = idx - this._offset;\n      out = out || [];\n      var data = this._data;\n      var dimSize = this._dimSize;\n      var offset = dimSize * idx;\n\n      for (var i = 0; i < dimSize; i++) {\n        out[i] = data[offset + i];\n      }\n\n      return out;\n    };\n\n    var fillStorageForTypedArray = function (start, end, storage, extent) {\n      var data = this._data;\n      var dimSize = this._dimSize;\n\n      for (var dim = 0; dim < dimSize; dim++) {\n        var dimExtent = extent[dim];\n        var min = dimExtent[0] == null ? Infinity : dimExtent[0];\n        var max = dimExtent[1] == null ? -Infinity : dimExtent[1];\n        var count = end - start;\n        var arr = storage[dim];\n\n        for (var i = 0; i < count; i++) {\n          var val = data[i * dimSize + dim];\n          arr[start + i] = val;\n          val < min && (min = val);\n          val > max && (max = val);\n        }\n\n        dimExtent[0] = min;\n        dimExtent[1] = max;\n      }\n    };\n\n    var countForTypedArray = function () {\n      return this._data ? this._data.length / this._dimSize : 0;\n    };\n\n    providerMethods = (_a = {}, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = {\n      pure: true,\n      appendData: appendDataSimply\n    }, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = {\n      pure: true,\n      appendData: function () {\n        throw new Error('Do not support appendData when set seriesLayoutBy: \"row\".');\n      }\n    }, _a[SOURCE_FORMAT_OBJECT_ROWS] = {\n      pure: true,\n      appendData: appendDataSimply\n    }, _a[SOURCE_FORMAT_KEYED_COLUMNS] = {\n      pure: true,\n      appendData: function (newData) {\n        var data = this._data;\n        each(newData, function (newCol, key) {\n          var oldCol = data[key] || (data[key] = []);\n\n          for (var i = 0; i < (newCol || []).length; i++) {\n            oldCol.push(newCol[i]);\n          }\n        });\n      }\n    }, _a[SOURCE_FORMAT_ORIGINAL] = {\n      appendData: appendDataSimply\n    }, _a[SOURCE_FORMAT_TYPED_ARRAY] = {\n      persistent: false,\n      pure: true,\n      appendData: function (newData) {\n        if (process.env.NODE_ENV !== 'production') {\n          assert(isTypedArray(newData), 'Added data must be TypedArray if data in initialization is TypedArray');\n        }\n\n        this._data = newData;\n      },\n      clean: function () {\n        this._offset += this.count();\n        this._data = null;\n      }\n    }, _a);\n\n    function appendDataSimply(newData) {\n      for (var i = 0; i < newData.length; i++) {\n        this._data.push(newData[i]);\n      }\n    }\n  }();\n\n  return DefaultDataProvider;\n}();\n\nexport { DefaultDataProvider };\n\nvar getItemSimply = function (rawData, startIndex, dimsDef, idx) {\n  return rawData[idx];\n};\n\nvar rawSourceItemGetterMap = (_a = {}, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef, idx) {\n  return rawData[idx + startIndex];\n}, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef, idx) {\n  idx += startIndex;\n  var item = [];\n  var data = rawData;\n\n  for (var i = 0; i < data.length; i++) {\n    var row = data[i];\n    item.push(row ? row[idx] : null);\n  }\n\n  return item;\n}, _a[SOURCE_FORMAT_OBJECT_ROWS] = getItemSimply, _a[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef, idx) {\n  var item = [];\n\n  for (var i = 0; i < dimsDef.length; i++) {\n    var dimName = dimsDef[i].name;\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (dimName == null) {\n        throw new Error();\n      }\n    }\n\n    var col = rawData[dimName];\n    item.push(col ? col[idx] : null);\n  }\n\n  return item;\n}, _a[SOURCE_FORMAT_ORIGINAL] = getItemSimply, _a);\nexport function getRawSourceItemGetter(sourceFormat, seriesLayoutBy) {\n  var method = rawSourceItemGetterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\n\n  if (process.env.NODE_ENV !== 'production') {\n    assert(method, 'Do not suppport get item on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\n  }\n\n  return method;\n}\n\nvar countSimply = function (rawData, startIndex, dimsDef) {\n  return rawData.length;\n};\n\nvar rawSourceDataCounterMap = (_b = {}, _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef) {\n  return Math.max(0, rawData.length - startIndex);\n}, _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef) {\n  var row = rawData[0];\n  return row ? Math.max(0, row.length - startIndex) : 0;\n}, _b[SOURCE_FORMAT_OBJECT_ROWS] = countSimply, _b[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef) {\n  var dimName = dimsDef[0].name;\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (dimName == null) {\n      throw new Error();\n    }\n  }\n\n  var col = rawData[dimName];\n  return col ? col.length : 0;\n}, _b[SOURCE_FORMAT_ORIGINAL] = countSimply, _b);\nexport function getRawSourceDataCounter(sourceFormat, seriesLayoutBy) {\n  var method = rawSourceDataCounterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\n\n  if (process.env.NODE_ENV !== 'production') {\n    assert(method, 'Do not suppport count on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\n  }\n\n  return method;\n}\n\nvar getRawValueSimply = function (dataItem, dimIndex, dimName) {\n  return dimIndex != null ? dataItem[dimIndex] : dataItem;\n};\n\nvar rawSourceValueGetterMap = (_c = {}, _c[SOURCE_FORMAT_ARRAY_ROWS] = getRawValueSimply, _c[SOURCE_FORMAT_OBJECT_ROWS] = function (dataItem, dimIndex, dimName) {\n  return dimIndex != null ? dataItem[dimName] : dataItem;\n}, _c[SOURCE_FORMAT_KEYED_COLUMNS] = getRawValueSimply, _c[SOURCE_FORMAT_ORIGINAL] = function (dataItem, dimIndex, dimName) {\n  var value = getDataItemValue(dataItem);\n  return dimIndex == null || !(value instanceof Array) ? value : value[dimIndex];\n}, _c[SOURCE_FORMAT_TYPED_ARRAY] = getRawValueSimply, _c);\nexport function getRawSourceValueGetter(sourceFormat) {\n  var method = rawSourceValueGetterMap[sourceFormat];\n\n  if (process.env.NODE_ENV !== 'production') {\n    assert(method, 'Do not suppport get value on \"' + sourceFormat + '\".');\n  }\n\n  return method;\n}\n\nfunction getMethodMapKey(sourceFormat, seriesLayoutBy) {\n  return sourceFormat === SOURCE_FORMAT_ARRAY_ROWS ? sourceFormat + '_' + seriesLayoutBy : sourceFormat;\n}\n\nexport function retrieveRawValue(data, dataIndex, dim) {\n  if (!data) {\n    return;\n  }\n\n  var dataItem = data.getRawDataItem(dataIndex);\n\n  if (dataItem == null) {\n    return;\n  }\n\n  var sourceFormat = data.getProvider().getSource().sourceFormat;\n  var dimName;\n  var dimIndex;\n  var dimInfo = data.getDimensionInfo(dim);\n\n  if (dimInfo) {\n    dimName = dimInfo.name;\n    dimIndex = dimInfo.index;\n  }\n\n  return getRawSourceValueGetter(sourceFormat)(dataItem, dimIndex, dimName);\n}\nexport function retrieveRawAttr(data, dataIndex, attr) {\n  if (!data) {\n    return;\n  }\n\n  var sourceFormat = data.getProvider().getSource().sourceFormat;\n\n  if (sourceFormat !== SOURCE_FORMAT_ORIGINAL && sourceFormat !== SOURCE_FORMAT_OBJECT_ROWS) {\n    return;\n  }\n\n  var dataItem = data.getRawDataItem(dataIndex);\n\n  if (sourceFormat === SOURCE_FORMAT_ORIGINAL && !isObject(dataItem)) {\n    dataItem = null;\n  }\n\n  if (dataItem) {\n    return dataItem[attr];\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { retrieveRawValue } from '../../data/helper/dataProvider';\nimport { formatTpl } from '../../util/format';\nimport { makePrintable } from '../../util/log';\nvar DIMENSION_LABEL_REG = /\\{@(.+?)\\}/g;\n\nvar DataFormatMixin = function () {\n  function DataFormatMixin() {}\n\n  DataFormatMixin.prototype.getDataParams = function (dataIndex, dataType) {\n    var data = this.getData(dataType);\n    var rawValue = this.getRawValue(dataIndex, dataType);\n    var rawDataIndex = data.getRawIndex(dataIndex);\n    var name = data.getName(dataIndex);\n    var itemOpt = data.getRawDataItem(dataIndex);\n    var style = data.getItemVisual(dataIndex, 'style');\n    var color = style && style[data.getItemVisual(dataIndex, 'drawType') || 'fill'];\n    var borderColor = style && style.stroke;\n    var mainType = this.mainType;\n    var isSeries = mainType === 'series';\n    var userOutput = data.userOutput;\n    return {\n      componentType: mainType,\n      componentSubType: this.subType,\n      componentIndex: this.componentIndex,\n      seriesType: isSeries ? this.subType : null,\n      seriesIndex: this.seriesIndex,\n      seriesId: isSeries ? this.id : null,\n      seriesName: isSeries ? this.name : null,\n      name: name,\n      dataIndex: rawDataIndex,\n      data: itemOpt,\n      dataType: dataType,\n      value: rawValue,\n      color: color,\n      borderColor: borderColor,\n      dimensionNames: userOutput ? userOutput.dimensionNames : null,\n      encode: userOutput ? userOutput.encode : null,\n      $vars: ['seriesName', 'name', 'value']\n    };\n  };\n\n  DataFormatMixin.prototype.getFormattedLabel = function (dataIndex, status, dataType, labelDimIndex, formatter, extendParams) {\n    status = status || 'normal';\n    var data = this.getData(dataType);\n    var params = this.getDataParams(dataIndex, dataType);\n\n    if (extendParams) {\n      params.value = extendParams.interpolatedValue;\n    }\n\n    if (labelDimIndex != null && zrUtil.isArray(params.value)) {\n      params.value = params.value[labelDimIndex];\n    }\n\n    if (!formatter) {\n      var itemModel = data.getItemModel(dataIndex);\n      formatter = itemModel.get(status === 'normal' ? ['label', 'formatter'] : [status, 'label', 'formatter']);\n    }\n\n    if (typeof formatter === 'function') {\n      params.status = status;\n      params.dimensionIndex = labelDimIndex;\n      return formatter(params);\n    } else if (typeof formatter === 'string') {\n      var str = formatTpl(formatter, params);\n      return str.replace(DIMENSION_LABEL_REG, function (origin, dimStr) {\n        var len = dimStr.length;\n        var dimLoose = dimStr.charAt(0) === '[' && dimStr.charAt(len - 1) === ']' ? +dimStr.slice(1, len - 1) : dimStr;\n        var val = retrieveRawValue(data, dataIndex, dimLoose);\n\n        if (extendParams && zrUtil.isArray(extendParams.interpolatedValue)) {\n          var dimInfo = data.getDimensionInfo(dimLoose);\n\n          if (dimInfo) {\n            val = extendParams.interpolatedValue[dimInfo.index];\n          }\n        }\n\n        return val != null ? val + '' : '';\n      });\n    }\n  };\n\n  DataFormatMixin.prototype.getRawValue = function (idx, dataType) {\n    return retrieveRawValue(this.getData(dataType), idx);\n  };\n\n  DataFormatMixin.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    return;\n  };\n\n  return DataFormatMixin;\n}();\n\nexport { DataFormatMixin };\n;\nexport function normalizeTooltipFormatResult(result) {\n  var markupText;\n  var markupFragment;\n\n  if (zrUtil.isObject(result)) {\n    if (result.type) {\n      markupFragment = result;\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn('The return type of `formatTooltip` is not supported: ' + makePrintable(result));\n      }\n    }\n  } else {\n    markupText = result;\n  }\n\n  return {\n    markupText: markupText,\n    markupFragment: markupFragment\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { assert, isArray } from 'zrender/lib/core/util';\n;\nexport function createTask(define) {\n  return new Task(define);\n}\n\nvar Task = function () {\n  function Task(define) {\n    define = define || {};\n    this._reset = define.reset;\n    this._plan = define.plan;\n    this._count = define.count;\n    this._onDirty = define.onDirty;\n    this._dirty = true;\n  }\n\n  Task.prototype.perform = function (performArgs) {\n    var upTask = this._upstream;\n    var skip = performArgs && performArgs.skip;\n\n    if (this._dirty && upTask) {\n      var context = this.context;\n      context.data = context.outputData = upTask.context.outputData;\n    }\n\n    if (this.__pipeline) {\n      this.__pipeline.currentTask = this;\n    }\n\n    var planResult;\n\n    if (this._plan && !skip) {\n      planResult = this._plan(this.context);\n    }\n\n    var lastModBy = normalizeModBy(this._modBy);\n    var lastModDataCount = this._modDataCount || 0;\n    var modBy = normalizeModBy(performArgs && performArgs.modBy);\n    var modDataCount = performArgs && performArgs.modDataCount || 0;\n\n    if (lastModBy !== modBy || lastModDataCount !== modDataCount) {\n      planResult = 'reset';\n    }\n\n    function normalizeModBy(val) {\n      !(val >= 1) && (val = 1);\n      return val;\n    }\n\n    var forceFirstProgress;\n\n    if (this._dirty || planResult === 'reset') {\n      this._dirty = false;\n      forceFirstProgress = this._doReset(skip);\n    }\n\n    this._modBy = modBy;\n    this._modDataCount = modDataCount;\n    var step = performArgs && performArgs.step;\n\n    if (upTask) {\n      if (process.env.NODE_ENV !== 'production') {\n        assert(upTask._outputDueEnd != null);\n      }\n\n      this._dueEnd = upTask._outputDueEnd;\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        assert(!this._progress || this._count);\n      }\n\n      this._dueEnd = this._count ? this._count(this.context) : Infinity;\n    }\n\n    if (this._progress) {\n      var start = this._dueIndex;\n      var end = Math.min(step != null ? this._dueIndex + step : Infinity, this._dueEnd);\n\n      if (!skip && (forceFirstProgress || start < end)) {\n        var progress = this._progress;\n\n        if (isArray(progress)) {\n          for (var i = 0; i < progress.length; i++) {\n            this._doProgress(progress[i], start, end, modBy, modDataCount);\n          }\n        } else {\n          this._doProgress(progress, start, end, modBy, modDataCount);\n        }\n      }\n\n      this._dueIndex = end;\n      var outputDueEnd = this._settedOutputEnd != null ? this._settedOutputEnd : end;\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(outputDueEnd >= this._outputDueEnd);\n      }\n\n      this._outputDueEnd = outputDueEnd;\n    } else {\n      this._dueIndex = this._outputDueEnd = this._settedOutputEnd != null ? this._settedOutputEnd : this._dueEnd;\n    }\n\n    return this.unfinished();\n  };\n\n  Task.prototype.dirty = function () {\n    this._dirty = true;\n    this._onDirty && this._onDirty(this.context);\n  };\n\n  Task.prototype._doProgress = function (progress, start, end, modBy, modDataCount) {\n    iterator.reset(start, end, modBy, modDataCount);\n    this._callingProgress = progress;\n\n    this._callingProgress({\n      start: start,\n      end: end,\n      count: end - start,\n      next: iterator.next\n    }, this.context);\n  };\n\n  Task.prototype._doReset = function (skip) {\n    this._dueIndex = this._outputDueEnd = this._dueEnd = 0;\n    this._settedOutputEnd = null;\n    var progress;\n    var forceFirstProgress;\n\n    if (!skip && this._reset) {\n      progress = this._reset(this.context);\n\n      if (progress && progress.progress) {\n        forceFirstProgress = progress.forceFirstProgress;\n        progress = progress.progress;\n      }\n\n      if (isArray(progress) && !progress.length) {\n        progress = null;\n      }\n    }\n\n    this._progress = progress;\n    this._modBy = this._modDataCount = null;\n    var downstream = this._downstream;\n    downstream && downstream.dirty();\n    return forceFirstProgress;\n  };\n\n  Task.prototype.unfinished = function () {\n    return this._progress && this._dueIndex < this._dueEnd;\n  };\n\n  Task.prototype.pipe = function (downTask) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(downTask && !downTask._disposed && downTask !== this);\n    }\n\n    if (this._downstream !== downTask || this._dirty) {\n      this._downstream = downTask;\n      downTask._upstream = this;\n      downTask.dirty();\n    }\n  };\n\n  Task.prototype.dispose = function () {\n    if (this._disposed) {\n      return;\n    }\n\n    this._upstream && (this._upstream._downstream = null);\n    this._downstream && (this._downstream._upstream = null);\n    this._dirty = false;\n    this._disposed = true;\n  };\n\n  Task.prototype.getUpstream = function () {\n    return this._upstream;\n  };\n\n  Task.prototype.getDownstream = function () {\n    return this._downstream;\n  };\n\n  Task.prototype.setOutputEnd = function (end) {\n    this._outputDueEnd = this._settedOutputEnd = end;\n  };\n\n  return Task;\n}();\n\nexport { Task };\n\nvar iterator = function () {\n  var end;\n  var current;\n  var modBy;\n  var modDataCount;\n  var winCount;\n  var it = {\n    reset: function (s, e, sStep, sCount) {\n      current = s;\n      end = e;\n      modBy = sStep;\n      modDataCount = sCount;\n      winCount = Math.ceil(modDataCount / modBy);\n      it.next = modBy > 1 && modDataCount > 0 ? modNext : sequentialNext;\n    }\n  };\n  return it;\n\n  function sequentialNext() {\n    return current < end ? current++ : null;\n  }\n\n  function modNext() {\n    var dataIndex = current % winCount * modBy + Math.ceil(current / winCount);\n    var result = current >= end ? null : dataIndex < modDataCount ? dataIndex : current;\n    current++;\n    return result;\n  }\n}();","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parseDate, numericToNumber } from '../../util/number';\nimport { createHashMap, trim, hasOwn } from 'zrender/lib/core/util';\nimport { throwError } from '../../util/log';\nexport function parseDataValue(value, opt) {\n  var dimType = opt && opt.type;\n\n  if (dimType === 'ordinal') {\n    var ordinalMeta = opt && opt.ordinalMeta;\n    return ordinalMeta ? ordinalMeta.parseAndCollect(value) : value;\n  }\n\n  if (dimType === 'time' && typeof value !== 'number' && value != null && value !== '-') {\n    value = +parseDate(value);\n  }\n\n  return value == null || value === '' ? NaN : +value;\n}\n;\nvar valueParserMap = createHashMap({\n  'number': function (val) {\n    return parseFloat(val);\n  },\n  'time': function (val) {\n    return +parseDate(val);\n  },\n  'trim': function (val) {\n    return typeof val === 'string' ? trim(val) : val;\n  }\n});\nexport function getRawValueParser(type) {\n  return valueParserMap.get(type);\n}\nvar ORDER_COMPARISON_OP_MAP = {\n  lt: function (lval, rval) {\n    return lval < rval;\n  },\n  lte: function (lval, rval) {\n    return lval <= rval;\n  },\n  gt: function (lval, rval) {\n    return lval > rval;\n  },\n  gte: function (lval, rval) {\n    return lval >= rval;\n  }\n};\n\nvar FilterOrderComparator = function () {\n  function FilterOrderComparator(op, rval) {\n    if (typeof rval !== 'number') {\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'rvalue of \"<\", \">\", \"<=\", \">=\" can only be number in filter.';\n      }\n\n      throwError(errMsg);\n    }\n\n    this._opFn = ORDER_COMPARISON_OP_MAP[op];\n    this._rvalFloat = numericToNumber(rval);\n  }\n\n  FilterOrderComparator.prototype.evaluate = function (lval) {\n    return typeof lval === 'number' ? this._opFn(lval, this._rvalFloat) : this._opFn(numericToNumber(lval), this._rvalFloat);\n  };\n\n  return FilterOrderComparator;\n}();\n\nvar SortOrderComparator = function () {\n  function SortOrderComparator(order, incomparable) {\n    var isDesc = order === 'desc';\n    this._resultLT = isDesc ? 1 : -1;\n\n    if (incomparable == null) {\n      incomparable = isDesc ? 'min' : 'max';\n    }\n\n    this._incomparable = incomparable === 'min' ? -Infinity : Infinity;\n  }\n\n  SortOrderComparator.prototype.evaluate = function (lval, rval) {\n    var lvalTypeof = typeof lval;\n    var rvalTypeof = typeof rval;\n    var lvalFloat = lvalTypeof === 'number' ? lval : numericToNumber(lval);\n    var rvalFloat = rvalTypeof === 'number' ? rval : numericToNumber(rval);\n    var lvalNotNumeric = isNaN(lvalFloat);\n    var rvalNotNumeric = isNaN(rvalFloat);\n\n    if (lvalNotNumeric) {\n      lvalFloat = this._incomparable;\n    }\n\n    if (rvalNotNumeric) {\n      rvalFloat = this._incomparable;\n    }\n\n    if (lvalNotNumeric && rvalNotNumeric) {\n      var lvalIsStr = lvalTypeof === 'string';\n      var rvalIsStr = rvalTypeof === 'string';\n\n      if (lvalIsStr) {\n        lvalFloat = rvalIsStr ? lval : 0;\n      }\n\n      if (rvalIsStr) {\n        rvalFloat = lvalIsStr ? rval : 0;\n      }\n    }\n\n    return lvalFloat < rvalFloat ? this._resultLT : lvalFloat > rvalFloat ? -this._resultLT : 0;\n  };\n\n  return SortOrderComparator;\n}();\n\nexport { SortOrderComparator };\n\nvar FilterEqualityComparator = function () {\n  function FilterEqualityComparator(isEq, rval) {\n    this._rval = rval;\n    this._isEQ = isEq;\n    this._rvalTypeof = typeof rval;\n    this._rvalFloat = numericToNumber(rval);\n  }\n\n  FilterEqualityComparator.prototype.evaluate = function (lval) {\n    var eqResult = lval === this._rval;\n\n    if (!eqResult) {\n      var lvalTypeof = typeof lval;\n\n      if (lvalTypeof !== this._rvalTypeof && (lvalTypeof === 'number' || this._rvalTypeof === 'number')) {\n        eqResult = numericToNumber(lval) === this._rvalFloat;\n      }\n    }\n\n    return this._isEQ ? eqResult : !eqResult;\n  };\n\n  return FilterEqualityComparator;\n}();\n\nexport function createFilterComparator(op, rval) {\n  return op === 'eq' || op === 'ne' ? new FilterEqualityComparator(op === 'eq', rval) : hasOwn(ORDER_COMPARISON_OP_MAP, op) ? new FilterOrderComparator(op, rval) : null;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { SERIES_LAYOUT_BY_COLUMN, SOURCE_FORMAT_OBJECT_ROWS, SOURCE_FORMAT_ARRAY_ROWS } from '../../util/types';\nimport { normalizeToArray } from '../../util/model';\nimport { createHashMap, bind, each, hasOwn, map, clone, isObject, extend } from 'zrender/lib/core/util';\nimport { getRawSourceItemGetter, getRawSourceDataCounter, getRawSourceValueGetter } from './dataProvider';\nimport { parseDataValue } from './dataValueHelper';\nimport { consoleLog, makePrintable, throwError } from '../../util/log';\nimport { createSource, detectSourceFormat } from '../Source';\n\nvar ExternalSource = function () {\n  function ExternalSource() {}\n\n  ExternalSource.prototype.getRawData = function () {\n    throw new Error('not supported');\n  };\n\n  ExternalSource.prototype.getRawDataItem = function (dataIndex) {\n    throw new Error('not supported');\n  };\n\n  ExternalSource.prototype.cloneRawData = function () {\n    return;\n  };\n\n  ExternalSource.prototype.getDimensionInfo = function (dim) {\n    return;\n  };\n\n  ExternalSource.prototype.cloneAllDimensionInfo = function () {\n    return;\n  };\n\n  ExternalSource.prototype.count = function () {\n    return;\n  };\n\n  ExternalSource.prototype.retrieveValue = function (dataIndex, dimIndex) {\n    return;\n  };\n\n  ExternalSource.prototype.retrieveValueFromItem = function (dataItem, dimIndex) {\n    return;\n  };\n\n  ExternalSource.prototype.convertValue = function (rawVal, dimInfo) {\n    return parseDataValue(rawVal, dimInfo);\n  };\n\n  return ExternalSource;\n}();\n\nexport { ExternalSource };\n\nfunction createExternalSource(internalSource, externalTransform) {\n  var extSource = new ExternalSource();\n  var data = internalSource.data;\n  var sourceFormat = extSource.sourceFormat = internalSource.sourceFormat;\n  var sourceHeaderCount = internalSource.startIndex;\n  var errMsg = '';\n\n  if (internalSource.seriesLayoutBy !== SERIES_LAYOUT_BY_COLUMN) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = '`seriesLayoutBy` of upstream dataset can only be \"column\" in data transform.';\n    }\n\n    throwError(errMsg);\n  }\n\n  var dimensions = [];\n  var dimsByName = {};\n  var dimsDef = internalSource.dimensionsDefine;\n\n  if (dimsDef) {\n    each(dimsDef, function (dimDef, idx) {\n      var name = dimDef.name;\n      var dimDefExt = {\n        index: idx,\n        name: name,\n        displayName: dimDef.displayName\n      };\n      dimensions.push(dimDefExt);\n\n      if (name != null) {\n        var errMsg_1 = '';\n\n        if (hasOwn(dimsByName, name)) {\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg_1 = 'dimension name \"' + name + '\" duplicated.';\n          }\n\n          throwError(errMsg_1);\n        }\n\n        dimsByName[name] = dimDefExt;\n      }\n    });\n  } else {\n    for (var i = 0; i < internalSource.dimensionsDetectedCount || 0; i++) {\n      dimensions.push({\n        index: i\n      });\n    }\n  }\n\n  var rawItemGetter = getRawSourceItemGetter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\n\n  if (externalTransform.__isBuiltIn) {\n    extSource.getRawDataItem = function (dataIndex) {\n      return rawItemGetter(data, sourceHeaderCount, dimensions, dataIndex);\n    };\n\n    extSource.getRawData = bind(getRawData, null, internalSource);\n  }\n\n  extSource.cloneRawData = bind(cloneRawData, null, internalSource);\n  var rawCounter = getRawSourceDataCounter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\n  extSource.count = bind(rawCounter, null, data, sourceHeaderCount, dimensions);\n  var rawValueGetter = getRawSourceValueGetter(sourceFormat);\n\n  extSource.retrieveValue = function (dataIndex, dimIndex) {\n    var rawItem = rawItemGetter(data, sourceHeaderCount, dimensions, dataIndex);\n    return retrieveValueFromItem(rawItem, dimIndex);\n  };\n\n  var retrieveValueFromItem = extSource.retrieveValueFromItem = function (dataItem, dimIndex) {\n    if (dataItem == null) {\n      return;\n    }\n\n    var dimDef = dimensions[dimIndex];\n\n    if (dimDef) {\n      return rawValueGetter(dataItem, dimIndex, dimDef.name);\n    }\n  };\n\n  extSource.getDimensionInfo = bind(getDimensionInfo, null, dimensions, dimsByName);\n  extSource.cloneAllDimensionInfo = bind(cloneAllDimensionInfo, null, dimensions);\n  return extSource;\n}\n\nfunction getRawData(upstream) {\n  var sourceFormat = upstream.sourceFormat;\n\n  if (!isSupportedSourceFormat(sourceFormat)) {\n    var errMsg = '';\n\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = '`getRawData` is not supported in source format ' + sourceFormat;\n    }\n\n    throwError(errMsg);\n  }\n\n  return upstream.data;\n}\n\nfunction cloneRawData(upstream) {\n  var sourceFormat = upstream.sourceFormat;\n  var data = upstream.data;\n\n  if (!isSupportedSourceFormat(sourceFormat)) {\n    var errMsg = '';\n\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = '`cloneRawData` is not supported in source format ' + sourceFormat;\n    }\n\n    throwError(errMsg);\n  }\n\n  if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n    var result = [];\n\n    for (var i = 0, len = data.length; i < len; i++) {\n      result.push(data[i].slice());\n    }\n\n    return result;\n  } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n    var result = [];\n\n    for (var i = 0, len = data.length; i < len; i++) {\n      result.push(extend({}, data[i]));\n    }\n\n    return result;\n  }\n}\n\nfunction getDimensionInfo(dimensions, dimsByName, dim) {\n  if (dim == null) {\n    return;\n  }\n\n  if (typeof dim === 'number' || !isNaN(dim) && !hasOwn(dimsByName, dim)) {\n    return dimensions[dim];\n  } else if (hasOwn(dimsByName, dim)) {\n    return dimsByName[dim];\n  }\n}\n\nfunction cloneAllDimensionInfo(dimensions) {\n  return clone(dimensions);\n}\n\nvar externalTransformMap = createHashMap();\nexport function registerExternalTransform(externalTransform) {\n  externalTransform = clone(externalTransform);\n  var type = externalTransform.type;\n  var errMsg = '';\n\n  if (!type) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'Must have a `type` when `registerTransform`.';\n    }\n\n    throwError(errMsg);\n  }\n\n  var typeParsed = type.split(':');\n\n  if (typeParsed.length !== 2) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'Name must include namespace like \"ns:regression\".';\n    }\n\n    throwError(errMsg);\n  }\n\n  var isBuiltIn = false;\n\n  if (typeParsed[0] === 'echarts') {\n    type = typeParsed[1];\n    isBuiltIn = true;\n  }\n\n  externalTransform.__isBuiltIn = isBuiltIn;\n  externalTransformMap.set(type, externalTransform);\n}\nexport function applyDataTransform(rawTransOption, sourceList, infoForPrint) {\n  var pipedTransOption = normalizeToArray(rawTransOption);\n  var pipeLen = pipedTransOption.length;\n  var errMsg = '';\n\n  if (!pipeLen) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'If `transform` declared, it should at least contain one transform.';\n    }\n\n    throwError(errMsg);\n  }\n\n  for (var i = 0, len = pipeLen; i < len; i++) {\n    var transOption = pipedTransOption[i];\n    sourceList = applySingleDataTransform(transOption, sourceList, infoForPrint, pipeLen === 1 ? null : i);\n\n    if (i !== len - 1) {\n      sourceList.length = Math.max(sourceList.length, 1);\n    }\n  }\n\n  return sourceList;\n}\n\nfunction applySingleDataTransform(transOption, upSourceList, infoForPrint, pipeIndex) {\n  var errMsg = '';\n\n  if (!upSourceList.length) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'Must have at least one upstream dataset.';\n    }\n\n    throwError(errMsg);\n  }\n\n  if (!isObject(transOption)) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'transform declaration must be an object rather than ' + typeof transOption + '.';\n    }\n\n    throwError(errMsg);\n  }\n\n  var transType = transOption.type;\n  var externalTransform = externalTransformMap.get(transType);\n\n  if (!externalTransform) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'Can not find transform on type \"' + transType + '\".';\n    }\n\n    throwError(errMsg);\n  }\n\n  var extUpSourceList = map(upSourceList, function (upSource) {\n    return createExternalSource(upSource, externalTransform);\n  });\n  var resultList = normalizeToArray(externalTransform.transform({\n    upstream: extUpSourceList[0],\n    upstreamList: extUpSourceList,\n    config: clone(transOption.config)\n  }));\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (transOption.print) {\n      var printStrArr = map(resultList, function (extSource) {\n        var pipeIndexStr = pipeIndex != null ? ' === pipe index: ' + pipeIndex : '';\n        return ['=== dataset index: ' + infoForPrint.datasetIndex + pipeIndexStr + ' ===', '- transform result data:', makePrintable(extSource.data), '- transform result dimensions:', makePrintable(extSource.dimensions)].join('\\n');\n      }).join('\\n');\n      consoleLog(printStrArr);\n    }\n  }\n\n  return map(resultList, function (result, resultIndex) {\n    var errMsg = '';\n\n    if (!isObject(result)) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'A transform should not return some empty results.';\n      }\n\n      throwError(errMsg);\n    }\n\n    if (!result.data) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'Transform result data should be not be null or undefined';\n      }\n\n      throwError(errMsg);\n    }\n\n    var sourceFormat = detectSourceFormat(result.data);\n\n    if (!isSupportedSourceFormat(sourceFormat)) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'Transform result data should be array rows or object rows.';\n      }\n\n      throwError(errMsg);\n    }\n\n    var resultMetaRawOption;\n    var firstUpSource = upSourceList[0];\n\n    if (firstUpSource && resultIndex === 0 && !result.dimensions) {\n      var startIndex = firstUpSource.startIndex;\n\n      if (startIndex) {\n        result.data = firstUpSource.data.slice(0, startIndex).concat(result.data);\n      }\n\n      resultMetaRawOption = {\n        seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN,\n        sourceHeader: startIndex,\n        dimensions: firstUpSource.metaRawOption.dimensions\n      };\n    } else {\n      resultMetaRawOption = {\n        seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN,\n        sourceHeader: 0,\n        dimensions: result.dimensions\n      };\n    }\n\n    return createSource(result.data, resultMetaRawOption, null, null);\n  });\n}\n\nfunction isSupportedSourceFormat(sourceFormat) {\n  return sourceFormat === SOURCE_FORMAT_ARRAY_ROWS || sourceFormat === SOURCE_FORMAT_OBJECT_ROWS;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { setAsPrimitive, map, isTypedArray, assert, each, retrieve2 } from 'zrender/lib/core/util';\nimport { createSource, cloneSourceShallow } from '../Source';\nimport { SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ORIGINAL } from '../../util/types';\nimport { querySeriesUpstreamDatasetModel, queryDatasetUpstreamDatasetModels } from './sourceHelper';\nimport { applyDataTransform } from './transform';\n\nvar SourceManager = function () {\n  function SourceManager(sourceHost) {\n    this._sourceList = [];\n    this._upstreamSignList = [];\n    this._versionSignBase = 0;\n    this._sourceHost = sourceHost;\n  }\n\n  SourceManager.prototype.dirty = function () {\n    this._setLocalSource([], []);\n  };\n\n  SourceManager.prototype._setLocalSource = function (sourceList, upstreamSignList) {\n    this._sourceList = sourceList;\n    this._upstreamSignList = upstreamSignList;\n    this._versionSignBase++;\n\n    if (this._versionSignBase > 9e10) {\n      this._versionSignBase = 0;\n    }\n  };\n\n  SourceManager.prototype._getVersionSign = function () {\n    return this._sourceHost.uid + '_' + this._versionSignBase;\n  };\n\n  SourceManager.prototype.prepareSource = function () {\n    if (this._isDirty()) {\n      this._createSource();\n    }\n  };\n\n  SourceManager.prototype._createSource = function () {\n    this._setLocalSource([], []);\n\n    var sourceHost = this._sourceHost;\n\n    var upSourceMgrList = this._getUpstreamSourceManagers();\n\n    var hasUpstream = !!upSourceMgrList.length;\n    var resultSourceList;\n    var upstreamSignList;\n\n    if (isSeries(sourceHost)) {\n      var seriesModel = sourceHost;\n      var data = void 0;\n      var sourceFormat = void 0;\n      var upSource = void 0;\n\n      if (hasUpstream) {\n        var upSourceMgr = upSourceMgrList[0];\n        upSourceMgr.prepareSource();\n        upSource = upSourceMgr.getSource();\n        data = upSource.data;\n        sourceFormat = upSource.sourceFormat;\n        upstreamSignList = [upSourceMgr._getVersionSign()];\n      } else {\n        data = seriesModel.get('data', true);\n        sourceFormat = isTypedArray(data) ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL;\n        upstreamSignList = [];\n      }\n\n      var newMetaRawOption = this._getSourceMetaRawOption();\n\n      var upMetaRawOption = upSource ? upSource.metaRawOption : null;\n      var seriesLayoutBy = retrieve2(newMetaRawOption.seriesLayoutBy, upMetaRawOption ? upMetaRawOption.seriesLayoutBy : null);\n      var sourceHeader = retrieve2(newMetaRawOption.sourceHeader, upMetaRawOption ? upMetaRawOption.sourceHeader : null);\n      var dimensions = retrieve2(newMetaRawOption.dimensions, upMetaRawOption ? upMetaRawOption.dimensions : null);\n      resultSourceList = [createSource(data, {\n        seriesLayoutBy: seriesLayoutBy,\n        sourceHeader: sourceHeader,\n        dimensions: dimensions\n      }, sourceFormat, seriesModel.get('encode', true))];\n    } else {\n      var datasetModel = sourceHost;\n\n      if (hasUpstream) {\n        var result = this._applyTransform(upSourceMgrList);\n\n        resultSourceList = result.sourceList;\n        upstreamSignList = result.upstreamSignList;\n      } else {\n        var sourceData = datasetModel.get('source', true);\n        resultSourceList = [createSource(sourceData, this._getSourceMetaRawOption(), null, null)];\n        upstreamSignList = [];\n      }\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(resultSourceList && upstreamSignList);\n    }\n\n    this._setLocalSource(resultSourceList, upstreamSignList);\n  };\n\n  SourceManager.prototype._applyTransform = function (upMgrList) {\n    var datasetModel = this._sourceHost;\n    var transformOption = datasetModel.get('transform', true);\n    var fromTransformResult = datasetModel.get('fromTransformResult', true);\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(fromTransformResult != null || transformOption != null);\n    }\n\n    if (fromTransformResult != null) {\n      var errMsg = '';\n\n      if (upMgrList.length !== 1) {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = 'When using `fromTransformResult`, there should be only one upstream dataset';\n        }\n\n        doThrow(errMsg);\n      }\n    }\n\n    var sourceList;\n    var upSourceList = [];\n    var upstreamSignList = [];\n    each(upMgrList, function (upMgr) {\n      upMgr.prepareSource();\n      var upSource = upMgr.getSource(fromTransformResult || 0);\n      var errMsg = '';\n\n      if (fromTransformResult != null && !upSource) {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = 'Can not retrieve result by `fromTransformResult`: ' + fromTransformResult;\n        }\n\n        doThrow(errMsg);\n      }\n\n      upSourceList.push(upSource);\n      upstreamSignList.push(upMgr._getVersionSign());\n    });\n\n    if (transformOption) {\n      sourceList = applyDataTransform(transformOption, upSourceList, {\n        datasetIndex: datasetModel.componentIndex\n      });\n    } else if (fromTransformResult != null) {\n      sourceList = [cloneSourceShallow(upSourceList[0])];\n    }\n\n    return {\n      sourceList: sourceList,\n      upstreamSignList: upstreamSignList\n    };\n  };\n\n  SourceManager.prototype._isDirty = function () {\n    var sourceList = this._sourceList;\n\n    if (!sourceList.length) {\n      return true;\n    }\n\n    var upSourceMgrList = this._getUpstreamSourceManagers();\n\n    for (var i = 0; i < upSourceMgrList.length; i++) {\n      var upSrcMgr = upSourceMgrList[i];\n\n      if (upSrcMgr._isDirty() || this._upstreamSignList[i] !== upSrcMgr._getVersionSign()) {\n        return true;\n      }\n    }\n  };\n\n  SourceManager.prototype.getSource = function (sourceIndex) {\n    return this._sourceList[sourceIndex || 0];\n  };\n\n  SourceManager.prototype._getUpstreamSourceManagers = function () {\n    var sourceHost = this._sourceHost;\n\n    if (isSeries(sourceHost)) {\n      var datasetModel = querySeriesUpstreamDatasetModel(sourceHost);\n      return !datasetModel ? [] : [datasetModel.getSourceManager()];\n    } else {\n      return map(queryDatasetUpstreamDatasetModels(sourceHost), function (datasetModel) {\n        return datasetModel.getSourceManager();\n      });\n    }\n  };\n\n  SourceManager.prototype._getSourceMetaRawOption = function () {\n    var sourceHost = this._sourceHost;\n    var seriesLayoutBy;\n    var sourceHeader;\n    var dimensions;\n\n    if (isSeries(sourceHost)) {\n      seriesLayoutBy = sourceHost.get('seriesLayoutBy', true);\n      sourceHeader = sourceHost.get('sourceHeader', true);\n      dimensions = sourceHost.get('dimensions', true);\n    } else if (!this._getUpstreamSourceManagers().length) {\n      var model = sourceHost;\n      seriesLayoutBy = model.get('seriesLayoutBy', true);\n      sourceHeader = model.get('sourceHeader', true);\n      dimensions = model.get('dimensions', true);\n    }\n\n    return {\n      seriesLayoutBy: seriesLayoutBy,\n      sourceHeader: sourceHeader,\n      dimensions: dimensions\n    };\n  };\n\n  return SourceManager;\n}();\n\nexport { SourceManager };\nexport function disableTransformOptionMerge(datasetModel) {\n  var transformOption = datasetModel.option.transform;\n  transformOption && setAsPrimitive(datasetModel.option.transform);\n}\n\nfunction isSeries(sourceHost) {\n  return sourceHost.mainType === 'series';\n}\n\nfunction doThrow(errMsg) {\n  throw new Error(errMsg);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { getTooltipMarker, encodeHTML, makeValueReadable, convertToColorString } from '../../util/format';\nimport { isString, each, hasOwn, isArray, map, assert, extend } from 'zrender/lib/core/util';\nimport { SortOrderComparator } from '../../data/helper/dataValueHelper';\nimport { getRandomIdBase } from '../../util/number';\nvar TOOLTIP_LINE_HEIGHT_CSS = 'line-height:1';\n\nfunction getTooltipTextStyle(textStyle, renderMode) {\n  var nameFontColor = textStyle.color || '#6e7079';\n  var nameFontSize = textStyle.fontSize || 12;\n  var nameFontWeight = textStyle.fontWeight || '400';\n  var valueFontColor = textStyle.color || '#464646';\n  var valueFontSize = textStyle.fontSize || 14;\n  var valueFontWeight = textStyle.fontWeight || '900';\n\n  if (renderMode === 'html') {\n    return {\n      nameStyle: \"font-size:\" + nameFontSize + \"px;color:\" + nameFontColor + \";font-weight:\" + nameFontWeight,\n      valueStyle: \"font-size:\" + valueFontSize + \"px;color:\" + valueFontColor + \";font-weight:\" + valueFontWeight\n    };\n  } else {\n    return {\n      nameStyle: {\n        fontSize: nameFontSize,\n        fill: nameFontColor,\n        fontWeight: nameFontWeight\n      },\n      valueStyle: {\n        fontSize: valueFontSize,\n        fill: valueFontColor,\n        fontWeight: valueFontWeight\n      }\n    };\n  }\n}\n\nvar HTML_GAPS = [0, 10, 20, 30];\nvar RICH_TEXT_GAPS = ['', '\\n', '\\n\\n', '\\n\\n\\n'];\nexport function createTooltipMarkup(type, option) {\n  option.type = type;\n  return option;\n}\n\nfunction getBuilder(fragment) {\n  return hasOwn(builderMap, fragment.type) && builderMap[fragment.type];\n}\n\nvar builderMap = {\n  section: {\n    planLayout: function (fragment) {\n      var subBlockLen = fragment.blocks.length;\n      var thisBlockHasInnerGap = subBlockLen > 1 || subBlockLen > 0 && !fragment.noHeader;\n      var thisGapLevelBetweenSubBlocks = 0;\n      each(fragment.blocks, function (subBlock) {\n        getBuilder(subBlock).planLayout(subBlock);\n        var subGapLevel = subBlock.__gapLevelBetweenSubBlocks;\n\n        if (subGapLevel >= thisGapLevelBetweenSubBlocks) {\n          thisGapLevelBetweenSubBlocks = subGapLevel + (thisBlockHasInnerGap && (!subGapLevel || subBlock.type === 'section' && !subBlock.noHeader) ? 1 : 0);\n        }\n      });\n      fragment.__gapLevelBetweenSubBlocks = thisGapLevelBetweenSubBlocks;\n    },\n    build: function (ctx, fragment, topMarginForOuterGap, toolTipTextStyle) {\n      var noHeader = fragment.noHeader;\n      var gaps = getGap(fragment);\n      var subMarkupText = buildSubBlocks(ctx, fragment, noHeader ? topMarginForOuterGap : gaps.html, toolTipTextStyle);\n\n      if (noHeader) {\n        return subMarkupText;\n      }\n\n      var displayableHeader = makeValueReadable(fragment.header, 'ordinal', ctx.useUTC);\n      var nameStyle = getTooltipTextStyle(toolTipTextStyle, ctx.renderMode).nameStyle;\n\n      if (ctx.renderMode === 'richText') {\n        return wrapInlineNameRichText(ctx, displayableHeader, nameStyle) + gaps.richText + subMarkupText;\n      } else {\n        return wrapBlockHTML(\"<div style=\\\"\" + nameStyle + \";\" + TOOLTIP_LINE_HEIGHT_CSS + \";\\\">\" + encodeHTML(displayableHeader) + '</div>' + subMarkupText, topMarginForOuterGap);\n      }\n    }\n  },\n  nameValue: {\n    planLayout: function (fragment) {\n      fragment.__gapLevelBetweenSubBlocks = 0;\n    },\n    build: function (ctx, fragment, topMarginForOuterGap, toolTipTextStyle) {\n      var renderMode = ctx.renderMode;\n      var noName = fragment.noName;\n      var noValue = fragment.noValue;\n      var noMarker = !fragment.markerType;\n      var name = fragment.name;\n      var value = fragment.value;\n      var useUTC = ctx.useUTC;\n\n      if (noName && noValue) {\n        return;\n      }\n\n      var markerStr = noMarker ? '' : ctx.markupStyleCreator.makeTooltipMarker(fragment.markerType, fragment.markerColor || '#333', renderMode);\n      var readableName = noName ? '' : makeValueReadable(name, 'ordinal', useUTC);\n      var valueTypeOption = fragment.valueType;\n      var readableValueList = noValue ? [] : isArray(value) ? map(value, function (val, idx) {\n        return makeValueReadable(val, isArray(valueTypeOption) ? valueTypeOption[idx] : valueTypeOption, useUTC);\n      }) : [makeValueReadable(value, isArray(valueTypeOption) ? valueTypeOption[0] : valueTypeOption, useUTC)];\n      var valueAlignRight = !noMarker || !noName;\n      var valueCloseToMarker = !noMarker && noName;\n\n      var _a = getTooltipTextStyle(toolTipTextStyle, renderMode),\n          nameStyle = _a.nameStyle,\n          valueStyle = _a.valueStyle;\n\n      return renderMode === 'richText' ? (noMarker ? '' : markerStr) + (noName ? '' : wrapInlineNameRichText(ctx, readableName, nameStyle)) + (noValue ? '' : wrapInlineValueRichText(ctx, readableValueList, valueAlignRight, valueCloseToMarker, valueStyle)) : wrapBlockHTML((noMarker ? '' : markerStr) + (noName ? '' : wrapInlineNameHTML(readableName, !noMarker, nameStyle)) + (noValue ? '' : wrapInlineValueHTML(readableValueList, valueAlignRight, valueCloseToMarker, valueStyle)), topMarginForOuterGap);\n    }\n  }\n};\n\nfunction buildSubBlocks(ctx, fragment, topMarginForOuterGap, tooltipTextStyle) {\n  var subMarkupTextList = [];\n  var subBlocks = fragment.blocks || [];\n  assert(!subBlocks || isArray(subBlocks));\n  subBlocks = subBlocks || [];\n  var orderMode = ctx.orderMode;\n\n  if (fragment.sortBlocks && orderMode) {\n    subBlocks = subBlocks.slice();\n    var orderMap = {\n      valueAsc: 'asc',\n      valueDesc: 'desc'\n    };\n\n    if (hasOwn(orderMap, orderMode)) {\n      var comparator_1 = new SortOrderComparator(orderMap[orderMode], null);\n      subBlocks.sort(function (a, b) {\n        return comparator_1.evaluate(a.sortParam, b.sortParam);\n      });\n    } else if (orderMode === 'seriesDesc') {\n      subBlocks.reverse();\n    }\n  }\n\n  var gaps = getGap(fragment);\n  each(subBlocks, function (subBlock, idx) {\n    var subMarkupText = getBuilder(subBlock).build(ctx, subBlock, idx > 0 ? gaps.html : 0, tooltipTextStyle);\n    subMarkupText != null && subMarkupTextList.push(subMarkupText);\n  });\n\n  if (!subMarkupTextList.length) {\n    return;\n  }\n\n  return ctx.renderMode === 'richText' ? subMarkupTextList.join(gaps.richText) : wrapBlockHTML(subMarkupTextList.join(''), topMarginForOuterGap);\n}\n\nexport function buildTooltipMarkup(fragment, markupStyleCreator, renderMode, orderMode, useUTC, toolTipTextStyle) {\n  if (!fragment) {\n    return;\n  }\n\n  var builder = getBuilder(fragment);\n  builder.planLayout(fragment);\n  var ctx = {\n    useUTC: useUTC,\n    renderMode: renderMode,\n    orderMode: orderMode,\n    markupStyleCreator: markupStyleCreator\n  };\n  return builder.build(ctx, fragment, 0, toolTipTextStyle);\n}\n\nfunction getGap(fragment) {\n  var gapLevelBetweenSubBlocks = fragment.__gapLevelBetweenSubBlocks;\n  return {\n    html: HTML_GAPS[gapLevelBetweenSubBlocks],\n    richText: RICH_TEXT_GAPS[gapLevelBetweenSubBlocks]\n  };\n}\n\nfunction wrapBlockHTML(encodedContent, topGap) {\n  var clearfix = '<div style=\"clear:both\"></div>';\n  var marginCSS = \"margin: \" + topGap + \"px 0 0\";\n  return \"<div style=\\\"\" + marginCSS + \";\" + TOOLTIP_LINE_HEIGHT_CSS + \";\\\">\" + encodedContent + clearfix + '</div>';\n}\n\nfunction wrapInlineNameHTML(name, leftHasMarker, style) {\n  var marginCss = leftHasMarker ? 'margin-left:2px' : '';\n  return \"<span style=\\\"\" + style + \";\" + marginCss + \"\\\">\" + encodeHTML(name) + '</span>';\n}\n\nfunction wrapInlineValueHTML(valueList, alignRight, valueCloseToMarker, style) {\n  var paddingStr = valueCloseToMarker ? '10px' : '20px';\n  var alignCSS = alignRight ? \"float:right;margin-left:\" + paddingStr : '';\n  return \"<span style=\\\"\" + alignCSS + \";\" + style + \"\\\">\" + map(valueList, function (value) {\n    return encodeHTML(value);\n  }).join('&nbsp;&nbsp;') + '</span>';\n}\n\nfunction wrapInlineNameRichText(ctx, name, style) {\n  return ctx.markupStyleCreator.wrapRichTextStyle(name, style);\n}\n\nfunction wrapInlineValueRichText(ctx, valueList, alignRight, valueCloseToMarker, style) {\n  var styles = [style];\n  var paddingLeft = valueCloseToMarker ? 10 : 20;\n  alignRight && styles.push({\n    padding: [0, 0, 0, paddingLeft],\n    align: 'right'\n  });\n  return ctx.markupStyleCreator.wrapRichTextStyle(valueList.join('  '), styles);\n}\n\nexport function retrieveVisualColorForTooltipMarker(series, dataIndex) {\n  var style = series.getData().getItemVisual(dataIndex, 'style');\n  var color = style[series.visualDrawType];\n  return convertToColorString(color);\n}\nexport function getPaddingFromTooltipModel(model, renderMode) {\n  var padding = model.get('padding');\n  return padding != null ? padding : renderMode === 'richText' ? [8, 10] : 10;\n}\n\nvar TooltipMarkupStyleCreator = function () {\n  function TooltipMarkupStyleCreator() {\n    this.richTextStyles = {};\n    this._nextStyleNameId = getRandomIdBase();\n  }\n\n  TooltipMarkupStyleCreator.prototype._generateStyleName = function () {\n    return '__EC_aUTo_' + this._nextStyleNameId++;\n  };\n\n  TooltipMarkupStyleCreator.prototype.makeTooltipMarker = function (markerType, colorStr, renderMode) {\n    var markerId = renderMode === 'richText' ? this._generateStyleName() : null;\n    var marker = getTooltipMarker({\n      color: colorStr,\n      type: markerType,\n      renderMode: renderMode,\n      markerId: markerId\n    });\n\n    if (isString(marker)) {\n      return marker;\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        assert(markerId);\n      }\n\n      this.richTextStyles[markerId] = marker.style;\n      return marker.content;\n    }\n  };\n\n  TooltipMarkupStyleCreator.prototype.wrapRichTextStyle = function (text, styles) {\n    var finalStl = {};\n\n    if (isArray(styles)) {\n      each(styles, function (stl) {\n        return extend(finalStl, stl);\n      });\n    } else {\n      extend(finalStl, styles);\n    }\n\n    var styleName = this._generateStyleName();\n\n    this.richTextStyles[styleName] = finalStl;\n    return \"{\" + styleName + \"|\" + text + \"}\";\n  };\n\n  return TooltipMarkupStyleCreator;\n}();\n\nexport { TooltipMarkupStyleCreator };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { trim, isArray, each, reduce } from 'zrender/lib/core/util';\nimport { retrieveVisualColorForTooltipMarker, createTooltipMarkup } from './tooltipMarkup';\nimport { retrieveRawValue } from '../../data/helper/dataProvider';\nimport { isNameSpecified } from '../../util/model';\nexport function defaultSeriesFormatTooltip(opt) {\n  var series = opt.series;\n  var dataIndex = opt.dataIndex;\n  var multipleSeries = opt.multipleSeries;\n  var data = series.getData();\n  var tooltipDims = data.mapDimensionsAll('defaultedTooltip');\n  var tooltipDimLen = tooltipDims.length;\n  var value = series.getRawValue(dataIndex);\n  var isValueArr = isArray(value);\n  var markerColor = retrieveVisualColorForTooltipMarker(series, dataIndex);\n  var inlineValue;\n  var inlineValueType;\n  var subBlocks;\n  var sortParam;\n\n  if (tooltipDimLen > 1 || isValueArr && !tooltipDimLen) {\n    var formatArrResult = formatTooltipArrayValue(value, series, dataIndex, tooltipDims, markerColor);\n    inlineValue = formatArrResult.inlineValues;\n    inlineValueType = formatArrResult.inlineValueTypes;\n    subBlocks = formatArrResult.blocks;\n    sortParam = formatArrResult.inlineValues[0];\n  } else if (tooltipDimLen) {\n    var dimInfo = data.getDimensionInfo(tooltipDims[0]);\n    sortParam = inlineValue = retrieveRawValue(data, dataIndex, tooltipDims[0]);\n    inlineValueType = dimInfo.type;\n  } else {\n    sortParam = inlineValue = isValueArr ? value[0] : value;\n  }\n\n  var seriesNameSpecified = isNameSpecified(series);\n  var seriesName = seriesNameSpecified && series.name || '';\n  var itemName = data.getName(dataIndex);\n  var inlineName = multipleSeries ? seriesName : itemName;\n  return createTooltipMarkup('section', {\n    header: seriesName,\n    noHeader: multipleSeries || !seriesNameSpecified,\n    sortParam: sortParam,\n    blocks: [createTooltipMarkup('nameValue', {\n      markerType: 'item',\n      markerColor: markerColor,\n      name: inlineName,\n      noName: !trim(inlineName),\n      value: inlineValue,\n      valueType: inlineValueType\n    })].concat(subBlocks || [])\n  });\n}\n\nfunction formatTooltipArrayValue(value, series, dataIndex, tooltipDims, colorStr) {\n  var data = series.getData();\n  var isValueMultipleLine = reduce(value, function (isValueMultipleLine, val, idx) {\n    var dimItem = data.getDimensionInfo(idx);\n    return isValueMultipleLine = isValueMultipleLine || dimItem && dimItem.tooltip !== false && dimItem.displayName != null;\n  }, false);\n  var inlineValues = [];\n  var inlineValueTypes = [];\n  var blocks = [];\n  tooltipDims.length ? each(tooltipDims, function (dim) {\n    setEachItem(retrieveRawValue(data, dataIndex, dim), dim);\n  }) : each(value, setEachItem);\n\n  function setEachItem(val, dim) {\n    var dimInfo = data.getDimensionInfo(dim);\n\n    if (!dimInfo || dimInfo.otherDims.tooltip === false) {\n      return;\n    }\n\n    if (isValueMultipleLine) {\n      blocks.push(createTooltipMarkup('nameValue', {\n        markerType: 'subItem',\n        markerColor: colorStr,\n        name: dimInfo.displayName,\n        value: val,\n        valueType: dimInfo.type\n      }));\n    } else {\n      inlineValues.push(val);\n      inlineValueTypes.push(dimInfo.type);\n    }\n  }\n\n  return {\n    inlineValues: inlineValues,\n    inlineValueTypes: inlineValueTypes,\n    blocks: blocks\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends, __spreadArrays } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport * as modelUtil from '../util/model';\nimport ComponentModel from './Component';\nimport { PaletteMixin } from './mixin/palette';\nimport { DataFormatMixin } from '../model/mixin/dataFormat';\nimport { getLayoutParams, mergeLayoutParam, fetchLayoutMode } from '../util/layout';\nimport { createTask } from '../core/task';\nimport { mountExtend } from '../util/clazz';\nimport { SourceManager } from '../data/helper/sourceManager';\nimport { defaultSeriesFormatTooltip } from '../component/tooltip/seriesFormatTooltip';\nvar inner = modelUtil.makeInner();\n\nfunction getSelectionKey(data, dataIndex) {\n  return data.getName(dataIndex) || data.getId(dataIndex);\n}\n\nvar SeriesModel = function (_super) {\n  __extends(SeriesModel, _super);\n\n  function SeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this._selectedDataIndicesMap = {};\n    return _this;\n  }\n\n  SeriesModel.prototype.init = function (option, parentModel, ecModel) {\n    this.seriesIndex = this.componentIndex;\n    this.dataTask = createTask({\n      count: dataTaskCount,\n      reset: dataTaskReset\n    });\n    this.dataTask.context = {\n      model: this\n    };\n    this.mergeDefaultAndTheme(option, ecModel);\n    var sourceManager = inner(this).sourceManager = new SourceManager(this);\n    sourceManager.prepareSource();\n    var data = this.getInitialData(option, ecModel);\n    wrapData(data, this);\n    this.dataTask.context.data = data;\n\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.assert(data, 'getInitialData returned invalid data.');\n    }\n\n    inner(this).dataBeforeProcessed = data;\n    autoSeriesName(this);\n\n    this._initSelectedMapFromData(data);\n  };\n\n  SeriesModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n    var layoutMode = fetchLayoutMode(this);\n    var inputPositionParams = layoutMode ? getLayoutParams(option) : {};\n    var themeSubType = this.subType;\n\n    if (ComponentModel.hasClass(themeSubType)) {\n      themeSubType += 'Series';\n    }\n\n    zrUtil.merge(option, ecModel.getTheme().get(this.subType));\n    zrUtil.merge(option, this.getDefaultOption());\n    modelUtil.defaultEmphasis(option, 'label', ['show']);\n    this.fillDataTextStyle(option.data);\n\n    if (layoutMode) {\n      mergeLayoutParam(option, inputPositionParams, layoutMode);\n    }\n  };\n\n  SeriesModel.prototype.mergeOption = function (newSeriesOption, ecModel) {\n    newSeriesOption = zrUtil.merge(this.option, newSeriesOption, true);\n    this.fillDataTextStyle(newSeriesOption.data);\n    var layoutMode = fetchLayoutMode(this);\n\n    if (layoutMode) {\n      mergeLayoutParam(this.option, newSeriesOption, layoutMode);\n    }\n\n    var sourceManager = inner(this).sourceManager;\n    sourceManager.dirty();\n    sourceManager.prepareSource();\n    var data = this.getInitialData(newSeriesOption, ecModel);\n    wrapData(data, this);\n    this.dataTask.dirty();\n    this.dataTask.context.data = data;\n    inner(this).dataBeforeProcessed = data;\n    autoSeriesName(this);\n\n    this._initSelectedMapFromData(data);\n  };\n\n  SeriesModel.prototype.fillDataTextStyle = function (data) {\n    if (data && !zrUtil.isTypedArray(data)) {\n      var props = ['show'];\n\n      for (var i = 0; i < data.length; i++) {\n        if (data[i] && data[i].label) {\n          modelUtil.defaultEmphasis(data[i], 'label', props);\n        }\n      }\n    }\n  };\n\n  SeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return;\n  };\n\n  SeriesModel.prototype.appendData = function (params) {\n    var data = this.getRawData();\n    data.appendData(params.data);\n  };\n\n  SeriesModel.prototype.getData = function (dataType) {\n    var task = getCurrentTask(this);\n\n    if (task) {\n      var data = task.context.data;\n      return dataType == null ? data : data.getLinkedData(dataType);\n    } else {\n      return inner(this).data;\n    }\n  };\n\n  SeriesModel.prototype.getAllData = function () {\n    var mainData = this.getData();\n    return mainData && mainData.getLinkedDataAll ? mainData.getLinkedDataAll() : [{\n      data: mainData\n    }];\n  };\n\n  SeriesModel.prototype.setData = function (data) {\n    var task = getCurrentTask(this);\n\n    if (task) {\n      var context = task.context;\n      context.outputData = data;\n\n      if (task !== this.dataTask) {\n        context.data = data;\n      }\n    }\n\n    inner(this).data = data;\n  };\n\n  SeriesModel.prototype.getSource = function () {\n    return inner(this).sourceManager.getSource();\n  };\n\n  SeriesModel.prototype.getRawData = function () {\n    return inner(this).dataBeforeProcessed;\n  };\n\n  SeriesModel.prototype.getBaseAxis = function () {\n    var coordSys = this.coordinateSystem;\n    return coordSys && coordSys.getBaseAxis && coordSys.getBaseAxis();\n  };\n\n  SeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    return defaultSeriesFormatTooltip({\n      series: this,\n      dataIndex: dataIndex,\n      multipleSeries: multipleSeries\n    });\n  };\n\n  SeriesModel.prototype.isAnimationEnabled = function () {\n    if (env.node) {\n      return false;\n    }\n\n    var animationEnabled = this.getShallow('animation');\n\n    if (animationEnabled) {\n      if (this.getData().count() > this.getShallow('animationThreshold')) {\n        animationEnabled = false;\n      }\n    }\n\n    return !!animationEnabled;\n  };\n\n  SeriesModel.prototype.restoreData = function () {\n    this.dataTask.dirty();\n  };\n\n  SeriesModel.prototype.getColorFromPalette = function (name, scope, requestColorNum) {\n    var ecModel = this.ecModel;\n    var color = PaletteMixin.prototype.getColorFromPalette.call(this, name, scope, requestColorNum);\n\n    if (!color) {\n      color = ecModel.getColorFromPalette(name, scope, requestColorNum);\n    }\n\n    return color;\n  };\n\n  SeriesModel.prototype.coordDimToDataDim = function (coordDim) {\n    return this.getRawData().mapDimensionsAll(coordDim);\n  };\n\n  SeriesModel.prototype.getProgressive = function () {\n    return this.get('progressive');\n  };\n\n  SeriesModel.prototype.getProgressiveThreshold = function () {\n    return this.get('progressiveThreshold');\n  };\n\n  SeriesModel.prototype.select = function (innerDataIndices, dataType) {\n    this._innerSelect(this.getData(dataType), innerDataIndices);\n  };\n\n  SeriesModel.prototype.unselect = function (innerDataIndices, dataType) {\n    var selectedMap = this.option.selectedMap;\n\n    if (!selectedMap) {\n      return;\n    }\n\n    var data = this.getData(dataType);\n\n    for (var i = 0; i < innerDataIndices.length; i++) {\n      var dataIndex = innerDataIndices[i];\n      var nameOrId = getSelectionKey(data, dataIndex);\n      selectedMap[nameOrId] = false;\n      this._selectedDataIndicesMap[nameOrId] = -1;\n    }\n  };\n\n  SeriesModel.prototype.toggleSelect = function (innerDataIndices, dataType) {\n    var tmpArr = [];\n\n    for (var i = 0; i < innerDataIndices.length; i++) {\n      tmpArr[0] = innerDataIndices[i];\n      this.isSelected(innerDataIndices[i], dataType) ? this.unselect(tmpArr, dataType) : this.select(tmpArr, dataType);\n    }\n  };\n\n  SeriesModel.prototype.getSelectedDataIndices = function () {\n    var selectedDataIndicesMap = this._selectedDataIndicesMap;\n    var nameOrIds = zrUtil.keys(selectedDataIndicesMap);\n    var dataIndices = [];\n\n    for (var i = 0; i < nameOrIds.length; i++) {\n      var dataIndex = selectedDataIndicesMap[nameOrIds[i]];\n\n      if (dataIndex >= 0) {\n        dataIndices.push(dataIndex);\n      }\n    }\n\n    return dataIndices;\n  };\n\n  SeriesModel.prototype.isSelected = function (dataIndex, dataType) {\n    var selectedMap = this.option.selectedMap;\n\n    if (!selectedMap) {\n      return false;\n    }\n\n    var data = this.getData(dataType);\n    var nameOrId = getSelectionKey(data, dataIndex);\n    return selectedMap[nameOrId] || false;\n  };\n\n  SeriesModel.prototype._innerSelect = function (data, innerDataIndices) {\n    var _a, _b;\n\n    var selectedMode = this.option.selectedMode;\n    var len = innerDataIndices.length;\n\n    if (!selectedMode || !len) {\n      return;\n    }\n\n    if (selectedMode === 'multiple') {\n      var selectedMap = this.option.selectedMap || (this.option.selectedMap = {});\n\n      for (var i = 0; i < len; i++) {\n        var dataIndex = innerDataIndices[i];\n        var nameOrId = getSelectionKey(data, dataIndex);\n        selectedMap[nameOrId] = true;\n        this._selectedDataIndicesMap[nameOrId] = data.getRawIndex(dataIndex);\n      }\n    } else if (selectedMode === 'single' || selectedMode === true) {\n      var lastDataIndex = innerDataIndices[len - 1];\n      var nameOrId = getSelectionKey(data, lastDataIndex);\n      this.option.selectedMap = (_a = {}, _a[nameOrId] = true, _a);\n      this._selectedDataIndicesMap = (_b = {}, _b[nameOrId] = data.getRawIndex(lastDataIndex), _b);\n    }\n  };\n\n  SeriesModel.prototype._initSelectedMapFromData = function (data) {\n    if (this.option.selectedMap) {\n      return;\n    }\n\n    var dataIndices = [];\n\n    if (data.hasItemOption) {\n      data.each(function (idx) {\n        var rawItem = data.getRawDataItem(idx);\n\n        if (typeof rawItem === 'object' && rawItem.selected) {\n          dataIndices.push(idx);\n        }\n      });\n    }\n\n    if (dataIndices.length > 0) {\n      this._innerSelect(data, dataIndices);\n    }\n  };\n\n  SeriesModel.registerClass = function (clz) {\n    return ComponentModel.registerClass(clz);\n  };\n\n  SeriesModel.protoInitialize = function () {\n    var proto = SeriesModel.prototype;\n    proto.type = 'series.__base__';\n    proto.seriesIndex = 0;\n    proto.useColorPaletteOnData = false;\n    proto.ignoreStyleOnData = false;\n    proto.hasSymbolVisual = false;\n    proto.defaultSymbol = 'circle';\n    proto.visualStyleAccessPath = 'itemStyle';\n    proto.visualDrawType = 'fill';\n  }();\n\n  return SeriesModel;\n}(ComponentModel);\n\nzrUtil.mixin(SeriesModel, DataFormatMixin);\nzrUtil.mixin(SeriesModel, PaletteMixin);\nmountExtend(SeriesModel, ComponentModel);\n\nfunction autoSeriesName(seriesModel) {\n  var name = seriesModel.name;\n\n  if (!modelUtil.isNameSpecified(seriesModel)) {\n    seriesModel.name = getSeriesAutoName(seriesModel) || name;\n  }\n}\n\nfunction getSeriesAutoName(seriesModel) {\n  var data = seriesModel.getRawData();\n  var dataDims = data.mapDimensionsAll('seriesName');\n  var nameArr = [];\n  zrUtil.each(dataDims, function (dataDim) {\n    var dimInfo = data.getDimensionInfo(dataDim);\n    dimInfo.displayName && nameArr.push(dimInfo.displayName);\n  });\n  return nameArr.join(' ');\n}\n\nfunction dataTaskCount(context) {\n  return context.model.getRawData().count();\n}\n\nfunction dataTaskReset(context) {\n  var seriesModel = context.model;\n  seriesModel.setData(seriesModel.getRawData().cloneShallow());\n  return dataTaskProgress;\n}\n\nfunction dataTaskProgress(param, context) {\n  if (context.outputData && param.end > context.outputData.count()) {\n    context.model.getRawData().cloneShallow(context.outputData);\n  }\n}\n\nfunction wrapData(data, seriesModel) {\n  zrUtil.each(__spreadArrays(data.CHANGABLE_METHODS, data.DOWNSAMPLE_METHODS), function (methodName) {\n    data.wrapMethod(methodName, zrUtil.curry(onDataChange, seriesModel));\n  });\n}\n\nfunction onDataChange(seriesModel, newList) {\n  var task = getCurrentTask(seriesModel);\n\n  if (task) {\n    task.setOutputEnd((newList || this).count());\n  }\n\n  return newList;\n}\n\nfunction getCurrentTask(seriesModel) {\n  var scheduler = (seriesModel.ecModel || {}).scheduler;\n  var pipeline = scheduler && scheduler.getPipeline(seriesModel.uid);\n\n  if (pipeline) {\n    var task = pipeline.currentTask;\n\n    if (task) {\n      var agentStubMap = task.agentStubMap;\n\n      if (agentStubMap) {\n        task = agentStubMap.get(seriesModel.uid);\n      }\n    }\n\n    return task;\n  }\n}\n\nexport default SeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Group from 'zrender/lib/graphic/Group';\nimport * as componentUtil from '../util/component';\nimport * as clazzUtil from '../util/clazz';\n\nvar ComponentView = function () {\n  function ComponentView() {\n    this.group = new Group();\n    this.uid = componentUtil.getUID('viewComponent');\n  }\n\n  ComponentView.prototype.init = function (ecModel, api) {};\n\n  ComponentView.prototype.render = function (model, ecModel, api, payload) {};\n\n  ComponentView.prototype.dispose = function (ecModel, api) {};\n\n  ComponentView.prototype.updateView = function (model, ecModel, api, payload) {};\n\n  ComponentView.prototype.updateLayout = function (model, ecModel, api, payload) {};\n\n  ComponentView.prototype.updateVisual = function (model, ecModel, api, payload) {};\n\n  ComponentView.prototype.blurSeries = function (seriesModels, ecModel) {};\n\n  return ComponentView;\n}();\n\n;\nclazzUtil.enableClassExtend(ComponentView);\nclazzUtil.enableClassManagement(ComponentView);\nexport default ComponentView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner } from '../../util/model';\nexport default function createRenderPlanner() {\n  var inner = makeInner();\n  return function (seriesModel) {\n    var fields = inner(seriesModel);\n    var pipelineContext = seriesModel.pipelineContext;\n    var originalLarge = !!fields.large;\n    var originalProgressive = !!fields.progressiveRender;\n    var large = fields.large = !!(pipelineContext && pipelineContext.large);\n    var progressive = fields.progressiveRender = !!(pipelineContext && pipelineContext.progressiveRender);\n    return !!(originalLarge !== large || originalProgressive !== progressive) && 'reset';\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each } from 'zrender/lib/core/util';\nimport Group from 'zrender/lib/graphic/Group';\nimport * as componentUtil from '../util/component';\nimport * as clazzUtil from '../util/clazz';\nimport * as modelUtil from '../util/model';\nimport { enterEmphasis, leaveEmphasis, getHighlightDigit } from '../util/states';\nimport { createTask } from '../core/task';\nimport createRenderPlanner from '../chart/helper/createRenderPlanner';\nvar inner = modelUtil.makeInner();\nvar renderPlanner = createRenderPlanner();\n\nvar ChartView = function () {\n  function ChartView() {\n    this.group = new Group();\n    this.uid = componentUtil.getUID('viewChart');\n    this.renderTask = createTask({\n      plan: renderTaskPlan,\n      reset: renderTaskReset\n    });\n    this.renderTask.context = {\n      view: this\n    };\n  }\n\n  ChartView.prototype.init = function (ecModel, api) {};\n\n  ChartView.prototype.render = function (seriesModel, ecModel, api, payload) {};\n\n  ChartView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\n    toggleHighlight(seriesModel.getData(), payload, 'emphasis');\n  };\n\n  ChartView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\n    toggleHighlight(seriesModel.getData(), payload, 'normal');\n  };\n\n  ChartView.prototype.remove = function (ecModel, api) {\n    this.group.removeAll();\n  };\n\n  ChartView.prototype.dispose = function (ecModel, api) {};\n\n  ChartView.prototype.updateView = function (seriesModel, ecModel, api, payload) {\n    this.render(seriesModel, ecModel, api, payload);\n  };\n\n  ChartView.prototype.updateLayout = function (seriesModel, ecModel, api, payload) {\n    this.render(seriesModel, ecModel, api, payload);\n  };\n\n  ChartView.prototype.updateVisual = function (seriesModel, ecModel, api, payload) {\n    this.render(seriesModel, ecModel, api, payload);\n  };\n\n  ChartView.markUpdateMethod = function (payload, methodName) {\n    inner(payload).updateMethod = methodName;\n  };\n\n  ChartView.protoInitialize = function () {\n    var proto = ChartView.prototype;\n    proto.type = 'chart';\n  }();\n\n  return ChartView;\n}();\n\n;\n\nfunction elSetState(el, state, highlightDigit) {\n  if (el) {\n    (state === 'emphasis' ? enterEmphasis : leaveEmphasis)(el, highlightDigit);\n  }\n}\n\nfunction toggleHighlight(data, payload, state) {\n  var dataIndex = modelUtil.queryDataIndex(data, payload);\n  var highlightDigit = payload && payload.highlightKey != null ? getHighlightDigit(payload.highlightKey) : null;\n\n  if (dataIndex != null) {\n    each(modelUtil.normalizeToArray(dataIndex), function (dataIdx) {\n      elSetState(data.getItemGraphicEl(dataIdx), state, highlightDigit);\n    });\n  } else {\n    data.eachItemGraphicEl(function (el) {\n      elSetState(el, state, highlightDigit);\n    });\n  }\n}\n\nclazzUtil.enableClassExtend(ChartView, ['dispose']);\nclazzUtil.enableClassManagement(ChartView);\n\nfunction renderTaskPlan(context) {\n  return renderPlanner(context.model);\n}\n\nfunction renderTaskReset(context) {\n  var seriesModel = context.model;\n  var ecModel = context.ecModel;\n  var api = context.api;\n  var payload = context.payload;\n  var progressiveRender = seriesModel.pipelineContext.progressiveRender;\n  var view = context.view;\n  var updateMethod = payload && inner(payload).updateMethod;\n  var methodName = progressiveRender ? 'incrementalPrepareRender' : updateMethod && view[updateMethod] ? updateMethod : 'render';\n\n  if (methodName !== 'render') {\n    view[methodName](seriesModel, ecModel, api, payload);\n  }\n\n  return progressMethodMap[methodName];\n}\n\nvar progressMethodMap = {\n  incrementalPrepareRender: {\n    progress: function (params, context) {\n      context.view.incrementalRender(params, context.model, context.ecModel, context.api, context.payload);\n    }\n  },\n  render: {\n    forceFirstProgress: true,\n    progress: function (params, context) {\n      context.view.render(context.model, context.ecModel, context.api, context.payload);\n    }\n  }\n};\nexport default ChartView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar ORIGIN_METHOD = '\\0__throttleOriginMethod';\nvar RATE = '\\0__throttleRate';\nvar THROTTLE_TYPE = '\\0__throttleType';\n;\nexport function throttle(fn, delay, debounce) {\n  var currCall;\n  var lastCall = 0;\n  var lastExec = 0;\n  var timer = null;\n  var diff;\n  var scope;\n  var args;\n  var debounceNextCall;\n  delay = delay || 0;\n\n  function exec() {\n    lastExec = new Date().getTime();\n    timer = null;\n    fn.apply(scope, args || []);\n  }\n\n  var cb = function () {\n    var cbArgs = [];\n\n    for (var _i = 0; _i < arguments.length; _i++) {\n      cbArgs[_i] = arguments[_i];\n    }\n\n    currCall = new Date().getTime();\n    scope = this;\n    args = cbArgs;\n    var thisDelay = debounceNextCall || delay;\n    var thisDebounce = debounceNextCall || debounce;\n    debounceNextCall = null;\n    diff = currCall - (thisDebounce ? lastCall : lastExec) - thisDelay;\n    clearTimeout(timer);\n\n    if (thisDebounce) {\n      timer = setTimeout(exec, thisDelay);\n    } else {\n      if (diff >= 0) {\n        exec();\n      } else {\n        timer = setTimeout(exec, -diff);\n      }\n    }\n\n    lastCall = currCall;\n  };\n\n  cb.clear = function () {\n    if (timer) {\n      clearTimeout(timer);\n      timer = null;\n    }\n  };\n\n  cb.debounceNextCall = function (debounceDelay) {\n    debounceNextCall = debounceDelay;\n  };\n\n  return cb;\n}\nexport function createOrUpdate(obj, fnAttr, rate, throttleType) {\n  var fn = obj[fnAttr];\n\n  if (!fn) {\n    return;\n  }\n\n  var originFn = fn[ORIGIN_METHOD] || fn;\n  var lastThrottleType = fn[THROTTLE_TYPE];\n  var lastRate = fn[RATE];\n\n  if (lastRate !== rate || lastThrottleType !== throttleType) {\n    if (rate == null || !throttleType) {\n      return obj[fnAttr] = originFn;\n    }\n\n    fn = obj[fnAttr] = throttle(originFn, rate, throttleType === 'debounce');\n    fn[ORIGIN_METHOD] = originFn;\n    fn[THROTTLE_TYPE] = throttleType;\n    fn[RATE] = rate;\n  }\n\n  return fn;\n}\nexport function clear(obj, fnAttr) {\n  var fn = obj[fnAttr];\n\n  if (fn && fn[ORIGIN_METHOD]) {\n    obj[fnAttr] = fn[ORIGIN_METHOD];\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isFunction, extend, createHashMap } from 'zrender/lib/core/util';\nimport makeStyleMapper from '../model/mixin/makeStyleMapper';\nimport { ITEM_STYLE_KEY_MAP } from '../model/mixin/itemStyle';\nimport { LINE_STYLE_KEY_MAP } from '../model/mixin/lineStyle';\nimport Model from '../model/Model';\nimport { makeInner } from '../util/model';\nvar inner = makeInner();\nvar defaultStyleMappers = {\n  itemStyle: makeStyleMapper(ITEM_STYLE_KEY_MAP, true),\n  lineStyle: makeStyleMapper(LINE_STYLE_KEY_MAP, true)\n};\nvar defaultColorKey = {\n  lineStyle: 'stroke',\n  itemStyle: 'fill'\n};\n\nfunction getStyleMapper(seriesModel, stylePath) {\n  var styleMapper = seriesModel.visualStyleMapper || defaultStyleMappers[stylePath];\n\n  if (!styleMapper) {\n    console.warn(\"Unkown style type '\" + stylePath + \"'.\");\n    return defaultStyleMappers.itemStyle;\n  }\n\n  return styleMapper;\n}\n\nfunction getDefaultColorKey(seriesModel, stylePath) {\n  var colorKey = seriesModel.visualDrawType || defaultColorKey[stylePath];\n\n  if (!colorKey) {\n    console.warn(\"Unkown style type '\" + stylePath + \"'.\");\n    return 'fill';\n  }\n\n  return colorKey;\n}\n\nvar seriesStyleTask = {\n  createOnAllSeries: true,\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    var data = seriesModel.getData();\n    var stylePath = seriesModel.visualStyleAccessPath || 'itemStyle';\n    var styleModel = seriesModel.getModel(stylePath);\n    var getStyle = getStyleMapper(seriesModel, stylePath);\n    var globalStyle = getStyle(styleModel);\n    var decalOption = styleModel.getShallow('decal');\n\n    if (decalOption) {\n      data.setVisual('decal', decalOption);\n      decalOption.dirty = true;\n    }\n\n    var colorKey = getDefaultColorKey(seriesModel, stylePath);\n    var color = globalStyle[colorKey];\n    var colorCallback = isFunction(color) ? color : null;\n\n    if (!globalStyle[colorKey] || colorCallback) {\n      globalStyle[colorKey] = seriesModel.getColorFromPalette(seriesModel.name, null, ecModel.getSeriesCount());\n      data.setVisual('colorFromPalette', true);\n    }\n\n    data.setVisual('style', globalStyle);\n    data.setVisual('drawType', colorKey);\n\n    if (!ecModel.isSeriesFiltered(seriesModel) && colorCallback) {\n      data.setVisual('colorFromPalette', false);\n      return {\n        dataEach: function (data, idx) {\n          var dataParams = seriesModel.getDataParams(idx);\n          var itemStyle = extend({}, globalStyle);\n          itemStyle[colorKey] = colorCallback(dataParams);\n          data.setItemVisual(idx, 'style', itemStyle);\n        }\n      };\n    }\n  }\n};\nvar sharedModel = new Model();\nvar dataStyleTask = {\n  createOnAllSeries: true,\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    if (seriesModel.ignoreStyleOnData || ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var stylePath = seriesModel.visualStyleAccessPath || 'itemStyle';\n    var getStyle = getStyleMapper(seriesModel, stylePath);\n    var colorKey = data.getVisual('drawType');\n    return {\n      dataEach: data.hasItemOption ? function (data, idx) {\n        var rawItem = data.getRawDataItem(idx);\n\n        if (rawItem && rawItem[stylePath]) {\n          sharedModel.option = rawItem[stylePath];\n          var style = getStyle(sharedModel);\n          var existsStyle = data.ensureUniqueItemVisual(idx, 'style');\n          extend(existsStyle, style);\n\n          if (sharedModel.option.decal) {\n            data.setItemVisual(idx, 'decal', sharedModel.option.decal);\n            sharedModel.option.decal.dirty = true;\n          }\n\n          if (colorKey in style) {\n            data.setItemVisual(idx, 'colorFromPalette', false);\n          }\n        }\n      } : null\n    };\n  }\n};\nvar dataColorPaletteTask = {\n  performRawSeries: true,\n  overallReset: function (ecModel) {\n    var paletteScopeGroupByType = createHashMap();\n    ecModel.eachSeries(function (seriesModel) {\n      if (!seriesModel.useColorPaletteOnData) {\n        return;\n      }\n\n      var colorScope = paletteScopeGroupByType.get(seriesModel.type);\n\n      if (!colorScope) {\n        colorScope = {};\n        paletteScopeGroupByType.set(seriesModel.type, colorScope);\n      }\n\n      inner(seriesModel).scope = colorScope;\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      if (!seriesModel.useColorPaletteOnData || ecModel.isSeriesFiltered(seriesModel)) {\n        return;\n      }\n\n      var dataAll = seriesModel.getRawData();\n      var idxMap = {};\n      var data = seriesModel.getData();\n      var colorScope = inner(seriesModel).scope;\n      var stylePath = seriesModel.visualStyleAccessPath || 'itemStyle';\n      var colorKey = getDefaultColorKey(seriesModel, stylePath);\n      data.each(function (idx) {\n        var rawIdx = data.getRawIndex(idx);\n        idxMap[rawIdx] = idx;\n      });\n      dataAll.each(function (rawIdx) {\n        var idx = idxMap[rawIdx];\n        var fromPalette = data.getItemVisual(idx, 'colorFromPalette');\n\n        if (fromPalette) {\n          var itemStyle = data.ensureUniqueItemVisual(idx, 'style');\n          var name_1 = dataAll.getName(rawIdx) || rawIdx + '';\n          var dataCount = dataAll.count();\n          itemStyle[colorKey] = seriesModel.getColorFromPalette(name_1, colorScope, dataCount);\n        }\n      });\n    });\n  }\n};\nexport { seriesStyleTask, dataStyleTask, dataColorPaletteTask };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../util/graphic';\nvar PI = Math.PI;\nexport default function defaultLoading(api, opts) {\n  opts = opts || {};\n  zrUtil.defaults(opts, {\n    text: 'loading',\n    textColor: '#000',\n    fontSize: 12,\n    fontWeight: 'normal',\n    fontStyle: 'normal',\n    fontFamily: 'sans-serif',\n    maskColor: 'rgba(255, 255, 255, 0.8)',\n    showSpinner: true,\n    color: '#5470c6',\n    spinnerRadius: 10,\n    lineWidth: 5,\n    zlevel: 0\n  });\n  var group = new graphic.Group();\n  var mask = new graphic.Rect({\n    style: {\n      fill: opts.maskColor\n    },\n    zlevel: opts.zlevel,\n    z: 10000\n  });\n  group.add(mask);\n  var textContent = new graphic.Text({\n    style: {\n      text: opts.text,\n      fill: opts.textColor,\n      fontSize: opts.fontSize,\n      fontWeight: opts.fontWeight,\n      fontStyle: opts.fontStyle,\n      fontFamily: opts.fontFamily\n    }\n  });\n  var labelRect = new graphic.Rect({\n    style: {\n      fill: 'none'\n    },\n    textContent: textContent,\n    textConfig: {\n      position: 'right',\n      distance: 10\n    },\n    zlevel: opts.zlevel,\n    z: 10001\n  });\n  group.add(labelRect);\n  var arc;\n\n  if (opts.showSpinner) {\n    arc = new graphic.Arc({\n      shape: {\n        startAngle: -PI / 2,\n        endAngle: -PI / 2 + 0.1,\n        r: opts.spinnerRadius\n      },\n      style: {\n        stroke: opts.color,\n        lineCap: 'round',\n        lineWidth: opts.lineWidth\n      },\n      zlevel: opts.zlevel,\n      z: 10001\n    });\n    arc.animateShape(true).when(1000, {\n      endAngle: PI * 3 / 2\n    }).start('circularInOut');\n    arc.animateShape(true).when(1000, {\n      startAngle: PI * 3 / 2\n    }).delay(300).start('circularInOut');\n    group.add(arc);\n  }\n\n  group.resize = function () {\n    var textWidth = textContent.getBoundingRect().width;\n    var r = opts.showSpinner ? opts.spinnerRadius : 0;\n    var cx = (api.getWidth() - r * 2 - (opts.showSpinner && textWidth ? 10 : 0) - textWidth) / 2 - (opts.showSpinner && textWidth ? 0 : 5 + textWidth / 2) + (opts.showSpinner ? 0 : textWidth / 2) + (textWidth ? 0 : r);\n    var cy = api.getHeight() / 2;\n    opts.showSpinner && arc.setShape({\n      cx: cx,\n      cy: cy\n    });\n    labelRect.setShape({\n      x: cx - r,\n      y: cy - r,\n      width: r * 2,\n      height: r * 2\n    });\n    mask.setShape({\n      x: 0,\n      y: 0,\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n  };\n\n  group.resize();\n  return group;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, map, isFunction, createHashMap, noop, assert } from 'zrender/lib/core/util';\nimport { createTask } from './task';\nimport { getUID } from '../util/component';\nimport GlobalModel from '../model/Global';\nimport ExtensionAPI from './ExtensionAPI';\nimport { normalizeToArray } from '../util/model';\n;\n\nvar Scheduler = function () {\n  function Scheduler(ecInstance, api, dataProcessorHandlers, visualHandlers) {\n    this._stageTaskMap = createHashMap();\n    this.ecInstance = ecInstance;\n    this.api = api;\n    dataProcessorHandlers = this._dataProcessorHandlers = dataProcessorHandlers.slice();\n    visualHandlers = this._visualHandlers = visualHandlers.slice();\n    this._allHandlers = dataProcessorHandlers.concat(visualHandlers);\n  }\n\n  Scheduler.prototype.restoreData = function (ecModel, payload) {\n    ecModel.restoreData(payload);\n\n    this._stageTaskMap.each(function (taskRecord) {\n      var overallTask = taskRecord.overallTask;\n      overallTask && overallTask.dirty();\n    });\n  };\n\n  Scheduler.prototype.getPerformArgs = function (task, isBlock) {\n    if (!task.__pipeline) {\n      return;\n    }\n\n    var pipeline = this._pipelineMap.get(task.__pipeline.id);\n\n    var pCtx = pipeline.context;\n    var incremental = !isBlock && pipeline.progressiveEnabled && (!pCtx || pCtx.progressiveRender) && task.__idxInPipeline > pipeline.blockIndex;\n    var step = incremental ? pipeline.step : null;\n    var modDataCount = pCtx && pCtx.modDataCount;\n    var modBy = modDataCount != null ? Math.ceil(modDataCount / step) : null;\n    return {\n      step: step,\n      modBy: modBy,\n      modDataCount: modDataCount\n    };\n  };\n\n  Scheduler.prototype.getPipeline = function (pipelineId) {\n    return this._pipelineMap.get(pipelineId);\n  };\n\n  Scheduler.prototype.updateStreamModes = function (seriesModel, view) {\n    var pipeline = this._pipelineMap.get(seriesModel.uid);\n\n    var data = seriesModel.getData();\n    var dataLen = data.count();\n    var progressiveRender = pipeline.progressiveEnabled && view.incrementalPrepareRender && dataLen >= pipeline.threshold;\n    var large = seriesModel.get('large') && dataLen >= seriesModel.get('largeThreshold');\n    var modDataCount = seriesModel.get('progressiveChunkMode') === 'mod' ? dataLen : null;\n    seriesModel.pipelineContext = pipeline.context = {\n      progressiveRender: progressiveRender,\n      modDataCount: modDataCount,\n      large: large\n    };\n  };\n\n  Scheduler.prototype.restorePipelines = function (ecModel) {\n    var scheduler = this;\n    var pipelineMap = scheduler._pipelineMap = createHashMap();\n    ecModel.eachSeries(function (seriesModel) {\n      var progressive = seriesModel.getProgressive();\n      var pipelineId = seriesModel.uid;\n      pipelineMap.set(pipelineId, {\n        id: pipelineId,\n        head: null,\n        tail: null,\n        threshold: seriesModel.getProgressiveThreshold(),\n        progressiveEnabled: progressive && !(seriesModel.preventIncremental && seriesModel.preventIncremental()),\n        blockIndex: -1,\n        step: Math.round(progressive || 700),\n        count: 0\n      });\n\n      scheduler._pipe(seriesModel, seriesModel.dataTask);\n    });\n  };\n\n  Scheduler.prototype.prepareStageTasks = function () {\n    var stageTaskMap = this._stageTaskMap;\n    var ecModel = this.api.getModel();\n    var api = this.api;\n    each(this._allHandlers, function (handler) {\n      var record = stageTaskMap.get(handler.uid) || stageTaskMap.set(handler.uid, {});\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = '\"reset\" and \"overallReset\" must not be both specified.';\n      }\n\n      assert(!(handler.reset && handler.overallReset), errMsg);\n      handler.reset && this._createSeriesStageTask(handler, record, ecModel, api);\n      handler.overallReset && this._createOverallStageTask(handler, record, ecModel, api);\n    }, this);\n  };\n\n  Scheduler.prototype.prepareView = function (view, model, ecModel, api) {\n    var renderTask = view.renderTask;\n    var context = renderTask.context;\n    context.model = model;\n    context.ecModel = ecModel;\n    context.api = api;\n    renderTask.__block = !view.incrementalPrepareRender;\n\n    this._pipe(model, renderTask);\n  };\n\n  Scheduler.prototype.performDataProcessorTasks = function (ecModel, payload) {\n    this._performStageTasks(this._dataProcessorHandlers, ecModel, payload, {\n      block: true\n    });\n  };\n\n  Scheduler.prototype.performVisualTasks = function (ecModel, payload, opt) {\n    this._performStageTasks(this._visualHandlers, ecModel, payload, opt);\n  };\n\n  Scheduler.prototype._performStageTasks = function (stageHandlers, ecModel, payload, opt) {\n    opt = opt || {};\n    var unfinished = false;\n    var scheduler = this;\n    each(stageHandlers, function (stageHandler, idx) {\n      if (opt.visualType && opt.visualType !== stageHandler.visualType) {\n        return;\n      }\n\n      var stageHandlerRecord = scheduler._stageTaskMap.get(stageHandler.uid);\n\n      var seriesTaskMap = stageHandlerRecord.seriesTaskMap;\n      var overallTask = stageHandlerRecord.overallTask;\n\n      if (overallTask) {\n        var overallNeedDirty_1;\n        var agentStubMap = overallTask.agentStubMap;\n        agentStubMap.each(function (stub) {\n          if (needSetDirty(opt, stub)) {\n            stub.dirty();\n            overallNeedDirty_1 = true;\n          }\n        });\n        overallNeedDirty_1 && overallTask.dirty();\n        scheduler.updatePayload(overallTask, payload);\n        var performArgs_1 = scheduler.getPerformArgs(overallTask, opt.block);\n        agentStubMap.each(function (stub) {\n          stub.perform(performArgs_1);\n        });\n\n        if (overallTask.perform(performArgs_1)) {\n          unfinished = true;\n        }\n      } else if (seriesTaskMap) {\n        seriesTaskMap.each(function (task, pipelineId) {\n          if (needSetDirty(opt, task)) {\n            task.dirty();\n          }\n\n          var performArgs = scheduler.getPerformArgs(task, opt.block);\n          performArgs.skip = !stageHandler.performRawSeries && ecModel.isSeriesFiltered(task.context.model);\n          scheduler.updatePayload(task, payload);\n\n          if (task.perform(performArgs)) {\n            unfinished = true;\n          }\n        });\n      }\n    });\n\n    function needSetDirty(opt, task) {\n      return opt.setDirty && (!opt.dirtyMap || opt.dirtyMap.get(task.__pipeline.id));\n    }\n\n    this.unfinished = unfinished || this.unfinished;\n  };\n\n  Scheduler.prototype.performSeriesTasks = function (ecModel) {\n    var unfinished;\n    ecModel.eachSeries(function (seriesModel) {\n      unfinished = seriesModel.dataTask.perform() || unfinished;\n    });\n    this.unfinished = unfinished || this.unfinished;\n  };\n\n  Scheduler.prototype.plan = function () {\n    this._pipelineMap.each(function (pipeline) {\n      var task = pipeline.tail;\n\n      do {\n        if (task.__block) {\n          pipeline.blockIndex = task.__idxInPipeline;\n          break;\n        }\n\n        task = task.getUpstream();\n      } while (task);\n    });\n  };\n\n  Scheduler.prototype.updatePayload = function (task, payload) {\n    payload !== 'remain' && (task.context.payload = payload);\n  };\n\n  Scheduler.prototype._createSeriesStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\n    var scheduler = this;\n    var oldSeriesTaskMap = stageHandlerRecord.seriesTaskMap;\n    var newSeriesTaskMap = stageHandlerRecord.seriesTaskMap = createHashMap();\n    var seriesType = stageHandler.seriesType;\n    var getTargetSeries = stageHandler.getTargetSeries;\n\n    if (stageHandler.createOnAllSeries) {\n      ecModel.eachRawSeries(create);\n    } else if (seriesType) {\n      ecModel.eachRawSeriesByType(seriesType, create);\n    } else if (getTargetSeries) {\n      getTargetSeries(ecModel, api).each(create);\n    }\n\n    function create(seriesModel) {\n      var pipelineId = seriesModel.uid;\n      var task = newSeriesTaskMap.set(pipelineId, oldSeriesTaskMap && oldSeriesTaskMap.get(pipelineId) || createTask({\n        plan: seriesTaskPlan,\n        reset: seriesTaskReset,\n        count: seriesTaskCount\n      }));\n      task.context = {\n        model: seriesModel,\n        ecModel: ecModel,\n        api: api,\n        useClearVisual: stageHandler.isVisual && !stageHandler.isLayout,\n        plan: stageHandler.plan,\n        reset: stageHandler.reset,\n        scheduler: scheduler\n      };\n\n      scheduler._pipe(seriesModel, task);\n    }\n  };\n\n  Scheduler.prototype._createOverallStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\n    var scheduler = this;\n    var overallTask = stageHandlerRecord.overallTask = stageHandlerRecord.overallTask || createTask({\n      reset: overallTaskReset\n    });\n    overallTask.context = {\n      ecModel: ecModel,\n      api: api,\n      overallReset: stageHandler.overallReset,\n      scheduler: scheduler\n    };\n    var oldAgentStubMap = overallTask.agentStubMap;\n    var newAgentStubMap = overallTask.agentStubMap = createHashMap();\n    var seriesType = stageHandler.seriesType;\n    var getTargetSeries = stageHandler.getTargetSeries;\n    var overallProgress = true;\n    var shouldOverallTaskDirty = false;\n    var errMsg = '';\n\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = '\"createOnAllSeries\" do not supported for \"overallReset\", ' + 'becuase it will block all streams.';\n    }\n\n    assert(!stageHandler.createOnAllSeries, errMsg);\n\n    if (seriesType) {\n      ecModel.eachRawSeriesByType(seriesType, createStub);\n    } else if (getTargetSeries) {\n      getTargetSeries(ecModel, api).each(createStub);\n    } else {\n      overallProgress = false;\n      each(ecModel.getSeries(), createStub);\n    }\n\n    function createStub(seriesModel) {\n      var pipelineId = seriesModel.uid;\n      var stub = newAgentStubMap.set(pipelineId, oldAgentStubMap && oldAgentStubMap.get(pipelineId) || (shouldOverallTaskDirty = true, createTask({\n        reset: stubReset,\n        onDirty: stubOnDirty\n      })));\n      stub.context = {\n        model: seriesModel,\n        overallProgress: overallProgress\n      };\n      stub.agent = overallTask;\n      stub.__block = overallProgress;\n\n      scheduler._pipe(seriesModel, stub);\n    }\n\n    if (shouldOverallTaskDirty) {\n      overallTask.dirty();\n    }\n  };\n\n  Scheduler.prototype._pipe = function (seriesModel, task) {\n    var pipelineId = seriesModel.uid;\n\n    var pipeline = this._pipelineMap.get(pipelineId);\n\n    !pipeline.head && (pipeline.head = task);\n    pipeline.tail && pipeline.tail.pipe(task);\n    pipeline.tail = task;\n    task.__idxInPipeline = pipeline.count++;\n    task.__pipeline = pipeline;\n  };\n\n  Scheduler.wrapStageHandler = function (stageHandler, visualType) {\n    if (isFunction(stageHandler)) {\n      stageHandler = {\n        overallReset: stageHandler,\n        seriesType: detectSeriseType(stageHandler)\n      };\n    }\n\n    stageHandler.uid = getUID('stageHandler');\n    visualType && (stageHandler.visualType = visualType);\n    return stageHandler;\n  };\n\n  ;\n  return Scheduler;\n}();\n\nfunction overallTaskReset(context) {\n  context.overallReset(context.ecModel, context.api, context.payload);\n}\n\nfunction stubReset(context) {\n  return context.overallProgress && stubProgress;\n}\n\nfunction stubProgress() {\n  this.agent.dirty();\n  this.getDownstream().dirty();\n}\n\nfunction stubOnDirty() {\n  this.agent && this.agent.dirty();\n}\n\nfunction seriesTaskPlan(context) {\n  return context.plan ? context.plan(context.model, context.ecModel, context.api, context.payload) : null;\n}\n\nfunction seriesTaskReset(context) {\n  if (context.useClearVisual) {\n    context.data.clearAllVisual();\n  }\n\n  var resetDefines = context.resetDefines = normalizeToArray(context.reset(context.model, context.ecModel, context.api, context.payload));\n  return resetDefines.length > 1 ? map(resetDefines, function (v, idx) {\n    return makeSeriesTaskProgress(idx);\n  }) : singleSeriesTaskProgress;\n}\n\nvar singleSeriesTaskProgress = makeSeriesTaskProgress(0);\n\nfunction makeSeriesTaskProgress(resetDefineIdx) {\n  return function (params, context) {\n    var data = context.data;\n    var resetDefine = context.resetDefines[resetDefineIdx];\n\n    if (resetDefine && resetDefine.dataEach) {\n      for (var i = params.start; i < params.end; i++) {\n        resetDefine.dataEach(data, i);\n      }\n    } else if (resetDefine && resetDefine.progress) {\n      resetDefine.progress(params, data);\n    }\n  };\n}\n\nfunction seriesTaskCount(context) {\n  return context.data.count();\n}\n\nfunction detectSeriseType(legacyFunc) {\n  seriesType = null;\n\n  try {\n    legacyFunc(ecModelMock, apiMock);\n  } catch (e) {}\n\n  return seriesType;\n}\n\nvar ecModelMock = {};\nvar apiMock = {};\nvar seriesType;\nmockMethods(ecModelMock, GlobalModel);\nmockMethods(apiMock, ExtensionAPI);\n\necModelMock.eachSeriesByType = ecModelMock.eachRawSeriesByType = function (type) {\n  seriesType = type;\n};\n\necModelMock.eachComponent = function (cond) {\n  if (cond.mainType === 'series' && cond.subType) {\n    seriesType = cond.subType;\n  }\n};\n\nfunction mockMethods(target, Clz) {\n  for (var name_1 in Clz.prototype) {\n    target[name_1] = noop;\n  }\n}\n\nexport default Scheduler;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar colorAll = ['#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'];\nexport default {\n  color: colorAll,\n  colorLayer: [['#37A2DA', '#ffd85c', '#fd7b5f'], ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'], ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'], colorAll]\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar contrastColor = '#B9B8CE';\nvar backgroundColor = '#100C2A';\n\nvar axisCommon = function () {\n  return {\n    axisLine: {\n      lineStyle: {\n        color: contrastColor\n      }\n    },\n    splitLine: {\n      lineStyle: {\n        color: '#484753'\n      }\n    },\n    splitArea: {\n      areaStyle: {\n        color: ['rgba(255,255,255,0.02)', 'rgba(255,255,255,0.05)']\n      }\n    },\n    minorSplitLine: {\n      lineStyle: {\n        color: '#20203B'\n      }\n    }\n  };\n};\n\nvar colorPalette = ['#4992ff', '#7cffb2', '#fddd60', '#ff6e76', '#58d9f9', '#05c091', '#ff8a45', '#8d48e3', '#dd79ff'];\nvar theme = {\n  darkMode: true,\n  color: colorPalette,\n  backgroundColor: backgroundColor,\n  axisPointer: {\n    lineStyle: {\n      color: '#817f91'\n    },\n    crossStyle: {\n      color: '#817f91'\n    },\n    label: {\n      color: '#fff'\n    }\n  },\n  legend: {\n    textStyle: {\n      color: contrastColor\n    }\n  },\n  textStyle: {\n    color: contrastColor\n  },\n  title: {\n    textStyle: {\n      color: '#EEF1FA'\n    },\n    subtextStyle: {\n      color: '#B9B8CE'\n    }\n  },\n  toolbox: {\n    iconStyle: {\n      borderColor: contrastColor\n    }\n  },\n  dataZoom: {\n    borderColor: '#71708A',\n    textStyle: {\n      color: contrastColor\n    },\n    brushStyle: {\n      color: 'rgba(135,163,206,0.3)'\n    },\n    handleStyle: {\n      color: '#353450',\n      borderColor: '#C5CBE3'\n    },\n    moveHandleStyle: {\n      color: '#B0B6C3',\n      opacity: 0.3\n    },\n    fillerColor: 'rgba(135,163,206,0.2)',\n    emphasis: {\n      handleStyle: {\n        borderColor: '#91B7F2',\n        color: '#4D587D'\n      },\n      moveHandleStyle: {\n        color: '#636D9A',\n        opacity: 0.7\n      }\n    },\n    dataBackground: {\n      lineStyle: {\n        color: '#71708A',\n        width: 1\n      },\n      areaStyle: {\n        color: '#71708A'\n      }\n    },\n    selectedDataBackground: {\n      lineStyle: {\n        color: '#87A3CE'\n      },\n      areaStyle: {\n        color: '#87A3CE'\n      }\n    }\n  },\n  visualMap: {\n    textStyle: {\n      color: contrastColor\n    }\n  },\n  timeline: {\n    lineStyle: {\n      color: contrastColor\n    },\n    label: {\n      color: contrastColor\n    },\n    controlStyle: {\n      color: contrastColor,\n      borderColor: contrastColor\n    }\n  },\n  calendar: {\n    itemStyle: {\n      color: backgroundColor\n    },\n    dayLabel: {\n      color: contrastColor\n    },\n    monthLabel: {\n      color: contrastColor\n    },\n    yearLabel: {\n      color: contrastColor\n    }\n  },\n  timeAxis: axisCommon(),\n  logAxis: axisCommon(),\n  valueAxis: axisCommon(),\n  categoryAxis: axisCommon(),\n  line: {\n    symbol: 'circle'\n  },\n  graph: {\n    color: colorPalette\n  },\n  gauge: {\n    title: {\n      color: contrastColor\n    },\n    axisLine: {\n      lineStyle: {\n        color: [[1, 'rgba(207,212,219,0.2)']]\n      }\n    },\n    axisLabel: {\n      color: contrastColor\n    },\n    detail: {\n      color: '#EEF1FA'\n    }\n  },\n  candlestick: {\n    itemStyle: {\n      color: '#f64e56',\n      color0: '#54ea92',\n      borderColor: '#f64e56',\n      borderColor0: '#54ea92'\n    }\n  }\n};\ntheme.categoryAxis.splitLine.show = false;\nexport default theme;","import { isString } from '../core/util';\nexport function parseXML(svg) {\n    if (isString(svg)) {\n        var parser = new DOMParser();\n        svg = parser.parseFromString(svg, 'text/xml');\n    }\n    var svgNode = svg;\n    if (svgNode.nodeType === 9) {\n        svgNode = svgNode.firstChild;\n    }\n    while (svgNode.nodeName.toLowerCase() !== 'svg' || svgNode.nodeType !== 1) {\n        svgNode = svgNode.nextSibling;\n    }\n    return svgNode;\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, isString, isArray, each, assert } from 'zrender/lib/core/util';\nimport { parseXML } from 'zrender/lib/tool/parseXML';\nvar storage = createHashMap();\nexport default {\n  registerMap: function (mapName, rawDef, rawSpecialAreas) {\n    var records;\n\n    if (isArray(rawDef)) {\n      records = rawDef;\n    } else if (rawDef.svg) {\n      records = [{\n        type: 'svg',\n        source: rawDef.svg,\n        specialAreas: rawDef.specialAreas\n      }];\n    } else {\n      var geoSource = rawDef.geoJson || rawDef.geoJSON;\n\n      if (geoSource && !rawDef.features) {\n        rawSpecialAreas = rawDef.specialAreas;\n        rawDef = geoSource;\n      }\n\n      records = [{\n        type: 'geoJSON',\n        source: rawDef,\n        specialAreas: rawSpecialAreas\n      }];\n    }\n\n    each(records, function (record) {\n      var type = record.type;\n      type === 'geoJson' && (type = record.type = 'geoJSON');\n      var parse = parsers[type];\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(parse, 'Illegal map type: ' + type);\n      }\n\n      parse(record);\n    });\n    return storage.set(mapName, records);\n  },\n  retrieveMap: function (mapName) {\n    return storage.get(mapName);\n  }\n};\nvar parsers = {\n  geoJSON: function (record) {\n    var source = record.source;\n    record.geoJSON = !isString(source) ? source : typeof JSON !== 'undefined' && JSON.parse ? JSON.parse(source) : new Function('return (' + source + ');')();\n  },\n  svg: function (record) {\n    record.svgXML = parseXML(record.source);\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parseClassType } from './clazz';\n\nvar ECEventProcessor = function () {\n  function ECEventProcessor() {}\n\n  ECEventProcessor.prototype.normalizeQuery = function (query) {\n    var cptQuery = {};\n    var dataQuery = {};\n    var otherQuery = {};\n\n    if (zrUtil.isString(query)) {\n      var condCptType = parseClassType(query);\n      cptQuery.mainType = condCptType.main || null;\n      cptQuery.subType = condCptType.sub || null;\n    } else {\n      var suffixes_1 = ['Index', 'Name', 'Id'];\n      var dataKeys_1 = {\n        name: 1,\n        dataIndex: 1,\n        dataType: 1\n      };\n      zrUtil.each(query, function (val, key) {\n        var reserved = false;\n\n        for (var i = 0; i < suffixes_1.length; i++) {\n          var propSuffix = suffixes_1[i];\n          var suffixPos = key.lastIndexOf(propSuffix);\n\n          if (suffixPos > 0 && suffixPos === key.length - propSuffix.length) {\n            var mainType = key.slice(0, suffixPos);\n\n            if (mainType !== 'data') {\n              cptQuery.mainType = mainType;\n              cptQuery[propSuffix.toLowerCase()] = val;\n              reserved = true;\n            }\n          }\n        }\n\n        if (dataKeys_1.hasOwnProperty(key)) {\n          dataQuery[key] = val;\n          reserved = true;\n        }\n\n        if (!reserved) {\n          otherQuery[key] = val;\n        }\n      });\n    }\n\n    return {\n      cptQuery: cptQuery,\n      dataQuery: dataQuery,\n      otherQuery: otherQuery\n    };\n  };\n\n  ECEventProcessor.prototype.filter = function (eventType, query) {\n    var eventInfo = this.eventInfo;\n\n    if (!eventInfo) {\n      return true;\n    }\n\n    var targetEl = eventInfo.targetEl;\n    var packedEvent = eventInfo.packedEvent;\n    var model = eventInfo.model;\n    var view = eventInfo.view;\n\n    if (!model || !view) {\n      return true;\n    }\n\n    var cptQuery = query.cptQuery;\n    var dataQuery = query.dataQuery;\n    return check(cptQuery, model, 'mainType') && check(cptQuery, model, 'subType') && check(cptQuery, model, 'index', 'componentIndex') && check(cptQuery, model, 'name') && check(cptQuery, model, 'id') && check(dataQuery, packedEvent, 'name') && check(dataQuery, packedEvent, 'dataIndex') && check(dataQuery, packedEvent, 'dataType') && (!view.filterForExposedEvent || view.filterForExposedEvent(eventType, query.otherQuery, targetEl, packedEvent));\n\n    function check(query, host, prop, propOnHost) {\n      return query[prop] == null || host[propOnHost || prop] === query[prop];\n    }\n  };\n\n  ECEventProcessor.prototype.afterTrigger = function () {\n    this.eventInfo = null;\n  };\n\n  return ECEventProcessor;\n}();\n\nexport { ECEventProcessor };\n;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isFunction } from 'zrender/lib/core/util';\nvar seriesSymbolTask = {\n  createOnAllSeries: true,\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    var data = seriesModel.getData();\n\n    if (seriesModel.legendSymbol) {\n      data.setVisual('legendSymbol', seriesModel.legendSymbol);\n    }\n\n    if (!seriesModel.hasSymbolVisual) {\n      return;\n    }\n\n    var symbolType = seriesModel.get('symbol');\n    var symbolSize = seriesModel.get('symbolSize');\n    var keepAspect = seriesModel.get('symbolKeepAspect');\n    var symbolRotate = seriesModel.get('symbolRotate');\n    var hasSymbolTypeCallback = isFunction(symbolType);\n    var hasSymbolSizeCallback = isFunction(symbolSize);\n    var hasSymbolRotateCallback = isFunction(symbolRotate);\n    var hasCallback = hasSymbolTypeCallback || hasSymbolSizeCallback || hasSymbolRotateCallback;\n    var seriesSymbol = !hasSymbolTypeCallback && symbolType ? symbolType : seriesModel.defaultSymbol;\n    var seriesSymbolSize = !hasSymbolSizeCallback ? symbolSize : null;\n    var seriesSymbolRotate = !hasSymbolRotateCallback ? symbolRotate : null;\n    data.setVisual({\n      legendSymbol: seriesModel.legendSymbol || seriesSymbol,\n      symbol: seriesSymbol,\n      symbolSize: seriesSymbolSize,\n      symbolKeepAspect: keepAspect,\n      symbolRotate: seriesSymbolRotate\n    });\n\n    if (ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    function dataEach(data, idx) {\n      var rawValue = seriesModel.getRawValue(idx);\n      var params = seriesModel.getDataParams(idx);\n      hasSymbolTypeCallback && data.setItemVisual(idx, 'symbol', symbolType(rawValue, params));\n      hasSymbolSizeCallback && data.setItemVisual(idx, 'symbolSize', symbolSize(rawValue, params));\n      hasSymbolRotateCallback && data.setItemVisual(idx, 'symbolRotate', symbolRotate(rawValue, params));\n    }\n\n    return {\n      dataEach: hasCallback ? dataEach : null\n    };\n  }\n};\nvar dataSymbolTask = {\n  createOnAllSeries: true,\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    if (!seriesModel.hasSymbolVisual) {\n      return;\n    }\n\n    if (ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n\n    function dataEach(data, idx) {\n      var itemModel = data.getItemModel(idx);\n      var itemSymbolType = itemModel.getShallow('symbol', true);\n      var itemSymbolSize = itemModel.getShallow('symbolSize', true);\n      var itemSymbolRotate = itemModel.getShallow('symbolRotate', true);\n      var itemSymbolKeepAspect = itemModel.getShallow('symbolKeepAspect', true);\n\n      if (itemSymbolType != null) {\n        data.setItemVisual(idx, 'symbol', itemSymbolType);\n      }\n\n      if (itemSymbolSize != null) {\n        data.setItemVisual(idx, 'symbolSize', itemSymbolSize);\n      }\n\n      if (itemSymbolRotate != null) {\n        data.setItemVisual(idx, 'symbolRotate', itemSymbolRotate);\n      }\n\n      if (itemSymbolKeepAspect != null) {\n        data.setItemVisual(idx, 'symbolKeepAspect', itemSymbolKeepAspect);\n      }\n    }\n\n    return {\n      dataEach: data.hasItemOption ? dataEach : null\n    };\n  }\n};\nexport { seriesSymbolTask, dataSymbolTask };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function getItemVisualFromData(data, dataIndex, key) {\n  switch (key) {\n    case 'color':\n      var style = data.getItemVisual(dataIndex, 'style');\n      return style[data.getVisual('drawType')];\n\n    case 'opacity':\n      return data.getItemVisual(dataIndex, 'style').opacity;\n\n    case 'symbol':\n    case 'symbolSize':\n    case 'liftZ':\n      return data.getItemVisual(dataIndex, key);\n\n    default:\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn(\"Unknown visual type \" + key);\n      }\n\n  }\n}\nexport function getVisualFromData(data, key) {\n  switch (key) {\n    case 'color':\n      var style = data.getVisual('style');\n      return style[data.getVisual('drawType')];\n\n    case 'opacity':\n      return data.getVisual('style').opacity;\n\n    case 'symbol':\n    case 'symbolSize':\n    case 'liftZ':\n      return data.getVisual(key);\n\n    default:\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn(\"Unknown visual type \" + key);\n      }\n\n  }\n}\nexport function setItemVisualFromData(data, dataIndex, key, value) {\n  switch (key) {\n    case 'color':\n      var style = data.ensureUniqueItemVisual(dataIndex, 'style');\n      style[data.getVisual('drawType')] = value;\n      data.setItemVisual(dataIndex, 'colorFromPalette', false);\n      break;\n\n    case 'opacity':\n      data.ensureUniqueItemVisual(dataIndex, 'style').opacity = value;\n      break;\n\n    case 'symbol':\n    case 'symbolSize':\n    case 'liftZ':\n      data.setItemVisual(dataIndex, key, value);\n      break;\n\n    default:\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn(\"Unknown visual type \" + key);\n      }\n\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { Point, Path, Polyline } from '../util/graphic';\nimport PathProxy from 'zrender/lib/core/PathProxy';\nimport { normalizeRadian } from 'zrender/lib/contain/util';\nimport { cubicProjectPoint, quadraticProjectPoint } from 'zrender/lib/core/curve';\nimport { defaults, retrieve2 } from 'zrender/lib/core/util';\nimport { invert } from 'zrender/lib/core/matrix';\nimport * as vector from 'zrender/lib/core/vector';\nimport { DISPLAY_STATES, SPECIAL_STATES } from '../util/states';\nvar PI2 = Math.PI * 2;\nvar CMD = PathProxy.CMD;\nvar DEFAULT_SEARCH_SPACE = ['top', 'right', 'bottom', 'left'];\n\nfunction getCandidateAnchor(pos, distance, rect, outPt, outDir) {\n  var width = rect.width;\n  var height = rect.height;\n\n  switch (pos) {\n    case 'top':\n      outPt.set(rect.x + width / 2, rect.y - distance);\n      outDir.set(0, -1);\n      break;\n\n    case 'bottom':\n      outPt.set(rect.x + width / 2, rect.y + height + distance);\n      outDir.set(0, 1);\n      break;\n\n    case 'left':\n      outPt.set(rect.x - distance, rect.y + height / 2);\n      outDir.set(-1, 0);\n      break;\n\n    case 'right':\n      outPt.set(rect.x + width + distance, rect.y + height / 2);\n      outDir.set(1, 0);\n      break;\n  }\n}\n\nfunction projectPointToArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y, out) {\n  x -= cx;\n  y -= cy;\n  var d = Math.sqrt(x * x + y * y);\n  x /= d;\n  y /= d;\n  var ox = x * r + cx;\n  var oy = y * r + cy;\n\n  if (Math.abs(startAngle - endAngle) % PI2 < 1e-4) {\n    out[0] = ox;\n    out[1] = oy;\n    return d - r;\n  }\n\n  if (anticlockwise) {\n    var tmp = startAngle;\n    startAngle = normalizeRadian(endAngle);\n    endAngle = normalizeRadian(tmp);\n  } else {\n    startAngle = normalizeRadian(startAngle);\n    endAngle = normalizeRadian(endAngle);\n  }\n\n  if (startAngle > endAngle) {\n    endAngle += PI2;\n  }\n\n  var angle = Math.atan2(y, x);\n\n  if (angle < 0) {\n    angle += PI2;\n  }\n\n  if (angle >= startAngle && angle <= endAngle || angle + PI2 >= startAngle && angle + PI2 <= endAngle) {\n    out[0] = ox;\n    out[1] = oy;\n    return d - r;\n  }\n\n  var x1 = r * Math.cos(startAngle) + cx;\n  var y1 = r * Math.sin(startAngle) + cy;\n  var x2 = r * Math.cos(endAngle) + cx;\n  var y2 = r * Math.sin(endAngle) + cy;\n  var d1 = (x1 - x) * (x1 - x) + (y1 - y) * (y1 - y);\n  var d2 = (x2 - x) * (x2 - x) + (y2 - y) * (y2 - y);\n\n  if (d1 < d2) {\n    out[0] = x1;\n    out[1] = y1;\n    return Math.sqrt(d1);\n  } else {\n    out[0] = x2;\n    out[1] = y2;\n    return Math.sqrt(d2);\n  }\n}\n\nfunction projectPointToLine(x1, y1, x2, y2, x, y, out, limitToEnds) {\n  var dx = x - x1;\n  var dy = y - y1;\n  var dx1 = x2 - x1;\n  var dy1 = y2 - y1;\n  var lineLen = Math.sqrt(dx1 * dx1 + dy1 * dy1);\n  dx1 /= lineLen;\n  dy1 /= lineLen;\n  var projectedLen = dx * dx1 + dy * dy1;\n  var t = projectedLen / lineLen;\n\n  if (limitToEnds) {\n    t = Math.min(Math.max(t, 0), 1);\n  }\n\n  t *= lineLen;\n  var ox = out[0] = x1 + t * dx1;\n  var oy = out[1] = y1 + t * dy1;\n  return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\n}\n\nfunction projectPointToRect(x1, y1, width, height, x, y, out) {\n  if (width < 0) {\n    x1 = x1 + width;\n    width = -width;\n  }\n\n  if (height < 0) {\n    y1 = y1 + height;\n    height = -height;\n  }\n\n  var x2 = x1 + width;\n  var y2 = y1 + height;\n  var ox = out[0] = Math.min(Math.max(x, x1), x2);\n  var oy = out[1] = Math.min(Math.max(y, y1), y2);\n  return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\n}\n\nvar tmpPt = [];\n\nfunction nearestPointOnRect(pt, rect, out) {\n  var dist = projectPointToRect(rect.x, rect.y, rect.width, rect.height, pt.x, pt.y, tmpPt);\n  out.set(tmpPt[0], tmpPt[1]);\n  return dist;\n}\n\nfunction nearestPointOnPath(pt, path, out) {\n  var xi = 0;\n  var yi = 0;\n  var x0 = 0;\n  var y0 = 0;\n  var x1;\n  var y1;\n  var minDist = Infinity;\n  var data = path.data;\n  var x = pt.x;\n  var y = pt.y;\n\n  for (var i = 0; i < data.length;) {\n    var cmd = data[i++];\n\n    if (i === 1) {\n      xi = data[i];\n      yi = data[i + 1];\n      x0 = xi;\n      y0 = yi;\n    }\n\n    var d = minDist;\n\n    switch (cmd) {\n      case CMD.M:\n        x0 = data[i++];\n        y0 = data[i++];\n        xi = x0;\n        yi = y0;\n        break;\n\n      case CMD.L:\n        d = projectPointToLine(xi, yi, data[i], data[i + 1], x, y, tmpPt, true);\n        xi = data[i++];\n        yi = data[i++];\n        break;\n\n      case CMD.C:\n        d = cubicProjectPoint(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\n        xi = data[i++];\n        yi = data[i++];\n        break;\n\n      case CMD.Q:\n        d = quadraticProjectPoint(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\n        xi = data[i++];\n        yi = data[i++];\n        break;\n\n      case CMD.A:\n        var cx = data[i++];\n        var cy = data[i++];\n        var rx = data[i++];\n        var ry = data[i++];\n        var theta = data[i++];\n        var dTheta = data[i++];\n        i += 1;\n        var anticlockwise = !!(1 - data[i++]);\n        x1 = Math.cos(theta) * rx + cx;\n        y1 = Math.sin(theta) * ry + cy;\n\n        if (i <= 1) {\n          x0 = x1;\n          y0 = y1;\n        }\n\n        var _x = (x - cx) * ry / rx + cx;\n\n        d = projectPointToArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y, tmpPt);\n        xi = Math.cos(theta + dTheta) * rx + cx;\n        yi = Math.sin(theta + dTheta) * ry + cy;\n        break;\n\n      case CMD.R:\n        x0 = xi = data[i++];\n        y0 = yi = data[i++];\n        var width = data[i++];\n        var height = data[i++];\n        d = projectPointToRect(x0, y0, width, height, x, y, tmpPt);\n        break;\n\n      case CMD.Z:\n        d = projectPointToLine(xi, yi, x0, y0, x, y, tmpPt, true);\n        xi = x0;\n        yi = y0;\n        break;\n    }\n\n    if (d < minDist) {\n      minDist = d;\n      out.set(tmpPt[0], tmpPt[1]);\n    }\n  }\n\n  return minDist;\n}\n\nvar pt0 = new Point();\nvar pt1 = new Point();\nvar pt2 = new Point();\nvar dir = new Point();\nvar dir2 = new Point();\nexport function updateLabelLinePoints(target, labelLineModel) {\n  if (!target) {\n    return;\n  }\n\n  var labelLine = target.getTextGuideLine();\n  var label = target.getTextContent();\n\n  if (!(label && labelLine)) {\n    return;\n  }\n\n  var labelGuideConfig = target.textGuideLineConfig || {};\n  var points = [[0, 0], [0, 0], [0, 0]];\n  var searchSpace = labelGuideConfig.candidates || DEFAULT_SEARCH_SPACE;\n  var labelRect = label.getBoundingRect().clone();\n  labelRect.applyTransform(label.getComputedTransform());\n  var minDist = Infinity;\n  var anchorPoint = labelGuideConfig.anchor;\n  var targetTransform = target.getComputedTransform();\n  var targetInversedTransform = targetTransform && invert([], targetTransform);\n  var len = labelLineModel.get('length2') || 0;\n\n  if (anchorPoint) {\n    pt2.copy(anchorPoint);\n  }\n\n  for (var i = 0; i < searchSpace.length; i++) {\n    var candidate = searchSpace[i];\n    getCandidateAnchor(candidate, 0, labelRect, pt0, dir);\n    Point.scaleAndAdd(pt1, pt0, dir, len);\n    pt1.transform(targetInversedTransform);\n    var boundingRect = target.getBoundingRect();\n    var dist = anchorPoint ? anchorPoint.distance(pt1) : target instanceof Path ? nearestPointOnPath(pt1, target.path, pt2) : nearestPointOnRect(pt1, boundingRect, pt2);\n\n    if (dist < minDist) {\n      minDist = dist;\n      pt1.transform(targetTransform);\n      pt2.transform(targetTransform);\n      pt2.toArray(points[0]);\n      pt1.toArray(points[1]);\n      pt0.toArray(points[2]);\n    }\n  }\n\n  limitTurnAngle(points, labelLineModel.get('minTurnAngle'));\n  labelLine.setShape({\n    points: points\n  });\n}\nvar tmpArr = [];\nvar tmpProjPoint = new Point();\nexport function limitTurnAngle(linePoints, minTurnAngle) {\n  if (!(minTurnAngle <= 180 && minTurnAngle > 0)) {\n    return;\n  }\n\n  minTurnAngle = minTurnAngle / 180 * Math.PI;\n  pt0.fromArray(linePoints[0]);\n  pt1.fromArray(linePoints[1]);\n  pt2.fromArray(linePoints[2]);\n  Point.sub(dir, pt0, pt1);\n  Point.sub(dir2, pt2, pt1);\n  var len1 = dir.len();\n  var len2 = dir2.len();\n\n  if (len1 < 1e-3 || len2 < 1e-3) {\n    return;\n  }\n\n  dir.scale(1 / len1);\n  dir2.scale(1 / len2);\n  var angleCos = dir.dot(dir2);\n  var minTurnAngleCos = Math.cos(minTurnAngle);\n\n  if (minTurnAngleCos < angleCos) {\n    var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\n    tmpProjPoint.fromArray(tmpArr);\n    tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI - minTurnAngle));\n    var t = pt2.x !== pt1.x ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x) : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\n\n    if (isNaN(t)) {\n      return;\n    }\n\n    if (t < 0) {\n      Point.copy(tmpProjPoint, pt1);\n    } else if (t > 1) {\n      Point.copy(tmpProjPoint, pt2);\n    }\n\n    tmpProjPoint.toArray(linePoints[1]);\n  }\n}\nexport function limitSurfaceAngle(linePoints, surfaceNormal, maxSurfaceAngle) {\n  if (!(maxSurfaceAngle <= 180 && maxSurfaceAngle > 0)) {\n    return;\n  }\n\n  maxSurfaceAngle = maxSurfaceAngle / 180 * Math.PI;\n  pt0.fromArray(linePoints[0]);\n  pt1.fromArray(linePoints[1]);\n  pt2.fromArray(linePoints[2]);\n  Point.sub(dir, pt1, pt0);\n  Point.sub(dir2, pt2, pt1);\n  var len1 = dir.len();\n  var len2 = dir2.len();\n\n  if (len1 < 1e-3 || len2 < 1e-3) {\n    return;\n  }\n\n  dir.scale(1 / len1);\n  dir2.scale(1 / len2);\n  var angleCos = dir.dot(surfaceNormal);\n  var maxSurfaceAngleCos = Math.cos(maxSurfaceAngle);\n\n  if (angleCos < maxSurfaceAngleCos) {\n    var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\n    tmpProjPoint.fromArray(tmpArr);\n    var HALF_PI = Math.PI / 2;\n    var angle2 = Math.acos(dir2.dot(surfaceNormal));\n    var newAngle = HALF_PI + angle2 - maxSurfaceAngle;\n\n    if (newAngle >= HALF_PI) {\n      Point.copy(tmpProjPoint, pt2);\n    } else {\n      tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI / 2 - newAngle));\n      var t = pt2.x !== pt1.x ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x) : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\n\n      if (isNaN(t)) {\n        return;\n      }\n\n      if (t < 0) {\n        Point.copy(tmpProjPoint, pt1);\n      } else if (t > 1) {\n        Point.copy(tmpProjPoint, pt2);\n      }\n    }\n\n    tmpProjPoint.toArray(linePoints[1]);\n  }\n}\n\nfunction setLabelLineState(labelLine, ignore, stateName, stateModel) {\n  var isNormal = stateName === 'normal';\n  var stateObj = isNormal ? labelLine : labelLine.ensureState(stateName);\n  stateObj.ignore = ignore;\n  var smooth = stateModel.get('smooth');\n\n  if (smooth && smooth === true) {\n    smooth = 0.3;\n  }\n\n  stateObj.shape = stateObj.shape || {};\n\n  if (smooth > 0) {\n    stateObj.shape.smooth = smooth;\n  }\n\n  var styleObj = stateModel.getModel('lineStyle').getLineStyle();\n  isNormal ? labelLine.useStyle(styleObj) : stateObj.style = styleObj;\n}\n\nfunction buildLabelLinePath(path, shape) {\n  var smooth = shape.smooth;\n  var points = shape.points;\n\n  if (!points) {\n    return;\n  }\n\n  path.moveTo(points[0][0], points[0][1]);\n\n  if (smooth > 0 && points.length >= 3) {\n    var len1 = vector.dist(points[0], points[1]);\n    var len2 = vector.dist(points[1], points[2]);\n\n    if (!len1 || !len2) {\n      path.lineTo(points[1][0], points[1][1]);\n      path.lineTo(points[2][0], points[2][1]);\n      return;\n    }\n\n    var moveLen = Math.min(len1, len2) * smooth;\n    var midPoint0 = vector.lerp([], points[1], points[0], moveLen / len1);\n    var midPoint2 = vector.lerp([], points[1], points[2], moveLen / len2);\n    var midPoint1 = vector.lerp([], midPoint0, midPoint2, 0.5);\n    path.bezierCurveTo(midPoint0[0], midPoint0[1], midPoint0[0], midPoint0[1], midPoint1[0], midPoint1[1]);\n    path.bezierCurveTo(midPoint2[0], midPoint2[1], midPoint2[0], midPoint2[1], points[2][0], points[2][1]);\n  } else {\n    for (var i = 1; i < points.length; i++) {\n      path.lineTo(points[i][0], points[i][1]);\n    }\n  }\n}\n\nexport function setLabelLineStyle(targetEl, statesModels, defaultStyle) {\n  var labelLine = targetEl.getTextGuideLine();\n  var label = targetEl.getTextContent();\n\n  if (!label) {\n    if (labelLine) {\n      targetEl.removeTextGuideLine();\n    }\n\n    return;\n  }\n\n  var normalModel = statesModels.normal;\n  var showNormal = normalModel.get('show');\n  var labelIgnoreNormal = label.ignore;\n\n  for (var i = 0; i < DISPLAY_STATES.length; i++) {\n    var stateName = DISPLAY_STATES[i];\n    var stateModel = statesModels[stateName];\n    var isNormal = stateName === 'normal';\n\n    if (stateModel) {\n      var stateShow = stateModel.get('show');\n      var isLabelIgnored = isNormal ? labelIgnoreNormal : retrieve2(label.states[stateName] && label.states[stateName].ignore, labelIgnoreNormal);\n\n      if (isLabelIgnored || !retrieve2(stateShow, showNormal)) {\n        var stateObj = isNormal ? labelLine : labelLine && labelLine.states.normal;\n\n        if (stateObj) {\n          stateObj.ignore = true;\n        }\n\n        continue;\n      }\n\n      if (!labelLine) {\n        labelLine = new Polyline();\n        targetEl.setTextGuideLine(labelLine);\n\n        if (!isNormal && (labelIgnoreNormal || !showNormal)) {\n          setLabelLineState(labelLine, true, 'normal', statesModels.normal);\n        }\n\n        if (targetEl.stateProxy) {\n          labelLine.stateProxy = targetEl.stateProxy;\n        }\n      }\n\n      setLabelLineState(labelLine, false, stateName, stateModel);\n    }\n  }\n\n  if (labelLine) {\n    defaults(labelLine.style, defaultStyle);\n    labelLine.style.fill = null;\n    var showAbove = normalModel.get('showAbove');\n    var labelLineConfig = targetEl.textGuideLineConfig = targetEl.textGuideLineConfig || {};\n    labelLineConfig.showAbove = showAbove || false;\n    labelLine.buildPath = buildLabelLinePath;\n  }\n}\nexport function getLabelLineStatesModels(itemModel, labelLineName) {\n  labelLineName = labelLineName || 'labelLine';\n  var statesModels = {\n    normal: itemModel.getModel(labelLineName)\n  };\n\n  for (var i = 0; i < SPECIAL_STATES.length; i++) {\n    var stateName = SPECIAL_STATES[i];\n    statesModels[stateName] = itemModel.getModel([stateName, labelLineName]);\n  }\n\n  return statesModels;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { BoundingRect, OrientedBoundingRect } from '../util/graphic';\nexport function prepareLayoutList(input) {\n  var list = [];\n\n  for (var i = 0; i < input.length; i++) {\n    var rawItem = input[i];\n\n    if (rawItem.defaultAttr.ignore) {\n      continue;\n    }\n\n    var label = rawItem.label;\n    var transform = label.getComputedTransform();\n    var localRect = label.getBoundingRect();\n    var isAxisAligned = !transform || transform[1] < 1e-5 && transform[2] < 1e-5;\n    var minMargin = label.style.margin || 0;\n    var globalRect = localRect.clone();\n    globalRect.applyTransform(transform);\n    globalRect.x -= minMargin / 2;\n    globalRect.y -= minMargin / 2;\n    globalRect.width += minMargin;\n    globalRect.height += minMargin;\n    var obb = isAxisAligned ? new OrientedBoundingRect(localRect, transform) : null;\n    list.push({\n      label: label,\n      labelLine: rawItem.labelLine,\n      rect: globalRect,\n      localRect: localRect,\n      obb: obb,\n      priority: rawItem.priority,\n      defaultAttr: rawItem.defaultAttr,\n      layoutOption: rawItem.computedLayoutOption,\n      axisAligned: isAxisAligned,\n      transform: transform\n    });\n  }\n\n  return list;\n}\n\nfunction shiftLayout(list, xyDim, sizeDim, minBound, maxBound, balanceShift) {\n  var len = list.length;\n\n  if (len < 2) {\n    return;\n  }\n\n  list.sort(function (a, b) {\n    return a.rect[xyDim] - b.rect[xyDim];\n  });\n  var lastPos = 0;\n  var delta;\n  var adjusted = false;\n  var shifts = [];\n  var totalShifts = 0;\n\n  for (var i = 0; i < len; i++) {\n    var item = list[i];\n    var rect = item.rect;\n    delta = rect[xyDim] - lastPos;\n\n    if (delta < 0) {\n      rect[xyDim] -= delta;\n      item.label[xyDim] -= delta;\n      adjusted = true;\n    }\n\n    var shift = Math.max(-delta, 0);\n    shifts.push(shift);\n    totalShifts += shift;\n    lastPos = rect[xyDim] + rect[sizeDim];\n  }\n\n  if (totalShifts > 0 && balanceShift) {\n    shiftList(-totalShifts / len, 0, len);\n  }\n\n  var first = list[0];\n  var last = list[len - 1];\n  var minGap;\n  var maxGap;\n  updateMinMaxGap();\n  minGap < 0 && squeezeGaps(-minGap, 0.8);\n  maxGap < 0 && squeezeGaps(maxGap, 0.8);\n  updateMinMaxGap();\n  takeBoundsGap(minGap, maxGap, 1);\n  takeBoundsGap(maxGap, minGap, -1);\n  updateMinMaxGap();\n\n  if (minGap < 0) {\n    squeezeWhenBailout(-minGap);\n  }\n\n  if (maxGap < 0) {\n    squeezeWhenBailout(maxGap);\n  }\n\n  function updateMinMaxGap() {\n    minGap = first.rect[xyDim] - minBound;\n    maxGap = maxBound - last.rect[xyDim] - last.rect[sizeDim];\n  }\n\n  function takeBoundsGap(gapThisBound, gapOtherBound, moveDir) {\n    if (gapThisBound < 0) {\n      var moveFromMaxGap = Math.min(gapOtherBound, -gapThisBound);\n\n      if (moveFromMaxGap > 0) {\n        shiftList(moveFromMaxGap * moveDir, 0, len);\n        var remained = moveFromMaxGap + gapThisBound;\n\n        if (remained < 0) {\n          squeezeGaps(-remained * moveDir, 1);\n        }\n      } else {\n        squeezeGaps(-gapThisBound * moveDir, 1);\n      }\n    }\n  }\n\n  function shiftList(delta, start, end) {\n    if (delta !== 0) {\n      adjusted = true;\n    }\n\n    for (var i = start; i < end; i++) {\n      var item = list[i];\n      var rect = item.rect;\n      rect[xyDim] += delta;\n      item.label[xyDim] += delta;\n    }\n  }\n\n  function squeezeGaps(delta, maxSqeezePercent) {\n    var gaps = [];\n    var totalGaps = 0;\n\n    for (var i = 1; i < len; i++) {\n      var prevItemRect = list[i - 1].rect;\n      var gap = Math.max(list[i].rect[xyDim] - prevItemRect[xyDim] - prevItemRect[sizeDim], 0);\n      gaps.push(gap);\n      totalGaps += gap;\n    }\n\n    if (!totalGaps) {\n      return;\n    }\n\n    var squeezePercent = Math.min(Math.abs(delta) / totalGaps, maxSqeezePercent);\n\n    if (delta > 0) {\n      for (var i = 0; i < len - 1; i++) {\n        var movement = gaps[i] * squeezePercent;\n        shiftList(movement, 0, i + 1);\n      }\n    } else {\n      for (var i = len - 1; i > 0; i--) {\n        var movement = gaps[i - 1] * squeezePercent;\n        shiftList(-movement, i, len);\n      }\n    }\n  }\n\n  function squeezeWhenBailout(delta) {\n    var dir = delta < 0 ? -1 : 1;\n    delta = Math.abs(delta);\n    var moveForEachLabel = Math.ceil(delta / (len - 1));\n\n    for (var i = 0; i < len - 1; i++) {\n      if (dir > 0) {\n        shiftList(moveForEachLabel, 0, i + 1);\n      } else {\n        shiftList(-moveForEachLabel, len - i - 1, len);\n      }\n\n      delta -= moveForEachLabel;\n\n      if (delta <= 0) {\n        return;\n      }\n    }\n  }\n\n  return adjusted;\n}\n\nexport function shiftLayoutOnX(list, leftBound, rightBound, balanceShift) {\n  return shiftLayout(list, 'x', 'width', leftBound, rightBound, balanceShift);\n}\nexport function shiftLayoutOnY(list, topBound, bottomBound, balanceShift) {\n  return shiftLayout(list, 'y', 'height', topBound, bottomBound, balanceShift);\n}\nexport function hideOverlap(labelList) {\n  var displayedLabels = [];\n  labelList.sort(function (a, b) {\n    return b.priority - a.priority;\n  });\n  var globalRect = new BoundingRect(0, 0, 0, 0);\n\n  function hideEl(el) {\n    if (!el.ignore) {\n      var emphasisState = el.ensureState('emphasis');\n\n      if (emphasisState.ignore == null) {\n        emphasisState.ignore = false;\n      }\n    }\n\n    el.ignore = true;\n  }\n\n  for (var i = 0; i < labelList.length; i++) {\n    var labelItem = labelList[i];\n    var isAxisAligned = labelItem.axisAligned;\n    var localRect = labelItem.localRect;\n    var transform = labelItem.transform;\n    var label = labelItem.label;\n    var labelLine = labelItem.labelLine;\n    globalRect.copy(labelItem.rect);\n    globalRect.width -= 0.1;\n    globalRect.height -= 0.1;\n    globalRect.x += 0.05;\n    globalRect.y += 0.05;\n    var obb = labelItem.obb;\n    var overlapped = false;\n\n    for (var j = 0; j < displayedLabels.length; j++) {\n      var existsTextCfg = displayedLabels[j];\n\n      if (!globalRect.intersect(existsTextCfg.rect)) {\n        continue;\n      }\n\n      if (isAxisAligned && existsTextCfg.axisAligned) {\n        overlapped = true;\n        break;\n      }\n\n      if (!existsTextCfg.obb) {\n        existsTextCfg.obb = new OrientedBoundingRect(existsTextCfg.localRect, existsTextCfg.transform);\n      }\n\n      if (!obb) {\n        obb = new OrientedBoundingRect(localRect, transform);\n      }\n\n      if (obb.intersect(existsTextCfg.obb)) {\n        overlapped = true;\n        break;\n      }\n    }\n\n    if (overlapped) {\n      hideEl(label);\n      labelLine && hideEl(labelLine);\n    } else {\n      label.attr('ignore', labelItem.defaultAttr.ignore);\n      labelLine && labelLine.attr('ignore', labelItem.defaultAttr.labelGuideIgnore);\n      displayedLabels.push(labelItem);\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { BoundingRect, updateProps, initProps, isElementRemoved } from '../util/graphic';\nimport { getECData } from '../util/innerStore';\nimport { parsePercent } from '../util/number';\nimport Transformable from 'zrender/lib/core/Transformable';\nimport { updateLabelLinePoints, setLabelLineStyle, getLabelLineStatesModels } from './labelGuideHelper';\nimport { makeInner } from '../util/model';\nimport { retrieve2, each, keys, isFunction, filter, indexOf } from 'zrender/lib/core/util';\nimport { prepareLayoutList, hideOverlap, shiftLayoutOnX, shiftLayoutOnY } from './labelLayoutHelper';\nimport { labelInner, animateLabelValue } from './labelStyle';\n\nfunction cloneArr(points) {\n  if (points) {\n    var newPoints = [];\n\n    for (var i = 0; i < points.length; i++) {\n      newPoints.push(points[i].slice());\n    }\n\n    return newPoints;\n  }\n}\n\nfunction prepareLayoutCallbackParams(labelItem, hostEl) {\n  var label = labelItem.label;\n  var labelLine = hostEl && hostEl.getTextGuideLine();\n  return {\n    dataIndex: labelItem.dataIndex,\n    dataType: labelItem.dataType,\n    seriesIndex: labelItem.seriesModel.seriesIndex,\n    text: labelItem.label.style.text,\n    rect: labelItem.hostRect,\n    labelRect: labelItem.rect,\n    align: label.style.align,\n    verticalAlign: label.style.verticalAlign,\n    labelLinePoints: cloneArr(labelLine && labelLine.shape.points)\n  };\n}\n\nvar LABEL_OPTION_TO_STYLE_KEYS = ['align', 'verticalAlign', 'width', 'height', 'fontSize'];\nvar dummyTransformable = new Transformable();\nvar labelLayoutInnerStore = makeInner();\nvar labelLineAnimationStore = makeInner();\n\nfunction extendWithKeys(target, source, keys) {\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n\n    if (source[key] != null) {\n      target[key] = source[key];\n    }\n  }\n}\n\nvar LABEL_LAYOUT_PROPS = ['x', 'y', 'rotation'];\n\nvar LabelManager = function () {\n  function LabelManager() {\n    this._labelList = [];\n    this._chartViewList = [];\n  }\n\n  LabelManager.prototype.clearLabels = function () {\n    this._labelList = [];\n    this._chartViewList = [];\n  };\n\n  LabelManager.prototype._addLabel = function (dataIndex, dataType, seriesModel, label, layoutOption) {\n    var labelStyle = label.style;\n    var hostEl = label.__hostTarget;\n    var textConfig = hostEl.textConfig || {};\n    var labelTransform = label.getComputedTransform();\n    var labelRect = label.getBoundingRect().plain();\n    BoundingRect.applyTransform(labelRect, labelRect, labelTransform);\n\n    if (labelTransform) {\n      dummyTransformable.setLocalTransform(labelTransform);\n    } else {\n      dummyTransformable.x = dummyTransformable.y = dummyTransformable.rotation = dummyTransformable.originX = dummyTransformable.originY = 0;\n      dummyTransformable.scaleX = dummyTransformable.scaleY = 1;\n    }\n\n    var host = label.__hostTarget;\n    var hostRect;\n\n    if (host) {\n      hostRect = host.getBoundingRect().plain();\n      var transform = host.getComputedTransform();\n      BoundingRect.applyTransform(hostRect, hostRect, transform);\n    }\n\n    var labelGuide = hostRect && host.getTextGuideLine();\n\n    this._labelList.push({\n      label: label,\n      labelLine: labelGuide,\n      seriesModel: seriesModel,\n      dataIndex: dataIndex,\n      dataType: dataType,\n      layoutOption: layoutOption,\n      computedLayoutOption: null,\n      rect: labelRect,\n      hostRect: hostRect,\n      priority: hostRect ? hostRect.width * hostRect.height : 0,\n      defaultAttr: {\n        ignore: label.ignore,\n        labelGuideIgnore: labelGuide && labelGuide.ignore,\n        x: dummyTransformable.x,\n        y: dummyTransformable.y,\n        rotation: dummyTransformable.rotation,\n        style: {\n          x: labelStyle.x,\n          y: labelStyle.y,\n          align: labelStyle.align,\n          verticalAlign: labelStyle.verticalAlign,\n          width: labelStyle.width,\n          height: labelStyle.height,\n          fontSize: labelStyle.fontSize\n        },\n        cursor: label.cursor,\n        attachedPos: textConfig.position,\n        attachedRot: textConfig.rotation\n      }\n    });\n  };\n\n  LabelManager.prototype.addLabelsOfSeries = function (chartView) {\n    var _this = this;\n\n    this._chartViewList.push(chartView);\n\n    var seriesModel = chartView.__model;\n    var layoutOption = seriesModel.get('labelLayout');\n\n    if (!(isFunction(layoutOption) || keys(layoutOption).length)) {\n      return;\n    }\n\n    chartView.group.traverse(function (child) {\n      if (child.ignore) {\n        return true;\n      }\n\n      var textEl = child.getTextContent();\n      var ecData = getECData(child);\n\n      if (textEl && !textEl.disableLabelLayout) {\n        _this._addLabel(ecData.dataIndex, ecData.dataType, seriesModel, textEl, layoutOption);\n      }\n    });\n  };\n\n  LabelManager.prototype.updateLayoutConfig = function (api) {\n    var width = api.getWidth();\n    var height = api.getHeight();\n\n    function createDragHandler(el, labelLineModel) {\n      return function () {\n        updateLabelLinePoints(el, labelLineModel);\n      };\n    }\n\n    for (var i = 0; i < this._labelList.length; i++) {\n      var labelItem = this._labelList[i];\n      var label = labelItem.label;\n      var hostEl = label.__hostTarget;\n      var defaultLabelAttr = labelItem.defaultAttr;\n      var layoutOption = void 0;\n\n      if (typeof labelItem.layoutOption === 'function') {\n        layoutOption = labelItem.layoutOption(prepareLayoutCallbackParams(labelItem, hostEl));\n      } else {\n        layoutOption = labelItem.layoutOption;\n      }\n\n      layoutOption = layoutOption || {};\n      labelItem.computedLayoutOption = layoutOption;\n      var degreeToRadian = Math.PI / 180;\n\n      if (hostEl) {\n        hostEl.setTextConfig({\n          local: false,\n          position: layoutOption.x != null || layoutOption.y != null ? null : defaultLabelAttr.attachedPos,\n          rotation: layoutOption.rotate != null ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.attachedRot,\n          offset: [layoutOption.dx || 0, layoutOption.dy || 0]\n        });\n      }\n\n      var needsUpdateLabelLine = false;\n\n      if (layoutOption.x != null) {\n        label.x = parsePercent(layoutOption.x, width);\n        label.setStyle('x', 0);\n        needsUpdateLabelLine = true;\n      } else {\n        label.x = defaultLabelAttr.x;\n        label.setStyle('x', defaultLabelAttr.style.x);\n      }\n\n      if (layoutOption.y != null) {\n        label.y = parsePercent(layoutOption.y, height);\n        label.setStyle('y', 0);\n        needsUpdateLabelLine = true;\n      } else {\n        label.y = defaultLabelAttr.y;\n        label.setStyle('y', defaultLabelAttr.style.y);\n      }\n\n      if (layoutOption.labelLinePoints) {\n        var guideLine = hostEl.getTextGuideLine();\n\n        if (guideLine) {\n          guideLine.setShape({\n            points: layoutOption.labelLinePoints\n          });\n          needsUpdateLabelLine = false;\n        }\n      }\n\n      var labelLayoutStore = labelLayoutInnerStore(label);\n      labelLayoutStore.needsUpdateLabelLine = needsUpdateLabelLine;\n      label.rotation = layoutOption.rotate != null ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.rotation;\n\n      for (var k = 0; k < LABEL_OPTION_TO_STYLE_KEYS.length; k++) {\n        var key = LABEL_OPTION_TO_STYLE_KEYS[k];\n        label.setStyle(key, layoutOption[key] != null ? layoutOption[key] : defaultLabelAttr.style[key]);\n      }\n\n      if (layoutOption.draggable) {\n        label.draggable = true;\n        label.cursor = 'move';\n\n        if (hostEl) {\n          var hostModel = labelItem.seriesModel;\n\n          if (labelItem.dataIndex != null) {\n            var data = labelItem.seriesModel.getData(labelItem.dataType);\n            hostModel = data.getItemModel(labelItem.dataIndex);\n          }\n\n          label.on('drag', createDragHandler(hostEl, hostModel.getModel('labelLine')));\n        }\n      } else {\n        label.off('drag');\n        label.cursor = defaultLabelAttr.cursor;\n      }\n    }\n  };\n\n  LabelManager.prototype.layout = function (api) {\n    var width = api.getWidth();\n    var height = api.getHeight();\n    var labelList = prepareLayoutList(this._labelList);\n    var labelsNeedsAdjustOnX = filter(labelList, function (item) {\n      return item.layoutOption.moveOverlap === 'shiftX';\n    });\n    var labelsNeedsAdjustOnY = filter(labelList, function (item) {\n      return item.layoutOption.moveOverlap === 'shiftY';\n    });\n    shiftLayoutOnX(labelsNeedsAdjustOnX, 0, width);\n    shiftLayoutOnY(labelsNeedsAdjustOnY, 0, height);\n    var labelsNeedsHideOverlap = filter(labelList, function (item) {\n      return item.layoutOption.hideOverlap;\n    });\n    hideOverlap(labelsNeedsHideOverlap);\n  };\n\n  LabelManager.prototype.processLabelsOverall = function () {\n    var _this = this;\n\n    each(this._chartViewList, function (chartView) {\n      var seriesModel = chartView.__model;\n      var ignoreLabelLineUpdate = chartView.ignoreLabelLineUpdate;\n      var animationEnabled = seriesModel.isAnimationEnabled();\n      chartView.group.traverse(function (child) {\n        if (child.ignore) {\n          return true;\n        }\n\n        var needsUpdateLabelLine = !ignoreLabelLineUpdate;\n        var label = child.getTextContent();\n\n        if (!needsUpdateLabelLine && label) {\n          needsUpdateLabelLine = labelLayoutInnerStore(label).needsUpdateLabelLine;\n        }\n\n        if (needsUpdateLabelLine) {\n          _this._updateLabelLine(child, seriesModel);\n        }\n\n        if (animationEnabled) {\n          _this._animateLabels(child, seriesModel);\n        }\n      });\n    });\n  };\n\n  LabelManager.prototype._updateLabelLine = function (el, seriesModel) {\n    var textEl = el.getTextContent();\n    var ecData = getECData(el);\n    var dataIndex = ecData.dataIndex;\n\n    if (textEl && dataIndex != null) {\n      var data = seriesModel.getData(ecData.dataType);\n      var itemModel = data.getItemModel(dataIndex);\n      var defaultStyle = {};\n      var visualStyle = data.getItemVisual(dataIndex, 'style');\n      var visualType = data.getVisual('drawType');\n      defaultStyle.stroke = visualStyle[visualType];\n      var labelLineModel = itemModel.getModel('labelLine');\n      setLabelLineStyle(el, getLabelLineStatesModels(itemModel), defaultStyle);\n      updateLabelLinePoints(el, labelLineModel);\n    }\n  };\n\n  LabelManager.prototype._animateLabels = function (el, seriesModel) {\n    var textEl = el.getTextContent();\n    var guideLine = el.getTextGuideLine();\n\n    if (textEl && !textEl.ignore && !textEl.invisible && !el.disableLabelAnimation && !isElementRemoved(el)) {\n      var layoutStore = labelLayoutInnerStore(textEl);\n      var oldLayout = layoutStore.oldLayout;\n      var ecData = getECData(el);\n      var dataIndex = ecData.dataIndex;\n      var newProps = {\n        x: textEl.x,\n        y: textEl.y,\n        rotation: textEl.rotation\n      };\n      var data = seriesModel.getData(ecData.dataType);\n\n      if (!oldLayout) {\n        textEl.attr(newProps);\n\n        if (!labelInner(textEl).valueAnimation) {\n          var oldOpacity = retrieve2(textEl.style.opacity, 1);\n          textEl.style.opacity = 0;\n          initProps(textEl, {\n            style: {\n              opacity: oldOpacity\n            }\n          }, seriesModel, dataIndex);\n        }\n      } else {\n        textEl.attr(oldLayout);\n        var prevStates = el.prevStates;\n\n        if (prevStates) {\n          if (indexOf(prevStates, 'select') >= 0) {\n            textEl.attr(layoutStore.oldLayoutSelect);\n          }\n\n          if (indexOf(prevStates, 'emphasis') >= 0) {\n            textEl.attr(layoutStore.oldLayoutEmphasis);\n          }\n        }\n\n        updateProps(textEl, newProps, seriesModel, dataIndex);\n      }\n\n      layoutStore.oldLayout = newProps;\n\n      if (textEl.states.select) {\n        var layoutSelect = layoutStore.oldLayoutSelect = {};\n        extendWithKeys(layoutSelect, newProps, LABEL_LAYOUT_PROPS);\n        extendWithKeys(layoutSelect, textEl.states.select, LABEL_LAYOUT_PROPS);\n      }\n\n      if (textEl.states.emphasis) {\n        var layoutEmphasis = layoutStore.oldLayoutEmphasis = {};\n        extendWithKeys(layoutEmphasis, newProps, LABEL_LAYOUT_PROPS);\n        extendWithKeys(layoutEmphasis, textEl.states.emphasis, LABEL_LAYOUT_PROPS);\n      }\n\n      animateLabelValue(textEl, dataIndex, data, seriesModel, seriesModel);\n    }\n\n    if (guideLine && !guideLine.ignore && !guideLine.invisible) {\n      var layoutStore = labelLineAnimationStore(guideLine);\n      var oldLayout = layoutStore.oldLayout;\n      var newLayout = {\n        points: guideLine.shape.points\n      };\n\n      if (!oldLayout) {\n        guideLine.setShape(newLayout);\n        guideLine.style.strokePercent = 0;\n        initProps(guideLine, {\n          style: {\n            strokePercent: 1\n          }\n        }, seriesModel);\n      } else {\n        guideLine.attr({\n          shape: oldLayout\n        });\n        updateProps(guideLine, {\n          shape: newLayout\n        }, seriesModel);\n      }\n\n      layoutStore.oldLayout = newLayout;\n    }\n  };\n\n  return LabelManager;\n}();\n\nexport default LabelManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { extend, each, isArray } from 'zrender/lib/core/util';\nimport { deprecateReplaceLog, deprecateLog } from '../util/log';\nimport { queryDataIndex } from '../util/model';\nexport function createLegacyDataSelectAction(seriesType, ecRegisterAction) {\n  function getSeriesIndices(ecModel, payload) {\n    var seriesIndices = [];\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: seriesType,\n      query: payload\n    }, function (seriesModel) {\n      seriesIndices.push(seriesModel.seriesIndex);\n    });\n    return seriesIndices;\n  }\n\n  each([[seriesType + 'ToggleSelect', 'toggleSelect'], [seriesType + 'Select', 'select'], [seriesType + 'UnSelect', 'unselect']], function (eventsMap) {\n    ecRegisterAction(eventsMap[0], function (payload, ecModel, api) {\n      payload = extend({}, payload);\n\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateReplaceLog(payload.type, eventsMap[1]);\n      }\n\n      api.dispatchAction(extend(payload, {\n        type: eventsMap[1],\n        seriesIndex: getSeriesIndices(ecModel, payload)\n      }));\n    });\n  });\n}\n\nfunction handleSeriesLegacySelectEvents(type, eventPostfix, ecIns, ecModel, payload) {\n  var legacyEventName = type + eventPostfix;\n\n  if (!ecIns.isSilent(legacyEventName)) {\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateLog(\"event \" + legacyEventName + \" is deprecated.\");\n    }\n\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'pie'\n    }, function (seriesModel) {\n      var seriesIndex = seriesModel.seriesIndex;\n      var selected = payload.selected;\n\n      for (var i = 0; i < selected.length; i++) {\n        if (selected[i].seriesIndex === seriesIndex) {\n          var data = seriesModel.getData();\n          var dataIndex = queryDataIndex(data, payload.fromActionPayload);\n          ecIns.trigger(legacyEventName, {\n            type: legacyEventName,\n            seriesId: seriesModel.id,\n            name: isArray(dataIndex) ? data.getName(dataIndex[0]) : data.getName(dataIndex),\n            selected: extend({}, seriesModel.option.selectedMap)\n          });\n        }\n      }\n    });\n  }\n}\n\nexport function handleLegacySelectEvents(messageCenter, ecIns, api) {\n  messageCenter.on('selectchanged', function (params) {\n    var ecModel = api.getModel();\n\n    if (params.isFromClick) {\n      handleSeriesLegacySelectEvents('map', 'selectchanged', ecIns, ecModel, params);\n      handleSeriesLegacySelectEvents('pie', 'selectchanged', ecIns, ecModel, params);\n    } else if (params.fromAction === 'select') {\n      handleSeriesLegacySelectEvents('map', 'selected', ecIns, ecModel, params);\n      handleSeriesLegacySelectEvents('pie', 'selected', ecIns, ecModel, params);\n    } else if (params.fromAction === 'unselect') {\n      handleSeriesLegacySelectEvents('map', 'unselected', ecIns, ecModel, params);\n      handleSeriesLegacySelectEvents('pie', 'unselected', ecIns, ecModel, params);\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function findEventDispatcher(target, det, returnFirstMatch) {\n  var found;\n\n  while (target) {\n    if (det(target)) {\n      found = target;\n\n      if (returnFirstMatch) {\n        break;\n      }\n    }\n\n    target = target.__hostTarget || target.parent;\n  }\n\n  return found;\n}","var wmUniqueIndex = Math.round(Math.random() * 9);\nvar WeakMap = (function () {\n    function WeakMap() {\n        this._id = '__ec_inner_' + wmUniqueIndex++;\n    }\n    WeakMap.prototype.get = function (key) {\n        return this._guard(key)[this._id];\n    };\n    WeakMap.prototype.set = function (key, value) {\n        var target = this._guard(key);\n        if (typeof Object.defineProperty === 'function') {\n            Object.defineProperty(target, this._id, {\n                value: value,\n                enumerable: false,\n                configurable: true\n            });\n        }\n        else {\n            target[this._id] = value;\n        }\n        return this;\n    };\n    WeakMap.prototype[\"delete\"] = function (key) {\n        if (this.has(key)) {\n            delete this._guard(key)[this._id];\n            return true;\n        }\n        return false;\n    };\n    WeakMap.prototype.has = function (key) {\n        return !!this._guard(key)[this._id];\n    };\n    WeakMap.prototype._guard = function (key) {\n        if (key !== Object(key)) {\n            throw TypeError('Value of WeakMap is not a non-null object.');\n        }\n        return key;\n    };\n    return WeakMap;\n}());\nexport default WeakMap;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from './graphic';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { calculateTextPosition } from 'zrender/lib/contain/text';\nvar Triangle = graphic.Path.extend({\n  type: 'triangle',\n  shape: {\n    cx: 0,\n    cy: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (path, shape) {\n    var cx = shape.cx;\n    var cy = shape.cy;\n    var width = shape.width / 2;\n    var height = shape.height / 2;\n    path.moveTo(cx, cy - height);\n    path.lineTo(cx + width, cy + height);\n    path.lineTo(cx - width, cy + height);\n    path.closePath();\n  }\n});\nvar Diamond = graphic.Path.extend({\n  type: 'diamond',\n  shape: {\n    cx: 0,\n    cy: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (path, shape) {\n    var cx = shape.cx;\n    var cy = shape.cy;\n    var width = shape.width / 2;\n    var height = shape.height / 2;\n    path.moveTo(cx, cy - height);\n    path.lineTo(cx + width, cy);\n    path.lineTo(cx, cy + height);\n    path.lineTo(cx - width, cy);\n    path.closePath();\n  }\n});\nvar Pin = graphic.Path.extend({\n  type: 'pin',\n  shape: {\n    x: 0,\n    y: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (path, shape) {\n    var x = shape.x;\n    var y = shape.y;\n    var w = shape.width / 5 * 3;\n    var h = Math.max(w, shape.height);\n    var r = w / 2;\n    var dy = r * r / (h - r);\n    var cy = y - h + r + dy;\n    var angle = Math.asin(dy / r);\n    var dx = Math.cos(angle) * r;\n    var tanX = Math.sin(angle);\n    var tanY = Math.cos(angle);\n    var cpLen = r * 0.6;\n    var cpLen2 = r * 0.7;\n    path.moveTo(x - dx, cy + dy);\n    path.arc(x, cy, r, Math.PI - angle, Math.PI * 2 + angle);\n    path.bezierCurveTo(x + dx - tanX * cpLen, cy + dy + tanY * cpLen, x, y - cpLen2, x, y);\n    path.bezierCurveTo(x, y - cpLen2, x - dx + tanX * cpLen, cy + dy + tanY * cpLen, x - dx, cy + dy);\n    path.closePath();\n  }\n});\nvar Arrow = graphic.Path.extend({\n  type: 'arrow',\n  shape: {\n    x: 0,\n    y: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (ctx, shape) {\n    var height = shape.height;\n    var width = shape.width;\n    var x = shape.x;\n    var y = shape.y;\n    var dx = width / 3 * 2;\n    ctx.moveTo(x, y);\n    ctx.lineTo(x + dx, y + height);\n    ctx.lineTo(x, y + height / 4 * 3);\n    ctx.lineTo(x - dx, y + height);\n    ctx.lineTo(x, y);\n    ctx.closePath();\n  }\n});\nvar symbolCtors = {\n  line: graphic.Rect,\n  rect: graphic.Rect,\n  roundRect: graphic.Rect,\n  square: graphic.Rect,\n  circle: graphic.Circle,\n  diamond: Diamond,\n  pin: Pin,\n  arrow: Arrow,\n  triangle: Triangle\n};\nvar symbolShapeMakers = {\n  line: function (x, y, w, h, shape) {\n    var thickness = 2;\n    shape.x = x;\n    shape.y = y + h / 2 - thickness / 2;\n    shape.width = w;\n    shape.height = thickness;\n  },\n  rect: function (x, y, w, h, shape) {\n    shape.x = x;\n    shape.y = y;\n    shape.width = w;\n    shape.height = h;\n  },\n  roundRect: function (x, y, w, h, shape) {\n    shape.x = x;\n    shape.y = y;\n    shape.width = w;\n    shape.height = h;\n    shape.r = Math.min(w, h) / 4;\n  },\n  square: function (x, y, w, h, shape) {\n    var size = Math.min(w, h);\n    shape.x = x;\n    shape.y = y;\n    shape.width = size;\n    shape.height = size;\n  },\n  circle: function (x, y, w, h, shape) {\n    shape.cx = x + w / 2;\n    shape.cy = y + h / 2;\n    shape.r = Math.min(w, h) / 2;\n  },\n  diamond: function (x, y, w, h, shape) {\n    shape.cx = x + w / 2;\n    shape.cy = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  },\n  pin: function (x, y, w, h, shape) {\n    shape.x = x + w / 2;\n    shape.y = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  },\n  arrow: function (x, y, w, h, shape) {\n    shape.x = x + w / 2;\n    shape.y = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  },\n  triangle: function (x, y, w, h, shape) {\n    shape.cx = x + w / 2;\n    shape.cy = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  }\n};\nexport var symbolBuildProxies = {};\nzrUtil.each(symbolCtors, function (Ctor, name) {\n  symbolBuildProxies[name] = new Ctor();\n});\nvar SymbolClz = graphic.Path.extend({\n  type: 'symbol',\n  shape: {\n    symbolType: '',\n    x: 0,\n    y: 0,\n    width: 0,\n    height: 0\n  },\n  calculateTextPosition: function (out, config, rect) {\n    var res = calculateTextPosition(out, config, rect);\n    var shape = this.shape;\n\n    if (shape && shape.symbolType === 'pin' && config.position === 'inside') {\n      res.y = rect.y + rect.height * 0.4;\n    }\n\n    return res;\n  },\n  buildPath: function (ctx, shape, inBundle) {\n    var symbolType = shape.symbolType;\n\n    if (symbolType !== 'none') {\n      var proxySymbol = symbolBuildProxies[symbolType];\n\n      if (!proxySymbol) {\n        symbolType = 'rect';\n        proxySymbol = symbolBuildProxies[symbolType];\n      }\n\n      symbolShapeMakers[symbolType](shape.x, shape.y, shape.width, shape.height, proxySymbol.shape);\n      proxySymbol.buildPath(ctx, proxySymbol.shape, inBundle);\n    }\n  }\n});\n\nfunction symbolPathSetColor(color, innerColor) {\n  if (this.type !== 'image') {\n    var symbolStyle = this.style;\n\n    if (this.__isEmptyBrush) {\n      symbolStyle.stroke = color;\n      symbolStyle.fill = innerColor || '#fff';\n      symbolStyle.lineWidth = 2;\n    } else {\n      symbolStyle.fill = color;\n    }\n\n    this.markRedraw();\n  }\n}\n\nexport function createSymbol(symbolType, x, y, w, h, color, keepAspect) {\n  var isEmpty = symbolType.indexOf('empty') === 0;\n\n  if (isEmpty) {\n    symbolType = symbolType.substr(5, 1).toLowerCase() + symbolType.substr(6);\n  }\n\n  var symbolPath;\n\n  if (symbolType.indexOf('image://') === 0) {\n    symbolPath = graphic.makeImage(symbolType.slice(8), new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\n  } else if (symbolType.indexOf('path://') === 0) {\n    symbolPath = graphic.makePath(symbolType.slice(7), {}, new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\n  } else {\n    symbolPath = new SymbolClz({\n      shape: {\n        symbolType: symbolType,\n        x: x,\n        y: y,\n        width: w,\n        height: h\n      }\n    });\n  }\n\n  symbolPath.__isEmptyBrush = isEmpty;\n  symbolPath.setColor = symbolPathSetColor;\n\n  if (color) {\n    symbolPath.setColor(color);\n  }\n\n  return symbolPath;\n}","export function createLinearGradient(ctx, obj, rect) {\n    var x = obj.x == null ? 0 : obj.x;\n    var x2 = obj.x2 == null ? 1 : obj.x2;\n    var y = obj.y == null ? 0 : obj.y;\n    var y2 = obj.y2 == null ? 0 : obj.y2;\n    if (!obj.global) {\n        x = x * rect.width + rect.x;\n        x2 = x2 * rect.width + rect.x;\n        y = y * rect.height + rect.y;\n        y2 = y2 * rect.height + rect.y;\n    }\n    x = isNaN(x) ? 0 : x;\n    x2 = isNaN(x2) ? 1 : x2;\n    y = isNaN(y) ? 0 : y;\n    y2 = isNaN(y2) ? 0 : y2;\n    var canvasGradient = ctx.createLinearGradient(x, y, x2, y2);\n    return canvasGradient;\n}\nexport function createRadialGradient(ctx, obj, rect) {\n    var width = rect.width;\n    var height = rect.height;\n    var min = Math.min(width, height);\n    var x = obj.x == null ? 0.5 : obj.x;\n    var y = obj.y == null ? 0.5 : obj.y;\n    var r = obj.r == null ? 0.5 : obj.r;\n    if (!obj.global) {\n        x = x * width + rect.x;\n        y = y * height + rect.y;\n        r = r * min;\n    }\n    var canvasGradient = ctx.createRadialGradient(x, y, 0, x, y, r);\n    return canvasGradient;\n}\nexport function getCanvasGradient(ctx, obj, rect) {\n    var canvasGradient = obj.type === 'radial'\n        ? createRadialGradient(ctx, obj, rect)\n        : createLinearGradient(ctx, obj, rect);\n    var colorStops = obj.colorStops;\n    for (var i = 0; i < colorStops.length; i++) {\n        canvasGradient.addColorStop(colorStops[i].offset, colorStops[i].color);\n    }\n    return canvasGradient;\n}\nexport function isClipPathChanged(clipPaths, prevClipPaths) {\n    if (clipPaths === prevClipPaths || (!clipPaths && !prevClipPaths)) {\n        return false;\n    }\n    if (!clipPaths || !prevClipPaths || (clipPaths.length !== prevClipPaths.length)) {\n        return true;\n    }\n    for (var i = 0; i < clipPaths.length; i++) {\n        if (clipPaths[i] !== prevClipPaths[i]) {\n            return true;\n        }\n    }\n    return false;\n}\n","import { isArray, isNumber } from '../../core/util';\nexport function normalizeLineDash(lineType, lineWidth) {\n    if (!lineType || lineType === 'solid' || !(lineWidth > 0)) {\n        return null;\n    }\n    lineWidth = lineWidth || 1;\n    return lineType === 'dashed'\n        ? [4 * lineWidth, 2 * lineWidth]\n        : lineType === 'dotted'\n            ? [lineWidth]\n            : isNumber(lineType)\n                ? [lineType] : isArray(lineType) ? lineType : null;\n}\n","import { DEFAULT_COMMON_STYLE } from '../graphic/Displayable';\nimport PathProxy from '../core/PathProxy';\nimport { createOrUpdateImage, isImageReady } from '../graphic/helper/image';\nimport { getCanvasGradient, isClipPathChanged } from './helper';\nimport Path from '../graphic/Path';\nimport ZRImage from '../graphic/Image';\nimport TSpan from '../graphic/TSpan';\nimport { DEFAULT_FONT } from '../contain/text';\nimport { map } from '../core/util';\nimport { normalizeLineDash } from '../graphic/helper/dashStyle';\nimport Element from '../Element';\nimport IncrementalDisplayable from '../graphic/IncrementalDisplayable';\nvar pathProxyForDraw = new PathProxy(true);\nfunction styleHasStroke(style) {\n    var stroke = style.stroke;\n    return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\n}\nfunction styleHasFill(style) {\n    var fill = style.fill;\n    return fill != null && fill !== 'none';\n}\nfunction doFillPath(ctx, style) {\n    if (style.fillOpacity != null && style.fillOpacity !== 1) {\n        var originalGlobalAlpha = ctx.globalAlpha;\n        ctx.globalAlpha = style.fillOpacity * style.opacity;\n        ctx.fill();\n        ctx.globalAlpha = originalGlobalAlpha;\n    }\n    else {\n        ctx.fill();\n    }\n}\nfunction doStrokePath(ctx, style) {\n    if (style.strokeOpacity != null && style.strokeOpacity !== 1) {\n        var originalGlobalAlpha = ctx.globalAlpha;\n        ctx.globalAlpha = style.strokeOpacity * style.opacity;\n        ctx.stroke();\n        ctx.globalAlpha = originalGlobalAlpha;\n    }\n    else {\n        ctx.stroke();\n    }\n}\nexport function createCanvasPattern(ctx, pattern, el) {\n    var image = createOrUpdateImage(pattern.image, pattern.__image, el);\n    if (isImageReady(image)) {\n        var canvasPattern = ctx.createPattern(image, pattern.repeat || 'repeat');\n        if (typeof DOMMatrix === 'function') {\n            var matrix = new DOMMatrix();\n            matrix.rotateSelf(0, 0, (pattern.rotation || 0) / Math.PI * 180);\n            matrix.scaleSelf((pattern.scaleX || 1), (pattern.scaleY || 1));\n            matrix.translateSelf((pattern.x || 0), (pattern.y || 0));\n            canvasPattern.setTransform(matrix);\n        }\n        return canvasPattern;\n    }\n}\nfunction brushPath(ctx, el, style, inBatch) {\n    var hasStroke = styleHasStroke(style);\n    var hasFill = styleHasFill(style);\n    var strokePercent = style.strokePercent;\n    var strokePart = strokePercent < 1;\n    var firstDraw = !el.path;\n    if ((!el.silent || strokePart) && firstDraw) {\n        el.createPathProxy();\n    }\n    var path = el.path || pathProxyForDraw;\n    if (!inBatch) {\n        var fill = style.fill;\n        var stroke = style.stroke;\n        var hasFillGradient = hasFill && !!fill.colorStops;\n        var hasStrokeGradient = hasStroke && !!stroke.colorStops;\n        var hasFillPattern = hasFill && !!fill.image;\n        var hasStrokePattern = hasStroke && !!stroke.image;\n        var fillGradient = void 0;\n        var strokeGradient = void 0;\n        var fillPattern = void 0;\n        var strokePattern = void 0;\n        var rect = void 0;\n        if (hasFillGradient || hasStrokeGradient) {\n            rect = el.getBoundingRect();\n        }\n        if (hasFillGradient) {\n            fillGradient = el.__dirty\n                ? getCanvasGradient(ctx, fill, rect)\n                : el.__canvasFillGradient;\n            el.__canvasFillGradient = fillGradient;\n        }\n        if (hasStrokeGradient) {\n            strokeGradient = el.__dirty\n                ? getCanvasGradient(ctx, stroke, rect)\n                : el.__canvasStrokeGradient;\n            el.__canvasStrokeGradient = strokeGradient;\n        }\n        if (hasFillPattern) {\n            fillPattern = (el.__dirty || !el.__canvasFillPattern)\n                ? createCanvasPattern(ctx, fill, el)\n                : el.__canvasFillPattern;\n            el.__canvasFillPattern = fillPattern;\n        }\n        if (hasStrokePattern) {\n            strokePattern = (el.__dirty || !el.__canvasStrokePattern)\n                ? createCanvasPattern(ctx, stroke, el)\n                : el.__canvasStrokePattern;\n            el.__canvasStrokePattern = fillPattern;\n        }\n        if (hasFillGradient) {\n            ctx.fillStyle = fillGradient;\n        }\n        else if (hasFillPattern) {\n            if (fillPattern) {\n                ctx.fillStyle = fillPattern;\n            }\n            else {\n                hasFill = false;\n            }\n        }\n        if (hasStrokeGradient) {\n            ctx.strokeStyle = strokeGradient;\n        }\n        else if (hasStrokePattern) {\n            if (strokePattern) {\n                ctx.strokeStyle = strokePattern;\n            }\n            else {\n                hasStroke = false;\n            }\n        }\n    }\n    var lineDash = style.lineDash && style.lineWidth > 0 && normalizeLineDash(style.lineDash, style.lineWidth);\n    var lineDashOffset = style.lineDashOffset;\n    var ctxLineDash = !!ctx.setLineDash;\n    var scale = el.getGlobalScale();\n    path.setScale(scale[0], scale[1], el.segmentIgnoreThreshold);\n    if (lineDash) {\n        var lineScale_1 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\n        if (lineScale_1 && lineScale_1 !== 1) {\n            lineDash = map(lineDash, function (rawVal) {\n                return rawVal / lineScale_1;\n            });\n            lineDashOffset /= lineScale_1;\n        }\n    }\n    var needsRebuild = true;\n    if (firstDraw || (el.__dirty & Path.SHAPE_CHANGED_BIT)\n        || (lineDash && !ctxLineDash && hasStroke)) {\n        path.setDPR(ctx.dpr);\n        if (strokePart) {\n            path.setContext(null);\n        }\n        else {\n            path.setContext(ctx);\n            needsRebuild = false;\n        }\n        path.reset();\n        if (lineDash && !ctxLineDash) {\n            path.setLineDash(lineDash);\n            path.setLineDashOffset(lineDashOffset);\n        }\n        el.buildPath(path, el.shape, inBatch);\n        path.toStatic();\n        el.pathUpdated();\n    }\n    if (needsRebuild) {\n        path.rebuildPath(ctx, strokePart ? strokePercent : 1);\n    }\n    if (lineDash && ctxLineDash) {\n        ctx.setLineDash(lineDash);\n        ctx.lineDashOffset = lineDashOffset;\n    }\n    if (!inBatch) {\n        if (style.strokeFirst) {\n            if (hasStroke) {\n                doStrokePath(ctx, style);\n            }\n            if (hasFill) {\n                doFillPath(ctx, style);\n            }\n        }\n        else {\n            if (hasFill) {\n                doFillPath(ctx, style);\n            }\n            if (hasStroke) {\n                doStrokePath(ctx, style);\n            }\n        }\n    }\n    if (lineDash && ctxLineDash) {\n        ctx.setLineDash([]);\n    }\n}\nfunction brushImage(ctx, el, style) {\n    var image = el.__image = createOrUpdateImage(style.image, el.__image, el, el.onload);\n    if (!image || !isImageReady(image)) {\n        return;\n    }\n    var x = style.x || 0;\n    var y = style.y || 0;\n    var width = el.getWidth();\n    var height = el.getHeight();\n    var aspect = image.width / image.height;\n    if (width == null && height != null) {\n        width = height * aspect;\n    }\n    else if (height == null && width != null) {\n        height = width / aspect;\n    }\n    else if (width == null && height == null) {\n        width = image.width;\n        height = image.height;\n    }\n    if (style.sWidth && style.sHeight) {\n        var sx = style.sx || 0;\n        var sy = style.sy || 0;\n        ctx.drawImage(image, sx, sy, style.sWidth, style.sHeight, x, y, width, height);\n    }\n    else if (style.sx && style.sy) {\n        var sx = style.sx;\n        var sy = style.sy;\n        var sWidth = width - sx;\n        var sHeight = height - sy;\n        ctx.drawImage(image, sx, sy, sWidth, sHeight, x, y, width, height);\n    }\n    else {\n        ctx.drawImage(image, x, y, width, height);\n    }\n}\nfunction brushText(ctx, el, style) {\n    var text = style.text;\n    text != null && (text += '');\n    if (text) {\n        ctx.font = style.font || DEFAULT_FONT;\n        ctx.textAlign = style.textAlign;\n        ctx.textBaseline = style.textBaseline;\n        var hasLineDash = void 0;\n        if (ctx.setLineDash) {\n            var lineDash = style.lineDash && style.lineWidth > 0 && normalizeLineDash(style.lineDash, style.lineWidth);\n            var lineDashOffset = style.lineDashOffset;\n            if (lineDash) {\n                var lineScale_2 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\n                if (lineScale_2 && lineScale_2 !== 1) {\n                    lineDash = map(lineDash, function (rawVal) {\n                        return rawVal / lineScale_2;\n                    });\n                    lineDashOffset /= lineScale_2;\n                }\n                ctx.setLineDash(lineDash);\n                ctx.lineDashOffset = lineDashOffset;\n                hasLineDash = true;\n            }\n        }\n        if (style.strokeFirst) {\n            if (styleHasStroke(style)) {\n                ctx.strokeText(text, style.x, style.y);\n            }\n            if (styleHasFill(style)) {\n                ctx.fillText(text, style.x, style.y);\n            }\n        }\n        else {\n            if (styleHasFill(style)) {\n                ctx.fillText(text, style.x, style.y);\n            }\n            if (styleHasStroke(style)) {\n                ctx.strokeText(text, style.x, style.y);\n            }\n        }\n        if (hasLineDash) {\n            ctx.setLineDash([]);\n        }\n    }\n}\nvar SHADOW_NUMBER_PROPS = ['shadowBlur', 'shadowOffsetX', 'shadowOffsetY'];\nvar STROKE_PROPS = [\n    ['lineCap', 'butt'], ['lineJoin', 'miter'], ['miterLimit', 10]\n];\nfunction bindCommonProps(ctx, style, prevStyle, forceSetAll, scope) {\n    var styleChanged = false;\n    if (!forceSetAll) {\n        prevStyle = prevStyle || {};\n        if (style === prevStyle) {\n            return false;\n        }\n    }\n    if (forceSetAll || style.opacity !== prevStyle.opacity) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.globalAlpha = style.opacity == null ? DEFAULT_COMMON_STYLE.opacity : style.opacity;\n    }\n    if (forceSetAll || style.blend !== prevStyle.blend) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.globalCompositeOperation = style.blend || DEFAULT_COMMON_STYLE.blend;\n    }\n    for (var i = 0; i < SHADOW_NUMBER_PROPS.length; i++) {\n        var propName = SHADOW_NUMBER_PROPS[i];\n        if (forceSetAll || style[propName] !== prevStyle[propName]) {\n            if (!styleChanged) {\n                flushPathDrawn(ctx, scope);\n                styleChanged = true;\n            }\n            ctx[propName] = ctx.dpr * (style[propName] || 0);\n        }\n    }\n    if (forceSetAll || style.shadowColor !== prevStyle.shadowColor) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.shadowColor = style.shadowColor || DEFAULT_COMMON_STYLE.shadowColor;\n    }\n    return styleChanged;\n}\nfunction bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetAll, scope) {\n    var style = getStyle(el, scope.inHover);\n    var prevStyle = forceSetAll\n        ? null\n        : (prevEl && getStyle(prevEl, scope.inHover) || {});\n    if (style === prevStyle) {\n        return false;\n    }\n    var styleChanged = bindCommonProps(ctx, style, prevStyle, forceSetAll, scope);\n    if (forceSetAll || style.fill !== prevStyle.fill) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.fillStyle = style.fill;\n    }\n    if (forceSetAll || style.stroke !== prevStyle.stroke) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.strokeStyle = style.stroke;\n    }\n    if (forceSetAll || style.opacity !== prevStyle.opacity) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.globalAlpha = style.opacity == null ? 1 : style.opacity;\n    }\n    if (el.hasStroke()) {\n        var lineWidth = style.lineWidth;\n        var newLineWidth = lineWidth / ((style.strokeNoScale && el && el.getLineScale) ? el.getLineScale() : 1);\n        if (ctx.lineWidth !== newLineWidth) {\n            if (!styleChanged) {\n                flushPathDrawn(ctx, scope);\n                styleChanged = true;\n            }\n            ctx.lineWidth = newLineWidth;\n        }\n    }\n    for (var i = 0; i < STROKE_PROPS.length; i++) {\n        var prop = STROKE_PROPS[i];\n        var propName = prop[0];\n        if (forceSetAll || style[propName] !== prevStyle[propName]) {\n            if (!styleChanged) {\n                flushPathDrawn(ctx, scope);\n                styleChanged = true;\n            }\n            ctx[propName] = style[propName] || prop[1];\n        }\n    }\n    return styleChanged;\n}\nfunction bindImageStyle(ctx, el, prevEl, forceSetAll, scope) {\n    return bindCommonProps(ctx, getStyle(el, scope.inHover), prevEl && getStyle(prevEl, scope.inHover), forceSetAll, scope);\n}\nfunction setContextTransform(ctx, el) {\n    var m = el.transform;\n    var dpr = ctx.dpr || 1;\n    if (m) {\n        ctx.setTransform(dpr * m[0], dpr * m[1], dpr * m[2], dpr * m[3], dpr * m[4], dpr * m[5]);\n    }\n    else {\n        ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n    }\n}\nfunction updateClipStatus(clipPaths, ctx, scope) {\n    var allClipped = false;\n    for (var i = 0; i < clipPaths.length; i++) {\n        var clipPath = clipPaths[i];\n        allClipped = allClipped || clipPath.isZeroArea();\n        setContextTransform(ctx, clipPath);\n        ctx.beginPath();\n        clipPath.buildPath(ctx, clipPath.shape);\n        ctx.clip();\n    }\n    scope.allClipped = allClipped;\n}\nfunction isTransformChanged(m0, m1) {\n    if (m0 && m1) {\n        return m0[0] !== m1[0]\n            || m0[1] !== m1[1]\n            || m0[2] !== m1[2]\n            || m0[3] !== m1[3]\n            || m0[4] !== m1[4]\n            || m0[5] !== m1[5];\n    }\n    else if (!m0 && !m1) {\n        return false;\n    }\n    return true;\n}\nvar DRAW_TYPE_PATH = 1;\nvar DRAW_TYPE_IMAGE = 2;\nvar DRAW_TYPE_TEXT = 3;\nvar DRAW_TYPE_INCREMENTAL = 4;\nfunction canPathBatch(style) {\n    var hasFill = styleHasFill(style);\n    var hasStroke = styleHasStroke(style);\n    return !(style.lineDash\n        || !(+hasFill ^ +hasStroke)\n        || (hasFill && typeof style.fill !== 'string')\n        || (hasStroke && typeof style.stroke !== 'string')\n        || style.strokePercent < 1\n        || style.strokeOpacity < 1\n        || style.fillOpacity < 1);\n}\nfunction flushPathDrawn(ctx, scope) {\n    scope.batchFill && ctx.fill();\n    scope.batchStroke && ctx.stroke();\n    scope.batchFill = '';\n    scope.batchStroke = '';\n}\nfunction getStyle(el, inHover) {\n    return inHover ? (el.__hoverStyle || el.style) : el.style;\n}\nexport function brushSingle(ctx, el) {\n    brush(ctx, el, { inHover: false, viewWidth: 0, viewHeight: 0 }, true);\n}\nexport function brush(ctx, el, scope, isLast) {\n    var m = el.transform;\n    if (!el.shouldBePainted(scope.viewWidth, scope.viewHeight, false, false)) {\n        el.__dirty &= ~Element.REDARAW_BIT;\n        el.__isRendered = false;\n        return;\n    }\n    var clipPaths = el.__clipPaths;\n    var prevElClipPaths = scope.prevElClipPaths;\n    var forceSetTransform = false;\n    var forceSetStyle = false;\n    if (!prevElClipPaths || isClipPathChanged(clipPaths, prevElClipPaths)) {\n        if (prevElClipPaths && prevElClipPaths.length) {\n            flushPathDrawn(ctx, scope);\n            ctx.restore();\n            forceSetStyle = forceSetTransform = true;\n            scope.prevElClipPaths = null;\n            scope.allClipped = false;\n            scope.prevEl = null;\n        }\n        if (clipPaths && clipPaths.length) {\n            flushPathDrawn(ctx, scope);\n            ctx.save();\n            updateClipStatus(clipPaths, ctx, scope);\n            forceSetTransform = true;\n        }\n        scope.prevElClipPaths = clipPaths;\n    }\n    if (scope.allClipped) {\n        el.__isRendered = false;\n        return;\n    }\n    el.beforeBrush && el.beforeBrush();\n    el.innerBeforeBrush();\n    var prevEl = scope.prevEl;\n    if (!prevEl) {\n        forceSetStyle = forceSetTransform = true;\n    }\n    var canBatchPath = el instanceof Path\n        && el.autoBatch\n        && canPathBatch(el.style);\n    if (forceSetTransform || isTransformChanged(m, prevEl.transform)) {\n        flushPathDrawn(ctx, scope);\n        setContextTransform(ctx, el);\n    }\n    else if (!canBatchPath) {\n        flushPathDrawn(ctx, scope);\n    }\n    var style = getStyle(el, scope.inHover);\n    if (el instanceof Path) {\n        if (scope.lastDrawType !== DRAW_TYPE_PATH) {\n            forceSetStyle = true;\n            scope.lastDrawType = DRAW_TYPE_PATH;\n        }\n        bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\n        if (!canBatchPath || (!scope.batchFill && !scope.batchStroke)) {\n            ctx.beginPath();\n        }\n        brushPath(ctx, el, style, canBatchPath);\n        if (canBatchPath) {\n            scope.batchFill = style.fill || '';\n            scope.batchStroke = style.stroke || '';\n        }\n    }\n    else {\n        if (el instanceof TSpan) {\n            if (scope.lastDrawType !== DRAW_TYPE_TEXT) {\n                forceSetStyle = true;\n                scope.lastDrawType = DRAW_TYPE_TEXT;\n            }\n            bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\n            brushText(ctx, el, style);\n        }\n        else if (el instanceof ZRImage) {\n            if (scope.lastDrawType !== DRAW_TYPE_IMAGE) {\n                forceSetStyle = true;\n                scope.lastDrawType = DRAW_TYPE_IMAGE;\n            }\n            bindImageStyle(ctx, el, prevEl, forceSetStyle, scope);\n            brushImage(ctx, el, style);\n        }\n        else if (el instanceof IncrementalDisplayable) {\n            if (scope.lastDrawType !== DRAW_TYPE_INCREMENTAL) {\n                forceSetStyle = true;\n                scope.lastDrawType = DRAW_TYPE_INCREMENTAL;\n            }\n            brushIncremental(ctx, el, scope);\n        }\n    }\n    if (canBatchPath && isLast) {\n        flushPathDrawn(ctx, scope);\n    }\n    el.innerAfterBrush();\n    el.afterBrush && el.afterBrush();\n    scope.prevEl = el;\n    el.__dirty = 0;\n    el.__isRendered = true;\n}\nfunction brushIncremental(ctx, el, scope) {\n    var displayables = el.getDisplayables();\n    var temporalDisplayables = el.getTemporalDisplayables();\n    ctx.save();\n    var innerScope = {\n        prevElClipPaths: null,\n        prevEl: null,\n        allClipped: false,\n        viewWidth: scope.viewWidth,\n        viewHeight: scope.viewHeight,\n        inHover: scope.inHover\n    };\n    var i;\n    var len;\n    for (i = el.getCursor(), len = displayables.length; i < len; i++) {\n        var displayable = displayables[i];\n        displayable.beforeBrush && displayable.beforeBrush();\n        displayable.innerBeforeBrush();\n        brush(ctx, displayable, innerScope, i === len - 1);\n        displayable.innerAfterBrush();\n        displayable.afterBrush && displayable.afterBrush();\n        innerScope.prevEl = displayable;\n    }\n    for (var i_1 = 0, len_1 = temporalDisplayables.length; i_1 < len_1; i_1++) {\n        var displayable = temporalDisplayables[i_1];\n        displayable.beforeBrush && displayable.beforeBrush();\n        displayable.innerBeforeBrush();\n        brush(ctx, displayable, innerScope, i_1 === len_1 - 1);\n        displayable.innerAfterBrush();\n        displayable.afterBrush && displayable.afterBrush();\n        innerScope.prevEl = displayable;\n    }\n    el.clearTemporalDisplayables();\n    el.notClear = true;\n    ctx.restore();\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport WeakMap from 'zrender/lib/core/WeakMap';\nimport LRU from 'zrender/lib/core/LRU';\nimport { defaults, createCanvas, map, isArray } from 'zrender/lib/core/util';\nimport { getLeastCommonMultiple } from './number';\nimport { createSymbol } from './symbol';\nimport { brushSingle } from 'zrender/lib/canvas/graphic';\nvar decalMap = new WeakMap();\nvar decalCache = new LRU(100);\nvar decalKeys = ['symbol', 'symbolSize', 'symbolKeepAspect', 'color', 'backgroundColor', 'dashArrayX', 'dashArrayY', 'maxTileWidth', 'maxTileHeight'];\nexport function createOrUpdatePatternFromDecal(decalObject, api) {\n  if (decalObject === 'none') {\n    return null;\n  }\n\n  var dpr = api.getDevicePixelRatio();\n  var zr = api.getZr();\n  var isSVG = zr.painter.type === 'svg';\n\n  if (decalObject.dirty) {\n    decalMap[\"delete\"](decalObject);\n  }\n\n  var oldPattern = decalMap.get(decalObject);\n\n  if (oldPattern) {\n    return oldPattern;\n  }\n\n  var decalOpt = defaults(decalObject, {\n    symbol: 'rect',\n    symbolSize: 1,\n    symbolKeepAspect: true,\n    color: 'rgba(0, 0, 0, 0.2)',\n    backgroundColor: null,\n    dashArrayX: 5,\n    dashArrayY: 5,\n    rotation: 0,\n    maxTileWidth: 512,\n    maxTileHeight: 512\n  });\n\n  if (decalOpt.backgroundColor === 'none') {\n    decalOpt.backgroundColor = null;\n  }\n\n  var pattern = {\n    repeat: 'repeat'\n  };\n  setPatternnSource(pattern);\n  pattern.rotation = decalOpt.rotation;\n  pattern.scaleX = pattern.scaleY = isSVG ? 1 : 1 / dpr;\n  decalMap.set(decalObject, pattern);\n  decalObject.dirty = false;\n  return pattern;\n\n  function setPatternnSource(pattern) {\n    var keys = [dpr];\n    var isValidKey = true;\n\n    for (var i = 0; i < decalKeys.length; ++i) {\n      var value = decalOpt[decalKeys[i]];\n      var valueType = typeof value;\n\n      if (value != null && !isArray(value) && valueType !== 'string' && valueType !== 'number' && valueType !== 'boolean') {\n        isValidKey = false;\n        break;\n      }\n\n      keys.push(value);\n    }\n\n    var cacheKey;\n\n    if (isValidKey) {\n      cacheKey = keys.join(',') + (isSVG ? '-svg' : '');\n      var cache = decalCache.get(cacheKey);\n\n      if (cache) {\n        isSVG ? pattern.svgElement = cache : pattern.image = cache;\n      }\n    }\n\n    var dashArrayX = normalizeDashArrayX(decalOpt.dashArrayX);\n    var dashArrayY = normalizeDashArrayY(decalOpt.dashArrayY);\n    var symbolArray = normalizeSymbolArray(decalOpt.symbol);\n    var lineBlockLengthsX = getLineBlockLengthX(dashArrayX);\n    var lineBlockLengthY = getLineBlockLengthY(dashArrayY);\n    var canvas = !isSVG && createCanvas();\n    var svgRoot = isSVG && zr.painter.createSVGElement('g');\n    var pSize = getPatternSize();\n    var ctx;\n\n    if (canvas) {\n      canvas.width = pSize.width * dpr;\n      canvas.height = pSize.height * dpr;\n      ctx = canvas.getContext('2d');\n    }\n\n    brushDecal();\n\n    if (isValidKey) {\n      decalCache.put(cacheKey, canvas || svgRoot);\n    }\n\n    pattern.image = canvas;\n    pattern.svgElement = svgRoot;\n    pattern.svgWidth = pSize.width;\n    pattern.svgHeight = pSize.height;\n\n    function getPatternSize() {\n      var width = 1;\n\n      for (var i = 0, xlen = lineBlockLengthsX.length; i < xlen; ++i) {\n        width = getLeastCommonMultiple(width, lineBlockLengthsX[i]);\n      }\n\n      var symbolRepeats = 1;\n\n      for (var i = 0, xlen = symbolArray.length; i < xlen; ++i) {\n        symbolRepeats = getLeastCommonMultiple(symbolRepeats, symbolArray[i].length);\n      }\n\n      width *= symbolRepeats;\n      var height = lineBlockLengthY * lineBlockLengthsX.length * symbolArray.length;\n\n      if (process.env.NODE_ENV !== 'production') {\n        var warn = function (attrName) {\n          console.warn(\"Calculated decal size is greater than \" + attrName + \" due to decal option settings so \" + attrName + \" is used for the decal size. Please consider changing the decal option to make a smaller decal or set \" + attrName + \" to be larger to avoid incontinuity.\");\n        };\n\n        if (width > decalOpt.maxTileWidth) {\n          warn('maxTileWidth');\n        }\n\n        if (height > decalOpt.maxTileHeight) {\n          warn('maxTileHeight');\n        }\n      }\n\n      return {\n        width: Math.max(1, Math.min(width, decalOpt.maxTileWidth)),\n        height: Math.max(1, Math.min(height, decalOpt.maxTileHeight))\n      };\n    }\n\n    function brushDecal() {\n      if (ctx) {\n        ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n        if (decalOpt.backgroundColor) {\n          ctx.fillStyle = decalOpt.backgroundColor;\n          ctx.fillRect(0, 0, canvas.width, canvas.height);\n        }\n      }\n\n      var ySum = 0;\n\n      for (var i = 0; i < dashArrayY.length; ++i) {\n        ySum += dashArrayY[i];\n      }\n\n      if (ySum <= 0) {\n        return;\n      }\n\n      var y = -lineBlockLengthY;\n      var yId = 0;\n      var yIdTotal = 0;\n      var xId0 = 0;\n\n      while (y < pSize.height) {\n        if (yId % 2 === 0) {\n          var symbolYId = yIdTotal / 2 % symbolArray.length;\n          var x = 0;\n          var xId1 = 0;\n          var xId1Total = 0;\n\n          while (x < pSize.width * 2) {\n            var xSum = 0;\n\n            for (var i = 0; i < dashArrayX[xId0].length; ++i) {\n              xSum += dashArrayX[xId0][i];\n            }\n\n            if (xSum <= 0) {\n              break;\n            }\n\n            if (xId1 % 2 === 0) {\n              var size = (1 - decalOpt.symbolSize) * 0.5;\n              var left = x + dashArrayX[xId0][xId1] * size;\n              var top_1 = y + dashArrayY[yId] * size;\n              var width = dashArrayX[xId0][xId1] * decalOpt.symbolSize;\n              var height = dashArrayY[yId] * decalOpt.symbolSize;\n              var symbolXId = xId1Total / 2 % symbolArray[symbolYId].length;\n              brushSymbol(left, top_1, width, height, symbolArray[symbolYId][symbolXId]);\n            }\n\n            x += dashArrayX[xId0][xId1];\n            ++xId1Total;\n            ++xId1;\n\n            if (xId1 === dashArrayX[xId0].length) {\n              xId1 = 0;\n            }\n          }\n\n          ++xId0;\n\n          if (xId0 === dashArrayX.length) {\n            xId0 = 0;\n          }\n        }\n\n        y += dashArrayY[yId];\n        ++yIdTotal;\n        ++yId;\n\n        if (yId === dashArrayY.length) {\n          yId = 0;\n        }\n      }\n\n      function brushSymbol(x, y, width, height, symbolType) {\n        var scale = isSVG ? 1 : dpr;\n        var symbol = createSymbol(symbolType, x * scale, y * scale, width * scale, height * scale, decalOpt.color, decalOpt.symbolKeepAspect);\n\n        if (isSVG) {\n          svgRoot.appendChild(zr.painter.paintOne(symbol));\n        } else {\n          brushSingle(ctx, symbol);\n        }\n      }\n    }\n  }\n}\n\nfunction normalizeSymbolArray(symbol) {\n  if (!symbol || symbol.length === 0) {\n    return [['rect']];\n  }\n\n  if (typeof symbol === 'string') {\n    return [[symbol]];\n  }\n\n  var isAllString = true;\n\n  for (var i = 0; i < symbol.length; ++i) {\n    if (typeof symbol[i] !== 'string') {\n      isAllString = false;\n      break;\n    }\n  }\n\n  if (isAllString) {\n    return normalizeSymbolArray([symbol]);\n  }\n\n  var result = [];\n\n  for (var i = 0; i < symbol.length; ++i) {\n    if (typeof symbol[i] === 'string') {\n      result.push([symbol[i]]);\n    } else {\n      result.push(symbol[i]);\n    }\n  }\n\n  return result;\n}\n\nfunction normalizeDashArrayX(dash) {\n  if (!dash || dash.length === 0) {\n    return [[0, 0]];\n  }\n\n  if (typeof dash === 'number') {\n    var dashValue = Math.ceil(dash);\n    return [[dashValue, dashValue]];\n  }\n\n  var isAllNumber = true;\n\n  for (var i = 0; i < dash.length; ++i) {\n    if (typeof dash[i] !== 'number') {\n      isAllNumber = false;\n      break;\n    }\n  }\n\n  if (isAllNumber) {\n    return normalizeDashArrayX([dash]);\n  }\n\n  var result = [];\n\n  for (var i = 0; i < dash.length; ++i) {\n    if (typeof dash[i] === 'number') {\n      var dashValue = Math.ceil(dash[i]);\n      result.push([dashValue, dashValue]);\n    } else {\n      var dashValue = map(dash[i], function (n) {\n        return Math.ceil(n);\n      });\n\n      if (dashValue.length % 2 === 1) {\n        result.push(dashValue.concat(dashValue));\n      } else {\n        result.push(dashValue);\n      }\n    }\n  }\n\n  return result;\n}\n\nfunction normalizeDashArrayY(dash) {\n  if (!dash || typeof dash === 'object' && dash.length === 0) {\n    return [0, 0];\n  }\n\n  if (typeof dash === 'number') {\n    var dashValue_1 = Math.ceil(dash);\n    return [dashValue_1, dashValue_1];\n  }\n\n  var dashValue = map(dash, function (n) {\n    return Math.ceil(n);\n  });\n  return dash.length % 2 ? dashValue.concat(dashValue) : dashValue;\n}\n\nfunction getLineBlockLengthX(dash) {\n  return map(dash, function (line) {\n    return getLineBlockLengthY(line);\n  });\n}\n\nfunction getLineBlockLengthY(dash) {\n  var blockLength = 0;\n\n  for (var i = 0; i < dash.length; ++i) {\n    blockLength += dash[i];\n  }\n\n  if (dash.length % 2 === 1) {\n    return blockLength * 2;\n  }\n\n  return blockLength;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createOrUpdatePatternFromDecal } from '../util/decal';\nexport default function decalVisual(ecModel, api) {\n  ecModel.eachRawSeries(function (seriesModel) {\n    if (ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n\n    if (data.hasItemVisual()) {\n      data.each(function (idx) {\n        var decal = data.getItemVisual(idx, 'decal');\n\n        if (decal) {\n          var itemStyle = data.ensureUniqueItemVisual(idx, 'style');\n          itemStyle.decal = createOrUpdatePatternFromDecal(decal, api);\n        }\n      });\n    }\n\n    var decal = data.getVisual('decal');\n\n    if (decal) {\n      var style = data.getVisual('style');\n      style.decal = createOrUpdatePatternFromDecal(decal, api);\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrender from 'zrender/lib/zrender';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as colorTool from 'zrender/lib/tool/color';\nimport env from 'zrender/lib/core/env';\nimport timsort from 'zrender/lib/core/timsort';\nimport Eventful from 'zrender/lib/core/Eventful';\nimport GlobalModel from '../model/Global';\nimport ExtensionAPI from './ExtensionAPI';\nimport CoordinateSystemManager from './CoordinateSystem';\nimport OptionManager from '../model/OptionManager';\nimport backwardCompat from '../preprocessor/backwardCompat';\nimport dataStack from '../processor/dataStack';\nimport SeriesModel from '../model/Series';\nimport ComponentView from '../view/Component';\nimport ChartView from '../view/Chart';\nimport * as graphic from '../util/graphic';\nimport { getECData } from '../util/innerStore';\nimport { enterEmphasisWhenMouseOver, leaveEmphasisWhenMouseOut, isHighDownDispatcher, HOVER_STATE_EMPHASIS, HOVER_STATE_BLUR, toggleSeriesBlurState, toggleSeriesBlurStateFromPayload, toggleSelectionFromPayload, updateSeriesElementSelection, getAllSelectedIndices, isSelectChangePayload, isHighDownPayload, HIGHLIGHT_ACTION_TYPE, DOWNPLAY_ACTION_TYPE, SELECT_ACTION_TYPE, UNSELECT_ACTION_TYPE, TOGGLE_SELECT_ACTION_TYPE, savePathStates, enterEmphasis, leaveEmphasis, leaveBlur, enterSelect, leaveSelect, enterBlur } from '../util/states';\nimport * as modelUtil from '../util/model';\nimport { throttle } from '../util/throttle';\nimport { seriesStyleTask, dataStyleTask, dataColorPaletteTask } from '../visual/style';\nimport loadingDefault from '../loading/default';\nimport Scheduler from './Scheduler';\nimport lightTheme from '../theme/light';\nimport darkTheme from '../theme/dark';\nimport mapDataStorage from '../coord/geo/mapDataStorage';\nimport { parseClassType } from '../util/clazz';\nimport { ECEventProcessor } from '../util/ECEventProcessor';\nimport { seriesSymbolTask, dataSymbolTask } from '../visual/symbol';\nimport { getVisualFromData, getItemVisualFromData } from '../visual/helper';\nimport LabelManager from '../label/LabelManager';\nimport { deprecateLog, throwError } from '../util/log';\nimport { handleLegacySelectEvents } from '../legacy/dataSelectAction';\nimport { registerExternalTransform } from '../data/helper/transform';\nimport { createLocaleObject, SYSTEM_LANG } from './locale';\nimport { findEventDispatcher } from '../util/event';\nimport decal from '../visual/decal';\nvar assert = zrUtil.assert;\nvar each = zrUtil.each;\nvar isFunction = zrUtil.isFunction;\nvar isObject = zrUtil.isObject;\nvar indexOf = zrUtil.indexOf;\nvar hasWindow = typeof window !== 'undefined';\nexport var version = '5.0.1';\nexport var dependencies = {\n  zrender: '5.0.2'\n};\nvar TEST_FRAME_REMAIN_TIME = 1;\nvar PRIORITY_PROCESSOR_SERIES_FILTER = 800;\nvar PRIORITY_PROCESSOR_DATASTACK = 900;\nvar PRIORITY_PROCESSOR_FILTER = 1000;\nvar PRIORITY_PROCESSOR_DEFAULT = 2000;\nvar PRIORITY_PROCESSOR_STATISTIC = 5000;\nvar PRIORITY_VISUAL_LAYOUT = 1000;\nvar PRIORITY_VISUAL_PROGRESSIVE_LAYOUT = 1100;\nvar PRIORITY_VISUAL_GLOBAL = 2000;\nvar PRIORITY_VISUAL_CHART = 3000;\nvar PRIORITY_VISUAL_COMPONENT = 4000;\nvar PRIORITY_VISUAL_CHART_DATA_CUSTOM = 4500;\nvar PRIORITY_VISUAL_POST_CHART_LAYOUT = 4600;\nvar PRIORITY_VISUAL_BRUSH = 5000;\nvar PRIORITY_VISUAL_ARIA = 6000;\nvar PRIORITY_VISUAL_DECAL = 7000;\nexport var PRIORITY = {\n  PROCESSOR: {\n    FILTER: PRIORITY_PROCESSOR_FILTER,\n    SERIES_FILTER: PRIORITY_PROCESSOR_SERIES_FILTER,\n    STATISTIC: PRIORITY_PROCESSOR_STATISTIC\n  },\n  VISUAL: {\n    LAYOUT: PRIORITY_VISUAL_LAYOUT,\n    PROGRESSIVE_LAYOUT: PRIORITY_VISUAL_PROGRESSIVE_LAYOUT,\n    GLOBAL: PRIORITY_VISUAL_GLOBAL,\n    CHART: PRIORITY_VISUAL_CHART,\n    POST_CHART_LAYOUT: PRIORITY_VISUAL_POST_CHART_LAYOUT,\n    COMPONENT: PRIORITY_VISUAL_COMPONENT,\n    BRUSH: PRIORITY_VISUAL_BRUSH,\n    CHART_ITEM: PRIORITY_VISUAL_CHART_DATA_CUSTOM,\n    ARIA: PRIORITY_VISUAL_ARIA,\n    DECAL: PRIORITY_VISUAL_DECAL\n  }\n};\nvar IN_MAIN_PROCESS_KEY = '__flagInMainProcess';\nvar OPTION_UPDATED_KEY = '__optionUpdated';\nvar STATUS_NEEDS_UPDATE_KEY = '__needsUpdateStatus';\nvar ACTION_REG = /^[a-zA-Z0-9_]+$/;\nvar CONNECT_STATUS_KEY = '__connectUpdateStatus';\nvar CONNECT_STATUS_PENDING = 0;\nvar CONNECT_STATUS_UPDATING = 1;\nvar CONNECT_STATUS_UPDATED = 2;\n;\n\nfunction createRegisterEventWithLowercaseECharts(method) {\n  return function () {\n    var args = [];\n\n    for (var _i = 0; _i < arguments.length; _i++) {\n      args[_i] = arguments[_i];\n    }\n\n    if (this.isDisposed()) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    return toLowercaseNameAndCallEventful(this, method, args);\n  };\n}\n\nfunction createRegisterEventWithLowercaseMessageCenter(method) {\n  return function () {\n    var args = [];\n\n    for (var _i = 0; _i < arguments.length; _i++) {\n      args[_i] = arguments[_i];\n    }\n\n    return toLowercaseNameAndCallEventful(this, method, args);\n  };\n}\n\nfunction toLowercaseNameAndCallEventful(host, method, args) {\n  args[0] = args[0] && args[0].toLowerCase();\n  return Eventful.prototype[method].apply(host, args);\n}\n\nvar MessageCenter = function (_super) {\n  __extends(MessageCenter, _super);\n\n  function MessageCenter() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  return MessageCenter;\n}(Eventful);\n\nvar messageCenterProto = MessageCenter.prototype;\nmessageCenterProto.on = createRegisterEventWithLowercaseMessageCenter('on');\nmessageCenterProto.off = createRegisterEventWithLowercaseMessageCenter('off');\nvar prepare;\nvar prepareView;\nvar updateDirectly;\nvar updateMethods;\nvar doConvertPixel;\nvar updateStreamModes;\nvar doDispatchAction;\nvar flushPendingActions;\nvar triggerUpdatedEvent;\nvar bindRenderedEvent;\nvar bindMouseEvent;\nvar clearColorPalette;\nvar render;\nvar renderComponents;\nvar renderSeries;\nvar performPostUpdateFuncs;\nvar createExtensionAPI;\nvar enableConnect;\nvar setTransitionOpt;\nvar markStatusToUpdate;\nvar applyChangedStates;\n\nvar ECharts = function (_super) {\n  __extends(ECharts, _super);\n\n  function ECharts(dom, theme, opts) {\n    var _this = _super.call(this, new ECEventProcessor()) || this;\n\n    _this._chartsViews = [];\n    _this._chartsMap = {};\n    _this._componentsViews = [];\n    _this._componentsMap = {};\n    _this._pendingActions = [];\n    opts = opts || {};\n\n    if (typeof theme === 'string') {\n      theme = themeStorage[theme];\n    }\n\n    _this._dom = dom;\n    var defaultRenderer = 'canvas';\n    var defaultUseDirtyRect = false;\n\n    if (process.env.NODE_ENV !== 'production') {\n      var root = hasWindow ? window : global;\n      defaultRenderer = root.__ECHARTS__DEFAULT__RENDERER__ || defaultRenderer;\n      var devUseDirtyRect = root.__ECHARTS__DEFAULT__USE_DIRTY_RECT__;\n      defaultUseDirtyRect = devUseDirtyRect == null ? defaultUseDirtyRect : devUseDirtyRect;\n    }\n\n    var zr = _this._zr = zrender.init(dom, {\n      renderer: opts.renderer || defaultRenderer,\n      devicePixelRatio: opts.devicePixelRatio,\n      width: opts.width,\n      height: opts.height,\n      useDirtyRect: opts.useDirtyRect == null ? defaultUseDirtyRect : opts.useDirtyRect\n    });\n    _this._throttledZrFlush = throttle(zrUtil.bind(zr.flush, zr), 17);\n    theme = zrUtil.clone(theme);\n    theme && backwardCompat(theme, true);\n    _this._theme = theme;\n    _this._locale = createLocaleObject(opts.locale || SYSTEM_LANG);\n    _this._coordSysMgr = new CoordinateSystemManager();\n    var api = _this._api = createExtensionAPI(_this);\n\n    function prioritySortFunc(a, b) {\n      return a.__prio - b.__prio;\n    }\n\n    timsort(visualFuncs, prioritySortFunc);\n    timsort(dataProcessorFuncs, prioritySortFunc);\n    _this._scheduler = new Scheduler(_this, api, dataProcessorFuncs, visualFuncs);\n    _this._messageCenter = new MessageCenter();\n    _this._labelManager = new LabelManager();\n\n    _this._initEvents();\n\n    _this.resize = zrUtil.bind(_this.resize, _this);\n    zr.animation.on('frame', _this._onframe, _this);\n    bindRenderedEvent(zr, _this);\n    bindMouseEvent(zr, _this);\n    zrUtil.setAsPrimitive(_this);\n    return _this;\n  }\n\n  ECharts.prototype._onframe = function () {\n    if (this._disposed) {\n      return;\n    }\n\n    applyChangedStates(this);\n    var scheduler = this._scheduler;\n\n    if (this[OPTION_UPDATED_KEY]) {\n      var silent = this[OPTION_UPDATED_KEY].silent;\n      this[IN_MAIN_PROCESS_KEY] = true;\n      prepare(this);\n      updateMethods.update.call(this);\n\n      this._zr.flush();\n\n      this[IN_MAIN_PROCESS_KEY] = false;\n      this[OPTION_UPDATED_KEY] = false;\n      flushPendingActions.call(this, silent);\n      triggerUpdatedEvent.call(this, silent);\n    } else if (scheduler.unfinished) {\n      var remainTime = TEST_FRAME_REMAIN_TIME;\n      var ecModel = this._model;\n      var api = this._api;\n      scheduler.unfinished = false;\n\n      do {\n        var startTime = +new Date();\n        scheduler.performSeriesTasks(ecModel);\n        scheduler.performDataProcessorTasks(ecModel);\n        updateStreamModes(this, ecModel);\n        scheduler.performVisualTasks(ecModel);\n        renderSeries(this, this._model, api, 'remain');\n        remainTime -= +new Date() - startTime;\n      } while (remainTime > 0 && scheduler.unfinished);\n\n      if (!scheduler.unfinished) {\n        this._zr.flush();\n      }\n    }\n  };\n\n  ECharts.prototype.getDom = function () {\n    return this._dom;\n  };\n\n  ECharts.prototype.getId = function () {\n    return this.id;\n  };\n\n  ECharts.prototype.getZr = function () {\n    return this._zr;\n  };\n\n  ECharts.prototype.setOption = function (option, notMerge, lazyUpdate) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!this[IN_MAIN_PROCESS_KEY], '`setOption` should not be called during main process.');\n    }\n\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    var silent;\n    var replaceMerge;\n    var transitionOpt;\n\n    if (isObject(notMerge)) {\n      lazyUpdate = notMerge.lazyUpdate;\n      silent = notMerge.silent;\n      replaceMerge = notMerge.replaceMerge;\n      transitionOpt = notMerge.transition;\n      notMerge = notMerge.notMerge;\n    }\n\n    this[IN_MAIN_PROCESS_KEY] = true;\n\n    if (!this._model || notMerge) {\n      var optionManager = new OptionManager(this._api);\n      var theme = this._theme;\n      var ecModel = this._model = new GlobalModel();\n      ecModel.scheduler = this._scheduler;\n      ecModel.init(null, null, null, theme, this._locale, optionManager);\n    }\n\n    this._model.setOption(option, {\n      replaceMerge: replaceMerge\n    }, optionPreprocessorFuncs);\n\n    setTransitionOpt(this, transitionOpt);\n\n    if (lazyUpdate) {\n      this[OPTION_UPDATED_KEY] = {\n        silent: silent\n      };\n      this[IN_MAIN_PROCESS_KEY] = false;\n      this.getZr().wakeUp();\n    } else {\n      prepare(this);\n      updateMethods.update.call(this);\n\n      this._zr.flush();\n\n      this[OPTION_UPDATED_KEY] = false;\n      this[IN_MAIN_PROCESS_KEY] = false;\n      flushPendingActions.call(this, silent);\n      triggerUpdatedEvent.call(this, silent);\n    }\n  };\n\n  ECharts.prototype.setTheme = function () {\n    console.error('ECharts#setTheme() is DEPRECATED in ECharts 3.0');\n  };\n\n  ECharts.prototype.getModel = function () {\n    return this._model;\n  };\n\n  ECharts.prototype.getOption = function () {\n    return this._model && this._model.getOption();\n  };\n\n  ECharts.prototype.getWidth = function () {\n    return this._zr.getWidth();\n  };\n\n  ECharts.prototype.getHeight = function () {\n    return this._zr.getHeight();\n  };\n\n  ECharts.prototype.getDevicePixelRatio = function () {\n    return this._zr.painter.dpr || hasWindow && window.devicePixelRatio || 1;\n  };\n\n  ECharts.prototype.getRenderedCanvas = function (opts) {\n    if (!env.canvasSupported) {\n      return;\n    }\n\n    opts = zrUtil.extend({}, opts || {});\n    opts.pixelRatio = opts.pixelRatio || 1;\n    opts.backgroundColor = opts.backgroundColor || this._model.get('backgroundColor');\n    var zr = this._zr;\n    return zr.painter.getRenderedCanvas(opts);\n  };\n\n  ECharts.prototype.getSvgDataURL = function () {\n    if (!env.svgSupported) {\n      return;\n    }\n\n    var zr = this._zr;\n    var list = zr.storage.getDisplayList();\n    zrUtil.each(list, function (el) {\n      el.stopAnimation(null, true);\n    });\n    return zr.painter.toDataURL();\n  };\n\n  ECharts.prototype.getDataURL = function (opts) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    opts = opts || {};\n    var excludeComponents = opts.excludeComponents;\n    var ecModel = this._model;\n    var excludesComponentViews = [];\n    var self = this;\n    each(excludeComponents, function (componentType) {\n      ecModel.eachComponent({\n        mainType: componentType\n      }, function (component) {\n        var view = self._componentsMap[component.__viewId];\n\n        if (!view.group.ignore) {\n          excludesComponentViews.push(view);\n          view.group.ignore = true;\n        }\n      });\n    });\n    var url = this._zr.painter.getType() === 'svg' ? this.getSvgDataURL() : this.getRenderedCanvas(opts).toDataURL('image/' + (opts && opts.type || 'png'));\n    each(excludesComponentViews, function (view) {\n      view.group.ignore = false;\n    });\n    return url;\n  };\n\n  ECharts.prototype.getConnectedDataURL = function (opts) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    if (!env.canvasSupported) {\n      return;\n    }\n\n    var isSvg = opts.type === 'svg';\n    var groupId = this.group;\n    var mathMin = Math.min;\n    var mathMax = Math.max;\n    var MAX_NUMBER = Infinity;\n\n    if (connectedGroups[groupId]) {\n      var left_1 = MAX_NUMBER;\n      var top_1 = MAX_NUMBER;\n      var right_1 = -MAX_NUMBER;\n      var bottom_1 = -MAX_NUMBER;\n      var canvasList_1 = [];\n      var dpr_1 = opts && opts.pixelRatio || 1;\n      zrUtil.each(instances, function (chart, id) {\n        if (chart.group === groupId) {\n          var canvas = isSvg ? chart.getZr().painter.getSvgDom().innerHTML : chart.getRenderedCanvas(zrUtil.clone(opts));\n          var boundingRect = chart.getDom().getBoundingClientRect();\n          left_1 = mathMin(boundingRect.left, left_1);\n          top_1 = mathMin(boundingRect.top, top_1);\n          right_1 = mathMax(boundingRect.right, right_1);\n          bottom_1 = mathMax(boundingRect.bottom, bottom_1);\n          canvasList_1.push({\n            dom: canvas,\n            left: boundingRect.left,\n            top: boundingRect.top\n          });\n        }\n      });\n      left_1 *= dpr_1;\n      top_1 *= dpr_1;\n      right_1 *= dpr_1;\n      bottom_1 *= dpr_1;\n      var width = right_1 - left_1;\n      var height = bottom_1 - top_1;\n      var targetCanvas = zrUtil.createCanvas();\n      var zr_1 = zrender.init(targetCanvas, {\n        renderer: isSvg ? 'svg' : 'canvas'\n      });\n      zr_1.resize({\n        width: width,\n        height: height\n      });\n\n      if (isSvg) {\n        var content_1 = '';\n        each(canvasList_1, function (item) {\n          var x = item.left - left_1;\n          var y = item.top - top_1;\n          content_1 += '<g transform=\"translate(' + x + ',' + y + ')\">' + item.dom + '</g>';\n        });\n        zr_1.painter.getSvgRoot().innerHTML = content_1;\n\n        if (opts.connectedBackgroundColor) {\n          zr_1.painter.setBackgroundColor(opts.connectedBackgroundColor);\n        }\n\n        zr_1.refreshImmediately();\n        return zr_1.painter.toDataURL();\n      } else {\n        if (opts.connectedBackgroundColor) {\n          zr_1.add(new graphic.Rect({\n            shape: {\n              x: 0,\n              y: 0,\n              width: width,\n              height: height\n            },\n            style: {\n              fill: opts.connectedBackgroundColor\n            }\n          }));\n        }\n\n        each(canvasList_1, function (item) {\n          var img = new graphic.Image({\n            style: {\n              x: item.left * dpr_1 - left_1,\n              y: item.top * dpr_1 - top_1,\n              image: item.dom\n            }\n          });\n          zr_1.add(img);\n        });\n        zr_1.refreshImmediately();\n        return targetCanvas.toDataURL('image/' + (opts && opts.type || 'png'));\n      }\n    } else {\n      return this.getDataURL(opts);\n    }\n  };\n\n  ECharts.prototype.convertToPixel = function (finder, value) {\n    return doConvertPixel(this, 'convertToPixel', finder, value);\n  };\n\n  ECharts.prototype.convertFromPixel = function (finder, value) {\n    return doConvertPixel(this, 'convertFromPixel', finder, value);\n  };\n\n  ECharts.prototype.containPixel = function (finder, value) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    var ecModel = this._model;\n    var result;\n    var findResult = modelUtil.parseFinder(ecModel, finder);\n    zrUtil.each(findResult, function (models, key) {\n      key.indexOf('Models') >= 0 && zrUtil.each(models, function (model) {\n        var coordSys = model.coordinateSystem;\n\n        if (coordSys && coordSys.containPoint) {\n          result = result || !!coordSys.containPoint(value);\n        } else if (key === 'seriesModels') {\n          var view = this._chartsMap[model.__viewId];\n\n          if (view && view.containPoint) {\n            result = result || view.containPoint(value, model);\n          } else {\n            if (process.env.NODE_ENV !== 'production') {\n              console.warn(key + ': ' + (view ? 'The found component do not support containPoint.' : 'No view mapping to the found component.'));\n            }\n          }\n        } else {\n          if (process.env.NODE_ENV !== 'production') {\n            console.warn(key + ': containPoint is not supported');\n          }\n        }\n      }, this);\n    }, this);\n    return !!result;\n  };\n\n  ECharts.prototype.getVisual = function (finder, visualType) {\n    var ecModel = this._model;\n    var parsedFinder = modelUtil.parseFinder(ecModel, finder, {\n      defaultMainType: 'series'\n    });\n    var seriesModel = parsedFinder.seriesModel;\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!seriesModel) {\n        console.warn('There is no specified seires model');\n      }\n    }\n\n    var data = seriesModel.getData();\n    var dataIndexInside = parsedFinder.hasOwnProperty('dataIndexInside') ? parsedFinder.dataIndexInside : parsedFinder.hasOwnProperty('dataIndex') ? data.indexOfRawIndex(parsedFinder.dataIndex) : null;\n    return dataIndexInside != null ? getItemVisualFromData(data, dataIndexInside, visualType) : getVisualFromData(data, visualType);\n  };\n\n  ECharts.prototype.getViewOfComponentModel = function (componentModel) {\n    return this._componentsMap[componentModel.__viewId];\n  };\n\n  ECharts.prototype.getViewOfSeriesModel = function (seriesModel) {\n    return this._chartsMap[seriesModel.__viewId];\n  };\n\n  ECharts.prototype._initEvents = function () {\n    var _this = this;\n\n    each(MOUSE_EVENT_NAMES, function (eveName) {\n      var handler = function (e) {\n        var ecModel = _this.getModel();\n\n        var el = e.target;\n        var params;\n        var isGlobalOut = eveName === 'globalout';\n\n        if (isGlobalOut) {\n          params = {};\n        } else {\n          el && findEventDispatcher(el, function (parent) {\n            var ecData = getECData(parent);\n\n            if (ecData && ecData.dataIndex != null) {\n              var dataModel = ecData.dataModel || ecModel.getSeriesByIndex(ecData.seriesIndex);\n              params = dataModel && dataModel.getDataParams(ecData.dataIndex, ecData.dataType) || {};\n              return true;\n            } else if (ecData.eventData) {\n              params = zrUtil.extend({}, ecData.eventData);\n              return true;\n            }\n          }, true);\n        }\n\n        if (params) {\n          var componentType = params.componentType;\n          var componentIndex = params.componentIndex;\n\n          if (componentType === 'markLine' || componentType === 'markPoint' || componentType === 'markArea') {\n            componentType = 'series';\n            componentIndex = params.seriesIndex;\n          }\n\n          var model = componentType && componentIndex != null && ecModel.getComponent(componentType, componentIndex);\n          var view = model && _this[model.mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId];\n\n          if (process.env.NODE_ENV !== 'production') {\n            if (!isGlobalOut && !(model && view)) {\n              console.warn('model or view can not be found by params');\n            }\n          }\n\n          params.event = e;\n          params.type = eveName;\n          _this._$eventProcessor.eventInfo = {\n            targetEl: el,\n            packedEvent: params,\n            model: model,\n            view: view\n          };\n\n          _this.trigger(eveName, params);\n        }\n      };\n\n      handler.zrEventfulCallAtLast = true;\n\n      _this._zr.on(eveName, handler, _this);\n    });\n    each(eventActionMap, function (actionType, eventType) {\n      _this._messageCenter.on(eventType, function (event) {\n        this.trigger(eventType, event);\n      }, _this);\n    });\n    each(['selectchanged'], function (eventType) {\n      _this._messageCenter.on(eventType, function (event) {\n        this.trigger(eventType, event);\n      }, _this);\n    });\n    handleLegacySelectEvents(this._messageCenter, this, this._api);\n  };\n\n  ECharts.prototype.isDisposed = function () {\n    return this._disposed;\n  };\n\n  ECharts.prototype.clear = function () {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    this.setOption({\n      series: []\n    }, true);\n  };\n\n  ECharts.prototype.dispose = function () {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    this._disposed = true;\n    modelUtil.setAttribute(this.getDom(), DOM_ATTRIBUTE_KEY, '');\n    var api = this._api;\n    var ecModel = this._model;\n    each(this._componentsViews, function (component) {\n      component.dispose(ecModel, api);\n    });\n    each(this._chartsViews, function (chart) {\n      chart.dispose(ecModel, api);\n    });\n\n    this._zr.dispose();\n\n    delete instances[this.id];\n  };\n\n  ECharts.prototype.resize = function (opts) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!this[IN_MAIN_PROCESS_KEY], '`resize` should not be called during main process.');\n    }\n\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    this._zr.resize(opts);\n\n    var ecModel = this._model;\n    this._loadingFX && this._loadingFX.resize();\n\n    if (!ecModel) {\n      return;\n    }\n\n    var optionChanged = ecModel.resetOption('media');\n    var silent = opts && opts.silent;\n    this[IN_MAIN_PROCESS_KEY] = true;\n    optionChanged && prepare(this);\n    updateMethods.update.call(this, {\n      type: 'resize',\n      animation: {\n        duration: 0\n      }\n    });\n    this[IN_MAIN_PROCESS_KEY] = false;\n    flushPendingActions.call(this, silent);\n    triggerUpdatedEvent.call(this, silent);\n  };\n\n  ECharts.prototype.showLoading = function (name, cfg) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    if (isObject(name)) {\n      cfg = name;\n      name = '';\n    }\n\n    name = name || 'default';\n    this.hideLoading();\n\n    if (!loadingEffects[name]) {\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn('Loading effects ' + name + ' not exists.');\n      }\n\n      return;\n    }\n\n    var el = loadingEffects[name](this._api, cfg);\n    var zr = this._zr;\n    this._loadingFX = el;\n    zr.add(el);\n  };\n\n  ECharts.prototype.hideLoading = function () {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    this._loadingFX && this._zr.remove(this._loadingFX);\n    this._loadingFX = null;\n  };\n\n  ECharts.prototype.makeActionFromEvent = function (eventObj) {\n    var payload = zrUtil.extend({}, eventObj);\n    payload.type = eventActionMap[eventObj.type];\n    return payload;\n  };\n\n  ECharts.prototype.dispatchAction = function (payload, opt) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    if (!isObject(opt)) {\n      opt = {\n        silent: !!opt\n      };\n    }\n\n    if (!actions[payload.type]) {\n      return;\n    }\n\n    if (!this._model) {\n      return;\n    }\n\n    if (this[IN_MAIN_PROCESS_KEY]) {\n      this._pendingActions.push(payload);\n\n      return;\n    }\n\n    var silent = opt.silent;\n    doDispatchAction.call(this, payload, silent);\n    var flush = opt.flush;\n\n    if (flush) {\n      this._zr.flush();\n    } else if (flush !== false && env.browser.weChat) {\n      this._throttledZrFlush();\n    }\n\n    flushPendingActions.call(this, silent);\n    triggerUpdatedEvent.call(this, silent);\n  };\n\n  ECharts.prototype.updateLabelLayout = function () {\n    var labelManager = this._labelManager;\n    labelManager.updateLayoutConfig(this._api);\n    labelManager.layout(this._api);\n    labelManager.processLabelsOverall();\n  };\n\n  ECharts.prototype.appendData = function (params) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    var seriesIndex = params.seriesIndex;\n    var ecModel = this.getModel();\n    var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(params.data && seriesModel);\n    }\n\n    seriesModel.appendData(params);\n    this._scheduler.unfinished = true;\n    this.getZr().wakeUp();\n  };\n\n  ECharts.internalField = function () {\n    prepare = function (ecIns) {\n      var scheduler = ecIns._scheduler;\n      scheduler.restorePipelines(ecIns._model);\n      scheduler.prepareStageTasks();\n      prepareView(ecIns, true);\n      prepareView(ecIns, false);\n      scheduler.plan();\n    };\n\n    prepareView = function (ecIns, isComponent) {\n      var ecModel = ecIns._model;\n      var scheduler = ecIns._scheduler;\n      var viewList = isComponent ? ecIns._componentsViews : ecIns._chartsViews;\n      var viewMap = isComponent ? ecIns._componentsMap : ecIns._chartsMap;\n      var zr = ecIns._zr;\n      var api = ecIns._api;\n\n      for (var i = 0; i < viewList.length; i++) {\n        viewList[i].__alive = false;\n      }\n\n      isComponent ? ecModel.eachComponent(function (componentType, model) {\n        componentType !== 'series' && doPrepare(model);\n      }) : ecModel.eachSeries(doPrepare);\n\n      function doPrepare(model) {\n        var requireNewView = model.__requireNewView;\n        model.__requireNewView = false;\n        var viewId = '_ec_' + model.id + '_' + model.type;\n        var view = !requireNewView && viewMap[viewId];\n\n        if (!view) {\n          var classType = parseClassType(model.type);\n          var Clazz = isComponent ? ComponentView.getClass(classType.main, classType.sub) : ChartView.getClass(classType.sub);\n\n          if (process.env.NODE_ENV !== 'production') {\n            assert(Clazz, classType.sub + ' does not exist.');\n          }\n\n          view = new Clazz();\n          view.init(ecModel, api);\n          viewMap[viewId] = view;\n          viewList.push(view);\n          zr.add(view.group);\n        }\n\n        model.__viewId = view.__id = viewId;\n        view.__alive = true;\n        view.__model = model;\n        view.group.__ecComponentInfo = {\n          mainType: model.mainType,\n          index: model.componentIndex\n        };\n        !isComponent && scheduler.prepareView(view, model, ecModel, api);\n      }\n\n      for (var i = 0; i < viewList.length;) {\n        var view = viewList[i];\n\n        if (!view.__alive) {\n          !isComponent && view.renderTask.dispose();\n          zr.remove(view.group);\n          view.dispose(ecModel, api);\n          viewList.splice(i, 1);\n\n          if (viewMap[view.__id] === view) {\n            delete viewMap[view.__id];\n          }\n\n          view.__id = view.group.__ecComponentInfo = null;\n        } else {\n          i++;\n        }\n      }\n    };\n\n    updateDirectly = function (ecIns, method, payload, mainType, subType) {\n      var ecModel = ecIns._model;\n      ecModel.setUpdatePayload(payload);\n\n      if (!mainType) {\n        each([].concat(ecIns._componentsViews).concat(ecIns._chartsViews), callView);\n        return;\n      }\n\n      var query = {};\n      query[mainType + 'Id'] = payload[mainType + 'Id'];\n      query[mainType + 'Index'] = payload[mainType + 'Index'];\n      query[mainType + 'Name'] = payload[mainType + 'Name'];\n      var condition = {\n        mainType: mainType,\n        query: query\n      };\n      subType && (condition.subType = subType);\n      var excludeSeriesId = payload.excludeSeriesId;\n      var excludeSeriesIdMap;\n\n      if (excludeSeriesId != null) {\n        excludeSeriesIdMap = zrUtil.createHashMap();\n        each(modelUtil.normalizeToArray(excludeSeriesId), function (id) {\n          var modelId = modelUtil.convertOptionIdName(id, null);\n\n          if (modelId != null) {\n            excludeSeriesIdMap.set(modelId, true);\n          }\n        });\n      }\n\n      ecModel && ecModel.eachComponent(condition, function (model) {\n        if (!excludeSeriesIdMap || excludeSeriesIdMap.get(model.id) == null) {\n          if (isHighDownPayload(payload) && !payload.notBlur) {\n            if (model instanceof SeriesModel) {\n              toggleSeriesBlurStateFromPayload(model, payload, ecIns._api);\n            }\n          } else if (isSelectChangePayload(payload)) {\n            if (model instanceof SeriesModel) {\n              toggleSelectionFromPayload(model, payload, ecIns._api);\n              updateSeriesElementSelection(model);\n              markStatusToUpdate(ecIns);\n            }\n          }\n\n          callView(ecIns[mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId]);\n        }\n      }, ecIns);\n\n      function callView(view) {\n        view && view.__alive && view[method] && view[method](view.__model, ecModel, ecIns._api, payload);\n      }\n    };\n\n    updateMethods = {\n      prepareAndUpdate: function (payload) {\n        prepare(this);\n        updateMethods.update.call(this, payload);\n      },\n      update: function (payload) {\n        var ecModel = this._model;\n        var api = this._api;\n        var zr = this._zr;\n        var coordSysMgr = this._coordSysMgr;\n        var scheduler = this._scheduler;\n\n        if (!ecModel) {\n          return;\n        }\n\n        ecModel.setUpdatePayload(payload);\n        scheduler.restoreData(ecModel, payload);\n        scheduler.performSeriesTasks(ecModel);\n        coordSysMgr.create(ecModel, api);\n        scheduler.performDataProcessorTasks(ecModel, payload);\n        updateStreamModes(this, ecModel);\n        coordSysMgr.update(ecModel, api);\n        clearColorPalette(ecModel);\n        scheduler.performVisualTasks(ecModel, payload);\n        render(this, ecModel, api, payload);\n        var backgroundColor = ecModel.get('backgroundColor') || 'transparent';\n        var darkMode = ecModel.get('darkMode');\n\n        if (!env.canvasSupported) {\n          var colorArr = colorTool.parse(backgroundColor);\n          backgroundColor = colorTool.stringify(colorArr, 'rgb');\n\n          if (colorArr[3] === 0) {\n            backgroundColor = 'transparent';\n          }\n        } else {\n          zr.setBackgroundColor(backgroundColor);\n\n          if (darkMode != null && darkMode !== 'auto') {\n            zr.setDarkMode(darkMode);\n          }\n        }\n\n        performPostUpdateFuncs(ecModel, api);\n      },\n      updateTransform: function (payload) {\n        var _this = this;\n\n        var ecModel = this._model;\n        var api = this._api;\n\n        if (!ecModel) {\n          return;\n        }\n\n        ecModel.setUpdatePayload(payload);\n        var componentDirtyList = [];\n        ecModel.eachComponent(function (componentType, componentModel) {\n          if (componentType === 'series') {\n            return;\n          }\n\n          var componentView = _this.getViewOfComponentModel(componentModel);\n\n          if (componentView && componentView.__alive) {\n            if (componentView.updateTransform) {\n              var result = componentView.updateTransform(componentModel, ecModel, api, payload);\n              result && result.update && componentDirtyList.push(componentView);\n            } else {\n              componentDirtyList.push(componentView);\n            }\n          }\n        });\n        var seriesDirtyMap = zrUtil.createHashMap();\n        ecModel.eachSeries(function (seriesModel) {\n          var chartView = _this._chartsMap[seriesModel.__viewId];\n\n          if (chartView.updateTransform) {\n            var result = chartView.updateTransform(seriesModel, ecModel, api, payload);\n            result && result.update && seriesDirtyMap.set(seriesModel.uid, 1);\n          } else {\n            seriesDirtyMap.set(seriesModel.uid, 1);\n          }\n        });\n        clearColorPalette(ecModel);\n\n        this._scheduler.performVisualTasks(ecModel, payload, {\n          setDirty: true,\n          dirtyMap: seriesDirtyMap\n        });\n\n        renderSeries(this, ecModel, api, payload, seriesDirtyMap);\n        performPostUpdateFuncs(ecModel, this._api);\n      },\n      updateView: function (payload) {\n        var ecModel = this._model;\n\n        if (!ecModel) {\n          return;\n        }\n\n        ecModel.setUpdatePayload(payload);\n        ChartView.markUpdateMethod(payload, 'updateView');\n        clearColorPalette(ecModel);\n\n        this._scheduler.performVisualTasks(ecModel, payload, {\n          setDirty: true\n        });\n\n        render(this, this._model, this._api, payload);\n        performPostUpdateFuncs(ecModel, this._api);\n      },\n      updateVisual: function (payload) {\n        var _this = this;\n\n        var ecModel = this._model;\n\n        if (!ecModel) {\n          return;\n        }\n\n        ecModel.setUpdatePayload(payload);\n        ecModel.eachSeries(function (seriesModel) {\n          seriesModel.getData().clearAllVisual();\n        });\n        ChartView.markUpdateMethod(payload, 'updateVisual');\n        clearColorPalette(ecModel);\n\n        this._scheduler.performVisualTasks(ecModel, payload, {\n          visualType: 'visual',\n          setDirty: true\n        });\n\n        ecModel.eachComponent(function (componentType, componentModel) {\n          if (componentType !== 'series') {\n            var componentView = _this.getViewOfComponentModel(componentModel);\n\n            componentView && componentView.__alive && componentView.updateVisual(componentModel, ecModel, _this._api, payload);\n          }\n        });\n        ecModel.eachSeries(function (seriesModel) {\n          var chartView = _this._chartsMap[seriesModel.__viewId];\n          chartView.updateVisual(seriesModel, ecModel, _this._api, payload);\n        });\n        performPostUpdateFuncs(ecModel, this._api);\n      },\n      updateLayout: function (payload) {\n        updateMethods.update.call(this, payload);\n      }\n    };\n\n    doConvertPixel = function (ecIns, methodName, finder, value) {\n      if (ecIns._disposed) {\n        disposedWarning(ecIns.id);\n        return;\n      }\n\n      var ecModel = ecIns._model;\n\n      var coordSysList = ecIns._coordSysMgr.getCoordinateSystems();\n\n      var result;\n      var parsedFinder = modelUtil.parseFinder(ecModel, finder);\n\n      for (var i = 0; i < coordSysList.length; i++) {\n        var coordSys = coordSysList[i];\n\n        if (coordSys[methodName] && (result = coordSys[methodName](ecModel, parsedFinder, value)) != null) {\n          return result;\n        }\n      }\n\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn('No coordinate system that supports ' + methodName + ' found by the given finder.');\n      }\n    };\n\n    updateStreamModes = function (ecIns, ecModel) {\n      var chartsMap = ecIns._chartsMap;\n      var scheduler = ecIns._scheduler;\n      ecModel.eachSeries(function (seriesModel) {\n        scheduler.updateStreamModes(seriesModel, chartsMap[seriesModel.__viewId]);\n      });\n    };\n\n    doDispatchAction = function (payload, silent) {\n      var _this = this;\n\n      var ecModel = this.getModel();\n      var payloadType = payload.type;\n      var escapeConnect = payload.escapeConnect;\n      var actionWrap = actions[payloadType];\n      var actionInfo = actionWrap.actionInfo;\n      var cptTypeTmp = (actionInfo.update || 'update').split(':');\n      var updateMethod = cptTypeTmp.pop();\n      var cptType = cptTypeTmp[0] != null && parseClassType(cptTypeTmp[0]);\n      this[IN_MAIN_PROCESS_KEY] = true;\n      var payloads = [payload];\n      var batched = false;\n\n      if (payload.batch) {\n        batched = true;\n        payloads = zrUtil.map(payload.batch, function (item) {\n          item = zrUtil.defaults(zrUtil.extend({}, item), payload);\n          item.batch = null;\n          return item;\n        });\n      }\n\n      var eventObjBatch = [];\n      var eventObj;\n      var isSelectChange = isSelectChangePayload(payload);\n      var isStatusChange = isHighDownPayload(payload) || isSelectChange;\n      each(payloads, function (batchItem) {\n        eventObj = actionWrap.action(batchItem, _this._model, _this._api);\n        eventObj = eventObj || zrUtil.extend({}, batchItem);\n        eventObj.type = actionInfo.event || eventObj.type;\n        eventObjBatch.push(eventObj);\n\n        if (isStatusChange) {\n          updateDirectly(_this, updateMethod, batchItem, 'series');\n          markStatusToUpdate(_this);\n        } else if (cptType) {\n          updateDirectly(_this, updateMethod, batchItem, cptType.main, cptType.sub);\n        }\n      });\n\n      if (updateMethod !== 'none' && !isStatusChange && !cptType) {\n        if (this[OPTION_UPDATED_KEY]) {\n          prepare(this);\n          updateMethods.update.call(this, payload);\n          this[OPTION_UPDATED_KEY] = false;\n        } else {\n          updateMethods[updateMethod].call(this, payload);\n        }\n      }\n\n      if (batched) {\n        eventObj = {\n          type: actionInfo.event || payloadType,\n          escapeConnect: escapeConnect,\n          batch: eventObjBatch\n        };\n      } else {\n        eventObj = eventObjBatch[0];\n      }\n\n      this[IN_MAIN_PROCESS_KEY] = false;\n\n      if (!silent) {\n        var messageCenter = this._messageCenter;\n        messageCenter.trigger(eventObj.type, eventObj);\n\n        if (isSelectChange) {\n          var newObj = {\n            type: 'selectchanged',\n            escapeConnect: escapeConnect,\n            selected: getAllSelectedIndices(ecModel),\n            isFromClick: payload.isFromClick || false,\n            fromAction: payload.type,\n            fromActionPayload: payload\n          };\n          messageCenter.trigger(newObj.type, newObj);\n        }\n      }\n    };\n\n    flushPendingActions = function (silent) {\n      var pendingActions = this._pendingActions;\n\n      while (pendingActions.length) {\n        var payload = pendingActions.shift();\n        doDispatchAction.call(this, payload, silent);\n      }\n    };\n\n    triggerUpdatedEvent = function (silent) {\n      !silent && this.trigger('updated');\n    };\n\n    bindRenderedEvent = function (zr, ecIns) {\n      zr.on('rendered', function (params) {\n        ecIns.trigger('rendered', params);\n\n        if (zr.animation.isFinished() && !ecIns[OPTION_UPDATED_KEY] && !ecIns._scheduler.unfinished && !ecIns._pendingActions.length) {\n          ecIns.trigger('finished');\n        }\n      });\n    };\n\n    bindMouseEvent = function (zr, ecIns) {\n      zr.on('mouseover', function (e) {\n        var el = e.target;\n        var dispatcher = findEventDispatcher(el, isHighDownDispatcher);\n\n        if (dispatcher) {\n          var ecData = getECData(dispatcher);\n          toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns._api, true);\n          enterEmphasisWhenMouseOver(dispatcher, e);\n          markStatusToUpdate(ecIns);\n        }\n      }).on('mouseout', function (e) {\n        var el = e.target;\n        var dispatcher = findEventDispatcher(el, isHighDownDispatcher);\n\n        if (dispatcher) {\n          var ecData = getECData(dispatcher);\n          toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns._api, false);\n          leaveEmphasisWhenMouseOut(dispatcher, e);\n          markStatusToUpdate(ecIns);\n        }\n      }).on('click', function (e) {\n        var el = e.target;\n        var dispatcher = findEventDispatcher(el, function (target) {\n          return getECData(target).dataIndex != null;\n        }, true);\n\n        if (dispatcher) {\n          var actionType = dispatcher.selected ? 'unselect' : 'select';\n          var ecData = getECData(dispatcher);\n\n          ecIns._api.dispatchAction({\n            type: actionType,\n            dataType: ecData.dataType,\n            dataIndexInside: ecData.dataIndex,\n            seriesIndex: ecData.seriesIndex,\n            isFromClick: true\n          });\n        }\n      });\n    };\n\n    clearColorPalette = function (ecModel) {\n      ecModel.clearColorPalette();\n      ecModel.eachSeries(function (seriesModel) {\n        seriesModel.clearColorPalette();\n      });\n    };\n\n    render = function (ecIns, ecModel, api, payload) {\n      renderComponents(ecIns, ecModel, api, payload);\n      each(ecIns._chartsViews, function (chart) {\n        chart.__alive = false;\n      });\n      renderSeries(ecIns, ecModel, api, payload);\n      each(ecIns._chartsViews, function (chart) {\n        if (!chart.__alive) {\n          chart.remove(ecModel, api);\n        }\n      });\n    };\n\n    renderComponents = function (ecIns, ecModel, api, payload, dirtyList) {\n      each(dirtyList || ecIns._componentsViews, function (componentView) {\n        var componentModel = componentView.__model;\n        clearStates(componentModel, componentView);\n        componentView.render(componentModel, ecModel, api, payload);\n        updateZ(componentModel, componentView);\n        updateStates(componentModel, componentView);\n      });\n    };\n\n    renderSeries = function (ecIns, ecModel, api, payload, dirtyMap) {\n      var scheduler = ecIns._scheduler;\n      var labelManager = ecIns._labelManager;\n      labelManager.clearLabels();\n      var unfinished = false;\n      ecModel.eachSeries(function (seriesModel) {\n        var chartView = ecIns._chartsMap[seriesModel.__viewId];\n        chartView.__alive = true;\n        var renderTask = chartView.renderTask;\n        scheduler.updatePayload(renderTask, payload);\n        clearStates(seriesModel, chartView);\n\n        if (dirtyMap && dirtyMap.get(seriesModel.uid)) {\n          renderTask.dirty();\n        }\n\n        if (renderTask.perform(scheduler.getPerformArgs(renderTask))) {\n          unfinished = true;\n        }\n\n        seriesModel.__transientTransitionOpt = null;\n        chartView.group.silent = !!seriesModel.get('silent');\n        updateBlend(seriesModel, chartView);\n        updateSeriesElementSelection(seriesModel);\n        labelManager.addLabelsOfSeries(chartView);\n      });\n      scheduler.unfinished = unfinished || scheduler.unfinished;\n      labelManager.updateLayoutConfig(api);\n      labelManager.layout(api);\n      labelManager.processLabelsOverall();\n      ecModel.eachSeries(function (seriesModel) {\n        var chartView = ecIns._chartsMap[seriesModel.__viewId];\n        updateZ(seriesModel, chartView);\n        updateStates(seriesModel, chartView);\n      });\n      updateHoverLayerStatus(ecIns, ecModel);\n    };\n\n    performPostUpdateFuncs = function (ecModel, api) {\n      each(postUpdateFuncs, function (func) {\n        func(ecModel, api);\n      });\n    };\n\n    markStatusToUpdate = function (ecIns) {\n      ecIns[STATUS_NEEDS_UPDATE_KEY] = true;\n      ecIns.getZr().wakeUp();\n    };\n\n    applyChangedStates = function (ecIns) {\n      if (!ecIns[STATUS_NEEDS_UPDATE_KEY]) {\n        return;\n      }\n\n      ecIns.getZr().storage.traverse(function (el) {\n        if (graphic.isElementRemoved(el)) {\n          return;\n        }\n\n        applyElementStates(el);\n      });\n      ecIns[STATUS_NEEDS_UPDATE_KEY] = false;\n    };\n\n    function applyElementStates(el) {\n      var newStates = [];\n      var oldStates = el.currentStates;\n\n      for (var i = 0; i < oldStates.length; i++) {\n        var stateName = oldStates[i];\n\n        if (!(stateName === 'emphasis' || stateName === 'blur' || stateName === 'select')) {\n          newStates.push(stateName);\n        }\n      }\n\n      if (el.selected && el.states.select) {\n        newStates.push('select');\n      }\n\n      if (el.hoverState === HOVER_STATE_EMPHASIS && el.states.emphasis) {\n        newStates.push('emphasis');\n      } else if (el.hoverState === HOVER_STATE_BLUR && el.states.blur) {\n        newStates.push('blur');\n      }\n\n      el.useStates(newStates);\n    }\n\n    function updateHoverLayerStatus(ecIns, ecModel) {\n      var zr = ecIns._zr;\n      var storage = zr.storage;\n      var elCount = 0;\n      storage.traverse(function (el) {\n        if (!el.isGroup) {\n          elCount++;\n        }\n      });\n\n      if (elCount > ecModel.get('hoverLayerThreshold') && !env.node && !env.worker) {\n        ecModel.eachSeries(function (seriesModel) {\n          if (seriesModel.preventUsingHoverLayer) {\n            return;\n          }\n\n          var chartView = ecIns._chartsMap[seriesModel.__viewId];\n\n          if (chartView.__alive) {\n            chartView.group.traverse(function (el) {\n              if (el.states.emphasis) {\n                el.states.emphasis.hoverLayer = true;\n              }\n            });\n          }\n        });\n      }\n    }\n\n    ;\n\n    function updateBlend(seriesModel, chartView) {\n      var blendMode = seriesModel.get('blendMode') || null;\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (!env.canvasSupported && blendMode && blendMode !== 'source-over') {\n          console.warn('Only canvas support blendMode');\n        }\n      }\n\n      chartView.group.traverse(function (el) {\n        if (!el.isGroup) {\n          el.style.blend = blendMode;\n        }\n\n        if (el.eachPendingDisplayable) {\n          el.eachPendingDisplayable(function (displayable) {\n            displayable.style.blend = blendMode;\n          });\n        }\n      });\n    }\n\n    ;\n\n    function updateZ(model, view) {\n      if (model.preventAutoZ) {\n        return;\n      }\n\n      var z = model.get('z');\n      var zlevel = model.get('zlevel');\n      view.group.traverse(function (el) {\n        if (!el.isGroup) {\n          z != null && (el.z = z);\n          zlevel != null && (el.zlevel = zlevel);\n          var label = el.getTextContent();\n          var labelLine = el.getTextGuideLine();\n\n          if (label) {\n            label.z = el.z;\n            label.zlevel = el.zlevel;\n            label.z2 = el.z2 + 2;\n          }\n\n          if (labelLine) {\n            var showAbove = el.textGuideLineConfig && el.textGuideLineConfig.showAbove;\n            labelLine.z = el.z;\n            labelLine.zlevel = el.zlevel;\n            labelLine.z2 = el.z2 + (showAbove ? 1 : -1);\n          }\n        }\n      });\n    }\n\n    ;\n\n    function clearStates(model, view) {\n      view.group.traverse(function (el) {\n        if (graphic.isElementRemoved(el)) {\n          return;\n        }\n\n        var textContent = el.getTextContent();\n        var textGuide = el.getTextGuideLine();\n\n        if (el.stateTransition) {\n          el.stateTransition = null;\n        }\n\n        if (textContent && textContent.stateTransition) {\n          textContent.stateTransition = null;\n        }\n\n        if (textGuide && textGuide.stateTransition) {\n          textGuide.stateTransition = null;\n        }\n\n        if (el.hasState()) {\n          el.prevStates = el.currentStates;\n          el.clearStates();\n        } else if (el.prevStates) {\n          el.prevStates = null;\n        }\n      });\n    }\n\n    function updateStates(model, view) {\n      var stateAnimationModel = model.getModel('stateAnimation');\n      var enableAnimation = model.isAnimationEnabled();\n      var duration = stateAnimationModel.get('duration');\n      var stateTransition = duration > 0 ? {\n        duration: duration,\n        delay: stateAnimationModel.get('delay'),\n        easing: stateAnimationModel.get('easing')\n      } : null;\n      view.group.traverse(function (el) {\n        if (el.states && el.states.emphasis) {\n          if (graphic.isElementRemoved(el)) {\n            return;\n          }\n\n          if (el instanceof graphic.Path) {\n            savePathStates(el);\n          }\n\n          if (el.__dirty) {\n            var prevStates = el.prevStates;\n\n            if (prevStates) {\n              el.useStates(prevStates);\n            }\n          }\n\n          if (enableAnimation) {\n            el.stateTransition = stateTransition;\n            var textContent = el.getTextContent();\n            var textGuide = el.getTextGuideLine();\n\n            if (textContent) {\n              textContent.stateTransition = stateTransition;\n            }\n\n            if (textGuide) {\n              textGuide.stateTransition = stateTransition;\n            }\n          }\n\n          if (el.__dirty) {\n            applyElementStates(el);\n          }\n        }\n      });\n    }\n\n    ;\n\n    createExtensionAPI = function (ecIns) {\n      return new (function (_super) {\n        __extends(class_1, _super);\n\n        function class_1() {\n          return _super !== null && _super.apply(this, arguments) || this;\n        }\n\n        class_1.prototype.getCoordinateSystems = function () {\n          return ecIns._coordSysMgr.getCoordinateSystems();\n        };\n\n        class_1.prototype.getComponentByElement = function (el) {\n          while (el) {\n            var modelInfo = el.__ecComponentInfo;\n\n            if (modelInfo != null) {\n              return ecIns._model.getComponent(modelInfo.mainType, modelInfo.index);\n            }\n\n            el = el.parent;\n          }\n        };\n\n        class_1.prototype.enterEmphasis = function (el, highlightDigit) {\n          enterEmphasis(el, highlightDigit);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.leaveEmphasis = function (el, highlightDigit) {\n          leaveEmphasis(el, highlightDigit);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.enterBlur = function (el) {\n          enterBlur(el);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.leaveBlur = function (el) {\n          leaveBlur(el);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.enterSelect = function (el) {\n          enterSelect(el);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.leaveSelect = function (el) {\n          leaveSelect(el);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.getModel = function () {\n          return ecIns.getModel();\n        };\n\n        class_1.prototype.getViewOfComponentModel = function (componentModel) {\n          return ecIns.getViewOfComponentModel(componentModel);\n        };\n\n        class_1.prototype.getViewOfSeriesModel = function (seriesModel) {\n          return ecIns.getViewOfSeriesModel(seriesModel);\n        };\n\n        return class_1;\n      }(ExtensionAPI))(ecIns);\n    };\n\n    enableConnect = function (chart) {\n      function updateConnectedChartsStatus(charts, status) {\n        for (var i = 0; i < charts.length; i++) {\n          var otherChart = charts[i];\n          otherChart[CONNECT_STATUS_KEY] = status;\n        }\n      }\n\n      each(eventActionMap, function (actionType, eventType) {\n        chart._messageCenter.on(eventType, function (event) {\n          if (connectedGroups[chart.group] && chart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_PENDING) {\n            if (event && event.escapeConnect) {\n              return;\n            }\n\n            var action_1 = chart.makeActionFromEvent(event);\n            var otherCharts_1 = [];\n            each(instances, function (otherChart) {\n              if (otherChart !== chart && otherChart.group === chart.group) {\n                otherCharts_1.push(otherChart);\n              }\n            });\n            updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_PENDING);\n            each(otherCharts_1, function (otherChart) {\n              if (otherChart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_UPDATING) {\n                otherChart.dispatchAction(action_1);\n              }\n            });\n            updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_UPDATED);\n          }\n        });\n      });\n    };\n\n    setTransitionOpt = function (chart, transitionOpt) {\n      var ecModel = chart._model;\n      zrUtil.each(modelUtil.normalizeToArray(transitionOpt), function (transOpt) {\n        var errMsg;\n        var fromOpt = transOpt.from;\n        var toOpt = transOpt.to;\n\n        if (toOpt == null) {\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg = '`transition.to` must be specified.';\n          }\n\n          throwError(errMsg);\n        }\n\n        var finderOpt = {\n          includeMainTypes: ['series'],\n          enableAll: false,\n          enableNone: false\n        };\n        var fromResult = fromOpt ? modelUtil.parseFinder(ecModel, fromOpt, finderOpt) : null;\n        var toResult = modelUtil.parseFinder(ecModel, toOpt, finderOpt);\n        var toSeries = toResult.seriesModel;\n\n        if (toSeries == null) {\n          errMsg = '';\n\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg = '`transition` is only supported on series.';\n          }\n        }\n\n        if (fromResult && fromResult.seriesModel !== toSeries) {\n          errMsg = '';\n\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg = '`transition.from` and `transition.to` must be specified to the same series.';\n          }\n        }\n\n        if (errMsg != null) {\n          throwError(errMsg);\n        }\n\n        toSeries.__transientTransitionOpt = {\n          from: fromOpt ? fromOpt.dimension : null,\n          to: toOpt.dimension,\n          dividingMethod: transOpt.dividingMethod\n        };\n      });\n    };\n  }();\n\n  return ECharts;\n}(Eventful);\n\nvar echartsProto = ECharts.prototype;\nechartsProto.on = createRegisterEventWithLowercaseECharts('on');\nechartsProto.off = createRegisterEventWithLowercaseECharts('off');\n\nechartsProto.one = function (eventName, cb, ctx) {\n  var self = this;\n  deprecateLog('ECharts#one is deprecated.');\n\n  function wrapped() {\n    var args2 = [];\n\n    for (var _i = 0; _i < arguments.length; _i++) {\n      args2[_i] = arguments[_i];\n    }\n\n    cb && cb.apply && cb.apply(this, args2);\n    self.off(eventName, wrapped);\n  }\n\n  ;\n  this.on.call(this, eventName, wrapped, ctx);\n};\n\nvar MOUSE_EVENT_NAMES = ['click', 'dblclick', 'mouseover', 'mouseout', 'mousemove', 'mousedown', 'mouseup', 'globalout', 'contextmenu'];\n\nfunction disposedWarning(id) {\n  if (process.env.NODE_ENV !== 'production') {\n    console.warn('Instance ' + id + ' has been disposed');\n  }\n}\n\nvar actions = {};\nvar eventActionMap = {};\nvar dataProcessorFuncs = [];\nvar optionPreprocessorFuncs = [];\nvar postInitFuncs = [];\nvar postUpdateFuncs = [];\nvar visualFuncs = [];\nvar themeStorage = {};\nvar loadingEffects = {};\nvar instances = {};\nvar connectedGroups = {};\nvar idBase = +new Date() - 0;\nvar groupIdBase = +new Date() - 0;\nvar DOM_ATTRIBUTE_KEY = '_echarts_instance_';\nexport function init(dom, theme, opts) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (!dom) {\n      throw new Error('Initialize failed: invalid dom.');\n    }\n  }\n\n  var existInstance = getInstanceByDom(dom);\n\n  if (existInstance) {\n    if (process.env.NODE_ENV !== 'production') {\n      console.warn('There is a chart instance already initialized on the dom.');\n    }\n\n    return existInstance;\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (zrUtil.isDom(dom) && dom.nodeName.toUpperCase() !== 'CANVAS' && (!dom.clientWidth && (!opts || opts.width == null) || !dom.clientHeight && (!opts || opts.height == null))) {\n      console.warn('Can\\'t get DOM width or height. Please check ' + 'dom.clientWidth and dom.clientHeight. They should not be 0.' + 'For example, you may need to call this in the callback ' + 'of window.onload.');\n    }\n  }\n\n  var chart = new ECharts(dom, theme, opts);\n  chart.id = 'ec_' + idBase++;\n  instances[chart.id] = chart;\n  modelUtil.setAttribute(dom, DOM_ATTRIBUTE_KEY, chart.id);\n  enableConnect(chart);\n  each(postInitFuncs, function (postInitFunc) {\n    postInitFunc(chart);\n  });\n  return chart;\n}\nexport function connect(groupId) {\n  if (zrUtil.isArray(groupId)) {\n    var charts = groupId;\n    groupId = null;\n    each(charts, function (chart) {\n      if (chart.group != null) {\n        groupId = chart.group;\n      }\n    });\n    groupId = groupId || 'g_' + groupIdBase++;\n    each(charts, function (chart) {\n      chart.group = groupId;\n    });\n  }\n\n  connectedGroups[groupId] = true;\n  return groupId;\n}\nexport function disConnect(groupId) {\n  connectedGroups[groupId] = false;\n}\nexport var disconnect = disConnect;\nexport function dispose(chart) {\n  if (typeof chart === 'string') {\n    chart = instances[chart];\n  } else if (!(chart instanceof ECharts)) {\n    chart = getInstanceByDom(chart);\n  }\n\n  if (chart instanceof ECharts && !chart.isDisposed()) {\n    chart.dispose();\n  }\n}\nexport function getInstanceByDom(dom) {\n  return instances[modelUtil.getAttribute(dom, DOM_ATTRIBUTE_KEY)];\n}\nexport function getInstanceById(key) {\n  return instances[key];\n}\nexport function registerTheme(name, theme) {\n  themeStorage[name] = theme;\n}\nexport function registerPreprocessor(preprocessorFunc) {\n  if (indexOf(optionPreprocessorFuncs, preprocessorFunc) < 0) {\n    optionPreprocessorFuncs.push(preprocessorFunc);\n  }\n}\nexport function registerProcessor(priority, processor) {\n  normalizeRegister(dataProcessorFuncs, priority, processor, PRIORITY_PROCESSOR_DEFAULT);\n}\nexport function registerPostInit(postInitFunc) {\n  if (indexOf(postInitFuncs, postInitFunc) < 0) {\n    postInitFunc && postInitFuncs.push(postInitFunc);\n  }\n}\nexport function registerPostUpdate(postUpdateFunc) {\n  if (indexOf(postUpdateFuncs, postUpdateFunc) < 0) {\n    postUpdateFunc && postUpdateFuncs.push(postUpdateFunc);\n  }\n}\nexport function registerAction(actionInfo, eventName, action) {\n  if (typeof eventName === 'function') {\n    action = eventName;\n    eventName = '';\n  }\n\n  var actionType = isObject(actionInfo) ? actionInfo.type : [actionInfo, actionInfo = {\n    event: eventName\n  }][0];\n  actionInfo.event = (actionInfo.event || actionType).toLowerCase();\n  eventName = actionInfo.event;\n\n  if (eventActionMap[eventName]) {\n    return;\n  }\n\n  assert(ACTION_REG.test(actionType) && ACTION_REG.test(eventName));\n\n  if (!actions[actionType]) {\n    actions[actionType] = {\n      action: action,\n      actionInfo: actionInfo\n    };\n  }\n\n  eventActionMap[eventName] = actionType;\n}\nexport function registerCoordinateSystem(type, coordSysCreator) {\n  CoordinateSystemManager.register(type, coordSysCreator);\n}\nexport function getCoordinateSystemDimensions(type) {\n  var coordSysCreator = CoordinateSystemManager.get(type);\n\n  if (coordSysCreator) {\n    return coordSysCreator.getDimensionsInfo ? coordSysCreator.getDimensionsInfo() : coordSysCreator.dimensions.slice();\n  }\n}\nexport { registerLocale } from './locale';\n\nfunction registerLayout(priority, layoutTask) {\n  normalizeRegister(visualFuncs, priority, layoutTask, PRIORITY_VISUAL_LAYOUT, 'layout');\n}\n\nfunction registerVisual(priority, visualTask) {\n  normalizeRegister(visualFuncs, priority, visualTask, PRIORITY_VISUAL_CHART, 'visual');\n}\n\nexport { registerLayout, registerVisual };\nvar registeredTasks = [];\n\nfunction normalizeRegister(targetList, priority, fn, defaultPriority, visualType) {\n  if (isFunction(priority) || isObject(priority)) {\n    fn = priority;\n    priority = defaultPriority;\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (isNaN(priority) || priority == null) {\n      throw new Error('Illegal priority');\n    }\n\n    each(targetList, function (wrap) {\n      assert(wrap.__raw !== fn);\n    });\n  }\n\n  if (indexOf(registeredTasks, fn) >= 0) {\n    return;\n  }\n\n  registeredTasks.push(fn);\n  var stageHandler = Scheduler.wrapStageHandler(fn, visualType);\n  stageHandler.__prio = priority;\n  stageHandler.__raw = fn;\n  targetList.push(stageHandler);\n}\n\nexport function registerLoading(name, loadingFx) {\n  loadingEffects[name] = loadingFx;\n}\nexport function setCanvasCreator(creator) {\n  zrUtil.$override('createCanvas', creator);\n}\nexport function registerMap(mapName, geoJson, specialAreas) {\n  mapDataStorage.registerMap(mapName, geoJson, specialAreas);\n}\nexport function getMap(mapName) {\n  var records = mapDataStorage.retrieveMap(mapName);\n  return records && records[0] && {\n    geoJson: records[0].geoJSON,\n    specialAreas: records[0].specialAreas\n  };\n}\nexport var registerTransform = registerExternalTransform;\nregisterVisual(PRIORITY_VISUAL_GLOBAL, seriesStyleTask);\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataStyleTask);\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataColorPaletteTask);\nregisterVisual(PRIORITY_VISUAL_GLOBAL, seriesSymbolTask);\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataSymbolTask);\nregisterVisual(PRIORITY_VISUAL_DECAL, decal);\nregisterPreprocessor(backwardCompat);\nregisterProcessor(PRIORITY_PROCESSOR_DATASTACK, dataStack);\nregisterLoading('default', loadingDefault);\nregisterAction({\n  type: HIGHLIGHT_ACTION_TYPE,\n  event: HIGHLIGHT_ACTION_TYPE,\n  update: HIGHLIGHT_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n  type: DOWNPLAY_ACTION_TYPE,\n  event: DOWNPLAY_ACTION_TYPE,\n  update: DOWNPLAY_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n  type: SELECT_ACTION_TYPE,\n  event: SELECT_ACTION_TYPE,\n  update: SELECT_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n  type: UNSELECT_ACTION_TYPE,\n  event: UNSELECT_ACTION_TYPE,\n  update: UNSELECT_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n  type: TOGGLE_SELECT_ACTION_TYPE,\n  event: TOGGLE_SELECT_ACTION_TYPE,\n  update: TOGGLE_SELECT_ACTION_TYPE\n}, zrUtil.noop);\nregisterTheme('light', lightTheme);\nregisterTheme('dark', darkTheme);\nexport var dataTool = {};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { registerPreprocessor, registerProcessor, registerPostInit, registerPostUpdate, registerAction, registerCoordinateSystem, registerLayout, registerVisual, registerTransform, registerLoading, registerMap, PRIORITY } from './core/echarts';\nimport ComponentView from './view/Component';\nimport ChartView from './view/Chart';\nimport ComponentModel from './model/Component';\nimport SeriesModel from './model/Series';\nimport { isFunction, indexOf, isArray, each } from 'zrender/lib/core/util';\nimport { registerPainter } from 'zrender/lib/zrender';\nvar extensions = [];\nvar extensionRegisters = {\n  registerPreprocessor: registerPreprocessor,\n  registerProcessor: registerProcessor,\n  registerPostInit: registerPostInit,\n  registerPostUpdate: registerPostUpdate,\n  registerAction: registerAction,\n  registerCoordinateSystem: registerCoordinateSystem,\n  registerLayout: registerLayout,\n  registerVisual: registerVisual,\n  registerTransform: registerTransform,\n  registerLoading: registerLoading,\n  registerMap: registerMap,\n  PRIORITY: PRIORITY,\n  ComponentModel: ComponentModel,\n  ComponentView: ComponentView,\n  SeriesModel: SeriesModel,\n  ChartView: ChartView,\n  registerComponentModel: function (ComponentModelClass) {\n    ComponentModel.registerClass(ComponentModelClass);\n  },\n  registerComponentView: function (ComponentViewClass) {\n    ComponentView.registerClass(ComponentViewClass);\n  },\n  registerSeriesModel: function (SeriesModelClass) {\n    SeriesModel.registerClass(SeriesModelClass);\n  },\n  registerChartView: function (ChartViewClass) {\n    ChartView.registerClass(ChartViewClass);\n  },\n  registerSubTypeDefaulter: function (componentType, defaulter) {\n    ComponentModel.registerSubTypeDefaulter(componentType, defaulter);\n  },\n  registerPainter: function (painterType, PainterCtor) {\n    registerPainter(painterType, PainterCtor);\n  }\n};\nexport function use(ext) {\n  if (isArray(ext)) {\n    each(ext, function (singleExt) {\n      use(singleExt);\n    });\n    return;\n  }\n\n  if (indexOf(extensions, ext) >= 0) {\n    return;\n  }\n\n  extensions.push(ext);\n\n  if (isFunction(ext)) {\n    ext = {\n      install: ext\n    };\n  }\n\n  ext.install(extensionRegisters);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nfunction dataIndexMapValueLength(valNumOrArrLengthMoreThan2) {\n  return valNumOrArrLengthMoreThan2 == null ? 0 : valNumOrArrLengthMoreThan2.length || 1;\n}\n\nfunction defaultKeyGetter(item) {\n  return item;\n}\n\nvar DataDiffer = function () {\n  function DataDiffer(oldArr, newArr, oldKeyGetter, newKeyGetter, context, diffMode) {\n    this._old = oldArr;\n    this._new = newArr;\n    this._oldKeyGetter = oldKeyGetter || defaultKeyGetter;\n    this._newKeyGetter = newKeyGetter || defaultKeyGetter;\n    this.context = context;\n    this._diffModeMultiple = diffMode === 'multiple';\n  }\n\n  DataDiffer.prototype.add = function (func) {\n    this._add = func;\n    return this;\n  };\n\n  DataDiffer.prototype.update = function (func) {\n    this._update = func;\n    return this;\n  };\n\n  DataDiffer.prototype.updateManyToOne = function (func) {\n    this._updateManyToOne = func;\n    return this;\n  };\n\n  DataDiffer.prototype.updateOneToMany = function (func) {\n    this._updateOneToMany = func;\n    return this;\n  };\n\n  DataDiffer.prototype.remove = function (func) {\n    this._remove = func;\n    return this;\n  };\n\n  DataDiffer.prototype.execute = function () {\n    this[this._diffModeMultiple ? '_executeMultiple' : '_executeOneToOne']();\n  };\n\n  DataDiffer.prototype._executeOneToOne = function () {\n    var oldArr = this._old;\n    var newArr = this._new;\n    var newDataIndexMap = {};\n    var oldDataKeyArr = new Array(oldArr.length);\n    var newDataKeyArr = new Array(newArr.length);\n\n    this._initIndexMap(oldArr, null, oldDataKeyArr, '_oldKeyGetter');\n\n    this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, '_newKeyGetter');\n\n    for (var i = 0; i < oldArr.length; i++) {\n      var oldKey = oldDataKeyArr[i];\n      var newIdxMapVal = newDataIndexMap[oldKey];\n      var newIdxMapValLen = dataIndexMapValueLength(newIdxMapVal);\n\n      if (newIdxMapValLen > 1) {\n        var newIdx = newIdxMapVal.shift();\n\n        if (newIdxMapVal.length === 1) {\n          newDataIndexMap[oldKey] = newIdxMapVal[0];\n        }\n\n        this._update && this._update(newIdx, i);\n      } else if (newIdxMapValLen === 1) {\n        newDataIndexMap[oldKey] = null;\n        this._update && this._update(newIdxMapVal, i);\n      } else {\n        this._remove && this._remove(i);\n      }\n    }\n\n    this._performRestAdd(newDataKeyArr, newDataIndexMap);\n  };\n\n  DataDiffer.prototype._executeMultiple = function () {\n    var oldArr = this._old;\n    var newArr = this._new;\n    var oldDataIndexMap = {};\n    var newDataIndexMap = {};\n    var oldDataKeyArr = [];\n    var newDataKeyArr = [];\n\n    this._initIndexMap(oldArr, oldDataIndexMap, oldDataKeyArr, '_oldKeyGetter');\n\n    this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, '_newKeyGetter');\n\n    for (var i = 0; i < oldDataKeyArr.length; i++) {\n      var oldKey = oldDataKeyArr[i];\n      var oldIdxMapVal = oldDataIndexMap[oldKey];\n      var newIdxMapVal = newDataIndexMap[oldKey];\n      var oldIdxMapValLen = dataIndexMapValueLength(oldIdxMapVal);\n      var newIdxMapValLen = dataIndexMapValueLength(newIdxMapVal);\n\n      if (oldIdxMapValLen > 1 && newIdxMapValLen === 1) {\n        this._updateManyToOne && this._updateManyToOne(newIdxMapVal, oldIdxMapVal);\n        newDataIndexMap[oldKey] = null;\n      } else if (oldIdxMapValLen === 1 && newIdxMapValLen > 1) {\n        this._updateOneToMany && this._updateOneToMany(newIdxMapVal, oldIdxMapVal);\n        newDataIndexMap[oldKey] = null;\n      } else if (oldIdxMapValLen === 1 && newIdxMapValLen === 1) {\n        this._update && this._update(newIdxMapVal, oldIdxMapVal);\n        newDataIndexMap[oldKey] = null;\n      } else if (oldIdxMapValLen > 1) {\n        for (var i_1 = 0; i_1 < oldIdxMapValLen; i_1++) {\n          this._remove && this._remove(oldIdxMapVal[i_1]);\n        }\n      } else {\n        this._remove && this._remove(oldIdxMapVal);\n      }\n    }\n\n    this._performRestAdd(newDataKeyArr, newDataIndexMap);\n  };\n\n  DataDiffer.prototype._performRestAdd = function (newDataKeyArr, newDataIndexMap) {\n    for (var i = 0; i < newDataKeyArr.length; i++) {\n      var newKey = newDataKeyArr[i];\n      var newIdxMapVal = newDataIndexMap[newKey];\n      var idxMapValLen = dataIndexMapValueLength(newIdxMapVal);\n\n      if (idxMapValLen > 1) {\n        for (var j = 0; j < idxMapValLen; j++) {\n          this._add && this._add(newIdxMapVal[j]);\n        }\n      } else if (idxMapValLen === 1) {\n        this._add && this._add(newIdxMapVal);\n      }\n\n      newDataIndexMap[newKey] = null;\n    }\n  };\n\n  DataDiffer.prototype._initIndexMap = function (arr, map, keyArr, keyGetterName) {\n    var cbModeMultiple = this._diffModeMultiple;\n\n    for (var i = 0; i < arr.length; i++) {\n      var key = '_ec_' + this[keyGetterName](arr[i], i);\n\n      if (!cbModeMultiple) {\n        keyArr[i] = key;\n      }\n\n      if (!map) {\n        continue;\n      }\n\n      var idxMapVal = map[key];\n      var idxMapValLen = dataIndexMapValueLength(idxMapVal);\n\n      if (idxMapValLen === 0) {\n        map[key] = i;\n\n        if (cbModeMultiple) {\n          keyArr.push(key);\n        }\n      } else if (idxMapValLen === 1) {\n        map[key] = [idxMapVal, i];\n      } else {\n        idxMapVal.push(i);\n      }\n    }\n  };\n\n  return DataDiffer;\n}();\n\nexport default DataDiffer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, createHashMap, assert } from 'zrender/lib/core/util';\nimport { VISUAL_DIMENSIONS } from '../../util/types';\nexport function summarizeDimensions(data) {\n  var summary = {};\n  var encode = summary.encode = {};\n  var notExtraCoordDimMap = createHashMap();\n  var defaultedLabel = [];\n  var defaultedTooltip = [];\n  var userOutput = summary.userOutput = {\n    dimensionNames: data.dimensions.slice(),\n    encode: {}\n  };\n  each(data.dimensions, function (dimName) {\n    var dimItem = data.getDimensionInfo(dimName);\n    var coordDim = dimItem.coordDim;\n\n    if (coordDim) {\n      if (process.env.NODE_ENV !== 'production') {\n        assert(VISUAL_DIMENSIONS.get(coordDim) == null);\n      }\n\n      var coordDimIndex = dimItem.coordDimIndex;\n      getOrCreateEncodeArr(encode, coordDim)[coordDimIndex] = dimName;\n\n      if (!dimItem.isExtraCoord) {\n        notExtraCoordDimMap.set(coordDim, 1);\n\n        if (mayLabelDimType(dimItem.type)) {\n          defaultedLabel[0] = dimName;\n        }\n\n        getOrCreateEncodeArr(userOutput.encode, coordDim)[coordDimIndex] = dimItem.index;\n      }\n\n      if (dimItem.defaultTooltip) {\n        defaultedTooltip.push(dimName);\n      }\n    }\n\n    VISUAL_DIMENSIONS.each(function (v, otherDim) {\n      var encodeArr = getOrCreateEncodeArr(encode, otherDim);\n      var dimIndex = dimItem.otherDims[otherDim];\n\n      if (dimIndex != null && dimIndex !== false) {\n        encodeArr[dimIndex] = dimItem.name;\n      }\n    });\n  });\n  var dataDimsOnCoord = [];\n  var encodeFirstDimNotExtra = {};\n  notExtraCoordDimMap.each(function (v, coordDim) {\n    var dimArr = encode[coordDim];\n    encodeFirstDimNotExtra[coordDim] = dimArr[0];\n    dataDimsOnCoord = dataDimsOnCoord.concat(dimArr);\n  });\n  summary.dataDimsOnCoord = dataDimsOnCoord;\n  summary.encodeFirstDimNotExtra = encodeFirstDimNotExtra;\n  var encodeLabel = encode.label;\n\n  if (encodeLabel && encodeLabel.length) {\n    defaultedLabel = encodeLabel.slice();\n  }\n\n  var encodeTooltip = encode.tooltip;\n\n  if (encodeTooltip && encodeTooltip.length) {\n    defaultedTooltip = encodeTooltip.slice();\n  } else if (!defaultedTooltip.length) {\n    defaultedTooltip = defaultedLabel.slice();\n  }\n\n  encode.defaultedLabel = defaultedLabel;\n  encode.defaultedTooltip = defaultedTooltip;\n  return summary;\n}\n\nfunction getOrCreateEncodeArr(encode, dim) {\n  if (!encode.hasOwnProperty(dim)) {\n    encode[dim] = [];\n  }\n\n  return encode[dim];\n}\n\nexport function getDimensionTypeByAxis(axisType) {\n  return axisType === 'category' ? 'ordinal' : axisType === 'time' ? 'time' : 'float';\n}\n\nfunction mayLabelDimType(dimType) {\n  return !(dimType === 'ordinal' || dimType === 'time');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nvar DataDimensionInfo = function () {\n  function DataDimensionInfo(opt) {\n    this.otherDims = {};\n\n    if (opt != null) {\n      zrUtil.extend(this, opt);\n    }\n  }\n\n  return DataDimensionInfo;\n}();\n\n;\nexport default DataDimensionInfo;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Model from '../model/Model';\nimport DataDiffer from './DataDiffer';\nimport { DefaultDataProvider } from './helper/dataProvider';\nimport { summarizeDimensions } from './helper/dimensionHelper';\nimport DataDimensionInfo from './DataDimensionInfo';\nimport { SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ORIGINAL } from '../util/types';\nimport { isDataItemOption, convertOptionIdName } from '../util/model';\nimport { getECData } from '../util/innerStore';\nimport { parseDataValue } from './helper/dataValueHelper';\nimport { isSourceInstance } from './Source';\nvar mathFloor = Math.floor;\nvar isObject = zrUtil.isObject;\nvar map = zrUtil.map;\nvar UNDEFINED = 'undefined';\nvar INDEX_NOT_FOUND = -1;\nvar ID_PREFIX = 'e\\0\\0';\nvar dataCtors = {\n  'float': typeof Float64Array === UNDEFINED ? Array : Float64Array,\n  'int': typeof Int32Array === UNDEFINED ? Array : Int32Array,\n  'ordinal': Array,\n  'number': Array,\n  'time': Array\n};\nvar CtorUint32Array = typeof Uint32Array === UNDEFINED ? Array : Uint32Array;\nvar CtorInt32Array = typeof Int32Array === UNDEFINED ? Array : Int32Array;\nvar CtorUint16Array = typeof Uint16Array === UNDEFINED ? Array : Uint16Array;\nvar TRANSFERABLE_PROPERTIES = ['hasItemOption', '_nameList', '_idList', '_invertedIndicesMap', '_rawData', '_dimValueGetter', '_count', '_rawCount', '_nameDimIdx', '_idDimIdx', '_nameRepeatCount'];\nvar CLONE_PROPERTIES = ['_extent', '_approximateExtent', '_rawExtent'];\nvar defaultDimValueGetters;\nvar prepareInvertedIndex;\nvar getIndicesCtor;\nvar prepareStorage;\nvar getRawIndexWithoutIndices;\nvar getRawIndexWithIndices;\nvar getId;\nvar getIdNameFromStore;\nvar makeIdFromName;\nvar normalizeDimensions;\nvar validateDimensions;\nvar cloneListForMapAndSample;\nvar getInitialExtent;\nvar setItemDataAndSeriesIndex;\nvar transferProperties;\n\nvar List = function () {\n  function List(dimensions, hostModel) {\n    this.type = 'list';\n    this._count = 0;\n    this._rawCount = 0;\n    this._storage = {};\n    this._storageArr = [];\n    this._nameList = [];\n    this._idList = [];\n    this._visual = {};\n    this._layout = {};\n    this._itemVisuals = [];\n    this._itemLayouts = [];\n    this._graphicEls = [];\n    this._rawExtent = {};\n    this._extent = {};\n    this._approximateExtent = {};\n    this._calculationInfo = {};\n    this.hasItemOption = true;\n    this.TRANSFERABLE_METHODS = ['cloneShallow', 'downSample', 'lttbDownSample', 'map'];\n    this.CHANGABLE_METHODS = ['filterSelf', 'selectRange'];\n    this.DOWNSAMPLE_METHODS = ['downSample', 'lttbDownSample'];\n    this.getRawIndex = getRawIndexWithoutIndices;\n    dimensions = dimensions || ['x', 'y'];\n    var dimensionInfos = {};\n    var dimensionNames = [];\n    var invertedIndicesMap = {};\n\n    for (var i = 0; i < dimensions.length; i++) {\n      var dimInfoInput = dimensions[i];\n      var dimensionInfo = zrUtil.isString(dimInfoInput) ? new DataDimensionInfo({\n        name: dimInfoInput\n      }) : !(dimInfoInput instanceof DataDimensionInfo) ? new DataDimensionInfo(dimInfoInput) : dimInfoInput;\n      var dimensionName = dimensionInfo.name;\n      dimensionInfo.type = dimensionInfo.type || 'float';\n\n      if (!dimensionInfo.coordDim) {\n        dimensionInfo.coordDim = dimensionName;\n        dimensionInfo.coordDimIndex = 0;\n      }\n\n      var otherDims = dimensionInfo.otherDims = dimensionInfo.otherDims || {};\n      dimensionNames.push(dimensionName);\n      dimensionInfos[dimensionName] = dimensionInfo;\n      dimensionInfo.index = i;\n\n      if (dimensionInfo.createInvertedIndices) {\n        invertedIndicesMap[dimensionName] = [];\n      }\n\n      if (otherDims.itemName === 0) {\n        this._nameDimIdx = i;\n        this._nameOrdinalMeta = dimensionInfo.ordinalMeta;\n      }\n\n      if (otherDims.itemId === 0) {\n        this._idDimIdx = i;\n        this._idOrdinalMeta = dimensionInfo.ordinalMeta;\n      }\n    }\n\n    this.dimensions = dimensionNames;\n    this._dimensionInfos = dimensionInfos;\n    this.hostModel = hostModel;\n    this._dimensionsSummary = summarizeDimensions(this);\n    this._invertedIndicesMap = invertedIndicesMap;\n    this.userOutput = this._dimensionsSummary.userOutput;\n  }\n\n  List.prototype.getDimension = function (dim) {\n    if (typeof dim === 'number' || !isNaN(dim) && !this._dimensionInfos.hasOwnProperty(dim)) {\n      dim = this.dimensions[dim];\n    }\n\n    return dim;\n  };\n\n  List.prototype.getDimensionInfo = function (dim) {\n    return this._dimensionInfos[this.getDimension(dim)];\n  };\n\n  List.prototype.getDimensionsOnCoord = function () {\n    return this._dimensionsSummary.dataDimsOnCoord.slice();\n  };\n\n  List.prototype.mapDimension = function (coordDim, idx) {\n    var dimensionsSummary = this._dimensionsSummary;\n\n    if (idx == null) {\n      return dimensionsSummary.encodeFirstDimNotExtra[coordDim];\n    }\n\n    var dims = dimensionsSummary.encode[coordDim];\n    return dims ? dims[idx] : null;\n  };\n\n  List.prototype.mapDimensionsAll = function (coordDim) {\n    var dimensionsSummary = this._dimensionsSummary;\n    var dims = dimensionsSummary.encode[coordDim];\n    return (dims || []).slice();\n  };\n\n  List.prototype.initData = function (data, nameList, dimValueGetter) {\n    var notProvider = isSourceInstance(data) || zrUtil.isArrayLike(data);\n    var provider = notProvider ? new DefaultDataProvider(data, this.dimensions.length) : data;\n\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.assert(notProvider || zrUtil.isFunction(provider.getItem) && zrUtil.isFunction(provider.count), 'Inavlid data provider.');\n    }\n\n    this._rawData = provider;\n    var sourceFormat = provider.getSource().sourceFormat;\n    this._storage = {};\n    this._indices = null;\n    this._dontMakeIdFromName = this._idDimIdx != null || sourceFormat === SOURCE_FORMAT_TYPED_ARRAY || !!provider.fillStorage;\n    this._nameList = (nameList || []).slice();\n    this._idList = [];\n    this._nameRepeatCount = {};\n\n    if (!dimValueGetter) {\n      this.hasItemOption = false;\n    }\n\n    this.defaultDimValueGetter = defaultDimValueGetters[sourceFormat];\n    this._dimValueGetter = dimValueGetter = dimValueGetter || this.defaultDimValueGetter;\n    this._dimValueGetterArrayRows = defaultDimValueGetters.arrayRows;\n    this._rawExtent = {};\n\n    this._initDataFromProvider(0, provider.count());\n\n    if (provider.pure) {\n      this.hasItemOption = false;\n    }\n  };\n\n  List.prototype.getProvider = function () {\n    return this._rawData;\n  };\n\n  List.prototype.appendData = function (data) {\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.assert(!this._indices, 'appendData can only be called on raw data.');\n    }\n\n    var rawData = this._rawData;\n    var start = this.count();\n    rawData.appendData(data);\n    var end = rawData.count();\n\n    if (!rawData.persistent) {\n      end += start;\n    }\n\n    this._initDataFromProvider(start, end, true);\n  };\n\n  List.prototype.appendValues = function (values, names) {\n    var storage = this._storage;\n    var dimensions = this.dimensions;\n    var dimLen = dimensions.length;\n    var rawExtent = this._rawExtent;\n    var start = this.count();\n    var end = start + Math.max(values.length, names ? names.length : 0);\n\n    for (var i = 0; i < dimLen; i++) {\n      var dim = dimensions[i];\n\n      if (!rawExtent[dim]) {\n        rawExtent[dim] = getInitialExtent();\n      }\n\n      prepareStorage(storage, this._dimensionInfos[dim], end, true);\n    }\n\n    var rawExtentArr = map(dimensions, function (dim) {\n      return rawExtent[dim];\n    });\n    var storageArr = this._storageArr = map(dimensions, function (dim) {\n      return storage[dim];\n    });\n    var emptyDataItem = [];\n\n    for (var idx = start; idx < end; idx++) {\n      var sourceIdx = idx - start;\n\n      for (var dimIdx = 0; dimIdx < dimLen; dimIdx++) {\n        var dim = dimensions[dimIdx];\n\n        var val = this._dimValueGetterArrayRows(values[sourceIdx] || emptyDataItem, dim, sourceIdx, dimIdx);\n\n        storageArr[dimIdx][idx] = val;\n        var dimRawExtent = rawExtentArr[dimIdx];\n        val < dimRawExtent[0] && (dimRawExtent[0] = val);\n        val > dimRawExtent[1] && (dimRawExtent[1] = val);\n      }\n\n      if (names) {\n        this._nameList[idx] = names[sourceIdx];\n\n        if (!this._dontMakeIdFromName) {\n          makeIdFromName(this, idx);\n        }\n      }\n    }\n\n    this._rawCount = this._count = end;\n    this._extent = {};\n    prepareInvertedIndex(this);\n  };\n\n  List.prototype._initDataFromProvider = function (start, end, append) {\n    if (start >= end) {\n      return;\n    }\n\n    var rawData = this._rawData;\n    var storage = this._storage;\n    var dimensions = this.dimensions;\n    var dimLen = dimensions.length;\n    var dimensionInfoMap = this._dimensionInfos;\n    var nameList = this._nameList;\n    var idList = this._idList;\n    var rawExtent = this._rawExtent;\n    var sourceFormat = rawData.getSource().sourceFormat;\n    var isFormatOriginal = sourceFormat === SOURCE_FORMAT_ORIGINAL;\n\n    for (var i = 0; i < dimLen; i++) {\n      var dim = dimensions[i];\n\n      if (!rawExtent[dim]) {\n        rawExtent[dim] = getInitialExtent();\n      }\n\n      prepareStorage(storage, dimensionInfoMap[dim], end, append);\n    }\n\n    var storageArr = this._storageArr = map(dimensions, function (dim) {\n      return storage[dim];\n    });\n    var rawExtentArr = map(dimensions, function (dim) {\n      return rawExtent[dim];\n    });\n\n    if (rawData.fillStorage) {\n      rawData.fillStorage(start, end, storageArr, rawExtentArr);\n    } else {\n      var dataItem = [];\n\n      for (var idx = start; idx < end; idx++) {\n        dataItem = rawData.getItem(idx, dataItem);\n\n        for (var dimIdx = 0; dimIdx < dimLen; dimIdx++) {\n          var dim = dimensions[dimIdx];\n          var dimStorage = storageArr[dimIdx];\n\n          var val = this._dimValueGetter(dataItem, dim, idx, dimIdx);\n\n          dimStorage[idx] = val;\n          var dimRawExtent = rawExtentArr[dimIdx];\n          val < dimRawExtent[0] && (dimRawExtent[0] = val);\n          val > dimRawExtent[1] && (dimRawExtent[1] = val);\n        }\n\n        if (isFormatOriginal && !rawData.pure && dataItem) {\n          var itemName = dataItem.name;\n\n          if (nameList[idx] == null && itemName != null) {\n            nameList[idx] = convertOptionIdName(itemName, null);\n          }\n\n          var itemId = dataItem.id;\n\n          if (idList[idx] == null && itemId != null) {\n            idList[idx] = convertOptionIdName(itemId, null);\n          }\n        }\n\n        if (!this._dontMakeIdFromName) {\n          makeIdFromName(this, idx);\n        }\n      }\n    }\n\n    if (!rawData.persistent && rawData.clean) {\n      rawData.clean();\n    }\n\n    this._rawCount = this._count = end;\n    this._extent = {};\n    prepareInvertedIndex(this);\n  };\n\n  List.prototype.count = function () {\n    return this._count;\n  };\n\n  List.prototype.getIndices = function () {\n    var newIndices;\n    var indices = this._indices;\n\n    if (indices) {\n      var Ctor = indices.constructor;\n      var thisCount = this._count;\n\n      if (Ctor === Array) {\n        newIndices = new Ctor(thisCount);\n\n        for (var i = 0; i < thisCount; i++) {\n          newIndices[i] = indices[i];\n        }\n      } else {\n        newIndices = new Ctor(indices.buffer, 0, thisCount);\n      }\n    } else {\n      var Ctor = getIndicesCtor(this);\n      newIndices = new Ctor(this.count());\n\n      for (var i = 0; i < newIndices.length; i++) {\n        newIndices[i] = i;\n      }\n    }\n\n    return newIndices;\n  };\n\n  List.prototype.getByDimIdx = function (dimIdx, idx) {\n    if (!(idx >= 0 && idx < this._count)) {\n      return NaN;\n    }\n\n    var dimStore = this._storageArr[dimIdx];\n    return dimStore ? dimStore[this.getRawIndex(idx)] : NaN;\n  };\n\n  List.prototype.get = function (dim, idx) {\n    if (!(idx >= 0 && idx < this._count)) {\n      return NaN;\n    }\n\n    var dimStore = this._storage[dim];\n    return dimStore ? dimStore[this.getRawIndex(idx)] : NaN;\n  };\n\n  List.prototype.getByRawIndex = function (dim, rawIdx) {\n    if (!(rawIdx >= 0 && rawIdx < this._rawCount)) {\n      return NaN;\n    }\n\n    var dimStore = this._storage[dim];\n    return dimStore ? dimStore[rawIdx] : NaN;\n  };\n\n  List.prototype.getValues = function (dimensions, idx) {\n    var values = [];\n\n    if (!zrUtil.isArray(dimensions)) {\n      idx = dimensions;\n      dimensions = this.dimensions;\n    }\n\n    for (var i = 0, len = dimensions.length; i < len; i++) {\n      values.push(this.get(dimensions[i], idx));\n    }\n\n    return values;\n  };\n\n  List.prototype.hasValue = function (idx) {\n    var dataDimsOnCoord = this._dimensionsSummary.dataDimsOnCoord;\n\n    for (var i = 0, len = dataDimsOnCoord.length; i < len; i++) {\n      if (isNaN(this.get(dataDimsOnCoord[i], idx))) {\n        return false;\n      }\n    }\n\n    return true;\n  };\n\n  List.prototype.getDataExtent = function (dim) {\n    dim = this.getDimension(dim);\n    var dimData = this._storage[dim];\n    var initialExtent = getInitialExtent();\n\n    if (!dimData) {\n      return initialExtent;\n    }\n\n    var currEnd = this.count();\n    var useRaw = !this._indices;\n    var dimExtent;\n\n    if (useRaw) {\n      return this._rawExtent[dim].slice();\n    }\n\n    dimExtent = this._extent[dim];\n\n    if (dimExtent) {\n      return dimExtent.slice();\n    }\n\n    dimExtent = initialExtent;\n    var min = dimExtent[0];\n    var max = dimExtent[1];\n\n    for (var i = 0; i < currEnd; i++) {\n      var rawIdx = this.getRawIndex(i);\n      var value = dimData[rawIdx];\n      value < min && (min = value);\n      value > max && (max = value);\n    }\n\n    dimExtent = [min, max];\n    this._extent[dim] = dimExtent;\n    return dimExtent;\n  };\n\n  List.prototype.getApproximateExtent = function (dim) {\n    dim = this.getDimension(dim);\n    return this._approximateExtent[dim] || this.getDataExtent(dim);\n  };\n\n  List.prototype.setApproximateExtent = function (extent, dim) {\n    dim = this.getDimension(dim);\n    this._approximateExtent[dim] = extent.slice();\n  };\n\n  List.prototype.getCalculationInfo = function (key) {\n    return this._calculationInfo[key];\n  };\n\n  List.prototype.setCalculationInfo = function (key, value) {\n    isObject(key) ? zrUtil.extend(this._calculationInfo, key) : this._calculationInfo[key] = value;\n  };\n\n  List.prototype.getSum = function (dim) {\n    var dimData = this._storage[dim];\n    var sum = 0;\n\n    if (dimData) {\n      for (var i = 0, len = this.count(); i < len; i++) {\n        var value = this.get(dim, i);\n\n        if (!isNaN(value)) {\n          sum += value;\n        }\n      }\n    }\n\n    return sum;\n  };\n\n  List.prototype.getMedian = function (dim) {\n    var dimDataArray = [];\n    this.each(dim, function (val) {\n      if (!isNaN(val)) {\n        dimDataArray.push(val);\n      }\n    });\n    var sortedDimDataArray = dimDataArray.sort(function (a, b) {\n      return a - b;\n    });\n    var len = this.count();\n    return len === 0 ? 0 : len % 2 === 1 ? sortedDimDataArray[(len - 1) / 2] : (sortedDimDataArray[len / 2] + sortedDimDataArray[len / 2 - 1]) / 2;\n  };\n\n  List.prototype.rawIndexOf = function (dim, value) {\n    var invertedIndices = dim && this._invertedIndicesMap[dim];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!invertedIndices) {\n        throw new Error('Do not supported yet');\n      }\n    }\n\n    var rawIndex = invertedIndices[value];\n\n    if (rawIndex == null || isNaN(rawIndex)) {\n      return INDEX_NOT_FOUND;\n    }\n\n    return rawIndex;\n  };\n\n  List.prototype.indexOfName = function (name) {\n    for (var i = 0, len = this.count(); i < len; i++) {\n      if (this.getName(i) === name) {\n        return i;\n      }\n    }\n\n    return -1;\n  };\n\n  List.prototype.indexOfRawIndex = function (rawIndex) {\n    if (rawIndex >= this._rawCount || rawIndex < 0) {\n      return -1;\n    }\n\n    if (!this._indices) {\n      return rawIndex;\n    }\n\n    var indices = this._indices;\n    var rawDataIndex = indices[rawIndex];\n\n    if (rawDataIndex != null && rawDataIndex < this._count && rawDataIndex === rawIndex) {\n      return rawIndex;\n    }\n\n    var left = 0;\n    var right = this._count - 1;\n\n    while (left <= right) {\n      var mid = (left + right) / 2 | 0;\n\n      if (indices[mid] < rawIndex) {\n        left = mid + 1;\n      } else if (indices[mid] > rawIndex) {\n        right = mid - 1;\n      } else {\n        return mid;\n      }\n    }\n\n    return -1;\n  };\n\n  List.prototype.indicesOfNearest = function (dim, value, maxDistance) {\n    var storage = this._storage;\n    var dimData = storage[dim];\n    var nearestIndices = [];\n\n    if (!dimData) {\n      return nearestIndices;\n    }\n\n    if (maxDistance == null) {\n      maxDistance = Infinity;\n    }\n\n    var minDist = Infinity;\n    var minDiff = -1;\n    var nearestIndicesLen = 0;\n\n    for (var i = 0, len = this.count(); i < len; i++) {\n      var dataIndex = this.getRawIndex(i);\n      var diff = value - dimData[dataIndex];\n      var dist = Math.abs(diff);\n\n      if (dist <= maxDistance) {\n        if (dist < minDist || dist === minDist && diff >= 0 && minDiff < 0) {\n          minDist = dist;\n          minDiff = diff;\n          nearestIndicesLen = 0;\n        }\n\n        if (diff === minDiff) {\n          nearestIndices[nearestIndicesLen++] = i;\n        }\n      }\n    }\n\n    nearestIndices.length = nearestIndicesLen;\n    return nearestIndices;\n  };\n\n  List.prototype.getRawDataItem = function (idx) {\n    if (!this._rawData.persistent) {\n      var val = [];\n\n      for (var i = 0; i < this.dimensions.length; i++) {\n        var dim = this.dimensions[i];\n        val.push(this.get(dim, idx));\n      }\n\n      return val;\n    } else {\n      return this._rawData.getItem(this.getRawIndex(idx));\n    }\n  };\n\n  List.prototype.getName = function (idx) {\n    var rawIndex = this.getRawIndex(idx);\n    var name = this._nameList[rawIndex];\n\n    if (name == null && this._nameDimIdx != null) {\n      name = getIdNameFromStore(this, this._nameDimIdx, this._nameOrdinalMeta, rawIndex);\n    }\n\n    if (name == null) {\n      name = '';\n    }\n\n    return name;\n  };\n\n  List.prototype.getId = function (idx) {\n    return getId(this, this.getRawIndex(idx));\n  };\n\n  List.prototype.each = function (dims, cb, ctx, ctxCompat) {\n    'use strict';\n\n    var _this = this;\n\n    if (!this._count) {\n      return;\n    }\n\n    if (typeof dims === 'function') {\n      ctxCompat = ctx;\n      ctx = cb;\n      cb = dims;\n      dims = [];\n    }\n\n    var fCtx = ctx || ctxCompat || this;\n    var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\n\n    if (process.env.NODE_ENV !== 'production') {\n      validateDimensions(this, dimNames);\n    }\n\n    var dimSize = dimNames.length;\n    var dimIndices = map(dimNames, function (dimName) {\n      return _this._dimensionInfos[dimName].index;\n    });\n    var storageArr = this._storageArr;\n\n    for (var i = 0, len = this.count(); i < len; i++) {\n      var rawIdx = this.getRawIndex(i);\n\n      switch (dimSize) {\n        case 0:\n          cb.call(fCtx, i);\n          break;\n\n        case 1:\n          cb.call(fCtx, storageArr[dimIndices[0]][rawIdx], i);\n          break;\n\n        case 2:\n          cb.call(fCtx, storageArr[dimIndices[0]][rawIdx], storageArr[dimIndices[1]][rawIdx], i);\n          break;\n\n        default:\n          var k = 0;\n          var value = [];\n\n          for (; k < dimSize; k++) {\n            value[k] = storageArr[dimIndices[k]][rawIdx];\n          }\n\n          value[k] = i;\n          cb.apply(fCtx, value);\n      }\n    }\n  };\n\n  List.prototype.filterSelf = function (dims, cb, ctx, ctxCompat) {\n    'use strict';\n\n    var _this = this;\n\n    if (!this._count) {\n      return;\n    }\n\n    if (typeof dims === 'function') {\n      ctxCompat = ctx;\n      ctx = cb;\n      cb = dims;\n      dims = [];\n    }\n\n    var fCtx = ctx || ctxCompat || this;\n    var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\n\n    if (process.env.NODE_ENV !== 'production') {\n      validateDimensions(this, dimNames);\n    }\n\n    var count = this.count();\n    var Ctor = getIndicesCtor(this);\n    var newIndices = new Ctor(count);\n    var value = [];\n    var dimSize = dimNames.length;\n    var offset = 0;\n    var dimIndices = map(dimNames, function (dimName) {\n      return _this._dimensionInfos[dimName].index;\n    });\n    var dim0 = dimIndices[0];\n    var storageArr = this._storageArr;\n\n    for (var i = 0; i < count; i++) {\n      var keep = void 0;\n      var rawIdx = this.getRawIndex(i);\n\n      if (dimSize === 0) {\n        keep = cb.call(fCtx, i);\n      } else if (dimSize === 1) {\n        var val = storageArr[dim0][rawIdx];\n        keep = cb.call(fCtx, val, i);\n      } else {\n        var k = 0;\n\n        for (; k < dimSize; k++) {\n          value[k] = storageArr[dimIndices[k]][rawIdx];\n        }\n\n        value[k] = i;\n        keep = cb.apply(fCtx, value);\n      }\n\n      if (keep) {\n        newIndices[offset++] = rawIdx;\n      }\n    }\n\n    if (offset < count) {\n      this._indices = newIndices;\n    }\n\n    this._count = offset;\n    this._extent = {};\n    this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n    return this;\n  };\n\n  List.prototype.selectRange = function (range) {\n    'use strict';\n\n    var _this = this;\n\n    var len = this._count;\n\n    if (!len) {\n      return;\n    }\n\n    var dimensions = [];\n\n    for (var dim in range) {\n      if (range.hasOwnProperty(dim)) {\n        dimensions.push(dim);\n      }\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      validateDimensions(this, dimensions);\n    }\n\n    var dimSize = dimensions.length;\n\n    if (!dimSize) {\n      return;\n    }\n\n    var originalCount = this.count();\n    var Ctor = getIndicesCtor(this);\n    var newIndices = new Ctor(originalCount);\n    var offset = 0;\n    var dim0 = dimensions[0];\n    var dimIndices = map(dimensions, function (dimName) {\n      return _this._dimensionInfos[dimName].index;\n    });\n    var min = range[dim0][0];\n    var max = range[dim0][1];\n    var storageArr = this._storageArr;\n    var quickFinished = false;\n\n    if (!this._indices) {\n      var idx = 0;\n\n      if (dimSize === 1) {\n        var dimStorage = storageArr[dimIndices[0]];\n\n        for (var i = 0; i < len; i++) {\n          var val = dimStorage[i];\n\n          if (val >= min && val <= max || isNaN(val)) {\n            newIndices[offset++] = idx;\n          }\n\n          idx++;\n        }\n\n        quickFinished = true;\n      } else if (dimSize === 2) {\n        var dimStorage = storageArr[dimIndices[0]];\n        var dimStorage2 = storageArr[dimIndices[1]];\n        var min2 = range[dimensions[1]][0];\n        var max2 = range[dimensions[1]][1];\n\n        for (var i = 0; i < len; i++) {\n          var val = dimStorage[i];\n          var val2 = dimStorage2[i];\n\n          if ((val >= min && val <= max || isNaN(val)) && (val2 >= min2 && val2 <= max2 || isNaN(val2))) {\n            newIndices[offset++] = idx;\n          }\n\n          idx++;\n        }\n\n        quickFinished = true;\n      }\n    }\n\n    if (!quickFinished) {\n      if (dimSize === 1) {\n        for (var i = 0; i < originalCount; i++) {\n          var rawIndex = this.getRawIndex(i);\n          var val = storageArr[dimIndices[0]][rawIndex];\n\n          if (val >= min && val <= max || isNaN(val)) {\n            newIndices[offset++] = rawIndex;\n          }\n        }\n      } else {\n        for (var i = 0; i < originalCount; i++) {\n          var keep = true;\n          var rawIndex = this.getRawIndex(i);\n\n          for (var k = 0; k < dimSize; k++) {\n            var dimk = dimensions[k];\n            var val = storageArr[dimIndices[k]][rawIndex];\n\n            if (val < range[dimk][0] || val > range[dimk][1]) {\n              keep = false;\n            }\n          }\n\n          if (keep) {\n            newIndices[offset++] = this.getRawIndex(i);\n          }\n        }\n      }\n    }\n\n    if (offset < originalCount) {\n      this._indices = newIndices;\n    }\n\n    this._count = offset;\n    this._extent = {};\n    this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n    return this;\n  };\n\n  List.prototype.mapArray = function (dims, cb, ctx, ctxCompat) {\n    'use strict';\n\n    if (typeof dims === 'function') {\n      ctxCompat = ctx;\n      ctx = cb;\n      cb = dims;\n      dims = [];\n    }\n\n    ctx = ctx || ctxCompat || this;\n    var result = [];\n    this.each(dims, function () {\n      result.push(cb && cb.apply(this, arguments));\n    }, ctx);\n    return result;\n  };\n\n  List.prototype.map = function (dims, cb, ctx, ctxCompat) {\n    'use strict';\n\n    var fCtx = ctx || ctxCompat || this;\n    var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\n\n    if (process.env.NODE_ENV !== 'production') {\n      validateDimensions(this, dimNames);\n    }\n\n    var list = cloneListForMapAndSample(this, dimNames);\n    var storage = list._storage;\n    list._indices = this._indices;\n    list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n    var tmpRetValue = [];\n    var dimSize = dimNames.length;\n    var dataCount = this.count();\n    var values = [];\n    var rawExtent = list._rawExtent;\n\n    for (var dataIndex = 0; dataIndex < dataCount; dataIndex++) {\n      for (var dimIndex = 0; dimIndex < dimSize; dimIndex++) {\n        values[dimIndex] = this.get(dimNames[dimIndex], dataIndex);\n      }\n\n      values[dimSize] = dataIndex;\n      var retValue = cb && cb.apply(fCtx, values);\n\n      if (retValue != null) {\n        if (typeof retValue !== 'object') {\n          tmpRetValue[0] = retValue;\n          retValue = tmpRetValue;\n        }\n\n        var rawIndex = this.getRawIndex(dataIndex);\n\n        for (var i = 0; i < retValue.length; i++) {\n          var dim = dimNames[i];\n          var val = retValue[i];\n          var rawExtentOnDim = rawExtent[dim];\n          var dimStore = storage[dim];\n\n          if (dimStore) {\n            dimStore[rawIndex] = val;\n          }\n\n          if (val < rawExtentOnDim[0]) {\n            rawExtentOnDim[0] = val;\n          }\n\n          if (val > rawExtentOnDim[1]) {\n            rawExtentOnDim[1] = val;\n          }\n        }\n      }\n    }\n\n    return list;\n  };\n\n  List.prototype.downSample = function (dimension, rate, sampleValue, sampleIndex) {\n    var list = cloneListForMapAndSample(this, [dimension]);\n    var targetStorage = list._storage;\n    var frameValues = [];\n    var frameSize = mathFloor(1 / rate);\n    var dimStore = targetStorage[dimension];\n    var len = this.count();\n    var rawExtentOnDim = list._rawExtent[dimension];\n    var newIndices = new (getIndicesCtor(this))(len);\n    var offset = 0;\n\n    for (var i = 0; i < len; i += frameSize) {\n      if (frameSize > len - i) {\n        frameSize = len - i;\n        frameValues.length = frameSize;\n      }\n\n      for (var k = 0; k < frameSize; k++) {\n        var dataIdx = this.getRawIndex(i + k);\n        frameValues[k] = dimStore[dataIdx];\n      }\n\n      var value = sampleValue(frameValues);\n      var sampleFrameIdx = this.getRawIndex(Math.min(i + sampleIndex(frameValues, value) || 0, len - 1));\n      dimStore[sampleFrameIdx] = value;\n\n      if (value < rawExtentOnDim[0]) {\n        rawExtentOnDim[0] = value;\n      }\n\n      if (value > rawExtentOnDim[1]) {\n        rawExtentOnDim[1] = value;\n      }\n\n      newIndices[offset++] = sampleFrameIdx;\n    }\n\n    list._count = offset;\n    list._indices = newIndices;\n    list.getRawIndex = getRawIndexWithIndices;\n    return list;\n  };\n\n  List.prototype.lttbDownSample = function (valueDimension, rate) {\n    var list = cloneListForMapAndSample(this, []);\n    var targetStorage = list._storage;\n    var dimStore = targetStorage[valueDimension];\n    var len = this.count();\n    var newIndices = new (getIndicesCtor(this))(len);\n    var sampledIndex = 0;\n    var frameSize = mathFloor(1 / rate);\n    var currentRawIndex = this.getRawIndex(0);\n    var maxArea;\n    var area;\n    var nextRawIndex;\n    newIndices[sampledIndex++] = currentRawIndex;\n\n    for (var i = 1; i < len - 1; i += frameSize) {\n      var nextFrameStart = Math.min(i + frameSize, len - 1);\n      var nextFrameEnd = Math.min(i + frameSize * 2, len);\n      var avgX = (nextFrameEnd + nextFrameStart) / 2;\n      var avgY = 0;\n\n      for (var idx = nextFrameStart; idx < nextFrameEnd; idx++) {\n        var rawIndex = this.getRawIndex(idx);\n        var y = dimStore[rawIndex];\n\n        if (isNaN(y)) {\n          continue;\n        }\n\n        avgY += y;\n      }\n\n      avgY /= nextFrameEnd - nextFrameStart;\n      var frameStart = i;\n      var frameEnd = Math.min(i + frameSize, len);\n      var pointAX = i - 1;\n      var pointAY = dimStore[currentRawIndex];\n      maxArea = -1;\n      nextRawIndex = frameStart;\n\n      for (var idx = frameStart; idx < frameEnd; idx++) {\n        var rawIndex = this.getRawIndex(idx);\n        var y = dimStore[rawIndex];\n\n        if (isNaN(y)) {\n          continue;\n        }\n\n        area = Math.abs((pointAX - avgX) * (y - pointAY) - (pointAX - idx) * (avgY - pointAY));\n\n        if (area > maxArea) {\n          maxArea = area;\n          nextRawIndex = rawIndex;\n        }\n      }\n\n      newIndices[sampledIndex++] = nextRawIndex;\n      currentRawIndex = nextRawIndex;\n    }\n\n    newIndices[sampledIndex++] = this.getRawIndex(len - 1);\n    list._count = sampledIndex;\n    list._indices = newIndices;\n    list.getRawIndex = getRawIndexWithIndices;\n    return list;\n  };\n\n  List.prototype.getItemModel = function (idx) {\n    var hostModel = this.hostModel;\n    var dataItem = this.getRawDataItem(idx);\n    return new Model(dataItem, hostModel, hostModel && hostModel.ecModel);\n  };\n\n  List.prototype.diff = function (otherList) {\n    var thisList = this;\n    return new DataDiffer(otherList ? otherList.getIndices() : [], this.getIndices(), function (idx) {\n      return getId(otherList, idx);\n    }, function (idx) {\n      return getId(thisList, idx);\n    });\n  };\n\n  List.prototype.getVisual = function (key) {\n    var visual = this._visual;\n    return visual && visual[key];\n  };\n\n  List.prototype.setVisual = function (kvObj, val) {\n    this._visual = this._visual || {};\n\n    if (isObject(kvObj)) {\n      zrUtil.extend(this._visual, kvObj);\n    } else {\n      this._visual[kvObj] = val;\n    }\n  };\n\n  List.prototype.getItemVisual = function (idx, key) {\n    var itemVisual = this._itemVisuals[idx];\n    var val = itemVisual && itemVisual[key];\n\n    if (val == null) {\n      return this.getVisual(key);\n    }\n\n    return val;\n  };\n\n  List.prototype.hasItemVisual = function () {\n    return this._itemVisuals.length > 0;\n  };\n\n  List.prototype.ensureUniqueItemVisual = function (idx, key) {\n    var itemVisuals = this._itemVisuals;\n    var itemVisual = itemVisuals[idx];\n\n    if (!itemVisual) {\n      itemVisual = itemVisuals[idx] = {};\n    }\n\n    var val = itemVisual[key];\n\n    if (val == null) {\n      val = this.getVisual(key);\n\n      if (zrUtil.isArray(val)) {\n        val = val.slice();\n      } else if (isObject(val)) {\n        val = zrUtil.extend({}, val);\n      }\n\n      itemVisual[key] = val;\n    }\n\n    return val;\n  };\n\n  List.prototype.setItemVisual = function (idx, key, value) {\n    var itemVisual = this._itemVisuals[idx] || {};\n    this._itemVisuals[idx] = itemVisual;\n\n    if (isObject(key)) {\n      zrUtil.extend(itemVisual, key);\n    } else {\n      itemVisual[key] = value;\n    }\n  };\n\n  List.prototype.clearAllVisual = function () {\n    this._visual = {};\n    this._itemVisuals = [];\n  };\n\n  List.prototype.setLayout = function (key, val) {\n    if (isObject(key)) {\n      for (var name_1 in key) {\n        if (key.hasOwnProperty(name_1)) {\n          this.setLayout(name_1, key[name_1]);\n        }\n      }\n\n      return;\n    }\n\n    this._layout[key] = val;\n  };\n\n  List.prototype.getLayout = function (key) {\n    return this._layout[key];\n  };\n\n  List.prototype.getItemLayout = function (idx) {\n    return this._itemLayouts[idx];\n  };\n\n  List.prototype.setItemLayout = function (idx, layout, merge) {\n    this._itemLayouts[idx] = merge ? zrUtil.extend(this._itemLayouts[idx] || {}, layout) : layout;\n  };\n\n  List.prototype.clearItemLayouts = function () {\n    this._itemLayouts.length = 0;\n  };\n\n  List.prototype.setItemGraphicEl = function (idx, el) {\n    var hostModel = this.hostModel;\n\n    if (el) {\n      var ecData = getECData(el);\n      ecData.dataIndex = idx;\n      ecData.dataType = this.dataType;\n      ecData.seriesIndex = hostModel && hostModel.seriesIndex;\n\n      if (el.type === 'group') {\n        el.traverse(setItemDataAndSeriesIndex, el);\n      }\n    }\n\n    this._graphicEls[idx] = el;\n  };\n\n  List.prototype.getItemGraphicEl = function (idx) {\n    return this._graphicEls[idx];\n  };\n\n  List.prototype.eachItemGraphicEl = function (cb, context) {\n    zrUtil.each(this._graphicEls, function (el, idx) {\n      if (el) {\n        cb && cb.call(context, el, idx);\n      }\n    });\n  };\n\n  List.prototype.cloneShallow = function (list) {\n    if (!list) {\n      var dimensionInfoList = map(this.dimensions, this.getDimensionInfo, this);\n      list = new List(dimensionInfoList, this.hostModel);\n    }\n\n    list._storage = this._storage;\n    list._storageArr = this._storageArr;\n    transferProperties(list, this);\n\n    if (this._indices) {\n      var Ctor = this._indices.constructor;\n\n      if (Ctor === Array) {\n        var thisCount = this._indices.length;\n        list._indices = new Ctor(thisCount);\n\n        for (var i = 0; i < thisCount; i++) {\n          list._indices[i] = this._indices[i];\n        }\n      } else {\n        list._indices = new Ctor(this._indices);\n      }\n    } else {\n      list._indices = null;\n    }\n\n    list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n    return list;\n  };\n\n  List.prototype.wrapMethod = function (methodName, injectFunction) {\n    var originalMethod = this[methodName];\n\n    if (typeof originalMethod !== 'function') {\n      return;\n    }\n\n    this.__wrappedMethods = this.__wrappedMethods || [];\n\n    this.__wrappedMethods.push(methodName);\n\n    this[methodName] = function () {\n      var res = originalMethod.apply(this, arguments);\n      return injectFunction.apply(this, [res].concat(zrUtil.slice(arguments)));\n    };\n  };\n\n  List.internalField = function () {\n    defaultDimValueGetters = {\n      arrayRows: getDimValueSimply,\n      objectRows: function (dataItem, dimName, dataIndex, dimIndex) {\n        return parseDataValue(dataItem[dimName], this._dimensionInfos[dimName]);\n      },\n      keyedColumns: getDimValueSimply,\n      original: function (dataItem, dimName, dataIndex, dimIndex) {\n        var value = dataItem && (dataItem.value == null ? dataItem : dataItem.value);\n\n        if (!this._rawData.pure && isDataItemOption(dataItem)) {\n          this.hasItemOption = true;\n        }\n\n        return parseDataValue(value instanceof Array ? value[dimIndex] : value, this._dimensionInfos[dimName]);\n      },\n      typedArray: function (dataItem, dimName, dataIndex, dimIndex) {\n        return dataItem[dimIndex];\n      }\n    };\n\n    function getDimValueSimply(dataItem, dimName, dataIndex, dimIndex) {\n      return parseDataValue(dataItem[dimIndex], this._dimensionInfos[dimName]);\n    }\n\n    prepareInvertedIndex = function (list) {\n      var invertedIndicesMap = list._invertedIndicesMap;\n      zrUtil.each(invertedIndicesMap, function (invertedIndices, dim) {\n        var dimInfo = list._dimensionInfos[dim];\n        var ordinalMeta = dimInfo.ordinalMeta;\n\n        if (ordinalMeta) {\n          invertedIndices = invertedIndicesMap[dim] = new CtorInt32Array(ordinalMeta.categories.length);\n\n          for (var i = 0; i < invertedIndices.length; i++) {\n            invertedIndices[i] = INDEX_NOT_FOUND;\n          }\n\n          for (var i = 0; i < list._count; i++) {\n            invertedIndices[list.get(dim, i)] = i;\n          }\n        }\n      });\n    };\n\n    getIdNameFromStore = function (list, dimIdx, ordinalMeta, rawIndex) {\n      var val;\n      var chunk = list._storageArr[dimIdx];\n\n      if (chunk) {\n        val = chunk[rawIndex];\n\n        if (ordinalMeta && ordinalMeta.categories.length) {\n          val = ordinalMeta.categories[val];\n        }\n      }\n\n      return convertOptionIdName(val, null);\n    };\n\n    getIndicesCtor = function (list) {\n      return list._rawCount > 65535 ? CtorUint32Array : CtorUint16Array;\n    };\n\n    prepareStorage = function (storage, dimInfo, end, append) {\n      var DataCtor = dataCtors[dimInfo.type];\n      var dim = dimInfo.name;\n\n      if (append) {\n        var oldStore = storage[dim];\n        var oldLen = oldStore && oldStore.length;\n\n        if (!(oldLen === end)) {\n          var newStore = new DataCtor(end);\n\n          for (var j = 0; j < oldLen; j++) {\n            newStore[j] = oldStore[j];\n          }\n\n          storage[dim] = newStore;\n        }\n      } else {\n        storage[dim] = new DataCtor(end);\n      }\n    };\n\n    getRawIndexWithoutIndices = function (idx) {\n      return idx;\n    };\n\n    getRawIndexWithIndices = function (idx) {\n      if (idx < this._count && idx >= 0) {\n        return this._indices[idx];\n      }\n\n      return -1;\n    };\n\n    getId = function (list, rawIndex) {\n      var id = list._idList[rawIndex];\n\n      if (id == null && list._idDimIdx != null) {\n        id = getIdNameFromStore(list, list._idDimIdx, list._idOrdinalMeta, rawIndex);\n      }\n\n      if (id == null) {\n        id = ID_PREFIX + rawIndex;\n      }\n\n      return id;\n    };\n\n    normalizeDimensions = function (dimensions) {\n      if (!zrUtil.isArray(dimensions)) {\n        dimensions = dimensions != null ? [dimensions] : [];\n      }\n\n      return dimensions;\n    };\n\n    validateDimensions = function (list, dims) {\n      for (var i = 0; i < dims.length; i++) {\n        if (!list._dimensionInfos[dims[i]]) {\n          console.error('Unkown dimension ' + dims[i]);\n        }\n      }\n    };\n\n    cloneListForMapAndSample = function (original, excludeDimensions) {\n      var allDimensions = original.dimensions;\n      var list = new List(map(allDimensions, original.getDimensionInfo, original), original.hostModel);\n      transferProperties(list, original);\n      var storage = list._storage = {};\n      var originalStorage = original._storage;\n      var storageArr = list._storageArr = [];\n\n      for (var i = 0; i < allDimensions.length; i++) {\n        var dim = allDimensions[i];\n\n        if (originalStorage[dim]) {\n          if (zrUtil.indexOf(excludeDimensions, dim) >= 0) {\n            storage[dim] = cloneChunk(originalStorage[dim]);\n            list._rawExtent[dim] = getInitialExtent();\n            list._extent[dim] = null;\n          } else {\n            storage[dim] = originalStorage[dim];\n          }\n\n          storageArr.push(storage[dim]);\n        }\n      }\n\n      return list;\n    };\n\n    function cloneChunk(originalChunk) {\n      var Ctor = originalChunk.constructor;\n      return Ctor === Array ? originalChunk.slice() : new Ctor(originalChunk);\n    }\n\n    getInitialExtent = function () {\n      return [Infinity, -Infinity];\n    };\n\n    setItemDataAndSeriesIndex = function (child) {\n      var childECData = getECData(child);\n      var thisECData = getECData(this);\n      childECData.seriesIndex = thisECData.seriesIndex;\n      childECData.dataIndex = thisECData.dataIndex;\n      childECData.dataType = thisECData.dataType;\n    };\n\n    transferProperties = function (target, source) {\n      zrUtil.each(TRANSFERABLE_PROPERTIES.concat(source.__wrappedMethods || []), function (propName) {\n        if (source.hasOwnProperty(propName)) {\n          target[propName] = source[propName];\n        }\n      });\n      target.__wrappedMethods = source.__wrappedMethods;\n      zrUtil.each(CLONE_PROPERTIES, function (propName) {\n        target[propName] = zrUtil.clone(source[propName]);\n      });\n      target._calculationInfo = zrUtil.extend({}, source._calculationInfo);\n    };\n\n    makeIdFromName = function (list, idx) {\n      var nameList = list._nameList;\n      var idList = list._idList;\n      var nameDimIdx = list._nameDimIdx;\n      var idDimIdx = list._idDimIdx;\n      var name = nameList[idx];\n      var id = idList[idx];\n\n      if (name == null && nameDimIdx != null) {\n        nameList[idx] = name = getIdNameFromStore(list, nameDimIdx, list._nameOrdinalMeta, idx);\n      }\n\n      if (id == null && idDimIdx != null) {\n        idList[idx] = id = getIdNameFromStore(list, idDimIdx, list._idOrdinalMeta, idx);\n      }\n\n      if (id == null && name != null) {\n        var nameRepeatCount = list._nameRepeatCount;\n        var nmCnt = nameRepeatCount[name] = (nameRepeatCount[name] || 0) + 1;\n        id = name;\n\n        if (nmCnt > 1) {\n          id += '__ec__' + nmCnt;\n        }\n\n        idList[idx] = id;\n      }\n    };\n  }();\n\n  return List;\n}();\n\nexport default List;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, each, isString, defaults, extend, isObject, clone } from 'zrender/lib/core/util';\nimport { normalizeToArray } from '../../util/model';\nimport { guessOrdinal, BE_ORDINAL } from './sourceHelper';\nimport { createSourceFromSeriesDataOption, isSourceInstance } from '../Source';\nimport { VISUAL_DIMENSIONS } from '../../util/types';\nimport DataDimensionInfo from '../DataDimensionInfo';\n\nfunction completeDimensions(sysDims, source, opt) {\n  if (!isSourceInstance(source)) {\n    source = createSourceFromSeriesDataOption(source);\n  }\n\n  opt = opt || {};\n  sysDims = (sysDims || []).slice();\n  var dimsDef = (opt.dimsDef || []).slice();\n  var dataDimNameMap = createHashMap();\n  var coordDimNameMap = createHashMap();\n  var result = [];\n  var dimCount = getDimCount(source, sysDims, dimsDef, opt.dimCount);\n\n  for (var i = 0; i < dimCount; i++) {\n    var dimDefItemRaw = dimsDef[i];\n    var dimDefItem = dimsDef[i] = extend({}, isObject(dimDefItemRaw) ? dimDefItemRaw : {\n      name: dimDefItemRaw\n    });\n    var userDimName = dimDefItem.name;\n    var resultItem = result[i] = new DataDimensionInfo();\n\n    if (userDimName != null && dataDimNameMap.get(userDimName) == null) {\n      resultItem.name = resultItem.displayName = userDimName;\n      dataDimNameMap.set(userDimName, i);\n    }\n\n    dimDefItem.type != null && (resultItem.type = dimDefItem.type);\n    dimDefItem.displayName != null && (resultItem.displayName = dimDefItem.displayName);\n  }\n\n  var encodeDef = opt.encodeDef;\n\n  if (!encodeDef && opt.encodeDefaulter) {\n    encodeDef = opt.encodeDefaulter(source, dimCount);\n  }\n\n  var encodeDefMap = createHashMap(encodeDef);\n  encodeDefMap.each(function (dataDimsRaw, coordDim) {\n    var dataDims = normalizeToArray(dataDimsRaw).slice();\n\n    if (dataDims.length === 1 && !isString(dataDims[0]) && dataDims[0] < 0) {\n      encodeDefMap.set(coordDim, false);\n      return;\n    }\n\n    var validDataDims = encodeDefMap.set(coordDim, []);\n    each(dataDims, function (resultDimIdxOrName, idx) {\n      var resultDimIdx = isString(resultDimIdxOrName) ? dataDimNameMap.get(resultDimIdxOrName) : resultDimIdxOrName;\n\n      if (resultDimIdx != null && resultDimIdx < dimCount) {\n        validDataDims[idx] = resultDimIdx;\n        applyDim(result[resultDimIdx], coordDim, idx);\n      }\n    });\n  });\n  var availDimIdx = 0;\n  each(sysDims, function (sysDimItemRaw) {\n    var coordDim;\n    var sysDimItemDimsDef;\n    var sysDimItemOtherDims;\n    var sysDimItem;\n\n    if (isString(sysDimItemRaw)) {\n      coordDim = sysDimItemRaw;\n      sysDimItem = {};\n    } else {\n      sysDimItem = sysDimItemRaw;\n      coordDim = sysDimItem.name;\n      var ordinalMeta = sysDimItem.ordinalMeta;\n      sysDimItem.ordinalMeta = null;\n      sysDimItem = clone(sysDimItem);\n      sysDimItem.ordinalMeta = ordinalMeta;\n      sysDimItemDimsDef = sysDimItem.dimsDef;\n      sysDimItemOtherDims = sysDimItem.otherDims;\n      sysDimItem.name = sysDimItem.coordDim = sysDimItem.coordDimIndex = sysDimItem.dimsDef = sysDimItem.otherDims = null;\n    }\n\n    var dataDims = encodeDefMap.get(coordDim);\n\n    if (dataDims === false) {\n      return;\n    }\n\n    dataDims = normalizeToArray(dataDims);\n\n    if (!dataDims.length) {\n      for (var i = 0; i < (sysDimItemDimsDef && sysDimItemDimsDef.length || 1); i++) {\n        while (availDimIdx < result.length && result[availDimIdx].coordDim != null) {\n          availDimIdx++;\n        }\n\n        availDimIdx < result.length && dataDims.push(availDimIdx++);\n      }\n    }\n\n    each(dataDims, function (resultDimIdx, coordDimIndex) {\n      var resultItem = result[resultDimIdx];\n      applyDim(defaults(resultItem, sysDimItem), coordDim, coordDimIndex);\n\n      if (resultItem.name == null && sysDimItemDimsDef) {\n        var sysDimItemDimsDefItem = sysDimItemDimsDef[coordDimIndex];\n        !isObject(sysDimItemDimsDefItem) && (sysDimItemDimsDefItem = {\n          name: sysDimItemDimsDefItem\n        });\n        resultItem.name = resultItem.displayName = sysDimItemDimsDefItem.name;\n        resultItem.defaultTooltip = sysDimItemDimsDefItem.defaultTooltip;\n      }\n\n      sysDimItemOtherDims && defaults(resultItem.otherDims, sysDimItemOtherDims);\n    });\n  });\n\n  function applyDim(resultItem, coordDim, coordDimIndex) {\n    if (VISUAL_DIMENSIONS.get(coordDim) != null) {\n      resultItem.otherDims[coordDim] = coordDimIndex;\n    } else {\n      resultItem.coordDim = coordDim;\n      resultItem.coordDimIndex = coordDimIndex;\n      coordDimNameMap.set(coordDim, true);\n    }\n  }\n\n  var generateCoord = opt.generateCoord;\n  var generateCoordCount = opt.generateCoordCount;\n  var fromZero = generateCoordCount != null;\n  generateCoordCount = generateCoord ? generateCoordCount || 1 : 0;\n  var extra = generateCoord || 'value';\n\n  for (var resultDimIdx = 0; resultDimIdx < dimCount; resultDimIdx++) {\n    var resultItem = result[resultDimIdx] = result[resultDimIdx] || new DataDimensionInfo();\n    var coordDim = resultItem.coordDim;\n\n    if (coordDim == null) {\n      resultItem.coordDim = genName(extra, coordDimNameMap, fromZero);\n      resultItem.coordDimIndex = 0;\n\n      if (!generateCoord || generateCoordCount <= 0) {\n        resultItem.isExtraCoord = true;\n      }\n\n      generateCoordCount--;\n    }\n\n    resultItem.name == null && (resultItem.name = genName(resultItem.coordDim, dataDimNameMap, false));\n\n    if (resultItem.type == null && (guessOrdinal(source, resultDimIdx) === BE_ORDINAL.Must || resultItem.isExtraCoord && (resultItem.otherDims.itemName != null || resultItem.otherDims.seriesName != null))) {\n      resultItem.type = 'ordinal';\n    }\n  }\n\n  return result;\n}\n\nfunction getDimCount(source, sysDims, dimsDef, optDimCount) {\n  var dimCount = Math.max(source.dimensionsDetectedCount || 1, sysDims.length, dimsDef.length, optDimCount || 0);\n  each(sysDims, function (sysDimItem) {\n    var sysDimItemDimsDef;\n\n    if (isObject(sysDimItem) && (sysDimItemDimsDef = sysDimItem.dimsDef)) {\n      dimCount = Math.max(dimCount, sysDimItemDimsDef.length);\n    }\n  });\n  return dimCount;\n}\n\nfunction genName(name, map, fromZero) {\n  if (fromZero || map.get(name) != null) {\n    var i = 0;\n\n    while (map.get(name + i) != null) {\n      i++;\n    }\n\n    name += i;\n  }\n\n  map.set(name, true);\n  return name;\n}\n\nexport default completeDimensions;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport completeDimensions from './completeDimensions';\nexport default function createDimensions(source, opt) {\n  opt = opt || {};\n  return completeDimensions(opt.coordDimensions || [], source, {\n    dimsDef: opt.dimensionsDefine || source.dimensionsDefine,\n    encodeDef: opt.encodeDefine || source.encodeDefine,\n    dimCount: opt.dimensionsCount,\n    encodeDefaulter: opt.encodeDefaulter,\n    generateCoord: opt.generateCoord,\n    generateCoordCount: opt.generateCoordCount\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, retrieve, each } from 'zrender/lib/core/util';\nimport { SINGLE_REFERRING } from '../util/model';\n\nvar CoordSysInfo = function () {\n  function CoordSysInfo(coordSysName) {\n    this.coordSysDims = [];\n    this.axisMap = createHashMap();\n    this.categoryAxisMap = createHashMap();\n    this.coordSysName = coordSysName;\n  }\n\n  return CoordSysInfo;\n}();\n\nexport function getCoordSysInfoBySeries(seriesModel) {\n  var coordSysName = seriesModel.get('coordinateSystem');\n  var result = new CoordSysInfo(coordSysName);\n  var fetch = fetchers[coordSysName];\n\n  if (fetch) {\n    fetch(seriesModel, result, result.axisMap, result.categoryAxisMap);\n    return result;\n  }\n}\nvar fetchers = {\n  cartesian2d: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var xAxisModel = seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0];\n    var yAxisModel = seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!xAxisModel) {\n        throw new Error('xAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('xAxisId'), 0) + '\" not found');\n      }\n\n      if (!yAxisModel) {\n        throw new Error('yAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('yAxisId'), 0) + '\" not found');\n      }\n    }\n\n    result.coordSysDims = ['x', 'y'];\n    axisMap.set('x', xAxisModel);\n    axisMap.set('y', yAxisModel);\n\n    if (isCategory(xAxisModel)) {\n      categoryAxisMap.set('x', xAxisModel);\n      result.firstCategoryDimIndex = 0;\n    }\n\n    if (isCategory(yAxisModel)) {\n      categoryAxisMap.set('y', yAxisModel);\n      result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\n    }\n  },\n  singleAxis: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var singleAxisModel = seriesModel.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!singleAxisModel) {\n        throw new Error('singleAxis should be specified.');\n      }\n    }\n\n    result.coordSysDims = ['single'];\n    axisMap.set('single', singleAxisModel);\n\n    if (isCategory(singleAxisModel)) {\n      categoryAxisMap.set('single', singleAxisModel);\n      result.firstCategoryDimIndex = 0;\n    }\n  },\n  polar: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var polarModel = seriesModel.getReferringComponents('polar', SINGLE_REFERRING).models[0];\n    var radiusAxisModel = polarModel.findAxisModel('radiusAxis');\n    var angleAxisModel = polarModel.findAxisModel('angleAxis');\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!angleAxisModel) {\n        throw new Error('angleAxis option not found');\n      }\n\n      if (!radiusAxisModel) {\n        throw new Error('radiusAxis option not found');\n      }\n    }\n\n    result.coordSysDims = ['radius', 'angle'];\n    axisMap.set('radius', radiusAxisModel);\n    axisMap.set('angle', angleAxisModel);\n\n    if (isCategory(radiusAxisModel)) {\n      categoryAxisMap.set('radius', radiusAxisModel);\n      result.firstCategoryDimIndex = 0;\n    }\n\n    if (isCategory(angleAxisModel)) {\n      categoryAxisMap.set('angle', angleAxisModel);\n      result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\n    }\n  },\n  geo: function (seriesModel, result, axisMap, categoryAxisMap) {\n    result.coordSysDims = ['lng', 'lat'];\n  },\n  parallel: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var ecModel = seriesModel.ecModel;\n    var parallelModel = ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\n    var coordSysDims = result.coordSysDims = parallelModel.dimensions.slice();\n    each(parallelModel.parallelAxisIndex, function (axisIndex, index) {\n      var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\n      var axisDim = coordSysDims[index];\n      axisMap.set(axisDim, axisModel);\n\n      if (isCategory(axisModel)) {\n        categoryAxisMap.set(axisDim, axisModel);\n\n        if (result.firstCategoryDimIndex == null) {\n          result.firstCategoryDimIndex = index;\n        }\n      }\n    });\n  }\n};\n\nfunction isCategory(axisModel) {\n  return axisModel.get('type') === 'category';\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, isString } from 'zrender/lib/core/util';\nexport function enableDataStack(seriesModel, dimensionInfoList, opt) {\n  opt = opt || {};\n  var byIndex = opt.byIndex;\n  var stackedCoordDimension = opt.stackedCoordDimension;\n  var mayStack = !!(seriesModel && seriesModel.get('stack'));\n  var stackedByDimInfo;\n  var stackedDimInfo;\n  var stackResultDimension;\n  var stackedOverDimension;\n  each(dimensionInfoList, function (dimensionInfo, index) {\n    if (isString(dimensionInfo)) {\n      dimensionInfoList[index] = dimensionInfo = {\n        name: dimensionInfo\n      };\n    }\n\n    if (mayStack && !dimensionInfo.isExtraCoord) {\n      if (!byIndex && !stackedByDimInfo && dimensionInfo.ordinalMeta) {\n        stackedByDimInfo = dimensionInfo;\n      }\n\n      if (!stackedDimInfo && dimensionInfo.type !== 'ordinal' && dimensionInfo.type !== 'time' && (!stackedCoordDimension || stackedCoordDimension === dimensionInfo.coordDim)) {\n        stackedDimInfo = dimensionInfo;\n      }\n    }\n  });\n\n  if (stackedDimInfo && !byIndex && !stackedByDimInfo) {\n    byIndex = true;\n  }\n\n  if (stackedDimInfo) {\n    stackResultDimension = '__\\0ecstackresult';\n    stackedOverDimension = '__\\0ecstackedover';\n\n    if (stackedByDimInfo) {\n      stackedByDimInfo.createInvertedIndices = true;\n    }\n\n    var stackedDimCoordDim_1 = stackedDimInfo.coordDim;\n    var stackedDimType = stackedDimInfo.type;\n    var stackedDimCoordIndex_1 = 0;\n    each(dimensionInfoList, function (dimensionInfo) {\n      if (dimensionInfo.coordDim === stackedDimCoordDim_1) {\n        stackedDimCoordIndex_1++;\n      }\n    });\n    dimensionInfoList.push({\n      name: stackResultDimension,\n      coordDim: stackedDimCoordDim_1,\n      coordDimIndex: stackedDimCoordIndex_1,\n      type: stackedDimType,\n      isExtraCoord: true,\n      isCalculationCoord: true\n    });\n    stackedDimCoordIndex_1++;\n    dimensionInfoList.push({\n      name: stackedOverDimension,\n      coordDim: stackedOverDimension,\n      coordDimIndex: stackedDimCoordIndex_1,\n      type: stackedDimType,\n      isExtraCoord: true,\n      isCalculationCoord: true\n    });\n  }\n\n  return {\n    stackedDimension: stackedDimInfo && stackedDimInfo.name,\n    stackedByDimension: stackedByDimInfo && stackedByDimInfo.name,\n    isStackedByIndex: byIndex,\n    stackedOverDimension: stackedOverDimension,\n    stackResultDimension: stackResultDimension\n  };\n}\nexport function isDimensionStacked(data, stackedDim) {\n  return !!stackedDim && stackedDim === data.getCalculationInfo('stackedDimension');\n}\nexport function getStackedDimension(data, targetDim) {\n  return isDimensionStacked(data, targetDim) ? data.getCalculationInfo('stackResultDimension') : targetDim;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport List from '../../data/List';\nimport createDimensions from '../../data/helper/createDimensions';\nimport { getDimensionTypeByAxis } from '../../data/helper/dimensionHelper';\nimport { getDataItemValue } from '../../util/model';\nimport CoordinateSystem from '../../core/CoordinateSystem';\nimport { getCoordSysInfoBySeries } from '../../model/referHelper';\nimport { createSourceFromSeriesDataOption, isSourceInstance } from '../../data/Source';\nimport { enableDataStack } from '../../data/helper/dataStackHelper';\nimport { makeSeriesEncodeForAxisCoordSys } from '../../data/helper/sourceHelper';\nimport { SOURCE_FORMAT_ORIGINAL } from '../../util/types';\n\nfunction createListFromArray(source, seriesModel, opt) {\n  opt = opt || {};\n\n  if (!isSourceInstance(source)) {\n    source = createSourceFromSeriesDataOption(source);\n  }\n\n  var coordSysName = seriesModel.get('coordinateSystem');\n  var registeredCoordSys = CoordinateSystem.get(coordSysName);\n  var coordSysInfo = getCoordSysInfoBySeries(seriesModel);\n  var coordSysDimDefs;\n\n  if (coordSysInfo && coordSysInfo.coordSysDims) {\n    coordSysDimDefs = zrUtil.map(coordSysInfo.coordSysDims, function (dim) {\n      var dimInfo = {\n        name: dim\n      };\n      var axisModel = coordSysInfo.axisMap.get(dim);\n\n      if (axisModel) {\n        var axisType = axisModel.get('type');\n        dimInfo.type = getDimensionTypeByAxis(axisType);\n      }\n\n      return dimInfo;\n    });\n  }\n\n  if (!coordSysDimDefs) {\n    coordSysDimDefs = registeredCoordSys && (registeredCoordSys.getDimensionsInfo ? registeredCoordSys.getDimensionsInfo() : registeredCoordSys.dimensions.slice()) || ['x', 'y'];\n  }\n\n  var useEncodeDefaulter = opt.useEncodeDefaulter;\n  var dimInfoList = createDimensions(source, {\n    coordDimensions: coordSysDimDefs,\n    generateCoord: opt.generateCoord,\n    encodeDefaulter: zrUtil.isFunction(useEncodeDefaulter) ? useEncodeDefaulter : useEncodeDefaulter ? zrUtil.curry(makeSeriesEncodeForAxisCoordSys, coordSysDimDefs, seriesModel) : null\n  });\n  var firstCategoryDimIndex;\n  var hasNameEncode;\n  coordSysInfo && zrUtil.each(dimInfoList, function (dimInfo, dimIndex) {\n    var coordDim = dimInfo.coordDim;\n    var categoryAxisModel = coordSysInfo.categoryAxisMap.get(coordDim);\n\n    if (categoryAxisModel) {\n      if (firstCategoryDimIndex == null) {\n        firstCategoryDimIndex = dimIndex;\n      }\n\n      dimInfo.ordinalMeta = categoryAxisModel.getOrdinalMeta();\n\n      if (opt.createInvertedIndices) {\n        dimInfo.createInvertedIndices = true;\n      }\n    }\n\n    if (dimInfo.otherDims.itemName != null) {\n      hasNameEncode = true;\n    }\n  });\n\n  if (!hasNameEncode && firstCategoryDimIndex != null) {\n    dimInfoList[firstCategoryDimIndex].otherDims.itemName = 0;\n  }\n\n  var stackCalculationInfo = enableDataStack(seriesModel, dimInfoList);\n  var list = new List(dimInfoList, seriesModel);\n  list.setCalculationInfo(stackCalculationInfo);\n  var dimValueGetter = firstCategoryDimIndex != null && isNeedCompleteOrdinalData(source) ? function (itemOpt, dimName, dataIndex, dimIndex) {\n    return dimIndex === firstCategoryDimIndex ? dataIndex : this.defaultDimValueGetter(itemOpt, dimName, dataIndex, dimIndex);\n  } : null;\n  list.hasItemOption = false;\n  list.initData(source, null, dimValueGetter);\n  return list;\n}\n\nfunction isNeedCompleteOrdinalData(source) {\n  if (source.sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n    var sampleItem = firstDataNotNull(source.data || []);\n    return sampleItem != null && !zrUtil.isArray(getDataItemValue(sampleItem));\n  }\n}\n\nfunction firstDataNotNull(data) {\n  var i = 0;\n\n  while (i < data.length && data[i] == null) {\n    i++;\n  }\n\n  return data[i];\n}\n\nexport default createListFromArray;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as clazzUtil from '../util/clazz';\n\nvar Scale = function () {\n  function Scale(setting) {\n    this._setting = setting || {};\n    this._extent = [Infinity, -Infinity];\n  }\n\n  Scale.prototype.getSetting = function (name) {\n    return this._setting[name];\n  };\n\n  Scale.prototype.unionExtent = function (other) {\n    var extent = this._extent;\n    other[0] < extent[0] && (extent[0] = other[0]);\n    other[1] > extent[1] && (extent[1] = other[1]);\n  };\n\n  Scale.prototype.unionExtentFromData = function (data, dim) {\n    this.unionExtent(data.getApproximateExtent(dim));\n  };\n\n  Scale.prototype.getExtent = function () {\n    return this._extent.slice();\n  };\n\n  Scale.prototype.setExtent = function (start, end) {\n    var thisExtent = this._extent;\n\n    if (!isNaN(start)) {\n      thisExtent[0] = start;\n    }\n\n    if (!isNaN(end)) {\n      thisExtent[1] = end;\n    }\n  };\n\n  Scale.prototype.isInExtentRange = function (value) {\n    return this._extent[0] <= value && this._extent[1] >= value;\n  };\n\n  Scale.prototype.isBlank = function () {\n    return this._isBlank;\n  };\n\n  Scale.prototype.setBlank = function (isBlank) {\n    this._isBlank = isBlank;\n  };\n\n  return Scale;\n}();\n\nclazzUtil.enableClassManagement(Scale);\nexport default Scale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, isObject, map } from 'zrender/lib/core/util';\n\nvar OrdinalMeta = function () {\n  function OrdinalMeta(opt) {\n    this.categories = opt.categories || [];\n    this._needCollect = opt.needCollect;\n    this._deduplication = opt.deduplication;\n  }\n\n  OrdinalMeta.createByAxisModel = function (axisModel) {\n    var option = axisModel.option;\n    var data = option.data;\n    var categories = data && map(data, getName);\n    return new OrdinalMeta({\n      categories: categories,\n      needCollect: !categories,\n      deduplication: option.dedplication !== false\n    });\n  };\n\n  ;\n\n  OrdinalMeta.prototype.getOrdinal = function (category) {\n    return this._getOrCreateMap().get(category);\n  };\n\n  OrdinalMeta.prototype.parseAndCollect = function (category) {\n    var index;\n    var needCollect = this._needCollect;\n\n    if (typeof category !== 'string' && !needCollect) {\n      return category;\n    }\n\n    if (needCollect && !this._deduplication) {\n      index = this.categories.length;\n      this.categories[index] = category;\n      return index;\n    }\n\n    var map = this._getOrCreateMap();\n\n    index = map.get(category);\n\n    if (index == null) {\n      if (needCollect) {\n        index = this.categories.length;\n        this.categories[index] = category;\n        map.set(category, index);\n      } else {\n        index = NaN;\n      }\n    }\n\n    return index;\n  };\n\n  OrdinalMeta.prototype._getOrCreateMap = function () {\n    return this._map || (this._map = createHashMap(this.categories));\n  };\n\n  return OrdinalMeta;\n}();\n\nfunction getName(obj) {\n  if (isObject(obj) && obj.value != null) {\n    return obj.value;\n  } else {\n    return obj + '';\n  }\n}\n\nexport default OrdinalMeta;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as numberUtil from '../util/number';\nvar roundNumber = numberUtil.round;\nexport function intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval) {\n  var result = {};\n  var span = extent[1] - extent[0];\n  var interval = result.interval = numberUtil.nice(span / splitNumber, true);\n\n  if (minInterval != null && interval < minInterval) {\n    interval = result.interval = minInterval;\n  }\n\n  if (maxInterval != null && interval > maxInterval) {\n    interval = result.interval = maxInterval;\n  }\n\n  var precision = result.intervalPrecision = getIntervalPrecision(interval);\n  var niceTickExtent = result.niceTickExtent = [roundNumber(Math.ceil(extent[0] / interval) * interval, precision), roundNumber(Math.floor(extent[1] / interval) * interval, precision)];\n  fixExtent(niceTickExtent, extent);\n  return result;\n}\nexport function getIntervalPrecision(interval) {\n  return numberUtil.getPrecisionSafe(interval) + 2;\n}\n\nfunction clamp(niceTickExtent, idx, extent) {\n  niceTickExtent[idx] = Math.max(Math.min(niceTickExtent[idx], extent[1]), extent[0]);\n}\n\nexport function fixExtent(niceTickExtent, extent) {\n  !isFinite(niceTickExtent[0]) && (niceTickExtent[0] = extent[0]);\n  !isFinite(niceTickExtent[1]) && (niceTickExtent[1] = extent[1]);\n  clamp(niceTickExtent, 0, extent);\n  clamp(niceTickExtent, 1, extent);\n\n  if (niceTickExtent[0] > niceTickExtent[1]) {\n    niceTickExtent[0] = niceTickExtent[1];\n  }\n}\nexport function contain(val, extent) {\n  return val >= extent[0] && val <= extent[1];\n}\nexport function normalize(val, extent) {\n  if (extent[1] === extent[0]) {\n    return 0.5;\n  }\n\n  return (val - extent[0]) / (extent[1] - extent[0]);\n}\nexport function scale(val, extent) {\n  return val * (extent[1] - extent[0]) + extent[0];\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Scale from './Scale';\nimport OrdinalMeta from '../data/OrdinalMeta';\nimport * as scaleHelper from './helper';\nimport { isArray, map, isObject } from 'zrender/lib/core/util';\n\nvar OrdinalScale = function (_super) {\n  __extends(OrdinalScale, _super);\n\n  function OrdinalScale(setting) {\n    var _this = _super.call(this, setting) || this;\n\n    _this.type = 'ordinal';\n\n    var ordinalMeta = _this.getSetting('ordinalMeta');\n\n    if (!ordinalMeta) {\n      ordinalMeta = new OrdinalMeta({});\n    }\n\n    if (isArray(ordinalMeta)) {\n      ordinalMeta = new OrdinalMeta({\n        categories: map(ordinalMeta, function (item) {\n          return isObject(item) ? item.value : item;\n        })\n      });\n    }\n\n    _this._ordinalMeta = ordinalMeta;\n    _this._extent = _this.getSetting('extent') || [0, ordinalMeta.categories.length - 1];\n    return _this;\n  }\n\n  OrdinalScale.prototype.parse = function (val) {\n    return typeof val === 'string' ? this._ordinalMeta.getOrdinal(val) : Math.round(val);\n  };\n\n  OrdinalScale.prototype.contain = function (rank) {\n    rank = this.parse(rank);\n    return scaleHelper.contain(rank, this._extent) && this._ordinalMeta.categories[rank] != null;\n  };\n\n  OrdinalScale.prototype.normalize = function (val) {\n    val = this._getTickNumber(this.parse(val));\n    return scaleHelper.normalize(val, this._extent);\n  };\n\n  OrdinalScale.prototype.scale = function (val) {\n    val = Math.round(scaleHelper.scale(val, this._extent));\n    return this.getRawOrdinalNumber(val);\n  };\n\n  OrdinalScale.prototype.getTicks = function () {\n    var ticks = [];\n    var extent = this._extent;\n    var rank = extent[0];\n\n    while (rank <= extent[1]) {\n      ticks.push({\n        value: rank\n      });\n      rank++;\n    }\n\n    return ticks;\n  };\n\n  OrdinalScale.prototype.getMinorTicks = function (splitNumber) {\n    return;\n  };\n\n  OrdinalScale.prototype.setSortInfo = function (info) {\n    if (info == null) {\n      this._ordinalNumbersByTick = this._ticksByOrdinalNumber = null;\n      return;\n    }\n\n    var infoOrdinalNumbers = info.ordinalNumbers;\n    var ordinalsByTick = this._ordinalNumbersByTick = [];\n    var ticksByOrdinal = this._ticksByOrdinalNumber = [];\n    var tickNum = 0;\n    var allCategoryLen = this._ordinalMeta.categories.length;\n\n    for (var len = Math.min(allCategoryLen, infoOrdinalNumbers.length); tickNum < len; ++tickNum) {\n      var ordinalNumber = infoOrdinalNumbers[tickNum];\n      ordinalsByTick[tickNum] = ordinalNumber;\n      ticksByOrdinal[ordinalNumber] = tickNum;\n    }\n\n    var unusedOrdinal = 0;\n\n    for (; tickNum < allCategoryLen; ++tickNum) {\n      while (ticksByOrdinal[unusedOrdinal] != null) {\n        unusedOrdinal++;\n      }\n\n      ;\n      ordinalsByTick.push(unusedOrdinal);\n      ticksByOrdinal[unusedOrdinal] = tickNum;\n    }\n  };\n\n  OrdinalScale.prototype._getTickNumber = function (ordinal) {\n    var ticksByOrdinalNumber = this._ticksByOrdinalNumber;\n    return ticksByOrdinalNumber && ordinal >= 0 && ordinal < ticksByOrdinalNumber.length ? ticksByOrdinalNumber[ordinal] : ordinal;\n  };\n\n  OrdinalScale.prototype.getRawOrdinalNumber = function (tickNumber) {\n    var ordinalNumbersByTick = this._ordinalNumbersByTick;\n    return ordinalNumbersByTick && tickNumber >= 0 && tickNumber < ordinalNumbersByTick.length ? ordinalNumbersByTick[tickNumber] : tickNumber;\n  };\n\n  OrdinalScale.prototype.getLabel = function (tick) {\n    if (!this.isBlank()) {\n      var ordinalNumber = this.getRawOrdinalNumber(tick.value);\n      var cateogry = this._ordinalMeta.categories[ordinalNumber];\n      return cateogry == null ? '' : cateogry + '';\n    }\n  };\n\n  OrdinalScale.prototype.count = function () {\n    return this._extent[1] - this._extent[0] + 1;\n  };\n\n  OrdinalScale.prototype.unionExtentFromData = function (data, dim) {\n    this.unionExtent(data.getApproximateExtent(dim));\n  };\n\n  OrdinalScale.prototype.isInExtentRange = function (value) {\n    value = this._getTickNumber(value);\n    return this._extent[0] <= value && this._extent[1] >= value;\n  };\n\n  OrdinalScale.prototype.getOrdinalMeta = function () {\n    return this._ordinalMeta;\n  };\n\n  OrdinalScale.prototype.niceTicks = function () {};\n\n  OrdinalScale.prototype.niceExtent = function () {};\n\n  OrdinalScale.type = 'ordinal';\n  return OrdinalScale;\n}(Scale);\n\nScale.registerClass(OrdinalScale);\nexport default OrdinalScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as numberUtil from '../util/number';\nimport * as formatUtil from '../util/format';\nimport Scale from './Scale';\nimport * as helper from './helper';\nvar roundNumber = numberUtil.round;\n\nvar IntervalScale = function (_super) {\n  __extends(IntervalScale, _super);\n\n  function IntervalScale() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'interval';\n    _this._interval = 0;\n    _this._intervalPrecision = 2;\n    return _this;\n  }\n\n  IntervalScale.prototype.parse = function (val) {\n    return val;\n  };\n\n  IntervalScale.prototype.contain = function (val) {\n    return helper.contain(val, this._extent);\n  };\n\n  IntervalScale.prototype.normalize = function (val) {\n    return helper.normalize(val, this._extent);\n  };\n\n  IntervalScale.prototype.scale = function (val) {\n    return helper.scale(val, this._extent);\n  };\n\n  IntervalScale.prototype.setExtent = function (start, end) {\n    var thisExtent = this._extent;\n\n    if (!isNaN(start)) {\n      thisExtent[0] = parseFloat(start);\n    }\n\n    if (!isNaN(end)) {\n      thisExtent[1] = parseFloat(end);\n    }\n  };\n\n  IntervalScale.prototype.unionExtent = function (other) {\n    var extent = this._extent;\n    other[0] < extent[0] && (extent[0] = other[0]);\n    other[1] > extent[1] && (extent[1] = other[1]);\n    this.setExtent(extent[0], extent[1]);\n  };\n\n  IntervalScale.prototype.getInterval = function () {\n    return this._interval;\n  };\n\n  IntervalScale.prototype.setInterval = function (interval) {\n    this._interval = interval;\n    this._niceExtent = this._extent.slice();\n    this._intervalPrecision = helper.getIntervalPrecision(interval);\n  };\n\n  IntervalScale.prototype.getTicks = function (expandToNicedExtent) {\n    var interval = this._interval;\n    var extent = this._extent;\n    var niceTickExtent = this._niceExtent;\n    var intervalPrecision = this._intervalPrecision;\n    var ticks = [];\n\n    if (!interval) {\n      return ticks;\n    }\n\n    var safeLimit = 10000;\n\n    if (extent[0] < niceTickExtent[0]) {\n      if (expandToNicedExtent) {\n        ticks.push({\n          value: roundNumber(niceTickExtent[0] - interval, intervalPrecision)\n        });\n      } else {\n        ticks.push({\n          value: extent[0]\n        });\n      }\n    }\n\n    var tick = niceTickExtent[0];\n\n    while (tick <= niceTickExtent[1]) {\n      ticks.push({\n        value: tick\n      });\n      tick = roundNumber(tick + interval, intervalPrecision);\n\n      if (tick === ticks[ticks.length - 1].value) {\n        break;\n      }\n\n      if (ticks.length > safeLimit) {\n        return [];\n      }\n    }\n\n    var lastNiceTick = ticks.length ? ticks[ticks.length - 1].value : niceTickExtent[1];\n\n    if (extent[1] > lastNiceTick) {\n      if (expandToNicedExtent) {\n        ticks.push({\n          value: roundNumber(lastNiceTick + interval, intervalPrecision)\n        });\n      } else {\n        ticks.push({\n          value: extent[1]\n        });\n      }\n    }\n\n    return ticks;\n  };\n\n  IntervalScale.prototype.getMinorTicks = function (splitNumber) {\n    var ticks = this.getTicks(true);\n    var minorTicks = [];\n    var extent = this.getExtent();\n\n    for (var i = 1; i < ticks.length; i++) {\n      var nextTick = ticks[i];\n      var prevTick = ticks[i - 1];\n      var count = 0;\n      var minorTicksGroup = [];\n      var interval = nextTick.value - prevTick.value;\n      var minorInterval = interval / splitNumber;\n\n      while (count < splitNumber - 1) {\n        var minorTick = roundNumber(prevTick.value + (count + 1) * minorInterval);\n\n        if (minorTick > extent[0] && minorTick < extent[1]) {\n          minorTicksGroup.push(minorTick);\n        }\n\n        count++;\n      }\n\n      minorTicks.push(minorTicksGroup);\n    }\n\n    return minorTicks;\n  };\n\n  IntervalScale.prototype.getLabel = function (data, opt) {\n    if (data == null) {\n      return '';\n    }\n\n    var precision = opt && opt.precision;\n\n    if (precision == null) {\n      precision = numberUtil.getPrecisionSafe(data.value) || 0;\n    } else if (precision === 'auto') {\n      precision = this._intervalPrecision;\n    }\n\n    var dataNum = roundNumber(data.value, precision, true);\n    return formatUtil.addCommas(dataNum);\n  };\n\n  IntervalScale.prototype.niceTicks = function (splitNumber, minInterval, maxInterval) {\n    splitNumber = splitNumber || 5;\n    var extent = this._extent;\n    var span = extent[1] - extent[0];\n\n    if (!isFinite(span)) {\n      return;\n    }\n\n    if (span < 0) {\n      span = -span;\n      extent.reverse();\n    }\n\n    var result = helper.intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval);\n    this._intervalPrecision = result.intervalPrecision;\n    this._interval = result.interval;\n    this._niceExtent = result.niceTickExtent;\n  };\n\n  IntervalScale.prototype.niceExtent = function (opt) {\n    var extent = this._extent;\n\n    if (extent[0] === extent[1]) {\n      if (extent[0] !== 0) {\n        var expandSize = extent[0];\n\n        if (!opt.fixMax) {\n          extent[1] += expandSize / 2;\n          extent[0] -= expandSize / 2;\n        } else {\n          extent[0] -= expandSize / 2;\n        }\n      } else {\n        extent[1] = 1;\n      }\n    }\n\n    var span = extent[1] - extent[0];\n\n    if (!isFinite(span)) {\n      extent[0] = 0;\n      extent[1] = 1;\n    }\n\n    this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\n    var interval = this._interval;\n\n    if (!opt.fixMin) {\n      extent[0] = roundNumber(Math.floor(extent[0] / interval) * interval);\n    }\n\n    if (!opt.fixMax) {\n      extent[1] = roundNumber(Math.ceil(extent[1] / interval) * interval);\n    }\n  };\n\n  IntervalScale.type = 'interval';\n  return IntervalScale;\n}(Scale);\n\nScale.registerClass(IntervalScale);\nexport default IntervalScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parsePercent } from '../util/number';\nimport { isDimensionStacked } from '../data/helper/dataStackHelper';\nimport createRenderPlanner from '../chart/helper/createRenderPlanner';\nvar STACK_PREFIX = '__ec_stack_';\nvar LARGE_BAR_MIN_WIDTH = 0.5;\nvar LargeArr = typeof Float32Array !== 'undefined' ? Float32Array : Array;\n\nfunction getSeriesStackId(seriesModel) {\n  return seriesModel.get('stack') || STACK_PREFIX + seriesModel.seriesIndex;\n}\n\nfunction getAxisKey(axis) {\n  return axis.dim + axis.index;\n}\n\nexport function getLayoutOnAxis(opt) {\n  var params = [];\n  var baseAxis = opt.axis;\n  var axisKey = 'axis0';\n\n  if (baseAxis.type !== 'category') {\n    return;\n  }\n\n  var bandWidth = baseAxis.getBandWidth();\n\n  for (var i = 0; i < opt.count || 0; i++) {\n    params.push(zrUtil.defaults({\n      bandWidth: bandWidth,\n      axisKey: axisKey,\n      stackId: STACK_PREFIX + i\n    }, opt));\n  }\n\n  var widthAndOffsets = doCalBarWidthAndOffset(params);\n  var result = [];\n\n  for (var i = 0; i < opt.count; i++) {\n    var item = widthAndOffsets[axisKey][STACK_PREFIX + i];\n    item.offsetCenter = item.offset + item.width / 2;\n    result.push(item);\n  }\n\n  return result;\n}\nexport function prepareLayoutBarSeries(seriesType, ecModel) {\n  var seriesModels = [];\n  ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n    if (isOnCartesian(seriesModel) && !isInLargeMode(seriesModel)) {\n      seriesModels.push(seriesModel);\n    }\n  });\n  return seriesModels;\n}\n\nfunction getValueAxesMinGaps(barSeries) {\n  var axisValues = {};\n  zrUtil.each(barSeries, function (seriesModel) {\n    var cartesian = seriesModel.coordinateSystem;\n    var baseAxis = cartesian.getBaseAxis();\n\n    if (baseAxis.type !== 'time' && baseAxis.type !== 'value') {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var key = baseAxis.dim + '_' + baseAxis.index;\n    var dim = data.mapDimension(baseAxis.dim);\n\n    for (var i = 0, cnt = data.count(); i < cnt; ++i) {\n      var value = data.get(dim, i);\n\n      if (!axisValues[key]) {\n        axisValues[key] = [value];\n      } else {\n        axisValues[key].push(value);\n      }\n    }\n  });\n  var axisMinGaps = {};\n\n  for (var key in axisValues) {\n    if (axisValues.hasOwnProperty(key)) {\n      var valuesInAxis = axisValues[key];\n\n      if (valuesInAxis) {\n        valuesInAxis.sort(function (a, b) {\n          return a - b;\n        });\n        var min = null;\n\n        for (var j = 1; j < valuesInAxis.length; ++j) {\n          var delta = valuesInAxis[j] - valuesInAxis[j - 1];\n\n          if (delta > 0) {\n            min = min === null ? delta : Math.min(min, delta);\n          }\n        }\n\n        axisMinGaps[key] = min;\n      }\n    }\n  }\n\n  return axisMinGaps;\n}\n\nexport function makeColumnLayout(barSeries) {\n  var axisMinGaps = getValueAxesMinGaps(barSeries);\n  var seriesInfoList = [];\n  zrUtil.each(barSeries, function (seriesModel) {\n    var cartesian = seriesModel.coordinateSystem;\n    var baseAxis = cartesian.getBaseAxis();\n    var axisExtent = baseAxis.getExtent();\n    var bandWidth;\n\n    if (baseAxis.type === 'category') {\n      bandWidth = baseAxis.getBandWidth();\n    } else if (baseAxis.type === 'value' || baseAxis.type === 'time') {\n      var key = baseAxis.dim + '_' + baseAxis.index;\n      var minGap = axisMinGaps[key];\n      var extentSpan = Math.abs(axisExtent[1] - axisExtent[0]);\n      var scale = baseAxis.scale.getExtent();\n      var scaleSpan = Math.abs(scale[1] - scale[0]);\n      bandWidth = minGap ? extentSpan / scaleSpan * minGap : extentSpan;\n    } else {\n      var data = seriesModel.getData();\n      bandWidth = Math.abs(axisExtent[1] - axisExtent[0]) / data.count();\n    }\n\n    var barWidth = parsePercent(seriesModel.get('barWidth'), bandWidth);\n    var barMaxWidth = parsePercent(seriesModel.get('barMaxWidth'), bandWidth);\n    var barMinWidth = parsePercent(seriesModel.get('barMinWidth') || 1, bandWidth);\n    var barGap = seriesModel.get('barGap');\n    var barCategoryGap = seriesModel.get('barCategoryGap');\n    seriesInfoList.push({\n      bandWidth: bandWidth,\n      barWidth: barWidth,\n      barMaxWidth: barMaxWidth,\n      barMinWidth: barMinWidth,\n      barGap: barGap,\n      barCategoryGap: barCategoryGap,\n      axisKey: getAxisKey(baseAxis),\n      stackId: getSeriesStackId(seriesModel)\n    });\n  });\n  return doCalBarWidthAndOffset(seriesInfoList);\n}\n\nfunction doCalBarWidthAndOffset(seriesInfoList) {\n  var columnsMap = {};\n  zrUtil.each(seriesInfoList, function (seriesInfo, idx) {\n    var axisKey = seriesInfo.axisKey;\n    var bandWidth = seriesInfo.bandWidth;\n    var columnsOnAxis = columnsMap[axisKey] || {\n      bandWidth: bandWidth,\n      remainedWidth: bandWidth,\n      autoWidthCount: 0,\n      categoryGap: null,\n      gap: '20%',\n      stacks: {}\n    };\n    var stacks = columnsOnAxis.stacks;\n    columnsMap[axisKey] = columnsOnAxis;\n    var stackId = seriesInfo.stackId;\n\n    if (!stacks[stackId]) {\n      columnsOnAxis.autoWidthCount++;\n    }\n\n    stacks[stackId] = stacks[stackId] || {\n      width: 0,\n      maxWidth: 0\n    };\n    var barWidth = seriesInfo.barWidth;\n\n    if (barWidth && !stacks[stackId].width) {\n      stacks[stackId].width = barWidth;\n      barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\n      columnsOnAxis.remainedWidth -= barWidth;\n    }\n\n    var barMaxWidth = seriesInfo.barMaxWidth;\n    barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\n    var barMinWidth = seriesInfo.barMinWidth;\n    barMinWidth && (stacks[stackId].minWidth = barMinWidth);\n    var barGap = seriesInfo.barGap;\n    barGap != null && (columnsOnAxis.gap = barGap);\n    var barCategoryGap = seriesInfo.barCategoryGap;\n    barCategoryGap != null && (columnsOnAxis.categoryGap = barCategoryGap);\n  });\n  var result = {};\n  zrUtil.each(columnsMap, function (columnsOnAxis, coordSysName) {\n    result[coordSysName] = {};\n    var stacks = columnsOnAxis.stacks;\n    var bandWidth = columnsOnAxis.bandWidth;\n    var categoryGapPercent = columnsOnAxis.categoryGap;\n\n    if (categoryGapPercent == null) {\n      var columnCount = zrUtil.keys(stacks).length;\n      categoryGapPercent = Math.max(35 - columnCount * 4, 15) + '%';\n    }\n\n    var categoryGap = parsePercent(categoryGapPercent, bandWidth);\n    var barGapPercent = parsePercent(columnsOnAxis.gap, 1);\n    var remainedWidth = columnsOnAxis.remainedWidth;\n    var autoWidthCount = columnsOnAxis.autoWidthCount;\n    var autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n    autoWidth = Math.max(autoWidth, 0);\n    zrUtil.each(stacks, function (column) {\n      var maxWidth = column.maxWidth;\n      var minWidth = column.minWidth;\n\n      if (!column.width) {\n        var finalWidth = autoWidth;\n\n        if (maxWidth && maxWidth < finalWidth) {\n          finalWidth = Math.min(maxWidth, remainedWidth);\n        }\n\n        if (minWidth && minWidth > finalWidth) {\n          finalWidth = minWidth;\n        }\n\n        if (finalWidth !== autoWidth) {\n          column.width = finalWidth;\n          remainedWidth -= finalWidth + barGapPercent * finalWidth;\n          autoWidthCount--;\n        }\n      } else {\n        var finalWidth = column.width;\n\n        if (maxWidth) {\n          finalWidth = Math.min(finalWidth, maxWidth);\n        }\n\n        if (minWidth) {\n          finalWidth = Math.max(finalWidth, minWidth);\n        }\n\n        column.width = finalWidth;\n        remainedWidth -= finalWidth + barGapPercent * finalWidth;\n        autoWidthCount--;\n      }\n    });\n    autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n    autoWidth = Math.max(autoWidth, 0);\n    var widthSum = 0;\n    var lastColumn;\n    zrUtil.each(stacks, function (column, idx) {\n      if (!column.width) {\n        column.width = autoWidth;\n      }\n\n      lastColumn = column;\n      widthSum += column.width * (1 + barGapPercent);\n    });\n\n    if (lastColumn) {\n      widthSum -= lastColumn.width * barGapPercent;\n    }\n\n    var offset = -widthSum / 2;\n    zrUtil.each(stacks, function (column, stackId) {\n      result[coordSysName][stackId] = result[coordSysName][stackId] || {\n        bandWidth: bandWidth,\n        offset: offset,\n        width: column.width\n      };\n      offset += column.width * (1 + barGapPercent);\n    });\n  });\n  return result;\n}\n\nfunction retrieveColumnLayout(barWidthAndOffset, axis, seriesModel) {\n  if (barWidthAndOffset && axis) {\n    var result = barWidthAndOffset[getAxisKey(axis)];\n\n    if (result != null && seriesModel != null) {\n      return result[getSeriesStackId(seriesModel)];\n    }\n\n    return result;\n  }\n}\n\nexport { retrieveColumnLayout };\nexport function layout(seriesType, ecModel) {\n  var seriesModels = prepareLayoutBarSeries(seriesType, ecModel);\n  var barWidthAndOffset = makeColumnLayout(seriesModels);\n  var lastStackCoords = {};\n  zrUtil.each(seriesModels, function (seriesModel) {\n    var data = seriesModel.getData();\n    var cartesian = seriesModel.coordinateSystem;\n    var baseAxis = cartesian.getBaseAxis();\n    var stackId = getSeriesStackId(seriesModel);\n    var columnLayoutInfo = barWidthAndOffset[getAxisKey(baseAxis)][stackId];\n    var columnOffset = columnLayoutInfo.offset;\n    var columnWidth = columnLayoutInfo.width;\n    var valueAxis = cartesian.getOtherAxis(baseAxis);\n    var barMinHeight = seriesModel.get('barMinHeight') || 0;\n    lastStackCoords[stackId] = lastStackCoords[stackId] || [];\n    data.setLayout({\n      bandWidth: columnLayoutInfo.bandWidth,\n      offset: columnOffset,\n      size: columnWidth\n    });\n    var valueDim = data.mapDimension(valueAxis.dim);\n    var baseDim = data.mapDimension(baseAxis.dim);\n    var stacked = isDimensionStacked(data, valueDim);\n    var isValueAxisH = valueAxis.isHorizontal();\n    var valueAxisStart = getValueAxisStart(baseAxis, valueAxis, stacked);\n\n    for (var idx = 0, len = data.count(); idx < len; idx++) {\n      var value = data.get(valueDim, idx);\n      var baseValue = data.get(baseDim, idx);\n      var sign = value >= 0 ? 'p' : 'n';\n      var baseCoord = valueAxisStart;\n\n      if (stacked) {\n        if (!lastStackCoords[stackId][baseValue]) {\n          lastStackCoords[stackId][baseValue] = {\n            p: valueAxisStart,\n            n: valueAxisStart\n          };\n        }\n\n        baseCoord = lastStackCoords[stackId][baseValue][sign];\n      }\n\n      var x = void 0;\n      var y = void 0;\n      var width = void 0;\n      var height = void 0;\n\n      if (isValueAxisH) {\n        var coord = cartesian.dataToPoint([value, baseValue]);\n        x = baseCoord;\n        y = coord[1] + columnOffset;\n        width = coord[0] - valueAxisStart;\n        height = columnWidth;\n\n        if (Math.abs(width) < barMinHeight) {\n          width = (width < 0 ? -1 : 1) * barMinHeight;\n        }\n\n        if (!isNaN(width)) {\n          stacked && (lastStackCoords[stackId][baseValue][sign] += width);\n        }\n      } else {\n        var coord = cartesian.dataToPoint([baseValue, value]);\n        x = coord[0] + columnOffset;\n        y = baseCoord;\n        width = columnWidth;\n        height = coord[1] - valueAxisStart;\n\n        if (Math.abs(height) < barMinHeight) {\n          height = (height <= 0 ? -1 : 1) * barMinHeight;\n        }\n\n        if (!isNaN(height)) {\n          stacked && (lastStackCoords[stackId][baseValue][sign] += height);\n        }\n      }\n\n      data.setItemLayout(idx, {\n        x: x,\n        y: y,\n        width: width,\n        height: height\n      });\n    }\n  });\n}\nexport var largeLayout = {\n  seriesType: 'bar',\n  plan: createRenderPlanner(),\n  reset: function (seriesModel) {\n    if (!isOnCartesian(seriesModel) || !isInLargeMode(seriesModel)) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var cartesian = seriesModel.coordinateSystem;\n    var coordLayout = cartesian.master.getRect();\n    var baseAxis = cartesian.getBaseAxis();\n    var valueAxis = cartesian.getOtherAxis(baseAxis);\n    var valueDim = data.mapDimension(valueAxis.dim);\n    var baseDim = data.mapDimension(baseAxis.dim);\n    var valueAxisHorizontal = valueAxis.isHorizontal();\n    var valueDimIdx = valueAxisHorizontal ? 0 : 1;\n    var barWidth = retrieveColumnLayout(makeColumnLayout([seriesModel]), baseAxis, seriesModel).width;\n\n    if (!(barWidth > LARGE_BAR_MIN_WIDTH)) {\n      barWidth = LARGE_BAR_MIN_WIDTH;\n    }\n\n    return {\n      progress: function (params, data) {\n        var count = params.count;\n        var largePoints = new LargeArr(count * 2);\n        var largeBackgroundPoints = new LargeArr(count * 2);\n        var largeDataIndices = new LargeArr(count);\n        var dataIndex;\n        var coord = [];\n        var valuePair = [];\n        var pointsOffset = 0;\n        var idxOffset = 0;\n\n        while ((dataIndex = params.next()) != null) {\n          valuePair[valueDimIdx] = data.get(valueDim, dataIndex);\n          valuePair[1 - valueDimIdx] = data.get(baseDim, dataIndex);\n          coord = cartesian.dataToPoint(valuePair, null, coord);\n          largeBackgroundPoints[pointsOffset] = valueAxisHorizontal ? coordLayout.x + coordLayout.width : coord[0];\n          largePoints[pointsOffset++] = coord[0];\n          largeBackgroundPoints[pointsOffset] = valueAxisHorizontal ? coord[1] : coordLayout.y + coordLayout.height;\n          largePoints[pointsOffset++] = coord[1];\n          largeDataIndices[idxOffset++] = dataIndex;\n        }\n\n        data.setLayout({\n          largePoints: largePoints,\n          largeDataIndices: largeDataIndices,\n          largeBackgroundPoints: largeBackgroundPoints,\n          barWidth: barWidth,\n          valueAxisStart: getValueAxisStart(baseAxis, valueAxis, false),\n          backgroundStart: valueAxisHorizontal ? coordLayout.x : coordLayout.y,\n          valueAxisHorizontal: valueAxisHorizontal\n        });\n      }\n    };\n  }\n};\n\nfunction isOnCartesian(seriesModel) {\n  return seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'cartesian2d';\n}\n\nfunction isInLargeMode(seriesModel) {\n  return seriesModel.pipelineContext && seriesModel.pipelineContext.large;\n}\n\nfunction getValueAxisStart(baseAxis, valueAxis, stacked) {\n  return valueAxis.toGlobalCoord(valueAxis.dataToCoord(valueAxis.type === 'log' ? 1 : 0));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as numberUtil from '../util/number';\nimport { ONE_SECOND, ONE_MINUTE, ONE_HOUR, ONE_DAY, ONE_YEAR, format, leveledFormat, getUnitValue, timeUnits, fullLeveledFormatter, getPrimaryTimeUnit, isPrimaryTimeUnit, getDefaultFormatPrecisionOfInterval, fullYearGetterName, monthSetterName, fullYearSetterName, dateSetterName, hoursGetterName, hoursSetterName, minutesSetterName, secondsSetterName, millisecondsSetterName, monthGetterName, dateGetterName, minutesGetterName, secondsGetterName, millisecondsGetterName } from '../util/time';\nimport * as scaleHelper from './helper';\nimport IntervalScale from './Interval';\nimport Scale from './Scale';\nimport { warn } from '../util/log';\nimport { filter, map } from 'zrender/lib/core/util';\n\nvar bisect = function (a, x, lo, hi) {\n  while (lo < hi) {\n    var mid = lo + hi >>> 1;\n\n    if (a[mid][1] < x) {\n      lo = mid + 1;\n    } else {\n      hi = mid;\n    }\n  }\n\n  return lo;\n};\n\nvar TimeScale = function (_super) {\n  __extends(TimeScale, _super);\n\n  function TimeScale(settings) {\n    var _this = _super.call(this, settings) || this;\n\n    _this.type = 'time';\n    return _this;\n  }\n\n  TimeScale.prototype.getLabel = function (tick) {\n    var useUTC = this.getSetting('useUTC');\n    return format(tick.value, fullLeveledFormatter[getDefaultFormatPrecisionOfInterval(getPrimaryTimeUnit(this._minLevelUnit))] || fullLeveledFormatter.second, useUTC, this.getSetting('locale'));\n  };\n\n  TimeScale.prototype.getFormattedLabel = function (tick, idx, labelFormatter) {\n    var isUTC = this.getSetting('useUTC');\n    var lang = this.getSetting('locale');\n    return leveledFormat(tick, idx, labelFormatter, lang, isUTC);\n  };\n\n  TimeScale.prototype.getTicks = function (expandToNicedExtent) {\n    var interval = this._interval;\n    var extent = this._extent;\n    var ticks = [];\n\n    if (!interval) {\n      return ticks;\n    }\n\n    ticks.push({\n      value: extent[0],\n      level: 0\n    });\n    var useUTC = this.getSetting('useUTC');\n    var innerTicks = getIntervalTicks(this._minLevelUnit, this._approxInterval, useUTC, extent);\n    ticks = ticks.concat(innerTicks);\n    ticks.push({\n      value: extent[1],\n      level: 0\n    });\n    return ticks;\n  };\n\n  TimeScale.prototype.niceExtent = function (opt) {\n    var extent = this._extent;\n\n    if (extent[0] === extent[1]) {\n      extent[0] -= ONE_DAY;\n      extent[1] += ONE_DAY;\n    }\n\n    if (extent[1] === -Infinity && extent[0] === Infinity) {\n      var d = new Date();\n      extent[1] = +new Date(d.getFullYear(), d.getMonth(), d.getDate());\n      extent[0] = extent[1] - ONE_DAY;\n    }\n\n    this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\n  };\n\n  TimeScale.prototype.niceTicks = function (approxTickNum, minInterval, maxInterval) {\n    approxTickNum = approxTickNum || 10;\n    var extent = this._extent;\n    var span = extent[1] - extent[0];\n    this._approxInterval = span / approxTickNum;\n\n    if (minInterval != null && this._approxInterval < minInterval) {\n      this._approxInterval = minInterval;\n    }\n\n    if (maxInterval != null && this._approxInterval > maxInterval) {\n      this._approxInterval = maxInterval;\n    }\n\n    var scaleIntervalsLen = scaleIntervals.length;\n    var idx = Math.min(bisect(scaleIntervals, this._approxInterval, 0, scaleIntervalsLen), scaleIntervalsLen - 1);\n    this._interval = scaleIntervals[idx][1];\n    this._minLevelUnit = scaleIntervals[Math.max(idx - 1, 0)][0];\n  };\n\n  TimeScale.prototype.parse = function (val) {\n    return typeof val === 'number' ? val : +numberUtil.parseDate(val);\n  };\n\n  TimeScale.prototype.contain = function (val) {\n    return scaleHelper.contain(this.parse(val), this._extent);\n  };\n\n  TimeScale.prototype.normalize = function (val) {\n    return scaleHelper.normalize(this.parse(val), this._extent);\n  };\n\n  TimeScale.prototype.scale = function (val) {\n    return scaleHelper.scale(val, this._extent);\n  };\n\n  TimeScale.type = 'time';\n  return TimeScale;\n}(IntervalScale);\n\nvar scaleIntervals = [['second', ONE_SECOND], ['minute', ONE_MINUTE], ['hour', ONE_HOUR], ['quarter-day', ONE_HOUR * 6], ['half-day', ONE_HOUR * 12], ['day', ONE_DAY * 1.2], ['half-week', ONE_DAY * 3.5], ['week', ONE_DAY * 7], ['month', ONE_DAY * 31], ['quarter', ONE_DAY * 95], ['half-year', ONE_YEAR / 2], ['year', ONE_YEAR]];\n\nfunction isUnitValueSame(unit, valueA, valueB, isUTC) {\n  var dateA = numberUtil.parseDate(valueA);\n  var dateB = numberUtil.parseDate(valueB);\n\n  var isSame = function (unit) {\n    return getUnitValue(dateA, unit, isUTC) === getUnitValue(dateB, unit, isUTC);\n  };\n\n  var isSameYear = function () {\n    return isSame('year');\n  };\n\n  var isSameMonth = function () {\n    return isSameYear() && isSame('month');\n  };\n\n  var isSameDay = function () {\n    return isSameMonth() && isSame('day');\n  };\n\n  var isSameHour = function () {\n    return isSameDay() && isSame('hour');\n  };\n\n  var isSameMinute = function () {\n    return isSameHour() && isSame('minute');\n  };\n\n  var isSameSecond = function () {\n    return isSameMinute() && isSame('second');\n  };\n\n  var isSameMilliSecond = function () {\n    return isSameSecond() && isSame('millisecond');\n  };\n\n  switch (unit) {\n    case 'year':\n      return isSameYear();\n\n    case 'month':\n      return isSameMonth();\n\n    case 'day':\n      return isSameDay();\n\n    case 'hour':\n      return isSameHour();\n\n    case 'minute':\n      return isSameMinute();\n\n    case 'second':\n      return isSameSecond();\n\n    case 'millisecond':\n      return isSameMilliSecond();\n  }\n}\n\nfunction getDateInterval(approxInterval, daysInMonth) {\n  approxInterval /= ONE_DAY;\n  return approxInterval > 16 ? 16 : approxInterval > 7.5 ? 7 : approxInterval > 3.5 ? 4 : approxInterval > 1.5 ? 2 : 1;\n}\n\nfunction getMonthInterval(approxInterval) {\n  var APPROX_ONE_MONTH = 30 * ONE_DAY;\n  approxInterval /= APPROX_ONE_MONTH;\n  return approxInterval > 6 ? 6 : approxInterval > 3 ? 3 : approxInterval > 2 ? 2 : 1;\n}\n\nfunction getHourInterval(approxInterval) {\n  approxInterval /= ONE_HOUR;\n  return approxInterval > 12 ? 12 : approxInterval > 6 ? 6 : approxInterval > 3.5 ? 4 : approxInterval > 2 ? 2 : 1;\n}\n\nfunction getMinutesAndSecondsInterval(approxInterval, isMinutes) {\n  approxInterval /= isMinutes ? ONE_MINUTE : ONE_SECOND;\n  return approxInterval > 30 ? 30 : approxInterval > 20 ? 20 : approxInterval > 15 ? 15 : approxInterval > 10 ? 10 : approxInterval > 5 ? 5 : approxInterval > 2 ? 2 : 1;\n}\n\nfunction getMillisecondsInterval(approxInterval) {\n  return numberUtil.nice(approxInterval, true);\n}\n\nfunction getFirstTimestampOfUnit(date, unitName, isUTC) {\n  var outDate = new Date(date);\n\n  switch (getPrimaryTimeUnit(unitName)) {\n    case 'year':\n    case 'month':\n      outDate[monthSetterName(isUTC)](0);\n\n    case 'day':\n      outDate[dateSetterName(isUTC)](1);\n\n    case 'hour':\n      outDate[hoursSetterName(isUTC)](0);\n\n    case 'minute':\n      outDate[minutesSetterName(isUTC)](0);\n\n    case 'second':\n      outDate[secondsSetterName(isUTC)](0);\n      outDate[millisecondsSetterName(isUTC)](0);\n  }\n\n  return outDate.getTime();\n}\n\nfunction getIntervalTicks(bottomUnitName, approxInterval, isUTC, extent) {\n  var safeLimit = 10000;\n  var unitNames = timeUnits;\n  var iter = 0;\n\n  function addTicksInSpan(interval, minTimestamp, maxTimestamp, getMethodName, setMethodName, isDate, out) {\n    var date = new Date(minTimestamp);\n    var dateTime = minTimestamp;\n    var d = date[getMethodName]();\n\n    while (dateTime < maxTimestamp && dateTime <= extent[1]) {\n      out.push({\n        value: dateTime\n      });\n      d += interval;\n      date[setMethodName](d);\n      dateTime = date.getTime();\n    }\n\n    out.push({\n      value: dateTime,\n      notAdd: true\n    });\n  }\n\n  function addLevelTicks(unitName, lastLevelTicks, levelTicks) {\n    var newAddedTicks = [];\n    var isFirstLevel = !lastLevelTicks.length;\n\n    if (isUnitValueSame(getPrimaryTimeUnit(unitName), extent[0], extent[1], isUTC)) {\n      return;\n    }\n\n    if (isFirstLevel) {\n      lastLevelTicks = [{\n        value: getFirstTimestampOfUnit(new Date(extent[0]), unitName, isUTC)\n      }, {\n        value: extent[1]\n      }];\n    }\n\n    for (var i = 0; i < lastLevelTicks.length - 1; i++) {\n      var startTick = lastLevelTicks[i].value;\n      var endTick = lastLevelTicks[i + 1].value;\n\n      if (startTick === endTick) {\n        continue;\n      }\n\n      var interval = void 0;\n      var getterName = void 0;\n      var setterName = void 0;\n      var isDate = false;\n\n      switch (unitName) {\n        case 'year':\n          interval = Math.max(1, Math.round(approxInterval / ONE_DAY / 365));\n          getterName = fullYearGetterName(isUTC);\n          setterName = fullYearSetterName(isUTC);\n          break;\n\n        case 'half-year':\n        case 'quarter':\n        case 'month':\n          interval = getMonthInterval(approxInterval);\n          getterName = monthGetterName(isUTC);\n          setterName = monthSetterName(isUTC);\n          break;\n\n        case 'week':\n        case 'half-week':\n        case 'day':\n          interval = getDateInterval(approxInterval, 31);\n          getterName = dateGetterName(isUTC);\n          setterName = dateSetterName(isUTC);\n          isDate = true;\n          break;\n\n        case 'half-day':\n        case 'quarter-day':\n        case 'hour':\n          interval = getHourInterval(approxInterval);\n          getterName = hoursGetterName(isUTC);\n          setterName = hoursSetterName(isUTC);\n          break;\n\n        case 'minute':\n          interval = getMinutesAndSecondsInterval(approxInterval, true);\n          getterName = minutesGetterName(isUTC);\n          setterName = minutesSetterName(isUTC);\n          break;\n\n        case 'second':\n          interval = getMinutesAndSecondsInterval(approxInterval, false);\n          getterName = secondsGetterName(isUTC);\n          setterName = secondsSetterName(isUTC);\n          break;\n\n        case 'millisecond':\n          interval = getMillisecondsInterval(approxInterval);\n          getterName = millisecondsGetterName(isUTC);\n          setterName = millisecondsSetterName(isUTC);\n          break;\n      }\n\n      addTicksInSpan(interval, startTick, endTick, getterName, setterName, isDate, newAddedTicks);\n\n      if (unitName === 'year' && levelTicks.length > 1 && i === 0) {\n        levelTicks.unshift({\n          value: levelTicks[0].value - interval\n        });\n      }\n    }\n\n    for (var i = 0; i < newAddedTicks.length; i++) {\n      levelTicks.push(newAddedTicks[i]);\n    }\n\n    return newAddedTicks;\n  }\n\n  var levelsTicks = [];\n  var currentLevelTicks = [];\n  var tickCount = 0;\n  var lastLevelTickCount = 0;\n\n  for (var i = 0; i < unitNames.length && iter++ < safeLimit; ++i) {\n    var primaryTimeUnit = getPrimaryTimeUnit(unitNames[i]);\n\n    if (!isPrimaryTimeUnit(unitNames[i])) {\n      continue;\n    }\n\n    addLevelTicks(unitNames[i], levelsTicks[levelsTicks.length - 1] || [], currentLevelTicks);\n    var nextPrimaryTimeUnit = unitNames[i + 1] ? getPrimaryTimeUnit(unitNames[i + 1]) : null;\n\n    if (primaryTimeUnit !== nextPrimaryTimeUnit) {\n      if (currentLevelTicks.length) {\n        lastLevelTickCount = tickCount;\n        currentLevelTicks.sort(function (a, b) {\n          return a.value - b.value;\n        });\n        var levelTicksRemoveDuplicated = [];\n\n        for (var i_1 = 0; i_1 < currentLevelTicks.length; ++i_1) {\n          var tickValue = currentLevelTicks[i_1].value;\n\n          if (i_1 === 0 || currentLevelTicks[i_1 - 1].value !== tickValue) {\n            levelTicksRemoveDuplicated.push(currentLevelTicks[i_1]);\n\n            if (tickValue >= extent[0] && tickValue <= extent[1]) {\n              tickCount++;\n            }\n          }\n        }\n\n        var targetTickNum = (extent[1] - extent[0]) / approxInterval;\n\n        if (tickCount > targetTickNum * 1.5 && lastLevelTickCount > targetTickNum / 1.5) {\n          break;\n        }\n\n        levelsTicks.push(levelTicksRemoveDuplicated);\n\n        if (tickCount > targetTickNum || bottomUnitName === unitNames[i]) {\n          break;\n        }\n      }\n\n      currentLevelTicks = [];\n    }\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (iter >= safeLimit) {\n      warn('Exceed safe limit.');\n    }\n  }\n\n  var levelsTicksInExtent = filter(map(levelsTicks, function (levelTicks) {\n    return filter(levelTicks, function (tick) {\n      return tick.value >= extent[0] && tick.value <= extent[1] && !tick.notAdd;\n    });\n  }), function (levelTicks) {\n    return levelTicks.length > 0;\n  });\n  var ticks = [];\n  var maxLevel = levelsTicksInExtent.length - 1;\n\n  for (var i = 0; i < levelsTicksInExtent.length; ++i) {\n    var levelTicks = levelsTicksInExtent[i];\n\n    for (var k = 0; k < levelTicks.length; ++k) {\n      ticks.push({\n        value: levelTicks[k].value,\n        level: maxLevel - i\n      });\n    }\n  }\n\n  ticks.sort(function (a, b) {\n    return a.value - b.value;\n  });\n  var result = [];\n\n  for (var i = 0; i < ticks.length; ++i) {\n    if (i === 0 || ticks[i].value !== ticks[i - 1].value) {\n      result.push(ticks[i]);\n    }\n  }\n\n  return result;\n}\n\nScale.registerClass(TimeScale);\nexport default TimeScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Scale from './Scale';\nimport * as numberUtil from '../util/number';\nimport * as scaleHelper from './helper';\nimport IntervalScale from './Interval';\nvar scaleProto = Scale.prototype;\nvar intervalScaleProto = IntervalScale.prototype;\nvar getPrecisionSafe = numberUtil.getPrecisionSafe;\nvar roundingErrorFix = numberUtil.round;\nvar mathFloor = Math.floor;\nvar mathCeil = Math.ceil;\nvar mathPow = Math.pow;\nvar mathLog = Math.log;\n\nvar LogScale = function (_super) {\n  __extends(LogScale, _super);\n\n  function LogScale() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'log';\n    _this.base = 10;\n    _this._originalScale = new IntervalScale();\n    _this._interval = 0;\n    return _this;\n  }\n\n  LogScale.prototype.getTicks = function (expandToNicedExtent) {\n    var originalScale = this._originalScale;\n    var extent = this._extent;\n    var originalExtent = originalScale.getExtent();\n    var ticks = intervalScaleProto.getTicks.call(this, expandToNicedExtent);\n    return zrUtil.map(ticks, function (tick) {\n      var val = tick.value;\n      var powVal = numberUtil.round(mathPow(this.base, val));\n      powVal = val === extent[0] && this._fixMin ? fixRoundingError(powVal, originalExtent[0]) : powVal;\n      powVal = val === extent[1] && this._fixMax ? fixRoundingError(powVal, originalExtent[1]) : powVal;\n      return {\n        value: powVal\n      };\n    }, this);\n  };\n\n  LogScale.prototype.setExtent = function (start, end) {\n    var base = this.base;\n    start = mathLog(start) / mathLog(base);\n    end = mathLog(end) / mathLog(base);\n    intervalScaleProto.setExtent.call(this, start, end);\n  };\n\n  LogScale.prototype.getExtent = function () {\n    var base = this.base;\n    var extent = scaleProto.getExtent.call(this);\n    extent[0] = mathPow(base, extent[0]);\n    extent[1] = mathPow(base, extent[1]);\n    var originalScale = this._originalScale;\n    var originalExtent = originalScale.getExtent();\n    this._fixMin && (extent[0] = fixRoundingError(extent[0], originalExtent[0]));\n    this._fixMax && (extent[1] = fixRoundingError(extent[1], originalExtent[1]));\n    return extent;\n  };\n\n  LogScale.prototype.unionExtent = function (extent) {\n    this._originalScale.unionExtent(extent);\n\n    var base = this.base;\n    extent[0] = mathLog(extent[0]) / mathLog(base);\n    extent[1] = mathLog(extent[1]) / mathLog(base);\n    scaleProto.unionExtent.call(this, extent);\n  };\n\n  LogScale.prototype.unionExtentFromData = function (data, dim) {\n    this.unionExtent(data.getApproximateExtent(dim));\n  };\n\n  LogScale.prototype.niceTicks = function (approxTickNum) {\n    approxTickNum = approxTickNum || 10;\n    var extent = this._extent;\n    var span = extent[1] - extent[0];\n\n    if (span === Infinity || span <= 0) {\n      return;\n    }\n\n    var interval = numberUtil.quantity(span);\n    var err = approxTickNum / span * interval;\n\n    if (err <= 0.5) {\n      interval *= 10;\n    }\n\n    while (!isNaN(interval) && Math.abs(interval) < 1 && Math.abs(interval) > 0) {\n      interval *= 10;\n    }\n\n    var niceExtent = [numberUtil.round(mathCeil(extent[0] / interval) * interval), numberUtil.round(mathFloor(extent[1] / interval) * interval)];\n    this._interval = interval;\n    this._niceExtent = niceExtent;\n  };\n\n  LogScale.prototype.niceExtent = function (opt) {\n    intervalScaleProto.niceExtent.call(this, opt);\n    this._fixMin = opt.fixMin;\n    this._fixMax = opt.fixMax;\n  };\n\n  LogScale.prototype.parse = function (val) {\n    return val;\n  };\n\n  LogScale.prototype.contain = function (val) {\n    val = mathLog(val) / mathLog(this.base);\n    return scaleHelper.contain(val, this._extent);\n  };\n\n  LogScale.prototype.normalize = function (val) {\n    val = mathLog(val) / mathLog(this.base);\n    return scaleHelper.normalize(val, this._extent);\n  };\n\n  LogScale.prototype.scale = function (val) {\n    val = scaleHelper.scale(val, this._extent);\n    return mathPow(this.base, val);\n  };\n\n  LogScale.type = 'log';\n  return LogScale;\n}(Scale);\n\nvar proto = LogScale.prototype;\nproto.getMinorTicks = intervalScaleProto.getMinorTicks;\nproto.getLabel = intervalScaleProto.getLabel;\n\nfunction fixRoundingError(val, originalVal) {\n  return roundingErrorFix(val, getPrecisionSafe(originalVal));\n}\n\nScale.registerClass(LogScale);\nexport default LogScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { assert, isArray, eqNaN, isFunction } from 'zrender/lib/core/util';\nimport { parsePercent } from 'zrender/lib/contain/text';\n\nvar ScaleRawExtentInfo = function () {\n  function ScaleRawExtentInfo(scale, model, originalExtent) {\n    this._prepareParams(scale, model, originalExtent);\n  }\n\n  ScaleRawExtentInfo.prototype._prepareParams = function (scale, model, dataExtent) {\n    if (dataExtent[1] < dataExtent[0]) {\n      dataExtent = [NaN, NaN];\n    }\n\n    this._dataMin = dataExtent[0];\n    this._dataMax = dataExtent[1];\n    var isOrdinal = this._isOrdinal = scale.type === 'ordinal';\n    this._needCrossZero = model.getNeedCrossZero && model.getNeedCrossZero();\n    var modelMinRaw = this._modelMinRaw = model.get('min', true);\n\n    if (isFunction(modelMinRaw)) {\n      this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw({\n        min: dataExtent[0],\n        max: dataExtent[1]\n      }));\n    } else if (modelMinRaw !== 'dataMin') {\n      this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw);\n    }\n\n    var modelMaxRaw = this._modelMaxRaw = model.get('max', true);\n\n    if (isFunction(modelMaxRaw)) {\n      this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw({\n        min: dataExtent[0],\n        max: dataExtent[1]\n      }));\n    } else if (modelMaxRaw !== 'dataMax') {\n      this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw);\n    }\n\n    if (isOrdinal) {\n      this._axisDataLen = model.getCategories().length;\n    } else {\n      var boundaryGap = model.get('boundaryGap');\n      var boundaryGapArr = isArray(boundaryGap) ? boundaryGap : [boundaryGap || 0, boundaryGap || 0];\n\n      if (typeof boundaryGapArr[0] === 'boolean' || typeof boundaryGapArr[1] === 'boolean') {\n        if (process.env.NODE_ENV !== 'production') {\n          console.warn('Boolean type for boundaryGap is only ' + 'allowed for ordinal axis. Please use string in ' + 'percentage instead, e.g., \"20%\". Currently, ' + 'boundaryGap is set to be 0.');\n        }\n\n        this._boundaryGapInner = [0, 0];\n      } else {\n        this._boundaryGapInner = [parsePercent(boundaryGapArr[0], 1), parsePercent(boundaryGapArr[1], 1)];\n      }\n    }\n  };\n\n  ScaleRawExtentInfo.prototype.calculate = function () {\n    var isOrdinal = this._isOrdinal;\n    var dataMin = this._dataMin;\n    var dataMax = this._dataMax;\n    var axisDataLen = this._axisDataLen;\n    var boundaryGapInner = this._boundaryGapInner;\n    var span = !isOrdinal ? dataMax - dataMin || Math.abs(dataMin) : null;\n    var min = this._modelMinRaw === 'dataMin' ? dataMin : this._modelMinNum;\n    var max = this._modelMaxRaw === 'dataMax' ? dataMax : this._modelMaxNum;\n    var minFixed = min != null;\n    var maxFixed = max != null;\n\n    if (min == null) {\n      min = isOrdinal ? axisDataLen ? 0 : NaN : dataMin - boundaryGapInner[0] * span;\n    }\n\n    if (max == null) {\n      max = isOrdinal ? axisDataLen ? axisDataLen - 1 : NaN : dataMax + boundaryGapInner[1] * span;\n    }\n\n    (min == null || !isFinite(min)) && (min = NaN);\n    (max == null || !isFinite(max)) && (max = NaN);\n\n    if (min > max) {\n      min = NaN;\n      max = NaN;\n    }\n\n    var isBlank = eqNaN(min) || eqNaN(max) || isOrdinal && !axisDataLen;\n\n    if (this._needCrossZero) {\n      if (min > 0 && max > 0 && !minFixed) {\n        min = 0;\n      }\n\n      if (min < 0 && max < 0 && !maxFixed) {\n        max = 0;\n      }\n    }\n\n    var determinedMin = this._determinedMin;\n    var determinedMax = this._determinedMax;\n\n    if (determinedMin != null) {\n      min = determinedMin;\n      minFixed = true;\n    }\n\n    if (determinedMax != null) {\n      max = determinedMax;\n      maxFixed = true;\n    }\n\n    return {\n      min: min,\n      max: max,\n      minFixed: minFixed,\n      maxFixed: maxFixed,\n      isBlank: isBlank\n    };\n  };\n\n  ScaleRawExtentInfo.prototype.modifyDataMinMax = function (minMaxName, val) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!this.frozen);\n    }\n\n    this[DATA_MIN_MAX_ATTR[minMaxName]] = val;\n  };\n\n  ScaleRawExtentInfo.prototype.setDeterminedMinMax = function (minMaxName, val) {\n    var attr = DETERMINED_MIN_MAX_ATTR[minMaxName];\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!this.frozen && this[attr] == null);\n    }\n\n    this[attr] = val;\n  };\n\n  ScaleRawExtentInfo.prototype.freeze = function () {\n    this.frozen = true;\n  };\n\n  return ScaleRawExtentInfo;\n}();\n\nexport { ScaleRawExtentInfo };\nvar DETERMINED_MIN_MAX_ATTR = {\n  min: '_determinedMin',\n  max: '_determinedMax'\n};\nvar DATA_MIN_MAX_ATTR = {\n  min: '_dataMin',\n  max: '_dataMax'\n};\nexport function ensureScaleRawExtentInfo(scale, model, originalExtent) {\n  var rawExtentInfo = scale.rawExtentInfo;\n\n  if (rawExtentInfo) {\n    return rawExtentInfo;\n  }\n\n  rawExtentInfo = new ScaleRawExtentInfo(scale, model, originalExtent);\n  scale.rawExtentInfo = rawExtentInfo;\n  return rawExtentInfo;\n}\nexport function parseAxisModelMinMax(scale, minMax) {\n  return minMax == null ? null : eqNaN(minMax) ? NaN : scale.parse(minMax);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport OrdinalScale from '../scale/Ordinal';\nimport IntervalScale from '../scale/Interval';\nimport Scale from '../scale/Scale';\nimport { prepareLayoutBarSeries, makeColumnLayout, retrieveColumnLayout } from '../layout/barGrid';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport TimeScale from '../scale/Time';\nimport LogScale from '../scale/Log';\nimport { getStackedDimension } from '../data/helper/dataStackHelper';\nimport { ensureScaleRawExtentInfo } from './scaleRawExtentInfo';\nexport function getScaleExtent(scale, model) {\n  var scaleType = scale.type;\n  var rawExtentResult = ensureScaleRawExtentInfo(scale, model, scale.getExtent()).calculate();\n  scale.setBlank(rawExtentResult.isBlank);\n  var min = rawExtentResult.min;\n  var max = rawExtentResult.max;\n  var ecModel = model.ecModel;\n\n  if (ecModel && scaleType === 'time') {\n    var barSeriesModels = prepareLayoutBarSeries('bar', ecModel);\n    var isBaseAxisAndHasBarSeries_1 = false;\n    zrUtil.each(barSeriesModels, function (seriesModel) {\n      isBaseAxisAndHasBarSeries_1 = isBaseAxisAndHasBarSeries_1 || seriesModel.getBaseAxis() === model.axis;\n    });\n\n    if (isBaseAxisAndHasBarSeries_1) {\n      var barWidthAndOffset = makeColumnLayout(barSeriesModels);\n      var adjustedScale = adjustScaleForOverflow(min, max, model, barWidthAndOffset);\n      min = adjustedScale.min;\n      max = adjustedScale.max;\n    }\n  }\n\n  return {\n    extent: [min, max],\n    fixMin: rawExtentResult.minFixed,\n    fixMax: rawExtentResult.maxFixed\n  };\n}\n\nfunction adjustScaleForOverflow(min, max, model, barWidthAndOffset) {\n  var axisExtent = model.axis.getExtent();\n  var axisLength = axisExtent[1] - axisExtent[0];\n  var barsOnCurrentAxis = retrieveColumnLayout(barWidthAndOffset, model.axis);\n\n  if (barsOnCurrentAxis === undefined) {\n    return {\n      min: min,\n      max: max\n    };\n  }\n\n  var minOverflow = Infinity;\n  zrUtil.each(barsOnCurrentAxis, function (item) {\n    minOverflow = Math.min(item.offset, minOverflow);\n  });\n  var maxOverflow = -Infinity;\n  zrUtil.each(barsOnCurrentAxis, function (item) {\n    maxOverflow = Math.max(item.offset + item.width, maxOverflow);\n  });\n  minOverflow = Math.abs(minOverflow);\n  maxOverflow = Math.abs(maxOverflow);\n  var totalOverFlow = minOverflow + maxOverflow;\n  var oldRange = max - min;\n  var oldRangePercentOfNew = 1 - (minOverflow + maxOverflow) / axisLength;\n  var overflowBuffer = oldRange / oldRangePercentOfNew - oldRange;\n  max += overflowBuffer * (maxOverflow / totalOverFlow);\n  min -= overflowBuffer * (minOverflow / totalOverFlow);\n  return {\n    min: min,\n    max: max\n  };\n}\n\nexport function niceScaleExtent(scale, model) {\n  var extentInfo = getScaleExtent(scale, model);\n  var extent = extentInfo.extent;\n  var splitNumber = model.get('splitNumber');\n\n  if (scale instanceof LogScale) {\n    scale.base = model.get('logBase');\n  }\n\n  var scaleType = scale.type;\n  scale.setExtent(extent[0], extent[1]);\n  scale.niceExtent({\n    splitNumber: splitNumber,\n    fixMin: extentInfo.fixMin,\n    fixMax: extentInfo.fixMax,\n    minInterval: scaleType === 'interval' || scaleType === 'time' ? model.get('minInterval') : null,\n    maxInterval: scaleType === 'interval' || scaleType === 'time' ? model.get('maxInterval') : null\n  });\n  var interval = model.get('interval');\n\n  if (interval != null) {\n    scale.setInterval && scale.setInterval(interval);\n  }\n}\nexport function createScaleByModel(model, axisType) {\n  axisType = axisType || model.get('type');\n\n  if (axisType) {\n    switch (axisType) {\n      case 'category':\n        return new OrdinalScale({\n          ordinalMeta: model.getOrdinalMeta ? model.getOrdinalMeta() : model.getCategories(),\n          extent: [Infinity, -Infinity]\n        });\n\n      case 'time':\n        return new TimeScale({\n          locale: model.ecModel.getLocaleModel(),\n          useUTC: model.ecModel.get('useUTC')\n        });\n\n      default:\n        return new (Scale.getClass(axisType) || IntervalScale)();\n    }\n  }\n}\nexport function ifAxisCrossZero(axis) {\n  var dataExtent = axis.scale.getExtent();\n  var min = dataExtent[0];\n  var max = dataExtent[1];\n  return !(min > 0 && max > 0 || min < 0 && max < 0);\n}\nexport function makeLabelFormatter(axis) {\n  var labelFormatter = axis.getLabelModel().get('formatter');\n  var categoryTickStart = axis.type === 'category' ? axis.scale.getExtent()[0] : null;\n\n  if (axis.scale.type === 'time') {\n    return function (tpl) {\n      return function (tick, idx) {\n        return axis.scale.getFormattedLabel(tick, idx, tpl);\n      };\n    }(labelFormatter);\n  } else if (typeof labelFormatter === 'string') {\n    return function (tpl) {\n      return function (tick) {\n        var label = axis.scale.getLabel(tick);\n        var text = tpl.replace('{value}', label != null ? label : '');\n        return text;\n      };\n    }(labelFormatter);\n  } else if (typeof labelFormatter === 'function') {\n    return function (cb) {\n      return function (tick, idx) {\n        if (categoryTickStart != null) {\n          idx = tick.value - categoryTickStart;\n        }\n\n        return cb(getAxisRawValue(axis, tick), idx, tick.level != null ? {\n          level: tick.level\n        } : null);\n      };\n    }(labelFormatter);\n  } else {\n    return function (tick) {\n      return axis.scale.getLabel(tick);\n    };\n  }\n}\nexport function getAxisRawValue(axis, tick) {\n  return axis.type === 'category' ? axis.scale.getLabel(tick) : tick.value;\n}\nexport function estimateLabelUnionRect(axis) {\n  var axisModel = axis.model;\n  var scale = axis.scale;\n\n  if (!axisModel.get(['axisLabel', 'show']) || scale.isBlank()) {\n    return;\n  }\n\n  var realNumberScaleTicks;\n  var tickCount;\n  var categoryScaleExtent = scale.getExtent();\n\n  if (scale instanceof OrdinalScale) {\n    tickCount = scale.count();\n  } else {\n    realNumberScaleTicks = scale.getTicks();\n    tickCount = realNumberScaleTicks.length;\n  }\n\n  var axisLabelModel = axis.getLabelModel();\n  var labelFormatter = makeLabelFormatter(axis);\n  var rect;\n  var step = 1;\n\n  if (tickCount > 40) {\n    step = Math.ceil(tickCount / 40);\n  }\n\n  for (var i = 0; i < tickCount; i += step) {\n    var tick = realNumberScaleTicks ? realNumberScaleTicks[i] : {\n      value: categoryScaleExtent[0] + i\n    };\n    var label = labelFormatter(tick, i);\n    var unrotatedSingleRect = axisLabelModel.getTextRect(label);\n    var singleRect = rotateTextRect(unrotatedSingleRect, axisLabelModel.get('rotate') || 0);\n    rect ? rect.union(singleRect) : rect = singleRect;\n  }\n\n  return rect;\n}\n\nfunction rotateTextRect(textRect, rotate) {\n  var rotateRadians = rotate * Math.PI / 180;\n  var beforeWidth = textRect.width;\n  var beforeHeight = textRect.height;\n  var afterWidth = beforeWidth * Math.abs(Math.cos(rotateRadians)) + Math.abs(beforeHeight * Math.sin(rotateRadians));\n  var afterHeight = beforeWidth * Math.abs(Math.sin(rotateRadians)) + Math.abs(beforeHeight * Math.cos(rotateRadians));\n  var rotatedRect = new BoundingRect(textRect.x, textRect.y, afterWidth, afterHeight);\n  return rotatedRect;\n}\n\nexport function getOptionCategoryInterval(model) {\n  var interval = model.get('interval');\n  return interval == null ? 'auto' : interval;\n}\nexport function shouldShowAllLabels(axis) {\n  return axis.type === 'category' && getOptionCategoryInterval(axis.getLabelModel()) === 0;\n}\nexport function getDataDimensionsOnAxis(data, axisDim) {\n  var dataDimMap = {};\n  zrUtil.each(data.mapDimensionsAll(axisDim), function (dataDim) {\n    dataDimMap[getStackedDimension(data, dataDim)] = true;\n  });\n  return zrUtil.keys(dataDimMap);\n}\nexport function unionAxisExtentFromData(dataExtent, data, axisDim) {\n  if (data) {\n    zrUtil.each(getDataDimensionsOnAxis(data, axisDim), function (dim) {\n      var seriesExtent = data.getApproximateExtent(dim);\n      seriesExtent[0] < dataExtent[0] && (dataExtent[0] = seriesExtent[0]);\n      seriesExtent[1] > dataExtent[1] && (dataExtent[1] = seriesExtent[1]);\n    });\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar AxisModelCommonMixin = function () {\n  function AxisModelCommonMixin() {}\n\n  AxisModelCommonMixin.prototype.getNeedCrossZero = function () {\n    var option = this.option;\n    return !option.scale;\n  };\n\n  AxisModelCommonMixin.prototype.getCoordSysModel = function () {\n    return;\n  };\n\n  return AxisModelCommonMixin;\n}();\n\nexport { AxisModelCommonMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport createListFromArray from '../../chart/helper/createListFromArray';\nimport * as axisHelper from '../../coord/axisHelper';\nimport { AxisModelCommonMixin } from '../../coord/axisModelCommonMixin';\nimport Model from '../../model/Model';\nimport { getLayoutRect } from '../../util/layout';\nimport { enableDataStack, isDimensionStacked, getStackedDimension } from '../../data/helper/dataStackHelper';\nimport { getECData } from '../../util/innerStore';\nimport { createTextStyle as innerCreateTextStyle } from '../../label/labelStyle';\nexport function createList(seriesModel) {\n  return createListFromArray(seriesModel.getSource(), seriesModel);\n}\nexport { getLayoutRect };\nexport { default as createDimensions } from '../../data/helper/createDimensions';\nexport var dataStack = {\n  isDimensionStacked: isDimensionStacked,\n  enableDataStack: enableDataStack,\n  getStackedDimension: getStackedDimension\n};\nexport { createSymbol } from '../../util/symbol';\nexport function createScale(dataExtent, option) {\n  var axisModel = option;\n\n  if (!(option instanceof Model)) {\n    axisModel = new Model(option);\n  }\n\n  var scale = axisHelper.createScaleByModel(axisModel);\n  scale.setExtent(dataExtent[0], dataExtent[1]);\n  axisHelper.niceScaleExtent(scale, axisModel);\n  return scale;\n}\nexport function mixinAxisModelCommonMethods(Model) {\n  zrUtil.mixin(Model, AxisModelCommonMixin);\n}\nexport { getECData };\nexport { enableHoverEmphasis } from '../../util/states';\nexport function createTextStyle(textStyleModel, opts) {\n  opts = opts || {};\n  return innerCreateTextStyle(textStyleModel, null, null, opts.state !== 'normal');\n}","import windingLine from './windingLine';\nvar EPSILON = 1e-8;\nfunction isAroundEqual(a, b) {\n    return Math.abs(a - b) < EPSILON;\n}\nexport function contain(points, x, y) {\n    var w = 0;\n    var p = points[0];\n    if (!p) {\n        return false;\n    }\n    for (var i = 1; i < points.length; i++) {\n        var p2 = points[i];\n        w += windingLine(p[0], p[1], p2[0], p2[1], x, y);\n        p = p2;\n    }\n    var p0 = points[0];\n    if (!isAroundEqual(p[0], p0[0]) || !isAroundEqual(p[1], p0[1])) {\n        w += windingLine(p[0], p[1], p0[0], p0[1], x, y);\n    }\n    return w !== 0;\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport * as bbox from 'zrender/lib/core/bbox';\nimport * as vec2 from 'zrender/lib/core/vector';\nimport * as polygonContain from 'zrender/lib/contain/polygon';\n\nvar Region = function () {\n  function Region(name, geometries, cp) {\n    this.name = name;\n    this.geometries = geometries;\n\n    if (!cp) {\n      var rect = this.getBoundingRect();\n      cp = [rect.x + rect.width / 2, rect.y + rect.height / 2];\n    } else {\n      cp = [cp[0], cp[1]];\n    }\n\n    this.center = cp;\n  }\n\n  Region.prototype.getBoundingRect = function () {\n    var rect = this._rect;\n\n    if (rect) {\n      return rect;\n    }\n\n    var MAX_NUMBER = Number.MAX_VALUE;\n    var min = [MAX_NUMBER, MAX_NUMBER];\n    var max = [-MAX_NUMBER, -MAX_NUMBER];\n    var min2 = [];\n    var max2 = [];\n    var geometries = this.geometries;\n    var i = 0;\n\n    for (; i < geometries.length; i++) {\n      if (geometries[i].type !== 'polygon') {\n        continue;\n      }\n\n      var exterior = geometries[i].exterior;\n      bbox.fromPoints(exterior, min2, max2);\n      vec2.min(min, min, min2);\n      vec2.max(max, max, max2);\n    }\n\n    if (i === 0) {\n      min[0] = min[1] = max[0] = max[1] = 0;\n    }\n\n    return this._rect = new BoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n  };\n\n  Region.prototype.contain = function (coord) {\n    var rect = this.getBoundingRect();\n    var geometries = this.geometries;\n\n    if (!rect.contain(coord[0], coord[1])) {\n      return false;\n    }\n\n    loopGeo: for (var i = 0, len = geometries.length; i < len; i++) {\n      if (geometries[i].type !== 'polygon') {\n        continue;\n      }\n\n      var exterior = geometries[i].exterior;\n      var interiors = geometries[i].interiors;\n\n      if (polygonContain.contain(exterior, coord[0], coord[1])) {\n        for (var k = 0; k < (interiors ? interiors.length : 0); k++) {\n          if (polygonContain.contain(interiors[k], coord[0], coord[1])) {\n            continue loopGeo;\n          }\n        }\n\n        return true;\n      }\n    }\n\n    return false;\n  };\n\n  Region.prototype.transformTo = function (x, y, width, height) {\n    var rect = this.getBoundingRect();\n    var aspect = rect.width / rect.height;\n\n    if (!width) {\n      width = aspect * height;\n    } else if (!height) {\n      height = width / aspect;\n    }\n\n    var target = new BoundingRect(x, y, width, height);\n    var transform = rect.calculateTransform(target);\n    var geometries = this.geometries;\n\n    for (var i = 0; i < geometries.length; i++) {\n      if (geometries[i].type !== 'polygon') {\n        continue;\n      }\n\n      var exterior = geometries[i].exterior;\n      var interiors = geometries[i].interiors;\n\n      for (var p = 0; p < exterior.length; p++) {\n        vec2.applyTransform(exterior[p], exterior[p], transform);\n      }\n\n      for (var h = 0; h < (interiors ? interiors.length : 0); h++) {\n        for (var p = 0; p < interiors[h].length; p++) {\n          vec2.applyTransform(interiors[h][p], interiors[h][p], transform);\n        }\n      }\n    }\n\n    rect = this._rect;\n    rect.copy(target);\n    this.center = [rect.x + rect.width / 2, rect.y + rect.height / 2];\n  };\n\n  Region.prototype.cloneShallow = function (name) {\n    name == null && (name = this.name);\n    var newRegion = new Region(name, this.geometries, this.center);\n    newRegion._rect = this._rect;\n    newRegion.transformTo = null;\n    return newRegion;\n  };\n\n  return Region;\n}();\n\nexport default Region;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Region from './Region';\n\nfunction decode(json) {\n  if (!json.UTF8Encoding) {\n    return json;\n  }\n\n  var jsonCompressed = json;\n  var encodeScale = jsonCompressed.UTF8Scale;\n\n  if (encodeScale == null) {\n    encodeScale = 1024;\n  }\n\n  var features = jsonCompressed.features;\n\n  for (var f = 0; f < features.length; f++) {\n    var feature = features[f];\n    var geometry = feature.geometry;\n\n    if (geometry.type === 'Polygon') {\n      var coordinates = geometry.coordinates;\n\n      for (var c = 0; c < coordinates.length; c++) {\n        coordinates[c] = decodePolygon(coordinates[c], geometry.encodeOffsets[c], encodeScale);\n      }\n    } else if (geometry.type === 'MultiPolygon') {\n      var coordinates = geometry.coordinates;\n\n      for (var c = 0; c < coordinates.length; c++) {\n        var coordinate = coordinates[c];\n\n        for (var c2 = 0; c2 < coordinate.length; c2++) {\n          coordinate[c2] = decodePolygon(coordinate[c2], geometry.encodeOffsets[c][c2], encodeScale);\n        }\n      }\n    }\n  }\n\n  jsonCompressed.UTF8Encoding = false;\n  return jsonCompressed;\n}\n\nfunction decodePolygon(coordinate, encodeOffsets, encodeScale) {\n  var result = [];\n  var prevX = encodeOffsets[0];\n  var prevY = encodeOffsets[1];\n\n  for (var i = 0; i < coordinate.length; i += 2) {\n    var x = coordinate.charCodeAt(i) - 64;\n    var y = coordinate.charCodeAt(i + 1) - 64;\n    x = x >> 1 ^ -(x & 1);\n    y = y >> 1 ^ -(y & 1);\n    x += prevX;\n    y += prevY;\n    prevX = x;\n    prevY = y;\n    result.push([x / encodeScale, y / encodeScale]);\n  }\n\n  return result;\n}\n\nexport default function parseGeoJSON(geoJson, nameProperty) {\n  geoJson = decode(geoJson);\n  return zrUtil.map(zrUtil.filter(geoJson.features, function (featureObj) {\n    return featureObj.geometry && featureObj.properties && featureObj.geometry.coordinates.length > 0;\n  }), function (featureObj) {\n    var properties = featureObj.properties;\n    var geo = featureObj.geometry;\n    var geometries = [];\n\n    if (geo.type === 'Polygon') {\n      var coordinates = geo.coordinates;\n      geometries.push({\n        type: 'polygon',\n        exterior: coordinates[0],\n        interiors: coordinates.slice(1)\n      });\n    }\n\n    if (geo.type === 'MultiPolygon') {\n      var coordinates = geo.coordinates;\n      zrUtil.each(coordinates, function (item) {\n        if (item[0]) {\n          geometries.push({\n            type: 'polygon',\n            exterior: item[0],\n            interiors: item.slice(1)\n          });\n        }\n      });\n    }\n\n    var region = new Region(properties[nameProperty || 'name'], geometries, properties.cp);\n    region.properties = properties;\n    return region;\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as textContain from 'zrender/lib/contain/text';\nimport { makeInner } from '../util/model';\nimport { makeLabelFormatter, getOptionCategoryInterval, shouldShowAllLabels } from './axisHelper';\nvar inner = makeInner();\nexport function createAxisLabels(axis) {\n  return axis.type === 'category' ? makeCategoryLabels(axis) : makeRealNumberLabels(axis);\n}\nexport function createAxisTicks(axis, tickModel) {\n  return axis.type === 'category' ? makeCategoryTicks(axis, tickModel) : {\n    ticks: zrUtil.map(axis.scale.getTicks(), function (tick) {\n      return tick.value;\n    })\n  };\n}\n\nfunction makeCategoryLabels(axis) {\n  var labelModel = axis.getLabelModel();\n  var result = makeCategoryLabelsActually(axis, labelModel);\n  return !labelModel.get('show') || axis.scale.isBlank() ? {\n    labels: [],\n    labelCategoryInterval: result.labelCategoryInterval\n  } : result;\n}\n\nfunction makeCategoryLabelsActually(axis, labelModel) {\n  var labelsCache = getListCache(axis, 'labels');\n  var optionLabelInterval = getOptionCategoryInterval(labelModel);\n  var result = listCacheGet(labelsCache, optionLabelInterval);\n\n  if (result) {\n    return result;\n  }\n\n  var labels;\n  var numericLabelInterval;\n\n  if (zrUtil.isFunction(optionLabelInterval)) {\n    labels = makeLabelsByCustomizedCategoryInterval(axis, optionLabelInterval);\n  } else {\n    numericLabelInterval = optionLabelInterval === 'auto' ? makeAutoCategoryInterval(axis) : optionLabelInterval;\n    labels = makeLabelsByNumericCategoryInterval(axis, numericLabelInterval);\n  }\n\n  return listCacheSet(labelsCache, optionLabelInterval, {\n    labels: labels,\n    labelCategoryInterval: numericLabelInterval\n  });\n}\n\nfunction makeCategoryTicks(axis, tickModel) {\n  var ticksCache = getListCache(axis, 'ticks');\n  var optionTickInterval = getOptionCategoryInterval(tickModel);\n  var result = listCacheGet(ticksCache, optionTickInterval);\n\n  if (result) {\n    return result;\n  }\n\n  var ticks;\n  var tickCategoryInterval;\n\n  if (!tickModel.get('show') || axis.scale.isBlank()) {\n    ticks = [];\n  }\n\n  if (zrUtil.isFunction(optionTickInterval)) {\n    ticks = makeLabelsByCustomizedCategoryInterval(axis, optionTickInterval, true);\n  } else if (optionTickInterval === 'auto') {\n    var labelsResult = makeCategoryLabelsActually(axis, axis.getLabelModel());\n    tickCategoryInterval = labelsResult.labelCategoryInterval;\n    ticks = zrUtil.map(labelsResult.labels, function (labelItem) {\n      return labelItem.tickValue;\n    });\n  } else {\n    tickCategoryInterval = optionTickInterval;\n    ticks = makeLabelsByNumericCategoryInterval(axis, tickCategoryInterval, true);\n  }\n\n  return listCacheSet(ticksCache, optionTickInterval, {\n    ticks: ticks,\n    tickCategoryInterval: tickCategoryInterval\n  });\n}\n\nfunction makeRealNumberLabels(axis) {\n  var ticks = axis.scale.getTicks();\n  var labelFormatter = makeLabelFormatter(axis);\n  return {\n    labels: zrUtil.map(ticks, function (tick, idx) {\n      return {\n        formattedLabel: labelFormatter(tick, idx),\n        rawLabel: axis.scale.getLabel(tick),\n        tickValue: tick.value\n      };\n    })\n  };\n}\n\nfunction getListCache(axis, prop) {\n  return inner(axis)[prop] || (inner(axis)[prop] = []);\n}\n\nfunction listCacheGet(cache, key) {\n  for (var i = 0; i < cache.length; i++) {\n    if (cache[i].key === key) {\n      return cache[i].value;\n    }\n  }\n}\n\nfunction listCacheSet(cache, key, value) {\n  cache.push({\n    key: key,\n    value: value\n  });\n  return value;\n}\n\nfunction makeAutoCategoryInterval(axis) {\n  var result = inner(axis).autoInterval;\n  return result != null ? result : inner(axis).autoInterval = axis.calculateCategoryInterval();\n}\n\nexport function calculateCategoryInterval(axis) {\n  var params = fetchAutoCategoryIntervalCalculationParams(axis);\n  var labelFormatter = makeLabelFormatter(axis);\n  var rotation = (params.axisRotate - params.labelRotate) / 180 * Math.PI;\n  var ordinalScale = axis.scale;\n  var ordinalExtent = ordinalScale.getExtent();\n  var tickCount = ordinalScale.count();\n\n  if (ordinalExtent[1] - ordinalExtent[0] < 1) {\n    return 0;\n  }\n\n  var step = 1;\n\n  if (tickCount > 40) {\n    step = Math.max(1, Math.floor(tickCount / 40));\n  }\n\n  var tickValue = ordinalExtent[0];\n  var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue);\n  var unitW = Math.abs(unitSpan * Math.cos(rotation));\n  var unitH = Math.abs(unitSpan * Math.sin(rotation));\n  var maxW = 0;\n  var maxH = 0;\n\n  for (; tickValue <= ordinalExtent[1]; tickValue += step) {\n    var width = 0;\n    var height = 0;\n    var rect = textContain.getBoundingRect(labelFormatter({\n      value: tickValue\n    }), params.font, 'center', 'top');\n    width = rect.width * 1.3;\n    height = rect.height * 1.3;\n    maxW = Math.max(maxW, width, 7);\n    maxH = Math.max(maxH, height, 7);\n  }\n\n  var dw = maxW / unitW;\n  var dh = maxH / unitH;\n  isNaN(dw) && (dw = Infinity);\n  isNaN(dh) && (dh = Infinity);\n  var interval = Math.max(0, Math.floor(Math.min(dw, dh)));\n  var cache = inner(axis.model);\n  var axisExtent = axis.getExtent();\n  var lastAutoInterval = cache.lastAutoInterval;\n  var lastTickCount = cache.lastTickCount;\n\n  if (lastAutoInterval != null && lastTickCount != null && Math.abs(lastAutoInterval - interval) <= 1 && Math.abs(lastTickCount - tickCount) <= 1 && lastAutoInterval > interval && cache.axisExtent0 === axisExtent[0] && cache.axisExtent1 === axisExtent[1]) {\n    interval = lastAutoInterval;\n  } else {\n    cache.lastTickCount = tickCount;\n    cache.lastAutoInterval = interval;\n    cache.axisExtent0 = axisExtent[0];\n    cache.axisExtent1 = axisExtent[1];\n  }\n\n  return interval;\n}\n\nfunction fetchAutoCategoryIntervalCalculationParams(axis) {\n  var labelModel = axis.getLabelModel();\n  return {\n    axisRotate: axis.getRotate ? axis.getRotate() : axis.isHorizontal && !axis.isHorizontal() ? 90 : 0,\n    labelRotate: labelModel.get('rotate') || 0,\n    font: labelModel.getFont()\n  };\n}\n\nfunction makeLabelsByNumericCategoryInterval(axis, categoryInterval, onlyTick) {\n  var labelFormatter = makeLabelFormatter(axis);\n  var ordinalScale = axis.scale;\n  var ordinalExtent = ordinalScale.getExtent();\n  var labelModel = axis.getLabelModel();\n  var result = [];\n  var step = Math.max((categoryInterval || 0) + 1, 1);\n  var startTick = ordinalExtent[0];\n  var tickCount = ordinalScale.count();\n\n  if (startTick !== 0 && step > 1 && tickCount / step > 2) {\n    startTick = Math.round(Math.ceil(startTick / step) * step);\n  }\n\n  var showAllLabel = shouldShowAllLabels(axis);\n  var includeMinLabel = labelModel.get('showMinLabel') || showAllLabel;\n  var includeMaxLabel = labelModel.get('showMaxLabel') || showAllLabel;\n\n  if (includeMinLabel && startTick !== ordinalExtent[0]) {\n    addItem(ordinalExtent[0]);\n  }\n\n  var tickValue = startTick;\n\n  for (; tickValue <= ordinalExtent[1]; tickValue += step) {\n    addItem(tickValue);\n  }\n\n  if (includeMaxLabel && tickValue - step !== ordinalExtent[1]) {\n    addItem(ordinalExtent[1]);\n  }\n\n  function addItem(tickValue) {\n    var tickObj = {\n      value: tickValue\n    };\n    result.push(onlyTick ? tickValue : {\n      formattedLabel: labelFormatter(tickObj),\n      rawLabel: ordinalScale.getLabel(tickObj),\n      tickValue: tickValue\n    });\n  }\n\n  return result;\n}\n\nfunction makeLabelsByCustomizedCategoryInterval(axis, categoryInterval, onlyTick) {\n  var ordinalScale = axis.scale;\n  var labelFormatter = makeLabelFormatter(axis);\n  var result = [];\n  zrUtil.each(ordinalScale.getTicks(), function (tick) {\n    var rawLabel = ordinalScale.getLabel(tick);\n    var tickValue = tick.value;\n\n    if (categoryInterval(tick.value, rawLabel)) {\n      result.push(onlyTick ? tickValue : {\n        formattedLabel: labelFormatter(tick),\n        rawLabel: rawLabel,\n        tickValue: tickValue\n      });\n    }\n  });\n  return result;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, map } from 'zrender/lib/core/util';\nimport { linearMap, getPixelPrecision, round } from '../util/number';\nimport { createAxisTicks, createAxisLabels, calculateCategoryInterval } from './axisTickLabelBuilder';\nvar NORMALIZED_EXTENT = [0, 1];\n\nvar Axis = function () {\n  function Axis(dim, scale, extent) {\n    this.onBand = false;\n    this.inverse = false;\n    this.dim = dim;\n    this.scale = scale;\n    this._extent = extent || [0, 0];\n  }\n\n  Axis.prototype.contain = function (coord) {\n    var extent = this._extent;\n    var min = Math.min(extent[0], extent[1]);\n    var max = Math.max(extent[0], extent[1]);\n    return coord >= min && coord <= max;\n  };\n\n  Axis.prototype.containData = function (data) {\n    return this.scale.contain(data);\n  };\n\n  Axis.prototype.getExtent = function () {\n    return this._extent.slice();\n  };\n\n  Axis.prototype.getPixelPrecision = function (dataExtent) {\n    return getPixelPrecision(dataExtent || this.scale.getExtent(), this._extent);\n  };\n\n  Axis.prototype.setExtent = function (start, end) {\n    var extent = this._extent;\n    extent[0] = start;\n    extent[1] = end;\n  };\n\n  Axis.prototype.dataToCoord = function (data, clamp) {\n    var extent = this._extent;\n    var scale = this.scale;\n    data = scale.normalize(data);\n\n    if (this.onBand && scale.type === 'ordinal') {\n      extent = extent.slice();\n      fixExtentWithBands(extent, scale.count());\n    }\n\n    return linearMap(data, NORMALIZED_EXTENT, extent, clamp);\n  };\n\n  Axis.prototype.coordToData = function (coord, clamp) {\n    var extent = this._extent;\n    var scale = this.scale;\n\n    if (this.onBand && scale.type === 'ordinal') {\n      extent = extent.slice();\n      fixExtentWithBands(extent, scale.count());\n    }\n\n    var t = linearMap(coord, extent, NORMALIZED_EXTENT, clamp);\n    return this.scale.scale(t);\n  };\n\n  Axis.prototype.pointToData = function (point, clamp) {\n    return;\n  };\n\n  Axis.prototype.getTicksCoords = function (opt) {\n    opt = opt || {};\n    var tickModel = opt.tickModel || this.getTickModel();\n    var result = createAxisTicks(this, tickModel);\n    var ticks = result.ticks;\n    var ticksCoords = map(ticks, function (tickVal) {\n      return {\n        coord: this.dataToCoord(this.scale.type === 'ordinal' ? this.scale.getRawOrdinalNumber(tickVal) : tickVal),\n        tickValue: tickVal\n      };\n    }, this);\n    var alignWithLabel = tickModel.get('alignWithLabel');\n    fixOnBandTicksCoords(this, ticksCoords, alignWithLabel, opt.clamp);\n    return ticksCoords;\n  };\n\n  Axis.prototype.getMinorTicksCoords = function () {\n    if (this.scale.type === 'ordinal') {\n      return [];\n    }\n\n    var minorTickModel = this.model.getModel('minorTick');\n    var splitNumber = minorTickModel.get('splitNumber');\n\n    if (!(splitNumber > 0 && splitNumber < 100)) {\n      splitNumber = 5;\n    }\n\n    var minorTicks = this.scale.getMinorTicks(splitNumber);\n    var minorTicksCoords = map(minorTicks, function (minorTicksGroup) {\n      return map(minorTicksGroup, function (minorTick) {\n        return {\n          coord: this.dataToCoord(minorTick),\n          tickValue: minorTick\n        };\n      }, this);\n    }, this);\n    return minorTicksCoords;\n  };\n\n  Axis.prototype.getViewLabels = function () {\n    return createAxisLabels(this).labels;\n  };\n\n  Axis.prototype.getLabelModel = function () {\n    return this.model.getModel('axisLabel');\n  };\n\n  Axis.prototype.getTickModel = function () {\n    return this.model.getModel('axisTick');\n  };\n\n  Axis.prototype.getBandWidth = function () {\n    var axisExtent = this._extent;\n    var dataExtent = this.scale.getExtent();\n    var len = dataExtent[1] - dataExtent[0] + (this.onBand ? 1 : 0);\n    len === 0 && (len = 1);\n    var size = Math.abs(axisExtent[1] - axisExtent[0]);\n    return Math.abs(size) / len;\n  };\n\n  Axis.prototype.calculateCategoryInterval = function () {\n    return calculateCategoryInterval(this);\n  };\n\n  return Axis;\n}();\n\nfunction fixExtentWithBands(extent, nTick) {\n  var size = extent[1] - extent[0];\n  var len = nTick;\n  var margin = size / len / 2;\n  extent[0] += margin;\n  extent[1] -= margin;\n}\n\nfunction fixOnBandTicksCoords(axis, ticksCoords, alignWithLabel, clamp) {\n  var ticksLen = ticksCoords.length;\n\n  if (!axis.onBand || alignWithLabel || !ticksLen) {\n    return;\n  }\n\n  var axisExtent = axis.getExtent();\n  var last;\n  var diffSize;\n\n  if (ticksLen === 1) {\n    ticksCoords[0].coord = axisExtent[0];\n    last = ticksCoords[1] = {\n      coord: axisExtent[0]\n    };\n  } else {\n    var crossLen = ticksCoords[ticksLen - 1].tickValue - ticksCoords[0].tickValue;\n    var shift_1 = (ticksCoords[ticksLen - 1].coord - ticksCoords[0].coord) / crossLen;\n    each(ticksCoords, function (ticksItem) {\n      ticksItem.coord -= shift_1 / 2;\n    });\n    var dataExtent = axis.scale.getExtent();\n    diffSize = 1 + dataExtent[1] - ticksCoords[ticksLen - 1].tickValue;\n    last = {\n      coord: ticksCoords[ticksLen - 1].coord + shift_1 * diffSize\n    };\n    ticksCoords.push(last);\n  }\n\n  var inverse = axisExtent[0] > axisExtent[1];\n\n  if (littleThan(ticksCoords[0].coord, axisExtent[0])) {\n    clamp ? ticksCoords[0].coord = axisExtent[0] : ticksCoords.shift();\n  }\n\n  if (clamp && littleThan(axisExtent[0], ticksCoords[0].coord)) {\n    ticksCoords.unshift({\n      coord: axisExtent[0]\n    });\n  }\n\n  if (littleThan(axisExtent[1], last.coord)) {\n    clamp ? last.coord = axisExtent[1] : ticksCoords.pop();\n  }\n\n  if (clamp && littleThan(last.coord, axisExtent[1])) {\n    ticksCoords.push({\n      coord: axisExtent[1]\n    });\n  }\n\n  function littleThan(a, b) {\n    a = round(a);\n    b = round(b);\n    return inverse ? a > b : a < b;\n  }\n}\n\nexport default Axis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ComponentModel from '../model/Component';\nimport ComponentView from '../view/Component';\nimport SeriesModel from '../model/Series';\nimport ChartView from '../view/Chart';\nimport * as zrender_1 from 'zrender/lib/zrender';\nexport { zrender_1 as zrender };\nimport * as matrix_1 from 'zrender/lib/core/matrix';\nexport { matrix_1 as matrix };\nimport * as vector_1 from 'zrender/lib/core/vector';\nexport { vector_1 as vector };\nimport * as zrUtil_1 from 'zrender/lib/core/util';\nexport { zrUtil_1 as zrUtil };\nimport * as color_1 from 'zrender/lib/tool/color';\nexport { color_1 as color };\nexport { throttle } from '../util/throttle';\nimport * as helper_1 from './api/helper';\nexport { helper_1 as helper };\nexport { use } from '../extension';\nexport { default as parseGeoJSON } from '../coord/geo/parseGeoJson';\nexport { default as parseGeoJson } from '../coord/geo/parseGeoJson';\nimport * as number_1 from './api/number';\nexport { number_1 as number };\nimport * as time_1 from './api/time';\nexport { time_1 as time };\nimport * as graphic_1 from './api/graphic';\nexport { graphic_1 as graphic };\nimport * as format_1 from './api/format';\nexport { format_1 as format };\nimport * as util_1 from './api/util';\nexport { util_1 as util };\nexport { default as env } from 'zrender/lib/core/env';\nexport { default as List } from '../data/List';\nexport { default as Model } from '../model/Model';\nexport { default as Axis } from '../coord/Axis';\nexport { ComponentModel, ComponentView, SeriesModel, ChartView };\nexport { brushSingle as innerDrawElementOnCanvas } from 'zrender/lib/canvas/graphic';\nexport function extendComponentModel(proto) {\n  var Model = ComponentModel.extend(proto);\n  ComponentModel.registerClass(Model);\n  return Model;\n}\nexport function extendComponentView(proto) {\n  var View = ComponentView.extend(proto);\n  ComponentView.registerClass(View);\n  return View;\n}\nexport function extendSeriesModel(proto) {\n  var Model = SeriesModel.extend(proto);\n  SeriesModel.registerClass(Model);\n  return Model;\n}\nexport function extendChartView(proto) {\n  var View = ChartView.extend(proto);\n  ChartView.registerClass(View);\n  return View;\n}","import { __extends } from \"tslib\";\nimport * as util from '../core/util';\nimport { devicePixelRatio } from '../config';\nimport Eventful from '../core/Eventful';\nimport Element from '../Element';\nimport { getCanvasGradient } from './helper';\nimport { createCanvasPattern } from './graphic';\nimport BoundingRect from '../core/BoundingRect';\nfunction returnFalse() {\n    return false;\n}\nfunction createDom(id, painter, dpr) {\n    var newDom = util.createCanvas();\n    var width = painter.getWidth();\n    var height = painter.getHeight();\n    var newDomStyle = newDom.style;\n    if (newDomStyle) {\n        newDomStyle.position = 'absolute';\n        newDomStyle.left = '0';\n        newDomStyle.top = '0';\n        newDomStyle.width = width + 'px';\n        newDomStyle.height = height + 'px';\n        newDom.setAttribute('data-zr-dom-id', id);\n    }\n    newDom.width = width * dpr;\n    newDom.height = height * dpr;\n    return newDom;\n}\n;\nvar Layer = (function (_super) {\n    __extends(Layer, _super);\n    function Layer(id, painter, dpr) {\n        var _this = _super.call(this) || this;\n        _this.motionBlur = false;\n        _this.lastFrameAlpha = 0.7;\n        _this.dpr = 1;\n        _this.virtual = false;\n        _this.config = {};\n        _this.incremental = false;\n        _this.zlevel = 0;\n        _this.maxRepaintRectCount = 5;\n        _this.__dirty = true;\n        _this.__firstTimePaint = true;\n        _this.__used = false;\n        _this.__drawIndex = 0;\n        _this.__startIndex = 0;\n        _this.__endIndex = 0;\n        _this.__prevStartIndex = null;\n        _this.__prevEndIndex = null;\n        var dom;\n        dpr = dpr || devicePixelRatio;\n        if (typeof id === 'string') {\n            dom = createDom(id, painter, dpr);\n        }\n        else if (util.isObject(id)) {\n            dom = id;\n            id = dom.id;\n        }\n        _this.id = id;\n        _this.dom = dom;\n        var domStyle = dom.style;\n        if (domStyle) {\n            dom.onselectstart = returnFalse;\n            domStyle.webkitUserSelect = 'none';\n            domStyle.userSelect = 'none';\n            domStyle.webkitTapHighlightColor = 'rgba(0,0,0,0)';\n            domStyle['-webkit-touch-callout'] = 'none';\n            domStyle.padding = '0';\n            domStyle.margin = '0';\n            domStyle.borderWidth = '0';\n        }\n        _this.domBack = null;\n        _this.ctxBack = null;\n        _this.painter = painter;\n        _this.config = null;\n        _this.dpr = dpr;\n        return _this;\n    }\n    Layer.prototype.getElementCount = function () {\n        return this.__endIndex - this.__startIndex;\n    };\n    Layer.prototype.afterBrush = function () {\n        this.__prevStartIndex = this.__startIndex;\n        this.__prevEndIndex = this.__endIndex;\n    };\n    Layer.prototype.initContext = function () {\n        this.ctx = this.dom.getContext('2d');\n        this.ctx.dpr = this.dpr;\n    };\n    Layer.prototype.setUnpainted = function () {\n        this.__firstTimePaint = true;\n    };\n    Layer.prototype.createBackBuffer = function () {\n        var dpr = this.dpr;\n        this.domBack = createDom('back-' + this.id, this.painter, dpr);\n        this.ctxBack = this.domBack.getContext('2d');\n        if (dpr !== 1) {\n            this.ctxBack.scale(dpr, dpr);\n        }\n    };\n    Layer.prototype.createRepaintRects = function (displayList, prevList, viewWidth, viewHeight) {\n        if (this.__firstTimePaint) {\n            this.__firstTimePaint = false;\n            return null;\n        }\n        var mergedRepaintRects = [];\n        var maxRepaintRectCount = this.maxRepaintRectCount;\n        var full = false;\n        var pendingRect = new BoundingRect(0, 0, 0, 0);\n        function addRectToMergePool(rect) {\n            if (!rect.isFinite() || rect.isZero()) {\n                return;\n            }\n            if (mergedRepaintRects.length === 0) {\n                var boundingRect = new BoundingRect(0, 0, 0, 0);\n                boundingRect.copy(rect);\n                mergedRepaintRects.push(boundingRect);\n            }\n            else {\n                var isMerged = false;\n                var minDeltaArea = Infinity;\n                var bestRectToMergeIdx = 0;\n                for (var i = 0; i < mergedRepaintRects.length; ++i) {\n                    var mergedRect = mergedRepaintRects[i];\n                    if (mergedRect.intersect(rect)) {\n                        var pendingRect_1 = new BoundingRect(0, 0, 0, 0);\n                        pendingRect_1.copy(mergedRect);\n                        pendingRect_1.union(rect);\n                        mergedRepaintRects[i] = pendingRect_1;\n                        isMerged = true;\n                        break;\n                    }\n                    else if (full) {\n                        pendingRect.copy(rect);\n                        pendingRect.union(mergedRect);\n                        var aArea = rect.width * rect.height;\n                        var bArea = mergedRect.width * mergedRect.height;\n                        var pendingArea = pendingRect.width * pendingRect.height;\n                        var deltaArea = pendingArea - aArea - bArea;\n                        if (deltaArea < minDeltaArea) {\n                            minDeltaArea = deltaArea;\n                            bestRectToMergeIdx = i;\n                        }\n                    }\n                }\n                if (full) {\n                    mergedRepaintRects[bestRectToMergeIdx].union(rect);\n                    isMerged = true;\n                }\n                if (!isMerged) {\n                    var boundingRect = new BoundingRect(0, 0, 0, 0);\n                    boundingRect.copy(rect);\n                    mergedRepaintRects.push(boundingRect);\n                }\n                if (!full) {\n                    full = mergedRepaintRects.length >= maxRepaintRectCount;\n                }\n            }\n        }\n        for (var i = this.__startIndex; i < this.__endIndex; ++i) {\n            var el = displayList[i];\n            if (el) {\n                var shouldPaint = el.shouldBePainted(viewWidth, viewHeight, true, true);\n                var prevRect = el.__isRendered && ((el.__dirty & Element.REDARAW_BIT) || !shouldPaint)\n                    ? el.getPrevPaintRect()\n                    : null;\n                if (prevRect) {\n                    addRectToMergePool(prevRect);\n                }\n                var curRect = shouldPaint && ((el.__dirty & Element.REDARAW_BIT) || !el.__isRendered)\n                    ? el.getPaintRect()\n                    : null;\n                if (curRect) {\n                    addRectToMergePool(curRect);\n                }\n            }\n        }\n        for (var i = this.__prevStartIndex; i < this.__prevEndIndex; ++i) {\n            var el = prevList[i];\n            var shouldPaint = el.shouldBePainted(viewWidth, viewHeight, true, true);\n            if (el && (!shouldPaint || !el.__zr) && el.__isRendered) {\n                var prevRect = el.getPrevPaintRect();\n                if (prevRect) {\n                    addRectToMergePool(prevRect);\n                }\n            }\n        }\n        var hasIntersections;\n        do {\n            hasIntersections = false;\n            for (var i = 0; i < mergedRepaintRects.length;) {\n                if (mergedRepaintRects[i].isZero()) {\n                    mergedRepaintRects.splice(i, 1);\n                    continue;\n                }\n                for (var j = i + 1; j < mergedRepaintRects.length;) {\n                    if (mergedRepaintRects[i].intersect(mergedRepaintRects[j])) {\n                        hasIntersections = true;\n                        mergedRepaintRects[i].union(mergedRepaintRects[j]);\n                        mergedRepaintRects.splice(j, 1);\n                    }\n                    else {\n                        j++;\n                    }\n                }\n                i++;\n            }\n        } while (hasIntersections);\n        this._paintRects = mergedRepaintRects;\n        return mergedRepaintRects;\n    };\n    Layer.prototype.debugGetPaintRects = function () {\n        return (this._paintRects || []).slice();\n    };\n    Layer.prototype.resize = function (width, height) {\n        var dpr = this.dpr;\n        var dom = this.dom;\n        var domStyle = dom.style;\n        var domBack = this.domBack;\n        if (domStyle) {\n            domStyle.width = width + 'px';\n            domStyle.height = height + 'px';\n        }\n        dom.width = width * dpr;\n        dom.height = height * dpr;\n        if (domBack) {\n            domBack.width = width * dpr;\n            domBack.height = height * dpr;\n            if (dpr !== 1) {\n                this.ctxBack.scale(dpr, dpr);\n            }\n        }\n    };\n    Layer.prototype.clear = function (clearAll, clearColor, repaintRects) {\n        var dom = this.dom;\n        var ctx = this.ctx;\n        var width = dom.width;\n        var height = dom.height;\n        clearColor = clearColor || this.clearColor;\n        var haveMotionBLur = this.motionBlur && !clearAll;\n        var lastFrameAlpha = this.lastFrameAlpha;\n        var dpr = this.dpr;\n        var self = this;\n        if (haveMotionBLur) {\n            if (!this.domBack) {\n                this.createBackBuffer();\n            }\n            this.ctxBack.globalCompositeOperation = 'copy';\n            this.ctxBack.drawImage(dom, 0, 0, width / dpr, height / dpr);\n        }\n        var domBack = this.domBack;\n        function doClear(x, y, width, height) {\n            ctx.clearRect(x, y, width, height);\n            if (clearColor && clearColor !== 'transparent') {\n                var clearColorGradientOrPattern = void 0;\n                if (util.isGradientObject(clearColor)) {\n                    clearColorGradientOrPattern = clearColor.__canvasGradient\n                        || getCanvasGradient(ctx, clearColor, {\n                            x: 0,\n                            y: 0,\n                            width: width,\n                            height: height\n                        });\n                    clearColor.__canvasGradient = clearColorGradientOrPattern;\n                }\n                else if (util.isPatternObject(clearColor)) {\n                    clearColorGradientOrPattern = createCanvasPattern(ctx, clearColor, {\n                        dirty: function () {\n                            self.setUnpainted();\n                            self.__painter.refresh();\n                        }\n                    });\n                }\n                ctx.save();\n                ctx.fillStyle = clearColorGradientOrPattern || clearColor;\n                ctx.fillRect(x, y, width, height);\n                ctx.restore();\n            }\n            if (haveMotionBLur) {\n                ctx.save();\n                ctx.globalAlpha = lastFrameAlpha;\n                ctx.drawImage(domBack, x, y, width, height);\n                ctx.restore();\n            }\n        }\n        ;\n        if (!repaintRects || haveMotionBLur) {\n            doClear(0, 0, width, height);\n        }\n        else if (repaintRects.length) {\n            util.each(repaintRects, function (rect) {\n                doClear(rect.x * dpr, rect.y * dpr, rect.width * dpr, rect.height * dpr);\n            });\n        }\n    };\n    return Layer;\n}(Eventful));\nexport default Layer;\n","import { devicePixelRatio } from '../config';\nimport * as util from '../core/util';\nimport Layer from './Layer';\nimport requestAnimationFrame from '../animation/requestAnimationFrame';\nimport ZRImage from '../graphic/Image';\nimport env from '../core/env';\nimport { brush, brushSingle } from './graphic';\nimport Element from '../Element';\nvar HOVER_LAYER_ZLEVEL = 1e5;\nvar CANVAS_ZLEVEL = 314159;\nvar EL_AFTER_INCREMENTAL_INC = 0.01;\nvar INCREMENTAL_INC = 0.001;\nfunction parseInt10(val) {\n    return parseInt(val, 10);\n}\nfunction isLayerValid(layer) {\n    if (!layer) {\n        return false;\n    }\n    if (layer.__builtin__) {\n        return true;\n    }\n    if (typeof (layer.resize) !== 'function'\n        || typeof (layer.refresh) !== 'function') {\n        return false;\n    }\n    return true;\n}\nfunction createRoot(width, height) {\n    var domRoot = document.createElement('div');\n    domRoot.style.cssText = [\n        'position:relative',\n        'width:' + width + 'px',\n        'height:' + height + 'px',\n        'padding:0',\n        'margin:0',\n        'border-width:0'\n    ].join(';') + ';';\n    return domRoot;\n}\nvar CanvasPainter = (function () {\n    function CanvasPainter(root, storage, opts, id) {\n        this.type = 'canvas';\n        this._zlevelList = [];\n        this._prevDisplayList = [];\n        this._layers = {};\n        this._layerConfig = {};\n        this._needsManuallyCompositing = false;\n        this.type = 'canvas';\n        var singleCanvas = !root.nodeName\n            || root.nodeName.toUpperCase() === 'CANVAS';\n        this._opts = opts = util.extend({}, opts || {});\n        this.dpr = opts.devicePixelRatio || devicePixelRatio;\n        this._singleCanvas = singleCanvas;\n        this.root = root;\n        var rootStyle = root.style;\n        if (rootStyle) {\n            rootStyle.webkitTapHighlightColor = 'transparent';\n            rootStyle.webkitUserSelect = 'none';\n            rootStyle.userSelect = 'none';\n            rootStyle['-webkit-touch-callout'] = 'none';\n            root.innerHTML = '';\n        }\n        this.storage = storage;\n        var zlevelList = this._zlevelList;\n        this._prevDisplayList = [];\n        var layers = this._layers;\n        if (!singleCanvas) {\n            this._width = this._getSize(0);\n            this._height = this._getSize(1);\n            var domRoot = this._domRoot = createRoot(this._width, this._height);\n            root.appendChild(domRoot);\n        }\n        else {\n            var rootCanvas = root;\n            var width = rootCanvas.width;\n            var height = rootCanvas.height;\n            if (opts.width != null) {\n                width = opts.width;\n            }\n            if (opts.height != null) {\n                height = opts.height;\n            }\n            this.dpr = opts.devicePixelRatio || 1;\n            rootCanvas.width = width * this.dpr;\n            rootCanvas.height = height * this.dpr;\n            this._width = width;\n            this._height = height;\n            var mainLayer = new Layer(rootCanvas, this, this.dpr);\n            mainLayer.__builtin__ = true;\n            mainLayer.initContext();\n            layers[CANVAS_ZLEVEL] = mainLayer;\n            mainLayer.zlevel = CANVAS_ZLEVEL;\n            zlevelList.push(CANVAS_ZLEVEL);\n            this._domRoot = root;\n        }\n    }\n    CanvasPainter.prototype.getType = function () {\n        return 'canvas';\n    };\n    CanvasPainter.prototype.isSingleCanvas = function () {\n        return this._singleCanvas;\n    };\n    CanvasPainter.prototype.getViewportRoot = function () {\n        return this._domRoot;\n    };\n    CanvasPainter.prototype.getViewportRootOffset = function () {\n        var viewportRoot = this.getViewportRoot();\n        if (viewportRoot) {\n            return {\n                offsetLeft: viewportRoot.offsetLeft || 0,\n                offsetTop: viewportRoot.offsetTop || 0\n            };\n        }\n    };\n    CanvasPainter.prototype.refresh = function (paintAll) {\n        var list = this.storage.getDisplayList(true);\n        var prevList = this._prevDisplayList;\n        var zlevelList = this._zlevelList;\n        this._redrawId = Math.random();\n        this._paintList(list, prevList, paintAll, this._redrawId);\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            var layer = this._layers[z];\n            if (!layer.__builtin__ && layer.refresh) {\n                var clearColor = i === 0 ? this._backgroundColor : null;\n                layer.refresh(clearColor);\n            }\n        }\n        if (this._opts.useDirtyRect) {\n            this._prevDisplayList = list.slice();\n        }\n        return this;\n    };\n    CanvasPainter.prototype.refreshHover = function () {\n        this._paintHoverList(this.storage.getDisplayList(false));\n    };\n    CanvasPainter.prototype._paintHoverList = function (list) {\n        var len = list.length;\n        var hoverLayer = this._hoverlayer;\n        hoverLayer && hoverLayer.clear();\n        if (!len) {\n            return;\n        }\n        var scope = {\n            inHover: true,\n            viewWidth: this._width,\n            viewHeight: this._height\n        };\n        var ctx;\n        for (var i = 0; i < len; i++) {\n            var el = list[i];\n            if (el.__inHover) {\n                if (!hoverLayer) {\n                    hoverLayer = this._hoverlayer = this.getLayer(HOVER_LAYER_ZLEVEL);\n                }\n                if (!ctx) {\n                    ctx = hoverLayer.ctx;\n                    ctx.save();\n                }\n                brush(ctx, el, scope, i === len - 1);\n            }\n        }\n        if (ctx) {\n            ctx.restore();\n        }\n    };\n    CanvasPainter.prototype.getHoverLayer = function () {\n        return this.getLayer(HOVER_LAYER_ZLEVEL);\n    };\n    CanvasPainter.prototype.paintOne = function (ctx, el) {\n        brushSingle(ctx, el);\n    };\n    CanvasPainter.prototype._paintList = function (list, prevList, paintAll, redrawId) {\n        if (this._redrawId !== redrawId) {\n            return;\n        }\n        paintAll = paintAll || false;\n        this._updateLayerStatus(list);\n        var _a = this._doPaintList(list, prevList, paintAll), finished = _a.finished, needsRefreshHover = _a.needsRefreshHover;\n        if (this._needsManuallyCompositing) {\n            this._compositeManually();\n        }\n        if (needsRefreshHover) {\n            this._paintHoverList(list);\n        }\n        if (!finished) {\n            var self_1 = this;\n            requestAnimationFrame(function () {\n                self_1._paintList(list, prevList, paintAll, redrawId);\n            });\n        }\n        else {\n            this.eachLayer(function (layer) {\n                layer.afterBrush && layer.afterBrush();\n            });\n        }\n    };\n    CanvasPainter.prototype._compositeManually = function () {\n        var ctx = this.getLayer(CANVAS_ZLEVEL).ctx;\n        var width = this._domRoot.width;\n        var height = this._domRoot.height;\n        ctx.clearRect(0, 0, width, height);\n        this.eachBuiltinLayer(function (layer) {\n            if (layer.virtual) {\n                ctx.drawImage(layer.dom, 0, 0, width, height);\n            }\n        });\n    };\n    CanvasPainter.prototype._doPaintList = function (list, prevList, paintAll) {\n        var _this = this;\n        var layerList = [];\n        var useDirtyRect = this._opts.useDirtyRect;\n        for (var zi = 0; zi < this._zlevelList.length; zi++) {\n            var zlevel = this._zlevelList[zi];\n            var layer = this._layers[zlevel];\n            if (layer.__builtin__\n                && layer !== this._hoverlayer\n                && (layer.__dirty || paintAll)) {\n                layerList.push(layer);\n            }\n        }\n        var finished = true;\n        var needsRefreshHover = false;\n        var _loop_1 = function (k) {\n            var layer = layerList[k];\n            var ctx = layer.ctx;\n            var repaintRects = useDirtyRect\n                && layer.createRepaintRects(list, prevList, this_1._width, this_1._height);\n            ctx.save();\n            var start = paintAll ? layer.__startIndex : layer.__drawIndex;\n            var useTimer = !paintAll && layer.incremental && Date.now;\n            var startTime = useTimer && Date.now();\n            var clearColor = layer.zlevel === this_1._zlevelList[0]\n                ? this_1._backgroundColor : null;\n            if (layer.__startIndex === layer.__endIndex) {\n                layer.clear(false, clearColor, repaintRects);\n            }\n            else if (start === layer.__startIndex) {\n                var firstEl = list[start];\n                if (!firstEl.incremental || !firstEl.notClear || paintAll) {\n                    layer.clear(false, clearColor, repaintRects);\n                }\n            }\n            if (start === -1) {\n                console.error('For some unknown reason. drawIndex is -1');\n                start = layer.__startIndex;\n            }\n            var i;\n            var repaint = function (repaintRect) {\n                var scope = {\n                    inHover: false,\n                    allClipped: false,\n                    prevEl: null,\n                    viewWidth: _this._width,\n                    viewHeight: _this._height\n                };\n                for (i = start; i < layer.__endIndex; i++) {\n                    var el = list[i];\n                    if (el.__inHover) {\n                        needsRefreshHover = true;\n                    }\n                    _this._doPaintEl(el, layer, useDirtyRect, repaintRect, scope, i === layer.__endIndex - 1);\n                    if (useTimer) {\n                        var dTime = Date.now() - startTime;\n                        if (dTime > 15) {\n                            break;\n                        }\n                    }\n                }\n                if (scope.prevElClipPaths) {\n                    ctx.restore();\n                }\n            };\n            if (repaintRects) {\n                if (repaintRects.length === 0) {\n                    i = layer.__endIndex;\n                }\n                else {\n                    var dpr = this_1.dpr;\n                    for (var r = 0; r < repaintRects.length; ++r) {\n                        var rect = repaintRects[r];\n                        ctx.save();\n                        ctx.beginPath();\n                        ctx.rect(rect.x * dpr, rect.y * dpr, rect.width * dpr, rect.height * dpr);\n                        ctx.clip();\n                        repaint(rect);\n                        ctx.restore();\n                    }\n                }\n            }\n            else {\n                ctx.save();\n                repaint();\n                ctx.restore();\n            }\n            layer.__drawIndex = i;\n            if (layer.__drawIndex < layer.__endIndex) {\n                finished = false;\n            }\n        };\n        var this_1 = this;\n        for (var k = 0; k < layerList.length; k++) {\n            _loop_1(k);\n        }\n        if (env.wxa) {\n            util.each(this._layers, function (layer) {\n                if (layer && layer.ctx && layer.ctx.draw) {\n                    layer.ctx.draw();\n                }\n            });\n        }\n        return {\n            finished: finished,\n            needsRefreshHover: needsRefreshHover\n        };\n    };\n    CanvasPainter.prototype._doPaintEl = function (el, currentLayer, useDirtyRect, repaintRect, scope, isLast) {\n        var ctx = currentLayer.ctx;\n        if (useDirtyRect) {\n            var paintRect = el.getPaintRect();\n            if (!repaintRect || paintRect && paintRect.intersect(repaintRect)) {\n                brush(ctx, el, scope, isLast);\n                el.setPrevPaintRect(paintRect);\n            }\n        }\n        else {\n            brush(ctx, el, scope, isLast);\n        }\n    };\n    CanvasPainter.prototype.getLayer = function (zlevel, virtual) {\n        if (this._singleCanvas && !this._needsManuallyCompositing) {\n            zlevel = CANVAS_ZLEVEL;\n        }\n        var layer = this._layers[zlevel];\n        if (!layer) {\n            layer = new Layer('zr_' + zlevel, this, this.dpr);\n            layer.zlevel = zlevel;\n            layer.__builtin__ = true;\n            if (this._layerConfig[zlevel]) {\n                util.merge(layer, this._layerConfig[zlevel], true);\n            }\n            else if (this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC]) {\n                util.merge(layer, this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC], true);\n            }\n            if (virtual) {\n                layer.virtual = virtual;\n            }\n            this.insertLayer(zlevel, layer);\n            layer.initContext();\n        }\n        return layer;\n    };\n    CanvasPainter.prototype.insertLayer = function (zlevel, layer) {\n        var layersMap = this._layers;\n        var zlevelList = this._zlevelList;\n        var len = zlevelList.length;\n        var domRoot = this._domRoot;\n        var prevLayer = null;\n        var i = -1;\n        if (layersMap[zlevel]) {\n            util.logError('ZLevel ' + zlevel + ' has been used already');\n            return;\n        }\n        if (!isLayerValid(layer)) {\n            util.logError('Layer of zlevel ' + zlevel + ' is not valid');\n            return;\n        }\n        if (len > 0 && zlevel > zlevelList[0]) {\n            for (i = 0; i < len - 1; i++) {\n                if (zlevelList[i] < zlevel\n                    && zlevelList[i + 1] > zlevel) {\n                    break;\n                }\n            }\n            prevLayer = layersMap[zlevelList[i]];\n        }\n        zlevelList.splice(i + 1, 0, zlevel);\n        layersMap[zlevel] = layer;\n        if (!layer.virtual) {\n            if (prevLayer) {\n                var prevDom = prevLayer.dom;\n                if (prevDom.nextSibling) {\n                    domRoot.insertBefore(layer.dom, prevDom.nextSibling);\n                }\n                else {\n                    domRoot.appendChild(layer.dom);\n                }\n            }\n            else {\n                if (domRoot.firstChild) {\n                    domRoot.insertBefore(layer.dom, domRoot.firstChild);\n                }\n                else {\n                    domRoot.appendChild(layer.dom);\n                }\n            }\n        }\n        layer.__painter = this;\n    };\n    CanvasPainter.prototype.eachLayer = function (cb, context) {\n        var zlevelList = this._zlevelList;\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            cb.call(context, this._layers[z], z);\n        }\n    };\n    CanvasPainter.prototype.eachBuiltinLayer = function (cb, context) {\n        var zlevelList = this._zlevelList;\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            var layer = this._layers[z];\n            if (layer.__builtin__) {\n                cb.call(context, layer, z);\n            }\n        }\n    };\n    CanvasPainter.prototype.eachOtherLayer = function (cb, context) {\n        var zlevelList = this._zlevelList;\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            var layer = this._layers[z];\n            if (!layer.__builtin__) {\n                cb.call(context, layer, z);\n            }\n        }\n    };\n    CanvasPainter.prototype.getLayers = function () {\n        return this._layers;\n    };\n    CanvasPainter.prototype._updateLayerStatus = function (list) {\n        this.eachBuiltinLayer(function (layer, z) {\n            layer.__dirty = layer.__used = false;\n        });\n        function updatePrevLayer(idx) {\n            if (prevLayer) {\n                if (prevLayer.__endIndex !== idx) {\n                    prevLayer.__dirty = true;\n                }\n                prevLayer.__endIndex = idx;\n            }\n        }\n        if (this._singleCanvas) {\n            for (var i_1 = 1; i_1 < list.length; i_1++) {\n                var el = list[i_1];\n                if (el.zlevel !== list[i_1 - 1].zlevel || el.incremental) {\n                    this._needsManuallyCompositing = true;\n                    break;\n                }\n            }\n        }\n        var prevLayer = null;\n        var incrementalLayerCount = 0;\n        var prevZlevel;\n        var i;\n        for (i = 0; i < list.length; i++) {\n            var el = list[i];\n            var zlevel = el.zlevel;\n            var layer = void 0;\n            if (prevZlevel !== zlevel) {\n                prevZlevel = zlevel;\n                incrementalLayerCount = 0;\n            }\n            if (el.incremental) {\n                layer = this.getLayer(zlevel + INCREMENTAL_INC, this._needsManuallyCompositing);\n                layer.incremental = true;\n                incrementalLayerCount = 1;\n            }\n            else {\n                layer = this.getLayer(zlevel + (incrementalLayerCount > 0 ? EL_AFTER_INCREMENTAL_INC : 0), this._needsManuallyCompositing);\n            }\n            if (!layer.__builtin__) {\n                util.logError('ZLevel ' + zlevel + ' has been used by unkown layer ' + layer.id);\n            }\n            if (layer !== prevLayer) {\n                layer.__used = true;\n                if (layer.__startIndex !== i) {\n                    layer.__dirty = true;\n                }\n                layer.__startIndex = i;\n                if (!layer.incremental) {\n                    layer.__drawIndex = i;\n                }\n                else {\n                    layer.__drawIndex = -1;\n                }\n                updatePrevLayer(i);\n                prevLayer = layer;\n            }\n            if ((el.__dirty & Element.REDARAW_BIT) && !el.__inHover) {\n                layer.__dirty = true;\n                if (layer.incremental && layer.__drawIndex < 0) {\n                    layer.__drawIndex = i;\n                }\n            }\n        }\n        updatePrevLayer(i);\n        this.eachBuiltinLayer(function (layer, z) {\n            if (!layer.__used && layer.getElementCount() > 0) {\n                layer.__dirty = true;\n                layer.__startIndex = layer.__endIndex = layer.__drawIndex = 0;\n            }\n            if (layer.__dirty && layer.__drawIndex < 0) {\n                layer.__drawIndex = layer.__startIndex;\n            }\n        });\n    };\n    CanvasPainter.prototype.clear = function () {\n        this.eachBuiltinLayer(this._clearLayer);\n        return this;\n    };\n    CanvasPainter.prototype._clearLayer = function (layer) {\n        layer.clear();\n    };\n    CanvasPainter.prototype.setBackgroundColor = function (backgroundColor) {\n        this._backgroundColor = backgroundColor;\n        util.each(this._layers, function (layer) {\n            layer.setUnpainted();\n        });\n    };\n    CanvasPainter.prototype.configLayer = function (zlevel, config) {\n        if (config) {\n            var layerConfig = this._layerConfig;\n            if (!layerConfig[zlevel]) {\n                layerConfig[zlevel] = config;\n            }\n            else {\n                util.merge(layerConfig[zlevel], config, true);\n            }\n            for (var i = 0; i < this._zlevelList.length; i++) {\n                var _zlevel = this._zlevelList[i];\n                if (_zlevel === zlevel || _zlevel === zlevel + EL_AFTER_INCREMENTAL_INC) {\n                    var layer = this._layers[_zlevel];\n                    util.merge(layer, layerConfig[zlevel], true);\n                }\n            }\n        }\n    };\n    CanvasPainter.prototype.delLayer = function (zlevel) {\n        var layers = this._layers;\n        var zlevelList = this._zlevelList;\n        var layer = layers[zlevel];\n        if (!layer) {\n            return;\n        }\n        layer.dom.parentNode.removeChild(layer.dom);\n        delete layers[zlevel];\n        zlevelList.splice(util.indexOf(zlevelList, zlevel), 1);\n    };\n    CanvasPainter.prototype.resize = function (width, height) {\n        if (!this._domRoot.style) {\n            if (width == null || height == null) {\n                return;\n            }\n            this._width = width;\n            this._height = height;\n            this.getLayer(CANVAS_ZLEVEL).resize(width, height);\n        }\n        else {\n            var domRoot = this._domRoot;\n            domRoot.style.display = 'none';\n            var opts = this._opts;\n            width != null && (opts.width = width);\n            height != null && (opts.height = height);\n            width = this._getSize(0);\n            height = this._getSize(1);\n            domRoot.style.display = '';\n            if (this._width !== width || height !== this._height) {\n                domRoot.style.width = width + 'px';\n                domRoot.style.height = height + 'px';\n                for (var id in this._layers) {\n                    if (this._layers.hasOwnProperty(id)) {\n                        this._layers[id].resize(width, height);\n                    }\n                }\n                this.refresh(true);\n            }\n            this._width = width;\n            this._height = height;\n        }\n        return this;\n    };\n    CanvasPainter.prototype.clearLayer = function (zlevel) {\n        var layer = this._layers[zlevel];\n        if (layer) {\n            layer.clear();\n        }\n    };\n    CanvasPainter.prototype.dispose = function () {\n        this.root.innerHTML = '';\n        this.root =\n            this.storage =\n                this._domRoot =\n                    this._layers = null;\n    };\n    CanvasPainter.prototype.getRenderedCanvas = function (opts) {\n        opts = opts || {};\n        if (this._singleCanvas && !this._compositeManually) {\n            return this._layers[CANVAS_ZLEVEL].dom;\n        }\n        var imageLayer = new Layer('image', this, opts.pixelRatio || this.dpr);\n        var ctx = imageLayer.ctx;\n        imageLayer.initContext();\n        imageLayer.clear(false, opts.backgroundColor || this._backgroundColor);\n        if (opts.pixelRatio <= this.dpr) {\n            this.refresh();\n            var width_1 = imageLayer.dom.width;\n            var height_1 = imageLayer.dom.height;\n            var ctx_1 = imageLayer.ctx;\n            this.eachLayer(function (layer) {\n                if (layer.__builtin__) {\n                    ctx_1.drawImage(layer.dom, 0, 0, width_1, height_1);\n                }\n                else if (layer.renderToCanvas) {\n                    imageLayer.ctx.save();\n                    layer.renderToCanvas(imageLayer.ctx);\n                    imageLayer.ctx.restore();\n                }\n            });\n        }\n        else {\n            var scope = {\n                inHover: false,\n                viewWidth: this._width,\n                viewHeight: this._height\n            };\n            var displayList = this.storage.getDisplayList(true);\n            for (var i = 0, len = displayList.length; i < len; i++) {\n                var el = displayList[i];\n                brush(ctx, el, scope, i === len - 1);\n            }\n        }\n        return imageLayer.dom;\n    };\n    CanvasPainter.prototype.getWidth = function () {\n        return this._width;\n    };\n    CanvasPainter.prototype.getHeight = function () {\n        return this._height;\n    };\n    CanvasPainter.prototype._getSize = function (whIdx) {\n        var opts = this._opts;\n        var wh = ['width', 'height'][whIdx];\n        var cwh = ['clientWidth', 'clientHeight'][whIdx];\n        var plt = ['paddingLeft', 'paddingTop'][whIdx];\n        var prb = ['paddingRight', 'paddingBottom'][whIdx];\n        if (opts[wh] != null && opts[wh] !== 'auto') {\n            return parseFloat(opts[wh]);\n        }\n        var root = this.root;\n        var stl = document.defaultView.getComputedStyle(root);\n        return ((root[cwh] || parseInt10(stl[wh]) || parseInt10(root.style[wh]))\n            - (parseInt10(stl[plt]) || 0)\n            - (parseInt10(stl[prb]) || 0)) | 0;\n    };\n    CanvasPainter.prototype.pathToImage = function (path, dpr) {\n        dpr = dpr || this.dpr;\n        var canvas = document.createElement('canvas');\n        var ctx = canvas.getContext('2d');\n        var rect = path.getBoundingRect();\n        var style = path.style;\n        var shadowBlurSize = style.shadowBlur * dpr;\n        var shadowOffsetX = style.shadowOffsetX * dpr;\n        var shadowOffsetY = style.shadowOffsetY * dpr;\n        var lineWidth = path.hasStroke() ? style.lineWidth : 0;\n        var leftMargin = Math.max(lineWidth / 2, -shadowOffsetX + shadowBlurSize);\n        var rightMargin = Math.max(lineWidth / 2, shadowOffsetX + shadowBlurSize);\n        var topMargin = Math.max(lineWidth / 2, -shadowOffsetY + shadowBlurSize);\n        var bottomMargin = Math.max(lineWidth / 2, shadowOffsetY + shadowBlurSize);\n        var width = rect.width + leftMargin + rightMargin;\n        var height = rect.height + topMargin + bottomMargin;\n        canvas.width = width * dpr;\n        canvas.height = height * dpr;\n        ctx.scale(dpr, dpr);\n        ctx.clearRect(0, 0, width, height);\n        ctx.dpr = dpr;\n        var pathTransform = {\n            x: path.x,\n            y: path.y,\n            scaleX: path.scaleX,\n            scaleY: path.scaleY,\n            rotation: path.rotation,\n            originX: path.originX,\n            originY: path.originY\n        };\n        path.x = leftMargin - rect.x;\n        path.y = topMargin - rect.y;\n        path.rotation = 0;\n        path.scaleX = 1;\n        path.scaleY = 1;\n        path.updateTransform();\n        if (path) {\n            brush(ctx, path, {\n                inHover: false,\n                viewWidth: this._width,\n                viewHeight: this._height\n            }, true);\n        }\n        var imgShape = new ZRImage({\n            style: {\n                x: 0,\n                y: 0,\n                image: canvas\n            }\n        });\n        util.extend(path, pathTransform);\n        return imgShape;\n    };\n    return CanvasPainter;\n}());\nexport default CanvasPainter;\n;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport CanvasPainter from 'zrender/lib/canvas/Painter';\nexport function install(registers) {\n  registers.registerPainter('canvas', CanvasPainter);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListFromArray from '../helper/createListFromArray';\nimport SeriesModel from '../../model/Series';\n\nvar LineSeriesModel = function (_super) {\n  __extends(LineSeriesModel, _super);\n\n  function LineSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = LineSeriesModel.type;\n    _this.hasSymbolVisual = true;\n    _this.legendSymbol = 'line';\n    return _this;\n  }\n\n  LineSeriesModel.prototype.getInitialData = function (option) {\n    if (process.env.NODE_ENV !== 'production') {\n      var coordSys = option.coordinateSystem;\n\n      if (coordSys !== 'polar' && coordSys !== 'cartesian2d') {\n        throw new Error('Line not support coordinateSystem besides cartesian and polar');\n      }\n    }\n\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: true\n    });\n  };\n\n  LineSeriesModel.type = 'series.line';\n  LineSeriesModel.dependencies = ['grid', 'polar'];\n  LineSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 3,\n    coordinateSystem: 'cartesian2d',\n    legendHoverLink: true,\n    clip: true,\n    label: {\n      position: 'top'\n    },\n    endLabel: {\n      show: false,\n      valueAnimation: true,\n      distance: 8\n    },\n    lineStyle: {\n      width: 2,\n      type: 'solid'\n    },\n    emphasis: {\n      scale: true,\n      lineStyle: {\n        width: 'bolder'\n      }\n    },\n    step: false,\n    smooth: false,\n    smoothMonotone: null,\n    symbol: 'emptyCircle',\n    symbolSize: 4,\n    symbolRotate: null,\n    showSymbol: true,\n    showAllSymbol: 'auto',\n    connectNulls: false,\n    sampling: 'none',\n    animationEasing: 'linear',\n    progressive: 0,\n    hoverLayerThreshold: Infinity\n  };\n  return LineSeriesModel;\n}(SeriesModel);\n\nexport default LineSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { retrieveRawValue } from '../../data/helper/dataProvider';\nimport { isArray } from 'zrender/lib/core/util';\nexport function getDefaultLabel(data, dataIndex) {\n  var labelDims = data.mapDimensionsAll('defaultedLabel');\n  var len = labelDims.length;\n\n  if (len === 1) {\n    var rawVal = retrieveRawValue(data, dataIndex, labelDims[0]);\n    return rawVal != null ? rawVal + '' : null;\n  } else if (len) {\n    var vals = [];\n\n    for (var i = 0; i < labelDims.length; i++) {\n      vals.push(retrieveRawValue(data, dataIndex, labelDims[i]));\n    }\n\n    return vals.join(' ');\n  }\n}\nexport function getDefaultInterpolatedLabel(data, interpolatedValue) {\n  var labelDims = data.mapDimensionsAll('defaultedLabel');\n\n  if (!isArray(interpolatedValue)) {\n    return interpolatedValue + '';\n  }\n\n  var vals = [];\n\n  for (var i = 0; i < labelDims.length; i++) {\n    var dimInfo = data.getDimensionInfo(labelDims[i]);\n\n    if (dimInfo) {\n      vals.push(interpolatedValue[dimInfo.index]);\n    }\n  }\n\n  return vals.join(' ');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { createSymbol } from '../../util/symbol';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { enterEmphasis, leaveEmphasis, enableHoverEmphasis } from '../../util/states';\nimport { parsePercent } from '../../util/number';\nimport { getDefaultLabel } from './labelHelper';\nimport { extend } from 'zrender/lib/core/util';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport ZRImage from 'zrender/lib/graphic/Image';\n\nvar Symbol = function (_super) {\n  __extends(Symbol, _super);\n\n  function Symbol(data, idx, seriesScope, opts) {\n    var _this = _super.call(this) || this;\n\n    _this.updateData(data, idx, seriesScope, opts);\n\n    return _this;\n  }\n\n  Symbol.prototype._createSymbol = function (symbolType, data, idx, symbolSize, keepAspect) {\n    this.removeAll();\n    var symbolPath = createSymbol(symbolType, -1, -1, 2, 2, null, keepAspect);\n    symbolPath.attr({\n      z2: 100,\n      culling: true,\n      scaleX: symbolSize[0] / 2,\n      scaleY: symbolSize[1] / 2\n    });\n    symbolPath.drift = driftSymbol;\n    this._symbolType = symbolType;\n    this.add(symbolPath);\n  };\n\n  Symbol.prototype.stopSymbolAnimation = function (toLastFrame) {\n    this.childAt(0).stopAnimation(null, toLastFrame);\n  };\n\n  Symbol.prototype.getSymbolPath = function () {\n    return this.childAt(0);\n  };\n\n  Symbol.prototype.highlight = function () {\n    enterEmphasis(this.childAt(0));\n  };\n\n  Symbol.prototype.downplay = function () {\n    leaveEmphasis(this.childAt(0));\n  };\n\n  Symbol.prototype.setZ = function (zlevel, z) {\n    var symbolPath = this.childAt(0);\n    symbolPath.zlevel = zlevel;\n    symbolPath.z = z;\n  };\n\n  Symbol.prototype.setDraggable = function (draggable) {\n    var symbolPath = this.childAt(0);\n    symbolPath.draggable = draggable;\n    symbolPath.cursor = draggable ? 'move' : symbolPath.cursor;\n  };\n\n  Symbol.prototype.updateData = function (data, idx, seriesScope, opts) {\n    this.silent = false;\n    var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\n    var seriesModel = data.hostModel;\n    var symbolSize = Symbol.getSymbolSize(data, idx);\n    var isInit = symbolType !== this._symbolType;\n    var disableAnimation = opts && opts.disableAnimation;\n\n    if (isInit) {\n      var keepAspect = data.getItemVisual(idx, 'symbolKeepAspect');\n\n      this._createSymbol(symbolType, data, idx, symbolSize, keepAspect);\n    } else {\n      var symbolPath = this.childAt(0);\n      symbolPath.silent = false;\n      var target = {\n        scaleX: symbolSize[0] / 2,\n        scaleY: symbolSize[1] / 2\n      };\n      disableAnimation ? symbolPath.attr(target) : graphic.updateProps(symbolPath, target, seriesModel, idx);\n    }\n\n    this._updateCommon(data, idx, symbolSize, seriesScope, opts);\n\n    if (isInit) {\n      var symbolPath = this.childAt(0);\n\n      if (!disableAnimation) {\n        var target = {\n          scaleX: this._sizeX,\n          scaleY: this._sizeY,\n          style: {\n            opacity: symbolPath.style.opacity\n          }\n        };\n        symbolPath.scaleX = symbolPath.scaleY = 0;\n        symbolPath.style.opacity = 0;\n        graphic.initProps(symbolPath, target, seriesModel, idx);\n      }\n    }\n\n    if (disableAnimation) {\n      this.childAt(0).stopAnimation('remove');\n    }\n\n    this._seriesModel = seriesModel;\n  };\n\n  Symbol.prototype._updateCommon = function (data, idx, symbolSize, seriesScope, opts) {\n    var symbolPath = this.childAt(0);\n    var seriesModel = data.hostModel;\n    var emphasisItemStyle;\n    var blurItemStyle;\n    var selectItemStyle;\n    var focus;\n    var blurScope;\n    var symbolOffset;\n    var labelStatesModels;\n    var hoverScale;\n    var cursorStyle;\n\n    if (seriesScope) {\n      emphasisItemStyle = seriesScope.emphasisItemStyle;\n      blurItemStyle = seriesScope.blurItemStyle;\n      selectItemStyle = seriesScope.selectItemStyle;\n      focus = seriesScope.focus;\n      blurScope = seriesScope.blurScope;\n      symbolOffset = seriesScope.symbolOffset;\n      labelStatesModels = seriesScope.labelStatesModels;\n      hoverScale = seriesScope.hoverScale;\n      cursorStyle = seriesScope.cursorStyle;\n    }\n\n    if (!seriesScope || data.hasItemOption) {\n      var itemModel = seriesScope && seriesScope.itemModel ? seriesScope.itemModel : data.getItemModel(idx);\n      var emphasisModel = itemModel.getModel('emphasis');\n      emphasisItemStyle = emphasisModel.getModel('itemStyle').getItemStyle();\n      selectItemStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\n      blurItemStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\n      focus = emphasisModel.get('focus');\n      blurScope = emphasisModel.get('blurScope');\n      symbolOffset = itemModel.getShallow('symbolOffset');\n      labelStatesModels = getLabelStatesModels(itemModel);\n      hoverScale = emphasisModel.getShallow('scale');\n      cursorStyle = itemModel.getShallow('cursor');\n    }\n\n    var symbolRotate = data.getItemVisual(idx, 'symbolRotate');\n    symbolPath.attr('rotation', (symbolRotate || 0) * Math.PI / 180 || 0);\n\n    if (symbolOffset) {\n      symbolPath.x = parsePercent(symbolOffset[0], symbolSize[0]);\n      symbolPath.y = parsePercent(symbolOffset[1], symbolSize[1]);\n    }\n\n    cursorStyle && symbolPath.attr('cursor', cursorStyle);\n    var symbolStyle = data.getItemVisual(idx, 'style');\n    var visualColor = symbolStyle.fill;\n\n    if (symbolPath instanceof ZRImage) {\n      var pathStyle = symbolPath.style;\n      symbolPath.useStyle(extend({\n        image: pathStyle.image,\n        x: pathStyle.x,\n        y: pathStyle.y,\n        width: pathStyle.width,\n        height: pathStyle.height\n      }, symbolStyle));\n    } else {\n      if (symbolPath.__isEmptyBrush) {\n        symbolPath.useStyle(extend({}, symbolStyle));\n      } else {\n        symbolPath.useStyle(symbolStyle);\n      }\n\n      symbolPath.style.decal = null;\n      symbolPath.setColor(visualColor, opts && opts.symbolInnerColor);\n      symbolPath.style.strokeNoScale = true;\n    }\n\n    var liftZ = data.getItemVisual(idx, 'liftZ');\n    var z2Origin = this._z2;\n\n    if (liftZ != null) {\n      if (z2Origin == null) {\n        this._z2 = symbolPath.z2;\n        symbolPath.z2 += liftZ;\n      }\n    } else if (z2Origin != null) {\n      symbolPath.z2 = z2Origin;\n      this._z2 = null;\n    }\n\n    var useNameLabel = opts && opts.useNameLabel;\n    setLabelStyle(symbolPath, labelStatesModels, {\n      labelFetcher: seriesModel,\n      labelDataIndex: idx,\n      defaultText: getLabelDefaultText,\n      inheritColor: visualColor,\n      defaultOpacity: symbolStyle.opacity\n    });\n\n    function getLabelDefaultText(idx) {\n      return useNameLabel ? data.getName(idx) : getDefaultLabel(data, idx);\n    }\n\n    this._sizeX = symbolSize[0] / 2;\n    this._sizeY = symbolSize[1] / 2;\n    var emphasisState = symbolPath.ensureState('emphasis');\n    emphasisState.style = emphasisItemStyle;\n    symbolPath.ensureState('select').style = selectItemStyle;\n    symbolPath.ensureState('blur').style = blurItemStyle;\n\n    if (hoverScale) {\n      var scaleRatio = Math.max(1.1, 3 / this._sizeY);\n      emphasisState.scaleX = this._sizeX * scaleRatio;\n      emphasisState.scaleY = this._sizeY * scaleRatio;\n    }\n\n    this.setSymbolScale(1);\n    enableHoverEmphasis(this, focus, blurScope);\n  };\n\n  Symbol.prototype.setSymbolScale = function (scale) {\n    this.scaleX = this.scaleY = scale;\n  };\n\n  Symbol.prototype.fadeOut = function (cb, opt) {\n    var symbolPath = this.childAt(0);\n    var seriesModel = this._seriesModel;\n    var dataIndex = getECData(this).dataIndex;\n    var animationOpt = opt && opt.animation;\n    this.silent = symbolPath.silent = true;\n\n    if (opt && opt.fadeLabel) {\n      var textContent = symbolPath.getTextContent();\n\n      if (textContent) {\n        graphic.removeElement(textContent, {\n          style: {\n            opacity: 0\n          }\n        }, seriesModel, {\n          dataIndex: dataIndex,\n          removeOpt: animationOpt,\n          cb: function () {\n            symbolPath.removeTextContent();\n          }\n        });\n      }\n    } else {\n      symbolPath.removeTextContent();\n    }\n\n    graphic.removeElement(symbolPath, {\n      style: {\n        opacity: 0\n      },\n      scaleX: 0,\n      scaleY: 0\n    }, seriesModel, {\n      dataIndex: dataIndex,\n      cb: cb,\n      removeOpt: animationOpt\n    });\n  };\n\n  Symbol.getSymbolSize = function (data, idx) {\n    var symbolSize = data.getItemVisual(idx, 'symbolSize');\n    return symbolSize instanceof Array ? symbolSize.slice() : [+symbolSize, +symbolSize];\n  };\n\n  return Symbol;\n}(graphic.Group);\n\nfunction driftSymbol(dx, dy) {\n  this.parent.drift(dx, dy);\n}\n\nexport default Symbol;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as graphic from '../../util/graphic';\nimport SymbolClz from './Symbol';\nimport { isObject } from 'zrender/lib/core/util';\nimport { getLabelStatesModels } from '../../label/labelStyle';\n\nfunction symbolNeedsDraw(data, point, idx, opt) {\n  return point && !isNaN(point[0]) && !isNaN(point[1]) && !(opt.isIgnore && opt.isIgnore(idx)) && !(opt.clipShape && !opt.clipShape.contain(point[0], point[1])) && data.getItemVisual(idx, 'symbol') !== 'none';\n}\n\nfunction normalizeUpdateOpt(opt) {\n  if (opt != null && !isObject(opt)) {\n    opt = {\n      isIgnore: opt\n    };\n  }\n\n  return opt || {};\n}\n\nfunction makeSeriesScope(data) {\n  var seriesModel = data.hostModel;\n  var emphasisModel = seriesModel.getModel('emphasis');\n  return {\n    emphasisItemStyle: emphasisModel.getModel('itemStyle').getItemStyle(),\n    blurItemStyle: seriesModel.getModel(['blur', 'itemStyle']).getItemStyle(),\n    selectItemStyle: seriesModel.getModel(['select', 'itemStyle']).getItemStyle(),\n    focus: emphasisModel.get('focus'),\n    blurScope: emphasisModel.get('blurScope'),\n    symbolRotate: seriesModel.get('symbolRotate'),\n    symbolOffset: seriesModel.get('symbolOffset'),\n    hoverScale: emphasisModel.get('scale'),\n    labelStatesModels: getLabelStatesModels(seriesModel),\n    cursorStyle: seriesModel.get('cursor')\n  };\n}\n\nvar SymbolDraw = function () {\n  function SymbolDraw(SymbolCtor) {\n    this.group = new graphic.Group();\n    this._SymbolCtor = SymbolCtor || SymbolClz;\n  }\n\n  SymbolDraw.prototype.updateData = function (data, opt) {\n    opt = normalizeUpdateOpt(opt);\n    var group = this.group;\n    var seriesModel = data.hostModel;\n    var oldData = this._data;\n    var SymbolCtor = this._SymbolCtor;\n    var disableAnimation = opt.disableAnimation;\n    var seriesScope = makeSeriesScope(data);\n    var symbolUpdateOpt = {\n      disableAnimation: disableAnimation\n    };\n\n    var getSymbolPoint = opt.getSymbolPoint || function (idx) {\n      return data.getItemLayout(idx);\n    };\n\n    if (!oldData) {\n      group.removeAll();\n    }\n\n    data.diff(oldData).add(function (newIdx) {\n      var point = getSymbolPoint(newIdx);\n\n      if (symbolNeedsDraw(data, point, newIdx, opt)) {\n        var symbolEl = new SymbolCtor(data, newIdx, seriesScope, symbolUpdateOpt);\n        symbolEl.setPosition(point);\n        data.setItemGraphicEl(newIdx, symbolEl);\n        group.add(symbolEl);\n      }\n    }).update(function (newIdx, oldIdx) {\n      var symbolEl = oldData.getItemGraphicEl(oldIdx);\n      var point = getSymbolPoint(newIdx);\n\n      if (!symbolNeedsDraw(data, point, newIdx, opt)) {\n        group.remove(symbolEl);\n        return;\n      }\n\n      if (!symbolEl) {\n        symbolEl = new SymbolCtor(data, newIdx);\n        symbolEl.setPosition(point);\n      } else {\n        symbolEl.updateData(data, newIdx, seriesScope, symbolUpdateOpt);\n        var target = {\n          x: point[0],\n          y: point[1]\n        };\n        disableAnimation ? symbolEl.attr(target) : graphic.updateProps(symbolEl, target, seriesModel);\n      }\n\n      group.add(symbolEl);\n      data.setItemGraphicEl(newIdx, symbolEl);\n    }).remove(function (oldIdx) {\n      var el = oldData.getItemGraphicEl(oldIdx);\n      el && el.fadeOut(function () {\n        group.remove(el);\n      });\n    }).execute();\n    this._getSymbolPoint = getSymbolPoint;\n    this._data = data;\n  };\n\n  ;\n\n  SymbolDraw.prototype.isPersistent = function () {\n    return true;\n  };\n\n  ;\n\n  SymbolDraw.prototype.updateLayout = function () {\n    var _this = this;\n\n    var data = this._data;\n\n    if (data) {\n      data.eachItemGraphicEl(function (el, idx) {\n        var point = _this._getSymbolPoint(idx);\n\n        el.setPosition(point);\n        el.markRedraw();\n      });\n    }\n  };\n\n  ;\n\n  SymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\n    this._seriesScope = makeSeriesScope(data);\n    this._data = null;\n    this.group.removeAll();\n  };\n\n  ;\n\n  SymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\n    opt = normalizeUpdateOpt(opt);\n\n    function updateIncrementalAndHover(el) {\n      if (!el.isGroup) {\n        el.incremental = true;\n        el.ensureState('emphasis').hoverLayer = true;\n      }\n    }\n\n    for (var idx = taskParams.start; idx < taskParams.end; idx++) {\n      var point = data.getItemLayout(idx);\n\n      if (symbolNeedsDraw(data, point, idx, opt)) {\n        var el = new this._SymbolCtor(data, idx, this._seriesScope);\n        el.traverse(updateIncrementalAndHover);\n        el.setPosition(point);\n        this.group.add(el);\n        data.setItemGraphicEl(idx, el);\n      }\n    }\n  };\n\n  ;\n\n  SymbolDraw.prototype.remove = function (enableAnimation) {\n    var group = this.group;\n    var data = this._data;\n\n    if (data && enableAnimation) {\n      data.eachItemGraphicEl(function (el) {\n        el.fadeOut(function () {\n          group.remove(el);\n        });\n      });\n    } else {\n      group.removeAll();\n    }\n  };\n\n  ;\n  return SymbolDraw;\n}();\n\nexport default SymbolDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isDimensionStacked } from '../../data/helper/dataStackHelper';\nimport { map } from 'zrender/lib/core/util';\nexport function prepareDataCoordInfo(coordSys, data, valueOrigin) {\n  var baseAxis = coordSys.getBaseAxis();\n  var valueAxis = coordSys.getOtherAxis(baseAxis);\n  var valueStart = getValueStart(valueAxis, valueOrigin);\n  var baseAxisDim = baseAxis.dim;\n  var valueAxisDim = valueAxis.dim;\n  var valueDim = data.mapDimension(valueAxisDim);\n  var baseDim = data.mapDimension(baseAxisDim);\n  var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\n  var dims = map(coordSys.dimensions, function (coordDim) {\n    return data.mapDimension(coordDim);\n  });\n  var stacked = false;\n  var stackResultDim = data.getCalculationInfo('stackResultDimension');\n\n  if (isDimensionStacked(data, dims[0])) {\n    stacked = true;\n    dims[0] = stackResultDim;\n  }\n\n  if (isDimensionStacked(data, dims[1])) {\n    stacked = true;\n    dims[1] = stackResultDim;\n  }\n\n  return {\n    dataDimsForPoint: dims,\n    valueStart: valueStart,\n    valueAxisDim: valueAxisDim,\n    baseAxisDim: baseAxisDim,\n    stacked: !!stacked,\n    valueDim: valueDim,\n    baseDim: baseDim,\n    baseDataOffset: baseDataOffset,\n    stackedOverDimension: data.getCalculationInfo('stackedOverDimension')\n  };\n}\n\nfunction getValueStart(valueAxis, valueOrigin) {\n  var valueStart = 0;\n  var extent = valueAxis.scale.getExtent();\n\n  if (valueOrigin === 'start') {\n    valueStart = extent[0];\n  } else if (valueOrigin === 'end') {\n    valueStart = extent[1];\n  } else {\n    if (extent[0] > 0) {\n      valueStart = extent[0];\n    } else if (extent[1] < 0) {\n      valueStart = extent[1];\n    }\n  }\n\n  return valueStart;\n}\n\nexport function getStackedOnPoint(dataCoordInfo, coordSys, data, idx) {\n  var value = NaN;\n\n  if (dataCoordInfo.stacked) {\n    value = data.get(data.getCalculationInfo('stackedOverDimension'), idx);\n  }\n\n  if (isNaN(value)) {\n    value = dataCoordInfo.valueStart;\n  }\n\n  var baseDataOffset = dataCoordInfo.baseDataOffset;\n  var stackedData = [];\n  stackedData[baseDataOffset] = data.get(dataCoordInfo.baseDim, idx);\n  stackedData[1 - baseDataOffset] = value;\n  return coordSys.dataToPoint(stackedData);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isArray } from 'zrender/lib/core/util';\nvar supportFloat32Array = typeof Float32Array !== 'undefined';\nvar Float32ArrayCtor = !supportFloat32Array ? Array : Float32Array;\nexport function createFloat32Array(arg) {\n  if (isArray(arg)) {\n    return supportFloat32Array ? new Float32Array(arg) : arg;\n  }\n\n  return new Float32ArrayCtor(arg);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { prepareDataCoordInfo, getStackedOnPoint } from './helper';\nimport { createFloat32Array } from '../../util/vendor';\n\nfunction diffData(oldData, newData) {\n  var diffResult = [];\n  newData.diff(oldData).add(function (idx) {\n    diffResult.push({\n      cmd: '+',\n      idx: idx\n    });\n  }).update(function (newIdx, oldIdx) {\n    diffResult.push({\n      cmd: '=',\n      idx: oldIdx,\n      idx1: newIdx\n    });\n  }).remove(function (idx) {\n    diffResult.push({\n      cmd: '-',\n      idx: idx\n    });\n  }).execute();\n  return diffResult;\n}\n\nexport default function lineAnimationDiff(oldData, newData, oldStackedOnPoints, newStackedOnPoints, oldCoordSys, newCoordSys, oldValueOrigin, newValueOrigin) {\n  var diff = diffData(oldData, newData);\n  var currPoints = [];\n  var nextPoints = [];\n  var currStackedPoints = [];\n  var nextStackedPoints = [];\n  var status = [];\n  var sortedIndices = [];\n  var rawIndices = [];\n  var newDataOldCoordInfo = prepareDataCoordInfo(oldCoordSys, newData, oldValueOrigin);\n  var oldDataNewCoordInfo = prepareDataCoordInfo(newCoordSys, oldData, newValueOrigin);\n  var oldPoints = oldData.getLayout('points') || [];\n  var newPoints = newData.getLayout('points') || [];\n\n  for (var i = 0; i < diff.length; i++) {\n    var diffItem = diff[i];\n    var pointAdded = true;\n    var oldIdx2 = void 0;\n    var newIdx2 = void 0;\n\n    switch (diffItem.cmd) {\n      case '=':\n        oldIdx2 = diffItem.idx * 2;\n        newIdx2 = diffItem.idx1 * 2;\n        var currentX = oldPoints[oldIdx2];\n        var currentY = oldPoints[oldIdx2 + 1];\n        var nextX = newPoints[newIdx2];\n        var nextY = newPoints[newIdx2 + 1];\n\n        if (isNaN(currentX) || isNaN(currentY)) {\n          currentX = nextX;\n          currentY = nextY;\n        }\n\n        currPoints.push(currentX, currentY);\n        nextPoints.push(nextX, nextY);\n        currStackedPoints.push(oldStackedOnPoints[oldIdx2], oldStackedOnPoints[oldIdx2 + 1]);\n        nextStackedPoints.push(newStackedOnPoints[newIdx2], newStackedOnPoints[newIdx2 + 1]);\n        rawIndices.push(newData.getRawIndex(diffItem.idx1));\n        break;\n\n      case '+':\n        var newIdx = diffItem.idx;\n        var newDataDimsForPoint = newDataOldCoordInfo.dataDimsForPoint;\n        var oldPt = oldCoordSys.dataToPoint([newData.get(newDataDimsForPoint[0], newIdx), newData.get(newDataDimsForPoint[1], newIdx)]);\n        newIdx2 = newIdx * 2;\n        currPoints.push(oldPt[0], oldPt[1]);\n        nextPoints.push(newPoints[newIdx2], newPoints[newIdx2 + 1]);\n        var stackedOnPoint = getStackedOnPoint(newDataOldCoordInfo, oldCoordSys, newData, newIdx);\n        currStackedPoints.push(stackedOnPoint[0], stackedOnPoint[1]);\n        nextStackedPoints.push(newStackedOnPoints[newIdx2], newStackedOnPoints[newIdx2 + 1]);\n        rawIndices.push(newData.getRawIndex(newIdx));\n        break;\n\n      case '-':\n        var oldIdx = diffItem.idx;\n        var rawIndex = oldData.getRawIndex(oldIdx);\n        var oldDataDimsForPoint = oldDataNewCoordInfo.dataDimsForPoint;\n        oldIdx2 = oldIdx * 2;\n\n        if (rawIndex !== oldIdx) {\n          var newPt = newCoordSys.dataToPoint([oldData.get(oldDataDimsForPoint[0], oldIdx), oldData.get(oldDataDimsForPoint[1], oldIdx)]);\n          var newStackedOnPt = getStackedOnPoint(oldDataNewCoordInfo, newCoordSys, oldData, oldIdx);\n          currPoints.push(oldPoints[oldIdx2], oldPoints[oldIdx2 + 1]);\n          nextPoints.push(newPt[0], newPt[1]);\n          currStackedPoints.push(oldStackedOnPoints[oldIdx2], oldStackedOnPoints[oldIdx2 + 1]);\n          nextStackedPoints.push(newStackedOnPt[0], newStackedOnPt[1]);\n          rawIndices.push(rawIndex);\n        } else {\n          pointAdded = false;\n        }\n\n    }\n\n    if (pointAdded) {\n      status.push(diffItem);\n      sortedIndices.push(sortedIndices.length);\n    }\n  }\n\n  sortedIndices.sort(function (a, b) {\n    return rawIndices[a] - rawIndices[b];\n  });\n  var len = currPoints.length;\n  var sortedCurrPoints = createFloat32Array(len);\n  var sortedNextPoints = createFloat32Array(len);\n  var sortedCurrStackedPoints = createFloat32Array(len);\n  var sortedNextStackedPoints = createFloat32Array(len);\n  var sortedStatus = [];\n\n  for (var i = 0; i < sortedIndices.length; i++) {\n    var idx = sortedIndices[i];\n    var i2 = i * 2;\n    var idx2 = idx * 2;\n    sortedCurrPoints[i2] = currPoints[idx2];\n    sortedCurrPoints[i2 + 1] = currPoints[idx2 + 1];\n    sortedNextPoints[i2] = nextPoints[idx2];\n    sortedNextPoints[i2 + 1] = nextPoints[idx2 + 1];\n    sortedCurrStackedPoints[i2] = currStackedPoints[idx2];\n    sortedCurrStackedPoints[i2 + 1] = currStackedPoints[idx2 + 1];\n    sortedNextStackedPoints[i2] = nextStackedPoints[idx2];\n    sortedNextStackedPoints[i2 + 1] = nextStackedPoints[idx2 + 1];\n    sortedStatus[i] = status[idx];\n  }\n\n  return {\n    current: sortedCurrPoints,\n    next: sortedNextPoints,\n    stackedOnCurrent: sortedCurrStackedPoints,\n    stackedOnNext: sortedNextStackedPoints,\n    status: sortedStatus\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Path from 'zrender/lib/graphic/Path';\nimport PathProxy from 'zrender/lib/core/PathProxy';\nimport { cubicRootAt, cubicAt } from 'zrender/lib/core/curve';\nvar mathMin = Math.min;\nvar mathMax = Math.max;\n\nfunction isPointNull(x, y) {\n  return isNaN(x) || isNaN(y);\n}\n\nfunction drawSegment(ctx, points, start, segLen, allLen, dir, smooth, smoothMonotone, connectNulls) {\n  var prevX;\n  var prevY;\n  var cpx0;\n  var cpy0;\n  var cpx1;\n  var cpy1;\n  var idx = start;\n  var k = 0;\n\n  for (; k < segLen; k++) {\n    var x = points[idx * 2];\n    var y = points[idx * 2 + 1];\n\n    if (idx >= allLen || idx < 0) {\n      break;\n    }\n\n    if (isPointNull(x, y)) {\n      if (connectNulls) {\n        idx += dir;\n        continue;\n      }\n\n      break;\n    }\n\n    if (idx === start) {\n      ctx[dir > 0 ? 'moveTo' : 'lineTo'](x, y);\n      cpx0 = x;\n      cpy0 = y;\n    } else {\n      var dx = x - prevX;\n      var dy = y - prevY;\n\n      if (dx * dx + dy * dy < 0.5) {\n        idx += dir;\n        continue;\n      }\n\n      if (smooth > 0) {\n        var nextIdx = idx + dir;\n        var nextX = points[nextIdx * 2];\n        var nextY = points[nextIdx * 2 + 1];\n        var tmpK = k + 1;\n\n        if (connectNulls) {\n          while (isPointNull(nextX, nextY) && tmpK < segLen) {\n            tmpK++;\n            nextIdx += dir;\n            nextX = points[nextIdx * 2];\n            nextY = points[nextIdx * 2 + 1];\n          }\n        }\n\n        var ratioNextSeg = 0.5;\n        var vx = 0;\n        var vy = 0;\n        var nextCpx0 = void 0;\n        var nextCpy0 = void 0;\n\n        if (tmpK >= segLen || isPointNull(nextX, nextY)) {\n          cpx1 = x;\n          cpy1 = y;\n        } else {\n          vx = nextX - prevX;\n          vy = nextY - prevY;\n          var dx0 = x - prevX;\n          var dx1 = nextX - x;\n          var dy0 = y - prevY;\n          var dy1 = nextY - y;\n          var lenPrevSeg = void 0;\n          var lenNextSeg = void 0;\n\n          if (smoothMonotone === 'x') {\n            lenPrevSeg = Math.abs(dx0);\n            lenNextSeg = Math.abs(dx1);\n            cpx1 = x - lenPrevSeg * smooth;\n            cpy1 = y;\n            nextCpx0 = x + lenPrevSeg * smooth;\n            nextCpy0 = y;\n          } else if (smoothMonotone === 'y') {\n            lenPrevSeg = Math.abs(dy0);\n            lenNextSeg = Math.abs(dy1);\n            cpx1 = x;\n            cpy1 = y - lenPrevSeg * smooth;\n            nextCpx0 = x;\n            nextCpy0 = y + lenPrevSeg * smooth;\n          } else {\n            lenPrevSeg = Math.sqrt(dx0 * dx0 + dy0 * dy0);\n            lenNextSeg = Math.sqrt(dx1 * dx1 + dy1 * dy1);\n            ratioNextSeg = lenNextSeg / (lenNextSeg + lenPrevSeg);\n            cpx1 = x - vx * smooth * (1 - ratioNextSeg);\n            cpy1 = y - vy * smooth * (1 - ratioNextSeg);\n            nextCpx0 = x + vx * smooth * ratioNextSeg;\n            nextCpy0 = y + vy * smooth * ratioNextSeg;\n            nextCpx0 = mathMin(nextCpx0, mathMax(nextX, x));\n            nextCpy0 = mathMin(nextCpy0, mathMax(nextY, y));\n            nextCpx0 = mathMax(nextCpx0, mathMin(nextX, x));\n            nextCpy0 = mathMax(nextCpy0, mathMin(nextY, y));\n            vx = nextCpx0 - x;\n            vy = nextCpy0 - y;\n            cpx1 = x - vx * lenPrevSeg / lenNextSeg;\n            cpy1 = y - vy * lenPrevSeg / lenNextSeg;\n            cpx1 = mathMin(cpx1, mathMax(prevX, x));\n            cpy1 = mathMin(cpy1, mathMax(prevY, y));\n            cpx1 = mathMax(cpx1, mathMin(prevX, x));\n            cpy1 = mathMax(cpy1, mathMin(prevY, y));\n            vx = x - cpx1;\n            vy = y - cpy1;\n            nextCpx0 = x + vx * lenNextSeg / lenPrevSeg;\n            nextCpy0 = y + vy * lenNextSeg / lenPrevSeg;\n          }\n        }\n\n        ctx.bezierCurveTo(cpx0, cpy0, cpx1, cpy1, x, y);\n        cpx0 = nextCpx0;\n        cpy0 = nextCpy0;\n      } else {\n        ctx.lineTo(x, y);\n      }\n    }\n\n    prevX = x;\n    prevY = y;\n    idx += dir;\n  }\n\n  return k;\n}\n\nvar ECPolylineShape = function () {\n  function ECPolylineShape() {\n    this.smooth = 0;\n    this.smoothConstraint = true;\n  }\n\n  return ECPolylineShape;\n}();\n\nvar ECPolyline = function (_super) {\n  __extends(ECPolyline, _super);\n\n  function ECPolyline(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'ec-polyline';\n    return _this;\n  }\n\n  ECPolyline.prototype.getDefaultStyle = function () {\n    return {\n      stroke: '#000',\n      fill: null\n    };\n  };\n\n  ECPolyline.prototype.getDefaultShape = function () {\n    return new ECPolylineShape();\n  };\n\n  ECPolyline.prototype.buildPath = function (ctx, shape) {\n    var points = shape.points;\n    var i = 0;\n    var len = points.length / 2;\n\n    if (shape.connectNulls) {\n      for (; len > 0; len--) {\n        if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n          break;\n        }\n      }\n\n      for (; i < len; i++) {\n        if (!isPointNull(points[i * 2], points[i * 2 + 1])) {\n          break;\n        }\n      }\n    }\n\n    while (i < len) {\n      i += drawSegment(ctx, points, i, len, len, 1, shape.smooth, shape.smoothMonotone, shape.connectNulls) + 1;\n    }\n  };\n\n  ECPolyline.prototype.getPointOn = function (xOrY, dim) {\n    if (!this.path) {\n      this.createPathProxy();\n      this.buildPath(this.path, this.shape);\n    }\n\n    var path = this.path;\n    var data = path.data;\n    var CMD = PathProxy.CMD;\n    var x0;\n    var y0;\n    var isDimX = dim === 'x';\n    var roots = [];\n\n    for (var i = 0; i < data.length;) {\n      var cmd = data[i++];\n      var x = void 0;\n      var y = void 0;\n      var x2 = void 0;\n      var y2 = void 0;\n      var x3 = void 0;\n      var y3 = void 0;\n      var t = void 0;\n\n      switch (cmd) {\n        case CMD.M:\n          x0 = data[i++];\n          y0 = data[i++];\n          break;\n\n        case CMD.L:\n          x = data[i++];\n          y = data[i++];\n          t = isDimX ? (xOrY - x0) / (x - x0) : (xOrY - y0) / (y - y0);\n\n          if (t <= 1 && t >= 0) {\n            var val = isDimX ? (y - y0) * t + y0 : (x - x0) * t + x0;\n            return isDimX ? [xOrY, val] : [val, xOrY];\n          }\n\n          x0 = x;\n          y0 = y;\n          break;\n\n        case CMD.C:\n          x = data[i++];\n          y = data[i++];\n          x2 = data[i++];\n          y2 = data[i++];\n          x3 = data[i++];\n          y3 = data[i++];\n          var nRoot = isDimX ? cubicRootAt(x0, x, x2, x3, xOrY, roots) : cubicRootAt(y0, y, y2, y3, xOrY, roots);\n\n          if (nRoot > 0) {\n            for (var i_1 = 0; i_1 < nRoot; i_1++) {\n              var t_1 = roots[i_1];\n\n              if (t_1 <= 1 && t_1 >= 0) {\n                var val = isDimX ? cubicAt(y0, y, y2, y3, t_1) : cubicAt(x0, x, x2, x3, t_1);\n                return isDimX ? [xOrY, val] : [val, xOrY];\n              }\n            }\n          }\n\n          x0 = x3;\n          y0 = y3;\n          break;\n      }\n    }\n  };\n\n  return ECPolyline;\n}(Path);\n\nexport { ECPolyline };\n\nvar ECPolygonShape = function (_super) {\n  __extends(ECPolygonShape, _super);\n\n  function ECPolygonShape() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  return ECPolygonShape;\n}(ECPolylineShape);\n\nvar ECPolygon = function (_super) {\n  __extends(ECPolygon, _super);\n\n  function ECPolygon(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'ec-polygon';\n    return _this;\n  }\n\n  ECPolygon.prototype.getDefaultShape = function () {\n    return new ECPolygonShape();\n  };\n\n  ECPolygon.prototype.buildPath = function (ctx, shape) {\n    var points = shape.points;\n    var stackedOnPoints = shape.stackedOnPoints;\n    var i = 0;\n    var len = points.length / 2;\n    var smoothMonotone = shape.smoothMonotone;\n\n    if (shape.connectNulls) {\n      for (; len > 0; len--) {\n        if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n          break;\n        }\n      }\n\n      for (; i < len; i++) {\n        if (!isPointNull(points[i * 2], points[i * 2 + 1])) {\n          break;\n        }\n      }\n    }\n\n    while (i < len) {\n      var k = drawSegment(ctx, points, i, len, len, 1, shape.smooth, smoothMonotone, shape.connectNulls);\n      drawSegment(ctx, stackedOnPoints, i + k - 1, k, len, -1, shape.stackedOnSmooth, smoothMonotone, shape.connectNulls);\n      i += k + 1;\n      ctx.closePath();\n    }\n  };\n\n  return ECPolygon;\n}(Path);\n\nexport { ECPolygon };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as graphic from '../../util/graphic';\nimport { round } from '../../util/number';\n\nfunction createGridClipPath(cartesian, hasAnimation, seriesModel, done, during) {\n  var rect = cartesian.getArea();\n  var x = rect.x;\n  var y = rect.y;\n  var width = rect.width;\n  var height = rect.height;\n  var lineWidth = seriesModel.get(['lineStyle', 'width']) || 2;\n  x -= lineWidth / 2;\n  y -= lineWidth / 2;\n  width += lineWidth;\n  height += lineWidth;\n  x = Math.floor(x);\n  width = Math.round(width);\n  var clipPath = new graphic.Rect({\n    shape: {\n      x: x,\n      y: y,\n      width: width,\n      height: height\n    }\n  });\n\n  if (hasAnimation) {\n    var baseAxis = cartesian.getBaseAxis();\n    var isHorizontal = baseAxis.isHorizontal();\n    var isAxisInversed = baseAxis.inverse;\n\n    if (isHorizontal) {\n      if (isAxisInversed) {\n        clipPath.shape.x += width;\n      }\n\n      clipPath.shape.width = 0;\n    } else {\n      if (!isAxisInversed) {\n        clipPath.shape.y += height;\n      }\n\n      clipPath.shape.height = 0;\n    }\n\n    var duringCb = typeof during === 'function' ? function (percent) {\n      during(percent, clipPath);\n    } : null;\n    graphic.initProps(clipPath, {\n      shape: {\n        width: width,\n        height: height,\n        x: x,\n        y: y\n      }\n    }, seriesModel, null, done, duringCb);\n  }\n\n  return clipPath;\n}\n\nfunction createPolarClipPath(polar, hasAnimation, seriesModel) {\n  var sectorArea = polar.getArea();\n  var r0 = round(sectorArea.r0, 1);\n  var r = round(sectorArea.r, 1);\n  var clipPath = new graphic.Sector({\n    shape: {\n      cx: round(polar.cx, 1),\n      cy: round(polar.cy, 1),\n      r0: r0,\n      r: r,\n      startAngle: sectorArea.startAngle,\n      endAngle: sectorArea.endAngle,\n      clockwise: sectorArea.clockwise\n    }\n  });\n\n  if (hasAnimation) {\n    var isRadial = polar.getBaseAxis().dim === 'angle';\n\n    if (isRadial) {\n      clipPath.shape.endAngle = sectorArea.startAngle;\n    } else {\n      clipPath.shape.r = r0;\n    }\n\n    graphic.initProps(clipPath, {\n      shape: {\n        endAngle: sectorArea.endAngle,\n        r: r\n      }\n    }, seriesModel);\n  }\n\n  return clipPath;\n}\n\nfunction createClipPath(coordSys, hasAnimation, seriesModel, done, during) {\n  if (!coordSys) {\n    return null;\n  } else if (coordSys.type === 'polar') {\n    return createPolarClipPath(coordSys, hasAnimation, seriesModel);\n  } else if (coordSys.type === 'cartesian2d') {\n    return createGridClipPath(coordSys, hasAnimation, seriesModel, done, during);\n  }\n\n  return null;\n}\n\nexport { createGridClipPath, createPolarClipPath, createClipPath };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function isCoordinateSystemType(coordSys, type) {\n  return coordSys.type === type;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport SymbolDraw from '../helper/SymbolDraw';\nimport SymbolClz from '../helper/Symbol';\nimport lineAnimationDiff from './lineAnimationDiff';\nimport * as graphic from '../../util/graphic';\nimport * as modelUtil from '../../util/model';\nimport { ECPolyline, ECPolygon } from './poly';\nimport ChartView from '../../view/Chart';\nimport { prepareDataCoordInfo, getStackedOnPoint } from './helper';\nimport { createGridClipPath, createPolarClipPath } from '../helper/createClipPathFromCoordSys';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport { setStatesStylesFromModel, setStatesFlag, enableHoverEmphasis } from '../../util/states';\nimport { setLabelStyle, getLabelStatesModels, labelInner } from '../../label/labelStyle';\nimport { getDefaultLabel, getDefaultInterpolatedLabel } from '../helper/labelHelper';\nimport { getECData } from '../../util/innerStore';\nimport { createFloat32Array } from '../../util/vendor';\n\nfunction isPointsSame(points1, points2) {\n  if (points1.length !== points2.length) {\n    return;\n  }\n\n  for (var i = 0; i < points1.length; i++) {\n    if (points1[i] !== points2[i]) {\n      return;\n    }\n  }\n\n  return true;\n}\n\nfunction bboxFromPoints(points) {\n  var minX = Infinity;\n  var minY = Infinity;\n  var maxX = -Infinity;\n  var maxY = -Infinity;\n\n  for (var i = 0; i < points.length;) {\n    var x = points[i++];\n    var y = points[i++];\n\n    if (!isNaN(x)) {\n      minX = Math.min(x, minX);\n      maxX = Math.max(x, maxX);\n    }\n\n    if (!isNaN(y)) {\n      minY = Math.min(y, minY);\n      maxY = Math.max(y, maxY);\n    }\n  }\n\n  return [[minX, minY], [maxX, maxY]];\n}\n\nfunction getBoundingDiff(points1, points2) {\n  var _a = bboxFromPoints(points1),\n      min1 = _a[0],\n      max1 = _a[1];\n\n  var _b = bboxFromPoints(points2),\n      min2 = _b[0],\n      max2 = _b[1];\n\n  return Math.max(Math.abs(min1[0] - min2[0]), Math.abs(min1[1] - min2[1]), Math.abs(max1[0] - max2[0]), Math.abs(max1[1] - max2[1]));\n}\n\nfunction getSmooth(smooth) {\n  return typeof smooth === 'number' ? smooth : smooth ? 0.5 : 0;\n}\n\nfunction getStackedOnPoints(coordSys, data, dataCoordInfo) {\n  if (!dataCoordInfo.valueDim) {\n    return [];\n  }\n\n  var len = data.count();\n  var points = createFloat32Array(len * 2);\n\n  for (var idx = 0; idx < len; idx++) {\n    var pt = getStackedOnPoint(dataCoordInfo, coordSys, data, idx);\n    points[idx * 2] = pt[0];\n    points[idx * 2 + 1] = pt[1];\n  }\n\n  return points;\n}\n\nfunction turnPointsIntoStep(points, coordSys, stepTurnAt) {\n  var baseAxis = coordSys.getBaseAxis();\n  var baseIndex = baseAxis.dim === 'x' || baseAxis.dim === 'radius' ? 0 : 1;\n  var stepPoints = [];\n  var i = 0;\n  var stepPt = [];\n  var pt = [];\n  var nextPt = [];\n\n  for (; i < points.length - 2; i += 2) {\n    nextPt[0] = points[i + 2];\n    nextPt[1] = points[i + 3];\n    pt[0] = points[i];\n    pt[1] = points[i + 1];\n    stepPoints.push(pt[0], pt[1]);\n\n    switch (stepTurnAt) {\n      case 'end':\n        stepPt[baseIndex] = nextPt[baseIndex];\n        stepPt[1 - baseIndex] = pt[1 - baseIndex];\n        stepPoints.push(stepPt[0], stepPt[1]);\n        break;\n\n      case 'middle':\n        var middle = (pt[baseIndex] + nextPt[baseIndex]) / 2;\n        var stepPt2 = [];\n        stepPt[baseIndex] = stepPt2[baseIndex] = middle;\n        stepPt[1 - baseIndex] = pt[1 - baseIndex];\n        stepPt2[1 - baseIndex] = nextPt[1 - baseIndex];\n        stepPoints.push(stepPt[0], stepPt[1]);\n        stepPoints.push(stepPt2[0], stepPt2[1]);\n        break;\n\n      default:\n        stepPt[baseIndex] = pt[baseIndex];\n        stepPt[1 - baseIndex] = nextPt[1 - baseIndex];\n        stepPoints.push(stepPt[0], stepPt[1]);\n    }\n  }\n\n  stepPoints.push(points[i++], points[i++]);\n  return stepPoints;\n}\n\nfunction getVisualGradient(data, coordSys) {\n  var visualMetaList = data.getVisual('visualMeta');\n\n  if (!visualMetaList || !visualMetaList.length || !data.count()) {\n    return;\n  }\n\n  if (coordSys.type !== 'cartesian2d') {\n    if (process.env.NODE_ENV !== 'production') {\n      console.warn('Visual map on line style is only supported on cartesian2d.');\n    }\n\n    return;\n  }\n\n  var coordDim;\n  var visualMeta;\n\n  for (var i = visualMetaList.length - 1; i >= 0; i--) {\n    var dimIndex = visualMetaList[i].dimension;\n    var dimName = data.dimensions[dimIndex];\n    var dimInfo = data.getDimensionInfo(dimName);\n    coordDim = dimInfo && dimInfo.coordDim;\n\n    if (coordDim === 'x' || coordDim === 'y') {\n      visualMeta = visualMetaList[i];\n      break;\n    }\n  }\n\n  if (!visualMeta) {\n    if (process.env.NODE_ENV !== 'production') {\n      console.warn('Visual map on line style only support x or y dimension.');\n    }\n\n    return;\n  }\n\n  var axis = coordSys.getAxis(coordDim);\n  var colorStops = zrUtil.map(visualMeta.stops, function (stop) {\n    return {\n      offset: 0,\n      coord: axis.toGlobalCoord(axis.dataToCoord(stop.value)),\n      color: stop.color\n    };\n  });\n  var stopLen = colorStops.length;\n  var outerColors = visualMeta.outerColors.slice();\n\n  if (stopLen && colorStops[0].coord > colorStops[stopLen - 1].coord) {\n    colorStops.reverse();\n    outerColors.reverse();\n  }\n\n  var tinyExtent = 10;\n  var minCoord = colorStops[0].coord - tinyExtent;\n  var maxCoord = colorStops[stopLen - 1].coord + tinyExtent;\n  var coordSpan = maxCoord - minCoord;\n\n  if (coordSpan < 1e-3) {\n    return 'transparent';\n  }\n\n  zrUtil.each(colorStops, function (stop) {\n    stop.offset = (stop.coord - minCoord) / coordSpan;\n  });\n  colorStops.push({\n    offset: stopLen ? colorStops[stopLen - 1].offset : 0.5,\n    color: outerColors[1] || 'transparent'\n  });\n  colorStops.unshift({\n    offset: stopLen ? colorStops[0].offset : 0.5,\n    color: outerColors[0] || 'transparent'\n  });\n  var gradient = new graphic.LinearGradient(0, 0, 0, 0, colorStops, true);\n  gradient[coordDim] = minCoord;\n  gradient[coordDim + '2'] = maxCoord;\n  return gradient;\n}\n\nfunction getIsIgnoreFunc(seriesModel, data, coordSys) {\n  var showAllSymbol = seriesModel.get('showAllSymbol');\n  var isAuto = showAllSymbol === 'auto';\n\n  if (showAllSymbol && !isAuto) {\n    return;\n  }\n\n  var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\n\n  if (!categoryAxis) {\n    return;\n  }\n\n  if (isAuto && canShowAllSymbolForCategory(categoryAxis, data)) {\n    return;\n  }\n\n  var categoryDataDim = data.mapDimension(categoryAxis.dim);\n  var labelMap = {};\n  zrUtil.each(categoryAxis.getViewLabels(), function (labelItem) {\n    var ordinalNumber = categoryAxis.scale.getRawOrdinalNumber(labelItem.tickValue);\n    labelMap[ordinalNumber] = 1;\n  });\n  return function (dataIndex) {\n    return !labelMap.hasOwnProperty(data.get(categoryDataDim, dataIndex));\n  };\n}\n\nfunction canShowAllSymbolForCategory(categoryAxis, data) {\n  var axisExtent = categoryAxis.getExtent();\n  var availSize = Math.abs(axisExtent[1] - axisExtent[0]) / categoryAxis.scale.count();\n  isNaN(availSize) && (availSize = 0);\n  var dataLen = data.count();\n  var step = Math.max(1, Math.round(dataLen / 5));\n\n  for (var dataIndex = 0; dataIndex < dataLen; dataIndex += step) {\n    if (SymbolClz.getSymbolSize(data, dataIndex)[categoryAxis.isHorizontal() ? 1 : 0] * 1.5 > availSize) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nfunction isPointNull(x, y) {\n  return isNaN(x) || isNaN(y);\n}\n\nfunction getLastIndexNotNull(points) {\n  var len = points.length / 2;\n\n  for (; len > 0; len--) {\n    if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n      break;\n    }\n  }\n\n  return len - 1;\n}\n\nfunction getPointAtIndex(points, idx) {\n  return [points[idx * 2], points[idx * 2 + 1]];\n}\n\nfunction getIndexRange(points, xOrY, dim) {\n  var len = points.length / 2;\n  var dimIdx = dim === 'x' ? 0 : 1;\n  var a;\n  var b;\n  var prevIndex = 0;\n  var nextIndex = -1;\n\n  for (var i = 0; i < len; i++) {\n    b = points[i * 2 + dimIdx];\n\n    if (isNaN(b) || isNaN(points[i * 2 + 1 - dimIdx])) {\n      continue;\n    }\n\n    if (i === 0) {\n      a = b;\n      continue;\n    }\n\n    if (a <= xOrY && b >= xOrY || a >= xOrY && b <= xOrY) {\n      nextIndex = i;\n      break;\n    }\n\n    prevIndex = i;\n    a = b;\n  }\n\n  return {\n    range: [prevIndex, nextIndex],\n    t: (xOrY - a) / (b - a)\n  };\n}\n\nfunction createLineClipPath(lineView, coordSys, hasAnimation, seriesModel) {\n  if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n    var endLabelModel_1 = seriesModel.getModel('endLabel');\n    var showEndLabel = endLabelModel_1.get('show');\n    var valueAnimation_1 = endLabelModel_1.get('valueAnimation');\n    var data_1 = seriesModel.getData();\n    var labelAnimationRecord_1 = {\n      lastFrameIndex: 0\n    };\n    var during = showEndLabel ? function (percent, clipRect) {\n      lineView._endLabelOnDuring(percent, clipRect, data_1, labelAnimationRecord_1, valueAnimation_1, endLabelModel_1, coordSys);\n    } : null;\n    var isHorizontal = coordSys.getBaseAxis().isHorizontal();\n    var clipPath = createGridClipPath(coordSys, hasAnimation, seriesModel, function () {\n      var endLabel = lineView._endLabel;\n\n      if (endLabel && hasAnimation) {\n        if (labelAnimationRecord_1.originalX != null) {\n          endLabel.attr({\n            x: labelAnimationRecord_1.originalX,\n            y: labelAnimationRecord_1.originalY\n          });\n        }\n      }\n    }, during);\n\n    if (!seriesModel.get('clip', true)) {\n      var rectShape = clipPath.shape;\n      var expandSize = Math.max(rectShape.width, rectShape.height);\n\n      if (isHorizontal) {\n        rectShape.y -= expandSize;\n        rectShape.height += expandSize * 2;\n      } else {\n        rectShape.x -= expandSize;\n        rectShape.width += expandSize * 2;\n      }\n    }\n\n    if (during) {\n      during(1, clipPath);\n    }\n\n    return clipPath;\n  } else {\n    if (process.env.NODE_ENV !== 'production') {\n      if (seriesModel.get(['endLabel', 'show'])) {\n        console.warn('endLabel is not supported for lines in polar systems.');\n      }\n    }\n\n    return createPolarClipPath(coordSys, hasAnimation, seriesModel);\n  }\n}\n\nfunction getEndLabelStateSpecified(endLabelModel, coordSys) {\n  var baseAxis = coordSys.getBaseAxis();\n  var isHorizontal = baseAxis.isHorizontal();\n  var isBaseInversed = baseAxis.inverse;\n  var align = isHorizontal ? isBaseInversed ? 'right' : 'left' : 'center';\n  var verticalAlign = isHorizontal ? 'middle' : isBaseInversed ? 'top' : 'bottom';\n  return {\n    normal: {\n      align: endLabelModel.get('align') || align,\n      verticalAlign: endLabelModel.get('verticalAlign') || verticalAlign\n    }\n  };\n}\n\nvar LineView = function (_super) {\n  __extends(LineView, _super);\n\n  function LineView() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  LineView.prototype.init = function () {\n    var lineGroup = new graphic.Group();\n    var symbolDraw = new SymbolDraw();\n    this.group.add(symbolDraw.group);\n    this._symbolDraw = symbolDraw;\n    this._lineGroup = lineGroup;\n  };\n\n  LineView.prototype.render = function (seriesModel, ecModel, api) {\n    var _this = this;\n\n    var coordSys = seriesModel.coordinateSystem;\n    var group = this.group;\n    var data = seriesModel.getData();\n    var lineStyleModel = seriesModel.getModel('lineStyle');\n    var areaStyleModel = seriesModel.getModel('areaStyle');\n    var points = data.getLayout('points') || [];\n    var isCoordSysPolar = coordSys.type === 'polar';\n    var prevCoordSys = this._coordSys;\n    var symbolDraw = this._symbolDraw;\n    var polyline = this._polyline;\n    var polygon = this._polygon;\n    var lineGroup = this._lineGroup;\n    var hasAnimation = seriesModel.get('animation');\n    var isAreaChart = !areaStyleModel.isEmpty();\n    var valueOrigin = areaStyleModel.get('origin');\n    var dataCoordInfo = prepareDataCoordInfo(coordSys, data, valueOrigin);\n    var stackedOnPoints = isAreaChart && getStackedOnPoints(coordSys, data, dataCoordInfo);\n    var showSymbol = seriesModel.get('showSymbol');\n    var isIgnoreFunc = showSymbol && !isCoordSysPolar && getIsIgnoreFunc(seriesModel, data, coordSys);\n    var oldData = this._data;\n    oldData && oldData.eachItemGraphicEl(function (el, idx) {\n      if (el.__temp) {\n        group.remove(el);\n        oldData.setItemGraphicEl(idx, null);\n      }\n    });\n\n    if (!showSymbol) {\n      symbolDraw.remove();\n    }\n\n    group.add(lineGroup);\n    var step = !isCoordSysPolar ? seriesModel.get('step') : false;\n    var clipShapeForSymbol;\n\n    if (coordSys && coordSys.getArea && seriesModel.get('clip', true)) {\n      clipShapeForSymbol = coordSys.getArea();\n\n      if (clipShapeForSymbol.width != null) {\n        clipShapeForSymbol.x -= 0.1;\n        clipShapeForSymbol.y -= 0.1;\n        clipShapeForSymbol.width += 0.2;\n        clipShapeForSymbol.height += 0.2;\n      } else if (clipShapeForSymbol.r0) {\n        clipShapeForSymbol.r0 -= 0.5;\n        clipShapeForSymbol.r += 0.5;\n      }\n    }\n\n    this._clipShapeForSymbol = clipShapeForSymbol;\n\n    if (!(polyline && prevCoordSys.type === coordSys.type && step === this._step)) {\n      showSymbol && symbolDraw.updateData(data, {\n        isIgnore: isIgnoreFunc,\n        clipShape: clipShapeForSymbol,\n        disableAnimation: true,\n        getSymbolPoint: function (idx) {\n          return [points[idx * 2], points[idx * 2 + 1]];\n        }\n      });\n      hasAnimation && this._initSymbolLabelAnimation(data, coordSys, clipShapeForSymbol);\n\n      if (step) {\n        points = turnPointsIntoStep(points, coordSys, step);\n\n        if (stackedOnPoints) {\n          stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\n        }\n      }\n\n      polyline = this._newPolyline(points);\n\n      if (isAreaChart) {\n        polygon = this._newPolygon(points, stackedOnPoints);\n      }\n\n      if (!isCoordSysPolar) {\n        this._initOrUpdateEndLabel(seriesModel, coordSys);\n      }\n\n      lineGroup.setClipPath(createLineClipPath(this, coordSys, true, seriesModel));\n    } else {\n      if (isAreaChart && !polygon) {\n        polygon = this._newPolygon(points, stackedOnPoints);\n      } else if (polygon && !isAreaChart) {\n        lineGroup.remove(polygon);\n        polygon = this._polygon = null;\n      }\n\n      if (!isCoordSysPolar) {\n        this._initOrUpdateEndLabel(seriesModel, coordSys);\n      }\n\n      lineGroup.setClipPath(createLineClipPath(this, coordSys, false, seriesModel));\n      showSymbol && symbolDraw.updateData(data, {\n        isIgnore: isIgnoreFunc,\n        clipShape: clipShapeForSymbol,\n        disableAnimation: true,\n        getSymbolPoint: function (idx) {\n          return [points[idx * 2], points[idx * 2 + 1]];\n        }\n      });\n\n      if (!isPointsSame(this._stackedOnPoints, stackedOnPoints) || !isPointsSame(this._points, points)) {\n        if (hasAnimation) {\n          this._doUpdateAnimation(data, stackedOnPoints, coordSys, api, step, valueOrigin);\n        } else {\n          if (step) {\n            points = turnPointsIntoStep(points, coordSys, step);\n\n            if (stackedOnPoints) {\n              stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\n            }\n          }\n\n          polyline.setShape({\n            points: points\n          });\n          polygon && polygon.setShape({\n            points: points,\n            stackedOnPoints: stackedOnPoints\n          });\n        }\n      }\n    }\n\n    var visualColor = getVisualGradient(data, coordSys) || data.getVisual('style')[data.getVisual('drawType')];\n    var focus = seriesModel.get(['emphasis', 'focus']);\n    var blurScope = seriesModel.get(['emphasis', 'blurScope']);\n    polyline.useStyle(zrUtil.defaults(lineStyleModel.getLineStyle(), {\n      fill: 'none',\n      stroke: visualColor,\n      lineJoin: 'bevel'\n    }));\n    setStatesStylesFromModel(polyline, seriesModel, 'lineStyle');\n\n    if (polyline.style.lineWidth > 0 && seriesModel.get(['emphasis', 'lineStyle', 'width']) === 'bolder') {\n      var emphasisLineStyle = polyline.getState('emphasis').style;\n      emphasisLineStyle.lineWidth = polyline.style.lineWidth + 1;\n    }\n\n    getECData(polyline).seriesIndex = seriesModel.seriesIndex;\n    enableHoverEmphasis(polyline, focus, blurScope);\n    var smooth = getSmooth(seriesModel.get('smooth'));\n    var smoothMonotone = seriesModel.get('smoothMonotone');\n    var connectNulls = seriesModel.get('connectNulls');\n    polyline.setShape({\n      smooth: smooth,\n      smoothMonotone: smoothMonotone,\n      connectNulls: connectNulls\n    });\n\n    if (polygon) {\n      var stackedOnSeries = data.getCalculationInfo('stackedOnSeries');\n      var stackedOnSmooth = 0;\n      polygon.useStyle(zrUtil.defaults(areaStyleModel.getAreaStyle(), {\n        fill: visualColor,\n        opacity: 0.7,\n        lineJoin: 'bevel',\n        decal: data.getVisual('style').decal\n      }));\n\n      if (stackedOnSeries) {\n        stackedOnSmooth = getSmooth(stackedOnSeries.get('smooth'));\n      }\n\n      polygon.setShape({\n        smooth: smooth,\n        stackedOnSmooth: stackedOnSmooth,\n        smoothMonotone: smoothMonotone,\n        connectNulls: connectNulls\n      });\n      setStatesStylesFromModel(polygon, seriesModel, 'areaStyle');\n      getECData(polygon).seriesIndex = seriesModel.seriesIndex;\n      enableHoverEmphasis(polygon, focus, blurScope);\n    }\n\n    var changePolyState = function (toState) {\n      _this._changePolyState(toState);\n    };\n\n    data.eachItemGraphicEl(function (el) {\n      el && (el.onHoverStateChange = changePolyState);\n    });\n    this._polyline.onHoverStateChange = changePolyState;\n    this._data = data;\n    this._coordSys = coordSys;\n    this._stackedOnPoints = stackedOnPoints;\n    this._points = points;\n    this._step = step;\n    this._valueOrigin = valueOrigin;\n  };\n\n  LineView.prototype.dispose = function () {};\n\n  LineView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\n    var data = seriesModel.getData();\n    var dataIndex = modelUtil.queryDataIndex(data, payload);\n\n    this._changePolyState('emphasis');\n\n    if (!(dataIndex instanceof Array) && dataIndex != null && dataIndex >= 0) {\n      var points = data.getLayout('points');\n      var symbol = data.getItemGraphicEl(dataIndex);\n\n      if (!symbol) {\n        var x = points[dataIndex * 2];\n        var y = points[dataIndex * 2 + 1];\n\n        if (isNaN(x) || isNaN(y)) {\n          return;\n        }\n\n        if (this._clipShapeForSymbol && !this._clipShapeForSymbol.contain(x, y)) {\n          return;\n        }\n\n        symbol = new SymbolClz(data, dataIndex);\n        symbol.x = x;\n        symbol.y = y;\n        symbol.setZ(seriesModel.get('zlevel'), seriesModel.get('z'));\n        symbol.__temp = true;\n        data.setItemGraphicEl(dataIndex, symbol);\n        symbol.stopSymbolAnimation(true);\n        this.group.add(symbol);\n      }\n\n      symbol.highlight();\n    } else {\n      ChartView.prototype.highlight.call(this, seriesModel, ecModel, api, payload);\n    }\n  };\n\n  LineView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\n    var data = seriesModel.getData();\n    var dataIndex = modelUtil.queryDataIndex(data, payload);\n\n    this._changePolyState('normal');\n\n    if (dataIndex != null && dataIndex >= 0) {\n      var symbol = data.getItemGraphicEl(dataIndex);\n\n      if (symbol) {\n        if (symbol.__temp) {\n          data.setItemGraphicEl(dataIndex, null);\n          this.group.remove(symbol);\n        } else {\n          symbol.downplay();\n        }\n      }\n    } else {\n      ChartView.prototype.downplay.call(this, seriesModel, ecModel, api, payload);\n    }\n  };\n\n  LineView.prototype._changePolyState = function (toState) {\n    var polygon = this._polygon;\n    setStatesFlag(this._polyline, toState);\n    polygon && setStatesFlag(polygon, toState);\n  };\n\n  LineView.prototype._newPolyline = function (points) {\n    var polyline = this._polyline;\n\n    if (polyline) {\n      this._lineGroup.remove(polyline);\n    }\n\n    polyline = new ECPolyline({\n      shape: {\n        points: points\n      },\n      segmentIgnoreThreshold: 2,\n      z2: 10\n    });\n\n    this._lineGroup.add(polyline);\n\n    this._polyline = polyline;\n    return polyline;\n  };\n\n  LineView.prototype._newPolygon = function (points, stackedOnPoints) {\n    var polygon = this._polygon;\n\n    if (polygon) {\n      this._lineGroup.remove(polygon);\n    }\n\n    polygon = new ECPolygon({\n      shape: {\n        points: points,\n        stackedOnPoints: stackedOnPoints\n      },\n      segmentIgnoreThreshold: 2\n    });\n\n    this._lineGroup.add(polygon);\n\n    this._polygon = polygon;\n    return polygon;\n  };\n\n  LineView.prototype._initSymbolLabelAnimation = function (data, coordSys, clipShape) {\n    var isHorizontalOrRadial;\n    var isCoordSysPolar;\n    var baseAxis = coordSys.getBaseAxis();\n    var isAxisInverse = baseAxis.inverse;\n\n    if (coordSys.type === 'cartesian2d') {\n      isHorizontalOrRadial = baseAxis.isHorizontal();\n      isCoordSysPolar = false;\n    } else if (coordSys.type === 'polar') {\n      isHorizontalOrRadial = baseAxis.dim === 'angle';\n      isCoordSysPolar = true;\n    }\n\n    var seriesModel = data.hostModel;\n    var seriesDuration = seriesModel.get('animationDuration');\n\n    if (typeof seriesDuration === 'function') {\n      seriesDuration = seriesDuration(null);\n    }\n\n    var seriesDalay = seriesModel.get('animationDelay') || 0;\n    var seriesDalayValue = typeof seriesDalay === 'function' ? seriesDalay(null) : seriesDalay;\n    data.eachItemGraphicEl(function (symbol, idx) {\n      var el = symbol;\n\n      if (el) {\n        var point = [symbol.x, symbol.y];\n        var start = void 0;\n        var end = void 0;\n        var current = void 0;\n\n        if (isCoordSysPolar) {\n          var polarClip = clipShape;\n          var coord = coordSys.pointToCoord(point);\n\n          if (isHorizontalOrRadial) {\n            start = polarClip.startAngle;\n            end = polarClip.endAngle;\n            current = -coord[1] / 180 * Math.PI;\n          } else {\n            start = polarClip.r0;\n            end = polarClip.r;\n            current = coord[0];\n          }\n        } else {\n          var gridClip = clipShape;\n\n          if (isHorizontalOrRadial) {\n            start = gridClip.x;\n            end = gridClip.x + gridClip.width;\n            current = symbol.x;\n          } else {\n            start = gridClip.y + gridClip.height;\n            end = gridClip.y;\n            current = symbol.y;\n          }\n        }\n\n        var ratio = end === start ? 0 : (current - start) / (end - start);\n\n        if (isAxisInverse) {\n          ratio = 1 - ratio;\n        }\n\n        var delay = typeof seriesDalay === 'function' ? seriesDalay(idx) : seriesDuration * ratio + seriesDalayValue;\n        var symbolPath = el.getSymbolPath();\n        var text = symbolPath.getTextContent();\n        el.attr({\n          scaleX: 0,\n          scaleY: 0\n        });\n        el.animateTo({\n          scaleX: 1,\n          scaleY: 1\n        }, {\n          duration: 200,\n          delay: delay\n        });\n\n        if (text) {\n          text.animateFrom({\n            style: {\n              opacity: 0\n            }\n          }, {\n            duration: 300,\n            delay: delay\n          });\n        }\n\n        symbolPath.disableLabelAnimation = true;\n      }\n    });\n  };\n\n  LineView.prototype._initOrUpdateEndLabel = function (seriesModel, coordSys) {\n    var endLabelModel = seriesModel.getModel('endLabel');\n\n    if (endLabelModel.get('show')) {\n      var data_2 = seriesModel.getData();\n      var polyline = this._polyline;\n      var endLabel = this._endLabel;\n\n      if (!endLabel) {\n        endLabel = this._endLabel = new graphic.Text({\n          z2: 200\n        });\n        endLabel.ignoreClip = true;\n        polyline.setTextContent(this._endLabel);\n        polyline.disableLabelAnimation = true;\n      }\n\n      var dataIndex = getLastIndexNotNull(data_2.getLayout('points'));\n\n      if (dataIndex >= 0) {\n        setLabelStyle(polyline, getLabelStatesModels(seriesModel, 'endLabel'), {\n          labelFetcher: seriesModel,\n          labelDataIndex: dataIndex,\n          defaultText: function (dataIndex, opt, interpolatedValue) {\n            return interpolatedValue != null ? getDefaultInterpolatedLabel(data_2, interpolatedValue) : getDefaultLabel(data_2, dataIndex);\n          },\n          enableTextSetter: true\n        }, getEndLabelStateSpecified(endLabelModel, coordSys));\n        polyline.textConfig.position = null;\n      }\n    } else if (this._endLabel) {\n      this._polyline.removeTextContent();\n\n      this._endLabel = null;\n    }\n  };\n\n  LineView.prototype._endLabelOnDuring = function (percent, clipRect, data, animationRecord, valueAnimation, endLabelModel, coordSys) {\n    var endLabel = this._endLabel;\n    var polyline = this._polyline;\n\n    if (endLabel) {\n      if (percent < 1 && animationRecord.originalX == null) {\n        animationRecord.originalX = endLabel.x;\n        animationRecord.originalY = endLabel.y;\n      }\n\n      var points = data.getLayout('points');\n      var seriesModel = data.hostModel;\n      var connectNulls = seriesModel.get('connectNulls');\n      var precision = endLabelModel.get('precision');\n      var distance = endLabelModel.get('distance') || 0;\n      var baseAxis = coordSys.getBaseAxis();\n      var isHorizontal = baseAxis.isHorizontal();\n      var isBaseInversed = baseAxis.inverse;\n      var clipShape = clipRect.shape;\n      var xOrY = isBaseInversed ? isHorizontal ? clipShape.x : clipShape.y + clipShape.height : isHorizontal ? clipShape.x + clipShape.width : clipShape.y;\n      var distanceX = (isHorizontal ? distance : 0) * (isBaseInversed ? -1 : 1);\n      var distanceY = (isHorizontal ? 0 : -distance) * (isBaseInversed ? -1 : 1);\n      var dim = isHorizontal ? 'x' : 'y';\n      var dataIndexRange = getIndexRange(points, xOrY, dim);\n      var indices = dataIndexRange.range;\n      var diff = indices[1] - indices[0];\n      var value = void 0;\n\n      if (diff >= 1) {\n        if (diff > 1 && !connectNulls) {\n          var pt = getPointAtIndex(points, indices[0]);\n          endLabel.attr({\n            x: pt[0] + distanceX,\n            y: pt[1] + distanceY\n          });\n          valueAnimation && (value = seriesModel.getRawValue(indices[0]));\n        } else {\n          var pt = polyline.getPointOn(xOrY, dim);\n          pt && endLabel.attr({\n            x: pt[0] + distanceX,\n            y: pt[1] + distanceY\n          });\n          var startValue = seriesModel.getRawValue(indices[0]);\n          var endValue = seriesModel.getRawValue(indices[1]);\n          valueAnimation && (value = modelUtil.interpolateRawValues(data, precision, startValue, endValue, dataIndexRange.t));\n        }\n\n        animationRecord.lastFrameIndex = indices[0];\n      } else {\n        var idx = percent === 1 || animationRecord.lastFrameIndex > 0 ? indices[0] : 0;\n        var pt = getPointAtIndex(points, idx);\n        valueAnimation && (value = seriesModel.getRawValue(idx));\n        endLabel.attr({\n          x: pt[0] + distanceX,\n          y: pt[1] + distanceY\n        });\n      }\n\n      if (valueAnimation) {\n        labelInner(endLabel).setLabelText(value);\n      }\n    }\n  };\n\n  LineView.prototype._doUpdateAnimation = function (data, stackedOnPoints, coordSys, api, step, valueOrigin) {\n    var polyline = this._polyline;\n    var polygon = this._polygon;\n    var seriesModel = data.hostModel;\n    var diff = lineAnimationDiff(this._data, data, this._stackedOnPoints, stackedOnPoints, this._coordSys, coordSys, this._valueOrigin, valueOrigin);\n    var current = diff.current;\n    var stackedOnCurrent = diff.stackedOnCurrent;\n    var next = diff.next;\n    var stackedOnNext = diff.stackedOnNext;\n\n    if (step) {\n      current = turnPointsIntoStep(diff.current, coordSys, step);\n      stackedOnCurrent = turnPointsIntoStep(diff.stackedOnCurrent, coordSys, step);\n      next = turnPointsIntoStep(diff.next, coordSys, step);\n      stackedOnNext = turnPointsIntoStep(diff.stackedOnNext, coordSys, step);\n    }\n\n    if (getBoundingDiff(current, next) > 3000 || polygon && getBoundingDiff(stackedOnCurrent, stackedOnNext) > 3000) {\n      polyline.setShape({\n        points: next\n      });\n\n      if (polygon) {\n        polygon.setShape({\n          points: next,\n          stackedOnPoints: stackedOnNext\n        });\n      }\n\n      return;\n    }\n\n    polyline.shape.__points = diff.current;\n    polyline.shape.points = current;\n    var target = {\n      shape: {\n        points: next\n      }\n    };\n\n    if (diff.current !== current) {\n      target.shape.__points = diff.next;\n    }\n\n    polyline.stopAnimation();\n    graphic.updateProps(polyline, target, seriesModel);\n\n    if (polygon) {\n      polygon.setShape({\n        points: current,\n        stackedOnPoints: stackedOnCurrent\n      });\n      polygon.stopAnimation();\n      graphic.updateProps(polygon, {\n        shape: {\n          stackedOnPoints: stackedOnNext\n        }\n      }, seriesModel);\n\n      if (polyline.shape.points !== polygon.shape.points) {\n        polygon.shape.points = polyline.shape.points;\n      }\n    }\n\n    var updatedDataInfo = [];\n    var diffStatus = diff.status;\n\n    for (var i = 0; i < diffStatus.length; i++) {\n      var cmd = diffStatus[i].cmd;\n\n      if (cmd === '=') {\n        var el = data.getItemGraphicEl(diffStatus[i].idx1);\n\n        if (el) {\n          updatedDataInfo.push({\n            el: el,\n            ptIdx: i\n          });\n        }\n      }\n    }\n\n    if (polyline.animators && polyline.animators.length) {\n      polyline.animators[0].during(function () {\n        polygon && polygon.dirtyShape();\n        var points = polyline.shape.__points;\n\n        for (var i = 0; i < updatedDataInfo.length; i++) {\n          var el = updatedDataInfo[i].el;\n          var offset = updatedDataInfo[i].ptIdx * 2;\n          el.x = points[offset];\n          el.y = points[offset + 1];\n          el.markRedraw();\n        }\n      });\n    }\n  };\n\n  LineView.prototype.remove = function (ecModel) {\n    var group = this.group;\n    var oldData = this._data;\n\n    this._lineGroup.removeAll();\n\n    this._symbolDraw.remove(true);\n\n    oldData && oldData.eachItemGraphicEl(function (el, idx) {\n      if (el.__temp) {\n        group.remove(el);\n        oldData.setItemGraphicEl(idx, null);\n      }\n    });\n    this._polyline = this._polygon = this._coordSys = this._points = this._stackedOnPoints = this._endLabel = this._data = null;\n  };\n\n  LineView.type = 'line';\n  return LineView;\n}(ChartView);\n\nexport default LineView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { map } from 'zrender/lib/core/util';\nimport createRenderPlanner from '../chart/helper/createRenderPlanner';\nimport { isDimensionStacked } from '../data/helper/dataStackHelper';\nimport { createFloat32Array } from '../util/vendor';\nexport default function pointsLayout(seriesType, forceStoreInTypedArray) {\n  return {\n    seriesType: seriesType,\n    plan: createRenderPlanner(),\n    reset: function (seriesModel) {\n      var data = seriesModel.getData();\n      var coordSys = seriesModel.coordinateSystem;\n      var pipelineContext = seriesModel.pipelineContext;\n      var useTypedArray = forceStoreInTypedArray || pipelineContext.large;\n\n      if (!coordSys) {\n        return;\n      }\n\n      var dims = map(coordSys.dimensions, function (dim) {\n        return data.mapDimension(dim);\n      }).slice(0, 2);\n      var dimLen = dims.length;\n      var stackResultDim = data.getCalculationInfo('stackResultDimension');\n\n      if (isDimensionStacked(data, dims[0])) {\n        dims[0] = stackResultDim;\n      }\n\n      if (isDimensionStacked(data, dims[1])) {\n        dims[1] = stackResultDim;\n      }\n\n      var dimInfo0 = data.getDimensionInfo(dims[0]);\n      var dimInfo1 = data.getDimensionInfo(dims[1]);\n      var dimIdx0 = dimInfo0 && dimInfo0.index;\n      var dimIdx1 = dimInfo1 && dimInfo1.index;\n      return dimLen && {\n        progress: function (params, data) {\n          var segCount = params.end - params.start;\n          var points = useTypedArray && createFloat32Array(segCount * dimLen);\n          var tmpIn = [];\n          var tmpOut = [];\n\n          for (var i = params.start, offset = 0; i < params.end; i++) {\n            var point = void 0;\n\n            if (dimLen === 1) {\n              var x = data.getByDimIdx(dimIdx0, i);\n              point = coordSys.dataToPoint(x, null, tmpOut);\n            } else {\n              tmpIn[0] = data.getByDimIdx(dimIdx0, i);\n              tmpIn[1] = data.getByDimIdx(dimIdx1, i);\n              point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n            }\n\n            if (useTypedArray) {\n              points[offset++] = point[0];\n              points[offset++] = point[1];\n            } else {\n              data.setItemLayout(i, point.slice());\n            }\n          }\n\n          useTypedArray && data.setLayout('points', points);\n        }\n      };\n    }\n  };\n}\n;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar samplers = {\n  average: function (frame) {\n    var sum = 0;\n    var count = 0;\n\n    for (var i = 0; i < frame.length; i++) {\n      if (!isNaN(frame[i])) {\n        sum += frame[i];\n        count++;\n      }\n    }\n\n    return count === 0 ? NaN : sum / count;\n  },\n  sum: function (frame) {\n    var sum = 0;\n\n    for (var i = 0; i < frame.length; i++) {\n      sum += frame[i] || 0;\n    }\n\n    return sum;\n  },\n  max: function (frame) {\n    var max = -Infinity;\n\n    for (var i = 0; i < frame.length; i++) {\n      frame[i] > max && (max = frame[i]);\n    }\n\n    return isFinite(max) ? max : NaN;\n  },\n  min: function (frame) {\n    var min = Infinity;\n\n    for (var i = 0; i < frame.length; i++) {\n      frame[i] < min && (min = frame[i]);\n    }\n\n    return isFinite(min) ? min : NaN;\n  },\n  nearest: function (frame) {\n    return frame[0];\n  }\n};\n\nvar indexSampler = function (frame) {\n  return Math.round(frame.length / 2);\n};\n\nexport default function dataSample(seriesType) {\n  return {\n    seriesType: seriesType,\n    reset: function (seriesModel, ecModel, api) {\n      var data = seriesModel.getData();\n      var sampling = seriesModel.get('sampling');\n      var coordSys = seriesModel.coordinateSystem;\n      var count = data.count();\n\n      if (count > 10 && coordSys.type === 'cartesian2d' && sampling) {\n        var baseAxis = coordSys.getBaseAxis();\n        var valueAxis = coordSys.getOtherAxis(baseAxis);\n        var extent = baseAxis.getExtent();\n        var dpr = api.getDevicePixelRatio();\n        var size = Math.abs(extent[1] - extent[0]) * (dpr || 1);\n        var rate = Math.round(count / size);\n\n        if (rate > 1) {\n          if (sampling === 'lttb') {\n            seriesModel.setData(data.lttbDownSample(data.mapDimension(valueAxis.dim), 1 / rate));\n          }\n\n          var sampler = void 0;\n\n          if (typeof sampling === 'string') {\n            sampler = samplers[sampling];\n          } else if (typeof sampling === 'function') {\n            sampler = sampling;\n          }\n\n          if (sampler) {\n            seriesModel.setData(data.downSample(data.mapDimension(valueAxis.dim), 1 / rate, sampler, indexSampler));\n          }\n        }\n      }\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport LineSeries from './LineSeries';\nimport LineView from './LineView';\nimport layoutPoints from '../../layout/points';\nimport dataSample from '../../processor/dataSample';\nexport function install(registers) {\n  registers.registerChartView(LineView);\n  registers.registerSeriesModel(LineSeries);\n  registers.registerLayout(layoutPoints('line', true));\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, dataSample('line'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport createListFromArray from '../helper/createListFromArray';\n\nvar BaseBarSeriesModel = function (_super) {\n  __extends(BaseBarSeriesModel, _super);\n\n  function BaseBarSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BaseBarSeriesModel.type;\n    return _this;\n  }\n\n  BaseBarSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: true\n    });\n  };\n\n  BaseBarSeriesModel.prototype.getMarkerPosition = function (value) {\n    var coordSys = this.coordinateSystem;\n\n    if (coordSys) {\n      var pt = coordSys.dataToPoint(coordSys.clampData(value));\n      var data = this.getData();\n      var offset = data.getLayout('offset');\n      var size = data.getLayout('size');\n      var offsetIndex = coordSys.getBaseAxis().isHorizontal() ? 0 : 1;\n      pt[offsetIndex] += offset + size / 2;\n      return pt;\n    }\n\n    return [NaN, NaN];\n  };\n\n  BaseBarSeriesModel.type = 'series.__base_bar__';\n  BaseBarSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'cartesian2d',\n    legendHoverLink: true,\n    barMinHeight: 0,\n    barMinAngle: 0,\n    large: false,\n    largeThreshold: 400,\n    progressive: 3e3,\n    progressiveChunkMode: 'mod'\n  };\n  return BaseBarSeriesModel;\n}(SeriesModel);\n\nSeriesModel.registerClass(BaseBarSeriesModel);\nexport default BaseBarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BaseBarSeriesModel from './BaseBarSeries';\nimport createListFromArray from '../helper/createListFromArray';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar BarSeriesModel = function (_super) {\n  __extends(BarSeriesModel, _super);\n\n  function BarSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BarSeriesModel.type;\n    return _this;\n  }\n\n  BarSeriesModel.prototype.getInitialData = function () {\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: true,\n      createInvertedIndices: !!this.get('realtimeSort', true) || null\n    });\n  };\n\n  BarSeriesModel.prototype.getProgressive = function () {\n    return this.get('large') ? this.get('progressive') : false;\n  };\n\n  BarSeriesModel.prototype.getProgressiveThreshold = function () {\n    var progressiveThreshold = this.get('progressiveThreshold');\n    var largeThreshold = this.get('largeThreshold');\n\n    if (largeThreshold > progressiveThreshold) {\n      progressiveThreshold = largeThreshold;\n    }\n\n    return progressiveThreshold;\n  };\n\n  BarSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n    return selectors.rect(data.getItemLayout(dataIndex));\n  };\n\n  BarSeriesModel.type = 'series.bar';\n  BarSeriesModel.dependencies = ['grid', 'polar'];\n  BarSeriesModel.defaultOption = inheritDefaultOption(BaseBarSeriesModel.defaultOption, {\n    clip: true,\n    roundCap: false,\n    showBackground: false,\n    backgroundStyle: {\n      color: 'rgba(180, 180, 180, 0.2)',\n      borderColor: null,\n      borderWidth: 0,\n      borderType: 'solid',\n      borderRadius: 0,\n      shadowBlur: 0,\n      shadowColor: null,\n      shadowOffsetX: 0,\n      shadowOffsetY: 0,\n      opacity: 1\n    },\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    },\n    realtimeSort: false\n  });\n  return BarSeriesModel;\n}(BaseBarSeriesModel);\n\nexport default BarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { Path } from '../graphic';\n\nvar SausageShape = function () {\n  function SausageShape() {\n    this.cx = 0;\n    this.cy = 0;\n    this.r0 = 0;\n    this.r = 0;\n    this.startAngle = 0;\n    this.endAngle = Math.PI * 2;\n    this.clockwise = true;\n  }\n\n  return SausageShape;\n}();\n\nvar SausagePath = function (_super) {\n  __extends(SausagePath, _super);\n\n  function SausagePath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'sausage';\n    return _this;\n  }\n\n  SausagePath.prototype.getDefaultShape = function () {\n    return new SausageShape();\n  };\n\n  SausagePath.prototype.buildPath = function (ctx, shape) {\n    var x = shape.cx;\n    var y = shape.cy;\n    var r0 = Math.max(shape.r0 || 0, 0);\n    var r = Math.max(shape.r, 0);\n    var dr = (r - r0) * 0.5;\n    var rCenter = r0 + dr;\n    var startAngle = shape.startAngle;\n    var endAngle = shape.endAngle;\n    var clockwise = shape.clockwise;\n    var unitStartX = Math.cos(startAngle);\n    var unitStartY = Math.sin(startAngle);\n    var unitEndX = Math.cos(endAngle);\n    var unitEndY = Math.sin(endAngle);\n    var lessThanCircle = clockwise ? endAngle - startAngle < Math.PI * 2 : startAngle - endAngle < Math.PI * 2;\n\n    if (lessThanCircle) {\n      ctx.moveTo(unitStartX * r0 + x, unitStartY * r0 + y);\n      ctx.arc(unitStartX * rCenter + x, unitStartY * rCenter + y, dr, -Math.PI + startAngle, startAngle, !clockwise);\n    }\n\n    ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\n    ctx.moveTo(unitEndX * r + x, unitEndY * r + y);\n    ctx.arc(unitEndX * rCenter + x, unitEndY * rCenter + y, dr, endAngle - Math.PI * 2, endAngle - Math.PI, !clockwise);\n\n    if (r0 !== 0) {\n      ctx.arc(x, y, r0, endAngle, startAngle, clockwise);\n      ctx.moveTo(unitStartX * r0 + x, unitEndY * r0 + y);\n    }\n\n    ctx.closePath();\n  };\n\n  return SausagePath;\n}(Path);\n\nexport default SausagePath;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Path from 'zrender/lib/graphic/Path';\nimport Group from 'zrender/lib/graphic/Group';\nimport { extend, defaults, each, map } from 'zrender/lib/core/util';\nimport { Rect, Sector, updateProps, initProps, removeElementWithFadeOut } from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { enableHoverEmphasis, setStatesStylesFromModel } from '../../util/states';\nimport { setLabelStyle, getLabelStatesModels, setLabelValueAnimation } from '../../label/labelStyle';\nimport { throttle } from '../../util/throttle';\nimport { createClipPath } from '../helper/createClipPathFromCoordSys';\nimport Sausage from '../../util/shape/sausage';\nimport ChartView from '../../view/Chart';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport { getDefaultLabel, getDefaultInterpolatedLabel } from '../helper/labelHelper';\nimport { warn } from '../../util/log';\nvar BAR_BORDER_WIDTH_QUERY = ['itemStyle', 'borderWidth'];\nvar BAR_BORDER_RADIUS_QUERY = ['itemStyle', 'borderRadius'];\nvar _eventPos = [0, 0];\nvar mathMax = Math.max;\nvar mathMin = Math.min;\n\nfunction getClipArea(coord, data) {\n  var coordSysClipArea = coord.getArea && coord.getArea();\n\n  if (isCoordinateSystemType(coord, 'cartesian2d')) {\n    var baseAxis = coord.getBaseAxis();\n\n    if (baseAxis.type !== 'category' || !baseAxis.onBand) {\n      var expandWidth = data.getLayout('bandWidth');\n\n      if (baseAxis.isHorizontal()) {\n        coordSysClipArea.x -= expandWidth;\n        coordSysClipArea.width += expandWidth * 2;\n      } else {\n        coordSysClipArea.y -= expandWidth;\n        coordSysClipArea.height += expandWidth * 2;\n      }\n    }\n  }\n\n  return coordSysClipArea;\n}\n\nvar BarView = function (_super) {\n  __extends(BarView, _super);\n\n  function BarView() {\n    var _this = _super.call(this) || this;\n\n    _this.type = BarView.type;\n    _this._isFirstFrame = true;\n    return _this;\n  }\n\n  BarView.prototype.render = function (seriesModel, ecModel, api, payload) {\n    this._model = seriesModel;\n\n    this._removeOnRenderedListener(api);\n\n    this._updateDrawMode(seriesModel);\n\n    var coordinateSystemType = seriesModel.get('coordinateSystem');\n\n    if (coordinateSystemType === 'cartesian2d' || coordinateSystemType === 'polar') {\n      this._isLargeDraw ? this._renderLarge(seriesModel, ecModel, api) : this._renderNormal(seriesModel, ecModel, api, payload);\n    } else if (process.env.NODE_ENV !== 'production') {\n      warn('Only cartesian2d and polar supported for bar.');\n    }\n  };\n\n  BarView.prototype.incrementalPrepareRender = function (seriesModel) {\n    this._clear();\n\n    this._updateDrawMode(seriesModel);\n\n    this._updateLargeClip(seriesModel);\n  };\n\n  BarView.prototype.incrementalRender = function (params, seriesModel) {\n    this._incrementalRenderLarge(params, seriesModel);\n  };\n\n  BarView.prototype._updateDrawMode = function (seriesModel) {\n    var isLargeDraw = seriesModel.pipelineContext.large;\n\n    if (this._isLargeDraw == null || isLargeDraw !== this._isLargeDraw) {\n      this._isLargeDraw = isLargeDraw;\n\n      this._clear();\n    }\n  };\n\n  BarView.prototype._renderNormal = function (seriesModel, ecModel, api, payload) {\n    var group = this.group;\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var coord = seriesModel.coordinateSystem;\n    var baseAxis = coord.getBaseAxis();\n    var isHorizontalOrRadial;\n\n    if (coord.type === 'cartesian2d') {\n      isHorizontalOrRadial = baseAxis.isHorizontal();\n    } else if (coord.type === 'polar') {\n      isHorizontalOrRadial = baseAxis.dim === 'angle';\n    }\n\n    var animationModel = seriesModel.isAnimationEnabled() ? seriesModel : null;\n    var realtimeSortCfg = shouldRealtimeSort(seriesModel, coord);\n\n    if (realtimeSortCfg) {\n      this._enableRealtimeSort(realtimeSortCfg, data, api);\n    }\n\n    var needsClip = seriesModel.get('clip', true) || realtimeSortCfg;\n    var coordSysClipArea = getClipArea(coord, data);\n    group.removeClipPath();\n    var roundCap = seriesModel.get('roundCap', true);\n    var drawBackground = seriesModel.get('showBackground', true);\n    var backgroundModel = seriesModel.getModel('backgroundStyle');\n    var barBorderRadius = backgroundModel.get('borderRadius') || 0;\n    var bgEls = [];\n    var oldBgEls = this._backgroundEls;\n    var isInitSort = payload && payload.isInitSort;\n    var isChangeOrder = payload && payload.type === 'changeAxisOrder';\n\n    function createBackground(dataIndex) {\n      var bgLayout = getLayout[coord.type](data, dataIndex);\n      var bgEl = createBackgroundEl(coord, isHorizontalOrRadial, bgLayout);\n      bgEl.useStyle(backgroundModel.getItemStyle());\n\n      if (coord.type === 'cartesian2d') {\n        bgEl.setShape('r', barBorderRadius);\n      }\n\n      bgEls[dataIndex] = bgEl;\n      return bgEl;\n    }\n\n    ;\n    data.diff(oldData).add(function (dataIndex) {\n      var itemModel = data.getItemModel(dataIndex);\n      var layout = getLayout[coord.type](data, dataIndex, itemModel);\n\n      if (drawBackground) {\n        createBackground(dataIndex);\n      }\n\n      if (!data.hasValue(dataIndex)) {\n        return;\n      }\n\n      var isClipped = false;\n\n      if (needsClip) {\n        isClipped = clip[coord.type](coordSysClipArea, layout);\n      }\n\n      var el = elementCreator[coord.type](seriesModel, data, dataIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, false, roundCap);\n      updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\n\n      if (isInitSort) {\n        el.attr({\n          shape: layout\n        });\n      } else if (realtimeSortCfg) {\n        updateRealtimeAnimation(realtimeSortCfg, animationModel, el, layout, dataIndex, isHorizontalOrRadial, false, false);\n      } else {\n        initProps(el, {\n          shape: layout\n        }, seriesModel, dataIndex);\n      }\n\n      data.setItemGraphicEl(dataIndex, el);\n      group.add(el);\n      el.ignore = isClipped;\n    }).update(function (newIndex, oldIndex) {\n      var itemModel = data.getItemModel(newIndex);\n      var layout = getLayout[coord.type](data, newIndex, itemModel);\n\n      if (drawBackground) {\n        var bgEl = void 0;\n\n        if (oldBgEls.length === 0) {\n          bgEl = createBackground(oldIndex);\n        } else {\n          bgEl = oldBgEls[oldIndex];\n          bgEl.useStyle(backgroundModel.getItemStyle());\n\n          if (coord.type === 'cartesian2d') {\n            bgEl.setShape('r', barBorderRadius);\n          }\n\n          bgEls[newIndex] = bgEl;\n        }\n\n        var bgLayout = getLayout[coord.type](data, newIndex);\n        var shape = createBackgroundShape(isHorizontalOrRadial, bgLayout, coord);\n        updateProps(bgEl, {\n          shape: shape\n        }, animationModel, newIndex);\n      }\n\n      var el = oldData.getItemGraphicEl(oldIndex);\n\n      if (!data.hasValue(newIndex)) {\n        group.remove(el);\n        el = null;\n        return;\n      }\n\n      var isClipped = false;\n\n      if (needsClip) {\n        isClipped = clip[coord.type](coordSysClipArea, layout);\n\n        if (isClipped) {\n          group.remove(el);\n        }\n      }\n\n      if (!el) {\n        el = elementCreator[coord.type](seriesModel, data, newIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, !!el, roundCap);\n      }\n\n      if (!isChangeOrder) {\n        updateStyle(el, data, newIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\n      }\n\n      if (isInitSort) {\n        el.attr({\n          shape: layout\n        });\n      } else if (realtimeSortCfg) {\n        updateRealtimeAnimation(realtimeSortCfg, animationModel, el, layout, newIndex, isHorizontalOrRadial, true, isChangeOrder);\n      } else {\n        updateProps(el, {\n          shape: layout\n        }, seriesModel, newIndex, null);\n      }\n\n      data.setItemGraphicEl(newIndex, el);\n      el.ignore = isClipped;\n      group.add(el);\n    }).remove(function (dataIndex) {\n      var el = oldData.getItemGraphicEl(dataIndex);\n      el && removeElementWithFadeOut(el, seriesModel, dataIndex);\n    }).execute();\n    var bgGroup = this._backgroundGroup || (this._backgroundGroup = new Group());\n    bgGroup.removeAll();\n\n    for (var i = 0; i < bgEls.length; ++i) {\n      bgGroup.add(bgEls[i]);\n    }\n\n    group.add(bgGroup);\n    this._backgroundEls = bgEls;\n    this._data = data;\n  };\n\n  BarView.prototype._renderLarge = function (seriesModel, ecModel, api) {\n    this._clear();\n\n    createLarge(seriesModel, this.group);\n\n    this._updateLargeClip(seriesModel);\n  };\n\n  BarView.prototype._incrementalRenderLarge = function (params, seriesModel) {\n    this._removeBackground();\n\n    createLarge(seriesModel, this.group, true);\n  };\n\n  BarView.prototype._updateLargeClip = function (seriesModel) {\n    var clipPath = seriesModel.get('clip', true) ? createClipPath(seriesModel.coordinateSystem, false, seriesModel) : null;\n\n    if (clipPath) {\n      this.group.setClipPath(clipPath);\n    } else {\n      this.group.removeClipPath();\n    }\n  };\n\n  BarView.prototype._enableRealtimeSort = function (realtimeSortCfg, data, api) {\n    var _this = this;\n\n    if (!data.count()) {\n      return;\n    }\n\n    var baseAxis = realtimeSortCfg.baseAxis;\n\n    if (this._isFirstFrame) {\n      this._dispatchInitSort(data, realtimeSortCfg, api);\n\n      this._isFirstFrame = false;\n    } else {\n      var orderMapping_1 = function (idx) {\n        var el = data.getItemGraphicEl(idx);\n\n        if (el) {\n          var shape = el.shape;\n          return (baseAxis.isHorizontal() ? Math.abs(shape.height) : Math.abs(shape.width)) || 0;\n        } else {\n          return 0;\n        }\n      };\n\n      this._onRendered = function () {\n        _this._updateSortWithinSameData(data, orderMapping_1, baseAxis, api);\n      };\n\n      api.getZr().on('rendered', this._onRendered);\n    }\n  };\n\n  BarView.prototype._dataSort = function (data, baseAxis, orderMapping) {\n    var info = [];\n    data.each(data.mapDimension(baseAxis.dim), function (ordinalNumber, dataIdx) {\n      var mappedValue = orderMapping(dataIdx);\n      mappedValue = mappedValue == null ? NaN : mappedValue;\n      info.push({\n        dataIndex: dataIdx,\n        mappedValue: mappedValue,\n        ordinalNumber: ordinalNumber\n      });\n    });\n    info.sort(function (a, b) {\n      return b.mappedValue - a.mappedValue;\n    });\n    return {\n      ordinalNumbers: map(info, function (item) {\n        return item.ordinalNumber;\n      })\n    };\n  };\n\n  BarView.prototype._isOrderChangedWithinSameData = function (data, orderMapping, baseAxis) {\n    var scale = baseAxis.scale;\n    var ordinalDataDim = data.mapDimension(baseAxis.dim);\n    var lastValue = Number.MAX_VALUE;\n\n    for (var tickNum = 0, len = scale.getOrdinalMeta().categories.length; tickNum < len; ++tickNum) {\n      var rawIdx = data.rawIndexOf(ordinalDataDim, scale.getRawOrdinalNumber(tickNum));\n      var value = rawIdx < 0 ? Number.MIN_VALUE : orderMapping(data.indexOfRawIndex(rawIdx));\n\n      if (value > lastValue) {\n        return true;\n      }\n\n      lastValue = value;\n    }\n\n    return false;\n  };\n\n  BarView.prototype._isOrderDifferentInView = function (orderInfo, baseAxis) {\n    var scale = baseAxis.scale;\n    var extent = scale.getExtent();\n    var tickNum = Math.max(0, extent[0]);\n    var tickMax = Math.min(extent[1], scale.getOrdinalMeta().categories.length - 1);\n\n    for (; tickNum <= tickMax; ++tickNum) {\n      if (orderInfo.ordinalNumbers[tickNum] !== scale.getRawOrdinalNumber(tickNum)) {\n        return true;\n      }\n    }\n  };\n\n  BarView.prototype._updateSortWithinSameData = function (data, orderMapping, baseAxis, api) {\n    if (!this._isOrderChangedWithinSameData(data, orderMapping, baseAxis)) {\n      return;\n    }\n\n    var sortInfo = this._dataSort(data, baseAxis, orderMapping);\n\n    if (this._isOrderDifferentInView(sortInfo, baseAxis)) {\n      this._removeOnRenderedListener(api);\n\n      api.dispatchAction({\n        type: 'changeAxisOrder',\n        componentType: baseAxis.dim + 'Axis',\n        axisId: baseAxis.index,\n        sortInfo: sortInfo\n      });\n    }\n  };\n\n  BarView.prototype._dispatchInitSort = function (data, realtimeSortCfg, api) {\n    var baseAxis = realtimeSortCfg.baseAxis;\n\n    var sortResult = this._dataSort(data, baseAxis, function (dataIdx) {\n      return data.get(data.mapDimension(realtimeSortCfg.otherAxis.dim), dataIdx);\n    });\n\n    api.dispatchAction({\n      type: 'changeAxisOrder',\n      componentType: baseAxis.dim + 'Axis',\n      isInitSort: true,\n      axisId: baseAxis.index,\n      sortInfo: sortResult,\n      animation: {\n        duration: 0\n      }\n    });\n  };\n\n  BarView.prototype.remove = function (ecModel, api) {\n    this._clear(this._model);\n\n    this._removeOnRenderedListener(api);\n  };\n\n  BarView.prototype.dispose = function (ecModel, api) {\n    this._removeOnRenderedListener(api);\n  };\n\n  BarView.prototype._removeOnRenderedListener = function (api) {\n    if (this._onRendered) {\n      api.getZr().off('rendered', this._onRendered);\n      this._onRendered = null;\n    }\n  };\n\n  BarView.prototype._clear = function (model) {\n    var group = this.group;\n    var data = this._data;\n\n    if (model && model.isAnimationEnabled() && data && !this._isLargeDraw) {\n      this._removeBackground();\n\n      this._backgroundEls = [];\n      data.eachItemGraphicEl(function (el) {\n        removeElementWithFadeOut(el, model, getECData(el).dataIndex);\n      });\n    } else {\n      group.removeAll();\n    }\n\n    this._data = null;\n    this._isFirstFrame = true;\n  };\n\n  BarView.prototype._removeBackground = function () {\n    this.group.remove(this._backgroundGroup);\n    this._backgroundGroup = null;\n  };\n\n  BarView.type = 'bar';\n  return BarView;\n}(ChartView);\n\nvar clip = {\n  cartesian2d: function (coordSysBoundingRect, layout) {\n    var signWidth = layout.width < 0 ? -1 : 1;\n    var signHeight = layout.height < 0 ? -1 : 1;\n\n    if (signWidth < 0) {\n      layout.x += layout.width;\n      layout.width = -layout.width;\n    }\n\n    if (signHeight < 0) {\n      layout.y += layout.height;\n      layout.height = -layout.height;\n    }\n\n    var coordSysX2 = coordSysBoundingRect.x + coordSysBoundingRect.width;\n    var coordSysY2 = coordSysBoundingRect.y + coordSysBoundingRect.height;\n    var x = mathMax(layout.x, coordSysBoundingRect.x);\n    var x2 = mathMin(layout.x + layout.width, coordSysX2);\n    var y = mathMax(layout.y, coordSysBoundingRect.y);\n    var y2 = mathMin(layout.y + layout.height, coordSysY2);\n    var xClipped = x2 < x;\n    var yClipped = y2 < y;\n    layout.x = xClipped && x > coordSysX2 ? x2 : x;\n    layout.y = yClipped && y > coordSysY2 ? y2 : y;\n    layout.width = xClipped ? 0 : x2 - x;\n    layout.height = yClipped ? 0 : y2 - y;\n\n    if (signWidth < 0) {\n      layout.x += layout.width;\n      layout.width = -layout.width;\n    }\n\n    if (signHeight < 0) {\n      layout.y += layout.height;\n      layout.height = -layout.height;\n    }\n\n    return xClipped || yClipped;\n  },\n  polar: function (coordSysClipArea, layout) {\n    var signR = layout.r0 <= layout.r ? 1 : -1;\n\n    if (signR < 0) {\n      var tmp = layout.r;\n      layout.r = layout.r0;\n      layout.r0 = tmp;\n    }\n\n    var r = mathMin(layout.r, coordSysClipArea.r);\n    var r0 = mathMax(layout.r0, coordSysClipArea.r0);\n    layout.r = r;\n    layout.r0 = r0;\n    var clipped = r - r0 < 0;\n\n    if (signR < 0) {\n      var tmp = layout.r;\n      layout.r = layout.r0;\n      layout.r0 = tmp;\n    }\n\n    return clipped;\n  }\n};\nvar elementCreator = {\n  cartesian2d: function (seriesModel, data, newIndex, layout, isHorizontal, animationModel, axisModel, isUpdate, roundCap) {\n    var rect = new Rect({\n      shape: extend({}, layout),\n      z2: 1\n    });\n    rect.__dataIndex = newIndex;\n    rect.name = 'item';\n\n    if (animationModel) {\n      var rectShape = rect.shape;\n      var animateProperty = isHorizontal ? 'height' : 'width';\n      rectShape[animateProperty] = 0;\n    }\n\n    return rect;\n  },\n  polar: function (seriesModel, data, newIndex, layout, isRadial, animationModel, axisModel, isUpdate, roundCap) {\n    var clockwise = layout.startAngle < layout.endAngle;\n    var ShapeClass = !isRadial && roundCap ? Sausage : Sector;\n    var sector = new ShapeClass({\n      shape: defaults({\n        clockwise: clockwise\n      }, layout),\n      z2: 1\n    });\n    sector.name = 'item';\n\n    if (animationModel) {\n      var sectorShape = sector.shape;\n      var animateProperty = isRadial ? 'r' : 'endAngle';\n      var animateTarget = {};\n      sectorShape[animateProperty] = isRadial ? 0 : layout.startAngle;\n      animateTarget[animateProperty] = layout[animateProperty];\n      (isUpdate ? updateProps : initProps)(sector, {\n        shape: animateTarget\n      }, animationModel);\n    }\n\n    return sector;\n  }\n};\n\nfunction shouldRealtimeSort(seriesModel, coordSys) {\n  var realtimeSortOption = seriesModel.get('realtimeSort', true);\n  var baseAxis = coordSys.getBaseAxis();\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (realtimeSortOption) {\n      if (baseAxis.type !== 'category') {\n        warn('`realtimeSort` will not work because this bar series is not based on a category axis.');\n      }\n\n      if (coordSys.type !== 'cartesian2d') {\n        warn('`realtimeSort` will not work because this bar series is not on cartesian2d.');\n      }\n    }\n  }\n\n  if (realtimeSortOption && baseAxis.type === 'category' && coordSys.type === 'cartesian2d') {\n    return {\n      baseAxis: baseAxis,\n      otherAxis: coordSys.getOtherAxis(baseAxis)\n    };\n  }\n}\n\nfunction updateRealtimeAnimation(realtimeSortCfg, seriesAnimationModel, el, layout, newIndex, isHorizontal, isUpdate, isChangeOrder) {\n  var seriesTarget;\n  var axisTarget;\n\n  if (isHorizontal) {\n    axisTarget = {\n      x: layout.x,\n      width: layout.width\n    };\n    seriesTarget = {\n      y: layout.y,\n      height: layout.height\n    };\n  } else {\n    axisTarget = {\n      y: layout.y,\n      height: layout.height\n    };\n    seriesTarget = {\n      x: layout.x,\n      width: layout.width\n    };\n  }\n\n  if (!isChangeOrder) {\n    (isUpdate ? updateProps : initProps)(el, {\n      shape: seriesTarget\n    }, seriesAnimationModel, newIndex, null);\n  }\n\n  var axisAnimationModel = seriesAnimationModel ? realtimeSortCfg.baseAxis.model : null;\n  (isUpdate ? updateProps : initProps)(el, {\n    shape: axisTarget\n  }, axisAnimationModel, newIndex);\n}\n\nvar getLayout = {\n  cartesian2d: function (data, dataIndex, itemModel) {\n    var layout = data.getItemLayout(dataIndex);\n    var fixedLineWidth = itemModel ? getLineWidth(itemModel, layout) : 0;\n    var signX = layout.width > 0 ? 1 : -1;\n    var signY = layout.height > 0 ? 1 : -1;\n    return {\n      x: layout.x + signX * fixedLineWidth / 2,\n      y: layout.y + signY * fixedLineWidth / 2,\n      width: layout.width - signX * fixedLineWidth,\n      height: layout.height - signY * fixedLineWidth\n    };\n  },\n  polar: function (data, dataIndex, itemModel) {\n    var layout = data.getItemLayout(dataIndex);\n    return {\n      cx: layout.cx,\n      cy: layout.cy,\n      r0: layout.r0,\n      r: layout.r,\n      startAngle: layout.startAngle,\n      endAngle: layout.endAngle\n    };\n  }\n};\n\nfunction isZeroOnPolar(layout) {\n  return layout.startAngle != null && layout.endAngle != null && layout.startAngle === layout.endAngle;\n}\n\nfunction updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontal, isPolar) {\n  var style = data.getItemVisual(dataIndex, 'style');\n\n  if (!isPolar) {\n    el.setShape('r', itemModel.get(BAR_BORDER_RADIUS_QUERY) || 0);\n  }\n\n  el.useStyle(style);\n  var cursorStyle = itemModel.getShallow('cursor');\n  cursorStyle && el.attr('cursor', cursorStyle);\n\n  if (!isPolar) {\n    var labelPositionOutside = isHorizontal ? layout.height > 0 ? 'bottom' : 'top' : layout.width > 0 ? 'left' : 'right';\n    var labelStatesModels = getLabelStatesModels(itemModel);\n    setLabelStyle(el, labelStatesModels, {\n      labelFetcher: seriesModel,\n      labelDataIndex: dataIndex,\n      defaultText: getDefaultLabel(seriesModel.getData(), dataIndex),\n      inheritColor: style.fill,\n      defaultOpacity: style.opacity,\n      defaultOutsidePosition: labelPositionOutside\n    });\n    var label = el.getTextContent();\n    setLabelValueAnimation(label, labelStatesModels, seriesModel.getRawValue(dataIndex), function (value) {\n      return getDefaultInterpolatedLabel(data, value);\n    });\n  }\n\n  var emphasisModel = itemModel.getModel(['emphasis']);\n  enableHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n  setStatesStylesFromModel(el, itemModel);\n\n  if (isZeroOnPolar(layout)) {\n    el.style.fill = 'none';\n    el.style.stroke = 'none';\n    each(el.states, function (state) {\n      if (state.style) {\n        state.style.fill = state.style.stroke = 'none';\n      }\n    });\n  }\n}\n\nfunction getLineWidth(itemModel, rawLayout) {\n  var lineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0;\n  var width = isNaN(rawLayout.width) ? Number.MAX_VALUE : Math.abs(rawLayout.width);\n  var height = isNaN(rawLayout.height) ? Number.MAX_VALUE : Math.abs(rawLayout.height);\n  return Math.min(lineWidth, width, height);\n}\n\nvar LagePathShape = function () {\n  function LagePathShape() {}\n\n  return LagePathShape;\n}();\n\nvar LargePath = function (_super) {\n  __extends(LargePath, _super);\n\n  function LargePath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'largeBar';\n    return _this;\n  }\n\n  ;\n\n  LargePath.prototype.getDefaultShape = function () {\n    return new LagePathShape();\n  };\n\n  LargePath.prototype.buildPath = function (ctx, shape) {\n    var points = shape.points;\n    var startPoint = this.__startPoint;\n    var baseDimIdx = this.__baseDimIdx;\n\n    for (var i = 0; i < points.length; i += 2) {\n      startPoint[baseDimIdx] = points[i + baseDimIdx];\n      ctx.moveTo(startPoint[0], startPoint[1]);\n      ctx.lineTo(points[i], points[i + 1]);\n    }\n  };\n\n  return LargePath;\n}(Path);\n\nfunction createLarge(seriesModel, group, incremental) {\n  var data = seriesModel.getData();\n  var startPoint = [];\n  var baseDimIdx = data.getLayout('valueAxisHorizontal') ? 1 : 0;\n  startPoint[1 - baseDimIdx] = data.getLayout('valueAxisStart');\n  var largeDataIndices = data.getLayout('largeDataIndices');\n  var barWidth = data.getLayout('barWidth');\n  var backgroundModel = seriesModel.getModel('backgroundStyle');\n  var drawBackground = seriesModel.get('showBackground', true);\n\n  if (drawBackground) {\n    var points = data.getLayout('largeBackgroundPoints');\n    var backgroundStartPoint = [];\n    backgroundStartPoint[1 - baseDimIdx] = data.getLayout('backgroundStart');\n    var bgEl = new LargePath({\n      shape: {\n        points: points\n      },\n      incremental: !!incremental,\n      silent: true,\n      z2: 0\n    });\n    bgEl.__startPoint = backgroundStartPoint;\n    bgEl.__baseDimIdx = baseDimIdx;\n    bgEl.__largeDataIndices = largeDataIndices;\n    bgEl.__barWidth = barWidth;\n    setLargeBackgroundStyle(bgEl, backgroundModel, data);\n    group.add(bgEl);\n  }\n\n  var el = new LargePath({\n    shape: {\n      points: data.getLayout('largePoints')\n    },\n    incremental: !!incremental\n  });\n  el.__startPoint = startPoint;\n  el.__baseDimIdx = baseDimIdx;\n  el.__largeDataIndices = largeDataIndices;\n  el.__barWidth = barWidth;\n  group.add(el);\n  setLargeStyle(el, seriesModel, data);\n  getECData(el).seriesIndex = seriesModel.seriesIndex;\n\n  if (!seriesModel.get('silent')) {\n    el.on('mousedown', largePathUpdateDataIndex);\n    el.on('mousemove', largePathUpdateDataIndex);\n  }\n}\n\nvar largePathUpdateDataIndex = throttle(function (event) {\n  var largePath = this;\n  var dataIndex = largePathFindDataIndex(largePath, event.offsetX, event.offsetY);\n  getECData(largePath).dataIndex = dataIndex >= 0 ? dataIndex : null;\n}, 30, false);\n\nfunction largePathFindDataIndex(largePath, x, y) {\n  var baseDimIdx = largePath.__baseDimIdx;\n  var valueDimIdx = 1 - baseDimIdx;\n  var points = largePath.shape.points;\n  var largeDataIndices = largePath.__largeDataIndices;\n  var barWidthHalf = Math.abs(largePath.__barWidth / 2);\n  var startValueVal = largePath.__startPoint[valueDimIdx];\n  _eventPos[0] = x;\n  _eventPos[1] = y;\n  var pointerBaseVal = _eventPos[baseDimIdx];\n  var pointerValueVal = _eventPos[1 - baseDimIdx];\n  var baseLowerBound = pointerBaseVal - barWidthHalf;\n  var baseUpperBound = pointerBaseVal + barWidthHalf;\n\n  for (var i = 0, len = points.length / 2; i < len; i++) {\n    var ii = i * 2;\n    var barBaseVal = points[ii + baseDimIdx];\n    var barValueVal = points[ii + valueDimIdx];\n\n    if (barBaseVal >= baseLowerBound && barBaseVal <= baseUpperBound && (startValueVal <= barValueVal ? pointerValueVal >= startValueVal && pointerValueVal <= barValueVal : pointerValueVal >= barValueVal && pointerValueVal <= startValueVal)) {\n      return largeDataIndices[i];\n    }\n  }\n\n  return -1;\n}\n\nfunction setLargeStyle(el, seriesModel, data) {\n  var globalStyle = data.getVisual('style');\n  el.useStyle(extend({}, globalStyle));\n  el.style.fill = null;\n  el.style.stroke = globalStyle.fill;\n  el.style.lineWidth = data.getLayout('barWidth');\n}\n\nfunction setLargeBackgroundStyle(el, backgroundModel, data) {\n  var borderColor = backgroundModel.get('borderColor') || backgroundModel.get('color');\n  var itemStyle = backgroundModel.getItemStyle();\n  el.useStyle(itemStyle);\n  el.style.fill = null;\n  el.style.stroke = borderColor;\n  el.style.lineWidth = data.getLayout('barWidth');\n}\n\nfunction createBackgroundShape(isHorizontalOrRadial, layout, coord) {\n  if (isCoordinateSystemType(coord, 'cartesian2d')) {\n    var rectShape = layout;\n    var coordLayout = coord.getArea();\n    return {\n      x: isHorizontalOrRadial ? rectShape.x : coordLayout.x,\n      y: isHorizontalOrRadial ? coordLayout.y : rectShape.y,\n      width: isHorizontalOrRadial ? rectShape.width : coordLayout.width,\n      height: isHorizontalOrRadial ? coordLayout.height : rectShape.height\n    };\n  } else {\n    var coordLayout = coord.getArea();\n    var sectorShape = layout;\n    return {\n      cx: coordLayout.cx,\n      cy: coordLayout.cy,\n      r0: isHorizontalOrRadial ? coordLayout.r0 : sectorShape.r0,\n      r: isHorizontalOrRadial ? coordLayout.r : sectorShape.r,\n      startAngle: isHorizontalOrRadial ? sectorShape.startAngle : 0,\n      endAngle: isHorizontalOrRadial ? sectorShape.endAngle : Math.PI * 2\n    };\n  }\n}\n\nfunction createBackgroundEl(coord, isHorizontalOrRadial, layout) {\n  var ElementClz = coord.type === 'polar' ? Sector : Rect;\n  return new ElementClz({\n    shape: createBackgroundShape(isHorizontalOrRadial, layout, coord),\n    silent: true,\n    z2: 0\n  });\n}\n\nexport default BarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { layout, largeLayout } from '../../layout/barGrid';\nimport dataSample from '../../processor/dataSample';\nimport BarSeries from './BarSeries';\nimport BarView from './BarView';\nexport function install(registers) {\n  registers.registerChartView(BarView);\n  registers.registerSeriesModel(BarSeries);\n  registers.registerLayout(registers.PRIORITY.VISUAL.LAYOUT, zrUtil.curry(layout, 'bar'));\n  registers.registerLayout(registers.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT, largeLayout);\n  registers.registerVisual({\n    seriesType: 'bar',\n    reset: function (seriesModel) {\n      seriesModel.getData().setVisual('legendSymbol', 'roundRect');\n    }\n  });\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, dataSample('bar'));\n  registers.registerAction({\n    type: 'changeAxisOrder',\n    event: 'changeAxisOrder',\n    update: 'update'\n  }, function (payload, ecModel) {\n    var componentType = payload.componentType || 'series';\n    ecModel.eachComponent({\n      mainType: componentType,\n      query: payload\n    }, function (componentModel) {\n      if (payload.sortInfo) {\n        componentModel.axis.setCategorySortInfo(payload.sortInfo);\n      }\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parsePercent, linearMap } from '../../util/number';\nimport * as layout from '../../util/layout';\nimport * as zrUtil from 'zrender/lib/core/util';\nvar PI2 = Math.PI * 2;\nvar RADIAN = Math.PI / 180;\n\nfunction getViewRect(seriesModel, api) {\n  return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n}\n\nexport default function pieLayout(seriesType, ecModel, api) {\n  ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n    var data = seriesModel.getData();\n    var valueDim = data.mapDimension('value');\n    var viewRect = getViewRect(seriesModel, api);\n    var center = seriesModel.get('center');\n    var radius = seriesModel.get('radius');\n\n    if (!zrUtil.isArray(radius)) {\n      radius = [0, radius];\n    }\n\n    if (!zrUtil.isArray(center)) {\n      center = [center, center];\n    }\n\n    var width = parsePercent(viewRect.width, api.getWidth());\n    var height = parsePercent(viewRect.height, api.getHeight());\n    var size = Math.min(width, height);\n    var cx = parsePercent(center[0], width) + viewRect.x;\n    var cy = parsePercent(center[1], height) + viewRect.y;\n    var r0 = parsePercent(radius[0], size / 2);\n    var r = parsePercent(radius[1], size / 2);\n    var startAngle = -seriesModel.get('startAngle') * RADIAN;\n    var minAngle = seriesModel.get('minAngle') * RADIAN;\n    var validDataCount = 0;\n    data.each(valueDim, function (value) {\n      !isNaN(value) && validDataCount++;\n    });\n    var sum = data.getSum(valueDim);\n    var unitRadian = Math.PI / (sum || validDataCount) * 2;\n    var clockwise = seriesModel.get('clockwise');\n    var roseType = seriesModel.get('roseType');\n    var stillShowZeroSum = seriesModel.get('stillShowZeroSum');\n    var extent = data.getDataExtent(valueDim);\n    extent[0] = 0;\n    var restAngle = PI2;\n    var valueSumLargerThanMinAngle = 0;\n    var currentAngle = startAngle;\n    var dir = clockwise ? 1 : -1;\n    data.setLayout({\n      viewRect: viewRect,\n      r: r\n    });\n    data.each(valueDim, function (value, idx) {\n      var angle;\n\n      if (isNaN(value)) {\n        data.setItemLayout(idx, {\n          angle: NaN,\n          startAngle: NaN,\n          endAngle: NaN,\n          clockwise: clockwise,\n          cx: cx,\n          cy: cy,\n          r0: r0,\n          r: roseType ? NaN : r\n        });\n        return;\n      }\n\n      if (roseType !== 'area') {\n        angle = sum === 0 && stillShowZeroSum ? unitRadian : value * unitRadian;\n      } else {\n        angle = PI2 / validDataCount;\n      }\n\n      if (angle < minAngle) {\n        angle = minAngle;\n        restAngle -= minAngle;\n      } else {\n        valueSumLargerThanMinAngle += value;\n      }\n\n      var endAngle = currentAngle + dir * angle;\n      data.setItemLayout(idx, {\n        angle: angle,\n        startAngle: currentAngle,\n        endAngle: endAngle,\n        clockwise: clockwise,\n        cx: cx,\n        cy: cy,\n        r0: r0,\n        r: roseType ? linearMap(value, extent, [r0, r]) : r\n      });\n      currentAngle = endAngle;\n    });\n\n    if (restAngle < PI2 && validDataCount) {\n      if (restAngle <= 1e-3) {\n        var angle_1 = PI2 / validDataCount;\n        data.each(valueDim, function (value, idx) {\n          if (!isNaN(value)) {\n            var layout_1 = data.getItemLayout(idx);\n            layout_1.angle = angle_1;\n            layout_1.startAngle = startAngle + dir * idx * angle_1;\n            layout_1.endAngle = startAngle + dir * (idx + 1) * angle_1;\n          }\n        });\n      } else {\n        unitRadian = restAngle / valueSumLargerThanMinAngle;\n        currentAngle = startAngle;\n        data.each(valueDim, function (value, idx) {\n          if (!isNaN(value)) {\n            var layout_2 = data.getItemLayout(idx);\n            var angle = layout_2.angle === minAngle ? minAngle : value * unitRadian;\n            layout_2.startAngle = currentAngle;\n            layout_2.endAngle = currentAngle + dir * angle;\n            currentAngle += dir * angle;\n          }\n        });\n      }\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function dataFilter(seriesType) {\n  return {\n    seriesType: seriesType,\n    reset: function (seriesModel, ecModel) {\n      var legendModels = ecModel.findComponents({\n        mainType: 'legend'\n      });\n\n      if (!legendModels || !legendModels.length) {\n        return;\n      }\n\n      var data = seriesModel.getData();\n      data.filterSelf(function (idx) {\n        var name = data.getName(idx);\n\n        for (var i = 0; i < legendModels.length; i++) {\n          if (!legendModels[i].isSelected(name)) {\n            return false;\n          }\n        }\n\n        return true;\n      });\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parsePercent } from '../../util/number';\nimport { Point } from '../../util/graphic';\nimport { each } from 'zrender/lib/core/util';\nimport { limitTurnAngle, limitSurfaceAngle } from '../../label/labelGuideHelper';\nimport { shiftLayoutOnY } from '../../label/labelLayoutHelper';\nvar RADIAN = Math.PI / 180;\n\nfunction adjustSingleSide(list, cx, cy, r, dir, viewWidth, viewHeight, viewLeft, viewTop, farthestX) {\n  if (list.length < 2) {\n    return;\n  }\n\n  ;\n\n  function recalculateXOnSemiToAlignOnEllipseCurve(semi) {\n    var rB = semi.rB;\n    var rB2 = rB * rB;\n\n    for (var i = 0; i < semi.list.length; i++) {\n      var item = semi.list[i];\n      var dy = Math.abs(item.label.y - cy);\n      var rA = r + item.len;\n      var rA2 = rA * rA;\n      var dx = Math.sqrt((1 - Math.abs(dy * dy / rB2)) * rA2);\n      item.label.x = cx + (dx + item.len2) * dir;\n    }\n  }\n\n  function recalculateX(items) {\n    var topSemi = {\n      list: [],\n      maxY: 0\n    };\n    var bottomSemi = {\n      list: [],\n      maxY: 0\n    };\n\n    for (var i = 0; i < items.length; i++) {\n      if (items[i].labelAlignTo !== 'none') {\n        continue;\n      }\n\n      var item = items[i];\n      var semi = item.label.y > cy ? bottomSemi : topSemi;\n      var dy = Math.abs(item.label.y - cy);\n\n      if (dy > semi.maxY) {\n        var dx = item.label.x - cx - item.len2 * dir;\n        var rA = r + item.len;\n        var rB = dx < rA ? Math.sqrt(dy * dy / (1 - dx * dx / rA / rA)) : rA;\n        semi.rB = rB;\n        semi.maxY = dy;\n      }\n\n      semi.list.push(item);\n    }\n\n    recalculateXOnSemiToAlignOnEllipseCurve(topSemi);\n    recalculateXOnSemiToAlignOnEllipseCurve(bottomSemi);\n  }\n\n  var len = list.length;\n\n  for (var i = 0; i < len; i++) {\n    if (list[i].position === 'outer' && list[i].labelAlignTo === 'labelLine') {\n      var dx = list[i].label.x - farthestX;\n      list[i].linePoints[1][0] += dx;\n      list[i].label.x = farthestX;\n    }\n  }\n\n  if (shiftLayoutOnY(list, viewTop, viewTop + viewHeight)) {\n    recalculateX(list);\n  }\n}\n\nfunction avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop) {\n  var leftList = [];\n  var rightList = [];\n  var leftmostX = Number.MAX_VALUE;\n  var rightmostX = -Number.MAX_VALUE;\n\n  for (var i = 0; i < labelLayoutList.length; i++) {\n    var label = labelLayoutList[i].label;\n\n    if (isPositionCenter(labelLayoutList[i])) {\n      continue;\n    }\n\n    if (label.x < cx) {\n      leftmostX = Math.min(leftmostX, label.x);\n      leftList.push(labelLayoutList[i]);\n    } else {\n      rightmostX = Math.max(rightmostX, label.x);\n      rightList.push(labelLayoutList[i]);\n    }\n  }\n\n  adjustSingleSide(rightList, cx, cy, r, 1, viewWidth, viewHeight, viewLeft, viewTop, rightmostX);\n  adjustSingleSide(leftList, cx, cy, r, -1, viewWidth, viewHeight, viewLeft, viewTop, leftmostX);\n\n  for (var i = 0; i < labelLayoutList.length; i++) {\n    var layout = labelLayoutList[i];\n    var label = layout.label;\n\n    if (isPositionCenter(layout)) {\n      continue;\n    }\n\n    var linePoints = layout.linePoints;\n\n    if (linePoints) {\n      var isAlignToEdge = layout.labelAlignTo === 'edge';\n      var realTextWidth = layout.rect.width;\n      var targetTextWidth = void 0;\n\n      if (isAlignToEdge) {\n        if (label.x < cx) {\n          targetTextWidth = linePoints[2][0] - layout.labelDistance - viewLeft - layout.edgeDistance;\n        } else {\n          targetTextWidth = viewLeft + viewWidth - layout.edgeDistance - linePoints[2][0] - layout.labelDistance;\n        }\n      } else {\n        if (label.x < cx) {\n          targetTextWidth = label.x - viewLeft - layout.bleedMargin;\n        } else {\n          targetTextWidth = viewLeft + viewWidth - label.x - layout.bleedMargin;\n        }\n      }\n\n      if (targetTextWidth < layout.rect.width) {\n        layout.label.style.width = targetTextWidth;\n\n        if (layout.labelAlignTo === 'edge') {\n          realTextWidth = targetTextWidth;\n        }\n      }\n\n      var dist = linePoints[1][0] - linePoints[2][0];\n\n      if (isAlignToEdge) {\n        if (label.x < cx) {\n          linePoints[2][0] = viewLeft + layout.edgeDistance + realTextWidth + layout.labelDistance;\n        } else {\n          linePoints[2][0] = viewLeft + viewWidth - layout.edgeDistance - realTextWidth - layout.labelDistance;\n        }\n      } else {\n        if (label.x < cx) {\n          linePoints[2][0] = label.x + layout.labelDistance;\n        } else {\n          linePoints[2][0] = label.x - layout.labelDistance;\n        }\n\n        linePoints[1][0] = linePoints[2][0] + dist;\n      }\n\n      linePoints[1][1] = linePoints[2][1] = label.y;\n    }\n  }\n}\n\nfunction isPositionCenter(sectorShape) {\n  return sectorShape.position === 'center';\n}\n\nexport default function pieLabelLayout(seriesModel) {\n  var data = seriesModel.getData();\n  var labelLayoutList = [];\n  var cx;\n  var cy;\n  var hasLabelRotate = false;\n  var minShowLabelRadian = (seriesModel.get('minShowLabelAngle') || 0) * RADIAN;\n  var viewRect = data.getLayout('viewRect');\n  var r = data.getLayout('r');\n  var viewWidth = viewRect.width;\n  var viewLeft = viewRect.x;\n  var viewTop = viewRect.y;\n  var viewHeight = viewRect.height;\n\n  function setNotShow(el) {\n    el.ignore = true;\n  }\n\n  function isLabelShown(label) {\n    if (!label.ignore) {\n      return true;\n    }\n\n    for (var key in label.states) {\n      if (label.states[key].ignore === false) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  data.each(function (idx) {\n    var sector = data.getItemGraphicEl(idx);\n    var sectorShape = sector.shape;\n    var label = sector.getTextContent();\n    var labelLine = sector.getTextGuideLine();\n    var itemModel = data.getItemModel(idx);\n    var labelModel = itemModel.getModel('label');\n    var labelPosition = labelModel.get('position') || itemModel.get(['emphasis', 'label', 'position']);\n    var labelDistance = labelModel.get('distanceToLabelLine');\n    var labelAlignTo = labelModel.get('alignTo');\n    var edgeDistance = parsePercent(labelModel.get('edgeDistance'), viewWidth);\n    var bleedMargin = labelModel.get('bleedMargin');\n    var labelLineModel = itemModel.getModel('labelLine');\n    var labelLineLen = labelLineModel.get('length');\n    labelLineLen = parsePercent(labelLineLen, viewWidth);\n    var labelLineLen2 = labelLineModel.get('length2');\n    labelLineLen2 = parsePercent(labelLineLen2, viewWidth);\n\n    if (Math.abs(sectorShape.endAngle - sectorShape.startAngle) < minShowLabelRadian) {\n      each(label.states, setNotShow);\n      label.ignore = true;\n      return;\n    }\n\n    if (!isLabelShown(label)) {\n      return;\n    }\n\n    var midAngle = (sectorShape.startAngle + sectorShape.endAngle) / 2;\n    var nx = Math.cos(midAngle);\n    var ny = Math.sin(midAngle);\n    var textX;\n    var textY;\n    var linePoints;\n    var textAlign;\n    cx = sectorShape.cx;\n    cy = sectorShape.cy;\n    var isLabelInside = labelPosition === 'inside' || labelPosition === 'inner';\n\n    if (labelPosition === 'center') {\n      textX = sectorShape.cx;\n      textY = sectorShape.cy;\n      textAlign = 'center';\n    } else {\n      var x1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * nx : sectorShape.r * nx) + cx;\n      var y1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * ny : sectorShape.r * ny) + cy;\n      textX = x1 + nx * 3;\n      textY = y1 + ny * 3;\n\n      if (!isLabelInside) {\n        var x2 = x1 + nx * (labelLineLen + r - sectorShape.r);\n        var y2 = y1 + ny * (labelLineLen + r - sectorShape.r);\n        var x3 = x2 + (nx < 0 ? -1 : 1) * labelLineLen2;\n        var y3 = y2;\n\n        if (labelAlignTo === 'edge') {\n          textX = nx < 0 ? viewLeft + edgeDistance : viewLeft + viewWidth - edgeDistance;\n        } else {\n          textX = x3 + (nx < 0 ? -labelDistance : labelDistance);\n        }\n\n        textY = y3;\n        linePoints = [[x1, y1], [x2, y2], [x3, y3]];\n      }\n\n      textAlign = isLabelInside ? 'center' : labelAlignTo === 'edge' ? nx > 0 ? 'right' : 'left' : nx > 0 ? 'left' : 'right';\n    }\n\n    var labelRotate;\n    var rotate = labelModel.get('rotate');\n\n    if (typeof rotate === 'number') {\n      labelRotate = rotate * (Math.PI / 180);\n    } else {\n      labelRotate = rotate ? nx < 0 ? -midAngle + Math.PI : -midAngle : 0;\n    }\n\n    hasLabelRotate = !!labelRotate;\n    label.x = textX;\n    label.y = textY;\n    label.rotation = labelRotate;\n    label.setStyle({\n      verticalAlign: 'middle'\n    });\n\n    if (!isLabelInside) {\n      var textRect = label.getBoundingRect().clone();\n      textRect.applyTransform(label.getComputedTransform());\n      var margin = (label.style.margin || 0) + 2.1;\n      textRect.y -= margin / 2;\n      textRect.height += margin;\n      labelLayoutList.push({\n        label: label,\n        labelLine: labelLine,\n        position: labelPosition,\n        len: labelLineLen,\n        len2: labelLineLen2,\n        minTurnAngle: labelLineModel.get('minTurnAngle'),\n        maxSurfaceAngle: labelLineModel.get('maxSurfaceAngle'),\n        surfaceNormal: new Point(nx, ny),\n        linePoints: linePoints,\n        textAlign: textAlign,\n        labelDistance: labelDistance,\n        labelAlignTo: labelAlignTo,\n        edgeDistance: edgeDistance,\n        bleedMargin: bleedMargin,\n        rect: textRect\n      });\n    } else {\n      label.setStyle({\n        align: textAlign\n      });\n      var selectState = label.states.select;\n\n      if (selectState) {\n        selectState.x += label.x;\n        selectState.y += label.y;\n      }\n    }\n\n    sector.setTextConfig({\n      inside: isLabelInside\n    });\n  });\n\n  if (!hasLabelRotate && seriesModel.get('avoidLabelOverlap')) {\n    avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop);\n  }\n\n  for (var i = 0; i < labelLayoutList.length; i++) {\n    var layout = labelLayoutList[i];\n    var label = layout.label;\n    var labelLine = layout.labelLine;\n    var notShowLabel = isNaN(label.x) || isNaN(label.y);\n\n    if (label) {\n      label.setStyle({\n        align: layout.textAlign\n      });\n\n      if (notShowLabel) {\n        each(label.states, setNotShow);\n        label.ignore = true;\n      }\n\n      var selectState = label.states.select;\n\n      if (selectState) {\n        selectState.x += label.x;\n        selectState.y += label.y;\n      }\n    }\n\n    if (labelLine) {\n      var linePoints = layout.linePoints;\n\n      if (notShowLabel || !linePoints) {\n        each(labelLine.states, setNotShow);\n        labelLine.ignore = true;\n      } else {\n        limitTurnAngle(linePoints, layout.minTurnAngle);\n        limitSurfaceAngle(linePoints, layout.surfaceNormal, layout.maxSurfaceAngle);\n        labelLine.setShape({\n          points: linePoints\n        });\n        label.__hostTarget.textGuideLineConfig = {\n          anchor: new Point(linePoints[0][0], linePoints[0][1])\n        };\n      }\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isArray } from 'zrender/lib/core/util';\nimport { parsePercent } from 'zrender/lib/contain/text';\nexport function getSectorCornerRadius(model, shape) {\n  var cornerRadius = model.get('borderRadius');\n\n  if (cornerRadius == null) {\n    return null;\n  }\n\n  if (!isArray(cornerRadius)) {\n    cornerRadius = [cornerRadius, cornerRadius];\n  }\n\n  return {\n    innerCornerRadius: parsePercent(cornerRadius[0], shape.r0),\n    cornerRadius: parsePercent(cornerRadius[1], shape.r)\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __assign, __extends } from \"tslib\";\nimport { extend, retrieve3 } from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport ChartView from '../../view/Chart';\nimport labelLayout from './labelLayout';\nimport { setLabelLineStyle, getLabelLineStatesModels } from '../../label/labelGuideHelper';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { getSectorCornerRadius } from '../helper/pieHelper';\n\nvar PiePiece = function (_super) {\n  __extends(PiePiece, _super);\n\n  function PiePiece(data, idx, startAngle) {\n    var _this = _super.call(this) || this;\n\n    _this.z2 = 2;\n    var polyline = new graphic.Polyline();\n    var text = new graphic.Text();\n\n    _this.setTextGuideLine(polyline);\n\n    _this.setTextContent(text);\n\n    _this.updateData(data, idx, startAngle, true);\n\n    return _this;\n  }\n\n  PiePiece.prototype.updateData = function (data, idx, startAngle, firstCreate) {\n    var sector = this;\n    var seriesModel = data.hostModel;\n    var itemModel = data.getItemModel(idx);\n    var emphasisModel = itemModel.getModel('emphasis');\n    var layout = data.getItemLayout(idx);\n    var sectorShape = extend(getSectorCornerRadius(itemModel.getModel('itemStyle'), layout) || {}, layout);\n\n    if (firstCreate) {\n      sector.setShape(sectorShape);\n      var animationType = seriesModel.getShallow('animationType');\n\n      if (animationType === 'scale') {\n        sector.shape.r = layout.r0;\n        graphic.initProps(sector, {\n          shape: {\n            r: layout.r\n          }\n        }, seriesModel, idx);\n      } else {\n        if (startAngle != null) {\n          sector.setShape({\n            startAngle: startAngle,\n            endAngle: startAngle\n          });\n          graphic.initProps(sector, {\n            shape: {\n              startAngle: layout.startAngle,\n              endAngle: layout.endAngle\n            }\n          }, seriesModel, idx);\n        } else {\n          sector.shape.endAngle = layout.startAngle;\n          graphic.updateProps(sector, {\n            shape: {\n              endAngle: layout.endAngle\n            }\n          }, seriesModel, idx);\n        }\n      }\n    } else {\n      graphic.updateProps(sector, {\n        shape: sectorShape\n      }, seriesModel, idx);\n    }\n\n    sector.useStyle(data.getItemVisual(idx, 'style'));\n    setStatesStylesFromModel(sector, itemModel);\n    var midAngle = (layout.startAngle + layout.endAngle) / 2;\n    var offset = seriesModel.get('selectedOffset');\n    var dx = Math.cos(midAngle) * offset;\n    var dy = Math.sin(midAngle) * offset;\n    var cursorStyle = itemModel.getShallow('cursor');\n    cursorStyle && sector.attr('cursor', cursorStyle);\n\n    this._updateLabel(seriesModel, data, idx);\n\n    sector.ensureState('emphasis').shape = __assign({\n      r: layout.r + (emphasisModel.get('scale') ? emphasisModel.get('scaleSize') || 0 : 0)\n    }, getSectorCornerRadius(emphasisModel.getModel('itemStyle'), layout));\n    extend(sector.ensureState('select'), {\n      x: dx,\n      y: dy,\n      shape: getSectorCornerRadius(itemModel.getModel(['select', 'itemStyle']), layout)\n    });\n    extend(sector.ensureState('blur'), {\n      shape: getSectorCornerRadius(itemModel.getModel(['blur', 'itemStyle']), layout)\n    });\n    var labelLine = sector.getTextGuideLine();\n    var labelText = sector.getTextContent();\n    extend(labelLine.ensureState('select'), {\n      x: dx,\n      y: dy\n    });\n    extend(labelText.ensureState('select'), {\n      x: dx,\n      y: dy\n    });\n    enableHoverEmphasis(this, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n  };\n\n  PiePiece.prototype._updateLabel = function (seriesModel, data, idx) {\n    var sector = this;\n    var itemModel = data.getItemModel(idx);\n    var labelLineModel = itemModel.getModel('labelLine');\n    var style = data.getItemVisual(idx, 'style');\n    var visualColor = style && style.fill;\n    var visualOpacity = style && style.opacity;\n    setLabelStyle(sector, getLabelStatesModels(itemModel), {\n      labelFetcher: data.hostModel,\n      labelDataIndex: idx,\n      inheritColor: visualColor,\n      defaultOpacity: visualOpacity,\n      defaultText: seriesModel.getFormattedLabel(idx, 'normal') || data.getName(idx)\n    });\n    var labelText = sector.getTextContent();\n    sector.setTextConfig({\n      position: null,\n      rotation: null\n    });\n    labelText.attr({\n      z2: 10\n    });\n    setLabelLineStyle(this, getLabelLineStatesModels(itemModel), {\n      stroke: visualColor,\n      opacity: retrieve3(labelLineModel.get(['lineStyle', 'opacity']), visualOpacity, 1)\n    });\n  };\n\n  return PiePiece;\n}(graphic.Sector);\n\nvar PieView = function (_super) {\n  __extends(PieView, _super);\n\n  function PieView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.ignoreLabelLineUpdate = true;\n    return _this;\n  }\n\n  PieView.prototype.init = function () {\n    var sectorGroup = new graphic.Group();\n    this._sectorGroup = sectorGroup;\n  };\n\n  PieView.prototype.render = function (seriesModel, ecModel, api, payload) {\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var group = this.group;\n    var startAngle;\n\n    if (!oldData && data.count() > 0) {\n      var shape = data.getItemLayout(0);\n\n      for (var s = 1; isNaN(shape && shape.startAngle) && s < data.count(); ++s) {\n        shape = data.getItemLayout(s);\n      }\n\n      if (shape) {\n        startAngle = shape.startAngle;\n      }\n    }\n\n    data.diff(oldData).add(function (idx) {\n      var piePiece = new PiePiece(data, idx, startAngle);\n      data.setItemGraphicEl(idx, piePiece);\n      group.add(piePiece);\n    }).update(function (newIdx, oldIdx) {\n      var piePiece = oldData.getItemGraphicEl(oldIdx);\n      piePiece.updateData(data, newIdx, startAngle);\n      piePiece.off('click');\n      group.add(piePiece);\n      data.setItemGraphicEl(newIdx, piePiece);\n    }).remove(function (idx) {\n      var piePiece = oldData.getItemGraphicEl(idx);\n      graphic.removeElementWithFadeOut(piePiece, seriesModel, idx);\n    }).execute();\n    labelLayout(seriesModel);\n\n    if (seriesModel.get('animationTypeUpdate') !== 'expansion') {\n      this._data = data;\n    }\n  };\n\n  PieView.prototype.dispose = function () {};\n\n  PieView.prototype.containPoint = function (point, seriesModel) {\n    var data = seriesModel.getData();\n    var itemLayout = data.getItemLayout(0);\n\n    if (itemLayout) {\n      var dx = point[0] - itemLayout.cx;\n      var dy = point[1] - itemLayout.cy;\n      var radius = Math.sqrt(dx * dx + dy * dy);\n      return radius <= itemLayout.r && radius >= itemLayout.r0;\n    }\n  };\n\n  PieView.type = 'pie';\n  return PieView;\n}(ChartView);\n\nexport default PieView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport createDimensions from '../../data/helper/createDimensions';\nimport List from '../../data/List';\nimport { extend, isArray } from 'zrender/lib/core/util';\nexport default function createListSimply(seriesModel, opt, nameList) {\n  opt = isArray(opt) && {\n    coordDimensions: opt\n  } || extend({}, opt);\n  var source = seriesModel.getSource();\n  var dimensionsInfo = createDimensions(source, opt);\n  var list = new List(dimensionsInfo, seriesModel);\n  list.initData(source, nameList);\n  return list;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar LegendVisualProvider = function () {\n  function LegendVisualProvider(getDataWithEncodedVisual, getRawData) {\n    this._getDataWithEncodedVisual = getDataWithEncodedVisual;\n    this._getRawData = getRawData;\n  }\n\n  LegendVisualProvider.prototype.getAllNames = function () {\n    var rawData = this._getRawData();\n\n    return rawData.mapArray(rawData.getName);\n  };\n\n  LegendVisualProvider.prototype.containName = function (name) {\n    var rawData = this._getRawData();\n\n    return rawData.indexOfName(name) >= 0;\n  };\n\n  LegendVisualProvider.prototype.indexOfName = function (name) {\n    var dataWithEncodedVisual = this._getDataWithEncodedVisual();\n\n    return dataWithEncodedVisual.indexOfName(name);\n  };\n\n  LegendVisualProvider.prototype.getItemVisual = function (dataIndex, key) {\n    var dataWithEncodedVisual = this._getDataWithEncodedVisual();\n\n    return dataWithEncodedVisual.getItemVisual(dataIndex, key);\n  };\n\n  return LegendVisualProvider;\n}();\n\nexport default LegendVisualProvider;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListSimply from '../helper/createListSimply';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nimport { getPercentWithPrecision } from '../../util/number';\nimport { makeSeriesEncodeForNameBased } from '../../data/helper/sourceHelper';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider';\nimport SeriesModel from '../../model/Series';\n\nvar PieSeriesModel = function (_super) {\n  __extends(PieSeriesModel, _super);\n\n  function PieSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.useColorPaletteOnData = true;\n    return _this;\n  }\n\n  PieSeriesModel.prototype.init = function (option) {\n    _super.prototype.init.apply(this, arguments);\n\n    this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));\n\n    this._defaultLabelLine(option);\n  };\n\n  PieSeriesModel.prototype.mergeOption = function () {\n    _super.prototype.mergeOption.apply(this, arguments);\n  };\n\n  PieSeriesModel.prototype.getInitialData = function () {\n    return createListSimply(this, {\n      coordDimensions: ['value'],\n      encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)\n    });\n  };\n\n  PieSeriesModel.prototype.getDataParams = function (dataIndex) {\n    var data = this.getData();\n\n    var params = _super.prototype.getDataParams.call(this, dataIndex);\n\n    var valueList = [];\n    data.each(data.mapDimension('value'), function (value) {\n      valueList.push(value);\n    });\n    params.percent = getPercentWithPrecision(valueList, dataIndex, data.hostModel.get('percentPrecision'));\n    params.$vars.push('percent');\n    return params;\n  };\n\n  PieSeriesModel.prototype._defaultLabelLine = function (option) {\n    modelUtil.defaultEmphasis(option, 'labelLine', ['show']);\n    var labelLineNormalOpt = option.labelLine;\n    var labelLineEmphasisOpt = option.emphasis.labelLine;\n    labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show;\n    labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show;\n  };\n\n  PieSeriesModel.type = 'series.pie';\n  PieSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    center: ['50%', '50%'],\n    radius: [0, '75%'],\n    clockwise: true,\n    startAngle: 90,\n    minAngle: 0,\n    minShowLabelAngle: 0,\n    selectedOffset: 10,\n    percentPrecision: 2,\n    stillShowZeroSum: true,\n    left: 0,\n    top: 0,\n    right: 0,\n    bottom: 0,\n    width: null,\n    height: null,\n    label: {\n      rotate: 0,\n      show: true,\n      overflow: 'truncate',\n      position: 'outer',\n      alignTo: 'none',\n      edgeDistance: '25%',\n      bleedMargin: 10,\n      distanceToLabelLine: 5\n    },\n    labelLine: {\n      show: true,\n      length: 15,\n      length2: 15,\n      smooth: false,\n      minTurnAngle: 90,\n      maxSurfaceAngle: 90,\n      lineStyle: {\n        width: 1,\n        type: 'solid'\n      }\n    },\n    itemStyle: {\n      borderWidth: 1\n    },\n    labelLayout: {\n      hideOverlap: true\n    },\n    emphasis: {\n      scale: true,\n      scaleSize: 5\n    },\n    avoidLabelOverlap: true,\n    animationType: 'expansion',\n    animationDuration: 1000,\n    animationTypeUpdate: 'transition',\n    animationEasingUpdate: 'cubicInOut',\n    animationDurationUpdate: 500,\n    animationEasing: 'cubicInOut'\n  };\n  return PieSeriesModel;\n}(SeriesModel);\n\nexport default PieSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createLegacyDataSelectAction } from '../../legacy/dataSelectAction';\nimport pieLayout from '../pie/pieLayout';\nimport dataFilter from '../../processor/dataFilter';\nimport { curry } from 'zrender/lib/core/util';\nimport PieView from './PieView';\nimport PieSeriesModel from './PieSeries';\nexport function install(registers) {\n  registers.registerChartView(PieView);\n  registers.registerSeriesModel(PieSeriesModel);\n  createLegacyDataSelectAction('pie', registers.registerAction);\n  registers.registerLayout(curry(pieLayout, 'pie'));\n  registers.registerProcessor(dataFilter('pie'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\n\nvar GridModel = function (_super) {\n  __extends(GridModel, _super);\n\n  function GridModel() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  GridModel.type = 'grid';\n  GridModel.dependencies = ['xAxis', 'yAxis'];\n  GridModel.layoutMode = 'box';\n  GridModel.defaultOption = {\n    show: false,\n    zlevel: 0,\n    z: 0,\n    left: '10%',\n    top: 60,\n    right: '10%',\n    bottom: 70,\n    containLabel: false,\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderWidth: 1,\n    borderColor: '#ccc'\n  };\n  return GridModel;\n}(ComponentModel);\n\nexport default GridModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin';\nimport { SINGLE_REFERRING } from '../../util/model';\n\nvar CartesianAxisModel = function (_super) {\n  __extends(CartesianAxisModel, _super);\n\n  function CartesianAxisModel() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  CartesianAxisModel.prototype.getCoordSysModel = function () {\n    return this.getReferringComponents('grid', SINGLE_REFERRING).models[0];\n  };\n\n  CartesianAxisModel.type = 'cartesian2dAxis';\n  return CartesianAxisModel;\n}(ComponentModel);\n\nexport { CartesianAxisModel };\nzrUtil.mixin(CartesianAxisModel, AxisModelCommonMixin);\nexport default CartesianAxisModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar defaultOption = {\n  show: true,\n  zlevel: 0,\n  z: 0,\n  inverse: false,\n  name: '',\n  nameLocation: 'end',\n  nameRotate: null,\n  nameTruncate: {\n    maxWidth: null,\n    ellipsis: '...',\n    placeholder: '.'\n  },\n  nameTextStyle: {},\n  nameGap: 15,\n  silent: false,\n  triggerEvent: false,\n  tooltip: {\n    show: false\n  },\n  axisPointer: {},\n  axisLine: {\n    show: true,\n    onZero: true,\n    onZeroAxisIndex: null,\n    lineStyle: {\n      color: '#6E7079',\n      width: 1,\n      type: 'solid'\n    },\n    symbol: ['none', 'none'],\n    symbolSize: [10, 15]\n  },\n  axisTick: {\n    show: true,\n    inside: false,\n    length: 5,\n    lineStyle: {\n      width: 1\n    }\n  },\n  axisLabel: {\n    show: true,\n    inside: false,\n    rotate: 0,\n    showMinLabel: null,\n    showMaxLabel: null,\n    margin: 8,\n    fontSize: 12\n  },\n  splitLine: {\n    show: true,\n    lineStyle: {\n      color: ['#E0E6F1'],\n      width: 1,\n      type: 'solid'\n    }\n  },\n  splitArea: {\n    show: false,\n    areaStyle: {\n      color: ['rgba(250,250,250,0.2)', 'rgba(210,219,238,0.2)']\n    }\n  }\n};\nvar categoryAxis = zrUtil.merge({\n  boundaryGap: true,\n  deduplication: null,\n  splitLine: {\n    show: false\n  },\n  axisTick: {\n    alignWithLabel: false,\n    interval: 'auto'\n  },\n  axisLabel: {\n    interval: 'auto'\n  }\n}, defaultOption);\nvar valueAxis = zrUtil.merge({\n  boundaryGap: [0, 0],\n  axisLine: {\n    show: 'auto'\n  },\n  axisTick: {\n    show: 'auto'\n  },\n  splitNumber: 5,\n  minorTick: {\n    show: false,\n    splitNumber: 5,\n    length: 3,\n    lineStyle: {}\n  },\n  minorSplitLine: {\n    show: false,\n    lineStyle: {\n      color: '#F4F7FD',\n      width: 1\n    }\n  }\n}, defaultOption);\nvar timeAxis = zrUtil.merge({\n  scale: true,\n  splitNumber: 6,\n  axisLabel: {\n    showMinLabel: false,\n    showMaxLabel: false,\n    rich: {\n      primary: {\n        fontWeight: 'bold'\n      }\n    }\n  },\n  splitLine: {\n    show: false\n  }\n}, valueAxis);\nvar logAxis = zrUtil.defaults({\n  scale: true,\n  logBase: 10\n}, valueAxis);\nexport default {\n  category: categoryAxis,\n  value: valueAxis,\n  time: timeAxis,\n  log: logAxis\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport var AXIS_TYPES = {\n  value: 1,\n  category: 1,\n  time: 1,\n  log: 1\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport axisDefault from './axisDefault';\nimport { getLayoutParams, mergeLayoutParam, fetchLayoutMode } from '../util/layout';\nimport OrdinalMeta from '../data/OrdinalMeta';\nimport { AXIS_TYPES } from './axisCommonTypes';\nimport { each, merge } from 'zrender/lib/core/util';\nexport default function axisModelCreator(registers, axisName, BaseAxisModelClass, extraDefaultOption) {\n  each(AXIS_TYPES, function (v, axisType) {\n    var defaultOption = merge(merge({}, axisDefault[axisType], true), extraDefaultOption, true);\n\n    var AxisModel = function (_super) {\n      __extends(AxisModel, _super);\n\n      function AxisModel() {\n        var args = [];\n\n        for (var _i = 0; _i < arguments.length; _i++) {\n          args[_i] = arguments[_i];\n        }\n\n        var _this = _super.apply(this, args) || this;\n\n        _this.type = axisName + 'Axis.' + axisType;\n        return _this;\n      }\n\n      AxisModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n        var layoutMode = fetchLayoutMode(this);\n        var inputPositionParams = layoutMode ? getLayoutParams(option) : {};\n        var themeModel = ecModel.getTheme();\n        merge(option, themeModel.get(axisType + 'Axis'));\n        merge(option, this.getDefaultOption());\n        option.type = getAxisType(option);\n\n        if (layoutMode) {\n          mergeLayoutParam(option, inputPositionParams, layoutMode);\n        }\n      };\n\n      AxisModel.prototype.optionUpdated = function () {\n        var thisOption = this.option;\n\n        if (thisOption.type === 'category') {\n          this.__ordinalMeta = OrdinalMeta.createByAxisModel(this);\n        }\n      };\n\n      AxisModel.prototype.getCategories = function (rawData) {\n        var option = this.option;\n\n        if (option.type === 'category') {\n          if (rawData) {\n            return option.data;\n          }\n\n          return this.__ordinalMeta.categories;\n        }\n      };\n\n      AxisModel.prototype.getOrdinalMeta = function () {\n        return this.__ordinalMeta;\n      };\n\n      AxisModel.type = axisName + 'Axis.' + axisType;\n      AxisModel.defaultOption = defaultOption;\n      return AxisModel;\n    }(BaseAxisModelClass);\n\n    registers.registerComponentModel(AxisModel);\n  });\n  registers.registerSubTypeDefaulter(axisName + 'Axis', getAxisType);\n}\n\nfunction getAxisType(option) {\n  return option.type || (option.data ? 'category' : 'value');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nvar Cartesian = function () {\n  function Cartesian(name) {\n    this.type = 'cartesian';\n    this._dimList = [];\n    this._axes = {};\n    this.name = name || '';\n  }\n\n  Cartesian.prototype.getAxis = function (dim) {\n    return this._axes[dim];\n  };\n\n  Cartesian.prototype.getAxes = function () {\n    return zrUtil.map(this._dimList, function (dim) {\n      return this._axes[dim];\n    }, this);\n  };\n\n  Cartesian.prototype.getAxesByScale = function (scaleType) {\n    scaleType = scaleType.toLowerCase();\n    return zrUtil.filter(this.getAxes(), function (axis) {\n      return axis.scale.type === scaleType;\n    });\n  };\n\n  Cartesian.prototype.addAxis = function (axis) {\n    var dim = axis.dim;\n    this._axes[dim] = axis;\n\n    this._dimList.push(dim);\n  };\n\n  return Cartesian;\n}();\n\n;\nexport default Cartesian;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport Cartesian from './Cartesian';\nimport { invert } from 'zrender/lib/core/matrix';\nimport { applyTransform } from 'zrender/lib/core/vector';\nexport var cartesian2DDimensions = ['x', 'y'];\n\nfunction canCalculateAffineTransform(scale) {\n  return scale.type === 'interval' || scale.type === 'time';\n}\n\nvar Cartesian2D = function (_super) {\n  __extends(Cartesian2D, _super);\n\n  function Cartesian2D() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'cartesian2d';\n    _this.dimensions = cartesian2DDimensions;\n    return _this;\n  }\n\n  Cartesian2D.prototype.calcAffineTransform = function () {\n    this._transform = this._invTransform = null;\n    var xAxisScale = this.getAxis('x').scale;\n    var yAxisScale = this.getAxis('y').scale;\n\n    if (!canCalculateAffineTransform(xAxisScale) || !canCalculateAffineTransform(yAxisScale)) {\n      return;\n    }\n\n    var xScaleExtent = xAxisScale.getExtent();\n    var yScaleExtent = yAxisScale.getExtent();\n    var start = this.dataToPoint([xScaleExtent[0], yScaleExtent[0]]);\n    var end = this.dataToPoint([xScaleExtent[1], yScaleExtent[1]]);\n    var xScaleSpan = xScaleExtent[1] - xScaleExtent[0];\n    var yScaleSpan = yScaleExtent[1] - yScaleExtent[0];\n\n    if (!xScaleSpan || !yScaleSpan) {\n      return;\n    }\n\n    var scaleX = (end[0] - start[0]) / xScaleSpan;\n    var scaleY = (end[1] - start[1]) / yScaleSpan;\n    var translateX = start[0] - xScaleExtent[0] * scaleX;\n    var translateY = start[1] - yScaleExtent[0] * scaleY;\n    var m = this._transform = [scaleX, 0, 0, scaleY, translateX, translateY];\n    this._invTransform = invert([], m);\n  };\n\n  Cartesian2D.prototype.getBaseAxis = function () {\n    return this.getAxesByScale('ordinal')[0] || this.getAxesByScale('time')[0] || this.getAxis('x');\n  };\n\n  Cartesian2D.prototype.containPoint = function (point) {\n    var axisX = this.getAxis('x');\n    var axisY = this.getAxis('y');\n    return axisX.contain(axisX.toLocalCoord(point[0])) && axisY.contain(axisY.toLocalCoord(point[1]));\n  };\n\n  Cartesian2D.prototype.containData = function (data) {\n    return this.getAxis('x').containData(data[0]) && this.getAxis('y').containData(data[1]);\n  };\n\n  Cartesian2D.prototype.dataToPoint = function (data, reserved, out) {\n    out = out || [];\n    var xVal = data[0];\n    var yVal = data[1];\n\n    if (this._transform && xVal != null && isFinite(xVal) && yVal != null && isFinite(yVal)) {\n      return applyTransform(out, data, this._transform);\n    }\n\n    var xAxis = this.getAxis('x');\n    var yAxis = this.getAxis('y');\n    out[0] = xAxis.toGlobalCoord(xAxis.dataToCoord(xVal));\n    out[1] = yAxis.toGlobalCoord(yAxis.dataToCoord(yVal));\n    return out;\n  };\n\n  Cartesian2D.prototype.clampData = function (data, out) {\n    var xScale = this.getAxis('x').scale;\n    var yScale = this.getAxis('y').scale;\n    var xAxisExtent = xScale.getExtent();\n    var yAxisExtent = yScale.getExtent();\n    var x = xScale.parse(data[0]);\n    var y = yScale.parse(data[1]);\n    out = out || [];\n    out[0] = Math.min(Math.max(Math.min(xAxisExtent[0], xAxisExtent[1]), x), Math.max(xAxisExtent[0], xAxisExtent[1]));\n    out[1] = Math.min(Math.max(Math.min(yAxisExtent[0], yAxisExtent[1]), y), Math.max(yAxisExtent[0], yAxisExtent[1]));\n    return out;\n  };\n\n  Cartesian2D.prototype.pointToData = function (point, out) {\n    out = out || [];\n\n    if (this._invTransform) {\n      return applyTransform(out, point, this._invTransform);\n    }\n\n    var xAxis = this.getAxis('x');\n    var yAxis = this.getAxis('y');\n    out[0] = xAxis.coordToData(xAxis.toLocalCoord(point[0]));\n    out[1] = yAxis.coordToData(yAxis.toLocalCoord(point[1]));\n    return out;\n  };\n\n  Cartesian2D.prototype.getOtherAxis = function (axis) {\n    return this.getAxis(axis.dim === 'x' ? 'y' : 'x');\n  };\n\n  Cartesian2D.prototype.getArea = function () {\n    var xExtent = this.getAxis('x').getGlobalExtent();\n    var yExtent = this.getAxis('y').getGlobalExtent();\n    var x = Math.min(xExtent[0], xExtent[1]);\n    var y = Math.min(yExtent[0], yExtent[1]);\n    var width = Math.max(xExtent[0], xExtent[1]) - x;\n    var height = Math.max(yExtent[0], yExtent[1]) - y;\n    return new BoundingRect(x, y, width, height);\n  };\n\n  return Cartesian2D;\n}(Cartesian);\n\n;\nexport default Cartesian2D;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis';\n\nvar Axis2D = function (_super) {\n  __extends(Axis2D, _super);\n\n  function Axis2D(dim, scale, coordExtent, axisType, position) {\n    var _this = _super.call(this, dim, scale, coordExtent) || this;\n\n    _this.index = 0;\n    _this.type = axisType || 'value';\n    _this.position = position || 'bottom';\n    return _this;\n  }\n\n  Axis2D.prototype.isHorizontal = function () {\n    var position = this.position;\n    return position === 'top' || position === 'bottom';\n  };\n\n  Axis2D.prototype.getGlobalExtent = function (asc) {\n    var ret = this.getExtent();\n    ret[0] = this.toGlobalCoord(ret[0]);\n    ret[1] = this.toGlobalCoord(ret[1]);\n    asc && ret[0] > ret[1] && ret.reverse();\n    return ret;\n  };\n\n  Axis2D.prototype.pointToData = function (point, clamp) {\n    return this.coordToData(this.toLocalCoord(point[this.dim === 'x' ? 0 : 1]), clamp);\n  };\n\n  Axis2D.prototype.setCategorySortInfo = function (info) {\n    if (this.type !== 'category') {\n      return false;\n    }\n\n    this.model.option.categorySortInfo = info;\n    this.scale.setSortInfo(info);\n  };\n\n  return Axis2D;\n}(Axis);\n\nexport default Axis2D;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { SINGLE_REFERRING } from '../../util/model';\nexport function layout(gridModel, axisModel, opt) {\n  opt = opt || {};\n  var grid = gridModel.coordinateSystem;\n  var axis = axisModel.axis;\n  var layout = {};\n  var otherAxisOnZeroOf = axis.getAxesOnZeroOf()[0];\n  var rawAxisPosition = axis.position;\n  var axisPosition = otherAxisOnZeroOf ? 'onZero' : rawAxisPosition;\n  var axisDim = axis.dim;\n  var rect = grid.getRect();\n  var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height];\n  var idx = {\n    left: 0,\n    right: 1,\n    top: 0,\n    bottom: 1,\n    onZero: 2\n  };\n  var axisOffset = axisModel.get('offset') || 0;\n  var posBound = axisDim === 'x' ? [rectBound[2] - axisOffset, rectBound[3] + axisOffset] : [rectBound[0] - axisOffset, rectBound[1] + axisOffset];\n\n  if (otherAxisOnZeroOf) {\n    var onZeroCoord = otherAxisOnZeroOf.toGlobalCoord(otherAxisOnZeroOf.dataToCoord(0));\n    posBound[idx.onZero] = Math.max(Math.min(onZeroCoord, posBound[1]), posBound[0]);\n  }\n\n  layout.position = [axisDim === 'y' ? posBound[idx[axisPosition]] : rectBound[0], axisDim === 'x' ? posBound[idx[axisPosition]] : rectBound[3]];\n  layout.rotation = Math.PI / 2 * (axisDim === 'x' ? 0 : 1);\n  var dirMap = {\n    top: -1,\n    bottom: 1,\n    left: -1,\n    right: 1\n  };\n  layout.labelDirection = layout.tickDirection = layout.nameDirection = dirMap[rawAxisPosition];\n  layout.labelOffset = otherAxisOnZeroOf ? posBound[idx[rawAxisPosition]] - posBound[idx.onZero] : 0;\n\n  if (axisModel.get(['axisTick', 'inside'])) {\n    layout.tickDirection = -layout.tickDirection;\n  }\n\n  if (zrUtil.retrieve(opt.labelInside, axisModel.get(['axisLabel', 'inside']))) {\n    layout.labelDirection = -layout.labelDirection;\n  }\n\n  var labelRotate = axisModel.get(['axisLabel', 'rotate']);\n  layout.labelRotate = axisPosition === 'top' ? -labelRotate : labelRotate;\n  layout.z2 = 1;\n  return layout;\n}\nexport function isCartesian2DSeries(seriesModel) {\n  return seriesModel.get('coordinateSystem') === 'cartesian2d';\n}\nexport function findAxisModels(seriesModel) {\n  var axisModelMap = {\n    xAxisModel: null,\n    yAxisModel: null\n  };\n  zrUtil.each(axisModelMap, function (v, key) {\n    var axisType = key.replace(/Model$/, '');\n    var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!axisModel) {\n        throw new Error(axisType + ' \"' + zrUtil.retrieve3(seriesModel.get(axisType + 'Index'), seriesModel.get(axisType + 'Id'), 0) + '\" not found');\n      }\n    }\n\n    axisModelMap[key] = axisModel;\n  });\n  return axisModelMap;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isObject, each, indexOf, retrieve3 } from 'zrender/lib/core/util';\nimport { getLayoutRect } from '../../util/layout';\nimport { createScaleByModel, ifAxisCrossZero, niceScaleExtent, estimateLabelUnionRect, getDataDimensionsOnAxis } from '../../coord/axisHelper';\nimport Cartesian2D, { cartesian2DDimensions } from './Cartesian2D';\nimport Axis2D from './Axis2D';\nimport { SINGLE_REFERRING } from '../../util/model';\nimport { isCartesian2DSeries, findAxisModels } from './cartesianAxisHelper';\n\nvar Grid = function () {\n  function Grid(gridModel, ecModel, api) {\n    this.type = 'grid';\n    this._coordsMap = {};\n    this._coordsList = [];\n    this._axesMap = {};\n    this._axesList = [];\n    this.axisPointerEnabled = true;\n    this.dimensions = cartesian2DDimensions;\n\n    this._initCartesian(gridModel, ecModel, api);\n\n    this.model = gridModel;\n  }\n\n  Grid.prototype.getRect = function () {\n    return this._rect;\n  };\n\n  Grid.prototype.update = function (ecModel, api) {\n    var axesMap = this._axesMap;\n\n    this._updateScale(ecModel, this.model);\n\n    each(axesMap.x, function (xAxis) {\n      niceScaleExtent(xAxis.scale, xAxis.model);\n    });\n    each(axesMap.y, function (yAxis) {\n      niceScaleExtent(yAxis.scale, yAxis.model);\n    });\n    var onZeroRecords = {};\n    each(axesMap.x, function (xAxis) {\n      fixAxisOnZero(axesMap, 'y', xAxis, onZeroRecords);\n    });\n    each(axesMap.y, function (yAxis) {\n      fixAxisOnZero(axesMap, 'x', yAxis, onZeroRecords);\n    });\n    this.resize(this.model, api);\n  };\n\n  Grid.prototype.resize = function (gridModel, api, ignoreContainLabel) {\n    var boxLayoutParams = gridModel.getBoxLayoutParams();\n    var isContainLabel = !ignoreContainLabel && gridModel.get('containLabel');\n    var gridRect = getLayoutRect(boxLayoutParams, {\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n    this._rect = gridRect;\n    var axesList = this._axesList;\n    adjustAxes();\n\n    if (isContainLabel) {\n      each(axesList, function (axis) {\n        if (!axis.model.get(['axisLabel', 'inside'])) {\n          var labelUnionRect = estimateLabelUnionRect(axis);\n\n          if (labelUnionRect) {\n            var dim = axis.isHorizontal() ? 'height' : 'width';\n            var margin = axis.model.get(['axisLabel', 'margin']);\n            gridRect[dim] -= labelUnionRect[dim] + margin;\n\n            if (axis.position === 'top') {\n              gridRect.y += labelUnionRect.height + margin;\n            } else if (axis.position === 'left') {\n              gridRect.x += labelUnionRect.width + margin;\n            }\n          }\n        }\n      });\n      adjustAxes();\n    }\n\n    each(this._coordsList, function (coord) {\n      coord.calcAffineTransform();\n    });\n\n    function adjustAxes() {\n      each(axesList, function (axis) {\n        var isHorizontal = axis.isHorizontal();\n        var extent = isHorizontal ? [0, gridRect.width] : [0, gridRect.height];\n        var idx = axis.inverse ? 1 : 0;\n        axis.setExtent(extent[idx], extent[1 - idx]);\n        updateAxisTransform(axis, isHorizontal ? gridRect.x : gridRect.y);\n      });\n    }\n  };\n\n  Grid.prototype.getAxis = function (dim, axisIndex) {\n    var axesMapOnDim = this._axesMap[dim];\n\n    if (axesMapOnDim != null) {\n      return axesMapOnDim[axisIndex || 0];\n    }\n  };\n\n  Grid.prototype.getAxes = function () {\n    return this._axesList.slice();\n  };\n\n  Grid.prototype.getCartesian = function (xAxisIndex, yAxisIndex) {\n    if (xAxisIndex != null && yAxisIndex != null) {\n      var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\n      return this._coordsMap[key];\n    }\n\n    if (isObject(xAxisIndex)) {\n      yAxisIndex = xAxisIndex.yAxisIndex;\n      xAxisIndex = xAxisIndex.xAxisIndex;\n    }\n\n    for (var i = 0, coordList = this._coordsList; i < coordList.length; i++) {\n      if (coordList[i].getAxis('x').index === xAxisIndex || coordList[i].getAxis('y').index === yAxisIndex) {\n        return coordList[i];\n      }\n    }\n  };\n\n  Grid.prototype.getCartesians = function () {\n    return this._coordsList.slice();\n  };\n\n  Grid.prototype.convertToPixel = function (ecModel, finder, value) {\n    var target = this._findConvertTarget(finder);\n\n    return target.cartesian ? target.cartesian.dataToPoint(value) : target.axis ? target.axis.toGlobalCoord(target.axis.dataToCoord(value)) : null;\n  };\n\n  Grid.prototype.convertFromPixel = function (ecModel, finder, value) {\n    var target = this._findConvertTarget(finder);\n\n    return target.cartesian ? target.cartesian.pointToData(value) : target.axis ? target.axis.coordToData(target.axis.toLocalCoord(value)) : null;\n  };\n\n  Grid.prototype._findConvertTarget = function (finder) {\n    var seriesModel = finder.seriesModel;\n    var xAxisModel = finder.xAxisModel || seriesModel && seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0];\n    var yAxisModel = finder.yAxisModel || seriesModel && seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0];\n    var gridModel = finder.gridModel;\n    var coordsList = this._coordsList;\n    var cartesian;\n    var axis;\n\n    if (seriesModel) {\n      cartesian = seriesModel.coordinateSystem;\n      indexOf(coordsList, cartesian) < 0 && (cartesian = null);\n    } else if (xAxisModel && yAxisModel) {\n      cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n    } else if (xAxisModel) {\n      axis = this.getAxis('x', xAxisModel.componentIndex);\n    } else if (yAxisModel) {\n      axis = this.getAxis('y', yAxisModel.componentIndex);\n    } else if (gridModel) {\n      var grid = gridModel.coordinateSystem;\n\n      if (grid === this) {\n        cartesian = this._coordsList[0];\n      }\n    }\n\n    return {\n      cartesian: cartesian,\n      axis: axis\n    };\n  };\n\n  Grid.prototype.containPoint = function (point) {\n    var coord = this._coordsList[0];\n\n    if (coord) {\n      return coord.containPoint(point);\n    }\n  };\n\n  Grid.prototype._initCartesian = function (gridModel, ecModel, api) {\n    var _this = this;\n\n    var grid = this;\n    var axisPositionUsed = {\n      left: false,\n      right: false,\n      top: false,\n      bottom: false\n    };\n    var axesMap = {\n      x: {},\n      y: {}\n    };\n    var axesCount = {\n      x: 0,\n      y: 0\n    };\n    ecModel.eachComponent('xAxis', createAxisCreator('x'), this);\n    ecModel.eachComponent('yAxis', createAxisCreator('y'), this);\n\n    if (!axesCount.x || !axesCount.y) {\n      this._axesMap = {};\n      this._axesList = [];\n      return;\n    }\n\n    this._axesMap = axesMap;\n    each(axesMap.x, function (xAxis, xAxisIndex) {\n      each(axesMap.y, function (yAxis, yAxisIndex) {\n        var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\n        var cartesian = new Cartesian2D(key);\n        cartesian.master = _this;\n        cartesian.model = gridModel;\n        _this._coordsMap[key] = cartesian;\n\n        _this._coordsList.push(cartesian);\n\n        cartesian.addAxis(xAxis);\n        cartesian.addAxis(yAxis);\n      });\n    });\n\n    function createAxisCreator(dimName) {\n      return function (axisModel, idx) {\n        if (!isAxisUsedInTheGrid(axisModel, gridModel)) {\n          return;\n        }\n\n        var axisPosition = axisModel.get('position');\n\n        if (dimName === 'x') {\n          if (axisPosition !== 'top' && axisPosition !== 'bottom') {\n            axisPosition = axisPositionUsed.bottom ? 'top' : 'bottom';\n          }\n        } else {\n          if (axisPosition !== 'left' && axisPosition !== 'right') {\n            axisPosition = axisPositionUsed.left ? 'right' : 'left';\n          }\n        }\n\n        axisPositionUsed[axisPosition] = true;\n        var axis = new Axis2D(dimName, createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisPosition);\n        var isCategory = axis.type === 'category';\n        axis.onBand = isCategory && axisModel.get('boundaryGap');\n        axis.inverse = axisModel.get('inverse');\n        axisModel.axis = axis;\n        axis.model = axisModel;\n        axis.grid = grid;\n        axis.index = idx;\n\n        grid._axesList.push(axis);\n\n        axesMap[dimName][idx] = axis;\n        axesCount[dimName]++;\n      };\n    }\n  };\n\n  Grid.prototype._updateScale = function (ecModel, gridModel) {\n    each(this._axesList, function (axis) {\n      axis.scale.setExtent(Infinity, -Infinity);\n\n      if (axis.type === 'category') {\n        var categorySortInfo = axis.model.get('categorySortInfo');\n        axis.scale.setSortInfo(categorySortInfo);\n      }\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      if (isCartesian2DSeries(seriesModel)) {\n        var axesModelMap = findAxisModels(seriesModel);\n        var xAxisModel = axesModelMap.xAxisModel;\n        var yAxisModel = axesModelMap.yAxisModel;\n\n        if (!isAxisUsedInTheGrid(xAxisModel, gridModel) || !isAxisUsedInTheGrid(yAxisModel, gridModel)) {\n          return;\n        }\n\n        var cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n        var data = seriesModel.getData();\n        var xAxis = cartesian.getAxis('x');\n        var yAxis = cartesian.getAxis('y');\n\n        if (data.type === 'list') {\n          unionExtent(data, xAxis);\n          unionExtent(data, yAxis);\n        }\n      }\n    }, this);\n\n    function unionExtent(data, axis) {\n      each(getDataDimensionsOnAxis(data, axis.dim), function (dim) {\n        axis.scale.unionExtentFromData(data, dim);\n      });\n    }\n  };\n\n  Grid.prototype.getTooltipAxes = function (dim) {\n    var baseAxes = [];\n    var otherAxes = [];\n    each(this.getCartesians(), function (cartesian) {\n      var baseAxis = dim != null && dim !== 'auto' ? cartesian.getAxis(dim) : cartesian.getBaseAxis();\n      var otherAxis = cartesian.getOtherAxis(baseAxis);\n      indexOf(baseAxes, baseAxis) < 0 && baseAxes.push(baseAxis);\n      indexOf(otherAxes, otherAxis) < 0 && otherAxes.push(otherAxis);\n    });\n    return {\n      baseAxes: baseAxes,\n      otherAxes: otherAxes\n    };\n  };\n\n  Grid.create = function (ecModel, api) {\n    var grids = [];\n    ecModel.eachComponent('grid', function (gridModel, idx) {\n      var grid = new Grid(gridModel, ecModel, api);\n      grid.name = 'grid_' + idx;\n      grid.resize(gridModel, api, true);\n      gridModel.coordinateSystem = grid;\n      grids.push(grid);\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      if (!isCartesian2DSeries(seriesModel)) {\n        return;\n      }\n\n      var axesModelMap = findAxisModels(seriesModel);\n      var xAxisModel = axesModelMap.xAxisModel;\n      var yAxisModel = axesModelMap.yAxisModel;\n      var gridModel = xAxisModel.getCoordSysModel();\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (!gridModel) {\n          throw new Error('Grid \"' + retrieve3(xAxisModel.get('gridIndex'), xAxisModel.get('gridId'), 0) + '\" not found');\n        }\n\n        if (xAxisModel.getCoordSysModel() !== yAxisModel.getCoordSysModel()) {\n          throw new Error('xAxis and yAxis must use the same grid');\n        }\n      }\n\n      var grid = gridModel.coordinateSystem;\n      seriesModel.coordinateSystem = grid.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n    });\n    return grids;\n  };\n\n  Grid.dimensions = cartesian2DDimensions;\n  return Grid;\n}();\n\nfunction isAxisUsedInTheGrid(axisModel, gridModel) {\n  return axisModel.getCoordSysModel() === gridModel;\n}\n\nfunction fixAxisOnZero(axesMap, otherAxisDim, axis, onZeroRecords) {\n  axis.getAxesOnZeroOf = function () {\n    return otherAxisOnZeroOf ? [otherAxisOnZeroOf] : [];\n  };\n\n  var otherAxes = axesMap[otherAxisDim];\n  var otherAxisOnZeroOf;\n  var axisModel = axis.model;\n  var onZero = axisModel.get(['axisLine', 'onZero']);\n  var onZeroAxisIndex = axisModel.get(['axisLine', 'onZeroAxisIndex']);\n\n  if (!onZero) {\n    return;\n  }\n\n  if (onZeroAxisIndex != null) {\n    if (canOnZeroToAxis(otherAxes[onZeroAxisIndex])) {\n      otherAxisOnZeroOf = otherAxes[onZeroAxisIndex];\n    }\n  } else {\n    for (var idx in otherAxes) {\n      if (otherAxes.hasOwnProperty(idx) && canOnZeroToAxis(otherAxes[idx]) && !onZeroRecords[getOnZeroRecordKey(otherAxes[idx])]) {\n        otherAxisOnZeroOf = otherAxes[idx];\n        break;\n      }\n    }\n  }\n\n  if (otherAxisOnZeroOf) {\n    onZeroRecords[getOnZeroRecordKey(otherAxisOnZeroOf)] = true;\n  }\n\n  function getOnZeroRecordKey(axis) {\n    return axis.dim + '_' + axis.index;\n  }\n}\n\nfunction canOnZeroToAxis(axis) {\n  return axis && axis.type !== 'category' && axis.type !== 'time' && ifAxisCrossZero(axis);\n}\n\nfunction updateAxisTransform(axis, coordBase) {\n  var axisExtent = axis.getExtent();\n  var axisExtentSum = axisExtent[0] + axisExtent[1];\n  axis.toGlobalCoord = axis.dim === 'x' ? function (coord) {\n    return coord + coordBase;\n  } : function (coord) {\n    return axisExtentSum - coord + coordBase;\n  };\n  axis.toLocalCoord = axis.dim === 'x' ? function (coord) {\n    return coord - coordBase;\n  } : function (coord) {\n    return axisExtentSum - coord + coordBase;\n  };\n}\n\nexport default Grid;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { retrieve, defaults, extend, each, isObject } from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { createTextStyle } from '../../label/labelStyle';\nimport Model from '../../model/Model';\nimport { isRadianAroundZero, remRadian } from '../../util/number';\nimport { createSymbol } from '../../util/symbol';\nimport * as matrixUtil from 'zrender/lib/core/matrix';\nimport { applyTransform as v2ApplyTransform } from 'zrender/lib/core/vector';\nimport { shouldShowAllLabels } from '../../coord/axisHelper';\nvar PI = Math.PI;\n\nvar AxisBuilder = function () {\n  function AxisBuilder(axisModel, opt) {\n    this.group = new graphic.Group();\n    this.opt = opt;\n    this.axisModel = axisModel;\n    defaults(opt, {\n      labelOffset: 0,\n      nameDirection: 1,\n      tickDirection: 1,\n      labelDirection: 1,\n      silent: true,\n      handleAutoShown: function () {\n        return true;\n      }\n    });\n    var transformGroup = new graphic.Group({\n      x: opt.position[0],\n      y: opt.position[1],\n      rotation: opt.rotation\n    });\n    transformGroup.updateTransform();\n    this._transformGroup = transformGroup;\n  }\n\n  AxisBuilder.prototype.hasBuilder = function (name) {\n    return !!builders[name];\n  };\n\n  AxisBuilder.prototype.add = function (name) {\n    builders[name](this.opt, this.axisModel, this.group, this._transformGroup);\n  };\n\n  AxisBuilder.prototype.getGroup = function () {\n    return this.group;\n  };\n\n  AxisBuilder.innerTextLayout = function (axisRotation, textRotation, direction) {\n    var rotationDiff = remRadian(textRotation - axisRotation);\n    var textAlign;\n    var textVerticalAlign;\n\n    if (isRadianAroundZero(rotationDiff)) {\n      textVerticalAlign = direction > 0 ? 'top' : 'bottom';\n      textAlign = 'center';\n    } else if (isRadianAroundZero(rotationDiff - PI)) {\n      textVerticalAlign = direction > 0 ? 'bottom' : 'top';\n      textAlign = 'center';\n    } else {\n      textVerticalAlign = 'middle';\n\n      if (rotationDiff > 0 && rotationDiff < PI) {\n        textAlign = direction > 0 ? 'right' : 'left';\n      } else {\n        textAlign = direction > 0 ? 'left' : 'right';\n      }\n    }\n\n    return {\n      rotation: rotationDiff,\n      textAlign: textAlign,\n      textVerticalAlign: textVerticalAlign\n    };\n  };\n\n  AxisBuilder.makeAxisEventDataBase = function (axisModel) {\n    var eventData = {\n      componentType: axisModel.mainType,\n      componentIndex: axisModel.componentIndex\n    };\n    eventData[axisModel.mainType + 'Index'] = axisModel.componentIndex;\n    return eventData;\n  };\n\n  AxisBuilder.isLabelSilent = function (axisModel) {\n    var tooltipOpt = axisModel.get('tooltip');\n    return axisModel.get('silent') || !(axisModel.get('triggerEvent') || tooltipOpt && tooltipOpt.show);\n  };\n\n  return AxisBuilder;\n}();\n\n;\nvar builders = {\n  axisLine: function (opt, axisModel, group, transformGroup) {\n    var shown = axisModel.get(['axisLine', 'show']);\n\n    if (shown === 'auto' && opt.handleAutoShown) {\n      shown = opt.handleAutoShown('axisLine');\n    }\n\n    if (!shown) {\n      return;\n    }\n\n    var extent = axisModel.axis.getExtent();\n    var matrix = transformGroup.transform;\n    var pt1 = [extent[0], 0];\n    var pt2 = [extent[1], 0];\n\n    if (matrix) {\n      v2ApplyTransform(pt1, pt1, matrix);\n      v2ApplyTransform(pt2, pt2, matrix);\n    }\n\n    var lineStyle = extend({\n      lineCap: 'round'\n    }, axisModel.getModel(['axisLine', 'lineStyle']).getLineStyle());\n    var line = new graphic.Line({\n      subPixelOptimize: true,\n      shape: {\n        x1: pt1[0],\n        y1: pt1[1],\n        x2: pt2[0],\n        y2: pt2[1]\n      },\n      style: lineStyle,\n      strokeContainThreshold: opt.strokeContainThreshold || 5,\n      silent: true,\n      z2: 1\n    });\n    line.anid = 'line';\n    group.add(line);\n    var arrows = axisModel.get(['axisLine', 'symbol']);\n    var arrowSize = axisModel.get(['axisLine', 'symbolSize']);\n    var arrowOffset = axisModel.get(['axisLine', 'symbolOffset']) || 0;\n\n    if (typeof arrowOffset === 'number') {\n      arrowOffset = [arrowOffset, arrowOffset];\n    }\n\n    if (arrows != null) {\n      if (typeof arrows === 'string') {\n        arrows = [arrows, arrows];\n      }\n\n      if (typeof arrowSize === 'string' || typeof arrowSize === 'number') {\n        arrowSize = [arrowSize, arrowSize];\n      }\n\n      var symbolWidth_1 = arrowSize[0];\n      var symbolHeight_1 = arrowSize[1];\n      each([{\n        rotate: opt.rotation + Math.PI / 2,\n        offset: arrowOffset[0],\n        r: 0\n      }, {\n        rotate: opt.rotation - Math.PI / 2,\n        offset: arrowOffset[1],\n        r: Math.sqrt((pt1[0] - pt2[0]) * (pt1[0] - pt2[0]) + (pt1[1] - pt2[1]) * (pt1[1] - pt2[1]))\n      }], function (point, index) {\n        if (arrows[index] !== 'none' && arrows[index] != null) {\n          var symbol = createSymbol(arrows[index], -symbolWidth_1 / 2, -symbolHeight_1 / 2, symbolWidth_1, symbolHeight_1, lineStyle.stroke, true);\n          var r = point.r + point.offset;\n          symbol.attr({\n            rotation: point.rotate,\n            x: pt1[0] + r * Math.cos(opt.rotation),\n            y: pt1[1] - r * Math.sin(opt.rotation),\n            silent: true,\n            z2: 11\n          });\n          group.add(symbol);\n        }\n      });\n    }\n  },\n  axisTickLabel: function (opt, axisModel, group, transformGroup) {\n    var ticksEls = buildAxisMajorTicks(group, transformGroup, axisModel, opt);\n    var labelEls = buildAxisLabel(group, transformGroup, axisModel, opt);\n    fixMinMaxLabelShow(axisModel, labelEls, ticksEls);\n    buildAxisMinorTicks(group, transformGroup, axisModel, opt.tickDirection);\n  },\n  axisName: function (opt, axisModel, group, transformGroup) {\n    var name = retrieve(opt.axisName, axisModel.get('name'));\n\n    if (!name) {\n      return;\n    }\n\n    var nameLocation = axisModel.get('nameLocation');\n    var nameDirection = opt.nameDirection;\n    var textStyleModel = axisModel.getModel('nameTextStyle');\n    var gap = axisModel.get('nameGap') || 0;\n    var extent = axisModel.axis.getExtent();\n    var gapSignal = extent[0] > extent[1] ? -1 : 1;\n    var pos = [nameLocation === 'start' ? extent[0] - gapSignal * gap : nameLocation === 'end' ? extent[1] + gapSignal * gap : (extent[0] + extent[1]) / 2, isNameLocationCenter(nameLocation) ? opt.labelOffset + nameDirection * gap : 0];\n    var labelLayout;\n    var nameRotation = axisModel.get('nameRotate');\n\n    if (nameRotation != null) {\n      nameRotation = nameRotation * PI / 180;\n    }\n\n    var axisNameAvailableWidth;\n\n    if (isNameLocationCenter(nameLocation)) {\n      labelLayout = AxisBuilder.innerTextLayout(opt.rotation, nameRotation != null ? nameRotation : opt.rotation, nameDirection);\n    } else {\n      labelLayout = endTextLayout(opt.rotation, nameLocation, nameRotation || 0, extent);\n      axisNameAvailableWidth = opt.axisNameAvailableWidth;\n\n      if (axisNameAvailableWidth != null) {\n        axisNameAvailableWidth = Math.abs(axisNameAvailableWidth / Math.sin(labelLayout.rotation));\n        !isFinite(axisNameAvailableWidth) && (axisNameAvailableWidth = null);\n      }\n    }\n\n    var textFont = textStyleModel.getFont();\n    var truncateOpt = axisModel.get('nameTruncate', true) || {};\n    var ellipsis = truncateOpt.ellipsis;\n    var maxWidth = retrieve(opt.nameTruncateMaxWidth, truncateOpt.maxWidth, axisNameAvailableWidth);\n    var tooltipOpt = axisModel.get('tooltip', true);\n    var mainType = axisModel.mainType;\n    var formatterParams = {\n      componentType: mainType,\n      name: name,\n      $vars: ['name']\n    };\n    formatterParams[mainType + 'Index'] = axisModel.componentIndex;\n    var textEl = new graphic.Text({\n      x: pos[0],\n      y: pos[1],\n      rotation: labelLayout.rotation,\n      silent: AxisBuilder.isLabelSilent(axisModel),\n      style: createTextStyle(textStyleModel, {\n        text: name,\n        font: textFont,\n        overflow: 'truncate',\n        width: maxWidth,\n        ellipsis: ellipsis,\n        fill: textStyleModel.getTextColor() || axisModel.get(['axisLine', 'lineStyle', 'color']),\n        align: textStyleModel.get('align') || labelLayout.textAlign,\n        verticalAlign: textStyleModel.get('verticalAlign') || labelLayout.textVerticalAlign\n      }),\n      z2: 1\n    });\n    textEl.tooltip = tooltipOpt && tooltipOpt.show ? extend({\n      content: name,\n      formatter: function () {\n        return name;\n      },\n      formatterParams: formatterParams\n    }, tooltipOpt) : null;\n    textEl.__fullText = name;\n    textEl.anid = 'name';\n\n    if (axisModel.get('triggerEvent')) {\n      var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\n      eventData.targetType = 'axisName';\n      eventData.name = name;\n      getECData(textEl).eventData = eventData;\n    }\n\n    transformGroup.add(textEl);\n    textEl.updateTransform();\n    group.add(textEl);\n    textEl.decomposeTransform();\n  }\n};\n\nfunction endTextLayout(rotation, textPosition, textRotate, extent) {\n  var rotationDiff = remRadian(textRotate - rotation);\n  var textAlign;\n  var textVerticalAlign;\n  var inverse = extent[0] > extent[1];\n  var onLeft = textPosition === 'start' && !inverse || textPosition !== 'start' && inverse;\n\n  if (isRadianAroundZero(rotationDiff - PI / 2)) {\n    textVerticalAlign = onLeft ? 'bottom' : 'top';\n    textAlign = 'center';\n  } else if (isRadianAroundZero(rotationDiff - PI * 1.5)) {\n    textVerticalAlign = onLeft ? 'top' : 'bottom';\n    textAlign = 'center';\n  } else {\n    textVerticalAlign = 'middle';\n\n    if (rotationDiff < PI * 1.5 && rotationDiff > PI / 2) {\n      textAlign = onLeft ? 'left' : 'right';\n    } else {\n      textAlign = onLeft ? 'right' : 'left';\n    }\n  }\n\n  return {\n    rotation: rotationDiff,\n    textAlign: textAlign,\n    textVerticalAlign: textVerticalAlign\n  };\n}\n\nfunction fixMinMaxLabelShow(axisModel, labelEls, tickEls) {\n  if (shouldShowAllLabels(axisModel.axis)) {\n    return;\n  }\n\n  var showMinLabel = axisModel.get(['axisLabel', 'showMinLabel']);\n  var showMaxLabel = axisModel.get(['axisLabel', 'showMaxLabel']);\n  labelEls = labelEls || [];\n  tickEls = tickEls || [];\n  var firstLabel = labelEls[0];\n  var nextLabel = labelEls[1];\n  var lastLabel = labelEls[labelEls.length - 1];\n  var prevLabel = labelEls[labelEls.length - 2];\n  var firstTick = tickEls[0];\n  var nextTick = tickEls[1];\n  var lastTick = tickEls[tickEls.length - 1];\n  var prevTick = tickEls[tickEls.length - 2];\n\n  if (showMinLabel === false) {\n    ignoreEl(firstLabel);\n    ignoreEl(firstTick);\n  } else if (isTwoLabelOverlapped(firstLabel, nextLabel)) {\n    if (showMinLabel) {\n      ignoreEl(nextLabel);\n      ignoreEl(nextTick);\n    } else {\n      ignoreEl(firstLabel);\n      ignoreEl(firstTick);\n    }\n  }\n\n  if (showMaxLabel === false) {\n    ignoreEl(lastLabel);\n    ignoreEl(lastTick);\n  } else if (isTwoLabelOverlapped(prevLabel, lastLabel)) {\n    if (showMaxLabel) {\n      ignoreEl(prevLabel);\n      ignoreEl(prevTick);\n    } else {\n      ignoreEl(lastLabel);\n      ignoreEl(lastTick);\n    }\n  }\n}\n\nfunction ignoreEl(el) {\n  el && (el.ignore = true);\n}\n\nfunction isTwoLabelOverlapped(current, next) {\n  var firstRect = current && current.getBoundingRect().clone();\n  var nextRect = next && next.getBoundingRect().clone();\n\n  if (!firstRect || !nextRect) {\n    return;\n  }\n\n  var mRotationBack = matrixUtil.identity([]);\n  matrixUtil.rotate(mRotationBack, mRotationBack, -current.rotation);\n  firstRect.applyTransform(matrixUtil.mul([], mRotationBack, current.getLocalTransform()));\n  nextRect.applyTransform(matrixUtil.mul([], mRotationBack, next.getLocalTransform()));\n  return firstRect.intersect(nextRect);\n}\n\nfunction isNameLocationCenter(nameLocation) {\n  return nameLocation === 'middle' || nameLocation === 'center';\n}\n\nfunction createTicks(ticksCoords, tickTransform, tickEndCoord, tickLineStyle, anidPrefix) {\n  var tickEls = [];\n  var pt1 = [];\n  var pt2 = [];\n\n  for (var i = 0; i < ticksCoords.length; i++) {\n    var tickCoord = ticksCoords[i].coord;\n    pt1[0] = tickCoord;\n    pt1[1] = 0;\n    pt2[0] = tickCoord;\n    pt2[1] = tickEndCoord;\n\n    if (tickTransform) {\n      v2ApplyTransform(pt1, pt1, tickTransform);\n      v2ApplyTransform(pt2, pt2, tickTransform);\n    }\n\n    var tickEl = new graphic.Line({\n      subPixelOptimize: true,\n      shape: {\n        x1: pt1[0],\n        y1: pt1[1],\n        x2: pt2[0],\n        y2: pt2[1]\n      },\n      style: tickLineStyle,\n      z2: 2,\n      autoBatch: true,\n      silent: true\n    });\n    tickEl.anid = anidPrefix + '_' + ticksCoords[i].tickValue;\n    tickEls.push(tickEl);\n  }\n\n  return tickEls;\n}\n\nfunction buildAxisMajorTicks(group, transformGroup, axisModel, opt) {\n  var axis = axisModel.axis;\n  var tickModel = axisModel.getModel('axisTick');\n  var shown = tickModel.get('show');\n\n  if (shown === 'auto' && opt.handleAutoShown) {\n    shown = opt.handleAutoShown('axisTick');\n  }\n\n  if (!shown || axis.scale.isBlank()) {\n    return;\n  }\n\n  var lineStyleModel = tickModel.getModel('lineStyle');\n  var tickEndCoord = opt.tickDirection * tickModel.get('length');\n  var ticksCoords = axis.getTicksCoords();\n  var ticksEls = createTicks(ticksCoords, transformGroup.transform, tickEndCoord, defaults(lineStyleModel.getLineStyle(), {\n    stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\n  }), 'ticks');\n\n  for (var i = 0; i < ticksEls.length; i++) {\n    group.add(ticksEls[i]);\n  }\n\n  return ticksEls;\n}\n\nfunction buildAxisMinorTicks(group, transformGroup, axisModel, tickDirection) {\n  var axis = axisModel.axis;\n  var minorTickModel = axisModel.getModel('minorTick');\n\n  if (!minorTickModel.get('show') || axis.scale.isBlank()) {\n    return;\n  }\n\n  var minorTicksCoords = axis.getMinorTicksCoords();\n\n  if (!minorTicksCoords.length) {\n    return;\n  }\n\n  var lineStyleModel = minorTickModel.getModel('lineStyle');\n  var tickEndCoord = tickDirection * minorTickModel.get('length');\n  var minorTickLineStyle = defaults(lineStyleModel.getLineStyle(), defaults(axisModel.getModel('axisTick').getLineStyle(), {\n    stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\n  }));\n\n  for (var i = 0; i < minorTicksCoords.length; i++) {\n    var minorTicksEls = createTicks(minorTicksCoords[i], transformGroup.transform, tickEndCoord, minorTickLineStyle, 'minorticks_' + i);\n\n    for (var k = 0; k < minorTicksEls.length; k++) {\n      group.add(minorTicksEls[k]);\n    }\n  }\n}\n\nfunction buildAxisLabel(group, transformGroup, axisModel, opt) {\n  var axis = axisModel.axis;\n  var show = retrieve(opt.axisLabelShow, axisModel.get(['axisLabel', 'show']));\n\n  if (!show || axis.scale.isBlank()) {\n    return;\n  }\n\n  var labelModel = axisModel.getModel('axisLabel');\n  var labelMargin = labelModel.get('margin');\n  var labels = axis.getViewLabels();\n  var labelRotation = (retrieve(opt.labelRotate, labelModel.get('rotate')) || 0) * PI / 180;\n  var labelLayout = AxisBuilder.innerTextLayout(opt.rotation, labelRotation, opt.labelDirection);\n  var rawCategoryData = axisModel.getCategories && axisModel.getCategories(true);\n  var labelEls = [];\n  var silent = AxisBuilder.isLabelSilent(axisModel);\n  var triggerEvent = axisModel.get('triggerEvent');\n  each(labels, function (labelItem, index) {\n    var tickValue = axis.scale.type === 'ordinal' ? axis.scale.getRawOrdinalNumber(labelItem.tickValue) : labelItem.tickValue;\n    var formattedLabel = labelItem.formattedLabel;\n    var rawLabel = labelItem.rawLabel;\n    var itemLabelModel = labelModel;\n\n    if (rawCategoryData && rawCategoryData[tickValue]) {\n      var rawCategoryItem = rawCategoryData[tickValue];\n\n      if (isObject(rawCategoryItem) && rawCategoryItem.textStyle) {\n        itemLabelModel = new Model(rawCategoryItem.textStyle, labelModel, axisModel.ecModel);\n      }\n    }\n\n    var textColor = itemLabelModel.getTextColor() || axisModel.get(['axisLine', 'lineStyle', 'color']);\n    var tickCoord = axis.dataToCoord(tickValue);\n    var textEl = new graphic.Text({\n      x: tickCoord,\n      y: opt.labelOffset + opt.labelDirection * labelMargin,\n      rotation: labelLayout.rotation,\n      silent: silent,\n      z2: 10,\n      style: createTextStyle(itemLabelModel, {\n        text: formattedLabel,\n        align: itemLabelModel.getShallow('align', true) || labelLayout.textAlign,\n        verticalAlign: itemLabelModel.getShallow('verticalAlign', true) || itemLabelModel.getShallow('baseline', true) || labelLayout.textVerticalAlign,\n        fill: typeof textColor === 'function' ? textColor(axis.type === 'category' ? rawLabel : axis.type === 'value' ? tickValue + '' : tickValue, index) : textColor\n      })\n    });\n    textEl.anid = 'label_' + tickValue;\n\n    if (triggerEvent) {\n      var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\n      eventData.targetType = 'axisLabel';\n      eventData.value = rawLabel;\n      getECData(textEl).eventData = eventData;\n    }\n\n    transformGroup.add(textEl);\n    textEl.updateTransform();\n    labelEls.push(textEl);\n    group.add(textEl);\n    textEl.decomposeTransform();\n  });\n  return labelEls;\n}\n\nexport default AxisBuilder;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Model from '../../model/Model';\nimport { each, curry, clone, defaults, isArray, indexOf } from 'zrender/lib/core/util';\nexport function collect(ecModel, api) {\n  var result = {\n    axesInfo: {},\n    seriesInvolved: false,\n    coordSysAxesInfo: {},\n    coordSysMap: {}\n  };\n  collectAxesInfo(result, ecModel, api);\n  result.seriesInvolved && collectSeriesInfo(result, ecModel);\n  return result;\n}\n\nfunction collectAxesInfo(result, ecModel, api) {\n  var globalTooltipModel = ecModel.getComponent('tooltip');\n  var globalAxisPointerModel = ecModel.getComponent('axisPointer');\n  var linksOption = globalAxisPointerModel.get('link', true) || [];\n  var linkGroups = [];\n  each(api.getCoordinateSystems(), function (coordSys) {\n    if (!coordSys.axisPointerEnabled) {\n      return;\n    }\n\n    var coordSysKey = makeKey(coordSys.model);\n    var axesInfoInCoordSys = result.coordSysAxesInfo[coordSysKey] = {};\n    result.coordSysMap[coordSysKey] = coordSys;\n    var coordSysModel = coordSys.model;\n    var baseTooltipModel = coordSysModel.getModel('tooltip', globalTooltipModel);\n    each(coordSys.getAxes(), curry(saveTooltipAxisInfo, false, null));\n\n    if (coordSys.getTooltipAxes && globalTooltipModel && baseTooltipModel.get('show')) {\n      var triggerAxis = baseTooltipModel.get('trigger') === 'axis';\n      var cross = baseTooltipModel.get(['axisPointer', 'type']) === 'cross';\n      var tooltipAxes = coordSys.getTooltipAxes(baseTooltipModel.get(['axisPointer', 'axis']));\n\n      if (triggerAxis || cross) {\n        each(tooltipAxes.baseAxes, curry(saveTooltipAxisInfo, cross ? 'cross' : true, triggerAxis));\n      }\n\n      if (cross) {\n        each(tooltipAxes.otherAxes, curry(saveTooltipAxisInfo, 'cross', false));\n      }\n    }\n\n    function saveTooltipAxisInfo(fromTooltip, triggerTooltip, axis) {\n      var axisPointerModel = axis.model.getModel('axisPointer', globalAxisPointerModel);\n      var axisPointerShow = axisPointerModel.get('show');\n\n      if (!axisPointerShow || axisPointerShow === 'auto' && !fromTooltip && !isHandleTrigger(axisPointerModel)) {\n        return;\n      }\n\n      if (triggerTooltip == null) {\n        triggerTooltip = axisPointerModel.get('triggerTooltip');\n      }\n\n      axisPointerModel = fromTooltip ? makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) : axisPointerModel;\n      var snap = axisPointerModel.get('snap');\n      var axisKey = makeKey(axis.model);\n      var involveSeries = triggerTooltip || snap || axis.type === 'category';\n      var axisInfo = result.axesInfo[axisKey] = {\n        key: axisKey,\n        axis: axis,\n        coordSys: coordSys,\n        axisPointerModel: axisPointerModel,\n        triggerTooltip: triggerTooltip,\n        involveSeries: involveSeries,\n        snap: snap,\n        useHandle: isHandleTrigger(axisPointerModel),\n        seriesModels: [],\n        linkGroup: null\n      };\n      axesInfoInCoordSys[axisKey] = axisInfo;\n      result.seriesInvolved = result.seriesInvolved || involveSeries;\n      var groupIndex = getLinkGroupIndex(linksOption, axis);\n\n      if (groupIndex != null) {\n        var linkGroup = linkGroups[groupIndex] || (linkGroups[groupIndex] = {\n          axesInfo: {}\n        });\n        linkGroup.axesInfo[axisKey] = axisInfo;\n        linkGroup.mapper = linksOption[groupIndex].mapper;\n        axisInfo.linkGroup = linkGroup;\n      }\n    }\n  });\n}\n\nfunction makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) {\n  var tooltipAxisPointerModel = baseTooltipModel.getModel('axisPointer');\n  var fields = ['type', 'snap', 'lineStyle', 'shadowStyle', 'label', 'animation', 'animationDurationUpdate', 'animationEasingUpdate', 'z'];\n  var volatileOption = {};\n  each(fields, function (field) {\n    volatileOption[field] = clone(tooltipAxisPointerModel.get(field));\n  });\n  volatileOption.snap = axis.type !== 'category' && !!triggerTooltip;\n\n  if (tooltipAxisPointerModel.get('type') === 'cross') {\n    volatileOption.type = 'line';\n  }\n\n  var labelOption = volatileOption.label || (volatileOption.label = {});\n  labelOption.show == null && (labelOption.show = false);\n\n  if (fromTooltip === 'cross') {\n    var tooltipAxisPointerLabelShow = tooltipAxisPointerModel.get(['label', 'show']);\n    labelOption.show = tooltipAxisPointerLabelShow != null ? tooltipAxisPointerLabelShow : true;\n\n    if (!triggerTooltip) {\n      var crossStyle = volatileOption.lineStyle = tooltipAxisPointerModel.get('crossStyle');\n      crossStyle && defaults(labelOption, crossStyle.textStyle);\n    }\n  }\n\n  return axis.model.getModel('axisPointer', new Model(volatileOption, globalAxisPointerModel, ecModel));\n}\n\nfunction collectSeriesInfo(result, ecModel) {\n  ecModel.eachSeries(function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n    var seriesTooltipTrigger = seriesModel.get(['tooltip', 'trigger'], true);\n    var seriesTooltipShow = seriesModel.get(['tooltip', 'show'], true);\n\n    if (!coordSys || seriesTooltipTrigger === 'none' || seriesTooltipTrigger === false || seriesTooltipTrigger === 'item' || seriesTooltipShow === false || seriesModel.get(['axisPointer', 'show'], true) === false) {\n      return;\n    }\n\n    each(result.coordSysAxesInfo[makeKey(coordSys.model)], function (axisInfo) {\n      var axis = axisInfo.axis;\n\n      if (coordSys.getAxis(axis.dim) === axis) {\n        axisInfo.seriesModels.push(seriesModel);\n        axisInfo.seriesDataCount == null && (axisInfo.seriesDataCount = 0);\n        axisInfo.seriesDataCount += seriesModel.getData().count();\n      }\n    });\n  });\n}\n\nfunction getLinkGroupIndex(linksOption, axis) {\n  var axisModel = axis.model;\n  var dim = axis.dim;\n\n  for (var i = 0; i < linksOption.length; i++) {\n    var linkOption = linksOption[i] || {};\n\n    if (checkPropInLink(linkOption[dim + 'AxisId'], axisModel.id) || checkPropInLink(linkOption[dim + 'AxisIndex'], axisModel.componentIndex) || checkPropInLink(linkOption[dim + 'AxisName'], axisModel.name)) {\n      return i;\n    }\n  }\n}\n\nfunction checkPropInLink(linkPropValue, axisPropValue) {\n  return linkPropValue === 'all' || isArray(linkPropValue) && indexOf(linkPropValue, axisPropValue) >= 0 || linkPropValue === axisPropValue;\n}\n\nexport function fixValue(axisModel) {\n  var axisInfo = getAxisInfo(axisModel);\n\n  if (!axisInfo) {\n    return;\n  }\n\n  var axisPointerModel = axisInfo.axisPointerModel;\n  var scale = axisInfo.axis.scale;\n  var option = axisPointerModel.option;\n  var status = axisPointerModel.get('status');\n  var value = axisPointerModel.get('value');\n\n  if (value != null) {\n    value = scale.parse(value);\n  }\n\n  var useHandle = isHandleTrigger(axisPointerModel);\n\n  if (status == null) {\n    option.status = useHandle ? 'show' : 'hide';\n  }\n\n  var extent = scale.getExtent().slice();\n  extent[0] > extent[1] && extent.reverse();\n\n  if (value == null || value > extent[1]) {\n    value = extent[1];\n  }\n\n  if (value < extent[0]) {\n    value = extent[0];\n  }\n\n  option.value = value;\n\n  if (useHandle) {\n    option.status = axisInfo.axis.scale.isBlank() ? 'hide' : 'show';\n  }\n}\nexport function getAxisInfo(axisModel) {\n  var coordSysAxesInfo = (axisModel.ecModel.getComponent('axisPointer') || {}).coordSysAxesInfo;\n  return coordSysAxesInfo && coordSysAxesInfo.axesInfo[makeKey(axisModel)];\n}\nexport function getAxisPointerModel(axisModel) {\n  var axisInfo = getAxisInfo(axisModel);\n  return axisInfo && axisInfo.axisPointerModel;\n}\n\nfunction isHandleTrigger(axisPointerModel) {\n  return !!axisPointerModel.get(['handle', 'show']);\n}\n\nexport function makeKey(model) {\n  return model.type + '||' + model.id;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as axisPointerModelHelper from '../axisPointer/modelHelper';\nimport ComponentView from '../../view/Component';\nvar axisPointerClazz = {};\n\nvar AxisView = function (_super) {\n  __extends(AxisView, _super);\n\n  function AxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = AxisView.type;\n    return _this;\n  }\n\n  AxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n    this.axisPointerClass && axisPointerModelHelper.fixValue(axisModel);\n\n    _super.prototype.render.apply(this, arguments);\n\n    this._doUpdateAxisPointerClass(axisModel, api, true);\n  };\n\n  AxisView.prototype.updateAxisPointer = function (axisModel, ecModel, api, payload) {\n    this._doUpdateAxisPointerClass(axisModel, api, false);\n  };\n\n  AxisView.prototype.remove = function (ecModel, api) {\n    var axisPointer = this._axisPointer;\n    axisPointer && axisPointer.remove(api);\n  };\n\n  AxisView.prototype.dispose = function (ecModel, api) {\n    this._disposeAxisPointer(api);\n\n    _super.prototype.dispose.apply(this, arguments);\n  };\n\n  AxisView.prototype._doUpdateAxisPointerClass = function (axisModel, api, forceRender) {\n    var Clazz = AxisView.getAxisPointerClass(this.axisPointerClass);\n\n    if (!Clazz) {\n      return;\n    }\n\n    var axisPointerModel = axisPointerModelHelper.getAxisPointerModel(axisModel);\n    axisPointerModel ? (this._axisPointer || (this._axisPointer = new Clazz())).render(axisModel, axisPointerModel, api, forceRender) : this._disposeAxisPointer(api);\n  };\n\n  AxisView.prototype._disposeAxisPointer = function (api) {\n    this._axisPointer && this._axisPointer.dispose(api);\n    this._axisPointer = null;\n  };\n\n  AxisView.registerAxisPointerClass = function (type, clazz) {\n    if (process.env.NODE_ENV !== 'production') {\n      if (axisPointerClazz[type]) {\n        throw new Error('axisPointer ' + type + ' exists');\n      }\n    }\n\n    axisPointerClazz[type] = clazz;\n  };\n\n  ;\n\n  AxisView.getAxisPointerClass = function (type) {\n    return type && axisPointerClazz[type];\n  };\n\n  ;\n  AxisView.type = 'axis';\n  return AxisView;\n}(ComponentView);\n\nexport default AxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\nexport function rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel) {\n  var axis = axisModel.axis;\n\n  if (axis.scale.isBlank()) {\n    return;\n  }\n\n  var splitAreaModel = axisModel.getModel('splitArea');\n  var areaStyleModel = splitAreaModel.getModel('areaStyle');\n  var areaColors = areaStyleModel.get('color');\n  var gridRect = gridModel.coordinateSystem.getRect();\n  var ticksCoords = axis.getTicksCoords({\n    tickModel: splitAreaModel,\n    clamp: true\n  });\n\n  if (!ticksCoords.length) {\n    return;\n  }\n\n  var areaColorsLen = areaColors.length;\n  var lastSplitAreaColors = inner(axisView).splitAreaColors;\n  var newSplitAreaColors = zrUtil.createHashMap();\n  var colorIndex = 0;\n\n  if (lastSplitAreaColors) {\n    for (var i = 0; i < ticksCoords.length; i++) {\n      var cIndex = lastSplitAreaColors.get(ticksCoords[i].tickValue);\n\n      if (cIndex != null) {\n        colorIndex = (cIndex + (areaColorsLen - 1) * i) % areaColorsLen;\n        break;\n      }\n    }\n  }\n\n  var prev = axis.toGlobalCoord(ticksCoords[0].coord);\n  var areaStyle = areaStyleModel.getAreaStyle();\n  areaColors = zrUtil.isArray(areaColors) ? areaColors : [areaColors];\n\n  for (var i = 1; i < ticksCoords.length; i++) {\n    var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n    var x = void 0;\n    var y = void 0;\n    var width = void 0;\n    var height = void 0;\n\n    if (axis.isHorizontal()) {\n      x = prev;\n      y = gridRect.y;\n      width = tickCoord - x;\n      height = gridRect.height;\n      prev = x + width;\n    } else {\n      x = gridRect.x;\n      y = prev;\n      width = gridRect.width;\n      height = tickCoord - y;\n      prev = y + height;\n    }\n\n    var tickValue = ticksCoords[i - 1].tickValue;\n    tickValue != null && newSplitAreaColors.set(tickValue, colorIndex);\n    axisGroup.add(new graphic.Rect({\n      anid: tickValue != null ? 'area_' + tickValue : null,\n      shape: {\n        x: x,\n        y: y,\n        width: width,\n        height: height\n      },\n      style: zrUtil.defaults({\n        fill: areaColors[colorIndex]\n      }, areaStyle),\n      autoBatch: true,\n      silent: true\n    }));\n    colorIndex = (colorIndex + 1) % areaColorsLen;\n  }\n\n  inner(axisView).splitAreaColors = newSplitAreaColors;\n}\nexport function rectCoordAxisHandleRemove(axisView) {\n  inner(axisView).splitAreaColors = null;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport AxisBuilder from './AxisBuilder';\nimport AxisView from './AxisView';\nimport * as cartesianAxisHelper from '../../coord/cartesian/cartesianAxisHelper';\nimport { rectCoordAxisBuildSplitArea, rectCoordAxisHandleRemove } from './axisSplitHelper';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitArea', 'splitLine', 'minorSplitLine'];\n\nvar CartesianAxisView = function (_super) {\n  __extends(CartesianAxisView, _super);\n\n  function CartesianAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CartesianAxisView.type;\n    _this.axisPointerClass = 'CartesianAxisPointer';\n    return _this;\n  }\n\n  CartesianAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n    this.group.removeAll();\n    var oldAxisGroup = this._axisGroup;\n    this._axisGroup = new graphic.Group();\n    this.group.add(this._axisGroup);\n\n    if (!axisModel.get('show')) {\n      return;\n    }\n\n    var gridModel = axisModel.getCoordSysModel();\n    var layout = cartesianAxisHelper.layout(gridModel, axisModel);\n    var axisBuilder = new AxisBuilder(axisModel, zrUtil.extend({\n      handleAutoShown: function (elementType) {\n        var cartesians = gridModel.coordinateSystem.getCartesians();\n\n        for (var i = 0; i < cartesians.length; i++) {\n          var otherAxisType = cartesians[i].getOtherAxis(axisModel.axis).type;\n\n          if (otherAxisType === 'value' || otherAxisType === 'log') {\n            return true;\n          }\n        }\n\n        return false;\n      }\n    }, layout));\n    zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n\n    this._axisGroup.add(axisBuilder.getGroup());\n\n    zrUtil.each(selfBuilderAttrs, function (name) {\n      if (axisModel.get([name, 'show'])) {\n        axisElementBuilders[name](this, this._axisGroup, axisModel, gridModel);\n      }\n    }, this);\n    graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel);\n\n    _super.prototype.render.call(this, axisModel, ecModel, api, payload);\n  };\n\n  CartesianAxisView.prototype.remove = function () {\n    rectCoordAxisHandleRemove(this);\n  };\n\n  CartesianAxisView.type = 'cartesianAxis';\n  return CartesianAxisView;\n}(AxisView);\n\nvar axisElementBuilders = {\n  splitLine: function (axisView, axisGroup, axisModel, gridModel) {\n    var axis = axisModel.axis;\n\n    if (axis.scale.isBlank()) {\n      return;\n    }\n\n    var splitLineModel = axisModel.getModel('splitLine');\n    var lineStyleModel = splitLineModel.getModel('lineStyle');\n    var lineColors = lineStyleModel.get('color');\n    lineColors = zrUtil.isArray(lineColors) ? lineColors : [lineColors];\n    var gridRect = gridModel.coordinateSystem.getRect();\n    var isHorizontal = axis.isHorizontal();\n    var lineCount = 0;\n    var ticksCoords = axis.getTicksCoords({\n      tickModel: splitLineModel\n    });\n    var p1 = [];\n    var p2 = [];\n    var lineStyle = lineStyleModel.getLineStyle();\n\n    for (var i = 0; i < ticksCoords.length; i++) {\n      var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n\n      if (isHorizontal) {\n        p1[0] = tickCoord;\n        p1[1] = gridRect.y;\n        p2[0] = tickCoord;\n        p2[1] = gridRect.y + gridRect.height;\n      } else {\n        p1[0] = gridRect.x;\n        p1[1] = tickCoord;\n        p2[0] = gridRect.x + gridRect.width;\n        p2[1] = tickCoord;\n      }\n\n      var colorIndex = lineCount++ % lineColors.length;\n      var tickValue = ticksCoords[i].tickValue;\n      axisGroup.add(new graphic.Line({\n        anid: tickValue != null ? 'line_' + ticksCoords[i].tickValue : null,\n        subPixelOptimize: true,\n        autoBatch: true,\n        shape: {\n          x1: p1[0],\n          y1: p1[1],\n          x2: p2[0],\n          y2: p2[1]\n        },\n        style: zrUtil.defaults({\n          stroke: lineColors[colorIndex]\n        }, lineStyle),\n        silent: true\n      }));\n    }\n  },\n  minorSplitLine: function (axisView, axisGroup, axisModel, gridModel) {\n    var axis = axisModel.axis;\n    var minorSplitLineModel = axisModel.getModel('minorSplitLine');\n    var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\n    var gridRect = gridModel.coordinateSystem.getRect();\n    var isHorizontal = axis.isHorizontal();\n    var minorTicksCoords = axis.getMinorTicksCoords();\n\n    if (!minorTicksCoords.length) {\n      return;\n    }\n\n    var p1 = [];\n    var p2 = [];\n    var lineStyle = lineStyleModel.getLineStyle();\n\n    for (var i = 0; i < minorTicksCoords.length; i++) {\n      for (var k = 0; k < minorTicksCoords[i].length; k++) {\n        var tickCoord = axis.toGlobalCoord(minorTicksCoords[i][k].coord);\n\n        if (isHorizontal) {\n          p1[0] = tickCoord;\n          p1[1] = gridRect.y;\n          p2[0] = tickCoord;\n          p2[1] = gridRect.y + gridRect.height;\n        } else {\n          p1[0] = gridRect.x;\n          p1[1] = tickCoord;\n          p2[0] = gridRect.x + gridRect.width;\n          p2[1] = tickCoord;\n        }\n\n        axisGroup.add(new graphic.Line({\n          anid: 'minor_line_' + minorTicksCoords[i][k].tickValue,\n          subPixelOptimize: true,\n          autoBatch: true,\n          shape: {\n            x1: p1[0],\n            y1: p1[1],\n            x2: p2[0],\n            y2: p2[1]\n          },\n          style: lineStyle,\n          silent: true\n        }));\n      }\n    }\n  },\n  splitArea: function (axisView, axisGroup, axisModel, gridModel) {\n    rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel);\n  }\n};\n\nvar CartesianXAxisView = function (_super) {\n  __extends(CartesianXAxisView, _super);\n\n  function CartesianXAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CartesianXAxisView.type;\n    return _this;\n  }\n\n  CartesianXAxisView.type = 'xAxis';\n  return CartesianXAxisView;\n}(CartesianAxisView);\n\nexport { CartesianXAxisView };\n\nvar CartesianYAxisView = function (_super) {\n  __extends(CartesianYAxisView, _super);\n\n  function CartesianYAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CartesianXAxisView.type;\n    return _this;\n  }\n\n  CartesianYAxisView.type = 'yAxis';\n  return CartesianYAxisView;\n}(CartesianAxisView);\n\nexport { CartesianYAxisView };\nexport default CartesianAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component';\nimport GridModel from '../../coord/cartesian/GridModel';\nimport { Rect } from '../../util/graphic';\nimport { defaults } from 'zrender/lib/core/util';\nimport { CartesianAxisModel } from '../../coord/cartesian/AxisModel';\nimport axisModelCreator from '../../coord/axisModelCreator';\nimport Grid from '../../coord/cartesian/Grid';\nimport { CartesianXAxisView, CartesianYAxisView } from '../axis/CartesianAxisView';\n\nvar GridView = function (_super) {\n  __extends(GridView, _super);\n\n  function GridView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'grid';\n    return _this;\n  }\n\n  GridView.prototype.render = function (gridModel, ecModel) {\n    this.group.removeAll();\n\n    if (gridModel.get('show')) {\n      this.group.add(new Rect({\n        shape: gridModel.coordinateSystem.getRect(),\n        style: defaults({\n          fill: gridModel.get('backgroundColor')\n        }, gridModel.getItemStyle()),\n        silent: true,\n        z2: -1\n      }));\n    }\n  };\n\n  GridView.type = 'grid';\n  return GridView;\n}(ComponentView);\n\nvar extraOption = {\n  offset: 0\n};\nexport function install(registers) {\n  registers.registerComponentView(GridView);\n  registers.registerComponentModel(GridModel);\n  registers.registerCoordinateSystem('cartesian2d', Grid);\n  axisModelCreator(registers, 'x', CartesianAxisModel, extraOption);\n  axisModelCreator(registers, 'y', CartesianAxisModel, extraOption);\n  registers.registerComponentView(CartesianXAxisView);\n  registers.registerComponentView(CartesianYAxisView);\n  registers.registerPreprocessor(function (option) {\n    if (option.xAxis && option.yAxis && !option.grid) {\n      option.grid = {};\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { retrieveRawValue } from '../data/helper/dataProvider';\nimport { makeInner } from '../util/model';\nimport { getDecalFromPalette } from '../model/mixin/palette';\nvar DEFAULT_OPTION = {\n  label: {\n    enabled: true\n  },\n  decal: {\n    show: false\n  }\n};\nvar inner = makeInner();\nvar decalPaletteScope = {};\nexport default function ariaVisual(ecModel, api) {\n  var ariaModel = ecModel.getModel('aria');\n\n  if (!ariaModel.get('enabled')) {\n    return;\n  }\n\n  var defaultOption = zrUtil.clone(DEFAULT_OPTION);\n  zrUtil.merge(defaultOption.label, ecModel.getLocaleModel().get('aria'), false);\n  zrUtil.merge(ariaModel.option, defaultOption, false);\n  setDecal();\n  setLabel();\n\n  function setDecal() {\n    var decalModel = ariaModel.getModel('decal');\n    var useDecal = decalModel.get('show');\n\n    if (useDecal) {\n      var paletteScopeGroupByType_1 = zrUtil.createHashMap();\n      ecModel.eachSeries(function (seriesModel) {\n        if (!seriesModel.useColorPaletteOnData) {\n          return;\n        }\n\n        var decalScope = paletteScopeGroupByType_1.get(seriesModel.type);\n\n        if (!decalScope) {\n          decalScope = {};\n          paletteScopeGroupByType_1.set(seriesModel.type, decalScope);\n        }\n\n        inner(seriesModel).scope = decalScope;\n      });\n      ecModel.eachRawSeries(function (seriesModel) {\n        if (ecModel.isSeriesFiltered(seriesModel)) {\n          return;\n        }\n\n        if (typeof seriesModel.enableAriaDecal === 'function') {\n          seriesModel.enableAriaDecal();\n          return;\n        }\n\n        var data = seriesModel.getData();\n\n        if (seriesModel.useColorPaletteOnData) {\n          var dataAll_1 = seriesModel.getRawData();\n          var idxMap_1 = {};\n          var decalScope_1 = inner(seriesModel).scope;\n          data.each(function (idx) {\n            var rawIdx = data.getRawIndex(idx);\n            idxMap_1[rawIdx] = idx;\n          });\n          var dataCount_1 = dataAll_1.count();\n          dataAll_1.each(function (rawIdx) {\n            var idx = idxMap_1[rawIdx];\n            var name = dataAll_1.getName(rawIdx) || rawIdx + '';\n            var paletteDecal = getDecalFromPalette(seriesModel.ecModel, name, decalScope_1, dataCount_1);\n            var specifiedDecal = data.getItemVisual(idx, 'decal');\n            data.setItemVisual(idx, 'decal', mergeDecal(specifiedDecal, paletteDecal));\n          });\n        } else {\n          var paletteDecal = getDecalFromPalette(seriesModel.ecModel, seriesModel.name, decalPaletteScope, ecModel.getSeriesCount());\n          var specifiedDecal = data.getVisual('decal');\n          data.setVisual('decal', mergeDecal(specifiedDecal, paletteDecal));\n        }\n\n        function mergeDecal(specifiedDecal, paletteDecal) {\n          var resultDecal = specifiedDecal ? zrUtil.extend(zrUtil.extend({}, paletteDecal), specifiedDecal) : paletteDecal;\n          resultDecal.dirty = true;\n          return resultDecal;\n        }\n      });\n    }\n  }\n\n  function setLabel() {\n    var labelLocale = ecModel.getLocaleModel().get('aria');\n    var labelModel = ariaModel.getModel('label');\n    labelModel.option = zrUtil.defaults(labelModel.option, labelLocale);\n\n    if (!labelModel.get('enabled')) {\n      return;\n    }\n\n    var dom = api.getZr().dom;\n\n    if (labelModel.get('description')) {\n      dom.setAttribute('aria-label', labelModel.get('description'));\n      return;\n    }\n\n    var seriesCnt = ecModel.getSeriesCount();\n    var maxDataCnt = labelModel.get(['data', 'maxCount']) || 10;\n    var maxSeriesCnt = labelModel.get(['series', 'maxCount']) || 10;\n    var displaySeriesCnt = Math.min(seriesCnt, maxSeriesCnt);\n    var ariaLabel;\n\n    if (seriesCnt < 1) {\n      return;\n    } else {\n      var title = getTitle();\n\n      if (title) {\n        var withTitle = labelModel.get(['general', 'withTitle']);\n        ariaLabel = replace(withTitle, {\n          title: title\n        });\n      } else {\n        ariaLabel = labelModel.get(['general', 'withoutTitle']);\n      }\n\n      var seriesLabels_1 = [];\n      var prefix = seriesCnt > 1 ? labelModel.get(['series', 'multiple', 'prefix']) : labelModel.get(['series', 'single', 'prefix']);\n      ariaLabel += replace(prefix, {\n        seriesCount: seriesCnt\n      });\n      ecModel.eachSeries(function (seriesModel, idx) {\n        if (idx < displaySeriesCnt) {\n          var seriesLabel = void 0;\n          var seriesName = seriesModel.get('name');\n          var withName = seriesName ? 'withName' : 'withoutName';\n          seriesLabel = seriesCnt > 1 ? labelModel.get(['series', 'multiple', withName]) : labelModel.get(['series', 'single', withName]);\n          seriesLabel = replace(seriesLabel, {\n            seriesId: seriesModel.seriesIndex,\n            seriesName: seriesModel.get('name'),\n            seriesType: getSeriesTypeName(seriesModel.subType)\n          });\n          var data = seriesModel.getData();\n\n          if (data.count() > maxDataCnt) {\n            var partialLabel = labelModel.get(['data', 'partialData']);\n            seriesLabel += replace(partialLabel, {\n              displayCnt: maxDataCnt\n            });\n          } else {\n            seriesLabel += labelModel.get(['data', 'allData']);\n          }\n\n          var dataLabels = [];\n\n          for (var i = 0; i < data.count(); i++) {\n            if (i < maxDataCnt) {\n              var name_1 = data.getName(i);\n              var value = retrieveRawValue(data, i);\n              var dataLabel = labelModel.get(['data', name_1 ? 'withName' : 'withoutName']);\n              dataLabels.push(replace(dataLabel, {\n                name: name_1,\n                value: value\n              }));\n            }\n          }\n\n          var middleSeparator_1 = labelModel.get(['data', 'separator', 'middle']);\n          var endSeparator_1 = labelModel.get(['data', 'separator', 'end']);\n          seriesLabel += dataLabels.join(middleSeparator_1) + endSeparator_1;\n          seriesLabels_1.push(seriesLabel);\n        }\n      });\n      var separatorModel = labelModel.getModel(['series', 'multiple', 'separator']);\n      var middleSeparator = separatorModel.get('middle');\n      var endSeparator = separatorModel.get('end');\n      ariaLabel += seriesLabels_1.join(middleSeparator) + endSeparator;\n      dom.setAttribute('aria-label', ariaLabel);\n    }\n  }\n\n  function replace(str, keyValues) {\n    if (typeof str !== 'string') {\n      return str;\n    }\n\n    var result = str;\n    zrUtil.each(keyValues, function (value, key) {\n      result = result.replace(new RegExp('\\\\{\\\\s*' + key + '\\\\s*\\\\}', 'g'), value);\n    });\n    return result;\n  }\n\n  function getTitle() {\n    var title = ecModel.get('title');\n\n    if (title && title.length) {\n      title = title[0];\n    }\n\n    return title && title.text;\n  }\n\n  function getSeriesTypeName(type) {\n    return ecModel.getLocaleModel().get(['series', 'typeNames'])[type] || '自定义图';\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function ariaPreprocessor(option) {\n  if (!option || !option.aria) {\n    return;\n  }\n\n  var aria = option.aria;\n\n  if (aria.show != null) {\n    aria.enabled = aria.show;\n  }\n\n  aria.label = aria.label || {};\n  zrUtil.each(['description', 'general', 'series', 'data'], function (name) {\n    if (aria[name] != null) {\n      aria.label[name] = aria[name];\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ariaVisual from '../../visual/aria';\nimport ariaPreprocessor from './preprocessor';\nexport function install(registers) {\n  registers.registerPreprocessor(ariaPreprocessor);\n  registers.registerVisual(registers.PRIORITY.VISUAL.ARIA, ariaVisual);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\nimport ComponentView from '../../view/Component';\nimport { SERIES_LAYOUT_BY_COLUMN } from '../../util/types';\nimport { disableTransformOptionMerge, SourceManager } from '../../data/helper/sourceManager';\n\nvar DatasetModel = function (_super) {\n  __extends(DatasetModel, _super);\n\n  function DatasetModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'dataset';\n    return _this;\n  }\n\n  DatasetModel.prototype.init = function (option, parentModel, ecModel) {\n    _super.prototype.init.call(this, option, parentModel, ecModel);\n\n    this._sourceManager = new SourceManager(this);\n    disableTransformOptionMerge(this);\n  };\n\n  DatasetModel.prototype.mergeOption = function (newOption, ecModel) {\n    _super.prototype.mergeOption.call(this, newOption, ecModel);\n\n    disableTransformOptionMerge(this);\n  };\n\n  DatasetModel.prototype.optionUpdated = function () {\n    this._sourceManager.dirty();\n  };\n\n  DatasetModel.prototype.getSourceManager = function () {\n    return this._sourceManager;\n  };\n\n  DatasetModel.type = 'dataset';\n  DatasetModel.defaultOption = {\n    seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN\n  };\n  return DatasetModel;\n}(ComponentModel);\n\nexport { DatasetModel };\n\nvar DatasetView = function (_super) {\n  __extends(DatasetView, _super);\n\n  function DatasetView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'dataset';\n    return _this;\n  }\n\n  DatasetView.type = 'dataset';\n  return DatasetView;\n}(ComponentView);\n\nexport function install(registers) {\n  registers.registerComponentModel(DatasetModel);\n  registers.registerComponentView(DatasetView);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from './lib/extension';\nexport * from './lib/export/core';\nimport { install as CanvasRenderer } from './lib/renderer/installCanvasRenderer';\nimport { install as LineChart } from './lib/chart/line/install';\nimport { install as BarChart } from './lib/chart/bar/install';\nimport { install as PieChart } from './lib/chart/pie/install';\nimport { install as GridSimpleComponent } from './lib/component/grid/installSimple';\nimport { install as AriaComponent } from './lib/component/aria/install';\nimport { install as DatasetComponent } from './lib/component/dataset/install';\nuse([CanvasRenderer]);\nuse([LineChart, BarChart, PieChart]);\nuse([GridSimpleComponent, AriaComponent, DatasetComponent]);"],"names":["extendStatics","__extends","clone","eventUtil.clientToLocal","dist","eventTool.stop","util.each","vec2.dist","create","copy","mul","scale","matrix.identity","matrix.create","matrix.mul","matrix.copy","matrix.invert","vector.applyTransform","matrix.rotate","easing","easingFuncs","lerp","color.parse","matrix.translate","matrix.scale","methods","timsort","util.indexOf","requestAnimationFrame","zrUtil.map","zrUtil.noop","zrUtil.each","zrUtil.indexOf","zrUtil.keys","HandlerProxy","zrUtil.guid","parsePercent","zrUtil.reduce","zrUtil.assert","zrUtil.createObject","zrUtil.extend","zrUtil.inherits","imageHelper.findExistImage","imageHelper.isImageReady","PRIMARY_STATES_KEYS","EPSILON","v2Create","isNotAroundZero","v2DistSquare","mathMin","mathMax","vec2.create","cubicExtrema","curve.cubicExtrema","cubicAt","curve.cubicAt","quadraticExtremum","curve.quadraticExtremum","quadraticAt","curve.quadraticAt","min","max","vec2.min","vec2.max","mathCos","mathSin","mathSqrt","PI2","dpr","containStroke","curve.cubicProjectPoint","CMD","curve.cubicRootAt","curve.quadraticRootAt","line.containStroke","cubic.containStroke","quadratic.containStroke","arc.containStroke","pathContain.containStroke","pathContain.contain","round","roundRectHelper.buildPath","color","colorTool.lift","v2ApplyTransform","PI","mathAbs","buildPath","roundSectorHelper.buildPath","distance","v2Distance","v2Min","v2Max","v2Clone","v2Sub","v2Scale","v2Add","polyHelper.buildPath","subPixelOptimizeOutputShape","vec2.normalize","minTv","maxTv","Displayble","pathTool.extendFromString","pathTool.createFromString","mergePath","pathTool.mergePath","zrUtil.merge","numberUtil.parseDate","defaults","zrUtil.defaults","zrUtil.isArray","Text","zrUtil.isString","normalizeCssArray","zrUtil.normalizeCssArray","zrUtil.isObject","each","zrUtil.curry","formatUtil.normalizeCssArray","componentUtil.getUID","layout.fetchLayoutMode","layout.getLayoutParams","layout.mergeLayoutParam","componentUtil.enableSubTypeDefaulter","componentUtil.enableTopologicalTravel","modelUtil.normalizeToArray","modelUtil.mappingToExists","modelUtil.setComponentTypeToKeyInfo","modelUtil.isComponentIdInternal","modelUtil.convertOptionIdName","zrUtil.bind","isObject","modelUtil.TEXT_STYLE_OPTIONS","zrUtil.isTypedArray","set","compatStyle","inner","modelUtil.makeInner","modelUtil.defaultEmphasis","zrUtil.mixin","modelUtil.isNameSpecified","clazzUtil.enableClassExtend","clazzUtil.enableClassManagement","modelUtil.queryDataIndex","graphic.Group","graphic.Rect","graphic.Text","graphic.Arc","vector.dist","vector.lerp","graphic.Path","graphic.Circle","graphic.makeImage","graphic.makePath","assert","isFunction","zrUtil.isFunction","indexOf","version","zrender.init","zrUtil.clone","backwardCompat","zrUtil.setAsPrimitive","instances","zrUtil.createCanvas","graphic.Image","modelUtil.parseFinder","modelUtil.setAttribute","zrUtil.createHashMap","colorTool.parse","colorTool.stringify","graphic.isElementRemoved","init","zrUtil.isDom","dispose","modelUtil.getAttribute","zrUtil.$override","decal","loadingDefault","darkTheme","map","zrUtil.isArrayLike","zrUtil.slice","CoordinateSystem","numberUtil.round","numberUtil.nice","numberUtil.getPrecisionSafe","contain","normalize","scaleHelper.contain","scaleHelper.normalize","scaleHelper.scale","roundNumber","helper.contain","helper.normalize","helper.scale","helper.getIntervalPrecision","formatUtil.addCommas","helper.intervalScaleNiceTicks","getPrecisionSafe","mathFloor","mathPow","numberUtil.quantity","dataStack","axisHelper.createScaleByModel","axisHelper.niceScaleExtent","createTextStyle","innerCreateTextStyle","isAroundEqual","bbox.fromPoints","polygonContain.contain","vec2.applyTransform","zrUtil.filter","textContain.getBoundingRect","util.createCanvas","util.isObject","util.isGradientObject","util.isPatternObject","util.extend","util.merge","util.logError","graphic.updateProps","graphic.initProps","graphic.removeElement","SymbolClz","graphic.Sector","graphic.LinearGradient","isPointNull","modelUtil.interpolateRawValues","install","LineSeries","layoutPoints","Sausage","BarSeries","layout.getLayoutRect","RADIAN","graphic.Polyline","graphic.removeElementWithFadeOut","labelLayout","layout","zrUtil.retrieve","zrUtil.retrieve3","graphic.Line","matrixUtil.identity","matrixUtil.rotate","matrixUtil.mul","axisPointerModelHelper.fixValue","axisPointerModelHelper.getAxisPointerModel","cartesianAxisHelper.layout","graphic.groupTransition","CanvasRenderer","LineChart","BarChart","PieChart","GridSimpleComponent","AriaComponent","DatasetComponent"],"mappings":"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E,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1E,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1E,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1E,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1E,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;IAC1E,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAA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"}
\ No newline at end of file
+{"version":3,"file":"echarts.simple.js","sources":["../node_modules/tslib/tslib.es6.js","../node_modules/zrender/lib/core/env.js","../node_modules/zrender/lib/core/util.js","../node_modules/zrender/lib/core/vector.js","../node_modules/zrender/lib/mixin/Draggable.js","../node_modules/zrender/lib/core/Eventful.js","../node_modules/zrender/lib/core/fourPointsTransform.js","../node_modules/zrender/lib/core/dom.js","../node_modules/zrender/lib/core/event.js","../node_modules/zrender/lib/core/GestureMgr.js","../node_modules/zrender/lib/Handler.js","../node_modules/zrender/lib/core/matrix.js","../node_modules/zrender/lib/core/Transformable.js","../node_modules/zrender/lib/animation/easing.js","../node_modules/zrender/lib/animation/Clip.js","../node_modules/zrender/lib/core/LRU.js","../node_modules/zrender/lib/tool/color.js","../node_modules/zrender/lib/animation/Animator.js","../node_modules/zrender/lib/core/Point.js","../node_modules/zrender/lib/core/BoundingRect.js","../node_modules/zrender/lib/contain/text.js","../node_modules/zrender/lib/config.js","../node_modules/zrender/lib/Element.js","../node_modules/zrender/lib/core/timsort.js","../node_modules/zrender/lib/Storage.js","../node_modules/zrender/lib/animation/requestAnimationFrame.js","../node_modules/zrender/lib/animation/Animation.js","../node_modules/zrender/lib/dom/HandlerProxy.js","../node_modules/zrender/lib/graphic/Group.js","../node_modules/zrender/lib/zrender.js","../lib/util/number.js","../lib/util/log.js","../lib/util/model.js","../lib/util/clazz.js","../lib/model/mixin/makeStyleMapper.js","../lib/model/mixin/areaStyle.js","../node_modules/zrender/lib/graphic/helper/image.js","../node_modules/zrender/lib/graphic/helper/parseText.js","../node_modules/zrender/lib/graphic/Displayable.js","../node_modules/zrender/lib/core/curve.js","../node_modules/zrender/lib/core/bbox.js","../node_modules/zrender/lib/core/PathProxy.js","../node_modules/zrender/lib/contain/line.js","../node_modules/zrender/lib/contain/cubic.js","../node_modules/zrender/lib/contain/quadratic.js","../node_modules/zrender/lib/contain/util.js","../node_modules/zrender/lib/contain/arc.js","../node_modules/zrender/lib/contain/windingLine.js","../node_modules/zrender/lib/contain/path.js","../node_modules/zrender/lib/graphic/Path.js","../node_modules/zrender/lib/graphic/TSpan.js","../node_modules/zrender/lib/graphic/Image.js","../node_modules/zrender/lib/graphic/helper/roundRect.js","../node_modules/zrender/lib/graphic/helper/subPixelOptimize.js","../node_modules/zrender/lib/graphic/shape/Rect.js","../node_modules/zrender/lib/graphic/Text.js","../lib/util/innerStore.js","../lib/util/states.js","../node_modules/zrender/lib/tool/transformPath.js","../node_modules/zrender/lib/tool/path.js","../node_modules/zrender/lib/graphic/shape/Circle.js","../node_modules/zrender/lib/graphic/shape/Ellipse.js","../node_modules/zrender/lib/graphic/helper/roundSector.js","../node_modules/zrender/lib/graphic/shape/Sector.js","../node_modules/zrender/lib/graphic/shape/Ring.js","../node_modules/zrender/lib/graphic/helper/smoothSpline.js","../node_modules/zrender/lib/graphic/helper/smoothBezier.js","../node_modules/zrender/lib/graphic/helper/poly.js","../node_modules/zrender/lib/graphic/shape/Polygon.js","../node_modules/zrender/lib/graphic/shape/Polyline.js","../node_modules/zrender/lib/graphic/shape/Line.js","../node_modules/zrender/lib/graphic/shape/BezierCurve.js","../node_modules/zrender/lib/graphic/shape/Arc.js","../node_modules/zrender/lib/graphic/CompoundPath.js","../node_modules/zrender/lib/graphic/Gradient.js","../node_modules/zrender/lib/graphic/LinearGradient.js","../node_modules/zrender/lib/graphic/RadialGradient.js","../node_modules/zrender/lib/core/OrientedBoundingRect.js","../node_modules/zrender/lib/graphic/IncrementalDisplayable.js","../lib/util/graphic.js","../lib/label/labelStyle.js","../lib/model/mixin/textStyle.js","../lib/model/mixin/lineStyle.js","../lib/model/mixin/itemStyle.js","../lib/model/Model.js","../lib/util/component.js","../lib/i18n/langEN.js","../lib/i18n/langZH.js","../lib/core/locale.js","../lib/util/time.js","../lib/legacy/getTextRect.js","../lib/util/format.js","../lib/util/layout.js","../lib/model/Component.js","../lib/model/globalDefault.js","../lib/util/types.js","../lib/data/helper/sourceHelper.js","../lib/model/internalComponentCreator.js","../lib/model/mixin/palette.js","../lib/model/Global.js","../lib/core/ExtensionAPI.js","../lib/core/CoordinateSystem.js","../lib/model/OptionManager.js","../lib/preprocessor/helper/compatStyle.js","../lib/preprocessor/backwardCompat.js","../lib/processor/dataStack.js","../lib/data/Source.js","../lib/data/helper/dataProvider.js","../lib/model/mixin/dataFormat.js","../lib/core/task.js","../lib/data/helper/dataValueHelper.js","../lib/data/helper/transform.js","../lib/data/helper/sourceManager.js","../lib/component/tooltip/tooltipMarkup.js","../lib/component/tooltip/seriesFormatTooltip.js","../lib/model/Series.js","../lib/view/Component.js","../lib/chart/helper/createRenderPlanner.js","../lib/view/Chart.js","../lib/util/throttle.js","../lib/visual/style.js","../lib/loading/default.js","../lib/core/Scheduler.js","../lib/theme/light.js","../lib/theme/dark.js","../node_modules/zrender/lib/tool/parseXML.js","../lib/coord/geo/mapDataStorage.js","../lib/util/ECEventProcessor.js","../lib/visual/symbol.js","../lib/visual/helper.js","../lib/label/labelGuideHelper.js","../lib/label/labelLayoutHelper.js","../lib/label/LabelManager.js","../lib/legacy/dataSelectAction.js","../lib/util/event.js","../node_modules/zrender/lib/core/WeakMap.js","../lib/util/symbol.js","../node_modules/zrender/lib/canvas/helper.js","../node_modules/zrender/lib/graphic/helper/dashStyle.js","../node_modules/zrender/lib/canvas/graphic.js","../lib/util/decal.js","../lib/visual/decal.js","../lib/core/echarts.js","../lib/extension.js","../lib/data/DataDiffer.js","../lib/data/helper/dimensionHelper.js","../lib/data/DataDimensionInfo.js","../lib/data/List.js","../lib/data/helper/completeDimensions.js","../lib/data/helper/createDimensions.js","../lib/model/referHelper.js","../lib/data/helper/dataStackHelper.js","../lib/chart/helper/createListFromArray.js","../lib/scale/Scale.js","../lib/data/OrdinalMeta.js","../lib/scale/helper.js","../lib/scale/Ordinal.js","../lib/scale/Interval.js","../lib/layout/barGrid.js","../lib/scale/Time.js","../lib/scale/Log.js","../lib/coord/scaleRawExtentInfo.js","../lib/coord/axisHelper.js","../lib/coord/axisModelCommonMixin.js","../lib/export/api/helper.js","../node_modules/zrender/lib/contain/polygon.js","../lib/coord/geo/Region.js","../lib/coord/geo/parseGeoJson.js","../lib/coord/axisTickLabelBuilder.js","../lib/coord/Axis.js","../lib/export/api.js","../node_modules/zrender/lib/canvas/Layer.js","../node_modules/zrender/lib/canvas/Painter.js","../lib/renderer/installCanvasRenderer.js","../lib/chart/line/LineSeries.js","../lib/chart/helper/labelHelper.js","../lib/chart/helper/Symbol.js","../lib/chart/helper/SymbolDraw.js","../lib/chart/line/helper.js","../lib/util/vendor.js","../lib/chart/line/lineAnimationDiff.js","../lib/chart/line/poly.js","../lib/chart/helper/createClipPathFromCoordSys.js","../lib/coord/CoordinateSystem.js","../lib/chart/line/LineView.js","../lib/layout/points.js","../lib/processor/dataSample.js","../lib/chart/line/install.js","../lib/chart/bar/BaseBarSeries.js","../lib/chart/bar/BarSeries.js","../lib/util/shape/sausage.js","../lib/chart/bar/BarView.js","../lib/chart/bar/install.js","../lib/chart/pie/pieLayout.js","../lib/processor/dataFilter.js","../lib/chart/pie/labelLayout.js","../lib/chart/helper/pieHelper.js","../lib/chart/pie/PieView.js","../lib/chart/helper/createListSimply.js","../lib/visual/LegendVisualProvider.js","../lib/chart/pie/PieSeries.js","../lib/chart/pie/install.js","../lib/coord/cartesian/GridModel.js","../lib/coord/cartesian/AxisModel.js","../lib/coord/axisDefault.js","../lib/coord/axisCommonTypes.js","../lib/coord/axisModelCreator.js","../lib/coord/cartesian/Cartesian.js","../lib/coord/cartesian/Cartesian2D.js","../lib/coord/cartesian/Axis2D.js","../lib/coord/cartesian/cartesianAxisHelper.js","../lib/coord/cartesian/Grid.js","../lib/component/axis/AxisBuilder.js","../lib/component/axisPointer/modelHelper.js","../lib/component/axis/AxisView.js","../lib/component/axis/axisSplitHelper.js","../lib/component/axis/CartesianAxisView.js","../lib/component/grid/installSimple.js","../lib/visual/aria.js","../lib/component/aria/preprocessor.js","../lib/component/aria/install.js","../lib/component/dataset/install.js","../index.simple.js"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar 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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n    return extendStatics(d, b);\r\n};\r\n\r\nexport 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\nexport var __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    }\r\n    return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n    var t = {};\r\n    for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n        t[p] = s[p];\r\n    if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n        for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n            if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n                t[p[i]] = s[p[i]];\r\n        }\r\n    return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n    var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n    if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n    else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n    return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n    return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n    if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n    function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n    return new (P || (P = Promise))(function (resolve, reject) {\r\n        function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n        function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n        function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n        step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n    });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n    var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n    return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n    function verb(n) { return function (v) { return step([n, v]); }; }\r\n    function step(op) {\r\n        if (f) throw new TypeError(\"Generator is already executing.\");\r\n        while (_) try {\r\n            if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n            if (y = 0, t) op = [op[0] & 2, t.value];\r\n            switch (op[0]) {\r\n                case 0: case 1: t = op; break;\r\n                case 4: _.label++; return { value: op[1], done: false };\r\n                case 5: _.label++; y = op[1]; op = [0]; continue;\r\n                case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n                default:\r\n                    if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n                    if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n                    if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n                    if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n                    if (t[2]) _.ops.pop();\r\n                    _.trys.pop(); continue;\r\n            }\r\n            op = body.call(thisArg, _);\r\n        } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n        if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n    }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n    if (k2 === undefined) k2 = k;\r\n    o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n    for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n    var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n    if (m) return m.call(o);\r\n    if (o && typeof o.length === \"number\") return {\r\n        next: function () {\r\n            if (o && i >= o.length) o = void 0;\r\n            return { value: o && o[i++], done: !o };\r\n        }\r\n    };\r\n    throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n    var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n    if (!m) return o;\r\n    var i = m.call(o), r, ar = [], e;\r\n    try {\r\n        while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n    }\r\n    catch (error) { e = { error: error }; }\r\n    finally {\r\n        try {\r\n            if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n        }\r\n        finally { if (e) throw e.error; }\r\n    }\r\n    return ar;\r\n}\r\n\r\nexport function __spread() {\r\n    for (var ar = [], i = 0; i < arguments.length; i++)\r\n        ar = ar.concat(__read(arguments[i]));\r\n    return ar;\r\n}\r\n\r\nexport 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};\r\n\r\nexport function __await(v) {\r\n    return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n    return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n    function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n    function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n    function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n    function fulfill(value) { resume(\"next\", value); }\r\n    function reject(value) { resume(\"throw\", value); }\r\n    function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n    var i, p;\r\n    return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n    function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n    if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n    var m = o[Symbol.asyncIterator], i;\r\n    return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n    function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n    function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n    if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n    return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n    Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n    o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n    if (mod && mod.__esModule) return mod;\r\n    var result = {};\r\n    if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n    __setModuleDefault(result, mod);\r\n    return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n    return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to get private field on non-instance\");\r\n    }\r\n    return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n    if (!privateMap.has(receiver)) {\r\n        throw new TypeError(\"attempted to set private field on non-instance\");\r\n    }\r\n    privateMap.set(receiver, value);\r\n    return value;\r\n}\r\n","var Browser = (function () {\n    function Browser() {\n        this.firefox = false;\n        this.ie = false;\n        this.edge = false;\n        this.newEdge = false;\n        this.weChat = false;\n    }\n    return Browser;\n}());\nvar Env = (function () {\n    function Env() {\n        this.browser = new Browser();\n        this.node = false;\n        this.wxa = false;\n        this.worker = false;\n        this.canvasSupported = false;\n        this.svgSupported = false;\n        this.touchEventsSupported = false;\n        this.pointerEventsSupported = false;\n        this.domSupported = false;\n    }\n    return Env;\n}());\nvar env = new Env();\nif (typeof wx === 'object' && typeof wx.getSystemInfoSync === 'function') {\n    env.wxa = true;\n    env.canvasSupported = true;\n    env.touchEventsSupported = true;\n}\nelse if (typeof document === 'undefined' && typeof self !== 'undefined') {\n    env.worker = true;\n    env.canvasSupported = true;\n}\nelse if (typeof navigator === 'undefined') {\n    env.node = true;\n    env.canvasSupported = true;\n    env.svgSupported = true;\n}\nelse {\n    detect(navigator.userAgent, env);\n}\nfunction detect(ua, env) {\n    var browser = env.browser;\n    var firefox = ua.match(/Firefox\\/([\\d.]+)/);\n    var ie = ua.match(/MSIE\\s([\\d.]+)/)\n        || ua.match(/Trident\\/.+?rv:(([\\d.]+))/);\n    var edge = ua.match(/Edge?\\/([\\d.]+)/);\n    var weChat = (/micromessenger/i).test(ua);\n    if (firefox) {\n        browser.firefox = true;\n        browser.version = firefox[1];\n    }\n    if (ie) {\n        browser.ie = true;\n        browser.version = ie[1];\n    }\n    if (edge) {\n        browser.edge = true;\n        browser.version = edge[1];\n        browser.newEdge = +edge[1].split('.')[0] > 18;\n    }\n    if (weChat) {\n        browser.weChat = true;\n    }\n    env.canvasSupported = !!document.createElement('canvas').getContext;\n    env.svgSupported = typeof SVGRect !== 'undefined';\n    env.touchEventsSupported = 'ontouchstart' in window && !browser.ie && !browser.edge;\n    env.pointerEventsSupported = 'onpointerdown' in window\n        && (browser.edge || (browser.ie && +browser.version >= 11));\n    env.domSupported = typeof document !== 'undefined';\n}\nexport default env;\n","var BUILTIN_OBJECT = {\n    '[object Function]': true,\n    '[object RegExp]': true,\n    '[object Date]': true,\n    '[object Error]': true,\n    '[object CanvasGradient]': true,\n    '[object CanvasPattern]': true,\n    '[object Image]': true,\n    '[object Canvas]': true\n};\nvar TYPED_ARRAY = {\n    '[object Int8Array]': true,\n    '[object Uint8Array]': true,\n    '[object Uint8ClampedArray]': true,\n    '[object Int16Array]': true,\n    '[object Uint16Array]': true,\n    '[object Int32Array]': true,\n    '[object Uint32Array]': true,\n    '[object Float32Array]': true,\n    '[object Float64Array]': true\n};\nvar objToString = Object.prototype.toString;\nvar arrayProto = Array.prototype;\nvar nativeForEach = arrayProto.forEach;\nvar nativeFilter = arrayProto.filter;\nvar nativeSlice = arrayProto.slice;\nvar nativeMap = arrayProto.map;\nvar ctorFunction = function () { }.constructor;\nvar protoFunction = ctorFunction ? ctorFunction.prototype : null;\nvar methods = {};\nexport function $override(name, fn) {\n    methods[name] = fn;\n}\nvar idStart = 0x0907;\nexport function guid() {\n    return idStart++;\n}\nexport function logError() {\n    var args = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n    }\n    if (typeof console !== 'undefined') {\n        console.error.apply(console, args);\n    }\n}\nexport function clone(source) {\n    if (source == null || typeof source !== 'object') {\n        return source;\n    }\n    var result = source;\n    var typeStr = objToString.call(source);\n    if (typeStr === '[object Array]') {\n        if (!isPrimitive(source)) {\n            result = [];\n            for (var i = 0, len = source.length; i < len; i++) {\n                result[i] = clone(source[i]);\n            }\n        }\n    }\n    else if (TYPED_ARRAY[typeStr]) {\n        if (!isPrimitive(source)) {\n            var Ctor = source.constructor;\n            if (Ctor.from) {\n                result = Ctor.from(source);\n            }\n            else {\n                result = new Ctor(source.length);\n                for (var i = 0, len = source.length; i < len; i++) {\n                    result[i] = clone(source[i]);\n                }\n            }\n        }\n    }\n    else if (!BUILTIN_OBJECT[typeStr] && !isPrimitive(source) && !isDom(source)) {\n        result = {};\n        for (var key in source) {\n            if (source.hasOwnProperty(key)) {\n                result[key] = clone(source[key]);\n            }\n        }\n    }\n    return result;\n}\nexport function merge(target, source, overwrite) {\n    if (!isObject(source) || !isObject(target)) {\n        return overwrite ? clone(source) : target;\n    }\n    for (var key in source) {\n        if (source.hasOwnProperty(key)) {\n            var targetProp = target[key];\n            var sourceProp = source[key];\n            if (isObject(sourceProp)\n                && isObject(targetProp)\n                && !isArray(sourceProp)\n                && !isArray(targetProp)\n                && !isDom(sourceProp)\n                && !isDom(targetProp)\n                && !isBuiltInObject(sourceProp)\n                && !isBuiltInObject(targetProp)\n                && !isPrimitive(sourceProp)\n                && !isPrimitive(targetProp)) {\n                merge(targetProp, sourceProp, overwrite);\n            }\n            else if (overwrite || !(key in target)) {\n                target[key] = clone(source[key]);\n            }\n        }\n    }\n    return target;\n}\nexport function mergeAll(targetAndSources, overwrite) {\n    var result = targetAndSources[0];\n    for (var i = 1, len = targetAndSources.length; i < len; i++) {\n        result = merge(result, targetAndSources[i], overwrite);\n    }\n    return result;\n}\nexport function extend(target, source) {\n    if (Object.assign) {\n        Object.assign(target, source);\n    }\n    else {\n        for (var key in source) {\n            if (source.hasOwnProperty(key)) {\n                target[key] = source[key];\n            }\n        }\n    }\n    return target;\n}\nexport function defaults(target, source, overlay) {\n    var keysArr = keys(source);\n    for (var i = 0; i < keysArr.length; i++) {\n        var key = keysArr[i];\n        if ((overlay ? source[key] != null : target[key] == null)) {\n            target[key] = source[key];\n        }\n    }\n    return target;\n}\nexport var createCanvas = function () {\n    return methods.createCanvas();\n};\nmethods.createCanvas = function () {\n    return document.createElement('canvas');\n};\nexport function indexOf(array, value) {\n    if (array) {\n        if (array.indexOf) {\n            return array.indexOf(value);\n        }\n        for (var i = 0, len = array.length; i < len; i++) {\n            if (array[i] === value) {\n                return i;\n            }\n        }\n    }\n    return -1;\n}\nexport function inherits(clazz, baseClazz) {\n    var clazzPrototype = clazz.prototype;\n    function F() { }\n    F.prototype = baseClazz.prototype;\n    clazz.prototype = new F();\n    for (var prop in clazzPrototype) {\n        if (clazzPrototype.hasOwnProperty(prop)) {\n            clazz.prototype[prop] = clazzPrototype[prop];\n        }\n    }\n    clazz.prototype.constructor = clazz;\n    clazz.superClass = baseClazz;\n}\nexport function mixin(target, source, override) {\n    target = 'prototype' in target ? target.prototype : target;\n    source = 'prototype' in source ? source.prototype : source;\n    if (Object.getOwnPropertyNames) {\n        var keyList = Object.getOwnPropertyNames(source);\n        for (var i = 0; i < keyList.length; i++) {\n            var key = keyList[i];\n            if (key !== 'constructor') {\n                if ((override ? source[key] != null : target[key] == null)) {\n                    target[key] = source[key];\n                }\n            }\n        }\n    }\n    else {\n        defaults(target, source, override);\n    }\n}\nexport function isArrayLike(data) {\n    if (!data) {\n        return false;\n    }\n    if (typeof data === 'string') {\n        return false;\n    }\n    return typeof data.length === 'number';\n}\nexport function each(arr, cb, context) {\n    if (!(arr && cb)) {\n        return;\n    }\n    if (arr.forEach && arr.forEach === nativeForEach) {\n        arr.forEach(cb, context);\n    }\n    else if (arr.length === +arr.length) {\n        for (var i = 0, len = arr.length; i < len; i++) {\n            cb.call(context, arr[i], i, arr);\n        }\n    }\n    else {\n        for (var key in arr) {\n            if (arr.hasOwnProperty(key)) {\n                cb.call(context, arr[key], key, arr);\n            }\n        }\n    }\n}\nexport function map(arr, cb, context) {\n    if (!arr) {\n        return [];\n    }\n    if (!cb) {\n        return slice(arr);\n    }\n    if (arr.map && arr.map === nativeMap) {\n        return arr.map(cb, context);\n    }\n    else {\n        var result = [];\n        for (var i = 0, len = arr.length; i < len; i++) {\n            result.push(cb.call(context, arr[i], i, arr));\n        }\n        return result;\n    }\n}\nexport function reduce(arr, cb, memo, context) {\n    if (!(arr && cb)) {\n        return;\n    }\n    for (var i = 0, len = arr.length; i < len; i++) {\n        memo = cb.call(context, memo, arr[i], i, arr);\n    }\n    return memo;\n}\nexport function filter(arr, cb, context) {\n    if (!arr) {\n        return [];\n    }\n    if (!cb) {\n        return slice(arr);\n    }\n    if (arr.filter && arr.filter === nativeFilter) {\n        return arr.filter(cb, context);\n    }\n    else {\n        var result = [];\n        for (var i = 0, len = arr.length; i < len; i++) {\n            if (cb.call(context, arr[i], i, arr)) {\n                result.push(arr[i]);\n            }\n        }\n        return result;\n    }\n}\nexport function find(arr, cb, context) {\n    if (!(arr && cb)) {\n        return;\n    }\n    for (var i = 0, len = arr.length; i < len; i++) {\n        if (cb.call(context, arr[i], i, arr)) {\n            return arr[i];\n        }\n    }\n}\nexport function keys(obj) {\n    if (!obj) {\n        return [];\n    }\n    if (Object.keys) {\n        return Object.keys(obj);\n    }\n    var keyList = [];\n    for (var key in obj) {\n        if (obj.hasOwnProperty(key)) {\n            keyList.push(key);\n        }\n    }\n    return keyList;\n}\nfunction bindPolyfill(func, context) {\n    var args = [];\n    for (var _i = 2; _i < arguments.length; _i++) {\n        args[_i - 2] = arguments[_i];\n    }\n    return function () {\n        return func.apply(context, args.concat(nativeSlice.call(arguments)));\n    };\n}\nexport var bind = (protoFunction && isFunction(protoFunction.bind))\n    ? protoFunction.call.bind(protoFunction.bind)\n    : bindPolyfill;\nfunction curry(func) {\n    var args = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        args[_i - 1] = arguments[_i];\n    }\n    return function () {\n        return func.apply(this, args.concat(nativeSlice.call(arguments)));\n    };\n}\nexport { curry };\nexport function isArray(value) {\n    if (Array.isArray) {\n        return Array.isArray(value);\n    }\n    return objToString.call(value) === '[object Array]';\n}\nexport function isFunction(value) {\n    return typeof value === 'function';\n}\nexport function isString(value) {\n    return typeof value === 'string';\n}\nexport function isStringSafe(value) {\n    return objToString.call(value) === '[object String]';\n}\nexport function isNumber(value) {\n    return typeof value === 'number';\n}\nexport function isObject(value) {\n    var type = typeof value;\n    return type === 'function' || (!!value && type === 'object');\n}\nexport function isBuiltInObject(value) {\n    return !!BUILTIN_OBJECT[objToString.call(value)];\n}\nexport function isTypedArray(value) {\n    return !!TYPED_ARRAY[objToString.call(value)];\n}\nexport function isDom(value) {\n    return typeof value === 'object'\n        && typeof value.nodeType === 'number'\n        && typeof value.ownerDocument === 'object';\n}\nexport function isGradientObject(value) {\n    return value.colorStops != null;\n}\nexport function isPatternObject(value) {\n    return value.image != null;\n}\nexport function isRegExp(value) {\n    return objToString.call(value) === '[object RegExp]';\n}\nexport function eqNaN(value) {\n    return value !== value;\n}\nexport function retrieve() {\n    var args = [];\n    for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n    }\n    for (var i = 0, len = args.length; i < len; i++) {\n        if (args[i] != null) {\n            return args[i];\n        }\n    }\n}\nexport function retrieve2(value0, value1) {\n    return value0 != null\n        ? value0\n        : value1;\n}\nexport function retrieve3(value0, value1, value2) {\n    return value0 != null\n        ? value0\n        : value1 != null\n            ? value1\n            : value2;\n}\nexport function slice(arr) {\n    var args = [];\n    for (var _i = 1; _i < arguments.length; _i++) {\n        args[_i - 1] = arguments[_i];\n    }\n    return nativeSlice.apply(arr, args);\n}\nexport function normalizeCssArray(val) {\n    if (typeof (val) === 'number') {\n        return [val, val, val, val];\n    }\n    var len = val.length;\n    if (len === 2) {\n        return [val[0], val[1], val[0], val[1]];\n    }\n    else if (len === 3) {\n        return [val[0], val[1], val[2], val[1]];\n    }\n    return val;\n}\nexport function assert(condition, message) {\n    if (!condition) {\n        throw new Error(message);\n    }\n}\nexport function trim(str) {\n    if (str == null) {\n        return null;\n    }\n    else if (typeof str.trim === 'function') {\n        return str.trim();\n    }\n    else {\n        return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '');\n    }\n}\nvar primitiveKey = '__ec_primitive__';\nexport function setAsPrimitive(obj) {\n    obj[primitiveKey] = true;\n}\nexport function isPrimitive(obj) {\n    return obj[primitiveKey];\n}\nvar HashMap = (function () {\n    function HashMap(obj) {\n        this.data = {};\n        var isArr = isArray(obj);\n        this.data = {};\n        var thisMap = this;\n        (obj instanceof HashMap)\n            ? obj.each(visit)\n            : (obj && each(obj, visit));\n        function visit(value, key) {\n            isArr ? thisMap.set(value, key) : thisMap.set(key, value);\n        }\n    }\n    HashMap.prototype.get = function (key) {\n        return this.data.hasOwnProperty(key) ? this.data[key] : null;\n    };\n    HashMap.prototype.set = function (key, value) {\n        return (this.data[key] = value);\n    };\n    HashMap.prototype.each = function (cb, context) {\n        for (var key in this.data) {\n            if (this.data.hasOwnProperty(key)) {\n                cb.call(context, this.data[key], key);\n            }\n        }\n    };\n    HashMap.prototype.keys = function () {\n        return keys(this.data);\n    };\n    HashMap.prototype.removeKey = function (key) {\n        delete this.data[key];\n    };\n    return HashMap;\n}());\nexport { HashMap };\nexport function createHashMap(obj) {\n    return new HashMap(obj);\n}\nexport function concatArray(a, b) {\n    var newArray = new a.constructor(a.length + b.length);\n    for (var i = 0; i < a.length; i++) {\n        newArray[i] = a[i];\n    }\n    var offset = a.length;\n    for (var i = 0; i < b.length; i++) {\n        newArray[i + offset] = b[i];\n    }\n    return newArray;\n}\nexport function createObject(proto, properties) {\n    var obj;\n    if (Object.create) {\n        obj = Object.create(proto);\n    }\n    else {\n        var StyleCtor = function () { };\n        StyleCtor.prototype = proto;\n        obj = new StyleCtor();\n    }\n    if (properties) {\n        extend(obj, properties);\n    }\n    return obj;\n}\nexport function hasOwn(own, prop) {\n    return own.hasOwnProperty(prop);\n}\nexport function noop() { }\n","export function create(x, y) {\n    if (x == null) {\n        x = 0;\n    }\n    if (y == null) {\n        y = 0;\n    }\n    return [x, y];\n}\nexport function copy(out, v) {\n    out[0] = v[0];\n    out[1] = v[1];\n    return out;\n}\nexport function clone(v) {\n    return [v[0], v[1]];\n}\nexport function set(out, a, b) {\n    out[0] = a;\n    out[1] = b;\n    return out;\n}\nexport function add(out, v1, v2) {\n    out[0] = v1[0] + v2[0];\n    out[1] = v1[1] + v2[1];\n    return out;\n}\nexport function scaleAndAdd(out, v1, v2, a) {\n    out[0] = v1[0] + v2[0] * a;\n    out[1] = v1[1] + v2[1] * a;\n    return out;\n}\nexport function sub(out, v1, v2) {\n    out[0] = v1[0] - v2[0];\n    out[1] = v1[1] - v2[1];\n    return out;\n}\nexport function len(v) {\n    return Math.sqrt(lenSquare(v));\n}\nexport var length = len;\nexport function lenSquare(v) {\n    return v[0] * v[0] + v[1] * v[1];\n}\nexport var lengthSquare = lenSquare;\nexport function mul(out, v1, v2) {\n    out[0] = v1[0] * v2[0];\n    out[1] = v1[1] * v2[1];\n    return out;\n}\nexport function div(out, v1, v2) {\n    out[0] = v1[0] / v2[0];\n    out[1] = v1[1] / v2[1];\n    return out;\n}\nexport function dot(v1, v2) {\n    return v1[0] * v2[0] + v1[1] * v2[1];\n}\nexport function scale(out, v, s) {\n    out[0] = v[0] * s;\n    out[1] = v[1] * s;\n    return out;\n}\nexport function normalize(out, v) {\n    var d = len(v);\n    if (d === 0) {\n        out[0] = 0;\n        out[1] = 0;\n    }\n    else {\n        out[0] = v[0] / d;\n        out[1] = v[1] / d;\n    }\n    return out;\n}\nexport function distance(v1, v2) {\n    return Math.sqrt((v1[0] - v2[0]) * (v1[0] - v2[0])\n        + (v1[1] - v2[1]) * (v1[1] - v2[1]));\n}\nexport var dist = distance;\nexport function distanceSquare(v1, v2) {\n    return (v1[0] - v2[0]) * (v1[0] - v2[0])\n        + (v1[1] - v2[1]) * (v1[1] - v2[1]);\n}\nexport var distSquare = distanceSquare;\nexport function negate(out, v) {\n    out[0] = -v[0];\n    out[1] = -v[1];\n    return out;\n}\nexport function lerp(out, v1, v2, t) {\n    out[0] = v1[0] + t * (v2[0] - v1[0]);\n    out[1] = v1[1] + t * (v2[1] - v1[1]);\n    return out;\n}\nexport function applyTransform(out, v, m) {\n    var x = v[0];\n    var y = v[1];\n    out[0] = m[0] * x + m[2] * y + m[4];\n    out[1] = m[1] * x + m[3] * y + m[5];\n    return out;\n}\nexport function min(out, v1, v2) {\n    out[0] = Math.min(v1[0], v2[0]);\n    out[1] = Math.min(v1[1], v2[1]);\n    return out;\n}\nexport function max(out, v1, v2) {\n    out[0] = Math.max(v1[0], v2[0]);\n    out[1] = Math.max(v1[1], v2[1]);\n    return out;\n}\n","var Param = (function () {\n    function Param(target, e) {\n        this.target = target;\n        this.topTarget = e && e.topTarget;\n    }\n    return Param;\n}());\nvar Draggable = (function () {\n    function Draggable(handler) {\n        this.handler = handler;\n        handler.on('mousedown', this._dragStart, this);\n        handler.on('mousemove', this._drag, this);\n        handler.on('mouseup', this._dragEnd, this);\n    }\n    Draggable.prototype._dragStart = function (e) {\n        var draggingTarget = e.target;\n        while (draggingTarget && !draggingTarget.draggable) {\n            draggingTarget = draggingTarget.parent;\n        }\n        if (draggingTarget) {\n            this._draggingTarget = draggingTarget;\n            draggingTarget.dragging = true;\n            this._x = e.offsetX;\n            this._y = e.offsetY;\n            this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragstart', e.event);\n        }\n    };\n    Draggable.prototype._drag = function (e) {\n        var draggingTarget = this._draggingTarget;\n        if (draggingTarget) {\n            var x = e.offsetX;\n            var y = e.offsetY;\n            var dx = x - this._x;\n            var dy = y - this._y;\n            this._x = x;\n            this._y = y;\n            draggingTarget.drift(dx, dy, e);\n            this.handler.dispatchToElement(new Param(draggingTarget, e), 'drag', e.event);\n            var dropTarget = this.handler.findHover(x, y, draggingTarget).target;\n            var lastDropTarget = this._dropTarget;\n            this._dropTarget = dropTarget;\n            if (draggingTarget !== dropTarget) {\n                if (lastDropTarget && dropTarget !== lastDropTarget) {\n                    this.handler.dispatchToElement(new Param(lastDropTarget, e), 'dragleave', e.event);\n                }\n                if (dropTarget && dropTarget !== lastDropTarget) {\n                    this.handler.dispatchToElement(new Param(dropTarget, e), 'dragenter', e.event);\n                }\n            }\n        }\n    };\n    Draggable.prototype._dragEnd = function (e) {\n        var draggingTarget = this._draggingTarget;\n        if (draggingTarget) {\n            draggingTarget.dragging = false;\n        }\n        this.handler.dispatchToElement(new Param(draggingTarget, e), 'dragend', e.event);\n        if (this._dropTarget) {\n            this.handler.dispatchToElement(new Param(this._dropTarget, e), 'drop', e.event);\n        }\n        this._draggingTarget = null;\n        this._dropTarget = null;\n    };\n    return Draggable;\n}());\nexport default Draggable;\n","var Eventful = (function () {\n    function Eventful(eventProcessors) {\n        if (eventProcessors) {\n            this._$eventProcessor = eventProcessors;\n        }\n    }\n    Eventful.prototype.on = function (event, query, handler, context) {\n        if (!this._$handlers) {\n            this._$handlers = {};\n        }\n        var _h = this._$handlers;\n        if (typeof query === 'function') {\n            context = handler;\n            handler = query;\n            query = null;\n        }\n        if (!handler || !event) {\n            return this;\n        }\n        var eventProcessor = this._$eventProcessor;\n        if (query != null && eventProcessor && eventProcessor.normalizeQuery) {\n            query = eventProcessor.normalizeQuery(query);\n        }\n        if (!_h[event]) {\n            _h[event] = [];\n        }\n        for (var i = 0; i < _h[event].length; i++) {\n            if (_h[event][i].h === handler) {\n                return this;\n            }\n        }\n        var wrap = {\n            h: handler,\n            query: query,\n            ctx: (context || this),\n            callAtLast: handler.zrEventfulCallAtLast\n        };\n        var lastIndex = _h[event].length - 1;\n        var lastWrap = _h[event][lastIndex];\n        (lastWrap && lastWrap.callAtLast)\n            ? _h[event].splice(lastIndex, 0, wrap)\n            : _h[event].push(wrap);\n        return this;\n    };\n    Eventful.prototype.isSilent = function (eventName) {\n        var _h = this._$handlers;\n        return !_h || !_h[eventName] || !_h[eventName].length;\n    };\n    Eventful.prototype.off = function (eventType, handler) {\n        var _h = this._$handlers;\n        if (!_h) {\n            return this;\n        }\n        if (!eventType) {\n            this._$handlers = {};\n            return this;\n        }\n        if (handler) {\n            if (_h[eventType]) {\n                var newList = [];\n                for (var i = 0, l = _h[eventType].length; i < l; i++) {\n                    if (_h[eventType][i].h !== handler) {\n                        newList.push(_h[eventType][i]);\n                    }\n                }\n                _h[eventType] = newList;\n            }\n            if (_h[eventType] && _h[eventType].length === 0) {\n                delete _h[eventType];\n            }\n        }\n        else {\n            delete _h[eventType];\n        }\n        return this;\n    };\n    Eventful.prototype.trigger = function (eventType) {\n        var args = [];\n        for (var _i = 1; _i < arguments.length; _i++) {\n            args[_i - 1] = arguments[_i];\n        }\n        if (!this._$handlers) {\n            return this;\n        }\n        var _h = this._$handlers[eventType];\n        var eventProcessor = this._$eventProcessor;\n        if (_h) {\n            var argLen = args.length;\n            var len = _h.length;\n            for (var i = 0; i < len; i++) {\n                var hItem = _h[i];\n                if (eventProcessor\n                    && eventProcessor.filter\n                    && hItem.query != null\n                    && !eventProcessor.filter(eventType, hItem.query)) {\n                    continue;\n                }\n                switch (argLen) {\n                    case 0:\n                        hItem.h.call(hItem.ctx);\n                        break;\n                    case 1:\n                        hItem.h.call(hItem.ctx, args[0]);\n                        break;\n                    case 2:\n                        hItem.h.call(hItem.ctx, args[0], args[1]);\n                        break;\n                    default:\n                        hItem.h.apply(hItem.ctx, args);\n                        break;\n                }\n            }\n        }\n        eventProcessor && eventProcessor.afterTrigger\n            && eventProcessor.afterTrigger(eventType);\n        return this;\n    };\n    Eventful.prototype.triggerWithContext = function (type) {\n        if (!this._$handlers) {\n            return this;\n        }\n        var _h = this._$handlers[type];\n        var eventProcessor = this._$eventProcessor;\n        if (_h) {\n            var args = arguments;\n            var argLen = args.length;\n            var ctx = args[argLen - 1];\n            var len = _h.length;\n            for (var i = 0; i < len; i++) {\n                var hItem = _h[i];\n                if (eventProcessor\n                    && eventProcessor.filter\n                    && hItem.query != null\n                    && !eventProcessor.filter(type, hItem.query)) {\n                    continue;\n                }\n                switch (argLen) {\n                    case 0:\n                        hItem.h.call(ctx);\n                        break;\n                    case 1:\n                        hItem.h.call(ctx, args[0]);\n                        break;\n                    case 2:\n                        hItem.h.call(ctx, args[0], args[1]);\n                        break;\n                    default:\n                        hItem.h.apply(ctx, args.slice(1, argLen - 1));\n                        break;\n                }\n            }\n        }\n        eventProcessor && eventProcessor.afterTrigger\n            && eventProcessor.afterTrigger(type);\n        return this;\n    };\n    return Eventful;\n}());\nexport default Eventful;\n","var LN2 = Math.log(2);\nfunction determinant(rows, rank, rowStart, rowMask, colMask, detCache) {\n    var cacheKey = rowMask + '-' + colMask;\n    var fullRank = rows.length;\n    if (detCache.hasOwnProperty(cacheKey)) {\n        return detCache[cacheKey];\n    }\n    if (rank === 1) {\n        var colStart = Math.round(Math.log(((1 << fullRank) - 1) & ~colMask) / LN2);\n        return rows[rowStart][colStart];\n    }\n    var subRowMask = rowMask | (1 << rowStart);\n    var subRowStart = rowStart + 1;\n    while (rowMask & (1 << subRowStart)) {\n        subRowStart++;\n    }\n    var sum = 0;\n    for (var j = 0, colLocalIdx = 0; j < fullRank; j++) {\n        var colTag = 1 << j;\n        if (!(colTag & colMask)) {\n            sum += (colLocalIdx % 2 ? -1 : 1) * rows[rowStart][j]\n                * determinant(rows, rank - 1, subRowStart, subRowMask, colMask | colTag, detCache);\n            colLocalIdx++;\n        }\n    }\n    detCache[cacheKey] = sum;\n    return sum;\n}\nexport function buildTransformer(src, dest) {\n    var mA = [\n        [src[0], src[1], 1, 0, 0, 0, -dest[0] * src[0], -dest[0] * src[1]],\n        [0, 0, 0, src[0], src[1], 1, -dest[1] * src[0], -dest[1] * src[1]],\n        [src[2], src[3], 1, 0, 0, 0, -dest[2] * src[2], -dest[2] * src[3]],\n        [0, 0, 0, src[2], src[3], 1, -dest[3] * src[2], -dest[3] * src[3]],\n        [src[4], src[5], 1, 0, 0, 0, -dest[4] * src[4], -dest[4] * src[5]],\n        [0, 0, 0, src[4], src[5], 1, -dest[5] * src[4], -dest[5] * src[5]],\n        [src[6], src[7], 1, 0, 0, 0, -dest[6] * src[6], -dest[6] * src[7]],\n        [0, 0, 0, src[6], src[7], 1, -dest[7] * src[6], -dest[7] * src[7]]\n    ];\n    var detCache = {};\n    var det = determinant(mA, 8, 0, 0, 0, detCache);\n    if (det === 0) {\n        return;\n    }\n    var vh = [];\n    for (var i = 0; i < 8; i++) {\n        for (var j = 0; j < 8; j++) {\n            vh[j] == null && (vh[j] = 0);\n            vh[j] += ((i + j) % 2 ? -1 : 1)\n                * determinant(mA, 7, i === 0 ? 1 : 0, 1 << i, 1 << j, detCache)\n                / det * dest[i];\n        }\n    }\n    return function (out, srcPointX, srcPointY) {\n        var pk = srcPointX * vh[6] + srcPointY * vh[7] + 1;\n        out[0] = (srcPointX * vh[0] + srcPointY * vh[1] + vh[2]) / pk;\n        out[1] = (srcPointX * vh[3] + srcPointY * vh[4] + vh[5]) / pk;\n    };\n}\n","import env from './env';\nimport { buildTransformer } from './fourPointsTransform';\nvar EVENT_SAVED_PROP = '___zrEVENTSAVED';\nvar _calcOut = [];\nexport function transformLocalCoord(out, elFrom, elTarget, inX, inY) {\n    return transformCoordWithViewport(_calcOut, elFrom, inX, inY, true)\n        && transformCoordWithViewport(out, elTarget, _calcOut[0], _calcOut[1]);\n}\nexport function transformCoordWithViewport(out, el, inX, inY, inverse) {\n    if (el.getBoundingClientRect && env.domSupported && !isCanvasEl(el)) {\n        var saved = el[EVENT_SAVED_PROP] || (el[EVENT_SAVED_PROP] = {});\n        var markers = prepareCoordMarkers(el, saved);\n        var transformer = preparePointerTransformer(markers, saved, inverse);\n        if (transformer) {\n            transformer(out, inX, inY);\n            return true;\n        }\n    }\n    return false;\n}\nfunction prepareCoordMarkers(el, saved) {\n    var markers = saved.markers;\n    if (markers) {\n        return markers;\n    }\n    markers = saved.markers = [];\n    var propLR = ['left', 'right'];\n    var propTB = ['top', 'bottom'];\n    for (var i = 0; i < 4; i++) {\n        var marker = document.createElement('div');\n        var stl = marker.style;\n        var idxLR = i % 2;\n        var idxTB = (i >> 1) % 2;\n        stl.cssText = [\n            'position: absolute',\n            'visibility: hidden',\n            'padding: 0',\n            'margin: 0',\n            'border-width: 0',\n            'user-select: none',\n            'width:0',\n            'height:0',\n            propLR[idxLR] + ':0',\n            propTB[idxTB] + ':0',\n            propLR[1 - idxLR] + ':auto',\n            propTB[1 - idxTB] + ':auto',\n            ''\n        ].join('!important;');\n        el.appendChild(marker);\n        markers.push(marker);\n    }\n    return markers;\n}\nfunction preparePointerTransformer(markers, saved, inverse) {\n    var transformerName = inverse ? 'invTrans' : 'trans';\n    var transformer = saved[transformerName];\n    var oldSrcCoords = saved.srcCoords;\n    var srcCoords = [];\n    var destCoords = [];\n    var oldCoordTheSame = true;\n    for (var i = 0; i < 4; i++) {\n        var rect = markers[i].getBoundingClientRect();\n        var ii = 2 * i;\n        var x = rect.left;\n        var y = rect.top;\n        srcCoords.push(x, y);\n        oldCoordTheSame = oldCoordTheSame && oldSrcCoords && x === oldSrcCoords[ii] && y === oldSrcCoords[ii + 1];\n        destCoords.push(markers[i].offsetLeft, markers[i].offsetTop);\n    }\n    return (oldCoordTheSame && transformer)\n        ? transformer\n        : (saved.srcCoords = srcCoords,\n            saved[transformerName] = inverse\n                ? buildTransformer(destCoords, srcCoords)\n                : buildTransformer(srcCoords, destCoords));\n}\nexport function isCanvasEl(el) {\n    return el.nodeName.toUpperCase() === 'CANVAS';\n}\n","import Eventful from './Eventful';\nimport env from './env';\nimport { isCanvasEl, transformCoordWithViewport } from './dom';\nvar isDomLevel2 = (typeof window !== 'undefined') && !!window.addEventListener;\nvar MOUSE_EVENT_REG = /^(?:mouse|pointer|contextmenu|drag|drop)|click/;\nvar _calcOut = [];\nexport function clientToLocal(el, e, out, calculate) {\n    out = out || {};\n    if (calculate || !env.canvasSupported) {\n        calculateZrXY(el, e, out);\n    }\n    else if (env.browser.firefox\n        && e.layerX != null\n        && e.layerX !== e.offsetX) {\n        out.zrX = e.layerX;\n        out.zrY = e.layerY;\n    }\n    else if (e.offsetX != null) {\n        out.zrX = e.offsetX;\n        out.zrY = e.offsetY;\n    }\n    else {\n        calculateZrXY(el, e, out);\n    }\n    return out;\n}\nfunction calculateZrXY(el, e, out) {\n    if (env.domSupported && el.getBoundingClientRect) {\n        var ex = e.clientX;\n        var ey = e.clientY;\n        if (isCanvasEl(el)) {\n            var box = el.getBoundingClientRect();\n            out.zrX = ex - box.left;\n            out.zrY = ey - box.top;\n            return;\n        }\n        else {\n            if (transformCoordWithViewport(_calcOut, el, ex, ey)) {\n                out.zrX = _calcOut[0];\n                out.zrY = _calcOut[1];\n                return;\n            }\n        }\n    }\n    out.zrX = out.zrY = 0;\n}\nexport function getNativeEvent(e) {\n    return e\n        || window.event;\n}\nexport function normalizeEvent(el, e, calculate) {\n    e = getNativeEvent(e);\n    if (e.zrX != null) {\n        return e;\n    }\n    var eventType = e.type;\n    var isTouch = eventType && eventType.indexOf('touch') >= 0;\n    if (!isTouch) {\n        clientToLocal(el, e, e, calculate);\n        var wheelDelta = getWheelDeltaMayPolyfill(e);\n        e.zrDelta = wheelDelta ? wheelDelta / 120 : -(e.detail || 0) / 3;\n    }\n    else {\n        var touch = eventType !== 'touchend'\n            ? e.targetTouches[0]\n            : e.changedTouches[0];\n        touch && clientToLocal(el, touch, e, calculate);\n    }\n    var button = e.button;\n    if (e.which == null && button !== undefined && MOUSE_EVENT_REG.test(e.type)) {\n        e.which = (button & 1 ? 1 : (button & 2 ? 3 : (button & 4 ? 2 : 0)));\n    }\n    return e;\n}\nfunction getWheelDeltaMayPolyfill(e) {\n    var rawWheelDelta = e.wheelDelta;\n    if (rawWheelDelta) {\n        return rawWheelDelta;\n    }\n    var deltaX = e.deltaX;\n    var deltaY = e.deltaY;\n    if (deltaX == null || deltaY == null) {\n        return rawWheelDelta;\n    }\n    var delta = deltaY !== 0 ? Math.abs(deltaY) : Math.abs(deltaX);\n    var sign = deltaY > 0 ? -1\n        : deltaY < 0 ? 1\n            : deltaX > 0 ? -1\n                : 1;\n    return 3 * delta * sign;\n}\nexport function addEventListener(el, name, handler, opt) {\n    if (isDomLevel2) {\n        el.addEventListener(name, handler, opt);\n    }\n    else {\n        el.attachEvent('on' + name, handler);\n    }\n}\nexport function removeEventListener(el, name, handler, opt) {\n    if (isDomLevel2) {\n        el.removeEventListener(name, handler, opt);\n    }\n    else {\n        el.detachEvent('on' + name, handler);\n    }\n}\nexport var stop = isDomLevel2\n    ? function (e) {\n        e.preventDefault();\n        e.stopPropagation();\n        e.cancelBubble = true;\n    }\n    : function (e) {\n        e.returnValue = false;\n        e.cancelBubble = true;\n    };\nexport function isMiddleOrRightButtonOnMouseUpDown(e) {\n    return e.which === 2 || e.which === 3;\n}\nexport function notLeftMouse(e) {\n    return e.which > 1;\n}\nexport { Eventful as Dispatcher };\n","import * as eventUtil from './event';\nvar GestureMgr = (function () {\n    function GestureMgr() {\n        this._track = [];\n    }\n    GestureMgr.prototype.recognize = function (event, target, root) {\n        this._doTrack(event, target, root);\n        return this._recognize(event);\n    };\n    GestureMgr.prototype.clear = function () {\n        this._track.length = 0;\n        return this;\n    };\n    GestureMgr.prototype._doTrack = function (event, target, root) {\n        var touches = event.touches;\n        if (!touches) {\n            return;\n        }\n        var trackItem = {\n            points: [],\n            touches: [],\n            target: target,\n            event: event\n        };\n        for (var i = 0, len = touches.length; i < len; i++) {\n            var touch = touches[i];\n            var pos = eventUtil.clientToLocal(root, touch, {});\n            trackItem.points.push([pos.zrX, pos.zrY]);\n            trackItem.touches.push(touch);\n        }\n        this._track.push(trackItem);\n    };\n    GestureMgr.prototype._recognize = function (event) {\n        for (var eventName in recognizers) {\n            if (recognizers.hasOwnProperty(eventName)) {\n                var gestureInfo = recognizers[eventName](this._track, event);\n                if (gestureInfo) {\n                    return gestureInfo;\n                }\n            }\n        }\n    };\n    return GestureMgr;\n}());\nexport { GestureMgr };\nfunction dist(pointPair) {\n    var dx = pointPair[1][0] - pointPair[0][0];\n    var dy = pointPair[1][1] - pointPair[0][1];\n    return Math.sqrt(dx * dx + dy * dy);\n}\nfunction center(pointPair) {\n    return [\n        (pointPair[0][0] + pointPair[1][0]) / 2,\n        (pointPair[0][1] + pointPair[1][1]) / 2\n    ];\n}\nvar recognizers = {\n    pinch: function (tracks, event) {\n        var trackLen = tracks.length;\n        if (!trackLen) {\n            return;\n        }\n        var pinchEnd = (tracks[trackLen - 1] || {}).points;\n        var pinchPre = (tracks[trackLen - 2] || {}).points || pinchEnd;\n        if (pinchPre\n            && pinchPre.length > 1\n            && pinchEnd\n            && pinchEnd.length > 1) {\n            var pinchScale = dist(pinchEnd) / dist(pinchPre);\n            !isFinite(pinchScale) && (pinchScale = 1);\n            event.pinchScale = pinchScale;\n            var pinchCenter = center(pinchEnd);\n            event.pinchX = pinchCenter[0];\n            event.pinchY = pinchCenter[1];\n            return {\n                type: 'pinch',\n                target: tracks[0].target,\n                event: event\n            };\n        }\n    }\n};\n","import { __extends } from \"tslib\";\nimport * as util from './core/util';\nimport * as vec2 from './core/vector';\nimport Draggable from './mixin/Draggable';\nimport Eventful from './core/Eventful';\nimport * as eventTool from './core/event';\nimport { GestureMgr } from './core/GestureMgr';\nvar SILENT = 'silent';\nfunction makeEventPacket(eveType, targetInfo, event) {\n    return {\n        type: eveType,\n        event: event,\n        target: targetInfo.target,\n        topTarget: targetInfo.topTarget,\n        cancelBubble: false,\n        offsetX: event.zrX,\n        offsetY: event.zrY,\n        gestureEvent: event.gestureEvent,\n        pinchX: event.pinchX,\n        pinchY: event.pinchY,\n        pinchScale: event.pinchScale,\n        wheelDelta: event.zrDelta,\n        zrByTouch: event.zrByTouch,\n        which: event.which,\n        stop: stopEvent\n    };\n}\nfunction stopEvent() {\n    eventTool.stop(this.event);\n}\nvar EmptyProxy = (function (_super) {\n    __extends(EmptyProxy, _super);\n    function EmptyProxy() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.handler = null;\n        return _this;\n    }\n    EmptyProxy.prototype.dispose = function () { };\n    EmptyProxy.prototype.setCursor = function () { };\n    return EmptyProxy;\n}(Eventful));\nvar HoveredResult = (function () {\n    function HoveredResult(x, y) {\n        this.x = x;\n        this.y = y;\n    }\n    return HoveredResult;\n}());\nvar handlerNames = [\n    'click', 'dblclick', 'mousewheel', 'mouseout',\n    'mouseup', 'mousedown', 'mousemove', 'contextmenu'\n];\nvar Handler = (function (_super) {\n    __extends(Handler, _super);\n    function Handler(storage, painter, proxy, painterRoot) {\n        var _this = _super.call(this) || this;\n        _this._hovered = new HoveredResult(0, 0);\n        _this.storage = storage;\n        _this.painter = painter;\n        _this.painterRoot = painterRoot;\n        proxy = proxy || new EmptyProxy();\n        _this.proxy = null;\n        _this.setHandlerProxy(proxy);\n        _this._draggingMgr = new Draggable(_this);\n        return _this;\n    }\n    Handler.prototype.setHandlerProxy = function (proxy) {\n        if (this.proxy) {\n            this.proxy.dispose();\n        }\n        if (proxy) {\n            util.each(handlerNames, function (name) {\n                proxy.on && proxy.on(name, this[name], this);\n            }, this);\n            proxy.handler = this;\n        }\n        this.proxy = proxy;\n    };\n    Handler.prototype.mousemove = function (event) {\n        var x = event.zrX;\n        var y = event.zrY;\n        var isOutside = isOutsideBoundary(this, x, y);\n        var lastHovered = this._hovered;\n        var lastHoveredTarget = lastHovered.target;\n        if (lastHoveredTarget && !lastHoveredTarget.__zr) {\n            lastHovered = this.findHover(lastHovered.x, lastHovered.y);\n            lastHoveredTarget = lastHovered.target;\n        }\n        var hovered = this._hovered = isOutside ? new HoveredResult(x, y) : this.findHover(x, y);\n        var hoveredTarget = hovered.target;\n        var proxy = this.proxy;\n        proxy.setCursor && proxy.setCursor(hoveredTarget ? hoveredTarget.cursor : 'default');\n        if (lastHoveredTarget && hoveredTarget !== lastHoveredTarget) {\n            this.dispatchToElement(lastHovered, 'mouseout', event);\n        }\n        this.dispatchToElement(hovered, 'mousemove', event);\n        if (hoveredTarget && hoveredTarget !== lastHoveredTarget) {\n            this.dispatchToElement(hovered, 'mouseover', event);\n        }\n    };\n    Handler.prototype.mouseout = function (event) {\n        var eventControl = event.zrEventControl;\n        if (eventControl !== 'only_globalout') {\n            this.dispatchToElement(this._hovered, 'mouseout', event);\n        }\n        if (eventControl !== 'no_globalout') {\n            this.trigger('globalout', { type: 'globalout', event: event });\n        }\n    };\n    Handler.prototype.resize = function () {\n        this._hovered = new HoveredResult(0, 0);\n    };\n    Handler.prototype.dispatch = function (eventName, eventArgs) {\n        var handler = this[eventName];\n        handler && handler.call(this, eventArgs);\n    };\n    Handler.prototype.dispose = function () {\n        this.proxy.dispose();\n        this.storage = null;\n        this.proxy = null;\n        this.painter = null;\n    };\n    Handler.prototype.setCursorStyle = function (cursorStyle) {\n        var proxy = this.proxy;\n        proxy.setCursor && proxy.setCursor(cursorStyle);\n    };\n    Handler.prototype.dispatchToElement = function (targetInfo, eventName, event) {\n        targetInfo = targetInfo || {};\n        var el = targetInfo.target;\n        if (el && el.silent) {\n            return;\n        }\n        var eventKey = ('on' + eventName);\n        var eventPacket = makeEventPacket(eventName, targetInfo, event);\n        while (el) {\n            el[eventKey]\n                && (eventPacket.cancelBubble = !!el[eventKey].call(el, eventPacket));\n            el.trigger(eventName, eventPacket);\n            el = el.__hostTarget ? el.__hostTarget : el.parent;\n            if (eventPacket.cancelBubble) {\n                break;\n            }\n        }\n        if (!eventPacket.cancelBubble) {\n            this.trigger(eventName, eventPacket);\n            if (this.painter && this.painter.eachOtherLayer) {\n                this.painter.eachOtherLayer(function (layer) {\n                    if (typeof (layer[eventKey]) === 'function') {\n                        layer[eventKey].call(layer, eventPacket);\n                    }\n                    if (layer.trigger) {\n                        layer.trigger(eventName, eventPacket);\n                    }\n                });\n            }\n        }\n    };\n    Handler.prototype.findHover = function (x, y, exclude) {\n        var list = this.storage.getDisplayList();\n        var out = new HoveredResult(x, y);\n        for (var i = list.length - 1; i >= 0; i--) {\n            var hoverCheckResult = void 0;\n            if (list[i] !== exclude\n                && !list[i].ignore\n                && (hoverCheckResult = isHover(list[i], x, y))) {\n                !out.topTarget && (out.topTarget = list[i]);\n                if (hoverCheckResult !== SILENT) {\n                    out.target = list[i];\n                    break;\n                }\n            }\n        }\n        return out;\n    };\n    Handler.prototype.processGesture = function (event, stage) {\n        if (!this._gestureMgr) {\n            this._gestureMgr = new GestureMgr();\n        }\n        var gestureMgr = this._gestureMgr;\n        stage === 'start' && gestureMgr.clear();\n        var gestureInfo = gestureMgr.recognize(event, this.findHover(event.zrX, event.zrY, null).target, this.proxy.dom);\n        stage === 'end' && gestureMgr.clear();\n        if (gestureInfo) {\n            var type = gestureInfo.type;\n            event.gestureEvent = type;\n            var res = new HoveredResult();\n            res.target = gestureInfo.target;\n            this.dispatchToElement(res, type, gestureInfo.event);\n        }\n    };\n    return Handler;\n}(Eventful));\nutil.each(['click', 'mousedown', 'mouseup', 'mousewheel', 'dblclick', 'contextmenu'], function (name) {\n    Handler.prototype[name] = function (event) {\n        var x = event.zrX;\n        var y = event.zrY;\n        var isOutside = isOutsideBoundary(this, x, y);\n        var hovered;\n        var hoveredTarget;\n        if (name !== 'mouseup' || !isOutside) {\n            hovered = this.findHover(x, y);\n            hoveredTarget = hovered.target;\n        }\n        if (name === 'mousedown') {\n            this._downEl = hoveredTarget;\n            this._downPoint = [event.zrX, event.zrY];\n            this._upEl = hoveredTarget;\n        }\n        else if (name === 'mouseup') {\n            this._upEl = hoveredTarget;\n        }\n        else if (name === 'click') {\n            if (this._downEl !== this._upEl\n                || !this._downPoint\n                || vec2.dist(this._downPoint, [event.zrX, event.zrY]) > 4) {\n                return;\n            }\n            this._downPoint = null;\n        }\n        this.dispatchToElement(hovered, name, event);\n    };\n});\nfunction isHover(displayable, x, y) {\n    if (displayable[displayable.rectHover ? 'rectContain' : 'contain'](x, y)) {\n        var el = displayable;\n        var isSilent = void 0;\n        var ignoreClip = false;\n        while (el) {\n            if (el.ignoreClip) {\n                ignoreClip = true;\n            }\n            if (!ignoreClip) {\n                var clipPath = el.getClipPath();\n                if (clipPath && !clipPath.contain(x, y)) {\n                    return false;\n                }\n                if (el.silent) {\n                    isSilent = true;\n                }\n            }\n            var hostEl = el.__hostTarget;\n            el = hostEl ? hostEl : el.parent;\n        }\n        return isSilent ? SILENT : true;\n    }\n    return false;\n}\nfunction isOutsideBoundary(handlerInstance, x, y) {\n    var painter = handlerInstance.painter;\n    return x < 0 || x > painter.getWidth() || y < 0 || y > painter.getHeight();\n}\nexport default Handler;\n","export function create() {\n    return [1, 0, 0, 1, 0, 0];\n}\nexport function identity(out) {\n    out[0] = 1;\n    out[1] = 0;\n    out[2] = 0;\n    out[3] = 1;\n    out[4] = 0;\n    out[5] = 0;\n    return out;\n}\nexport function copy(out, m) {\n    out[0] = m[0];\n    out[1] = m[1];\n    out[2] = m[2];\n    out[3] = m[3];\n    out[4] = m[4];\n    out[5] = m[5];\n    return out;\n}\nexport function mul(out, m1, m2) {\n    var out0 = m1[0] * m2[0] + m1[2] * m2[1];\n    var out1 = m1[1] * m2[0] + m1[3] * m2[1];\n    var out2 = m1[0] * m2[2] + m1[2] * m2[3];\n    var out3 = m1[1] * m2[2] + m1[3] * m2[3];\n    var out4 = m1[0] * m2[4] + m1[2] * m2[5] + m1[4];\n    var out5 = m1[1] * m2[4] + m1[3] * m2[5] + m1[5];\n    out[0] = out0;\n    out[1] = out1;\n    out[2] = out2;\n    out[3] = out3;\n    out[4] = out4;\n    out[5] = out5;\n    return out;\n}\nexport function translate(out, a, v) {\n    out[0] = a[0];\n    out[1] = a[1];\n    out[2] = a[2];\n    out[3] = a[3];\n    out[4] = a[4] + v[0];\n    out[5] = a[5] + v[1];\n    return out;\n}\nexport function rotate(out, a, rad) {\n    var aa = a[0];\n    var ac = a[2];\n    var atx = a[4];\n    var ab = a[1];\n    var ad = a[3];\n    var aty = a[5];\n    var st = Math.sin(rad);\n    var ct = Math.cos(rad);\n    out[0] = aa * ct + ab * st;\n    out[1] = -aa * st + ab * ct;\n    out[2] = ac * ct + ad * st;\n    out[3] = -ac * st + ct * ad;\n    out[4] = ct * atx + st * aty;\n    out[5] = ct * aty - st * atx;\n    return out;\n}\nexport function scale(out, a, v) {\n    var vx = v[0];\n    var vy = v[1];\n    out[0] = a[0] * vx;\n    out[1] = a[1] * vy;\n    out[2] = a[2] * vx;\n    out[3] = a[3] * vy;\n    out[4] = a[4] * vx;\n    out[5] = a[5] * vy;\n    return out;\n}\nexport function invert(out, a) {\n    var aa = a[0];\n    var ac = a[2];\n    var atx = a[4];\n    var ab = a[1];\n    var ad = a[3];\n    var aty = a[5];\n    var det = aa * ad - ab * ac;\n    if (!det) {\n        return null;\n    }\n    det = 1.0 / det;\n    out[0] = ad * det;\n    out[1] = -ab * det;\n    out[2] = -ac * det;\n    out[3] = aa * det;\n    out[4] = (ac * aty - ad * atx) * det;\n    out[5] = (ab * atx - aa * aty) * det;\n    return out;\n}\nexport function clone(a) {\n    var b = create();\n    copy(b, a);\n    return b;\n}\n","import * as matrix from './matrix';\nimport * as vector from './vector';\nvar mIdentity = matrix.identity;\nvar EPSILON = 5e-5;\nfunction isNotAroundZero(val) {\n    return val > EPSILON || val < -EPSILON;\n}\nvar scaleTmp = [];\nvar tmpTransform = [];\nvar originTransform = matrix.create();\nvar abs = Math.abs;\nvar Transformable = (function () {\n    function Transformable() {\n    }\n    Transformable.prototype.setPosition = function (arr) {\n        this.x = arr[0];\n        this.y = arr[1];\n    };\n    Transformable.prototype.setScale = function (arr) {\n        this.scaleX = arr[0];\n        this.scaleY = arr[1];\n    };\n    Transformable.prototype.setOrigin = function (arr) {\n        this.originX = arr[0];\n        this.originY = arr[1];\n    };\n    Transformable.prototype.needLocalTransform = function () {\n        return isNotAroundZero(this.rotation)\n            || isNotAroundZero(this.x)\n            || isNotAroundZero(this.y)\n            || isNotAroundZero(this.scaleX - 1)\n            || isNotAroundZero(this.scaleY - 1);\n    };\n    Transformable.prototype.updateTransform = function () {\n        var parent = this.parent;\n        var parentHasTransform = parent && parent.transform;\n        var needLocalTransform = this.needLocalTransform();\n        var m = this.transform;\n        if (!(needLocalTransform || parentHasTransform)) {\n            m && mIdentity(m);\n            return;\n        }\n        m = m || matrix.create();\n        if (needLocalTransform) {\n            this.getLocalTransform(m);\n        }\n        else {\n            mIdentity(m);\n        }\n        if (parentHasTransform) {\n            if (needLocalTransform) {\n                matrix.mul(m, parent.transform, m);\n            }\n            else {\n                matrix.copy(m, parent.transform);\n            }\n        }\n        this.transform = m;\n        this._resolveGlobalScaleRatio(m);\n    };\n    Transformable.prototype._resolveGlobalScaleRatio = function (m) {\n        var globalScaleRatio = this.globalScaleRatio;\n        if (globalScaleRatio != null && globalScaleRatio !== 1) {\n            this.getGlobalScale(scaleTmp);\n            var relX = scaleTmp[0] < 0 ? -1 : 1;\n            var relY = scaleTmp[1] < 0 ? -1 : 1;\n            var sx = ((scaleTmp[0] - relX) * globalScaleRatio + relX) / scaleTmp[0] || 0;\n            var sy = ((scaleTmp[1] - relY) * globalScaleRatio + relY) / scaleTmp[1] || 0;\n            m[0] *= sx;\n            m[1] *= sx;\n            m[2] *= sy;\n            m[3] *= sy;\n        }\n        this.invTransform = this.invTransform || matrix.create();\n        matrix.invert(this.invTransform, m);\n    };\n    Transformable.prototype.getLocalTransform = function (m) {\n        return Transformable.getLocalTransform(this, m);\n    };\n    Transformable.prototype.getComputedTransform = function () {\n        var transformNode = this;\n        var ancestors = [];\n        while (transformNode) {\n            ancestors.push(transformNode);\n            transformNode = transformNode.parent;\n        }\n        while (transformNode = ancestors.pop()) {\n            transformNode.updateTransform();\n        }\n        return this.transform;\n    };\n    Transformable.prototype.setLocalTransform = function (m) {\n        if (!m) {\n            return;\n        }\n        var sx = m[0] * m[0] + m[1] * m[1];\n        var sy = m[2] * m[2] + m[3] * m[3];\n        if (isNotAroundZero(sx - 1)) {\n            sx = Math.sqrt(sx);\n        }\n        if (isNotAroundZero(sy - 1)) {\n            sy = Math.sqrt(sy);\n        }\n        if (m[0] < 0) {\n            sx = -sx;\n        }\n        if (m[3] < 0) {\n            sy = -sy;\n        }\n        this.rotation = Math.atan2(-m[1] / sy, m[0] / sx);\n        if (sx < 0 && sy < 0) {\n            this.rotation += Math.PI;\n            sx = -sx;\n            sy = -sy;\n        }\n        this.x = m[4];\n        this.y = m[5];\n        this.scaleX = sx;\n        this.scaleY = sy;\n    };\n    Transformable.prototype.decomposeTransform = function () {\n        if (!this.transform) {\n            return;\n        }\n        var parent = this.parent;\n        var m = this.transform;\n        if (parent && parent.transform) {\n            matrix.mul(tmpTransform, parent.invTransform, m);\n            m = tmpTransform;\n        }\n        var ox = this.originX;\n        var oy = this.originY;\n        if (ox || oy) {\n            originTransform[4] = ox;\n            originTransform[5] = oy;\n            matrix.mul(tmpTransform, m, originTransform);\n            tmpTransform[4] -= ox;\n            tmpTransform[5] -= oy;\n            m = tmpTransform;\n        }\n        this.setLocalTransform(m);\n    };\n    Transformable.prototype.getGlobalScale = function (out) {\n        var m = this.transform;\n        out = out || [];\n        if (!m) {\n            out[0] = 1;\n            out[1] = 1;\n            return out;\n        }\n        out[0] = Math.sqrt(m[0] * m[0] + m[1] * m[1]);\n        out[1] = Math.sqrt(m[2] * m[2] + m[3] * m[3]);\n        if (m[0] < 0) {\n            out[0] = -out[0];\n        }\n        if (m[3] < 0) {\n            out[1] = -out[1];\n        }\n        return out;\n    };\n    Transformable.prototype.transformCoordToLocal = function (x, y) {\n        var v2 = [x, y];\n        var invTransform = this.invTransform;\n        if (invTransform) {\n            vector.applyTransform(v2, v2, invTransform);\n        }\n        return v2;\n    };\n    Transformable.prototype.transformCoordToGlobal = function (x, y) {\n        var v2 = [x, y];\n        var transform = this.transform;\n        if (transform) {\n            vector.applyTransform(v2, v2, transform);\n        }\n        return v2;\n    };\n    Transformable.prototype.getLineScale = function () {\n        var m = this.transform;\n        return m && abs(m[0] - 1) > 1e-10 && abs(m[3] - 1) > 1e-10\n            ? Math.sqrt(abs(m[0] * m[3] - m[2] * m[1]))\n            : 1;\n    };\n    Transformable.getLocalTransform = function (target, m) {\n        m = m || [];\n        mIdentity(m);\n        var ox = target.originX || 0;\n        var oy = target.originY || 0;\n        var sx = target.scaleX;\n        var sy = target.scaleY;\n        var rotation = target.rotation || 0;\n        var x = target.x;\n        var y = target.y;\n        m[4] -= ox;\n        m[5] -= oy;\n        m[0] *= sx;\n        m[1] *= sy;\n        m[2] *= sx;\n        m[3] *= sy;\n        m[4] *= sx;\n        m[5] *= sy;\n        if (rotation) {\n            matrix.rotate(m, m, rotation);\n        }\n        m[4] += ox;\n        m[5] += oy;\n        m[4] += x;\n        m[5] += y;\n        return m;\n    };\n    Transformable.initDefaultProps = (function () {\n        var proto = Transformable.prototype;\n        proto.x = 0;\n        proto.y = 0;\n        proto.scaleX = 1;\n        proto.scaleY = 1;\n        proto.originX = 0;\n        proto.originY = 0;\n        proto.rotation = 0;\n        proto.globalScaleRatio = 1;\n    })();\n    return Transformable;\n}());\n;\nexport default Transformable;\n","var easing = {\n    linear: function (k) {\n        return k;\n    },\n    quadraticIn: function (k) {\n        return k * k;\n    },\n    quadraticOut: function (k) {\n        return k * (2 - k);\n    },\n    quadraticInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return 0.5 * k * k;\n        }\n        return -0.5 * (--k * (k - 2) - 1);\n    },\n    cubicIn: function (k) {\n        return k * k * k;\n    },\n    cubicOut: function (k) {\n        return --k * k * k + 1;\n    },\n    cubicInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return 0.5 * k * k * k;\n        }\n        return 0.5 * ((k -= 2) * k * k + 2);\n    },\n    quarticIn: function (k) {\n        return k * k * k * k;\n    },\n    quarticOut: function (k) {\n        return 1 - (--k * k * k * k);\n    },\n    quarticInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return 0.5 * k * k * k * k;\n        }\n        return -0.5 * ((k -= 2) * k * k * k - 2);\n    },\n    quinticIn: function (k) {\n        return k * k * k * k * k;\n    },\n    quinticOut: function (k) {\n        return --k * k * k * k * k + 1;\n    },\n    quinticInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return 0.5 * k * k * k * k * k;\n        }\n        return 0.5 * ((k -= 2) * k * k * k * k + 2);\n    },\n    sinusoidalIn: function (k) {\n        return 1 - Math.cos(k * Math.PI / 2);\n    },\n    sinusoidalOut: function (k) {\n        return Math.sin(k * Math.PI / 2);\n    },\n    sinusoidalInOut: function (k) {\n        return 0.5 * (1 - Math.cos(Math.PI * k));\n    },\n    exponentialIn: function (k) {\n        return k === 0 ? 0 : Math.pow(1024, k - 1);\n    },\n    exponentialOut: function (k) {\n        return k === 1 ? 1 : 1 - Math.pow(2, -10 * k);\n    },\n    exponentialInOut: function (k) {\n        if (k === 0) {\n            return 0;\n        }\n        if (k === 1) {\n            return 1;\n        }\n        if ((k *= 2) < 1) {\n            return 0.5 * Math.pow(1024, k - 1);\n        }\n        return 0.5 * (-Math.pow(2, -10 * (k - 1)) + 2);\n    },\n    circularIn: function (k) {\n        return 1 - Math.sqrt(1 - k * k);\n    },\n    circularOut: function (k) {\n        return Math.sqrt(1 - (--k * k));\n    },\n    circularInOut: function (k) {\n        if ((k *= 2) < 1) {\n            return -0.5 * (Math.sqrt(1 - k * k) - 1);\n        }\n        return 0.5 * (Math.sqrt(1 - (k -= 2) * k) + 1);\n    },\n    elasticIn: function (k) {\n        var s;\n        var a = 0.1;\n        var p = 0.4;\n        if (k === 0) {\n            return 0;\n        }\n        if (k === 1) {\n            return 1;\n        }\n        if (!a || a < 1) {\n            a = 1;\n            s = p / 4;\n        }\n        else {\n            s = p * Math.asin(1 / a) / (2 * Math.PI);\n        }\n        return -(a * Math.pow(2, 10 * (k -= 1))\n            * Math.sin((k - s) * (2 * Math.PI) / p));\n    },\n    elasticOut: function (k) {\n        var s;\n        var a = 0.1;\n        var p = 0.4;\n        if (k === 0) {\n            return 0;\n        }\n        if (k === 1) {\n            return 1;\n        }\n        if (!a || a < 1) {\n            a = 1;\n            s = p / 4;\n        }\n        else {\n            s = p * Math.asin(1 / a) / (2 * Math.PI);\n        }\n        return (a * Math.pow(2, -10 * k)\n            * Math.sin((k - s) * (2 * Math.PI) / p) + 1);\n    },\n    elasticInOut: function (k) {\n        var s;\n        var a = 0.1;\n        var p = 0.4;\n        if (k === 0) {\n            return 0;\n        }\n        if (k === 1) {\n            return 1;\n        }\n        if (!a || a < 1) {\n            a = 1;\n            s = p / 4;\n        }\n        else {\n            s = p * Math.asin(1 / a) / (2 * Math.PI);\n        }\n        if ((k *= 2) < 1) {\n            return -0.5 * (a * Math.pow(2, 10 * (k -= 1))\n                * Math.sin((k - s) * (2 * Math.PI) / p));\n        }\n        return a * Math.pow(2, -10 * (k -= 1))\n            * Math.sin((k - s) * (2 * Math.PI) / p) * 0.5 + 1;\n    },\n    backIn: function (k) {\n        var s = 1.70158;\n        return k * k * ((s + 1) * k - s);\n    },\n    backOut: function (k) {\n        var s = 1.70158;\n        return --k * k * ((s + 1) * k + s) + 1;\n    },\n    backInOut: function (k) {\n        var s = 1.70158 * 1.525;\n        if ((k *= 2) < 1) {\n            return 0.5 * (k * k * ((s + 1) * k - s));\n        }\n        return 0.5 * ((k -= 2) * k * ((s + 1) * k + s) + 2);\n    },\n    bounceIn: function (k) {\n        return 1 - easing.bounceOut(1 - k);\n    },\n    bounceOut: function (k) {\n        if (k < (1 / 2.75)) {\n            return 7.5625 * k * k;\n        }\n        else if (k < (2 / 2.75)) {\n            return 7.5625 * (k -= (1.5 / 2.75)) * k + 0.75;\n        }\n        else if (k < (2.5 / 2.75)) {\n            return 7.5625 * (k -= (2.25 / 2.75)) * k + 0.9375;\n        }\n        else {\n            return 7.5625 * (k -= (2.625 / 2.75)) * k + 0.984375;\n        }\n    },\n    bounceInOut: function (k) {\n        if (k < 0.5) {\n            return easing.bounceIn(k * 2) * 0.5;\n        }\n        return easing.bounceOut(k * 2 - 1) * 0.5 + 0.5;\n    }\n};\nexport default easing;\n","import easingFuncs from './easing';\nvar Clip = (function () {\n    function Clip(opts) {\n        this._initialized = false;\n        this._startTime = 0;\n        this._pausedTime = 0;\n        this._paused = false;\n        this._life = opts.life || 1000;\n        this._delay = opts.delay || 0;\n        this.loop = opts.loop == null ? false : opts.loop;\n        this.gap = opts.gap || 0;\n        this.easing = opts.easing || 'linear';\n        this.onframe = opts.onframe;\n        this.ondestroy = opts.ondestroy;\n        this.onrestart = opts.onrestart;\n    }\n    Clip.prototype.step = function (globalTime, deltaTime) {\n        if (!this._initialized) {\n            this._startTime = globalTime + this._delay;\n            this._initialized = true;\n        }\n        if (this._paused) {\n            this._pausedTime += deltaTime;\n            return;\n        }\n        var percent = (globalTime - this._startTime - this._pausedTime) / this._life;\n        if (percent < 0) {\n            percent = 0;\n        }\n        percent = Math.min(percent, 1);\n        var easing = this.easing;\n        var easingFunc = typeof easing === 'string'\n            ? easingFuncs[easing] : easing;\n        var schedule = typeof easingFunc === 'function'\n            ? easingFunc(percent)\n            : percent;\n        this.onframe && this.onframe(schedule);\n        if (percent === 1) {\n            if (this.loop) {\n                this._restart(globalTime);\n                this.onrestart && this.onrestart();\n            }\n            else {\n                return true;\n            }\n        }\n        return false;\n    };\n    Clip.prototype._restart = function (globalTime) {\n        var remainder = (globalTime - this._startTime - this._pausedTime) % this._life;\n        this._startTime = globalTime - remainder + this.gap;\n        this._pausedTime = 0;\n    };\n    Clip.prototype.pause = function () {\n        this._paused = true;\n    };\n    Clip.prototype.resume = function () {\n        this._paused = false;\n    };\n    return Clip;\n}());\nexport default Clip;\n","var Entry = (function () {\n    function Entry(val) {\n        this.value = val;\n    }\n    return Entry;\n}());\nexport { Entry };\nvar LinkedList = (function () {\n    function LinkedList() {\n        this._len = 0;\n    }\n    LinkedList.prototype.insert = function (val) {\n        var entry = new Entry(val);\n        this.insertEntry(entry);\n        return entry;\n    };\n    LinkedList.prototype.insertEntry = function (entry) {\n        if (!this.head) {\n            this.head = this.tail = entry;\n        }\n        else {\n            this.tail.next = entry;\n            entry.prev = this.tail;\n            entry.next = null;\n            this.tail = entry;\n        }\n        this._len++;\n    };\n    LinkedList.prototype.remove = function (entry) {\n        var prev = entry.prev;\n        var next = entry.next;\n        if (prev) {\n            prev.next = next;\n        }\n        else {\n            this.head = next;\n        }\n        if (next) {\n            next.prev = prev;\n        }\n        else {\n            this.tail = prev;\n        }\n        entry.next = entry.prev = null;\n        this._len--;\n    };\n    LinkedList.prototype.len = function () {\n        return this._len;\n    };\n    LinkedList.prototype.clear = function () {\n        this.head = this.tail = null;\n        this._len = 0;\n    };\n    return LinkedList;\n}());\nexport { LinkedList };\nvar LRU = (function () {\n    function LRU(maxSize) {\n        this._list = new LinkedList();\n        this._maxSize = 10;\n        this._map = {};\n        this._maxSize = maxSize;\n    }\n    LRU.prototype.put = function (key, value) {\n        var list = this._list;\n        var map = this._map;\n        var removed = null;\n        if (map[key] == null) {\n            var len = list.len();\n            var entry = this._lastRemovedEntry;\n            if (len >= this._maxSize && len > 0) {\n                var leastUsedEntry = list.head;\n                list.remove(leastUsedEntry);\n                delete map[leastUsedEntry.key];\n                removed = leastUsedEntry.value;\n                this._lastRemovedEntry = leastUsedEntry;\n            }\n            if (entry) {\n                entry.value = value;\n            }\n            else {\n                entry = new Entry(value);\n            }\n            entry.key = key;\n            list.insertEntry(entry);\n            map[key] = entry;\n        }\n        return removed;\n    };\n    LRU.prototype.get = function (key) {\n        var entry = this._map[key];\n        var list = this._list;\n        if (entry != null) {\n            if (entry !== list.tail) {\n                list.remove(entry);\n                list.insertEntry(entry);\n            }\n            return entry.value;\n        }\n    };\n    LRU.prototype.clear = function () {\n        this._list.clear();\n        this._map = {};\n    };\n    LRU.prototype.len = function () {\n        return this._list.len();\n    };\n    return LRU;\n}());\nexport default LRU;\n","import LRU from '../core/LRU';\nvar kCSSColorTable = {\n    'transparent': [0, 0, 0, 0], 'aliceblue': [240, 248, 255, 1],\n    'antiquewhite': [250, 235, 215, 1], 'aqua': [0, 255, 255, 1],\n    'aquamarine': [127, 255, 212, 1], 'azure': [240, 255, 255, 1],\n    'beige': [245, 245, 220, 1], 'bisque': [255, 228, 196, 1],\n    'black': [0, 0, 0, 1], 'blanchedalmond': [255, 235, 205, 1],\n    'blue': [0, 0, 255, 1], 'blueviolet': [138, 43, 226, 1],\n    'brown': [165, 42, 42, 1], 'burlywood': [222, 184, 135, 1],\n    'cadetblue': [95, 158, 160, 1], 'chartreuse': [127, 255, 0, 1],\n    'chocolate': [210, 105, 30, 1], 'coral': [255, 127, 80, 1],\n    'cornflowerblue': [100, 149, 237, 1], 'cornsilk': [255, 248, 220, 1],\n    'crimson': [220, 20, 60, 1], 'cyan': [0, 255, 255, 1],\n    'darkblue': [0, 0, 139, 1], 'darkcyan': [0, 139, 139, 1],\n    'darkgoldenrod': [184, 134, 11, 1], 'darkgray': [169, 169, 169, 1],\n    'darkgreen': [0, 100, 0, 1], 'darkgrey': [169, 169, 169, 1],\n    'darkkhaki': [189, 183, 107, 1], 'darkmagenta': [139, 0, 139, 1],\n    'darkolivegreen': [85, 107, 47, 1], 'darkorange': [255, 140, 0, 1],\n    'darkorchid': [153, 50, 204, 1], 'darkred': [139, 0, 0, 1],\n    'darksalmon': [233, 150, 122, 1], 'darkseagreen': [143, 188, 143, 1],\n    'darkslateblue': [72, 61, 139, 1], 'darkslategray': [47, 79, 79, 1],\n    'darkslategrey': [47, 79, 79, 1], 'darkturquoise': [0, 206, 209, 1],\n    'darkviolet': [148, 0, 211, 1], 'deeppink': [255, 20, 147, 1],\n    'deepskyblue': [0, 191, 255, 1], 'dimgray': [105, 105, 105, 1],\n    'dimgrey': [105, 105, 105, 1], 'dodgerblue': [30, 144, 255, 1],\n    'firebrick': [178, 34, 34, 1], 'floralwhite': [255, 250, 240, 1],\n    'forestgreen': [34, 139, 34, 1], 'fuchsia': [255, 0, 255, 1],\n    'gainsboro': [220, 220, 220, 1], 'ghostwhite': [248, 248, 255, 1],\n    'gold': [255, 215, 0, 1], 'goldenrod': [218, 165, 32, 1],\n    'gray': [128, 128, 128, 1], 'green': [0, 128, 0, 1],\n    'greenyellow': [173, 255, 47, 1], 'grey': [128, 128, 128, 1],\n    'honeydew': [240, 255, 240, 1], 'hotpink': [255, 105, 180, 1],\n    'indianred': [205, 92, 92, 1], 'indigo': [75, 0, 130, 1],\n    'ivory': [255, 255, 240, 1], 'khaki': [240, 230, 140, 1],\n    'lavender': [230, 230, 250, 1], 'lavenderblush': [255, 240, 245, 1],\n    'lawngreen': [124, 252, 0, 1], 'lemonchiffon': [255, 250, 205, 1],\n    'lightblue': [173, 216, 230, 1], 'lightcoral': [240, 128, 128, 1],\n    'lightcyan': [224, 255, 255, 1], 'lightgoldenrodyellow': [250, 250, 210, 1],\n    'lightgray': [211, 211, 211, 1], 'lightgreen': [144, 238, 144, 1],\n    'lightgrey': [211, 211, 211, 1], 'lightpink': [255, 182, 193, 1],\n    'lightsalmon': [255, 160, 122, 1], 'lightseagreen': [32, 178, 170, 1],\n    'lightskyblue': [135, 206, 250, 1], 'lightslategray': [119, 136, 153, 1],\n    'lightslategrey': [119, 136, 153, 1], 'lightsteelblue': [176, 196, 222, 1],\n    'lightyellow': [255, 255, 224, 1], 'lime': [0, 255, 0, 1],\n    'limegreen': [50, 205, 50, 1], 'linen': [250, 240, 230, 1],\n    'magenta': [255, 0, 255, 1], 'maroon': [128, 0, 0, 1],\n    'mediumaquamarine': [102, 205, 170, 1], 'mediumblue': [0, 0, 205, 1],\n    'mediumorchid': [186, 85, 211, 1], 'mediumpurple': [147, 112, 219, 1],\n    'mediumseagreen': [60, 179, 113, 1], 'mediumslateblue': [123, 104, 238, 1],\n    'mediumspringgreen': [0, 250, 154, 1], 'mediumturquoise': [72, 209, 204, 1],\n    'mediumvioletred': [199, 21, 133, 1], 'midnightblue': [25, 25, 112, 1],\n    'mintcream': [245, 255, 250, 1], 'mistyrose': [255, 228, 225, 1],\n    'moccasin': [255, 228, 181, 1], 'navajowhite': [255, 222, 173, 1],\n    'navy': [0, 0, 128, 1], 'oldlace': [253, 245, 230, 1],\n    'olive': [128, 128, 0, 1], 'olivedrab': [107, 142, 35, 1],\n    'orange': [255, 165, 0, 1], 'orangered': [255, 69, 0, 1],\n    'orchid': [218, 112, 214, 1], 'palegoldenrod': [238, 232, 170, 1],\n    'palegreen': [152, 251, 152, 1], 'paleturquoise': [175, 238, 238, 1],\n    'palevioletred': [219, 112, 147, 1], 'papayawhip': [255, 239, 213, 1],\n    'peachpuff': [255, 218, 185, 1], 'peru': [205, 133, 63, 1],\n    'pink': [255, 192, 203, 1], 'plum': [221, 160, 221, 1],\n    'powderblue': [176, 224, 230, 1], 'purple': [128, 0, 128, 1],\n    'red': [255, 0, 0, 1], 'rosybrown': [188, 143, 143, 1],\n    'royalblue': [65, 105, 225, 1], 'saddlebrown': [139, 69, 19, 1],\n    'salmon': [250, 128, 114, 1], 'sandybrown': [244, 164, 96, 1],\n    'seagreen': [46, 139, 87, 1], 'seashell': [255, 245, 238, 1],\n    'sienna': [160, 82, 45, 1], 'silver': [192, 192, 192, 1],\n    'skyblue': [135, 206, 235, 1], 'slateblue': [106, 90, 205, 1],\n    'slategray': [112, 128, 144, 1], 'slategrey': [112, 128, 144, 1],\n    'snow': [255, 250, 250, 1], 'springgreen': [0, 255, 127, 1],\n    'steelblue': [70, 130, 180, 1], 'tan': [210, 180, 140, 1],\n    'teal': [0, 128, 128, 1], 'thistle': [216, 191, 216, 1],\n    'tomato': [255, 99, 71, 1], 'turquoise': [64, 224, 208, 1],\n    'violet': [238, 130, 238, 1], 'wheat': [245, 222, 179, 1],\n    'white': [255, 255, 255, 1], 'whitesmoke': [245, 245, 245, 1],\n    'yellow': [255, 255, 0, 1], 'yellowgreen': [154, 205, 50, 1]\n};\nfunction clampCssByte(i) {\n    i = Math.round(i);\n    return i < 0 ? 0 : i > 255 ? 255 : i;\n}\nfunction clampCssAngle(i) {\n    i = Math.round(i);\n    return i < 0 ? 0 : i > 360 ? 360 : i;\n}\nfunction clampCssFloat(f) {\n    return f < 0 ? 0 : f > 1 ? 1 : f;\n}\nfunction parseCssInt(val) {\n    var str = val;\n    if (str.length && str.charAt(str.length - 1) === '%') {\n        return clampCssByte(parseFloat(str) / 100 * 255);\n    }\n    return clampCssByte(parseInt(str, 10));\n}\nfunction parseCssFloat(val) {\n    var str = val;\n    if (str.length && str.charAt(str.length - 1) === '%') {\n        return clampCssFloat(parseFloat(str) / 100);\n    }\n    return clampCssFloat(parseFloat(str));\n}\nfunction cssHueToRgb(m1, m2, h) {\n    if (h < 0) {\n        h += 1;\n    }\n    else if (h > 1) {\n        h -= 1;\n    }\n    if (h * 6 < 1) {\n        return m1 + (m2 - m1) * h * 6;\n    }\n    if (h * 2 < 1) {\n        return m2;\n    }\n    if (h * 3 < 2) {\n        return m1 + (m2 - m1) * (2 / 3 - h) * 6;\n    }\n    return m1;\n}\nfunction lerpNumber(a, b, p) {\n    return a + (b - a) * p;\n}\nfunction setRgba(out, r, g, b, a) {\n    out[0] = r;\n    out[1] = g;\n    out[2] = b;\n    out[3] = a;\n    return out;\n}\nfunction copyRgba(out, a) {\n    out[0] = a[0];\n    out[1] = a[1];\n    out[2] = a[2];\n    out[3] = a[3];\n    return out;\n}\nvar colorCache = new LRU(20);\nvar lastRemovedArr = null;\nfunction putToCache(colorStr, rgbaArr) {\n    if (lastRemovedArr) {\n        copyRgba(lastRemovedArr, rgbaArr);\n    }\n    lastRemovedArr = colorCache.put(colorStr, lastRemovedArr || (rgbaArr.slice()));\n}\nexport function parse(colorStr, rgbaArr) {\n    if (!colorStr) {\n        return;\n    }\n    rgbaArr = rgbaArr || [];\n    var cached = colorCache.get(colorStr);\n    if (cached) {\n        return copyRgba(rgbaArr, cached);\n    }\n    colorStr = colorStr + '';\n    var str = colorStr.replace(/ /g, '').toLowerCase();\n    if (str in kCSSColorTable) {\n        copyRgba(rgbaArr, kCSSColorTable[str]);\n        putToCache(colorStr, rgbaArr);\n        return rgbaArr;\n    }\n    var strLen = str.length;\n    if (str.charAt(0) === '#') {\n        if (strLen === 4 || strLen === 5) {\n            var iv = parseInt(str.slice(1, 4), 16);\n            if (!(iv >= 0 && iv <= 0xfff)) {\n                setRgba(rgbaArr, 0, 0, 0, 1);\n                return;\n            }\n            setRgba(rgbaArr, ((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8), (iv & 0xf0) | ((iv & 0xf0) >> 4), (iv & 0xf) | ((iv & 0xf) << 4), strLen === 5 ? parseInt(str.slice(4), 16) / 0xf : 1);\n            putToCache(colorStr, rgbaArr);\n            return rgbaArr;\n        }\n        else if (strLen === 7 || strLen === 9) {\n            var iv = parseInt(str.slice(1, 7), 16);\n            if (!(iv >= 0 && iv <= 0xffffff)) {\n                setRgba(rgbaArr, 0, 0, 0, 1);\n                return;\n            }\n            setRgba(rgbaArr, (iv & 0xff0000) >> 16, (iv & 0xff00) >> 8, iv & 0xff, strLen === 9 ? parseInt(str.slice(7), 16) / 0xff : 1);\n            putToCache(colorStr, rgbaArr);\n            return rgbaArr;\n        }\n        return;\n    }\n    var op = str.indexOf('(');\n    var ep = str.indexOf(')');\n    if (op !== -1 && ep + 1 === strLen) {\n        var fname = str.substr(0, op);\n        var params = str.substr(op + 1, ep - (op + 1)).split(',');\n        var alpha = 1;\n        switch (fname) {\n            case 'rgba':\n                if (params.length !== 4) {\n                    return params.length === 3\n                        ? setRgba(rgbaArr, +params[0], +params[1], +params[2], 1)\n                        : setRgba(rgbaArr, 0, 0, 0, 1);\n                }\n                alpha = parseCssFloat(params.pop());\n            case 'rgb':\n                if (params.length !== 3) {\n                    setRgba(rgbaArr, 0, 0, 0, 1);\n                    return;\n                }\n                setRgba(rgbaArr, parseCssInt(params[0]), parseCssInt(params[1]), parseCssInt(params[2]), alpha);\n                putToCache(colorStr, rgbaArr);\n                return rgbaArr;\n            case 'hsla':\n                if (params.length !== 4) {\n                    setRgba(rgbaArr, 0, 0, 0, 1);\n                    return;\n                }\n                params[3] = parseCssFloat(params[3]);\n                hsla2rgba(params, rgbaArr);\n                putToCache(colorStr, rgbaArr);\n                return rgbaArr;\n            case 'hsl':\n                if (params.length !== 3) {\n                    setRgba(rgbaArr, 0, 0, 0, 1);\n                    return;\n                }\n                hsla2rgba(params, rgbaArr);\n                putToCache(colorStr, rgbaArr);\n                return rgbaArr;\n            default:\n                return;\n        }\n    }\n    setRgba(rgbaArr, 0, 0, 0, 1);\n    return;\n}\nfunction hsla2rgba(hsla, rgba) {\n    var h = (((parseFloat(hsla[0]) % 360) + 360) % 360) / 360;\n    var s = parseCssFloat(hsla[1]);\n    var l = parseCssFloat(hsla[2]);\n    var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n    var m1 = l * 2 - m2;\n    rgba = rgba || [];\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);\n    if (hsla.length === 4) {\n        rgba[3] = hsla[3];\n    }\n    return rgba;\n}\nfunction rgba2hsla(rgba) {\n    if (!rgba) {\n        return;\n    }\n    var R = rgba[0] / 255;\n    var G = rgba[1] / 255;\n    var B = rgba[2] / 255;\n    var vMin = Math.min(R, G, B);\n    var vMax = Math.max(R, G, B);\n    var delta = vMax - vMin;\n    var L = (vMax + vMin) / 2;\n    var H;\n    var S;\n    if (delta === 0) {\n        H = 0;\n        S = 0;\n    }\n    else {\n        if (L < 0.5) {\n            S = delta / (vMax + vMin);\n        }\n        else {\n            S = delta / (2 - vMax - vMin);\n        }\n        var deltaR = (((vMax - R) / 6) + (delta / 2)) / delta;\n        var deltaG = (((vMax - G) / 6) + (delta / 2)) / delta;\n        var deltaB = (((vMax - B) / 6) + (delta / 2)) / delta;\n        if (R === vMax) {\n            H = deltaB - deltaG;\n        }\n        else if (G === vMax) {\n            H = (1 / 3) + deltaR - deltaB;\n        }\n        else if (B === vMax) {\n            H = (2 / 3) + deltaG - deltaR;\n        }\n        if (H < 0) {\n            H += 1;\n        }\n        if (H > 1) {\n            H -= 1;\n        }\n    }\n    var hsla = [H * 360, S, L];\n    if (rgba[3] != null) {\n        hsla.push(rgba[3]);\n    }\n    return hsla;\n}\nexport function lift(color, level) {\n    var colorArr = parse(color);\n    if (colorArr) {\n        for (var i = 0; i < 3; i++) {\n            if (level < 0) {\n                colorArr[i] = colorArr[i] * (1 - level) | 0;\n            }\n            else {\n                colorArr[i] = ((255 - colorArr[i]) * level + colorArr[i]) | 0;\n            }\n            if (colorArr[i] > 255) {\n                colorArr[i] = 255;\n            }\n            else if (colorArr[i] < 0) {\n                colorArr[i] = 0;\n            }\n        }\n        return stringify(colorArr, colorArr.length === 4 ? 'rgba' : 'rgb');\n    }\n}\nexport function toHex(color) {\n    var colorArr = parse(color);\n    if (colorArr) {\n        return ((1 << 24) + (colorArr[0] << 16) + (colorArr[1] << 8) + (+colorArr[2])).toString(16).slice(1);\n    }\n}\nexport function fastLerp(normalizedValue, colors, out) {\n    if (!(colors && colors.length)\n        || !(normalizedValue >= 0 && normalizedValue <= 1)) {\n        return;\n    }\n    out = out || [];\n    var value = normalizedValue * (colors.length - 1);\n    var leftIndex = Math.floor(value);\n    var rightIndex = Math.ceil(value);\n    var leftColor = colors[leftIndex];\n    var rightColor = colors[rightIndex];\n    var dv = value - leftIndex;\n    out[0] = clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv));\n    out[1] = clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv));\n    out[2] = clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv));\n    out[3] = clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv));\n    return out;\n}\nexport var fastMapToColor = fastLerp;\nexport function lerp(normalizedValue, colors, fullOutput) {\n    if (!(colors && colors.length)\n        || !(normalizedValue >= 0 && normalizedValue <= 1)) {\n        return;\n    }\n    var value = normalizedValue * (colors.length - 1);\n    var leftIndex = Math.floor(value);\n    var rightIndex = Math.ceil(value);\n    var leftColor = parse(colors[leftIndex]);\n    var rightColor = parse(colors[rightIndex]);\n    var dv = value - leftIndex;\n    var color = stringify([\n        clampCssByte(lerpNumber(leftColor[0], rightColor[0], dv)),\n        clampCssByte(lerpNumber(leftColor[1], rightColor[1], dv)),\n        clampCssByte(lerpNumber(leftColor[2], rightColor[2], dv)),\n        clampCssFloat(lerpNumber(leftColor[3], rightColor[3], dv))\n    ], 'rgba');\n    return fullOutput\n        ? {\n            color: color,\n            leftIndex: leftIndex,\n            rightIndex: rightIndex,\n            value: value\n        }\n        : color;\n}\nexport var mapToColor = lerp;\nexport function modifyHSL(color, h, s, l) {\n    var colorArr = parse(color);\n    if (color) {\n        colorArr = rgba2hsla(colorArr);\n        h != null && (colorArr[0] = clampCssAngle(h));\n        s != null && (colorArr[1] = parseCssFloat(s));\n        l != null && (colorArr[2] = parseCssFloat(l));\n        return stringify(hsla2rgba(colorArr), 'rgba');\n    }\n}\nexport function modifyAlpha(color, alpha) {\n    var colorArr = parse(color);\n    if (colorArr && alpha != null) {\n        colorArr[3] = clampCssFloat(alpha);\n        return stringify(colorArr, 'rgba');\n    }\n}\nexport function stringify(arrColor, type) {\n    if (!arrColor || !arrColor.length) {\n        return;\n    }\n    var colorStr = arrColor[0] + ',' + arrColor[1] + ',' + arrColor[2];\n    if (type === 'rgba' || type === 'hsva' || type === 'hsla') {\n        colorStr += ',' + arrColor[3];\n    }\n    return type + '(' + colorStr + ')';\n}\nexport function lum(color, backgroundLum) {\n    var arr = parse(color);\n    return arr\n        ? (0.299 * arr[0] + 0.587 * arr[1] + 0.114 * arr[2]) * arr[3] / 255\n            + (1 - arr[3]) * backgroundLum\n        : 0;\n}\nexport function random() {\n    var r = Math.round(Math.random() * 255);\n    var g = Math.round(Math.random() * 255);\n    var b = Math.round(Math.random() * 255);\n    return 'rgb(' + r + ',' + g + ',' + b + ')';\n}\n","import Clip from './Clip';\nimport * as color from '../tool/color';\nimport { isArrayLike, keys, logError } from '../core/util';\nvar arraySlice = Array.prototype.slice;\nexport function interpolateNumber(p0, p1, percent) {\n    return (p1 - p0) * percent + p0;\n}\nexport function step(p0, p1, percent) {\n    return percent > 0.5 ? p1 : p0;\n}\nexport function interpolate1DArray(out, p0, p1, percent) {\n    var len = p0.length;\n    for (var i = 0; i < len; i++) {\n        out[i] = interpolateNumber(p0[i], p1[i], percent);\n    }\n}\nexport function interpolate2DArray(out, p0, p1, percent) {\n    var len = p0.length;\n    var len2 = len && p0[0].length;\n    for (var i = 0; i < len; i++) {\n        if (!out[i]) {\n            out[i] = [];\n        }\n        for (var j = 0; j < len2; j++) {\n            out[i][j] = interpolateNumber(p0[i][j], p1[i][j], percent);\n        }\n    }\n}\nfunction add1DArray(out, p0, p1, sign) {\n    var len = p0.length;\n    for (var i = 0; i < len; i++) {\n        out[i] = p0[i] + p1[i] * sign;\n    }\n    return out;\n}\nfunction add2DArray(out, p0, p1, sign) {\n    var len = p0.length;\n    var len2 = len && p0[0].length;\n    for (var i = 0; i < len; i++) {\n        if (!out[i]) {\n            out[i] = [];\n        }\n        for (var j = 0; j < len2; j++) {\n            out[i][j] = p0[i][j] + p1[i][j] * sign;\n        }\n    }\n    return out;\n}\nfunction fillArray(val0, val1, arrDim) {\n    var arr0 = val0;\n    var arr1 = val1;\n    if (!arr0.push || !arr1.push) {\n        return;\n    }\n    var arr0Len = arr0.length;\n    var arr1Len = arr1.length;\n    if (arr0Len !== arr1Len) {\n        var isPreviousLarger = arr0Len > arr1Len;\n        if (isPreviousLarger) {\n            arr0.length = arr1Len;\n        }\n        else {\n            for (var i = arr0Len; i < arr1Len; i++) {\n                arr0.push(arrDim === 1 ? arr1[i] : arraySlice.call(arr1[i]));\n            }\n        }\n    }\n    var len2 = arr0[0] && arr0[0].length;\n    for (var i = 0; i < arr0.length; i++) {\n        if (arrDim === 1) {\n            if (isNaN(arr0[i])) {\n                arr0[i] = arr1[i];\n            }\n        }\n        else {\n            for (var j = 0; j < len2; j++) {\n                if (isNaN(arr0[i][j])) {\n                    arr0[i][j] = arr1[i][j];\n                }\n            }\n        }\n    }\n}\nfunction is1DArraySame(arr0, arr1) {\n    var len = arr0.length;\n    if (len !== arr1.length) {\n        return false;\n    }\n    for (var i = 0; i < len; i++) {\n        if (arr0[i] !== arr1[i]) {\n            return false;\n        }\n    }\n    return true;\n}\nfunction is2DArraySame(arr0, arr1) {\n    var len = arr0.length;\n    if (len !== arr1.length) {\n        return false;\n    }\n    var len2 = arr0[0].length;\n    for (var i = 0; i < len; i++) {\n        for (var j = 0; j < len2; j++) {\n            if (arr0[i][j] !== arr1[i][j]) {\n                return false;\n            }\n        }\n    }\n    return true;\n}\nfunction catmullRomInterpolate(p0, p1, p2, p3, t, t2, t3) {\n    var v0 = (p2 - p0) * 0.5;\n    var v1 = (p3 - p1) * 0.5;\n    return (2 * (p1 - p2) + v0 + v1) * t3\n        + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\n        + v0 * t + p1;\n}\nfunction catmullRomInterpolate1DArray(out, p0, p1, p2, p3, t, t2, t3) {\n    var len = p0.length;\n    for (var i = 0; i < len; i++) {\n        out[i] = catmullRomInterpolate(p0[i], p1[i], p2[i], p3[i], t, t2, t3);\n    }\n}\nfunction catmullRomInterpolate2DArray(out, p0, p1, p2, p3, t, t2, t3) {\n    var len = p0.length;\n    var len2 = p0[0].length;\n    for (var i = 0; i < len; i++) {\n        if (!out[i]) {\n            out[1] = [];\n        }\n        for (var j = 0; j < len2; j++) {\n            out[i][j] = catmullRomInterpolate(p0[i][j], p1[i][j], p2[i][j], p3[i][j], t, t2, t3);\n        }\n    }\n}\nexport function cloneValue(value) {\n    if (isArrayLike(value)) {\n        var len = value.length;\n        if (isArrayLike(value[0])) {\n            var ret = [];\n            for (var i = 0; i < len; i++) {\n                ret.push(arraySlice.call(value[i]));\n            }\n            return ret;\n        }\n        return arraySlice.call(value);\n    }\n    return value;\n}\nfunction rgba2String(rgba) {\n    rgba[0] = Math.floor(rgba[0]);\n    rgba[1] = Math.floor(rgba[1]);\n    rgba[2] = Math.floor(rgba[2]);\n    return 'rgba(' + rgba.join(',') + ')';\n}\nfunction guessArrayDim(value) {\n    return isArrayLike(value && value[0]) ? 2 : 1;\n}\nvar tmpRgba = [0, 0, 0, 0];\nvar Track = (function () {\n    function Track(propName) {\n        this.keyframes = [];\n        this.maxTime = 0;\n        this.arrDim = 0;\n        this.interpolable = true;\n        this._needsSort = false;\n        this._isAllValueEqual = true;\n        this._lastFrame = 0;\n        this._lastFramePercent = 0;\n        this.propName = propName;\n    }\n    Track.prototype.isFinished = function () {\n        return this._finished;\n    };\n    Track.prototype.setFinished = function () {\n        this._finished = true;\n        if (this._additiveTrack) {\n            this._additiveTrack.setFinished();\n        }\n    };\n    Track.prototype.needsAnimate = function () {\n        return !this._isAllValueEqual && this.keyframes.length >= 2 && this.interpolable;\n    };\n    Track.prototype.getAdditiveTrack = function () {\n        return this._additiveTrack;\n    };\n    Track.prototype.addKeyframe = function (time, value) {\n        if (time >= this.maxTime) {\n            this.maxTime = time;\n        }\n        else {\n            this._needsSort = true;\n        }\n        var keyframes = this.keyframes;\n        var len = keyframes.length;\n        if (this.interpolable) {\n            if (isArrayLike(value)) {\n                var arrayDim = guessArrayDim(value);\n                if (len > 0 && this.arrDim !== arrayDim) {\n                    this.interpolable = false;\n                    return;\n                }\n                if (arrayDim === 1 && typeof value[0] !== 'number'\n                    || arrayDim === 2 && typeof value[0][0] !== 'number') {\n                    this.interpolable = false;\n                    return;\n                }\n                if (len > 0) {\n                    var lastFrame = keyframes[len - 1];\n                    if (this._isAllValueEqual) {\n                        if (arrayDim === 1) {\n                            if (!is1DArraySame(value, lastFrame.value)) {\n                                this._isAllValueEqual = false;\n                            }\n                        }\n                        else {\n                            this._isAllValueEqual = false;\n                        }\n                    }\n                }\n                this.arrDim = arrayDim;\n            }\n            else {\n                if (this.arrDim > 0) {\n                    this.interpolable = false;\n                    return;\n                }\n                if (typeof value === 'string') {\n                    var colorArray = color.parse(value);\n                    if (colorArray) {\n                        value = colorArray;\n                        this.isValueColor = true;\n                    }\n                    else {\n                        this.interpolable = false;\n                    }\n                }\n                else if (typeof value !== 'number') {\n                    this.interpolable = false;\n                    return;\n                }\n                if (this._isAllValueEqual && len > 0) {\n                    var lastFrame = keyframes[len - 1];\n                    if (this.isValueColor && !is1DArraySame(lastFrame.value, value)) {\n                        this._isAllValueEqual = false;\n                    }\n                    else if (lastFrame.value !== value) {\n                        this._isAllValueEqual = false;\n                    }\n                }\n            }\n        }\n        var kf = {\n            time: time,\n            value: value,\n            percent: 0\n        };\n        this.keyframes.push(kf);\n        return kf;\n    };\n    Track.prototype.prepare = function (additiveTrack) {\n        var kfs = this.keyframes;\n        if (this._needsSort) {\n            kfs.sort(function (a, b) {\n                return a.time - b.time;\n            });\n        }\n        var arrDim = this.arrDim;\n        var kfsLen = kfs.length;\n        var lastKf = kfs[kfsLen - 1];\n        for (var i = 0; i < kfsLen; i++) {\n            kfs[i].percent = kfs[i].time / this.maxTime;\n            if (arrDim > 0 && i !== kfsLen - 1) {\n                fillArray(kfs[i].value, lastKf.value, arrDim);\n            }\n        }\n        if (additiveTrack\n            && this.needsAnimate()\n            && additiveTrack.needsAnimate()\n            && arrDim === additiveTrack.arrDim\n            && this.isValueColor === additiveTrack.isValueColor\n            && !additiveTrack._finished) {\n            this._additiveTrack = additiveTrack;\n            var startValue = kfs[0].value;\n            for (var i = 0; i < kfsLen; i++) {\n                if (arrDim === 0) {\n                    if (this.isValueColor) {\n                        kfs[i].additiveValue\n                            = add1DArray([], kfs[i].value, startValue, -1);\n                    }\n                    else {\n                        kfs[i].additiveValue = kfs[i].value - startValue;\n                    }\n                }\n                else if (arrDim === 1) {\n                    kfs[i].additiveValue = add1DArray([], kfs[i].value, startValue, -1);\n                }\n                else if (arrDim === 2) {\n                    kfs[i].additiveValue = add2DArray([], kfs[i].value, startValue, -1);\n                }\n            }\n        }\n    };\n    Track.prototype.step = function (target, percent) {\n        if (this._finished) {\n            return;\n        }\n        if (this._additiveTrack && this._additiveTrack._finished) {\n            this._additiveTrack = null;\n        }\n        var isAdditive = this._additiveTrack != null;\n        var valueKey = isAdditive ? 'additiveValue' : 'value';\n        var keyframes = this.keyframes;\n        var kfsNum = this.keyframes.length;\n        var propName = this.propName;\n        var arrDim = this.arrDim;\n        var isValueColor = this.isValueColor;\n        var frameIdx;\n        if (percent < 0) {\n            frameIdx = 0;\n        }\n        else if (percent < this._lastFramePercent) {\n            var start = Math.min(this._lastFrame + 1, kfsNum - 1);\n            for (frameIdx = start; frameIdx >= 0; frameIdx--) {\n                if (keyframes[frameIdx].percent <= percent) {\n                    break;\n                }\n            }\n            frameIdx = Math.min(frameIdx, kfsNum - 2);\n        }\n        else {\n            for (frameIdx = this._lastFrame; frameIdx < kfsNum; frameIdx++) {\n                if (keyframes[frameIdx].percent > percent) {\n                    break;\n                }\n            }\n            frameIdx = Math.min(frameIdx - 1, kfsNum - 2);\n        }\n        var nextFrame = keyframes[frameIdx + 1];\n        var frame = keyframes[frameIdx];\n        if (!(frame && nextFrame)) {\n            return;\n        }\n        this._lastFrame = frameIdx;\n        this._lastFramePercent = percent;\n        var range = (nextFrame.percent - frame.percent);\n        if (range === 0) {\n            return;\n        }\n        var w = (percent - frame.percent) / range;\n        var targetArr = isAdditive ? this._additiveValue\n            : (isValueColor ? tmpRgba : target[propName]);\n        if ((arrDim > 0 || isValueColor) && !targetArr) {\n            targetArr = this._additiveValue = [];\n        }\n        if (this.useSpline) {\n            var p1 = keyframes[frameIdx][valueKey];\n            var p0 = keyframes[frameIdx === 0 ? frameIdx : frameIdx - 1][valueKey];\n            var p2 = keyframes[frameIdx > kfsNum - 2 ? kfsNum - 1 : frameIdx + 1][valueKey];\n            var p3 = keyframes[frameIdx > kfsNum - 3 ? kfsNum - 1 : frameIdx + 2][valueKey];\n            if (arrDim > 0) {\n                arrDim === 1\n                    ? catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w)\n                    : catmullRomInterpolate2DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\n            }\n            else if (isValueColor) {\n                catmullRomInterpolate1DArray(targetArr, p0, p1, p2, p3, w, w * w, w * w * w);\n                if (!isAdditive) {\n                    target[propName] = rgba2String(targetArr);\n                }\n            }\n            else {\n                var value = void 0;\n                if (!this.interpolable) {\n                    value = p2;\n                }\n                else {\n                    value = catmullRomInterpolate(p0, p1, p2, p3, w, w * w, w * w * w);\n                }\n                if (isAdditive) {\n                    this._additiveValue = value;\n                }\n                else {\n                    target[propName] = value;\n                }\n            }\n        }\n        else {\n            if (arrDim > 0) {\n                arrDim === 1\n                    ? interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w)\n                    : interpolate2DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\n            }\n            else if (isValueColor) {\n                interpolate1DArray(targetArr, frame[valueKey], nextFrame[valueKey], w);\n                if (!isAdditive) {\n                    target[propName] = rgba2String(targetArr);\n                }\n            }\n            else {\n                var value = void 0;\n                if (!this.interpolable) {\n                    value = step(frame[valueKey], nextFrame[valueKey], w);\n                }\n                else {\n                    value = interpolateNumber(frame[valueKey], nextFrame[valueKey], w);\n                }\n                if (isAdditive) {\n                    this._additiveValue = value;\n                }\n                else {\n                    target[propName] = value;\n                }\n            }\n        }\n        if (isAdditive) {\n            this._addToTarget(target);\n        }\n    };\n    Track.prototype._addToTarget = function (target) {\n        var arrDim = this.arrDim;\n        var propName = this.propName;\n        var additiveValue = this._additiveValue;\n        if (arrDim === 0) {\n            if (this.isValueColor) {\n                color.parse(target[propName], tmpRgba);\n                add1DArray(tmpRgba, tmpRgba, additiveValue, 1);\n                target[propName] = rgba2String(tmpRgba);\n            }\n            else {\n                target[propName] = target[propName] + additiveValue;\n            }\n        }\n        else if (arrDim === 1) {\n            add1DArray(target[propName], target[propName], additiveValue, 1);\n        }\n        else if (arrDim === 2) {\n            add2DArray(target[propName], target[propName], additiveValue, 1);\n        }\n    };\n    return Track;\n}());\nvar Animator = (function () {\n    function Animator(target, loop, additiveTo) {\n        this._tracks = {};\n        this._trackKeys = [];\n        this._delay = 0;\n        this._maxTime = 0;\n        this._paused = false;\n        this._started = 0;\n        this._clip = null;\n        this._target = target;\n        this._loop = loop;\n        if (loop && additiveTo) {\n            logError('Can\\' use additive animation on looped animation.');\n            return;\n        }\n        this._additiveAnimators = additiveTo;\n    }\n    Animator.prototype.getTarget = function () {\n        return this._target;\n    };\n    Animator.prototype.changeTarget = function (target) {\n        this._target = target;\n    };\n    Animator.prototype.when = function (time, props) {\n        return this.whenWithKeys(time, props, keys(props));\n    };\n    Animator.prototype.whenWithKeys = function (time, props, propNames) {\n        var tracks = this._tracks;\n        for (var i = 0; i < propNames.length; i++) {\n            var propName = propNames[i];\n            var track = tracks[propName];\n            if (!track) {\n                track = tracks[propName] = new Track(propName);\n                var initialValue = void 0;\n                var additiveTrack = this._getAdditiveTrack(propName);\n                if (additiveTrack) {\n                    var lastFinalKf = additiveTrack.keyframes[additiveTrack.keyframes.length - 1];\n                    initialValue = lastFinalKf && lastFinalKf.value;\n                    if (additiveTrack.isValueColor && initialValue) {\n                        initialValue = rgba2String(initialValue);\n                    }\n                }\n                else {\n                    initialValue = this._target[propName];\n                }\n                if (initialValue == null) {\n                    continue;\n                }\n                if (time !== 0) {\n                    track.addKeyframe(0, cloneValue(initialValue));\n                }\n                this._trackKeys.push(propName);\n            }\n            track.addKeyframe(time, cloneValue(props[propName]));\n        }\n        this._maxTime = Math.max(this._maxTime, time);\n        return this;\n    };\n    Animator.prototype.pause = function () {\n        this._clip.pause();\n        this._paused = true;\n    };\n    Animator.prototype.resume = function () {\n        this._clip.resume();\n        this._paused = false;\n    };\n    Animator.prototype.isPaused = function () {\n        return !!this._paused;\n    };\n    Animator.prototype._doneCallback = function () {\n        this._setTracksFinished();\n        this._clip = null;\n        var doneList = this._doneList;\n        if (doneList) {\n            var len = doneList.length;\n            for (var i = 0; i < len; i++) {\n                doneList[i].call(this);\n            }\n        }\n    };\n    Animator.prototype._abortedCallback = function () {\n        this._setTracksFinished();\n        var animation = this.animation;\n        var abortedList = this._abortedList;\n        if (animation) {\n            animation.removeClip(this._clip);\n        }\n        this._clip = null;\n        if (abortedList) {\n            for (var i = 0; i < abortedList.length; i++) {\n                abortedList[i].call(this);\n            }\n        }\n    };\n    Animator.prototype._setTracksFinished = function () {\n        var tracks = this._tracks;\n        var tracksKeys = this._trackKeys;\n        for (var i = 0; i < tracksKeys.length; i++) {\n            tracks[tracksKeys[i]].setFinished();\n        }\n    };\n    Animator.prototype._getAdditiveTrack = function (trackName) {\n        var additiveTrack;\n        var additiveAnimators = this._additiveAnimators;\n        if (additiveAnimators) {\n            for (var i = 0; i < additiveAnimators.length; i++) {\n                var track = additiveAnimators[i].getTrack(trackName);\n                if (track) {\n                    additiveTrack = track;\n                }\n            }\n        }\n        return additiveTrack;\n    };\n    Animator.prototype.start = function (easing, forceAnimate) {\n        if (this._started > 0) {\n            return;\n        }\n        this._started = 1;\n        var self = this;\n        var tracks = [];\n        for (var i = 0; i < this._trackKeys.length; i++) {\n            var propName = this._trackKeys[i];\n            var track = this._tracks[propName];\n            var additiveTrack = this._getAdditiveTrack(propName);\n            var kfs = track.keyframes;\n            track.prepare(additiveTrack);\n            if (track.needsAnimate()) {\n                tracks.push(track);\n            }\n            else if (!track.interpolable) {\n                var lastKf = kfs[kfs.length - 1];\n                if (lastKf) {\n                    self._target[track.propName] = lastKf.value;\n                }\n            }\n        }\n        if (tracks.length || forceAnimate) {\n            var clip = new Clip({\n                life: this._maxTime,\n                loop: this._loop,\n                delay: this._delay,\n                onframe: function (percent) {\n                    self._started = 2;\n                    var additiveAnimators = self._additiveAnimators;\n                    if (additiveAnimators) {\n                        var stillHasAdditiveAnimator = false;\n                        for (var i = 0; i < additiveAnimators.length; i++) {\n                            if (additiveAnimators[i]._clip) {\n                                stillHasAdditiveAnimator = true;\n                                break;\n                            }\n                        }\n                        if (!stillHasAdditiveAnimator) {\n                            self._additiveAnimators = null;\n                        }\n                    }\n                    for (var i = 0; i < tracks.length; i++) {\n                        tracks[i].step(self._target, percent);\n                    }\n                    var onframeList = self._onframeList;\n                    if (onframeList) {\n                        for (var i = 0; i < onframeList.length; i++) {\n                            onframeList[i](self._target, percent);\n                        }\n                    }\n                },\n                ondestroy: function () {\n                    self._doneCallback();\n                }\n            });\n            this._clip = clip;\n            if (this.animation) {\n                this.animation.addClip(clip);\n            }\n            if (easing && easing !== 'spline') {\n                clip.easing = easing;\n            }\n        }\n        else {\n            this._doneCallback();\n        }\n        return this;\n    };\n    Animator.prototype.stop = function (forwardToLast) {\n        if (!this._clip) {\n            return;\n        }\n        var clip = this._clip;\n        if (forwardToLast) {\n            clip.onframe(1);\n        }\n        this._abortedCallback();\n    };\n    Animator.prototype.delay = function (time) {\n        this._delay = time;\n        return this;\n    };\n    Animator.prototype.during = function (cb) {\n        if (cb) {\n            if (!this._onframeList) {\n                this._onframeList = [];\n            }\n            this._onframeList.push(cb);\n        }\n        return this;\n    };\n    Animator.prototype.done = function (cb) {\n        if (cb) {\n            if (!this._doneList) {\n                this._doneList = [];\n            }\n            this._doneList.push(cb);\n        }\n        return this;\n    };\n    Animator.prototype.aborted = function (cb) {\n        if (cb) {\n            if (!this._abortedList) {\n                this._abortedList = [];\n            }\n            this._abortedList.push(cb);\n        }\n        return this;\n    };\n    Animator.prototype.getClip = function () {\n        return this._clip;\n    };\n    Animator.prototype.getTrack = function (propName) {\n        return this._tracks[propName];\n    };\n    Animator.prototype.stopTracks = function (propNames, forwardToLast) {\n        if (!propNames.length || !this._clip) {\n            return true;\n        }\n        var tracks = this._tracks;\n        var tracksKeys = this._trackKeys;\n        for (var i = 0; i < propNames.length; i++) {\n            var track = tracks[propNames[i]];\n            if (track) {\n                if (forwardToLast) {\n                    track.step(this._target, 1);\n                }\n                else if (this._started === 1) {\n                    track.step(this._target, 0);\n                }\n                track.setFinished();\n            }\n        }\n        var allAborted = true;\n        for (var i = 0; i < tracksKeys.length; i++) {\n            if (!tracks[tracksKeys[i]].isFinished()) {\n                allAborted = false;\n                break;\n            }\n        }\n        if (allAborted) {\n            this._abortedCallback();\n        }\n        return allAborted;\n    };\n    Animator.prototype.saveFinalToTarget = function (target, trackKeys) {\n        if (!target) {\n            return;\n        }\n        trackKeys = trackKeys || this._trackKeys;\n        for (var i = 0; i < trackKeys.length; i++) {\n            var propName = trackKeys[i];\n            var track = this._tracks[propName];\n            if (!track || track.isFinished()) {\n                continue;\n            }\n            var kfs = track.keyframes;\n            var lastKf = kfs[kfs.length - 1];\n            if (lastKf) {\n                var val = cloneValue(lastKf.value);\n                if (track.isValueColor) {\n                    val = rgba2String(val);\n                }\n                target[propName] = val;\n            }\n        }\n    };\n    Animator.prototype.__changeFinalValue = function (finalProps, trackKeys) {\n        trackKeys = trackKeys || keys(finalProps);\n        for (var i = 0; i < trackKeys.length; i++) {\n            var propName = trackKeys[i];\n            var track = this._tracks[propName];\n            if (!track) {\n                continue;\n            }\n            var kfs = track.keyframes;\n            if (kfs.length > 1) {\n                var lastKf = kfs.pop();\n                track.addKeyframe(lastKf.time, finalProps[propName]);\n                track.prepare(track.getAdditiveTrack());\n            }\n        }\n    };\n    return Animator;\n}());\nexport default Animator;\n","var Point = (function () {\n    function Point(x, y) {\n        this.x = x || 0;\n        this.y = y || 0;\n    }\n    Point.prototype.copy = function (other) {\n        this.x = other.x;\n        this.y = other.y;\n        return this;\n    };\n    Point.prototype.clone = function () {\n        return new Point(this.x, this.y);\n    };\n    Point.prototype.set = function (x, y) {\n        this.x = x;\n        this.y = y;\n        return this;\n    };\n    Point.prototype.equal = function (other) {\n        return other.x === this.x && other.y === this.y;\n    };\n    Point.prototype.add = function (other) {\n        this.x += other.x;\n        this.y += other.y;\n        return this;\n    };\n    Point.prototype.scale = function (scalar) {\n        this.x *= scalar;\n        this.y *= scalar;\n    };\n    Point.prototype.scaleAndAdd = function (other, scalar) {\n        this.x += other.x * scalar;\n        this.y += other.y * scalar;\n    };\n    Point.prototype.sub = function (other) {\n        this.x -= other.x;\n        this.y -= other.y;\n        return this;\n    };\n    Point.prototype.dot = function (other) {\n        return this.x * other.x + this.y * other.y;\n    };\n    Point.prototype.len = function () {\n        return Math.sqrt(this.x * this.x + this.y * this.y);\n    };\n    Point.prototype.lenSquare = function () {\n        return this.x * this.x + this.y * this.y;\n    };\n    Point.prototype.normalize = function () {\n        var len = this.len();\n        this.x /= len;\n        this.y /= len;\n        return this;\n    };\n    Point.prototype.distance = function (other) {\n        var dx = this.x - other.x;\n        var dy = this.y - other.y;\n        return Math.sqrt(dx * dx + dy * dy);\n    };\n    Point.prototype.distanceSquare = function (other) {\n        var dx = this.x - other.x;\n        var dy = this.y - other.y;\n        return dx * dx + dy * dy;\n    };\n    Point.prototype.negate = function () {\n        this.x = -this.x;\n        this.y = -this.y;\n        return this;\n    };\n    Point.prototype.transform = function (m) {\n        if (!m) {\n            return;\n        }\n        var x = this.x;\n        var y = this.y;\n        this.x = m[0] * x + m[2] * y + m[4];\n        this.y = m[1] * x + m[3] * y + m[5];\n        return this;\n    };\n    Point.prototype.toArray = function (out) {\n        out[0] = this.x;\n        out[1] = this.y;\n        return out;\n    };\n    Point.prototype.fromArray = function (input) {\n        this.x = input[0];\n        this.y = input[1];\n    };\n    Point.set = function (p, x, y) {\n        p.x = x;\n        p.y = y;\n    };\n    Point.copy = function (p, p2) {\n        p.x = p2.x;\n        p.y = p2.y;\n    };\n    Point.len = function (p) {\n        return Math.sqrt(p.x * p.x + p.y * p.y);\n    };\n    Point.lenSquare = function (p) {\n        return p.x * p.x + p.y * p.y;\n    };\n    Point.dot = function (p0, p1) {\n        return p0.x * p1.x + p0.y * p1.y;\n    };\n    Point.add = function (out, p0, p1) {\n        out.x = p0.x + p1.x;\n        out.y = p0.y + p1.y;\n    };\n    Point.sub = function (out, p0, p1) {\n        out.x = p0.x - p1.x;\n        out.y = p0.y - p1.y;\n    };\n    Point.scale = function (out, p0, scalar) {\n        out.x = p0.x * scalar;\n        out.y = p0.y * scalar;\n    };\n    Point.scaleAndAdd = function (out, p0, p1, scalar) {\n        out.x = p0.x + p1.x * scalar;\n        out.y = p0.y + p1.y * scalar;\n    };\n    Point.lerp = function (out, p0, p1, t) {\n        var onet = 1 - t;\n        out.x = onet * p0.x + t * p1.x;\n        out.y = onet * p0.y + t * p1.y;\n    };\n    return Point;\n}());\nexport default Point;\n","import * as matrix from './matrix';\nimport Point from './Point';\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar lt = new Point();\nvar rb = new Point();\nvar lb = new Point();\nvar rt = new Point();\nvar minTv = new Point();\nvar maxTv = new Point();\nvar BoundingRect = (function () {\n    function BoundingRect(x, y, width, height) {\n        if (width < 0 && isFinite(width)) {\n            x = x + width;\n            width = -width;\n        }\n        if (height < 0 && isFinite(height)) {\n            y = y + height;\n            height = -height;\n        }\n        this.x = x;\n        this.y = y;\n        this.width = width;\n        this.height = height;\n    }\n    BoundingRect.prototype.union = function (other) {\n        var x = mathMin(other.x, this.x);\n        var y = mathMin(other.y, this.y);\n        if (isFinite(this.x) && isFinite(this.width)) {\n            this.width = mathMax(other.x + other.width, this.x + this.width) - x;\n        }\n        else {\n            this.width = other.width;\n        }\n        if (isFinite(this.y) && isFinite(this.height)) {\n            this.height = mathMax(other.y + other.height, this.y + this.height) - y;\n        }\n        else {\n            this.height = other.height;\n        }\n        this.x = x;\n        this.y = y;\n    };\n    BoundingRect.prototype.applyTransform = function (m) {\n        BoundingRect.applyTransform(this, this, m);\n    };\n    BoundingRect.prototype.calculateTransform = function (b) {\n        var a = this;\n        var sx = b.width / a.width;\n        var sy = b.height / a.height;\n        var m = matrix.create();\n        matrix.translate(m, m, [-a.x, -a.y]);\n        matrix.scale(m, m, [sx, sy]);\n        matrix.translate(m, m, [b.x, b.y]);\n        return m;\n    };\n    BoundingRect.prototype.intersect = function (b, mtv) {\n        if (!b) {\n            return false;\n        }\n        if (!(b instanceof BoundingRect)) {\n            b = BoundingRect.create(b);\n        }\n        var a = this;\n        var ax0 = a.x;\n        var ax1 = a.x + a.width;\n        var ay0 = a.y;\n        var ay1 = a.y + a.height;\n        var bx0 = b.x;\n        var bx1 = b.x + b.width;\n        var by0 = b.y;\n        var by1 = b.y + b.height;\n        var overlap = !(ax1 < bx0 || bx1 < ax0 || ay1 < by0 || by1 < ay0);\n        if (mtv) {\n            var dMin = Infinity;\n            var dMax = 0;\n            var d0 = Math.abs(ax1 - bx0);\n            var d1 = Math.abs(bx1 - ax0);\n            var d2 = Math.abs(ay1 - by0);\n            var d3 = Math.abs(by1 - ay0);\n            var dx = Math.min(d0, d1);\n            var dy = Math.min(d2, d3);\n            if (ax1 < bx0 || bx1 < ax0) {\n                if (dx > dMax) {\n                    dMax = dx;\n                    if (d0 < d1) {\n                        Point.set(maxTv, -d0, 0);\n                    }\n                    else {\n                        Point.set(maxTv, d1, 0);\n                    }\n                }\n            }\n            else {\n                if (dx < dMin) {\n                    dMin = dx;\n                    if (d0 < d1) {\n                        Point.set(minTv, d0, 0);\n                    }\n                    else {\n                        Point.set(minTv, -d1, 0);\n                    }\n                }\n            }\n            if (ay1 < by0 || by1 < ay0) {\n                if (dy > dMax) {\n                    dMax = dy;\n                    if (d2 < d3) {\n                        Point.set(maxTv, 0, -d2);\n                    }\n                    else {\n                        Point.set(maxTv, 0, d3);\n                    }\n                }\n            }\n            else {\n                if (dx < dMin) {\n                    dMin = dx;\n                    if (d2 < d3) {\n                        Point.set(minTv, 0, d2);\n                    }\n                    else {\n                        Point.set(minTv, 0, -d3);\n                    }\n                }\n            }\n        }\n        if (mtv) {\n            Point.copy(mtv, overlap ? minTv : maxTv);\n        }\n        return overlap;\n    };\n    BoundingRect.prototype.contain = function (x, y) {\n        var rect = this;\n        return x >= rect.x\n            && x <= (rect.x + rect.width)\n            && y >= rect.y\n            && y <= (rect.y + rect.height);\n    };\n    BoundingRect.prototype.clone = function () {\n        return new BoundingRect(this.x, this.y, this.width, this.height);\n    };\n    BoundingRect.prototype.copy = function (other) {\n        BoundingRect.copy(this, other);\n    };\n    BoundingRect.prototype.plain = function () {\n        return {\n            x: this.x,\n            y: this.y,\n            width: this.width,\n            height: this.height\n        };\n    };\n    BoundingRect.prototype.isFinite = function () {\n        return isFinite(this.x)\n            && isFinite(this.y)\n            && isFinite(this.width)\n            && isFinite(this.height);\n    };\n    BoundingRect.prototype.isZero = function () {\n        return this.width === 0 || this.height === 0;\n    };\n    BoundingRect.create = function (rect) {\n        return new BoundingRect(rect.x, rect.y, rect.width, rect.height);\n    };\n    BoundingRect.copy = function (target, source) {\n        target.x = source.x;\n        target.y = source.y;\n        target.width = source.width;\n        target.height = source.height;\n    };\n    BoundingRect.applyTransform = function (target, source, m) {\n        if (!m) {\n            if (target !== source) {\n                BoundingRect.copy(target, source);\n            }\n            return;\n        }\n        if (m[1] < 1e-5 && m[1] > -1e-5 && m[2] < 1e-5 && m[2] > -1e-5) {\n            var sx = m[0];\n            var sy = m[3];\n            var tx = m[4];\n            var ty = m[5];\n            target.x = source.x * sx + tx;\n            target.y = source.y * sy + ty;\n            target.width = source.width * sx;\n            target.height = source.height * sy;\n            if (target.width < 0) {\n                target.x += target.width;\n                target.width = -target.width;\n            }\n            if (target.height < 0) {\n                target.y += target.height;\n                target.height = -target.height;\n            }\n            return;\n        }\n        lt.x = lb.x = source.x;\n        lt.y = rt.y = source.y;\n        rb.x = rt.x = source.x + source.width;\n        rb.y = lb.y = source.y + source.height;\n        lt.transform(m);\n        rt.transform(m);\n        rb.transform(m);\n        lb.transform(m);\n        target.x = mathMin(lt.x, rb.x, lb.x, rt.x);\n        target.y = mathMin(lt.y, rb.y, lb.y, rt.y);\n        var maxX = mathMax(lt.x, rb.x, lb.x, rt.x);\n        var maxY = mathMax(lt.y, rb.y, lb.y, rt.y);\n        target.width = maxX - target.x;\n        target.height = maxY - target.y;\n    };\n    return BoundingRect;\n}());\nexport default BoundingRect;\n","import BoundingRect from '../core/BoundingRect';\nimport { createCanvas } from '../core/util';\nimport LRU from '../core/LRU';\nvar textWidthCache = {};\nexport var DEFAULT_FONT = '12px sans-serif';\nvar _ctx;\nvar _cachedFont;\nfunction defaultMeasureText(text, font) {\n    if (!_ctx) {\n        _ctx = createCanvas().getContext('2d');\n    }\n    if (_cachedFont !== font) {\n        _cachedFont = _ctx.font = font || DEFAULT_FONT;\n    }\n    return _ctx.measureText(text);\n}\nvar methods = {\n    measureText: defaultMeasureText\n};\nexport function $override(name, fn) {\n    methods[name] = fn;\n}\nexport function getWidth(text, font) {\n    font = font || DEFAULT_FONT;\n    var cacheOfFont = textWidthCache[font];\n    if (!cacheOfFont) {\n        cacheOfFont = textWidthCache[font] = new LRU(500);\n    }\n    var width = cacheOfFont.get(text);\n    if (width == null) {\n        width = methods.measureText(text, font).width;\n        cacheOfFont.put(text, width);\n    }\n    return width;\n}\nexport function innerGetBoundingRect(text, font, textAlign, textBaseline) {\n    var width = getWidth(text, font);\n    var height = getLineHeight(font);\n    var x = adjustTextX(0, width, textAlign);\n    var y = adjustTextY(0, height, textBaseline);\n    var rect = new BoundingRect(x, y, width, height);\n    return rect;\n}\nexport function getBoundingRect(text, font, textAlign, textBaseline) {\n    var textLines = ((text || '') + '').split('\\n');\n    var len = textLines.length;\n    if (len === 1) {\n        return innerGetBoundingRect(textLines[0], font, textAlign, textBaseline);\n    }\n    else {\n        var uniondRect = new BoundingRect(0, 0, 0, 0);\n        for (var i = 0; i < textLines.length; i++) {\n            var rect = innerGetBoundingRect(textLines[i], font, textAlign, textBaseline);\n            i === 0 ? uniondRect.copy(rect) : uniondRect.union(rect);\n        }\n        return uniondRect;\n    }\n}\nexport function adjustTextX(x, width, textAlign) {\n    if (textAlign === 'right') {\n        x -= width;\n    }\n    else if (textAlign === 'center') {\n        x -= width / 2;\n    }\n    return x;\n}\nexport function adjustTextY(y, height, verticalAlign) {\n    if (verticalAlign === 'middle') {\n        y -= height / 2;\n    }\n    else if (verticalAlign === 'bottom') {\n        y -= height;\n    }\n    return y;\n}\nexport function getLineHeight(font) {\n    return getWidth('国', font);\n}\nexport function measureText(text, font) {\n    return methods.measureText(text, font);\n}\nexport function parsePercent(value, maxValue) {\n    if (typeof value === 'string') {\n        if (value.lastIndexOf('%') >= 0) {\n            return parseFloat(value) / 100 * maxValue;\n        }\n        return parseFloat(value);\n    }\n    return value;\n}\nexport function calculateTextPosition(out, opts, rect) {\n    var textPosition = opts.position || 'inside';\n    var distance = opts.distance != null ? opts.distance : 5;\n    var height = rect.height;\n    var width = rect.width;\n    var halfHeight = height / 2;\n    var x = rect.x;\n    var y = rect.y;\n    var textAlign = 'left';\n    var textVerticalAlign = 'top';\n    if (textPosition instanceof Array) {\n        x += parsePercent(textPosition[0], rect.width);\n        y += parsePercent(textPosition[1], rect.height);\n        textAlign = null;\n        textVerticalAlign = null;\n    }\n    else {\n        switch (textPosition) {\n            case 'left':\n                x -= distance;\n                y += halfHeight;\n                textAlign = 'right';\n                textVerticalAlign = 'middle';\n                break;\n            case 'right':\n                x += distance + width;\n                y += halfHeight;\n                textVerticalAlign = 'middle';\n                break;\n            case 'top':\n                x += width / 2;\n                y -= distance;\n                textAlign = 'center';\n                textVerticalAlign = 'bottom';\n                break;\n            case 'bottom':\n                x += width / 2;\n                y += height + distance;\n                textAlign = 'center';\n                break;\n            case 'inside':\n                x += width / 2;\n                y += halfHeight;\n                textAlign = 'center';\n                textVerticalAlign = 'middle';\n                break;\n            case 'insideLeft':\n                x += distance;\n                y += halfHeight;\n                textVerticalAlign = 'middle';\n                break;\n            case 'insideRight':\n                x += width - distance;\n                y += halfHeight;\n                textAlign = 'right';\n                textVerticalAlign = 'middle';\n                break;\n            case 'insideTop':\n                x += width / 2;\n                y += distance;\n                textAlign = 'center';\n                break;\n            case 'insideBottom':\n                x += width / 2;\n                y += height - distance;\n                textAlign = 'center';\n                textVerticalAlign = 'bottom';\n                break;\n            case 'insideTopLeft':\n                x += distance;\n                y += distance;\n                break;\n            case 'insideTopRight':\n                x += width - distance;\n                y += distance;\n                textAlign = 'right';\n                break;\n            case 'insideBottomLeft':\n                x += distance;\n                y += height - distance;\n                textVerticalAlign = 'bottom';\n                break;\n            case 'insideBottomRight':\n                x += width - distance;\n                y += height - distance;\n                textAlign = 'right';\n                textVerticalAlign = 'bottom';\n                break;\n        }\n    }\n    out = out || {};\n    out.x = x;\n    out.y = y;\n    out.align = textAlign;\n    out.verticalAlign = textVerticalAlign;\n    return out;\n}\n","var dpr = 1;\nif (typeof window !== 'undefined') {\n    dpr = Math.max(window.devicePixelRatio\n        || (window.screen && window.screen.deviceXDPI / window.screen.logicalXDPI)\n        || 1, 1);\n}\nexport var debugMode = 0;\nexport var devicePixelRatio = dpr;\nexport var DARK_MODE_THRESHOLD = 0.4;\nexport var DARK_LABEL_COLOR = '#333';\nexport var LIGHT_LABEL_COLOR = '#ccc';\nexport var LIGHTER_LABEL_COLOR = '#eee';\n","import Transformable from './core/Transformable';\nimport Animator, { cloneValue } from './animation/Animator';\nimport BoundingRect from './core/BoundingRect';\nimport Eventful from './core/Eventful';\nimport { calculateTextPosition, parsePercent } from './contain/text';\nimport { guid, isObject, keys, extend, indexOf, logError, mixin, isArrayLike, isTypedArray } from './core/util';\nimport { LIGHT_LABEL_COLOR, DARK_LABEL_COLOR } from './config';\nimport { parse, stringify } from './tool/color';\nimport env from './core/env';\nexport var PRESERVED_NORMAL_STATE = '__zr_normal__';\nvar PRIMARY_STATES_KEYS = ['x', 'y', 'scaleX', 'scaleY', 'originX', 'originY', 'rotation', 'ignore'];\nvar DEFAULT_ANIMATABLE_MAP = {\n    x: true,\n    y: true,\n    scaleX: true,\n    scaleY: true,\n    originX: true,\n    originY: true,\n    rotation: true,\n    ignore: false\n};\nvar tmpTextPosCalcRes = {};\nvar tmpBoundingRect = new BoundingRect(0, 0, 0, 0);\nvar Element = (function () {\n    function Element(props) {\n        this.id = guid();\n        this.animators = [];\n        this.currentStates = [];\n        this.states = {};\n        this._init(props);\n    }\n    Element.prototype._init = function (props) {\n        this.attr(props);\n    };\n    Element.prototype.drift = function (dx, dy, e) {\n        switch (this.draggable) {\n            case 'horizontal':\n                dy = 0;\n                break;\n            case 'vertical':\n                dx = 0;\n                break;\n        }\n        var m = this.transform;\n        if (!m) {\n            m = this.transform = [1, 0, 0, 1, 0, 0];\n        }\n        m[4] += dx;\n        m[5] += dy;\n        this.decomposeTransform();\n        this.markRedraw();\n    };\n    Element.prototype.beforeUpdate = function () { };\n    Element.prototype.afterUpdate = function () { };\n    Element.prototype.update = function () {\n        this.updateTransform();\n        if (this.__dirty) {\n            this.updateInnerText();\n        }\n    };\n    Element.prototype.updateInnerText = function (forceUpdate) {\n        var textEl = this._textContent;\n        if (textEl && (!textEl.ignore || forceUpdate)) {\n            if (!this.textConfig) {\n                this.textConfig = {};\n            }\n            var textConfig = this.textConfig;\n            var isLocal = textConfig.local;\n            var attachedTransform = textEl.attachedTransform;\n            var textAlign = void 0;\n            var textVerticalAlign = void 0;\n            var textStyleChanged = false;\n            if (isLocal) {\n                attachedTransform.parent = this;\n            }\n            else {\n                attachedTransform.parent = null;\n            }\n            var innerOrigin = false;\n            attachedTransform.x = textEl.x;\n            attachedTransform.y = textEl.y;\n            attachedTransform.originX = textEl.originX;\n            attachedTransform.originY = textEl.originY;\n            attachedTransform.rotation = textEl.rotation;\n            attachedTransform.scaleX = textEl.scaleX;\n            attachedTransform.scaleY = textEl.scaleY;\n            if (textConfig.position != null) {\n                var layoutRect = tmpBoundingRect;\n                if (textConfig.layoutRect) {\n                    layoutRect.copy(textConfig.layoutRect);\n                }\n                else {\n                    layoutRect.copy(this.getBoundingRect());\n                }\n                if (!isLocal) {\n                    layoutRect.applyTransform(this.transform);\n                }\n                if (this.calculateTextPosition) {\n                    this.calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\n                }\n                else {\n                    calculateTextPosition(tmpTextPosCalcRes, textConfig, layoutRect);\n                }\n                attachedTransform.x = tmpTextPosCalcRes.x;\n                attachedTransform.y = tmpTextPosCalcRes.y;\n                textAlign = tmpTextPosCalcRes.align;\n                textVerticalAlign = tmpTextPosCalcRes.verticalAlign;\n                var textOrigin = textConfig.origin;\n                if (textOrigin && textConfig.rotation != null) {\n                    var relOriginX = void 0;\n                    var relOriginY = void 0;\n                    if (textOrigin === 'center') {\n                        relOriginX = layoutRect.width * 0.5;\n                        relOriginY = layoutRect.height * 0.5;\n                    }\n                    else {\n                        relOriginX = parsePercent(textOrigin[0], layoutRect.width);\n                        relOriginY = parsePercent(textOrigin[1], layoutRect.height);\n                    }\n                    innerOrigin = true;\n                    attachedTransform.originX = -attachedTransform.x + relOriginX + (isLocal ? 0 : layoutRect.x);\n                    attachedTransform.originY = -attachedTransform.y + relOriginY + (isLocal ? 0 : layoutRect.y);\n                }\n            }\n            if (textConfig.rotation != null) {\n                attachedTransform.rotation = textConfig.rotation;\n            }\n            var textOffset = textConfig.offset;\n            if (textOffset) {\n                attachedTransform.x += textOffset[0];\n                attachedTransform.y += textOffset[1];\n                if (!innerOrigin) {\n                    attachedTransform.originX = -textOffset[0];\n                    attachedTransform.originY = -textOffset[1];\n                }\n            }\n            var isInside = textConfig.inside == null\n                ? (typeof textConfig.position === 'string' && textConfig.position.indexOf('inside') >= 0)\n                : textConfig.inside;\n            var innerTextDefaultStyle = this._innerTextDefaultStyle || (this._innerTextDefaultStyle = {});\n            var textFill = void 0;\n            var textStroke = void 0;\n            var autoStroke = void 0;\n            if (isInside && this.canBeInsideText()) {\n                textFill = textConfig.insideFill;\n                textStroke = textConfig.insideStroke;\n                if (textFill == null || textFill === 'auto') {\n                    textFill = this.getInsideTextFill();\n                }\n                if (textStroke == null || textStroke === 'auto') {\n                    textStroke = this.getInsideTextStroke(textFill);\n                    autoStroke = true;\n                }\n            }\n            else {\n                textFill = textConfig.outsideFill;\n                textStroke = textConfig.outsideStroke;\n                if (textFill == null || textFill === 'auto') {\n                    textFill = this.getOutsideFill();\n                }\n                if (textStroke == null || textStroke === 'auto') {\n                    textStroke = this.getOutsideStroke(textFill);\n                    autoStroke = true;\n                }\n            }\n            textFill = textFill || '#000';\n            if (textFill !== innerTextDefaultStyle.fill\n                || textStroke !== innerTextDefaultStyle.stroke\n                || autoStroke !== innerTextDefaultStyle.autoStroke\n                || textAlign !== innerTextDefaultStyle.align\n                || textVerticalAlign !== innerTextDefaultStyle.verticalAlign) {\n                textStyleChanged = true;\n                innerTextDefaultStyle.fill = textFill;\n                innerTextDefaultStyle.stroke = textStroke;\n                innerTextDefaultStyle.autoStroke = autoStroke;\n                innerTextDefaultStyle.align = textAlign;\n                innerTextDefaultStyle.verticalAlign = textVerticalAlign;\n                textEl.setDefaultTextStyle(innerTextDefaultStyle);\n            }\n            if (textStyleChanged) {\n                textEl.dirtyStyle();\n            }\n            textEl.markRedraw();\n        }\n    };\n    Element.prototype.canBeInsideText = function () {\n        return true;\n    };\n    Element.prototype.getInsideTextFill = function () {\n        return '#fff';\n    };\n    Element.prototype.getInsideTextStroke = function (textFill) {\n        return '#000';\n    };\n    Element.prototype.getOutsideFill = function () {\n        return this.__zr && this.__zr.isDarkMode() ? LIGHT_LABEL_COLOR : DARK_LABEL_COLOR;\n    };\n    Element.prototype.getOutsideStroke = function (textFill) {\n        var backgroundColor = this.__zr && this.__zr.getBackgroundColor();\n        var colorArr = typeof backgroundColor === 'string' && parse(backgroundColor);\n        if (!colorArr) {\n            colorArr = [255, 255, 255, 1];\n        }\n        var alpha = colorArr[3];\n        var isDark = this.__zr.isDarkMode();\n        for (var i = 0; i < 3; i++) {\n            colorArr[i] = colorArr[i] * alpha + (isDark ? 0 : 255) * (1 - alpha);\n        }\n        colorArr[3] = 1;\n        return stringify(colorArr, 'rgba');\n    };\n    Element.prototype.traverse = function (cb, context) { };\n    Element.prototype.attrKV = function (key, value) {\n        if (key === 'textConfig') {\n            this.setTextConfig(value);\n        }\n        else if (key === 'textContent') {\n            this.setTextContent(value);\n        }\n        else if (key === 'clipPath') {\n            this.setClipPath(value);\n        }\n        else if (key === 'extra') {\n            this.extra = this.extra || {};\n            extend(this.extra, value);\n        }\n        else {\n            this[key] = value;\n        }\n    };\n    Element.prototype.hide = function () {\n        this.ignore = true;\n        this.markRedraw();\n    };\n    Element.prototype.show = function () {\n        this.ignore = false;\n        this.markRedraw();\n    };\n    Element.prototype.attr = function (keyOrObj, value) {\n        if (typeof keyOrObj === 'string') {\n            this.attrKV(keyOrObj, value);\n        }\n        else if (isObject(keyOrObj)) {\n            var obj = keyOrObj;\n            var keysArr = keys(obj);\n            for (var i = 0; i < keysArr.length; i++) {\n                var key = keysArr[i];\n                this.attrKV(key, keyOrObj[key]);\n            }\n        }\n        this.markRedraw();\n        return this;\n    };\n    Element.prototype.saveCurrentToNormalState = function (toState) {\n        this._innerSaveToNormal(toState);\n        var normalState = this._normalState;\n        for (var i = 0; i < this.animators.length; i++) {\n            var animator = this.animators[i];\n            var fromStateTransition = animator.__fromStateTransition;\n            if (fromStateTransition && fromStateTransition !== PRESERVED_NORMAL_STATE) {\n                continue;\n            }\n            var targetName = animator.targetName;\n            var target = targetName\n                ? normalState[targetName] : normalState;\n            animator.saveFinalToTarget(target);\n        }\n    };\n    Element.prototype._innerSaveToNormal = function (toState) {\n        var normalState = this._normalState;\n        if (!normalState) {\n            normalState = this._normalState = {};\n        }\n        if (toState.textConfig && !normalState.textConfig) {\n            normalState.textConfig = this.textConfig;\n        }\n        this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS);\n    };\n    Element.prototype._savePrimaryToNormal = function (toState, normalState, primaryKeys) {\n        for (var i = 0; i < primaryKeys.length; i++) {\n            var key = primaryKeys[i];\n            if (toState[key] != null && !(key in normalState)) {\n                normalState[key] = this[key];\n            }\n        }\n    };\n    Element.prototype.hasState = function () {\n        return this.currentStates.length > 0;\n    };\n    Element.prototype.getState = function (name) {\n        return this.states[name];\n    };\n    Element.prototype.ensureState = function (name) {\n        var states = this.states;\n        if (!states[name]) {\n            states[name] = {};\n        }\n        return states[name];\n    };\n    Element.prototype.clearStates = function (noAnimation) {\n        this.useState(PRESERVED_NORMAL_STATE, false, noAnimation);\n    };\n    Element.prototype.useState = function (stateName, keepCurrentStates, noAnimation) {\n        var toNormalState = stateName === PRESERVED_NORMAL_STATE;\n        var hasStates = this.hasState();\n        if (!hasStates && toNormalState) {\n            return;\n        }\n        var currentStates = this.currentStates;\n        var animationCfg = this.stateTransition;\n        if (indexOf(currentStates, stateName) >= 0 && (keepCurrentStates || currentStates.length === 1)) {\n            return;\n        }\n        var state;\n        if (this.stateProxy && !toNormalState) {\n            state = this.stateProxy(stateName);\n        }\n        if (!state) {\n            state = (this.states && this.states[stateName]);\n        }\n        if (!state && !toNormalState) {\n            logError(\"State \" + stateName + \" not exists.\");\n            return;\n        }\n        if (!toNormalState) {\n            this.saveCurrentToNormalState(state);\n        }\n        var useHoverLayer = !!(state && state.hoverLayer);\n        if (useHoverLayer) {\n            this._toggleHoverLayerFlag(true);\n        }\n        this._applyStateObj(stateName, state, this._normalState, keepCurrentStates, !noAnimation && !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\n        if (this._textContent) {\n            this._textContent.useState(stateName, keepCurrentStates);\n        }\n        if (this._textGuide) {\n            this._textGuide.useState(stateName, keepCurrentStates);\n        }\n        if (toNormalState) {\n            this.currentStates = [];\n            this._normalState = {};\n        }\n        else {\n            if (!keepCurrentStates) {\n                this.currentStates = [stateName];\n            }\n            else {\n                this.currentStates.push(stateName);\n            }\n        }\n        this._updateAnimationTargets();\n        this.markRedraw();\n        if (!useHoverLayer && this.__inHover) {\n            this._toggleHoverLayerFlag(false);\n            this.__dirty &= ~Element.REDARAW_BIT;\n        }\n        return state;\n    };\n    Element.prototype.useStates = function (states, noAnimation) {\n        if (!states.length) {\n            this.clearStates();\n        }\n        else {\n            var stateObjects = [];\n            var currentStates = this.currentStates;\n            var len = states.length;\n            var notChange = len === currentStates.length;\n            if (notChange) {\n                for (var i = 0; i < len; i++) {\n                    if (states[i] !== currentStates[i]) {\n                        notChange = false;\n                        break;\n                    }\n                }\n            }\n            if (notChange) {\n                return;\n            }\n            for (var i = 0; i < len; i++) {\n                var stateName = states[i];\n                var stateObj = void 0;\n                if (this.stateProxy) {\n                    stateObj = this.stateProxy(stateName, states);\n                }\n                if (!stateObj) {\n                    stateObj = this.states[stateName];\n                }\n                if (stateObj) {\n                    stateObjects.push(stateObj);\n                }\n            }\n            var useHoverLayer = !!(stateObjects[len - 1] && stateObjects[len - 1].hoverLayer);\n            if (useHoverLayer) {\n                this._toggleHoverLayerFlag(true);\n            }\n            var mergedState = this._mergeStates(stateObjects);\n            var animationCfg = this.stateTransition;\n            this.saveCurrentToNormalState(mergedState);\n            this._applyStateObj(states.join(','), mergedState, this._normalState, false, !noAnimation && !this.__inHover && animationCfg && animationCfg.duration > 0, animationCfg);\n            if (this._textContent) {\n                this._textContent.useStates(states);\n            }\n            if (this._textGuide) {\n                this._textGuide.useStates(states);\n            }\n            this._updateAnimationTargets();\n            this.currentStates = states.slice();\n            this.markRedraw();\n            if (!useHoverLayer && this.__inHover) {\n                this._toggleHoverLayerFlag(false);\n                this.__dirty &= ~Element.REDARAW_BIT;\n            }\n        }\n    };\n    Element.prototype._updateAnimationTargets = function () {\n        for (var i = 0; i < this.animators.length; i++) {\n            var animator = this.animators[i];\n            if (animator.targetName) {\n                animator.changeTarget(this[animator.targetName]);\n            }\n        }\n    };\n    Element.prototype.removeState = function (state) {\n        var idx = indexOf(this.currentStates, state);\n        if (idx >= 0) {\n            var currentStates = this.currentStates.slice();\n            currentStates.splice(idx, 1);\n            this.useStates(currentStates);\n        }\n    };\n    Element.prototype.replaceState = function (oldState, newState, forceAdd) {\n        var currentStates = this.currentStates.slice();\n        var idx = indexOf(currentStates, oldState);\n        var newStateExists = indexOf(currentStates, newState) >= 0;\n        if (idx >= 0) {\n            if (!newStateExists) {\n                currentStates[idx] = newState;\n            }\n            else {\n                currentStates.splice(idx, 1);\n            }\n        }\n        else if (forceAdd && !newStateExists) {\n            currentStates.push(newState);\n        }\n        this.useStates(currentStates);\n    };\n    Element.prototype.toggleState = function (state, enable) {\n        if (enable) {\n            this.useState(state, true);\n        }\n        else {\n            this.removeState(state);\n        }\n    };\n    Element.prototype._mergeStates = function (states) {\n        var mergedState = {};\n        var mergedTextConfig;\n        for (var i = 0; i < states.length; i++) {\n            var state = states[i];\n            extend(mergedState, state);\n            if (state.textConfig) {\n                mergedTextConfig = mergedTextConfig || {};\n                extend(mergedTextConfig, state.textConfig);\n            }\n        }\n        if (mergedTextConfig) {\n            mergedState.textConfig = mergedTextConfig;\n        }\n        return mergedState;\n    };\n    Element.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\n        var needsRestoreToNormal = !(state && keepCurrentStates);\n        if (state && state.textConfig) {\n            this.textConfig = extend({}, keepCurrentStates ? this.textConfig : normalState.textConfig);\n            extend(this.textConfig, state.textConfig);\n        }\n        else if (needsRestoreToNormal) {\n            if (normalState.textConfig) {\n                this.textConfig = normalState.textConfig;\n            }\n        }\n        var transitionTarget = {};\n        var hasTransition = false;\n        for (var i = 0; i < PRIMARY_STATES_KEYS.length; i++) {\n            var key = PRIMARY_STATES_KEYS[i];\n            var propNeedsTransition = transition && DEFAULT_ANIMATABLE_MAP[key];\n            if (state && state[key] != null) {\n                if (propNeedsTransition) {\n                    hasTransition = true;\n                    transitionTarget[key] = state[key];\n                }\n                else {\n                    this[key] = state[key];\n                }\n            }\n            else if (needsRestoreToNormal) {\n                if (normalState[key] != null) {\n                    if (propNeedsTransition) {\n                        hasTransition = true;\n                        transitionTarget[key] = normalState[key];\n                    }\n                    else {\n                        this[key] = normalState[key];\n                    }\n                }\n            }\n        }\n        if (!transition) {\n            for (var i = 0; i < this.animators.length; i++) {\n                var animator = this.animators[i];\n                var targetName = animator.targetName;\n                animator.__changeFinalValue(targetName\n                    ? (state || normalState)[targetName]\n                    : (state || normalState));\n            }\n        }\n        if (hasTransition) {\n            this._transitionState(stateName, transitionTarget, animationCfg);\n        }\n    };\n    Element.prototype._attachComponent = function (componentEl) {\n        if (componentEl.__zr && !componentEl.__hostTarget) {\n            throw new Error('Text element has been added to zrender.');\n        }\n        if (componentEl === this) {\n            throw new Error('Recursive component attachment.');\n        }\n        var zr = this.__zr;\n        if (zr) {\n            componentEl.addSelfToZr(zr);\n        }\n        componentEl.__zr = zr;\n        componentEl.__hostTarget = this;\n    };\n    Element.prototype._detachComponent = function (componentEl) {\n        if (componentEl.__zr) {\n            componentEl.removeSelfFromZr(componentEl.__zr);\n        }\n        componentEl.__zr = null;\n        componentEl.__hostTarget = null;\n    };\n    Element.prototype.getClipPath = function () {\n        return this._clipPath;\n    };\n    Element.prototype.setClipPath = function (clipPath) {\n        if (this._clipPath && this._clipPath !== clipPath) {\n            this.removeClipPath();\n        }\n        this._attachComponent(clipPath);\n        this._clipPath = clipPath;\n        this.markRedraw();\n    };\n    Element.prototype.removeClipPath = function () {\n        var clipPath = this._clipPath;\n        if (clipPath) {\n            this._detachComponent(clipPath);\n            this._clipPath = null;\n            this.markRedraw();\n        }\n    };\n    Element.prototype.getTextContent = function () {\n        return this._textContent;\n    };\n    Element.prototype.setTextContent = function (textEl) {\n        var previousTextContent = this._textContent;\n        if (previousTextContent === textEl) {\n            return;\n        }\n        if (previousTextContent && previousTextContent !== textEl) {\n            this.removeTextContent();\n        }\n        if (textEl.__zr && !textEl.__hostTarget) {\n            throw new Error('Text element has been added to zrender.');\n        }\n        textEl.attachedTransform = new Transformable();\n        this._attachComponent(textEl);\n        this._textContent = textEl;\n        this.markRedraw();\n    };\n    Element.prototype.setTextConfig = function (cfg) {\n        if (!this.textConfig) {\n            this.textConfig = {};\n        }\n        extend(this.textConfig, cfg);\n        this.markRedraw();\n    };\n    Element.prototype.removeTextContent = function () {\n        var textEl = this._textContent;\n        if (textEl) {\n            textEl.attachedTransform = null;\n            this._detachComponent(textEl);\n            this._textContent = null;\n            this._innerTextDefaultStyle = null;\n            this.markRedraw();\n        }\n    };\n    Element.prototype.getTextGuideLine = function () {\n        return this._textGuide;\n    };\n    Element.prototype.setTextGuideLine = function (guideLine) {\n        if (this._textGuide && this._textGuide !== guideLine) {\n            this.removeTextGuideLine();\n        }\n        this._attachComponent(guideLine);\n        this._textGuide = guideLine;\n        this.markRedraw();\n    };\n    Element.prototype.removeTextGuideLine = function () {\n        var textGuide = this._textGuide;\n        if (textGuide) {\n            this._detachComponent(textGuide);\n            this._textGuide = null;\n            this.markRedraw();\n        }\n    };\n    Element.prototype.markRedraw = function () {\n        this.__dirty |= Element.REDARAW_BIT;\n        var zr = this.__zr;\n        if (zr) {\n            if (this.__inHover) {\n                zr.refreshHover();\n            }\n            else {\n                zr.refresh();\n            }\n        }\n        if (this.__hostTarget) {\n            this.__hostTarget.markRedraw();\n        }\n    };\n    Element.prototype.dirty = function () {\n        this.markRedraw();\n    };\n    Element.prototype._toggleHoverLayerFlag = function (inHover) {\n        this.__inHover = inHover;\n        var textContent = this._textContent;\n        var textGuide = this._textGuide;\n        if (textContent) {\n            textContent.__inHover = inHover;\n        }\n        if (textGuide) {\n            textGuide.__inHover = inHover;\n        }\n    };\n    Element.prototype.addSelfToZr = function (zr) {\n        this.__zr = zr;\n        var animators = this.animators;\n        if (animators) {\n            for (var i = 0; i < animators.length; i++) {\n                zr.animation.addAnimator(animators[i]);\n            }\n        }\n        if (this._clipPath) {\n            this._clipPath.addSelfToZr(zr);\n        }\n        if (this._textContent) {\n            this._textContent.addSelfToZr(zr);\n        }\n        if (this._textGuide) {\n            this._textGuide.addSelfToZr(zr);\n        }\n    };\n    Element.prototype.removeSelfFromZr = function (zr) {\n        this.__zr = null;\n        var animators = this.animators;\n        if (animators) {\n            for (var i = 0; i < animators.length; i++) {\n                zr.animation.removeAnimator(animators[i]);\n            }\n        }\n        if (this._clipPath) {\n            this._clipPath.removeSelfFromZr(zr);\n        }\n        if (this._textContent) {\n            this._textContent.removeSelfFromZr(zr);\n        }\n        if (this._textGuide) {\n            this._textGuide.removeSelfFromZr(zr);\n        }\n    };\n    Element.prototype.animate = function (key, loop) {\n        var target = key ? this[key] : this;\n        if (!target) {\n            logError('Property \"'\n                + key\n                + '\" is not existed in element '\n                + this.id);\n            return;\n        }\n        var animator = new Animator(target, loop);\n        this.addAnimator(animator, key);\n        return animator;\n    };\n    Element.prototype.addAnimator = function (animator, key) {\n        var zr = this.__zr;\n        var el = this;\n        animator.during(function () {\n            el.updateDuringAnimation(key);\n        }).done(function () {\n            var animators = el.animators;\n            var idx = indexOf(animators, animator);\n            if (idx >= 0) {\n                animators.splice(idx, 1);\n            }\n        });\n        this.animators.push(animator);\n        if (zr) {\n            zr.animation.addAnimator(animator);\n        }\n        zr && zr.wakeUp();\n    };\n    Element.prototype.updateDuringAnimation = function (key) {\n        this.markRedraw();\n    };\n    Element.prototype.stopAnimation = function (scope, forwardToLast) {\n        var animators = this.animators;\n        var len = animators.length;\n        var leftAnimators = [];\n        for (var i = 0; i < len; i++) {\n            var animator = animators[i];\n            if (!scope || scope === animator.scope) {\n                animator.stop(forwardToLast);\n            }\n            else {\n                leftAnimators.push(animator);\n            }\n        }\n        this.animators = leftAnimators;\n        return this;\n    };\n    Element.prototype.animateTo = function (target, cfg, animationProps) {\n        animateTo(this, target, cfg, animationProps);\n    };\n    Element.prototype.animateFrom = function (target, cfg, animationProps) {\n        animateTo(this, target, cfg, animationProps, true);\n    };\n    Element.prototype._transitionState = function (stateName, target, cfg, animationProps) {\n        var animators = animateTo(this, target, cfg, animationProps);\n        for (var i = 0; i < animators.length; i++) {\n            animators[i].__fromStateTransition = stateName;\n        }\n    };\n    Element.prototype.getBoundingRect = function () {\n        return null;\n    };\n    Element.prototype.getPaintRect = function () {\n        return null;\n    };\n    Element.REDARAW_BIT = 1;\n    Element.initDefaultProps = (function () {\n        var elProto = Element.prototype;\n        elProto.type = 'element';\n        elProto.name = '';\n        elProto.ignore = false;\n        elProto.silent = false;\n        elProto.isGroup = false;\n        elProto.draggable = false;\n        elProto.dragging = false;\n        elProto.ignoreClip = false;\n        elProto.__inHover = false;\n        elProto.__dirty = Element.REDARAW_BIT;\n        var logs = {};\n        function logDeprecatedError(key, xKey, yKey) {\n            if (!logs[key + xKey + yKey]) {\n                console.warn(\"DEPRECATED: '\" + key + \"' has been deprecated. use '\" + xKey + \"', '\" + yKey + \"' instead\");\n                logs[key + xKey + yKey] = true;\n            }\n        }\n        function createLegacyProperty(key, privateKey, xKey, yKey) {\n            Object.defineProperty(elProto, key, {\n                get: function () {\n                    logDeprecatedError(key, xKey, yKey);\n                    if (!this[privateKey]) {\n                        var pos = this[privateKey] = [];\n                        enhanceArray(this, pos);\n                    }\n                    return this[privateKey];\n                },\n                set: function (pos) {\n                    logDeprecatedError(key, xKey, yKey);\n                    this[xKey] = pos[0];\n                    this[yKey] = pos[1];\n                    this[privateKey] = pos;\n                    enhanceArray(this, pos);\n                }\n            });\n            function enhanceArray(self, pos) {\n                Object.defineProperty(pos, 0, {\n                    get: function () {\n                        return self[xKey];\n                    },\n                    set: function (val) {\n                        self[xKey] = val;\n                    }\n                });\n                Object.defineProperty(pos, 1, {\n                    get: function () {\n                        return self[yKey];\n                    },\n                    set: function (val) {\n                        self[yKey] = val;\n                    }\n                });\n            }\n        }\n        if (Object.defineProperty && (!env.browser.ie || env.browser.version > 8)) {\n            createLegacyProperty('position', '_legacyPos', 'x', 'y');\n            createLegacyProperty('scale', '_legacyScale', 'scaleX', 'scaleY');\n            createLegacyProperty('origin', '_legacyOrigin', 'originX', 'originY');\n        }\n    })();\n    return Element;\n}());\nmixin(Element, Eventful);\nmixin(Element, Transformable);\nfunction animateTo(animatable, target, cfg, animationProps, reverse) {\n    cfg = cfg || {};\n    var animators = [];\n    animateToShallow(animatable, '', animatable, target, cfg, animationProps, animators, reverse);\n    var finishCount = animators.length;\n    var doneHappened = false;\n    var cfgDone = cfg.done;\n    var cfgAborted = cfg.aborted;\n    var doneCb = function () {\n        doneHappened = true;\n        finishCount--;\n        if (finishCount <= 0) {\n            doneHappened\n                ? (cfgDone && cfgDone())\n                : (cfgAborted && cfgAborted());\n        }\n    };\n    var abortedCb = function () {\n        finishCount--;\n        if (finishCount <= 0) {\n            doneHappened\n                ? (cfgDone && cfgDone())\n                : (cfgAborted && cfgAborted());\n        }\n    };\n    if (!finishCount) {\n        cfgDone && cfgDone();\n    }\n    if (animators.length > 0 && cfg.during) {\n        animators[0].during(function (target, percent) {\n            cfg.during(percent);\n        });\n    }\n    for (var i = 0; i < animators.length; i++) {\n        var animator = animators[i];\n        if (doneCb) {\n            animator.done(doneCb);\n        }\n        if (abortedCb) {\n            animator.aborted(abortedCb);\n        }\n        animator.start(cfg.easing, cfg.force);\n    }\n    return animators;\n}\nfunction copyArrShallow(source, target, len) {\n    for (var i = 0; i < len; i++) {\n        source[i] = target[i];\n    }\n}\nfunction is2DArray(value) {\n    return isArrayLike(value[0]);\n}\nfunction copyValue(target, source, key) {\n    if (isArrayLike(source[key])) {\n        if (!isArrayLike(target[key])) {\n            target[key] = [];\n        }\n        if (isTypedArray(source[key])) {\n            var len = source[key].length;\n            if (target[key].length !== len) {\n                target[key] = new (source[key].constructor)(len);\n                copyArrShallow(target[key], source[key], len);\n            }\n        }\n        else {\n            var sourceArr = source[key];\n            var targetArr = target[key];\n            var len0 = sourceArr.length;\n            if (is2DArray(sourceArr)) {\n                var len1 = sourceArr[0].length;\n                for (var i = 0; i < len0; i++) {\n                    if (!targetArr[i]) {\n                        targetArr[i] = Array.prototype.slice.call(sourceArr[i]);\n                    }\n                    else {\n                        copyArrShallow(targetArr[i], sourceArr[i], len1);\n                    }\n                }\n            }\n            else {\n                copyArrShallow(targetArr, sourceArr, len0);\n            }\n            targetArr.length = sourceArr.length;\n        }\n    }\n    else {\n        target[key] = source[key];\n    }\n}\nfunction animateToShallow(animatable, topKey, source, target, cfg, animationProps, animators, reverse) {\n    var animatableKeys = [];\n    var changedKeys = [];\n    var targetKeys = keys(target);\n    var duration = cfg.duration;\n    var delay = cfg.delay;\n    var additive = cfg.additive;\n    var setToFinal = cfg.setToFinal;\n    var animateAll = !isObject(animationProps);\n    for (var k = 0; k < targetKeys.length; k++) {\n        var innerKey = targetKeys[k];\n        if (source[innerKey] != null\n            && target[innerKey] != null\n            && (animateAll || animationProps[innerKey])) {\n            if (isObject(target[innerKey]) && !isArrayLike(target[innerKey])) {\n                if (topKey) {\n                    if (!reverse) {\n                        source[innerKey] = target[innerKey];\n                        animatable.updateDuringAnimation(topKey);\n                    }\n                    continue;\n                }\n                animateToShallow(animatable, innerKey, source[innerKey], target[innerKey], cfg, animationProps && animationProps[innerKey], animators, reverse);\n            }\n            else {\n                animatableKeys.push(innerKey);\n                changedKeys.push(innerKey);\n            }\n        }\n        else if (!reverse) {\n            source[innerKey] = target[innerKey];\n            animatable.updateDuringAnimation(topKey);\n            changedKeys.push(innerKey);\n        }\n    }\n    var keyLen = animatableKeys.length;\n    if (keyLen > 0\n        || (cfg.force && !animators.length)) {\n        var existsAnimators = animatable.animators;\n        var existsAnimatorsOnSameTarget = [];\n        for (var i = 0; i < existsAnimators.length; i++) {\n            if (existsAnimators[i].targetName === topKey) {\n                existsAnimatorsOnSameTarget.push(existsAnimators[i]);\n            }\n        }\n        if (!additive && existsAnimatorsOnSameTarget.length) {\n            for (var i = 0; i < existsAnimatorsOnSameTarget.length; i++) {\n                var allAborted = existsAnimatorsOnSameTarget[i].stopTracks(changedKeys);\n                if (allAborted) {\n                    var idx = indexOf(existsAnimators, existsAnimatorsOnSameTarget[i]);\n                    existsAnimators.splice(idx, 1);\n                }\n            }\n        }\n        var revertedSource = void 0;\n        var reversedTarget = void 0;\n        var sourceClone = void 0;\n        if (reverse) {\n            reversedTarget = {};\n            if (setToFinal) {\n                revertedSource = {};\n            }\n            for (var i = 0; i < keyLen; i++) {\n                var innerKey = animatableKeys[i];\n                reversedTarget[innerKey] = source[innerKey];\n                if (setToFinal) {\n                    revertedSource[innerKey] = target[innerKey];\n                }\n                else {\n                    source[innerKey] = target[innerKey];\n                }\n            }\n        }\n        else if (setToFinal) {\n            sourceClone = {};\n            for (var i = 0; i < keyLen; i++) {\n                var innerKey = animatableKeys[i];\n                sourceClone[innerKey] = cloneValue(source[innerKey]);\n                copyValue(source, target, innerKey);\n            }\n        }\n        var animator = new Animator(source, false, additive ? existsAnimatorsOnSameTarget : null);\n        animator.targetName = topKey;\n        if (cfg.scope) {\n            animator.scope = cfg.scope;\n        }\n        if (setToFinal && revertedSource) {\n            animator.whenWithKeys(0, revertedSource, animatableKeys);\n        }\n        if (sourceClone) {\n            animator.whenWithKeys(0, sourceClone, animatableKeys);\n        }\n        animator.whenWithKeys(duration == null ? 500 : duration, reverse ? reversedTarget : target, animatableKeys).delay(delay || 0);\n        animatable.addAnimator(animator, topKey);\n        animators.push(animator);\n    }\n}\nexport default Element;\n","var DEFAULT_MIN_MERGE = 32;\nvar DEFAULT_MIN_GALLOPING = 7;\nvar DEFAULT_TMP_STORAGE_LENGTH = 256;\nfunction minRunLength(n) {\n    var r = 0;\n    while (n >= DEFAULT_MIN_MERGE) {\n        r |= n & 1;\n        n >>= 1;\n    }\n    return n + r;\n}\nfunction makeAscendingRun(array, lo, hi, compare) {\n    var runHi = lo + 1;\n    if (runHi === hi) {\n        return 1;\n    }\n    if (compare(array[runHi++], array[lo]) < 0) {\n        while (runHi < hi && compare(array[runHi], array[runHi - 1]) < 0) {\n            runHi++;\n        }\n        reverseRun(array, lo, runHi);\n    }\n    else {\n        while (runHi < hi && compare(array[runHi], array[runHi - 1]) >= 0) {\n            runHi++;\n        }\n    }\n    return runHi - lo;\n}\nfunction reverseRun(array, lo, hi) {\n    hi--;\n    while (lo < hi) {\n        var t = array[lo];\n        array[lo++] = array[hi];\n        array[hi--] = t;\n    }\n}\nfunction binaryInsertionSort(array, lo, hi, start, compare) {\n    if (start === lo) {\n        start++;\n    }\n    for (; start < hi; start++) {\n        var pivot = array[start];\n        var left = lo;\n        var right = start;\n        var mid;\n        while (left < right) {\n            mid = left + right >>> 1;\n            if (compare(pivot, array[mid]) < 0) {\n                right = mid;\n            }\n            else {\n                left = mid + 1;\n            }\n        }\n        var n = start - left;\n        switch (n) {\n            case 3:\n                array[left + 3] = array[left + 2];\n            case 2:\n                array[left + 2] = array[left + 1];\n            case 1:\n                array[left + 1] = array[left];\n                break;\n            default:\n                while (n > 0) {\n                    array[left + n] = array[left + n - 1];\n                    n--;\n                }\n        }\n        array[left] = pivot;\n    }\n}\nfunction gallopLeft(value, array, start, length, hint, compare) {\n    var lastOffset = 0;\n    var maxOffset = 0;\n    var offset = 1;\n    if (compare(value, array[start + hint]) > 0) {\n        maxOffset = length - hint;\n        while (offset < maxOffset && compare(value, array[start + hint + offset]) > 0) {\n            lastOffset = offset;\n            offset = (offset << 1) + 1;\n            if (offset <= 0) {\n                offset = maxOffset;\n            }\n        }\n        if (offset > maxOffset) {\n            offset = maxOffset;\n        }\n        lastOffset += hint;\n        offset += hint;\n    }\n    else {\n        maxOffset = hint + 1;\n        while (offset < maxOffset && compare(value, array[start + hint - offset]) <= 0) {\n            lastOffset = offset;\n            offset = (offset << 1) + 1;\n            if (offset <= 0) {\n                offset = maxOffset;\n            }\n        }\n        if (offset > maxOffset) {\n            offset = maxOffset;\n        }\n        var tmp = lastOffset;\n        lastOffset = hint - offset;\n        offset = hint - tmp;\n    }\n    lastOffset++;\n    while (lastOffset < offset) {\n        var m = lastOffset + (offset - lastOffset >>> 1);\n        if (compare(value, array[start + m]) > 0) {\n            lastOffset = m + 1;\n        }\n        else {\n            offset = m;\n        }\n    }\n    return offset;\n}\nfunction gallopRight(value, array, start, length, hint, compare) {\n    var lastOffset = 0;\n    var maxOffset = 0;\n    var offset = 1;\n    if (compare(value, array[start + hint]) < 0) {\n        maxOffset = hint + 1;\n        while (offset < maxOffset && compare(value, array[start + hint - offset]) < 0) {\n            lastOffset = offset;\n            offset = (offset << 1) + 1;\n            if (offset <= 0) {\n                offset = maxOffset;\n            }\n        }\n        if (offset > maxOffset) {\n            offset = maxOffset;\n        }\n        var tmp = lastOffset;\n        lastOffset = hint - offset;\n        offset = hint - tmp;\n    }\n    else {\n        maxOffset = length - hint;\n        while (offset < maxOffset && compare(value, array[start + hint + offset]) >= 0) {\n            lastOffset = offset;\n            offset = (offset << 1) + 1;\n            if (offset <= 0) {\n                offset = maxOffset;\n            }\n        }\n        if (offset > maxOffset) {\n            offset = maxOffset;\n        }\n        lastOffset += hint;\n        offset += hint;\n    }\n    lastOffset++;\n    while (lastOffset < offset) {\n        var m = lastOffset + (offset - lastOffset >>> 1);\n        if (compare(value, array[start + m]) < 0) {\n            offset = m;\n        }\n        else {\n            lastOffset = m + 1;\n        }\n    }\n    return offset;\n}\nfunction TimSort(array, compare) {\n    var minGallop = DEFAULT_MIN_GALLOPING;\n    var length = 0;\n    var tmpStorageLength = DEFAULT_TMP_STORAGE_LENGTH;\n    var stackLength = 0;\n    var runStart;\n    var runLength;\n    var stackSize = 0;\n    length = array.length;\n    if (length < 2 * DEFAULT_TMP_STORAGE_LENGTH) {\n        tmpStorageLength = length >>> 1;\n    }\n    var tmp = [];\n    stackLength = length < 120 ? 5 : length < 1542 ? 10 : length < 119151 ? 19 : 40;\n    runStart = [];\n    runLength = [];\n    function pushRun(_runStart, _runLength) {\n        runStart[stackSize] = _runStart;\n        runLength[stackSize] = _runLength;\n        stackSize += 1;\n    }\n    function mergeRuns() {\n        while (stackSize > 1) {\n            var n = stackSize - 2;\n            if ((n >= 1 && runLength[n - 1] <= runLength[n] + runLength[n + 1])\n                || (n >= 2 && runLength[n - 2] <= runLength[n] + runLength[n - 1])) {\n                if (runLength[n - 1] < runLength[n + 1]) {\n                    n--;\n                }\n            }\n            else if (runLength[n] > runLength[n + 1]) {\n                break;\n            }\n            mergeAt(n);\n        }\n    }\n    function forceMergeRuns() {\n        while (stackSize > 1) {\n            var n = stackSize - 2;\n            if (n > 0 && runLength[n - 1] < runLength[n + 1]) {\n                n--;\n            }\n            mergeAt(n);\n        }\n    }\n    function mergeAt(i) {\n        var start1 = runStart[i];\n        var length1 = runLength[i];\n        var start2 = runStart[i + 1];\n        var length2 = runLength[i + 1];\n        runLength[i] = length1 + length2;\n        if (i === stackSize - 3) {\n            runStart[i + 1] = runStart[i + 2];\n            runLength[i + 1] = runLength[i + 2];\n        }\n        stackSize--;\n        var k = gallopRight(array[start2], array, start1, length1, 0, compare);\n        start1 += k;\n        length1 -= k;\n        if (length1 === 0) {\n            return;\n        }\n        length2 = gallopLeft(array[start1 + length1 - 1], array, start2, length2, length2 - 1, compare);\n        if (length2 === 0) {\n            return;\n        }\n        if (length1 <= length2) {\n            mergeLow(start1, length1, start2, length2);\n        }\n        else {\n            mergeHigh(start1, length1, start2, length2);\n        }\n    }\n    function mergeLow(start1, length1, start2, length2) {\n        var i = 0;\n        for (i = 0; i < length1; i++) {\n            tmp[i] = array[start1 + i];\n        }\n        var cursor1 = 0;\n        var cursor2 = start2;\n        var dest = start1;\n        array[dest++] = array[cursor2++];\n        if (--length2 === 0) {\n            for (i = 0; i < length1; i++) {\n                array[dest + i] = tmp[cursor1 + i];\n            }\n            return;\n        }\n        if (length1 === 1) {\n            for (i = 0; i < length2; i++) {\n                array[dest + i] = array[cursor2 + i];\n            }\n            array[dest + length2] = tmp[cursor1];\n            return;\n        }\n        var _minGallop = minGallop;\n        var count1;\n        var count2;\n        var exit;\n        while (1) {\n            count1 = 0;\n            count2 = 0;\n            exit = false;\n            do {\n                if (compare(array[cursor2], tmp[cursor1]) < 0) {\n                    array[dest++] = array[cursor2++];\n                    count2++;\n                    count1 = 0;\n                    if (--length2 === 0) {\n                        exit = true;\n                        break;\n                    }\n                }\n                else {\n                    array[dest++] = tmp[cursor1++];\n                    count1++;\n                    count2 = 0;\n                    if (--length1 === 1) {\n                        exit = true;\n                        break;\n                    }\n                }\n            } while ((count1 | count2) < _minGallop);\n            if (exit) {\n                break;\n            }\n            do {\n                count1 = gallopRight(array[cursor2], tmp, cursor1, length1, 0, compare);\n                if (count1 !== 0) {\n                    for (i = 0; i < count1; i++) {\n                        array[dest + i] = tmp[cursor1 + i];\n                    }\n                    dest += count1;\n                    cursor1 += count1;\n                    length1 -= count1;\n                    if (length1 <= 1) {\n                        exit = true;\n                        break;\n                    }\n                }\n                array[dest++] = array[cursor2++];\n                if (--length2 === 0) {\n                    exit = true;\n                    break;\n                }\n                count2 = gallopLeft(tmp[cursor1], array, cursor2, length2, 0, compare);\n                if (count2 !== 0) {\n                    for (i = 0; i < count2; i++) {\n                        array[dest + i] = array[cursor2 + i];\n                    }\n                    dest += count2;\n                    cursor2 += count2;\n                    length2 -= count2;\n                    if (length2 === 0) {\n                        exit = true;\n                        break;\n                    }\n                }\n                array[dest++] = tmp[cursor1++];\n                if (--length1 === 1) {\n                    exit = true;\n                    break;\n                }\n                _minGallop--;\n            } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\n            if (exit) {\n                break;\n            }\n            if (_minGallop < 0) {\n                _minGallop = 0;\n            }\n            _minGallop += 2;\n        }\n        minGallop = _minGallop;\n        minGallop < 1 && (minGallop = 1);\n        if (length1 === 1) {\n            for (i = 0; i < length2; i++) {\n                array[dest + i] = array[cursor2 + i];\n            }\n            array[dest + length2] = tmp[cursor1];\n        }\n        else if (length1 === 0) {\n            throw new Error();\n        }\n        else {\n            for (i = 0; i < length1; i++) {\n                array[dest + i] = tmp[cursor1 + i];\n            }\n        }\n    }\n    function mergeHigh(start1, length1, start2, length2) {\n        var i = 0;\n        for (i = 0; i < length2; i++) {\n            tmp[i] = array[start2 + i];\n        }\n        var cursor1 = start1 + length1 - 1;\n        var cursor2 = length2 - 1;\n        var dest = start2 + length2 - 1;\n        var customCursor = 0;\n        var customDest = 0;\n        array[dest--] = array[cursor1--];\n        if (--length1 === 0) {\n            customCursor = dest - (length2 - 1);\n            for (i = 0; i < length2; i++) {\n                array[customCursor + i] = tmp[i];\n            }\n            return;\n        }\n        if (length2 === 1) {\n            dest -= length1;\n            cursor1 -= length1;\n            customDest = dest + 1;\n            customCursor = cursor1 + 1;\n            for (i = length1 - 1; i >= 0; i--) {\n                array[customDest + i] = array[customCursor + i];\n            }\n            array[dest] = tmp[cursor2];\n            return;\n        }\n        var _minGallop = minGallop;\n        while (true) {\n            var count1 = 0;\n            var count2 = 0;\n            var exit = false;\n            do {\n                if (compare(tmp[cursor2], array[cursor1]) < 0) {\n                    array[dest--] = array[cursor1--];\n                    count1++;\n                    count2 = 0;\n                    if (--length1 === 0) {\n                        exit = true;\n                        break;\n                    }\n                }\n                else {\n                    array[dest--] = tmp[cursor2--];\n                    count2++;\n                    count1 = 0;\n                    if (--length2 === 1) {\n                        exit = true;\n                        break;\n                    }\n                }\n            } while ((count1 | count2) < _minGallop);\n            if (exit) {\n                break;\n            }\n            do {\n                count1 = length1 - gallopRight(tmp[cursor2], array, start1, length1, length1 - 1, compare);\n                if (count1 !== 0) {\n                    dest -= count1;\n                    cursor1 -= count1;\n                    length1 -= count1;\n                    customDest = dest + 1;\n                    customCursor = cursor1 + 1;\n                    for (i = count1 - 1; i >= 0; i--) {\n                        array[customDest + i] = array[customCursor + i];\n                    }\n                    if (length1 === 0) {\n                        exit = true;\n                        break;\n                    }\n                }\n                array[dest--] = tmp[cursor2--];\n                if (--length2 === 1) {\n                    exit = true;\n                    break;\n                }\n                count2 = length2 - gallopLeft(array[cursor1], tmp, 0, length2, length2 - 1, compare);\n                if (count2 !== 0) {\n                    dest -= count2;\n                    cursor2 -= count2;\n                    length2 -= count2;\n                    customDest = dest + 1;\n                    customCursor = cursor2 + 1;\n                    for (i = 0; i < count2; i++) {\n                        array[customDest + i] = tmp[customCursor + i];\n                    }\n                    if (length2 <= 1) {\n                        exit = true;\n                        break;\n                    }\n                }\n                array[dest--] = array[cursor1--];\n                if (--length1 === 0) {\n                    exit = true;\n                    break;\n                }\n                _minGallop--;\n            } while (count1 >= DEFAULT_MIN_GALLOPING || count2 >= DEFAULT_MIN_GALLOPING);\n            if (exit) {\n                break;\n            }\n            if (_minGallop < 0) {\n                _minGallop = 0;\n            }\n            _minGallop += 2;\n        }\n        minGallop = _minGallop;\n        if (minGallop < 1) {\n            minGallop = 1;\n        }\n        if (length2 === 1) {\n            dest -= length1;\n            cursor1 -= length1;\n            customDest = dest + 1;\n            customCursor = cursor1 + 1;\n            for (i = length1 - 1; i >= 0; i--) {\n                array[customDest + i] = array[customCursor + i];\n            }\n            array[dest] = tmp[cursor2];\n        }\n        else if (length2 === 0) {\n            throw new Error();\n        }\n        else {\n            customCursor = dest - (length2 - 1);\n            for (i = 0; i < length2; i++) {\n                array[customCursor + i] = tmp[i];\n            }\n        }\n    }\n    return {\n        mergeRuns: mergeRuns,\n        forceMergeRuns: forceMergeRuns,\n        pushRun: pushRun\n    };\n}\nexport default function sort(array, compare, lo, hi) {\n    if (!lo) {\n        lo = 0;\n    }\n    if (!hi) {\n        hi = array.length;\n    }\n    var remaining = hi - lo;\n    if (remaining < 2) {\n        return;\n    }\n    var runLength = 0;\n    if (remaining < DEFAULT_MIN_MERGE) {\n        runLength = makeAscendingRun(array, lo, hi, compare);\n        binaryInsertionSort(array, lo, hi, lo + runLength, compare);\n        return;\n    }\n    var ts = TimSort(array, compare);\n    var minRun = minRunLength(remaining);\n    do {\n        runLength = makeAscendingRun(array, lo, hi, compare);\n        if (runLength < minRun) {\n            var force = remaining;\n            if (force > minRun) {\n                force = minRun;\n            }\n            binaryInsertionSort(array, lo, lo + force, lo + runLength, compare);\n            runLength = force;\n        }\n        ts.pushRun(lo, runLength);\n        ts.mergeRuns();\n        remaining -= runLength;\n        lo += runLength;\n    } while (remaining !== 0);\n    ts.forceMergeRuns();\n}\n","import * as util from './core/util';\nimport env from './core/env';\nimport Element from './Element';\nimport timsort from './core/timsort';\nvar invalidZErrorLogged = false;\nfunction logInvalidZError() {\n    if (invalidZErrorLogged) {\n        return;\n    }\n    invalidZErrorLogged = true;\n    console.warn('z / z2 / zlevel of displayable is invalid, which may cause unexpected errors');\n}\nfunction shapeCompareFunc(a, b) {\n    if (a.zlevel === b.zlevel) {\n        if (a.z === b.z) {\n            return a.z2 - b.z2;\n        }\n        return a.z - b.z;\n    }\n    return a.zlevel - b.zlevel;\n}\nvar Storage = (function () {\n    function Storage() {\n        this._roots = [];\n        this._displayList = [];\n        this._displayListLen = 0;\n        this.displayableSortFunc = shapeCompareFunc;\n    }\n    Storage.prototype.traverse = function (cb, context) {\n        for (var i = 0; i < this._roots.length; i++) {\n            this._roots[i].traverse(cb, context);\n        }\n    };\n    Storage.prototype.getDisplayList = function (update, includeIgnore) {\n        includeIgnore = includeIgnore || false;\n        var displayList = this._displayList;\n        if (update || !displayList.length) {\n            this.updateDisplayList(includeIgnore);\n        }\n        return displayList;\n    };\n    Storage.prototype.updateDisplayList = function (includeIgnore) {\n        this._displayListLen = 0;\n        var roots = this._roots;\n        var displayList = this._displayList;\n        for (var i = 0, len = roots.length; i < len; i++) {\n            this._updateAndAddDisplayable(roots[i], null, includeIgnore);\n        }\n        displayList.length = this._displayListLen;\n        env.canvasSupported && timsort(displayList, shapeCompareFunc);\n    };\n    Storage.prototype._updateAndAddDisplayable = function (el, clipPaths, includeIgnore) {\n        if (el.ignore && !includeIgnore) {\n            return;\n        }\n        el.beforeUpdate();\n        el.update();\n        el.afterUpdate();\n        var userSetClipPath = el.getClipPath();\n        if (el.ignoreClip) {\n            clipPaths = null;\n        }\n        else if (userSetClipPath) {\n            if (clipPaths) {\n                clipPaths = clipPaths.slice();\n            }\n            else {\n                clipPaths = [];\n            }\n            var currentClipPath = userSetClipPath;\n            var parentClipPath = el;\n            while (currentClipPath) {\n                currentClipPath.parent = parentClipPath;\n                currentClipPath.updateTransform();\n                clipPaths.push(currentClipPath);\n                parentClipPath = currentClipPath;\n                currentClipPath = currentClipPath.getClipPath();\n            }\n        }\n        if (el.childrenRef) {\n            var children = el.childrenRef();\n            for (var i = 0; i < children.length; i++) {\n                var child = children[i];\n                if (el.__dirty) {\n                    child.__dirty |= Element.REDARAW_BIT;\n                }\n                this._updateAndAddDisplayable(child, clipPaths, includeIgnore);\n            }\n            el.__dirty = 0;\n        }\n        else {\n            var disp = el;\n            if (clipPaths && clipPaths.length) {\n                disp.__clipPaths = clipPaths;\n            }\n            else if (disp.__clipPaths && disp.__clipPaths.length > 0) {\n                disp.__clipPaths = [];\n            }\n            if (isNaN(disp.z)) {\n                logInvalidZError();\n                disp.z = 0;\n            }\n            if (isNaN(disp.z2)) {\n                logInvalidZError();\n                disp.z2 = 0;\n            }\n            if (isNaN(disp.zlevel)) {\n                logInvalidZError();\n                disp.zlevel = 0;\n            }\n            this._displayList[this._displayListLen++] = disp;\n        }\n        var decalEl = el.getDecalElement && el.getDecalElement();\n        if (decalEl) {\n            this._updateAndAddDisplayable(decalEl, clipPaths, includeIgnore);\n        }\n        var textGuide = el.getTextGuideLine();\n        if (textGuide) {\n            this._updateAndAddDisplayable(textGuide, clipPaths, includeIgnore);\n        }\n        var textEl = el.getTextContent();\n        if (textEl) {\n            this._updateAndAddDisplayable(textEl, clipPaths, includeIgnore);\n        }\n    };\n    Storage.prototype.addRoot = function (el) {\n        if (el.__zr && el.__zr.storage === this) {\n            return;\n        }\n        this._roots.push(el);\n    };\n    Storage.prototype.delRoot = function (el) {\n        if (el instanceof Array) {\n            for (var i = 0, l = el.length; i < l; i++) {\n                this.delRoot(el[i]);\n            }\n            return;\n        }\n        var idx = util.indexOf(this._roots, el);\n        if (idx >= 0) {\n            this._roots.splice(idx, 1);\n        }\n    };\n    Storage.prototype.delAllRoots = function () {\n        this._roots = [];\n        this._displayList = [];\n        this._displayListLen = 0;\n        return;\n    };\n    Storage.prototype.getRoots = function () {\n        return this._roots;\n    };\n    Storage.prototype.dispose = function () {\n        this._displayList = null;\n        this._roots = null;\n    };\n    return Storage;\n}());\nexport default Storage;\n","var requestAnimationFrame;\nrequestAnimationFrame = (typeof window !== 'undefined'\n    && ((window.requestAnimationFrame && window.requestAnimationFrame.bind(window))\n        || (window.msRequestAnimationFrame && window.msRequestAnimationFrame.bind(window))\n        || window.mozRequestAnimationFrame\n        || window.webkitRequestAnimationFrame)) || function (func) {\n    return setTimeout(func, 16);\n};\nexport default requestAnimationFrame;\n","import { __extends } from \"tslib\";\nimport Eventful from '../core/Eventful';\nimport requestAnimationFrame from './requestAnimationFrame';\nimport Animator from './Animator';\nvar Animation = (function (_super) {\n    __extends(Animation, _super);\n    function Animation(opts) {\n        var _this = _super.call(this) || this;\n        _this._running = false;\n        _this._time = 0;\n        _this._pausedTime = 0;\n        _this._pauseStart = 0;\n        _this._paused = false;\n        opts = opts || {};\n        _this.stage = opts.stage || {};\n        _this.onframe = opts.onframe || function () { };\n        return _this;\n    }\n    Animation.prototype.addClip = function (clip) {\n        if (clip.animation) {\n            this.removeClip(clip);\n        }\n        if (!this._clipsHead) {\n            this._clipsHead = this._clipsTail = clip;\n        }\n        else {\n            this._clipsTail.next = clip;\n            clip.prev = this._clipsTail;\n            clip.next = null;\n            this._clipsTail = clip;\n        }\n        clip.animation = this;\n    };\n    Animation.prototype.addAnimator = function (animator) {\n        animator.animation = this;\n        var clip = animator.getClip();\n        if (clip) {\n            this.addClip(clip);\n        }\n    };\n    Animation.prototype.removeClip = function (clip) {\n        if (!clip.animation) {\n            return;\n        }\n        var prev = clip.prev;\n        var next = clip.next;\n        if (prev) {\n            prev.next = next;\n        }\n        else {\n            this._clipsHead = next;\n        }\n        if (next) {\n            next.prev = prev;\n        }\n        else {\n            this._clipsTail = prev;\n        }\n        clip.next = clip.prev = clip.animation = null;\n    };\n    Animation.prototype.removeAnimator = function (animator) {\n        var clip = animator.getClip();\n        if (clip) {\n            this.removeClip(clip);\n        }\n        animator.animation = null;\n    };\n    Animation.prototype.update = function (notTriggerFrameAndStageUpdate) {\n        var time = new Date().getTime() - this._pausedTime;\n        var delta = time - this._time;\n        var clip = this._clipsHead;\n        while (clip) {\n            var nextClip = clip.next;\n            var finished = clip.step(time, delta);\n            if (finished) {\n                clip.ondestroy && clip.ondestroy();\n                this.removeClip(clip);\n                clip = nextClip;\n            }\n            else {\n                clip = nextClip;\n            }\n        }\n        this._time = time;\n        if (!notTriggerFrameAndStageUpdate) {\n            this.onframe(delta);\n            this.trigger('frame', delta);\n            this.stage.update && this.stage.update();\n        }\n    };\n    Animation.prototype._startLoop = function () {\n        var self = this;\n        this._running = true;\n        function step() {\n            if (self._running) {\n                requestAnimationFrame(step);\n                !self._paused && self.update();\n            }\n        }\n        requestAnimationFrame(step);\n    };\n    Animation.prototype.start = function () {\n        if (this._running) {\n            return;\n        }\n        this._time = new Date().getTime();\n        this._pausedTime = 0;\n        this._startLoop();\n    };\n    Animation.prototype.stop = function () {\n        this._running = false;\n    };\n    Animation.prototype.pause = function () {\n        if (!this._paused) {\n            this._pauseStart = new Date().getTime();\n            this._paused = true;\n        }\n    };\n    Animation.prototype.resume = function () {\n        if (this._paused) {\n            this._pausedTime += (new Date().getTime()) - this._pauseStart;\n            this._paused = false;\n        }\n    };\n    Animation.prototype.clear = function () {\n        var clip = this._clipsHead;\n        while (clip) {\n            var nextClip = clip.next;\n            clip.prev = clip.next = clip.animation = null;\n            clip = nextClip;\n        }\n        this._clipsHead = this._clipsTail = null;\n    };\n    Animation.prototype.isFinished = function () {\n        return this._clipsHead == null;\n    };\n    Animation.prototype.animate = function (target, options) {\n        options = options || {};\n        this.start();\n        var animator = new Animator(target, options.loop);\n        this.addAnimator(animator);\n        return animator;\n    };\n    return Animation;\n}(Eventful));\nexport default Animation;\n","import { __extends } from \"tslib\";\nimport { addEventListener, removeEventListener, normalizeEvent, getNativeEvent } from '../core/event';\nimport * as zrUtil from '../core/util';\nimport Eventful from '../core/Eventful';\nimport env from '../core/env';\nvar TOUCH_CLICK_DELAY = 300;\nvar globalEventSupported = env.domSupported;\nvar localNativeListenerNames = (function () {\n    var mouseHandlerNames = [\n        'click', 'dblclick', 'mousewheel', 'wheel', 'mouseout',\n        'mouseup', 'mousedown', 'mousemove', 'contextmenu'\n    ];\n    var touchHandlerNames = [\n        'touchstart', 'touchend', 'touchmove'\n    ];\n    var pointerEventNameMap = {\n        pointerdown: 1, pointerup: 1, pointermove: 1, pointerout: 1\n    };\n    var pointerHandlerNames = zrUtil.map(mouseHandlerNames, function (name) {\n        var nm = name.replace('mouse', 'pointer');\n        return pointerEventNameMap.hasOwnProperty(nm) ? nm : name;\n    });\n    return {\n        mouse: mouseHandlerNames,\n        touch: touchHandlerNames,\n        pointer: pointerHandlerNames\n    };\n})();\nvar globalNativeListenerNames = {\n    mouse: ['mousemove', 'mouseup'],\n    pointer: ['pointermove', 'pointerup']\n};\nvar wheelEventSupported = false;\nfunction isPointerFromTouch(event) {\n    var pointerType = event.pointerType;\n    return pointerType === 'pen' || pointerType === 'touch';\n}\nfunction setTouchTimer(scope) {\n    scope.touching = true;\n    if (scope.touchTimer != null) {\n        clearTimeout(scope.touchTimer);\n        scope.touchTimer = null;\n    }\n    scope.touchTimer = setTimeout(function () {\n        scope.touching = false;\n        scope.touchTimer = null;\n    }, 700);\n}\nfunction markTouch(event) {\n    event && (event.zrByTouch = true);\n}\nfunction normalizeGlobalEvent(instance, event) {\n    return normalizeEvent(instance.dom, new FakeGlobalEvent(instance, event), true);\n}\nfunction isLocalEl(instance, el) {\n    var elTmp = el;\n    var isLocal = false;\n    while (elTmp && elTmp.nodeType !== 9\n        && !(isLocal = elTmp.domBelongToZr\n            || (elTmp !== el && elTmp === instance.painterRoot))) {\n        elTmp = elTmp.parentNode;\n    }\n    return isLocal;\n}\nvar FakeGlobalEvent = (function () {\n    function FakeGlobalEvent(instance, event) {\n        this.stopPropagation = zrUtil.noop;\n        this.stopImmediatePropagation = zrUtil.noop;\n        this.preventDefault = zrUtil.noop;\n        this.type = event.type;\n        this.target = this.currentTarget = instance.dom;\n        this.pointerType = event.pointerType;\n        this.clientX = event.clientX;\n        this.clientY = event.clientY;\n    }\n    return FakeGlobalEvent;\n}());\nvar localDOMHandlers = {\n    mousedown: function (event) {\n        event = normalizeEvent(this.dom, event);\n        this.__mayPointerCapture = [event.zrX, event.zrY];\n        this.trigger('mousedown', event);\n    },\n    mousemove: function (event) {\n        event = normalizeEvent(this.dom, event);\n        var downPoint = this.__mayPointerCapture;\n        if (downPoint && (event.zrX !== downPoint[0] || event.zrY !== downPoint[1])) {\n            this.__togglePointerCapture(true);\n        }\n        this.trigger('mousemove', event);\n    },\n    mouseup: function (event) {\n        event = normalizeEvent(this.dom, event);\n        this.__togglePointerCapture(false);\n        this.trigger('mouseup', event);\n    },\n    mouseout: function (event) {\n        event = normalizeEvent(this.dom, event);\n        var element = event.toElement || event.relatedTarget;\n        if (!isLocalEl(this, element)) {\n            if (this.__pointerCapturing) {\n                event.zrEventControl = 'no_globalout';\n            }\n            this.trigger('mouseout', event);\n        }\n    },\n    wheel: function (event) {\n        wheelEventSupported = true;\n        event = normalizeEvent(this.dom, event);\n        this.trigger('mousewheel', event);\n    },\n    mousewheel: function (event) {\n        if (wheelEventSupported) {\n            return;\n        }\n        event = normalizeEvent(this.dom, event);\n        this.trigger('mousewheel', event);\n    },\n    touchstart: function (event) {\n        event = normalizeEvent(this.dom, event);\n        markTouch(event);\n        this.__lastTouchMoment = new Date();\n        this.handler.processGesture(event, 'start');\n        localDOMHandlers.mousemove.call(this, event);\n        localDOMHandlers.mousedown.call(this, event);\n    },\n    touchmove: function (event) {\n        event = normalizeEvent(this.dom, event);\n        markTouch(event);\n        this.handler.processGesture(event, 'change');\n        localDOMHandlers.mousemove.call(this, event);\n    },\n    touchend: function (event) {\n        event = normalizeEvent(this.dom, event);\n        markTouch(event);\n        this.handler.processGesture(event, 'end');\n        localDOMHandlers.mouseup.call(this, event);\n        if (+new Date() - (+this.__lastTouchMoment) < TOUCH_CLICK_DELAY) {\n            localDOMHandlers.click.call(this, event);\n        }\n    },\n    pointerdown: function (event) {\n        localDOMHandlers.mousedown.call(this, event);\n    },\n    pointermove: function (event) {\n        if (!isPointerFromTouch(event)) {\n            localDOMHandlers.mousemove.call(this, event);\n        }\n    },\n    pointerup: function (event) {\n        localDOMHandlers.mouseup.call(this, event);\n    },\n    pointerout: function (event) {\n        if (!isPointerFromTouch(event)) {\n            localDOMHandlers.mouseout.call(this, event);\n        }\n    }\n};\nzrUtil.each(['click', 'dblclick', 'contextmenu'], function (name) {\n    localDOMHandlers[name] = function (event) {\n        event = normalizeEvent(this.dom, event);\n        this.trigger(name, event);\n    };\n});\nvar globalDOMHandlers = {\n    pointermove: function (event) {\n        if (!isPointerFromTouch(event)) {\n            globalDOMHandlers.mousemove.call(this, event);\n        }\n    },\n    pointerup: function (event) {\n        globalDOMHandlers.mouseup.call(this, event);\n    },\n    mousemove: function (event) {\n        this.trigger('mousemove', event);\n    },\n    mouseup: function (event) {\n        var pointerCaptureReleasing = this.__pointerCapturing;\n        this.__togglePointerCapture(false);\n        this.trigger('mouseup', event);\n        if (pointerCaptureReleasing) {\n            event.zrEventControl = 'only_globalout';\n            this.trigger('mouseout', event);\n        }\n    }\n};\nfunction mountLocalDOMEventListeners(instance, scope) {\n    var domHandlers = scope.domHandlers;\n    if (env.pointerEventsSupported) {\n        zrUtil.each(localNativeListenerNames.pointer, function (nativeEventName) {\n            mountSingleDOMEventListener(scope, nativeEventName, function (event) {\n                domHandlers[nativeEventName].call(instance, event);\n            });\n        });\n    }\n    else {\n        if (env.touchEventsSupported) {\n            zrUtil.each(localNativeListenerNames.touch, function (nativeEventName) {\n                mountSingleDOMEventListener(scope, nativeEventName, function (event) {\n                    domHandlers[nativeEventName].call(instance, event);\n                    setTouchTimer(scope);\n                });\n            });\n        }\n        zrUtil.each(localNativeListenerNames.mouse, function (nativeEventName) {\n            mountSingleDOMEventListener(scope, nativeEventName, function (event) {\n                event = getNativeEvent(event);\n                if (!scope.touching) {\n                    domHandlers[nativeEventName].call(instance, event);\n                }\n            });\n        });\n    }\n}\nfunction mountGlobalDOMEventListeners(instance, scope) {\n    if (env.pointerEventsSupported) {\n        zrUtil.each(globalNativeListenerNames.pointer, mount);\n    }\n    else if (!env.touchEventsSupported) {\n        zrUtil.each(globalNativeListenerNames.mouse, mount);\n    }\n    function mount(nativeEventName) {\n        function nativeEventListener(event) {\n            event = getNativeEvent(event);\n            if (!isLocalEl(instance, event.target)) {\n                event = normalizeGlobalEvent(instance, event);\n                scope.domHandlers[nativeEventName].call(instance, event);\n            }\n        }\n        mountSingleDOMEventListener(scope, nativeEventName, nativeEventListener, { capture: true });\n    }\n}\nfunction mountSingleDOMEventListener(scope, nativeEventName, listener, opt) {\n    scope.mounted[nativeEventName] = listener;\n    scope.listenerOpts[nativeEventName] = opt;\n    addEventListener(scope.domTarget, nativeEventName, listener, opt);\n}\nfunction unmountDOMEventListeners(scope) {\n    var mounted = scope.mounted;\n    for (var nativeEventName in mounted) {\n        if (mounted.hasOwnProperty(nativeEventName)) {\n            removeEventListener(scope.domTarget, nativeEventName, mounted[nativeEventName], scope.listenerOpts[nativeEventName]);\n        }\n    }\n    scope.mounted = {};\n}\nvar DOMHandlerScope = (function () {\n    function DOMHandlerScope(domTarget, domHandlers) {\n        this.mounted = {};\n        this.listenerOpts = {};\n        this.touching = false;\n        this.domTarget = domTarget;\n        this.domHandlers = domHandlers;\n    }\n    return DOMHandlerScope;\n}());\nvar HandlerDomProxy = (function (_super) {\n    __extends(HandlerDomProxy, _super);\n    function HandlerDomProxy(dom, painterRoot) {\n        var _this = _super.call(this) || this;\n        _this.__pointerCapturing = false;\n        _this.dom = dom;\n        _this.painterRoot = painterRoot;\n        _this._localHandlerScope = new DOMHandlerScope(dom, localDOMHandlers);\n        if (globalEventSupported) {\n            _this._globalHandlerScope = new DOMHandlerScope(document, globalDOMHandlers);\n        }\n        mountLocalDOMEventListeners(_this, _this._localHandlerScope);\n        return _this;\n    }\n    HandlerDomProxy.prototype.dispose = function () {\n        unmountDOMEventListeners(this._localHandlerScope);\n        if (globalEventSupported) {\n            unmountDOMEventListeners(this._globalHandlerScope);\n        }\n    };\n    HandlerDomProxy.prototype.setCursor = function (cursorStyle) {\n        this.dom.style && (this.dom.style.cursor = cursorStyle || 'default');\n    };\n    HandlerDomProxy.prototype.__togglePointerCapture = function (isPointerCapturing) {\n        this.__mayPointerCapture = null;\n        if (globalEventSupported\n            && ((+this.__pointerCapturing) ^ (+isPointerCapturing))) {\n            this.__pointerCapturing = isPointerCapturing;\n            var globalHandlerScope = this._globalHandlerScope;\n            isPointerCapturing\n                ? mountGlobalDOMEventListeners(this, globalHandlerScope)\n                : unmountDOMEventListeners(globalHandlerScope);\n        }\n    };\n    return HandlerDomProxy;\n}(Eventful));\nexport default HandlerDomProxy;\n","import { __extends } from \"tslib\";\nimport * as zrUtil from '../core/util';\nimport Element from '../Element';\nimport BoundingRect from '../core/BoundingRect';\nvar Group = (function (_super) {\n    __extends(Group, _super);\n    function Group(opts) {\n        var _this = _super.call(this) || this;\n        _this.isGroup = true;\n        _this._children = [];\n        _this.attr(opts);\n        return _this;\n    }\n    Group.prototype.childrenRef = function () {\n        return this._children;\n    };\n    Group.prototype.children = function () {\n        return this._children.slice();\n    };\n    Group.prototype.childAt = function (idx) {\n        return this._children[idx];\n    };\n    Group.prototype.childOfName = function (name) {\n        var children = this._children;\n        for (var i = 0; i < children.length; i++) {\n            if (children[i].name === name) {\n                return children[i];\n            }\n        }\n    };\n    Group.prototype.childCount = function () {\n        return this._children.length;\n    };\n    Group.prototype.add = function (child) {\n        if (child) {\n            if (child !== this && child.parent !== this) {\n                this._children.push(child);\n                this._doAdd(child);\n            }\n            if (child.__hostTarget) {\n                throw 'This elemenet has been used as an attachment';\n            }\n        }\n        return this;\n    };\n    Group.prototype.addBefore = function (child, nextSibling) {\n        if (child && child !== this && child.parent !== this\n            && nextSibling && nextSibling.parent === this) {\n            var children = this._children;\n            var idx = children.indexOf(nextSibling);\n            if (idx >= 0) {\n                children.splice(idx, 0, child);\n                this._doAdd(child);\n            }\n        }\n        return this;\n    };\n    Group.prototype.replaceAt = function (child, index) {\n        var children = this._children;\n        var old = children[index];\n        if (child && child !== this && child.parent !== this && child !== old) {\n            children[index] = child;\n            old.parent = null;\n            var zr = this.__zr;\n            if (zr) {\n                old.removeSelfFromZr(zr);\n            }\n            this._doAdd(child);\n        }\n        return this;\n    };\n    Group.prototype._doAdd = function (child) {\n        if (child.parent) {\n            child.parent.remove(child);\n        }\n        child.parent = this;\n        var zr = this.__zr;\n        if (zr && zr !== child.__zr) {\n            child.addSelfToZr(zr);\n        }\n        zr && zr.refresh();\n    };\n    Group.prototype.remove = function (child) {\n        var zr = this.__zr;\n        var children = this._children;\n        var idx = zrUtil.indexOf(children, child);\n        if (idx < 0) {\n            return this;\n        }\n        children.splice(idx, 1);\n        child.parent = null;\n        if (zr) {\n            child.removeSelfFromZr(zr);\n        }\n        zr && zr.refresh();\n        return this;\n    };\n    Group.prototype.removeAll = function () {\n        var children = this._children;\n        var zr = this.__zr;\n        for (var i = 0; i < children.length; i++) {\n            var child = children[i];\n            if (zr) {\n                child.removeSelfFromZr(zr);\n            }\n            child.parent = null;\n        }\n        children.length = 0;\n        return this;\n    };\n    Group.prototype.eachChild = function (cb, context) {\n        var children = this._children;\n        for (var i = 0; i < children.length; i++) {\n            var child = children[i];\n            cb.call(context, child, i);\n        }\n        return this;\n    };\n    Group.prototype.traverse = function (cb, context) {\n        for (var i = 0; i < this._children.length; i++) {\n            var child = this._children[i];\n            var stopped = cb.call(context, child);\n            if (child.isGroup && !stopped) {\n                child.traverse(cb, context);\n            }\n        }\n        return this;\n    };\n    Group.prototype.addSelfToZr = function (zr) {\n        _super.prototype.addSelfToZr.call(this, zr);\n        for (var i = 0; i < this._children.length; i++) {\n            var child = this._children[i];\n            child.addSelfToZr(zr);\n        }\n    };\n    Group.prototype.removeSelfFromZr = function (zr) {\n        _super.prototype.removeSelfFromZr.call(this, zr);\n        for (var i = 0; i < this._children.length; i++) {\n            var child = this._children[i];\n            child.removeSelfFromZr(zr);\n        }\n    };\n    Group.prototype.getBoundingRect = function (includeChildren) {\n        var tmpRect = new BoundingRect(0, 0, 0, 0);\n        var children = includeChildren || this._children;\n        var tmpMat = [];\n        var rect = null;\n        for (var i = 0; i < children.length; i++) {\n            var child = children[i];\n            if (child.ignore || child.invisible) {\n                continue;\n            }\n            var childRect = child.getBoundingRect();\n            var transform = child.getLocalTransform(tmpMat);\n            if (transform) {\n                BoundingRect.applyTransform(tmpRect, childRect, transform);\n                rect = rect || tmpRect.clone();\n                rect.union(tmpRect);\n            }\n            else {\n                rect = rect || childRect.clone();\n                rect.union(childRect);\n            }\n        }\n        return rect || tmpRect;\n    };\n    return Group;\n}(Element));\nGroup.prototype.type = 'group';\nexport default Group;\n","/*!\n* ZRender, a high performance 2d drawing library.\n*\n* Copyright (c) 2013, Baidu Inc.\n* All rights reserved.\n*\n* LICENSE\n* https://github.com/ecomfe/zrender/blob/master/LICENSE.txt\n*/\nimport env from './core/env';\nimport * as zrUtil from './core/util';\nimport Handler from './Handler';\nimport Storage from './Storage';\nimport Animation from './animation/Animation';\nimport HandlerProxy from './dom/HandlerProxy';\nimport { lum } from './tool/color';\nimport { DARK_MODE_THRESHOLD } from './config';\nimport Group from './graphic/Group';\nvar useVML = !env.canvasSupported;\nvar painterCtors = {};\nvar instances = {};\nfunction delInstance(id) {\n    delete instances[id];\n}\nfunction isDarkMode(backgroundColor) {\n    if (!backgroundColor) {\n        return false;\n    }\n    if (typeof backgroundColor === 'string') {\n        return lum(backgroundColor, 1) < DARK_MODE_THRESHOLD;\n    }\n    else if (backgroundColor.colorStops) {\n        var colorStops = backgroundColor.colorStops;\n        var totalLum = 0;\n        var len = colorStops.length;\n        for (var i = 0; i < len; i++) {\n            totalLum += lum(colorStops[i].color, 1);\n        }\n        totalLum /= len;\n        return totalLum < DARK_MODE_THRESHOLD;\n    }\n    return false;\n}\nvar ZRender = (function () {\n    function ZRender(id, dom, opts) {\n        var _this = this;\n        this._sleepAfterStill = 10;\n        this._stillFrameAccum = 0;\n        this._needsRefresh = true;\n        this._needsRefreshHover = true;\n        this._darkMode = false;\n        opts = opts || {};\n        this.dom = dom;\n        this.id = id;\n        var storage = new Storage();\n        var rendererType = opts.renderer || 'canvas';\n        if (useVML) {\n            throw new Error('IE8 support has been dropped since 5.0');\n        }\n        if (!painterCtors[rendererType]) {\n            rendererType = zrUtil.keys(painterCtors)[0];\n        }\n        if (!painterCtors[rendererType]) {\n            throw new Error(\"Renderer '\" + rendererType + \"' is not imported. Please import it first.\");\n        }\n        opts.useDirtyRect = opts.useDirtyRect == null\n            ? false\n            : opts.useDirtyRect;\n        var painter = new painterCtors[rendererType](dom, storage, opts, id);\n        this.storage = storage;\n        this.painter = painter;\n        var handerProxy = (!env.node && !env.worker)\n            ? new HandlerProxy(painter.getViewportRoot(), painter.root)\n            : null;\n        this.handler = new Handler(storage, painter, handerProxy, painter.root);\n        this.animation = new Animation({\n            stage: {\n                update: function () { return _this._flush(true); }\n            }\n        });\n        this.animation.start();\n    }\n    ZRender.prototype.add = function (el) {\n        if (!el) {\n            return;\n        }\n        this.storage.addRoot(el);\n        el.addSelfToZr(this);\n        this.refresh();\n    };\n    ZRender.prototype.remove = function (el) {\n        if (!el) {\n            return;\n        }\n        this.storage.delRoot(el);\n        el.removeSelfFromZr(this);\n        this.refresh();\n    };\n    ZRender.prototype.configLayer = function (zLevel, config) {\n        if (this.painter.configLayer) {\n            this.painter.configLayer(zLevel, config);\n        }\n        this.refresh();\n    };\n    ZRender.prototype.setBackgroundColor = function (backgroundColor) {\n        if (this.painter.setBackgroundColor) {\n            this.painter.setBackgroundColor(backgroundColor);\n        }\n        this.refresh();\n        this._backgroundColor = backgroundColor;\n        this._darkMode = isDarkMode(backgroundColor);\n    };\n    ZRender.prototype.getBackgroundColor = function () {\n        return this._backgroundColor;\n    };\n    ZRender.prototype.setDarkMode = function (darkMode) {\n        this._darkMode = darkMode;\n    };\n    ZRender.prototype.isDarkMode = function () {\n        return this._darkMode;\n    };\n    ZRender.prototype.refreshImmediately = function (fromInside) {\n        if (!fromInside) {\n            this.animation.update(true);\n        }\n        this._needsRefresh = false;\n        this.painter.refresh();\n        this._needsRefresh = false;\n    };\n    ZRender.prototype.refresh = function () {\n        this._needsRefresh = true;\n        this.animation.start();\n    };\n    ZRender.prototype.flush = function () {\n        this._flush(false);\n    };\n    ZRender.prototype._flush = function (fromInside) {\n        var triggerRendered;\n        var start = new Date().getTime();\n        if (this._needsRefresh) {\n            triggerRendered = true;\n            this.refreshImmediately(fromInside);\n        }\n        if (this._needsRefreshHover) {\n            triggerRendered = true;\n            this.refreshHoverImmediately();\n        }\n        var end = new Date().getTime();\n        if (triggerRendered) {\n            this._stillFrameAccum = 0;\n            this.trigger('rendered', {\n                elapsedTime: end - start\n            });\n        }\n        else if (this._sleepAfterStill > 0) {\n            this._stillFrameAccum++;\n            if (this._stillFrameAccum > this._sleepAfterStill) {\n                this.animation.stop();\n            }\n        }\n    };\n    ZRender.prototype.setSleepAfterStill = function (stillFramesCount) {\n        this._sleepAfterStill = stillFramesCount;\n    };\n    ZRender.prototype.wakeUp = function () {\n        this.animation.start();\n        this._stillFrameAccum = 0;\n    };\n    ZRender.prototype.addHover = function (el) {\n    };\n    ZRender.prototype.removeHover = function (el) {\n    };\n    ZRender.prototype.clearHover = function () {\n    };\n    ZRender.prototype.refreshHover = function () {\n        this._needsRefreshHover = true;\n    };\n    ZRender.prototype.refreshHoverImmediately = function () {\n        this._needsRefreshHover = false;\n        if (this.painter.refreshHover && this.painter.getType() === 'canvas') {\n            this.painter.refreshHover();\n        }\n    };\n    ZRender.prototype.resize = function (opts) {\n        opts = opts || {};\n        this.painter.resize(opts.width, opts.height);\n        this.handler.resize();\n    };\n    ZRender.prototype.clearAnimation = function () {\n        this.animation.clear();\n    };\n    ZRender.prototype.getWidth = function () {\n        return this.painter.getWidth();\n    };\n    ZRender.prototype.getHeight = function () {\n        return this.painter.getHeight();\n    };\n    ZRender.prototype.pathToImage = function (e, dpr) {\n        if (this.painter.pathToImage) {\n            return this.painter.pathToImage(e, dpr);\n        }\n    };\n    ZRender.prototype.setCursorStyle = function (cursorStyle) {\n        this.handler.setCursorStyle(cursorStyle);\n    };\n    ZRender.prototype.findHover = function (x, y) {\n        return this.handler.findHover(x, y);\n    };\n    ZRender.prototype.on = function (eventName, eventHandler, context) {\n        this.handler.on(eventName, eventHandler, context);\n        return this;\n    };\n    ZRender.prototype.off = function (eventName, eventHandler) {\n        this.handler.off(eventName, eventHandler);\n    };\n    ZRender.prototype.trigger = function (eventName, event) {\n        this.handler.trigger(eventName, event);\n    };\n    ZRender.prototype.clear = function () {\n        var roots = this.storage.getRoots();\n        for (var i = 0; i < roots.length; i++) {\n            if (roots[i] instanceof Group) {\n                roots[i].removeSelfFromZr(this);\n            }\n        }\n        this.storage.delAllRoots();\n        this.painter.clear();\n    };\n    ZRender.prototype.dispose = function () {\n        this.animation.stop();\n        this.clear();\n        this.storage.dispose();\n        this.painter.dispose();\n        this.handler.dispose();\n        this.animation =\n            this.storage =\n                this.painter =\n                    this.handler = null;\n        delInstance(this.id);\n    };\n    return ZRender;\n}());\nexport function init(dom, opts) {\n    var zr = new ZRender(zrUtil.guid(), dom, opts);\n    instances[zr.id] = zr;\n    return zr;\n}\nexport function dispose(zr) {\n    zr.dispose();\n}\nexport function disposeAll() {\n    for (var key in instances) {\n        if (instances.hasOwnProperty(key)) {\n            instances[key].dispose();\n        }\n    }\n    instances = {};\n}\nexport function getInstance(id) {\n    return instances[id];\n}\nexport function registerPainter(name, Ctor) {\n    painterCtors[name] = Ctor;\n}\nexport var version = '5.0.3';\n;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar RADIAN_EPSILON = 1e-4;\n\nfunction _trim(str) {\n  return str.replace(/^\\s+|\\s+$/g, '');\n}\n\nexport function linearMap(val, domain, range, clamp) {\n  var subDomain = domain[1] - domain[0];\n  var subRange = range[1] - range[0];\n\n  if (subDomain === 0) {\n    return subRange === 0 ? range[0] : (range[0] + range[1]) / 2;\n  }\n\n  if (clamp) {\n    if (subDomain > 0) {\n      if (val <= domain[0]) {\n        return range[0];\n      } else if (val >= domain[1]) {\n        return range[1];\n      }\n    } else {\n      if (val >= domain[0]) {\n        return range[0];\n      } else if (val <= domain[1]) {\n        return range[1];\n      }\n    }\n  } else {\n    if (val === domain[0]) {\n      return range[0];\n    }\n\n    if (val === domain[1]) {\n      return range[1];\n    }\n  }\n\n  return (val - domain[0]) / subDomain * subRange + range[0];\n}\nexport function parsePercent(percent, all) {\n  switch (percent) {\n    case 'center':\n    case 'middle':\n      percent = '50%';\n      break;\n\n    case 'left':\n    case 'top':\n      percent = '0%';\n      break;\n\n    case 'right':\n    case 'bottom':\n      percent = '100%';\n      break;\n  }\n\n  if (typeof percent === 'string') {\n    if (_trim(percent).match(/%$/)) {\n      return parseFloat(percent) / 100 * all;\n    }\n\n    return parseFloat(percent);\n  }\n\n  return percent == null ? NaN : +percent;\n}\nexport function round(x, precision, returnStr) {\n  if (precision == null) {\n    precision = 10;\n  }\n\n  precision = Math.min(Math.max(0, precision), 20);\n  x = (+x).toFixed(precision);\n  return returnStr ? x : +x;\n}\nexport function asc(arr) {\n  arr.sort(function (a, b) {\n    return a - b;\n  });\n  return arr;\n}\nexport function getPrecision(val) {\n  val = +val;\n\n  if (isNaN(val)) {\n    return 0;\n  }\n\n  var e = 1;\n  var count = 0;\n\n  while (Math.round(val * e) / e !== val) {\n    e *= 10;\n    count++;\n  }\n\n  return count;\n}\nexport function getPrecisionSafe(val) {\n  var str = val.toString();\n  var eIndex = str.indexOf('e');\n\n  if (eIndex > 0) {\n    var precision = +str.slice(eIndex + 1);\n    return precision < 0 ? -precision : 0;\n  } else {\n    var dotIndex = str.indexOf('.');\n    return dotIndex < 0 ? 0 : str.length - 1 - dotIndex;\n  }\n}\nexport function getPixelPrecision(dataExtent, pixelExtent) {\n  var log = Math.log;\n  var LN10 = Math.LN10;\n  var dataQuantity = Math.floor(log(dataExtent[1] - dataExtent[0]) / LN10);\n  var sizeQuantity = Math.round(log(Math.abs(pixelExtent[1] - pixelExtent[0])) / LN10);\n  var precision = Math.min(Math.max(-dataQuantity + sizeQuantity, 0), 20);\n  return !isFinite(precision) ? 20 : precision;\n}\nexport function getPercentWithPrecision(valueList, idx, precision) {\n  if (!valueList[idx]) {\n    return 0;\n  }\n\n  var sum = zrUtil.reduce(valueList, function (acc, val) {\n    return acc + (isNaN(val) ? 0 : val);\n  }, 0);\n\n  if (sum === 0) {\n    return 0;\n  }\n\n  var digits = Math.pow(10, precision);\n  var votesPerQuota = zrUtil.map(valueList, function (val) {\n    return (isNaN(val) ? 0 : val) / sum * digits * 100;\n  });\n  var targetSeats = digits * 100;\n  var seats = zrUtil.map(votesPerQuota, function (votes) {\n    return Math.floor(votes);\n  });\n  var currentSum = zrUtil.reduce(seats, function (acc, val) {\n    return acc + val;\n  }, 0);\n  var remainder = zrUtil.map(votesPerQuota, function (votes, idx) {\n    return votes - seats[idx];\n  });\n\n  while (currentSum < targetSeats) {\n    var max = Number.NEGATIVE_INFINITY;\n    var maxId = null;\n\n    for (var i = 0, len = remainder.length; i < len; ++i) {\n      if (remainder[i] > max) {\n        max = remainder[i];\n        maxId = i;\n      }\n    }\n\n    ++seats[maxId];\n    remainder[maxId] = 0;\n    ++currentSum;\n  }\n\n  return seats[idx] / digits;\n}\nexport var MAX_SAFE_INTEGER = 9007199254740991;\nexport function remRadian(radian) {\n  var pi2 = Math.PI * 2;\n  return (radian % pi2 + pi2) % pi2;\n}\nexport function isRadianAroundZero(val) {\n  return val > -RADIAN_EPSILON && val < RADIAN_EPSILON;\n}\nvar 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)?)?)?)?)?$/;\nexport function parseDate(value) {\n  if (value instanceof Date) {\n    return value;\n  } else if (typeof value === 'string') {\n    var match = TIME_REG.exec(value);\n\n    if (!match) {\n      return new Date(NaN);\n    }\n\n    if (!match[8]) {\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);\n    } else {\n      var hour = +match[4] || 0;\n\n      if (match[8].toUpperCase() !== 'Z') {\n        hour -= +match[8].slice(0, 3);\n      }\n\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));\n    }\n  } else if (value == null) {\n    return new Date(NaN);\n  }\n\n  return new Date(Math.round(value));\n}\nexport function quantity(val) {\n  return Math.pow(10, quantityExponent(val));\n}\nexport function quantityExponent(val) {\n  if (val === 0) {\n    return 0;\n  }\n\n  var exp = Math.floor(Math.log(val) / Math.LN10);\n\n  if (val / Math.pow(10, exp) >= 10) {\n    exp++;\n  }\n\n  return exp;\n}\nexport function nice(val, round) {\n  var exponent = quantityExponent(val);\n  var exp10 = Math.pow(10, exponent);\n  var f = val / exp10;\n  var nf;\n\n  if (round) {\n    if (f < 1.5) {\n      nf = 1;\n    } else if (f < 2.5) {\n      nf = 2;\n    } else if (f < 4) {\n      nf = 3;\n    } else if (f < 7) {\n      nf = 5;\n    } else {\n      nf = 10;\n    }\n  } else {\n    if (f < 1) {\n      nf = 1;\n    } else if (f < 2) {\n      nf = 2;\n    } else if (f < 3) {\n      nf = 3;\n    } else if (f < 5) {\n      nf = 5;\n    } else {\n      nf = 10;\n    }\n  }\n\n  val = nf * exp10;\n  return exponent >= -20 ? +val.toFixed(exponent < 0 ? -exponent : 0) : val;\n}\nexport function quantile(ascArr, p) {\n  var H = (ascArr.length - 1) * p + 1;\n  var h = Math.floor(H);\n  var v = +ascArr[h - 1];\n  var e = H - h;\n  return e ? v + e * (ascArr[h] - v) : v;\n}\nexport function reformIntervals(list) {\n  list.sort(function (a, b) {\n    return littleThan(a, b, 0) ? -1 : 1;\n  });\n  var curr = -Infinity;\n  var currClose = 1;\n\n  for (var i = 0; i < list.length;) {\n    var interval = list[i].interval;\n    var close_1 = list[i].close;\n\n    for (var lg = 0; lg < 2; lg++) {\n      if (interval[lg] <= curr) {\n        interval[lg] = curr;\n        close_1[lg] = !lg ? 1 - currClose : 1;\n      }\n\n      curr = interval[lg];\n      currClose = close_1[lg];\n    }\n\n    if (interval[0] === interval[1] && close_1[0] * close_1[1] !== 1) {\n      list.splice(i, 1);\n    } else {\n      i++;\n    }\n  }\n\n  return list;\n\n  function littleThan(a, b, lg) {\n    return a.interval[lg] < b.interval[lg] || a.interval[lg] === b.interval[lg] && (a.close[lg] - b.close[lg] === (!lg ? 1 : -1) || !lg && littleThan(a, b, 1));\n  }\n}\nexport function numericToNumber(val) {\n  var valFloat = parseFloat(val);\n  return valFloat == val && (valFloat !== 0 || typeof val !== 'string' || val.indexOf('x') <= 0) ? valFloat : NaN;\n}\nexport function isNumeric(val) {\n  return !isNaN(numericToNumber(val));\n}\nexport function getRandomIdBase() {\n  return Math.round(Math.random() * 9);\n}\nexport function getGreatestCommonDividor(a, b) {\n  if (b === 0) {\n    return a;\n  }\n\n  return getGreatestCommonDividor(b, a % b);\n}\nexport function getLeastCommonMultiple(a, b) {\n  if (a == null) {\n    return b;\n  }\n\n  if (b == null) {\n    return a;\n  }\n\n  return a * b / getGreatestCommonDividor(a, b);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { map, isString, isFunction, eqNaN, isRegExp } from 'zrender/lib/core/util';\nvar ECHARTS_PREFIX = '[ECharts] ';\nvar storedLogs = {};\nvar hasConsole = typeof console !== 'undefined' && console.warn && console.log;\nexport function log(str) {\n  if (hasConsole) {\n    console.log(ECHARTS_PREFIX + str);\n  }\n}\nexport function warn(str) {\n  if (hasConsole) {\n    console.warn(ECHARTS_PREFIX + str);\n  }\n}\nexport function error(str) {\n  if (hasConsole) {\n    console.error(ECHARTS_PREFIX + str);\n  }\n}\nexport function deprecateLog(str) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (storedLogs[str]) {\n      return;\n    }\n\n    if (hasConsole) {\n      storedLogs[str] = true;\n      console.warn(ECHARTS_PREFIX + 'DEPRECATED: ' + str);\n    }\n  }\n}\nexport function deprecateReplaceLog(oldOpt, newOpt, scope) {\n  if (process.env.NODE_ENV !== 'production') {\n    deprecateLog((scope ? \"[\" + scope + \"]\" : '') + (oldOpt + \" is deprecated, use \" + newOpt + \" instead.\"));\n  }\n}\nexport function consoleLog() {\n  var args = [];\n\n  for (var _i = 0; _i < arguments.length; _i++) {\n    args[_i] = arguments[_i];\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (typeof console !== 'undefined' && console.log) {\n      console.log.apply(console, args);\n    }\n  }\n}\nexport function makePrintable() {\n  var hintInfo = [];\n\n  for (var _i = 0; _i < arguments.length; _i++) {\n    hintInfo[_i] = arguments[_i];\n  }\n\n  var msg = '';\n\n  if (process.env.NODE_ENV !== 'production') {\n    var makePrintableStringIfPossible_1 = function (val) {\n      return val === void 0 ? 'undefined' : val === Infinity ? 'Infinity' : val === -Infinity ? '-Infinity' : eqNaN(val) ? 'NaN' : val instanceof Date ? 'Date(' + val.toISOString() + ')' : isFunction(val) ? 'function () { ... }' : isRegExp(val) ? val + '' : null;\n    };\n\n    msg = map(hintInfo, function (arg) {\n      if (isString(arg)) {\n        return arg;\n      } else {\n        var printableStr = makePrintableStringIfPossible_1(arg);\n\n        if (printableStr != null) {\n          return printableStr;\n        } else if (typeof JSON !== 'undefined' && JSON.stringify) {\n          try {\n            return JSON.stringify(arg, function (n, val) {\n              var printableStr = makePrintableStringIfPossible_1(val);\n              return printableStr == null ? val : printableStr;\n            });\n          } catch (err) {\n            return '?';\n          }\n        } else {\n          return '?';\n        }\n      }\n    }).join(' ');\n  }\n\n  return msg;\n}\nexport function throwError(msg) {\n  throw new Error(msg);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, isObject, isArray, createHashMap, map, assert, isString, indexOf, isStringSafe } from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport { isNumeric, getRandomIdBase, getPrecisionSafe, round } from './number';\nimport { interpolateNumber } from 'zrender/lib/animation/Animator';\nimport { warn } from './log';\nvar DUMMY_COMPONENT_NAME_PREFIX = 'series\\0';\nvar INTERNAL_COMPONENT_ID_PREFIX = '\\0_ec_\\0';\nexport function normalizeToArray(value) {\n  return value instanceof Array ? value : value == null ? [] : [value];\n}\nexport function defaultEmphasis(opt, key, subOpts) {\n  if (opt) {\n    opt[key] = opt[key] || {};\n    opt.emphasis = opt.emphasis || {};\n    opt.emphasis[key] = opt.emphasis[key] || {};\n\n    for (var i = 0, len = subOpts.length; i < len; i++) {\n      var subOptName = subOpts[i];\n\n      if (!opt.emphasis[key].hasOwnProperty(subOptName) && opt[key].hasOwnProperty(subOptName)) {\n        opt.emphasis[key][subOptName] = opt[key][subOptName];\n      }\n    }\n  }\n}\nexport var TEXT_STYLE_OPTIONS = ['fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'rich', 'tag', 'color', 'textBorderColor', 'textBorderWidth', 'width', 'height', 'lineHeight', 'align', 'verticalAlign', 'baseline', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY', 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY', 'backgroundColor', 'borderColor', 'borderWidth', 'borderRadius', 'padding'];\nexport function getDataItemValue(dataItem) {\n  return isObject(dataItem) && !isArray(dataItem) && !(dataItem instanceof Date) ? dataItem.value : dataItem;\n}\nexport function isDataItemOption(dataItem) {\n  return isObject(dataItem) && !(dataItem instanceof Array);\n}\n;\nexport function mappingToExists(existings, newCmptOptions, mode) {\n  var isNormalMergeMode = mode === 'normalMerge';\n  var isReplaceMergeMode = mode === 'replaceMerge';\n  var isReplaceAllMode = mode === 'replaceAll';\n  existings = existings || [];\n  newCmptOptions = (newCmptOptions || []).slice();\n  var existingIdIdxMap = createHashMap();\n  each(newCmptOptions, function (cmptOption, index) {\n    if (!isObject(cmptOption)) {\n      newCmptOptions[index] = null;\n      return;\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (cmptOption.id != null && !isValidIdOrName(cmptOption.id)) {\n        warnInvalidateIdOrName(cmptOption.id);\n      }\n\n      if (cmptOption.name != null && !isValidIdOrName(cmptOption.name)) {\n        warnInvalidateIdOrName(cmptOption.name);\n      }\n    }\n  });\n  var result = prepareResult(existings, existingIdIdxMap, mode);\n\n  if (isNormalMergeMode || isReplaceMergeMode) {\n    mappingById(result, existings, existingIdIdxMap, newCmptOptions);\n  }\n\n  if (isNormalMergeMode) {\n    mappingByName(result, newCmptOptions);\n  }\n\n  if (isNormalMergeMode || isReplaceMergeMode) {\n    mappingByIndex(result, newCmptOptions, isReplaceMergeMode);\n  } else if (isReplaceAllMode) {\n    mappingInReplaceAllMode(result, newCmptOptions);\n  }\n\n  makeIdAndName(result);\n  return result;\n}\n\nfunction prepareResult(existings, existingIdIdxMap, mode) {\n  var result = [];\n\n  if (mode === 'replaceAll') {\n    return result;\n  }\n\n  for (var index = 0; index < existings.length; index++) {\n    var existing = existings[index];\n\n    if (existing && existing.id != null) {\n      existingIdIdxMap.set(existing.id, index);\n    }\n\n    result.push({\n      existing: mode === 'replaceMerge' || isComponentIdInternal(existing) ? null : existing,\n      newOption: null,\n      keyInfo: null,\n      brandNew: null\n    });\n  }\n\n  return result;\n}\n\nfunction mappingById(result, existings, existingIdIdxMap, newCmptOptions) {\n  each(newCmptOptions, function (cmptOption, index) {\n    if (!cmptOption || cmptOption.id == null) {\n      return;\n    }\n\n    var optionId = makeComparableKey(cmptOption.id);\n    var existingIdx = existingIdIdxMap.get(optionId);\n\n    if (existingIdx != null) {\n      var resultItem = result[existingIdx];\n      assert(!resultItem.newOption, 'Duplicated option on id \"' + optionId + '\".');\n      resultItem.newOption = cmptOption;\n      resultItem.existing = existings[existingIdx];\n      newCmptOptions[index] = null;\n    }\n  });\n}\n\nfunction mappingByName(result, newCmptOptions) {\n  each(newCmptOptions, function (cmptOption, index) {\n    if (!cmptOption || cmptOption.name == null) {\n      return;\n    }\n\n    for (var i = 0; i < result.length; i++) {\n      var existing = result[i].existing;\n\n      if (!result[i].newOption && existing && (existing.id == null || cmptOption.id == null) && !isComponentIdInternal(cmptOption) && !isComponentIdInternal(existing) && keyExistAndEqual('name', existing, cmptOption)) {\n        result[i].newOption = cmptOption;\n        newCmptOptions[index] = null;\n        return;\n      }\n    }\n  });\n}\n\nfunction mappingByIndex(result, newCmptOptions, brandNew) {\n  each(newCmptOptions, function (cmptOption) {\n    if (!cmptOption) {\n      return;\n    }\n\n    var resultItem;\n    var nextIdx = 0;\n\n    while ((resultItem = result[nextIdx]) && (resultItem.newOption || isComponentIdInternal(resultItem.existing) || resultItem.existing && cmptOption.id != null && !keyExistAndEqual('id', cmptOption, resultItem.existing))) {\n      nextIdx++;\n    }\n\n    if (resultItem) {\n      resultItem.newOption = cmptOption;\n      resultItem.brandNew = brandNew;\n    } else {\n      result.push({\n        newOption: cmptOption,\n        brandNew: brandNew,\n        existing: null,\n        keyInfo: null\n      });\n    }\n\n    nextIdx++;\n  });\n}\n\nfunction mappingInReplaceAllMode(result, newCmptOptions) {\n  each(newCmptOptions, function (cmptOption) {\n    result.push({\n      newOption: cmptOption,\n      brandNew: true,\n      existing: null,\n      keyInfo: null\n    });\n  });\n}\n\nfunction makeIdAndName(mapResult) {\n  var idMap = createHashMap();\n  each(mapResult, function (item) {\n    var existing = item.existing;\n    existing && idMap.set(existing.id, item);\n  });\n  each(mapResult, function (item) {\n    var opt = item.newOption;\n    assert(!opt || opt.id == null || !idMap.get(opt.id) || idMap.get(opt.id) === item, 'id duplicates: ' + (opt && opt.id));\n    opt && opt.id != null && idMap.set(opt.id, item);\n    !item.keyInfo && (item.keyInfo = {});\n  });\n  each(mapResult, function (item, index) {\n    var existing = item.existing;\n    var opt = item.newOption;\n    var keyInfo = item.keyInfo;\n\n    if (!isObject(opt)) {\n      return;\n    }\n\n    keyInfo.name = opt.name != null ? makeComparableKey(opt.name) : existing ? existing.name : DUMMY_COMPONENT_NAME_PREFIX + index;\n\n    if (existing) {\n      keyInfo.id = makeComparableKey(existing.id);\n    } else if (opt.id != null) {\n      keyInfo.id = makeComparableKey(opt.id);\n    } else {\n      var idNum = 0;\n\n      do {\n        keyInfo.id = '\\0' + keyInfo.name + '\\0' + idNum++;\n      } while (idMap.get(keyInfo.id));\n    }\n\n    idMap.set(keyInfo.id, item);\n  });\n}\n\nfunction keyExistAndEqual(attr, obj1, obj2) {\n  var key1 = convertOptionIdName(obj1[attr], null);\n  var key2 = convertOptionIdName(obj2[attr], null);\n  return key1 != null && key2 != null && key1 === key2;\n}\n\nfunction makeComparableKey(val) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (val == null) {\n      throw new Error();\n    }\n  }\n\n  return convertOptionIdName(val, '');\n}\n\nexport function convertOptionIdName(idOrName, defaultValue) {\n  if (idOrName == null) {\n    return defaultValue;\n  }\n\n  var type = typeof idOrName;\n  return type === 'string' ? idOrName : type === 'number' || isStringSafe(idOrName) ? idOrName + '' : defaultValue;\n}\n\nfunction warnInvalidateIdOrName(idOrName) {\n  if (process.env.NODE_ENV !== 'production') {\n    warn('`' + idOrName + '` is invalid id or name. Must be a string or number.');\n  }\n}\n\nfunction isValidIdOrName(idOrName) {\n  return isStringSafe(idOrName) || isNumeric(idOrName);\n}\n\nexport function isNameSpecified(componentModel) {\n  var name = componentModel.name;\n  return !!(name && name.indexOf(DUMMY_COMPONENT_NAME_PREFIX));\n}\nexport function isComponentIdInternal(cmptOption) {\n  return cmptOption && cmptOption.id != null && makeComparableKey(cmptOption.id).indexOf(INTERNAL_COMPONENT_ID_PREFIX) === 0;\n}\nexport function makeInternalComponentId(idSuffix) {\n  return INTERNAL_COMPONENT_ID_PREFIX + idSuffix;\n}\nexport function setComponentTypeToKeyInfo(mappingResult, mainType, componentModelCtor) {\n  each(mappingResult, function (item) {\n    var newOption = item.newOption;\n\n    if (isObject(newOption)) {\n      item.keyInfo.mainType = mainType;\n      item.keyInfo.subType = determineSubType(mainType, newOption, item.existing, componentModelCtor);\n    }\n  });\n}\n\nfunction determineSubType(mainType, newCmptOption, existComponent, componentModelCtor) {\n  var subType = newCmptOption.type ? newCmptOption.type : existComponent ? existComponent.subType : componentModelCtor.determineSubType(mainType, newCmptOption);\n  return subType;\n}\n\nexport function compressBatches(batchA, batchB) {\n  var mapA = {};\n  var mapB = {};\n  makeMap(batchA || [], mapA);\n  makeMap(batchB || [], mapB, mapA);\n  return [mapToArray(mapA), mapToArray(mapB)];\n\n  function makeMap(sourceBatch, map, otherMap) {\n    for (var i = 0, len = sourceBatch.length; i < len; i++) {\n      var seriesId = convertOptionIdName(sourceBatch[i].seriesId, null);\n\n      if (seriesId == null) {\n        return;\n      }\n\n      var dataIndices = normalizeToArray(sourceBatch[i].dataIndex);\n      var otherDataIndices = otherMap && otherMap[seriesId];\n\n      for (var j = 0, lenj = dataIndices.length; j < lenj; j++) {\n        var dataIndex = dataIndices[j];\n\n        if (otherDataIndices && otherDataIndices[dataIndex]) {\n          otherDataIndices[dataIndex] = null;\n        } else {\n          (map[seriesId] || (map[seriesId] = {}))[dataIndex] = 1;\n        }\n      }\n    }\n  }\n\n  function mapToArray(map, isData) {\n    var result = [];\n\n    for (var i in map) {\n      if (map.hasOwnProperty(i) && map[i] != null) {\n        if (isData) {\n          result.push(+i);\n        } else {\n          var dataIndices = mapToArray(map[i], true);\n          dataIndices.length && result.push({\n            seriesId: i,\n            dataIndex: dataIndices\n          });\n        }\n      }\n    }\n\n    return result;\n  }\n}\nexport function queryDataIndex(data, payload) {\n  if (payload.dataIndexInside != null) {\n    return payload.dataIndexInside;\n  } else if (payload.dataIndex != null) {\n    return isArray(payload.dataIndex) ? map(payload.dataIndex, function (value) {\n      return data.indexOfRawIndex(value);\n    }) : data.indexOfRawIndex(payload.dataIndex);\n  } else if (payload.name != null) {\n    return isArray(payload.name) ? map(payload.name, function (value) {\n      return data.indexOfName(value);\n    }) : data.indexOfName(payload.name);\n  }\n}\nexport function makeInner() {\n  var key = '__ec_inner_' + innerUniqueIndex++;\n  return function (hostObj) {\n    return hostObj[key] || (hostObj[key] = {});\n  };\n}\nvar innerUniqueIndex = getRandomIdBase();\nexport function parseFinder(ecModel, finderInput, opt) {\n  var finder;\n\n  if (isString(finderInput)) {\n    var obj = {};\n    obj[finderInput + 'Index'] = 0;\n    finder = obj;\n  } else {\n    finder = finderInput;\n  }\n\n  var queryOptionMap = createHashMap();\n  var result = {};\n  var mainTypeSpecified = false;\n  each(finder, function (value, key) {\n    if (key === 'dataIndex' || key === 'dataIndexInside') {\n      result[key] = value;\n      return;\n    }\n\n    var parsedKey = key.match(/^(\\w+)(Index|Id|Name)$/) || [];\n    var mainType = parsedKey[1];\n    var queryType = (parsedKey[2] || '').toLowerCase();\n\n    if (!mainType || !queryType || opt && opt.includeMainTypes && indexOf(opt.includeMainTypes, mainType) < 0) {\n      return;\n    }\n\n    mainTypeSpecified = mainTypeSpecified || !!mainType;\n    var queryOption = queryOptionMap.get(mainType) || queryOptionMap.set(mainType, {});\n    queryOption[queryType] = value;\n  });\n  var defaultMainType = opt ? opt.defaultMainType : null;\n\n  if (!mainTypeSpecified && defaultMainType) {\n    queryOptionMap.set(defaultMainType, {});\n  }\n\n  queryOptionMap.each(function (queryOption, mainType) {\n    var queryResult = queryReferringComponents(ecModel, mainType, queryOption, {\n      useDefault: defaultMainType === mainType,\n      enableAll: opt && opt.enableAll != null ? opt.enableAll : true,\n      enableNone: opt && opt.enableNone != null ? opt.enableNone : true\n    });\n    result[mainType + 'Models'] = queryResult.models;\n    result[mainType + 'Model'] = queryResult.models[0];\n  });\n  return result;\n}\nexport var SINGLE_REFERRING = {\n  useDefault: true,\n  enableAll: false,\n  enableNone: false\n};\nexport var MULTIPLE_REFERRING = {\n  useDefault: false,\n  enableAll: true,\n  enableNone: true\n};\nexport function queryReferringComponents(ecModel, mainType, userOption, opt) {\n  opt = opt || SINGLE_REFERRING;\n  var indexOption = userOption.index;\n  var idOption = userOption.id;\n  var nameOption = userOption.name;\n  var result = {\n    models: null,\n    specified: indexOption != null || idOption != null || nameOption != null\n  };\n\n  if (!result.specified) {\n    var firstCmpt = void 0;\n    result.models = opt.useDefault && (firstCmpt = ecModel.getComponent(mainType)) ? [firstCmpt] : [];\n    return result;\n  }\n\n  if (indexOption === 'none' || indexOption === false) {\n    assert(opt.enableNone, '`\"none\"` or `false` is not a valid value on index option.');\n    result.models = [];\n    return result;\n  }\n\n  if (indexOption === 'all') {\n    assert(opt.enableAll, '`\"all\"` is not a valid value on index option.');\n    indexOption = idOption = nameOption = null;\n  }\n\n  result.models = ecModel.queryComponents({\n    mainType: mainType,\n    index: indexOption,\n    id: idOption,\n    name: nameOption\n  });\n  return result;\n}\nexport function setAttribute(dom, key, value) {\n  dom.setAttribute ? dom.setAttribute(key, value) : dom[key] = value;\n}\nexport function getAttribute(dom, key) {\n  return dom.getAttribute ? dom.getAttribute(key) : dom[key];\n}\nexport function getTooltipRenderMode(renderModeOption) {\n  if (renderModeOption === 'auto') {\n    return env.domSupported ? 'html' : 'richText';\n  } else {\n    return renderModeOption || 'html';\n  }\n}\nexport function groupData(array, getKey) {\n  var buckets = createHashMap();\n  var keys = [];\n  each(array, function (item) {\n    var key = getKey(item);\n    (buckets.get(key) || (keys.push(key), buckets.set(key, []))).push(item);\n  });\n  return {\n    keys: keys,\n    buckets: buckets\n  };\n}\nexport function interpolateRawValues(data, precision, sourceValue, targetValue, percent) {\n  var isAutoPrecision = precision == null || precision === 'auto';\n\n  if (targetValue == null) {\n    return targetValue;\n  }\n\n  if (typeof targetValue === 'number') {\n    var value = interpolateNumber(sourceValue || 0, targetValue, percent);\n    return round(value, isAutoPrecision ? Math.max(getPrecisionSafe(sourceValue || 0), getPrecisionSafe(targetValue)) : precision);\n  } else if (typeof targetValue === 'string') {\n    return percent < 1 ? sourceValue : targetValue;\n  } else {\n    var interpolated = [];\n    var leftArr = sourceValue;\n    var rightArr = targetValue;\n    var length_1 = Math.max(leftArr ? leftArr.length : 0, rightArr.length);\n\n    for (var i = 0; i < length_1; ++i) {\n      var info = data.getDimensionInfo(i);\n\n      if (info.type === 'ordinal') {\n        interpolated[i] = (percent < 1 && leftArr ? leftArr : rightArr)[i];\n      } else {\n        var leftVal = leftArr && leftArr[i] ? leftArr[i] : 0;\n        var rightVal = rightArr[i];\n        var value = interpolateNumber(leftVal, rightVal, percent);\n        interpolated[i] = round(value, isAutoPrecision ? Math.max(getPrecisionSafe(leftVal), getPrecisionSafe(rightVal)) : precision);\n      }\n    }\n\n    return interpolated;\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __spreadArrays } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nvar TYPE_DELIMITER = '.';\nvar IS_CONTAINER = '___EC__COMPONENT__CONTAINER___';\nvar IS_EXTENDED_CLASS = '___EC__EXTENDED_CLASS___';\nexport function parseClassType(componentType) {\n  var ret = {\n    main: '',\n    sub: ''\n  };\n\n  if (componentType) {\n    var typeArr = componentType.split(TYPE_DELIMITER);\n    ret.main = typeArr[0] || '';\n    ret.sub = typeArr[1] || '';\n  }\n\n  return ret;\n}\n\nfunction checkClassType(componentType) {\n  zrUtil.assert(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(componentType), 'componentType \"' + componentType + '\" illegal');\n}\n\nexport function isExtendedClass(clz) {\n  return !!(clz && clz[IS_EXTENDED_CLASS]);\n}\nexport function enableClassExtend(rootClz, mandatoryMethods) {\n  rootClz.$constructor = rootClz;\n\n  rootClz.extend = function (proto) {\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.each(mandatoryMethods, function (method) {\n        if (!proto[method]) {\n          console.warn('Method `' + method + '` should be implemented' + (proto.type ? ' in ' + proto.type : '') + '.');\n        }\n      });\n    }\n\n    var superClass = this;\n\n    function ExtendedClass() {\n      var args = [];\n\n      for (var _i = 0; _i < arguments.length; _i++) {\n        args[_i] = arguments[_i];\n      }\n\n      if (!proto.$constructor) {\n        if (!isESClass(superClass)) {\n          superClass.apply(this, arguments);\n        } else {\n          var ins = zrUtil.createObject(ExtendedClass.prototype, new (superClass.bind.apply(superClass, __spreadArrays([void 0], args)))());\n          return ins;\n        }\n      } else {\n        proto.$constructor.apply(this, arguments);\n      }\n    }\n\n    ExtendedClass[IS_EXTENDED_CLASS] = true;\n    zrUtil.extend(ExtendedClass.prototype, proto);\n    ExtendedClass.extend = this.extend;\n    ExtendedClass.superCall = superCall;\n    ExtendedClass.superApply = superApply;\n    zrUtil.inherits(ExtendedClass, this);\n    ExtendedClass.superClass = superClass;\n    return ExtendedClass;\n  };\n}\n\nfunction isESClass(fn) {\n  return typeof fn === 'function' && /^class\\s/.test(Function.prototype.toString.call(fn));\n}\n\nexport function mountExtend(SubClz, SupperClz) {\n  SubClz.extend = SupperClz.extend;\n}\nvar classBase = Math.round(Math.random() * 10);\nexport function enableClassCheck(target) {\n  var classAttr = ['__\\0is_clz', classBase++].join('_');\n  target.prototype[classAttr] = true;\n\n  if (process.env.NODE_ENV !== 'production') {\n    zrUtil.assert(!target.isInstance, 'The method \"is\" can not be defined.');\n  }\n\n  target.isInstance = function (obj) {\n    return !!(obj && obj[classAttr]);\n  };\n}\n\nfunction superCall(context, methodName) {\n  var args = [];\n\n  for (var _i = 2; _i < arguments.length; _i++) {\n    args[_i - 2] = arguments[_i];\n  }\n\n  return this.superClass.prototype[methodName].apply(context, args);\n}\n\nfunction superApply(context, methodName, args) {\n  return this.superClass.prototype[methodName].apply(context, args);\n}\n\nexport function enableClassManagement(target) {\n  var storage = {};\n\n  target.registerClass = function (clz) {\n    var componentFullType = clz.type || clz.prototype.type;\n\n    if (componentFullType) {\n      checkClassType(componentFullType);\n      clz.prototype.type = componentFullType;\n      var componentTypeInfo = parseClassType(componentFullType);\n\n      if (!componentTypeInfo.sub) {\n        if (process.env.NODE_ENV !== 'production') {\n          if (storage[componentTypeInfo.main]) {\n            console.warn(componentTypeInfo.main + ' exists.');\n          }\n        }\n\n        storage[componentTypeInfo.main] = clz;\n      } else if (componentTypeInfo.sub !== IS_CONTAINER) {\n        var container = makeContainer(componentTypeInfo);\n        container[componentTypeInfo.sub] = clz;\n      }\n    }\n\n    return clz;\n  };\n\n  target.getClass = function (mainType, subType, throwWhenNotFound) {\n    var clz = storage[mainType];\n\n    if (clz && clz[IS_CONTAINER]) {\n      clz = subType ? clz[subType] : null;\n    }\n\n    if (throwWhenNotFound && !clz) {\n      throw new Error(!subType ? mainType + '.' + 'type should be specified.' : 'Component ' + mainType + '.' + (subType || '') + ' not exists. Load it first.');\n    }\n\n    return clz;\n  };\n\n  target.getClassesByMainType = function (componentType) {\n    var componentTypeInfo = parseClassType(componentType);\n    var result = [];\n    var obj = storage[componentTypeInfo.main];\n\n    if (obj && obj[IS_CONTAINER]) {\n      zrUtil.each(obj, function (o, type) {\n        type !== IS_CONTAINER && result.push(o);\n      });\n    } else {\n      result.push(obj);\n    }\n\n    return result;\n  };\n\n  target.hasClass = function (componentType) {\n    var componentTypeInfo = parseClassType(componentType);\n    return !!storage[componentTypeInfo.main];\n  };\n\n  target.getAllClassMainTypes = function () {\n    var types = [];\n    zrUtil.each(storage, function (obj, type) {\n      types.push(type);\n    });\n    return types;\n  };\n\n  target.hasSubTypes = function (componentType) {\n    var componentTypeInfo = parseClassType(componentType);\n    var obj = storage[componentTypeInfo.main];\n    return obj && obj[IS_CONTAINER];\n  };\n\n  function makeContainer(componentTypeInfo) {\n    var container = storage[componentTypeInfo.main];\n\n    if (!container || !container[IS_CONTAINER]) {\n      container = storage[componentTypeInfo.main] = {};\n      container[IS_CONTAINER] = true;\n    }\n\n    return container;\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function makeStyleMapper(properties, ignoreParent) {\n  for (var i = 0; i < properties.length; i++) {\n    if (!properties[i][1]) {\n      properties[i][1] = properties[i][0];\n    }\n  }\n\n  ignoreParent = ignoreParent || false;\n  return function (model, excludes, includes) {\n    var style = {};\n\n    for (var i = 0; i < properties.length; i++) {\n      var propName = properties[i][1];\n\n      if (excludes && zrUtil.indexOf(excludes, propName) >= 0 || includes && zrUtil.indexOf(includes, propName) < 0) {\n        continue;\n      }\n\n      var val = model.getShallow(propName, ignoreParent);\n\n      if (val != null) {\n        style[properties[i][0]] = val;\n      }\n    }\n\n    return style;\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport makeStyleMapper from './makeStyleMapper';\nexport var AREA_STYLE_KEY_MAP = [['fill', 'color'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['opacity'], ['shadowColor']];\nvar getAreaStyle = makeStyleMapper(AREA_STYLE_KEY_MAP);\n\nvar AreaStyleMixin = function () {\n  function AreaStyleMixin() {}\n\n  AreaStyleMixin.prototype.getAreaStyle = function (excludes, includes) {\n    return getAreaStyle(this, excludes, includes);\n  };\n\n  return AreaStyleMixin;\n}();\n\n;\nexport { AreaStyleMixin };","import LRU from '../../core/LRU';\nvar globalImageCache = new LRU(50);\nexport function findExistImage(newImageOrSrc) {\n    if (typeof newImageOrSrc === 'string') {\n        var cachedImgObj = globalImageCache.get(newImageOrSrc);\n        return cachedImgObj && cachedImgObj.image;\n    }\n    else {\n        return newImageOrSrc;\n    }\n}\nexport function createOrUpdateImage(newImageOrSrc, image, hostEl, onload, cbPayload) {\n    if (!newImageOrSrc) {\n        return image;\n    }\n    else if (typeof newImageOrSrc === 'string') {\n        if ((image && image.__zrImageSrc === newImageOrSrc) || !hostEl) {\n            return image;\n        }\n        var cachedImgObj = globalImageCache.get(newImageOrSrc);\n        var pendingWrap = { hostEl: hostEl, cb: onload, cbPayload: cbPayload };\n        if (cachedImgObj) {\n            image = cachedImgObj.image;\n            !isImageReady(image) && cachedImgObj.pending.push(pendingWrap);\n        }\n        else {\n            image = new Image();\n            image.onload = image.onerror = imageOnLoad;\n            globalImageCache.put(newImageOrSrc, image.__cachedImgObj = {\n                image: image,\n                pending: [pendingWrap]\n            });\n            image.src = image.__zrImageSrc = newImageOrSrc;\n        }\n        return image;\n    }\n    else {\n        return newImageOrSrc;\n    }\n}\nfunction imageOnLoad() {\n    var cachedImgObj = this.__cachedImgObj;\n    this.onload = this.onerror = this.__cachedImgObj = null;\n    for (var i = 0; i < cachedImgObj.pending.length; i++) {\n        var pendingWrap = cachedImgObj.pending[i];\n        var cb = pendingWrap.cb;\n        cb && cb(this, pendingWrap.cbPayload);\n        pendingWrap.hostEl.dirty();\n    }\n    cachedImgObj.pending.length = 0;\n}\nexport function isImageReady(image) {\n    return image && image.width && image.height;\n}\n","import * as imageHelper from '../helper/image';\nimport { extend, retrieve2, retrieve3, reduce } from '../../core/util';\nimport { getLineHeight, getWidth } from '../../contain/text';\nvar STYLE_REG = /\\{([a-zA-Z0-9_]+)\\|([^}]*)\\}/g;\nexport function truncateText(text, containerWidth, font, ellipsis, options) {\n    if (!containerWidth) {\n        return '';\n    }\n    var textLines = (text + '').split('\\n');\n    options = prepareTruncateOptions(containerWidth, font, ellipsis, options);\n    for (var i = 0, len = textLines.length; i < len; i++) {\n        textLines[i] = truncateSingleLine(textLines[i], options);\n    }\n    return textLines.join('\\n');\n}\nfunction prepareTruncateOptions(containerWidth, font, ellipsis, options) {\n    options = options || {};\n    var preparedOpts = extend({}, options);\n    preparedOpts.font = font;\n    ellipsis = retrieve2(ellipsis, '...');\n    preparedOpts.maxIterations = retrieve2(options.maxIterations, 2);\n    var minChar = preparedOpts.minChar = retrieve2(options.minChar, 0);\n    preparedOpts.cnCharWidth = getWidth('国', font);\n    var ascCharWidth = preparedOpts.ascCharWidth = getWidth('a', font);\n    preparedOpts.placeholder = retrieve2(options.placeholder, '');\n    var contentWidth = containerWidth = Math.max(0, containerWidth - 1);\n    for (var i = 0; i < minChar && contentWidth >= ascCharWidth; i++) {\n        contentWidth -= ascCharWidth;\n    }\n    var ellipsisWidth = getWidth(ellipsis, font);\n    if (ellipsisWidth > contentWidth) {\n        ellipsis = '';\n        ellipsisWidth = 0;\n    }\n    contentWidth = containerWidth - ellipsisWidth;\n    preparedOpts.ellipsis = ellipsis;\n    preparedOpts.ellipsisWidth = ellipsisWidth;\n    preparedOpts.contentWidth = contentWidth;\n    preparedOpts.containerWidth = containerWidth;\n    return preparedOpts;\n}\nfunction truncateSingleLine(textLine, options) {\n    var containerWidth = options.containerWidth;\n    var font = options.font;\n    var contentWidth = options.contentWidth;\n    if (!containerWidth) {\n        return '';\n    }\n    var lineWidth = getWidth(textLine, font);\n    if (lineWidth <= containerWidth) {\n        return textLine;\n    }\n    for (var j = 0;; j++) {\n        if (lineWidth <= contentWidth || j >= options.maxIterations) {\n            textLine += options.ellipsis;\n            break;\n        }\n        var subLength = j === 0\n            ? estimateLength(textLine, contentWidth, options.ascCharWidth, options.cnCharWidth)\n            : lineWidth > 0\n                ? Math.floor(textLine.length * contentWidth / lineWidth)\n                : 0;\n        textLine = textLine.substr(0, subLength);\n        lineWidth = getWidth(textLine, font);\n    }\n    if (textLine === '') {\n        textLine = options.placeholder;\n    }\n    return textLine;\n}\nfunction estimateLength(text, contentWidth, ascCharWidth, cnCharWidth) {\n    var width = 0;\n    var i = 0;\n    for (var len = text.length; i < len && width < contentWidth; i++) {\n        var charCode = text.charCodeAt(i);\n        width += (0 <= charCode && charCode <= 127) ? ascCharWidth : cnCharWidth;\n    }\n    return i;\n}\nexport function parsePlainText(text, style) {\n    text != null && (text += '');\n    var overflow = style.overflow;\n    var padding = style.padding;\n    var font = style.font;\n    var truncate = overflow === 'truncate';\n    var calculatedLineHeight = getLineHeight(font);\n    var lineHeight = retrieve2(style.lineHeight, calculatedLineHeight);\n    var truncateLineOverflow = style.lineOverflow === 'truncate';\n    var width = style.width;\n    var lines;\n    if (width != null && overflow === 'break' || overflow === 'breakAll') {\n        lines = text ? wrapText(text, style.font, width, overflow === 'breakAll', 0).lines : [];\n    }\n    else {\n        lines = text ? text.split('\\n') : [];\n    }\n    var contentHeight = lines.length * lineHeight;\n    var height = retrieve2(style.height, contentHeight);\n    if (contentHeight > height && truncateLineOverflow) {\n        var lineCount = Math.floor(height / lineHeight);\n        lines = lines.slice(0, lineCount);\n    }\n    var outerHeight = height;\n    var outerWidth = width;\n    if (padding) {\n        outerHeight += padding[0] + padding[2];\n        if (outerWidth != null) {\n            outerWidth += padding[1] + padding[3];\n        }\n    }\n    if (text && truncate && outerWidth != null) {\n        var options = prepareTruncateOptions(width, font, style.ellipsis, {\n            minChar: style.truncateMinChar,\n            placeholder: style.placeholder\n        });\n        for (var i = 0; i < lines.length; i++) {\n            lines[i] = truncateSingleLine(lines[i], options);\n        }\n    }\n    if (width == null) {\n        var maxWidth = 0;\n        for (var i = 0; i < lines.length; i++) {\n            maxWidth = Math.max(getWidth(lines[i], font), maxWidth);\n        }\n        width = maxWidth;\n    }\n    return {\n        lines: lines,\n        height: height,\n        outerHeight: outerHeight,\n        lineHeight: lineHeight,\n        calculatedLineHeight: calculatedLineHeight,\n        contentHeight: contentHeight,\n        width: width\n    };\n}\nvar RichTextToken = (function () {\n    function RichTextToken() {\n    }\n    return RichTextToken;\n}());\nvar RichTextLine = (function () {\n    function RichTextLine(tokens) {\n        this.tokens = [];\n        if (tokens) {\n            this.tokens = tokens;\n        }\n    }\n    return RichTextLine;\n}());\nvar RichTextContentBlock = (function () {\n    function RichTextContentBlock() {\n        this.width = 0;\n        this.height = 0;\n        this.contentWidth = 0;\n        this.contentHeight = 0;\n        this.outerWidth = 0;\n        this.outerHeight = 0;\n        this.lines = [];\n    }\n    return RichTextContentBlock;\n}());\nexport { RichTextContentBlock };\nexport function parseRichText(text, style) {\n    var contentBlock = new RichTextContentBlock();\n    text != null && (text += '');\n    if (!text) {\n        return contentBlock;\n    }\n    var topWidth = style.width;\n    var topHeight = style.height;\n    var overflow = style.overflow;\n    var wrapInfo = (overflow === 'break' || overflow === 'breakAll') && topWidth != null\n        ? { width: topWidth, accumWidth: 0, breakAll: overflow === 'breakAll' }\n        : null;\n    var lastIndex = STYLE_REG.lastIndex = 0;\n    var result;\n    while ((result = STYLE_REG.exec(text)) != null) {\n        var matchedIndex = result.index;\n        if (matchedIndex > lastIndex) {\n            pushTokens(contentBlock, text.substring(lastIndex, matchedIndex), style, wrapInfo);\n        }\n        pushTokens(contentBlock, result[2], style, wrapInfo, result[1]);\n        lastIndex = STYLE_REG.lastIndex;\n    }\n    if (lastIndex < text.length) {\n        pushTokens(contentBlock, text.substring(lastIndex, text.length), style, wrapInfo);\n    }\n    var pendingList = [];\n    var calculatedHeight = 0;\n    var calculatedWidth = 0;\n    var stlPadding = style.padding;\n    var truncate = overflow === 'truncate';\n    var truncateLine = style.lineOverflow === 'truncate';\n    var prevToken;\n    function finishLine(line, lineWidth, lineHeight) {\n        line.width = lineWidth;\n        line.lineHeight = lineHeight;\n        calculatedHeight += lineHeight;\n        calculatedWidth = Math.max(calculatedWidth, lineWidth);\n    }\n    outer: for (var i = 0; i < contentBlock.lines.length; i++) {\n        var line = contentBlock.lines[i];\n        var lineHeight = 0;\n        var lineWidth = 0;\n        for (var j = 0; j < line.tokens.length; j++) {\n            var token = line.tokens[j];\n            var tokenStyle = token.styleName && style.rich[token.styleName] || {};\n            var textPadding = token.textPadding = tokenStyle.padding;\n            var paddingH = textPadding ? textPadding[1] + textPadding[3] : 0;\n            var font = token.font = tokenStyle.font || style.font;\n            token.contentHeight = getLineHeight(font);\n            var tokenHeight = retrieve2(tokenStyle.height, token.contentHeight);\n            token.innerHeight = tokenHeight;\n            textPadding && (tokenHeight += textPadding[0] + textPadding[2]);\n            token.height = tokenHeight;\n            token.lineHeight = retrieve3(tokenStyle.lineHeight, style.lineHeight, tokenHeight);\n            token.align = tokenStyle && tokenStyle.align || style.align;\n            token.verticalAlign = tokenStyle && tokenStyle.verticalAlign || 'middle';\n            if (truncateLine && topHeight != null && calculatedHeight + token.lineHeight > topHeight) {\n                if (j > 0) {\n                    line.tokens = line.tokens.slice(0, j);\n                    finishLine(line, lineWidth, lineHeight);\n                    contentBlock.lines = contentBlock.lines.slice(0, i + 1);\n                }\n                else {\n                    contentBlock.lines = contentBlock.lines.slice(0, i);\n                }\n                break outer;\n            }\n            var styleTokenWidth = tokenStyle.width;\n            var tokenWidthNotSpecified = styleTokenWidth == null || styleTokenWidth === 'auto';\n            if (typeof styleTokenWidth === 'string' && styleTokenWidth.charAt(styleTokenWidth.length - 1) === '%') {\n                token.percentWidth = styleTokenWidth;\n                pendingList.push(token);\n                token.contentWidth = getWidth(token.text, font);\n            }\n            else {\n                if (tokenWidthNotSpecified) {\n                    var textBackgroundColor = tokenStyle.backgroundColor;\n                    var bgImg = textBackgroundColor && textBackgroundColor.image;\n                    if (bgImg) {\n                        bgImg = imageHelper.findExistImage(bgImg);\n                        if (imageHelper.isImageReady(bgImg)) {\n                            token.width = Math.max(token.width, bgImg.width * tokenHeight / bgImg.height);\n                        }\n                    }\n                }\n                var remainTruncWidth = truncate && topWidth != null\n                    ? topWidth - lineWidth : null;\n                if (remainTruncWidth != null && remainTruncWidth < token.width) {\n                    if (!tokenWidthNotSpecified || remainTruncWidth < paddingH) {\n                        token.text = '';\n                        token.width = token.contentWidth = 0;\n                    }\n                    else {\n                        token.text = truncateText(token.text, remainTruncWidth - paddingH, font, style.ellipsis, { minChar: style.truncateMinChar });\n                        token.width = token.contentWidth = getWidth(token.text, font);\n                    }\n                }\n                else {\n                    token.contentWidth = getWidth(token.text, font);\n                }\n            }\n            token.width += paddingH;\n            lineWidth += token.width;\n            tokenStyle && (lineHeight = Math.max(lineHeight, token.lineHeight));\n            prevToken = token;\n        }\n        finishLine(line, lineWidth, lineHeight);\n    }\n    contentBlock.outerWidth = contentBlock.width = retrieve2(topWidth, calculatedWidth);\n    contentBlock.outerHeight = contentBlock.height = retrieve2(topHeight, calculatedHeight);\n    contentBlock.contentHeight = calculatedHeight;\n    contentBlock.contentWidth = calculatedWidth;\n    if (stlPadding) {\n        contentBlock.outerWidth += stlPadding[1] + stlPadding[3];\n        contentBlock.outerHeight += stlPadding[0] + stlPadding[2];\n    }\n    for (var i = 0; i < pendingList.length; i++) {\n        var token = pendingList[i];\n        var percentWidth = token.percentWidth;\n        token.width = parseInt(percentWidth, 10) / 100 * contentBlock.width;\n    }\n    return contentBlock;\n}\nfunction pushTokens(block, str, style, wrapInfo, styleName) {\n    var isEmptyStr = str === '';\n    var tokenStyle = styleName && style.rich[styleName] || {};\n    var lines = block.lines;\n    var font = tokenStyle.font || style.font;\n    var newLine = false;\n    var strLines;\n    var linesWidths;\n    if (wrapInfo) {\n        var tokenPadding = tokenStyle.padding;\n        var tokenPaddingH = tokenPadding ? tokenPadding[1] + tokenPadding[3] : 0;\n        if (tokenStyle.width != null && tokenStyle.width !== 'auto') {\n            var outerWidth_1 = parsePercent(tokenStyle.width, wrapInfo.width) + tokenPaddingH;\n            if (lines.length > 0) {\n                if (outerWidth_1 + wrapInfo.accumWidth > wrapInfo.width) {\n                    strLines = str.split('\\n');\n                    newLine = true;\n                }\n            }\n            wrapInfo.accumWidth = outerWidth_1;\n        }\n        else {\n            var res = wrapText(str, font, wrapInfo.width, wrapInfo.breakAll, wrapInfo.accumWidth);\n            wrapInfo.accumWidth = res.accumWidth + tokenPaddingH;\n            linesWidths = res.linesWidths;\n            strLines = res.lines;\n        }\n    }\n    else {\n        strLines = str.split('\\n');\n    }\n    for (var i = 0; i < strLines.length; i++) {\n        var text = strLines[i];\n        var token = new RichTextToken();\n        token.styleName = styleName;\n        token.text = text;\n        token.isLineHolder = !text && !isEmptyStr;\n        if (typeof tokenStyle.width === 'number') {\n            token.width = tokenStyle.width;\n        }\n        else {\n            token.width = linesWidths\n                ? linesWidths[i]\n                : getWidth(text, font);\n        }\n        if (!i && !newLine) {\n            var tokens = (lines[lines.length - 1] || (lines[0] = new RichTextLine())).tokens;\n            var tokensLen = tokens.length;\n            (tokensLen === 1 && tokens[0].isLineHolder)\n                ? (tokens[0] = token)\n                : ((text || !tokensLen || isEmptyStr) && tokens.push(token));\n        }\n        else {\n            lines.push(new RichTextLine([token]));\n        }\n    }\n}\nfunction isLatin(ch) {\n    var code = ch.charCodeAt(0);\n    return code >= 0x21 && code <= 0xFF;\n}\nvar breakCharMap = reduce(',&?/;] '.split(''), function (obj, ch) {\n    obj[ch] = true;\n    return obj;\n}, {});\nfunction isWordBreakChar(ch) {\n    if (isLatin(ch)) {\n        if (breakCharMap[ch]) {\n            return true;\n        }\n        return false;\n    }\n    return true;\n}\nfunction wrapText(text, font, lineWidth, isBreakAll, lastAccumWidth) {\n    var lines = [];\n    var linesWidths = [];\n    var line = '';\n    var currentWord = '';\n    var currentWordWidth = 0;\n    var accumWidth = 0;\n    for (var i = 0; i < text.length; i++) {\n        var ch = text.charAt(i);\n        if (ch === '\\n') {\n            if (currentWord) {\n                line += currentWord;\n                accumWidth += currentWordWidth;\n            }\n            lines.push(line);\n            linesWidths.push(accumWidth);\n            line = '';\n            currentWord = '';\n            currentWordWidth = 0;\n            accumWidth = 0;\n            continue;\n        }\n        var chWidth = getWidth(ch, font);\n        var inWord = isBreakAll ? false : !isWordBreakChar(ch);\n        if (!lines.length\n            ? lastAccumWidth + accumWidth + chWidth > lineWidth\n            : accumWidth + chWidth > lineWidth) {\n            if (!accumWidth) {\n                if (inWord) {\n                    lines.push(currentWord);\n                    linesWidths.push(currentWordWidth);\n                    currentWord = ch;\n                    currentWordWidth = chWidth;\n                }\n                else {\n                    lines.push(ch);\n                    linesWidths.push(chWidth);\n                }\n            }\n            else if (line || currentWord) {\n                if (inWord) {\n                    if (!line) {\n                        line = currentWord;\n                        currentWord = '';\n                        currentWordWidth = 0;\n                        accumWidth = currentWordWidth;\n                    }\n                    lines.push(line);\n                    linesWidths.push(accumWidth - currentWordWidth);\n                    currentWord += ch;\n                    currentWordWidth += chWidth;\n                    line = '';\n                    accumWidth = currentWordWidth;\n                }\n                else {\n                    if (currentWord) {\n                        line += currentWord;\n                        accumWidth += currentWordWidth;\n                        currentWord = '';\n                        currentWordWidth = 0;\n                    }\n                    lines.push(line);\n                    linesWidths.push(accumWidth);\n                    line = ch;\n                    accumWidth = chWidth;\n                }\n            }\n            continue;\n        }\n        accumWidth += chWidth;\n        if (inWord) {\n            currentWord += ch;\n            currentWordWidth += chWidth;\n        }\n        else {\n            if (currentWord) {\n                line += currentWord;\n                currentWord = '';\n                currentWordWidth = 0;\n            }\n            line += ch;\n        }\n    }\n    if (!lines.length && !line) {\n        line = text;\n        currentWord = '';\n        currentWordWidth = 0;\n    }\n    if (currentWord) {\n        line += currentWord;\n    }\n    if (line) {\n        lines.push(line);\n        linesWidths.push(accumWidth);\n    }\n    if (lines.length === 1) {\n        accumWidth += lastAccumWidth;\n    }\n    return {\n        accumWidth: accumWidth,\n        lines: lines,\n        linesWidths: linesWidths\n    };\n}\nfunction parsePercent(value, maxValue) {\n    if (typeof value === 'string') {\n        if (value.lastIndexOf('%') >= 0) {\n            return parseFloat(value) / 100 * maxValue;\n        }\n        return parseFloat(value);\n    }\n    return value;\n}\n","import { __extends } from \"tslib\";\nimport Element from '../Element';\nimport BoundingRect from '../core/BoundingRect';\nimport { keys, extend, createObject } from '../core/util';\nvar STYLE_MAGIC_KEY = '__zr_style_' + Math.round((Math.random() * 10));\nexport var DEFAULT_COMMON_STYLE = {\n    shadowBlur: 0,\n    shadowOffsetX: 0,\n    shadowOffsetY: 0,\n    shadowColor: '#000',\n    opacity: 1,\n    blend: 'source-over'\n};\nexport var DEFAULT_COMMON_ANIMATION_PROPS = {\n    style: {\n        shadowBlur: true,\n        shadowOffsetX: true,\n        shadowOffsetY: true,\n        shadowColor: true,\n        opacity: true\n    }\n};\nDEFAULT_COMMON_STYLE[STYLE_MAGIC_KEY] = true;\nvar PRIMARY_STATES_KEYS = ['z', 'z2', 'invisible'];\nvar Displayable = (function (_super) {\n    __extends(Displayable, _super);\n    function Displayable(props) {\n        return _super.call(this, props) || this;\n    }\n    Displayable.prototype._init = function (props) {\n        var keysArr = keys(props);\n        for (var i = 0; i < keysArr.length; i++) {\n            var key = keysArr[i];\n            if (key === 'style') {\n                this.useStyle(props[key]);\n            }\n            else {\n                _super.prototype.attrKV.call(this, key, props[key]);\n            }\n        }\n        if (!this.style) {\n            this.useStyle({});\n        }\n    };\n    Displayable.prototype.beforeBrush = function () { };\n    Displayable.prototype.afterBrush = function () { };\n    Displayable.prototype.innerBeforeBrush = function () { };\n    Displayable.prototype.innerAfterBrush = function () { };\n    Displayable.prototype.shouldBePainted = function (viewWidth, viewHeight, considerClipPath, considerAncestors) {\n        var m = this.transform;\n        if (this.ignore\n            || this.invisible\n            || this.style.opacity === 0\n            || (this.culling\n                && isDisplayableCulled(this, viewWidth, viewHeight))\n            || (m && !m[0] && !m[3])) {\n            return false;\n        }\n        if (considerClipPath && this.__clipPaths) {\n            for (var i = 0; i < this.__clipPaths.length; ++i) {\n                if (this.__clipPaths[i].isZeroArea()) {\n                    return false;\n                }\n            }\n        }\n        if (considerAncestors && this.parent) {\n            var parent_1 = this.parent;\n            while (parent_1) {\n                if (parent_1.ignore) {\n                    return false;\n                }\n                parent_1 = parent_1.parent;\n            }\n        }\n        return true;\n    };\n    Displayable.prototype.contain = function (x, y) {\n        return this.rectContain(x, y);\n    };\n    Displayable.prototype.traverse = function (cb, context) {\n        cb.call(context, this);\n    };\n    Displayable.prototype.rectContain = function (x, y) {\n        var coord = this.transformCoordToLocal(x, y);\n        var rect = this.getBoundingRect();\n        return rect.contain(coord[0], coord[1]);\n    };\n    Displayable.prototype.getPaintRect = function () {\n        var rect = this._paintRect;\n        if (!this._paintRect || this.__dirty) {\n            var transform = this.transform;\n            var elRect = this.getBoundingRect();\n            var style = this.style;\n            var shadowSize = style.shadowBlur || 0;\n            var shadowOffsetX = style.shadowOffsetX || 0;\n            var shadowOffsetY = style.shadowOffsetY || 0;\n            rect = this._paintRect || (this._paintRect = new BoundingRect(0, 0, 0, 0));\n            if (transform) {\n                BoundingRect.applyTransform(rect, elRect, transform);\n            }\n            else {\n                rect.copy(elRect);\n            }\n            if (shadowSize || shadowOffsetX || shadowOffsetY) {\n                rect.width += shadowSize * 2 + Math.abs(shadowOffsetX);\n                rect.height += shadowSize * 2 + Math.abs(shadowOffsetY);\n                rect.x = Math.min(rect.x, rect.x + shadowOffsetX - shadowSize);\n                rect.y = Math.min(rect.y, rect.y + shadowOffsetY - shadowSize);\n            }\n            var tolerance = this.dirtyRectTolerance;\n            if (!rect.isZero()) {\n                rect.x = Math.floor(rect.x - tolerance);\n                rect.y = Math.floor(rect.y - tolerance);\n                rect.width = Math.ceil(rect.width + 1 + tolerance * 2);\n                rect.height = Math.ceil(rect.height + 1 + tolerance * 2);\n            }\n        }\n        return rect;\n    };\n    Displayable.prototype.setPrevPaintRect = function (paintRect) {\n        if (paintRect) {\n            this._prevPaintRect = this._prevPaintRect || new BoundingRect(0, 0, 0, 0);\n            this._prevPaintRect.copy(paintRect);\n        }\n        else {\n            this._prevPaintRect = null;\n        }\n    };\n    Displayable.prototype.getPrevPaintRect = function () {\n        return this._prevPaintRect;\n    };\n    Displayable.prototype.animateStyle = function (loop) {\n        return this.animate('style', loop);\n    };\n    Displayable.prototype.updateDuringAnimation = function (targetKey) {\n        if (targetKey === 'style') {\n            this.dirtyStyle();\n        }\n        else {\n            this.markRedraw();\n        }\n    };\n    Displayable.prototype.attrKV = function (key, value) {\n        if (key !== 'style') {\n            _super.prototype.attrKV.call(this, key, value);\n        }\n        else {\n            if (!this.style) {\n                this.useStyle(value);\n            }\n            else {\n                this.setStyle(value);\n            }\n        }\n    };\n    Displayable.prototype.setStyle = function (keyOrObj, value) {\n        if (typeof keyOrObj === 'string') {\n            this.style[keyOrObj] = value;\n        }\n        else {\n            extend(this.style, keyOrObj);\n        }\n        this.dirtyStyle();\n        return this;\n    };\n    Displayable.prototype.dirtyStyle = function () {\n        this.markRedraw();\n        this.__dirty |= Displayable.STYLE_CHANGED_BIT;\n        if (this._rect) {\n            this._rect = null;\n        }\n    };\n    Displayable.prototype.dirty = function () {\n        this.dirtyStyle();\n    };\n    Displayable.prototype.styleChanged = function () {\n        return !!(this.__dirty & Displayable.STYLE_CHANGED_BIT);\n    };\n    Displayable.prototype.styleUpdated = function () {\n        this.__dirty &= ~Displayable.STYLE_CHANGED_BIT;\n    };\n    Displayable.prototype.createStyle = function (obj) {\n        return createObject(DEFAULT_COMMON_STYLE, obj);\n    };\n    Displayable.prototype.useStyle = function (obj) {\n        if (!obj[STYLE_MAGIC_KEY]) {\n            obj = this.createStyle(obj);\n        }\n        if (this.__inHover) {\n            this.__hoverStyle = obj;\n        }\n        else {\n            this.style = obj;\n        }\n        this.dirtyStyle();\n    };\n    Displayable.prototype.isStyleObject = function (obj) {\n        return obj[STYLE_MAGIC_KEY];\n    };\n    Displayable.prototype._innerSaveToNormal = function (toState) {\n        _super.prototype._innerSaveToNormal.call(this, toState);\n        var normalState = this._normalState;\n        if (toState.style && !normalState.style) {\n            normalState.style = this._mergeStyle(this.createStyle(), this.style);\n        }\n        this._savePrimaryToNormal(toState, normalState, PRIMARY_STATES_KEYS);\n    };\n    Displayable.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\n        _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\n        var needsRestoreToNormal = !(state && keepCurrentStates);\n        var targetStyle;\n        if (state && state.style) {\n            if (transition) {\n                if (keepCurrentStates) {\n                    targetStyle = state.style;\n                }\n                else {\n                    targetStyle = this._mergeStyle(this.createStyle(), normalState.style);\n                    this._mergeStyle(targetStyle, state.style);\n                }\n            }\n            else {\n                targetStyle = this._mergeStyle(this.createStyle(), keepCurrentStates ? this.style : normalState.style);\n                this._mergeStyle(targetStyle, state.style);\n            }\n        }\n        else if (needsRestoreToNormal) {\n            targetStyle = normalState.style;\n        }\n        if (targetStyle) {\n            if (transition) {\n                var sourceStyle = this.style;\n                this.style = this.createStyle(needsRestoreToNormal ? {} : sourceStyle);\n                if (needsRestoreToNormal) {\n                    var changedKeys = keys(sourceStyle);\n                    for (var i = 0; i < changedKeys.length; i++) {\n                        var key = changedKeys[i];\n                        if (key in targetStyle) {\n                            targetStyle[key] = targetStyle[key];\n                            this.style[key] = sourceStyle[key];\n                        }\n                    }\n                }\n                var targetKeys = keys(targetStyle);\n                for (var i = 0; i < targetKeys.length; i++) {\n                    var key = targetKeys[i];\n                    this.style[key] = this.style[key];\n                }\n                this._transitionState(stateName, {\n                    style: targetStyle\n                }, animationCfg, this.getAnimationStyleProps());\n            }\n            else {\n                this.useStyle(targetStyle);\n            }\n        }\n        for (var i = 0; i < PRIMARY_STATES_KEYS.length; i++) {\n            var key = PRIMARY_STATES_KEYS[i];\n            if (state && state[key] != null) {\n                this[key] = state[key];\n            }\n            else if (needsRestoreToNormal) {\n                if (normalState[key] != null) {\n                    this[key] = normalState[key];\n                }\n            }\n        }\n    };\n    Displayable.prototype._mergeStates = function (states) {\n        var mergedState = _super.prototype._mergeStates.call(this, states);\n        var mergedStyle;\n        for (var i = 0; i < states.length; i++) {\n            var state = states[i];\n            if (state.style) {\n                mergedStyle = mergedStyle || {};\n                this._mergeStyle(mergedStyle, state.style);\n            }\n        }\n        if (mergedStyle) {\n            mergedState.style = mergedStyle;\n        }\n        return mergedState;\n    };\n    Displayable.prototype._mergeStyle = function (targetStyle, sourceStyle) {\n        extend(targetStyle, sourceStyle);\n        return targetStyle;\n    };\n    Displayable.prototype.getAnimationStyleProps = function () {\n        return DEFAULT_COMMON_ANIMATION_PROPS;\n    };\n    Displayable.STYLE_CHANGED_BIT = 2;\n    Displayable.initDefaultProps = (function () {\n        var dispProto = Displayable.prototype;\n        dispProto.type = 'displayable';\n        dispProto.invisible = false;\n        dispProto.z = 0;\n        dispProto.z2 = 0;\n        dispProto.zlevel = 0;\n        dispProto.culling = false;\n        dispProto.cursor = 'pointer';\n        dispProto.rectHover = false;\n        dispProto.incremental = false;\n        dispProto._rect = null;\n        dispProto.dirtyRectTolerance = 0;\n        dispProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT;\n    })();\n    return Displayable;\n}(Element));\nvar tmpRect = new BoundingRect(0, 0, 0, 0);\nvar viewRect = new BoundingRect(0, 0, 0, 0);\nfunction isDisplayableCulled(el, width, height) {\n    tmpRect.copy(el.getBoundingRect());\n    if (el.transform) {\n        tmpRect.applyTransform(el.transform);\n    }\n    viewRect.width = width;\n    viewRect.height = height;\n    return !tmpRect.intersect(viewRect);\n}\nexport default Displayable;\n","import { create as v2Create, distSquare as v2DistSquare } from './vector';\nvar mathPow = Math.pow;\nvar mathSqrt = Math.sqrt;\nvar EPSILON = 1e-8;\nvar EPSILON_NUMERIC = 1e-4;\nvar THREE_SQRT = mathSqrt(3);\nvar ONE_THIRD = 1 / 3;\nvar _v0 = v2Create();\nvar _v1 = v2Create();\nvar _v2 = v2Create();\nfunction isAroundZero(val) {\n    return val > -EPSILON && val < EPSILON;\n}\nfunction isNotAroundZero(val) {\n    return val > EPSILON || val < -EPSILON;\n}\nexport function cubicAt(p0, p1, p2, p3, t) {\n    var onet = 1 - t;\n    return onet * onet * (onet * p0 + 3 * t * p1)\n        + t * t * (t * p3 + 3 * onet * p2);\n}\nexport function cubicDerivativeAt(p0, p1, p2, p3, t) {\n    var onet = 1 - t;\n    return 3 * (((p1 - p0) * onet + 2 * (p2 - p1) * t) * onet\n        + (p3 - p2) * t * t);\n}\nexport function cubicRootAt(p0, p1, p2, p3, val, roots) {\n    var a = p3 + 3 * (p1 - p2) - p0;\n    var b = 3 * (p2 - p1 * 2 + p0);\n    var c = 3 * (p1 - p0);\n    var d = p0 - val;\n    var A = b * b - 3 * a * c;\n    var B = b * c - 9 * a * d;\n    var C = c * c - 3 * b * d;\n    var n = 0;\n    if (isAroundZero(A) && isAroundZero(B)) {\n        if (isAroundZero(b)) {\n            roots[0] = 0;\n        }\n        else {\n            var t1 = -c / b;\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n        }\n    }\n    else {\n        var disc = B * B - 4 * A * C;\n        if (isAroundZero(disc)) {\n            var K = B / A;\n            var t1 = -b / a + K;\n            var t2 = -K / 2;\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n            if (t2 >= 0 && t2 <= 1) {\n                roots[n++] = t2;\n            }\n        }\n        else if (disc > 0) {\n            var discSqrt = mathSqrt(disc);\n            var Y1 = A * b + 1.5 * a * (-B + discSqrt);\n            var Y2 = A * b + 1.5 * a * (-B - discSqrt);\n            if (Y1 < 0) {\n                Y1 = -mathPow(-Y1, ONE_THIRD);\n            }\n            else {\n                Y1 = mathPow(Y1, ONE_THIRD);\n            }\n            if (Y2 < 0) {\n                Y2 = -mathPow(-Y2, ONE_THIRD);\n            }\n            else {\n                Y2 = mathPow(Y2, ONE_THIRD);\n            }\n            var t1 = (-b - (Y1 + Y2)) / (3 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n        }\n        else {\n            var T = (2 * A * b - 3 * a * B) / (2 * mathSqrt(A * A * A));\n            var theta = Math.acos(T) / 3;\n            var ASqrt = mathSqrt(A);\n            var tmp = Math.cos(theta);\n            var t1 = (-b - 2 * ASqrt * tmp) / (3 * a);\n            var t2 = (-b + ASqrt * (tmp + THREE_SQRT * Math.sin(theta))) / (3 * a);\n            var t3 = (-b + ASqrt * (tmp - THREE_SQRT * Math.sin(theta))) / (3 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n            if (t2 >= 0 && t2 <= 1) {\n                roots[n++] = t2;\n            }\n            if (t3 >= 0 && t3 <= 1) {\n                roots[n++] = t3;\n            }\n        }\n    }\n    return n;\n}\nexport function cubicExtrema(p0, p1, p2, p3, extrema) {\n    var b = 6 * p2 - 12 * p1 + 6 * p0;\n    var a = 9 * p1 + 3 * p3 - 3 * p0 - 9 * p2;\n    var c = 3 * p1 - 3 * p0;\n    var n = 0;\n    if (isAroundZero(a)) {\n        if (isNotAroundZero(b)) {\n            var t1 = -c / b;\n            if (t1 >= 0 && t1 <= 1) {\n                extrema[n++] = t1;\n            }\n        }\n    }\n    else {\n        var disc = b * b - 4 * a * c;\n        if (isAroundZero(disc)) {\n            extrema[0] = -b / (2 * a);\n        }\n        else if (disc > 0) {\n            var discSqrt = mathSqrt(disc);\n            var t1 = (-b + discSqrt) / (2 * a);\n            var t2 = (-b - discSqrt) / (2 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                extrema[n++] = t1;\n            }\n            if (t2 >= 0 && t2 <= 1) {\n                extrema[n++] = t2;\n            }\n        }\n    }\n    return n;\n}\nexport function cubicSubdivide(p0, p1, p2, p3, t, out) {\n    var p01 = (p1 - p0) * t + p0;\n    var p12 = (p2 - p1) * t + p1;\n    var p23 = (p3 - p2) * t + p2;\n    var p012 = (p12 - p01) * t + p01;\n    var p123 = (p23 - p12) * t + p12;\n    var p0123 = (p123 - p012) * t + p012;\n    out[0] = p0;\n    out[1] = p01;\n    out[2] = p012;\n    out[3] = p0123;\n    out[4] = p0123;\n    out[5] = p123;\n    out[6] = p23;\n    out[7] = p3;\n}\nexport function cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, out) {\n    var t;\n    var interval = 0.005;\n    var d = Infinity;\n    var prev;\n    var next;\n    var d1;\n    var d2;\n    _v0[0] = x;\n    _v0[1] = y;\n    for (var _t = 0; _t < 1; _t += 0.05) {\n        _v1[0] = cubicAt(x0, x1, x2, x3, _t);\n        _v1[1] = cubicAt(y0, y1, y2, y3, _t);\n        d1 = v2DistSquare(_v0, _v1);\n        if (d1 < d) {\n            t = _t;\n            d = d1;\n        }\n    }\n    d = Infinity;\n    for (var i = 0; i < 32; i++) {\n        if (interval < EPSILON_NUMERIC) {\n            break;\n        }\n        prev = t - interval;\n        next = t + interval;\n        _v1[0] = cubicAt(x0, x1, x2, x3, prev);\n        _v1[1] = cubicAt(y0, y1, y2, y3, prev);\n        d1 = v2DistSquare(_v1, _v0);\n        if (prev >= 0 && d1 < d) {\n            t = prev;\n            d = d1;\n        }\n        else {\n            _v2[0] = cubicAt(x0, x1, x2, x3, next);\n            _v2[1] = cubicAt(y0, y1, y2, y3, next);\n            d2 = v2DistSquare(_v2, _v0);\n            if (next <= 1 && d2 < d) {\n                t = next;\n                d = d2;\n            }\n            else {\n                interval *= 0.5;\n            }\n        }\n    }\n    if (out) {\n        out[0] = cubicAt(x0, x1, x2, x3, t);\n        out[1] = cubicAt(y0, y1, y2, y3, t);\n    }\n    return mathSqrt(d);\n}\nexport function cubicLength(x0, y0, x1, y1, x2, y2, x3, y3, iteration) {\n    var px = x0;\n    var py = y0;\n    var d = 0;\n    var step = 1 / iteration;\n    for (var i = 1; i <= iteration; i++) {\n        var t = i * step;\n        var x = cubicAt(x0, x1, x2, x3, t);\n        var y = cubicAt(y0, y1, y2, y3, t);\n        var dx = x - px;\n        var dy = y - py;\n        d += Math.sqrt(dx * dx + dy * dy);\n        px = x;\n        py = y;\n    }\n    return d;\n}\nexport function quadraticAt(p0, p1, p2, t) {\n    var onet = 1 - t;\n    return onet * (onet * p0 + 2 * t * p1) + t * t * p2;\n}\nexport function quadraticDerivativeAt(p0, p1, p2, t) {\n    return 2 * ((1 - t) * (p1 - p0) + t * (p2 - p1));\n}\nexport function quadraticRootAt(p0, p1, p2, val, roots) {\n    var a = p0 - 2 * p1 + p2;\n    var b = 2 * (p1 - p0);\n    var c = p0 - val;\n    var n = 0;\n    if (isAroundZero(a)) {\n        if (isNotAroundZero(b)) {\n            var t1 = -c / b;\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n        }\n    }\n    else {\n        var disc = b * b - 4 * a * c;\n        if (isAroundZero(disc)) {\n            var t1 = -b / (2 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n        }\n        else if (disc > 0) {\n            var discSqrt = mathSqrt(disc);\n            var t1 = (-b + discSqrt) / (2 * a);\n            var t2 = (-b - discSqrt) / (2 * a);\n            if (t1 >= 0 && t1 <= 1) {\n                roots[n++] = t1;\n            }\n            if (t2 >= 0 && t2 <= 1) {\n                roots[n++] = t2;\n            }\n        }\n    }\n    return n;\n}\nexport function quadraticExtremum(p0, p1, p2) {\n    var divider = p0 + p2 - 2 * p1;\n    if (divider === 0) {\n        return 0.5;\n    }\n    else {\n        return (p0 - p1) / divider;\n    }\n}\nexport function quadraticSubdivide(p0, p1, p2, t, out) {\n    var p01 = (p1 - p0) * t + p0;\n    var p12 = (p2 - p1) * t + p1;\n    var p012 = (p12 - p01) * t + p01;\n    out[0] = p0;\n    out[1] = p01;\n    out[2] = p012;\n    out[3] = p012;\n    out[4] = p12;\n    out[5] = p2;\n}\nexport function quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, out) {\n    var t;\n    var interval = 0.005;\n    var d = Infinity;\n    _v0[0] = x;\n    _v0[1] = y;\n    for (var _t = 0; _t < 1; _t += 0.05) {\n        _v1[0] = quadraticAt(x0, x1, x2, _t);\n        _v1[1] = quadraticAt(y0, y1, y2, _t);\n        var d1 = v2DistSquare(_v0, _v1);\n        if (d1 < d) {\n            t = _t;\n            d = d1;\n        }\n    }\n    d = Infinity;\n    for (var i = 0; i < 32; i++) {\n        if (interval < EPSILON_NUMERIC) {\n            break;\n        }\n        var prev = t - interval;\n        var next = t + interval;\n        _v1[0] = quadraticAt(x0, x1, x2, prev);\n        _v1[1] = quadraticAt(y0, y1, y2, prev);\n        var d1 = v2DistSquare(_v1, _v0);\n        if (prev >= 0 && d1 < d) {\n            t = prev;\n            d = d1;\n        }\n        else {\n            _v2[0] = quadraticAt(x0, x1, x2, next);\n            _v2[1] = quadraticAt(y0, y1, y2, next);\n            var d2 = v2DistSquare(_v2, _v0);\n            if (next <= 1 && d2 < d) {\n                t = next;\n                d = d2;\n            }\n            else {\n                interval *= 0.5;\n            }\n        }\n    }\n    if (out) {\n        out[0] = quadraticAt(x0, x1, x2, t);\n        out[1] = quadraticAt(y0, y1, y2, t);\n    }\n    return mathSqrt(d);\n}\nexport function quadraticLength(x0, y0, x1, y1, x2, y2, iteration) {\n    var px = x0;\n    var py = y0;\n    var d = 0;\n    var step = 1 / iteration;\n    for (var i = 1; i <= iteration; i++) {\n        var t = i * step;\n        var x = quadraticAt(x0, x1, x2, t);\n        var y = quadraticAt(y0, y1, y2, t);\n        var dx = x - px;\n        var dy = y - py;\n        d += Math.sqrt(dx * dx + dy * dy);\n        px = x;\n        py = y;\n    }\n    return d;\n}\n","import * as vec2 from './vector';\nimport * as curve from './curve';\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI2 = Math.PI * 2;\nvar start = vec2.create();\nvar end = vec2.create();\nvar extremity = vec2.create();\nexport function fromPoints(points, min, max) {\n    if (points.length === 0) {\n        return;\n    }\n    var p = points[0];\n    var left = p[0];\n    var right = p[0];\n    var top = p[1];\n    var bottom = p[1];\n    for (var i = 1; i < points.length; i++) {\n        p = points[i];\n        left = mathMin(left, p[0]);\n        right = mathMax(right, p[0]);\n        top = mathMin(top, p[1]);\n        bottom = mathMax(bottom, p[1]);\n    }\n    min[0] = left;\n    min[1] = top;\n    max[0] = right;\n    max[1] = bottom;\n}\nexport function fromLine(x0, y0, x1, y1, min, max) {\n    min[0] = mathMin(x0, x1);\n    min[1] = mathMin(y0, y1);\n    max[0] = mathMax(x0, x1);\n    max[1] = mathMax(y0, y1);\n}\nvar xDim = [];\nvar yDim = [];\nexport function fromCubic(x0, y0, x1, y1, x2, y2, x3, y3, min, max) {\n    var cubicExtrema = curve.cubicExtrema;\n    var cubicAt = curve.cubicAt;\n    var n = cubicExtrema(x0, x1, x2, x3, xDim);\n    min[0] = Infinity;\n    min[1] = Infinity;\n    max[0] = -Infinity;\n    max[1] = -Infinity;\n    for (var i = 0; i < n; i++) {\n        var x = cubicAt(x0, x1, x2, x3, xDim[i]);\n        min[0] = mathMin(x, min[0]);\n        max[0] = mathMax(x, max[0]);\n    }\n    n = cubicExtrema(y0, y1, y2, y3, yDim);\n    for (var i = 0; i < n; i++) {\n        var y = cubicAt(y0, y1, y2, y3, yDim[i]);\n        min[1] = mathMin(y, min[1]);\n        max[1] = mathMax(y, max[1]);\n    }\n    min[0] = mathMin(x0, min[0]);\n    max[0] = mathMax(x0, max[0]);\n    min[0] = mathMin(x3, min[0]);\n    max[0] = mathMax(x3, max[0]);\n    min[1] = mathMin(y0, min[1]);\n    max[1] = mathMax(y0, max[1]);\n    min[1] = mathMin(y3, min[1]);\n    max[1] = mathMax(y3, max[1]);\n}\nexport function fromQuadratic(x0, y0, x1, y1, x2, y2, min, max) {\n    var quadraticExtremum = curve.quadraticExtremum;\n    var quadraticAt = curve.quadraticAt;\n    var tx = mathMax(mathMin(quadraticExtremum(x0, x1, x2), 1), 0);\n    var ty = mathMax(mathMin(quadraticExtremum(y0, y1, y2), 1), 0);\n    var x = quadraticAt(x0, x1, x2, tx);\n    var y = quadraticAt(y0, y1, y2, ty);\n    min[0] = mathMin(x0, x2, x);\n    min[1] = mathMin(y0, y2, y);\n    max[0] = mathMax(x0, x2, x);\n    max[1] = mathMax(y0, y2, y);\n}\nexport function fromArc(x, y, rx, ry, startAngle, endAngle, anticlockwise, min, max) {\n    var vec2Min = vec2.min;\n    var vec2Max = vec2.max;\n    var diff = Math.abs(startAngle - endAngle);\n    if (diff % PI2 < 1e-4 && diff > 1e-4) {\n        min[0] = x - rx;\n        min[1] = y - ry;\n        max[0] = x + rx;\n        max[1] = y + ry;\n        return;\n    }\n    start[0] = mathCos(startAngle) * rx + x;\n    start[1] = mathSin(startAngle) * ry + y;\n    end[0] = mathCos(endAngle) * rx + x;\n    end[1] = mathSin(endAngle) * ry + y;\n    vec2Min(min, start, end);\n    vec2Max(max, start, end);\n    startAngle = startAngle % (PI2);\n    if (startAngle < 0) {\n        startAngle = startAngle + PI2;\n    }\n    endAngle = endAngle % (PI2);\n    if (endAngle < 0) {\n        endAngle = endAngle + PI2;\n    }\n    if (startAngle > endAngle && !anticlockwise) {\n        endAngle += PI2;\n    }\n    else if (startAngle < endAngle && anticlockwise) {\n        startAngle += PI2;\n    }\n    if (anticlockwise) {\n        var tmp = endAngle;\n        endAngle = startAngle;\n        startAngle = tmp;\n    }\n    for (var angle = 0; angle < endAngle; angle += Math.PI / 2) {\n        if (angle > startAngle) {\n            extremity[0] = mathCos(angle) * rx + x;\n            extremity[1] = mathSin(angle) * ry + y;\n            vec2Min(min, extremity, min);\n            vec2Max(max, extremity, max);\n        }\n    }\n}\n","import * as vec2 from './vector';\nimport BoundingRect from './BoundingRect';\nimport { devicePixelRatio as dpr } from '../config';\nimport { fromLine, fromCubic, fromQuadratic, fromArc } from './bbox';\nimport { cubicAt, cubicLength, cubicSubdivide, quadraticLength, quadraticSubdivide } from './curve';\nvar CMD = {\n    M: 1,\n    L: 2,\n    C: 3,\n    Q: 4,\n    A: 5,\n    Z: 6,\n    R: 7\n};\nvar tmpOutX = [];\nvar tmpOutY = [];\nvar min = [];\nvar max = [];\nvar min2 = [];\nvar max2 = [];\nvar mathMin = Math.min;\nvar mathMax = Math.max;\nvar mathCos = Math.cos;\nvar mathSin = Math.sin;\nvar mathSqrt = Math.sqrt;\nvar mathAbs = Math.abs;\nvar PI = Math.PI;\nvar PI2 = PI * 2;\nvar hasTypedArray = typeof Float32Array !== 'undefined';\nvar tmpAngles = [];\nfunction modPI2(radian) {\n    var n = Math.round(radian / PI * 1e8) / 1e8;\n    return (n % 2) * PI;\n}\nexport function normalizeArcAngles(angles, anticlockwise) {\n    var newStartAngle = modPI2(angles[0]);\n    if (newStartAngle < 0) {\n        newStartAngle += PI2;\n    }\n    var delta = newStartAngle - angles[0];\n    var newEndAngle = angles[1];\n    newEndAngle += delta;\n    if (!anticlockwise && newEndAngle - newStartAngle >= PI2) {\n        newEndAngle = newStartAngle + PI2;\n    }\n    else if (anticlockwise && newStartAngle - newEndAngle >= PI2) {\n        newEndAngle = newStartAngle - PI2;\n    }\n    else if (!anticlockwise && newStartAngle > newEndAngle) {\n        newEndAngle = newStartAngle +\n            (PI2 - modPI2(newStartAngle - newEndAngle));\n    }\n    else if (anticlockwise && newStartAngle < newEndAngle) {\n        newEndAngle = newStartAngle -\n            (PI2 - modPI2(newEndAngle - newStartAngle));\n    }\n    angles[0] = newStartAngle;\n    angles[1] = newEndAngle;\n}\nvar PathProxy = (function () {\n    function PathProxy(notSaveData) {\n        this.dpr = 1;\n        this._version = 0;\n        this._xi = 0;\n        this._yi = 0;\n        this._x0 = 0;\n        this._y0 = 0;\n        this._len = 0;\n        if (notSaveData) {\n            this._saveData = false;\n        }\n        if (this._saveData) {\n            this.data = [];\n        }\n    }\n    PathProxy.prototype.increaseVersion = function () {\n        this._version++;\n    };\n    PathProxy.prototype.getVersion = function () {\n        return this._version;\n    };\n    PathProxy.prototype.setScale = function (sx, sy, segmentIgnoreThreshold) {\n        segmentIgnoreThreshold = segmentIgnoreThreshold || 0;\n        if (segmentIgnoreThreshold > 0) {\n            this._ux = mathAbs(segmentIgnoreThreshold / dpr / sx) || 0;\n            this._uy = mathAbs(segmentIgnoreThreshold / dpr / sy) || 0;\n        }\n    };\n    PathProxy.prototype.setDPR = function (dpr) {\n        this.dpr = dpr;\n    };\n    PathProxy.prototype.setContext = function (ctx) {\n        this._ctx = ctx;\n    };\n    PathProxy.prototype.getContext = function () {\n        return this._ctx;\n    };\n    PathProxy.prototype.beginPath = function () {\n        this._ctx && this._ctx.beginPath();\n        this.reset();\n        return this;\n    };\n    PathProxy.prototype.reset = function () {\n        if (this._saveData) {\n            this._len = 0;\n        }\n        if (this._lineDash) {\n            this._lineDash = null;\n            this._dashOffset = 0;\n        }\n        if (this._pathSegLen) {\n            this._pathSegLen = null;\n            this._pathLen = 0;\n        }\n        this._version++;\n    };\n    PathProxy.prototype.moveTo = function (x, y) {\n        this.addData(CMD.M, x, y);\n        this._ctx && this._ctx.moveTo(x, y);\n        this._x0 = x;\n        this._y0 = y;\n        this._xi = x;\n        this._yi = y;\n        return this;\n    };\n    PathProxy.prototype.lineTo = function (x, y) {\n        var exceedUnit = mathAbs(x - this._xi) > this._ux\n            || mathAbs(y - this._yi) > this._uy\n            || this._len < 5;\n        this.addData(CMD.L, x, y);\n        if (this._ctx && exceedUnit) {\n            this._needsDash ? this._dashedLineTo(x, y)\n                : this._ctx.lineTo(x, y);\n        }\n        if (exceedUnit) {\n            this._xi = x;\n            this._yi = y;\n        }\n        return this;\n    };\n    PathProxy.prototype.bezierCurveTo = function (x1, y1, x2, y2, x3, y3) {\n        this.addData(CMD.C, x1, y1, x2, y2, x3, y3);\n        if (this._ctx) {\n            this._needsDash ? this._dashedBezierTo(x1, y1, x2, y2, x3, y3)\n                : this._ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\n        }\n        this._xi = x3;\n        this._yi = y3;\n        return this;\n    };\n    PathProxy.prototype.quadraticCurveTo = function (x1, y1, x2, y2) {\n        this.addData(CMD.Q, x1, y1, x2, y2);\n        if (this._ctx) {\n            this._needsDash ? this._dashedQuadraticTo(x1, y1, x2, y2)\n                : this._ctx.quadraticCurveTo(x1, y1, x2, y2);\n        }\n        this._xi = x2;\n        this._yi = y2;\n        return this;\n    };\n    PathProxy.prototype.arc = function (cx, cy, r, startAngle, endAngle, anticlockwise) {\n        tmpAngles[0] = startAngle;\n        tmpAngles[1] = endAngle;\n        normalizeArcAngles(tmpAngles, anticlockwise);\n        startAngle = tmpAngles[0];\n        endAngle = tmpAngles[1];\n        var delta = endAngle - startAngle;\n        this.addData(CMD.A, cx, cy, r, r, startAngle, delta, 0, anticlockwise ? 0 : 1);\n        this._ctx && this._ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\n        this._xi = mathCos(endAngle) * r + cx;\n        this._yi = mathSin(endAngle) * r + cy;\n        return this;\n    };\n    PathProxy.prototype.arcTo = function (x1, y1, x2, y2, radius) {\n        if (this._ctx) {\n            this._ctx.arcTo(x1, y1, x2, y2, radius);\n        }\n        return this;\n    };\n    PathProxy.prototype.rect = function (x, y, w, h) {\n        this._ctx && this._ctx.rect(x, y, w, h);\n        this.addData(CMD.R, x, y, w, h);\n        return this;\n    };\n    PathProxy.prototype.closePath = function () {\n        this.addData(CMD.Z);\n        var ctx = this._ctx;\n        var x0 = this._x0;\n        var y0 = this._y0;\n        if (ctx) {\n            this._needsDash && this._dashedLineTo(x0, y0);\n            ctx.closePath();\n        }\n        this._xi = x0;\n        this._yi = y0;\n        return this;\n    };\n    PathProxy.prototype.fill = function (ctx) {\n        ctx && ctx.fill();\n        this.toStatic();\n    };\n    PathProxy.prototype.stroke = function (ctx) {\n        ctx && ctx.stroke();\n        this.toStatic();\n    };\n    PathProxy.prototype.setLineDash = function (lineDash) {\n        if (lineDash instanceof Array) {\n            this._lineDash = lineDash;\n            this._dashIdx = 0;\n            var lineDashSum = 0;\n            for (var i = 0; i < lineDash.length; i++) {\n                lineDashSum += lineDash[i];\n            }\n            this._dashSum = lineDashSum;\n            this._needsDash = true;\n        }\n        else {\n            this._lineDash = null;\n            this._needsDash = false;\n        }\n        return this;\n    };\n    PathProxy.prototype.setLineDashOffset = function (offset) {\n        this._dashOffset = offset;\n        return this;\n    };\n    PathProxy.prototype.len = function () {\n        return this._len;\n    };\n    PathProxy.prototype.setData = function (data) {\n        var len = data.length;\n        if (!(this.data && this.data.length === len) && hasTypedArray) {\n            this.data = new Float32Array(len);\n        }\n        for (var i = 0; i < len; i++) {\n            this.data[i] = data[i];\n        }\n        this._len = len;\n    };\n    PathProxy.prototype.appendPath = function (path) {\n        if (!(path instanceof Array)) {\n            path = [path];\n        }\n        var len = path.length;\n        var appendSize = 0;\n        var offset = this._len;\n        for (var i = 0; i < len; i++) {\n            appendSize += path[i].len();\n        }\n        if (hasTypedArray && (this.data instanceof Float32Array)) {\n            this.data = new Float32Array(offset + appendSize);\n        }\n        for (var i = 0; i < len; i++) {\n            var appendPathData = path[i].data;\n            for (var k = 0; k < appendPathData.length; k++) {\n                this.data[offset++] = appendPathData[k];\n            }\n        }\n        this._len = offset;\n    };\n    PathProxy.prototype.addData = function (cmd, a, b, c, d, e, f, g, h) {\n        if (!this._saveData) {\n            return;\n        }\n        var data = this.data;\n        if (this._len + arguments.length > data.length) {\n            this._expandData();\n            data = this.data;\n        }\n        for (var i = 0; i < arguments.length; i++) {\n            data[this._len++] = arguments[i];\n        }\n    };\n    PathProxy.prototype._expandData = function () {\n        if (!(this.data instanceof Array)) {\n            var newData = [];\n            for (var i = 0; i < this._len; i++) {\n                newData[i] = this.data[i];\n            }\n            this.data = newData;\n        }\n    };\n    PathProxy.prototype._dashedLineTo = function (x1, y1) {\n        var dashSum = this._dashSum;\n        var lineDash = this._lineDash;\n        var ctx = this._ctx;\n        var offset = this._dashOffset;\n        var x0 = this._xi;\n        var y0 = this._yi;\n        var dx = x1 - x0;\n        var dy = y1 - y0;\n        var dist = mathSqrt(dx * dx + dy * dy);\n        var x = x0;\n        var y = y0;\n        var nDash = lineDash.length;\n        var dash;\n        var idx;\n        dx /= dist;\n        dy /= dist;\n        if (offset < 0) {\n            offset = dashSum + offset;\n        }\n        offset %= dashSum;\n        x -= offset * dx;\n        y -= offset * dy;\n        while ((dx > 0 && x <= x1) || (dx < 0 && x >= x1)\n            || (dx === 0 && ((dy > 0 && y <= y1) || (dy < 0 && y >= y1)))) {\n            idx = this._dashIdx;\n            dash = lineDash[idx];\n            x += dx * dash;\n            y += dy * dash;\n            this._dashIdx = (idx + 1) % nDash;\n            if ((dx > 0 && x < x0) || (dx < 0 && x > x0) || (dy > 0 && y < y0) || (dy < 0 && y > y0)) {\n                continue;\n            }\n            ctx[idx % 2 ? 'moveTo' : 'lineTo'](dx >= 0 ? mathMin(x, x1) : mathMax(x, x1), dy >= 0 ? mathMin(y, y1) : mathMax(y, y1));\n        }\n        dx = x - x1;\n        dy = y - y1;\n        this._dashOffset = -mathSqrt(dx * dx + dy * dy);\n    };\n    PathProxy.prototype._dashedBezierTo = function (x1, y1, x2, y2, x3, y3) {\n        var ctx = this._ctx;\n        var dashSum = this._dashSum;\n        var offset = this._dashOffset;\n        var lineDash = this._lineDash;\n        var x0 = this._xi;\n        var y0 = this._yi;\n        var bezierLen = 0;\n        var idx = this._dashIdx;\n        var nDash = lineDash.length;\n        var t;\n        var dx;\n        var dy;\n        var x;\n        var y;\n        var tmpLen = 0;\n        if (offset < 0) {\n            offset = dashSum + offset;\n        }\n        offset %= dashSum;\n        for (t = 0; t < 1; t += 0.1) {\n            dx = cubicAt(x0, x1, x2, x3, t + 0.1)\n                - cubicAt(x0, x1, x2, x3, t);\n            dy = cubicAt(y0, y1, y2, y3, t + 0.1)\n                - cubicAt(y0, y1, y2, y3, t);\n            bezierLen += mathSqrt(dx * dx + dy * dy);\n        }\n        for (; idx < nDash; idx++) {\n            tmpLen += lineDash[idx];\n            if (tmpLen > offset) {\n                break;\n            }\n        }\n        t = (tmpLen - offset) / bezierLen;\n        while (t <= 1) {\n            x = cubicAt(x0, x1, x2, x3, t);\n            y = cubicAt(y0, y1, y2, y3, t);\n            idx % 2 ? ctx.moveTo(x, y)\n                : ctx.lineTo(x, y);\n            t += lineDash[idx] / bezierLen;\n            idx = (idx + 1) % nDash;\n        }\n        (idx % 2 !== 0) && ctx.lineTo(x3, y3);\n        dx = x3 - x;\n        dy = y3 - y;\n        this._dashOffset = -mathSqrt(dx * dx + dy * dy);\n    };\n    PathProxy.prototype._dashedQuadraticTo = function (x1, y1, x2, y2) {\n        var x3 = x2;\n        var y3 = y2;\n        x2 = (x2 + 2 * x1) / 3;\n        y2 = (y2 + 2 * y1) / 3;\n        x1 = (this._xi + 2 * x1) / 3;\n        y1 = (this._yi + 2 * y1) / 3;\n        this._dashedBezierTo(x1, y1, x2, y2, x3, y3);\n    };\n    PathProxy.prototype.toStatic = function () {\n        if (!this._saveData) {\n            return;\n        }\n        var data = this.data;\n        if (data instanceof Array) {\n            data.length = this._len;\n            if (hasTypedArray && this._len > 11) {\n                this.data = new Float32Array(data);\n            }\n        }\n    };\n    PathProxy.prototype.getBoundingRect = function () {\n        min[0] = min[1] = min2[0] = min2[1] = Number.MAX_VALUE;\n        max[0] = max[1] = max2[0] = max2[1] = -Number.MAX_VALUE;\n        var data = this.data;\n        var xi = 0;\n        var yi = 0;\n        var x0 = 0;\n        var y0 = 0;\n        var i;\n        for (i = 0; i < this._len;) {\n            var cmd = data[i++];\n            var isFirst = i === 1;\n            if (isFirst) {\n                xi = data[i];\n                yi = data[i + 1];\n                x0 = xi;\n                y0 = yi;\n            }\n            switch (cmd) {\n                case CMD.M:\n                    xi = x0 = data[i++];\n                    yi = y0 = data[i++];\n                    min2[0] = x0;\n                    min2[1] = y0;\n                    max2[0] = x0;\n                    max2[1] = y0;\n                    break;\n                case CMD.L:\n                    fromLine(xi, yi, data[i], data[i + 1], min2, max2);\n                    xi = data[i++];\n                    yi = data[i++];\n                    break;\n                case CMD.C:\n                    fromCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], min2, max2);\n                    xi = data[i++];\n                    yi = data[i++];\n                    break;\n                case CMD.Q:\n                    fromQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], min2, max2);\n                    xi = data[i++];\n                    yi = data[i++];\n                    break;\n                case CMD.A:\n                    var cx = data[i++];\n                    var cy = data[i++];\n                    var rx = data[i++];\n                    var ry = data[i++];\n                    var startAngle = data[i++];\n                    var endAngle = data[i++] + startAngle;\n                    i += 1;\n                    var anticlockwise = !data[i++];\n                    if (isFirst) {\n                        x0 = mathCos(startAngle) * rx + cx;\n                        y0 = mathSin(startAngle) * ry + cy;\n                    }\n                    fromArc(cx, cy, rx, ry, startAngle, endAngle, anticlockwise, min2, max2);\n                    xi = mathCos(endAngle) * rx + cx;\n                    yi = mathSin(endAngle) * ry + cy;\n                    break;\n                case CMD.R:\n                    x0 = xi = data[i++];\n                    y0 = yi = data[i++];\n                    var width = data[i++];\n                    var height = data[i++];\n                    fromLine(x0, y0, x0 + width, y0 + height, min2, max2);\n                    break;\n                case CMD.Z:\n                    xi = x0;\n                    yi = y0;\n                    break;\n            }\n            vec2.min(min, min, min2);\n            vec2.max(max, max, max2);\n        }\n        if (i === 0) {\n            min[0] = min[1] = max[0] = max[1] = 0;\n        }\n        return new BoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n    };\n    PathProxy.prototype._calculateLength = function () {\n        var data = this.data;\n        var len = this._len;\n        var ux = this._ux;\n        var uy = this._uy;\n        var xi = 0;\n        var yi = 0;\n        var x0 = 0;\n        var y0 = 0;\n        if (!this._pathSegLen) {\n            this._pathSegLen = [];\n        }\n        var pathSegLen = this._pathSegLen;\n        var pathTotalLen = 0;\n        var segCount = 0;\n        for (var i = 0; i < len;) {\n            var cmd = data[i++];\n            var isFirst = i === 1;\n            if (isFirst) {\n                xi = data[i];\n                yi = data[i + 1];\n                x0 = xi;\n                y0 = yi;\n            }\n            var l = -1;\n            switch (cmd) {\n                case CMD.M:\n                    xi = x0 = data[i++];\n                    yi = y0 = data[i++];\n                    break;\n                case CMD.L: {\n                    var x2 = data[i++];\n                    var y2 = data[i++];\n                    var dx = x2 - xi;\n                    var dy = y2 - yi;\n                    if (mathAbs(dx) > ux || mathAbs(dy) > uy || i === len - 1) {\n                        l = Math.sqrt(dx * dx + dy * dy);\n                        xi = x2;\n                        yi = y2;\n                    }\n                    break;\n                }\n                case CMD.C: {\n                    var x1 = data[i++];\n                    var y1 = data[i++];\n                    var x2 = data[i++];\n                    var y2 = data[i++];\n                    var x3 = data[i++];\n                    var y3 = data[i++];\n                    l = cubicLength(xi, yi, x1, y1, x2, y2, x3, y3, 10);\n                    xi = x3;\n                    yi = y3;\n                    break;\n                }\n                case CMD.Q: {\n                    var x1 = data[i++];\n                    var y1 = data[i++];\n                    var x2 = data[i++];\n                    var y2 = data[i++];\n                    l = quadraticLength(xi, yi, x1, y1, x2, y2, 10);\n                    xi = x2;\n                    yi = y2;\n                    break;\n                }\n                case CMD.A:\n                    var cx = data[i++];\n                    var cy = data[i++];\n                    var rx = data[i++];\n                    var ry = data[i++];\n                    var startAngle = data[i++];\n                    var delta = data[i++];\n                    var endAngle = delta + startAngle;\n                    i += 1;\n                    var anticlockwise = !data[i++];\n                    if (isFirst) {\n                        x0 = mathCos(startAngle) * rx + cx;\n                        y0 = mathSin(startAngle) * ry + cy;\n                    }\n                    l = mathMax(rx, ry) * mathMin(PI2, Math.abs(delta));\n                    xi = mathCos(endAngle) * rx + cx;\n                    yi = mathSin(endAngle) * ry + cy;\n                    break;\n                case CMD.R: {\n                    x0 = xi = data[i++];\n                    y0 = yi = data[i++];\n                    var width = data[i++];\n                    var height = data[i++];\n                    l = width * 2 + height * 2;\n                    break;\n                }\n                case CMD.Z: {\n                    var dx = x0 - xi;\n                    var dy = y0 - yi;\n                    l = Math.sqrt(dx * dx + dy * dy);\n                    xi = x0;\n                    yi = y0;\n                    break;\n                }\n            }\n            if (l >= 0) {\n                pathSegLen[segCount++] = l;\n                pathTotalLen += l;\n            }\n        }\n        this._pathLen = pathTotalLen;\n        return pathTotalLen;\n    };\n    PathProxy.prototype.rebuildPath = function (ctx, percent) {\n        var d = this.data;\n        var ux = this._ux;\n        var uy = this._uy;\n        var len = this._len;\n        var x0;\n        var y0;\n        var xi;\n        var yi;\n        var x;\n        var y;\n        var drawPart = percent < 1;\n        var pathSegLen;\n        var pathTotalLen;\n        var accumLength = 0;\n        var segCount = 0;\n        var displayedLength;\n        if (drawPart) {\n            if (!this._pathSegLen) {\n                this._calculateLength();\n            }\n            pathSegLen = this._pathSegLen;\n            pathTotalLen = this._pathLen;\n            displayedLength = percent * pathTotalLen;\n            if (!displayedLength) {\n                return;\n            }\n        }\n        lo: for (var i = 0; i < len;) {\n            var cmd = d[i++];\n            var isFirst = i === 1;\n            if (isFirst) {\n                xi = d[i];\n                yi = d[i + 1];\n                x0 = xi;\n                y0 = yi;\n            }\n            switch (cmd) {\n                case CMD.M:\n                    x0 = xi = d[i++];\n                    y0 = yi = d[i++];\n                    ctx.moveTo(xi, yi);\n                    break;\n                case CMD.L: {\n                    x = d[i++];\n                    y = d[i++];\n                    if (mathAbs(x - xi) > ux || mathAbs(y - yi) > uy || i === len - 1) {\n                        if (drawPart) {\n                            var l = pathSegLen[segCount++];\n                            if (accumLength + l > displayedLength) {\n                                var t = (displayedLength - accumLength) / l;\n                                ctx.lineTo(xi * (1 - t) + x * t, yi * (1 - t) + y * t);\n                                break lo;\n                            }\n                            accumLength += l;\n                        }\n                        ctx.lineTo(x, y);\n                        xi = x;\n                        yi = y;\n                    }\n                    break;\n                }\n                case CMD.C: {\n                    var x1 = d[i++];\n                    var y1 = d[i++];\n                    var x2 = d[i++];\n                    var y2 = d[i++];\n                    var x3 = d[i++];\n                    var y3 = d[i++];\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            var t = (displayedLength - accumLength) / l;\n                            cubicSubdivide(xi, x1, x2, x3, t, tmpOutX);\n                            cubicSubdivide(yi, y1, y2, y3, t, tmpOutY);\n                            ctx.bezierCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2], tmpOutX[3], tmpOutY[3]);\n                            break lo;\n                        }\n                        accumLength += l;\n                    }\n                    ctx.bezierCurveTo(x1, y1, x2, y2, x3, y3);\n                    xi = x3;\n                    yi = y3;\n                    break;\n                }\n                case CMD.Q: {\n                    var x1 = d[i++];\n                    var y1 = d[i++];\n                    var x2 = d[i++];\n                    var y2 = d[i++];\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            var t = (displayedLength - accumLength) / l;\n                            quadraticSubdivide(xi, x1, x2, t, tmpOutX);\n                            quadraticSubdivide(yi, y1, y2, t, tmpOutY);\n                            ctx.quadraticCurveTo(tmpOutX[1], tmpOutY[1], tmpOutX[2], tmpOutY[2]);\n                            break lo;\n                        }\n                        accumLength += l;\n                    }\n                    ctx.quadraticCurveTo(x1, y1, x2, y2);\n                    xi = x2;\n                    yi = y2;\n                    break;\n                }\n                case CMD.A:\n                    var cx = d[i++];\n                    var cy = d[i++];\n                    var rx = d[i++];\n                    var ry = d[i++];\n                    var startAngle = d[i++];\n                    var delta = d[i++];\n                    var psi = d[i++];\n                    var anticlockwise = !d[i++];\n                    var r = (rx > ry) ? rx : ry;\n                    var scaleX = (rx > ry) ? 1 : rx / ry;\n                    var scaleY = (rx > ry) ? ry / rx : 1;\n                    var isEllipse = mathAbs(rx - ry) > 1e-3;\n                    var endAngle = startAngle + delta;\n                    var breakBuild = false;\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            endAngle = startAngle + delta * (displayedLength - accumLength) / l;\n                            breakBuild = true;\n                        }\n                        accumLength += l;\n                    }\n                    if (isEllipse && ctx.ellipse) {\n                        ctx.ellipse(cx, cy, rx, ry, psi, startAngle, endAngle, anticlockwise);\n                    }\n                    else {\n                        ctx.arc(cx, cy, r, startAngle, endAngle, anticlockwise);\n                    }\n                    if (breakBuild) {\n                        break lo;\n                    }\n                    if (isFirst) {\n                        x0 = mathCos(startAngle) * rx + cx;\n                        y0 = mathSin(startAngle) * ry + cy;\n                    }\n                    xi = mathCos(endAngle) * rx + cx;\n                    yi = mathSin(endAngle) * ry + cy;\n                    break;\n                case CMD.R:\n                    x0 = xi = d[i];\n                    y0 = yi = d[i + 1];\n                    x = d[i++];\n                    y = d[i++];\n                    var width = d[i++];\n                    var height = d[i++];\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            var d_1 = displayedLength - accumLength;\n                            ctx.moveTo(x, y);\n                            ctx.lineTo(x + mathMin(d_1, width), y);\n                            d_1 -= width;\n                            if (d_1 > 0) {\n                                ctx.lineTo(x + width, y + mathMin(d_1, height));\n                            }\n                            d_1 -= height;\n                            if (d_1 > 0) {\n                                ctx.lineTo(x + mathMax(width - d_1, 0), y + height);\n                            }\n                            d_1 -= width;\n                            if (d_1 > 0) {\n                                ctx.lineTo(x, y + mathMax(height - d_1, 0));\n                            }\n                            break lo;\n                        }\n                        accumLength += l;\n                    }\n                    ctx.rect(x, y, width, height);\n                    break;\n                case CMD.Z:\n                    if (drawPart) {\n                        var l = pathSegLen[segCount++];\n                        if (accumLength + l > displayedLength) {\n                            var t = (displayedLength - accumLength) / l;\n                            ctx.lineTo(xi * (1 - t) + x0 * t, yi * (1 - t) + y0 * t);\n                            break lo;\n                        }\n                        accumLength += l;\n                    }\n                    ctx.closePath();\n                    xi = x0;\n                    yi = y0;\n            }\n        }\n    };\n    PathProxy.CMD = CMD;\n    PathProxy.initDefaultProps = (function () {\n        var proto = PathProxy.prototype;\n        proto._saveData = true;\n        proto._needsDash = false;\n        proto._dashOffset = 0;\n        proto._dashIdx = 0;\n        proto._dashSum = 0;\n        proto._ux = 0;\n        proto._uy = 0;\n    })();\n    return PathProxy;\n}());\nexport default PathProxy;\n","export function containStroke(x0, y0, x1, y1, lineWidth, x, y) {\n    if (lineWidth === 0) {\n        return false;\n    }\n    var _l = lineWidth;\n    var _a = 0;\n    var _b = x0;\n    if ((y > y0 + _l && y > y1 + _l)\n        || (y < y0 - _l && y < y1 - _l)\n        || (x > x0 + _l && x > x1 + _l)\n        || (x < x0 - _l && x < x1 - _l)) {\n        return false;\n    }\n    if (x0 !== x1) {\n        _a = (y0 - y1) / (x0 - x1);\n        _b = (x0 * y1 - x1 * y0) / (x0 - x1);\n    }\n    else {\n        return Math.abs(x - x0) <= _l / 2;\n    }\n    var tmp = _a * x - y + _b;\n    var _s = tmp * tmp / (_a * _a + 1);\n    return _s <= _l / 2 * _l / 2;\n}\n","import * as curve from '../core/curve';\nexport function containStroke(x0, y0, x1, y1, x2, y2, x3, y3, lineWidth, x, y) {\n    if (lineWidth === 0) {\n        return false;\n    }\n    var _l = lineWidth;\n    if ((y > y0 + _l && y > y1 + _l && y > y2 + _l && y > y3 + _l)\n        || (y < y0 - _l && y < y1 - _l && y < y2 - _l && y < y3 - _l)\n        || (x > x0 + _l && x > x1 + _l && x > x2 + _l && x > x3 + _l)\n        || (x < x0 - _l && x < x1 - _l && x < x2 - _l && x < x3 - _l)) {\n        return false;\n    }\n    var d = curve.cubicProjectPoint(x0, y0, x1, y1, x2, y2, x3, y3, x, y, null);\n    return d <= _l / 2;\n}\n","import { quadraticProjectPoint } from '../core/curve';\nexport function containStroke(x0, y0, x1, y1, x2, y2, lineWidth, x, y) {\n    if (lineWidth === 0) {\n        return false;\n    }\n    var _l = lineWidth;\n    if ((y > y0 + _l && y > y1 + _l && y > y2 + _l)\n        || (y < y0 - _l && y < y1 - _l && y < y2 - _l)\n        || (x > x0 + _l && x > x1 + _l && x > x2 + _l)\n        || (x < x0 - _l && x < x1 - _l && x < x2 - _l)) {\n        return false;\n    }\n    var d = quadraticProjectPoint(x0, y0, x1, y1, x2, y2, x, y, null);\n    return d <= _l / 2;\n}\n","var PI2 = Math.PI * 2;\nexport function normalizeRadian(angle) {\n    angle %= PI2;\n    if (angle < 0) {\n        angle += PI2;\n    }\n    return angle;\n}\n","import { normalizeRadian } from './util';\nvar PI2 = Math.PI * 2;\nexport function containStroke(cx, cy, r, startAngle, endAngle, anticlockwise, lineWidth, x, y) {\n    if (lineWidth === 0) {\n        return false;\n    }\n    var _l = lineWidth;\n    x -= cx;\n    y -= cy;\n    var d = Math.sqrt(x * x + y * y);\n    if ((d - _l > r) || (d + _l < r)) {\n        return false;\n    }\n    if (Math.abs(startAngle - endAngle) % PI2 < 1e-4) {\n        return true;\n    }\n    if (anticlockwise) {\n        var tmp = startAngle;\n        startAngle = normalizeRadian(endAngle);\n        endAngle = normalizeRadian(tmp);\n    }\n    else {\n        startAngle = normalizeRadian(startAngle);\n        endAngle = normalizeRadian(endAngle);\n    }\n    if (startAngle > endAngle) {\n        endAngle += PI2;\n    }\n    var angle = Math.atan2(y, x);\n    if (angle < 0) {\n        angle += PI2;\n    }\n    return (angle >= startAngle && angle <= endAngle)\n        || (angle + PI2 >= startAngle && angle + PI2 <= endAngle);\n}\n","export default function windingLine(x0, y0, x1, y1, x, y) {\n    if ((y > y0 && y > y1) || (y < y0 && y < y1)) {\n        return 0;\n    }\n    if (y1 === y0) {\n        return 0;\n    }\n    var t = (y - y0) / (y1 - y0);\n    var dir = y1 < y0 ? 1 : -1;\n    if (t === 1 || t === 0) {\n        dir = y1 < y0 ? 0.5 : -0.5;\n    }\n    var x_ = t * (x1 - x0) + x0;\n    return x_ === x ? Infinity : x_ > x ? dir : 0;\n}\n","import PathProxy from '../core/PathProxy';\nimport * as line from './line';\nimport * as cubic from './cubic';\nimport * as quadratic from './quadratic';\nimport * as arc from './arc';\nimport * as curve from '../core/curve';\nimport windingLine from './windingLine';\nvar CMD = PathProxy.CMD;\nvar PI2 = Math.PI * 2;\nvar EPSILON = 1e-4;\nfunction isAroundEqual(a, b) {\n    return Math.abs(a - b) < EPSILON;\n}\nvar roots = [-1, -1, -1];\nvar extrema = [-1, -1];\nfunction swapExtrema() {\n    var tmp = extrema[0];\n    extrema[0] = extrema[1];\n    extrema[1] = tmp;\n}\nfunction windingCubic(x0, y0, x1, y1, x2, y2, x3, y3, x, y) {\n    if ((y > y0 && y > y1 && y > y2 && y > y3)\n        || (y < y0 && y < y1 && y < y2 && y < y3)) {\n        return 0;\n    }\n    var nRoots = curve.cubicRootAt(y0, y1, y2, y3, y, roots);\n    if (nRoots === 0) {\n        return 0;\n    }\n    else {\n        var w = 0;\n        var nExtrema = -1;\n        var y0_ = void 0;\n        var y1_ = void 0;\n        for (var i = 0; i < nRoots; i++) {\n            var t = roots[i];\n            var unit = (t === 0 || t === 1) ? 0.5 : 1;\n            var x_ = curve.cubicAt(x0, x1, x2, x3, t);\n            if (x_ < x) {\n                continue;\n            }\n            if (nExtrema < 0) {\n                nExtrema = curve.cubicExtrema(y0, y1, y2, y3, extrema);\n                if (extrema[1] < extrema[0] && nExtrema > 1) {\n                    swapExtrema();\n                }\n                y0_ = curve.cubicAt(y0, y1, y2, y3, extrema[0]);\n                if (nExtrema > 1) {\n                    y1_ = curve.cubicAt(y0, y1, y2, y3, extrema[1]);\n                }\n            }\n            if (nExtrema === 2) {\n                if (t < extrema[0]) {\n                    w += y0_ < y0 ? unit : -unit;\n                }\n                else if (t < extrema[1]) {\n                    w += y1_ < y0_ ? unit : -unit;\n                }\n                else {\n                    w += y3 < y1_ ? unit : -unit;\n                }\n            }\n            else {\n                if (t < extrema[0]) {\n                    w += y0_ < y0 ? unit : -unit;\n                }\n                else {\n                    w += y3 < y0_ ? unit : -unit;\n                }\n            }\n        }\n        return w;\n    }\n}\nfunction windingQuadratic(x0, y0, x1, y1, x2, y2, x, y) {\n    if ((y > y0 && y > y1 && y > y2)\n        || (y < y0 && y < y1 && y < y2)) {\n        return 0;\n    }\n    var nRoots = curve.quadraticRootAt(y0, y1, y2, y, roots);\n    if (nRoots === 0) {\n        return 0;\n    }\n    else {\n        var t = curve.quadraticExtremum(y0, y1, y2);\n        if (t >= 0 && t <= 1) {\n            var w = 0;\n            var y_ = curve.quadraticAt(y0, y1, y2, t);\n            for (var i = 0; i < nRoots; i++) {\n                var unit = (roots[i] === 0 || roots[i] === 1) ? 0.5 : 1;\n                var x_ = curve.quadraticAt(x0, x1, x2, roots[i]);\n                if (x_ < x) {\n                    continue;\n                }\n                if (roots[i] < t) {\n                    w += y_ < y0 ? unit : -unit;\n                }\n                else {\n                    w += y2 < y_ ? unit : -unit;\n                }\n            }\n            return w;\n        }\n        else {\n            var unit = (roots[0] === 0 || roots[0] === 1) ? 0.5 : 1;\n            var x_ = curve.quadraticAt(x0, x1, x2, roots[0]);\n            if (x_ < x) {\n                return 0;\n            }\n            return y2 < y0 ? unit : -unit;\n        }\n    }\n}\nfunction windingArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y) {\n    y -= cy;\n    if (y > r || y < -r) {\n        return 0;\n    }\n    var tmp = Math.sqrt(r * r - y * y);\n    roots[0] = -tmp;\n    roots[1] = tmp;\n    var dTheta = Math.abs(startAngle - endAngle);\n    if (dTheta < 1e-4) {\n        return 0;\n    }\n    if (dTheta >= PI2 - 1e-4) {\n        startAngle = 0;\n        endAngle = PI2;\n        var dir = anticlockwise ? 1 : -1;\n        if (x >= roots[0] + cx && x <= roots[1] + cx) {\n            return dir;\n        }\n        else {\n            return 0;\n        }\n    }\n    if (startAngle > endAngle) {\n        var tmp_1 = startAngle;\n        startAngle = endAngle;\n        endAngle = tmp_1;\n    }\n    if (startAngle < 0) {\n        startAngle += PI2;\n        endAngle += PI2;\n    }\n    var w = 0;\n    for (var i = 0; i < 2; i++) {\n        var x_ = roots[i];\n        if (x_ + cx > x) {\n            var angle = Math.atan2(y, x_);\n            var dir = anticlockwise ? 1 : -1;\n            if (angle < 0) {\n                angle = PI2 + angle;\n            }\n            if ((angle >= startAngle && angle <= endAngle)\n                || (angle + PI2 >= startAngle && angle + PI2 <= endAngle)) {\n                if (angle > Math.PI / 2 && angle < Math.PI * 1.5) {\n                    dir = -dir;\n                }\n                w += dir;\n            }\n        }\n    }\n    return w;\n}\nfunction containPath(path, lineWidth, isStroke, x, y) {\n    var data = path.data;\n    var len = path.len();\n    var w = 0;\n    var xi = 0;\n    var yi = 0;\n    var x0 = 0;\n    var y0 = 0;\n    var x1;\n    var y1;\n    for (var i = 0; i < len;) {\n        var cmd = data[i++];\n        var isFirst = i === 1;\n        if (cmd === CMD.M && i > 1) {\n            if (!isStroke) {\n                w += windingLine(xi, yi, x0, y0, x, y);\n            }\n        }\n        if (isFirst) {\n            xi = data[i];\n            yi = data[i + 1];\n            x0 = xi;\n            y0 = yi;\n        }\n        switch (cmd) {\n            case CMD.M:\n                x0 = data[i++];\n                y0 = data[i++];\n                xi = x0;\n                yi = y0;\n                break;\n            case CMD.L:\n                if (isStroke) {\n                    if (line.containStroke(xi, yi, data[i], data[i + 1], lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingLine(xi, yi, data[i], data[i + 1], x, y) || 0;\n                }\n                xi = data[i++];\n                yi = data[i++];\n                break;\n            case CMD.C:\n                if (isStroke) {\n                    if (cubic.containStroke(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingCubic(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\n                }\n                xi = data[i++];\n                yi = data[i++];\n                break;\n            case CMD.Q:\n                if (isStroke) {\n                    if (quadratic.containStroke(xi, yi, data[i++], data[i++], data[i], data[i + 1], lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingQuadratic(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y) || 0;\n                }\n                xi = data[i++];\n                yi = data[i++];\n                break;\n            case CMD.A:\n                var cx = data[i++];\n                var cy = data[i++];\n                var rx = data[i++];\n                var ry = data[i++];\n                var theta = data[i++];\n                var dTheta = data[i++];\n                i += 1;\n                var anticlockwise = !!(1 - data[i++]);\n                x1 = Math.cos(theta) * rx + cx;\n                y1 = Math.sin(theta) * ry + cy;\n                if (!isFirst) {\n                    w += windingLine(xi, yi, x1, y1, x, y);\n                }\n                else {\n                    x0 = x1;\n                    y0 = y1;\n                }\n                var _x = (x - cx) * ry / rx + cx;\n                if (isStroke) {\n                    if (arc.containStroke(cx, cy, ry, theta, theta + dTheta, anticlockwise, lineWidth, _x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y);\n                }\n                xi = Math.cos(theta + dTheta) * rx + cx;\n                yi = Math.sin(theta + dTheta) * ry + cy;\n                break;\n            case CMD.R:\n                x0 = xi = data[i++];\n                y0 = yi = data[i++];\n                var width = data[i++];\n                var height = data[i++];\n                x1 = x0 + width;\n                y1 = y0 + height;\n                if (isStroke) {\n                    if (line.containStroke(x0, y0, x1, y0, lineWidth, x, y)\n                        || line.containStroke(x1, y0, x1, y1, lineWidth, x, y)\n                        || line.containStroke(x1, y1, x0, y1, lineWidth, x, y)\n                        || line.containStroke(x0, y1, x0, y0, lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingLine(x1, y0, x1, y1, x, y);\n                    w += windingLine(x0, y1, x0, y0, x, y);\n                }\n                break;\n            case CMD.Z:\n                if (isStroke) {\n                    if (line.containStroke(xi, yi, x0, y0, lineWidth, x, y)) {\n                        return true;\n                    }\n                }\n                else {\n                    w += windingLine(xi, yi, x0, y0, x, y);\n                }\n                xi = x0;\n                yi = y0;\n                break;\n        }\n    }\n    if (!isStroke && !isAroundEqual(yi, y0)) {\n        w += windingLine(xi, yi, x0, y0, x, y) || 0;\n    }\n    return w !== 0;\n}\nexport function contain(pathProxy, x, y) {\n    return containPath(pathProxy, 0, false, x, y);\n}\nexport function containStroke(pathProxy, lineWidth, x, y) {\n    return containPath(pathProxy, lineWidth, true, x, y);\n}\n","import { __extends } from \"tslib\";\nimport Displayable, { DEFAULT_COMMON_STYLE, DEFAULT_COMMON_ANIMATION_PROPS } from './Displayable';\nimport Element from '../Element';\nimport PathProxy from '../core/PathProxy';\nimport * as pathContain from '../contain/path';\nimport { defaults, keys, extend, clone, isString, createObject } from '../core/util';\nimport { lum } from '../tool/color';\nimport { DARK_LABEL_COLOR, LIGHT_LABEL_COLOR, DARK_MODE_THRESHOLD, LIGHTER_LABEL_COLOR } from '../config';\nexport var DEFAULT_PATH_STYLE = defaults({\n    fill: '#000',\n    stroke: null,\n    strokePercent: 1,\n    fillOpacity: 1,\n    strokeOpacity: 1,\n    lineDashOffset: 0,\n    lineWidth: 1,\n    lineCap: 'butt',\n    miterLimit: 10,\n    strokeNoScale: false,\n    strokeFirst: false\n}, DEFAULT_COMMON_STYLE);\nexport var DEFAULT_PATH_ANIMATION_PROPS = {\n    style: defaults({\n        fill: true,\n        stroke: true,\n        strokePercent: true,\n        fillOpacity: true,\n        strokeOpacity: true,\n        lineDashOffset: true,\n        lineWidth: true,\n        miterLimit: true\n    }, DEFAULT_COMMON_ANIMATION_PROPS.style)\n};\nvar pathCopyParams = [\n    'x', 'y', 'rotation', 'scaleX', 'scaleY', 'originX', 'originY', 'invisible',\n    'culling', 'z', 'z2', 'zlevel', 'parent'\n];\nvar Path = (function (_super) {\n    __extends(Path, _super);\n    function Path(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Path.prototype.update = function () {\n        var _this = this;\n        _super.prototype.update.call(this);\n        var style = this.style;\n        if (style.decal) {\n            var decalEl = this._decalEl\n                = this._decalEl || new Path();\n            if (decalEl.buildPath === Path.prototype.buildPath) {\n                decalEl.buildPath = function (ctx) {\n                    _this.buildPath(ctx, _this.shape);\n                };\n            }\n            decalEl.silent = true;\n            var decalElStyle = decalEl.style;\n            for (var key in style) {\n                if (decalElStyle[key] !== style[key]) {\n                    decalElStyle[key] = style[key];\n                }\n            }\n            decalElStyle.fill = style.fill ? style.decal : null;\n            decalElStyle.decal = null;\n            decalElStyle.shadowColor = null;\n            style.strokeFirst && (decalElStyle.stroke = null);\n            for (var i = 0; i < pathCopyParams.length; ++i) {\n                decalEl[pathCopyParams[i]] = this[pathCopyParams[i]];\n            }\n            decalEl.__dirty |= Element.REDARAW_BIT;\n        }\n        else if (this._decalEl) {\n            this._decalEl = null;\n        }\n    };\n    Path.prototype.getDecalElement = function () {\n        return this._decalEl;\n    };\n    Path.prototype._init = function (props) {\n        var keysArr = keys(props);\n        this.shape = this.getDefaultShape();\n        var defaultStyle = this.getDefaultStyle();\n        if (defaultStyle) {\n            this.useStyle(defaultStyle);\n        }\n        for (var i = 0; i < keysArr.length; i++) {\n            var key = keysArr[i];\n            var value = props[key];\n            if (key === 'style') {\n                if (!this.style) {\n                    this.useStyle(value);\n                }\n                else {\n                    extend(this.style, value);\n                }\n            }\n            else if (key === 'shape') {\n                extend(this.shape, value);\n            }\n            else {\n                _super.prototype.attrKV.call(this, key, value);\n            }\n        }\n        if (!this.style) {\n            this.useStyle({});\n        }\n    };\n    Path.prototype.getDefaultStyle = function () {\n        return null;\n    };\n    Path.prototype.getDefaultShape = function () {\n        return {};\n    };\n    Path.prototype.canBeInsideText = function () {\n        return this.hasFill();\n    };\n    Path.prototype.getInsideTextFill = function () {\n        var pathFill = this.style.fill;\n        if (pathFill !== 'none') {\n            if (isString(pathFill)) {\n                var fillLum = lum(pathFill, 0);\n                if (fillLum > 0.5) {\n                    return DARK_LABEL_COLOR;\n                }\n                else if (fillLum > 0.2) {\n                    return LIGHTER_LABEL_COLOR;\n                }\n                return LIGHT_LABEL_COLOR;\n            }\n            else if (pathFill) {\n                return LIGHT_LABEL_COLOR;\n            }\n        }\n        return DARK_LABEL_COLOR;\n    };\n    Path.prototype.getInsideTextStroke = function (textFill) {\n        var pathFill = this.style.fill;\n        if (isString(pathFill)) {\n            var zr = this.__zr;\n            var isDarkMode = !!(zr && zr.isDarkMode());\n            var isDarkLabel = lum(textFill, 0) < DARK_MODE_THRESHOLD;\n            if (isDarkMode === isDarkLabel) {\n                return pathFill;\n            }\n        }\n    };\n    Path.prototype.buildPath = function (ctx, shapeCfg, inBundle) { };\n    Path.prototype.pathUpdated = function () {\n        this.__dirty &= ~Path.SHAPE_CHANGED_BIT;\n    };\n    Path.prototype.createPathProxy = function () {\n        this.path = new PathProxy(false);\n    };\n    Path.prototype.hasStroke = function () {\n        var style = this.style;\n        var stroke = style.stroke;\n        return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\n    };\n    Path.prototype.hasFill = function () {\n        var style = this.style;\n        var fill = style.fill;\n        return fill != null && fill !== 'none';\n    };\n    Path.prototype.getBoundingRect = function () {\n        var rect = this._rect;\n        var style = this.style;\n        var needsUpdateRect = !rect;\n        if (needsUpdateRect) {\n            var firstInvoke = false;\n            if (!this.path) {\n                firstInvoke = true;\n                this.createPathProxy();\n            }\n            var path = this.path;\n            if (firstInvoke || (this.__dirty & Path.SHAPE_CHANGED_BIT)) {\n                path.beginPath();\n                this.buildPath(path, this.shape, false);\n                this.pathUpdated();\n            }\n            rect = path.getBoundingRect();\n        }\n        this._rect = rect;\n        if (this.hasStroke() && this.path && this.path.len() > 0) {\n            var rectWithStroke = this._rectWithStroke || (this._rectWithStroke = rect.clone());\n            if (this.__dirty || needsUpdateRect) {\n                rectWithStroke.copy(rect);\n                var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\n                var w = style.lineWidth;\n                if (!this.hasFill()) {\n                    var strokeContainThreshold = this.strokeContainThreshold;\n                    w = Math.max(w, strokeContainThreshold == null ? 4 : strokeContainThreshold);\n                }\n                if (lineScale > 1e-10) {\n                    rectWithStroke.width += w / lineScale;\n                    rectWithStroke.height += w / lineScale;\n                    rectWithStroke.x -= w / lineScale / 2;\n                    rectWithStroke.y -= w / lineScale / 2;\n                }\n            }\n            return rectWithStroke;\n        }\n        return rect;\n    };\n    Path.prototype.contain = function (x, y) {\n        var localPos = this.transformCoordToLocal(x, y);\n        var rect = this.getBoundingRect();\n        var style = this.style;\n        x = localPos[0];\n        y = localPos[1];\n        if (rect.contain(x, y)) {\n            var pathProxy = this.path;\n            if (this.hasStroke()) {\n                var lineWidth = style.lineWidth;\n                var lineScale = style.strokeNoScale ? this.getLineScale() : 1;\n                if (lineScale > 1e-10) {\n                    if (!this.hasFill()) {\n                        lineWidth = Math.max(lineWidth, this.strokeContainThreshold);\n                    }\n                    if (pathContain.containStroke(pathProxy, lineWidth / lineScale, x, y)) {\n                        return true;\n                    }\n                }\n            }\n            if (this.hasFill()) {\n                return pathContain.contain(pathProxy, x, y);\n            }\n        }\n        return false;\n    };\n    Path.prototype.dirtyShape = function () {\n        this.__dirty |= Path.SHAPE_CHANGED_BIT;\n        if (this._rect) {\n            this._rect = null;\n        }\n        if (this._decalEl) {\n            this._decalEl.dirtyShape();\n        }\n        this.markRedraw();\n    };\n    Path.prototype.dirty = function () {\n        this.dirtyStyle();\n        this.dirtyShape();\n    };\n    Path.prototype.animateShape = function (loop) {\n        return this.animate('shape', loop);\n    };\n    Path.prototype.updateDuringAnimation = function (targetKey) {\n        if (targetKey === 'style') {\n            this.dirtyStyle();\n        }\n        else if (targetKey === 'shape') {\n            this.dirtyShape();\n        }\n        else {\n            this.markRedraw();\n        }\n    };\n    Path.prototype.attrKV = function (key, value) {\n        if (key === 'shape') {\n            this.setShape(value);\n        }\n        else {\n            _super.prototype.attrKV.call(this, key, value);\n        }\n    };\n    Path.prototype.setShape = function (keyOrObj, value) {\n        var shape = this.shape;\n        if (!shape) {\n            shape = this.shape = {};\n        }\n        if (typeof keyOrObj === 'string') {\n            shape[keyOrObj] = value;\n        }\n        else {\n            extend(shape, keyOrObj);\n        }\n        this.dirtyShape();\n        return this;\n    };\n    Path.prototype.shapeChanged = function () {\n        return !!(this.__dirty & Path.SHAPE_CHANGED_BIT);\n    };\n    Path.prototype.createStyle = function (obj) {\n        return createObject(DEFAULT_PATH_STYLE, obj);\n    };\n    Path.prototype._innerSaveToNormal = function (toState) {\n        _super.prototype._innerSaveToNormal.call(this, toState);\n        var normalState = this._normalState;\n        if (toState.shape && !normalState.shape) {\n            normalState.shape = extend({}, this.shape);\n        }\n    };\n    Path.prototype._applyStateObj = function (stateName, state, normalState, keepCurrentStates, transition, animationCfg) {\n        _super.prototype._applyStateObj.call(this, stateName, state, normalState, keepCurrentStates, transition, animationCfg);\n        var needsRestoreToNormal = !(state && keepCurrentStates);\n        var targetShape;\n        if (state && state.shape) {\n            if (transition) {\n                if (keepCurrentStates) {\n                    targetShape = state.shape;\n                }\n                else {\n                    targetShape = extend({}, normalState.shape);\n                    extend(targetShape, state.shape);\n                }\n            }\n            else {\n                targetShape = extend({}, keepCurrentStates ? this.shape : normalState.shape);\n                extend(targetShape, state.shape);\n            }\n        }\n        else if (needsRestoreToNormal) {\n            targetShape = normalState.shape;\n        }\n        if (targetShape) {\n            if (transition) {\n                this.shape = extend({}, this.shape);\n                var targetShapePrimaryProps = {};\n                var shapeKeys = keys(targetShape);\n                for (var i = 0; i < shapeKeys.length; i++) {\n                    var key = shapeKeys[i];\n                    if (typeof targetShape[key] === 'object') {\n                        this.shape[key] = targetShape[key];\n                    }\n                    else {\n                        targetShapePrimaryProps[key] = targetShape[key];\n                    }\n                }\n                this._transitionState(stateName, {\n                    shape: targetShapePrimaryProps\n                }, animationCfg);\n            }\n            else {\n                this.shape = targetShape;\n                this.dirtyShape();\n            }\n        }\n    };\n    Path.prototype._mergeStates = function (states) {\n        var mergedState = _super.prototype._mergeStates.call(this, states);\n        var mergedShape;\n        for (var i = 0; i < states.length; i++) {\n            var state = states[i];\n            if (state.shape) {\n                mergedShape = mergedShape || {};\n                this._mergeStyle(mergedShape, state.shape);\n            }\n        }\n        if (mergedShape) {\n            mergedState.shape = mergedShape;\n        }\n        return mergedState;\n    };\n    Path.prototype.getAnimationStyleProps = function () {\n        return DEFAULT_PATH_ANIMATION_PROPS;\n    };\n    Path.prototype.isZeroArea = function () {\n        return false;\n    };\n    Path.extend = function (defaultProps) {\n        var Sub = (function (_super) {\n            __extends(Sub, _super);\n            function Sub(opts) {\n                var _this = _super.call(this, opts) || this;\n                defaultProps.init && defaultProps.init.call(_this, opts);\n                return _this;\n            }\n            Sub.prototype.getDefaultStyle = function () {\n                return clone(defaultProps.style);\n            };\n            Sub.prototype.getDefaultShape = function () {\n                return clone(defaultProps.shape);\n            };\n            return Sub;\n        }(Path));\n        for (var key in defaultProps) {\n            if (typeof defaultProps[key] === 'function') {\n                Sub.prototype[key] = defaultProps[key];\n            }\n        }\n        return Sub;\n    };\n    Path.SHAPE_CHANGED_BIT = 4;\n    Path.initDefaultProps = (function () {\n        var pathProto = Path.prototype;\n        pathProto.type = 'path';\n        pathProto.strokeContainThreshold = 5;\n        pathProto.segmentIgnoreThreshold = 0;\n        pathProto.subPixelOptimize = false;\n        pathProto.autoBatch = false;\n        pathProto.__dirty = Element.REDARAW_BIT | Displayable.STYLE_CHANGED_BIT | Path.SHAPE_CHANGED_BIT;\n    })();\n    return Path;\n}(Displayable));\nexport default Path;\n","import { __extends } from \"tslib\";\nimport Displayable from './Displayable';\nimport { getBoundingRect, DEFAULT_FONT } from '../contain/text';\nimport { DEFAULT_PATH_STYLE } from './Path';\nimport { createObject, defaults } from '../core/util';\nexport var DEFAULT_TSPAN_STYLE = defaults({\n    strokeFirst: true,\n    font: DEFAULT_FONT,\n    x: 0,\n    y: 0,\n    textAlign: 'left',\n    textBaseline: 'top',\n    miterLimit: 2\n}, DEFAULT_PATH_STYLE);\nvar TSpan = (function (_super) {\n    __extends(TSpan, _super);\n    function TSpan() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    TSpan.prototype.hasStroke = function () {\n        var style = this.style;\n        var stroke = style.stroke;\n        return stroke != null && stroke !== 'none' && style.lineWidth > 0;\n    };\n    TSpan.prototype.hasFill = function () {\n        var style = this.style;\n        var fill = style.fill;\n        return fill != null && fill !== 'none';\n    };\n    TSpan.prototype.createStyle = function (obj) {\n        return createObject(DEFAULT_TSPAN_STYLE, obj);\n    };\n    TSpan.prototype.setBoundingRect = function (rect) {\n        this._rect = rect;\n    };\n    TSpan.prototype.getBoundingRect = function () {\n        var style = this.style;\n        if (!this._rect) {\n            var text = style.text;\n            text != null ? (text += '') : (text = '');\n            var rect = getBoundingRect(text, style.font, style.textAlign, style.textBaseline);\n            rect.x += style.x || 0;\n            rect.y += style.y || 0;\n            if (this.hasStroke()) {\n                var w = style.lineWidth;\n                rect.x -= w / 2;\n                rect.y -= w / 2;\n                rect.width += w;\n                rect.height += w;\n            }\n            this._rect = rect;\n        }\n        return this._rect;\n    };\n    TSpan.initDefaultProps = (function () {\n        var tspanProto = TSpan.prototype;\n        tspanProto.dirtyRectTolerance = 10;\n    })();\n    return TSpan;\n}(Displayable));\nTSpan.prototype.type = 'tspan';\nexport default TSpan;\n","import { __extends } from \"tslib\";\nimport Displayable, { DEFAULT_COMMON_STYLE, DEFAULT_COMMON_ANIMATION_PROPS } from './Displayable';\nimport BoundingRect from '../core/BoundingRect';\nimport { defaults, createObject } from '../core/util';\nexport var DEFAULT_IMAGE_STYLE = defaults({\n    x: 0,\n    y: 0\n}, DEFAULT_COMMON_STYLE);\nexport var DEFAULT_IMAGE_ANIMATION_PROPS = {\n    style: defaults({\n        x: true,\n        y: true,\n        width: true,\n        height: true,\n        sx: true,\n        sy: true,\n        sWidth: true,\n        sHeight: true\n    }, DEFAULT_COMMON_ANIMATION_PROPS.style)\n};\nfunction isImageLike(source) {\n    return !!(source\n        && typeof source !== 'string'\n        && source.width && source.height);\n}\nvar ZRImage = (function (_super) {\n    __extends(ZRImage, _super);\n    function ZRImage() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    ZRImage.prototype.createStyle = function (obj) {\n        return createObject(DEFAULT_IMAGE_STYLE, obj);\n    };\n    ZRImage.prototype._getSize = function (dim) {\n        var style = this.style;\n        var size = style[dim];\n        if (size != null) {\n            return size;\n        }\n        var imageSource = isImageLike(style.image)\n            ? style.image : this.__image;\n        if (!imageSource) {\n            return 0;\n        }\n        var otherDim = dim === 'width' ? 'height' : 'width';\n        var otherDimSize = style[otherDim];\n        if (otherDimSize == null) {\n            return imageSource[dim];\n        }\n        else {\n            return imageSource[dim] / imageSource[otherDim] * otherDimSize;\n        }\n    };\n    ZRImage.prototype.getWidth = function () {\n        return this._getSize('width');\n    };\n    ZRImage.prototype.getHeight = function () {\n        return this._getSize('height');\n    };\n    ZRImage.prototype.getAnimationStyleProps = function () {\n        return DEFAULT_IMAGE_ANIMATION_PROPS;\n    };\n    ZRImage.prototype.getBoundingRect = function () {\n        var style = this.style;\n        if (!this._rect) {\n            this._rect = new BoundingRect(style.x || 0, style.y || 0, this.getWidth(), this.getHeight());\n        }\n        return this._rect;\n    };\n    return ZRImage;\n}(Displayable));\nZRImage.prototype.type = 'image';\nexport default ZRImage;\n","export function buildPath(ctx, shape) {\n    var x = shape.x;\n    var y = shape.y;\n    var width = shape.width;\n    var height = shape.height;\n    var r = shape.r;\n    var r1;\n    var r2;\n    var r3;\n    var r4;\n    if (width < 0) {\n        x = x + width;\n        width = -width;\n    }\n    if (height < 0) {\n        y = y + height;\n        height = -height;\n    }\n    if (typeof r === 'number') {\n        r1 = r2 = r3 = r4 = r;\n    }\n    else if (r instanceof Array) {\n        if (r.length === 1) {\n            r1 = r2 = r3 = r4 = r[0];\n        }\n        else if (r.length === 2) {\n            r1 = r3 = r[0];\n            r2 = r4 = r[1];\n        }\n        else if (r.length === 3) {\n            r1 = r[0];\n            r2 = r4 = r[1];\n            r3 = r[2];\n        }\n        else {\n            r1 = r[0];\n            r2 = r[1];\n            r3 = r[2];\n            r4 = r[3];\n        }\n    }\n    else {\n        r1 = r2 = r3 = r4 = 0;\n    }\n    var total;\n    if (r1 + r2 > width) {\n        total = r1 + r2;\n        r1 *= width / total;\n        r2 *= width / total;\n    }\n    if (r3 + r4 > width) {\n        total = r3 + r4;\n        r3 *= width / total;\n        r4 *= width / total;\n    }\n    if (r2 + r3 > height) {\n        total = r2 + r3;\n        r2 *= height / total;\n        r3 *= height / total;\n    }\n    if (r1 + r4 > height) {\n        total = r1 + r4;\n        r1 *= height / total;\n        r4 *= height / total;\n    }\n    ctx.moveTo(x + r1, y);\n    ctx.lineTo(x + width - r2, y);\n    r2 !== 0 && ctx.arc(x + width - r2, y + r2, r2, -Math.PI / 2, 0);\n    ctx.lineTo(x + width, y + height - r3);\n    r3 !== 0 && ctx.arc(x + width - r3, y + height - r3, r3, 0, Math.PI / 2);\n    ctx.lineTo(x + r4, y + height);\n    r4 !== 0 && ctx.arc(x + r4, y + height - r4, r4, Math.PI / 2, Math.PI);\n    ctx.lineTo(x, y + r1);\n    r1 !== 0 && ctx.arc(x + r1, y + r1, r1, Math.PI, Math.PI * 1.5);\n}\n","var round = Math.round;\nexport function subPixelOptimizeLine(outputShape, inputShape, style) {\n    if (!inputShape) {\n        return;\n    }\n    var x1 = inputShape.x1;\n    var x2 = inputShape.x2;\n    var y1 = inputShape.y1;\n    var y2 = inputShape.y2;\n    outputShape.x1 = x1;\n    outputShape.x2 = x2;\n    outputShape.y1 = y1;\n    outputShape.y2 = y2;\n    var lineWidth = style && style.lineWidth;\n    if (!lineWidth) {\n        return outputShape;\n    }\n    if (round(x1 * 2) === round(x2 * 2)) {\n        outputShape.x1 = outputShape.x2 = subPixelOptimize(x1, lineWidth, true);\n    }\n    if (round(y1 * 2) === round(y2 * 2)) {\n        outputShape.y1 = outputShape.y2 = subPixelOptimize(y1, lineWidth, true);\n    }\n    return outputShape;\n}\nexport function subPixelOptimizeRect(outputShape, inputShape, style) {\n    if (!inputShape) {\n        return;\n    }\n    var originX = inputShape.x;\n    var originY = inputShape.y;\n    var originWidth = inputShape.width;\n    var originHeight = inputShape.height;\n    outputShape.x = originX;\n    outputShape.y = originY;\n    outputShape.width = originWidth;\n    outputShape.height = originHeight;\n    var lineWidth = style && style.lineWidth;\n    if (!lineWidth) {\n        return outputShape;\n    }\n    outputShape.x = subPixelOptimize(originX, lineWidth, true);\n    outputShape.y = subPixelOptimize(originY, lineWidth, true);\n    outputShape.width = Math.max(subPixelOptimize(originX + originWidth, lineWidth, false) - outputShape.x, originWidth === 0 ? 0 : 1);\n    outputShape.height = Math.max(subPixelOptimize(originY + originHeight, lineWidth, false) - outputShape.y, originHeight === 0 ? 0 : 1);\n    return outputShape;\n}\nexport function subPixelOptimize(position, lineWidth, positiveOrNegative) {\n    if (!lineWidth) {\n        return position;\n    }\n    var doubledPosition = round(position * 2);\n    return (doubledPosition + round(lineWidth)) % 2 === 0\n        ? doubledPosition / 2\n        : (doubledPosition + (positiveOrNegative ? 1 : -1)) / 2;\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as roundRectHelper from '../helper/roundRect';\nimport { subPixelOptimizeRect } from '../helper/subPixelOptimize';\nvar RectShape = (function () {\n    function RectShape() {\n        this.x = 0;\n        this.y = 0;\n        this.width = 0;\n        this.height = 0;\n    }\n    return RectShape;\n}());\nvar subPixelOptimizeOutputShape = {};\nvar Rect = (function (_super) {\n    __extends(Rect, _super);\n    function Rect(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Rect.prototype.getDefaultShape = function () {\n        return new RectShape();\n    };\n    Rect.prototype.buildPath = function (ctx, shape) {\n        var x;\n        var y;\n        var width;\n        var height;\n        if (this.subPixelOptimize) {\n            var optimizedShape = subPixelOptimizeRect(subPixelOptimizeOutputShape, shape, this.style);\n            x = optimizedShape.x;\n            y = optimizedShape.y;\n            width = optimizedShape.width;\n            height = optimizedShape.height;\n            optimizedShape.r = shape.r;\n            shape = optimizedShape;\n        }\n        else {\n            x = shape.x;\n            y = shape.y;\n            width = shape.width;\n            height = shape.height;\n        }\n        if (!shape.r) {\n            ctx.rect(x, y, width, height);\n        }\n        else {\n            roundRectHelper.buildPath(ctx, shape);\n        }\n    };\n    Rect.prototype.isZeroArea = function () {\n        return !this.shape.width || !this.shape.height;\n    };\n    return Rect;\n}(Path));\nRect.prototype.type = 'rect';\nexport default Rect;\n","import { __extends } from \"tslib\";\nimport { parseRichText, parsePlainText } from './helper/parseText';\nimport TSpan from './TSpan';\nimport { retrieve2, isString, each, normalizeCssArray, trim, retrieve3, extend, keys, defaults } from '../core/util';\nimport { DEFAULT_FONT, adjustTextX, adjustTextY } from '../contain/text';\nimport ZRImage from './Image';\nimport Rect from './shape/Rect';\nimport BoundingRect from '../core/BoundingRect';\nimport { copy } from '../core/matrix';\nimport Displayable, { DEFAULT_COMMON_ANIMATION_PROPS } from './Displayable';\nvar DEFAULT_RICH_TEXT_COLOR = {\n    fill: '#000'\n};\nvar DEFAULT_STROKE_LINE_WIDTH = 2;\nexport var DEFAULT_TEXT_ANIMATION_PROPS = {\n    style: defaults({\n        fill: true,\n        stroke: true,\n        fillOpacity: true,\n        strokeOpacity: true,\n        lineWidth: true,\n        fontSize: true,\n        lineHeight: true,\n        width: true,\n        height: true,\n        textShadowColor: true,\n        textShadowBlur: true,\n        textShadowOffsetX: true,\n        textShadowOffsetY: true,\n        backgroundColor: true,\n        padding: true,\n        borderColor: true,\n        borderWidth: true,\n        borderRadius: true\n    }, DEFAULT_COMMON_ANIMATION_PROPS.style)\n};\nvar ZRText = (function (_super) {\n    __extends(ZRText, _super);\n    function ZRText(opts) {\n        var _this = _super.call(this) || this;\n        _this.type = 'text';\n        _this._children = [];\n        _this._defaultStyle = DEFAULT_RICH_TEXT_COLOR;\n        _this.attr(opts);\n        return _this;\n    }\n    ZRText.prototype.childrenRef = function () {\n        return this._children;\n    };\n    ZRText.prototype.update = function () {\n        if (this.styleChanged()) {\n            this._updateSubTexts();\n        }\n        for (var i = 0; i < this._children.length; i++) {\n            var child = this._children[i];\n            child.zlevel = this.zlevel;\n            child.z = this.z;\n            child.z2 = this.z2;\n            child.culling = this.culling;\n            child.cursor = this.cursor;\n            child.invisible = this.invisible;\n        }\n        var attachedTransform = this.attachedTransform;\n        if (attachedTransform) {\n            attachedTransform.updateTransform();\n            var m = attachedTransform.transform;\n            if (m) {\n                this.transform = this.transform || [];\n                copy(this.transform, m);\n            }\n            else {\n                this.transform = null;\n            }\n        }\n        else {\n            _super.prototype.update.call(this);\n        }\n    };\n    ZRText.prototype.getComputedTransform = function () {\n        if (this.__hostTarget) {\n            this.__hostTarget.getComputedTransform();\n            this.__hostTarget.updateInnerText(true);\n        }\n        return this.attachedTransform ? this.attachedTransform.getComputedTransform()\n            : _super.prototype.getComputedTransform.call(this);\n    };\n    ZRText.prototype._updateSubTexts = function () {\n        this._childCursor = 0;\n        normalizeTextStyle(this.style);\n        this.style.rich\n            ? this._updateRichTexts()\n            : this._updatePlainTexts();\n        this._children.length = this._childCursor;\n        this.styleUpdated();\n    };\n    ZRText.prototype.addSelfToZr = function (zr) {\n        _super.prototype.addSelfToZr.call(this, zr);\n        for (var i = 0; i < this._children.length; i++) {\n            this._children[i].__zr = zr;\n        }\n    };\n    ZRText.prototype.removeSelfFromZr = function (zr) {\n        _super.prototype.removeSelfFromZr.call(this, zr);\n        for (var i = 0; i < this._children.length; i++) {\n            this._children[i].__zr = null;\n        }\n    };\n    ZRText.prototype.getBoundingRect = function () {\n        if (this.styleChanged()) {\n            this._updateSubTexts();\n        }\n        if (!this._rect) {\n            var tmpRect = new BoundingRect(0, 0, 0, 0);\n            var children = this._children;\n            var tmpMat = [];\n            var rect = null;\n            for (var i = 0; i < children.length; i++) {\n                var child = children[i];\n                var childRect = child.getBoundingRect();\n                var transform = child.getLocalTransform(tmpMat);\n                if (transform) {\n                    tmpRect.copy(childRect);\n                    tmpRect.applyTransform(transform);\n                    rect = rect || tmpRect.clone();\n                    rect.union(tmpRect);\n                }\n                else {\n                    rect = rect || childRect.clone();\n                    rect.union(childRect);\n                }\n            }\n            this._rect = rect || tmpRect;\n        }\n        return this._rect;\n    };\n    ZRText.prototype.setDefaultTextStyle = function (defaultTextStyle) {\n        this._defaultStyle = defaultTextStyle || DEFAULT_RICH_TEXT_COLOR;\n    };\n    ZRText.prototype.setTextContent = function (textContent) {\n        throw new Error('Can\\'t attach text on another text');\n    };\n    ZRText.prototype._mergeStyle = function (targetStyle, sourceStyle) {\n        if (!sourceStyle) {\n            return targetStyle;\n        }\n        var sourceRich = sourceStyle.rich;\n        var targetRich = targetStyle.rich || (sourceRich && {});\n        extend(targetStyle, sourceStyle);\n        if (sourceRich && targetRich) {\n            this._mergeRich(targetRich, sourceRich);\n            targetStyle.rich = targetRich;\n        }\n        else if (targetRich) {\n            targetStyle.rich = targetRich;\n        }\n        return targetStyle;\n    };\n    ZRText.prototype._mergeRich = function (targetRich, sourceRich) {\n        var richNames = keys(sourceRich);\n        for (var i = 0; i < richNames.length; i++) {\n            var richName = richNames[i];\n            targetRich[richName] = targetRich[richName] || {};\n            extend(targetRich[richName], sourceRich[richName]);\n        }\n    };\n    ZRText.prototype.getAnimationStyleProps = function () {\n        return DEFAULT_TEXT_ANIMATION_PROPS;\n    };\n    ZRText.prototype._getOrCreateChild = function (Ctor) {\n        var child = this._children[this._childCursor];\n        if (!child || !(child instanceof Ctor)) {\n            child = new Ctor();\n        }\n        this._children[this._childCursor++] = child;\n        child.__zr = this.__zr;\n        child.parent = this;\n        return child;\n    };\n    ZRText.prototype._updatePlainTexts = function () {\n        var style = this.style;\n        var textFont = style.font || DEFAULT_FONT;\n        var textPadding = style.padding;\n        var text = getStyleText(style);\n        var contentBlock = parsePlainText(text, style);\n        var needDrawBg = needDrawBackground(style);\n        var bgColorDrawn = !!(style.backgroundColor);\n        var outerHeight = contentBlock.outerHeight;\n        var textLines = contentBlock.lines;\n        var lineHeight = contentBlock.lineHeight;\n        var defaultStyle = this._defaultStyle;\n        var baseX = style.x || 0;\n        var baseY = style.y || 0;\n        var textAlign = style.align || defaultStyle.align || 'left';\n        var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign || 'top';\n        var textX = baseX;\n        var textY = adjustTextY(baseY, contentBlock.contentHeight, verticalAlign);\n        if (needDrawBg || textPadding) {\n            var outerWidth_1 = contentBlock.width;\n            textPadding && (outerWidth_1 += textPadding[1] + textPadding[3]);\n            var boxX = adjustTextX(baseX, outerWidth_1, textAlign);\n            var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\n            needDrawBg && this._renderBackground(style, style, boxX, boxY, outerWidth_1, outerHeight);\n        }\n        textY += lineHeight / 2;\n        if (textPadding) {\n            textX = getTextXForPadding(baseX, textAlign, textPadding);\n            if (verticalAlign === 'top') {\n                textY += textPadding[0];\n            }\n            else if (verticalAlign === 'bottom') {\n                textY -= textPadding[2];\n            }\n        }\n        var defaultLineWidth = 0;\n        var useDefaultFill = false;\n        var textFill = getFill('fill' in style\n            ? style.fill\n            : (useDefaultFill = true, defaultStyle.fill));\n        var textStroke = getStroke('stroke' in style\n            ? style.stroke\n            : (!bgColorDrawn\n                && (!defaultStyle.autoStroke || useDefaultFill))\n                ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\n                : null);\n        var hasShadow = style.textShadowBlur > 0;\n        var fixedBoundingRect = style.width != null\n            && (style.overflow === 'truncate' || style.overflow === 'break' || style.overflow === 'breakAll');\n        var calculatedLineHeight = contentBlock.calculatedLineHeight;\n        for (var i = 0; i < textLines.length; i++) {\n            var el = this._getOrCreateChild(TSpan);\n            var subElStyle = el.createStyle();\n            el.useStyle(subElStyle);\n            subElStyle.text = textLines[i];\n            subElStyle.x = textX;\n            subElStyle.y = textY;\n            if (textAlign) {\n                subElStyle.textAlign = textAlign;\n            }\n            subElStyle.textBaseline = 'middle';\n            subElStyle.opacity = style.opacity;\n            subElStyle.strokeFirst = true;\n            if (hasShadow) {\n                subElStyle.shadowBlur = style.textShadowBlur || 0;\n                subElStyle.shadowColor = style.textShadowColor || 'transparent';\n                subElStyle.shadowOffsetX = style.textShadowOffsetX || 0;\n                subElStyle.shadowOffsetY = style.textShadowOffsetY || 0;\n            }\n            if (textStroke) {\n                subElStyle.stroke = textStroke;\n                subElStyle.lineWidth = style.lineWidth || defaultLineWidth;\n                subElStyle.lineDash = style.lineDash;\n                subElStyle.lineDashOffset = style.lineDashOffset || 0;\n            }\n            if (textFill) {\n                subElStyle.fill = textFill;\n            }\n            subElStyle.font = textFont;\n            textY += lineHeight;\n            if (fixedBoundingRect) {\n                el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, style.width, subElStyle.textAlign), adjustTextY(subElStyle.y, calculatedLineHeight, subElStyle.textBaseline), style.width, calculatedLineHeight));\n            }\n        }\n    };\n    ZRText.prototype._updateRichTexts = function () {\n        var style = this.style;\n        var text = getStyleText(style);\n        var contentBlock = parseRichText(text, style);\n        var contentWidth = contentBlock.width;\n        var outerWidth = contentBlock.outerWidth;\n        var outerHeight = contentBlock.outerHeight;\n        var textPadding = style.padding;\n        var baseX = style.x || 0;\n        var baseY = style.y || 0;\n        var defaultStyle = this._defaultStyle;\n        var textAlign = style.align || defaultStyle.align;\n        var verticalAlign = style.verticalAlign || defaultStyle.verticalAlign;\n        var boxX = adjustTextX(baseX, outerWidth, textAlign);\n        var boxY = adjustTextY(baseY, outerHeight, verticalAlign);\n        var xLeft = boxX;\n        var lineTop = boxY;\n        if (textPadding) {\n            xLeft += textPadding[3];\n            lineTop += textPadding[0];\n        }\n        var xRight = xLeft + contentWidth;\n        if (needDrawBackground(style)) {\n            this._renderBackground(style, style, boxX, boxY, outerWidth, outerHeight);\n        }\n        var bgColorDrawn = !!(style.backgroundColor);\n        for (var i = 0; i < contentBlock.lines.length; i++) {\n            var line = contentBlock.lines[i];\n            var tokens = line.tokens;\n            var tokenCount = tokens.length;\n            var lineHeight = line.lineHeight;\n            var remainedWidth = line.width;\n            var leftIndex = 0;\n            var lineXLeft = xLeft;\n            var lineXRight = xRight;\n            var rightIndex = tokenCount - 1;\n            var token = void 0;\n            while (leftIndex < tokenCount\n                && (token = tokens[leftIndex], !token.align || token.align === 'left')) {\n                this._placeToken(token, style, lineHeight, lineTop, lineXLeft, 'left', bgColorDrawn);\n                remainedWidth -= token.width;\n                lineXLeft += token.width;\n                leftIndex++;\n            }\n            while (rightIndex >= 0\n                && (token = tokens[rightIndex], token.align === 'right')) {\n                this._placeToken(token, style, lineHeight, lineTop, lineXRight, 'right', bgColorDrawn);\n                remainedWidth -= token.width;\n                lineXRight -= token.width;\n                rightIndex--;\n            }\n            lineXLeft += (contentWidth - (lineXLeft - xLeft) - (xRight - lineXRight) - remainedWidth) / 2;\n            while (leftIndex <= rightIndex) {\n                token = tokens[leftIndex];\n                this._placeToken(token, style, lineHeight, lineTop, lineXLeft + token.width / 2, 'center', bgColorDrawn);\n                lineXLeft += token.width;\n                leftIndex++;\n            }\n            lineTop += lineHeight;\n        }\n    };\n    ZRText.prototype._placeToken = function (token, style, lineHeight, lineTop, x, textAlign, parentBgColorDrawn) {\n        var tokenStyle = style.rich[token.styleName] || {};\n        tokenStyle.text = token.text;\n        var verticalAlign = token.verticalAlign;\n        var y = lineTop + lineHeight / 2;\n        if (verticalAlign === 'top') {\n            y = lineTop + token.height / 2;\n        }\n        else if (verticalAlign === 'bottom') {\n            y = lineTop + lineHeight - token.height / 2;\n        }\n        var needDrawBg = !token.isLineHolder && needDrawBackground(tokenStyle);\n        needDrawBg && this._renderBackground(tokenStyle, style, textAlign === 'right'\n            ? x - token.width\n            : textAlign === 'center'\n                ? x - token.width / 2\n                : x, y - token.height / 2, token.width, token.height);\n        var bgColorDrawn = !!tokenStyle.backgroundColor;\n        var textPadding = token.textPadding;\n        if (textPadding) {\n            x = getTextXForPadding(x, textAlign, textPadding);\n            y -= token.height / 2 - textPadding[0] - token.innerHeight / 2;\n        }\n        var el = this._getOrCreateChild(TSpan);\n        var subElStyle = el.createStyle();\n        el.useStyle(subElStyle);\n        var defaultStyle = this._defaultStyle;\n        var useDefaultFill = false;\n        var defaultLineWidth = 0;\n        var textFill = getStroke('fill' in tokenStyle ? tokenStyle.fill\n            : 'fill' in style ? style.fill\n                : (useDefaultFill = true, defaultStyle.fill));\n        var textStroke = getStroke('stroke' in tokenStyle ? tokenStyle.stroke\n            : 'stroke' in style ? style.stroke\n                : (!bgColorDrawn\n                    && !parentBgColorDrawn\n                    && (!defaultStyle.autoStroke || useDefaultFill)) ? (defaultLineWidth = DEFAULT_STROKE_LINE_WIDTH, defaultStyle.stroke)\n                    : null);\n        var hasShadow = tokenStyle.textShadowBlur > 0\n            || style.textShadowBlur > 0;\n        subElStyle.text = token.text;\n        subElStyle.x = x;\n        subElStyle.y = y;\n        if (hasShadow) {\n            subElStyle.shadowBlur = tokenStyle.textShadowBlur || style.textShadowBlur || 0;\n            subElStyle.shadowColor = tokenStyle.textShadowColor || style.textShadowColor || 'transparent';\n            subElStyle.shadowOffsetX = tokenStyle.textShadowOffsetX || style.textShadowOffsetX || 0;\n            subElStyle.shadowOffsetY = tokenStyle.textShadowOffsetY || style.textShadowOffsetY || 0;\n        }\n        subElStyle.textAlign = textAlign;\n        subElStyle.textBaseline = 'middle';\n        subElStyle.font = token.font || DEFAULT_FONT;\n        subElStyle.opacity = retrieve3(tokenStyle.opacity, style.opacity, 1);\n        if (textStroke) {\n            subElStyle.lineWidth = retrieve3(tokenStyle.lineWidth, style.lineWidth, defaultLineWidth);\n            subElStyle.lineDash = retrieve2(tokenStyle.lineDash, style.lineDash);\n            subElStyle.lineDashOffset = style.lineDashOffset || 0;\n            subElStyle.stroke = textStroke;\n        }\n        if (textFill) {\n            subElStyle.fill = textFill;\n        }\n        var textWidth = token.contentWidth;\n        var textHeight = token.contentHeight;\n        el.setBoundingRect(new BoundingRect(adjustTextX(subElStyle.x, textWidth, subElStyle.textAlign), adjustTextY(subElStyle.y, textHeight, subElStyle.textBaseline), textWidth, textHeight));\n    };\n    ZRText.prototype._renderBackground = function (style, topStyle, x, y, width, height) {\n        var textBackgroundColor = style.backgroundColor;\n        var textBorderWidth = style.borderWidth;\n        var textBorderColor = style.borderColor;\n        var isPlainBg = isString(textBackgroundColor);\n        var textBorderRadius = style.borderRadius;\n        var self = this;\n        var rectEl;\n        var imgEl;\n        if (isPlainBg || (textBorderWidth && textBorderColor)) {\n            rectEl = this._getOrCreateChild(Rect);\n            rectEl.useStyle(rectEl.createStyle());\n            rectEl.style.fill = null;\n            var rectShape = rectEl.shape;\n            rectShape.x = x;\n            rectShape.y = y;\n            rectShape.width = width;\n            rectShape.height = height;\n            rectShape.r = textBorderRadius;\n            rectEl.dirtyShape();\n        }\n        if (isPlainBg) {\n            var rectStyle = rectEl.style;\n            rectStyle.fill = textBackgroundColor || null;\n            rectStyle.fillOpacity = retrieve2(style.fillOpacity, 1);\n        }\n        else if (textBackgroundColor && textBackgroundColor.image) {\n            imgEl = this._getOrCreateChild(ZRImage);\n            imgEl.onload = function () {\n                self.dirtyStyle();\n            };\n            var imgStyle = imgEl.style;\n            imgStyle.image = textBackgroundColor.image;\n            imgStyle.x = x;\n            imgStyle.y = y;\n            imgStyle.width = width;\n            imgStyle.height = height;\n        }\n        if (textBorderWidth && textBorderColor) {\n            var rectStyle = rectEl.style;\n            rectStyle.lineWidth = textBorderWidth;\n            rectStyle.stroke = textBorderColor;\n            rectStyle.strokeOpacity = retrieve2(style.strokeOpacity, 1);\n            rectStyle.lineDash = style.borderDash;\n            rectStyle.lineDashOffset = style.borderDashOffset || 0;\n            rectEl.strokeContainThreshold = 0;\n            if (rectEl.hasFill() && rectEl.hasStroke()) {\n                rectStyle.strokeFirst = true;\n                rectStyle.lineWidth *= 2;\n            }\n        }\n        var commonStyle = (rectEl || imgEl).style;\n        commonStyle.shadowBlur = style.shadowBlur || 0;\n        commonStyle.shadowColor = style.shadowColor || 'transparent';\n        commonStyle.shadowOffsetX = style.shadowOffsetX || 0;\n        commonStyle.shadowOffsetY = style.shadowOffsetY || 0;\n        commonStyle.opacity = retrieve3(style.opacity, topStyle.opacity, 1);\n    };\n    ZRText.makeFont = function (style) {\n        var font = '';\n        if (style.fontSize || style.fontFamily || style.fontWeight) {\n            var fontSize = '';\n            if (typeof style.fontSize === 'string'\n                && (style.fontSize.indexOf('px') !== -1\n                    || style.fontSize.indexOf('rem') !== -1\n                    || style.fontSize.indexOf('em') !== -1)) {\n                fontSize = style.fontSize;\n            }\n            else if (!isNaN(+style.fontSize)) {\n                fontSize = style.fontSize + 'px';\n            }\n            else {\n                fontSize = '12px';\n            }\n            font = [\n                style.fontStyle,\n                style.fontWeight,\n                fontSize,\n                style.fontFamily || 'sans-serif'\n            ].join(' ');\n        }\n        return font && trim(font) || style.textFont || style.font;\n    };\n    return ZRText;\n}(Displayable));\nvar VALID_TEXT_ALIGN = { left: true, right: 1, center: 1 };\nvar VALID_TEXT_VERTICAL_ALIGN = { top: 1, bottom: 1, middle: 1 };\nexport function normalizeTextStyle(style) {\n    normalizeStyle(style);\n    each(style.rich, normalizeStyle);\n    return style;\n}\nfunction normalizeStyle(style) {\n    if (style) {\n        style.font = ZRText.makeFont(style);\n        var textAlign = style.align;\n        textAlign === 'middle' && (textAlign = 'center');\n        style.align = (textAlign == null || VALID_TEXT_ALIGN[textAlign]) ? textAlign : 'left';\n        var verticalAlign = style.verticalAlign;\n        verticalAlign === 'center' && (verticalAlign = 'middle');\n        style.verticalAlign = (verticalAlign == null || VALID_TEXT_VERTICAL_ALIGN[verticalAlign]) ? verticalAlign : 'top';\n        var textPadding = style.padding;\n        if (textPadding) {\n            style.padding = normalizeCssArray(style.padding);\n        }\n    }\n}\nfunction getStroke(stroke, lineWidth) {\n    return (stroke == null || lineWidth <= 0 || stroke === 'transparent' || stroke === 'none')\n        ? null\n        : (stroke.image || stroke.colorStops)\n            ? '#000'\n            : stroke;\n}\nfunction getFill(fill) {\n    return (fill == null || fill === 'none')\n        ? null\n        : (fill.image || fill.colorStops)\n            ? '#000'\n            : fill;\n}\nfunction getTextXForPadding(x, textAlign, textPadding) {\n    return textAlign === 'right'\n        ? (x - textPadding[1])\n        : textAlign === 'center'\n            ? (x + textPadding[3] / 2 - textPadding[1] / 2)\n            : (x + textPadding[3]);\n}\nfunction getStyleText(style) {\n    var text = style.text;\n    text != null && (text += '');\n    return text;\n}\nfunction needDrawBackground(style) {\n    return !!(style.backgroundColor\n        || (style.borderWidth && style.borderColor));\n}\nexport default ZRText;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner } from './model';\nexport var getECData = makeInner();","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport LRU from 'zrender/lib/core/LRU';\nimport { extend, indexOf, isArrayLike, isObject, keys, isArray, each } from 'zrender/lib/core/util';\nimport { getECData } from './innerStore';\nimport * as colorTool from 'zrender/lib/tool/color';\nimport { queryDataIndex, makeInner } from './model';\nimport Path from 'zrender/lib/graphic/Path';\nvar _highlightNextDigit = 1;\nvar _highlightKeyMap = {};\nvar getSavedStates = makeInner();\nexport var HOVER_STATE_NORMAL = 0;\nexport var HOVER_STATE_BLUR = 1;\nexport var HOVER_STATE_EMPHASIS = 2;\nexport var SPECIAL_STATES = ['emphasis', 'blur', 'select'];\nexport var DISPLAY_STATES = ['normal', 'emphasis', 'blur', 'select'];\nexport var Z2_EMPHASIS_LIFT = 10;\nexport var Z2_SELECT_LIFT = 9;\nexport var HIGHLIGHT_ACTION_TYPE = 'highlight';\nexport var DOWNPLAY_ACTION_TYPE = 'downplay';\nexport var SELECT_ACTION_TYPE = 'select';\nexport var UNSELECT_ACTION_TYPE = 'unselect';\nexport var TOGGLE_SELECT_ACTION_TYPE = 'toggleSelect';\n\nfunction hasFillOrStroke(fillOrStroke) {\n  return fillOrStroke != null && fillOrStroke !== 'none';\n}\n\nvar liftedColorCache = new LRU(100);\n\nfunction liftColor(color) {\n  if (typeof color !== 'string') {\n    return color;\n  }\n\n  var liftedColor = liftedColorCache.get(color);\n\n  if (!liftedColor) {\n    liftedColor = colorTool.lift(color, -0.1);\n    liftedColorCache.put(color, liftedColor);\n  }\n\n  return liftedColor;\n}\n\nfunction doChangeHoverState(el, stateName, hoverStateEnum) {\n  if (el.onHoverStateChange && (el.hoverState || 0) !== hoverStateEnum) {\n    el.onHoverStateChange(stateName);\n  }\n\n  el.hoverState = hoverStateEnum;\n}\n\nfunction singleEnterEmphasis(el) {\n  doChangeHoverState(el, 'emphasis', HOVER_STATE_EMPHASIS);\n}\n\nfunction singleLeaveEmphasis(el) {\n  if (el.hoverState === HOVER_STATE_EMPHASIS) {\n    doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\n  }\n}\n\nfunction singleEnterBlur(el) {\n  doChangeHoverState(el, 'blur', HOVER_STATE_BLUR);\n}\n\nfunction singleLeaveBlur(el) {\n  if (el.hoverState === HOVER_STATE_BLUR) {\n    doChangeHoverState(el, 'normal', HOVER_STATE_NORMAL);\n  }\n}\n\nfunction singleEnterSelect(el) {\n  el.selected = true;\n}\n\nfunction singleLeaveSelect(el) {\n  el.selected = false;\n}\n\nfunction updateElementState(el, updater, commonParam) {\n  updater(el, commonParam);\n}\n\nfunction traverseUpdateState(el, updater, commonParam) {\n  updateElementState(el, updater, commonParam);\n  el.isGroup && el.traverse(function (child) {\n    updateElementState(child, updater, commonParam);\n  });\n}\n\nexport function setStatesFlag(el, stateName) {\n  switch (stateName) {\n    case 'emphasis':\n      el.hoverState = HOVER_STATE_EMPHASIS;\n      break;\n\n    case 'normal':\n      el.hoverState = HOVER_STATE_NORMAL;\n      break;\n\n    case 'blur':\n      el.hoverState = HOVER_STATE_BLUR;\n      break;\n\n    case 'select':\n      el.selected = true;\n  }\n}\nexport function clearStates(el) {\n  if (el.isGroup) {\n    el.traverse(function (child) {\n      child.clearStates();\n    });\n  } else {\n    el.clearStates();\n  }\n}\n\nfunction getFromStateStyle(el, props, toStateName, defaultValue) {\n  var style = el.style;\n  var fromState = {};\n\n  for (var i = 0; i < props.length; i++) {\n    var propName = props[i];\n    var val = style[propName];\n    fromState[propName] = val == null ? defaultValue && defaultValue[propName] : val;\n  }\n\n  for (var i = 0; i < el.animators.length; i++) {\n    var animator = el.animators[i];\n\n    if (animator.__fromStateTransition && animator.__fromStateTransition.indexOf(toStateName) < 0 && animator.targetName === 'style') {\n      animator.saveFinalToTarget(fromState, props);\n    }\n  }\n\n  return fromState;\n}\n\nfunction createEmphasisDefaultState(el, stateName, targetStates, state) {\n  var hasSelect = targetStates && indexOf(targetStates, 'select') >= 0;\n  var cloned = false;\n\n  if (el instanceof Path) {\n    var store = getSavedStates(el);\n    var fromFill = hasSelect ? store.selectFill || store.normalFill : store.normalFill;\n    var fromStroke = hasSelect ? store.selectStroke || store.normalStroke : store.normalStroke;\n\n    if (hasFillOrStroke(fromFill) || hasFillOrStroke(fromStroke)) {\n      state = state || {};\n      var emphasisStyle = state.style || {};\n\n      if (!hasFillOrStroke(emphasisStyle.fill) && hasFillOrStroke(fromFill)) {\n        cloned = true;\n        state = extend({}, state);\n        emphasisStyle = extend({}, emphasisStyle);\n        emphasisStyle.fill = liftColor(fromFill);\n      } else if (!hasFillOrStroke(emphasisStyle.stroke) && hasFillOrStroke(fromStroke)) {\n        if (!cloned) {\n          state = extend({}, state);\n          emphasisStyle = extend({}, emphasisStyle);\n        }\n\n        emphasisStyle.stroke = liftColor(fromStroke);\n      }\n\n      state.style = emphasisStyle;\n    }\n  }\n\n  if (state) {\n    if (state.z2 == null) {\n      if (!cloned) {\n        state = extend({}, state);\n      }\n\n      var z2EmphasisLift = el.z2EmphasisLift;\n      state.z2 = el.z2 + (z2EmphasisLift != null ? z2EmphasisLift : Z2_EMPHASIS_LIFT);\n    }\n  }\n\n  return state;\n}\n\nfunction createSelectDefaultState(el, stateName, state) {\n  if (state) {\n    if (state.z2 == null) {\n      state = extend({}, state);\n      var z2SelectLift = el.z2SelectLift;\n      state.z2 = el.z2 + (z2SelectLift != null ? z2SelectLift : Z2_SELECT_LIFT);\n    }\n  }\n\n  return state;\n}\n\nfunction createBlurDefaultState(el, stateName, state) {\n  var hasBlur = indexOf(el.currentStates, stateName) >= 0;\n  var currentOpacity = el.style.opacity;\n  var fromState = !hasBlur ? getFromStateStyle(el, ['opacity'], stateName, {\n    opacity: 1\n  }) : null;\n  state = state || {};\n  var blurStyle = state.style || {};\n\n  if (blurStyle.opacity == null) {\n    state = extend({}, state);\n    blurStyle = extend({\n      opacity: hasBlur ? currentOpacity : fromState.opacity * 0.1\n    }, blurStyle);\n    state.style = blurStyle;\n  }\n\n  return state;\n}\n\nfunction elementStateProxy(stateName, targetStates) {\n  var state = this.states[stateName];\n\n  if (this.style) {\n    if (stateName === 'emphasis') {\n      return createEmphasisDefaultState(this, stateName, targetStates, state);\n    } else if (stateName === 'blur') {\n      return createBlurDefaultState(this, stateName, state);\n    } else if (stateName === 'select') {\n      return createSelectDefaultState(this, stateName, state);\n    }\n  }\n\n  return state;\n}\n\nexport function setDefaultStateProxy(el) {\n  el.stateProxy = elementStateProxy;\n  var textContent = el.getTextContent();\n  var textGuide = el.getTextGuideLine();\n\n  if (textContent) {\n    textContent.stateProxy = elementStateProxy;\n  }\n\n  if (textGuide) {\n    textGuide.stateProxy = elementStateProxy;\n  }\n}\nexport function enterEmphasisWhenMouseOver(el, e) {\n  !shouldSilent(el, e) && !el.__highByOuter && traverseUpdateState(el, singleEnterEmphasis);\n}\nexport function leaveEmphasisWhenMouseOut(el, e) {\n  !shouldSilent(el, e) && !el.__highByOuter && traverseUpdateState(el, singleLeaveEmphasis);\n}\nexport function enterEmphasis(el, highlightDigit) {\n  el.__highByOuter |= 1 << (highlightDigit || 0);\n  traverseUpdateState(el, singleEnterEmphasis);\n}\nexport function leaveEmphasis(el, highlightDigit) {\n  !(el.__highByOuter &= ~(1 << (highlightDigit || 0))) && traverseUpdateState(el, singleLeaveEmphasis);\n}\nexport function enterBlur(el) {\n  traverseUpdateState(el, singleEnterBlur);\n}\nexport function leaveBlur(el) {\n  traverseUpdateState(el, singleLeaveBlur);\n}\nexport function enterSelect(el) {\n  traverseUpdateState(el, singleEnterSelect);\n}\nexport function leaveSelect(el) {\n  traverseUpdateState(el, singleLeaveSelect);\n}\n\nfunction shouldSilent(el, e) {\n  return el.__highDownSilentOnTouch && e.zrByTouch;\n}\n\nfunction allLeaveBlur(api) {\n  var model = api.getModel();\n  model.eachComponent(function (componentType, componentModel) {\n    var view = componentType === 'series' ? api.getViewOfSeriesModel(componentModel) : api.getViewOfComponentModel(componentModel);\n    view.group.traverse(function (child) {\n      singleLeaveBlur(child);\n    });\n  });\n}\n\nexport function toggleSeriesBlurState(targetSeriesIndex, focus, blurScope, api, isBlur) {\n  var ecModel = api.getModel();\n  blurScope = blurScope || 'coordinateSystem';\n\n  function leaveBlurOfIndices(data, dataIndices) {\n    for (var i = 0; i < dataIndices.length; i++) {\n      var itemEl = data.getItemGraphicEl(dataIndices[i]);\n      itemEl && leaveBlur(itemEl);\n    }\n  }\n\n  if (!isBlur) {\n    allLeaveBlur(api);\n    return;\n  }\n\n  if (targetSeriesIndex == null) {\n    return;\n  }\n\n  if (!focus || focus === 'none') {\n    return;\n  }\n\n  var targetSeriesModel = ecModel.getSeriesByIndex(targetSeriesIndex);\n  var targetCoordSys = targetSeriesModel.coordinateSystem;\n\n  if (targetCoordSys && targetCoordSys.master) {\n    targetCoordSys = targetCoordSys.master;\n  }\n\n  var blurredSeries = [];\n  ecModel.eachSeries(function (seriesModel) {\n    var sameSeries = targetSeriesModel === seriesModel;\n    var coordSys = seriesModel.coordinateSystem;\n\n    if (coordSys && coordSys.master) {\n      coordSys = coordSys.master;\n    }\n\n    var sameCoordSys = coordSys && targetCoordSys ? coordSys === targetCoordSys : sameSeries;\n\n    if (!(blurScope === 'series' && !sameSeries || blurScope === 'coordinateSystem' && !sameCoordSys || focus === 'series' && sameSeries)) {\n      var view = api.getViewOfSeriesModel(seriesModel);\n      view.group.traverse(function (child) {\n        singleEnterBlur(child);\n      });\n\n      if (isArrayLike(focus)) {\n        leaveBlurOfIndices(seriesModel.getData(), focus);\n      } else if (isObject(focus)) {\n        var dataTypes = keys(focus);\n\n        for (var d = 0; d < dataTypes.length; d++) {\n          leaveBlurOfIndices(seriesModel.getData(dataTypes[d]), focus[dataTypes[d]]);\n        }\n      }\n\n      blurredSeries.push(seriesModel);\n    }\n  });\n  ecModel.eachComponent(function (componentType, componentModel) {\n    if (componentType === 'series') {\n      return;\n    }\n\n    var view = api.getViewOfComponentModel(componentModel);\n\n    if (view && view.blurSeries) {\n      view.blurSeries(blurredSeries, ecModel);\n    }\n  });\n}\nexport function toggleSeriesBlurStateFromPayload(seriesModel, payload, api) {\n  if (!isHighDownPayload(payload)) {\n    return;\n  }\n\n  var isHighlight = payload.type === HIGHLIGHT_ACTION_TYPE;\n  var seriesIndex = seriesModel.seriesIndex;\n  var data = seriesModel.getData(payload.dataType);\n  var dataIndex = queryDataIndex(data, payload);\n  dataIndex = (isArray(dataIndex) ? dataIndex[0] : dataIndex) || 0;\n  var el = data.getItemGraphicEl(dataIndex);\n\n  if (!el) {\n    var count = data.count();\n    var current = 0;\n\n    while (!el && current < count) {\n      el = data.getItemGraphicEl(current++);\n    }\n  }\n\n  if (el) {\n    var ecData = getECData(el);\n    toggleSeriesBlurState(seriesIndex, ecData.focus, ecData.blurScope, api, isHighlight);\n  } else {\n    var focus_1 = seriesModel.get(['emphasis', 'focus']);\n    var blurScope = seriesModel.get(['emphasis', 'blurScope']);\n\n    if (focus_1 != null) {\n      toggleSeriesBlurState(seriesIndex, focus_1, blurScope, api, isHighlight);\n    }\n  }\n}\nexport function toggleSelectionFromPayload(seriesModel, payload, api) {\n  if (!isSelectChangePayload(payload)) {\n    return;\n  }\n\n  var dataType = payload.dataType;\n  var data = seriesModel.getData(dataType);\n  var dataIndex = queryDataIndex(data, payload);\n\n  if (!isArray(dataIndex)) {\n    dataIndex = [dataIndex];\n  }\n\n  seriesModel[payload.type === TOGGLE_SELECT_ACTION_TYPE ? 'toggleSelect' : payload.type === SELECT_ACTION_TYPE ? 'select' : 'unselect'](dataIndex, dataType);\n}\nexport function updateSeriesElementSelection(seriesModel) {\n  var allData = seriesModel.getAllData();\n  each(allData, function (_a) {\n    var data = _a.data,\n        type = _a.type;\n    data.eachItemGraphicEl(function (el, idx) {\n      seriesModel.isSelected(idx, type) ? enterSelect(el) : leaveSelect(el);\n    });\n  });\n}\nexport function getAllSelectedIndices(ecModel) {\n  var ret = [];\n  ecModel.eachSeries(function (seriesModel) {\n    var allData = seriesModel.getAllData();\n    each(allData, function (_a) {\n      var data = _a.data,\n          type = _a.type;\n      var dataIndices = seriesModel.getSelectedDataIndices();\n\n      if (dataIndices.length > 0) {\n        var item = {\n          dataIndex: dataIndices,\n          seriesIndex: seriesModel.seriesIndex\n        };\n\n        if (type != null) {\n          item.dataType = type;\n        }\n\n        ret.push(item);\n      }\n    });\n  });\n  return ret;\n}\nexport function enableHoverEmphasis(el, focus, blurScope) {\n  setAsHighDownDispatcher(el, true);\n  traverseUpdateState(el, setDefaultStateProxy);\n  enableHoverFocus(el, focus, blurScope);\n}\nexport function enableHoverFocus(el, focus, blurScope) {\n  var ecData = getECData(el);\n\n  if (focus != null) {\n    ecData.focus = focus;\n    ecData.blurScope = blurScope;\n  } else if (ecData.focus) {\n    ecData.focus = null;\n  }\n}\nvar OTHER_STATES = ['emphasis', 'blur', 'select'];\nvar defaultStyleGetterMap = {\n  itemStyle: 'getItemStyle',\n  lineStyle: 'getLineStyle',\n  areaStyle: 'getAreaStyle'\n};\nexport function setStatesStylesFromModel(el, itemModel, styleType, getter) {\n  styleType = styleType || 'itemStyle';\n\n  for (var i = 0; i < OTHER_STATES.length; i++) {\n    var stateName = OTHER_STATES[i];\n    var model = itemModel.getModel([stateName, styleType]);\n    var state = el.ensureState(stateName);\n    state.style = getter ? getter(model) : model[defaultStyleGetterMap[styleType]]();\n  }\n}\nexport function setAsHighDownDispatcher(el, asDispatcher) {\n  var disable = asDispatcher === false;\n  var extendedEl = el;\n\n  if (el.highDownSilentOnTouch) {\n    extendedEl.__highDownSilentOnTouch = el.highDownSilentOnTouch;\n  }\n\n  if (!disable || extendedEl.__highDownDispatcher) {\n    extendedEl.__highByOuter = extendedEl.__highByOuter || 0;\n    extendedEl.__highDownDispatcher = !disable;\n  }\n}\nexport function isHighDownDispatcher(el) {\n  return !!(el && el.__highDownDispatcher);\n}\nexport function getHighlightDigit(highlightKey) {\n  var highlightDigit = _highlightKeyMap[highlightKey];\n\n  if (highlightDigit == null && _highlightNextDigit <= 32) {\n    highlightDigit = _highlightKeyMap[highlightKey] = _highlightNextDigit++;\n  }\n\n  return highlightDigit;\n}\nexport function isSelectChangePayload(payload) {\n  var payloadType = payload.type;\n  return payloadType === SELECT_ACTION_TYPE || payloadType === UNSELECT_ACTION_TYPE || payloadType === TOGGLE_SELECT_ACTION_TYPE;\n}\nexport function isHighDownPayload(payload) {\n  var payloadType = payload.type;\n  return payloadType === HIGHLIGHT_ACTION_TYPE || payloadType === DOWNPLAY_ACTION_TYPE;\n}\nexport function savePathStates(el) {\n  var store = getSavedStates(el);\n  store.normalFill = el.style.fill;\n  store.normalStroke = el.style.stroke;\n  var selectState = el.states.select || {};\n  store.selectFill = selectState.style && selectState.style.fill || null;\n  store.selectStroke = selectState.style && selectState.style.stroke || null;\n}","import PathProxy from '../core/PathProxy';\nimport { applyTransform as v2ApplyTransform } from '../core/vector';\nvar CMD = PathProxy.CMD;\nvar points = [[], [], []];\nvar mathSqrt = Math.sqrt;\nvar mathAtan2 = Math.atan2;\nexport default function transformPath(path, m) {\n    var data = path.data;\n    var len = path.len();\n    var cmd;\n    var nPoint;\n    var i;\n    var j;\n    var k;\n    var p;\n    var M = CMD.M;\n    var C = CMD.C;\n    var L = CMD.L;\n    var R = CMD.R;\n    var A = CMD.A;\n    var Q = CMD.Q;\n    for (i = 0, j = 0; i < len;) {\n        cmd = data[i++];\n        j = i;\n        nPoint = 0;\n        switch (cmd) {\n            case M:\n                nPoint = 1;\n                break;\n            case L:\n                nPoint = 1;\n                break;\n            case C:\n                nPoint = 3;\n                break;\n            case Q:\n                nPoint = 2;\n                break;\n            case A:\n                var x = m[4];\n                var y = m[5];\n                var sx = mathSqrt(m[0] * m[0] + m[1] * m[1]);\n                var sy = mathSqrt(m[2] * m[2] + m[3] * m[3]);\n                var angle = mathAtan2(-m[1] / sy, m[0] / sx);\n                data[i] *= sx;\n                data[i++] += x;\n                data[i] *= sy;\n                data[i++] += y;\n                data[i++] *= sx;\n                data[i++] *= sy;\n                data[i++] += angle;\n                data[i++] += angle;\n                i += 2;\n                j = i;\n                break;\n            case R:\n                p[0] = data[i++];\n                p[1] = data[i++];\n                v2ApplyTransform(p, p, m);\n                data[j++] = p[0];\n                data[j++] = p[1];\n                p[0] += data[i++];\n                p[1] += data[i++];\n                v2ApplyTransform(p, p, m);\n                data[j++] = p[0];\n                data[j++] = p[1];\n        }\n        for (k = 0; k < nPoint; k++) {\n            var p_1 = points[k];\n            p_1[0] = data[i++];\n            p_1[1] = data[i++];\n            v2ApplyTransform(p_1, p_1, m);\n            data[j++] = p_1[0];\n            data[j++] = p_1[1];\n        }\n    }\n    path.increaseVersion();\n}\n","import { __extends } from \"tslib\";\nimport Path from '../graphic/Path';\nimport PathProxy from '../core/PathProxy';\nimport transformPath from './transformPath';\nimport { extend } from '../core/util';\nvar mathSqrt = Math.sqrt;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar PI = Math.PI;\nfunction vMag(v) {\n    return Math.sqrt(v[0] * v[0] + v[1] * v[1]);\n}\n;\nfunction vRatio(u, v) {\n    return (u[0] * v[0] + u[1] * v[1]) / (vMag(u) * vMag(v));\n}\n;\nfunction vAngle(u, v) {\n    return (u[0] * v[1] < u[1] * v[0] ? -1 : 1)\n        * Math.acos(vRatio(u, v));\n}\n;\nfunction processArc(x1, y1, x2, y2, fa, fs, rx, ry, psiDeg, cmd, path) {\n    var psi = psiDeg * (PI / 180.0);\n    var xp = mathCos(psi) * (x1 - x2) / 2.0\n        + mathSin(psi) * (y1 - y2) / 2.0;\n    var yp = -1 * mathSin(psi) * (x1 - x2) / 2.0\n        + mathCos(psi) * (y1 - y2) / 2.0;\n    var lambda = (xp * xp) / (rx * rx) + (yp * yp) / (ry * ry);\n    if (lambda > 1) {\n        rx *= mathSqrt(lambda);\n        ry *= mathSqrt(lambda);\n    }\n    var f = (fa === fs ? -1 : 1)\n        * mathSqrt((((rx * rx) * (ry * ry))\n            - ((rx * rx) * (yp * yp))\n            - ((ry * ry) * (xp * xp))) / ((rx * rx) * (yp * yp)\n            + (ry * ry) * (xp * xp))) || 0;\n    var cxp = f * rx * yp / ry;\n    var cyp = f * -ry * xp / rx;\n    var cx = (x1 + x2) / 2.0\n        + mathCos(psi) * cxp\n        - mathSin(psi) * cyp;\n    var cy = (y1 + y2) / 2.0\n        + mathSin(psi) * cxp\n        + mathCos(psi) * cyp;\n    var theta = vAngle([1, 0], [(xp - cxp) / rx, (yp - cyp) / ry]);\n    var u = [(xp - cxp) / rx, (yp - cyp) / ry];\n    var v = [(-1 * xp - cxp) / rx, (-1 * yp - cyp) / ry];\n    var dTheta = vAngle(u, v);\n    if (vRatio(u, v) <= -1) {\n        dTheta = PI;\n    }\n    if (vRatio(u, v) >= 1) {\n        dTheta = 0;\n    }\n    if (dTheta < 0) {\n        var n = Math.round(dTheta / PI * 1e6) / 1e6;\n        dTheta = PI * 2 + (n % 2) * PI;\n    }\n    path.addData(cmd, cx, cy, rx, ry, theta, dTheta, psi, fs);\n}\nvar commandReg = /([mlvhzcqtsa])([^mlvhzcqtsa]*)/ig;\nvar numberReg = /-?([0-9]*\\.)?[0-9]+([eE]-?[0-9]+)?/g;\nfunction createPathProxyFromString(data) {\n    var path = new PathProxy();\n    if (!data) {\n        return path;\n    }\n    var cpx = 0;\n    var cpy = 0;\n    var subpathX = cpx;\n    var subpathY = cpy;\n    var prevCmd;\n    var CMD = PathProxy.CMD;\n    var cmdList = data.match(commandReg);\n    if (!cmdList) {\n        return path;\n    }\n    for (var l = 0; l < cmdList.length; l++) {\n        var cmdText = cmdList[l];\n        var cmdStr = cmdText.charAt(0);\n        var cmd = void 0;\n        var p = cmdText.match(numberReg) || [];\n        var pLen = p.length;\n        for (var i = 0; i < pLen; i++) {\n            p[i] = parseFloat(p[i]);\n        }\n        var off = 0;\n        while (off < pLen) {\n            var ctlPtx = void 0;\n            var ctlPty = void 0;\n            var rx = void 0;\n            var ry = void 0;\n            var psi = void 0;\n            var fa = void 0;\n            var fs = void 0;\n            var x1 = cpx;\n            var y1 = cpy;\n            var len = void 0;\n            var pathData = void 0;\n            switch (cmdStr) {\n                case 'l':\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'L':\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'm':\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.M;\n                    path.addData(cmd, cpx, cpy);\n                    subpathX = cpx;\n                    subpathY = cpy;\n                    cmdStr = 'l';\n                    break;\n                case 'M':\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.M;\n                    path.addData(cmd, cpx, cpy);\n                    subpathX = cpx;\n                    subpathY = cpy;\n                    cmdStr = 'L';\n                    break;\n                case 'h':\n                    cpx += p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'H':\n                    cpx = p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'v':\n                    cpy += p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'V':\n                    cpy = p[off++];\n                    cmd = CMD.L;\n                    path.addData(cmd, cpx, cpy);\n                    break;\n                case 'C':\n                    cmd = CMD.C;\n                    path.addData(cmd, p[off++], p[off++], p[off++], p[off++], p[off++], p[off++]);\n                    cpx = p[off - 2];\n                    cpy = p[off - 1];\n                    break;\n                case 'c':\n                    cmd = CMD.C;\n                    path.addData(cmd, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy, p[off++] + cpx, p[off++] + cpy);\n                    cpx += p[off - 2];\n                    cpy += p[off - 1];\n                    break;\n                case 'S':\n                    ctlPtx = cpx;\n                    ctlPty = cpy;\n                    len = path.len();\n                    pathData = path.data;\n                    if (prevCmd === CMD.C) {\n                        ctlPtx += cpx - pathData[len - 4];\n                        ctlPty += cpy - pathData[len - 3];\n                    }\n                    cmd = CMD.C;\n                    x1 = p[off++];\n                    y1 = p[off++];\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\n                    break;\n                case 's':\n                    ctlPtx = cpx;\n                    ctlPty = cpy;\n                    len = path.len();\n                    pathData = path.data;\n                    if (prevCmd === CMD.C) {\n                        ctlPtx += cpx - pathData[len - 4];\n                        ctlPty += cpy - pathData[len - 3];\n                    }\n                    cmd = CMD.C;\n                    x1 = cpx + p[off++];\n                    y1 = cpy + p[off++];\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    path.addData(cmd, ctlPtx, ctlPty, x1, y1, cpx, cpy);\n                    break;\n                case 'Q':\n                    x1 = p[off++];\n                    y1 = p[off++];\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.Q;\n                    path.addData(cmd, x1, y1, cpx, cpy);\n                    break;\n                case 'q':\n                    x1 = p[off++] + cpx;\n                    y1 = p[off++] + cpy;\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.Q;\n                    path.addData(cmd, x1, y1, cpx, cpy);\n                    break;\n                case 'T':\n                    ctlPtx = cpx;\n                    ctlPty = cpy;\n                    len = path.len();\n                    pathData = path.data;\n                    if (prevCmd === CMD.Q) {\n                        ctlPtx += cpx - pathData[len - 4];\n                        ctlPty += cpy - pathData[len - 3];\n                    }\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.Q;\n                    path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n                    break;\n                case 't':\n                    ctlPtx = cpx;\n                    ctlPty = cpy;\n                    len = path.len();\n                    pathData = path.data;\n                    if (prevCmd === CMD.Q) {\n                        ctlPtx += cpx - pathData[len - 4];\n                        ctlPty += cpy - pathData[len - 3];\n                    }\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.Q;\n                    path.addData(cmd, ctlPtx, ctlPty, cpx, cpy);\n                    break;\n                case 'A':\n                    rx = p[off++];\n                    ry = p[off++];\n                    psi = p[off++];\n                    fa = p[off++];\n                    fs = p[off++];\n                    x1 = cpx, y1 = cpy;\n                    cpx = p[off++];\n                    cpy = p[off++];\n                    cmd = CMD.A;\n                    processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\n                    break;\n                case 'a':\n                    rx = p[off++];\n                    ry = p[off++];\n                    psi = p[off++];\n                    fa = p[off++];\n                    fs = p[off++];\n                    x1 = cpx, y1 = cpy;\n                    cpx += p[off++];\n                    cpy += p[off++];\n                    cmd = CMD.A;\n                    processArc(x1, y1, cpx, cpy, fa, fs, rx, ry, psi, cmd, path);\n                    break;\n            }\n        }\n        if (cmdStr === 'z' || cmdStr === 'Z') {\n            cmd = CMD.Z;\n            path.addData(cmd);\n            cpx = subpathX;\n            cpy = subpathY;\n        }\n        prevCmd = cmd;\n    }\n    path.toStatic();\n    return path;\n}\nvar SVGPath = (function (_super) {\n    __extends(SVGPath, _super);\n    function SVGPath() {\n        return _super !== null && _super.apply(this, arguments) || this;\n    }\n    SVGPath.prototype.applyTransform = function (m) { };\n    return SVGPath;\n}(Path));\nfunction isPathProxy(path) {\n    return path.setData != null;\n}\nfunction createPathOptions(str, opts) {\n    var pathProxy = createPathProxyFromString(str);\n    var innerOpts = extend({}, opts);\n    innerOpts.buildPath = function (path) {\n        if (isPathProxy(path)) {\n            path.setData(pathProxy.data);\n            var ctx = path.getContext();\n            if (ctx) {\n                path.rebuildPath(ctx, 1);\n            }\n        }\n        else {\n            var ctx = path;\n            pathProxy.rebuildPath(ctx, 1);\n        }\n    };\n    innerOpts.applyTransform = function (m) {\n        transformPath(pathProxy, m);\n        this.dirtyShape();\n    };\n    return innerOpts;\n}\nexport function createFromString(str, opts) {\n    return new SVGPath(createPathOptions(str, opts));\n}\nexport function extendFromString(str, defaultOpts) {\n    var innerOpts = createPathOptions(str, defaultOpts);\n    var Sub = (function (_super) {\n        __extends(Sub, _super);\n        function Sub(opts) {\n            var _this = _super.call(this, opts) || this;\n            _this.applyTransform = innerOpts.applyTransform;\n            _this.buildPath = innerOpts.buildPath;\n            return _this;\n        }\n        return Sub;\n    }(SVGPath));\n    return Sub;\n}\nexport function mergePath(pathEls, opts) {\n    var pathList = [];\n    var len = pathEls.length;\n    for (var i = 0; i < len; i++) {\n        var pathEl = pathEls[i];\n        if (!pathEl.path) {\n            pathEl.createPathProxy();\n        }\n        if (pathEl.shapeChanged()) {\n            pathEl.buildPath(pathEl.path, pathEl.shape, true);\n        }\n        pathList.push(pathEl.path);\n    }\n    var pathBundle = new Path(opts);\n    pathBundle.createPathProxy();\n    pathBundle.buildPath = function (path) {\n        if (isPathProxy(path)) {\n            path.appendPath(pathList);\n            var ctx = path.getContext();\n            if (ctx) {\n                path.rebuildPath(ctx, 1);\n            }\n        }\n    };\n    return pathBundle;\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar CircleShape = (function () {\n    function CircleShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.r = 0;\n    }\n    return CircleShape;\n}());\nvar Circle = (function (_super) {\n    __extends(Circle, _super);\n    function Circle(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Circle.prototype.getDefaultShape = function () {\n        return new CircleShape();\n    };\n    Circle.prototype.buildPath = function (ctx, shape, inBundle) {\n        if (inBundle) {\n            ctx.moveTo(shape.cx + shape.r, shape.cy);\n        }\n        ctx.arc(shape.cx, shape.cy, shape.r, 0, Math.PI * 2);\n    };\n    return Circle;\n}(Path));\n;\nCircle.prototype.type = 'circle';\nexport default Circle;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar EllipseShape = (function () {\n    function EllipseShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.rx = 0;\n        this.ry = 0;\n    }\n    return EllipseShape;\n}());\nvar Ellipse = (function (_super) {\n    __extends(Ellipse, _super);\n    function Ellipse(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Ellipse.prototype.getDefaultShape = function () {\n        return new EllipseShape();\n    };\n    Ellipse.prototype.buildPath = function (ctx, shape) {\n        var k = 0.5522848;\n        var x = shape.cx;\n        var y = shape.cy;\n        var a = shape.rx;\n        var b = shape.ry;\n        var ox = a * k;\n        var oy = b * k;\n        ctx.moveTo(x - a, y);\n        ctx.bezierCurveTo(x - a, y - oy, x - ox, y - b, x, y - b);\n        ctx.bezierCurveTo(x + ox, y - b, x + a, y - oy, x + a, y);\n        ctx.bezierCurveTo(x + a, y + oy, x + ox, y + b, x, y + b);\n        ctx.bezierCurveTo(x - ox, y + b, x - a, y + oy, x - a, y);\n        ctx.closePath();\n    };\n    return Ellipse;\n}(Path));\nEllipse.prototype.type = 'ellipse';\nexport default Ellipse;\n","import { normalizeArcAngles } from '../../core/PathProxy';\nvar PI = Math.PI;\nvar PI2 = PI * 2;\nvar mathSin = Math.sin;\nvar mathCos = Math.cos;\nvar mathACos = Math.acos;\nvar mathATan2 = Math.atan2;\nvar mathAbs = Math.abs;\nvar mathSqrt = Math.sqrt;\nvar mathMax = Math.max;\nvar mathMin = Math.min;\nvar e = 1e-4;\nfunction intersect(x0, y0, x1, y1, x2, y2, x3, y3) {\n    var x10 = x1 - x0;\n    var y10 = y1 - y0;\n    var x32 = x3 - x2;\n    var y32 = y3 - y2;\n    var t = y32 * x10 - x32 * y10;\n    if (t * t < e) {\n        return;\n    }\n    t = (x32 * (y0 - y2) - y32 * (x0 - x2)) / t;\n    return [x0 + t * x10, y0 + t * y10];\n}\nfunction computeCornerTangents(x0, y0, x1, y1, radius, cr, clockwise) {\n    var x01 = x0 - x1;\n    var y01 = y0 - y1;\n    var lo = (clockwise ? cr : -cr) / mathSqrt(x01 * x01 + y01 * y01);\n    var ox = lo * y01;\n    var oy = -lo * x01;\n    var x11 = x0 + ox;\n    var y11 = y0 + oy;\n    var x10 = x1 + ox;\n    var y10 = y1 + oy;\n    var x00 = (x11 + x10) / 2;\n    var y00 = (y11 + y10) / 2;\n    var dx = x10 - x11;\n    var dy = y10 - y11;\n    var d2 = dx * dx + dy * dy;\n    var r = radius - cr;\n    var s = x11 * y10 - x10 * y11;\n    var d = (dy < 0 ? -1 : 1) * mathSqrt(mathMax(0, r * r * d2 - s * s));\n    var cx0 = (s * dy - dx * d) / d2;\n    var cy0 = (-s * dx - dy * d) / d2;\n    var cx1 = (s * dy + dx * d) / d2;\n    var cy1 = (-s * dx + dy * d) / d2;\n    var dx0 = cx0 - x00;\n    var dy0 = cy0 - y00;\n    var dx1 = cx1 - x00;\n    var dy1 = cy1 - y00;\n    if (dx0 * dx0 + dy0 * dy0 > dx1 * dx1 + dy1 * dy1) {\n        cx0 = cx1;\n        cy0 = cy1;\n    }\n    return {\n        cx: cx0,\n        cy: cy0,\n        x01: -ox,\n        y01: -oy,\n        x11: cx0 * (radius / r - 1),\n        y11: cy0 * (radius / r - 1)\n    };\n}\nexport function buildPath(ctx, shape) {\n    var radius = mathMax(shape.r, 0);\n    var innerRadius = mathMax(shape.r0 || 0, 0);\n    var hasRadius = radius > 0;\n    var hasInnerRadius = innerRadius > 0;\n    if (!hasRadius && !hasInnerRadius) {\n        return;\n    }\n    if (!hasRadius) {\n        radius = innerRadius;\n        innerRadius = 0;\n    }\n    if (innerRadius > radius) {\n        var tmp = radius;\n        radius = innerRadius;\n        innerRadius = tmp;\n    }\n    var clockwise = !!shape.clockwise;\n    var startAngle = shape.startAngle;\n    var endAngle = shape.endAngle;\n    var tmpAngles = [startAngle, endAngle];\n    normalizeArcAngles(tmpAngles, !clockwise);\n    var arc = mathAbs(tmpAngles[0] - tmpAngles[1]);\n    var x = shape.cx;\n    var y = shape.cy;\n    var cornerRadius = shape.cornerRadius || 0;\n    var innerCornerRadius = shape.innerCornerRadius || 0;\n    if (!(radius > e)) {\n        ctx.moveTo(x, y);\n    }\n    else if (arc > PI2 - e) {\n        ctx.moveTo(x + radius * mathCos(startAngle), y + radius * mathSin(startAngle));\n        ctx.arc(x, y, radius, startAngle, endAngle, !clockwise);\n        if (innerRadius > e) {\n            ctx.moveTo(x + innerRadius * mathCos(endAngle), y + innerRadius * mathSin(endAngle));\n            ctx.arc(x, y, innerRadius, endAngle, startAngle, clockwise);\n        }\n    }\n    else {\n        var halfRd = mathAbs(radius - innerRadius) / 2;\n        var cr = mathMin(halfRd, cornerRadius);\n        var icr = mathMin(halfRd, innerCornerRadius);\n        var cr0 = icr;\n        var cr1 = cr;\n        var xrs = radius * mathCos(startAngle);\n        var yrs = radius * mathSin(startAngle);\n        var xire = innerRadius * mathCos(endAngle);\n        var yire = innerRadius * mathSin(endAngle);\n        var xre = void 0;\n        var yre = void 0;\n        var xirs = void 0;\n        var yirs = void 0;\n        if (cr > e || icr > e) {\n            xre = radius * mathCos(endAngle);\n            yre = radius * mathSin(endAngle);\n            xirs = innerRadius * mathCos(startAngle);\n            yirs = innerRadius * mathSin(startAngle);\n            if (arc < PI) {\n                var it_1 = intersect(xrs, yrs, xirs, yirs, xre, yre, xire, yire);\n                if (it_1) {\n                    var x0 = xrs - it_1[0];\n                    var y0 = yrs - it_1[1];\n                    var x1 = xre - it_1[0];\n                    var y1 = yre - it_1[1];\n                    var a = 1 / mathSin(mathACos((x0 * x1 + y0 * y1) / (mathSqrt(x0 * x0 + y0 * y0) * mathSqrt(x1 * x1 + y1 * y1))) / 2);\n                    var b = mathSqrt(it_1[0] * it_1[0] + it_1[1] * it_1[1]);\n                    cr0 = mathMin(icr, (innerRadius - b) / (a - 1));\n                    cr1 = mathMin(cr, (radius - b) / (a + 1));\n                }\n            }\n        }\n        if (!(arc > e)) {\n            ctx.moveTo(x + xrs, y + yrs);\n        }\n        else if (cr1 > e) {\n            var ct0 = computeCornerTangents(xirs, yirs, xrs, yrs, radius, cr1, clockwise);\n            var ct1 = computeCornerTangents(xre, yre, xire, yire, radius, cr1, clockwise);\n            ctx.moveTo(x + ct0.cx + ct0.x01, y + ct0.cy + ct0.y01);\n            if (cr1 < cr) {\n                ctx.arc(x + ct0.cx, y + ct0.cy, cr1, mathATan2(ct0.y01, ct0.x01), mathATan2(ct1.y01, ct1.x01), !clockwise);\n            }\n            else {\n                ctx.arc(x + ct0.cx, y + ct0.cy, cr1, mathATan2(ct0.y01, ct0.x01), mathATan2(ct0.y11, ct0.x11), !clockwise);\n                ctx.arc(x, y, radius, mathATan2(ct0.cy + ct0.y11, ct0.cx + ct0.x11), mathATan2(ct1.cy + ct1.y11, ct1.cx + ct1.x11), !clockwise);\n                ctx.arc(x + ct1.cx, y + ct1.cy, cr1, mathATan2(ct1.y11, ct1.x11), mathATan2(ct1.y01, ct1.x01), !clockwise);\n            }\n        }\n        else {\n            ctx.moveTo(x + xrs, y + yrs);\n            ctx.arc(x, y, radius, startAngle, endAngle, !clockwise);\n        }\n        if (!(innerRadius > e) || !(arc > e)) {\n            ctx.lineTo(x + xire, y + yire);\n        }\n        else if (cr0 > e) {\n            var ct0 = computeCornerTangents(xire, yire, xre, yre, innerRadius, -cr0, clockwise);\n            var ct1 = computeCornerTangents(xrs, yrs, xirs, yirs, innerRadius, -cr0, clockwise);\n            ctx.lineTo(x + ct0.cx + ct0.x01, y + ct0.cy + ct0.y01);\n            if (cr0 < icr) {\n                ctx.arc(x + ct0.cx, y + ct0.cy, cr0, mathATan2(ct0.y01, ct0.x01), mathATan2(ct1.y01, ct1.x01), !clockwise);\n            }\n            else {\n                ctx.arc(x + ct0.cx, y + ct0.cy, cr0, mathATan2(ct0.y01, ct0.x01), mathATan2(ct0.y11, ct0.x11), !clockwise);\n                ctx.arc(x, y, innerRadius, mathATan2(ct0.cy + ct0.y11, ct0.cx + ct0.x11), mathATan2(ct1.cy + ct1.y11, ct1.cx + ct1.x11), clockwise);\n                ctx.arc(x + ct1.cx, y + ct1.cy, cr0, mathATan2(ct1.y11, ct1.x11), mathATan2(ct1.y01, ct1.x01), !clockwise);\n            }\n        }\n        else {\n            ctx.lineTo(x + xire, y + yire);\n            ctx.arc(x, y, innerRadius, endAngle, startAngle, clockwise);\n        }\n    }\n    ctx.closePath();\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as roundSectorHelper from '../helper/roundSector';\nvar SectorShape = (function () {\n    function SectorShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.r0 = 0;\n        this.r = 0;\n        this.startAngle = 0;\n        this.endAngle = Math.PI * 2;\n        this.clockwise = true;\n        this.cornerRadius = 0;\n        this.innerCornerRadius = 0;\n    }\n    return SectorShape;\n}());\nvar Sector = (function (_super) {\n    __extends(Sector, _super);\n    function Sector(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Sector.prototype.getDefaultShape = function () {\n        return new SectorShape();\n    };\n    Sector.prototype.buildPath = function (ctx, shape) {\n        roundSectorHelper.buildPath(ctx, shape);\n    };\n    Sector.prototype.isZeroArea = function () {\n        return this.shape.startAngle === this.shape.endAngle\n            || this.shape.r === this.shape.r0;\n    };\n    return Sector;\n}(Path));\nSector.prototype.type = 'sector';\nexport default Sector;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar RingShape = (function () {\n    function RingShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.r = 0;\n        this.r0 = 0;\n    }\n    return RingShape;\n}());\nvar Ring = (function (_super) {\n    __extends(Ring, _super);\n    function Ring(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Ring.prototype.getDefaultShape = function () {\n        return new RingShape();\n    };\n    Ring.prototype.buildPath = function (ctx, shape) {\n        var x = shape.cx;\n        var y = shape.cy;\n        var PI2 = Math.PI * 2;\n        ctx.moveTo(x + shape.r, y);\n        ctx.arc(x, y, shape.r, 0, PI2, false);\n        ctx.moveTo(x + shape.r0, y);\n        ctx.arc(x, y, shape.r0, 0, PI2, true);\n    };\n    return Ring;\n}(Path));\nRing.prototype.type = 'ring';\nexport default Ring;\n","import { distance as v2Distance } from '../../core/vector';\nfunction interpolate(p0, p1, p2, p3, t, t2, t3) {\n    var v0 = (p2 - p0) * 0.5;\n    var v1 = (p3 - p1) * 0.5;\n    return (2 * (p1 - p2) + v0 + v1) * t3\n        + (-3 * (p1 - p2) - 2 * v0 - v1) * t2\n        + v0 * t + p1;\n}\nexport default function smoothSpline(points, isLoop) {\n    var len = points.length;\n    var ret = [];\n    var distance = 0;\n    for (var i = 1; i < len; i++) {\n        distance += v2Distance(points[i - 1], points[i]);\n    }\n    var segs = distance / 2;\n    segs = segs < len ? len : segs;\n    for (var i = 0; i < segs; i++) {\n        var pos = i / (segs - 1) * (isLoop ? len : len - 1);\n        var idx = Math.floor(pos);\n        var w = pos - idx;\n        var p0 = void 0;\n        var p1 = points[idx % len];\n        var p2 = void 0;\n        var p3 = void 0;\n        if (!isLoop) {\n            p0 = points[idx === 0 ? idx : idx - 1];\n            p2 = points[idx > len - 2 ? len - 1 : idx + 1];\n            p3 = points[idx > len - 3 ? len - 1 : idx + 2];\n        }\n        else {\n            p0 = points[(idx - 1 + len) % len];\n            p2 = points[(idx + 1) % len];\n            p3 = points[(idx + 2) % len];\n        }\n        var w2 = w * w;\n        var w3 = w * w2;\n        ret.push([\n            interpolate(p0[0], p1[0], p2[0], p3[0], w, w2, w3),\n            interpolate(p0[1], p1[1], p2[1], p3[1], w, w2, w3)\n        ]);\n    }\n    return ret;\n}\n","import { min as v2Min, max as v2Max, scale as v2Scale, distance as v2Distance, add as v2Add, clone as v2Clone, sub as v2Sub } from '../../core/vector';\nexport default function smoothBezier(points, smooth, isLoop, constraint) {\n    var cps = [];\n    var v = [];\n    var v1 = [];\n    var v2 = [];\n    var prevPoint;\n    var nextPoint;\n    var min;\n    var max;\n    if (constraint) {\n        min = [Infinity, Infinity];\n        max = [-Infinity, -Infinity];\n        for (var i = 0, len = points.length; i < len; i++) {\n            v2Min(min, min, points[i]);\n            v2Max(max, max, points[i]);\n        }\n        v2Min(min, min, constraint[0]);\n        v2Max(max, max, constraint[1]);\n    }\n    for (var i = 0, len = points.length; i < len; i++) {\n        var point = points[i];\n        if (isLoop) {\n            prevPoint = points[i ? i - 1 : len - 1];\n            nextPoint = points[(i + 1) % len];\n        }\n        else {\n            if (i === 0 || i === len - 1) {\n                cps.push(v2Clone(points[i]));\n                continue;\n            }\n            else {\n                prevPoint = points[i - 1];\n                nextPoint = points[i + 1];\n            }\n        }\n        v2Sub(v, nextPoint, prevPoint);\n        v2Scale(v, v, smooth);\n        var d0 = v2Distance(point, prevPoint);\n        var d1 = v2Distance(point, nextPoint);\n        var sum = d0 + d1;\n        if (sum !== 0) {\n            d0 /= sum;\n            d1 /= sum;\n        }\n        v2Scale(v1, v, -d0);\n        v2Scale(v2, v, d1);\n        var cp0 = v2Add([], point, v1);\n        var cp1 = v2Add([], point, v2);\n        if (constraint) {\n            v2Max(cp0, cp0, min);\n            v2Min(cp0, cp0, max);\n            v2Max(cp1, cp1, min);\n            v2Min(cp1, cp1, max);\n        }\n        cps.push(cp0);\n        cps.push(cp1);\n    }\n    if (isLoop) {\n        cps.push(cps.shift());\n    }\n    return cps;\n}\n","import smoothSpline from './smoothSpline';\nimport smoothBezier from './smoothBezier';\nexport function buildPath(ctx, shape, closePath) {\n    var smooth = shape.smooth;\n    var points = shape.points;\n    if (points && points.length >= 2) {\n        if (smooth && smooth !== 'spline') {\n            var controlPoints = smoothBezier(points, smooth, closePath, shape.smoothConstraint);\n            ctx.moveTo(points[0][0], points[0][1]);\n            var len = points.length;\n            for (var i = 0; i < (closePath ? len : len - 1); i++) {\n                var cp1 = controlPoints[i * 2];\n                var cp2 = controlPoints[i * 2 + 1];\n                var p = points[(i + 1) % len];\n                ctx.bezierCurveTo(cp1[0], cp1[1], cp2[0], cp2[1], p[0], p[1]);\n            }\n        }\n        else {\n            if (smooth === 'spline') {\n                points = smoothSpline(points, closePath);\n            }\n            ctx.moveTo(points[0][0], points[0][1]);\n            for (var i = 1, l = points.length; i < l; i++) {\n                ctx.lineTo(points[i][0], points[i][1]);\n            }\n        }\n        closePath && ctx.closePath();\n    }\n}\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as polyHelper from '../helper/poly';\nvar PolygonShape = (function () {\n    function PolygonShape() {\n        this.points = null;\n        this.smooth = 0;\n        this.smoothConstraint = null;\n    }\n    return PolygonShape;\n}());\nvar Polygon = (function (_super) {\n    __extends(Polygon, _super);\n    function Polygon(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Polygon.prototype.getDefaultShape = function () {\n        return new PolygonShape();\n    };\n    Polygon.prototype.buildPath = function (ctx, shape) {\n        polyHelper.buildPath(ctx, shape, true);\n    };\n    return Polygon;\n}(Path));\n;\nPolygon.prototype.type = 'polygon';\nexport default Polygon;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as polyHelper from '../helper/poly';\nvar PolylineShape = (function () {\n    function PolylineShape() {\n        this.points = null;\n        this.percent = 1;\n        this.smooth = 0;\n        this.smoothConstraint = null;\n    }\n    return PolylineShape;\n}());\nvar Polyline = (function (_super) {\n    __extends(Polyline, _super);\n    function Polyline(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Polyline.prototype.getDefaultStyle = function () {\n        return {\n            stroke: '#000',\n            fill: null\n        };\n    };\n    Polyline.prototype.getDefaultShape = function () {\n        return new PolylineShape();\n    };\n    Polyline.prototype.buildPath = function (ctx, shape) {\n        polyHelper.buildPath(ctx, shape, false);\n    };\n    return Polyline;\n}(Path));\nPolyline.prototype.type = 'polyline';\nexport default Polyline;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport { subPixelOptimizeLine } from '../helper/subPixelOptimize';\nvar subPixelOptimizeOutputShape = {};\nvar LineShape = (function () {\n    function LineShape() {\n        this.x1 = 0;\n        this.y1 = 0;\n        this.x2 = 0;\n        this.y2 = 0;\n        this.percent = 1;\n    }\n    return LineShape;\n}());\nvar Line = (function (_super) {\n    __extends(Line, _super);\n    function Line(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Line.prototype.getDefaultStyle = function () {\n        return {\n            stroke: '#000',\n            fill: null\n        };\n    };\n    Line.prototype.getDefaultShape = function () {\n        return new LineShape();\n    };\n    Line.prototype.buildPath = function (ctx, shape) {\n        var x1;\n        var y1;\n        var x2;\n        var y2;\n        if (this.subPixelOptimize) {\n            var optimizedShape = subPixelOptimizeLine(subPixelOptimizeOutputShape, shape, this.style);\n            x1 = optimizedShape.x1;\n            y1 = optimizedShape.y1;\n            x2 = optimizedShape.x2;\n            y2 = optimizedShape.y2;\n        }\n        else {\n            x1 = shape.x1;\n            y1 = shape.y1;\n            x2 = shape.x2;\n            y2 = shape.y2;\n        }\n        var percent = shape.percent;\n        if (percent === 0) {\n            return;\n        }\n        ctx.moveTo(x1, y1);\n        if (percent < 1) {\n            x2 = x1 * (1 - percent) + x2 * percent;\n            y2 = y1 * (1 - percent) + y2 * percent;\n        }\n        ctx.lineTo(x2, y2);\n    };\n    Line.prototype.pointAt = function (p) {\n        var shape = this.shape;\n        return [\n            shape.x1 * (1 - p) + shape.x2 * p,\n            shape.y1 * (1 - p) + shape.y2 * p\n        ];\n    };\n    return Line;\n}(Path));\nLine.prototype.type = 'line';\nexport default Line;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nimport * as vec2 from '../../core/vector';\nimport { quadraticSubdivide, cubicSubdivide, quadraticAt, cubicAt, quadraticDerivativeAt, cubicDerivativeAt } from '../../core/curve';\nvar out = [];\nvar BezierCurveShape = (function () {\n    function BezierCurveShape() {\n        this.x1 = 0;\n        this.y1 = 0;\n        this.x2 = 0;\n        this.y2 = 0;\n        this.cpx1 = 0;\n        this.cpy1 = 0;\n        this.percent = 1;\n    }\n    return BezierCurveShape;\n}());\nfunction someVectorAt(shape, t, isTangent) {\n    var cpx2 = shape.cpx2;\n    var cpy2 = shape.cpy2;\n    if (cpx2 === null || cpy2 === null) {\n        return [\n            (isTangent ? cubicDerivativeAt : cubicAt)(shape.x1, shape.cpx1, shape.cpx2, shape.x2, t),\n            (isTangent ? cubicDerivativeAt : cubicAt)(shape.y1, shape.cpy1, shape.cpy2, shape.y2, t)\n        ];\n    }\n    else {\n        return [\n            (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.x1, shape.cpx1, shape.x2, t),\n            (isTangent ? quadraticDerivativeAt : quadraticAt)(shape.y1, shape.cpy1, shape.y2, t)\n        ];\n    }\n}\nvar BezierCurve = (function (_super) {\n    __extends(BezierCurve, _super);\n    function BezierCurve(opts) {\n        return _super.call(this, opts) || this;\n    }\n    BezierCurve.prototype.getDefaultStyle = function () {\n        return {\n            stroke: '#000',\n            fill: null\n        };\n    };\n    BezierCurve.prototype.getDefaultShape = function () {\n        return new BezierCurveShape();\n    };\n    BezierCurve.prototype.buildPath = function (ctx, shape) {\n        var x1 = shape.x1;\n        var y1 = shape.y1;\n        var x2 = shape.x2;\n        var y2 = shape.y2;\n        var cpx1 = shape.cpx1;\n        var cpy1 = shape.cpy1;\n        var cpx2 = shape.cpx2;\n        var cpy2 = shape.cpy2;\n        var percent = shape.percent;\n        if (percent === 0) {\n            return;\n        }\n        ctx.moveTo(x1, y1);\n        if (cpx2 == null || cpy2 == null) {\n            if (percent < 1) {\n                quadraticSubdivide(x1, cpx1, x2, percent, out);\n                cpx1 = out[1];\n                x2 = out[2];\n                quadraticSubdivide(y1, cpy1, y2, percent, out);\n                cpy1 = out[1];\n                y2 = out[2];\n            }\n            ctx.quadraticCurveTo(cpx1, cpy1, x2, y2);\n        }\n        else {\n            if (percent < 1) {\n                cubicSubdivide(x1, cpx1, cpx2, x2, percent, out);\n                cpx1 = out[1];\n                cpx2 = out[2];\n                x2 = out[3];\n                cubicSubdivide(y1, cpy1, cpy2, y2, percent, out);\n                cpy1 = out[1];\n                cpy2 = out[2];\n                y2 = out[3];\n            }\n            ctx.bezierCurveTo(cpx1, cpy1, cpx2, cpy2, x2, y2);\n        }\n    };\n    BezierCurve.prototype.pointAt = function (t) {\n        return someVectorAt(this.shape, t, false);\n    };\n    BezierCurve.prototype.tangentAt = function (t) {\n        var p = someVectorAt(this.shape, t, true);\n        return vec2.normalize(p, p);\n    };\n    return BezierCurve;\n}(Path));\n;\nBezierCurve.prototype.type = 'bezier-curve';\nexport default BezierCurve;\n","import { __extends } from \"tslib\";\nimport Path from '../Path';\nvar ArcShape = (function () {\n    function ArcShape() {\n        this.cx = 0;\n        this.cy = 0;\n        this.r = 0;\n        this.startAngle = 0;\n        this.endAngle = Math.PI * 2;\n        this.clockwise = true;\n    }\n    return ArcShape;\n}());\nvar Arc = (function (_super) {\n    __extends(Arc, _super);\n    function Arc(opts) {\n        return _super.call(this, opts) || this;\n    }\n    Arc.prototype.getDefaultStyle = function () {\n        return {\n            stroke: '#000',\n            fill: null\n        };\n    };\n    Arc.prototype.getDefaultShape = function () {\n        return new ArcShape();\n    };\n    Arc.prototype.buildPath = function (ctx, shape) {\n        var x = shape.cx;\n        var y = shape.cy;\n        var r = Math.max(shape.r, 0);\n        var startAngle = shape.startAngle;\n        var endAngle = shape.endAngle;\n        var clockwise = shape.clockwise;\n        var unitX = Math.cos(startAngle);\n        var unitY = Math.sin(startAngle);\n        ctx.moveTo(unitX * r + x, unitY * r + y);\n        ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\n    };\n    return Arc;\n}(Path));\nArc.prototype.type = 'arc';\nexport default Arc;\n","import { __extends } from \"tslib\";\nimport Path from './Path';\nvar CompoundPath = (function (_super) {\n    __extends(CompoundPath, _super);\n    function CompoundPath() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.type = 'compound';\n        return _this;\n    }\n    CompoundPath.prototype._updatePathDirty = function () {\n        var paths = this.shape.paths;\n        var dirtyPath = this.shapeChanged();\n        for (var i = 0; i < paths.length; i++) {\n            dirtyPath = dirtyPath || paths[i].shapeChanged();\n        }\n        if (dirtyPath) {\n            this.dirtyShape();\n        }\n    };\n    CompoundPath.prototype.beforeBrush = function () {\n        this._updatePathDirty();\n        var paths = this.shape.paths || [];\n        var scale = this.getGlobalScale();\n        for (var i = 0; i < paths.length; i++) {\n            if (!paths[i].path) {\n                paths[i].createPathProxy();\n            }\n            paths[i].path.setScale(scale[0], scale[1], paths[i].segmentIgnoreThreshold);\n        }\n    };\n    CompoundPath.prototype.buildPath = function (ctx, shape) {\n        var paths = shape.paths || [];\n        for (var i = 0; i < paths.length; i++) {\n            paths[i].buildPath(ctx, paths[i].shape, true);\n        }\n    };\n    CompoundPath.prototype.afterBrush = function () {\n        var paths = this.shape.paths || [];\n        for (var i = 0; i < paths.length; i++) {\n            paths[i].pathUpdated();\n        }\n    };\n    CompoundPath.prototype.getBoundingRect = function () {\n        this._updatePathDirty.call(this);\n        return Path.prototype.getBoundingRect.call(this);\n    };\n    return CompoundPath;\n}(Path));\nexport default CompoundPath;\n","var Gradient = (function () {\n    function Gradient(colorStops) {\n        this.colorStops = colorStops || [];\n    }\n    Gradient.prototype.addColorStop = function (offset, color) {\n        this.colorStops.push({\n            offset: offset,\n            color: color\n        });\n    };\n    return Gradient;\n}());\nexport default Gradient;\n","import { __extends } from \"tslib\";\nimport Gradient from './Gradient';\nvar LinearGradient = (function (_super) {\n    __extends(LinearGradient, _super);\n    function LinearGradient(x, y, x2, y2, colorStops, globalCoord) {\n        var _this = _super.call(this, colorStops) || this;\n        _this.x = x == null ? 0 : x;\n        _this.y = y == null ? 0 : y;\n        _this.x2 = x2 == null ? 1 : x2;\n        _this.y2 = y2 == null ? 0 : y2;\n        _this.type = 'linear';\n        _this.global = globalCoord || false;\n        return _this;\n    }\n    return LinearGradient;\n}(Gradient));\nexport default LinearGradient;\n;\n","import { __extends } from \"tslib\";\nimport Gradient from './Gradient';\nvar RadialGradient = (function (_super) {\n    __extends(RadialGradient, _super);\n    function RadialGradient(x, y, r, colorStops, globalCoord) {\n        var _this = _super.call(this, colorStops) || this;\n        _this.x = x == null ? 0.5 : x;\n        _this.y = y == null ? 0.5 : y;\n        _this.r = r == null ? 0.5 : r;\n        _this.type = 'radial';\n        _this.global = globalCoord || false;\n        return _this;\n    }\n    return RadialGradient;\n}(Gradient));\nexport default RadialGradient;\n","import Point from './Point';\nvar extent = [0, 0];\nvar extent2 = [0, 0];\nvar minTv = new Point();\nvar maxTv = new Point();\nvar OrientedBoundingRect = (function () {\n    function OrientedBoundingRect(rect, transform) {\n        this._corners = [];\n        this._axes = [];\n        this._origin = [0, 0];\n        for (var i = 0; i < 4; i++) {\n            this._corners[i] = new Point();\n        }\n        for (var i = 0; i < 2; i++) {\n            this._axes[i] = new Point();\n        }\n        if (rect) {\n            this.fromBoundingRect(rect, transform);\n        }\n    }\n    OrientedBoundingRect.prototype.fromBoundingRect = function (rect, transform) {\n        var corners = this._corners;\n        var axes = this._axes;\n        var x = rect.x;\n        var y = rect.y;\n        var x2 = x + rect.width;\n        var y2 = y + rect.height;\n        corners[0].set(x, y);\n        corners[1].set(x2, y);\n        corners[2].set(x2, y2);\n        corners[3].set(x, y2);\n        if (transform) {\n            for (var i = 0; i < 4; i++) {\n                corners[i].transform(transform);\n            }\n        }\n        Point.sub(axes[0], corners[1], corners[0]);\n        Point.sub(axes[1], corners[3], corners[0]);\n        axes[0].normalize();\n        axes[1].normalize();\n        for (var i = 0; i < 2; i++) {\n            this._origin[i] = axes[i].dot(corners[0]);\n        }\n    };\n    OrientedBoundingRect.prototype.intersect = function (other, mtv) {\n        var overlapped = true;\n        var noMtv = !mtv;\n        minTv.set(Infinity, Infinity);\n        maxTv.set(0, 0);\n        if (!this._intersectCheckOneSide(this, other, minTv, maxTv, noMtv, 1)) {\n            overlapped = false;\n            if (noMtv) {\n                return overlapped;\n            }\n        }\n        if (!this._intersectCheckOneSide(other, this, minTv, maxTv, noMtv, -1)) {\n            overlapped = false;\n            if (noMtv) {\n                return overlapped;\n            }\n        }\n        if (!noMtv) {\n            Point.copy(mtv, overlapped ? minTv : maxTv);\n        }\n        return overlapped;\n    };\n    OrientedBoundingRect.prototype._intersectCheckOneSide = function (self, other, minTv, maxTv, noMtv, inverse) {\n        var overlapped = true;\n        for (var i = 0; i < 2; i++) {\n            var axis = this._axes[i];\n            this._getProjMinMaxOnAxis(i, self._corners, extent);\n            this._getProjMinMaxOnAxis(i, other._corners, extent2);\n            if (extent[1] < extent2[0] || extent[0] > extent2[1]) {\n                overlapped = false;\n                if (noMtv) {\n                    return overlapped;\n                }\n                var dist0 = Math.abs(extent2[0] - extent[1]);\n                var dist1 = Math.abs(extent[0] - extent2[1]);\n                if (Math.min(dist0, dist1) > maxTv.len()) {\n                    if (dist0 < dist1) {\n                        Point.scale(maxTv, axis, -dist0 * inverse);\n                    }\n                    else {\n                        Point.scale(maxTv, axis, dist1 * inverse);\n                    }\n                }\n            }\n            else if (minTv) {\n                var dist0 = Math.abs(extent2[0] - extent[1]);\n                var dist1 = Math.abs(extent[0] - extent2[1]);\n                if (Math.min(dist0, dist1) < minTv.len()) {\n                    if (dist0 < dist1) {\n                        Point.scale(minTv, axis, dist0 * inverse);\n                    }\n                    else {\n                        Point.scale(minTv, axis, -dist1 * inverse);\n                    }\n                }\n            }\n        }\n        return overlapped;\n    };\n    OrientedBoundingRect.prototype._getProjMinMaxOnAxis = function (dim, corners, out) {\n        var axis = this._axes[dim];\n        var origin = this._origin;\n        var proj = corners[0].dot(axis) + origin[dim];\n        var min = proj;\n        var max = proj;\n        for (var i = 1; i < corners.length; i++) {\n            var proj_1 = corners[i].dot(axis) + origin[dim];\n            min = Math.min(proj_1, min);\n            max = Math.max(proj_1, max);\n        }\n        out[0] = min;\n        out[1] = max;\n    };\n    return OrientedBoundingRect;\n}());\nexport default OrientedBoundingRect;\n","import { __extends } from \"tslib\";\nimport Displayble from './Displayable';\nimport BoundingRect from '../core/BoundingRect';\nvar m = [];\nvar IncrementalDisplayable = (function (_super) {\n    __extends(IncrementalDisplayable, _super);\n    function IncrementalDisplayable() {\n        var _this = _super !== null && _super.apply(this, arguments) || this;\n        _this.notClear = true;\n        _this.incremental = true;\n        _this._displayables = [];\n        _this._temporaryDisplayables = [];\n        _this._cursor = 0;\n        return _this;\n    }\n    IncrementalDisplayable.prototype.traverse = function (cb, context) {\n        cb.call(context, this);\n    };\n    IncrementalDisplayable.prototype.useStyle = function () {\n        this.style = {};\n    };\n    IncrementalDisplayable.prototype.getCursor = function () {\n        return this._cursor;\n    };\n    IncrementalDisplayable.prototype.innerAfterBrush = function () {\n        this._cursor = this._displayables.length;\n    };\n    IncrementalDisplayable.prototype.clearDisplaybles = function () {\n        this._displayables = [];\n        this._temporaryDisplayables = [];\n        this._cursor = 0;\n        this.markRedraw();\n        this.notClear = false;\n    };\n    IncrementalDisplayable.prototype.clearTemporalDisplayables = function () {\n        this._temporaryDisplayables = [];\n    };\n    IncrementalDisplayable.prototype.addDisplayable = function (displayable, notPersistent) {\n        if (notPersistent) {\n            this._temporaryDisplayables.push(displayable);\n        }\n        else {\n            this._displayables.push(displayable);\n        }\n        this.markRedraw();\n    };\n    IncrementalDisplayable.prototype.addDisplayables = function (displayables, notPersistent) {\n        notPersistent = notPersistent || false;\n        for (var i = 0; i < displayables.length; i++) {\n            this.addDisplayable(displayables[i], notPersistent);\n        }\n    };\n    IncrementalDisplayable.prototype.getDisplayables = function () {\n        return this._displayables;\n    };\n    IncrementalDisplayable.prototype.getTemporalDisplayables = function () {\n        return this._temporaryDisplayables;\n    };\n    IncrementalDisplayable.prototype.eachPendingDisplayable = function (cb) {\n        for (var i = this._cursor; i < this._displayables.length; i++) {\n            cb && cb(this._displayables[i]);\n        }\n        for (var i = 0; i < this._temporaryDisplayables.length; i++) {\n            cb && cb(this._temporaryDisplayables[i]);\n        }\n    };\n    IncrementalDisplayable.prototype.update = function () {\n        this.updateTransform();\n        for (var i = this._cursor; i < this._displayables.length; i++) {\n            var displayable = this._displayables[i];\n            displayable.parent = this;\n            displayable.update();\n            displayable.parent = null;\n        }\n        for (var i = 0; i < this._temporaryDisplayables.length; i++) {\n            var displayable = this._temporaryDisplayables[i];\n            displayable.parent = this;\n            displayable.update();\n            displayable.parent = null;\n        }\n    };\n    IncrementalDisplayable.prototype.getBoundingRect = function () {\n        if (!this._rect) {\n            var rect = new BoundingRect(Infinity, Infinity, -Infinity, -Infinity);\n            for (var i = 0; i < this._displayables.length; i++) {\n                var displayable = this._displayables[i];\n                var childRect = displayable.getBoundingRect().clone();\n                if (displayable.needLocalTransform()) {\n                    childRect.applyTransform(displayable.getLocalTransform(m));\n                }\n                rect.union(childRect);\n            }\n            this._rect = rect;\n        }\n        return this._rect;\n    };\n    IncrementalDisplayable.prototype.contain = function (x, y) {\n        var localPos = this.transformCoordToLocal(x, y);\n        var rect = this.getBoundingRect();\n        if (rect.contain(localPos[0], localPos[1])) {\n            for (var i = 0; i < this._displayables.length; i++) {\n                var displayable = this._displayables[i];\n                if (displayable.contain(x, y)) {\n                    return true;\n                }\n            }\n        }\n        return false;\n    };\n    return IncrementalDisplayable;\n}(Displayble));\nexport default IncrementalDisplayable;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as pathTool from 'zrender/lib/tool/path';\nimport * as matrix from 'zrender/lib/core/matrix';\nimport * as vector from 'zrender/lib/core/vector';\nimport Path from 'zrender/lib/graphic/Path';\nimport Transformable from 'zrender/lib/core/Transformable';\nimport ZRImage from 'zrender/lib/graphic/Image';\nimport Group from 'zrender/lib/graphic/Group';\nimport ZRText from 'zrender/lib/graphic/Text';\nimport Circle from 'zrender/lib/graphic/shape/Circle';\nimport Ellipse from 'zrender/lib/graphic/shape/Ellipse';\nimport Sector from 'zrender/lib/graphic/shape/Sector';\nimport Ring from 'zrender/lib/graphic/shape/Ring';\nimport Polygon from 'zrender/lib/graphic/shape/Polygon';\nimport Polyline from 'zrender/lib/graphic/shape/Polyline';\nimport Rect from 'zrender/lib/graphic/shape/Rect';\nimport Line from 'zrender/lib/graphic/shape/Line';\nimport BezierCurve from 'zrender/lib/graphic/shape/BezierCurve';\nimport Arc from 'zrender/lib/graphic/shape/Arc';\nimport CompoundPath from 'zrender/lib/graphic/CompoundPath';\nimport LinearGradient from 'zrender/lib/graphic/LinearGradient';\nimport RadialGradient from 'zrender/lib/graphic/RadialGradient';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport OrientedBoundingRect from 'zrender/lib/core/OrientedBoundingRect';\nimport Point from 'zrender/lib/core/Point';\nimport IncrementalDisplayable from 'zrender/lib/graphic/IncrementalDisplayable';\nimport * as subPixelOptimizeUtil from 'zrender/lib/graphic/helper/subPixelOptimize';\nimport { extend, isArrayLike, map, defaults, isObject, retrieve2 } from 'zrender/lib/core/util';\nimport { getECData } from './innerStore';\nvar mathMax = Math.max;\nvar mathMin = Math.min;\nvar _customShapeMap = {};\nexport function extendShape(opts) {\n  return Path.extend(opts);\n}\nvar extendPathFromString = pathTool.extendFromString;\nexport function extendPath(pathData, opts) {\n  return extendPathFromString(pathData, opts);\n}\nexport function registerShape(name, ShapeClass) {\n  _customShapeMap[name] = ShapeClass;\n}\nexport function getShapeClass(name) {\n  if (_customShapeMap.hasOwnProperty(name)) {\n    return _customShapeMap[name];\n  }\n}\nexport function makePath(pathData, opts, rect, layout) {\n  var path = pathTool.createFromString(pathData, opts);\n\n  if (rect) {\n    if (layout === 'center') {\n      rect = centerGraphic(rect, path.getBoundingRect());\n    }\n\n    resizePath(path, rect);\n  }\n\n  return path;\n}\nexport function makeImage(imageUrl, rect, layout) {\n  var zrImg = new ZRImage({\n    style: {\n      image: imageUrl,\n      x: rect.x,\n      y: rect.y,\n      width: rect.width,\n      height: rect.height\n    },\n    onload: function (img) {\n      if (layout === 'center') {\n        var boundingRect = {\n          width: img.width,\n          height: img.height\n        };\n        zrImg.setStyle(centerGraphic(rect, boundingRect));\n      }\n    }\n  });\n  return zrImg;\n}\n\nfunction centerGraphic(rect, boundingRect) {\n  var aspect = boundingRect.width / boundingRect.height;\n  var width = rect.height * aspect;\n  var height;\n\n  if (width <= rect.width) {\n    height = rect.height;\n  } else {\n    width = rect.width;\n    height = width / aspect;\n  }\n\n  var cx = rect.x + rect.width / 2;\n  var cy = rect.y + rect.height / 2;\n  return {\n    x: cx - width / 2,\n    y: cy - height / 2,\n    width: width,\n    height: height\n  };\n}\n\nexport var mergePath = pathTool.mergePath;\nexport function resizePath(path, rect) {\n  if (!path.applyTransform) {\n    return;\n  }\n\n  var pathRect = path.getBoundingRect();\n  var m = pathRect.calculateTransform(rect);\n  path.applyTransform(m);\n}\nexport function subPixelOptimizeLine(param) {\n  subPixelOptimizeUtil.subPixelOptimizeLine(param.shape, param.shape, param.style);\n  return param;\n}\nexport function subPixelOptimizeRect(param) {\n  subPixelOptimizeUtil.subPixelOptimizeRect(param.shape, param.shape, param.style);\n  return param;\n}\nexport var subPixelOptimize = subPixelOptimizeUtil.subPixelOptimize;\n\nfunction animateOrSetProps(animationType, el, props, animatableModel, dataIndex, cb, during) {\n  var isFrom = false;\n  var removeOpt;\n\n  if (typeof dataIndex === 'function') {\n    during = cb;\n    cb = dataIndex;\n    dataIndex = null;\n  } else if (isObject(dataIndex)) {\n    cb = dataIndex.cb;\n    during = dataIndex.during;\n    isFrom = dataIndex.isFrom;\n    removeOpt = dataIndex.removeOpt;\n    dataIndex = dataIndex.dataIndex;\n  }\n\n  var isUpdate = animationType === 'update';\n  var isRemove = animationType === 'remove';\n  var animationPayload;\n\n  if (animatableModel && animatableModel.ecModel) {\n    var updatePayload = animatableModel.ecModel.getUpdatePayload();\n    animationPayload = updatePayload && updatePayload.animation;\n  }\n\n  var animationEnabled = animatableModel && animatableModel.isAnimationEnabled();\n\n  if (!isRemove) {\n    el.stopAnimation('remove');\n  }\n\n  if (animationEnabled) {\n    var duration = void 0;\n    var animationEasing = void 0;\n    var animationDelay = void 0;\n\n    if (animationPayload) {\n      duration = animationPayload.duration || 0;\n      animationEasing = animationPayload.easing || 'cubicOut';\n      animationDelay = animationPayload.delay || 0;\n    } else if (isRemove) {\n      removeOpt = removeOpt || {};\n      duration = retrieve2(removeOpt.duration, 200);\n      animationEasing = retrieve2(removeOpt.easing, 'cubicOut');\n      animationDelay = 0;\n    } else {\n      duration = animatableModel.getShallow(isUpdate ? 'animationDurationUpdate' : 'animationDuration');\n      animationEasing = animatableModel.getShallow(isUpdate ? 'animationEasingUpdate' : 'animationEasing');\n      animationDelay = animatableModel.getShallow(isUpdate ? 'animationDelayUpdate' : 'animationDelay');\n    }\n\n    if (typeof animationDelay === 'function') {\n      animationDelay = animationDelay(dataIndex, animatableModel.getAnimationDelayParams ? animatableModel.getAnimationDelayParams(el, dataIndex) : null);\n    }\n\n    if (typeof duration === 'function') {\n      duration = duration(dataIndex);\n    }\n\n    duration > 0 ? isFrom ? el.animateFrom(props, {\n      duration: duration,\n      delay: animationDelay || 0,\n      easing: animationEasing,\n      done: cb,\n      force: !!cb || !!during,\n      scope: animationType,\n      during: during\n    }) : el.animateTo(props, {\n      duration: duration,\n      delay: animationDelay || 0,\n      easing: animationEasing,\n      done: cb,\n      force: !!cb || !!during,\n      setToFinal: true,\n      scope: animationType,\n      during: during\n    }) : (el.stopAnimation(), !isFrom && el.attr(props), cb && cb());\n  } else {\n    el.stopAnimation();\n    !isFrom && el.attr(props);\n    during && during(1);\n    cb && cb();\n  }\n}\n\nfunction updateProps(el, props, animatableModel, dataIndex, cb, during) {\n  animateOrSetProps('update', el, props, animatableModel, dataIndex, cb, during);\n}\n\nexport { updateProps };\nexport function initProps(el, props, animatableModel, dataIndex, cb, during) {\n  animateOrSetProps('init', el, props, animatableModel, dataIndex, cb, during);\n}\nexport function removeElement(el, props, animatableModel, dataIndex, cb, during) {\n  if (isElementRemoved(el)) {\n    return;\n  }\n\n  animateOrSetProps('remove', el, props, animatableModel, dataIndex, cb, during);\n}\n\nfunction fadeOutDisplayable(el, animatableModel, dataIndex, done) {\n  el.removeTextContent();\n  el.removeTextGuideLine();\n  removeElement(el, {\n    style: {\n      opacity: 0\n    }\n  }, animatableModel, dataIndex, done);\n}\n\nexport function removeElementWithFadeOut(el, animatableModel, dataIndex) {\n  function doRemove() {\n    el.parent && el.parent.remove(el);\n  }\n\n  if (!el.isGroup) {\n    fadeOutDisplayable(el, animatableModel, dataIndex, doRemove);\n  } else {\n    el.traverse(function (disp) {\n      if (!disp.isGroup) {\n        fadeOutDisplayable(disp, animatableModel, dataIndex, doRemove);\n      }\n    });\n  }\n}\nexport function isElementRemoved(el) {\n  if (!el.__zr) {\n    return true;\n  }\n\n  for (var i = 0; i < el.animators.length; i++) {\n    var animator = el.animators[i];\n\n    if (animator.scope === 'remove') {\n      return true;\n    }\n  }\n\n  return false;\n}\nexport function getTransform(target, ancestor) {\n  var mat = matrix.identity([]);\n\n  while (target && target !== ancestor) {\n    matrix.mul(mat, target.getLocalTransform(), mat);\n    target = target.parent;\n  }\n\n  return mat;\n}\nexport function applyTransform(target, transform, invert) {\n  if (transform && !isArrayLike(transform)) {\n    transform = Transformable.getLocalTransform(transform);\n  }\n\n  if (invert) {\n    transform = matrix.invert([], transform);\n  }\n\n  return vector.applyTransform([], target, transform);\n}\nexport function transformDirection(direction, transform, invert) {\n  var hBase = transform[4] === 0 || transform[5] === 0 || transform[0] === 0 ? 1 : Math.abs(2 * transform[4] / transform[0]);\n  var vBase = transform[4] === 0 || transform[5] === 0 || transform[2] === 0 ? 1 : Math.abs(2 * transform[4] / transform[2]);\n  var vertex = [direction === 'left' ? -hBase : direction === 'right' ? hBase : 0, direction === 'top' ? -vBase : direction === 'bottom' ? vBase : 0];\n  vertex = applyTransform(vertex, transform, invert);\n  return Math.abs(vertex[0]) > Math.abs(vertex[1]) ? vertex[0] > 0 ? 'right' : 'left' : vertex[1] > 0 ? 'bottom' : 'top';\n}\n\nfunction isNotGroup(el) {\n  return !el.isGroup;\n}\n\nfunction isPath(el) {\n  return el.shape != null;\n}\n\nexport function groupTransition(g1, g2, animatableModel) {\n  if (!g1 || !g2) {\n    return;\n  }\n\n  function getElMap(g) {\n    var elMap = {};\n    g.traverse(function (el) {\n      if (isNotGroup(el) && el.anid) {\n        elMap[el.anid] = el;\n      }\n    });\n    return elMap;\n  }\n\n  function getAnimatableProps(el) {\n    var obj = {\n      x: el.x,\n      y: el.y,\n      rotation: el.rotation\n    };\n\n    if (isPath(el)) {\n      obj.shape = extend({}, el.shape);\n    }\n\n    return obj;\n  }\n\n  var elMap1 = getElMap(g1);\n  g2.traverse(function (el) {\n    if (isNotGroup(el) && el.anid) {\n      var oldEl = elMap1[el.anid];\n\n      if (oldEl) {\n        var newProp = getAnimatableProps(el);\n        el.attr(getAnimatableProps(oldEl));\n        updateProps(el, newProp, animatableModel, getECData(el).dataIndex);\n      }\n    }\n  });\n}\nexport function clipPointsByRect(points, rect) {\n  return map(points, function (point) {\n    var x = point[0];\n    x = mathMax(x, rect.x);\n    x = mathMin(x, rect.x + rect.width);\n    var y = point[1];\n    y = mathMax(y, rect.y);\n    y = mathMin(y, rect.y + rect.height);\n    return [x, y];\n  });\n}\nexport function clipRectByRect(targetRect, rect) {\n  var x = mathMax(targetRect.x, rect.x);\n  var x2 = mathMin(targetRect.x + targetRect.width, rect.x + rect.width);\n  var y = mathMax(targetRect.y, rect.y);\n  var y2 = mathMin(targetRect.y + targetRect.height, rect.y + rect.height);\n\n  if (x2 >= x && y2 >= y) {\n    return {\n      x: x,\n      y: y,\n      width: x2 - x,\n      height: y2 - y\n    };\n  }\n}\nexport function createIcon(iconStr, opt, rect) {\n  var innerOpts = extend({\n    rectHover: true\n  }, opt);\n  var style = innerOpts.style = {\n    strokeNoScale: true\n  };\n  rect = rect || {\n    x: -1,\n    y: -1,\n    width: 2,\n    height: 2\n  };\n\n  if (iconStr) {\n    return iconStr.indexOf('image://') === 0 ? (style.image = iconStr.slice(8), defaults(style, rect), new ZRImage(innerOpts)) : makePath(iconStr.replace('path://', ''), innerOpts, rect, 'center');\n  }\n}\nexport function linePolygonIntersect(a1x, a1y, a2x, a2y, points) {\n  for (var i = 0, p2 = points[points.length - 1]; i < points.length; i++) {\n    var p = points[i];\n\n    if (lineLineIntersect(a1x, a1y, a2x, a2y, p[0], p[1], p2[0], p2[1])) {\n      return true;\n    }\n\n    p2 = p;\n  }\n}\nexport function lineLineIntersect(a1x, a1y, a2x, a2y, b1x, b1y, b2x, b2y) {\n  var mx = a2x - a1x;\n  var my = a2y - a1y;\n  var nx = b2x - b1x;\n  var ny = b2y - b1y;\n  var nmCrossProduct = crossProduct2d(nx, ny, mx, my);\n\n  if (nearZero(nmCrossProduct)) {\n    return false;\n  }\n\n  var b1a1x = a1x - b1x;\n  var b1a1y = a1y - b1y;\n  var q = crossProduct2d(b1a1x, b1a1y, mx, my) / nmCrossProduct;\n\n  if (q < 0 || q > 1) {\n    return false;\n  }\n\n  var p = crossProduct2d(b1a1x, b1a1y, nx, ny) / nmCrossProduct;\n\n  if (p < 0 || p > 1) {\n    return false;\n  }\n\n  return true;\n}\n\nfunction crossProduct2d(x1, y1, x2, y2) {\n  return x1 * y2 - x2 * y1;\n}\n\nfunction nearZero(val) {\n  return val <= 1e-6 && val >= -1e-6;\n}\n\nregisterShape('circle', Circle);\nregisterShape('ellipse', Ellipse);\nregisterShape('sector', Sector);\nregisterShape('ring', Ring);\nregisterShape('polygon', Polygon);\nregisterShape('polyline', Polyline);\nregisterShape('rect', Rect);\nregisterShape('line', Line);\nregisterShape('bezierCurve', BezierCurve);\nregisterShape('arc', Arc);\nexport { Group, ZRImage as Image, ZRText as Text, Circle, Ellipse, Sector, Ring, Polygon, Polyline, Rect, Line, BezierCurve, Arc, IncrementalDisplayable, CompoundPath, LinearGradient, RadialGradient, BoundingRect, OrientedBoundingRect, Point, Path };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ZRText from 'zrender/lib/graphic/Text';\nimport { isFunction, retrieve2, extend, keys, trim } from 'zrender/lib/core/util';\nimport { SPECIAL_STATES, DISPLAY_STATES } from '../util/states';\nimport { deprecateReplaceLog } from '../util/log';\nimport { makeInner, interpolateRawValues } from '../util/model';\nimport { initProps, updateProps } from '../util/graphic';\nvar EMPTY_OBJ = {};\nexport function setLabelText(label, labelTexts) {\n  for (var i = 0; i < SPECIAL_STATES.length; i++) {\n    var stateName = SPECIAL_STATES[i];\n    var text = labelTexts[stateName];\n    var state = label.ensureState(stateName);\n    state.style = state.style || {};\n    state.style.text = text;\n  }\n\n  var oldStates = label.currentStates.slice();\n  label.clearStates(true);\n  label.setStyle({\n    text: labelTexts.normal\n  });\n  label.useStates(oldStates, true);\n}\n\nfunction getLabelText(opt, stateModels, interpolatedValue) {\n  var labelFetcher = opt.labelFetcher;\n  var labelDataIndex = opt.labelDataIndex;\n  var labelDimIndex = opt.labelDimIndex;\n  var normalModel = stateModels.normal;\n  var baseText;\n\n  if (labelFetcher) {\n    baseText = labelFetcher.getFormattedLabel(labelDataIndex, 'normal', null, labelDimIndex, normalModel && normalModel.get('formatter'), interpolatedValue != null ? {\n      interpolatedValue: interpolatedValue\n    } : null);\n  }\n\n  if (baseText == null) {\n    baseText = isFunction(opt.defaultText) ? opt.defaultText(labelDataIndex, opt, interpolatedValue) : opt.defaultText;\n  }\n\n  var statesText = {\n    normal: baseText\n  };\n\n  for (var i = 0; i < SPECIAL_STATES.length; i++) {\n    var stateName = SPECIAL_STATES[i];\n    var stateModel = stateModels[stateName];\n    statesText[stateName] = retrieve2(labelFetcher ? labelFetcher.getFormattedLabel(labelDataIndex, stateName, null, labelDimIndex, stateModel && stateModel.get('formatter')) : null, baseText);\n  }\n\n  return statesText;\n}\n\nfunction setLabelStyle(targetEl, labelStatesModels, opt, stateSpecified) {\n  opt = opt || EMPTY_OBJ;\n  var isSetOnText = targetEl instanceof ZRText;\n  var needsCreateText = false;\n\n  for (var i = 0; i < DISPLAY_STATES.length; i++) {\n    var stateModel = labelStatesModels[DISPLAY_STATES[i]];\n\n    if (stateModel && stateModel.getShallow('show')) {\n      needsCreateText = true;\n      break;\n    }\n  }\n\n  var textContent = isSetOnText ? targetEl : targetEl.getTextContent();\n\n  if (needsCreateText) {\n    if (!isSetOnText) {\n      if (!textContent) {\n        textContent = new ZRText();\n        targetEl.setTextContent(textContent);\n      }\n\n      if (targetEl.stateProxy) {\n        textContent.stateProxy = targetEl.stateProxy;\n      }\n    }\n\n    var labelStatesTexts = getLabelText(opt, labelStatesModels);\n    var normalModel = labelStatesModels.normal;\n    var showNormal = !!normalModel.getShallow('show');\n    var normalStyle = createTextStyle(normalModel, stateSpecified && stateSpecified.normal, opt, false, !isSetOnText);\n    normalStyle.text = labelStatesTexts.normal;\n\n    if (!isSetOnText) {\n      targetEl.setTextConfig(createTextConfig(normalModel, opt, false));\n    }\n\n    for (var i = 0; i < SPECIAL_STATES.length; i++) {\n      var stateName = SPECIAL_STATES[i];\n      var stateModel = labelStatesModels[stateName];\n\n      if (stateModel) {\n        var stateObj = textContent.ensureState(stateName);\n        var stateShow = !!retrieve2(stateModel.getShallow('show'), showNormal);\n\n        if (stateShow !== showNormal) {\n          stateObj.ignore = !stateShow;\n        }\n\n        stateObj.style = createTextStyle(stateModel, stateSpecified && stateSpecified[stateName], opt, true, !isSetOnText);\n        stateObj.style.text = labelStatesTexts[stateName];\n\n        if (!isSetOnText) {\n          var targetElEmphasisState = targetEl.ensureState(stateName);\n          targetElEmphasisState.textConfig = createTextConfig(stateModel, opt, true);\n        }\n      }\n    }\n\n    textContent.silent = !!normalModel.getShallow('silent');\n\n    if (textContent.style.x != null) {\n      normalStyle.x = textContent.style.x;\n    }\n\n    if (textContent.style.y != null) {\n      normalStyle.y = textContent.style.y;\n    }\n\n    textContent.ignore = !showNormal;\n    textContent.useStyle(normalStyle);\n    textContent.dirty();\n\n    if (opt.enableTextSetter) {\n      labelInner(textContent).setLabelText = function (interpolatedValue) {\n        var labelStatesTexts = getLabelText(opt, labelStatesModels, interpolatedValue);\n        setLabelText(textContent, labelStatesTexts);\n      };\n    }\n  } else if (textContent) {\n    textContent.ignore = true;\n  }\n\n  targetEl.dirty();\n}\n\nexport { setLabelStyle };\nexport function getLabelStatesModels(itemModel, labelName) {\n  labelName = labelName || 'label';\n  var statesModels = {\n    normal: itemModel.getModel(labelName)\n  };\n\n  for (var i = 0; i < SPECIAL_STATES.length; i++) {\n    var stateName = SPECIAL_STATES[i];\n    statesModels[stateName] = itemModel.getModel([stateName, labelName]);\n  }\n\n  return statesModels;\n}\nexport function createTextStyle(textStyleModel, specifiedTextStyle, opt, isNotNormal, isAttached) {\n  var textStyle = {};\n  setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached);\n  specifiedTextStyle && extend(textStyle, specifiedTextStyle);\n  return textStyle;\n}\nexport function createTextConfig(textStyleModel, opt, isNotNormal) {\n  opt = opt || {};\n  var textConfig = {};\n  var labelPosition;\n  var labelRotate = textStyleModel.getShallow('rotate');\n  var labelDistance = retrieve2(textStyleModel.getShallow('distance'), isNotNormal ? null : 5);\n  var labelOffset = textStyleModel.getShallow('offset');\n  labelPosition = textStyleModel.getShallow('position') || (isNotNormal ? null : 'inside');\n  labelPosition === 'outside' && (labelPosition = opt.defaultOutsidePosition || 'top');\n\n  if (labelPosition != null) {\n    textConfig.position = labelPosition;\n  }\n\n  if (labelOffset != null) {\n    textConfig.offset = labelOffset;\n  }\n\n  if (labelRotate != null) {\n    labelRotate *= Math.PI / 180;\n    textConfig.rotation = labelRotate;\n  }\n\n  if (labelDistance != null) {\n    textConfig.distance = labelDistance;\n  }\n\n  textConfig.outsideFill = textStyleModel.get('color') === 'inherit' ? opt.inheritColor || null : 'auto';\n  return textConfig;\n}\n\nfunction setTextStyleCommon(textStyle, textStyleModel, opt, isNotNormal, isAttached) {\n  opt = opt || EMPTY_OBJ;\n  var ecModel = textStyleModel.ecModel;\n  var globalTextStyle = ecModel && ecModel.option.textStyle;\n  var richItemNames = getRichItemNames(textStyleModel);\n  var richResult;\n\n  if (richItemNames) {\n    richResult = {};\n\n    for (var name_1 in richItemNames) {\n      if (richItemNames.hasOwnProperty(name_1)) {\n        var richTextStyle = textStyleModel.getModel(['rich', name_1]);\n        setTokenTextStyle(richResult[name_1] = {}, richTextStyle, globalTextStyle, opt, isNotNormal, isAttached, false, true);\n      }\n    }\n  }\n\n  if (richResult) {\n    textStyle.rich = richResult;\n  }\n\n  var overflow = textStyleModel.get('overflow');\n\n  if (overflow) {\n    textStyle.overflow = overflow;\n  }\n\n  var margin = textStyleModel.get('minMargin');\n\n  if (margin != null) {\n    textStyle.margin = margin;\n  }\n\n  setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, true, false);\n}\n\nfunction getRichItemNames(textStyleModel) {\n  var richItemNameMap;\n\n  while (textStyleModel && textStyleModel !== textStyleModel.ecModel) {\n    var rich = (textStyleModel.option || EMPTY_OBJ).rich;\n\n    if (rich) {\n      richItemNameMap = richItemNameMap || {};\n      var richKeys = keys(rich);\n\n      for (var i = 0; i < richKeys.length; i++) {\n        var richKey = richKeys[i];\n        richItemNameMap[richKey] = 1;\n      }\n    }\n\n    textStyleModel = textStyleModel.parentModel;\n  }\n\n  return richItemNameMap;\n}\n\nvar TEXT_PROPS_WITH_GLOBAL = ['fontStyle', 'fontWeight', 'fontSize', 'fontFamily', 'textShadowColor', 'textShadowBlur', 'textShadowOffsetX', 'textShadowOffsetY'];\nvar TEXT_PROPS_SELF = ['align', 'lineHeight', 'width', 'height', 'tag', 'verticalAlign'];\nvar TEXT_PROPS_BOX = ['padding', 'borderWidth', 'borderRadius', 'borderDashOffset', 'backgroundColor', 'borderColor', 'shadowColor', 'shadowBlur', 'shadowOffsetX', 'shadowOffsetY'];\n\nfunction setTokenTextStyle(textStyle, textStyleModel, globalTextStyle, opt, isNotNormal, isAttached, isBlock, inRich) {\n  globalTextStyle = !isNotNormal && globalTextStyle || EMPTY_OBJ;\n  var inheritColor = opt && opt.inheritColor;\n  var fillColor = textStyleModel.getShallow('color');\n  var strokeColor = textStyleModel.getShallow('textBorderColor');\n  var opacity = retrieve2(textStyleModel.getShallow('opacity'), globalTextStyle.opacity);\n\n  if (fillColor === 'inherit' || fillColor === 'auto') {\n    if (process.env.NODE_ENV !== 'production') {\n      if (fillColor === 'auto') {\n        deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\n      }\n    }\n\n    if (inheritColor) {\n      fillColor = inheritColor;\n    } else {\n      fillColor = null;\n    }\n  }\n\n  if (strokeColor === 'inherit' || strokeColor === 'auto') {\n    if (process.env.NODE_ENV !== 'production') {\n      if (strokeColor === 'auto') {\n        deprecateReplaceLog('color: \\'auto\\'', 'color: \\'inherit\\'');\n      }\n    }\n\n    if (inheritColor) {\n      strokeColor = inheritColor;\n    } else {\n      strokeColor = null;\n    }\n  }\n\n  if (!isAttached) {\n    fillColor = fillColor || globalTextStyle.color;\n    strokeColor = strokeColor || globalTextStyle.textBorderColor;\n  }\n\n  if (fillColor != null) {\n    textStyle.fill = fillColor;\n  }\n\n  if (strokeColor != null) {\n    textStyle.stroke = strokeColor;\n  }\n\n  var textBorderWidth = retrieve2(textStyleModel.getShallow('textBorderWidth'), globalTextStyle.textBorderWidth);\n\n  if (textBorderWidth != null) {\n    textStyle.lineWidth = textBorderWidth;\n  }\n\n  var textBorderType = retrieve2(textStyleModel.getShallow('textBorderType'), globalTextStyle.textBorderType);\n\n  if (textBorderType != null) {\n    textStyle.lineDash = textBorderType;\n  }\n\n  var textBorderDashOffset = retrieve2(textStyleModel.getShallow('textBorderDashOffset'), globalTextStyle.textBorderDashOffset);\n\n  if (textBorderDashOffset != null) {\n    textStyle.lineDashOffset = textBorderDashOffset;\n  }\n\n  if (!isNotNormal && opacity == null && !inRich) {\n    opacity = opt && opt.defaultOpacity;\n  }\n\n  if (opacity != null) {\n    textStyle.opacity = opacity;\n  }\n\n  if (!isNotNormal && !isAttached) {\n    if (textStyle.fill == null && opt.inheritColor) {\n      textStyle.fill = opt.inheritColor;\n    }\n  }\n\n  for (var i = 0; i < TEXT_PROPS_WITH_GLOBAL.length; i++) {\n    var key = TEXT_PROPS_WITH_GLOBAL[i];\n    var val = retrieve2(textStyleModel.getShallow(key), globalTextStyle[key]);\n\n    if (val != null) {\n      textStyle[key] = val;\n    }\n  }\n\n  for (var i = 0; i < TEXT_PROPS_SELF.length; i++) {\n    var key = TEXT_PROPS_SELF[i];\n    var val = textStyleModel.getShallow(key);\n\n    if (val != null) {\n      textStyle[key] = val;\n    }\n  }\n\n  if (textStyle.verticalAlign == null) {\n    var baseline = textStyleModel.getShallow('baseline');\n\n    if (baseline != null) {\n      textStyle.verticalAlign = baseline;\n    }\n  }\n\n  if (!isBlock || !opt.disableBox) {\n    for (var i = 0; i < TEXT_PROPS_BOX.length; i++) {\n      var key = TEXT_PROPS_BOX[i];\n      var val = textStyleModel.getShallow(key);\n\n      if (val != null) {\n        textStyle[key] = val;\n      }\n    }\n\n    var borderType = textStyleModel.getShallow('borderType');\n\n    if (borderType != null) {\n      textStyle.borderDash = borderType;\n    }\n\n    if ((textStyle.backgroundColor === 'auto' || textStyle.backgroundColor === 'inherit') && inheritColor) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (textStyle.backgroundColor === 'auto') {\n          deprecateReplaceLog('backgroundColor: \\'auto\\'', 'backgroundColor: \\'inherit\\'');\n        }\n      }\n\n      textStyle.backgroundColor = inheritColor;\n    }\n\n    if ((textStyle.borderColor === 'auto' || textStyle.borderColor === 'inherit') && inheritColor) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (textStyle.borderColor === 'auto') {\n          deprecateReplaceLog('borderColor: \\'auto\\'', 'borderColor: \\'inherit\\'');\n        }\n      }\n\n      textStyle.borderColor = inheritColor;\n    }\n  }\n}\n\nexport function getFont(opt, ecModel) {\n  var gTextStyleModel = ecModel && ecModel.getModel('textStyle');\n  return trim([opt.fontStyle || gTextStyleModel && gTextStyleModel.getShallow('fontStyle') || '', opt.fontWeight || gTextStyleModel && gTextStyleModel.getShallow('fontWeight') || '', (opt.fontSize || gTextStyleModel && gTextStyleModel.getShallow('fontSize') || 12) + 'px', opt.fontFamily || gTextStyleModel && gTextStyleModel.getShallow('fontFamily') || 'sans-serif'].join(' '));\n}\nexport var labelInner = makeInner();\nexport function setLabelValueAnimation(label, labelStatesModels, value, getDefaultText) {\n  if (!label) {\n    return;\n  }\n\n  var obj = labelInner(label);\n  obj.prevValue = obj.value;\n  obj.value = value;\n  var normalLabelModel = labelStatesModels.normal;\n  obj.valueAnimation = normalLabelModel.get('valueAnimation');\n\n  if (obj.valueAnimation) {\n    obj.precision = normalLabelModel.get('precision');\n    obj.defaultInterpolatedText = getDefaultText;\n    obj.statesModels = labelStatesModels;\n  }\n}\nexport function animateLabelValue(textEl, dataIndex, data, animatableModel, labelFetcher) {\n  var labelInnerStore = labelInner(textEl);\n\n  if (!labelInnerStore.valueAnimation) {\n    return;\n  }\n\n  var defaultInterpolatedText = labelInnerStore.defaultInterpolatedText;\n  var currValue = retrieve2(labelInnerStore.interpolatedValue, labelInnerStore.prevValue);\n  var targetValue = labelInnerStore.value;\n\n  function during(percent) {\n    var interpolated = interpolateRawValues(data, labelInnerStore.precision, currValue, targetValue, percent);\n    labelInnerStore.interpolatedValue = percent === 1 ? null : interpolated;\n    var labelText = getLabelText({\n      labelDataIndex: dataIndex,\n      labelFetcher: labelFetcher,\n      defaultText: defaultInterpolatedText ? defaultInterpolatedText(interpolated) : interpolated + ''\n    }, labelInnerStore.statesModels, interpolated);\n    setLabelText(textEl, labelText);\n  }\n\n  (currValue == null ? initProps : updateProps)(textEl, {}, animatableModel, dataIndex, null, during);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { getFont } from '../../label/labelStyle';\nimport ZRText from 'zrender/lib/graphic/Text';\nvar PATH_COLOR = ['textStyle', 'color'];\nvar tmpRichText = new ZRText();\n\nvar TextStyleMixin = function () {\n  function TextStyleMixin() {}\n\n  TextStyleMixin.prototype.getTextColor = function (isEmphasis) {\n    var ecModel = this.ecModel;\n    return this.getShallow('color') || (!isEmphasis && ecModel ? ecModel.get(PATH_COLOR) : null);\n  };\n\n  TextStyleMixin.prototype.getFont = function () {\n    return getFont({\n      fontStyle: this.getShallow('fontStyle'),\n      fontWeight: this.getShallow('fontWeight'),\n      fontSize: this.getShallow('fontSize'),\n      fontFamily: this.getShallow('fontFamily')\n    }, this.ecModel);\n  };\n\n  TextStyleMixin.prototype.getTextRect = function (text) {\n    tmpRichText.useStyle({\n      text: text,\n      fontStyle: this.getShallow('fontStyle'),\n      fontWeight: this.getShallow('fontWeight'),\n      fontSize: this.getShallow('fontSize'),\n      fontFamily: this.getShallow('fontFamily'),\n      verticalAlign: this.getShallow('verticalAlign') || this.getShallow('baseline'),\n      padding: this.getShallow('padding'),\n      lineHeight: this.getShallow('lineHeight'),\n      rich: this.getShallow('rich')\n    });\n    tmpRichText.update();\n    return tmpRichText.getBoundingRect();\n  };\n\n  return TextStyleMixin;\n}();\n\n;\nexport default TextStyleMixin;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport makeStyleMapper from './makeStyleMapper';\nexport var LINE_STYLE_KEY_MAP = [['lineWidth', 'width'], ['stroke', 'color'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor'], ['lineDash', 'type'], ['lineDashOffset', 'dashOffset'], ['lineCap', 'cap'], ['lineJoin', 'join'], ['miterLimit']];\nvar getLineStyle = makeStyleMapper(LINE_STYLE_KEY_MAP);\n\nvar LineStyleMixin = function () {\n  function LineStyleMixin() {}\n\n  LineStyleMixin.prototype.getLineStyle = function (excludes) {\n    return getLineStyle(this, excludes);\n  };\n\n  return LineStyleMixin;\n}();\n\n;\nexport { LineStyleMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport makeStyleMapper from './makeStyleMapper';\nexport var ITEM_STYLE_KEY_MAP = [['fill', 'color'], ['stroke', 'borderColor'], ['lineWidth', 'borderWidth'], ['opacity'], ['shadowBlur'], ['shadowOffsetX'], ['shadowOffsetY'], ['shadowColor'], ['lineDash', 'borderType'], ['lineDashOffset', 'borderDashOffset'], ['lineCap', 'borderCap'], ['lineJoin', 'borderJoin'], ['miterLimit', 'borderMiterLimit']];\nvar getItemStyle = makeStyleMapper(ITEM_STYLE_KEY_MAP);\n\nvar ItemStyleMixin = function () {\n  function ItemStyleMixin() {}\n\n  ItemStyleMixin.prototype.getItemStyle = function (excludes, includes) {\n    return getItemStyle(this, excludes, includes);\n  };\n\n  return ItemStyleMixin;\n}();\n\nexport { ItemStyleMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport env from 'zrender/lib/core/env';\nimport { enableClassExtend, enableClassCheck } from '../util/clazz';\nimport { AreaStyleMixin } from './mixin/areaStyle';\nimport TextStyleMixin from './mixin/textStyle';\nimport { LineStyleMixin } from './mixin/lineStyle';\nimport { ItemStyleMixin } from './mixin/itemStyle';\nimport { mixin, clone, merge } from 'zrender/lib/core/util';\n\nvar Model = function () {\n  function Model(option, parentModel, ecModel) {\n    this.parentModel = parentModel;\n    this.ecModel = ecModel;\n    this.option = option;\n  }\n\n  Model.prototype.init = function (option, parentModel, ecModel) {\n    var rest = [];\n\n    for (var _i = 3; _i < arguments.length; _i++) {\n      rest[_i - 3] = arguments[_i];\n    }\n  };\n\n  Model.prototype.mergeOption = function (option, ecModel) {\n    merge(this.option, option, true);\n  };\n\n  Model.prototype.get = function (path, ignoreParent) {\n    if (path == null) {\n      return this.option;\n    }\n\n    return this._doGet(this.parsePath(path), !ignoreParent && this.parentModel);\n  };\n\n  Model.prototype.getShallow = function (key, ignoreParent) {\n    var option = this.option;\n    var val = option == null ? option : option[key];\n\n    if (val == null && !ignoreParent) {\n      var parentModel = this.parentModel;\n\n      if (parentModel) {\n        val = parentModel.getShallow(key);\n      }\n    }\n\n    return val;\n  };\n\n  Model.prototype.getModel = function (path, parentModel) {\n    var hasPath = path != null;\n    var pathFinal = hasPath ? this.parsePath(path) : null;\n    var obj = hasPath ? this._doGet(pathFinal) : this.option;\n    parentModel = parentModel || this.parentModel && this.parentModel.getModel(this.resolveParentPath(pathFinal));\n    return new Model(obj, parentModel, this.ecModel);\n  };\n\n  Model.prototype.isEmpty = function () {\n    return this.option == null;\n  };\n\n  Model.prototype.restoreData = function () {};\n\n  Model.prototype.clone = function () {\n    var Ctor = this.constructor;\n    return new Ctor(clone(this.option));\n  };\n\n  Model.prototype.parsePath = function (path) {\n    if (typeof path === 'string') {\n      return path.split('.');\n    }\n\n    return path;\n  };\n\n  Model.prototype.resolveParentPath = function (path) {\n    return path;\n  };\n\n  Model.prototype.isAnimationEnabled = function () {\n    if (!env.node && this.option) {\n      if (this.option.animation != null) {\n        return !!this.option.animation;\n      } else if (this.parentModel) {\n        return this.parentModel.isAnimationEnabled();\n      }\n    }\n  };\n\n  Model.prototype._doGet = function (pathArr, parentModel) {\n    var obj = this.option;\n\n    if (!pathArr) {\n      return obj;\n    }\n\n    for (var i = 0; i < pathArr.length; i++) {\n      if (!pathArr[i]) {\n        continue;\n      }\n\n      obj = obj && typeof obj === 'object' ? obj[pathArr[i]] : null;\n\n      if (obj == null) {\n        break;\n      }\n    }\n\n    if (obj == null && parentModel) {\n      obj = parentModel._doGet(this.resolveParentPath(pathArr), parentModel.parentModel);\n    }\n\n    return obj;\n  };\n\n  return Model;\n}();\n\n;\nenableClassExtend(Model);\nenableClassCheck(Model);\nmixin(Model, LineStyleMixin);\nmixin(Model, ItemStyleMixin);\nmixin(Model, AreaStyleMixin);\nmixin(Model, TextStyleMixin);\nexport default Model;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parseClassType } from './clazz';\nimport { makePrintable } from './log';\nvar base = Math.round(Math.random() * 10);\nexport function getUID(type) {\n  return [type || '', base++].join('_');\n}\nexport function enableSubTypeDefaulter(target) {\n  var subTypeDefaulters = {};\n\n  target.registerSubTypeDefaulter = function (componentType, defaulter) {\n    var componentTypeInfo = parseClassType(componentType);\n    subTypeDefaulters[componentTypeInfo.main] = defaulter;\n  };\n\n  target.determineSubType = function (componentType, option) {\n    var type = option.type;\n\n    if (!type) {\n      var componentTypeMain = parseClassType(componentType).main;\n\n      if (target.hasSubTypes(componentType) && subTypeDefaulters[componentTypeMain]) {\n        type = subTypeDefaulters[componentTypeMain](option);\n      }\n    }\n\n    return type;\n  };\n}\nexport function enableTopologicalTravel(entity, dependencyGetter) {\n  entity.topologicalTravel = function (targetNameList, fullNameList, callback, context) {\n    if (!targetNameList.length) {\n      return;\n    }\n\n    var result = makeDepndencyGraph(fullNameList);\n    var graph = result.graph;\n    var noEntryList = result.noEntryList;\n    var targetNameSet = {};\n    zrUtil.each(targetNameList, function (name) {\n      targetNameSet[name] = true;\n    });\n\n    while (noEntryList.length) {\n      var currComponentType = noEntryList.pop();\n      var currVertex = graph[currComponentType];\n      var isInTargetNameSet = !!targetNameSet[currComponentType];\n\n      if (isInTargetNameSet) {\n        callback.call(context, currComponentType, currVertex.originalDeps.slice());\n        delete targetNameSet[currComponentType];\n      }\n\n      zrUtil.each(currVertex.successor, isInTargetNameSet ? removeEdgeAndAdd : removeEdge);\n    }\n\n    zrUtil.each(targetNameSet, function () {\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = makePrintable('Circle dependency may exists: ', targetNameSet, targetNameList, fullNameList);\n      }\n\n      throw new Error(errMsg);\n    });\n\n    function removeEdge(succComponentType) {\n      graph[succComponentType].entryCount--;\n\n      if (graph[succComponentType].entryCount === 0) {\n        noEntryList.push(succComponentType);\n      }\n    }\n\n    function removeEdgeAndAdd(succComponentType) {\n      targetNameSet[succComponentType] = true;\n      removeEdge(succComponentType);\n    }\n  };\n\n  function makeDepndencyGraph(fullNameList) {\n    var graph = {};\n    var noEntryList = [];\n    zrUtil.each(fullNameList, function (name) {\n      var thisItem = createDependencyGraphItem(graph, name);\n      var originalDeps = thisItem.originalDeps = dependencyGetter(name);\n      var availableDeps = getAvailableDependencies(originalDeps, fullNameList);\n      thisItem.entryCount = availableDeps.length;\n\n      if (thisItem.entryCount === 0) {\n        noEntryList.push(name);\n      }\n\n      zrUtil.each(availableDeps, function (dependentName) {\n        if (zrUtil.indexOf(thisItem.predecessor, dependentName) < 0) {\n          thisItem.predecessor.push(dependentName);\n        }\n\n        var thatItem = createDependencyGraphItem(graph, dependentName);\n\n        if (zrUtil.indexOf(thatItem.successor, dependentName) < 0) {\n          thatItem.successor.push(name);\n        }\n      });\n    });\n    return {\n      graph: graph,\n      noEntryList: noEntryList\n    };\n  }\n\n  function createDependencyGraphItem(graph, name) {\n    if (!graph[name]) {\n      graph[name] = {\n        predecessor: [],\n        successor: []\n      };\n    }\n\n    return graph[name];\n  }\n\n  function getAvailableDependencies(originalDeps, fullNameList) {\n    var availableDeps = [];\n    zrUtil.each(originalDeps, function (dep) {\n      zrUtil.indexOf(fullNameList, dep) >= 0 && availableDeps.push(dep);\n    });\n    return availableDeps;\n  }\n}\nexport function inheritDefaultOption(superOption, subOption) {\n  return zrUtil.merge(zrUtil.merge({}, superOption, true), subOption, true);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default {\n  time: {\n    month: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],\n    monthAbbr: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n    dayOfWeek: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n    dayOfWeekAbbr: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']\n  },\n  legend: {\n    selector: {\n      all: 'All',\n      inverse: 'Inv'\n    }\n  },\n  toolbox: {\n    brush: {\n      title: {\n        rect: 'Box Select',\n        polygon: 'Lasso Select',\n        lineX: 'Horizontally Select',\n        lineY: 'Vertically Select',\n        keep: 'Keep Selections',\n        clear: 'Clear Selections'\n      }\n    },\n    dataView: {\n      title: 'Data View',\n      lang: ['Data View', 'Close', 'Refresh']\n    },\n    dataZoom: {\n      title: {\n        zoom: 'Zoom',\n        back: 'Zoom Reset'\n      }\n    },\n    magicType: {\n      title: {\n        line: 'Switch to Line Chart',\n        bar: 'Switch to Bar Chart',\n        stack: 'Stack',\n        tiled: 'Tile'\n      }\n    },\n    restore: {\n      title: 'Restore'\n    },\n    saveAsImage: {\n      title: 'Save as Image',\n      lang: ['Right Click to Save Image']\n    }\n  },\n  series: {\n    typeNames: {\n      pie: 'Pie chart',\n      bar: 'Bar chart',\n      line: 'Line chart',\n      scatter: 'Scatter plot',\n      effectScatter: 'Ripple scatter plot',\n      radar: 'Radar chart',\n      tree: 'Tree',\n      treemap: 'Treemap',\n      boxplot: 'Boxplot',\n      candlestick: 'Candlestick',\n      k: 'K line chart',\n      heatmap: 'Heat map',\n      map: 'Map',\n      parallel: 'Parallel coordinate map',\n      lines: 'Line graph',\n      graph: 'Relationship graph',\n      sankey: 'Sankey diagram',\n      funnel: 'Funnel chart',\n      gauge: 'Guage',\n      pictorialBar: 'Pictorial bar',\n      themeRiver: 'Theme River Map',\n      sunburst: 'Sunburst'\n    }\n  },\n  aria: {\n    general: {\n      withTitle: 'This is a chart about \"{title}\"',\n      withoutTitle: 'This is a chart'\n    },\n    series: {\n      single: {\n        prefix: '',\n        withName: ' with type {seriesType} named {seriesName}.',\n        withoutName: ' with type {seriesType}.'\n      },\n      multiple: {\n        prefix: '. It consists of {seriesCount} series count.',\n        withName: ' The {seriesId} series is a {seriesType} representing {seriesName}.',\n        withoutName: ' The {seriesId} series is a {seriesType}.',\n        separator: {\n          middle: '',\n          end: ''\n        }\n      }\n    },\n    data: {\n      allData: 'The data is as follows: ',\n      partialData: 'The first {displayCnt} items are: ',\n      withName: 'the data for {name} is {value}',\n      withoutName: '{value}',\n      separator: {\n        middle: ', ',\n        end: '. '\n      }\n    }\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default {\n  time: {\n    month: ['一月', '二月', '三月', '四月', '五月', '六月', '七月', '八月', '九月', '十月', '十一月', '十二月'],\n    monthAbbr: ['1月', '2月', '3月', '4月', '5月', '6月', '7月', '8月', '9月', '10月', '11月', '12月'],\n    dayOfWeek: ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'],\n    dayOfWeekAbbr: ['日', '一', '二', '三', '四', '五', '六']\n  },\n  legend: {\n    selector: {\n      all: '全选',\n      inverse: '反选'\n    }\n  },\n  toolbox: {\n    brush: {\n      title: {\n        rect: '矩形选择',\n        polygon: '圈选',\n        lineX: '横向选择',\n        lineY: '纵向选择',\n        keep: '保持选择',\n        clear: '清除选择'\n      }\n    },\n    dataView: {\n      title: '数据视图',\n      lang: ['数据视图', '关闭', '刷新']\n    },\n    dataZoom: {\n      title: {\n        zoom: '区域缩放',\n        back: '区域缩放还原'\n      }\n    },\n    magicType: {\n      title: {\n        line: '切换为折线图',\n        bar: '切换为柱状图',\n        stack: '切换为堆叠',\n        tiled: '切换为平铺'\n      }\n    },\n    restore: {\n      title: '还原'\n    },\n    saveAsImage: {\n      title: '保存为图片',\n      lang: ['右键另存为图片']\n    }\n  },\n  series: {\n    typeNames: {\n      pie: '饼图',\n      bar: '柱状图',\n      line: '折线图',\n      scatter: '散点图',\n      effectScatter: '涟漪散点图',\n      radar: '雷达图',\n      tree: '树图',\n      treemap: '矩形树图',\n      boxplot: '箱型图',\n      candlestick: 'K线图',\n      k: 'K线图',\n      heatmap: '热力图',\n      map: '地图',\n      parallel: '平行坐标图',\n      lines: '线图',\n      graph: '关系图',\n      sankey: '桑基图',\n      funnel: '漏斗图',\n      gauge: '仪表盘图',\n      pictorialBar: '象形柱图',\n      themeRiver: '主题河流图',\n      sunburst: '旭日图'\n    }\n  },\n  aria: {\n    general: {\n      withTitle: '这是一个关于“{title}”的图表。',\n      withoutTitle: '这是一个图表,'\n    },\n    series: {\n      single: {\n        prefix: '',\n        withName: '图表类型是{seriesType},表示{seriesName}。',\n        withoutName: '图表类型是{seriesType}。'\n      },\n      multiple: {\n        prefix: '它由{seriesCount}个图表系列组成。',\n        withName: '第{seriesId}个系列是一个表示{seriesName}的{seriesType},',\n        withoutName: '第{seriesId}个系列是一个{seriesType},',\n        separator: {\n          middle: ';',\n          end: '。'\n        }\n      }\n    },\n    data: {\n      allData: '其数据是——',\n      partialData: '其中,前{displayCnt}项是——',\n      withName: '{name}的数据是{value}',\n      withoutName: '{value}',\n      separator: {\n        middle: ',',\n        end: ''\n      }\n    }\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Model from '../model/Model';\nimport env from 'zrender/lib/core/env';\nimport langEN from '../i18n/langEN';\nimport langZH from '../i18n/langZH';\nimport { isString, clone, merge } from 'zrender/lib/core/util';\nvar LOCALE_ZH = 'ZH';\nvar LOCALE_EN = 'EN';\nvar DEFAULT_LOCALE = LOCALE_EN;\nvar localeStorage = {};\nvar localeModels = {};\nexport var SYSTEM_LANG = !env.domSupported ? DEFAULT_LOCALE : function () {\n  var langStr = (document.documentElement.lang || navigator.language || navigator.browserLanguage).toUpperCase();\n  return langStr.indexOf(LOCALE_ZH) > -1 ? LOCALE_ZH : DEFAULT_LOCALE;\n}();\nexport function registerLocale(locale, localeObj) {\n  locale = locale.toUpperCase();\n  localeModels[locale] = new Model(localeObj);\n  localeStorage[locale] = localeObj;\n}\nexport function createLocaleObject(locale) {\n  if (isString(locale)) {\n    var localeObj = localeStorage[locale.toUpperCase()] || {};\n\n    if (locale === LOCALE_ZH || locale === LOCALE_EN) {\n      return clone(localeObj);\n    } else {\n      return merge(clone(localeObj), clone(localeStorage[DEFAULT_LOCALE]), false);\n    }\n  } else {\n    return merge(clone(locale), clone(localeStorage[DEFAULT_LOCALE]), false);\n  }\n}\nexport function getLocaleModel(lang) {\n  return localeModels[lang];\n}\nexport function getDefaultLocaleModel() {\n  return localeModels[DEFAULT_LOCALE];\n}\nregisterLocale(LOCALE_EN, langEN);\nregisterLocale(LOCALE_ZH, langZH);","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as numberUtil from './number';\nimport { getDefaultLocaleModel, getLocaleModel, SYSTEM_LANG } from '../core/locale';\nimport Model from '../model/Model';\nexport var ONE_SECOND = 1000;\nexport var ONE_MINUTE = ONE_SECOND * 60;\nexport var ONE_HOUR = ONE_MINUTE * 60;\nexport var ONE_DAY = ONE_HOUR * 24;\nexport var ONE_YEAR = ONE_DAY * 365;\nexport var defaultLeveledFormatter = {\n  year: '{yyyy}',\n  month: '{MMM}',\n  day: '{d}',\n  hour: '{HH}:{mm}',\n  minute: '{HH}:{mm}',\n  second: '{HH}:{mm}:{ss}',\n  millisecond: '{hh}:{mm}:{ss} {SSS}',\n  none: '{yyyy}-{MM}-{dd} {hh}:{mm}:{ss} {SSS}'\n};\nvar fullDayFormatter = '{yyyy}-{MM}-{dd}';\nexport var fullLeveledFormatter = {\n  year: '{yyyy}',\n  month: '{yyyy}-{MM}',\n  day: fullDayFormatter,\n  hour: fullDayFormatter + ' ' + defaultLeveledFormatter.hour,\n  minute: fullDayFormatter + ' ' + defaultLeveledFormatter.minute,\n  second: fullDayFormatter + ' ' + defaultLeveledFormatter.second,\n  millisecond: defaultLeveledFormatter.none\n};\nexport var primaryTimeUnits = ['year', 'month', 'day', 'hour', 'minute', 'second', 'millisecond'];\nexport var timeUnits = ['year', 'half-year', 'quarter', 'month', 'week', 'half-week', 'day', 'half-day', 'quarter-day', 'hour', 'minute', 'second', 'millisecond'];\nexport function pad(str, len) {\n  str += '';\n  return '0000'.substr(0, len - str.length) + str;\n}\nexport function getPrimaryTimeUnit(timeUnit) {\n  switch (timeUnit) {\n    case 'half-year':\n    case 'quarter':\n      return 'month';\n\n    case 'week':\n    case 'half-week':\n      return 'day';\n\n    case 'half-day':\n    case 'quarter-day':\n      return 'hour';\n\n    default:\n      return timeUnit;\n  }\n}\nexport function isPrimaryTimeUnit(timeUnit) {\n  return timeUnit === getPrimaryTimeUnit(timeUnit);\n}\nexport function getDefaultFormatPrecisionOfInterval(timeUnit) {\n  switch (timeUnit) {\n    case 'year':\n    case 'month':\n      return 'day';\n\n    case 'millisecond':\n      return 'millisecond';\n\n    default:\n      return 'second';\n  }\n}\nexport function format(time, template, isUTC, lang) {\n  var date = numberUtil.parseDate(time);\n  var y = date[fullYearGetterName(isUTC)]();\n  var M = date[monthGetterName(isUTC)]() + 1;\n  var q = Math.floor((M - 1) / 4) + 1;\n  var d = date[dateGetterName(isUTC)]();\n  var e = date['get' + (isUTC ? 'UTC' : '') + 'Day']();\n  var H = date[hoursGetterName(isUTC)]();\n  var h = (H - 1) % 12 + 1;\n  var m = date[minutesGetterName(isUTC)]();\n  var s = date[secondsGetterName(isUTC)]();\n  var S = date[millisecondsGetterName(isUTC)]();\n  var localeModel = lang instanceof Model ? lang : getLocaleModel(lang || SYSTEM_LANG) || getDefaultLocaleModel();\n  var timeModel = localeModel.getModel('time');\n  var month = timeModel.get('month');\n  var monthAbbr = timeModel.get('monthAbbr');\n  var dayOfWeek = timeModel.get('dayOfWeek');\n  var dayOfWeekAbbr = timeModel.get('dayOfWeekAbbr');\n  return (template || '').replace(/{yyyy}/g, y + '').replace(/{yy}/g, y % 100 + '').replace(/{Q}/g, q + '').replace(/{MMMM}/g, month[M - 1]).replace(/{MMM}/g, monthAbbr[M - 1]).replace(/{MM}/g, pad(M, 2)).replace(/{M}/g, M + '').replace(/{dd}/g, pad(d, 2)).replace(/{d}/g, d + '').replace(/{eeee}/g, dayOfWeek[e]).replace(/{ee}/g, dayOfWeekAbbr[e]).replace(/{e}/g, e + '').replace(/{HH}/g, pad(H, 2)).replace(/{H}/g, H + '').replace(/{hh}/g, pad(h + '', 2)).replace(/{h}/g, h + '').replace(/{mm}/g, pad(m, 2)).replace(/{m}/g, m + '').replace(/{ss}/g, pad(s, 2)).replace(/{s}/g, s + '').replace(/{SSS}/g, pad(S, 3)).replace(/{S}/g, S + '');\n}\nexport function leveledFormat(tick, idx, formatter, lang, isUTC) {\n  var template = null;\n\n  if (typeof formatter === 'string') {\n    template = formatter;\n  } else if (typeof formatter === 'function') {\n    template = formatter(tick.value, idx, {\n      level: tick.level\n    });\n  } else {\n    var defaults = zrUtil.extend({}, defaultLeveledFormatter);\n\n    if (tick.level > 0) {\n      for (var i = 0; i < primaryTimeUnits.length; ++i) {\n        defaults[primaryTimeUnits[i]] = \"{primary|\" + defaults[primaryTimeUnits[i]] + \"}\";\n      }\n    }\n\n    var mergedFormatter = formatter ? formatter.inherit === false ? formatter : zrUtil.defaults(formatter, defaults) : defaults;\n    var unit = getUnitFromValue(tick.value, isUTC);\n\n    if (mergedFormatter[unit]) {\n      template = mergedFormatter[unit];\n    } else if (mergedFormatter.inherit) {\n      var targetId = timeUnits.indexOf(unit);\n\n      for (var i = targetId - 1; i >= 0; --i) {\n        if (mergedFormatter[unit]) {\n          template = mergedFormatter[unit];\n          break;\n        }\n      }\n\n      template = template || defaults.none;\n    }\n\n    if (zrUtil.isArray(template)) {\n      var levelId = tick.level == null ? 0 : tick.level >= 0 ? tick.level : template.length + tick.level;\n      levelId = Math.min(levelId, template.length - 1);\n      template = template[levelId];\n    }\n  }\n\n  return format(new Date(tick.value), template, isUTC, lang);\n}\nexport function getUnitFromValue(value, isUTC) {\n  var date = numberUtil.parseDate(value);\n  var M = date[monthGetterName(isUTC)]() + 1;\n  var d = date[dateGetterName(isUTC)]();\n  var h = date[hoursGetterName(isUTC)]();\n  var m = date[minutesGetterName(isUTC)]();\n  var s = date[secondsGetterName(isUTC)]();\n  var S = date[millisecondsGetterName(isUTC)]();\n  var isSecond = S === 0;\n  var isMinute = isSecond && s === 0;\n  var isHour = isMinute && m === 0;\n  var isDay = isHour && h === 0;\n  var isMonth = isDay && d === 1;\n  var isYear = isMonth && M === 1;\n\n  if (isYear) {\n    return 'year';\n  } else if (isMonth) {\n    return 'month';\n  } else if (isDay) {\n    return 'day';\n  } else if (isHour) {\n    return 'hour';\n  } else if (isMinute) {\n    return 'minute';\n  } else if (isSecond) {\n    return 'second';\n  } else {\n    return 'millisecond';\n  }\n}\nexport function getUnitValue(value, unit, isUTC) {\n  var date = typeof value === 'number' ? numberUtil.parseDate(value) : value;\n  unit = unit || getUnitFromValue(value, isUTC);\n\n  switch (unit) {\n    case 'year':\n      return date[fullYearGetterName(isUTC)]();\n\n    case 'half-year':\n      return date[monthGetterName(isUTC)]() >= 6 ? 1 : 0;\n\n    case 'quarter':\n      return Math.floor((date[monthGetterName(isUTC)]() + 1) / 4);\n\n    case 'month':\n      return date[monthGetterName(isUTC)]();\n\n    case 'day':\n      return date[dateGetterName(isUTC)]();\n\n    case 'half-day':\n      return date[hoursGetterName(isUTC)]() / 24;\n\n    case 'hour':\n      return date[hoursGetterName(isUTC)]();\n\n    case 'minute':\n      return date[minutesGetterName(isUTC)]();\n\n    case 'second':\n      return date[secondsGetterName(isUTC)]();\n\n    case 'millisecond':\n      return date[millisecondsGetterName(isUTC)]();\n  }\n}\nexport function fullYearGetterName(isUTC) {\n  return isUTC ? 'getUTCFullYear' : 'getFullYear';\n}\nexport function monthGetterName(isUTC) {\n  return isUTC ? 'getUTCMonth' : 'getMonth';\n}\nexport function dateGetterName(isUTC) {\n  return isUTC ? 'getUTCDate' : 'getDate';\n}\nexport function hoursGetterName(isUTC) {\n  return isUTC ? 'getUTCHours' : 'getHours';\n}\nexport function minutesGetterName(isUTC) {\n  return isUTC ? 'getUTCMinutes' : 'getMinutes';\n}\nexport function secondsGetterName(isUTC) {\n  return isUTC ? 'getUTCSeconds' : 'getSeconds';\n}\nexport function millisecondsGetterName(isUTC) {\n  return isUTC ? 'getUTCSeconds' : 'getSeconds';\n}\nexport function fullYearSetterName(isUTC) {\n  return isUTC ? 'setUTCFullYear' : 'setFullYear';\n}\nexport function monthSetterName(isUTC) {\n  return isUTC ? 'setUTCMonth' : 'setMonth';\n}\nexport function dateSetterName(isUTC) {\n  return isUTC ? 'setUTCDate' : 'setDate';\n}\nexport function hoursSetterName(isUTC) {\n  return isUTC ? 'setUTCHours' : 'setHours';\n}\nexport function minutesSetterName(isUTC) {\n  return isUTC ? 'setUTCMinutes' : 'setMinutes';\n}\nexport function secondsSetterName(isUTC) {\n  return isUTC ? 'setUTCSeconds' : 'setSeconds';\n}\nexport function millisecondsSetterName(isUTC) {\n  return isUTC ? 'setUTCSeconds' : 'setSeconds';\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { Text } from '../util/graphic';\nimport { deprecateLog } from '../util/log';\nexport function getTextRect(text, font, align, verticalAlign, padding, rich, truncate, lineHeight) {\n  deprecateLog('getTextRect is deprecated.');\n  var textEl = new Text({\n    style: {\n      text: text,\n      font: font,\n      align: align,\n      verticalAlign: verticalAlign,\n      padding: padding,\n      rich: rich,\n      overflow: truncate ? 'truncate' : null,\n      lineHeight: lineHeight\n    }\n  });\n  return textEl.getBoundingRect();\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parseDate, isNumeric, numericToNumber } from './number';\nimport { format as timeFormat, pad } from './time';\nimport { deprecateReplaceLog } from './log';\nexport function addCommas(x) {\n  if (!isNumeric(x)) {\n    return zrUtil.isString(x) ? x : '-';\n  }\n\n  var parts = (x + '').split('.');\n  return parts[0].replace(/(\\d{1,3})(?=(?:\\d{3})+(?!\\d))/g, '$1,') + (parts.length > 1 ? '.' + parts[1] : '');\n}\nexport function toCamelCase(str, upperCaseFirst) {\n  str = (str || '').toLowerCase().replace(/-(.)/g, function (match, group1) {\n    return group1.toUpperCase();\n  });\n\n  if (upperCaseFirst && str) {\n    str = str.charAt(0).toUpperCase() + str.slice(1);\n  }\n\n  return str;\n}\nexport var normalizeCssArray = zrUtil.normalizeCssArray;\nvar replaceReg = /([&<>\"'])/g;\nvar replaceMap = {\n  '&': '&amp;',\n  '<': '&lt;',\n  '>': '&gt;',\n  '\"': '&quot;',\n  '\\'': '&#39;'\n};\nexport function encodeHTML(source) {\n  return source == null ? '' : (source + '').replace(replaceReg, function (str, c) {\n    return replaceMap[c];\n  });\n}\nexport function makeValueReadable(value, valueType, useUTC) {\n  var USER_READABLE_DEFUALT_TIME_PATTERN = 'yyyy-MM-dd hh:mm:ss';\n\n  function stringToUserReadable(str) {\n    return str && zrUtil.trim(str) ? str : '-';\n  }\n\n  function isNumberUserReadable(num) {\n    return !!(num != null && !isNaN(num) && isFinite(num));\n  }\n\n  var isTypeTime = valueType === 'time';\n  var isValueDate = value instanceof Date;\n\n  if (isTypeTime || isValueDate) {\n    var date = isTypeTime ? parseDate(value) : value;\n\n    if (!isNaN(+date)) {\n      return timeFormat(date, USER_READABLE_DEFUALT_TIME_PATTERN, useUTC);\n    } else if (isValueDate) {\n      return '-';\n    }\n  }\n\n  if (valueType === 'ordinal') {\n    return zrUtil.isStringSafe(value) ? stringToUserReadable(value) : zrUtil.isNumber(value) ? isNumberUserReadable(value) ? value + '' : '-' : '-';\n  }\n\n  var numericResult = numericToNumber(value);\n  return isNumberUserReadable(numericResult) ? addCommas(numericResult) : zrUtil.isStringSafe(value) ? stringToUserReadable(value) : '-';\n}\nvar TPL_VAR_ALIAS = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];\n\nvar wrapVar = function (varName, seriesIdx) {\n  return '{' + varName + (seriesIdx == null ? '' : seriesIdx) + '}';\n};\n\nexport function formatTpl(tpl, paramsList, encode) {\n  if (!zrUtil.isArray(paramsList)) {\n    paramsList = [paramsList];\n  }\n\n  var seriesLen = paramsList.length;\n\n  if (!seriesLen) {\n    return '';\n  }\n\n  var $vars = paramsList[0].$vars || [];\n\n  for (var i = 0; i < $vars.length; i++) {\n    var alias = TPL_VAR_ALIAS[i];\n    tpl = tpl.replace(wrapVar(alias), wrapVar(alias, 0));\n  }\n\n  for (var seriesIdx = 0; seriesIdx < seriesLen; seriesIdx++) {\n    for (var k = 0; k < $vars.length; k++) {\n      var val = paramsList[seriesIdx][$vars[k]];\n      tpl = tpl.replace(wrapVar(TPL_VAR_ALIAS[k], seriesIdx), encode ? encodeHTML(val) : val);\n    }\n  }\n\n  return tpl;\n}\nexport function formatTplSimple(tpl, param, encode) {\n  zrUtil.each(param, function (value, key) {\n    tpl = tpl.replace('{' + key + '}', encode ? encodeHTML(value) : value);\n  });\n  return tpl;\n}\nexport function getTooltipMarker(inOpt, extraCssText) {\n  var opt = zrUtil.isString(inOpt) ? {\n    color: inOpt,\n    extraCssText: extraCssText\n  } : inOpt || {};\n  var color = opt.color;\n  var type = opt.type;\n  extraCssText = opt.extraCssText;\n  var renderMode = opt.renderMode || 'html';\n\n  if (!color) {\n    return '';\n  }\n\n  if (renderMode === 'html') {\n    return type === 'subItem' ? '<span style=\"display:inline-block;vertical-align:middle;margin-right:8px;margin-left:3px;' + 'border-radius:4px;width:4px;height:4px;background-color:' + encodeHTML(color) + ';' + (extraCssText || '') + '\"></span>' : '<span style=\"display:inline-block;margin-right:4px;' + 'border-radius:10px;width:10px;height:10px;background-color:' + encodeHTML(color) + ';' + (extraCssText || '') + '\"></span>';\n  } else {\n    var markerId = opt.markerId || 'markerX';\n    return {\n      renderMode: renderMode,\n      content: '{' + markerId + '|}  ',\n      style: type === 'subItem' ? {\n        width: 4,\n        height: 4,\n        borderRadius: 2,\n        backgroundColor: color\n      } : {\n        width: 10,\n        height: 10,\n        borderRadius: 5,\n        backgroundColor: color\n      }\n    };\n  }\n}\nexport function formatTime(tpl, value, isUTC) {\n  if (process.env.NODE_ENV !== 'production') {\n    deprecateReplaceLog('echarts.format.formatTime', 'echarts.time.format');\n  }\n\n  if (tpl === 'week' || tpl === 'month' || tpl === 'quarter' || tpl === 'half-year' || tpl === 'year') {\n    tpl = 'MM-dd\\nyyyy';\n  }\n\n  var date = parseDate(value);\n  var utc = isUTC ? 'UTC' : '';\n  var y = date['get' + utc + 'FullYear']();\n  var M = date['get' + utc + 'Month']() + 1;\n  var d = date['get' + utc + 'Date']();\n  var h = date['get' + utc + 'Hours']();\n  var m = date['get' + utc + 'Minutes']();\n  var s = date['get' + utc + 'Seconds']();\n  var S = date['get' + utc + 'Milliseconds']();\n  tpl = tpl.replace('MM', pad(M, 2)).replace('M', M).replace('yyyy', y).replace('yy', y % 100 + '').replace('dd', pad(d, 2)).replace('d', d).replace('hh', pad(h, 2)).replace('h', h).replace('mm', pad(m, 2)).replace('m', m).replace('ss', pad(s, 2)).replace('s', s).replace('SSS', pad(S, 3));\n  return tpl;\n}\nexport function capitalFirst(str) {\n  return str ? str.charAt(0).toUpperCase() + str.substr(1) : str;\n}\nexport function convertToColorString(color, defaultColor) {\n  defaultColor = defaultColor || 'transparent';\n  return zrUtil.isString(color) ? color : zrUtil.isObject(color) ? color.colorStops && (color.colorStops[0] || {}).color || defaultColor : defaultColor;\n}\nexport { truncateText } from 'zrender/lib/graphic/helper/parseText';\nexport function windowOpen(link, target) {\n  if (target === '_blank' || target === 'blank') {\n    var blank = window.open();\n    blank.opener = null;\n    blank.location.href = link;\n  } else {\n    window.open(link, target);\n  }\n}\nexport { getTextRect } from '../legacy/getTextRect';","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { parsePercent } from './number';\nimport * as formatUtil from './format';\nvar each = zrUtil.each;\nexport var LOCATION_PARAMS = ['left', 'right', 'top', 'bottom', 'width', 'height'];\nexport var HV_NAMES = [['width', 'left', 'right'], ['height', 'top', 'bottom']];\n\nfunction boxLayout(orient, group, gap, maxWidth, maxHeight) {\n  var x = 0;\n  var y = 0;\n\n  if (maxWidth == null) {\n    maxWidth = Infinity;\n  }\n\n  if (maxHeight == null) {\n    maxHeight = Infinity;\n  }\n\n  var currentLineMaxSize = 0;\n  group.eachChild(function (child, idx) {\n    var rect = child.getBoundingRect();\n    var nextChild = group.childAt(idx + 1);\n    var nextChildRect = nextChild && nextChild.getBoundingRect();\n    var nextX;\n    var nextY;\n\n    if (orient === 'horizontal') {\n      var moveX = rect.width + (nextChildRect ? -nextChildRect.x + rect.x : 0);\n      nextX = x + moveX;\n\n      if (nextX > maxWidth || child.newline) {\n        x = 0;\n        nextX = moveX;\n        y += currentLineMaxSize + gap;\n        currentLineMaxSize = rect.height;\n      } else {\n        currentLineMaxSize = Math.max(currentLineMaxSize, rect.height);\n      }\n    } else {\n      var moveY = rect.height + (nextChildRect ? -nextChildRect.y + rect.y : 0);\n      nextY = y + moveY;\n\n      if (nextY > maxHeight || child.newline) {\n        x += currentLineMaxSize + gap;\n        y = 0;\n        nextY = moveY;\n        currentLineMaxSize = rect.width;\n      } else {\n        currentLineMaxSize = Math.max(currentLineMaxSize, rect.width);\n      }\n    }\n\n    if (child.newline) {\n      return;\n    }\n\n    child.x = x;\n    child.y = y;\n    child.markRedraw();\n    orient === 'horizontal' ? x = nextX + gap : y = nextY + gap;\n  });\n}\n\nexport var box = boxLayout;\nexport var vbox = zrUtil.curry(boxLayout, 'vertical');\nexport var hbox = zrUtil.curry(boxLayout, 'horizontal');\nexport function getAvailableSize(positionInfo, containerRect, margin) {\n  var containerWidth = containerRect.width;\n  var containerHeight = containerRect.height;\n  var x = parsePercent(positionInfo.left, containerWidth);\n  var y = parsePercent(positionInfo.top, containerHeight);\n  var x2 = parsePercent(positionInfo.right, containerWidth);\n  var y2 = parsePercent(positionInfo.bottom, containerHeight);\n  (isNaN(x) || isNaN(parseFloat(positionInfo.left))) && (x = 0);\n  (isNaN(x2) || isNaN(parseFloat(positionInfo.right))) && (x2 = containerWidth);\n  (isNaN(y) || isNaN(parseFloat(positionInfo.top))) && (y = 0);\n  (isNaN(y2) || isNaN(parseFloat(positionInfo.bottom))) && (y2 = containerHeight);\n  margin = formatUtil.normalizeCssArray(margin || 0);\n  return {\n    width: Math.max(x2 - x - margin[1] - margin[3], 0),\n    height: Math.max(y2 - y - margin[0] - margin[2], 0)\n  };\n}\nexport function getLayoutRect(positionInfo, containerRect, margin) {\n  margin = formatUtil.normalizeCssArray(margin || 0);\n  var containerWidth = containerRect.width;\n  var containerHeight = containerRect.height;\n  var left = parsePercent(positionInfo.left, containerWidth);\n  var top = parsePercent(positionInfo.top, containerHeight);\n  var right = parsePercent(positionInfo.right, containerWidth);\n  var bottom = parsePercent(positionInfo.bottom, containerHeight);\n  var width = parsePercent(positionInfo.width, containerWidth);\n  var height = parsePercent(positionInfo.height, containerHeight);\n  var verticalMargin = margin[2] + margin[0];\n  var horizontalMargin = margin[1] + margin[3];\n  var aspect = positionInfo.aspect;\n\n  if (isNaN(width)) {\n    width = containerWidth - right - horizontalMargin - left;\n  }\n\n  if (isNaN(height)) {\n    height = containerHeight - bottom - verticalMargin - top;\n  }\n\n  if (aspect != null) {\n    if (isNaN(width) && isNaN(height)) {\n      if (aspect > containerWidth / containerHeight) {\n        width = containerWidth * 0.8;\n      } else {\n        height = containerHeight * 0.8;\n      }\n    }\n\n    if (isNaN(width)) {\n      width = aspect * height;\n    }\n\n    if (isNaN(height)) {\n      height = width / aspect;\n    }\n  }\n\n  if (isNaN(left)) {\n    left = containerWidth - right - width - horizontalMargin;\n  }\n\n  if (isNaN(top)) {\n    top = containerHeight - bottom - height - verticalMargin;\n  }\n\n  switch (positionInfo.left || positionInfo.right) {\n    case 'center':\n      left = containerWidth / 2 - width / 2 - margin[3];\n      break;\n\n    case 'right':\n      left = containerWidth - width - horizontalMargin;\n      break;\n  }\n\n  switch (positionInfo.top || positionInfo.bottom) {\n    case 'middle':\n    case 'center':\n      top = containerHeight / 2 - height / 2 - margin[0];\n      break;\n\n    case 'bottom':\n      top = containerHeight - height - verticalMargin;\n      break;\n  }\n\n  left = left || 0;\n  top = top || 0;\n\n  if (isNaN(width)) {\n    width = containerWidth - horizontalMargin - left - (right || 0);\n  }\n\n  if (isNaN(height)) {\n    height = containerHeight - verticalMargin - top - (bottom || 0);\n  }\n\n  var rect = new BoundingRect(left + margin[3], top + margin[0], width, height);\n  rect.margin = margin;\n  return rect;\n}\nexport function positionElement(el, positionInfo, containerRect, margin, opt) {\n  var h = !opt || !opt.hv || opt.hv[0];\n  var v = !opt || !opt.hv || opt.hv[1];\n  var boundingMode = opt && opt.boundingMode || 'all';\n\n  if (!h && !v) {\n    return;\n  }\n\n  var rect;\n\n  if (boundingMode === 'raw') {\n    rect = el.type === 'group' ? new BoundingRect(0, 0, +positionInfo.width || 0, +positionInfo.height || 0) : el.getBoundingRect();\n  } else {\n    rect = el.getBoundingRect();\n\n    if (el.needLocalTransform()) {\n      var transform = el.getLocalTransform();\n      rect = rect.clone();\n      rect.applyTransform(transform);\n    }\n  }\n\n  var layoutRect = getLayoutRect(zrUtil.defaults({\n    width: rect.width,\n    height: rect.height\n  }, positionInfo), containerRect, margin);\n  var dx = h ? layoutRect.x - rect.x : 0;\n  var dy = v ? layoutRect.y - rect.y : 0;\n\n  if (boundingMode === 'raw') {\n    el.x = dx;\n    el.y = dy;\n  } else {\n    el.x += dx;\n    el.y += dy;\n  }\n\n  el.markRedraw();\n}\nexport function sizeCalculable(option, hvIdx) {\n  return option[HV_NAMES[hvIdx][0]] != null || option[HV_NAMES[hvIdx][1]] != null && option[HV_NAMES[hvIdx][2]] != null;\n}\nexport function fetchLayoutMode(ins) {\n  var layoutMode = ins.layoutMode || ins.constructor.layoutMode;\n  return zrUtil.isObject(layoutMode) ? layoutMode : layoutMode ? {\n    type: layoutMode\n  } : null;\n}\nexport function mergeLayoutParam(targetOption, newOption, opt) {\n  var ignoreSize = opt && opt.ignoreSize;\n  !zrUtil.isArray(ignoreSize) && (ignoreSize = [ignoreSize, ignoreSize]);\n  var hResult = merge(HV_NAMES[0], 0);\n  var vResult = merge(HV_NAMES[1], 1);\n  copy(HV_NAMES[0], targetOption, hResult);\n  copy(HV_NAMES[1], targetOption, vResult);\n\n  function merge(names, hvIdx) {\n    var newParams = {};\n    var newValueCount = 0;\n    var merged = {};\n    var mergedValueCount = 0;\n    var enoughParamNumber = 2;\n    each(names, function (name) {\n      merged[name] = targetOption[name];\n    });\n    each(names, function (name) {\n      hasProp(newOption, name) && (newParams[name] = merged[name] = newOption[name]);\n      hasValue(newParams, name) && newValueCount++;\n      hasValue(merged, name) && mergedValueCount++;\n    });\n\n    if (ignoreSize[hvIdx]) {\n      if (hasValue(newOption, names[1])) {\n        merged[names[2]] = null;\n      } else if (hasValue(newOption, names[2])) {\n        merged[names[1]] = null;\n      }\n\n      return merged;\n    }\n\n    if (mergedValueCount === enoughParamNumber || !newValueCount) {\n      return merged;\n    } else if (newValueCount >= enoughParamNumber) {\n      return newParams;\n    } else {\n      for (var i = 0; i < names.length; i++) {\n        var name_1 = names[i];\n\n        if (!hasProp(newParams, name_1) && hasProp(targetOption, name_1)) {\n          newParams[name_1] = targetOption[name_1];\n          break;\n        }\n      }\n\n      return newParams;\n    }\n  }\n\n  function hasProp(obj, name) {\n    return obj.hasOwnProperty(name);\n  }\n\n  function hasValue(obj, name) {\n    return obj[name] != null && obj[name] !== 'auto';\n  }\n\n  function copy(names, target, source) {\n    each(names, function (name) {\n      target[name] = source[name];\n    });\n  }\n}\nexport function getLayoutParams(source) {\n  return copyLayoutParams({}, source);\n}\nexport function copyLayoutParams(target, source) {\n  source && target && each(LOCATION_PARAMS, function (name) {\n    source.hasOwnProperty(name) && (target[name] = source[name]);\n  });\n  return target;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Model from './Model';\nimport * as componentUtil from '../util/component';\nimport { enableClassManagement, parseClassType, isExtendedClass, mountExtend } from '../util/clazz';\nimport { makeInner, queryReferringComponents } from '../util/model';\nimport * as layout from '../util/layout';\nvar inner = makeInner();\n\nvar ComponentModel = function (_super) {\n  __extends(ComponentModel, _super);\n\n  function ComponentModel(option, parentModel, ecModel) {\n    var _this = _super.call(this, option, parentModel, ecModel) || this;\n\n    _this.uid = componentUtil.getUID('ec_cpt_model');\n    return _this;\n  }\n\n  ComponentModel.prototype.init = function (option, parentModel, ecModel) {\n    this.mergeDefaultAndTheme(option, ecModel);\n  };\n\n  ComponentModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n    var layoutMode = layout.fetchLayoutMode(this);\n    var inputPositionParams = layoutMode ? layout.getLayoutParams(option) : {};\n    var themeModel = ecModel.getTheme();\n    zrUtil.merge(option, themeModel.get(this.mainType));\n    zrUtil.merge(option, this.getDefaultOption());\n\n    if (layoutMode) {\n      layout.mergeLayoutParam(option, inputPositionParams, layoutMode);\n    }\n  };\n\n  ComponentModel.prototype.mergeOption = function (option, ecModel) {\n    zrUtil.merge(this.option, option, true);\n    var layoutMode = layout.fetchLayoutMode(this);\n\n    if (layoutMode) {\n      layout.mergeLayoutParam(this.option, option, layoutMode);\n    }\n  };\n\n  ComponentModel.prototype.optionUpdated = function (newCptOption, isInit) {};\n\n  ComponentModel.prototype.getDefaultOption = function () {\n    var ctor = this.constructor;\n\n    if (!isExtendedClass(ctor)) {\n      return ctor.defaultOption;\n    }\n\n    var fields = inner(this);\n\n    if (!fields.defaultOption) {\n      var optList = [];\n      var clz = ctor;\n\n      while (clz) {\n        var opt = clz.prototype.defaultOption;\n        opt && optList.push(opt);\n        clz = clz.superClass;\n      }\n\n      var defaultOption = {};\n\n      for (var i = optList.length - 1; i >= 0; i--) {\n        defaultOption = zrUtil.merge(defaultOption, optList[i], true);\n      }\n\n      fields.defaultOption = defaultOption;\n    }\n\n    return fields.defaultOption;\n  };\n\n  ComponentModel.prototype.getReferringComponents = function (mainType, opt) {\n    var indexKey = mainType + 'Index';\n    var idKey = mainType + 'Id';\n    return queryReferringComponents(this.ecModel, mainType, {\n      index: this.get(indexKey, true),\n      id: this.get(idKey, true)\n    }, opt);\n  };\n\n  ComponentModel.prototype.getBoxLayoutParams = function () {\n    var boxLayoutModel = this;\n    return {\n      left: boxLayoutModel.get('left'),\n      top: boxLayoutModel.get('top'),\n      right: boxLayoutModel.get('right'),\n      bottom: boxLayoutModel.get('bottom'),\n      width: boxLayoutModel.get('width'),\n      height: boxLayoutModel.get('height')\n    };\n  };\n\n  ComponentModel.protoInitialize = function () {\n    var proto = ComponentModel.prototype;\n    proto.type = 'component';\n    proto.id = '';\n    proto.name = '';\n    proto.mainType = '';\n    proto.subType = '';\n    proto.componentIndex = 0;\n  }();\n\n  return ComponentModel;\n}(Model);\n\nmountExtend(ComponentModel, Model);\nenableClassManagement(ComponentModel);\ncomponentUtil.enableSubTypeDefaulter(ComponentModel);\ncomponentUtil.enableTopologicalTravel(ComponentModel, getDependencies);\n\nfunction getDependencies(componentType) {\n  var deps = [];\n  zrUtil.each(ComponentModel.getClassesByMainType(componentType), function (clz) {\n    deps = deps.concat(clz.dependencies || clz.prototype.dependencies || []);\n  });\n  deps = zrUtil.map(deps, function (type) {\n    return parseClassType(type).main;\n  });\n\n  if (componentType !== 'dataset' && zrUtil.indexOf(deps, 'dataset') <= 0) {\n    deps.unshift('dataset');\n  }\n\n  return deps;\n}\n\nexport default ComponentModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar platform = '';\n\nif (typeof navigator !== 'undefined') {\n  platform = navigator.platform || '';\n}\n\nvar decalColor = 'rgba(0, 0, 0, 0.2)';\nexport default {\n  darkMode: 'auto',\n  color: ['#5470c6', '#91cc75', '#fac858', '#ee6666', '#73c0de', '#3ba272', '#fc8452', '#9a60b4', '#ea7ccc'],\n  gradientColor: ['#f6efa6', '#d88273', '#bf444c'],\n  aria: {\n    decal: {\n      decals: [{\n        color: decalColor,\n        dashArrayX: [1, 0],\n        dashArrayY: [2, 5],\n        symbolSize: 1,\n        rotation: Math.PI / 6\n      }, {\n        color: decalColor,\n        symbol: 'circle',\n        dashArrayX: [[8, 8], [0, 8, 8, 0]],\n        dashArrayY: [6, 0],\n        symbolSize: 0.8\n      }, {\n        color: decalColor,\n        dashArrayX: [1, 0],\n        dashArrayY: [4, 3],\n        rotation: -Math.PI / 4\n      }, {\n        color: decalColor,\n        dashArrayX: [[6, 6], [0, 6, 6, 0]],\n        dashArrayY: [6, 0]\n      }, {\n        color: decalColor,\n        dashArrayX: [[1, 0], [1, 6]],\n        dashArrayY: [1, 0, 6, 0],\n        rotation: Math.PI / 4\n      }, {\n        color: decalColor,\n        symbol: 'triangle',\n        dashArrayX: [[9, 9], [0, 9, 9, 0]],\n        dashArrayY: [7, 2],\n        symbolSize: 0.75\n      }]\n    }\n  },\n  textStyle: {\n    fontFamily: platform.match(/^Win/) ? 'Microsoft YaHei' : 'sans-serif',\n    fontSize: 12,\n    fontStyle: 'normal',\n    fontWeight: 'normal'\n  },\n  blendMode: null,\n  stateAnimation: {\n    duration: 300,\n    easing: 'cubicOut'\n  },\n  animation: 'auto',\n  animationDuration: 1000,\n  animationDurationUpdate: 500,\n  animationEasing: 'cubicInOut',\n  animationEasingUpdate: 'cubicInOut',\n  animationThreshold: 2000,\n  progressiveThreshold: 3000,\n  progressive: 400,\n  hoverLayerThreshold: 3000,\n  useUTC: false\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap } from 'zrender/lib/core/util';\n;\n;\n;\nexport var VISUAL_DIMENSIONS = createHashMap(['tooltip', 'label', 'itemName', 'itemId', 'seriesName']);\nexport var SOURCE_FORMAT_ORIGINAL = 'original';\nexport var SOURCE_FORMAT_ARRAY_ROWS = 'arrayRows';\nexport var SOURCE_FORMAT_OBJECT_ROWS = 'objectRows';\nexport var SOURCE_FORMAT_KEYED_COLUMNS = 'keyedColumns';\nexport var SOURCE_FORMAT_TYPED_ARRAY = 'typedArray';\nexport var SOURCE_FORMAT_UNKNOWN = 'unknown';\nexport var SERIES_LAYOUT_BY_COLUMN = 'column';\nexport var SERIES_LAYOUT_BY_ROW = 'row';\n;\n;\n;\n;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner, getDataItemValue, queryReferringComponents, SINGLE_REFERRING } from '../../util/model';\nimport { createHashMap, each, isArray, isString, isObject, isTypedArray } from 'zrender/lib/core/util';\nimport { SOURCE_FORMAT_ORIGINAL, SOURCE_FORMAT_ARRAY_ROWS, SOURCE_FORMAT_OBJECT_ROWS, SERIES_LAYOUT_BY_ROW, SOURCE_FORMAT_KEYED_COLUMNS } from '../../util/types';\nexport var BE_ORDINAL = {\n  Must: 1,\n  Might: 2,\n  Not: 3\n};\nvar innerGlobalModel = makeInner();\nexport function resetSourceDefaulter(ecModel) {\n  innerGlobalModel(ecModel).datasetMap = createHashMap();\n}\nexport function makeSeriesEncodeForAxisCoordSys(coordDimensions, seriesModel, source) {\n  var encode = {};\n  var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\n\n  if (!datasetModel || !coordDimensions) {\n    return encode;\n  }\n\n  var encodeItemName = [];\n  var encodeSeriesName = [];\n  var ecModel = seriesModel.ecModel;\n  var datasetMap = innerGlobalModel(ecModel).datasetMap;\n  var key = datasetModel.uid + '_' + source.seriesLayoutBy;\n  var baseCategoryDimIndex;\n  var categoryWayValueDimStart;\n  coordDimensions = coordDimensions.slice();\n  each(coordDimensions, function (coordDimInfoLoose, coordDimIdx) {\n    var coordDimInfo = isObject(coordDimInfoLoose) ? coordDimInfoLoose : coordDimensions[coordDimIdx] = {\n      name: coordDimInfoLoose\n    };\n\n    if (coordDimInfo.type === 'ordinal' && baseCategoryDimIndex == null) {\n      baseCategoryDimIndex = coordDimIdx;\n      categoryWayValueDimStart = getDataDimCountOnCoordDim(coordDimInfo);\n    }\n\n    encode[coordDimInfo.name] = [];\n  });\n  var datasetRecord = datasetMap.get(key) || datasetMap.set(key, {\n    categoryWayDim: categoryWayValueDimStart,\n    valueWayDim: 0\n  });\n  each(coordDimensions, function (coordDimInfo, coordDimIdx) {\n    var coordDimName = coordDimInfo.name;\n    var count = getDataDimCountOnCoordDim(coordDimInfo);\n\n    if (baseCategoryDimIndex == null) {\n      var start = datasetRecord.valueWayDim;\n      pushDim(encode[coordDimName], start, count);\n      pushDim(encodeSeriesName, start, count);\n      datasetRecord.valueWayDim += count;\n    } else if (baseCategoryDimIndex === coordDimIdx) {\n      pushDim(encode[coordDimName], 0, count);\n      pushDim(encodeItemName, 0, count);\n    } else {\n      var start = datasetRecord.categoryWayDim;\n      pushDim(encode[coordDimName], start, count);\n      pushDim(encodeSeriesName, start, count);\n      datasetRecord.categoryWayDim += count;\n    }\n  });\n\n  function pushDim(dimIdxArr, idxFrom, idxCount) {\n    for (var i = 0; i < idxCount; i++) {\n      dimIdxArr.push(idxFrom + i);\n    }\n  }\n\n  function getDataDimCountOnCoordDim(coordDimInfo) {\n    var dimsDef = coordDimInfo.dimsDef;\n    return dimsDef ? dimsDef.length : 1;\n  }\n\n  encodeItemName.length && (encode.itemName = encodeItemName);\n  encodeSeriesName.length && (encode.seriesName = encodeSeriesName);\n  return encode;\n}\nexport function makeSeriesEncodeForNameBased(seriesModel, source, dimCount) {\n  var encode = {};\n  var datasetModel = querySeriesUpstreamDatasetModel(seriesModel);\n\n  if (!datasetModel) {\n    return encode;\n  }\n\n  var sourceFormat = source.sourceFormat;\n  var dimensionsDefine = source.dimensionsDefine;\n  var potentialNameDimIndex;\n\n  if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS || sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n    each(dimensionsDefine, function (dim, idx) {\n      if ((isObject(dim) ? dim.name : dim) === 'name') {\n        potentialNameDimIndex = idx;\n      }\n    });\n  }\n\n  var idxResult = function () {\n    var idxRes0 = {};\n    var idxRes1 = {};\n    var guessRecords = [];\n\n    for (var i = 0, len = Math.min(5, dimCount); i < len; i++) {\n      var guessResult = doGuessOrdinal(source.data, sourceFormat, source.seriesLayoutBy, dimensionsDefine, source.startIndex, i);\n      guessRecords.push(guessResult);\n      var isPureNumber = guessResult === BE_ORDINAL.Not;\n\n      if (isPureNumber && idxRes0.v == null && i !== potentialNameDimIndex) {\n        idxRes0.v = i;\n      }\n\n      if (idxRes0.n == null || idxRes0.n === idxRes0.v || !isPureNumber && guessRecords[idxRes0.n] === BE_ORDINAL.Not) {\n        idxRes0.n = i;\n      }\n\n      if (fulfilled(idxRes0) && guessRecords[idxRes0.n] !== BE_ORDINAL.Not) {\n        return idxRes0;\n      }\n\n      if (!isPureNumber) {\n        if (guessResult === BE_ORDINAL.Might && idxRes1.v == null && i !== potentialNameDimIndex) {\n          idxRes1.v = i;\n        }\n\n        if (idxRes1.n == null || idxRes1.n === idxRes1.v) {\n          idxRes1.n = i;\n        }\n      }\n    }\n\n    function fulfilled(idxResult) {\n      return idxResult.v != null && idxResult.n != null;\n    }\n\n    return fulfilled(idxRes0) ? idxRes0 : fulfilled(idxRes1) ? idxRes1 : null;\n  }();\n\n  if (idxResult) {\n    encode.value = [idxResult.v];\n    var nameDimIndex = potentialNameDimIndex != null ? potentialNameDimIndex : idxResult.n;\n    encode.itemName = [nameDimIndex];\n    encode.seriesName = [nameDimIndex];\n  }\n\n  return encode;\n}\nexport function querySeriesUpstreamDatasetModel(seriesModel) {\n  var thisData = seriesModel.get('data', true);\n\n  if (!thisData) {\n    return queryReferringComponents(seriesModel.ecModel, 'dataset', {\n      index: seriesModel.get('datasetIndex', true),\n      id: seriesModel.get('datasetId', true)\n    }, SINGLE_REFERRING).models[0];\n  }\n}\nexport function queryDatasetUpstreamDatasetModels(datasetModel) {\n  if (!datasetModel.get('transform', true) && !datasetModel.get('fromTransformResult', true)) {\n    return [];\n  }\n\n  return queryReferringComponents(datasetModel.ecModel, 'dataset', {\n    index: datasetModel.get('fromDatasetIndex', true),\n    id: datasetModel.get('fromDatasetId', true)\n  }, SINGLE_REFERRING).models;\n}\nexport function guessOrdinal(source, dimIndex) {\n  return doGuessOrdinal(source.data, source.sourceFormat, source.seriesLayoutBy, source.dimensionsDefine, source.startIndex, dimIndex);\n}\n\nfunction doGuessOrdinal(data, sourceFormat, seriesLayoutBy, dimensionsDefine, startIndex, dimIndex) {\n  var result;\n  var maxLoop = 5;\n\n  if (isTypedArray(data)) {\n    return BE_ORDINAL.Not;\n  }\n\n  var dimName;\n  var dimType;\n\n  if (dimensionsDefine) {\n    var dimDefItem = dimensionsDefine[dimIndex];\n\n    if (isObject(dimDefItem)) {\n      dimName = dimDefItem.name;\n      dimType = dimDefItem.type;\n    } else if (isString(dimDefItem)) {\n      dimName = dimDefItem;\n    }\n  }\n\n  if (dimType != null) {\n    return dimType === 'ordinal' ? BE_ORDINAL.Must : BE_ORDINAL.Not;\n  }\n\n  if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n    var dataArrayRows = data;\n\n    if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\n      var sample = dataArrayRows[dimIndex];\n\n      for (var i = 0; i < (sample || []).length && i < maxLoop; i++) {\n        if ((result = detectValue(sample[startIndex + i])) != null) {\n          return result;\n        }\n      }\n    } else {\n      for (var i = 0; i < dataArrayRows.length && i < maxLoop; i++) {\n        var row = dataArrayRows[startIndex + i];\n\n        if (row && (result = detectValue(row[dimIndex])) != null) {\n          return result;\n        }\n      }\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n    var dataObjectRows = data;\n\n    if (!dimName) {\n      return BE_ORDINAL.Not;\n    }\n\n    for (var i = 0; i < dataObjectRows.length && i < maxLoop; i++) {\n      var item = dataObjectRows[i];\n\n      if (item && (result = detectValue(item[dimName])) != null) {\n        return result;\n      }\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n    var dataKeyedColumns = data;\n\n    if (!dimName) {\n      return BE_ORDINAL.Not;\n    }\n\n    var sample = dataKeyedColumns[dimName];\n\n    if (!sample || isTypedArray(sample)) {\n      return BE_ORDINAL.Not;\n    }\n\n    for (var i = 0; i < sample.length && i < maxLoop; i++) {\n      if ((result = detectValue(sample[i])) != null) {\n        return result;\n      }\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n    var dataOriginal = data;\n\n    for (var i = 0; i < dataOriginal.length && i < maxLoop; i++) {\n      var item = dataOriginal[i];\n      var val = getDataItemValue(item);\n\n      if (!isArray(val)) {\n        return BE_ORDINAL.Not;\n      }\n\n      if ((result = detectValue(val[dimIndex])) != null) {\n        return result;\n      }\n    }\n  }\n\n  function detectValue(val) {\n    var beStr = isString(val);\n\n    if (val != null && isFinite(val) && val !== '') {\n      return beStr ? BE_ORDINAL.Might : BE_ORDINAL.Not;\n    } else if (beStr && val !== '-') {\n      return BE_ORDINAL.Must;\n    }\n  }\n\n  return BE_ORDINAL.Not;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, assert } from 'zrender/lib/core/util';\nimport { isComponentIdInternal } from '../util/model';\nvar internalOptionCreatorMap = createHashMap();\nexport function registerInternalOptionCreator(mainType, creator) {\n  assert(internalOptionCreatorMap.get(mainType) == null && creator);\n  internalOptionCreatorMap.set(mainType, creator);\n}\nexport function concatInternalOptions(ecModel, mainType, newCmptOptionList) {\n  var internalOptionCreator = internalOptionCreatorMap.get(mainType);\n\n  if (!internalOptionCreator) {\n    return newCmptOptionList;\n  }\n\n  var internalOptions = internalOptionCreator(ecModel);\n\n  if (!internalOptions) {\n    return newCmptOptionList;\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    for (var i = 0; i < internalOptions.length; i++) {\n      assert(isComponentIdInternal(internalOptions[i]));\n    }\n  }\n\n  return newCmptOptionList.concat(internalOptions);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner, normalizeToArray } from '../../util/model';\nvar innerColor = makeInner();\nvar innerDecal = makeInner();\n\nvar PaletteMixin = function () {\n  function PaletteMixin() {}\n\n  PaletteMixin.prototype.getColorFromPalette = function (name, scope, requestNum) {\n    var defaultPalette = normalizeToArray(this.get('color', true));\n    var layeredPalette = this.get('colorLayer', true);\n    return getFromPalette(this, innerColor, defaultPalette, layeredPalette, name, scope, requestNum);\n  };\n\n  PaletteMixin.prototype.clearColorPalette = function () {\n    clearPalette(this, innerColor);\n  };\n\n  return PaletteMixin;\n}();\n\nexport function getDecalFromPalette(ecModel, name, scope, requestNum) {\n  var defaultDecals = normalizeToArray(ecModel.get(['aria', 'decal', 'decals']));\n  return getFromPalette(ecModel, innerDecal, defaultDecals, null, name, scope, requestNum);\n}\n\nfunction getNearestPalette(palettes, requestColorNum) {\n  var paletteNum = palettes.length;\n\n  for (var i = 0; i < paletteNum; i++) {\n    if (palettes[i].length > requestColorNum) {\n      return palettes[i];\n    }\n  }\n\n  return palettes[paletteNum - 1];\n}\n\nfunction getFromPalette(that, inner, defaultPalette, layeredPalette, name, scope, requestNum) {\n  scope = scope || that;\n  var scopeFields = inner(scope);\n  var paletteIdx = scopeFields.paletteIdx || 0;\n  var paletteNameMap = scopeFields.paletteNameMap = scopeFields.paletteNameMap || {};\n\n  if (paletteNameMap.hasOwnProperty(name)) {\n    return paletteNameMap[name];\n  }\n\n  var palette = requestNum == null || !layeredPalette ? defaultPalette : getNearestPalette(layeredPalette, requestNum);\n  palette = palette || defaultPalette;\n\n  if (!palette || !palette.length) {\n    return;\n  }\n\n  var pickedPaletteItem = palette[paletteIdx];\n\n  if (name) {\n    paletteNameMap[name] = pickedPaletteItem;\n  }\n\n  scopeFields.paletteIdx = (paletteIdx + 1) % palette.length;\n  return pickedPaletteItem;\n}\n\nfunction clearPalette(that, inner) {\n  inner(that).paletteIdx = 0;\n  inner(that).paletteNameMap = {};\n}\n\nexport { PaletteMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { each, filter, isArray, isObject, isString, createHashMap, assert, clone, merge, extend, mixin, isFunction } from 'zrender/lib/core/util';\nimport * as modelUtil from '../util/model';\nimport Model from './Model';\nimport ComponentModel from './Component';\nimport globalDefault from './globalDefault';\nimport { resetSourceDefaulter } from '../data/helper/sourceHelper';\nimport { concatInternalOptions } from './internalComponentCreator';\nimport { PaletteMixin } from './mixin/palette';\nvar reCreateSeriesIndices;\nvar assertSeriesInitialized;\nvar initBase;\nvar OPTION_INNER_KEY = '\\0_ec_inner';\nvar OPTION_INNER_VALUE = 1;\n\nvar GlobalModel = function (_super) {\n  __extends(GlobalModel, _super);\n\n  function GlobalModel() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  GlobalModel.prototype.init = function (option, parentModel, ecModel, theme, locale, optionManager) {\n    theme = theme || {};\n    this.option = null;\n    this._theme = new Model(theme);\n    this._locale = new Model(locale);\n    this._optionManager = optionManager;\n  };\n\n  GlobalModel.prototype.setOption = function (option, opts, optionPreprocessorFuncs) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(option != null, 'option is null/undefined');\n      assert(option[OPTION_INNER_KEY] !== OPTION_INNER_VALUE, 'please use chart.getOption()');\n    }\n\n    var innerOpt = normalizeSetOptionInput(opts);\n\n    this._optionManager.setOption(option, optionPreprocessorFuncs, innerOpt);\n\n    this._resetOption(null, innerOpt);\n  };\n\n  GlobalModel.prototype.resetOption = function (type, opt) {\n    return this._resetOption(type, normalizeSetOptionInput(opt));\n  };\n\n  GlobalModel.prototype._resetOption = function (type, opt) {\n    var optionChanged = false;\n    var optionManager = this._optionManager;\n\n    if (!type || type === 'recreate') {\n      var baseOption = optionManager.mountOption(type === 'recreate');\n\n      if (!this.option || type === 'recreate') {\n        initBase(this, baseOption);\n      } else {\n        this.restoreData();\n\n        this._mergeOption(baseOption, opt);\n      }\n\n      optionChanged = true;\n    }\n\n    if (type === 'timeline' || type === 'media') {\n      this.restoreData();\n    }\n\n    if (!type || type === 'recreate' || type === 'timeline') {\n      var timelineOption = optionManager.getTimelineOption(this);\n\n      if (timelineOption) {\n        optionChanged = true;\n\n        this._mergeOption(timelineOption, opt);\n      }\n    }\n\n    if (!type || type === 'recreate' || type === 'media') {\n      var mediaOptions = optionManager.getMediaOption(this);\n\n      if (mediaOptions.length) {\n        each(mediaOptions, function (mediaOption) {\n          optionChanged = true;\n\n          this._mergeOption(mediaOption, opt);\n        }, this);\n      }\n    }\n\n    return optionChanged;\n  };\n\n  GlobalModel.prototype.mergeOption = function (option) {\n    this._mergeOption(option, null);\n  };\n\n  GlobalModel.prototype._mergeOption = function (newOption, opt) {\n    var option = this.option;\n    var componentsMap = this._componentsMap;\n    var componentsCount = this._componentsCount;\n    var newCmptTypes = [];\n    var newCmptTypeMap = createHashMap();\n    var replaceMergeMainTypeMap = opt && opt.replaceMergeMainTypeMap;\n    resetSourceDefaulter(this);\n    each(newOption, function (componentOption, mainType) {\n      if (componentOption == null) {\n        return;\n      }\n\n      if (!ComponentModel.hasClass(mainType)) {\n        option[mainType] = option[mainType] == null ? clone(componentOption) : merge(option[mainType], componentOption, true);\n      } else if (mainType) {\n        newCmptTypes.push(mainType);\n        newCmptTypeMap.set(mainType, true);\n      }\n    });\n\n    if (replaceMergeMainTypeMap) {\n      replaceMergeMainTypeMap.each(function (val, mainTypeInReplaceMerge) {\n        if (ComponentModel.hasClass(mainTypeInReplaceMerge) && !newCmptTypeMap.get(mainTypeInReplaceMerge)) {\n          newCmptTypes.push(mainTypeInReplaceMerge);\n          newCmptTypeMap.set(mainTypeInReplaceMerge, true);\n        }\n      });\n    }\n\n    ComponentModel.topologicalTravel(newCmptTypes, ComponentModel.getAllClassMainTypes(), visitComponent, this);\n\n    function visitComponent(mainType) {\n      var newCmptOptionList = concatInternalOptions(this, mainType, modelUtil.normalizeToArray(newOption[mainType]));\n      var oldCmptList = componentsMap.get(mainType);\n      var mergeMode = !oldCmptList ? 'replaceAll' : replaceMergeMainTypeMap && replaceMergeMainTypeMap.get(mainType) ? 'replaceMerge' : 'normalMerge';\n      var mappingResult = modelUtil.mappingToExists(oldCmptList, newCmptOptionList, mergeMode);\n      modelUtil.setComponentTypeToKeyInfo(mappingResult, mainType, ComponentModel);\n      option[mainType] = null;\n      componentsMap.set(mainType, null);\n      componentsCount.set(mainType, 0);\n      var optionsByMainType = [];\n      var cmptsByMainType = [];\n      var cmptsCountByMainType = 0;\n      each(mappingResult, function (resultItem, index) {\n        var componentModel = resultItem.existing;\n        var newCmptOption = resultItem.newOption;\n\n        if (!newCmptOption) {\n          if (componentModel) {\n            componentModel.mergeOption({}, this);\n            componentModel.optionUpdated({}, false);\n          }\n        } else {\n          var ComponentModelClass = ComponentModel.getClass(mainType, resultItem.keyInfo.subType, true);\n\n          if (componentModel && componentModel.constructor === ComponentModelClass) {\n            componentModel.name = resultItem.keyInfo.name;\n            componentModel.mergeOption(newCmptOption, this);\n            componentModel.optionUpdated(newCmptOption, false);\n          } else {\n            var extraOpt = extend({\n              componentIndex: index\n            }, resultItem.keyInfo);\n            componentModel = new ComponentModelClass(newCmptOption, this, this, extraOpt);\n            extend(componentModel, extraOpt);\n\n            if (resultItem.brandNew) {\n              componentModel.__requireNewView = true;\n            }\n\n            componentModel.init(newCmptOption, this, this);\n            componentModel.optionUpdated(null, true);\n          }\n        }\n\n        if (componentModel) {\n          optionsByMainType.push(componentModel.option);\n          cmptsByMainType.push(componentModel);\n          cmptsCountByMainType++;\n        } else {\n          optionsByMainType.push(void 0);\n          cmptsByMainType.push(void 0);\n        }\n      }, this);\n      option[mainType] = optionsByMainType;\n      componentsMap.set(mainType, cmptsByMainType);\n      componentsCount.set(mainType, cmptsCountByMainType);\n\n      if (mainType === 'series') {\n        reCreateSeriesIndices(this);\n      }\n    }\n\n    if (!this._seriesIndices) {\n      reCreateSeriesIndices(this);\n    }\n  };\n\n  GlobalModel.prototype.getOption = function () {\n    var option = clone(this.option);\n    each(option, function (optInMainType, mainType) {\n      if (ComponentModel.hasClass(mainType)) {\n        var opts = modelUtil.normalizeToArray(optInMainType);\n        var realLen = opts.length;\n        var metNonInner = false;\n\n        for (var i = realLen - 1; i >= 0; i--) {\n          if (opts[i] && !modelUtil.isComponentIdInternal(opts[i])) {\n            metNonInner = true;\n          } else {\n            opts[i] = null;\n            !metNonInner && realLen--;\n          }\n        }\n\n        opts.length = realLen;\n        option[mainType] = opts;\n      }\n    });\n    delete option[OPTION_INNER_KEY];\n    return option;\n  };\n\n  GlobalModel.prototype.getTheme = function () {\n    return this._theme;\n  };\n\n  GlobalModel.prototype.getLocaleModel = function () {\n    return this._locale;\n  };\n\n  GlobalModel.prototype.getLocale = function (localePosition) {\n    var locale = this.getLocaleModel();\n    return locale.get(localePosition);\n  };\n\n  GlobalModel.prototype.setUpdatePayload = function (payload) {\n    this._payload = payload;\n  };\n\n  GlobalModel.prototype.getUpdatePayload = function () {\n    return this._payload;\n  };\n\n  GlobalModel.prototype.getComponent = function (mainType, idx) {\n    var list = this._componentsMap.get(mainType);\n\n    if (list) {\n      var cmpt = list[idx || 0];\n\n      if (cmpt) {\n        return cmpt;\n      } else if (idx == null) {\n        for (var i = 0; i < list.length; i++) {\n          if (list[i]) {\n            return list[i];\n          }\n        }\n      }\n    }\n  };\n\n  GlobalModel.prototype.queryComponents = function (condition) {\n    var mainType = condition.mainType;\n\n    if (!mainType) {\n      return [];\n    }\n\n    var index = condition.index;\n    var id = condition.id;\n    var name = condition.name;\n\n    var cmpts = this._componentsMap.get(mainType);\n\n    if (!cmpts || !cmpts.length) {\n      return [];\n    }\n\n    var result;\n\n    if (index != null) {\n      result = [];\n      each(modelUtil.normalizeToArray(index), function (idx) {\n        cmpts[idx] && result.push(cmpts[idx]);\n      });\n    } else if (id != null) {\n      result = queryByIdOrName('id', id, cmpts);\n    } else if (name != null) {\n      result = queryByIdOrName('name', name, cmpts);\n    } else {\n      result = filter(cmpts, function (cmpt) {\n        return !!cmpt;\n      });\n    }\n\n    return filterBySubType(result, condition);\n  };\n\n  GlobalModel.prototype.findComponents = function (condition) {\n    var query = condition.query;\n    var mainType = condition.mainType;\n    var queryCond = getQueryCond(query);\n    var result = queryCond ? this.queryComponents(queryCond) : filter(this._componentsMap.get(mainType), function (cmpt) {\n      return !!cmpt;\n    });\n    return doFilter(filterBySubType(result, condition));\n\n    function getQueryCond(q) {\n      var indexAttr = mainType + 'Index';\n      var idAttr = mainType + 'Id';\n      var nameAttr = mainType + 'Name';\n      return q && (q[indexAttr] != null || q[idAttr] != null || q[nameAttr] != null) ? {\n        mainType: mainType,\n        index: q[indexAttr],\n        id: q[idAttr],\n        name: q[nameAttr]\n      } : null;\n    }\n\n    function doFilter(res) {\n      return condition.filter ? filter(res, condition.filter) : res;\n    }\n  };\n\n  GlobalModel.prototype.eachComponent = function (mainType, cb, context) {\n    var componentsMap = this._componentsMap;\n\n    if (isFunction(mainType)) {\n      var ctxForAll_1 = cb;\n      var cbForAll_1 = mainType;\n      componentsMap.each(function (cmpts, componentType) {\n        for (var i = 0; cmpts && i < cmpts.length; i++) {\n          var cmpt = cmpts[i];\n          cmpt && cbForAll_1.call(ctxForAll_1, componentType, cmpt, cmpt.componentIndex);\n        }\n      });\n    } else {\n      var cmpts = isString(mainType) ? componentsMap.get(mainType) : isObject(mainType) ? this.findComponents(mainType) : null;\n\n      for (var i = 0; cmpts && i < cmpts.length; i++) {\n        var cmpt = cmpts[i];\n        cmpt && cb.call(context, cmpt, cmpt.componentIndex);\n      }\n    }\n  };\n\n  GlobalModel.prototype.getSeriesByName = function (name) {\n    var nameStr = modelUtil.convertOptionIdName(name, null);\n    return filter(this._componentsMap.get('series'), function (oneSeries) {\n      return !!oneSeries && nameStr != null && oneSeries.name === nameStr;\n    });\n  };\n\n  GlobalModel.prototype.getSeriesByIndex = function (seriesIndex) {\n    return this._componentsMap.get('series')[seriesIndex];\n  };\n\n  GlobalModel.prototype.getSeriesByType = function (subType) {\n    return filter(this._componentsMap.get('series'), function (oneSeries) {\n      return !!oneSeries && oneSeries.subType === subType;\n    });\n  };\n\n  GlobalModel.prototype.getSeries = function () {\n    return filter(this._componentsMap.get('series').slice(), function (oneSeries) {\n      return !!oneSeries;\n    });\n  };\n\n  GlobalModel.prototype.getSeriesCount = function () {\n    return this._componentsCount.get('series');\n  };\n\n  GlobalModel.prototype.eachSeries = function (cb, context) {\n    assertSeriesInitialized(this);\n    each(this._seriesIndices, function (rawSeriesIndex) {\n      var series = this._componentsMap.get('series')[rawSeriesIndex];\n\n      cb.call(context, series, rawSeriesIndex);\n    }, this);\n  };\n\n  GlobalModel.prototype.eachRawSeries = function (cb, context) {\n    each(this._componentsMap.get('series'), function (series) {\n      series && cb.call(context, series, series.componentIndex);\n    });\n  };\n\n  GlobalModel.prototype.eachSeriesByType = function (subType, cb, context) {\n    assertSeriesInitialized(this);\n    each(this._seriesIndices, function (rawSeriesIndex) {\n      var series = this._componentsMap.get('series')[rawSeriesIndex];\n\n      if (series.subType === subType) {\n        cb.call(context, series, rawSeriesIndex);\n      }\n    }, this);\n  };\n\n  GlobalModel.prototype.eachRawSeriesByType = function (subType, cb, context) {\n    return each(this.getSeriesByType(subType), cb, context);\n  };\n\n  GlobalModel.prototype.isSeriesFiltered = function (seriesModel) {\n    assertSeriesInitialized(this);\n    return this._seriesIndicesMap.get(seriesModel.componentIndex) == null;\n  };\n\n  GlobalModel.prototype.getCurrentSeriesIndices = function () {\n    return (this._seriesIndices || []).slice();\n  };\n\n  GlobalModel.prototype.filterSeries = function (cb, context) {\n    assertSeriesInitialized(this);\n    var newSeriesIndices = [];\n    each(this._seriesIndices, function (seriesRawIdx) {\n      var series = this._componentsMap.get('series')[seriesRawIdx];\n\n      cb.call(context, series, seriesRawIdx) && newSeriesIndices.push(seriesRawIdx);\n    }, this);\n    this._seriesIndices = newSeriesIndices;\n    this._seriesIndicesMap = createHashMap(newSeriesIndices);\n  };\n\n  GlobalModel.prototype.restoreData = function (payload) {\n    reCreateSeriesIndices(this);\n    var componentsMap = this._componentsMap;\n    var componentTypes = [];\n    componentsMap.each(function (components, componentType) {\n      if (ComponentModel.hasClass(componentType)) {\n        componentTypes.push(componentType);\n      }\n    });\n    ComponentModel.topologicalTravel(componentTypes, ComponentModel.getAllClassMainTypes(), function (componentType) {\n      each(componentsMap.get(componentType), function (component) {\n        if (component && (componentType !== 'series' || !isNotTargetSeries(component, payload))) {\n          component.restoreData();\n        }\n      });\n    });\n  };\n\n  GlobalModel.internalField = function () {\n    reCreateSeriesIndices = function (ecModel) {\n      var seriesIndices = ecModel._seriesIndices = [];\n      each(ecModel._componentsMap.get('series'), function (series) {\n        series && seriesIndices.push(series.componentIndex);\n      });\n      ecModel._seriesIndicesMap = createHashMap(seriesIndices);\n    };\n\n    assertSeriesInitialized = function (ecModel) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (!ecModel._seriesIndices) {\n          throw new Error('Option should contains series.');\n        }\n      }\n    };\n\n    initBase = function (ecModel, baseOption) {\n      ecModel.option = {};\n      ecModel.option[OPTION_INNER_KEY] = OPTION_INNER_VALUE;\n      ecModel._componentsMap = createHashMap({\n        series: []\n      });\n      ecModel._componentsCount = createHashMap();\n      var airaOption = baseOption.aria;\n\n      if (isObject(airaOption) && airaOption.enabled == null) {\n        airaOption.enabled = true;\n      }\n\n      mergeTheme(baseOption, ecModel._theme.option);\n      merge(baseOption, globalDefault, false);\n\n      ecModel._mergeOption(baseOption, null);\n    };\n  }();\n\n  return GlobalModel;\n}(Model);\n\nfunction isNotTargetSeries(seriesModel, payload) {\n  if (payload) {\n    var index = payload.seriesIndex;\n    var id = payload.seriesId;\n    var name_1 = payload.seriesName;\n    return index != null && seriesModel.componentIndex !== index || id != null && seriesModel.id !== id || name_1 != null && seriesModel.name !== name_1;\n  }\n}\n\nfunction mergeTheme(option, theme) {\n  var notMergeColorLayer = option.color && !option.colorLayer;\n  each(theme, function (themeItem, name) {\n    if (name === 'colorLayer' && notMergeColorLayer) {\n      return;\n    }\n\n    if (!ComponentModel.hasClass(name)) {\n      if (typeof themeItem === 'object') {\n        option[name] = !option[name] ? clone(themeItem) : merge(option[name], themeItem, false);\n      } else {\n        if (option[name] == null) {\n          option[name] = themeItem;\n        }\n      }\n    }\n  });\n}\n\nfunction queryByIdOrName(attr, idOrName, cmpts) {\n  if (isArray(idOrName)) {\n    var keyMap_1 = createHashMap();\n    each(idOrName, function (idOrNameItem) {\n      if (idOrNameItem != null) {\n        var idName = modelUtil.convertOptionIdName(idOrNameItem, null);\n        idName != null && keyMap_1.set(idOrNameItem, true);\n      }\n    });\n    return filter(cmpts, function (cmpt) {\n      return cmpt && keyMap_1.get(cmpt[attr]);\n    });\n  } else {\n    var idName_1 = modelUtil.convertOptionIdName(idOrName, null);\n    return filter(cmpts, function (cmpt) {\n      return cmpt && idName_1 != null && cmpt[attr] === idName_1;\n    });\n  }\n}\n\nfunction filterBySubType(components, condition) {\n  return condition.hasOwnProperty('subType') ? filter(components, function (cmpt) {\n    return cmpt && cmpt.subType === condition.subType;\n  }) : components;\n}\n\nfunction normalizeSetOptionInput(opts) {\n  var replaceMergeMainTypeMap = createHashMap();\n  opts && each(modelUtil.normalizeToArray(opts.replaceMerge), function (mainType) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(ComponentModel.hasClass(mainType), '\"' + mainType + '\" is not valid component main type in \"replaceMerge\"');\n    }\n\n    replaceMergeMainTypeMap.set(mainType, true);\n  });\n  return {\n    replaceMergeMainTypeMap: replaceMergeMainTypeMap\n  };\n}\n\nmixin(GlobalModel, PaletteMixin);\nexport default GlobalModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar availableMethods = ['getDom', 'getZr', 'getWidth', 'getHeight', 'getDevicePixelRatio', 'dispatchAction', 'isDisposed', 'on', 'off', 'getDataURL', 'getConnectedDataURL', 'getOption', 'getId', 'updateLabelLayout'];\n\nvar ExtensionAPI = function () {\n  function ExtensionAPI(ecInstance) {\n    zrUtil.each(availableMethods, function (methodName) {\n      this[methodName] = zrUtil.bind(ecInstance[methodName], ecInstance);\n    }, this);\n  }\n\n  return ExtensionAPI;\n}();\n\nexport default ExtensionAPI;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar coordinateSystemCreators = {};\n\nvar CoordinateSystemManager = function () {\n  function CoordinateSystemManager() {\n    this._coordinateSystems = [];\n  }\n\n  CoordinateSystemManager.prototype.create = function (ecModel, api) {\n    var coordinateSystems = [];\n    zrUtil.each(coordinateSystemCreators, function (creater, type) {\n      var list = creater.create(ecModel, api);\n      coordinateSystems = coordinateSystems.concat(list || []);\n    });\n    this._coordinateSystems = coordinateSystems;\n  };\n\n  CoordinateSystemManager.prototype.update = function (ecModel, api) {\n    zrUtil.each(this._coordinateSystems, function (coordSys) {\n      coordSys.update && coordSys.update(ecModel, api);\n    });\n  };\n\n  CoordinateSystemManager.prototype.getCoordinateSystems = function () {\n    return this._coordinateSystems.slice();\n  };\n\n  CoordinateSystemManager.register = function (type, creator) {\n    coordinateSystemCreators[type] = creator;\n  };\n\n  CoordinateSystemManager.get = function (type) {\n    return coordinateSystemCreators[type];\n  };\n\n  return CoordinateSystemManager;\n}();\n\nexport default CoordinateSystemManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { normalizeToArray } from '../util/model';\nimport { each, clone, map, isTypedArray, setAsPrimitive, isArray, isObject } from 'zrender/lib/core/util';\nimport { error } from '../util/log';\nvar QUERY_REG = /^(min|max)?(.+)$/;\n\nvar OptionManager = function () {\n  function OptionManager(api) {\n    this._timelineOptions = [];\n    this._mediaList = [];\n    this._currentMediaIndices = [];\n    this._api = api;\n  }\n\n  OptionManager.prototype.setOption = function (rawOption, optionPreprocessorFuncs, opt) {\n    if (rawOption) {\n      each(normalizeToArray(rawOption.series), function (series) {\n        series && series.data && isTypedArray(series.data) && setAsPrimitive(series.data);\n      });\n      each(normalizeToArray(rawOption.dataset), function (dataset) {\n        dataset && dataset.source && isTypedArray(dataset.source) && setAsPrimitive(dataset.source);\n      });\n    }\n\n    rawOption = clone(rawOption);\n    var optionBackup = this._optionBackup;\n    var newParsedOption = parseRawOption(rawOption, optionPreprocessorFuncs, !optionBackup);\n    this._newBaseOption = newParsedOption.baseOption;\n\n    if (optionBackup) {\n      if (newParsedOption.timelineOptions.length) {\n        optionBackup.timelineOptions = newParsedOption.timelineOptions;\n      }\n\n      if (newParsedOption.mediaList.length) {\n        optionBackup.mediaList = newParsedOption.mediaList;\n      }\n\n      if (newParsedOption.mediaDefault) {\n        optionBackup.mediaDefault = newParsedOption.mediaDefault;\n      }\n    } else {\n      this._optionBackup = newParsedOption;\n    }\n  };\n\n  OptionManager.prototype.mountOption = function (isRecreate) {\n    var optionBackup = this._optionBackup;\n    this._timelineOptions = optionBackup.timelineOptions;\n    this._mediaList = optionBackup.mediaList;\n    this._mediaDefault = optionBackup.mediaDefault;\n    this._currentMediaIndices = [];\n    return clone(isRecreate ? optionBackup.baseOption : this._newBaseOption);\n  };\n\n  OptionManager.prototype.getTimelineOption = function (ecModel) {\n    var option;\n    var timelineOptions = this._timelineOptions;\n\n    if (timelineOptions.length) {\n      var timelineModel = ecModel.getComponent('timeline');\n\n      if (timelineModel) {\n        option = clone(timelineOptions[timelineModel.getCurrentIndex()]);\n      }\n    }\n\n    return option;\n  };\n\n  OptionManager.prototype.getMediaOption = function (ecModel) {\n    var ecWidth = this._api.getWidth();\n\n    var ecHeight = this._api.getHeight();\n\n    var mediaList = this._mediaList;\n    var mediaDefault = this._mediaDefault;\n    var indices = [];\n    var result = [];\n\n    if (!mediaList.length && !mediaDefault) {\n      return result;\n    }\n\n    for (var i = 0, len = mediaList.length; i < len; i++) {\n      if (applyMediaQuery(mediaList[i].query, ecWidth, ecHeight)) {\n        indices.push(i);\n      }\n    }\n\n    if (!indices.length && mediaDefault) {\n      indices = [-1];\n    }\n\n    if (indices.length && !indicesEquals(indices, this._currentMediaIndices)) {\n      result = map(indices, function (index) {\n        return clone(index === -1 ? mediaDefault.option : mediaList[index].option);\n      });\n    }\n\n    this._currentMediaIndices = indices;\n    return result;\n  };\n\n  return OptionManager;\n}();\n\nfunction parseRawOption(rawOption, optionPreprocessorFuncs, isNew) {\n  var mediaList = [];\n  var mediaDefault;\n  var baseOption;\n  var declaredBaseOption = rawOption.baseOption;\n  var timelineOnRoot = rawOption.timeline;\n  var timelineOptionsOnRoot = rawOption.options;\n  var mediaOnRoot = rawOption.media;\n  var hasMedia = !!rawOption.media;\n  var hasTimeline = !!(timelineOptionsOnRoot || timelineOnRoot || declaredBaseOption && declaredBaseOption.timeline);\n\n  if (declaredBaseOption) {\n    baseOption = declaredBaseOption;\n\n    if (!baseOption.timeline) {\n      baseOption.timeline = timelineOnRoot;\n    }\n  } else {\n    if (hasTimeline || hasMedia) {\n      rawOption.options = rawOption.media = null;\n    }\n\n    baseOption = rawOption;\n  }\n\n  if (hasMedia) {\n    if (isArray(mediaOnRoot)) {\n      each(mediaOnRoot, function (singleMedia) {\n        if (process.env.NODE_ENV !== 'production') {\n          if (singleMedia && !singleMedia.option && isObject(singleMedia.query) && isObject(singleMedia.query.option)) {\n            error('Illegal media option. Must be like { media: [ { query: {}, option: {} } ] }');\n          }\n        }\n\n        if (singleMedia && singleMedia.option) {\n          if (singleMedia.query) {\n            mediaList.push(singleMedia);\n          } else if (!mediaDefault) {\n            mediaDefault = singleMedia;\n          }\n        }\n      });\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        error('Illegal media option. Must be an array. Like { media: [ {...}, {...} ] }');\n      }\n    }\n  }\n\n  doPreprocess(baseOption);\n  each(timelineOptionsOnRoot, function (option) {\n    return doPreprocess(option);\n  });\n  each(mediaList, function (media) {\n    return doPreprocess(media.option);\n  });\n\n  function doPreprocess(option) {\n    each(optionPreprocessorFuncs, function (preProcess) {\n      preProcess(option, isNew);\n    });\n  }\n\n  return {\n    baseOption: baseOption,\n    timelineOptions: timelineOptionsOnRoot || [],\n    mediaDefault: mediaDefault,\n    mediaList: mediaList\n  };\n}\n\nfunction applyMediaQuery(query, ecWidth, ecHeight) {\n  var realMap = {\n    width: ecWidth,\n    height: ecHeight,\n    aspectratio: ecWidth / ecHeight\n  };\n  var applicatable = true;\n  each(query, function (value, attr) {\n    var matched = attr.match(QUERY_REG);\n\n    if (!matched || !matched[1] || !matched[2]) {\n      return;\n    }\n\n    var operator = matched[1];\n    var realAttr = matched[2].toLowerCase();\n\n    if (!compare(realMap[realAttr], value, operator)) {\n      applicatable = false;\n    }\n  });\n  return applicatable;\n}\n\nfunction compare(real, expect, operator) {\n  if (operator === 'min') {\n    return real >= expect;\n  } else if (operator === 'max') {\n    return real <= expect;\n  } else {\n    return real === expect;\n  }\n}\n\nfunction indicesEquals(indices1, indices2) {\n  return indices1.join(',') === indices2.join(',');\n}\n\nexport default OptionManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nimport { deprecateLog, deprecateReplaceLog } from '../../util/log';\nvar each = zrUtil.each;\nvar isObject = zrUtil.isObject;\nvar POSSIBLE_STYLES = ['areaStyle', 'lineStyle', 'nodeStyle', 'linkStyle', 'chordStyle', 'label', 'labelLine'];\n\nfunction compatEC2ItemStyle(opt) {\n  var itemStyleOpt = opt && opt.itemStyle;\n\n  if (!itemStyleOpt) {\n    return;\n  }\n\n  for (var i = 0, len = POSSIBLE_STYLES.length; i < len; i++) {\n    var styleName = POSSIBLE_STYLES[i];\n    var normalItemStyleOpt = itemStyleOpt.normal;\n    var emphasisItemStyleOpt = itemStyleOpt.emphasis;\n\n    if (normalItemStyleOpt && normalItemStyleOpt[styleName]) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateReplaceLog(\"itemStyle.normal.\" + styleName, styleName);\n      }\n\n      opt[styleName] = opt[styleName] || {};\n\n      if (!opt[styleName].normal) {\n        opt[styleName].normal = normalItemStyleOpt[styleName];\n      } else {\n        zrUtil.merge(opt[styleName].normal, normalItemStyleOpt[styleName]);\n      }\n\n      normalItemStyleOpt[styleName] = null;\n    }\n\n    if (emphasisItemStyleOpt && emphasisItemStyleOpt[styleName]) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateReplaceLog(\"itemStyle.emphasis.\" + styleName, \"emphasis.\" + styleName);\n      }\n\n      opt[styleName] = opt[styleName] || {};\n\n      if (!opt[styleName].emphasis) {\n        opt[styleName].emphasis = emphasisItemStyleOpt[styleName];\n      } else {\n        zrUtil.merge(opt[styleName].emphasis, emphasisItemStyleOpt[styleName]);\n      }\n\n      emphasisItemStyleOpt[styleName] = null;\n    }\n  }\n}\n\nfunction convertNormalEmphasis(opt, optType, useExtend) {\n  if (opt && opt[optType] && (opt[optType].normal || opt[optType].emphasis)) {\n    var normalOpt = opt[optType].normal;\n    var emphasisOpt = opt[optType].emphasis;\n\n    if (normalOpt) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateLog(\"'normal' hierarchy in \" + optType + \" has been removed since 4.0. All style properties are configured in \" + optType + \" directly now.\");\n      }\n\n      if (useExtend) {\n        opt[optType].normal = opt[optType].emphasis = null;\n        zrUtil.defaults(opt[optType], normalOpt);\n      } else {\n        opt[optType] = normalOpt;\n      }\n    }\n\n    if (emphasisOpt) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateLog(optType + \".emphasis has been changed to emphasis.\" + optType + \" since 4.0\");\n      }\n\n      opt.emphasis = opt.emphasis || {};\n      opt.emphasis[optType] = emphasisOpt;\n\n      if (emphasisOpt.focus) {\n        opt.emphasis.focus = emphasisOpt.focus;\n      }\n\n      if (emphasisOpt.blurScope) {\n        opt.emphasis.blurScope = emphasisOpt.blurScope;\n      }\n    }\n  }\n}\n\nfunction removeEC3NormalStatus(opt) {\n  convertNormalEmphasis(opt, 'itemStyle');\n  convertNormalEmphasis(opt, 'lineStyle');\n  convertNormalEmphasis(opt, 'areaStyle');\n  convertNormalEmphasis(opt, 'label');\n  convertNormalEmphasis(opt, 'labelLine');\n  convertNormalEmphasis(opt, 'upperLabel');\n  convertNormalEmphasis(opt, 'edgeLabel');\n}\n\nfunction compatTextStyle(opt, propName) {\n  var labelOptSingle = isObject(opt) && opt[propName];\n  var textStyle = isObject(labelOptSingle) && labelOptSingle.textStyle;\n\n  if (textStyle) {\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateLog(\"textStyle hierarchy in \" + propName + \" has been removed since 4.0. All textStyle properties are configured in \" + propName + \" directly now.\");\n    }\n\n    for (var i = 0, len = modelUtil.TEXT_STYLE_OPTIONS.length; i < len; i++) {\n      var textPropName = modelUtil.TEXT_STYLE_OPTIONS[i];\n\n      if (textStyle.hasOwnProperty(textPropName)) {\n        labelOptSingle[textPropName] = textStyle[textPropName];\n      }\n    }\n  }\n}\n\nfunction compatEC3CommonStyles(opt) {\n  if (opt) {\n    removeEC3NormalStatus(opt);\n    compatTextStyle(opt, 'label');\n    opt.emphasis && compatTextStyle(opt.emphasis, 'label');\n  }\n}\n\nfunction processSeries(seriesOpt) {\n  if (!isObject(seriesOpt)) {\n    return;\n  }\n\n  compatEC2ItemStyle(seriesOpt);\n  removeEC3NormalStatus(seriesOpt);\n  compatTextStyle(seriesOpt, 'label');\n  compatTextStyle(seriesOpt, 'upperLabel');\n  compatTextStyle(seriesOpt, 'edgeLabel');\n\n  if (seriesOpt.emphasis) {\n    compatTextStyle(seriesOpt.emphasis, 'label');\n    compatTextStyle(seriesOpt.emphasis, 'upperLabel');\n    compatTextStyle(seriesOpt.emphasis, 'edgeLabel');\n  }\n\n  var markPoint = seriesOpt.markPoint;\n\n  if (markPoint) {\n    compatEC2ItemStyle(markPoint);\n    compatEC3CommonStyles(markPoint);\n  }\n\n  var markLine = seriesOpt.markLine;\n\n  if (markLine) {\n    compatEC2ItemStyle(markLine);\n    compatEC3CommonStyles(markLine);\n  }\n\n  var markArea = seriesOpt.markArea;\n\n  if (markArea) {\n    compatEC3CommonStyles(markArea);\n  }\n\n  var data = seriesOpt.data;\n\n  if (seriesOpt.type === 'graph') {\n    data = data || seriesOpt.nodes;\n    var edgeData = seriesOpt.links || seriesOpt.edges;\n\n    if (edgeData && !zrUtil.isTypedArray(edgeData)) {\n      for (var i = 0; i < edgeData.length; i++) {\n        compatEC3CommonStyles(edgeData[i]);\n      }\n    }\n\n    zrUtil.each(seriesOpt.categories, function (opt) {\n      removeEC3NormalStatus(opt);\n    });\n  }\n\n  if (data && !zrUtil.isTypedArray(data)) {\n    for (var i = 0; i < data.length; i++) {\n      compatEC3CommonStyles(data[i]);\n    }\n  }\n\n  markPoint = seriesOpt.markPoint;\n\n  if (markPoint && markPoint.data) {\n    var mpData = markPoint.data;\n\n    for (var i = 0; i < mpData.length; i++) {\n      compatEC3CommonStyles(mpData[i]);\n    }\n  }\n\n  markLine = seriesOpt.markLine;\n\n  if (markLine && markLine.data) {\n    var mlData = markLine.data;\n\n    for (var i = 0; i < mlData.length; i++) {\n      if (zrUtil.isArray(mlData[i])) {\n        compatEC3CommonStyles(mlData[i][0]);\n        compatEC3CommonStyles(mlData[i][1]);\n      } else {\n        compatEC3CommonStyles(mlData[i]);\n      }\n    }\n  }\n\n  if (seriesOpt.type === 'gauge') {\n    compatTextStyle(seriesOpt, 'axisLabel');\n    compatTextStyle(seriesOpt, 'title');\n    compatTextStyle(seriesOpt, 'detail');\n  } else if (seriesOpt.type === 'treemap') {\n    convertNormalEmphasis(seriesOpt.breadcrumb, 'itemStyle');\n    zrUtil.each(seriesOpt.levels, function (opt) {\n      removeEC3NormalStatus(opt);\n    });\n  } else if (seriesOpt.type === 'tree') {\n    removeEC3NormalStatus(seriesOpt.leaves);\n  }\n}\n\nfunction toArr(o) {\n  return zrUtil.isArray(o) ? o : o ? [o] : [];\n}\n\nfunction toObj(o) {\n  return (zrUtil.isArray(o) ? o[0] : o) || {};\n}\n\nexport default function globalCompatStyle(option, isTheme) {\n  each(toArr(option.series), function (seriesOpt) {\n    isObject(seriesOpt) && processSeries(seriesOpt);\n  });\n  var axes = ['xAxis', 'yAxis', 'radiusAxis', 'angleAxis', 'singleAxis', 'parallelAxis', 'radar'];\n  isTheme && axes.push('valueAxis', 'categoryAxis', 'logAxis', 'timeAxis');\n  each(axes, function (axisName) {\n    each(toArr(option[axisName]), function (axisOpt) {\n      if (axisOpt) {\n        compatTextStyle(axisOpt, 'axisLabel');\n        compatTextStyle(axisOpt.axisPointer, 'label');\n      }\n    });\n  });\n  each(toArr(option.parallel), function (parallelOpt) {\n    var parallelAxisDefault = parallelOpt && parallelOpt.parallelAxisDefault;\n    compatTextStyle(parallelAxisDefault, 'axisLabel');\n    compatTextStyle(parallelAxisDefault && parallelAxisDefault.axisPointer, 'label');\n  });\n  each(toArr(option.calendar), function (calendarOpt) {\n    convertNormalEmphasis(calendarOpt, 'itemStyle');\n    compatTextStyle(calendarOpt, 'dayLabel');\n    compatTextStyle(calendarOpt, 'monthLabel');\n    compatTextStyle(calendarOpt, 'yearLabel');\n  });\n  each(toArr(option.radar), function (radarOpt) {\n    compatTextStyle(radarOpt, 'name');\n\n    if (radarOpt.name && radarOpt.axisName == null) {\n      radarOpt.axisName = radarOpt.name;\n      delete radarOpt.name;\n\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateLog('name property in radar component has been changed to axisName');\n      }\n    }\n\n    if (radarOpt.nameGap != null && radarOpt.axisNameGap == null) {\n      radarOpt.axisNameGap = radarOpt.nameGap;\n      delete radarOpt.nameGap;\n\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateLog('nameGap property in radar component has been changed to axisNameGap');\n      }\n    }\n  });\n  each(toArr(option.geo), function (geoOpt) {\n    if (isObject(geoOpt)) {\n      compatEC3CommonStyles(geoOpt);\n      each(toArr(geoOpt.regions), function (regionObj) {\n        compatEC3CommonStyles(regionObj);\n      });\n    }\n  });\n  each(toArr(option.timeline), function (timelineOpt) {\n    compatEC3CommonStyles(timelineOpt);\n    convertNormalEmphasis(timelineOpt, 'label');\n    convertNormalEmphasis(timelineOpt, 'itemStyle');\n    convertNormalEmphasis(timelineOpt, 'controlStyle', true);\n    var data = timelineOpt.data;\n    zrUtil.isArray(data) && zrUtil.each(data, function (item) {\n      if (zrUtil.isObject(item)) {\n        convertNormalEmphasis(item, 'label');\n        convertNormalEmphasis(item, 'itemStyle');\n      }\n    });\n  });\n  each(toArr(option.toolbox), function (toolboxOpt) {\n    convertNormalEmphasis(toolboxOpt, 'iconStyle');\n    each(toolboxOpt.feature, function (featureOpt) {\n      convertNormalEmphasis(featureOpt, 'iconStyle');\n    });\n  });\n  compatTextStyle(toObj(option.axisPointer), 'label');\n  compatTextStyle(toObj(option.tooltip).axisPointer, 'label');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, isArray, isObject, isTypedArray, defaults } from 'zrender/lib/core/util';\nimport compatStyle from './helper/compatStyle';\nimport { normalizeToArray } from '../util/model';\nimport { deprecateLog, deprecateReplaceLog } from '../util/log';\n\nfunction get(opt, path) {\n  var pathArr = path.split(',');\n  var obj = opt;\n\n  for (var i = 0; i < pathArr.length; i++) {\n    obj = obj && obj[pathArr[i]];\n\n    if (obj == null) {\n      break;\n    }\n  }\n\n  return obj;\n}\n\nfunction set(opt, path, val, overwrite) {\n  var pathArr = path.split(',');\n  var obj = opt;\n  var key;\n  var i = 0;\n\n  for (; i < pathArr.length - 1; i++) {\n    key = pathArr[i];\n\n    if (obj[key] == null) {\n      obj[key] = {};\n    }\n\n    obj = obj[key];\n  }\n\n  if (overwrite || obj[pathArr[i]] == null) {\n    obj[pathArr[i]] = val;\n  }\n}\n\nfunction compatLayoutProperties(option) {\n  option && each(LAYOUT_PROPERTIES, function (prop) {\n    if (prop[0] in option && !(prop[1] in option)) {\n      option[prop[1]] = option[prop[0]];\n    }\n  });\n}\n\nvar LAYOUT_PROPERTIES = [['x', 'left'], ['y', 'top'], ['x2', 'right'], ['y2', 'bottom']];\nvar COMPATITABLE_COMPONENTS = ['grid', 'geo', 'parallel', 'legend', 'toolbox', 'title', 'visualMap', 'dataZoom', 'timeline'];\nvar BAR_ITEM_STYLE_MAP = [['borderRadius', 'barBorderRadius'], ['borderColor', 'barBorderColor'], ['borderWidth', 'barBorderWidth']];\n\nfunction compatBarItemStyle(option) {\n  var itemStyle = option && option.itemStyle;\n\n  if (itemStyle) {\n    for (var i = 0; i < BAR_ITEM_STYLE_MAP.length; i++) {\n      var oldName = BAR_ITEM_STYLE_MAP[i][1];\n      var newName = BAR_ITEM_STYLE_MAP[i][0];\n\n      if (itemStyle[oldName] != null) {\n        itemStyle[newName] = itemStyle[oldName];\n\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog(oldName, newName);\n        }\n      }\n    }\n  }\n}\n\nfunction compatPieLabel(option) {\n  if (!option) {\n    return;\n  }\n\n  if (option.alignTo === 'edge' && option.margin != null && option.edgeDistance == null) {\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateReplaceLog('label.margin', 'label.edgeDistance', 'pie');\n    }\n\n    option.edgeDistance = option.margin;\n  }\n}\n\nfunction compatSunburstState(option) {\n  if (!option) {\n    return;\n  }\n\n  if (option.downplay && !option.blur) {\n    option.blur = option.downplay;\n\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateReplaceLog('downplay', 'blur', 'sunburst');\n    }\n  }\n}\n\nfunction compatGraphFocus(option) {\n  if (!option) {\n    return;\n  }\n\n  if (option.focusNodeAdjacency != null) {\n    option.emphasis = option.emphasis || {};\n\n    if (option.emphasis.focus == null) {\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateReplaceLog('focusNodeAdjacency', 'emphasis: { focus: \\'adjacency\\'}', 'graph/sankey');\n      }\n\n      option.emphasis.focus = 'adjacency';\n    }\n  }\n}\n\nfunction traverseTree(data, cb) {\n  if (data) {\n    for (var i = 0; i < data.length; i++) {\n      cb(data[i]);\n      data[i] && traverseTree(data[i].children, cb);\n    }\n  }\n}\n\nexport default function globalBackwardCompat(option, isTheme) {\n  compatStyle(option, isTheme);\n  option.series = normalizeToArray(option.series);\n  each(option.series, function (seriesOpt) {\n    if (!isObject(seriesOpt)) {\n      return;\n    }\n\n    var seriesType = seriesOpt.type;\n\n    if (seriesType === 'line') {\n      if (seriesOpt.clipOverflow != null) {\n        seriesOpt.clip = seriesOpt.clipOverflow;\n\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog('clipOverflow', 'clip', 'line');\n        }\n      }\n    } else if (seriesType === 'pie' || seriesType === 'gauge') {\n      if (seriesOpt.clockWise != null) {\n        seriesOpt.clockwise = seriesOpt.clockWise;\n\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog('clockWise', 'clockwise');\n        }\n      }\n\n      compatPieLabel(seriesOpt.label);\n      var data = seriesOpt.data;\n\n      if (data && !isTypedArray(data)) {\n        for (var i = 0; i < data.length; i++) {\n          compatPieLabel(data[i]);\n        }\n      }\n\n      if (seriesOpt.hoverOffset != null) {\n        seriesOpt.emphasis = seriesOpt.emphasis || {};\n\n        if (seriesOpt.emphasis.scaleSize = null) {\n          if (process.env.NODE_ENV !== 'production') {\n            deprecateReplaceLog('hoverOffset', 'emphasis.scaleSize');\n          }\n\n          seriesOpt.emphasis.scaleSize = seriesOpt.hoverOffset;\n        }\n      }\n    } else if (seriesType === 'gauge') {\n      var pointerColor = get(seriesOpt, 'pointer.color');\n      pointerColor != null && set(seriesOpt, 'itemStyle.color', pointerColor);\n    } else if (seriesType === 'bar') {\n      compatBarItemStyle(seriesOpt);\n      compatBarItemStyle(seriesOpt.backgroundStyle);\n      compatBarItemStyle(seriesOpt.emphasis);\n      var data = seriesOpt.data;\n\n      if (data && !isTypedArray(data)) {\n        for (var i = 0; i < data.length; i++) {\n          if (typeof data[i] === 'object') {\n            compatBarItemStyle(data[i]);\n            compatBarItemStyle(data[i] && data[i].emphasis);\n          }\n        }\n      }\n    } else if (seriesType === 'sunburst') {\n      var highlightPolicy = seriesOpt.highlightPolicy;\n\n      if (highlightPolicy) {\n        seriesOpt.emphasis = seriesOpt.emphasis || {};\n\n        if (!seriesOpt.emphasis.focus) {\n          seriesOpt.emphasis.focus = highlightPolicy;\n\n          if (process.env.NODE_ENV !== 'production') {\n            deprecateReplaceLog('highlightPolicy', 'emphasis.focus', 'sunburst');\n          }\n        }\n      }\n\n      compatSunburstState(seriesOpt);\n      traverseTree(seriesOpt.data, compatSunburstState);\n    } else if (seriesType === 'graph' || seriesType === 'sankey') {\n      compatGraphFocus(seriesOpt);\n    } else if (seriesType === 'map') {\n      if (seriesOpt.mapType && !seriesOpt.map) {\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog('mapType', 'map', 'map');\n        }\n\n        seriesOpt.map = seriesOpt.mapType;\n      }\n\n      if (seriesOpt.mapLocation) {\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateLog('`mapLocation` is not used anymore.');\n        }\n\n        defaults(seriesOpt, seriesOpt.mapLocation);\n      }\n    }\n\n    if (seriesOpt.hoverAnimation != null) {\n      seriesOpt.emphasis = seriesOpt.emphasis || {};\n\n      if (seriesOpt.emphasis && seriesOpt.emphasis.scale == null) {\n        if (process.env.NODE_ENV !== 'production') {\n          deprecateReplaceLog('hoverAnimation', 'emphasis.scale');\n        }\n\n        seriesOpt.emphasis.scale = seriesOpt.hoverAnimation;\n      }\n    }\n\n    compatLayoutProperties(seriesOpt);\n  });\n\n  if (option.dataRange) {\n    option.visualMap = option.dataRange;\n  }\n\n  each(COMPATITABLE_COMPONENTS, function (componentName) {\n    var options = option[componentName];\n\n    if (options) {\n      if (!isArray(options)) {\n        options = [options];\n      }\n\n      each(options, function (option) {\n        compatLayoutProperties(option);\n      });\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, each } from 'zrender/lib/core/util';\nexport default function dataStack(ecModel) {\n  var stackInfoMap = createHashMap();\n  ecModel.eachSeries(function (seriesModel) {\n    var stack = seriesModel.get('stack');\n\n    if (stack) {\n      var stackInfoList = stackInfoMap.get(stack) || stackInfoMap.set(stack, []);\n      var data = seriesModel.getData();\n      var stackInfo = {\n        stackResultDimension: data.getCalculationInfo('stackResultDimension'),\n        stackedOverDimension: data.getCalculationInfo('stackedOverDimension'),\n        stackedDimension: data.getCalculationInfo('stackedDimension'),\n        stackedByDimension: data.getCalculationInfo('stackedByDimension'),\n        isStackedByIndex: data.getCalculationInfo('isStackedByIndex'),\n        data: data,\n        seriesModel: seriesModel\n      };\n\n      if (!stackInfo.stackedDimension || !(stackInfo.isStackedByIndex || stackInfo.stackedByDimension)) {\n        return;\n      }\n\n      stackInfoList.length && data.setCalculationInfo('stackedOnSeries', stackInfoList[stackInfoList.length - 1].seriesModel);\n      stackInfoList.push(stackInfo);\n    }\n  });\n  stackInfoMap.each(calculateStack);\n}\n\nfunction calculateStack(stackInfoList) {\n  each(stackInfoList, function (targetStackInfo, idxInStack) {\n    var resultVal = [];\n    var resultNaN = [NaN, NaN];\n    var dims = [targetStackInfo.stackResultDimension, targetStackInfo.stackedOverDimension];\n    var targetData = targetStackInfo.data;\n    var isStackedByIndex = targetStackInfo.isStackedByIndex;\n    var newData = targetData.map(dims, function (v0, v1, dataIndex) {\n      var sum = targetData.get(targetStackInfo.stackedDimension, dataIndex);\n\n      if (isNaN(sum)) {\n        return resultNaN;\n      }\n\n      var byValue;\n      var stackedDataRawIndex;\n\n      if (isStackedByIndex) {\n        stackedDataRawIndex = targetData.getRawIndex(dataIndex);\n      } else {\n        byValue = targetData.get(targetStackInfo.stackedByDimension, dataIndex);\n      }\n\n      var stackedOver = NaN;\n\n      for (var j = idxInStack - 1; j >= 0; j--) {\n        var stackInfo = stackInfoList[j];\n\n        if (!isStackedByIndex) {\n          stackedDataRawIndex = stackInfo.data.rawIndexOf(stackInfo.stackedByDimension, byValue);\n        }\n\n        if (stackedDataRawIndex >= 0) {\n          var val = stackInfo.data.getByRawIndex(stackInfo.stackResultDimension, stackedDataRawIndex);\n\n          if (sum >= 0 && val > 0 || sum <= 0 && val < 0) {\n            sum += val;\n            stackedOver = val;\n            break;\n          }\n        }\n      }\n\n      resultVal[0] = sum;\n      resultVal[1] = stackedOver;\n      return resultVal;\n    });\n    targetData.hostModel.setData(newData);\n    targetStackInfo.data = newData;\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isTypedArray, clone, createHashMap, isArray, isObject, isArrayLike, hasOwn, assert, each, map, isNumber, isString } from 'zrender/lib/core/util';\nimport { SOURCE_FORMAT_ORIGINAL, SERIES_LAYOUT_BY_COLUMN, SOURCE_FORMAT_UNKNOWN, SOURCE_FORMAT_KEYED_COLUMNS, SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ARRAY_ROWS, SOURCE_FORMAT_OBJECT_ROWS, SERIES_LAYOUT_BY_ROW } from '../util/types';\nimport { getDataItemValue } from '../util/model';\n;\n\nvar SourceImpl = function () {\n  function SourceImpl(fields) {\n    this.data = fields.data || (fields.sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS ? {} : []);\n    this.sourceFormat = fields.sourceFormat || SOURCE_FORMAT_UNKNOWN;\n    this.seriesLayoutBy = fields.seriesLayoutBy || SERIES_LAYOUT_BY_COLUMN;\n    this.startIndex = fields.startIndex || 0;\n    this.dimensionsDefine = fields.dimensionsDefine;\n    this.dimensionsDetectedCount = fields.dimensionsDetectedCount;\n    this.encodeDefine = fields.encodeDefine;\n    this.metaRawOption = fields.metaRawOption;\n  }\n\n  return SourceImpl;\n}();\n\nexport function isSourceInstance(val) {\n  return val instanceof SourceImpl;\n}\nexport function createSource(sourceData, thisMetaRawOption, sourceFormat, encodeDefine) {\n  sourceFormat = sourceFormat || detectSourceFormat(sourceData);\n  var seriesLayoutBy = thisMetaRawOption.seriesLayoutBy;\n  var determined = determineSourceDimensions(sourceData, sourceFormat, seriesLayoutBy, thisMetaRawOption.sourceHeader, thisMetaRawOption.dimensions);\n  var source = new SourceImpl({\n    data: sourceData,\n    sourceFormat: sourceFormat,\n    seriesLayoutBy: seriesLayoutBy,\n    dimensionsDefine: determined.dimensionsDefine,\n    startIndex: determined.startIndex,\n    dimensionsDetectedCount: determined.dimensionsDetectedCount,\n    encodeDefine: makeEncodeDefine(encodeDefine),\n    metaRawOption: clone(thisMetaRawOption)\n  });\n  return source;\n}\nexport function createSourceFromSeriesDataOption(data) {\n  return new SourceImpl({\n    data: data,\n    sourceFormat: isTypedArray(data) ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL\n  });\n}\nexport function cloneSourceShallow(source) {\n  return new SourceImpl({\n    data: source.data,\n    sourceFormat: source.sourceFormat,\n    seriesLayoutBy: source.seriesLayoutBy,\n    dimensionsDefine: clone(source.dimensionsDefine),\n    startIndex: source.startIndex,\n    dimensionsDetectedCount: source.dimensionsDetectedCount,\n    encodeDefine: makeEncodeDefine(source.encodeDefine)\n  });\n}\n\nfunction makeEncodeDefine(encodeDefine) {\n  return encodeDefine ? createHashMap(encodeDefine) : null;\n}\n\nexport function detectSourceFormat(data) {\n  var sourceFormat = SOURCE_FORMAT_UNKNOWN;\n\n  if (isTypedArray(data)) {\n    sourceFormat = SOURCE_FORMAT_TYPED_ARRAY;\n  } else if (isArray(data)) {\n    if (data.length === 0) {\n      sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\n    }\n\n    for (var i = 0, len = data.length; i < len; i++) {\n      var item = data[i];\n\n      if (item == null) {\n        continue;\n      } else if (isArray(item)) {\n        sourceFormat = SOURCE_FORMAT_ARRAY_ROWS;\n        break;\n      } else if (isObject(item)) {\n        sourceFormat = SOURCE_FORMAT_OBJECT_ROWS;\n        break;\n      }\n    }\n  } else if (isObject(data)) {\n    for (var key in data) {\n      if (hasOwn(data, key) && isArrayLike(data[key])) {\n        sourceFormat = SOURCE_FORMAT_KEYED_COLUMNS;\n        break;\n      }\n    }\n  }\n\n  return sourceFormat;\n}\n\nfunction determineSourceDimensions(data, sourceFormat, seriesLayoutBy, sourceHeader, dimensionsDefine) {\n  var dimensionsDetectedCount;\n  var startIndex;\n\n  if (!data) {\n    return {\n      dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\n      startIndex: startIndex,\n      dimensionsDetectedCount: dimensionsDetectedCount\n    };\n  }\n\n  if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n    var dataArrayRows = data;\n\n    if (sourceHeader === 'auto' || sourceHeader == null) {\n      arrayRowsTravelFirst(function (val) {\n        if (val != null && val !== '-') {\n          if (isString(val)) {\n            startIndex == null && (startIndex = 1);\n          } else {\n            startIndex = 0;\n          }\n        }\n      }, seriesLayoutBy, dataArrayRows, 10);\n    } else {\n      startIndex = isNumber(sourceHeader) ? sourceHeader : sourceHeader ? 1 : 0;\n    }\n\n    if (!dimensionsDefine && startIndex === 1) {\n      dimensionsDefine = [];\n      arrayRowsTravelFirst(function (val, index) {\n        dimensionsDefine[index] = val != null ? val + '' : '';\n      }, seriesLayoutBy, dataArrayRows, Infinity);\n    }\n\n    dimensionsDetectedCount = dimensionsDefine ? dimensionsDefine.length : seriesLayoutBy === SERIES_LAYOUT_BY_ROW ? dataArrayRows.length : dataArrayRows[0] ? dataArrayRows[0].length : null;\n  } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n    if (!dimensionsDefine) {\n      dimensionsDefine = objectRowsCollectDimensions(data);\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_KEYED_COLUMNS) {\n    if (!dimensionsDefine) {\n      dimensionsDefine = [];\n      each(data, function (colArr, key) {\n        dimensionsDefine.push(key);\n      });\n    }\n  } else if (sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n    var value0 = getDataItemValue(data[0]);\n    dimensionsDetectedCount = isArray(value0) && value0.length || 1;\n  } else if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!!dimensionsDefine, 'dimensions must be given if data is TypedArray.');\n    }\n  }\n\n  return {\n    startIndex: startIndex,\n    dimensionsDefine: normalizeDimensionsOption(dimensionsDefine),\n    dimensionsDetectedCount: dimensionsDetectedCount\n  };\n}\n\nfunction objectRowsCollectDimensions(data) {\n  var firstIndex = 0;\n  var obj;\n\n  while (firstIndex < data.length && !(obj = data[firstIndex++])) {}\n\n  if (obj) {\n    var dimensions_1 = [];\n    each(obj, function (value, key) {\n      dimensions_1.push(key);\n    });\n    return dimensions_1;\n  }\n}\n\nfunction normalizeDimensionsOption(dimensionsDefine) {\n  if (!dimensionsDefine) {\n    return;\n  }\n\n  var nameMap = createHashMap();\n  return map(dimensionsDefine, function (rawItem, index) {\n    rawItem = isObject(rawItem) ? rawItem : {\n      name: rawItem\n    };\n    var item = {\n      name: rawItem.name,\n      displayName: rawItem.displayName,\n      type: rawItem.type\n    };\n\n    if (item.name == null) {\n      return item;\n    }\n\n    item.name += '';\n\n    if (item.displayName == null) {\n      item.displayName = item.name;\n    }\n\n    var exist = nameMap.get(item.name);\n\n    if (!exist) {\n      nameMap.set(item.name, {\n        count: 1\n      });\n    } else {\n      item.name += '-' + exist.count++;\n    }\n\n    return item;\n  });\n}\n\nfunction arrayRowsTravelFirst(cb, seriesLayoutBy, data, maxLoop) {\n  if (seriesLayoutBy === SERIES_LAYOUT_BY_ROW) {\n    for (var i = 0; i < data.length && i < maxLoop; i++) {\n      cb(data[i] ? data[i][0] : null, i);\n    }\n  } else {\n    var value0 = data[0] || [];\n\n    for (var i = 0; i < value0.length && i < maxLoop; i++) {\n      cb(value0[i], i);\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar _a, _b, _c;\n\nimport { isTypedArray, extend, assert, each, isObject, bind } from 'zrender/lib/core/util';\nimport { getDataItemValue } from '../../util/model';\nimport { createSourceFromSeriesDataOption, isSourceInstance } from '../Source';\nimport { SOURCE_FORMAT_ORIGINAL, SOURCE_FORMAT_OBJECT_ROWS, SOURCE_FORMAT_KEYED_COLUMNS, SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ARRAY_ROWS, SERIES_LAYOUT_BY_COLUMN, SERIES_LAYOUT_BY_ROW } from '../../util/types';\nvar providerMethods;\nvar mountMethods;\n\nvar DefaultDataProvider = function () {\n  function DefaultDataProvider(sourceParam, dimSize) {\n    var source = !isSourceInstance(sourceParam) ? createSourceFromSeriesDataOption(sourceParam) : sourceParam;\n    this._source = source;\n    var data = this._data = source.data;\n\n    if (source.sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n      if (process.env.NODE_ENV !== 'production') {\n        if (dimSize == null) {\n          throw new Error('Typed array data must specify dimension size');\n        }\n      }\n\n      this._offset = 0;\n      this._dimSize = dimSize;\n      this._data = data;\n    }\n\n    mountMethods(this, data, source);\n  }\n\n  DefaultDataProvider.prototype.getSource = function () {\n    return this._source;\n  };\n\n  DefaultDataProvider.prototype.count = function () {\n    return 0;\n  };\n\n  DefaultDataProvider.prototype.getItem = function (idx, out) {\n    return;\n  };\n\n  DefaultDataProvider.prototype.appendData = function (newData) {};\n\n  DefaultDataProvider.prototype.clean = function () {};\n\n  DefaultDataProvider.protoInitialize = function () {\n    var proto = DefaultDataProvider.prototype;\n    proto.pure = false;\n    proto.persistent = true;\n  }();\n\n  DefaultDataProvider.internalField = function () {\n    var _a;\n\n    mountMethods = function (provider, data, source) {\n      var sourceFormat = source.sourceFormat;\n      var seriesLayoutBy = source.seriesLayoutBy;\n      var startIndex = source.startIndex;\n      var dimsDef = source.dimensionsDefine;\n      var methods = providerMethods[getMethodMapKey(sourceFormat, seriesLayoutBy)];\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(methods, 'Invalide sourceFormat: ' + sourceFormat);\n      }\n\n      extend(provider, methods);\n\n      if (sourceFormat === SOURCE_FORMAT_TYPED_ARRAY) {\n        provider.getItem = getItemForTypedArray;\n        provider.count = countForTypedArray;\n        provider.fillStorage = fillStorageForTypedArray;\n      } else {\n        var rawItemGetter = getRawSourceItemGetter(sourceFormat, seriesLayoutBy);\n        provider.getItem = bind(rawItemGetter, null, data, startIndex, dimsDef);\n        var rawCounter = getRawSourceDataCounter(sourceFormat, seriesLayoutBy);\n        provider.count = bind(rawCounter, null, data, startIndex, dimsDef);\n      }\n    };\n\n    var getItemForTypedArray = function (idx, out) {\n      idx = idx - this._offset;\n      out = out || [];\n      var data = this._data;\n      var dimSize = this._dimSize;\n      var offset = dimSize * idx;\n\n      for (var i = 0; i < dimSize; i++) {\n        out[i] = data[offset + i];\n      }\n\n      return out;\n    };\n\n    var fillStorageForTypedArray = function (start, end, storage, extent) {\n      var data = this._data;\n      var dimSize = this._dimSize;\n\n      for (var dim = 0; dim < dimSize; dim++) {\n        var dimExtent = extent[dim];\n        var min = dimExtent[0] == null ? Infinity : dimExtent[0];\n        var max = dimExtent[1] == null ? -Infinity : dimExtent[1];\n        var count = end - start;\n        var arr = storage[dim];\n\n        for (var i = 0; i < count; i++) {\n          var val = data[i * dimSize + dim];\n          arr[start + i] = val;\n          val < min && (min = val);\n          val > max && (max = val);\n        }\n\n        dimExtent[0] = min;\n        dimExtent[1] = max;\n      }\n    };\n\n    var countForTypedArray = function () {\n      return this._data ? this._data.length / this._dimSize : 0;\n    };\n\n    providerMethods = (_a = {}, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = {\n      pure: true,\n      appendData: appendDataSimply\n    }, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = {\n      pure: true,\n      appendData: function () {\n        throw new Error('Do not support appendData when set seriesLayoutBy: \"row\".');\n      }\n    }, _a[SOURCE_FORMAT_OBJECT_ROWS] = {\n      pure: true,\n      appendData: appendDataSimply\n    }, _a[SOURCE_FORMAT_KEYED_COLUMNS] = {\n      pure: true,\n      appendData: function (newData) {\n        var data = this._data;\n        each(newData, function (newCol, key) {\n          var oldCol = data[key] || (data[key] = []);\n\n          for (var i = 0; i < (newCol || []).length; i++) {\n            oldCol.push(newCol[i]);\n          }\n        });\n      }\n    }, _a[SOURCE_FORMAT_ORIGINAL] = {\n      appendData: appendDataSimply\n    }, _a[SOURCE_FORMAT_TYPED_ARRAY] = {\n      persistent: false,\n      pure: true,\n      appendData: function (newData) {\n        if (process.env.NODE_ENV !== 'production') {\n          assert(isTypedArray(newData), 'Added data must be TypedArray if data in initialization is TypedArray');\n        }\n\n        this._data = newData;\n      },\n      clean: function () {\n        this._offset += this.count();\n        this._data = null;\n      }\n    }, _a);\n\n    function appendDataSimply(newData) {\n      for (var i = 0; i < newData.length; i++) {\n        this._data.push(newData[i]);\n      }\n    }\n  }();\n\n  return DefaultDataProvider;\n}();\n\nexport { DefaultDataProvider };\n\nvar getItemSimply = function (rawData, startIndex, dimsDef, idx) {\n  return rawData[idx];\n};\n\nvar rawSourceItemGetterMap = (_a = {}, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef, idx) {\n  return rawData[idx + startIndex];\n}, _a[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef, idx) {\n  idx += startIndex;\n  var item = [];\n  var data = rawData;\n\n  for (var i = 0; i < data.length; i++) {\n    var row = data[i];\n    item.push(row ? row[idx] : null);\n  }\n\n  return item;\n}, _a[SOURCE_FORMAT_OBJECT_ROWS] = getItemSimply, _a[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef, idx) {\n  var item = [];\n\n  for (var i = 0; i < dimsDef.length; i++) {\n    var dimName = dimsDef[i].name;\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (dimName == null) {\n        throw new Error();\n      }\n    }\n\n    var col = rawData[dimName];\n    item.push(col ? col[idx] : null);\n  }\n\n  return item;\n}, _a[SOURCE_FORMAT_ORIGINAL] = getItemSimply, _a);\nexport function getRawSourceItemGetter(sourceFormat, seriesLayoutBy) {\n  var method = rawSourceItemGetterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\n\n  if (process.env.NODE_ENV !== 'production') {\n    assert(method, 'Do not suppport get item on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\n  }\n\n  return method;\n}\n\nvar countSimply = function (rawData, startIndex, dimsDef) {\n  return rawData.length;\n};\n\nvar rawSourceDataCounterMap = (_b = {}, _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_COLUMN] = function (rawData, startIndex, dimsDef) {\n  return Math.max(0, rawData.length - startIndex);\n}, _b[SOURCE_FORMAT_ARRAY_ROWS + '_' + SERIES_LAYOUT_BY_ROW] = function (rawData, startIndex, dimsDef) {\n  var row = rawData[0];\n  return row ? Math.max(0, row.length - startIndex) : 0;\n}, _b[SOURCE_FORMAT_OBJECT_ROWS] = countSimply, _b[SOURCE_FORMAT_KEYED_COLUMNS] = function (rawData, startIndex, dimsDef) {\n  var dimName = dimsDef[0].name;\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (dimName == null) {\n      throw new Error();\n    }\n  }\n\n  var col = rawData[dimName];\n  return col ? col.length : 0;\n}, _b[SOURCE_FORMAT_ORIGINAL] = countSimply, _b);\nexport function getRawSourceDataCounter(sourceFormat, seriesLayoutBy) {\n  var method = rawSourceDataCounterMap[getMethodMapKey(sourceFormat, seriesLayoutBy)];\n\n  if (process.env.NODE_ENV !== 'production') {\n    assert(method, 'Do not suppport count on \"' + sourceFormat + '\", \"' + seriesLayoutBy + '\".');\n  }\n\n  return method;\n}\n\nvar getRawValueSimply = function (dataItem, dimIndex, dimName) {\n  return dimIndex != null ? dataItem[dimIndex] : dataItem;\n};\n\nvar rawSourceValueGetterMap = (_c = {}, _c[SOURCE_FORMAT_ARRAY_ROWS] = getRawValueSimply, _c[SOURCE_FORMAT_OBJECT_ROWS] = function (dataItem, dimIndex, dimName) {\n  return dimIndex != null ? dataItem[dimName] : dataItem;\n}, _c[SOURCE_FORMAT_KEYED_COLUMNS] = getRawValueSimply, _c[SOURCE_FORMAT_ORIGINAL] = function (dataItem, dimIndex, dimName) {\n  var value = getDataItemValue(dataItem);\n  return dimIndex == null || !(value instanceof Array) ? value : value[dimIndex];\n}, _c[SOURCE_FORMAT_TYPED_ARRAY] = getRawValueSimply, _c);\nexport function getRawSourceValueGetter(sourceFormat) {\n  var method = rawSourceValueGetterMap[sourceFormat];\n\n  if (process.env.NODE_ENV !== 'production') {\n    assert(method, 'Do not suppport get value on \"' + sourceFormat + '\".');\n  }\n\n  return method;\n}\n\nfunction getMethodMapKey(sourceFormat, seriesLayoutBy) {\n  return sourceFormat === SOURCE_FORMAT_ARRAY_ROWS ? sourceFormat + '_' + seriesLayoutBy : sourceFormat;\n}\n\nexport function retrieveRawValue(data, dataIndex, dim) {\n  if (!data) {\n    return;\n  }\n\n  var dataItem = data.getRawDataItem(dataIndex);\n\n  if (dataItem == null) {\n    return;\n  }\n\n  var sourceFormat = data.getProvider().getSource().sourceFormat;\n  var dimName;\n  var dimIndex;\n  var dimInfo = data.getDimensionInfo(dim);\n\n  if (dimInfo) {\n    dimName = dimInfo.name;\n    dimIndex = dimInfo.index;\n  }\n\n  return getRawSourceValueGetter(sourceFormat)(dataItem, dimIndex, dimName);\n}\nexport function retrieveRawAttr(data, dataIndex, attr) {\n  if (!data) {\n    return;\n  }\n\n  var sourceFormat = data.getProvider().getSource().sourceFormat;\n\n  if (sourceFormat !== SOURCE_FORMAT_ORIGINAL && sourceFormat !== SOURCE_FORMAT_OBJECT_ROWS) {\n    return;\n  }\n\n  var dataItem = data.getRawDataItem(dataIndex);\n\n  if (sourceFormat === SOURCE_FORMAT_ORIGINAL && !isObject(dataItem)) {\n    dataItem = null;\n  }\n\n  if (dataItem) {\n    return dataItem[attr];\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { retrieveRawValue } from '../../data/helper/dataProvider';\nimport { formatTpl } from '../../util/format';\nimport { makePrintable } from '../../util/log';\nvar DIMENSION_LABEL_REG = /\\{@(.+?)\\}/g;\n\nvar DataFormatMixin = function () {\n  function DataFormatMixin() {}\n\n  DataFormatMixin.prototype.getDataParams = function (dataIndex, dataType) {\n    var data = this.getData(dataType);\n    var rawValue = this.getRawValue(dataIndex, dataType);\n    var rawDataIndex = data.getRawIndex(dataIndex);\n    var name = data.getName(dataIndex);\n    var itemOpt = data.getRawDataItem(dataIndex);\n    var style = data.getItemVisual(dataIndex, 'style');\n    var color = style && style[data.getItemVisual(dataIndex, 'drawType') || 'fill'];\n    var borderColor = style && style.stroke;\n    var mainType = this.mainType;\n    var isSeries = mainType === 'series';\n    var userOutput = data.userOutput;\n    return {\n      componentType: mainType,\n      componentSubType: this.subType,\n      componentIndex: this.componentIndex,\n      seriesType: isSeries ? this.subType : null,\n      seriesIndex: this.seriesIndex,\n      seriesId: isSeries ? this.id : null,\n      seriesName: isSeries ? this.name : null,\n      name: name,\n      dataIndex: rawDataIndex,\n      data: itemOpt,\n      dataType: dataType,\n      value: rawValue,\n      color: color,\n      borderColor: borderColor,\n      dimensionNames: userOutput ? userOutput.dimensionNames : null,\n      encode: userOutput ? userOutput.encode : null,\n      $vars: ['seriesName', 'name', 'value']\n    };\n  };\n\n  DataFormatMixin.prototype.getFormattedLabel = function (dataIndex, status, dataType, labelDimIndex, formatter, extendParams) {\n    status = status || 'normal';\n    var data = this.getData(dataType);\n    var params = this.getDataParams(dataIndex, dataType);\n\n    if (extendParams) {\n      params.value = extendParams.interpolatedValue;\n    }\n\n    if (labelDimIndex != null && zrUtil.isArray(params.value)) {\n      params.value = params.value[labelDimIndex];\n    }\n\n    if (!formatter) {\n      var itemModel = data.getItemModel(dataIndex);\n      formatter = itemModel.get(status === 'normal' ? ['label', 'formatter'] : [status, 'label', 'formatter']);\n    }\n\n    if (typeof formatter === 'function') {\n      params.status = status;\n      params.dimensionIndex = labelDimIndex;\n      return formatter(params);\n    } else if (typeof formatter === 'string') {\n      var str = formatTpl(formatter, params);\n      return str.replace(DIMENSION_LABEL_REG, function (origin, dimStr) {\n        var len = dimStr.length;\n        var dimLoose = dimStr.charAt(0) === '[' && dimStr.charAt(len - 1) === ']' ? +dimStr.slice(1, len - 1) : dimStr;\n        var val = retrieveRawValue(data, dataIndex, dimLoose);\n\n        if (extendParams && zrUtil.isArray(extendParams.interpolatedValue)) {\n          var dimInfo = data.getDimensionInfo(dimLoose);\n\n          if (dimInfo) {\n            val = extendParams.interpolatedValue[dimInfo.index];\n          }\n        }\n\n        return val != null ? val + '' : '';\n      });\n    }\n  };\n\n  DataFormatMixin.prototype.getRawValue = function (idx, dataType) {\n    return retrieveRawValue(this.getData(dataType), idx);\n  };\n\n  DataFormatMixin.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    return;\n  };\n\n  return DataFormatMixin;\n}();\n\nexport { DataFormatMixin };\n;\nexport function normalizeTooltipFormatResult(result) {\n  var markupText;\n  var markupFragment;\n\n  if (zrUtil.isObject(result)) {\n    if (result.type) {\n      markupFragment = result;\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn('The return type of `formatTooltip` is not supported: ' + makePrintable(result));\n      }\n    }\n  } else {\n    markupText = result;\n  }\n\n  return {\n    markupText: markupText,\n    markupFragment: markupFragment\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { assert, isArray } from 'zrender/lib/core/util';\n;\nexport function createTask(define) {\n  return new Task(define);\n}\n\nvar Task = function () {\n  function Task(define) {\n    define = define || {};\n    this._reset = define.reset;\n    this._plan = define.plan;\n    this._count = define.count;\n    this._onDirty = define.onDirty;\n    this._dirty = true;\n  }\n\n  Task.prototype.perform = function (performArgs) {\n    var upTask = this._upstream;\n    var skip = performArgs && performArgs.skip;\n\n    if (this._dirty && upTask) {\n      var context = this.context;\n      context.data = context.outputData = upTask.context.outputData;\n    }\n\n    if (this.__pipeline) {\n      this.__pipeline.currentTask = this;\n    }\n\n    var planResult;\n\n    if (this._plan && !skip) {\n      planResult = this._plan(this.context);\n    }\n\n    var lastModBy = normalizeModBy(this._modBy);\n    var lastModDataCount = this._modDataCount || 0;\n    var modBy = normalizeModBy(performArgs && performArgs.modBy);\n    var modDataCount = performArgs && performArgs.modDataCount || 0;\n\n    if (lastModBy !== modBy || lastModDataCount !== modDataCount) {\n      planResult = 'reset';\n    }\n\n    function normalizeModBy(val) {\n      !(val >= 1) && (val = 1);\n      return val;\n    }\n\n    var forceFirstProgress;\n\n    if (this._dirty || planResult === 'reset') {\n      this._dirty = false;\n      forceFirstProgress = this._doReset(skip);\n    }\n\n    this._modBy = modBy;\n    this._modDataCount = modDataCount;\n    var step = performArgs && performArgs.step;\n\n    if (upTask) {\n      if (process.env.NODE_ENV !== 'production') {\n        assert(upTask._outputDueEnd != null);\n      }\n\n      this._dueEnd = upTask._outputDueEnd;\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        assert(!this._progress || this._count);\n      }\n\n      this._dueEnd = this._count ? this._count(this.context) : Infinity;\n    }\n\n    if (this._progress) {\n      var start = this._dueIndex;\n      var end = Math.min(step != null ? this._dueIndex + step : Infinity, this._dueEnd);\n\n      if (!skip && (forceFirstProgress || start < end)) {\n        var progress = this._progress;\n\n        if (isArray(progress)) {\n          for (var i = 0; i < progress.length; i++) {\n            this._doProgress(progress[i], start, end, modBy, modDataCount);\n          }\n        } else {\n          this._doProgress(progress, start, end, modBy, modDataCount);\n        }\n      }\n\n      this._dueIndex = end;\n      var outputDueEnd = this._settedOutputEnd != null ? this._settedOutputEnd : end;\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(outputDueEnd >= this._outputDueEnd);\n      }\n\n      this._outputDueEnd = outputDueEnd;\n    } else {\n      this._dueIndex = this._outputDueEnd = this._settedOutputEnd != null ? this._settedOutputEnd : this._dueEnd;\n    }\n\n    return this.unfinished();\n  };\n\n  Task.prototype.dirty = function () {\n    this._dirty = true;\n    this._onDirty && this._onDirty(this.context);\n  };\n\n  Task.prototype._doProgress = function (progress, start, end, modBy, modDataCount) {\n    iterator.reset(start, end, modBy, modDataCount);\n    this._callingProgress = progress;\n\n    this._callingProgress({\n      start: start,\n      end: end,\n      count: end - start,\n      next: iterator.next\n    }, this.context);\n  };\n\n  Task.prototype._doReset = function (skip) {\n    this._dueIndex = this._outputDueEnd = this._dueEnd = 0;\n    this._settedOutputEnd = null;\n    var progress;\n    var forceFirstProgress;\n\n    if (!skip && this._reset) {\n      progress = this._reset(this.context);\n\n      if (progress && progress.progress) {\n        forceFirstProgress = progress.forceFirstProgress;\n        progress = progress.progress;\n      }\n\n      if (isArray(progress) && !progress.length) {\n        progress = null;\n      }\n    }\n\n    this._progress = progress;\n    this._modBy = this._modDataCount = null;\n    var downstream = this._downstream;\n    downstream && downstream.dirty();\n    return forceFirstProgress;\n  };\n\n  Task.prototype.unfinished = function () {\n    return this._progress && this._dueIndex < this._dueEnd;\n  };\n\n  Task.prototype.pipe = function (downTask) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(downTask && !downTask._disposed && downTask !== this);\n    }\n\n    if (this._downstream !== downTask || this._dirty) {\n      this._downstream = downTask;\n      downTask._upstream = this;\n      downTask.dirty();\n    }\n  };\n\n  Task.prototype.dispose = function () {\n    if (this._disposed) {\n      return;\n    }\n\n    this._upstream && (this._upstream._downstream = null);\n    this._downstream && (this._downstream._upstream = null);\n    this._dirty = false;\n    this._disposed = true;\n  };\n\n  Task.prototype.getUpstream = function () {\n    return this._upstream;\n  };\n\n  Task.prototype.getDownstream = function () {\n    return this._downstream;\n  };\n\n  Task.prototype.setOutputEnd = function (end) {\n    this._outputDueEnd = this._settedOutputEnd = end;\n  };\n\n  return Task;\n}();\n\nexport { Task };\n\nvar iterator = function () {\n  var end;\n  var current;\n  var modBy;\n  var modDataCount;\n  var winCount;\n  var it = {\n    reset: function (s, e, sStep, sCount) {\n      current = s;\n      end = e;\n      modBy = sStep;\n      modDataCount = sCount;\n      winCount = Math.ceil(modDataCount / modBy);\n      it.next = modBy > 1 && modDataCount > 0 ? modNext : sequentialNext;\n    }\n  };\n  return it;\n\n  function sequentialNext() {\n    return current < end ? current++ : null;\n  }\n\n  function modNext() {\n    var dataIndex = current % winCount * modBy + Math.ceil(current / winCount);\n    var result = current >= end ? null : dataIndex < modDataCount ? dataIndex : current;\n    current++;\n    return result;\n  }\n}();","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parseDate, numericToNumber } from '../../util/number';\nimport { createHashMap, trim, hasOwn } from 'zrender/lib/core/util';\nimport { throwError } from '../../util/log';\nexport function parseDataValue(value, opt) {\n  var dimType = opt && opt.type;\n\n  if (dimType === 'ordinal') {\n    var ordinalMeta = opt && opt.ordinalMeta;\n    return ordinalMeta ? ordinalMeta.parseAndCollect(value) : value;\n  }\n\n  if (dimType === 'time' && typeof value !== 'number' && value != null && value !== '-') {\n    value = +parseDate(value);\n  }\n\n  return value == null || value === '' ? NaN : +value;\n}\n;\nvar valueParserMap = createHashMap({\n  'number': function (val) {\n    return parseFloat(val);\n  },\n  'time': function (val) {\n    return +parseDate(val);\n  },\n  'trim': function (val) {\n    return typeof val === 'string' ? trim(val) : val;\n  }\n});\nexport function getRawValueParser(type) {\n  return valueParserMap.get(type);\n}\nvar ORDER_COMPARISON_OP_MAP = {\n  lt: function (lval, rval) {\n    return lval < rval;\n  },\n  lte: function (lval, rval) {\n    return lval <= rval;\n  },\n  gt: function (lval, rval) {\n    return lval > rval;\n  },\n  gte: function (lval, rval) {\n    return lval >= rval;\n  }\n};\n\nvar FilterOrderComparator = function () {\n  function FilterOrderComparator(op, rval) {\n    if (typeof rval !== 'number') {\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'rvalue of \"<\", \">\", \"<=\", \">=\" can only be number in filter.';\n      }\n\n      throwError(errMsg);\n    }\n\n    this._opFn = ORDER_COMPARISON_OP_MAP[op];\n    this._rvalFloat = numericToNumber(rval);\n  }\n\n  FilterOrderComparator.prototype.evaluate = function (lval) {\n    return typeof lval === 'number' ? this._opFn(lval, this._rvalFloat) : this._opFn(numericToNumber(lval), this._rvalFloat);\n  };\n\n  return FilterOrderComparator;\n}();\n\nvar SortOrderComparator = function () {\n  function SortOrderComparator(order, incomparable) {\n    var isDesc = order === 'desc';\n    this._resultLT = isDesc ? 1 : -1;\n\n    if (incomparable == null) {\n      incomparable = isDesc ? 'min' : 'max';\n    }\n\n    this._incomparable = incomparable === 'min' ? -Infinity : Infinity;\n  }\n\n  SortOrderComparator.prototype.evaluate = function (lval, rval) {\n    var lvalTypeof = typeof lval;\n    var rvalTypeof = typeof rval;\n    var lvalFloat = lvalTypeof === 'number' ? lval : numericToNumber(lval);\n    var rvalFloat = rvalTypeof === 'number' ? rval : numericToNumber(rval);\n    var lvalNotNumeric = isNaN(lvalFloat);\n    var rvalNotNumeric = isNaN(rvalFloat);\n\n    if (lvalNotNumeric) {\n      lvalFloat = this._incomparable;\n    }\n\n    if (rvalNotNumeric) {\n      rvalFloat = this._incomparable;\n    }\n\n    if (lvalNotNumeric && rvalNotNumeric) {\n      var lvalIsStr = lvalTypeof === 'string';\n      var rvalIsStr = rvalTypeof === 'string';\n\n      if (lvalIsStr) {\n        lvalFloat = rvalIsStr ? lval : 0;\n      }\n\n      if (rvalIsStr) {\n        rvalFloat = lvalIsStr ? rval : 0;\n      }\n    }\n\n    return lvalFloat < rvalFloat ? this._resultLT : lvalFloat > rvalFloat ? -this._resultLT : 0;\n  };\n\n  return SortOrderComparator;\n}();\n\nexport { SortOrderComparator };\n\nvar FilterEqualityComparator = function () {\n  function FilterEqualityComparator(isEq, rval) {\n    this._rval = rval;\n    this._isEQ = isEq;\n    this._rvalTypeof = typeof rval;\n    this._rvalFloat = numericToNumber(rval);\n  }\n\n  FilterEqualityComparator.prototype.evaluate = function (lval) {\n    var eqResult = lval === this._rval;\n\n    if (!eqResult) {\n      var lvalTypeof = typeof lval;\n\n      if (lvalTypeof !== this._rvalTypeof && (lvalTypeof === 'number' || this._rvalTypeof === 'number')) {\n        eqResult = numericToNumber(lval) === this._rvalFloat;\n      }\n    }\n\n    return this._isEQ ? eqResult : !eqResult;\n  };\n\n  return FilterEqualityComparator;\n}();\n\nexport function createFilterComparator(op, rval) {\n  return op === 'eq' || op === 'ne' ? new FilterEqualityComparator(op === 'eq', rval) : hasOwn(ORDER_COMPARISON_OP_MAP, op) ? new FilterOrderComparator(op, rval) : null;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { SERIES_LAYOUT_BY_COLUMN, SOURCE_FORMAT_OBJECT_ROWS, SOURCE_FORMAT_ARRAY_ROWS } from '../../util/types';\nimport { normalizeToArray } from '../../util/model';\nimport { createHashMap, bind, each, hasOwn, map, clone, isObject, extend } from 'zrender/lib/core/util';\nimport { getRawSourceItemGetter, getRawSourceDataCounter, getRawSourceValueGetter } from './dataProvider';\nimport { parseDataValue } from './dataValueHelper';\nimport { consoleLog, makePrintable, throwError } from '../../util/log';\nimport { createSource, detectSourceFormat } from '../Source';\n\nvar ExternalSource = function () {\n  function ExternalSource() {}\n\n  ExternalSource.prototype.getRawData = function () {\n    throw new Error('not supported');\n  };\n\n  ExternalSource.prototype.getRawDataItem = function (dataIndex) {\n    throw new Error('not supported');\n  };\n\n  ExternalSource.prototype.cloneRawData = function () {\n    return;\n  };\n\n  ExternalSource.prototype.getDimensionInfo = function (dim) {\n    return;\n  };\n\n  ExternalSource.prototype.cloneAllDimensionInfo = function () {\n    return;\n  };\n\n  ExternalSource.prototype.count = function () {\n    return;\n  };\n\n  ExternalSource.prototype.retrieveValue = function (dataIndex, dimIndex) {\n    return;\n  };\n\n  ExternalSource.prototype.retrieveValueFromItem = function (dataItem, dimIndex) {\n    return;\n  };\n\n  ExternalSource.prototype.convertValue = function (rawVal, dimInfo) {\n    return parseDataValue(rawVal, dimInfo);\n  };\n\n  return ExternalSource;\n}();\n\nexport { ExternalSource };\n\nfunction createExternalSource(internalSource, externalTransform) {\n  var extSource = new ExternalSource();\n  var data = internalSource.data;\n  var sourceFormat = extSource.sourceFormat = internalSource.sourceFormat;\n  var sourceHeaderCount = internalSource.startIndex;\n  var errMsg = '';\n\n  if (internalSource.seriesLayoutBy !== SERIES_LAYOUT_BY_COLUMN) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = '`seriesLayoutBy` of upstream dataset can only be \"column\" in data transform.';\n    }\n\n    throwError(errMsg);\n  }\n\n  var dimensions = [];\n  var dimsByName = {};\n  var dimsDef = internalSource.dimensionsDefine;\n\n  if (dimsDef) {\n    each(dimsDef, function (dimDef, idx) {\n      var name = dimDef.name;\n      var dimDefExt = {\n        index: idx,\n        name: name,\n        displayName: dimDef.displayName\n      };\n      dimensions.push(dimDefExt);\n\n      if (name != null) {\n        var errMsg_1 = '';\n\n        if (hasOwn(dimsByName, name)) {\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg_1 = 'dimension name \"' + name + '\" duplicated.';\n          }\n\n          throwError(errMsg_1);\n        }\n\n        dimsByName[name] = dimDefExt;\n      }\n    });\n  } else {\n    for (var i = 0; i < internalSource.dimensionsDetectedCount || 0; i++) {\n      dimensions.push({\n        index: i\n      });\n    }\n  }\n\n  var rawItemGetter = getRawSourceItemGetter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\n\n  if (externalTransform.__isBuiltIn) {\n    extSource.getRawDataItem = function (dataIndex) {\n      return rawItemGetter(data, sourceHeaderCount, dimensions, dataIndex);\n    };\n\n    extSource.getRawData = bind(getRawData, null, internalSource);\n  }\n\n  extSource.cloneRawData = bind(cloneRawData, null, internalSource);\n  var rawCounter = getRawSourceDataCounter(sourceFormat, SERIES_LAYOUT_BY_COLUMN);\n  extSource.count = bind(rawCounter, null, data, sourceHeaderCount, dimensions);\n  var rawValueGetter = getRawSourceValueGetter(sourceFormat);\n\n  extSource.retrieveValue = function (dataIndex, dimIndex) {\n    var rawItem = rawItemGetter(data, sourceHeaderCount, dimensions, dataIndex);\n    return retrieveValueFromItem(rawItem, dimIndex);\n  };\n\n  var retrieveValueFromItem = extSource.retrieveValueFromItem = function (dataItem, dimIndex) {\n    if (dataItem == null) {\n      return;\n    }\n\n    var dimDef = dimensions[dimIndex];\n\n    if (dimDef) {\n      return rawValueGetter(dataItem, dimIndex, dimDef.name);\n    }\n  };\n\n  extSource.getDimensionInfo = bind(getDimensionInfo, null, dimensions, dimsByName);\n  extSource.cloneAllDimensionInfo = bind(cloneAllDimensionInfo, null, dimensions);\n  return extSource;\n}\n\nfunction getRawData(upstream) {\n  var sourceFormat = upstream.sourceFormat;\n\n  if (!isSupportedSourceFormat(sourceFormat)) {\n    var errMsg = '';\n\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = '`getRawData` is not supported in source format ' + sourceFormat;\n    }\n\n    throwError(errMsg);\n  }\n\n  return upstream.data;\n}\n\nfunction cloneRawData(upstream) {\n  var sourceFormat = upstream.sourceFormat;\n  var data = upstream.data;\n\n  if (!isSupportedSourceFormat(sourceFormat)) {\n    var errMsg = '';\n\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = '`cloneRawData` is not supported in source format ' + sourceFormat;\n    }\n\n    throwError(errMsg);\n  }\n\n  if (sourceFormat === SOURCE_FORMAT_ARRAY_ROWS) {\n    var result = [];\n\n    for (var i = 0, len = data.length; i < len; i++) {\n      result.push(data[i].slice());\n    }\n\n    return result;\n  } else if (sourceFormat === SOURCE_FORMAT_OBJECT_ROWS) {\n    var result = [];\n\n    for (var i = 0, len = data.length; i < len; i++) {\n      result.push(extend({}, data[i]));\n    }\n\n    return result;\n  }\n}\n\nfunction getDimensionInfo(dimensions, dimsByName, dim) {\n  if (dim == null) {\n    return;\n  }\n\n  if (typeof dim === 'number' || !isNaN(dim) && !hasOwn(dimsByName, dim)) {\n    return dimensions[dim];\n  } else if (hasOwn(dimsByName, dim)) {\n    return dimsByName[dim];\n  }\n}\n\nfunction cloneAllDimensionInfo(dimensions) {\n  return clone(dimensions);\n}\n\nvar externalTransformMap = createHashMap();\nexport function registerExternalTransform(externalTransform) {\n  externalTransform = clone(externalTransform);\n  var type = externalTransform.type;\n  var errMsg = '';\n\n  if (!type) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'Must have a `type` when `registerTransform`.';\n    }\n\n    throwError(errMsg);\n  }\n\n  var typeParsed = type.split(':');\n\n  if (typeParsed.length !== 2) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'Name must include namespace like \"ns:regression\".';\n    }\n\n    throwError(errMsg);\n  }\n\n  var isBuiltIn = false;\n\n  if (typeParsed[0] === 'echarts') {\n    type = typeParsed[1];\n    isBuiltIn = true;\n  }\n\n  externalTransform.__isBuiltIn = isBuiltIn;\n  externalTransformMap.set(type, externalTransform);\n}\nexport function applyDataTransform(rawTransOption, sourceList, infoForPrint) {\n  var pipedTransOption = normalizeToArray(rawTransOption);\n  var pipeLen = pipedTransOption.length;\n  var errMsg = '';\n\n  if (!pipeLen) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'If `transform` declared, it should at least contain one transform.';\n    }\n\n    throwError(errMsg);\n  }\n\n  for (var i = 0, len = pipeLen; i < len; i++) {\n    var transOption = pipedTransOption[i];\n    sourceList = applySingleDataTransform(transOption, sourceList, infoForPrint, pipeLen === 1 ? null : i);\n\n    if (i !== len - 1) {\n      sourceList.length = Math.max(sourceList.length, 1);\n    }\n  }\n\n  return sourceList;\n}\n\nfunction applySingleDataTransform(transOption, upSourceList, infoForPrint, pipeIndex) {\n  var errMsg = '';\n\n  if (!upSourceList.length) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'Must have at least one upstream dataset.';\n    }\n\n    throwError(errMsg);\n  }\n\n  if (!isObject(transOption)) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'transform declaration must be an object rather than ' + typeof transOption + '.';\n    }\n\n    throwError(errMsg);\n  }\n\n  var transType = transOption.type;\n  var externalTransform = externalTransformMap.get(transType);\n\n  if (!externalTransform) {\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = 'Can not find transform on type \"' + transType + '\".';\n    }\n\n    throwError(errMsg);\n  }\n\n  var extUpSourceList = map(upSourceList, function (upSource) {\n    return createExternalSource(upSource, externalTransform);\n  });\n  var resultList = normalizeToArray(externalTransform.transform({\n    upstream: extUpSourceList[0],\n    upstreamList: extUpSourceList,\n    config: clone(transOption.config)\n  }));\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (transOption.print) {\n      var printStrArr = map(resultList, function (extSource) {\n        var pipeIndexStr = pipeIndex != null ? ' === pipe index: ' + pipeIndex : '';\n        return ['=== dataset index: ' + infoForPrint.datasetIndex + pipeIndexStr + ' ===', '- transform result data:', makePrintable(extSource.data), '- transform result dimensions:', makePrintable(extSource.dimensions)].join('\\n');\n      }).join('\\n');\n      consoleLog(printStrArr);\n    }\n  }\n\n  return map(resultList, function (result, resultIndex) {\n    var errMsg = '';\n\n    if (!isObject(result)) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'A transform should not return some empty results.';\n      }\n\n      throwError(errMsg);\n    }\n\n    if (!result.data) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'Transform result data should be not be null or undefined';\n      }\n\n      throwError(errMsg);\n    }\n\n    var sourceFormat = detectSourceFormat(result.data);\n\n    if (!isSupportedSourceFormat(sourceFormat)) {\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = 'Transform result data should be array rows or object rows.';\n      }\n\n      throwError(errMsg);\n    }\n\n    var resultMetaRawOption;\n    var firstUpSource = upSourceList[0];\n\n    if (firstUpSource && resultIndex === 0 && !result.dimensions) {\n      var startIndex = firstUpSource.startIndex;\n\n      if (startIndex) {\n        result.data = firstUpSource.data.slice(0, startIndex).concat(result.data);\n      }\n\n      resultMetaRawOption = {\n        seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN,\n        sourceHeader: startIndex,\n        dimensions: firstUpSource.metaRawOption.dimensions\n      };\n    } else {\n      resultMetaRawOption = {\n        seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN,\n        sourceHeader: 0,\n        dimensions: result.dimensions\n      };\n    }\n\n    return createSource(result.data, resultMetaRawOption, null, null);\n  });\n}\n\nfunction isSupportedSourceFormat(sourceFormat) {\n  return sourceFormat === SOURCE_FORMAT_ARRAY_ROWS || sourceFormat === SOURCE_FORMAT_OBJECT_ROWS;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { setAsPrimitive, map, isTypedArray, assert, each, retrieve2 } from 'zrender/lib/core/util';\nimport { createSource, cloneSourceShallow } from '../Source';\nimport { SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ORIGINAL } from '../../util/types';\nimport { querySeriesUpstreamDatasetModel, queryDatasetUpstreamDatasetModels } from './sourceHelper';\nimport { applyDataTransform } from './transform';\n\nvar SourceManager = function () {\n  function SourceManager(sourceHost) {\n    this._sourceList = [];\n    this._upstreamSignList = [];\n    this._versionSignBase = 0;\n    this._sourceHost = sourceHost;\n  }\n\n  SourceManager.prototype.dirty = function () {\n    this._setLocalSource([], []);\n  };\n\n  SourceManager.prototype._setLocalSource = function (sourceList, upstreamSignList) {\n    this._sourceList = sourceList;\n    this._upstreamSignList = upstreamSignList;\n    this._versionSignBase++;\n\n    if (this._versionSignBase > 9e10) {\n      this._versionSignBase = 0;\n    }\n  };\n\n  SourceManager.prototype._getVersionSign = function () {\n    return this._sourceHost.uid + '_' + this._versionSignBase;\n  };\n\n  SourceManager.prototype.prepareSource = function () {\n    if (this._isDirty()) {\n      this._createSource();\n    }\n  };\n\n  SourceManager.prototype._createSource = function () {\n    this._setLocalSource([], []);\n\n    var sourceHost = this._sourceHost;\n\n    var upSourceMgrList = this._getUpstreamSourceManagers();\n\n    var hasUpstream = !!upSourceMgrList.length;\n    var resultSourceList;\n    var upstreamSignList;\n\n    if (isSeries(sourceHost)) {\n      var seriesModel = sourceHost;\n      var data = void 0;\n      var sourceFormat = void 0;\n      var upSource = void 0;\n\n      if (hasUpstream) {\n        var upSourceMgr = upSourceMgrList[0];\n        upSourceMgr.prepareSource();\n        upSource = upSourceMgr.getSource();\n        data = upSource.data;\n        sourceFormat = upSource.sourceFormat;\n        upstreamSignList = [upSourceMgr._getVersionSign()];\n      } else {\n        data = seriesModel.get('data', true);\n        sourceFormat = isTypedArray(data) ? SOURCE_FORMAT_TYPED_ARRAY : SOURCE_FORMAT_ORIGINAL;\n        upstreamSignList = [];\n      }\n\n      var newMetaRawOption = this._getSourceMetaRawOption();\n\n      var upMetaRawOption = upSource ? upSource.metaRawOption : null;\n      var seriesLayoutBy = retrieve2(newMetaRawOption.seriesLayoutBy, upMetaRawOption ? upMetaRawOption.seriesLayoutBy : null);\n      var sourceHeader = retrieve2(newMetaRawOption.sourceHeader, upMetaRawOption ? upMetaRawOption.sourceHeader : null);\n      var dimensions = retrieve2(newMetaRawOption.dimensions, upMetaRawOption ? upMetaRawOption.dimensions : null);\n      resultSourceList = [createSource(data, {\n        seriesLayoutBy: seriesLayoutBy,\n        sourceHeader: sourceHeader,\n        dimensions: dimensions\n      }, sourceFormat, seriesModel.get('encode', true))];\n    } else {\n      var datasetModel = sourceHost;\n\n      if (hasUpstream) {\n        var result = this._applyTransform(upSourceMgrList);\n\n        resultSourceList = result.sourceList;\n        upstreamSignList = result.upstreamSignList;\n      } else {\n        var sourceData = datasetModel.get('source', true);\n        resultSourceList = [createSource(sourceData, this._getSourceMetaRawOption(), null, null)];\n        upstreamSignList = [];\n      }\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(resultSourceList && upstreamSignList);\n    }\n\n    this._setLocalSource(resultSourceList, upstreamSignList);\n  };\n\n  SourceManager.prototype._applyTransform = function (upMgrList) {\n    var datasetModel = this._sourceHost;\n    var transformOption = datasetModel.get('transform', true);\n    var fromTransformResult = datasetModel.get('fromTransformResult', true);\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(fromTransformResult != null || transformOption != null);\n    }\n\n    if (fromTransformResult != null) {\n      var errMsg = '';\n\n      if (upMgrList.length !== 1) {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = 'When using `fromTransformResult`, there should be only one upstream dataset';\n        }\n\n        doThrow(errMsg);\n      }\n    }\n\n    var sourceList;\n    var upSourceList = [];\n    var upstreamSignList = [];\n    each(upMgrList, function (upMgr) {\n      upMgr.prepareSource();\n      var upSource = upMgr.getSource(fromTransformResult || 0);\n      var errMsg = '';\n\n      if (fromTransformResult != null && !upSource) {\n        if (process.env.NODE_ENV !== 'production') {\n          errMsg = 'Can not retrieve result by `fromTransformResult`: ' + fromTransformResult;\n        }\n\n        doThrow(errMsg);\n      }\n\n      upSourceList.push(upSource);\n      upstreamSignList.push(upMgr._getVersionSign());\n    });\n\n    if (transformOption) {\n      sourceList = applyDataTransform(transformOption, upSourceList, {\n        datasetIndex: datasetModel.componentIndex\n      });\n    } else if (fromTransformResult != null) {\n      sourceList = [cloneSourceShallow(upSourceList[0])];\n    }\n\n    return {\n      sourceList: sourceList,\n      upstreamSignList: upstreamSignList\n    };\n  };\n\n  SourceManager.prototype._isDirty = function () {\n    var sourceList = this._sourceList;\n\n    if (!sourceList.length) {\n      return true;\n    }\n\n    var upSourceMgrList = this._getUpstreamSourceManagers();\n\n    for (var i = 0; i < upSourceMgrList.length; i++) {\n      var upSrcMgr = upSourceMgrList[i];\n\n      if (upSrcMgr._isDirty() || this._upstreamSignList[i] !== upSrcMgr._getVersionSign()) {\n        return true;\n      }\n    }\n  };\n\n  SourceManager.prototype.getSource = function (sourceIndex) {\n    return this._sourceList[sourceIndex || 0];\n  };\n\n  SourceManager.prototype._getUpstreamSourceManagers = function () {\n    var sourceHost = this._sourceHost;\n\n    if (isSeries(sourceHost)) {\n      var datasetModel = querySeriesUpstreamDatasetModel(sourceHost);\n      return !datasetModel ? [] : [datasetModel.getSourceManager()];\n    } else {\n      return map(queryDatasetUpstreamDatasetModels(sourceHost), function (datasetModel) {\n        return datasetModel.getSourceManager();\n      });\n    }\n  };\n\n  SourceManager.prototype._getSourceMetaRawOption = function () {\n    var sourceHost = this._sourceHost;\n    var seriesLayoutBy;\n    var sourceHeader;\n    var dimensions;\n\n    if (isSeries(sourceHost)) {\n      seriesLayoutBy = sourceHost.get('seriesLayoutBy', true);\n      sourceHeader = sourceHost.get('sourceHeader', true);\n      dimensions = sourceHost.get('dimensions', true);\n    } else if (!this._getUpstreamSourceManagers().length) {\n      var model = sourceHost;\n      seriesLayoutBy = model.get('seriesLayoutBy', true);\n      sourceHeader = model.get('sourceHeader', true);\n      dimensions = model.get('dimensions', true);\n    }\n\n    return {\n      seriesLayoutBy: seriesLayoutBy,\n      sourceHeader: sourceHeader,\n      dimensions: dimensions\n    };\n  };\n\n  return SourceManager;\n}();\n\nexport { SourceManager };\nexport function disableTransformOptionMerge(datasetModel) {\n  var transformOption = datasetModel.option.transform;\n  transformOption && setAsPrimitive(datasetModel.option.transform);\n}\n\nfunction isSeries(sourceHost) {\n  return sourceHost.mainType === 'series';\n}\n\nfunction doThrow(errMsg) {\n  throw new Error(errMsg);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { getTooltipMarker, encodeHTML, makeValueReadable, convertToColorString } from '../../util/format';\nimport { isString, each, hasOwn, isArray, map, assert, extend } from 'zrender/lib/core/util';\nimport { SortOrderComparator } from '../../data/helper/dataValueHelper';\nimport { getRandomIdBase } from '../../util/number';\nvar TOOLTIP_LINE_HEIGHT_CSS = 'line-height:1';\n\nfunction getTooltipTextStyle(textStyle, renderMode) {\n  var nameFontColor = textStyle.color || '#6e7079';\n  var nameFontSize = textStyle.fontSize || 12;\n  var nameFontWeight = textStyle.fontWeight || '400';\n  var valueFontColor = textStyle.color || '#464646';\n  var valueFontSize = textStyle.fontSize || 14;\n  var valueFontWeight = textStyle.fontWeight || '900';\n\n  if (renderMode === 'html') {\n    return {\n      nameStyle: \"font-size:\" + nameFontSize + \"px;color:\" + nameFontColor + \";font-weight:\" + nameFontWeight,\n      valueStyle: \"font-size:\" + valueFontSize + \"px;color:\" + valueFontColor + \";font-weight:\" + valueFontWeight\n    };\n  } else {\n    return {\n      nameStyle: {\n        fontSize: nameFontSize,\n        fill: nameFontColor,\n        fontWeight: nameFontWeight\n      },\n      valueStyle: {\n        fontSize: valueFontSize,\n        fill: valueFontColor,\n        fontWeight: valueFontWeight\n      }\n    };\n  }\n}\n\nvar HTML_GAPS = [0, 10, 20, 30];\nvar RICH_TEXT_GAPS = ['', '\\n', '\\n\\n', '\\n\\n\\n'];\nexport function createTooltipMarkup(type, option) {\n  option.type = type;\n  return option;\n}\n\nfunction getBuilder(fragment) {\n  return hasOwn(builderMap, fragment.type) && builderMap[fragment.type];\n}\n\nvar builderMap = {\n  section: {\n    planLayout: function (fragment) {\n      var subBlockLen = fragment.blocks.length;\n      var thisBlockHasInnerGap = subBlockLen > 1 || subBlockLen > 0 && !fragment.noHeader;\n      var thisGapLevelBetweenSubBlocks = 0;\n      each(fragment.blocks, function (subBlock) {\n        getBuilder(subBlock).planLayout(subBlock);\n        var subGapLevel = subBlock.__gapLevelBetweenSubBlocks;\n\n        if (subGapLevel >= thisGapLevelBetweenSubBlocks) {\n          thisGapLevelBetweenSubBlocks = subGapLevel + (thisBlockHasInnerGap && (!subGapLevel || subBlock.type === 'section' && !subBlock.noHeader) ? 1 : 0);\n        }\n      });\n      fragment.__gapLevelBetweenSubBlocks = thisGapLevelBetweenSubBlocks;\n    },\n    build: function (ctx, fragment, topMarginForOuterGap, toolTipTextStyle) {\n      var noHeader = fragment.noHeader;\n      var gaps = getGap(fragment);\n      var subMarkupText = buildSubBlocks(ctx, fragment, noHeader ? topMarginForOuterGap : gaps.html, toolTipTextStyle);\n\n      if (noHeader) {\n        return subMarkupText;\n      }\n\n      var displayableHeader = makeValueReadable(fragment.header, 'ordinal', ctx.useUTC);\n      var nameStyle = getTooltipTextStyle(toolTipTextStyle, ctx.renderMode).nameStyle;\n\n      if (ctx.renderMode === 'richText') {\n        return wrapInlineNameRichText(ctx, displayableHeader, nameStyle) + gaps.richText + subMarkupText;\n      } else {\n        return wrapBlockHTML(\"<div style=\\\"\" + nameStyle + \";\" + TOOLTIP_LINE_HEIGHT_CSS + \";\\\">\" + encodeHTML(displayableHeader) + '</div>' + subMarkupText, topMarginForOuterGap);\n      }\n    }\n  },\n  nameValue: {\n    planLayout: function (fragment) {\n      fragment.__gapLevelBetweenSubBlocks = 0;\n    },\n    build: function (ctx, fragment, topMarginForOuterGap, toolTipTextStyle) {\n      var renderMode = ctx.renderMode;\n      var noName = fragment.noName;\n      var noValue = fragment.noValue;\n      var noMarker = !fragment.markerType;\n      var name = fragment.name;\n      var value = fragment.value;\n      var useUTC = ctx.useUTC;\n\n      if (noName && noValue) {\n        return;\n      }\n\n      var markerStr = noMarker ? '' : ctx.markupStyleCreator.makeTooltipMarker(fragment.markerType, fragment.markerColor || '#333', renderMode);\n      var readableName = noName ? '' : makeValueReadable(name, 'ordinal', useUTC);\n      var valueTypeOption = fragment.valueType;\n      var readableValueList = noValue ? [] : isArray(value) ? map(value, function (val, idx) {\n        return makeValueReadable(val, isArray(valueTypeOption) ? valueTypeOption[idx] : valueTypeOption, useUTC);\n      }) : [makeValueReadable(value, isArray(valueTypeOption) ? valueTypeOption[0] : valueTypeOption, useUTC)];\n      var valueAlignRight = !noMarker || !noName;\n      var valueCloseToMarker = !noMarker && noName;\n\n      var _a = getTooltipTextStyle(toolTipTextStyle, renderMode),\n          nameStyle = _a.nameStyle,\n          valueStyle = _a.valueStyle;\n\n      return renderMode === 'richText' ? (noMarker ? '' : markerStr) + (noName ? '' : wrapInlineNameRichText(ctx, readableName, nameStyle)) + (noValue ? '' : wrapInlineValueRichText(ctx, readableValueList, valueAlignRight, valueCloseToMarker, valueStyle)) : wrapBlockHTML((noMarker ? '' : markerStr) + (noName ? '' : wrapInlineNameHTML(readableName, !noMarker, nameStyle)) + (noValue ? '' : wrapInlineValueHTML(readableValueList, valueAlignRight, valueCloseToMarker, valueStyle)), topMarginForOuterGap);\n    }\n  }\n};\n\nfunction buildSubBlocks(ctx, fragment, topMarginForOuterGap, tooltipTextStyle) {\n  var subMarkupTextList = [];\n  var subBlocks = fragment.blocks || [];\n  assert(!subBlocks || isArray(subBlocks));\n  subBlocks = subBlocks || [];\n  var orderMode = ctx.orderMode;\n\n  if (fragment.sortBlocks && orderMode) {\n    subBlocks = subBlocks.slice();\n    var orderMap = {\n      valueAsc: 'asc',\n      valueDesc: 'desc'\n    };\n\n    if (hasOwn(orderMap, orderMode)) {\n      var comparator_1 = new SortOrderComparator(orderMap[orderMode], null);\n      subBlocks.sort(function (a, b) {\n        return comparator_1.evaluate(a.sortParam, b.sortParam);\n      });\n    } else if (orderMode === 'seriesDesc') {\n      subBlocks.reverse();\n    }\n  }\n\n  var gaps = getGap(fragment);\n  each(subBlocks, function (subBlock, idx) {\n    var subMarkupText = getBuilder(subBlock).build(ctx, subBlock, idx > 0 ? gaps.html : 0, tooltipTextStyle);\n    subMarkupText != null && subMarkupTextList.push(subMarkupText);\n  });\n\n  if (!subMarkupTextList.length) {\n    return;\n  }\n\n  return ctx.renderMode === 'richText' ? subMarkupTextList.join(gaps.richText) : wrapBlockHTML(subMarkupTextList.join(''), topMarginForOuterGap);\n}\n\nexport function buildTooltipMarkup(fragment, markupStyleCreator, renderMode, orderMode, useUTC, toolTipTextStyle) {\n  if (!fragment) {\n    return;\n  }\n\n  var builder = getBuilder(fragment);\n  builder.planLayout(fragment);\n  var ctx = {\n    useUTC: useUTC,\n    renderMode: renderMode,\n    orderMode: orderMode,\n    markupStyleCreator: markupStyleCreator\n  };\n  return builder.build(ctx, fragment, 0, toolTipTextStyle);\n}\n\nfunction getGap(fragment) {\n  var gapLevelBetweenSubBlocks = fragment.__gapLevelBetweenSubBlocks;\n  return {\n    html: HTML_GAPS[gapLevelBetweenSubBlocks],\n    richText: RICH_TEXT_GAPS[gapLevelBetweenSubBlocks]\n  };\n}\n\nfunction wrapBlockHTML(encodedContent, topGap) {\n  var clearfix = '<div style=\"clear:both\"></div>';\n  var marginCSS = \"margin: \" + topGap + \"px 0 0\";\n  return \"<div style=\\\"\" + marginCSS + \";\" + TOOLTIP_LINE_HEIGHT_CSS + \";\\\">\" + encodedContent + clearfix + '</div>';\n}\n\nfunction wrapInlineNameHTML(name, leftHasMarker, style) {\n  var marginCss = leftHasMarker ? 'margin-left:2px' : '';\n  return \"<span style=\\\"\" + style + \";\" + marginCss + \"\\\">\" + encodeHTML(name) + '</span>';\n}\n\nfunction wrapInlineValueHTML(valueList, alignRight, valueCloseToMarker, style) {\n  var paddingStr = valueCloseToMarker ? '10px' : '20px';\n  var alignCSS = alignRight ? \"float:right;margin-left:\" + paddingStr : '';\n  return \"<span style=\\\"\" + alignCSS + \";\" + style + \"\\\">\" + map(valueList, function (value) {\n    return encodeHTML(value);\n  }).join('&nbsp;&nbsp;') + '</span>';\n}\n\nfunction wrapInlineNameRichText(ctx, name, style) {\n  return ctx.markupStyleCreator.wrapRichTextStyle(name, style);\n}\n\nfunction wrapInlineValueRichText(ctx, valueList, alignRight, valueCloseToMarker, style) {\n  var styles = [style];\n  var paddingLeft = valueCloseToMarker ? 10 : 20;\n  alignRight && styles.push({\n    padding: [0, 0, 0, paddingLeft],\n    align: 'right'\n  });\n  return ctx.markupStyleCreator.wrapRichTextStyle(valueList.join('  '), styles);\n}\n\nexport function retrieveVisualColorForTooltipMarker(series, dataIndex) {\n  var style = series.getData().getItemVisual(dataIndex, 'style');\n  var color = style[series.visualDrawType];\n  return convertToColorString(color);\n}\nexport function getPaddingFromTooltipModel(model, renderMode) {\n  var padding = model.get('padding');\n  return padding != null ? padding : renderMode === 'richText' ? [8, 10] : 10;\n}\n\nvar TooltipMarkupStyleCreator = function () {\n  function TooltipMarkupStyleCreator() {\n    this.richTextStyles = {};\n    this._nextStyleNameId = getRandomIdBase();\n  }\n\n  TooltipMarkupStyleCreator.prototype._generateStyleName = function () {\n    return '__EC_aUTo_' + this._nextStyleNameId++;\n  };\n\n  TooltipMarkupStyleCreator.prototype.makeTooltipMarker = function (markerType, colorStr, renderMode) {\n    var markerId = renderMode === 'richText' ? this._generateStyleName() : null;\n    var marker = getTooltipMarker({\n      color: colorStr,\n      type: markerType,\n      renderMode: renderMode,\n      markerId: markerId\n    });\n\n    if (isString(marker)) {\n      return marker;\n    } else {\n      if (process.env.NODE_ENV !== 'production') {\n        assert(markerId);\n      }\n\n      this.richTextStyles[markerId] = marker.style;\n      return marker.content;\n    }\n  };\n\n  TooltipMarkupStyleCreator.prototype.wrapRichTextStyle = function (text, styles) {\n    var finalStl = {};\n\n    if (isArray(styles)) {\n      each(styles, function (stl) {\n        return extend(finalStl, stl);\n      });\n    } else {\n      extend(finalStl, styles);\n    }\n\n    var styleName = this._generateStyleName();\n\n    this.richTextStyles[styleName] = finalStl;\n    return \"{\" + styleName + \"|\" + text + \"}\";\n  };\n\n  return TooltipMarkupStyleCreator;\n}();\n\nexport { TooltipMarkupStyleCreator };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { trim, isArray, each, reduce } from 'zrender/lib/core/util';\nimport { retrieveVisualColorForTooltipMarker, createTooltipMarkup } from './tooltipMarkup';\nimport { retrieveRawValue } from '../../data/helper/dataProvider';\nimport { isNameSpecified } from '../../util/model';\nexport function defaultSeriesFormatTooltip(opt) {\n  var series = opt.series;\n  var dataIndex = opt.dataIndex;\n  var multipleSeries = opt.multipleSeries;\n  var data = series.getData();\n  var tooltipDims = data.mapDimensionsAll('defaultedTooltip');\n  var tooltipDimLen = tooltipDims.length;\n  var value = series.getRawValue(dataIndex);\n  var isValueArr = isArray(value);\n  var markerColor = retrieveVisualColorForTooltipMarker(series, dataIndex);\n  var inlineValue;\n  var inlineValueType;\n  var subBlocks;\n  var sortParam;\n\n  if (tooltipDimLen > 1 || isValueArr && !tooltipDimLen) {\n    var formatArrResult = formatTooltipArrayValue(value, series, dataIndex, tooltipDims, markerColor);\n    inlineValue = formatArrResult.inlineValues;\n    inlineValueType = formatArrResult.inlineValueTypes;\n    subBlocks = formatArrResult.blocks;\n    sortParam = formatArrResult.inlineValues[0];\n  } else if (tooltipDimLen) {\n    var dimInfo = data.getDimensionInfo(tooltipDims[0]);\n    sortParam = inlineValue = retrieveRawValue(data, dataIndex, tooltipDims[0]);\n    inlineValueType = dimInfo.type;\n  } else {\n    sortParam = inlineValue = isValueArr ? value[0] : value;\n  }\n\n  var seriesNameSpecified = isNameSpecified(series);\n  var seriesName = seriesNameSpecified && series.name || '';\n  var itemName = data.getName(dataIndex);\n  var inlineName = multipleSeries ? seriesName : itemName;\n  return createTooltipMarkup('section', {\n    header: seriesName,\n    noHeader: multipleSeries || !seriesNameSpecified,\n    sortParam: sortParam,\n    blocks: [createTooltipMarkup('nameValue', {\n      markerType: 'item',\n      markerColor: markerColor,\n      name: inlineName,\n      noName: !trim(inlineName),\n      value: inlineValue,\n      valueType: inlineValueType\n    })].concat(subBlocks || [])\n  });\n}\n\nfunction formatTooltipArrayValue(value, series, dataIndex, tooltipDims, colorStr) {\n  var data = series.getData();\n  var isValueMultipleLine = reduce(value, function (isValueMultipleLine, val, idx) {\n    var dimItem = data.getDimensionInfo(idx);\n    return isValueMultipleLine = isValueMultipleLine || dimItem && dimItem.tooltip !== false && dimItem.displayName != null;\n  }, false);\n  var inlineValues = [];\n  var inlineValueTypes = [];\n  var blocks = [];\n  tooltipDims.length ? each(tooltipDims, function (dim) {\n    setEachItem(retrieveRawValue(data, dataIndex, dim), dim);\n  }) : each(value, setEachItem);\n\n  function setEachItem(val, dim) {\n    var dimInfo = data.getDimensionInfo(dim);\n\n    if (!dimInfo || dimInfo.otherDims.tooltip === false) {\n      return;\n    }\n\n    if (isValueMultipleLine) {\n      blocks.push(createTooltipMarkup('nameValue', {\n        markerType: 'subItem',\n        markerColor: colorStr,\n        name: dimInfo.displayName,\n        value: val,\n        valueType: dimInfo.type\n      }));\n    } else {\n      inlineValues.push(val);\n      inlineValueTypes.push(dimInfo.type);\n    }\n  }\n\n  return {\n    inlineValues: inlineValues,\n    inlineValueTypes: inlineValueTypes,\n    blocks: blocks\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends, __spreadArrays } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport env from 'zrender/lib/core/env';\nimport * as modelUtil from '../util/model';\nimport ComponentModel from './Component';\nimport { PaletteMixin } from './mixin/palette';\nimport { DataFormatMixin } from '../model/mixin/dataFormat';\nimport { getLayoutParams, mergeLayoutParam, fetchLayoutMode } from '../util/layout';\nimport { createTask } from '../core/task';\nimport { mountExtend } from '../util/clazz';\nimport { SourceManager } from '../data/helper/sourceManager';\nimport { defaultSeriesFormatTooltip } from '../component/tooltip/seriesFormatTooltip';\nvar inner = modelUtil.makeInner();\n\nfunction getSelectionKey(data, dataIndex) {\n  return data.getName(dataIndex) || data.getId(dataIndex);\n}\n\nvar SeriesModel = function (_super) {\n  __extends(SeriesModel, _super);\n\n  function SeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this._selectedDataIndicesMap = {};\n    return _this;\n  }\n\n  SeriesModel.prototype.init = function (option, parentModel, ecModel) {\n    this.seriesIndex = this.componentIndex;\n    this.dataTask = createTask({\n      count: dataTaskCount,\n      reset: dataTaskReset\n    });\n    this.dataTask.context = {\n      model: this\n    };\n    this.mergeDefaultAndTheme(option, ecModel);\n    var sourceManager = inner(this).sourceManager = new SourceManager(this);\n    sourceManager.prepareSource();\n    var data = this.getInitialData(option, ecModel);\n    wrapData(data, this);\n    this.dataTask.context.data = data;\n\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.assert(data, 'getInitialData returned invalid data.');\n    }\n\n    inner(this).dataBeforeProcessed = data;\n    autoSeriesName(this);\n\n    this._initSelectedMapFromData(data);\n  };\n\n  SeriesModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n    var layoutMode = fetchLayoutMode(this);\n    var inputPositionParams = layoutMode ? getLayoutParams(option) : {};\n    var themeSubType = this.subType;\n\n    if (ComponentModel.hasClass(themeSubType)) {\n      themeSubType += 'Series';\n    }\n\n    zrUtil.merge(option, ecModel.getTheme().get(this.subType));\n    zrUtil.merge(option, this.getDefaultOption());\n    modelUtil.defaultEmphasis(option, 'label', ['show']);\n    this.fillDataTextStyle(option.data);\n\n    if (layoutMode) {\n      mergeLayoutParam(option, inputPositionParams, layoutMode);\n    }\n  };\n\n  SeriesModel.prototype.mergeOption = function (newSeriesOption, ecModel) {\n    newSeriesOption = zrUtil.merge(this.option, newSeriesOption, true);\n    this.fillDataTextStyle(newSeriesOption.data);\n    var layoutMode = fetchLayoutMode(this);\n\n    if (layoutMode) {\n      mergeLayoutParam(this.option, newSeriesOption, layoutMode);\n    }\n\n    var sourceManager = inner(this).sourceManager;\n    sourceManager.dirty();\n    sourceManager.prepareSource();\n    var data = this.getInitialData(newSeriesOption, ecModel);\n    wrapData(data, this);\n    this.dataTask.dirty();\n    this.dataTask.context.data = data;\n    inner(this).dataBeforeProcessed = data;\n    autoSeriesName(this);\n\n    this._initSelectedMapFromData(data);\n  };\n\n  SeriesModel.prototype.fillDataTextStyle = function (data) {\n    if (data && !zrUtil.isTypedArray(data)) {\n      var props = ['show'];\n\n      for (var i = 0; i < data.length; i++) {\n        if (data[i] && data[i].label) {\n          modelUtil.defaultEmphasis(data[i], 'label', props);\n        }\n      }\n    }\n  };\n\n  SeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return;\n  };\n\n  SeriesModel.prototype.appendData = function (params) {\n    var data = this.getRawData();\n    data.appendData(params.data);\n  };\n\n  SeriesModel.prototype.getData = function (dataType) {\n    var task = getCurrentTask(this);\n\n    if (task) {\n      var data = task.context.data;\n      return dataType == null ? data : data.getLinkedData(dataType);\n    } else {\n      return inner(this).data;\n    }\n  };\n\n  SeriesModel.prototype.getAllData = function () {\n    var mainData = this.getData();\n    return mainData && mainData.getLinkedDataAll ? mainData.getLinkedDataAll() : [{\n      data: mainData\n    }];\n  };\n\n  SeriesModel.prototype.setData = function (data) {\n    var task = getCurrentTask(this);\n\n    if (task) {\n      var context = task.context;\n      context.outputData = data;\n\n      if (task !== this.dataTask) {\n        context.data = data;\n      }\n    }\n\n    inner(this).data = data;\n  };\n\n  SeriesModel.prototype.getSource = function () {\n    return inner(this).sourceManager.getSource();\n  };\n\n  SeriesModel.prototype.getRawData = function () {\n    return inner(this).dataBeforeProcessed;\n  };\n\n  SeriesModel.prototype.getBaseAxis = function () {\n    var coordSys = this.coordinateSystem;\n    return coordSys && coordSys.getBaseAxis && coordSys.getBaseAxis();\n  };\n\n  SeriesModel.prototype.formatTooltip = function (dataIndex, multipleSeries, dataType) {\n    return defaultSeriesFormatTooltip({\n      series: this,\n      dataIndex: dataIndex,\n      multipleSeries: multipleSeries\n    });\n  };\n\n  SeriesModel.prototype.isAnimationEnabled = function () {\n    if (env.node) {\n      return false;\n    }\n\n    var animationEnabled = this.getShallow('animation');\n\n    if (animationEnabled) {\n      if (this.getData().count() > this.getShallow('animationThreshold')) {\n        animationEnabled = false;\n      }\n    }\n\n    return !!animationEnabled;\n  };\n\n  SeriesModel.prototype.restoreData = function () {\n    this.dataTask.dirty();\n  };\n\n  SeriesModel.prototype.getColorFromPalette = function (name, scope, requestColorNum) {\n    var ecModel = this.ecModel;\n    var color = PaletteMixin.prototype.getColorFromPalette.call(this, name, scope, requestColorNum);\n\n    if (!color) {\n      color = ecModel.getColorFromPalette(name, scope, requestColorNum);\n    }\n\n    return color;\n  };\n\n  SeriesModel.prototype.coordDimToDataDim = function (coordDim) {\n    return this.getRawData().mapDimensionsAll(coordDim);\n  };\n\n  SeriesModel.prototype.getProgressive = function () {\n    return this.get('progressive');\n  };\n\n  SeriesModel.prototype.getProgressiveThreshold = function () {\n    return this.get('progressiveThreshold');\n  };\n\n  SeriesModel.prototype.select = function (innerDataIndices, dataType) {\n    this._innerSelect(this.getData(dataType), innerDataIndices);\n  };\n\n  SeriesModel.prototype.unselect = function (innerDataIndices, dataType) {\n    var selectedMap = this.option.selectedMap;\n\n    if (!selectedMap) {\n      return;\n    }\n\n    var data = this.getData(dataType);\n\n    for (var i = 0; i < innerDataIndices.length; i++) {\n      var dataIndex = innerDataIndices[i];\n      var nameOrId = getSelectionKey(data, dataIndex);\n      selectedMap[nameOrId] = false;\n      this._selectedDataIndicesMap[nameOrId] = -1;\n    }\n  };\n\n  SeriesModel.prototype.toggleSelect = function (innerDataIndices, dataType) {\n    var tmpArr = [];\n\n    for (var i = 0; i < innerDataIndices.length; i++) {\n      tmpArr[0] = innerDataIndices[i];\n      this.isSelected(innerDataIndices[i], dataType) ? this.unselect(tmpArr, dataType) : this.select(tmpArr, dataType);\n    }\n  };\n\n  SeriesModel.prototype.getSelectedDataIndices = function () {\n    var selectedDataIndicesMap = this._selectedDataIndicesMap;\n    var nameOrIds = zrUtil.keys(selectedDataIndicesMap);\n    var dataIndices = [];\n\n    for (var i = 0; i < nameOrIds.length; i++) {\n      var dataIndex = selectedDataIndicesMap[nameOrIds[i]];\n\n      if (dataIndex >= 0) {\n        dataIndices.push(dataIndex);\n      }\n    }\n\n    return dataIndices;\n  };\n\n  SeriesModel.prototype.isSelected = function (dataIndex, dataType) {\n    var selectedMap = this.option.selectedMap;\n\n    if (!selectedMap) {\n      return false;\n    }\n\n    var data = this.getData(dataType);\n    var nameOrId = getSelectionKey(data, dataIndex);\n    return selectedMap[nameOrId] || false;\n  };\n\n  SeriesModel.prototype._innerSelect = function (data, innerDataIndices) {\n    var _a, _b;\n\n    var selectedMode = this.option.selectedMode;\n    var len = innerDataIndices.length;\n\n    if (!selectedMode || !len) {\n      return;\n    }\n\n    if (selectedMode === 'multiple') {\n      var selectedMap = this.option.selectedMap || (this.option.selectedMap = {});\n\n      for (var i = 0; i < len; i++) {\n        var dataIndex = innerDataIndices[i];\n        var nameOrId = getSelectionKey(data, dataIndex);\n        selectedMap[nameOrId] = true;\n        this._selectedDataIndicesMap[nameOrId] = data.getRawIndex(dataIndex);\n      }\n    } else if (selectedMode === 'single' || selectedMode === true) {\n      var lastDataIndex = innerDataIndices[len - 1];\n      var nameOrId = getSelectionKey(data, lastDataIndex);\n      this.option.selectedMap = (_a = {}, _a[nameOrId] = true, _a);\n      this._selectedDataIndicesMap = (_b = {}, _b[nameOrId] = data.getRawIndex(lastDataIndex), _b);\n    }\n  };\n\n  SeriesModel.prototype._initSelectedMapFromData = function (data) {\n    if (this.option.selectedMap) {\n      return;\n    }\n\n    var dataIndices = [];\n\n    if (data.hasItemOption) {\n      data.each(function (idx) {\n        var rawItem = data.getRawDataItem(idx);\n\n        if (typeof rawItem === 'object' && rawItem.selected) {\n          dataIndices.push(idx);\n        }\n      });\n    }\n\n    if (dataIndices.length > 0) {\n      this._innerSelect(data, dataIndices);\n    }\n  };\n\n  SeriesModel.registerClass = function (clz) {\n    return ComponentModel.registerClass(clz);\n  };\n\n  SeriesModel.protoInitialize = function () {\n    var proto = SeriesModel.prototype;\n    proto.type = 'series.__base__';\n    proto.seriesIndex = 0;\n    proto.useColorPaletteOnData = false;\n    proto.ignoreStyleOnData = false;\n    proto.hasSymbolVisual = false;\n    proto.defaultSymbol = 'circle';\n    proto.visualStyleAccessPath = 'itemStyle';\n    proto.visualDrawType = 'fill';\n  }();\n\n  return SeriesModel;\n}(ComponentModel);\n\nzrUtil.mixin(SeriesModel, DataFormatMixin);\nzrUtil.mixin(SeriesModel, PaletteMixin);\nmountExtend(SeriesModel, ComponentModel);\n\nfunction autoSeriesName(seriesModel) {\n  var name = seriesModel.name;\n\n  if (!modelUtil.isNameSpecified(seriesModel)) {\n    seriesModel.name = getSeriesAutoName(seriesModel) || name;\n  }\n}\n\nfunction getSeriesAutoName(seriesModel) {\n  var data = seriesModel.getRawData();\n  var dataDims = data.mapDimensionsAll('seriesName');\n  var nameArr = [];\n  zrUtil.each(dataDims, function (dataDim) {\n    var dimInfo = data.getDimensionInfo(dataDim);\n    dimInfo.displayName && nameArr.push(dimInfo.displayName);\n  });\n  return nameArr.join(' ');\n}\n\nfunction dataTaskCount(context) {\n  return context.model.getRawData().count();\n}\n\nfunction dataTaskReset(context) {\n  var seriesModel = context.model;\n  seriesModel.setData(seriesModel.getRawData().cloneShallow());\n  return dataTaskProgress;\n}\n\nfunction dataTaskProgress(param, context) {\n  if (context.outputData && param.end > context.outputData.count()) {\n    context.model.getRawData().cloneShallow(context.outputData);\n  }\n}\n\nfunction wrapData(data, seriesModel) {\n  zrUtil.each(__spreadArrays(data.CHANGABLE_METHODS, data.DOWNSAMPLE_METHODS), function (methodName) {\n    data.wrapMethod(methodName, zrUtil.curry(onDataChange, seriesModel));\n  });\n}\n\nfunction onDataChange(seriesModel, newList) {\n  var task = getCurrentTask(seriesModel);\n\n  if (task) {\n    task.setOutputEnd((newList || this).count());\n  }\n\n  return newList;\n}\n\nfunction getCurrentTask(seriesModel) {\n  var scheduler = (seriesModel.ecModel || {}).scheduler;\n  var pipeline = scheduler && scheduler.getPipeline(seriesModel.uid);\n\n  if (pipeline) {\n    var task = pipeline.currentTask;\n\n    if (task) {\n      var agentStubMap = task.agentStubMap;\n\n      if (agentStubMap) {\n        task = agentStubMap.get(seriesModel.uid);\n      }\n    }\n\n    return task;\n  }\n}\n\nexport default SeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Group from 'zrender/lib/graphic/Group';\nimport * as componentUtil from '../util/component';\nimport * as clazzUtil from '../util/clazz';\n\nvar ComponentView = function () {\n  function ComponentView() {\n    this.group = new Group();\n    this.uid = componentUtil.getUID('viewComponent');\n  }\n\n  ComponentView.prototype.init = function (ecModel, api) {};\n\n  ComponentView.prototype.render = function (model, ecModel, api, payload) {};\n\n  ComponentView.prototype.dispose = function (ecModel, api) {};\n\n  ComponentView.prototype.updateView = function (model, ecModel, api, payload) {};\n\n  ComponentView.prototype.updateLayout = function (model, ecModel, api, payload) {};\n\n  ComponentView.prototype.updateVisual = function (model, ecModel, api, payload) {};\n\n  ComponentView.prototype.blurSeries = function (seriesModels, ecModel) {};\n\n  return ComponentView;\n}();\n\n;\nclazzUtil.enableClassExtend(ComponentView);\nclazzUtil.enableClassManagement(ComponentView);\nexport default ComponentView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { makeInner } from '../../util/model';\nexport default function createRenderPlanner() {\n  var inner = makeInner();\n  return function (seriesModel) {\n    var fields = inner(seriesModel);\n    var pipelineContext = seriesModel.pipelineContext;\n    var originalLarge = !!fields.large;\n    var originalProgressive = !!fields.progressiveRender;\n    var large = fields.large = !!(pipelineContext && pipelineContext.large);\n    var progressive = fields.progressiveRender = !!(pipelineContext && pipelineContext.progressiveRender);\n    return !!(originalLarge !== large || originalProgressive !== progressive) && 'reset';\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each } from 'zrender/lib/core/util';\nimport Group from 'zrender/lib/graphic/Group';\nimport * as componentUtil from '../util/component';\nimport * as clazzUtil from '../util/clazz';\nimport * as modelUtil from '../util/model';\nimport { enterEmphasis, leaveEmphasis, getHighlightDigit } from '../util/states';\nimport { createTask } from '../core/task';\nimport createRenderPlanner from '../chart/helper/createRenderPlanner';\nvar inner = modelUtil.makeInner();\nvar renderPlanner = createRenderPlanner();\n\nvar ChartView = function () {\n  function ChartView() {\n    this.group = new Group();\n    this.uid = componentUtil.getUID('viewChart');\n    this.renderTask = createTask({\n      plan: renderTaskPlan,\n      reset: renderTaskReset\n    });\n    this.renderTask.context = {\n      view: this\n    };\n  }\n\n  ChartView.prototype.init = function (ecModel, api) {};\n\n  ChartView.prototype.render = function (seriesModel, ecModel, api, payload) {};\n\n  ChartView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\n    toggleHighlight(seriesModel.getData(), payload, 'emphasis');\n  };\n\n  ChartView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\n    toggleHighlight(seriesModel.getData(), payload, 'normal');\n  };\n\n  ChartView.prototype.remove = function (ecModel, api) {\n    this.group.removeAll();\n  };\n\n  ChartView.prototype.dispose = function (ecModel, api) {};\n\n  ChartView.prototype.updateView = function (seriesModel, ecModel, api, payload) {\n    this.render(seriesModel, ecModel, api, payload);\n  };\n\n  ChartView.prototype.updateLayout = function (seriesModel, ecModel, api, payload) {\n    this.render(seriesModel, ecModel, api, payload);\n  };\n\n  ChartView.prototype.updateVisual = function (seriesModel, ecModel, api, payload) {\n    this.render(seriesModel, ecModel, api, payload);\n  };\n\n  ChartView.markUpdateMethod = function (payload, methodName) {\n    inner(payload).updateMethod = methodName;\n  };\n\n  ChartView.protoInitialize = function () {\n    var proto = ChartView.prototype;\n    proto.type = 'chart';\n  }();\n\n  return ChartView;\n}();\n\n;\n\nfunction elSetState(el, state, highlightDigit) {\n  if (el) {\n    (state === 'emphasis' ? enterEmphasis : leaveEmphasis)(el, highlightDigit);\n  }\n}\n\nfunction toggleHighlight(data, payload, state) {\n  var dataIndex = modelUtil.queryDataIndex(data, payload);\n  var highlightDigit = payload && payload.highlightKey != null ? getHighlightDigit(payload.highlightKey) : null;\n\n  if (dataIndex != null) {\n    each(modelUtil.normalizeToArray(dataIndex), function (dataIdx) {\n      elSetState(data.getItemGraphicEl(dataIdx), state, highlightDigit);\n    });\n  } else {\n    data.eachItemGraphicEl(function (el) {\n      elSetState(el, state, highlightDigit);\n    });\n  }\n}\n\nclazzUtil.enableClassExtend(ChartView, ['dispose']);\nclazzUtil.enableClassManagement(ChartView);\n\nfunction renderTaskPlan(context) {\n  return renderPlanner(context.model);\n}\n\nfunction renderTaskReset(context) {\n  var seriesModel = context.model;\n  var ecModel = context.ecModel;\n  var api = context.api;\n  var payload = context.payload;\n  var progressiveRender = seriesModel.pipelineContext.progressiveRender;\n  var view = context.view;\n  var updateMethod = payload && inner(payload).updateMethod;\n  var methodName = progressiveRender ? 'incrementalPrepareRender' : updateMethod && view[updateMethod] ? updateMethod : 'render';\n\n  if (methodName !== 'render') {\n    view[methodName](seriesModel, ecModel, api, payload);\n  }\n\n  return progressMethodMap[methodName];\n}\n\nvar progressMethodMap = {\n  incrementalPrepareRender: {\n    progress: function (params, context) {\n      context.view.incrementalRender(params, context.model, context.ecModel, context.api, context.payload);\n    }\n  },\n  render: {\n    forceFirstProgress: true,\n    progress: function (params, context) {\n      context.view.render(context.model, context.ecModel, context.api, context.payload);\n    }\n  }\n};\nexport default ChartView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar ORIGIN_METHOD = '\\0__throttleOriginMethod';\nvar RATE = '\\0__throttleRate';\nvar THROTTLE_TYPE = '\\0__throttleType';\n;\nexport function throttle(fn, delay, debounce) {\n  var currCall;\n  var lastCall = 0;\n  var lastExec = 0;\n  var timer = null;\n  var diff;\n  var scope;\n  var args;\n  var debounceNextCall;\n  delay = delay || 0;\n\n  function exec() {\n    lastExec = new Date().getTime();\n    timer = null;\n    fn.apply(scope, args || []);\n  }\n\n  var cb = function () {\n    var cbArgs = [];\n\n    for (var _i = 0; _i < arguments.length; _i++) {\n      cbArgs[_i] = arguments[_i];\n    }\n\n    currCall = new Date().getTime();\n    scope = this;\n    args = cbArgs;\n    var thisDelay = debounceNextCall || delay;\n    var thisDebounce = debounceNextCall || debounce;\n    debounceNextCall = null;\n    diff = currCall - (thisDebounce ? lastCall : lastExec) - thisDelay;\n    clearTimeout(timer);\n\n    if (thisDebounce) {\n      timer = setTimeout(exec, thisDelay);\n    } else {\n      if (diff >= 0) {\n        exec();\n      } else {\n        timer = setTimeout(exec, -diff);\n      }\n    }\n\n    lastCall = currCall;\n  };\n\n  cb.clear = function () {\n    if (timer) {\n      clearTimeout(timer);\n      timer = null;\n    }\n  };\n\n  cb.debounceNextCall = function (debounceDelay) {\n    debounceNextCall = debounceDelay;\n  };\n\n  return cb;\n}\nexport function createOrUpdate(obj, fnAttr, rate, throttleType) {\n  var fn = obj[fnAttr];\n\n  if (!fn) {\n    return;\n  }\n\n  var originFn = fn[ORIGIN_METHOD] || fn;\n  var lastThrottleType = fn[THROTTLE_TYPE];\n  var lastRate = fn[RATE];\n\n  if (lastRate !== rate || lastThrottleType !== throttleType) {\n    if (rate == null || !throttleType) {\n      return obj[fnAttr] = originFn;\n    }\n\n    fn = obj[fnAttr] = throttle(originFn, rate, throttleType === 'debounce');\n    fn[ORIGIN_METHOD] = originFn;\n    fn[THROTTLE_TYPE] = throttleType;\n    fn[RATE] = rate;\n  }\n\n  return fn;\n}\nexport function clear(obj, fnAttr) {\n  var fn = obj[fnAttr];\n\n  if (fn && fn[ORIGIN_METHOD]) {\n    obj[fnAttr] = fn[ORIGIN_METHOD];\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isFunction, extend, createHashMap } from 'zrender/lib/core/util';\nimport makeStyleMapper from '../model/mixin/makeStyleMapper';\nimport { ITEM_STYLE_KEY_MAP } from '../model/mixin/itemStyle';\nimport { LINE_STYLE_KEY_MAP } from '../model/mixin/lineStyle';\nimport Model from '../model/Model';\nimport { makeInner } from '../util/model';\nvar inner = makeInner();\nvar defaultStyleMappers = {\n  itemStyle: makeStyleMapper(ITEM_STYLE_KEY_MAP, true),\n  lineStyle: makeStyleMapper(LINE_STYLE_KEY_MAP, true)\n};\nvar defaultColorKey = {\n  lineStyle: 'stroke',\n  itemStyle: 'fill'\n};\n\nfunction getStyleMapper(seriesModel, stylePath) {\n  var styleMapper = seriesModel.visualStyleMapper || defaultStyleMappers[stylePath];\n\n  if (!styleMapper) {\n    console.warn(\"Unkown style type '\" + stylePath + \"'.\");\n    return defaultStyleMappers.itemStyle;\n  }\n\n  return styleMapper;\n}\n\nfunction getDefaultColorKey(seriesModel, stylePath) {\n  var colorKey = seriesModel.visualDrawType || defaultColorKey[stylePath];\n\n  if (!colorKey) {\n    console.warn(\"Unkown style type '\" + stylePath + \"'.\");\n    return 'fill';\n  }\n\n  return colorKey;\n}\n\nvar seriesStyleTask = {\n  createOnAllSeries: true,\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    var data = seriesModel.getData();\n    var stylePath = seriesModel.visualStyleAccessPath || 'itemStyle';\n    var styleModel = seriesModel.getModel(stylePath);\n    var getStyle = getStyleMapper(seriesModel, stylePath);\n    var globalStyle = getStyle(styleModel);\n    var decalOption = styleModel.getShallow('decal');\n\n    if (decalOption) {\n      data.setVisual('decal', decalOption);\n      decalOption.dirty = true;\n    }\n\n    var colorKey = getDefaultColorKey(seriesModel, stylePath);\n    var color = globalStyle[colorKey];\n    var colorCallback = isFunction(color) ? color : null;\n\n    if (!globalStyle[colorKey] || colorCallback) {\n      globalStyle[colorKey] = seriesModel.getColorFromPalette(seriesModel.name, null, ecModel.getSeriesCount());\n      data.setVisual('colorFromPalette', true);\n    }\n\n    data.setVisual('style', globalStyle);\n    data.setVisual('drawType', colorKey);\n\n    if (!ecModel.isSeriesFiltered(seriesModel) && colorCallback) {\n      data.setVisual('colorFromPalette', false);\n      return {\n        dataEach: function (data, idx) {\n          var dataParams = seriesModel.getDataParams(idx);\n          var itemStyle = extend({}, globalStyle);\n          itemStyle[colorKey] = colorCallback(dataParams);\n          data.setItemVisual(idx, 'style', itemStyle);\n        }\n      };\n    }\n  }\n};\nvar sharedModel = new Model();\nvar dataStyleTask = {\n  createOnAllSeries: true,\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    if (seriesModel.ignoreStyleOnData || ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var stylePath = seriesModel.visualStyleAccessPath || 'itemStyle';\n    var getStyle = getStyleMapper(seriesModel, stylePath);\n    var colorKey = data.getVisual('drawType');\n    return {\n      dataEach: data.hasItemOption ? function (data, idx) {\n        var rawItem = data.getRawDataItem(idx);\n\n        if (rawItem && rawItem[stylePath]) {\n          sharedModel.option = rawItem[stylePath];\n          var style = getStyle(sharedModel);\n          var existsStyle = data.ensureUniqueItemVisual(idx, 'style');\n          extend(existsStyle, style);\n\n          if (sharedModel.option.decal) {\n            data.setItemVisual(idx, 'decal', sharedModel.option.decal);\n            sharedModel.option.decal.dirty = true;\n          }\n\n          if (colorKey in style) {\n            data.setItemVisual(idx, 'colorFromPalette', false);\n          }\n        }\n      } : null\n    };\n  }\n};\nvar dataColorPaletteTask = {\n  performRawSeries: true,\n  overallReset: function (ecModel) {\n    var paletteScopeGroupByType = createHashMap();\n    ecModel.eachSeries(function (seriesModel) {\n      if (!seriesModel.useColorPaletteOnData) {\n        return;\n      }\n\n      var colorScope = paletteScopeGroupByType.get(seriesModel.type);\n\n      if (!colorScope) {\n        colorScope = {};\n        paletteScopeGroupByType.set(seriesModel.type, colorScope);\n      }\n\n      inner(seriesModel).scope = colorScope;\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      if (!seriesModel.useColorPaletteOnData || ecModel.isSeriesFiltered(seriesModel)) {\n        return;\n      }\n\n      var dataAll = seriesModel.getRawData();\n      var idxMap = {};\n      var data = seriesModel.getData();\n      var colorScope = inner(seriesModel).scope;\n      var stylePath = seriesModel.visualStyleAccessPath || 'itemStyle';\n      var colorKey = getDefaultColorKey(seriesModel, stylePath);\n      data.each(function (idx) {\n        var rawIdx = data.getRawIndex(idx);\n        idxMap[rawIdx] = idx;\n      });\n      dataAll.each(function (rawIdx) {\n        var idx = idxMap[rawIdx];\n        var fromPalette = data.getItemVisual(idx, 'colorFromPalette');\n\n        if (fromPalette) {\n          var itemStyle = data.ensureUniqueItemVisual(idx, 'style');\n          var name_1 = dataAll.getName(rawIdx) || rawIdx + '';\n          var dataCount = dataAll.count();\n          itemStyle[colorKey] = seriesModel.getColorFromPalette(name_1, colorScope, dataCount);\n        }\n      });\n    });\n  }\n};\nexport { seriesStyleTask, dataStyleTask, dataColorPaletteTask };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../util/graphic';\nvar PI = Math.PI;\nexport default function defaultLoading(api, opts) {\n  opts = opts || {};\n  zrUtil.defaults(opts, {\n    text: 'loading',\n    textColor: '#000',\n    fontSize: 12,\n    fontWeight: 'normal',\n    fontStyle: 'normal',\n    fontFamily: 'sans-serif',\n    maskColor: 'rgba(255, 255, 255, 0.8)',\n    showSpinner: true,\n    color: '#5470c6',\n    spinnerRadius: 10,\n    lineWidth: 5,\n    zlevel: 0\n  });\n  var group = new graphic.Group();\n  var mask = new graphic.Rect({\n    style: {\n      fill: opts.maskColor\n    },\n    zlevel: opts.zlevel,\n    z: 10000\n  });\n  group.add(mask);\n  var textContent = new graphic.Text({\n    style: {\n      text: opts.text,\n      fill: opts.textColor,\n      fontSize: opts.fontSize,\n      fontWeight: opts.fontWeight,\n      fontStyle: opts.fontStyle,\n      fontFamily: opts.fontFamily\n    }\n  });\n  var labelRect = new graphic.Rect({\n    style: {\n      fill: 'none'\n    },\n    textContent: textContent,\n    textConfig: {\n      position: 'right',\n      distance: 10\n    },\n    zlevel: opts.zlevel,\n    z: 10001\n  });\n  group.add(labelRect);\n  var arc;\n\n  if (opts.showSpinner) {\n    arc = new graphic.Arc({\n      shape: {\n        startAngle: -PI / 2,\n        endAngle: -PI / 2 + 0.1,\n        r: opts.spinnerRadius\n      },\n      style: {\n        stroke: opts.color,\n        lineCap: 'round',\n        lineWidth: opts.lineWidth\n      },\n      zlevel: opts.zlevel,\n      z: 10001\n    });\n    arc.animateShape(true).when(1000, {\n      endAngle: PI * 3 / 2\n    }).start('circularInOut');\n    arc.animateShape(true).when(1000, {\n      startAngle: PI * 3 / 2\n    }).delay(300).start('circularInOut');\n    group.add(arc);\n  }\n\n  group.resize = function () {\n    var textWidth = textContent.getBoundingRect().width;\n    var r = opts.showSpinner ? opts.spinnerRadius : 0;\n    var cx = (api.getWidth() - r * 2 - (opts.showSpinner && textWidth ? 10 : 0) - textWidth) / 2 - (opts.showSpinner && textWidth ? 0 : 5 + textWidth / 2) + (opts.showSpinner ? 0 : textWidth / 2) + (textWidth ? 0 : r);\n    var cy = api.getHeight() / 2;\n    opts.showSpinner && arc.setShape({\n      cx: cx,\n      cy: cy\n    });\n    labelRect.setShape({\n      x: cx - r,\n      y: cy - r,\n      width: r * 2,\n      height: r * 2\n    });\n    mask.setShape({\n      x: 0,\n      y: 0,\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n  };\n\n  group.resize();\n  return group;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, map, isFunction, createHashMap, noop, assert } from 'zrender/lib/core/util';\nimport { createTask } from './task';\nimport { getUID } from '../util/component';\nimport GlobalModel from '../model/Global';\nimport ExtensionAPI from './ExtensionAPI';\nimport { normalizeToArray } from '../util/model';\n;\n\nvar Scheduler = function () {\n  function Scheduler(ecInstance, api, dataProcessorHandlers, visualHandlers) {\n    this._stageTaskMap = createHashMap();\n    this.ecInstance = ecInstance;\n    this.api = api;\n    dataProcessorHandlers = this._dataProcessorHandlers = dataProcessorHandlers.slice();\n    visualHandlers = this._visualHandlers = visualHandlers.slice();\n    this._allHandlers = dataProcessorHandlers.concat(visualHandlers);\n  }\n\n  Scheduler.prototype.restoreData = function (ecModel, payload) {\n    ecModel.restoreData(payload);\n\n    this._stageTaskMap.each(function (taskRecord) {\n      var overallTask = taskRecord.overallTask;\n      overallTask && overallTask.dirty();\n    });\n  };\n\n  Scheduler.prototype.getPerformArgs = function (task, isBlock) {\n    if (!task.__pipeline) {\n      return;\n    }\n\n    var pipeline = this._pipelineMap.get(task.__pipeline.id);\n\n    var pCtx = pipeline.context;\n    var incremental = !isBlock && pipeline.progressiveEnabled && (!pCtx || pCtx.progressiveRender) && task.__idxInPipeline > pipeline.blockIndex;\n    var step = incremental ? pipeline.step : null;\n    var modDataCount = pCtx && pCtx.modDataCount;\n    var modBy = modDataCount != null ? Math.ceil(modDataCount / step) : null;\n    return {\n      step: step,\n      modBy: modBy,\n      modDataCount: modDataCount\n    };\n  };\n\n  Scheduler.prototype.getPipeline = function (pipelineId) {\n    return this._pipelineMap.get(pipelineId);\n  };\n\n  Scheduler.prototype.updateStreamModes = function (seriesModel, view) {\n    var pipeline = this._pipelineMap.get(seriesModel.uid);\n\n    var data = seriesModel.getData();\n    var dataLen = data.count();\n    var progressiveRender = pipeline.progressiveEnabled && view.incrementalPrepareRender && dataLen >= pipeline.threshold;\n    var large = seriesModel.get('large') && dataLen >= seriesModel.get('largeThreshold');\n    var modDataCount = seriesModel.get('progressiveChunkMode') === 'mod' ? dataLen : null;\n    seriesModel.pipelineContext = pipeline.context = {\n      progressiveRender: progressiveRender,\n      modDataCount: modDataCount,\n      large: large\n    };\n  };\n\n  Scheduler.prototype.restorePipelines = function (ecModel) {\n    var scheduler = this;\n    var pipelineMap = scheduler._pipelineMap = createHashMap();\n    ecModel.eachSeries(function (seriesModel) {\n      var progressive = seriesModel.getProgressive();\n      var pipelineId = seriesModel.uid;\n      pipelineMap.set(pipelineId, {\n        id: pipelineId,\n        head: null,\n        tail: null,\n        threshold: seriesModel.getProgressiveThreshold(),\n        progressiveEnabled: progressive && !(seriesModel.preventIncremental && seriesModel.preventIncremental()),\n        blockIndex: -1,\n        step: Math.round(progressive || 700),\n        count: 0\n      });\n\n      scheduler._pipe(seriesModel, seriesModel.dataTask);\n    });\n  };\n\n  Scheduler.prototype.prepareStageTasks = function () {\n    var stageTaskMap = this._stageTaskMap;\n    var ecModel = this.api.getModel();\n    var api = this.api;\n    each(this._allHandlers, function (handler) {\n      var record = stageTaskMap.get(handler.uid) || stageTaskMap.set(handler.uid, {});\n      var errMsg = '';\n\n      if (process.env.NODE_ENV !== 'production') {\n        errMsg = '\"reset\" and \"overallReset\" must not be both specified.';\n      }\n\n      assert(!(handler.reset && handler.overallReset), errMsg);\n      handler.reset && this._createSeriesStageTask(handler, record, ecModel, api);\n      handler.overallReset && this._createOverallStageTask(handler, record, ecModel, api);\n    }, this);\n  };\n\n  Scheduler.prototype.prepareView = function (view, model, ecModel, api) {\n    var renderTask = view.renderTask;\n    var context = renderTask.context;\n    context.model = model;\n    context.ecModel = ecModel;\n    context.api = api;\n    renderTask.__block = !view.incrementalPrepareRender;\n\n    this._pipe(model, renderTask);\n  };\n\n  Scheduler.prototype.performDataProcessorTasks = function (ecModel, payload) {\n    this._performStageTasks(this._dataProcessorHandlers, ecModel, payload, {\n      block: true\n    });\n  };\n\n  Scheduler.prototype.performVisualTasks = function (ecModel, payload, opt) {\n    this._performStageTasks(this._visualHandlers, ecModel, payload, opt);\n  };\n\n  Scheduler.prototype._performStageTasks = function (stageHandlers, ecModel, payload, opt) {\n    opt = opt || {};\n    var unfinished = false;\n    var scheduler = this;\n    each(stageHandlers, function (stageHandler, idx) {\n      if (opt.visualType && opt.visualType !== stageHandler.visualType) {\n        return;\n      }\n\n      var stageHandlerRecord = scheduler._stageTaskMap.get(stageHandler.uid);\n\n      var seriesTaskMap = stageHandlerRecord.seriesTaskMap;\n      var overallTask = stageHandlerRecord.overallTask;\n\n      if (overallTask) {\n        var overallNeedDirty_1;\n        var agentStubMap = overallTask.agentStubMap;\n        agentStubMap.each(function (stub) {\n          if (needSetDirty(opt, stub)) {\n            stub.dirty();\n            overallNeedDirty_1 = true;\n          }\n        });\n        overallNeedDirty_1 && overallTask.dirty();\n        scheduler.updatePayload(overallTask, payload);\n        var performArgs_1 = scheduler.getPerformArgs(overallTask, opt.block);\n        agentStubMap.each(function (stub) {\n          stub.perform(performArgs_1);\n        });\n\n        if (overallTask.perform(performArgs_1)) {\n          unfinished = true;\n        }\n      } else if (seriesTaskMap) {\n        seriesTaskMap.each(function (task, pipelineId) {\n          if (needSetDirty(opt, task)) {\n            task.dirty();\n          }\n\n          var performArgs = scheduler.getPerformArgs(task, opt.block);\n          performArgs.skip = !stageHandler.performRawSeries && ecModel.isSeriesFiltered(task.context.model);\n          scheduler.updatePayload(task, payload);\n\n          if (task.perform(performArgs)) {\n            unfinished = true;\n          }\n        });\n      }\n    });\n\n    function needSetDirty(opt, task) {\n      return opt.setDirty && (!opt.dirtyMap || opt.dirtyMap.get(task.__pipeline.id));\n    }\n\n    this.unfinished = unfinished || this.unfinished;\n  };\n\n  Scheduler.prototype.performSeriesTasks = function (ecModel) {\n    var unfinished;\n    ecModel.eachSeries(function (seriesModel) {\n      unfinished = seriesModel.dataTask.perform() || unfinished;\n    });\n    this.unfinished = unfinished || this.unfinished;\n  };\n\n  Scheduler.prototype.plan = function () {\n    this._pipelineMap.each(function (pipeline) {\n      var task = pipeline.tail;\n\n      do {\n        if (task.__block) {\n          pipeline.blockIndex = task.__idxInPipeline;\n          break;\n        }\n\n        task = task.getUpstream();\n      } while (task);\n    });\n  };\n\n  Scheduler.prototype.updatePayload = function (task, payload) {\n    payload !== 'remain' && (task.context.payload = payload);\n  };\n\n  Scheduler.prototype._createSeriesStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\n    var scheduler = this;\n    var oldSeriesTaskMap = stageHandlerRecord.seriesTaskMap;\n    var newSeriesTaskMap = stageHandlerRecord.seriesTaskMap = createHashMap();\n    var seriesType = stageHandler.seriesType;\n    var getTargetSeries = stageHandler.getTargetSeries;\n\n    if (stageHandler.createOnAllSeries) {\n      ecModel.eachRawSeries(create);\n    } else if (seriesType) {\n      ecModel.eachRawSeriesByType(seriesType, create);\n    } else if (getTargetSeries) {\n      getTargetSeries(ecModel, api).each(create);\n    }\n\n    function create(seriesModel) {\n      var pipelineId = seriesModel.uid;\n      var task = newSeriesTaskMap.set(pipelineId, oldSeriesTaskMap && oldSeriesTaskMap.get(pipelineId) || createTask({\n        plan: seriesTaskPlan,\n        reset: seriesTaskReset,\n        count: seriesTaskCount\n      }));\n      task.context = {\n        model: seriesModel,\n        ecModel: ecModel,\n        api: api,\n        useClearVisual: stageHandler.isVisual && !stageHandler.isLayout,\n        plan: stageHandler.plan,\n        reset: stageHandler.reset,\n        scheduler: scheduler\n      };\n\n      scheduler._pipe(seriesModel, task);\n    }\n  };\n\n  Scheduler.prototype._createOverallStageTask = function (stageHandler, stageHandlerRecord, ecModel, api) {\n    var scheduler = this;\n    var overallTask = stageHandlerRecord.overallTask = stageHandlerRecord.overallTask || createTask({\n      reset: overallTaskReset\n    });\n    overallTask.context = {\n      ecModel: ecModel,\n      api: api,\n      overallReset: stageHandler.overallReset,\n      scheduler: scheduler\n    };\n    var oldAgentStubMap = overallTask.agentStubMap;\n    var newAgentStubMap = overallTask.agentStubMap = createHashMap();\n    var seriesType = stageHandler.seriesType;\n    var getTargetSeries = stageHandler.getTargetSeries;\n    var overallProgress = true;\n    var shouldOverallTaskDirty = false;\n    var errMsg = '';\n\n    if (process.env.NODE_ENV !== 'production') {\n      errMsg = '\"createOnAllSeries\" do not supported for \"overallReset\", ' + 'becuase it will block all streams.';\n    }\n\n    assert(!stageHandler.createOnAllSeries, errMsg);\n\n    if (seriesType) {\n      ecModel.eachRawSeriesByType(seriesType, createStub);\n    } else if (getTargetSeries) {\n      getTargetSeries(ecModel, api).each(createStub);\n    } else {\n      overallProgress = false;\n      each(ecModel.getSeries(), createStub);\n    }\n\n    function createStub(seriesModel) {\n      var pipelineId = seriesModel.uid;\n      var stub = newAgentStubMap.set(pipelineId, oldAgentStubMap && oldAgentStubMap.get(pipelineId) || (shouldOverallTaskDirty = true, createTask({\n        reset: stubReset,\n        onDirty: stubOnDirty\n      })));\n      stub.context = {\n        model: seriesModel,\n        overallProgress: overallProgress\n      };\n      stub.agent = overallTask;\n      stub.__block = overallProgress;\n\n      scheduler._pipe(seriesModel, stub);\n    }\n\n    if (shouldOverallTaskDirty) {\n      overallTask.dirty();\n    }\n  };\n\n  Scheduler.prototype._pipe = function (seriesModel, task) {\n    var pipelineId = seriesModel.uid;\n\n    var pipeline = this._pipelineMap.get(pipelineId);\n\n    !pipeline.head && (pipeline.head = task);\n    pipeline.tail && pipeline.tail.pipe(task);\n    pipeline.tail = task;\n    task.__idxInPipeline = pipeline.count++;\n    task.__pipeline = pipeline;\n  };\n\n  Scheduler.wrapStageHandler = function (stageHandler, visualType) {\n    if (isFunction(stageHandler)) {\n      stageHandler = {\n        overallReset: stageHandler,\n        seriesType: detectSeriseType(stageHandler)\n      };\n    }\n\n    stageHandler.uid = getUID('stageHandler');\n    visualType && (stageHandler.visualType = visualType);\n    return stageHandler;\n  };\n\n  ;\n  return Scheduler;\n}();\n\nfunction overallTaskReset(context) {\n  context.overallReset(context.ecModel, context.api, context.payload);\n}\n\nfunction stubReset(context) {\n  return context.overallProgress && stubProgress;\n}\n\nfunction stubProgress() {\n  this.agent.dirty();\n  this.getDownstream().dirty();\n}\n\nfunction stubOnDirty() {\n  this.agent && this.agent.dirty();\n}\n\nfunction seriesTaskPlan(context) {\n  return context.plan ? context.plan(context.model, context.ecModel, context.api, context.payload) : null;\n}\n\nfunction seriesTaskReset(context) {\n  if (context.useClearVisual) {\n    context.data.clearAllVisual();\n  }\n\n  var resetDefines = context.resetDefines = normalizeToArray(context.reset(context.model, context.ecModel, context.api, context.payload));\n  return resetDefines.length > 1 ? map(resetDefines, function (v, idx) {\n    return makeSeriesTaskProgress(idx);\n  }) : singleSeriesTaskProgress;\n}\n\nvar singleSeriesTaskProgress = makeSeriesTaskProgress(0);\n\nfunction makeSeriesTaskProgress(resetDefineIdx) {\n  return function (params, context) {\n    var data = context.data;\n    var resetDefine = context.resetDefines[resetDefineIdx];\n\n    if (resetDefine && resetDefine.dataEach) {\n      for (var i = params.start; i < params.end; i++) {\n        resetDefine.dataEach(data, i);\n      }\n    } else if (resetDefine && resetDefine.progress) {\n      resetDefine.progress(params, data);\n    }\n  };\n}\n\nfunction seriesTaskCount(context) {\n  return context.data.count();\n}\n\nfunction detectSeriseType(legacyFunc) {\n  seriesType = null;\n\n  try {\n    legacyFunc(ecModelMock, apiMock);\n  } catch (e) {}\n\n  return seriesType;\n}\n\nvar ecModelMock = {};\nvar apiMock = {};\nvar seriesType;\nmockMethods(ecModelMock, GlobalModel);\nmockMethods(apiMock, ExtensionAPI);\n\necModelMock.eachSeriesByType = ecModelMock.eachRawSeriesByType = function (type) {\n  seriesType = type;\n};\n\necModelMock.eachComponent = function (cond) {\n  if (cond.mainType === 'series' && cond.subType) {\n    seriesType = cond.subType;\n  }\n};\n\nfunction mockMethods(target, Clz) {\n  for (var name_1 in Clz.prototype) {\n    target[name_1] = noop;\n  }\n}\n\nexport default Scheduler;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar colorAll = ['#37A2DA', '#32C5E9', '#67E0E3', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#E062AE', '#E690D1', '#e7bcf3', '#9d96f5', '#8378EA', '#96BFFF'];\nexport default {\n  color: colorAll,\n  colorLayer: [['#37A2DA', '#ffd85c', '#fd7b5f'], ['#37A2DA', '#67E0E3', '#FFDB5C', '#ff9f7f', '#E062AE', '#9d96f5'], ['#37A2DA', '#32C5E9', '#9FE6B8', '#FFDB5C', '#ff9f7f', '#fb7293', '#e7bcf3', '#8378EA', '#96BFFF'], colorAll]\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar contrastColor = '#B9B8CE';\nvar backgroundColor = '#100C2A';\n\nvar axisCommon = function () {\n  return {\n    axisLine: {\n      lineStyle: {\n        color: contrastColor\n      }\n    },\n    splitLine: {\n      lineStyle: {\n        color: '#484753'\n      }\n    },\n    splitArea: {\n      areaStyle: {\n        color: ['rgba(255,255,255,0.02)', 'rgba(255,255,255,0.05)']\n      }\n    },\n    minorSplitLine: {\n      lineStyle: {\n        color: '#20203B'\n      }\n    }\n  };\n};\n\nvar colorPalette = ['#4992ff', '#7cffb2', '#fddd60', '#ff6e76', '#58d9f9', '#05c091', '#ff8a45', '#8d48e3', '#dd79ff'];\nvar theme = {\n  darkMode: true,\n  color: colorPalette,\n  backgroundColor: backgroundColor,\n  axisPointer: {\n    lineStyle: {\n      color: '#817f91'\n    },\n    crossStyle: {\n      color: '#817f91'\n    },\n    label: {\n      color: '#fff'\n    }\n  },\n  legend: {\n    textStyle: {\n      color: contrastColor\n    }\n  },\n  textStyle: {\n    color: contrastColor\n  },\n  title: {\n    textStyle: {\n      color: '#EEF1FA'\n    },\n    subtextStyle: {\n      color: '#B9B8CE'\n    }\n  },\n  toolbox: {\n    iconStyle: {\n      borderColor: contrastColor\n    }\n  },\n  dataZoom: {\n    borderColor: '#71708A',\n    textStyle: {\n      color: contrastColor\n    },\n    brushStyle: {\n      color: 'rgba(135,163,206,0.3)'\n    },\n    handleStyle: {\n      color: '#353450',\n      borderColor: '#C5CBE3'\n    },\n    moveHandleStyle: {\n      color: '#B0B6C3',\n      opacity: 0.3\n    },\n    fillerColor: 'rgba(135,163,206,0.2)',\n    emphasis: {\n      handleStyle: {\n        borderColor: '#91B7F2',\n        color: '#4D587D'\n      },\n      moveHandleStyle: {\n        color: '#636D9A',\n        opacity: 0.7\n      }\n    },\n    dataBackground: {\n      lineStyle: {\n        color: '#71708A',\n        width: 1\n      },\n      areaStyle: {\n        color: '#71708A'\n      }\n    },\n    selectedDataBackground: {\n      lineStyle: {\n        color: '#87A3CE'\n      },\n      areaStyle: {\n        color: '#87A3CE'\n      }\n    }\n  },\n  visualMap: {\n    textStyle: {\n      color: contrastColor\n    }\n  },\n  timeline: {\n    lineStyle: {\n      color: contrastColor\n    },\n    label: {\n      color: contrastColor\n    },\n    controlStyle: {\n      color: contrastColor,\n      borderColor: contrastColor\n    }\n  },\n  calendar: {\n    itemStyle: {\n      color: backgroundColor\n    },\n    dayLabel: {\n      color: contrastColor\n    },\n    monthLabel: {\n      color: contrastColor\n    },\n    yearLabel: {\n      color: contrastColor\n    }\n  },\n  timeAxis: axisCommon(),\n  logAxis: axisCommon(),\n  valueAxis: axisCommon(),\n  categoryAxis: axisCommon(),\n  line: {\n    symbol: 'circle'\n  },\n  graph: {\n    color: colorPalette\n  },\n  gauge: {\n    title: {\n      color: contrastColor\n    },\n    axisLine: {\n      lineStyle: {\n        color: [[1, 'rgba(207,212,219,0.2)']]\n      }\n    },\n    axisLabel: {\n      color: contrastColor\n    },\n    detail: {\n      color: '#EEF1FA'\n    }\n  },\n  candlestick: {\n    itemStyle: {\n      color: '#f64e56',\n      color0: '#54ea92',\n      borderColor: '#f64e56',\n      borderColor0: '#54ea92'\n    }\n  }\n};\ntheme.categoryAxis.splitLine.show = false;\nexport default theme;","import { isString } from '../core/util';\nexport function parseXML(svg) {\n    if (isString(svg)) {\n        var parser = new DOMParser();\n        svg = parser.parseFromString(svg, 'text/xml');\n    }\n    var svgNode = svg;\n    if (svgNode.nodeType === 9) {\n        svgNode = svgNode.firstChild;\n    }\n    while (svgNode.nodeName.toLowerCase() !== 'svg' || svgNode.nodeType !== 1) {\n        svgNode = svgNode.nextSibling;\n    }\n    return svgNode;\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, isString, isArray, each, assert } from 'zrender/lib/core/util';\nimport { parseXML } from 'zrender/lib/tool/parseXML';\nvar storage = createHashMap();\nexport default {\n  registerMap: function (mapName, rawDef, rawSpecialAreas) {\n    var records;\n\n    if (isArray(rawDef)) {\n      records = rawDef;\n    } else if (rawDef.svg) {\n      records = [{\n        type: 'svg',\n        source: rawDef.svg,\n        specialAreas: rawDef.specialAreas\n      }];\n    } else {\n      var geoSource = rawDef.geoJson || rawDef.geoJSON;\n\n      if (geoSource && !rawDef.features) {\n        rawSpecialAreas = rawDef.specialAreas;\n        rawDef = geoSource;\n      }\n\n      records = [{\n        type: 'geoJSON',\n        source: rawDef,\n        specialAreas: rawSpecialAreas\n      }];\n    }\n\n    each(records, function (record) {\n      var type = record.type;\n      type === 'geoJson' && (type = record.type = 'geoJSON');\n      var parse = parsers[type];\n\n      if (process.env.NODE_ENV !== 'production') {\n        assert(parse, 'Illegal map type: ' + type);\n      }\n\n      parse(record);\n    });\n    return storage.set(mapName, records);\n  },\n  retrieveMap: function (mapName) {\n    return storage.get(mapName);\n  }\n};\nvar parsers = {\n  geoJSON: function (record) {\n    var source = record.source;\n    record.geoJSON = !isString(source) ? source : typeof JSON !== 'undefined' && JSON.parse ? JSON.parse(source) : new Function('return (' + source + ');')();\n  },\n  svg: function (record) {\n    record.svgXML = parseXML(record.source);\n  }\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parseClassType } from './clazz';\n\nvar ECEventProcessor = function () {\n  function ECEventProcessor() {}\n\n  ECEventProcessor.prototype.normalizeQuery = function (query) {\n    var cptQuery = {};\n    var dataQuery = {};\n    var otherQuery = {};\n\n    if (zrUtil.isString(query)) {\n      var condCptType = parseClassType(query);\n      cptQuery.mainType = condCptType.main || null;\n      cptQuery.subType = condCptType.sub || null;\n    } else {\n      var suffixes_1 = ['Index', 'Name', 'Id'];\n      var dataKeys_1 = {\n        name: 1,\n        dataIndex: 1,\n        dataType: 1\n      };\n      zrUtil.each(query, function (val, key) {\n        var reserved = false;\n\n        for (var i = 0; i < suffixes_1.length; i++) {\n          var propSuffix = suffixes_1[i];\n          var suffixPos = key.lastIndexOf(propSuffix);\n\n          if (suffixPos > 0 && suffixPos === key.length - propSuffix.length) {\n            var mainType = key.slice(0, suffixPos);\n\n            if (mainType !== 'data') {\n              cptQuery.mainType = mainType;\n              cptQuery[propSuffix.toLowerCase()] = val;\n              reserved = true;\n            }\n          }\n        }\n\n        if (dataKeys_1.hasOwnProperty(key)) {\n          dataQuery[key] = val;\n          reserved = true;\n        }\n\n        if (!reserved) {\n          otherQuery[key] = val;\n        }\n      });\n    }\n\n    return {\n      cptQuery: cptQuery,\n      dataQuery: dataQuery,\n      otherQuery: otherQuery\n    };\n  };\n\n  ECEventProcessor.prototype.filter = function (eventType, query) {\n    var eventInfo = this.eventInfo;\n\n    if (!eventInfo) {\n      return true;\n    }\n\n    var targetEl = eventInfo.targetEl;\n    var packedEvent = eventInfo.packedEvent;\n    var model = eventInfo.model;\n    var view = eventInfo.view;\n\n    if (!model || !view) {\n      return true;\n    }\n\n    var cptQuery = query.cptQuery;\n    var dataQuery = query.dataQuery;\n    return check(cptQuery, model, 'mainType') && check(cptQuery, model, 'subType') && check(cptQuery, model, 'index', 'componentIndex') && check(cptQuery, model, 'name') && check(cptQuery, model, 'id') && check(dataQuery, packedEvent, 'name') && check(dataQuery, packedEvent, 'dataIndex') && check(dataQuery, packedEvent, 'dataType') && (!view.filterForExposedEvent || view.filterForExposedEvent(eventType, query.otherQuery, targetEl, packedEvent));\n\n    function check(query, host, prop, propOnHost) {\n      return query[prop] == null || host[propOnHost || prop] === query[prop];\n    }\n  };\n\n  ECEventProcessor.prototype.afterTrigger = function () {\n    this.eventInfo = null;\n  };\n\n  return ECEventProcessor;\n}();\n\nexport { ECEventProcessor };\n;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isFunction } from 'zrender/lib/core/util';\nvar seriesSymbolTask = {\n  createOnAllSeries: true,\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    var data = seriesModel.getData();\n\n    if (seriesModel.legendSymbol) {\n      data.setVisual('legendSymbol', seriesModel.legendSymbol);\n    }\n\n    if (!seriesModel.hasSymbolVisual) {\n      return;\n    }\n\n    var symbolType = seriesModel.get('symbol');\n    var symbolSize = seriesModel.get('symbolSize');\n    var keepAspect = seriesModel.get('symbolKeepAspect');\n    var symbolRotate = seriesModel.get('symbolRotate');\n    var hasSymbolTypeCallback = isFunction(symbolType);\n    var hasSymbolSizeCallback = isFunction(symbolSize);\n    var hasSymbolRotateCallback = isFunction(symbolRotate);\n    var hasCallback = hasSymbolTypeCallback || hasSymbolSizeCallback || hasSymbolRotateCallback;\n    var seriesSymbol = !hasSymbolTypeCallback && symbolType ? symbolType : seriesModel.defaultSymbol;\n    var seriesSymbolSize = !hasSymbolSizeCallback ? symbolSize : null;\n    var seriesSymbolRotate = !hasSymbolRotateCallback ? symbolRotate : null;\n    data.setVisual({\n      legendSymbol: seriesModel.legendSymbol || seriesSymbol,\n      symbol: seriesSymbol,\n      symbolSize: seriesSymbolSize,\n      symbolKeepAspect: keepAspect,\n      symbolRotate: seriesSymbolRotate\n    });\n\n    if (ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    function dataEach(data, idx) {\n      var rawValue = seriesModel.getRawValue(idx);\n      var params = seriesModel.getDataParams(idx);\n      hasSymbolTypeCallback && data.setItemVisual(idx, 'symbol', symbolType(rawValue, params));\n      hasSymbolSizeCallback && data.setItemVisual(idx, 'symbolSize', symbolSize(rawValue, params));\n      hasSymbolRotateCallback && data.setItemVisual(idx, 'symbolRotate', symbolRotate(rawValue, params));\n    }\n\n    return {\n      dataEach: hasCallback ? dataEach : null\n    };\n  }\n};\nvar dataSymbolTask = {\n  createOnAllSeries: true,\n  performRawSeries: true,\n  reset: function (seriesModel, ecModel) {\n    if (!seriesModel.hasSymbolVisual) {\n      return;\n    }\n\n    if (ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n\n    function dataEach(data, idx) {\n      var itemModel = data.getItemModel(idx);\n      var itemSymbolType = itemModel.getShallow('symbol', true);\n      var itemSymbolSize = itemModel.getShallow('symbolSize', true);\n      var itemSymbolRotate = itemModel.getShallow('symbolRotate', true);\n      var itemSymbolKeepAspect = itemModel.getShallow('symbolKeepAspect', true);\n\n      if (itemSymbolType != null) {\n        data.setItemVisual(idx, 'symbol', itemSymbolType);\n      }\n\n      if (itemSymbolSize != null) {\n        data.setItemVisual(idx, 'symbolSize', itemSymbolSize);\n      }\n\n      if (itemSymbolRotate != null) {\n        data.setItemVisual(idx, 'symbolRotate', itemSymbolRotate);\n      }\n\n      if (itemSymbolKeepAspect != null) {\n        data.setItemVisual(idx, 'symbolKeepAspect', itemSymbolKeepAspect);\n      }\n    }\n\n    return {\n      dataEach: data.hasItemOption ? dataEach : null\n    };\n  }\n};\nexport { seriesSymbolTask, dataSymbolTask };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function getItemVisualFromData(data, dataIndex, key) {\n  switch (key) {\n    case 'color':\n      var style = data.getItemVisual(dataIndex, 'style');\n      return style[data.getVisual('drawType')];\n\n    case 'opacity':\n      return data.getItemVisual(dataIndex, 'style').opacity;\n\n    case 'symbol':\n    case 'symbolSize':\n    case 'liftZ':\n      return data.getItemVisual(dataIndex, key);\n\n    default:\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn(\"Unknown visual type \" + key);\n      }\n\n  }\n}\nexport function getVisualFromData(data, key) {\n  switch (key) {\n    case 'color':\n      var style = data.getVisual('style');\n      return style[data.getVisual('drawType')];\n\n    case 'opacity':\n      return data.getVisual('style').opacity;\n\n    case 'symbol':\n    case 'symbolSize':\n    case 'liftZ':\n      return data.getVisual(key);\n\n    default:\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn(\"Unknown visual type \" + key);\n      }\n\n  }\n}\nexport function setItemVisualFromData(data, dataIndex, key, value) {\n  switch (key) {\n    case 'color':\n      var style = data.ensureUniqueItemVisual(dataIndex, 'style');\n      style[data.getVisual('drawType')] = value;\n      data.setItemVisual(dataIndex, 'colorFromPalette', false);\n      break;\n\n    case 'opacity':\n      data.ensureUniqueItemVisual(dataIndex, 'style').opacity = value;\n      break;\n\n    case 'symbol':\n    case 'symbolSize':\n    case 'liftZ':\n      data.setItemVisual(dataIndex, key, value);\n      break;\n\n    default:\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn(\"Unknown visual type \" + key);\n      }\n\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { Point, Path, Polyline } from '../util/graphic';\nimport PathProxy from 'zrender/lib/core/PathProxy';\nimport { normalizeRadian } from 'zrender/lib/contain/util';\nimport { cubicProjectPoint, quadraticProjectPoint } from 'zrender/lib/core/curve';\nimport { defaults, retrieve2 } from 'zrender/lib/core/util';\nimport { invert } from 'zrender/lib/core/matrix';\nimport * as vector from 'zrender/lib/core/vector';\nimport { DISPLAY_STATES, SPECIAL_STATES } from '../util/states';\nvar PI2 = Math.PI * 2;\nvar CMD = PathProxy.CMD;\nvar DEFAULT_SEARCH_SPACE = ['top', 'right', 'bottom', 'left'];\n\nfunction getCandidateAnchor(pos, distance, rect, outPt, outDir) {\n  var width = rect.width;\n  var height = rect.height;\n\n  switch (pos) {\n    case 'top':\n      outPt.set(rect.x + width / 2, rect.y - distance);\n      outDir.set(0, -1);\n      break;\n\n    case 'bottom':\n      outPt.set(rect.x + width / 2, rect.y + height + distance);\n      outDir.set(0, 1);\n      break;\n\n    case 'left':\n      outPt.set(rect.x - distance, rect.y + height / 2);\n      outDir.set(-1, 0);\n      break;\n\n    case 'right':\n      outPt.set(rect.x + width + distance, rect.y + height / 2);\n      outDir.set(1, 0);\n      break;\n  }\n}\n\nfunction projectPointToArc(cx, cy, r, startAngle, endAngle, anticlockwise, x, y, out) {\n  x -= cx;\n  y -= cy;\n  var d = Math.sqrt(x * x + y * y);\n  x /= d;\n  y /= d;\n  var ox = x * r + cx;\n  var oy = y * r + cy;\n\n  if (Math.abs(startAngle - endAngle) % PI2 < 1e-4) {\n    out[0] = ox;\n    out[1] = oy;\n    return d - r;\n  }\n\n  if (anticlockwise) {\n    var tmp = startAngle;\n    startAngle = normalizeRadian(endAngle);\n    endAngle = normalizeRadian(tmp);\n  } else {\n    startAngle = normalizeRadian(startAngle);\n    endAngle = normalizeRadian(endAngle);\n  }\n\n  if (startAngle > endAngle) {\n    endAngle += PI2;\n  }\n\n  var angle = Math.atan2(y, x);\n\n  if (angle < 0) {\n    angle += PI2;\n  }\n\n  if (angle >= startAngle && angle <= endAngle || angle + PI2 >= startAngle && angle + PI2 <= endAngle) {\n    out[0] = ox;\n    out[1] = oy;\n    return d - r;\n  }\n\n  var x1 = r * Math.cos(startAngle) + cx;\n  var y1 = r * Math.sin(startAngle) + cy;\n  var x2 = r * Math.cos(endAngle) + cx;\n  var y2 = r * Math.sin(endAngle) + cy;\n  var d1 = (x1 - x) * (x1 - x) + (y1 - y) * (y1 - y);\n  var d2 = (x2 - x) * (x2 - x) + (y2 - y) * (y2 - y);\n\n  if (d1 < d2) {\n    out[0] = x1;\n    out[1] = y1;\n    return Math.sqrt(d1);\n  } else {\n    out[0] = x2;\n    out[1] = y2;\n    return Math.sqrt(d2);\n  }\n}\n\nfunction projectPointToLine(x1, y1, x2, y2, x, y, out, limitToEnds) {\n  var dx = x - x1;\n  var dy = y - y1;\n  var dx1 = x2 - x1;\n  var dy1 = y2 - y1;\n  var lineLen = Math.sqrt(dx1 * dx1 + dy1 * dy1);\n  dx1 /= lineLen;\n  dy1 /= lineLen;\n  var projectedLen = dx * dx1 + dy * dy1;\n  var t = projectedLen / lineLen;\n\n  if (limitToEnds) {\n    t = Math.min(Math.max(t, 0), 1);\n  }\n\n  t *= lineLen;\n  var ox = out[0] = x1 + t * dx1;\n  var oy = out[1] = y1 + t * dy1;\n  return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\n}\n\nfunction projectPointToRect(x1, y1, width, height, x, y, out) {\n  if (width < 0) {\n    x1 = x1 + width;\n    width = -width;\n  }\n\n  if (height < 0) {\n    y1 = y1 + height;\n    height = -height;\n  }\n\n  var x2 = x1 + width;\n  var y2 = y1 + height;\n  var ox = out[0] = Math.min(Math.max(x, x1), x2);\n  var oy = out[1] = Math.min(Math.max(y, y1), y2);\n  return Math.sqrt((ox - x) * (ox - x) + (oy - y) * (oy - y));\n}\n\nvar tmpPt = [];\n\nfunction nearestPointOnRect(pt, rect, out) {\n  var dist = projectPointToRect(rect.x, rect.y, rect.width, rect.height, pt.x, pt.y, tmpPt);\n  out.set(tmpPt[0], tmpPt[1]);\n  return dist;\n}\n\nfunction nearestPointOnPath(pt, path, out) {\n  var xi = 0;\n  var yi = 0;\n  var x0 = 0;\n  var y0 = 0;\n  var x1;\n  var y1;\n  var minDist = Infinity;\n  var data = path.data;\n  var x = pt.x;\n  var y = pt.y;\n\n  for (var i = 0; i < data.length;) {\n    var cmd = data[i++];\n\n    if (i === 1) {\n      xi = data[i];\n      yi = data[i + 1];\n      x0 = xi;\n      y0 = yi;\n    }\n\n    var d = minDist;\n\n    switch (cmd) {\n      case CMD.M:\n        x0 = data[i++];\n        y0 = data[i++];\n        xi = x0;\n        yi = y0;\n        break;\n\n      case CMD.L:\n        d = projectPointToLine(xi, yi, data[i], data[i + 1], x, y, tmpPt, true);\n        xi = data[i++];\n        yi = data[i++];\n        break;\n\n      case CMD.C:\n        d = cubicProjectPoint(xi, yi, data[i++], data[i++], data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\n        xi = data[i++];\n        yi = data[i++];\n        break;\n\n      case CMD.Q:\n        d = quadraticProjectPoint(xi, yi, data[i++], data[i++], data[i], data[i + 1], x, y, tmpPt);\n        xi = data[i++];\n        yi = data[i++];\n        break;\n\n      case CMD.A:\n        var cx = data[i++];\n        var cy = data[i++];\n        var rx = data[i++];\n        var ry = data[i++];\n        var theta = data[i++];\n        var dTheta = data[i++];\n        i += 1;\n        var anticlockwise = !!(1 - data[i++]);\n        x1 = Math.cos(theta) * rx + cx;\n        y1 = Math.sin(theta) * ry + cy;\n\n        if (i <= 1) {\n          x0 = x1;\n          y0 = y1;\n        }\n\n        var _x = (x - cx) * ry / rx + cx;\n\n        d = projectPointToArc(cx, cy, ry, theta, theta + dTheta, anticlockwise, _x, y, tmpPt);\n        xi = Math.cos(theta + dTheta) * rx + cx;\n        yi = Math.sin(theta + dTheta) * ry + cy;\n        break;\n\n      case CMD.R:\n        x0 = xi = data[i++];\n        y0 = yi = data[i++];\n        var width = data[i++];\n        var height = data[i++];\n        d = projectPointToRect(x0, y0, width, height, x, y, tmpPt);\n        break;\n\n      case CMD.Z:\n        d = projectPointToLine(xi, yi, x0, y0, x, y, tmpPt, true);\n        xi = x0;\n        yi = y0;\n        break;\n    }\n\n    if (d < minDist) {\n      minDist = d;\n      out.set(tmpPt[0], tmpPt[1]);\n    }\n  }\n\n  return minDist;\n}\n\nvar pt0 = new Point();\nvar pt1 = new Point();\nvar pt2 = new Point();\nvar dir = new Point();\nvar dir2 = new Point();\nexport function updateLabelLinePoints(target, labelLineModel) {\n  if (!target) {\n    return;\n  }\n\n  var labelLine = target.getTextGuideLine();\n  var label = target.getTextContent();\n\n  if (!(label && labelLine)) {\n    return;\n  }\n\n  var labelGuideConfig = target.textGuideLineConfig || {};\n  var points = [[0, 0], [0, 0], [0, 0]];\n  var searchSpace = labelGuideConfig.candidates || DEFAULT_SEARCH_SPACE;\n  var labelRect = label.getBoundingRect().clone();\n  labelRect.applyTransform(label.getComputedTransform());\n  var minDist = Infinity;\n  var anchorPoint = labelGuideConfig.anchor;\n  var targetTransform = target.getComputedTransform();\n  var targetInversedTransform = targetTransform && invert([], targetTransform);\n  var len = labelLineModel.get('length2') || 0;\n\n  if (anchorPoint) {\n    pt2.copy(anchorPoint);\n  }\n\n  for (var i = 0; i < searchSpace.length; i++) {\n    var candidate = searchSpace[i];\n    getCandidateAnchor(candidate, 0, labelRect, pt0, dir);\n    Point.scaleAndAdd(pt1, pt0, dir, len);\n    pt1.transform(targetInversedTransform);\n    var boundingRect = target.getBoundingRect();\n    var dist = anchorPoint ? anchorPoint.distance(pt1) : target instanceof Path ? nearestPointOnPath(pt1, target.path, pt2) : nearestPointOnRect(pt1, boundingRect, pt2);\n\n    if (dist < minDist) {\n      minDist = dist;\n      pt1.transform(targetTransform);\n      pt2.transform(targetTransform);\n      pt2.toArray(points[0]);\n      pt1.toArray(points[1]);\n      pt0.toArray(points[2]);\n    }\n  }\n\n  limitTurnAngle(points, labelLineModel.get('minTurnAngle'));\n  labelLine.setShape({\n    points: points\n  });\n}\nvar tmpArr = [];\nvar tmpProjPoint = new Point();\nexport function limitTurnAngle(linePoints, minTurnAngle) {\n  if (!(minTurnAngle <= 180 && minTurnAngle > 0)) {\n    return;\n  }\n\n  minTurnAngle = minTurnAngle / 180 * Math.PI;\n  pt0.fromArray(linePoints[0]);\n  pt1.fromArray(linePoints[1]);\n  pt2.fromArray(linePoints[2]);\n  Point.sub(dir, pt0, pt1);\n  Point.sub(dir2, pt2, pt1);\n  var len1 = dir.len();\n  var len2 = dir2.len();\n\n  if (len1 < 1e-3 || len2 < 1e-3) {\n    return;\n  }\n\n  dir.scale(1 / len1);\n  dir2.scale(1 / len2);\n  var angleCos = dir.dot(dir2);\n  var minTurnAngleCos = Math.cos(minTurnAngle);\n\n  if (minTurnAngleCos < angleCos) {\n    var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\n    tmpProjPoint.fromArray(tmpArr);\n    tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI - minTurnAngle));\n    var t = pt2.x !== pt1.x ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x) : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\n\n    if (isNaN(t)) {\n      return;\n    }\n\n    if (t < 0) {\n      Point.copy(tmpProjPoint, pt1);\n    } else if (t > 1) {\n      Point.copy(tmpProjPoint, pt2);\n    }\n\n    tmpProjPoint.toArray(linePoints[1]);\n  }\n}\nexport function limitSurfaceAngle(linePoints, surfaceNormal, maxSurfaceAngle) {\n  if (!(maxSurfaceAngle <= 180 && maxSurfaceAngle > 0)) {\n    return;\n  }\n\n  maxSurfaceAngle = maxSurfaceAngle / 180 * Math.PI;\n  pt0.fromArray(linePoints[0]);\n  pt1.fromArray(linePoints[1]);\n  pt2.fromArray(linePoints[2]);\n  Point.sub(dir, pt1, pt0);\n  Point.sub(dir2, pt2, pt1);\n  var len1 = dir.len();\n  var len2 = dir2.len();\n\n  if (len1 < 1e-3 || len2 < 1e-3) {\n    return;\n  }\n\n  dir.scale(1 / len1);\n  dir2.scale(1 / len2);\n  var angleCos = dir.dot(surfaceNormal);\n  var maxSurfaceAngleCos = Math.cos(maxSurfaceAngle);\n\n  if (angleCos < maxSurfaceAngleCos) {\n    var d = projectPointToLine(pt1.x, pt1.y, pt2.x, pt2.y, pt0.x, pt0.y, tmpArr, false);\n    tmpProjPoint.fromArray(tmpArr);\n    var HALF_PI = Math.PI / 2;\n    var angle2 = Math.acos(dir2.dot(surfaceNormal));\n    var newAngle = HALF_PI + angle2 - maxSurfaceAngle;\n\n    if (newAngle >= HALF_PI) {\n      Point.copy(tmpProjPoint, pt2);\n    } else {\n      tmpProjPoint.scaleAndAdd(dir2, d / Math.tan(Math.PI / 2 - newAngle));\n      var t = pt2.x !== pt1.x ? (tmpProjPoint.x - pt1.x) / (pt2.x - pt1.x) : (tmpProjPoint.y - pt1.y) / (pt2.y - pt1.y);\n\n      if (isNaN(t)) {\n        return;\n      }\n\n      if (t < 0) {\n        Point.copy(tmpProjPoint, pt1);\n      } else if (t > 1) {\n        Point.copy(tmpProjPoint, pt2);\n      }\n    }\n\n    tmpProjPoint.toArray(linePoints[1]);\n  }\n}\n\nfunction setLabelLineState(labelLine, ignore, stateName, stateModel) {\n  var isNormal = stateName === 'normal';\n  var stateObj = isNormal ? labelLine : labelLine.ensureState(stateName);\n  stateObj.ignore = ignore;\n  var smooth = stateModel.get('smooth');\n\n  if (smooth && smooth === true) {\n    smooth = 0.3;\n  }\n\n  stateObj.shape = stateObj.shape || {};\n\n  if (smooth > 0) {\n    stateObj.shape.smooth = smooth;\n  }\n\n  var styleObj = stateModel.getModel('lineStyle').getLineStyle();\n  isNormal ? labelLine.useStyle(styleObj) : stateObj.style = styleObj;\n}\n\nfunction buildLabelLinePath(path, shape) {\n  var smooth = shape.smooth;\n  var points = shape.points;\n\n  if (!points) {\n    return;\n  }\n\n  path.moveTo(points[0][0], points[0][1]);\n\n  if (smooth > 0 && points.length >= 3) {\n    var len1 = vector.dist(points[0], points[1]);\n    var len2 = vector.dist(points[1], points[2]);\n\n    if (!len1 || !len2) {\n      path.lineTo(points[1][0], points[1][1]);\n      path.lineTo(points[2][0], points[2][1]);\n      return;\n    }\n\n    var moveLen = Math.min(len1, len2) * smooth;\n    var midPoint0 = vector.lerp([], points[1], points[0], moveLen / len1);\n    var midPoint2 = vector.lerp([], points[1], points[2], moveLen / len2);\n    var midPoint1 = vector.lerp([], midPoint0, midPoint2, 0.5);\n    path.bezierCurveTo(midPoint0[0], midPoint0[1], midPoint0[0], midPoint0[1], midPoint1[0], midPoint1[1]);\n    path.bezierCurveTo(midPoint2[0], midPoint2[1], midPoint2[0], midPoint2[1], points[2][0], points[2][1]);\n  } else {\n    for (var i = 1; i < points.length; i++) {\n      path.lineTo(points[i][0], points[i][1]);\n    }\n  }\n}\n\nexport function setLabelLineStyle(targetEl, statesModels, defaultStyle) {\n  var labelLine = targetEl.getTextGuideLine();\n  var label = targetEl.getTextContent();\n\n  if (!label) {\n    if (labelLine) {\n      targetEl.removeTextGuideLine();\n    }\n\n    return;\n  }\n\n  var normalModel = statesModels.normal;\n  var showNormal = normalModel.get('show');\n  var labelIgnoreNormal = label.ignore;\n\n  for (var i = 0; i < DISPLAY_STATES.length; i++) {\n    var stateName = DISPLAY_STATES[i];\n    var stateModel = statesModels[stateName];\n    var isNormal = stateName === 'normal';\n\n    if (stateModel) {\n      var stateShow = stateModel.get('show');\n      var isLabelIgnored = isNormal ? labelIgnoreNormal : retrieve2(label.states[stateName] && label.states[stateName].ignore, labelIgnoreNormal);\n\n      if (isLabelIgnored || !retrieve2(stateShow, showNormal)) {\n        var stateObj = isNormal ? labelLine : labelLine && labelLine.states.normal;\n\n        if (stateObj) {\n          stateObj.ignore = true;\n        }\n\n        continue;\n      }\n\n      if (!labelLine) {\n        labelLine = new Polyline();\n        targetEl.setTextGuideLine(labelLine);\n\n        if (!isNormal && (labelIgnoreNormal || !showNormal)) {\n          setLabelLineState(labelLine, true, 'normal', statesModels.normal);\n        }\n\n        if (targetEl.stateProxy) {\n          labelLine.stateProxy = targetEl.stateProxy;\n        }\n      }\n\n      setLabelLineState(labelLine, false, stateName, stateModel);\n    }\n  }\n\n  if (labelLine) {\n    defaults(labelLine.style, defaultStyle);\n    labelLine.style.fill = null;\n    var showAbove = normalModel.get('showAbove');\n    var labelLineConfig = targetEl.textGuideLineConfig = targetEl.textGuideLineConfig || {};\n    labelLineConfig.showAbove = showAbove || false;\n    labelLine.buildPath = buildLabelLinePath;\n  }\n}\nexport function getLabelLineStatesModels(itemModel, labelLineName) {\n  labelLineName = labelLineName || 'labelLine';\n  var statesModels = {\n    normal: itemModel.getModel(labelLineName)\n  };\n\n  for (var i = 0; i < SPECIAL_STATES.length; i++) {\n    var stateName = SPECIAL_STATES[i];\n    statesModels[stateName] = itemModel.getModel([stateName, labelLineName]);\n  }\n\n  return statesModels;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { BoundingRect, OrientedBoundingRect } from '../util/graphic';\nexport function prepareLayoutList(input) {\n  var list = [];\n\n  for (var i = 0; i < input.length; i++) {\n    var rawItem = input[i];\n\n    if (rawItem.defaultAttr.ignore) {\n      continue;\n    }\n\n    var label = rawItem.label;\n    var transform = label.getComputedTransform();\n    var localRect = label.getBoundingRect();\n    var isAxisAligned = !transform || transform[1] < 1e-5 && transform[2] < 1e-5;\n    var minMargin = label.style.margin || 0;\n    var globalRect = localRect.clone();\n    globalRect.applyTransform(transform);\n    globalRect.x -= minMargin / 2;\n    globalRect.y -= minMargin / 2;\n    globalRect.width += minMargin;\n    globalRect.height += minMargin;\n    var obb = isAxisAligned ? new OrientedBoundingRect(localRect, transform) : null;\n    list.push({\n      label: label,\n      labelLine: rawItem.labelLine,\n      rect: globalRect,\n      localRect: localRect,\n      obb: obb,\n      priority: rawItem.priority,\n      defaultAttr: rawItem.defaultAttr,\n      layoutOption: rawItem.computedLayoutOption,\n      axisAligned: isAxisAligned,\n      transform: transform\n    });\n  }\n\n  return list;\n}\n\nfunction shiftLayout(list, xyDim, sizeDim, minBound, maxBound, balanceShift) {\n  var len = list.length;\n\n  if (len < 2) {\n    return;\n  }\n\n  list.sort(function (a, b) {\n    return a.rect[xyDim] - b.rect[xyDim];\n  });\n  var lastPos = 0;\n  var delta;\n  var adjusted = false;\n  var shifts = [];\n  var totalShifts = 0;\n\n  for (var i = 0; i < len; i++) {\n    var item = list[i];\n    var rect = item.rect;\n    delta = rect[xyDim] - lastPos;\n\n    if (delta < 0) {\n      rect[xyDim] -= delta;\n      item.label[xyDim] -= delta;\n      adjusted = true;\n    }\n\n    var shift = Math.max(-delta, 0);\n    shifts.push(shift);\n    totalShifts += shift;\n    lastPos = rect[xyDim] + rect[sizeDim];\n  }\n\n  if (totalShifts > 0 && balanceShift) {\n    shiftList(-totalShifts / len, 0, len);\n  }\n\n  var first = list[0];\n  var last = list[len - 1];\n  var minGap;\n  var maxGap;\n  updateMinMaxGap();\n  minGap < 0 && squeezeGaps(-minGap, 0.8);\n  maxGap < 0 && squeezeGaps(maxGap, 0.8);\n  updateMinMaxGap();\n  takeBoundsGap(minGap, maxGap, 1);\n  takeBoundsGap(maxGap, minGap, -1);\n  updateMinMaxGap();\n\n  if (minGap < 0) {\n    squeezeWhenBailout(-minGap);\n  }\n\n  if (maxGap < 0) {\n    squeezeWhenBailout(maxGap);\n  }\n\n  function updateMinMaxGap() {\n    minGap = first.rect[xyDim] - minBound;\n    maxGap = maxBound - last.rect[xyDim] - last.rect[sizeDim];\n  }\n\n  function takeBoundsGap(gapThisBound, gapOtherBound, moveDir) {\n    if (gapThisBound < 0) {\n      var moveFromMaxGap = Math.min(gapOtherBound, -gapThisBound);\n\n      if (moveFromMaxGap > 0) {\n        shiftList(moveFromMaxGap * moveDir, 0, len);\n        var remained = moveFromMaxGap + gapThisBound;\n\n        if (remained < 0) {\n          squeezeGaps(-remained * moveDir, 1);\n        }\n      } else {\n        squeezeGaps(-gapThisBound * moveDir, 1);\n      }\n    }\n  }\n\n  function shiftList(delta, start, end) {\n    if (delta !== 0) {\n      adjusted = true;\n    }\n\n    for (var i = start; i < end; i++) {\n      var item = list[i];\n      var rect = item.rect;\n      rect[xyDim] += delta;\n      item.label[xyDim] += delta;\n    }\n  }\n\n  function squeezeGaps(delta, maxSqeezePercent) {\n    var gaps = [];\n    var totalGaps = 0;\n\n    for (var i = 1; i < len; i++) {\n      var prevItemRect = list[i - 1].rect;\n      var gap = Math.max(list[i].rect[xyDim] - prevItemRect[xyDim] - prevItemRect[sizeDim], 0);\n      gaps.push(gap);\n      totalGaps += gap;\n    }\n\n    if (!totalGaps) {\n      return;\n    }\n\n    var squeezePercent = Math.min(Math.abs(delta) / totalGaps, maxSqeezePercent);\n\n    if (delta > 0) {\n      for (var i = 0; i < len - 1; i++) {\n        var movement = gaps[i] * squeezePercent;\n        shiftList(movement, 0, i + 1);\n      }\n    } else {\n      for (var i = len - 1; i > 0; i--) {\n        var movement = gaps[i - 1] * squeezePercent;\n        shiftList(-movement, i, len);\n      }\n    }\n  }\n\n  function squeezeWhenBailout(delta) {\n    var dir = delta < 0 ? -1 : 1;\n    delta = Math.abs(delta);\n    var moveForEachLabel = Math.ceil(delta / (len - 1));\n\n    for (var i = 0; i < len - 1; i++) {\n      if (dir > 0) {\n        shiftList(moveForEachLabel, 0, i + 1);\n      } else {\n        shiftList(-moveForEachLabel, len - i - 1, len);\n      }\n\n      delta -= moveForEachLabel;\n\n      if (delta <= 0) {\n        return;\n      }\n    }\n  }\n\n  return adjusted;\n}\n\nexport function shiftLayoutOnX(list, leftBound, rightBound, balanceShift) {\n  return shiftLayout(list, 'x', 'width', leftBound, rightBound, balanceShift);\n}\nexport function shiftLayoutOnY(list, topBound, bottomBound, balanceShift) {\n  return shiftLayout(list, 'y', 'height', topBound, bottomBound, balanceShift);\n}\nexport function hideOverlap(labelList) {\n  var displayedLabels = [];\n  labelList.sort(function (a, b) {\n    return b.priority - a.priority;\n  });\n  var globalRect = new BoundingRect(0, 0, 0, 0);\n\n  function hideEl(el) {\n    if (!el.ignore) {\n      var emphasisState = el.ensureState('emphasis');\n\n      if (emphasisState.ignore == null) {\n        emphasisState.ignore = false;\n      }\n    }\n\n    el.ignore = true;\n  }\n\n  for (var i = 0; i < labelList.length; i++) {\n    var labelItem = labelList[i];\n    var isAxisAligned = labelItem.axisAligned;\n    var localRect = labelItem.localRect;\n    var transform = labelItem.transform;\n    var label = labelItem.label;\n    var labelLine = labelItem.labelLine;\n    globalRect.copy(labelItem.rect);\n    globalRect.width -= 0.1;\n    globalRect.height -= 0.1;\n    globalRect.x += 0.05;\n    globalRect.y += 0.05;\n    var obb = labelItem.obb;\n    var overlapped = false;\n\n    for (var j = 0; j < displayedLabels.length; j++) {\n      var existsTextCfg = displayedLabels[j];\n\n      if (!globalRect.intersect(existsTextCfg.rect)) {\n        continue;\n      }\n\n      if (isAxisAligned && existsTextCfg.axisAligned) {\n        overlapped = true;\n        break;\n      }\n\n      if (!existsTextCfg.obb) {\n        existsTextCfg.obb = new OrientedBoundingRect(existsTextCfg.localRect, existsTextCfg.transform);\n      }\n\n      if (!obb) {\n        obb = new OrientedBoundingRect(localRect, transform);\n      }\n\n      if (obb.intersect(existsTextCfg.obb)) {\n        overlapped = true;\n        break;\n      }\n    }\n\n    if (overlapped) {\n      hideEl(label);\n      labelLine && hideEl(labelLine);\n    } else {\n      label.attr('ignore', labelItem.defaultAttr.ignore);\n      labelLine && labelLine.attr('ignore', labelItem.defaultAttr.labelGuideIgnore);\n      displayedLabels.push(labelItem);\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { BoundingRect, updateProps, initProps, isElementRemoved } from '../util/graphic';\nimport { getECData } from '../util/innerStore';\nimport { parsePercent } from '../util/number';\nimport Transformable from 'zrender/lib/core/Transformable';\nimport { updateLabelLinePoints, setLabelLineStyle, getLabelLineStatesModels } from './labelGuideHelper';\nimport { makeInner } from '../util/model';\nimport { retrieve2, each, keys, isFunction, filter, indexOf } from 'zrender/lib/core/util';\nimport { prepareLayoutList, hideOverlap, shiftLayoutOnX, shiftLayoutOnY } from './labelLayoutHelper';\nimport { labelInner, animateLabelValue } from './labelStyle';\n\nfunction cloneArr(points) {\n  if (points) {\n    var newPoints = [];\n\n    for (var i = 0; i < points.length; i++) {\n      newPoints.push(points[i].slice());\n    }\n\n    return newPoints;\n  }\n}\n\nfunction prepareLayoutCallbackParams(labelItem, hostEl) {\n  var label = labelItem.label;\n  var labelLine = hostEl && hostEl.getTextGuideLine();\n  return {\n    dataIndex: labelItem.dataIndex,\n    dataType: labelItem.dataType,\n    seriesIndex: labelItem.seriesModel.seriesIndex,\n    text: labelItem.label.style.text,\n    rect: labelItem.hostRect,\n    labelRect: labelItem.rect,\n    align: label.style.align,\n    verticalAlign: label.style.verticalAlign,\n    labelLinePoints: cloneArr(labelLine && labelLine.shape.points)\n  };\n}\n\nvar LABEL_OPTION_TO_STYLE_KEYS = ['align', 'verticalAlign', 'width', 'height', 'fontSize'];\nvar dummyTransformable = new Transformable();\nvar labelLayoutInnerStore = makeInner();\nvar labelLineAnimationStore = makeInner();\n\nfunction extendWithKeys(target, source, keys) {\n  for (var i = 0; i < keys.length; i++) {\n    var key = keys[i];\n\n    if (source[key] != null) {\n      target[key] = source[key];\n    }\n  }\n}\n\nvar LABEL_LAYOUT_PROPS = ['x', 'y', 'rotation'];\n\nvar LabelManager = function () {\n  function LabelManager() {\n    this._labelList = [];\n    this._chartViewList = [];\n  }\n\n  LabelManager.prototype.clearLabels = function () {\n    this._labelList = [];\n    this._chartViewList = [];\n  };\n\n  LabelManager.prototype._addLabel = function (dataIndex, dataType, seriesModel, label, layoutOption) {\n    var labelStyle = label.style;\n    var hostEl = label.__hostTarget;\n    var textConfig = hostEl.textConfig || {};\n    var labelTransform = label.getComputedTransform();\n    var labelRect = label.getBoundingRect().plain();\n    BoundingRect.applyTransform(labelRect, labelRect, labelTransform);\n\n    if (labelTransform) {\n      dummyTransformable.setLocalTransform(labelTransform);\n    } else {\n      dummyTransformable.x = dummyTransformable.y = dummyTransformable.rotation = dummyTransformable.originX = dummyTransformable.originY = 0;\n      dummyTransformable.scaleX = dummyTransformable.scaleY = 1;\n    }\n\n    var host = label.__hostTarget;\n    var hostRect;\n\n    if (host) {\n      hostRect = host.getBoundingRect().plain();\n      var transform = host.getComputedTransform();\n      BoundingRect.applyTransform(hostRect, hostRect, transform);\n    }\n\n    var labelGuide = hostRect && host.getTextGuideLine();\n\n    this._labelList.push({\n      label: label,\n      labelLine: labelGuide,\n      seriesModel: seriesModel,\n      dataIndex: dataIndex,\n      dataType: dataType,\n      layoutOption: layoutOption,\n      computedLayoutOption: null,\n      rect: labelRect,\n      hostRect: hostRect,\n      priority: hostRect ? hostRect.width * hostRect.height : 0,\n      defaultAttr: {\n        ignore: label.ignore,\n        labelGuideIgnore: labelGuide && labelGuide.ignore,\n        x: dummyTransformable.x,\n        y: dummyTransformable.y,\n        rotation: dummyTransformable.rotation,\n        style: {\n          x: labelStyle.x,\n          y: labelStyle.y,\n          align: labelStyle.align,\n          verticalAlign: labelStyle.verticalAlign,\n          width: labelStyle.width,\n          height: labelStyle.height,\n          fontSize: labelStyle.fontSize\n        },\n        cursor: label.cursor,\n        attachedPos: textConfig.position,\n        attachedRot: textConfig.rotation\n      }\n    });\n  };\n\n  LabelManager.prototype.addLabelsOfSeries = function (chartView) {\n    var _this = this;\n\n    this._chartViewList.push(chartView);\n\n    var seriesModel = chartView.__model;\n    var layoutOption = seriesModel.get('labelLayout');\n\n    if (!(isFunction(layoutOption) || keys(layoutOption).length)) {\n      return;\n    }\n\n    chartView.group.traverse(function (child) {\n      if (child.ignore) {\n        return true;\n      }\n\n      var textEl = child.getTextContent();\n      var ecData = getECData(child);\n\n      if (textEl && !textEl.disableLabelLayout) {\n        _this._addLabel(ecData.dataIndex, ecData.dataType, seriesModel, textEl, layoutOption);\n      }\n    });\n  };\n\n  LabelManager.prototype.updateLayoutConfig = function (api) {\n    var width = api.getWidth();\n    var height = api.getHeight();\n\n    function createDragHandler(el, labelLineModel) {\n      return function () {\n        updateLabelLinePoints(el, labelLineModel);\n      };\n    }\n\n    for (var i = 0; i < this._labelList.length; i++) {\n      var labelItem = this._labelList[i];\n      var label = labelItem.label;\n      var hostEl = label.__hostTarget;\n      var defaultLabelAttr = labelItem.defaultAttr;\n      var layoutOption = void 0;\n\n      if (typeof labelItem.layoutOption === 'function') {\n        layoutOption = labelItem.layoutOption(prepareLayoutCallbackParams(labelItem, hostEl));\n      } else {\n        layoutOption = labelItem.layoutOption;\n      }\n\n      layoutOption = layoutOption || {};\n      labelItem.computedLayoutOption = layoutOption;\n      var degreeToRadian = Math.PI / 180;\n\n      if (hostEl) {\n        hostEl.setTextConfig({\n          local: false,\n          position: layoutOption.x != null || layoutOption.y != null ? null : defaultLabelAttr.attachedPos,\n          rotation: layoutOption.rotate != null ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.attachedRot,\n          offset: [layoutOption.dx || 0, layoutOption.dy || 0]\n        });\n      }\n\n      var needsUpdateLabelLine = false;\n\n      if (layoutOption.x != null) {\n        label.x = parsePercent(layoutOption.x, width);\n        label.setStyle('x', 0);\n        needsUpdateLabelLine = true;\n      } else {\n        label.x = defaultLabelAttr.x;\n        label.setStyle('x', defaultLabelAttr.style.x);\n      }\n\n      if (layoutOption.y != null) {\n        label.y = parsePercent(layoutOption.y, height);\n        label.setStyle('y', 0);\n        needsUpdateLabelLine = true;\n      } else {\n        label.y = defaultLabelAttr.y;\n        label.setStyle('y', defaultLabelAttr.style.y);\n      }\n\n      if (layoutOption.labelLinePoints) {\n        var guideLine = hostEl.getTextGuideLine();\n\n        if (guideLine) {\n          guideLine.setShape({\n            points: layoutOption.labelLinePoints\n          });\n          needsUpdateLabelLine = false;\n        }\n      }\n\n      var labelLayoutStore = labelLayoutInnerStore(label);\n      labelLayoutStore.needsUpdateLabelLine = needsUpdateLabelLine;\n      label.rotation = layoutOption.rotate != null ? layoutOption.rotate * degreeToRadian : defaultLabelAttr.rotation;\n\n      for (var k = 0; k < LABEL_OPTION_TO_STYLE_KEYS.length; k++) {\n        var key = LABEL_OPTION_TO_STYLE_KEYS[k];\n        label.setStyle(key, layoutOption[key] != null ? layoutOption[key] : defaultLabelAttr.style[key]);\n      }\n\n      if (layoutOption.draggable) {\n        label.draggable = true;\n        label.cursor = 'move';\n\n        if (hostEl) {\n          var hostModel = labelItem.seriesModel;\n\n          if (labelItem.dataIndex != null) {\n            var data = labelItem.seriesModel.getData(labelItem.dataType);\n            hostModel = data.getItemModel(labelItem.dataIndex);\n          }\n\n          label.on('drag', createDragHandler(hostEl, hostModel.getModel('labelLine')));\n        }\n      } else {\n        label.off('drag');\n        label.cursor = defaultLabelAttr.cursor;\n      }\n    }\n  };\n\n  LabelManager.prototype.layout = function (api) {\n    var width = api.getWidth();\n    var height = api.getHeight();\n    var labelList = prepareLayoutList(this._labelList);\n    var labelsNeedsAdjustOnX = filter(labelList, function (item) {\n      return item.layoutOption.moveOverlap === 'shiftX';\n    });\n    var labelsNeedsAdjustOnY = filter(labelList, function (item) {\n      return item.layoutOption.moveOverlap === 'shiftY';\n    });\n    shiftLayoutOnX(labelsNeedsAdjustOnX, 0, width);\n    shiftLayoutOnY(labelsNeedsAdjustOnY, 0, height);\n    var labelsNeedsHideOverlap = filter(labelList, function (item) {\n      return item.layoutOption.hideOverlap;\n    });\n    hideOverlap(labelsNeedsHideOverlap);\n  };\n\n  LabelManager.prototype.processLabelsOverall = function () {\n    var _this = this;\n\n    each(this._chartViewList, function (chartView) {\n      var seriesModel = chartView.__model;\n      var ignoreLabelLineUpdate = chartView.ignoreLabelLineUpdate;\n      var animationEnabled = seriesModel.isAnimationEnabled();\n      chartView.group.traverse(function (child) {\n        if (child.ignore) {\n          return true;\n        }\n\n        var needsUpdateLabelLine = !ignoreLabelLineUpdate;\n        var label = child.getTextContent();\n\n        if (!needsUpdateLabelLine && label) {\n          needsUpdateLabelLine = labelLayoutInnerStore(label).needsUpdateLabelLine;\n        }\n\n        if (needsUpdateLabelLine) {\n          _this._updateLabelLine(child, seriesModel);\n        }\n\n        if (animationEnabled) {\n          _this._animateLabels(child, seriesModel);\n        }\n      });\n    });\n  };\n\n  LabelManager.prototype._updateLabelLine = function (el, seriesModel) {\n    var textEl = el.getTextContent();\n    var ecData = getECData(el);\n    var dataIndex = ecData.dataIndex;\n\n    if (textEl && dataIndex != null) {\n      var data = seriesModel.getData(ecData.dataType);\n      var itemModel = data.getItemModel(dataIndex);\n      var defaultStyle = {};\n      var visualStyle = data.getItemVisual(dataIndex, 'style');\n      var visualType = data.getVisual('drawType');\n      defaultStyle.stroke = visualStyle[visualType];\n      var labelLineModel = itemModel.getModel('labelLine');\n      setLabelLineStyle(el, getLabelLineStatesModels(itemModel), defaultStyle);\n      updateLabelLinePoints(el, labelLineModel);\n    }\n  };\n\n  LabelManager.prototype._animateLabels = function (el, seriesModel) {\n    var textEl = el.getTextContent();\n    var guideLine = el.getTextGuideLine();\n\n    if (textEl && !textEl.ignore && !textEl.invisible && !el.disableLabelAnimation && !isElementRemoved(el)) {\n      var layoutStore = labelLayoutInnerStore(textEl);\n      var oldLayout = layoutStore.oldLayout;\n      var ecData = getECData(el);\n      var dataIndex = ecData.dataIndex;\n      var newProps = {\n        x: textEl.x,\n        y: textEl.y,\n        rotation: textEl.rotation\n      };\n      var data = seriesModel.getData(ecData.dataType);\n\n      if (!oldLayout) {\n        textEl.attr(newProps);\n\n        if (!labelInner(textEl).valueAnimation) {\n          var oldOpacity = retrieve2(textEl.style.opacity, 1);\n          textEl.style.opacity = 0;\n          initProps(textEl, {\n            style: {\n              opacity: oldOpacity\n            }\n          }, seriesModel, dataIndex);\n        }\n      } else {\n        textEl.attr(oldLayout);\n        var prevStates = el.prevStates;\n\n        if (prevStates) {\n          if (indexOf(prevStates, 'select') >= 0) {\n            textEl.attr(layoutStore.oldLayoutSelect);\n          }\n\n          if (indexOf(prevStates, 'emphasis') >= 0) {\n            textEl.attr(layoutStore.oldLayoutEmphasis);\n          }\n        }\n\n        updateProps(textEl, newProps, seriesModel, dataIndex);\n      }\n\n      layoutStore.oldLayout = newProps;\n\n      if (textEl.states.select) {\n        var layoutSelect = layoutStore.oldLayoutSelect = {};\n        extendWithKeys(layoutSelect, newProps, LABEL_LAYOUT_PROPS);\n        extendWithKeys(layoutSelect, textEl.states.select, LABEL_LAYOUT_PROPS);\n      }\n\n      if (textEl.states.emphasis) {\n        var layoutEmphasis = layoutStore.oldLayoutEmphasis = {};\n        extendWithKeys(layoutEmphasis, newProps, LABEL_LAYOUT_PROPS);\n        extendWithKeys(layoutEmphasis, textEl.states.emphasis, LABEL_LAYOUT_PROPS);\n      }\n\n      animateLabelValue(textEl, dataIndex, data, seriesModel, seriesModel);\n    }\n\n    if (guideLine && !guideLine.ignore && !guideLine.invisible) {\n      var layoutStore = labelLineAnimationStore(guideLine);\n      var oldLayout = layoutStore.oldLayout;\n      var newLayout = {\n        points: guideLine.shape.points\n      };\n\n      if (!oldLayout) {\n        guideLine.setShape(newLayout);\n        guideLine.style.strokePercent = 0;\n        initProps(guideLine, {\n          style: {\n            strokePercent: 1\n          }\n        }, seriesModel);\n      } else {\n        guideLine.attr({\n          shape: oldLayout\n        });\n        updateProps(guideLine, {\n          shape: newLayout\n        }, seriesModel);\n      }\n\n      layoutStore.oldLayout = newLayout;\n    }\n  };\n\n  return LabelManager;\n}();\n\nexport default LabelManager;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { extend, each, isArray } from 'zrender/lib/core/util';\nimport { deprecateReplaceLog, deprecateLog } from '../util/log';\nimport { queryDataIndex } from '../util/model';\nexport function createLegacyDataSelectAction(seriesType, ecRegisterAction) {\n  function getSeriesIndices(ecModel, payload) {\n    var seriesIndices = [];\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: seriesType,\n      query: payload\n    }, function (seriesModel) {\n      seriesIndices.push(seriesModel.seriesIndex);\n    });\n    return seriesIndices;\n  }\n\n  each([[seriesType + 'ToggleSelect', 'toggleSelect'], [seriesType + 'Select', 'select'], [seriesType + 'UnSelect', 'unselect']], function (eventsMap) {\n    ecRegisterAction(eventsMap[0], function (payload, ecModel, api) {\n      payload = extend({}, payload);\n\n      if (process.env.NODE_ENV !== 'production') {\n        deprecateReplaceLog(payload.type, eventsMap[1]);\n      }\n\n      api.dispatchAction(extend(payload, {\n        type: eventsMap[1],\n        seriesIndex: getSeriesIndices(ecModel, payload)\n      }));\n    });\n  });\n}\n\nfunction handleSeriesLegacySelectEvents(type, eventPostfix, ecIns, ecModel, payload) {\n  var legacyEventName = type + eventPostfix;\n\n  if (!ecIns.isSilent(legacyEventName)) {\n    if (process.env.NODE_ENV !== 'production') {\n      deprecateLog(\"event \" + legacyEventName + \" is deprecated.\");\n    }\n\n    ecModel.eachComponent({\n      mainType: 'series',\n      subType: 'pie'\n    }, function (seriesModel) {\n      var seriesIndex = seriesModel.seriesIndex;\n      var selected = payload.selected;\n\n      for (var i = 0; i < selected.length; i++) {\n        if (selected[i].seriesIndex === seriesIndex) {\n          var data = seriesModel.getData();\n          var dataIndex = queryDataIndex(data, payload.fromActionPayload);\n          ecIns.trigger(legacyEventName, {\n            type: legacyEventName,\n            seriesId: seriesModel.id,\n            name: isArray(dataIndex) ? data.getName(dataIndex[0]) : data.getName(dataIndex),\n            selected: extend({}, seriesModel.option.selectedMap)\n          });\n        }\n      }\n    });\n  }\n}\n\nexport function handleLegacySelectEvents(messageCenter, ecIns, api) {\n  messageCenter.on('selectchanged', function (params) {\n    var ecModel = api.getModel();\n\n    if (params.isFromClick) {\n      handleSeriesLegacySelectEvents('map', 'selectchanged', ecIns, ecModel, params);\n      handleSeriesLegacySelectEvents('pie', 'selectchanged', ecIns, ecModel, params);\n    } else if (params.fromAction === 'select') {\n      handleSeriesLegacySelectEvents('map', 'selected', ecIns, ecModel, params);\n      handleSeriesLegacySelectEvents('pie', 'selected', ecIns, ecModel, params);\n    } else if (params.fromAction === 'unselect') {\n      handleSeriesLegacySelectEvents('map', 'unselected', ecIns, ecModel, params);\n      handleSeriesLegacySelectEvents('pie', 'unselected', ecIns, ecModel, params);\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function findEventDispatcher(target, det, returnFirstMatch) {\n  var found;\n\n  while (target) {\n    if (det(target)) {\n      found = target;\n\n      if (returnFirstMatch) {\n        break;\n      }\n    }\n\n    target = target.__hostTarget || target.parent;\n  }\n\n  return found;\n}","var wmUniqueIndex = Math.round(Math.random() * 9);\nvar WeakMap = (function () {\n    function WeakMap() {\n        this._id = '__ec_inner_' + wmUniqueIndex++;\n    }\n    WeakMap.prototype.get = function (key) {\n        return this._guard(key)[this._id];\n    };\n    WeakMap.prototype.set = function (key, value) {\n        var target = this._guard(key);\n        if (typeof Object.defineProperty === 'function') {\n            Object.defineProperty(target, this._id, {\n                value: value,\n                enumerable: false,\n                configurable: true\n            });\n        }\n        else {\n            target[this._id] = value;\n        }\n        return this;\n    };\n    WeakMap.prototype[\"delete\"] = function (key) {\n        if (this.has(key)) {\n            delete this._guard(key)[this._id];\n            return true;\n        }\n        return false;\n    };\n    WeakMap.prototype.has = function (key) {\n        return !!this._guard(key)[this._id];\n    };\n    WeakMap.prototype._guard = function (key) {\n        if (key !== Object(key)) {\n            throw TypeError('Value of WeakMap is not a non-null object.');\n        }\n        return key;\n    };\n    return WeakMap;\n}());\nexport default WeakMap;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from './graphic';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport { calculateTextPosition } from 'zrender/lib/contain/text';\nvar Triangle = graphic.Path.extend({\n  type: 'triangle',\n  shape: {\n    cx: 0,\n    cy: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (path, shape) {\n    var cx = shape.cx;\n    var cy = shape.cy;\n    var width = shape.width / 2;\n    var height = shape.height / 2;\n    path.moveTo(cx, cy - height);\n    path.lineTo(cx + width, cy + height);\n    path.lineTo(cx - width, cy + height);\n    path.closePath();\n  }\n});\nvar Diamond = graphic.Path.extend({\n  type: 'diamond',\n  shape: {\n    cx: 0,\n    cy: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (path, shape) {\n    var cx = shape.cx;\n    var cy = shape.cy;\n    var width = shape.width / 2;\n    var height = shape.height / 2;\n    path.moveTo(cx, cy - height);\n    path.lineTo(cx + width, cy);\n    path.lineTo(cx, cy + height);\n    path.lineTo(cx - width, cy);\n    path.closePath();\n  }\n});\nvar Pin = graphic.Path.extend({\n  type: 'pin',\n  shape: {\n    x: 0,\n    y: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (path, shape) {\n    var x = shape.x;\n    var y = shape.y;\n    var w = shape.width / 5 * 3;\n    var h = Math.max(w, shape.height);\n    var r = w / 2;\n    var dy = r * r / (h - r);\n    var cy = y - h + r + dy;\n    var angle = Math.asin(dy / r);\n    var dx = Math.cos(angle) * r;\n    var tanX = Math.sin(angle);\n    var tanY = Math.cos(angle);\n    var cpLen = r * 0.6;\n    var cpLen2 = r * 0.7;\n    path.moveTo(x - dx, cy + dy);\n    path.arc(x, cy, r, Math.PI - angle, Math.PI * 2 + angle);\n    path.bezierCurveTo(x + dx - tanX * cpLen, cy + dy + tanY * cpLen, x, y - cpLen2, x, y);\n    path.bezierCurveTo(x, y - cpLen2, x - dx + tanX * cpLen, cy + dy + tanY * cpLen, x - dx, cy + dy);\n    path.closePath();\n  }\n});\nvar Arrow = graphic.Path.extend({\n  type: 'arrow',\n  shape: {\n    x: 0,\n    y: 0,\n    width: 0,\n    height: 0\n  },\n  buildPath: function (ctx, shape) {\n    var height = shape.height;\n    var width = shape.width;\n    var x = shape.x;\n    var y = shape.y;\n    var dx = width / 3 * 2;\n    ctx.moveTo(x, y);\n    ctx.lineTo(x + dx, y + height);\n    ctx.lineTo(x, y + height / 4 * 3);\n    ctx.lineTo(x - dx, y + height);\n    ctx.lineTo(x, y);\n    ctx.closePath();\n  }\n});\nvar symbolCtors = {\n  line: graphic.Rect,\n  rect: graphic.Rect,\n  roundRect: graphic.Rect,\n  square: graphic.Rect,\n  circle: graphic.Circle,\n  diamond: Diamond,\n  pin: Pin,\n  arrow: Arrow,\n  triangle: Triangle\n};\nvar symbolShapeMakers = {\n  line: function (x, y, w, h, shape) {\n    var thickness = 2;\n    shape.x = x;\n    shape.y = y + h / 2 - thickness / 2;\n    shape.width = w;\n    shape.height = thickness;\n  },\n  rect: function (x, y, w, h, shape) {\n    shape.x = x;\n    shape.y = y;\n    shape.width = w;\n    shape.height = h;\n  },\n  roundRect: function (x, y, w, h, shape) {\n    shape.x = x;\n    shape.y = y;\n    shape.width = w;\n    shape.height = h;\n    shape.r = Math.min(w, h) / 4;\n  },\n  square: function (x, y, w, h, shape) {\n    var size = Math.min(w, h);\n    shape.x = x;\n    shape.y = y;\n    shape.width = size;\n    shape.height = size;\n  },\n  circle: function (x, y, w, h, shape) {\n    shape.cx = x + w / 2;\n    shape.cy = y + h / 2;\n    shape.r = Math.min(w, h) / 2;\n  },\n  diamond: function (x, y, w, h, shape) {\n    shape.cx = x + w / 2;\n    shape.cy = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  },\n  pin: function (x, y, w, h, shape) {\n    shape.x = x + w / 2;\n    shape.y = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  },\n  arrow: function (x, y, w, h, shape) {\n    shape.x = x + w / 2;\n    shape.y = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  },\n  triangle: function (x, y, w, h, shape) {\n    shape.cx = x + w / 2;\n    shape.cy = y + h / 2;\n    shape.width = w;\n    shape.height = h;\n  }\n};\nexport var symbolBuildProxies = {};\nzrUtil.each(symbolCtors, function (Ctor, name) {\n  symbolBuildProxies[name] = new Ctor();\n});\nvar SymbolClz = graphic.Path.extend({\n  type: 'symbol',\n  shape: {\n    symbolType: '',\n    x: 0,\n    y: 0,\n    width: 0,\n    height: 0\n  },\n  calculateTextPosition: function (out, config, rect) {\n    var res = calculateTextPosition(out, config, rect);\n    var shape = this.shape;\n\n    if (shape && shape.symbolType === 'pin' && config.position === 'inside') {\n      res.y = rect.y + rect.height * 0.4;\n    }\n\n    return res;\n  },\n  buildPath: function (ctx, shape, inBundle) {\n    var symbolType = shape.symbolType;\n\n    if (symbolType !== 'none') {\n      var proxySymbol = symbolBuildProxies[symbolType];\n\n      if (!proxySymbol) {\n        symbolType = 'rect';\n        proxySymbol = symbolBuildProxies[symbolType];\n      }\n\n      symbolShapeMakers[symbolType](shape.x, shape.y, shape.width, shape.height, proxySymbol.shape);\n      proxySymbol.buildPath(ctx, proxySymbol.shape, inBundle);\n    }\n  }\n});\n\nfunction symbolPathSetColor(color, innerColor) {\n  if (this.type !== 'image') {\n    var symbolStyle = this.style;\n\n    if (this.__isEmptyBrush) {\n      symbolStyle.stroke = color;\n      symbolStyle.fill = innerColor || '#fff';\n      symbolStyle.lineWidth = 2;\n    } else {\n      symbolStyle.fill = color;\n    }\n\n    this.markRedraw();\n  }\n}\n\nexport function createSymbol(symbolType, x, y, w, h, color, keepAspect) {\n  var isEmpty = symbolType.indexOf('empty') === 0;\n\n  if (isEmpty) {\n    symbolType = symbolType.substr(5, 1).toLowerCase() + symbolType.substr(6);\n  }\n\n  var symbolPath;\n\n  if (symbolType.indexOf('image://') === 0) {\n    symbolPath = graphic.makeImage(symbolType.slice(8), new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\n  } else if (symbolType.indexOf('path://') === 0) {\n    symbolPath = graphic.makePath(symbolType.slice(7), {}, new BoundingRect(x, y, w, h), keepAspect ? 'center' : 'cover');\n  } else {\n    symbolPath = new SymbolClz({\n      shape: {\n        symbolType: symbolType,\n        x: x,\n        y: y,\n        width: w,\n        height: h\n      }\n    });\n  }\n\n  symbolPath.__isEmptyBrush = isEmpty;\n  symbolPath.setColor = symbolPathSetColor;\n\n  if (color) {\n    symbolPath.setColor(color);\n  }\n\n  return symbolPath;\n}","export function createLinearGradient(ctx, obj, rect) {\n    var x = obj.x == null ? 0 : obj.x;\n    var x2 = obj.x2 == null ? 1 : obj.x2;\n    var y = obj.y == null ? 0 : obj.y;\n    var y2 = obj.y2 == null ? 0 : obj.y2;\n    if (!obj.global) {\n        x = x * rect.width + rect.x;\n        x2 = x2 * rect.width + rect.x;\n        y = y * rect.height + rect.y;\n        y2 = y2 * rect.height + rect.y;\n    }\n    x = isNaN(x) ? 0 : x;\n    x2 = isNaN(x2) ? 1 : x2;\n    y = isNaN(y) ? 0 : y;\n    y2 = isNaN(y2) ? 0 : y2;\n    var canvasGradient = ctx.createLinearGradient(x, y, x2, y2);\n    return canvasGradient;\n}\nexport function createRadialGradient(ctx, obj, rect) {\n    var width = rect.width;\n    var height = rect.height;\n    var min = Math.min(width, height);\n    var x = obj.x == null ? 0.5 : obj.x;\n    var y = obj.y == null ? 0.5 : obj.y;\n    var r = obj.r == null ? 0.5 : obj.r;\n    if (!obj.global) {\n        x = x * width + rect.x;\n        y = y * height + rect.y;\n        r = r * min;\n    }\n    var canvasGradient = ctx.createRadialGradient(x, y, 0, x, y, r);\n    return canvasGradient;\n}\nexport function getCanvasGradient(ctx, obj, rect) {\n    var canvasGradient = obj.type === 'radial'\n        ? createRadialGradient(ctx, obj, rect)\n        : createLinearGradient(ctx, obj, rect);\n    var colorStops = obj.colorStops;\n    for (var i = 0; i < colorStops.length; i++) {\n        canvasGradient.addColorStop(colorStops[i].offset, colorStops[i].color);\n    }\n    return canvasGradient;\n}\nexport function isClipPathChanged(clipPaths, prevClipPaths) {\n    if (clipPaths === prevClipPaths || (!clipPaths && !prevClipPaths)) {\n        return false;\n    }\n    if (!clipPaths || !prevClipPaths || (clipPaths.length !== prevClipPaths.length)) {\n        return true;\n    }\n    for (var i = 0; i < clipPaths.length; i++) {\n        if (clipPaths[i] !== prevClipPaths[i]) {\n            return true;\n        }\n    }\n    return false;\n}\n","import { isArray, isNumber } from '../../core/util';\nexport function normalizeLineDash(lineType, lineWidth) {\n    if (!lineType || lineType === 'solid' || !(lineWidth > 0)) {\n        return null;\n    }\n    lineWidth = lineWidth || 1;\n    return lineType === 'dashed'\n        ? [4 * lineWidth, 2 * lineWidth]\n        : lineType === 'dotted'\n            ? [lineWidth]\n            : isNumber(lineType)\n                ? [lineType] : isArray(lineType) ? lineType : null;\n}\n","import { DEFAULT_COMMON_STYLE } from '../graphic/Displayable';\nimport PathProxy from '../core/PathProxy';\nimport { createOrUpdateImage, isImageReady } from '../graphic/helper/image';\nimport { getCanvasGradient, isClipPathChanged } from './helper';\nimport Path from '../graphic/Path';\nimport ZRImage from '../graphic/Image';\nimport TSpan from '../graphic/TSpan';\nimport { DEFAULT_FONT } from '../contain/text';\nimport { map } from '../core/util';\nimport { normalizeLineDash } from '../graphic/helper/dashStyle';\nimport Element from '../Element';\nimport IncrementalDisplayable from '../graphic/IncrementalDisplayable';\nvar pathProxyForDraw = new PathProxy(true);\nfunction styleHasStroke(style) {\n    var stroke = style.stroke;\n    return !(stroke == null || stroke === 'none' || !(style.lineWidth > 0));\n}\nfunction styleHasFill(style) {\n    var fill = style.fill;\n    return fill != null && fill !== 'none';\n}\nfunction doFillPath(ctx, style) {\n    if (style.fillOpacity != null && style.fillOpacity !== 1) {\n        var originalGlobalAlpha = ctx.globalAlpha;\n        ctx.globalAlpha = style.fillOpacity * style.opacity;\n        ctx.fill();\n        ctx.globalAlpha = originalGlobalAlpha;\n    }\n    else {\n        ctx.fill();\n    }\n}\nfunction doStrokePath(ctx, style) {\n    if (style.strokeOpacity != null && style.strokeOpacity !== 1) {\n        var originalGlobalAlpha = ctx.globalAlpha;\n        ctx.globalAlpha = style.strokeOpacity * style.opacity;\n        ctx.stroke();\n        ctx.globalAlpha = originalGlobalAlpha;\n    }\n    else {\n        ctx.stroke();\n    }\n}\nexport function createCanvasPattern(ctx, pattern, el) {\n    var image = createOrUpdateImage(pattern.image, pattern.__image, el);\n    if (isImageReady(image)) {\n        var canvasPattern = ctx.createPattern(image, pattern.repeat || 'repeat');\n        if (typeof DOMMatrix === 'function') {\n            var matrix = new DOMMatrix();\n            matrix.rotateSelf(0, 0, (pattern.rotation || 0) / Math.PI * 180);\n            matrix.scaleSelf((pattern.scaleX || 1), (pattern.scaleY || 1));\n            matrix.translateSelf((pattern.x || 0), (pattern.y || 0));\n            canvasPattern.setTransform(matrix);\n        }\n        return canvasPattern;\n    }\n}\nfunction brushPath(ctx, el, style, inBatch) {\n    var hasStroke = styleHasStroke(style);\n    var hasFill = styleHasFill(style);\n    var strokePercent = style.strokePercent;\n    var strokePart = strokePercent < 1;\n    var firstDraw = !el.path;\n    if ((!el.silent || strokePart) && firstDraw) {\n        el.createPathProxy();\n    }\n    var path = el.path || pathProxyForDraw;\n    if (!inBatch) {\n        var fill = style.fill;\n        var stroke = style.stroke;\n        var hasFillGradient = hasFill && !!fill.colorStops;\n        var hasStrokeGradient = hasStroke && !!stroke.colorStops;\n        var hasFillPattern = hasFill && !!fill.image;\n        var hasStrokePattern = hasStroke && !!stroke.image;\n        var fillGradient = void 0;\n        var strokeGradient = void 0;\n        var fillPattern = void 0;\n        var strokePattern = void 0;\n        var rect = void 0;\n        if (hasFillGradient || hasStrokeGradient) {\n            rect = el.getBoundingRect();\n        }\n        if (hasFillGradient) {\n            fillGradient = el.__dirty\n                ? getCanvasGradient(ctx, fill, rect)\n                : el.__canvasFillGradient;\n            el.__canvasFillGradient = fillGradient;\n        }\n        if (hasStrokeGradient) {\n            strokeGradient = el.__dirty\n                ? getCanvasGradient(ctx, stroke, rect)\n                : el.__canvasStrokeGradient;\n            el.__canvasStrokeGradient = strokeGradient;\n        }\n        if (hasFillPattern) {\n            fillPattern = (el.__dirty || !el.__canvasFillPattern)\n                ? createCanvasPattern(ctx, fill, el)\n                : el.__canvasFillPattern;\n            el.__canvasFillPattern = fillPattern;\n        }\n        if (hasStrokePattern) {\n            strokePattern = (el.__dirty || !el.__canvasStrokePattern)\n                ? createCanvasPattern(ctx, stroke, el)\n                : el.__canvasStrokePattern;\n            el.__canvasStrokePattern = fillPattern;\n        }\n        if (hasFillGradient) {\n            ctx.fillStyle = fillGradient;\n        }\n        else if (hasFillPattern) {\n            if (fillPattern) {\n                ctx.fillStyle = fillPattern;\n            }\n            else {\n                hasFill = false;\n            }\n        }\n        if (hasStrokeGradient) {\n            ctx.strokeStyle = strokeGradient;\n        }\n        else if (hasStrokePattern) {\n            if (strokePattern) {\n                ctx.strokeStyle = strokePattern;\n            }\n            else {\n                hasStroke = false;\n            }\n        }\n    }\n    var lineDash = style.lineDash && style.lineWidth > 0 && normalizeLineDash(style.lineDash, style.lineWidth);\n    var lineDashOffset = style.lineDashOffset;\n    var ctxLineDash = !!ctx.setLineDash;\n    var scale = el.getGlobalScale();\n    path.setScale(scale[0], scale[1], el.segmentIgnoreThreshold);\n    if (lineDash) {\n        var lineScale_1 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\n        if (lineScale_1 && lineScale_1 !== 1) {\n            lineDash = map(lineDash, function (rawVal) {\n                return rawVal / lineScale_1;\n            });\n            lineDashOffset /= lineScale_1;\n        }\n    }\n    var needsRebuild = true;\n    if (firstDraw || (el.__dirty & Path.SHAPE_CHANGED_BIT)\n        || (lineDash && !ctxLineDash && hasStroke)) {\n        path.setDPR(ctx.dpr);\n        if (strokePart) {\n            path.setContext(null);\n        }\n        else {\n            path.setContext(ctx);\n            needsRebuild = false;\n        }\n        path.reset();\n        if (lineDash && !ctxLineDash) {\n            path.setLineDash(lineDash);\n            path.setLineDashOffset(lineDashOffset);\n        }\n        el.buildPath(path, el.shape, inBatch);\n        path.toStatic();\n        el.pathUpdated();\n    }\n    if (needsRebuild) {\n        path.rebuildPath(ctx, strokePart ? strokePercent : 1);\n    }\n    if (lineDash && ctxLineDash) {\n        ctx.setLineDash(lineDash);\n        ctx.lineDashOffset = lineDashOffset;\n    }\n    if (!inBatch) {\n        if (style.strokeFirst) {\n            if (hasStroke) {\n                doStrokePath(ctx, style);\n            }\n            if (hasFill) {\n                doFillPath(ctx, style);\n            }\n        }\n        else {\n            if (hasFill) {\n                doFillPath(ctx, style);\n            }\n            if (hasStroke) {\n                doStrokePath(ctx, style);\n            }\n        }\n    }\n    if (lineDash && ctxLineDash) {\n        ctx.setLineDash([]);\n    }\n}\nfunction brushImage(ctx, el, style) {\n    var image = el.__image = createOrUpdateImage(style.image, el.__image, el, el.onload);\n    if (!image || !isImageReady(image)) {\n        return;\n    }\n    var x = style.x || 0;\n    var y = style.y || 0;\n    var width = el.getWidth();\n    var height = el.getHeight();\n    var aspect = image.width / image.height;\n    if (width == null && height != null) {\n        width = height * aspect;\n    }\n    else if (height == null && width != null) {\n        height = width / aspect;\n    }\n    else if (width == null && height == null) {\n        width = image.width;\n        height = image.height;\n    }\n    if (style.sWidth && style.sHeight) {\n        var sx = style.sx || 0;\n        var sy = style.sy || 0;\n        ctx.drawImage(image, sx, sy, style.sWidth, style.sHeight, x, y, width, height);\n    }\n    else if (style.sx && style.sy) {\n        var sx = style.sx;\n        var sy = style.sy;\n        var sWidth = width - sx;\n        var sHeight = height - sy;\n        ctx.drawImage(image, sx, sy, sWidth, sHeight, x, y, width, height);\n    }\n    else {\n        ctx.drawImage(image, x, y, width, height);\n    }\n}\nfunction brushText(ctx, el, style) {\n    var text = style.text;\n    text != null && (text += '');\n    if (text) {\n        ctx.font = style.font || DEFAULT_FONT;\n        ctx.textAlign = style.textAlign;\n        ctx.textBaseline = style.textBaseline;\n        var hasLineDash = void 0;\n        if (ctx.setLineDash) {\n            var lineDash = style.lineDash && style.lineWidth > 0 && normalizeLineDash(style.lineDash, style.lineWidth);\n            var lineDashOffset = style.lineDashOffset;\n            if (lineDash) {\n                var lineScale_2 = (style.strokeNoScale && el.getLineScale) ? el.getLineScale() : 1;\n                if (lineScale_2 && lineScale_2 !== 1) {\n                    lineDash = map(lineDash, function (rawVal) {\n                        return rawVal / lineScale_2;\n                    });\n                    lineDashOffset /= lineScale_2;\n                }\n                ctx.setLineDash(lineDash);\n                ctx.lineDashOffset = lineDashOffset;\n                hasLineDash = true;\n            }\n        }\n        if (style.strokeFirst) {\n            if (styleHasStroke(style)) {\n                ctx.strokeText(text, style.x, style.y);\n            }\n            if (styleHasFill(style)) {\n                ctx.fillText(text, style.x, style.y);\n            }\n        }\n        else {\n            if (styleHasFill(style)) {\n                ctx.fillText(text, style.x, style.y);\n            }\n            if (styleHasStroke(style)) {\n                ctx.strokeText(text, style.x, style.y);\n            }\n        }\n        if (hasLineDash) {\n            ctx.setLineDash([]);\n        }\n    }\n}\nvar SHADOW_NUMBER_PROPS = ['shadowBlur', 'shadowOffsetX', 'shadowOffsetY'];\nvar STROKE_PROPS = [\n    ['lineCap', 'butt'], ['lineJoin', 'miter'], ['miterLimit', 10]\n];\nfunction bindCommonProps(ctx, style, prevStyle, forceSetAll, scope) {\n    var styleChanged = false;\n    if (!forceSetAll) {\n        prevStyle = prevStyle || {};\n        if (style === prevStyle) {\n            return false;\n        }\n    }\n    if (forceSetAll || style.opacity !== prevStyle.opacity) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.globalAlpha = style.opacity == null ? DEFAULT_COMMON_STYLE.opacity : style.opacity;\n    }\n    if (forceSetAll || style.blend !== prevStyle.blend) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.globalCompositeOperation = style.blend || DEFAULT_COMMON_STYLE.blend;\n    }\n    for (var i = 0; i < SHADOW_NUMBER_PROPS.length; i++) {\n        var propName = SHADOW_NUMBER_PROPS[i];\n        if (forceSetAll || style[propName] !== prevStyle[propName]) {\n            if (!styleChanged) {\n                flushPathDrawn(ctx, scope);\n                styleChanged = true;\n            }\n            ctx[propName] = ctx.dpr * (style[propName] || 0);\n        }\n    }\n    if (forceSetAll || style.shadowColor !== prevStyle.shadowColor) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.shadowColor = style.shadowColor || DEFAULT_COMMON_STYLE.shadowColor;\n    }\n    return styleChanged;\n}\nfunction bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetAll, scope) {\n    var style = getStyle(el, scope.inHover);\n    var prevStyle = forceSetAll\n        ? null\n        : (prevEl && getStyle(prevEl, scope.inHover) || {});\n    if (style === prevStyle) {\n        return false;\n    }\n    var styleChanged = bindCommonProps(ctx, style, prevStyle, forceSetAll, scope);\n    if (forceSetAll || style.fill !== prevStyle.fill) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.fillStyle = style.fill;\n    }\n    if (forceSetAll || style.stroke !== prevStyle.stroke) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.strokeStyle = style.stroke;\n    }\n    if (forceSetAll || style.opacity !== prevStyle.opacity) {\n        if (!styleChanged) {\n            flushPathDrawn(ctx, scope);\n            styleChanged = true;\n        }\n        ctx.globalAlpha = style.opacity == null ? 1 : style.opacity;\n    }\n    if (el.hasStroke()) {\n        var lineWidth = style.lineWidth;\n        var newLineWidth = lineWidth / ((style.strokeNoScale && el && el.getLineScale) ? el.getLineScale() : 1);\n        if (ctx.lineWidth !== newLineWidth) {\n            if (!styleChanged) {\n                flushPathDrawn(ctx, scope);\n                styleChanged = true;\n            }\n            ctx.lineWidth = newLineWidth;\n        }\n    }\n    for (var i = 0; i < STROKE_PROPS.length; i++) {\n        var prop = STROKE_PROPS[i];\n        var propName = prop[0];\n        if (forceSetAll || style[propName] !== prevStyle[propName]) {\n            if (!styleChanged) {\n                flushPathDrawn(ctx, scope);\n                styleChanged = true;\n            }\n            ctx[propName] = style[propName] || prop[1];\n        }\n    }\n    return styleChanged;\n}\nfunction bindImageStyle(ctx, el, prevEl, forceSetAll, scope) {\n    return bindCommonProps(ctx, getStyle(el, scope.inHover), prevEl && getStyle(prevEl, scope.inHover), forceSetAll, scope);\n}\nfunction setContextTransform(ctx, el) {\n    var m = el.transform;\n    var dpr = ctx.dpr || 1;\n    if (m) {\n        ctx.setTransform(dpr * m[0], dpr * m[1], dpr * m[2], dpr * m[3], dpr * m[4], dpr * m[5]);\n    }\n    else {\n        ctx.setTransform(dpr, 0, 0, dpr, 0, 0);\n    }\n}\nfunction updateClipStatus(clipPaths, ctx, scope) {\n    var allClipped = false;\n    for (var i = 0; i < clipPaths.length; i++) {\n        var clipPath = clipPaths[i];\n        allClipped = allClipped || clipPath.isZeroArea();\n        setContextTransform(ctx, clipPath);\n        ctx.beginPath();\n        clipPath.buildPath(ctx, clipPath.shape);\n        ctx.clip();\n    }\n    scope.allClipped = allClipped;\n}\nfunction isTransformChanged(m0, m1) {\n    if (m0 && m1) {\n        return m0[0] !== m1[0]\n            || m0[1] !== m1[1]\n            || m0[2] !== m1[2]\n            || m0[3] !== m1[3]\n            || m0[4] !== m1[4]\n            || m0[5] !== m1[5];\n    }\n    else if (!m0 && !m1) {\n        return false;\n    }\n    return true;\n}\nvar DRAW_TYPE_PATH = 1;\nvar DRAW_TYPE_IMAGE = 2;\nvar DRAW_TYPE_TEXT = 3;\nvar DRAW_TYPE_INCREMENTAL = 4;\nfunction canPathBatch(style) {\n    var hasFill = styleHasFill(style);\n    var hasStroke = styleHasStroke(style);\n    return !(style.lineDash\n        || !(+hasFill ^ +hasStroke)\n        || (hasFill && typeof style.fill !== 'string')\n        || (hasStroke && typeof style.stroke !== 'string')\n        || style.strokePercent < 1\n        || style.strokeOpacity < 1\n        || style.fillOpacity < 1);\n}\nfunction flushPathDrawn(ctx, scope) {\n    scope.batchFill && ctx.fill();\n    scope.batchStroke && ctx.stroke();\n    scope.batchFill = '';\n    scope.batchStroke = '';\n}\nfunction getStyle(el, inHover) {\n    return inHover ? (el.__hoverStyle || el.style) : el.style;\n}\nexport function brushSingle(ctx, el) {\n    brush(ctx, el, { inHover: false, viewWidth: 0, viewHeight: 0 }, true);\n}\nexport function brush(ctx, el, scope, isLast) {\n    var m = el.transform;\n    if (!el.shouldBePainted(scope.viewWidth, scope.viewHeight, false, false)) {\n        el.__dirty &= ~Element.REDARAW_BIT;\n        el.__isRendered = false;\n        return;\n    }\n    var clipPaths = el.__clipPaths;\n    var prevElClipPaths = scope.prevElClipPaths;\n    var forceSetTransform = false;\n    var forceSetStyle = false;\n    if (!prevElClipPaths || isClipPathChanged(clipPaths, prevElClipPaths)) {\n        if (prevElClipPaths && prevElClipPaths.length) {\n            flushPathDrawn(ctx, scope);\n            ctx.restore();\n            forceSetStyle = forceSetTransform = true;\n            scope.prevElClipPaths = null;\n            scope.allClipped = false;\n            scope.prevEl = null;\n        }\n        if (clipPaths && clipPaths.length) {\n            flushPathDrawn(ctx, scope);\n            ctx.save();\n            updateClipStatus(clipPaths, ctx, scope);\n            forceSetTransform = true;\n        }\n        scope.prevElClipPaths = clipPaths;\n    }\n    if (scope.allClipped) {\n        el.__isRendered = false;\n        return;\n    }\n    el.beforeBrush && el.beforeBrush();\n    el.innerBeforeBrush();\n    var prevEl = scope.prevEl;\n    if (!prevEl) {\n        forceSetStyle = forceSetTransform = true;\n    }\n    var canBatchPath = el instanceof Path\n        && el.autoBatch\n        && canPathBatch(el.style);\n    if (forceSetTransform || isTransformChanged(m, prevEl.transform)) {\n        flushPathDrawn(ctx, scope);\n        setContextTransform(ctx, el);\n    }\n    else if (!canBatchPath) {\n        flushPathDrawn(ctx, scope);\n    }\n    var style = getStyle(el, scope.inHover);\n    if (el instanceof Path) {\n        if (scope.lastDrawType !== DRAW_TYPE_PATH) {\n            forceSetStyle = true;\n            scope.lastDrawType = DRAW_TYPE_PATH;\n        }\n        bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\n        if (!canBatchPath || (!scope.batchFill && !scope.batchStroke)) {\n            ctx.beginPath();\n        }\n        brushPath(ctx, el, style, canBatchPath);\n        if (canBatchPath) {\n            scope.batchFill = style.fill || '';\n            scope.batchStroke = style.stroke || '';\n        }\n    }\n    else {\n        if (el instanceof TSpan) {\n            if (scope.lastDrawType !== DRAW_TYPE_TEXT) {\n                forceSetStyle = true;\n                scope.lastDrawType = DRAW_TYPE_TEXT;\n            }\n            bindPathAndTextCommonStyle(ctx, el, prevEl, forceSetStyle, scope);\n            brushText(ctx, el, style);\n        }\n        else if (el instanceof ZRImage) {\n            if (scope.lastDrawType !== DRAW_TYPE_IMAGE) {\n                forceSetStyle = true;\n                scope.lastDrawType = DRAW_TYPE_IMAGE;\n            }\n            bindImageStyle(ctx, el, prevEl, forceSetStyle, scope);\n            brushImage(ctx, el, style);\n        }\n        else if (el instanceof IncrementalDisplayable) {\n            if (scope.lastDrawType !== DRAW_TYPE_INCREMENTAL) {\n                forceSetStyle = true;\n                scope.lastDrawType = DRAW_TYPE_INCREMENTAL;\n            }\n            brushIncremental(ctx, el, scope);\n        }\n    }\n    if (canBatchPath && isLast) {\n        flushPathDrawn(ctx, scope);\n    }\n    el.innerAfterBrush();\n    el.afterBrush && el.afterBrush();\n    scope.prevEl = el;\n    el.__dirty = 0;\n    el.__isRendered = true;\n}\nfunction brushIncremental(ctx, el, scope) {\n    var displayables = el.getDisplayables();\n    var temporalDisplayables = el.getTemporalDisplayables();\n    ctx.save();\n    var innerScope = {\n        prevElClipPaths: null,\n        prevEl: null,\n        allClipped: false,\n        viewWidth: scope.viewWidth,\n        viewHeight: scope.viewHeight,\n        inHover: scope.inHover\n    };\n    var i;\n    var len;\n    for (i = el.getCursor(), len = displayables.length; i < len; i++) {\n        var displayable = displayables[i];\n        displayable.beforeBrush && displayable.beforeBrush();\n        displayable.innerBeforeBrush();\n        brush(ctx, displayable, innerScope, i === len - 1);\n        displayable.innerAfterBrush();\n        displayable.afterBrush && displayable.afterBrush();\n        innerScope.prevEl = displayable;\n    }\n    for (var i_1 = 0, len_1 = temporalDisplayables.length; i_1 < len_1; i_1++) {\n        var displayable = temporalDisplayables[i_1];\n        displayable.beforeBrush && displayable.beforeBrush();\n        displayable.innerBeforeBrush();\n        brush(ctx, displayable, innerScope, i_1 === len_1 - 1);\n        displayable.innerAfterBrush();\n        displayable.afterBrush && displayable.afterBrush();\n        innerScope.prevEl = displayable;\n    }\n    el.clearTemporalDisplayables();\n    el.notClear = true;\n    ctx.restore();\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport WeakMap from 'zrender/lib/core/WeakMap';\nimport LRU from 'zrender/lib/core/LRU';\nimport { defaults, createCanvas, map, isArray } from 'zrender/lib/core/util';\nimport { getLeastCommonMultiple } from './number';\nimport { createSymbol } from './symbol';\nimport { brushSingle } from 'zrender/lib/canvas/graphic';\nvar decalMap = new WeakMap();\nvar decalCache = new LRU(100);\nvar decalKeys = ['symbol', 'symbolSize', 'symbolKeepAspect', 'color', 'backgroundColor', 'dashArrayX', 'dashArrayY', 'maxTileWidth', 'maxTileHeight'];\nexport function createOrUpdatePatternFromDecal(decalObject, api) {\n  if (decalObject === 'none') {\n    return null;\n  }\n\n  var dpr = api.getDevicePixelRatio();\n  var zr = api.getZr();\n  var isSVG = zr.painter.type === 'svg';\n\n  if (decalObject.dirty) {\n    decalMap[\"delete\"](decalObject);\n  }\n\n  var oldPattern = decalMap.get(decalObject);\n\n  if (oldPattern) {\n    return oldPattern;\n  }\n\n  var decalOpt = defaults(decalObject, {\n    symbol: 'rect',\n    symbolSize: 1,\n    symbolKeepAspect: true,\n    color: 'rgba(0, 0, 0, 0.2)',\n    backgroundColor: null,\n    dashArrayX: 5,\n    dashArrayY: 5,\n    rotation: 0,\n    maxTileWidth: 512,\n    maxTileHeight: 512\n  });\n\n  if (decalOpt.backgroundColor === 'none') {\n    decalOpt.backgroundColor = null;\n  }\n\n  var pattern = {\n    repeat: 'repeat'\n  };\n  setPatternnSource(pattern);\n  pattern.rotation = decalOpt.rotation;\n  pattern.scaleX = pattern.scaleY = isSVG ? 1 : 1 / dpr;\n  decalMap.set(decalObject, pattern);\n  decalObject.dirty = false;\n  return pattern;\n\n  function setPatternnSource(pattern) {\n    var keys = [dpr];\n    var isValidKey = true;\n\n    for (var i = 0; i < decalKeys.length; ++i) {\n      var value = decalOpt[decalKeys[i]];\n      var valueType = typeof value;\n\n      if (value != null && !isArray(value) && valueType !== 'string' && valueType !== 'number' && valueType !== 'boolean') {\n        isValidKey = false;\n        break;\n      }\n\n      keys.push(value);\n    }\n\n    var cacheKey;\n\n    if (isValidKey) {\n      cacheKey = keys.join(',') + (isSVG ? '-svg' : '');\n      var cache = decalCache.get(cacheKey);\n\n      if (cache) {\n        isSVG ? pattern.svgElement = cache : pattern.image = cache;\n      }\n    }\n\n    var dashArrayX = normalizeDashArrayX(decalOpt.dashArrayX);\n    var dashArrayY = normalizeDashArrayY(decalOpt.dashArrayY);\n    var symbolArray = normalizeSymbolArray(decalOpt.symbol);\n    var lineBlockLengthsX = getLineBlockLengthX(dashArrayX);\n    var lineBlockLengthY = getLineBlockLengthY(dashArrayY);\n    var canvas = !isSVG && createCanvas();\n    var svgRoot = isSVG && zr.painter.createSVGElement('g');\n    var pSize = getPatternSize();\n    var ctx;\n\n    if (canvas) {\n      canvas.width = pSize.width * dpr;\n      canvas.height = pSize.height * dpr;\n      ctx = canvas.getContext('2d');\n    }\n\n    brushDecal();\n\n    if (isValidKey) {\n      decalCache.put(cacheKey, canvas || svgRoot);\n    }\n\n    pattern.image = canvas;\n    pattern.svgElement = svgRoot;\n    pattern.svgWidth = pSize.width;\n    pattern.svgHeight = pSize.height;\n\n    function getPatternSize() {\n      var width = 1;\n\n      for (var i = 0, xlen = lineBlockLengthsX.length; i < xlen; ++i) {\n        width = getLeastCommonMultiple(width, lineBlockLengthsX[i]);\n      }\n\n      var symbolRepeats = 1;\n\n      for (var i = 0, xlen = symbolArray.length; i < xlen; ++i) {\n        symbolRepeats = getLeastCommonMultiple(symbolRepeats, symbolArray[i].length);\n      }\n\n      width *= symbolRepeats;\n      var height = lineBlockLengthY * lineBlockLengthsX.length * symbolArray.length;\n\n      if (process.env.NODE_ENV !== 'production') {\n        var warn = function (attrName) {\n          console.warn(\"Calculated decal size is greater than \" + attrName + \" due to decal option settings so \" + attrName + \" is used for the decal size. Please consider changing the decal option to make a smaller decal or set \" + attrName + \" to be larger to avoid incontinuity.\");\n        };\n\n        if (width > decalOpt.maxTileWidth) {\n          warn('maxTileWidth');\n        }\n\n        if (height > decalOpt.maxTileHeight) {\n          warn('maxTileHeight');\n        }\n      }\n\n      return {\n        width: Math.max(1, Math.min(width, decalOpt.maxTileWidth)),\n        height: Math.max(1, Math.min(height, decalOpt.maxTileHeight))\n      };\n    }\n\n    function brushDecal() {\n      if (ctx) {\n        ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n        if (decalOpt.backgroundColor) {\n          ctx.fillStyle = decalOpt.backgroundColor;\n          ctx.fillRect(0, 0, canvas.width, canvas.height);\n        }\n      }\n\n      var ySum = 0;\n\n      for (var i = 0; i < dashArrayY.length; ++i) {\n        ySum += dashArrayY[i];\n      }\n\n      if (ySum <= 0) {\n        return;\n      }\n\n      var y = -lineBlockLengthY;\n      var yId = 0;\n      var yIdTotal = 0;\n      var xId0 = 0;\n\n      while (y < pSize.height) {\n        if (yId % 2 === 0) {\n          var symbolYId = yIdTotal / 2 % symbolArray.length;\n          var x = 0;\n          var xId1 = 0;\n          var xId1Total = 0;\n\n          while (x < pSize.width * 2) {\n            var xSum = 0;\n\n            for (var i = 0; i < dashArrayX[xId0].length; ++i) {\n              xSum += dashArrayX[xId0][i];\n            }\n\n            if (xSum <= 0) {\n              break;\n            }\n\n            if (xId1 % 2 === 0) {\n              var size = (1 - decalOpt.symbolSize) * 0.5;\n              var left = x + dashArrayX[xId0][xId1] * size;\n              var top_1 = y + dashArrayY[yId] * size;\n              var width = dashArrayX[xId0][xId1] * decalOpt.symbolSize;\n              var height = dashArrayY[yId] * decalOpt.symbolSize;\n              var symbolXId = xId1Total / 2 % symbolArray[symbolYId].length;\n              brushSymbol(left, top_1, width, height, symbolArray[symbolYId][symbolXId]);\n            }\n\n            x += dashArrayX[xId0][xId1];\n            ++xId1Total;\n            ++xId1;\n\n            if (xId1 === dashArrayX[xId0].length) {\n              xId1 = 0;\n            }\n          }\n\n          ++xId0;\n\n          if (xId0 === dashArrayX.length) {\n            xId0 = 0;\n          }\n        }\n\n        y += dashArrayY[yId];\n        ++yIdTotal;\n        ++yId;\n\n        if (yId === dashArrayY.length) {\n          yId = 0;\n        }\n      }\n\n      function brushSymbol(x, y, width, height, symbolType) {\n        var scale = isSVG ? 1 : dpr;\n        var symbol = createSymbol(symbolType, x * scale, y * scale, width * scale, height * scale, decalOpt.color, decalOpt.symbolKeepAspect);\n\n        if (isSVG) {\n          svgRoot.appendChild(zr.painter.paintOne(symbol));\n        } else {\n          brushSingle(ctx, symbol);\n        }\n      }\n    }\n  }\n}\n\nfunction normalizeSymbolArray(symbol) {\n  if (!symbol || symbol.length === 0) {\n    return [['rect']];\n  }\n\n  if (typeof symbol === 'string') {\n    return [[symbol]];\n  }\n\n  var isAllString = true;\n\n  for (var i = 0; i < symbol.length; ++i) {\n    if (typeof symbol[i] !== 'string') {\n      isAllString = false;\n      break;\n    }\n  }\n\n  if (isAllString) {\n    return normalizeSymbolArray([symbol]);\n  }\n\n  var result = [];\n\n  for (var i = 0; i < symbol.length; ++i) {\n    if (typeof symbol[i] === 'string') {\n      result.push([symbol[i]]);\n    } else {\n      result.push(symbol[i]);\n    }\n  }\n\n  return result;\n}\n\nfunction normalizeDashArrayX(dash) {\n  if (!dash || dash.length === 0) {\n    return [[0, 0]];\n  }\n\n  if (typeof dash === 'number') {\n    var dashValue = Math.ceil(dash);\n    return [[dashValue, dashValue]];\n  }\n\n  var isAllNumber = true;\n\n  for (var i = 0; i < dash.length; ++i) {\n    if (typeof dash[i] !== 'number') {\n      isAllNumber = false;\n      break;\n    }\n  }\n\n  if (isAllNumber) {\n    return normalizeDashArrayX([dash]);\n  }\n\n  var result = [];\n\n  for (var i = 0; i < dash.length; ++i) {\n    if (typeof dash[i] === 'number') {\n      var dashValue = Math.ceil(dash[i]);\n      result.push([dashValue, dashValue]);\n    } else {\n      var dashValue = map(dash[i], function (n) {\n        return Math.ceil(n);\n      });\n\n      if (dashValue.length % 2 === 1) {\n        result.push(dashValue.concat(dashValue));\n      } else {\n        result.push(dashValue);\n      }\n    }\n  }\n\n  return result;\n}\n\nfunction normalizeDashArrayY(dash) {\n  if (!dash || typeof dash === 'object' && dash.length === 0) {\n    return [0, 0];\n  }\n\n  if (typeof dash === 'number') {\n    var dashValue_1 = Math.ceil(dash);\n    return [dashValue_1, dashValue_1];\n  }\n\n  var dashValue = map(dash, function (n) {\n    return Math.ceil(n);\n  });\n  return dash.length % 2 ? dashValue.concat(dashValue) : dashValue;\n}\n\nfunction getLineBlockLengthX(dash) {\n  return map(dash, function (line) {\n    return getLineBlockLengthY(line);\n  });\n}\n\nfunction getLineBlockLengthY(dash) {\n  var blockLength = 0;\n\n  for (var i = 0; i < dash.length; ++i) {\n    blockLength += dash[i];\n  }\n\n  if (dash.length % 2 === 1) {\n    return blockLength * 2;\n  }\n\n  return blockLength;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createOrUpdatePatternFromDecal } from '../util/decal';\nexport default function decalVisual(ecModel, api) {\n  ecModel.eachRawSeries(function (seriesModel) {\n    if (ecModel.isSeriesFiltered(seriesModel)) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n\n    if (data.hasItemVisual()) {\n      data.each(function (idx) {\n        var decal = data.getItemVisual(idx, 'decal');\n\n        if (decal) {\n          var itemStyle = data.ensureUniqueItemVisual(idx, 'style');\n          itemStyle.decal = createOrUpdatePatternFromDecal(decal, api);\n        }\n      });\n    }\n\n    var decal = data.getVisual('decal');\n\n    if (decal) {\n      var style = data.getVisual('style');\n      style.decal = createOrUpdatePatternFromDecal(decal, api);\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrender from 'zrender/lib/zrender';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as colorTool from 'zrender/lib/tool/color';\nimport env from 'zrender/lib/core/env';\nimport timsort from 'zrender/lib/core/timsort';\nimport Eventful from 'zrender/lib/core/Eventful';\nimport GlobalModel from '../model/Global';\nimport ExtensionAPI from './ExtensionAPI';\nimport CoordinateSystemManager from './CoordinateSystem';\nimport OptionManager from '../model/OptionManager';\nimport backwardCompat from '../preprocessor/backwardCompat';\nimport dataStack from '../processor/dataStack';\nimport SeriesModel from '../model/Series';\nimport ComponentView from '../view/Component';\nimport ChartView from '../view/Chart';\nimport * as graphic from '../util/graphic';\nimport { getECData } from '../util/innerStore';\nimport { enterEmphasisWhenMouseOver, leaveEmphasisWhenMouseOut, isHighDownDispatcher, HOVER_STATE_EMPHASIS, HOVER_STATE_BLUR, toggleSeriesBlurState, toggleSeriesBlurStateFromPayload, toggleSelectionFromPayload, updateSeriesElementSelection, getAllSelectedIndices, isSelectChangePayload, isHighDownPayload, HIGHLIGHT_ACTION_TYPE, DOWNPLAY_ACTION_TYPE, SELECT_ACTION_TYPE, UNSELECT_ACTION_TYPE, TOGGLE_SELECT_ACTION_TYPE, savePathStates, enterEmphasis, leaveEmphasis, leaveBlur, enterSelect, leaveSelect, enterBlur } from '../util/states';\nimport * as modelUtil from '../util/model';\nimport { throttle } from '../util/throttle';\nimport { seriesStyleTask, dataStyleTask, dataColorPaletteTask } from '../visual/style';\nimport loadingDefault from '../loading/default';\nimport Scheduler from './Scheduler';\nimport lightTheme from '../theme/light';\nimport darkTheme from '../theme/dark';\nimport mapDataStorage from '../coord/geo/mapDataStorage';\nimport { parseClassType } from '../util/clazz';\nimport { ECEventProcessor } from '../util/ECEventProcessor';\nimport { seriesSymbolTask, dataSymbolTask } from '../visual/symbol';\nimport { getVisualFromData, getItemVisualFromData } from '../visual/helper';\nimport LabelManager from '../label/LabelManager';\nimport { deprecateLog, throwError } from '../util/log';\nimport { handleLegacySelectEvents } from '../legacy/dataSelectAction';\nimport { registerExternalTransform } from '../data/helper/transform';\nimport { createLocaleObject, SYSTEM_LANG } from './locale';\nimport { findEventDispatcher } from '../util/event';\nimport decal from '../visual/decal';\nvar assert = zrUtil.assert;\nvar each = zrUtil.each;\nvar isFunction = zrUtil.isFunction;\nvar isObject = zrUtil.isObject;\nvar indexOf = zrUtil.indexOf;\nvar hasWindow = typeof window !== 'undefined';\nexport var version = '5.0.1';\nexport var dependencies = {\n  zrender: '5.0.3'\n};\nvar TEST_FRAME_REMAIN_TIME = 1;\nvar PRIORITY_PROCESSOR_SERIES_FILTER = 800;\nvar PRIORITY_PROCESSOR_DATASTACK = 900;\nvar PRIORITY_PROCESSOR_FILTER = 1000;\nvar PRIORITY_PROCESSOR_DEFAULT = 2000;\nvar PRIORITY_PROCESSOR_STATISTIC = 5000;\nvar PRIORITY_VISUAL_LAYOUT = 1000;\nvar PRIORITY_VISUAL_PROGRESSIVE_LAYOUT = 1100;\nvar PRIORITY_VISUAL_GLOBAL = 2000;\nvar PRIORITY_VISUAL_CHART = 3000;\nvar PRIORITY_VISUAL_COMPONENT = 4000;\nvar PRIORITY_VISUAL_CHART_DATA_CUSTOM = 4500;\nvar PRIORITY_VISUAL_POST_CHART_LAYOUT = 4600;\nvar PRIORITY_VISUAL_BRUSH = 5000;\nvar PRIORITY_VISUAL_ARIA = 6000;\nvar PRIORITY_VISUAL_DECAL = 7000;\nexport var PRIORITY = {\n  PROCESSOR: {\n    FILTER: PRIORITY_PROCESSOR_FILTER,\n    SERIES_FILTER: PRIORITY_PROCESSOR_SERIES_FILTER,\n    STATISTIC: PRIORITY_PROCESSOR_STATISTIC\n  },\n  VISUAL: {\n    LAYOUT: PRIORITY_VISUAL_LAYOUT,\n    PROGRESSIVE_LAYOUT: PRIORITY_VISUAL_PROGRESSIVE_LAYOUT,\n    GLOBAL: PRIORITY_VISUAL_GLOBAL,\n    CHART: PRIORITY_VISUAL_CHART,\n    POST_CHART_LAYOUT: PRIORITY_VISUAL_POST_CHART_LAYOUT,\n    COMPONENT: PRIORITY_VISUAL_COMPONENT,\n    BRUSH: PRIORITY_VISUAL_BRUSH,\n    CHART_ITEM: PRIORITY_VISUAL_CHART_DATA_CUSTOM,\n    ARIA: PRIORITY_VISUAL_ARIA,\n    DECAL: PRIORITY_VISUAL_DECAL\n  }\n};\nvar IN_MAIN_PROCESS_KEY = '__flagInMainProcess';\nvar OPTION_UPDATED_KEY = '__optionUpdated';\nvar STATUS_NEEDS_UPDATE_KEY = '__needsUpdateStatus';\nvar ACTION_REG = /^[a-zA-Z0-9_]+$/;\nvar CONNECT_STATUS_KEY = '__connectUpdateStatus';\nvar CONNECT_STATUS_PENDING = 0;\nvar CONNECT_STATUS_UPDATING = 1;\nvar CONNECT_STATUS_UPDATED = 2;\n;\n\nfunction createRegisterEventWithLowercaseECharts(method) {\n  return function () {\n    var args = [];\n\n    for (var _i = 0; _i < arguments.length; _i++) {\n      args[_i] = arguments[_i];\n    }\n\n    if (this.isDisposed()) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    return toLowercaseNameAndCallEventful(this, method, args);\n  };\n}\n\nfunction createRegisterEventWithLowercaseMessageCenter(method) {\n  return function () {\n    var args = [];\n\n    for (var _i = 0; _i < arguments.length; _i++) {\n      args[_i] = arguments[_i];\n    }\n\n    return toLowercaseNameAndCallEventful(this, method, args);\n  };\n}\n\nfunction toLowercaseNameAndCallEventful(host, method, args) {\n  args[0] = args[0] && args[0].toLowerCase();\n  return Eventful.prototype[method].apply(host, args);\n}\n\nvar MessageCenter = function (_super) {\n  __extends(MessageCenter, _super);\n\n  function MessageCenter() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  return MessageCenter;\n}(Eventful);\n\nvar messageCenterProto = MessageCenter.prototype;\nmessageCenterProto.on = createRegisterEventWithLowercaseMessageCenter('on');\nmessageCenterProto.off = createRegisterEventWithLowercaseMessageCenter('off');\nvar prepare;\nvar prepareView;\nvar updateDirectly;\nvar updateMethods;\nvar doConvertPixel;\nvar updateStreamModes;\nvar doDispatchAction;\nvar flushPendingActions;\nvar triggerUpdatedEvent;\nvar bindRenderedEvent;\nvar bindMouseEvent;\nvar clearColorPalette;\nvar render;\nvar renderComponents;\nvar renderSeries;\nvar performPostUpdateFuncs;\nvar createExtensionAPI;\nvar enableConnect;\nvar setTransitionOpt;\nvar markStatusToUpdate;\nvar applyChangedStates;\n\nvar ECharts = function (_super) {\n  __extends(ECharts, _super);\n\n  function ECharts(dom, theme, opts) {\n    var _this = _super.call(this, new ECEventProcessor()) || this;\n\n    _this._chartsViews = [];\n    _this._chartsMap = {};\n    _this._componentsViews = [];\n    _this._componentsMap = {};\n    _this._pendingActions = [];\n    opts = opts || {};\n\n    if (typeof theme === 'string') {\n      theme = themeStorage[theme];\n    }\n\n    _this._dom = dom;\n    var defaultRenderer = 'canvas';\n    var defaultUseDirtyRect = false;\n\n    if (process.env.NODE_ENV !== 'production') {\n      var root = hasWindow ? window : global;\n      defaultRenderer = root.__ECHARTS__DEFAULT__RENDERER__ || defaultRenderer;\n      var devUseDirtyRect = root.__ECHARTS__DEFAULT__USE_DIRTY_RECT__;\n      defaultUseDirtyRect = devUseDirtyRect == null ? defaultUseDirtyRect : devUseDirtyRect;\n    }\n\n    var zr = _this._zr = zrender.init(dom, {\n      renderer: opts.renderer || defaultRenderer,\n      devicePixelRatio: opts.devicePixelRatio,\n      width: opts.width,\n      height: opts.height,\n      useDirtyRect: opts.useDirtyRect == null ? defaultUseDirtyRect : opts.useDirtyRect\n    });\n    _this._throttledZrFlush = throttle(zrUtil.bind(zr.flush, zr), 17);\n    theme = zrUtil.clone(theme);\n    theme && backwardCompat(theme, true);\n    _this._theme = theme;\n    _this._locale = createLocaleObject(opts.locale || SYSTEM_LANG);\n    _this._coordSysMgr = new CoordinateSystemManager();\n    var api = _this._api = createExtensionAPI(_this);\n\n    function prioritySortFunc(a, b) {\n      return a.__prio - b.__prio;\n    }\n\n    timsort(visualFuncs, prioritySortFunc);\n    timsort(dataProcessorFuncs, prioritySortFunc);\n    _this._scheduler = new Scheduler(_this, api, dataProcessorFuncs, visualFuncs);\n    _this._messageCenter = new MessageCenter();\n    _this._labelManager = new LabelManager();\n\n    _this._initEvents();\n\n    _this.resize = zrUtil.bind(_this.resize, _this);\n    zr.animation.on('frame', _this._onframe, _this);\n    bindRenderedEvent(zr, _this);\n    bindMouseEvent(zr, _this);\n    zrUtil.setAsPrimitive(_this);\n    return _this;\n  }\n\n  ECharts.prototype._onframe = function () {\n    if (this._disposed) {\n      return;\n    }\n\n    applyChangedStates(this);\n    var scheduler = this._scheduler;\n\n    if (this[OPTION_UPDATED_KEY]) {\n      var silent = this[OPTION_UPDATED_KEY].silent;\n      this[IN_MAIN_PROCESS_KEY] = true;\n      prepare(this);\n      updateMethods.update.call(this);\n\n      this._zr.flush();\n\n      this[IN_MAIN_PROCESS_KEY] = false;\n      this[OPTION_UPDATED_KEY] = false;\n      flushPendingActions.call(this, silent);\n      triggerUpdatedEvent.call(this, silent);\n    } else if (scheduler.unfinished) {\n      var remainTime = TEST_FRAME_REMAIN_TIME;\n      var ecModel = this._model;\n      var api = this._api;\n      scheduler.unfinished = false;\n\n      do {\n        var startTime = +new Date();\n        scheduler.performSeriesTasks(ecModel);\n        scheduler.performDataProcessorTasks(ecModel);\n        updateStreamModes(this, ecModel);\n        scheduler.performVisualTasks(ecModel);\n        renderSeries(this, this._model, api, 'remain');\n        remainTime -= +new Date() - startTime;\n      } while (remainTime > 0 && scheduler.unfinished);\n\n      if (!scheduler.unfinished) {\n        this._zr.flush();\n      }\n    }\n  };\n\n  ECharts.prototype.getDom = function () {\n    return this._dom;\n  };\n\n  ECharts.prototype.getId = function () {\n    return this.id;\n  };\n\n  ECharts.prototype.getZr = function () {\n    return this._zr;\n  };\n\n  ECharts.prototype.setOption = function (option, notMerge, lazyUpdate) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!this[IN_MAIN_PROCESS_KEY], '`setOption` should not be called during main process.');\n    }\n\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    var silent;\n    var replaceMerge;\n    var transitionOpt;\n\n    if (isObject(notMerge)) {\n      lazyUpdate = notMerge.lazyUpdate;\n      silent = notMerge.silent;\n      replaceMerge = notMerge.replaceMerge;\n      transitionOpt = notMerge.transition;\n      notMerge = notMerge.notMerge;\n    }\n\n    this[IN_MAIN_PROCESS_KEY] = true;\n\n    if (!this._model || notMerge) {\n      var optionManager = new OptionManager(this._api);\n      var theme = this._theme;\n      var ecModel = this._model = new GlobalModel();\n      ecModel.scheduler = this._scheduler;\n      ecModel.init(null, null, null, theme, this._locale, optionManager);\n    }\n\n    this._model.setOption(option, {\n      replaceMerge: replaceMerge\n    }, optionPreprocessorFuncs);\n\n    setTransitionOpt(this, transitionOpt);\n\n    if (lazyUpdate) {\n      this[OPTION_UPDATED_KEY] = {\n        silent: silent\n      };\n      this[IN_MAIN_PROCESS_KEY] = false;\n      this.getZr().wakeUp();\n    } else {\n      prepare(this);\n      updateMethods.update.call(this);\n\n      this._zr.flush();\n\n      this[OPTION_UPDATED_KEY] = false;\n      this[IN_MAIN_PROCESS_KEY] = false;\n      flushPendingActions.call(this, silent);\n      triggerUpdatedEvent.call(this, silent);\n    }\n  };\n\n  ECharts.prototype.setTheme = function () {\n    console.error('ECharts#setTheme() is DEPRECATED in ECharts 3.0');\n  };\n\n  ECharts.prototype.getModel = function () {\n    return this._model;\n  };\n\n  ECharts.prototype.getOption = function () {\n    return this._model && this._model.getOption();\n  };\n\n  ECharts.prototype.getWidth = function () {\n    return this._zr.getWidth();\n  };\n\n  ECharts.prototype.getHeight = function () {\n    return this._zr.getHeight();\n  };\n\n  ECharts.prototype.getDevicePixelRatio = function () {\n    return this._zr.painter.dpr || hasWindow && window.devicePixelRatio || 1;\n  };\n\n  ECharts.prototype.getRenderedCanvas = function (opts) {\n    if (!env.canvasSupported) {\n      return;\n    }\n\n    opts = zrUtil.extend({}, opts || {});\n    opts.pixelRatio = opts.pixelRatio || 1;\n    opts.backgroundColor = opts.backgroundColor || this._model.get('backgroundColor');\n    var zr = this._zr;\n    return zr.painter.getRenderedCanvas(opts);\n  };\n\n  ECharts.prototype.getSvgDataURL = function () {\n    if (!env.svgSupported) {\n      return;\n    }\n\n    var zr = this._zr;\n    var list = zr.storage.getDisplayList();\n    zrUtil.each(list, function (el) {\n      el.stopAnimation(null, true);\n    });\n    return zr.painter.toDataURL();\n  };\n\n  ECharts.prototype.getDataURL = function (opts) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    opts = opts || {};\n    var excludeComponents = opts.excludeComponents;\n    var ecModel = this._model;\n    var excludesComponentViews = [];\n    var self = this;\n    each(excludeComponents, function (componentType) {\n      ecModel.eachComponent({\n        mainType: componentType\n      }, function (component) {\n        var view = self._componentsMap[component.__viewId];\n\n        if (!view.group.ignore) {\n          excludesComponentViews.push(view);\n          view.group.ignore = true;\n        }\n      });\n    });\n    var url = this._zr.painter.getType() === 'svg' ? this.getSvgDataURL() : this.getRenderedCanvas(opts).toDataURL('image/' + (opts && opts.type || 'png'));\n    each(excludesComponentViews, function (view) {\n      view.group.ignore = false;\n    });\n    return url;\n  };\n\n  ECharts.prototype.getConnectedDataURL = function (opts) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    if (!env.canvasSupported) {\n      return;\n    }\n\n    var isSvg = opts.type === 'svg';\n    var groupId = this.group;\n    var mathMin = Math.min;\n    var mathMax = Math.max;\n    var MAX_NUMBER = Infinity;\n\n    if (connectedGroups[groupId]) {\n      var left_1 = MAX_NUMBER;\n      var top_1 = MAX_NUMBER;\n      var right_1 = -MAX_NUMBER;\n      var bottom_1 = -MAX_NUMBER;\n      var canvasList_1 = [];\n      var dpr_1 = opts && opts.pixelRatio || 1;\n      zrUtil.each(instances, function (chart, id) {\n        if (chart.group === groupId) {\n          var canvas = isSvg ? chart.getZr().painter.getSvgDom().innerHTML : chart.getRenderedCanvas(zrUtil.clone(opts));\n          var boundingRect = chart.getDom().getBoundingClientRect();\n          left_1 = mathMin(boundingRect.left, left_1);\n          top_1 = mathMin(boundingRect.top, top_1);\n          right_1 = mathMax(boundingRect.right, right_1);\n          bottom_1 = mathMax(boundingRect.bottom, bottom_1);\n          canvasList_1.push({\n            dom: canvas,\n            left: boundingRect.left,\n            top: boundingRect.top\n          });\n        }\n      });\n      left_1 *= dpr_1;\n      top_1 *= dpr_1;\n      right_1 *= dpr_1;\n      bottom_1 *= dpr_1;\n      var width = right_1 - left_1;\n      var height = bottom_1 - top_1;\n      var targetCanvas = zrUtil.createCanvas();\n      var zr_1 = zrender.init(targetCanvas, {\n        renderer: isSvg ? 'svg' : 'canvas'\n      });\n      zr_1.resize({\n        width: width,\n        height: height\n      });\n\n      if (isSvg) {\n        var content_1 = '';\n        each(canvasList_1, function (item) {\n          var x = item.left - left_1;\n          var y = item.top - top_1;\n          content_1 += '<g transform=\"translate(' + x + ',' + y + ')\">' + item.dom + '</g>';\n        });\n        zr_1.painter.getSvgRoot().innerHTML = content_1;\n\n        if (opts.connectedBackgroundColor) {\n          zr_1.painter.setBackgroundColor(opts.connectedBackgroundColor);\n        }\n\n        zr_1.refreshImmediately();\n        return zr_1.painter.toDataURL();\n      } else {\n        if (opts.connectedBackgroundColor) {\n          zr_1.add(new graphic.Rect({\n            shape: {\n              x: 0,\n              y: 0,\n              width: width,\n              height: height\n            },\n            style: {\n              fill: opts.connectedBackgroundColor\n            }\n          }));\n        }\n\n        each(canvasList_1, function (item) {\n          var img = new graphic.Image({\n            style: {\n              x: item.left * dpr_1 - left_1,\n              y: item.top * dpr_1 - top_1,\n              image: item.dom\n            }\n          });\n          zr_1.add(img);\n        });\n        zr_1.refreshImmediately();\n        return targetCanvas.toDataURL('image/' + (opts && opts.type || 'png'));\n      }\n    } else {\n      return this.getDataURL(opts);\n    }\n  };\n\n  ECharts.prototype.convertToPixel = function (finder, value) {\n    return doConvertPixel(this, 'convertToPixel', finder, value);\n  };\n\n  ECharts.prototype.convertFromPixel = function (finder, value) {\n    return doConvertPixel(this, 'convertFromPixel', finder, value);\n  };\n\n  ECharts.prototype.containPixel = function (finder, value) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    var ecModel = this._model;\n    var result;\n    var findResult = modelUtil.parseFinder(ecModel, finder);\n    zrUtil.each(findResult, function (models, key) {\n      key.indexOf('Models') >= 0 && zrUtil.each(models, function (model) {\n        var coordSys = model.coordinateSystem;\n\n        if (coordSys && coordSys.containPoint) {\n          result = result || !!coordSys.containPoint(value);\n        } else if (key === 'seriesModels') {\n          var view = this._chartsMap[model.__viewId];\n\n          if (view && view.containPoint) {\n            result = result || view.containPoint(value, model);\n          } else {\n            if (process.env.NODE_ENV !== 'production') {\n              console.warn(key + ': ' + (view ? 'The found component do not support containPoint.' : 'No view mapping to the found component.'));\n            }\n          }\n        } else {\n          if (process.env.NODE_ENV !== 'production') {\n            console.warn(key + ': containPoint is not supported');\n          }\n        }\n      }, this);\n    }, this);\n    return !!result;\n  };\n\n  ECharts.prototype.getVisual = function (finder, visualType) {\n    var ecModel = this._model;\n    var parsedFinder = modelUtil.parseFinder(ecModel, finder, {\n      defaultMainType: 'series'\n    });\n    var seriesModel = parsedFinder.seriesModel;\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!seriesModel) {\n        console.warn('There is no specified seires model');\n      }\n    }\n\n    var data = seriesModel.getData();\n    var dataIndexInside = parsedFinder.hasOwnProperty('dataIndexInside') ? parsedFinder.dataIndexInside : parsedFinder.hasOwnProperty('dataIndex') ? data.indexOfRawIndex(parsedFinder.dataIndex) : null;\n    return dataIndexInside != null ? getItemVisualFromData(data, dataIndexInside, visualType) : getVisualFromData(data, visualType);\n  };\n\n  ECharts.prototype.getViewOfComponentModel = function (componentModel) {\n    return this._componentsMap[componentModel.__viewId];\n  };\n\n  ECharts.prototype.getViewOfSeriesModel = function (seriesModel) {\n    return this._chartsMap[seriesModel.__viewId];\n  };\n\n  ECharts.prototype._initEvents = function () {\n    var _this = this;\n\n    each(MOUSE_EVENT_NAMES, function (eveName) {\n      var handler = function (e) {\n        var ecModel = _this.getModel();\n\n        var el = e.target;\n        var params;\n        var isGlobalOut = eveName === 'globalout';\n\n        if (isGlobalOut) {\n          params = {};\n        } else {\n          el && findEventDispatcher(el, function (parent) {\n            var ecData = getECData(parent);\n\n            if (ecData && ecData.dataIndex != null) {\n              var dataModel = ecData.dataModel || ecModel.getSeriesByIndex(ecData.seriesIndex);\n              params = dataModel && dataModel.getDataParams(ecData.dataIndex, ecData.dataType) || {};\n              return true;\n            } else if (ecData.eventData) {\n              params = zrUtil.extend({}, ecData.eventData);\n              return true;\n            }\n          }, true);\n        }\n\n        if (params) {\n          var componentType = params.componentType;\n          var componentIndex = params.componentIndex;\n\n          if (componentType === 'markLine' || componentType === 'markPoint' || componentType === 'markArea') {\n            componentType = 'series';\n            componentIndex = params.seriesIndex;\n          }\n\n          var model = componentType && componentIndex != null && ecModel.getComponent(componentType, componentIndex);\n          var view = model && _this[model.mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId];\n\n          if (process.env.NODE_ENV !== 'production') {\n            if (!isGlobalOut && !(model && view)) {\n              console.warn('model or view can not be found by params');\n            }\n          }\n\n          params.event = e;\n          params.type = eveName;\n          _this._$eventProcessor.eventInfo = {\n            targetEl: el,\n            packedEvent: params,\n            model: model,\n            view: view\n          };\n\n          _this.trigger(eveName, params);\n        }\n      };\n\n      handler.zrEventfulCallAtLast = true;\n\n      _this._zr.on(eveName, handler, _this);\n    });\n    each(eventActionMap, function (actionType, eventType) {\n      _this._messageCenter.on(eventType, function (event) {\n        this.trigger(eventType, event);\n      }, _this);\n    });\n    each(['selectchanged'], function (eventType) {\n      _this._messageCenter.on(eventType, function (event) {\n        this.trigger(eventType, event);\n      }, _this);\n    });\n    handleLegacySelectEvents(this._messageCenter, this, this._api);\n  };\n\n  ECharts.prototype.isDisposed = function () {\n    return this._disposed;\n  };\n\n  ECharts.prototype.clear = function () {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    this.setOption({\n      series: []\n    }, true);\n  };\n\n  ECharts.prototype.dispose = function () {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    this._disposed = true;\n    modelUtil.setAttribute(this.getDom(), DOM_ATTRIBUTE_KEY, '');\n    var api = this._api;\n    var ecModel = this._model;\n    each(this._componentsViews, function (component) {\n      component.dispose(ecModel, api);\n    });\n    each(this._chartsViews, function (chart) {\n      chart.dispose(ecModel, api);\n    });\n\n    this._zr.dispose();\n\n    delete instances[this.id];\n  };\n\n  ECharts.prototype.resize = function (opts) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!this[IN_MAIN_PROCESS_KEY], '`resize` should not be called during main process.');\n    }\n\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    this._zr.resize(opts);\n\n    var ecModel = this._model;\n    this._loadingFX && this._loadingFX.resize();\n\n    if (!ecModel) {\n      return;\n    }\n\n    var optionChanged = ecModel.resetOption('media');\n    var silent = opts && opts.silent;\n    this[IN_MAIN_PROCESS_KEY] = true;\n    optionChanged && prepare(this);\n    updateMethods.update.call(this, {\n      type: 'resize',\n      animation: {\n        duration: 0\n      }\n    });\n    this[IN_MAIN_PROCESS_KEY] = false;\n    flushPendingActions.call(this, silent);\n    triggerUpdatedEvent.call(this, silent);\n  };\n\n  ECharts.prototype.showLoading = function (name, cfg) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    if (isObject(name)) {\n      cfg = name;\n      name = '';\n    }\n\n    name = name || 'default';\n    this.hideLoading();\n\n    if (!loadingEffects[name]) {\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn('Loading effects ' + name + ' not exists.');\n      }\n\n      return;\n    }\n\n    var el = loadingEffects[name](this._api, cfg);\n    var zr = this._zr;\n    this._loadingFX = el;\n    zr.add(el);\n  };\n\n  ECharts.prototype.hideLoading = function () {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    this._loadingFX && this._zr.remove(this._loadingFX);\n    this._loadingFX = null;\n  };\n\n  ECharts.prototype.makeActionFromEvent = function (eventObj) {\n    var payload = zrUtil.extend({}, eventObj);\n    payload.type = eventActionMap[eventObj.type];\n    return payload;\n  };\n\n  ECharts.prototype.dispatchAction = function (payload, opt) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    if (!isObject(opt)) {\n      opt = {\n        silent: !!opt\n      };\n    }\n\n    if (!actions[payload.type]) {\n      return;\n    }\n\n    if (!this._model) {\n      return;\n    }\n\n    if (this[IN_MAIN_PROCESS_KEY]) {\n      this._pendingActions.push(payload);\n\n      return;\n    }\n\n    var silent = opt.silent;\n    doDispatchAction.call(this, payload, silent);\n    var flush = opt.flush;\n\n    if (flush) {\n      this._zr.flush();\n    } else if (flush !== false && env.browser.weChat) {\n      this._throttledZrFlush();\n    }\n\n    flushPendingActions.call(this, silent);\n    triggerUpdatedEvent.call(this, silent);\n  };\n\n  ECharts.prototype.updateLabelLayout = function () {\n    var labelManager = this._labelManager;\n    labelManager.updateLayoutConfig(this._api);\n    labelManager.layout(this._api);\n    labelManager.processLabelsOverall();\n  };\n\n  ECharts.prototype.appendData = function (params) {\n    if (this._disposed) {\n      disposedWarning(this.id);\n      return;\n    }\n\n    var seriesIndex = params.seriesIndex;\n    var ecModel = this.getModel();\n    var seriesModel = ecModel.getSeriesByIndex(seriesIndex);\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(params.data && seriesModel);\n    }\n\n    seriesModel.appendData(params);\n    this._scheduler.unfinished = true;\n    this.getZr().wakeUp();\n  };\n\n  ECharts.internalField = function () {\n    prepare = function (ecIns) {\n      var scheduler = ecIns._scheduler;\n      scheduler.restorePipelines(ecIns._model);\n      scheduler.prepareStageTasks();\n      prepareView(ecIns, true);\n      prepareView(ecIns, false);\n      scheduler.plan();\n    };\n\n    prepareView = function (ecIns, isComponent) {\n      var ecModel = ecIns._model;\n      var scheduler = ecIns._scheduler;\n      var viewList = isComponent ? ecIns._componentsViews : ecIns._chartsViews;\n      var viewMap = isComponent ? ecIns._componentsMap : ecIns._chartsMap;\n      var zr = ecIns._zr;\n      var api = ecIns._api;\n\n      for (var i = 0; i < viewList.length; i++) {\n        viewList[i].__alive = false;\n      }\n\n      isComponent ? ecModel.eachComponent(function (componentType, model) {\n        componentType !== 'series' && doPrepare(model);\n      }) : ecModel.eachSeries(doPrepare);\n\n      function doPrepare(model) {\n        var requireNewView = model.__requireNewView;\n        model.__requireNewView = false;\n        var viewId = '_ec_' + model.id + '_' + model.type;\n        var view = !requireNewView && viewMap[viewId];\n\n        if (!view) {\n          var classType = parseClassType(model.type);\n          var Clazz = isComponent ? ComponentView.getClass(classType.main, classType.sub) : ChartView.getClass(classType.sub);\n\n          if (process.env.NODE_ENV !== 'production') {\n            assert(Clazz, classType.sub + ' does not exist.');\n          }\n\n          view = new Clazz();\n          view.init(ecModel, api);\n          viewMap[viewId] = view;\n          viewList.push(view);\n          zr.add(view.group);\n        }\n\n        model.__viewId = view.__id = viewId;\n        view.__alive = true;\n        view.__model = model;\n        view.group.__ecComponentInfo = {\n          mainType: model.mainType,\n          index: model.componentIndex\n        };\n        !isComponent && scheduler.prepareView(view, model, ecModel, api);\n      }\n\n      for (var i = 0; i < viewList.length;) {\n        var view = viewList[i];\n\n        if (!view.__alive) {\n          !isComponent && view.renderTask.dispose();\n          zr.remove(view.group);\n          view.dispose(ecModel, api);\n          viewList.splice(i, 1);\n\n          if (viewMap[view.__id] === view) {\n            delete viewMap[view.__id];\n          }\n\n          view.__id = view.group.__ecComponentInfo = null;\n        } else {\n          i++;\n        }\n      }\n    };\n\n    updateDirectly = function (ecIns, method, payload, mainType, subType) {\n      var ecModel = ecIns._model;\n      ecModel.setUpdatePayload(payload);\n\n      if (!mainType) {\n        each([].concat(ecIns._componentsViews).concat(ecIns._chartsViews), callView);\n        return;\n      }\n\n      var query = {};\n      query[mainType + 'Id'] = payload[mainType + 'Id'];\n      query[mainType + 'Index'] = payload[mainType + 'Index'];\n      query[mainType + 'Name'] = payload[mainType + 'Name'];\n      var condition = {\n        mainType: mainType,\n        query: query\n      };\n      subType && (condition.subType = subType);\n      var excludeSeriesId = payload.excludeSeriesId;\n      var excludeSeriesIdMap;\n\n      if (excludeSeriesId != null) {\n        excludeSeriesIdMap = zrUtil.createHashMap();\n        each(modelUtil.normalizeToArray(excludeSeriesId), function (id) {\n          var modelId = modelUtil.convertOptionIdName(id, null);\n\n          if (modelId != null) {\n            excludeSeriesIdMap.set(modelId, true);\n          }\n        });\n      }\n\n      ecModel && ecModel.eachComponent(condition, function (model) {\n        if (!excludeSeriesIdMap || excludeSeriesIdMap.get(model.id) == null) {\n          if (isHighDownPayload(payload) && !payload.notBlur) {\n            if (model instanceof SeriesModel) {\n              toggleSeriesBlurStateFromPayload(model, payload, ecIns._api);\n            }\n          } else if (isSelectChangePayload(payload)) {\n            if (model instanceof SeriesModel) {\n              toggleSelectionFromPayload(model, payload, ecIns._api);\n              updateSeriesElementSelection(model);\n              markStatusToUpdate(ecIns);\n            }\n          }\n\n          callView(ecIns[mainType === 'series' ? '_chartsMap' : '_componentsMap'][model.__viewId]);\n        }\n      }, ecIns);\n\n      function callView(view) {\n        view && view.__alive && view[method] && view[method](view.__model, ecModel, ecIns._api, payload);\n      }\n    };\n\n    updateMethods = {\n      prepareAndUpdate: function (payload) {\n        prepare(this);\n        updateMethods.update.call(this, payload);\n      },\n      update: function (payload) {\n        var ecModel = this._model;\n        var api = this._api;\n        var zr = this._zr;\n        var coordSysMgr = this._coordSysMgr;\n        var scheduler = this._scheduler;\n\n        if (!ecModel) {\n          return;\n        }\n\n        ecModel.setUpdatePayload(payload);\n        scheduler.restoreData(ecModel, payload);\n        scheduler.performSeriesTasks(ecModel);\n        coordSysMgr.create(ecModel, api);\n        scheduler.performDataProcessorTasks(ecModel, payload);\n        updateStreamModes(this, ecModel);\n        coordSysMgr.update(ecModel, api);\n        clearColorPalette(ecModel);\n        scheduler.performVisualTasks(ecModel, payload);\n        render(this, ecModel, api, payload);\n        var backgroundColor = ecModel.get('backgroundColor') || 'transparent';\n        var darkMode = ecModel.get('darkMode');\n\n        if (!env.canvasSupported) {\n          var colorArr = colorTool.parse(backgroundColor);\n          backgroundColor = colorTool.stringify(colorArr, 'rgb');\n\n          if (colorArr[3] === 0) {\n            backgroundColor = 'transparent';\n          }\n        } else {\n          zr.setBackgroundColor(backgroundColor);\n\n          if (darkMode != null && darkMode !== 'auto') {\n            zr.setDarkMode(darkMode);\n          }\n        }\n\n        performPostUpdateFuncs(ecModel, api);\n      },\n      updateTransform: function (payload) {\n        var _this = this;\n\n        var ecModel = this._model;\n        var api = this._api;\n\n        if (!ecModel) {\n          return;\n        }\n\n        ecModel.setUpdatePayload(payload);\n        var componentDirtyList = [];\n        ecModel.eachComponent(function (componentType, componentModel) {\n          if (componentType === 'series') {\n            return;\n          }\n\n          var componentView = _this.getViewOfComponentModel(componentModel);\n\n          if (componentView && componentView.__alive) {\n            if (componentView.updateTransform) {\n              var result = componentView.updateTransform(componentModel, ecModel, api, payload);\n              result && result.update && componentDirtyList.push(componentView);\n            } else {\n              componentDirtyList.push(componentView);\n            }\n          }\n        });\n        var seriesDirtyMap = zrUtil.createHashMap();\n        ecModel.eachSeries(function (seriesModel) {\n          var chartView = _this._chartsMap[seriesModel.__viewId];\n\n          if (chartView.updateTransform) {\n            var result = chartView.updateTransform(seriesModel, ecModel, api, payload);\n            result && result.update && seriesDirtyMap.set(seriesModel.uid, 1);\n          } else {\n            seriesDirtyMap.set(seriesModel.uid, 1);\n          }\n        });\n        clearColorPalette(ecModel);\n\n        this._scheduler.performVisualTasks(ecModel, payload, {\n          setDirty: true,\n          dirtyMap: seriesDirtyMap\n        });\n\n        renderSeries(this, ecModel, api, payload, seriesDirtyMap);\n        performPostUpdateFuncs(ecModel, this._api);\n      },\n      updateView: function (payload) {\n        var ecModel = this._model;\n\n        if (!ecModel) {\n          return;\n        }\n\n        ecModel.setUpdatePayload(payload);\n        ChartView.markUpdateMethod(payload, 'updateView');\n        clearColorPalette(ecModel);\n\n        this._scheduler.performVisualTasks(ecModel, payload, {\n          setDirty: true\n        });\n\n        render(this, this._model, this._api, payload);\n        performPostUpdateFuncs(ecModel, this._api);\n      },\n      updateVisual: function (payload) {\n        var _this = this;\n\n        var ecModel = this._model;\n\n        if (!ecModel) {\n          return;\n        }\n\n        ecModel.setUpdatePayload(payload);\n        ecModel.eachSeries(function (seriesModel) {\n          seriesModel.getData().clearAllVisual();\n        });\n        ChartView.markUpdateMethod(payload, 'updateVisual');\n        clearColorPalette(ecModel);\n\n        this._scheduler.performVisualTasks(ecModel, payload, {\n          visualType: 'visual',\n          setDirty: true\n        });\n\n        ecModel.eachComponent(function (componentType, componentModel) {\n          if (componentType !== 'series') {\n            var componentView = _this.getViewOfComponentModel(componentModel);\n\n            componentView && componentView.__alive && componentView.updateVisual(componentModel, ecModel, _this._api, payload);\n          }\n        });\n        ecModel.eachSeries(function (seriesModel) {\n          var chartView = _this._chartsMap[seriesModel.__viewId];\n          chartView.updateVisual(seriesModel, ecModel, _this._api, payload);\n        });\n        performPostUpdateFuncs(ecModel, this._api);\n      },\n      updateLayout: function (payload) {\n        updateMethods.update.call(this, payload);\n      }\n    };\n\n    doConvertPixel = function (ecIns, methodName, finder, value) {\n      if (ecIns._disposed) {\n        disposedWarning(ecIns.id);\n        return;\n      }\n\n      var ecModel = ecIns._model;\n\n      var coordSysList = ecIns._coordSysMgr.getCoordinateSystems();\n\n      var result;\n      var parsedFinder = modelUtil.parseFinder(ecModel, finder);\n\n      for (var i = 0; i < coordSysList.length; i++) {\n        var coordSys = coordSysList[i];\n\n        if (coordSys[methodName] && (result = coordSys[methodName](ecModel, parsedFinder, value)) != null) {\n          return result;\n        }\n      }\n\n      if (process.env.NODE_ENV !== 'production') {\n        console.warn('No coordinate system that supports ' + methodName + ' found by the given finder.');\n      }\n    };\n\n    updateStreamModes = function (ecIns, ecModel) {\n      var chartsMap = ecIns._chartsMap;\n      var scheduler = ecIns._scheduler;\n      ecModel.eachSeries(function (seriesModel) {\n        scheduler.updateStreamModes(seriesModel, chartsMap[seriesModel.__viewId]);\n      });\n    };\n\n    doDispatchAction = function (payload, silent) {\n      var _this = this;\n\n      var ecModel = this.getModel();\n      var payloadType = payload.type;\n      var escapeConnect = payload.escapeConnect;\n      var actionWrap = actions[payloadType];\n      var actionInfo = actionWrap.actionInfo;\n      var cptTypeTmp = (actionInfo.update || 'update').split(':');\n      var updateMethod = cptTypeTmp.pop();\n      var cptType = cptTypeTmp[0] != null && parseClassType(cptTypeTmp[0]);\n      this[IN_MAIN_PROCESS_KEY] = true;\n      var payloads = [payload];\n      var batched = false;\n\n      if (payload.batch) {\n        batched = true;\n        payloads = zrUtil.map(payload.batch, function (item) {\n          item = zrUtil.defaults(zrUtil.extend({}, item), payload);\n          item.batch = null;\n          return item;\n        });\n      }\n\n      var eventObjBatch = [];\n      var eventObj;\n      var isSelectChange = isSelectChangePayload(payload);\n      var isStatusChange = isHighDownPayload(payload) || isSelectChange;\n      each(payloads, function (batchItem) {\n        eventObj = actionWrap.action(batchItem, _this._model, _this._api);\n        eventObj = eventObj || zrUtil.extend({}, batchItem);\n        eventObj.type = actionInfo.event || eventObj.type;\n        eventObjBatch.push(eventObj);\n\n        if (isStatusChange) {\n          updateDirectly(_this, updateMethod, batchItem, 'series');\n          markStatusToUpdate(_this);\n        } else if (cptType) {\n          updateDirectly(_this, updateMethod, batchItem, cptType.main, cptType.sub);\n        }\n      });\n\n      if (updateMethod !== 'none' && !isStatusChange && !cptType) {\n        if (this[OPTION_UPDATED_KEY]) {\n          prepare(this);\n          updateMethods.update.call(this, payload);\n          this[OPTION_UPDATED_KEY] = false;\n        } else {\n          updateMethods[updateMethod].call(this, payload);\n        }\n      }\n\n      if (batched) {\n        eventObj = {\n          type: actionInfo.event || payloadType,\n          escapeConnect: escapeConnect,\n          batch: eventObjBatch\n        };\n      } else {\n        eventObj = eventObjBatch[0];\n      }\n\n      this[IN_MAIN_PROCESS_KEY] = false;\n\n      if (!silent) {\n        var messageCenter = this._messageCenter;\n        messageCenter.trigger(eventObj.type, eventObj);\n\n        if (isSelectChange) {\n          var newObj = {\n            type: 'selectchanged',\n            escapeConnect: escapeConnect,\n            selected: getAllSelectedIndices(ecModel),\n            isFromClick: payload.isFromClick || false,\n            fromAction: payload.type,\n            fromActionPayload: payload\n          };\n          messageCenter.trigger(newObj.type, newObj);\n        }\n      }\n    };\n\n    flushPendingActions = function (silent) {\n      var pendingActions = this._pendingActions;\n\n      while (pendingActions.length) {\n        var payload = pendingActions.shift();\n        doDispatchAction.call(this, payload, silent);\n      }\n    };\n\n    triggerUpdatedEvent = function (silent) {\n      !silent && this.trigger('updated');\n    };\n\n    bindRenderedEvent = function (zr, ecIns) {\n      zr.on('rendered', function (params) {\n        ecIns.trigger('rendered', params);\n\n        if (zr.animation.isFinished() && !ecIns[OPTION_UPDATED_KEY] && !ecIns._scheduler.unfinished && !ecIns._pendingActions.length) {\n          ecIns.trigger('finished');\n        }\n      });\n    };\n\n    bindMouseEvent = function (zr, ecIns) {\n      zr.on('mouseover', function (e) {\n        var el = e.target;\n        var dispatcher = findEventDispatcher(el, isHighDownDispatcher);\n\n        if (dispatcher) {\n          var ecData = getECData(dispatcher);\n          toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns._api, true);\n          enterEmphasisWhenMouseOver(dispatcher, e);\n          markStatusToUpdate(ecIns);\n        }\n      }).on('mouseout', function (e) {\n        var el = e.target;\n        var dispatcher = findEventDispatcher(el, isHighDownDispatcher);\n\n        if (dispatcher) {\n          var ecData = getECData(dispatcher);\n          toggleSeriesBlurState(ecData.seriesIndex, ecData.focus, ecData.blurScope, ecIns._api, false);\n          leaveEmphasisWhenMouseOut(dispatcher, e);\n          markStatusToUpdate(ecIns);\n        }\n      }).on('click', function (e) {\n        var el = e.target;\n        var dispatcher = findEventDispatcher(el, function (target) {\n          return getECData(target).dataIndex != null;\n        }, true);\n\n        if (dispatcher) {\n          var actionType = dispatcher.selected ? 'unselect' : 'select';\n          var ecData = getECData(dispatcher);\n\n          ecIns._api.dispatchAction({\n            type: actionType,\n            dataType: ecData.dataType,\n            dataIndexInside: ecData.dataIndex,\n            seriesIndex: ecData.seriesIndex,\n            isFromClick: true\n          });\n        }\n      });\n    };\n\n    clearColorPalette = function (ecModel) {\n      ecModel.clearColorPalette();\n      ecModel.eachSeries(function (seriesModel) {\n        seriesModel.clearColorPalette();\n      });\n    };\n\n    render = function (ecIns, ecModel, api, payload) {\n      renderComponents(ecIns, ecModel, api, payload);\n      each(ecIns._chartsViews, function (chart) {\n        chart.__alive = false;\n      });\n      renderSeries(ecIns, ecModel, api, payload);\n      each(ecIns._chartsViews, function (chart) {\n        if (!chart.__alive) {\n          chart.remove(ecModel, api);\n        }\n      });\n    };\n\n    renderComponents = function (ecIns, ecModel, api, payload, dirtyList) {\n      each(dirtyList || ecIns._componentsViews, function (componentView) {\n        var componentModel = componentView.__model;\n        clearStates(componentModel, componentView);\n        componentView.render(componentModel, ecModel, api, payload);\n        updateZ(componentModel, componentView);\n        updateStates(componentModel, componentView);\n      });\n    };\n\n    renderSeries = function (ecIns, ecModel, api, payload, dirtyMap) {\n      var scheduler = ecIns._scheduler;\n      var labelManager = ecIns._labelManager;\n      labelManager.clearLabels();\n      var unfinished = false;\n      ecModel.eachSeries(function (seriesModel) {\n        var chartView = ecIns._chartsMap[seriesModel.__viewId];\n        chartView.__alive = true;\n        var renderTask = chartView.renderTask;\n        scheduler.updatePayload(renderTask, payload);\n        clearStates(seriesModel, chartView);\n\n        if (dirtyMap && dirtyMap.get(seriesModel.uid)) {\n          renderTask.dirty();\n        }\n\n        if (renderTask.perform(scheduler.getPerformArgs(renderTask))) {\n          unfinished = true;\n        }\n\n        seriesModel.__transientTransitionOpt = null;\n        chartView.group.silent = !!seriesModel.get('silent');\n        updateBlend(seriesModel, chartView);\n        updateSeriesElementSelection(seriesModel);\n        labelManager.addLabelsOfSeries(chartView);\n      });\n      scheduler.unfinished = unfinished || scheduler.unfinished;\n      labelManager.updateLayoutConfig(api);\n      labelManager.layout(api);\n      labelManager.processLabelsOverall();\n      ecModel.eachSeries(function (seriesModel) {\n        var chartView = ecIns._chartsMap[seriesModel.__viewId];\n        updateZ(seriesModel, chartView);\n        updateStates(seriesModel, chartView);\n      });\n      updateHoverLayerStatus(ecIns, ecModel);\n    };\n\n    performPostUpdateFuncs = function (ecModel, api) {\n      each(postUpdateFuncs, function (func) {\n        func(ecModel, api);\n      });\n    };\n\n    markStatusToUpdate = function (ecIns) {\n      ecIns[STATUS_NEEDS_UPDATE_KEY] = true;\n      ecIns.getZr().wakeUp();\n    };\n\n    applyChangedStates = function (ecIns) {\n      if (!ecIns[STATUS_NEEDS_UPDATE_KEY]) {\n        return;\n      }\n\n      ecIns.getZr().storage.traverse(function (el) {\n        if (graphic.isElementRemoved(el)) {\n          return;\n        }\n\n        applyElementStates(el);\n      });\n      ecIns[STATUS_NEEDS_UPDATE_KEY] = false;\n    };\n\n    function applyElementStates(el) {\n      var newStates = [];\n      var oldStates = el.currentStates;\n\n      for (var i = 0; i < oldStates.length; i++) {\n        var stateName = oldStates[i];\n\n        if (!(stateName === 'emphasis' || stateName === 'blur' || stateName === 'select')) {\n          newStates.push(stateName);\n        }\n      }\n\n      if (el.selected && el.states.select) {\n        newStates.push('select');\n      }\n\n      if (el.hoverState === HOVER_STATE_EMPHASIS && el.states.emphasis) {\n        newStates.push('emphasis');\n      } else if (el.hoverState === HOVER_STATE_BLUR && el.states.blur) {\n        newStates.push('blur');\n      }\n\n      el.useStates(newStates);\n    }\n\n    function updateHoverLayerStatus(ecIns, ecModel) {\n      var zr = ecIns._zr;\n      var storage = zr.storage;\n      var elCount = 0;\n      storage.traverse(function (el) {\n        if (!el.isGroup) {\n          elCount++;\n        }\n      });\n\n      if (elCount > ecModel.get('hoverLayerThreshold') && !env.node && !env.worker) {\n        ecModel.eachSeries(function (seriesModel) {\n          if (seriesModel.preventUsingHoverLayer) {\n            return;\n          }\n\n          var chartView = ecIns._chartsMap[seriesModel.__viewId];\n\n          if (chartView.__alive) {\n            chartView.group.traverse(function (el) {\n              if (el.states.emphasis) {\n                el.states.emphasis.hoverLayer = true;\n              }\n            });\n          }\n        });\n      }\n    }\n\n    ;\n\n    function updateBlend(seriesModel, chartView) {\n      var blendMode = seriesModel.get('blendMode') || null;\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (!env.canvasSupported && blendMode && blendMode !== 'source-over') {\n          console.warn('Only canvas support blendMode');\n        }\n      }\n\n      chartView.group.traverse(function (el) {\n        if (!el.isGroup) {\n          el.style.blend = blendMode;\n        }\n\n        if (el.eachPendingDisplayable) {\n          el.eachPendingDisplayable(function (displayable) {\n            displayable.style.blend = blendMode;\n          });\n        }\n      });\n    }\n\n    ;\n\n    function updateZ(model, view) {\n      if (model.preventAutoZ) {\n        return;\n      }\n\n      var z = model.get('z');\n      var zlevel = model.get('zlevel');\n      view.group.traverse(function (el) {\n        if (!el.isGroup) {\n          z != null && (el.z = z);\n          zlevel != null && (el.zlevel = zlevel);\n          var label = el.getTextContent();\n          var labelLine = el.getTextGuideLine();\n\n          if (label) {\n            label.z = el.z;\n            label.zlevel = el.zlevel;\n            label.z2 = el.z2 + 2;\n          }\n\n          if (labelLine) {\n            var showAbove = el.textGuideLineConfig && el.textGuideLineConfig.showAbove;\n            labelLine.z = el.z;\n            labelLine.zlevel = el.zlevel;\n            labelLine.z2 = el.z2 + (showAbove ? 1 : -1);\n          }\n        }\n      });\n    }\n\n    ;\n\n    function clearStates(model, view) {\n      view.group.traverse(function (el) {\n        if (graphic.isElementRemoved(el)) {\n          return;\n        }\n\n        var textContent = el.getTextContent();\n        var textGuide = el.getTextGuideLine();\n\n        if (el.stateTransition) {\n          el.stateTransition = null;\n        }\n\n        if (textContent && textContent.stateTransition) {\n          textContent.stateTransition = null;\n        }\n\n        if (textGuide && textGuide.stateTransition) {\n          textGuide.stateTransition = null;\n        }\n\n        if (el.hasState()) {\n          el.prevStates = el.currentStates;\n          el.clearStates();\n        } else if (el.prevStates) {\n          el.prevStates = null;\n        }\n      });\n    }\n\n    function updateStates(model, view) {\n      var stateAnimationModel = model.getModel('stateAnimation');\n      var enableAnimation = model.isAnimationEnabled();\n      var duration = stateAnimationModel.get('duration');\n      var stateTransition = duration > 0 ? {\n        duration: duration,\n        delay: stateAnimationModel.get('delay'),\n        easing: stateAnimationModel.get('easing')\n      } : null;\n      view.group.traverse(function (el) {\n        if (el.states && el.states.emphasis) {\n          if (graphic.isElementRemoved(el)) {\n            return;\n          }\n\n          if (el instanceof graphic.Path) {\n            savePathStates(el);\n          }\n\n          if (el.__dirty) {\n            var prevStates = el.prevStates;\n\n            if (prevStates) {\n              el.useStates(prevStates);\n            }\n          }\n\n          if (enableAnimation) {\n            el.stateTransition = stateTransition;\n            var textContent = el.getTextContent();\n            var textGuide = el.getTextGuideLine();\n\n            if (textContent) {\n              textContent.stateTransition = stateTransition;\n            }\n\n            if (textGuide) {\n              textGuide.stateTransition = stateTransition;\n            }\n          }\n\n          if (el.__dirty) {\n            applyElementStates(el);\n          }\n        }\n      });\n    }\n\n    ;\n\n    createExtensionAPI = function (ecIns) {\n      return new (function (_super) {\n        __extends(class_1, _super);\n\n        function class_1() {\n          return _super !== null && _super.apply(this, arguments) || this;\n        }\n\n        class_1.prototype.getCoordinateSystems = function () {\n          return ecIns._coordSysMgr.getCoordinateSystems();\n        };\n\n        class_1.prototype.getComponentByElement = function (el) {\n          while (el) {\n            var modelInfo = el.__ecComponentInfo;\n\n            if (modelInfo != null) {\n              return ecIns._model.getComponent(modelInfo.mainType, modelInfo.index);\n            }\n\n            el = el.parent;\n          }\n        };\n\n        class_1.prototype.enterEmphasis = function (el, highlightDigit) {\n          enterEmphasis(el, highlightDigit);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.leaveEmphasis = function (el, highlightDigit) {\n          leaveEmphasis(el, highlightDigit);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.enterBlur = function (el) {\n          enterBlur(el);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.leaveBlur = function (el) {\n          leaveBlur(el);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.enterSelect = function (el) {\n          enterSelect(el);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.leaveSelect = function (el) {\n          leaveSelect(el);\n          markStatusToUpdate(ecIns);\n        };\n\n        class_1.prototype.getModel = function () {\n          return ecIns.getModel();\n        };\n\n        class_1.prototype.getViewOfComponentModel = function (componentModel) {\n          return ecIns.getViewOfComponentModel(componentModel);\n        };\n\n        class_1.prototype.getViewOfSeriesModel = function (seriesModel) {\n          return ecIns.getViewOfSeriesModel(seriesModel);\n        };\n\n        return class_1;\n      }(ExtensionAPI))(ecIns);\n    };\n\n    enableConnect = function (chart) {\n      function updateConnectedChartsStatus(charts, status) {\n        for (var i = 0; i < charts.length; i++) {\n          var otherChart = charts[i];\n          otherChart[CONNECT_STATUS_KEY] = status;\n        }\n      }\n\n      each(eventActionMap, function (actionType, eventType) {\n        chart._messageCenter.on(eventType, function (event) {\n          if (connectedGroups[chart.group] && chart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_PENDING) {\n            if (event && event.escapeConnect) {\n              return;\n            }\n\n            var action_1 = chart.makeActionFromEvent(event);\n            var otherCharts_1 = [];\n            each(instances, function (otherChart) {\n              if (otherChart !== chart && otherChart.group === chart.group) {\n                otherCharts_1.push(otherChart);\n              }\n            });\n            updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_PENDING);\n            each(otherCharts_1, function (otherChart) {\n              if (otherChart[CONNECT_STATUS_KEY] !== CONNECT_STATUS_UPDATING) {\n                otherChart.dispatchAction(action_1);\n              }\n            });\n            updateConnectedChartsStatus(otherCharts_1, CONNECT_STATUS_UPDATED);\n          }\n        });\n      });\n    };\n\n    setTransitionOpt = function (chart, transitionOpt) {\n      var ecModel = chart._model;\n      zrUtil.each(modelUtil.normalizeToArray(transitionOpt), function (transOpt) {\n        var errMsg;\n        var fromOpt = transOpt.from;\n        var toOpt = transOpt.to;\n\n        if (toOpt == null) {\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg = '`transition.to` must be specified.';\n          }\n\n          throwError(errMsg);\n        }\n\n        var finderOpt = {\n          includeMainTypes: ['series'],\n          enableAll: false,\n          enableNone: false\n        };\n        var fromResult = fromOpt ? modelUtil.parseFinder(ecModel, fromOpt, finderOpt) : null;\n        var toResult = modelUtil.parseFinder(ecModel, toOpt, finderOpt);\n        var toSeries = toResult.seriesModel;\n\n        if (toSeries == null) {\n          errMsg = '';\n\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg = '`transition` is only supported on series.';\n          }\n        }\n\n        if (fromResult && fromResult.seriesModel !== toSeries) {\n          errMsg = '';\n\n          if (process.env.NODE_ENV !== 'production') {\n            errMsg = '`transition.from` and `transition.to` must be specified to the same series.';\n          }\n        }\n\n        if (errMsg != null) {\n          throwError(errMsg);\n        }\n\n        toSeries.__transientTransitionOpt = {\n          from: fromOpt ? fromOpt.dimension : null,\n          to: toOpt.dimension,\n          dividingMethod: transOpt.dividingMethod\n        };\n      });\n    };\n  }();\n\n  return ECharts;\n}(Eventful);\n\nvar echartsProto = ECharts.prototype;\nechartsProto.on = createRegisterEventWithLowercaseECharts('on');\nechartsProto.off = createRegisterEventWithLowercaseECharts('off');\n\nechartsProto.one = function (eventName, cb, ctx) {\n  var self = this;\n  deprecateLog('ECharts#one is deprecated.');\n\n  function wrapped() {\n    var args2 = [];\n\n    for (var _i = 0; _i < arguments.length; _i++) {\n      args2[_i] = arguments[_i];\n    }\n\n    cb && cb.apply && cb.apply(this, args2);\n    self.off(eventName, wrapped);\n  }\n\n  ;\n  this.on.call(this, eventName, wrapped, ctx);\n};\n\nvar MOUSE_EVENT_NAMES = ['click', 'dblclick', 'mouseover', 'mouseout', 'mousemove', 'mousedown', 'mouseup', 'globalout', 'contextmenu'];\n\nfunction disposedWarning(id) {\n  if (process.env.NODE_ENV !== 'production') {\n    console.warn('Instance ' + id + ' has been disposed');\n  }\n}\n\nvar actions = {};\nvar eventActionMap = {};\nvar dataProcessorFuncs = [];\nvar optionPreprocessorFuncs = [];\nvar postInitFuncs = [];\nvar postUpdateFuncs = [];\nvar visualFuncs = [];\nvar themeStorage = {};\nvar loadingEffects = {};\nvar instances = {};\nvar connectedGroups = {};\nvar idBase = +new Date() - 0;\nvar groupIdBase = +new Date() - 0;\nvar DOM_ATTRIBUTE_KEY = '_echarts_instance_';\nexport function init(dom, theme, opts) {\n  if (process.env.NODE_ENV !== 'production') {\n    if (!dom) {\n      throw new Error('Initialize failed: invalid dom.');\n    }\n  }\n\n  var existInstance = getInstanceByDom(dom);\n\n  if (existInstance) {\n    if (process.env.NODE_ENV !== 'production') {\n      console.warn('There is a chart instance already initialized on the dom.');\n    }\n\n    return existInstance;\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (zrUtil.isDom(dom) && dom.nodeName.toUpperCase() !== 'CANVAS' && (!dom.clientWidth && (!opts || opts.width == null) || !dom.clientHeight && (!opts || opts.height == null))) {\n      console.warn('Can\\'t get DOM width or height. Please check ' + 'dom.clientWidth and dom.clientHeight. They should not be 0.' + 'For example, you may need to call this in the callback ' + 'of window.onload.');\n    }\n  }\n\n  var chart = new ECharts(dom, theme, opts);\n  chart.id = 'ec_' + idBase++;\n  instances[chart.id] = chart;\n  modelUtil.setAttribute(dom, DOM_ATTRIBUTE_KEY, chart.id);\n  enableConnect(chart);\n  each(postInitFuncs, function (postInitFunc) {\n    postInitFunc(chart);\n  });\n  return chart;\n}\nexport function connect(groupId) {\n  if (zrUtil.isArray(groupId)) {\n    var charts = groupId;\n    groupId = null;\n    each(charts, function (chart) {\n      if (chart.group != null) {\n        groupId = chart.group;\n      }\n    });\n    groupId = groupId || 'g_' + groupIdBase++;\n    each(charts, function (chart) {\n      chart.group = groupId;\n    });\n  }\n\n  connectedGroups[groupId] = true;\n  return groupId;\n}\nexport function disConnect(groupId) {\n  connectedGroups[groupId] = false;\n}\nexport var disconnect = disConnect;\nexport function dispose(chart) {\n  if (typeof chart === 'string') {\n    chart = instances[chart];\n  } else if (!(chart instanceof ECharts)) {\n    chart = getInstanceByDom(chart);\n  }\n\n  if (chart instanceof ECharts && !chart.isDisposed()) {\n    chart.dispose();\n  }\n}\nexport function getInstanceByDom(dom) {\n  return instances[modelUtil.getAttribute(dom, DOM_ATTRIBUTE_KEY)];\n}\nexport function getInstanceById(key) {\n  return instances[key];\n}\nexport function registerTheme(name, theme) {\n  themeStorage[name] = theme;\n}\nexport function registerPreprocessor(preprocessorFunc) {\n  if (indexOf(optionPreprocessorFuncs, preprocessorFunc) < 0) {\n    optionPreprocessorFuncs.push(preprocessorFunc);\n  }\n}\nexport function registerProcessor(priority, processor) {\n  normalizeRegister(dataProcessorFuncs, priority, processor, PRIORITY_PROCESSOR_DEFAULT);\n}\nexport function registerPostInit(postInitFunc) {\n  if (indexOf(postInitFuncs, postInitFunc) < 0) {\n    postInitFunc && postInitFuncs.push(postInitFunc);\n  }\n}\nexport function registerPostUpdate(postUpdateFunc) {\n  if (indexOf(postUpdateFuncs, postUpdateFunc) < 0) {\n    postUpdateFunc && postUpdateFuncs.push(postUpdateFunc);\n  }\n}\nexport function registerAction(actionInfo, eventName, action) {\n  if (typeof eventName === 'function') {\n    action = eventName;\n    eventName = '';\n  }\n\n  var actionType = isObject(actionInfo) ? actionInfo.type : [actionInfo, actionInfo = {\n    event: eventName\n  }][0];\n  actionInfo.event = (actionInfo.event || actionType).toLowerCase();\n  eventName = actionInfo.event;\n\n  if (eventActionMap[eventName]) {\n    return;\n  }\n\n  assert(ACTION_REG.test(actionType) && ACTION_REG.test(eventName));\n\n  if (!actions[actionType]) {\n    actions[actionType] = {\n      action: action,\n      actionInfo: actionInfo\n    };\n  }\n\n  eventActionMap[eventName] = actionType;\n}\nexport function registerCoordinateSystem(type, coordSysCreator) {\n  CoordinateSystemManager.register(type, coordSysCreator);\n}\nexport function getCoordinateSystemDimensions(type) {\n  var coordSysCreator = CoordinateSystemManager.get(type);\n\n  if (coordSysCreator) {\n    return coordSysCreator.getDimensionsInfo ? coordSysCreator.getDimensionsInfo() : coordSysCreator.dimensions.slice();\n  }\n}\nexport { registerLocale } from './locale';\n\nfunction registerLayout(priority, layoutTask) {\n  normalizeRegister(visualFuncs, priority, layoutTask, PRIORITY_VISUAL_LAYOUT, 'layout');\n}\n\nfunction registerVisual(priority, visualTask) {\n  normalizeRegister(visualFuncs, priority, visualTask, PRIORITY_VISUAL_CHART, 'visual');\n}\n\nexport { registerLayout, registerVisual };\nvar registeredTasks = [];\n\nfunction normalizeRegister(targetList, priority, fn, defaultPriority, visualType) {\n  if (isFunction(priority) || isObject(priority)) {\n    fn = priority;\n    priority = defaultPriority;\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (isNaN(priority) || priority == null) {\n      throw new Error('Illegal priority');\n    }\n\n    each(targetList, function (wrap) {\n      assert(wrap.__raw !== fn);\n    });\n  }\n\n  if (indexOf(registeredTasks, fn) >= 0) {\n    return;\n  }\n\n  registeredTasks.push(fn);\n  var stageHandler = Scheduler.wrapStageHandler(fn, visualType);\n  stageHandler.__prio = priority;\n  stageHandler.__raw = fn;\n  targetList.push(stageHandler);\n}\n\nexport function registerLoading(name, loadingFx) {\n  loadingEffects[name] = loadingFx;\n}\nexport function setCanvasCreator(creator) {\n  zrUtil.$override('createCanvas', creator);\n}\nexport function registerMap(mapName, geoJson, specialAreas) {\n  mapDataStorage.registerMap(mapName, geoJson, specialAreas);\n}\nexport function getMap(mapName) {\n  var records = mapDataStorage.retrieveMap(mapName);\n  return records && records[0] && {\n    geoJson: records[0].geoJSON,\n    specialAreas: records[0].specialAreas\n  };\n}\nexport var registerTransform = registerExternalTransform;\nregisterVisual(PRIORITY_VISUAL_GLOBAL, seriesStyleTask);\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataStyleTask);\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataColorPaletteTask);\nregisterVisual(PRIORITY_VISUAL_GLOBAL, seriesSymbolTask);\nregisterVisual(PRIORITY_VISUAL_CHART_DATA_CUSTOM, dataSymbolTask);\nregisterVisual(PRIORITY_VISUAL_DECAL, decal);\nregisterPreprocessor(backwardCompat);\nregisterProcessor(PRIORITY_PROCESSOR_DATASTACK, dataStack);\nregisterLoading('default', loadingDefault);\nregisterAction({\n  type: HIGHLIGHT_ACTION_TYPE,\n  event: HIGHLIGHT_ACTION_TYPE,\n  update: HIGHLIGHT_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n  type: DOWNPLAY_ACTION_TYPE,\n  event: DOWNPLAY_ACTION_TYPE,\n  update: DOWNPLAY_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n  type: SELECT_ACTION_TYPE,\n  event: SELECT_ACTION_TYPE,\n  update: SELECT_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n  type: UNSELECT_ACTION_TYPE,\n  event: UNSELECT_ACTION_TYPE,\n  update: UNSELECT_ACTION_TYPE\n}, zrUtil.noop);\nregisterAction({\n  type: TOGGLE_SELECT_ACTION_TYPE,\n  event: TOGGLE_SELECT_ACTION_TYPE,\n  update: TOGGLE_SELECT_ACTION_TYPE\n}, zrUtil.noop);\nregisterTheme('light', lightTheme);\nregisterTheme('dark', darkTheme);\nexport var dataTool = {};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { registerPreprocessor, registerProcessor, registerPostInit, registerPostUpdate, registerAction, registerCoordinateSystem, registerLayout, registerVisual, registerTransform, registerLoading, registerMap, PRIORITY } from './core/echarts';\nimport ComponentView from './view/Component';\nimport ChartView from './view/Chart';\nimport ComponentModel from './model/Component';\nimport SeriesModel from './model/Series';\nimport { isFunction, indexOf, isArray, each } from 'zrender/lib/core/util';\nimport { registerPainter } from 'zrender/lib/zrender';\nvar extensions = [];\nvar extensionRegisters = {\n  registerPreprocessor: registerPreprocessor,\n  registerProcessor: registerProcessor,\n  registerPostInit: registerPostInit,\n  registerPostUpdate: registerPostUpdate,\n  registerAction: registerAction,\n  registerCoordinateSystem: registerCoordinateSystem,\n  registerLayout: registerLayout,\n  registerVisual: registerVisual,\n  registerTransform: registerTransform,\n  registerLoading: registerLoading,\n  registerMap: registerMap,\n  PRIORITY: PRIORITY,\n  ComponentModel: ComponentModel,\n  ComponentView: ComponentView,\n  SeriesModel: SeriesModel,\n  ChartView: ChartView,\n  registerComponentModel: function (ComponentModelClass) {\n    ComponentModel.registerClass(ComponentModelClass);\n  },\n  registerComponentView: function (ComponentViewClass) {\n    ComponentView.registerClass(ComponentViewClass);\n  },\n  registerSeriesModel: function (SeriesModelClass) {\n    SeriesModel.registerClass(SeriesModelClass);\n  },\n  registerChartView: function (ChartViewClass) {\n    ChartView.registerClass(ChartViewClass);\n  },\n  registerSubTypeDefaulter: function (componentType, defaulter) {\n    ComponentModel.registerSubTypeDefaulter(componentType, defaulter);\n  },\n  registerPainter: function (painterType, PainterCtor) {\n    registerPainter(painterType, PainterCtor);\n  }\n};\nexport function use(ext) {\n  if (isArray(ext)) {\n    each(ext, function (singleExt) {\n      use(singleExt);\n    });\n    return;\n  }\n\n  if (indexOf(extensions, ext) >= 0) {\n    return;\n  }\n\n  extensions.push(ext);\n\n  if (isFunction(ext)) {\n    ext = {\n      install: ext\n    };\n  }\n\n  ext.install(extensionRegisters);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nfunction dataIndexMapValueLength(valNumOrArrLengthMoreThan2) {\n  return valNumOrArrLengthMoreThan2 == null ? 0 : valNumOrArrLengthMoreThan2.length || 1;\n}\n\nfunction defaultKeyGetter(item) {\n  return item;\n}\n\nvar DataDiffer = function () {\n  function DataDiffer(oldArr, newArr, oldKeyGetter, newKeyGetter, context, diffMode) {\n    this._old = oldArr;\n    this._new = newArr;\n    this._oldKeyGetter = oldKeyGetter || defaultKeyGetter;\n    this._newKeyGetter = newKeyGetter || defaultKeyGetter;\n    this.context = context;\n    this._diffModeMultiple = diffMode === 'multiple';\n  }\n\n  DataDiffer.prototype.add = function (func) {\n    this._add = func;\n    return this;\n  };\n\n  DataDiffer.prototype.update = function (func) {\n    this._update = func;\n    return this;\n  };\n\n  DataDiffer.prototype.updateManyToOne = function (func) {\n    this._updateManyToOne = func;\n    return this;\n  };\n\n  DataDiffer.prototype.updateOneToMany = function (func) {\n    this._updateOneToMany = func;\n    return this;\n  };\n\n  DataDiffer.prototype.remove = function (func) {\n    this._remove = func;\n    return this;\n  };\n\n  DataDiffer.prototype.execute = function () {\n    this[this._diffModeMultiple ? '_executeMultiple' : '_executeOneToOne']();\n  };\n\n  DataDiffer.prototype._executeOneToOne = function () {\n    var oldArr = this._old;\n    var newArr = this._new;\n    var newDataIndexMap = {};\n    var oldDataKeyArr = new Array(oldArr.length);\n    var newDataKeyArr = new Array(newArr.length);\n\n    this._initIndexMap(oldArr, null, oldDataKeyArr, '_oldKeyGetter');\n\n    this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, '_newKeyGetter');\n\n    for (var i = 0; i < oldArr.length; i++) {\n      var oldKey = oldDataKeyArr[i];\n      var newIdxMapVal = newDataIndexMap[oldKey];\n      var newIdxMapValLen = dataIndexMapValueLength(newIdxMapVal);\n\n      if (newIdxMapValLen > 1) {\n        var newIdx = newIdxMapVal.shift();\n\n        if (newIdxMapVal.length === 1) {\n          newDataIndexMap[oldKey] = newIdxMapVal[0];\n        }\n\n        this._update && this._update(newIdx, i);\n      } else if (newIdxMapValLen === 1) {\n        newDataIndexMap[oldKey] = null;\n        this._update && this._update(newIdxMapVal, i);\n      } else {\n        this._remove && this._remove(i);\n      }\n    }\n\n    this._performRestAdd(newDataKeyArr, newDataIndexMap);\n  };\n\n  DataDiffer.prototype._executeMultiple = function () {\n    var oldArr = this._old;\n    var newArr = this._new;\n    var oldDataIndexMap = {};\n    var newDataIndexMap = {};\n    var oldDataKeyArr = [];\n    var newDataKeyArr = [];\n\n    this._initIndexMap(oldArr, oldDataIndexMap, oldDataKeyArr, '_oldKeyGetter');\n\n    this._initIndexMap(newArr, newDataIndexMap, newDataKeyArr, '_newKeyGetter');\n\n    for (var i = 0; i < oldDataKeyArr.length; i++) {\n      var oldKey = oldDataKeyArr[i];\n      var oldIdxMapVal = oldDataIndexMap[oldKey];\n      var newIdxMapVal = newDataIndexMap[oldKey];\n      var oldIdxMapValLen = dataIndexMapValueLength(oldIdxMapVal);\n      var newIdxMapValLen = dataIndexMapValueLength(newIdxMapVal);\n\n      if (oldIdxMapValLen > 1 && newIdxMapValLen === 1) {\n        this._updateManyToOne && this._updateManyToOne(newIdxMapVal, oldIdxMapVal);\n        newDataIndexMap[oldKey] = null;\n      } else if (oldIdxMapValLen === 1 && newIdxMapValLen > 1) {\n        this._updateOneToMany && this._updateOneToMany(newIdxMapVal, oldIdxMapVal);\n        newDataIndexMap[oldKey] = null;\n      } else if (oldIdxMapValLen === 1 && newIdxMapValLen === 1) {\n        this._update && this._update(newIdxMapVal, oldIdxMapVal);\n        newDataIndexMap[oldKey] = null;\n      } else if (oldIdxMapValLen > 1) {\n        for (var i_1 = 0; i_1 < oldIdxMapValLen; i_1++) {\n          this._remove && this._remove(oldIdxMapVal[i_1]);\n        }\n      } else {\n        this._remove && this._remove(oldIdxMapVal);\n      }\n    }\n\n    this._performRestAdd(newDataKeyArr, newDataIndexMap);\n  };\n\n  DataDiffer.prototype._performRestAdd = function (newDataKeyArr, newDataIndexMap) {\n    for (var i = 0; i < newDataKeyArr.length; i++) {\n      var newKey = newDataKeyArr[i];\n      var newIdxMapVal = newDataIndexMap[newKey];\n      var idxMapValLen = dataIndexMapValueLength(newIdxMapVal);\n\n      if (idxMapValLen > 1) {\n        for (var j = 0; j < idxMapValLen; j++) {\n          this._add && this._add(newIdxMapVal[j]);\n        }\n      } else if (idxMapValLen === 1) {\n        this._add && this._add(newIdxMapVal);\n      }\n\n      newDataIndexMap[newKey] = null;\n    }\n  };\n\n  DataDiffer.prototype._initIndexMap = function (arr, map, keyArr, keyGetterName) {\n    var cbModeMultiple = this._diffModeMultiple;\n\n    for (var i = 0; i < arr.length; i++) {\n      var key = '_ec_' + this[keyGetterName](arr[i], i);\n\n      if (!cbModeMultiple) {\n        keyArr[i] = key;\n      }\n\n      if (!map) {\n        continue;\n      }\n\n      var idxMapVal = map[key];\n      var idxMapValLen = dataIndexMapValueLength(idxMapVal);\n\n      if (idxMapValLen === 0) {\n        map[key] = i;\n\n        if (cbModeMultiple) {\n          keyArr.push(key);\n        }\n      } else if (idxMapValLen === 1) {\n        map[key] = [idxMapVal, i];\n      } else {\n        idxMapVal.push(i);\n      }\n    }\n  };\n\n  return DataDiffer;\n}();\n\nexport default DataDiffer;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, createHashMap, assert } from 'zrender/lib/core/util';\nimport { VISUAL_DIMENSIONS } from '../../util/types';\nexport function summarizeDimensions(data) {\n  var summary = {};\n  var encode = summary.encode = {};\n  var notExtraCoordDimMap = createHashMap();\n  var defaultedLabel = [];\n  var defaultedTooltip = [];\n  var userOutput = summary.userOutput = {\n    dimensionNames: data.dimensions.slice(),\n    encode: {}\n  };\n  each(data.dimensions, function (dimName) {\n    var dimItem = data.getDimensionInfo(dimName);\n    var coordDim = dimItem.coordDim;\n\n    if (coordDim) {\n      if (process.env.NODE_ENV !== 'production') {\n        assert(VISUAL_DIMENSIONS.get(coordDim) == null);\n      }\n\n      var coordDimIndex = dimItem.coordDimIndex;\n      getOrCreateEncodeArr(encode, coordDim)[coordDimIndex] = dimName;\n\n      if (!dimItem.isExtraCoord) {\n        notExtraCoordDimMap.set(coordDim, 1);\n\n        if (mayLabelDimType(dimItem.type)) {\n          defaultedLabel[0] = dimName;\n        }\n\n        getOrCreateEncodeArr(userOutput.encode, coordDim)[coordDimIndex] = dimItem.index;\n      }\n\n      if (dimItem.defaultTooltip) {\n        defaultedTooltip.push(dimName);\n      }\n    }\n\n    VISUAL_DIMENSIONS.each(function (v, otherDim) {\n      var encodeArr = getOrCreateEncodeArr(encode, otherDim);\n      var dimIndex = dimItem.otherDims[otherDim];\n\n      if (dimIndex != null && dimIndex !== false) {\n        encodeArr[dimIndex] = dimItem.name;\n      }\n    });\n  });\n  var dataDimsOnCoord = [];\n  var encodeFirstDimNotExtra = {};\n  notExtraCoordDimMap.each(function (v, coordDim) {\n    var dimArr = encode[coordDim];\n    encodeFirstDimNotExtra[coordDim] = dimArr[0];\n    dataDimsOnCoord = dataDimsOnCoord.concat(dimArr);\n  });\n  summary.dataDimsOnCoord = dataDimsOnCoord;\n  summary.encodeFirstDimNotExtra = encodeFirstDimNotExtra;\n  var encodeLabel = encode.label;\n\n  if (encodeLabel && encodeLabel.length) {\n    defaultedLabel = encodeLabel.slice();\n  }\n\n  var encodeTooltip = encode.tooltip;\n\n  if (encodeTooltip && encodeTooltip.length) {\n    defaultedTooltip = encodeTooltip.slice();\n  } else if (!defaultedTooltip.length) {\n    defaultedTooltip = defaultedLabel.slice();\n  }\n\n  encode.defaultedLabel = defaultedLabel;\n  encode.defaultedTooltip = defaultedTooltip;\n  return summary;\n}\n\nfunction getOrCreateEncodeArr(encode, dim) {\n  if (!encode.hasOwnProperty(dim)) {\n    encode[dim] = [];\n  }\n\n  return encode[dim];\n}\n\nexport function getDimensionTypeByAxis(axisType) {\n  return axisType === 'category' ? 'ordinal' : axisType === 'time' ? 'time' : 'float';\n}\n\nfunction mayLabelDimType(dimType) {\n  return !(dimType === 'ordinal' || dimType === 'time');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nvar DataDimensionInfo = function () {\n  function DataDimensionInfo(opt) {\n    this.otherDims = {};\n\n    if (opt != null) {\n      zrUtil.extend(this, opt);\n    }\n  }\n\n  return DataDimensionInfo;\n}();\n\n;\nexport default DataDimensionInfo;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Model from '../model/Model';\nimport DataDiffer from './DataDiffer';\nimport { DefaultDataProvider } from './helper/dataProvider';\nimport { summarizeDimensions } from './helper/dimensionHelper';\nimport DataDimensionInfo from './DataDimensionInfo';\nimport { SOURCE_FORMAT_TYPED_ARRAY, SOURCE_FORMAT_ORIGINAL } from '../util/types';\nimport { isDataItemOption, convertOptionIdName } from '../util/model';\nimport { getECData } from '../util/innerStore';\nimport { parseDataValue } from './helper/dataValueHelper';\nimport { isSourceInstance } from './Source';\nvar mathFloor = Math.floor;\nvar isObject = zrUtil.isObject;\nvar map = zrUtil.map;\nvar UNDEFINED = 'undefined';\nvar INDEX_NOT_FOUND = -1;\nvar ID_PREFIX = 'e\\0\\0';\nvar dataCtors = {\n  'float': typeof Float64Array === UNDEFINED ? Array : Float64Array,\n  'int': typeof Int32Array === UNDEFINED ? Array : Int32Array,\n  'ordinal': Array,\n  'number': Array,\n  'time': Array\n};\nvar CtorUint32Array = typeof Uint32Array === UNDEFINED ? Array : Uint32Array;\nvar CtorInt32Array = typeof Int32Array === UNDEFINED ? Array : Int32Array;\nvar CtorUint16Array = typeof Uint16Array === UNDEFINED ? Array : Uint16Array;\nvar TRANSFERABLE_PROPERTIES = ['hasItemOption', '_nameList', '_idList', '_invertedIndicesMap', '_rawData', '_dimValueGetter', '_count', '_rawCount', '_nameDimIdx', '_idDimIdx', '_nameRepeatCount'];\nvar CLONE_PROPERTIES = ['_extent', '_approximateExtent', '_rawExtent'];\nvar defaultDimValueGetters;\nvar prepareInvertedIndex;\nvar getIndicesCtor;\nvar prepareStorage;\nvar getRawIndexWithoutIndices;\nvar getRawIndexWithIndices;\nvar getId;\nvar getIdNameFromStore;\nvar makeIdFromName;\nvar normalizeDimensions;\nvar validateDimensions;\nvar cloneListForMapAndSample;\nvar getInitialExtent;\nvar setItemDataAndSeriesIndex;\nvar transferProperties;\n\nvar List = function () {\n  function List(dimensions, hostModel) {\n    this.type = 'list';\n    this._count = 0;\n    this._rawCount = 0;\n    this._storage = {};\n    this._storageArr = [];\n    this._nameList = [];\n    this._idList = [];\n    this._visual = {};\n    this._layout = {};\n    this._itemVisuals = [];\n    this._itemLayouts = [];\n    this._graphicEls = [];\n    this._rawExtent = {};\n    this._extent = {};\n    this._approximateExtent = {};\n    this._calculationInfo = {};\n    this.hasItemOption = true;\n    this.TRANSFERABLE_METHODS = ['cloneShallow', 'downSample', 'lttbDownSample', 'map'];\n    this.CHANGABLE_METHODS = ['filterSelf', 'selectRange'];\n    this.DOWNSAMPLE_METHODS = ['downSample', 'lttbDownSample'];\n    this.getRawIndex = getRawIndexWithoutIndices;\n    dimensions = dimensions || ['x', 'y'];\n    var dimensionInfos = {};\n    var dimensionNames = [];\n    var invertedIndicesMap = {};\n\n    for (var i = 0; i < dimensions.length; i++) {\n      var dimInfoInput = dimensions[i];\n      var dimensionInfo = zrUtil.isString(dimInfoInput) ? new DataDimensionInfo({\n        name: dimInfoInput\n      }) : !(dimInfoInput instanceof DataDimensionInfo) ? new DataDimensionInfo(dimInfoInput) : dimInfoInput;\n      var dimensionName = dimensionInfo.name;\n      dimensionInfo.type = dimensionInfo.type || 'float';\n\n      if (!dimensionInfo.coordDim) {\n        dimensionInfo.coordDim = dimensionName;\n        dimensionInfo.coordDimIndex = 0;\n      }\n\n      var otherDims = dimensionInfo.otherDims = dimensionInfo.otherDims || {};\n      dimensionNames.push(dimensionName);\n      dimensionInfos[dimensionName] = dimensionInfo;\n      dimensionInfo.index = i;\n\n      if (dimensionInfo.createInvertedIndices) {\n        invertedIndicesMap[dimensionName] = [];\n      }\n\n      if (otherDims.itemName === 0) {\n        this._nameDimIdx = i;\n        this._nameOrdinalMeta = dimensionInfo.ordinalMeta;\n      }\n\n      if (otherDims.itemId === 0) {\n        this._idDimIdx = i;\n        this._idOrdinalMeta = dimensionInfo.ordinalMeta;\n      }\n    }\n\n    this.dimensions = dimensionNames;\n    this._dimensionInfos = dimensionInfos;\n    this.hostModel = hostModel;\n    this._dimensionsSummary = summarizeDimensions(this);\n    this._invertedIndicesMap = invertedIndicesMap;\n    this.userOutput = this._dimensionsSummary.userOutput;\n  }\n\n  List.prototype.getDimension = function (dim) {\n    if (typeof dim === 'number' || !isNaN(dim) && !this._dimensionInfos.hasOwnProperty(dim)) {\n      dim = this.dimensions[dim];\n    }\n\n    return dim;\n  };\n\n  List.prototype.getDimensionInfo = function (dim) {\n    return this._dimensionInfos[this.getDimension(dim)];\n  };\n\n  List.prototype.getDimensionsOnCoord = function () {\n    return this._dimensionsSummary.dataDimsOnCoord.slice();\n  };\n\n  List.prototype.mapDimension = function (coordDim, idx) {\n    var dimensionsSummary = this._dimensionsSummary;\n\n    if (idx == null) {\n      return dimensionsSummary.encodeFirstDimNotExtra[coordDim];\n    }\n\n    var dims = dimensionsSummary.encode[coordDim];\n    return dims ? dims[idx] : null;\n  };\n\n  List.prototype.mapDimensionsAll = function (coordDim) {\n    var dimensionsSummary = this._dimensionsSummary;\n    var dims = dimensionsSummary.encode[coordDim];\n    return (dims || []).slice();\n  };\n\n  List.prototype.initData = function (data, nameList, dimValueGetter) {\n    var notProvider = isSourceInstance(data) || zrUtil.isArrayLike(data);\n    var provider = notProvider ? new DefaultDataProvider(data, this.dimensions.length) : data;\n\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.assert(notProvider || zrUtil.isFunction(provider.getItem) && zrUtil.isFunction(provider.count), 'Inavlid data provider.');\n    }\n\n    this._rawData = provider;\n    var sourceFormat = provider.getSource().sourceFormat;\n    this._storage = {};\n    this._indices = null;\n    this._dontMakeIdFromName = this._idDimIdx != null || sourceFormat === SOURCE_FORMAT_TYPED_ARRAY || !!provider.fillStorage;\n    this._nameList = (nameList || []).slice();\n    this._idList = [];\n    this._nameRepeatCount = {};\n\n    if (!dimValueGetter) {\n      this.hasItemOption = false;\n    }\n\n    this.defaultDimValueGetter = defaultDimValueGetters[sourceFormat];\n    this._dimValueGetter = dimValueGetter = dimValueGetter || this.defaultDimValueGetter;\n    this._dimValueGetterArrayRows = defaultDimValueGetters.arrayRows;\n    this._rawExtent = {};\n\n    this._initDataFromProvider(0, provider.count());\n\n    if (provider.pure) {\n      this.hasItemOption = false;\n    }\n  };\n\n  List.prototype.getProvider = function () {\n    return this._rawData;\n  };\n\n  List.prototype.appendData = function (data) {\n    if (process.env.NODE_ENV !== 'production') {\n      zrUtil.assert(!this._indices, 'appendData can only be called on raw data.');\n    }\n\n    var rawData = this._rawData;\n    var start = this.count();\n    rawData.appendData(data);\n    var end = rawData.count();\n\n    if (!rawData.persistent) {\n      end += start;\n    }\n\n    this._initDataFromProvider(start, end, true);\n  };\n\n  List.prototype.appendValues = function (values, names) {\n    var storage = this._storage;\n    var dimensions = this.dimensions;\n    var dimLen = dimensions.length;\n    var rawExtent = this._rawExtent;\n    var start = this.count();\n    var end = start + Math.max(values.length, names ? names.length : 0);\n\n    for (var i = 0; i < dimLen; i++) {\n      var dim = dimensions[i];\n\n      if (!rawExtent[dim]) {\n        rawExtent[dim] = getInitialExtent();\n      }\n\n      prepareStorage(storage, this._dimensionInfos[dim], end, true);\n    }\n\n    var rawExtentArr = map(dimensions, function (dim) {\n      return rawExtent[dim];\n    });\n    var storageArr = this._storageArr = map(dimensions, function (dim) {\n      return storage[dim];\n    });\n    var emptyDataItem = [];\n\n    for (var idx = start; idx < end; idx++) {\n      var sourceIdx = idx - start;\n\n      for (var dimIdx = 0; dimIdx < dimLen; dimIdx++) {\n        var dim = dimensions[dimIdx];\n\n        var val = this._dimValueGetterArrayRows(values[sourceIdx] || emptyDataItem, dim, sourceIdx, dimIdx);\n\n        storageArr[dimIdx][idx] = val;\n        var dimRawExtent = rawExtentArr[dimIdx];\n        val < dimRawExtent[0] && (dimRawExtent[0] = val);\n        val > dimRawExtent[1] && (dimRawExtent[1] = val);\n      }\n\n      if (names) {\n        this._nameList[idx] = names[sourceIdx];\n\n        if (!this._dontMakeIdFromName) {\n          makeIdFromName(this, idx);\n        }\n      }\n    }\n\n    this._rawCount = this._count = end;\n    this._extent = {};\n    prepareInvertedIndex(this);\n  };\n\n  List.prototype._initDataFromProvider = function (start, end, append) {\n    if (start >= end) {\n      return;\n    }\n\n    var rawData = this._rawData;\n    var storage = this._storage;\n    var dimensions = this.dimensions;\n    var dimLen = dimensions.length;\n    var dimensionInfoMap = this._dimensionInfos;\n    var nameList = this._nameList;\n    var idList = this._idList;\n    var rawExtent = this._rawExtent;\n    var sourceFormat = rawData.getSource().sourceFormat;\n    var isFormatOriginal = sourceFormat === SOURCE_FORMAT_ORIGINAL;\n\n    for (var i = 0; i < dimLen; i++) {\n      var dim = dimensions[i];\n\n      if (!rawExtent[dim]) {\n        rawExtent[dim] = getInitialExtent();\n      }\n\n      prepareStorage(storage, dimensionInfoMap[dim], end, append);\n    }\n\n    var storageArr = this._storageArr = map(dimensions, function (dim) {\n      return storage[dim];\n    });\n    var rawExtentArr = map(dimensions, function (dim) {\n      return rawExtent[dim];\n    });\n\n    if (rawData.fillStorage) {\n      rawData.fillStorage(start, end, storageArr, rawExtentArr);\n    } else {\n      var dataItem = [];\n\n      for (var idx = start; idx < end; idx++) {\n        dataItem = rawData.getItem(idx, dataItem);\n\n        for (var dimIdx = 0; dimIdx < dimLen; dimIdx++) {\n          var dim = dimensions[dimIdx];\n          var dimStorage = storageArr[dimIdx];\n\n          var val = this._dimValueGetter(dataItem, dim, idx, dimIdx);\n\n          dimStorage[idx] = val;\n          var dimRawExtent = rawExtentArr[dimIdx];\n          val < dimRawExtent[0] && (dimRawExtent[0] = val);\n          val > dimRawExtent[1] && (dimRawExtent[1] = val);\n        }\n\n        if (isFormatOriginal && !rawData.pure && dataItem) {\n          var itemName = dataItem.name;\n\n          if (nameList[idx] == null && itemName != null) {\n            nameList[idx] = convertOptionIdName(itemName, null);\n          }\n\n          var itemId = dataItem.id;\n\n          if (idList[idx] == null && itemId != null) {\n            idList[idx] = convertOptionIdName(itemId, null);\n          }\n        }\n\n        if (!this._dontMakeIdFromName) {\n          makeIdFromName(this, idx);\n        }\n      }\n    }\n\n    if (!rawData.persistent && rawData.clean) {\n      rawData.clean();\n    }\n\n    this._rawCount = this._count = end;\n    this._extent = {};\n    prepareInvertedIndex(this);\n  };\n\n  List.prototype.count = function () {\n    return this._count;\n  };\n\n  List.prototype.getIndices = function () {\n    var newIndices;\n    var indices = this._indices;\n\n    if (indices) {\n      var Ctor = indices.constructor;\n      var thisCount = this._count;\n\n      if (Ctor === Array) {\n        newIndices = new Ctor(thisCount);\n\n        for (var i = 0; i < thisCount; i++) {\n          newIndices[i] = indices[i];\n        }\n      } else {\n        newIndices = new Ctor(indices.buffer, 0, thisCount);\n      }\n    } else {\n      var Ctor = getIndicesCtor(this);\n      newIndices = new Ctor(this.count());\n\n      for (var i = 0; i < newIndices.length; i++) {\n        newIndices[i] = i;\n      }\n    }\n\n    return newIndices;\n  };\n\n  List.prototype.getByDimIdx = function (dimIdx, idx) {\n    if (!(idx >= 0 && idx < this._count)) {\n      return NaN;\n    }\n\n    var dimStore = this._storageArr[dimIdx];\n    return dimStore ? dimStore[this.getRawIndex(idx)] : NaN;\n  };\n\n  List.prototype.get = function (dim, idx) {\n    if (!(idx >= 0 && idx < this._count)) {\n      return NaN;\n    }\n\n    var dimStore = this._storage[dim];\n    return dimStore ? dimStore[this.getRawIndex(idx)] : NaN;\n  };\n\n  List.prototype.getByRawIndex = function (dim, rawIdx) {\n    if (!(rawIdx >= 0 && rawIdx < this._rawCount)) {\n      return NaN;\n    }\n\n    var dimStore = this._storage[dim];\n    return dimStore ? dimStore[rawIdx] : NaN;\n  };\n\n  List.prototype.getValues = function (dimensions, idx) {\n    var values = [];\n\n    if (!zrUtil.isArray(dimensions)) {\n      idx = dimensions;\n      dimensions = this.dimensions;\n    }\n\n    for (var i = 0, len = dimensions.length; i < len; i++) {\n      values.push(this.get(dimensions[i], idx));\n    }\n\n    return values;\n  };\n\n  List.prototype.hasValue = function (idx) {\n    var dataDimsOnCoord = this._dimensionsSummary.dataDimsOnCoord;\n\n    for (var i = 0, len = dataDimsOnCoord.length; i < len; i++) {\n      if (isNaN(this.get(dataDimsOnCoord[i], idx))) {\n        return false;\n      }\n    }\n\n    return true;\n  };\n\n  List.prototype.getDataExtent = function (dim) {\n    dim = this.getDimension(dim);\n    var dimData = this._storage[dim];\n    var initialExtent = getInitialExtent();\n\n    if (!dimData) {\n      return initialExtent;\n    }\n\n    var currEnd = this.count();\n    var useRaw = !this._indices;\n    var dimExtent;\n\n    if (useRaw) {\n      return this._rawExtent[dim].slice();\n    }\n\n    dimExtent = this._extent[dim];\n\n    if (dimExtent) {\n      return dimExtent.slice();\n    }\n\n    dimExtent = initialExtent;\n    var min = dimExtent[0];\n    var max = dimExtent[1];\n\n    for (var i = 0; i < currEnd; i++) {\n      var rawIdx = this.getRawIndex(i);\n      var value = dimData[rawIdx];\n      value < min && (min = value);\n      value > max && (max = value);\n    }\n\n    dimExtent = [min, max];\n    this._extent[dim] = dimExtent;\n    return dimExtent;\n  };\n\n  List.prototype.getApproximateExtent = function (dim) {\n    dim = this.getDimension(dim);\n    return this._approximateExtent[dim] || this.getDataExtent(dim);\n  };\n\n  List.prototype.setApproximateExtent = function (extent, dim) {\n    dim = this.getDimension(dim);\n    this._approximateExtent[dim] = extent.slice();\n  };\n\n  List.prototype.getCalculationInfo = function (key) {\n    return this._calculationInfo[key];\n  };\n\n  List.prototype.setCalculationInfo = function (key, value) {\n    isObject(key) ? zrUtil.extend(this._calculationInfo, key) : this._calculationInfo[key] = value;\n  };\n\n  List.prototype.getSum = function (dim) {\n    var dimData = this._storage[dim];\n    var sum = 0;\n\n    if (dimData) {\n      for (var i = 0, len = this.count(); i < len; i++) {\n        var value = this.get(dim, i);\n\n        if (!isNaN(value)) {\n          sum += value;\n        }\n      }\n    }\n\n    return sum;\n  };\n\n  List.prototype.getMedian = function (dim) {\n    var dimDataArray = [];\n    this.each(dim, function (val) {\n      if (!isNaN(val)) {\n        dimDataArray.push(val);\n      }\n    });\n    var sortedDimDataArray = dimDataArray.sort(function (a, b) {\n      return a - b;\n    });\n    var len = this.count();\n    return len === 0 ? 0 : len % 2 === 1 ? sortedDimDataArray[(len - 1) / 2] : (sortedDimDataArray[len / 2] + sortedDimDataArray[len / 2 - 1]) / 2;\n  };\n\n  List.prototype.rawIndexOf = function (dim, value) {\n    var invertedIndices = dim && this._invertedIndicesMap[dim];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!invertedIndices) {\n        throw new Error('Do not supported yet');\n      }\n    }\n\n    var rawIndex = invertedIndices[value];\n\n    if (rawIndex == null || isNaN(rawIndex)) {\n      return INDEX_NOT_FOUND;\n    }\n\n    return rawIndex;\n  };\n\n  List.prototype.indexOfName = function (name) {\n    for (var i = 0, len = this.count(); i < len; i++) {\n      if (this.getName(i) === name) {\n        return i;\n      }\n    }\n\n    return -1;\n  };\n\n  List.prototype.indexOfRawIndex = function (rawIndex) {\n    if (rawIndex >= this._rawCount || rawIndex < 0) {\n      return -1;\n    }\n\n    if (!this._indices) {\n      return rawIndex;\n    }\n\n    var indices = this._indices;\n    var rawDataIndex = indices[rawIndex];\n\n    if (rawDataIndex != null && rawDataIndex < this._count && rawDataIndex === rawIndex) {\n      return rawIndex;\n    }\n\n    var left = 0;\n    var right = this._count - 1;\n\n    while (left <= right) {\n      var mid = (left + right) / 2 | 0;\n\n      if (indices[mid] < rawIndex) {\n        left = mid + 1;\n      } else if (indices[mid] > rawIndex) {\n        right = mid - 1;\n      } else {\n        return mid;\n      }\n    }\n\n    return -1;\n  };\n\n  List.prototype.indicesOfNearest = function (dim, value, maxDistance) {\n    var storage = this._storage;\n    var dimData = storage[dim];\n    var nearestIndices = [];\n\n    if (!dimData) {\n      return nearestIndices;\n    }\n\n    if (maxDistance == null) {\n      maxDistance = Infinity;\n    }\n\n    var minDist = Infinity;\n    var minDiff = -1;\n    var nearestIndicesLen = 0;\n\n    for (var i = 0, len = this.count(); i < len; i++) {\n      var dataIndex = this.getRawIndex(i);\n      var diff = value - dimData[dataIndex];\n      var dist = Math.abs(diff);\n\n      if (dist <= maxDistance) {\n        if (dist < minDist || dist === minDist && diff >= 0 && minDiff < 0) {\n          minDist = dist;\n          minDiff = diff;\n          nearestIndicesLen = 0;\n        }\n\n        if (diff === minDiff) {\n          nearestIndices[nearestIndicesLen++] = i;\n        }\n      }\n    }\n\n    nearestIndices.length = nearestIndicesLen;\n    return nearestIndices;\n  };\n\n  List.prototype.getRawDataItem = function (idx) {\n    if (!this._rawData.persistent) {\n      var val = [];\n\n      for (var i = 0; i < this.dimensions.length; i++) {\n        var dim = this.dimensions[i];\n        val.push(this.get(dim, idx));\n      }\n\n      return val;\n    } else {\n      return this._rawData.getItem(this.getRawIndex(idx));\n    }\n  };\n\n  List.prototype.getName = function (idx) {\n    var rawIndex = this.getRawIndex(idx);\n    var name = this._nameList[rawIndex];\n\n    if (name == null && this._nameDimIdx != null) {\n      name = getIdNameFromStore(this, this._nameDimIdx, this._nameOrdinalMeta, rawIndex);\n    }\n\n    if (name == null) {\n      name = '';\n    }\n\n    return name;\n  };\n\n  List.prototype.getId = function (idx) {\n    return getId(this, this.getRawIndex(idx));\n  };\n\n  List.prototype.each = function (dims, cb, ctx, ctxCompat) {\n    'use strict';\n\n    var _this = this;\n\n    if (!this._count) {\n      return;\n    }\n\n    if (typeof dims === 'function') {\n      ctxCompat = ctx;\n      ctx = cb;\n      cb = dims;\n      dims = [];\n    }\n\n    var fCtx = ctx || ctxCompat || this;\n    var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\n\n    if (process.env.NODE_ENV !== 'production') {\n      validateDimensions(this, dimNames);\n    }\n\n    var dimSize = dimNames.length;\n    var dimIndices = map(dimNames, function (dimName) {\n      return _this._dimensionInfos[dimName].index;\n    });\n    var storageArr = this._storageArr;\n\n    for (var i = 0, len = this.count(); i < len; i++) {\n      var rawIdx = this.getRawIndex(i);\n\n      switch (dimSize) {\n        case 0:\n          cb.call(fCtx, i);\n          break;\n\n        case 1:\n          cb.call(fCtx, storageArr[dimIndices[0]][rawIdx], i);\n          break;\n\n        case 2:\n          cb.call(fCtx, storageArr[dimIndices[0]][rawIdx], storageArr[dimIndices[1]][rawIdx], i);\n          break;\n\n        default:\n          var k = 0;\n          var value = [];\n\n          for (; k < dimSize; k++) {\n            value[k] = storageArr[dimIndices[k]][rawIdx];\n          }\n\n          value[k] = i;\n          cb.apply(fCtx, value);\n      }\n    }\n  };\n\n  List.prototype.filterSelf = function (dims, cb, ctx, ctxCompat) {\n    'use strict';\n\n    var _this = this;\n\n    if (!this._count) {\n      return;\n    }\n\n    if (typeof dims === 'function') {\n      ctxCompat = ctx;\n      ctx = cb;\n      cb = dims;\n      dims = [];\n    }\n\n    var fCtx = ctx || ctxCompat || this;\n    var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\n\n    if (process.env.NODE_ENV !== 'production') {\n      validateDimensions(this, dimNames);\n    }\n\n    var count = this.count();\n    var Ctor = getIndicesCtor(this);\n    var newIndices = new Ctor(count);\n    var value = [];\n    var dimSize = dimNames.length;\n    var offset = 0;\n    var dimIndices = map(dimNames, function (dimName) {\n      return _this._dimensionInfos[dimName].index;\n    });\n    var dim0 = dimIndices[0];\n    var storageArr = this._storageArr;\n\n    for (var i = 0; i < count; i++) {\n      var keep = void 0;\n      var rawIdx = this.getRawIndex(i);\n\n      if (dimSize === 0) {\n        keep = cb.call(fCtx, i);\n      } else if (dimSize === 1) {\n        var val = storageArr[dim0][rawIdx];\n        keep = cb.call(fCtx, val, i);\n      } else {\n        var k = 0;\n\n        for (; k < dimSize; k++) {\n          value[k] = storageArr[dimIndices[k]][rawIdx];\n        }\n\n        value[k] = i;\n        keep = cb.apply(fCtx, value);\n      }\n\n      if (keep) {\n        newIndices[offset++] = rawIdx;\n      }\n    }\n\n    if (offset < count) {\n      this._indices = newIndices;\n    }\n\n    this._count = offset;\n    this._extent = {};\n    this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n    return this;\n  };\n\n  List.prototype.selectRange = function (range) {\n    'use strict';\n\n    var _this = this;\n\n    var len = this._count;\n\n    if (!len) {\n      return;\n    }\n\n    var dimensions = [];\n\n    for (var dim in range) {\n      if (range.hasOwnProperty(dim)) {\n        dimensions.push(dim);\n      }\n    }\n\n    if (process.env.NODE_ENV !== 'production') {\n      validateDimensions(this, dimensions);\n    }\n\n    var dimSize = dimensions.length;\n\n    if (!dimSize) {\n      return;\n    }\n\n    var originalCount = this.count();\n    var Ctor = getIndicesCtor(this);\n    var newIndices = new Ctor(originalCount);\n    var offset = 0;\n    var dim0 = dimensions[0];\n    var dimIndices = map(dimensions, function (dimName) {\n      return _this._dimensionInfos[dimName].index;\n    });\n    var min = range[dim0][0];\n    var max = range[dim0][1];\n    var storageArr = this._storageArr;\n    var quickFinished = false;\n\n    if (!this._indices) {\n      var idx = 0;\n\n      if (dimSize === 1) {\n        var dimStorage = storageArr[dimIndices[0]];\n\n        for (var i = 0; i < len; i++) {\n          var val = dimStorage[i];\n\n          if (val >= min && val <= max || isNaN(val)) {\n            newIndices[offset++] = idx;\n          }\n\n          idx++;\n        }\n\n        quickFinished = true;\n      } else if (dimSize === 2) {\n        var dimStorage = storageArr[dimIndices[0]];\n        var dimStorage2 = storageArr[dimIndices[1]];\n        var min2 = range[dimensions[1]][0];\n        var max2 = range[dimensions[1]][1];\n\n        for (var i = 0; i < len; i++) {\n          var val = dimStorage[i];\n          var val2 = dimStorage2[i];\n\n          if ((val >= min && val <= max || isNaN(val)) && (val2 >= min2 && val2 <= max2 || isNaN(val2))) {\n            newIndices[offset++] = idx;\n          }\n\n          idx++;\n        }\n\n        quickFinished = true;\n      }\n    }\n\n    if (!quickFinished) {\n      if (dimSize === 1) {\n        for (var i = 0; i < originalCount; i++) {\n          var rawIndex = this.getRawIndex(i);\n          var val = storageArr[dimIndices[0]][rawIndex];\n\n          if (val >= min && val <= max || isNaN(val)) {\n            newIndices[offset++] = rawIndex;\n          }\n        }\n      } else {\n        for (var i = 0; i < originalCount; i++) {\n          var keep = true;\n          var rawIndex = this.getRawIndex(i);\n\n          for (var k = 0; k < dimSize; k++) {\n            var dimk = dimensions[k];\n            var val = storageArr[dimIndices[k]][rawIndex];\n\n            if (val < range[dimk][0] || val > range[dimk][1]) {\n              keep = false;\n            }\n          }\n\n          if (keep) {\n            newIndices[offset++] = this.getRawIndex(i);\n          }\n        }\n      }\n    }\n\n    if (offset < originalCount) {\n      this._indices = newIndices;\n    }\n\n    this._count = offset;\n    this._extent = {};\n    this.getRawIndex = this._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n    return this;\n  };\n\n  List.prototype.mapArray = function (dims, cb, ctx, ctxCompat) {\n    'use strict';\n\n    if (typeof dims === 'function') {\n      ctxCompat = ctx;\n      ctx = cb;\n      cb = dims;\n      dims = [];\n    }\n\n    ctx = ctx || ctxCompat || this;\n    var result = [];\n    this.each(dims, function () {\n      result.push(cb && cb.apply(this, arguments));\n    }, ctx);\n    return result;\n  };\n\n  List.prototype.map = function (dims, cb, ctx, ctxCompat) {\n    'use strict';\n\n    var fCtx = ctx || ctxCompat || this;\n    var dimNames = map(normalizeDimensions(dims), this.getDimension, this);\n\n    if (process.env.NODE_ENV !== 'production') {\n      validateDimensions(this, dimNames);\n    }\n\n    var list = cloneListForMapAndSample(this, dimNames);\n    var storage = list._storage;\n    list._indices = this._indices;\n    list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n    var tmpRetValue = [];\n    var dimSize = dimNames.length;\n    var dataCount = this.count();\n    var values = [];\n    var rawExtent = list._rawExtent;\n\n    for (var dataIndex = 0; dataIndex < dataCount; dataIndex++) {\n      for (var dimIndex = 0; dimIndex < dimSize; dimIndex++) {\n        values[dimIndex] = this.get(dimNames[dimIndex], dataIndex);\n      }\n\n      values[dimSize] = dataIndex;\n      var retValue = cb && cb.apply(fCtx, values);\n\n      if (retValue != null) {\n        if (typeof retValue !== 'object') {\n          tmpRetValue[0] = retValue;\n          retValue = tmpRetValue;\n        }\n\n        var rawIndex = this.getRawIndex(dataIndex);\n\n        for (var i = 0; i < retValue.length; i++) {\n          var dim = dimNames[i];\n          var val = retValue[i];\n          var rawExtentOnDim = rawExtent[dim];\n          var dimStore = storage[dim];\n\n          if (dimStore) {\n            dimStore[rawIndex] = val;\n          }\n\n          if (val < rawExtentOnDim[0]) {\n            rawExtentOnDim[0] = val;\n          }\n\n          if (val > rawExtentOnDim[1]) {\n            rawExtentOnDim[1] = val;\n          }\n        }\n      }\n    }\n\n    return list;\n  };\n\n  List.prototype.downSample = function (dimension, rate, sampleValue, sampleIndex) {\n    var list = cloneListForMapAndSample(this, [dimension]);\n    var targetStorage = list._storage;\n    var frameValues = [];\n    var frameSize = mathFloor(1 / rate);\n    var dimStore = targetStorage[dimension];\n    var len = this.count();\n    var rawExtentOnDim = list._rawExtent[dimension];\n    var newIndices = new (getIndicesCtor(this))(len);\n    var offset = 0;\n\n    for (var i = 0; i < len; i += frameSize) {\n      if (frameSize > len - i) {\n        frameSize = len - i;\n        frameValues.length = frameSize;\n      }\n\n      for (var k = 0; k < frameSize; k++) {\n        var dataIdx = this.getRawIndex(i + k);\n        frameValues[k] = dimStore[dataIdx];\n      }\n\n      var value = sampleValue(frameValues);\n      var sampleFrameIdx = this.getRawIndex(Math.min(i + sampleIndex(frameValues, value) || 0, len - 1));\n      dimStore[sampleFrameIdx] = value;\n\n      if (value < rawExtentOnDim[0]) {\n        rawExtentOnDim[0] = value;\n      }\n\n      if (value > rawExtentOnDim[1]) {\n        rawExtentOnDim[1] = value;\n      }\n\n      newIndices[offset++] = sampleFrameIdx;\n    }\n\n    list._count = offset;\n    list._indices = newIndices;\n    list.getRawIndex = getRawIndexWithIndices;\n    return list;\n  };\n\n  List.prototype.lttbDownSample = function (valueDimension, rate) {\n    var list = cloneListForMapAndSample(this, []);\n    var targetStorage = list._storage;\n    var dimStore = targetStorage[valueDimension];\n    var len = this.count();\n    var newIndices = new (getIndicesCtor(this))(len);\n    var sampledIndex = 0;\n    var frameSize = mathFloor(1 / rate);\n    var currentRawIndex = this.getRawIndex(0);\n    var maxArea;\n    var area;\n    var nextRawIndex;\n    newIndices[sampledIndex++] = currentRawIndex;\n\n    for (var i = 1; i < len - 1; i += frameSize) {\n      var nextFrameStart = Math.min(i + frameSize, len - 1);\n      var nextFrameEnd = Math.min(i + frameSize * 2, len);\n      var avgX = (nextFrameEnd + nextFrameStart) / 2;\n      var avgY = 0;\n\n      for (var idx = nextFrameStart; idx < nextFrameEnd; idx++) {\n        var rawIndex = this.getRawIndex(idx);\n        var y = dimStore[rawIndex];\n\n        if (isNaN(y)) {\n          continue;\n        }\n\n        avgY += y;\n      }\n\n      avgY /= nextFrameEnd - nextFrameStart;\n      var frameStart = i;\n      var frameEnd = Math.min(i + frameSize, len);\n      var pointAX = i - 1;\n      var pointAY = dimStore[currentRawIndex];\n      maxArea = -1;\n      nextRawIndex = frameStart;\n\n      for (var idx = frameStart; idx < frameEnd; idx++) {\n        var rawIndex = this.getRawIndex(idx);\n        var y = dimStore[rawIndex];\n\n        if (isNaN(y)) {\n          continue;\n        }\n\n        area = Math.abs((pointAX - avgX) * (y - pointAY) - (pointAX - idx) * (avgY - pointAY));\n\n        if (area > maxArea) {\n          maxArea = area;\n          nextRawIndex = rawIndex;\n        }\n      }\n\n      newIndices[sampledIndex++] = nextRawIndex;\n      currentRawIndex = nextRawIndex;\n    }\n\n    newIndices[sampledIndex++] = this.getRawIndex(len - 1);\n    list._count = sampledIndex;\n    list._indices = newIndices;\n    list.getRawIndex = getRawIndexWithIndices;\n    return list;\n  };\n\n  List.prototype.getItemModel = function (idx) {\n    var hostModel = this.hostModel;\n    var dataItem = this.getRawDataItem(idx);\n    return new Model(dataItem, hostModel, hostModel && hostModel.ecModel);\n  };\n\n  List.prototype.diff = function (otherList) {\n    var thisList = this;\n    return new DataDiffer(otherList ? otherList.getIndices() : [], this.getIndices(), function (idx) {\n      return getId(otherList, idx);\n    }, function (idx) {\n      return getId(thisList, idx);\n    });\n  };\n\n  List.prototype.getVisual = function (key) {\n    var visual = this._visual;\n    return visual && visual[key];\n  };\n\n  List.prototype.setVisual = function (kvObj, val) {\n    this._visual = this._visual || {};\n\n    if (isObject(kvObj)) {\n      zrUtil.extend(this._visual, kvObj);\n    } else {\n      this._visual[kvObj] = val;\n    }\n  };\n\n  List.prototype.getItemVisual = function (idx, key) {\n    var itemVisual = this._itemVisuals[idx];\n    var val = itemVisual && itemVisual[key];\n\n    if (val == null) {\n      return this.getVisual(key);\n    }\n\n    return val;\n  };\n\n  List.prototype.hasItemVisual = function () {\n    return this._itemVisuals.length > 0;\n  };\n\n  List.prototype.ensureUniqueItemVisual = function (idx, key) {\n    var itemVisuals = this._itemVisuals;\n    var itemVisual = itemVisuals[idx];\n\n    if (!itemVisual) {\n      itemVisual = itemVisuals[idx] = {};\n    }\n\n    var val = itemVisual[key];\n\n    if (val == null) {\n      val = this.getVisual(key);\n\n      if (zrUtil.isArray(val)) {\n        val = val.slice();\n      } else if (isObject(val)) {\n        val = zrUtil.extend({}, val);\n      }\n\n      itemVisual[key] = val;\n    }\n\n    return val;\n  };\n\n  List.prototype.setItemVisual = function (idx, key, value) {\n    var itemVisual = this._itemVisuals[idx] || {};\n    this._itemVisuals[idx] = itemVisual;\n\n    if (isObject(key)) {\n      zrUtil.extend(itemVisual, key);\n    } else {\n      itemVisual[key] = value;\n    }\n  };\n\n  List.prototype.clearAllVisual = function () {\n    this._visual = {};\n    this._itemVisuals = [];\n  };\n\n  List.prototype.setLayout = function (key, val) {\n    if (isObject(key)) {\n      for (var name_1 in key) {\n        if (key.hasOwnProperty(name_1)) {\n          this.setLayout(name_1, key[name_1]);\n        }\n      }\n\n      return;\n    }\n\n    this._layout[key] = val;\n  };\n\n  List.prototype.getLayout = function (key) {\n    return this._layout[key];\n  };\n\n  List.prototype.getItemLayout = function (idx) {\n    return this._itemLayouts[idx];\n  };\n\n  List.prototype.setItemLayout = function (idx, layout, merge) {\n    this._itemLayouts[idx] = merge ? zrUtil.extend(this._itemLayouts[idx] || {}, layout) : layout;\n  };\n\n  List.prototype.clearItemLayouts = function () {\n    this._itemLayouts.length = 0;\n  };\n\n  List.prototype.setItemGraphicEl = function (idx, el) {\n    var hostModel = this.hostModel;\n\n    if (el) {\n      var ecData = getECData(el);\n      ecData.dataIndex = idx;\n      ecData.dataType = this.dataType;\n      ecData.seriesIndex = hostModel && hostModel.seriesIndex;\n\n      if (el.type === 'group') {\n        el.traverse(setItemDataAndSeriesIndex, el);\n      }\n    }\n\n    this._graphicEls[idx] = el;\n  };\n\n  List.prototype.getItemGraphicEl = function (idx) {\n    return this._graphicEls[idx];\n  };\n\n  List.prototype.eachItemGraphicEl = function (cb, context) {\n    zrUtil.each(this._graphicEls, function (el, idx) {\n      if (el) {\n        cb && cb.call(context, el, idx);\n      }\n    });\n  };\n\n  List.prototype.cloneShallow = function (list) {\n    if (!list) {\n      var dimensionInfoList = map(this.dimensions, this.getDimensionInfo, this);\n      list = new List(dimensionInfoList, this.hostModel);\n    }\n\n    list._storage = this._storage;\n    list._storageArr = this._storageArr;\n    transferProperties(list, this);\n\n    if (this._indices) {\n      var Ctor = this._indices.constructor;\n\n      if (Ctor === Array) {\n        var thisCount = this._indices.length;\n        list._indices = new Ctor(thisCount);\n\n        for (var i = 0; i < thisCount; i++) {\n          list._indices[i] = this._indices[i];\n        }\n      } else {\n        list._indices = new Ctor(this._indices);\n      }\n    } else {\n      list._indices = null;\n    }\n\n    list.getRawIndex = list._indices ? getRawIndexWithIndices : getRawIndexWithoutIndices;\n    return list;\n  };\n\n  List.prototype.wrapMethod = function (methodName, injectFunction) {\n    var originalMethod = this[methodName];\n\n    if (typeof originalMethod !== 'function') {\n      return;\n    }\n\n    this.__wrappedMethods = this.__wrappedMethods || [];\n\n    this.__wrappedMethods.push(methodName);\n\n    this[methodName] = function () {\n      var res = originalMethod.apply(this, arguments);\n      return injectFunction.apply(this, [res].concat(zrUtil.slice(arguments)));\n    };\n  };\n\n  List.internalField = function () {\n    defaultDimValueGetters = {\n      arrayRows: getDimValueSimply,\n      objectRows: function (dataItem, dimName, dataIndex, dimIndex) {\n        return parseDataValue(dataItem[dimName], this._dimensionInfos[dimName]);\n      },\n      keyedColumns: getDimValueSimply,\n      original: function (dataItem, dimName, dataIndex, dimIndex) {\n        var value = dataItem && (dataItem.value == null ? dataItem : dataItem.value);\n\n        if (!this._rawData.pure && isDataItemOption(dataItem)) {\n          this.hasItemOption = true;\n        }\n\n        return parseDataValue(value instanceof Array ? value[dimIndex] : value, this._dimensionInfos[dimName]);\n      },\n      typedArray: function (dataItem, dimName, dataIndex, dimIndex) {\n        return dataItem[dimIndex];\n      }\n    };\n\n    function getDimValueSimply(dataItem, dimName, dataIndex, dimIndex) {\n      return parseDataValue(dataItem[dimIndex], this._dimensionInfos[dimName]);\n    }\n\n    prepareInvertedIndex = function (list) {\n      var invertedIndicesMap = list._invertedIndicesMap;\n      zrUtil.each(invertedIndicesMap, function (invertedIndices, dim) {\n        var dimInfo = list._dimensionInfos[dim];\n        var ordinalMeta = dimInfo.ordinalMeta;\n\n        if (ordinalMeta) {\n          invertedIndices = invertedIndicesMap[dim] = new CtorInt32Array(ordinalMeta.categories.length);\n\n          for (var i = 0; i < invertedIndices.length; i++) {\n            invertedIndices[i] = INDEX_NOT_FOUND;\n          }\n\n          for (var i = 0; i < list._count; i++) {\n            invertedIndices[list.get(dim, i)] = i;\n          }\n        }\n      });\n    };\n\n    getIdNameFromStore = function (list, dimIdx, ordinalMeta, rawIndex) {\n      var val;\n      var chunk = list._storageArr[dimIdx];\n\n      if (chunk) {\n        val = chunk[rawIndex];\n\n        if (ordinalMeta && ordinalMeta.categories.length) {\n          val = ordinalMeta.categories[val];\n        }\n      }\n\n      return convertOptionIdName(val, null);\n    };\n\n    getIndicesCtor = function (list) {\n      return list._rawCount > 65535 ? CtorUint32Array : CtorUint16Array;\n    };\n\n    prepareStorage = function (storage, dimInfo, end, append) {\n      var DataCtor = dataCtors[dimInfo.type];\n      var dim = dimInfo.name;\n\n      if (append) {\n        var oldStore = storage[dim];\n        var oldLen = oldStore && oldStore.length;\n\n        if (!(oldLen === end)) {\n          var newStore = new DataCtor(end);\n\n          for (var j = 0; j < oldLen; j++) {\n            newStore[j] = oldStore[j];\n          }\n\n          storage[dim] = newStore;\n        }\n      } else {\n        storage[dim] = new DataCtor(end);\n      }\n    };\n\n    getRawIndexWithoutIndices = function (idx) {\n      return idx;\n    };\n\n    getRawIndexWithIndices = function (idx) {\n      if (idx < this._count && idx >= 0) {\n        return this._indices[idx];\n      }\n\n      return -1;\n    };\n\n    getId = function (list, rawIndex) {\n      var id = list._idList[rawIndex];\n\n      if (id == null && list._idDimIdx != null) {\n        id = getIdNameFromStore(list, list._idDimIdx, list._idOrdinalMeta, rawIndex);\n      }\n\n      if (id == null) {\n        id = ID_PREFIX + rawIndex;\n      }\n\n      return id;\n    };\n\n    normalizeDimensions = function (dimensions) {\n      if (!zrUtil.isArray(dimensions)) {\n        dimensions = dimensions != null ? [dimensions] : [];\n      }\n\n      return dimensions;\n    };\n\n    validateDimensions = function (list, dims) {\n      for (var i = 0; i < dims.length; i++) {\n        if (!list._dimensionInfos[dims[i]]) {\n          console.error('Unkown dimension ' + dims[i]);\n        }\n      }\n    };\n\n    cloneListForMapAndSample = function (original, excludeDimensions) {\n      var allDimensions = original.dimensions;\n      var list = new List(map(allDimensions, original.getDimensionInfo, original), original.hostModel);\n      transferProperties(list, original);\n      var storage = list._storage = {};\n      var originalStorage = original._storage;\n      var storageArr = list._storageArr = [];\n\n      for (var i = 0; i < allDimensions.length; i++) {\n        var dim = allDimensions[i];\n\n        if (originalStorage[dim]) {\n          if (zrUtil.indexOf(excludeDimensions, dim) >= 0) {\n            storage[dim] = cloneChunk(originalStorage[dim]);\n            list._rawExtent[dim] = getInitialExtent();\n            list._extent[dim] = null;\n          } else {\n            storage[dim] = originalStorage[dim];\n          }\n\n          storageArr.push(storage[dim]);\n        }\n      }\n\n      return list;\n    };\n\n    function cloneChunk(originalChunk) {\n      var Ctor = originalChunk.constructor;\n      return Ctor === Array ? originalChunk.slice() : new Ctor(originalChunk);\n    }\n\n    getInitialExtent = function () {\n      return [Infinity, -Infinity];\n    };\n\n    setItemDataAndSeriesIndex = function (child) {\n      var childECData = getECData(child);\n      var thisECData = getECData(this);\n      childECData.seriesIndex = thisECData.seriesIndex;\n      childECData.dataIndex = thisECData.dataIndex;\n      childECData.dataType = thisECData.dataType;\n    };\n\n    transferProperties = function (target, source) {\n      zrUtil.each(TRANSFERABLE_PROPERTIES.concat(source.__wrappedMethods || []), function (propName) {\n        if (source.hasOwnProperty(propName)) {\n          target[propName] = source[propName];\n        }\n      });\n      target.__wrappedMethods = source.__wrappedMethods;\n      zrUtil.each(CLONE_PROPERTIES, function (propName) {\n        target[propName] = zrUtil.clone(source[propName]);\n      });\n      target._calculationInfo = zrUtil.extend({}, source._calculationInfo);\n    };\n\n    makeIdFromName = function (list, idx) {\n      var nameList = list._nameList;\n      var idList = list._idList;\n      var nameDimIdx = list._nameDimIdx;\n      var idDimIdx = list._idDimIdx;\n      var name = nameList[idx];\n      var id = idList[idx];\n\n      if (name == null && nameDimIdx != null) {\n        nameList[idx] = name = getIdNameFromStore(list, nameDimIdx, list._nameOrdinalMeta, idx);\n      }\n\n      if (id == null && idDimIdx != null) {\n        idList[idx] = id = getIdNameFromStore(list, idDimIdx, list._idOrdinalMeta, idx);\n      }\n\n      if (id == null && name != null) {\n        var nameRepeatCount = list._nameRepeatCount;\n        var nmCnt = nameRepeatCount[name] = (nameRepeatCount[name] || 0) + 1;\n        id = name;\n\n        if (nmCnt > 1) {\n          id += '__ec__' + nmCnt;\n        }\n\n        idList[idx] = id;\n      }\n    };\n  }();\n\n  return List;\n}();\n\nexport default List;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, each, isString, defaults, extend, isObject, clone } from 'zrender/lib/core/util';\nimport { normalizeToArray } from '../../util/model';\nimport { guessOrdinal, BE_ORDINAL } from './sourceHelper';\nimport { createSourceFromSeriesDataOption, isSourceInstance } from '../Source';\nimport { VISUAL_DIMENSIONS } from '../../util/types';\nimport DataDimensionInfo from '../DataDimensionInfo';\n\nfunction completeDimensions(sysDims, source, opt) {\n  if (!isSourceInstance(source)) {\n    source = createSourceFromSeriesDataOption(source);\n  }\n\n  opt = opt || {};\n  sysDims = (sysDims || []).slice();\n  var dimsDef = (opt.dimsDef || []).slice();\n  var dataDimNameMap = createHashMap();\n  var coordDimNameMap = createHashMap();\n  var result = [];\n  var dimCount = getDimCount(source, sysDims, dimsDef, opt.dimCount);\n\n  for (var i = 0; i < dimCount; i++) {\n    var dimDefItemRaw = dimsDef[i];\n    var dimDefItem = dimsDef[i] = extend({}, isObject(dimDefItemRaw) ? dimDefItemRaw : {\n      name: dimDefItemRaw\n    });\n    var userDimName = dimDefItem.name;\n    var resultItem = result[i] = new DataDimensionInfo();\n\n    if (userDimName != null && dataDimNameMap.get(userDimName) == null) {\n      resultItem.name = resultItem.displayName = userDimName;\n      dataDimNameMap.set(userDimName, i);\n    }\n\n    dimDefItem.type != null && (resultItem.type = dimDefItem.type);\n    dimDefItem.displayName != null && (resultItem.displayName = dimDefItem.displayName);\n  }\n\n  var encodeDef = opt.encodeDef;\n\n  if (!encodeDef && opt.encodeDefaulter) {\n    encodeDef = opt.encodeDefaulter(source, dimCount);\n  }\n\n  var encodeDefMap = createHashMap(encodeDef);\n  encodeDefMap.each(function (dataDimsRaw, coordDim) {\n    var dataDims = normalizeToArray(dataDimsRaw).slice();\n\n    if (dataDims.length === 1 && !isString(dataDims[0]) && dataDims[0] < 0) {\n      encodeDefMap.set(coordDim, false);\n      return;\n    }\n\n    var validDataDims = encodeDefMap.set(coordDim, []);\n    each(dataDims, function (resultDimIdxOrName, idx) {\n      var resultDimIdx = isString(resultDimIdxOrName) ? dataDimNameMap.get(resultDimIdxOrName) : resultDimIdxOrName;\n\n      if (resultDimIdx != null && resultDimIdx < dimCount) {\n        validDataDims[idx] = resultDimIdx;\n        applyDim(result[resultDimIdx], coordDim, idx);\n      }\n    });\n  });\n  var availDimIdx = 0;\n  each(sysDims, function (sysDimItemRaw) {\n    var coordDim;\n    var sysDimItemDimsDef;\n    var sysDimItemOtherDims;\n    var sysDimItem;\n\n    if (isString(sysDimItemRaw)) {\n      coordDim = sysDimItemRaw;\n      sysDimItem = {};\n    } else {\n      sysDimItem = sysDimItemRaw;\n      coordDim = sysDimItem.name;\n      var ordinalMeta = sysDimItem.ordinalMeta;\n      sysDimItem.ordinalMeta = null;\n      sysDimItem = clone(sysDimItem);\n      sysDimItem.ordinalMeta = ordinalMeta;\n      sysDimItemDimsDef = sysDimItem.dimsDef;\n      sysDimItemOtherDims = sysDimItem.otherDims;\n      sysDimItem.name = sysDimItem.coordDim = sysDimItem.coordDimIndex = sysDimItem.dimsDef = sysDimItem.otherDims = null;\n    }\n\n    var dataDims = encodeDefMap.get(coordDim);\n\n    if (dataDims === false) {\n      return;\n    }\n\n    dataDims = normalizeToArray(dataDims);\n\n    if (!dataDims.length) {\n      for (var i = 0; i < (sysDimItemDimsDef && sysDimItemDimsDef.length || 1); i++) {\n        while (availDimIdx < result.length && result[availDimIdx].coordDim != null) {\n          availDimIdx++;\n        }\n\n        availDimIdx < result.length && dataDims.push(availDimIdx++);\n      }\n    }\n\n    each(dataDims, function (resultDimIdx, coordDimIndex) {\n      var resultItem = result[resultDimIdx];\n      applyDim(defaults(resultItem, sysDimItem), coordDim, coordDimIndex);\n\n      if (resultItem.name == null && sysDimItemDimsDef) {\n        var sysDimItemDimsDefItem = sysDimItemDimsDef[coordDimIndex];\n        !isObject(sysDimItemDimsDefItem) && (sysDimItemDimsDefItem = {\n          name: sysDimItemDimsDefItem\n        });\n        resultItem.name = resultItem.displayName = sysDimItemDimsDefItem.name;\n        resultItem.defaultTooltip = sysDimItemDimsDefItem.defaultTooltip;\n      }\n\n      sysDimItemOtherDims && defaults(resultItem.otherDims, sysDimItemOtherDims);\n    });\n  });\n\n  function applyDim(resultItem, coordDim, coordDimIndex) {\n    if (VISUAL_DIMENSIONS.get(coordDim) != null) {\n      resultItem.otherDims[coordDim] = coordDimIndex;\n    } else {\n      resultItem.coordDim = coordDim;\n      resultItem.coordDimIndex = coordDimIndex;\n      coordDimNameMap.set(coordDim, true);\n    }\n  }\n\n  var generateCoord = opt.generateCoord;\n  var generateCoordCount = opt.generateCoordCount;\n  var fromZero = generateCoordCount != null;\n  generateCoordCount = generateCoord ? generateCoordCount || 1 : 0;\n  var extra = generateCoord || 'value';\n\n  for (var resultDimIdx = 0; resultDimIdx < dimCount; resultDimIdx++) {\n    var resultItem = result[resultDimIdx] = result[resultDimIdx] || new DataDimensionInfo();\n    var coordDim = resultItem.coordDim;\n\n    if (coordDim == null) {\n      resultItem.coordDim = genName(extra, coordDimNameMap, fromZero);\n      resultItem.coordDimIndex = 0;\n\n      if (!generateCoord || generateCoordCount <= 0) {\n        resultItem.isExtraCoord = true;\n      }\n\n      generateCoordCount--;\n    }\n\n    resultItem.name == null && (resultItem.name = genName(resultItem.coordDim, dataDimNameMap, false));\n\n    if (resultItem.type == null && (guessOrdinal(source, resultDimIdx) === BE_ORDINAL.Must || resultItem.isExtraCoord && (resultItem.otherDims.itemName != null || resultItem.otherDims.seriesName != null))) {\n      resultItem.type = 'ordinal';\n    }\n  }\n\n  return result;\n}\n\nfunction getDimCount(source, sysDims, dimsDef, optDimCount) {\n  var dimCount = Math.max(source.dimensionsDetectedCount || 1, sysDims.length, dimsDef.length, optDimCount || 0);\n  each(sysDims, function (sysDimItem) {\n    var sysDimItemDimsDef;\n\n    if (isObject(sysDimItem) && (sysDimItemDimsDef = sysDimItem.dimsDef)) {\n      dimCount = Math.max(dimCount, sysDimItemDimsDef.length);\n    }\n  });\n  return dimCount;\n}\n\nfunction genName(name, map, fromZero) {\n  if (fromZero || map.get(name) != null) {\n    var i = 0;\n\n    while (map.get(name + i) != null) {\n      i++;\n    }\n\n    name += i;\n  }\n\n  map.set(name, true);\n  return name;\n}\n\nexport default completeDimensions;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport completeDimensions from './completeDimensions';\nexport default function createDimensions(source, opt) {\n  opt = opt || {};\n  return completeDimensions(opt.coordDimensions || [], source, {\n    dimsDef: opt.dimensionsDefine || source.dimensionsDefine,\n    encodeDef: opt.encodeDefine || source.encodeDefine,\n    dimCount: opt.dimensionsCount,\n    encodeDefaulter: opt.encodeDefaulter,\n    generateCoord: opt.generateCoord,\n    generateCoordCount: opt.generateCoordCount\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, retrieve, each } from 'zrender/lib/core/util';\nimport { SINGLE_REFERRING } from '../util/model';\n\nvar CoordSysInfo = function () {\n  function CoordSysInfo(coordSysName) {\n    this.coordSysDims = [];\n    this.axisMap = createHashMap();\n    this.categoryAxisMap = createHashMap();\n    this.coordSysName = coordSysName;\n  }\n\n  return CoordSysInfo;\n}();\n\nexport function getCoordSysInfoBySeries(seriesModel) {\n  var coordSysName = seriesModel.get('coordinateSystem');\n  var result = new CoordSysInfo(coordSysName);\n  var fetch = fetchers[coordSysName];\n\n  if (fetch) {\n    fetch(seriesModel, result, result.axisMap, result.categoryAxisMap);\n    return result;\n  }\n}\nvar fetchers = {\n  cartesian2d: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var xAxisModel = seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0];\n    var yAxisModel = seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!xAxisModel) {\n        throw new Error('xAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('xAxisId'), 0) + '\" not found');\n      }\n\n      if (!yAxisModel) {\n        throw new Error('yAxis \"' + retrieve(seriesModel.get('xAxisIndex'), seriesModel.get('yAxisId'), 0) + '\" not found');\n      }\n    }\n\n    result.coordSysDims = ['x', 'y'];\n    axisMap.set('x', xAxisModel);\n    axisMap.set('y', yAxisModel);\n\n    if (isCategory(xAxisModel)) {\n      categoryAxisMap.set('x', xAxisModel);\n      result.firstCategoryDimIndex = 0;\n    }\n\n    if (isCategory(yAxisModel)) {\n      categoryAxisMap.set('y', yAxisModel);\n      result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\n    }\n  },\n  singleAxis: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var singleAxisModel = seriesModel.getReferringComponents('singleAxis', SINGLE_REFERRING).models[0];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!singleAxisModel) {\n        throw new Error('singleAxis should be specified.');\n      }\n    }\n\n    result.coordSysDims = ['single'];\n    axisMap.set('single', singleAxisModel);\n\n    if (isCategory(singleAxisModel)) {\n      categoryAxisMap.set('single', singleAxisModel);\n      result.firstCategoryDimIndex = 0;\n    }\n  },\n  polar: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var polarModel = seriesModel.getReferringComponents('polar', SINGLE_REFERRING).models[0];\n    var radiusAxisModel = polarModel.findAxisModel('radiusAxis');\n    var angleAxisModel = polarModel.findAxisModel('angleAxis');\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!angleAxisModel) {\n        throw new Error('angleAxis option not found');\n      }\n\n      if (!radiusAxisModel) {\n        throw new Error('radiusAxis option not found');\n      }\n    }\n\n    result.coordSysDims = ['radius', 'angle'];\n    axisMap.set('radius', radiusAxisModel);\n    axisMap.set('angle', angleAxisModel);\n\n    if (isCategory(radiusAxisModel)) {\n      categoryAxisMap.set('radius', radiusAxisModel);\n      result.firstCategoryDimIndex = 0;\n    }\n\n    if (isCategory(angleAxisModel)) {\n      categoryAxisMap.set('angle', angleAxisModel);\n      result.firstCategoryDimIndex == null && (result.firstCategoryDimIndex = 1);\n    }\n  },\n  geo: function (seriesModel, result, axisMap, categoryAxisMap) {\n    result.coordSysDims = ['lng', 'lat'];\n  },\n  parallel: function (seriesModel, result, axisMap, categoryAxisMap) {\n    var ecModel = seriesModel.ecModel;\n    var parallelModel = ecModel.getComponent('parallel', seriesModel.get('parallelIndex'));\n    var coordSysDims = result.coordSysDims = parallelModel.dimensions.slice();\n    each(parallelModel.parallelAxisIndex, function (axisIndex, index) {\n      var axisModel = ecModel.getComponent('parallelAxis', axisIndex);\n      var axisDim = coordSysDims[index];\n      axisMap.set(axisDim, axisModel);\n\n      if (isCategory(axisModel)) {\n        categoryAxisMap.set(axisDim, axisModel);\n\n        if (result.firstCategoryDimIndex == null) {\n          result.firstCategoryDimIndex = index;\n        }\n      }\n    });\n  }\n};\n\nfunction isCategory(axisModel) {\n  return axisModel.get('type') === 'category';\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, isString } from 'zrender/lib/core/util';\nexport function enableDataStack(seriesModel, dimensionInfoList, opt) {\n  opt = opt || {};\n  var byIndex = opt.byIndex;\n  var stackedCoordDimension = opt.stackedCoordDimension;\n  var mayStack = !!(seriesModel && seriesModel.get('stack'));\n  var stackedByDimInfo;\n  var stackedDimInfo;\n  var stackResultDimension;\n  var stackedOverDimension;\n  each(dimensionInfoList, function (dimensionInfo, index) {\n    if (isString(dimensionInfo)) {\n      dimensionInfoList[index] = dimensionInfo = {\n        name: dimensionInfo\n      };\n    }\n\n    if (mayStack && !dimensionInfo.isExtraCoord) {\n      if (!byIndex && !stackedByDimInfo && dimensionInfo.ordinalMeta) {\n        stackedByDimInfo = dimensionInfo;\n      }\n\n      if (!stackedDimInfo && dimensionInfo.type !== 'ordinal' && dimensionInfo.type !== 'time' && (!stackedCoordDimension || stackedCoordDimension === dimensionInfo.coordDim)) {\n        stackedDimInfo = dimensionInfo;\n      }\n    }\n  });\n\n  if (stackedDimInfo && !byIndex && !stackedByDimInfo) {\n    byIndex = true;\n  }\n\n  if (stackedDimInfo) {\n    stackResultDimension = '__\\0ecstackresult';\n    stackedOverDimension = '__\\0ecstackedover';\n\n    if (stackedByDimInfo) {\n      stackedByDimInfo.createInvertedIndices = true;\n    }\n\n    var stackedDimCoordDim_1 = stackedDimInfo.coordDim;\n    var stackedDimType = stackedDimInfo.type;\n    var stackedDimCoordIndex_1 = 0;\n    each(dimensionInfoList, function (dimensionInfo) {\n      if (dimensionInfo.coordDim === stackedDimCoordDim_1) {\n        stackedDimCoordIndex_1++;\n      }\n    });\n    dimensionInfoList.push({\n      name: stackResultDimension,\n      coordDim: stackedDimCoordDim_1,\n      coordDimIndex: stackedDimCoordIndex_1,\n      type: stackedDimType,\n      isExtraCoord: true,\n      isCalculationCoord: true\n    });\n    stackedDimCoordIndex_1++;\n    dimensionInfoList.push({\n      name: stackedOverDimension,\n      coordDim: stackedOverDimension,\n      coordDimIndex: stackedDimCoordIndex_1,\n      type: stackedDimType,\n      isExtraCoord: true,\n      isCalculationCoord: true\n    });\n  }\n\n  return {\n    stackedDimension: stackedDimInfo && stackedDimInfo.name,\n    stackedByDimension: stackedByDimInfo && stackedByDimInfo.name,\n    isStackedByIndex: byIndex,\n    stackedOverDimension: stackedOverDimension,\n    stackResultDimension: stackResultDimension\n  };\n}\nexport function isDimensionStacked(data, stackedDim) {\n  return !!stackedDim && stackedDim === data.getCalculationInfo('stackedDimension');\n}\nexport function getStackedDimension(data, targetDim) {\n  return isDimensionStacked(data, targetDim) ? data.getCalculationInfo('stackResultDimension') : targetDim;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport List from '../../data/List';\nimport createDimensions from '../../data/helper/createDimensions';\nimport { getDimensionTypeByAxis } from '../../data/helper/dimensionHelper';\nimport { getDataItemValue } from '../../util/model';\nimport CoordinateSystem from '../../core/CoordinateSystem';\nimport { getCoordSysInfoBySeries } from '../../model/referHelper';\nimport { createSourceFromSeriesDataOption, isSourceInstance } from '../../data/Source';\nimport { enableDataStack } from '../../data/helper/dataStackHelper';\nimport { makeSeriesEncodeForAxisCoordSys } from '../../data/helper/sourceHelper';\nimport { SOURCE_FORMAT_ORIGINAL } from '../../util/types';\n\nfunction createListFromArray(source, seriesModel, opt) {\n  opt = opt || {};\n\n  if (!isSourceInstance(source)) {\n    source = createSourceFromSeriesDataOption(source);\n  }\n\n  var coordSysName = seriesModel.get('coordinateSystem');\n  var registeredCoordSys = CoordinateSystem.get(coordSysName);\n  var coordSysInfo = getCoordSysInfoBySeries(seriesModel);\n  var coordSysDimDefs;\n\n  if (coordSysInfo && coordSysInfo.coordSysDims) {\n    coordSysDimDefs = zrUtil.map(coordSysInfo.coordSysDims, function (dim) {\n      var dimInfo = {\n        name: dim\n      };\n      var axisModel = coordSysInfo.axisMap.get(dim);\n\n      if (axisModel) {\n        var axisType = axisModel.get('type');\n        dimInfo.type = getDimensionTypeByAxis(axisType);\n      }\n\n      return dimInfo;\n    });\n  }\n\n  if (!coordSysDimDefs) {\n    coordSysDimDefs = registeredCoordSys && (registeredCoordSys.getDimensionsInfo ? registeredCoordSys.getDimensionsInfo() : registeredCoordSys.dimensions.slice()) || ['x', 'y'];\n  }\n\n  var useEncodeDefaulter = opt.useEncodeDefaulter;\n  var dimInfoList = createDimensions(source, {\n    coordDimensions: coordSysDimDefs,\n    generateCoord: opt.generateCoord,\n    encodeDefaulter: zrUtil.isFunction(useEncodeDefaulter) ? useEncodeDefaulter : useEncodeDefaulter ? zrUtil.curry(makeSeriesEncodeForAxisCoordSys, coordSysDimDefs, seriesModel) : null\n  });\n  var firstCategoryDimIndex;\n  var hasNameEncode;\n  coordSysInfo && zrUtil.each(dimInfoList, function (dimInfo, dimIndex) {\n    var coordDim = dimInfo.coordDim;\n    var categoryAxisModel = coordSysInfo.categoryAxisMap.get(coordDim);\n\n    if (categoryAxisModel) {\n      if (firstCategoryDimIndex == null) {\n        firstCategoryDimIndex = dimIndex;\n      }\n\n      dimInfo.ordinalMeta = categoryAxisModel.getOrdinalMeta();\n\n      if (opt.createInvertedIndices) {\n        dimInfo.createInvertedIndices = true;\n      }\n    }\n\n    if (dimInfo.otherDims.itemName != null) {\n      hasNameEncode = true;\n    }\n  });\n\n  if (!hasNameEncode && firstCategoryDimIndex != null) {\n    dimInfoList[firstCategoryDimIndex].otherDims.itemName = 0;\n  }\n\n  var stackCalculationInfo = enableDataStack(seriesModel, dimInfoList);\n  var list = new List(dimInfoList, seriesModel);\n  list.setCalculationInfo(stackCalculationInfo);\n  var dimValueGetter = firstCategoryDimIndex != null && isNeedCompleteOrdinalData(source) ? function (itemOpt, dimName, dataIndex, dimIndex) {\n    return dimIndex === firstCategoryDimIndex ? dataIndex : this.defaultDimValueGetter(itemOpt, dimName, dataIndex, dimIndex);\n  } : null;\n  list.hasItemOption = false;\n  list.initData(source, null, dimValueGetter);\n  return list;\n}\n\nfunction isNeedCompleteOrdinalData(source) {\n  if (source.sourceFormat === SOURCE_FORMAT_ORIGINAL) {\n    var sampleItem = firstDataNotNull(source.data || []);\n    return sampleItem != null && !zrUtil.isArray(getDataItemValue(sampleItem));\n  }\n}\n\nfunction firstDataNotNull(data) {\n  var i = 0;\n\n  while (i < data.length && data[i] == null) {\n    i++;\n  }\n\n  return data[i];\n}\n\nexport default createListFromArray;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as clazzUtil from '../util/clazz';\n\nvar Scale = function () {\n  function Scale(setting) {\n    this._setting = setting || {};\n    this._extent = [Infinity, -Infinity];\n  }\n\n  Scale.prototype.getSetting = function (name) {\n    return this._setting[name];\n  };\n\n  Scale.prototype.unionExtent = function (other) {\n    var extent = this._extent;\n    other[0] < extent[0] && (extent[0] = other[0]);\n    other[1] > extent[1] && (extent[1] = other[1]);\n  };\n\n  Scale.prototype.unionExtentFromData = function (data, dim) {\n    this.unionExtent(data.getApproximateExtent(dim));\n  };\n\n  Scale.prototype.getExtent = function () {\n    return this._extent.slice();\n  };\n\n  Scale.prototype.setExtent = function (start, end) {\n    var thisExtent = this._extent;\n\n    if (!isNaN(start)) {\n      thisExtent[0] = start;\n    }\n\n    if (!isNaN(end)) {\n      thisExtent[1] = end;\n    }\n  };\n\n  Scale.prototype.isInExtentRange = function (value) {\n    return this._extent[0] <= value && this._extent[1] >= value;\n  };\n\n  Scale.prototype.isBlank = function () {\n    return this._isBlank;\n  };\n\n  Scale.prototype.setBlank = function (isBlank) {\n    this._isBlank = isBlank;\n  };\n\n  return Scale;\n}();\n\nclazzUtil.enableClassManagement(Scale);\nexport default Scale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createHashMap, isObject, map } from 'zrender/lib/core/util';\n\nvar OrdinalMeta = function () {\n  function OrdinalMeta(opt) {\n    this.categories = opt.categories || [];\n    this._needCollect = opt.needCollect;\n    this._deduplication = opt.deduplication;\n  }\n\n  OrdinalMeta.createByAxisModel = function (axisModel) {\n    var option = axisModel.option;\n    var data = option.data;\n    var categories = data && map(data, getName);\n    return new OrdinalMeta({\n      categories: categories,\n      needCollect: !categories,\n      deduplication: option.dedplication !== false\n    });\n  };\n\n  ;\n\n  OrdinalMeta.prototype.getOrdinal = function (category) {\n    return this._getOrCreateMap().get(category);\n  };\n\n  OrdinalMeta.prototype.parseAndCollect = function (category) {\n    var index;\n    var needCollect = this._needCollect;\n\n    if (typeof category !== 'string' && !needCollect) {\n      return category;\n    }\n\n    if (needCollect && !this._deduplication) {\n      index = this.categories.length;\n      this.categories[index] = category;\n      return index;\n    }\n\n    var map = this._getOrCreateMap();\n\n    index = map.get(category);\n\n    if (index == null) {\n      if (needCollect) {\n        index = this.categories.length;\n        this.categories[index] = category;\n        map.set(category, index);\n      } else {\n        index = NaN;\n      }\n    }\n\n    return index;\n  };\n\n  OrdinalMeta.prototype._getOrCreateMap = function () {\n    return this._map || (this._map = createHashMap(this.categories));\n  };\n\n  return OrdinalMeta;\n}();\n\nfunction getName(obj) {\n  if (isObject(obj) && obj.value != null) {\n    return obj.value;\n  } else {\n    return obj + '';\n  }\n}\n\nexport default OrdinalMeta;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as numberUtil from '../util/number';\nvar roundNumber = numberUtil.round;\nexport function intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval) {\n  var result = {};\n  var span = extent[1] - extent[0];\n  var interval = result.interval = numberUtil.nice(span / splitNumber, true);\n\n  if (minInterval != null && interval < minInterval) {\n    interval = result.interval = minInterval;\n  }\n\n  if (maxInterval != null && interval > maxInterval) {\n    interval = result.interval = maxInterval;\n  }\n\n  var precision = result.intervalPrecision = getIntervalPrecision(interval);\n  var niceTickExtent = result.niceTickExtent = [roundNumber(Math.ceil(extent[0] / interval) * interval, precision), roundNumber(Math.floor(extent[1] / interval) * interval, precision)];\n  fixExtent(niceTickExtent, extent);\n  return result;\n}\nexport function getIntervalPrecision(interval) {\n  return numberUtil.getPrecisionSafe(interval) + 2;\n}\n\nfunction clamp(niceTickExtent, idx, extent) {\n  niceTickExtent[idx] = Math.max(Math.min(niceTickExtent[idx], extent[1]), extent[0]);\n}\n\nexport function fixExtent(niceTickExtent, extent) {\n  !isFinite(niceTickExtent[0]) && (niceTickExtent[0] = extent[0]);\n  !isFinite(niceTickExtent[1]) && (niceTickExtent[1] = extent[1]);\n  clamp(niceTickExtent, 0, extent);\n  clamp(niceTickExtent, 1, extent);\n\n  if (niceTickExtent[0] > niceTickExtent[1]) {\n    niceTickExtent[0] = niceTickExtent[1];\n  }\n}\nexport function contain(val, extent) {\n  return val >= extent[0] && val <= extent[1];\n}\nexport function normalize(val, extent) {\n  if (extent[1] === extent[0]) {\n    return 0.5;\n  }\n\n  return (val - extent[0]) / (extent[1] - extent[0]);\n}\nexport function scale(val, extent) {\n  return val * (extent[1] - extent[0]) + extent[0];\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Scale from './Scale';\nimport OrdinalMeta from '../data/OrdinalMeta';\nimport * as scaleHelper from './helper';\nimport { isArray, map, isObject } from 'zrender/lib/core/util';\n\nvar OrdinalScale = function (_super) {\n  __extends(OrdinalScale, _super);\n\n  function OrdinalScale(setting) {\n    var _this = _super.call(this, setting) || this;\n\n    _this.type = 'ordinal';\n\n    var ordinalMeta = _this.getSetting('ordinalMeta');\n\n    if (!ordinalMeta) {\n      ordinalMeta = new OrdinalMeta({});\n    }\n\n    if (isArray(ordinalMeta)) {\n      ordinalMeta = new OrdinalMeta({\n        categories: map(ordinalMeta, function (item) {\n          return isObject(item) ? item.value : item;\n        })\n      });\n    }\n\n    _this._ordinalMeta = ordinalMeta;\n    _this._extent = _this.getSetting('extent') || [0, ordinalMeta.categories.length - 1];\n    return _this;\n  }\n\n  OrdinalScale.prototype.parse = function (val) {\n    return typeof val === 'string' ? this._ordinalMeta.getOrdinal(val) : Math.round(val);\n  };\n\n  OrdinalScale.prototype.contain = function (rank) {\n    rank = this.parse(rank);\n    return scaleHelper.contain(rank, this._extent) && this._ordinalMeta.categories[rank] != null;\n  };\n\n  OrdinalScale.prototype.normalize = function (val) {\n    val = this._getTickNumber(this.parse(val));\n    return scaleHelper.normalize(val, this._extent);\n  };\n\n  OrdinalScale.prototype.scale = function (val) {\n    val = Math.round(scaleHelper.scale(val, this._extent));\n    return this.getRawOrdinalNumber(val);\n  };\n\n  OrdinalScale.prototype.getTicks = function () {\n    var ticks = [];\n    var extent = this._extent;\n    var rank = extent[0];\n\n    while (rank <= extent[1]) {\n      ticks.push({\n        value: rank\n      });\n      rank++;\n    }\n\n    return ticks;\n  };\n\n  OrdinalScale.prototype.getMinorTicks = function (splitNumber) {\n    return;\n  };\n\n  OrdinalScale.prototype.setSortInfo = function (info) {\n    if (info == null) {\n      this._ordinalNumbersByTick = this._ticksByOrdinalNumber = null;\n      return;\n    }\n\n    var infoOrdinalNumbers = info.ordinalNumbers;\n    var ordinalsByTick = this._ordinalNumbersByTick = [];\n    var ticksByOrdinal = this._ticksByOrdinalNumber = [];\n    var tickNum = 0;\n    var allCategoryLen = this._ordinalMeta.categories.length;\n\n    for (var len = Math.min(allCategoryLen, infoOrdinalNumbers.length); tickNum < len; ++tickNum) {\n      var ordinalNumber = infoOrdinalNumbers[tickNum];\n      ordinalsByTick[tickNum] = ordinalNumber;\n      ticksByOrdinal[ordinalNumber] = tickNum;\n    }\n\n    var unusedOrdinal = 0;\n\n    for (; tickNum < allCategoryLen; ++tickNum) {\n      while (ticksByOrdinal[unusedOrdinal] != null) {\n        unusedOrdinal++;\n      }\n\n      ;\n      ordinalsByTick.push(unusedOrdinal);\n      ticksByOrdinal[unusedOrdinal] = tickNum;\n    }\n  };\n\n  OrdinalScale.prototype._getTickNumber = function (ordinal) {\n    var ticksByOrdinalNumber = this._ticksByOrdinalNumber;\n    return ticksByOrdinalNumber && ordinal >= 0 && ordinal < ticksByOrdinalNumber.length ? ticksByOrdinalNumber[ordinal] : ordinal;\n  };\n\n  OrdinalScale.prototype.getRawOrdinalNumber = function (tickNumber) {\n    var ordinalNumbersByTick = this._ordinalNumbersByTick;\n    return ordinalNumbersByTick && tickNumber >= 0 && tickNumber < ordinalNumbersByTick.length ? ordinalNumbersByTick[tickNumber] : tickNumber;\n  };\n\n  OrdinalScale.prototype.getLabel = function (tick) {\n    if (!this.isBlank()) {\n      var ordinalNumber = this.getRawOrdinalNumber(tick.value);\n      var cateogry = this._ordinalMeta.categories[ordinalNumber];\n      return cateogry == null ? '' : cateogry + '';\n    }\n  };\n\n  OrdinalScale.prototype.count = function () {\n    return this._extent[1] - this._extent[0] + 1;\n  };\n\n  OrdinalScale.prototype.unionExtentFromData = function (data, dim) {\n    this.unionExtent(data.getApproximateExtent(dim));\n  };\n\n  OrdinalScale.prototype.isInExtentRange = function (value) {\n    value = this._getTickNumber(value);\n    return this._extent[0] <= value && this._extent[1] >= value;\n  };\n\n  OrdinalScale.prototype.getOrdinalMeta = function () {\n    return this._ordinalMeta;\n  };\n\n  OrdinalScale.prototype.niceTicks = function () {};\n\n  OrdinalScale.prototype.niceExtent = function () {};\n\n  OrdinalScale.type = 'ordinal';\n  return OrdinalScale;\n}(Scale);\n\nScale.registerClass(OrdinalScale);\nexport default OrdinalScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as numberUtil from '../util/number';\nimport * as formatUtil from '../util/format';\nimport Scale from './Scale';\nimport * as helper from './helper';\nvar roundNumber = numberUtil.round;\n\nvar IntervalScale = function (_super) {\n  __extends(IntervalScale, _super);\n\n  function IntervalScale() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'interval';\n    _this._interval = 0;\n    _this._intervalPrecision = 2;\n    return _this;\n  }\n\n  IntervalScale.prototype.parse = function (val) {\n    return val;\n  };\n\n  IntervalScale.prototype.contain = function (val) {\n    return helper.contain(val, this._extent);\n  };\n\n  IntervalScale.prototype.normalize = function (val) {\n    return helper.normalize(val, this._extent);\n  };\n\n  IntervalScale.prototype.scale = function (val) {\n    return helper.scale(val, this._extent);\n  };\n\n  IntervalScale.prototype.setExtent = function (start, end) {\n    var thisExtent = this._extent;\n\n    if (!isNaN(start)) {\n      thisExtent[0] = parseFloat(start);\n    }\n\n    if (!isNaN(end)) {\n      thisExtent[1] = parseFloat(end);\n    }\n  };\n\n  IntervalScale.prototype.unionExtent = function (other) {\n    var extent = this._extent;\n    other[0] < extent[0] && (extent[0] = other[0]);\n    other[1] > extent[1] && (extent[1] = other[1]);\n    this.setExtent(extent[0], extent[1]);\n  };\n\n  IntervalScale.prototype.getInterval = function () {\n    return this._interval;\n  };\n\n  IntervalScale.prototype.setInterval = function (interval) {\n    this._interval = interval;\n    this._niceExtent = this._extent.slice();\n    this._intervalPrecision = helper.getIntervalPrecision(interval);\n  };\n\n  IntervalScale.prototype.getTicks = function (expandToNicedExtent) {\n    var interval = this._interval;\n    var extent = this._extent;\n    var niceTickExtent = this._niceExtent;\n    var intervalPrecision = this._intervalPrecision;\n    var ticks = [];\n\n    if (!interval) {\n      return ticks;\n    }\n\n    var safeLimit = 10000;\n\n    if (extent[0] < niceTickExtent[0]) {\n      if (expandToNicedExtent) {\n        ticks.push({\n          value: roundNumber(niceTickExtent[0] - interval, intervalPrecision)\n        });\n      } else {\n        ticks.push({\n          value: extent[0]\n        });\n      }\n    }\n\n    var tick = niceTickExtent[0];\n\n    while (tick <= niceTickExtent[1]) {\n      ticks.push({\n        value: tick\n      });\n      tick = roundNumber(tick + interval, intervalPrecision);\n\n      if (tick === ticks[ticks.length - 1].value) {\n        break;\n      }\n\n      if (ticks.length > safeLimit) {\n        return [];\n      }\n    }\n\n    var lastNiceTick = ticks.length ? ticks[ticks.length - 1].value : niceTickExtent[1];\n\n    if (extent[1] > lastNiceTick) {\n      if (expandToNicedExtent) {\n        ticks.push({\n          value: roundNumber(lastNiceTick + interval, intervalPrecision)\n        });\n      } else {\n        ticks.push({\n          value: extent[1]\n        });\n      }\n    }\n\n    return ticks;\n  };\n\n  IntervalScale.prototype.getMinorTicks = function (splitNumber) {\n    var ticks = this.getTicks(true);\n    var minorTicks = [];\n    var extent = this.getExtent();\n\n    for (var i = 1; i < ticks.length; i++) {\n      var nextTick = ticks[i];\n      var prevTick = ticks[i - 1];\n      var count = 0;\n      var minorTicksGroup = [];\n      var interval = nextTick.value - prevTick.value;\n      var minorInterval = interval / splitNumber;\n\n      while (count < splitNumber - 1) {\n        var minorTick = roundNumber(prevTick.value + (count + 1) * minorInterval);\n\n        if (minorTick > extent[0] && minorTick < extent[1]) {\n          minorTicksGroup.push(minorTick);\n        }\n\n        count++;\n      }\n\n      minorTicks.push(minorTicksGroup);\n    }\n\n    return minorTicks;\n  };\n\n  IntervalScale.prototype.getLabel = function (data, opt) {\n    if (data == null) {\n      return '';\n    }\n\n    var precision = opt && opt.precision;\n\n    if (precision == null) {\n      precision = numberUtil.getPrecisionSafe(data.value) || 0;\n    } else if (precision === 'auto') {\n      precision = this._intervalPrecision;\n    }\n\n    var dataNum = roundNumber(data.value, precision, true);\n    return formatUtil.addCommas(dataNum);\n  };\n\n  IntervalScale.prototype.niceTicks = function (splitNumber, minInterval, maxInterval) {\n    splitNumber = splitNumber || 5;\n    var extent = this._extent;\n    var span = extent[1] - extent[0];\n\n    if (!isFinite(span)) {\n      return;\n    }\n\n    if (span < 0) {\n      span = -span;\n      extent.reverse();\n    }\n\n    var result = helper.intervalScaleNiceTicks(extent, splitNumber, minInterval, maxInterval);\n    this._intervalPrecision = result.intervalPrecision;\n    this._interval = result.interval;\n    this._niceExtent = result.niceTickExtent;\n  };\n\n  IntervalScale.prototype.niceExtent = function (opt) {\n    var extent = this._extent;\n\n    if (extent[0] === extent[1]) {\n      if (extent[0] !== 0) {\n        var expandSize = extent[0];\n\n        if (!opt.fixMax) {\n          extent[1] += expandSize / 2;\n          extent[0] -= expandSize / 2;\n        } else {\n          extent[0] -= expandSize / 2;\n        }\n      } else {\n        extent[1] = 1;\n      }\n    }\n\n    var span = extent[1] - extent[0];\n\n    if (!isFinite(span)) {\n      extent[0] = 0;\n      extent[1] = 1;\n    }\n\n    this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\n    var interval = this._interval;\n\n    if (!opt.fixMin) {\n      extent[0] = roundNumber(Math.floor(extent[0] / interval) * interval);\n    }\n\n    if (!opt.fixMax) {\n      extent[1] = roundNumber(Math.ceil(extent[1] / interval) * interval);\n    }\n  };\n\n  IntervalScale.type = 'interval';\n  return IntervalScale;\n}(Scale);\n\nScale.registerClass(IntervalScale);\nexport default IntervalScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { parsePercent } from '../util/number';\nimport { isDimensionStacked } from '../data/helper/dataStackHelper';\nimport createRenderPlanner from '../chart/helper/createRenderPlanner';\nvar STACK_PREFIX = '__ec_stack_';\nvar LARGE_BAR_MIN_WIDTH = 0.5;\nvar LargeArr = typeof Float32Array !== 'undefined' ? Float32Array : Array;\n\nfunction getSeriesStackId(seriesModel) {\n  return seriesModel.get('stack') || STACK_PREFIX + seriesModel.seriesIndex;\n}\n\nfunction getAxisKey(axis) {\n  return axis.dim + axis.index;\n}\n\nexport function getLayoutOnAxis(opt) {\n  var params = [];\n  var baseAxis = opt.axis;\n  var axisKey = 'axis0';\n\n  if (baseAxis.type !== 'category') {\n    return;\n  }\n\n  var bandWidth = baseAxis.getBandWidth();\n\n  for (var i = 0; i < opt.count || 0; i++) {\n    params.push(zrUtil.defaults({\n      bandWidth: bandWidth,\n      axisKey: axisKey,\n      stackId: STACK_PREFIX + i\n    }, opt));\n  }\n\n  var widthAndOffsets = doCalBarWidthAndOffset(params);\n  var result = [];\n\n  for (var i = 0; i < opt.count; i++) {\n    var item = widthAndOffsets[axisKey][STACK_PREFIX + i];\n    item.offsetCenter = item.offset + item.width / 2;\n    result.push(item);\n  }\n\n  return result;\n}\nexport function prepareLayoutBarSeries(seriesType, ecModel) {\n  var seriesModels = [];\n  ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n    if (isOnCartesian(seriesModel) && !isInLargeMode(seriesModel)) {\n      seriesModels.push(seriesModel);\n    }\n  });\n  return seriesModels;\n}\n\nfunction getValueAxesMinGaps(barSeries) {\n  var axisValues = {};\n  zrUtil.each(barSeries, function (seriesModel) {\n    var cartesian = seriesModel.coordinateSystem;\n    var baseAxis = cartesian.getBaseAxis();\n\n    if (baseAxis.type !== 'time' && baseAxis.type !== 'value') {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var key = baseAxis.dim + '_' + baseAxis.index;\n    var dim = data.mapDimension(baseAxis.dim);\n\n    for (var i = 0, cnt = data.count(); i < cnt; ++i) {\n      var value = data.get(dim, i);\n\n      if (!axisValues[key]) {\n        axisValues[key] = [value];\n      } else {\n        axisValues[key].push(value);\n      }\n    }\n  });\n  var axisMinGaps = {};\n\n  for (var key in axisValues) {\n    if (axisValues.hasOwnProperty(key)) {\n      var valuesInAxis = axisValues[key];\n\n      if (valuesInAxis) {\n        valuesInAxis.sort(function (a, b) {\n          return a - b;\n        });\n        var min = null;\n\n        for (var j = 1; j < valuesInAxis.length; ++j) {\n          var delta = valuesInAxis[j] - valuesInAxis[j - 1];\n\n          if (delta > 0) {\n            min = min === null ? delta : Math.min(min, delta);\n          }\n        }\n\n        axisMinGaps[key] = min;\n      }\n    }\n  }\n\n  return axisMinGaps;\n}\n\nexport function makeColumnLayout(barSeries) {\n  var axisMinGaps = getValueAxesMinGaps(barSeries);\n  var seriesInfoList = [];\n  zrUtil.each(barSeries, function (seriesModel) {\n    var cartesian = seriesModel.coordinateSystem;\n    var baseAxis = cartesian.getBaseAxis();\n    var axisExtent = baseAxis.getExtent();\n    var bandWidth;\n\n    if (baseAxis.type === 'category') {\n      bandWidth = baseAxis.getBandWidth();\n    } else if (baseAxis.type === 'value' || baseAxis.type === 'time') {\n      var key = baseAxis.dim + '_' + baseAxis.index;\n      var minGap = axisMinGaps[key];\n      var extentSpan = Math.abs(axisExtent[1] - axisExtent[0]);\n      var scale = baseAxis.scale.getExtent();\n      var scaleSpan = Math.abs(scale[1] - scale[0]);\n      bandWidth = minGap ? extentSpan / scaleSpan * minGap : extentSpan;\n    } else {\n      var data = seriesModel.getData();\n      bandWidth = Math.abs(axisExtent[1] - axisExtent[0]) / data.count();\n    }\n\n    var barWidth = parsePercent(seriesModel.get('barWidth'), bandWidth);\n    var barMaxWidth = parsePercent(seriesModel.get('barMaxWidth'), bandWidth);\n    var barMinWidth = parsePercent(seriesModel.get('barMinWidth') || 1, bandWidth);\n    var barGap = seriesModel.get('barGap');\n    var barCategoryGap = seriesModel.get('barCategoryGap');\n    seriesInfoList.push({\n      bandWidth: bandWidth,\n      barWidth: barWidth,\n      barMaxWidth: barMaxWidth,\n      barMinWidth: barMinWidth,\n      barGap: barGap,\n      barCategoryGap: barCategoryGap,\n      axisKey: getAxisKey(baseAxis),\n      stackId: getSeriesStackId(seriesModel)\n    });\n  });\n  return doCalBarWidthAndOffset(seriesInfoList);\n}\n\nfunction doCalBarWidthAndOffset(seriesInfoList) {\n  var columnsMap = {};\n  zrUtil.each(seriesInfoList, function (seriesInfo, idx) {\n    var axisKey = seriesInfo.axisKey;\n    var bandWidth = seriesInfo.bandWidth;\n    var columnsOnAxis = columnsMap[axisKey] || {\n      bandWidth: bandWidth,\n      remainedWidth: bandWidth,\n      autoWidthCount: 0,\n      categoryGap: null,\n      gap: '20%',\n      stacks: {}\n    };\n    var stacks = columnsOnAxis.stacks;\n    columnsMap[axisKey] = columnsOnAxis;\n    var stackId = seriesInfo.stackId;\n\n    if (!stacks[stackId]) {\n      columnsOnAxis.autoWidthCount++;\n    }\n\n    stacks[stackId] = stacks[stackId] || {\n      width: 0,\n      maxWidth: 0\n    };\n    var barWidth = seriesInfo.barWidth;\n\n    if (barWidth && !stacks[stackId].width) {\n      stacks[stackId].width = barWidth;\n      barWidth = Math.min(columnsOnAxis.remainedWidth, barWidth);\n      columnsOnAxis.remainedWidth -= barWidth;\n    }\n\n    var barMaxWidth = seriesInfo.barMaxWidth;\n    barMaxWidth && (stacks[stackId].maxWidth = barMaxWidth);\n    var barMinWidth = seriesInfo.barMinWidth;\n    barMinWidth && (stacks[stackId].minWidth = barMinWidth);\n    var barGap = seriesInfo.barGap;\n    barGap != null && (columnsOnAxis.gap = barGap);\n    var barCategoryGap = seriesInfo.barCategoryGap;\n    barCategoryGap != null && (columnsOnAxis.categoryGap = barCategoryGap);\n  });\n  var result = {};\n  zrUtil.each(columnsMap, function (columnsOnAxis, coordSysName) {\n    result[coordSysName] = {};\n    var stacks = columnsOnAxis.stacks;\n    var bandWidth = columnsOnAxis.bandWidth;\n    var categoryGapPercent = columnsOnAxis.categoryGap;\n\n    if (categoryGapPercent == null) {\n      var columnCount = zrUtil.keys(stacks).length;\n      categoryGapPercent = Math.max(35 - columnCount * 4, 15) + '%';\n    }\n\n    var categoryGap = parsePercent(categoryGapPercent, bandWidth);\n    var barGapPercent = parsePercent(columnsOnAxis.gap, 1);\n    var remainedWidth = columnsOnAxis.remainedWidth;\n    var autoWidthCount = columnsOnAxis.autoWidthCount;\n    var autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n    autoWidth = Math.max(autoWidth, 0);\n    zrUtil.each(stacks, function (column) {\n      var maxWidth = column.maxWidth;\n      var minWidth = column.minWidth;\n\n      if (!column.width) {\n        var finalWidth = autoWidth;\n\n        if (maxWidth && maxWidth < finalWidth) {\n          finalWidth = Math.min(maxWidth, remainedWidth);\n        }\n\n        if (minWidth && minWidth > finalWidth) {\n          finalWidth = minWidth;\n        }\n\n        if (finalWidth !== autoWidth) {\n          column.width = finalWidth;\n          remainedWidth -= finalWidth + barGapPercent * finalWidth;\n          autoWidthCount--;\n        }\n      } else {\n        var finalWidth = column.width;\n\n        if (maxWidth) {\n          finalWidth = Math.min(finalWidth, maxWidth);\n        }\n\n        if (minWidth) {\n          finalWidth = Math.max(finalWidth, minWidth);\n        }\n\n        column.width = finalWidth;\n        remainedWidth -= finalWidth + barGapPercent * finalWidth;\n        autoWidthCount--;\n      }\n    });\n    autoWidth = (remainedWidth - categoryGap) / (autoWidthCount + (autoWidthCount - 1) * barGapPercent);\n    autoWidth = Math.max(autoWidth, 0);\n    var widthSum = 0;\n    var lastColumn;\n    zrUtil.each(stacks, function (column, idx) {\n      if (!column.width) {\n        column.width = autoWidth;\n      }\n\n      lastColumn = column;\n      widthSum += column.width * (1 + barGapPercent);\n    });\n\n    if (lastColumn) {\n      widthSum -= lastColumn.width * barGapPercent;\n    }\n\n    var offset = -widthSum / 2;\n    zrUtil.each(stacks, function (column, stackId) {\n      result[coordSysName][stackId] = result[coordSysName][stackId] || {\n        bandWidth: bandWidth,\n        offset: offset,\n        width: column.width\n      };\n      offset += column.width * (1 + barGapPercent);\n    });\n  });\n  return result;\n}\n\nfunction retrieveColumnLayout(barWidthAndOffset, axis, seriesModel) {\n  if (barWidthAndOffset && axis) {\n    var result = barWidthAndOffset[getAxisKey(axis)];\n\n    if (result != null && seriesModel != null) {\n      return result[getSeriesStackId(seriesModel)];\n    }\n\n    return result;\n  }\n}\n\nexport { retrieveColumnLayout };\nexport function layout(seriesType, ecModel) {\n  var seriesModels = prepareLayoutBarSeries(seriesType, ecModel);\n  var barWidthAndOffset = makeColumnLayout(seriesModels);\n  var lastStackCoords = {};\n  zrUtil.each(seriesModels, function (seriesModel) {\n    var data = seriesModel.getData();\n    var cartesian = seriesModel.coordinateSystem;\n    var baseAxis = cartesian.getBaseAxis();\n    var stackId = getSeriesStackId(seriesModel);\n    var columnLayoutInfo = barWidthAndOffset[getAxisKey(baseAxis)][stackId];\n    var columnOffset = columnLayoutInfo.offset;\n    var columnWidth = columnLayoutInfo.width;\n    var valueAxis = cartesian.getOtherAxis(baseAxis);\n    var barMinHeight = seriesModel.get('barMinHeight') || 0;\n    lastStackCoords[stackId] = lastStackCoords[stackId] || [];\n    data.setLayout({\n      bandWidth: columnLayoutInfo.bandWidth,\n      offset: columnOffset,\n      size: columnWidth\n    });\n    var valueDim = data.mapDimension(valueAxis.dim);\n    var baseDim = data.mapDimension(baseAxis.dim);\n    var stacked = isDimensionStacked(data, valueDim);\n    var isValueAxisH = valueAxis.isHorizontal();\n    var valueAxisStart = getValueAxisStart(baseAxis, valueAxis, stacked);\n\n    for (var idx = 0, len = data.count(); idx < len; idx++) {\n      var value = data.get(valueDim, idx);\n      var baseValue = data.get(baseDim, idx);\n      var sign = value >= 0 ? 'p' : 'n';\n      var baseCoord = valueAxisStart;\n\n      if (stacked) {\n        if (!lastStackCoords[stackId][baseValue]) {\n          lastStackCoords[stackId][baseValue] = {\n            p: valueAxisStart,\n            n: valueAxisStart\n          };\n        }\n\n        baseCoord = lastStackCoords[stackId][baseValue][sign];\n      }\n\n      var x = void 0;\n      var y = void 0;\n      var width = void 0;\n      var height = void 0;\n\n      if (isValueAxisH) {\n        var coord = cartesian.dataToPoint([value, baseValue]);\n        x = baseCoord;\n        y = coord[1] + columnOffset;\n        width = coord[0] - valueAxisStart;\n        height = columnWidth;\n\n        if (Math.abs(width) < barMinHeight) {\n          width = (width < 0 ? -1 : 1) * barMinHeight;\n        }\n\n        if (!isNaN(width)) {\n          stacked && (lastStackCoords[stackId][baseValue][sign] += width);\n        }\n      } else {\n        var coord = cartesian.dataToPoint([baseValue, value]);\n        x = coord[0] + columnOffset;\n        y = baseCoord;\n        width = columnWidth;\n        height = coord[1] - valueAxisStart;\n\n        if (Math.abs(height) < barMinHeight) {\n          height = (height <= 0 ? -1 : 1) * barMinHeight;\n        }\n\n        if (!isNaN(height)) {\n          stacked && (lastStackCoords[stackId][baseValue][sign] += height);\n        }\n      }\n\n      data.setItemLayout(idx, {\n        x: x,\n        y: y,\n        width: width,\n        height: height\n      });\n    }\n  });\n}\nexport var largeLayout = {\n  seriesType: 'bar',\n  plan: createRenderPlanner(),\n  reset: function (seriesModel) {\n    if (!isOnCartesian(seriesModel) || !isInLargeMode(seriesModel)) {\n      return;\n    }\n\n    var data = seriesModel.getData();\n    var cartesian = seriesModel.coordinateSystem;\n    var coordLayout = cartesian.master.getRect();\n    var baseAxis = cartesian.getBaseAxis();\n    var valueAxis = cartesian.getOtherAxis(baseAxis);\n    var valueDim = data.mapDimension(valueAxis.dim);\n    var baseDim = data.mapDimension(baseAxis.dim);\n    var valueAxisHorizontal = valueAxis.isHorizontal();\n    var valueDimIdx = valueAxisHorizontal ? 0 : 1;\n    var barWidth = retrieveColumnLayout(makeColumnLayout([seriesModel]), baseAxis, seriesModel).width;\n\n    if (!(barWidth > LARGE_BAR_MIN_WIDTH)) {\n      barWidth = LARGE_BAR_MIN_WIDTH;\n    }\n\n    return {\n      progress: function (params, data) {\n        var count = params.count;\n        var largePoints = new LargeArr(count * 2);\n        var largeBackgroundPoints = new LargeArr(count * 2);\n        var largeDataIndices = new LargeArr(count);\n        var dataIndex;\n        var coord = [];\n        var valuePair = [];\n        var pointsOffset = 0;\n        var idxOffset = 0;\n\n        while ((dataIndex = params.next()) != null) {\n          valuePair[valueDimIdx] = data.get(valueDim, dataIndex);\n          valuePair[1 - valueDimIdx] = data.get(baseDim, dataIndex);\n          coord = cartesian.dataToPoint(valuePair, null, coord);\n          largeBackgroundPoints[pointsOffset] = valueAxisHorizontal ? coordLayout.x + coordLayout.width : coord[0];\n          largePoints[pointsOffset++] = coord[0];\n          largeBackgroundPoints[pointsOffset] = valueAxisHorizontal ? coord[1] : coordLayout.y + coordLayout.height;\n          largePoints[pointsOffset++] = coord[1];\n          largeDataIndices[idxOffset++] = dataIndex;\n        }\n\n        data.setLayout({\n          largePoints: largePoints,\n          largeDataIndices: largeDataIndices,\n          largeBackgroundPoints: largeBackgroundPoints,\n          barWidth: barWidth,\n          valueAxisStart: getValueAxisStart(baseAxis, valueAxis, false),\n          backgroundStart: valueAxisHorizontal ? coordLayout.x : coordLayout.y,\n          valueAxisHorizontal: valueAxisHorizontal\n        });\n      }\n    };\n  }\n};\n\nfunction isOnCartesian(seriesModel) {\n  return seriesModel.coordinateSystem && seriesModel.coordinateSystem.type === 'cartesian2d';\n}\n\nfunction isInLargeMode(seriesModel) {\n  return seriesModel.pipelineContext && seriesModel.pipelineContext.large;\n}\n\nfunction getValueAxisStart(baseAxis, valueAxis, stacked) {\n  return valueAxis.toGlobalCoord(valueAxis.dataToCoord(valueAxis.type === 'log' ? 1 : 0));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as numberUtil from '../util/number';\nimport { ONE_SECOND, ONE_MINUTE, ONE_HOUR, ONE_DAY, ONE_YEAR, format, leveledFormat, getUnitValue, timeUnits, fullLeveledFormatter, getPrimaryTimeUnit, isPrimaryTimeUnit, getDefaultFormatPrecisionOfInterval, fullYearGetterName, monthSetterName, fullYearSetterName, dateSetterName, hoursGetterName, hoursSetterName, minutesSetterName, secondsSetterName, millisecondsSetterName, monthGetterName, dateGetterName, minutesGetterName, secondsGetterName, millisecondsGetterName } from '../util/time';\nimport * as scaleHelper from './helper';\nimport IntervalScale from './Interval';\nimport Scale from './Scale';\nimport { warn } from '../util/log';\nimport { filter, map } from 'zrender/lib/core/util';\n\nvar bisect = function (a, x, lo, hi) {\n  while (lo < hi) {\n    var mid = lo + hi >>> 1;\n\n    if (a[mid][1] < x) {\n      lo = mid + 1;\n    } else {\n      hi = mid;\n    }\n  }\n\n  return lo;\n};\n\nvar TimeScale = function (_super) {\n  __extends(TimeScale, _super);\n\n  function TimeScale(settings) {\n    var _this = _super.call(this, settings) || this;\n\n    _this.type = 'time';\n    return _this;\n  }\n\n  TimeScale.prototype.getLabel = function (tick) {\n    var useUTC = this.getSetting('useUTC');\n    return format(tick.value, fullLeveledFormatter[getDefaultFormatPrecisionOfInterval(getPrimaryTimeUnit(this._minLevelUnit))] || fullLeveledFormatter.second, useUTC, this.getSetting('locale'));\n  };\n\n  TimeScale.prototype.getFormattedLabel = function (tick, idx, labelFormatter) {\n    var isUTC = this.getSetting('useUTC');\n    var lang = this.getSetting('locale');\n    return leveledFormat(tick, idx, labelFormatter, lang, isUTC);\n  };\n\n  TimeScale.prototype.getTicks = function (expandToNicedExtent) {\n    var interval = this._interval;\n    var extent = this._extent;\n    var ticks = [];\n\n    if (!interval) {\n      return ticks;\n    }\n\n    ticks.push({\n      value: extent[0],\n      level: 0\n    });\n    var useUTC = this.getSetting('useUTC');\n    var innerTicks = getIntervalTicks(this._minLevelUnit, this._approxInterval, useUTC, extent);\n    ticks = ticks.concat(innerTicks);\n    ticks.push({\n      value: extent[1],\n      level: 0\n    });\n    return ticks;\n  };\n\n  TimeScale.prototype.niceExtent = function (opt) {\n    var extent = this._extent;\n\n    if (extent[0] === extent[1]) {\n      extent[0] -= ONE_DAY;\n      extent[1] += ONE_DAY;\n    }\n\n    if (extent[1] === -Infinity && extent[0] === Infinity) {\n      var d = new Date();\n      extent[1] = +new Date(d.getFullYear(), d.getMonth(), d.getDate());\n      extent[0] = extent[1] - ONE_DAY;\n    }\n\n    this.niceTicks(opt.splitNumber, opt.minInterval, opt.maxInterval);\n  };\n\n  TimeScale.prototype.niceTicks = function (approxTickNum, minInterval, maxInterval) {\n    approxTickNum = approxTickNum || 10;\n    var extent = this._extent;\n    var span = extent[1] - extent[0];\n    this._approxInterval = span / approxTickNum;\n\n    if (minInterval != null && this._approxInterval < minInterval) {\n      this._approxInterval = minInterval;\n    }\n\n    if (maxInterval != null && this._approxInterval > maxInterval) {\n      this._approxInterval = maxInterval;\n    }\n\n    var scaleIntervalsLen = scaleIntervals.length;\n    var idx = Math.min(bisect(scaleIntervals, this._approxInterval, 0, scaleIntervalsLen), scaleIntervalsLen - 1);\n    this._interval = scaleIntervals[idx][1];\n    this._minLevelUnit = scaleIntervals[Math.max(idx - 1, 0)][0];\n  };\n\n  TimeScale.prototype.parse = function (val) {\n    return typeof val === 'number' ? val : +numberUtil.parseDate(val);\n  };\n\n  TimeScale.prototype.contain = function (val) {\n    return scaleHelper.contain(this.parse(val), this._extent);\n  };\n\n  TimeScale.prototype.normalize = function (val) {\n    return scaleHelper.normalize(this.parse(val), this._extent);\n  };\n\n  TimeScale.prototype.scale = function (val) {\n    return scaleHelper.scale(val, this._extent);\n  };\n\n  TimeScale.type = 'time';\n  return TimeScale;\n}(IntervalScale);\n\nvar scaleIntervals = [['second', ONE_SECOND], ['minute', ONE_MINUTE], ['hour', ONE_HOUR], ['quarter-day', ONE_HOUR * 6], ['half-day', ONE_HOUR * 12], ['day', ONE_DAY * 1.2], ['half-week', ONE_DAY * 3.5], ['week', ONE_DAY * 7], ['month', ONE_DAY * 31], ['quarter', ONE_DAY * 95], ['half-year', ONE_YEAR / 2], ['year', ONE_YEAR]];\n\nfunction isUnitValueSame(unit, valueA, valueB, isUTC) {\n  var dateA = numberUtil.parseDate(valueA);\n  var dateB = numberUtil.parseDate(valueB);\n\n  var isSame = function (unit) {\n    return getUnitValue(dateA, unit, isUTC) === getUnitValue(dateB, unit, isUTC);\n  };\n\n  var isSameYear = function () {\n    return isSame('year');\n  };\n\n  var isSameMonth = function () {\n    return isSameYear() && isSame('month');\n  };\n\n  var isSameDay = function () {\n    return isSameMonth() && isSame('day');\n  };\n\n  var isSameHour = function () {\n    return isSameDay() && isSame('hour');\n  };\n\n  var isSameMinute = function () {\n    return isSameHour() && isSame('minute');\n  };\n\n  var isSameSecond = function () {\n    return isSameMinute() && isSame('second');\n  };\n\n  var isSameMilliSecond = function () {\n    return isSameSecond() && isSame('millisecond');\n  };\n\n  switch (unit) {\n    case 'year':\n      return isSameYear();\n\n    case 'month':\n      return isSameMonth();\n\n    case 'day':\n      return isSameDay();\n\n    case 'hour':\n      return isSameHour();\n\n    case 'minute':\n      return isSameMinute();\n\n    case 'second':\n      return isSameSecond();\n\n    case 'millisecond':\n      return isSameMilliSecond();\n  }\n}\n\nfunction getDateInterval(approxInterval, daysInMonth) {\n  approxInterval /= ONE_DAY;\n  return approxInterval > 16 ? 16 : approxInterval > 7.5 ? 7 : approxInterval > 3.5 ? 4 : approxInterval > 1.5 ? 2 : 1;\n}\n\nfunction getMonthInterval(approxInterval) {\n  var APPROX_ONE_MONTH = 30 * ONE_DAY;\n  approxInterval /= APPROX_ONE_MONTH;\n  return approxInterval > 6 ? 6 : approxInterval > 3 ? 3 : approxInterval > 2 ? 2 : 1;\n}\n\nfunction getHourInterval(approxInterval) {\n  approxInterval /= ONE_HOUR;\n  return approxInterval > 12 ? 12 : approxInterval > 6 ? 6 : approxInterval > 3.5 ? 4 : approxInterval > 2 ? 2 : 1;\n}\n\nfunction getMinutesAndSecondsInterval(approxInterval, isMinutes) {\n  approxInterval /= isMinutes ? ONE_MINUTE : ONE_SECOND;\n  return approxInterval > 30 ? 30 : approxInterval > 20 ? 20 : approxInterval > 15 ? 15 : approxInterval > 10 ? 10 : approxInterval > 5 ? 5 : approxInterval > 2 ? 2 : 1;\n}\n\nfunction getMillisecondsInterval(approxInterval) {\n  return numberUtil.nice(approxInterval, true);\n}\n\nfunction getFirstTimestampOfUnit(date, unitName, isUTC) {\n  var outDate = new Date(date);\n\n  switch (getPrimaryTimeUnit(unitName)) {\n    case 'year':\n    case 'month':\n      outDate[monthSetterName(isUTC)](0);\n\n    case 'day':\n      outDate[dateSetterName(isUTC)](1);\n\n    case 'hour':\n      outDate[hoursSetterName(isUTC)](0);\n\n    case 'minute':\n      outDate[minutesSetterName(isUTC)](0);\n\n    case 'second':\n      outDate[secondsSetterName(isUTC)](0);\n      outDate[millisecondsSetterName(isUTC)](0);\n  }\n\n  return outDate.getTime();\n}\n\nfunction getIntervalTicks(bottomUnitName, approxInterval, isUTC, extent) {\n  var safeLimit = 10000;\n  var unitNames = timeUnits;\n  var iter = 0;\n\n  function addTicksInSpan(interval, minTimestamp, maxTimestamp, getMethodName, setMethodName, isDate, out) {\n    var date = new Date(minTimestamp);\n    var dateTime = minTimestamp;\n    var d = date[getMethodName]();\n\n    while (dateTime < maxTimestamp && dateTime <= extent[1]) {\n      out.push({\n        value: dateTime\n      });\n      d += interval;\n      date[setMethodName](d);\n      dateTime = date.getTime();\n    }\n\n    out.push({\n      value: dateTime,\n      notAdd: true\n    });\n  }\n\n  function addLevelTicks(unitName, lastLevelTicks, levelTicks) {\n    var newAddedTicks = [];\n    var isFirstLevel = !lastLevelTicks.length;\n\n    if (isUnitValueSame(getPrimaryTimeUnit(unitName), extent[0], extent[1], isUTC)) {\n      return;\n    }\n\n    if (isFirstLevel) {\n      lastLevelTicks = [{\n        value: getFirstTimestampOfUnit(new Date(extent[0]), unitName, isUTC)\n      }, {\n        value: extent[1]\n      }];\n    }\n\n    for (var i = 0; i < lastLevelTicks.length - 1; i++) {\n      var startTick = lastLevelTicks[i].value;\n      var endTick = lastLevelTicks[i + 1].value;\n\n      if (startTick === endTick) {\n        continue;\n      }\n\n      var interval = void 0;\n      var getterName = void 0;\n      var setterName = void 0;\n      var isDate = false;\n\n      switch (unitName) {\n        case 'year':\n          interval = Math.max(1, Math.round(approxInterval / ONE_DAY / 365));\n          getterName = fullYearGetterName(isUTC);\n          setterName = fullYearSetterName(isUTC);\n          break;\n\n        case 'half-year':\n        case 'quarter':\n        case 'month':\n          interval = getMonthInterval(approxInterval);\n          getterName = monthGetterName(isUTC);\n          setterName = monthSetterName(isUTC);\n          break;\n\n        case 'week':\n        case 'half-week':\n        case 'day':\n          interval = getDateInterval(approxInterval, 31);\n          getterName = dateGetterName(isUTC);\n          setterName = dateSetterName(isUTC);\n          isDate = true;\n          break;\n\n        case 'half-day':\n        case 'quarter-day':\n        case 'hour':\n          interval = getHourInterval(approxInterval);\n          getterName = hoursGetterName(isUTC);\n          setterName = hoursSetterName(isUTC);\n          break;\n\n        case 'minute':\n          interval = getMinutesAndSecondsInterval(approxInterval, true);\n          getterName = minutesGetterName(isUTC);\n          setterName = minutesSetterName(isUTC);\n          break;\n\n        case 'second':\n          interval = getMinutesAndSecondsInterval(approxInterval, false);\n          getterName = secondsGetterName(isUTC);\n          setterName = secondsSetterName(isUTC);\n          break;\n\n        case 'millisecond':\n          interval = getMillisecondsInterval(approxInterval);\n          getterName = millisecondsGetterName(isUTC);\n          setterName = millisecondsSetterName(isUTC);\n          break;\n      }\n\n      addTicksInSpan(interval, startTick, endTick, getterName, setterName, isDate, newAddedTicks);\n\n      if (unitName === 'year' && levelTicks.length > 1 && i === 0) {\n        levelTicks.unshift({\n          value: levelTicks[0].value - interval\n        });\n      }\n    }\n\n    for (var i = 0; i < newAddedTicks.length; i++) {\n      levelTicks.push(newAddedTicks[i]);\n    }\n\n    return newAddedTicks;\n  }\n\n  var levelsTicks = [];\n  var currentLevelTicks = [];\n  var tickCount = 0;\n  var lastLevelTickCount = 0;\n\n  for (var i = 0; i < unitNames.length && iter++ < safeLimit; ++i) {\n    var primaryTimeUnit = getPrimaryTimeUnit(unitNames[i]);\n\n    if (!isPrimaryTimeUnit(unitNames[i])) {\n      continue;\n    }\n\n    addLevelTicks(unitNames[i], levelsTicks[levelsTicks.length - 1] || [], currentLevelTicks);\n    var nextPrimaryTimeUnit = unitNames[i + 1] ? getPrimaryTimeUnit(unitNames[i + 1]) : null;\n\n    if (primaryTimeUnit !== nextPrimaryTimeUnit) {\n      if (currentLevelTicks.length) {\n        lastLevelTickCount = tickCount;\n        currentLevelTicks.sort(function (a, b) {\n          return a.value - b.value;\n        });\n        var levelTicksRemoveDuplicated = [];\n\n        for (var i_1 = 0; i_1 < currentLevelTicks.length; ++i_1) {\n          var tickValue = currentLevelTicks[i_1].value;\n\n          if (i_1 === 0 || currentLevelTicks[i_1 - 1].value !== tickValue) {\n            levelTicksRemoveDuplicated.push(currentLevelTicks[i_1]);\n\n            if (tickValue >= extent[0] && tickValue <= extent[1]) {\n              tickCount++;\n            }\n          }\n        }\n\n        var targetTickNum = (extent[1] - extent[0]) / approxInterval;\n\n        if (tickCount > targetTickNum * 1.5 && lastLevelTickCount > targetTickNum / 1.5) {\n          break;\n        }\n\n        levelsTicks.push(levelTicksRemoveDuplicated);\n\n        if (tickCount > targetTickNum || bottomUnitName === unitNames[i]) {\n          break;\n        }\n      }\n\n      currentLevelTicks = [];\n    }\n  }\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (iter >= safeLimit) {\n      warn('Exceed safe limit.');\n    }\n  }\n\n  var levelsTicksInExtent = filter(map(levelsTicks, function (levelTicks) {\n    return filter(levelTicks, function (tick) {\n      return tick.value >= extent[0] && tick.value <= extent[1] && !tick.notAdd;\n    });\n  }), function (levelTicks) {\n    return levelTicks.length > 0;\n  });\n  var ticks = [];\n  var maxLevel = levelsTicksInExtent.length - 1;\n\n  for (var i = 0; i < levelsTicksInExtent.length; ++i) {\n    var levelTicks = levelsTicksInExtent[i];\n\n    for (var k = 0; k < levelTicks.length; ++k) {\n      ticks.push({\n        value: levelTicks[k].value,\n        level: maxLevel - i\n      });\n    }\n  }\n\n  ticks.sort(function (a, b) {\n    return a.value - b.value;\n  });\n  var result = [];\n\n  for (var i = 0; i < ticks.length; ++i) {\n    if (i === 0 || ticks[i].value !== ticks[i - 1].value) {\n      result.push(ticks[i]);\n    }\n  }\n\n  return result;\n}\n\nScale.registerClass(TimeScale);\nexport default TimeScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Scale from './Scale';\nimport * as numberUtil from '../util/number';\nimport * as scaleHelper from './helper';\nimport IntervalScale from './Interval';\nvar scaleProto = Scale.prototype;\nvar intervalScaleProto = IntervalScale.prototype;\nvar getPrecisionSafe = numberUtil.getPrecisionSafe;\nvar roundingErrorFix = numberUtil.round;\nvar mathFloor = Math.floor;\nvar mathCeil = Math.ceil;\nvar mathPow = Math.pow;\nvar mathLog = Math.log;\n\nvar LogScale = function (_super) {\n  __extends(LogScale, _super);\n\n  function LogScale() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'log';\n    _this.base = 10;\n    _this._originalScale = new IntervalScale();\n    _this._interval = 0;\n    return _this;\n  }\n\n  LogScale.prototype.getTicks = function (expandToNicedExtent) {\n    var originalScale = this._originalScale;\n    var extent = this._extent;\n    var originalExtent = originalScale.getExtent();\n    var ticks = intervalScaleProto.getTicks.call(this, expandToNicedExtent);\n    return zrUtil.map(ticks, function (tick) {\n      var val = tick.value;\n      var powVal = numberUtil.round(mathPow(this.base, val));\n      powVal = val === extent[0] && this._fixMin ? fixRoundingError(powVal, originalExtent[0]) : powVal;\n      powVal = val === extent[1] && this._fixMax ? fixRoundingError(powVal, originalExtent[1]) : powVal;\n      return {\n        value: powVal\n      };\n    }, this);\n  };\n\n  LogScale.prototype.setExtent = function (start, end) {\n    var base = this.base;\n    start = mathLog(start) / mathLog(base);\n    end = mathLog(end) / mathLog(base);\n    intervalScaleProto.setExtent.call(this, start, end);\n  };\n\n  LogScale.prototype.getExtent = function () {\n    var base = this.base;\n    var extent = scaleProto.getExtent.call(this);\n    extent[0] = mathPow(base, extent[0]);\n    extent[1] = mathPow(base, extent[1]);\n    var originalScale = this._originalScale;\n    var originalExtent = originalScale.getExtent();\n    this._fixMin && (extent[0] = fixRoundingError(extent[0], originalExtent[0]));\n    this._fixMax && (extent[1] = fixRoundingError(extent[1], originalExtent[1]));\n    return extent;\n  };\n\n  LogScale.prototype.unionExtent = function (extent) {\n    this._originalScale.unionExtent(extent);\n\n    var base = this.base;\n    extent[0] = mathLog(extent[0]) / mathLog(base);\n    extent[1] = mathLog(extent[1]) / mathLog(base);\n    scaleProto.unionExtent.call(this, extent);\n  };\n\n  LogScale.prototype.unionExtentFromData = function (data, dim) {\n    this.unionExtent(data.getApproximateExtent(dim));\n  };\n\n  LogScale.prototype.niceTicks = function (approxTickNum) {\n    approxTickNum = approxTickNum || 10;\n    var extent = this._extent;\n    var span = extent[1] - extent[0];\n\n    if (span === Infinity || span <= 0) {\n      return;\n    }\n\n    var interval = numberUtil.quantity(span);\n    var err = approxTickNum / span * interval;\n\n    if (err <= 0.5) {\n      interval *= 10;\n    }\n\n    while (!isNaN(interval) && Math.abs(interval) < 1 && Math.abs(interval) > 0) {\n      interval *= 10;\n    }\n\n    var niceExtent = [numberUtil.round(mathCeil(extent[0] / interval) * interval), numberUtil.round(mathFloor(extent[1] / interval) * interval)];\n    this._interval = interval;\n    this._niceExtent = niceExtent;\n  };\n\n  LogScale.prototype.niceExtent = function (opt) {\n    intervalScaleProto.niceExtent.call(this, opt);\n    this._fixMin = opt.fixMin;\n    this._fixMax = opt.fixMax;\n  };\n\n  LogScale.prototype.parse = function (val) {\n    return val;\n  };\n\n  LogScale.prototype.contain = function (val) {\n    val = mathLog(val) / mathLog(this.base);\n    return scaleHelper.contain(val, this._extent);\n  };\n\n  LogScale.prototype.normalize = function (val) {\n    val = mathLog(val) / mathLog(this.base);\n    return scaleHelper.normalize(val, this._extent);\n  };\n\n  LogScale.prototype.scale = function (val) {\n    val = scaleHelper.scale(val, this._extent);\n    return mathPow(this.base, val);\n  };\n\n  LogScale.type = 'log';\n  return LogScale;\n}(Scale);\n\nvar proto = LogScale.prototype;\nproto.getMinorTicks = intervalScaleProto.getMinorTicks;\nproto.getLabel = intervalScaleProto.getLabel;\n\nfunction fixRoundingError(val, originalVal) {\n  return roundingErrorFix(val, getPrecisionSafe(originalVal));\n}\n\nScale.registerClass(LogScale);\nexport default LogScale;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { assert, isArray, eqNaN, isFunction } from 'zrender/lib/core/util';\nimport { parsePercent } from 'zrender/lib/contain/text';\n\nvar ScaleRawExtentInfo = function () {\n  function ScaleRawExtentInfo(scale, model, originalExtent) {\n    this._prepareParams(scale, model, originalExtent);\n  }\n\n  ScaleRawExtentInfo.prototype._prepareParams = function (scale, model, dataExtent) {\n    if (dataExtent[1] < dataExtent[0]) {\n      dataExtent = [NaN, NaN];\n    }\n\n    this._dataMin = dataExtent[0];\n    this._dataMax = dataExtent[1];\n    var isOrdinal = this._isOrdinal = scale.type === 'ordinal';\n    this._needCrossZero = model.getNeedCrossZero && model.getNeedCrossZero();\n    var modelMinRaw = this._modelMinRaw = model.get('min', true);\n\n    if (isFunction(modelMinRaw)) {\n      this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw({\n        min: dataExtent[0],\n        max: dataExtent[1]\n      }));\n    } else if (modelMinRaw !== 'dataMin') {\n      this._modelMinNum = parseAxisModelMinMax(scale, modelMinRaw);\n    }\n\n    var modelMaxRaw = this._modelMaxRaw = model.get('max', true);\n\n    if (isFunction(modelMaxRaw)) {\n      this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw({\n        min: dataExtent[0],\n        max: dataExtent[1]\n      }));\n    } else if (modelMaxRaw !== 'dataMax') {\n      this._modelMaxNum = parseAxisModelMinMax(scale, modelMaxRaw);\n    }\n\n    if (isOrdinal) {\n      this._axisDataLen = model.getCategories().length;\n    } else {\n      var boundaryGap = model.get('boundaryGap');\n      var boundaryGapArr = isArray(boundaryGap) ? boundaryGap : [boundaryGap || 0, boundaryGap || 0];\n\n      if (typeof boundaryGapArr[0] === 'boolean' || typeof boundaryGapArr[1] === 'boolean') {\n        if (process.env.NODE_ENV !== 'production') {\n          console.warn('Boolean type for boundaryGap is only ' + 'allowed for ordinal axis. Please use string in ' + 'percentage instead, e.g., \"20%\". Currently, ' + 'boundaryGap is set to be 0.');\n        }\n\n        this._boundaryGapInner = [0, 0];\n      } else {\n        this._boundaryGapInner = [parsePercent(boundaryGapArr[0], 1), parsePercent(boundaryGapArr[1], 1)];\n      }\n    }\n  };\n\n  ScaleRawExtentInfo.prototype.calculate = function () {\n    var isOrdinal = this._isOrdinal;\n    var dataMin = this._dataMin;\n    var dataMax = this._dataMax;\n    var axisDataLen = this._axisDataLen;\n    var boundaryGapInner = this._boundaryGapInner;\n    var span = !isOrdinal ? dataMax - dataMin || Math.abs(dataMin) : null;\n    var min = this._modelMinRaw === 'dataMin' ? dataMin : this._modelMinNum;\n    var max = this._modelMaxRaw === 'dataMax' ? dataMax : this._modelMaxNum;\n    var minFixed = min != null;\n    var maxFixed = max != null;\n\n    if (min == null) {\n      min = isOrdinal ? axisDataLen ? 0 : NaN : dataMin - boundaryGapInner[0] * span;\n    }\n\n    if (max == null) {\n      max = isOrdinal ? axisDataLen ? axisDataLen - 1 : NaN : dataMax + boundaryGapInner[1] * span;\n    }\n\n    (min == null || !isFinite(min)) && (min = NaN);\n    (max == null || !isFinite(max)) && (max = NaN);\n\n    if (min > max) {\n      min = NaN;\n      max = NaN;\n    }\n\n    var isBlank = eqNaN(min) || eqNaN(max) || isOrdinal && !axisDataLen;\n\n    if (this._needCrossZero) {\n      if (min > 0 && max > 0 && !minFixed) {\n        min = 0;\n      }\n\n      if (min < 0 && max < 0 && !maxFixed) {\n        max = 0;\n      }\n    }\n\n    var determinedMin = this._determinedMin;\n    var determinedMax = this._determinedMax;\n\n    if (determinedMin != null) {\n      min = determinedMin;\n      minFixed = true;\n    }\n\n    if (determinedMax != null) {\n      max = determinedMax;\n      maxFixed = true;\n    }\n\n    return {\n      min: min,\n      max: max,\n      minFixed: minFixed,\n      maxFixed: maxFixed,\n      isBlank: isBlank\n    };\n  };\n\n  ScaleRawExtentInfo.prototype.modifyDataMinMax = function (minMaxName, val) {\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!this.frozen);\n    }\n\n    this[DATA_MIN_MAX_ATTR[minMaxName]] = val;\n  };\n\n  ScaleRawExtentInfo.prototype.setDeterminedMinMax = function (minMaxName, val) {\n    var attr = DETERMINED_MIN_MAX_ATTR[minMaxName];\n\n    if (process.env.NODE_ENV !== 'production') {\n      assert(!this.frozen && this[attr] == null);\n    }\n\n    this[attr] = val;\n  };\n\n  ScaleRawExtentInfo.prototype.freeze = function () {\n    this.frozen = true;\n  };\n\n  return ScaleRawExtentInfo;\n}();\n\nexport { ScaleRawExtentInfo };\nvar DETERMINED_MIN_MAX_ATTR = {\n  min: '_determinedMin',\n  max: '_determinedMax'\n};\nvar DATA_MIN_MAX_ATTR = {\n  min: '_dataMin',\n  max: '_dataMax'\n};\nexport function ensureScaleRawExtentInfo(scale, model, originalExtent) {\n  var rawExtentInfo = scale.rawExtentInfo;\n\n  if (rawExtentInfo) {\n    return rawExtentInfo;\n  }\n\n  rawExtentInfo = new ScaleRawExtentInfo(scale, model, originalExtent);\n  scale.rawExtentInfo = rawExtentInfo;\n  return rawExtentInfo;\n}\nexport function parseAxisModelMinMax(scale, minMax) {\n  return minMax == null ? null : eqNaN(minMax) ? NaN : scale.parse(minMax);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport OrdinalScale from '../scale/Ordinal';\nimport IntervalScale from '../scale/Interval';\nimport Scale from '../scale/Scale';\nimport { prepareLayoutBarSeries, makeColumnLayout, retrieveColumnLayout } from '../layout/barGrid';\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport TimeScale from '../scale/Time';\nimport LogScale from '../scale/Log';\nimport { getStackedDimension } from '../data/helper/dataStackHelper';\nimport { ensureScaleRawExtentInfo } from './scaleRawExtentInfo';\nexport function getScaleExtent(scale, model) {\n  var scaleType = scale.type;\n  var rawExtentResult = ensureScaleRawExtentInfo(scale, model, scale.getExtent()).calculate();\n  scale.setBlank(rawExtentResult.isBlank);\n  var min = rawExtentResult.min;\n  var max = rawExtentResult.max;\n  var ecModel = model.ecModel;\n\n  if (ecModel && scaleType === 'time') {\n    var barSeriesModels = prepareLayoutBarSeries('bar', ecModel);\n    var isBaseAxisAndHasBarSeries_1 = false;\n    zrUtil.each(barSeriesModels, function (seriesModel) {\n      isBaseAxisAndHasBarSeries_1 = isBaseAxisAndHasBarSeries_1 || seriesModel.getBaseAxis() === model.axis;\n    });\n\n    if (isBaseAxisAndHasBarSeries_1) {\n      var barWidthAndOffset = makeColumnLayout(barSeriesModels);\n      var adjustedScale = adjustScaleForOverflow(min, max, model, barWidthAndOffset);\n      min = adjustedScale.min;\n      max = adjustedScale.max;\n    }\n  }\n\n  return {\n    extent: [min, max],\n    fixMin: rawExtentResult.minFixed,\n    fixMax: rawExtentResult.maxFixed\n  };\n}\n\nfunction adjustScaleForOverflow(min, max, model, barWidthAndOffset) {\n  var axisExtent = model.axis.getExtent();\n  var axisLength = axisExtent[1] - axisExtent[0];\n  var barsOnCurrentAxis = retrieveColumnLayout(barWidthAndOffset, model.axis);\n\n  if (barsOnCurrentAxis === undefined) {\n    return {\n      min: min,\n      max: max\n    };\n  }\n\n  var minOverflow = Infinity;\n  zrUtil.each(barsOnCurrentAxis, function (item) {\n    minOverflow = Math.min(item.offset, minOverflow);\n  });\n  var maxOverflow = -Infinity;\n  zrUtil.each(barsOnCurrentAxis, function (item) {\n    maxOverflow = Math.max(item.offset + item.width, maxOverflow);\n  });\n  minOverflow = Math.abs(minOverflow);\n  maxOverflow = Math.abs(maxOverflow);\n  var totalOverFlow = minOverflow + maxOverflow;\n  var oldRange = max - min;\n  var oldRangePercentOfNew = 1 - (minOverflow + maxOverflow) / axisLength;\n  var overflowBuffer = oldRange / oldRangePercentOfNew - oldRange;\n  max += overflowBuffer * (maxOverflow / totalOverFlow);\n  min -= overflowBuffer * (minOverflow / totalOverFlow);\n  return {\n    min: min,\n    max: max\n  };\n}\n\nexport function niceScaleExtent(scale, model) {\n  var extentInfo = getScaleExtent(scale, model);\n  var extent = extentInfo.extent;\n  var splitNumber = model.get('splitNumber');\n\n  if (scale instanceof LogScale) {\n    scale.base = model.get('logBase');\n  }\n\n  var scaleType = scale.type;\n  scale.setExtent(extent[0], extent[1]);\n  scale.niceExtent({\n    splitNumber: splitNumber,\n    fixMin: extentInfo.fixMin,\n    fixMax: extentInfo.fixMax,\n    minInterval: scaleType === 'interval' || scaleType === 'time' ? model.get('minInterval') : null,\n    maxInterval: scaleType === 'interval' || scaleType === 'time' ? model.get('maxInterval') : null\n  });\n  var interval = model.get('interval');\n\n  if (interval != null) {\n    scale.setInterval && scale.setInterval(interval);\n  }\n}\nexport function createScaleByModel(model, axisType) {\n  axisType = axisType || model.get('type');\n\n  if (axisType) {\n    switch (axisType) {\n      case 'category':\n        return new OrdinalScale({\n          ordinalMeta: model.getOrdinalMeta ? model.getOrdinalMeta() : model.getCategories(),\n          extent: [Infinity, -Infinity]\n        });\n\n      case 'time':\n        return new TimeScale({\n          locale: model.ecModel.getLocaleModel(),\n          useUTC: model.ecModel.get('useUTC')\n        });\n\n      default:\n        return new (Scale.getClass(axisType) || IntervalScale)();\n    }\n  }\n}\nexport function ifAxisCrossZero(axis) {\n  var dataExtent = axis.scale.getExtent();\n  var min = dataExtent[0];\n  var max = dataExtent[1];\n  return !(min > 0 && max > 0 || min < 0 && max < 0);\n}\nexport function makeLabelFormatter(axis) {\n  var labelFormatter = axis.getLabelModel().get('formatter');\n  var categoryTickStart = axis.type === 'category' ? axis.scale.getExtent()[0] : null;\n\n  if (axis.scale.type === 'time') {\n    return function (tpl) {\n      return function (tick, idx) {\n        return axis.scale.getFormattedLabel(tick, idx, tpl);\n      };\n    }(labelFormatter);\n  } else if (typeof labelFormatter === 'string') {\n    return function (tpl) {\n      return function (tick) {\n        var label = axis.scale.getLabel(tick);\n        var text = tpl.replace('{value}', label != null ? label : '');\n        return text;\n      };\n    }(labelFormatter);\n  } else if (typeof labelFormatter === 'function') {\n    return function (cb) {\n      return function (tick, idx) {\n        if (categoryTickStart != null) {\n          idx = tick.value - categoryTickStart;\n        }\n\n        return cb(getAxisRawValue(axis, tick), idx, tick.level != null ? {\n          level: tick.level\n        } : null);\n      };\n    }(labelFormatter);\n  } else {\n    return function (tick) {\n      return axis.scale.getLabel(tick);\n    };\n  }\n}\nexport function getAxisRawValue(axis, tick) {\n  return axis.type === 'category' ? axis.scale.getLabel(tick) : tick.value;\n}\nexport function estimateLabelUnionRect(axis) {\n  var axisModel = axis.model;\n  var scale = axis.scale;\n\n  if (!axisModel.get(['axisLabel', 'show']) || scale.isBlank()) {\n    return;\n  }\n\n  var realNumberScaleTicks;\n  var tickCount;\n  var categoryScaleExtent = scale.getExtent();\n\n  if (scale instanceof OrdinalScale) {\n    tickCount = scale.count();\n  } else {\n    realNumberScaleTicks = scale.getTicks();\n    tickCount = realNumberScaleTicks.length;\n  }\n\n  var axisLabelModel = axis.getLabelModel();\n  var labelFormatter = makeLabelFormatter(axis);\n  var rect;\n  var step = 1;\n\n  if (tickCount > 40) {\n    step = Math.ceil(tickCount / 40);\n  }\n\n  for (var i = 0; i < tickCount; i += step) {\n    var tick = realNumberScaleTicks ? realNumberScaleTicks[i] : {\n      value: categoryScaleExtent[0] + i\n    };\n    var label = labelFormatter(tick, i);\n    var unrotatedSingleRect = axisLabelModel.getTextRect(label);\n    var singleRect = rotateTextRect(unrotatedSingleRect, axisLabelModel.get('rotate') || 0);\n    rect ? rect.union(singleRect) : rect = singleRect;\n  }\n\n  return rect;\n}\n\nfunction rotateTextRect(textRect, rotate) {\n  var rotateRadians = rotate * Math.PI / 180;\n  var beforeWidth = textRect.width;\n  var beforeHeight = textRect.height;\n  var afterWidth = beforeWidth * Math.abs(Math.cos(rotateRadians)) + Math.abs(beforeHeight * Math.sin(rotateRadians));\n  var afterHeight = beforeWidth * Math.abs(Math.sin(rotateRadians)) + Math.abs(beforeHeight * Math.cos(rotateRadians));\n  var rotatedRect = new BoundingRect(textRect.x, textRect.y, afterWidth, afterHeight);\n  return rotatedRect;\n}\n\nexport function getOptionCategoryInterval(model) {\n  var interval = model.get('interval');\n  return interval == null ? 'auto' : interval;\n}\nexport function shouldShowAllLabels(axis) {\n  return axis.type === 'category' && getOptionCategoryInterval(axis.getLabelModel()) === 0;\n}\nexport function getDataDimensionsOnAxis(data, axisDim) {\n  var dataDimMap = {};\n  zrUtil.each(data.mapDimensionsAll(axisDim), function (dataDim) {\n    dataDimMap[getStackedDimension(data, dataDim)] = true;\n  });\n  return zrUtil.keys(dataDimMap);\n}\nexport function unionAxisExtentFromData(dataExtent, data, axisDim) {\n  if (data) {\n    zrUtil.each(getDataDimensionsOnAxis(data, axisDim), function (dim) {\n      var seriesExtent = data.getApproximateExtent(dim);\n      seriesExtent[0] < dataExtent[0] && (dataExtent[0] = seriesExtent[0]);\n      seriesExtent[1] > dataExtent[1] && (dataExtent[1] = seriesExtent[1]);\n    });\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar AxisModelCommonMixin = function () {\n  function AxisModelCommonMixin() {}\n\n  AxisModelCommonMixin.prototype.getNeedCrossZero = function () {\n    var option = this.option;\n    return !option.scale;\n  };\n\n  AxisModelCommonMixin.prototype.getCoordSysModel = function () {\n    return;\n  };\n\n  return AxisModelCommonMixin;\n}();\n\nexport { AxisModelCommonMixin };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport createListFromArray from '../../chart/helper/createListFromArray';\nimport * as axisHelper from '../../coord/axisHelper';\nimport { AxisModelCommonMixin } from '../../coord/axisModelCommonMixin';\nimport Model from '../../model/Model';\nimport { getLayoutRect } from '../../util/layout';\nimport { enableDataStack, isDimensionStacked, getStackedDimension } from '../../data/helper/dataStackHelper';\nimport { getECData } from '../../util/innerStore';\nimport { createTextStyle as innerCreateTextStyle } from '../../label/labelStyle';\nexport function createList(seriesModel) {\n  return createListFromArray(seriesModel.getSource(), seriesModel);\n}\nexport { getLayoutRect };\nexport { default as createDimensions } from '../../data/helper/createDimensions';\nexport var dataStack = {\n  isDimensionStacked: isDimensionStacked,\n  enableDataStack: enableDataStack,\n  getStackedDimension: getStackedDimension\n};\nexport { createSymbol } from '../../util/symbol';\nexport function createScale(dataExtent, option) {\n  var axisModel = option;\n\n  if (!(option instanceof Model)) {\n    axisModel = new Model(option);\n  }\n\n  var scale = axisHelper.createScaleByModel(axisModel);\n  scale.setExtent(dataExtent[0], dataExtent[1]);\n  axisHelper.niceScaleExtent(scale, axisModel);\n  return scale;\n}\nexport function mixinAxisModelCommonMethods(Model) {\n  zrUtil.mixin(Model, AxisModelCommonMixin);\n}\nexport { getECData };\nexport { enableHoverEmphasis } from '../../util/states';\nexport function createTextStyle(textStyleModel, opts) {\n  opts = opts || {};\n  return innerCreateTextStyle(textStyleModel, null, null, opts.state !== 'normal');\n}","import windingLine from './windingLine';\nvar EPSILON = 1e-8;\nfunction isAroundEqual(a, b) {\n    return Math.abs(a - b) < EPSILON;\n}\nexport function contain(points, x, y) {\n    var w = 0;\n    var p = points[0];\n    if (!p) {\n        return false;\n    }\n    for (var i = 1; i < points.length; i++) {\n        var p2 = points[i];\n        w += windingLine(p[0], p[1], p2[0], p2[1], x, y);\n        p = p2;\n    }\n    var p0 = points[0];\n    if (!isAroundEqual(p[0], p0[0]) || !isAroundEqual(p[1], p0[1])) {\n        w += windingLine(p[0], p[1], p0[0], p0[1], x, y);\n    }\n    return w !== 0;\n}\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport * as bbox from 'zrender/lib/core/bbox';\nimport * as vec2 from 'zrender/lib/core/vector';\nimport * as polygonContain from 'zrender/lib/contain/polygon';\n\nvar Region = function () {\n  function Region(name, geometries, cp) {\n    this.name = name;\n    this.geometries = geometries;\n\n    if (!cp) {\n      var rect = this.getBoundingRect();\n      cp = [rect.x + rect.width / 2, rect.y + rect.height / 2];\n    } else {\n      cp = [cp[0], cp[1]];\n    }\n\n    this.center = cp;\n  }\n\n  Region.prototype.getBoundingRect = function () {\n    var rect = this._rect;\n\n    if (rect) {\n      return rect;\n    }\n\n    var MAX_NUMBER = Number.MAX_VALUE;\n    var min = [MAX_NUMBER, MAX_NUMBER];\n    var max = [-MAX_NUMBER, -MAX_NUMBER];\n    var min2 = [];\n    var max2 = [];\n    var geometries = this.geometries;\n    var i = 0;\n\n    for (; i < geometries.length; i++) {\n      if (geometries[i].type !== 'polygon') {\n        continue;\n      }\n\n      var exterior = geometries[i].exterior;\n      bbox.fromPoints(exterior, min2, max2);\n      vec2.min(min, min, min2);\n      vec2.max(max, max, max2);\n    }\n\n    if (i === 0) {\n      min[0] = min[1] = max[0] = max[1] = 0;\n    }\n\n    return this._rect = new BoundingRect(min[0], min[1], max[0] - min[0], max[1] - min[1]);\n  };\n\n  Region.prototype.contain = function (coord) {\n    var rect = this.getBoundingRect();\n    var geometries = this.geometries;\n\n    if (!rect.contain(coord[0], coord[1])) {\n      return false;\n    }\n\n    loopGeo: for (var i = 0, len = geometries.length; i < len; i++) {\n      if (geometries[i].type !== 'polygon') {\n        continue;\n      }\n\n      var exterior = geometries[i].exterior;\n      var interiors = geometries[i].interiors;\n\n      if (polygonContain.contain(exterior, coord[0], coord[1])) {\n        for (var k = 0; k < (interiors ? interiors.length : 0); k++) {\n          if (polygonContain.contain(interiors[k], coord[0], coord[1])) {\n            continue loopGeo;\n          }\n        }\n\n        return true;\n      }\n    }\n\n    return false;\n  };\n\n  Region.prototype.transformTo = function (x, y, width, height) {\n    var rect = this.getBoundingRect();\n    var aspect = rect.width / rect.height;\n\n    if (!width) {\n      width = aspect * height;\n    } else if (!height) {\n      height = width / aspect;\n    }\n\n    var target = new BoundingRect(x, y, width, height);\n    var transform = rect.calculateTransform(target);\n    var geometries = this.geometries;\n\n    for (var i = 0; i < geometries.length; i++) {\n      if (geometries[i].type !== 'polygon') {\n        continue;\n      }\n\n      var exterior = geometries[i].exterior;\n      var interiors = geometries[i].interiors;\n\n      for (var p = 0; p < exterior.length; p++) {\n        vec2.applyTransform(exterior[p], exterior[p], transform);\n      }\n\n      for (var h = 0; h < (interiors ? interiors.length : 0); h++) {\n        for (var p = 0; p < interiors[h].length; p++) {\n          vec2.applyTransform(interiors[h][p], interiors[h][p], transform);\n        }\n      }\n    }\n\n    rect = this._rect;\n    rect.copy(target);\n    this.center = [rect.x + rect.width / 2, rect.y + rect.height / 2];\n  };\n\n  Region.prototype.cloneShallow = function (name) {\n    name == null && (name = this.name);\n    var newRegion = new Region(name, this.geometries, this.center);\n    newRegion._rect = this._rect;\n    newRegion.transformTo = null;\n    return newRegion;\n  };\n\n  return Region;\n}();\n\nexport default Region;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport Region from './Region';\n\nfunction decode(json) {\n  if (!json.UTF8Encoding) {\n    return json;\n  }\n\n  var jsonCompressed = json;\n  var encodeScale = jsonCompressed.UTF8Scale;\n\n  if (encodeScale == null) {\n    encodeScale = 1024;\n  }\n\n  var features = jsonCompressed.features;\n\n  for (var f = 0; f < features.length; f++) {\n    var feature = features[f];\n    var geometry = feature.geometry;\n\n    if (geometry.type === 'Polygon') {\n      var coordinates = geometry.coordinates;\n\n      for (var c = 0; c < coordinates.length; c++) {\n        coordinates[c] = decodePolygon(coordinates[c], geometry.encodeOffsets[c], encodeScale);\n      }\n    } else if (geometry.type === 'MultiPolygon') {\n      var coordinates = geometry.coordinates;\n\n      for (var c = 0; c < coordinates.length; c++) {\n        var coordinate = coordinates[c];\n\n        for (var c2 = 0; c2 < coordinate.length; c2++) {\n          coordinate[c2] = decodePolygon(coordinate[c2], geometry.encodeOffsets[c][c2], encodeScale);\n        }\n      }\n    }\n  }\n\n  jsonCompressed.UTF8Encoding = false;\n  return jsonCompressed;\n}\n\nfunction decodePolygon(coordinate, encodeOffsets, encodeScale) {\n  var result = [];\n  var prevX = encodeOffsets[0];\n  var prevY = encodeOffsets[1];\n\n  for (var i = 0; i < coordinate.length; i += 2) {\n    var x = coordinate.charCodeAt(i) - 64;\n    var y = coordinate.charCodeAt(i + 1) - 64;\n    x = x >> 1 ^ -(x & 1);\n    y = y >> 1 ^ -(y & 1);\n    x += prevX;\n    y += prevY;\n    prevX = x;\n    prevY = y;\n    result.push([x / encodeScale, y / encodeScale]);\n  }\n\n  return result;\n}\n\nexport default function parseGeoJSON(geoJson, nameProperty) {\n  geoJson = decode(geoJson);\n  return zrUtil.map(zrUtil.filter(geoJson.features, function (featureObj) {\n    return featureObj.geometry && featureObj.properties && featureObj.geometry.coordinates.length > 0;\n  }), function (featureObj) {\n    var properties = featureObj.properties;\n    var geo = featureObj.geometry;\n    var geometries = [];\n\n    if (geo.type === 'Polygon') {\n      var coordinates = geo.coordinates;\n      geometries.push({\n        type: 'polygon',\n        exterior: coordinates[0],\n        interiors: coordinates.slice(1)\n      });\n    }\n\n    if (geo.type === 'MultiPolygon') {\n      var coordinates = geo.coordinates;\n      zrUtil.each(coordinates, function (item) {\n        if (item[0]) {\n          geometries.push({\n            type: 'polygon',\n            exterior: item[0],\n            interiors: item.slice(1)\n          });\n        }\n      });\n    }\n\n    var region = new Region(properties[nameProperty || 'name'], geometries, properties.cp);\n    region.properties = properties;\n    return region;\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as textContain from 'zrender/lib/contain/text';\nimport { makeInner } from '../util/model';\nimport { makeLabelFormatter, getOptionCategoryInterval, shouldShowAllLabels } from './axisHelper';\nvar inner = makeInner();\nexport function createAxisLabels(axis) {\n  return axis.type === 'category' ? makeCategoryLabels(axis) : makeRealNumberLabels(axis);\n}\nexport function createAxisTicks(axis, tickModel) {\n  return axis.type === 'category' ? makeCategoryTicks(axis, tickModel) : {\n    ticks: zrUtil.map(axis.scale.getTicks(), function (tick) {\n      return tick.value;\n    })\n  };\n}\n\nfunction makeCategoryLabels(axis) {\n  var labelModel = axis.getLabelModel();\n  var result = makeCategoryLabelsActually(axis, labelModel);\n  return !labelModel.get('show') || axis.scale.isBlank() ? {\n    labels: [],\n    labelCategoryInterval: result.labelCategoryInterval\n  } : result;\n}\n\nfunction makeCategoryLabelsActually(axis, labelModel) {\n  var labelsCache = getListCache(axis, 'labels');\n  var optionLabelInterval = getOptionCategoryInterval(labelModel);\n  var result = listCacheGet(labelsCache, optionLabelInterval);\n\n  if (result) {\n    return result;\n  }\n\n  var labels;\n  var numericLabelInterval;\n\n  if (zrUtil.isFunction(optionLabelInterval)) {\n    labels = makeLabelsByCustomizedCategoryInterval(axis, optionLabelInterval);\n  } else {\n    numericLabelInterval = optionLabelInterval === 'auto' ? makeAutoCategoryInterval(axis) : optionLabelInterval;\n    labels = makeLabelsByNumericCategoryInterval(axis, numericLabelInterval);\n  }\n\n  return listCacheSet(labelsCache, optionLabelInterval, {\n    labels: labels,\n    labelCategoryInterval: numericLabelInterval\n  });\n}\n\nfunction makeCategoryTicks(axis, tickModel) {\n  var ticksCache = getListCache(axis, 'ticks');\n  var optionTickInterval = getOptionCategoryInterval(tickModel);\n  var result = listCacheGet(ticksCache, optionTickInterval);\n\n  if (result) {\n    return result;\n  }\n\n  var ticks;\n  var tickCategoryInterval;\n\n  if (!tickModel.get('show') || axis.scale.isBlank()) {\n    ticks = [];\n  }\n\n  if (zrUtil.isFunction(optionTickInterval)) {\n    ticks = makeLabelsByCustomizedCategoryInterval(axis, optionTickInterval, true);\n  } else if (optionTickInterval === 'auto') {\n    var labelsResult = makeCategoryLabelsActually(axis, axis.getLabelModel());\n    tickCategoryInterval = labelsResult.labelCategoryInterval;\n    ticks = zrUtil.map(labelsResult.labels, function (labelItem) {\n      return labelItem.tickValue;\n    });\n  } else {\n    tickCategoryInterval = optionTickInterval;\n    ticks = makeLabelsByNumericCategoryInterval(axis, tickCategoryInterval, true);\n  }\n\n  return listCacheSet(ticksCache, optionTickInterval, {\n    ticks: ticks,\n    tickCategoryInterval: tickCategoryInterval\n  });\n}\n\nfunction makeRealNumberLabels(axis) {\n  var ticks = axis.scale.getTicks();\n  var labelFormatter = makeLabelFormatter(axis);\n  return {\n    labels: zrUtil.map(ticks, function (tick, idx) {\n      return {\n        formattedLabel: labelFormatter(tick, idx),\n        rawLabel: axis.scale.getLabel(tick),\n        tickValue: tick.value\n      };\n    })\n  };\n}\n\nfunction getListCache(axis, prop) {\n  return inner(axis)[prop] || (inner(axis)[prop] = []);\n}\n\nfunction listCacheGet(cache, key) {\n  for (var i = 0; i < cache.length; i++) {\n    if (cache[i].key === key) {\n      return cache[i].value;\n    }\n  }\n}\n\nfunction listCacheSet(cache, key, value) {\n  cache.push({\n    key: key,\n    value: value\n  });\n  return value;\n}\n\nfunction makeAutoCategoryInterval(axis) {\n  var result = inner(axis).autoInterval;\n  return result != null ? result : inner(axis).autoInterval = axis.calculateCategoryInterval();\n}\n\nexport function calculateCategoryInterval(axis) {\n  var params = fetchAutoCategoryIntervalCalculationParams(axis);\n  var labelFormatter = makeLabelFormatter(axis);\n  var rotation = (params.axisRotate - params.labelRotate) / 180 * Math.PI;\n  var ordinalScale = axis.scale;\n  var ordinalExtent = ordinalScale.getExtent();\n  var tickCount = ordinalScale.count();\n\n  if (ordinalExtent[1] - ordinalExtent[0] < 1) {\n    return 0;\n  }\n\n  var step = 1;\n\n  if (tickCount > 40) {\n    step = Math.max(1, Math.floor(tickCount / 40));\n  }\n\n  var tickValue = ordinalExtent[0];\n  var unitSpan = axis.dataToCoord(tickValue + 1) - axis.dataToCoord(tickValue);\n  var unitW = Math.abs(unitSpan * Math.cos(rotation));\n  var unitH = Math.abs(unitSpan * Math.sin(rotation));\n  var maxW = 0;\n  var maxH = 0;\n\n  for (; tickValue <= ordinalExtent[1]; tickValue += step) {\n    var width = 0;\n    var height = 0;\n    var rect = textContain.getBoundingRect(labelFormatter({\n      value: tickValue\n    }), params.font, 'center', 'top');\n    width = rect.width * 1.3;\n    height = rect.height * 1.3;\n    maxW = Math.max(maxW, width, 7);\n    maxH = Math.max(maxH, height, 7);\n  }\n\n  var dw = maxW / unitW;\n  var dh = maxH / unitH;\n  isNaN(dw) && (dw = Infinity);\n  isNaN(dh) && (dh = Infinity);\n  var interval = Math.max(0, Math.floor(Math.min(dw, dh)));\n  var cache = inner(axis.model);\n  var axisExtent = axis.getExtent();\n  var lastAutoInterval = cache.lastAutoInterval;\n  var lastTickCount = cache.lastTickCount;\n\n  if (lastAutoInterval != null && lastTickCount != null && Math.abs(lastAutoInterval - interval) <= 1 && Math.abs(lastTickCount - tickCount) <= 1 && lastAutoInterval > interval && cache.axisExtent0 === axisExtent[0] && cache.axisExtent1 === axisExtent[1]) {\n    interval = lastAutoInterval;\n  } else {\n    cache.lastTickCount = tickCount;\n    cache.lastAutoInterval = interval;\n    cache.axisExtent0 = axisExtent[0];\n    cache.axisExtent1 = axisExtent[1];\n  }\n\n  return interval;\n}\n\nfunction fetchAutoCategoryIntervalCalculationParams(axis) {\n  var labelModel = axis.getLabelModel();\n  return {\n    axisRotate: axis.getRotate ? axis.getRotate() : axis.isHorizontal && !axis.isHorizontal() ? 90 : 0,\n    labelRotate: labelModel.get('rotate') || 0,\n    font: labelModel.getFont()\n  };\n}\n\nfunction makeLabelsByNumericCategoryInterval(axis, categoryInterval, onlyTick) {\n  var labelFormatter = makeLabelFormatter(axis);\n  var ordinalScale = axis.scale;\n  var ordinalExtent = ordinalScale.getExtent();\n  var labelModel = axis.getLabelModel();\n  var result = [];\n  var step = Math.max((categoryInterval || 0) + 1, 1);\n  var startTick = ordinalExtent[0];\n  var tickCount = ordinalScale.count();\n\n  if (startTick !== 0 && step > 1 && tickCount / step > 2) {\n    startTick = Math.round(Math.ceil(startTick / step) * step);\n  }\n\n  var showAllLabel = shouldShowAllLabels(axis);\n  var includeMinLabel = labelModel.get('showMinLabel') || showAllLabel;\n  var includeMaxLabel = labelModel.get('showMaxLabel') || showAllLabel;\n\n  if (includeMinLabel && startTick !== ordinalExtent[0]) {\n    addItem(ordinalExtent[0]);\n  }\n\n  var tickValue = startTick;\n\n  for (; tickValue <= ordinalExtent[1]; tickValue += step) {\n    addItem(tickValue);\n  }\n\n  if (includeMaxLabel && tickValue - step !== ordinalExtent[1]) {\n    addItem(ordinalExtent[1]);\n  }\n\n  function addItem(tickValue) {\n    var tickObj = {\n      value: tickValue\n    };\n    result.push(onlyTick ? tickValue : {\n      formattedLabel: labelFormatter(tickObj),\n      rawLabel: ordinalScale.getLabel(tickObj),\n      tickValue: tickValue\n    });\n  }\n\n  return result;\n}\n\nfunction makeLabelsByCustomizedCategoryInterval(axis, categoryInterval, onlyTick) {\n  var ordinalScale = axis.scale;\n  var labelFormatter = makeLabelFormatter(axis);\n  var result = [];\n  zrUtil.each(ordinalScale.getTicks(), function (tick) {\n    var rawLabel = ordinalScale.getLabel(tick);\n    var tickValue = tick.value;\n\n    if (categoryInterval(tick.value, rawLabel)) {\n      result.push(onlyTick ? tickValue : {\n        formattedLabel: labelFormatter(tick),\n        rawLabel: rawLabel,\n        tickValue: tickValue\n      });\n    }\n  });\n  return result;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { each, map } from 'zrender/lib/core/util';\nimport { linearMap, getPixelPrecision, round } from '../util/number';\nimport { createAxisTicks, createAxisLabels, calculateCategoryInterval } from './axisTickLabelBuilder';\nvar NORMALIZED_EXTENT = [0, 1];\n\nvar Axis = function () {\n  function Axis(dim, scale, extent) {\n    this.onBand = false;\n    this.inverse = false;\n    this.dim = dim;\n    this.scale = scale;\n    this._extent = extent || [0, 0];\n  }\n\n  Axis.prototype.contain = function (coord) {\n    var extent = this._extent;\n    var min = Math.min(extent[0], extent[1]);\n    var max = Math.max(extent[0], extent[1]);\n    return coord >= min && coord <= max;\n  };\n\n  Axis.prototype.containData = function (data) {\n    return this.scale.contain(data);\n  };\n\n  Axis.prototype.getExtent = function () {\n    return this._extent.slice();\n  };\n\n  Axis.prototype.getPixelPrecision = function (dataExtent) {\n    return getPixelPrecision(dataExtent || this.scale.getExtent(), this._extent);\n  };\n\n  Axis.prototype.setExtent = function (start, end) {\n    var extent = this._extent;\n    extent[0] = start;\n    extent[1] = end;\n  };\n\n  Axis.prototype.dataToCoord = function (data, clamp) {\n    var extent = this._extent;\n    var scale = this.scale;\n    data = scale.normalize(data);\n\n    if (this.onBand && scale.type === 'ordinal') {\n      extent = extent.slice();\n      fixExtentWithBands(extent, scale.count());\n    }\n\n    return linearMap(data, NORMALIZED_EXTENT, extent, clamp);\n  };\n\n  Axis.prototype.coordToData = function (coord, clamp) {\n    var extent = this._extent;\n    var scale = this.scale;\n\n    if (this.onBand && scale.type === 'ordinal') {\n      extent = extent.slice();\n      fixExtentWithBands(extent, scale.count());\n    }\n\n    var t = linearMap(coord, extent, NORMALIZED_EXTENT, clamp);\n    return this.scale.scale(t);\n  };\n\n  Axis.prototype.pointToData = function (point, clamp) {\n    return;\n  };\n\n  Axis.prototype.getTicksCoords = function (opt) {\n    opt = opt || {};\n    var tickModel = opt.tickModel || this.getTickModel();\n    var result = createAxisTicks(this, tickModel);\n    var ticks = result.ticks;\n    var ticksCoords = map(ticks, function (tickVal) {\n      return {\n        coord: this.dataToCoord(this.scale.type === 'ordinal' ? this.scale.getRawOrdinalNumber(tickVal) : tickVal),\n        tickValue: tickVal\n      };\n    }, this);\n    var alignWithLabel = tickModel.get('alignWithLabel');\n    fixOnBandTicksCoords(this, ticksCoords, alignWithLabel, opt.clamp);\n    return ticksCoords;\n  };\n\n  Axis.prototype.getMinorTicksCoords = function () {\n    if (this.scale.type === 'ordinal') {\n      return [];\n    }\n\n    var minorTickModel = this.model.getModel('minorTick');\n    var splitNumber = minorTickModel.get('splitNumber');\n\n    if (!(splitNumber > 0 && splitNumber < 100)) {\n      splitNumber = 5;\n    }\n\n    var minorTicks = this.scale.getMinorTicks(splitNumber);\n    var minorTicksCoords = map(minorTicks, function (minorTicksGroup) {\n      return map(minorTicksGroup, function (minorTick) {\n        return {\n          coord: this.dataToCoord(minorTick),\n          tickValue: minorTick\n        };\n      }, this);\n    }, this);\n    return minorTicksCoords;\n  };\n\n  Axis.prototype.getViewLabels = function () {\n    return createAxisLabels(this).labels;\n  };\n\n  Axis.prototype.getLabelModel = function () {\n    return this.model.getModel('axisLabel');\n  };\n\n  Axis.prototype.getTickModel = function () {\n    return this.model.getModel('axisTick');\n  };\n\n  Axis.prototype.getBandWidth = function () {\n    var axisExtent = this._extent;\n    var dataExtent = this.scale.getExtent();\n    var len = dataExtent[1] - dataExtent[0] + (this.onBand ? 1 : 0);\n    len === 0 && (len = 1);\n    var size = Math.abs(axisExtent[1] - axisExtent[0]);\n    return Math.abs(size) / len;\n  };\n\n  Axis.prototype.calculateCategoryInterval = function () {\n    return calculateCategoryInterval(this);\n  };\n\n  return Axis;\n}();\n\nfunction fixExtentWithBands(extent, nTick) {\n  var size = extent[1] - extent[0];\n  var len = nTick;\n  var margin = size / len / 2;\n  extent[0] += margin;\n  extent[1] -= margin;\n}\n\nfunction fixOnBandTicksCoords(axis, ticksCoords, alignWithLabel, clamp) {\n  var ticksLen = ticksCoords.length;\n\n  if (!axis.onBand || alignWithLabel || !ticksLen) {\n    return;\n  }\n\n  var axisExtent = axis.getExtent();\n  var last;\n  var diffSize;\n\n  if (ticksLen === 1) {\n    ticksCoords[0].coord = axisExtent[0];\n    last = ticksCoords[1] = {\n      coord: axisExtent[0]\n    };\n  } else {\n    var crossLen = ticksCoords[ticksLen - 1].tickValue - ticksCoords[0].tickValue;\n    var shift_1 = (ticksCoords[ticksLen - 1].coord - ticksCoords[0].coord) / crossLen;\n    each(ticksCoords, function (ticksItem) {\n      ticksItem.coord -= shift_1 / 2;\n    });\n    var dataExtent = axis.scale.getExtent();\n    diffSize = 1 + dataExtent[1] - ticksCoords[ticksLen - 1].tickValue;\n    last = {\n      coord: ticksCoords[ticksLen - 1].coord + shift_1 * diffSize\n    };\n    ticksCoords.push(last);\n  }\n\n  var inverse = axisExtent[0] > axisExtent[1];\n\n  if (littleThan(ticksCoords[0].coord, axisExtent[0])) {\n    clamp ? ticksCoords[0].coord = axisExtent[0] : ticksCoords.shift();\n  }\n\n  if (clamp && littleThan(axisExtent[0], ticksCoords[0].coord)) {\n    ticksCoords.unshift({\n      coord: axisExtent[0]\n    });\n  }\n\n  if (littleThan(axisExtent[1], last.coord)) {\n    clamp ? last.coord = axisExtent[1] : ticksCoords.pop();\n  }\n\n  if (clamp && littleThan(last.coord, axisExtent[1])) {\n    ticksCoords.push({\n      coord: axisExtent[1]\n    });\n  }\n\n  function littleThan(a, b) {\n    a = round(a);\n    b = round(b);\n    return inverse ? a > b : a < b;\n  }\n}\n\nexport default Axis;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ComponentModel from '../model/Component';\nimport ComponentView from '../view/Component';\nimport SeriesModel from '../model/Series';\nimport ChartView from '../view/Chart';\nimport * as zrender_1 from 'zrender/lib/zrender';\nexport { zrender_1 as zrender };\nimport * as matrix_1 from 'zrender/lib/core/matrix';\nexport { matrix_1 as matrix };\nimport * as vector_1 from 'zrender/lib/core/vector';\nexport { vector_1 as vector };\nimport * as zrUtil_1 from 'zrender/lib/core/util';\nexport { zrUtil_1 as zrUtil };\nimport * as color_1 from 'zrender/lib/tool/color';\nexport { color_1 as color };\nexport { throttle } from '../util/throttle';\nimport * as helper_1 from './api/helper';\nexport { helper_1 as helper };\nexport { use } from '../extension';\nexport { default as parseGeoJSON } from '../coord/geo/parseGeoJson';\nexport { default as parseGeoJson } from '../coord/geo/parseGeoJson';\nimport * as number_1 from './api/number';\nexport { number_1 as number };\nimport * as time_1 from './api/time';\nexport { time_1 as time };\nimport * as graphic_1 from './api/graphic';\nexport { graphic_1 as graphic };\nimport * as format_1 from './api/format';\nexport { format_1 as format };\nimport * as util_1 from './api/util';\nexport { util_1 as util };\nexport { default as env } from 'zrender/lib/core/env';\nexport { default as List } from '../data/List';\nexport { default as Model } from '../model/Model';\nexport { default as Axis } from '../coord/Axis';\nexport { ComponentModel, ComponentView, SeriesModel, ChartView };\nexport { brushSingle as innerDrawElementOnCanvas } from 'zrender/lib/canvas/graphic';\nexport function extendComponentModel(proto) {\n  var Model = ComponentModel.extend(proto);\n  ComponentModel.registerClass(Model);\n  return Model;\n}\nexport function extendComponentView(proto) {\n  var View = ComponentView.extend(proto);\n  ComponentView.registerClass(View);\n  return View;\n}\nexport function extendSeriesModel(proto) {\n  var Model = SeriesModel.extend(proto);\n  SeriesModel.registerClass(Model);\n  return Model;\n}\nexport function extendChartView(proto) {\n  var View = ChartView.extend(proto);\n  ChartView.registerClass(View);\n  return View;\n}","import { __extends } from \"tslib\";\nimport * as util from '../core/util';\nimport { devicePixelRatio } from '../config';\nimport Eventful from '../core/Eventful';\nimport Element from '../Element';\nimport { getCanvasGradient } from './helper';\nimport { createCanvasPattern } from './graphic';\nimport BoundingRect from '../core/BoundingRect';\nfunction returnFalse() {\n    return false;\n}\nfunction createDom(id, painter, dpr) {\n    var newDom = util.createCanvas();\n    var width = painter.getWidth();\n    var height = painter.getHeight();\n    var newDomStyle = newDom.style;\n    if (newDomStyle) {\n        newDomStyle.position = 'absolute';\n        newDomStyle.left = '0';\n        newDomStyle.top = '0';\n        newDomStyle.width = width + 'px';\n        newDomStyle.height = height + 'px';\n        newDom.setAttribute('data-zr-dom-id', id);\n    }\n    newDom.width = width * dpr;\n    newDom.height = height * dpr;\n    return newDom;\n}\n;\nvar Layer = (function (_super) {\n    __extends(Layer, _super);\n    function Layer(id, painter, dpr) {\n        var _this = _super.call(this) || this;\n        _this.motionBlur = false;\n        _this.lastFrameAlpha = 0.7;\n        _this.dpr = 1;\n        _this.virtual = false;\n        _this.config = {};\n        _this.incremental = false;\n        _this.zlevel = 0;\n        _this.maxRepaintRectCount = 5;\n        _this.__dirty = true;\n        _this.__firstTimePaint = true;\n        _this.__used = false;\n        _this.__drawIndex = 0;\n        _this.__startIndex = 0;\n        _this.__endIndex = 0;\n        _this.__prevStartIndex = null;\n        _this.__prevEndIndex = null;\n        var dom;\n        dpr = dpr || devicePixelRatio;\n        if (typeof id === 'string') {\n            dom = createDom(id, painter, dpr);\n        }\n        else if (util.isObject(id)) {\n            dom = id;\n            id = dom.id;\n        }\n        _this.id = id;\n        _this.dom = dom;\n        var domStyle = dom.style;\n        if (domStyle) {\n            dom.onselectstart = returnFalse;\n            domStyle.webkitUserSelect = 'none';\n            domStyle.userSelect = 'none';\n            domStyle.webkitTapHighlightColor = 'rgba(0,0,0,0)';\n            domStyle['-webkit-touch-callout'] = 'none';\n            domStyle.padding = '0';\n            domStyle.margin = '0';\n            domStyle.borderWidth = '0';\n        }\n        _this.domBack = null;\n        _this.ctxBack = null;\n        _this.painter = painter;\n        _this.config = null;\n        _this.dpr = dpr;\n        return _this;\n    }\n    Layer.prototype.getElementCount = function () {\n        return this.__endIndex - this.__startIndex;\n    };\n    Layer.prototype.afterBrush = function () {\n        this.__prevStartIndex = this.__startIndex;\n        this.__prevEndIndex = this.__endIndex;\n    };\n    Layer.prototype.initContext = function () {\n        this.ctx = this.dom.getContext('2d');\n        this.ctx.dpr = this.dpr;\n    };\n    Layer.prototype.setUnpainted = function () {\n        this.__firstTimePaint = true;\n    };\n    Layer.prototype.createBackBuffer = function () {\n        var dpr = this.dpr;\n        this.domBack = createDom('back-' + this.id, this.painter, dpr);\n        this.ctxBack = this.domBack.getContext('2d');\n        if (dpr !== 1) {\n            this.ctxBack.scale(dpr, dpr);\n        }\n    };\n    Layer.prototype.createRepaintRects = function (displayList, prevList, viewWidth, viewHeight) {\n        if (this.__firstTimePaint) {\n            this.__firstTimePaint = false;\n            return null;\n        }\n        var mergedRepaintRects = [];\n        var maxRepaintRectCount = this.maxRepaintRectCount;\n        var full = false;\n        var pendingRect = new BoundingRect(0, 0, 0, 0);\n        function addRectToMergePool(rect) {\n            if (!rect.isFinite() || rect.isZero()) {\n                return;\n            }\n            if (mergedRepaintRects.length === 0) {\n                var boundingRect = new BoundingRect(0, 0, 0, 0);\n                boundingRect.copy(rect);\n                mergedRepaintRects.push(boundingRect);\n            }\n            else {\n                var isMerged = false;\n                var minDeltaArea = Infinity;\n                var bestRectToMergeIdx = 0;\n                for (var i = 0; i < mergedRepaintRects.length; ++i) {\n                    var mergedRect = mergedRepaintRects[i];\n                    if (mergedRect.intersect(rect)) {\n                        var pendingRect_1 = new BoundingRect(0, 0, 0, 0);\n                        pendingRect_1.copy(mergedRect);\n                        pendingRect_1.union(rect);\n                        mergedRepaintRects[i] = pendingRect_1;\n                        isMerged = true;\n                        break;\n                    }\n                    else if (full) {\n                        pendingRect.copy(rect);\n                        pendingRect.union(mergedRect);\n                        var aArea = rect.width * rect.height;\n                        var bArea = mergedRect.width * mergedRect.height;\n                        var pendingArea = pendingRect.width * pendingRect.height;\n                        var deltaArea = pendingArea - aArea - bArea;\n                        if (deltaArea < minDeltaArea) {\n                            minDeltaArea = deltaArea;\n                            bestRectToMergeIdx = i;\n                        }\n                    }\n                }\n                if (full) {\n                    mergedRepaintRects[bestRectToMergeIdx].union(rect);\n                    isMerged = true;\n                }\n                if (!isMerged) {\n                    var boundingRect = new BoundingRect(0, 0, 0, 0);\n                    boundingRect.copy(rect);\n                    mergedRepaintRects.push(boundingRect);\n                }\n                if (!full) {\n                    full = mergedRepaintRects.length >= maxRepaintRectCount;\n                }\n            }\n        }\n        for (var i = this.__startIndex; i < this.__endIndex; ++i) {\n            var el = displayList[i];\n            if (el) {\n                var shouldPaint = el.shouldBePainted(viewWidth, viewHeight, true, true);\n                var prevRect = el.__isRendered && ((el.__dirty & Element.REDARAW_BIT) || !shouldPaint)\n                    ? el.getPrevPaintRect()\n                    : null;\n                if (prevRect) {\n                    addRectToMergePool(prevRect);\n                }\n                var curRect = shouldPaint && ((el.__dirty & Element.REDARAW_BIT) || !el.__isRendered)\n                    ? el.getPaintRect()\n                    : null;\n                if (curRect) {\n                    addRectToMergePool(curRect);\n                }\n            }\n        }\n        for (var i = this.__prevStartIndex; i < this.__prevEndIndex; ++i) {\n            var el = prevList[i];\n            var shouldPaint = el.shouldBePainted(viewWidth, viewHeight, true, true);\n            if (el && (!shouldPaint || !el.__zr) && el.__isRendered) {\n                var prevRect = el.getPrevPaintRect();\n                if (prevRect) {\n                    addRectToMergePool(prevRect);\n                }\n            }\n        }\n        var hasIntersections;\n        do {\n            hasIntersections = false;\n            for (var i = 0; i < mergedRepaintRects.length;) {\n                if (mergedRepaintRects[i].isZero()) {\n                    mergedRepaintRects.splice(i, 1);\n                    continue;\n                }\n                for (var j = i + 1; j < mergedRepaintRects.length;) {\n                    if (mergedRepaintRects[i].intersect(mergedRepaintRects[j])) {\n                        hasIntersections = true;\n                        mergedRepaintRects[i].union(mergedRepaintRects[j]);\n                        mergedRepaintRects.splice(j, 1);\n                    }\n                    else {\n                        j++;\n                    }\n                }\n                i++;\n            }\n        } while (hasIntersections);\n        this._paintRects = mergedRepaintRects;\n        return mergedRepaintRects;\n    };\n    Layer.prototype.debugGetPaintRects = function () {\n        return (this._paintRects || []).slice();\n    };\n    Layer.prototype.resize = function (width, height) {\n        var dpr = this.dpr;\n        var dom = this.dom;\n        var domStyle = dom.style;\n        var domBack = this.domBack;\n        if (domStyle) {\n            domStyle.width = width + 'px';\n            domStyle.height = height + 'px';\n        }\n        dom.width = width * dpr;\n        dom.height = height * dpr;\n        if (domBack) {\n            domBack.width = width * dpr;\n            domBack.height = height * dpr;\n            if (dpr !== 1) {\n                this.ctxBack.scale(dpr, dpr);\n            }\n        }\n    };\n    Layer.prototype.clear = function (clearAll, clearColor, repaintRects) {\n        var dom = this.dom;\n        var ctx = this.ctx;\n        var width = dom.width;\n        var height = dom.height;\n        clearColor = clearColor || this.clearColor;\n        var haveMotionBLur = this.motionBlur && !clearAll;\n        var lastFrameAlpha = this.lastFrameAlpha;\n        var dpr = this.dpr;\n        var self = this;\n        if (haveMotionBLur) {\n            if (!this.domBack) {\n                this.createBackBuffer();\n            }\n            this.ctxBack.globalCompositeOperation = 'copy';\n            this.ctxBack.drawImage(dom, 0, 0, width / dpr, height / dpr);\n        }\n        var domBack = this.domBack;\n        function doClear(x, y, width, height) {\n            ctx.clearRect(x, y, width, height);\n            if (clearColor && clearColor !== 'transparent') {\n                var clearColorGradientOrPattern = void 0;\n                if (util.isGradientObject(clearColor)) {\n                    clearColorGradientOrPattern = clearColor.__canvasGradient\n                        || getCanvasGradient(ctx, clearColor, {\n                            x: 0,\n                            y: 0,\n                            width: width,\n                            height: height\n                        });\n                    clearColor.__canvasGradient = clearColorGradientOrPattern;\n                }\n                else if (util.isPatternObject(clearColor)) {\n                    clearColorGradientOrPattern = createCanvasPattern(ctx, clearColor, {\n                        dirty: function () {\n                            self.setUnpainted();\n                            self.__painter.refresh();\n                        }\n                    });\n                }\n                ctx.save();\n                ctx.fillStyle = clearColorGradientOrPattern || clearColor;\n                ctx.fillRect(x, y, width, height);\n                ctx.restore();\n            }\n            if (haveMotionBLur) {\n                ctx.save();\n                ctx.globalAlpha = lastFrameAlpha;\n                ctx.drawImage(domBack, x, y, width, height);\n                ctx.restore();\n            }\n        }\n        ;\n        if (!repaintRects || haveMotionBLur) {\n            doClear(0, 0, width, height);\n        }\n        else if (repaintRects.length) {\n            util.each(repaintRects, function (rect) {\n                doClear(rect.x * dpr, rect.y * dpr, rect.width * dpr, rect.height * dpr);\n            });\n        }\n    };\n    return Layer;\n}(Eventful));\nexport default Layer;\n","import { devicePixelRatio } from '../config';\nimport * as util from '../core/util';\nimport Layer from './Layer';\nimport requestAnimationFrame from '../animation/requestAnimationFrame';\nimport ZRImage from '../graphic/Image';\nimport env from '../core/env';\nimport { brush, brushSingle } from './graphic';\nimport Element from '../Element';\nvar HOVER_LAYER_ZLEVEL = 1e5;\nvar CANVAS_ZLEVEL = 314159;\nvar EL_AFTER_INCREMENTAL_INC = 0.01;\nvar INCREMENTAL_INC = 0.001;\nfunction parseInt10(val) {\n    return parseInt(val, 10);\n}\nfunction isLayerValid(layer) {\n    if (!layer) {\n        return false;\n    }\n    if (layer.__builtin__) {\n        return true;\n    }\n    if (typeof (layer.resize) !== 'function'\n        || typeof (layer.refresh) !== 'function') {\n        return false;\n    }\n    return true;\n}\nfunction createRoot(width, height) {\n    var domRoot = document.createElement('div');\n    domRoot.style.cssText = [\n        'position:relative',\n        'width:' + width + 'px',\n        'height:' + height + 'px',\n        'padding:0',\n        'margin:0',\n        'border-width:0'\n    ].join(';') + ';';\n    return domRoot;\n}\nvar CanvasPainter = (function () {\n    function CanvasPainter(root, storage, opts, id) {\n        this.type = 'canvas';\n        this._zlevelList = [];\n        this._prevDisplayList = [];\n        this._layers = {};\n        this._layerConfig = {};\n        this._needsManuallyCompositing = false;\n        this.type = 'canvas';\n        var singleCanvas = !root.nodeName\n            || root.nodeName.toUpperCase() === 'CANVAS';\n        this._opts = opts = util.extend({}, opts || {});\n        this.dpr = opts.devicePixelRatio || devicePixelRatio;\n        this._singleCanvas = singleCanvas;\n        this.root = root;\n        var rootStyle = root.style;\n        if (rootStyle) {\n            rootStyle.webkitTapHighlightColor = 'transparent';\n            rootStyle.webkitUserSelect = 'none';\n            rootStyle.userSelect = 'none';\n            rootStyle['-webkit-touch-callout'] = 'none';\n            root.innerHTML = '';\n        }\n        this.storage = storage;\n        var zlevelList = this._zlevelList;\n        this._prevDisplayList = [];\n        var layers = this._layers;\n        if (!singleCanvas) {\n            this._width = this._getSize(0);\n            this._height = this._getSize(1);\n            var domRoot = this._domRoot = createRoot(this._width, this._height);\n            root.appendChild(domRoot);\n        }\n        else {\n            var rootCanvas = root;\n            var width = rootCanvas.width;\n            var height = rootCanvas.height;\n            if (opts.width != null) {\n                width = opts.width;\n            }\n            if (opts.height != null) {\n                height = opts.height;\n            }\n            this.dpr = opts.devicePixelRatio || 1;\n            rootCanvas.width = width * this.dpr;\n            rootCanvas.height = height * this.dpr;\n            this._width = width;\n            this._height = height;\n            var mainLayer = new Layer(rootCanvas, this, this.dpr);\n            mainLayer.__builtin__ = true;\n            mainLayer.initContext();\n            layers[CANVAS_ZLEVEL] = mainLayer;\n            mainLayer.zlevel = CANVAS_ZLEVEL;\n            zlevelList.push(CANVAS_ZLEVEL);\n            this._domRoot = root;\n        }\n    }\n    CanvasPainter.prototype.getType = function () {\n        return 'canvas';\n    };\n    CanvasPainter.prototype.isSingleCanvas = function () {\n        return this._singleCanvas;\n    };\n    CanvasPainter.prototype.getViewportRoot = function () {\n        return this._domRoot;\n    };\n    CanvasPainter.prototype.getViewportRootOffset = function () {\n        var viewportRoot = this.getViewportRoot();\n        if (viewportRoot) {\n            return {\n                offsetLeft: viewportRoot.offsetLeft || 0,\n                offsetTop: viewportRoot.offsetTop || 0\n            };\n        }\n    };\n    CanvasPainter.prototype.refresh = function (paintAll) {\n        var list = this.storage.getDisplayList(true);\n        var prevList = this._prevDisplayList;\n        var zlevelList = this._zlevelList;\n        this._redrawId = Math.random();\n        this._paintList(list, prevList, paintAll, this._redrawId);\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            var layer = this._layers[z];\n            if (!layer.__builtin__ && layer.refresh) {\n                var clearColor = i === 0 ? this._backgroundColor : null;\n                layer.refresh(clearColor);\n            }\n        }\n        if (this._opts.useDirtyRect) {\n            this._prevDisplayList = list.slice();\n        }\n        return this;\n    };\n    CanvasPainter.prototype.refreshHover = function () {\n        this._paintHoverList(this.storage.getDisplayList(false));\n    };\n    CanvasPainter.prototype._paintHoverList = function (list) {\n        var len = list.length;\n        var hoverLayer = this._hoverlayer;\n        hoverLayer && hoverLayer.clear();\n        if (!len) {\n            return;\n        }\n        var scope = {\n            inHover: true,\n            viewWidth: this._width,\n            viewHeight: this._height\n        };\n        var ctx;\n        for (var i = 0; i < len; i++) {\n            var el = list[i];\n            if (el.__inHover) {\n                if (!hoverLayer) {\n                    hoverLayer = this._hoverlayer = this.getLayer(HOVER_LAYER_ZLEVEL);\n                }\n                if (!ctx) {\n                    ctx = hoverLayer.ctx;\n                    ctx.save();\n                }\n                brush(ctx, el, scope, i === len - 1);\n            }\n        }\n        if (ctx) {\n            ctx.restore();\n        }\n    };\n    CanvasPainter.prototype.getHoverLayer = function () {\n        return this.getLayer(HOVER_LAYER_ZLEVEL);\n    };\n    CanvasPainter.prototype.paintOne = function (ctx, el) {\n        brushSingle(ctx, el);\n    };\n    CanvasPainter.prototype._paintList = function (list, prevList, paintAll, redrawId) {\n        if (this._redrawId !== redrawId) {\n            return;\n        }\n        paintAll = paintAll || false;\n        this._updateLayerStatus(list);\n        var _a = this._doPaintList(list, prevList, paintAll), finished = _a.finished, needsRefreshHover = _a.needsRefreshHover;\n        if (this._needsManuallyCompositing) {\n            this._compositeManually();\n        }\n        if (needsRefreshHover) {\n            this._paintHoverList(list);\n        }\n        if (!finished) {\n            var self_1 = this;\n            requestAnimationFrame(function () {\n                self_1._paintList(list, prevList, paintAll, redrawId);\n            });\n        }\n        else {\n            this.eachLayer(function (layer) {\n                layer.afterBrush && layer.afterBrush();\n            });\n        }\n    };\n    CanvasPainter.prototype._compositeManually = function () {\n        var ctx = this.getLayer(CANVAS_ZLEVEL).ctx;\n        var width = this._domRoot.width;\n        var height = this._domRoot.height;\n        ctx.clearRect(0, 0, width, height);\n        this.eachBuiltinLayer(function (layer) {\n            if (layer.virtual) {\n                ctx.drawImage(layer.dom, 0, 0, width, height);\n            }\n        });\n    };\n    CanvasPainter.prototype._doPaintList = function (list, prevList, paintAll) {\n        var _this = this;\n        var layerList = [];\n        var useDirtyRect = this._opts.useDirtyRect;\n        for (var zi = 0; zi < this._zlevelList.length; zi++) {\n            var zlevel = this._zlevelList[zi];\n            var layer = this._layers[zlevel];\n            if (layer.__builtin__\n                && layer !== this._hoverlayer\n                && (layer.__dirty || paintAll)) {\n                layerList.push(layer);\n            }\n        }\n        var finished = true;\n        var needsRefreshHover = false;\n        var _loop_1 = function (k) {\n            var layer = layerList[k];\n            var ctx = layer.ctx;\n            var repaintRects = useDirtyRect\n                && layer.createRepaintRects(list, prevList, this_1._width, this_1._height);\n            ctx.save();\n            var start = paintAll ? layer.__startIndex : layer.__drawIndex;\n            var useTimer = !paintAll && layer.incremental && Date.now;\n            var startTime = useTimer && Date.now();\n            var clearColor = layer.zlevel === this_1._zlevelList[0]\n                ? this_1._backgroundColor : null;\n            if (layer.__startIndex === layer.__endIndex) {\n                layer.clear(false, clearColor, repaintRects);\n            }\n            else if (start === layer.__startIndex) {\n                var firstEl = list[start];\n                if (!firstEl.incremental || !firstEl.notClear || paintAll) {\n                    layer.clear(false, clearColor, repaintRects);\n                }\n            }\n            if (start === -1) {\n                console.error('For some unknown reason. drawIndex is -1');\n                start = layer.__startIndex;\n            }\n            var i;\n            var repaint = function (repaintRect) {\n                var scope = {\n                    inHover: false,\n                    allClipped: false,\n                    prevEl: null,\n                    viewWidth: _this._width,\n                    viewHeight: _this._height\n                };\n                for (i = start; i < layer.__endIndex; i++) {\n                    var el = list[i];\n                    if (el.__inHover) {\n                        needsRefreshHover = true;\n                    }\n                    _this._doPaintEl(el, layer, useDirtyRect, repaintRect, scope, i === layer.__endIndex - 1);\n                    if (useTimer) {\n                        var dTime = Date.now() - startTime;\n                        if (dTime > 15) {\n                            break;\n                        }\n                    }\n                }\n                if (scope.prevElClipPaths) {\n                    ctx.restore();\n                }\n            };\n            if (repaintRects) {\n                if (repaintRects.length === 0) {\n                    i = layer.__endIndex;\n                }\n                else {\n                    var dpr = this_1.dpr;\n                    for (var r = 0; r < repaintRects.length; ++r) {\n                        var rect = repaintRects[r];\n                        ctx.save();\n                        ctx.beginPath();\n                        ctx.rect(rect.x * dpr, rect.y * dpr, rect.width * dpr, rect.height * dpr);\n                        ctx.clip();\n                        repaint(rect);\n                        ctx.restore();\n                    }\n                }\n            }\n            else {\n                ctx.save();\n                repaint();\n                ctx.restore();\n            }\n            layer.__drawIndex = i;\n            if (layer.__drawIndex < layer.__endIndex) {\n                finished = false;\n            }\n        };\n        var this_1 = this;\n        for (var k = 0; k < layerList.length; k++) {\n            _loop_1(k);\n        }\n        if (env.wxa) {\n            util.each(this._layers, function (layer) {\n                if (layer && layer.ctx && layer.ctx.draw) {\n                    layer.ctx.draw();\n                }\n            });\n        }\n        return {\n            finished: finished,\n            needsRefreshHover: needsRefreshHover\n        };\n    };\n    CanvasPainter.prototype._doPaintEl = function (el, currentLayer, useDirtyRect, repaintRect, scope, isLast) {\n        var ctx = currentLayer.ctx;\n        if (useDirtyRect) {\n            var paintRect = el.getPaintRect();\n            if (!repaintRect || paintRect && paintRect.intersect(repaintRect)) {\n                brush(ctx, el, scope, isLast);\n                el.setPrevPaintRect(paintRect);\n            }\n        }\n        else {\n            brush(ctx, el, scope, isLast);\n        }\n    };\n    CanvasPainter.prototype.getLayer = function (zlevel, virtual) {\n        if (this._singleCanvas && !this._needsManuallyCompositing) {\n            zlevel = CANVAS_ZLEVEL;\n        }\n        var layer = this._layers[zlevel];\n        if (!layer) {\n            layer = new Layer('zr_' + zlevel, this, this.dpr);\n            layer.zlevel = zlevel;\n            layer.__builtin__ = true;\n            if (this._layerConfig[zlevel]) {\n                util.merge(layer, this._layerConfig[zlevel], true);\n            }\n            else if (this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC]) {\n                util.merge(layer, this._layerConfig[zlevel - EL_AFTER_INCREMENTAL_INC], true);\n            }\n            if (virtual) {\n                layer.virtual = virtual;\n            }\n            this.insertLayer(zlevel, layer);\n            layer.initContext();\n        }\n        return layer;\n    };\n    CanvasPainter.prototype.insertLayer = function (zlevel, layer) {\n        var layersMap = this._layers;\n        var zlevelList = this._zlevelList;\n        var len = zlevelList.length;\n        var domRoot = this._domRoot;\n        var prevLayer = null;\n        var i = -1;\n        if (layersMap[zlevel]) {\n            util.logError('ZLevel ' + zlevel + ' has been used already');\n            return;\n        }\n        if (!isLayerValid(layer)) {\n            util.logError('Layer of zlevel ' + zlevel + ' is not valid');\n            return;\n        }\n        if (len > 0 && zlevel > zlevelList[0]) {\n            for (i = 0; i < len - 1; i++) {\n                if (zlevelList[i] < zlevel\n                    && zlevelList[i + 1] > zlevel) {\n                    break;\n                }\n            }\n            prevLayer = layersMap[zlevelList[i]];\n        }\n        zlevelList.splice(i + 1, 0, zlevel);\n        layersMap[zlevel] = layer;\n        if (!layer.virtual) {\n            if (prevLayer) {\n                var prevDom = prevLayer.dom;\n                if (prevDom.nextSibling) {\n                    domRoot.insertBefore(layer.dom, prevDom.nextSibling);\n                }\n                else {\n                    domRoot.appendChild(layer.dom);\n                }\n            }\n            else {\n                if (domRoot.firstChild) {\n                    domRoot.insertBefore(layer.dom, domRoot.firstChild);\n                }\n                else {\n                    domRoot.appendChild(layer.dom);\n                }\n            }\n        }\n        layer.__painter = this;\n    };\n    CanvasPainter.prototype.eachLayer = function (cb, context) {\n        var zlevelList = this._zlevelList;\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            cb.call(context, this._layers[z], z);\n        }\n    };\n    CanvasPainter.prototype.eachBuiltinLayer = function (cb, context) {\n        var zlevelList = this._zlevelList;\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            var layer = this._layers[z];\n            if (layer.__builtin__) {\n                cb.call(context, layer, z);\n            }\n        }\n    };\n    CanvasPainter.prototype.eachOtherLayer = function (cb, context) {\n        var zlevelList = this._zlevelList;\n        for (var i = 0; i < zlevelList.length; i++) {\n            var z = zlevelList[i];\n            var layer = this._layers[z];\n            if (!layer.__builtin__) {\n                cb.call(context, layer, z);\n            }\n        }\n    };\n    CanvasPainter.prototype.getLayers = function () {\n        return this._layers;\n    };\n    CanvasPainter.prototype._updateLayerStatus = function (list) {\n        this.eachBuiltinLayer(function (layer, z) {\n            layer.__dirty = layer.__used = false;\n        });\n        function updatePrevLayer(idx) {\n            if (prevLayer) {\n                if (prevLayer.__endIndex !== idx) {\n                    prevLayer.__dirty = true;\n                }\n                prevLayer.__endIndex = idx;\n            }\n        }\n        if (this._singleCanvas) {\n            for (var i_1 = 1; i_1 < list.length; i_1++) {\n                var el = list[i_1];\n                if (el.zlevel !== list[i_1 - 1].zlevel || el.incremental) {\n                    this._needsManuallyCompositing = true;\n                    break;\n                }\n            }\n        }\n        var prevLayer = null;\n        var incrementalLayerCount = 0;\n        var prevZlevel;\n        var i;\n        for (i = 0; i < list.length; i++) {\n            var el = list[i];\n            var zlevel = el.zlevel;\n            var layer = void 0;\n            if (prevZlevel !== zlevel) {\n                prevZlevel = zlevel;\n                incrementalLayerCount = 0;\n            }\n            if (el.incremental) {\n                layer = this.getLayer(zlevel + INCREMENTAL_INC, this._needsManuallyCompositing);\n                layer.incremental = true;\n                incrementalLayerCount = 1;\n            }\n            else {\n                layer = this.getLayer(zlevel + (incrementalLayerCount > 0 ? EL_AFTER_INCREMENTAL_INC : 0), this._needsManuallyCompositing);\n            }\n            if (!layer.__builtin__) {\n                util.logError('ZLevel ' + zlevel + ' has been used by unkown layer ' + layer.id);\n            }\n            if (layer !== prevLayer) {\n                layer.__used = true;\n                if (layer.__startIndex !== i) {\n                    layer.__dirty = true;\n                }\n                layer.__startIndex = i;\n                if (!layer.incremental) {\n                    layer.__drawIndex = i;\n                }\n                else {\n                    layer.__drawIndex = -1;\n                }\n                updatePrevLayer(i);\n                prevLayer = layer;\n            }\n            if ((el.__dirty & Element.REDARAW_BIT) && !el.__inHover) {\n                layer.__dirty = true;\n                if (layer.incremental && layer.__drawIndex < 0) {\n                    layer.__drawIndex = i;\n                }\n            }\n        }\n        updatePrevLayer(i);\n        this.eachBuiltinLayer(function (layer, z) {\n            if (!layer.__used && layer.getElementCount() > 0) {\n                layer.__dirty = true;\n                layer.__startIndex = layer.__endIndex = layer.__drawIndex = 0;\n            }\n            if (layer.__dirty && layer.__drawIndex < 0) {\n                layer.__drawIndex = layer.__startIndex;\n            }\n        });\n    };\n    CanvasPainter.prototype.clear = function () {\n        this.eachBuiltinLayer(this._clearLayer);\n        return this;\n    };\n    CanvasPainter.prototype._clearLayer = function (layer) {\n        layer.clear();\n    };\n    CanvasPainter.prototype.setBackgroundColor = function (backgroundColor) {\n        this._backgroundColor = backgroundColor;\n        util.each(this._layers, function (layer) {\n            layer.setUnpainted();\n        });\n    };\n    CanvasPainter.prototype.configLayer = function (zlevel, config) {\n        if (config) {\n            var layerConfig = this._layerConfig;\n            if (!layerConfig[zlevel]) {\n                layerConfig[zlevel] = config;\n            }\n            else {\n                util.merge(layerConfig[zlevel], config, true);\n            }\n            for (var i = 0; i < this._zlevelList.length; i++) {\n                var _zlevel = this._zlevelList[i];\n                if (_zlevel === zlevel || _zlevel === zlevel + EL_AFTER_INCREMENTAL_INC) {\n                    var layer = this._layers[_zlevel];\n                    util.merge(layer, layerConfig[zlevel], true);\n                }\n            }\n        }\n    };\n    CanvasPainter.prototype.delLayer = function (zlevel) {\n        var layers = this._layers;\n        var zlevelList = this._zlevelList;\n        var layer = layers[zlevel];\n        if (!layer) {\n            return;\n        }\n        layer.dom.parentNode.removeChild(layer.dom);\n        delete layers[zlevel];\n        zlevelList.splice(util.indexOf(zlevelList, zlevel), 1);\n    };\n    CanvasPainter.prototype.resize = function (width, height) {\n        if (!this._domRoot.style) {\n            if (width == null || height == null) {\n                return;\n            }\n            this._width = width;\n            this._height = height;\n            this.getLayer(CANVAS_ZLEVEL).resize(width, height);\n        }\n        else {\n            var domRoot = this._domRoot;\n            domRoot.style.display = 'none';\n            var opts = this._opts;\n            width != null && (opts.width = width);\n            height != null && (opts.height = height);\n            width = this._getSize(0);\n            height = this._getSize(1);\n            domRoot.style.display = '';\n            if (this._width !== width || height !== this._height) {\n                domRoot.style.width = width + 'px';\n                domRoot.style.height = height + 'px';\n                for (var id in this._layers) {\n                    if (this._layers.hasOwnProperty(id)) {\n                        this._layers[id].resize(width, height);\n                    }\n                }\n                this.refresh(true);\n            }\n            this._width = width;\n            this._height = height;\n        }\n        return this;\n    };\n    CanvasPainter.prototype.clearLayer = function (zlevel) {\n        var layer = this._layers[zlevel];\n        if (layer) {\n            layer.clear();\n        }\n    };\n    CanvasPainter.prototype.dispose = function () {\n        this.root.innerHTML = '';\n        this.root =\n            this.storage =\n                this._domRoot =\n                    this._layers = null;\n    };\n    CanvasPainter.prototype.getRenderedCanvas = function (opts) {\n        opts = opts || {};\n        if (this._singleCanvas && !this._compositeManually) {\n            return this._layers[CANVAS_ZLEVEL].dom;\n        }\n        var imageLayer = new Layer('image', this, opts.pixelRatio || this.dpr);\n        var ctx = imageLayer.ctx;\n        imageLayer.initContext();\n        imageLayer.clear(false, opts.backgroundColor || this._backgroundColor);\n        if (opts.pixelRatio <= this.dpr) {\n            this.refresh();\n            var width_1 = imageLayer.dom.width;\n            var height_1 = imageLayer.dom.height;\n            var ctx_1 = imageLayer.ctx;\n            this.eachLayer(function (layer) {\n                if (layer.__builtin__) {\n                    ctx_1.drawImage(layer.dom, 0, 0, width_1, height_1);\n                }\n                else if (layer.renderToCanvas) {\n                    imageLayer.ctx.save();\n                    layer.renderToCanvas(imageLayer.ctx);\n                    imageLayer.ctx.restore();\n                }\n            });\n        }\n        else {\n            var scope = {\n                inHover: false,\n                viewWidth: this._width,\n                viewHeight: this._height\n            };\n            var displayList = this.storage.getDisplayList(true);\n            for (var i = 0, len = displayList.length; i < len; i++) {\n                var el = displayList[i];\n                brush(ctx, el, scope, i === len - 1);\n            }\n        }\n        return imageLayer.dom;\n    };\n    CanvasPainter.prototype.getWidth = function () {\n        return this._width;\n    };\n    CanvasPainter.prototype.getHeight = function () {\n        return this._height;\n    };\n    CanvasPainter.prototype._getSize = function (whIdx) {\n        var opts = this._opts;\n        var wh = ['width', 'height'][whIdx];\n        var cwh = ['clientWidth', 'clientHeight'][whIdx];\n        var plt = ['paddingLeft', 'paddingTop'][whIdx];\n        var prb = ['paddingRight', 'paddingBottom'][whIdx];\n        if (opts[wh] != null && opts[wh] !== 'auto') {\n            return parseFloat(opts[wh]);\n        }\n        var root = this.root;\n        var stl = document.defaultView.getComputedStyle(root);\n        return ((root[cwh] || parseInt10(stl[wh]) || parseInt10(root.style[wh]))\n            - (parseInt10(stl[plt]) || 0)\n            - (parseInt10(stl[prb]) || 0)) | 0;\n    };\n    CanvasPainter.prototype.pathToImage = function (path, dpr) {\n        dpr = dpr || this.dpr;\n        var canvas = document.createElement('canvas');\n        var ctx = canvas.getContext('2d');\n        var rect = path.getBoundingRect();\n        var style = path.style;\n        var shadowBlurSize = style.shadowBlur * dpr;\n        var shadowOffsetX = style.shadowOffsetX * dpr;\n        var shadowOffsetY = style.shadowOffsetY * dpr;\n        var lineWidth = path.hasStroke() ? style.lineWidth : 0;\n        var leftMargin = Math.max(lineWidth / 2, -shadowOffsetX + shadowBlurSize);\n        var rightMargin = Math.max(lineWidth / 2, shadowOffsetX + shadowBlurSize);\n        var topMargin = Math.max(lineWidth / 2, -shadowOffsetY + shadowBlurSize);\n        var bottomMargin = Math.max(lineWidth / 2, shadowOffsetY + shadowBlurSize);\n        var width = rect.width + leftMargin + rightMargin;\n        var height = rect.height + topMargin + bottomMargin;\n        canvas.width = width * dpr;\n        canvas.height = height * dpr;\n        ctx.scale(dpr, dpr);\n        ctx.clearRect(0, 0, width, height);\n        ctx.dpr = dpr;\n        var pathTransform = {\n            x: path.x,\n            y: path.y,\n            scaleX: path.scaleX,\n            scaleY: path.scaleY,\n            rotation: path.rotation,\n            originX: path.originX,\n            originY: path.originY\n        };\n        path.x = leftMargin - rect.x;\n        path.y = topMargin - rect.y;\n        path.rotation = 0;\n        path.scaleX = 1;\n        path.scaleY = 1;\n        path.updateTransform();\n        if (path) {\n            brush(ctx, path, {\n                inHover: false,\n                viewWidth: this._width,\n                viewHeight: this._height\n            }, true);\n        }\n        var imgShape = new ZRImage({\n            style: {\n                x: 0,\n                y: 0,\n                image: canvas\n            }\n        });\n        util.extend(path, pathTransform);\n        return imgShape;\n    };\n    return CanvasPainter;\n}());\nexport default CanvasPainter;\n;\n","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport CanvasPainter from 'zrender/lib/canvas/Painter';\nexport function install(registers) {\n  registers.registerPainter('canvas', CanvasPainter);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListFromArray from '../helper/createListFromArray';\nimport SeriesModel from '../../model/Series';\n\nvar LineSeriesModel = function (_super) {\n  __extends(LineSeriesModel, _super);\n\n  function LineSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = LineSeriesModel.type;\n    _this.hasSymbolVisual = true;\n    _this.legendSymbol = 'line';\n    return _this;\n  }\n\n  LineSeriesModel.prototype.getInitialData = function (option) {\n    if (process.env.NODE_ENV !== 'production') {\n      var coordSys = option.coordinateSystem;\n\n      if (coordSys !== 'polar' && coordSys !== 'cartesian2d') {\n        throw new Error('Line not support coordinateSystem besides cartesian and polar');\n      }\n    }\n\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: true\n    });\n  };\n\n  LineSeriesModel.type = 'series.line';\n  LineSeriesModel.dependencies = ['grid', 'polar'];\n  LineSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 3,\n    coordinateSystem: 'cartesian2d',\n    legendHoverLink: true,\n    clip: true,\n    label: {\n      position: 'top'\n    },\n    endLabel: {\n      show: false,\n      valueAnimation: true,\n      distance: 8\n    },\n    lineStyle: {\n      width: 2,\n      type: 'solid'\n    },\n    emphasis: {\n      scale: true,\n      lineStyle: {\n        width: 'bolder'\n      }\n    },\n    step: false,\n    smooth: false,\n    smoothMonotone: null,\n    symbol: 'emptyCircle',\n    symbolSize: 4,\n    symbolRotate: null,\n    showSymbol: true,\n    showAllSymbol: 'auto',\n    connectNulls: false,\n    sampling: 'none',\n    animationEasing: 'linear',\n    progressive: 0,\n    hoverLayerThreshold: Infinity\n  };\n  return LineSeriesModel;\n}(SeriesModel);\n\nexport default LineSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { retrieveRawValue } from '../../data/helper/dataProvider';\nimport { isArray } from 'zrender/lib/core/util';\nexport function getDefaultLabel(data, dataIndex) {\n  var labelDims = data.mapDimensionsAll('defaultedLabel');\n  var len = labelDims.length;\n\n  if (len === 1) {\n    var rawVal = retrieveRawValue(data, dataIndex, labelDims[0]);\n    return rawVal != null ? rawVal + '' : null;\n  } else if (len) {\n    var vals = [];\n\n    for (var i = 0; i < labelDims.length; i++) {\n      vals.push(retrieveRawValue(data, dataIndex, labelDims[i]));\n    }\n\n    return vals.join(' ');\n  }\n}\nexport function getDefaultInterpolatedLabel(data, interpolatedValue) {\n  var labelDims = data.mapDimensionsAll('defaultedLabel');\n\n  if (!isArray(interpolatedValue)) {\n    return interpolatedValue + '';\n  }\n\n  var vals = [];\n\n  for (var i = 0; i < labelDims.length; i++) {\n    var dimInfo = data.getDimensionInfo(labelDims[i]);\n\n    if (dimInfo) {\n      vals.push(interpolatedValue[dimInfo.index]);\n    }\n  }\n\n  return vals.join(' ');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { createSymbol } from '../../util/symbol';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { enterEmphasis, leaveEmphasis, enableHoverEmphasis } from '../../util/states';\nimport { parsePercent } from '../../util/number';\nimport { getDefaultLabel } from './labelHelper';\nimport { extend } from 'zrender/lib/core/util';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport ZRImage from 'zrender/lib/graphic/Image';\n\nvar Symbol = function (_super) {\n  __extends(Symbol, _super);\n\n  function Symbol(data, idx, seriesScope, opts) {\n    var _this = _super.call(this) || this;\n\n    _this.updateData(data, idx, seriesScope, opts);\n\n    return _this;\n  }\n\n  Symbol.prototype._createSymbol = function (symbolType, data, idx, symbolSize, keepAspect) {\n    this.removeAll();\n    var symbolPath = createSymbol(symbolType, -1, -1, 2, 2, null, keepAspect);\n    symbolPath.attr({\n      z2: 100,\n      culling: true,\n      scaleX: symbolSize[0] / 2,\n      scaleY: symbolSize[1] / 2\n    });\n    symbolPath.drift = driftSymbol;\n    this._symbolType = symbolType;\n    this.add(symbolPath);\n  };\n\n  Symbol.prototype.stopSymbolAnimation = function (toLastFrame) {\n    this.childAt(0).stopAnimation(null, toLastFrame);\n  };\n\n  Symbol.prototype.getSymbolPath = function () {\n    return this.childAt(0);\n  };\n\n  Symbol.prototype.highlight = function () {\n    enterEmphasis(this.childAt(0));\n  };\n\n  Symbol.prototype.downplay = function () {\n    leaveEmphasis(this.childAt(0));\n  };\n\n  Symbol.prototype.setZ = function (zlevel, z) {\n    var symbolPath = this.childAt(0);\n    symbolPath.zlevel = zlevel;\n    symbolPath.z = z;\n  };\n\n  Symbol.prototype.setDraggable = function (draggable) {\n    var symbolPath = this.childAt(0);\n    symbolPath.draggable = draggable;\n    symbolPath.cursor = draggable ? 'move' : symbolPath.cursor;\n  };\n\n  Symbol.prototype.updateData = function (data, idx, seriesScope, opts) {\n    this.silent = false;\n    var symbolType = data.getItemVisual(idx, 'symbol') || 'circle';\n    var seriesModel = data.hostModel;\n    var symbolSize = Symbol.getSymbolSize(data, idx);\n    var isInit = symbolType !== this._symbolType;\n    var disableAnimation = opts && opts.disableAnimation;\n\n    if (isInit) {\n      var keepAspect = data.getItemVisual(idx, 'symbolKeepAspect');\n\n      this._createSymbol(symbolType, data, idx, symbolSize, keepAspect);\n    } else {\n      var symbolPath = this.childAt(0);\n      symbolPath.silent = false;\n      var target = {\n        scaleX: symbolSize[0] / 2,\n        scaleY: symbolSize[1] / 2\n      };\n      disableAnimation ? symbolPath.attr(target) : graphic.updateProps(symbolPath, target, seriesModel, idx);\n    }\n\n    this._updateCommon(data, idx, symbolSize, seriesScope, opts);\n\n    if (isInit) {\n      var symbolPath = this.childAt(0);\n\n      if (!disableAnimation) {\n        var target = {\n          scaleX: this._sizeX,\n          scaleY: this._sizeY,\n          style: {\n            opacity: symbolPath.style.opacity\n          }\n        };\n        symbolPath.scaleX = symbolPath.scaleY = 0;\n        symbolPath.style.opacity = 0;\n        graphic.initProps(symbolPath, target, seriesModel, idx);\n      }\n    }\n\n    if (disableAnimation) {\n      this.childAt(0).stopAnimation('remove');\n    }\n\n    this._seriesModel = seriesModel;\n  };\n\n  Symbol.prototype._updateCommon = function (data, idx, symbolSize, seriesScope, opts) {\n    var symbolPath = this.childAt(0);\n    var seriesModel = data.hostModel;\n    var emphasisItemStyle;\n    var blurItemStyle;\n    var selectItemStyle;\n    var focus;\n    var blurScope;\n    var symbolOffset;\n    var labelStatesModels;\n    var hoverScale;\n    var cursorStyle;\n\n    if (seriesScope) {\n      emphasisItemStyle = seriesScope.emphasisItemStyle;\n      blurItemStyle = seriesScope.blurItemStyle;\n      selectItemStyle = seriesScope.selectItemStyle;\n      focus = seriesScope.focus;\n      blurScope = seriesScope.blurScope;\n      symbolOffset = seriesScope.symbolOffset;\n      labelStatesModels = seriesScope.labelStatesModels;\n      hoverScale = seriesScope.hoverScale;\n      cursorStyle = seriesScope.cursorStyle;\n    }\n\n    if (!seriesScope || data.hasItemOption) {\n      var itemModel = seriesScope && seriesScope.itemModel ? seriesScope.itemModel : data.getItemModel(idx);\n      var emphasisModel = itemModel.getModel('emphasis');\n      emphasisItemStyle = emphasisModel.getModel('itemStyle').getItemStyle();\n      selectItemStyle = itemModel.getModel(['select', 'itemStyle']).getItemStyle();\n      blurItemStyle = itemModel.getModel(['blur', 'itemStyle']).getItemStyle();\n      focus = emphasisModel.get('focus');\n      blurScope = emphasisModel.get('blurScope');\n      symbolOffset = itemModel.getShallow('symbolOffset');\n      labelStatesModels = getLabelStatesModels(itemModel);\n      hoverScale = emphasisModel.getShallow('scale');\n      cursorStyle = itemModel.getShallow('cursor');\n    }\n\n    var symbolRotate = data.getItemVisual(idx, 'symbolRotate');\n    symbolPath.attr('rotation', (symbolRotate || 0) * Math.PI / 180 || 0);\n\n    if (symbolOffset) {\n      symbolPath.x = parsePercent(symbolOffset[0], symbolSize[0]);\n      symbolPath.y = parsePercent(symbolOffset[1], symbolSize[1]);\n    }\n\n    cursorStyle && symbolPath.attr('cursor', cursorStyle);\n    var symbolStyle = data.getItemVisual(idx, 'style');\n    var visualColor = symbolStyle.fill;\n\n    if (symbolPath instanceof ZRImage) {\n      var pathStyle = symbolPath.style;\n      symbolPath.useStyle(extend({\n        image: pathStyle.image,\n        x: pathStyle.x,\n        y: pathStyle.y,\n        width: pathStyle.width,\n        height: pathStyle.height\n      }, symbolStyle));\n    } else {\n      if (symbolPath.__isEmptyBrush) {\n        symbolPath.useStyle(extend({}, symbolStyle));\n      } else {\n        symbolPath.useStyle(symbolStyle);\n      }\n\n      symbolPath.style.decal = null;\n      symbolPath.setColor(visualColor, opts && opts.symbolInnerColor);\n      symbolPath.style.strokeNoScale = true;\n    }\n\n    var liftZ = data.getItemVisual(idx, 'liftZ');\n    var z2Origin = this._z2;\n\n    if (liftZ != null) {\n      if (z2Origin == null) {\n        this._z2 = symbolPath.z2;\n        symbolPath.z2 += liftZ;\n      }\n    } else if (z2Origin != null) {\n      symbolPath.z2 = z2Origin;\n      this._z2 = null;\n    }\n\n    var useNameLabel = opts && opts.useNameLabel;\n    setLabelStyle(symbolPath, labelStatesModels, {\n      labelFetcher: seriesModel,\n      labelDataIndex: idx,\n      defaultText: getLabelDefaultText,\n      inheritColor: visualColor,\n      defaultOpacity: symbolStyle.opacity\n    });\n\n    function getLabelDefaultText(idx) {\n      return useNameLabel ? data.getName(idx) : getDefaultLabel(data, idx);\n    }\n\n    this._sizeX = symbolSize[0] / 2;\n    this._sizeY = symbolSize[1] / 2;\n    var emphasisState = symbolPath.ensureState('emphasis');\n    emphasisState.style = emphasisItemStyle;\n    symbolPath.ensureState('select').style = selectItemStyle;\n    symbolPath.ensureState('blur').style = blurItemStyle;\n\n    if (hoverScale) {\n      var scaleRatio = Math.max(1.1, 3 / this._sizeY);\n      emphasisState.scaleX = this._sizeX * scaleRatio;\n      emphasisState.scaleY = this._sizeY * scaleRatio;\n    }\n\n    this.setSymbolScale(1);\n    enableHoverEmphasis(this, focus, blurScope);\n  };\n\n  Symbol.prototype.setSymbolScale = function (scale) {\n    this.scaleX = this.scaleY = scale;\n  };\n\n  Symbol.prototype.fadeOut = function (cb, opt) {\n    var symbolPath = this.childAt(0);\n    var seriesModel = this._seriesModel;\n    var dataIndex = getECData(this).dataIndex;\n    var animationOpt = opt && opt.animation;\n    this.silent = symbolPath.silent = true;\n\n    if (opt && opt.fadeLabel) {\n      var textContent = symbolPath.getTextContent();\n\n      if (textContent) {\n        graphic.removeElement(textContent, {\n          style: {\n            opacity: 0\n          }\n        }, seriesModel, {\n          dataIndex: dataIndex,\n          removeOpt: animationOpt,\n          cb: function () {\n            symbolPath.removeTextContent();\n          }\n        });\n      }\n    } else {\n      symbolPath.removeTextContent();\n    }\n\n    graphic.removeElement(symbolPath, {\n      style: {\n        opacity: 0\n      },\n      scaleX: 0,\n      scaleY: 0\n    }, seriesModel, {\n      dataIndex: dataIndex,\n      cb: cb,\n      removeOpt: animationOpt\n    });\n  };\n\n  Symbol.getSymbolSize = function (data, idx) {\n    var symbolSize = data.getItemVisual(idx, 'symbolSize');\n    return symbolSize instanceof Array ? symbolSize.slice() : [+symbolSize, +symbolSize];\n  };\n\n  return Symbol;\n}(graphic.Group);\n\nfunction driftSymbol(dx, dy) {\n  this.parent.drift(dx, dy);\n}\n\nexport default Symbol;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as graphic from '../../util/graphic';\nimport SymbolClz from './Symbol';\nimport { isObject } from 'zrender/lib/core/util';\nimport { getLabelStatesModels } from '../../label/labelStyle';\n\nfunction symbolNeedsDraw(data, point, idx, opt) {\n  return point && !isNaN(point[0]) && !isNaN(point[1]) && !(opt.isIgnore && opt.isIgnore(idx)) && !(opt.clipShape && !opt.clipShape.contain(point[0], point[1])) && data.getItemVisual(idx, 'symbol') !== 'none';\n}\n\nfunction normalizeUpdateOpt(opt) {\n  if (opt != null && !isObject(opt)) {\n    opt = {\n      isIgnore: opt\n    };\n  }\n\n  return opt || {};\n}\n\nfunction makeSeriesScope(data) {\n  var seriesModel = data.hostModel;\n  var emphasisModel = seriesModel.getModel('emphasis');\n  return {\n    emphasisItemStyle: emphasisModel.getModel('itemStyle').getItemStyle(),\n    blurItemStyle: seriesModel.getModel(['blur', 'itemStyle']).getItemStyle(),\n    selectItemStyle: seriesModel.getModel(['select', 'itemStyle']).getItemStyle(),\n    focus: emphasisModel.get('focus'),\n    blurScope: emphasisModel.get('blurScope'),\n    symbolRotate: seriesModel.get('symbolRotate'),\n    symbolOffset: seriesModel.get('symbolOffset'),\n    hoverScale: emphasisModel.get('scale'),\n    labelStatesModels: getLabelStatesModels(seriesModel),\n    cursorStyle: seriesModel.get('cursor')\n  };\n}\n\nvar SymbolDraw = function () {\n  function SymbolDraw(SymbolCtor) {\n    this.group = new graphic.Group();\n    this._SymbolCtor = SymbolCtor || SymbolClz;\n  }\n\n  SymbolDraw.prototype.updateData = function (data, opt) {\n    opt = normalizeUpdateOpt(opt);\n    var group = this.group;\n    var seriesModel = data.hostModel;\n    var oldData = this._data;\n    var SymbolCtor = this._SymbolCtor;\n    var disableAnimation = opt.disableAnimation;\n    var seriesScope = makeSeriesScope(data);\n    var symbolUpdateOpt = {\n      disableAnimation: disableAnimation\n    };\n\n    var getSymbolPoint = opt.getSymbolPoint || function (idx) {\n      return data.getItemLayout(idx);\n    };\n\n    if (!oldData) {\n      group.removeAll();\n    }\n\n    data.diff(oldData).add(function (newIdx) {\n      var point = getSymbolPoint(newIdx);\n\n      if (symbolNeedsDraw(data, point, newIdx, opt)) {\n        var symbolEl = new SymbolCtor(data, newIdx, seriesScope, symbolUpdateOpt);\n        symbolEl.setPosition(point);\n        data.setItemGraphicEl(newIdx, symbolEl);\n        group.add(symbolEl);\n      }\n    }).update(function (newIdx, oldIdx) {\n      var symbolEl = oldData.getItemGraphicEl(oldIdx);\n      var point = getSymbolPoint(newIdx);\n\n      if (!symbolNeedsDraw(data, point, newIdx, opt)) {\n        group.remove(symbolEl);\n        return;\n      }\n\n      if (!symbolEl) {\n        symbolEl = new SymbolCtor(data, newIdx);\n        symbolEl.setPosition(point);\n      } else {\n        symbolEl.updateData(data, newIdx, seriesScope, symbolUpdateOpt);\n        var target = {\n          x: point[0],\n          y: point[1]\n        };\n        disableAnimation ? symbolEl.attr(target) : graphic.updateProps(symbolEl, target, seriesModel);\n      }\n\n      group.add(symbolEl);\n      data.setItemGraphicEl(newIdx, symbolEl);\n    }).remove(function (oldIdx) {\n      var el = oldData.getItemGraphicEl(oldIdx);\n      el && el.fadeOut(function () {\n        group.remove(el);\n      });\n    }).execute();\n    this._getSymbolPoint = getSymbolPoint;\n    this._data = data;\n  };\n\n  ;\n\n  SymbolDraw.prototype.isPersistent = function () {\n    return true;\n  };\n\n  ;\n\n  SymbolDraw.prototype.updateLayout = function () {\n    var _this = this;\n\n    var data = this._data;\n\n    if (data) {\n      data.eachItemGraphicEl(function (el, idx) {\n        var point = _this._getSymbolPoint(idx);\n\n        el.setPosition(point);\n        el.markRedraw();\n      });\n    }\n  };\n\n  ;\n\n  SymbolDraw.prototype.incrementalPrepareUpdate = function (data) {\n    this._seriesScope = makeSeriesScope(data);\n    this._data = null;\n    this.group.removeAll();\n  };\n\n  ;\n\n  SymbolDraw.prototype.incrementalUpdate = function (taskParams, data, opt) {\n    opt = normalizeUpdateOpt(opt);\n\n    function updateIncrementalAndHover(el) {\n      if (!el.isGroup) {\n        el.incremental = true;\n        el.ensureState('emphasis').hoverLayer = true;\n      }\n    }\n\n    for (var idx = taskParams.start; idx < taskParams.end; idx++) {\n      var point = data.getItemLayout(idx);\n\n      if (symbolNeedsDraw(data, point, idx, opt)) {\n        var el = new this._SymbolCtor(data, idx, this._seriesScope);\n        el.traverse(updateIncrementalAndHover);\n        el.setPosition(point);\n        this.group.add(el);\n        data.setItemGraphicEl(idx, el);\n      }\n    }\n  };\n\n  ;\n\n  SymbolDraw.prototype.remove = function (enableAnimation) {\n    var group = this.group;\n    var data = this._data;\n\n    if (data && enableAnimation) {\n      data.eachItemGraphicEl(function (el) {\n        el.fadeOut(function () {\n          group.remove(el);\n        });\n      });\n    } else {\n      group.removeAll();\n    }\n  };\n\n  ;\n  return SymbolDraw;\n}();\n\nexport default SymbolDraw;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isDimensionStacked } from '../../data/helper/dataStackHelper';\nimport { map } from 'zrender/lib/core/util';\nexport function prepareDataCoordInfo(coordSys, data, valueOrigin) {\n  var baseAxis = coordSys.getBaseAxis();\n  var valueAxis = coordSys.getOtherAxis(baseAxis);\n  var valueStart = getValueStart(valueAxis, valueOrigin);\n  var baseAxisDim = baseAxis.dim;\n  var valueAxisDim = valueAxis.dim;\n  var valueDim = data.mapDimension(valueAxisDim);\n  var baseDim = data.mapDimension(baseAxisDim);\n  var baseDataOffset = valueAxisDim === 'x' || valueAxisDim === 'radius' ? 1 : 0;\n  var dims = map(coordSys.dimensions, function (coordDim) {\n    return data.mapDimension(coordDim);\n  });\n  var stacked = false;\n  var stackResultDim = data.getCalculationInfo('stackResultDimension');\n\n  if (isDimensionStacked(data, dims[0])) {\n    stacked = true;\n    dims[0] = stackResultDim;\n  }\n\n  if (isDimensionStacked(data, dims[1])) {\n    stacked = true;\n    dims[1] = stackResultDim;\n  }\n\n  return {\n    dataDimsForPoint: dims,\n    valueStart: valueStart,\n    valueAxisDim: valueAxisDim,\n    baseAxisDim: baseAxisDim,\n    stacked: !!stacked,\n    valueDim: valueDim,\n    baseDim: baseDim,\n    baseDataOffset: baseDataOffset,\n    stackedOverDimension: data.getCalculationInfo('stackedOverDimension')\n  };\n}\n\nfunction getValueStart(valueAxis, valueOrigin) {\n  var valueStart = 0;\n  var extent = valueAxis.scale.getExtent();\n\n  if (valueOrigin === 'start') {\n    valueStart = extent[0];\n  } else if (valueOrigin === 'end') {\n    valueStart = extent[1];\n  } else {\n    if (extent[0] > 0) {\n      valueStart = extent[0];\n    } else if (extent[1] < 0) {\n      valueStart = extent[1];\n    }\n  }\n\n  return valueStart;\n}\n\nexport function getStackedOnPoint(dataCoordInfo, coordSys, data, idx) {\n  var value = NaN;\n\n  if (dataCoordInfo.stacked) {\n    value = data.get(data.getCalculationInfo('stackedOverDimension'), idx);\n  }\n\n  if (isNaN(value)) {\n    value = dataCoordInfo.valueStart;\n  }\n\n  var baseDataOffset = dataCoordInfo.baseDataOffset;\n  var stackedData = [];\n  stackedData[baseDataOffset] = data.get(dataCoordInfo.baseDim, idx);\n  stackedData[1 - baseDataOffset] = value;\n  return coordSys.dataToPoint(stackedData);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isArray } from 'zrender/lib/core/util';\nvar supportFloat32Array = typeof Float32Array !== 'undefined';\nvar Float32ArrayCtor = !supportFloat32Array ? Array : Float32Array;\nexport function createFloat32Array(arg) {\n  if (isArray(arg)) {\n    return supportFloat32Array ? new Float32Array(arg) : arg;\n  }\n\n  return new Float32ArrayCtor(arg);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { prepareDataCoordInfo, getStackedOnPoint } from './helper';\nimport { createFloat32Array } from '../../util/vendor';\n\nfunction diffData(oldData, newData) {\n  var diffResult = [];\n  newData.diff(oldData).add(function (idx) {\n    diffResult.push({\n      cmd: '+',\n      idx: idx\n    });\n  }).update(function (newIdx, oldIdx) {\n    diffResult.push({\n      cmd: '=',\n      idx: oldIdx,\n      idx1: newIdx\n    });\n  }).remove(function (idx) {\n    diffResult.push({\n      cmd: '-',\n      idx: idx\n    });\n  }).execute();\n  return diffResult;\n}\n\nexport default function lineAnimationDiff(oldData, newData, oldStackedOnPoints, newStackedOnPoints, oldCoordSys, newCoordSys, oldValueOrigin, newValueOrigin) {\n  var diff = diffData(oldData, newData);\n  var currPoints = [];\n  var nextPoints = [];\n  var currStackedPoints = [];\n  var nextStackedPoints = [];\n  var status = [];\n  var sortedIndices = [];\n  var rawIndices = [];\n  var newDataOldCoordInfo = prepareDataCoordInfo(oldCoordSys, newData, oldValueOrigin);\n  var oldDataNewCoordInfo = prepareDataCoordInfo(newCoordSys, oldData, newValueOrigin);\n  var oldPoints = oldData.getLayout('points') || [];\n  var newPoints = newData.getLayout('points') || [];\n\n  for (var i = 0; i < diff.length; i++) {\n    var diffItem = diff[i];\n    var pointAdded = true;\n    var oldIdx2 = void 0;\n    var newIdx2 = void 0;\n\n    switch (diffItem.cmd) {\n      case '=':\n        oldIdx2 = diffItem.idx * 2;\n        newIdx2 = diffItem.idx1 * 2;\n        var currentX = oldPoints[oldIdx2];\n        var currentY = oldPoints[oldIdx2 + 1];\n        var nextX = newPoints[newIdx2];\n        var nextY = newPoints[newIdx2 + 1];\n\n        if (isNaN(currentX) || isNaN(currentY)) {\n          currentX = nextX;\n          currentY = nextY;\n        }\n\n        currPoints.push(currentX, currentY);\n        nextPoints.push(nextX, nextY);\n        currStackedPoints.push(oldStackedOnPoints[oldIdx2], oldStackedOnPoints[oldIdx2 + 1]);\n        nextStackedPoints.push(newStackedOnPoints[newIdx2], newStackedOnPoints[newIdx2 + 1]);\n        rawIndices.push(newData.getRawIndex(diffItem.idx1));\n        break;\n\n      case '+':\n        var newIdx = diffItem.idx;\n        var newDataDimsForPoint = newDataOldCoordInfo.dataDimsForPoint;\n        var oldPt = oldCoordSys.dataToPoint([newData.get(newDataDimsForPoint[0], newIdx), newData.get(newDataDimsForPoint[1], newIdx)]);\n        newIdx2 = newIdx * 2;\n        currPoints.push(oldPt[0], oldPt[1]);\n        nextPoints.push(newPoints[newIdx2], newPoints[newIdx2 + 1]);\n        var stackedOnPoint = getStackedOnPoint(newDataOldCoordInfo, oldCoordSys, newData, newIdx);\n        currStackedPoints.push(stackedOnPoint[0], stackedOnPoint[1]);\n        nextStackedPoints.push(newStackedOnPoints[newIdx2], newStackedOnPoints[newIdx2 + 1]);\n        rawIndices.push(newData.getRawIndex(newIdx));\n        break;\n\n      case '-':\n        var oldIdx = diffItem.idx;\n        var rawIndex = oldData.getRawIndex(oldIdx);\n        var oldDataDimsForPoint = oldDataNewCoordInfo.dataDimsForPoint;\n        oldIdx2 = oldIdx * 2;\n\n        if (rawIndex !== oldIdx) {\n          var newPt = newCoordSys.dataToPoint([oldData.get(oldDataDimsForPoint[0], oldIdx), oldData.get(oldDataDimsForPoint[1], oldIdx)]);\n          var newStackedOnPt = getStackedOnPoint(oldDataNewCoordInfo, newCoordSys, oldData, oldIdx);\n          currPoints.push(oldPoints[oldIdx2], oldPoints[oldIdx2 + 1]);\n          nextPoints.push(newPt[0], newPt[1]);\n          currStackedPoints.push(oldStackedOnPoints[oldIdx2], oldStackedOnPoints[oldIdx2 + 1]);\n          nextStackedPoints.push(newStackedOnPt[0], newStackedOnPt[1]);\n          rawIndices.push(rawIndex);\n        } else {\n          pointAdded = false;\n        }\n\n    }\n\n    if (pointAdded) {\n      status.push(diffItem);\n      sortedIndices.push(sortedIndices.length);\n    }\n  }\n\n  sortedIndices.sort(function (a, b) {\n    return rawIndices[a] - rawIndices[b];\n  });\n  var len = currPoints.length;\n  var sortedCurrPoints = createFloat32Array(len);\n  var sortedNextPoints = createFloat32Array(len);\n  var sortedCurrStackedPoints = createFloat32Array(len);\n  var sortedNextStackedPoints = createFloat32Array(len);\n  var sortedStatus = [];\n\n  for (var i = 0; i < sortedIndices.length; i++) {\n    var idx = sortedIndices[i];\n    var i2 = i * 2;\n    var idx2 = idx * 2;\n    sortedCurrPoints[i2] = currPoints[idx2];\n    sortedCurrPoints[i2 + 1] = currPoints[idx2 + 1];\n    sortedNextPoints[i2] = nextPoints[idx2];\n    sortedNextPoints[i2 + 1] = nextPoints[idx2 + 1];\n    sortedCurrStackedPoints[i2] = currStackedPoints[idx2];\n    sortedCurrStackedPoints[i2 + 1] = currStackedPoints[idx2 + 1];\n    sortedNextStackedPoints[i2] = nextStackedPoints[idx2];\n    sortedNextStackedPoints[i2 + 1] = nextStackedPoints[idx2 + 1];\n    sortedStatus[i] = status[idx];\n  }\n\n  return {\n    current: sortedCurrPoints,\n    next: sortedNextPoints,\n    stackedOnCurrent: sortedCurrStackedPoints,\n    stackedOnNext: sortedNextStackedPoints,\n    status: sortedStatus\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Path from 'zrender/lib/graphic/Path';\nimport PathProxy from 'zrender/lib/core/PathProxy';\nimport { cubicRootAt, cubicAt } from 'zrender/lib/core/curve';\nvar mathMin = Math.min;\nvar mathMax = Math.max;\n\nfunction isPointNull(x, y) {\n  return isNaN(x) || isNaN(y);\n}\n\nfunction drawSegment(ctx, points, start, segLen, allLen, dir, smooth, smoothMonotone, connectNulls) {\n  var prevX;\n  var prevY;\n  var cpx0;\n  var cpy0;\n  var cpx1;\n  var cpy1;\n  var idx = start;\n  var k = 0;\n\n  for (; k < segLen; k++) {\n    var x = points[idx * 2];\n    var y = points[idx * 2 + 1];\n\n    if (idx >= allLen || idx < 0) {\n      break;\n    }\n\n    if (isPointNull(x, y)) {\n      if (connectNulls) {\n        idx += dir;\n        continue;\n      }\n\n      break;\n    }\n\n    if (idx === start) {\n      ctx[dir > 0 ? 'moveTo' : 'lineTo'](x, y);\n      cpx0 = x;\n      cpy0 = y;\n    } else {\n      var dx = x - prevX;\n      var dy = y - prevY;\n\n      if (dx * dx + dy * dy < 0.5) {\n        idx += dir;\n        continue;\n      }\n\n      if (smooth > 0) {\n        var nextIdx = idx + dir;\n        var nextX = points[nextIdx * 2];\n        var nextY = points[nextIdx * 2 + 1];\n        var tmpK = k + 1;\n\n        if (connectNulls) {\n          while (isPointNull(nextX, nextY) && tmpK < segLen) {\n            tmpK++;\n            nextIdx += dir;\n            nextX = points[nextIdx * 2];\n            nextY = points[nextIdx * 2 + 1];\n          }\n        }\n\n        var ratioNextSeg = 0.5;\n        var vx = 0;\n        var vy = 0;\n        var nextCpx0 = void 0;\n        var nextCpy0 = void 0;\n\n        if (tmpK >= segLen || isPointNull(nextX, nextY)) {\n          cpx1 = x;\n          cpy1 = y;\n        } else {\n          vx = nextX - prevX;\n          vy = nextY - prevY;\n          var dx0 = x - prevX;\n          var dx1 = nextX - x;\n          var dy0 = y - prevY;\n          var dy1 = nextY - y;\n          var lenPrevSeg = void 0;\n          var lenNextSeg = void 0;\n\n          if (smoothMonotone === 'x') {\n            lenPrevSeg = Math.abs(dx0);\n            lenNextSeg = Math.abs(dx1);\n            cpx1 = x - lenPrevSeg * smooth;\n            cpy1 = y;\n            nextCpx0 = x + lenPrevSeg * smooth;\n            nextCpy0 = y;\n          } else if (smoothMonotone === 'y') {\n            lenPrevSeg = Math.abs(dy0);\n            lenNextSeg = Math.abs(dy1);\n            cpx1 = x;\n            cpy1 = y - lenPrevSeg * smooth;\n            nextCpx0 = x;\n            nextCpy0 = y + lenPrevSeg * smooth;\n          } else {\n            lenPrevSeg = Math.sqrt(dx0 * dx0 + dy0 * dy0);\n            lenNextSeg = Math.sqrt(dx1 * dx1 + dy1 * dy1);\n            ratioNextSeg = lenNextSeg / (lenNextSeg + lenPrevSeg);\n            cpx1 = x - vx * smooth * (1 - ratioNextSeg);\n            cpy1 = y - vy * smooth * (1 - ratioNextSeg);\n            nextCpx0 = x + vx * smooth * ratioNextSeg;\n            nextCpy0 = y + vy * smooth * ratioNextSeg;\n            nextCpx0 = mathMin(nextCpx0, mathMax(nextX, x));\n            nextCpy0 = mathMin(nextCpy0, mathMax(nextY, y));\n            nextCpx0 = mathMax(nextCpx0, mathMin(nextX, x));\n            nextCpy0 = mathMax(nextCpy0, mathMin(nextY, y));\n            vx = nextCpx0 - x;\n            vy = nextCpy0 - y;\n            cpx1 = x - vx * lenPrevSeg / lenNextSeg;\n            cpy1 = y - vy * lenPrevSeg / lenNextSeg;\n            cpx1 = mathMin(cpx1, mathMax(prevX, x));\n            cpy1 = mathMin(cpy1, mathMax(prevY, y));\n            cpx1 = mathMax(cpx1, mathMin(prevX, x));\n            cpy1 = mathMax(cpy1, mathMin(prevY, y));\n            vx = x - cpx1;\n            vy = y - cpy1;\n            nextCpx0 = x + vx * lenNextSeg / lenPrevSeg;\n            nextCpy0 = y + vy * lenNextSeg / lenPrevSeg;\n          }\n        }\n\n        ctx.bezierCurveTo(cpx0, cpy0, cpx1, cpy1, x, y);\n        cpx0 = nextCpx0;\n        cpy0 = nextCpy0;\n      } else {\n        ctx.lineTo(x, y);\n      }\n    }\n\n    prevX = x;\n    prevY = y;\n    idx += dir;\n  }\n\n  return k;\n}\n\nvar ECPolylineShape = function () {\n  function ECPolylineShape() {\n    this.smooth = 0;\n    this.smoothConstraint = true;\n  }\n\n  return ECPolylineShape;\n}();\n\nvar ECPolyline = function (_super) {\n  __extends(ECPolyline, _super);\n\n  function ECPolyline(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'ec-polyline';\n    return _this;\n  }\n\n  ECPolyline.prototype.getDefaultStyle = function () {\n    return {\n      stroke: '#000',\n      fill: null\n    };\n  };\n\n  ECPolyline.prototype.getDefaultShape = function () {\n    return new ECPolylineShape();\n  };\n\n  ECPolyline.prototype.buildPath = function (ctx, shape) {\n    var points = shape.points;\n    var i = 0;\n    var len = points.length / 2;\n\n    if (shape.connectNulls) {\n      for (; len > 0; len--) {\n        if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n          break;\n        }\n      }\n\n      for (; i < len; i++) {\n        if (!isPointNull(points[i * 2], points[i * 2 + 1])) {\n          break;\n        }\n      }\n    }\n\n    while (i < len) {\n      i += drawSegment(ctx, points, i, len, len, 1, shape.smooth, shape.smoothMonotone, shape.connectNulls) + 1;\n    }\n  };\n\n  ECPolyline.prototype.getPointOn = function (xOrY, dim) {\n    if (!this.path) {\n      this.createPathProxy();\n      this.buildPath(this.path, this.shape);\n    }\n\n    var path = this.path;\n    var data = path.data;\n    var CMD = PathProxy.CMD;\n    var x0;\n    var y0;\n    var isDimX = dim === 'x';\n    var roots = [];\n\n    for (var i = 0; i < data.length;) {\n      var cmd = data[i++];\n      var x = void 0;\n      var y = void 0;\n      var x2 = void 0;\n      var y2 = void 0;\n      var x3 = void 0;\n      var y3 = void 0;\n      var t = void 0;\n\n      switch (cmd) {\n        case CMD.M:\n          x0 = data[i++];\n          y0 = data[i++];\n          break;\n\n        case CMD.L:\n          x = data[i++];\n          y = data[i++];\n          t = isDimX ? (xOrY - x0) / (x - x0) : (xOrY - y0) / (y - y0);\n\n          if (t <= 1 && t >= 0) {\n            var val = isDimX ? (y - y0) * t + y0 : (x - x0) * t + x0;\n            return isDimX ? [xOrY, val] : [val, xOrY];\n          }\n\n          x0 = x;\n          y0 = y;\n          break;\n\n        case CMD.C:\n          x = data[i++];\n          y = data[i++];\n          x2 = data[i++];\n          y2 = data[i++];\n          x3 = data[i++];\n          y3 = data[i++];\n          var nRoot = isDimX ? cubicRootAt(x0, x, x2, x3, xOrY, roots) : cubicRootAt(y0, y, y2, y3, xOrY, roots);\n\n          if (nRoot > 0) {\n            for (var i_1 = 0; i_1 < nRoot; i_1++) {\n              var t_1 = roots[i_1];\n\n              if (t_1 <= 1 && t_1 >= 0) {\n                var val = isDimX ? cubicAt(y0, y, y2, y3, t_1) : cubicAt(x0, x, x2, x3, t_1);\n                return isDimX ? [xOrY, val] : [val, xOrY];\n              }\n            }\n          }\n\n          x0 = x3;\n          y0 = y3;\n          break;\n      }\n    }\n  };\n\n  return ECPolyline;\n}(Path);\n\nexport { ECPolyline };\n\nvar ECPolygonShape = function (_super) {\n  __extends(ECPolygonShape, _super);\n\n  function ECPolygonShape() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  return ECPolygonShape;\n}(ECPolylineShape);\n\nvar ECPolygon = function (_super) {\n  __extends(ECPolygon, _super);\n\n  function ECPolygon(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'ec-polygon';\n    return _this;\n  }\n\n  ECPolygon.prototype.getDefaultShape = function () {\n    return new ECPolygonShape();\n  };\n\n  ECPolygon.prototype.buildPath = function (ctx, shape) {\n    var points = shape.points;\n    var stackedOnPoints = shape.stackedOnPoints;\n    var i = 0;\n    var len = points.length / 2;\n    var smoothMonotone = shape.smoothMonotone;\n\n    if (shape.connectNulls) {\n      for (; len > 0; len--) {\n        if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n          break;\n        }\n      }\n\n      for (; i < len; i++) {\n        if (!isPointNull(points[i * 2], points[i * 2 + 1])) {\n          break;\n        }\n      }\n    }\n\n    while (i < len) {\n      var k = drawSegment(ctx, points, i, len, len, 1, shape.smooth, smoothMonotone, shape.connectNulls);\n      drawSegment(ctx, stackedOnPoints, i + k - 1, k, len, -1, shape.stackedOnSmooth, smoothMonotone, shape.connectNulls);\n      i += k + 1;\n      ctx.closePath();\n    }\n  };\n\n  return ECPolygon;\n}(Path);\n\nexport { ECPolygon };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as graphic from '../../util/graphic';\nimport { round } from '../../util/number';\n\nfunction createGridClipPath(cartesian, hasAnimation, seriesModel, done, during) {\n  var rect = cartesian.getArea();\n  var x = rect.x;\n  var y = rect.y;\n  var width = rect.width;\n  var height = rect.height;\n  var lineWidth = seriesModel.get(['lineStyle', 'width']) || 2;\n  x -= lineWidth / 2;\n  y -= lineWidth / 2;\n  width += lineWidth;\n  height += lineWidth;\n  x = Math.floor(x);\n  width = Math.round(width);\n  var clipPath = new graphic.Rect({\n    shape: {\n      x: x,\n      y: y,\n      width: width,\n      height: height\n    }\n  });\n\n  if (hasAnimation) {\n    var baseAxis = cartesian.getBaseAxis();\n    var isHorizontal = baseAxis.isHorizontal();\n    var isAxisInversed = baseAxis.inverse;\n\n    if (isHorizontal) {\n      if (isAxisInversed) {\n        clipPath.shape.x += width;\n      }\n\n      clipPath.shape.width = 0;\n    } else {\n      if (!isAxisInversed) {\n        clipPath.shape.y += height;\n      }\n\n      clipPath.shape.height = 0;\n    }\n\n    var duringCb = typeof during === 'function' ? function (percent) {\n      during(percent, clipPath);\n    } : null;\n    graphic.initProps(clipPath, {\n      shape: {\n        width: width,\n        height: height,\n        x: x,\n        y: y\n      }\n    }, seriesModel, null, done, duringCb);\n  }\n\n  return clipPath;\n}\n\nfunction createPolarClipPath(polar, hasAnimation, seriesModel) {\n  var sectorArea = polar.getArea();\n  var r0 = round(sectorArea.r0, 1);\n  var r = round(sectorArea.r, 1);\n  var clipPath = new graphic.Sector({\n    shape: {\n      cx: round(polar.cx, 1),\n      cy: round(polar.cy, 1),\n      r0: r0,\n      r: r,\n      startAngle: sectorArea.startAngle,\n      endAngle: sectorArea.endAngle,\n      clockwise: sectorArea.clockwise\n    }\n  });\n\n  if (hasAnimation) {\n    var isRadial = polar.getBaseAxis().dim === 'angle';\n\n    if (isRadial) {\n      clipPath.shape.endAngle = sectorArea.startAngle;\n    } else {\n      clipPath.shape.r = r0;\n    }\n\n    graphic.initProps(clipPath, {\n      shape: {\n        endAngle: sectorArea.endAngle,\n        r: r\n      }\n    }, seriesModel);\n  }\n\n  return clipPath;\n}\n\nfunction createClipPath(coordSys, hasAnimation, seriesModel, done, during) {\n  if (!coordSys) {\n    return null;\n  } else if (coordSys.type === 'polar') {\n    return createPolarClipPath(coordSys, hasAnimation, seriesModel);\n  } else if (coordSys.type === 'cartesian2d') {\n    return createGridClipPath(coordSys, hasAnimation, seriesModel, done, during);\n  }\n\n  return null;\n}\n\nexport { createGridClipPath, createPolarClipPath, createClipPath };","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport function isCoordinateSystemType(coordSys, type) {\n  return coordSys.type === type;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport SymbolDraw from '../helper/SymbolDraw';\nimport SymbolClz from '../helper/Symbol';\nimport lineAnimationDiff from './lineAnimationDiff';\nimport * as graphic from '../../util/graphic';\nimport * as modelUtil from '../../util/model';\nimport { ECPolyline, ECPolygon } from './poly';\nimport ChartView from '../../view/Chart';\nimport { prepareDataCoordInfo, getStackedOnPoint } from './helper';\nimport { createGridClipPath, createPolarClipPath } from '../helper/createClipPathFromCoordSys';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport { setStatesStylesFromModel, setStatesFlag, enableHoverEmphasis } from '../../util/states';\nimport { setLabelStyle, getLabelStatesModels, labelInner } from '../../label/labelStyle';\nimport { getDefaultLabel, getDefaultInterpolatedLabel } from '../helper/labelHelper';\nimport { getECData } from '../../util/innerStore';\nimport { createFloat32Array } from '../../util/vendor';\n\nfunction isPointsSame(points1, points2) {\n  if (points1.length !== points2.length) {\n    return;\n  }\n\n  for (var i = 0; i < points1.length; i++) {\n    if (points1[i] !== points2[i]) {\n      return;\n    }\n  }\n\n  return true;\n}\n\nfunction bboxFromPoints(points) {\n  var minX = Infinity;\n  var minY = Infinity;\n  var maxX = -Infinity;\n  var maxY = -Infinity;\n\n  for (var i = 0; i < points.length;) {\n    var x = points[i++];\n    var y = points[i++];\n\n    if (!isNaN(x)) {\n      minX = Math.min(x, minX);\n      maxX = Math.max(x, maxX);\n    }\n\n    if (!isNaN(y)) {\n      minY = Math.min(y, minY);\n      maxY = Math.max(y, maxY);\n    }\n  }\n\n  return [[minX, minY], [maxX, maxY]];\n}\n\nfunction getBoundingDiff(points1, points2) {\n  var _a = bboxFromPoints(points1),\n      min1 = _a[0],\n      max1 = _a[1];\n\n  var _b = bboxFromPoints(points2),\n      min2 = _b[0],\n      max2 = _b[1];\n\n  return Math.max(Math.abs(min1[0] - min2[0]), Math.abs(min1[1] - min2[1]), Math.abs(max1[0] - max2[0]), Math.abs(max1[1] - max2[1]));\n}\n\nfunction getSmooth(smooth) {\n  return typeof smooth === 'number' ? smooth : smooth ? 0.5 : 0;\n}\n\nfunction getStackedOnPoints(coordSys, data, dataCoordInfo) {\n  if (!dataCoordInfo.valueDim) {\n    return [];\n  }\n\n  var len = data.count();\n  var points = createFloat32Array(len * 2);\n\n  for (var idx = 0; idx < len; idx++) {\n    var pt = getStackedOnPoint(dataCoordInfo, coordSys, data, idx);\n    points[idx * 2] = pt[0];\n    points[idx * 2 + 1] = pt[1];\n  }\n\n  return points;\n}\n\nfunction turnPointsIntoStep(points, coordSys, stepTurnAt) {\n  var baseAxis = coordSys.getBaseAxis();\n  var baseIndex = baseAxis.dim === 'x' || baseAxis.dim === 'radius' ? 0 : 1;\n  var stepPoints = [];\n  var i = 0;\n  var stepPt = [];\n  var pt = [];\n  var nextPt = [];\n\n  for (; i < points.length - 2; i += 2) {\n    nextPt[0] = points[i + 2];\n    nextPt[1] = points[i + 3];\n    pt[0] = points[i];\n    pt[1] = points[i + 1];\n    stepPoints.push(pt[0], pt[1]);\n\n    switch (stepTurnAt) {\n      case 'end':\n        stepPt[baseIndex] = nextPt[baseIndex];\n        stepPt[1 - baseIndex] = pt[1 - baseIndex];\n        stepPoints.push(stepPt[0], stepPt[1]);\n        break;\n\n      case 'middle':\n        var middle = (pt[baseIndex] + nextPt[baseIndex]) / 2;\n        var stepPt2 = [];\n        stepPt[baseIndex] = stepPt2[baseIndex] = middle;\n        stepPt[1 - baseIndex] = pt[1 - baseIndex];\n        stepPt2[1 - baseIndex] = nextPt[1 - baseIndex];\n        stepPoints.push(stepPt[0], stepPt[1]);\n        stepPoints.push(stepPt2[0], stepPt2[1]);\n        break;\n\n      default:\n        stepPt[baseIndex] = pt[baseIndex];\n        stepPt[1 - baseIndex] = nextPt[1 - baseIndex];\n        stepPoints.push(stepPt[0], stepPt[1]);\n    }\n  }\n\n  stepPoints.push(points[i++], points[i++]);\n  return stepPoints;\n}\n\nfunction getVisualGradient(data, coordSys) {\n  var visualMetaList = data.getVisual('visualMeta');\n\n  if (!visualMetaList || !visualMetaList.length || !data.count()) {\n    return;\n  }\n\n  if (coordSys.type !== 'cartesian2d') {\n    if (process.env.NODE_ENV !== 'production') {\n      console.warn('Visual map on line style is only supported on cartesian2d.');\n    }\n\n    return;\n  }\n\n  var coordDim;\n  var visualMeta;\n\n  for (var i = visualMetaList.length - 1; i >= 0; i--) {\n    var dimIndex = visualMetaList[i].dimension;\n    var dimName = data.dimensions[dimIndex];\n    var dimInfo = data.getDimensionInfo(dimName);\n    coordDim = dimInfo && dimInfo.coordDim;\n\n    if (coordDim === 'x' || coordDim === 'y') {\n      visualMeta = visualMetaList[i];\n      break;\n    }\n  }\n\n  if (!visualMeta) {\n    if (process.env.NODE_ENV !== 'production') {\n      console.warn('Visual map on line style only support x or y dimension.');\n    }\n\n    return;\n  }\n\n  var axis = coordSys.getAxis(coordDim);\n  var colorStops = zrUtil.map(visualMeta.stops, function (stop) {\n    return {\n      offset: 0,\n      coord: axis.toGlobalCoord(axis.dataToCoord(stop.value)),\n      color: stop.color\n    };\n  });\n  var stopLen = colorStops.length;\n  var outerColors = visualMeta.outerColors.slice();\n\n  if (stopLen && colorStops[0].coord > colorStops[stopLen - 1].coord) {\n    colorStops.reverse();\n    outerColors.reverse();\n  }\n\n  var tinyExtent = 10;\n  var minCoord = colorStops[0].coord - tinyExtent;\n  var maxCoord = colorStops[stopLen - 1].coord + tinyExtent;\n  var coordSpan = maxCoord - minCoord;\n\n  if (coordSpan < 1e-3) {\n    return 'transparent';\n  }\n\n  zrUtil.each(colorStops, function (stop) {\n    stop.offset = (stop.coord - minCoord) / coordSpan;\n  });\n  colorStops.push({\n    offset: stopLen ? colorStops[stopLen - 1].offset : 0.5,\n    color: outerColors[1] || 'transparent'\n  });\n  colorStops.unshift({\n    offset: stopLen ? colorStops[0].offset : 0.5,\n    color: outerColors[0] || 'transparent'\n  });\n  var gradient = new graphic.LinearGradient(0, 0, 0, 0, colorStops, true);\n  gradient[coordDim] = minCoord;\n  gradient[coordDim + '2'] = maxCoord;\n  return gradient;\n}\n\nfunction getIsIgnoreFunc(seriesModel, data, coordSys) {\n  var showAllSymbol = seriesModel.get('showAllSymbol');\n  var isAuto = showAllSymbol === 'auto';\n\n  if (showAllSymbol && !isAuto) {\n    return;\n  }\n\n  var categoryAxis = coordSys.getAxesByScale('ordinal')[0];\n\n  if (!categoryAxis) {\n    return;\n  }\n\n  if (isAuto && canShowAllSymbolForCategory(categoryAxis, data)) {\n    return;\n  }\n\n  var categoryDataDim = data.mapDimension(categoryAxis.dim);\n  var labelMap = {};\n  zrUtil.each(categoryAxis.getViewLabels(), function (labelItem) {\n    var ordinalNumber = categoryAxis.scale.getRawOrdinalNumber(labelItem.tickValue);\n    labelMap[ordinalNumber] = 1;\n  });\n  return function (dataIndex) {\n    return !labelMap.hasOwnProperty(data.get(categoryDataDim, dataIndex));\n  };\n}\n\nfunction canShowAllSymbolForCategory(categoryAxis, data) {\n  var axisExtent = categoryAxis.getExtent();\n  var availSize = Math.abs(axisExtent[1] - axisExtent[0]) / categoryAxis.scale.count();\n  isNaN(availSize) && (availSize = 0);\n  var dataLen = data.count();\n  var step = Math.max(1, Math.round(dataLen / 5));\n\n  for (var dataIndex = 0; dataIndex < dataLen; dataIndex += step) {\n    if (SymbolClz.getSymbolSize(data, dataIndex)[categoryAxis.isHorizontal() ? 1 : 0] * 1.5 > availSize) {\n      return false;\n    }\n  }\n\n  return true;\n}\n\nfunction isPointNull(x, y) {\n  return isNaN(x) || isNaN(y);\n}\n\nfunction getLastIndexNotNull(points) {\n  var len = points.length / 2;\n\n  for (; len > 0; len--) {\n    if (!isPointNull(points[len * 2 - 2], points[len * 2 - 1])) {\n      break;\n    }\n  }\n\n  return len - 1;\n}\n\nfunction getPointAtIndex(points, idx) {\n  return [points[idx * 2], points[idx * 2 + 1]];\n}\n\nfunction getIndexRange(points, xOrY, dim) {\n  var len = points.length / 2;\n  var dimIdx = dim === 'x' ? 0 : 1;\n  var a;\n  var b;\n  var prevIndex = 0;\n  var nextIndex = -1;\n\n  for (var i = 0; i < len; i++) {\n    b = points[i * 2 + dimIdx];\n\n    if (isNaN(b) || isNaN(points[i * 2 + 1 - dimIdx])) {\n      continue;\n    }\n\n    if (i === 0) {\n      a = b;\n      continue;\n    }\n\n    if (a <= xOrY && b >= xOrY || a >= xOrY && b <= xOrY) {\n      nextIndex = i;\n      break;\n    }\n\n    prevIndex = i;\n    a = b;\n  }\n\n  return {\n    range: [prevIndex, nextIndex],\n    t: (xOrY - a) / (b - a)\n  };\n}\n\nfunction createLineClipPath(lineView, coordSys, hasAnimation, seriesModel) {\n  if (isCoordinateSystemType(coordSys, 'cartesian2d')) {\n    var endLabelModel_1 = seriesModel.getModel('endLabel');\n    var showEndLabel = endLabelModel_1.get('show');\n    var valueAnimation_1 = endLabelModel_1.get('valueAnimation');\n    var data_1 = seriesModel.getData();\n    var labelAnimationRecord_1 = {\n      lastFrameIndex: 0\n    };\n    var during = showEndLabel ? function (percent, clipRect) {\n      lineView._endLabelOnDuring(percent, clipRect, data_1, labelAnimationRecord_1, valueAnimation_1, endLabelModel_1, coordSys);\n    } : null;\n    var isHorizontal = coordSys.getBaseAxis().isHorizontal();\n    var clipPath = createGridClipPath(coordSys, hasAnimation, seriesModel, function () {\n      var endLabel = lineView._endLabel;\n\n      if (endLabel && hasAnimation) {\n        if (labelAnimationRecord_1.originalX != null) {\n          endLabel.attr({\n            x: labelAnimationRecord_1.originalX,\n            y: labelAnimationRecord_1.originalY\n          });\n        }\n      }\n    }, during);\n\n    if (!seriesModel.get('clip', true)) {\n      var rectShape = clipPath.shape;\n      var expandSize = Math.max(rectShape.width, rectShape.height);\n\n      if (isHorizontal) {\n        rectShape.y -= expandSize;\n        rectShape.height += expandSize * 2;\n      } else {\n        rectShape.x -= expandSize;\n        rectShape.width += expandSize * 2;\n      }\n    }\n\n    if (during) {\n      during(1, clipPath);\n    }\n\n    return clipPath;\n  } else {\n    if (process.env.NODE_ENV !== 'production') {\n      if (seriesModel.get(['endLabel', 'show'])) {\n        console.warn('endLabel is not supported for lines in polar systems.');\n      }\n    }\n\n    return createPolarClipPath(coordSys, hasAnimation, seriesModel);\n  }\n}\n\nfunction getEndLabelStateSpecified(endLabelModel, coordSys) {\n  var baseAxis = coordSys.getBaseAxis();\n  var isHorizontal = baseAxis.isHorizontal();\n  var isBaseInversed = baseAxis.inverse;\n  var align = isHorizontal ? isBaseInversed ? 'right' : 'left' : 'center';\n  var verticalAlign = isHorizontal ? 'middle' : isBaseInversed ? 'top' : 'bottom';\n  return {\n    normal: {\n      align: endLabelModel.get('align') || align,\n      verticalAlign: endLabelModel.get('verticalAlign') || verticalAlign\n    }\n  };\n}\n\nvar LineView = function (_super) {\n  __extends(LineView, _super);\n\n  function LineView() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  LineView.prototype.init = function () {\n    var lineGroup = new graphic.Group();\n    var symbolDraw = new SymbolDraw();\n    this.group.add(symbolDraw.group);\n    this._symbolDraw = symbolDraw;\n    this._lineGroup = lineGroup;\n  };\n\n  LineView.prototype.render = function (seriesModel, ecModel, api) {\n    var _this = this;\n\n    var coordSys = seriesModel.coordinateSystem;\n    var group = this.group;\n    var data = seriesModel.getData();\n    var lineStyleModel = seriesModel.getModel('lineStyle');\n    var areaStyleModel = seriesModel.getModel('areaStyle');\n    var points = data.getLayout('points') || [];\n    var isCoordSysPolar = coordSys.type === 'polar';\n    var prevCoordSys = this._coordSys;\n    var symbolDraw = this._symbolDraw;\n    var polyline = this._polyline;\n    var polygon = this._polygon;\n    var lineGroup = this._lineGroup;\n    var hasAnimation = seriesModel.get('animation');\n    var isAreaChart = !areaStyleModel.isEmpty();\n    var valueOrigin = areaStyleModel.get('origin');\n    var dataCoordInfo = prepareDataCoordInfo(coordSys, data, valueOrigin);\n    var stackedOnPoints = isAreaChart && getStackedOnPoints(coordSys, data, dataCoordInfo);\n    var showSymbol = seriesModel.get('showSymbol');\n    var isIgnoreFunc = showSymbol && !isCoordSysPolar && getIsIgnoreFunc(seriesModel, data, coordSys);\n    var oldData = this._data;\n    oldData && oldData.eachItemGraphicEl(function (el, idx) {\n      if (el.__temp) {\n        group.remove(el);\n        oldData.setItemGraphicEl(idx, null);\n      }\n    });\n\n    if (!showSymbol) {\n      symbolDraw.remove();\n    }\n\n    group.add(lineGroup);\n    var step = !isCoordSysPolar ? seriesModel.get('step') : false;\n    var clipShapeForSymbol;\n\n    if (coordSys && coordSys.getArea && seriesModel.get('clip', true)) {\n      clipShapeForSymbol = coordSys.getArea();\n\n      if (clipShapeForSymbol.width != null) {\n        clipShapeForSymbol.x -= 0.1;\n        clipShapeForSymbol.y -= 0.1;\n        clipShapeForSymbol.width += 0.2;\n        clipShapeForSymbol.height += 0.2;\n      } else if (clipShapeForSymbol.r0) {\n        clipShapeForSymbol.r0 -= 0.5;\n        clipShapeForSymbol.r += 0.5;\n      }\n    }\n\n    this._clipShapeForSymbol = clipShapeForSymbol;\n\n    if (!(polyline && prevCoordSys.type === coordSys.type && step === this._step)) {\n      showSymbol && symbolDraw.updateData(data, {\n        isIgnore: isIgnoreFunc,\n        clipShape: clipShapeForSymbol,\n        disableAnimation: true,\n        getSymbolPoint: function (idx) {\n          return [points[idx * 2], points[idx * 2 + 1]];\n        }\n      });\n      hasAnimation && this._initSymbolLabelAnimation(data, coordSys, clipShapeForSymbol);\n\n      if (step) {\n        points = turnPointsIntoStep(points, coordSys, step);\n\n        if (stackedOnPoints) {\n          stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\n        }\n      }\n\n      polyline = this._newPolyline(points);\n\n      if (isAreaChart) {\n        polygon = this._newPolygon(points, stackedOnPoints);\n      }\n\n      if (!isCoordSysPolar) {\n        this._initOrUpdateEndLabel(seriesModel, coordSys);\n      }\n\n      lineGroup.setClipPath(createLineClipPath(this, coordSys, true, seriesModel));\n    } else {\n      if (isAreaChart && !polygon) {\n        polygon = this._newPolygon(points, stackedOnPoints);\n      } else if (polygon && !isAreaChart) {\n        lineGroup.remove(polygon);\n        polygon = this._polygon = null;\n      }\n\n      if (!isCoordSysPolar) {\n        this._initOrUpdateEndLabel(seriesModel, coordSys);\n      }\n\n      lineGroup.setClipPath(createLineClipPath(this, coordSys, false, seriesModel));\n      showSymbol && symbolDraw.updateData(data, {\n        isIgnore: isIgnoreFunc,\n        clipShape: clipShapeForSymbol,\n        disableAnimation: true,\n        getSymbolPoint: function (idx) {\n          return [points[idx * 2], points[idx * 2 + 1]];\n        }\n      });\n\n      if (!isPointsSame(this._stackedOnPoints, stackedOnPoints) || !isPointsSame(this._points, points)) {\n        if (hasAnimation) {\n          this._doUpdateAnimation(data, stackedOnPoints, coordSys, api, step, valueOrigin);\n        } else {\n          if (step) {\n            points = turnPointsIntoStep(points, coordSys, step);\n\n            if (stackedOnPoints) {\n              stackedOnPoints = turnPointsIntoStep(stackedOnPoints, coordSys, step);\n            }\n          }\n\n          polyline.setShape({\n            points: points\n          });\n          polygon && polygon.setShape({\n            points: points,\n            stackedOnPoints: stackedOnPoints\n          });\n        }\n      }\n    }\n\n    var visualColor = getVisualGradient(data, coordSys) || data.getVisual('style')[data.getVisual('drawType')];\n    var focus = seriesModel.get(['emphasis', 'focus']);\n    var blurScope = seriesModel.get(['emphasis', 'blurScope']);\n    polyline.useStyle(zrUtil.defaults(lineStyleModel.getLineStyle(), {\n      fill: 'none',\n      stroke: visualColor,\n      lineJoin: 'bevel'\n    }));\n    setStatesStylesFromModel(polyline, seriesModel, 'lineStyle');\n\n    if (polyline.style.lineWidth > 0 && seriesModel.get(['emphasis', 'lineStyle', 'width']) === 'bolder') {\n      var emphasisLineStyle = polyline.getState('emphasis').style;\n      emphasisLineStyle.lineWidth = polyline.style.lineWidth + 1;\n    }\n\n    getECData(polyline).seriesIndex = seriesModel.seriesIndex;\n    enableHoverEmphasis(polyline, focus, blurScope);\n    var smooth = getSmooth(seriesModel.get('smooth'));\n    var smoothMonotone = seriesModel.get('smoothMonotone');\n    var connectNulls = seriesModel.get('connectNulls');\n    polyline.setShape({\n      smooth: smooth,\n      smoothMonotone: smoothMonotone,\n      connectNulls: connectNulls\n    });\n\n    if (polygon) {\n      var stackedOnSeries = data.getCalculationInfo('stackedOnSeries');\n      var stackedOnSmooth = 0;\n      polygon.useStyle(zrUtil.defaults(areaStyleModel.getAreaStyle(), {\n        fill: visualColor,\n        opacity: 0.7,\n        lineJoin: 'bevel',\n        decal: data.getVisual('style').decal\n      }));\n\n      if (stackedOnSeries) {\n        stackedOnSmooth = getSmooth(stackedOnSeries.get('smooth'));\n      }\n\n      polygon.setShape({\n        smooth: smooth,\n        stackedOnSmooth: stackedOnSmooth,\n        smoothMonotone: smoothMonotone,\n        connectNulls: connectNulls\n      });\n      setStatesStylesFromModel(polygon, seriesModel, 'areaStyle');\n      getECData(polygon).seriesIndex = seriesModel.seriesIndex;\n      enableHoverEmphasis(polygon, focus, blurScope);\n    }\n\n    var changePolyState = function (toState) {\n      _this._changePolyState(toState);\n    };\n\n    data.eachItemGraphicEl(function (el) {\n      el && (el.onHoverStateChange = changePolyState);\n    });\n    this._polyline.onHoverStateChange = changePolyState;\n    this._data = data;\n    this._coordSys = coordSys;\n    this._stackedOnPoints = stackedOnPoints;\n    this._points = points;\n    this._step = step;\n    this._valueOrigin = valueOrigin;\n  };\n\n  LineView.prototype.dispose = function () {};\n\n  LineView.prototype.highlight = function (seriesModel, ecModel, api, payload) {\n    var data = seriesModel.getData();\n    var dataIndex = modelUtil.queryDataIndex(data, payload);\n\n    this._changePolyState('emphasis');\n\n    if (!(dataIndex instanceof Array) && dataIndex != null && dataIndex >= 0) {\n      var points = data.getLayout('points');\n      var symbol = data.getItemGraphicEl(dataIndex);\n\n      if (!symbol) {\n        var x = points[dataIndex * 2];\n        var y = points[dataIndex * 2 + 1];\n\n        if (isNaN(x) || isNaN(y)) {\n          return;\n        }\n\n        if (this._clipShapeForSymbol && !this._clipShapeForSymbol.contain(x, y)) {\n          return;\n        }\n\n        symbol = new SymbolClz(data, dataIndex);\n        symbol.x = x;\n        symbol.y = y;\n        symbol.setZ(seriesModel.get('zlevel'), seriesModel.get('z'));\n        symbol.__temp = true;\n        data.setItemGraphicEl(dataIndex, symbol);\n        symbol.stopSymbolAnimation(true);\n        this.group.add(symbol);\n      }\n\n      symbol.highlight();\n    } else {\n      ChartView.prototype.highlight.call(this, seriesModel, ecModel, api, payload);\n    }\n  };\n\n  LineView.prototype.downplay = function (seriesModel, ecModel, api, payload) {\n    var data = seriesModel.getData();\n    var dataIndex = modelUtil.queryDataIndex(data, payload);\n\n    this._changePolyState('normal');\n\n    if (dataIndex != null && dataIndex >= 0) {\n      var symbol = data.getItemGraphicEl(dataIndex);\n\n      if (symbol) {\n        if (symbol.__temp) {\n          data.setItemGraphicEl(dataIndex, null);\n          this.group.remove(symbol);\n        } else {\n          symbol.downplay();\n        }\n      }\n    } else {\n      ChartView.prototype.downplay.call(this, seriesModel, ecModel, api, payload);\n    }\n  };\n\n  LineView.prototype._changePolyState = function (toState) {\n    var polygon = this._polygon;\n    setStatesFlag(this._polyline, toState);\n    polygon && setStatesFlag(polygon, toState);\n  };\n\n  LineView.prototype._newPolyline = function (points) {\n    var polyline = this._polyline;\n\n    if (polyline) {\n      this._lineGroup.remove(polyline);\n    }\n\n    polyline = new ECPolyline({\n      shape: {\n        points: points\n      },\n      segmentIgnoreThreshold: 2,\n      z2: 10\n    });\n\n    this._lineGroup.add(polyline);\n\n    this._polyline = polyline;\n    return polyline;\n  };\n\n  LineView.prototype._newPolygon = function (points, stackedOnPoints) {\n    var polygon = this._polygon;\n\n    if (polygon) {\n      this._lineGroup.remove(polygon);\n    }\n\n    polygon = new ECPolygon({\n      shape: {\n        points: points,\n        stackedOnPoints: stackedOnPoints\n      },\n      segmentIgnoreThreshold: 2\n    });\n\n    this._lineGroup.add(polygon);\n\n    this._polygon = polygon;\n    return polygon;\n  };\n\n  LineView.prototype._initSymbolLabelAnimation = function (data, coordSys, clipShape) {\n    var isHorizontalOrRadial;\n    var isCoordSysPolar;\n    var baseAxis = coordSys.getBaseAxis();\n    var isAxisInverse = baseAxis.inverse;\n\n    if (coordSys.type === 'cartesian2d') {\n      isHorizontalOrRadial = baseAxis.isHorizontal();\n      isCoordSysPolar = false;\n    } else if (coordSys.type === 'polar') {\n      isHorizontalOrRadial = baseAxis.dim === 'angle';\n      isCoordSysPolar = true;\n    }\n\n    var seriesModel = data.hostModel;\n    var seriesDuration = seriesModel.get('animationDuration');\n\n    if (typeof seriesDuration === 'function') {\n      seriesDuration = seriesDuration(null);\n    }\n\n    var seriesDalay = seriesModel.get('animationDelay') || 0;\n    var seriesDalayValue = typeof seriesDalay === 'function' ? seriesDalay(null) : seriesDalay;\n    data.eachItemGraphicEl(function (symbol, idx) {\n      var el = symbol;\n\n      if (el) {\n        var point = [symbol.x, symbol.y];\n        var start = void 0;\n        var end = void 0;\n        var current = void 0;\n\n        if (isCoordSysPolar) {\n          var polarClip = clipShape;\n          var coord = coordSys.pointToCoord(point);\n\n          if (isHorizontalOrRadial) {\n            start = polarClip.startAngle;\n            end = polarClip.endAngle;\n            current = -coord[1] / 180 * Math.PI;\n          } else {\n            start = polarClip.r0;\n            end = polarClip.r;\n            current = coord[0];\n          }\n        } else {\n          var gridClip = clipShape;\n\n          if (isHorizontalOrRadial) {\n            start = gridClip.x;\n            end = gridClip.x + gridClip.width;\n            current = symbol.x;\n          } else {\n            start = gridClip.y + gridClip.height;\n            end = gridClip.y;\n            current = symbol.y;\n          }\n        }\n\n        var ratio = end === start ? 0 : (current - start) / (end - start);\n\n        if (isAxisInverse) {\n          ratio = 1 - ratio;\n        }\n\n        var delay = typeof seriesDalay === 'function' ? seriesDalay(idx) : seriesDuration * ratio + seriesDalayValue;\n        var symbolPath = el.getSymbolPath();\n        var text = symbolPath.getTextContent();\n        el.attr({\n          scaleX: 0,\n          scaleY: 0\n        });\n        el.animateTo({\n          scaleX: 1,\n          scaleY: 1\n        }, {\n          duration: 200,\n          delay: delay\n        });\n\n        if (text) {\n          text.animateFrom({\n            style: {\n              opacity: 0\n            }\n          }, {\n            duration: 300,\n            delay: delay\n          });\n        }\n\n        symbolPath.disableLabelAnimation = true;\n      }\n    });\n  };\n\n  LineView.prototype._initOrUpdateEndLabel = function (seriesModel, coordSys) {\n    var endLabelModel = seriesModel.getModel('endLabel');\n\n    if (endLabelModel.get('show')) {\n      var data_2 = seriesModel.getData();\n      var polyline = this._polyline;\n      var endLabel = this._endLabel;\n\n      if (!endLabel) {\n        endLabel = this._endLabel = new graphic.Text({\n          z2: 200\n        });\n        endLabel.ignoreClip = true;\n        polyline.setTextContent(this._endLabel);\n        polyline.disableLabelAnimation = true;\n      }\n\n      var dataIndex = getLastIndexNotNull(data_2.getLayout('points'));\n\n      if (dataIndex >= 0) {\n        setLabelStyle(polyline, getLabelStatesModels(seriesModel, 'endLabel'), {\n          labelFetcher: seriesModel,\n          labelDataIndex: dataIndex,\n          defaultText: function (dataIndex, opt, interpolatedValue) {\n            return interpolatedValue != null ? getDefaultInterpolatedLabel(data_2, interpolatedValue) : getDefaultLabel(data_2, dataIndex);\n          },\n          enableTextSetter: true\n        }, getEndLabelStateSpecified(endLabelModel, coordSys));\n        polyline.textConfig.position = null;\n      }\n    } else if (this._endLabel) {\n      this._polyline.removeTextContent();\n\n      this._endLabel = null;\n    }\n  };\n\n  LineView.prototype._endLabelOnDuring = function (percent, clipRect, data, animationRecord, valueAnimation, endLabelModel, coordSys) {\n    var endLabel = this._endLabel;\n    var polyline = this._polyline;\n\n    if (endLabel) {\n      if (percent < 1 && animationRecord.originalX == null) {\n        animationRecord.originalX = endLabel.x;\n        animationRecord.originalY = endLabel.y;\n      }\n\n      var points = data.getLayout('points');\n      var seriesModel = data.hostModel;\n      var connectNulls = seriesModel.get('connectNulls');\n      var precision = endLabelModel.get('precision');\n      var distance = endLabelModel.get('distance') || 0;\n      var baseAxis = coordSys.getBaseAxis();\n      var isHorizontal = baseAxis.isHorizontal();\n      var isBaseInversed = baseAxis.inverse;\n      var clipShape = clipRect.shape;\n      var xOrY = isBaseInversed ? isHorizontal ? clipShape.x : clipShape.y + clipShape.height : isHorizontal ? clipShape.x + clipShape.width : clipShape.y;\n      var distanceX = (isHorizontal ? distance : 0) * (isBaseInversed ? -1 : 1);\n      var distanceY = (isHorizontal ? 0 : -distance) * (isBaseInversed ? -1 : 1);\n      var dim = isHorizontal ? 'x' : 'y';\n      var dataIndexRange = getIndexRange(points, xOrY, dim);\n      var indices = dataIndexRange.range;\n      var diff = indices[1] - indices[0];\n      var value = void 0;\n\n      if (diff >= 1) {\n        if (diff > 1 && !connectNulls) {\n          var pt = getPointAtIndex(points, indices[0]);\n          endLabel.attr({\n            x: pt[0] + distanceX,\n            y: pt[1] + distanceY\n          });\n          valueAnimation && (value = seriesModel.getRawValue(indices[0]));\n        } else {\n          var pt = polyline.getPointOn(xOrY, dim);\n          pt && endLabel.attr({\n            x: pt[0] + distanceX,\n            y: pt[1] + distanceY\n          });\n          var startValue = seriesModel.getRawValue(indices[0]);\n          var endValue = seriesModel.getRawValue(indices[1]);\n          valueAnimation && (value = modelUtil.interpolateRawValues(data, precision, startValue, endValue, dataIndexRange.t));\n        }\n\n        animationRecord.lastFrameIndex = indices[0];\n      } else {\n        var idx = percent === 1 || animationRecord.lastFrameIndex > 0 ? indices[0] : 0;\n        var pt = getPointAtIndex(points, idx);\n        valueAnimation && (value = seriesModel.getRawValue(idx));\n        endLabel.attr({\n          x: pt[0] + distanceX,\n          y: pt[1] + distanceY\n        });\n      }\n\n      if (valueAnimation) {\n        labelInner(endLabel).setLabelText(value);\n      }\n    }\n  };\n\n  LineView.prototype._doUpdateAnimation = function (data, stackedOnPoints, coordSys, api, step, valueOrigin) {\n    var polyline = this._polyline;\n    var polygon = this._polygon;\n    var seriesModel = data.hostModel;\n    var diff = lineAnimationDiff(this._data, data, this._stackedOnPoints, stackedOnPoints, this._coordSys, coordSys, this._valueOrigin, valueOrigin);\n    var current = diff.current;\n    var stackedOnCurrent = diff.stackedOnCurrent;\n    var next = diff.next;\n    var stackedOnNext = diff.stackedOnNext;\n\n    if (step) {\n      current = turnPointsIntoStep(diff.current, coordSys, step);\n      stackedOnCurrent = turnPointsIntoStep(diff.stackedOnCurrent, coordSys, step);\n      next = turnPointsIntoStep(diff.next, coordSys, step);\n      stackedOnNext = turnPointsIntoStep(diff.stackedOnNext, coordSys, step);\n    }\n\n    if (getBoundingDiff(current, next) > 3000 || polygon && getBoundingDiff(stackedOnCurrent, stackedOnNext) > 3000) {\n      polyline.setShape({\n        points: next\n      });\n\n      if (polygon) {\n        polygon.setShape({\n          points: next,\n          stackedOnPoints: stackedOnNext\n        });\n      }\n\n      return;\n    }\n\n    polyline.shape.__points = diff.current;\n    polyline.shape.points = current;\n    var target = {\n      shape: {\n        points: next\n      }\n    };\n\n    if (diff.current !== current) {\n      target.shape.__points = diff.next;\n    }\n\n    polyline.stopAnimation();\n    graphic.updateProps(polyline, target, seriesModel);\n\n    if (polygon) {\n      polygon.setShape({\n        points: current,\n        stackedOnPoints: stackedOnCurrent\n      });\n      polygon.stopAnimation();\n      graphic.updateProps(polygon, {\n        shape: {\n          stackedOnPoints: stackedOnNext\n        }\n      }, seriesModel);\n\n      if (polyline.shape.points !== polygon.shape.points) {\n        polygon.shape.points = polyline.shape.points;\n      }\n    }\n\n    var updatedDataInfo = [];\n    var diffStatus = diff.status;\n\n    for (var i = 0; i < diffStatus.length; i++) {\n      var cmd = diffStatus[i].cmd;\n\n      if (cmd === '=') {\n        var el = data.getItemGraphicEl(diffStatus[i].idx1);\n\n        if (el) {\n          updatedDataInfo.push({\n            el: el,\n            ptIdx: i\n          });\n        }\n      }\n    }\n\n    if (polyline.animators && polyline.animators.length) {\n      polyline.animators[0].during(function () {\n        polygon && polygon.dirtyShape();\n        var points = polyline.shape.__points;\n\n        for (var i = 0; i < updatedDataInfo.length; i++) {\n          var el = updatedDataInfo[i].el;\n          var offset = updatedDataInfo[i].ptIdx * 2;\n          el.x = points[offset];\n          el.y = points[offset + 1];\n          el.markRedraw();\n        }\n      });\n    }\n  };\n\n  LineView.prototype.remove = function (ecModel) {\n    var group = this.group;\n    var oldData = this._data;\n\n    this._lineGroup.removeAll();\n\n    this._symbolDraw.remove(true);\n\n    oldData && oldData.eachItemGraphicEl(function (el, idx) {\n      if (el.__temp) {\n        group.remove(el);\n        oldData.setItemGraphicEl(idx, null);\n      }\n    });\n    this._polyline = this._polygon = this._coordSys = this._points = this._stackedOnPoints = this._endLabel = this._data = null;\n  };\n\n  LineView.type = 'line';\n  return LineView;\n}(ChartView);\n\nexport default LineView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { map } from 'zrender/lib/core/util';\nimport createRenderPlanner from '../chart/helper/createRenderPlanner';\nimport { isDimensionStacked } from '../data/helper/dataStackHelper';\nimport { createFloat32Array } from '../util/vendor';\nexport default function pointsLayout(seriesType, forceStoreInTypedArray) {\n  return {\n    seriesType: seriesType,\n    plan: createRenderPlanner(),\n    reset: function (seriesModel) {\n      var data = seriesModel.getData();\n      var coordSys = seriesModel.coordinateSystem;\n      var pipelineContext = seriesModel.pipelineContext;\n      var useTypedArray = forceStoreInTypedArray || pipelineContext.large;\n\n      if (!coordSys) {\n        return;\n      }\n\n      var dims = map(coordSys.dimensions, function (dim) {\n        return data.mapDimension(dim);\n      }).slice(0, 2);\n      var dimLen = dims.length;\n      var stackResultDim = data.getCalculationInfo('stackResultDimension');\n\n      if (isDimensionStacked(data, dims[0])) {\n        dims[0] = stackResultDim;\n      }\n\n      if (isDimensionStacked(data, dims[1])) {\n        dims[1] = stackResultDim;\n      }\n\n      var dimInfo0 = data.getDimensionInfo(dims[0]);\n      var dimInfo1 = data.getDimensionInfo(dims[1]);\n      var dimIdx0 = dimInfo0 && dimInfo0.index;\n      var dimIdx1 = dimInfo1 && dimInfo1.index;\n      return dimLen && {\n        progress: function (params, data) {\n          var segCount = params.end - params.start;\n          var points = useTypedArray && createFloat32Array(segCount * dimLen);\n          var tmpIn = [];\n          var tmpOut = [];\n\n          for (var i = params.start, offset = 0; i < params.end; i++) {\n            var point = void 0;\n\n            if (dimLen === 1) {\n              var x = data.getByDimIdx(dimIdx0, i);\n              point = coordSys.dataToPoint(x, null, tmpOut);\n            } else {\n              tmpIn[0] = data.getByDimIdx(dimIdx0, i);\n              tmpIn[1] = data.getByDimIdx(dimIdx1, i);\n              point = coordSys.dataToPoint(tmpIn, null, tmpOut);\n            }\n\n            if (useTypedArray) {\n              points[offset++] = point[0];\n              points[offset++] = point[1];\n            } else {\n              data.setItemLayout(i, point.slice());\n            }\n          }\n\n          useTypedArray && data.setLayout('points', points);\n        }\n      };\n    }\n  };\n}\n;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar samplers = {\n  average: function (frame) {\n    var sum = 0;\n    var count = 0;\n\n    for (var i = 0; i < frame.length; i++) {\n      if (!isNaN(frame[i])) {\n        sum += frame[i];\n        count++;\n      }\n    }\n\n    return count === 0 ? NaN : sum / count;\n  },\n  sum: function (frame) {\n    var sum = 0;\n\n    for (var i = 0; i < frame.length; i++) {\n      sum += frame[i] || 0;\n    }\n\n    return sum;\n  },\n  max: function (frame) {\n    var max = -Infinity;\n\n    for (var i = 0; i < frame.length; i++) {\n      frame[i] > max && (max = frame[i]);\n    }\n\n    return isFinite(max) ? max : NaN;\n  },\n  min: function (frame) {\n    var min = Infinity;\n\n    for (var i = 0; i < frame.length; i++) {\n      frame[i] < min && (min = frame[i]);\n    }\n\n    return isFinite(min) ? min : NaN;\n  },\n  nearest: function (frame) {\n    return frame[0];\n  }\n};\n\nvar indexSampler = function (frame) {\n  return Math.round(frame.length / 2);\n};\n\nexport default function dataSample(seriesType) {\n  return {\n    seriesType: seriesType,\n    reset: function (seriesModel, ecModel, api) {\n      var data = seriesModel.getData();\n      var sampling = seriesModel.get('sampling');\n      var coordSys = seriesModel.coordinateSystem;\n      var count = data.count();\n\n      if (count > 10 && coordSys.type === 'cartesian2d' && sampling) {\n        var baseAxis = coordSys.getBaseAxis();\n        var valueAxis = coordSys.getOtherAxis(baseAxis);\n        var extent = baseAxis.getExtent();\n        var dpr = api.getDevicePixelRatio();\n        var size = Math.abs(extent[1] - extent[0]) * (dpr || 1);\n        var rate = Math.round(count / size);\n\n        if (rate > 1) {\n          if (sampling === 'lttb') {\n            seriesModel.setData(data.lttbDownSample(data.mapDimension(valueAxis.dim), 1 / rate));\n          }\n\n          var sampler = void 0;\n\n          if (typeof sampling === 'string') {\n            sampler = samplers[sampling];\n          } else if (typeof sampling === 'function') {\n            sampler = sampling;\n          }\n\n          if (sampler) {\n            seriesModel.setData(data.downSample(data.mapDimension(valueAxis.dim), 1 / rate, sampler, indexSampler));\n          }\n        }\n      }\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport LineSeries from './LineSeries';\nimport LineView from './LineView';\nimport layoutPoints from '../../layout/points';\nimport dataSample from '../../processor/dataSample';\nexport function install(registers) {\n  registers.registerChartView(LineView);\n  registers.registerSeriesModel(LineSeries);\n  registers.registerLayout(layoutPoints('line', true));\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, dataSample('line'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport SeriesModel from '../../model/Series';\nimport createListFromArray from '../helper/createListFromArray';\n\nvar BaseBarSeriesModel = function (_super) {\n  __extends(BaseBarSeriesModel, _super);\n\n  function BaseBarSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BaseBarSeriesModel.type;\n    return _this;\n  }\n\n  BaseBarSeriesModel.prototype.getInitialData = function (option, ecModel) {\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: true\n    });\n  };\n\n  BaseBarSeriesModel.prototype.getMarkerPosition = function (value) {\n    var coordSys = this.coordinateSystem;\n\n    if (coordSys) {\n      var pt = coordSys.dataToPoint(coordSys.clampData(value));\n      var data = this.getData();\n      var offset = data.getLayout('offset');\n      var size = data.getLayout('size');\n      var offsetIndex = coordSys.getBaseAxis().isHorizontal() ? 0 : 1;\n      pt[offsetIndex] += offset + size / 2;\n      return pt;\n    }\n\n    return [NaN, NaN];\n  };\n\n  BaseBarSeriesModel.type = 'series.__base_bar__';\n  BaseBarSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    coordinateSystem: 'cartesian2d',\n    legendHoverLink: true,\n    barMinHeight: 0,\n    barMinAngle: 0,\n    large: false,\n    largeThreshold: 400,\n    progressive: 3e3,\n    progressiveChunkMode: 'mod'\n  };\n  return BaseBarSeriesModel;\n}(SeriesModel);\n\nSeriesModel.registerClass(BaseBarSeriesModel);\nexport default BaseBarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BaseBarSeriesModel from './BaseBarSeries';\nimport createListFromArray from '../helper/createListFromArray';\nimport { inheritDefaultOption } from '../../util/component';\n\nvar BarSeriesModel = function (_super) {\n  __extends(BarSeriesModel, _super);\n\n  function BarSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = BarSeriesModel.type;\n    return _this;\n  }\n\n  BarSeriesModel.prototype.getInitialData = function () {\n    return createListFromArray(this.getSource(), this, {\n      useEncodeDefaulter: true,\n      createInvertedIndices: !!this.get('realtimeSort', true) || null\n    });\n  };\n\n  BarSeriesModel.prototype.getProgressive = function () {\n    return this.get('large') ? this.get('progressive') : false;\n  };\n\n  BarSeriesModel.prototype.getProgressiveThreshold = function () {\n    var progressiveThreshold = this.get('progressiveThreshold');\n    var largeThreshold = this.get('largeThreshold');\n\n    if (largeThreshold > progressiveThreshold) {\n      progressiveThreshold = largeThreshold;\n    }\n\n    return progressiveThreshold;\n  };\n\n  BarSeriesModel.prototype.brushSelector = function (dataIndex, data, selectors) {\n    return selectors.rect(data.getItemLayout(dataIndex));\n  };\n\n  BarSeriesModel.type = 'series.bar';\n  BarSeriesModel.dependencies = ['grid', 'polar'];\n  BarSeriesModel.defaultOption = inheritDefaultOption(BaseBarSeriesModel.defaultOption, {\n    clip: true,\n    roundCap: false,\n    showBackground: false,\n    backgroundStyle: {\n      color: 'rgba(180, 180, 180, 0.2)',\n      borderColor: null,\n      borderWidth: 0,\n      borderType: 'solid',\n      borderRadius: 0,\n      shadowBlur: 0,\n      shadowColor: null,\n      shadowOffsetX: 0,\n      shadowOffsetY: 0,\n      opacity: 1\n    },\n    select: {\n      itemStyle: {\n        borderColor: '#212121'\n      }\n    },\n    realtimeSort: false\n  });\n  return BarSeriesModel;\n}(BaseBarSeriesModel);\n\nexport default BarSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport { Path } from '../graphic';\n\nvar SausageShape = function () {\n  function SausageShape() {\n    this.cx = 0;\n    this.cy = 0;\n    this.r0 = 0;\n    this.r = 0;\n    this.startAngle = 0;\n    this.endAngle = Math.PI * 2;\n    this.clockwise = true;\n  }\n\n  return SausageShape;\n}();\n\nvar SausagePath = function (_super) {\n  __extends(SausagePath, _super);\n\n  function SausagePath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'sausage';\n    return _this;\n  }\n\n  SausagePath.prototype.getDefaultShape = function () {\n    return new SausageShape();\n  };\n\n  SausagePath.prototype.buildPath = function (ctx, shape) {\n    var x = shape.cx;\n    var y = shape.cy;\n    var r0 = Math.max(shape.r0 || 0, 0);\n    var r = Math.max(shape.r, 0);\n    var dr = (r - r0) * 0.5;\n    var rCenter = r0 + dr;\n    var startAngle = shape.startAngle;\n    var endAngle = shape.endAngle;\n    var clockwise = shape.clockwise;\n    var unitStartX = Math.cos(startAngle);\n    var unitStartY = Math.sin(startAngle);\n    var unitEndX = Math.cos(endAngle);\n    var unitEndY = Math.sin(endAngle);\n    var lessThanCircle = clockwise ? endAngle - startAngle < Math.PI * 2 : startAngle - endAngle < Math.PI * 2;\n\n    if (lessThanCircle) {\n      ctx.moveTo(unitStartX * r0 + x, unitStartY * r0 + y);\n      ctx.arc(unitStartX * rCenter + x, unitStartY * rCenter + y, dr, -Math.PI + startAngle, startAngle, !clockwise);\n    }\n\n    ctx.arc(x, y, r, startAngle, endAngle, !clockwise);\n    ctx.moveTo(unitEndX * r + x, unitEndY * r + y);\n    ctx.arc(unitEndX * rCenter + x, unitEndY * rCenter + y, dr, endAngle - Math.PI * 2, endAngle - Math.PI, !clockwise);\n\n    if (r0 !== 0) {\n      ctx.arc(x, y, r0, endAngle, startAngle, clockwise);\n      ctx.moveTo(unitStartX * r0 + x, unitEndY * r0 + y);\n    }\n\n    ctx.closePath();\n  };\n\n  return SausagePath;\n}(Path);\n\nexport default SausagePath;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Path from 'zrender/lib/graphic/Path';\nimport Group from 'zrender/lib/graphic/Group';\nimport { extend, defaults, each, map } from 'zrender/lib/core/util';\nimport { Rect, Sector, updateProps, initProps, removeElementWithFadeOut } from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { enableHoverEmphasis, setStatesStylesFromModel } from '../../util/states';\nimport { setLabelStyle, getLabelStatesModels, setLabelValueAnimation } from '../../label/labelStyle';\nimport { throttle } from '../../util/throttle';\nimport { createClipPath } from '../helper/createClipPathFromCoordSys';\nimport Sausage from '../../util/shape/sausage';\nimport ChartView from '../../view/Chart';\nimport { isCoordinateSystemType } from '../../coord/CoordinateSystem';\nimport { getDefaultLabel, getDefaultInterpolatedLabel } from '../helper/labelHelper';\nimport { warn } from '../../util/log';\nvar BAR_BORDER_WIDTH_QUERY = ['itemStyle', 'borderWidth'];\nvar BAR_BORDER_RADIUS_QUERY = ['itemStyle', 'borderRadius'];\nvar _eventPos = [0, 0];\nvar mathMax = Math.max;\nvar mathMin = Math.min;\n\nfunction getClipArea(coord, data) {\n  var coordSysClipArea = coord.getArea && coord.getArea();\n\n  if (isCoordinateSystemType(coord, 'cartesian2d')) {\n    var baseAxis = coord.getBaseAxis();\n\n    if (baseAxis.type !== 'category' || !baseAxis.onBand) {\n      var expandWidth = data.getLayout('bandWidth');\n\n      if (baseAxis.isHorizontal()) {\n        coordSysClipArea.x -= expandWidth;\n        coordSysClipArea.width += expandWidth * 2;\n      } else {\n        coordSysClipArea.y -= expandWidth;\n        coordSysClipArea.height += expandWidth * 2;\n      }\n    }\n  }\n\n  return coordSysClipArea;\n}\n\nvar BarView = function (_super) {\n  __extends(BarView, _super);\n\n  function BarView() {\n    var _this = _super.call(this) || this;\n\n    _this.type = BarView.type;\n    _this._isFirstFrame = true;\n    return _this;\n  }\n\n  BarView.prototype.render = function (seriesModel, ecModel, api, payload) {\n    this._model = seriesModel;\n\n    this._removeOnRenderedListener(api);\n\n    this._updateDrawMode(seriesModel);\n\n    var coordinateSystemType = seriesModel.get('coordinateSystem');\n\n    if (coordinateSystemType === 'cartesian2d' || coordinateSystemType === 'polar') {\n      this._isLargeDraw ? this._renderLarge(seriesModel, ecModel, api) : this._renderNormal(seriesModel, ecModel, api, payload);\n    } else if (process.env.NODE_ENV !== 'production') {\n      warn('Only cartesian2d and polar supported for bar.');\n    }\n  };\n\n  BarView.prototype.incrementalPrepareRender = function (seriesModel) {\n    this._clear();\n\n    this._updateDrawMode(seriesModel);\n\n    this._updateLargeClip(seriesModel);\n  };\n\n  BarView.prototype.incrementalRender = function (params, seriesModel) {\n    this._incrementalRenderLarge(params, seriesModel);\n  };\n\n  BarView.prototype._updateDrawMode = function (seriesModel) {\n    var isLargeDraw = seriesModel.pipelineContext.large;\n\n    if (this._isLargeDraw == null || isLargeDraw !== this._isLargeDraw) {\n      this._isLargeDraw = isLargeDraw;\n\n      this._clear();\n    }\n  };\n\n  BarView.prototype._renderNormal = function (seriesModel, ecModel, api, payload) {\n    var group = this.group;\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var coord = seriesModel.coordinateSystem;\n    var baseAxis = coord.getBaseAxis();\n    var isHorizontalOrRadial;\n\n    if (coord.type === 'cartesian2d') {\n      isHorizontalOrRadial = baseAxis.isHorizontal();\n    } else if (coord.type === 'polar') {\n      isHorizontalOrRadial = baseAxis.dim === 'angle';\n    }\n\n    var animationModel = seriesModel.isAnimationEnabled() ? seriesModel : null;\n    var realtimeSortCfg = shouldRealtimeSort(seriesModel, coord);\n\n    if (realtimeSortCfg) {\n      this._enableRealtimeSort(realtimeSortCfg, data, api);\n    }\n\n    var needsClip = seriesModel.get('clip', true) || realtimeSortCfg;\n    var coordSysClipArea = getClipArea(coord, data);\n    group.removeClipPath();\n    var roundCap = seriesModel.get('roundCap', true);\n    var drawBackground = seriesModel.get('showBackground', true);\n    var backgroundModel = seriesModel.getModel('backgroundStyle');\n    var barBorderRadius = backgroundModel.get('borderRadius') || 0;\n    var bgEls = [];\n    var oldBgEls = this._backgroundEls;\n    var isInitSort = payload && payload.isInitSort;\n    var isChangeOrder = payload && payload.type === 'changeAxisOrder';\n\n    function createBackground(dataIndex) {\n      var bgLayout = getLayout[coord.type](data, dataIndex);\n      var bgEl = createBackgroundEl(coord, isHorizontalOrRadial, bgLayout);\n      bgEl.useStyle(backgroundModel.getItemStyle());\n\n      if (coord.type === 'cartesian2d') {\n        bgEl.setShape('r', barBorderRadius);\n      }\n\n      bgEls[dataIndex] = bgEl;\n      return bgEl;\n    }\n\n    ;\n    data.diff(oldData).add(function (dataIndex) {\n      var itemModel = data.getItemModel(dataIndex);\n      var layout = getLayout[coord.type](data, dataIndex, itemModel);\n\n      if (drawBackground) {\n        createBackground(dataIndex);\n      }\n\n      if (!data.hasValue(dataIndex)) {\n        return;\n      }\n\n      var isClipped = false;\n\n      if (needsClip) {\n        isClipped = clip[coord.type](coordSysClipArea, layout);\n      }\n\n      var el = elementCreator[coord.type](seriesModel, data, dataIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, false, roundCap);\n      updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\n\n      if (isInitSort) {\n        el.attr({\n          shape: layout\n        });\n      } else if (realtimeSortCfg) {\n        updateRealtimeAnimation(realtimeSortCfg, animationModel, el, layout, dataIndex, isHorizontalOrRadial, false, false);\n      } else {\n        initProps(el, {\n          shape: layout\n        }, seriesModel, dataIndex);\n      }\n\n      data.setItemGraphicEl(dataIndex, el);\n      group.add(el);\n      el.ignore = isClipped;\n    }).update(function (newIndex, oldIndex) {\n      var itemModel = data.getItemModel(newIndex);\n      var layout = getLayout[coord.type](data, newIndex, itemModel);\n\n      if (drawBackground) {\n        var bgEl = void 0;\n\n        if (oldBgEls.length === 0) {\n          bgEl = createBackground(oldIndex);\n        } else {\n          bgEl = oldBgEls[oldIndex];\n          bgEl.useStyle(backgroundModel.getItemStyle());\n\n          if (coord.type === 'cartesian2d') {\n            bgEl.setShape('r', barBorderRadius);\n          }\n\n          bgEls[newIndex] = bgEl;\n        }\n\n        var bgLayout = getLayout[coord.type](data, newIndex);\n        var shape = createBackgroundShape(isHorizontalOrRadial, bgLayout, coord);\n        updateProps(bgEl, {\n          shape: shape\n        }, animationModel, newIndex);\n      }\n\n      var el = oldData.getItemGraphicEl(oldIndex);\n\n      if (!data.hasValue(newIndex)) {\n        group.remove(el);\n        el = null;\n        return;\n      }\n\n      var isClipped = false;\n\n      if (needsClip) {\n        isClipped = clip[coord.type](coordSysClipArea, layout);\n\n        if (isClipped) {\n          group.remove(el);\n        }\n      }\n\n      if (!el) {\n        el = elementCreator[coord.type](seriesModel, data, newIndex, layout, isHorizontalOrRadial, animationModel, baseAxis.model, !!el, roundCap);\n      }\n\n      if (!isChangeOrder) {\n        updateStyle(el, data, newIndex, itemModel, layout, seriesModel, isHorizontalOrRadial, coord.type === 'polar');\n      }\n\n      if (isInitSort) {\n        el.attr({\n          shape: layout\n        });\n      } else if (realtimeSortCfg) {\n        updateRealtimeAnimation(realtimeSortCfg, animationModel, el, layout, newIndex, isHorizontalOrRadial, true, isChangeOrder);\n      } else {\n        updateProps(el, {\n          shape: layout\n        }, seriesModel, newIndex, null);\n      }\n\n      data.setItemGraphicEl(newIndex, el);\n      el.ignore = isClipped;\n      group.add(el);\n    }).remove(function (dataIndex) {\n      var el = oldData.getItemGraphicEl(dataIndex);\n      el && removeElementWithFadeOut(el, seriesModel, dataIndex);\n    }).execute();\n    var bgGroup = this._backgroundGroup || (this._backgroundGroup = new Group());\n    bgGroup.removeAll();\n\n    for (var i = 0; i < bgEls.length; ++i) {\n      bgGroup.add(bgEls[i]);\n    }\n\n    group.add(bgGroup);\n    this._backgroundEls = bgEls;\n    this._data = data;\n  };\n\n  BarView.prototype._renderLarge = function (seriesModel, ecModel, api) {\n    this._clear();\n\n    createLarge(seriesModel, this.group);\n\n    this._updateLargeClip(seriesModel);\n  };\n\n  BarView.prototype._incrementalRenderLarge = function (params, seriesModel) {\n    this._removeBackground();\n\n    createLarge(seriesModel, this.group, true);\n  };\n\n  BarView.prototype._updateLargeClip = function (seriesModel) {\n    var clipPath = seriesModel.get('clip', true) ? createClipPath(seriesModel.coordinateSystem, false, seriesModel) : null;\n\n    if (clipPath) {\n      this.group.setClipPath(clipPath);\n    } else {\n      this.group.removeClipPath();\n    }\n  };\n\n  BarView.prototype._enableRealtimeSort = function (realtimeSortCfg, data, api) {\n    var _this = this;\n\n    if (!data.count()) {\n      return;\n    }\n\n    var baseAxis = realtimeSortCfg.baseAxis;\n\n    if (this._isFirstFrame) {\n      this._dispatchInitSort(data, realtimeSortCfg, api);\n\n      this._isFirstFrame = false;\n    } else {\n      var orderMapping_1 = function (idx) {\n        var el = data.getItemGraphicEl(idx);\n\n        if (el) {\n          var shape = el.shape;\n          return (baseAxis.isHorizontal() ? Math.abs(shape.height) : Math.abs(shape.width)) || 0;\n        } else {\n          return 0;\n        }\n      };\n\n      this._onRendered = function () {\n        _this._updateSortWithinSameData(data, orderMapping_1, baseAxis, api);\n      };\n\n      api.getZr().on('rendered', this._onRendered);\n    }\n  };\n\n  BarView.prototype._dataSort = function (data, baseAxis, orderMapping) {\n    var info = [];\n    data.each(data.mapDimension(baseAxis.dim), function (ordinalNumber, dataIdx) {\n      var mappedValue = orderMapping(dataIdx);\n      mappedValue = mappedValue == null ? NaN : mappedValue;\n      info.push({\n        dataIndex: dataIdx,\n        mappedValue: mappedValue,\n        ordinalNumber: ordinalNumber\n      });\n    });\n    info.sort(function (a, b) {\n      return b.mappedValue - a.mappedValue;\n    });\n    return {\n      ordinalNumbers: map(info, function (item) {\n        return item.ordinalNumber;\n      })\n    };\n  };\n\n  BarView.prototype._isOrderChangedWithinSameData = function (data, orderMapping, baseAxis) {\n    var scale = baseAxis.scale;\n    var ordinalDataDim = data.mapDimension(baseAxis.dim);\n    var lastValue = Number.MAX_VALUE;\n\n    for (var tickNum = 0, len = scale.getOrdinalMeta().categories.length; tickNum < len; ++tickNum) {\n      var rawIdx = data.rawIndexOf(ordinalDataDim, scale.getRawOrdinalNumber(tickNum));\n      var value = rawIdx < 0 ? Number.MIN_VALUE : orderMapping(data.indexOfRawIndex(rawIdx));\n\n      if (value > lastValue) {\n        return true;\n      }\n\n      lastValue = value;\n    }\n\n    return false;\n  };\n\n  BarView.prototype._isOrderDifferentInView = function (orderInfo, baseAxis) {\n    var scale = baseAxis.scale;\n    var extent = scale.getExtent();\n    var tickNum = Math.max(0, extent[0]);\n    var tickMax = Math.min(extent[1], scale.getOrdinalMeta().categories.length - 1);\n\n    for (; tickNum <= tickMax; ++tickNum) {\n      if (orderInfo.ordinalNumbers[tickNum] !== scale.getRawOrdinalNumber(tickNum)) {\n        return true;\n      }\n    }\n  };\n\n  BarView.prototype._updateSortWithinSameData = function (data, orderMapping, baseAxis, api) {\n    if (!this._isOrderChangedWithinSameData(data, orderMapping, baseAxis)) {\n      return;\n    }\n\n    var sortInfo = this._dataSort(data, baseAxis, orderMapping);\n\n    if (this._isOrderDifferentInView(sortInfo, baseAxis)) {\n      this._removeOnRenderedListener(api);\n\n      api.dispatchAction({\n        type: 'changeAxisOrder',\n        componentType: baseAxis.dim + 'Axis',\n        axisId: baseAxis.index,\n        sortInfo: sortInfo\n      });\n    }\n  };\n\n  BarView.prototype._dispatchInitSort = function (data, realtimeSortCfg, api) {\n    var baseAxis = realtimeSortCfg.baseAxis;\n\n    var sortResult = this._dataSort(data, baseAxis, function (dataIdx) {\n      return data.get(data.mapDimension(realtimeSortCfg.otherAxis.dim), dataIdx);\n    });\n\n    api.dispatchAction({\n      type: 'changeAxisOrder',\n      componentType: baseAxis.dim + 'Axis',\n      isInitSort: true,\n      axisId: baseAxis.index,\n      sortInfo: sortResult,\n      animation: {\n        duration: 0\n      }\n    });\n  };\n\n  BarView.prototype.remove = function (ecModel, api) {\n    this._clear(this._model);\n\n    this._removeOnRenderedListener(api);\n  };\n\n  BarView.prototype.dispose = function (ecModel, api) {\n    this._removeOnRenderedListener(api);\n  };\n\n  BarView.prototype._removeOnRenderedListener = function (api) {\n    if (this._onRendered) {\n      api.getZr().off('rendered', this._onRendered);\n      this._onRendered = null;\n    }\n  };\n\n  BarView.prototype._clear = function (model) {\n    var group = this.group;\n    var data = this._data;\n\n    if (model && model.isAnimationEnabled() && data && !this._isLargeDraw) {\n      this._removeBackground();\n\n      this._backgroundEls = [];\n      data.eachItemGraphicEl(function (el) {\n        removeElementWithFadeOut(el, model, getECData(el).dataIndex);\n      });\n    } else {\n      group.removeAll();\n    }\n\n    this._data = null;\n    this._isFirstFrame = true;\n  };\n\n  BarView.prototype._removeBackground = function () {\n    this.group.remove(this._backgroundGroup);\n    this._backgroundGroup = null;\n  };\n\n  BarView.type = 'bar';\n  return BarView;\n}(ChartView);\n\nvar clip = {\n  cartesian2d: function (coordSysBoundingRect, layout) {\n    var signWidth = layout.width < 0 ? -1 : 1;\n    var signHeight = layout.height < 0 ? -1 : 1;\n\n    if (signWidth < 0) {\n      layout.x += layout.width;\n      layout.width = -layout.width;\n    }\n\n    if (signHeight < 0) {\n      layout.y += layout.height;\n      layout.height = -layout.height;\n    }\n\n    var coordSysX2 = coordSysBoundingRect.x + coordSysBoundingRect.width;\n    var coordSysY2 = coordSysBoundingRect.y + coordSysBoundingRect.height;\n    var x = mathMax(layout.x, coordSysBoundingRect.x);\n    var x2 = mathMin(layout.x + layout.width, coordSysX2);\n    var y = mathMax(layout.y, coordSysBoundingRect.y);\n    var y2 = mathMin(layout.y + layout.height, coordSysY2);\n    var xClipped = x2 < x;\n    var yClipped = y2 < y;\n    layout.x = xClipped && x > coordSysX2 ? x2 : x;\n    layout.y = yClipped && y > coordSysY2 ? y2 : y;\n    layout.width = xClipped ? 0 : x2 - x;\n    layout.height = yClipped ? 0 : y2 - y;\n\n    if (signWidth < 0) {\n      layout.x += layout.width;\n      layout.width = -layout.width;\n    }\n\n    if (signHeight < 0) {\n      layout.y += layout.height;\n      layout.height = -layout.height;\n    }\n\n    return xClipped || yClipped;\n  },\n  polar: function (coordSysClipArea, layout) {\n    var signR = layout.r0 <= layout.r ? 1 : -1;\n\n    if (signR < 0) {\n      var tmp = layout.r;\n      layout.r = layout.r0;\n      layout.r0 = tmp;\n    }\n\n    var r = mathMin(layout.r, coordSysClipArea.r);\n    var r0 = mathMax(layout.r0, coordSysClipArea.r0);\n    layout.r = r;\n    layout.r0 = r0;\n    var clipped = r - r0 < 0;\n\n    if (signR < 0) {\n      var tmp = layout.r;\n      layout.r = layout.r0;\n      layout.r0 = tmp;\n    }\n\n    return clipped;\n  }\n};\nvar elementCreator = {\n  cartesian2d: function (seriesModel, data, newIndex, layout, isHorizontal, animationModel, axisModel, isUpdate, roundCap) {\n    var rect = new Rect({\n      shape: extend({}, layout),\n      z2: 1\n    });\n    rect.__dataIndex = newIndex;\n    rect.name = 'item';\n\n    if (animationModel) {\n      var rectShape = rect.shape;\n      var animateProperty = isHorizontal ? 'height' : 'width';\n      rectShape[animateProperty] = 0;\n    }\n\n    return rect;\n  },\n  polar: function (seriesModel, data, newIndex, layout, isRadial, animationModel, axisModel, isUpdate, roundCap) {\n    var clockwise = layout.startAngle < layout.endAngle;\n    var ShapeClass = !isRadial && roundCap ? Sausage : Sector;\n    var sector = new ShapeClass({\n      shape: defaults({\n        clockwise: clockwise\n      }, layout),\n      z2: 1\n    });\n    sector.name = 'item';\n\n    if (animationModel) {\n      var sectorShape = sector.shape;\n      var animateProperty = isRadial ? 'r' : 'endAngle';\n      var animateTarget = {};\n      sectorShape[animateProperty] = isRadial ? 0 : layout.startAngle;\n      animateTarget[animateProperty] = layout[animateProperty];\n      (isUpdate ? updateProps : initProps)(sector, {\n        shape: animateTarget\n      }, animationModel);\n    }\n\n    return sector;\n  }\n};\n\nfunction shouldRealtimeSort(seriesModel, coordSys) {\n  var realtimeSortOption = seriesModel.get('realtimeSort', true);\n  var baseAxis = coordSys.getBaseAxis();\n\n  if (process.env.NODE_ENV !== 'production') {\n    if (realtimeSortOption) {\n      if (baseAxis.type !== 'category') {\n        warn('`realtimeSort` will not work because this bar series is not based on a category axis.');\n      }\n\n      if (coordSys.type !== 'cartesian2d') {\n        warn('`realtimeSort` will not work because this bar series is not on cartesian2d.');\n      }\n    }\n  }\n\n  if (realtimeSortOption && baseAxis.type === 'category' && coordSys.type === 'cartesian2d') {\n    return {\n      baseAxis: baseAxis,\n      otherAxis: coordSys.getOtherAxis(baseAxis)\n    };\n  }\n}\n\nfunction updateRealtimeAnimation(realtimeSortCfg, seriesAnimationModel, el, layout, newIndex, isHorizontal, isUpdate, isChangeOrder) {\n  var seriesTarget;\n  var axisTarget;\n\n  if (isHorizontal) {\n    axisTarget = {\n      x: layout.x,\n      width: layout.width\n    };\n    seriesTarget = {\n      y: layout.y,\n      height: layout.height\n    };\n  } else {\n    axisTarget = {\n      y: layout.y,\n      height: layout.height\n    };\n    seriesTarget = {\n      x: layout.x,\n      width: layout.width\n    };\n  }\n\n  if (!isChangeOrder) {\n    (isUpdate ? updateProps : initProps)(el, {\n      shape: seriesTarget\n    }, seriesAnimationModel, newIndex, null);\n  }\n\n  var axisAnimationModel = seriesAnimationModel ? realtimeSortCfg.baseAxis.model : null;\n  (isUpdate ? updateProps : initProps)(el, {\n    shape: axisTarget\n  }, axisAnimationModel, newIndex);\n}\n\nvar getLayout = {\n  cartesian2d: function (data, dataIndex, itemModel) {\n    var layout = data.getItemLayout(dataIndex);\n    var fixedLineWidth = itemModel ? getLineWidth(itemModel, layout) : 0;\n    var signX = layout.width > 0 ? 1 : -1;\n    var signY = layout.height > 0 ? 1 : -1;\n    return {\n      x: layout.x + signX * fixedLineWidth / 2,\n      y: layout.y + signY * fixedLineWidth / 2,\n      width: layout.width - signX * fixedLineWidth,\n      height: layout.height - signY * fixedLineWidth\n    };\n  },\n  polar: function (data, dataIndex, itemModel) {\n    var layout = data.getItemLayout(dataIndex);\n    return {\n      cx: layout.cx,\n      cy: layout.cy,\n      r0: layout.r0,\n      r: layout.r,\n      startAngle: layout.startAngle,\n      endAngle: layout.endAngle\n    };\n  }\n};\n\nfunction isZeroOnPolar(layout) {\n  return layout.startAngle != null && layout.endAngle != null && layout.startAngle === layout.endAngle;\n}\n\nfunction updateStyle(el, data, dataIndex, itemModel, layout, seriesModel, isHorizontal, isPolar) {\n  var style = data.getItemVisual(dataIndex, 'style');\n\n  if (!isPolar) {\n    el.setShape('r', itemModel.get(BAR_BORDER_RADIUS_QUERY) || 0);\n  }\n\n  el.useStyle(style);\n  var cursorStyle = itemModel.getShallow('cursor');\n  cursorStyle && el.attr('cursor', cursorStyle);\n\n  if (!isPolar) {\n    var labelPositionOutside = isHorizontal ? layout.height > 0 ? 'bottom' : 'top' : layout.width > 0 ? 'left' : 'right';\n    var labelStatesModels = getLabelStatesModels(itemModel);\n    setLabelStyle(el, labelStatesModels, {\n      labelFetcher: seriesModel,\n      labelDataIndex: dataIndex,\n      defaultText: getDefaultLabel(seriesModel.getData(), dataIndex),\n      inheritColor: style.fill,\n      defaultOpacity: style.opacity,\n      defaultOutsidePosition: labelPositionOutside\n    });\n    var label = el.getTextContent();\n    setLabelValueAnimation(label, labelStatesModels, seriesModel.getRawValue(dataIndex), function (value) {\n      return getDefaultInterpolatedLabel(data, value);\n    });\n  }\n\n  var emphasisModel = itemModel.getModel(['emphasis']);\n  enableHoverEmphasis(el, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n  setStatesStylesFromModel(el, itemModel);\n\n  if (isZeroOnPolar(layout)) {\n    el.style.fill = 'none';\n    el.style.stroke = 'none';\n    each(el.states, function (state) {\n      if (state.style) {\n        state.style.fill = state.style.stroke = 'none';\n      }\n    });\n  }\n}\n\nfunction getLineWidth(itemModel, rawLayout) {\n  var lineWidth = itemModel.get(BAR_BORDER_WIDTH_QUERY) || 0;\n  var width = isNaN(rawLayout.width) ? Number.MAX_VALUE : Math.abs(rawLayout.width);\n  var height = isNaN(rawLayout.height) ? Number.MAX_VALUE : Math.abs(rawLayout.height);\n  return Math.min(lineWidth, width, height);\n}\n\nvar LagePathShape = function () {\n  function LagePathShape() {}\n\n  return LagePathShape;\n}();\n\nvar LargePath = function (_super) {\n  __extends(LargePath, _super);\n\n  function LargePath(opts) {\n    var _this = _super.call(this, opts) || this;\n\n    _this.type = 'largeBar';\n    return _this;\n  }\n\n  ;\n\n  LargePath.prototype.getDefaultShape = function () {\n    return new LagePathShape();\n  };\n\n  LargePath.prototype.buildPath = function (ctx, shape) {\n    var points = shape.points;\n    var startPoint = this.__startPoint;\n    var baseDimIdx = this.__baseDimIdx;\n\n    for (var i = 0; i < points.length; i += 2) {\n      startPoint[baseDimIdx] = points[i + baseDimIdx];\n      ctx.moveTo(startPoint[0], startPoint[1]);\n      ctx.lineTo(points[i], points[i + 1]);\n    }\n  };\n\n  return LargePath;\n}(Path);\n\nfunction createLarge(seriesModel, group, incremental) {\n  var data = seriesModel.getData();\n  var startPoint = [];\n  var baseDimIdx = data.getLayout('valueAxisHorizontal') ? 1 : 0;\n  startPoint[1 - baseDimIdx] = data.getLayout('valueAxisStart');\n  var largeDataIndices = data.getLayout('largeDataIndices');\n  var barWidth = data.getLayout('barWidth');\n  var backgroundModel = seriesModel.getModel('backgroundStyle');\n  var drawBackground = seriesModel.get('showBackground', true);\n\n  if (drawBackground) {\n    var points = data.getLayout('largeBackgroundPoints');\n    var backgroundStartPoint = [];\n    backgroundStartPoint[1 - baseDimIdx] = data.getLayout('backgroundStart');\n    var bgEl = new LargePath({\n      shape: {\n        points: points\n      },\n      incremental: !!incremental,\n      silent: true,\n      z2: 0\n    });\n    bgEl.__startPoint = backgroundStartPoint;\n    bgEl.__baseDimIdx = baseDimIdx;\n    bgEl.__largeDataIndices = largeDataIndices;\n    bgEl.__barWidth = barWidth;\n    setLargeBackgroundStyle(bgEl, backgroundModel, data);\n    group.add(bgEl);\n  }\n\n  var el = new LargePath({\n    shape: {\n      points: data.getLayout('largePoints')\n    },\n    incremental: !!incremental\n  });\n  el.__startPoint = startPoint;\n  el.__baseDimIdx = baseDimIdx;\n  el.__largeDataIndices = largeDataIndices;\n  el.__barWidth = barWidth;\n  group.add(el);\n  setLargeStyle(el, seriesModel, data);\n  getECData(el).seriesIndex = seriesModel.seriesIndex;\n\n  if (!seriesModel.get('silent')) {\n    el.on('mousedown', largePathUpdateDataIndex);\n    el.on('mousemove', largePathUpdateDataIndex);\n  }\n}\n\nvar largePathUpdateDataIndex = throttle(function (event) {\n  var largePath = this;\n  var dataIndex = largePathFindDataIndex(largePath, event.offsetX, event.offsetY);\n  getECData(largePath).dataIndex = dataIndex >= 0 ? dataIndex : null;\n}, 30, false);\n\nfunction largePathFindDataIndex(largePath, x, y) {\n  var baseDimIdx = largePath.__baseDimIdx;\n  var valueDimIdx = 1 - baseDimIdx;\n  var points = largePath.shape.points;\n  var largeDataIndices = largePath.__largeDataIndices;\n  var barWidthHalf = Math.abs(largePath.__barWidth / 2);\n  var startValueVal = largePath.__startPoint[valueDimIdx];\n  _eventPos[0] = x;\n  _eventPos[1] = y;\n  var pointerBaseVal = _eventPos[baseDimIdx];\n  var pointerValueVal = _eventPos[1 - baseDimIdx];\n  var baseLowerBound = pointerBaseVal - barWidthHalf;\n  var baseUpperBound = pointerBaseVal + barWidthHalf;\n\n  for (var i = 0, len = points.length / 2; i < len; i++) {\n    var ii = i * 2;\n    var barBaseVal = points[ii + baseDimIdx];\n    var barValueVal = points[ii + valueDimIdx];\n\n    if (barBaseVal >= baseLowerBound && barBaseVal <= baseUpperBound && (startValueVal <= barValueVal ? pointerValueVal >= startValueVal && pointerValueVal <= barValueVal : pointerValueVal >= barValueVal && pointerValueVal <= startValueVal)) {\n      return largeDataIndices[i];\n    }\n  }\n\n  return -1;\n}\n\nfunction setLargeStyle(el, seriesModel, data) {\n  var globalStyle = data.getVisual('style');\n  el.useStyle(extend({}, globalStyle));\n  el.style.fill = null;\n  el.style.stroke = globalStyle.fill;\n  el.style.lineWidth = data.getLayout('barWidth');\n}\n\nfunction setLargeBackgroundStyle(el, backgroundModel, data) {\n  var borderColor = backgroundModel.get('borderColor') || backgroundModel.get('color');\n  var itemStyle = backgroundModel.getItemStyle();\n  el.useStyle(itemStyle);\n  el.style.fill = null;\n  el.style.stroke = borderColor;\n  el.style.lineWidth = data.getLayout('barWidth');\n}\n\nfunction createBackgroundShape(isHorizontalOrRadial, layout, coord) {\n  if (isCoordinateSystemType(coord, 'cartesian2d')) {\n    var rectShape = layout;\n    var coordLayout = coord.getArea();\n    return {\n      x: isHorizontalOrRadial ? rectShape.x : coordLayout.x,\n      y: isHorizontalOrRadial ? coordLayout.y : rectShape.y,\n      width: isHorizontalOrRadial ? rectShape.width : coordLayout.width,\n      height: isHorizontalOrRadial ? coordLayout.height : rectShape.height\n    };\n  } else {\n    var coordLayout = coord.getArea();\n    var sectorShape = layout;\n    return {\n      cx: coordLayout.cx,\n      cy: coordLayout.cy,\n      r0: isHorizontalOrRadial ? coordLayout.r0 : sectorShape.r0,\n      r: isHorizontalOrRadial ? coordLayout.r : sectorShape.r,\n      startAngle: isHorizontalOrRadial ? sectorShape.startAngle : 0,\n      endAngle: isHorizontalOrRadial ? sectorShape.endAngle : Math.PI * 2\n    };\n  }\n}\n\nfunction createBackgroundEl(coord, isHorizontalOrRadial, layout) {\n  var ElementClz = coord.type === 'polar' ? Sector : Rect;\n  return new ElementClz({\n    shape: createBackgroundShape(isHorizontalOrRadial, layout, coord),\n    silent: true,\n    z2: 0\n  });\n}\n\nexport default BarView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { layout, largeLayout } from '../../layout/barGrid';\nimport dataSample from '../../processor/dataSample';\nimport BarSeries from './BarSeries';\nimport BarView from './BarView';\nexport function install(registers) {\n  registers.registerChartView(BarView);\n  registers.registerSeriesModel(BarSeries);\n  registers.registerLayout(registers.PRIORITY.VISUAL.LAYOUT, zrUtil.curry(layout, 'bar'));\n  registers.registerLayout(registers.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT, largeLayout);\n  registers.registerVisual({\n    seriesType: 'bar',\n    reset: function (seriesModel) {\n      seriesModel.getData().setVisual('legendSymbol', 'roundRect');\n    }\n  });\n  registers.registerProcessor(registers.PRIORITY.PROCESSOR.STATISTIC, dataSample('bar'));\n  registers.registerAction({\n    type: 'changeAxisOrder',\n    event: 'changeAxisOrder',\n    update: 'update'\n  }, function (payload, ecModel) {\n    var componentType = payload.componentType || 'series';\n    ecModel.eachComponent({\n      mainType: componentType,\n      query: payload\n    }, function (componentModel) {\n      if (payload.sortInfo) {\n        componentModel.axis.setCategorySortInfo(payload.sortInfo);\n      }\n    });\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parsePercent, linearMap } from '../../util/number';\nimport * as layout from '../../util/layout';\nimport * as zrUtil from 'zrender/lib/core/util';\nvar PI2 = Math.PI * 2;\nvar RADIAN = Math.PI / 180;\n\nfunction getViewRect(seriesModel, api) {\n  return layout.getLayoutRect(seriesModel.getBoxLayoutParams(), {\n    width: api.getWidth(),\n    height: api.getHeight()\n  });\n}\n\nexport default function pieLayout(seriesType, ecModel, api) {\n  ecModel.eachSeriesByType(seriesType, function (seriesModel) {\n    var data = seriesModel.getData();\n    var valueDim = data.mapDimension('value');\n    var viewRect = getViewRect(seriesModel, api);\n    var center = seriesModel.get('center');\n    var radius = seriesModel.get('radius');\n\n    if (!zrUtil.isArray(radius)) {\n      radius = [0, radius];\n    }\n\n    if (!zrUtil.isArray(center)) {\n      center = [center, center];\n    }\n\n    var width = parsePercent(viewRect.width, api.getWidth());\n    var height = parsePercent(viewRect.height, api.getHeight());\n    var size = Math.min(width, height);\n    var cx = parsePercent(center[0], width) + viewRect.x;\n    var cy = parsePercent(center[1], height) + viewRect.y;\n    var r0 = parsePercent(radius[0], size / 2);\n    var r = parsePercent(radius[1], size / 2);\n    var startAngle = -seriesModel.get('startAngle') * RADIAN;\n    var minAngle = seriesModel.get('minAngle') * RADIAN;\n    var validDataCount = 0;\n    data.each(valueDim, function (value) {\n      !isNaN(value) && validDataCount++;\n    });\n    var sum = data.getSum(valueDim);\n    var unitRadian = Math.PI / (sum || validDataCount) * 2;\n    var clockwise = seriesModel.get('clockwise');\n    var roseType = seriesModel.get('roseType');\n    var stillShowZeroSum = seriesModel.get('stillShowZeroSum');\n    var extent = data.getDataExtent(valueDim);\n    extent[0] = 0;\n    var restAngle = PI2;\n    var valueSumLargerThanMinAngle = 0;\n    var currentAngle = startAngle;\n    var dir = clockwise ? 1 : -1;\n    data.setLayout({\n      viewRect: viewRect,\n      r: r\n    });\n    data.each(valueDim, function (value, idx) {\n      var angle;\n\n      if (isNaN(value)) {\n        data.setItemLayout(idx, {\n          angle: NaN,\n          startAngle: NaN,\n          endAngle: NaN,\n          clockwise: clockwise,\n          cx: cx,\n          cy: cy,\n          r0: r0,\n          r: roseType ? NaN : r\n        });\n        return;\n      }\n\n      if (roseType !== 'area') {\n        angle = sum === 0 && stillShowZeroSum ? unitRadian : value * unitRadian;\n      } else {\n        angle = PI2 / validDataCount;\n      }\n\n      if (angle < minAngle) {\n        angle = minAngle;\n        restAngle -= minAngle;\n      } else {\n        valueSumLargerThanMinAngle += value;\n      }\n\n      var endAngle = currentAngle + dir * angle;\n      data.setItemLayout(idx, {\n        angle: angle,\n        startAngle: currentAngle,\n        endAngle: endAngle,\n        clockwise: clockwise,\n        cx: cx,\n        cy: cy,\n        r0: r0,\n        r: roseType ? linearMap(value, extent, [r0, r]) : r\n      });\n      currentAngle = endAngle;\n    });\n\n    if (restAngle < PI2 && validDataCount) {\n      if (restAngle <= 1e-3) {\n        var angle_1 = PI2 / validDataCount;\n        data.each(valueDim, function (value, idx) {\n          if (!isNaN(value)) {\n            var layout_1 = data.getItemLayout(idx);\n            layout_1.angle = angle_1;\n            layout_1.startAngle = startAngle + dir * idx * angle_1;\n            layout_1.endAngle = startAngle + dir * (idx + 1) * angle_1;\n          }\n        });\n      } else {\n        unitRadian = restAngle / valueSumLargerThanMinAngle;\n        currentAngle = startAngle;\n        data.each(valueDim, function (value, idx) {\n          if (!isNaN(value)) {\n            var layout_2 = data.getItemLayout(idx);\n            var angle = layout_2.angle === minAngle ? minAngle : value * unitRadian;\n            layout_2.startAngle = currentAngle;\n            layout_2.endAngle = currentAngle + dir * angle;\n            currentAngle += dir * angle;\n          }\n        });\n      }\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport default function dataFilter(seriesType) {\n  return {\n    seriesType: seriesType,\n    reset: function (seriesModel, ecModel) {\n      var legendModels = ecModel.findComponents({\n        mainType: 'legend'\n      });\n\n      if (!legendModels || !legendModels.length) {\n        return;\n      }\n\n      var data = seriesModel.getData();\n      data.filterSelf(function (idx) {\n        var name = data.getName(idx);\n\n        for (var i = 0; i < legendModels.length; i++) {\n          if (!legendModels[i].isSelected(name)) {\n            return false;\n          }\n        }\n\n        return true;\n      });\n    }\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { parsePercent } from '../../util/number';\nimport { Point } from '../../util/graphic';\nimport { each } from 'zrender/lib/core/util';\nimport { limitTurnAngle, limitSurfaceAngle } from '../../label/labelGuideHelper';\nimport { shiftLayoutOnY } from '../../label/labelLayoutHelper';\nvar RADIAN = Math.PI / 180;\n\nfunction adjustSingleSide(list, cx, cy, r, dir, viewWidth, viewHeight, viewLeft, viewTop, farthestX) {\n  if (list.length < 2) {\n    return;\n  }\n\n  ;\n\n  function recalculateXOnSemiToAlignOnEllipseCurve(semi) {\n    var rB = semi.rB;\n    var rB2 = rB * rB;\n\n    for (var i = 0; i < semi.list.length; i++) {\n      var item = semi.list[i];\n      var dy = Math.abs(item.label.y - cy);\n      var rA = r + item.len;\n      var rA2 = rA * rA;\n      var dx = Math.sqrt((1 - Math.abs(dy * dy / rB2)) * rA2);\n      item.label.x = cx + (dx + item.len2) * dir;\n    }\n  }\n\n  function recalculateX(items) {\n    var topSemi = {\n      list: [],\n      maxY: 0\n    };\n    var bottomSemi = {\n      list: [],\n      maxY: 0\n    };\n\n    for (var i = 0; i < items.length; i++) {\n      if (items[i].labelAlignTo !== 'none') {\n        continue;\n      }\n\n      var item = items[i];\n      var semi = item.label.y > cy ? bottomSemi : topSemi;\n      var dy = Math.abs(item.label.y - cy);\n\n      if (dy > semi.maxY) {\n        var dx = item.label.x - cx - item.len2 * dir;\n        var rA = r + item.len;\n        var rB = dx < rA ? Math.sqrt(dy * dy / (1 - dx * dx / rA / rA)) : rA;\n        semi.rB = rB;\n        semi.maxY = dy;\n      }\n\n      semi.list.push(item);\n    }\n\n    recalculateXOnSemiToAlignOnEllipseCurve(topSemi);\n    recalculateXOnSemiToAlignOnEllipseCurve(bottomSemi);\n  }\n\n  var len = list.length;\n\n  for (var i = 0; i < len; i++) {\n    if (list[i].position === 'outer' && list[i].labelAlignTo === 'labelLine') {\n      var dx = list[i].label.x - farthestX;\n      list[i].linePoints[1][0] += dx;\n      list[i].label.x = farthestX;\n    }\n  }\n\n  if (shiftLayoutOnY(list, viewTop, viewTop + viewHeight)) {\n    recalculateX(list);\n  }\n}\n\nfunction avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop) {\n  var leftList = [];\n  var rightList = [];\n  var leftmostX = Number.MAX_VALUE;\n  var rightmostX = -Number.MAX_VALUE;\n\n  for (var i = 0; i < labelLayoutList.length; i++) {\n    var label = labelLayoutList[i].label;\n\n    if (isPositionCenter(labelLayoutList[i])) {\n      continue;\n    }\n\n    if (label.x < cx) {\n      leftmostX = Math.min(leftmostX, label.x);\n      leftList.push(labelLayoutList[i]);\n    } else {\n      rightmostX = Math.max(rightmostX, label.x);\n      rightList.push(labelLayoutList[i]);\n    }\n  }\n\n  adjustSingleSide(rightList, cx, cy, r, 1, viewWidth, viewHeight, viewLeft, viewTop, rightmostX);\n  adjustSingleSide(leftList, cx, cy, r, -1, viewWidth, viewHeight, viewLeft, viewTop, leftmostX);\n\n  for (var i = 0; i < labelLayoutList.length; i++) {\n    var layout = labelLayoutList[i];\n    var label = layout.label;\n\n    if (isPositionCenter(layout)) {\n      continue;\n    }\n\n    var linePoints = layout.linePoints;\n\n    if (linePoints) {\n      var isAlignToEdge = layout.labelAlignTo === 'edge';\n      var realTextWidth = layout.rect.width;\n      var targetTextWidth = void 0;\n\n      if (isAlignToEdge) {\n        if (label.x < cx) {\n          targetTextWidth = linePoints[2][0] - layout.labelDistance - viewLeft - layout.edgeDistance;\n        } else {\n          targetTextWidth = viewLeft + viewWidth - layout.edgeDistance - linePoints[2][0] - layout.labelDistance;\n        }\n      } else {\n        if (label.x < cx) {\n          targetTextWidth = label.x - viewLeft - layout.bleedMargin;\n        } else {\n          targetTextWidth = viewLeft + viewWidth - label.x - layout.bleedMargin;\n        }\n      }\n\n      if (targetTextWidth < layout.rect.width) {\n        layout.label.style.width = targetTextWidth;\n\n        if (layout.labelAlignTo === 'edge') {\n          realTextWidth = targetTextWidth;\n        }\n      }\n\n      var dist = linePoints[1][0] - linePoints[2][0];\n\n      if (isAlignToEdge) {\n        if (label.x < cx) {\n          linePoints[2][0] = viewLeft + layout.edgeDistance + realTextWidth + layout.labelDistance;\n        } else {\n          linePoints[2][0] = viewLeft + viewWidth - layout.edgeDistance - realTextWidth - layout.labelDistance;\n        }\n      } else {\n        if (label.x < cx) {\n          linePoints[2][0] = label.x + layout.labelDistance;\n        } else {\n          linePoints[2][0] = label.x - layout.labelDistance;\n        }\n\n        linePoints[1][0] = linePoints[2][0] + dist;\n      }\n\n      linePoints[1][1] = linePoints[2][1] = label.y;\n    }\n  }\n}\n\nfunction isPositionCenter(sectorShape) {\n  return sectorShape.position === 'center';\n}\n\nexport default function pieLabelLayout(seriesModel) {\n  var data = seriesModel.getData();\n  var labelLayoutList = [];\n  var cx;\n  var cy;\n  var hasLabelRotate = false;\n  var minShowLabelRadian = (seriesModel.get('minShowLabelAngle') || 0) * RADIAN;\n  var viewRect = data.getLayout('viewRect');\n  var r = data.getLayout('r');\n  var viewWidth = viewRect.width;\n  var viewLeft = viewRect.x;\n  var viewTop = viewRect.y;\n  var viewHeight = viewRect.height;\n\n  function setNotShow(el) {\n    el.ignore = true;\n  }\n\n  function isLabelShown(label) {\n    if (!label.ignore) {\n      return true;\n    }\n\n    for (var key in label.states) {\n      if (label.states[key].ignore === false) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  data.each(function (idx) {\n    var sector = data.getItemGraphicEl(idx);\n    var sectorShape = sector.shape;\n    var label = sector.getTextContent();\n    var labelLine = sector.getTextGuideLine();\n    var itemModel = data.getItemModel(idx);\n    var labelModel = itemModel.getModel('label');\n    var labelPosition = labelModel.get('position') || itemModel.get(['emphasis', 'label', 'position']);\n    var labelDistance = labelModel.get('distanceToLabelLine');\n    var labelAlignTo = labelModel.get('alignTo');\n    var edgeDistance = parsePercent(labelModel.get('edgeDistance'), viewWidth);\n    var bleedMargin = labelModel.get('bleedMargin');\n    var labelLineModel = itemModel.getModel('labelLine');\n    var labelLineLen = labelLineModel.get('length');\n    labelLineLen = parsePercent(labelLineLen, viewWidth);\n    var labelLineLen2 = labelLineModel.get('length2');\n    labelLineLen2 = parsePercent(labelLineLen2, viewWidth);\n\n    if (Math.abs(sectorShape.endAngle - sectorShape.startAngle) < minShowLabelRadian) {\n      each(label.states, setNotShow);\n      label.ignore = true;\n      return;\n    }\n\n    if (!isLabelShown(label)) {\n      return;\n    }\n\n    var midAngle = (sectorShape.startAngle + sectorShape.endAngle) / 2;\n    var nx = Math.cos(midAngle);\n    var ny = Math.sin(midAngle);\n    var textX;\n    var textY;\n    var linePoints;\n    var textAlign;\n    cx = sectorShape.cx;\n    cy = sectorShape.cy;\n    var isLabelInside = labelPosition === 'inside' || labelPosition === 'inner';\n\n    if (labelPosition === 'center') {\n      textX = sectorShape.cx;\n      textY = sectorShape.cy;\n      textAlign = 'center';\n    } else {\n      var x1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * nx : sectorShape.r * nx) + cx;\n      var y1 = (isLabelInside ? (sectorShape.r + sectorShape.r0) / 2 * ny : sectorShape.r * ny) + cy;\n      textX = x1 + nx * 3;\n      textY = y1 + ny * 3;\n\n      if (!isLabelInside) {\n        var x2 = x1 + nx * (labelLineLen + r - sectorShape.r);\n        var y2 = y1 + ny * (labelLineLen + r - sectorShape.r);\n        var x3 = x2 + (nx < 0 ? -1 : 1) * labelLineLen2;\n        var y3 = y2;\n\n        if (labelAlignTo === 'edge') {\n          textX = nx < 0 ? viewLeft + edgeDistance : viewLeft + viewWidth - edgeDistance;\n        } else {\n          textX = x3 + (nx < 0 ? -labelDistance : labelDistance);\n        }\n\n        textY = y3;\n        linePoints = [[x1, y1], [x2, y2], [x3, y3]];\n      }\n\n      textAlign = isLabelInside ? 'center' : labelAlignTo === 'edge' ? nx > 0 ? 'right' : 'left' : nx > 0 ? 'left' : 'right';\n    }\n\n    var labelRotate;\n    var rotate = labelModel.get('rotate');\n\n    if (typeof rotate === 'number') {\n      labelRotate = rotate * (Math.PI / 180);\n    } else {\n      labelRotate = rotate ? nx < 0 ? -midAngle + Math.PI : -midAngle : 0;\n    }\n\n    hasLabelRotate = !!labelRotate;\n    label.x = textX;\n    label.y = textY;\n    label.rotation = labelRotate;\n    label.setStyle({\n      verticalAlign: 'middle'\n    });\n\n    if (!isLabelInside) {\n      var textRect = label.getBoundingRect().clone();\n      textRect.applyTransform(label.getComputedTransform());\n      var margin = (label.style.margin || 0) + 2.1;\n      textRect.y -= margin / 2;\n      textRect.height += margin;\n      labelLayoutList.push({\n        label: label,\n        labelLine: labelLine,\n        position: labelPosition,\n        len: labelLineLen,\n        len2: labelLineLen2,\n        minTurnAngle: labelLineModel.get('minTurnAngle'),\n        maxSurfaceAngle: labelLineModel.get('maxSurfaceAngle'),\n        surfaceNormal: new Point(nx, ny),\n        linePoints: linePoints,\n        textAlign: textAlign,\n        labelDistance: labelDistance,\n        labelAlignTo: labelAlignTo,\n        edgeDistance: edgeDistance,\n        bleedMargin: bleedMargin,\n        rect: textRect\n      });\n    } else {\n      label.setStyle({\n        align: textAlign\n      });\n      var selectState = label.states.select;\n\n      if (selectState) {\n        selectState.x += label.x;\n        selectState.y += label.y;\n      }\n    }\n\n    sector.setTextConfig({\n      inside: isLabelInside\n    });\n  });\n\n  if (!hasLabelRotate && seriesModel.get('avoidLabelOverlap')) {\n    avoidOverlap(labelLayoutList, cx, cy, r, viewWidth, viewHeight, viewLeft, viewTop);\n  }\n\n  for (var i = 0; i < labelLayoutList.length; i++) {\n    var layout = labelLayoutList[i];\n    var label = layout.label;\n    var labelLine = layout.labelLine;\n    var notShowLabel = isNaN(label.x) || isNaN(label.y);\n\n    if (label) {\n      label.setStyle({\n        align: layout.textAlign\n      });\n\n      if (notShowLabel) {\n        each(label.states, setNotShow);\n        label.ignore = true;\n      }\n\n      var selectState = label.states.select;\n\n      if (selectState) {\n        selectState.x += label.x;\n        selectState.y += label.y;\n      }\n    }\n\n    if (labelLine) {\n      var linePoints = layout.linePoints;\n\n      if (notShowLabel || !linePoints) {\n        each(labelLine.states, setNotShow);\n        labelLine.ignore = true;\n      } else {\n        limitTurnAngle(linePoints, layout.minTurnAngle);\n        limitSurfaceAngle(linePoints, layout.surfaceNormal, layout.maxSurfaceAngle);\n        labelLine.setShape({\n          points: linePoints\n        });\n        label.__hostTarget.textGuideLineConfig = {\n          anchor: new Point(linePoints[0][0], linePoints[0][1])\n        };\n      }\n    }\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isArray } from 'zrender/lib/core/util';\nimport { parsePercent } from 'zrender/lib/contain/text';\nexport function getSectorCornerRadius(model, shape) {\n  var cornerRadius = model.get('borderRadius');\n\n  if (cornerRadius == null) {\n    return null;\n  }\n\n  if (!isArray(cornerRadius)) {\n    cornerRadius = [cornerRadius, cornerRadius];\n  }\n\n  return {\n    innerCornerRadius: parsePercent(cornerRadius[0], shape.r0),\n    cornerRadius: parsePercent(cornerRadius[1], shape.r)\n  };\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __assign, __extends } from \"tslib\";\nimport { extend, retrieve3 } from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { setStatesStylesFromModel, enableHoverEmphasis } from '../../util/states';\nimport ChartView from '../../view/Chart';\nimport labelLayout from './labelLayout';\nimport { setLabelLineStyle, getLabelLineStatesModels } from '../../label/labelGuideHelper';\nimport { setLabelStyle, getLabelStatesModels } from '../../label/labelStyle';\nimport { getSectorCornerRadius } from '../helper/pieHelper';\n\nvar PiePiece = function (_super) {\n  __extends(PiePiece, _super);\n\n  function PiePiece(data, idx, startAngle) {\n    var _this = _super.call(this) || this;\n\n    _this.z2 = 2;\n    var polyline = new graphic.Polyline();\n    var text = new graphic.Text();\n\n    _this.setTextGuideLine(polyline);\n\n    _this.setTextContent(text);\n\n    _this.updateData(data, idx, startAngle, true);\n\n    return _this;\n  }\n\n  PiePiece.prototype.updateData = function (data, idx, startAngle, firstCreate) {\n    var sector = this;\n    var seriesModel = data.hostModel;\n    var itemModel = data.getItemModel(idx);\n    var emphasisModel = itemModel.getModel('emphasis');\n    var layout = data.getItemLayout(idx);\n    var sectorShape = extend(getSectorCornerRadius(itemModel.getModel('itemStyle'), layout) || {}, layout);\n\n    if (firstCreate) {\n      sector.setShape(sectorShape);\n      var animationType = seriesModel.getShallow('animationType');\n\n      if (animationType === 'scale') {\n        sector.shape.r = layout.r0;\n        graphic.initProps(sector, {\n          shape: {\n            r: layout.r\n          }\n        }, seriesModel, idx);\n      } else {\n        if (startAngle != null) {\n          sector.setShape({\n            startAngle: startAngle,\n            endAngle: startAngle\n          });\n          graphic.initProps(sector, {\n            shape: {\n              startAngle: layout.startAngle,\n              endAngle: layout.endAngle\n            }\n          }, seriesModel, idx);\n        } else {\n          sector.shape.endAngle = layout.startAngle;\n          graphic.updateProps(sector, {\n            shape: {\n              endAngle: layout.endAngle\n            }\n          }, seriesModel, idx);\n        }\n      }\n    } else {\n      graphic.updateProps(sector, {\n        shape: sectorShape\n      }, seriesModel, idx);\n    }\n\n    sector.useStyle(data.getItemVisual(idx, 'style'));\n    setStatesStylesFromModel(sector, itemModel);\n    var midAngle = (layout.startAngle + layout.endAngle) / 2;\n    var offset = seriesModel.get('selectedOffset');\n    var dx = Math.cos(midAngle) * offset;\n    var dy = Math.sin(midAngle) * offset;\n    var cursorStyle = itemModel.getShallow('cursor');\n    cursorStyle && sector.attr('cursor', cursorStyle);\n\n    this._updateLabel(seriesModel, data, idx);\n\n    sector.ensureState('emphasis').shape = __assign({\n      r: layout.r + (emphasisModel.get('scale') ? emphasisModel.get('scaleSize') || 0 : 0)\n    }, getSectorCornerRadius(emphasisModel.getModel('itemStyle'), layout));\n    extend(sector.ensureState('select'), {\n      x: dx,\n      y: dy,\n      shape: getSectorCornerRadius(itemModel.getModel(['select', 'itemStyle']), layout)\n    });\n    extend(sector.ensureState('blur'), {\n      shape: getSectorCornerRadius(itemModel.getModel(['blur', 'itemStyle']), layout)\n    });\n    var labelLine = sector.getTextGuideLine();\n    var labelText = sector.getTextContent();\n    extend(labelLine.ensureState('select'), {\n      x: dx,\n      y: dy\n    });\n    extend(labelText.ensureState('select'), {\n      x: dx,\n      y: dy\n    });\n    enableHoverEmphasis(this, emphasisModel.get('focus'), emphasisModel.get('blurScope'));\n  };\n\n  PiePiece.prototype._updateLabel = function (seriesModel, data, idx) {\n    var sector = this;\n    var itemModel = data.getItemModel(idx);\n    var labelLineModel = itemModel.getModel('labelLine');\n    var style = data.getItemVisual(idx, 'style');\n    var visualColor = style && style.fill;\n    var visualOpacity = style && style.opacity;\n    setLabelStyle(sector, getLabelStatesModels(itemModel), {\n      labelFetcher: data.hostModel,\n      labelDataIndex: idx,\n      inheritColor: visualColor,\n      defaultOpacity: visualOpacity,\n      defaultText: seriesModel.getFormattedLabel(idx, 'normal') || data.getName(idx)\n    });\n    var labelText = sector.getTextContent();\n    sector.setTextConfig({\n      position: null,\n      rotation: null\n    });\n    labelText.attr({\n      z2: 10\n    });\n    setLabelLineStyle(this, getLabelLineStatesModels(itemModel), {\n      stroke: visualColor,\n      opacity: retrieve3(labelLineModel.get(['lineStyle', 'opacity']), visualOpacity, 1)\n    });\n  };\n\n  return PiePiece;\n}(graphic.Sector);\n\nvar PieView = function (_super) {\n  __extends(PieView, _super);\n\n  function PieView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.ignoreLabelLineUpdate = true;\n    return _this;\n  }\n\n  PieView.prototype.init = function () {\n    var sectorGroup = new graphic.Group();\n    this._sectorGroup = sectorGroup;\n  };\n\n  PieView.prototype.render = function (seriesModel, ecModel, api, payload) {\n    var data = seriesModel.getData();\n    var oldData = this._data;\n    var group = this.group;\n    var startAngle;\n\n    if (!oldData && data.count() > 0) {\n      var shape = data.getItemLayout(0);\n\n      for (var s = 1; isNaN(shape && shape.startAngle) && s < data.count(); ++s) {\n        shape = data.getItemLayout(s);\n      }\n\n      if (shape) {\n        startAngle = shape.startAngle;\n      }\n    }\n\n    data.diff(oldData).add(function (idx) {\n      var piePiece = new PiePiece(data, idx, startAngle);\n      data.setItemGraphicEl(idx, piePiece);\n      group.add(piePiece);\n    }).update(function (newIdx, oldIdx) {\n      var piePiece = oldData.getItemGraphicEl(oldIdx);\n      piePiece.updateData(data, newIdx, startAngle);\n      piePiece.off('click');\n      group.add(piePiece);\n      data.setItemGraphicEl(newIdx, piePiece);\n    }).remove(function (idx) {\n      var piePiece = oldData.getItemGraphicEl(idx);\n      graphic.removeElementWithFadeOut(piePiece, seriesModel, idx);\n    }).execute();\n    labelLayout(seriesModel);\n\n    if (seriesModel.get('animationTypeUpdate') !== 'expansion') {\n      this._data = data;\n    }\n  };\n\n  PieView.prototype.dispose = function () {};\n\n  PieView.prototype.containPoint = function (point, seriesModel) {\n    var data = seriesModel.getData();\n    var itemLayout = data.getItemLayout(0);\n\n    if (itemLayout) {\n      var dx = point[0] - itemLayout.cx;\n      var dy = point[1] - itemLayout.cy;\n      var radius = Math.sqrt(dx * dx + dy * dy);\n      return radius <= itemLayout.r && radius >= itemLayout.r0;\n    }\n  };\n\n  PieView.type = 'pie';\n  return PieView;\n}(ChartView);\n\nexport default PieView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport createDimensions from '../../data/helper/createDimensions';\nimport List from '../../data/List';\nimport { extend, isArray } from 'zrender/lib/core/util';\nexport default function createListSimply(seriesModel, opt, nameList) {\n  opt = isArray(opt) && {\n    coordDimensions: opt\n  } || extend({}, opt);\n  var source = seriesModel.getSource();\n  var dimensionsInfo = createDimensions(source, opt);\n  var list = new List(dimensionsInfo, seriesModel);\n  list.initData(source, nameList);\n  return list;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nvar LegendVisualProvider = function () {\n  function LegendVisualProvider(getDataWithEncodedVisual, getRawData) {\n    this._getDataWithEncodedVisual = getDataWithEncodedVisual;\n    this._getRawData = getRawData;\n  }\n\n  LegendVisualProvider.prototype.getAllNames = function () {\n    var rawData = this._getRawData();\n\n    return rawData.mapArray(rawData.getName);\n  };\n\n  LegendVisualProvider.prototype.containName = function (name) {\n    var rawData = this._getRawData();\n\n    return rawData.indexOfName(name) >= 0;\n  };\n\n  LegendVisualProvider.prototype.indexOfName = function (name) {\n    var dataWithEncodedVisual = this._getDataWithEncodedVisual();\n\n    return dataWithEncodedVisual.indexOfName(name);\n  };\n\n  LegendVisualProvider.prototype.getItemVisual = function (dataIndex, key) {\n    var dataWithEncodedVisual = this._getDataWithEncodedVisual();\n\n    return dataWithEncodedVisual.getItemVisual(dataIndex, key);\n  };\n\n  return LegendVisualProvider;\n}();\n\nexport default LegendVisualProvider;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport createListSimply from '../helper/createListSimply';\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as modelUtil from '../../util/model';\nimport { getPercentWithPrecision } from '../../util/number';\nimport { makeSeriesEncodeForNameBased } from '../../data/helper/sourceHelper';\nimport LegendVisualProvider from '../../visual/LegendVisualProvider';\nimport SeriesModel from '../../model/Series';\n\nvar PieSeriesModel = function (_super) {\n  __extends(PieSeriesModel, _super);\n\n  function PieSeriesModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.useColorPaletteOnData = true;\n    return _this;\n  }\n\n  PieSeriesModel.prototype.init = function (option) {\n    _super.prototype.init.apply(this, arguments);\n\n    this.legendVisualProvider = new LegendVisualProvider(zrUtil.bind(this.getData, this), zrUtil.bind(this.getRawData, this));\n\n    this._defaultLabelLine(option);\n  };\n\n  PieSeriesModel.prototype.mergeOption = function () {\n    _super.prototype.mergeOption.apply(this, arguments);\n  };\n\n  PieSeriesModel.prototype.getInitialData = function () {\n    return createListSimply(this, {\n      coordDimensions: ['value'],\n      encodeDefaulter: zrUtil.curry(makeSeriesEncodeForNameBased, this)\n    });\n  };\n\n  PieSeriesModel.prototype.getDataParams = function (dataIndex) {\n    var data = this.getData();\n\n    var params = _super.prototype.getDataParams.call(this, dataIndex);\n\n    var valueList = [];\n    data.each(data.mapDimension('value'), function (value) {\n      valueList.push(value);\n    });\n    params.percent = getPercentWithPrecision(valueList, dataIndex, data.hostModel.get('percentPrecision'));\n    params.$vars.push('percent');\n    return params;\n  };\n\n  PieSeriesModel.prototype._defaultLabelLine = function (option) {\n    modelUtil.defaultEmphasis(option, 'labelLine', ['show']);\n    var labelLineNormalOpt = option.labelLine;\n    var labelLineEmphasisOpt = option.emphasis.labelLine;\n    labelLineNormalOpt.show = labelLineNormalOpt.show && option.label.show;\n    labelLineEmphasisOpt.show = labelLineEmphasisOpt.show && option.emphasis.label.show;\n  };\n\n  PieSeriesModel.type = 'series.pie';\n  PieSeriesModel.defaultOption = {\n    zlevel: 0,\n    z: 2,\n    legendHoverLink: true,\n    center: ['50%', '50%'],\n    radius: [0, '75%'],\n    clockwise: true,\n    startAngle: 90,\n    minAngle: 0,\n    minShowLabelAngle: 0,\n    selectedOffset: 10,\n    percentPrecision: 2,\n    stillShowZeroSum: true,\n    left: 0,\n    top: 0,\n    right: 0,\n    bottom: 0,\n    width: null,\n    height: null,\n    label: {\n      rotate: 0,\n      show: true,\n      overflow: 'truncate',\n      position: 'outer',\n      alignTo: 'none',\n      edgeDistance: '25%',\n      bleedMargin: 10,\n      distanceToLabelLine: 5\n    },\n    labelLine: {\n      show: true,\n      length: 15,\n      length2: 15,\n      smooth: false,\n      minTurnAngle: 90,\n      maxSurfaceAngle: 90,\n      lineStyle: {\n        width: 1,\n        type: 'solid'\n      }\n    },\n    itemStyle: {\n      borderWidth: 1\n    },\n    labelLayout: {\n      hideOverlap: true\n    },\n    emphasis: {\n      scale: true,\n      scaleSize: 5\n    },\n    avoidLabelOverlap: true,\n    animationType: 'expansion',\n    animationDuration: 1000,\n    animationTypeUpdate: 'transition',\n    animationEasingUpdate: 'cubicInOut',\n    animationDurationUpdate: 500,\n    animationEasing: 'cubicInOut'\n  };\n  return PieSeriesModel;\n}(SeriesModel);\n\nexport default PieSeriesModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { createLegacyDataSelectAction } from '../../legacy/dataSelectAction';\nimport pieLayout from '../pie/pieLayout';\nimport dataFilter from '../../processor/dataFilter';\nimport { curry } from 'zrender/lib/core/util';\nimport PieView from './PieView';\nimport PieSeriesModel from './PieSeries';\nexport function install(registers) {\n  registers.registerChartView(PieView);\n  registers.registerSeriesModel(PieSeriesModel);\n  createLegacyDataSelectAction('pie', registers.registerAction);\n  registers.registerLayout(curry(pieLayout, 'pie'));\n  registers.registerProcessor(dataFilter('pie'));\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\n\nvar GridModel = function (_super) {\n  __extends(GridModel, _super);\n\n  function GridModel() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  GridModel.type = 'grid';\n  GridModel.dependencies = ['xAxis', 'yAxis'];\n  GridModel.layoutMode = 'box';\n  GridModel.defaultOption = {\n    show: false,\n    zlevel: 0,\n    z: 0,\n    left: '10%',\n    top: 60,\n    right: '10%',\n    bottom: 70,\n    containLabel: false,\n    backgroundColor: 'rgba(0,0,0,0)',\n    borderWidth: 1,\n    borderColor: '#ccc'\n  };\n  return GridModel;\n}(ComponentModel);\n\nexport default GridModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport ComponentModel from '../../model/Component';\nimport { AxisModelCommonMixin } from '../axisModelCommonMixin';\nimport { SINGLE_REFERRING } from '../../util/model';\n\nvar CartesianAxisModel = function (_super) {\n  __extends(CartesianAxisModel, _super);\n\n  function CartesianAxisModel() {\n    return _super !== null && _super.apply(this, arguments) || this;\n  }\n\n  CartesianAxisModel.prototype.getCoordSysModel = function () {\n    return this.getReferringComponents('grid', SINGLE_REFERRING).models[0];\n  };\n\n  CartesianAxisModel.type = 'cartesian2dAxis';\n  return CartesianAxisModel;\n}(ComponentModel);\n\nexport { CartesianAxisModel };\nzrUtil.mixin(CartesianAxisModel, AxisModelCommonMixin);\nexport default CartesianAxisModel;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nvar defaultOption = {\n  show: true,\n  zlevel: 0,\n  z: 0,\n  inverse: false,\n  name: '',\n  nameLocation: 'end',\n  nameRotate: null,\n  nameTruncate: {\n    maxWidth: null,\n    ellipsis: '...',\n    placeholder: '.'\n  },\n  nameTextStyle: {},\n  nameGap: 15,\n  silent: false,\n  triggerEvent: false,\n  tooltip: {\n    show: false\n  },\n  axisPointer: {},\n  axisLine: {\n    show: true,\n    onZero: true,\n    onZeroAxisIndex: null,\n    lineStyle: {\n      color: '#6E7079',\n      width: 1,\n      type: 'solid'\n    },\n    symbol: ['none', 'none'],\n    symbolSize: [10, 15]\n  },\n  axisTick: {\n    show: true,\n    inside: false,\n    length: 5,\n    lineStyle: {\n      width: 1\n    }\n  },\n  axisLabel: {\n    show: true,\n    inside: false,\n    rotate: 0,\n    showMinLabel: null,\n    showMaxLabel: null,\n    margin: 8,\n    fontSize: 12\n  },\n  splitLine: {\n    show: true,\n    lineStyle: {\n      color: ['#E0E6F1'],\n      width: 1,\n      type: 'solid'\n    }\n  },\n  splitArea: {\n    show: false,\n    areaStyle: {\n      color: ['rgba(250,250,250,0.2)', 'rgba(210,219,238,0.2)']\n    }\n  }\n};\nvar categoryAxis = zrUtil.merge({\n  boundaryGap: true,\n  deduplication: null,\n  splitLine: {\n    show: false\n  },\n  axisTick: {\n    alignWithLabel: false,\n    interval: 'auto'\n  },\n  axisLabel: {\n    interval: 'auto'\n  }\n}, defaultOption);\nvar valueAxis = zrUtil.merge({\n  boundaryGap: [0, 0],\n  axisLine: {\n    show: 'auto'\n  },\n  axisTick: {\n    show: 'auto'\n  },\n  splitNumber: 5,\n  minorTick: {\n    show: false,\n    splitNumber: 5,\n    length: 3,\n    lineStyle: {}\n  },\n  minorSplitLine: {\n    show: false,\n    lineStyle: {\n      color: '#F4F7FD',\n      width: 1\n    }\n  }\n}, defaultOption);\nvar timeAxis = zrUtil.merge({\n  scale: true,\n  splitNumber: 6,\n  axisLabel: {\n    showMinLabel: false,\n    showMaxLabel: false,\n    rich: {\n      primary: {\n        fontWeight: 'bold'\n      }\n    }\n  },\n  splitLine: {\n    show: false\n  }\n}, valueAxis);\nvar logAxis = zrUtil.defaults({\n  scale: true,\n  logBase: 10\n}, valueAxis);\nexport default {\n  category: categoryAxis,\n  value: valueAxis,\n  time: timeAxis,\n  log: logAxis\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nexport var AXIS_TYPES = {\n  value: 1,\n  category: 1,\n  time: 1,\n  log: 1\n};","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport axisDefault from './axisDefault';\nimport { getLayoutParams, mergeLayoutParam, fetchLayoutMode } from '../util/layout';\nimport OrdinalMeta from '../data/OrdinalMeta';\nimport { AXIS_TYPES } from './axisCommonTypes';\nimport { each, merge } from 'zrender/lib/core/util';\nexport default function axisModelCreator(registers, axisName, BaseAxisModelClass, extraDefaultOption) {\n  each(AXIS_TYPES, function (v, axisType) {\n    var defaultOption = merge(merge({}, axisDefault[axisType], true), extraDefaultOption, true);\n\n    var AxisModel = function (_super) {\n      __extends(AxisModel, _super);\n\n      function AxisModel() {\n        var args = [];\n\n        for (var _i = 0; _i < arguments.length; _i++) {\n          args[_i] = arguments[_i];\n        }\n\n        var _this = _super.apply(this, args) || this;\n\n        _this.type = axisName + 'Axis.' + axisType;\n        return _this;\n      }\n\n      AxisModel.prototype.mergeDefaultAndTheme = function (option, ecModel) {\n        var layoutMode = fetchLayoutMode(this);\n        var inputPositionParams = layoutMode ? getLayoutParams(option) : {};\n        var themeModel = ecModel.getTheme();\n        merge(option, themeModel.get(axisType + 'Axis'));\n        merge(option, this.getDefaultOption());\n        option.type = getAxisType(option);\n\n        if (layoutMode) {\n          mergeLayoutParam(option, inputPositionParams, layoutMode);\n        }\n      };\n\n      AxisModel.prototype.optionUpdated = function () {\n        var thisOption = this.option;\n\n        if (thisOption.type === 'category') {\n          this.__ordinalMeta = OrdinalMeta.createByAxisModel(this);\n        }\n      };\n\n      AxisModel.prototype.getCategories = function (rawData) {\n        var option = this.option;\n\n        if (option.type === 'category') {\n          if (rawData) {\n            return option.data;\n          }\n\n          return this.__ordinalMeta.categories;\n        }\n      };\n\n      AxisModel.prototype.getOrdinalMeta = function () {\n        return this.__ordinalMeta;\n      };\n\n      AxisModel.type = axisName + 'Axis.' + axisType;\n      AxisModel.defaultOption = defaultOption;\n      return AxisModel;\n    }(BaseAxisModelClass);\n\n    registers.registerComponentModel(AxisModel);\n  });\n  registers.registerSubTypeDefaulter(axisName + 'Axis', getAxisType);\n}\n\nfunction getAxisType(option) {\n  return option.type || (option.data ? 'category' : 'value');\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\n\nvar Cartesian = function () {\n  function Cartesian(name) {\n    this.type = 'cartesian';\n    this._dimList = [];\n    this._axes = {};\n    this.name = name || '';\n  }\n\n  Cartesian.prototype.getAxis = function (dim) {\n    return this._axes[dim];\n  };\n\n  Cartesian.prototype.getAxes = function () {\n    return zrUtil.map(this._dimList, function (dim) {\n      return this._axes[dim];\n    }, this);\n  };\n\n  Cartesian.prototype.getAxesByScale = function (scaleType) {\n    scaleType = scaleType.toLowerCase();\n    return zrUtil.filter(this.getAxes(), function (axis) {\n      return axis.scale.type === scaleType;\n    });\n  };\n\n  Cartesian.prototype.addAxis = function (axis) {\n    var dim = axis.dim;\n    this._axes[dim] = axis;\n\n    this._dimList.push(dim);\n  };\n\n  return Cartesian;\n}();\n\n;\nexport default Cartesian;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport BoundingRect from 'zrender/lib/core/BoundingRect';\nimport Cartesian from './Cartesian';\nimport { invert } from 'zrender/lib/core/matrix';\nimport { applyTransform } from 'zrender/lib/core/vector';\nexport var cartesian2DDimensions = ['x', 'y'];\n\nfunction canCalculateAffineTransform(scale) {\n  return scale.type === 'interval' || scale.type === 'time';\n}\n\nvar Cartesian2D = function (_super) {\n  __extends(Cartesian2D, _super);\n\n  function Cartesian2D() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'cartesian2d';\n    _this.dimensions = cartesian2DDimensions;\n    return _this;\n  }\n\n  Cartesian2D.prototype.calcAffineTransform = function () {\n    this._transform = this._invTransform = null;\n    var xAxisScale = this.getAxis('x').scale;\n    var yAxisScale = this.getAxis('y').scale;\n\n    if (!canCalculateAffineTransform(xAxisScale) || !canCalculateAffineTransform(yAxisScale)) {\n      return;\n    }\n\n    var xScaleExtent = xAxisScale.getExtent();\n    var yScaleExtent = yAxisScale.getExtent();\n    var start = this.dataToPoint([xScaleExtent[0], yScaleExtent[0]]);\n    var end = this.dataToPoint([xScaleExtent[1], yScaleExtent[1]]);\n    var xScaleSpan = xScaleExtent[1] - xScaleExtent[0];\n    var yScaleSpan = yScaleExtent[1] - yScaleExtent[0];\n\n    if (!xScaleSpan || !yScaleSpan) {\n      return;\n    }\n\n    var scaleX = (end[0] - start[0]) / xScaleSpan;\n    var scaleY = (end[1] - start[1]) / yScaleSpan;\n    var translateX = start[0] - xScaleExtent[0] * scaleX;\n    var translateY = start[1] - yScaleExtent[0] * scaleY;\n    var m = this._transform = [scaleX, 0, 0, scaleY, translateX, translateY];\n    this._invTransform = invert([], m);\n  };\n\n  Cartesian2D.prototype.getBaseAxis = function () {\n    return this.getAxesByScale('ordinal')[0] || this.getAxesByScale('time')[0] || this.getAxis('x');\n  };\n\n  Cartesian2D.prototype.containPoint = function (point) {\n    var axisX = this.getAxis('x');\n    var axisY = this.getAxis('y');\n    return axisX.contain(axisX.toLocalCoord(point[0])) && axisY.contain(axisY.toLocalCoord(point[1]));\n  };\n\n  Cartesian2D.prototype.containData = function (data) {\n    return this.getAxis('x').containData(data[0]) && this.getAxis('y').containData(data[1]);\n  };\n\n  Cartesian2D.prototype.dataToPoint = function (data, reserved, out) {\n    out = out || [];\n    var xVal = data[0];\n    var yVal = data[1];\n\n    if (this._transform && xVal != null && isFinite(xVal) && yVal != null && isFinite(yVal)) {\n      return applyTransform(out, data, this._transform);\n    }\n\n    var xAxis = this.getAxis('x');\n    var yAxis = this.getAxis('y');\n    out[0] = xAxis.toGlobalCoord(xAxis.dataToCoord(xVal));\n    out[1] = yAxis.toGlobalCoord(yAxis.dataToCoord(yVal));\n    return out;\n  };\n\n  Cartesian2D.prototype.clampData = function (data, out) {\n    var xScale = this.getAxis('x').scale;\n    var yScale = this.getAxis('y').scale;\n    var xAxisExtent = xScale.getExtent();\n    var yAxisExtent = yScale.getExtent();\n    var x = xScale.parse(data[0]);\n    var y = yScale.parse(data[1]);\n    out = out || [];\n    out[0] = Math.min(Math.max(Math.min(xAxisExtent[0], xAxisExtent[1]), x), Math.max(xAxisExtent[0], xAxisExtent[1]));\n    out[1] = Math.min(Math.max(Math.min(yAxisExtent[0], yAxisExtent[1]), y), Math.max(yAxisExtent[0], yAxisExtent[1]));\n    return out;\n  };\n\n  Cartesian2D.prototype.pointToData = function (point, out) {\n    out = out || [];\n\n    if (this._invTransform) {\n      return applyTransform(out, point, this._invTransform);\n    }\n\n    var xAxis = this.getAxis('x');\n    var yAxis = this.getAxis('y');\n    out[0] = xAxis.coordToData(xAxis.toLocalCoord(point[0]));\n    out[1] = yAxis.coordToData(yAxis.toLocalCoord(point[1]));\n    return out;\n  };\n\n  Cartesian2D.prototype.getOtherAxis = function (axis) {\n    return this.getAxis(axis.dim === 'x' ? 'y' : 'x');\n  };\n\n  Cartesian2D.prototype.getArea = function () {\n    var xExtent = this.getAxis('x').getGlobalExtent();\n    var yExtent = this.getAxis('y').getGlobalExtent();\n    var x = Math.min(xExtent[0], xExtent[1]);\n    var y = Math.min(yExtent[0], yExtent[1]);\n    var width = Math.max(xExtent[0], xExtent[1]) - x;\n    var height = Math.max(yExtent[0], yExtent[1]) - y;\n    return new BoundingRect(x, y, width, height);\n  };\n\n  return Cartesian2D;\n}(Cartesian);\n\n;\nexport default Cartesian2D;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport Axis from '../Axis';\n\nvar Axis2D = function (_super) {\n  __extends(Axis2D, _super);\n\n  function Axis2D(dim, scale, coordExtent, axisType, position) {\n    var _this = _super.call(this, dim, scale, coordExtent) || this;\n\n    _this.index = 0;\n    _this.type = axisType || 'value';\n    _this.position = position || 'bottom';\n    return _this;\n  }\n\n  Axis2D.prototype.isHorizontal = function () {\n    var position = this.position;\n    return position === 'top' || position === 'bottom';\n  };\n\n  Axis2D.prototype.getGlobalExtent = function (asc) {\n    var ret = this.getExtent();\n    ret[0] = this.toGlobalCoord(ret[0]);\n    ret[1] = this.toGlobalCoord(ret[1]);\n    asc && ret[0] > ret[1] && ret.reverse();\n    return ret;\n  };\n\n  Axis2D.prototype.pointToData = function (point, clamp) {\n    return this.coordToData(this.toLocalCoord(point[this.dim === 'x' ? 0 : 1]), clamp);\n  };\n\n  Axis2D.prototype.setCategorySortInfo = function (info) {\n    if (this.type !== 'category') {\n      return false;\n    }\n\n    this.model.option.categorySortInfo = info;\n    this.scale.setSortInfo(info);\n  };\n\n  return Axis2D;\n}(Axis);\n\nexport default Axis2D;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { SINGLE_REFERRING } from '../../util/model';\nexport function layout(gridModel, axisModel, opt) {\n  opt = opt || {};\n  var grid = gridModel.coordinateSystem;\n  var axis = axisModel.axis;\n  var layout = {};\n  var otherAxisOnZeroOf = axis.getAxesOnZeroOf()[0];\n  var rawAxisPosition = axis.position;\n  var axisPosition = otherAxisOnZeroOf ? 'onZero' : rawAxisPosition;\n  var axisDim = axis.dim;\n  var rect = grid.getRect();\n  var rectBound = [rect.x, rect.x + rect.width, rect.y, rect.y + rect.height];\n  var idx = {\n    left: 0,\n    right: 1,\n    top: 0,\n    bottom: 1,\n    onZero: 2\n  };\n  var axisOffset = axisModel.get('offset') || 0;\n  var posBound = axisDim === 'x' ? [rectBound[2] - axisOffset, rectBound[3] + axisOffset] : [rectBound[0] - axisOffset, rectBound[1] + axisOffset];\n\n  if (otherAxisOnZeroOf) {\n    var onZeroCoord = otherAxisOnZeroOf.toGlobalCoord(otherAxisOnZeroOf.dataToCoord(0));\n    posBound[idx.onZero] = Math.max(Math.min(onZeroCoord, posBound[1]), posBound[0]);\n  }\n\n  layout.position = [axisDim === 'y' ? posBound[idx[axisPosition]] : rectBound[0], axisDim === 'x' ? posBound[idx[axisPosition]] : rectBound[3]];\n  layout.rotation = Math.PI / 2 * (axisDim === 'x' ? 0 : 1);\n  var dirMap = {\n    top: -1,\n    bottom: 1,\n    left: -1,\n    right: 1\n  };\n  layout.labelDirection = layout.tickDirection = layout.nameDirection = dirMap[rawAxisPosition];\n  layout.labelOffset = otherAxisOnZeroOf ? posBound[idx[rawAxisPosition]] - posBound[idx.onZero] : 0;\n\n  if (axisModel.get(['axisTick', 'inside'])) {\n    layout.tickDirection = -layout.tickDirection;\n  }\n\n  if (zrUtil.retrieve(opt.labelInside, axisModel.get(['axisLabel', 'inside']))) {\n    layout.labelDirection = -layout.labelDirection;\n  }\n\n  var labelRotate = axisModel.get(['axisLabel', 'rotate']);\n  layout.labelRotate = axisPosition === 'top' ? -labelRotate : labelRotate;\n  layout.z2 = 1;\n  return layout;\n}\nexport function isCartesian2DSeries(seriesModel) {\n  return seriesModel.get('coordinateSystem') === 'cartesian2d';\n}\nexport function findAxisModels(seriesModel) {\n  var axisModelMap = {\n    xAxisModel: null,\n    yAxisModel: null\n  };\n  zrUtil.each(axisModelMap, function (v, key) {\n    var axisType = key.replace(/Model$/, '');\n    var axisModel = seriesModel.getReferringComponents(axisType, SINGLE_REFERRING).models[0];\n\n    if (process.env.NODE_ENV !== 'production') {\n      if (!axisModel) {\n        throw new Error(axisType + ' \"' + zrUtil.retrieve3(seriesModel.get(axisType + 'Index'), seriesModel.get(axisType + 'Id'), 0) + '\" not found');\n      }\n    }\n\n    axisModelMap[key] = axisModel;\n  });\n  return axisModelMap;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { isObject, each, indexOf, retrieve3 } from 'zrender/lib/core/util';\nimport { getLayoutRect } from '../../util/layout';\nimport { createScaleByModel, ifAxisCrossZero, niceScaleExtent, estimateLabelUnionRect, getDataDimensionsOnAxis } from '../../coord/axisHelper';\nimport Cartesian2D, { cartesian2DDimensions } from './Cartesian2D';\nimport Axis2D from './Axis2D';\nimport { SINGLE_REFERRING } from '../../util/model';\nimport { isCartesian2DSeries, findAxisModels } from './cartesianAxisHelper';\n\nvar Grid = function () {\n  function Grid(gridModel, ecModel, api) {\n    this.type = 'grid';\n    this._coordsMap = {};\n    this._coordsList = [];\n    this._axesMap = {};\n    this._axesList = [];\n    this.axisPointerEnabled = true;\n    this.dimensions = cartesian2DDimensions;\n\n    this._initCartesian(gridModel, ecModel, api);\n\n    this.model = gridModel;\n  }\n\n  Grid.prototype.getRect = function () {\n    return this._rect;\n  };\n\n  Grid.prototype.update = function (ecModel, api) {\n    var axesMap = this._axesMap;\n\n    this._updateScale(ecModel, this.model);\n\n    each(axesMap.x, function (xAxis) {\n      niceScaleExtent(xAxis.scale, xAxis.model);\n    });\n    each(axesMap.y, function (yAxis) {\n      niceScaleExtent(yAxis.scale, yAxis.model);\n    });\n    var onZeroRecords = {};\n    each(axesMap.x, function (xAxis) {\n      fixAxisOnZero(axesMap, 'y', xAxis, onZeroRecords);\n    });\n    each(axesMap.y, function (yAxis) {\n      fixAxisOnZero(axesMap, 'x', yAxis, onZeroRecords);\n    });\n    this.resize(this.model, api);\n  };\n\n  Grid.prototype.resize = function (gridModel, api, ignoreContainLabel) {\n    var boxLayoutParams = gridModel.getBoxLayoutParams();\n    var isContainLabel = !ignoreContainLabel && gridModel.get('containLabel');\n    var gridRect = getLayoutRect(boxLayoutParams, {\n      width: api.getWidth(),\n      height: api.getHeight()\n    });\n    this._rect = gridRect;\n    var axesList = this._axesList;\n    adjustAxes();\n\n    if (isContainLabel) {\n      each(axesList, function (axis) {\n        if (!axis.model.get(['axisLabel', 'inside'])) {\n          var labelUnionRect = estimateLabelUnionRect(axis);\n\n          if (labelUnionRect) {\n            var dim = axis.isHorizontal() ? 'height' : 'width';\n            var margin = axis.model.get(['axisLabel', 'margin']);\n            gridRect[dim] -= labelUnionRect[dim] + margin;\n\n            if (axis.position === 'top') {\n              gridRect.y += labelUnionRect.height + margin;\n            } else if (axis.position === 'left') {\n              gridRect.x += labelUnionRect.width + margin;\n            }\n          }\n        }\n      });\n      adjustAxes();\n    }\n\n    each(this._coordsList, function (coord) {\n      coord.calcAffineTransform();\n    });\n\n    function adjustAxes() {\n      each(axesList, function (axis) {\n        var isHorizontal = axis.isHorizontal();\n        var extent = isHorizontal ? [0, gridRect.width] : [0, gridRect.height];\n        var idx = axis.inverse ? 1 : 0;\n        axis.setExtent(extent[idx], extent[1 - idx]);\n        updateAxisTransform(axis, isHorizontal ? gridRect.x : gridRect.y);\n      });\n    }\n  };\n\n  Grid.prototype.getAxis = function (dim, axisIndex) {\n    var axesMapOnDim = this._axesMap[dim];\n\n    if (axesMapOnDim != null) {\n      return axesMapOnDim[axisIndex || 0];\n    }\n  };\n\n  Grid.prototype.getAxes = function () {\n    return this._axesList.slice();\n  };\n\n  Grid.prototype.getCartesian = function (xAxisIndex, yAxisIndex) {\n    if (xAxisIndex != null && yAxisIndex != null) {\n      var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\n      return this._coordsMap[key];\n    }\n\n    if (isObject(xAxisIndex)) {\n      yAxisIndex = xAxisIndex.yAxisIndex;\n      xAxisIndex = xAxisIndex.xAxisIndex;\n    }\n\n    for (var i = 0, coordList = this._coordsList; i < coordList.length; i++) {\n      if (coordList[i].getAxis('x').index === xAxisIndex || coordList[i].getAxis('y').index === yAxisIndex) {\n        return coordList[i];\n      }\n    }\n  };\n\n  Grid.prototype.getCartesians = function () {\n    return this._coordsList.slice();\n  };\n\n  Grid.prototype.convertToPixel = function (ecModel, finder, value) {\n    var target = this._findConvertTarget(finder);\n\n    return target.cartesian ? target.cartesian.dataToPoint(value) : target.axis ? target.axis.toGlobalCoord(target.axis.dataToCoord(value)) : null;\n  };\n\n  Grid.prototype.convertFromPixel = function (ecModel, finder, value) {\n    var target = this._findConvertTarget(finder);\n\n    return target.cartesian ? target.cartesian.pointToData(value) : target.axis ? target.axis.coordToData(target.axis.toLocalCoord(value)) : null;\n  };\n\n  Grid.prototype._findConvertTarget = function (finder) {\n    var seriesModel = finder.seriesModel;\n    var xAxisModel = finder.xAxisModel || seriesModel && seriesModel.getReferringComponents('xAxis', SINGLE_REFERRING).models[0];\n    var yAxisModel = finder.yAxisModel || seriesModel && seriesModel.getReferringComponents('yAxis', SINGLE_REFERRING).models[0];\n    var gridModel = finder.gridModel;\n    var coordsList = this._coordsList;\n    var cartesian;\n    var axis;\n\n    if (seriesModel) {\n      cartesian = seriesModel.coordinateSystem;\n      indexOf(coordsList, cartesian) < 0 && (cartesian = null);\n    } else if (xAxisModel && yAxisModel) {\n      cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n    } else if (xAxisModel) {\n      axis = this.getAxis('x', xAxisModel.componentIndex);\n    } else if (yAxisModel) {\n      axis = this.getAxis('y', yAxisModel.componentIndex);\n    } else if (gridModel) {\n      var grid = gridModel.coordinateSystem;\n\n      if (grid === this) {\n        cartesian = this._coordsList[0];\n      }\n    }\n\n    return {\n      cartesian: cartesian,\n      axis: axis\n    };\n  };\n\n  Grid.prototype.containPoint = function (point) {\n    var coord = this._coordsList[0];\n\n    if (coord) {\n      return coord.containPoint(point);\n    }\n  };\n\n  Grid.prototype._initCartesian = function (gridModel, ecModel, api) {\n    var _this = this;\n\n    var grid = this;\n    var axisPositionUsed = {\n      left: false,\n      right: false,\n      top: false,\n      bottom: false\n    };\n    var axesMap = {\n      x: {},\n      y: {}\n    };\n    var axesCount = {\n      x: 0,\n      y: 0\n    };\n    ecModel.eachComponent('xAxis', createAxisCreator('x'), this);\n    ecModel.eachComponent('yAxis', createAxisCreator('y'), this);\n\n    if (!axesCount.x || !axesCount.y) {\n      this._axesMap = {};\n      this._axesList = [];\n      return;\n    }\n\n    this._axesMap = axesMap;\n    each(axesMap.x, function (xAxis, xAxisIndex) {\n      each(axesMap.y, function (yAxis, yAxisIndex) {\n        var key = 'x' + xAxisIndex + 'y' + yAxisIndex;\n        var cartesian = new Cartesian2D(key);\n        cartesian.master = _this;\n        cartesian.model = gridModel;\n        _this._coordsMap[key] = cartesian;\n\n        _this._coordsList.push(cartesian);\n\n        cartesian.addAxis(xAxis);\n        cartesian.addAxis(yAxis);\n      });\n    });\n\n    function createAxisCreator(dimName) {\n      return function (axisModel, idx) {\n        if (!isAxisUsedInTheGrid(axisModel, gridModel)) {\n          return;\n        }\n\n        var axisPosition = axisModel.get('position');\n\n        if (dimName === 'x') {\n          if (axisPosition !== 'top' && axisPosition !== 'bottom') {\n            axisPosition = axisPositionUsed.bottom ? 'top' : 'bottom';\n          }\n        } else {\n          if (axisPosition !== 'left' && axisPosition !== 'right') {\n            axisPosition = axisPositionUsed.left ? 'right' : 'left';\n          }\n        }\n\n        axisPositionUsed[axisPosition] = true;\n        var axis = new Axis2D(dimName, createScaleByModel(axisModel), [0, 0], axisModel.get('type'), axisPosition);\n        var isCategory = axis.type === 'category';\n        axis.onBand = isCategory && axisModel.get('boundaryGap');\n        axis.inverse = axisModel.get('inverse');\n        axisModel.axis = axis;\n        axis.model = axisModel;\n        axis.grid = grid;\n        axis.index = idx;\n\n        grid._axesList.push(axis);\n\n        axesMap[dimName][idx] = axis;\n        axesCount[dimName]++;\n      };\n    }\n  };\n\n  Grid.prototype._updateScale = function (ecModel, gridModel) {\n    each(this._axesList, function (axis) {\n      axis.scale.setExtent(Infinity, -Infinity);\n\n      if (axis.type === 'category') {\n        var categorySortInfo = axis.model.get('categorySortInfo');\n        axis.scale.setSortInfo(categorySortInfo);\n      }\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      if (isCartesian2DSeries(seriesModel)) {\n        var axesModelMap = findAxisModels(seriesModel);\n        var xAxisModel = axesModelMap.xAxisModel;\n        var yAxisModel = axesModelMap.yAxisModel;\n\n        if (!isAxisUsedInTheGrid(xAxisModel, gridModel) || !isAxisUsedInTheGrid(yAxisModel, gridModel)) {\n          return;\n        }\n\n        var cartesian = this.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n        var data = seriesModel.getData();\n        var xAxis = cartesian.getAxis('x');\n        var yAxis = cartesian.getAxis('y');\n\n        if (data.type === 'list') {\n          unionExtent(data, xAxis);\n          unionExtent(data, yAxis);\n        }\n      }\n    }, this);\n\n    function unionExtent(data, axis) {\n      each(getDataDimensionsOnAxis(data, axis.dim), function (dim) {\n        axis.scale.unionExtentFromData(data, dim);\n      });\n    }\n  };\n\n  Grid.prototype.getTooltipAxes = function (dim) {\n    var baseAxes = [];\n    var otherAxes = [];\n    each(this.getCartesians(), function (cartesian) {\n      var baseAxis = dim != null && dim !== 'auto' ? cartesian.getAxis(dim) : cartesian.getBaseAxis();\n      var otherAxis = cartesian.getOtherAxis(baseAxis);\n      indexOf(baseAxes, baseAxis) < 0 && baseAxes.push(baseAxis);\n      indexOf(otherAxes, otherAxis) < 0 && otherAxes.push(otherAxis);\n    });\n    return {\n      baseAxes: baseAxes,\n      otherAxes: otherAxes\n    };\n  };\n\n  Grid.create = function (ecModel, api) {\n    var grids = [];\n    ecModel.eachComponent('grid', function (gridModel, idx) {\n      var grid = new Grid(gridModel, ecModel, api);\n      grid.name = 'grid_' + idx;\n      grid.resize(gridModel, api, true);\n      gridModel.coordinateSystem = grid;\n      grids.push(grid);\n    });\n    ecModel.eachSeries(function (seriesModel) {\n      if (!isCartesian2DSeries(seriesModel)) {\n        return;\n      }\n\n      var axesModelMap = findAxisModels(seriesModel);\n      var xAxisModel = axesModelMap.xAxisModel;\n      var yAxisModel = axesModelMap.yAxisModel;\n      var gridModel = xAxisModel.getCoordSysModel();\n\n      if (process.env.NODE_ENV !== 'production') {\n        if (!gridModel) {\n          throw new Error('Grid \"' + retrieve3(xAxisModel.get('gridIndex'), xAxisModel.get('gridId'), 0) + '\" not found');\n        }\n\n        if (xAxisModel.getCoordSysModel() !== yAxisModel.getCoordSysModel()) {\n          throw new Error('xAxis and yAxis must use the same grid');\n        }\n      }\n\n      var grid = gridModel.coordinateSystem;\n      seriesModel.coordinateSystem = grid.getCartesian(xAxisModel.componentIndex, yAxisModel.componentIndex);\n    });\n    return grids;\n  };\n\n  Grid.dimensions = cartesian2DDimensions;\n  return Grid;\n}();\n\nfunction isAxisUsedInTheGrid(axisModel, gridModel) {\n  return axisModel.getCoordSysModel() === gridModel;\n}\n\nfunction fixAxisOnZero(axesMap, otherAxisDim, axis, onZeroRecords) {\n  axis.getAxesOnZeroOf = function () {\n    return otherAxisOnZeroOf ? [otherAxisOnZeroOf] : [];\n  };\n\n  var otherAxes = axesMap[otherAxisDim];\n  var otherAxisOnZeroOf;\n  var axisModel = axis.model;\n  var onZero = axisModel.get(['axisLine', 'onZero']);\n  var onZeroAxisIndex = axisModel.get(['axisLine', 'onZeroAxisIndex']);\n\n  if (!onZero) {\n    return;\n  }\n\n  if (onZeroAxisIndex != null) {\n    if (canOnZeroToAxis(otherAxes[onZeroAxisIndex])) {\n      otherAxisOnZeroOf = otherAxes[onZeroAxisIndex];\n    }\n  } else {\n    for (var idx in otherAxes) {\n      if (otherAxes.hasOwnProperty(idx) && canOnZeroToAxis(otherAxes[idx]) && !onZeroRecords[getOnZeroRecordKey(otherAxes[idx])]) {\n        otherAxisOnZeroOf = otherAxes[idx];\n        break;\n      }\n    }\n  }\n\n  if (otherAxisOnZeroOf) {\n    onZeroRecords[getOnZeroRecordKey(otherAxisOnZeroOf)] = true;\n  }\n\n  function getOnZeroRecordKey(axis) {\n    return axis.dim + '_' + axis.index;\n  }\n}\n\nfunction canOnZeroToAxis(axis) {\n  return axis && axis.type !== 'category' && axis.type !== 'time' && ifAxisCrossZero(axis);\n}\n\nfunction updateAxisTransform(axis, coordBase) {\n  var axisExtent = axis.getExtent();\n  var axisExtentSum = axisExtent[0] + axisExtent[1];\n  axis.toGlobalCoord = axis.dim === 'x' ? function (coord) {\n    return coord + coordBase;\n  } : function (coord) {\n    return axisExtentSum - coord + coordBase;\n  };\n  axis.toLocalCoord = axis.dim === 'x' ? function (coord) {\n    return coord - coordBase;\n  } : function (coord) {\n    return axisExtentSum - coord + coordBase;\n  };\n}\n\nexport default Grid;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { retrieve, defaults, extend, each, isObject } from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { getECData } from '../../util/innerStore';\nimport { createTextStyle } from '../../label/labelStyle';\nimport Model from '../../model/Model';\nimport { isRadianAroundZero, remRadian } from '../../util/number';\nimport { createSymbol } from '../../util/symbol';\nimport * as matrixUtil from 'zrender/lib/core/matrix';\nimport { applyTransform as v2ApplyTransform } from 'zrender/lib/core/vector';\nimport { shouldShowAllLabels } from '../../coord/axisHelper';\nvar PI = Math.PI;\n\nvar AxisBuilder = function () {\n  function AxisBuilder(axisModel, opt) {\n    this.group = new graphic.Group();\n    this.opt = opt;\n    this.axisModel = axisModel;\n    defaults(opt, {\n      labelOffset: 0,\n      nameDirection: 1,\n      tickDirection: 1,\n      labelDirection: 1,\n      silent: true,\n      handleAutoShown: function () {\n        return true;\n      }\n    });\n    var transformGroup = new graphic.Group({\n      x: opt.position[0],\n      y: opt.position[1],\n      rotation: opt.rotation\n    });\n    transformGroup.updateTransform();\n    this._transformGroup = transformGroup;\n  }\n\n  AxisBuilder.prototype.hasBuilder = function (name) {\n    return !!builders[name];\n  };\n\n  AxisBuilder.prototype.add = function (name) {\n    builders[name](this.opt, this.axisModel, this.group, this._transformGroup);\n  };\n\n  AxisBuilder.prototype.getGroup = function () {\n    return this.group;\n  };\n\n  AxisBuilder.innerTextLayout = function (axisRotation, textRotation, direction) {\n    var rotationDiff = remRadian(textRotation - axisRotation);\n    var textAlign;\n    var textVerticalAlign;\n\n    if (isRadianAroundZero(rotationDiff)) {\n      textVerticalAlign = direction > 0 ? 'top' : 'bottom';\n      textAlign = 'center';\n    } else if (isRadianAroundZero(rotationDiff - PI)) {\n      textVerticalAlign = direction > 0 ? 'bottom' : 'top';\n      textAlign = 'center';\n    } else {\n      textVerticalAlign = 'middle';\n\n      if (rotationDiff > 0 && rotationDiff < PI) {\n        textAlign = direction > 0 ? 'right' : 'left';\n      } else {\n        textAlign = direction > 0 ? 'left' : 'right';\n      }\n    }\n\n    return {\n      rotation: rotationDiff,\n      textAlign: textAlign,\n      textVerticalAlign: textVerticalAlign\n    };\n  };\n\n  AxisBuilder.makeAxisEventDataBase = function (axisModel) {\n    var eventData = {\n      componentType: axisModel.mainType,\n      componentIndex: axisModel.componentIndex\n    };\n    eventData[axisModel.mainType + 'Index'] = axisModel.componentIndex;\n    return eventData;\n  };\n\n  AxisBuilder.isLabelSilent = function (axisModel) {\n    var tooltipOpt = axisModel.get('tooltip');\n    return axisModel.get('silent') || !(axisModel.get('triggerEvent') || tooltipOpt && tooltipOpt.show);\n  };\n\n  return AxisBuilder;\n}();\n\n;\nvar builders = {\n  axisLine: function (opt, axisModel, group, transformGroup) {\n    var shown = axisModel.get(['axisLine', 'show']);\n\n    if (shown === 'auto' && opt.handleAutoShown) {\n      shown = opt.handleAutoShown('axisLine');\n    }\n\n    if (!shown) {\n      return;\n    }\n\n    var extent = axisModel.axis.getExtent();\n    var matrix = transformGroup.transform;\n    var pt1 = [extent[0], 0];\n    var pt2 = [extent[1], 0];\n\n    if (matrix) {\n      v2ApplyTransform(pt1, pt1, matrix);\n      v2ApplyTransform(pt2, pt2, matrix);\n    }\n\n    var lineStyle = extend({\n      lineCap: 'round'\n    }, axisModel.getModel(['axisLine', 'lineStyle']).getLineStyle());\n    var line = new graphic.Line({\n      subPixelOptimize: true,\n      shape: {\n        x1: pt1[0],\n        y1: pt1[1],\n        x2: pt2[0],\n        y2: pt2[1]\n      },\n      style: lineStyle,\n      strokeContainThreshold: opt.strokeContainThreshold || 5,\n      silent: true,\n      z2: 1\n    });\n    line.anid = 'line';\n    group.add(line);\n    var arrows = axisModel.get(['axisLine', 'symbol']);\n    var arrowSize = axisModel.get(['axisLine', 'symbolSize']);\n    var arrowOffset = axisModel.get(['axisLine', 'symbolOffset']) || 0;\n\n    if (typeof arrowOffset === 'number') {\n      arrowOffset = [arrowOffset, arrowOffset];\n    }\n\n    if (arrows != null) {\n      if (typeof arrows === 'string') {\n        arrows = [arrows, arrows];\n      }\n\n      if (typeof arrowSize === 'string' || typeof arrowSize === 'number') {\n        arrowSize = [arrowSize, arrowSize];\n      }\n\n      var symbolWidth_1 = arrowSize[0];\n      var symbolHeight_1 = arrowSize[1];\n      each([{\n        rotate: opt.rotation + Math.PI / 2,\n        offset: arrowOffset[0],\n        r: 0\n      }, {\n        rotate: opt.rotation - Math.PI / 2,\n        offset: arrowOffset[1],\n        r: Math.sqrt((pt1[0] - pt2[0]) * (pt1[0] - pt2[0]) + (pt1[1] - pt2[1]) * (pt1[1] - pt2[1]))\n      }], function (point, index) {\n        if (arrows[index] !== 'none' && arrows[index] != null) {\n          var symbol = createSymbol(arrows[index], -symbolWidth_1 / 2, -symbolHeight_1 / 2, symbolWidth_1, symbolHeight_1, lineStyle.stroke, true);\n          var r = point.r + point.offset;\n          symbol.attr({\n            rotation: point.rotate,\n            x: pt1[0] + r * Math.cos(opt.rotation),\n            y: pt1[1] - r * Math.sin(opt.rotation),\n            silent: true,\n            z2: 11\n          });\n          group.add(symbol);\n        }\n      });\n    }\n  },\n  axisTickLabel: function (opt, axisModel, group, transformGroup) {\n    var ticksEls = buildAxisMajorTicks(group, transformGroup, axisModel, opt);\n    var labelEls = buildAxisLabel(group, transformGroup, axisModel, opt);\n    fixMinMaxLabelShow(axisModel, labelEls, ticksEls);\n    buildAxisMinorTicks(group, transformGroup, axisModel, opt.tickDirection);\n  },\n  axisName: function (opt, axisModel, group, transformGroup) {\n    var name = retrieve(opt.axisName, axisModel.get('name'));\n\n    if (!name) {\n      return;\n    }\n\n    var nameLocation = axisModel.get('nameLocation');\n    var nameDirection = opt.nameDirection;\n    var textStyleModel = axisModel.getModel('nameTextStyle');\n    var gap = axisModel.get('nameGap') || 0;\n    var extent = axisModel.axis.getExtent();\n    var gapSignal = extent[0] > extent[1] ? -1 : 1;\n    var pos = [nameLocation === 'start' ? extent[0] - gapSignal * gap : nameLocation === 'end' ? extent[1] + gapSignal * gap : (extent[0] + extent[1]) / 2, isNameLocationCenter(nameLocation) ? opt.labelOffset + nameDirection * gap : 0];\n    var labelLayout;\n    var nameRotation = axisModel.get('nameRotate');\n\n    if (nameRotation != null) {\n      nameRotation = nameRotation * PI / 180;\n    }\n\n    var axisNameAvailableWidth;\n\n    if (isNameLocationCenter(nameLocation)) {\n      labelLayout = AxisBuilder.innerTextLayout(opt.rotation, nameRotation != null ? nameRotation : opt.rotation, nameDirection);\n    } else {\n      labelLayout = endTextLayout(opt.rotation, nameLocation, nameRotation || 0, extent);\n      axisNameAvailableWidth = opt.axisNameAvailableWidth;\n\n      if (axisNameAvailableWidth != null) {\n        axisNameAvailableWidth = Math.abs(axisNameAvailableWidth / Math.sin(labelLayout.rotation));\n        !isFinite(axisNameAvailableWidth) && (axisNameAvailableWidth = null);\n      }\n    }\n\n    var textFont = textStyleModel.getFont();\n    var truncateOpt = axisModel.get('nameTruncate', true) || {};\n    var ellipsis = truncateOpt.ellipsis;\n    var maxWidth = retrieve(opt.nameTruncateMaxWidth, truncateOpt.maxWidth, axisNameAvailableWidth);\n    var tooltipOpt = axisModel.get('tooltip', true);\n    var mainType = axisModel.mainType;\n    var formatterParams = {\n      componentType: mainType,\n      name: name,\n      $vars: ['name']\n    };\n    formatterParams[mainType + 'Index'] = axisModel.componentIndex;\n    var textEl = new graphic.Text({\n      x: pos[0],\n      y: pos[1],\n      rotation: labelLayout.rotation,\n      silent: AxisBuilder.isLabelSilent(axisModel),\n      style: createTextStyle(textStyleModel, {\n        text: name,\n        font: textFont,\n        overflow: 'truncate',\n        width: maxWidth,\n        ellipsis: ellipsis,\n        fill: textStyleModel.getTextColor() || axisModel.get(['axisLine', 'lineStyle', 'color']),\n        align: textStyleModel.get('align') || labelLayout.textAlign,\n        verticalAlign: textStyleModel.get('verticalAlign') || labelLayout.textVerticalAlign\n      }),\n      z2: 1\n    });\n    textEl.tooltip = tooltipOpt && tooltipOpt.show ? extend({\n      content: name,\n      formatter: function () {\n        return name;\n      },\n      formatterParams: formatterParams\n    }, tooltipOpt) : null;\n    textEl.__fullText = name;\n    textEl.anid = 'name';\n\n    if (axisModel.get('triggerEvent')) {\n      var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\n      eventData.targetType = 'axisName';\n      eventData.name = name;\n      getECData(textEl).eventData = eventData;\n    }\n\n    transformGroup.add(textEl);\n    textEl.updateTransform();\n    group.add(textEl);\n    textEl.decomposeTransform();\n  }\n};\n\nfunction endTextLayout(rotation, textPosition, textRotate, extent) {\n  var rotationDiff = remRadian(textRotate - rotation);\n  var textAlign;\n  var textVerticalAlign;\n  var inverse = extent[0] > extent[1];\n  var onLeft = textPosition === 'start' && !inverse || textPosition !== 'start' && inverse;\n\n  if (isRadianAroundZero(rotationDiff - PI / 2)) {\n    textVerticalAlign = onLeft ? 'bottom' : 'top';\n    textAlign = 'center';\n  } else if (isRadianAroundZero(rotationDiff - PI * 1.5)) {\n    textVerticalAlign = onLeft ? 'top' : 'bottom';\n    textAlign = 'center';\n  } else {\n    textVerticalAlign = 'middle';\n\n    if (rotationDiff < PI * 1.5 && rotationDiff > PI / 2) {\n      textAlign = onLeft ? 'left' : 'right';\n    } else {\n      textAlign = onLeft ? 'right' : 'left';\n    }\n  }\n\n  return {\n    rotation: rotationDiff,\n    textAlign: textAlign,\n    textVerticalAlign: textVerticalAlign\n  };\n}\n\nfunction fixMinMaxLabelShow(axisModel, labelEls, tickEls) {\n  if (shouldShowAllLabels(axisModel.axis)) {\n    return;\n  }\n\n  var showMinLabel = axisModel.get(['axisLabel', 'showMinLabel']);\n  var showMaxLabel = axisModel.get(['axisLabel', 'showMaxLabel']);\n  labelEls = labelEls || [];\n  tickEls = tickEls || [];\n  var firstLabel = labelEls[0];\n  var nextLabel = labelEls[1];\n  var lastLabel = labelEls[labelEls.length - 1];\n  var prevLabel = labelEls[labelEls.length - 2];\n  var firstTick = tickEls[0];\n  var nextTick = tickEls[1];\n  var lastTick = tickEls[tickEls.length - 1];\n  var prevTick = tickEls[tickEls.length - 2];\n\n  if (showMinLabel === false) {\n    ignoreEl(firstLabel);\n    ignoreEl(firstTick);\n  } else if (isTwoLabelOverlapped(firstLabel, nextLabel)) {\n    if (showMinLabel) {\n      ignoreEl(nextLabel);\n      ignoreEl(nextTick);\n    } else {\n      ignoreEl(firstLabel);\n      ignoreEl(firstTick);\n    }\n  }\n\n  if (showMaxLabel === false) {\n    ignoreEl(lastLabel);\n    ignoreEl(lastTick);\n  } else if (isTwoLabelOverlapped(prevLabel, lastLabel)) {\n    if (showMaxLabel) {\n      ignoreEl(prevLabel);\n      ignoreEl(prevTick);\n    } else {\n      ignoreEl(lastLabel);\n      ignoreEl(lastTick);\n    }\n  }\n}\n\nfunction ignoreEl(el) {\n  el && (el.ignore = true);\n}\n\nfunction isTwoLabelOverlapped(current, next) {\n  var firstRect = current && current.getBoundingRect().clone();\n  var nextRect = next && next.getBoundingRect().clone();\n\n  if (!firstRect || !nextRect) {\n    return;\n  }\n\n  var mRotationBack = matrixUtil.identity([]);\n  matrixUtil.rotate(mRotationBack, mRotationBack, -current.rotation);\n  firstRect.applyTransform(matrixUtil.mul([], mRotationBack, current.getLocalTransform()));\n  nextRect.applyTransform(matrixUtil.mul([], mRotationBack, next.getLocalTransform()));\n  return firstRect.intersect(nextRect);\n}\n\nfunction isNameLocationCenter(nameLocation) {\n  return nameLocation === 'middle' || nameLocation === 'center';\n}\n\nfunction createTicks(ticksCoords, tickTransform, tickEndCoord, tickLineStyle, anidPrefix) {\n  var tickEls = [];\n  var pt1 = [];\n  var pt2 = [];\n\n  for (var i = 0; i < ticksCoords.length; i++) {\n    var tickCoord = ticksCoords[i].coord;\n    pt1[0] = tickCoord;\n    pt1[1] = 0;\n    pt2[0] = tickCoord;\n    pt2[1] = tickEndCoord;\n\n    if (tickTransform) {\n      v2ApplyTransform(pt1, pt1, tickTransform);\n      v2ApplyTransform(pt2, pt2, tickTransform);\n    }\n\n    var tickEl = new graphic.Line({\n      subPixelOptimize: true,\n      shape: {\n        x1: pt1[0],\n        y1: pt1[1],\n        x2: pt2[0],\n        y2: pt2[1]\n      },\n      style: tickLineStyle,\n      z2: 2,\n      autoBatch: true,\n      silent: true\n    });\n    tickEl.anid = anidPrefix + '_' + ticksCoords[i].tickValue;\n    tickEls.push(tickEl);\n  }\n\n  return tickEls;\n}\n\nfunction buildAxisMajorTicks(group, transformGroup, axisModel, opt) {\n  var axis = axisModel.axis;\n  var tickModel = axisModel.getModel('axisTick');\n  var shown = tickModel.get('show');\n\n  if (shown === 'auto' && opt.handleAutoShown) {\n    shown = opt.handleAutoShown('axisTick');\n  }\n\n  if (!shown || axis.scale.isBlank()) {\n    return;\n  }\n\n  var lineStyleModel = tickModel.getModel('lineStyle');\n  var tickEndCoord = opt.tickDirection * tickModel.get('length');\n  var ticksCoords = axis.getTicksCoords();\n  var ticksEls = createTicks(ticksCoords, transformGroup.transform, tickEndCoord, defaults(lineStyleModel.getLineStyle(), {\n    stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\n  }), 'ticks');\n\n  for (var i = 0; i < ticksEls.length; i++) {\n    group.add(ticksEls[i]);\n  }\n\n  return ticksEls;\n}\n\nfunction buildAxisMinorTicks(group, transformGroup, axisModel, tickDirection) {\n  var axis = axisModel.axis;\n  var minorTickModel = axisModel.getModel('minorTick');\n\n  if (!minorTickModel.get('show') || axis.scale.isBlank()) {\n    return;\n  }\n\n  var minorTicksCoords = axis.getMinorTicksCoords();\n\n  if (!minorTicksCoords.length) {\n    return;\n  }\n\n  var lineStyleModel = minorTickModel.getModel('lineStyle');\n  var tickEndCoord = tickDirection * minorTickModel.get('length');\n  var minorTickLineStyle = defaults(lineStyleModel.getLineStyle(), defaults(axisModel.getModel('axisTick').getLineStyle(), {\n    stroke: axisModel.get(['axisLine', 'lineStyle', 'color'])\n  }));\n\n  for (var i = 0; i < minorTicksCoords.length; i++) {\n    var minorTicksEls = createTicks(minorTicksCoords[i], transformGroup.transform, tickEndCoord, minorTickLineStyle, 'minorticks_' + i);\n\n    for (var k = 0; k < minorTicksEls.length; k++) {\n      group.add(minorTicksEls[k]);\n    }\n  }\n}\n\nfunction buildAxisLabel(group, transformGroup, axisModel, opt) {\n  var axis = axisModel.axis;\n  var show = retrieve(opt.axisLabelShow, axisModel.get(['axisLabel', 'show']));\n\n  if (!show || axis.scale.isBlank()) {\n    return;\n  }\n\n  var labelModel = axisModel.getModel('axisLabel');\n  var labelMargin = labelModel.get('margin');\n  var labels = axis.getViewLabels();\n  var labelRotation = (retrieve(opt.labelRotate, labelModel.get('rotate')) || 0) * PI / 180;\n  var labelLayout = AxisBuilder.innerTextLayout(opt.rotation, labelRotation, opt.labelDirection);\n  var rawCategoryData = axisModel.getCategories && axisModel.getCategories(true);\n  var labelEls = [];\n  var silent = AxisBuilder.isLabelSilent(axisModel);\n  var triggerEvent = axisModel.get('triggerEvent');\n  each(labels, function (labelItem, index) {\n    var tickValue = axis.scale.type === 'ordinal' ? axis.scale.getRawOrdinalNumber(labelItem.tickValue) : labelItem.tickValue;\n    var formattedLabel = labelItem.formattedLabel;\n    var rawLabel = labelItem.rawLabel;\n    var itemLabelModel = labelModel;\n\n    if (rawCategoryData && rawCategoryData[tickValue]) {\n      var rawCategoryItem = rawCategoryData[tickValue];\n\n      if (isObject(rawCategoryItem) && rawCategoryItem.textStyle) {\n        itemLabelModel = new Model(rawCategoryItem.textStyle, labelModel, axisModel.ecModel);\n      }\n    }\n\n    var textColor = itemLabelModel.getTextColor() || axisModel.get(['axisLine', 'lineStyle', 'color']);\n    var tickCoord = axis.dataToCoord(tickValue);\n    var textEl = new graphic.Text({\n      x: tickCoord,\n      y: opt.labelOffset + opt.labelDirection * labelMargin,\n      rotation: labelLayout.rotation,\n      silent: silent,\n      z2: 10,\n      style: createTextStyle(itemLabelModel, {\n        text: formattedLabel,\n        align: itemLabelModel.getShallow('align', true) || labelLayout.textAlign,\n        verticalAlign: itemLabelModel.getShallow('verticalAlign', true) || itemLabelModel.getShallow('baseline', true) || labelLayout.textVerticalAlign,\n        fill: typeof textColor === 'function' ? textColor(axis.type === 'category' ? rawLabel : axis.type === 'value' ? tickValue + '' : tickValue, index) : textColor\n      })\n    });\n    textEl.anid = 'label_' + tickValue;\n\n    if (triggerEvent) {\n      var eventData = AxisBuilder.makeAxisEventDataBase(axisModel);\n      eventData.targetType = 'axisLabel';\n      eventData.value = rawLabel;\n      getECData(textEl).eventData = eventData;\n    }\n\n    transformGroup.add(textEl);\n    textEl.updateTransform();\n    labelEls.push(textEl);\n    group.add(textEl);\n    textEl.decomposeTransform();\n  });\n  return labelEls;\n}\n\nexport default AxisBuilder;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport Model from '../../model/Model';\nimport { each, curry, clone, defaults, isArray, indexOf } from 'zrender/lib/core/util';\nexport function collect(ecModel, api) {\n  var result = {\n    axesInfo: {},\n    seriesInvolved: false,\n    coordSysAxesInfo: {},\n    coordSysMap: {}\n  };\n  collectAxesInfo(result, ecModel, api);\n  result.seriesInvolved && collectSeriesInfo(result, ecModel);\n  return result;\n}\n\nfunction collectAxesInfo(result, ecModel, api) {\n  var globalTooltipModel = ecModel.getComponent('tooltip');\n  var globalAxisPointerModel = ecModel.getComponent('axisPointer');\n  var linksOption = globalAxisPointerModel.get('link', true) || [];\n  var linkGroups = [];\n  each(api.getCoordinateSystems(), function (coordSys) {\n    if (!coordSys.axisPointerEnabled) {\n      return;\n    }\n\n    var coordSysKey = makeKey(coordSys.model);\n    var axesInfoInCoordSys = result.coordSysAxesInfo[coordSysKey] = {};\n    result.coordSysMap[coordSysKey] = coordSys;\n    var coordSysModel = coordSys.model;\n    var baseTooltipModel = coordSysModel.getModel('tooltip', globalTooltipModel);\n    each(coordSys.getAxes(), curry(saveTooltipAxisInfo, false, null));\n\n    if (coordSys.getTooltipAxes && globalTooltipModel && baseTooltipModel.get('show')) {\n      var triggerAxis = baseTooltipModel.get('trigger') === 'axis';\n      var cross = baseTooltipModel.get(['axisPointer', 'type']) === 'cross';\n      var tooltipAxes = coordSys.getTooltipAxes(baseTooltipModel.get(['axisPointer', 'axis']));\n\n      if (triggerAxis || cross) {\n        each(tooltipAxes.baseAxes, curry(saveTooltipAxisInfo, cross ? 'cross' : true, triggerAxis));\n      }\n\n      if (cross) {\n        each(tooltipAxes.otherAxes, curry(saveTooltipAxisInfo, 'cross', false));\n      }\n    }\n\n    function saveTooltipAxisInfo(fromTooltip, triggerTooltip, axis) {\n      var axisPointerModel = axis.model.getModel('axisPointer', globalAxisPointerModel);\n      var axisPointerShow = axisPointerModel.get('show');\n\n      if (!axisPointerShow || axisPointerShow === 'auto' && !fromTooltip && !isHandleTrigger(axisPointerModel)) {\n        return;\n      }\n\n      if (triggerTooltip == null) {\n        triggerTooltip = axisPointerModel.get('triggerTooltip');\n      }\n\n      axisPointerModel = fromTooltip ? makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) : axisPointerModel;\n      var snap = axisPointerModel.get('snap');\n      var axisKey = makeKey(axis.model);\n      var involveSeries = triggerTooltip || snap || axis.type === 'category';\n      var axisInfo = result.axesInfo[axisKey] = {\n        key: axisKey,\n        axis: axis,\n        coordSys: coordSys,\n        axisPointerModel: axisPointerModel,\n        triggerTooltip: triggerTooltip,\n        involveSeries: involveSeries,\n        snap: snap,\n        useHandle: isHandleTrigger(axisPointerModel),\n        seriesModels: [],\n        linkGroup: null\n      };\n      axesInfoInCoordSys[axisKey] = axisInfo;\n      result.seriesInvolved = result.seriesInvolved || involveSeries;\n      var groupIndex = getLinkGroupIndex(linksOption, axis);\n\n      if (groupIndex != null) {\n        var linkGroup = linkGroups[groupIndex] || (linkGroups[groupIndex] = {\n          axesInfo: {}\n        });\n        linkGroup.axesInfo[axisKey] = axisInfo;\n        linkGroup.mapper = linksOption[groupIndex].mapper;\n        axisInfo.linkGroup = linkGroup;\n      }\n    }\n  });\n}\n\nfunction makeAxisPointerModel(axis, baseTooltipModel, globalAxisPointerModel, ecModel, fromTooltip, triggerTooltip) {\n  var tooltipAxisPointerModel = baseTooltipModel.getModel('axisPointer');\n  var fields = ['type', 'snap', 'lineStyle', 'shadowStyle', 'label', 'animation', 'animationDurationUpdate', 'animationEasingUpdate', 'z'];\n  var volatileOption = {};\n  each(fields, function (field) {\n    volatileOption[field] = clone(tooltipAxisPointerModel.get(field));\n  });\n  volatileOption.snap = axis.type !== 'category' && !!triggerTooltip;\n\n  if (tooltipAxisPointerModel.get('type') === 'cross') {\n    volatileOption.type = 'line';\n  }\n\n  var labelOption = volatileOption.label || (volatileOption.label = {});\n  labelOption.show == null && (labelOption.show = false);\n\n  if (fromTooltip === 'cross') {\n    var tooltipAxisPointerLabelShow = tooltipAxisPointerModel.get(['label', 'show']);\n    labelOption.show = tooltipAxisPointerLabelShow != null ? tooltipAxisPointerLabelShow : true;\n\n    if (!triggerTooltip) {\n      var crossStyle = volatileOption.lineStyle = tooltipAxisPointerModel.get('crossStyle');\n      crossStyle && defaults(labelOption, crossStyle.textStyle);\n    }\n  }\n\n  return axis.model.getModel('axisPointer', new Model(volatileOption, globalAxisPointerModel, ecModel));\n}\n\nfunction collectSeriesInfo(result, ecModel) {\n  ecModel.eachSeries(function (seriesModel) {\n    var coordSys = seriesModel.coordinateSystem;\n    var seriesTooltipTrigger = seriesModel.get(['tooltip', 'trigger'], true);\n    var seriesTooltipShow = seriesModel.get(['tooltip', 'show'], true);\n\n    if (!coordSys || seriesTooltipTrigger === 'none' || seriesTooltipTrigger === false || seriesTooltipTrigger === 'item' || seriesTooltipShow === false || seriesModel.get(['axisPointer', 'show'], true) === false) {\n      return;\n    }\n\n    each(result.coordSysAxesInfo[makeKey(coordSys.model)], function (axisInfo) {\n      var axis = axisInfo.axis;\n\n      if (coordSys.getAxis(axis.dim) === axis) {\n        axisInfo.seriesModels.push(seriesModel);\n        axisInfo.seriesDataCount == null && (axisInfo.seriesDataCount = 0);\n        axisInfo.seriesDataCount += seriesModel.getData().count();\n      }\n    });\n  });\n}\n\nfunction getLinkGroupIndex(linksOption, axis) {\n  var axisModel = axis.model;\n  var dim = axis.dim;\n\n  for (var i = 0; i < linksOption.length; i++) {\n    var linkOption = linksOption[i] || {};\n\n    if (checkPropInLink(linkOption[dim + 'AxisId'], axisModel.id) || checkPropInLink(linkOption[dim + 'AxisIndex'], axisModel.componentIndex) || checkPropInLink(linkOption[dim + 'AxisName'], axisModel.name)) {\n      return i;\n    }\n  }\n}\n\nfunction checkPropInLink(linkPropValue, axisPropValue) {\n  return linkPropValue === 'all' || isArray(linkPropValue) && indexOf(linkPropValue, axisPropValue) >= 0 || linkPropValue === axisPropValue;\n}\n\nexport function fixValue(axisModel) {\n  var axisInfo = getAxisInfo(axisModel);\n\n  if (!axisInfo) {\n    return;\n  }\n\n  var axisPointerModel = axisInfo.axisPointerModel;\n  var scale = axisInfo.axis.scale;\n  var option = axisPointerModel.option;\n  var status = axisPointerModel.get('status');\n  var value = axisPointerModel.get('value');\n\n  if (value != null) {\n    value = scale.parse(value);\n  }\n\n  var useHandle = isHandleTrigger(axisPointerModel);\n\n  if (status == null) {\n    option.status = useHandle ? 'show' : 'hide';\n  }\n\n  var extent = scale.getExtent().slice();\n  extent[0] > extent[1] && extent.reverse();\n\n  if (value == null || value > extent[1]) {\n    value = extent[1];\n  }\n\n  if (value < extent[0]) {\n    value = extent[0];\n  }\n\n  option.value = value;\n\n  if (useHandle) {\n    option.status = axisInfo.axis.scale.isBlank() ? 'hide' : 'show';\n  }\n}\nexport function getAxisInfo(axisModel) {\n  var coordSysAxesInfo = (axisModel.ecModel.getComponent('axisPointer') || {}).coordSysAxesInfo;\n  return coordSysAxesInfo && coordSysAxesInfo.axesInfo[makeKey(axisModel)];\n}\nexport function getAxisPointerModel(axisModel) {\n  var axisInfo = getAxisInfo(axisModel);\n  return axisInfo && axisInfo.axisPointerModel;\n}\n\nfunction isHandleTrigger(axisPointerModel) {\n  return !!axisPointerModel.get(['handle', 'show']);\n}\n\nexport function makeKey(model) {\n  return model.type + '||' + model.id;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as axisPointerModelHelper from '../axisPointer/modelHelper';\nimport ComponentView from '../../view/Component';\nvar axisPointerClazz = {};\n\nvar AxisView = function (_super) {\n  __extends(AxisView, _super);\n\n  function AxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = AxisView.type;\n    return _this;\n  }\n\n  AxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n    this.axisPointerClass && axisPointerModelHelper.fixValue(axisModel);\n\n    _super.prototype.render.apply(this, arguments);\n\n    this._doUpdateAxisPointerClass(axisModel, api, true);\n  };\n\n  AxisView.prototype.updateAxisPointer = function (axisModel, ecModel, api, payload) {\n    this._doUpdateAxisPointerClass(axisModel, api, false);\n  };\n\n  AxisView.prototype.remove = function (ecModel, api) {\n    var axisPointer = this._axisPointer;\n    axisPointer && axisPointer.remove(api);\n  };\n\n  AxisView.prototype.dispose = function (ecModel, api) {\n    this._disposeAxisPointer(api);\n\n    _super.prototype.dispose.apply(this, arguments);\n  };\n\n  AxisView.prototype._doUpdateAxisPointerClass = function (axisModel, api, forceRender) {\n    var Clazz = AxisView.getAxisPointerClass(this.axisPointerClass);\n\n    if (!Clazz) {\n      return;\n    }\n\n    var axisPointerModel = axisPointerModelHelper.getAxisPointerModel(axisModel);\n    axisPointerModel ? (this._axisPointer || (this._axisPointer = new Clazz())).render(axisModel, axisPointerModel, api, forceRender) : this._disposeAxisPointer(api);\n  };\n\n  AxisView.prototype._disposeAxisPointer = function (api) {\n    this._axisPointer && this._axisPointer.dispose(api);\n    this._axisPointer = null;\n  };\n\n  AxisView.registerAxisPointerClass = function (type, clazz) {\n    if (process.env.NODE_ENV !== 'production') {\n      if (axisPointerClazz[type]) {\n        throw new Error('axisPointer ' + type + ' exists');\n      }\n    }\n\n    axisPointerClazz[type] = clazz;\n  };\n\n  ;\n\n  AxisView.getAxisPointerClass = function (type) {\n    return type && axisPointerClazz[type];\n  };\n\n  ;\n  AxisView.type = 'axis';\n  return AxisView;\n}(ComponentView);\n\nexport default AxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport { makeInner } from '../../util/model';\nvar inner = makeInner();\nexport function rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel) {\n  var axis = axisModel.axis;\n\n  if (axis.scale.isBlank()) {\n    return;\n  }\n\n  var splitAreaModel = axisModel.getModel('splitArea');\n  var areaStyleModel = splitAreaModel.getModel('areaStyle');\n  var areaColors = areaStyleModel.get('color');\n  var gridRect = gridModel.coordinateSystem.getRect();\n  var ticksCoords = axis.getTicksCoords({\n    tickModel: splitAreaModel,\n    clamp: true\n  });\n\n  if (!ticksCoords.length) {\n    return;\n  }\n\n  var areaColorsLen = areaColors.length;\n  var lastSplitAreaColors = inner(axisView).splitAreaColors;\n  var newSplitAreaColors = zrUtil.createHashMap();\n  var colorIndex = 0;\n\n  if (lastSplitAreaColors) {\n    for (var i = 0; i < ticksCoords.length; i++) {\n      var cIndex = lastSplitAreaColors.get(ticksCoords[i].tickValue);\n\n      if (cIndex != null) {\n        colorIndex = (cIndex + (areaColorsLen - 1) * i) % areaColorsLen;\n        break;\n      }\n    }\n  }\n\n  var prev = axis.toGlobalCoord(ticksCoords[0].coord);\n  var areaStyle = areaStyleModel.getAreaStyle();\n  areaColors = zrUtil.isArray(areaColors) ? areaColors : [areaColors];\n\n  for (var i = 1; i < ticksCoords.length; i++) {\n    var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n    var x = void 0;\n    var y = void 0;\n    var width = void 0;\n    var height = void 0;\n\n    if (axis.isHorizontal()) {\n      x = prev;\n      y = gridRect.y;\n      width = tickCoord - x;\n      height = gridRect.height;\n      prev = x + width;\n    } else {\n      x = gridRect.x;\n      y = prev;\n      width = gridRect.width;\n      height = tickCoord - y;\n      prev = y + height;\n    }\n\n    var tickValue = ticksCoords[i - 1].tickValue;\n    tickValue != null && newSplitAreaColors.set(tickValue, colorIndex);\n    axisGroup.add(new graphic.Rect({\n      anid: tickValue != null ? 'area_' + tickValue : null,\n      shape: {\n        x: x,\n        y: y,\n        width: width,\n        height: height\n      },\n      style: zrUtil.defaults({\n        fill: areaColors[colorIndex]\n      }, areaStyle),\n      autoBatch: true,\n      silent: true\n    }));\n    colorIndex = (colorIndex + 1) % areaColorsLen;\n  }\n\n  inner(axisView).splitAreaColors = newSplitAreaColors;\n}\nexport function rectCoordAxisHandleRemove(axisView) {\n  inner(axisView).splitAreaColors = null;\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport * as zrUtil from 'zrender/lib/core/util';\nimport * as graphic from '../../util/graphic';\nimport AxisBuilder from './AxisBuilder';\nimport AxisView from './AxisView';\nimport * as cartesianAxisHelper from '../../coord/cartesian/cartesianAxisHelper';\nimport { rectCoordAxisBuildSplitArea, rectCoordAxisHandleRemove } from './axisSplitHelper';\nvar axisBuilderAttrs = ['axisLine', 'axisTickLabel', 'axisName'];\nvar selfBuilderAttrs = ['splitArea', 'splitLine', 'minorSplitLine'];\n\nvar CartesianAxisView = function (_super) {\n  __extends(CartesianAxisView, _super);\n\n  function CartesianAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CartesianAxisView.type;\n    _this.axisPointerClass = 'CartesianAxisPointer';\n    return _this;\n  }\n\n  CartesianAxisView.prototype.render = function (axisModel, ecModel, api, payload) {\n    this.group.removeAll();\n    var oldAxisGroup = this._axisGroup;\n    this._axisGroup = new graphic.Group();\n    this.group.add(this._axisGroup);\n\n    if (!axisModel.get('show')) {\n      return;\n    }\n\n    var gridModel = axisModel.getCoordSysModel();\n    var layout = cartesianAxisHelper.layout(gridModel, axisModel);\n    var axisBuilder = new AxisBuilder(axisModel, zrUtil.extend({\n      handleAutoShown: function (elementType) {\n        var cartesians = gridModel.coordinateSystem.getCartesians();\n\n        for (var i = 0; i < cartesians.length; i++) {\n          var otherAxisType = cartesians[i].getOtherAxis(axisModel.axis).type;\n\n          if (otherAxisType === 'value' || otherAxisType === 'log') {\n            return true;\n          }\n        }\n\n        return false;\n      }\n    }, layout));\n    zrUtil.each(axisBuilderAttrs, axisBuilder.add, axisBuilder);\n\n    this._axisGroup.add(axisBuilder.getGroup());\n\n    zrUtil.each(selfBuilderAttrs, function (name) {\n      if (axisModel.get([name, 'show'])) {\n        axisElementBuilders[name](this, this._axisGroup, axisModel, gridModel);\n      }\n    }, this);\n    graphic.groupTransition(oldAxisGroup, this._axisGroup, axisModel);\n\n    _super.prototype.render.call(this, axisModel, ecModel, api, payload);\n  };\n\n  CartesianAxisView.prototype.remove = function () {\n    rectCoordAxisHandleRemove(this);\n  };\n\n  CartesianAxisView.type = 'cartesianAxis';\n  return CartesianAxisView;\n}(AxisView);\n\nvar axisElementBuilders = {\n  splitLine: function (axisView, axisGroup, axisModel, gridModel) {\n    var axis = axisModel.axis;\n\n    if (axis.scale.isBlank()) {\n      return;\n    }\n\n    var splitLineModel = axisModel.getModel('splitLine');\n    var lineStyleModel = splitLineModel.getModel('lineStyle');\n    var lineColors = lineStyleModel.get('color');\n    lineColors = zrUtil.isArray(lineColors) ? lineColors : [lineColors];\n    var gridRect = gridModel.coordinateSystem.getRect();\n    var isHorizontal = axis.isHorizontal();\n    var lineCount = 0;\n    var ticksCoords = axis.getTicksCoords({\n      tickModel: splitLineModel\n    });\n    var p1 = [];\n    var p2 = [];\n    var lineStyle = lineStyleModel.getLineStyle();\n\n    for (var i = 0; i < ticksCoords.length; i++) {\n      var tickCoord = axis.toGlobalCoord(ticksCoords[i].coord);\n\n      if (isHorizontal) {\n        p1[0] = tickCoord;\n        p1[1] = gridRect.y;\n        p2[0] = tickCoord;\n        p2[1] = gridRect.y + gridRect.height;\n      } else {\n        p1[0] = gridRect.x;\n        p1[1] = tickCoord;\n        p2[0] = gridRect.x + gridRect.width;\n        p2[1] = tickCoord;\n      }\n\n      var colorIndex = lineCount++ % lineColors.length;\n      var tickValue = ticksCoords[i].tickValue;\n      axisGroup.add(new graphic.Line({\n        anid: tickValue != null ? 'line_' + ticksCoords[i].tickValue : null,\n        subPixelOptimize: true,\n        autoBatch: true,\n        shape: {\n          x1: p1[0],\n          y1: p1[1],\n          x2: p2[0],\n          y2: p2[1]\n        },\n        style: zrUtil.defaults({\n          stroke: lineColors[colorIndex]\n        }, lineStyle),\n        silent: true\n      }));\n    }\n  },\n  minorSplitLine: function (axisView, axisGroup, axisModel, gridModel) {\n    var axis = axisModel.axis;\n    var minorSplitLineModel = axisModel.getModel('minorSplitLine');\n    var lineStyleModel = minorSplitLineModel.getModel('lineStyle');\n    var gridRect = gridModel.coordinateSystem.getRect();\n    var isHorizontal = axis.isHorizontal();\n    var minorTicksCoords = axis.getMinorTicksCoords();\n\n    if (!minorTicksCoords.length) {\n      return;\n    }\n\n    var p1 = [];\n    var p2 = [];\n    var lineStyle = lineStyleModel.getLineStyle();\n\n    for (var i = 0; i < minorTicksCoords.length; i++) {\n      for (var k = 0; k < minorTicksCoords[i].length; k++) {\n        var tickCoord = axis.toGlobalCoord(minorTicksCoords[i][k].coord);\n\n        if (isHorizontal) {\n          p1[0] = tickCoord;\n          p1[1] = gridRect.y;\n          p2[0] = tickCoord;\n          p2[1] = gridRect.y + gridRect.height;\n        } else {\n          p1[0] = gridRect.x;\n          p1[1] = tickCoord;\n          p2[0] = gridRect.x + gridRect.width;\n          p2[1] = tickCoord;\n        }\n\n        axisGroup.add(new graphic.Line({\n          anid: 'minor_line_' + minorTicksCoords[i][k].tickValue,\n          subPixelOptimize: true,\n          autoBatch: true,\n          shape: {\n            x1: p1[0],\n            y1: p1[1],\n            x2: p2[0],\n            y2: p2[1]\n          },\n          style: lineStyle,\n          silent: true\n        }));\n      }\n    }\n  },\n  splitArea: function (axisView, axisGroup, axisModel, gridModel) {\n    rectCoordAxisBuildSplitArea(axisView, axisGroup, axisModel, gridModel);\n  }\n};\n\nvar CartesianXAxisView = function (_super) {\n  __extends(CartesianXAxisView, _super);\n\n  function CartesianXAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CartesianXAxisView.type;\n    return _this;\n  }\n\n  CartesianXAxisView.type = 'xAxis';\n  return CartesianXAxisView;\n}(CartesianAxisView);\n\nexport { CartesianXAxisView };\n\nvar CartesianYAxisView = function (_super) {\n  __extends(CartesianYAxisView, _super);\n\n  function CartesianYAxisView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = CartesianXAxisView.type;\n    return _this;\n  }\n\n  CartesianYAxisView.type = 'yAxis';\n  return CartesianYAxisView;\n}(CartesianAxisView);\n\nexport { CartesianYAxisView };\nexport default CartesianAxisView;","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentView from '../../view/Component';\nimport GridModel from '../../coord/cartesian/GridModel';\nimport { Rect } from '../../util/graphic';\nimport { defaults } from 'zrender/lib/core/util';\nimport { CartesianAxisModel } from '../../coord/cartesian/AxisModel';\nimport axisModelCreator from '../../coord/axisModelCreator';\nimport Grid from '../../coord/cartesian/Grid';\nimport { CartesianXAxisView, CartesianYAxisView } from '../axis/CartesianAxisView';\n\nvar GridView = function (_super) {\n  __extends(GridView, _super);\n\n  function GridView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'grid';\n    return _this;\n  }\n\n  GridView.prototype.render = function (gridModel, ecModel) {\n    this.group.removeAll();\n\n    if (gridModel.get('show')) {\n      this.group.add(new Rect({\n        shape: gridModel.coordinateSystem.getRect(),\n        style: defaults({\n          fill: gridModel.get('backgroundColor')\n        }, gridModel.getItemStyle()),\n        silent: true,\n        z2: -1\n      }));\n    }\n  };\n\n  GridView.type = 'grid';\n  return GridView;\n}(ComponentView);\n\nvar extraOption = {\n  offset: 0\n};\nexport function install(registers) {\n  registers.registerComponentView(GridView);\n  registers.registerComponentModel(GridModel);\n  registers.registerCoordinateSystem('cartesian2d', Grid);\n  axisModelCreator(registers, 'x', CartesianAxisModel, extraOption);\n  axisModelCreator(registers, 'y', CartesianAxisModel, extraOption);\n  registers.registerComponentView(CartesianXAxisView);\n  registers.registerComponentView(CartesianYAxisView);\n  registers.registerPreprocessor(function (option) {\n    if (option.xAxis && option.yAxis && !option.grid) {\n      option.grid = {};\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nimport { retrieveRawValue } from '../data/helper/dataProvider';\nimport { makeInner } from '../util/model';\nimport { getDecalFromPalette } from '../model/mixin/palette';\nvar DEFAULT_OPTION = {\n  label: {\n    enabled: true\n  },\n  decal: {\n    show: false\n  }\n};\nvar inner = makeInner();\nvar decalPaletteScope = {};\nexport default function ariaVisual(ecModel, api) {\n  var ariaModel = ecModel.getModel('aria');\n\n  if (!ariaModel.get('enabled')) {\n    return;\n  }\n\n  var defaultOption = zrUtil.clone(DEFAULT_OPTION);\n  zrUtil.merge(defaultOption.label, ecModel.getLocaleModel().get('aria'), false);\n  zrUtil.merge(ariaModel.option, defaultOption, false);\n  setDecal();\n  setLabel();\n\n  function setDecal() {\n    var decalModel = ariaModel.getModel('decal');\n    var useDecal = decalModel.get('show');\n\n    if (useDecal) {\n      var paletteScopeGroupByType_1 = zrUtil.createHashMap();\n      ecModel.eachSeries(function (seriesModel) {\n        if (!seriesModel.useColorPaletteOnData) {\n          return;\n        }\n\n        var decalScope = paletteScopeGroupByType_1.get(seriesModel.type);\n\n        if (!decalScope) {\n          decalScope = {};\n          paletteScopeGroupByType_1.set(seriesModel.type, decalScope);\n        }\n\n        inner(seriesModel).scope = decalScope;\n      });\n      ecModel.eachRawSeries(function (seriesModel) {\n        if (ecModel.isSeriesFiltered(seriesModel)) {\n          return;\n        }\n\n        if (typeof seriesModel.enableAriaDecal === 'function') {\n          seriesModel.enableAriaDecal();\n          return;\n        }\n\n        var data = seriesModel.getData();\n\n        if (seriesModel.useColorPaletteOnData) {\n          var dataAll_1 = seriesModel.getRawData();\n          var idxMap_1 = {};\n          var decalScope_1 = inner(seriesModel).scope;\n          data.each(function (idx) {\n            var rawIdx = data.getRawIndex(idx);\n            idxMap_1[rawIdx] = idx;\n          });\n          var dataCount_1 = dataAll_1.count();\n          dataAll_1.each(function (rawIdx) {\n            var idx = idxMap_1[rawIdx];\n            var name = dataAll_1.getName(rawIdx) || rawIdx + '';\n            var paletteDecal = getDecalFromPalette(seriesModel.ecModel, name, decalScope_1, dataCount_1);\n            var specifiedDecal = data.getItemVisual(idx, 'decal');\n            data.setItemVisual(idx, 'decal', mergeDecal(specifiedDecal, paletteDecal));\n          });\n        } else {\n          var paletteDecal = getDecalFromPalette(seriesModel.ecModel, seriesModel.name, decalPaletteScope, ecModel.getSeriesCount());\n          var specifiedDecal = data.getVisual('decal');\n          data.setVisual('decal', mergeDecal(specifiedDecal, paletteDecal));\n        }\n\n        function mergeDecal(specifiedDecal, paletteDecal) {\n          var resultDecal = specifiedDecal ? zrUtil.extend(zrUtil.extend({}, paletteDecal), specifiedDecal) : paletteDecal;\n          resultDecal.dirty = true;\n          return resultDecal;\n        }\n      });\n    }\n  }\n\n  function setLabel() {\n    var labelLocale = ecModel.getLocaleModel().get('aria');\n    var labelModel = ariaModel.getModel('label');\n    labelModel.option = zrUtil.defaults(labelModel.option, labelLocale);\n\n    if (!labelModel.get('enabled')) {\n      return;\n    }\n\n    var dom = api.getZr().dom;\n\n    if (labelModel.get('description')) {\n      dom.setAttribute('aria-label', labelModel.get('description'));\n      return;\n    }\n\n    var seriesCnt = ecModel.getSeriesCount();\n    var maxDataCnt = labelModel.get(['data', 'maxCount']) || 10;\n    var maxSeriesCnt = labelModel.get(['series', 'maxCount']) || 10;\n    var displaySeriesCnt = Math.min(seriesCnt, maxSeriesCnt);\n    var ariaLabel;\n\n    if (seriesCnt < 1) {\n      return;\n    } else {\n      var title = getTitle();\n\n      if (title) {\n        var withTitle = labelModel.get(['general', 'withTitle']);\n        ariaLabel = replace(withTitle, {\n          title: title\n        });\n      } else {\n        ariaLabel = labelModel.get(['general', 'withoutTitle']);\n      }\n\n      var seriesLabels_1 = [];\n      var prefix = seriesCnt > 1 ? labelModel.get(['series', 'multiple', 'prefix']) : labelModel.get(['series', 'single', 'prefix']);\n      ariaLabel += replace(prefix, {\n        seriesCount: seriesCnt\n      });\n      ecModel.eachSeries(function (seriesModel, idx) {\n        if (idx < displaySeriesCnt) {\n          var seriesLabel = void 0;\n          var seriesName = seriesModel.get('name');\n          var withName = seriesName ? 'withName' : 'withoutName';\n          seriesLabel = seriesCnt > 1 ? labelModel.get(['series', 'multiple', withName]) : labelModel.get(['series', 'single', withName]);\n          seriesLabel = replace(seriesLabel, {\n            seriesId: seriesModel.seriesIndex,\n            seriesName: seriesModel.get('name'),\n            seriesType: getSeriesTypeName(seriesModel.subType)\n          });\n          var data = seriesModel.getData();\n\n          if (data.count() > maxDataCnt) {\n            var partialLabel = labelModel.get(['data', 'partialData']);\n            seriesLabel += replace(partialLabel, {\n              displayCnt: maxDataCnt\n            });\n          } else {\n            seriesLabel += labelModel.get(['data', 'allData']);\n          }\n\n          var dataLabels = [];\n\n          for (var i = 0; i < data.count(); i++) {\n            if (i < maxDataCnt) {\n              var name_1 = data.getName(i);\n              var value = retrieveRawValue(data, i);\n              var dataLabel = labelModel.get(['data', name_1 ? 'withName' : 'withoutName']);\n              dataLabels.push(replace(dataLabel, {\n                name: name_1,\n                value: value\n              }));\n            }\n          }\n\n          var middleSeparator_1 = labelModel.get(['data', 'separator', 'middle']);\n          var endSeparator_1 = labelModel.get(['data', 'separator', 'end']);\n          seriesLabel += dataLabels.join(middleSeparator_1) + endSeparator_1;\n          seriesLabels_1.push(seriesLabel);\n        }\n      });\n      var separatorModel = labelModel.getModel(['series', 'multiple', 'separator']);\n      var middleSeparator = separatorModel.get('middle');\n      var endSeparator = separatorModel.get('end');\n      ariaLabel += seriesLabels_1.join(middleSeparator) + endSeparator;\n      dom.setAttribute('aria-label', ariaLabel);\n    }\n  }\n\n  function replace(str, keyValues) {\n    if (typeof str !== 'string') {\n      return str;\n    }\n\n    var result = str;\n    zrUtil.each(keyValues, function (value, key) {\n      result = result.replace(new RegExp('\\\\{\\\\s*' + key + '\\\\s*\\\\}', 'g'), value);\n    });\n    return result;\n  }\n\n  function getTitle() {\n    var title = ecModel.get('title');\n\n    if (title && title.length) {\n      title = title[0];\n    }\n\n    return title && title.text;\n  }\n\n  function getSeriesTypeName(type) {\n    return ecModel.getLocaleModel().get(['series', 'typeNames'])[type] || '自定义图';\n  }\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport * as zrUtil from 'zrender/lib/core/util';\nexport default function ariaPreprocessor(option) {\n  if (!option || !option.aria) {\n    return;\n  }\n\n  var aria = option.aria;\n\n  if (aria.show != null) {\n    aria.enabled = aria.show;\n  }\n\n  aria.label = aria.label || {};\n  zrUtil.each(['description', 'general', 'series', 'data'], function (name) {\n    if (aria[name] != null) {\n      aria.label[name] = aria[name];\n    }\n  });\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport ariaVisual from '../../visual/aria';\nimport ariaPreprocessor from './preprocessor';\nexport function install(registers) {\n  registers.registerPreprocessor(ariaPreprocessor);\n  registers.registerVisual(registers.PRIORITY.VISUAL.ARIA, ariaVisual);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { __extends } from \"tslib\";\nimport ComponentModel from '../../model/Component';\nimport ComponentView from '../../view/Component';\nimport { SERIES_LAYOUT_BY_COLUMN } from '../../util/types';\nimport { disableTransformOptionMerge, SourceManager } from '../../data/helper/sourceManager';\n\nvar DatasetModel = function (_super) {\n  __extends(DatasetModel, _super);\n\n  function DatasetModel() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'dataset';\n    return _this;\n  }\n\n  DatasetModel.prototype.init = function (option, parentModel, ecModel) {\n    _super.prototype.init.call(this, option, parentModel, ecModel);\n\n    this._sourceManager = new SourceManager(this);\n    disableTransformOptionMerge(this);\n  };\n\n  DatasetModel.prototype.mergeOption = function (newOption, ecModel) {\n    _super.prototype.mergeOption.call(this, newOption, ecModel);\n\n    disableTransformOptionMerge(this);\n  };\n\n  DatasetModel.prototype.optionUpdated = function () {\n    this._sourceManager.dirty();\n  };\n\n  DatasetModel.prototype.getSourceManager = function () {\n    return this._sourceManager;\n  };\n\n  DatasetModel.type = 'dataset';\n  DatasetModel.defaultOption = {\n    seriesLayoutBy: SERIES_LAYOUT_BY_COLUMN\n  };\n  return DatasetModel;\n}(ComponentModel);\n\nexport { DatasetModel };\n\nvar DatasetView = function (_super) {\n  __extends(DatasetView, _super);\n\n  function DatasetView() {\n    var _this = _super !== null && _super.apply(this, arguments) || this;\n\n    _this.type = 'dataset';\n    return _this;\n  }\n\n  DatasetView.type = 'dataset';\n  return DatasetView;\n}(ComponentView);\n\nexport function install(registers) {\n  registers.registerComponentModel(DatasetModel);\n  registers.registerComponentView(DatasetView);\n}","\n/*\n* Licensed to the Apache Software Foundation (ASF) under one\n* or more contributor license agreements.  See the NOTICE file\n* distributed with this work for additional information\n* regarding copyright ownership.  The ASF licenses this file\n* to you under the Apache License, Version 2.0 (the\n* \"License\"); you may not use this file except in compliance\n* with the License.  You may obtain a copy of the License at\n*\n*   http://www.apache.org/licenses/LICENSE-2.0\n*\n* Unless required by applicable law or agreed to in writing,\n* software distributed under the License is distributed on an\n* \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\n* KIND, either express or implied.  See the License for the\n* specific language governing permissions and limitations\n* under the License.\n*/\n\n\n/**\n * AUTO-GENERATED FILE. DO NOT MODIFY.\n */\n\nimport { use } from './lib/extension';\nexport * from './lib/export/core';\nimport { install as CanvasRenderer } from './lib/renderer/installCanvasRenderer';\nimport { install as LineChart } from './lib/chart/line/install';\nimport { install as BarChart } from './lib/chart/bar/install';\nimport { install as PieChart } from './lib/chart/pie/install';\nimport { install as GridSimpleComponent } from './lib/component/grid/installSimple';\nimport { install as AriaComponent } from './lib/component/aria/install';\nimport { install as DatasetComponent } from './lib/component/dataset/install';\nuse([CanvasRenderer]);\nuse([LineChart, BarChart, PieChart]);\nuse([GridSimpleComponent, AriaComponent, DatasetComponent]);"],"names":["clone","eventUtil.clientToLocal","dist","eventTool.stop","util.each","vec2.dist","create","copy","mul","scale","matrix.identity","matrix.create","matrix.mul","matrix.copy","matrix.invert","vector.applyTransform","matrix.rotate","easing","easingFuncs","lerp","color.parse","matrix.translate","matrix.scale","methods","timsort","util.indexOf","requestAnimationFrame","zrUtil.map","zrUtil.noop","zrUtil.each","zrUtil.indexOf","zrUtil.keys","HandlerProxy","zrUtil.guid","parsePercent","zrUtil.reduce","zrUtil.assert","zrUtil.createObject","zrUtil.extend","zrUtil.inherits","imageHelper.findExistImage","imageHelper.isImageReady","PRIMARY_STATES_KEYS","EPSILON","v2Create","isNotAroundZero","v2DistSquare","mathMin","mathMax","vec2.create","cubicExtrema","curve.cubicExtrema","cubicAt","curve.cubicAt","quadraticExtremum","curve.quadraticExtremum","quadraticAt","curve.quadraticAt","min","max","vec2.min","vec2.max","mathCos","mathSin","mathSqrt","PI2","dpr","containStroke","curve.cubicProjectPoint","CMD","curve.cubicRootAt","curve.quadraticRootAt","line.containStroke","cubic.containStroke","quadratic.containStroke","arc.containStroke","pathContain.containStroke","pathContain.contain","round","roundRectHelper.buildPath","color","colorTool.lift","v2ApplyTransform","PI","mathAbs","buildPath","roundSectorHelper.buildPath","distance","v2Distance","v2Min","v2Max","v2Clone","v2Sub","v2Scale","v2Add","polyHelper.buildPath","subPixelOptimizeOutputShape","vec2.normalize","minTv","maxTv","Displayble","pathTool.extendFromString","pathTool.createFromString","mergePath","pathTool.mergePath","zrUtil.merge","numberUtil.parseDate","defaults","zrUtil.defaults","zrUtil.isArray","Text","zrUtil.isString","normalizeCssArray","zrUtil.normalizeCssArray","zrUtil.isObject","each","zrUtil.curry","formatUtil.normalizeCssArray","componentUtil.getUID","layout.fetchLayoutMode","layout.getLayoutParams","layout.mergeLayoutParam","componentUtil.enableSubTypeDefaulter","componentUtil.enableTopologicalTravel","modelUtil.normalizeToArray","modelUtil.mappingToExists","modelUtil.setComponentTypeToKeyInfo","modelUtil.isComponentIdInternal","modelUtil.convertOptionIdName","zrUtil.bind","isObject","modelUtil.TEXT_STYLE_OPTIONS","zrUtil.isTypedArray","set","compatStyle","inner","modelUtil.makeInner","modelUtil.defaultEmphasis","zrUtil.mixin","modelUtil.isNameSpecified","clazzUtil.enableClassExtend","clazzUtil.enableClassManagement","modelUtil.queryDataIndex","graphic.Group","graphic.Rect","graphic.Text","graphic.Arc","vector.dist","vector.lerp","graphic.Path","graphic.Circle","graphic.makeImage","graphic.makePath","assert","isFunction","zrUtil.isFunction","indexOf","version","zrender.init","zrUtil.clone","backwardCompat","zrUtil.setAsPrimitive","instances","zrUtil.createCanvas","graphic.Image","modelUtil.parseFinder","modelUtil.setAttribute","zrUtil.createHashMap","colorTool.parse","colorTool.stringify","graphic.isElementRemoved","init","zrUtil.isDom","dispose","modelUtil.getAttribute","zrUtil.$override","decal","loadingDefault","darkTheme","map","zrUtil.isArrayLike","zrUtil.slice","CoordinateSystem","numberUtil.round","numberUtil.nice","numberUtil.getPrecisionSafe","contain","normalize","scaleHelper.contain","scaleHelper.normalize","scaleHelper.scale","roundNumber","helper.contain","helper.normalize","helper.scale","helper.getIntervalPrecision","formatUtil.addCommas","helper.intervalScaleNiceTicks","getPrecisionSafe","mathFloor","mathPow","numberUtil.quantity","dataStack","axisHelper.createScaleByModel","axisHelper.niceScaleExtent","createTextStyle","innerCreateTextStyle","isAroundEqual","bbox.fromPoints","polygonContain.contain","vec2.applyTransform","zrUtil.filter","textContain.getBoundingRect","util.createCanvas","util.isObject","util.isGradientObject","util.isPatternObject","util.extend","util.merge","util.logError","graphic.updateProps","graphic.initProps","graphic.removeElement","SymbolClz","graphic.Sector","graphic.LinearGradient","isPointNull","modelUtil.interpolateRawValues","install","LineSeries","layoutPoints","Sausage","BarSeries","layout.getLayoutRect","RADIAN","graphic.Polyline","graphic.removeElementWithFadeOut","labelLayout","layout","zrUtil.retrieve","zrUtil.retrieve3","graphic.Line","matrixUtil.identity","matrixUtil.rotate","matrixUtil.mul","axisPointerModelHelper.fixValue","axisPointerModelHelper.getAxisPointerModel","cartesianAxisHelper.layout","graphic.groupTransition","CanvasRenderer","LineChart","BarChart","PieChart","GridSimpleComponent","AriaComponent","DatasetComponent"],"mappings":"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"}
\ No newline at end of file
diff --git a/dist/echarts.simple.min.js b/dist/echarts.simple.min.js
index 8316737..13fe350 100644
--- a/dist/echarts.simple.min.js
+++ b/dist/echarts.simple.min.js
@@ -32,21 +32,7 @@
     LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
     OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
     PERFORMANCE OF THIS SOFTWARE.
-    ***************************************************************************** */var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])})(t,n)};function n(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}var i=function(){return(i=Object.assign||function(t){for(var e,n=1,i=arguments.length;n<i;n++)for(var r in e=arguments[n])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)};function r(){for(var t=0,e=0,n=arguments.length;e<n;e++)t+=arguments[e].length;var i=Array(t),r=0;for(e=0;e<n;e++)for(var o=arguments[e],a=0,s=o.length;a<s;a++,r++)i[r]=o[a];return i}var o=function(){this.firefox=!1,this.ie=!1,this.edge=!1,this.newEdge=!1,this.weChat=!1},a=new function(){this.browser=new o,this.node=!1,this.wxa=!1,this.worker=!1,this.canvasSupported=!1,this.svgSupported=!1,this.touchEventsSupported=!1,this.pointerEventsSupported=!1,this.domSupported=!1};"object"==typeof wx&&"function"==typeof wx.getSystemInfoSync?(a.wxa=!0,a.canvasSupported=!0,a.touchEventsSupported=!0):"undefined"==typeof document&&"undefined"!=typeof self?(a.worker=!0,a.canvasSupported=!0):"undefined"==typeof navigator?(a.node=!0,a.canvasSupported=!0,a.svgSupported=!0):function(t,e){var n=e.browser,i=t.match(/Firefox\/([\d.]+)/),r=t.match(/MSIE\s([\d.]+)/)||t.match(/Trident\/.+?rv:(([\d.]+))/),o=t.match(/Edge?\/([\d.]+)/),a=/micromessenger/i.test(t);i&&(n.firefox=!0,n.version=i[1]);r&&(n.ie=!0,n.version=r[1]);o&&(n.edge=!0,n.version=o[1],n.newEdge=+o[1].split(".")[0]>18);a&&(n.weChat=!0);e.canvasSupported=!!document.createElement("canvas").getContext,e.svgSupported="undefined"!=typeof SVGRect,e.touchEventsSupported="ontouchstart"in window&&!n.ie&&!n.edge,e.pointerEventsSupported="onpointerdown"in window&&(n.edge||n.ie&&+n.version>=11),e.domSupported="undefined"!=typeof document}(navigator.userAgent,a);var s={"[object Function]":!0,"[object RegExp]":!0,"[object Date]":!0,"[object Error]":!0,"[object CanvasGradient]":!0,"[object CanvasPattern]":!0,"[object Image]":!0,"[object Canvas]":!0},l={"[object Int8Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Int16Array]":!0,"[object Uint16Array]":!0,"[object Int32Array]":!0,"[object Uint32Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0},u=Object.prototype.toString,h=Array.prototype,c=h.forEach,p=h.filter,f=h.slice,d=h.map,g=function(){}.constructor,y=g?g.prototype:null,v={};function m(t,e){v[t]=e}var _=2311;function x(){return _++}function b(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];"undefined"!=typeof console&&console.error.apply(console,t)}function w(t){if(null==t||"object"!=typeof t)return t;var e=t,n=u.call(t);if("[object Array]"===n){if(!at(t)){e=[];for(var i=0,r=t.length;i<r;i++)e[i]=w(t[i])}}else if(l[n]){if(!at(t)){var o=t.constructor;if(o.from)e=o.from(t);else{e=new o(t.length);for(i=0,r=t.length;i<r;i++)e[i]=w(t[i])}}}else if(!s[n]&&!at(t)&&!X(t))for(var a in e={},t)t.hasOwnProperty(a)&&(e[a]=w(t[a]));return e}function S(t,e,n){if(!G(e)||!G(t))return n?w(e):t;for(var i in e)if(e.hasOwnProperty(i)){var r=t[i],o=e[i];!G(o)||!G(r)||z(o)||z(r)||X(o)||X(r)||U(o)||U(r)||at(o)||at(r)?!n&&i in t||(t[i]=w(e[i])):S(r,o,n)}return t}function M(t,e){if(Object.assign)Object.assign(t,e);else for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}function T(t,e,n){for(var i=N(e),r=0;r<i.length;r++){var o=i[r];(n?null!=e[o]:null==t[o])&&(t[o]=e[o])}return t}var C=function(){return v.createCanvas()};function D(t,e){if(t){if(t.indexOf)return t.indexOf(e);for(var n=0,i=t.length;n<i;n++)if(t[n]===e)return n}return-1}function I(t,e){var n=t.prototype;function i(){}for(var r in i.prototype=e.prototype,t.prototype=new i,n)n.hasOwnProperty(r)&&(t.prototype[r]=n[r]);t.prototype.constructor=t,t.superClass=e}function A(t,e,n){if(t="prototype"in t?t.prototype:t,e="prototype"in e?e.prototype:e,Object.getOwnPropertyNames)for(var i=Object.getOwnPropertyNames(e),r=0;r<i.length;r++){var o=i[r];"constructor"!==o&&(n?null!=e[o]:null==t[o])&&(t[o]=e[o])}else T(t,e,n)}function k(t){return!!t&&("string"!=typeof t&&"number"==typeof t.length)}function L(t,e,n){if(t&&e)if(t.forEach&&t.forEach===c)t.forEach(e,n);else if(t.length===+t.length)for(var i=0,r=t.length;i<r;i++)e.call(n,t[i],i,t);else for(var o in t)t.hasOwnProperty(o)&&e.call(n,t[o],o,t)}function P(t,e,n){if(!t)return[];if(!e)return tt(t);if(t.map&&t.map===d)return t.map(e,n);for(var i=[],r=0,o=t.length;r<o;r++)i.push(e.call(n,t[r],r,t));return i}function O(t,e,n,i){if(t&&e){for(var r=0,o=t.length;r<o;r++)n=e.call(i,n,t[r],r,t);return n}}function R(t,e,n){if(!t)return[];if(!e)return tt(t);if(t.filter&&t.filter===p)return t.filter(e,n);for(var i=[],r=0,o=t.length;r<o;r++)e.call(n,t[r],r,t)&&i.push(t[r]);return i}function N(t){if(!t)return[];if(Object.keys)return Object.keys(t);var e=[];for(var n in t)t.hasOwnProperty(n)&&e.push(n);return e}v.createCanvas=function(){return document.createElement("canvas")};var E=y&&F(y.bind)?y.call.bind(y.bind):function(t,e){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];return function(){return t.apply(e,n.concat(f.call(arguments)))}};function B(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return function(){return t.apply(this,e.concat(f.call(arguments)))}}function z(t){return Array.isArray?Array.isArray(t):"[object Array]"===u.call(t)}function F(t){return"function"==typeof t}function V(t){return"string"==typeof t}function H(t){return"[object String]"===u.call(t)}function W(t){return"number"==typeof t}function G(t){var e=typeof t;return"function"===e||!!t&&"object"===e}function U(t){return!!s[u.call(t)]}function Y(t){return!!l[u.call(t)]}function X(t){return"object"==typeof t&&"number"==typeof t.nodeType&&"object"==typeof t.ownerDocument}function q(t){return null!=t.colorStops}function j(t){return null!=t.image}function Z(t){return"[object RegExp]"===u.call(t)}function K(t){return t!=t}function $(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];for(var n=0,i=t.length;n<i;n++)if(null!=t[n])return t[n]}function Q(t,e){return null!=t?t:e}function J(t,e,n){return null!=t?t:null!=e?e:n}function tt(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return f.apply(t,e)}function et(t){if("number"==typeof t)return[t,t,t,t];var e=t.length;return 2===e?[t[0],t[1],t[0],t[1]]:3===e?[t[0],t[1],t[2],t[1]]:t}function nt(t,e){if(!t)throw new Error(e)}function it(t){return null==t?null:"function"==typeof t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}var rt="__ec_primitive__";function ot(t){t[rt]=!0}function at(t){return t[rt]}var st=function(){function t(e){this.data={};var n=z(e);this.data={};var i=this;function r(t,e){n?i.set(t,e):i.set(e,t)}e instanceof t?e.each(r):e&&L(e,r)}return t.prototype.get=function(t){return this.data.hasOwnProperty(t)?this.data[t]:null},t.prototype.set=function(t,e){return this.data[t]=e},t.prototype.each=function(t,e){for(var n in this.data)this.data.hasOwnProperty(n)&&t.call(e,this.data[n],n)},t.prototype.keys=function(){return N(this.data)},t.prototype.removeKey=function(t){delete this.data[t]},t}();function lt(t){return new st(t)}function ut(t,e){var n;if(Object.create)n=Object.create(t);else{var i=function(){};i.prototype=t,n=new i}return e&&M(n,e),n}function ht(t,e){return t.hasOwnProperty(e)}function ct(){}var pt=Object.freeze({__proto__:null,$override:m,guid:x,logError:b,clone:w,merge:S,mergeAll:function(t,e){for(var n=t[0],i=1,r=t.length;i<r;i++)n=S(n,t[i],e);return n},extend:M,defaults:T,createCanvas:C,indexOf:D,inherits:I,mixin:A,isArrayLike:k,each:L,map:P,reduce:O,filter:R,find:function(t,e,n){if(t&&e)for(var i=0,r=t.length;i<r;i++)if(e.call(n,t[i],i,t))return t[i]},keys:N,bind:E,curry:B,isArray:z,isFunction:F,isString:V,isStringSafe:H,isNumber:W,isObject:G,isBuiltInObject:U,isTypedArray:Y,isDom:X,isGradientObject:q,isPatternObject:j,isRegExp:Z,eqNaN:K,retrieve:$,retrieve2:Q,retrieve3:J,slice:tt,normalizeCssArray:et,assert:nt,trim:it,setAsPrimitive:ot,isPrimitive:at,HashMap:st,createHashMap:lt,concatArray:function(t,e){for(var n=new t.constructor(t.length+e.length),i=0;i<t.length;i++)n[i]=t[i];var r=t.length;for(i=0;i<e.length;i++)n[i+r]=e[i];return n},createObject:ut,hasOwn:ht,noop:ct}),ft=function(t,e){return(ft=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])})(t,e)};
-/*! *****************************************************************************
-    Copyright (c) Microsoft Corporation.
-
-    Permission to use, copy, modify, and/or distribute this software for any
-    purpose with or without fee is hereby granted.
-
-    THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
-    REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
-    AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
-    INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
-    LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
-    OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-    PERFORMANCE OF THIS SOFTWARE.
-    ***************************************************************************** */function dt(t,e){function n(){this.constructor=t}ft(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}function gt(t,e){return null==t&&(t=0),null==e&&(e=0),[t,e]}function yt(t){return[t[0],t[1]]}function vt(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t}function mt(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t}function _t(t){return Math.sqrt(bt(t))}var xt=_t;function bt(t){return t[0]*t[0]+t[1]*t[1]}var wt=bt;function St(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t}function Mt(t,e){var n=_t(e);return 0===n?(t[0]=0,t[1]=0):(t[0]=e[0]/n,t[1]=e[1]/n),t}function Tt(t,e){return Math.sqrt((t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1]))}var Ct=Tt;function Dt(t,e){return(t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1])}var It=Dt;function At(t,e,n,i){return t[0]=e[0]+i*(n[0]-e[0]),t[1]=e[1]+i*(n[1]-e[1]),t}function kt(t,e,n){var i=e[0],r=e[1];return t[0]=n[0]*i+n[2]*r+n[4],t[1]=n[1]*i+n[3]*r+n[5],t}function Lt(t,e,n){return t[0]=Math.min(e[0],n[0]),t[1]=Math.min(e[1],n[1]),t}function Pt(t,e,n){return t[0]=Math.max(e[0],n[0]),t[1]=Math.max(e[1],n[1]),t}var Ot=Object.freeze({__proto__:null,create:gt,copy:function(t,e){return t[0]=e[0],t[1]=e[1],t},clone:yt,set:function(t,e,n){return t[0]=e,t[1]=n,t},add:vt,scaleAndAdd:function(t,e,n,i){return t[0]=e[0]+n[0]*i,t[1]=e[1]+n[1]*i,t},sub:mt,len:_t,length:xt,lenSquare:bt,lengthSquare:wt,mul:function(t,e,n){return t[0]=e[0]*n[0],t[1]=e[1]*n[1],t},div:function(t,e,n){return t[0]=e[0]/n[0],t[1]=e[1]/n[1],t},dot:function(t,e){return t[0]*e[0]+t[1]*e[1]},scale:St,normalize:Mt,distance:Tt,dist:Ct,distanceSquare:Dt,distSquare:It,negate:function(t,e){return t[0]=-e[0],t[1]=-e[1],t},lerp:At,applyTransform:kt,min:Lt,max:Pt}),Rt=function(t,e){this.target=t,this.topTarget=e&&e.topTarget},Nt=function(){function t(t){this.handler=t,t.on("mousedown",this._dragStart,this),t.on("mousemove",this._drag,this),t.on("mouseup",this._dragEnd,this)}return t.prototype._dragStart=function(t){for(var e=t.target;e&&!e.draggable;)e=e.parent;e&&(this._draggingTarget=e,e.dragging=!0,this._x=t.offsetX,this._y=t.offsetY,this.handler.dispatchToElement(new Rt(e,t),"dragstart",t.event))},t.prototype._drag=function(t){var e=this._draggingTarget;if(e){var n=t.offsetX,i=t.offsetY,r=n-this._x,o=i-this._y;this._x=n,this._y=i,e.drift(r,o,t),this.handler.dispatchToElement(new Rt(e,t),"drag",t.event);var a=this.handler.findHover(n,i,e).target,s=this._dropTarget;this._dropTarget=a,e!==a&&(s&&a!==s&&this.handler.dispatchToElement(new Rt(s,t),"dragleave",t.event),a&&a!==s&&this.handler.dispatchToElement(new Rt(a,t),"dragenter",t.event))}},t.prototype._dragEnd=function(t){var e=this._draggingTarget;e&&(e.dragging=!1),this.handler.dispatchToElement(new Rt(e,t),"dragend",t.event),this._dropTarget&&this.handler.dispatchToElement(new Rt(this._dropTarget,t),"drop",t.event),this._draggingTarget=null,this._dropTarget=null},t}(),Et=function(){function t(t){t&&(this._$eventProcessor=t)}return t.prototype.on=function(t,e,n,i){this._$handlers||(this._$handlers={});var r=this._$handlers;if("function"==typeof e&&(i=n,n=e,e=null),!n||!t)return this;var o=this._$eventProcessor;null!=e&&o&&o.normalizeQuery&&(e=o.normalizeQuery(e)),r[t]||(r[t]=[]);for(var a=0;a<r[t].length;a++)if(r[t][a].h===n)return this;var s={h:n,query:e,ctx:i||this,callAtLast:n.zrEventfulCallAtLast},l=r[t].length-1,u=r[t][l];return u&&u.callAtLast?r[t].splice(l,0,s):r[t].push(s),this},t.prototype.isSilent=function(t){var e=this._$handlers;return!e||!e[t]||!e[t].length},t.prototype.off=function(t,e){var n=this._$handlers;if(!n)return this;if(!t)return this._$handlers={},this;if(e){if(n[t]){for(var i=[],r=0,o=n[t].length;r<o;r++)n[t][r].h!==e&&i.push(n[t][r]);n[t]=i}n[t]&&0===n[t].length&&delete n[t]}else delete n[t];return this},t.prototype.trigger=function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];if(!this._$handlers)return this;var i=this._$handlers[t],r=this._$eventProcessor;if(i)for(var o=e.length,a=i.length,s=0;s<a;s++){var l=i[s];if(!r||!r.filter||null==l.query||r.filter(t,l.query))switch(o){case 0:l.h.call(l.ctx);break;case 1:l.h.call(l.ctx,e[0]);break;case 2:l.h.call(l.ctx,e[0],e[1]);break;default:l.h.apply(l.ctx,e)}}return r&&r.afterTrigger&&r.afterTrigger(t),this},t.prototype.triggerWithContext=function(t){if(!this._$handlers)return this;var e=this._$handlers[t],n=this._$eventProcessor;if(e)for(var i=arguments,r=i.length,o=i[r-1],a=e.length,s=0;s<a;s++){var l=e[s];if(!n||!n.filter||null==l.query||n.filter(t,l.query))switch(r){case 0:l.h.call(o);break;case 1:l.h.call(o,i[0]);break;case 2:l.h.call(o,i[0],i[1]);break;default:l.h.apply(o,i.slice(1,r-1))}}return n&&n.afterTrigger&&n.afterTrigger(t),this},t}(),Bt=Math.log(2);function zt(t,e,n,i,r,o){var a=i+"-"+r,s=t.length;if(o.hasOwnProperty(a))return o[a];if(1===e){var l=Math.round(Math.log((1<<s)-1&~r)/Bt);return t[n][l]}for(var u=i|1<<n,h=n+1;i&1<<h;)h++;for(var c=0,p=0,f=0;p<s;p++){var d=1<<p;d&r||(c+=(f%2?-1:1)*t[n][p]*zt(t,e-1,h,u,r|d,o),f++)}return o[a]=c,c}function Ft(t,e){var n=[[t[0],t[1],1,0,0,0,-e[0]*t[0],-e[0]*t[1]],[0,0,0,t[0],t[1],1,-e[1]*t[0],-e[1]*t[1]],[t[2],t[3],1,0,0,0,-e[2]*t[2],-e[2]*t[3]],[0,0,0,t[2],t[3],1,-e[3]*t[2],-e[3]*t[3]],[t[4],t[5],1,0,0,0,-e[4]*t[4],-e[4]*t[5]],[0,0,0,t[4],t[5],1,-e[5]*t[4],-e[5]*t[5]],[t[6],t[7],1,0,0,0,-e[6]*t[6],-e[6]*t[7]],[0,0,0,t[6],t[7],1,-e[7]*t[6],-e[7]*t[7]]],i={},r=zt(n,8,0,0,0,i);if(0!==r){for(var o=[],a=0;a<8;a++)for(var s=0;s<8;s++)null==o[s]&&(o[s]=0),o[s]+=((a+s)%2?-1:1)*zt(n,7,0===a?1:0,1<<a,1<<s,i)/r*e[a];return function(t,e,n){var i=e*o[6]+n*o[7]+1;t[0]=(e*o[0]+n*o[1]+o[2])/i,t[1]=(e*o[3]+n*o[4]+o[5])/i}}}function Vt(t,e,n,i,r){if(e.getBoundingClientRect&&a.domSupported&&!Ht(e)){var o=e.___zrEVENTSAVED||(e.___zrEVENTSAVED={}),s=function(t,e,n){for(var i=n?"invTrans":"trans",r=e[i],o=e.srcCoords,a=[],s=[],l=!0,u=0;u<4;u++){var h=t[u].getBoundingClientRect(),c=2*u,p=h.left,f=h.top;a.push(p,f),l=l&&o&&p===o[c]&&f===o[c+1],s.push(t[u].offsetLeft,t[u].offsetTop)}return l&&r?r:(e.srcCoords=a,e[i]=n?Ft(s,a):Ft(a,s))}(function(t,e){var n=e.markers;if(n)return n;n=e.markers=[];for(var i=["left","right"],r=["top","bottom"],o=0;o<4;o++){var a=document.createElement("div"),s=o%2,l=(o>>1)%2;a.style.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",i[s]+":0",r[l]+":0",i[1-s]+":auto",r[1-l]+":auto",""].join("!important;"),t.appendChild(a),n.push(a)}return n}(e,o),o,r);if(s)return s(t,n,i),!0}return!1}function Ht(t){return"CANVAS"===t.nodeName.toUpperCase()}var Wt="undefined"!=typeof window&&!!window.addEventListener,Gt=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ut=[];function Yt(t,e,n,i){return n=n||{},i||!a.canvasSupported?Xt(t,e,n):a.browser.firefox&&null!=e.layerX&&e.layerX!==e.offsetX?(n.zrX=e.layerX,n.zrY=e.layerY):null!=e.offsetX?(n.zrX=e.offsetX,n.zrY=e.offsetY):Xt(t,e,n),n}function Xt(t,e,n){if(a.domSupported&&t.getBoundingClientRect){var i=e.clientX,r=e.clientY;if(Ht(t)){var o=t.getBoundingClientRect();return n.zrX=i-o.left,void(n.zrY=r-o.top)}if(Vt(Ut,t,i,r))return n.zrX=Ut[0],void(n.zrY=Ut[1])}n.zrX=n.zrY=0}function qt(t){return t||window.event}function jt(t,e,n){if(null!=(e=qt(e)).zrX)return e;var i=e.type;if(i&&i.indexOf("touch")>=0){var r="touchend"!==i?e.targetTouches[0]:e.changedTouches[0];r&&Yt(t,r,e,n)}else{Yt(t,e,e,n);var o=function(t){var e=t.wheelDelta;if(e)return e;var n=t.deltaX,i=t.deltaY;if(null==n||null==i)return e;return 3*(0!==i?Math.abs(i):Math.abs(n))*(i>0?-1:i<0?1:n>0?-1:1)}(e);e.zrDelta=o?o/120:-(e.detail||0)/3}var a=e.button;return null==e.which&&void 0!==a&&Gt.test(e.type)&&(e.which=1&a?1:2&a?3:4&a?2:0),e}var Zt=Wt?function(t){t.preventDefault(),t.stopPropagation(),t.cancelBubble=!0}:function(t){t.returnValue=!1,t.cancelBubble=!0},Kt=function(){function t(){this._track=[]}return t.prototype.recognize=function(t,e,n){return this._doTrack(t,e,n),this._recognize(t)},t.prototype.clear=function(){return this._track.length=0,this},t.prototype._doTrack=function(t,e,n){var i=t.touches;if(i){for(var r={points:[],touches:[],target:e,event:t},o=0,a=i.length;o<a;o++){var s=i[o],l=Yt(n,s,{});r.points.push([l.zrX,l.zrY]),r.touches.push(s)}this._track.push(r)}},t.prototype._recognize=function(t){for(var e in Qt)if(Qt.hasOwnProperty(e)){var n=Qt[e](this._track,t);if(n)return n}},t}();function $t(t){var e=t[1][0]-t[0][0],n=t[1][1]-t[0][1];return Math.sqrt(e*e+n*n)}var Qt={pinch:function(t,e){var n=t.length;if(n){var i,r=(t[n-1]||{}).points,o=(t[n-2]||{}).points||r;if(o&&o.length>1&&r&&r.length>1){var a=$t(r)/$t(o);!isFinite(a)&&(a=1),e.pinchScale=a;var s=[((i=r)[0][0]+i[1][0])/2,(i[0][1]+i[1][1])/2];return e.pinchX=s[0],e.pinchY=s[1],{type:"pinch",target:t[0].target,event:e}}}}},Jt="silent";function te(){Zt(this.event)}var ee=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.handler=null,e}return dt(e,t),e.prototype.dispose=function(){},e.prototype.setCursor=function(){},e}(Et),ne=function(t,e){this.x=t,this.y=e},ie=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],re=function(t){function e(e,n,i,r){var o=t.call(this)||this;return o._hovered=new ne(0,0),o.storage=e,o.painter=n,o.painterRoot=r,i=i||new ee,o.proxy=null,o.setHandlerProxy(i),o._draggingMgr=new Nt(o),o}return dt(e,t),e.prototype.setHandlerProxy=function(t){this.proxy&&this.proxy.dispose(),t&&(L(ie,(function(e){t.on&&t.on(e,this[e],this)}),this),t.handler=this),this.proxy=t},e.prototype.mousemove=function(t){var e=t.zrX,n=t.zrY,i=ae(this,e,n),r=this._hovered,o=r.target;o&&!o.__zr&&(o=(r=this.findHover(r.x,r.y)).target);var a=this._hovered=i?new ne(e,n):this.findHover(e,n),s=a.target,l=this.proxy;l.setCursor&&l.setCursor(s?s.cursor:"default"),o&&s!==o&&this.dispatchToElement(r,"mouseout",t),this.dispatchToElement(a,"mousemove",t),s&&s!==o&&this.dispatchToElement(a,"mouseover",t)},e.prototype.mouseout=function(t){var e=t.zrEventControl;"only_globalout"!==e&&this.dispatchToElement(this._hovered,"mouseout",t),"no_globalout"!==e&&this.trigger("globalout",{type:"globalout",event:t})},e.prototype.resize=function(){this._hovered=new ne(0,0)},e.prototype.dispatch=function(t,e){var n=this[t];n&&n.call(this,e)},e.prototype.dispose=function(){this.proxy.dispose(),this.storage=null,this.proxy=null,this.painter=null},e.prototype.setCursorStyle=function(t){var e=this.proxy;e.setCursor&&e.setCursor(t)},e.prototype.dispatchToElement=function(t,e,n){var i=(t=t||{}).target;if(!i||!i.silent){for(var r="on"+e,o=function(t,e,n){return{type:t,event:n,target:e.target,topTarget:e.topTarget,cancelBubble:!1,offsetX:n.zrX,offsetY:n.zrY,gestureEvent:n.gestureEvent,pinchX:n.pinchX,pinchY:n.pinchY,pinchScale:n.pinchScale,wheelDelta:n.zrDelta,zrByTouch:n.zrByTouch,which:n.which,stop:te}}(e,t,n);i&&(i[r]&&(o.cancelBubble=!!i[r].call(i,o)),i.trigger(e,o),i=i.__hostTarget?i.__hostTarget:i.parent,!o.cancelBubble););o.cancelBubble||(this.trigger(e,o),this.painter&&this.painter.eachOtherLayer&&this.painter.eachOtherLayer((function(t){"function"==typeof t[r]&&t[r].call(t,o),t.trigger&&t.trigger(e,o)})))}},e.prototype.findHover=function(t,e,n){for(var i=this.storage.getDisplayList(),r=new ne(t,e),o=i.length-1;o>=0;o--){var a=void 0;if(i[o]!==n&&!i[o].ignore&&(a=oe(i[o],t,e))&&(!r.topTarget&&(r.topTarget=i[o]),a!==Jt)){r.target=i[o];break}}return r},e.prototype.processGesture=function(t,e){this._gestureMgr||(this._gestureMgr=new Kt);var n=this._gestureMgr;"start"===e&&n.clear();var i=n.recognize(t,this.findHover(t.zrX,t.zrY,null).target,this.proxy.dom);if("end"===e&&n.clear(),i){var r=i.type;t.gestureEvent=r;var o=new ne;o.target=i.target,this.dispatchToElement(o,r,i.event)}},e}(Et);function oe(t,e,n){if(t[t.rectHover?"rectContain":"contain"](e,n)){for(var i=t,r=void 0,o=!1;i;){if(i.ignoreClip&&(o=!0),!o){var a=i.getClipPath();if(a&&!a.contain(e,n))return!1;i.silent&&(r=!0)}var s=i.__hostTarget;i=s||i.parent}return!r||Jt}return!1}function ae(t,e,n){var i=t.painter;return e<0||e>i.getWidth()||n<0||n>i.getHeight()}function se(){return[1,0,0,1,0,0]}function le(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t}function ue(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function he(t,e,n){var i=e[0]*n[0]+e[2]*n[1],r=e[1]*n[0]+e[3]*n[1],o=e[0]*n[2]+e[2]*n[3],a=e[1]*n[2]+e[3]*n[3],s=e[0]*n[4]+e[2]*n[5]+e[4],l=e[1]*n[4]+e[3]*n[5]+e[5];return t[0]=i,t[1]=r,t[2]=o,t[3]=a,t[4]=s,t[5]=l,t}function ce(t,e,n){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4]+n[0],t[5]=e[5]+n[1],t}function pe(t,e,n){var i=e[0],r=e[2],o=e[4],a=e[1],s=e[3],l=e[5],u=Math.sin(n),h=Math.cos(n);return t[0]=i*h+a*u,t[1]=-i*u+a*h,t[2]=r*h+s*u,t[3]=-r*u+h*s,t[4]=h*o+u*l,t[5]=h*l-u*o,t}function fe(t,e,n){var i=n[0],r=n[1];return t[0]=e[0]*i,t[1]=e[1]*r,t[2]=e[2]*i,t[3]=e[3]*r,t[4]=e[4]*i,t[5]=e[5]*r,t}function de(t,e){var n=e[0],i=e[2],r=e[4],o=e[1],a=e[3],s=e[5],l=n*a-o*i;return l?(l=1/l,t[0]=a*l,t[1]=-o*l,t[2]=-i*l,t[3]=n*l,t[4]=(i*s-a*r)*l,t[5]=(o*r-n*s)*l,t):null}L(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],(function(t){re.prototype[t]=function(e){var n,i,r=e.zrX,o=e.zrY,a=ae(this,r,o);if("mouseup"===t&&a||(i=(n=this.findHover(r,o)).target),"mousedown"===t)this._downEl=i,this._downPoint=[e.zrX,e.zrY],this._upEl=i;else if("mouseup"===t)this._upEl=i;else if("click"===t){if(this._downEl!==this._upEl||!this._downPoint||Ct(this._downPoint,[e.zrX,e.zrY])>4)return;this._downPoint=null}this.dispatchToElement(n,t,e)}}));var ge=Object.freeze({__proto__:null,create:se,identity:le,copy:ue,mul:he,translate:ce,rotate:pe,scale:fe,invert:de,clone:function(t){var e=[1,0,0,1,0,0];return ue(e,t),e}}),ye=le,ve=5e-5;function me(t){return t>ve||t<-5e-5}var _e=[],xe=[],be=[1,0,0,1,0,0],we=Math.abs,Se=function(){function t(){}return t.prototype.setPosition=function(t){this.x=t[0],this.y=t[1]},t.prototype.setScale=function(t){this.scaleX=t[0],this.scaleY=t[1]},t.prototype.setOrigin=function(t){this.originX=t[0],this.originY=t[1]},t.prototype.needLocalTransform=function(){return me(this.rotation)||me(this.x)||me(this.y)||me(this.scaleX-1)||me(this.scaleY-1)},t.prototype.updateTransform=function(){var t=this.parent,e=t&&t.transform,n=this.needLocalTransform(),i=this.transform;n||e?(i=i||[1,0,0,1,0,0],n?this.getLocalTransform(i):ye(i),e&&(n?he(i,t.transform,i):ue(i,t.transform)),this.transform=i,this._resolveGlobalScaleRatio(i)):i&&ye(i)},t.prototype._resolveGlobalScaleRatio=function(t){var e=this.globalScaleRatio;if(null!=e&&1!==e){this.getGlobalScale(_e);var n=_e[0]<0?-1:1,i=_e[1]<0?-1:1,r=((_e[0]-n)*e+n)/_e[0]||0,o=((_e[1]-i)*e+i)/_e[1]||0;t[0]*=r,t[1]*=r,t[2]*=o,t[3]*=o}this.invTransform=this.invTransform||[1,0,0,1,0,0],de(this.invTransform,t)},t.prototype.getLocalTransform=function(e){return t.getLocalTransform(this,e)},t.prototype.getComputedTransform=function(){for(var t=this,e=[];t;)e.push(t),t=t.parent;for(;t=e.pop();)t.updateTransform();return this.transform},t.prototype.setLocalTransform=function(t){if(t){var e=t[0]*t[0]+t[1]*t[1],n=t[2]*t[2]+t[3]*t[3];me(e-1)&&(e=Math.sqrt(e)),me(n-1)&&(n=Math.sqrt(n)),t[0]<0&&(e=-e),t[3]<0&&(n=-n),this.rotation=Math.atan2(-t[1]/n,t[0]/e),e<0&&n<0&&(this.rotation+=Math.PI,e=-e,n=-n),this.x=t[4],this.y=t[5],this.scaleX=e,this.scaleY=n}},t.prototype.decomposeTransform=function(){if(this.transform){var t=this.parent,e=this.transform;t&&t.transform&&(he(xe,t.invTransform,e),e=xe);var n=this.originX,i=this.originY;(n||i)&&(be[4]=n,be[5]=i,he(xe,e,be),xe[4]-=n,xe[5]-=i,e=xe),this.setLocalTransform(e)}},t.prototype.getGlobalScale=function(t){var e=this.transform;return t=t||[],e?(t[0]=Math.sqrt(e[0]*e[0]+e[1]*e[1]),t[1]=Math.sqrt(e[2]*e[2]+e[3]*e[3]),e[0]<0&&(t[0]=-t[0]),e[3]<0&&(t[1]=-t[1]),t):(t[0]=1,t[1]=1,t)},t.prototype.transformCoordToLocal=function(t,e){var n=[t,e],i=this.invTransform;return i&&kt(n,n,i),n},t.prototype.transformCoordToGlobal=function(t,e){var n=[t,e],i=this.transform;return i&&kt(n,n,i),n},t.prototype.getLineScale=function(){var t=this.transform;return t&&we(t[0]-1)>1e-10&&we(t[3]-1)>1e-10?Math.sqrt(we(t[0]*t[3]-t[2]*t[1])):1},t.getLocalTransform=function(t,e){ye(e=e||[]);var n=t.originX||0,i=t.originY||0,r=t.scaleX,o=t.scaleY,a=t.rotation||0,s=t.x,l=t.y;return e[4]-=n,e[5]-=i,e[0]*=r,e[1]*=o,e[2]*=r,e[3]*=o,e[4]*=r,e[5]*=o,a&&pe(e,e,a),e[4]+=n,e[5]+=i,e[4]+=s,e[5]+=l,e},t.initDefaultProps=function(){var e=t.prototype;e.x=0,e.y=0,e.scaleX=1,e.scaleY=1,e.originX=0,e.originY=0,e.rotation=0,e.globalScaleRatio=1}(),t}(),Me={linear:function(t){return t},quadraticIn:function(t){return t*t},quadraticOut:function(t){return t*(2-t)},quadraticInOut:function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)},cubicIn:function(t){return t*t*t},cubicOut:function(t){return--t*t*t+1},cubicInOut:function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},quarticIn:function(t){return t*t*t*t},quarticOut:function(t){return 1- --t*t*t*t},quarticInOut:function(t){return(t*=2)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},quinticIn:function(t){return t*t*t*t*t},quinticOut:function(t){return--t*t*t*t*t+1},quinticInOut:function(t){return(t*=2)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},sinusoidalIn:function(t){return 1-Math.cos(t*Math.PI/2)},sinusoidalOut:function(t){return Math.sin(t*Math.PI/2)},sinusoidalInOut:function(t){return.5*(1-Math.cos(Math.PI*t))},exponentialIn:function(t){return 0===t?0:Math.pow(1024,t-1)},exponentialOut:function(t){return 1===t?1:1-Math.pow(2,-10*t)},exponentialInOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(2-Math.pow(2,-10*(t-1)))},circularIn:function(t){return 1-Math.sqrt(1-t*t)},circularOut:function(t){return Math.sqrt(1- --t*t)},circularInOut:function(t){return(t*=2)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},elasticIn:function(t){var e,n=.1;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=.4*Math.asin(1/n)/(2*Math.PI),-n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/.4))},elasticOut:function(t){var e,n=.1;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=.4*Math.asin(1/n)/(2*Math.PI),n*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/.4)+1)},elasticInOut:function(t){var e,n=.1,i=.4;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=i*Math.asin(1/n)/(2*Math.PI),(t*=2)<1?n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*-.5:n*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*.5+1)},backIn:function(t){var e=1.70158;return t*t*((e+1)*t-e)},backOut:function(t){var e=1.70158;return--t*t*((e+1)*t+e)+1},backInOut:function(t){var e=2.5949095;return(t*=2)<1?t*t*((e+1)*t-e)*.5:.5*((t-=2)*t*((e+1)*t+e)+2)},bounceIn:function(t){return 1-Me.bounceOut(1-t)},bounceOut:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},bounceInOut:function(t){return t<.5?.5*Me.bounceIn(2*t):.5*Me.bounceOut(2*t-1)+.5}},Te=function(){function t(t){this._initialized=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=t.life||1e3,this._delay=t.delay||0,this.loop=null!=t.loop&&t.loop,this.gap=t.gap||0,this.easing=t.easing||"linear",this.onframe=t.onframe,this.ondestroy=t.ondestroy,this.onrestart=t.onrestart}return t.prototype.step=function(t,e){if(this._initialized||(this._startTime=t+this._delay,this._initialized=!0),!this._paused){var n=(t-this._startTime-this._pausedTime)/this._life;n<0&&(n=0),n=Math.min(n,1);var i=this.easing,r="string"==typeof i?Me[i]:i,o="function"==typeof r?r(n):n;if(this.onframe&&this.onframe(o),1===n){if(!this.loop)return!0;this._restart(t),this.onrestart&&this.onrestart()}return!1}this._pausedTime+=e},t.prototype._restart=function(t){var e=(t-this._startTime-this._pausedTime)%this._life;this._startTime=t-e+this.gap,this._pausedTime=0},t.prototype.pause=function(){this._paused=!0},t.prototype.resume=function(){this._paused=!1},t}(),Ce=function(t){this.value=t},De=function(){function t(){this._len=0}return t.prototype.insert=function(t){var e=new Ce(t);return this.insertEntry(e),e},t.prototype.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t):this.head=this.tail=t,this._len++},t.prototype.remove=function(t){var e=t.prev,n=t.next;e?e.next=n:this.head=n,n?n.prev=e:this.tail=e,t.next=t.prev=null,this._len--},t.prototype.len=function(){return this._len},t.prototype.clear=function(){this.head=this.tail=null,this._len=0},t}(),Ie=function(){function t(t){this._list=new De,this._maxSize=10,this._map={},this._maxSize=t}return t.prototype.put=function(t,e){var n=this._list,i=this._map,r=null;if(null==i[t]){var o=n.len(),a=this._lastRemovedEntry;if(o>=this._maxSize&&o>0){var s=n.head;n.remove(s),delete i[s.key],r=s.value,this._lastRemovedEntry=s}a?a.value=e:a=new Ce(e),a.key=t,n.insertEntry(a),i[t]=a}return r},t.prototype.get=function(t){var e=this._map[t],n=this._list;if(null!=e)return e!==n.tail&&(n.remove(e),n.insertEntry(e)),e.value},t.prototype.clear=function(){this._list.clear(),this._map={}},t.prototype.len=function(){return this._list.len()},t}(),Ae={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function ke(t){return(t=Math.round(t))<0?0:t>255?255:t}function Le(t){return t<0?0:t>1?1:t}function Pe(t){var e=t;return e.length&&"%"===e.charAt(e.length-1)?ke(parseFloat(e)/100*255):ke(parseInt(e,10))}function Oe(t){var e=t;return e.length&&"%"===e.charAt(e.length-1)?Le(parseFloat(e)/100):Le(parseFloat(e))}function Re(t,e,n){return n<0?n+=1:n>1&&(n-=1),6*n<1?t+(e-t)*n*6:2*n<1?e:3*n<2?t+(e-t)*(2/3-n)*6:t}function Ne(t,e,n){return t+(e-t)*n}function Ee(t,e,n,i,r){return t[0]=e,t[1]=n,t[2]=i,t[3]=r,t}function Be(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}var ze=new Ie(20),Fe=null;function Ve(t,e){Fe&&Be(Fe,e),Fe=ze.put(t,Fe||e.slice())}function He(t,e){if(t){e=e||[];var n=ze.get(t);if(n)return Be(e,n);var i=(t+="").replace(/ /g,"").toLowerCase();if(i in Ae)return Be(e,Ae[i]),Ve(t,e),e;var r,o=i.length;if("#"===i.charAt(0))return 4===o||5===o?(r=parseInt(i.slice(1,4),16))>=0&&r<=4095?(Ee(e,(3840&r)>>4|(3840&r)>>8,240&r|(240&r)>>4,15&r|(15&r)<<4,5===o?parseInt(i.slice(4),16)/15:1),Ve(t,e),e):void Ee(e,0,0,0,1):7===o||9===o?(r=parseInt(i.slice(1,7),16))>=0&&r<=16777215?(Ee(e,(16711680&r)>>16,(65280&r)>>8,255&r,9===o?parseInt(i.slice(7),16)/255:1),Ve(t,e),e):void Ee(e,0,0,0,1):void 0;var a=i.indexOf("("),s=i.indexOf(")");if(-1!==a&&s+1===o){var l=i.substr(0,a),u=i.substr(a+1,s-(a+1)).split(","),h=1;switch(l){case"rgba":if(4!==u.length)return 3===u.length?Ee(e,+u[0],+u[1],+u[2],1):Ee(e,0,0,0,1);h=Oe(u.pop());case"rgb":return 3!==u.length?void Ee(e,0,0,0,1):(Ee(e,Pe(u[0]),Pe(u[1]),Pe(u[2]),h),Ve(t,e),e);case"hsla":return 4!==u.length?void Ee(e,0,0,0,1):(u[3]=Oe(u[3]),We(u,e),Ve(t,e),e);case"hsl":return 3!==u.length?void Ee(e,0,0,0,1):(We(u,e),Ve(t,e),e);default:return}}Ee(e,0,0,0,1)}}function We(t,e){var n=(parseFloat(t[0])%360+360)%360/360,i=Oe(t[1]),r=Oe(t[2]),o=r<=.5?r*(i+1):r+i-r*i,a=2*r-o;return Ee(e=e||[],ke(255*Re(a,o,n+1/3)),ke(255*Re(a,o,n)),ke(255*Re(a,o,n-1/3)),1),4===t.length&&(e[3]=t[3]),e}function Ge(t,e){var n=He(t);if(n){for(var i=0;i<3;i++)n[i]=e<0?n[i]*(1-e)|0:(255-n[i])*e+n[i]|0,n[i]>255?n[i]=255:n[i]<0&&(n[i]=0);return je(n,4===n.length?"rgba":"rgb")}}function Ue(t,e,n){if(e&&e.length&&t>=0&&t<=1){n=n||[];var i=t*(e.length-1),r=Math.floor(i),o=Math.ceil(i),a=e[r],s=e[o],l=i-r;return n[0]=ke(Ne(a[0],s[0],l)),n[1]=ke(Ne(a[1],s[1],l)),n[2]=ke(Ne(a[2],s[2],l)),n[3]=Le(Ne(a[3],s[3],l)),n}}var Ye=Ue;function Xe(t,e,n){if(e&&e.length&&t>=0&&t<=1){var i=t*(e.length-1),r=Math.floor(i),o=Math.ceil(i),a=He(e[r]),s=He(e[o]),l=i-r,u=je([ke(Ne(a[0],s[0],l)),ke(Ne(a[1],s[1],l)),ke(Ne(a[2],s[2],l)),Le(Ne(a[3],s[3],l))],"rgba");return n?{color:u,leftIndex:r,rightIndex:o,value:i}:u}}var qe=Xe;function je(t,e){if(t&&t.length){var n=t[0]+","+t[1]+","+t[2];return"rgba"!==e&&"hsva"!==e&&"hsla"!==e||(n+=","+t[3]),e+"("+n+")"}}function Ze(t,e){var n=He(t);return n?(.299*n[0]+.587*n[1]+.114*n[2])*n[3]/255+(1-n[3])*e:0}var Ke=Object.freeze({__proto__:null,parse:He,lift:Ge,toHex:function(t){var e=He(t);if(e)return((1<<24)+(e[0]<<16)+(e[1]<<8)+ +e[2]).toString(16).slice(1)},fastLerp:Ue,fastMapToColor:Ye,lerp:Xe,mapToColor:qe,modifyHSL:function(t,e,n,i){var r,o=He(t);if(t)return o=function(t){if(t){var e,n,i=t[0]/255,r=t[1]/255,o=t[2]/255,a=Math.min(i,r,o),s=Math.max(i,r,o),l=s-a,u=(s+a)/2;if(0===l)e=0,n=0;else{n=u<.5?l/(s+a):l/(2-s-a);var h=((s-i)/6+l/2)/l,c=((s-r)/6+l/2)/l,p=((s-o)/6+l/2)/l;i===s?e=p-c:r===s?e=1/3+h-p:o===s&&(e=2/3+c-h),e<0&&(e+=1),e>1&&(e-=1)}var f=[360*e,n,u];return null!=t[3]&&f.push(t[3]),f}}(o),null!=e&&(o[0]=(r=e,(r=Math.round(r))<0?0:r>360?360:r)),null!=n&&(o[1]=Oe(n)),null!=i&&(o[2]=Oe(i)),je(We(o),"rgba")},modifyAlpha:function(t,e){var n=He(t);if(n&&null!=e)return n[3]=Le(e),je(n,"rgba")},stringify:je,lum:Ze,random:function(){return"rgb("+Math.round(255*Math.random())+","+Math.round(255*Math.random())+","+Math.round(255*Math.random())+")"}}),$e=Array.prototype.slice;function Qe(t,e,n){return(e-t)*n+t}function Je(t,e,n,i){for(var r=e.length,o=0;o<r;o++)t[o]=Qe(e[o],n[o],i)}function tn(t,e,n,i){for(var r=e.length,o=0;o<r;o++)t[o]=e[o]+n[o]*i;return t}function en(t,e,n,i){for(var r=e.length,o=r&&e[0].length,a=0;a<r;a++){t[a]||(t[a]=[]);for(var s=0;s<o;s++)t[a][s]=e[a][s]+n[a][s]*i}return t}function nn(t,e,n){var i=t,r=e;if(i.push&&r.push){var o=i.length,a=r.length;if(o!==a)if(o>a)i.length=a;else for(var s=o;s<a;s++)i.push(1===n?r[s]:$e.call(r[s]));var l=i[0]&&i[0].length;for(s=0;s<i.length;s++)if(1===n)isNaN(i[s])&&(i[s]=r[s]);else for(var u=0;u<l;u++)isNaN(i[s][u])&&(i[s][u]=r[s][u])}}function rn(t,e){var n=t.length;if(n!==e.length)return!1;for(var i=0;i<n;i++)if(t[i]!==e[i])return!1;return!0}function on(t,e,n,i,r,o,a){var s=.5*(n-t),l=.5*(i-e);return(2*(e-n)+s+l)*a+(-3*(e-n)-2*s-l)*o+s*r+e}function an(t,e,n,i,r,o,a,s){for(var l=e.length,u=0;u<l;u++)t[u]=on(e[u],n[u],i[u],r[u],o,a,s)}function sn(t){if(k(t)){var e=t.length;if(k(t[0])){for(var n=[],i=0;i<e;i++)n.push($e.call(t[i]));return n}return $e.call(t)}return t}function ln(t){return t[0]=Math.floor(t[0]),t[1]=Math.floor(t[1]),t[2]=Math.floor(t[2]),"rgba("+t.join(",")+")"}var un,hn,cn=[0,0,0,0],pn=function(){function t(t){this.keyframes=[],this.maxTime=0,this.arrDim=0,this.interpolable=!0,this._needsSort=!1,this._isAllValueEqual=!0,this._lastFrame=0,this._lastFramePercent=0,this.propName=t}return t.prototype.isFinished=function(){return this._finished},t.prototype.setFinished=function(){this._finished=!0,this._additiveTrack&&this._additiveTrack.setFinished()},t.prototype.needsAnimate=function(){return!this._isAllValueEqual&&this.keyframes.length>=2&&this.interpolable},t.prototype.getAdditiveTrack=function(){return this._additiveTrack},t.prototype.addKeyframe=function(t,e){t>=this.maxTime?this.maxTime=t:this._needsSort=!0;var n=this.keyframes,i=n.length;if(this.interpolable)if(k(e)){var r=function(t){return k(t&&t[0])?2:1}(e);if(i>0&&this.arrDim!==r)return void(this.interpolable=!1);if(1===r&&"number"!=typeof e[0]||2===r&&"number"!=typeof e[0][0])return void(this.interpolable=!1);if(i>0){var o=n[i-1];this._isAllValueEqual&&(1===r&&rn(e,o.value)||(this._isAllValueEqual=!1))}this.arrDim=r}else{if(this.arrDim>0)return void(this.interpolable=!1);if("string"==typeof e){var a=He(e);a?(e=a,this.isValueColor=!0):this.interpolable=!1}else if("number"!=typeof e)return void(this.interpolable=!1);if(this._isAllValueEqual&&i>0){o=n[i-1];(this.isValueColor&&!rn(o.value,e)||o.value!==e)&&(this._isAllValueEqual=!1)}}var s={time:t,value:e,percent:0};return this.keyframes.push(s),s},t.prototype.prepare=function(t){var e=this.keyframes;this._needsSort&&e.sort((function(t,e){return t.time-e.time}));for(var n=this.arrDim,i=e.length,r=e[i-1],o=0;o<i;o++)e[o].percent=e[o].time/this.maxTime,n>0&&o!==i-1&&nn(e[o].value,r.value,n);if(t&&this.needsAnimate()&&t.needsAnimate()&&n===t.arrDim&&this.isValueColor===t.isValueColor&&!t._finished){this._additiveTrack=t;var a=e[0].value;for(o=0;o<i;o++)0===n?this.isValueColor?e[o].additiveValue=tn([],e[o].value,a,-1):e[o].additiveValue=e[o].value-a:1===n?e[o].additiveValue=tn([],e[o].value,a,-1):2===n&&(e[o].additiveValue=en([],e[o].value,a,-1))}},t.prototype.step=function(t,e){if(!this._finished){this._additiveTrack&&this._additiveTrack._finished&&(this._additiveTrack=null);var n,i=null!=this._additiveTrack,r=i?"additiveValue":"value",o=this.keyframes,a=this.keyframes.length,s=this.propName,l=this.arrDim,u=this.isValueColor;if(e<0)n=0;else if(e<this._lastFramePercent){for(n=Math.min(this._lastFrame+1,a-1);n>=0&&!(o[n].percent<=e);n--);n=Math.min(n,a-2)}else{for(n=this._lastFrame;n<a&&!(o[n].percent>e);n++);n=Math.min(n-1,a-2)}var h=o[n+1],c=o[n];if(c&&h){this._lastFrame=n,this._lastFramePercent=e;var p=h.percent-c.percent;if(0!==p){var f=(e-c.percent)/p,d=i?this._additiveValue:u?cn:t[s];if((l>0||u)&&!d&&(d=this._additiveValue=[]),this.useSpline){var g=o[n][r],y=o[0===n?n:n-1][r],v=o[n>a-2?a-1:n+1][r],m=o[n>a-3?a-1:n+2][r];if(l>0)1===l?an(d,y,g,v,m,f,f*f,f*f*f):function(t,e,n,i,r,o,a,s){for(var l=e.length,u=e[0].length,h=0;h<l;h++){t[h]||(t[1]=[]);for(var c=0;c<u;c++)t[h][c]=on(e[h][c],n[h][c],i[h][c],r[h][c],o,a,s)}}(d,y,g,v,m,f,f*f,f*f*f);else if(u)an(d,y,g,v,m,f,f*f,f*f*f),i||(t[s]=ln(d));else{var _=void 0;_=this.interpolable?on(y,g,v,m,f,f*f,f*f*f):v,i?this._additiveValue=_:t[s]=_}}else if(l>0)1===l?Je(d,c[r],h[r],f):function(t,e,n,i){for(var r=e.length,o=r&&e[0].length,a=0;a<r;a++){t[a]||(t[a]=[]);for(var s=0;s<o;s++)t[a][s]=Qe(e[a][s],n[a][s],i)}}(d,c[r],h[r],f);else if(u)Je(d,c[r],h[r],f),i||(t[s]=ln(d));else{_=void 0;_=this.interpolable?Qe(c[r],h[r],f):function(t,e,n){return n>.5?e:t}(c[r],h[r],f),i?this._additiveValue=_:t[s]=_}i&&this._addToTarget(t)}}}},t.prototype._addToTarget=function(t){var e=this.arrDim,n=this.propName,i=this._additiveValue;0===e?this.isValueColor?(He(t[n],cn),tn(cn,cn,i,1),t[n]=ln(cn)):t[n]=t[n]+i:1===e?tn(t[n],t[n],i,1):2===e&&en(t[n],t[n],i,1)},t}(),fn=function(){function t(t,e,n){this._tracks={},this._trackKeys=[],this._delay=0,this._maxTime=0,this._paused=!1,this._started=0,this._clip=null,this._target=t,this._loop=e,e&&n?b("Can' use additive animation on looped animation."):this._additiveAnimators=n}return t.prototype.getTarget=function(){return this._target},t.prototype.changeTarget=function(t){this._target=t},t.prototype.when=function(t,e){return this.whenWithKeys(t,e,N(e))},t.prototype.whenWithKeys=function(t,e,n){for(var i=this._tracks,r=0;r<n.length;r++){var o=n[r],a=i[o];if(!a){a=i[o]=new pn(o);var s=void 0,l=this._getAdditiveTrack(o);if(l){var u=l.keyframes[l.keyframes.length-1];s=u&&u.value,l.isValueColor&&s&&(s=ln(s))}else s=this._target[o];if(null==s)continue;0!==t&&a.addKeyframe(0,sn(s)),this._trackKeys.push(o)}a.addKeyframe(t,sn(e[o]))}return this._maxTime=Math.max(this._maxTime,t),this},t.prototype.pause=function(){this._clip.pause(),this._paused=!0},t.prototype.resume=function(){this._clip.resume(),this._paused=!1},t.prototype.isPaused=function(){return!!this._paused},t.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var t=this._doneList;if(t)for(var e=t.length,n=0;n<e;n++)t[n].call(this)},t.prototype._abortedCallback=function(){this._setTracksFinished();var t=this.animation,e=this._abortedList;if(t&&t.removeClip(this._clip),this._clip=null,e)for(var n=0;n<e.length;n++)e[n].call(this)},t.prototype._setTracksFinished=function(){for(var t=this._tracks,e=this._trackKeys,n=0;n<e.length;n++)t[e[n]].setFinished()},t.prototype._getAdditiveTrack=function(t){var e,n=this._additiveAnimators;if(n)for(var i=0;i<n.length;i++){var r=n[i].getTrack(t);r&&(e=r)}return e},t.prototype.start=function(t,e){if(!(this._started>0)){this._started=1;for(var n=this,i=[],r=0;r<this._trackKeys.length;r++){var o=this._trackKeys[r],a=this._tracks[o],s=this._getAdditiveTrack(o),l=a.keyframes;if(a.prepare(s),a.needsAnimate())i.push(a);else if(!a.interpolable){var u=l[l.length-1];u&&(n._target[a.propName]=u.value)}}if(i.length||e){var h=new Te({life:this._maxTime,loop:this._loop,delay:this._delay,onframe:function(t){n._started=2;var e=n._additiveAnimators;if(e){for(var r=!1,o=0;o<e.length;o++)if(e[o]._clip){r=!0;break}r||(n._additiveAnimators=null)}for(o=0;o<i.length;o++)i[o].step(n._target,t);var a=n._onframeList;if(a)for(o=0;o<a.length;o++)a[o](n._target,t)},ondestroy:function(){n._doneCallback()}});this._clip=h,this.animation&&this.animation.addClip(h),t&&"spline"!==t&&(h.easing=t)}else this._doneCallback();return this}},t.prototype.stop=function(t){if(this._clip){var e=this._clip;t&&e.onframe(1),this._abortedCallback()}},t.prototype.delay=function(t){return this._delay=t,this},t.prototype.during=function(t){return t&&(this._onframeList||(this._onframeList=[]),this._onframeList.push(t)),this},t.prototype.done=function(t){return t&&(this._doneList||(this._doneList=[]),this._doneList.push(t)),this},t.prototype.aborted=function(t){return t&&(this._abortedList||(this._abortedList=[]),this._abortedList.push(t)),this},t.prototype.getClip=function(){return this._clip},t.prototype.getTrack=function(t){return this._tracks[t]},t.prototype.stopTracks=function(t,e){if(!t.length||!this._clip)return!0;for(var n=this._tracks,i=this._trackKeys,r=0;r<t.length;r++){var o=n[t[r]];o&&(e?o.step(this._target,1):1===this._started&&o.step(this._target,0),o.setFinished())}var a=!0;for(r=0;r<i.length;r++)if(!n[i[r]].isFinished()){a=!1;break}return a&&this._abortedCallback(),a},t.prototype.saveFinalToTarget=function(t,e){if(t){e=e||this._trackKeys;for(var n=0;n<e.length;n++){var i=e[n],r=this._tracks[i];if(r&&!r.isFinished()){var o=r.keyframes,a=o[o.length-1];if(a){var s=sn(a.value);r.isValueColor&&(s=ln(s)),t[i]=s}}}}},t.prototype.__changeFinalValue=function(t,e){e=e||N(t);for(var n=0;n<e.length;n++){var i=e[n],r=this._tracks[i];if(r){var o=r.keyframes;if(o.length>1){var a=o.pop();r.addKeyframe(a.time,t[i]),r.prepare(r.getAdditiveTrack())}}}},t}(),dn=function(){function t(t,e){this.x=t||0,this.y=e||0}return t.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this},t.prototype.clone=function(){return new t(this.x,this.y)},t.prototype.set=function(t,e){return this.x=t,this.y=e,this},t.prototype.equal=function(t){return t.x===this.x&&t.y===this.y},t.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this},t.prototype.scale=function(t){this.x*=t,this.y*=t},t.prototype.scaleAndAdd=function(t,e){this.x+=t.x*e,this.y+=t.y*e},t.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this},t.prototype.dot=function(t){return this.x*t.x+this.y*t.y},t.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},t.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},t.prototype.normalize=function(){var t=this.len();return this.x/=t,this.y/=t,this},t.prototype.distance=function(t){var e=this.x-t.x,n=this.y-t.y;return Math.sqrt(e*e+n*n)},t.prototype.distanceSquare=function(t){var e=this.x-t.x,n=this.y-t.y;return e*e+n*n},t.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},t.prototype.transform=function(t){if(t){var e=this.x,n=this.y;return this.x=t[0]*e+t[2]*n+t[4],this.y=t[1]*e+t[3]*n+t[5],this}},t.prototype.toArray=function(t){return t[0]=this.x,t[1]=this.y,t},t.prototype.fromArray=function(t){this.x=t[0],this.y=t[1]},t.set=function(t,e,n){t.x=e,t.y=n},t.copy=function(t,e){t.x=e.x,t.y=e.y},t.len=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)},t.lenSquare=function(t){return t.x*t.x+t.y*t.y},t.dot=function(t,e){return t.x*e.x+t.y*e.y},t.add=function(t,e,n){t.x=e.x+n.x,t.y=e.y+n.y},t.sub=function(t,e,n){t.x=e.x-n.x,t.y=e.y-n.y},t.scale=function(t,e,n){t.x=e.x*n,t.y=e.y*n},t.scaleAndAdd=function(t,e,n,i){t.x=e.x+n.x*i,t.y=e.y+n.y*i},t.lerp=function(t,e,n,i){var r=1-i;t.x=r*e.x+i*n.x,t.y=r*e.y+i*n.y},t}(),gn=Math.min,yn=Math.max,vn=new dn,mn=new dn,_n=new dn,xn=new dn,bn=new dn,wn=new dn,Sn=function(){function t(t,e,n,i){n<0&&isFinite(n)&&(t+=n,n=-n),i<0&&isFinite(i)&&(e+=i,i=-i),this.x=t,this.y=e,this.width=n,this.height=i}return t.prototype.union=function(t){var e=gn(t.x,this.x),n=gn(t.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=yn(t.x+t.width,this.x+this.width)-e:this.width=t.width,isFinite(this.y)&&isFinite(this.height)?this.height=yn(t.y+t.height,this.y+this.height)-n:this.height=t.height,this.x=e,this.y=n},t.prototype.applyTransform=function(e){t.applyTransform(this,this,e)},t.prototype.calculateTransform=function(t){var e=this,n=t.width/e.width,i=t.height/e.height,r=[1,0,0,1,0,0];return ce(r,r,[-e.x,-e.y]),fe(r,r,[n,i]),ce(r,r,[t.x,t.y]),r},t.prototype.intersect=function(e,n){if(!e)return!1;e instanceof t||(e=t.create(e));var i=this,r=i.x,o=i.x+i.width,a=i.y,s=i.y+i.height,l=e.x,u=e.x+e.width,h=e.y,c=e.y+e.height,p=!(o<l||u<r||s<h||c<a);if(n){var f=1/0,d=0,g=Math.abs(o-l),y=Math.abs(u-r),v=Math.abs(s-h),m=Math.abs(c-a),_=Math.min(g,y),x=Math.min(v,m);o<l||u<r?_>d&&(d=_,g<y?dn.set(wn,-g,0):dn.set(wn,y,0)):_<f&&(f=_,g<y?dn.set(bn,g,0):dn.set(bn,-y,0)),s<h||c<a?x>d&&(d=x,v<m?dn.set(wn,0,-v):dn.set(wn,0,m)):_<f&&(f=_,v<m?dn.set(bn,0,v):dn.set(bn,0,-m))}return n&&dn.copy(n,p?bn:wn),p},t.prototype.contain=function(t,e){var n=this;return t>=n.x&&t<=n.x+n.width&&e>=n.y&&e<=n.y+n.height},t.prototype.clone=function(){return new t(this.x,this.y,this.width,this.height)},t.prototype.copy=function(e){t.copy(this,e)},t.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},t.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},t.prototype.isZero=function(){return 0===this.width||0===this.height},t.create=function(e){return new t(e.x,e.y,e.width,e.height)},t.copy=function(t,e){t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height},t.applyTransform=function(e,n,i){if(i){if(i[1]<1e-5&&i[1]>-1e-5&&i[2]<1e-5&&i[2]>-1e-5){var r=i[0],o=i[3],a=i[4],s=i[5];return e.x=n.x*r+a,e.y=n.y*o+s,e.width=n.width*r,e.height=n.height*o,e.width<0&&(e.x+=e.width,e.width=-e.width),void(e.height<0&&(e.y+=e.height,e.height=-e.height))}vn.x=_n.x=n.x,vn.y=xn.y=n.y,mn.x=xn.x=n.x+n.width,mn.y=_n.y=n.y+n.height,vn.transform(i),xn.transform(i),mn.transform(i),_n.transform(i),e.x=gn(vn.x,mn.x,_n.x,xn.x),e.y=gn(vn.y,mn.y,_n.y,xn.y);var l=yn(vn.x,mn.x,_n.x,xn.x),u=yn(vn.y,mn.y,_n.y,xn.y);e.width=l-e.x,e.height=u-e.y}else e!==n&&t.copy(e,n)},t}(),Mn={},Tn="12px sans-serif";var Cn={measureText:function(t,e){return un||(un=C().getContext("2d")),hn!==e&&(hn=un.font=e||Tn),un.measureText(t)}};function Dn(t,e){var n=Mn[e=e||Tn];n||(n=Mn[e]=new Ie(500));var i=n.get(t);return null==i&&(i=Cn.measureText(t,e).width,n.put(t,i)),i}function In(t,e,n,i){var r=Dn(t,e),o=Pn(e),a=kn(0,r,n),s=Ln(0,o,i);return new Sn(a,s,r,o)}function An(t,e,n,i){var r=((t||"")+"").split("\n");if(1===r.length)return In(r[0],e,n,i);for(var o=new Sn(0,0,0,0),a=0;a<r.length;a++){var s=In(r[a],e,n,i);0===a?o.copy(s):o.union(s)}return o}function kn(t,e,n){return"right"===n?t-=e:"center"===n&&(t-=e/2),t}function Ln(t,e,n){return"middle"===n?t-=e/2:"bottom"===n&&(t-=e),t}function Pn(t){return Dn("国",t)}function On(t,e){return"string"==typeof t?t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t):t}function Rn(t,e,n){var i=e.position||"inside",r=null!=e.distance?e.distance:5,o=n.height,a=n.width,s=o/2,l=n.x,u=n.y,h="left",c="top";if(i instanceof Array)l+=On(i[0],n.width),u+=On(i[1],n.height),h=null,c=null;else switch(i){case"left":l-=r,u+=s,h="right",c="middle";break;case"right":l+=r+a,u+=s,c="middle";break;case"top":l+=a/2,u-=r,h="center",c="bottom";break;case"bottom":l+=a/2,u+=o+r,h="center";break;case"inside":l+=a/2,u+=s,h="center",c="middle";break;case"insideLeft":l+=r,u+=s,c="middle";break;case"insideRight":l+=a-r,u+=s,h="right",c="middle";break;case"insideTop":l+=a/2,u+=r,h="center";break;case"insideBottom":l+=a/2,u+=o-r,h="center",c="bottom";break;case"insideTopLeft":l+=r,u+=r;break;case"insideTopRight":l+=a-r,u+=r,h="right";break;case"insideBottomLeft":l+=r,u+=o-r,c="bottom";break;case"insideBottomRight":l+=a-r,u+=o-r,h="right",c="bottom"}return(t=t||{}).x=l,t.y=u,t.align=h,t.verticalAlign=c,t}var Nn=1;"undefined"!=typeof window&&(Nn=Math.max(window.devicePixelRatio||window.screen&&window.screen.deviceXDPI/window.screen.logicalXDPI||1,1));var En=Nn,Bn="#333",zn="#ccc",Fn="__zr_normal__",Vn=["x","y","scaleX","scaleY","originX","originY","rotation","ignore"],Hn={x:!0,y:!0,scaleX:!0,scaleY:!0,originX:!0,originY:!0,rotation:!0,ignore:!1},Wn={},Gn=new Sn(0,0,0,0),Un=function(){function t(t){this.id=x(),this.animators=[],this.currentStates=[],this.states={},this._init(t)}return t.prototype._init=function(t){this.attr(t)},t.prototype.drift=function(t,e,n){switch(this.draggable){case"horizontal":e=0;break;case"vertical":t=0}var i=this.transform;i||(i=this.transform=[1,0,0,1,0,0]),i[4]+=t,i[5]+=e,this.decomposeTransform(),this.markRedraw()},t.prototype.beforeUpdate=function(){},t.prototype.afterUpdate=function(){},t.prototype.update=function(){this.updateTransform(),this.__dirty&&this.updateInnerText()},t.prototype.updateInnerText=function(t){var e=this._textContent;if(e&&(!e.ignore||t)){this.textConfig||(this.textConfig={});var n=this.textConfig,i=n.local,r=e.attachedTransform,o=void 0,a=void 0,s=!1;r.parent=i?this:null;var l=!1;if(r.x=e.x,r.y=e.y,r.originX=e.originX,r.originY=e.originY,r.rotation=e.rotation,r.scaleX=e.scaleX,r.scaleY=e.scaleY,null!=n.position){var u=Gn;n.layoutRect?u.copy(n.layoutRect):u.copy(this.getBoundingRect()),i||u.applyTransform(this.transform),this.calculateTextPosition?this.calculateTextPosition(Wn,n,u):Rn(Wn,n,u),r.x=Wn.x,r.y=Wn.y,o=Wn.align,a=Wn.verticalAlign;var h=n.origin;if(h&&null!=n.rotation){var c=void 0,p=void 0;"center"===h?(c=.5*u.width,p=.5*u.height):(c=On(h[0],u.width),p=On(h[1],u.height)),l=!0,r.originX=-r.x+c+(i?0:u.x),r.originY=-r.y+p+(i?0:u.y)}}null!=n.rotation&&(r.rotation=n.rotation);var f=n.offset;f&&(r.x+=f[0],r.y+=f[1],l||(r.originX=-f[0],r.originY=-f[1]));var d=null==n.inside?"string"==typeof n.position&&n.position.indexOf("inside")>=0:n.inside,g=this._innerTextDefaultStyle||(this._innerTextDefaultStyle={}),y=void 0,v=void 0,m=void 0;d&&this.canBeInsideText()?(y=n.insideFill,v=n.insideStroke,null!=y&&"auto"!==y||(y=this.getInsideTextFill()),null!=v&&"auto"!==v||(v=this.getInsideTextStroke(y),m=!0)):(y=n.outsideFill,v=n.outsideStroke,null!=y&&"auto"!==y||(y=this.getOutsideFill()),null!=v&&"auto"!==v||(v=this.getOutsideStroke(y),m=!0)),(y=y||"#000")===g.fill&&v===g.stroke&&m===g.autoStroke&&o===g.align&&a===g.verticalAlign||(s=!0,g.fill=y,g.stroke=v,g.autoStroke=m,g.align=o,g.verticalAlign=a,e.setDefaultTextStyle(g)),s&&e.dirtyStyle(),e.markRedraw()}},t.prototype.canBeInsideText=function(){return!0},t.prototype.getInsideTextFill=function(){return"#fff"},t.prototype.getInsideTextStroke=function(t){return"#000"},t.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?zn:Bn},t.prototype.getOutsideStroke=function(t){var e=this.__zr&&this.__zr.getBackgroundColor(),n="string"==typeof e&&He(e);n||(n=[255,255,255,1]);for(var i=n[3],r=this.__zr.isDarkMode(),o=0;o<3;o++)n[o]=n[o]*i+(r?0:255)*(1-i);return n[3]=1,je(n,"rgba")},t.prototype.traverse=function(t,e){},t.prototype.attrKV=function(t,e){"textConfig"===t?this.setTextConfig(e):"textContent"===t?this.setTextContent(e):"clipPath"===t?this.setClipPath(e):"extra"===t?(this.extra=this.extra||{},M(this.extra,e)):this[t]=e},t.prototype.hide=function(){this.ignore=!0,this.markRedraw()},t.prototype.show=function(){this.ignore=!1,this.markRedraw()},t.prototype.attr=function(t,e){if("string"==typeof t)this.attrKV(t,e);else if(G(t))for(var n=N(t),i=0;i<n.length;i++){var r=n[i];this.attrKV(r,t[r])}return this.markRedraw(),this},t.prototype.saveCurrentToNormalState=function(t){this._innerSaveToNormal(t);for(var e=this._normalState,n=0;n<this.animators.length;n++){var i=this.animators[n],r=i.__fromStateTransition;if(!r||r===Fn){var o=i.targetName,a=o?e[o]:e;i.saveFinalToTarget(a)}}},t.prototype._innerSaveToNormal=function(t){var e=this._normalState;e||(e=this._normalState={}),t.textConfig&&!e.textConfig&&(e.textConfig=this.textConfig),this._savePrimaryToNormal(t,e,Vn)},t.prototype._savePrimaryToNormal=function(t,e,n){for(var i=0;i<n.length;i++){var r=n[i];null==t[r]||r in e||(e[r]=this[r])}},t.prototype.hasState=function(){return this.currentStates.length>0},t.prototype.getState=function(t){return this.states[t]},t.prototype.ensureState=function(t){var e=this.states;return e[t]||(e[t]={}),e[t]},t.prototype.clearStates=function(t){this.useState(Fn,!1,t)},t.prototype.useState=function(e,n,i){var r=e===Fn;if(this.hasState()||!r){var o=this.currentStates,a=this.stateTransition;if(!(D(o,e)>=0)||!n&&1!==o.length){var s;if(this.stateProxy&&!r&&(s=this.stateProxy(e)),s||(s=this.states&&this.states[e]),s||r){r||this.saveCurrentToNormalState(s);var l=!(!s||!s.hoverLayer);return l&&this._toggleHoverLayerFlag(!0),this._applyStateObj(e,s,this._normalState,n,!i&&!this.__inHover&&a&&a.duration>0,a),this._textContent&&this._textContent.useState(e,n),this._textGuide&&this._textGuide.useState(e,n),r?(this.currentStates=[],this._normalState={}):n?this.currentStates.push(e):this.currentStates=[e],this._updateAnimationTargets(),this.markRedraw(),!l&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~t.REDARAW_BIT),s}b("State "+e+" not exists.")}}},t.prototype.useStates=function(e,n){if(e.length){var i=[],r=this.currentStates,o=e.length,a=o===r.length;if(a)for(var s=0;s<o;s++)if(e[s]!==r[s]){a=!1;break}if(a)return;for(s=0;s<o;s++){var l=e[s],u=void 0;this.stateProxy&&(u=this.stateProxy(l,e)),u||(u=this.states[l]),u&&i.push(u)}var h=!(!i[o-1]||!i[o-1].hoverLayer);h&&this._toggleHoverLayerFlag(!0);var c=this._mergeStates(i),p=this.stateTransition;this.saveCurrentToNormalState(c),this._applyStateObj(e.join(","),c,this._normalState,!1,!n&&!this.__inHover&&p&&p.duration>0,p),this._textContent&&this._textContent.useStates(e),this._textGuide&&this._textGuide.useStates(e),this._updateAnimationTargets(),this.currentStates=e.slice(),this.markRedraw(),!h&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~t.REDARAW_BIT)}else this.clearStates()},t.prototype._updateAnimationTargets=function(){for(var t=0;t<this.animators.length;t++){var e=this.animators[t];e.targetName&&e.changeTarget(this[e.targetName])}},t.prototype.removeState=function(t){var e=D(this.currentStates,t);if(e>=0){var n=this.currentStates.slice();n.splice(e,1),this.useStates(n)}},t.prototype.replaceState=function(t,e,n){var i=this.currentStates.slice(),r=D(i,t),o=D(i,e)>=0;r>=0?o?i.splice(r,1):i[r]=e:n&&!o&&i.push(e),this.useStates(i)},t.prototype.toggleState=function(t,e){e?this.useState(t,!0):this.removeState(t)},t.prototype._mergeStates=function(t){for(var e,n={},i=0;i<t.length;i++){var r=t[i];M(n,r),r.textConfig&&M(e=e||{},r.textConfig)}return e&&(n.textConfig=e),n},t.prototype._applyStateObj=function(t,e,n,i,r,o){var a=!(e&&i);e&&e.textConfig?(this.textConfig=M({},i?this.textConfig:n.textConfig),M(this.textConfig,e.textConfig)):a&&n.textConfig&&(this.textConfig=n.textConfig);for(var s={},l=!1,u=0;u<Vn.length;u++){var h=Vn[u],c=r&&Hn[h];e&&null!=e[h]?c?(l=!0,s[h]=e[h]):this[h]=e[h]:a&&null!=n[h]&&(c?(l=!0,s[h]=n[h]):this[h]=n[h])}if(!r)for(u=0;u<this.animators.length;u++){var p=this.animators[u],f=p.targetName;p.__changeFinalValue(f?(e||n)[f]:e||n)}l&&this._transitionState(t,s,o)},t.prototype._attachComponent=function(t){if(t.__zr&&!t.__hostTarget)throw new Error("Text element has been added to zrender.");if(t===this)throw new Error("Recursive component attachment.");var e=this.__zr;e&&t.addSelfToZr(e),t.__zr=e,t.__hostTarget=this},t.prototype._detachComponent=function(t){t.__zr&&t.removeSelfFromZr(t.__zr),t.__zr=null,t.__hostTarget=null},t.prototype.getClipPath=function(){return this._clipPath},t.prototype.setClipPath=function(t){this._clipPath&&this._clipPath!==t&&this.removeClipPath(),this._attachComponent(t),this._clipPath=t,this.markRedraw()},t.prototype.removeClipPath=function(){var t=this._clipPath;t&&(this._detachComponent(t),this._clipPath=null,this.markRedraw())},t.prototype.getTextContent=function(){return this._textContent},t.prototype.setTextContent=function(t){var e=this._textContent;if(e!==t){if(e&&e!==t&&this.removeTextContent(),t.__zr&&!t.__hostTarget)throw new Error("Text element has been added to zrender.");t.attachedTransform=new Se,this._attachComponent(t),this._textContent=t,this.markRedraw()}},t.prototype.setTextConfig=function(t){this.textConfig||(this.textConfig={}),M(this.textConfig,t),this.markRedraw()},t.prototype.removeTextContent=function(){var t=this._textContent;t&&(t.attachedTransform=null,this._detachComponent(t),this._textContent=null,this._innerTextDefaultStyle=null,this.markRedraw())},t.prototype.getTextGuideLine=function(){return this._textGuide},t.prototype.setTextGuideLine=function(t){this._textGuide&&this._textGuide!==t&&this.removeTextGuideLine(),this._attachComponent(t),this._textGuide=t,this.markRedraw()},t.prototype.removeTextGuideLine=function(){var t=this._textGuide;t&&(this._detachComponent(t),this._textGuide=null,this.markRedraw())},t.prototype.markRedraw=function(){this.__dirty|=t.REDARAW_BIT;var e=this.__zr;e&&(this.__inHover?e.refreshHover():e.refresh()),this.__hostTarget&&this.__hostTarget.markRedraw()},t.prototype.dirty=function(){this.markRedraw()},t.prototype._toggleHoverLayerFlag=function(t){this.__inHover=t;var e=this._textContent,n=this._textGuide;e&&(e.__inHover=t),n&&(n.__inHover=t)},t.prototype.addSelfToZr=function(t){this.__zr=t;var e=this.animators;if(e)for(var n=0;n<e.length;n++)t.animation.addAnimator(e[n]);this._clipPath&&this._clipPath.addSelfToZr(t),this._textContent&&this._textContent.addSelfToZr(t),this._textGuide&&this._textGuide.addSelfToZr(t)},t.prototype.removeSelfFromZr=function(t){this.__zr=null;var e=this.animators;if(e)for(var n=0;n<e.length;n++)t.animation.removeAnimator(e[n]);this._clipPath&&this._clipPath.removeSelfFromZr(t),this._textContent&&this._textContent.removeSelfFromZr(t),this._textGuide&&this._textGuide.removeSelfFromZr(t)},t.prototype.animate=function(t,e){var n=t?this[t]:this;if(n){var i=new fn(n,e);return this.addAnimator(i,t),i}b('Property "'+t+'" is not existed in element '+this.id)},t.prototype.addAnimator=function(t,e){var n=this.__zr,i=this;t.during((function(){i.updateDuringAnimation(e)})).done((function(){var e=i.animators,n=D(e,t);n>=0&&e.splice(n,1)})),this.animators.push(t),n&&n.animation.addAnimator(t),n&&n.wakeUp()},t.prototype.updateDuringAnimation=function(t){this.markRedraw()},t.prototype.stopAnimation=function(t,e){for(var n=this.animators,i=n.length,r=[],o=0;o<i;o++){var a=n[o];t&&t!==a.scope?r.push(a):a.stop(e)}return this.animators=r,this},t.prototype.animateTo=function(t,e,n){Yn(this,t,e,n)},t.prototype.animateFrom=function(t,e,n){Yn(this,t,e,n,!0)},t.prototype._transitionState=function(t,e,n,i){for(var r=Yn(this,e,n,i),o=0;o<r.length;o++)r[o].__fromStateTransition=t},t.prototype.getBoundingRect=function(){return null},t.prototype.getPaintRect=function(){return null},t.REDARAW_BIT=1,t.initDefaultProps=function(){var e=t.prototype;e.type="element",e.name="",e.ignore=!1,e.silent=!1,e.isGroup=!1,e.draggable=!1,e.dragging=!1,e.ignoreClip=!1,e.__inHover=!1,e.__dirty=t.REDARAW_BIT;var n={};function i(t,e,i){n[t+e+i]||(console.warn("DEPRECATED: '"+t+"' has been deprecated. use '"+e+"', '"+i+"' instead"),n[t+e+i]=!0)}function r(t,n,r,o){function a(t,e){Object.defineProperty(e,0,{get:function(){return t[r]},set:function(e){t[r]=e}}),Object.defineProperty(e,1,{get:function(){return t[o]},set:function(e){t[o]=e}})}Object.defineProperty(e,t,{get:function(){(i(t,r,o),this[n])||a(this,this[n]=[]);return this[n]},set:function(e){i(t,r,o),this[r]=e[0],this[o]=e[1],this[n]=e,a(this,e)}})}Object.defineProperty&&(!a.browser.ie||a.browser.version>8)&&(r("position","_legacyPos","x","y"),r("scale","_legacyScale","scaleX","scaleY"),r("origin","_legacyOrigin","originX","originY"))}(),t}();function Yn(t,e,n,i,r){var o=[];jn(t,"",t,e,n=n||{},i,o,r);var a=o.length,s=!1,l=n.done,u=n.aborted,h=function(){s=!0,--a<=0&&(s?l&&l():u&&u())},c=function(){--a<=0&&(s?l&&l():u&&u())};a||l&&l(),o.length>0&&n.during&&o[0].during((function(t,e){n.during(e)}));for(var p=0;p<o.length;p++){var f=o[p];h&&f.done(h),c&&f.aborted(c),f.start(n.easing,n.force)}return o}function Xn(t,e,n){for(var i=0;i<n;i++)t[i]=e[i]}function qn(t,e,n){if(k(e[n]))if(k(t[n])||(t[n]=[]),Y(e[n])){var i=e[n].length;t[n].length!==i&&(t[n]=new e[n].constructor(i),Xn(t[n],e[n],i))}else{var r=e[n],o=t[n],a=r.length;if(k(r[0]))for(var s=r[0].length,l=0;l<a;l++)o[l]?Xn(o[l],r[l],s):o[l]=Array.prototype.slice.call(r[l]);else Xn(o,r,a);o.length=r.length}else t[n]=e[n]}function jn(t,e,n,i,r,o,a,s){for(var l=[],u=[],h=N(i),c=r.duration,p=r.delay,f=r.additive,d=r.setToFinal,g=!G(o),y=0;y<h.length;y++){if(null!=n[T=h[y]]&&null!=i[T]&&(g||o[T]))if(G(i[T])&&!k(i[T])){if(e){s||(n[T]=i[T],t.updateDuringAnimation(e));continue}jn(t,T,n[T],i[T],r,o&&o[T],a,s)}else l.push(T),u.push(T);else s||(n[T]=i[T],t.updateDuringAnimation(e),u.push(T))}var v=l.length;if(v>0||r.force&&!a.length){for(var m=t.animators,_=[],x=0;x<m.length;x++)m[x].targetName===e&&_.push(m[x]);if(!f&&_.length)for(x=0;x<_.length;x++){if(_[x].stopTracks(u)){var b=D(m,_[x]);m.splice(b,1)}}var w=void 0,S=void 0,M=void 0;if(s){S={},d&&(w={});for(x=0;x<v;x++){S[T=l[x]]=n[T],d?w[T]=i[T]:n[T]=i[T]}}else if(d){M={};for(x=0;x<v;x++){var T;M[T=l[x]]=sn(n[T]),qn(n,i,T)}}var C=new fn(n,!1,f?_:null);C.targetName=e,r.scope&&(C.scope=r.scope),d&&w&&C.whenWithKeys(0,w,l),M&&C.whenWithKeys(0,M,l),C.whenWithKeys(null==c?500:c,s?S:i,l).delay(p||0),t.addAnimator(C,e),a.push(C)}}A(Un,Et),A(Un,Se);function Zn(t,e,n,i){var r=e+1;if(r===n)return 1;if(i(t[r++],t[e])<0){for(;r<n&&i(t[r],t[r-1])<0;)r++;!function(t,e,n){n--;for(;e<n;){var i=t[e];t[e++]=t[n],t[n--]=i}}(t,e,r)}else for(;r<n&&i(t[r],t[r-1])>=0;)r++;return r-e}function Kn(t,e,n,i,r){for(i===e&&i++;i<n;i++){for(var o,a=t[i],s=e,l=i;s<l;)r(a,t[o=s+l>>>1])<0?l=o:s=o+1;var u=i-s;switch(u){case 3:t[s+3]=t[s+2];case 2:t[s+2]=t[s+1];case 1:t[s+1]=t[s];break;default:for(;u>0;)t[s+u]=t[s+u-1],u--}t[s]=a}}function $n(t,e,n,i,r,o){var a=0,s=0,l=1;if(o(t,e[n+r])>0){for(s=i-r;l<s&&o(t,e[n+r+l])>0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),a+=r,l+=r}else{for(s=r+1;l<s&&o(t,e[n+r-l])<=0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s);var u=a;a=r-l,l=r-u}for(a++;a<l;){var h=a+(l-a>>>1);o(t,e[n+h])>0?a=h+1:l=h}return l}function Qn(t,e,n,i,r,o){var a=0,s=0,l=1;if(o(t,e[n+r])<0){for(s=r+1;l<s&&o(t,e[n+r-l])<0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s);var u=a;a=r-l,l=r-u}else{for(s=i-r;l<s&&o(t,e[n+r+l])>=0;)a=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),a+=r,l+=r}for(a++;a<l;){var h=a+(l-a>>>1);o(t,e[n+h])<0?l=h:a=h+1}return l}function Jn(t,e){var n,i,r=7,o=0;t.length;var a=[];function s(s){var l=n[s],u=i[s],h=n[s+1],c=i[s+1];i[s]=u+c,s===o-3&&(n[s+1]=n[s+2],i[s+1]=i[s+2]),o--;var p=Qn(t[h],t,l,u,0,e);l+=p,0!==(u-=p)&&0!==(c=$n(t[l+u-1],t,h,c,c-1,e))&&(u<=c?function(n,i,o,s){var l=0;for(l=0;l<i;l++)a[l]=t[n+l];var u=0,h=o,c=n;if(t[c++]=t[h++],0==--s){for(l=0;l<i;l++)t[c+l]=a[u+l];return}if(1===i){for(l=0;l<s;l++)t[c+l]=t[h+l];return void(t[c+s]=a[u])}var p,f,d,g=r;for(;;){p=0,f=0,d=!1;do{if(e(t[h],a[u])<0){if(t[c++]=t[h++],f++,p=0,0==--s){d=!0;break}}else if(t[c++]=a[u++],p++,f=0,1==--i){d=!0;break}}while((p|f)<g);if(d)break;do{if(0!==(p=Qn(t[h],a,u,i,0,e))){for(l=0;l<p;l++)t[c+l]=a[u+l];if(c+=p,u+=p,(i-=p)<=1){d=!0;break}}if(t[c++]=t[h++],0==--s){d=!0;break}if(0!==(f=$n(a[u],t,h,s,0,e))){for(l=0;l<f;l++)t[c+l]=t[h+l];if(c+=f,h+=f,0===(s-=f)){d=!0;break}}if(t[c++]=a[u++],1==--i){d=!0;break}g--}while(p>=7||f>=7);if(d)break;g<0&&(g=0),g+=2}if((r=g)<1&&(r=1),1===i){for(l=0;l<s;l++)t[c+l]=t[h+l];t[c+s]=a[u]}else{if(0===i)throw new Error;for(l=0;l<i;l++)t[c+l]=a[u+l]}}(l,u,h,c):function(n,i,o,s){var l=0;for(l=0;l<s;l++)a[l]=t[o+l];var u=n+i-1,h=s-1,c=o+s-1,p=0,f=0;if(t[c--]=t[u--],0==--i){for(p=c-(s-1),l=0;l<s;l++)t[p+l]=a[l];return}if(1===s){for(f=(c-=i)+1,p=(u-=i)+1,l=i-1;l>=0;l--)t[f+l]=t[p+l];return void(t[c]=a[h])}var d=r;for(;;){var g=0,y=0,v=!1;do{if(e(a[h],t[u])<0){if(t[c--]=t[u--],g++,y=0,0==--i){v=!0;break}}else if(t[c--]=a[h--],y++,g=0,1==--s){v=!0;break}}while((g|y)<d);if(v)break;do{if(0!==(g=i-Qn(a[h],t,n,i,i-1,e))){for(i-=g,f=(c-=g)+1,p=(u-=g)+1,l=g-1;l>=0;l--)t[f+l]=t[p+l];if(0===i){v=!0;break}}if(t[c--]=a[h--],1==--s){v=!0;break}if(0!==(y=s-$n(t[u],a,0,s,s-1,e))){for(s-=y,f=(c-=y)+1,p=(h-=y)+1,l=0;l<y;l++)t[f+l]=a[p+l];if(s<=1){v=!0;break}}if(t[c--]=t[u--],0==--i){v=!0;break}d--}while(g>=7||y>=7);if(v)break;d<0&&(d=0),d+=2}(r=d)<1&&(r=1);if(1===s){for(f=(c-=i)+1,p=(u-=i)+1,l=i-1;l>=0;l--)t[f+l]=t[p+l];t[c]=a[h]}else{if(0===s)throw new Error;for(p=c-(s-1),l=0;l<s;l++)t[p+l]=a[l]}}(l,u,h,c))}return n=[],i=[],{mergeRuns:function(){for(;o>1;){var t=o-2;if(t>=1&&i[t-1]<=i[t]+i[t+1]||t>=2&&i[t-2]<=i[t]+i[t-1])i[t-1]<i[t+1]&&t--;else if(i[t]>i[t+1])break;s(t)}},forceMergeRuns:function(){for(;o>1;){var t=o-2;t>0&&i[t-1]<i[t+1]&&t--,s(t)}},pushRun:function(t,e){n[o]=t,i[o]=e,o+=1}}}function ti(t,e,n,i){n||(n=0),i||(i=t.length);var r=i-n;if(!(r<2)){var o=0;if(r<32)Kn(t,n,i,n+(o=Zn(t,n,i,e)),e);else{var a=Jn(t,e),s=function(t){for(var e=0;t>=32;)e|=1&t,t>>=1;return t+e}(r);do{if((o=Zn(t,n,i,e))<s){var l=r;l>s&&(l=s),Kn(t,n,n+l,n+o,e),o=l}a.pushRun(n,o),a.mergeRuns(),r-=o,n+=o}while(0!==r);a.forceMergeRuns()}}}var ei=!1;function ni(){ei||(ei=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function ii(t,e){return t.zlevel===e.zlevel?t.z===e.z?t.z2-e.z2:t.z-e.z:t.zlevel-e.zlevel}var ri,oi,ai=function(){function t(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=ii}return t.prototype.traverse=function(t,e){for(var n=0;n<this._roots.length;n++)this._roots[n].traverse(t,e)},t.prototype.getDisplayList=function(t,e){e=e||!1;var n=this._displayList;return!t&&n.length||this.updateDisplayList(e),n},t.prototype.updateDisplayList=function(t){this._displayListLen=0;for(var e=this._roots,n=this._displayList,i=0,r=e.length;i<r;i++)this._updateAndAddDisplayable(e[i],null,t);n.length=this._displayListLen,a.canvasSupported&&ti(n,ii)},t.prototype._updateAndAddDisplayable=function(t,e,n){if(!t.ignore||n){t.beforeUpdate(),t.update(),t.afterUpdate();var i=t.getClipPath();if(t.ignoreClip)e=null;else if(i){e=e?e.slice():[];for(var r=i,o=t;r;)r.parent=o,r.updateTransform(),e.push(r),o=r,r=r.getClipPath()}if(t.childrenRef){for(var a=t.childrenRef(),s=0;s<a.length;s++){var l=a[s];t.__dirty&&(l.__dirty|=Un.REDARAW_BIT),this._updateAndAddDisplayable(l,e,n)}t.__dirty=0}else{var u=t;e&&e.length?u.__clipPaths=e:u.__clipPaths&&u.__clipPaths.length>0&&(u.__clipPaths=[]),isNaN(u.z)&&(ni(),u.z=0),isNaN(u.z2)&&(ni(),u.z2=0),isNaN(u.zlevel)&&(ni(),u.zlevel=0),this._displayList[this._displayListLen++]=u}var h=t.getDecalElement&&t.getDecalElement();h&&this._updateAndAddDisplayable(h,e,n);var c=t.getTextGuideLine();c&&this._updateAndAddDisplayable(c,e,n);var p=t.getTextContent();p&&this._updateAndAddDisplayable(p,e,n)}},t.prototype.addRoot=function(t){t.__zr&&t.__zr.storage===this||this._roots.push(t)},t.prototype.delRoot=function(t){if(t instanceof Array)for(var e=0,n=t.length;e<n;e++)this.delRoot(t[e]);else{var i=D(this._roots,t);i>=0&&this._roots.splice(i,1)}},t.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},t.prototype.getRoots=function(){return this._roots},t.prototype.dispose=function(){this._displayList=null,this._roots=null},t}(),si="undefined"!=typeof window&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(t){return setTimeout(t,16)},li=function(t){function e(e){var n=t.call(this)||this;return n._running=!1,n._time=0,n._pausedTime=0,n._pauseStart=0,n._paused=!1,e=e||{},n.stage=e.stage||{},n.onframe=e.onframe||function(){},n}return dt(e,t),e.prototype.addClip=function(t){t.animation&&this.removeClip(t),this._clipsHead?(this._clipsTail.next=t,t.prev=this._clipsTail,t.next=null,this._clipsTail=t):this._clipsHead=this._clipsTail=t,t.animation=this},e.prototype.addAnimator=function(t){t.animation=this;var e=t.getClip();e&&this.addClip(e)},e.prototype.removeClip=function(t){if(t.animation){var e=t.prev,n=t.next;e?e.next=n:this._clipsHead=n,n?n.prev=e:this._clipsTail=e,t.next=t.prev=t.animation=null}},e.prototype.removeAnimator=function(t){var e=t.getClip();e&&this.removeClip(e),t.animation=null},e.prototype.update=function(t){for(var e=(new Date).getTime()-this._pausedTime,n=e-this._time,i=this._clipsHead;i;){var r=i.next;i.step(e,n)?(i.ondestroy&&i.ondestroy(),this.removeClip(i),i=r):i=r}this._time=e,t||(this.onframe(n),this.trigger("frame",n),this.stage.update&&this.stage.update())},e.prototype._startLoop=function(){var t=this;this._running=!0,si((function e(){t._running&&(si(e),!t._paused&&t.update())}))},e.prototype.start=function(){this._running||(this._time=(new Date).getTime(),this._pausedTime=0,this._startLoop())},e.prototype.stop=function(){this._running=!1},e.prototype.pause=function(){this._paused||(this._pauseStart=(new Date).getTime(),this._paused=!0)},e.prototype.resume=function(){this._paused&&(this._pausedTime+=(new Date).getTime()-this._pauseStart,this._paused=!1)},e.prototype.clear=function(){for(var t=this._clipsHead;t;){var e=t.next;t.prev=t.next=t.animation=null,t=e}this._clipsHead=this._clipsTail=null},e.prototype.isFinished=function(){return null==this._clipsHead},e.prototype.animate=function(t,e){e=e||{},this.start();var n=new fn(t,e.loop);return this.addAnimator(n),n},e}(Et),ui=a.domSupported,hi=(oi={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},{mouse:ri=["click","dblclick","mousewheel","wheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],touch:["touchstart","touchend","touchmove"],pointer:P(ri,(function(t){var e=t.replace("mouse","pointer");return oi.hasOwnProperty(e)?e:t}))}),ci=["mousemove","mouseup"],pi=["pointermove","pointerup"],fi=!1;function di(t){var e=t.pointerType;return"pen"===e||"touch"===e}function gi(t){t&&(t.zrByTouch=!0)}function yi(t,e){for(var n=e,i=!1;n&&9!==n.nodeType&&!(i=n.domBelongToZr||n!==e&&n===t.painterRoot);)n=n.parentNode;return i}var vi=function(t,e){this.stopPropagation=ct,this.stopImmediatePropagation=ct,this.preventDefault=ct,this.type=e.type,this.target=this.currentTarget=t.dom,this.pointerType=e.pointerType,this.clientX=e.clientX,this.clientY=e.clientY},mi={mousedown:function(t){t=jt(this.dom,t),this.__mayPointerCapture=[t.zrX,t.zrY],this.trigger("mousedown",t)},mousemove:function(t){t=jt(this.dom,t);var e=this.__mayPointerCapture;!e||t.zrX===e[0]&&t.zrY===e[1]||this.__togglePointerCapture(!0),this.trigger("mousemove",t)},mouseup:function(t){t=jt(this.dom,t),this.__togglePointerCapture(!1),this.trigger("mouseup",t)},mouseout:function(t){yi(this,(t=jt(this.dom,t)).toElement||t.relatedTarget)||(this.__pointerCapturing&&(t.zrEventControl="no_globalout"),this.trigger("mouseout",t))},wheel:function(t){fi=!0,t=jt(this.dom,t),this.trigger("mousewheel",t)},mousewheel:function(t){fi||(t=jt(this.dom,t),this.trigger("mousewheel",t))},touchstart:function(t){gi(t=jt(this.dom,t)),this.__lastTouchMoment=new Date,this.handler.processGesture(t,"start"),mi.mousemove.call(this,t),mi.mousedown.call(this,t)},touchmove:function(t){gi(t=jt(this.dom,t)),this.handler.processGesture(t,"change"),mi.mousemove.call(this,t)},touchend:function(t){gi(t=jt(this.dom,t)),this.handler.processGesture(t,"end"),mi.mouseup.call(this,t),+new Date-+this.__lastTouchMoment<300&&mi.click.call(this,t)},pointerdown:function(t){mi.mousedown.call(this,t)},pointermove:function(t){di(t)||mi.mousemove.call(this,t)},pointerup:function(t){mi.mouseup.call(this,t)},pointerout:function(t){di(t)||mi.mouseout.call(this,t)}};L(["click","dblclick","contextmenu"],(function(t){mi[t]=function(e){e=jt(this.dom,e),this.trigger(t,e)}}));var _i={pointermove:function(t){di(t)||_i.mousemove.call(this,t)},pointerup:function(t){_i.mouseup.call(this,t)},mousemove:function(t){this.trigger("mousemove",t)},mouseup:function(t){var e=this.__pointerCapturing;this.__togglePointerCapture(!1),this.trigger("mouseup",t),e&&(t.zrEventControl="only_globalout",this.trigger("mouseout",t))}};function xi(t,e){var n=e.domHandlers;a.pointerEventsSupported?L(hi.pointer,(function(i){wi(e,i,(function(e){n[i].call(t,e)}))})):(a.touchEventsSupported&&L(hi.touch,(function(i){wi(e,i,(function(r){n[i].call(t,r),function(t){t.touching=!0,null!=t.touchTimer&&(clearTimeout(t.touchTimer),t.touchTimer=null),t.touchTimer=setTimeout((function(){t.touching=!1,t.touchTimer=null}),700)}(e)}))})),L(hi.mouse,(function(i){wi(e,i,(function(r){r=qt(r),e.touching||n[i].call(t,r)}))})))}function bi(t,e){function n(n){wi(e,n,(function(i){i=qt(i),yi(t,i.target)||(i=function(t,e){return jt(t.dom,new vi(t,e),!0)}(t,i),e.domHandlers[n].call(t,i))}),{capture:!0})}a.pointerEventsSupported?L(pi,n):a.touchEventsSupported||L(ci,n)}function wi(t,e,n,i){t.mounted[e]=n,t.listenerOpts[e]=i,function(t,e,n,i){Wt?t.addEventListener(e,n,i):t.attachEvent("on"+e,n)}(t.domTarget,e,n,i)}function Si(t){var e,n,i,r,o=t.mounted;for(var a in o)o.hasOwnProperty(a)&&(e=t.domTarget,n=a,i=o[a],r=t.listenerOpts[a],Wt?e.removeEventListener(n,i,r):e.detachEvent("on"+n,i));t.mounted={}}var Mi=function(t,e){this.mounted={},this.listenerOpts={},this.touching=!1,this.domTarget=t,this.domHandlers=e},Ti=function(t){function e(e,n){var i=t.call(this)||this;return i.__pointerCapturing=!1,i.dom=e,i.painterRoot=n,i._localHandlerScope=new Mi(e,mi),ui&&(i._globalHandlerScope=new Mi(document,_i)),xi(i,i._localHandlerScope),i}return dt(e,t),e.prototype.dispose=function(){Si(this._localHandlerScope),ui&&Si(this._globalHandlerScope)},e.prototype.setCursor=function(t){this.dom.style&&(this.dom.style.cursor=t||"default")},e.prototype.__togglePointerCapture=function(t){if(this.__mayPointerCapture=null,ui&&+this.__pointerCapturing^+t){this.__pointerCapturing=t;var e=this._globalHandlerScope;t?bi(this,e):Si(e)}},e}(Et),Ci=function(t){function e(e){var n=t.call(this)||this;return n.isGroup=!0,n._children=[],n.attr(e),n}return dt(e,t),e.prototype.childrenRef=function(){return this._children},e.prototype.children=function(){return this._children.slice()},e.prototype.childAt=function(t){return this._children[t]},e.prototype.childOfName=function(t){for(var e=this._children,n=0;n<e.length;n++)if(e[n].name===t)return e[n]},e.prototype.childCount=function(){return this._children.length},e.prototype.add=function(t){if(t&&(t!==this&&t.parent!==this&&(this._children.push(t),this._doAdd(t)),t.__hostTarget))throw"This elemenet has been used as an attachment";return this},e.prototype.addBefore=function(t,e){if(t&&t!==this&&t.parent!==this&&e&&e.parent===this){var n=this._children,i=n.indexOf(e);i>=0&&(n.splice(i,0,t),this._doAdd(t))}return this},e.prototype.replaceAt=function(t,e){var n=this._children,i=n[e];if(t&&t!==this&&t.parent!==this&&t!==i){n[e]=t,i.parent=null;var r=this.__zr;r&&i.removeSelfFromZr(r),this._doAdd(t)}return this},e.prototype._doAdd=function(t){t.parent&&t.parent.remove(t),t.parent=this;var e=this.__zr;e&&e!==t.__zr&&t.addSelfToZr(e),e&&e.refresh()},e.prototype.remove=function(t){var e=this.__zr,n=this._children,i=D(n,t);return i<0||(n.splice(i,1),t.parent=null,e&&t.removeSelfFromZr(e),e&&e.refresh()),this},e.prototype.removeAll=function(){for(var t=this._children,e=this.__zr,n=0;n<t.length;n++){var i=t[n];e&&i.removeSelfFromZr(e),i.parent=null}return t.length=0,this},e.prototype.eachChild=function(t,e){for(var n=this._children,i=0;i<n.length;i++){var r=n[i];t.call(e,r,i)}return this},e.prototype.traverse=function(t,e){for(var n=0;n<this._children.length;n++){var i=this._children[n],r=t.call(e,i);i.isGroup&&!r&&i.traverse(t,e)}return this},e.prototype.addSelfToZr=function(e){t.prototype.addSelfToZr.call(this,e);for(var n=0;n<this._children.length;n++){this._children[n].addSelfToZr(e)}},e.prototype.removeSelfFromZr=function(e){t.prototype.removeSelfFromZr.call(this,e);for(var n=0;n<this._children.length;n++){this._children[n].removeSelfFromZr(e)}},e.prototype.getBoundingRect=function(t){for(var e=new Sn(0,0,0,0),n=t||this._children,i=[],r=null,o=0;o<n.length;o++){var a=n[o];if(!a.ignore&&!a.invisible){var s=a.getBoundingRect(),l=a.getLocalTransform(i);l?(Sn.applyTransform(e,s,l),(r=r||e.clone()).union(e)):(r=r||s.clone()).union(s)}}return r||e},e}(Un);Ci.prototype.type="group";
+    ***************************************************************************** */var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n])})(t,n)};function n(t,n){function i(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(i.prototype=n.prototype,new i)}var i=function(){return(i=Object.assign||function(t){for(var e,n=1,i=arguments.length;n<i;n++)for(var r in e=arguments[n])Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t}).apply(this,arguments)};function r(){for(var t=0,e=0,n=arguments.length;e<n;e++)t+=arguments[e].length;var i=Array(t),r=0;for(e=0;e<n;e++)for(var a=arguments[e],o=0,s=a.length;o<s;o++,r++)i[r]=a[o];return i}var a=function(){this.firefox=!1,this.ie=!1,this.edge=!1,this.newEdge=!1,this.weChat=!1},o=new function(){this.browser=new a,this.node=!1,this.wxa=!1,this.worker=!1,this.canvasSupported=!1,this.svgSupported=!1,this.touchEventsSupported=!1,this.pointerEventsSupported=!1,this.domSupported=!1};"object"==typeof wx&&"function"==typeof wx.getSystemInfoSync?(o.wxa=!0,o.canvasSupported=!0,o.touchEventsSupported=!0):"undefined"==typeof document&&"undefined"!=typeof self?(o.worker=!0,o.canvasSupported=!0):"undefined"==typeof navigator?(o.node=!0,o.canvasSupported=!0,o.svgSupported=!0):function(t,e){var n=e.browser,i=t.match(/Firefox\/([\d.]+)/),r=t.match(/MSIE\s([\d.]+)/)||t.match(/Trident\/.+?rv:(([\d.]+))/),a=t.match(/Edge?\/([\d.]+)/),o=/micromessenger/i.test(t);i&&(n.firefox=!0,n.version=i[1]);r&&(n.ie=!0,n.version=r[1]);a&&(n.edge=!0,n.version=a[1],n.newEdge=+a[1].split(".")[0]>18);o&&(n.weChat=!0);e.canvasSupported=!!document.createElement("canvas").getContext,e.svgSupported="undefined"!=typeof SVGRect,e.touchEventsSupported="ontouchstart"in window&&!n.ie&&!n.edge,e.pointerEventsSupported="onpointerdown"in window&&(n.edge||n.ie&&+n.version>=11),e.domSupported="undefined"!=typeof document}(navigator.userAgent,o);var s={"[object Function]":!0,"[object RegExp]":!0,"[object Date]":!0,"[object Error]":!0,"[object CanvasGradient]":!0,"[object CanvasPattern]":!0,"[object Image]":!0,"[object Canvas]":!0},l={"[object Int8Array]":!0,"[object Uint8Array]":!0,"[object Uint8ClampedArray]":!0,"[object Int16Array]":!0,"[object Uint16Array]":!0,"[object Int32Array]":!0,"[object Uint32Array]":!0,"[object Float32Array]":!0,"[object Float64Array]":!0},u=Object.prototype.toString,h=Array.prototype,c=h.forEach,p=h.filter,f=h.slice,d=h.map,g=function(){}.constructor,y=g?g.prototype:null,v={};function m(t,e){v[t]=e}var _=2311;function x(){return _++}function b(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];"undefined"!=typeof console&&console.error.apply(console,t)}function w(t){if(null==t||"object"!=typeof t)return t;var e=t,n=u.call(t);if("[object Array]"===n){if(!ot(t)){e=[];for(var i=0,r=t.length;i<r;i++)e[i]=w(t[i])}}else if(l[n]){if(!ot(t)){var a=t.constructor;if(a.from)e=a.from(t);else{e=new a(t.length);for(i=0,r=t.length;i<r;i++)e[i]=w(t[i])}}}else if(!s[n]&&!ot(t)&&!X(t))for(var o in e={},t)t.hasOwnProperty(o)&&(e[o]=w(t[o]));return e}function S(t,e,n){if(!G(e)||!G(t))return n?w(e):t;for(var i in e)if(e.hasOwnProperty(i)){var r=t[i],a=e[i];!G(a)||!G(r)||z(a)||z(r)||X(a)||X(r)||U(a)||U(r)||ot(a)||ot(r)?!n&&i in t||(t[i]=w(e[i])):S(r,a,n)}return t}function M(t,e){if(Object.assign)Object.assign(t,e);else for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);return t}function T(t,e,n){for(var i=N(e),r=0;r<i.length;r++){var a=i[r];(n?null!=e[a]:null==t[a])&&(t[a]=e[a])}return t}var C=function(){return v.createCanvas()};function D(t,e){if(t){if(t.indexOf)return t.indexOf(e);for(var n=0,i=t.length;n<i;n++)if(t[n]===e)return n}return-1}function I(t,e){var n=t.prototype;function i(){}for(var r in i.prototype=e.prototype,t.prototype=new i,n)n.hasOwnProperty(r)&&(t.prototype[r]=n[r]);t.prototype.constructor=t,t.superClass=e}function A(t,e,n){if(t="prototype"in t?t.prototype:t,e="prototype"in e?e.prototype:e,Object.getOwnPropertyNames)for(var i=Object.getOwnPropertyNames(e),r=0;r<i.length;r++){var a=i[r];"constructor"!==a&&(n?null!=e[a]:null==t[a])&&(t[a]=e[a])}else T(t,e,n)}function k(t){return!!t&&("string"!=typeof t&&"number"==typeof t.length)}function L(t,e,n){if(t&&e)if(t.forEach&&t.forEach===c)t.forEach(e,n);else if(t.length===+t.length)for(var i=0,r=t.length;i<r;i++)e.call(n,t[i],i,t);else for(var a in t)t.hasOwnProperty(a)&&e.call(n,t[a],a,t)}function P(t,e,n){if(!t)return[];if(!e)return tt(t);if(t.map&&t.map===d)return t.map(e,n);for(var i=[],r=0,a=t.length;r<a;r++)i.push(e.call(n,t[r],r,t));return i}function O(t,e,n,i){if(t&&e){for(var r=0,a=t.length;r<a;r++)n=e.call(i,n,t[r],r,t);return n}}function R(t,e,n){if(!t)return[];if(!e)return tt(t);if(t.filter&&t.filter===p)return t.filter(e,n);for(var i=[],r=0,a=t.length;r<a;r++)e.call(n,t[r],r,t)&&i.push(t[r]);return i}function N(t){if(!t)return[];if(Object.keys)return Object.keys(t);var e=[];for(var n in t)t.hasOwnProperty(n)&&e.push(n);return e}v.createCanvas=function(){return document.createElement("canvas")};var E=y&&F(y.bind)?y.call.bind(y.bind):function(t,e){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];return function(){return t.apply(e,n.concat(f.call(arguments)))}};function B(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return function(){return t.apply(this,e.concat(f.call(arguments)))}}function z(t){return Array.isArray?Array.isArray(t):"[object Array]"===u.call(t)}function F(t){return"function"==typeof t}function V(t){return"string"==typeof t}function H(t){return"[object String]"===u.call(t)}function W(t){return"number"==typeof t}function G(t){var e=typeof t;return"function"===e||!!t&&"object"===e}function U(t){return!!s[u.call(t)]}function Y(t){return!!l[u.call(t)]}function X(t){return"object"==typeof t&&"number"==typeof t.nodeType&&"object"==typeof t.ownerDocument}function q(t){return null!=t.colorStops}function j(t){return null!=t.image}function Z(t){return"[object RegExp]"===u.call(t)}function K(t){return t!=t}function $(){for(var t=[],e=0;e<arguments.length;e++)t[e]=arguments[e];for(var n=0,i=t.length;n<i;n++)if(null!=t[n])return t[n]}function Q(t,e){return null!=t?t:e}function J(t,e,n){return null!=t?t:null!=e?e:n}function tt(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];return f.apply(t,e)}function et(t){if("number"==typeof t)return[t,t,t,t];var e=t.length;return 2===e?[t[0],t[1],t[0],t[1]]:3===e?[t[0],t[1],t[2],t[1]]:t}function nt(t,e){if(!t)throw new Error(e)}function it(t){return null==t?null:"function"==typeof t.trim?t.trim():t.replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,"")}var rt="__ec_primitive__";function at(t){t[rt]=!0}function ot(t){return t[rt]}var st=function(){function t(e){this.data={};var n=z(e);this.data={};var i=this;function r(t,e){n?i.set(t,e):i.set(e,t)}e instanceof t?e.each(r):e&&L(e,r)}return t.prototype.get=function(t){return this.data.hasOwnProperty(t)?this.data[t]:null},t.prototype.set=function(t,e){return this.data[t]=e},t.prototype.each=function(t,e){for(var n in this.data)this.data.hasOwnProperty(n)&&t.call(e,this.data[n],n)},t.prototype.keys=function(){return N(this.data)},t.prototype.removeKey=function(t){delete this.data[t]},t}();function lt(t){return new st(t)}function ut(t,e){var n;if(Object.create)n=Object.create(t);else{var i=function(){};i.prototype=t,n=new i}return e&&M(n,e),n}function ht(t,e){return t.hasOwnProperty(e)}function ct(){}var pt=Object.freeze({__proto__:null,$override:m,guid:x,logError:b,clone:w,merge:S,mergeAll:function(t,e){for(var n=t[0],i=1,r=t.length;i<r;i++)n=S(n,t[i],e);return n},extend:M,defaults:T,createCanvas:C,indexOf:D,inherits:I,mixin:A,isArrayLike:k,each:L,map:P,reduce:O,filter:R,find:function(t,e,n){if(t&&e)for(var i=0,r=t.length;i<r;i++)if(e.call(n,t[i],i,t))return t[i]},keys:N,bind:E,curry:B,isArray:z,isFunction:F,isString:V,isStringSafe:H,isNumber:W,isObject:G,isBuiltInObject:U,isTypedArray:Y,isDom:X,isGradientObject:q,isPatternObject:j,isRegExp:Z,eqNaN:K,retrieve:$,retrieve2:Q,retrieve3:J,slice:tt,normalizeCssArray:et,assert:nt,trim:it,setAsPrimitive:at,isPrimitive:ot,HashMap:st,createHashMap:lt,concatArray:function(t,e){for(var n=new t.constructor(t.length+e.length),i=0;i<t.length;i++)n[i]=t[i];var r=t.length;for(i=0;i<e.length;i++)n[i+r]=e[i];return n},createObject:ut,hasOwn:ht,noop:ct});function ft(t,e){return null==t&&(t=0),null==e&&(e=0),[t,e]}function dt(t){return[t[0],t[1]]}function gt(t,e,n){return t[0]=e[0]+n[0],t[1]=e[1]+n[1],t}function yt(t,e,n){return t[0]=e[0]-n[0],t[1]=e[1]-n[1],t}function vt(t){return Math.sqrt(_t(t))}var mt=vt;function _t(t){return t[0]*t[0]+t[1]*t[1]}var xt=_t;function bt(t,e,n){return t[0]=e[0]*n,t[1]=e[1]*n,t}function wt(t,e){var n=vt(e);return 0===n?(t[0]=0,t[1]=0):(t[0]=e[0]/n,t[1]=e[1]/n),t}function St(t,e){return Math.sqrt((t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1]))}var Mt=St;function Tt(t,e){return(t[0]-e[0])*(t[0]-e[0])+(t[1]-e[1])*(t[1]-e[1])}var Ct=Tt;function Dt(t,e,n,i){return t[0]=e[0]+i*(n[0]-e[0]),t[1]=e[1]+i*(n[1]-e[1]),t}function It(t,e,n){var i=e[0],r=e[1];return t[0]=n[0]*i+n[2]*r+n[4],t[1]=n[1]*i+n[3]*r+n[5],t}function At(t,e,n){return t[0]=Math.min(e[0],n[0]),t[1]=Math.min(e[1],n[1]),t}function kt(t,e,n){return t[0]=Math.max(e[0],n[0]),t[1]=Math.max(e[1],n[1]),t}var Lt=Object.freeze({__proto__:null,create:ft,copy:function(t,e){return t[0]=e[0],t[1]=e[1],t},clone:dt,set:function(t,e,n){return t[0]=e,t[1]=n,t},add:gt,scaleAndAdd:function(t,e,n,i){return t[0]=e[0]+n[0]*i,t[1]=e[1]+n[1]*i,t},sub:yt,len:vt,length:mt,lenSquare:_t,lengthSquare:xt,mul:function(t,e,n){return t[0]=e[0]*n[0],t[1]=e[1]*n[1],t},div:function(t,e,n){return t[0]=e[0]/n[0],t[1]=e[1]/n[1],t},dot:function(t,e){return t[0]*e[0]+t[1]*e[1]},scale:bt,normalize:wt,distance:St,dist:Mt,distanceSquare:Tt,distSquare:Ct,negate:function(t,e){return t[0]=-e[0],t[1]=-e[1],t},lerp:Dt,applyTransform:It,min:At,max:kt}),Pt=function(t,e){this.target=t,this.topTarget=e&&e.topTarget},Ot=function(){function t(t){this.handler=t,t.on("mousedown",this._dragStart,this),t.on("mousemove",this._drag,this),t.on("mouseup",this._dragEnd,this)}return t.prototype._dragStart=function(t){for(var e=t.target;e&&!e.draggable;)e=e.parent;e&&(this._draggingTarget=e,e.dragging=!0,this._x=t.offsetX,this._y=t.offsetY,this.handler.dispatchToElement(new Pt(e,t),"dragstart",t.event))},t.prototype._drag=function(t){var e=this._draggingTarget;if(e){var n=t.offsetX,i=t.offsetY,r=n-this._x,a=i-this._y;this._x=n,this._y=i,e.drift(r,a,t),this.handler.dispatchToElement(new Pt(e,t),"drag",t.event);var o=this.handler.findHover(n,i,e).target,s=this._dropTarget;this._dropTarget=o,e!==o&&(s&&o!==s&&this.handler.dispatchToElement(new Pt(s,t),"dragleave",t.event),o&&o!==s&&this.handler.dispatchToElement(new Pt(o,t),"dragenter",t.event))}},t.prototype._dragEnd=function(t){var e=this._draggingTarget;e&&(e.dragging=!1),this.handler.dispatchToElement(new Pt(e,t),"dragend",t.event),this._dropTarget&&this.handler.dispatchToElement(new Pt(this._dropTarget,t),"drop",t.event),this._draggingTarget=null,this._dropTarget=null},t}(),Rt=function(){function t(t){t&&(this._$eventProcessor=t)}return t.prototype.on=function(t,e,n,i){this._$handlers||(this._$handlers={});var r=this._$handlers;if("function"==typeof e&&(i=n,n=e,e=null),!n||!t)return this;var a=this._$eventProcessor;null!=e&&a&&a.normalizeQuery&&(e=a.normalizeQuery(e)),r[t]||(r[t]=[]);for(var o=0;o<r[t].length;o++)if(r[t][o].h===n)return this;var s={h:n,query:e,ctx:i||this,callAtLast:n.zrEventfulCallAtLast},l=r[t].length-1,u=r[t][l];return u&&u.callAtLast?r[t].splice(l,0,s):r[t].push(s),this},t.prototype.isSilent=function(t){var e=this._$handlers;return!e||!e[t]||!e[t].length},t.prototype.off=function(t,e){var n=this._$handlers;if(!n)return this;if(!t)return this._$handlers={},this;if(e){if(n[t]){for(var i=[],r=0,a=n[t].length;r<a;r++)n[t][r].h!==e&&i.push(n[t][r]);n[t]=i}n[t]&&0===n[t].length&&delete n[t]}else delete n[t];return this},t.prototype.trigger=function(t){for(var e=[],n=1;n<arguments.length;n++)e[n-1]=arguments[n];if(!this._$handlers)return this;var i=this._$handlers[t],r=this._$eventProcessor;if(i)for(var a=e.length,o=i.length,s=0;s<o;s++){var l=i[s];if(!r||!r.filter||null==l.query||r.filter(t,l.query))switch(a){case 0:l.h.call(l.ctx);break;case 1:l.h.call(l.ctx,e[0]);break;case 2:l.h.call(l.ctx,e[0],e[1]);break;default:l.h.apply(l.ctx,e)}}return r&&r.afterTrigger&&r.afterTrigger(t),this},t.prototype.triggerWithContext=function(t){if(!this._$handlers)return this;var e=this._$handlers[t],n=this._$eventProcessor;if(e)for(var i=arguments,r=i.length,a=i[r-1],o=e.length,s=0;s<o;s++){var l=e[s];if(!n||!n.filter||null==l.query||n.filter(t,l.query))switch(r){case 0:l.h.call(a);break;case 1:l.h.call(a,i[0]);break;case 2:l.h.call(a,i[0],i[1]);break;default:l.h.apply(a,i.slice(1,r-1))}}return n&&n.afterTrigger&&n.afterTrigger(t),this},t}(),Nt=Math.log(2);function Et(t,e,n,i,r,a){var o=i+"-"+r,s=t.length;if(a.hasOwnProperty(o))return a[o];if(1===e){var l=Math.round(Math.log((1<<s)-1&~r)/Nt);return t[n][l]}for(var u=i|1<<n,h=n+1;i&1<<h;)h++;for(var c=0,p=0,f=0;p<s;p++){var d=1<<p;d&r||(c+=(f%2?-1:1)*t[n][p]*Et(t,e-1,h,u,r|d,a),f++)}return a[o]=c,c}function Bt(t,e){var n=[[t[0],t[1],1,0,0,0,-e[0]*t[0],-e[0]*t[1]],[0,0,0,t[0],t[1],1,-e[1]*t[0],-e[1]*t[1]],[t[2],t[3],1,0,0,0,-e[2]*t[2],-e[2]*t[3]],[0,0,0,t[2],t[3],1,-e[3]*t[2],-e[3]*t[3]],[t[4],t[5],1,0,0,0,-e[4]*t[4],-e[4]*t[5]],[0,0,0,t[4],t[5],1,-e[5]*t[4],-e[5]*t[5]],[t[6],t[7],1,0,0,0,-e[6]*t[6],-e[6]*t[7]],[0,0,0,t[6],t[7],1,-e[7]*t[6],-e[7]*t[7]]],i={},r=Et(n,8,0,0,0,i);if(0!==r){for(var a=[],o=0;o<8;o++)for(var s=0;s<8;s++)null==a[s]&&(a[s]=0),a[s]+=((o+s)%2?-1:1)*Et(n,7,0===o?1:0,1<<o,1<<s,i)/r*e[o];return function(t,e,n){var i=e*a[6]+n*a[7]+1;t[0]=(e*a[0]+n*a[1]+a[2])/i,t[1]=(e*a[3]+n*a[4]+a[5])/i}}}function zt(t,e,n,i,r){if(e.getBoundingClientRect&&o.domSupported&&!Ft(e)){var a=e.___zrEVENTSAVED||(e.___zrEVENTSAVED={}),s=function(t,e,n){for(var i=n?"invTrans":"trans",r=e[i],a=e.srcCoords,o=[],s=[],l=!0,u=0;u<4;u++){var h=t[u].getBoundingClientRect(),c=2*u,p=h.left,f=h.top;o.push(p,f),l=l&&a&&p===a[c]&&f===a[c+1],s.push(t[u].offsetLeft,t[u].offsetTop)}return l&&r?r:(e.srcCoords=o,e[i]=n?Bt(s,o):Bt(o,s))}(function(t,e){var n=e.markers;if(n)return n;n=e.markers=[];for(var i=["left","right"],r=["top","bottom"],a=0;a<4;a++){var o=document.createElement("div"),s=a%2,l=(a>>1)%2;o.style.cssText=["position: absolute","visibility: hidden","padding: 0","margin: 0","border-width: 0","user-select: none","width:0","height:0",i[s]+":0",r[l]+":0",i[1-s]+":auto",r[1-l]+":auto",""].join("!important;"),t.appendChild(o),n.push(o)}return n}(e,a),a,r);if(s)return s(t,n,i),!0}return!1}function Ft(t){return"CANVAS"===t.nodeName.toUpperCase()}var Vt="undefined"!=typeof window&&!!window.addEventListener,Ht=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Wt=[];function Gt(t,e,n,i){return n=n||{},i||!o.canvasSupported?Ut(t,e,n):o.browser.firefox&&null!=e.layerX&&e.layerX!==e.offsetX?(n.zrX=e.layerX,n.zrY=e.layerY):null!=e.offsetX?(n.zrX=e.offsetX,n.zrY=e.offsetY):Ut(t,e,n),n}function Ut(t,e,n){if(o.domSupported&&t.getBoundingClientRect){var i=e.clientX,r=e.clientY;if(Ft(t)){var a=t.getBoundingClientRect();return n.zrX=i-a.left,void(n.zrY=r-a.top)}if(zt(Wt,t,i,r))return n.zrX=Wt[0],void(n.zrY=Wt[1])}n.zrX=n.zrY=0}function Yt(t){return t||window.event}function Xt(t,e,n){if(null!=(e=Yt(e)).zrX)return e;var i=e.type;if(i&&i.indexOf("touch")>=0){var r="touchend"!==i?e.targetTouches[0]:e.changedTouches[0];r&&Gt(t,r,e,n)}else{Gt(t,e,e,n);var a=function(t){var e=t.wheelDelta;if(e)return e;var n=t.deltaX,i=t.deltaY;if(null==n||null==i)return e;return 3*(0!==i?Math.abs(i):Math.abs(n))*(i>0?-1:i<0?1:n>0?-1:1)}(e);e.zrDelta=a?a/120:-(e.detail||0)/3}var o=e.button;return null==e.which&&void 0!==o&&Ht.test(e.type)&&(e.which=1&o?1:2&o?3:4&o?2:0),e}var qt=Vt?function(t){t.preventDefault(),t.stopPropagation(),t.cancelBubble=!0}:function(t){t.returnValue=!1,t.cancelBubble=!0},jt=function(){function t(){this._track=[]}return t.prototype.recognize=function(t,e,n){return this._doTrack(t,e,n),this._recognize(t)},t.prototype.clear=function(){return this._track.length=0,this},t.prototype._doTrack=function(t,e,n){var i=t.touches;if(i){for(var r={points:[],touches:[],target:e,event:t},a=0,o=i.length;a<o;a++){var s=i[a],l=Gt(n,s,{});r.points.push([l.zrX,l.zrY]),r.touches.push(s)}this._track.push(r)}},t.prototype._recognize=function(t){for(var e in Kt)if(Kt.hasOwnProperty(e)){var n=Kt[e](this._track,t);if(n)return n}},t}();function Zt(t){var e=t[1][0]-t[0][0],n=t[1][1]-t[0][1];return Math.sqrt(e*e+n*n)}var Kt={pinch:function(t,e){var n=t.length;if(n){var i,r=(t[n-1]||{}).points,a=(t[n-2]||{}).points||r;if(a&&a.length>1&&r&&r.length>1){var o=Zt(r)/Zt(a);!isFinite(o)&&(o=1),e.pinchScale=o;var s=[((i=r)[0][0]+i[1][0])/2,(i[0][1]+i[1][1])/2];return e.pinchX=s[0],e.pinchY=s[1],{type:"pinch",target:t[0].target,event:e}}}}},$t="silent";function Qt(){qt(this.event)}var Jt=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.handler=null,e}return n(e,t),e.prototype.dispose=function(){},e.prototype.setCursor=function(){},e}(Rt),te=function(t,e){this.x=t,this.y=e},ee=["click","dblclick","mousewheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],ne=function(t){function e(e,n,i,r){var a=t.call(this)||this;return a._hovered=new te(0,0),a.storage=e,a.painter=n,a.painterRoot=r,i=i||new Jt,a.proxy=null,a.setHandlerProxy(i),a._draggingMgr=new Ot(a),a}return n(e,t),e.prototype.setHandlerProxy=function(t){this.proxy&&this.proxy.dispose(),t&&(L(ee,(function(e){t.on&&t.on(e,this[e],this)}),this),t.handler=this),this.proxy=t},e.prototype.mousemove=function(t){var e=t.zrX,n=t.zrY,i=re(this,e,n),r=this._hovered,a=r.target;a&&!a.__zr&&(a=(r=this.findHover(r.x,r.y)).target);var o=this._hovered=i?new te(e,n):this.findHover(e,n),s=o.target,l=this.proxy;l.setCursor&&l.setCursor(s?s.cursor:"default"),a&&s!==a&&this.dispatchToElement(r,"mouseout",t),this.dispatchToElement(o,"mousemove",t),s&&s!==a&&this.dispatchToElement(o,"mouseover",t)},e.prototype.mouseout=function(t){var e=t.zrEventControl;"only_globalout"!==e&&this.dispatchToElement(this._hovered,"mouseout",t),"no_globalout"!==e&&this.trigger("globalout",{type:"globalout",event:t})},e.prototype.resize=function(){this._hovered=new te(0,0)},e.prototype.dispatch=function(t,e){var n=this[t];n&&n.call(this,e)},e.prototype.dispose=function(){this.proxy.dispose(),this.storage=null,this.proxy=null,this.painter=null},e.prototype.setCursorStyle=function(t){var e=this.proxy;e.setCursor&&e.setCursor(t)},e.prototype.dispatchToElement=function(t,e,n){var i=(t=t||{}).target;if(!i||!i.silent){for(var r="on"+e,a=function(t,e,n){return{type:t,event:n,target:e.target,topTarget:e.topTarget,cancelBubble:!1,offsetX:n.zrX,offsetY:n.zrY,gestureEvent:n.gestureEvent,pinchX:n.pinchX,pinchY:n.pinchY,pinchScale:n.pinchScale,wheelDelta:n.zrDelta,zrByTouch:n.zrByTouch,which:n.which,stop:Qt}}(e,t,n);i&&(i[r]&&(a.cancelBubble=!!i[r].call(i,a)),i.trigger(e,a),i=i.__hostTarget?i.__hostTarget:i.parent,!a.cancelBubble););a.cancelBubble||(this.trigger(e,a),this.painter&&this.painter.eachOtherLayer&&this.painter.eachOtherLayer((function(t){"function"==typeof t[r]&&t[r].call(t,a),t.trigger&&t.trigger(e,a)})))}},e.prototype.findHover=function(t,e,n){for(var i=this.storage.getDisplayList(),r=new te(t,e),a=i.length-1;a>=0;a--){var o=void 0;if(i[a]!==n&&!i[a].ignore&&(o=ie(i[a],t,e))&&(!r.topTarget&&(r.topTarget=i[a]),o!==$t)){r.target=i[a];break}}return r},e.prototype.processGesture=function(t,e){this._gestureMgr||(this._gestureMgr=new jt);var n=this._gestureMgr;"start"===e&&n.clear();var i=n.recognize(t,this.findHover(t.zrX,t.zrY,null).target,this.proxy.dom);if("end"===e&&n.clear(),i){var r=i.type;t.gestureEvent=r;var a=new te;a.target=i.target,this.dispatchToElement(a,r,i.event)}},e}(Rt);function ie(t,e,n){if(t[t.rectHover?"rectContain":"contain"](e,n)){for(var i=t,r=void 0,a=!1;i;){if(i.ignoreClip&&(a=!0),!a){var o=i.getClipPath();if(o&&!o.contain(e,n))return!1;i.silent&&(r=!0)}var s=i.__hostTarget;i=s||i.parent}return!r||$t}return!1}function re(t,e,n){var i=t.painter;return e<0||e>i.getWidth()||n<0||n>i.getHeight()}function ae(){return[1,0,0,1,0,0]}function oe(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t}function se(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t}function le(t,e,n){var i=e[0]*n[0]+e[2]*n[1],r=e[1]*n[0]+e[3]*n[1],a=e[0]*n[2]+e[2]*n[3],o=e[1]*n[2]+e[3]*n[3],s=e[0]*n[4]+e[2]*n[5]+e[4],l=e[1]*n[4]+e[3]*n[5]+e[5];return t[0]=i,t[1]=r,t[2]=a,t[3]=o,t[4]=s,t[5]=l,t}function ue(t,e,n){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4]+n[0],t[5]=e[5]+n[1],t}function he(t,e,n){var i=e[0],r=e[2],a=e[4],o=e[1],s=e[3],l=e[5],u=Math.sin(n),h=Math.cos(n);return t[0]=i*h+o*u,t[1]=-i*u+o*h,t[2]=r*h+s*u,t[3]=-r*u+h*s,t[4]=h*a+u*l,t[5]=h*l-u*a,t}function ce(t,e,n){var i=n[0],r=n[1];return t[0]=e[0]*i,t[1]=e[1]*r,t[2]=e[2]*i,t[3]=e[3]*r,t[4]=e[4]*i,t[5]=e[5]*r,t}function pe(t,e){var n=e[0],i=e[2],r=e[4],a=e[1],o=e[3],s=e[5],l=n*o-a*i;return l?(l=1/l,t[0]=o*l,t[1]=-a*l,t[2]=-i*l,t[3]=n*l,t[4]=(i*s-o*r)*l,t[5]=(a*r-n*s)*l,t):null}L(["click","mousedown","mouseup","mousewheel","dblclick","contextmenu"],(function(t){ne.prototype[t]=function(e){var n,i,r=e.zrX,a=e.zrY,o=re(this,r,a);if("mouseup"===t&&o||(i=(n=this.findHover(r,a)).target),"mousedown"===t)this._downEl=i,this._downPoint=[e.zrX,e.zrY],this._upEl=i;else if("mouseup"===t)this._upEl=i;else if("click"===t){if(this._downEl!==this._upEl||!this._downPoint||Mt(this._downPoint,[e.zrX,e.zrY])>4)return;this._downPoint=null}this.dispatchToElement(n,t,e)}}));var fe=Object.freeze({__proto__:null,create:ae,identity:oe,copy:se,mul:le,translate:ue,rotate:he,scale:ce,invert:pe,clone:function(t){var e=[1,0,0,1,0,0];return se(e,t),e}}),de=oe,ge=5e-5;function ye(t){return t>ge||t<-5e-5}var ve=[],me=[],_e=[1,0,0,1,0,0],xe=Math.abs,be=function(){function t(){}return t.prototype.setPosition=function(t){this.x=t[0],this.y=t[1]},t.prototype.setScale=function(t){this.scaleX=t[0],this.scaleY=t[1]},t.prototype.setOrigin=function(t){this.originX=t[0],this.originY=t[1]},t.prototype.needLocalTransform=function(){return ye(this.rotation)||ye(this.x)||ye(this.y)||ye(this.scaleX-1)||ye(this.scaleY-1)},t.prototype.updateTransform=function(){var t=this.parent,e=t&&t.transform,n=this.needLocalTransform(),i=this.transform;n||e?(i=i||[1,0,0,1,0,0],n?this.getLocalTransform(i):de(i),e&&(n?le(i,t.transform,i):se(i,t.transform)),this.transform=i,this._resolveGlobalScaleRatio(i)):i&&de(i)},t.prototype._resolveGlobalScaleRatio=function(t){var e=this.globalScaleRatio;if(null!=e&&1!==e){this.getGlobalScale(ve);var n=ve[0]<0?-1:1,i=ve[1]<0?-1:1,r=((ve[0]-n)*e+n)/ve[0]||0,a=((ve[1]-i)*e+i)/ve[1]||0;t[0]*=r,t[1]*=r,t[2]*=a,t[3]*=a}this.invTransform=this.invTransform||[1,0,0,1,0,0],pe(this.invTransform,t)},t.prototype.getLocalTransform=function(e){return t.getLocalTransform(this,e)},t.prototype.getComputedTransform=function(){for(var t=this,e=[];t;)e.push(t),t=t.parent;for(;t=e.pop();)t.updateTransform();return this.transform},t.prototype.setLocalTransform=function(t){if(t){var e=t[0]*t[0]+t[1]*t[1],n=t[2]*t[2]+t[3]*t[3];ye(e-1)&&(e=Math.sqrt(e)),ye(n-1)&&(n=Math.sqrt(n)),t[0]<0&&(e=-e),t[3]<0&&(n=-n),this.rotation=Math.atan2(-t[1]/n,t[0]/e),e<0&&n<0&&(this.rotation+=Math.PI,e=-e,n=-n),this.x=t[4],this.y=t[5],this.scaleX=e,this.scaleY=n}},t.prototype.decomposeTransform=function(){if(this.transform){var t=this.parent,e=this.transform;t&&t.transform&&(le(me,t.invTransform,e),e=me);var n=this.originX,i=this.originY;(n||i)&&(_e[4]=n,_e[5]=i,le(me,e,_e),me[4]-=n,me[5]-=i,e=me),this.setLocalTransform(e)}},t.prototype.getGlobalScale=function(t){var e=this.transform;return t=t||[],e?(t[0]=Math.sqrt(e[0]*e[0]+e[1]*e[1]),t[1]=Math.sqrt(e[2]*e[2]+e[3]*e[3]),e[0]<0&&(t[0]=-t[0]),e[3]<0&&(t[1]=-t[1]),t):(t[0]=1,t[1]=1,t)},t.prototype.transformCoordToLocal=function(t,e){var n=[t,e],i=this.invTransform;return i&&It(n,n,i),n},t.prototype.transformCoordToGlobal=function(t,e){var n=[t,e],i=this.transform;return i&&It(n,n,i),n},t.prototype.getLineScale=function(){var t=this.transform;return t&&xe(t[0]-1)>1e-10&&xe(t[3]-1)>1e-10?Math.sqrt(xe(t[0]*t[3]-t[2]*t[1])):1},t.getLocalTransform=function(t,e){de(e=e||[]);var n=t.originX||0,i=t.originY||0,r=t.scaleX,a=t.scaleY,o=t.rotation||0,s=t.x,l=t.y;return e[4]-=n,e[5]-=i,e[0]*=r,e[1]*=a,e[2]*=r,e[3]*=a,e[4]*=r,e[5]*=a,o&&he(e,e,o),e[4]+=n,e[5]+=i,e[4]+=s,e[5]+=l,e},t.initDefaultProps=function(){var e=t.prototype;e.x=0,e.y=0,e.scaleX=1,e.scaleY=1,e.originX=0,e.originY=0,e.rotation=0,e.globalScaleRatio=1}(),t}(),we={linear:function(t){return t},quadraticIn:function(t){return t*t},quadraticOut:function(t){return t*(2-t)},quadraticInOut:function(t){return(t*=2)<1?.5*t*t:-.5*(--t*(t-2)-1)},cubicIn:function(t){return t*t*t},cubicOut:function(t){return--t*t*t+1},cubicInOut:function(t){return(t*=2)<1?.5*t*t*t:.5*((t-=2)*t*t+2)},quarticIn:function(t){return t*t*t*t},quarticOut:function(t){return 1- --t*t*t*t},quarticInOut:function(t){return(t*=2)<1?.5*t*t*t*t:-.5*((t-=2)*t*t*t-2)},quinticIn:function(t){return t*t*t*t*t},quinticOut:function(t){return--t*t*t*t*t+1},quinticInOut:function(t){return(t*=2)<1?.5*t*t*t*t*t:.5*((t-=2)*t*t*t*t+2)},sinusoidalIn:function(t){return 1-Math.cos(t*Math.PI/2)},sinusoidalOut:function(t){return Math.sin(t*Math.PI/2)},sinusoidalInOut:function(t){return.5*(1-Math.cos(Math.PI*t))},exponentialIn:function(t){return 0===t?0:Math.pow(1024,t-1)},exponentialOut:function(t){return 1===t?1:1-Math.pow(2,-10*t)},exponentialInOut:function(t){return 0===t?0:1===t?1:(t*=2)<1?.5*Math.pow(1024,t-1):.5*(2-Math.pow(2,-10*(t-1)))},circularIn:function(t){return 1-Math.sqrt(1-t*t)},circularOut:function(t){return Math.sqrt(1- --t*t)},circularInOut:function(t){return(t*=2)<1?-.5*(Math.sqrt(1-t*t)-1):.5*(Math.sqrt(1-(t-=2)*t)+1)},elasticIn:function(t){var e,n=.1;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=.4*Math.asin(1/n)/(2*Math.PI),-n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/.4))},elasticOut:function(t){var e,n=.1;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=.4*Math.asin(1/n)/(2*Math.PI),n*Math.pow(2,-10*t)*Math.sin((t-e)*(2*Math.PI)/.4)+1)},elasticInOut:function(t){var e,n=.1,i=.4;return 0===t?0:1===t?1:(!n||n<1?(n=1,e=.1):e=i*Math.asin(1/n)/(2*Math.PI),(t*=2)<1?n*Math.pow(2,10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*-.5:n*Math.pow(2,-10*(t-=1))*Math.sin((t-e)*(2*Math.PI)/i)*.5+1)},backIn:function(t){var e=1.70158;return t*t*((e+1)*t-e)},backOut:function(t){var e=1.70158;return--t*t*((e+1)*t+e)+1},backInOut:function(t){var e=2.5949095;return(t*=2)<1?t*t*((e+1)*t-e)*.5:.5*((t-=2)*t*((e+1)*t+e)+2)},bounceIn:function(t){return 1-we.bounceOut(1-t)},bounceOut:function(t){return t<1/2.75?7.5625*t*t:t<2/2.75?7.5625*(t-=1.5/2.75)*t+.75:t<2.5/2.75?7.5625*(t-=2.25/2.75)*t+.9375:7.5625*(t-=2.625/2.75)*t+.984375},bounceInOut:function(t){return t<.5?.5*we.bounceIn(2*t):.5*we.bounceOut(2*t-1)+.5}},Se=function(){function t(t){this._initialized=!1,this._startTime=0,this._pausedTime=0,this._paused=!1,this._life=t.life||1e3,this._delay=t.delay||0,this.loop=null!=t.loop&&t.loop,this.gap=t.gap||0,this.easing=t.easing||"linear",this.onframe=t.onframe,this.ondestroy=t.ondestroy,this.onrestart=t.onrestart}return t.prototype.step=function(t,e){if(this._initialized||(this._startTime=t+this._delay,this._initialized=!0),!this._paused){var n=(t-this._startTime-this._pausedTime)/this._life;n<0&&(n=0),n=Math.min(n,1);var i=this.easing,r="string"==typeof i?we[i]:i,a="function"==typeof r?r(n):n;if(this.onframe&&this.onframe(a),1===n){if(!this.loop)return!0;this._restart(t),this.onrestart&&this.onrestart()}return!1}this._pausedTime+=e},t.prototype._restart=function(t){var e=(t-this._startTime-this._pausedTime)%this._life;this._startTime=t-e+this.gap,this._pausedTime=0},t.prototype.pause=function(){this._paused=!0},t.prototype.resume=function(){this._paused=!1},t}(),Me=function(t){this.value=t},Te=function(){function t(){this._len=0}return t.prototype.insert=function(t){var e=new Me(t);return this.insertEntry(e),e},t.prototype.insertEntry=function(t){this.head?(this.tail.next=t,t.prev=this.tail,t.next=null,this.tail=t):this.head=this.tail=t,this._len++},t.prototype.remove=function(t){var e=t.prev,n=t.next;e?e.next=n:this.head=n,n?n.prev=e:this.tail=e,t.next=t.prev=null,this._len--},t.prototype.len=function(){return this._len},t.prototype.clear=function(){this.head=this.tail=null,this._len=0},t}(),Ce=function(){function t(t){this._list=new Te,this._maxSize=10,this._map={},this._maxSize=t}return t.prototype.put=function(t,e){var n=this._list,i=this._map,r=null;if(null==i[t]){var a=n.len(),o=this._lastRemovedEntry;if(a>=this._maxSize&&a>0){var s=n.head;n.remove(s),delete i[s.key],r=s.value,this._lastRemovedEntry=s}o?o.value=e:o=new Me(e),o.key=t,n.insertEntry(o),i[t]=o}return r},t.prototype.get=function(t){var e=this._map[t],n=this._list;if(null!=e)return e!==n.tail&&(n.remove(e),n.insertEntry(e)),e.value},t.prototype.clear=function(){this._list.clear(),this._map={}},t.prototype.len=function(){return this._list.len()},t}(),De={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function Ie(t){return(t=Math.round(t))<0?0:t>255?255:t}function Ae(t){return t<0?0:t>1?1:t}function ke(t){var e=t;return e.length&&"%"===e.charAt(e.length-1)?Ie(parseFloat(e)/100*255):Ie(parseInt(e,10))}function Le(t){var e=t;return e.length&&"%"===e.charAt(e.length-1)?Ae(parseFloat(e)/100):Ae(parseFloat(e))}function Pe(t,e,n){return n<0?n+=1:n>1&&(n-=1),6*n<1?t+(e-t)*n*6:2*n<1?e:3*n<2?t+(e-t)*(2/3-n)*6:t}function Oe(t,e,n){return t+(e-t)*n}function Re(t,e,n,i,r){return t[0]=e,t[1]=n,t[2]=i,t[3]=r,t}function Ne(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}var Ee=new Ce(20),Be=null;function ze(t,e){Be&&Ne(Be,e),Be=Ee.put(t,Be||e.slice())}function Fe(t,e){if(t){e=e||[];var n=Ee.get(t);if(n)return Ne(e,n);var i=(t+="").replace(/ /g,"").toLowerCase();if(i in De)return Ne(e,De[i]),ze(t,e),e;var r,a=i.length;if("#"===i.charAt(0))return 4===a||5===a?(r=parseInt(i.slice(1,4),16))>=0&&r<=4095?(Re(e,(3840&r)>>4|(3840&r)>>8,240&r|(240&r)>>4,15&r|(15&r)<<4,5===a?parseInt(i.slice(4),16)/15:1),ze(t,e),e):void Re(e,0,0,0,1):7===a||9===a?(r=parseInt(i.slice(1,7),16))>=0&&r<=16777215?(Re(e,(16711680&r)>>16,(65280&r)>>8,255&r,9===a?parseInt(i.slice(7),16)/255:1),ze(t,e),e):void Re(e,0,0,0,1):void 0;var o=i.indexOf("("),s=i.indexOf(")");if(-1!==o&&s+1===a){var l=i.substr(0,o),u=i.substr(o+1,s-(o+1)).split(","),h=1;switch(l){case"rgba":if(4!==u.length)return 3===u.length?Re(e,+u[0],+u[1],+u[2],1):Re(e,0,0,0,1);h=Le(u.pop());case"rgb":return 3!==u.length?void Re(e,0,0,0,1):(Re(e,ke(u[0]),ke(u[1]),ke(u[2]),h),ze(t,e),e);case"hsla":return 4!==u.length?void Re(e,0,0,0,1):(u[3]=Le(u[3]),Ve(u,e),ze(t,e),e);case"hsl":return 3!==u.length?void Re(e,0,0,0,1):(Ve(u,e),ze(t,e),e);default:return}}Re(e,0,0,0,1)}}function Ve(t,e){var n=(parseFloat(t[0])%360+360)%360/360,i=Le(t[1]),r=Le(t[2]),a=r<=.5?r*(i+1):r+i-r*i,o=2*r-a;return Re(e=e||[],Ie(255*Pe(o,a,n+1/3)),Ie(255*Pe(o,a,n)),Ie(255*Pe(o,a,n-1/3)),1),4===t.length&&(e[3]=t[3]),e}function He(t,e){var n=Fe(t);if(n){for(var i=0;i<3;i++)n[i]=e<0?n[i]*(1-e)|0:(255-n[i])*e+n[i]|0,n[i]>255?n[i]=255:n[i]<0&&(n[i]=0);return Xe(n,4===n.length?"rgba":"rgb")}}function We(t,e,n){if(e&&e.length&&t>=0&&t<=1){n=n||[];var i=t*(e.length-1),r=Math.floor(i),a=Math.ceil(i),o=e[r],s=e[a],l=i-r;return n[0]=Ie(Oe(o[0],s[0],l)),n[1]=Ie(Oe(o[1],s[1],l)),n[2]=Ie(Oe(o[2],s[2],l)),n[3]=Ae(Oe(o[3],s[3],l)),n}}var Ge=We;function Ue(t,e,n){if(e&&e.length&&t>=0&&t<=1){var i=t*(e.length-1),r=Math.floor(i),a=Math.ceil(i),o=Fe(e[r]),s=Fe(e[a]),l=i-r,u=Xe([Ie(Oe(o[0],s[0],l)),Ie(Oe(o[1],s[1],l)),Ie(Oe(o[2],s[2],l)),Ae(Oe(o[3],s[3],l))],"rgba");return n?{color:u,leftIndex:r,rightIndex:a,value:i}:u}}var Ye=Ue;function Xe(t,e){if(t&&t.length){var n=t[0]+","+t[1]+","+t[2];return"rgba"!==e&&"hsva"!==e&&"hsla"!==e||(n+=","+t[3]),e+"("+n+")"}}function qe(t,e){var n=Fe(t);return n?(.299*n[0]+.587*n[1]+.114*n[2])*n[3]/255+(1-n[3])*e:0}var je=Object.freeze({__proto__:null,parse:Fe,lift:He,toHex:function(t){var e=Fe(t);if(e)return((1<<24)+(e[0]<<16)+(e[1]<<8)+ +e[2]).toString(16).slice(1)},fastLerp:We,fastMapToColor:Ge,lerp:Ue,mapToColor:Ye,modifyHSL:function(t,e,n,i){var r,a=Fe(t);if(t)return a=function(t){if(t){var e,n,i=t[0]/255,r=t[1]/255,a=t[2]/255,o=Math.min(i,r,a),s=Math.max(i,r,a),l=s-o,u=(s+o)/2;if(0===l)e=0,n=0;else{n=u<.5?l/(s+o):l/(2-s-o);var h=((s-i)/6+l/2)/l,c=((s-r)/6+l/2)/l,p=((s-a)/6+l/2)/l;i===s?e=p-c:r===s?e=1/3+h-p:a===s&&(e=2/3+c-h),e<0&&(e+=1),e>1&&(e-=1)}var f=[360*e,n,u];return null!=t[3]&&f.push(t[3]),f}}(a),null!=e&&(a[0]=(r=e,(r=Math.round(r))<0?0:r>360?360:r)),null!=n&&(a[1]=Le(n)),null!=i&&(a[2]=Le(i)),Xe(Ve(a),"rgba")},modifyAlpha:function(t,e){var n=Fe(t);if(n&&null!=e)return n[3]=Ae(e),Xe(n,"rgba")},stringify:Xe,lum:qe,random:function(){return"rgb("+Math.round(255*Math.random())+","+Math.round(255*Math.random())+","+Math.round(255*Math.random())+")"}}),Ze=Array.prototype.slice;function Ke(t,e,n){return(e-t)*n+t}function $e(t,e,n,i){for(var r=e.length,a=0;a<r;a++)t[a]=Ke(e[a],n[a],i)}function Qe(t,e,n,i){for(var r=e.length,a=0;a<r;a++)t[a]=e[a]+n[a]*i;return t}function Je(t,e,n,i){for(var r=e.length,a=r&&e[0].length,o=0;o<r;o++){t[o]||(t[o]=[]);for(var s=0;s<a;s++)t[o][s]=e[o][s]+n[o][s]*i}return t}function tn(t,e,n){var i=t,r=e;if(i.push&&r.push){var a=i.length,o=r.length;if(a!==o)if(a>o)i.length=o;else for(var s=a;s<o;s++)i.push(1===n?r[s]:Ze.call(r[s]));var l=i[0]&&i[0].length;for(s=0;s<i.length;s++)if(1===n)isNaN(i[s])&&(i[s]=r[s]);else for(var u=0;u<l;u++)isNaN(i[s][u])&&(i[s][u]=r[s][u])}}function en(t,e){var n=t.length;if(n!==e.length)return!1;for(var i=0;i<n;i++)if(t[i]!==e[i])return!1;return!0}function nn(t,e,n,i,r,a,o){var s=.5*(n-t),l=.5*(i-e);return(2*(e-n)+s+l)*o+(-3*(e-n)-2*s-l)*a+s*r+e}function rn(t,e,n,i,r,a,o,s){for(var l=e.length,u=0;u<l;u++)t[u]=nn(e[u],n[u],i[u],r[u],a,o,s)}function an(t){if(k(t)){var e=t.length;if(k(t[0])){for(var n=[],i=0;i<e;i++)n.push(Ze.call(t[i]));return n}return Ze.call(t)}return t}function on(t){return t[0]=Math.floor(t[0]),t[1]=Math.floor(t[1]),t[2]=Math.floor(t[2]),"rgba("+t.join(",")+")"}var sn,ln,un=[0,0,0,0],hn=function(){function t(t){this.keyframes=[],this.maxTime=0,this.arrDim=0,this.interpolable=!0,this._needsSort=!1,this._isAllValueEqual=!0,this._lastFrame=0,this._lastFramePercent=0,this.propName=t}return t.prototype.isFinished=function(){return this._finished},t.prototype.setFinished=function(){this._finished=!0,this._additiveTrack&&this._additiveTrack.setFinished()},t.prototype.needsAnimate=function(){return!this._isAllValueEqual&&this.keyframes.length>=2&&this.interpolable},t.prototype.getAdditiveTrack=function(){return this._additiveTrack},t.prototype.addKeyframe=function(t,e){t>=this.maxTime?this.maxTime=t:this._needsSort=!0;var n=this.keyframes,i=n.length;if(this.interpolable)if(k(e)){var r=function(t){return k(t&&t[0])?2:1}(e);if(i>0&&this.arrDim!==r)return void(this.interpolable=!1);if(1===r&&"number"!=typeof e[0]||2===r&&"number"!=typeof e[0][0])return void(this.interpolable=!1);if(i>0){var a=n[i-1];this._isAllValueEqual&&(1===r&&en(e,a.value)||(this._isAllValueEqual=!1))}this.arrDim=r}else{if(this.arrDim>0)return void(this.interpolable=!1);if("string"==typeof e){var o=Fe(e);o?(e=o,this.isValueColor=!0):this.interpolable=!1}else if("number"!=typeof e)return void(this.interpolable=!1);if(this._isAllValueEqual&&i>0){a=n[i-1];(this.isValueColor&&!en(a.value,e)||a.value!==e)&&(this._isAllValueEqual=!1)}}var s={time:t,value:e,percent:0};return this.keyframes.push(s),s},t.prototype.prepare=function(t){var e=this.keyframes;this._needsSort&&e.sort((function(t,e){return t.time-e.time}));for(var n=this.arrDim,i=e.length,r=e[i-1],a=0;a<i;a++)e[a].percent=e[a].time/this.maxTime,n>0&&a!==i-1&&tn(e[a].value,r.value,n);if(t&&this.needsAnimate()&&t.needsAnimate()&&n===t.arrDim&&this.isValueColor===t.isValueColor&&!t._finished){this._additiveTrack=t;var o=e[0].value;for(a=0;a<i;a++)0===n?this.isValueColor?e[a].additiveValue=Qe([],e[a].value,o,-1):e[a].additiveValue=e[a].value-o:1===n?e[a].additiveValue=Qe([],e[a].value,o,-1):2===n&&(e[a].additiveValue=Je([],e[a].value,o,-1))}},t.prototype.step=function(t,e){if(!this._finished){this._additiveTrack&&this._additiveTrack._finished&&(this._additiveTrack=null);var n,i=null!=this._additiveTrack,r=i?"additiveValue":"value",a=this.keyframes,o=this.keyframes.length,s=this.propName,l=this.arrDim,u=this.isValueColor;if(e<0)n=0;else if(e<this._lastFramePercent){for(n=Math.min(this._lastFrame+1,o-1);n>=0&&!(a[n].percent<=e);n--);n=Math.min(n,o-2)}else{for(n=this._lastFrame;n<o&&!(a[n].percent>e);n++);n=Math.min(n-1,o-2)}var h=a[n+1],c=a[n];if(c&&h){this._lastFrame=n,this._lastFramePercent=e;var p=h.percent-c.percent;if(0!==p){var f=(e-c.percent)/p,d=i?this._additiveValue:u?un:t[s];if((l>0||u)&&!d&&(d=this._additiveValue=[]),this.useSpline){var g=a[n][r],y=a[0===n?n:n-1][r],v=a[n>o-2?o-1:n+1][r],m=a[n>o-3?o-1:n+2][r];if(l>0)1===l?rn(d,y,g,v,m,f,f*f,f*f*f):function(t,e,n,i,r,a,o,s){for(var l=e.length,u=e[0].length,h=0;h<l;h++){t[h]||(t[1]=[]);for(var c=0;c<u;c++)t[h][c]=nn(e[h][c],n[h][c],i[h][c],r[h][c],a,o,s)}}(d,y,g,v,m,f,f*f,f*f*f);else if(u)rn(d,y,g,v,m,f,f*f,f*f*f),i||(t[s]=on(d));else{var _=void 0;_=this.interpolable?nn(y,g,v,m,f,f*f,f*f*f):v,i?this._additiveValue=_:t[s]=_}}else if(l>0)1===l?$e(d,c[r],h[r],f):function(t,e,n,i){for(var r=e.length,a=r&&e[0].length,o=0;o<r;o++){t[o]||(t[o]=[]);for(var s=0;s<a;s++)t[o][s]=Ke(e[o][s],n[o][s],i)}}(d,c[r],h[r],f);else if(u)$e(d,c[r],h[r],f),i||(t[s]=on(d));else{_=void 0;_=this.interpolable?Ke(c[r],h[r],f):function(t,e,n){return n>.5?e:t}(c[r],h[r],f),i?this._additiveValue=_:t[s]=_}i&&this._addToTarget(t)}}}},t.prototype._addToTarget=function(t){var e=this.arrDim,n=this.propName,i=this._additiveValue;0===e?this.isValueColor?(Fe(t[n],un),Qe(un,un,i,1),t[n]=on(un)):t[n]=t[n]+i:1===e?Qe(t[n],t[n],i,1):2===e&&Je(t[n],t[n],i,1)},t}(),cn=function(){function t(t,e,n){this._tracks={},this._trackKeys=[],this._delay=0,this._maxTime=0,this._paused=!1,this._started=0,this._clip=null,this._target=t,this._loop=e,e&&n?b("Can' use additive animation on looped animation."):this._additiveAnimators=n}return t.prototype.getTarget=function(){return this._target},t.prototype.changeTarget=function(t){this._target=t},t.prototype.when=function(t,e){return this.whenWithKeys(t,e,N(e))},t.prototype.whenWithKeys=function(t,e,n){for(var i=this._tracks,r=0;r<n.length;r++){var a=n[r],o=i[a];if(!o){o=i[a]=new hn(a);var s=void 0,l=this._getAdditiveTrack(a);if(l){var u=l.keyframes[l.keyframes.length-1];s=u&&u.value,l.isValueColor&&s&&(s=on(s))}else s=this._target[a];if(null==s)continue;0!==t&&o.addKeyframe(0,an(s)),this._trackKeys.push(a)}o.addKeyframe(t,an(e[a]))}return this._maxTime=Math.max(this._maxTime,t),this},t.prototype.pause=function(){this._clip.pause(),this._paused=!0},t.prototype.resume=function(){this._clip.resume(),this._paused=!1},t.prototype.isPaused=function(){return!!this._paused},t.prototype._doneCallback=function(){this._setTracksFinished(),this._clip=null;var t=this._doneList;if(t)for(var e=t.length,n=0;n<e;n++)t[n].call(this)},t.prototype._abortedCallback=function(){this._setTracksFinished();var t=this.animation,e=this._abortedList;if(t&&t.removeClip(this._clip),this._clip=null,e)for(var n=0;n<e.length;n++)e[n].call(this)},t.prototype._setTracksFinished=function(){for(var t=this._tracks,e=this._trackKeys,n=0;n<e.length;n++)t[e[n]].setFinished()},t.prototype._getAdditiveTrack=function(t){var e,n=this._additiveAnimators;if(n)for(var i=0;i<n.length;i++){var r=n[i].getTrack(t);r&&(e=r)}return e},t.prototype.start=function(t,e){if(!(this._started>0)){this._started=1;for(var n=this,i=[],r=0;r<this._trackKeys.length;r++){var a=this._trackKeys[r],o=this._tracks[a],s=this._getAdditiveTrack(a),l=o.keyframes;if(o.prepare(s),o.needsAnimate())i.push(o);else if(!o.interpolable){var u=l[l.length-1];u&&(n._target[o.propName]=u.value)}}if(i.length||e){var h=new Se({life:this._maxTime,loop:this._loop,delay:this._delay,onframe:function(t){n._started=2;var e=n._additiveAnimators;if(e){for(var r=!1,a=0;a<e.length;a++)if(e[a]._clip){r=!0;break}r||(n._additiveAnimators=null)}for(a=0;a<i.length;a++)i[a].step(n._target,t);var o=n._onframeList;if(o)for(a=0;a<o.length;a++)o[a](n._target,t)},ondestroy:function(){n._doneCallback()}});this._clip=h,this.animation&&this.animation.addClip(h),t&&"spline"!==t&&(h.easing=t)}else this._doneCallback();return this}},t.prototype.stop=function(t){if(this._clip){var e=this._clip;t&&e.onframe(1),this._abortedCallback()}},t.prototype.delay=function(t){return this._delay=t,this},t.prototype.during=function(t){return t&&(this._onframeList||(this._onframeList=[]),this._onframeList.push(t)),this},t.prototype.done=function(t){return t&&(this._doneList||(this._doneList=[]),this._doneList.push(t)),this},t.prototype.aborted=function(t){return t&&(this._abortedList||(this._abortedList=[]),this._abortedList.push(t)),this},t.prototype.getClip=function(){return this._clip},t.prototype.getTrack=function(t){return this._tracks[t]},t.prototype.stopTracks=function(t,e){if(!t.length||!this._clip)return!0;for(var n=this._tracks,i=this._trackKeys,r=0;r<t.length;r++){var a=n[t[r]];a&&(e?a.step(this._target,1):1===this._started&&a.step(this._target,0),a.setFinished())}var o=!0;for(r=0;r<i.length;r++)if(!n[i[r]].isFinished()){o=!1;break}return o&&this._abortedCallback(),o},t.prototype.saveFinalToTarget=function(t,e){if(t){e=e||this._trackKeys;for(var n=0;n<e.length;n++){var i=e[n],r=this._tracks[i];if(r&&!r.isFinished()){var a=r.keyframes,o=a[a.length-1];if(o){var s=an(o.value);r.isValueColor&&(s=on(s)),t[i]=s}}}}},t.prototype.__changeFinalValue=function(t,e){e=e||N(t);for(var n=0;n<e.length;n++){var i=e[n],r=this._tracks[i];if(r){var a=r.keyframes;if(a.length>1){var o=a.pop();r.addKeyframe(o.time,t[i]),r.prepare(r.getAdditiveTrack())}}}},t}(),pn=function(){function t(t,e){this.x=t||0,this.y=e||0}return t.prototype.copy=function(t){return this.x=t.x,this.y=t.y,this},t.prototype.clone=function(){return new t(this.x,this.y)},t.prototype.set=function(t,e){return this.x=t,this.y=e,this},t.prototype.equal=function(t){return t.x===this.x&&t.y===this.y},t.prototype.add=function(t){return this.x+=t.x,this.y+=t.y,this},t.prototype.scale=function(t){this.x*=t,this.y*=t},t.prototype.scaleAndAdd=function(t,e){this.x+=t.x*e,this.y+=t.y*e},t.prototype.sub=function(t){return this.x-=t.x,this.y-=t.y,this},t.prototype.dot=function(t){return this.x*t.x+this.y*t.y},t.prototype.len=function(){return Math.sqrt(this.x*this.x+this.y*this.y)},t.prototype.lenSquare=function(){return this.x*this.x+this.y*this.y},t.prototype.normalize=function(){var t=this.len();return this.x/=t,this.y/=t,this},t.prototype.distance=function(t){var e=this.x-t.x,n=this.y-t.y;return Math.sqrt(e*e+n*n)},t.prototype.distanceSquare=function(t){var e=this.x-t.x,n=this.y-t.y;return e*e+n*n},t.prototype.negate=function(){return this.x=-this.x,this.y=-this.y,this},t.prototype.transform=function(t){if(t){var e=this.x,n=this.y;return this.x=t[0]*e+t[2]*n+t[4],this.y=t[1]*e+t[3]*n+t[5],this}},t.prototype.toArray=function(t){return t[0]=this.x,t[1]=this.y,t},t.prototype.fromArray=function(t){this.x=t[0],this.y=t[1]},t.set=function(t,e,n){t.x=e,t.y=n},t.copy=function(t,e){t.x=e.x,t.y=e.y},t.len=function(t){return Math.sqrt(t.x*t.x+t.y*t.y)},t.lenSquare=function(t){return t.x*t.x+t.y*t.y},t.dot=function(t,e){return t.x*e.x+t.y*e.y},t.add=function(t,e,n){t.x=e.x+n.x,t.y=e.y+n.y},t.sub=function(t,e,n){t.x=e.x-n.x,t.y=e.y-n.y},t.scale=function(t,e,n){t.x=e.x*n,t.y=e.y*n},t.scaleAndAdd=function(t,e,n,i){t.x=e.x+n.x*i,t.y=e.y+n.y*i},t.lerp=function(t,e,n,i){var r=1-i;t.x=r*e.x+i*n.x,t.y=r*e.y+i*n.y},t}(),fn=Math.min,dn=Math.max,gn=new pn,yn=new pn,vn=new pn,mn=new pn,_n=new pn,xn=new pn,bn=function(){function t(t,e,n,i){n<0&&isFinite(n)&&(t+=n,n=-n),i<0&&isFinite(i)&&(e+=i,i=-i),this.x=t,this.y=e,this.width=n,this.height=i}return t.prototype.union=function(t){var e=fn(t.x,this.x),n=fn(t.y,this.y);isFinite(this.x)&&isFinite(this.width)?this.width=dn(t.x+t.width,this.x+this.width)-e:this.width=t.width,isFinite(this.y)&&isFinite(this.height)?this.height=dn(t.y+t.height,this.y+this.height)-n:this.height=t.height,this.x=e,this.y=n},t.prototype.applyTransform=function(e){t.applyTransform(this,this,e)},t.prototype.calculateTransform=function(t){var e=this,n=t.width/e.width,i=t.height/e.height,r=[1,0,0,1,0,0];return ue(r,r,[-e.x,-e.y]),ce(r,r,[n,i]),ue(r,r,[t.x,t.y]),r},t.prototype.intersect=function(e,n){if(!e)return!1;e instanceof t||(e=t.create(e));var i=this,r=i.x,a=i.x+i.width,o=i.y,s=i.y+i.height,l=e.x,u=e.x+e.width,h=e.y,c=e.y+e.height,p=!(a<l||u<r||s<h||c<o);if(n){var f=1/0,d=0,g=Math.abs(a-l),y=Math.abs(u-r),v=Math.abs(s-h),m=Math.abs(c-o),_=Math.min(g,y),x=Math.min(v,m);a<l||u<r?_>d&&(d=_,g<y?pn.set(xn,-g,0):pn.set(xn,y,0)):_<f&&(f=_,g<y?pn.set(_n,g,0):pn.set(_n,-y,0)),s<h||c<o?x>d&&(d=x,v<m?pn.set(xn,0,-v):pn.set(xn,0,m)):_<f&&(f=_,v<m?pn.set(_n,0,v):pn.set(_n,0,-m))}return n&&pn.copy(n,p?_n:xn),p},t.prototype.contain=function(t,e){var n=this;return t>=n.x&&t<=n.x+n.width&&e>=n.y&&e<=n.y+n.height},t.prototype.clone=function(){return new t(this.x,this.y,this.width,this.height)},t.prototype.copy=function(e){t.copy(this,e)},t.prototype.plain=function(){return{x:this.x,y:this.y,width:this.width,height:this.height}},t.prototype.isFinite=function(){return isFinite(this.x)&&isFinite(this.y)&&isFinite(this.width)&&isFinite(this.height)},t.prototype.isZero=function(){return 0===this.width||0===this.height},t.create=function(e){return new t(e.x,e.y,e.width,e.height)},t.copy=function(t,e){t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height},t.applyTransform=function(e,n,i){if(i){if(i[1]<1e-5&&i[1]>-1e-5&&i[2]<1e-5&&i[2]>-1e-5){var r=i[0],a=i[3],o=i[4],s=i[5];return e.x=n.x*r+o,e.y=n.y*a+s,e.width=n.width*r,e.height=n.height*a,e.width<0&&(e.x+=e.width,e.width=-e.width),void(e.height<0&&(e.y+=e.height,e.height=-e.height))}gn.x=vn.x=n.x,gn.y=mn.y=n.y,yn.x=mn.x=n.x+n.width,yn.y=vn.y=n.y+n.height,gn.transform(i),mn.transform(i),yn.transform(i),vn.transform(i),e.x=fn(gn.x,yn.x,vn.x,mn.x),e.y=fn(gn.y,yn.y,vn.y,mn.y);var l=dn(gn.x,yn.x,vn.x,mn.x),u=dn(gn.y,yn.y,vn.y,mn.y);e.width=l-e.x,e.height=u-e.y}else e!==n&&t.copy(e,n)},t}(),wn={},Sn="12px sans-serif";var Mn={measureText:function(t,e){return sn||(sn=C().getContext("2d")),ln!==e&&(ln=sn.font=e||Sn),sn.measureText(t)}};function Tn(t,e){var n=wn[e=e||Sn];n||(n=wn[e]=new Ce(500));var i=n.get(t);return null==i&&(i=Mn.measureText(t,e).width,n.put(t,i)),i}function Cn(t,e,n,i){var r=Tn(t,e),a=kn(e),o=In(0,r,n),s=An(0,a,i);return new bn(o,s,r,a)}function Dn(t,e,n,i){var r=((t||"")+"").split("\n");if(1===r.length)return Cn(r[0],e,n,i);for(var a=new bn(0,0,0,0),o=0;o<r.length;o++){var s=Cn(r[o],e,n,i);0===o?a.copy(s):a.union(s)}return a}function In(t,e,n){return"right"===n?t-=e:"center"===n&&(t-=e/2),t}function An(t,e,n){return"middle"===n?t-=e/2:"bottom"===n&&(t-=e),t}function kn(t){return Tn("国",t)}function Ln(t,e){return"string"==typeof t?t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t):t}function Pn(t,e,n){var i=e.position||"inside",r=null!=e.distance?e.distance:5,a=n.height,o=n.width,s=a/2,l=n.x,u=n.y,h="left",c="top";if(i instanceof Array)l+=Ln(i[0],n.width),u+=Ln(i[1],n.height),h=null,c=null;else switch(i){case"left":l-=r,u+=s,h="right",c="middle";break;case"right":l+=r+o,u+=s,c="middle";break;case"top":l+=o/2,u-=r,h="center",c="bottom";break;case"bottom":l+=o/2,u+=a+r,h="center";break;case"inside":l+=o/2,u+=s,h="center",c="middle";break;case"insideLeft":l+=r,u+=s,c="middle";break;case"insideRight":l+=o-r,u+=s,h="right",c="middle";break;case"insideTop":l+=o/2,u+=r,h="center";break;case"insideBottom":l+=o/2,u+=a-r,h="center",c="bottom";break;case"insideTopLeft":l+=r,u+=r;break;case"insideTopRight":l+=o-r,u+=r,h="right";break;case"insideBottomLeft":l+=r,u+=a-r,c="bottom";break;case"insideBottomRight":l+=o-r,u+=a-r,h="right",c="bottom"}return(t=t||{}).x=l,t.y=u,t.align=h,t.verticalAlign=c,t}var On=1;"undefined"!=typeof window&&(On=Math.max(window.devicePixelRatio||window.screen&&window.screen.deviceXDPI/window.screen.logicalXDPI||1,1));var Rn=On,Nn="#333",En="#ccc",Bn="__zr_normal__",zn=["x","y","scaleX","scaleY","originX","originY","rotation","ignore"],Fn={x:!0,y:!0,scaleX:!0,scaleY:!0,originX:!0,originY:!0,rotation:!0,ignore:!1},Vn={},Hn=new bn(0,0,0,0),Wn=function(){function t(t){this.id=x(),this.animators=[],this.currentStates=[],this.states={},this._init(t)}return t.prototype._init=function(t){this.attr(t)},t.prototype.drift=function(t,e,n){switch(this.draggable){case"horizontal":e=0;break;case"vertical":t=0}var i=this.transform;i||(i=this.transform=[1,0,0,1,0,0]),i[4]+=t,i[5]+=e,this.decomposeTransform(),this.markRedraw()},t.prototype.beforeUpdate=function(){},t.prototype.afterUpdate=function(){},t.prototype.update=function(){this.updateTransform(),this.__dirty&&this.updateInnerText()},t.prototype.updateInnerText=function(t){var e=this._textContent;if(e&&(!e.ignore||t)){this.textConfig||(this.textConfig={});var n=this.textConfig,i=n.local,r=e.attachedTransform,a=void 0,o=void 0,s=!1;r.parent=i?this:null;var l=!1;if(r.x=e.x,r.y=e.y,r.originX=e.originX,r.originY=e.originY,r.rotation=e.rotation,r.scaleX=e.scaleX,r.scaleY=e.scaleY,null!=n.position){var u=Hn;n.layoutRect?u.copy(n.layoutRect):u.copy(this.getBoundingRect()),i||u.applyTransform(this.transform),this.calculateTextPosition?this.calculateTextPosition(Vn,n,u):Pn(Vn,n,u),r.x=Vn.x,r.y=Vn.y,a=Vn.align,o=Vn.verticalAlign;var h=n.origin;if(h&&null!=n.rotation){var c=void 0,p=void 0;"center"===h?(c=.5*u.width,p=.5*u.height):(c=Ln(h[0],u.width),p=Ln(h[1],u.height)),l=!0,r.originX=-r.x+c+(i?0:u.x),r.originY=-r.y+p+(i?0:u.y)}}null!=n.rotation&&(r.rotation=n.rotation);var f=n.offset;f&&(r.x+=f[0],r.y+=f[1],l||(r.originX=-f[0],r.originY=-f[1]));var d=null==n.inside?"string"==typeof n.position&&n.position.indexOf("inside")>=0:n.inside,g=this._innerTextDefaultStyle||(this._innerTextDefaultStyle={}),y=void 0,v=void 0,m=void 0;d&&this.canBeInsideText()?(y=n.insideFill,v=n.insideStroke,null!=y&&"auto"!==y||(y=this.getInsideTextFill()),null!=v&&"auto"!==v||(v=this.getInsideTextStroke(y),m=!0)):(y=n.outsideFill,v=n.outsideStroke,null!=y&&"auto"!==y||(y=this.getOutsideFill()),null!=v&&"auto"!==v||(v=this.getOutsideStroke(y),m=!0)),(y=y||"#000")===g.fill&&v===g.stroke&&m===g.autoStroke&&a===g.align&&o===g.verticalAlign||(s=!0,g.fill=y,g.stroke=v,g.autoStroke=m,g.align=a,g.verticalAlign=o,e.setDefaultTextStyle(g)),s&&e.dirtyStyle(),e.markRedraw()}},t.prototype.canBeInsideText=function(){return!0},t.prototype.getInsideTextFill=function(){return"#fff"},t.prototype.getInsideTextStroke=function(t){return"#000"},t.prototype.getOutsideFill=function(){return this.__zr&&this.__zr.isDarkMode()?En:Nn},t.prototype.getOutsideStroke=function(t){var e=this.__zr&&this.__zr.getBackgroundColor(),n="string"==typeof e&&Fe(e);n||(n=[255,255,255,1]);for(var i=n[3],r=this.__zr.isDarkMode(),a=0;a<3;a++)n[a]=n[a]*i+(r?0:255)*(1-i);return n[3]=1,Xe(n,"rgba")},t.prototype.traverse=function(t,e){},t.prototype.attrKV=function(t,e){"textConfig"===t?this.setTextConfig(e):"textContent"===t?this.setTextContent(e):"clipPath"===t?this.setClipPath(e):"extra"===t?(this.extra=this.extra||{},M(this.extra,e)):this[t]=e},t.prototype.hide=function(){this.ignore=!0,this.markRedraw()},t.prototype.show=function(){this.ignore=!1,this.markRedraw()},t.prototype.attr=function(t,e){if("string"==typeof t)this.attrKV(t,e);else if(G(t))for(var n=N(t),i=0;i<n.length;i++){var r=n[i];this.attrKV(r,t[r])}return this.markRedraw(),this},t.prototype.saveCurrentToNormalState=function(t){this._innerSaveToNormal(t);for(var e=this._normalState,n=0;n<this.animators.length;n++){var i=this.animators[n],r=i.__fromStateTransition;if(!r||r===Bn){var a=i.targetName,o=a?e[a]:e;i.saveFinalToTarget(o)}}},t.prototype._innerSaveToNormal=function(t){var e=this._normalState;e||(e=this._normalState={}),t.textConfig&&!e.textConfig&&(e.textConfig=this.textConfig),this._savePrimaryToNormal(t,e,zn)},t.prototype._savePrimaryToNormal=function(t,e,n){for(var i=0;i<n.length;i++){var r=n[i];null==t[r]||r in e||(e[r]=this[r])}},t.prototype.hasState=function(){return this.currentStates.length>0},t.prototype.getState=function(t){return this.states[t]},t.prototype.ensureState=function(t){var e=this.states;return e[t]||(e[t]={}),e[t]},t.prototype.clearStates=function(t){this.useState(Bn,!1,t)},t.prototype.useState=function(e,n,i){var r=e===Bn;if(this.hasState()||!r){var a=this.currentStates,o=this.stateTransition;if(!(D(a,e)>=0)||!n&&1!==a.length){var s;if(this.stateProxy&&!r&&(s=this.stateProxy(e)),s||(s=this.states&&this.states[e]),s||r){r||this.saveCurrentToNormalState(s);var l=!(!s||!s.hoverLayer);return l&&this._toggleHoverLayerFlag(!0),this._applyStateObj(e,s,this._normalState,n,!i&&!this.__inHover&&o&&o.duration>0,o),this._textContent&&this._textContent.useState(e,n),this._textGuide&&this._textGuide.useState(e,n),r?(this.currentStates=[],this._normalState={}):n?this.currentStates.push(e):this.currentStates=[e],this._updateAnimationTargets(),this.markRedraw(),!l&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~t.REDARAW_BIT),s}b("State "+e+" not exists.")}}},t.prototype.useStates=function(e,n){if(e.length){var i=[],r=this.currentStates,a=e.length,o=a===r.length;if(o)for(var s=0;s<a;s++)if(e[s]!==r[s]){o=!1;break}if(o)return;for(s=0;s<a;s++){var l=e[s],u=void 0;this.stateProxy&&(u=this.stateProxy(l,e)),u||(u=this.states[l]),u&&i.push(u)}var h=!(!i[a-1]||!i[a-1].hoverLayer);h&&this._toggleHoverLayerFlag(!0);var c=this._mergeStates(i),p=this.stateTransition;this.saveCurrentToNormalState(c),this._applyStateObj(e.join(","),c,this._normalState,!1,!n&&!this.__inHover&&p&&p.duration>0,p),this._textContent&&this._textContent.useStates(e),this._textGuide&&this._textGuide.useStates(e),this._updateAnimationTargets(),this.currentStates=e.slice(),this.markRedraw(),!h&&this.__inHover&&(this._toggleHoverLayerFlag(!1),this.__dirty&=~t.REDARAW_BIT)}else this.clearStates()},t.prototype._updateAnimationTargets=function(){for(var t=0;t<this.animators.length;t++){var e=this.animators[t];e.targetName&&e.changeTarget(this[e.targetName])}},t.prototype.removeState=function(t){var e=D(this.currentStates,t);if(e>=0){var n=this.currentStates.slice();n.splice(e,1),this.useStates(n)}},t.prototype.replaceState=function(t,e,n){var i=this.currentStates.slice(),r=D(i,t),a=D(i,e)>=0;r>=0?a?i.splice(r,1):i[r]=e:n&&!a&&i.push(e),this.useStates(i)},t.prototype.toggleState=function(t,e){e?this.useState(t,!0):this.removeState(t)},t.prototype._mergeStates=function(t){for(var e,n={},i=0;i<t.length;i++){var r=t[i];M(n,r),r.textConfig&&M(e=e||{},r.textConfig)}return e&&(n.textConfig=e),n},t.prototype._applyStateObj=function(t,e,n,i,r,a){var o=!(e&&i);e&&e.textConfig?(this.textConfig=M({},i?this.textConfig:n.textConfig),M(this.textConfig,e.textConfig)):o&&n.textConfig&&(this.textConfig=n.textConfig);for(var s={},l=!1,u=0;u<zn.length;u++){var h=zn[u],c=r&&Fn[h];e&&null!=e[h]?c?(l=!0,s[h]=e[h]):this[h]=e[h]:o&&null!=n[h]&&(c?(l=!0,s[h]=n[h]):this[h]=n[h])}if(!r)for(u=0;u<this.animators.length;u++){var p=this.animators[u],f=p.targetName;p.__changeFinalValue(f?(e||n)[f]:e||n)}l&&this._transitionState(t,s,a)},t.prototype._attachComponent=function(t){if(t.__zr&&!t.__hostTarget)throw new Error("Text element has been added to zrender.");if(t===this)throw new Error("Recursive component attachment.");var e=this.__zr;e&&t.addSelfToZr(e),t.__zr=e,t.__hostTarget=this},t.prototype._detachComponent=function(t){t.__zr&&t.removeSelfFromZr(t.__zr),t.__zr=null,t.__hostTarget=null},t.prototype.getClipPath=function(){return this._clipPath},t.prototype.setClipPath=function(t){this._clipPath&&this._clipPath!==t&&this.removeClipPath(),this._attachComponent(t),this._clipPath=t,this.markRedraw()},t.prototype.removeClipPath=function(){var t=this._clipPath;t&&(this._detachComponent(t),this._clipPath=null,this.markRedraw())},t.prototype.getTextContent=function(){return this._textContent},t.prototype.setTextContent=function(t){var e=this._textContent;if(e!==t){if(e&&e!==t&&this.removeTextContent(),t.__zr&&!t.__hostTarget)throw new Error("Text element has been added to zrender.");t.attachedTransform=new be,this._attachComponent(t),this._textContent=t,this.markRedraw()}},t.prototype.setTextConfig=function(t){this.textConfig||(this.textConfig={}),M(this.textConfig,t),this.markRedraw()},t.prototype.removeTextContent=function(){var t=this._textContent;t&&(t.attachedTransform=null,this._detachComponent(t),this._textContent=null,this._innerTextDefaultStyle=null,this.markRedraw())},t.prototype.getTextGuideLine=function(){return this._textGuide},t.prototype.setTextGuideLine=function(t){this._textGuide&&this._textGuide!==t&&this.removeTextGuideLine(),this._attachComponent(t),this._textGuide=t,this.markRedraw()},t.prototype.removeTextGuideLine=function(){var t=this._textGuide;t&&(this._detachComponent(t),this._textGuide=null,this.markRedraw())},t.prototype.markRedraw=function(){this.__dirty|=t.REDARAW_BIT;var e=this.__zr;e&&(this.__inHover?e.refreshHover():e.refresh()),this.__hostTarget&&this.__hostTarget.markRedraw()},t.prototype.dirty=function(){this.markRedraw()},t.prototype._toggleHoverLayerFlag=function(t){this.__inHover=t;var e=this._textContent,n=this._textGuide;e&&(e.__inHover=t),n&&(n.__inHover=t)},t.prototype.addSelfToZr=function(t){this.__zr=t;var e=this.animators;if(e)for(var n=0;n<e.length;n++)t.animation.addAnimator(e[n]);this._clipPath&&this._clipPath.addSelfToZr(t),this._textContent&&this._textContent.addSelfToZr(t),this._textGuide&&this._textGuide.addSelfToZr(t)},t.prototype.removeSelfFromZr=function(t){this.__zr=null;var e=this.animators;if(e)for(var n=0;n<e.length;n++)t.animation.removeAnimator(e[n]);this._clipPath&&this._clipPath.removeSelfFromZr(t),this._textContent&&this._textContent.removeSelfFromZr(t),this._textGuide&&this._textGuide.removeSelfFromZr(t)},t.prototype.animate=function(t,e){var n=t?this[t]:this;if(n){var i=new cn(n,e);return this.addAnimator(i,t),i}b('Property "'+t+'" is not existed in element '+this.id)},t.prototype.addAnimator=function(t,e){var n=this.__zr,i=this;t.during((function(){i.updateDuringAnimation(e)})).done((function(){var e=i.animators,n=D(e,t);n>=0&&e.splice(n,1)})),this.animators.push(t),n&&n.animation.addAnimator(t),n&&n.wakeUp()},t.prototype.updateDuringAnimation=function(t){this.markRedraw()},t.prototype.stopAnimation=function(t,e){for(var n=this.animators,i=n.length,r=[],a=0;a<i;a++){var o=n[a];t&&t!==o.scope?r.push(o):o.stop(e)}return this.animators=r,this},t.prototype.animateTo=function(t,e,n){Gn(this,t,e,n)},t.prototype.animateFrom=function(t,e,n){Gn(this,t,e,n,!0)},t.prototype._transitionState=function(t,e,n,i){for(var r=Gn(this,e,n,i),a=0;a<r.length;a++)r[a].__fromStateTransition=t},t.prototype.getBoundingRect=function(){return null},t.prototype.getPaintRect=function(){return null},t.REDARAW_BIT=1,t.initDefaultProps=function(){var e=t.prototype;e.type="element",e.name="",e.ignore=!1,e.silent=!1,e.isGroup=!1,e.draggable=!1,e.dragging=!1,e.ignoreClip=!1,e.__inHover=!1,e.__dirty=t.REDARAW_BIT;var n={};function i(t,e,i){n[t+e+i]||(console.warn("DEPRECATED: '"+t+"' has been deprecated. use '"+e+"', '"+i+"' instead"),n[t+e+i]=!0)}function r(t,n,r,a){function o(t,e){Object.defineProperty(e,0,{get:function(){return t[r]},set:function(e){t[r]=e}}),Object.defineProperty(e,1,{get:function(){return t[a]},set:function(e){t[a]=e}})}Object.defineProperty(e,t,{get:function(){(i(t,r,a),this[n])||o(this,this[n]=[]);return this[n]},set:function(e){i(t,r,a),this[r]=e[0],this[a]=e[1],this[n]=e,o(this,e)}})}Object.defineProperty&&(!o.browser.ie||o.browser.version>8)&&(r("position","_legacyPos","x","y"),r("scale","_legacyScale","scaleX","scaleY"),r("origin","_legacyOrigin","originX","originY"))}(),t}();function Gn(t,e,n,i,r){var a=[];Xn(t,"",t,e,n=n||{},i,a,r);var o=a.length,s=!1,l=n.done,u=n.aborted,h=function(){s=!0,--o<=0&&(s?l&&l():u&&u())},c=function(){--o<=0&&(s?l&&l():u&&u())};o||l&&l(),a.length>0&&n.during&&a[0].during((function(t,e){n.during(e)}));for(var p=0;p<a.length;p++){var f=a[p];h&&f.done(h),c&&f.aborted(c),f.start(n.easing,n.force)}return a}function Un(t,e,n){for(var i=0;i<n;i++)t[i]=e[i]}function Yn(t,e,n){if(k(e[n]))if(k(t[n])||(t[n]=[]),Y(e[n])){var i=e[n].length;t[n].length!==i&&(t[n]=new e[n].constructor(i),Un(t[n],e[n],i))}else{var r=e[n],a=t[n],o=r.length;if(k(r[0]))for(var s=r[0].length,l=0;l<o;l++)a[l]?Un(a[l],r[l],s):a[l]=Array.prototype.slice.call(r[l]);else Un(a,r,o);a.length=r.length}else t[n]=e[n]}function Xn(t,e,n,i,r,a,o,s){for(var l=[],u=[],h=N(i),c=r.duration,p=r.delay,f=r.additive,d=r.setToFinal,g=!G(a),y=0;y<h.length;y++){if(null!=n[T=h[y]]&&null!=i[T]&&(g||a[T]))if(G(i[T])&&!k(i[T])){if(e){s||(n[T]=i[T],t.updateDuringAnimation(e));continue}Xn(t,T,n[T],i[T],r,a&&a[T],o,s)}else l.push(T),u.push(T);else s||(n[T]=i[T],t.updateDuringAnimation(e),u.push(T))}var v=l.length;if(v>0||r.force&&!o.length){for(var m=t.animators,_=[],x=0;x<m.length;x++)m[x].targetName===e&&_.push(m[x]);if(!f&&_.length)for(x=0;x<_.length;x++){if(_[x].stopTracks(u)){var b=D(m,_[x]);m.splice(b,1)}}var w=void 0,S=void 0,M=void 0;if(s){S={},d&&(w={});for(x=0;x<v;x++){S[T=l[x]]=n[T],d?w[T]=i[T]:n[T]=i[T]}}else if(d){M={};for(x=0;x<v;x++){var T;M[T=l[x]]=an(n[T]),Yn(n,i,T)}}var C=new cn(n,!1,f?_:null);C.targetName=e,r.scope&&(C.scope=r.scope),d&&w&&C.whenWithKeys(0,w,l),M&&C.whenWithKeys(0,M,l),C.whenWithKeys(null==c?500:c,s?S:i,l).delay(p||0),t.addAnimator(C,e),o.push(C)}}A(Wn,Rt),A(Wn,be);function qn(t,e,n,i){var r=e+1;if(r===n)return 1;if(i(t[r++],t[e])<0){for(;r<n&&i(t[r],t[r-1])<0;)r++;!function(t,e,n){n--;for(;e<n;){var i=t[e];t[e++]=t[n],t[n--]=i}}(t,e,r)}else for(;r<n&&i(t[r],t[r-1])>=0;)r++;return r-e}function jn(t,e,n,i,r){for(i===e&&i++;i<n;i++){for(var a,o=t[i],s=e,l=i;s<l;)r(o,t[a=s+l>>>1])<0?l=a:s=a+1;var u=i-s;switch(u){case 3:t[s+3]=t[s+2];case 2:t[s+2]=t[s+1];case 1:t[s+1]=t[s];break;default:for(;u>0;)t[s+u]=t[s+u-1],u--}t[s]=o}}function Zn(t,e,n,i,r,a){var o=0,s=0,l=1;if(a(t,e[n+r])>0){for(s=i-r;l<s&&a(t,e[n+r+l])>0;)o=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),o+=r,l+=r}else{for(s=r+1;l<s&&a(t,e[n+r-l])<=0;)o=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s);var u=o;o=r-l,l=r-u}for(o++;o<l;){var h=o+(l-o>>>1);a(t,e[n+h])>0?o=h+1:l=h}return l}function Kn(t,e,n,i,r,a){var o=0,s=0,l=1;if(a(t,e[n+r])<0){for(s=r+1;l<s&&a(t,e[n+r-l])<0;)o=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s);var u=o;o=r-l,l=r-u}else{for(s=i-r;l<s&&a(t,e[n+r+l])>=0;)o=l,(l=1+(l<<1))<=0&&(l=s);l>s&&(l=s),o+=r,l+=r}for(o++;o<l;){var h=o+(l-o>>>1);a(t,e[n+h])<0?l=h:o=h+1}return l}function $n(t,e){var n,i,r=7,a=0;t.length;var o=[];function s(s){var l=n[s],u=i[s],h=n[s+1],c=i[s+1];i[s]=u+c,s===a-3&&(n[s+1]=n[s+2],i[s+1]=i[s+2]),a--;var p=Kn(t[h],t,l,u,0,e);l+=p,0!==(u-=p)&&0!==(c=Zn(t[l+u-1],t,h,c,c-1,e))&&(u<=c?function(n,i,a,s){var l=0;for(l=0;l<i;l++)o[l]=t[n+l];var u=0,h=a,c=n;if(t[c++]=t[h++],0==--s){for(l=0;l<i;l++)t[c+l]=o[u+l];return}if(1===i){for(l=0;l<s;l++)t[c+l]=t[h+l];return void(t[c+s]=o[u])}var p,f,d,g=r;for(;;){p=0,f=0,d=!1;do{if(e(t[h],o[u])<0){if(t[c++]=t[h++],f++,p=0,0==--s){d=!0;break}}else if(t[c++]=o[u++],p++,f=0,1==--i){d=!0;break}}while((p|f)<g);if(d)break;do{if(0!==(p=Kn(t[h],o,u,i,0,e))){for(l=0;l<p;l++)t[c+l]=o[u+l];if(c+=p,u+=p,(i-=p)<=1){d=!0;break}}if(t[c++]=t[h++],0==--s){d=!0;break}if(0!==(f=Zn(o[u],t,h,s,0,e))){for(l=0;l<f;l++)t[c+l]=t[h+l];if(c+=f,h+=f,0===(s-=f)){d=!0;break}}if(t[c++]=o[u++],1==--i){d=!0;break}g--}while(p>=7||f>=7);if(d)break;g<0&&(g=0),g+=2}if((r=g)<1&&(r=1),1===i){for(l=0;l<s;l++)t[c+l]=t[h+l];t[c+s]=o[u]}else{if(0===i)throw new Error;for(l=0;l<i;l++)t[c+l]=o[u+l]}}(l,u,h,c):function(n,i,a,s){var l=0;for(l=0;l<s;l++)o[l]=t[a+l];var u=n+i-1,h=s-1,c=a+s-1,p=0,f=0;if(t[c--]=t[u--],0==--i){for(p=c-(s-1),l=0;l<s;l++)t[p+l]=o[l];return}if(1===s){for(f=(c-=i)+1,p=(u-=i)+1,l=i-1;l>=0;l--)t[f+l]=t[p+l];return void(t[c]=o[h])}var d=r;for(;;){var g=0,y=0,v=!1;do{if(e(o[h],t[u])<0){if(t[c--]=t[u--],g++,y=0,0==--i){v=!0;break}}else if(t[c--]=o[h--],y++,g=0,1==--s){v=!0;break}}while((g|y)<d);if(v)break;do{if(0!==(g=i-Kn(o[h],t,n,i,i-1,e))){for(i-=g,f=(c-=g)+1,p=(u-=g)+1,l=g-1;l>=0;l--)t[f+l]=t[p+l];if(0===i){v=!0;break}}if(t[c--]=o[h--],1==--s){v=!0;break}if(0!==(y=s-Zn(t[u],o,0,s,s-1,e))){for(s-=y,f=(c-=y)+1,p=(h-=y)+1,l=0;l<y;l++)t[f+l]=o[p+l];if(s<=1){v=!0;break}}if(t[c--]=t[u--],0==--i){v=!0;break}d--}while(g>=7||y>=7);if(v)break;d<0&&(d=0),d+=2}(r=d)<1&&(r=1);if(1===s){for(f=(c-=i)+1,p=(u-=i)+1,l=i-1;l>=0;l--)t[f+l]=t[p+l];t[c]=o[h]}else{if(0===s)throw new Error;for(p=c-(s-1),l=0;l<s;l++)t[p+l]=o[l]}}(l,u,h,c))}return n=[],i=[],{mergeRuns:function(){for(;a>1;){var t=a-2;if(t>=1&&i[t-1]<=i[t]+i[t+1]||t>=2&&i[t-2]<=i[t]+i[t-1])i[t-1]<i[t+1]&&t--;else if(i[t]>i[t+1])break;s(t)}},forceMergeRuns:function(){for(;a>1;){var t=a-2;t>0&&i[t-1]<i[t+1]&&t--,s(t)}},pushRun:function(t,e){n[a]=t,i[a]=e,a+=1}}}function Qn(t,e,n,i){n||(n=0),i||(i=t.length);var r=i-n;if(!(r<2)){var a=0;if(r<32)jn(t,n,i,n+(a=qn(t,n,i,e)),e);else{var o=$n(t,e),s=function(t){for(var e=0;t>=32;)e|=1&t,t>>=1;return t+e}(r);do{if((a=qn(t,n,i,e))<s){var l=r;l>s&&(l=s),jn(t,n,n+l,n+a,e),a=l}o.pushRun(n,a),o.mergeRuns(),r-=a,n+=a}while(0!==r);o.forceMergeRuns()}}}var Jn=!1;function ti(){Jn||(Jn=!0,console.warn("z / z2 / zlevel of displayable is invalid, which may cause unexpected errors"))}function ei(t,e){return t.zlevel===e.zlevel?t.z===e.z?t.z2-e.z2:t.z-e.z:t.zlevel-e.zlevel}var ni,ii,ri=function(){function t(){this._roots=[],this._displayList=[],this._displayListLen=0,this.displayableSortFunc=ei}return t.prototype.traverse=function(t,e){for(var n=0;n<this._roots.length;n++)this._roots[n].traverse(t,e)},t.prototype.getDisplayList=function(t,e){e=e||!1;var n=this._displayList;return!t&&n.length||this.updateDisplayList(e),n},t.prototype.updateDisplayList=function(t){this._displayListLen=0;for(var e=this._roots,n=this._displayList,i=0,r=e.length;i<r;i++)this._updateAndAddDisplayable(e[i],null,t);n.length=this._displayListLen,o.canvasSupported&&Qn(n,ei)},t.prototype._updateAndAddDisplayable=function(t,e,n){if(!t.ignore||n){t.beforeUpdate(),t.update(),t.afterUpdate();var i=t.getClipPath();if(t.ignoreClip)e=null;else if(i){e=e?e.slice():[];for(var r=i,a=t;r;)r.parent=a,r.updateTransform(),e.push(r),a=r,r=r.getClipPath()}if(t.childrenRef){for(var o=t.childrenRef(),s=0;s<o.length;s++){var l=o[s];t.__dirty&&(l.__dirty|=Wn.REDARAW_BIT),this._updateAndAddDisplayable(l,e,n)}t.__dirty=0}else{var u=t;e&&e.length?u.__clipPaths=e:u.__clipPaths&&u.__clipPaths.length>0&&(u.__clipPaths=[]),isNaN(u.z)&&(ti(),u.z=0),isNaN(u.z2)&&(ti(),u.z2=0),isNaN(u.zlevel)&&(ti(),u.zlevel=0),this._displayList[this._displayListLen++]=u}var h=t.getDecalElement&&t.getDecalElement();h&&this._updateAndAddDisplayable(h,e,n);var c=t.getTextGuideLine();c&&this._updateAndAddDisplayable(c,e,n);var p=t.getTextContent();p&&this._updateAndAddDisplayable(p,e,n)}},t.prototype.addRoot=function(t){t.__zr&&t.__zr.storage===this||this._roots.push(t)},t.prototype.delRoot=function(t){if(t instanceof Array)for(var e=0,n=t.length;e<n;e++)this.delRoot(t[e]);else{var i=D(this._roots,t);i>=0&&this._roots.splice(i,1)}},t.prototype.delAllRoots=function(){this._roots=[],this._displayList=[],this._displayListLen=0},t.prototype.getRoots=function(){return this._roots},t.prototype.dispose=function(){this._displayList=null,this._roots=null},t}(),ai="undefined"!=typeof window&&(window.requestAnimationFrame&&window.requestAnimationFrame.bind(window)||window.msRequestAnimationFrame&&window.msRequestAnimationFrame.bind(window)||window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame)||function(t){return setTimeout(t,16)},oi=function(t){function e(e){var n=t.call(this)||this;return n._running=!1,n._time=0,n._pausedTime=0,n._pauseStart=0,n._paused=!1,e=e||{},n.stage=e.stage||{},n.onframe=e.onframe||function(){},n}return n(e,t),e.prototype.addClip=function(t){t.animation&&this.removeClip(t),this._clipsHead?(this._clipsTail.next=t,t.prev=this._clipsTail,t.next=null,this._clipsTail=t):this._clipsHead=this._clipsTail=t,t.animation=this},e.prototype.addAnimator=function(t){t.animation=this;var e=t.getClip();e&&this.addClip(e)},e.prototype.removeClip=function(t){if(t.animation){var e=t.prev,n=t.next;e?e.next=n:this._clipsHead=n,n?n.prev=e:this._clipsTail=e,t.next=t.prev=t.animation=null}},e.prototype.removeAnimator=function(t){var e=t.getClip();e&&this.removeClip(e),t.animation=null},e.prototype.update=function(t){for(var e=(new Date).getTime()-this._pausedTime,n=e-this._time,i=this._clipsHead;i;){var r=i.next;i.step(e,n)?(i.ondestroy&&i.ondestroy(),this.removeClip(i),i=r):i=r}this._time=e,t||(this.onframe(n),this.trigger("frame",n),this.stage.update&&this.stage.update())},e.prototype._startLoop=function(){var t=this;this._running=!0,ai((function e(){t._running&&(ai(e),!t._paused&&t.update())}))},e.prototype.start=function(){this._running||(this._time=(new Date).getTime(),this._pausedTime=0,this._startLoop())},e.prototype.stop=function(){this._running=!1},e.prototype.pause=function(){this._paused||(this._pauseStart=(new Date).getTime(),this._paused=!0)},e.prototype.resume=function(){this._paused&&(this._pausedTime+=(new Date).getTime()-this._pauseStart,this._paused=!1)},e.prototype.clear=function(){for(var t=this._clipsHead;t;){var e=t.next;t.prev=t.next=t.animation=null,t=e}this._clipsHead=this._clipsTail=null},e.prototype.isFinished=function(){return null==this._clipsHead},e.prototype.animate=function(t,e){e=e||{},this.start();var n=new cn(t,e.loop);return this.addAnimator(n),n},e}(Rt),si=o.domSupported,li=(ii={pointerdown:1,pointerup:1,pointermove:1,pointerout:1},{mouse:ni=["click","dblclick","mousewheel","wheel","mouseout","mouseup","mousedown","mousemove","contextmenu"],touch:["touchstart","touchend","touchmove"],pointer:P(ni,(function(t){var e=t.replace("mouse","pointer");return ii.hasOwnProperty(e)?e:t}))}),ui=["mousemove","mouseup"],hi=["pointermove","pointerup"],ci=!1;function pi(t){var e=t.pointerType;return"pen"===e||"touch"===e}function fi(t){t&&(t.zrByTouch=!0)}function di(t,e){for(var n=e,i=!1;n&&9!==n.nodeType&&!(i=n.domBelongToZr||n!==e&&n===t.painterRoot);)n=n.parentNode;return i}var gi=function(t,e){this.stopPropagation=ct,this.stopImmediatePropagation=ct,this.preventDefault=ct,this.type=e.type,this.target=this.currentTarget=t.dom,this.pointerType=e.pointerType,this.clientX=e.clientX,this.clientY=e.clientY},yi={mousedown:function(t){t=Xt(this.dom,t),this.__mayPointerCapture=[t.zrX,t.zrY],this.trigger("mousedown",t)},mousemove:function(t){t=Xt(this.dom,t);var e=this.__mayPointerCapture;!e||t.zrX===e[0]&&t.zrY===e[1]||this.__togglePointerCapture(!0),this.trigger("mousemove",t)},mouseup:function(t){t=Xt(this.dom,t),this.__togglePointerCapture(!1),this.trigger("mouseup",t)},mouseout:function(t){di(this,(t=Xt(this.dom,t)).toElement||t.relatedTarget)||(this.__pointerCapturing&&(t.zrEventControl="no_globalout"),this.trigger("mouseout",t))},wheel:function(t){ci=!0,t=Xt(this.dom,t),this.trigger("mousewheel",t)},mousewheel:function(t){ci||(t=Xt(this.dom,t),this.trigger("mousewheel",t))},touchstart:function(t){fi(t=Xt(this.dom,t)),this.__lastTouchMoment=new Date,this.handler.processGesture(t,"start"),yi.mousemove.call(this,t),yi.mousedown.call(this,t)},touchmove:function(t){fi(t=Xt(this.dom,t)),this.handler.processGesture(t,"change"),yi.mousemove.call(this,t)},touchend:function(t){fi(t=Xt(this.dom,t)),this.handler.processGesture(t,"end"),yi.mouseup.call(this,t),+new Date-+this.__lastTouchMoment<300&&yi.click.call(this,t)},pointerdown:function(t){yi.mousedown.call(this,t)},pointermove:function(t){pi(t)||yi.mousemove.call(this,t)},pointerup:function(t){yi.mouseup.call(this,t)},pointerout:function(t){pi(t)||yi.mouseout.call(this,t)}};L(["click","dblclick","contextmenu"],(function(t){yi[t]=function(e){e=Xt(this.dom,e),this.trigger(t,e)}}));var vi={pointermove:function(t){pi(t)||vi.mousemove.call(this,t)},pointerup:function(t){vi.mouseup.call(this,t)},mousemove:function(t){this.trigger("mousemove",t)},mouseup:function(t){var e=this.__pointerCapturing;this.__togglePointerCapture(!1),this.trigger("mouseup",t),e&&(t.zrEventControl="only_globalout",this.trigger("mouseout",t))}};function mi(t,e){var n=e.domHandlers;o.pointerEventsSupported?L(li.pointer,(function(i){xi(e,i,(function(e){n[i].call(t,e)}))})):(o.touchEventsSupported&&L(li.touch,(function(i){xi(e,i,(function(r){n[i].call(t,r),function(t){t.touching=!0,null!=t.touchTimer&&(clearTimeout(t.touchTimer),t.touchTimer=null),t.touchTimer=setTimeout((function(){t.touching=!1,t.touchTimer=null}),700)}(e)}))})),L(li.mouse,(function(i){xi(e,i,(function(r){r=Yt(r),e.touching||n[i].call(t,r)}))})))}function _i(t,e){function n(n){xi(e,n,(function(i){i=Yt(i),di(t,i.target)||(i=function(t,e){return Xt(t.dom,new gi(t,e),!0)}(t,i),e.domHandlers[n].call(t,i))}),{capture:!0})}o.pointerEventsSupported?L(hi,n):o.touchEventsSupported||L(ui,n)}function xi(t,e,n,i){t.mounted[e]=n,t.listenerOpts[e]=i,function(t,e,n,i){Vt?t.addEventListener(e,n,i):t.attachEvent("on"+e,n)}(t.domTarget,e,n,i)}function bi(t){var e,n,i,r,a=t.mounted;for(var o in a)a.hasOwnProperty(o)&&(e=t.domTarget,n=o,i=a[o],r=t.listenerOpts[o],Vt?e.removeEventListener(n,i,r):e.detachEvent("on"+n,i));t.mounted={}}var wi=function(t,e){this.mounted={},this.listenerOpts={},this.touching=!1,this.domTarget=t,this.domHandlers=e},Si=function(t){function e(e,n){var i=t.call(this)||this;return i.__pointerCapturing=!1,i.dom=e,i.painterRoot=n,i._localHandlerScope=new wi(e,yi),si&&(i._globalHandlerScope=new wi(document,vi)),mi(i,i._localHandlerScope),i}return n(e,t),e.prototype.dispose=function(){bi(this._localHandlerScope),si&&bi(this._globalHandlerScope)},e.prototype.setCursor=function(t){this.dom.style&&(this.dom.style.cursor=t||"default")},e.prototype.__togglePointerCapture=function(t){if(this.__mayPointerCapture=null,si&&+this.__pointerCapturing^+t){this.__pointerCapturing=t;var e=this._globalHandlerScope;t?_i(this,e):bi(e)}},e}(Rt),Mi=function(t){function e(e){var n=t.call(this)||this;return n.isGroup=!0,n._children=[],n.attr(e),n}return n(e,t),e.prototype.childrenRef=function(){return this._children},e.prototype.children=function(){return this._children.slice()},e.prototype.childAt=function(t){return this._children[t]},e.prototype.childOfName=function(t){for(var e=this._children,n=0;n<e.length;n++)if(e[n].name===t)return e[n]},e.prototype.childCount=function(){return this._children.length},e.prototype.add=function(t){if(t&&(t!==this&&t.parent!==this&&(this._children.push(t),this._doAdd(t)),t.__hostTarget))throw"This elemenet has been used as an attachment";return this},e.prototype.addBefore=function(t,e){if(t&&t!==this&&t.parent!==this&&e&&e.parent===this){var n=this._children,i=n.indexOf(e);i>=0&&(n.splice(i,0,t),this._doAdd(t))}return this},e.prototype.replaceAt=function(t,e){var n=this._children,i=n[e];if(t&&t!==this&&t.parent!==this&&t!==i){n[e]=t,i.parent=null;var r=this.__zr;r&&i.removeSelfFromZr(r),this._doAdd(t)}return this},e.prototype._doAdd=function(t){t.parent&&t.parent.remove(t),t.parent=this;var e=this.__zr;e&&e!==t.__zr&&t.addSelfToZr(e),e&&e.refresh()},e.prototype.remove=function(t){var e=this.__zr,n=this._children,i=D(n,t);return i<0||(n.splice(i,1),t.parent=null,e&&t.removeSelfFromZr(e),e&&e.refresh()),this},e.prototype.removeAll=function(){for(var t=this._children,e=this.__zr,n=0;n<t.length;n++){var i=t[n];e&&i.removeSelfFromZr(e),i.parent=null}return t.length=0,this},e.prototype.eachChild=function(t,e){for(var n=this._children,i=0;i<n.length;i++){var r=n[i];t.call(e,r,i)}return this},e.prototype.traverse=function(t,e){for(var n=0;n<this._children.length;n++){var i=this._children[n],r=t.call(e,i);i.isGroup&&!r&&i.traverse(t,e)}return this},e.prototype.addSelfToZr=function(e){t.prototype.addSelfToZr.call(this,e);for(var n=0;n<this._children.length;n++){this._children[n].addSelfToZr(e)}},e.prototype.removeSelfFromZr=function(e){t.prototype.removeSelfFromZr.call(this,e);for(var n=0;n<this._children.length;n++){this._children[n].removeSelfFromZr(e)}},e.prototype.getBoundingRect=function(t){for(var e=new bn(0,0,0,0),n=t||this._children,i=[],r=null,a=0;a<n.length;a++){var o=n[a];if(!o.ignore&&!o.invisible){var s=o.getBoundingRect(),l=o.getLocalTransform(i);l?(bn.applyTransform(e,s,l),(r=r||e.clone()).union(e)):(r=r||s.clone()).union(s)}}return r||e},e}(Wn);Mi.prototype.type="group";
 /*!
     * ZRender, a high performance 2d drawing library.
     *
@@ -56,4 +42,4 @@
     * LICENSE
     * https://github.com/ecomfe/zrender/blob/master/LICENSE.txt
     */
-var Di=!a.canvasSupported,Ii={},Ai={};var ki=function(){function t(t,e,n){var i=this;this._sleepAfterStill=10,this._stillFrameAccum=0,this._needsRefresh=!0,this._needsRefreshHover=!0,this._darkMode=!1,n=n||{},this.dom=e,this.id=t;var r=new ai,o=n.renderer||"canvas";if(Di)throw new Error("IE8 support has been dropped since 5.0");if(Ii[o]||(o=N(Ii)[0]),!Ii[o])throw new Error("Renderer '"+o+"' is not imported. Please import it first.");n.useDirtyRect=null!=n.useDirtyRect&&n.useDirtyRect;var s=new Ii[o](e,r,n,t);this.storage=r,this.painter=s;var l=a.node||a.worker?null:new Ti(s.getViewportRoot(),s.root);this.handler=new re(r,s,l,s.root),this.animation=new li({stage:{update:function(){return i._flush(!0)}}}),this.animation.start()}return t.prototype.add=function(t){t&&(this.storage.addRoot(t),t.addSelfToZr(this),this.refresh())},t.prototype.remove=function(t){t&&(this.storage.delRoot(t),t.removeSelfFromZr(this),this.refresh())},t.prototype.configLayer=function(t,e){this.painter.configLayer&&this.painter.configLayer(t,e),this.refresh()},t.prototype.setBackgroundColor=function(t){this.painter.setBackgroundColor&&this.painter.setBackgroundColor(t),this.refresh(),this._backgroundColor=t,this._darkMode=function(t){if(!t)return!1;if("string"==typeof t)return Ze(t,1)<.4;if(t.colorStops){for(var e=t.colorStops,n=0,i=e.length,r=0;r<i;r++)n+=Ze(e[r].color,1);return(n/=i)<.4}return!1}(t)},t.prototype.getBackgroundColor=function(){return this._backgroundColor},t.prototype.setDarkMode=function(t){this._darkMode=t},t.prototype.isDarkMode=function(){return this._darkMode},t.prototype.refreshImmediately=function(t){t||this.animation.update(!0),this._needsRefresh=!1,this.painter.refresh(),this._needsRefresh=!1},t.prototype.refresh=function(){this._needsRefresh=!0,this.animation.start()},t.prototype.flush=function(){this._flush(!1)},t.prototype._flush=function(t){var e,n=(new Date).getTime();this._needsRefresh&&(e=!0,this.refreshImmediately(t)),this._needsRefreshHover&&(e=!0,this.refreshHoverImmediately());var i=(new Date).getTime();e?(this._stillFrameAccum=0,this.trigger("rendered",{elapsedTime:i-n})):this._sleepAfterStill>0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},t.prototype.setSleepAfterStill=function(t){this._sleepAfterStill=t},t.prototype.wakeUp=function(){this.animation.start(),this._stillFrameAccum=0},t.prototype.addHover=function(t){},t.prototype.removeHover=function(t){},t.prototype.clearHover=function(){},t.prototype.refreshHover=function(){this._needsRefreshHover=!0},t.prototype.refreshHoverImmediately=function(){this._needsRefreshHover=!1,this.painter.refreshHover&&"canvas"===this.painter.getType()&&this.painter.refreshHover()},t.prototype.resize=function(t){t=t||{},this.painter.resize(t.width,t.height),this.handler.resize()},t.prototype.clearAnimation=function(){this.animation.clear()},t.prototype.getWidth=function(){return this.painter.getWidth()},t.prototype.getHeight=function(){return this.painter.getHeight()},t.prototype.pathToImage=function(t,e){if(this.painter.pathToImage)return this.painter.pathToImage(t,e)},t.prototype.setCursorStyle=function(t){this.handler.setCursorStyle(t)},t.prototype.findHover=function(t,e){return this.handler.findHover(t,e)},t.prototype.on=function(t,e,n){return this.handler.on(t,e,n),this},t.prototype.off=function(t,e){this.handler.off(t,e)},t.prototype.trigger=function(t,e){this.handler.trigger(t,e)},t.prototype.clear=function(){for(var t=this.storage.getRoots(),e=0;e<t.length;e++)t[e]instanceof Ci&&t[e].removeSelfFromZr(this);this.storage.delAllRoots(),this.painter.clear()},t.prototype.dispose=function(){var t;this.animation.stop(),this.clear(),this.storage.dispose(),this.painter.dispose(),this.handler.dispose(),this.animation=this.storage=this.painter=this.handler=null,t=this.id,delete Ai[t]},t}();function Li(t,e){var n=new ki(x(),t,e);return Ai[n.id]=n,n}function Pi(t,e){Ii[t]=e}var Oi=Object.freeze({__proto__:null,init:Li,dispose:function(t){t.dispose()},disposeAll:function(){for(var t in Ai)Ai.hasOwnProperty(t)&&Ai[t].dispose();Ai={}},getInstance:function(t){return Ai[t]},registerPainter:Pi,version:"5.0.1"}),Ri=1e-4;function Ni(t,e,n,i){var r=e[1]-e[0],o=n[1]-n[0];if(0===r)return 0===o?n[0]:(n[0]+n[1])/2;if(i)if(r>0){if(t<=e[0])return n[0];if(t>=e[1])return n[1]}else{if(t>=e[0])return n[0];if(t<=e[1])return n[1]}else{if(t===e[0])return n[0];if(t===e[1])return n[1]}return(t-e[0])/r*o+n[0]}function Ei(t,e){switch(t){case"center":case"middle":t="50%";break;case"left":case"top":t="0%";break;case"right":case"bottom":t="100%"}return"string"==typeof t?(n=t,n.replace(/^\s+|\s+$/g,"")).match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?NaN:+t;var n}function Bi(t,e,n){return null==e&&(e=10),e=Math.min(Math.max(0,e),20),t=(+t).toFixed(e),n?t:+t}function zi(t){var e=t.toString(),n=e.indexOf("e");if(n>0){var i=+e.slice(n+1);return i<0?-i:0}var r=e.indexOf(".");return r<0?0:e.length-1-r}function Fi(t,e){var n=Math.log,i=Math.LN10,r=Math.floor(n(t[1]-t[0])/i),o=Math.round(n(Math.abs(e[1]-e[0]))/i),a=Math.min(Math.max(-r+o,0),20);return isFinite(a)?a:20}function Vi(t,e,n){if(!t[e])return 0;var i=O(t,(function(t,e){return t+(isNaN(e)?0:e)}),0);if(0===i)return 0;for(var r=Math.pow(10,n),o=P(t,(function(t){return(isNaN(t)?0:t)/i*r*100})),a=100*r,s=P(o,(function(t){return Math.floor(t)})),l=O(s,(function(t,e){return t+e}),0),u=P(o,(function(t,e){return t-s[e]}));l<a;){for(var h=Number.NEGATIVE_INFINITY,c=null,p=0,f=u.length;p<f;++p)u[p]>h&&(h=u[p],c=p);++s[c],u[c]=0,++l}return s[e]/r}function Hi(t){var e=2*Math.PI;return(t%e+e)%e}function Wi(t){return t>-1e-4&&t<Ri}var Gi=/^(?:(\d{4})(?:[-\/](\d{1,2})(?:[-\/](\d{1,2})(?:[T ](\d{1,2})(?::(\d{1,2})(?::(\d{1,2})(?:[.,](\d+))?)?)?(Z|[\+\-]\d\d:?\d\d)?)?)?)?)?$/;function Ui(t){if(t instanceof Date)return t;if("string"==typeof t){var e=Gi.exec(t);if(!e)return new Date(NaN);if(e[8]){var n=+e[4]||0;return"Z"!==e[8].toUpperCase()&&(n-=+e[8].slice(0,3)),new Date(Date.UTC(+e[1],+(e[2]||1)-1,+e[3]||1,n,+(e[5]||0),+e[6]||0,+e[7]||0))}return new Date(+e[1],+(e[2]||1)-1,+e[3]||1,+e[4]||0,+(e[5]||0),+e[6]||0,+e[7]||0)}return null==t?new Date(NaN):new Date(Math.round(t))}function Yi(t){return Math.pow(10,Xi(t))}function Xi(t){if(0===t)return 0;var e=Math.floor(Math.log(t)/Math.LN10);return t/Math.pow(10,e)>=10&&e++,e}function qi(t,e){var n=Xi(t),i=Math.pow(10,n),r=t/i;return t=(e?r<1.5?1:r<2.5?2:r<4?3:r<7?5:10:r<1?1:r<2?2:r<3?3:r<5?5:10)*i,n>=-20?+t.toFixed(n<0?-n:0):t}function ji(t){var e=parseFloat(t);return e==t&&(0!==e||"string"!=typeof t||t.indexOf("x")<=0)?e:NaN}function Zi(t){return!isNaN(ji(t))}function Ki(t,e){return 0===e?t:Ki(e,t%e)}function $i(t,e){return null==t?e:null==e?t:t*e/Ki(t,e)}"undefined"!=typeof console&&console.warn&&console.log;function Qi(t){0}function Ji(t){throw new Error(t)}var tr="series\0";function er(t){return t instanceof Array?t:null==t?[]:[t]}function nr(t,e,n){if(t){t[e]=t[e]||{},t.emphasis=t.emphasis||{},t.emphasis[e]=t.emphasis[e]||{};for(var i=0,r=n.length;i<r;i++){var o=n[i];!t.emphasis[e].hasOwnProperty(o)&&t[e].hasOwnProperty(o)&&(t.emphasis[e][o]=t[e][o])}}}var ir=["fontStyle","fontWeight","fontSize","fontFamily","rich","tag","color","textBorderColor","textBorderWidth","width","height","lineHeight","align","verticalAlign","baseline","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","textShadowColor","textShadowBlur","textShadowOffsetX","textShadowOffsetY","backgroundColor","borderColor","borderWidth","borderRadius","padding"];function rr(t){return!G(t)||z(t)||t instanceof Date?t:t.value}function or(t,e,n){var i="normalMerge"===n,r="replaceMerge"===n,o="replaceAll"===n;t=t||[],e=(e||[]).slice();var a=lt();L(e,(function(t,n){G(t)||(e[n]=null)}));var s,l,u=function(t,e,n){var i=[];if("replaceAll"===n)return i;for(var r=0;r<t.length;r++){var o=t[r];o&&null!=o.id&&e.set(o.id,r),i.push({existing:"replaceMerge"===n||hr(o)?null:o,newOption:null,keyInfo:null,brandNew:null})}return i}(t,a,n);return(i||r)&&function(t,e,n,i){L(i,(function(r,o){if(r&&null!=r.id){var a=sr(r.id),s=n.get(a);if(null!=s){var l=t[s];nt(!l.newOption,'Duplicated option on id "'+a+'".'),l.newOption=r,l.existing=e[s],i[o]=null}}}))}(u,t,a,e),i&&function(t,e){L(e,(function(n,i){if(n&&null!=n.name)for(var r=0;r<t.length;r++){var o=t[r].existing;if(!t[r].newOption&&o&&(null==o.id||null==n.id)&&!hr(n)&&!hr(o)&&ar("name",o,n))return t[r].newOption=n,void(e[i]=null)}}))}(u,e),i||r?function(t,e,n){L(e,(function(e){if(e){for(var i,r=0;(i=t[r])&&(i.newOption||hr(i.existing)||i.existing&&null!=e.id&&!ar("id",e,i.existing));)r++;i?(i.newOption=e,i.brandNew=n):t.push({newOption:e,brandNew:n,existing:null,keyInfo:null}),r++}}))}(u,e,r):o&&function(t,e){L(e,(function(e){t.push({newOption:e,brandNew:!0,existing:null,keyInfo:null})}))}(u,e),s=u,l=lt(),L(s,(function(t){var e=t.existing;e&&l.set(e.id,t)})),L(s,(function(t){var e=t.newOption;nt(!e||null==e.id||!l.get(e.id)||l.get(e.id)===t,"id duplicates: "+(e&&e.id)),e&&null!=e.id&&l.set(e.id,t),!t.keyInfo&&(t.keyInfo={})})),L(s,(function(t,e){var n=t.existing,i=t.newOption,r=t.keyInfo;if(G(i)){if(r.name=null!=i.name?sr(i.name):n?n.name:tr+e,n)r.id=sr(n.id);else if(null!=i.id)r.id=sr(i.id);else{var o=0;do{r.id="\0"+r.name+"\0"+o++}while(l.get(r.id))}l.set(r.id,t)}})),u}function ar(t,e,n){var i=lr(e[t],null),r=lr(n[t],null);return null!=i&&null!=r&&i===r}function sr(t){return lr(t,"")}function lr(t,e){if(null==t)return e;var n=typeof t;return"string"===n?t:"number"===n||H(t)?t+"":e}function ur(t){var e=t.name;return!(!e||!e.indexOf(tr))}function hr(t){return t&&null!=t.id&&0===sr(t.id).indexOf("\0_ec_\0")}function cr(t,e){return null!=e.dataIndexInside?e.dataIndexInside:null!=e.dataIndex?z(e.dataIndex)?P(e.dataIndex,(function(e){return t.indexOfRawIndex(e)})):t.indexOfRawIndex(e.dataIndex):null!=e.name?z(e.name)?P(e.name,(function(e){return t.indexOfName(e)})):t.indexOfName(e.name):void 0}function pr(){var t="__ec_inner_"+fr++;return function(e){return e[t]||(e[t]={})}}var fr=Math.round(9*Math.random());function dr(t,e,n){var i;if(V(e)){var r={};r[e+"Index"]=0,i=r}else i=e;var o=lt(),a={},s=!1;L(i,(function(t,e){if("dataIndex"!==e&&"dataIndexInside"!==e){var i=e.match(/^(\w+)(Index|Id|Name)$/)||[],r=i[1],l=(i[2]||"").toLowerCase();if(r&&l&&!(n&&n.includeMainTypes&&D(n.includeMainTypes,r)<0))s=s||!!r,(o.get(r)||o.set(r,{}))[l]=t}else a[e]=t}));var l=n?n.defaultMainType:null;return!s&&l&&o.set(l,{}),o.each((function(e,i){var r=yr(t,i,e,{useDefault:l===i,enableAll:!n||null==n.enableAll||n.enableAll,enableNone:!n||null==n.enableNone||n.enableNone});a[i+"Models"]=r.models,a[i+"Model"]=r.models[0]})),a}var gr={useDefault:!0,enableAll:!1,enableNone:!1};function yr(t,e,n,i){i=i||gr;var r=n.index,o=n.id,a=n.name,s={models:null,specified:null!=r||null!=o||null!=a};if(!s.specified){var l=void 0;return s.models=i.useDefault&&(l=t.getComponent(e))?[l]:[],s}return"none"===r||!1===r?(nt(i.enableNone,'`"none"` or `false` is not a valid value on index option.'),s.models=[],s):("all"===r&&(nt(i.enableAll,'`"all"` is not a valid value on index option.'),r=o=a=null),s.models=t.queryComponents({mainType:e,index:r,id:o,name:a}),s)}function vr(t,e,n){t.setAttribute?t.setAttribute(e,n):t[e]=n}function mr(t,e,n,i,r){var o=null==e||"auto"===e;if(null==i)return i;if("number"==typeof i)return Bi(f=Qe(n||0,i,r),o?Math.max(zi(n||0),zi(i)):e);if("string"==typeof i)return r<1?n:i;for(var a=[],s=n,l=i,u=Math.max(s?s.length:0,l.length),h=0;h<u;++h){if("ordinal"===t.getDimensionInfo(h).type)a[h]=(r<1&&s?s:l)[h];else{var c=s&&s[h]?s[h]:0,p=l[h],f=Qe(c,p,r);a[h]=Bi(f,o?Math.max(zi(c),zi(p)):e)}}return a}var _r="___EC__COMPONENT__CONTAINER___",xr="___EC__EXTENDED_CLASS___";function br(t){var e={main:"",sub:""};if(t){var n=t.split(".");e.main=n[0]||"",e.sub=n[1]||""}return e}function wr(t,e){t.$constructor=t,t.extend=function(t){var e=this;function n(){for(var i=[],o=0;o<arguments.length;o++)i[o]=arguments[o];if(t.$constructor)t.$constructor.apply(this,arguments);else{if(Sr(e)){var a=ut(n.prototype,new(e.bind.apply(e,r([void 0],i))));return a}e.apply(this,arguments)}}return n[xr]=!0,M(n.prototype,t),n.extend=this.extend,n.superCall=Cr,n.superApply=Dr,I(n,this),n.superClass=e,n}}function Sr(t){return"function"==typeof t&&/^class\s/.test(Function.prototype.toString.call(t))}function Mr(t,e){t.extend=e.extend}var Tr=Math.round(10*Math.random());function Cr(t,e){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];return this.superClass.prototype[e].apply(t,n)}function Dr(t,e,n){return this.superClass.prototype[e].apply(t,n)}function Ir(t){var e={};t.registerClass=function(t){var n,i=t.type||t.prototype.type;if(i){nt(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(n=i),'componentType "'+n+'" illegal'),t.prototype.type=i;var r=br(i);if(r.sub){if(r.sub!==_r){(function(t){var n=e[t.main];n&&n[_r]||((n=e[t.main]={})[_r]=!0);return n}(r))[r.sub]=t}}else e[r.main]=t}return t},t.getClass=function(t,n,i){var r=e[t];if(r&&r[_r]&&(r=n?r[n]:null),i&&!r)throw new Error(n?"Component "+t+"."+(n||"")+" not exists. Load it first.":t+".type should be specified.");return r},t.getClassesByMainType=function(t){var n=br(t),i=[],r=e[n.main];return r&&r[_r]?L(r,(function(t,e){e!==_r&&i.push(t)})):i.push(r),i},t.hasClass=function(t){var n=br(t);return!!e[n.main]},t.getAllClassMainTypes=function(){var t=[];return L(e,(function(e,n){t.push(n)})),t},t.hasSubTypes=function(t){var n=br(t),i=e[n.main];return i&&i[_r]}}function Ar(t,e){for(var n=0;n<t.length;n++)t[n][1]||(t[n][1]=t[n][0]);return e=e||!1,function(n,i,r){for(var o={},a=0;a<t.length;a++){var s=t[a][1];if(!(i&&D(i,s)>=0||r&&D(r,s)<0)){var l=n.getShallow(s,e);null!=l&&(o[t[a][0]]=l)}}return o}}var kr=Ar([["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]]),Lr=function(){function t(){}return t.prototype.getAreaStyle=function(t,e){return kr(this,t,e)},t}(),Pr=new Ie(50);function Or(t){if("string"==typeof t){var e=Pr.get(t);return e&&e.image}return t}function Rr(t,e,n,i,r){if(t){if("string"==typeof t){if(e&&e.__zrImageSrc===t||!n)return e;var o=Pr.get(t),a={hostEl:n,cb:i,cbPayload:r};return o?!Er(e=o.image)&&o.pending.push(a):((e=new Image).onload=e.onerror=Nr,Pr.put(t,e.__cachedImgObj={image:e,pending:[a]}),e.src=e.__zrImageSrc=t),e}return t}return e}function Nr(){var t=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var e=0;e<t.pending.length;e++){var n=t.pending[e],i=n.cb;i&&i(this,n.cbPayload),n.hostEl.dirty()}t.pending.length=0}function Er(t){return t&&t.width&&t.height}var Br=/\{([a-zA-Z0-9_]+)\|([^}]*)\}/g;function zr(t,e,n,i,r){if(!e)return"";var o=(t+"").split("\n");r=Fr(e,n,i,r);for(var a=0,s=o.length;a<s;a++)o[a]=Vr(o[a],r);return o.join("\n")}function Fr(t,e,n,i){var r=M({},i=i||{});r.font=e,n=Q(n,"..."),r.maxIterations=Q(i.maxIterations,2);var o=r.minChar=Q(i.minChar,0);r.cnCharWidth=Dn("国",e);var a=r.ascCharWidth=Dn("a",e);r.placeholder=Q(i.placeholder,"");for(var s=t=Math.max(0,t-1),l=0;l<o&&s>=a;l++)s-=a;var u=Dn(n,e);return u>s&&(n="",u=0),s=t-u,r.ellipsis=n,r.ellipsisWidth=u,r.contentWidth=s,r.containerWidth=t,r}function Vr(t,e){var n=e.containerWidth,i=e.font,r=e.contentWidth;if(!n)return"";var o=Dn(t,i);if(o<=n)return t;for(var a=0;;a++){if(o<=r||a>=e.maxIterations){t+=e.ellipsis;break}var s=0===a?Hr(t,r,e.ascCharWidth,e.cnCharWidth):o>0?Math.floor(t.length*r/o):0;o=Dn(t=t.substr(0,s),i)}return""===t&&(t=e.placeholder),t}function Hr(t,e,n,i){for(var r=0,o=0,a=t.length;o<a&&r<e;o++){var s=t.charCodeAt(o);r+=0<=s&&s<=127?n:i}return o}var Wr=function(){},Gr=function(t){this.tokens=[],t&&(this.tokens=t)},Ur=function(){this.width=0,this.height=0,this.contentWidth=0,this.contentHeight=0,this.outerWidth=0,this.outerHeight=0,this.lines=[]};function Yr(t,e,n,i,r){var o,a,s=""===e,l=r&&n.rich[r]||{},u=t.lines,h=l.font||n.font,c=!1;if(i){var p=l.padding,f=p?p[1]+p[3]:0;if(null!=l.width&&"auto"!==l.width){var d=function(t,e){if("string"==typeof t)return t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t);return t}(l.width,i.width)+f;u.length>0&&d+i.accumWidth>i.width&&(o=e.split("\n"),c=!0),i.accumWidth=d}else{var g=jr(e,h,i.width,i.breakAll,i.accumWidth);i.accumWidth=g.accumWidth+f,a=g.linesWidths,o=g.lines}}else o=e.split("\n");for(var y=0;y<o.length;y++){var v=o[y],m=new Wr;if(m.styleName=r,m.text=v,m.isLineHolder=!v&&!s,"number"==typeof l.width?m.width=l.width:m.width=a?a[y]:Dn(v,h),y||c)u.push(new Gr([m]));else{var _=(u[u.length-1]||(u[0]=new Gr)).tokens,x=_.length;1===x&&_[0].isLineHolder?_[0]=m:(v||!x||s)&&_.push(m)}}}var Xr=O(",&?/;] ".split(""),(function(t,e){return t[e]=!0,t}),{});function qr(t){return!function(t){var e=t.charCodeAt(0);return e>=33&&e<=255}(t)||!!Xr[t]}function jr(t,e,n,i,r){for(var o=[],a=[],s="",l="",u=0,h=0,c=0;c<t.length;c++){var p=t.charAt(c);if("\n"!==p){var f=Dn(p,e),d=!i&&!qr(p);(o.length?h+f>n:r+h+f>n)?h?(s||l)&&(d?(s||(s=l,l="",h=u=0),o.push(s),a.push(h-u),l+=p,s="",h=u+=f):(l&&(s+=l,h+=u,l="",u=0),o.push(s),a.push(h),s=p,h=f)):d?(o.push(l),a.push(u),l=p,u=f):(o.push(p),a.push(f)):(h+=f,d?(l+=p,u+=f):(l&&(s+=l,l="",u=0),s+=p))}else l&&(s+=l,h+=u),o.push(s),a.push(h),s="",l="",u=0,h=0}return o.length||s||(s=t,l="",u=0),l&&(s+=l),s&&(o.push(s),a.push(h)),1===o.length&&(h+=r),{accumWidth:h,lines:o,linesWidths:a}}var Zr="__zr_style_"+Math.round(10*Math.random()),Kr={shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:"#000",opacity:1,blend:"source-over"},$r={style:{shadowBlur:!0,shadowOffsetX:!0,shadowOffsetY:!0,shadowColor:!0,opacity:!0}};Kr[Zr]=!0;var Qr=["z","z2","invisible"],Jr=function(t){function e(e){return t.call(this,e)||this}var n;return dt(e,t),e.prototype._init=function(e){for(var n=N(e),i=0;i<n.length;i++){var r=n[i];"style"===r?this.useStyle(e[r]):t.prototype.attrKV.call(this,r,e[r])}this.style||this.useStyle({})},e.prototype.beforeBrush=function(){},e.prototype.afterBrush=function(){},e.prototype.innerBeforeBrush=function(){},e.prototype.innerAfterBrush=function(){},e.prototype.shouldBePainted=function(t,e,n,i){var r=this.transform;if(this.ignore||this.invisible||0===this.style.opacity||this.culling&&function(t,e,n){to.copy(t.getBoundingRect()),t.transform&&to.applyTransform(t.transform);return eo.width=e,eo.height=n,!to.intersect(eo)}(this,t,e)||r&&!r[0]&&!r[3])return!1;if(n&&this.__clipPaths)for(var o=0;o<this.__clipPaths.length;++o)if(this.__clipPaths[o].isZeroArea())return!1;if(i&&this.parent)for(var a=this.parent;a;){if(a.ignore)return!1;a=a.parent}return!0},e.prototype.contain=function(t,e){return this.rectContain(t,e)},e.prototype.traverse=function(t,e){t.call(e,this)},e.prototype.rectContain=function(t,e){var n=this.transformCoordToLocal(t,e);return this.getBoundingRect().contain(n[0],n[1])},e.prototype.getPaintRect=function(){var t=this._paintRect;if(!this._paintRect||this.__dirty){var e=this.transform,n=this.getBoundingRect(),i=this.style,r=i.shadowBlur||0,o=i.shadowOffsetX||0,a=i.shadowOffsetY||0;t=this._paintRect||(this._paintRect=new Sn(0,0,0,0)),e?Sn.applyTransform(t,n,e):t.copy(n),(r||o||a)&&(t.width+=2*r+Math.abs(o),t.height+=2*r+Math.abs(a),t.x=Math.min(t.x,t.x+o-r),t.y=Math.min(t.y,t.y+a-r));var s=this.dirtyRectTolerance;t.isZero()||(t.x=Math.floor(t.x-s),t.y=Math.floor(t.y-s),t.width=Math.ceil(t.width+1+2*s),t.height=Math.ceil(t.height+1+2*s))}return t},e.prototype.setPrevPaintRect=function(t){t?(this._prevPaintRect=this._prevPaintRect||new Sn(0,0,0,0),this._prevPaintRect.copy(t)):this._prevPaintRect=null},e.prototype.getPrevPaintRect=function(){return this._prevPaintRect},e.prototype.animateStyle=function(t){return this.animate("style",t)},e.prototype.updateDuringAnimation=function(t){"style"===t?this.dirtyStyle():this.markRedraw()},e.prototype.attrKV=function(e,n){"style"!==e?t.prototype.attrKV.call(this,e,n):this.style?this.setStyle(n):this.useStyle(n)},e.prototype.setStyle=function(t,e){return"string"==typeof t?this.style[t]=e:M(this.style,t),this.dirtyStyle(),this},e.prototype.dirtyStyle=function(){this.markRedraw(),this.__dirty|=e.STYLE_CHANGED_BIT,this._rect&&(this._rect=null)},e.prototype.dirty=function(){this.dirtyStyle()},e.prototype.styleChanged=function(){return!!(this.__dirty&e.STYLE_CHANGED_BIT)},e.prototype.styleUpdated=function(){this.__dirty&=~e.STYLE_CHANGED_BIT},e.prototype.createStyle=function(t){return ut(Kr,t)},e.prototype.useStyle=function(t){t[Zr]||(t=this.createStyle(t)),this.__inHover?this.__hoverStyle=t:this.style=t,this.dirtyStyle()},e.prototype.isStyleObject=function(t){return t[Zr]},e.prototype._innerSaveToNormal=function(e){t.prototype._innerSaveToNormal.call(this,e);var n=this._normalState;e.style&&!n.style&&(n.style=this._mergeStyle(this.createStyle(),this.style)),this._savePrimaryToNormal(e,n,Qr)},e.prototype._applyStateObj=function(e,n,i,r,o,a){t.prototype._applyStateObj.call(this,e,n,i,r,o,a);var s,l=!(n&&r);if(n&&n.style?o?r?s=n.style:(s=this._mergeStyle(this.createStyle(),i.style),this._mergeStyle(s,n.style)):(s=this._mergeStyle(this.createStyle(),r?this.style:i.style),this._mergeStyle(s,n.style)):l&&(s=i.style),s)if(o){var u=this.style;if(this.style=this.createStyle(l?{}:u),l)for(var h=N(u),c=0;c<h.length;c++){(f=h[c])in s&&(s[f]=s[f],this.style[f]=u[f])}var p=N(s);for(c=0;c<p.length;c++){var f=p[c];this.style[f]=this.style[f]}this._transitionState(e,{style:s},a,this.getAnimationStyleProps())}else this.useStyle(s);for(c=0;c<Qr.length;c++){f=Qr[c];n&&null!=n[f]?this[f]=n[f]:l&&null!=i[f]&&(this[f]=i[f])}},e.prototype._mergeStates=function(e){for(var n,i=t.prototype._mergeStates.call(this,e),r=0;r<e.length;r++){var o=e[r];o.style&&(n=n||{},this._mergeStyle(n,o.style))}return n&&(i.style=n),i},e.prototype._mergeStyle=function(t,e){return M(t,e),t},e.prototype.getAnimationStyleProps=function(){return $r},e.STYLE_CHANGED_BIT=2,e.initDefaultProps=((n=e.prototype).type="displayable",n.invisible=!1,n.z=0,n.z2=0,n.zlevel=0,n.culling=!1,n.cursor="pointer",n.rectHover=!1,n.incremental=!1,n._rect=null,n.dirtyRectTolerance=0,void(n.__dirty=Un.REDARAW_BIT|e.STYLE_CHANGED_BIT)),e}(Un),to=new Sn(0,0,0,0),eo=new Sn(0,0,0,0);var no=Math.pow,io=Math.sqrt,ro=1e-8,oo=1e-4,ao=io(3),so=1/3,lo=gt(),uo=gt(),ho=gt();function co(t){return t>-1e-8&&t<ro}function po(t){return t>ro||t<-1e-8}function fo(t,e,n,i,r){var o=1-r;return o*o*(o*t+3*r*e)+r*r*(r*i+3*o*n)}function go(t,e,n,i,r){var o=1-r;return 3*(((e-t)*o+2*(n-e)*r)*o+(i-n)*r*r)}function yo(t,e,n,i,r,o){var a=i+3*(e-n)-t,s=3*(n-2*e+t),l=3*(e-t),u=t-r,h=s*s-3*a*l,c=s*l-9*a*u,p=l*l-3*s*u,f=0;if(co(h)&&co(c)){if(co(s))o[0]=0;else(M=-l/s)>=0&&M<=1&&(o[f++]=M)}else{var d=c*c-4*h*p;if(co(d)){var g=c/h,y=-g/2;(M=-s/a+g)>=0&&M<=1&&(o[f++]=M),y>=0&&y<=1&&(o[f++]=y)}else if(d>0){var v=io(d),m=h*s+1.5*a*(-c+v),_=h*s+1.5*a*(-c-v);(M=(-s-((m=m<0?-no(-m,so):no(m,so))+(_=_<0?-no(-_,so):no(_,so))))/(3*a))>=0&&M<=1&&(o[f++]=M)}else{var x=(2*h*s-3*a*c)/(2*io(h*h*h)),b=Math.acos(x)/3,w=io(h),S=Math.cos(b),M=(-s-2*w*S)/(3*a),T=(y=(-s+w*(S+ao*Math.sin(b)))/(3*a),(-s+w*(S-ao*Math.sin(b)))/(3*a));M>=0&&M<=1&&(o[f++]=M),y>=0&&y<=1&&(o[f++]=y),T>=0&&T<=1&&(o[f++]=T)}}return f}function vo(t,e,n,i,r){var o=6*n-12*e+6*t,a=9*e+3*i-3*t-9*n,s=3*e-3*t,l=0;if(co(a)){if(po(o))(h=-s/o)>=0&&h<=1&&(r[l++]=h)}else{var u=o*o-4*a*s;if(co(u))r[0]=-o/(2*a);else if(u>0){var h,c=io(u),p=(-o-c)/(2*a);(h=(-o+c)/(2*a))>=0&&h<=1&&(r[l++]=h),p>=0&&p<=1&&(r[l++]=p)}}return l}function mo(t,e,n,i,r,o){var a=(e-t)*r+t,s=(n-e)*r+e,l=(i-n)*r+n,u=(s-a)*r+a,h=(l-s)*r+s,c=(h-u)*r+u;o[0]=t,o[1]=a,o[2]=u,o[3]=c,o[4]=c,o[5]=h,o[6]=l,o[7]=i}function _o(t,e,n,i,r,o,a,s,l,u,h){var c,p,f,d,g,y=.005,v=1/0;lo[0]=l,lo[1]=u;for(var m=0;m<1;m+=.05)uo[0]=fo(t,n,r,a,m),uo[1]=fo(e,i,o,s,m),(d=It(lo,uo))<v&&(c=m,v=d);v=1/0;for(var _=0;_<32&&!(y<oo);_++)p=c-y,f=c+y,uo[0]=fo(t,n,r,a,p),uo[1]=fo(e,i,o,s,p),d=It(uo,lo),p>=0&&d<v?(c=p,v=d):(ho[0]=fo(t,n,r,a,f),ho[1]=fo(e,i,o,s,f),g=It(ho,lo),f<=1&&g<v?(c=f,v=g):y*=.5);return h&&(h[0]=fo(t,n,r,a,c),h[1]=fo(e,i,o,s,c)),io(v)}function xo(t,e,n,i,r,o,a,s,l){for(var u=t,h=e,c=0,p=1/l,f=1;f<=l;f++){var d=f*p,g=fo(t,n,r,a,d),y=fo(e,i,o,s,d),v=g-u,m=y-h;c+=Math.sqrt(v*v+m*m),u=g,h=y}return c}function bo(t,e,n,i){var r=1-i;return r*(r*t+2*i*e)+i*i*n}function wo(t,e,n,i){return 2*((1-i)*(e-t)+i*(n-e))}function So(t,e,n){var i=t+n-2*e;return 0===i?.5:(t-e)/i}function Mo(t,e,n,i,r){var o=(e-t)*i+t,a=(n-e)*i+e,s=(a-o)*i+o;r[0]=t,r[1]=o,r[2]=s,r[3]=s,r[4]=a,r[5]=n}function To(t,e,n,i,r,o,a,s,l){var u,h=.005,c=1/0;lo[0]=a,lo[1]=s;for(var p=0;p<1;p+=.05){uo[0]=bo(t,n,r,p),uo[1]=bo(e,i,o,p),(y=It(lo,uo))<c&&(u=p,c=y)}c=1/0;for(var f=0;f<32&&!(h<oo);f++){var d=u-h,g=u+h;uo[0]=bo(t,n,r,d),uo[1]=bo(e,i,o,d);var y=It(uo,lo);if(d>=0&&y<c)u=d,c=y;else{ho[0]=bo(t,n,r,g),ho[1]=bo(e,i,o,g);var v=It(ho,lo);g<=1&&v<c?(u=g,c=v):h*=.5}}return l&&(l[0]=bo(t,n,r,u),l[1]=bo(e,i,o,u)),io(c)}function Co(t,e,n,i,r,o,a){for(var s=t,l=e,u=0,h=1/a,c=1;c<=a;c++){var p=c*h,f=bo(t,n,r,p),d=bo(e,i,o,p),g=f-s,y=d-l;u+=Math.sqrt(g*g+y*y),s=f,l=d}return u}var Do=Math.min,Io=Math.max,Ao=Math.sin,ko=Math.cos,Lo=2*Math.PI,Po=gt(),Oo=gt(),Ro=gt();function No(t,e,n){if(0!==t.length){for(var i=t[0],r=i[0],o=i[0],a=i[1],s=i[1],l=1;l<t.length;l++)i=t[l],r=Do(r,i[0]),o=Io(o,i[0]),a=Do(a,i[1]),s=Io(s,i[1]);e[0]=r,e[1]=a,n[0]=o,n[1]=s}}function Eo(t,e,n,i,r,o){r[0]=Do(t,n),r[1]=Do(e,i),o[0]=Io(t,n),o[1]=Io(e,i)}var Bo=[],zo=[];function Fo(t,e,n,i,r,o,a,s,l,u){var h=vo,c=fo,p=h(t,n,r,a,Bo);l[0]=1/0,l[1]=1/0,u[0]=-1/0,u[1]=-1/0;for(var f=0;f<p;f++){var d=c(t,n,r,a,Bo[f]);l[0]=Do(d,l[0]),u[0]=Io(d,u[0])}p=h(e,i,o,s,zo);for(f=0;f<p;f++){var g=c(e,i,o,s,zo[f]);l[1]=Do(g,l[1]),u[1]=Io(g,u[1])}l[0]=Do(t,l[0]),u[0]=Io(t,u[0]),l[0]=Do(a,l[0]),u[0]=Io(a,u[0]),l[1]=Do(e,l[1]),u[1]=Io(e,u[1]),l[1]=Do(s,l[1]),u[1]=Io(s,u[1])}function Vo(t,e,n,i,r,o,a,s){var l=So,u=bo,h=Io(Do(l(t,n,r),1),0),c=Io(Do(l(e,i,o),1),0),p=u(t,n,r,h),f=u(e,i,o,c);a[0]=Do(t,r,p),a[1]=Do(e,o,f),s[0]=Io(t,r,p),s[1]=Io(e,o,f)}function Ho(t,e,n,i,r,o,a,s,l){var u=Lt,h=Pt,c=Math.abs(r-o);if(c%Lo<1e-4&&c>1e-4)return s[0]=t-n,s[1]=e-i,l[0]=t+n,void(l[1]=e+i);if(Po[0]=ko(r)*n+t,Po[1]=Ao(r)*i+e,Oo[0]=ko(o)*n+t,Oo[1]=Ao(o)*i+e,u(s,Po,Oo),h(l,Po,Oo),(r%=Lo)<0&&(r+=Lo),(o%=Lo)<0&&(o+=Lo),r>o&&!a?o+=Lo:r<o&&a&&(r+=Lo),a){var p=o;o=r,r=p}for(var f=0;f<o;f+=Math.PI/2)f>r&&(Ro[0]=ko(f)*n+t,Ro[1]=Ao(f)*i+e,u(s,Ro,s),h(l,Ro,l))}var Wo={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},Go=[],Uo=[],Yo=[],Xo=[],qo=[],jo=[],Zo=Math.min,Ko=Math.max,$o=Math.cos,Qo=Math.sin,Jo=Math.sqrt,ta=Math.abs,ea=Math.PI,na=2*ea,ia="undefined"!=typeof Float32Array,ra=[];function oa(t){return Math.round(t/ea*1e8)/1e8%2*ea}function aa(t,e){var n=oa(t[0]);n<0&&(n+=na);var i=n-t[0],r=t[1];r+=i,!e&&r-n>=na?r=n+na:e&&n-r>=na?r=n-na:!e&&n>r?r=n+(na-oa(n-r)):e&&n<r&&(r=n-(na-oa(r-n))),t[0]=n,t[1]=r}var sa=function(){function t(t){this.dpr=1,this._version=0,this._xi=0,this._yi=0,this._x0=0,this._y0=0,this._len=0,t&&(this._saveData=!1),this._saveData&&(this.data=[])}return t.prototype.increaseVersion=function(){this._version++},t.prototype.getVersion=function(){return this._version},t.prototype.setScale=function(t,e,n){(n=n||0)>0&&(this._ux=ta(n/En/t)||0,this._uy=ta(n/En/e)||0)},t.prototype.setDPR=function(t){this.dpr=t},t.prototype.setContext=function(t){this._ctx=t},t.prototype.getContext=function(){return this._ctx},t.prototype.beginPath=function(){return this._ctx&&this._ctx.beginPath(),this.reset(),this},t.prototype.reset=function(){this._saveData&&(this._len=0),this._lineDash&&(this._lineDash=null,this._dashOffset=0),this._pathSegLen&&(this._pathSegLen=null,this._pathLen=0),this._version++},t.prototype.moveTo=function(t,e){return this.addData(Wo.M,t,e),this._ctx&&this._ctx.moveTo(t,e),this._x0=t,this._y0=e,this._xi=t,this._yi=e,this},t.prototype.lineTo=function(t,e){var n=ta(t-this._xi)>this._ux||ta(e-this._yi)>this._uy||this._len<5;return this.addData(Wo.L,t,e),this._ctx&&n&&(this._needsDash?this._dashedLineTo(t,e):this._ctx.lineTo(t,e)),n&&(this._xi=t,this._yi=e),this},t.prototype.bezierCurveTo=function(t,e,n,i,r,o){return this.addData(Wo.C,t,e,n,i,r,o),this._ctx&&(this._needsDash?this._dashedBezierTo(t,e,n,i,r,o):this._ctx.bezierCurveTo(t,e,n,i,r,o)),this._xi=r,this._yi=o,this},t.prototype.quadraticCurveTo=function(t,e,n,i){return this.addData(Wo.Q,t,e,n,i),this._ctx&&(this._needsDash?this._dashedQuadraticTo(t,e,n,i):this._ctx.quadraticCurveTo(t,e,n,i)),this._xi=n,this._yi=i,this},t.prototype.arc=function(t,e,n,i,r,o){ra[0]=i,ra[1]=r,aa(ra,o),i=ra[0];var a=(r=ra[1])-i;return this.addData(Wo.A,t,e,n,n,i,a,0,o?0:1),this._ctx&&this._ctx.arc(t,e,n,i,r,o),this._xi=$o(r)*n+t,this._yi=Qo(r)*n+e,this},t.prototype.arcTo=function(t,e,n,i,r){return this._ctx&&this._ctx.arcTo(t,e,n,i,r),this},t.prototype.rect=function(t,e,n,i){return this._ctx&&this._ctx.rect(t,e,n,i),this.addData(Wo.R,t,e,n,i),this},t.prototype.closePath=function(){this.addData(Wo.Z);var t=this._ctx,e=this._x0,n=this._y0;return t&&(this._needsDash&&this._dashedLineTo(e,n),t.closePath()),this._xi=e,this._yi=n,this},t.prototype.fill=function(t){t&&t.fill(),this.toStatic()},t.prototype.stroke=function(t){t&&t.stroke(),this.toStatic()},t.prototype.setLineDash=function(t){if(t instanceof Array){this._lineDash=t,this._dashIdx=0;for(var e=0,n=0;n<t.length;n++)e+=t[n];this._dashSum=e,this._needsDash=!0}else this._lineDash=null,this._needsDash=!1;return this},t.prototype.setLineDashOffset=function(t){return this._dashOffset=t,this},t.prototype.len=function(){return this._len},t.prototype.setData=function(t){var e=t.length;this.data&&this.data.length===e||!ia||(this.data=new Float32Array(e));for(var n=0;n<e;n++)this.data[n]=t[n];this._len=e},t.prototype.appendPath=function(t){t instanceof Array||(t=[t]);for(var e=t.length,n=0,i=this._len,r=0;r<e;r++)n+=t[r].len();ia&&this.data instanceof Float32Array&&(this.data=new Float32Array(i+n));for(r=0;r<e;r++)for(var o=t[r].data,a=0;a<o.length;a++)this.data[i++]=o[a];this._len=i},t.prototype.addData=function(t,e,n,i,r,o,a,s,l){if(this._saveData){var u=this.data;this._len+arguments.length>u.length&&(this._expandData(),u=this.data);for(var h=0;h<arguments.length;h++)u[this._len++]=arguments[h]}},t.prototype._expandData=function(){if(!(this.data instanceof Array)){for(var t=[],e=0;e<this._len;e++)t[e]=this.data[e];this.data=t}},t.prototype._dashedLineTo=function(t,e){var n,i,r=this._dashSum,o=this._lineDash,a=this._ctx,s=this._dashOffset,l=this._xi,u=this._yi,h=t-l,c=e-u,p=Jo(h*h+c*c),f=l,d=u,g=o.length;for(s<0&&(s=r+s),f-=(s%=r)*(h/=p),d-=s*(c/=p);h>0&&f<=t||h<0&&f>=t||0===h&&(c>0&&d<=e||c<0&&d>=e);)f+=h*(n=o[i=this._dashIdx]),d+=c*n,this._dashIdx=(i+1)%g,h>0&&f<l||h<0&&f>l||c>0&&d<u||c<0&&d>u||a[i%2?"moveTo":"lineTo"](h>=0?Zo(f,t):Ko(f,t),c>=0?Zo(d,e):Ko(d,e));h=f-t,c=d-e,this._dashOffset=-Jo(h*h+c*c)},t.prototype._dashedBezierTo=function(t,e,n,i,r,o){var a,s,l,u,h,c=this._ctx,p=this._dashSum,f=this._dashOffset,d=this._lineDash,g=this._xi,y=this._yi,v=0,m=this._dashIdx,_=d.length,x=0;for(f<0&&(f=p+f),f%=p,a=0;a<1;a+=.1)s=fo(g,t,n,r,a+.1)-fo(g,t,n,r,a),l=fo(y,e,i,o,a+.1)-fo(y,e,i,o,a),v+=Jo(s*s+l*l);for(;m<_&&!((x+=d[m])>f);m++);for(a=(x-f)/v;a<=1;)u=fo(g,t,n,r,a),h=fo(y,e,i,o,a),m%2?c.moveTo(u,h):c.lineTo(u,h),a+=d[m]/v,m=(m+1)%_;m%2!=0&&c.lineTo(r,o),s=r-u,l=o-h,this._dashOffset=-Jo(s*s+l*l)},t.prototype._dashedQuadraticTo=function(t,e,n,i){var r=n,o=i;n=(n+2*t)/3,i=(i+2*e)/3,t=(this._xi+2*t)/3,e=(this._yi+2*e)/3,this._dashedBezierTo(t,e,n,i,r,o)},t.prototype.toStatic=function(){if(this._saveData){var t=this.data;t instanceof Array&&(t.length=this._len,ia&&this._len>11&&(this.data=new Float32Array(t)))}},t.prototype.getBoundingRect=function(){Yo[0]=Yo[1]=qo[0]=qo[1]=Number.MAX_VALUE,Xo[0]=Xo[1]=jo[0]=jo[1]=-Number.MAX_VALUE;var t,e=this.data,n=0,i=0,r=0,o=0;for(t=0;t<this._len;){var a=e[t++],s=1===t;switch(s&&(r=n=e[t],o=i=e[t+1]),a){case Wo.M:n=r=e[t++],i=o=e[t++],qo[0]=r,qo[1]=o,jo[0]=r,jo[1]=o;break;case Wo.L:Eo(n,i,e[t],e[t+1],qo,jo),n=e[t++],i=e[t++];break;case Wo.C:Fo(n,i,e[t++],e[t++],e[t++],e[t++],e[t],e[t+1],qo,jo),n=e[t++],i=e[t++];break;case Wo.Q:Vo(n,i,e[t++],e[t++],e[t],e[t+1],qo,jo),n=e[t++],i=e[t++];break;case Wo.A:var l=e[t++],u=e[t++],h=e[t++],c=e[t++],p=e[t++],f=e[t++]+p;t+=1;var d=!e[t++];s&&(r=$o(p)*h+l,o=Qo(p)*c+u),Ho(l,u,h,c,p,f,d,qo,jo),n=$o(f)*h+l,i=Qo(f)*c+u;break;case Wo.R:Eo(r=n=e[t++],o=i=e[t++],r+e[t++],o+e[t++],qo,jo);break;case Wo.Z:n=r,i=o}Lt(Yo,Yo,qo),Pt(Xo,Xo,jo)}return 0===t&&(Yo[0]=Yo[1]=Xo[0]=Xo[1]=0),new Sn(Yo[0],Yo[1],Xo[0]-Yo[0],Xo[1]-Yo[1])},t.prototype._calculateLength=function(){var t=this.data,e=this._len,n=this._ux,i=this._uy,r=0,o=0,a=0,s=0;this._pathSegLen||(this._pathSegLen=[]);for(var l=this._pathSegLen,u=0,h=0,c=0;c<e;){var p=t[c++],f=1===c;f&&(a=r=t[c],s=o=t[c+1]);var d=-1;switch(p){case Wo.M:r=a=t[c++],o=s=t[c++];break;case Wo.L:var g=t[c++],y=(_=t[c++])-o;(ta(A=g-r)>n||ta(y)>i||c===e-1)&&(d=Math.sqrt(A*A+y*y),r=g,o=_);break;case Wo.C:var v=t[c++],m=t[c++],_=(g=t[c++],t[c++]),x=t[c++],b=t[c++];d=xo(r,o,v,m,g,_,x,b,10),r=x,o=b;break;case Wo.Q:d=Co(r,o,v=t[c++],m=t[c++],g=t[c++],_=t[c++],10),r=g,o=_;break;case Wo.A:var w=t[c++],S=t[c++],M=t[c++],T=t[c++],C=t[c++],D=t[c++],I=D+C;c+=1;t[c++];f&&(a=$o(C)*M+w,s=Qo(C)*T+S),d=Ko(M,T)*Zo(na,Math.abs(D)),r=$o(I)*M+w,o=Qo(I)*T+S;break;case Wo.R:a=r=t[c++],s=o=t[c++],d=2*t[c++]+2*t[c++];break;case Wo.Z:var A=a-r;y=s-o;d=Math.sqrt(A*A+y*y),r=a,o=s}d>=0&&(l[h++]=d,u+=d)}return this._pathLen=u,u},t.prototype.rebuildPath=function(t,e){var n,i,r,o,a,s,l,u,h=this.data,c=this._ux,p=this._uy,f=this._len,d=e<1,g=0,y=0;if(!d||(this._pathSegLen||this._calculateLength(),l=this._pathSegLen,u=e*this._pathLen))t:for(var v=0;v<f;){var m=h[v++],_=1===v;switch(_&&(n=r=h[v],i=o=h[v+1]),m){case Wo.M:n=r=h[v++],i=o=h[v++],t.moveTo(r,o);break;case Wo.L:if(a=h[v++],s=h[v++],ta(a-r)>c||ta(s-o)>p||v===f-1){if(d){if(g+(W=l[y++])>u){var x=(u-g)/W;t.lineTo(r*(1-x)+a*x,o*(1-x)+s*x);break t}g+=W}t.lineTo(a,s),r=a,o=s}break;case Wo.C:var b=h[v++],w=h[v++],S=h[v++],M=h[v++],T=h[v++],C=h[v++];if(d){if(g+(W=l[y++])>u){mo(r,b,S,T,x=(u-g)/W,Go),mo(o,w,M,C,x,Uo),t.bezierCurveTo(Go[1],Uo[1],Go[2],Uo[2],Go[3],Uo[3]);break t}g+=W}t.bezierCurveTo(b,w,S,M,T,C),r=T,o=C;break;case Wo.Q:b=h[v++],w=h[v++],S=h[v++],M=h[v++];if(d){if(g+(W=l[y++])>u){Mo(r,b,S,x=(u-g)/W,Go),Mo(o,w,M,x,Uo),t.quadraticCurveTo(Go[1],Uo[1],Go[2],Uo[2]);break t}g+=W}t.quadraticCurveTo(b,w,S,M),r=S,o=M;break;case Wo.A:var D=h[v++],I=h[v++],A=h[v++],k=h[v++],L=h[v++],P=h[v++],O=h[v++],R=!h[v++],N=A>k?A:k,E=ta(A-k)>.001,B=L+P,z=!1;if(d)g+(W=l[y++])>u&&(B=L+P*(u-g)/W,z=!0),g+=W;if(E&&t.ellipse?t.ellipse(D,I,A,k,O,L,B,R):t.arc(D,I,N,L,B,R),z)break t;_&&(n=$o(L)*A+D,i=Qo(L)*k+I),r=$o(B)*A+D,o=Qo(B)*k+I;break;case Wo.R:n=r=h[v],i=o=h[v+1],a=h[v++],s=h[v++];var F=h[v++],V=h[v++];if(d){if(g+(W=l[y++])>u){var H=u-g;t.moveTo(a,s),t.lineTo(a+Zo(H,F),s),(H-=F)>0&&t.lineTo(a+F,s+Zo(H,V)),(H-=V)>0&&t.lineTo(a+Ko(F-H,0),s+V),(H-=F)>0&&t.lineTo(a,s+Ko(V-H,0));break t}g+=W}t.rect(a,s,F,V);break;case Wo.Z:if(d){var W;if(g+(W=l[y++])>u){x=(u-g)/W;t.lineTo(r*(1-x)+n*x,o*(1-x)+i*x);break t}g+=W}t.closePath(),r=n,o=i}}},t.CMD=Wo,t.initDefaultProps=function(){var e=t.prototype;e._saveData=!0,e._needsDash=!1,e._dashOffset=0,e._dashIdx=0,e._dashSum=0,e._ux=0,e._uy=0}(),t}();function la(t,e,n,i,r,o,a){if(0===r)return!1;var s=r,l=0;if(a>e+s&&a>i+s||a<e-s&&a<i-s||o>t+s&&o>n+s||o<t-s&&o<n-s)return!1;if(t===n)return Math.abs(o-t)<=s/2;var u=(l=(e-i)/(t-n))*o-a+(t*i-n*e)/(t-n);return u*u/(l*l+1)<=s/2*s/2}function ua(t,e,n,i,r,o,a,s,l,u,h){if(0===l)return!1;var c=l;return!(h>e+c&&h>i+c&&h>o+c&&h>s+c||h<e-c&&h<i-c&&h<o-c&&h<s-c||u>t+c&&u>n+c&&u>r+c&&u>a+c||u<t-c&&u<n-c&&u<r-c&&u<a-c)&&_o(t,e,n,i,r,o,a,s,u,h,null)<=c/2}function ha(t,e,n,i,r,o,a,s,l){if(0===a)return!1;var u=a;return!(l>e+u&&l>i+u&&l>o+u||l<e-u&&l<i-u&&l<o-u||s>t+u&&s>n+u&&s>r+u||s<t-u&&s<n-u&&s<r-u)&&To(t,e,n,i,r,o,s,l,null)<=u/2}var ca=2*Math.PI;function pa(t){return(t%=ca)<0&&(t+=ca),t}var fa=2*Math.PI;function da(t,e,n,i,r,o,a,s,l){if(0===a)return!1;var u=a;s-=t,l-=e;var h=Math.sqrt(s*s+l*l);if(h-u>n||h+u<n)return!1;if(Math.abs(i-r)%fa<1e-4)return!0;if(o){var c=i;i=pa(r),r=pa(c)}else i=pa(i),r=pa(r);i>r&&(r+=fa);var p=Math.atan2(l,s);return p<0&&(p+=fa),p>=i&&p<=r||p+fa>=i&&p+fa<=r}function ga(t,e,n,i,r,o){if(o>e&&o>i||o<e&&o<i)return 0;if(i===e)return 0;var a=(o-e)/(i-e),s=i<e?1:-1;1!==a&&0!==a||(s=i<e?.5:-.5);var l=a*(n-t)+t;return l===r?1/0:l>r?s:0}var ya=sa.CMD,va=2*Math.PI;var ma=[-1,-1,-1],_a=[-1,-1];function xa(t,e,n,i,r,o,a,s,l,u){if(u>e&&u>i&&u>o&&u>s||u<e&&u<i&&u<o&&u<s)return 0;var h,c=yo(e,i,o,s,u,ma);if(0===c)return 0;for(var p=0,f=-1,d=void 0,g=void 0,y=0;y<c;y++){var v=ma[y],m=0===v||1===v?.5:1;fo(t,n,r,a,v)<l||(f<0&&(f=vo(e,i,o,s,_a),_a[1]<_a[0]&&f>1&&(h=void 0,h=_a[0],_a[0]=_a[1],_a[1]=h),d=fo(e,i,o,s,_a[0]),f>1&&(g=fo(e,i,o,s,_a[1]))),2===f?v<_a[0]?p+=d<e?m:-m:v<_a[1]?p+=g<d?m:-m:p+=s<g?m:-m:v<_a[0]?p+=d<e?m:-m:p+=s<d?m:-m)}return p}function ba(t,e,n,i,r,o,a,s){if(s>e&&s>i&&s>o||s<e&&s<i&&s<o)return 0;var l=function(t,e,n,i,r){var o=t-2*e+n,a=2*(e-t),s=t-i,l=0;if(co(o))po(a)&&(h=-s/a)>=0&&h<=1&&(r[l++]=h);else{var u=a*a-4*o*s;if(co(u))(h=-a/(2*o))>=0&&h<=1&&(r[l++]=h);else if(u>0){var h,c=io(u),p=(-a-c)/(2*o);(h=(-a+c)/(2*o))>=0&&h<=1&&(r[l++]=h),p>=0&&p<=1&&(r[l++]=p)}}return l}(e,i,o,s,ma);if(0===l)return 0;var u=So(e,i,o);if(u>=0&&u<=1){for(var h=0,c=bo(e,i,o,u),p=0;p<l;p++){var f=0===ma[p]||1===ma[p]?.5:1;bo(t,n,r,ma[p])<a||(ma[p]<u?h+=c<e?f:-f:h+=o<c?f:-f)}return h}f=0===ma[0]||1===ma[0]?.5:1;return bo(t,n,r,ma[0])<a?0:o<e?f:-f}function wa(t,e,n,i,r,o,a,s){if((s-=e)>n||s<-n)return 0;var l=Math.sqrt(n*n-s*s);ma[0]=-l,ma[1]=l;var u=Math.abs(i-r);if(u<1e-4)return 0;if(u>=va-1e-4){i=0,r=va;var h=o?1:-1;return a>=ma[0]+t&&a<=ma[1]+t?h:0}if(i>r){var c=i;i=r,r=c}i<0&&(i+=va,r+=va);for(var p=0,f=0;f<2;f++){var d=ma[f];if(d+t>a){var g=Math.atan2(s,d);h=o?1:-1;g<0&&(g=va+g),(g>=i&&g<=r||g+va>=i&&g+va<=r)&&(g>Math.PI/2&&g<1.5*Math.PI&&(h=-h),p+=h)}}return p}function Sa(t,e,n,i,r){for(var o,a,s,l,u=t.data,h=t.len(),c=0,p=0,f=0,d=0,g=0,y=0;y<h;){var v=u[y++],m=1===y;switch(v===ya.M&&y>1&&(n||(c+=ga(p,f,d,g,i,r))),m&&(d=p=u[y],g=f=u[y+1]),v){case ya.M:p=d=u[y++],f=g=u[y++];break;case ya.L:if(n){if(la(p,f,u[y],u[y+1],e,i,r))return!0}else c+=ga(p,f,u[y],u[y+1],i,r)||0;p=u[y++],f=u[y++];break;case ya.C:if(n){if(ua(p,f,u[y++],u[y++],u[y++],u[y++],u[y],u[y+1],e,i,r))return!0}else c+=xa(p,f,u[y++],u[y++],u[y++],u[y++],u[y],u[y+1],i,r)||0;p=u[y++],f=u[y++];break;case ya.Q:if(n){if(ha(p,f,u[y++],u[y++],u[y],u[y+1],e,i,r))return!0}else c+=ba(p,f,u[y++],u[y++],u[y],u[y+1],i,r)||0;p=u[y++],f=u[y++];break;case ya.A:var _=u[y++],x=u[y++],b=u[y++],w=u[y++],S=u[y++],M=u[y++];y+=1;var T=!!(1-u[y++]);o=Math.cos(S)*b+_,a=Math.sin(S)*w+x,m?(d=o,g=a):c+=ga(p,f,o,a,i,r);var C=(i-_)*w/b+_;if(n){if(da(_,x,w,S,S+M,T,e,C,r))return!0}else c+=wa(_,x,w,S,S+M,T,C,r);p=Math.cos(S+M)*b+_,f=Math.sin(S+M)*w+x;break;case ya.R:if(d=p=u[y++],g=f=u[y++],o=d+u[y++],a=g+u[y++],n){if(la(d,g,o,g,e,i,r)||la(o,g,o,a,e,i,r)||la(o,a,d,a,e,i,r)||la(d,a,d,g,e,i,r))return!0}else c+=ga(o,g,o,a,i,r),c+=ga(d,a,d,g,i,r);break;case ya.Z:if(n){if(la(p,f,d,g,e,i,r))return!0}else c+=ga(p,f,d,g,i,r);p=d,f=g}}return n||(s=f,l=g,Math.abs(s-l)<1e-4)||(c+=ga(p,f,d,g,i,r)||0),0!==c}var Ma=T({fill:"#000",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:"butt",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},Kr),Ta={style:T({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},$r.style)},Ca=["x","y","rotation","scaleX","scaleY","originX","originY","invisible","culling","z","z2","zlevel","parent"],Da=function(t){function e(e){return t.call(this,e)||this}var n;return dt(e,t),e.prototype.update=function(){var n=this;t.prototype.update.call(this);var i=this.style;if(i.decal){var r=this._decalEl=this._decalEl||new e;r.buildPath===e.prototype.buildPath&&(r.buildPath=function(t){n.buildPath(t,n.shape)}),r.silent=!0;var o=r.style;for(var a in i)o[a]!==i[a]&&(o[a]=i[a]);o.fill=i.fill?i.decal:null,o.decal=null,o.shadowColor=null,i.strokeFirst&&(o.stroke=null);for(var s=0;s<Ca.length;++s)r[Ca[s]]=this[Ca[s]];r.__dirty|=Un.REDARAW_BIT}else this._decalEl&&(this._decalEl=null)},e.prototype.getDecalElement=function(){return this._decalEl},e.prototype._init=function(e){var n=N(e);this.shape=this.getDefaultShape();var i=this.getDefaultStyle();i&&this.useStyle(i);for(var r=0;r<n.length;r++){var o=n[r],a=e[o];"style"===o?this.style?M(this.style,a):this.useStyle(a):"shape"===o?M(this.shape,a):t.prototype.attrKV.call(this,o,a)}this.style||this.useStyle({})},e.prototype.getDefaultStyle=function(){return null},e.prototype.getDefaultShape=function(){return{}},e.prototype.canBeInsideText=function(){return this.hasFill()},e.prototype.getInsideTextFill=function(){var t=this.style.fill;if("none"!==t){if(V(t)){var e=Ze(t,0);return e>.5?Bn:e>.2?"#eee":zn}if(t)return zn}return Bn},e.prototype.getInsideTextStroke=function(t){var e=this.style.fill;if(V(e)){var n=this.__zr;if(!(!n||!n.isDarkMode())===Ze(t,0)<.4)return e}},e.prototype.buildPath=function(t,e,n){},e.prototype.pathUpdated=function(){this.__dirty&=~e.SHAPE_CHANGED_BIT},e.prototype.createPathProxy=function(){this.path=new sa(!1)},e.prototype.hasStroke=function(){var t=this.style,e=t.stroke;return!(null==e||"none"===e||!(t.lineWidth>0))},e.prototype.hasFill=function(){var t=this.style.fill;return null!=t&&"none"!==t},e.prototype.getBoundingRect=function(){var t=this._rect,n=this.style,i=!t;if(i){var r=!1;this.path||(r=!0,this.createPathProxy());var o=this.path;(r||this.__dirty&e.SHAPE_CHANGED_BIT)&&(o.beginPath(),this.buildPath(o,this.shape,!1),this.pathUpdated()),t=o.getBoundingRect()}if(this._rect=t,this.hasStroke()&&this.path&&this.path.len()>0){var a=this._rectWithStroke||(this._rectWithStroke=t.clone());if(this.__dirty||i){a.copy(t);var s=n.strokeNoScale?this.getLineScale():1,l=n.lineWidth;if(!this.hasFill()){var u=this.strokeContainThreshold;l=Math.max(l,null==u?4:u)}s>1e-10&&(a.width+=l/s,a.height+=l/s,a.x-=l/s/2,a.y-=l/s/2)}return a}return t},e.prototype.contain=function(t,e){var n=this.transformCoordToLocal(t,e),i=this.getBoundingRect(),r=this.style;if(t=n[0],e=n[1],i.contain(t,e)){var o=this.path;if(this.hasStroke()){var a=r.lineWidth,s=r.strokeNoScale?this.getLineScale():1;if(s>1e-10&&(this.hasFill()||(a=Math.max(a,this.strokeContainThreshold)),function(t,e,n,i){return Sa(t,e,!0,n,i)}(o,a/s,t,e)))return!0}if(this.hasFill())return function(t,e,n){return Sa(t,0,!1,e,n)}(o,t,e)}return!1},e.prototype.dirtyShape=function(){this.__dirty|=e.SHAPE_CHANGED_BIT,this._rect&&(this._rect=null),this._decalEl&&this._decalEl.dirtyShape(),this.markRedraw()},e.prototype.dirty=function(){this.dirtyStyle(),this.dirtyShape()},e.prototype.animateShape=function(t){return this.animate("shape",t)},e.prototype.updateDuringAnimation=function(t){"style"===t?this.dirtyStyle():"shape"===t?this.dirtyShape():this.markRedraw()},e.prototype.attrKV=function(e,n){"shape"===e?this.setShape(n):t.prototype.attrKV.call(this,e,n)},e.prototype.setShape=function(t,e){var n=this.shape;return n||(n=this.shape={}),"string"==typeof t?n[t]=e:M(n,t),this.dirtyShape(),this},e.prototype.shapeChanged=function(){return!!(this.__dirty&e.SHAPE_CHANGED_BIT)},e.prototype.createStyle=function(t){return ut(Ma,t)},e.prototype._innerSaveToNormal=function(e){t.prototype._innerSaveToNormal.call(this,e);var n=this._normalState;e.shape&&!n.shape&&(n.shape=M({},this.shape))},e.prototype._applyStateObj=function(e,n,i,r,o,a){t.prototype._applyStateObj.call(this,e,n,i,r,o,a);var s,l=!(n&&r);if(n&&n.shape?o?r?s=n.shape:(s=M({},i.shape),M(s,n.shape)):(s=M({},r?this.shape:i.shape),M(s,n.shape)):l&&(s=i.shape),s)if(o){this.shape=M({},this.shape);for(var u={},h=N(s),c=0;c<h.length;c++){var p=h[c];"object"==typeof s[p]?this.shape[p]=s[p]:u[p]=s[p]}this._transitionState(e,{shape:u},a)}else this.shape=s,this.dirtyShape()},e.prototype._mergeStates=function(e){for(var n,i=t.prototype._mergeStates.call(this,e),r=0;r<e.length;r++){var o=e[r];o.shape&&(n=n||{},this._mergeStyle(n,o.shape))}return n&&(i.shape=n),i},e.prototype.getAnimationStyleProps=function(){return Ta},e.prototype.isZeroArea=function(){return!1},e.extend=function(t){var n=function(e){function n(n){var i=e.call(this,n)||this;return t.init&&t.init.call(i,n),i}return dt(n,e),n.prototype.getDefaultStyle=function(){return w(t.style)},n.prototype.getDefaultShape=function(){return w(t.shape)},n}(e);for(var i in t)"function"==typeof t[i]&&(n.prototype[i]=t[i]);return n},e.SHAPE_CHANGED_BIT=4,e.initDefaultProps=((n=e.prototype).type="path",n.strokeContainThreshold=5,n.segmentIgnoreThreshold=0,n.subPixelOptimize=!1,n.autoBatch=!1,void(n.__dirty=Un.REDARAW_BIT|Jr.STYLE_CHANGED_BIT|e.SHAPE_CHANGED_BIT)),e}(Jr),Ia=T({strokeFirst:!0,font:Tn,x:0,y:0,textAlign:"left",textBaseline:"top",miterLimit:2},Ma),Aa=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return dt(e,t),e.prototype.hasStroke=function(){var t=this.style,e=t.stroke;return null!=e&&"none"!==e&&t.lineWidth>0},e.prototype.hasFill=function(){var t=this.style.fill;return null!=t&&"none"!==t},e.prototype.createStyle=function(t){return ut(Ia,t)},e.prototype.setBoundingRect=function(t){this._rect=t},e.prototype.getBoundingRect=function(){var t=this.style;if(!this._rect){var e=t.text;null!=e?e+="":e="";var n=An(e,t.font,t.textAlign,t.textBaseline);if(n.x+=t.x||0,n.y+=t.y||0,this.hasStroke()){var i=t.lineWidth;n.x-=i/2,n.y-=i/2,n.width+=i,n.height+=i}this._rect=n}return this._rect},e.initDefaultProps=void(e.prototype.dirtyRectTolerance=10),e}(Jr);Aa.prototype.type="tspan";var ka=T({x:0,y:0},Kr),La={style:T({x:!0,y:!0,width:!0,height:!0,sx:!0,sy:!0,sWidth:!0,sHeight:!0},$r.style)};var Pa=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return dt(e,t),e.prototype.createStyle=function(t){return ut(ka,t)},e.prototype._getSize=function(t){var e=this.style,n=e[t];if(null!=n)return n;var i,r=(i=e.image)&&"string"!=typeof i&&i.width&&i.height?e.image:this.__image;if(!r)return 0;var o="width"===t?"height":"width",a=e[o];return null==a?r[t]:r[t]/r[o]*a},e.prototype.getWidth=function(){return this._getSize("width")},e.prototype.getHeight=function(){return this._getSize("height")},e.prototype.getAnimationStyleProps=function(){return La},e.prototype.getBoundingRect=function(){var t=this.style;return this._rect||(this._rect=new Sn(t.x||0,t.y||0,this.getWidth(),this.getHeight())),this._rect},e}(Jr);Pa.prototype.type="image";var Oa=Math.round;function Ra(t,e,n){if(!e)return t;var i=Oa(2*t);return(i+Oa(e))%2==0?i/2:(i+(n?1:-1))/2}var Na=function(){this.x=0,this.y=0,this.width=0,this.height=0},Ea={},Ba=function(t){function e(e){return t.call(this,e)||this}return dt(e,t),e.prototype.getDefaultShape=function(){return new Na},e.prototype.buildPath=function(t,e){var n,i,r,o;if(this.subPixelOptimize){var a=function(t,e,n){if(e){var i=e.x,r=e.y,o=e.width,a=e.height;t.x=i,t.y=r,t.width=o,t.height=a;var s=n&&n.lineWidth;return s?(t.x=Ra(i,s,!0),t.y=Ra(r,s,!0),t.width=Math.max(Ra(i+o,s,!1)-t.x,0===o?0:1),t.height=Math.max(Ra(r+a,s,!1)-t.y,0===a?0:1),t):t}}(Ea,e,this.style);n=a.x,i=a.y,r=a.width,o=a.height,a.r=e.r,e=a}else n=e.x,i=e.y,r=e.width,o=e.height;e.r?function(t,e){var n,i,r,o,a,s=e.x,l=e.y,u=e.width,h=e.height,c=e.r;u<0&&(s+=u,u=-u),h<0&&(l+=h,h=-h),"number"==typeof c?n=i=r=o=c:c instanceof Array?1===c.length?n=i=r=o=c[0]:2===c.length?(n=r=c[0],i=o=c[1]):3===c.length?(n=c[0],i=o=c[1],r=c[2]):(n=c[0],i=c[1],r=c[2],o=c[3]):n=i=r=o=0,n+i>u&&(n*=u/(a=n+i),i*=u/a),r+o>u&&(r*=u/(a=r+o),o*=u/a),i+r>h&&(i*=h/(a=i+r),r*=h/a),n+o>h&&(n*=h/(a=n+o),o*=h/a),t.moveTo(s+n,l),t.lineTo(s+u-i,l),0!==i&&t.arc(s+u-i,l+i,i,-Math.PI/2,0),t.lineTo(s+u,l+h-r),0!==r&&t.arc(s+u-r,l+h-r,r,0,Math.PI/2),t.lineTo(s+o,l+h),0!==o&&t.arc(s+o,l+h-o,o,Math.PI/2,Math.PI),t.lineTo(s,l+n),0!==n&&t.arc(s+n,l+n,n,Math.PI,1.5*Math.PI)}(t,e):t.rect(n,i,r,o)},e.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},e}(Da);Ba.prototype.type="rect";var za={fill:"#000"},Fa={style:T({fill:!0,stroke:!0,fillOpacity:!0,strokeOpacity:!0,lineWidth:!0,fontSize:!0,lineHeight:!0,width:!0,height:!0,textShadowColor:!0,textShadowBlur:!0,textShadowOffsetX:!0,textShadowOffsetY:!0,backgroundColor:!0,padding:!0,borderColor:!0,borderWidth:!0,borderRadius:!0},$r.style)},Va=function(t){function e(e){var n=t.call(this)||this;return n.type="text",n._children=[],n._defaultStyle=za,n.attr(e),n}return dt(e,t),e.prototype.childrenRef=function(){return this._children},e.prototype.update=function(){this.styleChanged()&&this._updateSubTexts();for(var e=0;e<this._children.length;e++){var n=this._children[e];n.zlevel=this.zlevel,n.z=this.z,n.z2=this.z2,n.culling=this.culling,n.cursor=this.cursor,n.invisible=this.invisible}var i=this.attachedTransform;if(i){i.updateTransform();var r=i.transform;r?(this.transform=this.transform||[],ue(this.transform,r)):this.transform=null}else t.prototype.update.call(this)},e.prototype.getComputedTransform=function(){return this.__hostTarget&&(this.__hostTarget.getComputedTransform(),this.__hostTarget.updateInnerText(!0)),this.attachedTransform?this.attachedTransform.getComputedTransform():t.prototype.getComputedTransform.call(this)},e.prototype._updateSubTexts=function(){var t;this._childCursor=0,Ga(t=this.style),L(t.rich,Ga),this.style.rich?this._updateRichTexts():this._updatePlainTexts(),this._children.length=this._childCursor,this.styleUpdated()},e.prototype.addSelfToZr=function(e){t.prototype.addSelfToZr.call(this,e);for(var n=0;n<this._children.length;n++)this._children[n].__zr=e},e.prototype.removeSelfFromZr=function(e){t.prototype.removeSelfFromZr.call(this,e);for(var n=0;n<this._children.length;n++)this._children[n].__zr=null},e.prototype.getBoundingRect=function(){if(this.styleChanged()&&this._updateSubTexts(),!this._rect){for(var t=new Sn(0,0,0,0),e=this._children,n=[],i=null,r=0;r<e.length;r++){var o=e[r],a=o.getBoundingRect(),s=o.getLocalTransform(n);s?(t.copy(a),t.applyTransform(s),(i=i||t.clone()).union(t)):(i=i||a.clone()).union(a)}this._rect=i||t}return this._rect},e.prototype.setDefaultTextStyle=function(t){this._defaultStyle=t||za},e.prototype.setTextContent=function(t){throw new Error("Can't attach text on another text")},e.prototype._mergeStyle=function(t,e){if(!e)return t;var n=e.rich,i=t.rich||n&&{};return M(t,e),n&&i?(this._mergeRich(i,n),t.rich=i):i&&(t.rich=i),t},e.prototype._mergeRich=function(t,e){for(var n=N(e),i=0;i<n.length;i++){var r=n[i];t[r]=t[r]||{},M(t[r],e[r])}},e.prototype.getAnimationStyleProps=function(){return Fa},e.prototype._getOrCreateChild=function(t){var e=this._children[this._childCursor];return e&&e instanceof t||(e=new t),this._children[this._childCursor++]=e,e.__zr=this.__zr,e.parent=this,e},e.prototype._updatePlainTexts=function(){var t=this.style,e=t.font||Tn,n=t.padding,i=function(t,e){null!=t&&(t+="");var n,i=e.overflow,r=e.padding,o=e.font,a="truncate"===i,s=Pn(o),l=Q(e.lineHeight,s),u="truncate"===e.lineOverflow,h=e.width,c=(n=null!=h&&"break"===i||"breakAll"===i?t?jr(t,e.font,h,"breakAll"===i,0).lines:[]:t?t.split("\n"):[]).length*l,p=Q(e.height,c);if(c>p&&u){var f=Math.floor(p/l);n=n.slice(0,f)}var d=p,g=h;if(r&&(d+=r[0]+r[2],null!=g&&(g+=r[1]+r[3])),t&&a&&null!=g)for(var y=Fr(h,o,e.ellipsis,{minChar:e.truncateMinChar,placeholder:e.placeholder}),v=0;v<n.length;v++)n[v]=Vr(n[v],y);if(null==h){var m=0;for(v=0;v<n.length;v++)m=Math.max(Dn(n[v],o),m);h=m}return{lines:n,height:p,outerHeight:d,lineHeight:l,calculatedLineHeight:s,contentHeight:c,width:h}}(Xa(t),t),r=qa(t),o=!!t.backgroundColor,a=i.outerHeight,s=i.lines,l=i.lineHeight,u=this._defaultStyle,h=t.x||0,c=t.y||0,p=t.align||u.align||"left",f=t.verticalAlign||u.verticalAlign||"top",d=h,g=Ln(c,i.contentHeight,f);if(r||n){var y=i.width;n&&(y+=n[1]+n[3]);var v=kn(h,y,p),m=Ln(c,a,f);r&&this._renderBackground(t,t,v,m,y,a)}g+=l/2,n&&(d=Ya(h,p,n),"top"===f?g+=n[0]:"bottom"===f&&(g-=n[2]));for(var _,x=0,b=!1,w=(null==(_="fill"in t?t.fill:(b=!0,u.fill))||"none"===_?null:_.image||_.colorStops?"#000":_),S=(Ua("stroke"in t?t.stroke:o||u.autoStroke&&!b?null:(x=2,u.stroke))),M=t.textShadowBlur>0,T=null!=t.width&&("truncate"===t.overflow||"break"===t.overflow||"breakAll"===t.overflow),C=i.calculatedLineHeight,D=0;D<s.length;D++){var I=this._getOrCreateChild(Aa),A=I.createStyle();I.useStyle(A),A.text=s[D],A.x=d,A.y=g,p&&(A.textAlign=p),A.textBaseline="middle",A.opacity=t.opacity,A.strokeFirst=!0,M&&(A.shadowBlur=t.textShadowBlur||0,A.shadowColor=t.textShadowColor||"transparent",A.shadowOffsetX=t.textShadowOffsetX||0,A.shadowOffsetY=t.textShadowOffsetY||0),S&&(A.stroke=S,A.lineWidth=t.lineWidth||x,A.lineDash=t.lineDash,A.lineDashOffset=t.lineDashOffset||0),w&&(A.fill=w),A.font=e,g+=l,T&&I.setBoundingRect(new Sn(kn(A.x,t.width,A.textAlign),Ln(A.y,C,A.textBaseline),t.width,C))}},e.prototype._updateRichTexts=function(){var t=this.style,e=function(t,e){var n=new Ur;if(null!=t&&(t+=""),!t)return n;for(var i,r=e.width,o=e.height,a=e.overflow,s="break"!==a&&"breakAll"!==a||null==r?null:{width:r,accumWidth:0,breakAll:"breakAll"===a},l=Br.lastIndex=0;null!=(i=Br.exec(t));){var u=i.index;u>l&&Yr(n,t.substring(l,u),e,s),Yr(n,i[2],e,s,i[1]),l=Br.lastIndex}l<t.length&&Yr(n,t.substring(l,t.length),e,s);var h=[],c=0,p=0,f=e.padding,d="truncate"===a,g="truncate"===e.lineOverflow;function y(t,e,n){t.width=e,t.lineHeight=n,c+=n,p=Math.max(p,e)}t:for(var v=0;v<n.lines.length;v++){for(var m=n.lines[v],_=0,x=0,b=0;b<m.tokens.length;b++){var w=(P=m.tokens[b]).styleName&&e.rich[P.styleName]||{},S=P.textPadding=w.padding,M=S?S[1]+S[3]:0,T=P.font=w.font||e.font;P.contentHeight=Pn(T);var C=Q(w.height,P.contentHeight);if(P.innerHeight=C,S&&(C+=S[0]+S[2]),P.height=C,P.lineHeight=J(w.lineHeight,e.lineHeight,C),P.align=w&&w.align||e.align,P.verticalAlign=w&&w.verticalAlign||"middle",g&&null!=o&&c+P.lineHeight>o){b>0?(m.tokens=m.tokens.slice(0,b),y(m,x,_),n.lines=n.lines.slice(0,v+1)):n.lines=n.lines.slice(0,v);break t}var D=w.width,I=null==D||"auto"===D;if("string"==typeof D&&"%"===D.charAt(D.length-1))P.percentWidth=D,h.push(P),P.contentWidth=Dn(P.text,T);else{if(I){var A=w.backgroundColor,k=A&&A.image;k&&Er(k=Or(k))&&(P.width=Math.max(P.width,k.width*C/k.height))}var L=d&&null!=r?r-x:null;null!=L&&L<P.width?!I||L<M?(P.text="",P.width=P.contentWidth=0):(P.text=zr(P.text,L-M,T,e.ellipsis,{minChar:e.truncateMinChar}),P.width=P.contentWidth=Dn(P.text,T)):P.contentWidth=Dn(P.text,T)}P.width+=M,x+=P.width,w&&(_=Math.max(_,P.lineHeight))}y(m,x,_)}for(n.outerWidth=n.width=Q(r,p),n.outerHeight=n.height=Q(o,c),n.contentHeight=c,n.contentWidth=p,f&&(n.outerWidth+=f[1]+f[3],n.outerHeight+=f[0]+f[2]),v=0;v<h.length;v++){var P,O=(P=h[v]).percentWidth;P.width=parseInt(O,10)/100*n.width}return n}(Xa(t),t),n=e.width,i=e.outerWidth,r=e.outerHeight,o=t.padding,a=t.x||0,s=t.y||0,l=this._defaultStyle,u=t.align||l.align,h=t.verticalAlign||l.verticalAlign,c=kn(a,i,u),p=Ln(s,r,h),f=c,d=p;o&&(f+=o[3],d+=o[0]);var g=f+n;qa(t)&&this._renderBackground(t,t,c,p,i,r);for(var y=!!t.backgroundColor,v=0;v<e.lines.length;v++){for(var m=e.lines[v],_=m.tokens,x=_.length,b=m.lineHeight,w=m.width,S=0,M=f,T=g,C=x-1,D=void 0;S<x&&(!(D=_[S]).align||"left"===D.align);)this._placeToken(D,t,b,d,M,"left",y),w-=D.width,M+=D.width,S++;for(;C>=0&&"right"===(D=_[C]).align;)this._placeToken(D,t,b,d,T,"right",y),w-=D.width,T-=D.width,C--;for(M+=(n-(M-f)-(g-T)-w)/2;S<=C;)D=_[S],this._placeToken(D,t,b,d,M+D.width/2,"center",y),M+=D.width,S++;d+=b}},e.prototype._placeToken=function(t,e,n,i,r,o,a){var s=e.rich[t.styleName]||{};s.text=t.text;var l=t.verticalAlign,u=i+n/2;"top"===l?u=i+t.height/2:"bottom"===l&&(u=i+n-t.height/2),!t.isLineHolder&&qa(s)&&this._renderBackground(s,e,"right"===o?r-t.width:"center"===o?r-t.width/2:r,u-t.height/2,t.width,t.height);var h=!!s.backgroundColor,c=t.textPadding;c&&(r=Ya(r,o,c),u-=t.height/2-c[0]-t.innerHeight/2);var p=this._getOrCreateChild(Aa),f=p.createStyle();p.useStyle(f);var d=this._defaultStyle,g=!1,y=0,v=Ua("fill"in s?s.fill:"fill"in e?e.fill:(g=!0,d.fill)),m=Ua("stroke"in s?s.stroke:"stroke"in e?e.stroke:h||a||d.autoStroke&&!g?null:(y=2,d.stroke)),_=s.textShadowBlur>0||e.textShadowBlur>0;f.text=t.text,f.x=r,f.y=u,_&&(f.shadowBlur=s.textShadowBlur||e.textShadowBlur||0,f.shadowColor=s.textShadowColor||e.textShadowColor||"transparent",f.shadowOffsetX=s.textShadowOffsetX||e.textShadowOffsetX||0,f.shadowOffsetY=s.textShadowOffsetY||e.textShadowOffsetY||0),f.textAlign=o,f.textBaseline="middle",f.font=t.font||Tn,f.opacity=J(s.opacity,e.opacity,1),m&&(f.lineWidth=J(s.lineWidth,e.lineWidth,y),f.lineDash=Q(s.lineDash,e.lineDash),f.lineDashOffset=e.lineDashOffset||0,f.stroke=m),v&&(f.fill=v);var x=t.contentWidth,b=t.contentHeight;p.setBoundingRect(new Sn(kn(f.x,x,f.textAlign),Ln(f.y,b,f.textBaseline),x,b))},e.prototype._renderBackground=function(t,e,n,i,r,o){var a,s,l,u=t.backgroundColor,h=t.borderWidth,c=t.borderColor,p=V(u),f=t.borderRadius,d=this;if(p||h&&c){(a=this._getOrCreateChild(Ba)).useStyle(a.createStyle()),a.style.fill=null;var g=a.shape;g.x=n,g.y=i,g.width=r,g.height=o,g.r=f,a.dirtyShape()}if(p)(l=a.style).fill=u||null,l.fillOpacity=Q(t.fillOpacity,1);else if(u&&u.image){(s=this._getOrCreateChild(Pa)).onload=function(){d.dirtyStyle()};var y=s.style;y.image=u.image,y.x=n,y.y=i,y.width=r,y.height=o}h&&c&&((l=a.style).lineWidth=h,l.stroke=c,l.strokeOpacity=Q(t.strokeOpacity,1),l.lineDash=t.borderDash,l.lineDashOffset=t.borderDashOffset||0,a.strokeContainThreshold=0,a.hasFill()&&a.hasStroke()&&(l.strokeFirst=!0,l.lineWidth*=2));var v=(a||s).style;v.shadowBlur=t.shadowBlur||0,v.shadowColor=t.shadowColor||"transparent",v.shadowOffsetX=t.shadowOffsetX||0,v.shadowOffsetY=t.shadowOffsetY||0,v.opacity=J(t.opacity,e.opacity,1)},e.makeFont=function(t){var e="";if(t.fontSize||t.fontFamily||t.fontWeight){var n="";n="string"!=typeof t.fontSize||-1===t.fontSize.indexOf("px")&&-1===t.fontSize.indexOf("rem")&&-1===t.fontSize.indexOf("em")?isNaN(+t.fontSize)?"12px":t.fontSize+"px":t.fontSize,e=[t.fontStyle,t.fontWeight,n,t.fontFamily||"sans-serif"].join(" ")}return e&&it(e)||t.textFont||t.font},e}(Jr),Ha={left:!0,right:1,center:1},Wa={top:1,bottom:1,middle:1};function Ga(t){if(t){t.font=Va.makeFont(t);var e=t.align;"middle"===e&&(e="center"),t.align=null==e||Ha[e]?e:"left";var n=t.verticalAlign;"center"===n&&(n="middle"),t.verticalAlign=null==n||Wa[n]?n:"top",t.padding&&(t.padding=et(t.padding))}}function Ua(t,e){return null==t||e<=0||"transparent"===t||"none"===t?null:t.image||t.colorStops?"#000":t}function Ya(t,e,n){return"right"===e?t-n[1]:"center"===e?t+n[3]/2-n[1]/2:t+n[3]}function Xa(t){var e=t.text;return null!=e&&(e+=""),e}function qa(t){return!!(t.backgroundColor||t.borderWidth&&t.borderColor)}var ja=pr(),Za=1,Ka={},$a=pr(),Qa=["emphasis","blur","select"],Ja=["normal","emphasis","blur","select"],ts="highlight",es="downplay",ns="select",is="unselect",rs="toggleSelect";function os(t){return null!=t&&"none"!==t}var as=new Ie(100);function ss(t){if("string"!=typeof t)return t;var e=as.get(t);return e||(e=Ge(t,-.1),as.put(t,e)),e}function ls(t,e,n){t.onHoverStateChange&&(t.hoverState||0)!==n&&t.onHoverStateChange(e),t.hoverState=n}function us(t){ls(t,"emphasis",2)}function hs(t){2===t.hoverState&&ls(t,"normal",0)}function cs(t){ls(t,"blur",1)}function ps(t){1===t.hoverState&&ls(t,"normal",0)}function fs(t){t.selected=!0}function ds(t){t.selected=!1}function gs(t,e,n){e(t,n)}function ys(t,e,n){gs(t,e,n),t.isGroup&&t.traverse((function(t){gs(t,e,n)}))}function vs(t,e){switch(e){case"emphasis":t.hoverState=2;break;case"normal":t.hoverState=0;break;case"blur":t.hoverState=1;break;case"select":t.selected=!0}}function ms(t,e){var n=this.states[t];if(this.style){if("emphasis"===t)return function(t,e,n,i){var r=n&&D(n,"select")>=0,o=!1;if(t instanceof Da){var a=$a(t),s=r&&a.selectFill||a.normalFill,l=r&&a.selectStroke||a.normalStroke;if(os(s)||os(l)){var u=(i=i||{}).style||{};!os(u.fill)&&os(s)?(o=!0,i=M({},i),(u=M({},u)).fill=ss(s)):!os(u.stroke)&&os(l)&&(o||(i=M({},i),u=M({},u)),u.stroke=ss(l)),i.style=u}}if(i&&null==i.z2){o||(i=M({},i));var h=t.z2EmphasisLift;i.z2=t.z2+(null!=h?h:10)}return i}(this,0,e,n);if("blur"===t)return function(t,e,n){var i=D(t.currentStates,e)>=0,r=t.style.opacity,o=i?null:function(t,e,n,i){for(var r=t.style,o={},a=0;a<e.length;a++){var s=e[a],l=r[s];o[s]=null==l?i&&i[s]:l}for(a=0;a<t.animators.length;a++){var u=t.animators[a];u.__fromStateTransition&&u.__fromStateTransition.indexOf(n)<0&&"style"===u.targetName&&u.saveFinalToTarget(o,e)}return o}(t,["opacity"],e,{opacity:1}),a=(n=n||{}).style||{};return null==a.opacity&&(n=M({},n),a=M({opacity:i?r:.1*o.opacity},a),n.style=a),n}(this,t,n);if("select"===t)return function(t,e,n){if(n&&null==n.z2){n=M({},n);var i=t.z2SelectLift;n.z2=t.z2+(null!=i?i:9)}return n}(this,0,n)}return n}function _s(t){t.stateProxy=ms;var e=t.getTextContent(),n=t.getTextGuideLine();e&&(e.stateProxy=ms),n&&(n.stateProxy=ms)}function xs(t,e){t.__highByOuter|=1<<(e||0),ys(t,us)}function bs(t,e){!(t.__highByOuter&=~(1<<(e||0)))&&ys(t,hs)}function ws(t){ys(t,ps)}function Ss(t){ys(t,fs)}function Ms(t){ys(t,ds)}function Ts(t,e){return t.__highDownSilentOnTouch&&e.zrByTouch}function Cs(t,e,n,i,r){var o=i.getModel();function a(t,e){for(var n=0;n<e.length;n++){var i=t.getItemGraphicEl(e[n]);i&&ws(i)}}if(n=n||"coordinateSystem",r){if(null!=t&&e&&"none"!==e){var s=o.getSeriesByIndex(t),l=s.coordinateSystem;l&&l.master&&(l=l.master);var u=[];o.eachSeries((function(t){var r=s===t,o=t.coordinateSystem;if(o&&o.master&&(o=o.master),!("series"===n&&!r||"coordinateSystem"===n&&!(o&&l?o===l:r)||"series"===e&&r)){if(i.getViewOfSeriesModel(t).group.traverse((function(t){cs(t)})),k(e))a(t.getData(),e);else if(G(e))for(var h=N(e),c=0;c<h.length;c++)a(t.getData(h[c]),e[h[c]]);u.push(t)}})),o.eachComponent((function(t,e){if("series"!==t){var n=i.getViewOfComponentModel(e);n&&n.blurSeries&&n.blurSeries(u,o)}}))}}else!function(t){t.getModel().eachComponent((function(e,n){("series"===e?t.getViewOfSeriesModel(n):t.getViewOfComponentModel(n)).group.traverse((function(t){ps(t)}))}))}(i)}function Ds(t){L(t.getAllData(),(function(e){var n=e.data,i=e.type;n.eachItemGraphicEl((function(e,n){t.isSelected(n,i)?Ss(e):Ms(e)}))}))}function Is(t){var e=[];return t.eachSeries((function(t){L(t.getAllData(),(function(n){n.data;var i=n.type,r=t.getSelectedDataIndices();if(r.length>0){var o={dataIndex:r,seriesIndex:t.seriesIndex};null!=i&&(o.dataType=i),e.push(o)}}))})),e}function As(t,e,n){!function(t,e){var n=!1===e,i=t;t.highDownSilentOnTouch&&(i.__highDownSilentOnTouch=t.highDownSilentOnTouch);n&&!i.__highDownDispatcher||(i.__highByOuter=i.__highByOuter||0,i.__highDownDispatcher=!n)}(t,!0),ys(t,_s),function(t,e,n){var i=ja(t);null!=e?(i.focus=e,i.blurScope=n):i.focus&&(i.focus=null)}(t,e,n)}var ks=["emphasis","blur","select"],Ls={itemStyle:"getItemStyle",lineStyle:"getLineStyle",areaStyle:"getAreaStyle"};function Ps(t,e,n,i){n=n||"itemStyle";for(var r=0;r<ks.length;r++){var o=ks[r],a=e.getModel([o,n]);t.ensureState(o).style=i?i(a):a[Ls[n]]()}}function Os(t){return!(!t||!t.__highDownDispatcher)}function Rs(t){var e=t.type;return e===ns||e===is||e===rs}function Ns(t){var e=t.type;return e===ts||e===es}var Es=sa.CMD,Bs=[[],[],[]],zs=Math.sqrt,Fs=Math.atan2;var Vs=Math.sqrt,Hs=Math.sin,Ws=Math.cos,Gs=Math.PI;function Us(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function Ys(t,e){return(t[0]*e[0]+t[1]*e[1])/(Us(t)*Us(e))}function Xs(t,e){return(t[0]*e[1]<t[1]*e[0]?-1:1)*Math.acos(Ys(t,e))}function qs(t,e,n,i,r,o,a,s,l,u,h){var c=l*(Gs/180),p=Ws(c)*(t-n)/2+Hs(c)*(e-i)/2,f=-1*Hs(c)*(t-n)/2+Ws(c)*(e-i)/2,d=p*p/(a*a)+f*f/(s*s);d>1&&(a*=Vs(d),s*=Vs(d));var g=(r===o?-1:1)*Vs((a*a*(s*s)-a*a*(f*f)-s*s*(p*p))/(a*a*(f*f)+s*s*(p*p)))||0,y=g*a*f/s,v=g*-s*p/a,m=(t+n)/2+Ws(c)*y-Hs(c)*v,_=(e+i)/2+Hs(c)*y+Ws(c)*v,x=Xs([1,0],[(p-y)/a,(f-v)/s]),b=[(p-y)/a,(f-v)/s],w=[(-1*p-y)/a,(-1*f-v)/s],S=Xs(b,w);if(Ys(b,w)<=-1&&(S=Gs),Ys(b,w)>=1&&(S=0),S<0){var M=Math.round(S/Gs*1e6)/1e6;S=2*Gs+M%2*Gs}h.addData(u,m,_,a,s,x,S,c,o)}var js=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/gi,Zs=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;var Ks=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return dt(e,t),e.prototype.applyTransform=function(t){},e}(Da);function $s(t){return null!=t.setData}function Qs(t,e){var n=function(t){var e=new sa;if(!t)return e;var n,i=0,r=0,o=i,a=r,s=sa.CMD,l=t.match(js);if(!l)return e;for(var u=0;u<l.length;u++){for(var h=l[u],c=h.charAt(0),p=void 0,f=h.match(Zs)||[],d=f.length,g=0;g<d;g++)f[g]=parseFloat(f[g]);for(var y=0;y<d;){var v=void 0,m=void 0,_=void 0,x=void 0,b=void 0,w=void 0,S=void 0,M=i,T=r,C=void 0,D=void 0;switch(c){case"l":i+=f[y++],r+=f[y++],p=s.L,e.addData(p,i,r);break;case"L":i=f[y++],r=f[y++],p=s.L,e.addData(p,i,r);break;case"m":i+=f[y++],r+=f[y++],p=s.M,e.addData(p,i,r),o=i,a=r,c="l";break;case"M":i=f[y++],r=f[y++],p=s.M,e.addData(p,i,r),o=i,a=r,c="L";break;case"h":i+=f[y++],p=s.L,e.addData(p,i,r);break;case"H":i=f[y++],p=s.L,e.addData(p,i,r);break;case"v":r+=f[y++],p=s.L,e.addData(p,i,r);break;case"V":r=f[y++],p=s.L,e.addData(p,i,r);break;case"C":p=s.C,e.addData(p,f[y++],f[y++],f[y++],f[y++],f[y++],f[y++]),i=f[y-2],r=f[y-1];break;case"c":p=s.C,e.addData(p,f[y++]+i,f[y++]+r,f[y++]+i,f[y++]+r,f[y++]+i,f[y++]+r),i+=f[y-2],r+=f[y-1];break;case"S":v=i,m=r,C=e.len(),D=e.data,n===s.C&&(v+=i-D[C-4],m+=r-D[C-3]),p=s.C,M=f[y++],T=f[y++],i=f[y++],r=f[y++],e.addData(p,v,m,M,T,i,r);break;case"s":v=i,m=r,C=e.len(),D=e.data,n===s.C&&(v+=i-D[C-4],m+=r-D[C-3]),p=s.C,M=i+f[y++],T=r+f[y++],i+=f[y++],r+=f[y++],e.addData(p,v,m,M,T,i,r);break;case"Q":M=f[y++],T=f[y++],i=f[y++],r=f[y++],p=s.Q,e.addData(p,M,T,i,r);break;case"q":M=f[y++]+i,T=f[y++]+r,i+=f[y++],r+=f[y++],p=s.Q,e.addData(p,M,T,i,r);break;case"T":v=i,m=r,C=e.len(),D=e.data,n===s.Q&&(v+=i-D[C-4],m+=r-D[C-3]),i=f[y++],r=f[y++],p=s.Q,e.addData(p,v,m,i,r);break;case"t":v=i,m=r,C=e.len(),D=e.data,n===s.Q&&(v+=i-D[C-4],m+=r-D[C-3]),i+=f[y++],r+=f[y++],p=s.Q,e.addData(p,v,m,i,r);break;case"A":_=f[y++],x=f[y++],b=f[y++],w=f[y++],S=f[y++],qs(M=i,T=r,i=f[y++],r=f[y++],w,S,_,x,b,p=s.A,e);break;case"a":_=f[y++],x=f[y++],b=f[y++],w=f[y++],S=f[y++],qs(M=i,T=r,i+=f[y++],r+=f[y++],w,S,_,x,b,p=s.A,e)}}"z"!==c&&"Z"!==c||(p=s.Z,e.addData(p),i=o,r=a),n=p}return e.toStatic(),e}(t),i=M({},e);return i.buildPath=function(t){if($s(t)){t.setData(n.data),(e=t.getContext())&&t.rebuildPath(e,1)}else{var e=t;n.rebuildPath(e,1)}},i.applyTransform=function(t){!function(t,e){var n,i,r,o,a,s,l=t.data,u=t.len(),h=Es.M,c=Es.C,p=Es.L,f=Es.R,d=Es.A,g=Es.Q;for(r=0,o=0;r<u;){switch(n=l[r++],o=r,i=0,n){case h:case p:i=1;break;case c:i=3;break;case g:i=2;break;case d:var y=e[4],v=e[5],m=zs(e[0]*e[0]+e[1]*e[1]),_=zs(e[2]*e[2]+e[3]*e[3]),x=Fs(-e[1]/_,e[0]/m);l[r]*=m,l[r++]+=y,l[r]*=_,l[r++]+=v,l[r++]*=m,l[r++]*=_,l[r++]+=x,l[r++]+=x,o=r+=2;break;case f:s[0]=l[r++],s[1]=l[r++],kt(s,s,e),l[o++]=s[0],l[o++]=s[1],s[0]+=l[r++],s[1]+=l[r++],kt(s,s,e),l[o++]=s[0],l[o++]=s[1]}for(a=0;a<i;a++){var b=Bs[a];b[0]=l[r++],b[1]=l[r++],kt(b,b,e),l[o++]=b[0],l[o++]=b[1]}}t.increaseVersion()}(n,t),this.dirtyShape()},i}var Js=function(){this.cx=0,this.cy=0,this.r=0},tl=function(t){function e(e){return t.call(this,e)||this}return dt(e,t),e.prototype.getDefaultShape=function(){return new Js},e.prototype.buildPath=function(t,e,n){n&&t.moveTo(e.cx+e.r,e.cy),t.arc(e.cx,e.cy,e.r,0,2*Math.PI)},e}(Da);tl.prototype.type="circle";var el=function(){this.cx=0,this.cy=0,this.rx=0,this.ry=0},nl=function(t){function e(e){return t.call(this,e)||this}return dt(e,t),e.prototype.getDefaultShape=function(){return new el},e.prototype.buildPath=function(t,e){var n=.5522848,i=e.cx,r=e.cy,o=e.rx,a=e.ry,s=o*n,l=a*n;t.moveTo(i-o,r),t.bezierCurveTo(i-o,r-l,i-s,r-a,i,r-a),t.bezierCurveTo(i+s,r-a,i+o,r-l,i+o,r),t.bezierCurveTo(i+o,r+l,i+s,r+a,i,r+a),t.bezierCurveTo(i-s,r+a,i-o,r+l,i-o,r),t.closePath()},e}(Da);nl.prototype.type="ellipse";var il=Math.PI,rl=2*il,ol=Math.sin,al=Math.cos,sl=Math.acos,ll=Math.atan2,ul=Math.abs,hl=Math.sqrt,cl=Math.max,pl=Math.min,fl=1e-4;function dl(t,e,n,i,r,o,a){var s=t-n,l=e-i,u=(a?o:-o)/hl(s*s+l*l),h=u*l,c=-u*s,p=t+h,f=e+c,d=n+h,g=i+c,y=(p+d)/2,v=(f+g)/2,m=d-p,_=g-f,x=m*m+_*_,b=r-o,w=p*g-d*f,S=(_<0?-1:1)*hl(cl(0,b*b*x-w*w)),M=(w*_-m*S)/x,T=(-w*m-_*S)/x,C=(w*_+m*S)/x,D=(-w*m+_*S)/x,I=M-y,A=T-v,k=C-y,L=D-v;return I*I+A*A>k*k+L*L&&(M=C,T=D),{cx:M,cy:T,x01:-h,y01:-c,x11:M*(r/b-1),y11:T*(r/b-1)}}function gl(t,e){var n=cl(e.r,0),i=cl(e.r0||0,0),r=n>0;if(r||i>0){if(r||(n=i,i=0),i>n){var o=n;n=i,i=o}var a=!!e.clockwise,s=e.startAngle,l=e.endAngle,u=[s,l];aa(u,!a);var h=ul(u[0]-u[1]),c=e.cx,p=e.cy,f=e.cornerRadius||0,d=e.innerCornerRadius||0;if(n>fl)if(h>rl-fl)t.moveTo(c+n*al(s),p+n*ol(s)),t.arc(c,p,n,s,l,!a),i>fl&&(t.moveTo(c+i*al(l),p+i*ol(l)),t.arc(c,p,i,l,s,a));else{var g=ul(n-i)/2,y=pl(g,f),v=pl(g,d),m=v,_=y,x=n*al(s),b=n*ol(s),w=i*al(l),S=i*ol(l),M=void 0,T=void 0,C=void 0,D=void 0;if((y>fl||v>fl)&&(M=n*al(l),T=n*ol(l),C=i*al(s),D=i*ol(s),h<il)){var I=function(t,e,n,i,r,o,a,s){var l=n-t,u=i-e,h=a-r,c=s-o,p=c*l-h*u;if(!(p*p<fl))return[t+(p=(h*(e-o)-c*(t-r))/p)*l,e+p*u]}(x,b,C,D,M,T,w,S);if(I){var A=x-I[0],k=b-I[1],L=M-I[0],P=T-I[1],O=1/ol(sl((A*L+k*P)/(hl(A*A+k*k)*hl(L*L+P*P)))/2),R=hl(I[0]*I[0]+I[1]*I[1]);m=pl(v,(i-R)/(O-1)),_=pl(y,(n-R)/(O+1))}}if(h>fl)if(_>fl){var N=dl(C,D,x,b,n,_,a),E=dl(M,T,w,S,n,_,a);t.moveTo(c+N.cx+N.x01,p+N.cy+N.y01),_<y?t.arc(c+N.cx,p+N.cy,_,ll(N.y01,N.x01),ll(E.y01,E.x01),!a):(t.arc(c+N.cx,p+N.cy,_,ll(N.y01,N.x01),ll(N.y11,N.x11),!a),t.arc(c,p,n,ll(N.cy+N.y11,N.cx+N.x11),ll(E.cy+E.y11,E.cx+E.x11),!a),t.arc(c+E.cx,p+E.cy,_,ll(E.y11,E.x11),ll(E.y01,E.x01),!a))}else t.moveTo(c+x,p+b),t.arc(c,p,n,s,l,!a);else t.moveTo(c+x,p+b);if(i>fl&&h>fl)if(m>fl){N=dl(w,S,M,T,i,-m,a),E=dl(x,b,C,D,i,-m,a);t.lineTo(c+N.cx+N.x01,p+N.cy+N.y01),m<v?t.arc(c+N.cx,p+N.cy,m,ll(N.y01,N.x01),ll(E.y01,E.x01),!a):(t.arc(c+N.cx,p+N.cy,m,ll(N.y01,N.x01),ll(N.y11,N.x11),!a),t.arc(c,p,i,ll(N.cy+N.y11,N.cx+N.x11),ll(E.cy+E.y11,E.cx+E.x11),a),t.arc(c+E.cx,p+E.cy,m,ll(E.y11,E.x11),ll(E.y01,E.x01),!a))}else t.lineTo(c+w,p+S),t.arc(c,p,i,l,s,a);else t.lineTo(c+w,p+S)}else t.moveTo(c,p);t.closePath()}}var yl=function(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0,this.cornerRadius=0,this.innerCornerRadius=0},vl=function(t){function e(e){return t.call(this,e)||this}return dt(e,t),e.prototype.getDefaultShape=function(){return new yl},e.prototype.buildPath=function(t,e){gl(t,e)},e.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},e}(Da);vl.prototype.type="sector";var ml=function(){this.cx=0,this.cy=0,this.r=0,this.r0=0},_l=function(t){function e(e){return t.call(this,e)||this}return dt(e,t),e.prototype.getDefaultShape=function(){return new ml},e.prototype.buildPath=function(t,e){var n=e.cx,i=e.cy,r=2*Math.PI;t.moveTo(n+e.r,i),t.arc(n,i,e.r,0,r,!1),t.moveTo(n+e.r0,i),t.arc(n,i,e.r0,0,r,!0)},e}(Da);function xl(t,e,n,i,r,o,a){var s=.5*(n-t),l=.5*(i-e);return(2*(e-n)+s+l)*a+(-3*(e-n)-2*s-l)*o+s*r+e}function bl(t,e,n){var i=e.smooth,r=e.points;if(r&&r.length>=2){if(i&&"spline"!==i){var o=function(t,e,n,i){var r,o,a,s,l=[],u=[],h=[],c=[];if(i){a=[1/0,1/0],s=[-1/0,-1/0];for(var p=0,f=t.length;p<f;p++)Lt(a,a,t[p]),Pt(s,s,t[p]);Lt(a,a,i[0]),Pt(s,s,i[1])}for(p=0,f=t.length;p<f;p++){var d=t[p];if(n)r=t[p?p-1:f-1],o=t[(p+1)%f];else{if(0===p||p===f-1){l.push(yt(t[p]));continue}r=t[p-1],o=t[p+1]}mt(u,o,r),St(u,u,e);var g=Tt(d,r),y=Tt(d,o),v=g+y;0!==v&&(g/=v,y/=v),St(h,u,-g),St(c,u,y);var m=vt([],d,h),_=vt([],d,c);i&&(Pt(m,m,a),Lt(m,m,s),Pt(_,_,a),Lt(_,_,s)),l.push(m),l.push(_)}return n&&l.push(l.shift()),l}(r,i,n,e.smoothConstraint);t.moveTo(r[0][0],r[0][1]);for(var a=r.length,s=0;s<(n?a:a-1);s++){var l=o[2*s],u=o[2*s+1],h=r[(s+1)%a];t.bezierCurveTo(l[0],l[1],u[0],u[1],h[0],h[1])}}else{"spline"===i&&(r=function(t,e){for(var n=t.length,i=[],r=0,o=1;o<n;o++)r+=Tt(t[o-1],t[o]);var a=r/2;for(a=a<n?n:a,o=0;o<a;o++){var s=o/(a-1)*(e?n:n-1),l=Math.floor(s),u=s-l,h=void 0,c=t[l%n],p=void 0,f=void 0;e?(h=t[(l-1+n)%n],p=t[(l+1)%n],f=t[(l+2)%n]):(h=t[0===l?l:l-1],p=t[l>n-2?n-1:l+1],f=t[l>n-3?n-1:l+2]);var d=u*u,g=u*d;i.push([xl(h[0],c[0],p[0],f[0],u,d,g),xl(h[1],c[1],p[1],f[1],u,d,g)])}return i}(r,n)),t.moveTo(r[0][0],r[0][1]);s=1;for(var c=r.length;s<c;s++)t.lineTo(r[s][0],r[s][1])}n&&t.closePath()}}_l.prototype.type="ring";var wl=function(){this.points=null,this.smooth=0,this.smoothConstraint=null},Sl=function(t){function e(e){return t.call(this,e)||this}return dt(e,t),e.prototype.getDefaultShape=function(){return new wl},e.prototype.buildPath=function(t,e){bl(t,e,!0)},e}(Da);Sl.prototype.type="polygon";var Ml=function(){this.points=null,this.percent=1,this.smooth=0,this.smoothConstraint=null},Tl=function(t){function e(e){return t.call(this,e)||this}return dt(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new Ml},e.prototype.buildPath=function(t,e){bl(t,e,!1)},e}(Da);Tl.prototype.type="polyline";var Cl={},Dl=function(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.percent=1},Il=function(t){function e(e){return t.call(this,e)||this}return dt(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new Dl},e.prototype.buildPath=function(t,e){var n,i,r,o;if(this.subPixelOptimize){var a=function(t,e,n){if(e){var i=e.x1,r=e.x2,o=e.y1,a=e.y2;t.x1=i,t.x2=r,t.y1=o,t.y2=a;var s=n&&n.lineWidth;return s?(Oa(2*i)===Oa(2*r)&&(t.x1=t.x2=Ra(i,s,!0)),Oa(2*o)===Oa(2*a)&&(t.y1=t.y2=Ra(o,s,!0)),t):t}}(Cl,e,this.style);n=a.x1,i=a.y1,r=a.x2,o=a.y2}else n=e.x1,i=e.y1,r=e.x2,o=e.y2;var s=e.percent;0!==s&&(t.moveTo(n,i),s<1&&(r=n*(1-s)+r*s,o=i*(1-s)+o*s),t.lineTo(r,o))},e.prototype.pointAt=function(t){var e=this.shape;return[e.x1*(1-t)+e.x2*t,e.y1*(1-t)+e.y2*t]},e}(Da);Il.prototype.type="line";var Al=[],kl=function(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.cpx1=0,this.cpy1=0,this.percent=1};function Ll(t,e,n){var i=t.cpx2,r=t.cpy2;return null===i||null===r?[(n?go:fo)(t.x1,t.cpx1,t.cpx2,t.x2,e),(n?go:fo)(t.y1,t.cpy1,t.cpy2,t.y2,e)]:[(n?wo:bo)(t.x1,t.cpx1,t.x2,e),(n?wo:bo)(t.y1,t.cpy1,t.y2,e)]}var Pl=function(t){function e(e){return t.call(this,e)||this}return dt(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new kl},e.prototype.buildPath=function(t,e){var n=e.x1,i=e.y1,r=e.x2,o=e.y2,a=e.cpx1,s=e.cpy1,l=e.cpx2,u=e.cpy2,h=e.percent;0!==h&&(t.moveTo(n,i),null==l||null==u?(h<1&&(Mo(n,a,r,h,Al),a=Al[1],r=Al[2],Mo(i,s,o,h,Al),s=Al[1],o=Al[2]),t.quadraticCurveTo(a,s,r,o)):(h<1&&(mo(n,a,l,r,h,Al),a=Al[1],l=Al[2],r=Al[3],mo(i,s,u,o,h,Al),s=Al[1],u=Al[2],o=Al[3]),t.bezierCurveTo(a,s,l,u,r,o)))},e.prototype.pointAt=function(t){return Ll(this.shape,t,!1)},e.prototype.tangentAt=function(t){var e=Ll(this.shape,t,!0);return Mt(e,e)},e}(Da);Pl.prototype.type="bezier-curve";var Ol=function(){this.cx=0,this.cy=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0},Rl=function(t){function e(e){return t.call(this,e)||this}return dt(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new Ol},e.prototype.buildPath=function(t,e){var n=e.cx,i=e.cy,r=Math.max(e.r,0),o=e.startAngle,a=e.endAngle,s=e.clockwise,l=Math.cos(o),u=Math.sin(o);t.moveTo(l*r+n,u*r+i),t.arc(n,i,r,o,a,!s)},e}(Da);Rl.prototype.type="arc";var Nl=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="compound",e}return dt(e,t),e.prototype._updatePathDirty=function(){for(var t=this.shape.paths,e=this.shapeChanged(),n=0;n<t.length;n++)e=e||t[n].shapeChanged();e&&this.dirtyShape()},e.prototype.beforeBrush=function(){this._updatePathDirty();for(var t=this.shape.paths||[],e=this.getGlobalScale(),n=0;n<t.length;n++)t[n].path||t[n].createPathProxy(),t[n].path.setScale(e[0],e[1],t[n].segmentIgnoreThreshold)},e.prototype.buildPath=function(t,e){for(var n=e.paths||[],i=0;i<n.length;i++)n[i].buildPath(t,n[i].shape,!0)},e.prototype.afterBrush=function(){for(var t=this.shape.paths||[],e=0;e<t.length;e++)t[e].pathUpdated()},e.prototype.getBoundingRect=function(){return this._updatePathDirty.call(this),Da.prototype.getBoundingRect.call(this)},e}(Da),El=function(){function t(t){this.colorStops=t||[]}return t.prototype.addColorStop=function(t,e){this.colorStops.push({offset:t,color:e})},t}(),Bl=function(t){function e(e,n,i,r,o,a){var s=t.call(this,o)||this;return s.x=null==e?0:e,s.y=null==n?0:n,s.x2=null==i?1:i,s.y2=null==r?0:r,s.type="linear",s.global=a||!1,s}return dt(e,t),e}(El),zl=function(t){function e(e,n,i,r,o){var a=t.call(this,r)||this;return a.x=null==e?.5:e,a.y=null==n?.5:n,a.r=null==i?.5:i,a.type="radial",a.global=o||!1,a}return dt(e,t),e}(El),Fl=[0,0],Vl=[0,0],Hl=new dn,Wl=new dn,Gl=function(){function t(t,e){this._corners=[],this._axes=[],this._origin=[0,0];for(var n=0;n<4;n++)this._corners[n]=new dn;for(n=0;n<2;n++)this._axes[n]=new dn;t&&this.fromBoundingRect(t,e)}return t.prototype.fromBoundingRect=function(t,e){var n=this._corners,i=this._axes,r=t.x,o=t.y,a=r+t.width,s=o+t.height;if(n[0].set(r,o),n[1].set(a,o),n[2].set(a,s),n[3].set(r,s),e)for(var l=0;l<4;l++)n[l].transform(e);dn.sub(i[0],n[1],n[0]),dn.sub(i[1],n[3],n[0]),i[0].normalize(),i[1].normalize();for(l=0;l<2;l++)this._origin[l]=i[l].dot(n[0])},t.prototype.intersect=function(t,e){var n=!0,i=!e;return Hl.set(1/0,1/0),Wl.set(0,0),!this._intersectCheckOneSide(this,t,Hl,Wl,i,1)&&(n=!1,i)||!this._intersectCheckOneSide(t,this,Hl,Wl,i,-1)&&(n=!1,i)||i||dn.copy(e,n?Hl:Wl),n},t.prototype._intersectCheckOneSide=function(t,e,n,i,r,o){for(var a=!0,s=0;s<2;s++){var l=this._axes[s];if(this._getProjMinMaxOnAxis(s,t._corners,Fl),this._getProjMinMaxOnAxis(s,e._corners,Vl),Fl[1]<Vl[0]||Fl[0]>Vl[1]){if(a=!1,r)return a;var u=Math.abs(Vl[0]-Fl[1]),h=Math.abs(Fl[0]-Vl[1]);Math.min(u,h)>i.len()&&(u<h?dn.scale(i,l,-u*o):dn.scale(i,l,h*o))}else if(n){u=Math.abs(Vl[0]-Fl[1]),h=Math.abs(Fl[0]-Vl[1]);Math.min(u,h)<n.len()&&(u<h?dn.scale(n,l,u*o):dn.scale(n,l,-h*o))}}return a},t.prototype._getProjMinMaxOnAxis=function(t,e,n){for(var i=this._axes[t],r=this._origin,o=e[0].dot(i)+r[t],a=o,s=o,l=1;l<e.length;l++){var u=e[l].dot(i)+r[t];a=Math.min(u,a),s=Math.max(u,s)}n[0]=a,n[1]=s},t}(),Ul=[],Yl=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.notClear=!0,e.incremental=!0,e._displayables=[],e._temporaryDisplayables=[],e._cursor=0,e}return dt(e,t),e.prototype.traverse=function(t,e){t.call(e,this)},e.prototype.useStyle=function(){this.style={}},e.prototype.getCursor=function(){return this._cursor},e.prototype.innerAfterBrush=function(){this._cursor=this._displayables.length},e.prototype.clearDisplaybles=function(){this._displayables=[],this._temporaryDisplayables=[],this._cursor=0,this.markRedraw(),this.notClear=!1},e.prototype.clearTemporalDisplayables=function(){this._temporaryDisplayables=[]},e.prototype.addDisplayable=function(t,e){e?this._temporaryDisplayables.push(t):this._displayables.push(t),this.markRedraw()},e.prototype.addDisplayables=function(t,e){e=e||!1;for(var n=0;n<t.length;n++)this.addDisplayable(t[n],e)},e.prototype.getDisplayables=function(){return this._displayables},e.prototype.getTemporalDisplayables=function(){return this._temporaryDisplayables},e.prototype.eachPendingDisplayable=function(t){for(var e=this._cursor;e<this._displayables.length;e++)t&&t(this._displayables[e]);for(e=0;e<this._temporaryDisplayables.length;e++)t&&t(this._temporaryDisplayables[e])},e.prototype.update=function(){this.updateTransform();for(var t=this._cursor;t<this._displayables.length;t++){(e=this._displayables[t]).parent=this,e.update(),e.parent=null}for(t=0;t<this._temporaryDisplayables.length;t++){var e;(e=this._temporaryDisplayables[t]).parent=this,e.update(),e.parent=null}},e.prototype.getBoundingRect=function(){if(!this._rect){for(var t=new Sn(1/0,1/0,-1/0,-1/0),e=0;e<this._displayables.length;e++){var n=this._displayables[e],i=n.getBoundingRect().clone();n.needLocalTransform()&&i.applyTransform(n.getLocalTransform(Ul)),t.union(i)}this._rect=t}return this._rect},e.prototype.contain=function(t,e){var n=this.transformCoordToLocal(t,e);if(this.getBoundingRect().contain(n[0],n[1]))for(var i=0;i<this._displayables.length;i++){if(this._displayables[i].contain(t,e))return!0}return!1},e}(Jr),Xl=Math.max,ql=Math.min,jl={};var Zl=function(t,e){var n=Qs(t,e);return function(t){function e(e){var i=t.call(this,e)||this;return i.applyTransform=n.applyTransform,i.buildPath=n.buildPath,i}return dt(e,t),e}(Ks)};function Kl(t,e){jl[t]=e}function $l(t,e,n,i){var r=function(t,e){return new Ks(Qs(t,e))}(t,e);return n&&("center"===i&&(n=Jl(n,r.getBoundingRect())),eu(r,n)),r}function Ql(t,e,n){var i=new Pa({style:{image:t,x:e.x,y:e.y,width:e.width,height:e.height},onload:function(t){if("center"===n){var r={width:t.width,height:t.height};i.setStyle(Jl(e,r))}}});return i}function Jl(t,e){var n,i=e.width/e.height,r=t.height*i;return n=r<=t.width?t.height:(r=t.width)/i,{x:t.x+t.width/2-r/2,y:t.y+t.height/2-n/2,width:r,height:n}}var tu=function(t,e){for(var n=[],i=t.length,r=0;r<i;r++){var o=t[r];o.path||o.createPathProxy(),o.shapeChanged()&&o.buildPath(o.path,o.shape,!0),n.push(o.path)}var a=new Da(e);return a.createPathProxy(),a.buildPath=function(t){if($s(t)){t.appendPath(n);var e=t.getContext();e&&t.rebuildPath(e,1)}},a};function eu(t,e){if(t.applyTransform){var n=t.getBoundingRect().calculateTransform(e);t.applyTransform(n)}}function nu(t,e,n,i,r,o,a){var s,l=!1;"function"==typeof r?(a=o,o=r,r=null):G(r)&&(o=r.cb,a=r.during,l=r.isFrom,s=r.removeOpt,r=r.dataIndex);var u,h="update"===t,c="remove"===t;if(i&&i.ecModel){var p=i.ecModel.getUpdatePayload();u=p&&p.animation}var f=i&&i.isAnimationEnabled();if(c||e.stopAnimation("remove"),f){var d=void 0,g=void 0,y=void 0;u?(d=u.duration||0,g=u.easing||"cubicOut",y=u.delay||0):c?(d=Q((s=s||{}).duration,200),g=Q(s.easing,"cubicOut"),y=0):(d=i.getShallow(h?"animationDurationUpdate":"animationDuration"),g=i.getShallow(h?"animationEasingUpdate":"animationEasing"),y=i.getShallow(h?"animationDelayUpdate":"animationDelay")),"function"==typeof y&&(y=y(r,i.getAnimationDelayParams?i.getAnimationDelayParams(e,r):null)),"function"==typeof d&&(d=d(r)),d>0?l?e.animateFrom(n,{duration:d,delay:y||0,easing:g,done:o,force:!!o||!!a,scope:t,during:a}):e.animateTo(n,{duration:d,delay:y||0,easing:g,done:o,force:!!o||!!a,setToFinal:!0,scope:t,during:a}):(e.stopAnimation(),!l&&e.attr(n),o&&o())}else e.stopAnimation(),!l&&e.attr(n),a&&a(1),o&&o()}function iu(t,e,n,i,r,o){nu("update",t,e,n,i,r,o)}function ru(t,e,n,i,r,o){nu("init",t,e,n,i,r,o)}function ou(t,e,n,i,r,o){lu(t)||nu("remove",t,e,n,i,r,o)}function au(t,e,n,i){t.removeTextContent(),t.removeTextGuideLine(),ou(t,{style:{opacity:0}},e,n,i)}function su(t,e,n){function i(){t.parent&&t.parent.remove(t)}t.isGroup?t.traverse((function(t){t.isGroup||au(t,e,n,i)})):au(t,e,n,i)}function lu(t){if(!t.__zr)return!0;for(var e=0;e<t.animators.length;e++){if("remove"===t.animators[e].scope)return!0}return!1}function uu(t){return!t.isGroup}Kl("circle",tl),Kl("ellipse",nl),Kl("sector",vl),Kl("ring",_l),Kl("polygon",Sl),Kl("polyline",Tl),Kl("rect",Ba),Kl("line",Il),Kl("bezierCurve",Pl),Kl("arc",Rl);var hu={};function cu(t,e){for(var n=0;n<Qa.length;n++){var i=Qa[n],r=e[i],o=t.ensureState(i);o.style=o.style||{},o.style.text=r}var a=t.currentStates.slice();t.clearStates(!0),t.setStyle({text:e.normal}),t.useStates(a,!0)}function pu(t,e,n){var i,r=t.labelFetcher,o=t.labelDataIndex,a=t.labelDimIndex,s=e.normal;r&&(i=r.getFormattedLabel(o,"normal",null,a,s&&s.get("formatter"),null!=n?{interpolatedValue:n}:null)),null==i&&(i=F(t.defaultText)?t.defaultText(o,t,n):t.defaultText);for(var l={normal:i},u=0;u<Qa.length;u++){var h=Qa[u],c=e[h];l[h]=Q(r?r.getFormattedLabel(o,h,null,a,c&&c.get("formatter")):null,i)}return l}function fu(t,e,n,i){n=n||hu;for(var r=t instanceof Va,o=!1,a=0;a<Ja.length;a++){if((p=e[Ja[a]])&&p.getShallow("show")){o=!0;break}}var s=r?t:t.getTextContent();if(o){r||(s||(s=new Va,t.setTextContent(s)),t.stateProxy&&(s.stateProxy=t.stateProxy));var l=pu(n,e),u=e.normal,h=!!u.getShallow("show"),c=gu(u,i&&i.normal,n,!1,!r);c.text=l.normal,r||t.setTextConfig(yu(u,n,!1));for(a=0;a<Qa.length;a++){var p,f=Qa[a];if(p=e[f]){var d=s.ensureState(f),g=!!Q(p.getShallow("show"),h);if(g!==h&&(d.ignore=!g),d.style=gu(p,i&&i[f],n,!0,!r),d.style.text=l[f],!r)t.ensureState(f).textConfig=yu(p,n,!0)}}s.silent=!!u.getShallow("silent"),null!=s.style.x&&(c.x=s.style.x),null!=s.style.y&&(c.y=s.style.y),s.ignore=!h,s.useStyle(c),s.dirty(),n.enableTextSetter&&(bu(s).setLabelText=function(t){var i=pu(n,e,t);cu(s,i)})}else s&&(s.ignore=!0);t.dirty()}function du(t,e){e=e||"label";for(var n={normal:t.getModel(e)},i=0;i<Qa.length;i++){var r=Qa[i];n[r]=t.getModel([r,e])}return n}function gu(t,e,n,i,r){var o={};return function(t,e,n,i,r){n=n||hu;var o,a=e.ecModel,s=a&&a.option.textStyle,l=function(t){var e;for(;t&&t!==t.ecModel;){var n=(t.option||hu).rich;if(n){e=e||{};for(var i=N(n),r=0;r<i.length;r++){e[i[r]]=1}}t=t.parentModel}return e}(e);if(l)for(var u in o={},l)if(l.hasOwnProperty(u)){var h=e.getModel(["rich",u]);xu(o[u]={},h,s,n,i,r,!1,!0)}o&&(t.rich=o);var c=e.get("overflow");c&&(t.overflow=c);var p=e.get("minMargin");null!=p&&(t.margin=p);xu(t,e,s,n,i,r,!0,!1)}(o,t,n,i,r),e&&M(o,e),o}function yu(t,e,n){e=e||{};var i,r={},o=t.getShallow("rotate"),a=Q(t.getShallow("distance"),n?null:5),s=t.getShallow("offset");return"outside"===(i=t.getShallow("position")||(n?null:"inside"))&&(i=e.defaultOutsidePosition||"top"),null!=i&&(r.position=i),null!=s&&(r.offset=s),null!=o&&(o*=Math.PI/180,r.rotation=o),null!=a&&(r.distance=a),r.outsideFill="inherit"===t.get("color")?e.inheritColor||null:"auto",r}var vu=["fontStyle","fontWeight","fontSize","fontFamily","textShadowColor","textShadowBlur","textShadowOffsetX","textShadowOffsetY"],mu=["align","lineHeight","width","height","tag","verticalAlign"],_u=["padding","borderWidth","borderRadius","borderDashOffset","backgroundColor","borderColor","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"];function xu(t,e,n,i,r,o,a,s){n=!r&&n||hu;var l=i&&i.inheritColor,u=e.getShallow("color"),h=e.getShallow("textBorderColor"),c=Q(e.getShallow("opacity"),n.opacity);"inherit"!==u&&"auto"!==u||(u=l||null),"inherit"!==h&&"auto"!==h||(h=l||null),o||(u=u||n.color,h=h||n.textBorderColor),null!=u&&(t.fill=u),null!=h&&(t.stroke=h);var p=Q(e.getShallow("textBorderWidth"),n.textBorderWidth);null!=p&&(t.lineWidth=p);var f=Q(e.getShallow("textBorderType"),n.textBorderType);null!=f&&(t.lineDash=f);var d=Q(e.getShallow("textBorderDashOffset"),n.textBorderDashOffset);null!=d&&(t.lineDashOffset=d),r||null!=c||s||(c=i&&i.defaultOpacity),null!=c&&(t.opacity=c),r||o||null==t.fill&&i.inheritColor&&(t.fill=i.inheritColor);for(var g=0;g<vu.length;g++){var y=vu[g];null!=(m=Q(e.getShallow(y),n[y]))&&(t[y]=m)}for(g=0;g<mu.length;g++){y=mu[g];null!=(m=e.getShallow(y))&&(t[y]=m)}if(null==t.verticalAlign){var v=e.getShallow("baseline");null!=v&&(t.verticalAlign=v)}if(!a||!i.disableBox){for(g=0;g<_u.length;g++){var m;y=_u[g];null!=(m=e.getShallow(y))&&(t[y]=m)}var _=e.getShallow("borderType");null!=_&&(t.borderDash=_),"auto"!==t.backgroundColor&&"inherit"!==t.backgroundColor||!l||(t.backgroundColor=l),"auto"!==t.borderColor&&"inherit"!==t.borderColor||!l||(t.borderColor=l)}}var bu=pr();var wu,Su,Mu=["textStyle","color"],Tu=new Va,Cu=function(){function t(){}return t.prototype.getTextColor=function(t){var e=this.ecModel;return this.getShallow("color")||(!t&&e?e.get(Mu):null)},t.prototype.getFont=function(){return t={fontStyle:this.getShallow("fontStyle"),fontWeight:this.getShallow("fontWeight"),fontSize:this.getShallow("fontSize"),fontFamily:this.getShallow("fontFamily")},e=this.ecModel,n=e&&e.getModel("textStyle"),it([t.fontStyle||n&&n.getShallow("fontStyle")||"",t.fontWeight||n&&n.getShallow("fontWeight")||"",(t.fontSize||n&&n.getShallow("fontSize")||12)+"px",t.fontFamily||n&&n.getShallow("fontFamily")||"sans-serif"].join(" "));var t,e,n},t.prototype.getTextRect=function(t){return Tu.useStyle({text:t,fontStyle:this.getShallow("fontStyle"),fontWeight:this.getShallow("fontWeight"),fontSize:this.getShallow("fontSize"),fontFamily:this.getShallow("fontFamily"),verticalAlign:this.getShallow("verticalAlign")||this.getShallow("baseline"),padding:this.getShallow("padding"),lineHeight:this.getShallow("lineHeight"),rich:this.getShallow("rich")}),Tu.update(),Tu.getBoundingRect()},t}(),Du=[["lineWidth","width"],["stroke","color"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"],["lineDash","type"],["lineDashOffset","dashOffset"],["lineCap","cap"],["lineJoin","join"],["miterLimit"]],Iu=Ar(Du),Au=function(){function t(){}return t.prototype.getLineStyle=function(t){return Iu(this,t)},t}(),ku=[["fill","color"],["stroke","borderColor"],["lineWidth","borderWidth"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"],["lineDash","borderType"],["lineDashOffset","borderDashOffset"],["lineCap","borderCap"],["lineJoin","borderJoin"],["miterLimit","borderMiterLimit"]],Lu=Ar(ku),Pu=function(){function t(){}return t.prototype.getItemStyle=function(t,e){return Lu(this,t,e)},t}(),Ou=function(){function t(t,e,n){this.parentModel=e,this.ecModel=n,this.option=t}return t.prototype.init=function(t,e,n){for(var i=[],r=3;r<arguments.length;r++)i[r-3]=arguments[r]},t.prototype.mergeOption=function(t,e){S(this.option,t,!0)},t.prototype.get=function(t,e){return null==t?this.option:this._doGet(this.parsePath(t),!e&&this.parentModel)},t.prototype.getShallow=function(t,e){var n=this.option,i=null==n?n:n[t];if(null==i&&!e){var r=this.parentModel;r&&(i=r.getShallow(t))}return i},t.prototype.getModel=function(e,n){var i=null!=e,r=i?this.parsePath(e):null;return new t(i?this._doGet(r):this.option,n=n||this.parentModel&&this.parentModel.getModel(this.resolveParentPath(r)),this.ecModel)},t.prototype.isEmpty=function(){return null==this.option},t.prototype.restoreData=function(){},t.prototype.clone=function(){return new(0,this.constructor)(w(this.option))},t.prototype.parsePath=function(t){return"string"==typeof t?t.split("."):t},t.prototype.resolveParentPath=function(t){return t},t.prototype.isAnimationEnabled=function(){if(!a.node&&this.option){if(null!=this.option.animation)return!!this.option.animation;if(this.parentModel)return this.parentModel.isAnimationEnabled()}},t.prototype._doGet=function(t,e){var n=this.option;if(!t)return n;for(var i=0;i<t.length&&(!t[i]||null!=(n=n&&"object"==typeof n?n[t[i]]:null));i++);return null==n&&e&&(n=e._doGet(this.resolveParentPath(t),e.parentModel)),n},t}();wr(Ou),wu=Ou,Su=["__\0is_clz",Tr++].join("_"),wu.prototype[Su]=!0,wu.isInstance=function(t){return!(!t||!t[Su])},A(Ou,Au),A(Ou,Pu),A(Ou,Lr),A(Ou,Cu);var Ru=Math.round(10*Math.random());function Nu(t){return[t||"",Ru++].join("_")}var Eu="ZH",Bu="EN",zu=Bu,Fu={},Vu={},Hu=a.domSupported&&(document.documentElement.lang||navigator.language||navigator.browserLanguage).toUpperCase().indexOf(Eu)>-1?Eu:zu;function Wu(t,e){t=t.toUpperCase(),Vu[t]=new Ou(e),Fu[t]=e}Wu(Bu,{time:{month:["January","February","March","April","May","June","July","August","September","October","November","December"],monthAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayOfWeekAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},legend:{selector:{all:"All",inverse:"Inv"}},toolbox:{brush:{title:{rect:"Box Select",polygon:"Lasso Select",lineX:"Horizontally Select",lineY:"Vertically Select",keep:"Keep Selections",clear:"Clear Selections"}},dataView:{title:"Data View",lang:["Data View","Close","Refresh"]},dataZoom:{title:{zoom:"Zoom",back:"Zoom Reset"}},magicType:{title:{line:"Switch to Line Chart",bar:"Switch to Bar Chart",stack:"Stack",tiled:"Tile"}},restore:{title:"Restore"},saveAsImage:{title:"Save as Image",lang:["Right Click to Save Image"]}},series:{typeNames:{pie:"Pie chart",bar:"Bar chart",line:"Line chart",scatter:"Scatter plot",effectScatter:"Ripple scatter plot",radar:"Radar chart",tree:"Tree",treemap:"Treemap",boxplot:"Boxplot",candlestick:"Candlestick",k:"K line chart",heatmap:"Heat map",map:"Map",parallel:"Parallel coordinate map",lines:"Line graph",graph:"Relationship graph",sankey:"Sankey diagram",funnel:"Funnel chart",gauge:"Guage",pictorialBar:"Pictorial bar",themeRiver:"Theme River Map",sunburst:"Sunburst"}},aria:{general:{withTitle:'This is a chart about "{title}"',withoutTitle:"This is a chart"},series:{single:{prefix:"",withName:" with type {seriesType} named {seriesName}.",withoutName:" with type {seriesType}."},multiple:{prefix:". It consists of {seriesCount} series count.",withName:" The {seriesId} series is a {seriesType} representing {seriesName}.",withoutName:" The {seriesId} series is a {seriesType}.",separator:{middle:"",end:""}}},data:{allData:"The data is as follows: ",partialData:"The first {displayCnt} items are: ",withName:"the data for {name} is {value}",withoutName:"{value}",separator:{middle:", ",end:". "}}}}),Wu(Eu,{time:{month:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthAbbr:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayOfWeekAbbr:["日","一","二","三","四","五","六"]},legend:{selector:{all:"全选",inverse:"反选"}},toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}});var Gu=1e3,Uu=6e4,Yu=36e5,Xu=864e5,qu=31536e6,ju={year:"{yyyy}",month:"{MMM}",day:"{d}",hour:"{HH}:{mm}",minute:"{HH}:{mm}",second:"{HH}:{mm}:{ss}",millisecond:"{hh}:{mm}:{ss} {SSS}",none:"{yyyy}-{MM}-{dd} {hh}:{mm}:{ss} {SSS}"},Zu="{yyyy}-{MM}-{dd}",Ku={year:"{yyyy}",month:"{yyyy}-{MM}",day:Zu,hour:"{yyyy}-{MM}-{dd} "+ju.hour,minute:"{yyyy}-{MM}-{dd} "+ju.minute,second:"{yyyy}-{MM}-{dd} "+ju.second,millisecond:ju.none},$u=["year","month","day","hour","minute","second","millisecond"],Qu=["year","half-year","quarter","month","week","half-week","day","half-day","quarter-day","hour","minute","second","millisecond"];function Ju(t,e){return"0000".substr(0,e-(t+="").length)+t}function th(t){switch(t){case"half-year":case"quarter":return"month";case"week":case"half-week":return"day";case"half-day":case"quarter-day":return"hour";default:return t}}function eh(t){return t===th(t)}function nh(t,e,n,i){var r=Ui(t),o=r[oh(n)](),a=r[ah(n)]()+1,s=Math.floor((a-1)/4)+1,l=r[sh(n)](),u=r["get"+(n?"UTC":"")+"Day"](),h=r[lh(n)](),c=(h-1)%12+1,p=r[uh(n)](),f=r[hh(n)](),d=r[ch(n)](),g=(i instanceof Ou?i:function(t){return Vu[t]}(i||Hu)||Vu.EN).getModel("time"),y=g.get("month"),v=g.get("monthAbbr"),m=g.get("dayOfWeek"),_=g.get("dayOfWeekAbbr");return(e||"").replace(/{yyyy}/g,o+"").replace(/{yy}/g,o%100+"").replace(/{Q}/g,s+"").replace(/{MMMM}/g,y[a-1]).replace(/{MMM}/g,v[a-1]).replace(/{MM}/g,Ju(a,2)).replace(/{M}/g,a+"").replace(/{dd}/g,Ju(l,2)).replace(/{d}/g,l+"").replace(/{eeee}/g,m[u]).replace(/{ee}/g,_[u]).replace(/{e}/g,u+"").replace(/{HH}/g,Ju(h,2)).replace(/{H}/g,h+"").replace(/{hh}/g,Ju(c+"",2)).replace(/{h}/g,c+"").replace(/{mm}/g,Ju(p,2)).replace(/{m}/g,p+"").replace(/{ss}/g,Ju(f,2)).replace(/{s}/g,f+"").replace(/{SSS}/g,Ju(d,3)).replace(/{S}/g,d+"")}function ih(t,e){var n=Ui(t),i=n[ah(e)]()+1,r=n[sh(e)](),o=n[lh(e)](),a=n[uh(e)](),s=n[hh(e)](),l=0===n[ch(e)](),u=l&&0===s,h=u&&0===a,c=h&&0===o,p=c&&1===r;return p&&1===i?"year":p?"month":c?"day":h?"hour":u?"minute":l?"second":"millisecond"}function rh(t,e,n){var i="number"==typeof t?Ui(t):t;switch(e=e||ih(t,n)){case"year":return i[oh(n)]();case"half-year":return i[ah(n)]()>=6?1:0;case"quarter":return Math.floor((i[ah(n)]()+1)/4);case"month":return i[ah(n)]();case"day":return i[sh(n)]();case"half-day":return i[lh(n)]()/24;case"hour":return i[lh(n)]();case"minute":return i[uh(n)]();case"second":return i[hh(n)]();case"millisecond":return i[ch(n)]()}}function oh(t){return t?"getUTCFullYear":"getFullYear"}function ah(t){return t?"getUTCMonth":"getMonth"}function sh(t){return t?"getUTCDate":"getDate"}function lh(t){return t?"getUTCHours":"getHours"}function uh(t){return t?"getUTCMinutes":"getMinutes"}function hh(t){return t?"getUTCSeconds":"getSeconds"}function ch(t){return t?"getUTCSeconds":"getSeconds"}function ph(t){return t?"setUTCFullYear":"setFullYear"}function fh(t){return t?"setUTCMonth":"setMonth"}function dh(t){return t?"setUTCDate":"setDate"}function gh(t){return t?"setUTCHours":"setHours"}function yh(t){return t?"setUTCMinutes":"setMinutes"}function vh(t){return t?"setUTCSeconds":"setSeconds"}function mh(t){return t?"setUTCSeconds":"setSeconds"}function _h(t){if(!Zi(t))return V(t)?t:"-";var e=(t+"").split(".");return e[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(e.length>1?"."+e[1]:"")}var xh=et,bh=/([&<>"'])/g,wh={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function Sh(t){return null==t?"":(t+"").replace(bh,(function(t,e){return wh[e]}))}var Mh=["a","b","c","d","e","f","g"],Th=function(t,e){return"{"+t+(null==e?"":e)+"}"};function Ch(t,e,n){z(e)||(e=[e]);var i=e.length;if(!i)return"";for(var r=e[0].$vars||[],o=0;o<r.length;o++){var a=Mh[o];t=t.replace(Th(a),Th(a,0))}for(var s=0;s<i;s++)for(var l=0;l<r.length;l++){var u=e[s][r[l]];t=t.replace(Th(Mh[l],s),n?Sh(u):u)}return t}var Dh=L,Ih=["left","right","top","bottom","width","height"],Ah=[["width","left","right"],["height","top","bottom"]];function kh(t,e,n,i,r){var o=0,a=0;null==i&&(i=1/0),null==r&&(r=1/0);var s=0;e.eachChild((function(l,u){var h,c,p=l.getBoundingRect(),f=e.childAt(u+1),d=f&&f.getBoundingRect();if("horizontal"===t){var g=p.width+(d?-d.x+p.x:0);(h=o+g)>i||l.newline?(o=0,h=g,a+=s+n,s=p.height):s=Math.max(s,p.height)}else{var y=p.height+(d?-d.y+p.y:0);(c=a+y)>r||l.newline?(o+=s+n,a=0,c=y,s=p.width):s=Math.max(s,p.width)}l.newline||(l.x=o,l.y=a,l.markRedraw(),"horizontal"===t?o=h+n:a=c+n)}))}B(kh,"vertical"),B(kh,"horizontal");function Lh(t,e,n){n=xh(n||0);var i=e.width,r=e.height,o=Ei(t.left,i),a=Ei(t.top,r),s=Ei(t.right,i),l=Ei(t.bottom,r),u=Ei(t.width,i),h=Ei(t.height,r),c=n[2]+n[0],p=n[1]+n[3],f=t.aspect;switch(isNaN(u)&&(u=i-s-p-o),isNaN(h)&&(h=r-l-c-a),null!=f&&(isNaN(u)&&isNaN(h)&&(f>i/r?u=.8*i:h=.8*r),isNaN(u)&&(u=f*h),isNaN(h)&&(h=u/f)),isNaN(o)&&(o=i-s-u-p),isNaN(a)&&(a=r-l-h-c),t.left||t.right){case"center":o=i/2-u/2-n[3];break;case"right":o=i-u-p}switch(t.top||t.bottom){case"middle":case"center":a=r/2-h/2-n[0];break;case"bottom":a=r-h-c}o=o||0,a=a||0,isNaN(u)&&(u=i-p-o-(s||0)),isNaN(h)&&(h=r-c-a-(l||0));var d=new Sn(o+n[3],a+n[0],u,h);return d.margin=n,d}function Ph(t){var e=t.layoutMode||t.constructor.layoutMode;return G(e)?e:e?{type:e}:null}function Oh(t,e,n){var i=n&&n.ignoreSize;!z(i)&&(i=[i,i]);var r=a(Ah[0],0),o=a(Ah[1],1);function a(n,r){var o={},a=0,u={},h=0;if(Dh(n,(function(e){u[e]=t[e]})),Dh(n,(function(t){s(e,t)&&(o[t]=u[t]=e[t]),l(o,t)&&a++,l(u,t)&&h++})),i[r])return l(e,n[1])?u[n[2]]=null:l(e,n[2])&&(u[n[1]]=null),u;if(2!==h&&a){if(a>=2)return o;for(var c=0;c<n.length;c++){var p=n[c];if(!s(o,p)&&s(t,p)){o[p]=t[p];break}}return o}return u}function s(t,e){return t.hasOwnProperty(e)}function l(t,e){return null!=t[e]&&"auto"!==t[e]}function u(t,e,n){Dh(t,(function(t){e[t]=n[t]}))}u(Ah[0],t,r),u(Ah[1],t,o)}function Rh(t){return function(t,e){return e&&t&&Dh(Ih,(function(n){e.hasOwnProperty(n)&&(t[n]=e[n])})),t}({},t)}var Nh=pr(),Eh=function(t){function e(e,n,i){var r=t.call(this,e,n,i)||this;return r.uid=Nu("ec_cpt_model"),r}return n(e,t),e.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n)},e.prototype.mergeDefaultAndTheme=function(t,e){var n=Ph(this),i=n?Rh(t):{};S(t,e.getTheme().get(this.mainType)),S(t,this.getDefaultOption()),n&&Oh(t,i,n)},e.prototype.mergeOption=function(t,e){S(this.option,t,!0);var n=Ph(this);n&&Oh(this.option,t,n)},e.prototype.optionUpdated=function(t,e){},e.prototype.getDefaultOption=function(){var t=this.constructor;if(!function(t){return!(!t||!t[xr])}(t))return t.defaultOption;var e=Nh(this);if(!e.defaultOption){for(var n=[],i=t;i;){var r=i.prototype.defaultOption;r&&n.push(r),i=i.superClass}for(var o={},a=n.length-1;a>=0;a--)o=S(o,n[a],!0);e.defaultOption=o}return e.defaultOption},e.prototype.getReferringComponents=function(t,e){var n=t+"Index",i=t+"Id";return yr(this.ecModel,t,{index:this.get(n,!0),id:this.get(i,!0)},e)},e.prototype.getBoxLayoutParams=function(){var t=this;return{left:t.get("left"),top:t.get("top"),right:t.get("right"),bottom:t.get("bottom"),width:t.get("width"),height:t.get("height")}},e.protoInitialize=function(){var t=e.prototype;t.type="component",t.id="",t.name="",t.mainType="",t.subType="",t.componentIndex=0}(),e}(Ou);Mr(Eh,Ou),Ir(Eh),function(t){var e={};t.registerSubTypeDefaulter=function(t,n){var i=br(t);e[i.main]=n},t.determineSubType=function(n,i){var r=i.type;if(!r){var o=br(n).main;t.hasSubTypes(n)&&e[o]&&(r=e[o](i))}return r}}(Eh),function(t,e){function n(t,e){return t[e]||(t[e]={predecessor:[],successor:[]}),t[e]}t.topologicalTravel=function(t,i,r,o){if(t.length){var a=function(t){var i={},r=[];return L(t,(function(o){var a=n(i,o),s=function(t,e){var n=[];return L(t,(function(t){D(e,t)>=0&&n.push(t)})),n}(a.originalDeps=e(o),t);a.entryCount=s.length,0===a.entryCount&&r.push(o),L(s,(function(t){D(a.predecessor,t)<0&&a.predecessor.push(t);var e=n(i,t);D(e.successor,t)<0&&e.successor.push(o)}))})),{graph:i,noEntryList:r}}(i),s=a.graph,l=a.noEntryList,u={};for(L(t,(function(t){u[t]=!0}));l.length;){var h=l.pop(),c=s[h],p=!!u[h];p&&(r.call(o,h,c.originalDeps.slice()),delete u[h]),L(c.successor,p?d:f)}L(u,(function(){var t="";throw new Error(t)}))}function f(t){s[t].entryCount--,0===s[t].entryCount&&l.push(t)}function d(t){u[t]=!0,f(t)}}}(Eh,(function(t){var e=[];L(Eh.getClassesByMainType(t),(function(t){e=e.concat(t.dependencies||t.prototype.dependencies||[])})),e=P(e,(function(t){return br(t).main})),"dataset"!==t&&D(e,"dataset")<=0&&e.unshift("dataset");return e}));var Bh="";"undefined"!=typeof navigator&&(Bh=navigator.platform||"");var zh="rgba(0, 0, 0, 0.2)",Fh={darkMode:"auto",color:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],gradientColor:["#f6efa6","#d88273","#bf444c"],aria:{decal:{decals:[{color:zh,dashArrayX:[1,0],dashArrayY:[2,5],symbolSize:1,rotation:Math.PI/6},{color:zh,symbol:"circle",dashArrayX:[[8,8],[0,8,8,0]],dashArrayY:[6,0],symbolSize:.8},{color:zh,dashArrayX:[1,0],dashArrayY:[4,3],rotation:-Math.PI/4},{color:zh,dashArrayX:[[6,6],[0,6,6,0]],dashArrayY:[6,0]},{color:zh,dashArrayX:[[1,0],[1,6]],dashArrayY:[1,0,6,0],rotation:Math.PI/4},{color:zh,symbol:"triangle",dashArrayX:[[9,9],[0,9,9,0]],dashArrayY:[7,2],symbolSize:.75}]}},textStyle:{fontFamily:Bh.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,stateAnimation:{duration:300,easing:"cubicOut"},animation:"auto",animationDuration:1e3,animationDurationUpdate:500,animationEasing:"cubicInOut",animationEasingUpdate:"cubicInOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1},Vh=lt(["tooltip","label","itemName","itemId","seriesName"]),Hh="original",Wh="arrayRows",Gh="objectRows",Uh="keyedColumns",Yh="typedArray",Xh="unknown",qh="column",jh="row",Zh=1,Kh=2,$h=3,Qh=pr();function Jh(t,e,n){var i={},r=ec(e);if(!r||!t)return i;var o,a,s=[],l=[],u=e.ecModel,h=Qh(u).datasetMap,c=r.uid+"_"+n.seriesLayoutBy;L(t=t.slice(),(function(e,n){var r=G(e)?e:t[n]={name:e};"ordinal"===r.type&&null==o&&(o=n,a=d(r)),i[r.name]=[]}));var p=h.get(c)||h.set(c,{categoryWayDim:a,valueWayDim:0});function f(t,e,n){for(var i=0;i<n;i++)t.push(e+i)}function d(t){var e=t.dimsDef;return e?e.length:1}return L(t,(function(t,e){var n=t.name,r=d(t);if(null==o){var a=p.valueWayDim;f(i[n],a,r),f(l,a,r),p.valueWayDim+=r}else if(o===e)f(i[n],0,r),f(s,0,r);else{a=p.categoryWayDim;f(i[n],a,r),f(l,a,r),p.categoryWayDim+=r}})),s.length&&(i.itemName=s),l.length&&(i.seriesName=l),i}function tc(t,e,n){var i={};if(!ec(t))return i;var r,o=e.sourceFormat,a=e.dimensionsDefine;o!==Gh&&o!==Uh||L(a,(function(t,e){"name"===(G(t)?t.name:t)&&(r=e)}));var s=function(){for(var t={},i={},s=[],l=0,u=Math.min(5,n);l<u;l++){var h=ic(e.data,o,e.seriesLayoutBy,a,e.startIndex,l);s.push(h);var c=h===$h;if(c&&null==t.v&&l!==r&&(t.v=l),(null==t.n||t.n===t.v||!c&&s[t.n]===$h)&&(t.n=l),p(t)&&s[t.n]!==$h)return t;c||(h===Kh&&null==i.v&&l!==r&&(i.v=l),null!=i.n&&i.n!==i.v||(i.n=l))}function p(t){return null!=t.v&&null!=t.n}return p(t)?t:p(i)?i:null}();if(s){i.value=[s.v];var l=null!=r?r:s.n;i.itemName=[l],i.seriesName=[l]}return i}function ec(t){if(!t.get("data",!0))return yr(t.ecModel,"dataset",{index:t.get("datasetIndex",!0),id:t.get("datasetId",!0)},gr).models[0]}function nc(t,e){return ic(t.data,t.sourceFormat,t.seriesLayoutBy,t.dimensionsDefine,t.startIndex,e)}function ic(t,e,n,i,r,o){var a,s,l;if(Y(t))return $h;if(i){var u=i[o];G(u)?(s=u.name,l=u.type):V(u)&&(s=u)}if(null!=l)return"ordinal"===l?Zh:$h;if(e===Wh){var h=t;if(n===jh){for(var c=h[o],p=0;p<(c||[]).length&&p<5;p++)if(null!=(a=m(c[r+p])))return a}else for(p=0;p<h.length&&p<5;p++){var f=h[r+p];if(f&&null!=(a=m(f[o])))return a}}else if(e===Gh){var d=t;if(!s)return $h;for(p=0;p<d.length&&p<5;p++){if((y=d[p])&&null!=(a=m(y[s])))return a}}else if(e===Uh){if(!s)return $h;if(!(c=t[s])||Y(c))return $h;for(p=0;p<c.length&&p<5;p++)if(null!=(a=m(c[p])))return a}else if(e===Hh){var g=t;for(p=0;p<g.length&&p<5;p++){var y,v=rr(y=g[p]);if(!z(v))return $h;if(null!=(a=m(v[o])))return a}}function m(t){var e=V(t);return null!=t&&isFinite(t)&&""!==t?e?Kh:$h:e&&"-"!==t?Zh:void 0}return $h}var rc=lt();var oc,ac,sc,lc=pr(),uc=pr(),hc=function(){function t(){}return t.prototype.getColorFromPalette=function(t,e,n){var i=er(this.get("color",!0)),r=this.get("colorLayer",!0);return pc(this,lc,i,r,t,e,n)},t.prototype.clearColorPalette=function(){!function(t,e){e(t).paletteIdx=0,e(t).paletteNameMap={}}(this,lc)},t}();function cc(t,e,n,i){var r=er(t.get(["aria","decal","decals"]));return pc(t,uc,r,null,e,n,i)}function pc(t,e,n,i,r,o,a){var s=e(o=o||t),l=s.paletteIdx||0,u=s.paletteNameMap=s.paletteNameMap||{};if(u.hasOwnProperty(r))return u[r];var h=null!=a&&i?function(t,e){for(var n=t.length,i=0;i<n;i++)if(t[i].length>e)return t[i];return t[n-1]}(i,a):n;if((h=h||n)&&h.length){var c=h[l];return r&&(u[r]=c),s.paletteIdx=(l+1)%h.length,c}}var fc=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.init=function(t,e,n,i,r,o){i=i||{},this.option=null,this._theme=new Ou(i),this._locale=new Ou(r),this._optionManager=o},e.prototype.setOption=function(t,e,n){var i=yc(e);this._optionManager.setOption(t,n,i),this._resetOption(null,i)},e.prototype.resetOption=function(t,e){return this._resetOption(t,yc(e))},e.prototype._resetOption=function(t,e){var n=!1,i=this._optionManager;if(!t||"recreate"===t){var r=i.mountOption("recreate"===t);this.option&&"recreate"!==t?(this.restoreData(),this._mergeOption(r,e)):sc(this,r),n=!0}if("timeline"!==t&&"media"!==t||this.restoreData(),!t||"recreate"===t||"timeline"===t){var o=i.getTimelineOption(this);o&&(n=!0,this._mergeOption(o,e))}if(!t||"recreate"===t||"media"===t){var a=i.getMediaOption(this);a.length&&L(a,(function(t){n=!0,this._mergeOption(t,e)}),this)}return n},e.prototype.mergeOption=function(t){this._mergeOption(t,null)},e.prototype._mergeOption=function(t,e){var n=this.option,i=this._componentsMap,r=this._componentsCount,o=[],a=lt(),s=e&&e.replaceMergeMainTypeMap;Qh(this).datasetMap=lt(),L(t,(function(t,e){null!=t&&(Eh.hasClass(e)?e&&(o.push(e),a.set(e,!0)):n[e]=null==n[e]?w(t):S(n[e],t,!0))})),s&&s.each((function(t,e){Eh.hasClass(e)&&!a.get(e)&&(o.push(e),a.set(e,!0))})),Eh.topologicalTravel(o,Eh.getAllClassMainTypes(),(function(e){var o=function(t,e,n){var i=rc.get(e);if(!i)return n;var r=i(t);return r?n.concat(r):n}(this,e,er(t[e])),a=i.get(e),l=a?s&&s.get(e)?"replaceMerge":"normalMerge":"replaceAll",u=or(a,o,l);(function(t,e,n){L(t,(function(t){var i=t.newOption;G(i)&&(t.keyInfo.mainType=e,t.keyInfo.subType=function(t,e,n,i){return e.type?e.type:n?n.subType:i.determineSubType(t,e)}(e,i,t.existing,n))}))})(u,e,Eh),n[e]=null,i.set(e,null),r.set(e,0);var h=[],c=[],p=0;L(u,(function(t,n){var i=t.existing,r=t.newOption;if(r){var o=Eh.getClass(e,t.keyInfo.subType,!0);if(i&&i.constructor===o)i.name=t.keyInfo.name,i.mergeOption(r,this),i.optionUpdated(r,!1);else{var a=M({componentIndex:n},t.keyInfo);M(i=new o(r,this,this,a),a),t.brandNew&&(i.__requireNewView=!0),i.init(r,this,this),i.optionUpdated(null,!0)}}else i&&(i.mergeOption({},this),i.optionUpdated({},!1));i?(h.push(i.option),c.push(i),p++):(h.push(void 0),c.push(void 0))}),this),n[e]=h,i.set(e,c),r.set(e,p),"series"===e&&oc(this)}),this),this._seriesIndices||oc(this)},e.prototype.getOption=function(){var t=w(this.option);return L(t,(function(e,n){if(Eh.hasClass(n)){for(var i=er(e),r=i.length,o=!1,a=r-1;a>=0;a--)i[a]&&!hr(i[a])?o=!0:(i[a]=null,!o&&r--);i.length=r,t[n]=i}})),delete t["\0_ec_inner"],t},e.prototype.getTheme=function(){return this._theme},e.prototype.getLocaleModel=function(){return this._locale},e.prototype.getLocale=function(t){return this.getLocaleModel().get(t)},e.prototype.setUpdatePayload=function(t){this._payload=t},e.prototype.getUpdatePayload=function(){return this._payload},e.prototype.getComponent=function(t,e){var n=this._componentsMap.get(t);if(n){var i=n[e||0];if(i)return i;if(null==e)for(var r=0;r<n.length;r++)if(n[r])return n[r]}},e.prototype.queryComponents=function(t){var e=t.mainType;if(!e)return[];var n,i=t.index,r=t.id,o=t.name,a=this._componentsMap.get(e);return a&&a.length?(null!=i?(n=[],L(er(i),(function(t){a[t]&&n.push(a[t])}))):n=null!=r?dc("id",r,a):null!=o?dc("name",o,a):R(a,(function(t){return!!t})),gc(n,t)):[]},e.prototype.findComponents=function(t){var e,n,i,r,o,a=t.query,s=t.mainType,l=(n=s+"Index",i=s+"Id",r=s+"Name",!(e=a)||null==e[n]&&null==e[i]&&null==e[r]?null:{mainType:s,index:e[n],id:e[i],name:e[r]}),u=l?this.queryComponents(l):R(this._componentsMap.get(s),(function(t){return!!t}));return o=gc(u,t),t.filter?R(o,t.filter):o},e.prototype.eachComponent=function(t,e,n){var i=this._componentsMap;if(F(t)){var r=e,o=t;i.each((function(t,e){for(var n=0;t&&n<t.length;n++){var i=t[n];i&&o.call(r,e,i,i.componentIndex)}}))}else for(var a=V(t)?i.get(t):G(t)?this.findComponents(t):null,s=0;a&&s<a.length;s++){var l=a[s];l&&e.call(n,l,l.componentIndex)}},e.prototype.getSeriesByName=function(t){var e=lr(t,null);return R(this._componentsMap.get("series"),(function(t){return!!t&&null!=e&&t.name===e}))},e.prototype.getSeriesByIndex=function(t){return this._componentsMap.get("series")[t]},e.prototype.getSeriesByType=function(t){return R(this._componentsMap.get("series"),(function(e){return!!e&&e.subType===t}))},e.prototype.getSeries=function(){return R(this._componentsMap.get("series").slice(),(function(t){return!!t}))},e.prototype.getSeriesCount=function(){return this._componentsCount.get("series")},e.prototype.eachSeries=function(t,e){ac(this),L(this._seriesIndices,(function(n){var i=this._componentsMap.get("series")[n];t.call(e,i,n)}),this)},e.prototype.eachRawSeries=function(t,e){L(this._componentsMap.get("series"),(function(n){n&&t.call(e,n,n.componentIndex)}))},e.prototype.eachSeriesByType=function(t,e,n){ac(this),L(this._seriesIndices,(function(i){var r=this._componentsMap.get("series")[i];r.subType===t&&e.call(n,r,i)}),this)},e.prototype.eachRawSeriesByType=function(t,e,n){return L(this.getSeriesByType(t),e,n)},e.prototype.isSeriesFiltered=function(t){return ac(this),null==this._seriesIndicesMap.get(t.componentIndex)},e.prototype.getCurrentSeriesIndices=function(){return(this._seriesIndices||[]).slice()},e.prototype.filterSeries=function(t,e){ac(this);var n=[];L(this._seriesIndices,(function(i){var r=this._componentsMap.get("series")[i];t.call(e,r,i)&&n.push(i)}),this),this._seriesIndices=n,this._seriesIndicesMap=lt(n)},e.prototype.restoreData=function(t){oc(this);var e=this._componentsMap,n=[];e.each((function(t,e){Eh.hasClass(e)&&n.push(e)})),Eh.topologicalTravel(n,Eh.getAllClassMainTypes(),(function(n){L(e.get(n),(function(e){!e||"series"===n&&function(t,e){if(e){var n=e.seriesIndex,i=e.seriesId,r=e.seriesName;return null!=n&&t.componentIndex!==n||null!=i&&t.id!==i||null!=r&&t.name!==r}}(e,t)||e.restoreData()}))}))},e.internalField=(oc=function(t){var e=t._seriesIndices=[];L(t._componentsMap.get("series"),(function(t){t&&e.push(t.componentIndex)})),t._seriesIndicesMap=lt(e)},ac=function(t){},void(sc=function(t,e){t.option={},t.option["\0_ec_inner"]=1,t._componentsMap=lt({series:[]}),t._componentsCount=lt();var n=e.aria;G(n)&&null==n.enabled&&(n.enabled=!0),function(t,e){var n=t.color&&!t.colorLayer;L(e,(function(e,i){"colorLayer"===i&&n||Eh.hasClass(i)||("object"==typeof e?t[i]=t[i]?S(t[i],e,!1):w(e):null==t[i]&&(t[i]=e))}))}(e,t._theme.option),S(e,Fh,!1),t._mergeOption(e,null)})),e}(Ou);function dc(t,e,n){if(z(e)){var i=lt();return L(e,(function(t){null!=t&&(null!=lr(t,null)&&i.set(t,!0))})),R(n,(function(e){return e&&i.get(e[t])}))}var r=lr(e,null);return R(n,(function(e){return e&&null!=r&&e[t]===r}))}function gc(t,e){return e.hasOwnProperty("subType")?R(t,(function(t){return t&&t.subType===e.subType})):t}function yc(t){var e=lt();return t&&L(er(t.replaceMerge),(function(t){e.set(t,!0)})),{replaceMergeMainTypeMap:e}}A(fc,hc);var vc=["getDom","getZr","getWidth","getHeight","getDevicePixelRatio","dispatchAction","isDisposed","on","off","getDataURL","getConnectedDataURL","getOption","getId","updateLabelLayout"],mc=function(t){L(vc,(function(e){this[e]=E(t[e],t)}),this)},_c={},xc=function(){function t(){this._coordinateSystems=[]}return t.prototype.create=function(t,e){var n=[];L(_c,(function(i,r){var o=i.create(t,e);n=n.concat(o||[])})),this._coordinateSystems=n},t.prototype.update=function(t,e){L(this._coordinateSystems,(function(n){n.update&&n.update(t,e)}))},t.prototype.getCoordinateSystems=function(){return this._coordinateSystems.slice()},t.register=function(t,e){_c[t]=e},t.get=function(t){return _c[t]},t}(),bc=/^(min|max)?(.+)$/,wc=function(){function t(t){this._timelineOptions=[],this._mediaList=[],this._currentMediaIndices=[],this._api=t}return t.prototype.setOption=function(t,e,n){t&&(L(er(t.series),(function(t){t&&t.data&&Y(t.data)&&ot(t.data)})),L(er(t.dataset),(function(t){t&&t.source&&Y(t.source)&&ot(t.source)}))),t=w(t);var i=this._optionBackup,r=function(t,e,n){var i,r,o=[],a=t.baseOption,s=t.timeline,l=t.options,u=t.media,h=!!t.media,c=!!(l||s||a&&a.timeline);a?(r=a).timeline||(r.timeline=s):((c||h)&&(t.options=t.media=null),r=t);h&&z(u)&&L(u,(function(t){t&&t.option&&(t.query?o.push(t):i||(i=t))}));function p(t){L(e,(function(e){e(t,n)}))}return p(r),L(l,(function(t){return p(t)})),L(o,(function(t){return p(t.option)})),{baseOption:r,timelineOptions:l||[],mediaDefault:i,mediaList:o}}(t,e,!i);this._newBaseOption=r.baseOption,i?(r.timelineOptions.length&&(i.timelineOptions=r.timelineOptions),r.mediaList.length&&(i.mediaList=r.mediaList),r.mediaDefault&&(i.mediaDefault=r.mediaDefault)):this._optionBackup=r},t.prototype.mountOption=function(t){var e=this._optionBackup;return this._timelineOptions=e.timelineOptions,this._mediaList=e.mediaList,this._mediaDefault=e.mediaDefault,this._currentMediaIndices=[],w(t?e.baseOption:this._newBaseOption)},t.prototype.getTimelineOption=function(t){var e,n=this._timelineOptions;if(n.length){var i=t.getComponent("timeline");i&&(e=w(n[i.getCurrentIndex()]))}return e},t.prototype.getMediaOption=function(t){var e,n,i=this._api.getWidth(),r=this._api.getHeight(),o=this._mediaList,a=this._mediaDefault,s=[],l=[];if(!o.length&&!a)return l;for(var u=0,h=o.length;u<h;u++)Sc(o[u].query,i,r)&&s.push(u);return!s.length&&a&&(s=[-1]),s.length&&(e=s,n=this._currentMediaIndices,e.join(",")!==n.join(","))&&(l=P(s,(function(t){return w(-1===t?a.option:o[t].option)}))),this._currentMediaIndices=s,l},t}();function Sc(t,e,n){var i={width:e,height:n,aspectratio:e/n},r=!0;return L(t,(function(t,e){var n=e.match(bc);if(n&&n[1]&&n[2]){var o=n[1],a=n[2].toLowerCase();(function(t,e,n){return"min"===n?t>=e:"max"===n?t<=e:t===e})(i[a],t,o)||(r=!1)}})),r}var Mc=L,Tc=G,Cc=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function Dc(t){var e=t&&t.itemStyle;if(e)for(var n=0,i=Cc.length;n<i;n++){var r=Cc[n],o=e.normal,a=e.emphasis;o&&o[r]&&(t[r]=t[r]||{},t[r].normal?S(t[r].normal,o[r]):t[r].normal=o[r],o[r]=null),a&&a[r]&&(t[r]=t[r]||{},t[r].emphasis?S(t[r].emphasis,a[r]):t[r].emphasis=a[r],a[r]=null)}}function Ic(t,e,n){if(t&&t[e]&&(t[e].normal||t[e].emphasis)){var i=t[e].normal,r=t[e].emphasis;i&&(n?(t[e].normal=t[e].emphasis=null,T(t[e],i)):t[e]=i),r&&(t.emphasis=t.emphasis||{},t.emphasis[e]=r,r.focus&&(t.emphasis.focus=r.focus),r.blurScope&&(t.emphasis.blurScope=r.blurScope))}}function Ac(t){Ic(t,"itemStyle"),Ic(t,"lineStyle"),Ic(t,"areaStyle"),Ic(t,"label"),Ic(t,"labelLine"),Ic(t,"upperLabel"),Ic(t,"edgeLabel")}function kc(t,e){var n=Tc(t)&&t[e],i=Tc(n)&&n.textStyle;if(i){0;for(var r=0,o=ir.length;r<o;r++){var a=ir[r];i.hasOwnProperty(a)&&(n[a]=i[a])}}}function Lc(t){t&&(Ac(t),kc(t,"label"),t.emphasis&&kc(t.emphasis,"label"))}function Pc(t){return z(t)?t:t?[t]:[]}function Oc(t){return(z(t)?t[0]:t)||{}}function Rc(t,e){Mc(Pc(t.series),(function(t){Tc(t)&&function(t){if(Tc(t)){Dc(t),Ac(t),kc(t,"label"),kc(t,"upperLabel"),kc(t,"edgeLabel"),t.emphasis&&(kc(t.emphasis,"label"),kc(t.emphasis,"upperLabel"),kc(t.emphasis,"edgeLabel"));var e=t.markPoint;e&&(Dc(e),Lc(e));var n=t.markLine;n&&(Dc(n),Lc(n));var i=t.markArea;i&&Lc(i);var r=t.data;if("graph"===t.type){r=r||t.nodes;var o=t.links||t.edges;if(o&&!Y(o))for(var a=0;a<o.length;a++)Lc(o[a]);L(t.categories,(function(t){Ac(t)}))}if(r&&!Y(r))for(a=0;a<r.length;a++)Lc(r[a]);if((e=t.markPoint)&&e.data){var s=e.data;for(a=0;a<s.length;a++)Lc(s[a])}if((n=t.markLine)&&n.data){var l=n.data;for(a=0;a<l.length;a++)z(l[a])?(Lc(l[a][0]),Lc(l[a][1])):Lc(l[a])}"gauge"===t.type?(kc(t,"axisLabel"),kc(t,"title"),kc(t,"detail")):"treemap"===t.type?(Ic(t.breadcrumb,"itemStyle"),L(t.levels,(function(t){Ac(t)}))):"tree"===t.type&&Ac(t.leaves)}}(t)}));var n=["xAxis","yAxis","radiusAxis","angleAxis","singleAxis","parallelAxis","radar"];e&&n.push("valueAxis","categoryAxis","logAxis","timeAxis"),Mc(n,(function(e){Mc(Pc(t[e]),(function(t){t&&(kc(t,"axisLabel"),kc(t.axisPointer,"label"))}))})),Mc(Pc(t.parallel),(function(t){var e=t&&t.parallelAxisDefault;kc(e,"axisLabel"),kc(e&&e.axisPointer,"label")})),Mc(Pc(t.calendar),(function(t){Ic(t,"itemStyle"),kc(t,"dayLabel"),kc(t,"monthLabel"),kc(t,"yearLabel")})),Mc(Pc(t.radar),(function(t){kc(t,"name"),t.name&&null==t.axisName&&(t.axisName=t.name,delete t.name),null!=t.nameGap&&null==t.axisNameGap&&(t.axisNameGap=t.nameGap,delete t.nameGap)})),Mc(Pc(t.geo),(function(t){Tc(t)&&(Lc(t),Mc(Pc(t.regions),(function(t){Lc(t)})))})),Mc(Pc(t.timeline),(function(t){Lc(t),Ic(t,"label"),Ic(t,"itemStyle"),Ic(t,"controlStyle",!0);var e=t.data;z(e)&&L(e,(function(t){G(t)&&(Ic(t,"label"),Ic(t,"itemStyle"))}))})),Mc(Pc(t.toolbox),(function(t){Ic(t,"iconStyle"),Mc(t.feature,(function(t){Ic(t,"iconStyle")}))})),kc(Oc(t.axisPointer),"label"),kc(Oc(t.tooltip).axisPointer,"label")}function Nc(t){t&&L(Ec,(function(e){e[0]in t&&!(e[1]in t)&&(t[e[1]]=t[e[0]])}))}var Ec=[["x","left"],["y","top"],["x2","right"],["y2","bottom"]],Bc=["grid","geo","parallel","legend","toolbox","title","visualMap","dataZoom","timeline"],zc=[["borderRadius","barBorderRadius"],["borderColor","barBorderColor"],["borderWidth","barBorderWidth"]];function Fc(t){var e=t&&t.itemStyle;if(e)for(var n=0;n<zc.length;n++){var i=zc[n][1],r=zc[n][0];null!=e[i]&&(e[r]=e[i])}}function Vc(t){t&&"edge"===t.alignTo&&null!=t.margin&&null==t.edgeDistance&&(t.edgeDistance=t.margin)}function Hc(t){t&&t.downplay&&!t.blur&&(t.blur=t.downplay)}function Wc(t,e){if(t)for(var n=0;n<t.length;n++)e(t[n]),t[n]&&Wc(t[n].children,e)}function Gc(t,e){Rc(t,e),t.series=er(t.series),L(t.series,(function(t){if(G(t)){var e=t.type;if("line"===e)null!=t.clipOverflow&&(t.clip=t.clipOverflow);else if("pie"===e||"gauge"===e){if(null!=t.clockWise&&(t.clockwise=t.clockWise),Vc(t.label),(r=t.data)&&!Y(r))for(var n=0;n<r.length;n++)Vc(r[n]);null!=t.hoverOffset&&(t.emphasis=t.emphasis||{},(t.emphasis.scaleSize=null)&&(t.emphasis.scaleSize=t.hoverOffset))}else if("gauge"===e){var i=function(t,e){for(var n=e.split(","),i=t,r=0;r<n.length&&null!=(i=i&&i[n[r]]);r++);return i}(t,"pointer.color");null!=i&&function(t,e,n,i){for(var r,o=e.split(","),a=t,s=0;s<o.length-1;s++)null==a[r=o[s]]&&(a[r]={}),a=a[r];(i||null==a[o[s]])&&(a[o[s]]=n)}(t,"itemStyle.color",i)}else if("bar"===e){var r;if(Fc(t),Fc(t.backgroundStyle),Fc(t.emphasis),(r=t.data)&&!Y(r))for(n=0;n<r.length;n++)"object"==typeof r[n]&&(Fc(r[n]),Fc(r[n]&&r[n].emphasis))}else if("sunburst"===e){var o=t.highlightPolicy;o&&(t.emphasis=t.emphasis||{},t.emphasis.focus||(t.emphasis.focus=o)),Hc(t),Wc(t.data,Hc)}else"graph"===e||"sankey"===e?function(t){t&&null!=t.focusNodeAdjacency&&(t.emphasis=t.emphasis||{},null==t.emphasis.focus&&(t.emphasis.focus="adjacency"))}(t):"map"===e&&(t.mapType&&!t.map&&(t.map=t.mapType),t.mapLocation&&T(t,t.mapLocation));null!=t.hoverAnimation&&(t.emphasis=t.emphasis||{},t.emphasis&&null==t.emphasis.scale&&(t.emphasis.scale=t.hoverAnimation)),Nc(t)}})),t.dataRange&&(t.visualMap=t.dataRange),L(Bc,(function(e){var n=t[e];n&&(z(n)||(n=[n]),L(n,(function(t){Nc(t)})))}))}function Uc(t){L(t,(function(e,n){var i=[],r=[NaN,NaN],o=[e.stackResultDimension,e.stackedOverDimension],a=e.data,s=e.isStackedByIndex,l=a.map(o,(function(o,l,u){var h,c,p=a.get(e.stackedDimension,u);if(isNaN(p))return r;s?c=a.getRawIndex(u):h=a.get(e.stackedByDimension,u);for(var f=NaN,d=n-1;d>=0;d--){var g=t[d];if(s||(c=g.data.rawIndexOf(g.stackedByDimension,h)),c>=0){var y=g.data.getByRawIndex(g.stackResultDimension,c);if(p>=0&&y>0||p<=0&&y<0){p+=y,f=y;break}}}return i[0]=p,i[1]=f,i}));a.hostModel.setData(l),e.data=l}))}var Yc,Xc,qc,jc,Zc,Kc=function(t){this.data=t.data||(t.sourceFormat===Uh?{}:[]),this.sourceFormat=t.sourceFormat||Xh,this.seriesLayoutBy=t.seriesLayoutBy||qh,this.startIndex=t.startIndex||0,this.dimensionsDefine=t.dimensionsDefine,this.dimensionsDetectedCount=t.dimensionsDetectedCount,this.encodeDefine=t.encodeDefine,this.metaRawOption=t.metaRawOption};function $c(t){return t instanceof Kc}function Qc(t,e,n,i){n=n||ep(t);var r=e.seriesLayoutBy,o=function(t,e,n,i,r){var o,a;if(!t)return{dimensionsDefine:np(r),startIndex:a,dimensionsDetectedCount:o};if(e===Wh){var s=t;"auto"===i||null==i?ip((function(t){null!=t&&"-"!==t&&(V(t)?null==a&&(a=1):a=0)}),n,s,10):a=W(i)?i:i?1:0,r||1!==a||(r=[],ip((function(t,e){r[e]=null!=t?t+"":""}),n,s,1/0)),o=r?r.length:n===jh?s.length:s[0]?s[0].length:null}else if(e===Gh)r||(r=function(t){var e,n=0;for(;n<t.length&&!(e=t[n++]););if(e){var i=[];return L(e,(function(t,e){i.push(e)})),i}}(t));else if(e===Uh)r||(r=[],L(t,(function(t,e){r.push(e)})));else if(e===Hh){var l=rr(t[0]);o=z(l)&&l.length||1}return{startIndex:a,dimensionsDefine:np(r),dimensionsDetectedCount:o}}(t,n,r,e.sourceHeader,e.dimensions);return new Kc({data:t,sourceFormat:n,seriesLayoutBy:r,dimensionsDefine:o.dimensionsDefine,startIndex:o.startIndex,dimensionsDetectedCount:o.dimensionsDetectedCount,encodeDefine:tp(i),metaRawOption:w(e)})}function Jc(t){return new Kc({data:t,sourceFormat:Y(t)?Yh:Hh})}function tp(t){return t?lt(t):null}function ep(t){var e=Xh;if(Y(t))e=Yh;else if(z(t)){0===t.length&&(e=Wh);for(var n=0,i=t.length;n<i;n++){var r=t[n];if(null!=r){if(z(r)){e=Wh;break}if(G(r)){e=Gh;break}}}}else if(G(t))for(var o in t)if(ht(t,o)&&k(t[o])){e=Uh;break}return e}function np(t){if(t){var e=lt();return P(t,(function(t,n){var i={name:(t=G(t)?t:{name:t}).name,displayName:t.displayName,type:t.type};if(null==i.name)return i;i.name+="",null==i.displayName&&(i.displayName=i.name);var r=e.get(i.name);return r?i.name+="-"+r.count++:e.set(i.name,{count:1}),i}))}}function ip(t,e,n,i){if(e===jh)for(var r=0;r<n.length&&r<i;r++)t(n[r]?n[r][0]:null,r);else{var o=n[0]||[];for(r=0;r<o.length&&r<i;r++)t(o[r],r)}}var rp=function(){function t(t,e){var n=$c(t)?t:Jc(t);this._source=n;var i=this._data=n.data;n.sourceFormat===Yh&&(this._offset=0,this._dimSize=e,this._data=i),Zc(this,i,n)}return t.prototype.getSource=function(){return this._source},t.prototype.count=function(){return 0},t.prototype.getItem=function(t,e){},t.prototype.appendData=function(t){},t.prototype.clean=function(){},t.protoInitialize=function(){var e=t.prototype;e.pure=!1,e.persistent=!0}(),t.internalField=function(){var t;Zc=function(t,r,o){var a=o.sourceFormat,s=o.seriesLayoutBy,l=o.startIndex,u=o.dimensionsDefine,h=jc[dp(a,s)];if(M(t,h),a===Yh)t.getItem=e,t.count=i,t.fillStorage=n;else{var c=sp(a,s);t.getItem=E(c,null,r,l,u);var p=hp(a,s);t.count=E(p,null,r,l,u)}};var e=function(t,e){t-=this._offset,e=e||[];for(var n=this._data,i=this._dimSize,r=i*t,o=0;o<i;o++)e[o]=n[r+o];return e},n=function(t,e,n,i){for(var r=this._data,o=this._dimSize,a=0;a<o;a++){for(var s=i[a],l=null==s[0]?1/0:s[0],u=null==s[1]?-1/0:s[1],h=e-t,c=n[a],p=0;p<h;p++){var f=r[p*o+a];c[t+p]=f,f<l&&(l=f),f>u&&(u=f)}s[0]=l,s[1]=u}},i=function(){return this._data?this._data.length/this._dimSize:0};function r(t){for(var e=0;e<t.length;e++)this._data.push(t[e])}(t={}).arrayRows_column={pure:!0,appendData:r},t.arrayRows_row={pure:!0,appendData:function(){throw new Error('Do not support appendData when set seriesLayoutBy: "row".')}},t.objectRows={pure:!0,appendData:r},t.keyedColumns={pure:!0,appendData:function(t){var e=this._data;L(t,(function(t,n){for(var i=e[n]||(e[n]=[]),r=0;r<(t||[]).length;r++)i.push(t[r])}))}},t.original={appendData:r},t.typedArray={persistent:!1,pure:!0,appendData:function(t){this._data=t},clean:function(){this._offset+=this.count(),this._data=null}},jc=t}(),t}(),op=function(t,e,n,i){return t[i]},ap=((Yc={}).arrayRows_column=function(t,e,n,i){return t[i+e]},Yc.arrayRows_row=function(t,e,n,i){i+=e;for(var r=[],o=t,a=0;a<o.length;a++){var s=o[a];r.push(s?s[i]:null)}return r},Yc.objectRows=op,Yc.keyedColumns=function(t,e,n,i){for(var r=[],o=0;o<n.length;o++){var a=n[o].name;0;var s=t[a];r.push(s?s[i]:null)}return r},Yc.original=op,Yc);function sp(t,e){var n=ap[dp(t,e)];return n}var lp=function(t,e,n){return t.length},up=((Xc={}).arrayRows_column=function(t,e,n){return Math.max(0,t.length-e)},Xc.arrayRows_row=function(t,e,n){var i=t[0];return i?Math.max(0,i.length-e):0},Xc.objectRows=lp,Xc.keyedColumns=function(t,e,n){var i=n[0].name;var r=t[i];return r?r.length:0},Xc.original=lp,Xc);function hp(t,e){var n=up[dp(t,e)];return n}var cp=function(t,e,n){return null!=e?t[e]:t},pp=((qc={}).arrayRows=cp,qc.objectRows=function(t,e,n){return null!=e?t[n]:t},qc.keyedColumns=cp,qc.original=function(t,e,n){var i=rr(t);return null!=e&&i instanceof Array?i[e]:i},qc.typedArray=cp,qc);function fp(t){var e=pp[t];return e}function dp(t,e){return t===Wh?t+"_"+e:t}function gp(t,e,n){if(t){var i=t.getRawDataItem(e);if(null!=i){var r,o,a=t.getProvider().getSource().sourceFormat,s=t.getDimensionInfo(n);return s&&(r=s.name,o=s.index),fp(a)(i,o,r)}}}var yp=/\{@(.+?)\}/g,vp=function(){function t(){}return t.prototype.getDataParams=function(t,e){var n=this.getData(e),i=this.getRawValue(t,e),r=n.getRawIndex(t),o=n.getName(t),a=n.getRawDataItem(t),s=n.getItemVisual(t,"style"),l=s&&s[n.getItemVisual(t,"drawType")||"fill"],u=s&&s.stroke,h=this.mainType,c="series"===h,p=n.userOutput;return{componentType:h,componentSubType:this.subType,componentIndex:this.componentIndex,seriesType:c?this.subType:null,seriesIndex:this.seriesIndex,seriesId:c?this.id:null,seriesName:c?this.name:null,name:o,dataIndex:r,data:a,dataType:e,value:i,color:l,borderColor:u,dimensionNames:p?p.dimensionNames:null,encode:p?p.encode:null,$vars:["seriesName","name","value"]}},t.prototype.getFormattedLabel=function(t,e,n,i,r,o){e=e||"normal";var a=this.getData(n),s=this.getDataParams(t,n);(o&&(s.value=o.interpolatedValue),null!=i&&z(s.value)&&(s.value=s.value[i]),r)||(r=a.getItemModel(t).get("normal"===e?["label","formatter"]:[e,"label","formatter"]));return"function"==typeof r?(s.status=e,s.dimensionIndex=i,r(s)):"string"==typeof r?Ch(r,s).replace(yp,(function(e,n){var i=n.length,r="["===n.charAt(0)&&"]"===n.charAt(i-1)?+n.slice(1,i-1):n,s=gp(a,t,r);if(o&&z(o.interpolatedValue)){var l=a.getDimensionInfo(r);l&&(s=o.interpolatedValue[l.index])}return null!=s?s+"":""})):void 0},t.prototype.getRawValue=function(t,e){return gp(this.getData(e),t)},t.prototype.formatTooltip=function(t,e,n){},t}();function mp(t){return new _p(t)}var _p=function(){function t(t){t=t||{},this._reset=t.reset,this._plan=t.plan,this._count=t.count,this._onDirty=t.onDirty,this._dirty=!0}return t.prototype.perform=function(t){var e,n=this._upstream,i=t&&t.skip;if(this._dirty&&n){var r=this.context;r.data=r.outputData=n.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this),this._plan&&!i&&(e=this._plan(this.context));var o,a=h(this._modBy),s=this._modDataCount||0,l=h(t&&t.modBy),u=t&&t.modDataCount||0;function h(t){return!(t>=1)&&(t=1),t}a===l&&s===u||(e="reset"),(this._dirty||"reset"===e)&&(this._dirty=!1,o=this._doReset(i)),this._modBy=l,this._modDataCount=u;var c=t&&t.step;if(this._dueEnd=n?n._outputDueEnd:this._count?this._count(this.context):1/0,this._progress){var p=this._dueIndex,f=Math.min(null!=c?this._dueIndex+c:1/0,this._dueEnd);if(!i&&(o||p<f)){var d=this._progress;if(z(d))for(var g=0;g<d.length;g++)this._doProgress(d[g],p,f,l,u);else this._doProgress(d,p,f,l,u)}this._dueIndex=f;var y=null!=this._settedOutputEnd?this._settedOutputEnd:f;0,this._outputDueEnd=y}else this._dueIndex=this._outputDueEnd=null!=this._settedOutputEnd?this._settedOutputEnd:this._dueEnd;return this.unfinished()},t.prototype.dirty=function(){this._dirty=!0,this._onDirty&&this._onDirty(this.context)},t.prototype._doProgress=function(t,e,n,i,r){xp.reset(e,n,i,r),this._callingProgress=t,this._callingProgress({start:e,end:n,count:n-e,next:xp.next},this.context)},t.prototype._doReset=function(t){var e,n;this._dueIndex=this._outputDueEnd=this._dueEnd=0,this._settedOutputEnd=null,!t&&this._reset&&((e=this._reset(this.context))&&e.progress&&(n=e.forceFirstProgress,e=e.progress),z(e)&&!e.length&&(e=null)),this._progress=e,this._modBy=this._modDataCount=null;var i=this._downstream;return i&&i.dirty(),n},t.prototype.unfinished=function(){return this._progress&&this._dueIndex<this._dueEnd},t.prototype.pipe=function(t){(this._downstream!==t||this._dirty)&&(this._downstream=t,t._upstream=this,t.dirty())},t.prototype.dispose=function(){this._disposed||(this._upstream&&(this._upstream._downstream=null),this._downstream&&(this._downstream._upstream=null),this._dirty=!1,this._disposed=!0)},t.prototype.getUpstream=function(){return this._upstream},t.prototype.getDownstream=function(){return this._downstream},t.prototype.setOutputEnd=function(t){this._outputDueEnd=this._settedOutputEnd=t},t}(),xp=function(){var t,e,n,i,r,o={reset:function(l,u,h,c){e=l,t=u,n=h,i=c,r=Math.ceil(i/n),o.next=n>1&&i>0?s:a}};return o;function a(){return e<t?e++:null}function s(){var o=e%r*n+Math.ceil(e/r),a=e>=t?null:o<i?o:e;return e++,a}}();function bp(t,e){var n=e&&e.type;if("ordinal"===n){var i=e&&e.ordinalMeta;return i?i.parseAndCollect(t):t}return"time"===n&&"number"!=typeof t&&null!=t&&"-"!==t&&(t=+Ui(t)),null==t||""===t?NaN:+t}lt({number:function(t){return parseFloat(t)},time:function(t){return+Ui(t)},trim:function(t){return"string"==typeof t?it(t):t}});var wp=function(){function t(){}return t.prototype.getRawData=function(){throw new Error("not supported")},t.prototype.getRawDataItem=function(t){throw new Error("not supported")},t.prototype.cloneRawData=function(){},t.prototype.getDimensionInfo=function(t){},t.prototype.cloneAllDimensionInfo=function(){},t.prototype.count=function(){},t.prototype.retrieveValue=function(t,e){},t.prototype.retrieveValueFromItem=function(t,e){},t.prototype.convertValue=function(t,e){return bp(t,e)},t}();function Sp(t){var e=t.sourceFormat;if(!Ap(e)){var n="";0,Ji(n)}return t.data}function Mp(t){var e=t.sourceFormat,n=t.data;if(!Ap(e)){var i="";0,Ji(i)}if(e===Wh){for(var r=[],o=0,a=n.length;o<a;o++)r.push(n[o].slice());return r}if(e===Gh){for(r=[],o=0,a=n.length;o<a;o++)r.push(M({},n[o]));return r}}function Tp(t,e,n){if(null!=n)return"number"==typeof n||!isNaN(n)&&!ht(e,n)?t[n]:ht(e,n)?e[n]:void 0}function Cp(t){return w(t)}var Dp=lt();function Ip(t,e,n,i){var r="";e.length||Ji(r),G(t)||Ji(r);var o=t.type,a=Dp.get(o);a||Ji(r);var s=P(e,(function(t){return function(t,e){var n=new wp,i=t.data,r=n.sourceFormat=t.sourceFormat,o=t.startIndex,a="";t.seriesLayoutBy!==qh&&Ji(a);var s=[],l={},u=t.dimensionsDefine;if(u)L(u,(function(t,e){var n=t.name,i={index:e,name:n,displayName:t.displayName};if(s.push(i),null!=n){var r="";ht(l,n)&&Ji(r),l[n]=i}}));else for(var h=0;h<t.dimensionsDetectedCount;h++)s.push({index:h});var c=sp(r,qh);e.__isBuiltIn&&(n.getRawDataItem=function(t){return c(i,o,s,t)},n.getRawData=E(Sp,null,t)),n.cloneRawData=E(Mp,null,t);var p=hp(r,qh);n.count=E(p,null,i,o,s);var f=fp(r);n.retrieveValue=function(t,e){var n=c(i,o,s,t);return d(n,e)};var d=n.retrieveValueFromItem=function(t,e){if(null!=t){var n=s[e];return n?f(t,e,n.name):void 0}};return n.getDimensionInfo=E(Tp,null,s,l),n.cloneAllDimensionInfo=E(Cp,null,s),n}(t,a)})),l=er(a.transform({upstream:s[0],upstreamList:s,config:w(t.config)}));return P(l,(function(t,n){var i,r="";G(t)||Ji(r),t.data||Ji(r),Ap(ep(t.data))||Ji(r);var o=e[0];if(o&&0===n&&!t.dimensions){var a=o.startIndex;a&&(t.data=o.data.slice(0,a).concat(t.data)),i={seriesLayoutBy:qh,sourceHeader:a,dimensions:o.metaRawOption.dimensions}}else i={seriesLayoutBy:qh,sourceHeader:0,dimensions:t.dimensions};return Qc(t.data,i,null,null)}))}function Ap(t){return t===Wh||t===Gh}var kp=function(){function t(t){this._sourceList=[],this._upstreamSignList=[],this._versionSignBase=0,this._sourceHost=t}return t.prototype.dirty=function(){this._setLocalSource([],[])},t.prototype._setLocalSource=function(t,e){this._sourceList=t,this._upstreamSignList=e,this._versionSignBase++,this._versionSignBase>9e10&&(this._versionSignBase=0)},t.prototype._getVersionSign=function(){return this._sourceHost.uid+"_"+this._versionSignBase},t.prototype.prepareSource=function(){this._isDirty()&&this._createSource()},t.prototype._createSource=function(){this._setLocalSource([],[]);var t,e,n=this._sourceHost,i=this._getUpstreamSourceManagers(),r=!!i.length;if(Pp(n)){var o=n,a=void 0,s=void 0,l=void 0;if(r){var u=i[0];u.prepareSource(),a=(l=u.getSource()).data,s=l.sourceFormat,e=[u._getVersionSign()]}else s=Y(a=o.get("data",!0))?Yh:Hh,e=[];var h=this._getSourceMetaRawOption(),c=l?l.metaRawOption:null;t=[Qc(a,{seriesLayoutBy:Q(h.seriesLayoutBy,c?c.seriesLayoutBy:null),sourceHeader:Q(h.sourceHeader,c?c.sourceHeader:null),dimensions:Q(h.dimensions,c?c.dimensions:null)},s,o.get("encode",!0))]}else{var p=n;if(r){var f=this._applyTransform(i);t=f.sourceList,e=f.upstreamSignList}else{t=[Qc(p.get("source",!0),this._getSourceMetaRawOption(),null,null)],e=[]}}this._setLocalSource(t,e)},t.prototype._applyTransform=function(t){var e,n=this._sourceHost,i=n.get("transform",!0),r=n.get("fromTransformResult",!0);if(null!=r){var o="";1!==t.length&&Op(o)}var a,s=[],l=[];return L(t,(function(t){t.prepareSource();var e=t.getSource(r||0),n="";null==r||e||Op(n),s.push(e),l.push(t._getVersionSign())})),i?e=function(t,e,n){var i=er(t),r=i.length,o="";r||Ji(o);for(var a=0,s=r;a<s;a++)e=Ip(i[a],e),a!==s-1&&(e.length=Math.max(e.length,1));return e}(i,s,n.componentIndex):null!=r&&(e=[(a=s[0],new Kc({data:a.data,sourceFormat:a.sourceFormat,seriesLayoutBy:a.seriesLayoutBy,dimensionsDefine:w(a.dimensionsDefine),startIndex:a.startIndex,dimensionsDetectedCount:a.dimensionsDetectedCount,encodeDefine:tp(a.encodeDefine)}))]),{sourceList:e,upstreamSignList:l}},t.prototype._isDirty=function(){if(!this._sourceList.length)return!0;for(var t=this._getUpstreamSourceManagers(),e=0;e<t.length;e++){var n=t[e];if(n._isDirty()||this._upstreamSignList[e]!==n._getVersionSign())return!0}},t.prototype.getSource=function(t){return this._sourceList[t||0]},t.prototype._getUpstreamSourceManagers=function(){var t=this._sourceHost;if(Pp(t)){var e=ec(t);return e?[e.getSourceManager()]:[]}return P(function(t){return t.get("transform",!0)||t.get("fromTransformResult",!0)?yr(t.ecModel,"dataset",{index:t.get("fromDatasetIndex",!0),id:t.get("fromDatasetId",!0)},gr).models:[]}(t),(function(t){return t.getSourceManager()}))},t.prototype._getSourceMetaRawOption=function(){var t,e,n,i=this._sourceHost;if(Pp(i))t=i.get("seriesLayoutBy",!0),e=i.get("sourceHeader",!0),n=i.get("dimensions",!0);else if(!this._getUpstreamSourceManagers().length){var r=i;t=r.get("seriesLayoutBy",!0),e=r.get("sourceHeader",!0),n=r.get("dimensions",!0)}return{seriesLayoutBy:t,sourceHeader:e,dimensions:n}},t}();function Lp(t){t.option.transform&&ot(t.option.transform)}function Pp(t){return"series"===t.mainType}function Op(t){throw new Error(t)}function Rp(t,e){return e.type=t,e}function Np(t,e){return function(t,e){return e=e||"transparent",V(t)?t:G(t)&&t.colorStops&&(t.colorStops[0]||{}).color||e}(t.getData().getItemVisual(e,"style")[t.visualDrawType])}function Ep(t){var e,n,i,r,o=t.series,a=t.dataIndex,s=t.multipleSeries,l=o.getData(),u=l.mapDimensionsAll("defaultedTooltip"),h=u.length,c=o.getRawValue(a),p=z(c),f=Np(o,a);if(h>1||p&&!h){var d=function(t,e,n,i,r){var o=e.getData(),a=O(t,(function(t,e,n){var i=o.getDimensionInfo(n);return t||i&&!1!==i.tooltip&&null!=i.displayName}),!1),s=[],l=[],u=[];function h(t,e){var n=o.getDimensionInfo(e);n&&!1!==n.otherDims.tooltip&&(a?u.push(Rp("nameValue",{markerType:"subItem",markerColor:r,name:n.displayName,value:t,valueType:n.type})):(s.push(t),l.push(n.type)))}return i.length?L(i,(function(t){h(gp(o,n,t),t)})):L(t,h),{inlineValues:s,inlineValueTypes:l,blocks:u}}(c,o,a,u,f);e=d.inlineValues,n=d.inlineValueTypes,i=d.blocks,r=d.inlineValues[0]}else if(h){var g=l.getDimensionInfo(u[0]);r=e=gp(l,a,u[0]),n=g.type}else r=e=p?c[0]:c;var y=ur(o),v=y&&o.name||"",m=l.getName(a),_=s?v:m;return Rp("section",{header:v,noHeader:s||!y,sortParam:r,blocks:[Rp("nameValue",{markerType:"item",markerColor:f,name:_,noName:!it(_),value:e,valueType:n})].concat(i||[])})}var Bp=pr();function zp(t,e){return t.getName(e)||t.getId(e)}var Fp=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._selectedDataIndicesMap={},e}return n(e,t),e.prototype.init=function(t,e,n){this.seriesIndex=this.componentIndex,this.dataTask=mp({count:Hp,reset:Wp}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(t,n),(Bp(this).sourceManager=new kp(this)).prepareSource();var i=this.getInitialData(t,n);Up(i,this),this.dataTask.context.data=i,Bp(this).dataBeforeProcessed=i,Vp(this),this._initSelectedMapFromData(i)},e.prototype.mergeDefaultAndTheme=function(t,e){var n=Ph(this),i=n?Rh(t):{},r=this.subType;Eh.hasClass(r)&&(r+="Series"),S(t,e.getTheme().get(this.subType)),S(t,this.getDefaultOption()),nr(t,"label",["show"]),this.fillDataTextStyle(t.data),n&&Oh(t,i,n)},e.prototype.mergeOption=function(t,e){t=S(this.option,t,!0),this.fillDataTextStyle(t.data);var n=Ph(this);n&&Oh(this.option,t,n);var i=Bp(this).sourceManager;i.dirty(),i.prepareSource();var r=this.getInitialData(t,e);Up(r,this),this.dataTask.dirty(),this.dataTask.context.data=r,Bp(this).dataBeforeProcessed=r,Vp(this),this._initSelectedMapFromData(r)},e.prototype.fillDataTextStyle=function(t){if(t&&!Y(t))for(var e=["show"],n=0;n<t.length;n++)t[n]&&t[n].label&&nr(t[n],"label",e)},e.prototype.getInitialData=function(t,e){},e.prototype.appendData=function(t){this.getRawData().appendData(t.data)},e.prototype.getData=function(t){var e=Xp(this);if(e){var n=e.context.data;return null==t?n:n.getLinkedData(t)}return Bp(this).data},e.prototype.getAllData=function(){var t=this.getData();return t&&t.getLinkedDataAll?t.getLinkedDataAll():[{data:t}]},e.prototype.setData=function(t){var e=Xp(this);if(e){var n=e.context;n.outputData=t,e!==this.dataTask&&(n.data=t)}Bp(this).data=t},e.prototype.getSource=function(){return Bp(this).sourceManager.getSource()},e.prototype.getRawData=function(){return Bp(this).dataBeforeProcessed},e.prototype.getBaseAxis=function(){var t=this.coordinateSystem;return t&&t.getBaseAxis&&t.getBaseAxis()},e.prototype.formatTooltip=function(t,e,n){return Ep({series:this,dataIndex:t,multipleSeries:e})},e.prototype.isAnimationEnabled=function(){if(a.node)return!1;var t=this.getShallow("animation");return t&&this.getData().count()>this.getShallow("animationThreshold")&&(t=!1),!!t},e.prototype.restoreData=function(){this.dataTask.dirty()},e.prototype.getColorFromPalette=function(t,e,n){var i=this.ecModel,r=hc.prototype.getColorFromPalette.call(this,t,e,n);return r||(r=i.getColorFromPalette(t,e,n)),r},e.prototype.coordDimToDataDim=function(t){return this.getRawData().mapDimensionsAll(t)},e.prototype.getProgressive=function(){return this.get("progressive")},e.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},e.prototype.select=function(t,e){this._innerSelect(this.getData(e),t)},e.prototype.unselect=function(t,e){var n=this.option.selectedMap;if(n)for(var i=this.getData(e),r=0;r<t.length;r++){var o=zp(i,t[r]);n[o]=!1,this._selectedDataIndicesMap[o]=-1}},e.prototype.toggleSelect=function(t,e){for(var n=[],i=0;i<t.length;i++)n[0]=t[i],this.isSelected(t[i],e)?this.unselect(n,e):this.select(n,e)},e.prototype.getSelectedDataIndices=function(){for(var t=this._selectedDataIndicesMap,e=N(t),n=[],i=0;i<e.length;i++){var r=t[e[i]];r>=0&&n.push(r)}return n},e.prototype.isSelected=function(t,e){var n=this.option.selectedMap;return n&&n[zp(this.getData(e),t)]||!1},e.prototype._innerSelect=function(t,e){var n,i,r=this.option.selectedMode,o=e.length;if(r&&o)if("multiple"===r)for(var a=this.option.selectedMap||(this.option.selectedMap={}),s=0;s<o;s++){var l=e[s];a[h=zp(t,l)]=!0,this._selectedDataIndicesMap[h]=t.getRawIndex(l)}else if("single"===r||!0===r){var u=e[o-1],h=zp(t,u);this.option.selectedMap=((n={})[h]=!0,n),this._selectedDataIndicesMap=((i={})[h]=t.getRawIndex(u),i)}},e.prototype._initSelectedMapFromData=function(t){if(!this.option.selectedMap){var e=[];t.hasItemOption&&t.each((function(n){var i=t.getRawDataItem(n);"object"==typeof i&&i.selected&&e.push(n)})),e.length>0&&this._innerSelect(t,e)}},e.registerClass=function(t){return Eh.registerClass(t)},e.protoInitialize=function(){var t=e.prototype;t.type="series.__base__",t.seriesIndex=0,t.useColorPaletteOnData=!1,t.ignoreStyleOnData=!1,t.hasSymbolVisual=!1,t.defaultSymbol="circle",t.visualStyleAccessPath="itemStyle",t.visualDrawType="fill"}(),e}(Eh);function Vp(t){var e=t.name;ur(t)||(t.name=function(t){var e=t.getRawData(),n=e.mapDimensionsAll("seriesName"),i=[];return L(n,(function(t){var n=e.getDimensionInfo(t);n.displayName&&i.push(n.displayName)})),i.join(" ")}(t)||e)}function Hp(t){return t.model.getRawData().count()}function Wp(t){var e=t.model;return e.setData(e.getRawData().cloneShallow()),Gp}function Gp(t,e){e.outputData&&t.end>e.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function Up(t,e){L(r(t.CHANGABLE_METHODS,t.DOWNSAMPLE_METHODS),(function(n){t.wrapMethod(n,B(Yp,e))}))}function Yp(t,e){var n=Xp(t);return n&&n.setOutputEnd((e||this).count()),e}function Xp(t){var e=(t.ecModel||{}).scheduler,n=e&&e.getPipeline(t.uid);if(n){var i=n.currentTask;if(i){var r=i.agentStubMap;r&&(i=r.get(t.uid))}return i}}A(Fp,vp),A(Fp,hc),Mr(Fp,Eh);var qp=function(){function t(){this.group=new Ci,this.uid=Nu("viewComponent")}return t.prototype.init=function(t,e){},t.prototype.render=function(t,e,n,i){},t.prototype.dispose=function(t,e){},t.prototype.updateView=function(t,e,n,i){},t.prototype.updateLayout=function(t,e,n,i){},t.prototype.updateVisual=function(t,e,n,i){},t.prototype.blurSeries=function(t,e){},t}();function jp(){var t=pr();return function(e){var n=t(e),i=e.pipelineContext,r=!!n.large,o=!!n.progressiveRender,a=n.large=!(!i||!i.large),s=n.progressiveRender=!(!i||!i.progressiveRender);return!(r===a&&o===s)&&"reset"}}wr(qp),Ir(qp);var Zp=pr(),Kp=jp(),$p=function(){function t(){this.group=new Ci,this.uid=Nu("viewChart"),this.renderTask=mp({plan:tf,reset:ef}),this.renderTask.context={view:this}}return t.prototype.init=function(t,e){},t.prototype.render=function(t,e,n,i){},t.prototype.highlight=function(t,e,n,i){Jp(t.getData(),i,"emphasis")},t.prototype.downplay=function(t,e,n,i){Jp(t.getData(),i,"normal")},t.prototype.remove=function(t,e){this.group.removeAll()},t.prototype.dispose=function(t,e){},t.prototype.updateView=function(t,e,n,i){this.render(t,e,n,i)},t.prototype.updateLayout=function(t,e,n,i){this.render(t,e,n,i)},t.prototype.updateVisual=function(t,e,n,i){this.render(t,e,n,i)},t.markUpdateMethod=function(t,e){Zp(t).updateMethod=e},t.protoInitialize=void(t.prototype.type="chart"),t}();function Qp(t,e,n){t&&("emphasis"===e?xs:bs)(t,n)}function Jp(t,e,n){var i=cr(t,e),r=e&&null!=e.highlightKey?function(t){var e=Ka[t];return null==e&&Za<=32&&(e=Ka[t]=Za++),e}(e.highlightKey):null;null!=i?L(er(i),(function(e){Qp(t.getItemGraphicEl(e),n,r)})):t.eachItemGraphicEl((function(t){Qp(t,n,r)}))}function tf(t){return Kp(t.model)}function ef(t){var e=t.model,n=t.ecModel,i=t.api,r=t.payload,o=e.pipelineContext.progressiveRender,a=t.view,s=r&&Zp(r).updateMethod,l=o?"incrementalPrepareRender":s&&a[s]?s:"render";return"render"!==l&&a[l](e,n,i,r),nf[l]}wr($p),Ir($p);var nf={incrementalPrepareRender:{progress:function(t,e){e.view.incrementalRender(t,e.model,e.ecModel,e.api,e.payload)}},render:{forceFirstProgress:!0,progress:function(t,e){e.view.render(e.model,e.ecModel,e.api,e.payload)}}};function rf(t,e,n){var i,r,o,a,s,l=0,u=0,h=null;function c(){u=(new Date).getTime(),h=null,t.apply(o,a||[])}e=e||0;var p=function(){for(var t=[],p=0;p<arguments.length;p++)t[p]=arguments[p];i=(new Date).getTime(),o=this,a=t;var f=s||e,d=s||n;s=null,r=i-(d?l:u)-f,clearTimeout(h),d?h=setTimeout(c,f):r>=0?c():h=setTimeout(c,-r),l=i};return p.clear=function(){h&&(clearTimeout(h),h=null)},p.debounceNextCall=function(t){s=t},p}var of=pr(),af={itemStyle:Ar(ku,!0),lineStyle:Ar(Du,!0)},sf={lineStyle:"stroke",itemStyle:"fill"};function lf(t,e){var n=t.visualStyleMapper||af[e];return n||(console.warn("Unkown style type '"+e+"'."),af.itemStyle)}function uf(t,e){var n=t.visualDrawType||sf[e];return n||(console.warn("Unkown style type '"+e+"'."),"fill")}var hf={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var n=t.getData(),i=t.visualStyleAccessPath||"itemStyle",r=t.getModel(i),o=lf(t,i)(r),a=r.getShallow("decal");a&&(n.setVisual("decal",a),a.dirty=!0);var s=uf(t,i),l=o[s],u=F(l)?l:null;if(o[s]&&!u||(o[s]=t.getColorFromPalette(t.name,null,e.getSeriesCount()),n.setVisual("colorFromPalette",!0)),n.setVisual("style",o),n.setVisual("drawType",s),!e.isSeriesFiltered(t)&&u)return n.setVisual("colorFromPalette",!1),{dataEach:function(e,n){var i=t.getDataParams(n),r=M({},o);r[s]=u(i),e.setItemVisual(n,"style",r)}}}},cf=new Ou,pf={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){if(!t.ignoreStyleOnData&&!e.isSeriesFiltered(t)){var n=t.getData(),i=t.visualStyleAccessPath||"itemStyle",r=lf(t,i),o=n.getVisual("drawType");return{dataEach:n.hasItemOption?function(t,e){var n=t.getRawDataItem(e);if(n&&n[i]){cf.option=n[i];var a=r(cf);M(t.ensureUniqueItemVisual(e,"style"),a),cf.option.decal&&(t.setItemVisual(e,"decal",cf.option.decal),cf.option.decal.dirty=!0),o in a&&t.setItemVisual(e,"colorFromPalette",!1)}}:null}}}},ff={performRawSeries:!0,overallReset:function(t){var e=lt();t.eachSeries((function(t){if(t.useColorPaletteOnData){var n=e.get(t.type);n||(n={},e.set(t.type,n)),of(t).scope=n}})),t.eachSeries((function(e){if(e.useColorPaletteOnData&&!t.isSeriesFiltered(e)){var n=e.getRawData(),i={},r=e.getData(),o=of(e).scope,a=e.visualStyleAccessPath||"itemStyle",s=uf(e,a);r.each((function(t){var e=r.getRawIndex(t);i[e]=t})),n.each((function(t){var a=i[t];if(r.getItemVisual(a,"colorFromPalette")){var l=r.ensureUniqueItemVisual(a,"style"),u=n.getName(t)||t+"",h=n.count();l[s]=e.getColorFromPalette(u,o,h)}}))}}))}},df=Math.PI;var gf=function(){function t(t,e,n,i){this._stageTaskMap=lt(),this.ecInstance=t,this.api=e,n=this._dataProcessorHandlers=n.slice(),i=this._visualHandlers=i.slice(),this._allHandlers=n.concat(i)}return t.prototype.restoreData=function(t,e){t.restoreData(e),this._stageTaskMap.each((function(t){var e=t.overallTask;e&&e.dirty()}))},t.prototype.getPerformArgs=function(t,e){if(t.__pipeline){var n=this._pipelineMap.get(t.__pipeline.id),i=n.context,r=!e&&n.progressiveEnabled&&(!i||i.progressiveRender)&&t.__idxInPipeline>n.blockIndex?n.step:null,o=i&&i.modDataCount;return{step:r,modBy:null!=o?Math.ceil(o/r):null,modDataCount:o}}},t.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},t.prototype.updateStreamModes=function(t,e){var n=this._pipelineMap.get(t.uid),i=t.getData().count(),r=n.progressiveEnabled&&e.incrementalPrepareRender&&i>=n.threshold,o=t.get("large")&&i>=t.get("largeThreshold"),a="mod"===t.get("progressiveChunkMode")?i:null;t.pipelineContext=n.context={progressiveRender:r,modDataCount:a,large:o}},t.prototype.restorePipelines=function(t){var e=this,n=e._pipelineMap=lt();t.eachSeries((function(t){var i=t.getProgressive(),r=t.uid;n.set(r,{id:r,head:null,tail:null,threshold:t.getProgressiveThreshold(),progressiveEnabled:i&&!(t.preventIncremental&&t.preventIncremental()),blockIndex:-1,step:Math.round(i||700),count:0}),e._pipe(t,t.dataTask)}))},t.prototype.prepareStageTasks=function(){var t=this._stageTaskMap,e=this.api.getModel(),n=this.api;L(this._allHandlers,(function(i){var r=t.get(i.uid)||t.set(i.uid,{}),o="";nt(!(i.reset&&i.overallReset),o),i.reset&&this._createSeriesStageTask(i,r,e,n),i.overallReset&&this._createOverallStageTask(i,r,e,n)}),this)},t.prototype.prepareView=function(t,e,n,i){var r=t.renderTask,o=r.context;o.model=e,o.ecModel=n,o.api=i,r.__block=!t.incrementalPrepareRender,this._pipe(e,r)},t.prototype.performDataProcessorTasks=function(t,e){this._performStageTasks(this._dataProcessorHandlers,t,e,{block:!0})},t.prototype.performVisualTasks=function(t,e,n){this._performStageTasks(this._visualHandlers,t,e,n)},t.prototype._performStageTasks=function(t,e,n,i){i=i||{};var r=!1,o=this;function a(t,e){return t.setDirty&&(!t.dirtyMap||t.dirtyMap.get(e.__pipeline.id))}L(t,(function(t,s){if(!i.visualType||i.visualType===t.visualType){var l=o._stageTaskMap.get(t.uid),u=l.seriesTaskMap,h=l.overallTask;if(h){var c,p=h.agentStubMap;p.each((function(t){a(i,t)&&(t.dirty(),c=!0)})),c&&h.dirty(),o.updatePayload(h,n);var f=o.getPerformArgs(h,i.block);p.each((function(t){t.perform(f)})),h.perform(f)&&(r=!0)}else u&&u.each((function(s,l){a(i,s)&&s.dirty();var u=o.getPerformArgs(s,i.block);u.skip=!t.performRawSeries&&e.isSeriesFiltered(s.context.model),o.updatePayload(s,n),s.perform(u)&&(r=!0)}))}})),this.unfinished=r||this.unfinished},t.prototype.performSeriesTasks=function(t){var e;t.eachSeries((function(t){e=t.dataTask.perform()||e})),this.unfinished=e||this.unfinished},t.prototype.plan=function(){this._pipelineMap.each((function(t){var e=t.tail;do{if(e.__block){t.blockIndex=e.__idxInPipeline;break}e=e.getUpstream()}while(e)}))},t.prototype.updatePayload=function(t,e){"remain"!==e&&(t.context.payload=e)},t.prototype._createSeriesStageTask=function(t,e,n,i){var r=this,o=e.seriesTaskMap,a=e.seriesTaskMap=lt(),s=t.seriesType,l=t.getTargetSeries;function u(e){var s=e.uid,l=a.set(s,o&&o.get(s)||mp({plan:xf,reset:bf,count:Mf}));l.context={model:e,ecModel:n,api:i,useClearVisual:t.isVisual&&!t.isLayout,plan:t.plan,reset:t.reset,scheduler:r},r._pipe(e,l)}t.createOnAllSeries?n.eachRawSeries(u):s?n.eachRawSeriesByType(s,u):l&&l(n,i).each(u)},t.prototype._createOverallStageTask=function(t,e,n,i){var r=this,o=e.overallTask=e.overallTask||mp({reset:yf});o.context={ecModel:n,api:i,overallReset:t.overallReset,scheduler:r};var a=o.agentStubMap,s=o.agentStubMap=lt(),l=t.seriesType,u=t.getTargetSeries,h=!0,c=!1,p="";function f(t){var e=t.uid,n=s.set(e,a&&a.get(e)||(c=!0,mp({reset:vf,onDirty:_f})));n.context={model:t,overallProgress:h},n.agent=o,n.__block=h,r._pipe(t,n)}nt(!t.createOnAllSeries,p),l?n.eachRawSeriesByType(l,f):u?u(n,i).each(f):(h=!1,L(n.getSeries(),f)),c&&o.dirty()},t.prototype._pipe=function(t,e){var n=t.uid,i=this._pipelineMap.get(n);!i.head&&(i.head=e),i.tail&&i.tail.pipe(e),i.tail=e,e.__idxInPipeline=i.count++,e.__pipeline=i},t.wrapStageHandler=function(t,e){return F(t)&&(t={overallReset:t,seriesType:Tf(t)}),t.uid=Nu("stageHandler"),e&&(t.visualType=e),t},t}();function yf(t){t.overallReset(t.ecModel,t.api,t.payload)}function vf(t){return t.overallProgress&&mf}function mf(){this.agent.dirty(),this.getDownstream().dirty()}function _f(){this.agent&&this.agent.dirty()}function xf(t){return t.plan?t.plan(t.model,t.ecModel,t.api,t.payload):null}function bf(t){t.useClearVisual&&t.data.clearAllVisual();var e=t.resetDefines=er(t.reset(t.model,t.ecModel,t.api,t.payload));return e.length>1?P(e,(function(t,e){return Sf(e)})):wf}var wf=Sf(0);function Sf(t){return function(e,n){var i=n.data,r=n.resetDefines[t];if(r&&r.dataEach)for(var o=e.start;o<e.end;o++)r.dataEach(i,o);else r&&r.progress&&r.progress(e,i)}}function Mf(t){return t.data.count()}function Tf(t){Cf=null;try{t(Df,If)}catch(t){}return Cf}var Cf,Df={},If={};function Af(t,e){for(var n in e.prototype)t[n]=ct}Af(Df,fc),Af(If,mc),Df.eachSeriesByType=Df.eachRawSeriesByType=function(t){Cf=t},Df.eachComponent=function(t){"series"===t.mainType&&t.subType&&(Cf=t.subType)};var kf=["#37A2DA","#32C5E9","#67E0E3","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#E062AE","#E690D1","#e7bcf3","#9d96f5","#8378EA","#96BFFF"],Lf={color:kf,colorLayer:[["#37A2DA","#ffd85c","#fd7b5f"],["#37A2DA","#67E0E3","#FFDB5C","#ff9f7f","#E062AE","#9d96f5"],["#37A2DA","#32C5E9","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#e7bcf3","#8378EA","#96BFFF"],kf]},Pf="#B9B8CE",Of="#100C2A",Rf=function(){return{axisLine:{lineStyle:{color:Pf}},splitLine:{lineStyle:{color:"#484753"}},splitArea:{areaStyle:{color:["rgba(255,255,255,0.02)","rgba(255,255,255,0.05)"]}},minorSplitLine:{lineStyle:{color:"#20203B"}}}},Nf=["#4992ff","#7cffb2","#fddd60","#ff6e76","#58d9f9","#05c091","#ff8a45","#8d48e3","#dd79ff"],Ef={darkMode:!0,color:Nf,backgroundColor:Of,axisPointer:{lineStyle:{color:"#817f91"},crossStyle:{color:"#817f91"},label:{color:"#fff"}},legend:{textStyle:{color:Pf}},textStyle:{color:Pf},title:{textStyle:{color:"#EEF1FA"},subtextStyle:{color:"#B9B8CE"}},toolbox:{iconStyle:{borderColor:Pf}},dataZoom:{borderColor:"#71708A",textStyle:{color:Pf},brushStyle:{color:"rgba(135,163,206,0.3)"},handleStyle:{color:"#353450",borderColor:"#C5CBE3"},moveHandleStyle:{color:"#B0B6C3",opacity:.3},fillerColor:"rgba(135,163,206,0.2)",emphasis:{handleStyle:{borderColor:"#91B7F2",color:"#4D587D"},moveHandleStyle:{color:"#636D9A",opacity:.7}},dataBackground:{lineStyle:{color:"#71708A",width:1},areaStyle:{color:"#71708A"}},selectedDataBackground:{lineStyle:{color:"#87A3CE"},areaStyle:{color:"#87A3CE"}}},visualMap:{textStyle:{color:Pf}},timeline:{lineStyle:{color:Pf},label:{color:Pf},controlStyle:{color:Pf,borderColor:Pf}},calendar:{itemStyle:{color:Of},dayLabel:{color:Pf},monthLabel:{color:Pf},yearLabel:{color:Pf}},timeAxis:Rf(),logAxis:Rf(),valueAxis:Rf(),categoryAxis:Rf(),line:{symbol:"circle"},graph:{color:Nf},gauge:{title:{color:Pf},axisLine:{lineStyle:{color:[[1,"rgba(207,212,219,0.2)"]]}},axisLabel:{color:Pf},detail:{color:"#EEF1FA"}},candlestick:{itemStyle:{color:"#f64e56",color0:"#54ea92",borderColor:"#f64e56",borderColor0:"#54ea92"}}};Ef.categoryAxis.splitLine.show=!1;var Bf=lt(),zf=function(t,e,n){var i;if(z(e))i=e;else if(e.svg)i=[{type:"svg",source:e.svg,specialAreas:e.specialAreas}];else{var r=e.geoJson||e.geoJSON;r&&!e.features&&(n=e.specialAreas,e=r),i=[{type:"geoJSON",source:e,specialAreas:n}]}return L(i,(function(t){var e=t.type;"geoJson"===e&&(e=t.type="geoJSON");var n=Vf[e];n(t)})),Bf.set(t,i)},Ff=function(t){return Bf.get(t)},Vf={geoJSON:function(t){var e=t.source;t.geoJSON=V(e)?"undefined"!=typeof JSON&&JSON.parse?JSON.parse(e):new Function("return ("+e+");")():e},svg:function(t){t.svgXML=function(t){V(t)&&(t=(new DOMParser).parseFromString(t,"text/xml"));var e=t;for(9===e.nodeType&&(e=e.firstChild);"svg"!==e.nodeName.toLowerCase()||1!==e.nodeType;)e=e.nextSibling;return e}(t.source)}},Hf=function(){function t(){}return t.prototype.normalizeQuery=function(t){var e={},n={},i={};if(V(t)){var r=br(t);e.mainType=r.main||null,e.subType=r.sub||null}else{var o=["Index","Name","Id"],a={name:1,dataIndex:1,dataType:1};L(t,(function(t,r){for(var s=!1,l=0;l<o.length;l++){var u=o[l],h=r.lastIndexOf(u);if(h>0&&h===r.length-u.length){var c=r.slice(0,h);"data"!==c&&(e.mainType=c,e[u.toLowerCase()]=t,s=!0)}}a.hasOwnProperty(r)&&(n[r]=t,s=!0),s||(i[r]=t)}))}return{cptQuery:e,dataQuery:n,otherQuery:i}},t.prototype.filter=function(t,e){var n=this.eventInfo;if(!n)return!0;var i=n.targetEl,r=n.packedEvent,o=n.model,a=n.view;if(!o||!a)return!0;var s=e.cptQuery,l=e.dataQuery;return u(s,o,"mainType")&&u(s,o,"subType")&&u(s,o,"index","componentIndex")&&u(s,o,"name")&&u(s,o,"id")&&u(l,r,"name")&&u(l,r,"dataIndex")&&u(l,r,"dataType")&&(!a.filterForExposedEvent||a.filterForExposedEvent(t,e.otherQuery,i,r));function u(t,e,n,i){return null==t[n]||e[i||n]===t[n]}},t.prototype.afterTrigger=function(){this.eventInfo=null},t}(),Wf={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var n=t.getData();if(t.legendSymbol&&n.setVisual("legendSymbol",t.legendSymbol),t.hasSymbolVisual){var i=t.get("symbol"),r=t.get("symbolSize"),o=t.get("symbolKeepAspect"),a=t.get("symbolRotate"),s=F(i),l=F(r),u=F(a),h=s||l||u,c=!s&&i?i:t.defaultSymbol,p=l?null:r,f=u?null:a;if(n.setVisual({legendSymbol:t.legendSymbol||c,symbol:c,symbolSize:p,symbolKeepAspect:o,symbolRotate:f}),!e.isSeriesFiltered(t))return{dataEach:h?function(e,n){var o=t.getRawValue(n),h=t.getDataParams(n);s&&e.setItemVisual(n,"symbol",i(o,h)),l&&e.setItemVisual(n,"symbolSize",r(o,h)),u&&e.setItemVisual(n,"symbolRotate",a(o,h))}:null}}}};var Gf=2*Math.PI,Uf=sa.CMD,Yf=["top","right","bottom","left"];function Xf(t,e,n,i,r){var o=n.width,a=n.height;switch(t){case"top":i.set(n.x+o/2,n.y-e),r.set(0,-1);break;case"bottom":i.set(n.x+o/2,n.y+a+e),r.set(0,1);break;case"left":i.set(n.x-e,n.y+a/2),r.set(-1,0);break;case"right":i.set(n.x+o+e,n.y+a/2),r.set(1,0)}}function qf(t,e,n,i,r,o,a,s,l){a-=t,s-=e;var u=Math.sqrt(a*a+s*s),h=(a/=u)*n+t,c=(s/=u)*n+e;if(Math.abs(i-r)%Gf<1e-4)return l[0]=h,l[1]=c,u-n;if(o){var p=i;i=pa(r),r=pa(p)}else i=pa(i),r=pa(r);i>r&&(r+=Gf);var f=Math.atan2(s,a);if(f<0&&(f+=Gf),f>=i&&f<=r||f+Gf>=i&&f+Gf<=r)return l[0]=h,l[1]=c,u-n;var d=n*Math.cos(i)+t,g=n*Math.sin(i)+e,y=n*Math.cos(r)+t,v=n*Math.sin(r)+e,m=(d-a)*(d-a)+(g-s)*(g-s),_=(y-a)*(y-a)+(v-s)*(v-s);return m<_?(l[0]=d,l[1]=g,Math.sqrt(m)):(l[0]=y,l[1]=v,Math.sqrt(_))}function jf(t,e,n,i,r,o,a,s){var l=r-t,u=o-e,h=n-t,c=i-e,p=Math.sqrt(h*h+c*c),f=(l*(h/=p)+u*(c/=p))/p;s&&(f=Math.min(Math.max(f,0),1)),f*=p;var d=a[0]=t+f*h,g=a[1]=e+f*c;return Math.sqrt((d-r)*(d-r)+(g-o)*(g-o))}function Zf(t,e,n,i,r,o,a){n<0&&(t+=n,n=-n),i<0&&(e+=i,i=-i);var s=t+n,l=e+i,u=a[0]=Math.min(Math.max(r,t),s),h=a[1]=Math.min(Math.max(o,e),l);return Math.sqrt((u-r)*(u-r)+(h-o)*(h-o))}var Kf=[];function $f(t,e,n){var i=Zf(e.x,e.y,e.width,e.height,t.x,t.y,Kf);return n.set(Kf[0],Kf[1]),i}function Qf(t,e,n){for(var i,r,o=0,a=0,s=0,l=0,u=1/0,h=e.data,c=t.x,p=t.y,f=0;f<h.length;){var d=h[f++];1===f&&(s=o=h[f],l=a=h[f+1]);var g=u;switch(d){case Uf.M:o=s=h[f++],a=l=h[f++];break;case Uf.L:g=jf(o,a,h[f],h[f+1],c,p,Kf,!0),o=h[f++],a=h[f++];break;case Uf.C:g=_o(o,a,h[f++],h[f++],h[f++],h[f++],h[f],h[f+1],c,p,Kf),o=h[f++],a=h[f++];break;case Uf.Q:g=To(o,a,h[f++],h[f++],h[f],h[f+1],c,p,Kf),o=h[f++],a=h[f++];break;case Uf.A:var y=h[f++],v=h[f++],m=h[f++],_=h[f++],x=h[f++],b=h[f++];f+=1;var w=!!(1-h[f++]);i=Math.cos(x)*m+y,r=Math.sin(x)*_+v,f<=1&&(s=i,l=r),g=qf(y,v,_,x,x+b,w,(c-y)*_/m+y,p,Kf),o=Math.cos(x+b)*m+y,a=Math.sin(x+b)*_+v;break;case Uf.R:g=Zf(s=o=h[f++],l=a=h[f++],h[f++],h[f++],c,p,Kf);break;case Uf.Z:g=jf(o,a,s,l,c,p,Kf,!0),o=s,a=l}g<u&&(u=g,n.set(Kf[0],Kf[1]))}return u}var Jf=new dn,td=new dn,ed=new dn,nd=new dn,id=new dn;function rd(t,e){if(t){var n=t.getTextGuideLine(),i=t.getTextContent();if(i&&n){var r=t.textGuideLineConfig||{},o=[[0,0],[0,0],[0,0]],a=r.candidates||Yf,s=i.getBoundingRect().clone();s.applyTransform(i.getComputedTransform());var l=1/0,u=r.anchor,h=t.getComputedTransform(),c=h&&de([],h),p=e.get("length2")||0;u&&ed.copy(u);for(var f=0;f<a.length;f++){Xf(a[f],0,s,Jf,nd),dn.scaleAndAdd(td,Jf,nd,p),td.transform(c);var d=t.getBoundingRect(),g=u?u.distance(td):t instanceof Da?Qf(td,t.path,ed):$f(td,d,ed);g<l&&(l=g,td.transform(h),ed.transform(h),ed.toArray(o[0]),td.toArray(o[1]),Jf.toArray(o[2]))}sd(o,e.get("minTurnAngle")),n.setShape({points:o})}}}var od=[],ad=new dn;function sd(t,e){if(e<=180&&e>0){e=e/180*Math.PI,Jf.fromArray(t[0]),td.fromArray(t[1]),ed.fromArray(t[2]),dn.sub(nd,Jf,td),dn.sub(id,ed,td);var n=nd.len(),i=id.len();if(!(n<.001||i<.001)){nd.scale(1/n),id.scale(1/i);var r=nd.dot(id);if(Math.cos(e)<r){var o=jf(td.x,td.y,ed.x,ed.y,Jf.x,Jf.y,od,!1);ad.fromArray(od),ad.scaleAndAdd(id,o/Math.tan(Math.PI-e));var a=ed.x!==td.x?(ad.x-td.x)/(ed.x-td.x):(ad.y-td.y)/(ed.y-td.y);if(isNaN(a))return;a<0?dn.copy(ad,td):a>1&&dn.copy(ad,ed),ad.toArray(t[1])}}}}function ld(t,e,n){if(n<=180&&n>0){n=n/180*Math.PI,Jf.fromArray(t[0]),td.fromArray(t[1]),ed.fromArray(t[2]),dn.sub(nd,td,Jf),dn.sub(id,ed,td);var i=nd.len(),r=id.len();if(!(i<.001||r<.001))if(nd.scale(1/i),id.scale(1/r),nd.dot(e)<Math.cos(n)){var o=jf(td.x,td.y,ed.x,ed.y,Jf.x,Jf.y,od,!1);ad.fromArray(od);var a=Math.PI/2,s=a+Math.acos(id.dot(e))-n;if(s>=a)dn.copy(ad,ed);else{ad.scaleAndAdd(id,o/Math.tan(Math.PI/2-s));var l=ed.x!==td.x?(ad.x-td.x)/(ed.x-td.x):(ad.y-td.y)/(ed.y-td.y);if(isNaN(l))return;l<0?dn.copy(ad,td):l>1&&dn.copy(ad,ed)}ad.toArray(t[1])}}}function ud(t,e,n,i){var r="normal"===n,o=r?t:t.ensureState(n);o.ignore=e;var a=i.get("smooth");a&&!0===a&&(a=.3),o.shape=o.shape||{},a>0&&(o.shape.smooth=a);var s=i.getModel("lineStyle").getLineStyle();r?t.useStyle(s):o.style=s}function hd(t,e){var n=e.smooth,i=e.points;if(i)if(t.moveTo(i[0][0],i[0][1]),n>0&&i.length>=3){var r=Ct(i[0],i[1]),o=Ct(i[1],i[2]);if(!r||!o)return t.lineTo(i[1][0],i[1][1]),void t.lineTo(i[2][0],i[2][1]);var a=Math.min(r,o)*n,s=At([],i[1],i[0],a/r),l=At([],i[1],i[2],a/o),u=At([],s,l,.5);t.bezierCurveTo(s[0],s[1],s[0],s[1],u[0],u[1]),t.bezierCurveTo(l[0],l[1],l[0],l[1],i[2][0],i[2][1])}else for(var h=1;h<i.length;h++)t.lineTo(i[h][0],i[h][1])}function cd(t,e,n){var i=t.getTextGuideLine(),r=t.getTextContent();if(r){for(var o=e.normal,a=o.get("show"),s=r.ignore,l=0;l<Ja.length;l++){var u=Ja[l],h=e[u],c="normal"===u;if(h){var p=h.get("show");if((c?s:Q(r.states[u]&&r.states[u].ignore,s))||!Q(p,a)){var f=c?i:i&&i.states.normal;f&&(f.ignore=!0);continue}i||(i=new Tl,t.setTextGuideLine(i),c||!s&&a||ud(i,!0,"normal",e.normal),t.stateProxy&&(i.stateProxy=t.stateProxy)),ud(i,!1,u,h)}}if(i){T(i.style,n),i.style.fill=null;var d=o.get("showAbove");(t.textGuideLineConfig=t.textGuideLineConfig||{}).showAbove=d||!1,i.buildPath=hd}}else i&&t.removeTextGuideLine()}function pd(t,e){e=e||"labelLine";for(var n={normal:t.getModel(e)},i=0;i<Qa.length;i++){var r=Qa[i];n[r]=t.getModel([r,e])}return n}function fd(t,e,n,i,r,o){var a=t.length;if(!(a<2)){t.sort((function(t,n){return t.rect[e]-n.rect[e]}));for(var s,l=0,u=!1,h=0,c=0;c<a;c++){var p=t[c],f=p.rect;(s=f[e]-l)<0&&(f[e]-=s,p.label[e]-=s,u=!0),h+=Math.max(-s,0),l=f[e]+f[n]}h>0&&o&&x(-h/a,0,a);var d,g,y=t[0],v=t[a-1];return m(),d<0&&b(-d,.8),g<0&&b(g,.8),m(),_(d,g,1),_(g,d,-1),m(),d<0&&w(-d),g<0&&w(g),u}function m(){d=y.rect[e]-i,g=r-v.rect[e]-v.rect[n]}function _(t,e,n){if(t<0){var i=Math.min(e,-t);if(i>0){x(i*n,0,a);var r=i+t;r<0&&b(-r*n,1)}else b(-t*n,1)}}function x(n,i,r){0!==n&&(u=!0);for(var o=i;o<r;o++){var a=t[o];a.rect[e]+=n,a.label[e]+=n}}function b(i,r){for(var o=[],s=0,l=1;l<a;l++){var u=t[l-1].rect,h=Math.max(t[l].rect[e]-u[e]-u[n],0);o.push(h),s+=h}if(s){var c=Math.min(Math.abs(i)/s,r);if(i>0)for(l=0;l<a-1;l++){x(o[l]*c,0,l+1)}else for(l=a-1;l>0;l--){x(-(o[l-1]*c),l,a)}}}function w(t){var e=t<0?-1:1;t=Math.abs(t);for(var n=Math.ceil(t/(a-1)),i=0;i<a-1;i++)if(e>0?x(n,0,i+1):x(-n,a-i-1,a),(t-=n)<=0)return}}function dd(t,e,n,i){return fd(t,"y","height",e,n,i)}function gd(t){if(t){for(var e=[],n=0;n<t.length;n++)e.push(t[n].slice());return e}}function yd(t,e){var n=t.label,i=e&&e.getTextGuideLine();return{dataIndex:t.dataIndex,dataType:t.dataType,seriesIndex:t.seriesModel.seriesIndex,text:t.label.style.text,rect:t.hostRect,labelRect:t.rect,align:n.style.align,verticalAlign:n.style.verticalAlign,labelLinePoints:gd(i&&i.shape.points)}}var vd=["align","verticalAlign","width","height","fontSize"],md=new Se,_d=pr(),xd=pr();function bd(t,e,n){for(var i=0;i<n.length;i++){var r=n[i];null!=e[r]&&(t[r]=e[r])}}var wd=["x","y","rotation"],Sd=function(){function t(){this._labelList=[],this._chartViewList=[]}return t.prototype.clearLabels=function(){this._labelList=[],this._chartViewList=[]},t.prototype._addLabel=function(t,e,n,i,r){var o=i.style,a=i.__hostTarget.textConfig||{},s=i.getComputedTransform(),l=i.getBoundingRect().plain();Sn.applyTransform(l,l,s),s?md.setLocalTransform(s):(md.x=md.y=md.rotation=md.originX=md.originY=0,md.scaleX=md.scaleY=1);var u,h=i.__hostTarget;if(h){u=h.getBoundingRect().plain();var c=h.getComputedTransform();Sn.applyTransform(u,u,c)}var p=u&&h.getTextGuideLine();this._labelList.push({label:i,labelLine:p,seriesModel:n,dataIndex:t,dataType:e,layoutOption:r,computedLayoutOption:null,rect:l,hostRect:u,priority:u?u.width*u.height:0,defaultAttr:{ignore:i.ignore,labelGuideIgnore:p&&p.ignore,x:md.x,y:md.y,rotation:md.rotation,style:{x:o.x,y:o.y,align:o.align,verticalAlign:o.verticalAlign,width:o.width,height:o.height,fontSize:o.fontSize},cursor:i.cursor,attachedPos:a.position,attachedRot:a.rotation}})},t.prototype.addLabelsOfSeries=function(t){var e=this;this._chartViewList.push(t);var n=t.__model,i=n.get("labelLayout");(F(i)||N(i).length)&&t.group.traverse((function(t){if(t.ignore)return!0;var r=t.getTextContent(),o=ja(t);r&&!r.disableLabelLayout&&e._addLabel(o.dataIndex,o.dataType,n,r,i)}))},t.prototype.updateLayoutConfig=function(t){var e=t.getWidth(),n=t.getHeight();function i(t,e){return function(){rd(t,e)}}for(var r=0;r<this._labelList.length;r++){var o=this._labelList[r],a=o.label,s=a.__hostTarget,l=o.defaultAttr,u=void 0;u=(u="function"==typeof o.layoutOption?o.layoutOption(yd(o,s)):o.layoutOption)||{},o.computedLayoutOption=u;var h=Math.PI/180;s&&s.setTextConfig({local:!1,position:null!=u.x||null!=u.y?null:l.attachedPos,rotation:null!=u.rotate?u.rotate*h:l.attachedRot,offset:[u.dx||0,u.dy||0]});var c=!1;if(null!=u.x?(a.x=Ei(u.x,e),a.setStyle("x",0),c=!0):(a.x=l.x,a.setStyle("x",l.style.x)),null!=u.y?(a.y=Ei(u.y,n),a.setStyle("y",0),c=!0):(a.y=l.y,a.setStyle("y",l.style.y)),u.labelLinePoints){var p=s.getTextGuideLine();p&&(p.setShape({points:u.labelLinePoints}),c=!1)}_d(a).needsUpdateLabelLine=c,a.rotation=null!=u.rotate?u.rotate*h:l.rotation;for(var f=0;f<vd.length;f++){var d=vd[f];a.setStyle(d,null!=u[d]?u[d]:l.style[d])}if(u.draggable){if(a.draggable=!0,a.cursor="move",s){var g=o.seriesModel;if(null!=o.dataIndex)g=o.seriesModel.getData(o.dataType).getItemModel(o.dataIndex);a.on("drag",i(s,g.getModel("labelLine")))}}else a.off("drag"),a.cursor=l.cursor}},t.prototype.layout=function(t){var e,n=t.getWidth(),i=t.getHeight(),r=function(t){for(var e=[],n=0;n<t.length;n++){var i=t[n];if(!i.defaultAttr.ignore){var r=i.label,o=r.getComputedTransform(),a=r.getBoundingRect(),s=!o||o[1]<1e-5&&o[2]<1e-5,l=r.style.margin||0,u=a.clone();u.applyTransform(o),u.x-=l/2,u.y-=l/2,u.width+=l,u.height+=l;var h=s?new Gl(a,o):null;e.push({label:r,labelLine:i.labelLine,rect:u,localRect:a,obb:h,priority:i.priority,defaultAttr:i.defaultAttr,layoutOption:i.computedLayoutOption,axisAligned:s,transform:o})}}return e}(this._labelList),o=R(r,(function(t){return"shiftX"===t.layoutOption.moveOverlap})),a=R(r,(function(t){return"shiftY"===t.layoutOption.moveOverlap}));fd(o,"x","width",0,n,e),dd(a,0,i),function(t){var e=[];t.sort((function(t,e){return e.priority-t.priority}));var n=new Sn(0,0,0,0);function i(t){if(!t.ignore){var e=t.ensureState("emphasis");null==e.ignore&&(e.ignore=!1)}t.ignore=!0}for(var r=0;r<t.length;r++){var o=t[r],a=o.axisAligned,s=o.localRect,l=o.transform,u=o.label,h=o.labelLine;n.copy(o.rect),n.width-=.1,n.height-=.1,n.x+=.05,n.y+=.05;for(var c=o.obb,p=!1,f=0;f<e.length;f++){var d=e[f];if(n.intersect(d.rect)){if(a&&d.axisAligned){p=!0;break}if(d.obb||(d.obb=new Gl(d.localRect,d.transform)),c||(c=new Gl(s,l)),c.intersect(d.obb)){p=!0;break}}}p?(i(u),h&&i(h)):(u.attr("ignore",o.defaultAttr.ignore),h&&h.attr("ignore",o.defaultAttr.labelGuideIgnore),e.push(o))}}(R(r,(function(t){return t.layoutOption.hideOverlap})))},t.prototype.processLabelsOverall=function(){var t=this;L(this._chartViewList,(function(e){var n=e.__model,i=e.ignoreLabelLineUpdate,r=n.isAnimationEnabled();e.group.traverse((function(e){if(e.ignore)return!0;var o=!i,a=e.getTextContent();!o&&a&&(o=_d(a).needsUpdateLabelLine),o&&t._updateLabelLine(e,n),r&&t._animateLabels(e,n)}))}))},t.prototype._updateLabelLine=function(t,e){var n=t.getTextContent(),i=ja(t),r=i.dataIndex;if(n&&null!=r){var o=e.getData(i.dataType),a=o.getItemModel(r),s={},l=o.getItemVisual(r,"style"),u=o.getVisual("drawType");s.stroke=l[u];var h=a.getModel("labelLine");cd(t,pd(a),s),rd(t,h)}},t.prototype._animateLabels=function(t,e){var n=t.getTextContent(),i=t.getTextGuideLine();if(n&&!n.ignore&&!n.invisible&&!t.disableLabelAnimation&&!lu(t)){var r=(f=_d(n)).oldLayout,o=ja(t),a=o.dataIndex,s={x:n.x,y:n.y,rotation:n.rotation},l=e.getData(o.dataType);if(r){n.attr(r);var u=t.prevStates;u&&(D(u,"select")>=0&&n.attr(f.oldLayoutSelect),D(u,"emphasis")>=0&&n.attr(f.oldLayoutEmphasis)),iu(n,s,e,a)}else if(n.attr(s),!bu(n).valueAnimation){var h=Q(n.style.opacity,1);n.style.opacity=0,ru(n,{style:{opacity:h}},e,a)}if(f.oldLayout=s,n.states.select){var c=f.oldLayoutSelect={};bd(c,s,wd),bd(c,n.states.select,wd)}if(n.states.emphasis){var p=f.oldLayoutEmphasis={};bd(p,s,wd),bd(p,n.states.emphasis,wd)}!function(t,e,n,i,r){var o=bu(t);if(o.valueAnimation){var a=o.defaultInterpolatedText,s=Q(o.interpolatedValue,o.prevValue),l=o.value;(null==s?ru:iu)(t,{},i,e,null,(function(i){var u=mr(n,o.precision,s,l,i);o.interpolatedValue=1===i?null:u;var h=pu({labelDataIndex:e,labelFetcher:r,defaultText:a?a(u):u+""},o.statesModels,u);cu(t,h)}))}}(n,a,l,e,e)}if(i&&!i.ignore&&!i.invisible){r=(f=xd(i)).oldLayout;var f,d={points:i.shape.points};r?(i.attr({shape:r}),iu(i,{shape:d},e)):(i.setShape(d),i.style.strokePercent=0,ru(i,{style:{strokePercent:1}},e)),f.oldLayout=d}},t}();function Md(t,e,n,i,r){var o=t+e;n.isSilent(o)||i.eachComponent({mainType:"series",subType:"pie"},(function(t){for(var e=t.seriesIndex,i=r.selected,a=0;a<i.length;a++)if(i[a].seriesIndex===e){var s=t.getData(),l=cr(s,r.fromActionPayload);n.trigger(o,{type:o,seriesId:t.id,name:z(l)?s.getName(l[0]):s.getName(l),selected:M({},t.option.selectedMap)})}}))}function Td(t,e,n){for(var i;t&&(!e(t)||(i=t,!n));)t=t.__hostTarget||t.parent;return i}var Cd=Math.round(9*Math.random()),Dd=function(){function t(){this._id="__ec_inner_"+Cd++}return t.prototype.get=function(t){return this._guard(t)[this._id]},t.prototype.set=function(t,e){var n=this._guard(t);return"function"==typeof Object.defineProperty?Object.defineProperty(n,this._id,{value:e,enumerable:!1,configurable:!0}):n[this._id]=e,this},t.prototype.delete=function(t){return!!this.has(t)&&(delete this._guard(t)[this._id],!0)},t.prototype.has=function(t){return!!this._guard(t)[this._id]},t.prototype._guard=function(t){if(t!==Object(t))throw TypeError("Value of WeakMap is not a non-null object.");return t},t}(),Id=Da.extend({type:"triangle",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var n=e.cx,i=e.cy,r=e.width/2,o=e.height/2;t.moveTo(n,i-o),t.lineTo(n+r,i+o),t.lineTo(n-r,i+o),t.closePath()}}),Ad=Da.extend({type:"diamond",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var n=e.cx,i=e.cy,r=e.width/2,o=e.height/2;t.moveTo(n,i-o),t.lineTo(n+r,i),t.lineTo(n,i+o),t.lineTo(n-r,i),t.closePath()}}),kd=Da.extend({type:"pin",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var n=e.x,i=e.y,r=e.width/5*3,o=Math.max(r,e.height),a=r/2,s=a*a/(o-a),l=i-o+a+s,u=Math.asin(s/a),h=Math.cos(u)*a,c=Math.sin(u),p=Math.cos(u),f=.6*a,d=.7*a;t.moveTo(n-h,l+s),t.arc(n,l,a,Math.PI-u,2*Math.PI+u),t.bezierCurveTo(n+h-c*f,l+s+p*f,n,i-d,n,i),t.bezierCurveTo(n,i-d,n-h+c*f,l+s+p*f,n-h,l+s),t.closePath()}}),Ld=Da.extend({type:"arrow",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var n=e.height,i=e.width,r=e.x,o=e.y,a=i/3*2;t.moveTo(r,o),t.lineTo(r+a,o+n),t.lineTo(r,o+n/4*3),t.lineTo(r-a,o+n),t.lineTo(r,o),t.closePath()}}),Pd={line:function(t,e,n,i,r){r.x=t,r.y=e+i/2-1,r.width=n,r.height=2},rect:function(t,e,n,i,r){r.x=t,r.y=e,r.width=n,r.height=i},roundRect:function(t,e,n,i,r){r.x=t,r.y=e,r.width=n,r.height=i,r.r=Math.min(n,i)/4},square:function(t,e,n,i,r){var o=Math.min(n,i);r.x=t,r.y=e,r.width=o,r.height=o},circle:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.r=Math.min(n,i)/2},diamond:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.width=n,r.height=i},pin:function(t,e,n,i,r){r.x=t+n/2,r.y=e+i/2,r.width=n,r.height=i},arrow:function(t,e,n,i,r){r.x=t+n/2,r.y=e+i/2,r.width=n,r.height=i},triangle:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.width=n,r.height=i}},Od={};L({line:Ba,rect:Ba,roundRect:Ba,square:Ba,circle:tl,diamond:Ad,pin:kd,arrow:Ld,triangle:Id},(function(t,e){Od[e]=new t}));var Rd=Da.extend({type:"symbol",shape:{symbolType:"",x:0,y:0,width:0,height:0},calculateTextPosition:function(t,e,n){var i=Rn(t,e,n),r=this.shape;return r&&"pin"===r.symbolType&&"inside"===e.position&&(i.y=n.y+.4*n.height),i},buildPath:function(t,e,n){var i=e.symbolType;if("none"!==i){var r=Od[i];r||(r=Od[i="rect"]),Pd[i](e.x,e.y,e.width,e.height,r.shape),r.buildPath(t,r.shape,n)}}});function Nd(t,e){if("image"!==this.type){var n=this.style;this.__isEmptyBrush?(n.stroke=t,n.fill=e||"#fff",n.lineWidth=2):n.fill=t,this.markRedraw()}}function Ed(t,e,n,i,r,o,a){var s,l=0===t.indexOf("empty");return l&&(t=t.substr(5,1).toLowerCase()+t.substr(6)),(s=0===t.indexOf("image://")?Ql(t.slice(8),new Sn(e,n,i,r),a?"center":"cover"):0===t.indexOf("path://")?$l(t.slice(7),{},new Sn(e,n,i,r),a?"center":"cover"):new Rd({shape:{symbolType:t,x:e,y:n,width:i,height:r}})).__isEmptyBrush=l,s.setColor=Nd,o&&s.setColor(o),s}function Bd(t,e,n){for(var i="radial"===e.type?function(t,e,n){var i=n.width,r=n.height,o=Math.min(i,r),a=null==e.x?.5:e.x,s=null==e.y?.5:e.y,l=null==e.r?.5:e.r;return e.global||(a=a*i+n.x,s=s*r+n.y,l*=o),t.createRadialGradient(a,s,0,a,s,l)}(t,e,n):function(t,e,n){var i=null==e.x?0:e.x,r=null==e.x2?1:e.x2,o=null==e.y?0:e.y,a=null==e.y2?0:e.y2;return e.global||(i=i*n.width+n.x,r=r*n.width+n.x,o=o*n.height+n.y,a=a*n.height+n.y),i=isNaN(i)?0:i,r=isNaN(r)?1:r,o=isNaN(o)?0:o,a=isNaN(a)?0:a,t.createLinearGradient(i,o,r,a)}(t,e,n),r=e.colorStops,o=0;o<r.length;o++)i.addColorStop(r[o].offset,r[o].color);return i}function zd(t,e){return t&&"solid"!==t&&e>0?(e=e||1,"dashed"===t?[4*e,2*e]:"dotted"===t?[e]:W(t)?[t]:z(t)?t:null):null}var Fd=new sa(!0);function Vd(t){var e=t.stroke;return!(null==e||"none"===e||!(t.lineWidth>0))}function Hd(t){var e=t.fill;return null!=e&&"none"!==e}function Wd(t,e){if(null!=e.fillOpacity&&1!==e.fillOpacity){var n=t.globalAlpha;t.globalAlpha=e.fillOpacity*e.opacity,t.fill(),t.globalAlpha=n}else t.fill()}function Gd(t,e){if(null!=e.strokeOpacity&&1!==e.strokeOpacity){var n=t.globalAlpha;t.globalAlpha=e.strokeOpacity*e.opacity,t.stroke(),t.globalAlpha=n}else t.stroke()}function Ud(t,e,n){var i=Rr(e.image,e.__image,n);if(Er(i)){var r=t.createPattern(i,e.repeat||"repeat");if("function"==typeof DOMMatrix){var o=new DOMMatrix;o.rotateSelf(0,0,(e.rotation||0)/Math.PI*180),o.scaleSelf(e.scaleX||1,e.scaleY||1),o.translateSelf(e.x||0,e.y||0),r.setTransform(o)}return r}}var Yd=["shadowBlur","shadowOffsetX","shadowOffsetY"],Xd=[["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]];function qd(t,e,n,i,r){var o=!1;if(!i&&e===(n=n||{}))return!1;(i||e.opacity!==n.opacity)&&(o||(Kd(t,r),o=!0),t.globalAlpha=null==e.opacity?Kr.opacity:e.opacity),(i||e.blend!==n.blend)&&(o||(Kd(t,r),o=!0),t.globalCompositeOperation=e.blend||Kr.blend);for(var a=0;a<Yd.length;a++){var s=Yd[a];(i||e[s]!==n[s])&&(o||(Kd(t,r),o=!0),t[s]=t.dpr*(e[s]||0))}return(i||e.shadowColor!==n.shadowColor)&&(o||(Kd(t,r),o=!0),t.shadowColor=e.shadowColor||Kr.shadowColor),o}function jd(t,e,n,i,r){var o=$d(e,r.inHover),a=i?null:n&&$d(n,r.inHover)||{};if(o===a)return!1;var s=qd(t,o,a,i,r);if((i||o.fill!==a.fill)&&(s||(Kd(t,r),s=!0),t.fillStyle=o.fill),(i||o.stroke!==a.stroke)&&(s||(Kd(t,r),s=!0),t.strokeStyle=o.stroke),(i||o.opacity!==a.opacity)&&(s||(Kd(t,r),s=!0),t.globalAlpha=null==o.opacity?1:o.opacity),e.hasStroke()){var l=o.lineWidth/(o.strokeNoScale&&e&&e.getLineScale?e.getLineScale():1);t.lineWidth!==l&&(s||(Kd(t,r),s=!0),t.lineWidth=l)}for(var u=0;u<Xd.length;u++){var h=Xd[u],c=h[0];(i||o[c]!==a[c])&&(s||(Kd(t,r),s=!0),t[c]=o[c]||h[1])}return s}function Zd(t,e){var n=e.transform,i=t.dpr||1;n?t.setTransform(i*n[0],i*n[1],i*n[2],i*n[3],i*n[4],i*n[5]):t.setTransform(i,0,0,i,0,0)}function Kd(t,e){e.batchFill&&t.fill(),e.batchStroke&&t.stroke(),e.batchFill="",e.batchStroke=""}function $d(t,e){return e&&t.__hoverStyle||t.style}function Qd(t,e){Jd(t,e,{inHover:!1,viewWidth:0,viewHeight:0},!0)}function Jd(t,e,n,i){var r=e.transform;if(!e.shouldBePainted(n.viewWidth,n.viewHeight,!1,!1))return e.__dirty&=~Un.REDARAW_BIT,void(e.__isRendered=!1);var o=e.__clipPaths,a=n.prevElClipPaths,s=!1,l=!1;if(a&&!function(t,e){if(t===e||!t&&!e)return!1;if(!t||!e||t.length!==e.length)return!0;for(var n=0;n<t.length;n++)if(t[n]!==e[n])return!0;return!1}(o,a)||(a&&a.length&&(Kd(t,n),t.restore(),l=s=!0,n.prevElClipPaths=null,n.allClipped=!1,n.prevEl=null),o&&o.length&&(Kd(t,n),t.save(),function(t,e,n){for(var i=!1,r=0;r<t.length;r++){var o=t[r];i=i||o.isZeroArea(),Zd(e,o),e.beginPath(),o.buildPath(e,o.shape),e.clip()}n.allClipped=i}(o,t,n),s=!0),n.prevElClipPaths=o),n.allClipped)e.__isRendered=!1;else{e.beforeBrush&&e.beforeBrush(),e.innerBeforeBrush();var u=n.prevEl;u||(l=s=!0);var h,c,p=e instanceof Da&&e.autoBatch&&function(t){var e=Hd(t),n=Vd(t);return!(t.lineDash||!(+e^+n)||e&&"string"!=typeof t.fill||n&&"string"!=typeof t.stroke||t.strokePercent<1||t.strokeOpacity<1||t.fillOpacity<1)}(e.style);s||(h=r,c=u.transform,h&&c?h[0]!==c[0]||h[1]!==c[1]||h[2]!==c[2]||h[3]!==c[3]||h[4]!==c[4]||h[5]!==c[5]:h||c)?(Kd(t,n),Zd(t,e)):p||Kd(t,n);var f=$d(e,n.inHover);e instanceof Da?(1!==n.lastDrawType&&(l=!0,n.lastDrawType=1),jd(t,e,u,l,n),p&&(n.batchFill||n.batchStroke)||t.beginPath(),function(t,e,n,i){var r=Vd(n),o=Hd(n),a=n.strokePercent,s=a<1,l=!e.path;e.silent&&!s||!l||e.createPathProxy();var u=e.path||Fd;if(!i){var h=n.fill,c=n.stroke,p=o&&!!h.colorStops,f=r&&!!c.colorStops,d=o&&!!h.image,g=r&&!!c.image,y=void 0,v=void 0,m=void 0,_=void 0,x=void 0;(p||f)&&(x=e.getBoundingRect()),p&&(y=e.__dirty?Bd(t,h,x):e.__canvasFillGradient,e.__canvasFillGradient=y),f&&(v=e.__dirty?Bd(t,c,x):e.__canvasStrokeGradient,e.__canvasStrokeGradient=v),d&&(m=e.__dirty||!e.__canvasFillPattern?Ud(t,h,e):e.__canvasFillPattern,e.__canvasFillPattern=m),g&&(_=e.__dirty||!e.__canvasStrokePattern?Ud(t,c,e):e.__canvasStrokePattern,e.__canvasStrokePattern=m),p?t.fillStyle=y:d&&(m?t.fillStyle=m:o=!1),f?t.strokeStyle=v:g&&(_?t.strokeStyle=_:r=!1)}var b=n.lineDash&&n.lineWidth>0&&zd(n.lineDash,n.lineWidth),w=n.lineDashOffset,S=!!t.setLineDash,M=e.getGlobalScale();if(u.setScale(M[0],M[1],e.segmentIgnoreThreshold),b){var T=n.strokeNoScale&&e.getLineScale?e.getLineScale():1;T&&1!==T&&(b=P(b,(function(t){return t/T})),w/=T)}var C=!0;(l||e.__dirty&Da.SHAPE_CHANGED_BIT||b&&!S&&r)&&(u.setDPR(t.dpr),s?u.setContext(null):(u.setContext(t),C=!1),u.reset(),b&&!S&&(u.setLineDash(b),u.setLineDashOffset(w)),e.buildPath(u,e.shape,i),u.toStatic(),e.pathUpdated()),C&&u.rebuildPath(t,s?a:1),b&&S&&(t.setLineDash(b),t.lineDashOffset=w),i||(n.strokeFirst?(r&&Gd(t,n),o&&Wd(t,n)):(o&&Wd(t,n),r&&Gd(t,n))),b&&S&&t.setLineDash([])}(t,e,f,p),p&&(n.batchFill=f.fill||"",n.batchStroke=f.stroke||"")):e instanceof Aa?(3!==n.lastDrawType&&(l=!0,n.lastDrawType=3),jd(t,e,u,l,n),function(t,e,n){var i=n.text;if(null!=i&&(i+=""),i){t.font=n.font||Tn,t.textAlign=n.textAlign,t.textBaseline=n.textBaseline;var r=void 0;if(t.setLineDash){var o=n.lineDash&&n.lineWidth>0&&zd(n.lineDash,n.lineWidth),a=n.lineDashOffset;if(o){var s=n.strokeNoScale&&e.getLineScale?e.getLineScale():1;s&&1!==s&&(o=P(o,(function(t){return t/s})),a/=s),t.setLineDash(o),t.lineDashOffset=a,r=!0}}n.strokeFirst?(Vd(n)&&t.strokeText(i,n.x,n.y),Hd(n)&&t.fillText(i,n.x,n.y)):(Hd(n)&&t.fillText(i,n.x,n.y),Vd(n)&&t.strokeText(i,n.x,n.y)),r&&t.setLineDash([])}}(t,e,f)):e instanceof Pa?(2!==n.lastDrawType&&(l=!0,n.lastDrawType=2),function(t,e,n,i,r){qd(t,$d(e,r.inHover),n&&$d(n,r.inHover),i,r)}(t,e,u,l,n),function(t,e,n){var i=e.__image=Rr(n.image,e.__image,e,e.onload);if(i&&Er(i)){var r=n.x||0,o=n.y||0,a=e.getWidth(),s=e.getHeight(),l=i.width/i.height;if(null==a&&null!=s?a=s*l:null==s&&null!=a?s=a/l:null==a&&null==s&&(a=i.width,s=i.height),n.sWidth&&n.sHeight){var u=n.sx||0,h=n.sy||0;t.drawImage(i,u,h,n.sWidth,n.sHeight,r,o,a,s)}else if(n.sx&&n.sy){var c=a-(u=n.sx),p=s-(h=n.sy);t.drawImage(i,u,h,c,p,r,o,a,s)}else t.drawImage(i,r,o,a,s)}}(t,e,f)):e instanceof Yl&&(4!==n.lastDrawType&&(l=!0,n.lastDrawType=4),function(t,e,n){var i=e.getDisplayables(),r=e.getTemporalDisplayables();t.save();var o,a,s={prevElClipPaths:null,prevEl:null,allClipped:!1,viewWidth:n.viewWidth,viewHeight:n.viewHeight,inHover:n.inHover};for(o=e.getCursor(),a=i.length;o<a;o++){(h=i[o]).beforeBrush&&h.beforeBrush(),h.innerBeforeBrush(),Jd(t,h,s,o===a-1),h.innerAfterBrush(),h.afterBrush&&h.afterBrush(),s.prevEl=h}for(var l=0,u=r.length;l<u;l++){var h;(h=r[l]).beforeBrush&&h.beforeBrush(),h.innerBeforeBrush(),Jd(t,h,s,l===u-1),h.innerAfterBrush(),h.afterBrush&&h.afterBrush(),s.prevEl=h}e.clearTemporalDisplayables(),e.notClear=!0,t.restore()}(t,e,n)),p&&i&&Kd(t,n),e.innerAfterBrush(),e.afterBrush&&e.afterBrush(),n.prevEl=e,e.__dirty=0,e.__isRendered=!0}}var tg=new Dd,eg=new Ie(100),ng=["symbol","symbolSize","symbolKeepAspect","color","backgroundColor","dashArrayX","dashArrayY","maxTileWidth","maxTileHeight"];function ig(t,e){if("none"===t)return null;var n=e.getDevicePixelRatio(),i=e.getZr(),r="svg"===i.painter.type;t.dirty&&tg.delete(t);var o=tg.get(t);if(o)return o;var a=T(t,{symbol:"rect",symbolSize:1,symbolKeepAspect:!0,color:"rgba(0, 0, 0, 0.2)",backgroundColor:null,dashArrayX:5,dashArrayY:5,rotation:0,maxTileWidth:512,maxTileHeight:512});"none"===a.backgroundColor&&(a.backgroundColor=null);var s={repeat:"repeat"};return function(t){for(var e,o=[n],s=!0,l=0;l<ng.length;++l){var u=a[ng[l]],h=typeof u;if(null!=u&&!z(u)&&"string"!==h&&"number"!==h&&"boolean"!==h){s=!1;break}o.push(u)}if(s){e=o.join(",")+(r?"-svg":"");var c=eg.get(e);c&&(r?t.svgElement=c:t.image=c)}var p,f=og(a.dashArrayX),d=function(t){if(!t||"object"==typeof t&&0===t.length)return[0,0];if("number"==typeof t){var e=Math.ceil(t);return[e,e]}var n=P(t,(function(t){return Math.ceil(t)}));return t.length%2?n.concat(n):n}(a.dashArrayY),g=rg(a.symbol),y=(b=f,P(b,(function(t){return ag(t)}))),v=ag(d),m=!r&&C(),_=r&&i.painter.createSVGElement("g"),x=function(){for(var t=1,e=0,n=y.length;e<n;++e)t=$i(t,y[e]);var i=1;for(e=0,n=g.length;e<n;++e)i=$i(i,g[e].length);t*=i;var r=v*y.length*g.length;return{width:Math.max(1,Math.min(t,a.maxTileWidth)),height:Math.max(1,Math.min(r,a.maxTileHeight))}}();var b;m&&(m.width=x.width*n,m.height=x.height*n,p=m.getContext("2d"));(function(){p&&(p.clearRect(0,0,m.width,m.height),a.backgroundColor&&(p.fillStyle=a.backgroundColor,p.fillRect(0,0,m.width,m.height)));for(var t=0,e=0;e<d.length;++e)t+=d[e];if(t<=0)return;var o=-v,s=0,l=0,u=0;for(;o<x.height;){if(s%2==0){for(var h=l/2%g.length,c=0,y=0,b=0;c<2*x.width;){var w=0;for(e=0;e<f[u].length;++e)w+=f[u][e];if(w<=0)break;if(y%2==0){var S=.5*(1-a.symbolSize),M=c+f[u][y]*S,T=o+d[s]*S,C=f[u][y]*a.symbolSize,D=d[s]*a.symbolSize,I=b/2%g[h].length;A(M,T,C,D,g[h][I])}c+=f[u][y],++b,++y===f[u].length&&(y=0)}++u===f.length&&(u=0)}o+=d[s],++l,++s===d.length&&(s=0)}function A(t,e,o,s,l){var u=r?1:n,h=Ed(l,t*u,e*u,o*u,s*u,a.color,a.symbolKeepAspect);r?_.appendChild(i.painter.paintOne(h)):Qd(p,h)}})(),s&&eg.put(e,m||_);t.image=m,t.svgElement=_,t.svgWidth=x.width,t.svgHeight=x.height}(s),s.rotation=a.rotation,s.scaleX=s.scaleY=r?1:1/n,tg.set(t,s),t.dirty=!1,s}function rg(t){if(!t||0===t.length)return[["rect"]];if("string"==typeof t)return[[t]];for(var e=!0,n=0;n<t.length;++n)if("string"!=typeof t[n]){e=!1;break}if(e)return rg([t]);var i=[];for(n=0;n<t.length;++n)"string"==typeof t[n]?i.push([t[n]]):i.push(t[n]);return i}function og(t){if(!t||0===t.length)return[[0,0]];if("number"==typeof t)return[[r=Math.ceil(t),r]];for(var e=!0,n=0;n<t.length;++n)if("number"!=typeof t[n]){e=!1;break}if(e)return og([t]);var i=[];for(n=0;n<t.length;++n)if("number"==typeof t[n]){var r=Math.ceil(t[n]);i.push([r,r])}else{(r=P(t[n],(function(t){return Math.ceil(t)}))).length%2==1?i.push(r.concat(r)):i.push(r)}return i}function ag(t){for(var e=0,n=0;n<t.length;++n)e+=t[n];return t.length%2==1?2*e:e}var sg=nt,lg=L,ug=F,hg=G,cg=D,pg="undefined"!=typeof window,fg=2e3,dg=4500,gg={PROCESSOR:{FILTER:1e3,SERIES_FILTER:800,STATISTIC:5e3},VISUAL:{LAYOUT:1e3,PROGRESSIVE_LAYOUT:1100,GLOBAL:fg,CHART:3e3,POST_CHART_LAYOUT:4600,COMPONENT:4e3,BRUSH:5e3,CHART_ITEM:dg,ARIA:6e3,DECAL:7e3}},yg=/^[a-zA-Z0-9_]+$/,vg="__connectUpdateStatus";function mg(t){return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];if(!this.isDisposed())return xg(this,t,e);qg(this.id)}}function _g(t){return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return xg(this,t,e)}}function xg(t,e,n){return n[0]=n[0]&&n[0].toLowerCase(),Et.prototype[e].apply(t,n)}var bg,wg,Sg,Mg,Tg,Cg,Dg,Ig,Ag,kg,Lg,Pg,Og,Rg,Ng,Eg,Bg,zg,Fg,Vg,Hg,Wg=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e}(Et),Gg=Wg.prototype;Gg.on=_g("on"),Gg.off=_g("off");var Ug=function(t){function e(e,n,i){var r=t.call(this,new Hf)||this;r._chartsViews=[],r._chartsMap={},r._componentsViews=[],r._componentsMap={},r._pendingActions=[],i=i||{},"string"==typeof n&&(n=ey[n]),r._dom=e;var o="canvas",a=!1,s=r._zr=Li(e,{renderer:i.renderer||o,devicePixelRatio:i.devicePixelRatio,width:i.width,height:i.height,useDirtyRect:null==i.useDirtyRect?a:i.useDirtyRect});r._throttledZrFlush=rf(E(s.flush,s),17),(n=w(n))&&Gc(n,!0),r._theme=n,r._locale=function(t){if(V(t)){var e=Fu[t.toUpperCase()]||{};return t===Eu||t===Bu?w(e):S(w(e),w(Fu.EN),!1)}return S(w(t),w(Fu.EN),!1)}(i.locale||Hu),r._coordSysMgr=new xc;var l=r._api=Bg(r);function u(t,e){return t.__prio-e.__prio}return ti(ty,u),ti(Kg,u),r._scheduler=new gf(r,l,Kg,ty),r._messageCenter=new Wg,r._labelManager=new Sd,r._initEvents(),r.resize=E(r.resize,r),s.animation.on("frame",r._onframe,r),kg(s,r),Lg(s,r),ot(r),r}return n(e,t),e.prototype._onframe=function(){if(!this._disposed){Hg(this);var t=this._scheduler;if(this.__optionUpdated){var e=this.__optionUpdated.silent;this.__flagInMainProcess=!0,bg(this),Mg.update.call(this),this._zr.flush(),this.__flagInMainProcess=!1,this.__optionUpdated=!1,Ig.call(this,e),Ag.call(this,e)}else if(t.unfinished){var n=1,i=this._model,r=this._api;t.unfinished=!1;do{var o=+new Date;t.performSeriesTasks(i),t.performDataProcessorTasks(i),Cg(this,i),t.performVisualTasks(i),Ng(this,this._model,r,"remain"),n-=+new Date-o}while(n>0&&t.unfinished);t.unfinished||this._zr.flush()}}},e.prototype.getDom=function(){return this._dom},e.prototype.getId=function(){return this.id},e.prototype.getZr=function(){return this._zr},e.prototype.setOption=function(t,e,n){if(this._disposed)qg(this.id);else{var i,r,o;if(hg(e)&&(n=e.lazyUpdate,i=e.silent,r=e.replaceMerge,o=e.transition,e=e.notMerge),this.__flagInMainProcess=!0,!this._model||e){var a=new wc(this._api),s=this._theme,l=this._model=new fc;l.scheduler=this._scheduler,l.init(null,null,null,s,this._locale,a)}this._model.setOption(t,{replaceMerge:r},$g),Fg(this,o),n?(this.__optionUpdated={silent:i},this.__flagInMainProcess=!1,this.getZr().wakeUp()):(bg(this),Mg.update.call(this),this._zr.flush(),this.__optionUpdated=!1,this.__flagInMainProcess=!1,Ig.call(this,i),Ag.call(this,i))}},e.prototype.setTheme=function(){console.error("ECharts#setTheme() is DEPRECATED in ECharts 3.0")},e.prototype.getModel=function(){return this._model},e.prototype.getOption=function(){return this._model&&this._model.getOption()},e.prototype.getWidth=function(){return this._zr.getWidth()},e.prototype.getHeight=function(){return this._zr.getHeight()},e.prototype.getDevicePixelRatio=function(){return this._zr.painter.dpr||pg&&window.devicePixelRatio||1},e.prototype.getRenderedCanvas=function(t){if(a.canvasSupported)return(t=M({},t||{})).pixelRatio=t.pixelRatio||1,t.backgroundColor=t.backgroundColor||this._model.get("backgroundColor"),this._zr.painter.getRenderedCanvas(t)},e.prototype.getSvgDataURL=function(){if(a.svgSupported){var t=this._zr;return L(t.storage.getDisplayList(),(function(t){t.stopAnimation(null,!0)})),t.painter.toDataURL()}},e.prototype.getDataURL=function(t){if(!this._disposed){var e=(t=t||{}).excludeComponents,n=this._model,i=[],r=this;lg(e,(function(t){n.eachComponent({mainType:t},(function(t){var e=r._componentsMap[t.__viewId];e.group.ignore||(i.push(e),e.group.ignore=!0)}))}));var o="svg"===this._zr.painter.getType()?this.getSvgDataURL():this.getRenderedCanvas(t).toDataURL("image/"+(t&&t.type||"png"));return lg(i,(function(t){t.group.ignore=!1})),o}qg(this.id)},e.prototype.getConnectedDataURL=function(t){if(this._disposed)qg(this.id);else if(a.canvasSupported){var e="svg"===t.type,n=this.group,i=Math.min,r=Math.max,o=1/0;if(ry[n]){var s=o,l=o,u=-1/0,h=-1/0,c=[],p=t&&t.pixelRatio||1;L(iy,(function(o,a){if(o.group===n){var p=e?o.getZr().painter.getSvgDom().innerHTML:o.getRenderedCanvas(w(t)),f=o.getDom().getBoundingClientRect();s=i(f.left,s),l=i(f.top,l),u=r(f.right,u),h=r(f.bottom,h),c.push({dom:p,left:f.left,top:f.top})}}));var f=(u*=p)-(s*=p),d=(h*=p)-(l*=p),g=C(),y=Li(g,{renderer:e?"svg":"canvas"});if(y.resize({width:f,height:d}),e){var v="";return lg(c,(function(t){var e=t.left-s,n=t.top-l;v+='<g transform="translate('+e+","+n+')">'+t.dom+"</g>"})),y.painter.getSvgRoot().innerHTML=v,t.connectedBackgroundColor&&y.painter.setBackgroundColor(t.connectedBackgroundColor),y.refreshImmediately(),y.painter.toDataURL()}return t.connectedBackgroundColor&&y.add(new Ba({shape:{x:0,y:0,width:f,height:d},style:{fill:t.connectedBackgroundColor}})),lg(c,(function(t){var e=new Pa({style:{x:t.left*p-s,y:t.top*p-l,image:t.dom}});y.add(e)})),y.refreshImmediately(),g.toDataURL("image/"+(t&&t.type||"png"))}return this.getDataURL(t)}},e.prototype.convertToPixel=function(t,e){return Tg(this,"convertToPixel",t,e)},e.prototype.convertFromPixel=function(t,e){return Tg(this,"convertFromPixel",t,e)},e.prototype.containPixel=function(t,e){var n;if(!this._disposed)return L(dr(this._model,t),(function(t,i){i.indexOf("Models")>=0&&L(t,(function(t){var r=t.coordinateSystem;if(r&&r.containPoint)n=n||!!r.containPoint(e);else if("seriesModels"===i){var o=this._chartsMap[t.__viewId];o&&o.containPoint&&(n=n||o.containPoint(e,t))}else 0}),this)}),this),!!n;qg(this.id)},e.prototype.getVisual=function(t,e){var n=dr(this._model,t,{defaultMainType:"series"}),i=n.seriesModel;var r=i.getData(),o=n.hasOwnProperty("dataIndexInside")?n.dataIndexInside:n.hasOwnProperty("dataIndex")?r.indexOfRawIndex(n.dataIndex):null;return null!=o?function(t,e,n){switch(n){case"color":return t.getItemVisual(e,"style")[t.getVisual("drawType")];case"opacity":return t.getItemVisual(e,"style").opacity;case"symbol":case"symbolSize":case"liftZ":return t.getItemVisual(e,n)}}(r,o,e):function(t,e){switch(e){case"color":return t.getVisual("style")[t.getVisual("drawType")];case"opacity":return t.getVisual("style").opacity;case"symbol":case"symbolSize":case"liftZ":return t.getVisual(e)}}(r,e)},e.prototype.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},e.prototype.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]},e.prototype._initEvents=function(){var t,e,n,i=this;lg(Xg,(function(t){var e=function(e){var n,r=i.getModel(),o=e.target,a="globalout"===t;if(a?n={}:o&&Td(o,(function(t){var e=ja(t);if(e&&null!=e.dataIndex){var i=e.dataModel||r.getSeriesByIndex(e.seriesIndex);return n=i&&i.getDataParams(e.dataIndex,e.dataType)||{},!0}if(e.eventData)return n=M({},e.eventData),!0}),!0),n){var s=n.componentType,l=n.componentIndex;"markLine"!==s&&"markPoint"!==s&&"markArea"!==s||(s="series",l=n.seriesIndex);var u=s&&null!=l&&r.getComponent(s,l),h=u&&i["series"===u.mainType?"_chartsMap":"_componentsMap"][u.__viewId];0,n.event=e,n.type=t,i._$eventProcessor.eventInfo={targetEl:o,packedEvent:n,model:u,view:h},i.trigger(t,n)}};e.zrEventfulCallAtLast=!0,i._zr.on(t,e,i)})),lg(Zg,(function(t,e){i._messageCenter.on(e,(function(t){this.trigger(e,t)}),i)})),lg(["selectchanged"],(function(t){i._messageCenter.on(t,(function(e){this.trigger(t,e)}),i)})),t=this._messageCenter,e=this,n=this._api,t.on("selectchanged",(function(t){var i=n.getModel();t.isFromClick?(Md("map","selectchanged",e,i,t),Md("pie","selectchanged",e,i,t)):"select"===t.fromAction?(Md("map","selected",e,i,t),Md("pie","selected",e,i,t)):"unselect"===t.fromAction&&(Md("map","unselected",e,i,t),Md("pie","unselected",e,i,t))}))},e.prototype.isDisposed=function(){return this._disposed},e.prototype.clear=function(){this._disposed?qg(this.id):this.setOption({series:[]},!0)},e.prototype.dispose=function(){if(this._disposed)qg(this.id);else{this._disposed=!0,vr(this.getDom(),sy,"");var t=this._api,e=this._model;lg(this._componentsViews,(function(n){n.dispose(e,t)})),lg(this._chartsViews,(function(n){n.dispose(e,t)})),this._zr.dispose(),delete iy[this.id]}},e.prototype.resize=function(t){if(this._disposed)qg(this.id);else{this._zr.resize(t);var e=this._model;if(this._loadingFX&&this._loadingFX.resize(),e){var n=e.resetOption("media"),i=t&&t.silent;this.__flagInMainProcess=!0,n&&bg(this),Mg.update.call(this,{type:"resize",animation:{duration:0}}),this.__flagInMainProcess=!1,Ig.call(this,i),Ag.call(this,i)}}},e.prototype.showLoading=function(t,e){if(this._disposed)qg(this.id);else if(hg(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),ny[t]){var n=ny[t](this._api,e),i=this._zr;this._loadingFX=n,i.add(n)}},e.prototype.hideLoading=function(){this._disposed?qg(this.id):(this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null)},e.prototype.makeActionFromEvent=function(t){var e=M({},t);return e.type=Zg[t.type],e},e.prototype.dispatchAction=function(t,e){if(this._disposed)qg(this.id);else if(hg(e)||(e={silent:!!e}),jg[t.type]&&this._model)if(this.__flagInMainProcess)this._pendingActions.push(t);else{var n=e.silent;Dg.call(this,t,n);var i=e.flush;i?this._zr.flush():!1!==i&&a.browser.weChat&&this._throttledZrFlush(),Ig.call(this,n),Ag.call(this,n)}},e.prototype.updateLabelLayout=function(){var t=this._labelManager;t.updateLayoutConfig(this._api),t.layout(this._api),t.processLabelsOverall()},e.prototype.appendData=function(t){if(this._disposed)qg(this.id);else{var e=t.seriesIndex,n=this.getModel().getSeriesByIndex(e);0,n.appendData(t),this._scheduler.unfinished=!0,this.getZr().wakeUp()}},e.internalField=function(){function t(t){for(var e=[],n=t.currentStates,i=0;i<n.length;i++){var r=n[i];"emphasis"!==r&&"blur"!==r&&"select"!==r&&e.push(r)}t.selected&&t.states.select&&e.push("select"),2===t.hoverState&&t.states.emphasis?e.push("emphasis"):1===t.hoverState&&t.states.blur&&e.push("blur"),t.useStates(e)}function e(t,e){if(!t.preventAutoZ){var n=t.get("z"),i=t.get("zlevel");e.group.traverse((function(t){if(!t.isGroup){null!=n&&(t.z=n),null!=i&&(t.zlevel=i);var e=t.getTextContent(),r=t.getTextGuideLine();if(e&&(e.z=t.z,e.zlevel=t.zlevel,e.z2=t.z2+2),r){var o=t.textGuideLineConfig&&t.textGuideLineConfig.showAbove;r.z=t.z,r.zlevel=t.zlevel,r.z2=t.z2+(o?1:-1)}}}))}}function i(t,e){e.group.traverse((function(t){if(!lu(t)){var e=t.getTextContent(),n=t.getTextGuideLine();t.stateTransition&&(t.stateTransition=null),e&&e.stateTransition&&(e.stateTransition=null),n&&n.stateTransition&&(n.stateTransition=null),t.hasState()?(t.prevStates=t.currentStates,t.clearStates()):t.prevStates&&(t.prevStates=null)}}))}function r(e,n){var i=e.getModel("stateAnimation"),r=e.isAnimationEnabled(),o=i.get("duration"),a=o>0?{duration:o,delay:i.get("delay"),easing:i.get("easing")}:null;n.group.traverse((function(e){if(e.states&&e.states.emphasis){if(lu(e))return;if(e instanceof Da&&function(t){var e=$a(t);e.normalFill=t.style.fill,e.normalStroke=t.style.stroke;var n=t.states.select||{};e.selectFill=n.style&&n.style.fill||null,e.selectStroke=n.style&&n.style.stroke||null}(e),e.__dirty){var n=e.prevStates;n&&e.useStates(n)}if(r){e.stateTransition=a;var i=e.getTextContent(),o=e.getTextGuideLine();i&&(i.stateTransition=a),o&&(o.stateTransition=a)}e.__dirty&&t(e)}}))}bg=function(t){var e=t._scheduler;e.restorePipelines(t._model),e.prepareStageTasks(),wg(t,!0),wg(t,!1),e.plan()},wg=function(t,e){for(var n=t._model,i=t._scheduler,r=e?t._componentsViews:t._chartsViews,o=e?t._componentsMap:t._chartsMap,a=t._zr,s=t._api,l=0;l<r.length;l++)r[l].__alive=!1;function u(t){var l=t.__requireNewView;t.__requireNewView=!1;var u="_ec_"+t.id+"_"+t.type,h=!l&&o[u];if(!h){var c=br(t.type),p=e?qp.getClass(c.main,c.sub):$p.getClass(c.sub);0,(h=new p).init(n,s),o[u]=h,r.push(h),a.add(h.group)}t.__viewId=h.__id=u,h.__alive=!0,h.__model=t,h.group.__ecComponentInfo={mainType:t.mainType,index:t.componentIndex},!e&&i.prepareView(h,t,n,s)}e?n.eachComponent((function(t,e){"series"!==t&&u(e)})):n.eachSeries(u);for(l=0;l<r.length;){var h=r[l];h.__alive?l++:(!e&&h.renderTask.dispose(),a.remove(h.group),h.dispose(n,s),r.splice(l,1),o[h.__id]===h&&delete o[h.__id],h.__id=h.group.__ecComponentInfo=null)}},Sg=function(t,e,n,i,r){var o=t._model;if(o.setUpdatePayload(n),i){var a={};a[i+"Id"]=n[i+"Id"],a[i+"Index"]=n[i+"Index"],a[i+"Name"]=n[i+"Name"];var s={mainType:i,query:a};r&&(s.subType=r);var l,u=n.excludeSeriesId;null!=u&&(l=lt(),lg(er(u),(function(t){var e=lr(t,null);null!=e&&l.set(e,!0)}))),o&&o.eachComponent(s,(function(e){l&&null!=l.get(e.id)||(Ns(n)&&!n.notBlur?e instanceof Fp&&function(t,e,n){if(Ns(e)){var i=e.type===ts,r=t.seriesIndex,o=t.getData(e.dataType),a=cr(o,e);a=(z(a)?a[0]:a)||0;var s=o.getItemGraphicEl(a);if(!s)for(var l=o.count(),u=0;!s&&u<l;)s=o.getItemGraphicEl(u++);if(s){var h=ja(s);Cs(r,h.focus,h.blurScope,n,i)}else{var c=t.get(["emphasis","focus"]),p=t.get(["emphasis","blurScope"]);null!=c&&Cs(r,c,p,n,i)}}}(e,n,t._api):Rs(n)&&e instanceof Fp&&(!function(t,e,n){if(Rs(e)){var i=e.dataType,r=cr(t.getData(i),e);z(r)||(r=[r]),t[e.type===rs?"toggleSelect":e.type===ns?"select":"unselect"](r,i)}}(e,n,t._api),Ds(e),Vg(t)),h(t["series"===i?"_chartsMap":"_componentsMap"][e.__viewId]))}),t)}else lg([].concat(t._componentsViews).concat(t._chartsViews),h);function h(i){i&&i.__alive&&i[e]&&i[e](i.__model,o,t._api,n)}},Mg={prepareAndUpdate:function(t){bg(this),Mg.update.call(this,t)},update:function(t){var e=this._model,n=this._api,i=this._zr,r=this._coordSysMgr,o=this._scheduler;if(e){e.setUpdatePayload(t),o.restoreData(e,t),o.performSeriesTasks(e),r.create(e,n),o.performDataProcessorTasks(e,t),Cg(this,e),r.update(e,n),Pg(e),o.performVisualTasks(e,t),Og(this,e,n,t);var s=e.get("backgroundColor")||"transparent",l=e.get("darkMode");if(a.canvasSupported)i.setBackgroundColor(s),null!=l&&"auto"!==l&&i.setDarkMode(l);else{var u=He(s);s=je(u,"rgb"),0===u[3]&&(s="transparent")}Eg(e,n)}},updateTransform:function(t){var e=this,n=this._model,i=this._api;if(n){n.setUpdatePayload(t);var r=[];n.eachComponent((function(o,a){if("series"!==o){var s=e.getViewOfComponentModel(a);if(s&&s.__alive)if(s.updateTransform){var l=s.updateTransform(a,n,i,t);l&&l.update&&r.push(s)}else r.push(s)}}));var o=lt();n.eachSeries((function(r){var a=e._chartsMap[r.__viewId];if(a.updateTransform){var s=a.updateTransform(r,n,i,t);s&&s.update&&o.set(r.uid,1)}else o.set(r.uid,1)})),Pg(n),this._scheduler.performVisualTasks(n,t,{setDirty:!0,dirtyMap:o}),Ng(this,n,i,t,o),Eg(n,this._api)}},updateView:function(t){var e=this._model;e&&(e.setUpdatePayload(t),$p.markUpdateMethod(t,"updateView"),Pg(e),this._scheduler.performVisualTasks(e,t,{setDirty:!0}),Og(this,this._model,this._api,t),Eg(e,this._api))},updateVisual:function(t){var e=this,n=this._model;n&&(n.setUpdatePayload(t),n.eachSeries((function(t){t.getData().clearAllVisual()})),$p.markUpdateMethod(t,"updateVisual"),Pg(n),this._scheduler.performVisualTasks(n,t,{visualType:"visual",setDirty:!0}),n.eachComponent((function(i,r){if("series"!==i){var o=e.getViewOfComponentModel(r);o&&o.__alive&&o.updateVisual(r,n,e._api,t)}})),n.eachSeries((function(i){e._chartsMap[i.__viewId].updateVisual(i,n,e._api,t)})),Eg(n,this._api))},updateLayout:function(t){Mg.update.call(this,t)}},Tg=function(t,e,n,i){if(t._disposed)qg(t.id);else{for(var r,o=t._model,a=t._coordSysMgr.getCoordinateSystems(),s=dr(o,n),l=0;l<a.length;l++){var u=a[l];if(u[e]&&null!=(r=u[e](o,s,i)))return r}0}},Cg=function(t,e){var n=t._chartsMap,i=t._scheduler;e.eachSeries((function(t){i.updateStreamModes(t,n[t.__viewId])}))},Dg=function(t,e){var n=this,i=this.getModel(),r=t.type,o=t.escapeConnect,a=jg[r],s=a.actionInfo,l=(s.update||"update").split(":"),u=l.pop(),h=null!=l[0]&&br(l[0]);this.__flagInMainProcess=!0;var c=[t],p=!1;t.batch&&(p=!0,c=P(t.batch,(function(e){return(e=T(M({},e),t)).batch=null,e})));var f,d=[],g=Rs(t),y=Ns(t)||g;if(lg(c,(function(t){(f=(f=a.action(t,n._model,n._api))||M({},t)).type=s.event||f.type,d.push(f),y?(Sg(n,u,t,"series"),Vg(n)):h&&Sg(n,u,t,h.main,h.sub)})),"none"===u||y||h||(this.__optionUpdated?(bg(this),Mg.update.call(this,t),this.__optionUpdated=!1):Mg[u].call(this,t)),f=p?{type:s.event||r,escapeConnect:o,batch:d}:d[0],this.__flagInMainProcess=!1,!e){var v=this._messageCenter;if(v.trigger(f.type,f),g){var m={type:"selectchanged",escapeConnect:o,selected:Is(i),isFromClick:t.isFromClick||!1,fromAction:t.type,fromActionPayload:t};v.trigger(m.type,m)}}},Ig=function(t){for(var e=this._pendingActions;e.length;){var n=e.shift();Dg.call(this,n,t)}},Ag=function(t){!t&&this.trigger("updated")},kg=function(t,e){t.on("rendered",(function(n){e.trigger("rendered",n),!t.animation.isFinished()||e.__optionUpdated||e._scheduler.unfinished||e._pendingActions.length||e.trigger("finished")}))},Lg=function(t,e){t.on("mouseover",(function(t){var n=Td(t.target,Os);if(n){var i=ja(n);Cs(i.seriesIndex,i.focus,i.blurScope,e._api,!0),function(t,e){!Ts(t,e)&&!t.__highByOuter&&ys(t,us)}(n,t),Vg(e)}})).on("mouseout",(function(t){var n=Td(t.target,Os);if(n){var i=ja(n);Cs(i.seriesIndex,i.focus,i.blurScope,e._api,!1),function(t,e){!Ts(t,e)&&!t.__highByOuter&&ys(t,hs)}(n,t),Vg(e)}})).on("click",(function(t){var n=Td(t.target,(function(t){return null!=ja(t).dataIndex}),!0);if(n){var i=n.selected?"unselect":"select",r=ja(n);e._api.dispatchAction({type:i,dataType:r.dataType,dataIndexInside:r.dataIndex,seriesIndex:r.seriesIndex,isFromClick:!0})}}))},Pg=function(t){t.clearColorPalette(),t.eachSeries((function(t){t.clearColorPalette()}))},Og=function(t,e,n,i){Rg(t,e,n,i),lg(t._chartsViews,(function(t){t.__alive=!1})),Ng(t,e,n,i),lg(t._chartsViews,(function(t){t.__alive||t.remove(e,n)}))},Rg=function(t,n,o,a,s){lg(s||t._componentsViews,(function(t){var s=t.__model;i(s,t),t.render(s,n,o,a),e(s,t),r(s,t)}))},Ng=function(t,n,o,s,l){var u=t._scheduler,h=t._labelManager;h.clearLabels();var c=!1;n.eachSeries((function(e){var n=t._chartsMap[e.__viewId];n.__alive=!0;var r=n.renderTask;u.updatePayload(r,s),i(e,n),l&&l.get(e.uid)&&r.dirty(),r.perform(u.getPerformArgs(r))&&(c=!0),e.__transientTransitionOpt=null,n.group.silent=!!e.get("silent"),function(t,e){var n=t.get("blendMode")||null;0;e.group.traverse((function(t){t.isGroup||(t.style.blend=n),t.eachPendingDisplayable&&t.eachPendingDisplayable((function(t){t.style.blend=n}))}))}(e,n),Ds(e),h.addLabelsOfSeries(n)})),u.unfinished=c||u.unfinished,h.updateLayoutConfig(o),h.layout(o),h.processLabelsOverall(),n.eachSeries((function(n){var i=t._chartsMap[n.__viewId];e(n,i),r(n,i)})),function(t,e){var n=t._zr.storage,i=0;n.traverse((function(t){t.isGroup||i++})),i>e.get("hoverLayerThreshold")&&!a.node&&!a.worker&&e.eachSeries((function(e){if(!e.preventUsingHoverLayer){var n=t._chartsMap[e.__viewId];n.__alive&&n.group.traverse((function(t){t.states.emphasis&&(t.states.emphasis.hoverLayer=!0)}))}}))}(t,n)},Eg=function(t,e){lg(Jg,(function(n){n(t,e)}))},Vg=function(t){t.__needsUpdateStatus=!0,t.getZr().wakeUp()},Hg=function(e){e.__needsUpdateStatus&&(e.getZr().storage.traverse((function(e){lu(e)||t(e)})),e.__needsUpdateStatus=!1)},Bg=function(t){return new(function(e){function i(){return null!==e&&e.apply(this,arguments)||this}return n(i,e),i.prototype.getCoordinateSystems=function(){return t._coordSysMgr.getCoordinateSystems()},i.prototype.getComponentByElement=function(e){for(;e;){var n=e.__ecComponentInfo;if(null!=n)return t._model.getComponent(n.mainType,n.index);e=e.parent}},i.prototype.enterEmphasis=function(e,n){xs(e,n),Vg(t)},i.prototype.leaveEmphasis=function(e,n){bs(e,n),Vg(t)},i.prototype.enterBlur=function(e){!function(t){ys(t,cs)}(e),Vg(t)},i.prototype.leaveBlur=function(e){ws(e),Vg(t)},i.prototype.enterSelect=function(e){Ss(e),Vg(t)},i.prototype.leaveSelect=function(e){Ms(e),Vg(t)},i.prototype.getModel=function(){return t.getModel()},i.prototype.getViewOfComponentModel=function(e){return t.getViewOfComponentModel(e)},i.prototype.getViewOfSeriesModel=function(e){return t.getViewOfSeriesModel(e)},i}(mc))(t)},zg=function(t){function e(t,e){for(var n=0;n<t.length;n++){t[n][vg]=e}}lg(Zg,(function(n,i){t._messageCenter.on(i,(function(n){if(ry[t.group]&&0!==t[vg]){if(n&&n.escapeConnect)return;var i=t.makeActionFromEvent(n),r=[];lg(iy,(function(e){e!==t&&e.group===t.group&&r.push(e)})),e(r,0),lg(r,(function(t){1!==t[vg]&&t.dispatchAction(i)})),e(r,2)}}))}))},Fg=function(t,e){var n=t._model;L(er(e),(function(t){var e,i=t.from,r=t.to;null==r&&Ji(e);var o={includeMainTypes:["series"],enableAll:!1,enableNone:!1},a=i?dr(n,i,o):null,s=dr(n,r,o).seriesModel;null==s&&(e=""),a&&a.seriesModel!==s&&(e=""),null!=e&&Ji(e),s.__transientTransitionOpt={from:i?i.dimension:null,to:r.dimension,dividingMethod:t.dividingMethod}}))}}(),e}(Et),Yg=Ug.prototype;Yg.on=mg("on"),Yg.off=mg("off"),Yg.one=function(t,e,n){var i=this;Qi(),this.on.call(this,t,(function n(){for(var r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];e&&e.apply&&e.apply(this,r),i.off(t,n)}),n)};var Xg=["click","dblclick","mouseover","mouseout","mousemove","mousedown","mouseup","globalout","contextmenu"];function qg(t){0}var jg={},Zg={},Kg=[],$g=[],Qg=[],Jg=[],ty=[],ey={},ny={},iy={},ry={},oy=+new Date-0,ay=+new Date-0,sy="_echarts_instance_";function ly(t){ry[t]=!1}var uy=ly;function hy(t){return iy[function(t,e){return t.getAttribute?t.getAttribute(e):t[e]}(t,sy)]}function cy(t,e){ey[t]=e}function py(t){cg($g,t)<0&&$g.push(t)}function fy(t,e){by(Kg,t,e,2e3)}function dy(t){cg(Qg,t)<0&&t&&Qg.push(t)}function gy(t){cg(Jg,t)<0&&t&&Jg.push(t)}function yy(t,e,n){"function"==typeof e&&(n=e,e="");var i=hg(t)?t.type:[t,t={event:e}][0];t.event=(t.event||i).toLowerCase(),e=t.event,Zg[e]||(sg(yg.test(i)&&yg.test(e)),jg[i]||(jg[i]={action:n,actionInfo:t}),Zg[e]=i)}function vy(t,e){xc.register(t,e)}function my(t,e){by(ty,t,e,1e3,"layout")}function _y(t,e){by(ty,t,e,3e3,"visual")}var xy=[];function by(t,e,n,i,r){if((ug(e)||hg(e))&&(n=e,e=i),!(cg(xy,n)>=0)){xy.push(n);var o=gf.wrapStageHandler(n,r);o.__prio=e,o.__raw=n,t.push(o)}}function wy(t,e){ny[t]=e}function Sy(t,e,n){zf(t,e,n)}var My=function(t){var e=(t=w(t)).type,n="";e||Ji(n);var i=e.split(":");2!==i.length&&Ji(n);var r=!1;"echarts"===i[0]&&(e=i[1],r=!0),t.__isBuiltIn=r,Dp.set(e,t)};_y(fg,hf),_y(dg,pf),_y(dg,ff),_y(fg,Wf),_y(dg,{createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){if(t.hasSymbolVisual&&!e.isSeriesFiltered(t))return{dataEach:t.getData().hasItemOption?function(t,e){var n=t.getItemModel(e),i=n.getShallow("symbol",!0),r=n.getShallow("symbolSize",!0),o=n.getShallow("symbolRotate",!0),a=n.getShallow("symbolKeepAspect",!0);null!=i&&t.setItemVisual(e,"symbol",i),null!=r&&t.setItemVisual(e,"symbolSize",r),null!=o&&t.setItemVisual(e,"symbolRotate",o),null!=a&&t.setItemVisual(e,"symbolKeepAspect",a)}:null}}}),_y(7e3,(function(t,e){t.eachRawSeries((function(n){if(!t.isSeriesFiltered(n)){var i=n.getData();i.hasItemVisual()&&i.each((function(t){var n=i.getItemVisual(t,"decal");n&&(i.ensureUniqueItemVisual(t,"style").decal=ig(n,e))}));var r=i.getVisual("decal");if(r)i.getVisual("style").decal=ig(r,e)}}))})),py(Gc),fy(900,(function(t){var e=lt();t.eachSeries((function(t){var n=t.get("stack");if(n){var i=e.get(n)||e.set(n,[]),r=t.getData(),o={stackResultDimension:r.getCalculationInfo("stackResultDimension"),stackedOverDimension:r.getCalculationInfo("stackedOverDimension"),stackedDimension:r.getCalculationInfo("stackedDimension"),stackedByDimension:r.getCalculationInfo("stackedByDimension"),isStackedByIndex:r.getCalculationInfo("isStackedByIndex"),data:r,seriesModel:t};if(!o.stackedDimension||!o.isStackedByIndex&&!o.stackedByDimension)return;i.length&&r.setCalculationInfo("stackedOnSeries",i[i.length-1].seriesModel),i.push(o)}})),e.each(Uc)})),wy("default",(function(t,e){T(e=e||{},{text:"loading",textColor:"#000",fontSize:12,fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",maskColor:"rgba(255, 255, 255, 0.8)",showSpinner:!0,color:"#5470c6",spinnerRadius:10,lineWidth:5,zlevel:0});var n=new Ci,i=new Ba({style:{fill:e.maskColor},zlevel:e.zlevel,z:1e4});n.add(i);var r,o=new Va({style:{text:e.text,fill:e.textColor,fontSize:e.fontSize,fontWeight:e.fontWeight,fontStyle:e.fontStyle,fontFamily:e.fontFamily}}),a=new Ba({style:{fill:"none"},textContent:o,textConfig:{position:"right",distance:10},zlevel:e.zlevel,z:10001});return n.add(a),e.showSpinner&&((r=new Rl({shape:{startAngle:-df/2,endAngle:-df/2+.1,r:e.spinnerRadius},style:{stroke:e.color,lineCap:"round",lineWidth:e.lineWidth},zlevel:e.zlevel,z:10001})).animateShape(!0).when(1e3,{endAngle:3*df/2}).start("circularInOut"),r.animateShape(!0).when(1e3,{startAngle:3*df/2}).delay(300).start("circularInOut"),n.add(r)),n.resize=function(){var n=o.getBoundingRect().width,s=e.showSpinner?e.spinnerRadius:0,l=(t.getWidth()-2*s-(e.showSpinner&&n?10:0)-n)/2-(e.showSpinner&&n?0:5+n/2)+(e.showSpinner?0:n/2)+(n?0:s),u=t.getHeight()/2;e.showSpinner&&r.setShape({cx:l,cy:u}),a.setShape({x:l-s,y:u-s,width:2*s,height:2*s}),i.setShape({x:0,y:0,width:t.getWidth(),height:t.getHeight()})},n.resize(),n})),yy({type:ts,event:ts,update:ts},ct),yy({type:es,event:es,update:es},ct),yy({type:ns,event:ns,update:ns},ct),yy({type:is,event:is,update:is},ct),yy({type:rs,event:rs,update:rs},ct),cy("light",Lf),cy("dark",Ef);var Ty=[],Cy={registerPreprocessor:py,registerProcessor:fy,registerPostInit:dy,registerPostUpdate:gy,registerAction:yy,registerCoordinateSystem:vy,registerLayout:my,registerVisual:_y,registerTransform:My,registerLoading:wy,registerMap:Sy,PRIORITY:gg,ComponentModel:Eh,ComponentView:qp,SeriesModel:Fp,ChartView:$p,registerComponentModel:function(t){Eh.registerClass(t)},registerComponentView:function(t){qp.registerClass(t)},registerSeriesModel:function(t){Fp.registerClass(t)},registerChartView:function(t){$p.registerClass(t)},registerSubTypeDefaulter:function(t,e){Eh.registerSubTypeDefaulter(t,e)},registerPainter:function(t,e){Pi(t,e)}};function Dy(t){z(t)?L(t,(function(t){Dy(t)})):D(Ty,t)>=0||(Ty.push(t),F(t)&&(t={install:t}),t.install(Cy))}function Iy(t){return null==t?0:t.length||1}function Ay(t){return t}var ky=function(){function t(t,e,n,i,r,o){this._old=t,this._new=e,this._oldKeyGetter=n||Ay,this._newKeyGetter=i||Ay,this.context=r,this._diffModeMultiple="multiple"===o}return t.prototype.add=function(t){return this._add=t,this},t.prototype.update=function(t){return this._update=t,this},t.prototype.updateManyToOne=function(t){return this._updateManyToOne=t,this},t.prototype.updateOneToMany=function(t){return this._updateOneToMany=t,this},t.prototype.remove=function(t){return this._remove=t,this},t.prototype.execute=function(){this[this._diffModeMultiple?"_executeMultiple":"_executeOneToOne"]()},t.prototype._executeOneToOne=function(){var t=this._old,e=this._new,n={},i=new Array(t.length),r=new Array(e.length);this._initIndexMap(t,null,i,"_oldKeyGetter"),this._initIndexMap(e,n,r,"_newKeyGetter");for(var o=0;o<t.length;o++){var a=i[o],s=n[a],l=Iy(s);if(l>1){var u=s.shift();1===s.length&&(n[a]=s[0]),this._update&&this._update(u,o)}else 1===l?(n[a]=null,this._update&&this._update(s,o)):this._remove&&this._remove(o)}this._performRestAdd(r,n)},t.prototype._executeMultiple=function(){var t=this._old,e=this._new,n={},i={},r=[],o=[];this._initIndexMap(t,n,r,"_oldKeyGetter"),this._initIndexMap(e,i,o,"_newKeyGetter");for(var a=0;a<r.length;a++){var s=r[a],l=n[s],u=i[s],h=Iy(l),c=Iy(u);if(h>1&&1===c)this._updateManyToOne&&this._updateManyToOne(u,l),i[s]=null;else if(1===h&&c>1)this._updateOneToMany&&this._updateOneToMany(u,l),i[s]=null;else if(1===h&&1===c)this._update&&this._update(u,l),i[s]=null;else if(h>1)for(var p=0;p<h;p++)this._remove&&this._remove(l[p]);else this._remove&&this._remove(l)}this._performRestAdd(o,i)},t.prototype._performRestAdd=function(t,e){for(var n=0;n<t.length;n++){var i=t[n],r=e[i],o=Iy(r);if(o>1)for(var a=0;a<o;a++)this._add&&this._add(r[a]);else 1===o&&this._add&&this._add(r);e[i]=null}},t.prototype._initIndexMap=function(t,e,n,i){for(var r=this._diffModeMultiple,o=0;o<t.length;o++){var a="_ec_"+this[i](t[o],o);if(r||(n[o]=a),e){var s=e[a],l=Iy(s);0===l?(e[a]=o,r&&n.push(a)):1===l?e[a]=[s,o]:s.push(o)}}},t}();function Ly(t,e){return t.hasOwnProperty(e)||(t[e]=[]),t[e]}var Py,Oy,Ry,Ny,Ey,By,zy,Fy,Vy,Hy,Wy,Gy,Uy,Yy,Xy=function(t){this.otherDims={},null!=t&&M(this,t)},qy=Math.floor,jy=G,Zy=P,Ky="undefined",$y={float:typeof Float64Array===Ky?Array:Float64Array,int:typeof Int32Array===Ky?Array:Int32Array,ordinal:Array,number:Array,time:Array},Qy=typeof Uint32Array===Ky?Array:Uint32Array,Jy=typeof Int32Array===Ky?Array:Int32Array,tv=typeof Uint16Array===Ky?Array:Uint16Array,ev=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_rawData","_dimValueGetter","_count","_rawCount","_nameDimIdx","_idDimIdx","_nameRepeatCount"],nv=["_extent","_approximateExtent","_rawExtent"],iv=function(){function t(t,e){this.type="list",this._count=0,this._rawCount=0,this._storage={},this._storageArr=[],this._nameList=[],this._idList=[],this._visual={},this._layout={},this._itemVisuals=[],this._itemLayouts=[],this._graphicEls=[],this._rawExtent={},this._extent={},this._approximateExtent={},this._calculationInfo={},this.hasItemOption=!0,this.TRANSFERABLE_METHODS=["cloneShallow","downSample","lttbDownSample","map"],this.CHANGABLE_METHODS=["filterSelf","selectRange"],this.DOWNSAMPLE_METHODS=["downSample","lttbDownSample"],this.getRawIndex=Ey,t=t||["x","y"];for(var n={},i=[],r={},o=0;o<t.length;o++){var a=t[o],s=V(a)?new Xy({name:a}):a instanceof Xy?a:new Xy(a),l=s.name;s.type=s.type||"float",s.coordDim||(s.coordDim=l,s.coordDimIndex=0);var u=s.otherDims=s.otherDims||{};i.push(l),n[l]=s,s.index=o,s.createInvertedIndices&&(r[l]=[]),0===u.itemName&&(this._nameDimIdx=o,this._nameOrdinalMeta=s.ordinalMeta),0===u.itemId&&(this._idDimIdx=o,this._idOrdinalMeta=s.ordinalMeta)}this.dimensions=i,this._dimensionInfos=n,this.hostModel=e,this._dimensionsSummary=function(t){var e={},n=e.encode={},i=lt(),r=[],o=[],a=e.userOutput={dimensionNames:t.dimensions.slice(),encode:{}};L(t.dimensions,(function(e){var s,l=t.getDimensionInfo(e),u=l.coordDim;if(u){var h=l.coordDimIndex;Ly(n,u)[h]=e,l.isExtraCoord||(i.set(u,1),"ordinal"!==(s=l.type)&&"time"!==s&&(r[0]=e),Ly(a.encode,u)[h]=l.index),l.defaultTooltip&&o.push(e)}Vh.each((function(t,e){var i=Ly(n,e),r=l.otherDims[e];null!=r&&!1!==r&&(i[r]=l.name)}))}));var s=[],l={};i.each((function(t,e){var i=n[e];l[e]=i[0],s=s.concat(i)})),e.dataDimsOnCoord=s,e.encodeFirstDimNotExtra=l;var u=n.label;u&&u.length&&(r=u.slice());var h=n.tooltip;return h&&h.length?o=h.slice():o.length||(o=r.slice()),n.defaultedLabel=r,n.defaultedTooltip=o,e}(this),this._invertedIndicesMap=r,this.userOutput=this._dimensionsSummary.userOutput}return t.prototype.getDimension=function(t){return"number"!=typeof t&&(isNaN(t)||this._dimensionInfos.hasOwnProperty(t))||(t=this.dimensions[t]),t},t.prototype.getDimensionInfo=function(t){return this._dimensionInfos[this.getDimension(t)]},t.prototype.getDimensionsOnCoord=function(){return this._dimensionsSummary.dataDimsOnCoord.slice()},t.prototype.mapDimension=function(t,e){var n=this._dimensionsSummary;if(null==e)return n.encodeFirstDimNotExtra[t];var i=n.encode[t];return i?i[e]:null},t.prototype.mapDimensionsAll=function(t){return(this._dimensionsSummary.encode[t]||[]).slice()},t.prototype.initData=function(t,e,n){var i=$c(t)||k(t),r=i?new rp(t,this.dimensions.length):t;this._rawData=r;var o=r.getSource().sourceFormat;this._storage={},this._indices=null,this._dontMakeIdFromName=null!=this._idDimIdx||o===Yh||!!r.fillStorage,this._nameList=(e||[]).slice(),this._idList=[],this._nameRepeatCount={},n||(this.hasItemOption=!1),this.defaultDimValueGetter=Py[o],this._dimValueGetter=n=n||this.defaultDimValueGetter,this._dimValueGetterArrayRows=Py.arrayRows,this._rawExtent={},this._initDataFromProvider(0,r.count()),r.pure&&(this.hasItemOption=!1)},t.prototype.getProvider=function(){return this._rawData},t.prototype.appendData=function(t){var e=this._rawData,n=this.count();e.appendData(t);var i=e.count();e.persistent||(i+=n),this._initDataFromProvider(n,i,!0)},t.prototype.appendValues=function(t,e){for(var n=this._storage,i=this.dimensions,r=i.length,o=this._rawExtent,a=this.count(),s=a+Math.max(t.length,e?e.length:0),l=0;l<r;l++){var u=i[l];o[u]||(o[u]=Gy()),Ny(n,this._dimensionInfos[u],s,!0)}for(var h=Zy(i,(function(t){return o[t]})),c=this._storageArr=Zy(i,(function(t){return n[t]})),p=[],f=a;f<s;f++){for(var d=f-a,g=0;g<r;g++){u=i[g];var y=this._dimValueGetterArrayRows(t[d]||p,u,d,g);c[g][f]=y;var v=h[g];y<v[0]&&(v[0]=y),y>v[1]&&(v[1]=y)}e&&(this._nameList[f]=e[d],this._dontMakeIdFromName||Vy(this,f))}this._rawCount=this._count=s,this._extent={},Oy(this)},t.prototype._initDataFromProvider=function(t,e,n){if(!(t>=e)){for(var i=this._rawData,r=this._storage,o=this.dimensions,a=o.length,s=this._dimensionInfos,l=this._nameList,u=this._idList,h=this._rawExtent,c=i.getSource().sourceFormat===Hh,p=0;p<a;p++){var f=o[p];h[f]||(h[f]=Gy()),Ny(r,s[f],e,n)}var d=this._storageArr=Zy(o,(function(t){return r[t]})),g=Zy(o,(function(t){return h[t]}));if(i.fillStorage)i.fillStorage(t,e,d,g);else for(var y=[],v=t;v<e;v++){y=i.getItem(v,y);for(var m=0;m<a;m++){f=o[m];var _=d[m],x=this._dimValueGetter(y,f,v,m);_[v]=x;var b=g[m];x<b[0]&&(b[0]=x),x>b[1]&&(b[1]=x)}if(c&&!i.pure&&y){var w=y.name;null==l[v]&&null!=w&&(l[v]=lr(w,null));var S=y.id;null==u[v]&&null!=S&&(u[v]=lr(S,null))}this._dontMakeIdFromName||Vy(this,v)}!i.persistent&&i.clean&&i.clean(),this._rawCount=this._count=e,this._extent={},Oy(this)}},t.prototype.count=function(){return this._count},t.prototype.getIndices=function(){var t,e=this._indices;if(e){var n=e.constructor,i=this._count;if(n===Array){t=new n(i);for(var r=0;r<i;r++)t[r]=e[r]}else t=new n(e.buffer,0,i)}else{t=new(n=Ry(this))(this.count());for(r=0;r<t.length;r++)t[r]=r}return t},t.prototype.getByDimIdx=function(t,e){if(!(e>=0&&e<this._count))return NaN;var n=this._storageArr[t];return n?n[this.getRawIndex(e)]:NaN},t.prototype.get=function(t,e){if(!(e>=0&&e<this._count))return NaN;var n=this._storage[t];return n?n[this.getRawIndex(e)]:NaN},t.prototype.getByRawIndex=function(t,e){if(!(e>=0&&e<this._rawCount))return NaN;var n=this._storage[t];return n?n[e]:NaN},t.prototype.getValues=function(t,e){var n=[];z(t)||(e=t,t=this.dimensions);for(var i=0,r=t.length;i<r;i++)n.push(this.get(t[i],e));return n},t.prototype.hasValue=function(t){for(var e=this._dimensionsSummary.dataDimsOnCoord,n=0,i=e.length;n<i;n++)if(isNaN(this.get(e[n],t)))return!1;return!0},t.prototype.getDataExtent=function(t){t=this.getDimension(t);var e=this._storage[t],n=Gy();if(!e)return n;var i,r=this.count();if(!this._indices)return this._rawExtent[t].slice();if(i=this._extent[t])return i.slice();for(var o=(i=n)[0],a=i[1],s=0;s<r;s++){var l=e[this.getRawIndex(s)];l<o&&(o=l),l>a&&(a=l)}return i=[o,a],this._extent[t]=i,i},t.prototype.getApproximateExtent=function(t){return t=this.getDimension(t),this._approximateExtent[t]||this.getDataExtent(t)},t.prototype.setApproximateExtent=function(t,e){e=this.getDimension(e),this._approximateExtent[e]=t.slice()},t.prototype.getCalculationInfo=function(t){return this._calculationInfo[t]},t.prototype.setCalculationInfo=function(t,e){jy(t)?M(this._calculationInfo,t):this._calculationInfo[t]=e},t.prototype.getSum=function(t){var e=0;if(this._storage[t])for(var n=0,i=this.count();n<i;n++){var r=this.get(t,n);isNaN(r)||(e+=r)}return e},t.prototype.getMedian=function(t){var e=[];this.each(t,(function(t){isNaN(t)||e.push(t)}));var n=e.sort((function(t,e){return t-e})),i=this.count();return 0===i?0:i%2==1?n[(i-1)/2]:(n[i/2]+n[i/2-1])/2},t.prototype.rawIndexOf=function(t,e){var n=t&&this._invertedIndicesMap[t];var i=n[e];return null==i||isNaN(i)?-1:i},t.prototype.indexOfName=function(t){for(var e=0,n=this.count();e<n;e++)if(this.getName(e)===t)return e;return-1},t.prototype.indexOfRawIndex=function(t){if(t>=this._rawCount||t<0)return-1;if(!this._indices)return t;var e=this._indices,n=e[t];if(null!=n&&n<this._count&&n===t)return t;for(var i=0,r=this._count-1;i<=r;){var o=(i+r)/2|0;if(e[o]<t)i=o+1;else{if(!(e[o]>t))return o;r=o-1}}return-1},t.prototype.indicesOfNearest=function(t,e,n){var i=this._storage[t],r=[];if(!i)return r;null==n&&(n=1/0);for(var o=1/0,a=-1,s=0,l=0,u=this.count();l<u;l++){var h=e-i[this.getRawIndex(l)],c=Math.abs(h);c<=n&&((c<o||c===o&&h>=0&&a<0)&&(o=c,a=h,s=0),h===a&&(r[s++]=l))}return r.length=s,r},t.prototype.getRawDataItem=function(t){if(this._rawData.persistent)return this._rawData.getItem(this.getRawIndex(t));for(var e=[],n=0;n<this.dimensions.length;n++){var i=this.dimensions[n];e.push(this.get(i,t))}return e},t.prototype.getName=function(t){var e=this.getRawIndex(t),n=this._nameList[e];return null==n&&null!=this._nameDimIdx&&(n=Fy(this,this._nameDimIdx,this._nameOrdinalMeta,e)),null==n&&(n=""),n},t.prototype.getId=function(t){return zy(this,this.getRawIndex(t))},t.prototype.each=function(t,e,n,i){var r=this;if(this._count){"function"==typeof t&&(i=n,n=e,e=t,t=[]);var o=n||i||this,a=Zy(Hy(t),this.getDimension,this);0;for(var s=a.length,l=Zy(a,(function(t){return r._dimensionInfos[t].index})),u=this._storageArr,h=0,c=this.count();h<c;h++){var p=this.getRawIndex(h);switch(s){case 0:e.call(o,h);break;case 1:e.call(o,u[l[0]][p],h);break;case 2:e.call(o,u[l[0]][p],u[l[1]][p],h);break;default:for(var f=0,d=[];f<s;f++)d[f]=u[l[f]][p];d[f]=h,e.apply(o,d)}}}},t.prototype.filterSelf=function(t,e,n,i){var r=this;if(this._count){"function"==typeof t&&(i=n,n=e,e=t,t=[]);var o=n||i||this,a=Zy(Hy(t),this.getDimension,this);0;for(var s=this.count(),l=new(Ry(this))(s),u=[],h=a.length,c=0,p=Zy(a,(function(t){return r._dimensionInfos[t].index})),f=p[0],d=this._storageArr,g=0;g<s;g++){var y=void 0,v=this.getRawIndex(g);if(0===h)y=e.call(o,g);else if(1===h){var m=d[f][v];y=e.call(o,m,g)}else{for(var _=0;_<h;_++)u[_]=d[p[_]][v];u[_]=g,y=e.apply(o,u)}y&&(l[c++]=v)}return c<s&&(this._indices=l),this._count=c,this._extent={},this.getRawIndex=this._indices?By:Ey,this}},t.prototype.selectRange=function(t){var e=this,n=this._count;if(n){var i=[];for(var r in t)t.hasOwnProperty(r)&&i.push(r);0;var o=i.length;if(o){var a=this.count(),s=new(Ry(this))(a),l=0,u=i[0],h=Zy(i,(function(t){return e._dimensionInfos[t].index})),c=t[u][0],p=t[u][1],f=this._storageArr,d=!1;if(!this._indices){var g=0;if(1===o){for(var y=f[h[0]],v=0;v<n;v++){((b=y[v])>=c&&b<=p||isNaN(b))&&(s[l++]=g),g++}d=!0}else if(2===o){y=f[h[0]];var m=f[h[1]],_=t[i[1]][0],x=t[i[1]][1];for(v=0;v<n;v++){var b=y[v],w=m[v];(b>=c&&b<=p||isNaN(b))&&(w>=_&&w<=x||isNaN(w))&&(s[l++]=g),g++}d=!0}}if(!d)if(1===o)for(v=0;v<a;v++){var S=this.getRawIndex(v);((b=f[h[0]][S])>=c&&b<=p||isNaN(b))&&(s[l++]=S)}else for(v=0;v<a;v++){for(var M=!0,T=(S=this.getRawIndex(v),0);T<o;T++){var C=i[T];((b=f[h[T]][S])<t[C][0]||b>t[C][1])&&(M=!1)}M&&(s[l++]=this.getRawIndex(v))}return l<a&&(this._indices=s),this._count=l,this._extent={},this.getRawIndex=this._indices?By:Ey,this}}},t.prototype.mapArray=function(t,e,n,i){"function"==typeof t&&(i=n,n=e,e=t,t=[]),n=n||i||this;var r=[];return this.each(t,(function(){r.push(e&&e.apply(this,arguments))}),n),r},t.prototype.map=function(t,e,n,i){var r=n||i||this,o=Zy(Hy(t),this.getDimension,this);var a=Wy(this,o),s=a._storage;a._indices=this._indices,a.getRawIndex=a._indices?By:Ey;for(var l=[],u=o.length,h=this.count(),c=[],p=a._rawExtent,f=0;f<h;f++){for(var d=0;d<u;d++)c[d]=this.get(o[d],f);c[u]=f;var g=e&&e.apply(r,c);if(null!=g){"object"!=typeof g&&(l[0]=g,g=l);for(var y=this.getRawIndex(f),v=0;v<g.length;v++){var m=o[v],_=g[v],x=p[m],b=s[m];b&&(b[y]=_),_<x[0]&&(x[0]=_),_>x[1]&&(x[1]=_)}}}return a},t.prototype.downSample=function(t,e,n,i){for(var r=Wy(this,[t]),o=r._storage,a=[],s=qy(1/e),l=o[t],u=this.count(),h=r._rawExtent[t],c=new(Ry(this))(u),p=0,f=0;f<u;f+=s){s>u-f&&(s=u-f,a.length=s);for(var d=0;d<s;d++){var g=this.getRawIndex(f+d);a[d]=l[g]}var y=n(a),v=this.getRawIndex(Math.min(f+i(a,y)||0,u-1));l[v]=y,y<h[0]&&(h[0]=y),y>h[1]&&(h[1]=y),c[p++]=v}return r._count=p,r._indices=c,r.getRawIndex=By,r},t.prototype.lttbDownSample=function(t,e){var n,i,r,o=Wy(this,[]),a=o._storage[t],s=this.count(),l=new(Ry(this))(s),u=0,h=qy(1/e),c=this.getRawIndex(0);l[u++]=c;for(var p=1;p<s-1;p+=h){for(var f=Math.min(p+h,s-1),d=Math.min(p+2*h,s),g=(d+f)/2,y=0,v=f;v<d;v++){var m=a[S=this.getRawIndex(v)];isNaN(m)||(y+=m)}y/=d-f;var _=p,x=Math.min(p+h,s),b=p-1,w=a[c];n=-1,r=_;for(v=_;v<x;v++){var S;m=a[S=this.getRawIndex(v)];isNaN(m)||(i=Math.abs((b-g)*(m-w)-(b-v)*(y-w)))>n&&(n=i,r=S)}l[u++]=r,c=r}return l[u++]=this.getRawIndex(s-1),o._count=u,o._indices=l,o.getRawIndex=By,o},t.prototype.getItemModel=function(t){var e=this.hostModel,n=this.getRawDataItem(t);return new Ou(n,e,e&&e.ecModel)},t.prototype.diff=function(t){var e=this;return new ky(t?t.getIndices():[],this.getIndices(),(function(e){return zy(t,e)}),(function(t){return zy(e,t)}))},t.prototype.getVisual=function(t){var e=this._visual;return e&&e[t]},t.prototype.setVisual=function(t,e){this._visual=this._visual||{},jy(t)?M(this._visual,t):this._visual[t]=e},t.prototype.getItemVisual=function(t,e){var n=this._itemVisuals[t],i=n&&n[e];return null==i?this.getVisual(e):i},t.prototype.hasItemVisual=function(){return this._itemVisuals.length>0},t.prototype.ensureUniqueItemVisual=function(t,e){var n=this._itemVisuals,i=n[t];i||(i=n[t]={});var r=i[e];return null==r&&(z(r=this.getVisual(e))?r=r.slice():jy(r)&&(r=M({},r)),i[e]=r),r},t.prototype.setItemVisual=function(t,e,n){var i=this._itemVisuals[t]||{};this._itemVisuals[t]=i,jy(e)?M(i,e):i[e]=n},t.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},t.prototype.setLayout=function(t,e){if(jy(t))for(var n in t)t.hasOwnProperty(n)&&this.setLayout(n,t[n]);else this._layout[t]=e},t.prototype.getLayout=function(t){return this._layout[t]},t.prototype.getItemLayout=function(t){return this._itemLayouts[t]},t.prototype.setItemLayout=function(t,e,n){this._itemLayouts[t]=n?M(this._itemLayouts[t]||{},e):e},t.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},t.prototype.setItemGraphicEl=function(t,e){var n=this.hostModel;if(e){var i=ja(e);i.dataIndex=t,i.dataType=this.dataType,i.seriesIndex=n&&n.seriesIndex,"group"===e.type&&e.traverse(Uy,e)}this._graphicEls[t]=e},t.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},t.prototype.eachItemGraphicEl=function(t,e){L(this._graphicEls,(function(n,i){n&&t&&t.call(e,n,i)}))},t.prototype.cloneShallow=function(e){e||(e=new t(Zy(this.dimensions,this.getDimensionInfo,this),this.hostModel));if(e._storage=this._storage,e._storageArr=this._storageArr,Yy(e,this),this._indices){var n=this._indices.constructor;if(n===Array){var i=this._indices.length;e._indices=new n(i);for(var r=0;r<i;r++)e._indices[r]=this._indices[r]}else e._indices=new n(this._indices)}else e._indices=null;return e.getRawIndex=e._indices?By:Ey,e},t.prototype.wrapMethod=function(t,e){var n=this[t];"function"==typeof n&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var t=n.apply(this,arguments);return e.apply(this,[t].concat(tt(arguments)))})},t.internalField=function(){function e(t,e,n,i){return bp(t[i],this._dimensionInfos[e])}Py={arrayRows:e,objectRows:function(t,e,n,i){return bp(t[e],this._dimensionInfos[e])},keyedColumns:e,original:function(t,e,n,i){var r=t&&(null==t.value?t:t.value);return!this._rawData.pure&&function(t){return G(t)&&!(t instanceof Array)}(t)&&(this.hasItemOption=!0),bp(r instanceof Array?r[i]:r,this._dimensionInfos[e])},typedArray:function(t,e,n,i){return t[i]}},Oy=function(t){var e=t._invertedIndicesMap;L(e,(function(n,i){var r=t._dimensionInfos[i].ordinalMeta;if(r){n=e[i]=new Jy(r.categories.length);for(var o=0;o<n.length;o++)n[o]=-1;for(o=0;o<t._count;o++)n[t.get(i,o)]=o}}))},Fy=function(t,e,n,i){var r,o=t._storageArr[e];return o&&(r=o[i],n&&n.categories.length&&(r=n.categories[r])),lr(r,null)},Ry=function(t){return t._rawCount>65535?Qy:tv},Ny=function(t,e,n,i){var r=$y[e.type],o=e.name;if(i){var a=t[o],s=a&&a.length;if(s!==n){for(var l=new r(n),u=0;u<s;u++)l[u]=a[u];t[o]=l}}else t[o]=new r(n)},Ey=function(t){return t},By=function(t){return t<this._count&&t>=0?this._indices[t]:-1},zy=function(t,e){var n=t._idList[e];return null==n&&null!=t._idDimIdx&&(n=Fy(t,t._idDimIdx,t._idOrdinalMeta,e)),null==n&&(n="e\0\0"+e),n},Hy=function(t){return z(t)||(t=null!=t?[t]:[]),t},function(t,e){for(var n=0;n<e.length;n++)t._dimensionInfos[e[n]]||console.error("Unkown dimension "+e[n])},Wy=function(e,n){var i=e.dimensions,r=new t(Zy(i,e.getDimensionInfo,e),e.hostModel);Yy(r,e);for(var o,a,s=r._storage={},l=e._storage,u=r._storageArr=[],h=0;h<i.length;h++){var c=i[h];l[c]&&(D(n,c)>=0?(s[c]=(o=l[c],a=void 0,(a=o.constructor)===Array?o.slice():new a(o)),r._rawExtent[c]=Gy(),r._extent[c]=null):s[c]=l[c],u.push(s[c]))}return r},Gy=function(){return[1/0,-1/0]},Uy=function(t){var e=ja(t),n=ja(this);e.seriesIndex=n.seriesIndex,e.dataIndex=n.dataIndex,e.dataType=n.dataType},Yy=function(t,e){L(ev.concat(e.__wrappedMethods||[]),(function(n){e.hasOwnProperty(n)&&(t[n]=e[n])})),t.__wrappedMethods=e.__wrappedMethods,L(nv,(function(n){t[n]=w(e[n])})),t._calculationInfo=M({},e._calculationInfo)},Vy=function(t,e){var n=t._nameList,i=t._idList,r=t._nameDimIdx,o=t._idDimIdx,a=n[e],s=i[e];if(null==a&&null!=r&&(n[e]=a=Fy(t,r,t._nameOrdinalMeta,e)),null==s&&null!=o&&(i[e]=s=Fy(t,o,t._idOrdinalMeta,e)),null==s&&null!=a){var l=t._nameRepeatCount,u=l[a]=(l[a]||0)+1;s=a,u>1&&(s+="__ec__"+u),i[e]=s}}}(),t}();function rv(t,e,n){$c(e)||(e=Jc(e)),n=n||{},t=(t||[]).slice();for(var i=(n.dimsDef||[]).slice(),r=lt(),o=lt(),a=[],s=function(t,e,n,i){var r=Math.max(t.dimensionsDetectedCount||1,e.length,n.length,i||0);return L(e,(function(t){var e;G(t)&&(e=t.dimsDef)&&(r=Math.max(r,e.length))})),r}(e,t,i,n.dimCount),l=0;l<s;l++){var u=i[l],h=i[l]=M({},G(u)?u:{name:u}),c=h.name,p=a[l]=new Xy;null!=c&&null==r.get(c)&&(p.name=p.displayName=c,r.set(c,l)),null!=h.type&&(p.type=h.type),null!=h.displayName&&(p.displayName=h.displayName)}var f=n.encodeDef;!f&&n.encodeDefaulter&&(f=n.encodeDefaulter(e,s));var d=lt(f);d.each((function(t,e){var n=er(t).slice();if(1===n.length&&!V(n[0])&&n[0]<0)d.set(e,!1);else{var i=d.set(e,[]);L(n,(function(t,n){var o=V(t)?r.get(t):t;null!=o&&o<s&&(i[n]=o,y(a[o],e,n))}))}}));var g=0;function y(t,e,n){null!=Vh.get(e)?t.otherDims[e]=n:(t.coordDim=e,t.coordDimIndex=n,o.set(e,!0))}L(t,(function(t){var e,n,i,r;if(V(t))e=t,r={};else{e=(r=t).name;var o=r.ordinalMeta;r.ordinalMeta=null,(r=w(r)).ordinalMeta=o,n=r.dimsDef,i=r.otherDims,r.name=r.coordDim=r.coordDimIndex=r.dimsDef=r.otherDims=null}var s=d.get(e);if(!1!==s){if(!(s=er(s)).length)for(var l=0;l<(n&&n.length||1);l++){for(;g<a.length&&null!=a[g].coordDim;)g++;g<a.length&&s.push(g++)}L(s,(function(t,o){var s=a[t];if(y(T(s,r),e,o),null==s.name&&n){var l=n[o];!G(l)&&(l={name:l}),s.name=s.displayName=l.name,s.defaultTooltip=l.defaultTooltip}i&&T(s.otherDims,i)}))}}));var v=n.generateCoord,m=n.generateCoordCount,_=null!=m;m=v?m||1:0;for(var x=v||"value",b=0;b<s;b++){null==(p=a[b]=a[b]||new Xy).coordDim&&(p.coordDim=ov(x,o,_),p.coordDimIndex=0,(!v||m<=0)&&(p.isExtraCoord=!0),m--),null==p.name&&(p.name=ov(p.coordDim,r,!1)),null!=p.type||nc(e,b)!==Zh&&(!p.isExtraCoord||null==p.otherDims.itemName&&null==p.otherDims.seriesName)||(p.type="ordinal")}return a}function ov(t,e,n){if(n||null!=e.get(t)){for(var i=0;null!=e.get(t+i);)i++;t+=i}return e.set(t,!0),t}function av(t,e){return rv((e=e||{}).coordDimensions||[],t,{dimsDef:e.dimensionsDefine||t.dimensionsDefine,encodeDef:e.encodeDefine||t.encodeDefine,dimCount:e.dimensionsCount,encodeDefaulter:e.encodeDefaulter,generateCoord:e.generateCoord,generateCoordCount:e.generateCoordCount})}var sv=function(t){this.coordSysDims=[],this.axisMap=lt(),this.categoryAxisMap=lt(),this.coordSysName=t};var lv={cartesian2d:function(t,e,n,i){var r=t.getReferringComponents("xAxis",gr).models[0],o=t.getReferringComponents("yAxis",gr).models[0];e.coordSysDims=["x","y"],n.set("x",r),n.set("y",o),uv(r)&&(i.set("x",r),e.firstCategoryDimIndex=0),uv(o)&&(i.set("y",o),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=1))},singleAxis:function(t,e,n,i){var r=t.getReferringComponents("singleAxis",gr).models[0];e.coordSysDims=["single"],n.set("single",r),uv(r)&&(i.set("single",r),e.firstCategoryDimIndex=0)},polar:function(t,e,n,i){var r=t.getReferringComponents("polar",gr).models[0],o=r.findAxisModel("radiusAxis"),a=r.findAxisModel("angleAxis");e.coordSysDims=["radius","angle"],n.set("radius",o),n.set("angle",a),uv(o)&&(i.set("radius",o),e.firstCategoryDimIndex=0),uv(a)&&(i.set("angle",a),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=1))},geo:function(t,e,n,i){e.coordSysDims=["lng","lat"]},parallel:function(t,e,n,i){var r=t.ecModel,o=r.getComponent("parallel",t.get("parallelIndex")),a=e.coordSysDims=o.dimensions.slice();L(o.parallelAxisIndex,(function(t,o){var s=r.getComponent("parallelAxis",t),l=a[o];n.set(l,s),uv(s)&&(i.set(l,s),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=o))}))}};function uv(t){return"category"===t.get("type")}function hv(t,e,n){var i,r,o,a,s=(n=n||{}).byIndex,l=n.stackedCoordDimension,u=!(!t||!t.get("stack"));if(L(e,(function(t,n){V(t)&&(e[n]=t={name:t}),u&&!t.isExtraCoord&&(s||i||!t.ordinalMeta||(i=t),r||"ordinal"===t.type||"time"===t.type||l&&l!==t.coordDim||(r=t))})),!r||s||i||(s=!0),r){o="__\0ecstackresult",a="__\0ecstackedover",i&&(i.createInvertedIndices=!0);var h=r.coordDim,c=r.type,p=0;L(e,(function(t){t.coordDim===h&&p++})),e.push({name:o,coordDim:h,coordDimIndex:p,type:c,isExtraCoord:!0,isCalculationCoord:!0}),p++,e.push({name:a,coordDim:a,coordDimIndex:p,type:c,isExtraCoord:!0,isCalculationCoord:!0})}return{stackedDimension:r&&r.name,stackedByDimension:i&&i.name,isStackedByIndex:s,stackedOverDimension:a,stackResultDimension:o}}function cv(t,e){return!!e&&e===t.getCalculationInfo("stackedDimension")}function pv(t,e){return cv(t,e)?t.getCalculationInfo("stackResultDimension"):e}function fv(t,e,n){n=n||{},$c(t)||(t=Jc(t));var i,r=e.get("coordinateSystem"),o=xc.get(r),a=function(t){var e=t.get("coordinateSystem"),n=new sv(e),i=lv[e];if(i)return i(t,n,n.axisMap,n.categoryAxisMap),n}(e);a&&a.coordSysDims&&(i=P(a.coordSysDims,(function(t){var e={name:t},n=a.axisMap.get(t);if(n){var i=n.get("type");e.type=function(t){return"category"===t?"ordinal":"time"===t?"time":"float"}(i)}return e}))),i||(i=o&&(o.getDimensionsInfo?o.getDimensionsInfo():o.dimensions.slice())||["x","y"]);var s,l,u=n.useEncodeDefaulter,h=av(t,{coordDimensions:i,generateCoord:n.generateCoord,encodeDefaulter:F(u)?u:u?B(Jh,i,e):null});a&&L(h,(function(t,e){var i=t.coordDim,r=a.categoryAxisMap.get(i);r&&(null==s&&(s=e),t.ordinalMeta=r.getOrdinalMeta(),n.createInvertedIndices&&(t.createInvertedIndices=!0)),null!=t.otherDims.itemName&&(l=!0)})),l||null==s||(h[s].otherDims.itemName=0);var c=hv(e,h),p=new iv(h,e);p.setCalculationInfo(c);var f=null!=s&&function(t){if(t.sourceFormat===Hh){var e=function(t){var e=0;for(;e<t.length&&null==t[e];)e++;return t[e]}(t.data||[]);return null!=e&&!z(rr(e))}}(t)?function(t,e,n,i){return i===s?n:this.defaultDimValueGetter(t,e,n,i)}:null;return p.hasItemOption=!1,p.initData(t,null,f),p}var dv=function(){function t(t){this._setting=t||{},this._extent=[1/0,-1/0]}return t.prototype.getSetting=function(t){return this._setting[t]},t.prototype.unionExtent=function(t){var e=this._extent;t[0]<e[0]&&(e[0]=t[0]),t[1]>e[1]&&(e[1]=t[1])},t.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},t.prototype.getExtent=function(){return this._extent.slice()},t.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(e)||(n[1]=e)},t.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},t.prototype.isBlank=function(){return this._isBlank},t.prototype.setBlank=function(t){this._isBlank=t},t}();Ir(dv);var gv=function(){function t(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication}return t.createByAxisModel=function(e){var n=e.option,i=n.data,r=i&&P(i,yv);return new t({categories:r,needCollect:!r,deduplication:!1!==n.dedplication})},t.prototype.getOrdinal=function(t){return this._getOrCreateMap().get(t)},t.prototype.parseAndCollect=function(t){var e,n=this._needCollect;if("string"!=typeof t&&!n)return t;if(n&&!this._deduplication)return e=this.categories.length,this.categories[e]=t,e;var i=this._getOrCreateMap();return null==(e=i.get(t))&&(n?(e=this.categories.length,this.categories[e]=t,i.set(t,e)):e=NaN),e},t.prototype._getOrCreateMap=function(){return this._map||(this._map=lt(this.categories))},t}();function yv(t){return G(t)&&null!=t.value?t.value:t+""}var vv=Bi;function mv(t,e,n,i){var r={},o=t[1]-t[0],a=r.interval=qi(o/e,!0);null!=n&&a<n&&(a=r.interval=n),null!=i&&a>i&&(a=r.interval=i);var s=r.intervalPrecision=_v(a);return function(t,e){!isFinite(t[0])&&(t[0]=e[0]),!isFinite(t[1])&&(t[1]=e[1]),xv(t,0,e),xv(t,1,e),t[0]>t[1]&&(t[0]=t[1])}(r.niceTickExtent=[vv(Math.ceil(t[0]/a)*a,s),vv(Math.floor(t[1]/a)*a,s)],t),r}function _v(t){return zi(t)+2}function xv(t,e,n){t[e]=Math.max(Math.min(t[e],n[1]),n[0])}function bv(t,e){return t>=e[0]&&t<=e[1]}function wv(t,e){return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])}function Sv(t,e){return t*(e[1]-e[0])+e[0]}var Mv=function(t){function e(e){var n=t.call(this,e)||this;n.type="ordinal";var i=n.getSetting("ordinalMeta");return i||(i=new gv({})),z(i)&&(i=new gv({categories:P(i,(function(t){return G(t)?t.value:t}))})),n._ordinalMeta=i,n._extent=n.getSetting("extent")||[0,i.categories.length-1],n}return n(e,t),e.prototype.parse=function(t){return"string"==typeof t?this._ordinalMeta.getOrdinal(t):Math.round(t)},e.prototype.contain=function(t){return bv(t=this.parse(t),this._extent)&&null!=this._ordinalMeta.categories[t]},e.prototype.normalize=function(t){return wv(t=this._getTickNumber(this.parse(t)),this._extent)},e.prototype.scale=function(t){return t=Math.round(Sv(t,this._extent)),this.getRawOrdinalNumber(t)},e.prototype.getTicks=function(){for(var t=[],e=this._extent,n=e[0];n<=e[1];)t.push({value:n}),n++;return t},e.prototype.getMinorTicks=function(t){},e.prototype.setSortInfo=function(t){if(null!=t){for(var e=t.ordinalNumbers,n=this._ordinalNumbersByTick=[],i=this._ticksByOrdinalNumber=[],r=0,o=this._ordinalMeta.categories.length,a=Math.min(o,e.length);r<a;++r){var s=e[r];n[r]=s,i[s]=r}for(var l=0;r<o;++r){for(;null!=i[l];)l++;n.push(l),i[l]=r}}else this._ordinalNumbersByTick=this._ticksByOrdinalNumber=null},e.prototype._getTickNumber=function(t){var e=this._ticksByOrdinalNumber;return e&&t>=0&&t<e.length?e[t]:t},e.prototype.getRawOrdinalNumber=function(t){var e=this._ordinalNumbersByTick;return e&&t>=0&&t<e.length?e[t]:t},e.prototype.getLabel=function(t){if(!this.isBlank()){var e=this.getRawOrdinalNumber(t.value),n=this._ordinalMeta.categories[e];return null==n?"":n+""}},e.prototype.count=function(){return this._extent[1]-this._extent[0]+1},e.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},e.prototype.isInExtentRange=function(t){return t=this._getTickNumber(t),this._extent[0]<=t&&this._extent[1]>=t},e.prototype.getOrdinalMeta=function(){return this._ordinalMeta},e.prototype.niceTicks=function(){},e.prototype.niceExtent=function(){},e.type="ordinal",e}(dv);dv.registerClass(Mv);var Tv=Bi,Cv=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="interval",e._interval=0,e._intervalPrecision=2,e}return n(e,t),e.prototype.parse=function(t){return t},e.prototype.contain=function(t){return bv(t,this._extent)},e.prototype.normalize=function(t){return wv(t,this._extent)},e.prototype.scale=function(t){return Sv(t,this._extent)},e.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=parseFloat(t)),isNaN(e)||(n[1]=parseFloat(e))},e.prototype.unionExtent=function(t){var e=this._extent;t[0]<e[0]&&(e[0]=t[0]),t[1]>e[1]&&(e[1]=t[1]),this.setExtent(e[0],e[1])},e.prototype.getInterval=function(){return this._interval},e.prototype.setInterval=function(t){this._interval=t,this._niceExtent=this._extent.slice(),this._intervalPrecision=_v(t)},e.prototype.getTicks=function(t){var e=this._interval,n=this._extent,i=this._niceExtent,r=this._intervalPrecision,o=[];if(!e)return o;n[0]<i[0]&&(t?o.push({value:Tv(i[0]-e,r)}):o.push({value:n[0]}));for(var a=i[0];a<=i[1]&&(o.push({value:a}),(a=Tv(a+e,r))!==o[o.length-1].value);)if(o.length>1e4)return[];var s=o.length?o[o.length-1].value:i[1];return n[1]>s&&(t?o.push({value:Tv(s+e,r)}):o.push({value:n[1]})),o},e.prototype.getMinorTicks=function(t){for(var e=this.getTicks(!0),n=[],i=this.getExtent(),r=1;r<e.length;r++){for(var o=e[r],a=e[r-1],s=0,l=[],u=(o.value-a.value)/t;s<t-1;){var h=Tv(a.value+(s+1)*u);h>i[0]&&h<i[1]&&l.push(h),s++}n.push(l)}return n},e.prototype.getLabel=function(t,e){if(null==t)return"";var n=e&&e.precision;return null==n?n=zi(t.value)||0:"auto"===n&&(n=this._intervalPrecision),_h(Tv(t.value,n,!0))},e.prototype.niceTicks=function(t,e,n){t=t||5;var i=this._extent,r=i[1]-i[0];if(isFinite(r)){r<0&&(r=-r,i.reverse());var o=mv(i,t,e,n);this._intervalPrecision=o.intervalPrecision,this._interval=o.interval,this._niceExtent=o.niceTickExtent}},e.prototype.niceExtent=function(t){var e=this._extent;if(e[0]===e[1])if(0!==e[0]){var n=e[0];t.fixMax||(e[1]+=n/2),e[0]-=n/2}else e[1]=1;var i=e[1]-e[0];isFinite(i)||(e[0]=0,e[1]=1),this.niceTicks(t.splitNumber,t.minInterval,t.maxInterval);var r=this._interval;t.fixMin||(e[0]=Tv(Math.floor(e[0]/r)*r)),t.fixMax||(e[1]=Tv(Math.ceil(e[1]/r)*r))},e.type="interval",e}(dv);dv.registerClass(Cv);var Dv="undefined"!=typeof Float32Array?Float32Array:Array;function Iv(t){return t.get("stack")||"__ec_stack_"+t.seriesIndex}function Av(t){return t.dim+t.index}function kv(t,e){var n=[];return e.eachSeriesByType(t,(function(t){Nv(t)&&!Ev(t)&&n.push(t)})),n}function Lv(t){var e=function(t){var e={};L(t,(function(t){var n=t.coordinateSystem.getBaseAxis();if("time"===n.type||"value"===n.type)for(var i=t.getData(),r=n.dim+"_"+n.index,o=i.mapDimension(n.dim),a=0,s=i.count();a<s;++a){var l=i.get(o,a);e[r]?e[r].push(l):e[r]=[l]}}));var n={};for(var i in e)if(e.hasOwnProperty(i)){var r=e[i];if(r){r.sort((function(t,e){return t-e}));for(var o=null,a=1;a<r.length;++a){var s=r[a]-r[a-1];s>0&&(o=null===o?s:Math.min(o,s))}n[i]=o}}return n}(t),n=[];return L(t,(function(t){var i,r=t.coordinateSystem.getBaseAxis(),o=r.getExtent();if("category"===r.type)i=r.getBandWidth();else if("value"===r.type||"time"===r.type){var a=r.dim+"_"+r.index,s=e[a],l=Math.abs(o[1]-o[0]),u=r.scale.getExtent(),h=Math.abs(u[1]-u[0]);i=s?l/h*s:l}else{var c=t.getData();i=Math.abs(o[1]-o[0])/c.count()}var p=Ei(t.get("barWidth"),i),f=Ei(t.get("barMaxWidth"),i),d=Ei(t.get("barMinWidth")||1,i),g=t.get("barGap"),y=t.get("barCategoryGap");n.push({bandWidth:i,barWidth:p,barMaxWidth:f,barMinWidth:d,barGap:g,barCategoryGap:y,axisKey:Av(r),stackId:Iv(t)})})),function(t){var e={};L(t,(function(t,n){var i=t.axisKey,r=t.bandWidth,o=e[i]||{bandWidth:r,remainedWidth:r,autoWidthCount:0,categoryGap:null,gap:"20%",stacks:{}},a=o.stacks;e[i]=o;var s=t.stackId;a[s]||o.autoWidthCount++,a[s]=a[s]||{width:0,maxWidth:0};var l=t.barWidth;l&&!a[s].width&&(a[s].width=l,l=Math.min(o.remainedWidth,l),o.remainedWidth-=l);var u=t.barMaxWidth;u&&(a[s].maxWidth=u);var h=t.barMinWidth;h&&(a[s].minWidth=h);var c=t.barGap;null!=c&&(o.gap=c);var p=t.barCategoryGap;null!=p&&(o.categoryGap=p)}));var n={};return L(e,(function(t,e){n[e]={};var i=t.stacks,r=t.bandWidth,o=t.categoryGap;if(null==o){var a=N(i).length;o=Math.max(35-4*a,15)+"%"}var s=Ei(o,r),l=Ei(t.gap,1),u=t.remainedWidth,h=t.autoWidthCount,c=(u-s)/(h+(h-1)*l);c=Math.max(c,0),L(i,(function(t){var e=t.maxWidth,n=t.minWidth;if(t.width){i=t.width;e&&(i=Math.min(i,e)),n&&(i=Math.max(i,n)),t.width=i,u-=i+l*i,h--}else{var i=c;e&&e<i&&(i=Math.min(e,u)),n&&n>i&&(i=n),i!==c&&(t.width=i,u-=i+l*i,h--)}})),c=(u-s)/(h+(h-1)*l),c=Math.max(c,0);var p,f=0;L(i,(function(t,e){t.width||(t.width=c),p=t,f+=t.width*(1+l)})),p&&(f-=p.width*l);var d=-f/2;L(i,(function(t,i){n[e][i]=n[e][i]||{bandWidth:r,offset:d,width:t.width},d+=t.width*(1+l)}))})),n}(n)}function Pv(t,e,n){if(t&&e){var i=t[Av(e)];return null!=i&&null!=n?i[Iv(n)]:i}}function Ov(t,e){var n=kv(t,e),i=Lv(n),r={};L(n,(function(t){var e=t.getData(),n=t.coordinateSystem,o=n.getBaseAxis(),a=Iv(t),s=i[Av(o)][a],l=s.offset,u=s.width,h=n.getOtherAxis(o),c=t.get("barMinHeight")||0;r[a]=r[a]||[],e.setLayout({bandWidth:s.bandWidth,offset:l,size:u});for(var p=e.mapDimension(h.dim),f=e.mapDimension(o.dim),d=cv(e,p),g=h.isHorizontal(),y=Bv(o,h),v=0,m=e.count();v<m;v++){var _=e.get(p,v),x=e.get(f,v),b=_>=0?"p":"n",w=y;d&&(r[a][x]||(r[a][x]={p:y,n:y}),w=r[a][x][b]);var S,M=void 0,T=void 0,C=void 0,D=void 0;if(g)M=w,T=(S=n.dataToPoint([_,x]))[1]+l,C=S[0]-y,D=u,Math.abs(C)<c&&(C=(C<0?-1:1)*c),isNaN(C)||d&&(r[a][x][b]+=C);else M=(S=n.dataToPoint([x,_]))[0]+l,T=w,C=u,D=S[1]-y,Math.abs(D)<c&&(D=(D<=0?-1:1)*c),isNaN(D)||d&&(r[a][x][b]+=D);e.setItemLayout(v,{x:M,y:T,width:C,height:D})}}))}var Rv={seriesType:"bar",plan:jp(),reset:function(t){if(Nv(t)&&Ev(t)){var e=t.getData(),n=t.coordinateSystem,i=n.master.getRect(),r=n.getBaseAxis(),o=n.getOtherAxis(r),a=e.mapDimension(o.dim),s=e.mapDimension(r.dim),l=o.isHorizontal(),u=l?0:1,h=Pv(Lv([t]),r,t).width;return h>.5||(h=.5),{progress:function(t,e){for(var c,p=t.count,f=new Dv(2*p),d=new Dv(2*p),g=new Dv(p),y=[],v=[],m=0,_=0;null!=(c=t.next());)v[u]=e.get(a,c),v[1-u]=e.get(s,c),y=n.dataToPoint(v,null,y),d[m]=l?i.x+i.width:y[0],f[m++]=y[0],d[m]=l?y[1]:i.y+i.height,f[m++]=y[1],g[_++]=c;e.setLayout({largePoints:f,largeDataIndices:g,largeBackgroundPoints:d,barWidth:h,valueAxisStart:Bv(r,o),backgroundStart:l?i.x:i.y,valueAxisHorizontal:l})}}}}};function Nv(t){return t.coordinateSystem&&"cartesian2d"===t.coordinateSystem.type}function Ev(t){return t.pipelineContext&&t.pipelineContext.large}function Bv(t,e,n){return e.toGlobalCoord(e.dataToCoord("log"===e.type?1:0))}var zv=function(t){function e(e){var n=t.call(this,e)||this;return n.type="time",n}return n(e,t),e.prototype.getLabel=function(t){var e=this.getSetting("useUTC");return nh(t.value,Ku[function(t){switch(t){case"year":case"month":return"day";case"millisecond":return"millisecond";default:return"second"}}(th(this._minLevelUnit))]||Ku.second,e,this.getSetting("locale"))},e.prototype.getFormattedLabel=function(t,e,n){var i=this.getSetting("useUTC");return function(t,e,n,i,r){var o=null;if("string"==typeof n)o=n;else if("function"==typeof n)o=n(t.value,e,{level:t.level});else{var a=M({},ju);if(t.level>0)for(var s=0;s<$u.length;++s)a[$u[s]]="{primary|"+a[$u[s]]+"}";var l=n?!1===n.inherit?n:T(n,a):a,u=ih(t.value,r);if(l[u])o=l[u];else if(l.inherit){for(s=Qu.indexOf(u)-1;s>=0;--s)if(l[u]){o=l[u];break}o=o||a.none}if(z(o)){var h=null==t.level?0:t.level>=0?t.level:o.length+t.level;o=o[h=Math.min(h,o.length-1)]}}return nh(new Date(t.value),o,r,i)}(t,e,n,this.getSetting("locale"),i)},e.prototype.getTicks=function(t){var e=this._interval,n=this._extent,i=[];if(!e)return i;i.push({value:n[0],level:0});var r=this.getSetting("useUTC"),o=function(t,e,n,i){var r=1e4,o=Qu,a=0;function s(t,e,n,r,o,a,s){for(var l=new Date(e),u=e,h=l[r]();u<n&&u<=i[1];)s.push({value:u}),h+=t,l[o](h),u=l.getTime();s.push({value:u,notAdd:!0})}function l(t,r,o){var a=[],l=!r.length;if(!function(t,e,n,i){var r=Ui(e),o=Ui(n),a=function(t){return rh(r,t,i)===rh(o,t,i)},s=function(){return a("year")},l=function(){return s()&&a("month")},u=function(){return l()&&a("day")},h=function(){return u()&&a("hour")},c=function(){return h()&&a("minute")},p=function(){return c()&&a("second")},f=function(){return p()&&a("millisecond")};switch(t){case"year":return s();case"month":return l();case"day":return u();case"hour":return h();case"minute":return c();case"second":return p();case"millisecond":return f()}}(th(t),i[0],i[1],n)){l&&(r=[{value:Yv(new Date(i[0]),t,n)},{value:i[1]}]);for(var u=0;u<r.length-1;u++){var h=r[u].value,c=r[u+1].value;if(h!==c){var p=void 0,f=void 0,d=void 0,g=!1;switch(t){case"year":p=Math.max(1,Math.round(e/Xu/365)),f=oh(n),d=ph(n);break;case"half-year":case"quarter":case"month":p=Hv(e),f=ah(n),d=fh(n);break;case"week":case"half-week":case"day":p=Vv(e),f=sh(n),d=dh(n),g=!0;break;case"half-day":case"quarter-day":case"hour":p=Wv(e),f=lh(n),d=gh(n);break;case"minute":p=Gv(e,!0),f=uh(n),d=yh(n);break;case"second":p=Gv(e,!1),f=hh(n),d=vh(n);break;case"millisecond":p=Uv(e),f=ch(n),d=mh(n)}s(p,h,c,f,d,g,a),"year"===t&&o.length>1&&0===u&&o.unshift({value:o[0].value-p})}}for(u=0;u<a.length;u++)o.push(a[u]);return a}}for(var u=[],h=[],c=0,p=0,f=0;f<o.length&&a++<r;++f){var d=th(o[f]);if(eh(o[f]))if(l(o[f],u[u.length-1]||[],h),d!==(o[f+1]?th(o[f+1]):null)){if(h.length){p=c,h.sort((function(t,e){return t.value-e.value}));for(var g=[],y=0;y<h.length;++y){var v=h[y].value;0!==y&&h[y-1].value===v||(g.push(h[y]),v>=i[0]&&v<=i[1]&&c++)}var m=(i[1]-i[0])/e;if(c>1.5*m&&p>m/1.5)break;if(u.push(g),c>m||t===o[f])break}h=[]}}0;var _=R(P(u,(function(t){return R(t,(function(t){return t.value>=i[0]&&t.value<=i[1]&&!t.notAdd}))})),(function(t){return t.length>0})),x=[],b=_.length-1;for(f=0;f<_.length;++f)for(var w=_[f],S=0;S<w.length;++S)x.push({value:w[S].value,level:b-f});x.sort((function(t,e){return t.value-e.value}));var M=[];for(f=0;f<x.length;++f)0!==f&&x[f].value===x[f-1].value||M.push(x[f]);return M}(this._minLevelUnit,this._approxInterval,r,n);return(i=i.concat(o)).push({value:n[1],level:0}),i},e.prototype.niceExtent=function(t){var e=this._extent;if(e[0]===e[1]&&(e[0]-=Xu,e[1]+=Xu),e[1]===-1/0&&e[0]===1/0){var n=new Date;e[1]=+new Date(n.getFullYear(),n.getMonth(),n.getDate()),e[0]=e[1]-Xu}this.niceTicks(t.splitNumber,t.minInterval,t.maxInterval)},e.prototype.niceTicks=function(t,e,n){t=t||10;var i=this._extent,r=i[1]-i[0];this._approxInterval=r/t,null!=e&&this._approxInterval<e&&(this._approxInterval=e),null!=n&&this._approxInterval>n&&(this._approxInterval=n);var o=Fv.length,a=Math.min(function(t,e,n,i){for(;n<i;){var r=n+i>>>1;t[r][1]<e?n=r+1:i=r}return n}(Fv,this._approxInterval,0,o),o-1);this._interval=Fv[a][1],this._minLevelUnit=Fv[Math.max(a-1,0)][0]},e.prototype.parse=function(t){return"number"==typeof t?t:+Ui(t)},e.prototype.contain=function(t){return bv(this.parse(t),this._extent)},e.prototype.normalize=function(t){return wv(this.parse(t),this._extent)},e.prototype.scale=function(t){return Sv(t,this._extent)},e.type="time",e}(Cv),Fv=[["second",Gu],["minute",Uu],["hour",Yu],["quarter-day",216e5],["half-day",432e5],["day",10368e4],["half-week",3024e5],["week",6048e5],["month",26784e5],["quarter",8208e6],["half-year",qu/2],["year",qu]];function Vv(t,e){return(t/=Xu)>16?16:t>7.5?7:t>3.5?4:t>1.5?2:1}function Hv(t){return(t/=2592e6)>6?6:t>3?3:t>2?2:1}function Wv(t){return(t/=Yu)>12?12:t>6?6:t>3.5?4:t>2?2:1}function Gv(t,e){return(t/=e?Uu:Gu)>30?30:t>20?20:t>15?15:t>10?10:t>5?5:t>2?2:1}function Uv(t){return qi(t,!0)}function Yv(t,e,n){var i=new Date(t);switch(th(e)){case"year":case"month":i[fh(n)](0);case"day":i[dh(n)](1);case"hour":i[gh(n)](0);case"minute":i[yh(n)](0);case"second":i[vh(n)](0),i[mh(n)](0)}return i.getTime()}dv.registerClass(zv);var Xv=dv.prototype,qv=Cv.prototype,jv=zi,Zv=Bi,Kv=Math.floor,$v=Math.ceil,Qv=Math.pow,Jv=Math.log,tm=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="log",e.base=10,e._originalScale=new Cv,e._interval=0,e}return n(e,t),e.prototype.getTicks=function(t){var e=this._originalScale,n=this._extent,i=e.getExtent();return P(qv.getTicks.call(this,t),(function(t){var e=t.value,r=Bi(Qv(this.base,e));return r=e===n[0]&&this._fixMin?nm(r,i[0]):r,{value:r=e===n[1]&&this._fixMax?nm(r,i[1]):r}}),this)},e.prototype.setExtent=function(t,e){var n=this.base;t=Jv(t)/Jv(n),e=Jv(e)/Jv(n),qv.setExtent.call(this,t,e)},e.prototype.getExtent=function(){var t=this.base,e=Xv.getExtent.call(this);e[0]=Qv(t,e[0]),e[1]=Qv(t,e[1]);var n=this._originalScale.getExtent();return this._fixMin&&(e[0]=nm(e[0],n[0])),this._fixMax&&(e[1]=nm(e[1],n[1])),e},e.prototype.unionExtent=function(t){this._originalScale.unionExtent(t);var e=this.base;t[0]=Jv(t[0])/Jv(e),t[1]=Jv(t[1])/Jv(e),Xv.unionExtent.call(this,t)},e.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},e.prototype.niceTicks=function(t){t=t||10;var e=this._extent,n=e[1]-e[0];if(!(n===1/0||n<=0)){var i=Yi(n);for(t/n*i<=.5&&(i*=10);!isNaN(i)&&Math.abs(i)<1&&Math.abs(i)>0;)i*=10;var r=[Bi($v(e[0]/i)*i),Bi(Kv(e[1]/i)*i)];this._interval=i,this._niceExtent=r}},e.prototype.niceExtent=function(t){qv.niceExtent.call(this,t),this._fixMin=t.fixMin,this._fixMax=t.fixMax},e.prototype.parse=function(t){return t},e.prototype.contain=function(t){return bv(t=Jv(t)/Jv(this.base),this._extent)},e.prototype.normalize=function(t){return wv(t=Jv(t)/Jv(this.base),this._extent)},e.prototype.scale=function(t){return t=Sv(t,this._extent),Qv(this.base,t)},e.type="log",e}(dv),em=tm.prototype;function nm(t,e){return Zv(t,jv(e))}em.getMinorTicks=qv.getMinorTicks,em.getLabel=qv.getLabel,dv.registerClass(tm);var im=function(){function t(t,e,n){this._prepareParams(t,e,n)}return t.prototype._prepareParams=function(t,e,n){n[1]<n[0]&&(n=[NaN,NaN]),this._dataMin=n[0],this._dataMax=n[1];var i=this._isOrdinal="ordinal"===t.type;this._needCrossZero=e.getNeedCrossZero&&e.getNeedCrossZero();var r=this._modelMinRaw=e.get("min",!0);F(r)?this._modelMinNum=am(t,r({min:n[0],max:n[1]})):"dataMin"!==r&&(this._modelMinNum=am(t,r));var o=this._modelMaxRaw=e.get("max",!0);if(F(o)?this._modelMaxNum=am(t,o({min:n[0],max:n[1]})):"dataMax"!==o&&(this._modelMaxNum=am(t,o)),i)this._axisDataLen=e.getCategories().length;else{var a=e.get("boundaryGap"),s=z(a)?a:[a||0,a||0];"boolean"==typeof s[0]||"boolean"==typeof s[1]?this._boundaryGapInner=[0,0]:this._boundaryGapInner=[On(s[0],1),On(s[1],1)]}},t.prototype.calculate=function(){var t=this._isOrdinal,e=this._dataMin,n=this._dataMax,i=this._axisDataLen,r=this._boundaryGapInner,o=t?null:n-e||Math.abs(e),a="dataMin"===this._modelMinRaw?e:this._modelMinNum,s="dataMax"===this._modelMaxRaw?n:this._modelMaxNum,l=null!=a,u=null!=s;null==a&&(a=t?i?0:NaN:e-r[0]*o),null==s&&(s=t?i?i-1:NaN:n+r[1]*o),(null==a||!isFinite(a))&&(a=NaN),(null==s||!isFinite(s))&&(s=NaN),a>s&&(a=NaN,s=NaN);var h=K(a)||K(s)||t&&!i;this._needCrossZero&&(a>0&&s>0&&!l&&(a=0),a<0&&s<0&&!u&&(s=0));var c=this._determinedMin,p=this._determinedMax;return null!=c&&(a=c,l=!0),null!=p&&(s=p,u=!0),{min:a,max:s,minFixed:l,maxFixed:u,isBlank:h}},t.prototype.modifyDataMinMax=function(t,e){this[om[t]]=e},t.prototype.setDeterminedMinMax=function(t,e){var n=rm[t];this[n]=e},t.prototype.freeze=function(){this.frozen=!0},t}(),rm={min:"_determinedMin",max:"_determinedMax"},om={min:"_dataMin",max:"_dataMax"};function am(t,e){return null==e?null:K(e)?NaN:t.parse(e)}function sm(t,e){var n=t.type,i=function(t,e,n){var i=t.rawExtentInfo;return i||(i=new im(t,e,n),t.rawExtentInfo=i,i)}(t,e,t.getExtent()).calculate();t.setBlank(i.isBlank);var r=i.min,o=i.max,a=e.ecModel;if(a&&"time"===n){var s=kv("bar",a),l=!1;if(L(s,(function(t){l=l||t.getBaseAxis()===e.axis})),l){var u=Lv(s),h=function(t,e,n,i){var r=n.axis.getExtent(),o=r[1]-r[0],a=Pv(i,n.axis);if(void 0===a)return{min:t,max:e};var s=1/0;L(a,(function(t){s=Math.min(t.offset,s)}));var l=-1/0;L(a,(function(t){l=Math.max(t.offset+t.width,l)})),s=Math.abs(s),l=Math.abs(l);var u=s+l,h=e-t,c=h/(1-(s+l)/o)-h;return{min:t-=c*(s/u),max:e+=c*(l/u)}}(r,o,e,u);r=h.min,o=h.max}}return{extent:[r,o],fixMin:i.minFixed,fixMax:i.maxFixed}}function lm(t,e){var n=sm(t,e),i=n.extent,r=e.get("splitNumber");t instanceof tm&&(t.base=e.get("logBase"));var o=t.type;t.setExtent(i[0],i[1]),t.niceExtent({splitNumber:r,fixMin:n.fixMin,fixMax:n.fixMax,minInterval:"interval"===o||"time"===o?e.get("minInterval"):null,maxInterval:"interval"===o||"time"===o?e.get("maxInterval"):null});var a=e.get("interval");null!=a&&t.setInterval&&t.setInterval(a)}function um(t,e){if(e=e||t.get("type"))switch(e){case"category":return new Mv({ordinalMeta:t.getOrdinalMeta?t.getOrdinalMeta():t.getCategories(),extent:[1/0,-1/0]});case"time":return new zv({locale:t.ecModel.getLocaleModel(),useUTC:t.ecModel.get("useUTC")});default:return new(dv.getClass(e)||Cv)}}function hm(t){var e,n,i=t.getLabelModel().get("formatter"),r="category"===t.type?t.scale.getExtent()[0]:null;return"time"===t.scale.type?(n=i,function(e,i){return t.scale.getFormattedLabel(e,i,n)}):"string"==typeof i?function(e){return function(n){var i=t.scale.getLabel(n);return e.replace("{value}",null!=i?i:"")}}(i):"function"==typeof i?(e=i,function(n,i){return null!=r&&(i=n.value-r),e(function(t,e){return"category"===t.type?t.scale.getLabel(e):e.value}(t,n),i,null!=n.level?{level:n.level}:null)}):function(e){return t.scale.getLabel(e)}}function cm(t,e){var n=e*Math.PI/180,i=t.width,r=t.height,o=i*Math.abs(Math.cos(n))+Math.abs(r*Math.sin(n)),a=i*Math.abs(Math.sin(n))+Math.abs(r*Math.cos(n));return new Sn(t.x,t.y,o,a)}function pm(t){var e=t.get("interval");return null==e?"auto":e}function fm(t){return"category"===t.type&&0===pm(t.getLabelModel())}var dm=function(){function t(){}return t.prototype.getNeedCrossZero=function(){return!this.option.scale},t.prototype.getCoordSysModel=function(){},t}();var gm={isDimensionStacked:cv,enableDataStack:hv,getStackedDimension:pv};var ym=Object.freeze({__proto__:null,createList:function(t){return fv(t.getSource(),t)},getLayoutRect:Lh,dataStack:gm,createScale:function(t,e){var n=e;e instanceof Ou||(n=new Ou(e));var i=um(n);return i.setExtent(t[0],t[1]),lm(i,n),i},mixinAxisModelCommonMethods:function(t){A(t,dm)},getECData:ja,createTextStyle:function(t,e){return gu(t,null,null,"normal"!==(e=e||{}).state)},createDimensions:av,createSymbol:Ed,enableHoverEmphasis:As});function vm(t,e){return Math.abs(t-e)<1e-8}function mm(t,e,n){var i=0,r=t[0];if(!r)return!1;for(var o=1;o<t.length;o++){var a=t[o];i+=ga(r[0],r[1],a[0],a[1],e,n),r=a}var s=t[0];return vm(r[0],s[0])&&vm(r[1],s[1])||(i+=ga(r[0],r[1],s[0],s[1],e,n)),0!==i}var _m=function(){function t(t,e,n){if(this.name=t,this.geometries=e,n)n=[n[0],n[1]];else{var i=this.getBoundingRect();n=[i.x+i.width/2,i.y+i.height/2]}this.center=n}return t.prototype.getBoundingRect=function(){var t=this._rect;if(t)return t;for(var e=Number.MAX_VALUE,n=[e,e],i=[-e,-e],r=[],o=[],a=this.geometries,s=0;s<a.length;s++){if("polygon"===a[s].type)No(a[s].exterior,r,o),Lt(n,n,r),Pt(i,i,o)}return 0===s&&(n[0]=n[1]=i[0]=i[1]=0),this._rect=new Sn(n[0],n[1],i[0]-n[0],i[1]-n[1])},t.prototype.contain=function(t){var e=this.getBoundingRect(),n=this.geometries;if(!e.contain(t[0],t[1]))return!1;t:for(var i=0,r=n.length;i<r;i++)if("polygon"===n[i].type){var o=n[i].exterior,a=n[i].interiors;if(mm(o,t[0],t[1])){for(var s=0;s<(a?a.length:0);s++)if(mm(a[s],t[0],t[1]))continue t;return!0}}return!1},t.prototype.transformTo=function(t,e,n,i){var r=this.getBoundingRect(),o=r.width/r.height;n?i||(i=n/o):n=o*i;for(var a=new Sn(t,e,n,i),s=r.calculateTransform(a),l=this.geometries,u=0;u<l.length;u++)if("polygon"===l[u].type){for(var h=l[u].exterior,c=l[u].interiors,p=0;p<h.length;p++)kt(h[p],h[p],s);for(var f=0;f<(c?c.length:0);f++)for(p=0;p<c[f].length;p++)kt(c[f][p],c[f][p],s)}(r=this._rect).copy(a),this.center=[r.x+r.width/2,r.y+r.height/2]},t.prototype.cloneShallow=function(e){null==e&&(e=this.name);var n=new t(e,this.geometries,this.center);return n._rect=this._rect,n.transformTo=null,n},t}();function xm(t,e,n){for(var i=[],r=e[0],o=e[1],a=0;a<t.length;a+=2){var s=t.charCodeAt(a)-64,l=t.charCodeAt(a+1)-64;s=s>>1^-(1&s),l=l>>1^-(1&l),r=s+=r,o=l+=o,i.push([s/n,l/n])}return i}function bm(t,e){return P(R((t=function(t){if(!t.UTF8Encoding)return t;var e=t,n=e.UTF8Scale;null==n&&(n=1024);for(var i=e.features,r=0;r<i.length;r++){var o=i[r].geometry;if("Polygon"===o.type)for(var a=o.coordinates,s=0;s<a.length;s++)a[s]=xm(a[s],o.encodeOffsets[s],n);else if("MultiPolygon"===o.type)for(a=o.coordinates,s=0;s<a.length;s++)for(var l=a[s],u=0;u<l.length;u++)l[u]=xm(l[u],o.encodeOffsets[s][u],n)}return e.UTF8Encoding=!1,e}(t)).features,(function(t){return t.geometry&&t.properties&&t.geometry.coordinates.length>0})),(function(t){var n=t.properties,i=t.geometry,r=[];if("Polygon"===i.type){var o=i.coordinates;r.push({type:"polygon",exterior:o[0],interiors:o.slice(1)})}"MultiPolygon"===i.type&&L(o=i.coordinates,(function(t){t[0]&&r.push({type:"polygon",exterior:t[0],interiors:t.slice(1)})}));var a=new _m(n[e||"name"],r,n.cp);return a.properties=n,a}))}var wm=Object.freeze({__proto__:null,linearMap:Ni,round:Bi,asc:function(t){return t.sort((function(t,e){return t-e})),t},getPrecision:function(t){if(t=+t,isNaN(t))return 0;for(var e=1,n=0;Math.round(t*e)/e!==t;)e*=10,n++;return n},getPrecisionSafe:zi,getPixelPrecision:Fi,getPercentWithPrecision:Vi,MAX_SAFE_INTEGER:9007199254740991,remRadian:Hi,isRadianAroundZero:Wi,parseDate:Ui,quantity:Yi,quantityExponent:Xi,nice:qi,quantile:function(t,e){var n=(t.length-1)*e+1,i=Math.floor(n),r=+t[i-1],o=n-i;return o?r+o*(t[i]-r):r},reformIntervals:function(t){t.sort((function(t,e){return s(t,e,0)?-1:1}));for(var e=-1/0,n=1,i=0;i<t.length;){for(var r=t[i].interval,o=t[i].close,a=0;a<2;a++)r[a]<=e&&(r[a]=e,o[a]=a?1:1-n),e=r[a],n=o[a];r[0]===r[1]&&o[0]*o[1]!=1?t.splice(i,1):i++}return t;function s(t,e,n){return t.interval[n]<e.interval[n]||t.interval[n]===e.interval[n]&&(t.close[n]-e.close[n]==(n?-1:1)||!n&&s(t,e,1))}},isNumeric:Zi,numericToNumber:ji}),Sm=Object.freeze({__proto__:null,parse:Ui,format:nh}),Mm=Object.freeze({__proto__:null,extendShape:function(t){return Da.extend(t)},extendPath:function(t,e){return Zl(t,e)},makePath:$l,makeImage:Ql,mergePath:tu,resizePath:eu,createIcon:function(t,e,n){var i=M({rectHover:!0},e),r=i.style={strokeNoScale:!0};if(n=n||{x:-1,y:-1,width:2,height:2},t)return 0===t.indexOf("image://")?(r.image=t.slice(8),T(r,n),new Pa(i)):$l(t.replace("path://",""),i,n,"center")},updateProps:iu,initProps:ru,getTransform:function(t,e){for(var n=le([]);t&&t!==e;)he(n,t.getLocalTransform(),n),t=t.parent;return n},clipPointsByRect:function(t,e){return P(t,(function(t){var n=t[0];n=Xl(n,e.x),n=ql(n,e.x+e.width);var i=t[1];return i=Xl(i,e.y),[n,i=ql(i,e.y+e.height)]}))},clipRectByRect:function(t,e){var n=Xl(t.x,e.x),i=ql(t.x+t.width,e.x+e.width),r=Xl(t.y,e.y),o=ql(t.y+t.height,e.y+e.height);if(i>=n&&o>=r)return{x:n,y:r,width:i-n,height:o-r}},registerShape:Kl,getShapeClass:function(t){if(jl.hasOwnProperty(t))return jl[t]},Group:Ci,Image:Pa,Text:Va,Circle:tl,Ellipse:nl,Sector:vl,Ring:_l,Polygon:Sl,Polyline:Tl,Rect:Ba,Line:Il,BezierCurve:Pl,Arc:Rl,IncrementalDisplayable:Yl,CompoundPath:Nl,LinearGradient:Bl,RadialGradient:zl,BoundingRect:Sn}),Tm=Object.freeze({__proto__:null,addCommas:_h,toCamelCase:function(t,e){return t=(t||"").toLowerCase().replace(/-(.)/g,(function(t,e){return e.toUpperCase()})),e&&t&&(t=t.charAt(0).toUpperCase()+t.slice(1)),t},normalizeCssArray:xh,encodeHTML:Sh,formatTpl:Ch,getTooltipMarker:function(t,e){var n=V(t)?{color:t,extraCssText:e}:t||{},i=n.color,r=n.type;e=n.extraCssText;var o=n.renderMode||"html";return i?"html"===o?"subItem"===r?'<span style="display:inline-block;vertical-align:middle;margin-right:8px;margin-left:3px;border-radius:4px;width:4px;height:4px;background-color:'+Sh(i)+";"+(e||"")+'"></span>':'<span style="display:inline-block;margin-right:4px;border-radius:10px;width:10px;height:10px;background-color:'+Sh(i)+";"+(e||"")+'"></span>':{renderMode:o,content:"{"+(n.markerId||"markerX")+"|}  ",style:"subItem"===r?{width:4,height:4,borderRadius:2,backgroundColor:i}:{width:10,height:10,borderRadius:5,backgroundColor:i}}:""},formatTime:function(t,e,n){"week"!==t&&"month"!==t&&"quarter"!==t&&"half-year"!==t&&"year"!==t||(t="MM-dd\nyyyy");var i=Ui(e),r=n?"UTC":"",o=i["get"+r+"FullYear"](),a=i["get"+r+"Month"]()+1,s=i["get"+r+"Date"](),l=i["get"+r+"Hours"](),u=i["get"+r+"Minutes"](),h=i["get"+r+"Seconds"](),c=i["get"+r+"Milliseconds"]();return t=t.replace("MM",Ju(a,2)).replace("M",a).replace("yyyy",o).replace("yy",o%100+"").replace("dd",Ju(s,2)).replace("d",s).replace("hh",Ju(l,2)).replace("h",l).replace("mm",Ju(u,2)).replace("m",u).replace("ss",Ju(h,2)).replace("s",h).replace("SSS",Ju(c,3))},capitalFirst:function(t){return t?t.charAt(0).toUpperCase()+t.substr(1):t},truncateText:zr,getTextRect:function(t,e,n,i,r,o,a,s){return Qi(),new Va({style:{text:t,font:e,align:n,verticalAlign:i,padding:r,rich:o,overflow:a?"truncate":null,lineHeight:s}}).getBoundingRect()}}),Cm=Object.freeze({__proto__:null,map:P,each:L,indexOf:D,inherits:I,reduce:O,filter:R,bind:E,curry:B,isArray:z,isString:V,isObject:G,isFunction:F,extend:M,defaults:T,clone:w,merge:S}),Dm=pr();function Im(t){return"category"===t.type?function(t){var e=t.getLabelModel(),n=km(t,e);return!e.get("show")||t.scale.isBlank()?{labels:[],labelCategoryInterval:n.labelCategoryInterval}:n}(t):function(t){var e=t.scale.getTicks(),n=hm(t);return{labels:P(e,(function(e,i){return{formattedLabel:n(e,i),rawLabel:t.scale.getLabel(e),tickValue:e.value}}))}}(t)}function Am(t,e){return"category"===t.type?function(t,e){var n,i,r=Lm(t,"ticks"),o=pm(e),a=Pm(r,o);if(a)return a;e.get("show")&&!t.scale.isBlank()||(n=[]);if(F(o))n=Nm(t,o,!0);else if("auto"===o){var s=km(t,t.getLabelModel());i=s.labelCategoryInterval,n=P(s.labels,(function(t){return t.tickValue}))}else n=Rm(t,i=o,!0);return Om(r,o,{ticks:n,tickCategoryInterval:i})}(t,e):{ticks:P(t.scale.getTicks(),(function(t){return t.value}))}}function km(t,e){var n,i,r=Lm(t,"labels"),o=pm(e),a=Pm(r,o);return a||(F(o)?n=Nm(t,o):(i="auto"===o?function(t){var e=Dm(t).autoInterval;return null!=e?e:Dm(t).autoInterval=t.calculateCategoryInterval()}(t):o,n=Rm(t,i)),Om(r,o,{labels:n,labelCategoryInterval:i}))}function Lm(t,e){return Dm(t)[e]||(Dm(t)[e]=[])}function Pm(t,e){for(var n=0;n<t.length;n++)if(t[n].key===e)return t[n].value}function Om(t,e,n){return t.push({key:e,value:n}),n}function Rm(t,e,n){var i=hm(t),r=t.scale,o=r.getExtent(),a=t.getLabelModel(),s=[],l=Math.max((e||0)+1,1),u=o[0],h=r.count();0!==u&&l>1&&h/l>2&&(u=Math.round(Math.ceil(u/l)*l));var c=fm(t),p=a.get("showMinLabel")||c,f=a.get("showMaxLabel")||c;p&&u!==o[0]&&g(o[0]);for(var d=u;d<=o[1];d+=l)g(d);function g(t){var e={value:t};s.push(n?t:{formattedLabel:i(e),rawLabel:r.getLabel(e),tickValue:t})}return f&&d-l!==o[1]&&g(o[1]),s}function Nm(t,e,n){var i=t.scale,r=hm(t),o=[];return L(i.getTicks(),(function(t){var a=i.getLabel(t),s=t.value;e(t.value,a)&&o.push(n?s:{formattedLabel:r(t),rawLabel:a,tickValue:s})})),o}var Em=[0,1],Bm=function(){function t(t,e,n){this.onBand=!1,this.inverse=!1,this.dim=t,this.scale=e,this._extent=n||[0,0]}return t.prototype.contain=function(t){var e=this._extent,n=Math.min(e[0],e[1]),i=Math.max(e[0],e[1]);return t>=n&&t<=i},t.prototype.containData=function(t){return this.scale.contain(t)},t.prototype.getExtent=function(){return this._extent.slice()},t.prototype.getPixelPrecision=function(t){return Fi(t||this.scale.getExtent(),this._extent)},t.prototype.setExtent=function(t,e){var n=this._extent;n[0]=t,n[1]=e},t.prototype.dataToCoord=function(t,e){var n=this._extent,i=this.scale;return t=i.normalize(t),this.onBand&&"ordinal"===i.type&&zm(n=n.slice(),i.count()),Ni(t,Em,n,e)},t.prototype.coordToData=function(t,e){var n=this._extent,i=this.scale;this.onBand&&"ordinal"===i.type&&zm(n=n.slice(),i.count());var r=Ni(t,n,Em,e);return this.scale.scale(r)},t.prototype.pointToData=function(t,e){},t.prototype.getTicksCoords=function(t){var e=(t=t||{}).tickModel||this.getTickModel(),n=P(Am(this,e).ticks,(function(t){return{coord:this.dataToCoord("ordinal"===this.scale.type?this.scale.getRawOrdinalNumber(t):t),tickValue:t}}),this);return function(t,e,n,i){var r=e.length;if(!t.onBand||n||!r)return;var o,a,s=t.getExtent();if(1===r)e[0].coord=s[0],o=e[1]={coord:s[0]};else{var l=e[r-1].tickValue-e[0].tickValue,u=(e[r-1].coord-e[0].coord)/l;L(e,(function(t){t.coord-=u/2})),a=1+t.scale.getExtent()[1]-e[r-1].tickValue,o={coord:e[r-1].coord+u*a},e.push(o)}var h=s[0]>s[1];c(e[0].coord,s[0])&&(i?e[0].coord=s[0]:e.shift());i&&c(s[0],e[0].coord)&&e.unshift({coord:s[0]});c(s[1],o.coord)&&(i?o.coord=s[1]:e.pop());i&&c(o.coord,s[1])&&e.push({coord:s[1]});function c(t,e){return t=Bi(t),e=Bi(e),h?t>e:t<e}}(this,n,e.get("alignWithLabel"),t.clamp),n},t.prototype.getMinorTicksCoords=function(){if("ordinal"===this.scale.type)return[];var t=this.model.getModel("minorTick").get("splitNumber");return t>0&&t<100||(t=5),P(this.scale.getMinorTicks(t),(function(t){return P(t,(function(t){return{coord:this.dataToCoord(t),tickValue:t}}),this)}),this)},t.prototype.getViewLabels=function(){return Im(this).labels},t.prototype.getLabelModel=function(){return this.model.getModel("axisLabel")},t.prototype.getTickModel=function(){return this.model.getModel("axisTick")},t.prototype.getBandWidth=function(){var t=this._extent,e=this.scale.getExtent(),n=e[1]-e[0]+(this.onBand?1:0);0===n&&(n=1);var i=Math.abs(t[1]-t[0]);return Math.abs(i)/n},t.prototype.calculateCategoryInterval=function(){return function(t){var e=function(t){var e=t.getLabelModel();return{axisRotate:t.getRotate?t.getRotate():t.isHorizontal&&!t.isHorizontal()?90:0,labelRotate:e.get("rotate")||0,font:e.getFont()}}(t),n=hm(t),i=(e.axisRotate-e.labelRotate)/180*Math.PI,r=t.scale,o=r.getExtent(),a=r.count();if(o[1]-o[0]<1)return 0;var s=1;a>40&&(s=Math.max(1,Math.floor(a/40)));for(var l=o[0],u=t.dataToCoord(l+1)-t.dataToCoord(l),h=Math.abs(u*Math.cos(i)),c=Math.abs(u*Math.sin(i)),p=0,f=0;l<=o[1];l+=s){var d,g,y=An(n({value:l}),e.font,"center","top");d=1.3*y.width,g=1.3*y.height,p=Math.max(p,d,7),f=Math.max(f,g,7)}var v=p/h,m=f/c;isNaN(v)&&(v=1/0),isNaN(m)&&(m=1/0);var _=Math.max(0,Math.floor(Math.min(v,m))),x=Dm(t.model),b=t.getExtent(),w=x.lastAutoInterval,S=x.lastTickCount;return null!=w&&null!=S&&Math.abs(w-_)<=1&&Math.abs(S-a)<=1&&w>_&&x.axisExtent0===b[0]&&x.axisExtent1===b[1]?_=w:(x.lastTickCount=a,x.lastAutoInterval=_,x.axisExtent0=b[0],x.axisExtent1=b[1]),_}(this)},t}();function zm(t,e){var n=(t[1]-t[0])/e/2;t[0]+=n,t[1]-=n}function Fm(){return!1}function Vm(t,e,n){var i=C(),r=e.getWidth(),o=e.getHeight(),a=i.style;return a&&(a.position="absolute",a.left="0",a.top="0",a.width=r+"px",a.height=o+"px",i.setAttribute("data-zr-dom-id",t)),i.width=r*n,i.height=o*n,i}var Hm=function(t){function e(e,n,i){var r,o=t.call(this)||this;o.motionBlur=!1,o.lastFrameAlpha=.7,o.dpr=1,o.virtual=!1,o.config={},o.incremental=!1,o.zlevel=0,o.maxRepaintRectCount=5,o.__dirty=!0,o.__firstTimePaint=!0,o.__used=!1,o.__drawIndex=0,o.__startIndex=0,o.__endIndex=0,o.__prevStartIndex=null,o.__prevEndIndex=null,i=i||En,"string"==typeof e?r=Vm(e,n,i):G(e)&&(e=(r=e).id),o.id=e,o.dom=r;var a=r.style;return a&&(r.onselectstart=Fm,a.webkitUserSelect="none",a.userSelect="none",a.webkitTapHighlightColor="rgba(0,0,0,0)",a["-webkit-touch-callout"]="none",a.padding="0",a.margin="0",a.borderWidth="0"),o.domBack=null,o.ctxBack=null,o.painter=n,o.config=null,o.dpr=i,o}return dt(e,t),e.prototype.getElementCount=function(){return this.__endIndex-this.__startIndex},e.prototype.afterBrush=function(){this.__prevStartIndex=this.__startIndex,this.__prevEndIndex=this.__endIndex},e.prototype.initContext=function(){this.ctx=this.dom.getContext("2d"),this.ctx.dpr=this.dpr},e.prototype.setUnpainted=function(){this.__firstTimePaint=!0},e.prototype.createBackBuffer=function(){var t=this.dpr;this.domBack=Vm("back-"+this.id,this.painter,t),this.ctxBack=this.domBack.getContext("2d"),1!==t&&this.ctxBack.scale(t,t)},e.prototype.createRepaintRects=function(t,e,n,i){if(this.__firstTimePaint)return this.__firstTimePaint=!1,null;var r,o=[],a=this.maxRepaintRectCount,s=!1,l=new Sn(0,0,0,0);function u(t){if(t.isFinite()&&!t.isZero())if(0===o.length){(e=new Sn(0,0,0,0)).copy(t),o.push(e)}else{for(var e,n=!1,i=1/0,r=0,u=0;u<o.length;++u){var h=o[u];if(h.intersect(t)){var c=new Sn(0,0,0,0);c.copy(h),c.union(t),o[u]=c,n=!0;break}if(s){l.copy(t),l.union(h);var p=t.width*t.height,f=h.width*h.height,d=l.width*l.height-p-f;d<i&&(i=d,r=u)}}if(s&&(o[r].union(t),n=!0),!n)(e=new Sn(0,0,0,0)).copy(t),o.push(e);s||(s=o.length>=a)}}for(var h=this.__startIndex;h<this.__endIndex;++h){if(f=t[h]){var c=f.shouldBePainted(n,i,!0,!0);(d=f.__isRendered&&(f.__dirty&Un.REDARAW_BIT||!c)?f.getPrevPaintRect():null)&&u(d);var p=c&&(f.__dirty&Un.REDARAW_BIT||!f.__isRendered)?f.getPaintRect():null;p&&u(p)}}for(h=this.__prevStartIndex;h<this.__prevEndIndex;++h){var f,d;c=(f=e[h]).shouldBePainted(n,i,!0,!0);if(f&&(!c||!f.__zr)&&f.__isRendered)(d=f.getPrevPaintRect())&&u(d)}do{r=!1;for(h=0;h<o.length;)if(o[h].isZero())o.splice(h,1);else{for(var g=h+1;g<o.length;)o[h].intersect(o[g])?(r=!0,o[h].union(o[g]),o.splice(g,1)):g++;h++}}while(r);return this._paintRects=o,o},e.prototype.debugGetPaintRects=function(){return(this._paintRects||[]).slice()},e.prototype.resize=function(t,e){var n=this.dpr,i=this.dom,r=i.style,o=this.domBack;r&&(r.width=t+"px",r.height=e+"px"),i.width=t*n,i.height=e*n,o&&(o.width=t*n,o.height=e*n,1!==n&&this.ctxBack.scale(n,n))},e.prototype.clear=function(t,e,n){var i=this.dom,r=this.ctx,o=i.width,a=i.height;e=e||this.clearColor;var s=this.motionBlur&&!t,l=this.lastFrameAlpha,u=this.dpr,h=this;s&&(this.domBack||this.createBackBuffer(),this.ctxBack.globalCompositeOperation="copy",this.ctxBack.drawImage(i,0,0,o/u,a/u));var c=this.domBack;function p(t,n,i,o){if(r.clearRect(t,n,i,o),e&&"transparent"!==e){var a=void 0;q(e)?(a=e.__canvasGradient||Bd(r,e,{x:0,y:0,width:i,height:o}),e.__canvasGradient=a):j(e)&&(a=Ud(r,e,{dirty:function(){h.setUnpainted(),h.__painter.refresh()}})),r.save(),r.fillStyle=a||e,r.fillRect(t,n,i,o),r.restore()}s&&(r.save(),r.globalAlpha=l,r.drawImage(c,t,n,i,o),r.restore())}!n||s?p(0,0,o,a):n.length&&L(n,(function(t){p(t.x*u,t.y*u,t.width*u,t.height*u)}))},e}(Et),Wm=1e5,Gm=314159,Um=.01;function Ym(t){return parseInt(t,10)}var Xm=function(){function t(t,e,n,i){this.type="canvas",this._zlevelList=[],this._prevDisplayList=[],this._layers={},this._layerConfig={},this._needsManuallyCompositing=!1,this.type="canvas";var r=!t.nodeName||"CANVAS"===t.nodeName.toUpperCase();this._opts=n=M({},n||{}),this.dpr=n.devicePixelRatio||En,this._singleCanvas=r,this.root=t;var o=t.style;o&&(o.webkitTapHighlightColor="transparent",o.webkitUserSelect="none",o.userSelect="none",o["-webkit-touch-callout"]="none",t.innerHTML=""),this.storage=e;var a=this._zlevelList;this._prevDisplayList=[];var s=this._layers;if(r){var l=t,u=l.width,h=l.height;null!=n.width&&(u=n.width),null!=n.height&&(h=n.height),this.dpr=n.devicePixelRatio||1,l.width=u*this.dpr,l.height=h*this.dpr,this._width=u,this._height=h;var c=new Hm(l,this,this.dpr);c.__builtin__=!0,c.initContext(),s[314159]=c,c.zlevel=Gm,a.push(Gm),this._domRoot=t}else{this._width=this._getSize(0),this._height=this._getSize(1);var p=this._domRoot=function(t,e){var n=document.createElement("div");return n.style.cssText=["position:relative","width:"+t+"px","height:"+e+"px","padding:0","margin:0","border-width:0"].join(";")+";",n}(this._width,this._height);t.appendChild(p)}}return t.prototype.getType=function(){return"canvas"},t.prototype.isSingleCanvas=function(){return this._singleCanvas},t.prototype.getViewportRoot=function(){return this._domRoot},t.prototype.getViewportRootOffset=function(){var t=this.getViewportRoot();if(t)return{offsetLeft:t.offsetLeft||0,offsetTop:t.offsetTop||0}},t.prototype.refresh=function(t){var e=this.storage.getDisplayList(!0),n=this._prevDisplayList,i=this._zlevelList;this._redrawId=Math.random(),this._paintList(e,n,t,this._redrawId);for(var r=0;r<i.length;r++){var o=i[r],a=this._layers[o];if(!a.__builtin__&&a.refresh){var s=0===r?this._backgroundColor:null;a.refresh(s)}}return this._opts.useDirtyRect&&(this._prevDisplayList=e.slice()),this},t.prototype.refreshHover=function(){this._paintHoverList(this.storage.getDisplayList(!1))},t.prototype._paintHoverList=function(t){var e=t.length,n=this._hoverlayer;if(n&&n.clear(),e){for(var i,r={inHover:!0,viewWidth:this._width,viewHeight:this._height},o=0;o<e;o++){var a=t[o];a.__inHover&&(n||(n=this._hoverlayer=this.getLayer(Wm)),i||(i=n.ctx).save(),Jd(i,a,r,o===e-1))}i&&i.restore()}},t.prototype.getHoverLayer=function(){return this.getLayer(Wm)},t.prototype.paintOne=function(t,e){Qd(t,e)},t.prototype._paintList=function(t,e,n,i){if(this._redrawId===i){n=n||!1,this._updateLayerStatus(t);var r=this._doPaintList(t,e,n),o=r.finished,a=r.needsRefreshHover;if(this._needsManuallyCompositing&&this._compositeManually(),a&&this._paintHoverList(t),o)this.eachLayer((function(t){t.afterBrush&&t.afterBrush()}));else{var s=this;si((function(){s._paintList(t,e,n,i)}))}}},t.prototype._compositeManually=function(){var t=this.getLayer(Gm).ctx,e=this._domRoot.width,n=this._domRoot.height;t.clearRect(0,0,e,n),this.eachBuiltinLayer((function(i){i.virtual&&t.drawImage(i.dom,0,0,e,n)}))},t.prototype._doPaintList=function(t,e,n){for(var i=this,r=[],o=this._opts.useDirtyRect,s=0;s<this._zlevelList.length;s++){var l=this._zlevelList[s],u=this._layers[l];u.__builtin__&&u!==this._hoverlayer&&(u.__dirty||n)&&r.push(u)}for(var h=!0,c=!1,p=function(a){var s=r[a],l=s.ctx,u=o&&s.createRepaintRects(t,e,f._width,f._height);l.save();var p,d=n?s.__startIndex:s.__drawIndex,g=!n&&s.incremental&&Date.now,y=g&&Date.now(),v=s.zlevel===f._zlevelList[0]?f._backgroundColor:null;if(s.__startIndex===s.__endIndex)s.clear(!1,v,u);else if(d===s.__startIndex){var m=t[d];m.incremental&&m.notClear&&!n||s.clear(!1,v,u)}-1===d&&(console.error("For some unknown reason. drawIndex is -1"),d=s.__startIndex);var _=function(e){var n={inHover:!1,allClipped:!1,prevEl:null,viewWidth:i._width,viewHeight:i._height};for(p=d;p<s.__endIndex;p++){var r=t[p];if(r.__inHover&&(c=!0),i._doPaintEl(r,s,o,e,n,p===s.__endIndex-1),g)if(Date.now()-y>15)break}n.prevElClipPaths&&l.restore()};if(u)if(0===u.length)p=s.__endIndex;else for(var x=f.dpr,b=0;b<u.length;++b){var w=u[b];l.save(),l.beginPath(),l.rect(w.x*x,w.y*x,w.width*x,w.height*x),l.clip(),_(w),l.restore()}else l.save(),_(),l.restore();s.__drawIndex=p,s.__drawIndex<s.__endIndex&&(h=!1)},f=this,d=0;d<r.length;d++)p(d);return a.wxa&&L(this._layers,(function(t){t&&t.ctx&&t.ctx.draw&&t.ctx.draw()})),{finished:h,needsRefreshHover:c}},t.prototype._doPaintEl=function(t,e,n,i,r,o){var a=e.ctx;if(n){var s=t.getPaintRect();(!i||s&&s.intersect(i))&&(Jd(a,t,r,o),t.setPrevPaintRect(s))}else Jd(a,t,r,o)},t.prototype.getLayer=function(t,e){this._singleCanvas&&!this._needsManuallyCompositing&&(t=Gm);var n=this._layers[t];return n||((n=new Hm("zr_"+t,this,this.dpr)).zlevel=t,n.__builtin__=!0,this._layerConfig[t]?S(n,this._layerConfig[t],!0):this._layerConfig[t-Um]&&S(n,this._layerConfig[t-Um],!0),e&&(n.virtual=e),this.insertLayer(t,n),n.initContext()),n},t.prototype.insertLayer=function(t,e){var n=this._layers,i=this._zlevelList,r=i.length,o=this._domRoot,a=null,s=-1;if(n[t])b("ZLevel "+t+" has been used already");else if(function(t){return!!t&&(!!t.__builtin__||"function"==typeof t.resize&&"function"==typeof t.refresh)}(e)){if(r>0&&t>i[0]){for(s=0;s<r-1&&!(i[s]<t&&i[s+1]>t);s++);a=n[i[s]]}if(i.splice(s+1,0,t),n[t]=e,!e.virtual)if(a){var l=a.dom;l.nextSibling?o.insertBefore(e.dom,l.nextSibling):o.appendChild(e.dom)}else o.firstChild?o.insertBefore(e.dom,o.firstChild):o.appendChild(e.dom);e.__painter=this}else b("Layer of zlevel "+t+" is not valid")},t.prototype.eachLayer=function(t,e){for(var n=this._zlevelList,i=0;i<n.length;i++){var r=n[i];t.call(e,this._layers[r],r)}},t.prototype.eachBuiltinLayer=function(t,e){for(var n=this._zlevelList,i=0;i<n.length;i++){var r=n[i],o=this._layers[r];o.__builtin__&&t.call(e,o,r)}},t.prototype.eachOtherLayer=function(t,e){for(var n=this._zlevelList,i=0;i<n.length;i++){var r=n[i],o=this._layers[r];o.__builtin__||t.call(e,o,r)}},t.prototype.getLayers=function(){return this._layers},t.prototype._updateLayerStatus=function(t){function e(t){o&&(o.__endIndex!==t&&(o.__dirty=!0),o.__endIndex=t)}if(this.eachBuiltinLayer((function(t,e){t.__dirty=t.__used=!1})),this._singleCanvas)for(var n=1;n<t.length;n++){if((s=t[n]).zlevel!==t[n-1].zlevel||s.incremental){this._needsManuallyCompositing=!0;break}}var i,r,o=null,a=0;for(r=0;r<t.length;r++){var s,l=(s=t[r]).zlevel,u=void 0;i!==l&&(i=l,a=0),s.incremental?((u=this.getLayer(l+.001,this._needsManuallyCompositing)).incremental=!0,a=1):u=this.getLayer(l+(a>0?Um:0),this._needsManuallyCompositing),u.__builtin__||b("ZLevel "+l+" has been used by unkown layer "+u.id),u!==o&&(u.__used=!0,u.__startIndex!==r&&(u.__dirty=!0),u.__startIndex=r,u.incremental?u.__drawIndex=-1:u.__drawIndex=r,e(r),o=u),s.__dirty&Un.REDARAW_BIT&&!s.__inHover&&(u.__dirty=!0,u.incremental&&u.__drawIndex<0&&(u.__drawIndex=r))}e(r),this.eachBuiltinLayer((function(t,e){!t.__used&&t.getElementCount()>0&&(t.__dirty=!0,t.__startIndex=t.__endIndex=t.__drawIndex=0),t.__dirty&&t.__drawIndex<0&&(t.__drawIndex=t.__startIndex)}))},t.prototype.clear=function(){return this.eachBuiltinLayer(this._clearLayer),this},t.prototype._clearLayer=function(t){t.clear()},t.prototype.setBackgroundColor=function(t){this._backgroundColor=t,L(this._layers,(function(t){t.setUnpainted()}))},t.prototype.configLayer=function(t,e){if(e){var n=this._layerConfig;n[t]?S(n[t],e,!0):n[t]=e;for(var i=0;i<this._zlevelList.length;i++){var r=this._zlevelList[i];if(r===t||r===t+Um)S(this._layers[r],n[t],!0)}}},t.prototype.delLayer=function(t){var e=this._layers,n=this._zlevelList,i=e[t];i&&(i.dom.parentNode.removeChild(i.dom),delete e[t],n.splice(D(n,t),1))},t.prototype.resize=function(t,e){if(this._domRoot.style){var n=this._domRoot;n.style.display="none";var i=this._opts;if(null!=t&&(i.width=t),null!=e&&(i.height=e),t=this._getSize(0),e=this._getSize(1),n.style.display="",this._width!==t||e!==this._height){for(var r in n.style.width=t+"px",n.style.height=e+"px",this._layers)this._layers.hasOwnProperty(r)&&this._layers[r].resize(t,e);this.refresh(!0)}this._width=t,this._height=e}else{if(null==t||null==e)return;this._width=t,this._height=e,this.getLayer(Gm).resize(t,e)}return this},t.prototype.clearLayer=function(t){var e=this._layers[t];e&&e.clear()},t.prototype.dispose=function(){this.root.innerHTML="",this.root=this.storage=this._domRoot=this._layers=null},t.prototype.getRenderedCanvas=function(t){if(t=t||{},this._singleCanvas&&!this._compositeManually)return this._layers[314159].dom;var e=new Hm("image",this,t.pixelRatio||this.dpr),n=e.ctx;if(e.initContext(),e.clear(!1,t.backgroundColor||this._backgroundColor),t.pixelRatio<=this.dpr){this.refresh();var i=e.dom.width,r=e.dom.height,o=e.ctx;this.eachLayer((function(t){t.__builtin__?o.drawImage(t.dom,0,0,i,r):t.renderToCanvas&&(e.ctx.save(),t.renderToCanvas(e.ctx),e.ctx.restore())}))}else for(var a={inHover:!1,viewWidth:this._width,viewHeight:this._height},s=this.storage.getDisplayList(!0),l=0,u=s.length;l<u;l++){Jd(n,s[l],a,l===u-1)}return e.dom},t.prototype.getWidth=function(){return this._width},t.prototype.getHeight=function(){return this._height},t.prototype._getSize=function(t){var e=this._opts,n=["width","height"][t],i=["clientWidth","clientHeight"][t],r=["paddingLeft","paddingTop"][t],o=["paddingRight","paddingBottom"][t];if(null!=e[n]&&"auto"!==e[n])return parseFloat(e[n]);var a=this.root,s=document.defaultView.getComputedStyle(a);return(a[i]||Ym(s[n])||Ym(a.style[n]))-(Ym(s[r])||0)-(Ym(s[o])||0)|0},t.prototype.pathToImage=function(t,e){e=e||this.dpr;var n=document.createElement("canvas"),i=n.getContext("2d"),r=t.getBoundingRect(),o=t.style,a=o.shadowBlur*e,s=o.shadowOffsetX*e,l=o.shadowOffsetY*e,u=t.hasStroke()?o.lineWidth:0,h=Math.max(u/2,-s+a),c=Math.max(u/2,s+a),p=Math.max(u/2,-l+a),f=Math.max(u/2,l+a),d=r.width+h+c,g=r.height+p+f;n.width=d*e,n.height=g*e,i.scale(e,e),i.clearRect(0,0,d,g),i.dpr=e;var y={x:t.x,y:t.y,scaleX:t.scaleX,scaleY:t.scaleY,rotation:t.rotation,originX:t.originX,originY:t.originY};t.x=h-r.x,t.y=p-r.y,t.rotation=0,t.scaleX=1,t.scaleY=1,t.updateTransform(),t&&Jd(i,t,{inHover:!1,viewWidth:this._width,viewHeight:this._height},!0);var v=new Pa({style:{x:0,y:0,image:n}});return M(t,y),v},t}();var qm=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.hasSymbolVisual=!0,n.legendSymbol="line",n}return n(e,t),e.prototype.getInitialData=function(t){return fv(this.getSource(),this,{useEncodeDefaulter:!0})},e.type="series.line",e.dependencies=["grid","polar"],e.defaultOption={zlevel:0,z:3,coordinateSystem:"cartesian2d",legendHoverLink:!0,clip:!0,label:{position:"top"},endLabel:{show:!1,valueAnimation:!0,distance:8},lineStyle:{width:2,type:"solid"},emphasis:{scale:!0,lineStyle:{width:"bolder"}},step:!1,smooth:!1,smoothMonotone:null,symbol:"emptyCircle",symbolSize:4,symbolRotate:null,showSymbol:!0,showAllSymbol:"auto",connectNulls:!1,sampling:"none",animationEasing:"linear",progressive:0,hoverLayerThreshold:1/0},e}(Fp);function jm(t,e){var n=t.mapDimensionsAll("defaultedLabel"),i=n.length;if(1===i){var r=gp(t,e,n[0]);return null!=r?r+"":null}if(i){for(var o=[],a=0;a<n.length;a++)o.push(gp(t,e,n[a]));return o.join(" ")}}function Zm(t,e){var n=t.mapDimensionsAll("defaultedLabel");if(!z(e))return e+"";for(var i=[],r=0;r<n.length;r++){var o=t.getDimensionInfo(n[r]);o&&i.push(e[o.index])}return i.join(" ")}var Km=function(t){function e(e,n,i,r){var o=t.call(this)||this;return o.updateData(e,n,i,r),o}return n(e,t),e.prototype._createSymbol=function(t,e,n,i,r){this.removeAll();var o=Ed(t,-1,-1,2,2,null,r);o.attr({z2:100,culling:!0,scaleX:i[0]/2,scaleY:i[1]/2}),o.drift=$m,this._symbolType=t,this.add(o)},e.prototype.stopSymbolAnimation=function(t){this.childAt(0).stopAnimation(null,t)},e.prototype.getSymbolPath=function(){return this.childAt(0)},e.prototype.highlight=function(){xs(this.childAt(0))},e.prototype.downplay=function(){bs(this.childAt(0))},e.prototype.setZ=function(t,e){var n=this.childAt(0);n.zlevel=t,n.z=e},e.prototype.setDraggable=function(t){var e=this.childAt(0);e.draggable=t,e.cursor=t?"move":e.cursor},e.prototype.updateData=function(t,n,i,r){this.silent=!1;var o=t.getItemVisual(n,"symbol")||"circle",a=t.hostModel,s=e.getSymbolSize(t,n),l=o!==this._symbolType,u=r&&r.disableAnimation;if(l){var h=t.getItemVisual(n,"symbolKeepAspect");this._createSymbol(o,t,n,s,h)}else{(p=this.childAt(0)).silent=!1;var c={scaleX:s[0]/2,scaleY:s[1]/2};u?p.attr(c):iu(p,c,a,n)}if(this._updateCommon(t,n,s,i,r),l){var p=this.childAt(0);if(!u){c={scaleX:this._sizeX,scaleY:this._sizeY,style:{opacity:p.style.opacity}};p.scaleX=p.scaleY=0,p.style.opacity=0,ru(p,c,a,n)}}u&&this.childAt(0).stopAnimation("remove"),this._seriesModel=a},e.prototype._updateCommon=function(t,e,n,i,r){var o,a,s,l,u,h,c,p,f,d=this.childAt(0),g=t.hostModel;if(i&&(o=i.emphasisItemStyle,a=i.blurItemStyle,s=i.selectItemStyle,l=i.focus,u=i.blurScope,h=i.symbolOffset,c=i.labelStatesModels,p=i.hoverScale,f=i.cursorStyle),!i||t.hasItemOption){var y=i&&i.itemModel?i.itemModel:t.getItemModel(e),v=y.getModel("emphasis");o=v.getModel("itemStyle").getItemStyle(),s=y.getModel(["select","itemStyle"]).getItemStyle(),a=y.getModel(["blur","itemStyle"]).getItemStyle(),l=v.get("focus"),u=v.get("blurScope"),h=y.getShallow("symbolOffset"),c=du(y),p=v.getShallow("scale"),f=y.getShallow("cursor")}var m=t.getItemVisual(e,"symbolRotate");d.attr("rotation",(m||0)*Math.PI/180||0),h&&(d.x=Ei(h[0],n[0]),d.y=Ei(h[1],n[1])),f&&d.attr("cursor",f);var _=t.getItemVisual(e,"style"),x=_.fill;if(d instanceof Pa){var b=d.style;d.useStyle(M({image:b.image,x:b.x,y:b.y,width:b.width,height:b.height},_))}else d.__isEmptyBrush?d.useStyle(M({},_)):d.useStyle(_),d.style.decal=null,d.setColor(x,r&&r.symbolInnerColor),d.style.strokeNoScale=!0;var w=t.getItemVisual(e,"liftZ"),S=this._z2;null!=w?null==S&&(this._z2=d.z2,d.z2+=w):null!=S&&(d.z2=S,this._z2=null);var T=r&&r.useNameLabel;fu(d,c,{labelFetcher:g,labelDataIndex:e,defaultText:function(e){return T?t.getName(e):jm(t,e)},inheritColor:x,defaultOpacity:_.opacity}),this._sizeX=n[0]/2,this._sizeY=n[1]/2;var C=d.ensureState("emphasis");if(C.style=o,d.ensureState("select").style=s,d.ensureState("blur").style=a,p){var D=Math.max(1.1,3/this._sizeY);C.scaleX=this._sizeX*D,C.scaleY=this._sizeY*D}this.setSymbolScale(1),As(this,l,u)},e.prototype.setSymbolScale=function(t){this.scaleX=this.scaleY=t},e.prototype.fadeOut=function(t,e){var n=this.childAt(0),i=this._seriesModel,r=ja(this).dataIndex,o=e&&e.animation;if(this.silent=n.silent=!0,e&&e.fadeLabel){var a=n.getTextContent();a&&ou(a,{style:{opacity:0}},i,{dataIndex:r,removeOpt:o,cb:function(){n.removeTextContent()}})}else n.removeTextContent();ou(n,{style:{opacity:0},scaleX:0,scaleY:0},i,{dataIndex:r,cb:t,removeOpt:o})},e.getSymbolSize=function(t,e){var n=t.getItemVisual(e,"symbolSize");return n instanceof Array?n.slice():[+n,+n]},e}(Ci);function $m(t,e){this.parent.drift(t,e)}function Qm(t,e,n,i){return e&&!isNaN(e[0])&&!isNaN(e[1])&&!(i.isIgnore&&i.isIgnore(n))&&!(i.clipShape&&!i.clipShape.contain(e[0],e[1]))&&"none"!==t.getItemVisual(n,"symbol")}function Jm(t){return null==t||G(t)||(t={isIgnore:t}),t||{}}function t_(t){var e=t.hostModel,n=e.getModel("emphasis");return{emphasisItemStyle:n.getModel("itemStyle").getItemStyle(),blurItemStyle:e.getModel(["blur","itemStyle"]).getItemStyle(),selectItemStyle:e.getModel(["select","itemStyle"]).getItemStyle(),focus:n.get("focus"),blurScope:n.get("blurScope"),symbolRotate:e.get("symbolRotate"),symbolOffset:e.get("symbolOffset"),hoverScale:n.get("scale"),labelStatesModels:du(e),cursorStyle:e.get("cursor")}}var e_=function(){function t(t){this.group=new Ci,this._SymbolCtor=t||Km}return t.prototype.updateData=function(t,e){e=Jm(e);var n=this.group,i=t.hostModel,r=this._data,o=this._SymbolCtor,a=e.disableAnimation,s=t_(t),l={disableAnimation:a},u=e.getSymbolPoint||function(e){return t.getItemLayout(e)};r||n.removeAll(),t.diff(r).add((function(i){var r=u(i);if(Qm(t,r,i,e)){var a=new o(t,i,s,l);a.setPosition(r),t.setItemGraphicEl(i,a),n.add(a)}})).update((function(h,c){var p=r.getItemGraphicEl(c),f=u(h);if(Qm(t,f,h,e)){if(p){p.updateData(t,h,s,l);var d={x:f[0],y:f[1]};a?p.attr(d):iu(p,d,i)}else(p=new o(t,h)).setPosition(f);n.add(p),t.setItemGraphicEl(h,p)}else n.remove(p)})).remove((function(t){var e=r.getItemGraphicEl(t);e&&e.fadeOut((function(){n.remove(e)}))})).execute(),this._getSymbolPoint=u,this._data=t},t.prototype.isPersistent=function(){return!0},t.prototype.updateLayout=function(){var t=this,e=this._data;e&&e.eachItemGraphicEl((function(e,n){var i=t._getSymbolPoint(n);e.setPosition(i),e.markRedraw()}))},t.prototype.incrementalPrepareUpdate=function(t){this._seriesScope=t_(t),this._data=null,this.group.removeAll()},t.prototype.incrementalUpdate=function(t,e,n){function i(t){t.isGroup||(t.incremental=!0,t.ensureState("emphasis").hoverLayer=!0)}n=Jm(n);for(var r=t.start;r<t.end;r++){var o=e.getItemLayout(r);if(Qm(e,o,r,n)){var a=new this._SymbolCtor(e,r,this._seriesScope);a.traverse(i),a.setPosition(o),this.group.add(a),e.setItemGraphicEl(r,a)}}},t.prototype.remove=function(t){var e=this.group,n=this._data;n&&t?n.eachItemGraphicEl((function(t){t.fadeOut((function(){e.remove(t)}))})):e.removeAll()},t}();function n_(t,e,n){var i=t.getBaseAxis(),r=t.getOtherAxis(i),o=function(t,e){var n=0,i=t.scale.getExtent();"start"===e?n=i[0]:"end"===e?n=i[1]:i[0]>0?n=i[0]:i[1]<0&&(n=i[1]);return n}(r,n),a=i.dim,s=r.dim,l=e.mapDimension(s),u=e.mapDimension(a),h="x"===s||"radius"===s?1:0,c=P(t.dimensions,(function(t){return e.mapDimension(t)})),p=!1,f=e.getCalculationInfo("stackResultDimension");return cv(e,c[0])&&(p=!0,c[0]=f),cv(e,c[1])&&(p=!0,c[1]=f),{dataDimsForPoint:c,valueStart:o,valueAxisDim:s,baseAxisDim:a,stacked:!!p,valueDim:l,baseDim:u,baseDataOffset:h,stackedOverDimension:e.getCalculationInfo("stackedOverDimension")}}function i_(t,e,n,i){var r=NaN;t.stacked&&(r=n.get(n.getCalculationInfo("stackedOverDimension"),i)),isNaN(r)&&(r=t.valueStart);var o=t.baseDataOffset,a=[];return a[o]=n.get(t.baseDim,i),a[1-o]=r,e.dataToPoint(a)}var r_="undefined"!=typeof Float32Array,o_=r_?Float32Array:Array;function a_(t){return z(t)?r_?new Float32Array(t):t:new o_(t)}var s_=Math.min,l_=Math.max;function u_(t,e){return isNaN(t)||isNaN(e)}function h_(t,e,n,i,r,o,a,s,l){for(var u,h,c,p,f,d,g=n,y=0;y<i;y++){var v=e[2*g],m=e[2*g+1];if(g>=r||g<0)break;if(u_(v,m)){if(l){g+=o;continue}break}if(g===n)t[o>0?"moveTo":"lineTo"](v,m),c=v,p=m;else{var _=v-u,x=m-h;if(_*_+x*x<.5){g+=o;continue}if(a>0){var b=g+o,w=e[2*b],S=e[2*b+1],M=y+1;if(l)for(;u_(w,S)&&M<i;)M++,w=e[2*(b+=o)],S=e[2*b+1];var T=.5,C=0,D=0,I=void 0,A=void 0;if(M>=i||u_(w,S))f=v,d=m;else{C=w-u,D=S-h;var k=v-u,L=w-v,P=m-h,O=S-m,R=void 0,N=void 0;"x"===s?(R=Math.abs(k),N=Math.abs(L),f=v-R*a,d=m,I=v+R*a,A=m):"y"===s?(R=Math.abs(P),N=Math.abs(O),f=v,d=m-R*a,I=v,A=m+R*a):(R=Math.sqrt(k*k+P*P),f=v-C*a*(1-(T=(N=Math.sqrt(L*L+O*O))/(N+R))),d=m-D*a*(1-T),A=m+D*a*T,I=s_(I=v+C*a*T,l_(w,v)),A=s_(A,l_(S,m)),I=l_(I,s_(w,v)),d=m-(D=(A=l_(A,s_(S,m)))-m)*R/N,f=s_(f=v-(C=I-v)*R/N,l_(u,v)),d=s_(d,l_(h,m)),I=v+(C=v-(f=l_(f,s_(u,v))))*N/R,A=m+(D=m-(d=l_(d,s_(h,m))))*N/R)}t.bezierCurveTo(c,p,f,d,v,m),c=I,p=A}else t.lineTo(v,m)}u=v,h=m,g+=o}return y}var c_=function(){this.smooth=0,this.smoothConstraint=!0},p_=function(t){function e(e){var n=t.call(this,e)||this;return n.type="ec-polyline",n}return n(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new c_},e.prototype.buildPath=function(t,e){var n=e.points,i=0,r=n.length/2;if(e.connectNulls){for(;r>0&&u_(n[2*r-2],n[2*r-1]);r--);for(;i<r&&u_(n[2*i],n[2*i+1]);i++);}for(;i<r;)i+=h_(t,n,i,r,r,1,e.smooth,e.smoothMonotone,e.connectNulls)+1},e.prototype.getPointOn=function(t,e){this.path||(this.createPathProxy(),this.buildPath(this.path,this.shape));for(var n,i,r=this.path.data,o=sa.CMD,a="x"===e,s=[],l=0;l<r.length;){var u=void 0,h=void 0,c=void 0,p=void 0,f=void 0,d=void 0,g=void 0;switch(r[l++]){case o.M:n=r[l++],i=r[l++];break;case o.L:if(u=r[l++],h=r[l++],(g=a?(t-n)/(u-n):(t-i)/(h-i))<=1&&g>=0){var y=a?(h-i)*g+i:(u-n)*g+n;return a?[t,y]:[y,t]}n=u,i=h;break;case o.C:u=r[l++],h=r[l++],c=r[l++],p=r[l++],f=r[l++],d=r[l++];var v=a?yo(n,u,c,f,t,s):yo(i,h,p,d,t,s);if(v>0)for(var m=0;m<v;m++){var _=s[m];if(_<=1&&_>=0){y=a?fo(i,h,p,d,_):fo(n,u,c,f,_);return a?[t,y]:[y,t]}}n=f,i=d}}},e}(Da),f_=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e}(c_),d_=function(t){function e(e){var n=t.call(this,e)||this;return n.type="ec-polygon",n}return n(e,t),e.prototype.getDefaultShape=function(){return new f_},e.prototype.buildPath=function(t,e){var n=e.points,i=e.stackedOnPoints,r=0,o=n.length/2,a=e.smoothMonotone;if(e.connectNulls){for(;o>0&&u_(n[2*o-2],n[2*o-1]);o--);for(;r<o&&u_(n[2*r],n[2*r+1]);r++);}for(;r<o;){var s=h_(t,n,r,o,o,1,e.smooth,a,e.connectNulls);h_(t,i,r+s-1,s,o,-1,e.stackedOnSmooth,a,e.connectNulls),r+=s+1,t.closePath()}},e}(Da);function g_(t,e,n,i,r){var o=t.getArea(),a=o.x,s=o.y,l=o.width,u=o.height,h=n.get(["lineStyle","width"])||2;a-=h/2,s-=h/2,l+=h,u+=h,a=Math.floor(a),l=Math.round(l);var c=new Ba({shape:{x:a,y:s,width:l,height:u}});if(e){var p=t.getBaseAxis(),f=p.isHorizontal(),d=p.inverse;f?(d&&(c.shape.x+=l),c.shape.width=0):(d||(c.shape.y+=u),c.shape.height=0),ru(c,{shape:{width:l,height:u,x:a,y:s}},n,null,i,"function"==typeof r?function(t){r(t,c)}:null)}return c}function y_(t,e,n){var i=t.getArea(),r=Bi(i.r0,1),o=Bi(i.r,1),a=new vl({shape:{cx:Bi(t.cx,1),cy:Bi(t.cy,1),r0:r,r:o,startAngle:i.startAngle,endAngle:i.endAngle,clockwise:i.clockwise}});e&&("angle"===t.getBaseAxis().dim?a.shape.endAngle=i.startAngle:a.shape.r=r,ru(a,{shape:{endAngle:i.endAngle,r:o}},n));return a}function v_(t,e){return t.type===e}function m_(t,e){if(t.length===e.length){for(var n=0;n<t.length;n++)if(t[n]!==e[n])return;return!0}}function __(t){for(var e=1/0,n=1/0,i=-1/0,r=-1/0,o=0;o<t.length;){var a=t[o++],s=t[o++];isNaN(a)||(e=Math.min(a,e),i=Math.max(a,i)),isNaN(s)||(n=Math.min(s,n),r=Math.max(s,r))}return[[e,n],[i,r]]}function x_(t,e){var n=__(t),i=n[0],r=n[1],o=__(e),a=o[0],s=o[1];return Math.max(Math.abs(i[0]-a[0]),Math.abs(i[1]-a[1]),Math.abs(r[0]-s[0]),Math.abs(r[1]-s[1]))}function b_(t){return"number"==typeof t?t:t?.5:0}function w_(t,e,n){for(var i=e.getBaseAxis(),r="x"===i.dim||"radius"===i.dim?0:1,o=[],a=0,s=[],l=[],u=[];a<t.length-2;a+=2)switch(u[0]=t[a+2],u[1]=t[a+3],l[0]=t[a],l[1]=t[a+1],o.push(l[0],l[1]),n){case"end":s[r]=u[r],s[1-r]=l[1-r],o.push(s[0],s[1]);break;case"middle":var h=(l[r]+u[r])/2,c=[];s[r]=c[r]=h,s[1-r]=l[1-r],c[1-r]=u[1-r],o.push(s[0],s[1]),o.push(c[0],c[1]);break;default:s[r]=l[r],s[1-r]=u[1-r],o.push(s[0],s[1])}return o.push(t[a++],t[a++]),o}function S_(t,e,n){var i=t.get("showAllSymbol"),r="auto"===i;if(!i||r){var o=n.getAxesByScale("ordinal")[0];if(o&&(!r||!function(t,e){var n=t.getExtent(),i=Math.abs(n[1]-n[0])/t.scale.count();isNaN(i)&&(i=0);for(var r=e.count(),o=Math.max(1,Math.round(r/5)),a=0;a<r;a+=o)if(1.5*Km.getSymbolSize(e,a)[t.isHorizontal()?1:0]>i)return!1;return!0}(o,e))){var a=e.mapDimension(o.dim),s={};return L(o.getViewLabels(),(function(t){var e=o.scale.getRawOrdinalNumber(t.tickValue);s[e]=1})),function(t){return!s.hasOwnProperty(e.get(a,t))}}}}function M_(t,e){return[t[2*e],t[2*e+1]]}function T_(t,e,n,i){if(v_(e,"cartesian2d")){var r=i.getModel("endLabel"),o=r.get("show"),a=r.get("valueAnimation"),s=i.getData(),l={lastFrameIndex:0},u=o?function(n,i){t._endLabelOnDuring(n,i,s,l,a,r,e)}:null,h=e.getBaseAxis().isHorizontal(),c=g_(e,n,i,(function(){var e=t._endLabel;e&&n&&null!=l.originalX&&e.attr({x:l.originalX,y:l.originalY})}),u);if(!i.get("clip",!0)){var p=c.shape,f=Math.max(p.width,p.height);h?(p.y-=f,p.height+=2*f):(p.x-=f,p.width+=2*f)}return u&&u(1,c),c}return y_(e,n,i)}var C_=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.init=function(){var t=new Ci,e=new e_;this.group.add(e.group),this._symbolDraw=e,this._lineGroup=t},e.prototype.render=function(t,e,n){var i=this,r=t.coordinateSystem,o=this.group,a=t.getData(),s=t.getModel("lineStyle"),l=t.getModel("areaStyle"),u=a.getLayout("points")||[],h="polar"===r.type,c=this._coordSys,p=this._symbolDraw,f=this._polyline,d=this._polygon,g=this._lineGroup,y=t.get("animation"),v=!l.isEmpty(),m=l.get("origin"),_=n_(r,a,m),x=v&&function(t,e,n){if(!n.valueDim)return[];for(var i=e.count(),r=a_(2*i),o=0;o<i;o++){var a=i_(n,t,e,o);r[2*o]=a[0],r[2*o+1]=a[1]}return r}(r,a,_),b=t.get("showSymbol"),w=b&&!h&&S_(t,a,r),S=this._data;S&&S.eachItemGraphicEl((function(t,e){t.__temp&&(o.remove(t),S.setItemGraphicEl(e,null))})),b||p.remove(),o.add(g);var M,C=!h&&t.get("step");r&&r.getArea&&t.get("clip",!0)&&(null!=(M=r.getArea()).width?(M.x-=.1,M.y-=.1,M.width+=.2,M.height+=.2):M.r0&&(M.r0-=.5,M.r+=.5)),this._clipShapeForSymbol=M,f&&c.type===r.type&&C===this._step?(v&&!d?d=this._newPolygon(u,x):d&&!v&&(g.remove(d),d=this._polygon=null),h||this._initOrUpdateEndLabel(t,r),g.setClipPath(T_(this,r,!1,t)),b&&p.updateData(a,{isIgnore:w,clipShape:M,disableAnimation:!0,getSymbolPoint:function(t){return[u[2*t],u[2*t+1]]}}),m_(this._stackedOnPoints,x)&&m_(this._points,u)||(y?this._doUpdateAnimation(a,x,r,n,C,m):(C&&(u=w_(u,r,C),x&&(x=w_(x,r,C))),f.setShape({points:u}),d&&d.setShape({points:u,stackedOnPoints:x})))):(b&&p.updateData(a,{isIgnore:w,clipShape:M,disableAnimation:!0,getSymbolPoint:function(t){return[u[2*t],u[2*t+1]]}}),y&&this._initSymbolLabelAnimation(a,r,M),C&&(u=w_(u,r,C),x&&(x=w_(x,r,C))),f=this._newPolyline(u),v&&(d=this._newPolygon(u,x)),h||this._initOrUpdateEndLabel(t,r),g.setClipPath(T_(this,r,!0,t)));var D=function(t,e){var n=t.getVisual("visualMeta");if(n&&n.length&&t.count()&&"cartesian2d"===e.type){for(var i,r,o=n.length-1;o>=0;o--){var a=n[o].dimension,s=t.dimensions[a],l=t.getDimensionInfo(s);if("x"===(i=l&&l.coordDim)||"y"===i){r=n[o];break}}if(r){var u=e.getAxis(i),h=P(r.stops,(function(t){return{offset:0,coord:u.toGlobalCoord(u.dataToCoord(t.value)),color:t.color}})),c=h.length,p=r.outerColors.slice();c&&h[0].coord>h[c-1].coord&&(h.reverse(),p.reverse());var f=h[0].coord-10,d=h[c-1].coord+10,g=d-f;if(g<.001)return"transparent";L(h,(function(t){t.offset=(t.coord-f)/g})),h.push({offset:c?h[c-1].offset:.5,color:p[1]||"transparent"}),h.unshift({offset:c?h[0].offset:.5,color:p[0]||"transparent"});var y=new Bl(0,0,0,0,h,!0);return y[i]=f,y[i+"2"]=d,y}}}(a,r)||a.getVisual("style")[a.getVisual("drawType")],I=t.get(["emphasis","focus"]),A=t.get(["emphasis","blurScope"]);(f.useStyle(T(s.getLineStyle(),{fill:"none",stroke:D,lineJoin:"bevel"})),Ps(f,t,"lineStyle"),f.style.lineWidth>0&&"bolder"===t.get(["emphasis","lineStyle","width"]))&&(f.getState("emphasis").style.lineWidth=f.style.lineWidth+1);ja(f).seriesIndex=t.seriesIndex,As(f,I,A);var k=b_(t.get("smooth")),O=t.get("smoothMonotone"),R=t.get("connectNulls");if(f.setShape({smooth:k,smoothMonotone:O,connectNulls:R}),d){var N=a.getCalculationInfo("stackedOnSeries"),E=0;d.useStyle(T(l.getAreaStyle(),{fill:D,opacity:.7,lineJoin:"bevel",decal:a.getVisual("style").decal})),N&&(E=b_(N.get("smooth"))),d.setShape({smooth:k,stackedOnSmooth:E,smoothMonotone:O,connectNulls:R}),Ps(d,t,"areaStyle"),ja(d).seriesIndex=t.seriesIndex,As(d,I,A)}var B=function(t){i._changePolyState(t)};a.eachItemGraphicEl((function(t){t&&(t.onHoverStateChange=B)})),this._polyline.onHoverStateChange=B,this._data=a,this._coordSys=r,this._stackedOnPoints=x,this._points=u,this._step=C,this._valueOrigin=m},e.prototype.dispose=function(){},e.prototype.highlight=function(t,e,n,i){var r=t.getData(),o=cr(r,i);if(this._changePolyState("emphasis"),!(o instanceof Array)&&null!=o&&o>=0){var a=r.getLayout("points"),s=r.getItemGraphicEl(o);if(!s){var l=a[2*o],u=a[2*o+1];if(isNaN(l)||isNaN(u))return;if(this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(l,u))return;(s=new Km(r,o)).x=l,s.y=u,s.setZ(t.get("zlevel"),t.get("z")),s.__temp=!0,r.setItemGraphicEl(o,s),s.stopSymbolAnimation(!0),this.group.add(s)}s.highlight()}else $p.prototype.highlight.call(this,t,e,n,i)},e.prototype.downplay=function(t,e,n,i){var r=t.getData(),o=cr(r,i);if(this._changePolyState("normal"),null!=o&&o>=0){var a=r.getItemGraphicEl(o);a&&(a.__temp?(r.setItemGraphicEl(o,null),this.group.remove(a)):a.downplay())}else $p.prototype.downplay.call(this,t,e,n,i)},e.prototype._changePolyState=function(t){var e=this._polygon;vs(this._polyline,t),e&&vs(e,t)},e.prototype._newPolyline=function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new p_({shape:{points:t},segmentIgnoreThreshold:2,z2:10}),this._lineGroup.add(e),this._polyline=e,e},e.prototype._newPolygon=function(t,e){var n=this._polygon;return n&&this._lineGroup.remove(n),n=new d_({shape:{points:t,stackedOnPoints:e},segmentIgnoreThreshold:2}),this._lineGroup.add(n),this._polygon=n,n},e.prototype._initSymbolLabelAnimation=function(t,e,n){var i,r,o=e.getBaseAxis(),a=o.inverse;"cartesian2d"===e.type?(i=o.isHorizontal(),r=!1):"polar"===e.type&&(i="angle"===o.dim,r=!0);var s=t.hostModel,l=s.get("animationDuration");"function"==typeof l&&(l=l(null));var u=s.get("animationDelay")||0,h="function"==typeof u?u(null):u;t.eachItemGraphicEl((function(t,o){var s=t;if(s){var c=[t.x,t.y],p=void 0,f=void 0,d=void 0;if(r){var g=n,y=e.pointToCoord(c);i?(p=g.startAngle,f=g.endAngle,d=-y[1]/180*Math.PI):(p=g.r0,f=g.r,d=y[0])}else{var v=n;i?(p=v.x,f=v.x+v.width,d=t.x):(p=v.y+v.height,f=v.y,d=t.y)}var m=f===p?0:(d-p)/(f-p);a&&(m=1-m);var _="function"==typeof u?u(o):l*m+h,x=s.getSymbolPath(),b=x.getTextContent();s.attr({scaleX:0,scaleY:0}),s.animateTo({scaleX:1,scaleY:1},{duration:200,delay:_}),b&&b.animateFrom({style:{opacity:0}},{duration:300,delay:_}),x.disableLabelAnimation=!0}}))},e.prototype._initOrUpdateEndLabel=function(t,e){var n=t.getModel("endLabel");if(n.get("show")){var i=t.getData(),r=this._polyline,o=this._endLabel;o||((o=this._endLabel=new Va({z2:200})).ignoreClip=!0,r.setTextContent(this._endLabel),r.disableLabelAnimation=!0);var a=function(t){for(var e,n,i=t.length/2;i>0&&(e=t[2*i-2],n=t[2*i-1],isNaN(e)||isNaN(n));i--);return i-1}(i.getLayout("points"));a>=0&&(fu(r,du(t,"endLabel"),{labelFetcher:t,labelDataIndex:a,defaultText:function(t,e,n){return null!=n?Zm(i,n):jm(i,t)},enableTextSetter:!0},function(t,e){var n=e.getBaseAxis(),i=n.isHorizontal(),r=n.inverse,o=i?r?"right":"left":"center",a=i?"middle":r?"top":"bottom";return{normal:{align:t.get("align")||o,verticalAlign:t.get("verticalAlign")||a}}}(n,e)),r.textConfig.position=null)}else this._endLabel&&(this._polyline.removeTextContent(),this._endLabel=null)},e.prototype._endLabelOnDuring=function(t,e,n,i,r,o,a){var s=this._endLabel,l=this._polyline;if(s){t<1&&null==i.originalX&&(i.originalX=s.x,i.originalY=s.y);var u=n.getLayout("points"),h=n.hostModel,c=h.get("connectNulls"),p=o.get("precision"),f=o.get("distance")||0,d=a.getBaseAxis(),g=d.isHorizontal(),y=d.inverse,v=e.shape,m=y?g?v.x:v.y+v.height:g?v.x+v.width:v.y,_=(g?f:0)*(y?-1:1),x=(g?0:-f)*(y?-1:1),b=g?"x":"y",w=function(t,e,n){for(var i,r,o=t.length/2,a="x"===n?0:1,s=0,l=-1,u=0;u<o;u++)if(r=t[2*u+a],!isNaN(r)&&!isNaN(t[2*u+1-a]))if(0!==u){if(i<=e&&r>=e||i>=e&&r<=e){l=u;break}s=u,i=r}else i=r;return{range:[s,l],t:(e-i)/(r-i)}}(u,m,b),S=w.range,M=S[1]-S[0],T=void 0;if(M>=1){if(M>1&&!c){var C=M_(u,S[0]);s.attr({x:C[0]+_,y:C[1]+x}),r&&(T=h.getRawValue(S[0]))}else{(C=l.getPointOn(m,b))&&s.attr({x:C[0]+_,y:C[1]+x});var D=h.getRawValue(S[0]),I=h.getRawValue(S[1]);r&&(T=mr(n,p,D,I,w.t))}i.lastFrameIndex=S[0]}else{var A=1===t||i.lastFrameIndex>0?S[0]:0;C=M_(u,A);r&&(T=h.getRawValue(A)),s.attr({x:C[0]+_,y:C[1]+x})}r&&bu(s).setLabelText(T)}},e.prototype._doUpdateAnimation=function(t,e,n,i,r,o){var a=this._polyline,s=this._polygon,l=t.hostModel,u=function(t,e,n,i,r,o,a,s){for(var l=function(t,e){var n=[];return e.diff(t).add((function(t){n.push({cmd:"+",idx:t})})).update((function(t,e){n.push({cmd:"=",idx:e,idx1:t})})).remove((function(t){n.push({cmd:"-",idx:t})})).execute(),n}(t,e),u=[],h=[],c=[],p=[],f=[],d=[],g=[],y=n_(r,e,a),v=n_(o,t,s),m=t.getLayout("points")||[],_=e.getLayout("points")||[],x=0;x<l.length;x++){var b=l[x],w=!0,S=void 0,M=void 0;switch(b.cmd){case"=":S=2*b.idx,M=2*b.idx1;var T=m[S],C=m[S+1],D=_[M],I=_[M+1];(isNaN(T)||isNaN(C))&&(T=D,C=I),u.push(T,C),h.push(D,I),c.push(n[S],n[S+1]),p.push(i[M],i[M+1]),g.push(e.getRawIndex(b.idx1));break;case"+":var A=b.idx,k=y.dataDimsForPoint,L=r.dataToPoint([e.get(k[0],A),e.get(k[1],A)]);M=2*A,u.push(L[0],L[1]),h.push(_[M],_[M+1]);var P=i_(y,r,e,A);c.push(P[0],P[1]),p.push(i[M],i[M+1]),g.push(e.getRawIndex(A));break;case"-":var O=b.idx,R=t.getRawIndex(O),N=v.dataDimsForPoint;if(S=2*O,R!==O){var E=o.dataToPoint([t.get(N[0],O),t.get(N[1],O)]),B=i_(v,o,t,O);u.push(m[S],m[S+1]),h.push(E[0],E[1]),c.push(n[S],n[S+1]),p.push(B[0],B[1]),g.push(R)}else w=!1}w&&(f.push(b),d.push(d.length))}d.sort((function(t,e){return g[t]-g[e]}));var z=u.length,F=a_(z),V=a_(z),H=a_(z),W=a_(z),G=[];for(x=0;x<d.length;x++){var U=d[x],Y=2*x,X=2*U;F[Y]=u[X],F[Y+1]=u[X+1],V[Y]=h[X],V[Y+1]=h[X+1],H[Y]=c[X],H[Y+1]=c[X+1],W[Y]=p[X],W[Y+1]=p[X+1],G[x]=f[U]}return{current:F,next:V,stackedOnCurrent:H,stackedOnNext:W,status:G}}(this._data,t,this._stackedOnPoints,e,this._coordSys,n,this._valueOrigin,o),h=u.current,c=u.stackedOnCurrent,p=u.next,f=u.stackedOnNext;if(r&&(h=w_(u.current,n,r),c=w_(u.stackedOnCurrent,n,r),p=w_(u.next,n,r),f=w_(u.stackedOnNext,n,r)),x_(h,p)>3e3||s&&x_(c,f)>3e3)return a.setShape({points:p}),void(s&&s.setShape({points:p,stackedOnPoints:f}));a.shape.__points=u.current,a.shape.points=h;var d={shape:{points:p}};u.current!==h&&(d.shape.__points=u.next),a.stopAnimation(),iu(a,d,l),s&&(s.setShape({points:h,stackedOnPoints:c}),s.stopAnimation(),iu(s,{shape:{stackedOnPoints:f}},l),a.shape.points!==s.shape.points&&(s.shape.points=a.shape.points));for(var g=[],y=u.status,v=0;v<y.length;v++){if("="===y[v].cmd){var m=t.getItemGraphicEl(y[v].idx1);m&&g.push({el:m,ptIdx:v})}}a.animators&&a.animators.length&&a.animators[0].during((function(){s&&s.dirtyShape();for(var t=a.shape.__points,e=0;e<g.length;e++){var n=g[e].el,i=2*g[e].ptIdx;n.x=t[i],n.y=t[i+1],n.markRedraw()}}))},e.prototype.remove=function(t){var e=this.group,n=this._data;this._lineGroup.removeAll(),this._symbolDraw.remove(!0),n&&n.eachItemGraphicEl((function(t,i){t.__temp&&(e.remove(t),n.setItemGraphicEl(i,null))})),this._polyline=this._polygon=this._coordSys=this._points=this._stackedOnPoints=this._endLabel=this._data=null},e.type="line",e}($p);var D_={average:function(t){for(var e=0,n=0,i=0;i<t.length;i++)isNaN(t[i])||(e+=t[i],n++);return 0===n?NaN:e/n},sum:function(t){for(var e=0,n=0;n<t.length;n++)e+=t[n]||0;return e},max:function(t){for(var e=-1/0,n=0;n<t.length;n++)t[n]>e&&(e=t[n]);return isFinite(e)?e:NaN},min:function(t){for(var e=1/0,n=0;n<t.length;n++)t[n]<e&&(e=t[n]);return isFinite(e)?e:NaN},nearest:function(t){return t[0]}},I_=function(t){return Math.round(t.length/2)};function A_(t){return{seriesType:t,reset:function(t,e,n){var i=t.getData(),r=t.get("sampling"),o=t.coordinateSystem,a=i.count();if(a>10&&"cartesian2d"===o.type&&r){var s=o.getBaseAxis(),l=o.getOtherAxis(s),u=s.getExtent(),h=n.getDevicePixelRatio(),c=Math.abs(u[1]-u[0])*(h||1),p=Math.round(a/c);if(p>1){"lttb"===r&&t.setData(i.lttbDownSample(i.mapDimension(l.dim),1/p));var f=void 0;"string"==typeof r?f=D_[r]:"function"==typeof r&&(f=r),f&&t.setData(i.downSample(i.mapDimension(l.dim),1/p,f,I_))}}}}}var k_=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.getInitialData=function(t,e){return fv(this.getSource(),this,{useEncodeDefaulter:!0})},e.prototype.getMarkerPosition=function(t){var e=this.coordinateSystem;if(e){var n=e.dataToPoint(e.clampData(t)),i=this.getData(),r=i.getLayout("offset"),o=i.getLayout("size");return n[e.getBaseAxis().isHorizontal()?0:1]+=r+o/2,n}return[NaN,NaN]},e.type="series.__base_bar__",e.defaultOption={zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:3e3,progressiveChunkMode:"mod"},e}(Fp);Fp.registerClass(k_);var L_=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}var i,r;return n(e,t),e.prototype.getInitialData=function(){return fv(this.getSource(),this,{useEncodeDefaulter:!0,createInvertedIndices:!!this.get("realtimeSort",!0)||null})},e.prototype.getProgressive=function(){return!!this.get("large")&&this.get("progressive")},e.prototype.getProgressiveThreshold=function(){var t=this.get("progressiveThreshold"),e=this.get("largeThreshold");return e>t&&(t=e),t},e.prototype.brushSelector=function(t,e,n){return n.rect(e.getItemLayout(t))},e.type="series.bar",e.dependencies=["grid","polar"],e.defaultOption=(i=k_.defaultOption,r={clip:!0,roundCap:!1,showBackground:!1,backgroundStyle:{color:"rgba(180, 180, 180, 0.2)",borderColor:null,borderWidth:0,borderType:"solid",borderRadius:0,shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0,opacity:1},select:{itemStyle:{borderColor:"#212121"}},realtimeSort:!1},S(S({},i,!0),r,!0)),e}(k_),P_=function(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0},O_=function(t){function e(e){var n=t.call(this,e)||this;return n.type="sausage",n}return n(e,t),e.prototype.getDefaultShape=function(){return new P_},e.prototype.buildPath=function(t,e){var n=e.cx,i=e.cy,r=Math.max(e.r0||0,0),o=Math.max(e.r,0),a=.5*(o-r),s=r+a,l=e.startAngle,u=e.endAngle,h=e.clockwise,c=Math.cos(l),p=Math.sin(l),f=Math.cos(u),d=Math.sin(u);(h?u-l<2*Math.PI:l-u<2*Math.PI)&&(t.moveTo(c*r+n,p*r+i),t.arc(c*s+n,p*s+i,a,-Math.PI+l,l,!h)),t.arc(n,i,o,l,u,!h),t.moveTo(f*o+n,d*o+i),t.arc(f*s+n,d*s+i,a,u-2*Math.PI,u-Math.PI,!h),0!==r&&(t.arc(n,i,r,u,l,h),t.moveTo(c*r+n,d*r+i)),t.closePath()},e}(Da),R_=["itemStyle","borderWidth"],N_=["itemStyle","borderRadius"],E_=[0,0],B_=Math.max,z_=Math.min;var F_=function(t){function e(){var n=t.call(this)||this;return n.type=e.type,n._isFirstFrame=!0,n}return n(e,t),e.prototype.render=function(t,e,n,i){this._model=t,this._removeOnRenderedListener(n),this._updateDrawMode(t);var r=t.get("coordinateSystem");("cartesian2d"===r||"polar"===r)&&(this._isLargeDraw?this._renderLarge(t,e,n):this._renderNormal(t,e,n,i))},e.prototype.incrementalPrepareRender=function(t){this._clear(),this._updateDrawMode(t),this._updateLargeClip(t)},e.prototype.incrementalRender=function(t,e){this._incrementalRenderLarge(t,e)},e.prototype._updateDrawMode=function(t){var e=t.pipelineContext.large;null!=this._isLargeDraw&&e===this._isLargeDraw||(this._isLargeDraw=e,this._clear())},e.prototype._renderNormal=function(t,e,n,i){var r,o=this.group,a=t.getData(),s=this._data,l=t.coordinateSystem,u=l.getBaseAxis();"cartesian2d"===l.type?r=u.isHorizontal():"polar"===l.type&&(r="angle"===u.dim);var h=t.isAnimationEnabled()?t:null,c=function(t,e){var n=t.get("realtimeSort",!0),i=e.getBaseAxis();0;if(n&&"category"===i.type&&"cartesian2d"===e.type)return{baseAxis:i,otherAxis:e.getOtherAxis(i)}}(t,l);c&&this._enableRealtimeSort(c,a,n);var p=t.get("clip",!0)||c,f=function(t,e){var n=t.getArea&&t.getArea();if(v_(t,"cartesian2d")){var i=t.getBaseAxis();if("category"!==i.type||!i.onBand){var r=e.getLayout("bandWidth");i.isHorizontal()?(n.x-=r,n.width+=2*r):(n.y-=r,n.height+=2*r)}}return n}(l,a);o.removeClipPath();var d=t.get("roundCap",!0),g=t.get("showBackground",!0),y=t.getModel("backgroundStyle"),v=y.get("borderRadius")||0,m=[],_=this._backgroundEls,x=i&&i.isInitSort,b=i&&"changeAxisOrder"===i.type;function w(t){var e=G_[l.type](a,t),n=function(t,e,n){return new("polar"===t.type?vl:Ba)({shape:Z_(e,n,t),silent:!0,z2:0})}(l,r,e);return n.useStyle(y.getItemStyle()),"cartesian2d"===l.type&&n.setShape("r",v),m[t]=n,n}a.diff(s).add((function(e){var n=a.getItemModel(e),i=G_[l.type](a,e,n);if(g&&w(e),a.hasValue(e)){var s=!1;p&&(s=V_[l.type](f,i));var y=H_[l.type](t,a,e,i,r,h,u.model,!1,d);U_(y,a,e,n,i,t,r,"polar"===l.type),x?y.attr({shape:i}):c?W_(c,h,y,i,e,r,!1,!1):ru(y,{shape:i},t,e),a.setItemGraphicEl(e,y),o.add(y),y.ignore=s}})).update((function(e,n){var i=a.getItemModel(e),S=G_[l.type](a,e,i);if(g){var M=void 0;0===_.length?M=w(n):((M=_[n]).useStyle(y.getItemStyle()),"cartesian2d"===l.type&&M.setShape("r",v),m[e]=M);var T=G_[l.type](a,e);iu(M,{shape:Z_(r,T,l)},h,e)}var C=s.getItemGraphicEl(n);if(!a.hasValue(e))return o.remove(C),void(C=null);var D=!1;p&&(D=V_[l.type](f,S))&&o.remove(C),C||(C=H_[l.type](t,a,e,S,r,h,u.model,!!C,d)),b||U_(C,a,e,i,S,t,r,"polar"===l.type),x?C.attr({shape:S}):c?W_(c,h,C,S,e,r,!0,b):iu(C,{shape:S},t,e,null),a.setItemGraphicEl(e,C),C.ignore=D,o.add(C)})).remove((function(e){var n=s.getItemGraphicEl(e);n&&su(n,t,e)})).execute();var S=this._backgroundGroup||(this._backgroundGroup=new Ci);S.removeAll();for(var M=0;M<m.length;++M)S.add(m[M]);o.add(S),this._backgroundEls=m,this._data=a},e.prototype._renderLarge=function(t,e,n){this._clear(),q_(t,this.group),this._updateLargeClip(t)},e.prototype._incrementalRenderLarge=function(t,e){this._removeBackground(),q_(e,this.group,!0)},e.prototype._updateLargeClip=function(t){var e=t.get("clip",!0)?function(t,e,n,i,r){return t?"polar"===t.type?y_(t,e,n):"cartesian2d"===t.type?g_(t,e,n,i,r):null:null}(t.coordinateSystem,!1,t):null;e?this.group.setClipPath(e):this.group.removeClipPath()},e.prototype._enableRealtimeSort=function(t,e,n){var i=this;if(e.count()){var r=t.baseAxis;if(this._isFirstFrame)this._dispatchInitSort(e,t,n),this._isFirstFrame=!1;else{var o=function(t){var n=e.getItemGraphicEl(t);if(n){var i=n.shape;return(r.isHorizontal()?Math.abs(i.height):Math.abs(i.width))||0}return 0};this._onRendered=function(){i._updateSortWithinSameData(e,o,r,n)},n.getZr().on("rendered",this._onRendered)}}},e.prototype._dataSort=function(t,e,n){var i=[];return t.each(t.mapDimension(e.dim),(function(t,e){var r=n(e);r=null==r?NaN:r,i.push({dataIndex:e,mappedValue:r,ordinalNumber:t})})),i.sort((function(t,e){return e.mappedValue-t.mappedValue})),{ordinalNumbers:P(i,(function(t){return t.ordinalNumber}))}},e.prototype._isOrderChangedWithinSameData=function(t,e,n){for(var i=n.scale,r=t.mapDimension(n.dim),o=Number.MAX_VALUE,a=0,s=i.getOrdinalMeta().categories.length;a<s;++a){var l=t.rawIndexOf(r,i.getRawOrdinalNumber(a)),u=l<0?Number.MIN_VALUE:e(t.indexOfRawIndex(l));if(u>o)return!0;o=u}return!1},e.prototype._isOrderDifferentInView=function(t,e){for(var n=e.scale,i=n.getExtent(),r=Math.max(0,i[0]),o=Math.min(i[1],n.getOrdinalMeta().categories.length-1);r<=o;++r)if(t.ordinalNumbers[r]!==n.getRawOrdinalNumber(r))return!0},e.prototype._updateSortWithinSameData=function(t,e,n,i){if(this._isOrderChangedWithinSameData(t,e,n)){var r=this._dataSort(t,n,e);this._isOrderDifferentInView(r,n)&&(this._removeOnRenderedListener(i),i.dispatchAction({type:"changeAxisOrder",componentType:n.dim+"Axis",axisId:n.index,sortInfo:r}))}},e.prototype._dispatchInitSort=function(t,e,n){var i=e.baseAxis,r=this._dataSort(t,i,(function(n){return t.get(t.mapDimension(e.otherAxis.dim),n)}));n.dispatchAction({type:"changeAxisOrder",componentType:i.dim+"Axis",isInitSort:!0,axisId:i.index,sortInfo:r,animation:{duration:0}})},e.prototype.remove=function(t,e){this._clear(this._model),this._removeOnRenderedListener(e)},e.prototype.dispose=function(t,e){this._removeOnRenderedListener(e)},e.prototype._removeOnRenderedListener=function(t){this._onRendered&&(t.getZr().off("rendered",this._onRendered),this._onRendered=null)},e.prototype._clear=function(t){var e=this.group,n=this._data;t&&t.isAnimationEnabled()&&n&&!this._isLargeDraw?(this._removeBackground(),this._backgroundEls=[],n.eachItemGraphicEl((function(e){su(e,t,ja(e).dataIndex)}))):e.removeAll(),this._data=null,this._isFirstFrame=!0},e.prototype._removeBackground=function(){this.group.remove(this._backgroundGroup),this._backgroundGroup=null},e.type="bar",e}($p),V_={cartesian2d:function(t,e){var n=e.width<0?-1:1,i=e.height<0?-1:1;n<0&&(e.x+=e.width,e.width=-e.width),i<0&&(e.y+=e.height,e.height=-e.height);var r=t.x+t.width,o=t.y+t.height,a=B_(e.x,t.x),s=z_(e.x+e.width,r),l=B_(e.y,t.y),u=z_(e.y+e.height,o),h=s<a,c=u<l;return e.x=h&&a>r?s:a,e.y=c&&l>o?u:l,e.width=h?0:s-a,e.height=c?0:u-l,n<0&&(e.x+=e.width,e.width=-e.width),i<0&&(e.y+=e.height,e.height=-e.height),h||c},polar:function(t,e){var n=e.r0<=e.r?1:-1;if(n<0){var i=e.r;e.r=e.r0,e.r0=i}var r=z_(e.r,t.r),o=B_(e.r0,t.r0);e.r=r,e.r0=o;var a=r-o<0;if(n<0){i=e.r;e.r=e.r0,e.r0=i}return a}},H_={cartesian2d:function(t,e,n,i,r,o,a,s,l){var u=new Ba({shape:M({},i),z2:1});(u.__dataIndex=n,u.name="item",o)&&(u.shape[r?"height":"width"]=0);return u},polar:function(t,e,n,i,r,o,a,s,l){var u=i.startAngle<i.endAngle,h=new(!r&&l?O_:vl)({shape:T({clockwise:u},i),z2:1});if(h.name="item",o){var c=r?"r":"endAngle",p={};h.shape[c]=r?0:i.startAngle,p[c]=i[c],(s?iu:ru)(h,{shape:p},o)}return h}};function W_(t,e,n,i,r,o,a,s){var l,u;o?(u={x:i.x,width:i.width},l={y:i.y,height:i.height}):(u={y:i.y,height:i.height},l={x:i.x,width:i.width}),s||(a?iu:ru)(n,{shape:l},e,r,null),(a?iu:ru)(n,{shape:u},e?t.baseAxis.model:null,r)}var G_={cartesian2d:function(t,e,n){var i=t.getItemLayout(e),r=n?function(t,e){var n=t.get(R_)||0,i=isNaN(e.width)?Number.MAX_VALUE:Math.abs(e.width),r=isNaN(e.height)?Number.MAX_VALUE:Math.abs(e.height);return Math.min(n,i,r)}(n,i):0,o=i.width>0?1:-1,a=i.height>0?1:-1;return{x:i.x+o*r/2,y:i.y+a*r/2,width:i.width-o*r,height:i.height-a*r}},polar:function(t,e,n){var i=t.getItemLayout(e);return{cx:i.cx,cy:i.cy,r0:i.r0,r:i.r,startAngle:i.startAngle,endAngle:i.endAngle}}};function U_(t,e,n,i,r,o,a,s){var l=e.getItemVisual(n,"style");s||t.setShape("r",i.get(N_)||0),t.useStyle(l);var u=i.getShallow("cursor");if(u&&t.attr("cursor",u),!s){var h=a?r.height>0?"bottom":"top":r.width>0?"left":"right",c=du(i);fu(t,c,{labelFetcher:o,labelDataIndex:n,defaultText:jm(o.getData(),n),inheritColor:l.fill,defaultOpacity:l.opacity,defaultOutsidePosition:h}),function(t,e,n,i){if(t){var r=bu(t);r.prevValue=r.value,r.value=n;var o=e.normal;r.valueAnimation=o.get("valueAnimation"),r.valueAnimation&&(r.precision=o.get("precision"),r.defaultInterpolatedText=i,r.statesModels=e)}}(t.getTextContent(),c,o.getRawValue(n),(function(t){return Zm(e,t)}))}var p=i.getModel(["emphasis"]);As(t,p.get("focus"),p.get("blurScope")),Ps(t,i),function(t){return null!=t.startAngle&&null!=t.endAngle&&t.startAngle===t.endAngle}(r)&&(t.style.fill="none",t.style.stroke="none",L(t.states,(function(t){t.style&&(t.style.fill=t.style.stroke="none")})))}var Y_=function(){},X_=function(t){function e(e){var n=t.call(this,e)||this;return n.type="largeBar",n}return n(e,t),e.prototype.getDefaultShape=function(){return new Y_},e.prototype.buildPath=function(t,e){for(var n=e.points,i=this.__startPoint,r=this.__baseDimIdx,o=0;o<n.length;o+=2)i[r]=n[o+r],t.moveTo(i[0],i[1]),t.lineTo(n[o],n[o+1])},e}(Da);function q_(t,e,n){var i=t.getData(),r=[],o=i.getLayout("valueAxisHorizontal")?1:0;r[1-o]=i.getLayout("valueAxisStart");var a=i.getLayout("largeDataIndices"),s=i.getLayout("barWidth"),l=t.getModel("backgroundStyle");if(t.get("showBackground",!0)){var u=i.getLayout("largeBackgroundPoints"),h=[];h[1-o]=i.getLayout("backgroundStart");var c=new X_({shape:{points:u},incremental:!!n,silent:!0,z2:0});c.__startPoint=h,c.__baseDimIdx=o,c.__largeDataIndices=a,c.__barWidth=s,function(t,e,n){var i=e.get("borderColor")||e.get("color"),r=e.getItemStyle();t.useStyle(r),t.style.fill=null,t.style.stroke=i,t.style.lineWidth=n.getLayout("barWidth")}(c,l,i),e.add(c)}var p=new X_({shape:{points:i.getLayout("largePoints")},incremental:!!n});p.__startPoint=r,p.__baseDimIdx=o,p.__largeDataIndices=a,p.__barWidth=s,e.add(p),function(t,e,n){var i=n.getVisual("style");t.useStyle(M({},i)),t.style.fill=null,t.style.stroke=i.fill,t.style.lineWidth=n.getLayout("barWidth")}(p,0,i),ja(p).seriesIndex=t.seriesIndex,t.get("silent")||(p.on("mousedown",j_),p.on("mousemove",j_))}var j_=rf((function(t){var e=function(t,e,n){var i=t.__baseDimIdx,r=1-i,o=t.shape.points,a=t.__largeDataIndices,s=Math.abs(t.__barWidth/2),l=t.__startPoint[r];E_[0]=e,E_[1]=n;for(var u=E_[i],h=E_[1-i],c=u-s,p=u+s,f=0,d=o.length/2;f<d;f++){var g=2*f,y=o[g+i],v=o[g+r];if(y>=c&&y<=p&&(l<=v?h>=l&&h<=v:h>=v&&h<=l))return a[f]}return-1}(this,t.offsetX,t.offsetY);ja(this).dataIndex=e>=0?e:null}),30,!1);function Z_(t,e,n){if(v_(n,"cartesian2d")){var i=e,r=n.getArea();return{x:t?i.x:r.x,y:t?r.y:i.y,width:t?i.width:r.width,height:t?r.height:i.height}}var o=e;return{cx:(r=n.getArea()).cx,cy:r.cy,r0:t?r.r0:o.r0,r:t?r.r:o.r,startAngle:t?o.startAngle:0,endAngle:t?o.endAngle:2*Math.PI}}var K_=2*Math.PI,$_=Math.PI/180;function Q_(t,e,n){e.eachSeriesByType(t,(function(t){var e=t.getData(),i=e.mapDimension("value"),r=function(t,e){return Lh(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}(t,n),o=t.get("center"),a=t.get("radius");z(a)||(a=[0,a]),z(o)||(o=[o,o]);var s=Ei(r.width,n.getWidth()),l=Ei(r.height,n.getHeight()),u=Math.min(s,l),h=Ei(o[0],s)+r.x,c=Ei(o[1],l)+r.y,p=Ei(a[0],u/2),f=Ei(a[1],u/2),d=-t.get("startAngle")*$_,g=t.get("minAngle")*$_,y=0;e.each(i,(function(t){!isNaN(t)&&y++}));var v=e.getSum(i),m=Math.PI/(v||y)*2,_=t.get("clockwise"),x=t.get("roseType"),b=t.get("stillShowZeroSum"),w=e.getDataExtent(i);w[0]=0;var S=K_,M=0,T=d,C=_?1:-1;if(e.setLayout({viewRect:r,r:f}),e.each(i,(function(t,n){var i;if(isNaN(t))e.setItemLayout(n,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:_,cx:h,cy:c,r0:p,r:x?NaN:f});else{(i="area"!==x?0===v&&b?m:t*m:K_/y)<g?(i=g,S-=g):M+=t;var r=T+C*i;e.setItemLayout(n,{angle:i,startAngle:T,endAngle:r,clockwise:_,cx:h,cy:c,r0:p,r:x?Ni(t,w,[p,f]):f}),T=r}})),S<K_&&y)if(S<=.001){var D=K_/y;e.each(i,(function(t,n){if(!isNaN(t)){var i=e.getItemLayout(n);i.angle=D,i.startAngle=d+C*n*D,i.endAngle=d+C*(n+1)*D}}))}else m=S/M,T=d,e.each(i,(function(t,n){if(!isNaN(t)){var i=e.getItemLayout(n),r=i.angle===g?g:t*m;i.startAngle=T,i.endAngle=T+C*r,T+=C*r}}))}))}var J_=Math.PI/180;function tx(t,e,n,i,r,o,a,s,l,u){if(!(t.length<2)){for(var h=t.length,c=0;c<h;c++)if("outer"===t[c].position&&"labelLine"===t[c].labelAlignTo){var p=t[c].label.x-u;t[c].linePoints[1][0]+=p,t[c].label.x=u}dd(t,l,l+a)&&function(t){for(var o={list:[],maxY:0},a={list:[],maxY:0},s=0;s<t.length;s++)if("none"===t[s].labelAlignTo){var l=t[s],u=l.label.y>n?a:o,h=Math.abs(l.label.y-n);if(h>u.maxY){var c=l.label.x-e-l.len2*r,p=i+l.len,d=c<p?Math.sqrt(h*h/(1-c*c/p/p)):p;u.rB=d,u.maxY=h}u.list.push(l)}f(o),f(a)}(t)}function f(t){for(var o=t.rB,a=o*o,s=0;s<t.list.length;s++){var l=t.list[s],u=Math.abs(l.label.y-n),h=i+l.len,c=h*h,p=Math.sqrt((1-Math.abs(u*u/a))*c);l.label.x=e+(p+l.len2)*r}}}function ex(t){return"center"===t.position}function nx(t){var e,n,i=t.getData(),r=[],o=!1,a=(t.get("minShowLabelAngle")||0)*J_,s=i.getLayout("viewRect"),l=i.getLayout("r"),u=s.width,h=s.x,c=s.y,p=s.height;function f(t){t.ignore=!0}i.each((function(t){var s=i.getItemGraphicEl(t),c=s.shape,p=s.getTextContent(),d=s.getTextGuideLine(),g=i.getItemModel(t),y=g.getModel("label"),v=y.get("position")||g.get(["emphasis","label","position"]),m=y.get("distanceToLabelLine"),_=y.get("alignTo"),x=Ei(y.get("edgeDistance"),u),b=y.get("bleedMargin"),w=g.getModel("labelLine"),S=w.get("length");S=Ei(S,u);var M=w.get("length2");if(M=Ei(M,u),Math.abs(c.endAngle-c.startAngle)<a)return L(p.states,f),void(p.ignore=!0);if(function(t){if(!t.ignore)return!0;for(var e in t.states)if(!1===t.states[e].ignore)return!0;return!1}(p)){var T,C,D,I,A=(c.startAngle+c.endAngle)/2,k=Math.cos(A),P=Math.sin(A);e=c.cx,n=c.cy;var O,R="inside"===v||"inner"===v;if("center"===v)T=c.cx,C=c.cy,I="center";else{var N=(R?(c.r+c.r0)/2*k:c.r*k)+e,E=(R?(c.r+c.r0)/2*P:c.r*P)+n;if(T=N+3*k,C=E+3*P,!R){var B=N+k*(S+l-c.r),z=E+P*(S+l-c.r),F=B+(k<0?-1:1)*M;T="edge"===_?k<0?h+x:h+u-x:F+(k<0?-m:m),C=z,D=[[N,E],[B,z],[F,z]]}I=R?"center":"edge"===_?k>0?"right":"left":k>0?"left":"right"}var V=y.get("rotate");if(O="number"==typeof V?V*(Math.PI/180):V?k<0?-A+Math.PI:-A:0,o=!!O,p.x=T,p.y=C,p.rotation=O,p.setStyle({verticalAlign:"middle"}),R){p.setStyle({align:I});var H=p.states.select;H&&(H.x+=p.x,H.y+=p.y)}else{var W=p.getBoundingRect().clone();W.applyTransform(p.getComputedTransform());var G=(p.style.margin||0)+2.1;W.y-=G/2,W.height+=G,r.push({label:p,labelLine:d,position:v,len:S,len2:M,minTurnAngle:w.get("minTurnAngle"),maxSurfaceAngle:w.get("maxSurfaceAngle"),surfaceNormal:new dn(k,P),linePoints:D,textAlign:I,labelDistance:m,labelAlignTo:_,edgeDistance:x,bleedMargin:b,rect:W})}s.setTextConfig({inside:R})}})),!o&&t.get("avoidLabelOverlap")&&function(t,e,n,i,r,o,a,s){for(var l=[],u=[],h=Number.MAX_VALUE,c=-Number.MAX_VALUE,p=0;p<t.length;p++){var f=t[p].label;ex(t[p])||(f.x<e?(h=Math.min(h,f.x),l.push(t[p])):(c=Math.max(c,f.x),u.push(t[p])))}for(tx(u,e,n,i,1,0,o,0,s,c),tx(l,e,n,i,-1,0,o,0,s,h),p=0;p<t.length;p++){var d=t[p];if(f=d.label,!ex(d)){var g=d.linePoints;if(g){var y="edge"===d.labelAlignTo,v=d.rect.width,m=void 0;(m=y?f.x<e?g[2][0]-d.labelDistance-a-d.edgeDistance:a+r-d.edgeDistance-g[2][0]-d.labelDistance:f.x<e?f.x-a-d.bleedMargin:a+r-f.x-d.bleedMargin)<d.rect.width&&(d.label.style.width=m,"edge"===d.labelAlignTo&&(v=m));var _=g[1][0]-g[2][0];y?f.x<e?g[2][0]=a+d.edgeDistance+v+d.labelDistance:g[2][0]=a+r-d.edgeDistance-v-d.labelDistance:(f.x<e?g[2][0]=f.x+d.labelDistance:g[2][0]=f.x-d.labelDistance,g[1][0]=g[2][0]+_),g[1][1]=g[2][1]=f.y}}}}(r,e,n,l,u,p,h,c);for(var d=0;d<r.length;d++){var g=r[d],y=g.label,v=g.labelLine,m=isNaN(y.x)||isNaN(y.y);if(y){y.setStyle({align:g.textAlign}),m&&(L(y.states,f),y.ignore=!0);var _=y.states.select;_&&(_.x+=y.x,_.y+=y.y)}if(v){var x=g.linePoints;m||!x?(L(v.states,f),v.ignore=!0):(sd(x,g.minTurnAngle),ld(x,g.surfaceNormal,g.maxSurfaceAngle),v.setShape({points:x}),y.__hostTarget.textGuideLineConfig={anchor:new dn(x[0][0],x[0][1])})}}}function ix(t,e){var n=t.get("borderRadius");return null==n?null:(z(n)||(n=[n,n]),{innerCornerRadius:On(n[0],e.r0),cornerRadius:On(n[1],e.r)})}var rx=function(t){function e(e,n,i){var r=t.call(this)||this;r.z2=2;var o=new Tl,a=new Va;return r.setTextGuideLine(o),r.setTextContent(a),r.updateData(e,n,i,!0),r}return n(e,t),e.prototype.updateData=function(t,e,n,r){var o=this,a=t.hostModel,s=t.getItemModel(e),l=s.getModel("emphasis"),u=t.getItemLayout(e),h=M(ix(s.getModel("itemStyle"),u)||{},u);r?(o.setShape(h),"scale"===a.getShallow("animationType")?(o.shape.r=u.r0,ru(o,{shape:{r:u.r}},a,e)):null!=n?(o.setShape({startAngle:n,endAngle:n}),ru(o,{shape:{startAngle:u.startAngle,endAngle:u.endAngle}},a,e)):(o.shape.endAngle=u.startAngle,iu(o,{shape:{endAngle:u.endAngle}},a,e))):iu(o,{shape:h},a,e);o.useStyle(t.getItemVisual(e,"style")),Ps(o,s);var c=(u.startAngle+u.endAngle)/2,p=a.get("selectedOffset"),f=Math.cos(c)*p,d=Math.sin(c)*p,g=s.getShallow("cursor");g&&o.attr("cursor",g),this._updateLabel(a,t,e),o.ensureState("emphasis").shape=i({r:u.r+(l.get("scale")&&l.get("scaleSize")||0)},ix(l.getModel("itemStyle"),u)),M(o.ensureState("select"),{x:f,y:d,shape:ix(s.getModel(["select","itemStyle"]),u)}),M(o.ensureState("blur"),{shape:ix(s.getModel(["blur","itemStyle"]),u)});var y=o.getTextGuideLine(),v=o.getTextContent();M(y.ensureState("select"),{x:f,y:d}),M(v.ensureState("select"),{x:f,y:d}),As(this,l.get("focus"),l.get("blurScope"))},e.prototype._updateLabel=function(t,e,n){var i=this,r=e.getItemModel(n),o=r.getModel("labelLine"),a=e.getItemVisual(n,"style"),s=a&&a.fill,l=a&&a.opacity;fu(i,du(r),{labelFetcher:e.hostModel,labelDataIndex:n,inheritColor:s,defaultOpacity:l,defaultText:t.getFormattedLabel(n,"normal")||e.getName(n)});var u=i.getTextContent();i.setTextConfig({position:null,rotation:null}),u.attr({z2:10}),cd(this,pd(r),{stroke:s,opacity:J(o.get(["lineStyle","opacity"]),l,1)})},e}(vl),ox=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.ignoreLabelLineUpdate=!0,e}return n(e,t),e.prototype.init=function(){var t=new Ci;this._sectorGroup=t},e.prototype.render=function(t,e,n,i){var r,o=t.getData(),a=this._data,s=this.group;if(!a&&o.count()>0){for(var l=o.getItemLayout(0),u=1;isNaN(l&&l.startAngle)&&u<o.count();++u)l=o.getItemLayout(u);l&&(r=l.startAngle)}o.diff(a).add((function(t){var e=new rx(o,t,r);o.setItemGraphicEl(t,e),s.add(e)})).update((function(t,e){var n=a.getItemGraphicEl(e);n.updateData(o,t,r),n.off("click"),s.add(n),o.setItemGraphicEl(t,n)})).remove((function(e){su(a.getItemGraphicEl(e),t,e)})).execute(),nx(t),"expansion"!==t.get("animationTypeUpdate")&&(this._data=o)},e.prototype.dispose=function(){},e.prototype.containPoint=function(t,e){var n=e.getData().getItemLayout(0);if(n){var i=t[0]-n.cx,r=t[1]-n.cy,o=Math.sqrt(i*i+r*r);return o<=n.r&&o>=n.r0}},e.type="pie",e}($p);var ax=function(){function t(t,e){this._getDataWithEncodedVisual=t,this._getRawData=e}return t.prototype.getAllNames=function(){var t=this._getRawData();return t.mapArray(t.getName)},t.prototype.containName=function(t){return this._getRawData().indexOfName(t)>=0},t.prototype.indexOfName=function(t){return this._getDataWithEncodedVisual().indexOfName(t)},t.prototype.getItemVisual=function(t,e){return this._getDataWithEncodedVisual().getItemVisual(t,e)},t}(),sx=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.useColorPaletteOnData=!0,e}return n(e,t),e.prototype.init=function(e){t.prototype.init.apply(this,arguments),this.legendVisualProvider=new ax(E(this.getData,this),E(this.getRawData,this)),this._defaultLabelLine(e)},e.prototype.mergeOption=function(){t.prototype.mergeOption.apply(this,arguments)},e.prototype.getInitialData=function(){return function(t,e,n){e=z(e)&&{coordDimensions:e}||M({},e);var i=t.getSource(),r=av(i,e),o=new iv(r,t);return o.initData(i,n),o}(this,{coordDimensions:["value"],encodeDefaulter:B(tc,this)})},e.prototype.getDataParams=function(e){var n=this.getData(),i=t.prototype.getDataParams.call(this,e),r=[];return n.each(n.mapDimension("value"),(function(t){r.push(t)})),i.percent=Vi(r,e,n.hostModel.get("percentPrecision")),i.$vars.push("percent"),i},e.prototype._defaultLabelLine=function(t){nr(t,"labelLine",["show"]);var e=t.labelLine,n=t.emphasis.labelLine;e.show=e.show&&t.label.show,n.show=n.show&&t.emphasis.label.show},e.type="series.pie",e.defaultOption={zlevel:0,z:2,legendHoverLink:!0,center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,minShowLabelAngle:0,selectedOffset:10,percentPrecision:2,stillShowZeroSum:!0,left:0,top:0,right:0,bottom:0,width:null,height:null,label:{rotate:0,show:!0,overflow:"truncate",position:"outer",alignTo:"none",edgeDistance:"25%",bleedMargin:10,distanceToLabelLine:5},labelLine:{show:!0,length:15,length2:15,smooth:!1,minTurnAngle:90,maxSurfaceAngle:90,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1},labelLayout:{hideOverlap:!0},emphasis:{scale:!0,scaleSize:5},avoidLabelOverlap:!0,animationType:"expansion",animationDuration:1e3,animationTypeUpdate:"transition",animationEasingUpdate:"cubicInOut",animationDurationUpdate:500,animationEasing:"cubicInOut"},e}(Fp);var lx=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.type="grid",e.dependencies=["xAxis","yAxis"],e.layoutMode="box",e.defaultOption={show:!1,zlevel:0,z:0,left:"10%",top:60,right:"10%",bottom:70,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"},e}(Eh),ux=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.getCoordSysModel=function(){return this.getReferringComponents("grid",gr).models[0]},e.type="cartesian2dAxis",e}(Eh);A(ux,dm);var hx={show:!0,zlevel:0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#6E7079",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,lineStyle:{color:["#E0E6F1"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}}},cx=S({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},hx),px=S({boundaryGap:[0,0],axisLine:{show:"auto"},axisTick:{show:"auto"},splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:"#F4F7FD",width:1}}},hx),fx={category:cx,value:px,time:S({scale:!0,splitNumber:6,axisLabel:{showMinLabel:!1,showMaxLabel:!1,rich:{primary:{fontWeight:"bold"}}},splitLine:{show:!1}},px),log:T({scale:!0,logBase:10},px)},dx={value:1,category:1,time:1,log:1};function gx(t,e,i,r){L(dx,(function(o,a){var s=S(S({},fx[a],!0),r,!0),l=function(t){function i(){for(var n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];var r=t.apply(this,n)||this;return r.type=e+"Axis."+a,r}return n(i,t),i.prototype.mergeDefaultAndTheme=function(t,e){var n=Ph(this),i=n?Rh(t):{};S(t,e.getTheme().get(a+"Axis")),S(t,this.getDefaultOption()),t.type=yx(t),n&&Oh(t,i,n)},i.prototype.optionUpdated=function(){"category"===this.option.type&&(this.__ordinalMeta=gv.createByAxisModel(this))},i.prototype.getCategories=function(t){var e=this.option;if("category"===e.type)return t?e.data:this.__ordinalMeta.categories},i.prototype.getOrdinalMeta=function(){return this.__ordinalMeta},i.type=e+"Axis."+a,i.defaultOption=s,i}(i);t.registerComponentModel(l)})),t.registerSubTypeDefaulter(e+"Axis",yx)}function yx(t){return t.type||(t.data?"category":"value")}var vx=function(){function t(t){this.type="cartesian",this._dimList=[],this._axes={},this.name=t||""}return t.prototype.getAxis=function(t){return this._axes[t]},t.prototype.getAxes=function(){return P(this._dimList,(function(t){return this._axes[t]}),this)},t.prototype.getAxesByScale=function(t){return t=t.toLowerCase(),R(this.getAxes(),(function(e){return e.scale.type===t}))},t.prototype.addAxis=function(t){var e=t.dim;this._axes[e]=t,this._dimList.push(e)},t}(),mx=["x","y"];function _x(t){return"interval"===t.type||"time"===t.type}var xx=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="cartesian2d",e.dimensions=mx,e}return n(e,t),e.prototype.calcAffineTransform=function(){this._transform=this._invTransform=null;var t=this.getAxis("x").scale,e=this.getAxis("y").scale;if(_x(t)&&_x(e)){var n=t.getExtent(),i=e.getExtent(),r=this.dataToPoint([n[0],i[0]]),o=this.dataToPoint([n[1],i[1]]),a=n[1]-n[0],s=i[1]-i[0];if(a&&s){var l=(o[0]-r[0])/a,u=(o[1]-r[1])/s,h=r[0]-n[0]*l,c=r[1]-i[0]*u,p=this._transform=[l,0,0,u,h,c];this._invTransform=de([],p)}}},e.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAxis("x")},e.prototype.containPoint=function(t){var e=this.getAxis("x"),n=this.getAxis("y");return e.contain(e.toLocalCoord(t[0]))&&n.contain(n.toLocalCoord(t[1]))},e.prototype.containData=function(t){return this.getAxis("x").containData(t[0])&&this.getAxis("y").containData(t[1])},e.prototype.dataToPoint=function(t,e,n){n=n||[];var i=t[0],r=t[1];if(this._transform&&null!=i&&isFinite(i)&&null!=r&&isFinite(r))return kt(n,t,this._transform);var o=this.getAxis("x"),a=this.getAxis("y");return n[0]=o.toGlobalCoord(o.dataToCoord(i)),n[1]=a.toGlobalCoord(a.dataToCoord(r)),n},e.prototype.clampData=function(t,e){var n=this.getAxis("x").scale,i=this.getAxis("y").scale,r=n.getExtent(),o=i.getExtent(),a=n.parse(t[0]),s=i.parse(t[1]);return(e=e||[])[0]=Math.min(Math.max(Math.min(r[0],r[1]),a),Math.max(r[0],r[1])),e[1]=Math.min(Math.max(Math.min(o[0],o[1]),s),Math.max(o[0],o[1])),e},e.prototype.pointToData=function(t,e){if(e=e||[],this._invTransform)return kt(e,t,this._invTransform);var n=this.getAxis("x"),i=this.getAxis("y");return e[0]=n.coordToData(n.toLocalCoord(t[0])),e[1]=i.coordToData(i.toLocalCoord(t[1])),e},e.prototype.getOtherAxis=function(t){return this.getAxis("x"===t.dim?"y":"x")},e.prototype.getArea=function(){var t=this.getAxis("x").getGlobalExtent(),e=this.getAxis("y").getGlobalExtent(),n=Math.min(t[0],t[1]),i=Math.min(e[0],e[1]),r=Math.max(t[0],t[1])-n,o=Math.max(e[0],e[1])-i;return new Sn(n,i,r,o)},e}(vx),bx=function(t){function e(e,n,i,r,o){var a=t.call(this,e,n,i)||this;return a.index=0,a.type=r||"value",a.position=o||"bottom",a}return n(e,t),e.prototype.isHorizontal=function(){var t=this.position;return"top"===t||"bottom"===t},e.prototype.getGlobalExtent=function(t){var e=this.getExtent();return e[0]=this.toGlobalCoord(e[0]),e[1]=this.toGlobalCoord(e[1]),t&&e[0]>e[1]&&e.reverse(),e},e.prototype.pointToData=function(t,e){return this.coordToData(this.toLocalCoord(t["x"===this.dim?0:1]),e)},e.prototype.setCategorySortInfo=function(t){if("category"!==this.type)return!1;this.model.option.categorySortInfo=t,this.scale.setSortInfo(t)},e}(Bm);function Sx(t){return"cartesian2d"===t.get("coordinateSystem")}function Mx(t){var e={xAxisModel:null,yAxisModel:null};return L(e,(function(n,i){var r=i.replace(/Model$/,""),o=t.getReferringComponents(r,gr).models[0];e[i]=o})),e}var Tx=function(){function t(t,e,n){this.type="grid",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=mx,this._initCartesian(t,e,n),this.model=t}return t.prototype.getRect=function(){return this._rect},t.prototype.update=function(t,e){var n=this._axesMap;this._updateScale(t,this.model),L(n.x,(function(t){lm(t.scale,t.model)})),L(n.y,(function(t){lm(t.scale,t.model)}));var i={};L(n.x,(function(t){Dx(n,"y",t,i)})),L(n.y,(function(t){Dx(n,"x",t,i)})),this.resize(this.model,e)},t.prototype.resize=function(t,e,n){var i=t.getBoxLayoutParams(),r=!n&&t.get("containLabel"),o=Lh(i,{width:e.getWidth(),height:e.getHeight()});this._rect=o;var a=this._axesList;function s(){L(a,(function(t){var e=t.isHorizontal(),n=e?[0,o.width]:[0,o.height],i=t.inverse?1:0;t.setExtent(n[i],n[1-i]),function(t,e){var n=t.getExtent(),i=n[0]+n[1];t.toGlobalCoord="x"===t.dim?function(t){return t+e}:function(t){return i-t+e},t.toLocalCoord="x"===t.dim?function(t){return t-e}:function(t){return i-t+e}}(t,e?o.x:o.y)}))}s(),r&&(L(a,(function(t){if(!t.model.get(["axisLabel","inside"])){var e=function(t){var e=t.model,n=t.scale;if(e.get(["axisLabel","show"])&&!n.isBlank()){var i,r,o=n.getExtent();r=n instanceof Mv?n.count():(i=n.getTicks()).length;var a,s=t.getLabelModel(),l=hm(t),u=1;r>40&&(u=Math.ceil(r/40));for(var h=0;h<r;h+=u){var c=l(i?i[h]:{value:o[0]+h},h),p=cm(s.getTextRect(c),s.get("rotate")||0);a?a.union(p):a=p}return a}}(t);if(e){var n=t.isHorizontal()?"height":"width",i=t.model.get(["axisLabel","margin"]);o[n]-=e[n]+i,"top"===t.position?o.y+=e.height+i:"left"===t.position&&(o.x+=e.width+i)}}})),s()),L(this._coordsList,(function(t){t.calcAffineTransform()}))},t.prototype.getAxis=function(t,e){var n=this._axesMap[t];if(null!=n)return n[e||0]},t.prototype.getAxes=function(){return this._axesList.slice()},t.prototype.getCartesian=function(t,e){if(null!=t&&null!=e){var n="x"+t+"y"+e;return this._coordsMap[n]}G(t)&&(e=t.yAxisIndex,t=t.xAxisIndex);for(var i=0,r=this._coordsList;i<r.length;i++)if(r[i].getAxis("x").index===t||r[i].getAxis("y").index===e)return r[i]},t.prototype.getCartesians=function(){return this._coordsList.slice()},t.prototype.convertToPixel=function(t,e,n){var i=this._findConvertTarget(e);return i.cartesian?i.cartesian.dataToPoint(n):i.axis?i.axis.toGlobalCoord(i.axis.dataToCoord(n)):null},t.prototype.convertFromPixel=function(t,e,n){var i=this._findConvertTarget(e);return i.cartesian?i.cartesian.pointToData(n):i.axis?i.axis.coordToData(i.axis.toLocalCoord(n)):null},t.prototype._findConvertTarget=function(t){var e,n,i=t.seriesModel,r=t.xAxisModel||i&&i.getReferringComponents("xAxis",gr).models[0],o=t.yAxisModel||i&&i.getReferringComponents("yAxis",gr).models[0],a=t.gridModel,s=this._coordsList;if(i)D(s,e=i.coordinateSystem)<0&&(e=null);else if(r&&o)e=this.getCartesian(r.componentIndex,o.componentIndex);else if(r)n=this.getAxis("x",r.componentIndex);else if(o)n=this.getAxis("y",o.componentIndex);else if(a){a.coordinateSystem===this&&(e=this._coordsList[0])}return{cartesian:e,axis:n}},t.prototype.containPoint=function(t){var e=this._coordsList[0];if(e)return e.containPoint(t)},t.prototype._initCartesian=function(t,e,n){var i=this,r=this,o={left:!1,right:!1,top:!1,bottom:!1},a={x:{},y:{}},s={x:0,y:0};if(e.eachComponent("xAxis",l("x"),this),e.eachComponent("yAxis",l("y"),this),!s.x||!s.y)return this._axesMap={},void(this._axesList=[]);function l(e){return function(n,i){if(Cx(n,t)){var l=n.get("position");"x"===e?"top"!==l&&"bottom"!==l&&(l=o.bottom?"top":"bottom"):"left"!==l&&"right"!==l&&(l=o.left?"right":"left"),o[l]=!0;var u=new bx(e,um(n),[0,0],n.get("type"),l),h="category"===u.type;u.onBand=h&&n.get("boundaryGap"),u.inverse=n.get("inverse"),n.axis=u,u.model=n,u.grid=r,u.index=i,r._axesList.push(u),a[e][i]=u,s[e]++}}}this._axesMap=a,L(a.x,(function(e,n){L(a.y,(function(r,o){var a="x"+n+"y"+o,s=new xx(a);s.master=i,s.model=t,i._coordsMap[a]=s,i._coordsList.push(s),s.addAxis(e),s.addAxis(r)}))}))},t.prototype._updateScale=function(t,e){function n(t,e){L(function(t,e){var n={};return L(t.mapDimensionsAll(e),(function(e){n[pv(t,e)]=!0})),N(n)}(t,e.dim),(function(n){e.scale.unionExtentFromData(t,n)}))}L(this._axesList,(function(t){if(t.scale.setExtent(1/0,-1/0),"category"===t.type){var e=t.model.get("categorySortInfo");t.scale.setSortInfo(e)}})),t.eachSeries((function(t){if(Sx(t)){var i=Mx(t),r=i.xAxisModel,o=i.yAxisModel;if(!Cx(r,e)||!Cx(o,e))return;var a=this.getCartesian(r.componentIndex,o.componentIndex),s=t.getData(),l=a.getAxis("x"),u=a.getAxis("y");"list"===s.type&&(n(s,l),n(s,u))}}),this)},t.prototype.getTooltipAxes=function(t){var e=[],n=[];return L(this.getCartesians(),(function(i){var r=null!=t&&"auto"!==t?i.getAxis(t):i.getBaseAxis(),o=i.getOtherAxis(r);D(e,r)<0&&e.push(r),D(n,o)<0&&n.push(o)})),{baseAxes:e,otherAxes:n}},t.create=function(e,n){var i=[];return e.eachComponent("grid",(function(r,o){var a=new t(r,e,n);a.name="grid_"+o,a.resize(r,n,!0),r.coordinateSystem=a,i.push(a)})),e.eachSeries((function(t){if(Sx(t)){var e=Mx(t),n=e.xAxisModel,i=e.yAxisModel,r=n.getCoordSysModel();0;var o=r.coordinateSystem;t.coordinateSystem=o.getCartesian(n.componentIndex,i.componentIndex)}})),i},t.dimensions=mx,t}();function Cx(t,e){return t.getCoordSysModel()===e}function Dx(t,e,n,i){n.getAxesOnZeroOf=function(){return r?[r]:[]};var r,o=t[e],a=n.model,s=a.get(["axisLine","onZero"]),l=a.get(["axisLine","onZeroAxisIndex"]);if(s){if(null!=l)Ix(o[l])&&(r=o[l]);else for(var u in o)if(o.hasOwnProperty(u)&&Ix(o[u])&&!i[h(o[u])]){r=o[u];break}r&&(i[h(r)]=!0)}function h(t){return t.dim+"_"+t.index}}function Ix(t){return t&&"category"!==t.type&&"time"!==t.type&&function(t){var e=t.scale.getExtent(),n=e[0],i=e[1];return!(n>0&&i>0||n<0&&i<0)}(t)}var Ax=Math.PI,kx=function(){function t(t,e){this.group=new Ci,this.opt=e,this.axisModel=t,T(e,{labelOffset:0,nameDirection:1,tickDirection:1,labelDirection:1,silent:!0,handleAutoShown:function(){return!0}});var n=new Ci({x:e.position[0],y:e.position[1],rotation:e.rotation});n.updateTransform(),this._transformGroup=n}return t.prototype.hasBuilder=function(t){return!!Lx[t]},t.prototype.add=function(t){Lx[t](this.opt,this.axisModel,this.group,this._transformGroup)},t.prototype.getGroup=function(){return this.group},t.innerTextLayout=function(t,e,n){var i,r,o=Hi(e-t);return Wi(o)?(r=n>0?"top":"bottom",i="center"):Wi(o-Ax)?(r=n>0?"bottom":"top",i="center"):(r="middle",i=o>0&&o<Ax?n>0?"right":"left":n>0?"left":"right"),{rotation:o,textAlign:i,textVerticalAlign:r}},t.makeAxisEventDataBase=function(t){var e={componentType:t.mainType,componentIndex:t.componentIndex};return e[t.mainType+"Index"]=t.componentIndex,e},t.isLabelSilent=function(t){var e=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||e&&e.show)},t}(),Lx={axisLine:function(t,e,n,i){var r=e.get(["axisLine","show"]);if("auto"===r&&t.handleAutoShown&&(r=t.handleAutoShown("axisLine")),r){var o=e.axis.getExtent(),a=i.transform,s=[o[0],0],l=[o[1],0];a&&(kt(s,s,a),kt(l,l,a));var u=M({lineCap:"round"},e.getModel(["axisLine","lineStyle"]).getLineStyle()),h=new Il({subPixelOptimize:!0,shape:{x1:s[0],y1:s[1],x2:l[0],y2:l[1]},style:u,strokeContainThreshold:t.strokeContainThreshold||5,silent:!0,z2:1});h.anid="line",n.add(h);var c=e.get(["axisLine","symbol"]),p=e.get(["axisLine","symbolSize"]),f=e.get(["axisLine","symbolOffset"])||0;if("number"==typeof f&&(f=[f,f]),null!=c){"string"==typeof c&&(c=[c,c]),"string"!=typeof p&&"number"!=typeof p||(p=[p,p]);var d=p[0],g=p[1];L([{rotate:t.rotation+Math.PI/2,offset:f[0],r:0},{rotate:t.rotation-Math.PI/2,offset:f[1],r:Math.sqrt((s[0]-l[0])*(s[0]-l[0])+(s[1]-l[1])*(s[1]-l[1]))}],(function(e,i){if("none"!==c[i]&&null!=c[i]){var r=Ed(c[i],-d/2,-g/2,d,g,u.stroke,!0),o=e.r+e.offset;r.attr({rotation:e.rotate,x:s[0]+o*Math.cos(t.rotation),y:s[1]-o*Math.sin(t.rotation),silent:!0,z2:11}),n.add(r)}}))}}},axisTickLabel:function(t,e,n,i){var r=function(t,e,n,i){var r=n.axis,o=n.getModel("axisTick"),a=o.get("show");"auto"===a&&i.handleAutoShown&&(a=i.handleAutoShown("axisTick"));if(!a||r.scale.isBlank())return;for(var s=o.getModel("lineStyle"),l=i.tickDirection*o.get("length"),u=Nx(r.getTicksCoords(),e.transform,l,T(s.getLineStyle(),{stroke:n.get(["axisLine","lineStyle","color"])}),"ticks"),h=0;h<u.length;h++)t.add(u[h]);return u}(n,i,e,t),o=function(t,e,n,i){var r=n.axis;if(!$(i.axisLabelShow,n.get(["axisLabel","show"]))||r.scale.isBlank())return;var o=n.getModel("axisLabel"),a=o.get("margin"),s=r.getViewLabels(),l=($(i.labelRotate,o.get("rotate"))||0)*Ax/180,u=kx.innerTextLayout(i.rotation,l,i.labelDirection),h=n.getCategories&&n.getCategories(!0),c=[],p=kx.isLabelSilent(n),f=n.get("triggerEvent");return L(s,(function(s,l){var d="ordinal"===r.scale.type?r.scale.getRawOrdinalNumber(s.tickValue):s.tickValue,g=s.formattedLabel,y=s.rawLabel,v=o;if(h&&h[d]){var m=h[d];G(m)&&m.textStyle&&(v=new Ou(m.textStyle,o,n.ecModel))}var _=v.getTextColor()||n.get(["axisLine","lineStyle","color"]),x=r.dataToCoord(d),b=new Va({x:x,y:i.labelOffset+i.labelDirection*a,rotation:u.rotation,silent:p,z2:10,style:gu(v,{text:g,align:v.getShallow("align",!0)||u.textAlign,verticalAlign:v.getShallow("verticalAlign",!0)||v.getShallow("baseline",!0)||u.textVerticalAlign,fill:"function"==typeof _?_("category"===r.type?y:"value"===r.type?d+"":d,l):_})});if(b.anid="label_"+d,f){var w=kx.makeAxisEventDataBase(n);w.targetType="axisLabel",w.value=y,ja(b).eventData=w}e.add(b),b.updateTransform(),c.push(b),t.add(b),b.decomposeTransform()})),c}(n,i,e,t);!function(t,e,n){if(fm(t.axis))return;var i=t.get(["axisLabel","showMinLabel"]),r=t.get(["axisLabel","showMaxLabel"]);n=n||[];var o=(e=e||[])[0],a=e[1],s=e[e.length-1],l=e[e.length-2],u=n[0],h=n[1],c=n[n.length-1],p=n[n.length-2];!1===i?(Px(o),Px(u)):Ox(o,a)&&(i?(Px(a),Px(h)):(Px(o),Px(u)));!1===r?(Px(s),Px(c)):Ox(l,s)&&(r?(Px(l),Px(p)):(Px(s),Px(c)))}(e,o,r),function(t,e,n,i){var r=n.axis,o=n.getModel("minorTick");if(!o.get("show")||r.scale.isBlank())return;var a=r.getMinorTicksCoords();if(!a.length)return;for(var s=o.getModel("lineStyle"),l=i*o.get("length"),u=T(s.getLineStyle(),T(n.getModel("axisTick").getLineStyle(),{stroke:n.get(["axisLine","lineStyle","color"])})),h=0;h<a.length;h++)for(var c=Nx(a[h],e.transform,l,u,"minorticks_"+h),p=0;p<c.length;p++)t.add(c[p])}(n,i,e,t.tickDirection)},axisName:function(t,e,n,i){var r=$(t.axisName,e.get("name"));if(r){var o,a,s=e.get("nameLocation"),l=t.nameDirection,u=e.getModel("nameTextStyle"),h=e.get("nameGap")||0,c=e.axis.getExtent(),p=c[0]>c[1]?-1:1,f=["start"===s?c[0]-p*h:"end"===s?c[1]+p*h:(c[0]+c[1])/2,Rx(s)?t.labelOffset+l*h:0],d=e.get("nameRotate");null!=d&&(d=d*Ax/180),Rx(s)?o=kx.innerTextLayout(t.rotation,null!=d?d:t.rotation,l):(o=function(t,e,n,i){var r,o,a=Hi(n-t),s=i[0]>i[1],l="start"===e&&!s||"start"!==e&&s;Wi(a-Ax/2)?(o=l?"bottom":"top",r="center"):Wi(a-1.5*Ax)?(o=l?"top":"bottom",r="center"):(o="middle",r=a<1.5*Ax&&a>Ax/2?l?"left":"right":l?"right":"left");return{rotation:a,textAlign:r,textVerticalAlign:o}}(t.rotation,s,d||0,c),null!=(a=t.axisNameAvailableWidth)&&(a=Math.abs(a/Math.sin(o.rotation)),!isFinite(a)&&(a=null)));var g=u.getFont(),y=e.get("nameTruncate",!0)||{},v=y.ellipsis,m=$(t.nameTruncateMaxWidth,y.maxWidth,a),_=e.get("tooltip",!0),x=e.mainType,b={componentType:x,name:r,$vars:["name"]};b[x+"Index"]=e.componentIndex;var w=new Va({x:f[0],y:f[1],rotation:o.rotation,silent:kx.isLabelSilent(e),style:gu(u,{text:r,font:g,overflow:"truncate",width:m,ellipsis:v,fill:u.getTextColor()||e.get(["axisLine","lineStyle","color"]),align:u.get("align")||o.textAlign,verticalAlign:u.get("verticalAlign")||o.textVerticalAlign}),z2:1});if(w.tooltip=_&&_.show?M({content:r,formatter:function(){return r},formatterParams:b},_):null,w.__fullText=r,w.anid="name",e.get("triggerEvent")){var S=kx.makeAxisEventDataBase(e);S.targetType="axisName",S.name=r,ja(w).eventData=S}i.add(w),w.updateTransform(),n.add(w),w.decomposeTransform()}}};function Px(t){t&&(t.ignore=!0)}function Ox(t,e){var n=t&&t.getBoundingRect().clone(),i=e&&e.getBoundingRect().clone();if(n&&i){var r=le([]);return pe(r,r,-t.rotation),n.applyTransform(he([],r,t.getLocalTransform())),i.applyTransform(he([],r,e.getLocalTransform())),n.intersect(i)}}function Rx(t){return"middle"===t||"center"===t}function Nx(t,e,n,i,r){for(var o=[],a=[],s=[],l=0;l<t.length;l++){var u=t[l].coord;a[0]=u,a[1]=0,s[0]=u,s[1]=n,e&&(kt(a,a,e),kt(s,s,e));var h=new Il({subPixelOptimize:!0,shape:{x1:a[0],y1:a[1],x2:s[0],y2:s[1]},style:i,z2:2,autoBatch:!0,silent:!0});h.anid=r+"_"+t[l].tickValue,o.push(h)}return o}function Ex(t){var e=Bx(t);if(e){var n=e.axisPointerModel,i=e.axis.scale,r=n.option,o=n.get("status"),a=n.get("value");null!=a&&(a=i.parse(a));var s=function(t){return!!t.get(["handle","show"])}(n);null==o&&(r.status=s?"show":"hide");var l=i.getExtent().slice();l[0]>l[1]&&l.reverse(),(null==a||a>l[1])&&(a=l[1]),a<l[0]&&(a=l[0]),r.value=a,s&&(r.status=e.axis.scale.isBlank()?"hide":"show")}}function Bx(t){var e,n=(t.ecModel.getComponent("axisPointer")||{}).coordSysAxesInfo;return n&&n.axesInfo[(e=t,e.type+"||"+e.id)]}var zx={},Fx=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(e,n,i,r){this.axisPointerClass&&Ex(e),t.prototype.render.apply(this,arguments),this._doUpdateAxisPointerClass(e,i,!0)},e.prototype.updateAxisPointer=function(t,e,n,i){this._doUpdateAxisPointerClass(t,n,!1)},e.prototype.remove=function(t,e){var n=this._axisPointer;n&&n.remove(e)},e.prototype.dispose=function(e,n){this._disposeAxisPointer(n),t.prototype.dispose.apply(this,arguments)},e.prototype._doUpdateAxisPointerClass=function(t,n,i){var r=e.getAxisPointerClass(this.axisPointerClass);if(r){var o=function(t){var e=Bx(t);return e&&e.axisPointerModel}(t);o?(this._axisPointer||(this._axisPointer=new r)).render(t,o,n,i):this._disposeAxisPointer(n)}},e.prototype._disposeAxisPointer=function(t){this._axisPointer&&this._axisPointer.dispose(t),this._axisPointer=null},e.registerAxisPointerClass=function(t,e){zx[t]=e},e.getAxisPointerClass=function(t){return t&&zx[t]},e.type="axis",e}(qp),Vx=pr();var Hx=["axisLine","axisTickLabel","axisName"],Wx=["splitArea","splitLine","minorSplitLine"],Gx=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.axisPointerClass="CartesianAxisPointer",n}return n(e,t),e.prototype.render=function(e,n,i,r){this.group.removeAll();var o=this._axisGroup;if(this._axisGroup=new Ci,this.group.add(this._axisGroup),e.get("show")){var a=e.getCoordSysModel(),s=function(t,e,n){n=n||{};var i=t.coordinateSystem,r=e.axis,o={},a=r.getAxesOnZeroOf()[0],s=r.position,l=a?"onZero":s,u=r.dim,h=i.getRect(),c=[h.x,h.x+h.width,h.y,h.y+h.height],p={left:0,right:1,top:0,bottom:1,onZero:2},f=e.get("offset")||0,d="x"===u?[c[2]-f,c[3]+f]:[c[0]-f,c[1]+f];if(a){var g=a.toGlobalCoord(a.dataToCoord(0));d[p.onZero]=Math.max(Math.min(g,d[1]),d[0])}o.position=["y"===u?d[p[l]]:c[0],"x"===u?d[p[l]]:c[3]],o.rotation=Math.PI/2*("x"===u?0:1),o.labelDirection=o.tickDirection=o.nameDirection={top:-1,bottom:1,left:-1,right:1}[s],o.labelOffset=a?d[p[s]]-d[p.onZero]:0,e.get(["axisTick","inside"])&&(o.tickDirection=-o.tickDirection),$(n.labelInside,e.get(["axisLabel","inside"]))&&(o.labelDirection=-o.labelDirection);var y=e.get(["axisLabel","rotate"]);return o.labelRotate="top"===l?-y:y,o.z2=1,o}(a,e),l=new kx(e,M({handleAutoShown:function(t){for(var n=a.coordinateSystem.getCartesians(),i=0;i<n.length;i++){var r=n[i].getOtherAxis(e.axis).type;if("value"===r||"log"===r)return!0}return!1}},s));L(Hx,l.add,l),this._axisGroup.add(l.getGroup()),L(Wx,(function(t){e.get([t,"show"])&&Ux[t](this,this._axisGroup,e,a)}),this),function(t,e,n){if(t&&e){var i,r=(i={},t.traverse((function(t){uu(t)&&t.anid&&(i[t.anid]=t)})),i);e.traverse((function(t){if(uu(t)&&t.anid){var e=r[t.anid];if(e){var i=o(t);t.attr(o(e)),iu(t,i,n,ja(t).dataIndex)}}}))}function o(t){var e={x:t.x,y:t.y,rotation:t.rotation};return function(t){return null!=t.shape}(t)&&(e.shape=M({},t.shape)),e}}(o,this._axisGroup,e),t.prototype.render.call(this,e,n,i,r)}},e.prototype.remove=function(){Vx(this).splitAreaColors=null},e.type="cartesianAxis",e}(Fx),Ux={splitLine:function(t,e,n,i){var r=n.axis;if(!r.scale.isBlank()){var o=n.getModel("splitLine"),a=o.getModel("lineStyle"),s=a.get("color");s=z(s)?s:[s];for(var l=i.coordinateSystem.getRect(),u=r.isHorizontal(),h=0,c=r.getTicksCoords({tickModel:o}),p=[],f=[],d=a.getLineStyle(),g=0;g<c.length;g++){var y=r.toGlobalCoord(c[g].coord);u?(p[0]=y,p[1]=l.y,f[0]=y,f[1]=l.y+l.height):(p[0]=l.x,p[1]=y,f[0]=l.x+l.width,f[1]=y);var v=h++%s.length,m=c[g].tickValue;e.add(new Il({anid:null!=m?"line_"+c[g].tickValue:null,subPixelOptimize:!0,autoBatch:!0,shape:{x1:p[0],y1:p[1],x2:f[0],y2:f[1]},style:T({stroke:s[v]},d),silent:!0}))}}},minorSplitLine:function(t,e,n,i){var r=n.axis,o=n.getModel("minorSplitLine").getModel("lineStyle"),a=i.coordinateSystem.getRect(),s=r.isHorizontal(),l=r.getMinorTicksCoords();if(l.length)for(var u=[],h=[],c=o.getLineStyle(),p=0;p<l.length;p++)for(var f=0;f<l[p].length;f++){var d=r.toGlobalCoord(l[p][f].coord);s?(u[0]=d,u[1]=a.y,h[0]=d,h[1]=a.y+a.height):(u[0]=a.x,u[1]=d,h[0]=a.x+a.width,h[1]=d),e.add(new Il({anid:"minor_line_"+l[p][f].tickValue,subPixelOptimize:!0,autoBatch:!0,shape:{x1:u[0],y1:u[1],x2:h[0],y2:h[1]},style:c,silent:!0}))}},splitArea:function(t,e,n,i){!function(t,e,n,i){var r=n.axis;if(!r.scale.isBlank()){var o=n.getModel("splitArea"),a=o.getModel("areaStyle"),s=a.get("color"),l=i.coordinateSystem.getRect(),u=r.getTicksCoords({tickModel:o,clamp:!0});if(u.length){var h=s.length,c=Vx(t).splitAreaColors,p=lt(),f=0;if(c)for(var d=0;d<u.length;d++){var g=c.get(u[d].tickValue);if(null!=g){f=(g+(h-1)*d)%h;break}}var y=r.toGlobalCoord(u[0].coord),v=a.getAreaStyle();for(s=z(s)?s:[s],d=1;d<u.length;d++){var m=r.toGlobalCoord(u[d].coord),_=void 0,x=void 0,b=void 0,w=void 0;r.isHorizontal()?(_=y,x=l.y,b=m-_,w=l.height,y=_+b):(_=l.x,x=y,b=l.width,y=x+(w=m-x));var S=u[d-1].tickValue;null!=S&&p.set(S,f),e.add(new Ba({anid:null!=S?"area_"+S:null,shape:{x:_,y:x,width:b,height:w},style:T({fill:s[f]},v),autoBatch:!0,silent:!0})),f=(f+1)%h}Vx(t).splitAreaColors=p}}}(t,e,n,i)}},Yx=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="xAxis",e}(Gx),Xx=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=Yx.type,e}return n(e,t),e.type="yAxis",e}(Gx),qx=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="grid",e}return n(e,t),e.prototype.render=function(t,e){this.group.removeAll(),t.get("show")&&this.group.add(new Ba({shape:t.coordinateSystem.getRect(),style:T({fill:t.get("backgroundColor")},t.getItemStyle()),silent:!0,z2:-1}))},e.type="grid",e}(qp),jx={offset:0};var Zx={label:{enabled:!0},decal:{show:!1}},Kx=pr(),$x={};function Qx(t,e){var n=t.getModel("aria");if(n.get("enabled")){var i=w(Zx);S(i.label,t.getLocaleModel().get("aria"),!1),S(n.option,i,!1),function(){if(n.getModel("decal").get("show")){var e=lt();t.eachSeries((function(t){if(t.useColorPaletteOnData){var n=e.get(t.type);n||(n={},e.set(t.type,n)),Kx(t).scope=n}})),t.eachRawSeries((function(e){if(!t.isSeriesFiltered(e))if("function"!=typeof e.enableAriaDecal){var n=e.getData();if(e.useColorPaletteOnData){var i=e.getRawData(),r={},o=Kx(e).scope;n.each((function(t){var e=n.getRawIndex(t);r[e]=t}));var a=i.count();i.each((function(t){var s=r[t],l=i.getName(t)||t+"",h=cc(e.ecModel,l,o,a),c=n.getItemVisual(s,"decal");n.setItemVisual(s,"decal",u(c,h))}))}else{var s=cc(e.ecModel,e.name,$x,t.getSeriesCount()),l=n.getVisual("decal");n.setVisual("decal",u(l,s))}}else e.enableAriaDecal();function u(t,e){var n=t?M(M({},e),t):e;return n.dirty=!0,n}}))}}(),function(){var i=t.getLocaleModel().get("aria"),o=n.getModel("label");if(o.option=T(o.option,i),!o.get("enabled"))return;var a=e.getZr().dom;if(o.get("description"))return void a.setAttribute("aria-label",o.get("description"));var s,l=t.getSeriesCount(),u=o.get(["data","maxCount"])||10,h=o.get(["series","maxCount"])||10,c=Math.min(l,h);if(l<1)return;var p=function(){var e=t.get("title");e&&e.length&&(e=e[0]);return e&&e.text}();if(p){var f=o.get(["general","withTitle"]);s=r(f,{title:p})}else s=o.get(["general","withoutTitle"]);var d=[],g=l>1?o.get(["series","multiple","prefix"]):o.get(["series","single","prefix"]);s+=r(g,{seriesCount:l}),t.eachSeries((function(e,n){if(n<c){var i=void 0,a=e.get("name")?"withName":"withoutName";i=r(i=l>1?o.get(["series","multiple",a]):o.get(["series","single",a]),{seriesId:e.seriesIndex,seriesName:e.get("name"),seriesType:(_=e.subType,t.getLocaleModel().get(["series","typeNames"])[_]||"自定义图")});var s=e.getData();if(s.count()>u)i+=r(o.get(["data","partialData"]),{displayCnt:u});else i+=o.get(["data","allData"]);for(var h=[],p=0;p<s.count();p++)if(p<u){var f=s.getName(p),g=gp(s,p),y=o.get(["data",f?"withName":"withoutName"]);h.push(r(y,{name:f,value:g}))}var v=o.get(["data","separator","middle"]),m=o.get(["data","separator","end"]);i+=h.join(v)+m,d.push(i)}var _}));var y=o.getModel(["series","multiple","separator"]),v=y.get("middle"),m=y.get("end");s+=d.join(v)+m,a.setAttribute("aria-label",s)}()}function r(t,e){if("string"!=typeof t)return t;var n=t;return L(e,(function(t,e){n=n.replace(new RegExp("\\{\\s*"+e+"\\s*\\}","g"),t)})),n}}function Jx(t){if(t&&t.aria){var e=t.aria;null!=e.show&&(e.enabled=e.show),e.label=e.label||{},L(["description","general","series","data"],(function(t){null!=e[t]&&(e.label[t]=e[t])}))}}var tb=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="dataset",e}return n(e,t),e.prototype.init=function(e,n,i){t.prototype.init.call(this,e,n,i),this._sourceManager=new kp(this),Lp(this)},e.prototype.mergeOption=function(e,n){t.prototype.mergeOption.call(this,e,n),Lp(this)},e.prototype.optionUpdated=function(){this._sourceManager.dirty()},e.prototype.getSourceManager=function(){return this._sourceManager},e.type="dataset",e.defaultOption={seriesLayoutBy:qh},e}(Eh),eb=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="dataset",e}return n(e,t),e.type="dataset",e}(qp);Dy([function(t){t.registerPainter("canvas",Xm)}]),Dy([function(t){t.registerChartView(C_),t.registerSeriesModel(qm),t.registerLayout(function(t,e){return{seriesType:t,plan:jp(),reset:function(t){var n=t.getData(),i=t.coordinateSystem,r=t.pipelineContext,o=e||r.large;if(i){var a=P(i.dimensions,(function(t){return n.mapDimension(t)})).slice(0,2),s=a.length,l=n.getCalculationInfo("stackResultDimension");cv(n,a[0])&&(a[0]=l),cv(n,a[1])&&(a[1]=l);var u=n.getDimensionInfo(a[0]),h=n.getDimensionInfo(a[1]),c=u&&u.index,p=h&&h.index;return s&&{progress:function(t,e){for(var n=t.end-t.start,r=o&&a_(n*s),a=[],l=[],u=t.start,h=0;u<t.end;u++){var f=void 0;if(1===s){var d=e.getByDimIdx(c,u);f=i.dataToPoint(d,null,l)}else a[0]=e.getByDimIdx(c,u),a[1]=e.getByDimIdx(p,u),f=i.dataToPoint(a,null,l);o?(r[h++]=f[0],r[h++]=f[1]):e.setItemLayout(u,f.slice())}o&&e.setLayout("points",r)}}}}}}("line",!0)),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,A_("line"))},function(t){t.registerChartView(F_),t.registerSeriesModel(L_),t.registerLayout(t.PRIORITY.VISUAL.LAYOUT,B(Ov,"bar")),t.registerLayout(t.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,Rv),t.registerVisual({seriesType:"bar",reset:function(t){t.getData().setVisual("legendSymbol","roundRect")}}),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,A_("bar")),t.registerAction({type:"changeAxisOrder",event:"changeAxisOrder",update:"update"},(function(t,e){var n=t.componentType||"series";e.eachComponent({mainType:n,query:t},(function(e){t.sortInfo&&e.axis.setCategorySortInfo(t.sortInfo)}))}))},function(t){t.registerChartView(ox),t.registerSeriesModel(sx),function(t,e){function n(e,n){var i=[];return e.eachComponent({mainType:"series",subType:t,query:n},(function(t){i.push(t.seriesIndex)})),i}L([[t+"ToggleSelect","toggleSelect"],[t+"Select","select"],[t+"UnSelect","unselect"]],(function(t){e(t[0],(function(e,i,r){e=M({},e),r.dispatchAction(M(e,{type:t[1],seriesIndex:n(i,e)}))}))}))}("pie",t.registerAction),t.registerLayout(B(Q_,"pie")),t.registerProcessor(function(t){return{seriesType:t,reset:function(t,e){var n=e.findComponents({mainType:"legend"});if(n&&n.length){var i=t.getData();i.filterSelf((function(t){for(var e=i.getName(t),r=0;r<n.length;r++)if(!n[r].isSelected(e))return!1;return!0}))}}}}("pie"))}]),Dy([function(t){t.registerComponentView(qx),t.registerComponentModel(lx),t.registerCoordinateSystem("cartesian2d",Tx),gx(t,"x",ux,jx),gx(t,"y",ux,jx),t.registerComponentView(Yx),t.registerComponentView(Xx),t.registerPreprocessor((function(t){t.xAxis&&t.yAxis&&!t.grid&&(t.grid={})}))},function(t){t.registerPreprocessor(Jx),t.registerVisual(t.PRIORITY.VISUAL.ARIA,Qx)},function(t){t.registerComponentModel(tb),t.registerComponentView(eb)}]),t.Axis=Bm,t.ChartView=$p,t.ComponentModel=Eh,t.ComponentView=qp,t.List=iv,t.Model=Ou,t.PRIORITY=gg,t.SeriesModel=Fp,t.color=Ke,t.connect=function(t){if(z(t)){var e=t;t=null,lg(e,(function(e){null!=e.group&&(t=e.group)})),t=t||"g_"+ay++,lg(e,(function(e){e.group=t}))}return ry[t]=!0,t},t.dataTool={},t.dependencies={zrender:"5.0.2"},t.disConnect=ly,t.disconnect=uy,t.dispose=function(t){"string"==typeof t?t=iy[t]:t instanceof Ug||(t=hy(t)),t instanceof Ug&&!t.isDisposed()&&t.dispose()},t.env=a,t.extendChartView=function(t){var e=$p.extend(t);return $p.registerClass(e),e},t.extendComponentModel=function(t){var e=Eh.extend(t);return Eh.registerClass(e),e},t.extendComponentView=function(t){var e=qp.extend(t);return qp.registerClass(e),e},t.extendSeriesModel=function(t){var e=Fp.extend(t);return Fp.registerClass(e),e},t.format=Tm,t.getCoordinateSystemDimensions=function(t){var e=xc.get(t);if(e)return e.getDimensionsInfo?e.getDimensionsInfo():e.dimensions.slice()},t.getInstanceByDom=hy,t.getInstanceById=function(t){return iy[t]},t.getMap=function(t){var e=Ff(t);return e&&e[0]&&{geoJson:e[0].geoJSON,specialAreas:e[0].specialAreas}},t.graphic=Mm,t.helper=ym,t.init=function(t,e,n){var i=hy(t);if(i)return i;var r=new Ug(t,e,n);return r.id="ec_"+oy++,iy[r.id]=r,vr(t,sy,r.id),zg(r),lg(Qg,(function(t){t(r)})),r},t.innerDrawElementOnCanvas=Qd,t.matrix=ge,t.number=wm,t.parseGeoJSON=bm,t.parseGeoJson=bm,t.registerAction=yy,t.registerCoordinateSystem=vy,t.registerLayout=my,t.registerLoading=wy,t.registerLocale=Wu,t.registerMap=Sy,t.registerPostInit=dy,t.registerPostUpdate=gy,t.registerPreprocessor=py,t.registerProcessor=fy,t.registerTheme=cy,t.registerTransform=My,t.registerVisual=_y,t.setCanvasCreator=function(t){m("createCanvas",t)},t.throttle=rf,t.time=Sm,t.use=Dy,t.util=Cm,t.vector=Ot,t.version="5.0.1",t.zrUtil=pt,t.zrender=Oi,Object.defineProperty(t,"__esModule",{value:!0})}));
+var Ti=!o.canvasSupported,Ci={},Di={};var Ii=function(){function t(t,e,n){var i=this;this._sleepAfterStill=10,this._stillFrameAccum=0,this._needsRefresh=!0,this._needsRefreshHover=!0,this._darkMode=!1,n=n||{},this.dom=e,this.id=t;var r=new ri,a=n.renderer||"canvas";if(Ti)throw new Error("IE8 support has been dropped since 5.0");if(Ci[a]||(a=N(Ci)[0]),!Ci[a])throw new Error("Renderer '"+a+"' is not imported. Please import it first.");n.useDirtyRect=null!=n.useDirtyRect&&n.useDirtyRect;var s=new Ci[a](e,r,n,t);this.storage=r,this.painter=s;var l=o.node||o.worker?null:new Si(s.getViewportRoot(),s.root);this.handler=new ne(r,s,l,s.root),this.animation=new oi({stage:{update:function(){return i._flush(!0)}}}),this.animation.start()}return t.prototype.add=function(t){t&&(this.storage.addRoot(t),t.addSelfToZr(this),this.refresh())},t.prototype.remove=function(t){t&&(this.storage.delRoot(t),t.removeSelfFromZr(this),this.refresh())},t.prototype.configLayer=function(t,e){this.painter.configLayer&&this.painter.configLayer(t,e),this.refresh()},t.prototype.setBackgroundColor=function(t){this.painter.setBackgroundColor&&this.painter.setBackgroundColor(t),this.refresh(),this._backgroundColor=t,this._darkMode=function(t){if(!t)return!1;if("string"==typeof t)return qe(t,1)<.4;if(t.colorStops){for(var e=t.colorStops,n=0,i=e.length,r=0;r<i;r++)n+=qe(e[r].color,1);return(n/=i)<.4}return!1}(t)},t.prototype.getBackgroundColor=function(){return this._backgroundColor},t.prototype.setDarkMode=function(t){this._darkMode=t},t.prototype.isDarkMode=function(){return this._darkMode},t.prototype.refreshImmediately=function(t){t||this.animation.update(!0),this._needsRefresh=!1,this.painter.refresh(),this._needsRefresh=!1},t.prototype.refresh=function(){this._needsRefresh=!0,this.animation.start()},t.prototype.flush=function(){this._flush(!1)},t.prototype._flush=function(t){var e,n=(new Date).getTime();this._needsRefresh&&(e=!0,this.refreshImmediately(t)),this._needsRefreshHover&&(e=!0,this.refreshHoverImmediately());var i=(new Date).getTime();e?(this._stillFrameAccum=0,this.trigger("rendered",{elapsedTime:i-n})):this._sleepAfterStill>0&&(this._stillFrameAccum++,this._stillFrameAccum>this._sleepAfterStill&&this.animation.stop())},t.prototype.setSleepAfterStill=function(t){this._sleepAfterStill=t},t.prototype.wakeUp=function(){this.animation.start(),this._stillFrameAccum=0},t.prototype.addHover=function(t){},t.prototype.removeHover=function(t){},t.prototype.clearHover=function(){},t.prototype.refreshHover=function(){this._needsRefreshHover=!0},t.prototype.refreshHoverImmediately=function(){this._needsRefreshHover=!1,this.painter.refreshHover&&"canvas"===this.painter.getType()&&this.painter.refreshHover()},t.prototype.resize=function(t){t=t||{},this.painter.resize(t.width,t.height),this.handler.resize()},t.prototype.clearAnimation=function(){this.animation.clear()},t.prototype.getWidth=function(){return this.painter.getWidth()},t.prototype.getHeight=function(){return this.painter.getHeight()},t.prototype.pathToImage=function(t,e){if(this.painter.pathToImage)return this.painter.pathToImage(t,e)},t.prototype.setCursorStyle=function(t){this.handler.setCursorStyle(t)},t.prototype.findHover=function(t,e){return this.handler.findHover(t,e)},t.prototype.on=function(t,e,n){return this.handler.on(t,e,n),this},t.prototype.off=function(t,e){this.handler.off(t,e)},t.prototype.trigger=function(t,e){this.handler.trigger(t,e)},t.prototype.clear=function(){for(var t=this.storage.getRoots(),e=0;e<t.length;e++)t[e]instanceof Mi&&t[e].removeSelfFromZr(this);this.storage.delAllRoots(),this.painter.clear()},t.prototype.dispose=function(){var t;this.animation.stop(),this.clear(),this.storage.dispose(),this.painter.dispose(),this.handler.dispose(),this.animation=this.storage=this.painter=this.handler=null,t=this.id,delete Di[t]},t}();function Ai(t,e){var n=new Ii(x(),t,e);return Di[n.id]=n,n}function ki(t,e){Ci[t]=e}var Li=Object.freeze({__proto__:null,init:Ai,dispose:function(t){t.dispose()},disposeAll:function(){for(var t in Di)Di.hasOwnProperty(t)&&Di[t].dispose();Di={}},getInstance:function(t){return Di[t]},registerPainter:ki,version:"5.0.3"}),Pi=1e-4;function Oi(t,e,n,i){var r=e[1]-e[0],a=n[1]-n[0];if(0===r)return 0===a?n[0]:(n[0]+n[1])/2;if(i)if(r>0){if(t<=e[0])return n[0];if(t>=e[1])return n[1]}else{if(t>=e[0])return n[0];if(t<=e[1])return n[1]}else{if(t===e[0])return n[0];if(t===e[1])return n[1]}return(t-e[0])/r*a+n[0]}function Ri(t,e){switch(t){case"center":case"middle":t="50%";break;case"left":case"top":t="0%";break;case"right":case"bottom":t="100%"}return"string"==typeof t?(n=t,n.replace(/^\s+|\s+$/g,"")).match(/%$/)?parseFloat(t)/100*e:parseFloat(t):null==t?NaN:+t;var n}function Ni(t,e,n){return null==e&&(e=10),e=Math.min(Math.max(0,e),20),t=(+t).toFixed(e),n?t:+t}function Ei(t){var e=t.toString(),n=e.indexOf("e");if(n>0){var i=+e.slice(n+1);return i<0?-i:0}var r=e.indexOf(".");return r<0?0:e.length-1-r}function Bi(t,e){var n=Math.log,i=Math.LN10,r=Math.floor(n(t[1]-t[0])/i),a=Math.round(n(Math.abs(e[1]-e[0]))/i),o=Math.min(Math.max(-r+a,0),20);return isFinite(o)?o:20}function zi(t,e,n){if(!t[e])return 0;var i=O(t,(function(t,e){return t+(isNaN(e)?0:e)}),0);if(0===i)return 0;for(var r=Math.pow(10,n),a=P(t,(function(t){return(isNaN(t)?0:t)/i*r*100})),o=100*r,s=P(a,(function(t){return Math.floor(t)})),l=O(s,(function(t,e){return t+e}),0),u=P(a,(function(t,e){return t-s[e]}));l<o;){for(var h=Number.NEGATIVE_INFINITY,c=null,p=0,f=u.length;p<f;++p)u[p]>h&&(h=u[p],c=p);++s[c],u[c]=0,++l}return s[e]/r}function Fi(t){var e=2*Math.PI;return(t%e+e)%e}function Vi(t){return t>-1e-4&&t<Pi}var Hi=/^(?:(\d{4})(?:[-\/](\d{1,2})(?:[-\/](\d{1,2})(?:[T ](\d{1,2})(?::(\d{1,2})(?::(\d{1,2})(?:[.,](\d+))?)?)?(Z|[\+\-]\d\d:?\d\d)?)?)?)?)?$/;function Wi(t){if(t instanceof Date)return t;if("string"==typeof t){var e=Hi.exec(t);if(!e)return new Date(NaN);if(e[8]){var n=+e[4]||0;return"Z"!==e[8].toUpperCase()&&(n-=+e[8].slice(0,3)),new Date(Date.UTC(+e[1],+(e[2]||1)-1,+e[3]||1,n,+(e[5]||0),+e[6]||0,+e[7]||0))}return new Date(+e[1],+(e[2]||1)-1,+e[3]||1,+e[4]||0,+(e[5]||0),+e[6]||0,+e[7]||0)}return null==t?new Date(NaN):new Date(Math.round(t))}function Gi(t){return Math.pow(10,Ui(t))}function Ui(t){if(0===t)return 0;var e=Math.floor(Math.log(t)/Math.LN10);return t/Math.pow(10,e)>=10&&e++,e}function Yi(t,e){var n=Ui(t),i=Math.pow(10,n),r=t/i;return t=(e?r<1.5?1:r<2.5?2:r<4?3:r<7?5:10:r<1?1:r<2?2:r<3?3:r<5?5:10)*i,n>=-20?+t.toFixed(n<0?-n:0):t}function Xi(t){var e=parseFloat(t);return e==t&&(0!==e||"string"!=typeof t||t.indexOf("x")<=0)?e:NaN}function qi(t){return!isNaN(Xi(t))}function ji(t,e){return 0===e?t:ji(e,t%e)}function Zi(t,e){return null==t?e:null==e?t:t*e/ji(t,e)}"undefined"!=typeof console&&console.warn&&console.log;function Ki(t){0}function $i(t){throw new Error(t)}var Qi="series\0";function Ji(t){return t instanceof Array?t:null==t?[]:[t]}function tr(t,e,n){if(t){t[e]=t[e]||{},t.emphasis=t.emphasis||{},t.emphasis[e]=t.emphasis[e]||{};for(var i=0,r=n.length;i<r;i++){var a=n[i];!t.emphasis[e].hasOwnProperty(a)&&t[e].hasOwnProperty(a)&&(t.emphasis[e][a]=t[e][a])}}}var er=["fontStyle","fontWeight","fontSize","fontFamily","rich","tag","color","textBorderColor","textBorderWidth","width","height","lineHeight","align","verticalAlign","baseline","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY","textShadowColor","textShadowBlur","textShadowOffsetX","textShadowOffsetY","backgroundColor","borderColor","borderWidth","borderRadius","padding"];function nr(t){return!G(t)||z(t)||t instanceof Date?t:t.value}function ir(t,e,n){var i="normalMerge"===n,r="replaceMerge"===n,a="replaceAll"===n;t=t||[],e=(e||[]).slice();var o=lt();L(e,(function(t,n){G(t)||(e[n]=null)}));var s,l,u=function(t,e,n){var i=[];if("replaceAll"===n)return i;for(var r=0;r<t.length;r++){var a=t[r];a&&null!=a.id&&e.set(a.id,r),i.push({existing:"replaceMerge"===n||lr(a)?null:a,newOption:null,keyInfo:null,brandNew:null})}return i}(t,o,n);return(i||r)&&function(t,e,n,i){L(i,(function(r,a){if(r&&null!=r.id){var o=ar(r.id),s=n.get(o);if(null!=s){var l=t[s];nt(!l.newOption,'Duplicated option on id "'+o+'".'),l.newOption=r,l.existing=e[s],i[a]=null}}}))}(u,t,o,e),i&&function(t,e){L(e,(function(n,i){if(n&&null!=n.name)for(var r=0;r<t.length;r++){var a=t[r].existing;if(!t[r].newOption&&a&&(null==a.id||null==n.id)&&!lr(n)&&!lr(a)&&rr("name",a,n))return t[r].newOption=n,void(e[i]=null)}}))}(u,e),i||r?function(t,e,n){L(e,(function(e){if(e){for(var i,r=0;(i=t[r])&&(i.newOption||lr(i.existing)||i.existing&&null!=e.id&&!rr("id",e,i.existing));)r++;i?(i.newOption=e,i.brandNew=n):t.push({newOption:e,brandNew:n,existing:null,keyInfo:null}),r++}}))}(u,e,r):a&&function(t,e){L(e,(function(e){t.push({newOption:e,brandNew:!0,existing:null,keyInfo:null})}))}(u,e),s=u,l=lt(),L(s,(function(t){var e=t.existing;e&&l.set(e.id,t)})),L(s,(function(t){var e=t.newOption;nt(!e||null==e.id||!l.get(e.id)||l.get(e.id)===t,"id duplicates: "+(e&&e.id)),e&&null!=e.id&&l.set(e.id,t),!t.keyInfo&&(t.keyInfo={})})),L(s,(function(t,e){var n=t.existing,i=t.newOption,r=t.keyInfo;if(G(i)){if(r.name=null!=i.name?ar(i.name):n?n.name:Qi+e,n)r.id=ar(n.id);else if(null!=i.id)r.id=ar(i.id);else{var a=0;do{r.id="\0"+r.name+"\0"+a++}while(l.get(r.id))}l.set(r.id,t)}})),u}function rr(t,e,n){var i=or(e[t],null),r=or(n[t],null);return null!=i&&null!=r&&i===r}function ar(t){return or(t,"")}function or(t,e){if(null==t)return e;var n=typeof t;return"string"===n?t:"number"===n||H(t)?t+"":e}function sr(t){var e=t.name;return!(!e||!e.indexOf(Qi))}function lr(t){return t&&null!=t.id&&0===ar(t.id).indexOf("\0_ec_\0")}function ur(t,e){return null!=e.dataIndexInside?e.dataIndexInside:null!=e.dataIndex?z(e.dataIndex)?P(e.dataIndex,(function(e){return t.indexOfRawIndex(e)})):t.indexOfRawIndex(e.dataIndex):null!=e.name?z(e.name)?P(e.name,(function(e){return t.indexOfName(e)})):t.indexOfName(e.name):void 0}function hr(){var t="__ec_inner_"+cr++;return function(e){return e[t]||(e[t]={})}}var cr=Math.round(9*Math.random());function pr(t,e,n){var i;if(V(e)){var r={};r[e+"Index"]=0,i=r}else i=e;var a=lt(),o={},s=!1;L(i,(function(t,e){if("dataIndex"!==e&&"dataIndexInside"!==e){var i=e.match(/^(\w+)(Index|Id|Name)$/)||[],r=i[1],l=(i[2]||"").toLowerCase();if(r&&l&&!(n&&n.includeMainTypes&&D(n.includeMainTypes,r)<0))s=s||!!r,(a.get(r)||a.set(r,{}))[l]=t}else o[e]=t}));var l=n?n.defaultMainType:null;return!s&&l&&a.set(l,{}),a.each((function(e,i){var r=dr(t,i,e,{useDefault:l===i,enableAll:!n||null==n.enableAll||n.enableAll,enableNone:!n||null==n.enableNone||n.enableNone});o[i+"Models"]=r.models,o[i+"Model"]=r.models[0]})),o}var fr={useDefault:!0,enableAll:!1,enableNone:!1};function dr(t,e,n,i){i=i||fr;var r=n.index,a=n.id,o=n.name,s={models:null,specified:null!=r||null!=a||null!=o};if(!s.specified){var l=void 0;return s.models=i.useDefault&&(l=t.getComponent(e))?[l]:[],s}return"none"===r||!1===r?(nt(i.enableNone,'`"none"` or `false` is not a valid value on index option.'),s.models=[],s):("all"===r&&(nt(i.enableAll,'`"all"` is not a valid value on index option.'),r=a=o=null),s.models=t.queryComponents({mainType:e,index:r,id:a,name:o}),s)}function gr(t,e,n){t.setAttribute?t.setAttribute(e,n):t[e]=n}function yr(t,e,n,i,r){var a=null==e||"auto"===e;if(null==i)return i;if("number"==typeof i)return Ni(f=Ke(n||0,i,r),a?Math.max(Ei(n||0),Ei(i)):e);if("string"==typeof i)return r<1?n:i;for(var o=[],s=n,l=i,u=Math.max(s?s.length:0,l.length),h=0;h<u;++h){if("ordinal"===t.getDimensionInfo(h).type)o[h]=(r<1&&s?s:l)[h];else{var c=s&&s[h]?s[h]:0,p=l[h],f=Ke(c,p,r);o[h]=Ni(f,a?Math.max(Ei(c),Ei(p)):e)}}return o}var vr="___EC__COMPONENT__CONTAINER___",mr="___EC__EXTENDED_CLASS___";function _r(t){var e={main:"",sub:""};if(t){var n=t.split(".");e.main=n[0]||"",e.sub=n[1]||""}return e}function xr(t,e){t.$constructor=t,t.extend=function(t){var e=this;function n(){for(var i=[],a=0;a<arguments.length;a++)i[a]=arguments[a];if(t.$constructor)t.$constructor.apply(this,arguments);else{if(br(e)){var o=ut(n.prototype,new(e.bind.apply(e,r([void 0],i))));return o}e.apply(this,arguments)}}return n[mr]=!0,M(n.prototype,t),n.extend=this.extend,n.superCall=Mr,n.superApply=Tr,I(n,this),n.superClass=e,n}}function br(t){return"function"==typeof t&&/^class\s/.test(Function.prototype.toString.call(t))}function wr(t,e){t.extend=e.extend}var Sr=Math.round(10*Math.random());function Mr(t,e){for(var n=[],i=2;i<arguments.length;i++)n[i-2]=arguments[i];return this.superClass.prototype[e].apply(t,n)}function Tr(t,e,n){return this.superClass.prototype[e].apply(t,n)}function Cr(t){var e={};t.registerClass=function(t){var n,i=t.type||t.prototype.type;if(i){nt(/^[a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)?$/.test(n=i),'componentType "'+n+'" illegal'),t.prototype.type=i;var r=_r(i);if(r.sub){if(r.sub!==vr){(function(t){var n=e[t.main];n&&n[vr]||((n=e[t.main]={})[vr]=!0);return n}(r))[r.sub]=t}}else e[r.main]=t}return t},t.getClass=function(t,n,i){var r=e[t];if(r&&r[vr]&&(r=n?r[n]:null),i&&!r)throw new Error(n?"Component "+t+"."+(n||"")+" not exists. Load it first.":t+".type should be specified.");return r},t.getClassesByMainType=function(t){var n=_r(t),i=[],r=e[n.main];return r&&r[vr]?L(r,(function(t,e){e!==vr&&i.push(t)})):i.push(r),i},t.hasClass=function(t){var n=_r(t);return!!e[n.main]},t.getAllClassMainTypes=function(){var t=[];return L(e,(function(e,n){t.push(n)})),t},t.hasSubTypes=function(t){var n=_r(t),i=e[n.main];return i&&i[vr]}}function Dr(t,e){for(var n=0;n<t.length;n++)t[n][1]||(t[n][1]=t[n][0]);return e=e||!1,function(n,i,r){for(var a={},o=0;o<t.length;o++){var s=t[o][1];if(!(i&&D(i,s)>=0||r&&D(r,s)<0)){var l=n.getShallow(s,e);null!=l&&(a[t[o][0]]=l)}}return a}}var Ir=Dr([["fill","color"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["opacity"],["shadowColor"]]),Ar=function(){function t(){}return t.prototype.getAreaStyle=function(t,e){return Ir(this,t,e)},t}(),kr=new Ce(50);function Lr(t){if("string"==typeof t){var e=kr.get(t);return e&&e.image}return t}function Pr(t,e,n,i,r){if(t){if("string"==typeof t){if(e&&e.__zrImageSrc===t||!n)return e;var a=kr.get(t),o={hostEl:n,cb:i,cbPayload:r};return a?!Rr(e=a.image)&&a.pending.push(o):((e=new Image).onload=e.onerror=Or,kr.put(t,e.__cachedImgObj={image:e,pending:[o]}),e.src=e.__zrImageSrc=t),e}return t}return e}function Or(){var t=this.__cachedImgObj;this.onload=this.onerror=this.__cachedImgObj=null;for(var e=0;e<t.pending.length;e++){var n=t.pending[e],i=n.cb;i&&i(this,n.cbPayload),n.hostEl.dirty()}t.pending.length=0}function Rr(t){return t&&t.width&&t.height}var Nr=/\{([a-zA-Z0-9_]+)\|([^}]*)\}/g;function Er(t,e,n,i,r){if(!e)return"";var a=(t+"").split("\n");r=Br(e,n,i,r);for(var o=0,s=a.length;o<s;o++)a[o]=zr(a[o],r);return a.join("\n")}function Br(t,e,n,i){var r=M({},i=i||{});r.font=e,n=Q(n,"..."),r.maxIterations=Q(i.maxIterations,2);var a=r.minChar=Q(i.minChar,0);r.cnCharWidth=Tn("国",e);var o=r.ascCharWidth=Tn("a",e);r.placeholder=Q(i.placeholder,"");for(var s=t=Math.max(0,t-1),l=0;l<a&&s>=o;l++)s-=o;var u=Tn(n,e);return u>s&&(n="",u=0),s=t-u,r.ellipsis=n,r.ellipsisWidth=u,r.contentWidth=s,r.containerWidth=t,r}function zr(t,e){var n=e.containerWidth,i=e.font,r=e.contentWidth;if(!n)return"";var a=Tn(t,i);if(a<=n)return t;for(var o=0;;o++){if(a<=r||o>=e.maxIterations){t+=e.ellipsis;break}var s=0===o?Fr(t,r,e.ascCharWidth,e.cnCharWidth):a>0?Math.floor(t.length*r/a):0;a=Tn(t=t.substr(0,s),i)}return""===t&&(t=e.placeholder),t}function Fr(t,e,n,i){for(var r=0,a=0,o=t.length;a<o&&r<e;a++){var s=t.charCodeAt(a);r+=0<=s&&s<=127?n:i}return a}var Vr=function(){},Hr=function(t){this.tokens=[],t&&(this.tokens=t)},Wr=function(){this.width=0,this.height=0,this.contentWidth=0,this.contentHeight=0,this.outerWidth=0,this.outerHeight=0,this.lines=[]};function Gr(t,e,n,i,r){var a,o,s=""===e,l=r&&n.rich[r]||{},u=t.lines,h=l.font||n.font,c=!1;if(i){var p=l.padding,f=p?p[1]+p[3]:0;if(null!=l.width&&"auto"!==l.width){var d=function(t,e){if("string"==typeof t)return t.lastIndexOf("%")>=0?parseFloat(t)/100*e:parseFloat(t);return t}(l.width,i.width)+f;u.length>0&&d+i.accumWidth>i.width&&(a=e.split("\n"),c=!0),i.accumWidth=d}else{var g=Xr(e,h,i.width,i.breakAll,i.accumWidth);i.accumWidth=g.accumWidth+f,o=g.linesWidths,a=g.lines}}else a=e.split("\n");for(var y=0;y<a.length;y++){var v=a[y],m=new Vr;if(m.styleName=r,m.text=v,m.isLineHolder=!v&&!s,"number"==typeof l.width?m.width=l.width:m.width=o?o[y]:Tn(v,h),y||c)u.push(new Hr([m]));else{var _=(u[u.length-1]||(u[0]=new Hr)).tokens,x=_.length;1===x&&_[0].isLineHolder?_[0]=m:(v||!x||s)&&_.push(m)}}}var Ur=O(",&?/;] ".split(""),(function(t,e){return t[e]=!0,t}),{});function Yr(t){return!function(t){var e=t.charCodeAt(0);return e>=33&&e<=255}(t)||!!Ur[t]}function Xr(t,e,n,i,r){for(var a=[],o=[],s="",l="",u=0,h=0,c=0;c<t.length;c++){var p=t.charAt(c);if("\n"!==p){var f=Tn(p,e),d=!i&&!Yr(p);(a.length?h+f>n:r+h+f>n)?h?(s||l)&&(d?(s||(s=l,l="",h=u=0),a.push(s),o.push(h-u),l+=p,s="",h=u+=f):(l&&(s+=l,h+=u,l="",u=0),a.push(s),o.push(h),s=p,h=f)):d?(a.push(l),o.push(u),l=p,u=f):(a.push(p),o.push(f)):(h+=f,d?(l+=p,u+=f):(l&&(s+=l,l="",u=0),s+=p))}else l&&(s+=l,h+=u),a.push(s),o.push(h),s="",l="",u=0,h=0}return a.length||s||(s=t,l="",u=0),l&&(s+=l),s&&(a.push(s),o.push(h)),1===a.length&&(h+=r),{accumWidth:h,lines:a,linesWidths:o}}var qr="__zr_style_"+Math.round(10*Math.random()),jr={shadowBlur:0,shadowOffsetX:0,shadowOffsetY:0,shadowColor:"#000",opacity:1,blend:"source-over"},Zr={style:{shadowBlur:!0,shadowOffsetX:!0,shadowOffsetY:!0,shadowColor:!0,opacity:!0}};jr[qr]=!0;var Kr=["z","z2","invisible"],$r=function(t){function e(e){return t.call(this,e)||this}var i;return n(e,t),e.prototype._init=function(e){for(var n=N(e),i=0;i<n.length;i++){var r=n[i];"style"===r?this.useStyle(e[r]):t.prototype.attrKV.call(this,r,e[r])}this.style||this.useStyle({})},e.prototype.beforeBrush=function(){},e.prototype.afterBrush=function(){},e.prototype.innerBeforeBrush=function(){},e.prototype.innerAfterBrush=function(){},e.prototype.shouldBePainted=function(t,e,n,i){var r=this.transform;if(this.ignore||this.invisible||0===this.style.opacity||this.culling&&function(t,e,n){Qr.copy(t.getBoundingRect()),t.transform&&Qr.applyTransform(t.transform);return Jr.width=e,Jr.height=n,!Qr.intersect(Jr)}(this,t,e)||r&&!r[0]&&!r[3])return!1;if(n&&this.__clipPaths)for(var a=0;a<this.__clipPaths.length;++a)if(this.__clipPaths[a].isZeroArea())return!1;if(i&&this.parent)for(var o=this.parent;o;){if(o.ignore)return!1;o=o.parent}return!0},e.prototype.contain=function(t,e){return this.rectContain(t,e)},e.prototype.traverse=function(t,e){t.call(e,this)},e.prototype.rectContain=function(t,e){var n=this.transformCoordToLocal(t,e);return this.getBoundingRect().contain(n[0],n[1])},e.prototype.getPaintRect=function(){var t=this._paintRect;if(!this._paintRect||this.__dirty){var e=this.transform,n=this.getBoundingRect(),i=this.style,r=i.shadowBlur||0,a=i.shadowOffsetX||0,o=i.shadowOffsetY||0;t=this._paintRect||(this._paintRect=new bn(0,0,0,0)),e?bn.applyTransform(t,n,e):t.copy(n),(r||a||o)&&(t.width+=2*r+Math.abs(a),t.height+=2*r+Math.abs(o),t.x=Math.min(t.x,t.x+a-r),t.y=Math.min(t.y,t.y+o-r));var s=this.dirtyRectTolerance;t.isZero()||(t.x=Math.floor(t.x-s),t.y=Math.floor(t.y-s),t.width=Math.ceil(t.width+1+2*s),t.height=Math.ceil(t.height+1+2*s))}return t},e.prototype.setPrevPaintRect=function(t){t?(this._prevPaintRect=this._prevPaintRect||new bn(0,0,0,0),this._prevPaintRect.copy(t)):this._prevPaintRect=null},e.prototype.getPrevPaintRect=function(){return this._prevPaintRect},e.prototype.animateStyle=function(t){return this.animate("style",t)},e.prototype.updateDuringAnimation=function(t){"style"===t?this.dirtyStyle():this.markRedraw()},e.prototype.attrKV=function(e,n){"style"!==e?t.prototype.attrKV.call(this,e,n):this.style?this.setStyle(n):this.useStyle(n)},e.prototype.setStyle=function(t,e){return"string"==typeof t?this.style[t]=e:M(this.style,t),this.dirtyStyle(),this},e.prototype.dirtyStyle=function(){this.markRedraw(),this.__dirty|=e.STYLE_CHANGED_BIT,this._rect&&(this._rect=null)},e.prototype.dirty=function(){this.dirtyStyle()},e.prototype.styleChanged=function(){return!!(this.__dirty&e.STYLE_CHANGED_BIT)},e.prototype.styleUpdated=function(){this.__dirty&=~e.STYLE_CHANGED_BIT},e.prototype.createStyle=function(t){return ut(jr,t)},e.prototype.useStyle=function(t){t[qr]||(t=this.createStyle(t)),this.__inHover?this.__hoverStyle=t:this.style=t,this.dirtyStyle()},e.prototype.isStyleObject=function(t){return t[qr]},e.prototype._innerSaveToNormal=function(e){t.prototype._innerSaveToNormal.call(this,e);var n=this._normalState;e.style&&!n.style&&(n.style=this._mergeStyle(this.createStyle(),this.style)),this._savePrimaryToNormal(e,n,Kr)},e.prototype._applyStateObj=function(e,n,i,r,a,o){t.prototype._applyStateObj.call(this,e,n,i,r,a,o);var s,l=!(n&&r);if(n&&n.style?a?r?s=n.style:(s=this._mergeStyle(this.createStyle(),i.style),this._mergeStyle(s,n.style)):(s=this._mergeStyle(this.createStyle(),r?this.style:i.style),this._mergeStyle(s,n.style)):l&&(s=i.style),s)if(a){var u=this.style;if(this.style=this.createStyle(l?{}:u),l)for(var h=N(u),c=0;c<h.length;c++){(f=h[c])in s&&(s[f]=s[f],this.style[f]=u[f])}var p=N(s);for(c=0;c<p.length;c++){var f=p[c];this.style[f]=this.style[f]}this._transitionState(e,{style:s},o,this.getAnimationStyleProps())}else this.useStyle(s);for(c=0;c<Kr.length;c++){f=Kr[c];n&&null!=n[f]?this[f]=n[f]:l&&null!=i[f]&&(this[f]=i[f])}},e.prototype._mergeStates=function(e){for(var n,i=t.prototype._mergeStates.call(this,e),r=0;r<e.length;r++){var a=e[r];a.style&&(n=n||{},this._mergeStyle(n,a.style))}return n&&(i.style=n),i},e.prototype._mergeStyle=function(t,e){return M(t,e),t},e.prototype.getAnimationStyleProps=function(){return Zr},e.STYLE_CHANGED_BIT=2,e.initDefaultProps=((i=e.prototype).type="displayable",i.invisible=!1,i.z=0,i.z2=0,i.zlevel=0,i.culling=!1,i.cursor="pointer",i.rectHover=!1,i.incremental=!1,i._rect=null,i.dirtyRectTolerance=0,void(i.__dirty=Wn.REDARAW_BIT|e.STYLE_CHANGED_BIT)),e}(Wn),Qr=new bn(0,0,0,0),Jr=new bn(0,0,0,0);var ta=Math.pow,ea=Math.sqrt,na=1e-8,ia=1e-4,ra=ea(3),aa=1/3,oa=ft(),sa=ft(),la=ft();function ua(t){return t>-1e-8&&t<na}function ha(t){return t>na||t<-1e-8}function ca(t,e,n,i,r){var a=1-r;return a*a*(a*t+3*r*e)+r*r*(r*i+3*a*n)}function pa(t,e,n,i,r){var a=1-r;return 3*(((e-t)*a+2*(n-e)*r)*a+(i-n)*r*r)}function fa(t,e,n,i,r,a){var o=i+3*(e-n)-t,s=3*(n-2*e+t),l=3*(e-t),u=t-r,h=s*s-3*o*l,c=s*l-9*o*u,p=l*l-3*s*u,f=0;if(ua(h)&&ua(c)){if(ua(s))a[0]=0;else(M=-l/s)>=0&&M<=1&&(a[f++]=M)}else{var d=c*c-4*h*p;if(ua(d)){var g=c/h,y=-g/2;(M=-s/o+g)>=0&&M<=1&&(a[f++]=M),y>=0&&y<=1&&(a[f++]=y)}else if(d>0){var v=ea(d),m=h*s+1.5*o*(-c+v),_=h*s+1.5*o*(-c-v);(M=(-s-((m=m<0?-ta(-m,aa):ta(m,aa))+(_=_<0?-ta(-_,aa):ta(_,aa))))/(3*o))>=0&&M<=1&&(a[f++]=M)}else{var x=(2*h*s-3*o*c)/(2*ea(h*h*h)),b=Math.acos(x)/3,w=ea(h),S=Math.cos(b),M=(-s-2*w*S)/(3*o),T=(y=(-s+w*(S+ra*Math.sin(b)))/(3*o),(-s+w*(S-ra*Math.sin(b)))/(3*o));M>=0&&M<=1&&(a[f++]=M),y>=0&&y<=1&&(a[f++]=y),T>=0&&T<=1&&(a[f++]=T)}}return f}function da(t,e,n,i,r){var a=6*n-12*e+6*t,o=9*e+3*i-3*t-9*n,s=3*e-3*t,l=0;if(ua(o)){if(ha(a))(h=-s/a)>=0&&h<=1&&(r[l++]=h)}else{var u=a*a-4*o*s;if(ua(u))r[0]=-a/(2*o);else if(u>0){var h,c=ea(u),p=(-a-c)/(2*o);(h=(-a+c)/(2*o))>=0&&h<=1&&(r[l++]=h),p>=0&&p<=1&&(r[l++]=p)}}return l}function ga(t,e,n,i,r,a){var o=(e-t)*r+t,s=(n-e)*r+e,l=(i-n)*r+n,u=(s-o)*r+o,h=(l-s)*r+s,c=(h-u)*r+u;a[0]=t,a[1]=o,a[2]=u,a[3]=c,a[4]=c,a[5]=h,a[6]=l,a[7]=i}function ya(t,e,n,i,r,a,o,s,l,u,h){var c,p,f,d,g,y=.005,v=1/0;oa[0]=l,oa[1]=u;for(var m=0;m<1;m+=.05)sa[0]=ca(t,n,r,o,m),sa[1]=ca(e,i,a,s,m),(d=Ct(oa,sa))<v&&(c=m,v=d);v=1/0;for(var _=0;_<32&&!(y<ia);_++)p=c-y,f=c+y,sa[0]=ca(t,n,r,o,p),sa[1]=ca(e,i,a,s,p),d=Ct(sa,oa),p>=0&&d<v?(c=p,v=d):(la[0]=ca(t,n,r,o,f),la[1]=ca(e,i,a,s,f),g=Ct(la,oa),f<=1&&g<v?(c=f,v=g):y*=.5);return h&&(h[0]=ca(t,n,r,o,c),h[1]=ca(e,i,a,s,c)),ea(v)}function va(t,e,n,i,r,a,o,s,l){for(var u=t,h=e,c=0,p=1/l,f=1;f<=l;f++){var d=f*p,g=ca(t,n,r,o,d),y=ca(e,i,a,s,d),v=g-u,m=y-h;c+=Math.sqrt(v*v+m*m),u=g,h=y}return c}function ma(t,e,n,i){var r=1-i;return r*(r*t+2*i*e)+i*i*n}function _a(t,e,n,i){return 2*((1-i)*(e-t)+i*(n-e))}function xa(t,e,n){var i=t+n-2*e;return 0===i?.5:(t-e)/i}function ba(t,e,n,i,r){var a=(e-t)*i+t,o=(n-e)*i+e,s=(o-a)*i+a;r[0]=t,r[1]=a,r[2]=s,r[3]=s,r[4]=o,r[5]=n}function wa(t,e,n,i,r,a,o,s,l){var u,h=.005,c=1/0;oa[0]=o,oa[1]=s;for(var p=0;p<1;p+=.05){sa[0]=ma(t,n,r,p),sa[1]=ma(e,i,a,p),(y=Ct(oa,sa))<c&&(u=p,c=y)}c=1/0;for(var f=0;f<32&&!(h<ia);f++){var d=u-h,g=u+h;sa[0]=ma(t,n,r,d),sa[1]=ma(e,i,a,d);var y=Ct(sa,oa);if(d>=0&&y<c)u=d,c=y;else{la[0]=ma(t,n,r,g),la[1]=ma(e,i,a,g);var v=Ct(la,oa);g<=1&&v<c?(u=g,c=v):h*=.5}}return l&&(l[0]=ma(t,n,r,u),l[1]=ma(e,i,a,u)),ea(c)}function Sa(t,e,n,i,r,a,o){for(var s=t,l=e,u=0,h=1/o,c=1;c<=o;c++){var p=c*h,f=ma(t,n,r,p),d=ma(e,i,a,p),g=f-s,y=d-l;u+=Math.sqrt(g*g+y*y),s=f,l=d}return u}var Ma=Math.min,Ta=Math.max,Ca=Math.sin,Da=Math.cos,Ia=2*Math.PI,Aa=ft(),ka=ft(),La=ft();function Pa(t,e,n){if(0!==t.length){for(var i=t[0],r=i[0],a=i[0],o=i[1],s=i[1],l=1;l<t.length;l++)i=t[l],r=Ma(r,i[0]),a=Ta(a,i[0]),o=Ma(o,i[1]),s=Ta(s,i[1]);e[0]=r,e[1]=o,n[0]=a,n[1]=s}}function Oa(t,e,n,i,r,a){r[0]=Ma(t,n),r[1]=Ma(e,i),a[0]=Ta(t,n),a[1]=Ta(e,i)}var Ra=[],Na=[];function Ea(t,e,n,i,r,a,o,s,l,u){var h=da,c=ca,p=h(t,n,r,o,Ra);l[0]=1/0,l[1]=1/0,u[0]=-1/0,u[1]=-1/0;for(var f=0;f<p;f++){var d=c(t,n,r,o,Ra[f]);l[0]=Ma(d,l[0]),u[0]=Ta(d,u[0])}p=h(e,i,a,s,Na);for(f=0;f<p;f++){var g=c(e,i,a,s,Na[f]);l[1]=Ma(g,l[1]),u[1]=Ta(g,u[1])}l[0]=Ma(t,l[0]),u[0]=Ta(t,u[0]),l[0]=Ma(o,l[0]),u[0]=Ta(o,u[0]),l[1]=Ma(e,l[1]),u[1]=Ta(e,u[1]),l[1]=Ma(s,l[1]),u[1]=Ta(s,u[1])}function Ba(t,e,n,i,r,a,o,s){var l=xa,u=ma,h=Ta(Ma(l(t,n,r),1),0),c=Ta(Ma(l(e,i,a),1),0),p=u(t,n,r,h),f=u(e,i,a,c);o[0]=Ma(t,r,p),o[1]=Ma(e,a,f),s[0]=Ta(t,r,p),s[1]=Ta(e,a,f)}function za(t,e,n,i,r,a,o,s,l){var u=At,h=kt,c=Math.abs(r-a);if(c%Ia<1e-4&&c>1e-4)return s[0]=t-n,s[1]=e-i,l[0]=t+n,void(l[1]=e+i);if(Aa[0]=Da(r)*n+t,Aa[1]=Ca(r)*i+e,ka[0]=Da(a)*n+t,ka[1]=Ca(a)*i+e,u(s,Aa,ka),h(l,Aa,ka),(r%=Ia)<0&&(r+=Ia),(a%=Ia)<0&&(a+=Ia),r>a&&!o?a+=Ia:r<a&&o&&(r+=Ia),o){var p=a;a=r,r=p}for(var f=0;f<a;f+=Math.PI/2)f>r&&(La[0]=Da(f)*n+t,La[1]=Ca(f)*i+e,u(s,La,s),h(l,La,l))}var Fa={M:1,L:2,C:3,Q:4,A:5,Z:6,R:7},Va=[],Ha=[],Wa=[],Ga=[],Ua=[],Ya=[],Xa=Math.min,qa=Math.max,ja=Math.cos,Za=Math.sin,Ka=Math.sqrt,$a=Math.abs,Qa=Math.PI,Ja=2*Qa,to="undefined"!=typeof Float32Array,eo=[];function no(t){return Math.round(t/Qa*1e8)/1e8%2*Qa}function io(t,e){var n=no(t[0]);n<0&&(n+=Ja);var i=n-t[0],r=t[1];r+=i,!e&&r-n>=Ja?r=n+Ja:e&&n-r>=Ja?r=n-Ja:!e&&n>r?r=n+(Ja-no(n-r)):e&&n<r&&(r=n-(Ja-no(r-n))),t[0]=n,t[1]=r}var ro=function(){function t(t){this.dpr=1,this._version=0,this._xi=0,this._yi=0,this._x0=0,this._y0=0,this._len=0,t&&(this._saveData=!1),this._saveData&&(this.data=[])}return t.prototype.increaseVersion=function(){this._version++},t.prototype.getVersion=function(){return this._version},t.prototype.setScale=function(t,e,n){(n=n||0)>0&&(this._ux=$a(n/Rn/t)||0,this._uy=$a(n/Rn/e)||0)},t.prototype.setDPR=function(t){this.dpr=t},t.prototype.setContext=function(t){this._ctx=t},t.prototype.getContext=function(){return this._ctx},t.prototype.beginPath=function(){return this._ctx&&this._ctx.beginPath(),this.reset(),this},t.prototype.reset=function(){this._saveData&&(this._len=0),this._lineDash&&(this._lineDash=null,this._dashOffset=0),this._pathSegLen&&(this._pathSegLen=null,this._pathLen=0),this._version++},t.prototype.moveTo=function(t,e){return this.addData(Fa.M,t,e),this._ctx&&this._ctx.moveTo(t,e),this._x0=t,this._y0=e,this._xi=t,this._yi=e,this},t.prototype.lineTo=function(t,e){var n=$a(t-this._xi)>this._ux||$a(e-this._yi)>this._uy||this._len<5;return this.addData(Fa.L,t,e),this._ctx&&n&&(this._needsDash?this._dashedLineTo(t,e):this._ctx.lineTo(t,e)),n&&(this._xi=t,this._yi=e),this},t.prototype.bezierCurveTo=function(t,e,n,i,r,a){return this.addData(Fa.C,t,e,n,i,r,a),this._ctx&&(this._needsDash?this._dashedBezierTo(t,e,n,i,r,a):this._ctx.bezierCurveTo(t,e,n,i,r,a)),this._xi=r,this._yi=a,this},t.prototype.quadraticCurveTo=function(t,e,n,i){return this.addData(Fa.Q,t,e,n,i),this._ctx&&(this._needsDash?this._dashedQuadraticTo(t,e,n,i):this._ctx.quadraticCurveTo(t,e,n,i)),this._xi=n,this._yi=i,this},t.prototype.arc=function(t,e,n,i,r,a){eo[0]=i,eo[1]=r,io(eo,a),i=eo[0];var o=(r=eo[1])-i;return this.addData(Fa.A,t,e,n,n,i,o,0,a?0:1),this._ctx&&this._ctx.arc(t,e,n,i,r,a),this._xi=ja(r)*n+t,this._yi=Za(r)*n+e,this},t.prototype.arcTo=function(t,e,n,i,r){return this._ctx&&this._ctx.arcTo(t,e,n,i,r),this},t.prototype.rect=function(t,e,n,i){return this._ctx&&this._ctx.rect(t,e,n,i),this.addData(Fa.R,t,e,n,i),this},t.prototype.closePath=function(){this.addData(Fa.Z);var t=this._ctx,e=this._x0,n=this._y0;return t&&(this._needsDash&&this._dashedLineTo(e,n),t.closePath()),this._xi=e,this._yi=n,this},t.prototype.fill=function(t){t&&t.fill(),this.toStatic()},t.prototype.stroke=function(t){t&&t.stroke(),this.toStatic()},t.prototype.setLineDash=function(t){if(t instanceof Array){this._lineDash=t,this._dashIdx=0;for(var e=0,n=0;n<t.length;n++)e+=t[n];this._dashSum=e,this._needsDash=!0}else this._lineDash=null,this._needsDash=!1;return this},t.prototype.setLineDashOffset=function(t){return this._dashOffset=t,this},t.prototype.len=function(){return this._len},t.prototype.setData=function(t){var e=t.length;this.data&&this.data.length===e||!to||(this.data=new Float32Array(e));for(var n=0;n<e;n++)this.data[n]=t[n];this._len=e},t.prototype.appendPath=function(t){t instanceof Array||(t=[t]);for(var e=t.length,n=0,i=this._len,r=0;r<e;r++)n+=t[r].len();to&&this.data instanceof Float32Array&&(this.data=new Float32Array(i+n));for(r=0;r<e;r++)for(var a=t[r].data,o=0;o<a.length;o++)this.data[i++]=a[o];this._len=i},t.prototype.addData=function(t,e,n,i,r,a,o,s,l){if(this._saveData){var u=this.data;this._len+arguments.length>u.length&&(this._expandData(),u=this.data);for(var h=0;h<arguments.length;h++)u[this._len++]=arguments[h]}},t.prototype._expandData=function(){if(!(this.data instanceof Array)){for(var t=[],e=0;e<this._len;e++)t[e]=this.data[e];this.data=t}},t.prototype._dashedLineTo=function(t,e){var n,i,r=this._dashSum,a=this._lineDash,o=this._ctx,s=this._dashOffset,l=this._xi,u=this._yi,h=t-l,c=e-u,p=Ka(h*h+c*c),f=l,d=u,g=a.length;for(s<0&&(s=r+s),f-=(s%=r)*(h/=p),d-=s*(c/=p);h>0&&f<=t||h<0&&f>=t||0===h&&(c>0&&d<=e||c<0&&d>=e);)f+=h*(n=a[i=this._dashIdx]),d+=c*n,this._dashIdx=(i+1)%g,h>0&&f<l||h<0&&f>l||c>0&&d<u||c<0&&d>u||o[i%2?"moveTo":"lineTo"](h>=0?Xa(f,t):qa(f,t),c>=0?Xa(d,e):qa(d,e));h=f-t,c=d-e,this._dashOffset=-Ka(h*h+c*c)},t.prototype._dashedBezierTo=function(t,e,n,i,r,a){var o,s,l,u,h,c=this._ctx,p=this._dashSum,f=this._dashOffset,d=this._lineDash,g=this._xi,y=this._yi,v=0,m=this._dashIdx,_=d.length,x=0;for(f<0&&(f=p+f),f%=p,o=0;o<1;o+=.1)s=ca(g,t,n,r,o+.1)-ca(g,t,n,r,o),l=ca(y,e,i,a,o+.1)-ca(y,e,i,a,o),v+=Ka(s*s+l*l);for(;m<_&&!((x+=d[m])>f);m++);for(o=(x-f)/v;o<=1;)u=ca(g,t,n,r,o),h=ca(y,e,i,a,o),m%2?c.moveTo(u,h):c.lineTo(u,h),o+=d[m]/v,m=(m+1)%_;m%2!=0&&c.lineTo(r,a),s=r-u,l=a-h,this._dashOffset=-Ka(s*s+l*l)},t.prototype._dashedQuadraticTo=function(t,e,n,i){var r=n,a=i;n=(n+2*t)/3,i=(i+2*e)/3,t=(this._xi+2*t)/3,e=(this._yi+2*e)/3,this._dashedBezierTo(t,e,n,i,r,a)},t.prototype.toStatic=function(){if(this._saveData){var t=this.data;t instanceof Array&&(t.length=this._len,to&&this._len>11&&(this.data=new Float32Array(t)))}},t.prototype.getBoundingRect=function(){Wa[0]=Wa[1]=Ua[0]=Ua[1]=Number.MAX_VALUE,Ga[0]=Ga[1]=Ya[0]=Ya[1]=-Number.MAX_VALUE;var t,e=this.data,n=0,i=0,r=0,a=0;for(t=0;t<this._len;){var o=e[t++],s=1===t;switch(s&&(r=n=e[t],a=i=e[t+1]),o){case Fa.M:n=r=e[t++],i=a=e[t++],Ua[0]=r,Ua[1]=a,Ya[0]=r,Ya[1]=a;break;case Fa.L:Oa(n,i,e[t],e[t+1],Ua,Ya),n=e[t++],i=e[t++];break;case Fa.C:Ea(n,i,e[t++],e[t++],e[t++],e[t++],e[t],e[t+1],Ua,Ya),n=e[t++],i=e[t++];break;case Fa.Q:Ba(n,i,e[t++],e[t++],e[t],e[t+1],Ua,Ya),n=e[t++],i=e[t++];break;case Fa.A:var l=e[t++],u=e[t++],h=e[t++],c=e[t++],p=e[t++],f=e[t++]+p;t+=1;var d=!e[t++];s&&(r=ja(p)*h+l,a=Za(p)*c+u),za(l,u,h,c,p,f,d,Ua,Ya),n=ja(f)*h+l,i=Za(f)*c+u;break;case Fa.R:Oa(r=n=e[t++],a=i=e[t++],r+e[t++],a+e[t++],Ua,Ya);break;case Fa.Z:n=r,i=a}At(Wa,Wa,Ua),kt(Ga,Ga,Ya)}return 0===t&&(Wa[0]=Wa[1]=Ga[0]=Ga[1]=0),new bn(Wa[0],Wa[1],Ga[0]-Wa[0],Ga[1]-Wa[1])},t.prototype._calculateLength=function(){var t=this.data,e=this._len,n=this._ux,i=this._uy,r=0,a=0,o=0,s=0;this._pathSegLen||(this._pathSegLen=[]);for(var l=this._pathSegLen,u=0,h=0,c=0;c<e;){var p=t[c++],f=1===c;f&&(o=r=t[c],s=a=t[c+1]);var d=-1;switch(p){case Fa.M:r=o=t[c++],a=s=t[c++];break;case Fa.L:var g=t[c++],y=(_=t[c++])-a;($a(A=g-r)>n||$a(y)>i||c===e-1)&&(d=Math.sqrt(A*A+y*y),r=g,a=_);break;case Fa.C:var v=t[c++],m=t[c++],_=(g=t[c++],t[c++]),x=t[c++],b=t[c++];d=va(r,a,v,m,g,_,x,b,10),r=x,a=b;break;case Fa.Q:d=Sa(r,a,v=t[c++],m=t[c++],g=t[c++],_=t[c++],10),r=g,a=_;break;case Fa.A:var w=t[c++],S=t[c++],M=t[c++],T=t[c++],C=t[c++],D=t[c++],I=D+C;c+=1;t[c++];f&&(o=ja(C)*M+w,s=Za(C)*T+S),d=qa(M,T)*Xa(Ja,Math.abs(D)),r=ja(I)*M+w,a=Za(I)*T+S;break;case Fa.R:o=r=t[c++],s=a=t[c++],d=2*t[c++]+2*t[c++];break;case Fa.Z:var A=o-r;y=s-a;d=Math.sqrt(A*A+y*y),r=o,a=s}d>=0&&(l[h++]=d,u+=d)}return this._pathLen=u,u},t.prototype.rebuildPath=function(t,e){var n,i,r,a,o,s,l,u,h=this.data,c=this._ux,p=this._uy,f=this._len,d=e<1,g=0,y=0;if(!d||(this._pathSegLen||this._calculateLength(),l=this._pathSegLen,u=e*this._pathLen))t:for(var v=0;v<f;){var m=h[v++],_=1===v;switch(_&&(n=r=h[v],i=a=h[v+1]),m){case Fa.M:n=r=h[v++],i=a=h[v++],t.moveTo(r,a);break;case Fa.L:if(o=h[v++],s=h[v++],$a(o-r)>c||$a(s-a)>p||v===f-1){if(d){if(g+(W=l[y++])>u){var x=(u-g)/W;t.lineTo(r*(1-x)+o*x,a*(1-x)+s*x);break t}g+=W}t.lineTo(o,s),r=o,a=s}break;case Fa.C:var b=h[v++],w=h[v++],S=h[v++],M=h[v++],T=h[v++],C=h[v++];if(d){if(g+(W=l[y++])>u){ga(r,b,S,T,x=(u-g)/W,Va),ga(a,w,M,C,x,Ha),t.bezierCurveTo(Va[1],Ha[1],Va[2],Ha[2],Va[3],Ha[3]);break t}g+=W}t.bezierCurveTo(b,w,S,M,T,C),r=T,a=C;break;case Fa.Q:b=h[v++],w=h[v++],S=h[v++],M=h[v++];if(d){if(g+(W=l[y++])>u){ba(r,b,S,x=(u-g)/W,Va),ba(a,w,M,x,Ha),t.quadraticCurveTo(Va[1],Ha[1],Va[2],Ha[2]);break t}g+=W}t.quadraticCurveTo(b,w,S,M),r=S,a=M;break;case Fa.A:var D=h[v++],I=h[v++],A=h[v++],k=h[v++],L=h[v++],P=h[v++],O=h[v++],R=!h[v++],N=A>k?A:k,E=$a(A-k)>.001,B=L+P,z=!1;if(d)g+(W=l[y++])>u&&(B=L+P*(u-g)/W,z=!0),g+=W;if(E&&t.ellipse?t.ellipse(D,I,A,k,O,L,B,R):t.arc(D,I,N,L,B,R),z)break t;_&&(n=ja(L)*A+D,i=Za(L)*k+I),r=ja(B)*A+D,a=Za(B)*k+I;break;case Fa.R:n=r=h[v],i=a=h[v+1],o=h[v++],s=h[v++];var F=h[v++],V=h[v++];if(d){if(g+(W=l[y++])>u){var H=u-g;t.moveTo(o,s),t.lineTo(o+Xa(H,F),s),(H-=F)>0&&t.lineTo(o+F,s+Xa(H,V)),(H-=V)>0&&t.lineTo(o+qa(F-H,0),s+V),(H-=F)>0&&t.lineTo(o,s+qa(V-H,0));break t}g+=W}t.rect(o,s,F,V);break;case Fa.Z:if(d){var W;if(g+(W=l[y++])>u){x=(u-g)/W;t.lineTo(r*(1-x)+n*x,a*(1-x)+i*x);break t}g+=W}t.closePath(),r=n,a=i}}},t.CMD=Fa,t.initDefaultProps=function(){var e=t.prototype;e._saveData=!0,e._needsDash=!1,e._dashOffset=0,e._dashIdx=0,e._dashSum=0,e._ux=0,e._uy=0}(),t}();function ao(t,e,n,i,r,a,o){if(0===r)return!1;var s=r,l=0;if(o>e+s&&o>i+s||o<e-s&&o<i-s||a>t+s&&a>n+s||a<t-s&&a<n-s)return!1;if(t===n)return Math.abs(a-t)<=s/2;var u=(l=(e-i)/(t-n))*a-o+(t*i-n*e)/(t-n);return u*u/(l*l+1)<=s/2*s/2}function oo(t,e,n,i,r,a,o,s,l,u,h){if(0===l)return!1;var c=l;return!(h>e+c&&h>i+c&&h>a+c&&h>s+c||h<e-c&&h<i-c&&h<a-c&&h<s-c||u>t+c&&u>n+c&&u>r+c&&u>o+c||u<t-c&&u<n-c&&u<r-c&&u<o-c)&&ya(t,e,n,i,r,a,o,s,u,h,null)<=c/2}function so(t,e,n,i,r,a,o,s,l){if(0===o)return!1;var u=o;return!(l>e+u&&l>i+u&&l>a+u||l<e-u&&l<i-u&&l<a-u||s>t+u&&s>n+u&&s>r+u||s<t-u&&s<n-u&&s<r-u)&&wa(t,e,n,i,r,a,s,l,null)<=u/2}var lo=2*Math.PI;function uo(t){return(t%=lo)<0&&(t+=lo),t}var ho=2*Math.PI;function co(t,e,n,i,r,a,o,s,l){if(0===o)return!1;var u=o;s-=t,l-=e;var h=Math.sqrt(s*s+l*l);if(h-u>n||h+u<n)return!1;if(Math.abs(i-r)%ho<1e-4)return!0;if(a){var c=i;i=uo(r),r=uo(c)}else i=uo(i),r=uo(r);i>r&&(r+=ho);var p=Math.atan2(l,s);return p<0&&(p+=ho),p>=i&&p<=r||p+ho>=i&&p+ho<=r}function po(t,e,n,i,r,a){if(a>e&&a>i||a<e&&a<i)return 0;if(i===e)return 0;var o=(a-e)/(i-e),s=i<e?1:-1;1!==o&&0!==o||(s=i<e?.5:-.5);var l=o*(n-t)+t;return l===r?1/0:l>r?s:0}var fo=ro.CMD,go=2*Math.PI;var yo=[-1,-1,-1],vo=[-1,-1];function mo(t,e,n,i,r,a,o,s,l,u){if(u>e&&u>i&&u>a&&u>s||u<e&&u<i&&u<a&&u<s)return 0;var h,c=fa(e,i,a,s,u,yo);if(0===c)return 0;for(var p=0,f=-1,d=void 0,g=void 0,y=0;y<c;y++){var v=yo[y],m=0===v||1===v?.5:1;ca(t,n,r,o,v)<l||(f<0&&(f=da(e,i,a,s,vo),vo[1]<vo[0]&&f>1&&(h=void 0,h=vo[0],vo[0]=vo[1],vo[1]=h),d=ca(e,i,a,s,vo[0]),f>1&&(g=ca(e,i,a,s,vo[1]))),2===f?v<vo[0]?p+=d<e?m:-m:v<vo[1]?p+=g<d?m:-m:p+=s<g?m:-m:v<vo[0]?p+=d<e?m:-m:p+=s<d?m:-m)}return p}function _o(t,e,n,i,r,a,o,s){if(s>e&&s>i&&s>a||s<e&&s<i&&s<a)return 0;var l=function(t,e,n,i,r){var a=t-2*e+n,o=2*(e-t),s=t-i,l=0;if(ua(a))ha(o)&&(h=-s/o)>=0&&h<=1&&(r[l++]=h);else{var u=o*o-4*a*s;if(ua(u))(h=-o/(2*a))>=0&&h<=1&&(r[l++]=h);else if(u>0){var h,c=ea(u),p=(-o-c)/(2*a);(h=(-o+c)/(2*a))>=0&&h<=1&&(r[l++]=h),p>=0&&p<=1&&(r[l++]=p)}}return l}(e,i,a,s,yo);if(0===l)return 0;var u=xa(e,i,a);if(u>=0&&u<=1){for(var h=0,c=ma(e,i,a,u),p=0;p<l;p++){var f=0===yo[p]||1===yo[p]?.5:1;ma(t,n,r,yo[p])<o||(yo[p]<u?h+=c<e?f:-f:h+=a<c?f:-f)}return h}f=0===yo[0]||1===yo[0]?.5:1;return ma(t,n,r,yo[0])<o?0:a<e?f:-f}function xo(t,e,n,i,r,a,o,s){if((s-=e)>n||s<-n)return 0;var l=Math.sqrt(n*n-s*s);yo[0]=-l,yo[1]=l;var u=Math.abs(i-r);if(u<1e-4)return 0;if(u>=go-1e-4){i=0,r=go;var h=a?1:-1;return o>=yo[0]+t&&o<=yo[1]+t?h:0}if(i>r){var c=i;i=r,r=c}i<0&&(i+=go,r+=go);for(var p=0,f=0;f<2;f++){var d=yo[f];if(d+t>o){var g=Math.atan2(s,d);h=a?1:-1;g<0&&(g=go+g),(g>=i&&g<=r||g+go>=i&&g+go<=r)&&(g>Math.PI/2&&g<1.5*Math.PI&&(h=-h),p+=h)}}return p}function bo(t,e,n,i,r){for(var a,o,s,l,u=t.data,h=t.len(),c=0,p=0,f=0,d=0,g=0,y=0;y<h;){var v=u[y++],m=1===y;switch(v===fo.M&&y>1&&(n||(c+=po(p,f,d,g,i,r))),m&&(d=p=u[y],g=f=u[y+1]),v){case fo.M:p=d=u[y++],f=g=u[y++];break;case fo.L:if(n){if(ao(p,f,u[y],u[y+1],e,i,r))return!0}else c+=po(p,f,u[y],u[y+1],i,r)||0;p=u[y++],f=u[y++];break;case fo.C:if(n){if(oo(p,f,u[y++],u[y++],u[y++],u[y++],u[y],u[y+1],e,i,r))return!0}else c+=mo(p,f,u[y++],u[y++],u[y++],u[y++],u[y],u[y+1],i,r)||0;p=u[y++],f=u[y++];break;case fo.Q:if(n){if(so(p,f,u[y++],u[y++],u[y],u[y+1],e,i,r))return!0}else c+=_o(p,f,u[y++],u[y++],u[y],u[y+1],i,r)||0;p=u[y++],f=u[y++];break;case fo.A:var _=u[y++],x=u[y++],b=u[y++],w=u[y++],S=u[y++],M=u[y++];y+=1;var T=!!(1-u[y++]);a=Math.cos(S)*b+_,o=Math.sin(S)*w+x,m?(d=a,g=o):c+=po(p,f,a,o,i,r);var C=(i-_)*w/b+_;if(n){if(co(_,x,w,S,S+M,T,e,C,r))return!0}else c+=xo(_,x,w,S,S+M,T,C,r);p=Math.cos(S+M)*b+_,f=Math.sin(S+M)*w+x;break;case fo.R:if(d=p=u[y++],g=f=u[y++],a=d+u[y++],o=g+u[y++],n){if(ao(d,g,a,g,e,i,r)||ao(a,g,a,o,e,i,r)||ao(a,o,d,o,e,i,r)||ao(d,o,d,g,e,i,r))return!0}else c+=po(a,g,a,o,i,r),c+=po(d,o,d,g,i,r);break;case fo.Z:if(n){if(ao(p,f,d,g,e,i,r))return!0}else c+=po(p,f,d,g,i,r);p=d,f=g}}return n||(s=f,l=g,Math.abs(s-l)<1e-4)||(c+=po(p,f,d,g,i,r)||0),0!==c}var wo=T({fill:"#000",stroke:null,strokePercent:1,fillOpacity:1,strokeOpacity:1,lineDashOffset:0,lineWidth:1,lineCap:"butt",miterLimit:10,strokeNoScale:!1,strokeFirst:!1},jr),So={style:T({fill:!0,stroke:!0,strokePercent:!0,fillOpacity:!0,strokeOpacity:!0,lineDashOffset:!0,lineWidth:!0,miterLimit:!0},Zr.style)},Mo=["x","y","rotation","scaleX","scaleY","originX","originY","invisible","culling","z","z2","zlevel","parent"],To=function(t){function e(e){return t.call(this,e)||this}var i;return n(e,t),e.prototype.update=function(){var n=this;t.prototype.update.call(this);var i=this.style;if(i.decal){var r=this._decalEl=this._decalEl||new e;r.buildPath===e.prototype.buildPath&&(r.buildPath=function(t){n.buildPath(t,n.shape)}),r.silent=!0;var a=r.style;for(var o in i)a[o]!==i[o]&&(a[o]=i[o]);a.fill=i.fill?i.decal:null,a.decal=null,a.shadowColor=null,i.strokeFirst&&(a.stroke=null);for(var s=0;s<Mo.length;++s)r[Mo[s]]=this[Mo[s]];r.__dirty|=Wn.REDARAW_BIT}else this._decalEl&&(this._decalEl=null)},e.prototype.getDecalElement=function(){return this._decalEl},e.prototype._init=function(e){var n=N(e);this.shape=this.getDefaultShape();var i=this.getDefaultStyle();i&&this.useStyle(i);for(var r=0;r<n.length;r++){var a=n[r],o=e[a];"style"===a?this.style?M(this.style,o):this.useStyle(o):"shape"===a?M(this.shape,o):t.prototype.attrKV.call(this,a,o)}this.style||this.useStyle({})},e.prototype.getDefaultStyle=function(){return null},e.prototype.getDefaultShape=function(){return{}},e.prototype.canBeInsideText=function(){return this.hasFill()},e.prototype.getInsideTextFill=function(){var t=this.style.fill;if("none"!==t){if(V(t)){var e=qe(t,0);return e>.5?Nn:e>.2?"#eee":En}if(t)return En}return Nn},e.prototype.getInsideTextStroke=function(t){var e=this.style.fill;if(V(e)){var n=this.__zr;if(!(!n||!n.isDarkMode())===qe(t,0)<.4)return e}},e.prototype.buildPath=function(t,e,n){},e.prototype.pathUpdated=function(){this.__dirty&=~e.SHAPE_CHANGED_BIT},e.prototype.createPathProxy=function(){this.path=new ro(!1)},e.prototype.hasStroke=function(){var t=this.style,e=t.stroke;return!(null==e||"none"===e||!(t.lineWidth>0))},e.prototype.hasFill=function(){var t=this.style.fill;return null!=t&&"none"!==t},e.prototype.getBoundingRect=function(){var t=this._rect,n=this.style,i=!t;if(i){var r=!1;this.path||(r=!0,this.createPathProxy());var a=this.path;(r||this.__dirty&e.SHAPE_CHANGED_BIT)&&(a.beginPath(),this.buildPath(a,this.shape,!1),this.pathUpdated()),t=a.getBoundingRect()}if(this._rect=t,this.hasStroke()&&this.path&&this.path.len()>0){var o=this._rectWithStroke||(this._rectWithStroke=t.clone());if(this.__dirty||i){o.copy(t);var s=n.strokeNoScale?this.getLineScale():1,l=n.lineWidth;if(!this.hasFill()){var u=this.strokeContainThreshold;l=Math.max(l,null==u?4:u)}s>1e-10&&(o.width+=l/s,o.height+=l/s,o.x-=l/s/2,o.y-=l/s/2)}return o}return t},e.prototype.contain=function(t,e){var n=this.transformCoordToLocal(t,e),i=this.getBoundingRect(),r=this.style;if(t=n[0],e=n[1],i.contain(t,e)){var a=this.path;if(this.hasStroke()){var o=r.lineWidth,s=r.strokeNoScale?this.getLineScale():1;if(s>1e-10&&(this.hasFill()||(o=Math.max(o,this.strokeContainThreshold)),function(t,e,n,i){return bo(t,e,!0,n,i)}(a,o/s,t,e)))return!0}if(this.hasFill())return function(t,e,n){return bo(t,0,!1,e,n)}(a,t,e)}return!1},e.prototype.dirtyShape=function(){this.__dirty|=e.SHAPE_CHANGED_BIT,this._rect&&(this._rect=null),this._decalEl&&this._decalEl.dirtyShape(),this.markRedraw()},e.prototype.dirty=function(){this.dirtyStyle(),this.dirtyShape()},e.prototype.animateShape=function(t){return this.animate("shape",t)},e.prototype.updateDuringAnimation=function(t){"style"===t?this.dirtyStyle():"shape"===t?this.dirtyShape():this.markRedraw()},e.prototype.attrKV=function(e,n){"shape"===e?this.setShape(n):t.prototype.attrKV.call(this,e,n)},e.prototype.setShape=function(t,e){var n=this.shape;return n||(n=this.shape={}),"string"==typeof t?n[t]=e:M(n,t),this.dirtyShape(),this},e.prototype.shapeChanged=function(){return!!(this.__dirty&e.SHAPE_CHANGED_BIT)},e.prototype.createStyle=function(t){return ut(wo,t)},e.prototype._innerSaveToNormal=function(e){t.prototype._innerSaveToNormal.call(this,e);var n=this._normalState;e.shape&&!n.shape&&(n.shape=M({},this.shape))},e.prototype._applyStateObj=function(e,n,i,r,a,o){t.prototype._applyStateObj.call(this,e,n,i,r,a,o);var s,l=!(n&&r);if(n&&n.shape?a?r?s=n.shape:(s=M({},i.shape),M(s,n.shape)):(s=M({},r?this.shape:i.shape),M(s,n.shape)):l&&(s=i.shape),s)if(a){this.shape=M({},this.shape);for(var u={},h=N(s),c=0;c<h.length;c++){var p=h[c];"object"==typeof s[p]?this.shape[p]=s[p]:u[p]=s[p]}this._transitionState(e,{shape:u},o)}else this.shape=s,this.dirtyShape()},e.prototype._mergeStates=function(e){for(var n,i=t.prototype._mergeStates.call(this,e),r=0;r<e.length;r++){var a=e[r];a.shape&&(n=n||{},this._mergeStyle(n,a.shape))}return n&&(i.shape=n),i},e.prototype.getAnimationStyleProps=function(){return So},e.prototype.isZeroArea=function(){return!1},e.extend=function(t){var i=function(e){function i(n){var i=e.call(this,n)||this;return t.init&&t.init.call(i,n),i}return n(i,e),i.prototype.getDefaultStyle=function(){return w(t.style)},i.prototype.getDefaultShape=function(){return w(t.shape)},i}(e);for(var r in t)"function"==typeof t[r]&&(i.prototype[r]=t[r]);return i},e.SHAPE_CHANGED_BIT=4,e.initDefaultProps=((i=e.prototype).type="path",i.strokeContainThreshold=5,i.segmentIgnoreThreshold=0,i.subPixelOptimize=!1,i.autoBatch=!1,void(i.__dirty=Wn.REDARAW_BIT|$r.STYLE_CHANGED_BIT|e.SHAPE_CHANGED_BIT)),e}($r),Co=T({strokeFirst:!0,font:Sn,x:0,y:0,textAlign:"left",textBaseline:"top",miterLimit:2},wo),Do=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.hasStroke=function(){var t=this.style,e=t.stroke;return null!=e&&"none"!==e&&t.lineWidth>0},e.prototype.hasFill=function(){var t=this.style.fill;return null!=t&&"none"!==t},e.prototype.createStyle=function(t){return ut(Co,t)},e.prototype.setBoundingRect=function(t){this._rect=t},e.prototype.getBoundingRect=function(){var t=this.style;if(!this._rect){var e=t.text;null!=e?e+="":e="";var n=Dn(e,t.font,t.textAlign,t.textBaseline);if(n.x+=t.x||0,n.y+=t.y||0,this.hasStroke()){var i=t.lineWidth;n.x-=i/2,n.y-=i/2,n.width+=i,n.height+=i}this._rect=n}return this._rect},e.initDefaultProps=void(e.prototype.dirtyRectTolerance=10),e}($r);Do.prototype.type="tspan";var Io=T({x:0,y:0},jr),Ao={style:T({x:!0,y:!0,width:!0,height:!0,sx:!0,sy:!0,sWidth:!0,sHeight:!0},Zr.style)};var ko=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.createStyle=function(t){return ut(Io,t)},e.prototype._getSize=function(t){var e=this.style,n=e[t];if(null!=n)return n;var i,r=(i=e.image)&&"string"!=typeof i&&i.width&&i.height?e.image:this.__image;if(!r)return 0;var a="width"===t?"height":"width",o=e[a];return null==o?r[t]:r[t]/r[a]*o},e.prototype.getWidth=function(){return this._getSize("width")},e.prototype.getHeight=function(){return this._getSize("height")},e.prototype.getAnimationStyleProps=function(){return Ao},e.prototype.getBoundingRect=function(){var t=this.style;return this._rect||(this._rect=new bn(t.x||0,t.y||0,this.getWidth(),this.getHeight())),this._rect},e}($r);ko.prototype.type="image";var Lo=Math.round;function Po(t,e,n){if(!e)return t;var i=Lo(2*t);return(i+Lo(e))%2==0?i/2:(i+(n?1:-1))/2}var Oo=function(){this.x=0,this.y=0,this.width=0,this.height=0},Ro={},No=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultShape=function(){return new Oo},e.prototype.buildPath=function(t,e){var n,i,r,a;if(this.subPixelOptimize){var o=function(t,e,n){if(e){var i=e.x,r=e.y,a=e.width,o=e.height;t.x=i,t.y=r,t.width=a,t.height=o;var s=n&&n.lineWidth;return s?(t.x=Po(i,s,!0),t.y=Po(r,s,!0),t.width=Math.max(Po(i+a,s,!1)-t.x,0===a?0:1),t.height=Math.max(Po(r+o,s,!1)-t.y,0===o?0:1),t):t}}(Ro,e,this.style);n=o.x,i=o.y,r=o.width,a=o.height,o.r=e.r,e=o}else n=e.x,i=e.y,r=e.width,a=e.height;e.r?function(t,e){var n,i,r,a,o,s=e.x,l=e.y,u=e.width,h=e.height,c=e.r;u<0&&(s+=u,u=-u),h<0&&(l+=h,h=-h),"number"==typeof c?n=i=r=a=c:c instanceof Array?1===c.length?n=i=r=a=c[0]:2===c.length?(n=r=c[0],i=a=c[1]):3===c.length?(n=c[0],i=a=c[1],r=c[2]):(n=c[0],i=c[1],r=c[2],a=c[3]):n=i=r=a=0,n+i>u&&(n*=u/(o=n+i),i*=u/o),r+a>u&&(r*=u/(o=r+a),a*=u/o),i+r>h&&(i*=h/(o=i+r),r*=h/o),n+a>h&&(n*=h/(o=n+a),a*=h/o),t.moveTo(s+n,l),t.lineTo(s+u-i,l),0!==i&&t.arc(s+u-i,l+i,i,-Math.PI/2,0),t.lineTo(s+u,l+h-r),0!==r&&t.arc(s+u-r,l+h-r,r,0,Math.PI/2),t.lineTo(s+a,l+h),0!==a&&t.arc(s+a,l+h-a,a,Math.PI/2,Math.PI),t.lineTo(s,l+n),0!==n&&t.arc(s+n,l+n,n,Math.PI,1.5*Math.PI)}(t,e):t.rect(n,i,r,a)},e.prototype.isZeroArea=function(){return!this.shape.width||!this.shape.height},e}(To);No.prototype.type="rect";var Eo={fill:"#000"},Bo={style:T({fill:!0,stroke:!0,fillOpacity:!0,strokeOpacity:!0,lineWidth:!0,fontSize:!0,lineHeight:!0,width:!0,height:!0,textShadowColor:!0,textShadowBlur:!0,textShadowOffsetX:!0,textShadowOffsetY:!0,backgroundColor:!0,padding:!0,borderColor:!0,borderWidth:!0,borderRadius:!0},Zr.style)},zo=function(t){function e(e){var n=t.call(this)||this;return n.type="text",n._children=[],n._defaultStyle=Eo,n.attr(e),n}return n(e,t),e.prototype.childrenRef=function(){return this._children},e.prototype.update=function(){this.styleChanged()&&this._updateSubTexts();for(var e=0;e<this._children.length;e++){var n=this._children[e];n.zlevel=this.zlevel,n.z=this.z,n.z2=this.z2,n.culling=this.culling,n.cursor=this.cursor,n.invisible=this.invisible}var i=this.attachedTransform;if(i){i.updateTransform();var r=i.transform;r?(this.transform=this.transform||[],se(this.transform,r)):this.transform=null}else t.prototype.update.call(this)},e.prototype.getComputedTransform=function(){return this.__hostTarget&&(this.__hostTarget.getComputedTransform(),this.__hostTarget.updateInnerText(!0)),this.attachedTransform?this.attachedTransform.getComputedTransform():t.prototype.getComputedTransform.call(this)},e.prototype._updateSubTexts=function(){var t;this._childCursor=0,Ho(t=this.style),L(t.rich,Ho),this.style.rich?this._updateRichTexts():this._updatePlainTexts(),this._children.length=this._childCursor,this.styleUpdated()},e.prototype.addSelfToZr=function(e){t.prototype.addSelfToZr.call(this,e);for(var n=0;n<this._children.length;n++)this._children[n].__zr=e},e.prototype.removeSelfFromZr=function(e){t.prototype.removeSelfFromZr.call(this,e);for(var n=0;n<this._children.length;n++)this._children[n].__zr=null},e.prototype.getBoundingRect=function(){if(this.styleChanged()&&this._updateSubTexts(),!this._rect){for(var t=new bn(0,0,0,0),e=this._children,n=[],i=null,r=0;r<e.length;r++){var a=e[r],o=a.getBoundingRect(),s=a.getLocalTransform(n);s?(t.copy(o),t.applyTransform(s),(i=i||t.clone()).union(t)):(i=i||o.clone()).union(o)}this._rect=i||t}return this._rect},e.prototype.setDefaultTextStyle=function(t){this._defaultStyle=t||Eo},e.prototype.setTextContent=function(t){throw new Error("Can't attach text on another text")},e.prototype._mergeStyle=function(t,e){if(!e)return t;var n=e.rich,i=t.rich||n&&{};return M(t,e),n&&i?(this._mergeRich(i,n),t.rich=i):i&&(t.rich=i),t},e.prototype._mergeRich=function(t,e){for(var n=N(e),i=0;i<n.length;i++){var r=n[i];t[r]=t[r]||{},M(t[r],e[r])}},e.prototype.getAnimationStyleProps=function(){return Bo},e.prototype._getOrCreateChild=function(t){var e=this._children[this._childCursor];return e&&e instanceof t||(e=new t),this._children[this._childCursor++]=e,e.__zr=this.__zr,e.parent=this,e},e.prototype._updatePlainTexts=function(){var t=this.style,e=t.font||Sn,n=t.padding,i=function(t,e){null!=t&&(t+="");var n,i=e.overflow,r=e.padding,a=e.font,o="truncate"===i,s=kn(a),l=Q(e.lineHeight,s),u="truncate"===e.lineOverflow,h=e.width,c=(n=null!=h&&"break"===i||"breakAll"===i?t?Xr(t,e.font,h,"breakAll"===i,0).lines:[]:t?t.split("\n"):[]).length*l,p=Q(e.height,c);if(c>p&&u){var f=Math.floor(p/l);n=n.slice(0,f)}var d=p,g=h;if(r&&(d+=r[0]+r[2],null!=g&&(g+=r[1]+r[3])),t&&o&&null!=g)for(var y=Br(h,a,e.ellipsis,{minChar:e.truncateMinChar,placeholder:e.placeholder}),v=0;v<n.length;v++)n[v]=zr(n[v],y);if(null==h){var m=0;for(v=0;v<n.length;v++)m=Math.max(Tn(n[v],a),m);h=m}return{lines:n,height:p,outerHeight:d,lineHeight:l,calculatedLineHeight:s,contentHeight:c,width:h}}(Uo(t),t),r=Yo(t),a=!!t.backgroundColor,o=i.outerHeight,s=i.lines,l=i.lineHeight,u=this._defaultStyle,h=t.x||0,c=t.y||0,p=t.align||u.align||"left",f=t.verticalAlign||u.verticalAlign||"top",d=h,g=An(c,i.contentHeight,f);if(r||n){var y=i.width;n&&(y+=n[1]+n[3]);var v=In(h,y,p),m=An(c,o,f);r&&this._renderBackground(t,t,v,m,y,o)}g+=l/2,n&&(d=Go(h,p,n),"top"===f?g+=n[0]:"bottom"===f&&(g-=n[2]));for(var _,x=0,b=!1,w=(null==(_="fill"in t?t.fill:(b=!0,u.fill))||"none"===_?null:_.image||_.colorStops?"#000":_),S=(Wo("stroke"in t?t.stroke:a||u.autoStroke&&!b?null:(x=2,u.stroke))),M=t.textShadowBlur>0,T=null!=t.width&&("truncate"===t.overflow||"break"===t.overflow||"breakAll"===t.overflow),C=i.calculatedLineHeight,D=0;D<s.length;D++){var I=this._getOrCreateChild(Do),A=I.createStyle();I.useStyle(A),A.text=s[D],A.x=d,A.y=g,p&&(A.textAlign=p),A.textBaseline="middle",A.opacity=t.opacity,A.strokeFirst=!0,M&&(A.shadowBlur=t.textShadowBlur||0,A.shadowColor=t.textShadowColor||"transparent",A.shadowOffsetX=t.textShadowOffsetX||0,A.shadowOffsetY=t.textShadowOffsetY||0),S&&(A.stroke=S,A.lineWidth=t.lineWidth||x,A.lineDash=t.lineDash,A.lineDashOffset=t.lineDashOffset||0),w&&(A.fill=w),A.font=e,g+=l,T&&I.setBoundingRect(new bn(In(A.x,t.width,A.textAlign),An(A.y,C,A.textBaseline),t.width,C))}},e.prototype._updateRichTexts=function(){var t=this.style,e=function(t,e){var n=new Wr;if(null!=t&&(t+=""),!t)return n;for(var i,r=e.width,a=e.height,o=e.overflow,s="break"!==o&&"breakAll"!==o||null==r?null:{width:r,accumWidth:0,breakAll:"breakAll"===o},l=Nr.lastIndex=0;null!=(i=Nr.exec(t));){var u=i.index;u>l&&Gr(n,t.substring(l,u),e,s),Gr(n,i[2],e,s,i[1]),l=Nr.lastIndex}l<t.length&&Gr(n,t.substring(l,t.length),e,s);var h=[],c=0,p=0,f=e.padding,d="truncate"===o,g="truncate"===e.lineOverflow;function y(t,e,n){t.width=e,t.lineHeight=n,c+=n,p=Math.max(p,e)}t:for(var v=0;v<n.lines.length;v++){for(var m=n.lines[v],_=0,x=0,b=0;b<m.tokens.length;b++){var w=(P=m.tokens[b]).styleName&&e.rich[P.styleName]||{},S=P.textPadding=w.padding,M=S?S[1]+S[3]:0,T=P.font=w.font||e.font;P.contentHeight=kn(T);var C=Q(w.height,P.contentHeight);if(P.innerHeight=C,S&&(C+=S[0]+S[2]),P.height=C,P.lineHeight=J(w.lineHeight,e.lineHeight,C),P.align=w&&w.align||e.align,P.verticalAlign=w&&w.verticalAlign||"middle",g&&null!=a&&c+P.lineHeight>a){b>0?(m.tokens=m.tokens.slice(0,b),y(m,x,_),n.lines=n.lines.slice(0,v+1)):n.lines=n.lines.slice(0,v);break t}var D=w.width,I=null==D||"auto"===D;if("string"==typeof D&&"%"===D.charAt(D.length-1))P.percentWidth=D,h.push(P),P.contentWidth=Tn(P.text,T);else{if(I){var A=w.backgroundColor,k=A&&A.image;k&&Rr(k=Lr(k))&&(P.width=Math.max(P.width,k.width*C/k.height))}var L=d&&null!=r?r-x:null;null!=L&&L<P.width?!I||L<M?(P.text="",P.width=P.contentWidth=0):(P.text=Er(P.text,L-M,T,e.ellipsis,{minChar:e.truncateMinChar}),P.width=P.contentWidth=Tn(P.text,T)):P.contentWidth=Tn(P.text,T)}P.width+=M,x+=P.width,w&&(_=Math.max(_,P.lineHeight))}y(m,x,_)}for(n.outerWidth=n.width=Q(r,p),n.outerHeight=n.height=Q(a,c),n.contentHeight=c,n.contentWidth=p,f&&(n.outerWidth+=f[1]+f[3],n.outerHeight+=f[0]+f[2]),v=0;v<h.length;v++){var P,O=(P=h[v]).percentWidth;P.width=parseInt(O,10)/100*n.width}return n}(Uo(t),t),n=e.width,i=e.outerWidth,r=e.outerHeight,a=t.padding,o=t.x||0,s=t.y||0,l=this._defaultStyle,u=t.align||l.align,h=t.verticalAlign||l.verticalAlign,c=In(o,i,u),p=An(s,r,h),f=c,d=p;a&&(f+=a[3],d+=a[0]);var g=f+n;Yo(t)&&this._renderBackground(t,t,c,p,i,r);for(var y=!!t.backgroundColor,v=0;v<e.lines.length;v++){for(var m=e.lines[v],_=m.tokens,x=_.length,b=m.lineHeight,w=m.width,S=0,M=f,T=g,C=x-1,D=void 0;S<x&&(!(D=_[S]).align||"left"===D.align);)this._placeToken(D,t,b,d,M,"left",y),w-=D.width,M+=D.width,S++;for(;C>=0&&"right"===(D=_[C]).align;)this._placeToken(D,t,b,d,T,"right",y),w-=D.width,T-=D.width,C--;for(M+=(n-(M-f)-(g-T)-w)/2;S<=C;)D=_[S],this._placeToken(D,t,b,d,M+D.width/2,"center",y),M+=D.width,S++;d+=b}},e.prototype._placeToken=function(t,e,n,i,r,a,o){var s=e.rich[t.styleName]||{};s.text=t.text;var l=t.verticalAlign,u=i+n/2;"top"===l?u=i+t.height/2:"bottom"===l&&(u=i+n-t.height/2),!t.isLineHolder&&Yo(s)&&this._renderBackground(s,e,"right"===a?r-t.width:"center"===a?r-t.width/2:r,u-t.height/2,t.width,t.height);var h=!!s.backgroundColor,c=t.textPadding;c&&(r=Go(r,a,c),u-=t.height/2-c[0]-t.innerHeight/2);var p=this._getOrCreateChild(Do),f=p.createStyle();p.useStyle(f);var d=this._defaultStyle,g=!1,y=0,v=Wo("fill"in s?s.fill:"fill"in e?e.fill:(g=!0,d.fill)),m=Wo("stroke"in s?s.stroke:"stroke"in e?e.stroke:h||o||d.autoStroke&&!g?null:(y=2,d.stroke)),_=s.textShadowBlur>0||e.textShadowBlur>0;f.text=t.text,f.x=r,f.y=u,_&&(f.shadowBlur=s.textShadowBlur||e.textShadowBlur||0,f.shadowColor=s.textShadowColor||e.textShadowColor||"transparent",f.shadowOffsetX=s.textShadowOffsetX||e.textShadowOffsetX||0,f.shadowOffsetY=s.textShadowOffsetY||e.textShadowOffsetY||0),f.textAlign=a,f.textBaseline="middle",f.font=t.font||Sn,f.opacity=J(s.opacity,e.opacity,1),m&&(f.lineWidth=J(s.lineWidth,e.lineWidth,y),f.lineDash=Q(s.lineDash,e.lineDash),f.lineDashOffset=e.lineDashOffset||0,f.stroke=m),v&&(f.fill=v);var x=t.contentWidth,b=t.contentHeight;p.setBoundingRect(new bn(In(f.x,x,f.textAlign),An(f.y,b,f.textBaseline),x,b))},e.prototype._renderBackground=function(t,e,n,i,r,a){var o,s,l,u=t.backgroundColor,h=t.borderWidth,c=t.borderColor,p=V(u),f=t.borderRadius,d=this;if(p||h&&c){(o=this._getOrCreateChild(No)).useStyle(o.createStyle()),o.style.fill=null;var g=o.shape;g.x=n,g.y=i,g.width=r,g.height=a,g.r=f,o.dirtyShape()}if(p)(l=o.style).fill=u||null,l.fillOpacity=Q(t.fillOpacity,1);else if(u&&u.image){(s=this._getOrCreateChild(ko)).onload=function(){d.dirtyStyle()};var y=s.style;y.image=u.image,y.x=n,y.y=i,y.width=r,y.height=a}h&&c&&((l=o.style).lineWidth=h,l.stroke=c,l.strokeOpacity=Q(t.strokeOpacity,1),l.lineDash=t.borderDash,l.lineDashOffset=t.borderDashOffset||0,o.strokeContainThreshold=0,o.hasFill()&&o.hasStroke()&&(l.strokeFirst=!0,l.lineWidth*=2));var v=(o||s).style;v.shadowBlur=t.shadowBlur||0,v.shadowColor=t.shadowColor||"transparent",v.shadowOffsetX=t.shadowOffsetX||0,v.shadowOffsetY=t.shadowOffsetY||0,v.opacity=J(t.opacity,e.opacity,1)},e.makeFont=function(t){var e="";if(t.fontSize||t.fontFamily||t.fontWeight){var n="";n="string"!=typeof t.fontSize||-1===t.fontSize.indexOf("px")&&-1===t.fontSize.indexOf("rem")&&-1===t.fontSize.indexOf("em")?isNaN(+t.fontSize)?"12px":t.fontSize+"px":t.fontSize,e=[t.fontStyle,t.fontWeight,n,t.fontFamily||"sans-serif"].join(" ")}return e&&it(e)||t.textFont||t.font},e}($r),Fo={left:!0,right:1,center:1},Vo={top:1,bottom:1,middle:1};function Ho(t){if(t){t.font=zo.makeFont(t);var e=t.align;"middle"===e&&(e="center"),t.align=null==e||Fo[e]?e:"left";var n=t.verticalAlign;"center"===n&&(n="middle"),t.verticalAlign=null==n||Vo[n]?n:"top",t.padding&&(t.padding=et(t.padding))}}function Wo(t,e){return null==t||e<=0||"transparent"===t||"none"===t?null:t.image||t.colorStops?"#000":t}function Go(t,e,n){return"right"===e?t-n[1]:"center"===e?t+n[3]/2-n[1]/2:t+n[3]}function Uo(t){var e=t.text;return null!=e&&(e+=""),e}function Yo(t){return!!(t.backgroundColor||t.borderWidth&&t.borderColor)}var Xo=hr(),qo=1,jo={},Zo=hr(),Ko=["emphasis","blur","select"],$o=["normal","emphasis","blur","select"],Qo="highlight",Jo="downplay",ts="select",es="unselect",ns="toggleSelect";function is(t){return null!=t&&"none"!==t}var rs=new Ce(100);function as(t){if("string"!=typeof t)return t;var e=rs.get(t);return e||(e=He(t,-.1),rs.put(t,e)),e}function os(t,e,n){t.onHoverStateChange&&(t.hoverState||0)!==n&&t.onHoverStateChange(e),t.hoverState=n}function ss(t){os(t,"emphasis",2)}function ls(t){2===t.hoverState&&os(t,"normal",0)}function us(t){os(t,"blur",1)}function hs(t){1===t.hoverState&&os(t,"normal",0)}function cs(t){t.selected=!0}function ps(t){t.selected=!1}function fs(t,e,n){e(t,n)}function ds(t,e,n){fs(t,e,n),t.isGroup&&t.traverse((function(t){fs(t,e,n)}))}function gs(t,e){switch(e){case"emphasis":t.hoverState=2;break;case"normal":t.hoverState=0;break;case"blur":t.hoverState=1;break;case"select":t.selected=!0}}function ys(t,e){var n=this.states[t];if(this.style){if("emphasis"===t)return function(t,e,n,i){var r=n&&D(n,"select")>=0,a=!1;if(t instanceof To){var o=Zo(t),s=r&&o.selectFill||o.normalFill,l=r&&o.selectStroke||o.normalStroke;if(is(s)||is(l)){var u=(i=i||{}).style||{};!is(u.fill)&&is(s)?(a=!0,i=M({},i),(u=M({},u)).fill=as(s)):!is(u.stroke)&&is(l)&&(a||(i=M({},i),u=M({},u)),u.stroke=as(l)),i.style=u}}if(i&&null==i.z2){a||(i=M({},i));var h=t.z2EmphasisLift;i.z2=t.z2+(null!=h?h:10)}return i}(this,0,e,n);if("blur"===t)return function(t,e,n){var i=D(t.currentStates,e)>=0,r=t.style.opacity,a=i?null:function(t,e,n,i){for(var r=t.style,a={},o=0;o<e.length;o++){var s=e[o],l=r[s];a[s]=null==l?i&&i[s]:l}for(o=0;o<t.animators.length;o++){var u=t.animators[o];u.__fromStateTransition&&u.__fromStateTransition.indexOf(n)<0&&"style"===u.targetName&&u.saveFinalToTarget(a,e)}return a}(t,["opacity"],e,{opacity:1}),o=(n=n||{}).style||{};return null==o.opacity&&(n=M({},n),o=M({opacity:i?r:.1*a.opacity},o),n.style=o),n}(this,t,n);if("select"===t)return function(t,e,n){if(n&&null==n.z2){n=M({},n);var i=t.z2SelectLift;n.z2=t.z2+(null!=i?i:9)}return n}(this,0,n)}return n}function vs(t){t.stateProxy=ys;var e=t.getTextContent(),n=t.getTextGuideLine();e&&(e.stateProxy=ys),n&&(n.stateProxy=ys)}function ms(t,e){t.__highByOuter|=1<<(e||0),ds(t,ss)}function _s(t,e){!(t.__highByOuter&=~(1<<(e||0)))&&ds(t,ls)}function xs(t){ds(t,hs)}function bs(t){ds(t,cs)}function ws(t){ds(t,ps)}function Ss(t,e){return t.__highDownSilentOnTouch&&e.zrByTouch}function Ms(t,e,n,i,r){var a=i.getModel();function o(t,e){for(var n=0;n<e.length;n++){var i=t.getItemGraphicEl(e[n]);i&&xs(i)}}if(n=n||"coordinateSystem",r){if(null!=t&&e&&"none"!==e){var s=a.getSeriesByIndex(t),l=s.coordinateSystem;l&&l.master&&(l=l.master);var u=[];a.eachSeries((function(t){var r=s===t,a=t.coordinateSystem;if(a&&a.master&&(a=a.master),!("series"===n&&!r||"coordinateSystem"===n&&!(a&&l?a===l:r)||"series"===e&&r)){if(i.getViewOfSeriesModel(t).group.traverse((function(t){us(t)})),k(e))o(t.getData(),e);else if(G(e))for(var h=N(e),c=0;c<h.length;c++)o(t.getData(h[c]),e[h[c]]);u.push(t)}})),a.eachComponent((function(t,e){if("series"!==t){var n=i.getViewOfComponentModel(e);n&&n.blurSeries&&n.blurSeries(u,a)}}))}}else!function(t){t.getModel().eachComponent((function(e,n){("series"===e?t.getViewOfSeriesModel(n):t.getViewOfComponentModel(n)).group.traverse((function(t){hs(t)}))}))}(i)}function Ts(t){L(t.getAllData(),(function(e){var n=e.data,i=e.type;n.eachItemGraphicEl((function(e,n){t.isSelected(n,i)?bs(e):ws(e)}))}))}function Cs(t){var e=[];return t.eachSeries((function(t){L(t.getAllData(),(function(n){n.data;var i=n.type,r=t.getSelectedDataIndices();if(r.length>0){var a={dataIndex:r,seriesIndex:t.seriesIndex};null!=i&&(a.dataType=i),e.push(a)}}))})),e}function Ds(t,e,n){!function(t,e){var n=!1===e,i=t;t.highDownSilentOnTouch&&(i.__highDownSilentOnTouch=t.highDownSilentOnTouch);n&&!i.__highDownDispatcher||(i.__highByOuter=i.__highByOuter||0,i.__highDownDispatcher=!n)}(t,!0),ds(t,vs),function(t,e,n){var i=Xo(t);null!=e?(i.focus=e,i.blurScope=n):i.focus&&(i.focus=null)}(t,e,n)}var Is=["emphasis","blur","select"],As={itemStyle:"getItemStyle",lineStyle:"getLineStyle",areaStyle:"getAreaStyle"};function ks(t,e,n,i){n=n||"itemStyle";for(var r=0;r<Is.length;r++){var a=Is[r],o=e.getModel([a,n]);t.ensureState(a).style=i?i(o):o[As[n]]()}}function Ls(t){return!(!t||!t.__highDownDispatcher)}function Ps(t){var e=t.type;return e===ts||e===es||e===ns}function Os(t){var e=t.type;return e===Qo||e===Jo}var Rs=ro.CMD,Ns=[[],[],[]],Es=Math.sqrt,Bs=Math.atan2;var zs=Math.sqrt,Fs=Math.sin,Vs=Math.cos,Hs=Math.PI;function Ws(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])}function Gs(t,e){return(t[0]*e[0]+t[1]*e[1])/(Ws(t)*Ws(e))}function Us(t,e){return(t[0]*e[1]<t[1]*e[0]?-1:1)*Math.acos(Gs(t,e))}function Ys(t,e,n,i,r,a,o,s,l,u,h){var c=l*(Hs/180),p=Vs(c)*(t-n)/2+Fs(c)*(e-i)/2,f=-1*Fs(c)*(t-n)/2+Vs(c)*(e-i)/2,d=p*p/(o*o)+f*f/(s*s);d>1&&(o*=zs(d),s*=zs(d));var g=(r===a?-1:1)*zs((o*o*(s*s)-o*o*(f*f)-s*s*(p*p))/(o*o*(f*f)+s*s*(p*p)))||0,y=g*o*f/s,v=g*-s*p/o,m=(t+n)/2+Vs(c)*y-Fs(c)*v,_=(e+i)/2+Fs(c)*y+Vs(c)*v,x=Us([1,0],[(p-y)/o,(f-v)/s]),b=[(p-y)/o,(f-v)/s],w=[(-1*p-y)/o,(-1*f-v)/s],S=Us(b,w);if(Gs(b,w)<=-1&&(S=Hs),Gs(b,w)>=1&&(S=0),S<0){var M=Math.round(S/Hs*1e6)/1e6;S=2*Hs+M%2*Hs}h.addData(u,m,_,o,s,x,S,c,a)}var Xs=/([mlvhzcqtsa])([^mlvhzcqtsa]*)/gi,qs=/-?([0-9]*\.)?[0-9]+([eE]-?[0-9]+)?/g;var js=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.applyTransform=function(t){},e}(To);function Zs(t){return null!=t.setData}function Ks(t,e){var n=function(t){var e=new ro;if(!t)return e;var n,i=0,r=0,a=i,o=r,s=ro.CMD,l=t.match(Xs);if(!l)return e;for(var u=0;u<l.length;u++){for(var h=l[u],c=h.charAt(0),p=void 0,f=h.match(qs)||[],d=f.length,g=0;g<d;g++)f[g]=parseFloat(f[g]);for(var y=0;y<d;){var v=void 0,m=void 0,_=void 0,x=void 0,b=void 0,w=void 0,S=void 0,M=i,T=r,C=void 0,D=void 0;switch(c){case"l":i+=f[y++],r+=f[y++],p=s.L,e.addData(p,i,r);break;case"L":i=f[y++],r=f[y++],p=s.L,e.addData(p,i,r);break;case"m":i+=f[y++],r+=f[y++],p=s.M,e.addData(p,i,r),a=i,o=r,c="l";break;case"M":i=f[y++],r=f[y++],p=s.M,e.addData(p,i,r),a=i,o=r,c="L";break;case"h":i+=f[y++],p=s.L,e.addData(p,i,r);break;case"H":i=f[y++],p=s.L,e.addData(p,i,r);break;case"v":r+=f[y++],p=s.L,e.addData(p,i,r);break;case"V":r=f[y++],p=s.L,e.addData(p,i,r);break;case"C":p=s.C,e.addData(p,f[y++],f[y++],f[y++],f[y++],f[y++],f[y++]),i=f[y-2],r=f[y-1];break;case"c":p=s.C,e.addData(p,f[y++]+i,f[y++]+r,f[y++]+i,f[y++]+r,f[y++]+i,f[y++]+r),i+=f[y-2],r+=f[y-1];break;case"S":v=i,m=r,C=e.len(),D=e.data,n===s.C&&(v+=i-D[C-4],m+=r-D[C-3]),p=s.C,M=f[y++],T=f[y++],i=f[y++],r=f[y++],e.addData(p,v,m,M,T,i,r);break;case"s":v=i,m=r,C=e.len(),D=e.data,n===s.C&&(v+=i-D[C-4],m+=r-D[C-3]),p=s.C,M=i+f[y++],T=r+f[y++],i+=f[y++],r+=f[y++],e.addData(p,v,m,M,T,i,r);break;case"Q":M=f[y++],T=f[y++],i=f[y++],r=f[y++],p=s.Q,e.addData(p,M,T,i,r);break;case"q":M=f[y++]+i,T=f[y++]+r,i+=f[y++],r+=f[y++],p=s.Q,e.addData(p,M,T,i,r);break;case"T":v=i,m=r,C=e.len(),D=e.data,n===s.Q&&(v+=i-D[C-4],m+=r-D[C-3]),i=f[y++],r=f[y++],p=s.Q,e.addData(p,v,m,i,r);break;case"t":v=i,m=r,C=e.len(),D=e.data,n===s.Q&&(v+=i-D[C-4],m+=r-D[C-3]),i+=f[y++],r+=f[y++],p=s.Q,e.addData(p,v,m,i,r);break;case"A":_=f[y++],x=f[y++],b=f[y++],w=f[y++],S=f[y++],Ys(M=i,T=r,i=f[y++],r=f[y++],w,S,_,x,b,p=s.A,e);break;case"a":_=f[y++],x=f[y++],b=f[y++],w=f[y++],S=f[y++],Ys(M=i,T=r,i+=f[y++],r+=f[y++],w,S,_,x,b,p=s.A,e)}}"z"!==c&&"Z"!==c||(p=s.Z,e.addData(p),i=a,r=o),n=p}return e.toStatic(),e}(t),i=M({},e);return i.buildPath=function(t){if(Zs(t)){t.setData(n.data),(e=t.getContext())&&t.rebuildPath(e,1)}else{var e=t;n.rebuildPath(e,1)}},i.applyTransform=function(t){!function(t,e){var n,i,r,a,o,s,l=t.data,u=t.len(),h=Rs.M,c=Rs.C,p=Rs.L,f=Rs.R,d=Rs.A,g=Rs.Q;for(r=0,a=0;r<u;){switch(n=l[r++],a=r,i=0,n){case h:case p:i=1;break;case c:i=3;break;case g:i=2;break;case d:var y=e[4],v=e[5],m=Es(e[0]*e[0]+e[1]*e[1]),_=Es(e[2]*e[2]+e[3]*e[3]),x=Bs(-e[1]/_,e[0]/m);l[r]*=m,l[r++]+=y,l[r]*=_,l[r++]+=v,l[r++]*=m,l[r++]*=_,l[r++]+=x,l[r++]+=x,a=r+=2;break;case f:s[0]=l[r++],s[1]=l[r++],It(s,s,e),l[a++]=s[0],l[a++]=s[1],s[0]+=l[r++],s[1]+=l[r++],It(s,s,e),l[a++]=s[0],l[a++]=s[1]}for(o=0;o<i;o++){var b=Ns[o];b[0]=l[r++],b[1]=l[r++],It(b,b,e),l[a++]=b[0],l[a++]=b[1]}}t.increaseVersion()}(n,t),this.dirtyShape()},i}var $s=function(){this.cx=0,this.cy=0,this.r=0},Qs=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultShape=function(){return new $s},e.prototype.buildPath=function(t,e,n){n&&t.moveTo(e.cx+e.r,e.cy),t.arc(e.cx,e.cy,e.r,0,2*Math.PI)},e}(To);Qs.prototype.type="circle";var Js=function(){this.cx=0,this.cy=0,this.rx=0,this.ry=0},tl=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultShape=function(){return new Js},e.prototype.buildPath=function(t,e){var n=.5522848,i=e.cx,r=e.cy,a=e.rx,o=e.ry,s=a*n,l=o*n;t.moveTo(i-a,r),t.bezierCurveTo(i-a,r-l,i-s,r-o,i,r-o),t.bezierCurveTo(i+s,r-o,i+a,r-l,i+a,r),t.bezierCurveTo(i+a,r+l,i+s,r+o,i,r+o),t.bezierCurveTo(i-s,r+o,i-a,r+l,i-a,r),t.closePath()},e}(To);tl.prototype.type="ellipse";var el=Math.PI,nl=2*el,il=Math.sin,rl=Math.cos,al=Math.acos,ol=Math.atan2,sl=Math.abs,ll=Math.sqrt,ul=Math.max,hl=Math.min,cl=1e-4;function pl(t,e,n,i,r,a,o){var s=t-n,l=e-i,u=(o?a:-a)/ll(s*s+l*l),h=u*l,c=-u*s,p=t+h,f=e+c,d=n+h,g=i+c,y=(p+d)/2,v=(f+g)/2,m=d-p,_=g-f,x=m*m+_*_,b=r-a,w=p*g-d*f,S=(_<0?-1:1)*ll(ul(0,b*b*x-w*w)),M=(w*_-m*S)/x,T=(-w*m-_*S)/x,C=(w*_+m*S)/x,D=(-w*m+_*S)/x,I=M-y,A=T-v,k=C-y,L=D-v;return I*I+A*A>k*k+L*L&&(M=C,T=D),{cx:M,cy:T,x01:-h,y01:-c,x11:M*(r/b-1),y11:T*(r/b-1)}}function fl(t,e){var n=ul(e.r,0),i=ul(e.r0||0,0),r=n>0;if(r||i>0){if(r||(n=i,i=0),i>n){var a=n;n=i,i=a}var o=!!e.clockwise,s=e.startAngle,l=e.endAngle,u=[s,l];io(u,!o);var h=sl(u[0]-u[1]),c=e.cx,p=e.cy,f=e.cornerRadius||0,d=e.innerCornerRadius||0;if(n>cl)if(h>nl-cl)t.moveTo(c+n*rl(s),p+n*il(s)),t.arc(c,p,n,s,l,!o),i>cl&&(t.moveTo(c+i*rl(l),p+i*il(l)),t.arc(c,p,i,l,s,o));else{var g=sl(n-i)/2,y=hl(g,f),v=hl(g,d),m=v,_=y,x=n*rl(s),b=n*il(s),w=i*rl(l),S=i*il(l),M=void 0,T=void 0,C=void 0,D=void 0;if((y>cl||v>cl)&&(M=n*rl(l),T=n*il(l),C=i*rl(s),D=i*il(s),h<el)){var I=function(t,e,n,i,r,a,o,s){var l=n-t,u=i-e,h=o-r,c=s-a,p=c*l-h*u;if(!(p*p<cl))return[t+(p=(h*(e-a)-c*(t-r))/p)*l,e+p*u]}(x,b,C,D,M,T,w,S);if(I){var A=x-I[0],k=b-I[1],L=M-I[0],P=T-I[1],O=1/il(al((A*L+k*P)/(ll(A*A+k*k)*ll(L*L+P*P)))/2),R=ll(I[0]*I[0]+I[1]*I[1]);m=hl(v,(i-R)/(O-1)),_=hl(y,(n-R)/(O+1))}}if(h>cl)if(_>cl){var N=pl(C,D,x,b,n,_,o),E=pl(M,T,w,S,n,_,o);t.moveTo(c+N.cx+N.x01,p+N.cy+N.y01),_<y?t.arc(c+N.cx,p+N.cy,_,ol(N.y01,N.x01),ol(E.y01,E.x01),!o):(t.arc(c+N.cx,p+N.cy,_,ol(N.y01,N.x01),ol(N.y11,N.x11),!o),t.arc(c,p,n,ol(N.cy+N.y11,N.cx+N.x11),ol(E.cy+E.y11,E.cx+E.x11),!o),t.arc(c+E.cx,p+E.cy,_,ol(E.y11,E.x11),ol(E.y01,E.x01),!o))}else t.moveTo(c+x,p+b),t.arc(c,p,n,s,l,!o);else t.moveTo(c+x,p+b);if(i>cl&&h>cl)if(m>cl){N=pl(w,S,M,T,i,-m,o),E=pl(x,b,C,D,i,-m,o);t.lineTo(c+N.cx+N.x01,p+N.cy+N.y01),m<v?t.arc(c+N.cx,p+N.cy,m,ol(N.y01,N.x01),ol(E.y01,E.x01),!o):(t.arc(c+N.cx,p+N.cy,m,ol(N.y01,N.x01),ol(N.y11,N.x11),!o),t.arc(c,p,i,ol(N.cy+N.y11,N.cx+N.x11),ol(E.cy+E.y11,E.cx+E.x11),o),t.arc(c+E.cx,p+E.cy,m,ol(E.y11,E.x11),ol(E.y01,E.x01),!o))}else t.lineTo(c+w,p+S),t.arc(c,p,i,l,s,o);else t.lineTo(c+w,p+S)}else t.moveTo(c,p);t.closePath()}}var dl=function(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0,this.cornerRadius=0,this.innerCornerRadius=0},gl=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultShape=function(){return new dl},e.prototype.buildPath=function(t,e){fl(t,e)},e.prototype.isZeroArea=function(){return this.shape.startAngle===this.shape.endAngle||this.shape.r===this.shape.r0},e}(To);gl.prototype.type="sector";var yl=function(){this.cx=0,this.cy=0,this.r=0,this.r0=0},vl=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultShape=function(){return new yl},e.prototype.buildPath=function(t,e){var n=e.cx,i=e.cy,r=2*Math.PI;t.moveTo(n+e.r,i),t.arc(n,i,e.r,0,r,!1),t.moveTo(n+e.r0,i),t.arc(n,i,e.r0,0,r,!0)},e}(To);function ml(t,e,n,i,r,a,o){var s=.5*(n-t),l=.5*(i-e);return(2*(e-n)+s+l)*o+(-3*(e-n)-2*s-l)*a+s*r+e}function _l(t,e,n){var i=e.smooth,r=e.points;if(r&&r.length>=2){if(i&&"spline"!==i){var a=function(t,e,n,i){var r,a,o,s,l=[],u=[],h=[],c=[];if(i){o=[1/0,1/0],s=[-1/0,-1/0];for(var p=0,f=t.length;p<f;p++)At(o,o,t[p]),kt(s,s,t[p]);At(o,o,i[0]),kt(s,s,i[1])}for(p=0,f=t.length;p<f;p++){var d=t[p];if(n)r=t[p?p-1:f-1],a=t[(p+1)%f];else{if(0===p||p===f-1){l.push(dt(t[p]));continue}r=t[p-1],a=t[p+1]}yt(u,a,r),bt(u,u,e);var g=St(d,r),y=St(d,a),v=g+y;0!==v&&(g/=v,y/=v),bt(h,u,-g),bt(c,u,y);var m=gt([],d,h),_=gt([],d,c);i&&(kt(m,m,o),At(m,m,s),kt(_,_,o),At(_,_,s)),l.push(m),l.push(_)}return n&&l.push(l.shift()),l}(r,i,n,e.smoothConstraint);t.moveTo(r[0][0],r[0][1]);for(var o=r.length,s=0;s<(n?o:o-1);s++){var l=a[2*s],u=a[2*s+1],h=r[(s+1)%o];t.bezierCurveTo(l[0],l[1],u[0],u[1],h[0],h[1])}}else{"spline"===i&&(r=function(t,e){for(var n=t.length,i=[],r=0,a=1;a<n;a++)r+=St(t[a-1],t[a]);var o=r/2;for(o=o<n?n:o,a=0;a<o;a++){var s=a/(o-1)*(e?n:n-1),l=Math.floor(s),u=s-l,h=void 0,c=t[l%n],p=void 0,f=void 0;e?(h=t[(l-1+n)%n],p=t[(l+1)%n],f=t[(l+2)%n]):(h=t[0===l?l:l-1],p=t[l>n-2?n-1:l+1],f=t[l>n-3?n-1:l+2]);var d=u*u,g=u*d;i.push([ml(h[0],c[0],p[0],f[0],u,d,g),ml(h[1],c[1],p[1],f[1],u,d,g)])}return i}(r,n)),t.moveTo(r[0][0],r[0][1]);s=1;for(var c=r.length;s<c;s++)t.lineTo(r[s][0],r[s][1])}n&&t.closePath()}}vl.prototype.type="ring";var xl=function(){this.points=null,this.smooth=0,this.smoothConstraint=null},bl=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultShape=function(){return new xl},e.prototype.buildPath=function(t,e){_l(t,e,!0)},e}(To);bl.prototype.type="polygon";var wl=function(){this.points=null,this.percent=1,this.smooth=0,this.smoothConstraint=null},Sl=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new wl},e.prototype.buildPath=function(t,e){_l(t,e,!1)},e}(To);Sl.prototype.type="polyline";var Ml={},Tl=function(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.percent=1},Cl=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new Tl},e.prototype.buildPath=function(t,e){var n,i,r,a;if(this.subPixelOptimize){var o=function(t,e,n){if(e){var i=e.x1,r=e.x2,a=e.y1,o=e.y2;t.x1=i,t.x2=r,t.y1=a,t.y2=o;var s=n&&n.lineWidth;return s?(Lo(2*i)===Lo(2*r)&&(t.x1=t.x2=Po(i,s,!0)),Lo(2*a)===Lo(2*o)&&(t.y1=t.y2=Po(a,s,!0)),t):t}}(Ml,e,this.style);n=o.x1,i=o.y1,r=o.x2,a=o.y2}else n=e.x1,i=e.y1,r=e.x2,a=e.y2;var s=e.percent;0!==s&&(t.moveTo(n,i),s<1&&(r=n*(1-s)+r*s,a=i*(1-s)+a*s),t.lineTo(r,a))},e.prototype.pointAt=function(t){var e=this.shape;return[e.x1*(1-t)+e.x2*t,e.y1*(1-t)+e.y2*t]},e}(To);Cl.prototype.type="line";var Dl=[],Il=function(){this.x1=0,this.y1=0,this.x2=0,this.y2=0,this.cpx1=0,this.cpy1=0,this.percent=1};function Al(t,e,n){var i=t.cpx2,r=t.cpy2;return null===i||null===r?[(n?pa:ca)(t.x1,t.cpx1,t.cpx2,t.x2,e),(n?pa:ca)(t.y1,t.cpy1,t.cpy2,t.y2,e)]:[(n?_a:ma)(t.x1,t.cpx1,t.x2,e),(n?_a:ma)(t.y1,t.cpy1,t.y2,e)]}var kl=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new Il},e.prototype.buildPath=function(t,e){var n=e.x1,i=e.y1,r=e.x2,a=e.y2,o=e.cpx1,s=e.cpy1,l=e.cpx2,u=e.cpy2,h=e.percent;0!==h&&(t.moveTo(n,i),null==l||null==u?(h<1&&(ba(n,o,r,h,Dl),o=Dl[1],r=Dl[2],ba(i,s,a,h,Dl),s=Dl[1],a=Dl[2]),t.quadraticCurveTo(o,s,r,a)):(h<1&&(ga(n,o,l,r,h,Dl),o=Dl[1],l=Dl[2],r=Dl[3],ga(i,s,u,a,h,Dl),s=Dl[1],u=Dl[2],a=Dl[3]),t.bezierCurveTo(o,s,l,u,r,a)))},e.prototype.pointAt=function(t){return Al(this.shape,t,!1)},e.prototype.tangentAt=function(t){var e=Al(this.shape,t,!0);return wt(e,e)},e}(To);kl.prototype.type="bezier-curve";var Ll=function(){this.cx=0,this.cy=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0},Pl=function(t){function e(e){return t.call(this,e)||this}return n(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new Ll},e.prototype.buildPath=function(t,e){var n=e.cx,i=e.cy,r=Math.max(e.r,0),a=e.startAngle,o=e.endAngle,s=e.clockwise,l=Math.cos(a),u=Math.sin(a);t.moveTo(l*r+n,u*r+i),t.arc(n,i,r,a,o,!s)},e}(To);Pl.prototype.type="arc";var Ol=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="compound",e}return n(e,t),e.prototype._updatePathDirty=function(){for(var t=this.shape.paths,e=this.shapeChanged(),n=0;n<t.length;n++)e=e||t[n].shapeChanged();e&&this.dirtyShape()},e.prototype.beforeBrush=function(){this._updatePathDirty();for(var t=this.shape.paths||[],e=this.getGlobalScale(),n=0;n<t.length;n++)t[n].path||t[n].createPathProxy(),t[n].path.setScale(e[0],e[1],t[n].segmentIgnoreThreshold)},e.prototype.buildPath=function(t,e){for(var n=e.paths||[],i=0;i<n.length;i++)n[i].buildPath(t,n[i].shape,!0)},e.prototype.afterBrush=function(){for(var t=this.shape.paths||[],e=0;e<t.length;e++)t[e].pathUpdated()},e.prototype.getBoundingRect=function(){return this._updatePathDirty.call(this),To.prototype.getBoundingRect.call(this)},e}(To),Rl=function(){function t(t){this.colorStops=t||[]}return t.prototype.addColorStop=function(t,e){this.colorStops.push({offset:t,color:e})},t}(),Nl=function(t){function e(e,n,i,r,a,o){var s=t.call(this,a)||this;return s.x=null==e?0:e,s.y=null==n?0:n,s.x2=null==i?1:i,s.y2=null==r?0:r,s.type="linear",s.global=o||!1,s}return n(e,t),e}(Rl),El=function(t){function e(e,n,i,r,a){var o=t.call(this,r)||this;return o.x=null==e?.5:e,o.y=null==n?.5:n,o.r=null==i?.5:i,o.type="radial",o.global=a||!1,o}return n(e,t),e}(Rl),Bl=[0,0],zl=[0,0],Fl=new pn,Vl=new pn,Hl=function(){function t(t,e){this._corners=[],this._axes=[],this._origin=[0,0];for(var n=0;n<4;n++)this._corners[n]=new pn;for(n=0;n<2;n++)this._axes[n]=new pn;t&&this.fromBoundingRect(t,e)}return t.prototype.fromBoundingRect=function(t,e){var n=this._corners,i=this._axes,r=t.x,a=t.y,o=r+t.width,s=a+t.height;if(n[0].set(r,a),n[1].set(o,a),n[2].set(o,s),n[3].set(r,s),e)for(var l=0;l<4;l++)n[l].transform(e);pn.sub(i[0],n[1],n[0]),pn.sub(i[1],n[3],n[0]),i[0].normalize(),i[1].normalize();for(l=0;l<2;l++)this._origin[l]=i[l].dot(n[0])},t.prototype.intersect=function(t,e){var n=!0,i=!e;return Fl.set(1/0,1/0),Vl.set(0,0),!this._intersectCheckOneSide(this,t,Fl,Vl,i,1)&&(n=!1,i)||!this._intersectCheckOneSide(t,this,Fl,Vl,i,-1)&&(n=!1,i)||i||pn.copy(e,n?Fl:Vl),n},t.prototype._intersectCheckOneSide=function(t,e,n,i,r,a){for(var o=!0,s=0;s<2;s++){var l=this._axes[s];if(this._getProjMinMaxOnAxis(s,t._corners,Bl),this._getProjMinMaxOnAxis(s,e._corners,zl),Bl[1]<zl[0]||Bl[0]>zl[1]){if(o=!1,r)return o;var u=Math.abs(zl[0]-Bl[1]),h=Math.abs(Bl[0]-zl[1]);Math.min(u,h)>i.len()&&(u<h?pn.scale(i,l,-u*a):pn.scale(i,l,h*a))}else if(n){u=Math.abs(zl[0]-Bl[1]),h=Math.abs(Bl[0]-zl[1]);Math.min(u,h)<n.len()&&(u<h?pn.scale(n,l,u*a):pn.scale(n,l,-h*a))}}return o},t.prototype._getProjMinMaxOnAxis=function(t,e,n){for(var i=this._axes[t],r=this._origin,a=e[0].dot(i)+r[t],o=a,s=a,l=1;l<e.length;l++){var u=e[l].dot(i)+r[t];o=Math.min(u,o),s=Math.max(u,s)}n[0]=o,n[1]=s},t}(),Wl=[],Gl=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.notClear=!0,e.incremental=!0,e._displayables=[],e._temporaryDisplayables=[],e._cursor=0,e}return n(e,t),e.prototype.traverse=function(t,e){t.call(e,this)},e.prototype.useStyle=function(){this.style={}},e.prototype.getCursor=function(){return this._cursor},e.prototype.innerAfterBrush=function(){this._cursor=this._displayables.length},e.prototype.clearDisplaybles=function(){this._displayables=[],this._temporaryDisplayables=[],this._cursor=0,this.markRedraw(),this.notClear=!1},e.prototype.clearTemporalDisplayables=function(){this._temporaryDisplayables=[]},e.prototype.addDisplayable=function(t,e){e?this._temporaryDisplayables.push(t):this._displayables.push(t),this.markRedraw()},e.prototype.addDisplayables=function(t,e){e=e||!1;for(var n=0;n<t.length;n++)this.addDisplayable(t[n],e)},e.prototype.getDisplayables=function(){return this._displayables},e.prototype.getTemporalDisplayables=function(){return this._temporaryDisplayables},e.prototype.eachPendingDisplayable=function(t){for(var e=this._cursor;e<this._displayables.length;e++)t&&t(this._displayables[e]);for(e=0;e<this._temporaryDisplayables.length;e++)t&&t(this._temporaryDisplayables[e])},e.prototype.update=function(){this.updateTransform();for(var t=this._cursor;t<this._displayables.length;t++){(e=this._displayables[t]).parent=this,e.update(),e.parent=null}for(t=0;t<this._temporaryDisplayables.length;t++){var e;(e=this._temporaryDisplayables[t]).parent=this,e.update(),e.parent=null}},e.prototype.getBoundingRect=function(){if(!this._rect){for(var t=new bn(1/0,1/0,-1/0,-1/0),e=0;e<this._displayables.length;e++){var n=this._displayables[e],i=n.getBoundingRect().clone();n.needLocalTransform()&&i.applyTransform(n.getLocalTransform(Wl)),t.union(i)}this._rect=t}return this._rect},e.prototype.contain=function(t,e){var n=this.transformCoordToLocal(t,e);if(this.getBoundingRect().contain(n[0],n[1]))for(var i=0;i<this._displayables.length;i++){if(this._displayables[i].contain(t,e))return!0}return!1},e}($r),Ul=Math.max,Yl=Math.min,Xl={};var ql=function(t,e){var i=Ks(t,e);return function(t){function e(e){var n=t.call(this,e)||this;return n.applyTransform=i.applyTransform,n.buildPath=i.buildPath,n}return n(e,t),e}(js)};function jl(t,e){Xl[t]=e}function Zl(t,e,n,i){var r=function(t,e){return new js(Ks(t,e))}(t,e);return n&&("center"===i&&(n=$l(n,r.getBoundingRect())),Jl(r,n)),r}function Kl(t,e,n){var i=new ko({style:{image:t,x:e.x,y:e.y,width:e.width,height:e.height},onload:function(t){if("center"===n){var r={width:t.width,height:t.height};i.setStyle($l(e,r))}}});return i}function $l(t,e){var n,i=e.width/e.height,r=t.height*i;return n=r<=t.width?t.height:(r=t.width)/i,{x:t.x+t.width/2-r/2,y:t.y+t.height/2-n/2,width:r,height:n}}var Ql=function(t,e){for(var n=[],i=t.length,r=0;r<i;r++){var a=t[r];a.path||a.createPathProxy(),a.shapeChanged()&&a.buildPath(a.path,a.shape,!0),n.push(a.path)}var o=new To(e);return o.createPathProxy(),o.buildPath=function(t){if(Zs(t)){t.appendPath(n);var e=t.getContext();e&&t.rebuildPath(e,1)}},o};function Jl(t,e){if(t.applyTransform){var n=t.getBoundingRect().calculateTransform(e);t.applyTransform(n)}}function tu(t,e,n,i,r,a,o){var s,l=!1;"function"==typeof r?(o=a,a=r,r=null):G(r)&&(a=r.cb,o=r.during,l=r.isFrom,s=r.removeOpt,r=r.dataIndex);var u,h="update"===t,c="remove"===t;if(i&&i.ecModel){var p=i.ecModel.getUpdatePayload();u=p&&p.animation}var f=i&&i.isAnimationEnabled();if(c||e.stopAnimation("remove"),f){var d=void 0,g=void 0,y=void 0;u?(d=u.duration||0,g=u.easing||"cubicOut",y=u.delay||0):c?(d=Q((s=s||{}).duration,200),g=Q(s.easing,"cubicOut"),y=0):(d=i.getShallow(h?"animationDurationUpdate":"animationDuration"),g=i.getShallow(h?"animationEasingUpdate":"animationEasing"),y=i.getShallow(h?"animationDelayUpdate":"animationDelay")),"function"==typeof y&&(y=y(r,i.getAnimationDelayParams?i.getAnimationDelayParams(e,r):null)),"function"==typeof d&&(d=d(r)),d>0?l?e.animateFrom(n,{duration:d,delay:y||0,easing:g,done:a,force:!!a||!!o,scope:t,during:o}):e.animateTo(n,{duration:d,delay:y||0,easing:g,done:a,force:!!a||!!o,setToFinal:!0,scope:t,during:o}):(e.stopAnimation(),!l&&e.attr(n),a&&a())}else e.stopAnimation(),!l&&e.attr(n),o&&o(1),a&&a()}function eu(t,e,n,i,r,a){tu("update",t,e,n,i,r,a)}function nu(t,e,n,i,r,a){tu("init",t,e,n,i,r,a)}function iu(t,e,n,i,r,a){ou(t)||tu("remove",t,e,n,i,r,a)}function ru(t,e,n,i){t.removeTextContent(),t.removeTextGuideLine(),iu(t,{style:{opacity:0}},e,n,i)}function au(t,e,n){function i(){t.parent&&t.parent.remove(t)}t.isGroup?t.traverse((function(t){t.isGroup||ru(t,e,n,i)})):ru(t,e,n,i)}function ou(t){if(!t.__zr)return!0;for(var e=0;e<t.animators.length;e++){if("remove"===t.animators[e].scope)return!0}return!1}function su(t){return!t.isGroup}jl("circle",Qs),jl("ellipse",tl),jl("sector",gl),jl("ring",vl),jl("polygon",bl),jl("polyline",Sl),jl("rect",No),jl("line",Cl),jl("bezierCurve",kl),jl("arc",Pl);var lu={};function uu(t,e){for(var n=0;n<Ko.length;n++){var i=Ko[n],r=e[i],a=t.ensureState(i);a.style=a.style||{},a.style.text=r}var o=t.currentStates.slice();t.clearStates(!0),t.setStyle({text:e.normal}),t.useStates(o,!0)}function hu(t,e,n){var i,r=t.labelFetcher,a=t.labelDataIndex,o=t.labelDimIndex,s=e.normal;r&&(i=r.getFormattedLabel(a,"normal",null,o,s&&s.get("formatter"),null!=n?{interpolatedValue:n}:null)),null==i&&(i=F(t.defaultText)?t.defaultText(a,t,n):t.defaultText);for(var l={normal:i},u=0;u<Ko.length;u++){var h=Ko[u],c=e[h];l[h]=Q(r?r.getFormattedLabel(a,h,null,o,c&&c.get("formatter")):null,i)}return l}function cu(t,e,n,i){n=n||lu;for(var r=t instanceof zo,a=!1,o=0;o<$o.length;o++){if((p=e[$o[o]])&&p.getShallow("show")){a=!0;break}}var s=r?t:t.getTextContent();if(a){r||(s||(s=new zo,t.setTextContent(s)),t.stateProxy&&(s.stateProxy=t.stateProxy));var l=hu(n,e),u=e.normal,h=!!u.getShallow("show"),c=fu(u,i&&i.normal,n,!1,!r);c.text=l.normal,r||t.setTextConfig(du(u,n,!1));for(o=0;o<Ko.length;o++){var p,f=Ko[o];if(p=e[f]){var d=s.ensureState(f),g=!!Q(p.getShallow("show"),h);if(g!==h&&(d.ignore=!g),d.style=fu(p,i&&i[f],n,!0,!r),d.style.text=l[f],!r)t.ensureState(f).textConfig=du(p,n,!0)}}s.silent=!!u.getShallow("silent"),null!=s.style.x&&(c.x=s.style.x),null!=s.style.y&&(c.y=s.style.y),s.ignore=!h,s.useStyle(c),s.dirty(),n.enableTextSetter&&(_u(s).setLabelText=function(t){var i=hu(n,e,t);uu(s,i)})}else s&&(s.ignore=!0);t.dirty()}function pu(t,e){e=e||"label";for(var n={normal:t.getModel(e)},i=0;i<Ko.length;i++){var r=Ko[i];n[r]=t.getModel([r,e])}return n}function fu(t,e,n,i,r){var a={};return function(t,e,n,i,r){n=n||lu;var a,o=e.ecModel,s=o&&o.option.textStyle,l=function(t){var e;for(;t&&t!==t.ecModel;){var n=(t.option||lu).rich;if(n){e=e||{};for(var i=N(n),r=0;r<i.length;r++){e[i[r]]=1}}t=t.parentModel}return e}(e);if(l)for(var u in a={},l)if(l.hasOwnProperty(u)){var h=e.getModel(["rich",u]);mu(a[u]={},h,s,n,i,r,!1,!0)}a&&(t.rich=a);var c=e.get("overflow");c&&(t.overflow=c);var p=e.get("minMargin");null!=p&&(t.margin=p);mu(t,e,s,n,i,r,!0,!1)}(a,t,n,i,r),e&&M(a,e),a}function du(t,e,n){e=e||{};var i,r={},a=t.getShallow("rotate"),o=Q(t.getShallow("distance"),n?null:5),s=t.getShallow("offset");return"outside"===(i=t.getShallow("position")||(n?null:"inside"))&&(i=e.defaultOutsidePosition||"top"),null!=i&&(r.position=i),null!=s&&(r.offset=s),null!=a&&(a*=Math.PI/180,r.rotation=a),null!=o&&(r.distance=o),r.outsideFill="inherit"===t.get("color")?e.inheritColor||null:"auto",r}var gu=["fontStyle","fontWeight","fontSize","fontFamily","textShadowColor","textShadowBlur","textShadowOffsetX","textShadowOffsetY"],yu=["align","lineHeight","width","height","tag","verticalAlign"],vu=["padding","borderWidth","borderRadius","borderDashOffset","backgroundColor","borderColor","shadowColor","shadowBlur","shadowOffsetX","shadowOffsetY"];function mu(t,e,n,i,r,a,o,s){n=!r&&n||lu;var l=i&&i.inheritColor,u=e.getShallow("color"),h=e.getShallow("textBorderColor"),c=Q(e.getShallow("opacity"),n.opacity);"inherit"!==u&&"auto"!==u||(u=l||null),"inherit"!==h&&"auto"!==h||(h=l||null),a||(u=u||n.color,h=h||n.textBorderColor),null!=u&&(t.fill=u),null!=h&&(t.stroke=h);var p=Q(e.getShallow("textBorderWidth"),n.textBorderWidth);null!=p&&(t.lineWidth=p);var f=Q(e.getShallow("textBorderType"),n.textBorderType);null!=f&&(t.lineDash=f);var d=Q(e.getShallow("textBorderDashOffset"),n.textBorderDashOffset);null!=d&&(t.lineDashOffset=d),r||null!=c||s||(c=i&&i.defaultOpacity),null!=c&&(t.opacity=c),r||a||null==t.fill&&i.inheritColor&&(t.fill=i.inheritColor);for(var g=0;g<gu.length;g++){var y=gu[g];null!=(m=Q(e.getShallow(y),n[y]))&&(t[y]=m)}for(g=0;g<yu.length;g++){y=yu[g];null!=(m=e.getShallow(y))&&(t[y]=m)}if(null==t.verticalAlign){var v=e.getShallow("baseline");null!=v&&(t.verticalAlign=v)}if(!o||!i.disableBox){for(g=0;g<vu.length;g++){var m;y=vu[g];null!=(m=e.getShallow(y))&&(t[y]=m)}var _=e.getShallow("borderType");null!=_&&(t.borderDash=_),"auto"!==t.backgroundColor&&"inherit"!==t.backgroundColor||!l||(t.backgroundColor=l),"auto"!==t.borderColor&&"inherit"!==t.borderColor||!l||(t.borderColor=l)}}var _u=hr();var xu,bu,wu=["textStyle","color"],Su=new zo,Mu=function(){function t(){}return t.prototype.getTextColor=function(t){var e=this.ecModel;return this.getShallow("color")||(!t&&e?e.get(wu):null)},t.prototype.getFont=function(){return t={fontStyle:this.getShallow("fontStyle"),fontWeight:this.getShallow("fontWeight"),fontSize:this.getShallow("fontSize"),fontFamily:this.getShallow("fontFamily")},e=this.ecModel,n=e&&e.getModel("textStyle"),it([t.fontStyle||n&&n.getShallow("fontStyle")||"",t.fontWeight||n&&n.getShallow("fontWeight")||"",(t.fontSize||n&&n.getShallow("fontSize")||12)+"px",t.fontFamily||n&&n.getShallow("fontFamily")||"sans-serif"].join(" "));var t,e,n},t.prototype.getTextRect=function(t){return Su.useStyle({text:t,fontStyle:this.getShallow("fontStyle"),fontWeight:this.getShallow("fontWeight"),fontSize:this.getShallow("fontSize"),fontFamily:this.getShallow("fontFamily"),verticalAlign:this.getShallow("verticalAlign")||this.getShallow("baseline"),padding:this.getShallow("padding"),lineHeight:this.getShallow("lineHeight"),rich:this.getShallow("rich")}),Su.update(),Su.getBoundingRect()},t}(),Tu=[["lineWidth","width"],["stroke","color"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"],["lineDash","type"],["lineDashOffset","dashOffset"],["lineCap","cap"],["lineJoin","join"],["miterLimit"]],Cu=Dr(Tu),Du=function(){function t(){}return t.prototype.getLineStyle=function(t){return Cu(this,t)},t}(),Iu=[["fill","color"],["stroke","borderColor"],["lineWidth","borderWidth"],["opacity"],["shadowBlur"],["shadowOffsetX"],["shadowOffsetY"],["shadowColor"],["lineDash","borderType"],["lineDashOffset","borderDashOffset"],["lineCap","borderCap"],["lineJoin","borderJoin"],["miterLimit","borderMiterLimit"]],Au=Dr(Iu),ku=function(){function t(){}return t.prototype.getItemStyle=function(t,e){return Au(this,t,e)},t}(),Lu=function(){function t(t,e,n){this.parentModel=e,this.ecModel=n,this.option=t}return t.prototype.init=function(t,e,n){for(var i=[],r=3;r<arguments.length;r++)i[r-3]=arguments[r]},t.prototype.mergeOption=function(t,e){S(this.option,t,!0)},t.prototype.get=function(t,e){return null==t?this.option:this._doGet(this.parsePath(t),!e&&this.parentModel)},t.prototype.getShallow=function(t,e){var n=this.option,i=null==n?n:n[t];if(null==i&&!e){var r=this.parentModel;r&&(i=r.getShallow(t))}return i},t.prototype.getModel=function(e,n){var i=null!=e,r=i?this.parsePath(e):null;return new t(i?this._doGet(r):this.option,n=n||this.parentModel&&this.parentModel.getModel(this.resolveParentPath(r)),this.ecModel)},t.prototype.isEmpty=function(){return null==this.option},t.prototype.restoreData=function(){},t.prototype.clone=function(){return new(0,this.constructor)(w(this.option))},t.prototype.parsePath=function(t){return"string"==typeof t?t.split("."):t},t.prototype.resolveParentPath=function(t){return t},t.prototype.isAnimationEnabled=function(){if(!o.node&&this.option){if(null!=this.option.animation)return!!this.option.animation;if(this.parentModel)return this.parentModel.isAnimationEnabled()}},t.prototype._doGet=function(t,e){var n=this.option;if(!t)return n;for(var i=0;i<t.length&&(!t[i]||null!=(n=n&&"object"==typeof n?n[t[i]]:null));i++);return null==n&&e&&(n=e._doGet(this.resolveParentPath(t),e.parentModel)),n},t}();xr(Lu),xu=Lu,bu=["__\0is_clz",Sr++].join("_"),xu.prototype[bu]=!0,xu.isInstance=function(t){return!(!t||!t[bu])},A(Lu,Du),A(Lu,ku),A(Lu,Ar),A(Lu,Mu);var Pu=Math.round(10*Math.random());function Ou(t){return[t||"",Pu++].join("_")}var Ru="ZH",Nu="EN",Eu=Nu,Bu={},zu={},Fu=o.domSupported&&(document.documentElement.lang||navigator.language||navigator.browserLanguage).toUpperCase().indexOf(Ru)>-1?Ru:Eu;function Vu(t,e){t=t.toUpperCase(),zu[t]=new Lu(e),Bu[t]=e}Vu(Nu,{time:{month:["January","February","March","April","May","June","July","August","September","October","November","December"],monthAbbr:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayOfWeek:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayOfWeekAbbr:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]},legend:{selector:{all:"All",inverse:"Inv"}},toolbox:{brush:{title:{rect:"Box Select",polygon:"Lasso Select",lineX:"Horizontally Select",lineY:"Vertically Select",keep:"Keep Selections",clear:"Clear Selections"}},dataView:{title:"Data View",lang:["Data View","Close","Refresh"]},dataZoom:{title:{zoom:"Zoom",back:"Zoom Reset"}},magicType:{title:{line:"Switch to Line Chart",bar:"Switch to Bar Chart",stack:"Stack",tiled:"Tile"}},restore:{title:"Restore"},saveAsImage:{title:"Save as Image",lang:["Right Click to Save Image"]}},series:{typeNames:{pie:"Pie chart",bar:"Bar chart",line:"Line chart",scatter:"Scatter plot",effectScatter:"Ripple scatter plot",radar:"Radar chart",tree:"Tree",treemap:"Treemap",boxplot:"Boxplot",candlestick:"Candlestick",k:"K line chart",heatmap:"Heat map",map:"Map",parallel:"Parallel coordinate map",lines:"Line graph",graph:"Relationship graph",sankey:"Sankey diagram",funnel:"Funnel chart",gauge:"Guage",pictorialBar:"Pictorial bar",themeRiver:"Theme River Map",sunburst:"Sunburst"}},aria:{general:{withTitle:'This is a chart about "{title}"',withoutTitle:"This is a chart"},series:{single:{prefix:"",withName:" with type {seriesType} named {seriesName}.",withoutName:" with type {seriesType}."},multiple:{prefix:". It consists of {seriesCount} series count.",withName:" The {seriesId} series is a {seriesType} representing {seriesName}.",withoutName:" The {seriesId} series is a {seriesType}.",separator:{middle:"",end:""}}},data:{allData:"The data is as follows: ",partialData:"The first {displayCnt} items are: ",withName:"the data for {name} is {value}",withoutName:"{value}",separator:{middle:", ",end:". "}}}}),Vu(Ru,{time:{month:["一月","二月","三月","四月","五月","六月","七月","八月","九月","十月","十一月","十二月"],monthAbbr:["1月","2月","3月","4月","5月","6月","7月","8月","9月","10月","11月","12月"],dayOfWeek:["星期日","星期一","星期二","星期三","星期四","星期五","星期六"],dayOfWeekAbbr:["日","一","二","三","四","五","六"]},legend:{selector:{all:"全选",inverse:"反选"}},toolbox:{brush:{title:{rect:"矩形选择",polygon:"圈选",lineX:"横向选择",lineY:"纵向选择",keep:"保持选择",clear:"清除选择"}},dataView:{title:"数据视图",lang:["数据视图","关闭","刷新"]},dataZoom:{title:{zoom:"区域缩放",back:"区域缩放还原"}},magicType:{title:{line:"切换为折线图",bar:"切换为柱状图",stack:"切换为堆叠",tiled:"切换为平铺"}},restore:{title:"还原"},saveAsImage:{title:"保存为图片",lang:["右键另存为图片"]}},series:{typeNames:{pie:"饼图",bar:"柱状图",line:"折线图",scatter:"散点图",effectScatter:"涟漪散点图",radar:"雷达图",tree:"树图",treemap:"矩形树图",boxplot:"箱型图",candlestick:"K线图",k:"K线图",heatmap:"热力图",map:"地图",parallel:"平行坐标图",lines:"线图",graph:"关系图",sankey:"桑基图",funnel:"漏斗图",gauge:"仪表盘图",pictorialBar:"象形柱图",themeRiver:"主题河流图",sunburst:"旭日图"}},aria:{general:{withTitle:"这是一个关于“{title}”的图表。",withoutTitle:"这是一个图表,"},series:{single:{prefix:"",withName:"图表类型是{seriesType},表示{seriesName}。",withoutName:"图表类型是{seriesType}。"},multiple:{prefix:"它由{seriesCount}个图表系列组成。",withName:"第{seriesId}个系列是一个表示{seriesName}的{seriesType},",withoutName:"第{seriesId}个系列是一个{seriesType},",separator:{middle:";",end:"。"}}},data:{allData:"其数据是——",partialData:"其中,前{displayCnt}项是——",withName:"{name}的数据是{value}",withoutName:"{value}",separator:{middle:",",end:""}}}});var Hu=1e3,Wu=6e4,Gu=36e5,Uu=864e5,Yu=31536e6,Xu={year:"{yyyy}",month:"{MMM}",day:"{d}",hour:"{HH}:{mm}",minute:"{HH}:{mm}",second:"{HH}:{mm}:{ss}",millisecond:"{hh}:{mm}:{ss} {SSS}",none:"{yyyy}-{MM}-{dd} {hh}:{mm}:{ss} {SSS}"},qu="{yyyy}-{MM}-{dd}",ju={year:"{yyyy}",month:"{yyyy}-{MM}",day:qu,hour:"{yyyy}-{MM}-{dd} "+Xu.hour,minute:"{yyyy}-{MM}-{dd} "+Xu.minute,second:"{yyyy}-{MM}-{dd} "+Xu.second,millisecond:Xu.none},Zu=["year","month","day","hour","minute","second","millisecond"],Ku=["year","half-year","quarter","month","week","half-week","day","half-day","quarter-day","hour","minute","second","millisecond"];function $u(t,e){return"0000".substr(0,e-(t+="").length)+t}function Qu(t){switch(t){case"half-year":case"quarter":return"month";case"week":case"half-week":return"day";case"half-day":case"quarter-day":return"hour";default:return t}}function Ju(t){return t===Qu(t)}function th(t,e,n,i){var r=Wi(t),a=r[ih(n)](),o=r[rh(n)]()+1,s=Math.floor((o-1)/4)+1,l=r[ah(n)](),u=r["get"+(n?"UTC":"")+"Day"](),h=r[oh(n)](),c=(h-1)%12+1,p=r[sh(n)](),f=r[lh(n)](),d=r[uh(n)](),g=(i instanceof Lu?i:function(t){return zu[t]}(i||Fu)||zu.EN).getModel("time"),y=g.get("month"),v=g.get("monthAbbr"),m=g.get("dayOfWeek"),_=g.get("dayOfWeekAbbr");return(e||"").replace(/{yyyy}/g,a+"").replace(/{yy}/g,a%100+"").replace(/{Q}/g,s+"").replace(/{MMMM}/g,y[o-1]).replace(/{MMM}/g,v[o-1]).replace(/{MM}/g,$u(o,2)).replace(/{M}/g,o+"").replace(/{dd}/g,$u(l,2)).replace(/{d}/g,l+"").replace(/{eeee}/g,m[u]).replace(/{ee}/g,_[u]).replace(/{e}/g,u+"").replace(/{HH}/g,$u(h,2)).replace(/{H}/g,h+"").replace(/{hh}/g,$u(c+"",2)).replace(/{h}/g,c+"").replace(/{mm}/g,$u(p,2)).replace(/{m}/g,p+"").replace(/{ss}/g,$u(f,2)).replace(/{s}/g,f+"").replace(/{SSS}/g,$u(d,3)).replace(/{S}/g,d+"")}function eh(t,e){var n=Wi(t),i=n[rh(e)]()+1,r=n[ah(e)](),a=n[oh(e)](),o=n[sh(e)](),s=n[lh(e)](),l=0===n[uh(e)](),u=l&&0===s,h=u&&0===o,c=h&&0===a,p=c&&1===r;return p&&1===i?"year":p?"month":c?"day":h?"hour":u?"minute":l?"second":"millisecond"}function nh(t,e,n){var i="number"==typeof t?Wi(t):t;switch(e=e||eh(t,n)){case"year":return i[ih(n)]();case"half-year":return i[rh(n)]()>=6?1:0;case"quarter":return Math.floor((i[rh(n)]()+1)/4);case"month":return i[rh(n)]();case"day":return i[ah(n)]();case"half-day":return i[oh(n)]()/24;case"hour":return i[oh(n)]();case"minute":return i[sh(n)]();case"second":return i[lh(n)]();case"millisecond":return i[uh(n)]()}}function ih(t){return t?"getUTCFullYear":"getFullYear"}function rh(t){return t?"getUTCMonth":"getMonth"}function ah(t){return t?"getUTCDate":"getDate"}function oh(t){return t?"getUTCHours":"getHours"}function sh(t){return t?"getUTCMinutes":"getMinutes"}function lh(t){return t?"getUTCSeconds":"getSeconds"}function uh(t){return t?"getUTCSeconds":"getSeconds"}function hh(t){return t?"setUTCFullYear":"setFullYear"}function ch(t){return t?"setUTCMonth":"setMonth"}function ph(t){return t?"setUTCDate":"setDate"}function fh(t){return t?"setUTCHours":"setHours"}function dh(t){return t?"setUTCMinutes":"setMinutes"}function gh(t){return t?"setUTCSeconds":"setSeconds"}function yh(t){return t?"setUTCSeconds":"setSeconds"}function vh(t){if(!qi(t))return V(t)?t:"-";var e=(t+"").split(".");return e[0].replace(/(\d{1,3})(?=(?:\d{3})+(?!\d))/g,"$1,")+(e.length>1?"."+e[1]:"")}var mh=et,_h=/([&<>"'])/g,xh={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function bh(t){return null==t?"":(t+"").replace(_h,(function(t,e){return xh[e]}))}var wh=["a","b","c","d","e","f","g"],Sh=function(t,e){return"{"+t+(null==e?"":e)+"}"};function Mh(t,e,n){z(e)||(e=[e]);var i=e.length;if(!i)return"";for(var r=e[0].$vars||[],a=0;a<r.length;a++){var o=wh[a];t=t.replace(Sh(o),Sh(o,0))}for(var s=0;s<i;s++)for(var l=0;l<r.length;l++){var u=e[s][r[l]];t=t.replace(Sh(wh[l],s),n?bh(u):u)}return t}var Th=L,Ch=["left","right","top","bottom","width","height"],Dh=[["width","left","right"],["height","top","bottom"]];function Ih(t,e,n,i,r){var a=0,o=0;null==i&&(i=1/0),null==r&&(r=1/0);var s=0;e.eachChild((function(l,u){var h,c,p=l.getBoundingRect(),f=e.childAt(u+1),d=f&&f.getBoundingRect();if("horizontal"===t){var g=p.width+(d?-d.x+p.x:0);(h=a+g)>i||l.newline?(a=0,h=g,o+=s+n,s=p.height):s=Math.max(s,p.height)}else{var y=p.height+(d?-d.y+p.y:0);(c=o+y)>r||l.newline?(a+=s+n,o=0,c=y,s=p.width):s=Math.max(s,p.width)}l.newline||(l.x=a,l.y=o,l.markRedraw(),"horizontal"===t?a=h+n:o=c+n)}))}B(Ih,"vertical"),B(Ih,"horizontal");function Ah(t,e,n){n=mh(n||0);var i=e.width,r=e.height,a=Ri(t.left,i),o=Ri(t.top,r),s=Ri(t.right,i),l=Ri(t.bottom,r),u=Ri(t.width,i),h=Ri(t.height,r),c=n[2]+n[0],p=n[1]+n[3],f=t.aspect;switch(isNaN(u)&&(u=i-s-p-a),isNaN(h)&&(h=r-l-c-o),null!=f&&(isNaN(u)&&isNaN(h)&&(f>i/r?u=.8*i:h=.8*r),isNaN(u)&&(u=f*h),isNaN(h)&&(h=u/f)),isNaN(a)&&(a=i-s-u-p),isNaN(o)&&(o=r-l-h-c),t.left||t.right){case"center":a=i/2-u/2-n[3];break;case"right":a=i-u-p}switch(t.top||t.bottom){case"middle":case"center":o=r/2-h/2-n[0];break;case"bottom":o=r-h-c}a=a||0,o=o||0,isNaN(u)&&(u=i-p-a-(s||0)),isNaN(h)&&(h=r-c-o-(l||0));var d=new bn(a+n[3],o+n[0],u,h);return d.margin=n,d}function kh(t){var e=t.layoutMode||t.constructor.layoutMode;return G(e)?e:e?{type:e}:null}function Lh(t,e,n){var i=n&&n.ignoreSize;!z(i)&&(i=[i,i]);var r=o(Dh[0],0),a=o(Dh[1],1);function o(n,r){var a={},o=0,u={},h=0;if(Th(n,(function(e){u[e]=t[e]})),Th(n,(function(t){s(e,t)&&(a[t]=u[t]=e[t]),l(a,t)&&o++,l(u,t)&&h++})),i[r])return l(e,n[1])?u[n[2]]=null:l(e,n[2])&&(u[n[1]]=null),u;if(2!==h&&o){if(o>=2)return a;for(var c=0;c<n.length;c++){var p=n[c];if(!s(a,p)&&s(t,p)){a[p]=t[p];break}}return a}return u}function s(t,e){return t.hasOwnProperty(e)}function l(t,e){return null!=t[e]&&"auto"!==t[e]}function u(t,e,n){Th(t,(function(t){e[t]=n[t]}))}u(Dh[0],t,r),u(Dh[1],t,a)}function Ph(t){return function(t,e){return e&&t&&Th(Ch,(function(n){e.hasOwnProperty(n)&&(t[n]=e[n])})),t}({},t)}var Oh=hr(),Rh=function(t){function e(e,n,i){var r=t.call(this,e,n,i)||this;return r.uid=Ou("ec_cpt_model"),r}return n(e,t),e.prototype.init=function(t,e,n){this.mergeDefaultAndTheme(t,n)},e.prototype.mergeDefaultAndTheme=function(t,e){var n=kh(this),i=n?Ph(t):{};S(t,e.getTheme().get(this.mainType)),S(t,this.getDefaultOption()),n&&Lh(t,i,n)},e.prototype.mergeOption=function(t,e){S(this.option,t,!0);var n=kh(this);n&&Lh(this.option,t,n)},e.prototype.optionUpdated=function(t,e){},e.prototype.getDefaultOption=function(){var t=this.constructor;if(!function(t){return!(!t||!t[mr])}(t))return t.defaultOption;var e=Oh(this);if(!e.defaultOption){for(var n=[],i=t;i;){var r=i.prototype.defaultOption;r&&n.push(r),i=i.superClass}for(var a={},o=n.length-1;o>=0;o--)a=S(a,n[o],!0);e.defaultOption=a}return e.defaultOption},e.prototype.getReferringComponents=function(t,e){var n=t+"Index",i=t+"Id";return dr(this.ecModel,t,{index:this.get(n,!0),id:this.get(i,!0)},e)},e.prototype.getBoxLayoutParams=function(){var t=this;return{left:t.get("left"),top:t.get("top"),right:t.get("right"),bottom:t.get("bottom"),width:t.get("width"),height:t.get("height")}},e.protoInitialize=function(){var t=e.prototype;t.type="component",t.id="",t.name="",t.mainType="",t.subType="",t.componentIndex=0}(),e}(Lu);wr(Rh,Lu),Cr(Rh),function(t){var e={};t.registerSubTypeDefaulter=function(t,n){var i=_r(t);e[i.main]=n},t.determineSubType=function(n,i){var r=i.type;if(!r){var a=_r(n).main;t.hasSubTypes(n)&&e[a]&&(r=e[a](i))}return r}}(Rh),function(t,e){function n(t,e){return t[e]||(t[e]={predecessor:[],successor:[]}),t[e]}t.topologicalTravel=function(t,i,r,a){if(t.length){var o=function(t){var i={},r=[];return L(t,(function(a){var o=n(i,a),s=function(t,e){var n=[];return L(t,(function(t){D(e,t)>=0&&n.push(t)})),n}(o.originalDeps=e(a),t);o.entryCount=s.length,0===o.entryCount&&r.push(a),L(s,(function(t){D(o.predecessor,t)<0&&o.predecessor.push(t);var e=n(i,t);D(e.successor,t)<0&&e.successor.push(a)}))})),{graph:i,noEntryList:r}}(i),s=o.graph,l=o.noEntryList,u={};for(L(t,(function(t){u[t]=!0}));l.length;){var h=l.pop(),c=s[h],p=!!u[h];p&&(r.call(a,h,c.originalDeps.slice()),delete u[h]),L(c.successor,p?d:f)}L(u,(function(){var t="";throw new Error(t)}))}function f(t){s[t].entryCount--,0===s[t].entryCount&&l.push(t)}function d(t){u[t]=!0,f(t)}}}(Rh,(function(t){var e=[];L(Rh.getClassesByMainType(t),(function(t){e=e.concat(t.dependencies||t.prototype.dependencies||[])})),e=P(e,(function(t){return _r(t).main})),"dataset"!==t&&D(e,"dataset")<=0&&e.unshift("dataset");return e}));var Nh="";"undefined"!=typeof navigator&&(Nh=navigator.platform||"");var Eh="rgba(0, 0, 0, 0.2)",Bh={darkMode:"auto",color:["#5470c6","#91cc75","#fac858","#ee6666","#73c0de","#3ba272","#fc8452","#9a60b4","#ea7ccc"],gradientColor:["#f6efa6","#d88273","#bf444c"],aria:{decal:{decals:[{color:Eh,dashArrayX:[1,0],dashArrayY:[2,5],symbolSize:1,rotation:Math.PI/6},{color:Eh,symbol:"circle",dashArrayX:[[8,8],[0,8,8,0]],dashArrayY:[6,0],symbolSize:.8},{color:Eh,dashArrayX:[1,0],dashArrayY:[4,3],rotation:-Math.PI/4},{color:Eh,dashArrayX:[[6,6],[0,6,6,0]],dashArrayY:[6,0]},{color:Eh,dashArrayX:[[1,0],[1,6]],dashArrayY:[1,0,6,0],rotation:Math.PI/4},{color:Eh,symbol:"triangle",dashArrayX:[[9,9],[0,9,9,0]],dashArrayY:[7,2],symbolSize:.75}]}},textStyle:{fontFamily:Nh.match(/^Win/)?"Microsoft YaHei":"sans-serif",fontSize:12,fontStyle:"normal",fontWeight:"normal"},blendMode:null,stateAnimation:{duration:300,easing:"cubicOut"},animation:"auto",animationDuration:1e3,animationDurationUpdate:500,animationEasing:"cubicInOut",animationEasingUpdate:"cubicInOut",animationThreshold:2e3,progressiveThreshold:3e3,progressive:400,hoverLayerThreshold:3e3,useUTC:!1},zh=lt(["tooltip","label","itemName","itemId","seriesName"]),Fh="original",Vh="arrayRows",Hh="objectRows",Wh="keyedColumns",Gh="typedArray",Uh="unknown",Yh="column",Xh="row",qh=1,jh=2,Zh=3,Kh=hr();function $h(t,e,n){var i={},r=Jh(e);if(!r||!t)return i;var a,o,s=[],l=[],u=e.ecModel,h=Kh(u).datasetMap,c=r.uid+"_"+n.seriesLayoutBy;L(t=t.slice(),(function(e,n){var r=G(e)?e:t[n]={name:e};"ordinal"===r.type&&null==a&&(a=n,o=d(r)),i[r.name]=[]}));var p=h.get(c)||h.set(c,{categoryWayDim:o,valueWayDim:0});function f(t,e,n){for(var i=0;i<n;i++)t.push(e+i)}function d(t){var e=t.dimsDef;return e?e.length:1}return L(t,(function(t,e){var n=t.name,r=d(t);if(null==a){var o=p.valueWayDim;f(i[n],o,r),f(l,o,r),p.valueWayDim+=r}else if(a===e)f(i[n],0,r),f(s,0,r);else{o=p.categoryWayDim;f(i[n],o,r),f(l,o,r),p.categoryWayDim+=r}})),s.length&&(i.itemName=s),l.length&&(i.seriesName=l),i}function Qh(t,e,n){var i={};if(!Jh(t))return i;var r,a=e.sourceFormat,o=e.dimensionsDefine;a!==Hh&&a!==Wh||L(o,(function(t,e){"name"===(G(t)?t.name:t)&&(r=e)}));var s=function(){for(var t={},i={},s=[],l=0,u=Math.min(5,n);l<u;l++){var h=ec(e.data,a,e.seriesLayoutBy,o,e.startIndex,l);s.push(h);var c=h===Zh;if(c&&null==t.v&&l!==r&&(t.v=l),(null==t.n||t.n===t.v||!c&&s[t.n]===Zh)&&(t.n=l),p(t)&&s[t.n]!==Zh)return t;c||(h===jh&&null==i.v&&l!==r&&(i.v=l),null!=i.n&&i.n!==i.v||(i.n=l))}function p(t){return null!=t.v&&null!=t.n}return p(t)?t:p(i)?i:null}();if(s){i.value=[s.v];var l=null!=r?r:s.n;i.itemName=[l],i.seriesName=[l]}return i}function Jh(t){if(!t.get("data",!0))return dr(t.ecModel,"dataset",{index:t.get("datasetIndex",!0),id:t.get("datasetId",!0)},fr).models[0]}function tc(t,e){return ec(t.data,t.sourceFormat,t.seriesLayoutBy,t.dimensionsDefine,t.startIndex,e)}function ec(t,e,n,i,r,a){var o,s,l;if(Y(t))return Zh;if(i){var u=i[a];G(u)?(s=u.name,l=u.type):V(u)&&(s=u)}if(null!=l)return"ordinal"===l?qh:Zh;if(e===Vh){var h=t;if(n===Xh){for(var c=h[a],p=0;p<(c||[]).length&&p<5;p++)if(null!=(o=m(c[r+p])))return o}else for(p=0;p<h.length&&p<5;p++){var f=h[r+p];if(f&&null!=(o=m(f[a])))return o}}else if(e===Hh){var d=t;if(!s)return Zh;for(p=0;p<d.length&&p<5;p++){if((y=d[p])&&null!=(o=m(y[s])))return o}}else if(e===Wh){if(!s)return Zh;if(!(c=t[s])||Y(c))return Zh;for(p=0;p<c.length&&p<5;p++)if(null!=(o=m(c[p])))return o}else if(e===Fh){var g=t;for(p=0;p<g.length&&p<5;p++){var y,v=nr(y=g[p]);if(!z(v))return Zh;if(null!=(o=m(v[a])))return o}}function m(t){var e=V(t);return null!=t&&isFinite(t)&&""!==t?e?jh:Zh:e&&"-"!==t?qh:void 0}return Zh}var nc=lt();var ic,rc,ac,oc=hr(),sc=hr(),lc=function(){function t(){}return t.prototype.getColorFromPalette=function(t,e,n){var i=Ji(this.get("color",!0)),r=this.get("colorLayer",!0);return hc(this,oc,i,r,t,e,n)},t.prototype.clearColorPalette=function(){!function(t,e){e(t).paletteIdx=0,e(t).paletteNameMap={}}(this,oc)},t}();function uc(t,e,n,i){var r=Ji(t.get(["aria","decal","decals"]));return hc(t,sc,r,null,e,n,i)}function hc(t,e,n,i,r,a,o){var s=e(a=a||t),l=s.paletteIdx||0,u=s.paletteNameMap=s.paletteNameMap||{};if(u.hasOwnProperty(r))return u[r];var h=null!=o&&i?function(t,e){for(var n=t.length,i=0;i<n;i++)if(t[i].length>e)return t[i];return t[n-1]}(i,o):n;if((h=h||n)&&h.length){var c=h[l];return r&&(u[r]=c),s.paletteIdx=(l+1)%h.length,c}}var cc=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.init=function(t,e,n,i,r,a){i=i||{},this.option=null,this._theme=new Lu(i),this._locale=new Lu(r),this._optionManager=a},e.prototype.setOption=function(t,e,n){var i=dc(e);this._optionManager.setOption(t,n,i),this._resetOption(null,i)},e.prototype.resetOption=function(t,e){return this._resetOption(t,dc(e))},e.prototype._resetOption=function(t,e){var n=!1,i=this._optionManager;if(!t||"recreate"===t){var r=i.mountOption("recreate"===t);this.option&&"recreate"!==t?(this.restoreData(),this._mergeOption(r,e)):ac(this,r),n=!0}if("timeline"!==t&&"media"!==t||this.restoreData(),!t||"recreate"===t||"timeline"===t){var a=i.getTimelineOption(this);a&&(n=!0,this._mergeOption(a,e))}if(!t||"recreate"===t||"media"===t){var o=i.getMediaOption(this);o.length&&L(o,(function(t){n=!0,this._mergeOption(t,e)}),this)}return n},e.prototype.mergeOption=function(t){this._mergeOption(t,null)},e.prototype._mergeOption=function(t,e){var n=this.option,i=this._componentsMap,r=this._componentsCount,a=[],o=lt(),s=e&&e.replaceMergeMainTypeMap;Kh(this).datasetMap=lt(),L(t,(function(t,e){null!=t&&(Rh.hasClass(e)?e&&(a.push(e),o.set(e,!0)):n[e]=null==n[e]?w(t):S(n[e],t,!0))})),s&&s.each((function(t,e){Rh.hasClass(e)&&!o.get(e)&&(a.push(e),o.set(e,!0))})),Rh.topologicalTravel(a,Rh.getAllClassMainTypes(),(function(e){var a=function(t,e,n){var i=nc.get(e);if(!i)return n;var r=i(t);return r?n.concat(r):n}(this,e,Ji(t[e])),o=i.get(e),l=o?s&&s.get(e)?"replaceMerge":"normalMerge":"replaceAll",u=ir(o,a,l);(function(t,e,n){L(t,(function(t){var i=t.newOption;G(i)&&(t.keyInfo.mainType=e,t.keyInfo.subType=function(t,e,n,i){return e.type?e.type:n?n.subType:i.determineSubType(t,e)}(e,i,t.existing,n))}))})(u,e,Rh),n[e]=null,i.set(e,null),r.set(e,0);var h=[],c=[],p=0;L(u,(function(t,n){var i=t.existing,r=t.newOption;if(r){var a=Rh.getClass(e,t.keyInfo.subType,!0);if(i&&i.constructor===a)i.name=t.keyInfo.name,i.mergeOption(r,this),i.optionUpdated(r,!1);else{var o=M({componentIndex:n},t.keyInfo);M(i=new a(r,this,this,o),o),t.brandNew&&(i.__requireNewView=!0),i.init(r,this,this),i.optionUpdated(null,!0)}}else i&&(i.mergeOption({},this),i.optionUpdated({},!1));i?(h.push(i.option),c.push(i),p++):(h.push(void 0),c.push(void 0))}),this),n[e]=h,i.set(e,c),r.set(e,p),"series"===e&&ic(this)}),this),this._seriesIndices||ic(this)},e.prototype.getOption=function(){var t=w(this.option);return L(t,(function(e,n){if(Rh.hasClass(n)){for(var i=Ji(e),r=i.length,a=!1,o=r-1;o>=0;o--)i[o]&&!lr(i[o])?a=!0:(i[o]=null,!a&&r--);i.length=r,t[n]=i}})),delete t["\0_ec_inner"],t},e.prototype.getTheme=function(){return this._theme},e.prototype.getLocaleModel=function(){return this._locale},e.prototype.getLocale=function(t){return this.getLocaleModel().get(t)},e.prototype.setUpdatePayload=function(t){this._payload=t},e.prototype.getUpdatePayload=function(){return this._payload},e.prototype.getComponent=function(t,e){var n=this._componentsMap.get(t);if(n){var i=n[e||0];if(i)return i;if(null==e)for(var r=0;r<n.length;r++)if(n[r])return n[r]}},e.prototype.queryComponents=function(t){var e=t.mainType;if(!e)return[];var n,i=t.index,r=t.id,a=t.name,o=this._componentsMap.get(e);return o&&o.length?(null!=i?(n=[],L(Ji(i),(function(t){o[t]&&n.push(o[t])}))):n=null!=r?pc("id",r,o):null!=a?pc("name",a,o):R(o,(function(t){return!!t})),fc(n,t)):[]},e.prototype.findComponents=function(t){var e,n,i,r,a,o=t.query,s=t.mainType,l=(n=s+"Index",i=s+"Id",r=s+"Name",!(e=o)||null==e[n]&&null==e[i]&&null==e[r]?null:{mainType:s,index:e[n],id:e[i],name:e[r]}),u=l?this.queryComponents(l):R(this._componentsMap.get(s),(function(t){return!!t}));return a=fc(u,t),t.filter?R(a,t.filter):a},e.prototype.eachComponent=function(t,e,n){var i=this._componentsMap;if(F(t)){var r=e,a=t;i.each((function(t,e){for(var n=0;t&&n<t.length;n++){var i=t[n];i&&a.call(r,e,i,i.componentIndex)}}))}else for(var o=V(t)?i.get(t):G(t)?this.findComponents(t):null,s=0;o&&s<o.length;s++){var l=o[s];l&&e.call(n,l,l.componentIndex)}},e.prototype.getSeriesByName=function(t){var e=or(t,null);return R(this._componentsMap.get("series"),(function(t){return!!t&&null!=e&&t.name===e}))},e.prototype.getSeriesByIndex=function(t){return this._componentsMap.get("series")[t]},e.prototype.getSeriesByType=function(t){return R(this._componentsMap.get("series"),(function(e){return!!e&&e.subType===t}))},e.prototype.getSeries=function(){return R(this._componentsMap.get("series").slice(),(function(t){return!!t}))},e.prototype.getSeriesCount=function(){return this._componentsCount.get("series")},e.prototype.eachSeries=function(t,e){rc(this),L(this._seriesIndices,(function(n){var i=this._componentsMap.get("series")[n];t.call(e,i,n)}),this)},e.prototype.eachRawSeries=function(t,e){L(this._componentsMap.get("series"),(function(n){n&&t.call(e,n,n.componentIndex)}))},e.prototype.eachSeriesByType=function(t,e,n){rc(this),L(this._seriesIndices,(function(i){var r=this._componentsMap.get("series")[i];r.subType===t&&e.call(n,r,i)}),this)},e.prototype.eachRawSeriesByType=function(t,e,n){return L(this.getSeriesByType(t),e,n)},e.prototype.isSeriesFiltered=function(t){return rc(this),null==this._seriesIndicesMap.get(t.componentIndex)},e.prototype.getCurrentSeriesIndices=function(){return(this._seriesIndices||[]).slice()},e.prototype.filterSeries=function(t,e){rc(this);var n=[];L(this._seriesIndices,(function(i){var r=this._componentsMap.get("series")[i];t.call(e,r,i)&&n.push(i)}),this),this._seriesIndices=n,this._seriesIndicesMap=lt(n)},e.prototype.restoreData=function(t){ic(this);var e=this._componentsMap,n=[];e.each((function(t,e){Rh.hasClass(e)&&n.push(e)})),Rh.topologicalTravel(n,Rh.getAllClassMainTypes(),(function(n){L(e.get(n),(function(e){!e||"series"===n&&function(t,e){if(e){var n=e.seriesIndex,i=e.seriesId,r=e.seriesName;return null!=n&&t.componentIndex!==n||null!=i&&t.id!==i||null!=r&&t.name!==r}}(e,t)||e.restoreData()}))}))},e.internalField=(ic=function(t){var e=t._seriesIndices=[];L(t._componentsMap.get("series"),(function(t){t&&e.push(t.componentIndex)})),t._seriesIndicesMap=lt(e)},rc=function(t){},void(ac=function(t,e){t.option={},t.option["\0_ec_inner"]=1,t._componentsMap=lt({series:[]}),t._componentsCount=lt();var n=e.aria;G(n)&&null==n.enabled&&(n.enabled=!0),function(t,e){var n=t.color&&!t.colorLayer;L(e,(function(e,i){"colorLayer"===i&&n||Rh.hasClass(i)||("object"==typeof e?t[i]=t[i]?S(t[i],e,!1):w(e):null==t[i]&&(t[i]=e))}))}(e,t._theme.option),S(e,Bh,!1),t._mergeOption(e,null)})),e}(Lu);function pc(t,e,n){if(z(e)){var i=lt();return L(e,(function(t){null!=t&&(null!=or(t,null)&&i.set(t,!0))})),R(n,(function(e){return e&&i.get(e[t])}))}var r=or(e,null);return R(n,(function(e){return e&&null!=r&&e[t]===r}))}function fc(t,e){return e.hasOwnProperty("subType")?R(t,(function(t){return t&&t.subType===e.subType})):t}function dc(t){var e=lt();return t&&L(Ji(t.replaceMerge),(function(t){e.set(t,!0)})),{replaceMergeMainTypeMap:e}}A(cc,lc);var gc=["getDom","getZr","getWidth","getHeight","getDevicePixelRatio","dispatchAction","isDisposed","on","off","getDataURL","getConnectedDataURL","getOption","getId","updateLabelLayout"],yc=function(t){L(gc,(function(e){this[e]=E(t[e],t)}),this)},vc={},mc=function(){function t(){this._coordinateSystems=[]}return t.prototype.create=function(t,e){var n=[];L(vc,(function(i,r){var a=i.create(t,e);n=n.concat(a||[])})),this._coordinateSystems=n},t.prototype.update=function(t,e){L(this._coordinateSystems,(function(n){n.update&&n.update(t,e)}))},t.prototype.getCoordinateSystems=function(){return this._coordinateSystems.slice()},t.register=function(t,e){vc[t]=e},t.get=function(t){return vc[t]},t}(),_c=/^(min|max)?(.+)$/,xc=function(){function t(t){this._timelineOptions=[],this._mediaList=[],this._currentMediaIndices=[],this._api=t}return t.prototype.setOption=function(t,e,n){t&&(L(Ji(t.series),(function(t){t&&t.data&&Y(t.data)&&at(t.data)})),L(Ji(t.dataset),(function(t){t&&t.source&&Y(t.source)&&at(t.source)}))),t=w(t);var i=this._optionBackup,r=function(t,e,n){var i,r,a=[],o=t.baseOption,s=t.timeline,l=t.options,u=t.media,h=!!t.media,c=!!(l||s||o&&o.timeline);o?(r=o).timeline||(r.timeline=s):((c||h)&&(t.options=t.media=null),r=t);h&&z(u)&&L(u,(function(t){t&&t.option&&(t.query?a.push(t):i||(i=t))}));function p(t){L(e,(function(e){e(t,n)}))}return p(r),L(l,(function(t){return p(t)})),L(a,(function(t){return p(t.option)})),{baseOption:r,timelineOptions:l||[],mediaDefault:i,mediaList:a}}(t,e,!i);this._newBaseOption=r.baseOption,i?(r.timelineOptions.length&&(i.timelineOptions=r.timelineOptions),r.mediaList.length&&(i.mediaList=r.mediaList),r.mediaDefault&&(i.mediaDefault=r.mediaDefault)):this._optionBackup=r},t.prototype.mountOption=function(t){var e=this._optionBackup;return this._timelineOptions=e.timelineOptions,this._mediaList=e.mediaList,this._mediaDefault=e.mediaDefault,this._currentMediaIndices=[],w(t?e.baseOption:this._newBaseOption)},t.prototype.getTimelineOption=function(t){var e,n=this._timelineOptions;if(n.length){var i=t.getComponent("timeline");i&&(e=w(n[i.getCurrentIndex()]))}return e},t.prototype.getMediaOption=function(t){var e,n,i=this._api.getWidth(),r=this._api.getHeight(),a=this._mediaList,o=this._mediaDefault,s=[],l=[];if(!a.length&&!o)return l;for(var u=0,h=a.length;u<h;u++)bc(a[u].query,i,r)&&s.push(u);return!s.length&&o&&(s=[-1]),s.length&&(e=s,n=this._currentMediaIndices,e.join(",")!==n.join(","))&&(l=P(s,(function(t){return w(-1===t?o.option:a[t].option)}))),this._currentMediaIndices=s,l},t}();function bc(t,e,n){var i={width:e,height:n,aspectratio:e/n},r=!0;return L(t,(function(t,e){var n=e.match(_c);if(n&&n[1]&&n[2]){var a=n[1],o=n[2].toLowerCase();(function(t,e,n){return"min"===n?t>=e:"max"===n?t<=e:t===e})(i[o],t,a)||(r=!1)}})),r}var wc=L,Sc=G,Mc=["areaStyle","lineStyle","nodeStyle","linkStyle","chordStyle","label","labelLine"];function Tc(t){var e=t&&t.itemStyle;if(e)for(var n=0,i=Mc.length;n<i;n++){var r=Mc[n],a=e.normal,o=e.emphasis;a&&a[r]&&(t[r]=t[r]||{},t[r].normal?S(t[r].normal,a[r]):t[r].normal=a[r],a[r]=null),o&&o[r]&&(t[r]=t[r]||{},t[r].emphasis?S(t[r].emphasis,o[r]):t[r].emphasis=o[r],o[r]=null)}}function Cc(t,e,n){if(t&&t[e]&&(t[e].normal||t[e].emphasis)){var i=t[e].normal,r=t[e].emphasis;i&&(n?(t[e].normal=t[e].emphasis=null,T(t[e],i)):t[e]=i),r&&(t.emphasis=t.emphasis||{},t.emphasis[e]=r,r.focus&&(t.emphasis.focus=r.focus),r.blurScope&&(t.emphasis.blurScope=r.blurScope))}}function Dc(t){Cc(t,"itemStyle"),Cc(t,"lineStyle"),Cc(t,"areaStyle"),Cc(t,"label"),Cc(t,"labelLine"),Cc(t,"upperLabel"),Cc(t,"edgeLabel")}function Ic(t,e){var n=Sc(t)&&t[e],i=Sc(n)&&n.textStyle;if(i){0;for(var r=0,a=er.length;r<a;r++){var o=er[r];i.hasOwnProperty(o)&&(n[o]=i[o])}}}function Ac(t){t&&(Dc(t),Ic(t,"label"),t.emphasis&&Ic(t.emphasis,"label"))}function kc(t){return z(t)?t:t?[t]:[]}function Lc(t){return(z(t)?t[0]:t)||{}}function Pc(t,e){wc(kc(t.series),(function(t){Sc(t)&&function(t){if(Sc(t)){Tc(t),Dc(t),Ic(t,"label"),Ic(t,"upperLabel"),Ic(t,"edgeLabel"),t.emphasis&&(Ic(t.emphasis,"label"),Ic(t.emphasis,"upperLabel"),Ic(t.emphasis,"edgeLabel"));var e=t.markPoint;e&&(Tc(e),Ac(e));var n=t.markLine;n&&(Tc(n),Ac(n));var i=t.markArea;i&&Ac(i);var r=t.data;if("graph"===t.type){r=r||t.nodes;var a=t.links||t.edges;if(a&&!Y(a))for(var o=0;o<a.length;o++)Ac(a[o]);L(t.categories,(function(t){Dc(t)}))}if(r&&!Y(r))for(o=0;o<r.length;o++)Ac(r[o]);if((e=t.markPoint)&&e.data){var s=e.data;for(o=0;o<s.length;o++)Ac(s[o])}if((n=t.markLine)&&n.data){var l=n.data;for(o=0;o<l.length;o++)z(l[o])?(Ac(l[o][0]),Ac(l[o][1])):Ac(l[o])}"gauge"===t.type?(Ic(t,"axisLabel"),Ic(t,"title"),Ic(t,"detail")):"treemap"===t.type?(Cc(t.breadcrumb,"itemStyle"),L(t.levels,(function(t){Dc(t)}))):"tree"===t.type&&Dc(t.leaves)}}(t)}));var n=["xAxis","yAxis","radiusAxis","angleAxis","singleAxis","parallelAxis","radar"];e&&n.push("valueAxis","categoryAxis","logAxis","timeAxis"),wc(n,(function(e){wc(kc(t[e]),(function(t){t&&(Ic(t,"axisLabel"),Ic(t.axisPointer,"label"))}))})),wc(kc(t.parallel),(function(t){var e=t&&t.parallelAxisDefault;Ic(e,"axisLabel"),Ic(e&&e.axisPointer,"label")})),wc(kc(t.calendar),(function(t){Cc(t,"itemStyle"),Ic(t,"dayLabel"),Ic(t,"monthLabel"),Ic(t,"yearLabel")})),wc(kc(t.radar),(function(t){Ic(t,"name"),t.name&&null==t.axisName&&(t.axisName=t.name,delete t.name),null!=t.nameGap&&null==t.axisNameGap&&(t.axisNameGap=t.nameGap,delete t.nameGap)})),wc(kc(t.geo),(function(t){Sc(t)&&(Ac(t),wc(kc(t.regions),(function(t){Ac(t)})))})),wc(kc(t.timeline),(function(t){Ac(t),Cc(t,"label"),Cc(t,"itemStyle"),Cc(t,"controlStyle",!0);var e=t.data;z(e)&&L(e,(function(t){G(t)&&(Cc(t,"label"),Cc(t,"itemStyle"))}))})),wc(kc(t.toolbox),(function(t){Cc(t,"iconStyle"),wc(t.feature,(function(t){Cc(t,"iconStyle")}))})),Ic(Lc(t.axisPointer),"label"),Ic(Lc(t.tooltip).axisPointer,"label")}function Oc(t){t&&L(Rc,(function(e){e[0]in t&&!(e[1]in t)&&(t[e[1]]=t[e[0]])}))}var Rc=[["x","left"],["y","top"],["x2","right"],["y2","bottom"]],Nc=["grid","geo","parallel","legend","toolbox","title","visualMap","dataZoom","timeline"],Ec=[["borderRadius","barBorderRadius"],["borderColor","barBorderColor"],["borderWidth","barBorderWidth"]];function Bc(t){var e=t&&t.itemStyle;if(e)for(var n=0;n<Ec.length;n++){var i=Ec[n][1],r=Ec[n][0];null!=e[i]&&(e[r]=e[i])}}function zc(t){t&&"edge"===t.alignTo&&null!=t.margin&&null==t.edgeDistance&&(t.edgeDistance=t.margin)}function Fc(t){t&&t.downplay&&!t.blur&&(t.blur=t.downplay)}function Vc(t,e){if(t)for(var n=0;n<t.length;n++)e(t[n]),t[n]&&Vc(t[n].children,e)}function Hc(t,e){Pc(t,e),t.series=Ji(t.series),L(t.series,(function(t){if(G(t)){var e=t.type;if("line"===e)null!=t.clipOverflow&&(t.clip=t.clipOverflow);else if("pie"===e||"gauge"===e){if(null!=t.clockWise&&(t.clockwise=t.clockWise),zc(t.label),(r=t.data)&&!Y(r))for(var n=0;n<r.length;n++)zc(r[n]);null!=t.hoverOffset&&(t.emphasis=t.emphasis||{},(t.emphasis.scaleSize=null)&&(t.emphasis.scaleSize=t.hoverOffset))}else if("gauge"===e){var i=function(t,e){for(var n=e.split(","),i=t,r=0;r<n.length&&null!=(i=i&&i[n[r]]);r++);return i}(t,"pointer.color");null!=i&&function(t,e,n,i){for(var r,a=e.split(","),o=t,s=0;s<a.length-1;s++)null==o[r=a[s]]&&(o[r]={}),o=o[r];(i||null==o[a[s]])&&(o[a[s]]=n)}(t,"itemStyle.color",i)}else if("bar"===e){var r;if(Bc(t),Bc(t.backgroundStyle),Bc(t.emphasis),(r=t.data)&&!Y(r))for(n=0;n<r.length;n++)"object"==typeof r[n]&&(Bc(r[n]),Bc(r[n]&&r[n].emphasis))}else if("sunburst"===e){var a=t.highlightPolicy;a&&(t.emphasis=t.emphasis||{},t.emphasis.focus||(t.emphasis.focus=a)),Fc(t),Vc(t.data,Fc)}else"graph"===e||"sankey"===e?function(t){t&&null!=t.focusNodeAdjacency&&(t.emphasis=t.emphasis||{},null==t.emphasis.focus&&(t.emphasis.focus="adjacency"))}(t):"map"===e&&(t.mapType&&!t.map&&(t.map=t.mapType),t.mapLocation&&T(t,t.mapLocation));null!=t.hoverAnimation&&(t.emphasis=t.emphasis||{},t.emphasis&&null==t.emphasis.scale&&(t.emphasis.scale=t.hoverAnimation)),Oc(t)}})),t.dataRange&&(t.visualMap=t.dataRange),L(Nc,(function(e){var n=t[e];n&&(z(n)||(n=[n]),L(n,(function(t){Oc(t)})))}))}function Wc(t){L(t,(function(e,n){var i=[],r=[NaN,NaN],a=[e.stackResultDimension,e.stackedOverDimension],o=e.data,s=e.isStackedByIndex,l=o.map(a,(function(a,l,u){var h,c,p=o.get(e.stackedDimension,u);if(isNaN(p))return r;s?c=o.getRawIndex(u):h=o.get(e.stackedByDimension,u);for(var f=NaN,d=n-1;d>=0;d--){var g=t[d];if(s||(c=g.data.rawIndexOf(g.stackedByDimension,h)),c>=0){var y=g.data.getByRawIndex(g.stackResultDimension,c);if(p>=0&&y>0||p<=0&&y<0){p+=y,f=y;break}}}return i[0]=p,i[1]=f,i}));o.hostModel.setData(l),e.data=l}))}var Gc,Uc,Yc,Xc,qc,jc=function(t){this.data=t.data||(t.sourceFormat===Wh?{}:[]),this.sourceFormat=t.sourceFormat||Uh,this.seriesLayoutBy=t.seriesLayoutBy||Yh,this.startIndex=t.startIndex||0,this.dimensionsDefine=t.dimensionsDefine,this.dimensionsDetectedCount=t.dimensionsDetectedCount,this.encodeDefine=t.encodeDefine,this.metaRawOption=t.metaRawOption};function Zc(t){return t instanceof jc}function Kc(t,e,n,i){n=n||Jc(t);var r=e.seriesLayoutBy,a=function(t,e,n,i,r){var a,o;if(!t)return{dimensionsDefine:tp(r),startIndex:o,dimensionsDetectedCount:a};if(e===Vh){var s=t;"auto"===i||null==i?ep((function(t){null!=t&&"-"!==t&&(V(t)?null==o&&(o=1):o=0)}),n,s,10):o=W(i)?i:i?1:0,r||1!==o||(r=[],ep((function(t,e){r[e]=null!=t?t+"":""}),n,s,1/0)),a=r?r.length:n===Xh?s.length:s[0]?s[0].length:null}else if(e===Hh)r||(r=function(t){var e,n=0;for(;n<t.length&&!(e=t[n++]););if(e){var i=[];return L(e,(function(t,e){i.push(e)})),i}}(t));else if(e===Wh)r||(r=[],L(t,(function(t,e){r.push(e)})));else if(e===Fh){var l=nr(t[0]);a=z(l)&&l.length||1}return{startIndex:o,dimensionsDefine:tp(r),dimensionsDetectedCount:a}}(t,n,r,e.sourceHeader,e.dimensions);return new jc({data:t,sourceFormat:n,seriesLayoutBy:r,dimensionsDefine:a.dimensionsDefine,startIndex:a.startIndex,dimensionsDetectedCount:a.dimensionsDetectedCount,encodeDefine:Qc(i),metaRawOption:w(e)})}function $c(t){return new jc({data:t,sourceFormat:Y(t)?Gh:Fh})}function Qc(t){return t?lt(t):null}function Jc(t){var e=Uh;if(Y(t))e=Gh;else if(z(t)){0===t.length&&(e=Vh);for(var n=0,i=t.length;n<i;n++){var r=t[n];if(null!=r){if(z(r)){e=Vh;break}if(G(r)){e=Hh;break}}}}else if(G(t))for(var a in t)if(ht(t,a)&&k(t[a])){e=Wh;break}return e}function tp(t){if(t){var e=lt();return P(t,(function(t,n){var i={name:(t=G(t)?t:{name:t}).name,displayName:t.displayName,type:t.type};if(null==i.name)return i;i.name+="",null==i.displayName&&(i.displayName=i.name);var r=e.get(i.name);return r?i.name+="-"+r.count++:e.set(i.name,{count:1}),i}))}}function ep(t,e,n,i){if(e===Xh)for(var r=0;r<n.length&&r<i;r++)t(n[r]?n[r][0]:null,r);else{var a=n[0]||[];for(r=0;r<a.length&&r<i;r++)t(a[r],r)}}var np=function(){function t(t,e){var n=Zc(t)?t:$c(t);this._source=n;var i=this._data=n.data;n.sourceFormat===Gh&&(this._offset=0,this._dimSize=e,this._data=i),qc(this,i,n)}return t.prototype.getSource=function(){return this._source},t.prototype.count=function(){return 0},t.prototype.getItem=function(t,e){},t.prototype.appendData=function(t){},t.prototype.clean=function(){},t.protoInitialize=function(){var e=t.prototype;e.pure=!1,e.persistent=!0}(),t.internalField=function(){var t;qc=function(t,r,a){var o=a.sourceFormat,s=a.seriesLayoutBy,l=a.startIndex,u=a.dimensionsDefine,h=Xc[pp(o,s)];if(M(t,h),o===Gh)t.getItem=e,t.count=i,t.fillStorage=n;else{var c=ap(o,s);t.getItem=E(c,null,r,l,u);var p=lp(o,s);t.count=E(p,null,r,l,u)}};var e=function(t,e){t-=this._offset,e=e||[];for(var n=this._data,i=this._dimSize,r=i*t,a=0;a<i;a++)e[a]=n[r+a];return e},n=function(t,e,n,i){for(var r=this._data,a=this._dimSize,o=0;o<a;o++){for(var s=i[o],l=null==s[0]?1/0:s[0],u=null==s[1]?-1/0:s[1],h=e-t,c=n[o],p=0;p<h;p++){var f=r[p*a+o];c[t+p]=f,f<l&&(l=f),f>u&&(u=f)}s[0]=l,s[1]=u}},i=function(){return this._data?this._data.length/this._dimSize:0};function r(t){for(var e=0;e<t.length;e++)this._data.push(t[e])}(t={}).arrayRows_column={pure:!0,appendData:r},t.arrayRows_row={pure:!0,appendData:function(){throw new Error('Do not support appendData when set seriesLayoutBy: "row".')}},t.objectRows={pure:!0,appendData:r},t.keyedColumns={pure:!0,appendData:function(t){var e=this._data;L(t,(function(t,n){for(var i=e[n]||(e[n]=[]),r=0;r<(t||[]).length;r++)i.push(t[r])}))}},t.original={appendData:r},t.typedArray={persistent:!1,pure:!0,appendData:function(t){this._data=t},clean:function(){this._offset+=this.count(),this._data=null}},Xc=t}(),t}(),ip=function(t,e,n,i){return t[i]},rp=((Gc={}).arrayRows_column=function(t,e,n,i){return t[i+e]},Gc.arrayRows_row=function(t,e,n,i){i+=e;for(var r=[],a=t,o=0;o<a.length;o++){var s=a[o];r.push(s?s[i]:null)}return r},Gc.objectRows=ip,Gc.keyedColumns=function(t,e,n,i){for(var r=[],a=0;a<n.length;a++){var o=n[a].name;0;var s=t[o];r.push(s?s[i]:null)}return r},Gc.original=ip,Gc);function ap(t,e){var n=rp[pp(t,e)];return n}var op=function(t,e,n){return t.length},sp=((Uc={}).arrayRows_column=function(t,e,n){return Math.max(0,t.length-e)},Uc.arrayRows_row=function(t,e,n){var i=t[0];return i?Math.max(0,i.length-e):0},Uc.objectRows=op,Uc.keyedColumns=function(t,e,n){var i=n[0].name;var r=t[i];return r?r.length:0},Uc.original=op,Uc);function lp(t,e){var n=sp[pp(t,e)];return n}var up=function(t,e,n){return null!=e?t[e]:t},hp=((Yc={}).arrayRows=up,Yc.objectRows=function(t,e,n){return null!=e?t[n]:t},Yc.keyedColumns=up,Yc.original=function(t,e,n){var i=nr(t);return null!=e&&i instanceof Array?i[e]:i},Yc.typedArray=up,Yc);function cp(t){var e=hp[t];return e}function pp(t,e){return t===Vh?t+"_"+e:t}function fp(t,e,n){if(t){var i=t.getRawDataItem(e);if(null!=i){var r,a,o=t.getProvider().getSource().sourceFormat,s=t.getDimensionInfo(n);return s&&(r=s.name,a=s.index),cp(o)(i,a,r)}}}var dp=/\{@(.+?)\}/g,gp=function(){function t(){}return t.prototype.getDataParams=function(t,e){var n=this.getData(e),i=this.getRawValue(t,e),r=n.getRawIndex(t),a=n.getName(t),o=n.getRawDataItem(t),s=n.getItemVisual(t,"style"),l=s&&s[n.getItemVisual(t,"drawType")||"fill"],u=s&&s.stroke,h=this.mainType,c="series"===h,p=n.userOutput;return{componentType:h,componentSubType:this.subType,componentIndex:this.componentIndex,seriesType:c?this.subType:null,seriesIndex:this.seriesIndex,seriesId:c?this.id:null,seriesName:c?this.name:null,name:a,dataIndex:r,data:o,dataType:e,value:i,color:l,borderColor:u,dimensionNames:p?p.dimensionNames:null,encode:p?p.encode:null,$vars:["seriesName","name","value"]}},t.prototype.getFormattedLabel=function(t,e,n,i,r,a){e=e||"normal";var o=this.getData(n),s=this.getDataParams(t,n);(a&&(s.value=a.interpolatedValue),null!=i&&z(s.value)&&(s.value=s.value[i]),r)||(r=o.getItemModel(t).get("normal"===e?["label","formatter"]:[e,"label","formatter"]));return"function"==typeof r?(s.status=e,s.dimensionIndex=i,r(s)):"string"==typeof r?Mh(r,s).replace(dp,(function(e,n){var i=n.length,r="["===n.charAt(0)&&"]"===n.charAt(i-1)?+n.slice(1,i-1):n,s=fp(o,t,r);if(a&&z(a.interpolatedValue)){var l=o.getDimensionInfo(r);l&&(s=a.interpolatedValue[l.index])}return null!=s?s+"":""})):void 0},t.prototype.getRawValue=function(t,e){return fp(this.getData(e),t)},t.prototype.formatTooltip=function(t,e,n){},t}();function yp(t){return new vp(t)}var vp=function(){function t(t){t=t||{},this._reset=t.reset,this._plan=t.plan,this._count=t.count,this._onDirty=t.onDirty,this._dirty=!0}return t.prototype.perform=function(t){var e,n=this._upstream,i=t&&t.skip;if(this._dirty&&n){var r=this.context;r.data=r.outputData=n.context.outputData}this.__pipeline&&(this.__pipeline.currentTask=this),this._plan&&!i&&(e=this._plan(this.context));var a,o=h(this._modBy),s=this._modDataCount||0,l=h(t&&t.modBy),u=t&&t.modDataCount||0;function h(t){return!(t>=1)&&(t=1),t}o===l&&s===u||(e="reset"),(this._dirty||"reset"===e)&&(this._dirty=!1,a=this._doReset(i)),this._modBy=l,this._modDataCount=u;var c=t&&t.step;if(this._dueEnd=n?n._outputDueEnd:this._count?this._count(this.context):1/0,this._progress){var p=this._dueIndex,f=Math.min(null!=c?this._dueIndex+c:1/0,this._dueEnd);if(!i&&(a||p<f)){var d=this._progress;if(z(d))for(var g=0;g<d.length;g++)this._doProgress(d[g],p,f,l,u);else this._doProgress(d,p,f,l,u)}this._dueIndex=f;var y=null!=this._settedOutputEnd?this._settedOutputEnd:f;0,this._outputDueEnd=y}else this._dueIndex=this._outputDueEnd=null!=this._settedOutputEnd?this._settedOutputEnd:this._dueEnd;return this.unfinished()},t.prototype.dirty=function(){this._dirty=!0,this._onDirty&&this._onDirty(this.context)},t.prototype._doProgress=function(t,e,n,i,r){mp.reset(e,n,i,r),this._callingProgress=t,this._callingProgress({start:e,end:n,count:n-e,next:mp.next},this.context)},t.prototype._doReset=function(t){var e,n;this._dueIndex=this._outputDueEnd=this._dueEnd=0,this._settedOutputEnd=null,!t&&this._reset&&((e=this._reset(this.context))&&e.progress&&(n=e.forceFirstProgress,e=e.progress),z(e)&&!e.length&&(e=null)),this._progress=e,this._modBy=this._modDataCount=null;var i=this._downstream;return i&&i.dirty(),n},t.prototype.unfinished=function(){return this._progress&&this._dueIndex<this._dueEnd},t.prototype.pipe=function(t){(this._downstream!==t||this._dirty)&&(this._downstream=t,t._upstream=this,t.dirty())},t.prototype.dispose=function(){this._disposed||(this._upstream&&(this._upstream._downstream=null),this._downstream&&(this._downstream._upstream=null),this._dirty=!1,this._disposed=!0)},t.prototype.getUpstream=function(){return this._upstream},t.prototype.getDownstream=function(){return this._downstream},t.prototype.setOutputEnd=function(t){this._outputDueEnd=this._settedOutputEnd=t},t}(),mp=function(){var t,e,n,i,r,a={reset:function(l,u,h,c){e=l,t=u,n=h,i=c,r=Math.ceil(i/n),a.next=n>1&&i>0?s:o}};return a;function o(){return e<t?e++:null}function s(){var a=e%r*n+Math.ceil(e/r),o=e>=t?null:a<i?a:e;return e++,o}}();function _p(t,e){var n=e&&e.type;if("ordinal"===n){var i=e&&e.ordinalMeta;return i?i.parseAndCollect(t):t}return"time"===n&&"number"!=typeof t&&null!=t&&"-"!==t&&(t=+Wi(t)),null==t||""===t?NaN:+t}lt({number:function(t){return parseFloat(t)},time:function(t){return+Wi(t)},trim:function(t){return"string"==typeof t?it(t):t}});var xp=function(){function t(){}return t.prototype.getRawData=function(){throw new Error("not supported")},t.prototype.getRawDataItem=function(t){throw new Error("not supported")},t.prototype.cloneRawData=function(){},t.prototype.getDimensionInfo=function(t){},t.prototype.cloneAllDimensionInfo=function(){},t.prototype.count=function(){},t.prototype.retrieveValue=function(t,e){},t.prototype.retrieveValueFromItem=function(t,e){},t.prototype.convertValue=function(t,e){return _p(t,e)},t}();function bp(t){var e=t.sourceFormat;if(!Dp(e)){var n="";0,$i(n)}return t.data}function wp(t){var e=t.sourceFormat,n=t.data;if(!Dp(e)){var i="";0,$i(i)}if(e===Vh){for(var r=[],a=0,o=n.length;a<o;a++)r.push(n[a].slice());return r}if(e===Hh){for(r=[],a=0,o=n.length;a<o;a++)r.push(M({},n[a]));return r}}function Sp(t,e,n){if(null!=n)return"number"==typeof n||!isNaN(n)&&!ht(e,n)?t[n]:ht(e,n)?e[n]:void 0}function Mp(t){return w(t)}var Tp=lt();function Cp(t,e,n,i){var r="";e.length||$i(r),G(t)||$i(r);var a=t.type,o=Tp.get(a);o||$i(r);var s=P(e,(function(t){return function(t,e){var n=new xp,i=t.data,r=n.sourceFormat=t.sourceFormat,a=t.startIndex,o="";t.seriesLayoutBy!==Yh&&$i(o);var s=[],l={},u=t.dimensionsDefine;if(u)L(u,(function(t,e){var n=t.name,i={index:e,name:n,displayName:t.displayName};if(s.push(i),null!=n){var r="";ht(l,n)&&$i(r),l[n]=i}}));else for(var h=0;h<t.dimensionsDetectedCount;h++)s.push({index:h});var c=ap(r,Yh);e.__isBuiltIn&&(n.getRawDataItem=function(t){return c(i,a,s,t)},n.getRawData=E(bp,null,t)),n.cloneRawData=E(wp,null,t);var p=lp(r,Yh);n.count=E(p,null,i,a,s);var f=cp(r);n.retrieveValue=function(t,e){var n=c(i,a,s,t);return d(n,e)};var d=n.retrieveValueFromItem=function(t,e){if(null!=t){var n=s[e];return n?f(t,e,n.name):void 0}};return n.getDimensionInfo=E(Sp,null,s,l),n.cloneAllDimensionInfo=E(Mp,null,s),n}(t,o)})),l=Ji(o.transform({upstream:s[0],upstreamList:s,config:w(t.config)}));return P(l,(function(t,n){var i,r="";G(t)||$i(r),t.data||$i(r),Dp(Jc(t.data))||$i(r);var a=e[0];if(a&&0===n&&!t.dimensions){var o=a.startIndex;o&&(t.data=a.data.slice(0,o).concat(t.data)),i={seriesLayoutBy:Yh,sourceHeader:o,dimensions:a.metaRawOption.dimensions}}else i={seriesLayoutBy:Yh,sourceHeader:0,dimensions:t.dimensions};return Kc(t.data,i,null,null)}))}function Dp(t){return t===Vh||t===Hh}var Ip=function(){function t(t){this._sourceList=[],this._upstreamSignList=[],this._versionSignBase=0,this._sourceHost=t}return t.prototype.dirty=function(){this._setLocalSource([],[])},t.prototype._setLocalSource=function(t,e){this._sourceList=t,this._upstreamSignList=e,this._versionSignBase++,this._versionSignBase>9e10&&(this._versionSignBase=0)},t.prototype._getVersionSign=function(){return this._sourceHost.uid+"_"+this._versionSignBase},t.prototype.prepareSource=function(){this._isDirty()&&this._createSource()},t.prototype._createSource=function(){this._setLocalSource([],[]);var t,e,n=this._sourceHost,i=this._getUpstreamSourceManagers(),r=!!i.length;if(kp(n)){var a=n,o=void 0,s=void 0,l=void 0;if(r){var u=i[0];u.prepareSource(),o=(l=u.getSource()).data,s=l.sourceFormat,e=[u._getVersionSign()]}else s=Y(o=a.get("data",!0))?Gh:Fh,e=[];var h=this._getSourceMetaRawOption(),c=l?l.metaRawOption:null;t=[Kc(o,{seriesLayoutBy:Q(h.seriesLayoutBy,c?c.seriesLayoutBy:null),sourceHeader:Q(h.sourceHeader,c?c.sourceHeader:null),dimensions:Q(h.dimensions,c?c.dimensions:null)},s,a.get("encode",!0))]}else{var p=n;if(r){var f=this._applyTransform(i);t=f.sourceList,e=f.upstreamSignList}else{t=[Kc(p.get("source",!0),this._getSourceMetaRawOption(),null,null)],e=[]}}this._setLocalSource(t,e)},t.prototype._applyTransform=function(t){var e,n=this._sourceHost,i=n.get("transform",!0),r=n.get("fromTransformResult",!0);if(null!=r){var a="";1!==t.length&&Lp(a)}var o,s=[],l=[];return L(t,(function(t){t.prepareSource();var e=t.getSource(r||0),n="";null==r||e||Lp(n),s.push(e),l.push(t._getVersionSign())})),i?e=function(t,e,n){var i=Ji(t),r=i.length,a="";r||$i(a);for(var o=0,s=r;o<s;o++)e=Cp(i[o],e),o!==s-1&&(e.length=Math.max(e.length,1));return e}(i,s,n.componentIndex):null!=r&&(e=[(o=s[0],new jc({data:o.data,sourceFormat:o.sourceFormat,seriesLayoutBy:o.seriesLayoutBy,dimensionsDefine:w(o.dimensionsDefine),startIndex:o.startIndex,dimensionsDetectedCount:o.dimensionsDetectedCount,encodeDefine:Qc(o.encodeDefine)}))]),{sourceList:e,upstreamSignList:l}},t.prototype._isDirty=function(){if(!this._sourceList.length)return!0;for(var t=this._getUpstreamSourceManagers(),e=0;e<t.length;e++){var n=t[e];if(n._isDirty()||this._upstreamSignList[e]!==n._getVersionSign())return!0}},t.prototype.getSource=function(t){return this._sourceList[t||0]},t.prototype._getUpstreamSourceManagers=function(){var t=this._sourceHost;if(kp(t)){var e=Jh(t);return e?[e.getSourceManager()]:[]}return P(function(t){return t.get("transform",!0)||t.get("fromTransformResult",!0)?dr(t.ecModel,"dataset",{index:t.get("fromDatasetIndex",!0),id:t.get("fromDatasetId",!0)},fr).models:[]}(t),(function(t){return t.getSourceManager()}))},t.prototype._getSourceMetaRawOption=function(){var t,e,n,i=this._sourceHost;if(kp(i))t=i.get("seriesLayoutBy",!0),e=i.get("sourceHeader",!0),n=i.get("dimensions",!0);else if(!this._getUpstreamSourceManagers().length){var r=i;t=r.get("seriesLayoutBy",!0),e=r.get("sourceHeader",!0),n=r.get("dimensions",!0)}return{seriesLayoutBy:t,sourceHeader:e,dimensions:n}},t}();function Ap(t){t.option.transform&&at(t.option.transform)}function kp(t){return"series"===t.mainType}function Lp(t){throw new Error(t)}function Pp(t,e){return e.type=t,e}function Op(t,e){return function(t,e){return e=e||"transparent",V(t)?t:G(t)&&t.colorStops&&(t.colorStops[0]||{}).color||e}(t.getData().getItemVisual(e,"style")[t.visualDrawType])}function Rp(t){var e,n,i,r,a=t.series,o=t.dataIndex,s=t.multipleSeries,l=a.getData(),u=l.mapDimensionsAll("defaultedTooltip"),h=u.length,c=a.getRawValue(o),p=z(c),f=Op(a,o);if(h>1||p&&!h){var d=function(t,e,n,i,r){var a=e.getData(),o=O(t,(function(t,e,n){var i=a.getDimensionInfo(n);return t||i&&!1!==i.tooltip&&null!=i.displayName}),!1),s=[],l=[],u=[];function h(t,e){var n=a.getDimensionInfo(e);n&&!1!==n.otherDims.tooltip&&(o?u.push(Pp("nameValue",{markerType:"subItem",markerColor:r,name:n.displayName,value:t,valueType:n.type})):(s.push(t),l.push(n.type)))}return i.length?L(i,(function(t){h(fp(a,n,t),t)})):L(t,h),{inlineValues:s,inlineValueTypes:l,blocks:u}}(c,a,o,u,f);e=d.inlineValues,n=d.inlineValueTypes,i=d.blocks,r=d.inlineValues[0]}else if(h){var g=l.getDimensionInfo(u[0]);r=e=fp(l,o,u[0]),n=g.type}else r=e=p?c[0]:c;var y=sr(a),v=y&&a.name||"",m=l.getName(o),_=s?v:m;return Pp("section",{header:v,noHeader:s||!y,sortParam:r,blocks:[Pp("nameValue",{markerType:"item",markerColor:f,name:_,noName:!it(_),value:e,valueType:n})].concat(i||[])})}var Np=hr();function Ep(t,e){return t.getName(e)||t.getId(e)}var Bp=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e._selectedDataIndicesMap={},e}return n(e,t),e.prototype.init=function(t,e,n){this.seriesIndex=this.componentIndex,this.dataTask=yp({count:Fp,reset:Vp}),this.dataTask.context={model:this},this.mergeDefaultAndTheme(t,n),(Np(this).sourceManager=new Ip(this)).prepareSource();var i=this.getInitialData(t,n);Wp(i,this),this.dataTask.context.data=i,Np(this).dataBeforeProcessed=i,zp(this),this._initSelectedMapFromData(i)},e.prototype.mergeDefaultAndTheme=function(t,e){var n=kh(this),i=n?Ph(t):{},r=this.subType;Rh.hasClass(r)&&(r+="Series"),S(t,e.getTheme().get(this.subType)),S(t,this.getDefaultOption()),tr(t,"label",["show"]),this.fillDataTextStyle(t.data),n&&Lh(t,i,n)},e.prototype.mergeOption=function(t,e){t=S(this.option,t,!0),this.fillDataTextStyle(t.data);var n=kh(this);n&&Lh(this.option,t,n);var i=Np(this).sourceManager;i.dirty(),i.prepareSource();var r=this.getInitialData(t,e);Wp(r,this),this.dataTask.dirty(),this.dataTask.context.data=r,Np(this).dataBeforeProcessed=r,zp(this),this._initSelectedMapFromData(r)},e.prototype.fillDataTextStyle=function(t){if(t&&!Y(t))for(var e=["show"],n=0;n<t.length;n++)t[n]&&t[n].label&&tr(t[n],"label",e)},e.prototype.getInitialData=function(t,e){},e.prototype.appendData=function(t){this.getRawData().appendData(t.data)},e.prototype.getData=function(t){var e=Up(this);if(e){var n=e.context.data;return null==t?n:n.getLinkedData(t)}return Np(this).data},e.prototype.getAllData=function(){var t=this.getData();return t&&t.getLinkedDataAll?t.getLinkedDataAll():[{data:t}]},e.prototype.setData=function(t){var e=Up(this);if(e){var n=e.context;n.outputData=t,e!==this.dataTask&&(n.data=t)}Np(this).data=t},e.prototype.getSource=function(){return Np(this).sourceManager.getSource()},e.prototype.getRawData=function(){return Np(this).dataBeforeProcessed},e.prototype.getBaseAxis=function(){var t=this.coordinateSystem;return t&&t.getBaseAxis&&t.getBaseAxis()},e.prototype.formatTooltip=function(t,e,n){return Rp({series:this,dataIndex:t,multipleSeries:e})},e.prototype.isAnimationEnabled=function(){if(o.node)return!1;var t=this.getShallow("animation");return t&&this.getData().count()>this.getShallow("animationThreshold")&&(t=!1),!!t},e.prototype.restoreData=function(){this.dataTask.dirty()},e.prototype.getColorFromPalette=function(t,e,n){var i=this.ecModel,r=lc.prototype.getColorFromPalette.call(this,t,e,n);return r||(r=i.getColorFromPalette(t,e,n)),r},e.prototype.coordDimToDataDim=function(t){return this.getRawData().mapDimensionsAll(t)},e.prototype.getProgressive=function(){return this.get("progressive")},e.prototype.getProgressiveThreshold=function(){return this.get("progressiveThreshold")},e.prototype.select=function(t,e){this._innerSelect(this.getData(e),t)},e.prototype.unselect=function(t,e){var n=this.option.selectedMap;if(n)for(var i=this.getData(e),r=0;r<t.length;r++){var a=Ep(i,t[r]);n[a]=!1,this._selectedDataIndicesMap[a]=-1}},e.prototype.toggleSelect=function(t,e){for(var n=[],i=0;i<t.length;i++)n[0]=t[i],this.isSelected(t[i],e)?this.unselect(n,e):this.select(n,e)},e.prototype.getSelectedDataIndices=function(){for(var t=this._selectedDataIndicesMap,e=N(t),n=[],i=0;i<e.length;i++){var r=t[e[i]];r>=0&&n.push(r)}return n},e.prototype.isSelected=function(t,e){var n=this.option.selectedMap;return n&&n[Ep(this.getData(e),t)]||!1},e.prototype._innerSelect=function(t,e){var n,i,r=this.option.selectedMode,a=e.length;if(r&&a)if("multiple"===r)for(var o=this.option.selectedMap||(this.option.selectedMap={}),s=0;s<a;s++){var l=e[s];o[h=Ep(t,l)]=!0,this._selectedDataIndicesMap[h]=t.getRawIndex(l)}else if("single"===r||!0===r){var u=e[a-1],h=Ep(t,u);this.option.selectedMap=((n={})[h]=!0,n),this._selectedDataIndicesMap=((i={})[h]=t.getRawIndex(u),i)}},e.prototype._initSelectedMapFromData=function(t){if(!this.option.selectedMap){var e=[];t.hasItemOption&&t.each((function(n){var i=t.getRawDataItem(n);"object"==typeof i&&i.selected&&e.push(n)})),e.length>0&&this._innerSelect(t,e)}},e.registerClass=function(t){return Rh.registerClass(t)},e.protoInitialize=function(){var t=e.prototype;t.type="series.__base__",t.seriesIndex=0,t.useColorPaletteOnData=!1,t.ignoreStyleOnData=!1,t.hasSymbolVisual=!1,t.defaultSymbol="circle",t.visualStyleAccessPath="itemStyle",t.visualDrawType="fill"}(),e}(Rh);function zp(t){var e=t.name;sr(t)||(t.name=function(t){var e=t.getRawData(),n=e.mapDimensionsAll("seriesName"),i=[];return L(n,(function(t){var n=e.getDimensionInfo(t);n.displayName&&i.push(n.displayName)})),i.join(" ")}(t)||e)}function Fp(t){return t.model.getRawData().count()}function Vp(t){var e=t.model;return e.setData(e.getRawData().cloneShallow()),Hp}function Hp(t,e){e.outputData&&t.end>e.outputData.count()&&e.model.getRawData().cloneShallow(e.outputData)}function Wp(t,e){L(r(t.CHANGABLE_METHODS,t.DOWNSAMPLE_METHODS),(function(n){t.wrapMethod(n,B(Gp,e))}))}function Gp(t,e){var n=Up(t);return n&&n.setOutputEnd((e||this).count()),e}function Up(t){var e=(t.ecModel||{}).scheduler,n=e&&e.getPipeline(t.uid);if(n){var i=n.currentTask;if(i){var r=i.agentStubMap;r&&(i=r.get(t.uid))}return i}}A(Bp,gp),A(Bp,lc),wr(Bp,Rh);var Yp=function(){function t(){this.group=new Mi,this.uid=Ou("viewComponent")}return t.prototype.init=function(t,e){},t.prototype.render=function(t,e,n,i){},t.prototype.dispose=function(t,e){},t.prototype.updateView=function(t,e,n,i){},t.prototype.updateLayout=function(t,e,n,i){},t.prototype.updateVisual=function(t,e,n,i){},t.prototype.blurSeries=function(t,e){},t}();function Xp(){var t=hr();return function(e){var n=t(e),i=e.pipelineContext,r=!!n.large,a=!!n.progressiveRender,o=n.large=!(!i||!i.large),s=n.progressiveRender=!(!i||!i.progressiveRender);return!(r===o&&a===s)&&"reset"}}xr(Yp),Cr(Yp);var qp=hr(),jp=Xp(),Zp=function(){function t(){this.group=new Mi,this.uid=Ou("viewChart"),this.renderTask=yp({plan:Qp,reset:Jp}),this.renderTask.context={view:this}}return t.prototype.init=function(t,e){},t.prototype.render=function(t,e,n,i){},t.prototype.highlight=function(t,e,n,i){$p(t.getData(),i,"emphasis")},t.prototype.downplay=function(t,e,n,i){$p(t.getData(),i,"normal")},t.prototype.remove=function(t,e){this.group.removeAll()},t.prototype.dispose=function(t,e){},t.prototype.updateView=function(t,e,n,i){this.render(t,e,n,i)},t.prototype.updateLayout=function(t,e,n,i){this.render(t,e,n,i)},t.prototype.updateVisual=function(t,e,n,i){this.render(t,e,n,i)},t.markUpdateMethod=function(t,e){qp(t).updateMethod=e},t.protoInitialize=void(t.prototype.type="chart"),t}();function Kp(t,e,n){t&&("emphasis"===e?ms:_s)(t,n)}function $p(t,e,n){var i=ur(t,e),r=e&&null!=e.highlightKey?function(t){var e=jo[t];return null==e&&qo<=32&&(e=jo[t]=qo++),e}(e.highlightKey):null;null!=i?L(Ji(i),(function(e){Kp(t.getItemGraphicEl(e),n,r)})):t.eachItemGraphicEl((function(t){Kp(t,n,r)}))}function Qp(t){return jp(t.model)}function Jp(t){var e=t.model,n=t.ecModel,i=t.api,r=t.payload,a=e.pipelineContext.progressiveRender,o=t.view,s=r&&qp(r).updateMethod,l=a?"incrementalPrepareRender":s&&o[s]?s:"render";return"render"!==l&&o[l](e,n,i,r),tf[l]}xr(Zp),Cr(Zp);var tf={incrementalPrepareRender:{progress:function(t,e){e.view.incrementalRender(t,e.model,e.ecModel,e.api,e.payload)}},render:{forceFirstProgress:!0,progress:function(t,e){e.view.render(e.model,e.ecModel,e.api,e.payload)}}};function ef(t,e,n){var i,r,a,o,s,l=0,u=0,h=null;function c(){u=(new Date).getTime(),h=null,t.apply(a,o||[])}e=e||0;var p=function(){for(var t=[],p=0;p<arguments.length;p++)t[p]=arguments[p];i=(new Date).getTime(),a=this,o=t;var f=s||e,d=s||n;s=null,r=i-(d?l:u)-f,clearTimeout(h),d?h=setTimeout(c,f):r>=0?c():h=setTimeout(c,-r),l=i};return p.clear=function(){h&&(clearTimeout(h),h=null)},p.debounceNextCall=function(t){s=t},p}var nf=hr(),rf={itemStyle:Dr(Iu,!0),lineStyle:Dr(Tu,!0)},af={lineStyle:"stroke",itemStyle:"fill"};function of(t,e){var n=t.visualStyleMapper||rf[e];return n||(console.warn("Unkown style type '"+e+"'."),rf.itemStyle)}function sf(t,e){var n=t.visualDrawType||af[e];return n||(console.warn("Unkown style type '"+e+"'."),"fill")}var lf={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var n=t.getData(),i=t.visualStyleAccessPath||"itemStyle",r=t.getModel(i),a=of(t,i)(r),o=r.getShallow("decal");o&&(n.setVisual("decal",o),o.dirty=!0);var s=sf(t,i),l=a[s],u=F(l)?l:null;if(a[s]&&!u||(a[s]=t.getColorFromPalette(t.name,null,e.getSeriesCount()),n.setVisual("colorFromPalette",!0)),n.setVisual("style",a),n.setVisual("drawType",s),!e.isSeriesFiltered(t)&&u)return n.setVisual("colorFromPalette",!1),{dataEach:function(e,n){var i=t.getDataParams(n),r=M({},a);r[s]=u(i),e.setItemVisual(n,"style",r)}}}},uf=new Lu,hf={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){if(!t.ignoreStyleOnData&&!e.isSeriesFiltered(t)){var n=t.getData(),i=t.visualStyleAccessPath||"itemStyle",r=of(t,i),a=n.getVisual("drawType");return{dataEach:n.hasItemOption?function(t,e){var n=t.getRawDataItem(e);if(n&&n[i]){uf.option=n[i];var o=r(uf);M(t.ensureUniqueItemVisual(e,"style"),o),uf.option.decal&&(t.setItemVisual(e,"decal",uf.option.decal),uf.option.decal.dirty=!0),a in o&&t.setItemVisual(e,"colorFromPalette",!1)}}:null}}}},cf={performRawSeries:!0,overallReset:function(t){var e=lt();t.eachSeries((function(t){if(t.useColorPaletteOnData){var n=e.get(t.type);n||(n={},e.set(t.type,n)),nf(t).scope=n}})),t.eachSeries((function(e){if(e.useColorPaletteOnData&&!t.isSeriesFiltered(e)){var n=e.getRawData(),i={},r=e.getData(),a=nf(e).scope,o=e.visualStyleAccessPath||"itemStyle",s=sf(e,o);r.each((function(t){var e=r.getRawIndex(t);i[e]=t})),n.each((function(t){var o=i[t];if(r.getItemVisual(o,"colorFromPalette")){var l=r.ensureUniqueItemVisual(o,"style"),u=n.getName(t)||t+"",h=n.count();l[s]=e.getColorFromPalette(u,a,h)}}))}}))}},pf=Math.PI;var ff=function(){function t(t,e,n,i){this._stageTaskMap=lt(),this.ecInstance=t,this.api=e,n=this._dataProcessorHandlers=n.slice(),i=this._visualHandlers=i.slice(),this._allHandlers=n.concat(i)}return t.prototype.restoreData=function(t,e){t.restoreData(e),this._stageTaskMap.each((function(t){var e=t.overallTask;e&&e.dirty()}))},t.prototype.getPerformArgs=function(t,e){if(t.__pipeline){var n=this._pipelineMap.get(t.__pipeline.id),i=n.context,r=!e&&n.progressiveEnabled&&(!i||i.progressiveRender)&&t.__idxInPipeline>n.blockIndex?n.step:null,a=i&&i.modDataCount;return{step:r,modBy:null!=a?Math.ceil(a/r):null,modDataCount:a}}},t.prototype.getPipeline=function(t){return this._pipelineMap.get(t)},t.prototype.updateStreamModes=function(t,e){var n=this._pipelineMap.get(t.uid),i=t.getData().count(),r=n.progressiveEnabled&&e.incrementalPrepareRender&&i>=n.threshold,a=t.get("large")&&i>=t.get("largeThreshold"),o="mod"===t.get("progressiveChunkMode")?i:null;t.pipelineContext=n.context={progressiveRender:r,modDataCount:o,large:a}},t.prototype.restorePipelines=function(t){var e=this,n=e._pipelineMap=lt();t.eachSeries((function(t){var i=t.getProgressive(),r=t.uid;n.set(r,{id:r,head:null,tail:null,threshold:t.getProgressiveThreshold(),progressiveEnabled:i&&!(t.preventIncremental&&t.preventIncremental()),blockIndex:-1,step:Math.round(i||700),count:0}),e._pipe(t,t.dataTask)}))},t.prototype.prepareStageTasks=function(){var t=this._stageTaskMap,e=this.api.getModel(),n=this.api;L(this._allHandlers,(function(i){var r=t.get(i.uid)||t.set(i.uid,{}),a="";nt(!(i.reset&&i.overallReset),a),i.reset&&this._createSeriesStageTask(i,r,e,n),i.overallReset&&this._createOverallStageTask(i,r,e,n)}),this)},t.prototype.prepareView=function(t,e,n,i){var r=t.renderTask,a=r.context;a.model=e,a.ecModel=n,a.api=i,r.__block=!t.incrementalPrepareRender,this._pipe(e,r)},t.prototype.performDataProcessorTasks=function(t,e){this._performStageTasks(this._dataProcessorHandlers,t,e,{block:!0})},t.prototype.performVisualTasks=function(t,e,n){this._performStageTasks(this._visualHandlers,t,e,n)},t.prototype._performStageTasks=function(t,e,n,i){i=i||{};var r=!1,a=this;function o(t,e){return t.setDirty&&(!t.dirtyMap||t.dirtyMap.get(e.__pipeline.id))}L(t,(function(t,s){if(!i.visualType||i.visualType===t.visualType){var l=a._stageTaskMap.get(t.uid),u=l.seriesTaskMap,h=l.overallTask;if(h){var c,p=h.agentStubMap;p.each((function(t){o(i,t)&&(t.dirty(),c=!0)})),c&&h.dirty(),a.updatePayload(h,n);var f=a.getPerformArgs(h,i.block);p.each((function(t){t.perform(f)})),h.perform(f)&&(r=!0)}else u&&u.each((function(s,l){o(i,s)&&s.dirty();var u=a.getPerformArgs(s,i.block);u.skip=!t.performRawSeries&&e.isSeriesFiltered(s.context.model),a.updatePayload(s,n),s.perform(u)&&(r=!0)}))}})),this.unfinished=r||this.unfinished},t.prototype.performSeriesTasks=function(t){var e;t.eachSeries((function(t){e=t.dataTask.perform()||e})),this.unfinished=e||this.unfinished},t.prototype.plan=function(){this._pipelineMap.each((function(t){var e=t.tail;do{if(e.__block){t.blockIndex=e.__idxInPipeline;break}e=e.getUpstream()}while(e)}))},t.prototype.updatePayload=function(t,e){"remain"!==e&&(t.context.payload=e)},t.prototype._createSeriesStageTask=function(t,e,n,i){var r=this,a=e.seriesTaskMap,o=e.seriesTaskMap=lt(),s=t.seriesType,l=t.getTargetSeries;function u(e){var s=e.uid,l=o.set(s,a&&a.get(s)||yp({plan:mf,reset:_f,count:wf}));l.context={model:e,ecModel:n,api:i,useClearVisual:t.isVisual&&!t.isLayout,plan:t.plan,reset:t.reset,scheduler:r},r._pipe(e,l)}t.createOnAllSeries?n.eachRawSeries(u):s?n.eachRawSeriesByType(s,u):l&&l(n,i).each(u)},t.prototype._createOverallStageTask=function(t,e,n,i){var r=this,a=e.overallTask=e.overallTask||yp({reset:df});a.context={ecModel:n,api:i,overallReset:t.overallReset,scheduler:r};var o=a.agentStubMap,s=a.agentStubMap=lt(),l=t.seriesType,u=t.getTargetSeries,h=!0,c=!1,p="";function f(t){var e=t.uid,n=s.set(e,o&&o.get(e)||(c=!0,yp({reset:gf,onDirty:vf})));n.context={model:t,overallProgress:h},n.agent=a,n.__block=h,r._pipe(t,n)}nt(!t.createOnAllSeries,p),l?n.eachRawSeriesByType(l,f):u?u(n,i).each(f):(h=!1,L(n.getSeries(),f)),c&&a.dirty()},t.prototype._pipe=function(t,e){var n=t.uid,i=this._pipelineMap.get(n);!i.head&&(i.head=e),i.tail&&i.tail.pipe(e),i.tail=e,e.__idxInPipeline=i.count++,e.__pipeline=i},t.wrapStageHandler=function(t,e){return F(t)&&(t={overallReset:t,seriesType:Sf(t)}),t.uid=Ou("stageHandler"),e&&(t.visualType=e),t},t}();function df(t){t.overallReset(t.ecModel,t.api,t.payload)}function gf(t){return t.overallProgress&&yf}function yf(){this.agent.dirty(),this.getDownstream().dirty()}function vf(){this.agent&&this.agent.dirty()}function mf(t){return t.plan?t.plan(t.model,t.ecModel,t.api,t.payload):null}function _f(t){t.useClearVisual&&t.data.clearAllVisual();var e=t.resetDefines=Ji(t.reset(t.model,t.ecModel,t.api,t.payload));return e.length>1?P(e,(function(t,e){return bf(e)})):xf}var xf=bf(0);function bf(t){return function(e,n){var i=n.data,r=n.resetDefines[t];if(r&&r.dataEach)for(var a=e.start;a<e.end;a++)r.dataEach(i,a);else r&&r.progress&&r.progress(e,i)}}function wf(t){return t.data.count()}function Sf(t){Mf=null;try{t(Tf,Cf)}catch(t){}return Mf}var Mf,Tf={},Cf={};function Df(t,e){for(var n in e.prototype)t[n]=ct}Df(Tf,cc),Df(Cf,yc),Tf.eachSeriesByType=Tf.eachRawSeriesByType=function(t){Mf=t},Tf.eachComponent=function(t){"series"===t.mainType&&t.subType&&(Mf=t.subType)};var If=["#37A2DA","#32C5E9","#67E0E3","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#E062AE","#E690D1","#e7bcf3","#9d96f5","#8378EA","#96BFFF"],Af={color:If,colorLayer:[["#37A2DA","#ffd85c","#fd7b5f"],["#37A2DA","#67E0E3","#FFDB5C","#ff9f7f","#E062AE","#9d96f5"],["#37A2DA","#32C5E9","#9FE6B8","#FFDB5C","#ff9f7f","#fb7293","#e7bcf3","#8378EA","#96BFFF"],If]},kf="#B9B8CE",Lf="#100C2A",Pf=function(){return{axisLine:{lineStyle:{color:kf}},splitLine:{lineStyle:{color:"#484753"}},splitArea:{areaStyle:{color:["rgba(255,255,255,0.02)","rgba(255,255,255,0.05)"]}},minorSplitLine:{lineStyle:{color:"#20203B"}}}},Of=["#4992ff","#7cffb2","#fddd60","#ff6e76","#58d9f9","#05c091","#ff8a45","#8d48e3","#dd79ff"],Rf={darkMode:!0,color:Of,backgroundColor:Lf,axisPointer:{lineStyle:{color:"#817f91"},crossStyle:{color:"#817f91"},label:{color:"#fff"}},legend:{textStyle:{color:kf}},textStyle:{color:kf},title:{textStyle:{color:"#EEF1FA"},subtextStyle:{color:"#B9B8CE"}},toolbox:{iconStyle:{borderColor:kf}},dataZoom:{borderColor:"#71708A",textStyle:{color:kf},brushStyle:{color:"rgba(135,163,206,0.3)"},handleStyle:{color:"#353450",borderColor:"#C5CBE3"},moveHandleStyle:{color:"#B0B6C3",opacity:.3},fillerColor:"rgba(135,163,206,0.2)",emphasis:{handleStyle:{borderColor:"#91B7F2",color:"#4D587D"},moveHandleStyle:{color:"#636D9A",opacity:.7}},dataBackground:{lineStyle:{color:"#71708A",width:1},areaStyle:{color:"#71708A"}},selectedDataBackground:{lineStyle:{color:"#87A3CE"},areaStyle:{color:"#87A3CE"}}},visualMap:{textStyle:{color:kf}},timeline:{lineStyle:{color:kf},label:{color:kf},controlStyle:{color:kf,borderColor:kf}},calendar:{itemStyle:{color:Lf},dayLabel:{color:kf},monthLabel:{color:kf},yearLabel:{color:kf}},timeAxis:Pf(),logAxis:Pf(),valueAxis:Pf(),categoryAxis:Pf(),line:{symbol:"circle"},graph:{color:Of},gauge:{title:{color:kf},axisLine:{lineStyle:{color:[[1,"rgba(207,212,219,0.2)"]]}},axisLabel:{color:kf},detail:{color:"#EEF1FA"}},candlestick:{itemStyle:{color:"#f64e56",color0:"#54ea92",borderColor:"#f64e56",borderColor0:"#54ea92"}}};Rf.categoryAxis.splitLine.show=!1;var Nf=lt(),Ef=function(t,e,n){var i;if(z(e))i=e;else if(e.svg)i=[{type:"svg",source:e.svg,specialAreas:e.specialAreas}];else{var r=e.geoJson||e.geoJSON;r&&!e.features&&(n=e.specialAreas,e=r),i=[{type:"geoJSON",source:e,specialAreas:n}]}return L(i,(function(t){var e=t.type;"geoJson"===e&&(e=t.type="geoJSON");var n=zf[e];n(t)})),Nf.set(t,i)},Bf=function(t){return Nf.get(t)},zf={geoJSON:function(t){var e=t.source;t.geoJSON=V(e)?"undefined"!=typeof JSON&&JSON.parse?JSON.parse(e):new Function("return ("+e+");")():e},svg:function(t){t.svgXML=function(t){V(t)&&(t=(new DOMParser).parseFromString(t,"text/xml"));var e=t;for(9===e.nodeType&&(e=e.firstChild);"svg"!==e.nodeName.toLowerCase()||1!==e.nodeType;)e=e.nextSibling;return e}(t.source)}},Ff=function(){function t(){}return t.prototype.normalizeQuery=function(t){var e={},n={},i={};if(V(t)){var r=_r(t);e.mainType=r.main||null,e.subType=r.sub||null}else{var a=["Index","Name","Id"],o={name:1,dataIndex:1,dataType:1};L(t,(function(t,r){for(var s=!1,l=0;l<a.length;l++){var u=a[l],h=r.lastIndexOf(u);if(h>0&&h===r.length-u.length){var c=r.slice(0,h);"data"!==c&&(e.mainType=c,e[u.toLowerCase()]=t,s=!0)}}o.hasOwnProperty(r)&&(n[r]=t,s=!0),s||(i[r]=t)}))}return{cptQuery:e,dataQuery:n,otherQuery:i}},t.prototype.filter=function(t,e){var n=this.eventInfo;if(!n)return!0;var i=n.targetEl,r=n.packedEvent,a=n.model,o=n.view;if(!a||!o)return!0;var s=e.cptQuery,l=e.dataQuery;return u(s,a,"mainType")&&u(s,a,"subType")&&u(s,a,"index","componentIndex")&&u(s,a,"name")&&u(s,a,"id")&&u(l,r,"name")&&u(l,r,"dataIndex")&&u(l,r,"dataType")&&(!o.filterForExposedEvent||o.filterForExposedEvent(t,e.otherQuery,i,r));function u(t,e,n,i){return null==t[n]||e[i||n]===t[n]}},t.prototype.afterTrigger=function(){this.eventInfo=null},t}(),Vf={createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){var n=t.getData();if(t.legendSymbol&&n.setVisual("legendSymbol",t.legendSymbol),t.hasSymbolVisual){var i=t.get("symbol"),r=t.get("symbolSize"),a=t.get("symbolKeepAspect"),o=t.get("symbolRotate"),s=F(i),l=F(r),u=F(o),h=s||l||u,c=!s&&i?i:t.defaultSymbol,p=l?null:r,f=u?null:o;if(n.setVisual({legendSymbol:t.legendSymbol||c,symbol:c,symbolSize:p,symbolKeepAspect:a,symbolRotate:f}),!e.isSeriesFiltered(t))return{dataEach:h?function(e,n){var a=t.getRawValue(n),h=t.getDataParams(n);s&&e.setItemVisual(n,"symbol",i(a,h)),l&&e.setItemVisual(n,"symbolSize",r(a,h)),u&&e.setItemVisual(n,"symbolRotate",o(a,h))}:null}}}};var Hf=2*Math.PI,Wf=ro.CMD,Gf=["top","right","bottom","left"];function Uf(t,e,n,i,r){var a=n.width,o=n.height;switch(t){case"top":i.set(n.x+a/2,n.y-e),r.set(0,-1);break;case"bottom":i.set(n.x+a/2,n.y+o+e),r.set(0,1);break;case"left":i.set(n.x-e,n.y+o/2),r.set(-1,0);break;case"right":i.set(n.x+a+e,n.y+o/2),r.set(1,0)}}function Yf(t,e,n,i,r,a,o,s,l){o-=t,s-=e;var u=Math.sqrt(o*o+s*s),h=(o/=u)*n+t,c=(s/=u)*n+e;if(Math.abs(i-r)%Hf<1e-4)return l[0]=h,l[1]=c,u-n;if(a){var p=i;i=uo(r),r=uo(p)}else i=uo(i),r=uo(r);i>r&&(r+=Hf);var f=Math.atan2(s,o);if(f<0&&(f+=Hf),f>=i&&f<=r||f+Hf>=i&&f+Hf<=r)return l[0]=h,l[1]=c,u-n;var d=n*Math.cos(i)+t,g=n*Math.sin(i)+e,y=n*Math.cos(r)+t,v=n*Math.sin(r)+e,m=(d-o)*(d-o)+(g-s)*(g-s),_=(y-o)*(y-o)+(v-s)*(v-s);return m<_?(l[0]=d,l[1]=g,Math.sqrt(m)):(l[0]=y,l[1]=v,Math.sqrt(_))}function Xf(t,e,n,i,r,a,o,s){var l=r-t,u=a-e,h=n-t,c=i-e,p=Math.sqrt(h*h+c*c),f=(l*(h/=p)+u*(c/=p))/p;s&&(f=Math.min(Math.max(f,0),1)),f*=p;var d=o[0]=t+f*h,g=o[1]=e+f*c;return Math.sqrt((d-r)*(d-r)+(g-a)*(g-a))}function qf(t,e,n,i,r,a,o){n<0&&(t+=n,n=-n),i<0&&(e+=i,i=-i);var s=t+n,l=e+i,u=o[0]=Math.min(Math.max(r,t),s),h=o[1]=Math.min(Math.max(a,e),l);return Math.sqrt((u-r)*(u-r)+(h-a)*(h-a))}var jf=[];function Zf(t,e,n){var i=qf(e.x,e.y,e.width,e.height,t.x,t.y,jf);return n.set(jf[0],jf[1]),i}function Kf(t,e,n){for(var i,r,a=0,o=0,s=0,l=0,u=1/0,h=e.data,c=t.x,p=t.y,f=0;f<h.length;){var d=h[f++];1===f&&(s=a=h[f],l=o=h[f+1]);var g=u;switch(d){case Wf.M:a=s=h[f++],o=l=h[f++];break;case Wf.L:g=Xf(a,o,h[f],h[f+1],c,p,jf,!0),a=h[f++],o=h[f++];break;case Wf.C:g=ya(a,o,h[f++],h[f++],h[f++],h[f++],h[f],h[f+1],c,p,jf),a=h[f++],o=h[f++];break;case Wf.Q:g=wa(a,o,h[f++],h[f++],h[f],h[f+1],c,p,jf),a=h[f++],o=h[f++];break;case Wf.A:var y=h[f++],v=h[f++],m=h[f++],_=h[f++],x=h[f++],b=h[f++];f+=1;var w=!!(1-h[f++]);i=Math.cos(x)*m+y,r=Math.sin(x)*_+v,f<=1&&(s=i,l=r),g=Yf(y,v,_,x,x+b,w,(c-y)*_/m+y,p,jf),a=Math.cos(x+b)*m+y,o=Math.sin(x+b)*_+v;break;case Wf.R:g=qf(s=a=h[f++],l=o=h[f++],h[f++],h[f++],c,p,jf);break;case Wf.Z:g=Xf(a,o,s,l,c,p,jf,!0),a=s,o=l}g<u&&(u=g,n.set(jf[0],jf[1]))}return u}var $f=new pn,Qf=new pn,Jf=new pn,td=new pn,ed=new pn;function nd(t,e){if(t){var n=t.getTextGuideLine(),i=t.getTextContent();if(i&&n){var r=t.textGuideLineConfig||{},a=[[0,0],[0,0],[0,0]],o=r.candidates||Gf,s=i.getBoundingRect().clone();s.applyTransform(i.getComputedTransform());var l=1/0,u=r.anchor,h=t.getComputedTransform(),c=h&&pe([],h),p=e.get("length2")||0;u&&Jf.copy(u);for(var f=0;f<o.length;f++){Uf(o[f],0,s,$f,td),pn.scaleAndAdd(Qf,$f,td,p),Qf.transform(c);var d=t.getBoundingRect(),g=u?u.distance(Qf):t instanceof To?Kf(Qf,t.path,Jf):Zf(Qf,d,Jf);g<l&&(l=g,Qf.transform(h),Jf.transform(h),Jf.toArray(a[0]),Qf.toArray(a[1]),$f.toArray(a[2]))}ad(a,e.get("minTurnAngle")),n.setShape({points:a})}}}var id=[],rd=new pn;function ad(t,e){if(e<=180&&e>0){e=e/180*Math.PI,$f.fromArray(t[0]),Qf.fromArray(t[1]),Jf.fromArray(t[2]),pn.sub(td,$f,Qf),pn.sub(ed,Jf,Qf);var n=td.len(),i=ed.len();if(!(n<.001||i<.001)){td.scale(1/n),ed.scale(1/i);var r=td.dot(ed);if(Math.cos(e)<r){var a=Xf(Qf.x,Qf.y,Jf.x,Jf.y,$f.x,$f.y,id,!1);rd.fromArray(id),rd.scaleAndAdd(ed,a/Math.tan(Math.PI-e));var o=Jf.x!==Qf.x?(rd.x-Qf.x)/(Jf.x-Qf.x):(rd.y-Qf.y)/(Jf.y-Qf.y);if(isNaN(o))return;o<0?pn.copy(rd,Qf):o>1&&pn.copy(rd,Jf),rd.toArray(t[1])}}}}function od(t,e,n){if(n<=180&&n>0){n=n/180*Math.PI,$f.fromArray(t[0]),Qf.fromArray(t[1]),Jf.fromArray(t[2]),pn.sub(td,Qf,$f),pn.sub(ed,Jf,Qf);var i=td.len(),r=ed.len();if(!(i<.001||r<.001))if(td.scale(1/i),ed.scale(1/r),td.dot(e)<Math.cos(n)){var a=Xf(Qf.x,Qf.y,Jf.x,Jf.y,$f.x,$f.y,id,!1);rd.fromArray(id);var o=Math.PI/2,s=o+Math.acos(ed.dot(e))-n;if(s>=o)pn.copy(rd,Jf);else{rd.scaleAndAdd(ed,a/Math.tan(Math.PI/2-s));var l=Jf.x!==Qf.x?(rd.x-Qf.x)/(Jf.x-Qf.x):(rd.y-Qf.y)/(Jf.y-Qf.y);if(isNaN(l))return;l<0?pn.copy(rd,Qf):l>1&&pn.copy(rd,Jf)}rd.toArray(t[1])}}}function sd(t,e,n,i){var r="normal"===n,a=r?t:t.ensureState(n);a.ignore=e;var o=i.get("smooth");o&&!0===o&&(o=.3),a.shape=a.shape||{},o>0&&(a.shape.smooth=o);var s=i.getModel("lineStyle").getLineStyle();r?t.useStyle(s):a.style=s}function ld(t,e){var n=e.smooth,i=e.points;if(i)if(t.moveTo(i[0][0],i[0][1]),n>0&&i.length>=3){var r=Mt(i[0],i[1]),a=Mt(i[1],i[2]);if(!r||!a)return t.lineTo(i[1][0],i[1][1]),void t.lineTo(i[2][0],i[2][1]);var o=Math.min(r,a)*n,s=Dt([],i[1],i[0],o/r),l=Dt([],i[1],i[2],o/a),u=Dt([],s,l,.5);t.bezierCurveTo(s[0],s[1],s[0],s[1],u[0],u[1]),t.bezierCurveTo(l[0],l[1],l[0],l[1],i[2][0],i[2][1])}else for(var h=1;h<i.length;h++)t.lineTo(i[h][0],i[h][1])}function ud(t,e,n){var i=t.getTextGuideLine(),r=t.getTextContent();if(r){for(var a=e.normal,o=a.get("show"),s=r.ignore,l=0;l<$o.length;l++){var u=$o[l],h=e[u],c="normal"===u;if(h){var p=h.get("show");if((c?s:Q(r.states[u]&&r.states[u].ignore,s))||!Q(p,o)){var f=c?i:i&&i.states.normal;f&&(f.ignore=!0);continue}i||(i=new Sl,t.setTextGuideLine(i),c||!s&&o||sd(i,!0,"normal",e.normal),t.stateProxy&&(i.stateProxy=t.stateProxy)),sd(i,!1,u,h)}}if(i){T(i.style,n),i.style.fill=null;var d=a.get("showAbove");(t.textGuideLineConfig=t.textGuideLineConfig||{}).showAbove=d||!1,i.buildPath=ld}}else i&&t.removeTextGuideLine()}function hd(t,e){e=e||"labelLine";for(var n={normal:t.getModel(e)},i=0;i<Ko.length;i++){var r=Ko[i];n[r]=t.getModel([r,e])}return n}function cd(t,e,n,i,r,a){var o=t.length;if(!(o<2)){t.sort((function(t,n){return t.rect[e]-n.rect[e]}));for(var s,l=0,u=!1,h=0,c=0;c<o;c++){var p=t[c],f=p.rect;(s=f[e]-l)<0&&(f[e]-=s,p.label[e]-=s,u=!0),h+=Math.max(-s,0),l=f[e]+f[n]}h>0&&a&&x(-h/o,0,o);var d,g,y=t[0],v=t[o-1];return m(),d<0&&b(-d,.8),g<0&&b(g,.8),m(),_(d,g,1),_(g,d,-1),m(),d<0&&w(-d),g<0&&w(g),u}function m(){d=y.rect[e]-i,g=r-v.rect[e]-v.rect[n]}function _(t,e,n){if(t<0){var i=Math.min(e,-t);if(i>0){x(i*n,0,o);var r=i+t;r<0&&b(-r*n,1)}else b(-t*n,1)}}function x(n,i,r){0!==n&&(u=!0);for(var a=i;a<r;a++){var o=t[a];o.rect[e]+=n,o.label[e]+=n}}function b(i,r){for(var a=[],s=0,l=1;l<o;l++){var u=t[l-1].rect,h=Math.max(t[l].rect[e]-u[e]-u[n],0);a.push(h),s+=h}if(s){var c=Math.min(Math.abs(i)/s,r);if(i>0)for(l=0;l<o-1;l++){x(a[l]*c,0,l+1)}else for(l=o-1;l>0;l--){x(-(a[l-1]*c),l,o)}}}function w(t){var e=t<0?-1:1;t=Math.abs(t);for(var n=Math.ceil(t/(o-1)),i=0;i<o-1;i++)if(e>0?x(n,0,i+1):x(-n,o-i-1,o),(t-=n)<=0)return}}function pd(t,e,n,i){return cd(t,"y","height",e,n,i)}function fd(t){if(t){for(var e=[],n=0;n<t.length;n++)e.push(t[n].slice());return e}}function dd(t,e){var n=t.label,i=e&&e.getTextGuideLine();return{dataIndex:t.dataIndex,dataType:t.dataType,seriesIndex:t.seriesModel.seriesIndex,text:t.label.style.text,rect:t.hostRect,labelRect:t.rect,align:n.style.align,verticalAlign:n.style.verticalAlign,labelLinePoints:fd(i&&i.shape.points)}}var gd=["align","verticalAlign","width","height","fontSize"],yd=new be,vd=hr(),md=hr();function _d(t,e,n){for(var i=0;i<n.length;i++){var r=n[i];null!=e[r]&&(t[r]=e[r])}}var xd=["x","y","rotation"],bd=function(){function t(){this._labelList=[],this._chartViewList=[]}return t.prototype.clearLabels=function(){this._labelList=[],this._chartViewList=[]},t.prototype._addLabel=function(t,e,n,i,r){var a=i.style,o=i.__hostTarget.textConfig||{},s=i.getComputedTransform(),l=i.getBoundingRect().plain();bn.applyTransform(l,l,s),s?yd.setLocalTransform(s):(yd.x=yd.y=yd.rotation=yd.originX=yd.originY=0,yd.scaleX=yd.scaleY=1);var u,h=i.__hostTarget;if(h){u=h.getBoundingRect().plain();var c=h.getComputedTransform();bn.applyTransform(u,u,c)}var p=u&&h.getTextGuideLine();this._labelList.push({label:i,labelLine:p,seriesModel:n,dataIndex:t,dataType:e,layoutOption:r,computedLayoutOption:null,rect:l,hostRect:u,priority:u?u.width*u.height:0,defaultAttr:{ignore:i.ignore,labelGuideIgnore:p&&p.ignore,x:yd.x,y:yd.y,rotation:yd.rotation,style:{x:a.x,y:a.y,align:a.align,verticalAlign:a.verticalAlign,width:a.width,height:a.height,fontSize:a.fontSize},cursor:i.cursor,attachedPos:o.position,attachedRot:o.rotation}})},t.prototype.addLabelsOfSeries=function(t){var e=this;this._chartViewList.push(t);var n=t.__model,i=n.get("labelLayout");(F(i)||N(i).length)&&t.group.traverse((function(t){if(t.ignore)return!0;var r=t.getTextContent(),a=Xo(t);r&&!r.disableLabelLayout&&e._addLabel(a.dataIndex,a.dataType,n,r,i)}))},t.prototype.updateLayoutConfig=function(t){var e=t.getWidth(),n=t.getHeight();function i(t,e){return function(){nd(t,e)}}for(var r=0;r<this._labelList.length;r++){var a=this._labelList[r],o=a.label,s=o.__hostTarget,l=a.defaultAttr,u=void 0;u=(u="function"==typeof a.layoutOption?a.layoutOption(dd(a,s)):a.layoutOption)||{},a.computedLayoutOption=u;var h=Math.PI/180;s&&s.setTextConfig({local:!1,position:null!=u.x||null!=u.y?null:l.attachedPos,rotation:null!=u.rotate?u.rotate*h:l.attachedRot,offset:[u.dx||0,u.dy||0]});var c=!1;if(null!=u.x?(o.x=Ri(u.x,e),o.setStyle("x",0),c=!0):(o.x=l.x,o.setStyle("x",l.style.x)),null!=u.y?(o.y=Ri(u.y,n),o.setStyle("y",0),c=!0):(o.y=l.y,o.setStyle("y",l.style.y)),u.labelLinePoints){var p=s.getTextGuideLine();p&&(p.setShape({points:u.labelLinePoints}),c=!1)}vd(o).needsUpdateLabelLine=c,o.rotation=null!=u.rotate?u.rotate*h:l.rotation;for(var f=0;f<gd.length;f++){var d=gd[f];o.setStyle(d,null!=u[d]?u[d]:l.style[d])}if(u.draggable){if(o.draggable=!0,o.cursor="move",s){var g=a.seriesModel;if(null!=a.dataIndex)g=a.seriesModel.getData(a.dataType).getItemModel(a.dataIndex);o.on("drag",i(s,g.getModel("labelLine")))}}else o.off("drag"),o.cursor=l.cursor}},t.prototype.layout=function(t){var e,n=t.getWidth(),i=t.getHeight(),r=function(t){for(var e=[],n=0;n<t.length;n++){var i=t[n];if(!i.defaultAttr.ignore){var r=i.label,a=r.getComputedTransform(),o=r.getBoundingRect(),s=!a||a[1]<1e-5&&a[2]<1e-5,l=r.style.margin||0,u=o.clone();u.applyTransform(a),u.x-=l/2,u.y-=l/2,u.width+=l,u.height+=l;var h=s?new Hl(o,a):null;e.push({label:r,labelLine:i.labelLine,rect:u,localRect:o,obb:h,priority:i.priority,defaultAttr:i.defaultAttr,layoutOption:i.computedLayoutOption,axisAligned:s,transform:a})}}return e}(this._labelList),a=R(r,(function(t){return"shiftX"===t.layoutOption.moveOverlap})),o=R(r,(function(t){return"shiftY"===t.layoutOption.moveOverlap}));cd(a,"x","width",0,n,e),pd(o,0,i),function(t){var e=[];t.sort((function(t,e){return e.priority-t.priority}));var n=new bn(0,0,0,0);function i(t){if(!t.ignore){var e=t.ensureState("emphasis");null==e.ignore&&(e.ignore=!1)}t.ignore=!0}for(var r=0;r<t.length;r++){var a=t[r],o=a.axisAligned,s=a.localRect,l=a.transform,u=a.label,h=a.labelLine;n.copy(a.rect),n.width-=.1,n.height-=.1,n.x+=.05,n.y+=.05;for(var c=a.obb,p=!1,f=0;f<e.length;f++){var d=e[f];if(n.intersect(d.rect)){if(o&&d.axisAligned){p=!0;break}if(d.obb||(d.obb=new Hl(d.localRect,d.transform)),c||(c=new Hl(s,l)),c.intersect(d.obb)){p=!0;break}}}p?(i(u),h&&i(h)):(u.attr("ignore",a.defaultAttr.ignore),h&&h.attr("ignore",a.defaultAttr.labelGuideIgnore),e.push(a))}}(R(r,(function(t){return t.layoutOption.hideOverlap})))},t.prototype.processLabelsOverall=function(){var t=this;L(this._chartViewList,(function(e){var n=e.__model,i=e.ignoreLabelLineUpdate,r=n.isAnimationEnabled();e.group.traverse((function(e){if(e.ignore)return!0;var a=!i,o=e.getTextContent();!a&&o&&(a=vd(o).needsUpdateLabelLine),a&&t._updateLabelLine(e,n),r&&t._animateLabels(e,n)}))}))},t.prototype._updateLabelLine=function(t,e){var n=t.getTextContent(),i=Xo(t),r=i.dataIndex;if(n&&null!=r){var a=e.getData(i.dataType),o=a.getItemModel(r),s={},l=a.getItemVisual(r,"style"),u=a.getVisual("drawType");s.stroke=l[u];var h=o.getModel("labelLine");ud(t,hd(o),s),nd(t,h)}},t.prototype._animateLabels=function(t,e){var n=t.getTextContent(),i=t.getTextGuideLine();if(n&&!n.ignore&&!n.invisible&&!t.disableLabelAnimation&&!ou(t)){var r=(f=vd(n)).oldLayout,a=Xo(t),o=a.dataIndex,s={x:n.x,y:n.y,rotation:n.rotation},l=e.getData(a.dataType);if(r){n.attr(r);var u=t.prevStates;u&&(D(u,"select")>=0&&n.attr(f.oldLayoutSelect),D(u,"emphasis")>=0&&n.attr(f.oldLayoutEmphasis)),eu(n,s,e,o)}else if(n.attr(s),!_u(n).valueAnimation){var h=Q(n.style.opacity,1);n.style.opacity=0,nu(n,{style:{opacity:h}},e,o)}if(f.oldLayout=s,n.states.select){var c=f.oldLayoutSelect={};_d(c,s,xd),_d(c,n.states.select,xd)}if(n.states.emphasis){var p=f.oldLayoutEmphasis={};_d(p,s,xd),_d(p,n.states.emphasis,xd)}!function(t,e,n,i,r){var a=_u(t);if(a.valueAnimation){var o=a.defaultInterpolatedText,s=Q(a.interpolatedValue,a.prevValue),l=a.value;(null==s?nu:eu)(t,{},i,e,null,(function(i){var u=yr(n,a.precision,s,l,i);a.interpolatedValue=1===i?null:u;var h=hu({labelDataIndex:e,labelFetcher:r,defaultText:o?o(u):u+""},a.statesModels,u);uu(t,h)}))}}(n,o,l,e,e)}if(i&&!i.ignore&&!i.invisible){r=(f=md(i)).oldLayout;var f,d={points:i.shape.points};r?(i.attr({shape:r}),eu(i,{shape:d},e)):(i.setShape(d),i.style.strokePercent=0,nu(i,{style:{strokePercent:1}},e)),f.oldLayout=d}},t}();function wd(t,e,n,i,r){var a=t+e;n.isSilent(a)||i.eachComponent({mainType:"series",subType:"pie"},(function(t){for(var e=t.seriesIndex,i=r.selected,o=0;o<i.length;o++)if(i[o].seriesIndex===e){var s=t.getData(),l=ur(s,r.fromActionPayload);n.trigger(a,{type:a,seriesId:t.id,name:z(l)?s.getName(l[0]):s.getName(l),selected:M({},t.option.selectedMap)})}}))}function Sd(t,e,n){for(var i;t&&(!e(t)||(i=t,!n));)t=t.__hostTarget||t.parent;return i}var Md=Math.round(9*Math.random()),Td=function(){function t(){this._id="__ec_inner_"+Md++}return t.prototype.get=function(t){return this._guard(t)[this._id]},t.prototype.set=function(t,e){var n=this._guard(t);return"function"==typeof Object.defineProperty?Object.defineProperty(n,this._id,{value:e,enumerable:!1,configurable:!0}):n[this._id]=e,this},t.prototype.delete=function(t){return!!this.has(t)&&(delete this._guard(t)[this._id],!0)},t.prototype.has=function(t){return!!this._guard(t)[this._id]},t.prototype._guard=function(t){if(t!==Object(t))throw TypeError("Value of WeakMap is not a non-null object.");return t},t}(),Cd=To.extend({type:"triangle",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var n=e.cx,i=e.cy,r=e.width/2,a=e.height/2;t.moveTo(n,i-a),t.lineTo(n+r,i+a),t.lineTo(n-r,i+a),t.closePath()}}),Dd=To.extend({type:"diamond",shape:{cx:0,cy:0,width:0,height:0},buildPath:function(t,e){var n=e.cx,i=e.cy,r=e.width/2,a=e.height/2;t.moveTo(n,i-a),t.lineTo(n+r,i),t.lineTo(n,i+a),t.lineTo(n-r,i),t.closePath()}}),Id=To.extend({type:"pin",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var n=e.x,i=e.y,r=e.width/5*3,a=Math.max(r,e.height),o=r/2,s=o*o/(a-o),l=i-a+o+s,u=Math.asin(s/o),h=Math.cos(u)*o,c=Math.sin(u),p=Math.cos(u),f=.6*o,d=.7*o;t.moveTo(n-h,l+s),t.arc(n,l,o,Math.PI-u,2*Math.PI+u),t.bezierCurveTo(n+h-c*f,l+s+p*f,n,i-d,n,i),t.bezierCurveTo(n,i-d,n-h+c*f,l+s+p*f,n-h,l+s),t.closePath()}}),Ad=To.extend({type:"arrow",shape:{x:0,y:0,width:0,height:0},buildPath:function(t,e){var n=e.height,i=e.width,r=e.x,a=e.y,o=i/3*2;t.moveTo(r,a),t.lineTo(r+o,a+n),t.lineTo(r,a+n/4*3),t.lineTo(r-o,a+n),t.lineTo(r,a),t.closePath()}}),kd={line:function(t,e,n,i,r){r.x=t,r.y=e+i/2-1,r.width=n,r.height=2},rect:function(t,e,n,i,r){r.x=t,r.y=e,r.width=n,r.height=i},roundRect:function(t,e,n,i,r){r.x=t,r.y=e,r.width=n,r.height=i,r.r=Math.min(n,i)/4},square:function(t,e,n,i,r){var a=Math.min(n,i);r.x=t,r.y=e,r.width=a,r.height=a},circle:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.r=Math.min(n,i)/2},diamond:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.width=n,r.height=i},pin:function(t,e,n,i,r){r.x=t+n/2,r.y=e+i/2,r.width=n,r.height=i},arrow:function(t,e,n,i,r){r.x=t+n/2,r.y=e+i/2,r.width=n,r.height=i},triangle:function(t,e,n,i,r){r.cx=t+n/2,r.cy=e+i/2,r.width=n,r.height=i}},Ld={};L({line:No,rect:No,roundRect:No,square:No,circle:Qs,diamond:Dd,pin:Id,arrow:Ad,triangle:Cd},(function(t,e){Ld[e]=new t}));var Pd=To.extend({type:"symbol",shape:{symbolType:"",x:0,y:0,width:0,height:0},calculateTextPosition:function(t,e,n){var i=Pn(t,e,n),r=this.shape;return r&&"pin"===r.symbolType&&"inside"===e.position&&(i.y=n.y+.4*n.height),i},buildPath:function(t,e,n){var i=e.symbolType;if("none"!==i){var r=Ld[i];r||(r=Ld[i="rect"]),kd[i](e.x,e.y,e.width,e.height,r.shape),r.buildPath(t,r.shape,n)}}});function Od(t,e){if("image"!==this.type){var n=this.style;this.__isEmptyBrush?(n.stroke=t,n.fill=e||"#fff",n.lineWidth=2):n.fill=t,this.markRedraw()}}function Rd(t,e,n,i,r,a,o){var s,l=0===t.indexOf("empty");return l&&(t=t.substr(5,1).toLowerCase()+t.substr(6)),(s=0===t.indexOf("image://")?Kl(t.slice(8),new bn(e,n,i,r),o?"center":"cover"):0===t.indexOf("path://")?Zl(t.slice(7),{},new bn(e,n,i,r),o?"center":"cover"):new Pd({shape:{symbolType:t,x:e,y:n,width:i,height:r}})).__isEmptyBrush=l,s.setColor=Od,a&&s.setColor(a),s}function Nd(t,e,n){for(var i="radial"===e.type?function(t,e,n){var i=n.width,r=n.height,a=Math.min(i,r),o=null==e.x?.5:e.x,s=null==e.y?.5:e.y,l=null==e.r?.5:e.r;return e.global||(o=o*i+n.x,s=s*r+n.y,l*=a),t.createRadialGradient(o,s,0,o,s,l)}(t,e,n):function(t,e,n){var i=null==e.x?0:e.x,r=null==e.x2?1:e.x2,a=null==e.y?0:e.y,o=null==e.y2?0:e.y2;return e.global||(i=i*n.width+n.x,r=r*n.width+n.x,a=a*n.height+n.y,o=o*n.height+n.y),i=isNaN(i)?0:i,r=isNaN(r)?1:r,a=isNaN(a)?0:a,o=isNaN(o)?0:o,t.createLinearGradient(i,a,r,o)}(t,e,n),r=e.colorStops,a=0;a<r.length;a++)i.addColorStop(r[a].offset,r[a].color);return i}function Ed(t,e){return t&&"solid"!==t&&e>0?(e=e||1,"dashed"===t?[4*e,2*e]:"dotted"===t?[e]:W(t)?[t]:z(t)?t:null):null}var Bd=new ro(!0);function zd(t){var e=t.stroke;return!(null==e||"none"===e||!(t.lineWidth>0))}function Fd(t){var e=t.fill;return null!=e&&"none"!==e}function Vd(t,e){if(null!=e.fillOpacity&&1!==e.fillOpacity){var n=t.globalAlpha;t.globalAlpha=e.fillOpacity*e.opacity,t.fill(),t.globalAlpha=n}else t.fill()}function Hd(t,e){if(null!=e.strokeOpacity&&1!==e.strokeOpacity){var n=t.globalAlpha;t.globalAlpha=e.strokeOpacity*e.opacity,t.stroke(),t.globalAlpha=n}else t.stroke()}function Wd(t,e,n){var i=Pr(e.image,e.__image,n);if(Rr(i)){var r=t.createPattern(i,e.repeat||"repeat");if("function"==typeof DOMMatrix){var a=new DOMMatrix;a.rotateSelf(0,0,(e.rotation||0)/Math.PI*180),a.scaleSelf(e.scaleX||1,e.scaleY||1),a.translateSelf(e.x||0,e.y||0),r.setTransform(a)}return r}}var Gd=["shadowBlur","shadowOffsetX","shadowOffsetY"],Ud=[["lineCap","butt"],["lineJoin","miter"],["miterLimit",10]];function Yd(t,e,n,i,r){var a=!1;if(!i&&e===(n=n||{}))return!1;(i||e.opacity!==n.opacity)&&(a||(jd(t,r),a=!0),t.globalAlpha=null==e.opacity?jr.opacity:e.opacity),(i||e.blend!==n.blend)&&(a||(jd(t,r),a=!0),t.globalCompositeOperation=e.blend||jr.blend);for(var o=0;o<Gd.length;o++){var s=Gd[o];(i||e[s]!==n[s])&&(a||(jd(t,r),a=!0),t[s]=t.dpr*(e[s]||0))}return(i||e.shadowColor!==n.shadowColor)&&(a||(jd(t,r),a=!0),t.shadowColor=e.shadowColor||jr.shadowColor),a}function Xd(t,e,n,i,r){var a=Zd(e,r.inHover),o=i?null:n&&Zd(n,r.inHover)||{};if(a===o)return!1;var s=Yd(t,a,o,i,r);if((i||a.fill!==o.fill)&&(s||(jd(t,r),s=!0),t.fillStyle=a.fill),(i||a.stroke!==o.stroke)&&(s||(jd(t,r),s=!0),t.strokeStyle=a.stroke),(i||a.opacity!==o.opacity)&&(s||(jd(t,r),s=!0),t.globalAlpha=null==a.opacity?1:a.opacity),e.hasStroke()){var l=a.lineWidth/(a.strokeNoScale&&e&&e.getLineScale?e.getLineScale():1);t.lineWidth!==l&&(s||(jd(t,r),s=!0),t.lineWidth=l)}for(var u=0;u<Ud.length;u++){var h=Ud[u],c=h[0];(i||a[c]!==o[c])&&(s||(jd(t,r),s=!0),t[c]=a[c]||h[1])}return s}function qd(t,e){var n=e.transform,i=t.dpr||1;n?t.setTransform(i*n[0],i*n[1],i*n[2],i*n[3],i*n[4],i*n[5]):t.setTransform(i,0,0,i,0,0)}function jd(t,e){e.batchFill&&t.fill(),e.batchStroke&&t.stroke(),e.batchFill="",e.batchStroke=""}function Zd(t,e){return e&&t.__hoverStyle||t.style}function Kd(t,e){$d(t,e,{inHover:!1,viewWidth:0,viewHeight:0},!0)}function $d(t,e,n,i){var r=e.transform;if(!e.shouldBePainted(n.viewWidth,n.viewHeight,!1,!1))return e.__dirty&=~Wn.REDARAW_BIT,void(e.__isRendered=!1);var a=e.__clipPaths,o=n.prevElClipPaths,s=!1,l=!1;if(o&&!function(t,e){if(t===e||!t&&!e)return!1;if(!t||!e||t.length!==e.length)return!0;for(var n=0;n<t.length;n++)if(t[n]!==e[n])return!0;return!1}(a,o)||(o&&o.length&&(jd(t,n),t.restore(),l=s=!0,n.prevElClipPaths=null,n.allClipped=!1,n.prevEl=null),a&&a.length&&(jd(t,n),t.save(),function(t,e,n){for(var i=!1,r=0;r<t.length;r++){var a=t[r];i=i||a.isZeroArea(),qd(e,a),e.beginPath(),a.buildPath(e,a.shape),e.clip()}n.allClipped=i}(a,t,n),s=!0),n.prevElClipPaths=a),n.allClipped)e.__isRendered=!1;else{e.beforeBrush&&e.beforeBrush(),e.innerBeforeBrush();var u=n.prevEl;u||(l=s=!0);var h,c,p=e instanceof To&&e.autoBatch&&function(t){var e=Fd(t),n=zd(t);return!(t.lineDash||!(+e^+n)||e&&"string"!=typeof t.fill||n&&"string"!=typeof t.stroke||t.strokePercent<1||t.strokeOpacity<1||t.fillOpacity<1)}(e.style);s||(h=r,c=u.transform,h&&c?h[0]!==c[0]||h[1]!==c[1]||h[2]!==c[2]||h[3]!==c[3]||h[4]!==c[4]||h[5]!==c[5]:h||c)?(jd(t,n),qd(t,e)):p||jd(t,n);var f=Zd(e,n.inHover);e instanceof To?(1!==n.lastDrawType&&(l=!0,n.lastDrawType=1),Xd(t,e,u,l,n),p&&(n.batchFill||n.batchStroke)||t.beginPath(),function(t,e,n,i){var r=zd(n),a=Fd(n),o=n.strokePercent,s=o<1,l=!e.path;e.silent&&!s||!l||e.createPathProxy();var u=e.path||Bd;if(!i){var h=n.fill,c=n.stroke,p=a&&!!h.colorStops,f=r&&!!c.colorStops,d=a&&!!h.image,g=r&&!!c.image,y=void 0,v=void 0,m=void 0,_=void 0,x=void 0;(p||f)&&(x=e.getBoundingRect()),p&&(y=e.__dirty?Nd(t,h,x):e.__canvasFillGradient,e.__canvasFillGradient=y),f&&(v=e.__dirty?Nd(t,c,x):e.__canvasStrokeGradient,e.__canvasStrokeGradient=v),d&&(m=e.__dirty||!e.__canvasFillPattern?Wd(t,h,e):e.__canvasFillPattern,e.__canvasFillPattern=m),g&&(_=e.__dirty||!e.__canvasStrokePattern?Wd(t,c,e):e.__canvasStrokePattern,e.__canvasStrokePattern=m),p?t.fillStyle=y:d&&(m?t.fillStyle=m:a=!1),f?t.strokeStyle=v:g&&(_?t.strokeStyle=_:r=!1)}var b=n.lineDash&&n.lineWidth>0&&Ed(n.lineDash,n.lineWidth),w=n.lineDashOffset,S=!!t.setLineDash,M=e.getGlobalScale();if(u.setScale(M[0],M[1],e.segmentIgnoreThreshold),b){var T=n.strokeNoScale&&e.getLineScale?e.getLineScale():1;T&&1!==T&&(b=P(b,(function(t){return t/T})),w/=T)}var C=!0;(l||e.__dirty&To.SHAPE_CHANGED_BIT||b&&!S&&r)&&(u.setDPR(t.dpr),s?u.setContext(null):(u.setContext(t),C=!1),u.reset(),b&&!S&&(u.setLineDash(b),u.setLineDashOffset(w)),e.buildPath(u,e.shape,i),u.toStatic(),e.pathUpdated()),C&&u.rebuildPath(t,s?o:1),b&&S&&(t.setLineDash(b),t.lineDashOffset=w),i||(n.strokeFirst?(r&&Hd(t,n),a&&Vd(t,n)):(a&&Vd(t,n),r&&Hd(t,n))),b&&S&&t.setLineDash([])}(t,e,f,p),p&&(n.batchFill=f.fill||"",n.batchStroke=f.stroke||"")):e instanceof Do?(3!==n.lastDrawType&&(l=!0,n.lastDrawType=3),Xd(t,e,u,l,n),function(t,e,n){var i=n.text;if(null!=i&&(i+=""),i){t.font=n.font||Sn,t.textAlign=n.textAlign,t.textBaseline=n.textBaseline;var r=void 0;if(t.setLineDash){var a=n.lineDash&&n.lineWidth>0&&Ed(n.lineDash,n.lineWidth),o=n.lineDashOffset;if(a){var s=n.strokeNoScale&&e.getLineScale?e.getLineScale():1;s&&1!==s&&(a=P(a,(function(t){return t/s})),o/=s),t.setLineDash(a),t.lineDashOffset=o,r=!0}}n.strokeFirst?(zd(n)&&t.strokeText(i,n.x,n.y),Fd(n)&&t.fillText(i,n.x,n.y)):(Fd(n)&&t.fillText(i,n.x,n.y),zd(n)&&t.strokeText(i,n.x,n.y)),r&&t.setLineDash([])}}(t,e,f)):e instanceof ko?(2!==n.lastDrawType&&(l=!0,n.lastDrawType=2),function(t,e,n,i,r){Yd(t,Zd(e,r.inHover),n&&Zd(n,r.inHover),i,r)}(t,e,u,l,n),function(t,e,n){var i=e.__image=Pr(n.image,e.__image,e,e.onload);if(i&&Rr(i)){var r=n.x||0,a=n.y||0,o=e.getWidth(),s=e.getHeight(),l=i.width/i.height;if(null==o&&null!=s?o=s*l:null==s&&null!=o?s=o/l:null==o&&null==s&&(o=i.width,s=i.height),n.sWidth&&n.sHeight){var u=n.sx||0,h=n.sy||0;t.drawImage(i,u,h,n.sWidth,n.sHeight,r,a,o,s)}else if(n.sx&&n.sy){var c=o-(u=n.sx),p=s-(h=n.sy);t.drawImage(i,u,h,c,p,r,a,o,s)}else t.drawImage(i,r,a,o,s)}}(t,e,f)):e instanceof Gl&&(4!==n.lastDrawType&&(l=!0,n.lastDrawType=4),function(t,e,n){var i=e.getDisplayables(),r=e.getTemporalDisplayables();t.save();var a,o,s={prevElClipPaths:null,prevEl:null,allClipped:!1,viewWidth:n.viewWidth,viewHeight:n.viewHeight,inHover:n.inHover};for(a=e.getCursor(),o=i.length;a<o;a++){(h=i[a]).beforeBrush&&h.beforeBrush(),h.innerBeforeBrush(),$d(t,h,s,a===o-1),h.innerAfterBrush(),h.afterBrush&&h.afterBrush(),s.prevEl=h}for(var l=0,u=r.length;l<u;l++){var h;(h=r[l]).beforeBrush&&h.beforeBrush(),h.innerBeforeBrush(),$d(t,h,s,l===u-1),h.innerAfterBrush(),h.afterBrush&&h.afterBrush(),s.prevEl=h}e.clearTemporalDisplayables(),e.notClear=!0,t.restore()}(t,e,n)),p&&i&&jd(t,n),e.innerAfterBrush(),e.afterBrush&&e.afterBrush(),n.prevEl=e,e.__dirty=0,e.__isRendered=!0}}var Qd=new Td,Jd=new Ce(100),tg=["symbol","symbolSize","symbolKeepAspect","color","backgroundColor","dashArrayX","dashArrayY","maxTileWidth","maxTileHeight"];function eg(t,e){if("none"===t)return null;var n=e.getDevicePixelRatio(),i=e.getZr(),r="svg"===i.painter.type;t.dirty&&Qd.delete(t);var a=Qd.get(t);if(a)return a;var o=T(t,{symbol:"rect",symbolSize:1,symbolKeepAspect:!0,color:"rgba(0, 0, 0, 0.2)",backgroundColor:null,dashArrayX:5,dashArrayY:5,rotation:0,maxTileWidth:512,maxTileHeight:512});"none"===o.backgroundColor&&(o.backgroundColor=null);var s={repeat:"repeat"};return function(t){for(var e,a=[n],s=!0,l=0;l<tg.length;++l){var u=o[tg[l]],h=typeof u;if(null!=u&&!z(u)&&"string"!==h&&"number"!==h&&"boolean"!==h){s=!1;break}a.push(u)}if(s){e=a.join(",")+(r?"-svg":"");var c=Jd.get(e);c&&(r?t.svgElement=c:t.image=c)}var p,f=ig(o.dashArrayX),d=function(t){if(!t||"object"==typeof t&&0===t.length)return[0,0];if("number"==typeof t){var e=Math.ceil(t);return[e,e]}var n=P(t,(function(t){return Math.ceil(t)}));return t.length%2?n.concat(n):n}(o.dashArrayY),g=ng(o.symbol),y=(b=f,P(b,(function(t){return rg(t)}))),v=rg(d),m=!r&&C(),_=r&&i.painter.createSVGElement("g"),x=function(){for(var t=1,e=0,n=y.length;e<n;++e)t=Zi(t,y[e]);var i=1;for(e=0,n=g.length;e<n;++e)i=Zi(i,g[e].length);t*=i;var r=v*y.length*g.length;return{width:Math.max(1,Math.min(t,o.maxTileWidth)),height:Math.max(1,Math.min(r,o.maxTileHeight))}}();var b;m&&(m.width=x.width*n,m.height=x.height*n,p=m.getContext("2d"));(function(){p&&(p.clearRect(0,0,m.width,m.height),o.backgroundColor&&(p.fillStyle=o.backgroundColor,p.fillRect(0,0,m.width,m.height)));for(var t=0,e=0;e<d.length;++e)t+=d[e];if(t<=0)return;var a=-v,s=0,l=0,u=0;for(;a<x.height;){if(s%2==0){for(var h=l/2%g.length,c=0,y=0,b=0;c<2*x.width;){var w=0;for(e=0;e<f[u].length;++e)w+=f[u][e];if(w<=0)break;if(y%2==0){var S=.5*(1-o.symbolSize),M=c+f[u][y]*S,T=a+d[s]*S,C=f[u][y]*o.symbolSize,D=d[s]*o.symbolSize,I=b/2%g[h].length;A(M,T,C,D,g[h][I])}c+=f[u][y],++b,++y===f[u].length&&(y=0)}++u===f.length&&(u=0)}a+=d[s],++l,++s===d.length&&(s=0)}function A(t,e,a,s,l){var u=r?1:n,h=Rd(l,t*u,e*u,a*u,s*u,o.color,o.symbolKeepAspect);r?_.appendChild(i.painter.paintOne(h)):Kd(p,h)}})(),s&&Jd.put(e,m||_);t.image=m,t.svgElement=_,t.svgWidth=x.width,t.svgHeight=x.height}(s),s.rotation=o.rotation,s.scaleX=s.scaleY=r?1:1/n,Qd.set(t,s),t.dirty=!1,s}function ng(t){if(!t||0===t.length)return[["rect"]];if("string"==typeof t)return[[t]];for(var e=!0,n=0;n<t.length;++n)if("string"!=typeof t[n]){e=!1;break}if(e)return ng([t]);var i=[];for(n=0;n<t.length;++n)"string"==typeof t[n]?i.push([t[n]]):i.push(t[n]);return i}function ig(t){if(!t||0===t.length)return[[0,0]];if("number"==typeof t)return[[r=Math.ceil(t),r]];for(var e=!0,n=0;n<t.length;++n)if("number"!=typeof t[n]){e=!1;break}if(e)return ig([t]);var i=[];for(n=0;n<t.length;++n)if("number"==typeof t[n]){var r=Math.ceil(t[n]);i.push([r,r])}else{(r=P(t[n],(function(t){return Math.ceil(t)}))).length%2==1?i.push(r.concat(r)):i.push(r)}return i}function rg(t){for(var e=0,n=0;n<t.length;++n)e+=t[n];return t.length%2==1?2*e:e}var ag=nt,og=L,sg=F,lg=G,ug=D,hg="undefined"!=typeof window,cg=2e3,pg=4500,fg={PROCESSOR:{FILTER:1e3,SERIES_FILTER:800,STATISTIC:5e3},VISUAL:{LAYOUT:1e3,PROGRESSIVE_LAYOUT:1100,GLOBAL:cg,CHART:3e3,POST_CHART_LAYOUT:4600,COMPONENT:4e3,BRUSH:5e3,CHART_ITEM:pg,ARIA:6e3,DECAL:7e3}},dg=/^[a-zA-Z0-9_]+$/,gg="__connectUpdateStatus";function yg(t){return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];if(!this.isDisposed())return mg(this,t,e);Yg(this.id)}}function vg(t){return function(){for(var e=[],n=0;n<arguments.length;n++)e[n]=arguments[n];return mg(this,t,e)}}function mg(t,e,n){return n[0]=n[0]&&n[0].toLowerCase(),Rt.prototype[e].apply(t,n)}var _g,xg,bg,wg,Sg,Mg,Tg,Cg,Dg,Ig,Ag,kg,Lg,Pg,Og,Rg,Ng,Eg,Bg,zg,Fg,Vg=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e}(Rt),Hg=Vg.prototype;Hg.on=vg("on"),Hg.off=vg("off");var Wg=function(t){function e(e,n,i){var r=t.call(this,new Ff)||this;r._chartsViews=[],r._chartsMap={},r._componentsViews=[],r._componentsMap={},r._pendingActions=[],i=i||{},"string"==typeof n&&(n=Jg[n]),r._dom=e;var a="canvas",o=!1,s=r._zr=Ai(e,{renderer:i.renderer||a,devicePixelRatio:i.devicePixelRatio,width:i.width,height:i.height,useDirtyRect:null==i.useDirtyRect?o:i.useDirtyRect});r._throttledZrFlush=ef(E(s.flush,s),17),(n=w(n))&&Hc(n,!0),r._theme=n,r._locale=function(t){if(V(t)){var e=Bu[t.toUpperCase()]||{};return t===Ru||t===Nu?w(e):S(w(e),w(Bu.EN),!1)}return S(w(t),w(Bu.EN),!1)}(i.locale||Fu),r._coordSysMgr=new mc;var l=r._api=Ng(r);function u(t,e){return t.__prio-e.__prio}return Qn(Qg,u),Qn(jg,u),r._scheduler=new ff(r,l,jg,Qg),r._messageCenter=new Vg,r._labelManager=new bd,r._initEvents(),r.resize=E(r.resize,r),s.animation.on("frame",r._onframe,r),Ig(s,r),Ag(s,r),at(r),r}return n(e,t),e.prototype._onframe=function(){if(!this._disposed){Fg(this);var t=this._scheduler;if(this.__optionUpdated){var e=this.__optionUpdated.silent;this.__flagInMainProcess=!0,_g(this),wg.update.call(this),this._zr.flush(),this.__flagInMainProcess=!1,this.__optionUpdated=!1,Cg.call(this,e),Dg.call(this,e)}else if(t.unfinished){var n=1,i=this._model,r=this._api;t.unfinished=!1;do{var a=+new Date;t.performSeriesTasks(i),t.performDataProcessorTasks(i),Mg(this,i),t.performVisualTasks(i),Og(this,this._model,r,"remain"),n-=+new Date-a}while(n>0&&t.unfinished);t.unfinished||this._zr.flush()}}},e.prototype.getDom=function(){return this._dom},e.prototype.getId=function(){return this.id},e.prototype.getZr=function(){return this._zr},e.prototype.setOption=function(t,e,n){if(this._disposed)Yg(this.id);else{var i,r,a;if(lg(e)&&(n=e.lazyUpdate,i=e.silent,r=e.replaceMerge,a=e.transition,e=e.notMerge),this.__flagInMainProcess=!0,!this._model||e){var o=new xc(this._api),s=this._theme,l=this._model=new cc;l.scheduler=this._scheduler,l.init(null,null,null,s,this._locale,o)}this._model.setOption(t,{replaceMerge:r},Zg),Bg(this,a),n?(this.__optionUpdated={silent:i},this.__flagInMainProcess=!1,this.getZr().wakeUp()):(_g(this),wg.update.call(this),this._zr.flush(),this.__optionUpdated=!1,this.__flagInMainProcess=!1,Cg.call(this,i),Dg.call(this,i))}},e.prototype.setTheme=function(){console.error("ECharts#setTheme() is DEPRECATED in ECharts 3.0")},e.prototype.getModel=function(){return this._model},e.prototype.getOption=function(){return this._model&&this._model.getOption()},e.prototype.getWidth=function(){return this._zr.getWidth()},e.prototype.getHeight=function(){return this._zr.getHeight()},e.prototype.getDevicePixelRatio=function(){return this._zr.painter.dpr||hg&&window.devicePixelRatio||1},e.prototype.getRenderedCanvas=function(t){if(o.canvasSupported)return(t=M({},t||{})).pixelRatio=t.pixelRatio||1,t.backgroundColor=t.backgroundColor||this._model.get("backgroundColor"),this._zr.painter.getRenderedCanvas(t)},e.prototype.getSvgDataURL=function(){if(o.svgSupported){var t=this._zr;return L(t.storage.getDisplayList(),(function(t){t.stopAnimation(null,!0)})),t.painter.toDataURL()}},e.prototype.getDataURL=function(t){if(!this._disposed){var e=(t=t||{}).excludeComponents,n=this._model,i=[],r=this;og(e,(function(t){n.eachComponent({mainType:t},(function(t){var e=r._componentsMap[t.__viewId];e.group.ignore||(i.push(e),e.group.ignore=!0)}))}));var a="svg"===this._zr.painter.getType()?this.getSvgDataURL():this.getRenderedCanvas(t).toDataURL("image/"+(t&&t.type||"png"));return og(i,(function(t){t.group.ignore=!1})),a}Yg(this.id)},e.prototype.getConnectedDataURL=function(t){if(this._disposed)Yg(this.id);else if(o.canvasSupported){var e="svg"===t.type,n=this.group,i=Math.min,r=Math.max,a=1/0;if(ny[n]){var s=a,l=a,u=-1/0,h=-1/0,c=[],p=t&&t.pixelRatio||1;L(ey,(function(a,o){if(a.group===n){var p=e?a.getZr().painter.getSvgDom().innerHTML:a.getRenderedCanvas(w(t)),f=a.getDom().getBoundingClientRect();s=i(f.left,s),l=i(f.top,l),u=r(f.right,u),h=r(f.bottom,h),c.push({dom:p,left:f.left,top:f.top})}}));var f=(u*=p)-(s*=p),d=(h*=p)-(l*=p),g=C(),y=Ai(g,{renderer:e?"svg":"canvas"});if(y.resize({width:f,height:d}),e){var v="";return og(c,(function(t){var e=t.left-s,n=t.top-l;v+='<g transform="translate('+e+","+n+')">'+t.dom+"</g>"})),y.painter.getSvgRoot().innerHTML=v,t.connectedBackgroundColor&&y.painter.setBackgroundColor(t.connectedBackgroundColor),y.refreshImmediately(),y.painter.toDataURL()}return t.connectedBackgroundColor&&y.add(new No({shape:{x:0,y:0,width:f,height:d},style:{fill:t.connectedBackgroundColor}})),og(c,(function(t){var e=new ko({style:{x:t.left*p-s,y:t.top*p-l,image:t.dom}});y.add(e)})),y.refreshImmediately(),g.toDataURL("image/"+(t&&t.type||"png"))}return this.getDataURL(t)}},e.prototype.convertToPixel=function(t,e){return Sg(this,"convertToPixel",t,e)},e.prototype.convertFromPixel=function(t,e){return Sg(this,"convertFromPixel",t,e)},e.prototype.containPixel=function(t,e){var n;if(!this._disposed)return L(pr(this._model,t),(function(t,i){i.indexOf("Models")>=0&&L(t,(function(t){var r=t.coordinateSystem;if(r&&r.containPoint)n=n||!!r.containPoint(e);else if("seriesModels"===i){var a=this._chartsMap[t.__viewId];a&&a.containPoint&&(n=n||a.containPoint(e,t))}else 0}),this)}),this),!!n;Yg(this.id)},e.prototype.getVisual=function(t,e){var n=pr(this._model,t,{defaultMainType:"series"}),i=n.seriesModel;var r=i.getData(),a=n.hasOwnProperty("dataIndexInside")?n.dataIndexInside:n.hasOwnProperty("dataIndex")?r.indexOfRawIndex(n.dataIndex):null;return null!=a?function(t,e,n){switch(n){case"color":return t.getItemVisual(e,"style")[t.getVisual("drawType")];case"opacity":return t.getItemVisual(e,"style").opacity;case"symbol":case"symbolSize":case"liftZ":return t.getItemVisual(e,n)}}(r,a,e):function(t,e){switch(e){case"color":return t.getVisual("style")[t.getVisual("drawType")];case"opacity":return t.getVisual("style").opacity;case"symbol":case"symbolSize":case"liftZ":return t.getVisual(e)}}(r,e)},e.prototype.getViewOfComponentModel=function(t){return this._componentsMap[t.__viewId]},e.prototype.getViewOfSeriesModel=function(t){return this._chartsMap[t.__viewId]},e.prototype._initEvents=function(){var t,e,n,i=this;og(Ug,(function(t){var e=function(e){var n,r=i.getModel(),a=e.target,o="globalout"===t;if(o?n={}:a&&Sd(a,(function(t){var e=Xo(t);if(e&&null!=e.dataIndex){var i=e.dataModel||r.getSeriesByIndex(e.seriesIndex);return n=i&&i.getDataParams(e.dataIndex,e.dataType)||{},!0}if(e.eventData)return n=M({},e.eventData),!0}),!0),n){var s=n.componentType,l=n.componentIndex;"markLine"!==s&&"markPoint"!==s&&"markArea"!==s||(s="series",l=n.seriesIndex);var u=s&&null!=l&&r.getComponent(s,l),h=u&&i["series"===u.mainType?"_chartsMap":"_componentsMap"][u.__viewId];0,n.event=e,n.type=t,i._$eventProcessor.eventInfo={targetEl:a,packedEvent:n,model:u,view:h},i.trigger(t,n)}};e.zrEventfulCallAtLast=!0,i._zr.on(t,e,i)})),og(qg,(function(t,e){i._messageCenter.on(e,(function(t){this.trigger(e,t)}),i)})),og(["selectchanged"],(function(t){i._messageCenter.on(t,(function(e){this.trigger(t,e)}),i)})),t=this._messageCenter,e=this,n=this._api,t.on("selectchanged",(function(t){var i=n.getModel();t.isFromClick?(wd("map","selectchanged",e,i,t),wd("pie","selectchanged",e,i,t)):"select"===t.fromAction?(wd("map","selected",e,i,t),wd("pie","selected",e,i,t)):"unselect"===t.fromAction&&(wd("map","unselected",e,i,t),wd("pie","unselected",e,i,t))}))},e.prototype.isDisposed=function(){return this._disposed},e.prototype.clear=function(){this._disposed?Yg(this.id):this.setOption({series:[]},!0)},e.prototype.dispose=function(){if(this._disposed)Yg(this.id);else{this._disposed=!0,gr(this.getDom(),ay,"");var t=this._api,e=this._model;og(this._componentsViews,(function(n){n.dispose(e,t)})),og(this._chartsViews,(function(n){n.dispose(e,t)})),this._zr.dispose(),delete ey[this.id]}},e.prototype.resize=function(t){if(this._disposed)Yg(this.id);else{this._zr.resize(t);var e=this._model;if(this._loadingFX&&this._loadingFX.resize(),e){var n=e.resetOption("media"),i=t&&t.silent;this.__flagInMainProcess=!0,n&&_g(this),wg.update.call(this,{type:"resize",animation:{duration:0}}),this.__flagInMainProcess=!1,Cg.call(this,i),Dg.call(this,i)}}},e.prototype.showLoading=function(t,e){if(this._disposed)Yg(this.id);else if(lg(t)&&(e=t,t=""),t=t||"default",this.hideLoading(),ty[t]){var n=ty[t](this._api,e),i=this._zr;this._loadingFX=n,i.add(n)}},e.prototype.hideLoading=function(){this._disposed?Yg(this.id):(this._loadingFX&&this._zr.remove(this._loadingFX),this._loadingFX=null)},e.prototype.makeActionFromEvent=function(t){var e=M({},t);return e.type=qg[t.type],e},e.prototype.dispatchAction=function(t,e){if(this._disposed)Yg(this.id);else if(lg(e)||(e={silent:!!e}),Xg[t.type]&&this._model)if(this.__flagInMainProcess)this._pendingActions.push(t);else{var n=e.silent;Tg.call(this,t,n);var i=e.flush;i?this._zr.flush():!1!==i&&o.browser.weChat&&this._throttledZrFlush(),Cg.call(this,n),Dg.call(this,n)}},e.prototype.updateLabelLayout=function(){var t=this._labelManager;t.updateLayoutConfig(this._api),t.layout(this._api),t.processLabelsOverall()},e.prototype.appendData=function(t){if(this._disposed)Yg(this.id);else{var e=t.seriesIndex,n=this.getModel().getSeriesByIndex(e);0,n.appendData(t),this._scheduler.unfinished=!0,this.getZr().wakeUp()}},e.internalField=function(){function t(t){for(var e=[],n=t.currentStates,i=0;i<n.length;i++){var r=n[i];"emphasis"!==r&&"blur"!==r&&"select"!==r&&e.push(r)}t.selected&&t.states.select&&e.push("select"),2===t.hoverState&&t.states.emphasis?e.push("emphasis"):1===t.hoverState&&t.states.blur&&e.push("blur"),t.useStates(e)}function e(t,e){if(!t.preventAutoZ){var n=t.get("z"),i=t.get("zlevel");e.group.traverse((function(t){if(!t.isGroup){null!=n&&(t.z=n),null!=i&&(t.zlevel=i);var e=t.getTextContent(),r=t.getTextGuideLine();if(e&&(e.z=t.z,e.zlevel=t.zlevel,e.z2=t.z2+2),r){var a=t.textGuideLineConfig&&t.textGuideLineConfig.showAbove;r.z=t.z,r.zlevel=t.zlevel,r.z2=t.z2+(a?1:-1)}}}))}}function i(t,e){e.group.traverse((function(t){if(!ou(t)){var e=t.getTextContent(),n=t.getTextGuideLine();t.stateTransition&&(t.stateTransition=null),e&&e.stateTransition&&(e.stateTransition=null),n&&n.stateTransition&&(n.stateTransition=null),t.hasState()?(t.prevStates=t.currentStates,t.clearStates()):t.prevStates&&(t.prevStates=null)}}))}function r(e,n){var i=e.getModel("stateAnimation"),r=e.isAnimationEnabled(),a=i.get("duration"),o=a>0?{duration:a,delay:i.get("delay"),easing:i.get("easing")}:null;n.group.traverse((function(e){if(e.states&&e.states.emphasis){if(ou(e))return;if(e instanceof To&&function(t){var e=Zo(t);e.normalFill=t.style.fill,e.normalStroke=t.style.stroke;var n=t.states.select||{};e.selectFill=n.style&&n.style.fill||null,e.selectStroke=n.style&&n.style.stroke||null}(e),e.__dirty){var n=e.prevStates;n&&e.useStates(n)}if(r){e.stateTransition=o;var i=e.getTextContent(),a=e.getTextGuideLine();i&&(i.stateTransition=o),a&&(a.stateTransition=o)}e.__dirty&&t(e)}}))}_g=function(t){var e=t._scheduler;e.restorePipelines(t._model),e.prepareStageTasks(),xg(t,!0),xg(t,!1),e.plan()},xg=function(t,e){for(var n=t._model,i=t._scheduler,r=e?t._componentsViews:t._chartsViews,a=e?t._componentsMap:t._chartsMap,o=t._zr,s=t._api,l=0;l<r.length;l++)r[l].__alive=!1;function u(t){var l=t.__requireNewView;t.__requireNewView=!1;var u="_ec_"+t.id+"_"+t.type,h=!l&&a[u];if(!h){var c=_r(t.type),p=e?Yp.getClass(c.main,c.sub):Zp.getClass(c.sub);0,(h=new p).init(n,s),a[u]=h,r.push(h),o.add(h.group)}t.__viewId=h.__id=u,h.__alive=!0,h.__model=t,h.group.__ecComponentInfo={mainType:t.mainType,index:t.componentIndex},!e&&i.prepareView(h,t,n,s)}e?n.eachComponent((function(t,e){"series"!==t&&u(e)})):n.eachSeries(u);for(l=0;l<r.length;){var h=r[l];h.__alive?l++:(!e&&h.renderTask.dispose(),o.remove(h.group),h.dispose(n,s),r.splice(l,1),a[h.__id]===h&&delete a[h.__id],h.__id=h.group.__ecComponentInfo=null)}},bg=function(t,e,n,i,r){var a=t._model;if(a.setUpdatePayload(n),i){var o={};o[i+"Id"]=n[i+"Id"],o[i+"Index"]=n[i+"Index"],o[i+"Name"]=n[i+"Name"];var s={mainType:i,query:o};r&&(s.subType=r);var l,u=n.excludeSeriesId;null!=u&&(l=lt(),og(Ji(u),(function(t){var e=or(t,null);null!=e&&l.set(e,!0)}))),a&&a.eachComponent(s,(function(e){l&&null!=l.get(e.id)||(Os(n)&&!n.notBlur?e instanceof Bp&&function(t,e,n){if(Os(e)){var i=e.type===Qo,r=t.seriesIndex,a=t.getData(e.dataType),o=ur(a,e);o=(z(o)?o[0]:o)||0;var s=a.getItemGraphicEl(o);if(!s)for(var l=a.count(),u=0;!s&&u<l;)s=a.getItemGraphicEl(u++);if(s){var h=Xo(s);Ms(r,h.focus,h.blurScope,n,i)}else{var c=t.get(["emphasis","focus"]),p=t.get(["emphasis","blurScope"]);null!=c&&Ms(r,c,p,n,i)}}}(e,n,t._api):Ps(n)&&e instanceof Bp&&(!function(t,e,n){if(Ps(e)){var i=e.dataType,r=ur(t.getData(i),e);z(r)||(r=[r]),t[e.type===ns?"toggleSelect":e.type===ts?"select":"unselect"](r,i)}}(e,n,t._api),Ts(e),zg(t)),h(t["series"===i?"_chartsMap":"_componentsMap"][e.__viewId]))}),t)}else og([].concat(t._componentsViews).concat(t._chartsViews),h);function h(i){i&&i.__alive&&i[e]&&i[e](i.__model,a,t._api,n)}},wg={prepareAndUpdate:function(t){_g(this),wg.update.call(this,t)},update:function(t){var e=this._model,n=this._api,i=this._zr,r=this._coordSysMgr,a=this._scheduler;if(e){e.setUpdatePayload(t),a.restoreData(e,t),a.performSeriesTasks(e),r.create(e,n),a.performDataProcessorTasks(e,t),Mg(this,e),r.update(e,n),kg(e),a.performVisualTasks(e,t),Lg(this,e,n,t);var s=e.get("backgroundColor")||"transparent",l=e.get("darkMode");if(o.canvasSupported)i.setBackgroundColor(s),null!=l&&"auto"!==l&&i.setDarkMode(l);else{var u=Fe(s);s=Xe(u,"rgb"),0===u[3]&&(s="transparent")}Rg(e,n)}},updateTransform:function(t){var e=this,n=this._model,i=this._api;if(n){n.setUpdatePayload(t);var r=[];n.eachComponent((function(a,o){if("series"!==a){var s=e.getViewOfComponentModel(o);if(s&&s.__alive)if(s.updateTransform){var l=s.updateTransform(o,n,i,t);l&&l.update&&r.push(s)}else r.push(s)}}));var a=lt();n.eachSeries((function(r){var o=e._chartsMap[r.__viewId];if(o.updateTransform){var s=o.updateTransform(r,n,i,t);s&&s.update&&a.set(r.uid,1)}else a.set(r.uid,1)})),kg(n),this._scheduler.performVisualTasks(n,t,{setDirty:!0,dirtyMap:a}),Og(this,n,i,t,a),Rg(n,this._api)}},updateView:function(t){var e=this._model;e&&(e.setUpdatePayload(t),Zp.markUpdateMethod(t,"updateView"),kg(e),this._scheduler.performVisualTasks(e,t,{setDirty:!0}),Lg(this,this._model,this._api,t),Rg(e,this._api))},updateVisual:function(t){var e=this,n=this._model;n&&(n.setUpdatePayload(t),n.eachSeries((function(t){t.getData().clearAllVisual()})),Zp.markUpdateMethod(t,"updateVisual"),kg(n),this._scheduler.performVisualTasks(n,t,{visualType:"visual",setDirty:!0}),n.eachComponent((function(i,r){if("series"!==i){var a=e.getViewOfComponentModel(r);a&&a.__alive&&a.updateVisual(r,n,e._api,t)}})),n.eachSeries((function(i){e._chartsMap[i.__viewId].updateVisual(i,n,e._api,t)})),Rg(n,this._api))},updateLayout:function(t){wg.update.call(this,t)}},Sg=function(t,e,n,i){if(t._disposed)Yg(t.id);else{for(var r,a=t._model,o=t._coordSysMgr.getCoordinateSystems(),s=pr(a,n),l=0;l<o.length;l++){var u=o[l];if(u[e]&&null!=(r=u[e](a,s,i)))return r}0}},Mg=function(t,e){var n=t._chartsMap,i=t._scheduler;e.eachSeries((function(t){i.updateStreamModes(t,n[t.__viewId])}))},Tg=function(t,e){var n=this,i=this.getModel(),r=t.type,a=t.escapeConnect,o=Xg[r],s=o.actionInfo,l=(s.update||"update").split(":"),u=l.pop(),h=null!=l[0]&&_r(l[0]);this.__flagInMainProcess=!0;var c=[t],p=!1;t.batch&&(p=!0,c=P(t.batch,(function(e){return(e=T(M({},e),t)).batch=null,e})));var f,d=[],g=Ps(t),y=Os(t)||g;if(og(c,(function(t){(f=(f=o.action(t,n._model,n._api))||M({},t)).type=s.event||f.type,d.push(f),y?(bg(n,u,t,"series"),zg(n)):h&&bg(n,u,t,h.main,h.sub)})),"none"===u||y||h||(this.__optionUpdated?(_g(this),wg.update.call(this,t),this.__optionUpdated=!1):wg[u].call(this,t)),f=p?{type:s.event||r,escapeConnect:a,batch:d}:d[0],this.__flagInMainProcess=!1,!e){var v=this._messageCenter;if(v.trigger(f.type,f),g){var m={type:"selectchanged",escapeConnect:a,selected:Cs(i),isFromClick:t.isFromClick||!1,fromAction:t.type,fromActionPayload:t};v.trigger(m.type,m)}}},Cg=function(t){for(var e=this._pendingActions;e.length;){var n=e.shift();Tg.call(this,n,t)}},Dg=function(t){!t&&this.trigger("updated")},Ig=function(t,e){t.on("rendered",(function(n){e.trigger("rendered",n),!t.animation.isFinished()||e.__optionUpdated||e._scheduler.unfinished||e._pendingActions.length||e.trigger("finished")}))},Ag=function(t,e){t.on("mouseover",(function(t){var n=Sd(t.target,Ls);if(n){var i=Xo(n);Ms(i.seriesIndex,i.focus,i.blurScope,e._api,!0),function(t,e){!Ss(t,e)&&!t.__highByOuter&&ds(t,ss)}(n,t),zg(e)}})).on("mouseout",(function(t){var n=Sd(t.target,Ls);if(n){var i=Xo(n);Ms(i.seriesIndex,i.focus,i.blurScope,e._api,!1),function(t,e){!Ss(t,e)&&!t.__highByOuter&&ds(t,ls)}(n,t),zg(e)}})).on("click",(function(t){var n=Sd(t.target,(function(t){return null!=Xo(t).dataIndex}),!0);if(n){var i=n.selected?"unselect":"select",r=Xo(n);e._api.dispatchAction({type:i,dataType:r.dataType,dataIndexInside:r.dataIndex,seriesIndex:r.seriesIndex,isFromClick:!0})}}))},kg=function(t){t.clearColorPalette(),t.eachSeries((function(t){t.clearColorPalette()}))},Lg=function(t,e,n,i){Pg(t,e,n,i),og(t._chartsViews,(function(t){t.__alive=!1})),Og(t,e,n,i),og(t._chartsViews,(function(t){t.__alive||t.remove(e,n)}))},Pg=function(t,n,a,o,s){og(s||t._componentsViews,(function(t){var s=t.__model;i(s,t),t.render(s,n,a,o),e(s,t),r(s,t)}))},Og=function(t,n,a,s,l){var u=t._scheduler,h=t._labelManager;h.clearLabels();var c=!1;n.eachSeries((function(e){var n=t._chartsMap[e.__viewId];n.__alive=!0;var r=n.renderTask;u.updatePayload(r,s),i(e,n),l&&l.get(e.uid)&&r.dirty(),r.perform(u.getPerformArgs(r))&&(c=!0),e.__transientTransitionOpt=null,n.group.silent=!!e.get("silent"),function(t,e){var n=t.get("blendMode")||null;0;e.group.traverse((function(t){t.isGroup||(t.style.blend=n),t.eachPendingDisplayable&&t.eachPendingDisplayable((function(t){t.style.blend=n}))}))}(e,n),Ts(e),h.addLabelsOfSeries(n)})),u.unfinished=c||u.unfinished,h.updateLayoutConfig(a),h.layout(a),h.processLabelsOverall(),n.eachSeries((function(n){var i=t._chartsMap[n.__viewId];e(n,i),r(n,i)})),function(t,e){var n=t._zr.storage,i=0;n.traverse((function(t){t.isGroup||i++})),i>e.get("hoverLayerThreshold")&&!o.node&&!o.worker&&e.eachSeries((function(e){if(!e.preventUsingHoverLayer){var n=t._chartsMap[e.__viewId];n.__alive&&n.group.traverse((function(t){t.states.emphasis&&(t.states.emphasis.hoverLayer=!0)}))}}))}(t,n)},Rg=function(t,e){og($g,(function(n){n(t,e)}))},zg=function(t){t.__needsUpdateStatus=!0,t.getZr().wakeUp()},Fg=function(e){e.__needsUpdateStatus&&(e.getZr().storage.traverse((function(e){ou(e)||t(e)})),e.__needsUpdateStatus=!1)},Ng=function(t){return new(function(e){function i(){return null!==e&&e.apply(this,arguments)||this}return n(i,e),i.prototype.getCoordinateSystems=function(){return t._coordSysMgr.getCoordinateSystems()},i.prototype.getComponentByElement=function(e){for(;e;){var n=e.__ecComponentInfo;if(null!=n)return t._model.getComponent(n.mainType,n.index);e=e.parent}},i.prototype.enterEmphasis=function(e,n){ms(e,n),zg(t)},i.prototype.leaveEmphasis=function(e,n){_s(e,n),zg(t)},i.prototype.enterBlur=function(e){!function(t){ds(t,us)}(e),zg(t)},i.prototype.leaveBlur=function(e){xs(e),zg(t)},i.prototype.enterSelect=function(e){bs(e),zg(t)},i.prototype.leaveSelect=function(e){ws(e),zg(t)},i.prototype.getModel=function(){return t.getModel()},i.prototype.getViewOfComponentModel=function(e){return t.getViewOfComponentModel(e)},i.prototype.getViewOfSeriesModel=function(e){return t.getViewOfSeriesModel(e)},i}(yc))(t)},Eg=function(t){function e(t,e){for(var n=0;n<t.length;n++){t[n][gg]=e}}og(qg,(function(n,i){t._messageCenter.on(i,(function(n){if(ny[t.group]&&0!==t[gg]){if(n&&n.escapeConnect)return;var i=t.makeActionFromEvent(n),r=[];og(ey,(function(e){e!==t&&e.group===t.group&&r.push(e)})),e(r,0),og(r,(function(t){1!==t[gg]&&t.dispatchAction(i)})),e(r,2)}}))}))},Bg=function(t,e){var n=t._model;L(Ji(e),(function(t){var e,i=t.from,r=t.to;null==r&&$i(e);var a={includeMainTypes:["series"],enableAll:!1,enableNone:!1},o=i?pr(n,i,a):null,s=pr(n,r,a).seriesModel;null==s&&(e=""),o&&o.seriesModel!==s&&(e=""),null!=e&&$i(e),s.__transientTransitionOpt={from:i?i.dimension:null,to:r.dimension,dividingMethod:t.dividingMethod}}))}}(),e}(Rt),Gg=Wg.prototype;Gg.on=yg("on"),Gg.off=yg("off"),Gg.one=function(t,e,n){var i=this;Ki(),this.on.call(this,t,(function n(){for(var r=[],a=0;a<arguments.length;a++)r[a]=arguments[a];e&&e.apply&&e.apply(this,r),i.off(t,n)}),n)};var Ug=["click","dblclick","mouseover","mouseout","mousemove","mousedown","mouseup","globalout","contextmenu"];function Yg(t){0}var Xg={},qg={},jg=[],Zg=[],Kg=[],$g=[],Qg=[],Jg={},ty={},ey={},ny={},iy=+new Date-0,ry=+new Date-0,ay="_echarts_instance_";function oy(t){ny[t]=!1}var sy=oy;function ly(t){return ey[function(t,e){return t.getAttribute?t.getAttribute(e):t[e]}(t,ay)]}function uy(t,e){Jg[t]=e}function hy(t){ug(Zg,t)<0&&Zg.push(t)}function cy(t,e){_y(jg,t,e,2e3)}function py(t){ug(Kg,t)<0&&t&&Kg.push(t)}function fy(t){ug($g,t)<0&&t&&$g.push(t)}function dy(t,e,n){"function"==typeof e&&(n=e,e="");var i=lg(t)?t.type:[t,t={event:e}][0];t.event=(t.event||i).toLowerCase(),e=t.event,qg[e]||(ag(dg.test(i)&&dg.test(e)),Xg[i]||(Xg[i]={action:n,actionInfo:t}),qg[e]=i)}function gy(t,e){mc.register(t,e)}function yy(t,e){_y(Qg,t,e,1e3,"layout")}function vy(t,e){_y(Qg,t,e,3e3,"visual")}var my=[];function _y(t,e,n,i,r){if((sg(e)||lg(e))&&(n=e,e=i),!(ug(my,n)>=0)){my.push(n);var a=ff.wrapStageHandler(n,r);a.__prio=e,a.__raw=n,t.push(a)}}function xy(t,e){ty[t]=e}function by(t,e,n){Ef(t,e,n)}var wy=function(t){var e=(t=w(t)).type,n="";e||$i(n);var i=e.split(":");2!==i.length&&$i(n);var r=!1;"echarts"===i[0]&&(e=i[1],r=!0),t.__isBuiltIn=r,Tp.set(e,t)};vy(cg,lf),vy(pg,hf),vy(pg,cf),vy(cg,Vf),vy(pg,{createOnAllSeries:!0,performRawSeries:!0,reset:function(t,e){if(t.hasSymbolVisual&&!e.isSeriesFiltered(t))return{dataEach:t.getData().hasItemOption?function(t,e){var n=t.getItemModel(e),i=n.getShallow("symbol",!0),r=n.getShallow("symbolSize",!0),a=n.getShallow("symbolRotate",!0),o=n.getShallow("symbolKeepAspect",!0);null!=i&&t.setItemVisual(e,"symbol",i),null!=r&&t.setItemVisual(e,"symbolSize",r),null!=a&&t.setItemVisual(e,"symbolRotate",a),null!=o&&t.setItemVisual(e,"symbolKeepAspect",o)}:null}}}),vy(7e3,(function(t,e){t.eachRawSeries((function(n){if(!t.isSeriesFiltered(n)){var i=n.getData();i.hasItemVisual()&&i.each((function(t){var n=i.getItemVisual(t,"decal");n&&(i.ensureUniqueItemVisual(t,"style").decal=eg(n,e))}));var r=i.getVisual("decal");if(r)i.getVisual("style").decal=eg(r,e)}}))})),hy(Hc),cy(900,(function(t){var e=lt();t.eachSeries((function(t){var n=t.get("stack");if(n){var i=e.get(n)||e.set(n,[]),r=t.getData(),a={stackResultDimension:r.getCalculationInfo("stackResultDimension"),stackedOverDimension:r.getCalculationInfo("stackedOverDimension"),stackedDimension:r.getCalculationInfo("stackedDimension"),stackedByDimension:r.getCalculationInfo("stackedByDimension"),isStackedByIndex:r.getCalculationInfo("isStackedByIndex"),data:r,seriesModel:t};if(!a.stackedDimension||!a.isStackedByIndex&&!a.stackedByDimension)return;i.length&&r.setCalculationInfo("stackedOnSeries",i[i.length-1].seriesModel),i.push(a)}})),e.each(Wc)})),xy("default",(function(t,e){T(e=e||{},{text:"loading",textColor:"#000",fontSize:12,fontWeight:"normal",fontStyle:"normal",fontFamily:"sans-serif",maskColor:"rgba(255, 255, 255, 0.8)",showSpinner:!0,color:"#5470c6",spinnerRadius:10,lineWidth:5,zlevel:0});var n=new Mi,i=new No({style:{fill:e.maskColor},zlevel:e.zlevel,z:1e4});n.add(i);var r,a=new zo({style:{text:e.text,fill:e.textColor,fontSize:e.fontSize,fontWeight:e.fontWeight,fontStyle:e.fontStyle,fontFamily:e.fontFamily}}),o=new No({style:{fill:"none"},textContent:a,textConfig:{position:"right",distance:10},zlevel:e.zlevel,z:10001});return n.add(o),e.showSpinner&&((r=new Pl({shape:{startAngle:-pf/2,endAngle:-pf/2+.1,r:e.spinnerRadius},style:{stroke:e.color,lineCap:"round",lineWidth:e.lineWidth},zlevel:e.zlevel,z:10001})).animateShape(!0).when(1e3,{endAngle:3*pf/2}).start("circularInOut"),r.animateShape(!0).when(1e3,{startAngle:3*pf/2}).delay(300).start("circularInOut"),n.add(r)),n.resize=function(){var n=a.getBoundingRect().width,s=e.showSpinner?e.spinnerRadius:0,l=(t.getWidth()-2*s-(e.showSpinner&&n?10:0)-n)/2-(e.showSpinner&&n?0:5+n/2)+(e.showSpinner?0:n/2)+(n?0:s),u=t.getHeight()/2;e.showSpinner&&r.setShape({cx:l,cy:u}),o.setShape({x:l-s,y:u-s,width:2*s,height:2*s}),i.setShape({x:0,y:0,width:t.getWidth(),height:t.getHeight()})},n.resize(),n})),dy({type:Qo,event:Qo,update:Qo},ct),dy({type:Jo,event:Jo,update:Jo},ct),dy({type:ts,event:ts,update:ts},ct),dy({type:es,event:es,update:es},ct),dy({type:ns,event:ns,update:ns},ct),uy("light",Af),uy("dark",Rf);var Sy=[],My={registerPreprocessor:hy,registerProcessor:cy,registerPostInit:py,registerPostUpdate:fy,registerAction:dy,registerCoordinateSystem:gy,registerLayout:yy,registerVisual:vy,registerTransform:wy,registerLoading:xy,registerMap:by,PRIORITY:fg,ComponentModel:Rh,ComponentView:Yp,SeriesModel:Bp,ChartView:Zp,registerComponentModel:function(t){Rh.registerClass(t)},registerComponentView:function(t){Yp.registerClass(t)},registerSeriesModel:function(t){Bp.registerClass(t)},registerChartView:function(t){Zp.registerClass(t)},registerSubTypeDefaulter:function(t,e){Rh.registerSubTypeDefaulter(t,e)},registerPainter:function(t,e){ki(t,e)}};function Ty(t){z(t)?L(t,(function(t){Ty(t)})):D(Sy,t)>=0||(Sy.push(t),F(t)&&(t={install:t}),t.install(My))}function Cy(t){return null==t?0:t.length||1}function Dy(t){return t}var Iy=function(){function t(t,e,n,i,r,a){this._old=t,this._new=e,this._oldKeyGetter=n||Dy,this._newKeyGetter=i||Dy,this.context=r,this._diffModeMultiple="multiple"===a}return t.prototype.add=function(t){return this._add=t,this},t.prototype.update=function(t){return this._update=t,this},t.prototype.updateManyToOne=function(t){return this._updateManyToOne=t,this},t.prototype.updateOneToMany=function(t){return this._updateOneToMany=t,this},t.prototype.remove=function(t){return this._remove=t,this},t.prototype.execute=function(){this[this._diffModeMultiple?"_executeMultiple":"_executeOneToOne"]()},t.prototype._executeOneToOne=function(){var t=this._old,e=this._new,n={},i=new Array(t.length),r=new Array(e.length);this._initIndexMap(t,null,i,"_oldKeyGetter"),this._initIndexMap(e,n,r,"_newKeyGetter");for(var a=0;a<t.length;a++){var o=i[a],s=n[o],l=Cy(s);if(l>1){var u=s.shift();1===s.length&&(n[o]=s[0]),this._update&&this._update(u,a)}else 1===l?(n[o]=null,this._update&&this._update(s,a)):this._remove&&this._remove(a)}this._performRestAdd(r,n)},t.prototype._executeMultiple=function(){var t=this._old,e=this._new,n={},i={},r=[],a=[];this._initIndexMap(t,n,r,"_oldKeyGetter"),this._initIndexMap(e,i,a,"_newKeyGetter");for(var o=0;o<r.length;o++){var s=r[o],l=n[s],u=i[s],h=Cy(l),c=Cy(u);if(h>1&&1===c)this._updateManyToOne&&this._updateManyToOne(u,l),i[s]=null;else if(1===h&&c>1)this._updateOneToMany&&this._updateOneToMany(u,l),i[s]=null;else if(1===h&&1===c)this._update&&this._update(u,l),i[s]=null;else if(h>1)for(var p=0;p<h;p++)this._remove&&this._remove(l[p]);else this._remove&&this._remove(l)}this._performRestAdd(a,i)},t.prototype._performRestAdd=function(t,e){for(var n=0;n<t.length;n++){var i=t[n],r=e[i],a=Cy(r);if(a>1)for(var o=0;o<a;o++)this._add&&this._add(r[o]);else 1===a&&this._add&&this._add(r);e[i]=null}},t.prototype._initIndexMap=function(t,e,n,i){for(var r=this._diffModeMultiple,a=0;a<t.length;a++){var o="_ec_"+this[i](t[a],a);if(r||(n[a]=o),e){var s=e[o],l=Cy(s);0===l?(e[o]=a,r&&n.push(o)):1===l?e[o]=[s,a]:s.push(a)}}},t}();function Ay(t,e){return t.hasOwnProperty(e)||(t[e]=[]),t[e]}var ky,Ly,Py,Oy,Ry,Ny,Ey,By,zy,Fy,Vy,Hy,Wy,Gy,Uy=function(t){this.otherDims={},null!=t&&M(this,t)},Yy=Math.floor,Xy=G,qy=P,jy="undefined",Zy={float:typeof Float64Array===jy?Array:Float64Array,int:typeof Int32Array===jy?Array:Int32Array,ordinal:Array,number:Array,time:Array},Ky=typeof Uint32Array===jy?Array:Uint32Array,$y=typeof Int32Array===jy?Array:Int32Array,Qy=typeof Uint16Array===jy?Array:Uint16Array,Jy=["hasItemOption","_nameList","_idList","_invertedIndicesMap","_rawData","_dimValueGetter","_count","_rawCount","_nameDimIdx","_idDimIdx","_nameRepeatCount"],tv=["_extent","_approximateExtent","_rawExtent"],ev=function(){function t(t,e){this.type="list",this._count=0,this._rawCount=0,this._storage={},this._storageArr=[],this._nameList=[],this._idList=[],this._visual={},this._layout={},this._itemVisuals=[],this._itemLayouts=[],this._graphicEls=[],this._rawExtent={},this._extent={},this._approximateExtent={},this._calculationInfo={},this.hasItemOption=!0,this.TRANSFERABLE_METHODS=["cloneShallow","downSample","lttbDownSample","map"],this.CHANGABLE_METHODS=["filterSelf","selectRange"],this.DOWNSAMPLE_METHODS=["downSample","lttbDownSample"],this.getRawIndex=Ry,t=t||["x","y"];for(var n={},i=[],r={},a=0;a<t.length;a++){var o=t[a],s=V(o)?new Uy({name:o}):o instanceof Uy?o:new Uy(o),l=s.name;s.type=s.type||"float",s.coordDim||(s.coordDim=l,s.coordDimIndex=0);var u=s.otherDims=s.otherDims||{};i.push(l),n[l]=s,s.index=a,s.createInvertedIndices&&(r[l]=[]),0===u.itemName&&(this._nameDimIdx=a,this._nameOrdinalMeta=s.ordinalMeta),0===u.itemId&&(this._idDimIdx=a,this._idOrdinalMeta=s.ordinalMeta)}this.dimensions=i,this._dimensionInfos=n,this.hostModel=e,this._dimensionsSummary=function(t){var e={},n=e.encode={},i=lt(),r=[],a=[],o=e.userOutput={dimensionNames:t.dimensions.slice(),encode:{}};L(t.dimensions,(function(e){var s,l=t.getDimensionInfo(e),u=l.coordDim;if(u){var h=l.coordDimIndex;Ay(n,u)[h]=e,l.isExtraCoord||(i.set(u,1),"ordinal"!==(s=l.type)&&"time"!==s&&(r[0]=e),Ay(o.encode,u)[h]=l.index),l.defaultTooltip&&a.push(e)}zh.each((function(t,e){var i=Ay(n,e),r=l.otherDims[e];null!=r&&!1!==r&&(i[r]=l.name)}))}));var s=[],l={};i.each((function(t,e){var i=n[e];l[e]=i[0],s=s.concat(i)})),e.dataDimsOnCoord=s,e.encodeFirstDimNotExtra=l;var u=n.label;u&&u.length&&(r=u.slice());var h=n.tooltip;return h&&h.length?a=h.slice():a.length||(a=r.slice()),n.defaultedLabel=r,n.defaultedTooltip=a,e}(this),this._invertedIndicesMap=r,this.userOutput=this._dimensionsSummary.userOutput}return t.prototype.getDimension=function(t){return"number"!=typeof t&&(isNaN(t)||this._dimensionInfos.hasOwnProperty(t))||(t=this.dimensions[t]),t},t.prototype.getDimensionInfo=function(t){return this._dimensionInfos[this.getDimension(t)]},t.prototype.getDimensionsOnCoord=function(){return this._dimensionsSummary.dataDimsOnCoord.slice()},t.prototype.mapDimension=function(t,e){var n=this._dimensionsSummary;if(null==e)return n.encodeFirstDimNotExtra[t];var i=n.encode[t];return i?i[e]:null},t.prototype.mapDimensionsAll=function(t){return(this._dimensionsSummary.encode[t]||[]).slice()},t.prototype.initData=function(t,e,n){var i=Zc(t)||k(t),r=i?new np(t,this.dimensions.length):t;this._rawData=r;var a=r.getSource().sourceFormat;this._storage={},this._indices=null,this._dontMakeIdFromName=null!=this._idDimIdx||a===Gh||!!r.fillStorage,this._nameList=(e||[]).slice(),this._idList=[],this._nameRepeatCount={},n||(this.hasItemOption=!1),this.defaultDimValueGetter=ky[a],this._dimValueGetter=n=n||this.defaultDimValueGetter,this._dimValueGetterArrayRows=ky.arrayRows,this._rawExtent={},this._initDataFromProvider(0,r.count()),r.pure&&(this.hasItemOption=!1)},t.prototype.getProvider=function(){return this._rawData},t.prototype.appendData=function(t){var e=this._rawData,n=this.count();e.appendData(t);var i=e.count();e.persistent||(i+=n),this._initDataFromProvider(n,i,!0)},t.prototype.appendValues=function(t,e){for(var n=this._storage,i=this.dimensions,r=i.length,a=this._rawExtent,o=this.count(),s=o+Math.max(t.length,e?e.length:0),l=0;l<r;l++){var u=i[l];a[u]||(a[u]=Hy()),Oy(n,this._dimensionInfos[u],s,!0)}for(var h=qy(i,(function(t){return a[t]})),c=this._storageArr=qy(i,(function(t){return n[t]})),p=[],f=o;f<s;f++){for(var d=f-o,g=0;g<r;g++){u=i[g];var y=this._dimValueGetterArrayRows(t[d]||p,u,d,g);c[g][f]=y;var v=h[g];y<v[0]&&(v[0]=y),y>v[1]&&(v[1]=y)}e&&(this._nameList[f]=e[d],this._dontMakeIdFromName||zy(this,f))}this._rawCount=this._count=s,this._extent={},Ly(this)},t.prototype._initDataFromProvider=function(t,e,n){if(!(t>=e)){for(var i=this._rawData,r=this._storage,a=this.dimensions,o=a.length,s=this._dimensionInfos,l=this._nameList,u=this._idList,h=this._rawExtent,c=i.getSource().sourceFormat===Fh,p=0;p<o;p++){var f=a[p];h[f]||(h[f]=Hy()),Oy(r,s[f],e,n)}var d=this._storageArr=qy(a,(function(t){return r[t]})),g=qy(a,(function(t){return h[t]}));if(i.fillStorage)i.fillStorage(t,e,d,g);else for(var y=[],v=t;v<e;v++){y=i.getItem(v,y);for(var m=0;m<o;m++){f=a[m];var _=d[m],x=this._dimValueGetter(y,f,v,m);_[v]=x;var b=g[m];x<b[0]&&(b[0]=x),x>b[1]&&(b[1]=x)}if(c&&!i.pure&&y){var w=y.name;null==l[v]&&null!=w&&(l[v]=or(w,null));var S=y.id;null==u[v]&&null!=S&&(u[v]=or(S,null))}this._dontMakeIdFromName||zy(this,v)}!i.persistent&&i.clean&&i.clean(),this._rawCount=this._count=e,this._extent={},Ly(this)}},t.prototype.count=function(){return this._count},t.prototype.getIndices=function(){var t,e=this._indices;if(e){var n=e.constructor,i=this._count;if(n===Array){t=new n(i);for(var r=0;r<i;r++)t[r]=e[r]}else t=new n(e.buffer,0,i)}else{t=new(n=Py(this))(this.count());for(r=0;r<t.length;r++)t[r]=r}return t},t.prototype.getByDimIdx=function(t,e){if(!(e>=0&&e<this._count))return NaN;var n=this._storageArr[t];return n?n[this.getRawIndex(e)]:NaN},t.prototype.get=function(t,e){if(!(e>=0&&e<this._count))return NaN;var n=this._storage[t];return n?n[this.getRawIndex(e)]:NaN},t.prototype.getByRawIndex=function(t,e){if(!(e>=0&&e<this._rawCount))return NaN;var n=this._storage[t];return n?n[e]:NaN},t.prototype.getValues=function(t,e){var n=[];z(t)||(e=t,t=this.dimensions);for(var i=0,r=t.length;i<r;i++)n.push(this.get(t[i],e));return n},t.prototype.hasValue=function(t){for(var e=this._dimensionsSummary.dataDimsOnCoord,n=0,i=e.length;n<i;n++)if(isNaN(this.get(e[n],t)))return!1;return!0},t.prototype.getDataExtent=function(t){t=this.getDimension(t);var e=this._storage[t],n=Hy();if(!e)return n;var i,r=this.count();if(!this._indices)return this._rawExtent[t].slice();if(i=this._extent[t])return i.slice();for(var a=(i=n)[0],o=i[1],s=0;s<r;s++){var l=e[this.getRawIndex(s)];l<a&&(a=l),l>o&&(o=l)}return i=[a,o],this._extent[t]=i,i},t.prototype.getApproximateExtent=function(t){return t=this.getDimension(t),this._approximateExtent[t]||this.getDataExtent(t)},t.prototype.setApproximateExtent=function(t,e){e=this.getDimension(e),this._approximateExtent[e]=t.slice()},t.prototype.getCalculationInfo=function(t){return this._calculationInfo[t]},t.prototype.setCalculationInfo=function(t,e){Xy(t)?M(this._calculationInfo,t):this._calculationInfo[t]=e},t.prototype.getSum=function(t){var e=0;if(this._storage[t])for(var n=0,i=this.count();n<i;n++){var r=this.get(t,n);isNaN(r)||(e+=r)}return e},t.prototype.getMedian=function(t){var e=[];this.each(t,(function(t){isNaN(t)||e.push(t)}));var n=e.sort((function(t,e){return t-e})),i=this.count();return 0===i?0:i%2==1?n[(i-1)/2]:(n[i/2]+n[i/2-1])/2},t.prototype.rawIndexOf=function(t,e){var n=t&&this._invertedIndicesMap[t];var i=n[e];return null==i||isNaN(i)?-1:i},t.prototype.indexOfName=function(t){for(var e=0,n=this.count();e<n;e++)if(this.getName(e)===t)return e;return-1},t.prototype.indexOfRawIndex=function(t){if(t>=this._rawCount||t<0)return-1;if(!this._indices)return t;var e=this._indices,n=e[t];if(null!=n&&n<this._count&&n===t)return t;for(var i=0,r=this._count-1;i<=r;){var a=(i+r)/2|0;if(e[a]<t)i=a+1;else{if(!(e[a]>t))return a;r=a-1}}return-1},t.prototype.indicesOfNearest=function(t,e,n){var i=this._storage[t],r=[];if(!i)return r;null==n&&(n=1/0);for(var a=1/0,o=-1,s=0,l=0,u=this.count();l<u;l++){var h=e-i[this.getRawIndex(l)],c=Math.abs(h);c<=n&&((c<a||c===a&&h>=0&&o<0)&&(a=c,o=h,s=0),h===o&&(r[s++]=l))}return r.length=s,r},t.prototype.getRawDataItem=function(t){if(this._rawData.persistent)return this._rawData.getItem(this.getRawIndex(t));for(var e=[],n=0;n<this.dimensions.length;n++){var i=this.dimensions[n];e.push(this.get(i,t))}return e},t.prototype.getName=function(t){var e=this.getRawIndex(t),n=this._nameList[e];return null==n&&null!=this._nameDimIdx&&(n=By(this,this._nameDimIdx,this._nameOrdinalMeta,e)),null==n&&(n=""),n},t.prototype.getId=function(t){return Ey(this,this.getRawIndex(t))},t.prototype.each=function(t,e,n,i){var r=this;if(this._count){"function"==typeof t&&(i=n,n=e,e=t,t=[]);var a=n||i||this,o=qy(Fy(t),this.getDimension,this);0;for(var s=o.length,l=qy(o,(function(t){return r._dimensionInfos[t].index})),u=this._storageArr,h=0,c=this.count();h<c;h++){var p=this.getRawIndex(h);switch(s){case 0:e.call(a,h);break;case 1:e.call(a,u[l[0]][p],h);break;case 2:e.call(a,u[l[0]][p],u[l[1]][p],h);break;default:for(var f=0,d=[];f<s;f++)d[f]=u[l[f]][p];d[f]=h,e.apply(a,d)}}}},t.prototype.filterSelf=function(t,e,n,i){var r=this;if(this._count){"function"==typeof t&&(i=n,n=e,e=t,t=[]);var a=n||i||this,o=qy(Fy(t),this.getDimension,this);0;for(var s=this.count(),l=new(Py(this))(s),u=[],h=o.length,c=0,p=qy(o,(function(t){return r._dimensionInfos[t].index})),f=p[0],d=this._storageArr,g=0;g<s;g++){var y=void 0,v=this.getRawIndex(g);if(0===h)y=e.call(a,g);else if(1===h){var m=d[f][v];y=e.call(a,m,g)}else{for(var _=0;_<h;_++)u[_]=d[p[_]][v];u[_]=g,y=e.apply(a,u)}y&&(l[c++]=v)}return c<s&&(this._indices=l),this._count=c,this._extent={},this.getRawIndex=this._indices?Ny:Ry,this}},t.prototype.selectRange=function(t){var e=this,n=this._count;if(n){var i=[];for(var r in t)t.hasOwnProperty(r)&&i.push(r);0;var a=i.length;if(a){var o=this.count(),s=new(Py(this))(o),l=0,u=i[0],h=qy(i,(function(t){return e._dimensionInfos[t].index})),c=t[u][0],p=t[u][1],f=this._storageArr,d=!1;if(!this._indices){var g=0;if(1===a){for(var y=f[h[0]],v=0;v<n;v++){((b=y[v])>=c&&b<=p||isNaN(b))&&(s[l++]=g),g++}d=!0}else if(2===a){y=f[h[0]];var m=f[h[1]],_=t[i[1]][0],x=t[i[1]][1];for(v=0;v<n;v++){var b=y[v],w=m[v];(b>=c&&b<=p||isNaN(b))&&(w>=_&&w<=x||isNaN(w))&&(s[l++]=g),g++}d=!0}}if(!d)if(1===a)for(v=0;v<o;v++){var S=this.getRawIndex(v);((b=f[h[0]][S])>=c&&b<=p||isNaN(b))&&(s[l++]=S)}else for(v=0;v<o;v++){for(var M=!0,T=(S=this.getRawIndex(v),0);T<a;T++){var C=i[T];((b=f[h[T]][S])<t[C][0]||b>t[C][1])&&(M=!1)}M&&(s[l++]=this.getRawIndex(v))}return l<o&&(this._indices=s),this._count=l,this._extent={},this.getRawIndex=this._indices?Ny:Ry,this}}},t.prototype.mapArray=function(t,e,n,i){"function"==typeof t&&(i=n,n=e,e=t,t=[]),n=n||i||this;var r=[];return this.each(t,(function(){r.push(e&&e.apply(this,arguments))}),n),r},t.prototype.map=function(t,e,n,i){var r=n||i||this,a=qy(Fy(t),this.getDimension,this);var o=Vy(this,a),s=o._storage;o._indices=this._indices,o.getRawIndex=o._indices?Ny:Ry;for(var l=[],u=a.length,h=this.count(),c=[],p=o._rawExtent,f=0;f<h;f++){for(var d=0;d<u;d++)c[d]=this.get(a[d],f);c[u]=f;var g=e&&e.apply(r,c);if(null!=g){"object"!=typeof g&&(l[0]=g,g=l);for(var y=this.getRawIndex(f),v=0;v<g.length;v++){var m=a[v],_=g[v],x=p[m],b=s[m];b&&(b[y]=_),_<x[0]&&(x[0]=_),_>x[1]&&(x[1]=_)}}}return o},t.prototype.downSample=function(t,e,n,i){for(var r=Vy(this,[t]),a=r._storage,o=[],s=Yy(1/e),l=a[t],u=this.count(),h=r._rawExtent[t],c=new(Py(this))(u),p=0,f=0;f<u;f+=s){s>u-f&&(s=u-f,o.length=s);for(var d=0;d<s;d++){var g=this.getRawIndex(f+d);o[d]=l[g]}var y=n(o),v=this.getRawIndex(Math.min(f+i(o,y)||0,u-1));l[v]=y,y<h[0]&&(h[0]=y),y>h[1]&&(h[1]=y),c[p++]=v}return r._count=p,r._indices=c,r.getRawIndex=Ny,r},t.prototype.lttbDownSample=function(t,e){var n,i,r,a=Vy(this,[]),o=a._storage[t],s=this.count(),l=new(Py(this))(s),u=0,h=Yy(1/e),c=this.getRawIndex(0);l[u++]=c;for(var p=1;p<s-1;p+=h){for(var f=Math.min(p+h,s-1),d=Math.min(p+2*h,s),g=(d+f)/2,y=0,v=f;v<d;v++){var m=o[S=this.getRawIndex(v)];isNaN(m)||(y+=m)}y/=d-f;var _=p,x=Math.min(p+h,s),b=p-1,w=o[c];n=-1,r=_;for(v=_;v<x;v++){var S;m=o[S=this.getRawIndex(v)];isNaN(m)||(i=Math.abs((b-g)*(m-w)-(b-v)*(y-w)))>n&&(n=i,r=S)}l[u++]=r,c=r}return l[u++]=this.getRawIndex(s-1),a._count=u,a._indices=l,a.getRawIndex=Ny,a},t.prototype.getItemModel=function(t){var e=this.hostModel,n=this.getRawDataItem(t);return new Lu(n,e,e&&e.ecModel)},t.prototype.diff=function(t){var e=this;return new Iy(t?t.getIndices():[],this.getIndices(),(function(e){return Ey(t,e)}),(function(t){return Ey(e,t)}))},t.prototype.getVisual=function(t){var e=this._visual;return e&&e[t]},t.prototype.setVisual=function(t,e){this._visual=this._visual||{},Xy(t)?M(this._visual,t):this._visual[t]=e},t.prototype.getItemVisual=function(t,e){var n=this._itemVisuals[t],i=n&&n[e];return null==i?this.getVisual(e):i},t.prototype.hasItemVisual=function(){return this._itemVisuals.length>0},t.prototype.ensureUniqueItemVisual=function(t,e){var n=this._itemVisuals,i=n[t];i||(i=n[t]={});var r=i[e];return null==r&&(z(r=this.getVisual(e))?r=r.slice():Xy(r)&&(r=M({},r)),i[e]=r),r},t.prototype.setItemVisual=function(t,e,n){var i=this._itemVisuals[t]||{};this._itemVisuals[t]=i,Xy(e)?M(i,e):i[e]=n},t.prototype.clearAllVisual=function(){this._visual={},this._itemVisuals=[]},t.prototype.setLayout=function(t,e){if(Xy(t))for(var n in t)t.hasOwnProperty(n)&&this.setLayout(n,t[n]);else this._layout[t]=e},t.prototype.getLayout=function(t){return this._layout[t]},t.prototype.getItemLayout=function(t){return this._itemLayouts[t]},t.prototype.setItemLayout=function(t,e,n){this._itemLayouts[t]=n?M(this._itemLayouts[t]||{},e):e},t.prototype.clearItemLayouts=function(){this._itemLayouts.length=0},t.prototype.setItemGraphicEl=function(t,e){var n=this.hostModel;if(e){var i=Xo(e);i.dataIndex=t,i.dataType=this.dataType,i.seriesIndex=n&&n.seriesIndex,"group"===e.type&&e.traverse(Wy,e)}this._graphicEls[t]=e},t.prototype.getItemGraphicEl=function(t){return this._graphicEls[t]},t.prototype.eachItemGraphicEl=function(t,e){L(this._graphicEls,(function(n,i){n&&t&&t.call(e,n,i)}))},t.prototype.cloneShallow=function(e){e||(e=new t(qy(this.dimensions,this.getDimensionInfo,this),this.hostModel));if(e._storage=this._storage,e._storageArr=this._storageArr,Gy(e,this),this._indices){var n=this._indices.constructor;if(n===Array){var i=this._indices.length;e._indices=new n(i);for(var r=0;r<i;r++)e._indices[r]=this._indices[r]}else e._indices=new n(this._indices)}else e._indices=null;return e.getRawIndex=e._indices?Ny:Ry,e},t.prototype.wrapMethod=function(t,e){var n=this[t];"function"==typeof n&&(this.__wrappedMethods=this.__wrappedMethods||[],this.__wrappedMethods.push(t),this[t]=function(){var t=n.apply(this,arguments);return e.apply(this,[t].concat(tt(arguments)))})},t.internalField=function(){function e(t,e,n,i){return _p(t[i],this._dimensionInfos[e])}ky={arrayRows:e,objectRows:function(t,e,n,i){return _p(t[e],this._dimensionInfos[e])},keyedColumns:e,original:function(t,e,n,i){var r=t&&(null==t.value?t:t.value);return!this._rawData.pure&&function(t){return G(t)&&!(t instanceof Array)}(t)&&(this.hasItemOption=!0),_p(r instanceof Array?r[i]:r,this._dimensionInfos[e])},typedArray:function(t,e,n,i){return t[i]}},Ly=function(t){var e=t._invertedIndicesMap;L(e,(function(n,i){var r=t._dimensionInfos[i].ordinalMeta;if(r){n=e[i]=new $y(r.categories.length);for(var a=0;a<n.length;a++)n[a]=-1;for(a=0;a<t._count;a++)n[t.get(i,a)]=a}}))},By=function(t,e,n,i){var r,a=t._storageArr[e];return a&&(r=a[i],n&&n.categories.length&&(r=n.categories[r])),or(r,null)},Py=function(t){return t._rawCount>65535?Ky:Qy},Oy=function(t,e,n,i){var r=Zy[e.type],a=e.name;if(i){var o=t[a],s=o&&o.length;if(s!==n){for(var l=new r(n),u=0;u<s;u++)l[u]=o[u];t[a]=l}}else t[a]=new r(n)},Ry=function(t){return t},Ny=function(t){return t<this._count&&t>=0?this._indices[t]:-1},Ey=function(t,e){var n=t._idList[e];return null==n&&null!=t._idDimIdx&&(n=By(t,t._idDimIdx,t._idOrdinalMeta,e)),null==n&&(n="e\0\0"+e),n},Fy=function(t){return z(t)||(t=null!=t?[t]:[]),t},function(t,e){for(var n=0;n<e.length;n++)t._dimensionInfos[e[n]]||console.error("Unkown dimension "+e[n])},Vy=function(e,n){var i=e.dimensions,r=new t(qy(i,e.getDimensionInfo,e),e.hostModel);Gy(r,e);for(var a,o,s=r._storage={},l=e._storage,u=r._storageArr=[],h=0;h<i.length;h++){var c=i[h];l[c]&&(D(n,c)>=0?(s[c]=(a=l[c],o=void 0,(o=a.constructor)===Array?a.slice():new o(a)),r._rawExtent[c]=Hy(),r._extent[c]=null):s[c]=l[c],u.push(s[c]))}return r},Hy=function(){return[1/0,-1/0]},Wy=function(t){var e=Xo(t),n=Xo(this);e.seriesIndex=n.seriesIndex,e.dataIndex=n.dataIndex,e.dataType=n.dataType},Gy=function(t,e){L(Jy.concat(e.__wrappedMethods||[]),(function(n){e.hasOwnProperty(n)&&(t[n]=e[n])})),t.__wrappedMethods=e.__wrappedMethods,L(tv,(function(n){t[n]=w(e[n])})),t._calculationInfo=M({},e._calculationInfo)},zy=function(t,e){var n=t._nameList,i=t._idList,r=t._nameDimIdx,a=t._idDimIdx,o=n[e],s=i[e];if(null==o&&null!=r&&(n[e]=o=By(t,r,t._nameOrdinalMeta,e)),null==s&&null!=a&&(i[e]=s=By(t,a,t._idOrdinalMeta,e)),null==s&&null!=o){var l=t._nameRepeatCount,u=l[o]=(l[o]||0)+1;s=o,u>1&&(s+="__ec__"+u),i[e]=s}}}(),t}();function nv(t,e,n){Zc(e)||(e=$c(e)),n=n||{},t=(t||[]).slice();for(var i=(n.dimsDef||[]).slice(),r=lt(),a=lt(),o=[],s=function(t,e,n,i){var r=Math.max(t.dimensionsDetectedCount||1,e.length,n.length,i||0);return L(e,(function(t){var e;G(t)&&(e=t.dimsDef)&&(r=Math.max(r,e.length))})),r}(e,t,i,n.dimCount),l=0;l<s;l++){var u=i[l],h=i[l]=M({},G(u)?u:{name:u}),c=h.name,p=o[l]=new Uy;null!=c&&null==r.get(c)&&(p.name=p.displayName=c,r.set(c,l)),null!=h.type&&(p.type=h.type),null!=h.displayName&&(p.displayName=h.displayName)}var f=n.encodeDef;!f&&n.encodeDefaulter&&(f=n.encodeDefaulter(e,s));var d=lt(f);d.each((function(t,e){var n=Ji(t).slice();if(1===n.length&&!V(n[0])&&n[0]<0)d.set(e,!1);else{var i=d.set(e,[]);L(n,(function(t,n){var a=V(t)?r.get(t):t;null!=a&&a<s&&(i[n]=a,y(o[a],e,n))}))}}));var g=0;function y(t,e,n){null!=zh.get(e)?t.otherDims[e]=n:(t.coordDim=e,t.coordDimIndex=n,a.set(e,!0))}L(t,(function(t){var e,n,i,r;if(V(t))e=t,r={};else{e=(r=t).name;var a=r.ordinalMeta;r.ordinalMeta=null,(r=w(r)).ordinalMeta=a,n=r.dimsDef,i=r.otherDims,r.name=r.coordDim=r.coordDimIndex=r.dimsDef=r.otherDims=null}var s=d.get(e);if(!1!==s){if(!(s=Ji(s)).length)for(var l=0;l<(n&&n.length||1);l++){for(;g<o.length&&null!=o[g].coordDim;)g++;g<o.length&&s.push(g++)}L(s,(function(t,a){var s=o[t];if(y(T(s,r),e,a),null==s.name&&n){var l=n[a];!G(l)&&(l={name:l}),s.name=s.displayName=l.name,s.defaultTooltip=l.defaultTooltip}i&&T(s.otherDims,i)}))}}));var v=n.generateCoord,m=n.generateCoordCount,_=null!=m;m=v?m||1:0;for(var x=v||"value",b=0;b<s;b++){null==(p=o[b]=o[b]||new Uy).coordDim&&(p.coordDim=iv(x,a,_),p.coordDimIndex=0,(!v||m<=0)&&(p.isExtraCoord=!0),m--),null==p.name&&(p.name=iv(p.coordDim,r,!1)),null!=p.type||tc(e,b)!==qh&&(!p.isExtraCoord||null==p.otherDims.itemName&&null==p.otherDims.seriesName)||(p.type="ordinal")}return o}function iv(t,e,n){if(n||null!=e.get(t)){for(var i=0;null!=e.get(t+i);)i++;t+=i}return e.set(t,!0),t}function rv(t,e){return nv((e=e||{}).coordDimensions||[],t,{dimsDef:e.dimensionsDefine||t.dimensionsDefine,encodeDef:e.encodeDefine||t.encodeDefine,dimCount:e.dimensionsCount,encodeDefaulter:e.encodeDefaulter,generateCoord:e.generateCoord,generateCoordCount:e.generateCoordCount})}var av=function(t){this.coordSysDims=[],this.axisMap=lt(),this.categoryAxisMap=lt(),this.coordSysName=t};var ov={cartesian2d:function(t,e,n,i){var r=t.getReferringComponents("xAxis",fr).models[0],a=t.getReferringComponents("yAxis",fr).models[0];e.coordSysDims=["x","y"],n.set("x",r),n.set("y",a),sv(r)&&(i.set("x",r),e.firstCategoryDimIndex=0),sv(a)&&(i.set("y",a),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=1))},singleAxis:function(t,e,n,i){var r=t.getReferringComponents("singleAxis",fr).models[0];e.coordSysDims=["single"],n.set("single",r),sv(r)&&(i.set("single",r),e.firstCategoryDimIndex=0)},polar:function(t,e,n,i){var r=t.getReferringComponents("polar",fr).models[0],a=r.findAxisModel("radiusAxis"),o=r.findAxisModel("angleAxis");e.coordSysDims=["radius","angle"],n.set("radius",a),n.set("angle",o),sv(a)&&(i.set("radius",a),e.firstCategoryDimIndex=0),sv(o)&&(i.set("angle",o),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=1))},geo:function(t,e,n,i){e.coordSysDims=["lng","lat"]},parallel:function(t,e,n,i){var r=t.ecModel,a=r.getComponent("parallel",t.get("parallelIndex")),o=e.coordSysDims=a.dimensions.slice();L(a.parallelAxisIndex,(function(t,a){var s=r.getComponent("parallelAxis",t),l=o[a];n.set(l,s),sv(s)&&(i.set(l,s),null==e.firstCategoryDimIndex&&(e.firstCategoryDimIndex=a))}))}};function sv(t){return"category"===t.get("type")}function lv(t,e,n){var i,r,a,o,s=(n=n||{}).byIndex,l=n.stackedCoordDimension,u=!(!t||!t.get("stack"));if(L(e,(function(t,n){V(t)&&(e[n]=t={name:t}),u&&!t.isExtraCoord&&(s||i||!t.ordinalMeta||(i=t),r||"ordinal"===t.type||"time"===t.type||l&&l!==t.coordDim||(r=t))})),!r||s||i||(s=!0),r){a="__\0ecstackresult",o="__\0ecstackedover",i&&(i.createInvertedIndices=!0);var h=r.coordDim,c=r.type,p=0;L(e,(function(t){t.coordDim===h&&p++})),e.push({name:a,coordDim:h,coordDimIndex:p,type:c,isExtraCoord:!0,isCalculationCoord:!0}),p++,e.push({name:o,coordDim:o,coordDimIndex:p,type:c,isExtraCoord:!0,isCalculationCoord:!0})}return{stackedDimension:r&&r.name,stackedByDimension:i&&i.name,isStackedByIndex:s,stackedOverDimension:o,stackResultDimension:a}}function uv(t,e){return!!e&&e===t.getCalculationInfo("stackedDimension")}function hv(t,e){return uv(t,e)?t.getCalculationInfo("stackResultDimension"):e}function cv(t,e,n){n=n||{},Zc(t)||(t=$c(t));var i,r=e.get("coordinateSystem"),a=mc.get(r),o=function(t){var e=t.get("coordinateSystem"),n=new av(e),i=ov[e];if(i)return i(t,n,n.axisMap,n.categoryAxisMap),n}(e);o&&o.coordSysDims&&(i=P(o.coordSysDims,(function(t){var e={name:t},n=o.axisMap.get(t);if(n){var i=n.get("type");e.type=function(t){return"category"===t?"ordinal":"time"===t?"time":"float"}(i)}return e}))),i||(i=a&&(a.getDimensionsInfo?a.getDimensionsInfo():a.dimensions.slice())||["x","y"]);var s,l,u=n.useEncodeDefaulter,h=rv(t,{coordDimensions:i,generateCoord:n.generateCoord,encodeDefaulter:F(u)?u:u?B($h,i,e):null});o&&L(h,(function(t,e){var i=t.coordDim,r=o.categoryAxisMap.get(i);r&&(null==s&&(s=e),t.ordinalMeta=r.getOrdinalMeta(),n.createInvertedIndices&&(t.createInvertedIndices=!0)),null!=t.otherDims.itemName&&(l=!0)})),l||null==s||(h[s].otherDims.itemName=0);var c=lv(e,h),p=new ev(h,e);p.setCalculationInfo(c);var f=null!=s&&function(t){if(t.sourceFormat===Fh){var e=function(t){var e=0;for(;e<t.length&&null==t[e];)e++;return t[e]}(t.data||[]);return null!=e&&!z(nr(e))}}(t)?function(t,e,n,i){return i===s?n:this.defaultDimValueGetter(t,e,n,i)}:null;return p.hasItemOption=!1,p.initData(t,null,f),p}var pv=function(){function t(t){this._setting=t||{},this._extent=[1/0,-1/0]}return t.prototype.getSetting=function(t){return this._setting[t]},t.prototype.unionExtent=function(t){var e=this._extent;t[0]<e[0]&&(e[0]=t[0]),t[1]>e[1]&&(e[1]=t[1])},t.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},t.prototype.getExtent=function(){return this._extent.slice()},t.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=t),isNaN(e)||(n[1]=e)},t.prototype.isInExtentRange=function(t){return this._extent[0]<=t&&this._extent[1]>=t},t.prototype.isBlank=function(){return this._isBlank},t.prototype.setBlank=function(t){this._isBlank=t},t}();Cr(pv);var fv=function(){function t(t){this.categories=t.categories||[],this._needCollect=t.needCollect,this._deduplication=t.deduplication}return t.createByAxisModel=function(e){var n=e.option,i=n.data,r=i&&P(i,dv);return new t({categories:r,needCollect:!r,deduplication:!1!==n.dedplication})},t.prototype.getOrdinal=function(t){return this._getOrCreateMap().get(t)},t.prototype.parseAndCollect=function(t){var e,n=this._needCollect;if("string"!=typeof t&&!n)return t;if(n&&!this._deduplication)return e=this.categories.length,this.categories[e]=t,e;var i=this._getOrCreateMap();return null==(e=i.get(t))&&(n?(e=this.categories.length,this.categories[e]=t,i.set(t,e)):e=NaN),e},t.prototype._getOrCreateMap=function(){return this._map||(this._map=lt(this.categories))},t}();function dv(t){return G(t)&&null!=t.value?t.value:t+""}var gv=Ni;function yv(t,e,n,i){var r={},a=t[1]-t[0],o=r.interval=Yi(a/e,!0);null!=n&&o<n&&(o=r.interval=n),null!=i&&o>i&&(o=r.interval=i);var s=r.intervalPrecision=vv(o);return function(t,e){!isFinite(t[0])&&(t[0]=e[0]),!isFinite(t[1])&&(t[1]=e[1]),mv(t,0,e),mv(t,1,e),t[0]>t[1]&&(t[0]=t[1])}(r.niceTickExtent=[gv(Math.ceil(t[0]/o)*o,s),gv(Math.floor(t[1]/o)*o,s)],t),r}function vv(t){return Ei(t)+2}function mv(t,e,n){t[e]=Math.max(Math.min(t[e],n[1]),n[0])}function _v(t,e){return t>=e[0]&&t<=e[1]}function xv(t,e){return e[1]===e[0]?.5:(t-e[0])/(e[1]-e[0])}function bv(t,e){return t*(e[1]-e[0])+e[0]}var wv=function(t){function e(e){var n=t.call(this,e)||this;n.type="ordinal";var i=n.getSetting("ordinalMeta");return i||(i=new fv({})),z(i)&&(i=new fv({categories:P(i,(function(t){return G(t)?t.value:t}))})),n._ordinalMeta=i,n._extent=n.getSetting("extent")||[0,i.categories.length-1],n}return n(e,t),e.prototype.parse=function(t){return"string"==typeof t?this._ordinalMeta.getOrdinal(t):Math.round(t)},e.prototype.contain=function(t){return _v(t=this.parse(t),this._extent)&&null!=this._ordinalMeta.categories[t]},e.prototype.normalize=function(t){return xv(t=this._getTickNumber(this.parse(t)),this._extent)},e.prototype.scale=function(t){return t=Math.round(bv(t,this._extent)),this.getRawOrdinalNumber(t)},e.prototype.getTicks=function(){for(var t=[],e=this._extent,n=e[0];n<=e[1];)t.push({value:n}),n++;return t},e.prototype.getMinorTicks=function(t){},e.prototype.setSortInfo=function(t){if(null!=t){for(var e=t.ordinalNumbers,n=this._ordinalNumbersByTick=[],i=this._ticksByOrdinalNumber=[],r=0,a=this._ordinalMeta.categories.length,o=Math.min(a,e.length);r<o;++r){var s=e[r];n[r]=s,i[s]=r}for(var l=0;r<a;++r){for(;null!=i[l];)l++;n.push(l),i[l]=r}}else this._ordinalNumbersByTick=this._ticksByOrdinalNumber=null},e.prototype._getTickNumber=function(t){var e=this._ticksByOrdinalNumber;return e&&t>=0&&t<e.length?e[t]:t},e.prototype.getRawOrdinalNumber=function(t){var e=this._ordinalNumbersByTick;return e&&t>=0&&t<e.length?e[t]:t},e.prototype.getLabel=function(t){if(!this.isBlank()){var e=this.getRawOrdinalNumber(t.value),n=this._ordinalMeta.categories[e];return null==n?"":n+""}},e.prototype.count=function(){return this._extent[1]-this._extent[0]+1},e.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},e.prototype.isInExtentRange=function(t){return t=this._getTickNumber(t),this._extent[0]<=t&&this._extent[1]>=t},e.prototype.getOrdinalMeta=function(){return this._ordinalMeta},e.prototype.niceTicks=function(){},e.prototype.niceExtent=function(){},e.type="ordinal",e}(pv);pv.registerClass(wv);var Sv=Ni,Mv=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="interval",e._interval=0,e._intervalPrecision=2,e}return n(e,t),e.prototype.parse=function(t){return t},e.prototype.contain=function(t){return _v(t,this._extent)},e.prototype.normalize=function(t){return xv(t,this._extent)},e.prototype.scale=function(t){return bv(t,this._extent)},e.prototype.setExtent=function(t,e){var n=this._extent;isNaN(t)||(n[0]=parseFloat(t)),isNaN(e)||(n[1]=parseFloat(e))},e.prototype.unionExtent=function(t){var e=this._extent;t[0]<e[0]&&(e[0]=t[0]),t[1]>e[1]&&(e[1]=t[1]),this.setExtent(e[0],e[1])},e.prototype.getInterval=function(){return this._interval},e.prototype.setInterval=function(t){this._interval=t,this._niceExtent=this._extent.slice(),this._intervalPrecision=vv(t)},e.prototype.getTicks=function(t){var e=this._interval,n=this._extent,i=this._niceExtent,r=this._intervalPrecision,a=[];if(!e)return a;n[0]<i[0]&&(t?a.push({value:Sv(i[0]-e,r)}):a.push({value:n[0]}));for(var o=i[0];o<=i[1]&&(a.push({value:o}),(o=Sv(o+e,r))!==a[a.length-1].value);)if(a.length>1e4)return[];var s=a.length?a[a.length-1].value:i[1];return n[1]>s&&(t?a.push({value:Sv(s+e,r)}):a.push({value:n[1]})),a},e.prototype.getMinorTicks=function(t){for(var e=this.getTicks(!0),n=[],i=this.getExtent(),r=1;r<e.length;r++){for(var a=e[r],o=e[r-1],s=0,l=[],u=(a.value-o.value)/t;s<t-1;){var h=Sv(o.value+(s+1)*u);h>i[0]&&h<i[1]&&l.push(h),s++}n.push(l)}return n},e.prototype.getLabel=function(t,e){if(null==t)return"";var n=e&&e.precision;return null==n?n=Ei(t.value)||0:"auto"===n&&(n=this._intervalPrecision),vh(Sv(t.value,n,!0))},e.prototype.niceTicks=function(t,e,n){t=t||5;var i=this._extent,r=i[1]-i[0];if(isFinite(r)){r<0&&(r=-r,i.reverse());var a=yv(i,t,e,n);this._intervalPrecision=a.intervalPrecision,this._interval=a.interval,this._niceExtent=a.niceTickExtent}},e.prototype.niceExtent=function(t){var e=this._extent;if(e[0]===e[1])if(0!==e[0]){var n=e[0];t.fixMax||(e[1]+=n/2),e[0]-=n/2}else e[1]=1;var i=e[1]-e[0];isFinite(i)||(e[0]=0,e[1]=1),this.niceTicks(t.splitNumber,t.minInterval,t.maxInterval);var r=this._interval;t.fixMin||(e[0]=Sv(Math.floor(e[0]/r)*r)),t.fixMax||(e[1]=Sv(Math.ceil(e[1]/r)*r))},e.type="interval",e}(pv);pv.registerClass(Mv);var Tv="undefined"!=typeof Float32Array?Float32Array:Array;function Cv(t){return t.get("stack")||"__ec_stack_"+t.seriesIndex}function Dv(t){return t.dim+t.index}function Iv(t,e){var n=[];return e.eachSeriesByType(t,(function(t){Ov(t)&&!Rv(t)&&n.push(t)})),n}function Av(t){var e=function(t){var e={};L(t,(function(t){var n=t.coordinateSystem.getBaseAxis();if("time"===n.type||"value"===n.type)for(var i=t.getData(),r=n.dim+"_"+n.index,a=i.mapDimension(n.dim),o=0,s=i.count();o<s;++o){var l=i.get(a,o);e[r]?e[r].push(l):e[r]=[l]}}));var n={};for(var i in e)if(e.hasOwnProperty(i)){var r=e[i];if(r){r.sort((function(t,e){return t-e}));for(var a=null,o=1;o<r.length;++o){var s=r[o]-r[o-1];s>0&&(a=null===a?s:Math.min(a,s))}n[i]=a}}return n}(t),n=[];return L(t,(function(t){var i,r=t.coordinateSystem.getBaseAxis(),a=r.getExtent();if("category"===r.type)i=r.getBandWidth();else if("value"===r.type||"time"===r.type){var o=r.dim+"_"+r.index,s=e[o],l=Math.abs(a[1]-a[0]),u=r.scale.getExtent(),h=Math.abs(u[1]-u[0]);i=s?l/h*s:l}else{var c=t.getData();i=Math.abs(a[1]-a[0])/c.count()}var p=Ri(t.get("barWidth"),i),f=Ri(t.get("barMaxWidth"),i),d=Ri(t.get("barMinWidth")||1,i),g=t.get("barGap"),y=t.get("barCategoryGap");n.push({bandWidth:i,barWidth:p,barMaxWidth:f,barMinWidth:d,barGap:g,barCategoryGap:y,axisKey:Dv(r),stackId:Cv(t)})})),function(t){var e={};L(t,(function(t,n){var i=t.axisKey,r=t.bandWidth,a=e[i]||{bandWidth:r,remainedWidth:r,autoWidthCount:0,categoryGap:null,gap:"20%",stacks:{}},o=a.stacks;e[i]=a;var s=t.stackId;o[s]||a.autoWidthCount++,o[s]=o[s]||{width:0,maxWidth:0};var l=t.barWidth;l&&!o[s].width&&(o[s].width=l,l=Math.min(a.remainedWidth,l),a.remainedWidth-=l);var u=t.barMaxWidth;u&&(o[s].maxWidth=u);var h=t.barMinWidth;h&&(o[s].minWidth=h);var c=t.barGap;null!=c&&(a.gap=c);var p=t.barCategoryGap;null!=p&&(a.categoryGap=p)}));var n={};return L(e,(function(t,e){n[e]={};var i=t.stacks,r=t.bandWidth,a=t.categoryGap;if(null==a){var o=N(i).length;a=Math.max(35-4*o,15)+"%"}var s=Ri(a,r),l=Ri(t.gap,1),u=t.remainedWidth,h=t.autoWidthCount,c=(u-s)/(h+(h-1)*l);c=Math.max(c,0),L(i,(function(t){var e=t.maxWidth,n=t.minWidth;if(t.width){i=t.width;e&&(i=Math.min(i,e)),n&&(i=Math.max(i,n)),t.width=i,u-=i+l*i,h--}else{var i=c;e&&e<i&&(i=Math.min(e,u)),n&&n>i&&(i=n),i!==c&&(t.width=i,u-=i+l*i,h--)}})),c=(u-s)/(h+(h-1)*l),c=Math.max(c,0);var p,f=0;L(i,(function(t,e){t.width||(t.width=c),p=t,f+=t.width*(1+l)})),p&&(f-=p.width*l);var d=-f/2;L(i,(function(t,i){n[e][i]=n[e][i]||{bandWidth:r,offset:d,width:t.width},d+=t.width*(1+l)}))})),n}(n)}function kv(t,e,n){if(t&&e){var i=t[Dv(e)];return null!=i&&null!=n?i[Cv(n)]:i}}function Lv(t,e){var n=Iv(t,e),i=Av(n),r={};L(n,(function(t){var e=t.getData(),n=t.coordinateSystem,a=n.getBaseAxis(),o=Cv(t),s=i[Dv(a)][o],l=s.offset,u=s.width,h=n.getOtherAxis(a),c=t.get("barMinHeight")||0;r[o]=r[o]||[],e.setLayout({bandWidth:s.bandWidth,offset:l,size:u});for(var p=e.mapDimension(h.dim),f=e.mapDimension(a.dim),d=uv(e,p),g=h.isHorizontal(),y=Nv(a,h),v=0,m=e.count();v<m;v++){var _=e.get(p,v),x=e.get(f,v),b=_>=0?"p":"n",w=y;d&&(r[o][x]||(r[o][x]={p:y,n:y}),w=r[o][x][b]);var S,M=void 0,T=void 0,C=void 0,D=void 0;if(g)M=w,T=(S=n.dataToPoint([_,x]))[1]+l,C=S[0]-y,D=u,Math.abs(C)<c&&(C=(C<0?-1:1)*c),isNaN(C)||d&&(r[o][x][b]+=C);else M=(S=n.dataToPoint([x,_]))[0]+l,T=w,C=u,D=S[1]-y,Math.abs(D)<c&&(D=(D<=0?-1:1)*c),isNaN(D)||d&&(r[o][x][b]+=D);e.setItemLayout(v,{x:M,y:T,width:C,height:D})}}))}var Pv={seriesType:"bar",plan:Xp(),reset:function(t){if(Ov(t)&&Rv(t)){var e=t.getData(),n=t.coordinateSystem,i=n.master.getRect(),r=n.getBaseAxis(),a=n.getOtherAxis(r),o=e.mapDimension(a.dim),s=e.mapDimension(r.dim),l=a.isHorizontal(),u=l?0:1,h=kv(Av([t]),r,t).width;return h>.5||(h=.5),{progress:function(t,e){for(var c,p=t.count,f=new Tv(2*p),d=new Tv(2*p),g=new Tv(p),y=[],v=[],m=0,_=0;null!=(c=t.next());)v[u]=e.get(o,c),v[1-u]=e.get(s,c),y=n.dataToPoint(v,null,y),d[m]=l?i.x+i.width:y[0],f[m++]=y[0],d[m]=l?y[1]:i.y+i.height,f[m++]=y[1],g[_++]=c;e.setLayout({largePoints:f,largeDataIndices:g,largeBackgroundPoints:d,barWidth:h,valueAxisStart:Nv(r,a),backgroundStart:l?i.x:i.y,valueAxisHorizontal:l})}}}}};function Ov(t){return t.coordinateSystem&&"cartesian2d"===t.coordinateSystem.type}function Rv(t){return t.pipelineContext&&t.pipelineContext.large}function Nv(t,e,n){return e.toGlobalCoord(e.dataToCoord("log"===e.type?1:0))}var Ev=function(t){function e(e){var n=t.call(this,e)||this;return n.type="time",n}return n(e,t),e.prototype.getLabel=function(t){var e=this.getSetting("useUTC");return th(t.value,ju[function(t){switch(t){case"year":case"month":return"day";case"millisecond":return"millisecond";default:return"second"}}(Qu(this._minLevelUnit))]||ju.second,e,this.getSetting("locale"))},e.prototype.getFormattedLabel=function(t,e,n){var i=this.getSetting("useUTC");return function(t,e,n,i,r){var a=null;if("string"==typeof n)a=n;else if("function"==typeof n)a=n(t.value,e,{level:t.level});else{var o=M({},Xu);if(t.level>0)for(var s=0;s<Zu.length;++s)o[Zu[s]]="{primary|"+o[Zu[s]]+"}";var l=n?!1===n.inherit?n:T(n,o):o,u=eh(t.value,r);if(l[u])a=l[u];else if(l.inherit){for(s=Ku.indexOf(u)-1;s>=0;--s)if(l[u]){a=l[u];break}a=a||o.none}if(z(a)){var h=null==t.level?0:t.level>=0?t.level:a.length+t.level;a=a[h=Math.min(h,a.length-1)]}}return th(new Date(t.value),a,r,i)}(t,e,n,this.getSetting("locale"),i)},e.prototype.getTicks=function(t){var e=this._interval,n=this._extent,i=[];if(!e)return i;i.push({value:n[0],level:0});var r=this.getSetting("useUTC"),a=function(t,e,n,i){var r=1e4,a=Ku,o=0;function s(t,e,n,r,a,o,s){for(var l=new Date(e),u=e,h=l[r]();u<n&&u<=i[1];)s.push({value:u}),h+=t,l[a](h),u=l.getTime();s.push({value:u,notAdd:!0})}function l(t,r,a){var o=[],l=!r.length;if(!function(t,e,n,i){var r=Wi(e),a=Wi(n),o=function(t){return nh(r,t,i)===nh(a,t,i)},s=function(){return o("year")},l=function(){return s()&&o("month")},u=function(){return l()&&o("day")},h=function(){return u()&&o("hour")},c=function(){return h()&&o("minute")},p=function(){return c()&&o("second")},f=function(){return p()&&o("millisecond")};switch(t){case"year":return s();case"month":return l();case"day":return u();case"hour":return h();case"minute":return c();case"second":return p();case"millisecond":return f()}}(Qu(t),i[0],i[1],n)){l&&(r=[{value:Gv(new Date(i[0]),t,n)},{value:i[1]}]);for(var u=0;u<r.length-1;u++){var h=r[u].value,c=r[u+1].value;if(h!==c){var p=void 0,f=void 0,d=void 0,g=!1;switch(t){case"year":p=Math.max(1,Math.round(e/Uu/365)),f=ih(n),d=hh(n);break;case"half-year":case"quarter":case"month":p=Fv(e),f=rh(n),d=ch(n);break;case"week":case"half-week":case"day":p=zv(e),f=ah(n),d=ph(n),g=!0;break;case"half-day":case"quarter-day":case"hour":p=Vv(e),f=oh(n),d=fh(n);break;case"minute":p=Hv(e,!0),f=sh(n),d=dh(n);break;case"second":p=Hv(e,!1),f=lh(n),d=gh(n);break;case"millisecond":p=Wv(e),f=uh(n),d=yh(n)}s(p,h,c,f,d,g,o),"year"===t&&a.length>1&&0===u&&a.unshift({value:a[0].value-p})}}for(u=0;u<o.length;u++)a.push(o[u]);return o}}for(var u=[],h=[],c=0,p=0,f=0;f<a.length&&o++<r;++f){var d=Qu(a[f]);if(Ju(a[f]))if(l(a[f],u[u.length-1]||[],h),d!==(a[f+1]?Qu(a[f+1]):null)){if(h.length){p=c,h.sort((function(t,e){return t.value-e.value}));for(var g=[],y=0;y<h.length;++y){var v=h[y].value;0!==y&&h[y-1].value===v||(g.push(h[y]),v>=i[0]&&v<=i[1]&&c++)}var m=(i[1]-i[0])/e;if(c>1.5*m&&p>m/1.5)break;if(u.push(g),c>m||t===a[f])break}h=[]}}0;var _=R(P(u,(function(t){return R(t,(function(t){return t.value>=i[0]&&t.value<=i[1]&&!t.notAdd}))})),(function(t){return t.length>0})),x=[],b=_.length-1;for(f=0;f<_.length;++f)for(var w=_[f],S=0;S<w.length;++S)x.push({value:w[S].value,level:b-f});x.sort((function(t,e){return t.value-e.value}));var M=[];for(f=0;f<x.length;++f)0!==f&&x[f].value===x[f-1].value||M.push(x[f]);return M}(this._minLevelUnit,this._approxInterval,r,n);return(i=i.concat(a)).push({value:n[1],level:0}),i},e.prototype.niceExtent=function(t){var e=this._extent;if(e[0]===e[1]&&(e[0]-=Uu,e[1]+=Uu),e[1]===-1/0&&e[0]===1/0){var n=new Date;e[1]=+new Date(n.getFullYear(),n.getMonth(),n.getDate()),e[0]=e[1]-Uu}this.niceTicks(t.splitNumber,t.minInterval,t.maxInterval)},e.prototype.niceTicks=function(t,e,n){t=t||10;var i=this._extent,r=i[1]-i[0];this._approxInterval=r/t,null!=e&&this._approxInterval<e&&(this._approxInterval=e),null!=n&&this._approxInterval>n&&(this._approxInterval=n);var a=Bv.length,o=Math.min(function(t,e,n,i){for(;n<i;){var r=n+i>>>1;t[r][1]<e?n=r+1:i=r}return n}(Bv,this._approxInterval,0,a),a-1);this._interval=Bv[o][1],this._minLevelUnit=Bv[Math.max(o-1,0)][0]},e.prototype.parse=function(t){return"number"==typeof t?t:+Wi(t)},e.prototype.contain=function(t){return _v(this.parse(t),this._extent)},e.prototype.normalize=function(t){return xv(this.parse(t),this._extent)},e.prototype.scale=function(t){return bv(t,this._extent)},e.type="time",e}(Mv),Bv=[["second",Hu],["minute",Wu],["hour",Gu],["quarter-day",216e5],["half-day",432e5],["day",10368e4],["half-week",3024e5],["week",6048e5],["month",26784e5],["quarter",8208e6],["half-year",Yu/2],["year",Yu]];function zv(t,e){return(t/=Uu)>16?16:t>7.5?7:t>3.5?4:t>1.5?2:1}function Fv(t){return(t/=2592e6)>6?6:t>3?3:t>2?2:1}function Vv(t){return(t/=Gu)>12?12:t>6?6:t>3.5?4:t>2?2:1}function Hv(t,e){return(t/=e?Wu:Hu)>30?30:t>20?20:t>15?15:t>10?10:t>5?5:t>2?2:1}function Wv(t){return Yi(t,!0)}function Gv(t,e,n){var i=new Date(t);switch(Qu(e)){case"year":case"month":i[ch(n)](0);case"day":i[ph(n)](1);case"hour":i[fh(n)](0);case"minute":i[dh(n)](0);case"second":i[gh(n)](0),i[yh(n)](0)}return i.getTime()}pv.registerClass(Ev);var Uv=pv.prototype,Yv=Mv.prototype,Xv=Ei,qv=Ni,jv=Math.floor,Zv=Math.ceil,Kv=Math.pow,$v=Math.log,Qv=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="log",e.base=10,e._originalScale=new Mv,e._interval=0,e}return n(e,t),e.prototype.getTicks=function(t){var e=this._originalScale,n=this._extent,i=e.getExtent();return P(Yv.getTicks.call(this,t),(function(t){var e=t.value,r=Ni(Kv(this.base,e));return r=e===n[0]&&this._fixMin?tm(r,i[0]):r,{value:r=e===n[1]&&this._fixMax?tm(r,i[1]):r}}),this)},e.prototype.setExtent=function(t,e){var n=this.base;t=$v(t)/$v(n),e=$v(e)/$v(n),Yv.setExtent.call(this,t,e)},e.prototype.getExtent=function(){var t=this.base,e=Uv.getExtent.call(this);e[0]=Kv(t,e[0]),e[1]=Kv(t,e[1]);var n=this._originalScale.getExtent();return this._fixMin&&(e[0]=tm(e[0],n[0])),this._fixMax&&(e[1]=tm(e[1],n[1])),e},e.prototype.unionExtent=function(t){this._originalScale.unionExtent(t);var e=this.base;t[0]=$v(t[0])/$v(e),t[1]=$v(t[1])/$v(e),Uv.unionExtent.call(this,t)},e.prototype.unionExtentFromData=function(t,e){this.unionExtent(t.getApproximateExtent(e))},e.prototype.niceTicks=function(t){t=t||10;var e=this._extent,n=e[1]-e[0];if(!(n===1/0||n<=0)){var i=Gi(n);for(t/n*i<=.5&&(i*=10);!isNaN(i)&&Math.abs(i)<1&&Math.abs(i)>0;)i*=10;var r=[Ni(Zv(e[0]/i)*i),Ni(jv(e[1]/i)*i)];this._interval=i,this._niceExtent=r}},e.prototype.niceExtent=function(t){Yv.niceExtent.call(this,t),this._fixMin=t.fixMin,this._fixMax=t.fixMax},e.prototype.parse=function(t){return t},e.prototype.contain=function(t){return _v(t=$v(t)/$v(this.base),this._extent)},e.prototype.normalize=function(t){return xv(t=$v(t)/$v(this.base),this._extent)},e.prototype.scale=function(t){return t=bv(t,this._extent),Kv(this.base,t)},e.type="log",e}(pv),Jv=Qv.prototype;function tm(t,e){return qv(t,Xv(e))}Jv.getMinorTicks=Yv.getMinorTicks,Jv.getLabel=Yv.getLabel,pv.registerClass(Qv);var em=function(){function t(t,e,n){this._prepareParams(t,e,n)}return t.prototype._prepareParams=function(t,e,n){n[1]<n[0]&&(n=[NaN,NaN]),this._dataMin=n[0],this._dataMax=n[1];var i=this._isOrdinal="ordinal"===t.type;this._needCrossZero=e.getNeedCrossZero&&e.getNeedCrossZero();var r=this._modelMinRaw=e.get("min",!0);F(r)?this._modelMinNum=rm(t,r({min:n[0],max:n[1]})):"dataMin"!==r&&(this._modelMinNum=rm(t,r));var a=this._modelMaxRaw=e.get("max",!0);if(F(a)?this._modelMaxNum=rm(t,a({min:n[0],max:n[1]})):"dataMax"!==a&&(this._modelMaxNum=rm(t,a)),i)this._axisDataLen=e.getCategories().length;else{var o=e.get("boundaryGap"),s=z(o)?o:[o||0,o||0];"boolean"==typeof s[0]||"boolean"==typeof s[1]?this._boundaryGapInner=[0,0]:this._boundaryGapInner=[Ln(s[0],1),Ln(s[1],1)]}},t.prototype.calculate=function(){var t=this._isOrdinal,e=this._dataMin,n=this._dataMax,i=this._axisDataLen,r=this._boundaryGapInner,a=t?null:n-e||Math.abs(e),o="dataMin"===this._modelMinRaw?e:this._modelMinNum,s="dataMax"===this._modelMaxRaw?n:this._modelMaxNum,l=null!=o,u=null!=s;null==o&&(o=t?i?0:NaN:e-r[0]*a),null==s&&(s=t?i?i-1:NaN:n+r[1]*a),(null==o||!isFinite(o))&&(o=NaN),(null==s||!isFinite(s))&&(s=NaN),o>s&&(o=NaN,s=NaN);var h=K(o)||K(s)||t&&!i;this._needCrossZero&&(o>0&&s>0&&!l&&(o=0),o<0&&s<0&&!u&&(s=0));var c=this._determinedMin,p=this._determinedMax;return null!=c&&(o=c,l=!0),null!=p&&(s=p,u=!0),{min:o,max:s,minFixed:l,maxFixed:u,isBlank:h}},t.prototype.modifyDataMinMax=function(t,e){this[im[t]]=e},t.prototype.setDeterminedMinMax=function(t,e){var n=nm[t];this[n]=e},t.prototype.freeze=function(){this.frozen=!0},t}(),nm={min:"_determinedMin",max:"_determinedMax"},im={min:"_dataMin",max:"_dataMax"};function rm(t,e){return null==e?null:K(e)?NaN:t.parse(e)}function am(t,e){var n=t.type,i=function(t,e,n){var i=t.rawExtentInfo;return i||(i=new em(t,e,n),t.rawExtentInfo=i,i)}(t,e,t.getExtent()).calculate();t.setBlank(i.isBlank);var r=i.min,a=i.max,o=e.ecModel;if(o&&"time"===n){var s=Iv("bar",o),l=!1;if(L(s,(function(t){l=l||t.getBaseAxis()===e.axis})),l){var u=Av(s),h=function(t,e,n,i){var r=n.axis.getExtent(),a=r[1]-r[0],o=kv(i,n.axis);if(void 0===o)return{min:t,max:e};var s=1/0;L(o,(function(t){s=Math.min(t.offset,s)}));var l=-1/0;L(o,(function(t){l=Math.max(t.offset+t.width,l)})),s=Math.abs(s),l=Math.abs(l);var u=s+l,h=e-t,c=h/(1-(s+l)/a)-h;return{min:t-=c*(s/u),max:e+=c*(l/u)}}(r,a,e,u);r=h.min,a=h.max}}return{extent:[r,a],fixMin:i.minFixed,fixMax:i.maxFixed}}function om(t,e){var n=am(t,e),i=n.extent,r=e.get("splitNumber");t instanceof Qv&&(t.base=e.get("logBase"));var a=t.type;t.setExtent(i[0],i[1]),t.niceExtent({splitNumber:r,fixMin:n.fixMin,fixMax:n.fixMax,minInterval:"interval"===a||"time"===a?e.get("minInterval"):null,maxInterval:"interval"===a||"time"===a?e.get("maxInterval"):null});var o=e.get("interval");null!=o&&t.setInterval&&t.setInterval(o)}function sm(t,e){if(e=e||t.get("type"))switch(e){case"category":return new wv({ordinalMeta:t.getOrdinalMeta?t.getOrdinalMeta():t.getCategories(),extent:[1/0,-1/0]});case"time":return new Ev({locale:t.ecModel.getLocaleModel(),useUTC:t.ecModel.get("useUTC")});default:return new(pv.getClass(e)||Mv)}}function lm(t){var e,n,i=t.getLabelModel().get("formatter"),r="category"===t.type?t.scale.getExtent()[0]:null;return"time"===t.scale.type?(n=i,function(e,i){return t.scale.getFormattedLabel(e,i,n)}):"string"==typeof i?function(e){return function(n){var i=t.scale.getLabel(n);return e.replace("{value}",null!=i?i:"")}}(i):"function"==typeof i?(e=i,function(n,i){return null!=r&&(i=n.value-r),e(function(t,e){return"category"===t.type?t.scale.getLabel(e):e.value}(t,n),i,null!=n.level?{level:n.level}:null)}):function(e){return t.scale.getLabel(e)}}function um(t,e){var n=e*Math.PI/180,i=t.width,r=t.height,a=i*Math.abs(Math.cos(n))+Math.abs(r*Math.sin(n)),o=i*Math.abs(Math.sin(n))+Math.abs(r*Math.cos(n));return new bn(t.x,t.y,a,o)}function hm(t){var e=t.get("interval");return null==e?"auto":e}function cm(t){return"category"===t.type&&0===hm(t.getLabelModel())}var pm=function(){function t(){}return t.prototype.getNeedCrossZero=function(){return!this.option.scale},t.prototype.getCoordSysModel=function(){},t}();var fm={isDimensionStacked:uv,enableDataStack:lv,getStackedDimension:hv};var dm=Object.freeze({__proto__:null,createList:function(t){return cv(t.getSource(),t)},getLayoutRect:Ah,dataStack:fm,createScale:function(t,e){var n=e;e instanceof Lu||(n=new Lu(e));var i=sm(n);return i.setExtent(t[0],t[1]),om(i,n),i},mixinAxisModelCommonMethods:function(t){A(t,pm)},getECData:Xo,createTextStyle:function(t,e){return fu(t,null,null,"normal"!==(e=e||{}).state)},createDimensions:rv,createSymbol:Rd,enableHoverEmphasis:Ds});function gm(t,e){return Math.abs(t-e)<1e-8}function ym(t,e,n){var i=0,r=t[0];if(!r)return!1;for(var a=1;a<t.length;a++){var o=t[a];i+=po(r[0],r[1],o[0],o[1],e,n),r=o}var s=t[0];return gm(r[0],s[0])&&gm(r[1],s[1])||(i+=po(r[0],r[1],s[0],s[1],e,n)),0!==i}var vm=function(){function t(t,e,n){if(this.name=t,this.geometries=e,n)n=[n[0],n[1]];else{var i=this.getBoundingRect();n=[i.x+i.width/2,i.y+i.height/2]}this.center=n}return t.prototype.getBoundingRect=function(){var t=this._rect;if(t)return t;for(var e=Number.MAX_VALUE,n=[e,e],i=[-e,-e],r=[],a=[],o=this.geometries,s=0;s<o.length;s++){if("polygon"===o[s].type)Pa(o[s].exterior,r,a),At(n,n,r),kt(i,i,a)}return 0===s&&(n[0]=n[1]=i[0]=i[1]=0),this._rect=new bn(n[0],n[1],i[0]-n[0],i[1]-n[1])},t.prototype.contain=function(t){var e=this.getBoundingRect(),n=this.geometries;if(!e.contain(t[0],t[1]))return!1;t:for(var i=0,r=n.length;i<r;i++)if("polygon"===n[i].type){var a=n[i].exterior,o=n[i].interiors;if(ym(a,t[0],t[1])){for(var s=0;s<(o?o.length:0);s++)if(ym(o[s],t[0],t[1]))continue t;return!0}}return!1},t.prototype.transformTo=function(t,e,n,i){var r=this.getBoundingRect(),a=r.width/r.height;n?i||(i=n/a):n=a*i;for(var o=new bn(t,e,n,i),s=r.calculateTransform(o),l=this.geometries,u=0;u<l.length;u++)if("polygon"===l[u].type){for(var h=l[u].exterior,c=l[u].interiors,p=0;p<h.length;p++)It(h[p],h[p],s);for(var f=0;f<(c?c.length:0);f++)for(p=0;p<c[f].length;p++)It(c[f][p],c[f][p],s)}(r=this._rect).copy(o),this.center=[r.x+r.width/2,r.y+r.height/2]},t.prototype.cloneShallow=function(e){null==e&&(e=this.name);var n=new t(e,this.geometries,this.center);return n._rect=this._rect,n.transformTo=null,n},t}();function mm(t,e,n){for(var i=[],r=e[0],a=e[1],o=0;o<t.length;o+=2){var s=t.charCodeAt(o)-64,l=t.charCodeAt(o+1)-64;s=s>>1^-(1&s),l=l>>1^-(1&l),r=s+=r,a=l+=a,i.push([s/n,l/n])}return i}function _m(t,e){return P(R((t=function(t){if(!t.UTF8Encoding)return t;var e=t,n=e.UTF8Scale;null==n&&(n=1024);for(var i=e.features,r=0;r<i.length;r++){var a=i[r].geometry;if("Polygon"===a.type)for(var o=a.coordinates,s=0;s<o.length;s++)o[s]=mm(o[s],a.encodeOffsets[s],n);else if("MultiPolygon"===a.type)for(o=a.coordinates,s=0;s<o.length;s++)for(var l=o[s],u=0;u<l.length;u++)l[u]=mm(l[u],a.encodeOffsets[s][u],n)}return e.UTF8Encoding=!1,e}(t)).features,(function(t){return t.geometry&&t.properties&&t.geometry.coordinates.length>0})),(function(t){var n=t.properties,i=t.geometry,r=[];if("Polygon"===i.type){var a=i.coordinates;r.push({type:"polygon",exterior:a[0],interiors:a.slice(1)})}"MultiPolygon"===i.type&&L(a=i.coordinates,(function(t){t[0]&&r.push({type:"polygon",exterior:t[0],interiors:t.slice(1)})}));var o=new vm(n[e||"name"],r,n.cp);return o.properties=n,o}))}var xm=Object.freeze({__proto__:null,linearMap:Oi,round:Ni,asc:function(t){return t.sort((function(t,e){return t-e})),t},getPrecision:function(t){if(t=+t,isNaN(t))return 0;for(var e=1,n=0;Math.round(t*e)/e!==t;)e*=10,n++;return n},getPrecisionSafe:Ei,getPixelPrecision:Bi,getPercentWithPrecision:zi,MAX_SAFE_INTEGER:9007199254740991,remRadian:Fi,isRadianAroundZero:Vi,parseDate:Wi,quantity:Gi,quantityExponent:Ui,nice:Yi,quantile:function(t,e){var n=(t.length-1)*e+1,i=Math.floor(n),r=+t[i-1],a=n-i;return a?r+a*(t[i]-r):r},reformIntervals:function(t){t.sort((function(t,e){return s(t,e,0)?-1:1}));for(var e=-1/0,n=1,i=0;i<t.length;){for(var r=t[i].interval,a=t[i].close,o=0;o<2;o++)r[o]<=e&&(r[o]=e,a[o]=o?1:1-n),e=r[o],n=a[o];r[0]===r[1]&&a[0]*a[1]!=1?t.splice(i,1):i++}return t;function s(t,e,n){return t.interval[n]<e.interval[n]||t.interval[n]===e.interval[n]&&(t.close[n]-e.close[n]==(n?-1:1)||!n&&s(t,e,1))}},isNumeric:qi,numericToNumber:Xi}),bm=Object.freeze({__proto__:null,parse:Wi,format:th}),wm=Object.freeze({__proto__:null,extendShape:function(t){return To.extend(t)},extendPath:function(t,e){return ql(t,e)},makePath:Zl,makeImage:Kl,mergePath:Ql,resizePath:Jl,createIcon:function(t,e,n){var i=M({rectHover:!0},e),r=i.style={strokeNoScale:!0};if(n=n||{x:-1,y:-1,width:2,height:2},t)return 0===t.indexOf("image://")?(r.image=t.slice(8),T(r,n),new ko(i)):Zl(t.replace("path://",""),i,n,"center")},updateProps:eu,initProps:nu,getTransform:function(t,e){for(var n=oe([]);t&&t!==e;)le(n,t.getLocalTransform(),n),t=t.parent;return n},clipPointsByRect:function(t,e){return P(t,(function(t){var n=t[0];n=Ul(n,e.x),n=Yl(n,e.x+e.width);var i=t[1];return i=Ul(i,e.y),[n,i=Yl(i,e.y+e.height)]}))},clipRectByRect:function(t,e){var n=Ul(t.x,e.x),i=Yl(t.x+t.width,e.x+e.width),r=Ul(t.y,e.y),a=Yl(t.y+t.height,e.y+e.height);if(i>=n&&a>=r)return{x:n,y:r,width:i-n,height:a-r}},registerShape:jl,getShapeClass:function(t){if(Xl.hasOwnProperty(t))return Xl[t]},Group:Mi,Image:ko,Text:zo,Circle:Qs,Ellipse:tl,Sector:gl,Ring:vl,Polygon:bl,Polyline:Sl,Rect:No,Line:Cl,BezierCurve:kl,Arc:Pl,IncrementalDisplayable:Gl,CompoundPath:Ol,LinearGradient:Nl,RadialGradient:El,BoundingRect:bn}),Sm=Object.freeze({__proto__:null,addCommas:vh,toCamelCase:function(t,e){return t=(t||"").toLowerCase().replace(/-(.)/g,(function(t,e){return e.toUpperCase()})),e&&t&&(t=t.charAt(0).toUpperCase()+t.slice(1)),t},normalizeCssArray:mh,encodeHTML:bh,formatTpl:Mh,getTooltipMarker:function(t,e){var n=V(t)?{color:t,extraCssText:e}:t||{},i=n.color,r=n.type;e=n.extraCssText;var a=n.renderMode||"html";return i?"html"===a?"subItem"===r?'<span style="display:inline-block;vertical-align:middle;margin-right:8px;margin-left:3px;border-radius:4px;width:4px;height:4px;background-color:'+bh(i)+";"+(e||"")+'"></span>':'<span style="display:inline-block;margin-right:4px;border-radius:10px;width:10px;height:10px;background-color:'+bh(i)+";"+(e||"")+'"></span>':{renderMode:a,content:"{"+(n.markerId||"markerX")+"|}  ",style:"subItem"===r?{width:4,height:4,borderRadius:2,backgroundColor:i}:{width:10,height:10,borderRadius:5,backgroundColor:i}}:""},formatTime:function(t,e,n){"week"!==t&&"month"!==t&&"quarter"!==t&&"half-year"!==t&&"year"!==t||(t="MM-dd\nyyyy");var i=Wi(e),r=n?"UTC":"",a=i["get"+r+"FullYear"](),o=i["get"+r+"Month"]()+1,s=i["get"+r+"Date"](),l=i["get"+r+"Hours"](),u=i["get"+r+"Minutes"](),h=i["get"+r+"Seconds"](),c=i["get"+r+"Milliseconds"]();return t=t.replace("MM",$u(o,2)).replace("M",o).replace("yyyy",a).replace("yy",a%100+"").replace("dd",$u(s,2)).replace("d",s).replace("hh",$u(l,2)).replace("h",l).replace("mm",$u(u,2)).replace("m",u).replace("ss",$u(h,2)).replace("s",h).replace("SSS",$u(c,3))},capitalFirst:function(t){return t?t.charAt(0).toUpperCase()+t.substr(1):t},truncateText:Er,getTextRect:function(t,e,n,i,r,a,o,s){return Ki(),new zo({style:{text:t,font:e,align:n,verticalAlign:i,padding:r,rich:a,overflow:o?"truncate":null,lineHeight:s}}).getBoundingRect()}}),Mm=Object.freeze({__proto__:null,map:P,each:L,indexOf:D,inherits:I,reduce:O,filter:R,bind:E,curry:B,isArray:z,isString:V,isObject:G,isFunction:F,extend:M,defaults:T,clone:w,merge:S}),Tm=hr();function Cm(t){return"category"===t.type?function(t){var e=t.getLabelModel(),n=Im(t,e);return!e.get("show")||t.scale.isBlank()?{labels:[],labelCategoryInterval:n.labelCategoryInterval}:n}(t):function(t){var e=t.scale.getTicks(),n=lm(t);return{labels:P(e,(function(e,i){return{formattedLabel:n(e,i),rawLabel:t.scale.getLabel(e),tickValue:e.value}}))}}(t)}function Dm(t,e){return"category"===t.type?function(t,e){var n,i,r=Am(t,"ticks"),a=hm(e),o=km(r,a);if(o)return o;e.get("show")&&!t.scale.isBlank()||(n=[]);if(F(a))n=Om(t,a,!0);else if("auto"===a){var s=Im(t,t.getLabelModel());i=s.labelCategoryInterval,n=P(s.labels,(function(t){return t.tickValue}))}else n=Pm(t,i=a,!0);return Lm(r,a,{ticks:n,tickCategoryInterval:i})}(t,e):{ticks:P(t.scale.getTicks(),(function(t){return t.value}))}}function Im(t,e){var n,i,r=Am(t,"labels"),a=hm(e),o=km(r,a);return o||(F(a)?n=Om(t,a):(i="auto"===a?function(t){var e=Tm(t).autoInterval;return null!=e?e:Tm(t).autoInterval=t.calculateCategoryInterval()}(t):a,n=Pm(t,i)),Lm(r,a,{labels:n,labelCategoryInterval:i}))}function Am(t,e){return Tm(t)[e]||(Tm(t)[e]=[])}function km(t,e){for(var n=0;n<t.length;n++)if(t[n].key===e)return t[n].value}function Lm(t,e,n){return t.push({key:e,value:n}),n}function Pm(t,e,n){var i=lm(t),r=t.scale,a=r.getExtent(),o=t.getLabelModel(),s=[],l=Math.max((e||0)+1,1),u=a[0],h=r.count();0!==u&&l>1&&h/l>2&&(u=Math.round(Math.ceil(u/l)*l));var c=cm(t),p=o.get("showMinLabel")||c,f=o.get("showMaxLabel")||c;p&&u!==a[0]&&g(a[0]);for(var d=u;d<=a[1];d+=l)g(d);function g(t){var e={value:t};s.push(n?t:{formattedLabel:i(e),rawLabel:r.getLabel(e),tickValue:t})}return f&&d-l!==a[1]&&g(a[1]),s}function Om(t,e,n){var i=t.scale,r=lm(t),a=[];return L(i.getTicks(),(function(t){var o=i.getLabel(t),s=t.value;e(t.value,o)&&a.push(n?s:{formattedLabel:r(t),rawLabel:o,tickValue:s})})),a}var Rm=[0,1],Nm=function(){function t(t,e,n){this.onBand=!1,this.inverse=!1,this.dim=t,this.scale=e,this._extent=n||[0,0]}return t.prototype.contain=function(t){var e=this._extent,n=Math.min(e[0],e[1]),i=Math.max(e[0],e[1]);return t>=n&&t<=i},t.prototype.containData=function(t){return this.scale.contain(t)},t.prototype.getExtent=function(){return this._extent.slice()},t.prototype.getPixelPrecision=function(t){return Bi(t||this.scale.getExtent(),this._extent)},t.prototype.setExtent=function(t,e){var n=this._extent;n[0]=t,n[1]=e},t.prototype.dataToCoord=function(t,e){var n=this._extent,i=this.scale;return t=i.normalize(t),this.onBand&&"ordinal"===i.type&&Em(n=n.slice(),i.count()),Oi(t,Rm,n,e)},t.prototype.coordToData=function(t,e){var n=this._extent,i=this.scale;this.onBand&&"ordinal"===i.type&&Em(n=n.slice(),i.count());var r=Oi(t,n,Rm,e);return this.scale.scale(r)},t.prototype.pointToData=function(t,e){},t.prototype.getTicksCoords=function(t){var e=(t=t||{}).tickModel||this.getTickModel(),n=P(Dm(this,e).ticks,(function(t){return{coord:this.dataToCoord("ordinal"===this.scale.type?this.scale.getRawOrdinalNumber(t):t),tickValue:t}}),this);return function(t,e,n,i){var r=e.length;if(!t.onBand||n||!r)return;var a,o,s=t.getExtent();if(1===r)e[0].coord=s[0],a=e[1]={coord:s[0]};else{var l=e[r-1].tickValue-e[0].tickValue,u=(e[r-1].coord-e[0].coord)/l;L(e,(function(t){t.coord-=u/2})),o=1+t.scale.getExtent()[1]-e[r-1].tickValue,a={coord:e[r-1].coord+u*o},e.push(a)}var h=s[0]>s[1];c(e[0].coord,s[0])&&(i?e[0].coord=s[0]:e.shift());i&&c(s[0],e[0].coord)&&e.unshift({coord:s[0]});c(s[1],a.coord)&&(i?a.coord=s[1]:e.pop());i&&c(a.coord,s[1])&&e.push({coord:s[1]});function c(t,e){return t=Ni(t),e=Ni(e),h?t>e:t<e}}(this,n,e.get("alignWithLabel"),t.clamp),n},t.prototype.getMinorTicksCoords=function(){if("ordinal"===this.scale.type)return[];var t=this.model.getModel("minorTick").get("splitNumber");return t>0&&t<100||(t=5),P(this.scale.getMinorTicks(t),(function(t){return P(t,(function(t){return{coord:this.dataToCoord(t),tickValue:t}}),this)}),this)},t.prototype.getViewLabels=function(){return Cm(this).labels},t.prototype.getLabelModel=function(){return this.model.getModel("axisLabel")},t.prototype.getTickModel=function(){return this.model.getModel("axisTick")},t.prototype.getBandWidth=function(){var t=this._extent,e=this.scale.getExtent(),n=e[1]-e[0]+(this.onBand?1:0);0===n&&(n=1);var i=Math.abs(t[1]-t[0]);return Math.abs(i)/n},t.prototype.calculateCategoryInterval=function(){return function(t){var e=function(t){var e=t.getLabelModel();return{axisRotate:t.getRotate?t.getRotate():t.isHorizontal&&!t.isHorizontal()?90:0,labelRotate:e.get("rotate")||0,font:e.getFont()}}(t),n=lm(t),i=(e.axisRotate-e.labelRotate)/180*Math.PI,r=t.scale,a=r.getExtent(),o=r.count();if(a[1]-a[0]<1)return 0;var s=1;o>40&&(s=Math.max(1,Math.floor(o/40)));for(var l=a[0],u=t.dataToCoord(l+1)-t.dataToCoord(l),h=Math.abs(u*Math.cos(i)),c=Math.abs(u*Math.sin(i)),p=0,f=0;l<=a[1];l+=s){var d,g,y=Dn(n({value:l}),e.font,"center","top");d=1.3*y.width,g=1.3*y.height,p=Math.max(p,d,7),f=Math.max(f,g,7)}var v=p/h,m=f/c;isNaN(v)&&(v=1/0),isNaN(m)&&(m=1/0);var _=Math.max(0,Math.floor(Math.min(v,m))),x=Tm(t.model),b=t.getExtent(),w=x.lastAutoInterval,S=x.lastTickCount;return null!=w&&null!=S&&Math.abs(w-_)<=1&&Math.abs(S-o)<=1&&w>_&&x.axisExtent0===b[0]&&x.axisExtent1===b[1]?_=w:(x.lastTickCount=o,x.lastAutoInterval=_,x.axisExtent0=b[0],x.axisExtent1=b[1]),_}(this)},t}();function Em(t,e){var n=(t[1]-t[0])/e/2;t[0]+=n,t[1]-=n}function Bm(){return!1}function zm(t,e,n){var i=C(),r=e.getWidth(),a=e.getHeight(),o=i.style;return o&&(o.position="absolute",o.left="0",o.top="0",o.width=r+"px",o.height=a+"px",i.setAttribute("data-zr-dom-id",t)),i.width=r*n,i.height=a*n,i}var Fm=function(t){function e(e,n,i){var r,a=t.call(this)||this;a.motionBlur=!1,a.lastFrameAlpha=.7,a.dpr=1,a.virtual=!1,a.config={},a.incremental=!1,a.zlevel=0,a.maxRepaintRectCount=5,a.__dirty=!0,a.__firstTimePaint=!0,a.__used=!1,a.__drawIndex=0,a.__startIndex=0,a.__endIndex=0,a.__prevStartIndex=null,a.__prevEndIndex=null,i=i||Rn,"string"==typeof e?r=zm(e,n,i):G(e)&&(e=(r=e).id),a.id=e,a.dom=r;var o=r.style;return o&&(r.onselectstart=Bm,o.webkitUserSelect="none",o.userSelect="none",o.webkitTapHighlightColor="rgba(0,0,0,0)",o["-webkit-touch-callout"]="none",o.padding="0",o.margin="0",o.borderWidth="0"),a.domBack=null,a.ctxBack=null,a.painter=n,a.config=null,a.dpr=i,a}return n(e,t),e.prototype.getElementCount=function(){return this.__endIndex-this.__startIndex},e.prototype.afterBrush=function(){this.__prevStartIndex=this.__startIndex,this.__prevEndIndex=this.__endIndex},e.prototype.initContext=function(){this.ctx=this.dom.getContext("2d"),this.ctx.dpr=this.dpr},e.prototype.setUnpainted=function(){this.__firstTimePaint=!0},e.prototype.createBackBuffer=function(){var t=this.dpr;this.domBack=zm("back-"+this.id,this.painter,t),this.ctxBack=this.domBack.getContext("2d"),1!==t&&this.ctxBack.scale(t,t)},e.prototype.createRepaintRects=function(t,e,n,i){if(this.__firstTimePaint)return this.__firstTimePaint=!1,null;var r,a=[],o=this.maxRepaintRectCount,s=!1,l=new bn(0,0,0,0);function u(t){if(t.isFinite()&&!t.isZero())if(0===a.length){(e=new bn(0,0,0,0)).copy(t),a.push(e)}else{for(var e,n=!1,i=1/0,r=0,u=0;u<a.length;++u){var h=a[u];if(h.intersect(t)){var c=new bn(0,0,0,0);c.copy(h),c.union(t),a[u]=c,n=!0;break}if(s){l.copy(t),l.union(h);var p=t.width*t.height,f=h.width*h.height,d=l.width*l.height-p-f;d<i&&(i=d,r=u)}}if(s&&(a[r].union(t),n=!0),!n)(e=new bn(0,0,0,0)).copy(t),a.push(e);s||(s=a.length>=o)}}for(var h=this.__startIndex;h<this.__endIndex;++h){if(f=t[h]){var c=f.shouldBePainted(n,i,!0,!0);(d=f.__isRendered&&(f.__dirty&Wn.REDARAW_BIT||!c)?f.getPrevPaintRect():null)&&u(d);var p=c&&(f.__dirty&Wn.REDARAW_BIT||!f.__isRendered)?f.getPaintRect():null;p&&u(p)}}for(h=this.__prevStartIndex;h<this.__prevEndIndex;++h){var f,d;c=(f=e[h]).shouldBePainted(n,i,!0,!0);if(f&&(!c||!f.__zr)&&f.__isRendered)(d=f.getPrevPaintRect())&&u(d)}do{r=!1;for(h=0;h<a.length;)if(a[h].isZero())a.splice(h,1);else{for(var g=h+1;g<a.length;)a[h].intersect(a[g])?(r=!0,a[h].union(a[g]),a.splice(g,1)):g++;h++}}while(r);return this._paintRects=a,a},e.prototype.debugGetPaintRects=function(){return(this._paintRects||[]).slice()},e.prototype.resize=function(t,e){var n=this.dpr,i=this.dom,r=i.style,a=this.domBack;r&&(r.width=t+"px",r.height=e+"px"),i.width=t*n,i.height=e*n,a&&(a.width=t*n,a.height=e*n,1!==n&&this.ctxBack.scale(n,n))},e.prototype.clear=function(t,e,n){var i=this.dom,r=this.ctx,a=i.width,o=i.height;e=e||this.clearColor;var s=this.motionBlur&&!t,l=this.lastFrameAlpha,u=this.dpr,h=this;s&&(this.domBack||this.createBackBuffer(),this.ctxBack.globalCompositeOperation="copy",this.ctxBack.drawImage(i,0,0,a/u,o/u));var c=this.domBack;function p(t,n,i,a){if(r.clearRect(t,n,i,a),e&&"transparent"!==e){var o=void 0;q(e)?(o=e.__canvasGradient||Nd(r,e,{x:0,y:0,width:i,height:a}),e.__canvasGradient=o):j(e)&&(o=Wd(r,e,{dirty:function(){h.setUnpainted(),h.__painter.refresh()}})),r.save(),r.fillStyle=o||e,r.fillRect(t,n,i,a),r.restore()}s&&(r.save(),r.globalAlpha=l,r.drawImage(c,t,n,i,a),r.restore())}!n||s?p(0,0,a,o):n.length&&L(n,(function(t){p(t.x*u,t.y*u,t.width*u,t.height*u)}))},e}(Rt),Vm=1e5,Hm=314159,Wm=.01;function Gm(t){return parseInt(t,10)}var Um=function(){function t(t,e,n,i){this.type="canvas",this._zlevelList=[],this._prevDisplayList=[],this._layers={},this._layerConfig={},this._needsManuallyCompositing=!1,this.type="canvas";var r=!t.nodeName||"CANVAS"===t.nodeName.toUpperCase();this._opts=n=M({},n||{}),this.dpr=n.devicePixelRatio||Rn,this._singleCanvas=r,this.root=t;var a=t.style;a&&(a.webkitTapHighlightColor="transparent",a.webkitUserSelect="none",a.userSelect="none",a["-webkit-touch-callout"]="none",t.innerHTML=""),this.storage=e;var o=this._zlevelList;this._prevDisplayList=[];var s=this._layers;if(r){var l=t,u=l.width,h=l.height;null!=n.width&&(u=n.width),null!=n.height&&(h=n.height),this.dpr=n.devicePixelRatio||1,l.width=u*this.dpr,l.height=h*this.dpr,this._width=u,this._height=h;var c=new Fm(l,this,this.dpr);c.__builtin__=!0,c.initContext(),s[314159]=c,c.zlevel=Hm,o.push(Hm),this._domRoot=t}else{this._width=this._getSize(0),this._height=this._getSize(1);var p=this._domRoot=function(t,e){var n=document.createElement("div");return n.style.cssText=["position:relative","width:"+t+"px","height:"+e+"px","padding:0","margin:0","border-width:0"].join(";")+";",n}(this._width,this._height);t.appendChild(p)}}return t.prototype.getType=function(){return"canvas"},t.prototype.isSingleCanvas=function(){return this._singleCanvas},t.prototype.getViewportRoot=function(){return this._domRoot},t.prototype.getViewportRootOffset=function(){var t=this.getViewportRoot();if(t)return{offsetLeft:t.offsetLeft||0,offsetTop:t.offsetTop||0}},t.prototype.refresh=function(t){var e=this.storage.getDisplayList(!0),n=this._prevDisplayList,i=this._zlevelList;this._redrawId=Math.random(),this._paintList(e,n,t,this._redrawId);for(var r=0;r<i.length;r++){var a=i[r],o=this._layers[a];if(!o.__builtin__&&o.refresh){var s=0===r?this._backgroundColor:null;o.refresh(s)}}return this._opts.useDirtyRect&&(this._prevDisplayList=e.slice()),this},t.prototype.refreshHover=function(){this._paintHoverList(this.storage.getDisplayList(!1))},t.prototype._paintHoverList=function(t){var e=t.length,n=this._hoverlayer;if(n&&n.clear(),e){for(var i,r={inHover:!0,viewWidth:this._width,viewHeight:this._height},a=0;a<e;a++){var o=t[a];o.__inHover&&(n||(n=this._hoverlayer=this.getLayer(Vm)),i||(i=n.ctx).save(),$d(i,o,r,a===e-1))}i&&i.restore()}},t.prototype.getHoverLayer=function(){return this.getLayer(Vm)},t.prototype.paintOne=function(t,e){Kd(t,e)},t.prototype._paintList=function(t,e,n,i){if(this._redrawId===i){n=n||!1,this._updateLayerStatus(t);var r=this._doPaintList(t,e,n),a=r.finished,o=r.needsRefreshHover;if(this._needsManuallyCompositing&&this._compositeManually(),o&&this._paintHoverList(t),a)this.eachLayer((function(t){t.afterBrush&&t.afterBrush()}));else{var s=this;ai((function(){s._paintList(t,e,n,i)}))}}},t.prototype._compositeManually=function(){var t=this.getLayer(Hm).ctx,e=this._domRoot.width,n=this._domRoot.height;t.clearRect(0,0,e,n),this.eachBuiltinLayer((function(i){i.virtual&&t.drawImage(i.dom,0,0,e,n)}))},t.prototype._doPaintList=function(t,e,n){for(var i=this,r=[],a=this._opts.useDirtyRect,s=0;s<this._zlevelList.length;s++){var l=this._zlevelList[s],u=this._layers[l];u.__builtin__&&u!==this._hoverlayer&&(u.__dirty||n)&&r.push(u)}for(var h=!0,c=!1,p=function(o){var s=r[o],l=s.ctx,u=a&&s.createRepaintRects(t,e,f._width,f._height);l.save();var p,d=n?s.__startIndex:s.__drawIndex,g=!n&&s.incremental&&Date.now,y=g&&Date.now(),v=s.zlevel===f._zlevelList[0]?f._backgroundColor:null;if(s.__startIndex===s.__endIndex)s.clear(!1,v,u);else if(d===s.__startIndex){var m=t[d];m.incremental&&m.notClear&&!n||s.clear(!1,v,u)}-1===d&&(console.error("For some unknown reason. drawIndex is -1"),d=s.__startIndex);var _=function(e){var n={inHover:!1,allClipped:!1,prevEl:null,viewWidth:i._width,viewHeight:i._height};for(p=d;p<s.__endIndex;p++){var r=t[p];if(r.__inHover&&(c=!0),i._doPaintEl(r,s,a,e,n,p===s.__endIndex-1),g)if(Date.now()-y>15)break}n.prevElClipPaths&&l.restore()};if(u)if(0===u.length)p=s.__endIndex;else for(var x=f.dpr,b=0;b<u.length;++b){var w=u[b];l.save(),l.beginPath(),l.rect(w.x*x,w.y*x,w.width*x,w.height*x),l.clip(),_(w),l.restore()}else l.save(),_(),l.restore();s.__drawIndex=p,s.__drawIndex<s.__endIndex&&(h=!1)},f=this,d=0;d<r.length;d++)p(d);return o.wxa&&L(this._layers,(function(t){t&&t.ctx&&t.ctx.draw&&t.ctx.draw()})),{finished:h,needsRefreshHover:c}},t.prototype._doPaintEl=function(t,e,n,i,r,a){var o=e.ctx;if(n){var s=t.getPaintRect();(!i||s&&s.intersect(i))&&($d(o,t,r,a),t.setPrevPaintRect(s))}else $d(o,t,r,a)},t.prototype.getLayer=function(t,e){this._singleCanvas&&!this._needsManuallyCompositing&&(t=Hm);var n=this._layers[t];return n||((n=new Fm("zr_"+t,this,this.dpr)).zlevel=t,n.__builtin__=!0,this._layerConfig[t]?S(n,this._layerConfig[t],!0):this._layerConfig[t-Wm]&&S(n,this._layerConfig[t-Wm],!0),e&&(n.virtual=e),this.insertLayer(t,n),n.initContext()),n},t.prototype.insertLayer=function(t,e){var n=this._layers,i=this._zlevelList,r=i.length,a=this._domRoot,o=null,s=-1;if(n[t])b("ZLevel "+t+" has been used already");else if(function(t){return!!t&&(!!t.__builtin__||"function"==typeof t.resize&&"function"==typeof t.refresh)}(e)){if(r>0&&t>i[0]){for(s=0;s<r-1&&!(i[s]<t&&i[s+1]>t);s++);o=n[i[s]]}if(i.splice(s+1,0,t),n[t]=e,!e.virtual)if(o){var l=o.dom;l.nextSibling?a.insertBefore(e.dom,l.nextSibling):a.appendChild(e.dom)}else a.firstChild?a.insertBefore(e.dom,a.firstChild):a.appendChild(e.dom);e.__painter=this}else b("Layer of zlevel "+t+" is not valid")},t.prototype.eachLayer=function(t,e){for(var n=this._zlevelList,i=0;i<n.length;i++){var r=n[i];t.call(e,this._layers[r],r)}},t.prototype.eachBuiltinLayer=function(t,e){for(var n=this._zlevelList,i=0;i<n.length;i++){var r=n[i],a=this._layers[r];a.__builtin__&&t.call(e,a,r)}},t.prototype.eachOtherLayer=function(t,e){for(var n=this._zlevelList,i=0;i<n.length;i++){var r=n[i],a=this._layers[r];a.__builtin__||t.call(e,a,r)}},t.prototype.getLayers=function(){return this._layers},t.prototype._updateLayerStatus=function(t){function e(t){a&&(a.__endIndex!==t&&(a.__dirty=!0),a.__endIndex=t)}if(this.eachBuiltinLayer((function(t,e){t.__dirty=t.__used=!1})),this._singleCanvas)for(var n=1;n<t.length;n++){if((s=t[n]).zlevel!==t[n-1].zlevel||s.incremental){this._needsManuallyCompositing=!0;break}}var i,r,a=null,o=0;for(r=0;r<t.length;r++){var s,l=(s=t[r]).zlevel,u=void 0;i!==l&&(i=l,o=0),s.incremental?((u=this.getLayer(l+.001,this._needsManuallyCompositing)).incremental=!0,o=1):u=this.getLayer(l+(o>0?Wm:0),this._needsManuallyCompositing),u.__builtin__||b("ZLevel "+l+" has been used by unkown layer "+u.id),u!==a&&(u.__used=!0,u.__startIndex!==r&&(u.__dirty=!0),u.__startIndex=r,u.incremental?u.__drawIndex=-1:u.__drawIndex=r,e(r),a=u),s.__dirty&Wn.REDARAW_BIT&&!s.__inHover&&(u.__dirty=!0,u.incremental&&u.__drawIndex<0&&(u.__drawIndex=r))}e(r),this.eachBuiltinLayer((function(t,e){!t.__used&&t.getElementCount()>0&&(t.__dirty=!0,t.__startIndex=t.__endIndex=t.__drawIndex=0),t.__dirty&&t.__drawIndex<0&&(t.__drawIndex=t.__startIndex)}))},t.prototype.clear=function(){return this.eachBuiltinLayer(this._clearLayer),this},t.prototype._clearLayer=function(t){t.clear()},t.prototype.setBackgroundColor=function(t){this._backgroundColor=t,L(this._layers,(function(t){t.setUnpainted()}))},t.prototype.configLayer=function(t,e){if(e){var n=this._layerConfig;n[t]?S(n[t],e,!0):n[t]=e;for(var i=0;i<this._zlevelList.length;i++){var r=this._zlevelList[i];if(r===t||r===t+Wm)S(this._layers[r],n[t],!0)}}},t.prototype.delLayer=function(t){var e=this._layers,n=this._zlevelList,i=e[t];i&&(i.dom.parentNode.removeChild(i.dom),delete e[t],n.splice(D(n,t),1))},t.prototype.resize=function(t,e){if(this._domRoot.style){var n=this._domRoot;n.style.display="none";var i=this._opts;if(null!=t&&(i.width=t),null!=e&&(i.height=e),t=this._getSize(0),e=this._getSize(1),n.style.display="",this._width!==t||e!==this._height){for(var r in n.style.width=t+"px",n.style.height=e+"px",this._layers)this._layers.hasOwnProperty(r)&&this._layers[r].resize(t,e);this.refresh(!0)}this._width=t,this._height=e}else{if(null==t||null==e)return;this._width=t,this._height=e,this.getLayer(Hm).resize(t,e)}return this},t.prototype.clearLayer=function(t){var e=this._layers[t];e&&e.clear()},t.prototype.dispose=function(){this.root.innerHTML="",this.root=this.storage=this._domRoot=this._layers=null},t.prototype.getRenderedCanvas=function(t){if(t=t||{},this._singleCanvas&&!this._compositeManually)return this._layers[314159].dom;var e=new Fm("image",this,t.pixelRatio||this.dpr),n=e.ctx;if(e.initContext(),e.clear(!1,t.backgroundColor||this._backgroundColor),t.pixelRatio<=this.dpr){this.refresh();var i=e.dom.width,r=e.dom.height,a=e.ctx;this.eachLayer((function(t){t.__builtin__?a.drawImage(t.dom,0,0,i,r):t.renderToCanvas&&(e.ctx.save(),t.renderToCanvas(e.ctx),e.ctx.restore())}))}else for(var o={inHover:!1,viewWidth:this._width,viewHeight:this._height},s=this.storage.getDisplayList(!0),l=0,u=s.length;l<u;l++){$d(n,s[l],o,l===u-1)}return e.dom},t.prototype.getWidth=function(){return this._width},t.prototype.getHeight=function(){return this._height},t.prototype._getSize=function(t){var e=this._opts,n=["width","height"][t],i=["clientWidth","clientHeight"][t],r=["paddingLeft","paddingTop"][t],a=["paddingRight","paddingBottom"][t];if(null!=e[n]&&"auto"!==e[n])return parseFloat(e[n]);var o=this.root,s=document.defaultView.getComputedStyle(o);return(o[i]||Gm(s[n])||Gm(o.style[n]))-(Gm(s[r])||0)-(Gm(s[a])||0)|0},t.prototype.pathToImage=function(t,e){e=e||this.dpr;var n=document.createElement("canvas"),i=n.getContext("2d"),r=t.getBoundingRect(),a=t.style,o=a.shadowBlur*e,s=a.shadowOffsetX*e,l=a.shadowOffsetY*e,u=t.hasStroke()?a.lineWidth:0,h=Math.max(u/2,-s+o),c=Math.max(u/2,s+o),p=Math.max(u/2,-l+o),f=Math.max(u/2,l+o),d=r.width+h+c,g=r.height+p+f;n.width=d*e,n.height=g*e,i.scale(e,e),i.clearRect(0,0,d,g),i.dpr=e;var y={x:t.x,y:t.y,scaleX:t.scaleX,scaleY:t.scaleY,rotation:t.rotation,originX:t.originX,originY:t.originY};t.x=h-r.x,t.y=p-r.y,t.rotation=0,t.scaleX=1,t.scaleY=1,t.updateTransform(),t&&$d(i,t,{inHover:!1,viewWidth:this._width,viewHeight:this._height},!0);var v=new ko({style:{x:0,y:0,image:n}});return M(t,y),v},t}();var Ym=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.hasSymbolVisual=!0,n.legendSymbol="line",n}return n(e,t),e.prototype.getInitialData=function(t){return cv(this.getSource(),this,{useEncodeDefaulter:!0})},e.type="series.line",e.dependencies=["grid","polar"],e.defaultOption={zlevel:0,z:3,coordinateSystem:"cartesian2d",legendHoverLink:!0,clip:!0,label:{position:"top"},endLabel:{show:!1,valueAnimation:!0,distance:8},lineStyle:{width:2,type:"solid"},emphasis:{scale:!0,lineStyle:{width:"bolder"}},step:!1,smooth:!1,smoothMonotone:null,symbol:"emptyCircle",symbolSize:4,symbolRotate:null,showSymbol:!0,showAllSymbol:"auto",connectNulls:!1,sampling:"none",animationEasing:"linear",progressive:0,hoverLayerThreshold:1/0},e}(Bp);function Xm(t,e){var n=t.mapDimensionsAll("defaultedLabel"),i=n.length;if(1===i){var r=fp(t,e,n[0]);return null!=r?r+"":null}if(i){for(var a=[],o=0;o<n.length;o++)a.push(fp(t,e,n[o]));return a.join(" ")}}function qm(t,e){var n=t.mapDimensionsAll("defaultedLabel");if(!z(e))return e+"";for(var i=[],r=0;r<n.length;r++){var a=t.getDimensionInfo(n[r]);a&&i.push(e[a.index])}return i.join(" ")}var jm=function(t){function e(e,n,i,r){var a=t.call(this)||this;return a.updateData(e,n,i,r),a}return n(e,t),e.prototype._createSymbol=function(t,e,n,i,r){this.removeAll();var a=Rd(t,-1,-1,2,2,null,r);a.attr({z2:100,culling:!0,scaleX:i[0]/2,scaleY:i[1]/2}),a.drift=Zm,this._symbolType=t,this.add(a)},e.prototype.stopSymbolAnimation=function(t){this.childAt(0).stopAnimation(null,t)},e.prototype.getSymbolPath=function(){return this.childAt(0)},e.prototype.highlight=function(){ms(this.childAt(0))},e.prototype.downplay=function(){_s(this.childAt(0))},e.prototype.setZ=function(t,e){var n=this.childAt(0);n.zlevel=t,n.z=e},e.prototype.setDraggable=function(t){var e=this.childAt(0);e.draggable=t,e.cursor=t?"move":e.cursor},e.prototype.updateData=function(t,n,i,r){this.silent=!1;var a=t.getItemVisual(n,"symbol")||"circle",o=t.hostModel,s=e.getSymbolSize(t,n),l=a!==this._symbolType,u=r&&r.disableAnimation;if(l){var h=t.getItemVisual(n,"symbolKeepAspect");this._createSymbol(a,t,n,s,h)}else{(p=this.childAt(0)).silent=!1;var c={scaleX:s[0]/2,scaleY:s[1]/2};u?p.attr(c):eu(p,c,o,n)}if(this._updateCommon(t,n,s,i,r),l){var p=this.childAt(0);if(!u){c={scaleX:this._sizeX,scaleY:this._sizeY,style:{opacity:p.style.opacity}};p.scaleX=p.scaleY=0,p.style.opacity=0,nu(p,c,o,n)}}u&&this.childAt(0).stopAnimation("remove"),this._seriesModel=o},e.prototype._updateCommon=function(t,e,n,i,r){var a,o,s,l,u,h,c,p,f,d=this.childAt(0),g=t.hostModel;if(i&&(a=i.emphasisItemStyle,o=i.blurItemStyle,s=i.selectItemStyle,l=i.focus,u=i.blurScope,h=i.symbolOffset,c=i.labelStatesModels,p=i.hoverScale,f=i.cursorStyle),!i||t.hasItemOption){var y=i&&i.itemModel?i.itemModel:t.getItemModel(e),v=y.getModel("emphasis");a=v.getModel("itemStyle").getItemStyle(),s=y.getModel(["select","itemStyle"]).getItemStyle(),o=y.getModel(["blur","itemStyle"]).getItemStyle(),l=v.get("focus"),u=v.get("blurScope"),h=y.getShallow("symbolOffset"),c=pu(y),p=v.getShallow("scale"),f=y.getShallow("cursor")}var m=t.getItemVisual(e,"symbolRotate");d.attr("rotation",(m||0)*Math.PI/180||0),h&&(d.x=Ri(h[0],n[0]),d.y=Ri(h[1],n[1])),f&&d.attr("cursor",f);var _=t.getItemVisual(e,"style"),x=_.fill;if(d instanceof ko){var b=d.style;d.useStyle(M({image:b.image,x:b.x,y:b.y,width:b.width,height:b.height},_))}else d.__isEmptyBrush?d.useStyle(M({},_)):d.useStyle(_),d.style.decal=null,d.setColor(x,r&&r.symbolInnerColor),d.style.strokeNoScale=!0;var w=t.getItemVisual(e,"liftZ"),S=this._z2;null!=w?null==S&&(this._z2=d.z2,d.z2+=w):null!=S&&(d.z2=S,this._z2=null);var T=r&&r.useNameLabel;cu(d,c,{labelFetcher:g,labelDataIndex:e,defaultText:function(e){return T?t.getName(e):Xm(t,e)},inheritColor:x,defaultOpacity:_.opacity}),this._sizeX=n[0]/2,this._sizeY=n[1]/2;var C=d.ensureState("emphasis");if(C.style=a,d.ensureState("select").style=s,d.ensureState("blur").style=o,p){var D=Math.max(1.1,3/this._sizeY);C.scaleX=this._sizeX*D,C.scaleY=this._sizeY*D}this.setSymbolScale(1),Ds(this,l,u)},e.prototype.setSymbolScale=function(t){this.scaleX=this.scaleY=t},e.prototype.fadeOut=function(t,e){var n=this.childAt(0),i=this._seriesModel,r=Xo(this).dataIndex,a=e&&e.animation;if(this.silent=n.silent=!0,e&&e.fadeLabel){var o=n.getTextContent();o&&iu(o,{style:{opacity:0}},i,{dataIndex:r,removeOpt:a,cb:function(){n.removeTextContent()}})}else n.removeTextContent();iu(n,{style:{opacity:0},scaleX:0,scaleY:0},i,{dataIndex:r,cb:t,removeOpt:a})},e.getSymbolSize=function(t,e){var n=t.getItemVisual(e,"symbolSize");return n instanceof Array?n.slice():[+n,+n]},e}(Mi);function Zm(t,e){this.parent.drift(t,e)}function Km(t,e,n,i){return e&&!isNaN(e[0])&&!isNaN(e[1])&&!(i.isIgnore&&i.isIgnore(n))&&!(i.clipShape&&!i.clipShape.contain(e[0],e[1]))&&"none"!==t.getItemVisual(n,"symbol")}function $m(t){return null==t||G(t)||(t={isIgnore:t}),t||{}}function Qm(t){var e=t.hostModel,n=e.getModel("emphasis");return{emphasisItemStyle:n.getModel("itemStyle").getItemStyle(),blurItemStyle:e.getModel(["blur","itemStyle"]).getItemStyle(),selectItemStyle:e.getModel(["select","itemStyle"]).getItemStyle(),focus:n.get("focus"),blurScope:n.get("blurScope"),symbolRotate:e.get("symbolRotate"),symbolOffset:e.get("symbolOffset"),hoverScale:n.get("scale"),labelStatesModels:pu(e),cursorStyle:e.get("cursor")}}var Jm=function(){function t(t){this.group=new Mi,this._SymbolCtor=t||jm}return t.prototype.updateData=function(t,e){e=$m(e);var n=this.group,i=t.hostModel,r=this._data,a=this._SymbolCtor,o=e.disableAnimation,s=Qm(t),l={disableAnimation:o},u=e.getSymbolPoint||function(e){return t.getItemLayout(e)};r||n.removeAll(),t.diff(r).add((function(i){var r=u(i);if(Km(t,r,i,e)){var o=new a(t,i,s,l);o.setPosition(r),t.setItemGraphicEl(i,o),n.add(o)}})).update((function(h,c){var p=r.getItemGraphicEl(c),f=u(h);if(Km(t,f,h,e)){if(p){p.updateData(t,h,s,l);var d={x:f[0],y:f[1]};o?p.attr(d):eu(p,d,i)}else(p=new a(t,h)).setPosition(f);n.add(p),t.setItemGraphicEl(h,p)}else n.remove(p)})).remove((function(t){var e=r.getItemGraphicEl(t);e&&e.fadeOut((function(){n.remove(e)}))})).execute(),this._getSymbolPoint=u,this._data=t},t.prototype.isPersistent=function(){return!0},t.prototype.updateLayout=function(){var t=this,e=this._data;e&&e.eachItemGraphicEl((function(e,n){var i=t._getSymbolPoint(n);e.setPosition(i),e.markRedraw()}))},t.prototype.incrementalPrepareUpdate=function(t){this._seriesScope=Qm(t),this._data=null,this.group.removeAll()},t.prototype.incrementalUpdate=function(t,e,n){function i(t){t.isGroup||(t.incremental=!0,t.ensureState("emphasis").hoverLayer=!0)}n=$m(n);for(var r=t.start;r<t.end;r++){var a=e.getItemLayout(r);if(Km(e,a,r,n)){var o=new this._SymbolCtor(e,r,this._seriesScope);o.traverse(i),o.setPosition(a),this.group.add(o),e.setItemGraphicEl(r,o)}}},t.prototype.remove=function(t){var e=this.group,n=this._data;n&&t?n.eachItemGraphicEl((function(t){t.fadeOut((function(){e.remove(t)}))})):e.removeAll()},t}();function t_(t,e,n){var i=t.getBaseAxis(),r=t.getOtherAxis(i),a=function(t,e){var n=0,i=t.scale.getExtent();"start"===e?n=i[0]:"end"===e?n=i[1]:i[0]>0?n=i[0]:i[1]<0&&(n=i[1]);return n}(r,n),o=i.dim,s=r.dim,l=e.mapDimension(s),u=e.mapDimension(o),h="x"===s||"radius"===s?1:0,c=P(t.dimensions,(function(t){return e.mapDimension(t)})),p=!1,f=e.getCalculationInfo("stackResultDimension");return uv(e,c[0])&&(p=!0,c[0]=f),uv(e,c[1])&&(p=!0,c[1]=f),{dataDimsForPoint:c,valueStart:a,valueAxisDim:s,baseAxisDim:o,stacked:!!p,valueDim:l,baseDim:u,baseDataOffset:h,stackedOverDimension:e.getCalculationInfo("stackedOverDimension")}}function e_(t,e,n,i){var r=NaN;t.stacked&&(r=n.get(n.getCalculationInfo("stackedOverDimension"),i)),isNaN(r)&&(r=t.valueStart);var a=t.baseDataOffset,o=[];return o[a]=n.get(t.baseDim,i),o[1-a]=r,e.dataToPoint(o)}var n_="undefined"!=typeof Float32Array,i_=n_?Float32Array:Array;function r_(t){return z(t)?n_?new Float32Array(t):t:new i_(t)}var a_=Math.min,o_=Math.max;function s_(t,e){return isNaN(t)||isNaN(e)}function l_(t,e,n,i,r,a,o,s,l){for(var u,h,c,p,f,d,g=n,y=0;y<i;y++){var v=e[2*g],m=e[2*g+1];if(g>=r||g<0)break;if(s_(v,m)){if(l){g+=a;continue}break}if(g===n)t[a>0?"moveTo":"lineTo"](v,m),c=v,p=m;else{var _=v-u,x=m-h;if(_*_+x*x<.5){g+=a;continue}if(o>0){var b=g+a,w=e[2*b],S=e[2*b+1],M=y+1;if(l)for(;s_(w,S)&&M<i;)M++,w=e[2*(b+=a)],S=e[2*b+1];var T=.5,C=0,D=0,I=void 0,A=void 0;if(M>=i||s_(w,S))f=v,d=m;else{C=w-u,D=S-h;var k=v-u,L=w-v,P=m-h,O=S-m,R=void 0,N=void 0;"x"===s?(R=Math.abs(k),N=Math.abs(L),f=v-R*o,d=m,I=v+R*o,A=m):"y"===s?(R=Math.abs(P),N=Math.abs(O),f=v,d=m-R*o,I=v,A=m+R*o):(R=Math.sqrt(k*k+P*P),f=v-C*o*(1-(T=(N=Math.sqrt(L*L+O*O))/(N+R))),d=m-D*o*(1-T),A=m+D*o*T,I=a_(I=v+C*o*T,o_(w,v)),A=a_(A,o_(S,m)),I=o_(I,a_(w,v)),d=m-(D=(A=o_(A,a_(S,m)))-m)*R/N,f=a_(f=v-(C=I-v)*R/N,o_(u,v)),d=a_(d,o_(h,m)),I=v+(C=v-(f=o_(f,a_(u,v))))*N/R,A=m+(D=m-(d=o_(d,a_(h,m))))*N/R)}t.bezierCurveTo(c,p,f,d,v,m),c=I,p=A}else t.lineTo(v,m)}u=v,h=m,g+=a}return y}var u_=function(){this.smooth=0,this.smoothConstraint=!0},h_=function(t){function e(e){var n=t.call(this,e)||this;return n.type="ec-polyline",n}return n(e,t),e.prototype.getDefaultStyle=function(){return{stroke:"#000",fill:null}},e.prototype.getDefaultShape=function(){return new u_},e.prototype.buildPath=function(t,e){var n=e.points,i=0,r=n.length/2;if(e.connectNulls){for(;r>0&&s_(n[2*r-2],n[2*r-1]);r--);for(;i<r&&s_(n[2*i],n[2*i+1]);i++);}for(;i<r;)i+=l_(t,n,i,r,r,1,e.smooth,e.smoothMonotone,e.connectNulls)+1},e.prototype.getPointOn=function(t,e){this.path||(this.createPathProxy(),this.buildPath(this.path,this.shape));for(var n,i,r=this.path.data,a=ro.CMD,o="x"===e,s=[],l=0;l<r.length;){var u=void 0,h=void 0,c=void 0,p=void 0,f=void 0,d=void 0,g=void 0;switch(r[l++]){case a.M:n=r[l++],i=r[l++];break;case a.L:if(u=r[l++],h=r[l++],(g=o?(t-n)/(u-n):(t-i)/(h-i))<=1&&g>=0){var y=o?(h-i)*g+i:(u-n)*g+n;return o?[t,y]:[y,t]}n=u,i=h;break;case a.C:u=r[l++],h=r[l++],c=r[l++],p=r[l++],f=r[l++],d=r[l++];var v=o?fa(n,u,c,f,t,s):fa(i,h,p,d,t,s);if(v>0)for(var m=0;m<v;m++){var _=s[m];if(_<=1&&_>=0){y=o?ca(i,h,p,d,_):ca(n,u,c,f,_);return o?[t,y]:[y,t]}}n=f,i=d}}},e}(To),c_=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e}(u_),p_=function(t){function e(e){var n=t.call(this,e)||this;return n.type="ec-polygon",n}return n(e,t),e.prototype.getDefaultShape=function(){return new c_},e.prototype.buildPath=function(t,e){var n=e.points,i=e.stackedOnPoints,r=0,a=n.length/2,o=e.smoothMonotone;if(e.connectNulls){for(;a>0&&s_(n[2*a-2],n[2*a-1]);a--);for(;r<a&&s_(n[2*r],n[2*r+1]);r++);}for(;r<a;){var s=l_(t,n,r,a,a,1,e.smooth,o,e.connectNulls);l_(t,i,r+s-1,s,a,-1,e.stackedOnSmooth,o,e.connectNulls),r+=s+1,t.closePath()}},e}(To);function f_(t,e,n,i,r){var a=t.getArea(),o=a.x,s=a.y,l=a.width,u=a.height,h=n.get(["lineStyle","width"])||2;o-=h/2,s-=h/2,l+=h,u+=h,o=Math.floor(o),l=Math.round(l);var c=new No({shape:{x:o,y:s,width:l,height:u}});if(e){var p=t.getBaseAxis(),f=p.isHorizontal(),d=p.inverse;f?(d&&(c.shape.x+=l),c.shape.width=0):(d||(c.shape.y+=u),c.shape.height=0),nu(c,{shape:{width:l,height:u,x:o,y:s}},n,null,i,"function"==typeof r?function(t){r(t,c)}:null)}return c}function d_(t,e,n){var i=t.getArea(),r=Ni(i.r0,1),a=Ni(i.r,1),o=new gl({shape:{cx:Ni(t.cx,1),cy:Ni(t.cy,1),r0:r,r:a,startAngle:i.startAngle,endAngle:i.endAngle,clockwise:i.clockwise}});e&&("angle"===t.getBaseAxis().dim?o.shape.endAngle=i.startAngle:o.shape.r=r,nu(o,{shape:{endAngle:i.endAngle,r:a}},n));return o}function g_(t,e){return t.type===e}function y_(t,e){if(t.length===e.length){for(var n=0;n<t.length;n++)if(t[n]!==e[n])return;return!0}}function v_(t){for(var e=1/0,n=1/0,i=-1/0,r=-1/0,a=0;a<t.length;){var o=t[a++],s=t[a++];isNaN(o)||(e=Math.min(o,e),i=Math.max(o,i)),isNaN(s)||(n=Math.min(s,n),r=Math.max(s,r))}return[[e,n],[i,r]]}function m_(t,e){var n=v_(t),i=n[0],r=n[1],a=v_(e),o=a[0],s=a[1];return Math.max(Math.abs(i[0]-o[0]),Math.abs(i[1]-o[1]),Math.abs(r[0]-s[0]),Math.abs(r[1]-s[1]))}function __(t){return"number"==typeof t?t:t?.5:0}function x_(t,e,n){for(var i=e.getBaseAxis(),r="x"===i.dim||"radius"===i.dim?0:1,a=[],o=0,s=[],l=[],u=[];o<t.length-2;o+=2)switch(u[0]=t[o+2],u[1]=t[o+3],l[0]=t[o],l[1]=t[o+1],a.push(l[0],l[1]),n){case"end":s[r]=u[r],s[1-r]=l[1-r],a.push(s[0],s[1]);break;case"middle":var h=(l[r]+u[r])/2,c=[];s[r]=c[r]=h,s[1-r]=l[1-r],c[1-r]=u[1-r],a.push(s[0],s[1]),a.push(c[0],c[1]);break;default:s[r]=l[r],s[1-r]=u[1-r],a.push(s[0],s[1])}return a.push(t[o++],t[o++]),a}function b_(t,e,n){var i=t.get("showAllSymbol"),r="auto"===i;if(!i||r){var a=n.getAxesByScale("ordinal")[0];if(a&&(!r||!function(t,e){var n=t.getExtent(),i=Math.abs(n[1]-n[0])/t.scale.count();isNaN(i)&&(i=0);for(var r=e.count(),a=Math.max(1,Math.round(r/5)),o=0;o<r;o+=a)if(1.5*jm.getSymbolSize(e,o)[t.isHorizontal()?1:0]>i)return!1;return!0}(a,e))){var o=e.mapDimension(a.dim),s={};return L(a.getViewLabels(),(function(t){var e=a.scale.getRawOrdinalNumber(t.tickValue);s[e]=1})),function(t){return!s.hasOwnProperty(e.get(o,t))}}}}function w_(t,e){return[t[2*e],t[2*e+1]]}function S_(t,e,n,i){if(g_(e,"cartesian2d")){var r=i.getModel("endLabel"),a=r.get("show"),o=r.get("valueAnimation"),s=i.getData(),l={lastFrameIndex:0},u=a?function(n,i){t._endLabelOnDuring(n,i,s,l,o,r,e)}:null,h=e.getBaseAxis().isHorizontal(),c=f_(e,n,i,(function(){var e=t._endLabel;e&&n&&null!=l.originalX&&e.attr({x:l.originalX,y:l.originalY})}),u);if(!i.get("clip",!0)){var p=c.shape,f=Math.max(p.width,p.height);h?(p.y-=f,p.height+=2*f):(p.x-=f,p.width+=2*f)}return u&&u(1,c),c}return d_(e,n,i)}var M_=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.init=function(){var t=new Mi,e=new Jm;this.group.add(e.group),this._symbolDraw=e,this._lineGroup=t},e.prototype.render=function(t,e,n){var i=this,r=t.coordinateSystem,a=this.group,o=t.getData(),s=t.getModel("lineStyle"),l=t.getModel("areaStyle"),u=o.getLayout("points")||[],h="polar"===r.type,c=this._coordSys,p=this._symbolDraw,f=this._polyline,d=this._polygon,g=this._lineGroup,y=t.get("animation"),v=!l.isEmpty(),m=l.get("origin"),_=t_(r,o,m),x=v&&function(t,e,n){if(!n.valueDim)return[];for(var i=e.count(),r=r_(2*i),a=0;a<i;a++){var o=e_(n,t,e,a);r[2*a]=o[0],r[2*a+1]=o[1]}return r}(r,o,_),b=t.get("showSymbol"),w=b&&!h&&b_(t,o,r),S=this._data;S&&S.eachItemGraphicEl((function(t,e){t.__temp&&(a.remove(t),S.setItemGraphicEl(e,null))})),b||p.remove(),a.add(g);var M,C=!h&&t.get("step");r&&r.getArea&&t.get("clip",!0)&&(null!=(M=r.getArea()).width?(M.x-=.1,M.y-=.1,M.width+=.2,M.height+=.2):M.r0&&(M.r0-=.5,M.r+=.5)),this._clipShapeForSymbol=M,f&&c.type===r.type&&C===this._step?(v&&!d?d=this._newPolygon(u,x):d&&!v&&(g.remove(d),d=this._polygon=null),h||this._initOrUpdateEndLabel(t,r),g.setClipPath(S_(this,r,!1,t)),b&&p.updateData(o,{isIgnore:w,clipShape:M,disableAnimation:!0,getSymbolPoint:function(t){return[u[2*t],u[2*t+1]]}}),y_(this._stackedOnPoints,x)&&y_(this._points,u)||(y?this._doUpdateAnimation(o,x,r,n,C,m):(C&&(u=x_(u,r,C),x&&(x=x_(x,r,C))),f.setShape({points:u}),d&&d.setShape({points:u,stackedOnPoints:x})))):(b&&p.updateData(o,{isIgnore:w,clipShape:M,disableAnimation:!0,getSymbolPoint:function(t){return[u[2*t],u[2*t+1]]}}),y&&this._initSymbolLabelAnimation(o,r,M),C&&(u=x_(u,r,C),x&&(x=x_(x,r,C))),f=this._newPolyline(u),v&&(d=this._newPolygon(u,x)),h||this._initOrUpdateEndLabel(t,r),g.setClipPath(S_(this,r,!0,t)));var D=function(t,e){var n=t.getVisual("visualMeta");if(n&&n.length&&t.count()&&"cartesian2d"===e.type){for(var i,r,a=n.length-1;a>=0;a--){var o=n[a].dimension,s=t.dimensions[o],l=t.getDimensionInfo(s);if("x"===(i=l&&l.coordDim)||"y"===i){r=n[a];break}}if(r){var u=e.getAxis(i),h=P(r.stops,(function(t){return{offset:0,coord:u.toGlobalCoord(u.dataToCoord(t.value)),color:t.color}})),c=h.length,p=r.outerColors.slice();c&&h[0].coord>h[c-1].coord&&(h.reverse(),p.reverse());var f=h[0].coord-10,d=h[c-1].coord+10,g=d-f;if(g<.001)return"transparent";L(h,(function(t){t.offset=(t.coord-f)/g})),h.push({offset:c?h[c-1].offset:.5,color:p[1]||"transparent"}),h.unshift({offset:c?h[0].offset:.5,color:p[0]||"transparent"});var y=new Nl(0,0,0,0,h,!0);return y[i]=f,y[i+"2"]=d,y}}}(o,r)||o.getVisual("style")[o.getVisual("drawType")],I=t.get(["emphasis","focus"]),A=t.get(["emphasis","blurScope"]);(f.useStyle(T(s.getLineStyle(),{fill:"none",stroke:D,lineJoin:"bevel"})),ks(f,t,"lineStyle"),f.style.lineWidth>0&&"bolder"===t.get(["emphasis","lineStyle","width"]))&&(f.getState("emphasis").style.lineWidth=f.style.lineWidth+1);Xo(f).seriesIndex=t.seriesIndex,Ds(f,I,A);var k=__(t.get("smooth")),O=t.get("smoothMonotone"),R=t.get("connectNulls");if(f.setShape({smooth:k,smoothMonotone:O,connectNulls:R}),d){var N=o.getCalculationInfo("stackedOnSeries"),E=0;d.useStyle(T(l.getAreaStyle(),{fill:D,opacity:.7,lineJoin:"bevel",decal:o.getVisual("style").decal})),N&&(E=__(N.get("smooth"))),d.setShape({smooth:k,stackedOnSmooth:E,smoothMonotone:O,connectNulls:R}),ks(d,t,"areaStyle"),Xo(d).seriesIndex=t.seriesIndex,Ds(d,I,A)}var B=function(t){i._changePolyState(t)};o.eachItemGraphicEl((function(t){t&&(t.onHoverStateChange=B)})),this._polyline.onHoverStateChange=B,this._data=o,this._coordSys=r,this._stackedOnPoints=x,this._points=u,this._step=C,this._valueOrigin=m},e.prototype.dispose=function(){},e.prototype.highlight=function(t,e,n,i){var r=t.getData(),a=ur(r,i);if(this._changePolyState("emphasis"),!(a instanceof Array)&&null!=a&&a>=0){var o=r.getLayout("points"),s=r.getItemGraphicEl(a);if(!s){var l=o[2*a],u=o[2*a+1];if(isNaN(l)||isNaN(u))return;if(this._clipShapeForSymbol&&!this._clipShapeForSymbol.contain(l,u))return;(s=new jm(r,a)).x=l,s.y=u,s.setZ(t.get("zlevel"),t.get("z")),s.__temp=!0,r.setItemGraphicEl(a,s),s.stopSymbolAnimation(!0),this.group.add(s)}s.highlight()}else Zp.prototype.highlight.call(this,t,e,n,i)},e.prototype.downplay=function(t,e,n,i){var r=t.getData(),a=ur(r,i);if(this._changePolyState("normal"),null!=a&&a>=0){var o=r.getItemGraphicEl(a);o&&(o.__temp?(r.setItemGraphicEl(a,null),this.group.remove(o)):o.downplay())}else Zp.prototype.downplay.call(this,t,e,n,i)},e.prototype._changePolyState=function(t){var e=this._polygon;gs(this._polyline,t),e&&gs(e,t)},e.prototype._newPolyline=function(t){var e=this._polyline;return e&&this._lineGroup.remove(e),e=new h_({shape:{points:t},segmentIgnoreThreshold:2,z2:10}),this._lineGroup.add(e),this._polyline=e,e},e.prototype._newPolygon=function(t,e){var n=this._polygon;return n&&this._lineGroup.remove(n),n=new p_({shape:{points:t,stackedOnPoints:e},segmentIgnoreThreshold:2}),this._lineGroup.add(n),this._polygon=n,n},e.prototype._initSymbolLabelAnimation=function(t,e,n){var i,r,a=e.getBaseAxis(),o=a.inverse;"cartesian2d"===e.type?(i=a.isHorizontal(),r=!1):"polar"===e.type&&(i="angle"===a.dim,r=!0);var s=t.hostModel,l=s.get("animationDuration");"function"==typeof l&&(l=l(null));var u=s.get("animationDelay")||0,h="function"==typeof u?u(null):u;t.eachItemGraphicEl((function(t,a){var s=t;if(s){var c=[t.x,t.y],p=void 0,f=void 0,d=void 0;if(r){var g=n,y=e.pointToCoord(c);i?(p=g.startAngle,f=g.endAngle,d=-y[1]/180*Math.PI):(p=g.r0,f=g.r,d=y[0])}else{var v=n;i?(p=v.x,f=v.x+v.width,d=t.x):(p=v.y+v.height,f=v.y,d=t.y)}var m=f===p?0:(d-p)/(f-p);o&&(m=1-m);var _="function"==typeof u?u(a):l*m+h,x=s.getSymbolPath(),b=x.getTextContent();s.attr({scaleX:0,scaleY:0}),s.animateTo({scaleX:1,scaleY:1},{duration:200,delay:_}),b&&b.animateFrom({style:{opacity:0}},{duration:300,delay:_}),x.disableLabelAnimation=!0}}))},e.prototype._initOrUpdateEndLabel=function(t,e){var n=t.getModel("endLabel");if(n.get("show")){var i=t.getData(),r=this._polyline,a=this._endLabel;a||((a=this._endLabel=new zo({z2:200})).ignoreClip=!0,r.setTextContent(this._endLabel),r.disableLabelAnimation=!0);var o=function(t){for(var e,n,i=t.length/2;i>0&&(e=t[2*i-2],n=t[2*i-1],isNaN(e)||isNaN(n));i--);return i-1}(i.getLayout("points"));o>=0&&(cu(r,pu(t,"endLabel"),{labelFetcher:t,labelDataIndex:o,defaultText:function(t,e,n){return null!=n?qm(i,n):Xm(i,t)},enableTextSetter:!0},function(t,e){var n=e.getBaseAxis(),i=n.isHorizontal(),r=n.inverse,a=i?r?"right":"left":"center",o=i?"middle":r?"top":"bottom";return{normal:{align:t.get("align")||a,verticalAlign:t.get("verticalAlign")||o}}}(n,e)),r.textConfig.position=null)}else this._endLabel&&(this._polyline.removeTextContent(),this._endLabel=null)},e.prototype._endLabelOnDuring=function(t,e,n,i,r,a,o){var s=this._endLabel,l=this._polyline;if(s){t<1&&null==i.originalX&&(i.originalX=s.x,i.originalY=s.y);var u=n.getLayout("points"),h=n.hostModel,c=h.get("connectNulls"),p=a.get("precision"),f=a.get("distance")||0,d=o.getBaseAxis(),g=d.isHorizontal(),y=d.inverse,v=e.shape,m=y?g?v.x:v.y+v.height:g?v.x+v.width:v.y,_=(g?f:0)*(y?-1:1),x=(g?0:-f)*(y?-1:1),b=g?"x":"y",w=function(t,e,n){for(var i,r,a=t.length/2,o="x"===n?0:1,s=0,l=-1,u=0;u<a;u++)if(r=t[2*u+o],!isNaN(r)&&!isNaN(t[2*u+1-o]))if(0!==u){if(i<=e&&r>=e||i>=e&&r<=e){l=u;break}s=u,i=r}else i=r;return{range:[s,l],t:(e-i)/(r-i)}}(u,m,b),S=w.range,M=S[1]-S[0],T=void 0;if(M>=1){if(M>1&&!c){var C=w_(u,S[0]);s.attr({x:C[0]+_,y:C[1]+x}),r&&(T=h.getRawValue(S[0]))}else{(C=l.getPointOn(m,b))&&s.attr({x:C[0]+_,y:C[1]+x});var D=h.getRawValue(S[0]),I=h.getRawValue(S[1]);r&&(T=yr(n,p,D,I,w.t))}i.lastFrameIndex=S[0]}else{var A=1===t||i.lastFrameIndex>0?S[0]:0;C=w_(u,A);r&&(T=h.getRawValue(A)),s.attr({x:C[0]+_,y:C[1]+x})}r&&_u(s).setLabelText(T)}},e.prototype._doUpdateAnimation=function(t,e,n,i,r,a){var o=this._polyline,s=this._polygon,l=t.hostModel,u=function(t,e,n,i,r,a,o,s){for(var l=function(t,e){var n=[];return e.diff(t).add((function(t){n.push({cmd:"+",idx:t})})).update((function(t,e){n.push({cmd:"=",idx:e,idx1:t})})).remove((function(t){n.push({cmd:"-",idx:t})})).execute(),n}(t,e),u=[],h=[],c=[],p=[],f=[],d=[],g=[],y=t_(r,e,o),v=t_(a,t,s),m=t.getLayout("points")||[],_=e.getLayout("points")||[],x=0;x<l.length;x++){var b=l[x],w=!0,S=void 0,M=void 0;switch(b.cmd){case"=":S=2*b.idx,M=2*b.idx1;var T=m[S],C=m[S+1],D=_[M],I=_[M+1];(isNaN(T)||isNaN(C))&&(T=D,C=I),u.push(T,C),h.push(D,I),c.push(n[S],n[S+1]),p.push(i[M],i[M+1]),g.push(e.getRawIndex(b.idx1));break;case"+":var A=b.idx,k=y.dataDimsForPoint,L=r.dataToPoint([e.get(k[0],A),e.get(k[1],A)]);M=2*A,u.push(L[0],L[1]),h.push(_[M],_[M+1]);var P=e_(y,r,e,A);c.push(P[0],P[1]),p.push(i[M],i[M+1]),g.push(e.getRawIndex(A));break;case"-":var O=b.idx,R=t.getRawIndex(O),N=v.dataDimsForPoint;if(S=2*O,R!==O){var E=a.dataToPoint([t.get(N[0],O),t.get(N[1],O)]),B=e_(v,a,t,O);u.push(m[S],m[S+1]),h.push(E[0],E[1]),c.push(n[S],n[S+1]),p.push(B[0],B[1]),g.push(R)}else w=!1}w&&(f.push(b),d.push(d.length))}d.sort((function(t,e){return g[t]-g[e]}));var z=u.length,F=r_(z),V=r_(z),H=r_(z),W=r_(z),G=[];for(x=0;x<d.length;x++){var U=d[x],Y=2*x,X=2*U;F[Y]=u[X],F[Y+1]=u[X+1],V[Y]=h[X],V[Y+1]=h[X+1],H[Y]=c[X],H[Y+1]=c[X+1],W[Y]=p[X],W[Y+1]=p[X+1],G[x]=f[U]}return{current:F,next:V,stackedOnCurrent:H,stackedOnNext:W,status:G}}(this._data,t,this._stackedOnPoints,e,this._coordSys,n,this._valueOrigin,a),h=u.current,c=u.stackedOnCurrent,p=u.next,f=u.stackedOnNext;if(r&&(h=x_(u.current,n,r),c=x_(u.stackedOnCurrent,n,r),p=x_(u.next,n,r),f=x_(u.stackedOnNext,n,r)),m_(h,p)>3e3||s&&m_(c,f)>3e3)return o.setShape({points:p}),void(s&&s.setShape({points:p,stackedOnPoints:f}));o.shape.__points=u.current,o.shape.points=h;var d={shape:{points:p}};u.current!==h&&(d.shape.__points=u.next),o.stopAnimation(),eu(o,d,l),s&&(s.setShape({points:h,stackedOnPoints:c}),s.stopAnimation(),eu(s,{shape:{stackedOnPoints:f}},l),o.shape.points!==s.shape.points&&(s.shape.points=o.shape.points));for(var g=[],y=u.status,v=0;v<y.length;v++){if("="===y[v].cmd){var m=t.getItemGraphicEl(y[v].idx1);m&&g.push({el:m,ptIdx:v})}}o.animators&&o.animators.length&&o.animators[0].during((function(){s&&s.dirtyShape();for(var t=o.shape.__points,e=0;e<g.length;e++){var n=g[e].el,i=2*g[e].ptIdx;n.x=t[i],n.y=t[i+1],n.markRedraw()}}))},e.prototype.remove=function(t){var e=this.group,n=this._data;this._lineGroup.removeAll(),this._symbolDraw.remove(!0),n&&n.eachItemGraphicEl((function(t,i){t.__temp&&(e.remove(t),n.setItemGraphicEl(i,null))})),this._polyline=this._polygon=this._coordSys=this._points=this._stackedOnPoints=this._endLabel=this._data=null},e.type="line",e}(Zp);var T_={average:function(t){for(var e=0,n=0,i=0;i<t.length;i++)isNaN(t[i])||(e+=t[i],n++);return 0===n?NaN:e/n},sum:function(t){for(var e=0,n=0;n<t.length;n++)e+=t[n]||0;return e},max:function(t){for(var e=-1/0,n=0;n<t.length;n++)t[n]>e&&(e=t[n]);return isFinite(e)?e:NaN},min:function(t){for(var e=1/0,n=0;n<t.length;n++)t[n]<e&&(e=t[n]);return isFinite(e)?e:NaN},nearest:function(t){return t[0]}},C_=function(t){return Math.round(t.length/2)};function D_(t){return{seriesType:t,reset:function(t,e,n){var i=t.getData(),r=t.get("sampling"),a=t.coordinateSystem,o=i.count();if(o>10&&"cartesian2d"===a.type&&r){var s=a.getBaseAxis(),l=a.getOtherAxis(s),u=s.getExtent(),h=n.getDevicePixelRatio(),c=Math.abs(u[1]-u[0])*(h||1),p=Math.round(o/c);if(p>1){"lttb"===r&&t.setData(i.lttbDownSample(i.mapDimension(l.dim),1/p));var f=void 0;"string"==typeof r?f=T_[r]:"function"==typeof r&&(f=r),f&&t.setData(i.downSample(i.mapDimension(l.dim),1/p,f,C_))}}}}}var I_=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.getInitialData=function(t,e){return cv(this.getSource(),this,{useEncodeDefaulter:!0})},e.prototype.getMarkerPosition=function(t){var e=this.coordinateSystem;if(e){var n=e.dataToPoint(e.clampData(t)),i=this.getData(),r=i.getLayout("offset"),a=i.getLayout("size");return n[e.getBaseAxis().isHorizontal()?0:1]+=r+a/2,n}return[NaN,NaN]},e.type="series.__base_bar__",e.defaultOption={zlevel:0,z:2,coordinateSystem:"cartesian2d",legendHoverLink:!0,barMinHeight:0,barMinAngle:0,large:!1,largeThreshold:400,progressive:3e3,progressiveChunkMode:"mod"},e}(Bp);Bp.registerClass(I_);var A_=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}var i,r;return n(e,t),e.prototype.getInitialData=function(){return cv(this.getSource(),this,{useEncodeDefaulter:!0,createInvertedIndices:!!this.get("realtimeSort",!0)||null})},e.prototype.getProgressive=function(){return!!this.get("large")&&this.get("progressive")},e.prototype.getProgressiveThreshold=function(){var t=this.get("progressiveThreshold"),e=this.get("largeThreshold");return e>t&&(t=e),t},e.prototype.brushSelector=function(t,e,n){return n.rect(e.getItemLayout(t))},e.type="series.bar",e.dependencies=["grid","polar"],e.defaultOption=(i=I_.defaultOption,r={clip:!0,roundCap:!1,showBackground:!1,backgroundStyle:{color:"rgba(180, 180, 180, 0.2)",borderColor:null,borderWidth:0,borderType:"solid",borderRadius:0,shadowBlur:0,shadowColor:null,shadowOffsetX:0,shadowOffsetY:0,opacity:1},select:{itemStyle:{borderColor:"#212121"}},realtimeSort:!1},S(S({},i,!0),r,!0)),e}(I_),k_=function(){this.cx=0,this.cy=0,this.r0=0,this.r=0,this.startAngle=0,this.endAngle=2*Math.PI,this.clockwise=!0},L_=function(t){function e(e){var n=t.call(this,e)||this;return n.type="sausage",n}return n(e,t),e.prototype.getDefaultShape=function(){return new k_},e.prototype.buildPath=function(t,e){var n=e.cx,i=e.cy,r=Math.max(e.r0||0,0),a=Math.max(e.r,0),o=.5*(a-r),s=r+o,l=e.startAngle,u=e.endAngle,h=e.clockwise,c=Math.cos(l),p=Math.sin(l),f=Math.cos(u),d=Math.sin(u);(h?u-l<2*Math.PI:l-u<2*Math.PI)&&(t.moveTo(c*r+n,p*r+i),t.arc(c*s+n,p*s+i,o,-Math.PI+l,l,!h)),t.arc(n,i,a,l,u,!h),t.moveTo(f*a+n,d*a+i),t.arc(f*s+n,d*s+i,o,u-2*Math.PI,u-Math.PI,!h),0!==r&&(t.arc(n,i,r,u,l,h),t.moveTo(c*r+n,d*r+i)),t.closePath()},e}(To),P_=["itemStyle","borderWidth"],O_=["itemStyle","borderRadius"],R_=[0,0],N_=Math.max,E_=Math.min;var B_=function(t){function e(){var n=t.call(this)||this;return n.type=e.type,n._isFirstFrame=!0,n}return n(e,t),e.prototype.render=function(t,e,n,i){this._model=t,this._removeOnRenderedListener(n),this._updateDrawMode(t);var r=t.get("coordinateSystem");("cartesian2d"===r||"polar"===r)&&(this._isLargeDraw?this._renderLarge(t,e,n):this._renderNormal(t,e,n,i))},e.prototype.incrementalPrepareRender=function(t){this._clear(),this._updateDrawMode(t),this._updateLargeClip(t)},e.prototype.incrementalRender=function(t,e){this._incrementalRenderLarge(t,e)},e.prototype._updateDrawMode=function(t){var e=t.pipelineContext.large;null!=this._isLargeDraw&&e===this._isLargeDraw||(this._isLargeDraw=e,this._clear())},e.prototype._renderNormal=function(t,e,n,i){var r,a=this.group,o=t.getData(),s=this._data,l=t.coordinateSystem,u=l.getBaseAxis();"cartesian2d"===l.type?r=u.isHorizontal():"polar"===l.type&&(r="angle"===u.dim);var h=t.isAnimationEnabled()?t:null,c=function(t,e){var n=t.get("realtimeSort",!0),i=e.getBaseAxis();0;if(n&&"category"===i.type&&"cartesian2d"===e.type)return{baseAxis:i,otherAxis:e.getOtherAxis(i)}}(t,l);c&&this._enableRealtimeSort(c,o,n);var p=t.get("clip",!0)||c,f=function(t,e){var n=t.getArea&&t.getArea();if(g_(t,"cartesian2d")){var i=t.getBaseAxis();if("category"!==i.type||!i.onBand){var r=e.getLayout("bandWidth");i.isHorizontal()?(n.x-=r,n.width+=2*r):(n.y-=r,n.height+=2*r)}}return n}(l,o);a.removeClipPath();var d=t.get("roundCap",!0),g=t.get("showBackground",!0),y=t.getModel("backgroundStyle"),v=y.get("borderRadius")||0,m=[],_=this._backgroundEls,x=i&&i.isInitSort,b=i&&"changeAxisOrder"===i.type;function w(t){var e=H_[l.type](o,t),n=function(t,e,n){return new("polar"===t.type?gl:No)({shape:q_(e,n,t),silent:!0,z2:0})}(l,r,e);return n.useStyle(y.getItemStyle()),"cartesian2d"===l.type&&n.setShape("r",v),m[t]=n,n}o.diff(s).add((function(e){var n=o.getItemModel(e),i=H_[l.type](o,e,n);if(g&&w(e),o.hasValue(e)){var s=!1;p&&(s=z_[l.type](f,i));var y=F_[l.type](t,o,e,i,r,h,u.model,!1,d);W_(y,o,e,n,i,t,r,"polar"===l.type),x?y.attr({shape:i}):c?V_(c,h,y,i,e,r,!1,!1):nu(y,{shape:i},t,e),o.setItemGraphicEl(e,y),a.add(y),y.ignore=s}})).update((function(e,n){var i=o.getItemModel(e),S=H_[l.type](o,e,i);if(g){var M=void 0;0===_.length?M=w(n):((M=_[n]).useStyle(y.getItemStyle()),"cartesian2d"===l.type&&M.setShape("r",v),m[e]=M);var T=H_[l.type](o,e);eu(M,{shape:q_(r,T,l)},h,e)}var C=s.getItemGraphicEl(n);if(!o.hasValue(e))return a.remove(C),void(C=null);var D=!1;p&&(D=z_[l.type](f,S))&&a.remove(C),C||(C=F_[l.type](t,o,e,S,r,h,u.model,!!C,d)),b||W_(C,o,e,i,S,t,r,"polar"===l.type),x?C.attr({shape:S}):c?V_(c,h,C,S,e,r,!0,b):eu(C,{shape:S},t,e,null),o.setItemGraphicEl(e,C),C.ignore=D,a.add(C)})).remove((function(e){var n=s.getItemGraphicEl(e);n&&au(n,t,e)})).execute();var S=this._backgroundGroup||(this._backgroundGroup=new Mi);S.removeAll();for(var M=0;M<m.length;++M)S.add(m[M]);a.add(S),this._backgroundEls=m,this._data=o},e.prototype._renderLarge=function(t,e,n){this._clear(),Y_(t,this.group),this._updateLargeClip(t)},e.prototype._incrementalRenderLarge=function(t,e){this._removeBackground(),Y_(e,this.group,!0)},e.prototype._updateLargeClip=function(t){var e=t.get("clip",!0)?function(t,e,n,i,r){return t?"polar"===t.type?d_(t,e,n):"cartesian2d"===t.type?f_(t,e,n,i,r):null:null}(t.coordinateSystem,!1,t):null;e?this.group.setClipPath(e):this.group.removeClipPath()},e.prototype._enableRealtimeSort=function(t,e,n){var i=this;if(e.count()){var r=t.baseAxis;if(this._isFirstFrame)this._dispatchInitSort(e,t,n),this._isFirstFrame=!1;else{var a=function(t){var n=e.getItemGraphicEl(t);if(n){var i=n.shape;return(r.isHorizontal()?Math.abs(i.height):Math.abs(i.width))||0}return 0};this._onRendered=function(){i._updateSortWithinSameData(e,a,r,n)},n.getZr().on("rendered",this._onRendered)}}},e.prototype._dataSort=function(t,e,n){var i=[];return t.each(t.mapDimension(e.dim),(function(t,e){var r=n(e);r=null==r?NaN:r,i.push({dataIndex:e,mappedValue:r,ordinalNumber:t})})),i.sort((function(t,e){return e.mappedValue-t.mappedValue})),{ordinalNumbers:P(i,(function(t){return t.ordinalNumber}))}},e.prototype._isOrderChangedWithinSameData=function(t,e,n){for(var i=n.scale,r=t.mapDimension(n.dim),a=Number.MAX_VALUE,o=0,s=i.getOrdinalMeta().categories.length;o<s;++o){var l=t.rawIndexOf(r,i.getRawOrdinalNumber(o)),u=l<0?Number.MIN_VALUE:e(t.indexOfRawIndex(l));if(u>a)return!0;a=u}return!1},e.prototype._isOrderDifferentInView=function(t,e){for(var n=e.scale,i=n.getExtent(),r=Math.max(0,i[0]),a=Math.min(i[1],n.getOrdinalMeta().categories.length-1);r<=a;++r)if(t.ordinalNumbers[r]!==n.getRawOrdinalNumber(r))return!0},e.prototype._updateSortWithinSameData=function(t,e,n,i){if(this._isOrderChangedWithinSameData(t,e,n)){var r=this._dataSort(t,n,e);this._isOrderDifferentInView(r,n)&&(this._removeOnRenderedListener(i),i.dispatchAction({type:"changeAxisOrder",componentType:n.dim+"Axis",axisId:n.index,sortInfo:r}))}},e.prototype._dispatchInitSort=function(t,e,n){var i=e.baseAxis,r=this._dataSort(t,i,(function(n){return t.get(t.mapDimension(e.otherAxis.dim),n)}));n.dispatchAction({type:"changeAxisOrder",componentType:i.dim+"Axis",isInitSort:!0,axisId:i.index,sortInfo:r,animation:{duration:0}})},e.prototype.remove=function(t,e){this._clear(this._model),this._removeOnRenderedListener(e)},e.prototype.dispose=function(t,e){this._removeOnRenderedListener(e)},e.prototype._removeOnRenderedListener=function(t){this._onRendered&&(t.getZr().off("rendered",this._onRendered),this._onRendered=null)},e.prototype._clear=function(t){var e=this.group,n=this._data;t&&t.isAnimationEnabled()&&n&&!this._isLargeDraw?(this._removeBackground(),this._backgroundEls=[],n.eachItemGraphicEl((function(e){au(e,t,Xo(e).dataIndex)}))):e.removeAll(),this._data=null,this._isFirstFrame=!0},e.prototype._removeBackground=function(){this.group.remove(this._backgroundGroup),this._backgroundGroup=null},e.type="bar",e}(Zp),z_={cartesian2d:function(t,e){var n=e.width<0?-1:1,i=e.height<0?-1:1;n<0&&(e.x+=e.width,e.width=-e.width),i<0&&(e.y+=e.height,e.height=-e.height);var r=t.x+t.width,a=t.y+t.height,o=N_(e.x,t.x),s=E_(e.x+e.width,r),l=N_(e.y,t.y),u=E_(e.y+e.height,a),h=s<o,c=u<l;return e.x=h&&o>r?s:o,e.y=c&&l>a?u:l,e.width=h?0:s-o,e.height=c?0:u-l,n<0&&(e.x+=e.width,e.width=-e.width),i<0&&(e.y+=e.height,e.height=-e.height),h||c},polar:function(t,e){var n=e.r0<=e.r?1:-1;if(n<0){var i=e.r;e.r=e.r0,e.r0=i}var r=E_(e.r,t.r),a=N_(e.r0,t.r0);e.r=r,e.r0=a;var o=r-a<0;if(n<0){i=e.r;e.r=e.r0,e.r0=i}return o}},F_={cartesian2d:function(t,e,n,i,r,a,o,s,l){var u=new No({shape:M({},i),z2:1});(u.__dataIndex=n,u.name="item",a)&&(u.shape[r?"height":"width"]=0);return u},polar:function(t,e,n,i,r,a,o,s,l){var u=i.startAngle<i.endAngle,h=new(!r&&l?L_:gl)({shape:T({clockwise:u},i),z2:1});if(h.name="item",a){var c=r?"r":"endAngle",p={};h.shape[c]=r?0:i.startAngle,p[c]=i[c],(s?eu:nu)(h,{shape:p},a)}return h}};function V_(t,e,n,i,r,a,o,s){var l,u;a?(u={x:i.x,width:i.width},l={y:i.y,height:i.height}):(u={y:i.y,height:i.height},l={x:i.x,width:i.width}),s||(o?eu:nu)(n,{shape:l},e,r,null),(o?eu:nu)(n,{shape:u},e?t.baseAxis.model:null,r)}var H_={cartesian2d:function(t,e,n){var i=t.getItemLayout(e),r=n?function(t,e){var n=t.get(P_)||0,i=isNaN(e.width)?Number.MAX_VALUE:Math.abs(e.width),r=isNaN(e.height)?Number.MAX_VALUE:Math.abs(e.height);return Math.min(n,i,r)}(n,i):0,a=i.width>0?1:-1,o=i.height>0?1:-1;return{x:i.x+a*r/2,y:i.y+o*r/2,width:i.width-a*r,height:i.height-o*r}},polar:function(t,e,n){var i=t.getItemLayout(e);return{cx:i.cx,cy:i.cy,r0:i.r0,r:i.r,startAngle:i.startAngle,endAngle:i.endAngle}}};function W_(t,e,n,i,r,a,o,s){var l=e.getItemVisual(n,"style");s||t.setShape("r",i.get(O_)||0),t.useStyle(l);var u=i.getShallow("cursor");if(u&&t.attr("cursor",u),!s){var h=o?r.height>0?"bottom":"top":r.width>0?"left":"right",c=pu(i);cu(t,c,{labelFetcher:a,labelDataIndex:n,defaultText:Xm(a.getData(),n),inheritColor:l.fill,defaultOpacity:l.opacity,defaultOutsidePosition:h}),function(t,e,n,i){if(t){var r=_u(t);r.prevValue=r.value,r.value=n;var a=e.normal;r.valueAnimation=a.get("valueAnimation"),r.valueAnimation&&(r.precision=a.get("precision"),r.defaultInterpolatedText=i,r.statesModels=e)}}(t.getTextContent(),c,a.getRawValue(n),(function(t){return qm(e,t)}))}var p=i.getModel(["emphasis"]);Ds(t,p.get("focus"),p.get("blurScope")),ks(t,i),function(t){return null!=t.startAngle&&null!=t.endAngle&&t.startAngle===t.endAngle}(r)&&(t.style.fill="none",t.style.stroke="none",L(t.states,(function(t){t.style&&(t.style.fill=t.style.stroke="none")})))}var G_=function(){},U_=function(t){function e(e){var n=t.call(this,e)||this;return n.type="largeBar",n}return n(e,t),e.prototype.getDefaultShape=function(){return new G_},e.prototype.buildPath=function(t,e){for(var n=e.points,i=this.__startPoint,r=this.__baseDimIdx,a=0;a<n.length;a+=2)i[r]=n[a+r],t.moveTo(i[0],i[1]),t.lineTo(n[a],n[a+1])},e}(To);function Y_(t,e,n){var i=t.getData(),r=[],a=i.getLayout("valueAxisHorizontal")?1:0;r[1-a]=i.getLayout("valueAxisStart");var o=i.getLayout("largeDataIndices"),s=i.getLayout("barWidth"),l=t.getModel("backgroundStyle");if(t.get("showBackground",!0)){var u=i.getLayout("largeBackgroundPoints"),h=[];h[1-a]=i.getLayout("backgroundStart");var c=new U_({shape:{points:u},incremental:!!n,silent:!0,z2:0});c.__startPoint=h,c.__baseDimIdx=a,c.__largeDataIndices=o,c.__barWidth=s,function(t,e,n){var i=e.get("borderColor")||e.get("color"),r=e.getItemStyle();t.useStyle(r),t.style.fill=null,t.style.stroke=i,t.style.lineWidth=n.getLayout("barWidth")}(c,l,i),e.add(c)}var p=new U_({shape:{points:i.getLayout("largePoints")},incremental:!!n});p.__startPoint=r,p.__baseDimIdx=a,p.__largeDataIndices=o,p.__barWidth=s,e.add(p),function(t,e,n){var i=n.getVisual("style");t.useStyle(M({},i)),t.style.fill=null,t.style.stroke=i.fill,t.style.lineWidth=n.getLayout("barWidth")}(p,0,i),Xo(p).seriesIndex=t.seriesIndex,t.get("silent")||(p.on("mousedown",X_),p.on("mousemove",X_))}var X_=ef((function(t){var e=function(t,e,n){var i=t.__baseDimIdx,r=1-i,a=t.shape.points,o=t.__largeDataIndices,s=Math.abs(t.__barWidth/2),l=t.__startPoint[r];R_[0]=e,R_[1]=n;for(var u=R_[i],h=R_[1-i],c=u-s,p=u+s,f=0,d=a.length/2;f<d;f++){var g=2*f,y=a[g+i],v=a[g+r];if(y>=c&&y<=p&&(l<=v?h>=l&&h<=v:h>=v&&h<=l))return o[f]}return-1}(this,t.offsetX,t.offsetY);Xo(this).dataIndex=e>=0?e:null}),30,!1);function q_(t,e,n){if(g_(n,"cartesian2d")){var i=e,r=n.getArea();return{x:t?i.x:r.x,y:t?r.y:i.y,width:t?i.width:r.width,height:t?r.height:i.height}}var a=e;return{cx:(r=n.getArea()).cx,cy:r.cy,r0:t?r.r0:a.r0,r:t?r.r:a.r,startAngle:t?a.startAngle:0,endAngle:t?a.endAngle:2*Math.PI}}var j_=2*Math.PI,Z_=Math.PI/180;function K_(t,e,n){e.eachSeriesByType(t,(function(t){var e=t.getData(),i=e.mapDimension("value"),r=function(t,e){return Ah(t.getBoxLayoutParams(),{width:e.getWidth(),height:e.getHeight()})}(t,n),a=t.get("center"),o=t.get("radius");z(o)||(o=[0,o]),z(a)||(a=[a,a]);var s=Ri(r.width,n.getWidth()),l=Ri(r.height,n.getHeight()),u=Math.min(s,l),h=Ri(a[0],s)+r.x,c=Ri(a[1],l)+r.y,p=Ri(o[0],u/2),f=Ri(o[1],u/2),d=-t.get("startAngle")*Z_,g=t.get("minAngle")*Z_,y=0;e.each(i,(function(t){!isNaN(t)&&y++}));var v=e.getSum(i),m=Math.PI/(v||y)*2,_=t.get("clockwise"),x=t.get("roseType"),b=t.get("stillShowZeroSum"),w=e.getDataExtent(i);w[0]=0;var S=j_,M=0,T=d,C=_?1:-1;if(e.setLayout({viewRect:r,r:f}),e.each(i,(function(t,n){var i;if(isNaN(t))e.setItemLayout(n,{angle:NaN,startAngle:NaN,endAngle:NaN,clockwise:_,cx:h,cy:c,r0:p,r:x?NaN:f});else{(i="area"!==x?0===v&&b?m:t*m:j_/y)<g?(i=g,S-=g):M+=t;var r=T+C*i;e.setItemLayout(n,{angle:i,startAngle:T,endAngle:r,clockwise:_,cx:h,cy:c,r0:p,r:x?Oi(t,w,[p,f]):f}),T=r}})),S<j_&&y)if(S<=.001){var D=j_/y;e.each(i,(function(t,n){if(!isNaN(t)){var i=e.getItemLayout(n);i.angle=D,i.startAngle=d+C*n*D,i.endAngle=d+C*(n+1)*D}}))}else m=S/M,T=d,e.each(i,(function(t,n){if(!isNaN(t)){var i=e.getItemLayout(n),r=i.angle===g?g:t*m;i.startAngle=T,i.endAngle=T+C*r,T+=C*r}}))}))}var $_=Math.PI/180;function Q_(t,e,n,i,r,a,o,s,l,u){if(!(t.length<2)){for(var h=t.length,c=0;c<h;c++)if("outer"===t[c].position&&"labelLine"===t[c].labelAlignTo){var p=t[c].label.x-u;t[c].linePoints[1][0]+=p,t[c].label.x=u}pd(t,l,l+o)&&function(t){for(var a={list:[],maxY:0},o={list:[],maxY:0},s=0;s<t.length;s++)if("none"===t[s].labelAlignTo){var l=t[s],u=l.label.y>n?o:a,h=Math.abs(l.label.y-n);if(h>u.maxY){var c=l.label.x-e-l.len2*r,p=i+l.len,d=c<p?Math.sqrt(h*h/(1-c*c/p/p)):p;u.rB=d,u.maxY=h}u.list.push(l)}f(a),f(o)}(t)}function f(t){for(var a=t.rB,o=a*a,s=0;s<t.list.length;s++){var l=t.list[s],u=Math.abs(l.label.y-n),h=i+l.len,c=h*h,p=Math.sqrt((1-Math.abs(u*u/o))*c);l.label.x=e+(p+l.len2)*r}}}function J_(t){return"center"===t.position}function tx(t){var e,n,i=t.getData(),r=[],a=!1,o=(t.get("minShowLabelAngle")||0)*$_,s=i.getLayout("viewRect"),l=i.getLayout("r"),u=s.width,h=s.x,c=s.y,p=s.height;function f(t){t.ignore=!0}i.each((function(t){var s=i.getItemGraphicEl(t),c=s.shape,p=s.getTextContent(),d=s.getTextGuideLine(),g=i.getItemModel(t),y=g.getModel("label"),v=y.get("position")||g.get(["emphasis","label","position"]),m=y.get("distanceToLabelLine"),_=y.get("alignTo"),x=Ri(y.get("edgeDistance"),u),b=y.get("bleedMargin"),w=g.getModel("labelLine"),S=w.get("length");S=Ri(S,u);var M=w.get("length2");if(M=Ri(M,u),Math.abs(c.endAngle-c.startAngle)<o)return L(p.states,f),void(p.ignore=!0);if(function(t){if(!t.ignore)return!0;for(var e in t.states)if(!1===t.states[e].ignore)return!0;return!1}(p)){var T,C,D,I,A=(c.startAngle+c.endAngle)/2,k=Math.cos(A),P=Math.sin(A);e=c.cx,n=c.cy;var O,R="inside"===v||"inner"===v;if("center"===v)T=c.cx,C=c.cy,I="center";else{var N=(R?(c.r+c.r0)/2*k:c.r*k)+e,E=(R?(c.r+c.r0)/2*P:c.r*P)+n;if(T=N+3*k,C=E+3*P,!R){var B=N+k*(S+l-c.r),z=E+P*(S+l-c.r),F=B+(k<0?-1:1)*M;T="edge"===_?k<0?h+x:h+u-x:F+(k<0?-m:m),C=z,D=[[N,E],[B,z],[F,z]]}I=R?"center":"edge"===_?k>0?"right":"left":k>0?"left":"right"}var V=y.get("rotate");if(O="number"==typeof V?V*(Math.PI/180):V?k<0?-A+Math.PI:-A:0,a=!!O,p.x=T,p.y=C,p.rotation=O,p.setStyle({verticalAlign:"middle"}),R){p.setStyle({align:I});var H=p.states.select;H&&(H.x+=p.x,H.y+=p.y)}else{var W=p.getBoundingRect().clone();W.applyTransform(p.getComputedTransform());var G=(p.style.margin||0)+2.1;W.y-=G/2,W.height+=G,r.push({label:p,labelLine:d,position:v,len:S,len2:M,minTurnAngle:w.get("minTurnAngle"),maxSurfaceAngle:w.get("maxSurfaceAngle"),surfaceNormal:new pn(k,P),linePoints:D,textAlign:I,labelDistance:m,labelAlignTo:_,edgeDistance:x,bleedMargin:b,rect:W})}s.setTextConfig({inside:R})}})),!a&&t.get("avoidLabelOverlap")&&function(t,e,n,i,r,a,o,s){for(var l=[],u=[],h=Number.MAX_VALUE,c=-Number.MAX_VALUE,p=0;p<t.length;p++){var f=t[p].label;J_(t[p])||(f.x<e?(h=Math.min(h,f.x),l.push(t[p])):(c=Math.max(c,f.x),u.push(t[p])))}for(Q_(u,e,n,i,1,0,a,0,s,c),Q_(l,e,n,i,-1,0,a,0,s,h),p=0;p<t.length;p++){var d=t[p];if(f=d.label,!J_(d)){var g=d.linePoints;if(g){var y="edge"===d.labelAlignTo,v=d.rect.width,m=void 0;(m=y?f.x<e?g[2][0]-d.labelDistance-o-d.edgeDistance:o+r-d.edgeDistance-g[2][0]-d.labelDistance:f.x<e?f.x-o-d.bleedMargin:o+r-f.x-d.bleedMargin)<d.rect.width&&(d.label.style.width=m,"edge"===d.labelAlignTo&&(v=m));var _=g[1][0]-g[2][0];y?f.x<e?g[2][0]=o+d.edgeDistance+v+d.labelDistance:g[2][0]=o+r-d.edgeDistance-v-d.labelDistance:(f.x<e?g[2][0]=f.x+d.labelDistance:g[2][0]=f.x-d.labelDistance,g[1][0]=g[2][0]+_),g[1][1]=g[2][1]=f.y}}}}(r,e,n,l,u,p,h,c);for(var d=0;d<r.length;d++){var g=r[d],y=g.label,v=g.labelLine,m=isNaN(y.x)||isNaN(y.y);if(y){y.setStyle({align:g.textAlign}),m&&(L(y.states,f),y.ignore=!0);var _=y.states.select;_&&(_.x+=y.x,_.y+=y.y)}if(v){var x=g.linePoints;m||!x?(L(v.states,f),v.ignore=!0):(ad(x,g.minTurnAngle),od(x,g.surfaceNormal,g.maxSurfaceAngle),v.setShape({points:x}),y.__hostTarget.textGuideLineConfig={anchor:new pn(x[0][0],x[0][1])})}}}function ex(t,e){var n=t.get("borderRadius");return null==n?null:(z(n)||(n=[n,n]),{innerCornerRadius:Ln(n[0],e.r0),cornerRadius:Ln(n[1],e.r)})}var nx=function(t){function e(e,n,i){var r=t.call(this)||this;r.z2=2;var a=new Sl,o=new zo;return r.setTextGuideLine(a),r.setTextContent(o),r.updateData(e,n,i,!0),r}return n(e,t),e.prototype.updateData=function(t,e,n,r){var a=this,o=t.hostModel,s=t.getItemModel(e),l=s.getModel("emphasis"),u=t.getItemLayout(e),h=M(ex(s.getModel("itemStyle"),u)||{},u);r?(a.setShape(h),"scale"===o.getShallow("animationType")?(a.shape.r=u.r0,nu(a,{shape:{r:u.r}},o,e)):null!=n?(a.setShape({startAngle:n,endAngle:n}),nu(a,{shape:{startAngle:u.startAngle,endAngle:u.endAngle}},o,e)):(a.shape.endAngle=u.startAngle,eu(a,{shape:{endAngle:u.endAngle}},o,e))):eu(a,{shape:h},o,e);a.useStyle(t.getItemVisual(e,"style")),ks(a,s);var c=(u.startAngle+u.endAngle)/2,p=o.get("selectedOffset"),f=Math.cos(c)*p,d=Math.sin(c)*p,g=s.getShallow("cursor");g&&a.attr("cursor",g),this._updateLabel(o,t,e),a.ensureState("emphasis").shape=i({r:u.r+(l.get("scale")&&l.get("scaleSize")||0)},ex(l.getModel("itemStyle"),u)),M(a.ensureState("select"),{x:f,y:d,shape:ex(s.getModel(["select","itemStyle"]),u)}),M(a.ensureState("blur"),{shape:ex(s.getModel(["blur","itemStyle"]),u)});var y=a.getTextGuideLine(),v=a.getTextContent();M(y.ensureState("select"),{x:f,y:d}),M(v.ensureState("select"),{x:f,y:d}),Ds(this,l.get("focus"),l.get("blurScope"))},e.prototype._updateLabel=function(t,e,n){var i=this,r=e.getItemModel(n),a=r.getModel("labelLine"),o=e.getItemVisual(n,"style"),s=o&&o.fill,l=o&&o.opacity;cu(i,pu(r),{labelFetcher:e.hostModel,labelDataIndex:n,inheritColor:s,defaultOpacity:l,defaultText:t.getFormattedLabel(n,"normal")||e.getName(n)});var u=i.getTextContent();i.setTextConfig({position:null,rotation:null}),u.attr({z2:10}),ud(this,hd(r),{stroke:s,opacity:J(a.get(["lineStyle","opacity"]),l,1)})},e}(gl),ix=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.ignoreLabelLineUpdate=!0,e}return n(e,t),e.prototype.init=function(){var t=new Mi;this._sectorGroup=t},e.prototype.render=function(t,e,n,i){var r,a=t.getData(),o=this._data,s=this.group;if(!o&&a.count()>0){for(var l=a.getItemLayout(0),u=1;isNaN(l&&l.startAngle)&&u<a.count();++u)l=a.getItemLayout(u);l&&(r=l.startAngle)}a.diff(o).add((function(t){var e=new nx(a,t,r);a.setItemGraphicEl(t,e),s.add(e)})).update((function(t,e){var n=o.getItemGraphicEl(e);n.updateData(a,t,r),n.off("click"),s.add(n),a.setItemGraphicEl(t,n)})).remove((function(e){au(o.getItemGraphicEl(e),t,e)})).execute(),tx(t),"expansion"!==t.get("animationTypeUpdate")&&(this._data=a)},e.prototype.dispose=function(){},e.prototype.containPoint=function(t,e){var n=e.getData().getItemLayout(0);if(n){var i=t[0]-n.cx,r=t[1]-n.cy,a=Math.sqrt(i*i+r*r);return a<=n.r&&a>=n.r0}},e.type="pie",e}(Zp);var rx=function(){function t(t,e){this._getDataWithEncodedVisual=t,this._getRawData=e}return t.prototype.getAllNames=function(){var t=this._getRawData();return t.mapArray(t.getName)},t.prototype.containName=function(t){return this._getRawData().indexOfName(t)>=0},t.prototype.indexOfName=function(t){return this._getDataWithEncodedVisual().indexOfName(t)},t.prototype.getItemVisual=function(t,e){return this._getDataWithEncodedVisual().getItemVisual(t,e)},t}(),ax=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.useColorPaletteOnData=!0,e}return n(e,t),e.prototype.init=function(e){t.prototype.init.apply(this,arguments),this.legendVisualProvider=new rx(E(this.getData,this),E(this.getRawData,this)),this._defaultLabelLine(e)},e.prototype.mergeOption=function(){t.prototype.mergeOption.apply(this,arguments)},e.prototype.getInitialData=function(){return function(t,e,n){e=z(e)&&{coordDimensions:e}||M({},e);var i=t.getSource(),r=rv(i,e),a=new ev(r,t);return a.initData(i,n),a}(this,{coordDimensions:["value"],encodeDefaulter:B(Qh,this)})},e.prototype.getDataParams=function(e){var n=this.getData(),i=t.prototype.getDataParams.call(this,e),r=[];return n.each(n.mapDimension("value"),(function(t){r.push(t)})),i.percent=zi(r,e,n.hostModel.get("percentPrecision")),i.$vars.push("percent"),i},e.prototype._defaultLabelLine=function(t){tr(t,"labelLine",["show"]);var e=t.labelLine,n=t.emphasis.labelLine;e.show=e.show&&t.label.show,n.show=n.show&&t.emphasis.label.show},e.type="series.pie",e.defaultOption={zlevel:0,z:2,legendHoverLink:!0,center:["50%","50%"],radius:[0,"75%"],clockwise:!0,startAngle:90,minAngle:0,minShowLabelAngle:0,selectedOffset:10,percentPrecision:2,stillShowZeroSum:!0,left:0,top:0,right:0,bottom:0,width:null,height:null,label:{rotate:0,show:!0,overflow:"truncate",position:"outer",alignTo:"none",edgeDistance:"25%",bleedMargin:10,distanceToLabelLine:5},labelLine:{show:!0,length:15,length2:15,smooth:!1,minTurnAngle:90,maxSurfaceAngle:90,lineStyle:{width:1,type:"solid"}},itemStyle:{borderWidth:1},labelLayout:{hideOverlap:!0},emphasis:{scale:!0,scaleSize:5},avoidLabelOverlap:!0,animationType:"expansion",animationDuration:1e3,animationTypeUpdate:"transition",animationEasingUpdate:"cubicInOut",animationDurationUpdate:500,animationEasing:"cubicInOut"},e}(Bp);var ox=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.type="grid",e.dependencies=["xAxis","yAxis"],e.layoutMode="box",e.defaultOption={show:!1,zlevel:0,z:0,left:"10%",top:60,right:"10%",bottom:70,containLabel:!1,backgroundColor:"rgba(0,0,0,0)",borderWidth:1,borderColor:"#ccc"},e}(Rh),sx=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.getCoordSysModel=function(){return this.getReferringComponents("grid",fr).models[0]},e.type="cartesian2dAxis",e}(Rh);A(sx,pm);var lx={show:!0,zlevel:0,z:0,inverse:!1,name:"",nameLocation:"end",nameRotate:null,nameTruncate:{maxWidth:null,ellipsis:"...",placeholder:"."},nameTextStyle:{},nameGap:15,silent:!1,triggerEvent:!1,tooltip:{show:!1},axisPointer:{},axisLine:{show:!0,onZero:!0,onZeroAxisIndex:null,lineStyle:{color:"#6E7079",width:1,type:"solid"},symbol:["none","none"],symbolSize:[10,15]},axisTick:{show:!0,inside:!1,length:5,lineStyle:{width:1}},axisLabel:{show:!0,inside:!1,rotate:0,showMinLabel:null,showMaxLabel:null,margin:8,fontSize:12},splitLine:{show:!0,lineStyle:{color:["#E0E6F1"],width:1,type:"solid"}},splitArea:{show:!1,areaStyle:{color:["rgba(250,250,250,0.2)","rgba(210,219,238,0.2)"]}}},ux=S({boundaryGap:!0,deduplication:null,splitLine:{show:!1},axisTick:{alignWithLabel:!1,interval:"auto"},axisLabel:{interval:"auto"}},lx),hx=S({boundaryGap:[0,0],axisLine:{show:"auto"},axisTick:{show:"auto"},splitNumber:5,minorTick:{show:!1,splitNumber:5,length:3,lineStyle:{}},minorSplitLine:{show:!1,lineStyle:{color:"#F4F7FD",width:1}}},lx),cx={category:ux,value:hx,time:S({scale:!0,splitNumber:6,axisLabel:{showMinLabel:!1,showMaxLabel:!1,rich:{primary:{fontWeight:"bold"}}},splitLine:{show:!1}},hx),log:T({scale:!0,logBase:10},hx)},px={value:1,category:1,time:1,log:1};function fx(t,e,i,r){L(px,(function(a,o){var s=S(S({},cx[o],!0),r,!0),l=function(t){function i(){for(var n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];var r=t.apply(this,n)||this;return r.type=e+"Axis."+o,r}return n(i,t),i.prototype.mergeDefaultAndTheme=function(t,e){var n=kh(this),i=n?Ph(t):{};S(t,e.getTheme().get(o+"Axis")),S(t,this.getDefaultOption()),t.type=dx(t),n&&Lh(t,i,n)},i.prototype.optionUpdated=function(){"category"===this.option.type&&(this.__ordinalMeta=fv.createByAxisModel(this))},i.prototype.getCategories=function(t){var e=this.option;if("category"===e.type)return t?e.data:this.__ordinalMeta.categories},i.prototype.getOrdinalMeta=function(){return this.__ordinalMeta},i.type=e+"Axis."+o,i.defaultOption=s,i}(i);t.registerComponentModel(l)})),t.registerSubTypeDefaulter(e+"Axis",dx)}function dx(t){return t.type||(t.data?"category":"value")}var gx=function(){function t(t){this.type="cartesian",this._dimList=[],this._axes={},this.name=t||""}return t.prototype.getAxis=function(t){return this._axes[t]},t.prototype.getAxes=function(){return P(this._dimList,(function(t){return this._axes[t]}),this)},t.prototype.getAxesByScale=function(t){return t=t.toLowerCase(),R(this.getAxes(),(function(e){return e.scale.type===t}))},t.prototype.addAxis=function(t){var e=t.dim;this._axes[e]=t,this._dimList.push(e)},t}(),yx=["x","y"];function vx(t){return"interval"===t.type||"time"===t.type}var mx=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="cartesian2d",e.dimensions=yx,e}return n(e,t),e.prototype.calcAffineTransform=function(){this._transform=this._invTransform=null;var t=this.getAxis("x").scale,e=this.getAxis("y").scale;if(vx(t)&&vx(e)){var n=t.getExtent(),i=e.getExtent(),r=this.dataToPoint([n[0],i[0]]),a=this.dataToPoint([n[1],i[1]]),o=n[1]-n[0],s=i[1]-i[0];if(o&&s){var l=(a[0]-r[0])/o,u=(a[1]-r[1])/s,h=r[0]-n[0]*l,c=r[1]-i[0]*u,p=this._transform=[l,0,0,u,h,c];this._invTransform=pe([],p)}}},e.prototype.getBaseAxis=function(){return this.getAxesByScale("ordinal")[0]||this.getAxesByScale("time")[0]||this.getAxis("x")},e.prototype.containPoint=function(t){var e=this.getAxis("x"),n=this.getAxis("y");return e.contain(e.toLocalCoord(t[0]))&&n.contain(n.toLocalCoord(t[1]))},e.prototype.containData=function(t){return this.getAxis("x").containData(t[0])&&this.getAxis("y").containData(t[1])},e.prototype.dataToPoint=function(t,e,n){n=n||[];var i=t[0],r=t[1];if(this._transform&&null!=i&&isFinite(i)&&null!=r&&isFinite(r))return It(n,t,this._transform);var a=this.getAxis("x"),o=this.getAxis("y");return n[0]=a.toGlobalCoord(a.dataToCoord(i)),n[1]=o.toGlobalCoord(o.dataToCoord(r)),n},e.prototype.clampData=function(t,e){var n=this.getAxis("x").scale,i=this.getAxis("y").scale,r=n.getExtent(),a=i.getExtent(),o=n.parse(t[0]),s=i.parse(t[1]);return(e=e||[])[0]=Math.min(Math.max(Math.min(r[0],r[1]),o),Math.max(r[0],r[1])),e[1]=Math.min(Math.max(Math.min(a[0],a[1]),s),Math.max(a[0],a[1])),e},e.prototype.pointToData=function(t,e){if(e=e||[],this._invTransform)return It(e,t,this._invTransform);var n=this.getAxis("x"),i=this.getAxis("y");return e[0]=n.coordToData(n.toLocalCoord(t[0])),e[1]=i.coordToData(i.toLocalCoord(t[1])),e},e.prototype.getOtherAxis=function(t){return this.getAxis("x"===t.dim?"y":"x")},e.prototype.getArea=function(){var t=this.getAxis("x").getGlobalExtent(),e=this.getAxis("y").getGlobalExtent(),n=Math.min(t[0],t[1]),i=Math.min(e[0],e[1]),r=Math.max(t[0],t[1])-n,a=Math.max(e[0],e[1])-i;return new bn(n,i,r,a)},e}(gx),_x=function(t){function e(e,n,i,r,a){var o=t.call(this,e,n,i)||this;return o.index=0,o.type=r||"value",o.position=a||"bottom",o}return n(e,t),e.prototype.isHorizontal=function(){var t=this.position;return"top"===t||"bottom"===t},e.prototype.getGlobalExtent=function(t){var e=this.getExtent();return e[0]=this.toGlobalCoord(e[0]),e[1]=this.toGlobalCoord(e[1]),t&&e[0]>e[1]&&e.reverse(),e},e.prototype.pointToData=function(t,e){return this.coordToData(this.toLocalCoord(t["x"===this.dim?0:1]),e)},e.prototype.setCategorySortInfo=function(t){if("category"!==this.type)return!1;this.model.option.categorySortInfo=t,this.scale.setSortInfo(t)},e}(Nm);function xx(t){return"cartesian2d"===t.get("coordinateSystem")}function bx(t){var e={xAxisModel:null,yAxisModel:null};return L(e,(function(n,i){var r=i.replace(/Model$/,""),a=t.getReferringComponents(r,fr).models[0];e[i]=a})),e}var Sx=function(){function t(t,e,n){this.type="grid",this._coordsMap={},this._coordsList=[],this._axesMap={},this._axesList=[],this.axisPointerEnabled=!0,this.dimensions=yx,this._initCartesian(t,e,n),this.model=t}return t.prototype.getRect=function(){return this._rect},t.prototype.update=function(t,e){var n=this._axesMap;this._updateScale(t,this.model),L(n.x,(function(t){om(t.scale,t.model)})),L(n.y,(function(t){om(t.scale,t.model)}));var i={};L(n.x,(function(t){Tx(n,"y",t,i)})),L(n.y,(function(t){Tx(n,"x",t,i)})),this.resize(this.model,e)},t.prototype.resize=function(t,e,n){var i=t.getBoxLayoutParams(),r=!n&&t.get("containLabel"),a=Ah(i,{width:e.getWidth(),height:e.getHeight()});this._rect=a;var o=this._axesList;function s(){L(o,(function(t){var e=t.isHorizontal(),n=e?[0,a.width]:[0,a.height],i=t.inverse?1:0;t.setExtent(n[i],n[1-i]),function(t,e){var n=t.getExtent(),i=n[0]+n[1];t.toGlobalCoord="x"===t.dim?function(t){return t+e}:function(t){return i-t+e},t.toLocalCoord="x"===t.dim?function(t){return t-e}:function(t){return i-t+e}}(t,e?a.x:a.y)}))}s(),r&&(L(o,(function(t){if(!t.model.get(["axisLabel","inside"])){var e=function(t){var e=t.model,n=t.scale;if(e.get(["axisLabel","show"])&&!n.isBlank()){var i,r,a=n.getExtent();r=n instanceof wv?n.count():(i=n.getTicks()).length;var o,s=t.getLabelModel(),l=lm(t),u=1;r>40&&(u=Math.ceil(r/40));for(var h=0;h<r;h+=u){var c=l(i?i[h]:{value:a[0]+h},h),p=um(s.getTextRect(c),s.get("rotate")||0);o?o.union(p):o=p}return o}}(t);if(e){var n=t.isHorizontal()?"height":"width",i=t.model.get(["axisLabel","margin"]);a[n]-=e[n]+i,"top"===t.position?a.y+=e.height+i:"left"===t.position&&(a.x+=e.width+i)}}})),s()),L(this._coordsList,(function(t){t.calcAffineTransform()}))},t.prototype.getAxis=function(t,e){var n=this._axesMap[t];if(null!=n)return n[e||0]},t.prototype.getAxes=function(){return this._axesList.slice()},t.prototype.getCartesian=function(t,e){if(null!=t&&null!=e){var n="x"+t+"y"+e;return this._coordsMap[n]}G(t)&&(e=t.yAxisIndex,t=t.xAxisIndex);for(var i=0,r=this._coordsList;i<r.length;i++)if(r[i].getAxis("x").index===t||r[i].getAxis("y").index===e)return r[i]},t.prototype.getCartesians=function(){return this._coordsList.slice()},t.prototype.convertToPixel=function(t,e,n){var i=this._findConvertTarget(e);return i.cartesian?i.cartesian.dataToPoint(n):i.axis?i.axis.toGlobalCoord(i.axis.dataToCoord(n)):null},t.prototype.convertFromPixel=function(t,e,n){var i=this._findConvertTarget(e);return i.cartesian?i.cartesian.pointToData(n):i.axis?i.axis.coordToData(i.axis.toLocalCoord(n)):null},t.prototype._findConvertTarget=function(t){var e,n,i=t.seriesModel,r=t.xAxisModel||i&&i.getReferringComponents("xAxis",fr).models[0],a=t.yAxisModel||i&&i.getReferringComponents("yAxis",fr).models[0],o=t.gridModel,s=this._coordsList;if(i)D(s,e=i.coordinateSystem)<0&&(e=null);else if(r&&a)e=this.getCartesian(r.componentIndex,a.componentIndex);else if(r)n=this.getAxis("x",r.componentIndex);else if(a)n=this.getAxis("y",a.componentIndex);else if(o){o.coordinateSystem===this&&(e=this._coordsList[0])}return{cartesian:e,axis:n}},t.prototype.containPoint=function(t){var e=this._coordsList[0];if(e)return e.containPoint(t)},t.prototype._initCartesian=function(t,e,n){var i=this,r=this,a={left:!1,right:!1,top:!1,bottom:!1},o={x:{},y:{}},s={x:0,y:0};if(e.eachComponent("xAxis",l("x"),this),e.eachComponent("yAxis",l("y"),this),!s.x||!s.y)return this._axesMap={},void(this._axesList=[]);function l(e){return function(n,i){if(Mx(n,t)){var l=n.get("position");"x"===e?"top"!==l&&"bottom"!==l&&(l=a.bottom?"top":"bottom"):"left"!==l&&"right"!==l&&(l=a.left?"right":"left"),a[l]=!0;var u=new _x(e,sm(n),[0,0],n.get("type"),l),h="category"===u.type;u.onBand=h&&n.get("boundaryGap"),u.inverse=n.get("inverse"),n.axis=u,u.model=n,u.grid=r,u.index=i,r._axesList.push(u),o[e][i]=u,s[e]++}}}this._axesMap=o,L(o.x,(function(e,n){L(o.y,(function(r,a){var o="x"+n+"y"+a,s=new mx(o);s.master=i,s.model=t,i._coordsMap[o]=s,i._coordsList.push(s),s.addAxis(e),s.addAxis(r)}))}))},t.prototype._updateScale=function(t,e){function n(t,e){L(function(t,e){var n={};return L(t.mapDimensionsAll(e),(function(e){n[hv(t,e)]=!0})),N(n)}(t,e.dim),(function(n){e.scale.unionExtentFromData(t,n)}))}L(this._axesList,(function(t){if(t.scale.setExtent(1/0,-1/0),"category"===t.type){var e=t.model.get("categorySortInfo");t.scale.setSortInfo(e)}})),t.eachSeries((function(t){if(xx(t)){var i=bx(t),r=i.xAxisModel,a=i.yAxisModel;if(!Mx(r,e)||!Mx(a,e))return;var o=this.getCartesian(r.componentIndex,a.componentIndex),s=t.getData(),l=o.getAxis("x"),u=o.getAxis("y");"list"===s.type&&(n(s,l),n(s,u))}}),this)},t.prototype.getTooltipAxes=function(t){var e=[],n=[];return L(this.getCartesians(),(function(i){var r=null!=t&&"auto"!==t?i.getAxis(t):i.getBaseAxis(),a=i.getOtherAxis(r);D(e,r)<0&&e.push(r),D(n,a)<0&&n.push(a)})),{baseAxes:e,otherAxes:n}},t.create=function(e,n){var i=[];return e.eachComponent("grid",(function(r,a){var o=new t(r,e,n);o.name="grid_"+a,o.resize(r,n,!0),r.coordinateSystem=o,i.push(o)})),e.eachSeries((function(t){if(xx(t)){var e=bx(t),n=e.xAxisModel,i=e.yAxisModel,r=n.getCoordSysModel();0;var a=r.coordinateSystem;t.coordinateSystem=a.getCartesian(n.componentIndex,i.componentIndex)}})),i},t.dimensions=yx,t}();function Mx(t,e){return t.getCoordSysModel()===e}function Tx(t,e,n,i){n.getAxesOnZeroOf=function(){return r?[r]:[]};var r,a=t[e],o=n.model,s=o.get(["axisLine","onZero"]),l=o.get(["axisLine","onZeroAxisIndex"]);if(s){if(null!=l)Cx(a[l])&&(r=a[l]);else for(var u in a)if(a.hasOwnProperty(u)&&Cx(a[u])&&!i[h(a[u])]){r=a[u];break}r&&(i[h(r)]=!0)}function h(t){return t.dim+"_"+t.index}}function Cx(t){return t&&"category"!==t.type&&"time"!==t.type&&function(t){var e=t.scale.getExtent(),n=e[0],i=e[1];return!(n>0&&i>0||n<0&&i<0)}(t)}var Dx=Math.PI,Ix=function(){function t(t,e){this.group=new Mi,this.opt=e,this.axisModel=t,T(e,{labelOffset:0,nameDirection:1,tickDirection:1,labelDirection:1,silent:!0,handleAutoShown:function(){return!0}});var n=new Mi({x:e.position[0],y:e.position[1],rotation:e.rotation});n.updateTransform(),this._transformGroup=n}return t.prototype.hasBuilder=function(t){return!!Ax[t]},t.prototype.add=function(t){Ax[t](this.opt,this.axisModel,this.group,this._transformGroup)},t.prototype.getGroup=function(){return this.group},t.innerTextLayout=function(t,e,n){var i,r,a=Fi(e-t);return Vi(a)?(r=n>0?"top":"bottom",i="center"):Vi(a-Dx)?(r=n>0?"bottom":"top",i="center"):(r="middle",i=a>0&&a<Dx?n>0?"right":"left":n>0?"left":"right"),{rotation:a,textAlign:i,textVerticalAlign:r}},t.makeAxisEventDataBase=function(t){var e={componentType:t.mainType,componentIndex:t.componentIndex};return e[t.mainType+"Index"]=t.componentIndex,e},t.isLabelSilent=function(t){var e=t.get("tooltip");return t.get("silent")||!(t.get("triggerEvent")||e&&e.show)},t}(),Ax={axisLine:function(t,e,n,i){var r=e.get(["axisLine","show"]);if("auto"===r&&t.handleAutoShown&&(r=t.handleAutoShown("axisLine")),r){var a=e.axis.getExtent(),o=i.transform,s=[a[0],0],l=[a[1],0];o&&(It(s,s,o),It(l,l,o));var u=M({lineCap:"round"},e.getModel(["axisLine","lineStyle"]).getLineStyle()),h=new Cl({subPixelOptimize:!0,shape:{x1:s[0],y1:s[1],x2:l[0],y2:l[1]},style:u,strokeContainThreshold:t.strokeContainThreshold||5,silent:!0,z2:1});h.anid="line",n.add(h);var c=e.get(["axisLine","symbol"]),p=e.get(["axisLine","symbolSize"]),f=e.get(["axisLine","symbolOffset"])||0;if("number"==typeof f&&(f=[f,f]),null!=c){"string"==typeof c&&(c=[c,c]),"string"!=typeof p&&"number"!=typeof p||(p=[p,p]);var d=p[0],g=p[1];L([{rotate:t.rotation+Math.PI/2,offset:f[0],r:0},{rotate:t.rotation-Math.PI/2,offset:f[1],r:Math.sqrt((s[0]-l[0])*(s[0]-l[0])+(s[1]-l[1])*(s[1]-l[1]))}],(function(e,i){if("none"!==c[i]&&null!=c[i]){var r=Rd(c[i],-d/2,-g/2,d,g,u.stroke,!0),a=e.r+e.offset;r.attr({rotation:e.rotate,x:s[0]+a*Math.cos(t.rotation),y:s[1]-a*Math.sin(t.rotation),silent:!0,z2:11}),n.add(r)}}))}}},axisTickLabel:function(t,e,n,i){var r=function(t,e,n,i){var r=n.axis,a=n.getModel("axisTick"),o=a.get("show");"auto"===o&&i.handleAutoShown&&(o=i.handleAutoShown("axisTick"));if(!o||r.scale.isBlank())return;for(var s=a.getModel("lineStyle"),l=i.tickDirection*a.get("length"),u=Ox(r.getTicksCoords(),e.transform,l,T(s.getLineStyle(),{stroke:n.get(["axisLine","lineStyle","color"])}),"ticks"),h=0;h<u.length;h++)t.add(u[h]);return u}(n,i,e,t),a=function(t,e,n,i){var r=n.axis;if(!$(i.axisLabelShow,n.get(["axisLabel","show"]))||r.scale.isBlank())return;var a=n.getModel("axisLabel"),o=a.get("margin"),s=r.getViewLabels(),l=($(i.labelRotate,a.get("rotate"))||0)*Dx/180,u=Ix.innerTextLayout(i.rotation,l,i.labelDirection),h=n.getCategories&&n.getCategories(!0),c=[],p=Ix.isLabelSilent(n),f=n.get("triggerEvent");return L(s,(function(s,l){var d="ordinal"===r.scale.type?r.scale.getRawOrdinalNumber(s.tickValue):s.tickValue,g=s.formattedLabel,y=s.rawLabel,v=a;if(h&&h[d]){var m=h[d];G(m)&&m.textStyle&&(v=new Lu(m.textStyle,a,n.ecModel))}var _=v.getTextColor()||n.get(["axisLine","lineStyle","color"]),x=r.dataToCoord(d),b=new zo({x:x,y:i.labelOffset+i.labelDirection*o,rotation:u.rotation,silent:p,z2:10,style:fu(v,{text:g,align:v.getShallow("align",!0)||u.textAlign,verticalAlign:v.getShallow("verticalAlign",!0)||v.getShallow("baseline",!0)||u.textVerticalAlign,fill:"function"==typeof _?_("category"===r.type?y:"value"===r.type?d+"":d,l):_})});if(b.anid="label_"+d,f){var w=Ix.makeAxisEventDataBase(n);w.targetType="axisLabel",w.value=y,Xo(b).eventData=w}e.add(b),b.updateTransform(),c.push(b),t.add(b),b.decomposeTransform()})),c}(n,i,e,t);!function(t,e,n){if(cm(t.axis))return;var i=t.get(["axisLabel","showMinLabel"]),r=t.get(["axisLabel","showMaxLabel"]);n=n||[];var a=(e=e||[])[0],o=e[1],s=e[e.length-1],l=e[e.length-2],u=n[0],h=n[1],c=n[n.length-1],p=n[n.length-2];!1===i?(kx(a),kx(u)):Lx(a,o)&&(i?(kx(o),kx(h)):(kx(a),kx(u)));!1===r?(kx(s),kx(c)):Lx(l,s)&&(r?(kx(l),kx(p)):(kx(s),kx(c)))}(e,a,r),function(t,e,n,i){var r=n.axis,a=n.getModel("minorTick");if(!a.get("show")||r.scale.isBlank())return;var o=r.getMinorTicksCoords();if(!o.length)return;for(var s=a.getModel("lineStyle"),l=i*a.get("length"),u=T(s.getLineStyle(),T(n.getModel("axisTick").getLineStyle(),{stroke:n.get(["axisLine","lineStyle","color"])})),h=0;h<o.length;h++)for(var c=Ox(o[h],e.transform,l,u,"minorticks_"+h),p=0;p<c.length;p++)t.add(c[p])}(n,i,e,t.tickDirection)},axisName:function(t,e,n,i){var r=$(t.axisName,e.get("name"));if(r){var a,o,s=e.get("nameLocation"),l=t.nameDirection,u=e.getModel("nameTextStyle"),h=e.get("nameGap")||0,c=e.axis.getExtent(),p=c[0]>c[1]?-1:1,f=["start"===s?c[0]-p*h:"end"===s?c[1]+p*h:(c[0]+c[1])/2,Px(s)?t.labelOffset+l*h:0],d=e.get("nameRotate");null!=d&&(d=d*Dx/180),Px(s)?a=Ix.innerTextLayout(t.rotation,null!=d?d:t.rotation,l):(a=function(t,e,n,i){var r,a,o=Fi(n-t),s=i[0]>i[1],l="start"===e&&!s||"start"!==e&&s;Vi(o-Dx/2)?(a=l?"bottom":"top",r="center"):Vi(o-1.5*Dx)?(a=l?"top":"bottom",r="center"):(a="middle",r=o<1.5*Dx&&o>Dx/2?l?"left":"right":l?"right":"left");return{rotation:o,textAlign:r,textVerticalAlign:a}}(t.rotation,s,d||0,c),null!=(o=t.axisNameAvailableWidth)&&(o=Math.abs(o/Math.sin(a.rotation)),!isFinite(o)&&(o=null)));var g=u.getFont(),y=e.get("nameTruncate",!0)||{},v=y.ellipsis,m=$(t.nameTruncateMaxWidth,y.maxWidth,o),_=e.get("tooltip",!0),x=e.mainType,b={componentType:x,name:r,$vars:["name"]};b[x+"Index"]=e.componentIndex;var w=new zo({x:f[0],y:f[1],rotation:a.rotation,silent:Ix.isLabelSilent(e),style:fu(u,{text:r,font:g,overflow:"truncate",width:m,ellipsis:v,fill:u.getTextColor()||e.get(["axisLine","lineStyle","color"]),align:u.get("align")||a.textAlign,verticalAlign:u.get("verticalAlign")||a.textVerticalAlign}),z2:1});if(w.tooltip=_&&_.show?M({content:r,formatter:function(){return r},formatterParams:b},_):null,w.__fullText=r,w.anid="name",e.get("triggerEvent")){var S=Ix.makeAxisEventDataBase(e);S.targetType="axisName",S.name=r,Xo(w).eventData=S}i.add(w),w.updateTransform(),n.add(w),w.decomposeTransform()}}};function kx(t){t&&(t.ignore=!0)}function Lx(t,e){var n=t&&t.getBoundingRect().clone(),i=e&&e.getBoundingRect().clone();if(n&&i){var r=oe([]);return he(r,r,-t.rotation),n.applyTransform(le([],r,t.getLocalTransform())),i.applyTransform(le([],r,e.getLocalTransform())),n.intersect(i)}}function Px(t){return"middle"===t||"center"===t}function Ox(t,e,n,i,r){for(var a=[],o=[],s=[],l=0;l<t.length;l++){var u=t[l].coord;o[0]=u,o[1]=0,s[0]=u,s[1]=n,e&&(It(o,o,e),It(s,s,e));var h=new Cl({subPixelOptimize:!0,shape:{x1:o[0],y1:o[1],x2:s[0],y2:s[1]},style:i,z2:2,autoBatch:!0,silent:!0});h.anid=r+"_"+t[l].tickValue,a.push(h)}return a}function Rx(t){var e=Nx(t);if(e){var n=e.axisPointerModel,i=e.axis.scale,r=n.option,a=n.get("status"),o=n.get("value");null!=o&&(o=i.parse(o));var s=function(t){return!!t.get(["handle","show"])}(n);null==a&&(r.status=s?"show":"hide");var l=i.getExtent().slice();l[0]>l[1]&&l.reverse(),(null==o||o>l[1])&&(o=l[1]),o<l[0]&&(o=l[0]),r.value=o,s&&(r.status=e.axis.scale.isBlank()?"hide":"show")}}function Nx(t){var e,n=(t.ecModel.getComponent("axisPointer")||{}).coordSysAxesInfo;return n&&n.axesInfo[(e=t,e.type+"||"+e.id)]}var Ex={},Bx=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.prototype.render=function(e,n,i,r){this.axisPointerClass&&Rx(e),t.prototype.render.apply(this,arguments),this._doUpdateAxisPointerClass(e,i,!0)},e.prototype.updateAxisPointer=function(t,e,n,i){this._doUpdateAxisPointerClass(t,n,!1)},e.prototype.remove=function(t,e){var n=this._axisPointer;n&&n.remove(e)},e.prototype.dispose=function(e,n){this._disposeAxisPointer(n),t.prototype.dispose.apply(this,arguments)},e.prototype._doUpdateAxisPointerClass=function(t,n,i){var r=e.getAxisPointerClass(this.axisPointerClass);if(r){var a=function(t){var e=Nx(t);return e&&e.axisPointerModel}(t);a?(this._axisPointer||(this._axisPointer=new r)).render(t,a,n,i):this._disposeAxisPointer(n)}},e.prototype._disposeAxisPointer=function(t){this._axisPointer&&this._axisPointer.dispose(t),this._axisPointer=null},e.registerAxisPointerClass=function(t,e){Ex[t]=e},e.getAxisPointerClass=function(t){return t&&Ex[t]},e.type="axis",e}(Yp),zx=hr();var Fx=["axisLine","axisTickLabel","axisName"],Vx=["splitArea","splitLine","minorSplitLine"],Hx=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n.axisPointerClass="CartesianAxisPointer",n}return n(e,t),e.prototype.render=function(e,n,i,r){this.group.removeAll();var a=this._axisGroup;if(this._axisGroup=new Mi,this.group.add(this._axisGroup),e.get("show")){var o=e.getCoordSysModel(),s=function(t,e,n){n=n||{};var i=t.coordinateSystem,r=e.axis,a={},o=r.getAxesOnZeroOf()[0],s=r.position,l=o?"onZero":s,u=r.dim,h=i.getRect(),c=[h.x,h.x+h.width,h.y,h.y+h.height],p={left:0,right:1,top:0,bottom:1,onZero:2},f=e.get("offset")||0,d="x"===u?[c[2]-f,c[3]+f]:[c[0]-f,c[1]+f];if(o){var g=o.toGlobalCoord(o.dataToCoord(0));d[p.onZero]=Math.max(Math.min(g,d[1]),d[0])}a.position=["y"===u?d[p[l]]:c[0],"x"===u?d[p[l]]:c[3]],a.rotation=Math.PI/2*("x"===u?0:1),a.labelDirection=a.tickDirection=a.nameDirection={top:-1,bottom:1,left:-1,right:1}[s],a.labelOffset=o?d[p[s]]-d[p.onZero]:0,e.get(["axisTick","inside"])&&(a.tickDirection=-a.tickDirection),$(n.labelInside,e.get(["axisLabel","inside"]))&&(a.labelDirection=-a.labelDirection);var y=e.get(["axisLabel","rotate"]);return a.labelRotate="top"===l?-y:y,a.z2=1,a}(o,e),l=new Ix(e,M({handleAutoShown:function(t){for(var n=o.coordinateSystem.getCartesians(),i=0;i<n.length;i++){var r=n[i].getOtherAxis(e.axis).type;if("value"===r||"log"===r)return!0}return!1}},s));L(Fx,l.add,l),this._axisGroup.add(l.getGroup()),L(Vx,(function(t){e.get([t,"show"])&&Wx[t](this,this._axisGroup,e,o)}),this),function(t,e,n){if(t&&e){var i,r=(i={},t.traverse((function(t){su(t)&&t.anid&&(i[t.anid]=t)})),i);e.traverse((function(t){if(su(t)&&t.anid){var e=r[t.anid];if(e){var i=a(t);t.attr(a(e)),eu(t,i,n,Xo(t).dataIndex)}}}))}function a(t){var e={x:t.x,y:t.y,rotation:t.rotation};return function(t){return null!=t.shape}(t)&&(e.shape=M({},t.shape)),e}}(a,this._axisGroup,e),t.prototype.render.call(this,e,n,i,r)}},e.prototype.remove=function(){zx(this).splitAreaColors=null},e.type="cartesianAxis",e}(Bx),Wx={splitLine:function(t,e,n,i){var r=n.axis;if(!r.scale.isBlank()){var a=n.getModel("splitLine"),o=a.getModel("lineStyle"),s=o.get("color");s=z(s)?s:[s];for(var l=i.coordinateSystem.getRect(),u=r.isHorizontal(),h=0,c=r.getTicksCoords({tickModel:a}),p=[],f=[],d=o.getLineStyle(),g=0;g<c.length;g++){var y=r.toGlobalCoord(c[g].coord);u?(p[0]=y,p[1]=l.y,f[0]=y,f[1]=l.y+l.height):(p[0]=l.x,p[1]=y,f[0]=l.x+l.width,f[1]=y);var v=h++%s.length,m=c[g].tickValue;e.add(new Cl({anid:null!=m?"line_"+c[g].tickValue:null,subPixelOptimize:!0,autoBatch:!0,shape:{x1:p[0],y1:p[1],x2:f[0],y2:f[1]},style:T({stroke:s[v]},d),silent:!0}))}}},minorSplitLine:function(t,e,n,i){var r=n.axis,a=n.getModel("minorSplitLine").getModel("lineStyle"),o=i.coordinateSystem.getRect(),s=r.isHorizontal(),l=r.getMinorTicksCoords();if(l.length)for(var u=[],h=[],c=a.getLineStyle(),p=0;p<l.length;p++)for(var f=0;f<l[p].length;f++){var d=r.toGlobalCoord(l[p][f].coord);s?(u[0]=d,u[1]=o.y,h[0]=d,h[1]=o.y+o.height):(u[0]=o.x,u[1]=d,h[0]=o.x+o.width,h[1]=d),e.add(new Cl({anid:"minor_line_"+l[p][f].tickValue,subPixelOptimize:!0,autoBatch:!0,shape:{x1:u[0],y1:u[1],x2:h[0],y2:h[1]},style:c,silent:!0}))}},splitArea:function(t,e,n,i){!function(t,e,n,i){var r=n.axis;if(!r.scale.isBlank()){var a=n.getModel("splitArea"),o=a.getModel("areaStyle"),s=o.get("color"),l=i.coordinateSystem.getRect(),u=r.getTicksCoords({tickModel:a,clamp:!0});if(u.length){var h=s.length,c=zx(t).splitAreaColors,p=lt(),f=0;if(c)for(var d=0;d<u.length;d++){var g=c.get(u[d].tickValue);if(null!=g){f=(g+(h-1)*d)%h;break}}var y=r.toGlobalCoord(u[0].coord),v=o.getAreaStyle();for(s=z(s)?s:[s],d=1;d<u.length;d++){var m=r.toGlobalCoord(u[d].coord),_=void 0,x=void 0,b=void 0,w=void 0;r.isHorizontal()?(_=y,x=l.y,b=m-_,w=l.height,y=_+b):(_=l.x,x=y,b=l.width,y=x+(w=m-x));var S=u[d-1].tickValue;null!=S&&p.set(S,f),e.add(new No({anid:null!=S?"area_"+S:null,shape:{x:_,y:x,width:b,height:w},style:T({fill:s[f]},v),autoBatch:!0,silent:!0})),f=(f+1)%h}zx(t).splitAreaColors=p}}}(t,e,n,i)}},Gx=function(t){function e(){var n=null!==t&&t.apply(this,arguments)||this;return n.type=e.type,n}return n(e,t),e.type="xAxis",e}(Hx),Ux=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type=Gx.type,e}return n(e,t),e.type="yAxis",e}(Hx),Yx=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="grid",e}return n(e,t),e.prototype.render=function(t,e){this.group.removeAll(),t.get("show")&&this.group.add(new No({shape:t.coordinateSystem.getRect(),style:T({fill:t.get("backgroundColor")},t.getItemStyle()),silent:!0,z2:-1}))},e.type="grid",e}(Yp),Xx={offset:0};var qx={label:{enabled:!0},decal:{show:!1}},jx=hr(),Zx={};function Kx(t,e){var n=t.getModel("aria");if(n.get("enabled")){var i=w(qx);S(i.label,t.getLocaleModel().get("aria"),!1),S(n.option,i,!1),function(){if(n.getModel("decal").get("show")){var e=lt();t.eachSeries((function(t){if(t.useColorPaletteOnData){var n=e.get(t.type);n||(n={},e.set(t.type,n)),jx(t).scope=n}})),t.eachRawSeries((function(e){if(!t.isSeriesFiltered(e))if("function"!=typeof e.enableAriaDecal){var n=e.getData();if(e.useColorPaletteOnData){var i=e.getRawData(),r={},a=jx(e).scope;n.each((function(t){var e=n.getRawIndex(t);r[e]=t}));var o=i.count();i.each((function(t){var s=r[t],l=i.getName(t)||t+"",h=uc(e.ecModel,l,a,o),c=n.getItemVisual(s,"decal");n.setItemVisual(s,"decal",u(c,h))}))}else{var s=uc(e.ecModel,e.name,Zx,t.getSeriesCount()),l=n.getVisual("decal");n.setVisual("decal",u(l,s))}}else e.enableAriaDecal();function u(t,e){var n=t?M(M({},e),t):e;return n.dirty=!0,n}}))}}(),function(){var i=t.getLocaleModel().get("aria"),a=n.getModel("label");if(a.option=T(a.option,i),!a.get("enabled"))return;var o=e.getZr().dom;if(a.get("description"))return void o.setAttribute("aria-label",a.get("description"));var s,l=t.getSeriesCount(),u=a.get(["data","maxCount"])||10,h=a.get(["series","maxCount"])||10,c=Math.min(l,h);if(l<1)return;var p=function(){var e=t.get("title");e&&e.length&&(e=e[0]);return e&&e.text}();if(p){var f=a.get(["general","withTitle"]);s=r(f,{title:p})}else s=a.get(["general","withoutTitle"]);var d=[],g=l>1?a.get(["series","multiple","prefix"]):a.get(["series","single","prefix"]);s+=r(g,{seriesCount:l}),t.eachSeries((function(e,n){if(n<c){var i=void 0,o=e.get("name")?"withName":"withoutName";i=r(i=l>1?a.get(["series","multiple",o]):a.get(["series","single",o]),{seriesId:e.seriesIndex,seriesName:e.get("name"),seriesType:(_=e.subType,t.getLocaleModel().get(["series","typeNames"])[_]||"自定义图")});var s=e.getData();if(s.count()>u)i+=r(a.get(["data","partialData"]),{displayCnt:u});else i+=a.get(["data","allData"]);for(var h=[],p=0;p<s.count();p++)if(p<u){var f=s.getName(p),g=fp(s,p),y=a.get(["data",f?"withName":"withoutName"]);h.push(r(y,{name:f,value:g}))}var v=a.get(["data","separator","middle"]),m=a.get(["data","separator","end"]);i+=h.join(v)+m,d.push(i)}var _}));var y=a.getModel(["series","multiple","separator"]),v=y.get("middle"),m=y.get("end");s+=d.join(v)+m,o.setAttribute("aria-label",s)}()}function r(t,e){if("string"!=typeof t)return t;var n=t;return L(e,(function(t,e){n=n.replace(new RegExp("\\{\\s*"+e+"\\s*\\}","g"),t)})),n}}function $x(t){if(t&&t.aria){var e=t.aria;null!=e.show&&(e.enabled=e.show),e.label=e.label||{},L(["description","general","series","data"],(function(t){null!=e[t]&&(e.label[t]=e[t])}))}}var Qx=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="dataset",e}return n(e,t),e.prototype.init=function(e,n,i){t.prototype.init.call(this,e,n,i),this._sourceManager=new Ip(this),Ap(this)},e.prototype.mergeOption=function(e,n){t.prototype.mergeOption.call(this,e,n),Ap(this)},e.prototype.optionUpdated=function(){this._sourceManager.dirty()},e.prototype.getSourceManager=function(){return this._sourceManager},e.type="dataset",e.defaultOption={seriesLayoutBy:Yh},e}(Rh),Jx=function(t){function e(){var e=null!==t&&t.apply(this,arguments)||this;return e.type="dataset",e}return n(e,t),e.type="dataset",e}(Yp);Ty([function(t){t.registerPainter("canvas",Um)}]),Ty([function(t){t.registerChartView(M_),t.registerSeriesModel(Ym),t.registerLayout(function(t,e){return{seriesType:t,plan:Xp(),reset:function(t){var n=t.getData(),i=t.coordinateSystem,r=t.pipelineContext,a=e||r.large;if(i){var o=P(i.dimensions,(function(t){return n.mapDimension(t)})).slice(0,2),s=o.length,l=n.getCalculationInfo("stackResultDimension");uv(n,o[0])&&(o[0]=l),uv(n,o[1])&&(o[1]=l);var u=n.getDimensionInfo(o[0]),h=n.getDimensionInfo(o[1]),c=u&&u.index,p=h&&h.index;return s&&{progress:function(t,e){for(var n=t.end-t.start,r=a&&r_(n*s),o=[],l=[],u=t.start,h=0;u<t.end;u++){var f=void 0;if(1===s){var d=e.getByDimIdx(c,u);f=i.dataToPoint(d,null,l)}else o[0]=e.getByDimIdx(c,u),o[1]=e.getByDimIdx(p,u),f=i.dataToPoint(o,null,l);a?(r[h++]=f[0],r[h++]=f[1]):e.setItemLayout(u,f.slice())}a&&e.setLayout("points",r)}}}}}}("line",!0)),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,D_("line"))},function(t){t.registerChartView(B_),t.registerSeriesModel(A_),t.registerLayout(t.PRIORITY.VISUAL.LAYOUT,B(Lv,"bar")),t.registerLayout(t.PRIORITY.VISUAL.PROGRESSIVE_LAYOUT,Pv),t.registerVisual({seriesType:"bar",reset:function(t){t.getData().setVisual("legendSymbol","roundRect")}}),t.registerProcessor(t.PRIORITY.PROCESSOR.STATISTIC,D_("bar")),t.registerAction({type:"changeAxisOrder",event:"changeAxisOrder",update:"update"},(function(t,e){var n=t.componentType||"series";e.eachComponent({mainType:n,query:t},(function(e){t.sortInfo&&e.axis.setCategorySortInfo(t.sortInfo)}))}))},function(t){t.registerChartView(ix),t.registerSeriesModel(ax),function(t,e){function n(e,n){var i=[];return e.eachComponent({mainType:"series",subType:t,query:n},(function(t){i.push(t.seriesIndex)})),i}L([[t+"ToggleSelect","toggleSelect"],[t+"Select","select"],[t+"UnSelect","unselect"]],(function(t){e(t[0],(function(e,i,r){e=M({},e),r.dispatchAction(M(e,{type:t[1],seriesIndex:n(i,e)}))}))}))}("pie",t.registerAction),t.registerLayout(B(K_,"pie")),t.registerProcessor(function(t){return{seriesType:t,reset:function(t,e){var n=e.findComponents({mainType:"legend"});if(n&&n.length){var i=t.getData();i.filterSelf((function(t){for(var e=i.getName(t),r=0;r<n.length;r++)if(!n[r].isSelected(e))return!1;return!0}))}}}}("pie"))}]),Ty([function(t){t.registerComponentView(Yx),t.registerComponentModel(ox),t.registerCoordinateSystem("cartesian2d",Sx),fx(t,"x",sx,Xx),fx(t,"y",sx,Xx),t.registerComponentView(Gx),t.registerComponentView(Ux),t.registerPreprocessor((function(t){t.xAxis&&t.yAxis&&!t.grid&&(t.grid={})}))},function(t){t.registerPreprocessor($x),t.registerVisual(t.PRIORITY.VISUAL.ARIA,Kx)},function(t){t.registerComponentModel(Qx),t.registerComponentView(Jx)}]),t.Axis=Nm,t.ChartView=Zp,t.ComponentModel=Rh,t.ComponentView=Yp,t.List=ev,t.Model=Lu,t.PRIORITY=fg,t.SeriesModel=Bp,t.color=je,t.connect=function(t){if(z(t)){var e=t;t=null,og(e,(function(e){null!=e.group&&(t=e.group)})),t=t||"g_"+ry++,og(e,(function(e){e.group=t}))}return ny[t]=!0,t},t.dataTool={},t.dependencies={zrender:"5.0.3"},t.disConnect=oy,t.disconnect=sy,t.dispose=function(t){"string"==typeof t?t=ey[t]:t instanceof Wg||(t=ly(t)),t instanceof Wg&&!t.isDisposed()&&t.dispose()},t.env=o,t.extendChartView=function(t){var e=Zp.extend(t);return Zp.registerClass(e),e},t.extendComponentModel=function(t){var e=Rh.extend(t);return Rh.registerClass(e),e},t.extendComponentView=function(t){var e=Yp.extend(t);return Yp.registerClass(e),e},t.extendSeriesModel=function(t){var e=Bp.extend(t);return Bp.registerClass(e),e},t.format=Sm,t.getCoordinateSystemDimensions=function(t){var e=mc.get(t);if(e)return e.getDimensionsInfo?e.getDimensionsInfo():e.dimensions.slice()},t.getInstanceByDom=ly,t.getInstanceById=function(t){return ey[t]},t.getMap=function(t){var e=Bf(t);return e&&e[0]&&{geoJson:e[0].geoJSON,specialAreas:e[0].specialAreas}},t.graphic=wm,t.helper=dm,t.init=function(t,e,n){var i=ly(t);if(i)return i;var r=new Wg(t,e,n);return r.id="ec_"+iy++,ey[r.id]=r,gr(t,ay,r.id),Eg(r),og(Kg,(function(t){t(r)})),r},t.innerDrawElementOnCanvas=Kd,t.matrix=fe,t.number=xm,t.parseGeoJSON=_m,t.parseGeoJson=_m,t.registerAction=dy,t.registerCoordinateSystem=gy,t.registerLayout=yy,t.registerLoading=xy,t.registerLocale=Vu,t.registerMap=by,t.registerPostInit=py,t.registerPostUpdate=fy,t.registerPreprocessor=hy,t.registerProcessor=cy,t.registerTheme=uy,t.registerTransform=wy,t.registerVisual=vy,t.setCanvasCreator=function(t){m("createCanvas",t)},t.throttle=ef,t.time=bm,t.use=Ty,t.util=Mm,t.vector=Lt,t.version="5.0.1",t.zrUtil=pt,t.zrender=Li,Object.defineProperty(t,"__esModule",{value:!0})}));
diff --git a/package-lock.json b/package-lock.json
index f2a9ffa..48b7dae 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9771,18 +9771,11 @@
       }
     },
     "zrender": {
-      "version": "5.0.2",
-      "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.0.2.tgz",
-      "integrity": "sha512-IkTkA2gKgnuYWm/uTdYhsxYkI6SF4AaYznvfl4higUG/T06dMtgWcGgi93ayqjyRU1i4YXnDDOUqLBdGP8/yzw==",
+      "version": "5.0.3",
+      "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.0.3.tgz",
+      "integrity": "sha512-TVcN2IMdo7je3GEq/E4CER4AGBe/n50/izILdupppyHf/hVHuiXCRliqdu8+32Z1OmGg6RfKt5qQlkX+bOtU0g==",
       "requires": {
         "tslib": "2.0.3"
-      },
-      "dependencies": {
-        "tslib": {
-          "version": "2.0.3",
-          "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.3.tgz",
-          "integrity": "sha512-uZtkfKblCEQtZKBF6EBXVZeQNl82yqtDQdv+eck8u7tdPxjLu2/lp5/uPW+um2tpuxINHWy3GhiccY7QgEaVHQ=="
-        }
       }
     }
   }
diff --git a/package.json b/package.json
index be9de1c..8566186 100644
--- a/package.json
+++ b/package.json
@@ -64,7 +64,7 @@
   },
   "dependencies": {
     "tslib": "2.0.3",
-    "zrender": "5.0.2"
+    "zrender": "5.0.3"
   },
   "devDependencies": {
     "@babel/code-frame": "7.10.4",
diff --git a/src/core/echarts.ts b/src/core/echarts.ts
index 91c0a76..ea623a8 100644
--- a/src/core/echarts.ts
+++ b/src/core/echarts.ts
@@ -121,7 +121,7 @@
 export const version = '5.0.1';
 
 export const dependencies = {
-    zrender: '5.0.2'
+    zrender: '5.0.3'
 };
 
 const TEST_FRAME_REMAIN_TIME = 1;